ZGlmZiAtLWdpdCBhL2FwcHMvZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbCBiL2FwcHMvZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jOGNhMTY4Ci0tLSAvZGV2L251bGwKKysrIGIvYXBwcy9kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCkBAIC0wLDAgKzEsMTYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKworICA8IURPQ1RZUEUgd2ViLWFwcCBQVUJMSUMKKwkiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIFdlYiBBcHBsaWNhdGlvbiAyLjMvL0VOIgorCSJodHRwOi8vamF2YS5zdW4uY29tL2R0ZC93ZWItYXBwXzJfMy5kdGQiPgorCis8d2ViLWFwcD4KKwk8ZGlzcGxheS1uYW1lPlN0cnV0cyBEb2N1bWVudGF0aW9uPC9kaXNwbGF5LW5hbWU+CisKKyAgPCEtLSBUaGUgV2VsY29tZSBGaWxlIExpc3QgLS0+CisgIDx3ZWxjb21lLWZpbGUtbGlzdD4KKyAgICA8d2VsY29tZS1maWxlPmluZGV4LmpzcDwvd2VsY29tZS1maWxlPgorICAgIDx3ZWxjb21lLWZpbGU+aW5kZXguaHRtbDwvd2VsY29tZS1maWxlPgorICA8L3dlbGNvbWUtZmlsZS1saXN0PgorCis8L3dlYi1hcHA+CmRpZmYgLS1naXQgYS9hcHBzL2RvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9tb2RlbDIuZ2lmIGIvYXBwcy9kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbW9kZWwyLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzQwZTY1Ci0tLSAvZGV2L251bGwKKysrIGIvYXBwcy9kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbW9kZWwyLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS9SRUFETUUgYi9idWlsZC1sZWdhY3kvY29yZS9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJmNTc4ZgotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL1JFQURNRQpAQCAtMCwwICsxLDIxIEBACiskSWQkCisKK1NUUlVUUworPT09PT09CisKK0ludHJvZHVjdGlvbgorLS0tLS0tLS0tLS0tCisKK1RoaXMgc3VicHJvamVjdCBjb250YWlucyB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSAiU3RydXRzIiBhcHBsaWNhdGlvbiBzdXBwb3J0CitwYWNrYWdlLCBjb25zaXN0aW5nIG9mIHRoZSBmb2xsb3dpbmcgbWFqb3IgY29tcG9uZW50czoKKworLSBDb250cm9sbGVyIHNlcnZsZXQgd2l0aCBhY3Rpb24gbWFwcGluZyB0ZWNobm9sb2d5LCBpbXBsZW1lbnRpbmcgdGhlIE1vZGVsLQorICBWaWV3LUNvbnRyb2xsZXIgKE1WQykgZGVzaWduIHBhdHRlcm4gZm9yIHdlYiBhcHBsaWNhdGlvbnMgY29tbW9ubHkgY2FsbGVkCisgICJNb2RlbCAyIiwgd2l0aCBhIHNlcnZsZXQgYXMgdGhlICJmcm9udCBjb21wb25lbnQiLgorCistIENvbXByZWhlbnNpdmUgY3VzdG9tIHRhZyBsaWJyYXJ5IGZvciBidWlsZGluZyBpbnRlcm5hdGlvbmFsaXplZCBKU1AgcGFnZXMKKyAgdGhhdCBoYXZlIEhUTUwgZm9ybXMgd2hpY2ggaW50ZXJhY3Qgd2l0aCBKYXZhQmVhbnMgdGhhdCBhcmUgbWFuYWdlZAorICBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBjb250cm9sbGVyIHNlcnZsZXQuCisKK0ZvciBoZWxwIHdpdGggaW5zdGFsbGluZyBhbmQgdXNpbmcgU3RydXRzLCBzZWUgdGhlIFN0cnV0cyBVc2VyIEd1aWRlLgorCmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS9tYXZlbi54bWwgYi9idWlsZC1sZWdhY3kvY29yZS9tYXZlbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE3ZTZkOAotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL21hdmVuLnhtbApAQCAtMCwwICsxLDkwIEBACis8cHJvamVjdCBkZWZhdWx0PSJqYXI6amFyIgorICB4bWxuczpqPSJqZWxseTpjb3JlIgorICB4bWxuczphbnQ9ImplbGx5OmFudCI+CisKKyAgPHByZUdvYWwgbmFtZT0iZGlzdCI+CisgICAgPGF0dGFpbkdvYWwgbmFtZT0iamFyOmluc3RhbGwiLz4KKyAgPC9wcmVHb2FsPgorICAKKyAgPHByZUdvYWwgbmFtZT0ieGRvYzpqZWxseS10cmFuc2Zvcm0iPgorICAgIDxhdHRhaW5Hb2FsIG5hbWU9Imh0bWwyeGRvYyIvPgorCisgICAgPCEtLSAKKyAgICAgIE1hdmVuIEZBUSBQbHVnSW4gMS4yIHdpbGwgYWxsb3cgbXVsdGlwbGUgZmFxcworICAgICAgRm9yIG5vdywgd2UnbGwganVzdCBnZW5lcmF0ZSB0aGVtIGZyb20geGRvY3MgICAgCisgICAgPGF0dGFpbkdvYWwgbmFtZT0iZmFxIi8+CisgICAgLS0+CisgIDwvcHJlR29hbD4KKworICA8cG9zdEdvYWwgbmFtZT0iZGlzdDpwcmVwYXJlLWJpbi1maWxlc3lzdGVtIj4KKworICAgIDwhLS0gQ29weSBJbnN0cnVjdGlvbnMgYW5kIFJlYWRtZXMgLS0+CisgICAgPGFudDpjb3B5IHRvZGlyPSIke21hdmVuLmRpc3QuYmluLmFzc2VtYmx5LmRpcn0iPgorICAgICAgPGFudDpmaWxlc2V0IGRpcj0iLiI+CisgICAgICAgIDxhbnQ6aW5jbHVkZSBuYW1lPSJSRUFETUUqIi8+CisgICAgICAgIDxhbnQ6aW5jbHVkZSBuYW1lPSJMSUNFTlNFKiIvPgorICAgICAgICA8YW50OmluY2x1ZGUgbmFtZT0iU1RBVFVTKiIvPgorICAgICAgICA8YW50OmluY2x1ZGUgbmFtZT0iSU5TVEFMTCoiLz4KKyAgICAgIDwvYW50OmZpbGVzZXQ+CisgICAgPC9hbnQ6Y29weT4KKworICAgIDwhLS0gQ29weSBjb25maWd1cmF0aW9uIGZpbGVzIC0tPgorICAgIDxqOnNldCB2YXI9ImRvY3NEZXN0IiB2YWx1ZT0iJHttYXZlbi5kb2NzLmRlc3R9Ii8+CisgICAgPGFudDpjb3B5IHRvZGlyPSIke21hdmVuLmRpc3QuYmluLmFzc2VtYmx5LmRpcn0vY29uZiI+CisgICAgICA8YW50OmZpbGVzZXQgZGlyPSIuL2NvbmYvc2hhcmUiPgorICAgICAgICA8YW50OmluY2x1ZGUgbmFtZT0iKi54bWwiLz4KKyAgICAgICAgPGFudDppbmNsdWRlIG5hbWU9IiouZHRkIi8+CisgICAgICA8L2FudDpmaWxlc2V0PgorICAgIDwvYW50OmNvcHk+CisgIDwvcG9zdEdvYWw+CisKKworICA8cG9zdEdvYWwgbmFtZT0iZGlzdDpwcmVwYXJlLXNyYy1maWxlc3lzdGVtIj4KKyAgICA8IS0tIENvcHkgSW5zdHJ1Y3Rpb25zIGFuZCBSZWFkbWVzIC0tPgorICAgIDxhbnQ6Y29weSB0b2Rpcj0iJHttYXZlbi5kaXN0LnNyYy5hc3NlbWJseS5kaXJ9Ij4KKyAgICAgIDxhbnQ6ZmlsZXNldCBkaXI9Ii4iPgorICAgICAgICA8YW50OmluY2x1ZGUgbmFtZT0iUkVBRE1FKiIvPgorICAgICAgICA8YW50OmluY2x1ZGUgbmFtZT0iTElDRU5TRSoiLz4KKyAgICAgICAgPGFudDppbmNsdWRlIG5hbWU9IlNUQVRVUyoiLz4KKyAgICAgICAgPGFudDppbmNsdWRlIG5hbWU9IklOU1RBTEwqIi8+CisgICAgICA8L2FudDpmaWxlc2V0PgorICAgIDwvYW50OmNvcHk+CisKKyAgICA8IS0tIENvcHkgY29uZmlndXJhdGlvbiBmaWxlcyAtLT4KKyAgICA8ajpzZXQgdmFyPSJkb2NzRGVzdCIgdmFsdWU9IiR7bWF2ZW4uZG9jcy5kZXN0fSIvPgorICAgIDxhbnQ6Y29weSB0b2Rpcj0iJHttYXZlbi5kaXN0LnNyYy5hc3NlbWJseS5kaXJ9L2NvbmYiPgorICAgICAgPGFudDpmaWxlc2V0IGRpcj0iLi9jb25mL3NoYXJlIj4KKyAgICAgICAgPGFudDppbmNsdWRlIG5hbWU9IioueG1sIi8+CisgICAgICAgIDxhbnQ6aW5jbHVkZSBuYW1lPSIqLmR0ZCIvPgorICAgICAgPC9hbnQ6ZmlsZXNldD4KKyAgICA8L2FudDpjb3B5PgorICA8L3Bvc3RHb2FsPgorCisKKyAgICA8IS0tCisgICAgICAgIFByZXBhcmUgQ2FjdHVzIHdlYmFwcCB3aXRoIG5lY2Vzc2FyeSBjb25maWcgZmlsZXMuCisgICAgLS0+CisgICAgPHBvc3RHb2FsIG5hbWU9Indhcjp3ZWJhcHAiPgorICAgICAgPGo6c2V0CisgICAgICAgdmFyPSJ3ZWJhcHAucm9vdCIKKyAgICAgICAKKyAgICAgdmFsdWU9IiR7cG9tLmdldFBsdWdpbkNvbnRleHQoJ21hdmVuLXdhci1wbHVnaW4nKS5nZXRWYXJpYWJsZSgnbWF2ZW4ud2FyLndlYmFwcC5kaXInKX0iIC8+CisgICAgICAgIDxhbnQ6ZWNobz5Db3B5aW5nIGZpbGVzIHRvICR7d2ViYXBwLnJvb3R9PC9hbnQ6ZWNobz4KKyAgICAgICAgPGFudDpmaWx0ZXIgdG9rZW49ImNhY3R1cy5jb250ZXh0VVJMIiB2YWx1ZT0iJHtjYWN0dXMuY29udGV4dFVSTH0iLz4KKyAgICAgICAgPGFudDpjb3B5IHRvZGlyPSIke3dlYmFwcC5yb290fS9XRUItSU5GL2NsYXNzZXMiIGZpbHRlcmluZz0ib24iPgorICAgICAgICAgICAgPGFudDpmaWxlc2V0IGRpcj0iY29uZi90ZXN0IiBpbmNsdWRlcz0iKi5wcm9wZXJ0aWVzIi8+CisgICAgICAgIDwvYW50OmNvcHk+CisgICAgICAgIDxhbnQ6Y29weSB0b2Rpcj0iJHt3ZWJhcHAucm9vdH0iIGZpbHRlcmluZz0ib2ZmIj4KKyAgICAgICAgICAgIDxhbnQ6ZmlsZXNldCBkaXI9IndlYi90ZXN0IiBpbmNsdWRlcz0iKiovKi5qc3AiLz4KKyAgICAgICAgICAgIDxhbnQ6ZmlsZXNldCBkaXI9IndlYi90ZXN0IiBpbmNsdWRlcz0iKiovKi50eHQiLz4KKyAgICAgICAgPC9hbnQ6Y29weT4KKyAgICAgICAgPGFudDpjb3B5IHRvZGlyPSIke3dlYmFwcC5yb290fS9XRUItSU5GIiBmaWx0ZXJpbmc9Im9mZiI+CisgICAgICAgICAgICA8YW50OmZpbGVzZXQgZGlyPSIke21hdmVuLmJ1aWxkLmRpcn0vY2xhc3Nlcy9NRVRBLUlORi90bGRzIiBpbmNsdWRlcz0iKi50bGQiLz4KKyAgICAgICAgPC9hbnQ6Y29weT4KKyAgICAgICAgPGFudDpjb3B5IGZpbGU9ImNvbmYvdGVzdC9zdHJ1dHMtY29uZmlnLnhtbCIgdG9kaXI9IiR7d2ViYXBwLnJvb3R9L1dFQi1JTkYiIC8+CisgICAgICAgIDxhbnQ6Y29weSBmaWxlPSJjb25mL3Rlc3QvbWF2ZW4td2ViLnhtbCIgdG9maWxlPSIke3dlYmFwcC5yb290fS9XRUItSU5GL3dlYi54bWwiIC8+CisgICAgPC9wb3N0R29hbD4KKworICAKKworPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvYWNxdWlyaW5nLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2FjcXVpcmluZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmU4ZmRiMAotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2FjcXVpcmluZy54bWwKQEAgLTAsMCArMSwxMjYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0iLi9hY3F1aXJpbmcueG1sIj4KKworPCEtLQorLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IDc4CistLT4KKworPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPkFjcXVpcmluZyAtIFRoZSBBcGFjaGUgU3RydXRzIFdlYiBBcHBsaWNhdGlvbiBGcmFtZXdvcms8L3RpdGxlPgorPC9wcm9wZXJ0aWVzPgorCis8Ym9keT4KKworICAgIDxzZWN0aW9uIG5hbWU9IkFjcXVpcmluZyBTdHJ1dHMiIGhyZWY9IkFjcXVpcmluZyI+CisKKyAgICA8cD4KKyAgICBUaGUgbGF0ZXN0IDxlbT5wcm9kdWN0aW9uIHJlbGVhc2U8L2VtPiBvZiBTdHJ1dHMgaXMKKyAgICBhdmFpbGFibGUgaW4gYSBjb252ZW5pZW50IGJpbmFyeSBkaXN0cmlidXRpb24gYW5kIGFsc28gd2l0aCBjb21wbGV0ZQorICAgIHNvdXJjZSBjb2RlLiAKKyAgICA8L3A+CisKKyAgICAgICAgPHA+CisgICAgICAgICAgICBBcGFjaGUgZG93bmxvYWRzIGFyZSBub3cgbWlycm9yZWQuCisgICAgICAgICAgICBXaGVuIHlvdSBmb2xsb3cgZWl0aGVyIHRoZSBCaW5hcnkgb3IgU291cmNlIGxpbmssCisgICAgICAgICAgICBwbGVhc2Ugc2VsZWN0IHlvdXIgcHJlZmVycmVkIG1pcnJvciBhbmQgdGhlbiBjbGljayBvbiB0aGUgbGluaworICAgICAgICAgICAgdG8gdGhlIDxzdHJvbmc+U3RydXRzPC9zdHJvbmc+IGRvd25sb2FkLgorICAgICAgICA8L3A+CisKKyAgICA8dWw+CisgICAgICAgIAorICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL2JpbmluZGV4LmNnaSI+CisgICAgICAgIDxzdHJvbmc+U3RydXRzIEJpbmFyeSBEaXN0cmlidXRpb24gLSBMYXRlc3Qgc3RhYmxlIHJlbGVhc2U8L3N0cm9uZz48L2E+CisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL3NvdXJjZWluZGV4LmNnaSI+CisgICAgICAgIDxzdHJvbmc+U3RydXRzIFNvdXJjZSBDb2RlIERpc3RyaWJ1dGlvbiAtIExhdGVzdCBzdGFibGUgcmVsZWFzZTwvc3Ryb25nPjwvYT4KKyAgICA8L2xpPgorICAgIAorICAgIDwvdWw+CisKKyAgICA8cD4KKyAgICA8c3Ryb25nPkluIGFkZGl0aW9uIHRvIGEgU3RydXRzIGRpc3RyaWJ1dGlvbiw8L3N0cm9uZz4geW91IHdpbGwgbmVlZCB0byBlbnN1cmUgdGhhdCB5b3UgaGF2ZQorICAgIGRvd25sb2FkZWQgYW5kIGluc3RhbGxlZCBhbGwgb2YgdGhlCisgICAgPGEgaHJlZj0idXNlckd1aWRlL2luc3RhbGxhdGlvbi5odG1sI1ByZXJlcXVpc2l0ZXMiPgorICAgIHByZXJlcXVpc2l0ZTwvYT4gc29mdHdhcmUgYXBwbGljYXRpb25zLiAKKyAgICBUaGVuLCBmb2xsb3cgdGhlIGFwcHJvcHJpYXRlIGluc3RydWN0aW9ucyB0bworICAgIDxhIGhyZWY9InVzZXJHdWlkZS9pbnN0YWxsYXRpb24uaHRtbCNJbnN0YWxsaW5nIj4KKyAgICBpbnN0YWxsIGFuZCB1c2UgYSBTdHJ1dHMgYmluYXJ5IGRpc3RyaWJ1dGlvbjwvYT4gaW4geW91ciB3ZWIgYXBwbGljYXRpb24gCisgICAgb3IgZm9yCisgICAgPGEgaHJlZj0idXNlckd1aWRlL2luc3RhbGxhdGlvbi5odG1sI0J1aWxkaW5nIj4KKyAgICBidWlsZGluZyBTdHJ1dHMgZnJvbSB0aGUgc291cmNlIGRpc3RyaWJ1dGlvbjwvYT4uCisgICAgPC9wPgorICAgIAorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSJOaWdodGx5IEJ1aWxkcyIgaHJlZj0iQnVpbGRzIj4KKworICAgIDxwPgorICAgIEZvciBkZXZlbG9wZXJzIHdobyBhcmUgaGVscGluZyB0byBkZXZlbG9wIFN0cnV0cywgb3Igd2hvIGp1c3Qgd2FudCAidGhlIAorICAgIGxhdGVzdCBiaXRzIiwgdGhlIGxhdGVzdCBkZXZlbG9wbWVudCB2ZXJzaW9uIGlzIG1hZGUgYXZhaWxhYmxlIGVhY2ggbW9ybmluZy4gCisgICAgVXNlIGF0IHlvdXIgb3duIHJpc2shCisgICAgPC9wPgorCisgICAgPHVsPgorICAgICAgICAKKyAgICA8bGk+CisgICAgICAgIE5pZ2h0bHkgYnVpbGRzIC0gRG93bmxvYWQgdGhlIHNvdXJjZSBkaXJlY3RseSB2aWEKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2Rldi92ZXJzaW9uLWNvbnRyb2wuaHRtbCI+CisgICAgICAgIEFub255bW91cyBTdWJ2ZXJzaW9uPC9hPi4KKyAgICA8L2xpPgorICAgIAorICAgIDxsaT4KKyAgICAgICAgTmlnaHRseSBidWlsZHMgLSBEb3dubG9hZCB0aGUgYmluYXJ5IGRpc3RyaWJ1dGlvbnMgZnJvbSB0aGUKKyAgICAgICA8YSBocmVmPSJodHRwOi8vc3ZuLmFwYWNoZS5vcmcvYnVpbGRzL3N0cnV0cy9uaWdodGx5LyI+CisgICAgICAgIFN0cnV0cyBuaWdodGx5IGJ1aWxkcyBkaXJlY3Rvcnk8L2E+LgorICAgIDwvbGk+CisgICAgCisgICAgPGxpPgorICAgICAgICBOaWdodGx5IGJ1aWxkcyAtIERvd25sb2FkIHRoZSBzb3VyY2UgZGlzdHJpYnV0aW9ucyBmcm9tIHRoZQorICAgICAgICA8YSBocmVmPSJodHRwOi8vc3ZuLmFwYWNoZS5vcmcvYnVpbGRzL3N0cnV0cy9uaWdodGx5L3NyYy8iPgorICAgICAgICBTdHJ1dHMgbmlnaHRseSBidWlsZCBzb3VyY2UgZGlyZWN0b3J5PC9hPi4KKyAgICA8L2xpPgorICAgIAorICAgIDwvdWw+CisgICAgCisgICAgPHA+CisgICAgICAgIElmIHlvdSBhcmUgYnVpbGRpbmcgU3RydXRzIGZyb20gc291cmNlLCBiZSBzdXJlIHRvIHJlZmVyIHRvIHRoZQorICAgICAgICA8YSBocmVmPSJ1c2VyR3VpZGUvaW5zdGFsbGF0aW9uLmh0bWwiPkluc3RhbGxhdGlvbiBwYWdlPC9hPiBpbiB0aGUKKyAgICAgICAgVXNlciBHdWlkZSBmb3IgcHJlcmVxdWVzaXRlcy4KKyAgICAgICAgVGhlcmUgYXJlIHNldmVyYWwgSkFScyBmcm9tIHRoZSBKYWthcnRhIENvbW1vbnMgcHJvamVjdCB0aGF0CisgICAgICAgIGFyZSByZXF1aXJlZCB0byBidWlsZCBTdHJ1dHMuCisgICAgPC9wPgorICAgIAorICAgIDxwPgorICAgIElmIHlvdSBhcmUgaW50ZXJlc3RlZCBpbiB0aGUgVGFnIExpYnJhcnkgRGVzY3JpcHRvciAoVExEKSBmaWxlcywgCisgICAgdGhleSBhcmUgbWFpbnRhaW5lZCBpbiB0aGUgCisgICAgPGEgaHJlZj0iaHR0cDovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9zdHJ1dHMvY29yZS90cnVuay9jb25mL3NoYXJlLyI+CisgICAgL2NvbmYvc2hhcmU8L2E+IGZvbGRlciBvZiB0aGUgbWFpbiByZXBvc2l0b3J5LiAKKyAgICA8L3A+CisgICAgCisgICAgPHA+CisgICAgQWxzbyBiZSBzdXJlIHRvIGNoZWNrIHRoZQorICAgIDxhIGhyZWY9InVzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLmh0bWwiPgorICAgIFJlbGVhc2UgTm90ZXM8L2E+IGZvciB0aGUgbmlnaHRseSBidWlsZHMgc28geW91IGtub3cgd2hhdCB5b3UgYXJlIGdldHRpbmchCisgICAgPC9wPgorCisgICAgPHA+CisgICAgQWNjZXNzIHRvIHRoZSBTdWJ2ZXJzaW9uIHJlcG9zaXRvcnkgZm9yIFN0cnV0cyBpcyBhdmFpbGFibGUgdGhyb3VnaCBib3RoCisgICAgPGEgaHJlZj0iaHR0cDovL3N2bi5hcGFjaGUub3JnL3ZpZXdjdnMuY2dpL3N0cnV0cy9jb3JlL3RydW5rLz9yb290PUFwYWNoZS1TVk4iPndlYiBicm93c2VyPC9hPiAKKyAgICBhbmQKKyAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZGV2L3ZlcnNpb24tY29udHJvbC5odG1sIj4KKyAgICBTdWJ2ZXJzaW9uIGNsaWVudDwvYT4gaW50ZXJmYWNlcy4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24+CisgICAgPHAgY2xhc3M9InJpZ2h0Ij4KKyAgICBOZXh0OiA8YSBocmVmPSJ1c2luZy5odG1sIj5Vc2luZyBTdHJ1dHM8L2E+CisgICAgPC9wPgorPC9zZWN0aW9uPgorCis8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvYW5ub3VuY2UueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvYW5ub3VuY2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4OTRjMTcKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9hbm5vdW5jZS54bWwKQEAgLTAsMCArMSwyNjYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50PgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5Bbm5vdW5jZW1lbnRzPC90aXRsZT4KKyAgPC9wcm9wZXJ0aWVzPgorCis8Ym9keT4KKworPHNlY3Rpb24gbmFtZT0iQW5ub3VuY2VtZW50cyI+CisKKyAgICA8aDQgaWQ9ImEyMDAzMDYzMCI+MzAgSnVuIDIwMDMgLSBTdHJ1dHMgMS4xIEZpbmFsIHJlbGVhc2VkPC9oND4KKyAgICA8cD4KKyAgICAgICAgVGhlIFN0cnV0cyB0ZWFtIGlzIHByb3VkLCBhbmQgZXh0cmVtZWx5IHBsZWFzZWQsIHRvIGFubm91bmNlIHRoZSBGaW5hbAorICAgICAgICByZWxlYXNlIG9mIFN0cnV0cyAxLjEuIFRoaXMgcmVsZWFzZSBpbmNsdWRlcyBzaWduaWZpY2FudCBuZXcKKyAgICAgICAgZnVuY3Rpb25hbGl0eSwgYXMgd2VsbCBhcyBudW1lcm91cyBmaXhlcyBmb3IgYnVncyB3aGljaCB3ZXJlIHJlcG9ydGVkCisgICAgICAgIGFnYWluc3QgdGhlIHByZXZpb3VzIHJlbGVhc2UsIGFuZCBzdXBlcnNlZGVzIHRoZSBlYXJsaWVyIDEuMC4yIHZlcnNpb24KKyAgICAgICAgYXMgdGhlIGxhdGVzdCBvZmZpY2lhbCByZWxlYXNlIG9mIFN0cnV0cyBmcm9tIHRoZSBBcGFjaGUgU29mdHdhcmUKKyAgICAgICAgRm91bmRhdGlvbi4KKyAgICA8L3A+CisgICAgPHA+VGhlIGJpbmFyeSBkaXN0cmlidXRpb24gaXMgYXZhaWxhYmxlIGF0OiA8YSBocmVmPQorICAgICJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZGlzdC9qYWthcnRhL3N0cnV0cy9iaW5hcmllcy8iPgorICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9kaXN0L2pha2FydGEvc3RydXRzL2JpbmFyaWVzLzwvYT4gPC9wPgorICAgIDxwPmFuZCB0aGUgc291cmNlIGRpc3RyaWJ1dGlvbiBpcyBhdmFpbGFibGUgYXQ6IDxhIGhyZWY9CisgICAgImh0dHA6Ly93d3cuYXBhY2hlLm9yZy9kaXN0L2pha2FydGEvc3RydXRzL3NvdXJjZS8iPgorICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9kaXN0L2pha2FydGEvc3RydXRzL3NvdXJjZS88L2E+PC9wPgorICAgIDxwPkluIGFkZGl0aW9uLCB0aGUgbGlicmFyeSBkaXN0cmlidXRpb24sIHdoaWNoIGNvbnRhaW5zIHVwZGF0ZWQgYmluYXJpZXMKKyAgICAgICB3aXRob3V0IHRoZSBzYW1wbGUgYXBwbGljYXRpb25zLCBpcyBhdmFpbGFibGUgYXQ6IDwvcD4KKyAgICA8cD48YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZGlzdC9qYWthcnRhL3N0cnV0cy9saWJyYXJ5LyI+CisgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2Rpc3QvamFrYXJ0YS9zdHJ1dHMvbGlicmFyeS88L2E+IDwvcD4KKyAgICA8cD5EZXRhaWxzIG9mIHRoZSBjaGFuZ2VzIGluIHRoaXMgcmVsZWFzZSBhcmUgYXZhaWxhYmxlIGluIHRoZSBSZWxlYXNlCisgICAgTm90ZXMsd2hpY2ggY2FuIGJlIGZvdW5kIGhlcmU6IDwvcD4KKyAgICA8cD48YSBocmVmPQorICAgICJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjEuaHRtbCI+CisgICAgaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvdXNlckd1aWRlL3JlbGVhc2Utbm90ZXMtMS4xLmh0bWw8L2E+IDwvcD4KKyAgICA8aHIvPgorCisgICAgPGg0IGlkPSJhMjAwMzAyMjMiPjIzIEZlYiAyMDAzIC0gU3RydXRzIDEuMSBSZWxlYXNlIENhbmRpZGF0ZSAxIFJlbGVhc2VkPC9oND4KKyAgICA8cD4KKyAgICAgICAgVGhlIFN0cnV0cyB0ZWFtIGlzIHByb3VkIHRvIGFubm91bmNlIHRoZSByZWxlYXNlIG9mIFN0cnV0cyAxLjEgUmVsZWFzZQorICAgICAgICBDYW5kaWRhdGUgMS4gVGhpcyByZWxlYXNlIGluY2x1ZGVzIHNvbWUgbmV3IGZ1bmN0aW9uYWxpdHksIGFzIHdlbGwgYXMKKyAgICAgICAgZml4ZXMgZm9yIGEgbnVtYmVyIG9mIGJ1Z3Mgd2hpY2ggd2VyZSByZXBvcnRlZCBhZ2FpbnN0IGVhcmxpZXIgdmVyc2lvbnMuCisgICAgICAgIFRoZSBTdHJ1dHMgVGVhbSBiZWxpZXZlcyB0aGF0IHRoaXMgcmVsZWFzZSBpcyByZWFkeSBmb3IgcHJpbWUgdGltZSwgaGVuY2UKKyAgICAgICAgaXRzIGRlc2lnbmF0aW9uIGFzIGEgcmVsZWFzZSBjYW5kaWRhdGUuCisgICAgPC9wPgorICAgIDxwPgorICAgICAgICBUaGUgYmluYXJ5IGRpc3RyaWJ1dGlvbiBpcyBhdmFpbGFibGUgYXQ6CisgICAgPC9wPgorICAgIDxwPgorICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZGlzdC9qYWthcnRhL3N0cnV0cy9iaW5hcmllcy8iPgorICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvZGlzdC9qYWthcnRhL3N0cnV0cy9iaW5hcmllcy88L2E+CisgICAgPC9wPgorICAgIDxwPgorICAgICAgICBhbmQgdGhlIHNvdXJjZSBkaXN0cmlidXRpb24gaXMgYXZhaWxhYmxlIGF0OgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2Rpc3QvamFrYXJ0YS9zdHJ1dHMvc291cmNlLyI+CisgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9kaXN0L2pha2FydGEvc3RydXRzL3NvdXJjZS88L2E+CisgICAgPC9wPgorICAgIDxwPgorICAgICAgICBJbiBhZGRpdGlvbiwgdGhlIGxpYnJhcnkgZGlzdHJpYnV0aW9uLCB3aGljaCBjb250YWlucyB1cGRhdGVkIGJpbmFyaWVzCisgICAgICAgIHdpdGhvdXQgdGhlIHNhbXBsZSBhcHBsaWNhdGlvbnMsIGlzIGF2YWlsYWJsZSBhdDoKKyAgICA8L3A+CisgICAgPHA+CisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9kaXN0L2pha2FydGEvc3RydXRzL2xpYnJhcnkvIj4KKyAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2Rpc3QvamFrYXJ0YS9zdHJ1dHMvbGlicmFyeS88L2E+CisgICAgPC9wPgorICAgIDxwPgorICAgICAgICBEZXRhaWxzIG9mIHRoZSBjaGFuZ2VzIGluIHRoaXMgcmVsZWFzZSBhcmUgYXZhaWxhYmxlIGluIHRoZSBSZWxlYXNlCisgICAgICAgIE5vdGVzLCB3aGljaCBjYW4gYmUgZm91bmQgaGVyZToKKyAgICA8L3A+CisgICAgPHA+CisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL3VzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLTEuMS1yYzEuaHRtbCI+CisgICAgICAgIGh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL3VzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLTEuMS1yYzEuaHRtbDwvYT4KKyAgICA8L3A+CisgICAgPGhyLz4KKworICAgIDxoNCBpZD0iUzIwMDIxMjMxIj4zMSBEZWMgMjAwMiAtIFN0cnV0cyAxLjEgQmV0YSAzIFJlbGVhc2VkPC9oND4KKyAgICA8cD5UaGUgU3RydXRzIHRlYW0gaXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhlIHJlbGVhc2Ugb2YgU3RydXRzIDEuMSBCZXRhIDMuIFRoaXMKKyAgICByZWxlYXNlIGluY2x1ZGVzIHNpZ25pZmljYW50IG5ldyBmdW5jdGlvbmFsaXR5LCB3aGlsZSByZXRhaW5pbmcgZnVsbAorICAgIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggZWFybGllciB2ZXJzaW9ucyBvZiBTdHJ1dHMuIEl0IGFsc28KKyAgICBpbmNvcnBvcmF0ZXMgZml4ZXMgZm9yIGEgbnVtYmVyIG9mIGJ1Z3Mgd2hpY2ggd2VyZSByZXBvcnRlZCBhZ2FpbnN0IGVhcmxpZXIKKyAgICB2ZXJzaW9ucy4KKyAgICA8L3A+CisgICAgPHA+CisgICAgVGhlIGJpbmFyeSBkaXN0cmlidXRpb24gaXMgYXZhaWxhYmxlIGF0OgorICAgIDwvcD4KKyAgICA8cD4KKyAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZGlzdC9qYWthcnRhL3N0cnV0cy9iaW5hcmllcy8iPgorICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9kaXN0L2pha2FydGEvc3RydXRzL2JpbmFyaWVzLzwvYT4KKyAgICA8L3A+CisgICAgPHA+CisgICAgYW5kIHRoZSBzb3VyY2UgZGlzdHJpYnV0aW9uIGlzIGF2YWlsYWJsZSBhdDoKKyAgICA8L3A+CisgICAgPHA+CisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2Rpc3QvamFrYXJ0YS9zdHJ1dHMvc291cmNlLyI+CisgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2Rpc3QvamFrYXJ0YS9zdHJ1dHMvc291cmNlLzwvYT4KKyAgICA8L3A+CisgICAgPHA+CisgICAgSW4gYWRkaXRpb24sIHRoZSBsaWJyYXJ5IGRpc3RyaWJ1dGlvbiwgd2hpY2ggY29udGFpbnMgdXBkYXRlZCBiaW5hcmllcworICAgIHdpdGhvdXQgdGhlIHNhbXBsZSBhcHBsaWNhdGlvbnMsIGlzIGF2YWlsYWJsZSBhdDoKKyAgICA8L3A+CisgICAgPHA+CisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2Rpc3QvamFrYXJ0YS9zdHJ1dHMvbGlicmFyeS8iPgorICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9kaXN0L2pha2FydGEvc3RydXRzL2xpYnJhcnkvPC9hPgorICAgIDwvcD4KKyAgICA8cD4KKyAgICBEZXRhaWxzIG9mIHRoZSBjaGFuZ2VzIGluIHRoaXMgcmVsZWFzZSBhcmUgYXZhaWxhYmxlIGluIHRoZSBSZWxlYXNlIE5vdGVzLAorICAgIHdoaWNoIGNhbiBiZSBmb3VuZCBoZXJlOgorICAgIDwvcD4KKyAgICA8cD4KKyAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjEtYjMuaHRtbCI+CisgICAgaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvdXNlckd1aWRlL3JlbGVhc2Utbm90ZXMtMS4xLWIzLmh0bWw8L2E+CisgICAgPC9wPgorICAgIDxoci8+CisKKyAgICA8aDQgaWQ9ImEyMDAyMDgxMyI+MTIgQXVnIDIwMDIgLSBTdHJ1dHMgMS4xIEJldGEgMiBSZWxlYXNlZDwvaDQ+CisgICAgPHA+VGhlIFN0cnV0cyB0ZWFtIGlzIHByb3VkIHRvIGFubm91bmNlIHRoZSByZWxlYXNlIG9mIFN0cnV0cyAxLjEgQmV0YSAyLiBUaGlzCisgICAgcmVsZWFzZSBpbmNsdWRlcyBzaWduaWZpY2FudCBuZXcgZnVuY3Rpb25hbGl0eSwgd2hpbGUgcmV0YWluaW5nIGZ1bGwKKyAgICBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIGVhcmxpZXIgdmVyc2lvbnMgb2YgU3RydXRzLiBJdCBhbHNvCisgICAgaW5jb3Jwb3JhdGVzIGZpeGVzIGZvciBhIG51bWJlciBvZiBidWdzIHdoaWNoIHdlcmUgcmVwb3J0ZWQgYWdhaW5zdCBlYXJsaWVyCisgICAgdmVyc2lvbnMuCisgICAgPC9wPgorICAgIDxwPgorICAgIFRoZSBiaW5hcnkgZGlzdHJpYnV0aW9uIGlzIGF2YWlsYWJsZSBhdDoKKyAgICA8L3A+CisgICAgPHA+CisgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9idWlsZHMvamFrYXJ0YS1zdHJ1dHMvcmVsZWFzZS92MS4xLWIyLyI+aHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9idWlsZHMvamFrYXJ0YS1zdHJ1dHMvcmVsZWFzZS92MS4xLWIyLzwvYT4KKyAgICA8L3A+CisgICAgPHA+CisgICAgYW5kIHRoZSBzb3VyY2UgZGlzdHJpYnV0aW9uIGlzIGF2YWlsYWJsZSBhdDoKKyAgICA8L3A+CisgICAgPHA+CisgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9idWlsZHMvamFrYXJ0YS1zdHJ1dHMvcmVsZWFzZS92MS4xLWIyL3NyYy8iPmh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvYnVpbGRzL2pha2FydGEtc3RydXRzL3JlbGVhc2UvdjEuMS1iMi9zcmMvPC9hPgorICAgIDwvcD4KKyAgICA8cD4KKyAgICBJbiBhZGRpdGlvbiwgdGhlIGxpYnJhcnkgZGlzdHJpYnV0aW9uLCB3aGljaCBjb250YWlucyB1cGRhdGVkIGJpbmFyaWVzCisgICAgd2l0aG91dCB0aGUgc2FtcGxlIGFwcGxpY2F0aW9ucywgaXMgYXZhaWxhYmxlIGF0OgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIGh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvYnVpbGRzL2pha2FydGEtc3RydXRzL3JlbGVhc2UvdjEuMS1iMi9saWIvCisgICAgPC9wPgorICAgIDxwPgorICAgIERldGFpbHMgb2YgdGhlIGNoYW5nZXMgaW4gdGhpcyByZWxlYXNlIGFyZSBhdmFpbGFibGUgaW4gdGhlIFJlbGVhc2UgTm90ZXMsCisgICAgd2hpY2ggY2FuIGJlIGZvdW5kIGhlcmU6CisgICAgPC9wPgorICAgIDxwPgorICAgICAgaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvdXNlckd1aWRlL3JlbGVhc2Utbm90ZXMtMS4xLWIyLmh0bWwKKyAgICA8L3A+CisgICAgPGhyLz4KKworICAgIDxoNCBpZD0iYTIwMDIwMzE5Ij4xOSBNYXIgMjAwMiAtIFN0cnV0cyAxLjEgQmV0YSAxIFJlbGVhc2VkPC9oND4KKyAgICA8cD4KKyAgICBUaGUgU3RydXRzIHRlYW0gYW5ub3VuY2VzIHRoZSByZWxlYXNlIG9mIFN0cnV0cyAxLjEgQmV0YSAxLiBUaGlzIHJlbGVhc2UKKyAgICBpbmNsdWRlcyBzdWJzdGFudGlhbCBuZXcgZnVuY3Rpb25hbGl0eSwgd2hpbGUgcmV0YWluaW5nIGZ1bGwgYmFja3dhcmRzCisgICAgY29tcGF0aWJpbGl0eSB3aXRoIGVhcmxpZXIgdmVyc2lvbnMgb2YgU3RydXRzLiBJdCBhbHNvIGluY29ycG9yYXRlcyBmaXhlcworICAgIGZvciBhIG51bWJlciBvZiBidWdzIHdoaWNoIHdlcmUgcmVwb3J0ZWQgYWdhaW5zdCBlYXJsaWVyIHZlcnNpb25zLgorICAgIDwvcD4KKyAgICA8cD4KKyAgICBUaGUgYmluYXJ5IGRpc3RyaWJ1dGlvbiBmb3IgdGhpcyByZWxlYXNlIGlzIGF2YWlsYWJsZQorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvYnVpbGRzL2pha2FydGEtc3RydXRzL3JlbGVhc2UvdjEuMS1iMS8iPgorICAgIDxzdHJvbmc+aGVyZTwvc3Ryb25nPjwvYT4KKyAgICBhbmQgdGhlIHNvdXJjZSBkaXN0cmlidXRpb24KKyAgICBpcyBhdmFpbGFibGUKKyAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2J1aWxkcy9qYWthcnRhLXN0cnV0cy9yZWxlYXNlL3YxLjEtYjEvc3JjLyI+CisgICAgPHN0cm9uZz5oZXJlPC9zdHJvbmc+PC9hPi4KKyAgICBJbiBhZGRpdGlvbiwgYSBsaWJyYXJ5IGRpc3RyaWJ1dGlvbiwgd2hpY2ggY29uc2lzdHMgb2YgYSBtaW5pbWFsCisgICAgYmluYXJ5IGRpc3RyaWJ1dGlvbiwgd2l0aG91dCBzYW1wbGUgd2ViIGFwcGxpY2F0aW9ucyBvciBhZGRpdGlvbmFsIGNvZGUsIGlzCisgICAgYXZhaWxhYmxlCisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2Rpc3QvamFrYXJ0YS9qYWthcnRhLXN0cnV0cy9yZWxlYXNlL3YxLjEtYjEvbGliLyI+CisgICAgPHN0cm9uZz5oZXJlPC9zdHJvbmc+PC9hPi4KKyAgICA8L3A+CisgICAgPGhyLz4KKworICAgIDxoNCBpZD0iYTIwMDIwMjExIj4xMSBGZWIgMjAwMiAtIFN0cnV0cyAxLjAuMiBSZWxlYXNlZDwvaDQ+CisgICAgPHA+CisgICAgVGhlIFN0cnV0cyB0ZWFtIGFubm91bmNlcyB0aGUgcmVsZWFzZSBvZiBTdHJ1dHMgMS4wLjIuIFRoaXMgcmVsZWFzZSBpcyBhCisgICAgYnVnIGZpeCBvbmx5IHJlbGVhc2UsIHdoaWNoIGZpeGVzIGEgY29tcGF0aWJpbGl0eSBwcm9ibGVtIGluYWR2ZXJ0ZW50bHkgaW50cm9kdWNlZAorICAgIHdpdGggdGhlIHByZXZpb3VzIDEuMC4xIHJlbGVhc2UuCisgICAgPC9wPgorICAgIDxwPgorICAgIFRoZSBiaW5hcnkgZGlzdHJpYnV0aW9uIGZvciB0aGlzIHJlbGVhc2UgaXMgYXZhaWxhYmxlCisgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9idWlsZHMvamFrYXJ0YS1zdHJ1dHMvcmVsZWFzZS92MS4wLjIvIj4KKyAgICA8c3Ryb25nPmhlcmU8L3N0cm9uZz48L2E+CisgICAgYW5kIHRoZSBzb3VyY2UgZGlzdHJpYnV0aW9uCisgICAgaXMgYXZhaWxhYmxlCisgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9idWlsZHMvamFrYXJ0YS1zdHJ1dHMvcmVsZWFzZS92MS4wLjIvc3JjLyI+CisgICAgPHN0cm9uZz5oZXJlPC9zdHJvbmc+PC9hPi4KKyAgICBJbiBhZGRpdGlvbiwgYSBsaWJyYXJ5IGRpc3RyaWJ1dGlvbiwgd2hpY2ggY29uc2lzdHMgb2YgYSBtaW5pbWFsCisgICAgYmluYXJ5IGRpc3RyaWJ1dGlvbiwgd2l0aG91dCBzYW1wbGUgd2ViIGFwcGxpY2F0aW9ucyBvciBhZGRpdGlvbmFsIGNvZGUsIGlzCisgICAgYXZhaWxhYmxlCisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2Rpc3QvamFrYXJ0YS9qYWthcnRhLXN0cnV0cy9yZWxlYXNlL3YxLjAuMi9saWIvIj4KKyAgICA8c3Ryb25nPmhlcmU8L3N0cm9uZz48L2E+LgorICAgIDwvcD4KKyAgICA8aHIvPgorCisgICAgPGg0IGlkPSJhMjAwMjAxMTIiPjEyIEphbiAyMDAyIC0gU3RydXRzIDEuMC4xIFJlbGVhc2VkPC9oND4KKyAgICA8cD4KKyAgICAgIFRoZSBTdHJ1dHMgdGVhbSBpcyBwcm91ZCB0byBhbm5vdW5jZSB0aGUgcmVsZWFzZSBvZiBTdHJ1dHMgMS4wLjEuIFRoaXMKKyAgICAgIHJlbGVhc2UgaXMgcHJpbWFyaWx5IGEgYnVnIGZpeCByZWxlYXNlLCB3aGljaCBmaXhlcyBhIG51bWJlciBvZiBrbm93bgorICAgICAgcHJvYmxlbXMgd2l0aCB0aGUgcHJldmlvdXMgMS4wIHJlbGVhc2UuCisgICAgPC9wPgorICAgIDxwPgorICAgICAgVGhlIGJpbmFyeSBkaXN0cmlidXRpb24gZm9yIHRoaXMgcmVsZWFzZSBpcyBhdmFpbGFibGUKKyAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9kaXN0L2pha2FydGEvamFrYXJ0YS1zdHJ1dHMvcmVsZWFzZS92MS4wLjEvIj5oZXJlPC9hPgorICAgICAgYW5kIHRoZSBzb3VyY2UgZGlzdHJpYnV0aW9uIGlzIGF2YWlsYWJsZQorICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2Rpc3QvamFrYXJ0YS9qYWthcnRhLXN0cnV0cy9yZWxlYXNlL3YxLjAuMS9zcmMvIj5oZXJlPC9hPi4KKyAgICAgIEluIGFkZGl0aW9uLCBhIGxpYnJhcnkgZGlzdHJpYnV0aW9uLCB3aGljaCBjb25zaXN0cyBvZiBhIG1pbmltYWwgYmluYXJ5IGRpc3RyaWJ1dGlvbiwKKyAgICAgIHdpdGhvdXQgc2FtcGxlIHdlYiBhcHBsaWNhdGlvbnMgb3IgYWRkaXRpb25hbCBjb2RlLCBpcyBhdmFpbGFibGUKKyAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9kaXN0L2pha2FydGEvamFrYXJ0YS1zdHJ1dHMvcmVsZWFzZS92MS4wLjEvbGliLyI+aGVyZTwvYT4uCisgICAgPC9wPgorICAgIDxoci8+CisKKworICAgIDxoNCBpZD0iYTIwMDEwNjE1Ij4xNSBKdW4gMjAwMSAtIFN0cnV0cyAxLjAgUmVsZWFzZWQ8L2g0PgorCis8cD4KK1RoZSBwcm9kdWN0aW9uIHJlbGVhc2Ugb2YgU3RydXRzIDEuMCwgYW4gb3BlbiBzb3VyY2UgZnJhbWV3b3JrIGZvciBidWlsZGluZyBXZWIgYXBwbGljYXRpb25zLCBpcyBub3cgYXZhaWxhYmxlIGZvciBkb3dubG9hZCBhdCBqYWthcnRhLmFwYWNoZS5vcmcuIFN0cnV0cyBlbmNvdXJhZ2VzIGFwcGxpY2F0aW9uIGFyY2hpdGVjdHVyZXMgYmFzZWQgb24gdGhlIE1vZGVsLVZpZXctQ29udHJvbGxlciAoTVZDKSBwYXR0ZXJuIGFuZCBwcm92aWRlcyBzZXJ2aWNlcyBjb21tb24KK3RvIG1vc3QgV2ViIGFwcGxpY2F0aW9ucy4gU3RydXRzIGhlbHBzIGRldmVsb3BlcnMgZGVwbG95IHByb2R1Y3RzIHRoYXQgYXJlIHJlbGlhYmxlLCBzY2FsZWFibGUsIGFuZCBlYXNpZXIgdG8gbWFpbnRhaW4uCis8L3A+CisKKzxwPgorVGhlIFN0cnV0cyBmcmFtZXdvcmsgb2ZmZXJzIHNlcnZpY2VzIGluIHRocmVlIHByaW1hcnkgYXJlYXM6Cis8L3A+CisKKzxwPgorKiBBIGNvbnRyb2xsZXIgc2VydmxldCB0byBkaXNwYXRjaCByZXF1ZXN0cyB0byBzcGVjaWZpYyBBY3Rpb24gY2xhc3NlcyAocHJvdmlkZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGRldmVsb3BlcikuPGJyLz4KKyogSlNQIGN1c3RvbSB0YWdzIHRvIGhlbHAgZGV2ZWxvcGVycyBjcmVhdGUgaW50ZXJhY3RpdmUgZm9ybS1iYXNlZCBhcHBsaWNhdGlvbnMuPGJyLz4KKyogVXRpbGl0eSBjbGFzc2VzIGZvciBYTUwgcGFyc2luZywgYXV0b21hdGljIEphdmFCZWFuIHBvcHVsYXRpb24sIGFuZCBpbnRlcm5hdGlvbmFsaXphdGlvbiBvZiBwcm9tcHRzIGFuZCBtZXNzYWdlcy4KKzwvcD4KKworPHA+CitTdHJ1dHMnIHN1cHBvcnQgZm9yIGludGVybmF0aW9uYWxpemF0aW9uIGJ1aWxkcyBvbiB0b3Agb2YgdGhlIEphdmEgTG9jYWxlIEFQSSwgYW5kIGhhdmUgbWFkZSBpdCBhIHBvcHVsYXIgY2hvaWNlIGZvciBhcHBsaWNhdGlvbnMgd29ybGR3aWRlLiBTdHJ1dHMgY29udHJpYnV0b3JzIGluY2x1ZGUgZGV2ZWxvcGVycyBmcm9tIEF1c3RyYWxpYSwgRnJhbmNlLCBSdXNzaWEsIGFuZCBvdGhlciBwYXJ0cyBvZiB0aGUgZ2xvYmUuCis8L3A+CisKKzxwPgorSW4gYWRkaXRpb24gdG8gdGhlIFN0cnV0cyBvZmZpY2lhbCBkaXN0cmlidXRpb24sIHNldmVyYWwgdGhpcmQtcGFydHkgbGlicmFyaWVzIGFyZSBhbHJlYWR5IGF2YWlsYWJsZSwgd2hpY2ggb2ZmZXIgZW5oYW5jZWQgc3VwcG9ydCBmb3IgSlNQIHRlbXBsYXRlcywgSFRNTCBmb3JtIHZhbGlkYXRpb24sIGFuZCBhdXRvbWF0aWMgSmF2YUJlYW4gY3JlYXRpb24uIFN0cnV0cyBoYXMgYWxzbyBiZWVuIGludGVncmF0ZWQgd2l0aCB0aGUgRXhwcmVzc28gRnJhbWV3b3JrIGRpc3RyaWJ1dGVkIGJ5CitKQ29ycG9yYXRlIEx0ZC4gKGpjb3Jwb3JhdGUuY29tKS4KKzwvcD4KKworPHA+CitTdHJ1dHMgY2FuIGJlIHVzZWQgd2l0aCBhIEoyRUUgQXBwbGljYXRpb24gc2VydmVyIHRvIGRlcGxveSBkaXN0cmlidXRlZCBhcHBsaWNhdGlvbnMsIGJ1dCB3aWxsIHJ1biB1bmRlciBhbnkgY29tcGxpYW50IFNlcnZsZXQgY29udGFpbmVyIChTZXJ2bGV0IEFQSSAyLjIrLCBKU1AgMS4xKyksIGluY2x1ZGluZyBUb21jYXQgMy4yIG9yIGxhdGVyLiBJbiBmYWN0LCBTdHJ1dHMgaXMgYWxyZWFkeSB1c2VkIGFzIGFuIGluZm9ybWFsIGNvbXBsaWFuY2UgdGVzdCBmb3IgSmF2YSBTZXJ2bGV0Citjb250YWluZXJzIGFuZCBKMkVFIEFwcGxpY2F0aW9uIHNlcnZlcnMKKzwvcD4gCisKKzxwPgorVGhlIFN0cnV0cyBwcm9qZWN0IHdhcyBmb3VuZGVkIGluIE1heSAyMDAwIGJ5IENyYWlnIE1jQ2xhbmFoYW4uIE1jQ2xhbmFoYW4gaXMgYWxzbyB0aGUgbGVhZCBkZXZlbG9wZXIgb2YgVG9tY2F0IDQuMCwgU3VuJ3MgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGZvciBKYXZhIFNlcnZsZXQgYW5kIFNlcnZlclBhZ2UgY29udGFpbmVycy4gQm90aCBUb21jYXQgYW5kIFN0cnV0cyBhcmUgb3BlbiBzb3VyY2UgYXZhaWxhYmxlIHVuZGVyIHRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwKK2FuZCBtYXkgYmUgZG93bmxvYWRlZCBhdCBqYWthcnRhLmFwYWNoZS5vcmcuCis8L3A+CisKKzxwPgorVHdlbnR5LXNpeCBpbmRlcGVuZGVudCBkZXZlbG9wZXJzIGNvbnRyaWJ1dGVkIHRvIHRoZSBjcmVhdGlvbiBvZiBTdHJ1dHMgMS4wLCB3aXRoIHRoZSBoZWxwIG9mIG92ZXIgMTMwMCBzdWJzY3JpYmVycyB0byB0aGUgU3RydXRzIG1haWxpbmcgbGlzdHMuPGJyLz4KKzwvcD4KKworPGhyIC8+CisKKzwvc2VjdGlvbj4KKworICAgIDxzZWN0aW9uPgorICAgICAgIDxwIGNsYXNzPSJyaWdodCI+TmV4dDoKKyAgICAgICA8YSBocmVmPSJ1c2VyR3VpZGUvaW5kZXguaHRtbCI+VXNlciBhbmQgRGV2ZWxvcGVyIEd1aWRlczwvYT4KKyAgICAgICA8L3A+CisgICAgPC9zZWN0aW9uPgorCis8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZXhhbXBsZS54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9leGFtcGxlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzY5NjhiCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZXhhbXBsZS54bWwKQEAgLTAsMCArMSwxMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50PgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT48L3RpdGxlPgorICA8L3Byb3BlcnRpZXM+CisKKyAgPG1ldGEgbmFtZT0ia2V5d29yZCIgY29udGVudD0iamFrYXJ0YSwgamF2YSIvPgorCis8Ym9keT4KKworPHNlY3Rpb24gbmFtZT0iU2VjdGlvbiAxIj4KKzxwPgorVGhpcyBpcyBzZWN0aW9uIDEuCis8L3A+CisKKzx0YWJsZT4KKzx0cj4KKyAgICA8dGQ+VGhpcyBpcyBhIHRhYmxlPC90ZD48dGQ+VGhpcyBpcyBhIHRhYmxlPC90ZD4KKzwvdHI+Cis8dHI+CisgICAgPHRkPlRoaXMgaXMgYSB0YWJsZTwvdGQ+PHRkPlRoaXMgaXMgYSB0YWJsZTwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKworPHVsPgorICAgIDxsaT5UaGlzIGlzIGFuIHVub3JkZXJlZCBsaXN0LjwvbGk+Cis8L3VsPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IlNlY3Rpb24gMiI+Cis8cD4KK1RoaXMgaXMgc2VjdGlvbiAyLgorPC9wPgorCis8b2w+CisgICAgPGxpPlRoaXMgaXMgYW4gb3JkZXJlZCBsaXN0LjwvbGk+Cis8L29sPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSJTZWN0aW9uIDMiPgorPHA+CitUaGlzIGlzIHNlY3Rpb24gMy4KKzwvcD4KKworPHNvdXJjZT4KKyAgICBBbnl0aGluZyB3aXRoaW4gdGhpcyB0YWcgaXMgcmVuZGVyZWQgYXMgYSAiYm94IgorICAgIHdpdGggYmx1ZSBsaW5lcyBhbmQgPHByZT48L3ByZT4gdGFncyBhcm91bmQgaXQuCis8L3NvdXJjZT4KKworICAgIDxzdWJzZWN0aW9uIG5hbWU9IlN1YnNlY3Rpb24gb2YgU2VjdGlvbiAzIj4KKyAgICA8cD4KKyAgICAgICAgVGhpcyBpcyB0aGUgc3Vic2VjdGlvbiAzLgorICAgIDwvcD4KKworICAgIDxzb3VyY2U+PCFbQ0RBVEFbICAgICAgCisgICAgPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKyAgICA8IURPQ1RZUEUgc3RydXRzLWNvbmZpZyBQVUJMSUMKKyAgICAgICAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMS4yLy9FTiIKKyAgICAgICAgICAgICAgImh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2R0ZHMvc3RydXRzLWNvbmZpZ18xXzIuZHRkIj4KKyAgICA8c3RydXRzLWNvbmZpZz4KKyAgICAgICAgPGZvcm0tYmVhbnM+CisgICAgICAgICAgICA8Zm9ybS1iZWFuCisgICAgICAgICAgICAgICAgbmFtZT0ibG9nb25Gb3JtIgorICAgICAgICAgICAgICAgIHR5cGU9ImFwcC5Mb2dvbkZvcm0iLz4KKyAgICAgICAgPC9mb3JtLWJlYW5zPgorICAgICAgICA8YWN0aW9uLW1hcHBpbmdzPgorICAgICAgICAgICAgPGFjdGlvbgorICAgICAgICAgICAgICAgIHBhdGg9Ii9XZWxjb21lIgorICAgICAgICAgICAgICAgIGZvcndhcmQ9Ii9wYWdlcy9XZWxjb21lLmpzcCIvPgorICAgICAgICAgICAgPGFjdGlvbgorICAgICAgICAgICAgICAgIHBhdGg9Ii9Mb2dvbiIKKyAgICAgICAgICAgICAgICBmb3J3YXJkPSIvcGFnZXMvTG9nb24uanNwIi8+CisgICAgICAgICAgICA8YWN0aW9uCisgICAgICAgICAgICAgICAgcGF0aD0iL0xvZ29uU3VibWl0IgorICAgICAgICAgICAgICAgIHR5cGU9ImFwcC5Mb2dvbkFjdGlvbiIKKyAgICAgICAgICAgICAgICBuYW1lPSJsb2dvbkZvcm0iCisgICAgICAgICAgICAgICAgc2NvcGU9InJlcXVlc3QiCisgICAgICAgICAgICAgICAgdmFsaWRhdGU9InRydWUiCisgICAgICAgICAgICAgICAgaW5wdXQ9Ii9Mb2dvbi5kbyI+CisgICAgICAgICAgICAgICAgPGZvcndhcmQKKyAgICAgICAgICAgICAgICAgICAgbmFtZT0ic3VjY2VzcyIKKyAgICAgICAgICAgICAgICAgICAgcGF0aD0iL1dlbGNvbWUuZG8iLz4KKyAgICAgICAgICAgICAgICA8Zm9yd2FyZAorICAgICAgICAgICAgICAgICAgICBuYW1lPSJmYWlsdXJlIgorICAgICAgICAgICAgICAgICAgICBwYXRoPSIvTG9nb24uZG8iLz4KKyAgICAgICAgICAgIDwvYWN0aW9uPgorICAgICAgICAgICAgPGFjdGlvbgorICAgICAgICAgICAgICAgIHBhdGg9Ii9Mb2dvZmYiCisgICAgICAgICAgICAgICAgdHlwZT0iYXBwLkxvZ29mZkFjdGlvbiI+CisgICAgICAgICAgICAgICAgPGZvcndhcmQKKyAgICAgICAgICAgICAgICAgICAgbmFtZT0ic3VjY2VzcyIKKyAgICAgICAgICAgICAgICAgICAgcGF0aD0iL1dlbGNvbWUuZG8iLz4KKyAgICAgICAgICAgIDwvYWN0aW9uPgorICAgICAgICA8L2FjdGlvbi1tYXBwaW5ncz4KKyAgICAgICAgPG1lc3NhZ2UtcmVzb3VyY2VzIHBhcmFtZXRlcj0icmVzb3VyY2VzLmFwcGxpY2F0aW9uIi8+CisgICAgPC9zdHJ1dHMtY29uZmlnPgorICAgIF1dPjwvc291cmNlPgorCisKKyAgICA8L3N1YnNlY3Rpb24+Cis8L3NlY3Rpb24+CisKKzxmb290ZXI+CisgICAgPGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9jdGVjbCI+CisgICAgICA8aW1nIHNyYz0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9zZmxvZ28ucGhwP2dyb3VwX2lkPTcyNzQ4IiBib3JkZXI9IjAiIGFsdD0ic2YgbG9nbyIvPgorICAgIDwvYT4KKzwvZm9vdGVyPgorCis8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZmFxLmZtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ZhcS5mbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ2MmVkNwotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ZhcS5mbWwKQEAgLTAsMCArMSwxNjEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxmYXFzIHRpdGxlPSJGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9ucyI+CisKKzwhLS0gCisgICAgTWF2ZW4gRkFRIFBsdWdJbiAxLjIgd2lsbCBhbGxvdyBtdWx0aXBsZSBmYXFzIGJ1dCwgZm9yIG5vdywgd2UnbGwganVzdCAKKyAgICBnZW5lcmF0ZSB0aGVtIGZyb20geGRvY3MuIFRoaXMgZmlsZSBpcyBqdXN0IGFuIGV4YW1wbGUgb2YgYSBGQVEgZmlsZSBmb3IKKyAgICB0aGUgRkFRIHBsdWctaW4gYW5kIGlzIG5vdCBtYWludGFpbmVkLgorLS0+ICAgICAKKyAgICAgIAorICA8cGFydCBpZD0iZ2VuZXJhbCI+CisgICAgPHRpdGxlPkdlbmVyYWw8L3RpdGxlPgorCisgICAgPGZhcSBpZD0id2h5Ij4KKyAgICAgIDxxdWVzdGlvbj5XaHkgZG8gd2UgbmVlZCBTdHJ1dHM/PC9xdWVzdGlvbj4KKyAgICAgIDxhbnN3ZXI+CisgICAgICAgIEphdmEgdGVjaG5vbG9naWVzIGdpdmUgZGV2ZWxvcGVycyBhIHNlcmlvdXMgYm9vc3Qgd2hlbiBjcmVhdGluZyBhbmQgCisgICAgICAgIG1haW50YWluaW5nIGFwcGxpY2F0aW9ucyB0byBtZWV0IHRoZSBkZW1hbmRzIG9mIHRvZGF5J3MgcHVibGljIFdlYiAKKyAgICAgICAgc2l0ZXMgYW5kIGVudGVycHJpc2UgaW50cmFuZXRzLiBTdHJ1dHMgY29tYmluZXMgSmF2YSBTZXJ2bGV0cywgSmF2YSAKKyAgICAgICAgU2VydmVyUGFnZXMsIGN1c3RvbSB0YWdzLCBhbmQgbWVzc2FnZSByZXNvdXJjZXMgaW50byBhIHVuaWZpZWQgCisgICAgICAgIGZyYW1ld29yay4gVGhlIGVuZCByZXN1bHQgaXMgYSBjb29wZXJhdGl2ZSwgc3luZXJnaXN0aWMgcGxhdGZvcm0sIAorICAgICAgICBzdWl0YWJsZSBmb3IgZGV2ZWxvcG1lbnQgdGVhbXMsIGluZGVwZW5kZW50IGRldmVsb3BlcnMsIGFuZCBldmVyeW9uZSAKKyAgICAgICAgaW4gYmV0d2Vlbi4KKyAgICAgIDwvYW5zd2VyPgorICAgIDwvZmFxPgorCisgICAgPGZhcSBpZD0iaG93Ij4KKyAgICAgIDxxdWVzdGlvbj5Ib3cgZG9lcyBTdHJ1dHMgd29yaz88L3F1ZXN0aW9uPgorICAgICAgPGFuc3dlcj4KKyAgICAgICAgSmF2YSBTZXJ2bGV0cyBhcmUgZGVzaWduZWQgdG8gaGFuZGxlIHJlcXVlc3RzIG1hZGUgYnkgV2ViIGJyb3dzZXJzLiAKKyAgICAgICAgSmF2YSBTZXJ2ZXJQYWdlcyBhcmUgZGVzaWduZWQgdG8gY3JlYXRlIGR5bmFtaWMgV2ViIHBhZ2VzIHRoYXQgY2FuIHR1cm4KKyAgICAgICAgIGJpbGxib2FyZCBzaXRlcyBpbnRvIGxpdmUgYXBwbGljYXRpb25zLiBTdHJ1dHMgdXNlcyBhIHNwZWNpYWwgU2VydmxldCAKKyAgICAgICAgIGFzIGEgc3dpdGNoYm9hcmQgdG8gcm91dGUgcmVxdWVzdHMgZnJvbSBXZWIgYnJvd3NlcnMgdG8gdGhlIGFwcHJvcHJpYXRlIAorICAgICAgICAgU2VydmVyUGFnZS4gVGhpcyBtYWtlcyBXZWIgYXBwbGljYXRpb25zIG11Y2ggZWFzaWVyIHRvIGRlc2lnbiwgY3JlYXRlLCAKKyAgICAgICAgIGFuZCBtYWludGFpbi4KKyAgICAgIDwvYW5zd2VyPgorICAgIDwvZmFxPgorICAgIAorICAgIDxmYXEgaWQ9ImNvbXBhdGlibGUiPgorICAgICAgPHF1ZXN0aW9uPklzIFN0cnV0cyBjb21wYXRpYmxlIHdpdGggb3RoZXIgSmF2YSB0ZWNobm9sb2dpZXM/PC9xdWVzdGlvbj4KKyAgICAgIDxhbnN3ZXI+CisgICAgICAgIFllcy4gU3RydXRzIGlzIGNvbW1pdHRlZCB0byBzdXBwb3J0aW5nIGluZHVzdHJ5IHN0YW5kYXJkcy4gT3VyIGxlYWQgCisgICAgICAgIGRldmVsb3BlciBpcyBhIG1lbWJlciBvZiA8YSBpZD0iaHR0cDovL2phdmEuc3VuLmNvbS9hYm91dEphdmEvY29tbXVuaXR5cHJvY2Vzcy9qc3IvanNyXzA1Ml9qc3B0YWdsaWIuaHRtbCI+SlNSMDUyPC9hPiwgCisgICAgICAgIFN1bidzIEV4cGVydCBncm91cCBmb3IgZGV2ZWxvcGluZyBhIHN0YW5kYXJkIGxpYnJhcnkgb2YgY3VzdG9tIEpTUCAKKyAgICAgICAgdGFncy4gQSBwcmltYXJ5IGRlc2lnbiBjcml0ZXJpYSBpcyB0aGF0IFN0cnV0cyBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCAKKyAgICAgICAgU3VuJ3MgSjJFRSBwbGF0Zm9ybSBmb3IgY29ycG9yYXRlIGVudGVycHJpc2VzLiBJbiBmYWN0LCBTdHJ1dHMgcmVhbGx5IAorICAgICAgICBhY3RzIGFzIGFuIGludGVncmF0b3Igb2YgSmF2YSB0ZWNobm9sb2dpZXMsIHNvIHRoYXQgdGhleSBjYW4gYmUgdXNlZCBpbiAKKyAgICAgICAgdGhlICZxdW90O3JlYWwgd29ybGQmcXVvdDsuCisgICAgICA8L2Fuc3dlcj4KKyAgICA8L2ZhcT4KKworICAgIDxmYXEgaWQ9IndobyI+CisgICAgICA8cXVlc3Rpb24+V2hvIHdyb3RlIFN0cnV0cz88L3F1ZXN0aW9uPgorICAgICAgPGFuc3dlcj4KKwkgICAgPHA+U3RydXRzIHdhcyBjcmVhdGVkIGJ5IENyYWlnIFIuIE1jQ2xhbmFoYW4sIGFuZCBkb25hdGVkIHRvIHRoZSBBcGFjaGUgCisJICAgIFNvZnR3YXJlIEZvdW5kYXRpb24gaW4gTWF5IDIwMDAuIENyYWlnIGlzIHRoZSBwcmltYXJ5IGRldmVsb3BlciBvZiBib3RoIAorCSAgICBTdHJ1dHMgYW5kIDxhIGlkPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RvbWNhdC9pbmRleC5odG1sIj5Ub21jYXQgNDwvYT4sIAorCSAgICB0aGUgYmFzaXMgZm9yIHRoZSBvZmZpY2lhbCByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gZm9yIGEgc2VydmxldCAyLjMgCisJICAgIGFuZCBKU1AgMS4yIGNvbnRhaW5lci4gV2l0aCBzdGFibGUgcmVsZWFzZXMgb2YgU3RydXRzIGFuZCBUb21jYXQgNCBpbiAKKwkgICAgY2lyY3VsYXRpb24sIENyYWlnIGlzIG5vdyB0aGUgU3BlY2lmaWNhdGlvbiBMZWFkIGZvciAKKwkgICAgPGEgaWQ9Imh0dHA6Ly9qY3Aub3JnL2pzci9kZXRhaWwvMTI3LmpzcCI+SmF2YVNlcnZlciBGYWNlcyAoSlNSLTEyNyk8L2E+LCAKKwkgICAgYW5kIGlzIHRoZSBXZWIgTGF5ZXIgQXJjaGl0ZWN0IGZvciB0aGUgSmF2YTIgRW50ZXJwcmlzZSBFZGl0aW9uIChKMkVFKSAKKwkgICAgcGxhdGZvcm0gYXMgYSB3aG9sZS48L3A+CisJICAgIDxwPlRoZXJlIGFyZSBub3cgbWFueSBhY3RpdmUgY29tbWl0dGVycyB0byB0aGUgU3RydXRzIHByb2plY3QsIHdvcmtpbmcgCisJICAgIGNvb3BlcmF0aXZlbHkgZnJvbSBhcm91bmQgdGhlIGdsb2JlLiBPdGhlciBKYXZhIGRldmVsb3BlcnMgYXJlIGludml0ZWQgCisJICAgIHRvIDxhIGlkPSJoZWxwaW5nLmh0bWwjY29udHJpYnV0ZSI+Y29udHJpYnV0ZSB0byB0aGUgcHJvamVjdDwvYT4uIAorCSAgICBTdHJ1dHMgaXMgYW4gPGEgaWQ9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvIj5BcGFjaGUgSmFrYXJ0YTwvYT4gIAorCSAgICBwcm9qZWN0LCB3aXRoIHRoZSBjb21tb24gbWlzc2lvbiB0byAmcXVvdDtwcm92aWRlIGNvbW1lcmNpYWwtcXVhbGl0eSAKKwkgICAgc2VydmVyIHNvbHV0aW9ucyBiYXNlZCBvbiB0aGUgSmF2YSBQbGF0Zm9ybSB0aGF0IGFyZSBkZXZlbG9wZWQgaW4gYW4gCisJICAgIG9wZW4gYW5kIGNvb3BlcmF0aXZlIGZhc2hpb24mcXVvdDsuIEFsbCB0b2xkLCAxNyBpbmRpdmlkdWFsIGRldmVsb3BlcnMgCisJICAgIGFuZCBjb21taXR0ZXJzIGNvbnRyaWJ1dGVkIHRvIHRoZSBTdHJ1dHMgMS4wIGNvZGViYXNlLjwvcD4KKyAgICAgIDwvYW5zd2VyPgorICAgIDwvZmFxPgorCisgICAgPGZhcSBpZD0ic3RydXRzIj4KKyAgICAgIDxxdWVzdGlvbj5XaHkgaXMgaXQgY2FsbGVkIFN0cnV0cz88L3F1ZXN0aW9uPgorICAgICAgPGFuc3dlcj4KKyAgICAgICAgSXQncyBhIHJlZmVyZW5jZSB0byBzdHJ1dHMgaW4gdGhlIGFyY2hpdGVjdHVyYWwgc2Vuc2UsIGEgcmVtaW5kZXIgb2YgCisgICAgICAgIHRoZSBuZWFybHkgaW52aXNpYmxlIHBpZWNlcyB0aGF0IGhvbGQgdXAgYnVpbGRpbmdzLCBob3VzZXMsIGFuZCBicmlkZ2VzLgorICAgICAgPC9hbnN3ZXI+CisgICAgPC9mYXE+CisgICAgCisgICAgPGZhcSBpZD0ibGljZW5zZSI+CisgICAgICA8cXVlc3Rpb24+SG93IGlzIFN0cnV0cyBsaWNlbnNlZD88L3F1ZXN0aW9uPgorICAgICAgPGFuc3dlcj4KKyAgICAgICAgU3RydXRzIGlzIGNvcHlyaWdodGVkIHNvZnR3YXJlIGF2YWlsYWJsZSB1bmRlciBhIAorICAgICAgICAmcXVvdDtmcmVlLXRvLXVzZS1saWNlbnNlJnF1b3Q7IGJ5IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4gCisgICAgICAgIFRoZSBsaWNlbnNlIGFwcGVhcnMgYXQgdGhlIGhlYWQgb2YgZXZlcnkgc291cmNlIGNvZGUgZmlsZS4gQSByZWZlcmVuY2UKKyAgICAgICAgY29weSBvZiB0aGUgbGljZW5zZSBpcyBhdmFpbGFibGUgCisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9MSUNFTlNFLTEuMSI+aGVyZTwvYT4uCisgICAgICA8L2Fuc3dlcj4KKyAgICA8L2ZhcT4KKworICAgIDxmYXEgaWQ9InVzYWdlIj4KKyAgICAgIDxxdWVzdGlvbj5DYW4gU3RydXRzIGJlIHVzZWQgaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Q/PC9xdWVzdGlvbj4KKyAgICAgIDxhbnN3ZXI+CisgICAgICAgIDxwPlllcy4gVGhlIG9ubHkgcmVxdWlyZW1lbnRzIHlvdSBtdXN0IG1lZXQgYXJlIHRob3NlIGxpc3RlZCBpbiB0aGUgCisgICAgICAgIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGxpY2Vuc2UsIHdoaWNoIGlzIGluY2x1ZGVkIGF0IHRoZSB0b3Agb2YgCisgICAgICAgIGVhY2ggc291cmNlIGZpbGUgYW5kIGluIHRoZSBmaWxlIExJQ0VOU0UgaW4gdGhlIHRvcC1sZXZlbCBkaXJlY3RvcnkgCisgICAgICAgIG9mIHRoZSBkaXN0cmlidXRpb24uPC9wPgorICAgICAgICA8cD5JbiBhZGRpdGlvbiwgPGEgaWQ9ImhlbHBpbmcuaHRtbCNidWdzIj5jb250cmlidXRpb25zIG9mIHBhdGNoZXMsIAorICAgICAgICBpbXByb3ZlZCBjb2RlLCBuZXcgZmVhdHVyZXMsPC9hPiBvciBldmVuIGp1c3QgcmVxdWVzdHMgZm9yIGZlYXR1cmVzIAorICAgICAgICBhcmUgYWxzbyB3ZWxjb21lLjwvcD4KKyAgICAgIDwvYW5zd2VyPgorICAgIDwvZmFxPgorICAgIAorICAgIDxmYXEgaWQ9ImNyZWRpdHMiPgorICAgICAgPHF1ZXN0aW9uPkRvIEkgaGF2ZSB0byBjcmVkaXQgU3RydXRzIG9uIG15IG93biB3ZWJzaXRlPzwvcXVlc3Rpb24+CisgICAgICA8YW5zd2VyPgorICAgICAgICBZb3UgbmVlZCB0byBjcmVkaXQgU3RydXRzIGlmIHlvdSA8c3Ryb25nPnJlZGlzdHJpYnV0ZSB5b3VyIG93biBmcmFtZXdvcms8L3N0cm9uZz4KKyAgICAgICAgYmFzZWQgb24gU3RydXRzCWZvciBvdGhlciBwZW9wbGUgdG8gdXNlLiAoU2VlIHRoZSAKKyAgICAgICAgPGEgaWQ9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9MSUNFTlNFIj5BcGFjaGUgTGljZW5zZTwvYT4gZm9yIGRldGFpbHMuKQorICAgICAgICBCdXQgeW91IGRvIDxzdHJvbmc+bm90PC9zdHJvbmc+IG5lZWQgdG8gY3JlZGl0IFN0cnV0cyBqdXN0IGJlY2F1c2UgeW91cgorICAgICAgICB3ZWIgYXBwbGljYXRpb24gdXRpbGl6ZXMgdGhlIGZyYW1ld29yay4JSXQncyB0aGUgc2FtZSBzaXR1YXRpb24gYXMgdXNpbmcgCisgICAgICAgIHRoZSBBcGFjaGUgSFRUUEQgc2VydmVyIG9yIFRvbWNhdC4gTm90IHJlcXVpcmVkIGlmIGl0cyBqdXN0IHJ1bm5pbmcgCisgICAgICAgIHlvdXIgd2ViIHNpdGUuIFJlcXVpcmVkIGlmIHlvdSd2ZSB1c2VkIHRoZSBzb3VyY2UgY29kZSB0byBjcmVhdGUgeW91ciAKKyAgICAgICAgb3duIHNlcnZlciB0aGF0IHlvdSBhcmUgcmVkaXN0cmlidXRpbmcgdG8gb3RoZXIgcGVvcGxlLiAgICAgIAorICAgICAgPC9hbnN3ZXI+CisgICAgPC9mYXE+CisgICAgCisgICAgPGZhcSBpZD0id2hlcmUiPgorICAgICAgPHF1ZXN0aW9uPldoZXJlIGNhbiBJIGdldCBhIGNvcHkgb2YgU3RydXRzPzwvcXVlc3Rpb24+CisgICAgICA8YW5zd2VyPgorICAgICAgICBUaGUgYmVzdCBwbGFjZSB0byBkb3dubG9hZCBTdHJ1dHMgaXMgYXQgCisgICAgICAgIDxhIGlkPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy8iPmpha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHM8L2E+LiAKKyAgICAgICAgVGhlIG5pZ2h0bHkgYnVpbGRzIGFyZSB2ZXJ5IHN0YWJsZSwgYW5kIHJlY29tbWVuZGVkIGFzIHRoZSBiZXN0IHBsYWNlIAorICAgICAgICB0byBzdGFydCB0b2RheS4KKyAgICAgIDwvYW5zd2VyPgorICAgIDwvZmFxPgorICAgIAorICAgIDxmYXEgaWQ9Imluc3RhbGwiPgorICAgICAgPHF1ZXN0aW9uPkhvdyBkbyBJIGluc3RhbGwgU3RydXRzPzwvcXVlc3Rpb24+CisgICAgICA8YW5zd2VyPgorICAgICAgICA8cD5UbyBkZXZlbG9wIGFwcGxpY2F0aW9ucyB3aXRoIFN0cnV0cywgeW91IGNhbiB1c3VhbGx5IGp1c3QgYWRkIHRoZQorICAgICAgICBTdHJ1dHMgSkFSIGZpbGUJdG8geW91ciBKYXZhIGRldmVsb3BtZW50IGVudmlyb25tZW50LiBZb3UgY2FuIHRoZW4gCisgICAgICAgIHN0YXJ0IHVzaW5nIHRoZSBTdHJ1dHMgY2xhc3NlcyBhcyBwYXJ0IG9mIHlvdXIgb3duIGFwcGxpY2F0aW9uLiAKKyAgICAgICAgQSBibGFuayBTdHJ1dHMgYXBwbGljYXRpb24gKGluIHRoZSA8Y29kZT53ZWJhcHBzPC9jb2RlPiBkaXJlY3RvcnksIAorICAgICAgICBvcGVuIDxjb2RlPnN0cnV0cy1ibGFuay53YXI8L2NvZGU+KQlpcyBwcm92aWRlZCwgd2hpY2ggeW91IGNhbiBqdXN0IAorICAgICAgICBjb3B5IHRvIGdldCBhIHF1aWNrLXN0YXJ0IG9uIHlvdXIgb3duIGJyYWluY2hpbGQuPC9wPgorICAgICAgICA8cD5TaW5jZSB0aGUgZnVsbCBzb3VyY2UgY29kZSBmb3IgU3RydXRzIGlzIGF2YWlsYWJsZSwgd2UgYWxzbyBwcm92aWRlIAorICAgICAgICA8YSBpZD0iLi4vdXNlckd1aWRlL2luc3RhbGxhdGlvbi5odG1sIj5jb21wbGV0ZSBpbnN0cnVjdGlvbnM8L2E+IGZvcgorICAgICAgICBjb21waWxpbmcgeW91ciBvd24gU3RydXRzIEpBUiBmcm9tIHNjcmF0Y2guIChUaGlzIGlzIGFjdHVhbGx5IGVhc2llciAKKyAgICAgICAgdGhhbiBpdCBsb29rcyEpPC9wPgorICAgICAgICA8cD5Zb3VyIFN0cnV0cyBhcHBsaWNhdGlvbiBjYW4gdXN1YWxseSBiZSBkZXBsb3llZCB1c2luZyBhIHN0YW5kYXJkIFdBUiAKKyAgICAgICAgZmlsZS4gSW4gbW9zdCBjYXNlcywgeW91IHNpbXBseSBkZXBvc2l0IHRoZSBXQVIgZmlsZSBvbiB5b3VyIGFwcGxpY2F0aW9uIAorICAgICAgICBzZXJ2ZXIsIGFuZCBpdCBpcyBpbnN0YWxsZWQJYXV0b21hdGljYWxseS4gSWYgbm90LCBzdGVwLWJ5LXN0ZXAgCisgICAgICAgIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMgZm9yIAorICAgICAgICA8YSBpZD0iLi4vdXNlckd1aWRlL2luc3RhbGxhdGlvbi5odG1sI0NvbnRhaW5lcnMiPnZhcmlvdXMgc2VydmxldCAKKyAgICAgICAgY29udGFpbmVyczwvYT4gYXJlIGF2YWlsYWJsZS48L3A+CisgICAgICA8L2Fuc3dlcj4KKyAgICA8L2ZhcT4KKyAgICAKKyAgPC9wYXJ0PgorCisgIDwhLS0KKyAgICA8ZmFxIGlkPSIiPgorICAgICAgPHF1ZXN0aW9uPjwvcXVlc3Rpb24+CisgICAgICA8YW5zd2VyPgorICAgICAgPC9hbnN3ZXI+CisgICAgPC9mYXE+CisgIC0tPgorPC9mYXFzPgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZmFxcy9hY3Rpb25Gb3JtLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ZhcXMvYWN0aW9uRm9ybS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDA4NGU5MQotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ZhcXMvYWN0aW9uRm9ybS54bWwKQEAgLTAsMCArMSwyODUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorCis8ZG9jdW1lbnQgdXJsPSIuL2FjdGlvbkZvcm0ueG1sIj4KKworIDxwcm9wZXJ0aWVzPgorICA8dGl0bGU+QnVpbGRpbmcgYW4gQWN0aW9uRm9ybTwvdGl0bGU+CisgPC9wcm9wZXJ0aWVzPgorCis8Ym9keT4KKzxzZWN0aW9uIGhyZWY9ImFjdGlvbkZvcm0iIG5hbWU9IkhvdyB0byBCdWlsZCBhbiBBY3Rpb24gRm9ybSIvPgorICAgICAgICAgICAKKzxzZWN0aW9uIGhyZWY9ImxvZ2luIiBuYW1lPSJDcmVhdGluZyBhIExvZ2luIEZvcm0iPgorCisgICAgPHA+CisgICAgVGhpcyBpcyBhIHNpbXBsZSBleGFtcGxlIG9mIGEgbG9naW4gZm9ybSB0byBpbGx1c3RyYXRlIGhvdyBTdHJ1dHMKKyAgICBtYWtlcyBkZWFsaW5nIHdpdGggZm9ybXMgbXVjaCBsZXNzIHBhaW5mdWwgdGhhbiB1c2luZyBzdHJhaWdodCBIVE1MCisgICAgYW5kIHN0YW5kYXJkIEpTUCBmYWNpbGl0aWVzLiAgCisgICAgQ29uc2lkZXIgdGhlIGZvbGxvd2luZyBwYWdlIChiYXNlZCBvbiB0aGUgZXhhbXBsZSBNYWlsUmVhZGVyIGFwcGxpY2F0aW9uIAorICAgIGluY2x1ZGVkICB3aXRoIFN0cnV0cykgbmFtZWQgPGNvZGU+bG9nb24uanNwPC9jb2RlPjoKKyAgICA8L3A+CisKKzxoci8+CisKKzxwcmU+PGNvZGU+PCFbQ0RBVEFbCis8JUAgcGFnZSBsYW5ndWFnZT0iamF2YSIgJT4KKzwlQCB0YWdsaWIgIHVyaT0iL1dFQi1JTkYvc3RydXRzLWh0bWwudGxkIiBwcmVmaXg9Imh0bWwiICU+Cis8JUAgdGFnbGliIHVyaT0iL1dFQi1JTkYvc3RydXRzLWJlYW4udGxkIiBwcmVmaXg9ImJlYW4iICU+CisKKzxodG1sOmh0bWw+Cis8aGVhZD4KKzx0aXRsZT4KKyAgICA8YmVhbjptZXNzYWdlIGtleT0ibG9nb24udGl0bGUiLz4KKzwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IGJnY29sb3I9IndoaXRlIj4KKworPGh0bWw6ZXJyb3JzLz4KKworPGh0bWw6Zm9ybSBhY3Rpb249Ii9sb2dvbiIgZm9jdXM9InVzZXJuYW1lIj4KKzx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIj4KKyAgICA8dHI+CisgICAgICAgIDx0aCBjbGFzcz0icmlnaHQiPgorICAgICAgICAgICAgPGJlYW46bWVzc2FnZSBrZXk9InByb21wdC51c2VybmFtZSIvPgorICAgICAgICA8L3RoPgorICAgICAgICA8dGQgY2xhc3M9ImxlZnQiPgorICAgICAgICAgICAgPGh0bWw6dGV4dCAgcHJvcGVydHk9InVzZXJuYW1lIiBzaXplPSIxNiIvPgorICAgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgICA8dGggY2xhc3M9InJpZ2h0Ij4KKyAgICAgICAgICAgIDxiZWFuOm1lc3NhZ2Uga2V5PSJwcm9tcHQucGFzc3dvcmQiLz4KKyAgICAgICAgPC90aD4KKyAgICAgICAgPHRkIGNsYXNzPSJsZWZ0Ij4KKyAgICAgICAgICAgIDxodG1sOnBhc3N3b3JkIHByb3BlcnR5PSJwYXNzd29yZCIgc2l6ZT0iMTYiLz4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgICAgPHRkIGNsYXNzPSJyaWdodCI+CisgICAgICAgICAgICA8aHRtbDpzdWJtaXQ+CisgICAgICAgICAgICAgICAgPGJlYW46bWVzc2FnZSBrZXk9ImJ1dHRvbi5zdWJtaXQiLz4KKyAgICAgICAgICAgIDwvaHRtbDpzdWJtaXQ+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZCBjbGFzcz0icmlnaHQiPgorICAgICAgICAgICAgPGh0bWw6cmVzZXQ+CisgICAgICAgICAgICAgICAgPGJlYW46bWVzc2FnZSBrZXk9ImJ1dHRvbi5yZXNldCIvPgorICAgICAgICAgICAgPC9odG1sOnJlc2V0PgorICAgICAgICA8L3RkPgorICAgIDwvdHI+Cis8L3RhYmxlPgorCis8L2h0bWw6Zm9ybT4KKzwvYm9keT4KKzwvaHRtbDpodG1sPgorXV0+PC9jb2RlPjwvcHJlPgorCis8aHIvPgorCisgICAgPHA+CisgICAgVGhlIGZvbGxvd2luZyBpdGVtcyBpbGx1c3RyYXRlIHRoZSBrZXkgZmVhdHVyZXMgb2YgZm9ybSBoYW5kbGluZyBpbiBTdHJ1dHMsCisgICAgYmFzZWQgb24gdGhpcyBleGFtcGxlOgorICAgIDwvcD4KKworICAgIDx1bD4KKworICAgICAgICA8bGk+CisgICAgICAgIFRoZSA8Y29kZT50YWdsaWI8L2NvZGU+IGRpcmVjdGl2ZSB0ZWxscyB0aGUgSlNQIHBhZ2UgY29tcGlsZXIgd2hlcmUgdG8KKyAgICAgICAgZmluZCB0aGUgPGVtPnRhZyBsaWJyYXJ5IGRlc2NyaXB0b3I8L2VtPiBmb3IgdGhlIFN0cnV0cyB0YWcgbGlicmFyeS4gIAorICAgICAgICBJbiB0aGlzIGNhc2UsIHdlIGFyZSB1c2luZyA8Y29kZT5iZWFuPC9jb2RlPiBhcyB0aGUgcHJlZml4IHRoYXQgCisgICAgICAgIGlkZW50aWZpZXMgdGFncyBmcm9tIHRoZSBzdHJ1dHMtYmVhbiBsaWJyYXJ5LCBhbmQgImh0bWwiIGFzIHRoZSBwcmVmaXggIAorICAgICAgICB0aGF0IGlkZW50aWZpZXMgdGFncyBmcm9tIHRoZSBzdHJ1dHMtaHRtbCBsaWJyYXJ5LiAgCisgICAgICAgIEFueSBkZXNpcmVkIHByZWZpeCBjYW4gYmUgdXNlZC4KKyAgICAgICAgPC9saT4KKyAgICAgICAgICAKKyAgICAgICAgPGxpPgorICAgICAgICBUaGlzIHBhZ2UgdXNlcyBzZXZlcmFsIG9jY3VycmVuY2VzIG9mIHRoZQorICAgICAgICA8c3Ryb25nPm1lc3NhZ2U8L3N0cm9uZz4gdGFnIHRvIGxvb2sgdXAgaW50ZXJuYXRpb25hbGl6ZWQKKyAgICAgICAgbWVzc2FnZSBzdHJpbmdzIGZyb20gYSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBvYmplY3QgY29udGFpbmluZworICAgICAgICBhbGwgdGhlIHJlc291cmNlcyBmb3IgdGhpcyBhcHBsaWNhdGlvbi4gIAorICAgICAgICBGb3IgdGhpcyBwYWdlIHRvIHdvcmssIHRoZSBmb2xsb3dpbmcgbWVzc2FnZSBrZXlzIG11c3QgYmUgZGVmaW5lZCBpbiAKKyAgICAgICAgdGhlc2UgcmVzb3VyY2VzOgorICAgICAgICAgIAorICAgICAgICA8dWw+CisgICAgICAgIAorICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgPHN0cm9uZz5sb2dvbi50aXRsZTwvc3Ryb25nPiAtIFRpdGxlIG9mIHRoZSBsb2dvbiBwYWdlCisgICAgICAgICAgICA8L2xpPgorCisgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICA8c3Ryb25nPnByb21wdC51c2VybmFtZTwvc3Ryb25nPiAtIEEgIlVzZXJuYW1lOiIgcHJvbXB0IHN0cmluZworICAgICAgICAgICAgPC9saT4KKworICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgPHN0cm9uZz5wcm9tcHQucGFzc3dvcmQ8L3N0cm9uZz4gLSBBICJQYXNzd29yZDoiIHByb21wdCBzdHJpbmcKKyAgICAgICAgICAgIDwvbGk+CisKKyAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgIDxzdHJvbmc+YnV0dG9uLnN1Ym1pdDwvc3Ryb25nPiAtICJTdWJtaXQiIGZvciB0aGUgYnV0dG9uIGxhYmVsCisgICAgICAgICAgICA8L2xpPgorCisgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICA8c3Ryb25nPmJ1dHRvbi5yZXNldDwvc3Ryb25nPiAtICJSZXNldCIgZm9yIHRoZSBidXR0b24gbGFiZWwKKyAgICAgICAgPC9saT4KKyAgICAgICAgCisgICAgICAgIDwvdWw+CisKKyAgICAgICAgV2hlbiB0aGUgdXNlciBsb2dzIG9uLCB0aGUgYXBwbGljYXRpb24gY2FuIHN0b3JlIGEgPGNvZGU+TG9jYWxlPC9jb2RlPgorICAgICAgICBvYmplY3QgaW4gdGhlIHVzZXIncyBzZXNzaW9uLiAgCisgICAgICAgIFRoaXMgPGNvZGU+TG9jYWxlPC9jb2RlPiB3aWxsIGJlIHVzZWQgdG8gc2VsZWN0IG1lc3NhZ2VzIGluIHRoZSAKKyAgICAgICAgYXBwcm9wcmlhdGUgbGFuZ3VhZ2UuICAKKyAgICAgICAgVGhpcyBtYWtlcyBpdCBlYXN5IHRvIGltcGxlbWVudCBnaXZpbmcgdGhlIHVzZXIgYW4gb3B0aW9uIHRvIHN3aXRjaCAKKyAgICAgICAgbGFuZ3VhZ2VzIC0tIHNpbXBseSBjaGFuZ2UgdGhlIHN0b3JlZCA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCwgYW5kIAorICAgICAgICBhbGwgbWVzc2FnZXMgYXJlIHN3aXRjaGVkIGF1dG9tYXRpY2FsbHkuCisgICAgICAgIDwvbGk+CisgICAgICAgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgVGhlIDxzdHJvbmc+ZXJyb3JzPC9zdHJvbmc+IHRhZyBkaXNwbGF5cyBhbnkgZXJyb3IgbWVzc2FnZXMgdGhhdCBoYXZlIGJlZW4gCisgICAgICAgIHN0b3JlZCBieSBhIGJ1c2luZXNzIGxvZ2ljIGNvbXBvbmVudCwgb3Igbm90aGluZyBpZiBubyBlcnJvcnMgaGF2ZSBiZWVuIAorICAgICAgICBzdG9yZWQuICAKKyAgICAgICAgVGhpcyB0YWcgd2lsbCBiZSBkZXNjcmliZWQgZnVydGhlciBiZWxvdy4KKyAgICAgICAgPC9saT4KKyAgICAgICAgICAKKyAgICAgICAgPGxpPgorICAgICAgICBUaGUgPHN0cm9uZz5mb3JtPC9zdHJvbmc+IHRhZyByZW5kZXJzIGFuIEhUTUwgPGNvZGU+Jmx0O2Zvcm0mZ3Q7PC9jb2RlPiBlbGVtZW50LCAKKyAgICAgICAgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGVzLgorICAgICAgICBJdCBhbHNvIGFzc29jaWF0ZXMgYWxsIG9mIHRoZSBmaWVsZHMgd2l0aGluIHRoaXMgZm9ybSB3aXRoIGEgCisgICAgICAgIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4gCisgICAgICAgIFs8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTwvY29kZT5dLgorICAgICAgICBUaGUgdGFnIGxvb2tzIHVwIHRoZSA8Y29kZT4vbG9nb248L2NvZGU+IGFjdGlvbiBtYXBwaW5nIGluIHRoZSBTdHJ1dHMKKyAgICAgICAgY29uZmlndXJhdGlvbi4KKyAgICAgICAgVGhlIDxjb2RlPmxvZ29uPC9jb2RlPiBtYXBwaW5nIHRlbGxzIHRoZSB0YWcgdGhhdCB0aGUgZm9ybSBiZWFuIGlzCisgICAgICAgIHN0b3JlZCBpbiB0aGUgc2Vzc2lvbiBjb250ZXh0IHVuZGVyIHRoZSBrZXkgPGNvZGU+bG9nb25Gb3JtPC9jb2RlPi4KKyAgICAgICAgVGhlIFN0cnV0cyBkZXZlbG9wZXIgcHJvdmlkZXMgdGhlIEphdmEgaW1wbGVtZW50YXRpb24gb2YgdGhlIAorICAgICAgICBBY3Rpb25Gb3JtIGJlYW4sIHN1YmNsYXNzaW5nIHRoZSBTdHJ1dHMgY2xhc3MgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4KKyAgICAgICAgKHNlZSA8YSBocmVmPSIuLi91c2VyR3VpZGUvYnVpbGRpbmdfY29udHJvbGxlci5odG1sI2FjdGlvbl9mb3JtX2NsYXNzZXMiPkJ1aWxkaW5nCisgICAgICAgIENvbnRyb2xsZXI8L2E+IGNvbXBvbmVudHMpLgorICAgICAgICBUaGlzIGJlYW4gaXMgdXNlZCB0byBwcm92aWRlIGluaXRpYWwgdmFsdWVzIGZvciBhbGwgb2YgdGhlIGlucHV0CisgICAgICAgIGZpZWxkcyB0aGF0IGhhdmUgbmFtZXMgbWF0Y2hpbmcgdGhlIHByb3BlcnR5IG5hbWVzIG9mIHRoZSBiZWFuLgorICAgICAgICBJZiBhbiBhcHByb3ByaWF0ZSBiZWFuIGlzIG5vdCBmb3VuZCwgYSBuZXcgb25lIHdpbGwgYmUgY3JlYXRlZAorICAgICAgICBhdXRvbWF0aWNhbGx5LCB1c2luZyB0aGUgSmF2YSBjbGFzcyBuYW1lIHNwZWNpZmllZCB0aHJvdWdoIHRoZSAKKyAgICAgICAgYWN0aW9uIG1hcHBpbmcuCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBUaGUgZm9ybSBiZWFuIGNhbiBhbHNvIGJlIHNwZWNpZmllZCBpbiB0aGUgdGFnIGJ5IHByb3ZpZGluZworICAgICAgICA8Y29kZT5uYW1lPC9jb2RlPiBhbmQgPGNvZGU+dHlwZTwvY29kZT4gYXR0cmlidXRlcy4gQnV0IG1vc3Qgb2Z0ZW4sCisgICAgICAgIGV2ZXJ5dGhpbmcgaXMgc3BlY2lmaWVkIGluIHRoZQorICAgICAgICA8YSBocmVmPSIuLi91c2VyR3VpZGUvYnVpbGRpbmdfY29udHJvbGxlci5odG1sI2NvbmZpZyI+U3RydXRzIENvbmZpZ3VyYXRpb24gCisgICAgICAgIEZpbGU8L2E+LgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgVGhlIDxzdHJvbmc+dGV4dDwvc3Ryb25nPiB0YWcgcmVuZGVycyBhbiBIVE1MIDxjb2RlPiZsdDtpbnB1dCZndDs8L2NvZGU+IAorICAgICAgICBlbGVtZW50IG9mIHR5cGUgInRleHQiLiAgCisgICAgICAgIEluIHRoaXMgY2FzZSwgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXIgcG9zaXRpb25zIHRvIG9jY3VweSBvbiB0aGUgCisgICAgICAgIGJyb3dzZXIncyBzY3JlZW4gaGFzIGJlZW4gc3BlY2lmaWVkIGFzIHdlbGwuIAorICAgICAgICBXaGVuIHRoaXMgcGFnZSBpcyBleGVjdXRlZCwgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIAorICAgICAgICA8Y29kZT51c2VybmFtZTwvY29kZT4gcHJvcGVydHkgb2YgdGhlIGNvcnJlc3BvbmRpbmcgYmVhbiAodGhhdCBpcywgCisgICAgICAgIHRoZSB2YWx1ZSByZXR1cm5lZCBieSA8Y29kZT5nZXRVc2VybmFtZTwvY29kZT4pLgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgVGhlIDxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4gdGFnIGlzIHVzZWQgc2ltaWxhcmx5LgorICAgICAgICBUaGUgZGlmZmVyZW5jZSBpcyB0aGF0IHRoZSBicm93c2VyIHdpbGwgZWNobyBhc3RlcmlzayBjaGFyYWN0ZXJzLAorICAgICAgICBpbnN0ZWFkIG9mIHRoZSBpbnB1dCB2YWx1ZSwgYXMgdGhlIHVzZXIgdHlwZXMgdGhlaXIgcGFzc3dvcmQuCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBUaGUgPHN0cm9uZz5zdWJtaXQ8L3N0cm9uZz4gYW5kPHN0cm9uZz5yZXNldDwvc3Ryb25nPiB0YWdzIGdlbmVyYXRlIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgIGJ1dHRvbnMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZm9ybS4gIAorICAgICAgICBUaGUgdGV4dCBsYWJlbHMgZm9yIGVhY2ggYnV0dG9uIGFyZSBjcmVhdGVkIHVzaW5nIG1lc3NhZ2UgdGFncywKKyAgICAgICAgYXMgd2l0aCB0aGUgcHJvbXB0cywgc28gdGhhdCB0aGVzZSB2YWx1ZXMgYXJlIGludGVybmF0aW9uYWxpemVkLgorICAgICAgICA8L2xpPgorICAgICAgICAgIAorICAgIDwvdWw+CisKKyAgICA8cD4KKyAgICBIYW5kbGluZyBtdWx0aXBhcnQgZm9ybXMgaXMgYWxzbyBlYXN5LiAgCisgICAgT2J2aW91c2x5IHdoZW4geW91IGNyZWF0ZSBhIG11bHRpcGFydCBmb3JtIHlvdSdyZSBjcmVhdGluZyBhIGZvcm0gdGhhdCAgCisgICAgaGFzIGF0IGxlYXN0IG9uZSBpbnB1dCBvZiB0eXBlICJmaWxlIi4gIAorICAgIFRoZSBmaXJzdCBzdGVwIHRvIGNyZWF0aW5nIGEgbXVsdGlwYXJ0IGZvcm0gaXMgdG8gdXRpbGl6ZSB0aGUgc3RydXRzLWh0bWwgCisgICAgdGFnbGliIHRvIGNyZWF0ZSB0aGUgcHJlc2VudGF0aW9uIHBhZ2U6CisgICAgPC9wPgorCis8aHIvPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWworPCVAcGFnZSBsYW5ndWFnZT0iamF2YSI+Cis8JUB0YWdsaWIgCisgICAgdXJpPSIvV0VCLUlORi9zdHJ1dHMtaHRtbC50bGQiCisgICBwcmVmaXg9Imh0bWwiPgorCis8aHRtbDpmb3JtIGFjdGlvbj0idXBsb2FkQWN0aW9uLmRvIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj4KKworICAgIFBsZWFzZSBJbnB1dCBUZXh0OiA8aHRtbDp0ZXh0IHByb3BlcnR5PSJteVRleHQiPgorICAgIFBsZWFzZSBJbnB1dCBUaGUgRmlsZSBZb3UgV2lzaCB0byBVcGxvYWQ6IDxodG1sOmZpbGUgcHJvcGVydHk9Im15RmlsZSI+CisgICAKKyAgIDxodG1sOnN1Ym1pdCAvPgorCis8L2h0bWw6Zm9ybT4KK11dPjwvY29kZT48L3ByZT4KKworPGhyLz4KKworICAgIDxwPgorICAgIFRoZSBuZXh0IHN0ZXAgaXMgdG8gY3JlYXRlIHlvdXIgQWN0aW9uRm9ybSBiZWFuOgorICAgIDwvcD4KKworCis8aHIvPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkZvcm1GaWxlOworCitwdWJsaWMgY2xhc3MgVXBsb2FkRm9ybSBleHRlbmRzIEFjdGlvbkZvcm0geworCisgICAgcHJvdGVjdGVkIFN0cmluZyBteVRleHQ7CisgICAgcHJvdGVjdGVkIEZvcm1GaWxlIG15RmlsZTsKKyAgICAKKyAgICBwdWJsaWMgdm9pZCBzZXRNeVRleHQoU3RyaW5nIHRleHQpIHsKKyAgICAgICAgbXlUZXh0ID0gdGV4dDsKKyAgICB9CisgICAgCisgICAgcHVibGljIFN0cmluZyBnZXRNeVRleHQoKSB7CisgICAgICAgIHJldHVybiBteVRleHQ7CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldE15RmlsZShGb3JtRmlsZSBmaWxlKSB7CisgICAgICAgIG15RmlsZSA9IGZpbGU7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBGb3JtRmlsZSBnZXRNeUZpbGUoKSB7CisgICAgICAgIHJldHVybiBteUZpbGU7CisgICAgfQorCit9CitdXT48L2NvZGU+PC9wcmU+CisKKzxoci8+CisKKyAgICA8cD4KKyAgICBMb29rIGF0IHRoZSBKYXZhZG9jcyBmb3IgCisgICAgPGNvZGU+PGEgaHJlZj0iLi4vYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj4KKyAgICBGb3JtRmlsZTwvYT48L2NvZGU+IHRvIHNlZSB0aGUgbWV0aG9kcyBpdCBleHBvc2VzIHRvIG1hbmlwdWxhdGUgZmlsZXMgaW4gCisgICAgZmlsZSB1cGxvYWRpbmcuCisgICAgQWxzbyBsb29rIGF0IHRoZSBKYXZhZG9jcyBmb3IKKyAgICA8YSBocmVmPSIuLi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+CisgICAgQWN0aW9uU2VydmxldDwvYT4gYW5kCisgICAgPGEgaHJlZj0iLi4vYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPgorICAgIEFjdGlvbk1hcHBpbmc8L2E+IGZvciB0aGUgdmFyaW91cyBwYXJhbWV0ZXJzIHlvdSBjYW4gc3BlY2lmeSB0byBjaGFuZ2UgCisgICAgaG93IGZpbGVzIGFyZSB1cGxvYWRlZC4gIAorICAgIEJhc2ljYWxseSBpbiB5b3VyIDxjb2RlPmV4ZWN1dGU8L2NvZGU+IG1ldGhvZCBpbiB5b3VyIGFjdGlvbiBjbGFzcyB5b3UgCisgICAgd291bGQgY2FsbCA8Y29kZT4oKFVwbG9hZEZvcm0pIGZvcm0pLmdldE15RmlsZSgpPC9jb2RlPiB0byByZXRyaWV2ZSB0aGUgCisgICAgRm9ybUZpbGUgYW5kIGRvIHdoYXQgeW91IHdhbnQgd2l0aCBpdC4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworIDwvYm9keT4KKzwvZG9jdW1lbnQ+CisKZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ZhcXMvYXBwcy54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL2FwcHMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2MDZhODYKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL2FwcHMueG1sCkBAIC0wLDAgKzEsMTQzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Ii4vYXBwcy54bWwiPgorPHByb3BlcnRpZXM+Cis8dGl0bGU+QnVpbGRpbmcgQXBwbGljYXRpb25zPC90aXRsZT4KKzwvcHJvcGVydGllcz4KKzxib2R5PgorPHNlY3Rpb24gbmFtZT0iSG93IHRvIEJ1aWxkIEFwcGxpY2F0aW9ucyIgaHJlZj0iYnVpbGRpbmdfYXBwcyIvPgorPHNlY3Rpb24gaHJlZj0iaW50cm8iIG5hbWU9IkFib3V0IFRoaXMgRG9jdW1lbnQiPgorPHA+CitUaGlzIGRvY3VtZW50IG91dGxpbmVzIG9uZSBwb3NzaWJsZSBzZXF1ZW5jZSBvZiBkZXZlbG9wbWVudCBzdGVwcyB0aGF0IGNhbiBiZSBmb2xsb3dlZCB0byBjcmVhdGUgYQorU3RydXRzIGFwcGxpY2F0aW9uLiAgSXQgaXMgbm90IGludGVuZGVkIGFzIGEgY29tcGxldGUgZGVzY3JpcHRpb24gb2YgZWFjaAorcmVmZXJlbmNlZCBkZXZlbG9wbWVudCBhY3Rpdml0eS4gIE1vcmUgZGV0YWlsZWQgZG9jdW1lbnRhdGlvbiBpcyBhdmFpbGFibGUKK2Vsc2V3aGVyZSBhbmQgaXMgcmVmZXJlbmNlZCBieSAiKG1vcmUuLi4pIiBsaW5rcyB3aGVyZSBwb3NzaWJsZS4KKzwvcD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0iY2F2ZWF0cyIgbmFtZT0iQ2F2ZWF0cyI+Cis8b2w+Cis8bGk+UmVxdWlyZW1lbnRzIGRldmVsb3BtZW50IGFuZCBkZXNpZ24gYXJlIG91dHNpZGUgb2YgdGhlIHNjb3BlIG9mIHRoaXMgIGRvY3VtZW50LjwvbGk+Cis8bGk+Rm9yIGhlbHAgaW5zdGFsbGluZyBTdHJ1dHMsIHNlZSB0aGUgPGEgaHJlZj0iLi4vdXNlckd1aWRlL2luc3RhbGxhdGlvbi5odG1sIj5HZXR0aW5nIFN0YXJ0ZWQ8L2E+IGNoYXB0ZXIuPC9saT4KKzxsaT5UaGVyZSBhcmUgbWFueSBvdGhlciB3YXlzIHRvIGFwcHJvYWNoIFN0cnV0cyBkZXZlbG9wbWVudCBhbmQgdGhlcmUgYXJlIG1hbnkKKyAgICBvdGhlciBmZWF0dXJlcyBhdmFpbGFibGUgYmVzaWRlcyB0aGUgb25lcyBkaXNjdXNzZWQgYmVsb3cuIFRoaXMgZG9jdW1lbnQKKyAgICBvdXRsaW5lcyBvbmx5IG9uZSB3YXkgdG8gZ2V0IHN0YXJ0ZWQuPC9saT4KKzxsaT5UaGlzIGRvY3VtZW50IGZvY3VzZXMgb24gZm9ybS9kYXRhIGNlbnRyaWMgYXBwbGljYXRpb25zLCBidXQgbWF5IGFsc28gd29yayB3aXRoCisgICAgb3RoZXIgdHlwZXMgb2YgYXBwbGljYXRpb25zLjwvbGk+Cis8bGk+VGhpcyBtYXRlcmlhbCB3YXMgd3JpdHRlbiBmb3IgU3RydXRzIDEuMSAoYmV0YSAyKS48L2xpPgorPC9vbD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0ib3ZlcnZpZXciIG5hbWU9Ik92ZXJ2aWV3Ij4KKzxvbD4KKzxsaT5JbXBsZW1lbnQgZGF0YSBlbnRyeSBmb3JtcyBhcyBKU1AgZmlsZXMuPC9saT4KKzxsaT5JbXBsZW1lbnQgb25lIG9yIG1vcmUgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gZGVzY2VuZGVudHMgdG8gYnVmZmVyIGRhdGEKKyAgICBiZXR3ZWVuIEpTUHMgYW5kIEFjdGlvbnMuPC9saT4KKzxsaT5DcmVhdGUgYW4gWE1MIGRvY3VtZW50IHRoYXQgZGVmaW5lcyB0aGUgdmFsaWRhdGlvbiBydWxlcyBmb3IgeW91cgorICAgIGFwcGxpY2F0aW9uLjwvbGk+Cis8bGk+SW1wbGVtZW50IG9uZSBvciBtb3JlIDxjb2RlPkFjdGlvbjwvY29kZT4gZGVzY2VuZGVudHMgdG8gcmVzcG9uZCBmb3JtCisgICAgc3VibWlzc2lvbnMuPC9saT4KKzxsaT5DcmVhdGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+IHRvIGFzc29jaWF0ZSBmb3JtcyB3aXRoCisgICAgYWN0aW9ucy48L2xpPgorPGxpPkNyZWF0ZSBvciB1cGRhdGUgPGNvZGU+d2ViLnhtbDwvY29kZT4gdG8gcmVmZXJlbmNlCisgICAgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4sIHRhZ2xpYnMgdXNlZCBieSBTdHJ1dHMuPC9saT4KKzxsaT5QYXJhbGxlbCBUYXNrcworPG9sPgorPGxpPkJ1aWxkaW5nPC9saT4KKzxsaT5Vbml0IFRlc3Rpbmc8L2xpPgorPGxpPkRlcGxveW1lbnQ8L2xpPgorPC9vbD4KKzwvbGk+Cis8L29sPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJkZXRhaWxzIiBuYW1lPSJEZXRhaWxzIj4KKzxvbD4KKzxsaT5JbXBsZW1lbnQgZGF0YSBlbnRyeSBmb3JtcyBhcyBKU1AgZmlsZXMuCis8b2w+Cis8bGk+VXNlIGVsZW1lbnRzIGZyb20gdGhlIDxjb2RlPmh0bWw8L2NvZGU+IHRhZ2xpYgorICAgIHRvIGRlZmluZSB0aGUgZm9ybSBlbGVtZW50cy4gPGEgaHJlZj0iLi4vdXNlckd1aWRlL3N0cnV0cy1odG1sLmh0bWwiPgorICAgIChtb3JlLi4uKTwvYT48L2xpPgorPGxpPlVzZSA8Y29kZT5tZXNzYWdlPC9jb2RlPiBhbmQgb3RoZXIgZWxlbWVudHMgZnJvbSB0aGUgPGNvZGU+YmVhbjwvY29kZT4KKyAgICB0YWdsaWIgdG8gZGVmaW5lIHRoZSBsYWJlbHMgYW5kIG90aGVyIHN0YXRpYyB0ZXh0IG9mIHRoZSBmb3JtLiAKKyAgICA8YSBocmVmPSIuLi91c2VyR3VpZGUvc3RydXRzLWJlYW4uaHRtbCI+KG1vcmUuLi4pPC9hPgorPG9sPgorPGxpPkNyZWF0ZSBhbmQgbWFpbnRhaW4gYSBwcm9wZXJ0aWVzIGZpbGUgb2YgdGhlIHRleHQgZWxlbWVudHMKKyAgICB0byBiZSBkaXNwbGF5ZWQuIDxhIGhyZWY9Ii4uL3VzZXJHdWlkZS9wcmVmYWNlLmh0bWwjcmVzb3VyY2VzIj4obW9yZS4uLikgCisgICAgPC9hPjwvbGk+Cis8L29sPgorPC9saT4KKzxsaT5Vc2UgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMgdG8gbGluayBmb3JtIGZpZWxkcyB0byAKKyAgICA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBpbnN0YW5jZSB2YXJpYWJsZXMuPC9saT4KKzwvb2w+Cis8L2xpPgorPGxpPkltcGxlbWVudCBvbmUgb3IgbW9yZSA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBkZXNjZW5kZW50cworICAgIHRvIGJ1ZmZlciBkYXRhIGJldHdlZW4gSlNQcyBhbmQgQWN0aW9ucy4KKzxvbD4KKzxsaT5DcmVhdGUgZ2V0L3NldCBwYWlycyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIHByb3BlcnR5IG5hbWVzCisgICAgaW4geW91ciByZWxhdGVkIEpTUCBmb3JtLiBFeGFtcGxlOgorPHByZT4mbHQ7aHRtbDp0ZXh0IHByb3BlcnR5PSJjaXR5IiAvJmd0OzwvcHJlPgorICAgIG5lZWRzOgorPHByZT5nZXRDaXR5KCkgYW5kIHNldENpdHkoU3RyaW5nIGMpPC9wcmU+Cis8L2xpPgorPGxpPldoZW4gbmVlZGVkLCBjcmVhdGUgYSA8Y29kZT5yZXNldDwvY29kZT4gbWV0aG9kCisgICAgdGhhdCBzZXRzIHRoZSBmaWVsZHMgb2YgdGhlIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IHRvIHRoZWlyIGRlZmF1bHQgdmFsdWVzLiBNb3N0IEFjdGlvbkZvcm1zIGRvIG5vdCBuZWVkIHRvIGRvIHRoaXMuPC9saT4KKzwvb2w+Cis8L2xpPgorPGxpPkNyZWF0ZSBhbiBYTUwgZG9jdW1lbnQgdGhhdCBkZWZpbmVzIHRoZSB2YWxpZGF0aW9uIHJ1bGVzIGZvciB5b3VyCisgICAgYXBwbGljYXRpb24uPC9saT4KKzxsaT5JbXBsZW1lbnQgb25lIG9yIG1vcmUgPGNvZGU+QWN0aW9uPC9jb2RlPiBkZXNjZW5kZW50cworICAgIHRvIHJlc3BvbmQgdG8gZm9ybSBzdWJtaXNzaW9ucy4KKzxvbD4KKzxsaT5EZXNjZW5kIGZyb20gRGlzcGF0Y2hBY3Rpb24gb3IgTG9va3VwRGlzcGF0Y2hBY3Rpb24gaWYgeW91CisgICAgd2FudCBvbmUgY2xhc3MgdG8gaGFuZGxlIG1vcmUgdGhhbiBvbmUga2luZCBvZiBldmVudCAoZXhhbXBsZTogb25lIEFjdGlvbgorICAgIHRvIGhhbmRsZSAnaW5zZXJ0JywgJ3VwZGF0ZScgYW5kICdkZWxldGUnIGV2ZW50cywgdXNpbmcgYSBkaWZmZXJlbnQgInN1cnJvZ2F0ZSIgZXhlY3V0ZSBtZXRob2QgZm9yIGVhY2gpLiA8YSBocmVmPSJodHRwOi8vaHVzdGVkLmNvbS9zdHJ1dHMvdGlwcy8wMDIuaHRtbCI+KG1vcmUuLi4pPC9hPjwvbGk+Cis8bGk+VXNlIHRoZSA8Y29kZT5leGVjdXRlPC9jb2RlPiBtZXRob2QKKyAgICAob3IgaXRzIHN1cnJvZ2F0ZXMpIG9mIHlvdXIgQWN0aW9uIGNsYXNzIHRvIGludGVyZmFjZSB3aXRoIG9iamVjdHMgaW4geW91cgorICAgIGFwcGxpY2F0aW9uIHJlc3BvbnNpYmxlIGZvciBkYXRhYmFzZSBpbnRlcmFjdGlvbiwgc3VjaCBhcyBFSkJzLCBldGMuCisgICAgPCEtLSBbOlRPRE86IGZpbmQgZ29vZCBkb2MgdG8gbGluayB0b10gLS0+Cis8L2xpPgorPGxpPlVzZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSA8Y29kZT5leGVjdXRlPC9jb2RlPiBtZXRob2QKKyAgICAob3IgaXRzIHN1cnJvZ2F0ZXMpIGRpcmVjdCB0aGUgdXNlciBpbnRlcmZhY2UgdG8gdGhlIGFwcHJvcHJpYXRlIG5leHQgcGFnZS4KKzwhLS0gWzpUT0RPOiBmaW5kIGdvb2QgZG9jIHRvIGxpbmsgdG9dIC0tPgorPC9saT4KKzwvb2w+Cis8L2xpPgorPGxpPkNyZWF0ZSA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4gdG8KKyAgICBhc3NvY2lhdGUgZm9ybXMgd2l0aCBhY3Rpb25zLiBUaGUgZmlsZSBtaW5pbWFsbHkgbmVlZHM6PC9saT4KKzxsaT5DcmVhdGUgb3IgdXBkYXRlIDxjb2RlPndlYi54bWw8L2NvZGU+IHRvCisgICAgcmVmZXJlbmNlIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCB0YWdsaWJzIHVzZWQgYnkgU3RydXRzLiA8YSBocmVmPSIuLi91c2VyR3VpZGUvY29uZmlndXJhdGlvbi5odG1sI2RkX2NvbmZpZyI+IChtb3JlLi4uKTwvYT48L2xpPgorPGxpPlBhcmFsbGVsIFRhc2tzCis8b2w+Cis8bGk+QnVpbGRpbmcKKzxvbD4KKzxsaT5Vc2UgQW50LiBJdCBjYW4gY29tcGlsZSwgY3JlYXRlIFdBUiBmaWxlLCBwZXJmb3JtIFhTTFQKKyAgIHRyYW5zZm9ybWF0aW9ucywgcnVuIHVuaXQgdGVzdHMsIGludGVyYWN0IHdpdGggdmVyc2lvbiBjb250cm9sIHN5c3RlbXMsCisgICBjbGVhbiB1cCwgZXRjLiA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2FudCI+IChtb3JlLi4uKTwvYT48L2xpPgorPGxpPkNyZWF0ZSBhbmQgdXNlIGJ1aWxkIHNjcmlwdCBpbmNyZW1lbnRhbGx5LCBhcyB5b3UgY3JlYXRlCisgICAgZmlsZXMgdGhhdCBuZWVkIHRvIGJlIGNvcGllZCwgY29tcGlsZWQsIGV0Yy4gPC9saT4KKzwvb2w+Cis8L2xpPgorPGxpPlVuaXQgVGVzdGluZworPG9sPgorPGxpPlVuaXQgdGVzdCBub3JtYWwgamF2YSBiZWFucyB3aXRoIEpVbml0LiA8YSBocmVmPSJodHRwOi8vd3d3Lmp1bml0Lm9yZyI+IChtb3JlLi4uKTwvYT48L2xpPgorPGxpPlVuaXQgdGVzdCBKU1AsIHRhZ2xpYnMgYW5kIGNvbnZlbnRpb25hbCBzZXJ2bGV0IGNvbXBvbmVudHMKKyAgICB3aXRoIENhY3R1cy4gPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jYWN0dXMiPiAobW9yZS4uLik8L2E+PC9saT4KKzxsaT5Vbml0IHRlc3QgQWN0aW9uIHNlcnZsZXRzIHdpdGggU3RydXRzVGVzdENhc2UuIDxhIGhyZWY9Imh0dHA6Ly9zdHJ1dHN0ZXN0Y2FzZS5zb3VyY2Vmb3JnZS5uZXQiPiAobW9yZS4uLik8L2E+PC9saT4KKzxsaT5BZGQgYWxsIHVuaXQgdGVzdHMgdG8gdGhlIGJ1aWxkIHNjcmlwdCBhcyBhIHNlcGFyYXRlCisgICAgdGFyZ2V0LiBUaGlzIHRhcmdldCBzaG91bGQgdXNlIHRoZSA8Y29kZT5qdW5pdDwvY29kZT4gdGFnIHRvIGxhdW5jaCBlYWNoIFRlc3RDYXNlIGRlc2NlbmRlbnQuIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvYW50L21hbnVhbC9PcHRpb25hbFRhc2tzL2p1bml0Lmh0bWwiPiAobW9yZS4uLik8L2E+PC9saT4KKzwvb2w+Cis8L2xpPgorPGxpPkRlcGxveW1lbnQKKzxvbD4KKzxsaT5CdWlsZCBzY3JpcHQgc2hvdWxkIGNyZWF0ZSBhIHdhciBmaWxlIGNvbnRhaW5pbmcgdGhlCisgICAgZmlsZXMgZGV2ZWxvcGVkIGFib3ZlLCBhbG9uZyB3aXRoIGZpbGVzIHRoYXQgbWFrZSB1cCB0aGUgU3RydXRzIGZyYW1ld29yay4KKyAgICA8IS0tIFs6VE9ETzogZGVzY3JpYmUgdGhpcyBmdXJ0aGVyLCBsb29rIGZvciBkb2MgdG8gbGluayB0b10gLS0+Cis8L2xpPgorPC9vbD4KKzwvbGk+Cis8L29sPgorPC9saT4KKzwvb2w+PC9zZWN0aW9uPgorCis8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZmFxcy9kYXRhYmFzZS54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL2RhdGFiYXNlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMmJlNDJhCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZmFxcy9kYXRhYmFzZS54bWwKQEAgLTAsMCArMSwyOTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorCis8ZG9jdW1lbnQgdXJsPSIuL2RhdGFiYXNlLnhtbCI+CisKKyA8cHJvcGVydGllcz4KKyAgPHRpdGxlPkFjY2Vzc2luZyBhIERhdGFiYXNlPC90aXRsZT4KKyA8L3Byb3BlcnRpZXM+CisKKzxib2R5PgorPHNlY3Rpb24gaHJlZj0iYWN0aW9uRm9ybSIgbmFtZT0iSG93IHRvIEFjY2VzcyBhIERhdGFiYXNlIi8+CisKKzxzZWN0aW9uIG5hbWU9IkFjY2Vzc2luZyBhIERhdGFiYXNlIiBocmVmPSJkYXRhYmFzZSI+CisKKyAgICA8cD4KKyAgICBUaGUgYmVzdCB0aGluZyBpcyB1c2UgdGhlIEFjdGlvbiBhcyBhIHRoaW4gYWRhcHRvciBiZXR3ZWVuIHRoZQorICAgIHdlYi9wcmVzZW50YXRpb24tdGllciBhbmQgeW91ciBidXNpbmVzcyBjbGFzc2VzIChpbmNsdWRpbmcgdGhvc2UgdGhhdAorICAgIGFjY2VzcyBhIGRhdGFiYXNlKS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBTbyB5b3UgZmlyc3QgZGVzaWduIGEgYnVzaW5lc3MgQVBJIHRoYXQgdXNlcyBwbGFpbiBKYXZhIGNsYXNzZXMuCisgICAgVGhlIGJlc3QgdGhpbmcgaXMgdG8gdXNlIG9iamVjdHMgdGhhdCB0YWtlIG9yZGluYXJ5IEphdmEgdHlwZXMgYW5kIHJldHVybgorICAgIGEgSmF2YUJlYW4gb3IgY29sbGVjdGlvbiBvZiBKYXZhQmVhbnMuCisgICAgVGhlIEFjdGlvbiB0aGVuIGNhbGxzIHRoZXNlIG9iamVjdHMgYW5kIHBhc3NlcyB0aGUgcmVzdWx0IGJhY2sgdG8gdGhlCisgICAgd2ViL3ByZXNlbnRhdGlvbiB0aWVyLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIEEgY29tbW9uIGFwcHJvYWNoIGlzIHRvIGNyZWF0ZSBhbiBBY3Rpb24gY2xhc3MgZm9yIGVhY2ggb2YgdGhlIGJ1c2luZXNzCisgICAgQVBJIG1ldGhvZHMvY2xhc3NlcyB0aGF0IHlvdSBuZWVkIHRvIGNhbGwuCisgICAgSWRlYWxseSwgYWxsIHRoZSBkYXRhYmFzZSBhY2Nlc3MgY29kZSBzaG91bGQgYmUgZW5jYXBzdWxhdGVkIGluIHRoZQorICAgIGJ1c2luZXNzIEFQSSBjbGFzc2VzLCBzbyBTdHJ1dHMgZG9lc24ndCBrbm93IHdoYXQgcGVyc2lzdGVudCBsYXllciB5b3UKKyAgICBhcmUgdXNpbmcgKG9yIGV2ZW4gaWYgdGhlcmUgaXMgYSBwZXJzaXN0ZW5jZSBsYXllcikuCisgICAgSXQganVzdCBwYXNzZXMgYSBrZXkgb3Igc2VhcmNoIFN0cmluZyBhbmQgZ2V0cyBiYWNrIGEgYmVhbiBvciBjb2xsZWN0aW9uCisgICAgb2YgYmVhbnMuCisgICAgVGhpcyBsZXRzIHlvdSB1c2UgdGhlIHNhbWUgYnVzaW5lc3MgQVBJIGNsYXNzZXMgaW4gb3RoZXIgZW52aXJvbm1lbnRzLAorICAgIGFuZCBhbHNvIHRvIHJ1biB1bml0IHRlc3RzIGFnYWluc3QgeW91ciBidXNpbmVzcyBBUEkgb3V0c2lkZSBvZiBTdHJ1dHMgb3IKKyAgICBhIEhUVFAgZW52aXJvbm1lbnQuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVG8gZ2V0IHN0YXJ0ZWQsIGl0J3Mgc2ltcGxlc3QgdG8gc2V0dXAgYSAxOjEgY29ycmVzcG9uZGVuY2UgYmV0d2VlbiB0aGUKKyAgICBBY3Rpb25zIGFuZCB0aGUgZW50cnktcG9pbnRzIHRvIHlvdXIgYnVzaW5lc3MgQVBJLgorICAgIEFzIHlvdSBnYWluIGV4cGVyaWVuY2UsIHlvdSB3aWxsIGZpbmQgd2F5cyB0byBjb21iaW5lIHlvdXIgQWN0aW9ucywgc2F5CisgICAgYnkgdXNpbmcgdGhlIERpc3BhdGNoQWN0aW9uLgorICAgIEl0J3MgZXZlbiBwb3NzaWJsZSB0byB1c2UgYSBzaW5nbGUgImZyYW1ld29yayIgQWN0aW9uIHRvIGNhbGwgYWxsIG9mIHlvdXIKKyAgICBidXNpbmVzcyBjbGFzc2VzLCBhcyBpcyBkb25lIHdpdGggU2NhZmZvbGQgUHJvY2Vzc0FjdGlvbiBpbiB0aGUgY29udHJpYgorICAgIGZvbGRlci4KKyAgICBVc2luZyBmZXdlciBBY3Rpb25zIGRvZXMgcmVxdWlyZSBhIGRlZXBlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyBTdHJ1dHMgYW5kCisgICAgTVZDIGZyYW1ld29ya3Mgb3BlcmF0ZS4KKyAgICBEb24ndCBoZXNpdGF0ZSB0byBlcnIgb24gdGhlIHNpZGUgb2YgY3JlYXRpbmcgbW9yZSBBY3Rpb25zIGF0IGZpcnN0LgorICAgIFRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBtYWtlcyBpdCBlYXN5IHRvIHJlZmFjdG9yIHlvdXIgQWN0aW9ucyBsYXRlciwKKyAgICBzaW5jZSB5b3UgY2FuIGNoYW5nZSB0aGUgQWN0aW9uIHR5cGUgd2l0aG91dCBjaGFuZ2luZyBhbnl0aGluZyBlbHNlIGluIHRoZQorICAgIGFwcGxpY2F0aW9uLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIElkZWFsbHksIHRoZSBidXNpbmVzcyBsb2dpYyBsYXllciBzaG91bGQgZW5jYXBzdWxhdGUgdGhlIGRhdGEgYWNjZXNzCisgICAgZGV0YWlscywgaW5jbHVkaW5nIGFjcXVpcmluZyBhIGRhdGFiYXNlIGNvbm5lY3Rpb24uCisgICAgSG93ZXZlciwgc29tZSBhcHBsaWNhdGlvbiBkZXNpZ25zIGV4cGVjdCB0aGF0IHRoZSBjYWxsZXIgYmUgYWJsZSB0byBwcm92aWRlIGEKKyAgICBkYXRhYmFzZSBjb25uZWN0aW9uIG9yIERhdGFTb3VyY2UgaW5zdGFuY2UuCisgICAgV2hlbiB0aGlzIGlzIHRoZSBjYXNlLCB0aGUgU3RydXRzIERhdGFTb3VyY2UgbWFuYWdlciBjYW4gbWFrZSBpdCBlYXN5IGZvcgorICAgIHlvdXIgQWN0aW9uIHRvIHByb2R1Y2UgdGhlc2UgcmVzb3VyY2VzIG9uIGRlbWFuZC4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGUgU3RydXRzIERhdGFTb3VyY2UgbWFuYWdlciBpcyBjb25maWd1cmVkIGFzIGFuIGVsZW1lbnQgaW4gdGhlCisgICAgPGEgaHJlZj0iLi4vdXNlckd1aWRlL2NvbmZpZ3VyYXRpb24uaHRtbCNkYXRhLXNvdXJjZV9jb25maWciPgorICAgIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGU8L2E+IChzdHJ1dHMtY29uZmlnLnhtbCkuCisgICAgVGhlIG1hbmFnZXIgY2FuIGJlIHVzZWQgdG8gZGVwbG95IGFueSBjb25uZWN0aW9uIHBvb2wgdGhhdCBpbXBsZW1lbnRzIHRoZQorICAgIDxjb2RlPmphdmF4LnNxbC5EYXRhU291cmNlPC9jb2RlPiBpbnRlcmZhY2UgYW5kIGlzIGNvbmZpZ3VyYWJsZSB0b3RhbGx5CisgICAgZnJvbSBKYXZhQmVhbiBwcm9wZXJ0aWVzLgorICAgIElmIHlvdXIgREJNUyBvciBjb250YWluZXIgcHJvdmlkZXMgYSBjb25uZWN0aW9uIHBvb2wgdGhhdCBtZWV0cyB0aGVzZQorICAgIHJlcXVpcmVtZW50cywgdGhlbiB0aGF0IGNvbXBvbmVudCBtaWdodCBiZSB5b3VyIGZpcnN0IGNob2ljZS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGUgSmFrYXJ0YSBDb21tb25zIGRiY3AncyBCYXNpY0RhdGFTb3VyY2UKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmRiY3AuQmFzaWNEYXRhU291cmNlPC9jb2RlPl0gYWxzbyB3b3JrcyB3ZWxsCisgICAgd2l0aCB0aGUgRGF0YVNvdXJjZSBtYW5hZ2VyLCBpZiBhIG5hdGl2ZSBjb21wb25lbnQgaXMgbm90IGF2YWlsYWJsZS4KKyAgICA8L3A+CisgICAgCisgICAgPHA+CisgICAgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgR2VuZXJpYyBEYXRhU291cmNlIHdoaWNoIHdhcyBpbmNsdWRlZCB3aXRoIHByZXZpb3VzIAorICAgIHZlcnNpb25zIG9mIFN0cnV0cyBoYXMgYmVlbiByZW1vdmVkIGFzIG9mIHJlbGVhc2UgMS4yLjAgaW4gZmF2b3Igb2YgCisgICAgcGx1Z2dpbmcgaW4gdGhlIEJhc2ljRGF0YVNvdXJjZSwgb3IgYW5vdGhlciBEYXRhU291cmNlIGltcGxlbWVudGF0aW9uLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFRoaXMgaXMgaG93IHlvdSB3b3VsZCBzcGVjaWZ5IGEgREJDUCBCYXNpY0RhdGFTb3VyY2UgZm9yIHlvdXIgYXBwbGljYXRpb246CisgICAgPC9wPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWworPGRhdGEtc291cmNlcz4KKzwhLS0gY29uZmlndXJhdGlvbiBmb3IgY29tbW9ucyBCYXNpY0RhdGFTb3VyY2UgLS0+Cis8ZGF0YS1zb3VyY2UgdHlwZT0ib3JnLmFwYWNoZS5jb21tb25zLmRiY3AuQmFzaWNEYXRhU291cmNlIj4KKyAgICA8c2V0LXByb3BlcnR5CisgICAgICBwcm9wZXJ0eT0iZHJpdmVyQ2xhc3NOYW1lIgorICAgICAgdmFsdWU9Im9yZy5wb3N0Z3Jlc3FsLkRyaXZlciIgLz4KKyAgICA8c2V0LXByb3BlcnR5CisgICAgICBwcm9wZXJ0eT0idXJsIgorICAgICAgdmFsdWU9ImpkYmM6cG9zdGdyZXNxbDovL2xvY2FsaG9zdC9teWRhdGFiYXNlIiAvPgorICAgIDxzZXQtcHJvcGVydHkKKyAgICAgIHByb3BlcnR5PSJ1c2VybmFtZSIKKyAgICAgIHZhbHVlPSJtZSIgLz4KKyAgICA8c2V0LXByb3BlcnR5CisgICAgICBwcm9wZXJ0eT0icGFzc3dvcmQiCisgICAgICB2YWx1ZT0idGVzdCIgLz4KKyAgICA8c2V0LXByb3BlcnR5CisgICAgICBwcm9wZXJ0eT0ibWF4QWN0aXZlIgorICAgICAgdmFsdWU9IjEwIiAvPgorICAgIDxzZXQtcHJvcGVydHkKKyAgICAgIHByb3BlcnR5PSJtYXhXYWl0IgorICAgICAgdmFsdWU9IjUwMDAiIC8+CisgICAgPHNldC1wcm9wZXJ0eQorICAgICAgcHJvcGVydHk9ImRlZmF1bHRBdXRvQ29tbWl0IgorICAgICAgdmFsdWU9ImZhbHNlIiAvPgorICAgIDxzZXQtcHJvcGVydHkKKyAgICAgIHByb3BlcnR5PSJkZWZhdWx0UmVhZE9ubHkiCisgICAgICB2YWx1ZT0iZmFsc2UiIC8+CisgICAgPHNldC1wcm9wZXJ0eQorICAgICAgcHJvcGVydHk9InZhbGlkYXRpb25RdWVyeSIKKyAgICAgIHZhbHVlPSJTRUxFQ1QgQ09VTlQoKikgRlJPTSBtYXJrZXQiIC8+Cis8L2RhdGEtc291cmNlPgorPC9kYXRhLXNvdXJjZXM+CitdXT48L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICBOb3RlIHRoYXQgeW91IGNhbiBkZWZpbmUgYXMgbWFueSBkYXRhc291cmNlIG9iamVjdHMgYXMgeW91ciBhcHBsaWNhdGlvbgorICAgIHJlcXVpcmVzIGFuZCByZWZlciB0byBlYWNoIHVzaW5nIGEgbG9naWNhbCBuYW1lLgorICAgIFRoaXMgY2FuIGJlIHVzZWZ1bCBpbiBwcm92aWRpbmcgYmV0dGVyIHNlY3VyaXR5IG9yIHNjYWxhYmlsaXR5LCBvciBldmVuCisgICAgdG8gdGVzdCBkYXRhc291cmNlIGltcGxlbWVudGF0aW9ucyBhZ2FpbnN0IGVhY2ggb3RoZXIuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgQWZ0ZXIgYSBEYXRhU291cmNlIGlzIGRlZmluZWQsIGhlcmUgaXMgYW4gZXhhbXBsZSBvZiB1c2luZyB0aGUKKyAgICBtYW5hZ2VyIHRvIGVzdGFibGlzaCBhIGNvbm5lY3Rpb24gZnJvbSB3aXRoaW4gYW4gQWN0aW9uJ3MKKyAgICA8Y29kZT5leGVjdXRlPC9jb2RlPiBtZXRob2QuCisgICAgPC9wPgorCis8cHJlPjxjb2RlPgorcHVibGljIEFjdGlvbkZvcndhcmQKKyAgICAgICBleGVjdXRlKEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkgdGhyb3dzIEV4Y2VwdGlvbgoreworIGphdmF4LnNxbC5EYXRhU291cmNlIGRhdGFTb3VyY2U7CisgamF2YS5zcWwuQ29ubmVjdGlvbiBteUNvbm5lY3Rpb247CisgdHJ5IHsKKyAgZGF0YVNvdXJjZSA9IGdldERhdGFTb3VyY2UocmVxdWVzdCk7CisgIG15Q29ubmVjdGlvbiA9IGRhdGFTb3VyY2UuZ2V0Q29ubmVjdGlvbigpOworICAvLyBkbyB3aGF0IHlvdSB3aXNoIHdpdGggbXlDb25uZWN0aW9uCisgfSBjYXRjaCAoU1FMRXhjZXB0aW9uIHNxbGUpIHsKKyAgICBnZXRTZXJ2bGV0KCkubG9nKCJDb25uZWN0aW9uLnByb2Nlc3MiLCBzcWxlKTsKKyB9IGZpbmFsbHkgeworICAgIC8vZW5jbG9zZSB0aGlzIGluIGEgZmluYWxseSBibG9jayB0byBtYWtlCisgICAgLy9zdXJlIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZAorICAgIHRyeSB7CisgICAgICAgbXlDb25uZWN0aW9uLmNsb3NlKCk7CisgICAgfSBjYXRjaCAoU1FMRXhjZXB0aW9uIGUpIHsKKyAgICAgICBnZXRTZXJ2bGV0KCkubG9nKCJDb25uZWN0aW9uLmNsb3NlIiwgZSk7CisgICAgfQorICAgfQorfQorPC9jb2RlPjwvcHJlPgorCisgICAgPHA+CisgICAgPGVtPk5vdGU6IElmIHlvdSB1c2UgdGhlIENvbW1vbnMgQmFzaWNEYXRhU291cmNlIHdpdGggU3RydXRzLAorICAgIHRoZSBxdWVyeSB5b3UgcHJvdmlkZSBmb3IgdGhlIHBpbmdRdWVyeSBhdHRyaWJ1dGUgKGlmIHlvdSBjaG9vc2UgdG8KKyAgICBpbmNsdWRlIGl0KSBtdXN0IHJldHVybiBhdCBsZWFzdCBvbmUgcm93LjwvZW0+CisgICAgPC9wPgorCisgICAgPHA+CisgICAgPHN0cm9uZz5FeGFtcGxlOjwvc3Ryb25nPiA8Y29kZT5TRUxFQ1QgQ09VTlQoKikgRlJPTSBWQUxJRFRBQkxFPC9jb2RlPgorICAgIDwvcD4KKworICAgIDxwPgorICAgIEp1c3QgYmUgc3VyZSB5b3UgdG8gcmVwbGFjZSAiVkFMSURUQUJMRSIgd2l0aCB0aGUgbmFtZSBvZiBhIHZhbGlkIHRhYmxlCisgICAgaW4geW91ciBkYXRhYmFzZS4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gbmFtZT0iVXNpbmcgTXVsdGlwbGUgRGF0YXNvdXJjZXMiIGhyZWY9Im11bHRpX2RzcmMiPgorICAgIDxwPgorICAgIElmIHlvdSBuZWVkIG1vcmUgdGhhbiBvbmUgZGF0YSBzb3VyY2UgaW4gYSBtb2R1bGUsIHlvdSBjYW4gaW5jbHVkZSBhIGtleQorICAgIGF0dHJpYnV0ZSBpbiB0aGUgZGF0YS1zb3VyY2UgZWxlbWVudDoKKyAgICA8L3A+Cis8cHJlPjxjb2RlPjwhW0NEQVRBWworPGRhdGEtc291cmNlcz4KKyAgIDxkYXRhLXNvdXJjZSBrZXk9IkEiIHR5cGU9Im9yZy5hcGFjaGUuY29tbW9ucy5kYmNwLkJhc2ljRGF0YVNvdXJjZSI+CisgICAgICAuLi4gcHJvcGVydGllcyBhcyBiZWZvcmUgLi4uCisgICA8L2RhdGEtc291cmNlPgorICAgPGRhdGEtc291cmNlIGtleT0iQiIgdHlwZT0ib3JnLmFwYWNoZS5jb21tb25zLmRiY3AuQmFzaWNEYXRhU291cmNlIj4KKyAgICAgIC4uLiBwcm9wZXJ0aWVzIGFzIGJlZm9yZSAuLi4KKyAgIDwvZGF0YS1zb3VyY2U+CisgICAuLi4KKzwvZGF0YS1zb3VyY2VzPgorXV0+PC9jb2RlPjwvcHJlPgorCisgICAgPHA+CisgICAgV2hpY2ggY2FuIHRoZW4gYmUgYWNjZXNzZWQgYnkgaW5jbHVkaW5nIHRoZSBrZXkgKCJBIiBpbiB0aGlzIGNhc2UpIGFzIGFuCisgICAgYWRkaXRpb25hbCBwYXJhbWV0ZXIgdG8gdGhlIEFjdGlvbi5nZXREYXRhU291cmNlKCkgbWV0aG9kLgorICAgIDwvcD4KKworPHByZT48Y29kZT4KKyAgIC4uLgorICAgdHJ5IHsKKyAgICAgIGRhdGFTb3VyY2VBID0gZ2V0RGF0YVNvdXJjZShyZXF1ZXN0LCAiQSIpOworICAgICAgZGF0YVNvdXJjZUIgPSBnZXREYXRhU291cmNlKHJlcXVlc3QsICJCIik7CisgICAuLi4KKzwvY29kZT48L3ByZT4KKworICAgIDxwPgorICAgIEVhY2ggbW9kdWxlIGNhbiBoYXZlIGFzIG1hbnkgZGF0YSBzb3VyY2VzIGFzIGl0IG5lZWRzLiBUaGUga2V5cyBvbmx5CisgICAgbmVlZCB0byBiZSB1bmlxdWUgd2l0aGluIGEgbW9kdWxlIHNpbmNlIHRoZSBzdHJ1dHMgbW9kdWxlIHN5c3RlbSBtYWludGFpbnMKKyAgICBhIG5hbWUgc3BhY2UgZm9yIHRoZSBpdGVtcyBpbiBlYWNoIG1vZHVsZSB0byBwcm90ZWN0IHlvdSBmcm9tIG5hbWUKKyAgICBjbGFzaGVzLgorICAgIDwvcD4KKyA8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9Im1vcmUiIG5hbWU9IlNlZSBBbHNvIj4KKworICAgIDxwPgorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMjQ2MjEuaHRtbCI+aHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cyNDYyMS5odG1sPC9hPjxici8+CisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cyNDcwOS5odG1sIj5odHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzI0NzA5Lmh0bWw8L2E+PGJyLz4KKyAgICA8YSBocmVmPSJodHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzI0NjI2Lmh0bWwiPmh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMjQ2MjYuaHRtbDwvYT48YnIvPgorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMjQzMzEuaHRtbCI+aHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cyNDMzMS5odG1sPC9hPjxici8+CisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cyNDEwMi5odG1sIj5odHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzI0MTAyLmh0bWw8L2E+PGJyLz4KKyAgICA8YSBocmVmPSJodHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzIzNTAxLmh0bWwiPmh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMjM1MDEuaHRtbDwvYT48YnIvPgorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMjM0NTUuaHRtbCI+aHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cyMzQ1NS5odG1sPC9hPjxici8+CisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cyMzM3NS5odG1sIj5odHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzIzMzc1Lmh0bWw8L2E+PGJyLz4KKyAgICA8YSBocmVmPSJodHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzIzMzIxLmh0bWwiPmh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMjMzMjEuaHRtbDwvYT48YnIvPgorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMjMwOTguaHRtbCI+aHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cyMzA5OC5odG1sPC9hPjxici8+CisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cyMjcxMy5odG1sIj5odHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzIyNzEzLmh0bWw8L2E+PGJyLz4KKyAgICA8YSBocmVmPSJodHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzIxOTc0Lmh0bWwiPmh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMjE5NzQuaHRtbDwvYT48YnIvPgorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMjEwMjYuaHRtbCI+aHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cyMTAyNi5odG1sPC9hPjxici8+CisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cxOTMzOC5odG1sIj5odHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzE5MzM4Lmh0bWw8L2E+PGJyLz4KKyAgICA8YSBocmVmPSJodHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzE4MzIzLmh0bWwiPmh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMTgzMjMuaHRtbDwvYT48YnIvPgorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMTQ5NzUuaHRtbCI+aHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cxNDk3NS5odG1sPC9hPjxici8+CisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cxNDkxNC5odG1sIj5odHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzE0OTE0Lmh0bWw8L2E+PGJyLz4KKyAgICA8YSBocmVmPSJodHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzE0NDM1Lmh0bWwiPmh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMTQ0MzUuaHRtbDwvYT48YnIvPgorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMDE1NjIuaHRtbCI+aHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cwMTU2Mi5odG1sPC9hPgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFRyYW5zZm9ybWF0aW9uL0RhdGEgVHJhbnNmZXI8YnIvPgorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMjQ0ODAuaHRtbCI+aHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cyNDQ4MC5odG1sPC9hPjxici8+CisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cyMzYyMy5odG1sIj5odHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzIzNjIzLmh0bWw8L2E+PGJyLz4KKyAgICA8YSBocmVmPSJodHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzEwMTk1Lmh0bWwiPmh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMTAxOTUuaHRtbDwvYT48YnIvPgorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMTAyMDUuaHRtbCI+aHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cxMDIwNS5odG1sPC9hPgorICAgIDwvcD4KKworPC9zZWN0aW9uPgorCisKKzxzZWN0aW9uIGhyZWY9IkR5bmFSZXN1bHRTZXQiIG5hbWU9IlJlbmRlcmluZyBhIGR5bmFtaWMgcmVzdWx0IHNldCI+CisKKyAgICA8cD4KKyAgICAgICAgVGhlIHJlc3VsdCBvZiBtb3N0IHF1ZXJpZXMgd2lsbCBtYXAgdG8gdGhlIEFjdGlvbkZvcm1zIHlvdSBhcmUgYWxyZWFkeSB1c2luZywKKyAgICAgICAgYW5kIHNvIHlvdSBjYW4gcmVuZGVyIHRoZSBSZXN1bHRTZXQgYXMgYSBjb2xsZWN0aW9uIG9mIEFjdGlvbkZvcm1zLgorICAgICAgICBCdXQgc29tZXRpbWVzIHRoZXJlIGFyZSBjb2x1bW5zIGluIGEgUmVzdWx0U2V0IHRoYXQgYXJlIG5vdCBwcm9wZXJ0aWVzIG9mIGFuIEFjdGlvbkZvcm0sCisgICAgICAgIG9yIGV2ZW4ga25vd24gaW4gYWR2YW5jZS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICAgICAgSGFwcGlseSwgdGhlIFN0cnV0cyB0YWdzIGRvbid0IGNhcmUgd2hhdCB0eXBlIG9mIGJlYW4geW91IHVzZSB3aXRoIHRoZW0uCisgICAgICAgIFlvdSBjb3VsZCBldmVuIG91dHB1dCBhIFJlc3VsdFNldCBkaXJlY3RseS4KKyAgICAgICAgQnV0IGEgUmVzdWx0U2V0IHJldGFpbnMgYSBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwgYW5kIHBhc3NpbmcgImFsbCB0aGF0IiBkaXJlY3RseSB0byBhIEpTUCBnZXRzIG1lc3N5LgorICAgICAgICBTbyB3aGF0J3MgYSBkZXZlbG9wZXIgdG8gZG8/CisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIFNpbmNlIFN0cnV0cyAxLjEsIHRoZSBzaW1wbGVzdCBvcHRpb24gaXMgdG8gdXNlIGEKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2JlYW51dGlscy9hcGkvb3JnL2FwYWNoZS9jb21tb25zL2JlYW51dGlscy9SZXN1bHRTZXREeW5hQ2xhc3MuaHRtbCI+UmVzdWx0U2V0RHluYUNsYXNzPC9hPgorICAgICAgICB0byB0cmFuc2ZlciB0aGUgUmVzdWx0U2V0IGludG8gYW4gQXJyYXlMaXN0IG9mIER5bmFCZWFucy4KKyAgICAgICAgVGhlIFN0cnV0cyBjdXN0b20gdGFncyBjYW4gdXNlIER5bmFCZWFuIHByb3BlcnRpZXMgYXMgZWFzaWx5IGFzIHRoZXkgdXNlIGNvbnZlbnRpb25hbCBKYXZhQmVhbiBwcm9wZXJ0aWVzLgorICAgICAgICAoU2VlIDxzdHJvbmc+RHluYUFjdGlvbkZvcm0gY2xhc3Nlczwvc3Ryb25nPiBpbiB0aGUgU3RydXRzIFVzZXIgR3VpZGUgZm9yIGRldGFpbHMuKQorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICBTaW5jZSB0aGlzIGlzIGluIHRoZSBCZWFuVXRpbHMgamFyLCB5b3UgYWxyZWFkeSBoYXZlIGl0IG9uIGJvYXJkLCBhbmQganVzdCBuZWVkIHRvIGltcGxlbWVudCB0aGUgdHJhbnNmZXIgcm91dGluZQorICAgICAgICAoc2VlIHRoZSBSZXN1bHRTZXREeW5hQ2xhc3MgbGluaykuCisgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKzwvYm9keT4KKzwvZG9jdW1lbnQ+CisKZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ZhcXMvZWNsaXBzZS54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL2VjbGlwc2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4NzY2MjkKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL2VjbGlwc2UueG1sCkBAIC0wLDAgKzEsMjMyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKworPGRvY3VtZW50IHVybD0iLi9zc2wueG1sIj4KKworPHByb3BlcnRpZXM+CisKKworPHRpdGxlPkhvdyB0byBzZXR1cCBhIGJhc2ljIFN0cnV0cyBwcm9qZWN0IHVzaW5nIEVjbGlwc2UgSURFIC0gQXBhY2hlIFN0cnV0czwvdGl0bGU+CisKKzwvcHJvcGVydGllcz4KKworPGJvZHk+CisKKzxzZWN0aW9uIGhyZWY9ImVjbGlwc2UiIG5hbWU9IkhvdyB0byBzZXR1cCBhIGJhc2ljIFN0cnV0cyBwcm9qZWN0IHVzaW5nIEVjbGlwc2UgSURFIi8+Cis8c2VjdGlvbiBuYW1lPSJMZWdhbCBEaXNjbGFtZXIiPgorCis8cD4KKyogRElTQ0xBSU1FUiAtIFRoaXMgc2ltcGxlIEhvdy1UbyBzaG93cyB5b3Ugb25lIG9mIG1hbnkgd2F5cyB0byBzZXR1cCBhIHdvcmtpbmcgcHJvamVjdCB1c2luZzxici8+Cit0aGUgU3RydXRzIGZyYW1ld29yay4gIFRoaXMgaXMgbWFpbmx5IGdlYXJlZCB0b3dhcmQgc3RydXRzIHVzZXJzIHdobyBhcmUgbmV3IHRvIEVjbGlwc2UsIGFuZDxici8+IAorZG9uJ3Qgd2FudCB0byBzcGVuZCBhIGxvdCBvZiB0aW1lIGZpZ3VyaW5nIG91dCB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGVpciBvbGQgSURFIChpZiBhbnkpPGJyLz4KK2FuZCB0aGlzIG9uZS48YnIvPgorPGJyLz4KK0kgd2lsbCBhbHNvIGFwb2xvZ2l6ZSBhaGVhZCBvZiB0aW1lIGZvciB0aGUgZm9ybWF0dGluZyBvZiB0aGlzIHBhZ2UuPGJyLz4KKzwvcD4KKzxici8+CitJbiB0aGlzIEhvdy1UbywgSSB3aWxsIGRlbW9uc3RyYXRlICh1c2luZyBFY2xpcHNlIDIuMC4xKSBob3cgdG8gc2V0dXAsIGNvbXBpbGUsIHJ1biw8YnIvPiAKK2FuZCBkZWJ1ZyB0aGUgc3RydXRzLWV4YW1wbGUgd2ViIGFwcGxpY2F0aW9uIHRoYXQgaXMgYnVuZGxlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uPGJyLz4KKworTmV4dCwgSSB3aWxsIG1vZGlmeSB0aGUgY29kZSB0byBwdWxsIHNvbWUgZGF0YSBmcm9tIGEgTXlTcWwgZGF0YWJhc2UgdXNpbmcgdGhlIHBvcHVsYXIgPGJyLz4KK3JlbGF0aW9uYWwgbWFwcGluZyB0b29sIE9KQi4gKFRoaXMgaXMgYWN0dWFsbHkgcXVpdGUgc2ltcGxlKQorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IkxldCdzIGdldCBzdGFydGVkIj4KK0JlZm9yZSB3ZSBiZWdpbiwgeW91IHdpbGwgbmVlZCB0byBjcmVhdGUgYSBkaXJlY3Rvcnkgc29tZXdoZXJlIHRvIHN0b3JlIHlvdXIgcHJvamVjdC48YnIvPgorSSB0eXBpY2FsbHkgdXNlIEM6XHBlcnNvbmFsXGRldmVsb3BtZW50XFByb2plY3RzXChzb21lIHByb2plY3QpPGJyLz4KK09uY2UgdGhhdCdzIGRvbmUsIGV4dHJhY3QgdGhlIHN0cnV0cy1leGFtcGxlLndhciB0byB0aGF0IGRpcmVjdG9yeSA8YnIvPgorKHVzaW5nIHlvdXIgZmF2b3JpdGUgemlwIHV0aWxpdHkpPGJyLz4KKzxici8+CitEZWxldGUgdGhlIE1FVEEtSU5GIGZvbGRlciBiZWNhdXNlIHRoaXMgd2lsbCBiZSBjcmVhdGVkIGR1cmluZyB0aGUgYnVpbGQvamFyL3dhciBwcm9jZXNzLjxici8+CisgICAgICAgICAgICAKK0FkZCBhIGJ1aWxkLnhtbCBmaWxlIHRvIHRoZSBwcm9qZWN0IHJvb3QuICBJIHVzZSBzb21ldGhpbmcgbGlrZSB0aGlzOgorCisgIDxwcmU+CisgIAorICAmbHQ7cHJvamVjdCBuYW1lPSJTdHJ1dHMgRXhhbXBsZSIgZGVmYXVsdD0ibWFpbiIgYmFzZWRpcj0iLiImZ3Q7CisgIAorICAgICZsdDshLS0gIFRoaXMgaXMgYSBiYXNpYyBidWlsZCBzY3JpcHQsIG9ubHkgdGhlIG1pbmltdW1zIGhlcmUgLS0mZ3Q7CisgICAgCisgICAgJmx0OyEtLSBUZWxsIGFudCB0byB1c2UgbXkgZW52aXJvbm1lbnQgdmFyaWFibGVzIC0tJmd0OworICAgICZsdDtwcm9wZXJ0eSBlbnZpcm9ubWVudD0iZW52Ii8mZ3Q7CisgIAorICAgICZsdDtwcm9wZXJ0eSBmaWxlPSIuL2J1aWxkLnByb3BlcnRpZXMiLyZndDsKKyAgCisgICAgICAmbHQ7cHJvcGVydHkgbmFtZT0iYnVpbGQuY29tcGlsZXIiICAgICB2YWx1ZT0ibW9kZXJuIi8mZ3Q7CisgICAgICAmbHQ7cHJvcGVydHkgbmFtZT0iYnVpbGQuZGlyIiAgICAgICAgICB2YWx1ZT0iLi9XRUItSU5GL2NsYXNzZXMiIC8mZ3Q7CisgICAgICAmbHQ7cHJvcGVydHkgbmFtZT0ic3JjLmRpciIgICAgICAgICAgICB2YWx1ZT0iLi9XRUItSU5GL3NyYyIvJmd0OworICAgICZsdDtwcm9wZXJ0eSBuYW1lPSJzZXJ2bGV0LmphciIgICAgICAgIHZhbHVlPSIvQXBhY2hlX0hvbWUvamFrYXJ0YS1zZXJ2bGV0YXBpLTQvbGliL3NlcnZsZXQuamFyIi8mZ3Q7CisgICAgICAmbHQ7cHJvcGVydHkgbmFtZT0id2FyLmZpbGUiICAgICAgICAgICAgICB2YWx1ZT0ic3RydXRzLWV4YW1wbGUiLyZndDsKKyAgICAgICZsdDtwcm9wZXJ0eSBuYW1lPSJ3YXIuZmlsZS5uYW1lIiAgICAgIHZhbHVlPSIke3dhci5maWxlfS53YXIiLyZndDsKKyAgICAgICZsdDtwcm9wZXJ0eSBuYW1lPSJ0b21jYXQuaG9tZSIgICAgICAgdmFsdWU9IiR7ZW52LkNBVEFMSU5BX0hPTUV9Ii8mZ3Q7CisgICAgICAmbHQ7cHJvcGVydHkgbmFtZT0iZGVwbG95LmRpciIgICAgICAgICB2YWx1ZT0iJHt0b21jYXQuaG9tZX0vd2ViYXBwcyIvJmd0OworICAKKyAgICAmbHQ7cGF0aCBpZD0icHJvamVjdC5jbGFzcy5wYXRoIiZndDsKKyAgICAgICAgJmx0O2ZpbGVzZXQgZGlyPSIuL1dFQi1JTkYvbGliLyImZ3Q7CisgICAgICAgICAgICAmbHQ7aW5jbHVkZSBuYW1lPSIqKi8qLmphciIvJmd0OworICAgICAgICAmbHQ7L2ZpbGVzZXQmZ3Q7CisgICAgICAgICZsdDtwYXRoZWxlbWVudCBwYXRoPSIke3NyYy5kaXJ9Ii8mZ3Q7CisgICAgICAgICZsdDtwYXRoZWxlbWVudCBwYXRoPSIke3NlcnZsZXQuamFyfSIvJmd0OworICAgICZsdDsvcGF0aCZndDsKKyAgCisgICAgICAmbHQ7dGFyZ2V0IG5hbWU9ImNsZWFuIiZndDsKKyAgICAgICAgICAmbHQ7ZGVsZXRlIGRpcj0iJHtidWlsZC5kaXJ9IiBpbmNsdWRlRW1wdHlEaXJzPSJ0cnVlIiAvJmd0OworICAgICAgJmx0Oy90YXJnZXQmZ3Q7CisgIAorICAKKyAgICAgICZsdDt0YXJnZXQgbmFtZT0icHJlcCImZ3Q7CisgICAgICAgICAgJmx0O21rZGlyIGRpcj0iJHtidWlsZC5kaXJ9Ii8mZ3Q7CisgICAgICAmbHQ7L3RhcmdldCZndDsKKyAgCisgICAgICAmbHQ7dGFyZ2V0IG5hbWU9ImNvbXBpbGUiJmd0OworICAgICAgICAmbHQ7amF2YWMgICBzcmNkaXI9IiR7c3JjLmRpcn0iCisgICAgICAgICAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuZGlyfSIKKyAgICAgICAgICAgICAgICAgICAgZGVidWc9Im9uIgorICAgICAgICAgICAgICAgIGRlcHJlY2F0aW9uPSJvbiImZ3Q7CisgICAgICAgICAgJmx0O2luY2x1ZGUgbmFtZT0iKiovKi5qYXZhIi8mZ3Q7CisgICAgICAgICAgJmx0O2NsYXNzcGF0aCByZWZpZD0icHJvamVjdC5jbGFzcy5wYXRoIi8mZ3Q7CisgICAgICAgICZsdDsvamF2YWMmZ3Q7CisgICAgICAmbHQ7L3RhcmdldCZndDsKKyAgCisgICAgICAmbHQ7dGFyZ2V0IG5hbWU9ImNsZWFuV2ViQXBwIiZndDsKKyAgICAgICAgJmx0O2RlbGV0ZSBmaWxlPSIke2RlcGxveS5kaXJ9LyR7d2FyLmZpbGUubmFtZX0iIC8mZ3Q7CisgICAgICAgICAgJmx0O2RlbGV0ZSAgZGlyPSIke2RlcGxveS5kaXJ9LyR7d2FyLmZpbGV9IiBpbmNsdWRlRW1wdHlEaXJzPSJ0cnVlIiAvJmd0OworICAgICAgJmx0Oy90YXJnZXQmZ3Q7CisgIAorICAgICAgJmx0O3RhcmdldCBuYW1lPSJ3YXIiJmd0OworICAgICAgICAgICZsdDt3YXIgd2FyZmlsZT0iJHt3YXIuZmlsZS5uYW1lfSIgd2VieG1sPSIuL1dFQi1JTkYvd2ViLnhtbCImZ3Q7CisgICAgICAgICAgICAgICAgICZsdDtmaWxlc2V0IGRpcj0iLi8iIGluY2x1ZGVzPSIqKi8qLioiIGV4Y2x1ZGVzPSIqLndhciwgKiovKi5uYmF0dHJzLCB3ZWIueG1sLCAqKi9XRUItSU5GLyoqLyouKiwgKiovcHJvamVjdC1maWxlcy8qKi8qLioiLyZndDsKKyAgICAgICAgICAgICAgICAgJmx0O3dlYmluZiAgZGlyPSIuL1dFQi1JTkYiICAgIGluY2x1ZGVzPSIqKi8qIiBleGNsdWRlcz0id2ViLnhtbCwgKiovKi5qYXIsICoqLyouY2xhc3MiLyZndDsKKyAgICAgICAgICAgICAgICAgJmx0O2xpYiAgICAgZGlyPSIuL1dFQi1JTkYvbGliIi8mZ3Q7CisgICAgICAgICAgICAgICAgICZsdDtjbGFzc2VzIGRpcj0iJHtidWlsZC5kaXJ9IiBpbmNsdWRlcz0iKiovKi5wcm9wZXJ0aWVzIiAvJmd0OworICAgICAgICAgICZsdDsvd2FyJmd0OworICAgICAgJmx0Oy90YXJnZXQmZ3Q7CisgIAorICAgICAgJmx0O3RhcmdldCBuYW1lPSJkZXBsb3kiJmd0OworICAgICAgICAgICZsdDtjb3B5IHRvZGlyPSIke2RlcGxveS5kaXJ9IiZndDsKKyAgICAgICAgICAgICZsdDtmaWxlc2V0IGRpcj0iLi8iIGluY2x1ZGVzPSIke3dhci5maWxlLm5hbWV9Ii8mZ3Q7CisgICAgICAgICAgJmx0Oy9jb3B5Jmd0OworICAgICAgJmx0Oy90YXJnZXQmZ3Q7CisgCisgICAgJmx0O3RhcmdldCBuYW1lPSJtYWluIiBkZXBlbmRzPSJjbGVhbiwgcHJlcCwgY2xlYW5XZWJBcHAsIGNvbXBpbGUsIHdhciIvJmd0OworICAKKyAgJmx0Oy9wcm9qZWN0Jmd0OworICAKKyAgPC9wcmU+CisKKyAgICA8b2w+CisgICAgICAgIDxsaT4KKyAgICAgICAgICAgIENyZWF0ZSBhIG5ldyBwcm9qZWN0Ljxici8+CisgICAgICAgICAgICA8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9ob3ctdG8vZWNsaXBzZS9kZXZlbG9waW5nLWVjbGlwc2Utc3R5bGUwMS5qcGciPjwvaW1nPjxici8+PGJyLz48YnIvPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgICBOZXcgSmF2YSBQcm9qZWN0PGJyLz4KKyAgICAgICAgICAgIDxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2hvdy10by9lY2xpcHNlL2RldmVsb3BpbmctZWNsaXBzZS1zdHlsZTAyLmpwZyI+PC9pbWc+PGJyLz48YnIvPjxici8+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICAgIEJyb3dzZSBmb3IgdGhlIGZvbGRlciB5b3UgY3JlYXRlZCBmb3IgeW91ciBwcm9qZWN0Ljxici8+CisgICAgICAgICAgICA8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9ob3ctdG8vZWNsaXBzZS9kZXZlbG9waW5nLWVjbGlwc2Utc3R5bGUwMy5qcGciPjwvaW1nPjxici8+PGJyLz48YnIvPgorICAgICAgICAgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL2VjbGlwc2UvZGV2ZWxvcGluZy1lY2xpcHNlLXN0eWxlMDQuanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgRWNsaXBzZSB3aWxsIGRldGVjdCB5b3VyIHNvdXJjZSBmb2xkZXJzIGZyb20gYW55IHN1YmRpcmVjdG9yaWVzIHVuZGVyIHlvdXIgcHJvamVjdC48YnIvPgorICAgICAgICAgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL2VjbGlwc2UvZGV2ZWxvcGluZy1lY2xpcHNlLXN0eWxlMDUuanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgSW4gb3VyIGNhc2UsIHRoaXMgaXMgd2hlcmUgdGhlIHNyYyBmb2xkZXIgd2FzIHBsYWNlZC48YnIvPgorICAgICAgICAgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL2VjbGlwc2UvZGV2ZWxvcGluZy1lY2xpcHNlLXN0eWxlMDYuanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgRGVmYXVsdCBzdGFuZGFyZCBsaWJzIGFyZSBhdXRvbWF0aWNhbGx5IGFkZGVkIGRlcGVuZGluZyBvbiB0aGUgdHlwZSBvZiBwcm9qZWN0Ljxici8+CisgICAgICAgICAgICA8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9ob3ctdG8vZWNsaXBzZS9kZXZlbG9waW5nLWVjbGlwc2Utc3R5bGUwNy5qcGciPjwvaW1nPjxici8+PGJyLz48YnIvPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgICBBZGQgdGhlIGV4aXN0aW5nIHdlYiBhcHAgamFycy48YnIvPgorICAgICAgICAgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL2VjbGlwc2UvZGV2ZWxvcGluZy1lY2xpcHNlLXN0eWxlMDguanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgTm93IHdlIG5lZWQgdG8gYWRkIGEgZmV3IGphcnMgZnJvbSB0aGUgZmlsZSBzeXN0ZW0uPGJyLz4KKyAgICAgICAgICAgIDxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2hvdy10by9lY2xpcHNlL2RldmVsb3BpbmctZWNsaXBzZS1zdHlsZTA5LmpwZyI+PC9pbWc+PGJyLz48YnIvPjxici8+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICAgIFdlIGFsd2F5cyBuZWVkIHRoaXMgb25lIChzZXJ2bGV0Lmphcik8YnIvPgorICAgICAgICAgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL2VjbGlwc2UvZGV2ZWxvcGluZy1lY2xpcHNlLXN0eWxlMTAuanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgQWhoaGguLi5ldmVyeXRoaW5nIGxvb2tzIG9rIGZvciBub3cuICBZb3UgY2FuIGFsd2F5cyBnbyBiYWNrIGFuZCBtb2RpZnkgdGhlc2Ugc2V0dGluZ3MgPGJyLz4KKyAgICAgICAgICAgIGxhdGVyLjxici8+CisgICAgICAgICAgICA8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9ob3ctdG8vZWNsaXBzZS9kZXZlbG9waW5nLWVjbGlwc2Utc3R5bGUxMS5qcGciPjwvaW1nPjxici8+PGJyLz48YnIvPgorICAgICAgICAgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL2VjbGlwc2UvZGV2ZWxvcGluZy1lY2xpcHNlLXN0eWxlMTIuanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgV2hlbiBldmVyeXRoaW5nIHNldHRsZXMgZG93biwgeW91IHNob3VsZCBzZWUgc29tZXRoaW5nIGxpa2UgdGhpcyAob2YgY291cnNlLCBpdCBtaWdodCAKKyAgICAgICAgICAgIGxvb2sgZGlmZmVyZW50IGRlcGVuZGluZyBvbiB5b3VyIGluc3RhbGxhdGlvbi9jdXN0b21pemF0aW9uKTo8YnIvPgorICAgICAgICAgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL2VjbGlwc2UvZGV2ZWxvcGluZy1lY2xpcHNlLXN0eWxlMTMuanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgQ29tcGlsYXRpb24gd2FybmluZ3MgYW5kIGVycm9ycyBhcmUgZGV0ZWN0ZWQgaW1tZWRpYXRlbHkuICBJbiB0aGlzIHNjcmVlbnNob3QsIEkgZHJpbGwgZG93bjxici8+CisgICAgICAgICAgICBpbnRvIHRoZSBzb3VyY2UgZm9sZGVyLCBwYWNrYWdlLCBmaWxlLCBjbGFzcywgYW5kIGRvdWJsZSBjbGljayBvbiB0aGUgbWV0aG9kLi4uLndoaWNoIDxici8+CisgICAgICAgICAgICBicmluZ3MgdXAgdGhlIHNvdXJjZSBlZGl0b3IuICBJIGhvdmVyIHRoZSBtb3VzZSBvdmVyIHRoZSBvZmZlbmRpbmcgd2FybmluZyB0byBzZWUgPGJyLz4KKyAgICAgICAgICAgIGEgZGVzY3JpcHRpb24gb2Ygd2hhdCdzIHdyb25nLjxici8+CisgICAgICAgICAgICA8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9ob3ctdG8vZWNsaXBzZS9kZXZlbG9waW5nLWVjbGlwc2Utc3R5bGUxNC5qcGciPjwvaW1nPjxici8+PGJyLz48YnIvPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgICBJIGNoYW5nZWQgQXBwbGljYXRpb25Db25maWcgdG8gTW9kdWxlQ29uZmlnLCB0aGVuIHNhdmVkIGFuZCBub3cgSSBzZWUgbmV3IGVycm9ycy48YnIvPgorICAgICAgICAgICAgWW91IGNhbiByaWdodCBjbGljayBhbmQgaW1wb3J0IE1vZHVsZUNvbmZpZyByaWdodCBmcm9tIHRoZSBlcnJvci48YnIvPgorICAgICAgICAgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL2VjbGlwc2UvZGV2ZWxvcGluZy1lY2xpcHNlLXN0eWxlMTUuanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgQSBxdWljayBsb29rIGF0IHRoZSBpbXBvcnQgc2VjdGlvbi48YnIvPgorICAgICAgICAgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL2VjbGlwc2UvZGV2ZWxvcGluZy1lY2xpcHNlLXN0eWxlMTguanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgUmlnaHQgY2xpY2ssIFNvdXJjZSwgT3JnYW5pemUgSW1wb3J0czxici8+CisgICAgICAgICAgICA8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9ob3ctdG8vZWNsaXBzZS9kZXZlbG9waW5nLWVjbGlwc2Utc3R5bGUyMC5qcGciPjwvaW1nPjxici8+PGJyLz48YnIvPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgICBBaGhoaC4uLmJldHRlcjxici8+CisgICAgICAgICAgICA8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9ob3ctdG8vZWNsaXBzZS9kZXZlbG9waW5nLWVjbGlwc2Utc3R5bGUyMS5qcGciPjwvaW1nPjxici8+PGJyLz48YnIvPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgICBGcm9tIHRoZSBQYWNrYWdlIEV4cGxvcmVyLCByaWdodCBjbGljayB5b3VyIGJ1aWxkLnhtbCBhbmQgcnVuIEFudDo8YnIvPgorICAgICAgICAgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL2VjbGlwc2UvZGV2ZWxvcGluZy1lY2xpcHNlLXN0eWxlMjIuanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgSXMgdGhpcyBjb29sIG9yIHdoYXQ/PGJyLz4KKyAgICAgICAgICAgIDxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2hvdy10by9lY2xpcHNlL2RldmVsb3BpbmctZWNsaXBzZS1zdHlsZTIzLmpwZyI+PC9pbWc+PGJyLz48YnIvPjxici8+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICAgIE9oIGNyYXAhPGJyLz4KKyAgICAgICAgICAgIDxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2hvdy10by9lY2xpcHNlL2RldmVsb3BpbmctZWNsaXBzZS1zdHlsZTI0LmpwZyI+PC9pbWc+PGJyLz48YnIvPjxici8+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICAgIFF1aWNrIGxvb2sgYXQgd2hhdCBqYXJzIGFyZSBiZWluZyB1c2VkIHRvIHByb2Nlc3MgbXkgYnVpbGQuPGJyLz4KKyAgICAgICAgICAgIDxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2hvdy10by9lY2xpcHNlL2RldmVsb3BpbmctZWNsaXBzZS1zdHlsZTI2LmpwZyI+PC9pbWc+PGJyLz48YnIvPjxici8+CisgICAgICAgICAgICA8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9ob3ctdG8vZWNsaXBzZS9kZXZlbG9waW5nLWVjbGlwc2Utc3R5bGUyNS5qcGciPjwvaW1nPjxici8+PGJyLz48YnIvPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgICBJIHNpbXBseSByZW1vdmVkIGFsbCB0aGUgZXhpc3RpbmcgamFycyBmcm9tIHRoZSBJREUncyBBbnQgY29uZmlndXJhdGlvbiBhbmQ8YnIvPgorICAgICAgICAgICAgYWRkZWQgYWxsIGZyb20gbXkgb3duIGluc3RhbGxhdGlvbi48YnIvPgorICAgICAgICAgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL2VjbGlwc2UvZGV2ZWxvcGluZy1lY2xpcHNlLXN0eWxlMjcuanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgQ2FuJ3QgZm9yZ2V0IHRoYXQgbGFzdCBvbmU8YnIvPgorICAgICAgICAgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL2VjbGlwc2UvZGV2ZWxvcGluZy1lY2xpcHNlLXN0eWxlMjguanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgRXZlcnl0aGluZyB3ZW50IG9rIChmb3IgbWUpPGJyLz4KKyAgICAgICAgICAgIDxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2hvdy10by9lY2xpcHNlL2RldmVsb3BpbmctZWNsaXBzZS1zdHlsZTMwLmpwZyI+PC9pbWc+PGJyLz48YnIvPjxici8+CisgICAgICAgICAgICA8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9ob3ctdG8vZWNsaXBzZS9kZXZlbG9waW5nLWVjbGlwc2Utc3R5bGUyOS5qcGciPjwvaW1nPjxici8+PGJyLz48YnIvPgorICAgICAgICAgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL2VjbGlwc2UvZGV2ZWxvcGluZy1lY2xpcHNlLXN0eWxlMzEuanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgVGltZSB0byB0ZXN0LWRyaXZlPGJyLz4KKyAgICAgICAgICAgIDxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2hvdy10by9lY2xpcHNlL2RldmVsb3BpbmctZWNsaXBzZS1zdHlsZTMyLmpwZyI+PC9pbWc+PGJyLz48YnIvPjxici8+CisgICAgICAgIDwvbGk+CisgICAgPC9vbD4KKworPC9zZWN0aW9uPgorCisKKworPC9ib2R5PjwvZG9jdW1lbnQ+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL2hlbHBpbmcueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZmFxcy9oZWxwaW5nLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Y2ZkMzA3Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZmFxcy9oZWxwaW5nLnhtbApAQCAtMCwwICsxLDQyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSIuL2hlbHBpbmcueG1sIj4KKzxwcm9wZXJ0aWVzPgorPHRpdGxlPkhvdyB0byBIZWxwIEZBUSAtIEFwYWNoZSBTdHJ1dHM8L3RpdGxlPgorPC9wcm9wZXJ0aWVzPgorCis8Ym9keT4KKworPHNlY3Rpb24gaHJlZj0iZmFxIiBuYW1lPSJIb3cgdG8gSGVscCBGQVEiLz4KKworPHNlY3Rpb24gaHJlZj0iY29udGVudHMiIG5hbWU9IkluZGV4Ij4KKworPHA+CisKKyJZb3UgY2FuJ3QgYWx3YXlzIGdldCB3aGF0IHlvdSB3YW50IC8gCitidXQgaWYgeW91IHRyeSByZWFsIGhhcmQgLyAKK3lvdSBtaWdodCBqdXN0IGZpbmQgLwordGhhdCB5b3UgZ2V0IHdoYXQgeW91IG5lZWQiLiAKKzxici8+CitbUm9sbGluZyBTdG9uZXNdCis8L3A+CisKKzx1bD4KKyAgICA8bGk+PGEgaHJlZj0iI2NvcnAiPgorICAgIFdoYXQgY2FuIG15IGNvbXBhbnkgZG8gdG8gaGVscCBzdXBwb3J0IFN0cnV0cz8KKyAgICA8L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iI2J1Z3MiPgorICAgIEhvdyBjYW4gSSByZXBvcnQgYnVncyBvciBtYWtlIGZlYXR1cmUgcmVxdWVzdHM/CisgICAgPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IiNjb250cmlidXRlIj4KKyAgICBIb3cgY2FuIEkgY29udHJpYnV0ZSB0byBTdHJ1dHMgc291cmNlIGNvZGU/CisgICAgPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IiNkb2N1bWVudGF0aW9uIj4KKyAgICBIb3cgY2FuIEkgY29udHJpYnV0ZSB0byB0aGUgZG9jdW1lbnRhdGlvbj8KKyAgICA8L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iI3JlbGVhc2UiPgorICAgIFNvIHdoZW4gaXMgdGhlIG5leHQgcmVsZWFzZSBjb21pbmcgb3V0PworICAgIDwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSIjcmVsZWFzZV9oZWxwIj4KKyAgICBIb3cgY2FuIEkgaGVscCB0aGUgbmV4dCByZWxlYXNlIGFsb25nPworICAgIDwvYT48L2xpPgorPC91bD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJjb3JwIiBuYW1lPSJXaGF0IGNhbiBteSBjb21wYW55IGRvIHRvIGhlbHAgc3VwcG9ydCBTdHJ1dHM/Ij4KKworPHA+CitTdHJ1dHMgaXMgYW4gYWxsIHZvbHVudGVlciBwcm9kdWN0LiAKK091ciBjdXN0b21lcnMgYXJlIHRoZSB2b2x1bnRlZXJzIHdobyBkb25hdGUgdGhlaXIgdGltZSBhbmQgZW5lcmd5IHRvIAorc3VwcG9ydGluZyB0aGUgcHJvZHVjdC4gCitJZiB5b3Ugd2FudCB0byBzdXBwb3J0IFN0cnV0cywgYW5kIGJlY29tZSBvbmUgb2Ygb3VyIGN1c3RvbWVycywgCit0aGVuIHlvdSBuZWVkIHRvIAorPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL2dldGludm9sdmVkLmh0bWwiPmdldCBpbnZvbHZlZDwvYT4KK2FuZCBiZWNvbWUgYSB2b2x1bnRlZXIuCis8L3A+CisKKzxwPgorT3VyIGNoYWxsZW5nZSB0byBhbnkgdGVhbSB1c2luZyBTdHJ1dHMgaXMgdG8gZG9uYXRlIHRoZSB0aW1lIG9mIG9uZSB0ZWFtIG1lbWJlciAKK29uZSBhZnRlcm5vb24gYSB3ZWVrIChvciBtb3JlIGlmIHlvdSBjYW4gc3BhcmUgdGhlIHJlc291cmNlcykuIAorSGF2ZSB5b3VyIHRlYW0gbWVtYmVyIGJyb3dzZSAKKzxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc2l0ZS9idWdzLmh0bWwiPkJ1Z3ppbGxhPC9hPiBmb3IgYW55IGlzc3VlcyAKK3dpdGhvdXQgYSBwYXRjaCBvciB1bml0IHRlc3QsIAorYW5kIGFkZCB0aGUgcGF0Y2ggb3IgdGVzdC4KK0lmIHRoZSBwYXRjaCBpcyB3cml0dGVuIG9uIGNvbXBhbnkgdGltZSwgCithbmQgeW91IHdhbnQgdG8gZ2l2ZSB5b3VyIGNvbXBhbnkgYW4gYXV0aG9yJ3MgY3JlZGl0LCB0aGF0J3MgZmluZSB3aXRoIHVzLgorPC9wPgorCis8cD4KK0lmIFN0cnV0cyBkb2Vzbid0IGRvIHdoYXQgPGVtPnlvdTwvZW0+IHdhbnQsIGl0J3MgdXAgdG8gPHN0cm9uZz55b3U8L3N0cm9uZz4gdG8gc3RlcCB1cCAKK2FuZCBwcm9wb3NlIHRoZSBwYXRjaC4KK0lmIFN0cnV0cyBkb2Vzbid0IHNoaXAgYXMgb2Z0ZW4gYXMgeW91IHdvdWxkIGxpa2UsIGl0J3MgdXAgdG8geW91IHRvIHN0ZXAgdXAgCit3aXRoIHRoZSB0ZXN0cyBhbmQgZml4ZXMgdGhhdCBnZXQgYSByZWxlYXNlIG91dCB0aGUgZG9vci4KKzwvcD4KKworPHA+CitJZiBTdHJ1dHMgZG9lcyBkbyB3aGF0IHlvdSB3YW50LCBoZWxwIG90aGVycyBiZWNvbWUgaW52b2x2ZWQgYnkgdHVybmluZyB5b3VyIAord2FyIHN0b3JpZXMgaW50byBGQVFzIGFuZCBob3ctdG9zIHRoYXQgd2UgY2FuIG1ha2UgcGFydCBvZiB0aGUgCis8YSBocmVmPSIjZG9jdW1lbnRhdGlvbiI+ZG9jdW1lbnRhdGlvbjwvYT4uIAorVGhlIG1haWxpbmcgbGlzdCBpcyB2ZXJ5IGFjdGl2ZSBhbmQgdHJ1bmRsaW5nIHRocm91Z2ggdGhlIGFyY2hpdmVzIGlzIG5vIAorcGljbmljLiAKK1dlIGNhbiBhbHdheXMgdXNlIHBlb3BsZSB3aG8gY2FuIHJlZHVjZSB0aGUgYmVzdCB0aHJlYWRzIHRvIGNvaGVyZW50IGFydGljbGVzIAordGhhdCB3ZSBjYW4gcHV0IGluIHRoZSBVc2VyIEd1aWRlLgorPC9wPgorCis8cD4KK1NvbWUgQXBhY2hlIHByb2R1Y3RzIGxpa2UgeW91IHRvIHN1Ym1pdCB5b3VyIHBhdGNoIHRvIHRoZSBtYWlsaW5nIGxpc3QuIAorV2Ugd291bGQgcHJlZmVyIHRoYXQgeW91IGNyZWF0ZSBhIAorPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL2J1Z3MuaHRtbCI+QnVnemlsbGE8L2E+CitCdWd6aWxsYSByZXBvcnQgYW5kIHRoZW4gYXR0YWNoIHRoZSBwYXRjaCB0byB0aGUgcmVwb3J0LiAKK1RvIGRvIHRoaXMsIHlvdSBtdXN0IGZpcnN0IGNyZWF0ZSB0aGUgcmVwb3J0LCAKK2FuZCB0aGVuIG1vZGlmeSB0aGUgcmVwb3J0IHRvIGFkZCB5b3VyIHBhdGNoLiAKK1dlIHJlYWxpemUgdGhpcyBpcyBhIGJpdCBjbHVtc3ksIGJ1dCBpdCBrZWVwcyB1cyBmcm9tIGxvc2luZyB0aGluZ3MsIAorYW5kIGhlbHBzIHRvIGVuc3VyZSB0aGF0IHlvdXIgcGF0Y2ggd2lsbCBiZSBhdHRlbmRlZC4KKzwvcD4KKworPHA+CitXZSBkb24ndCBzZWxsIFN0cnV0cyBmb3IgbW9uZXksIGJ1dCBhbnlvbmUgd2hvIHdhbnRzIHRvIGJlIG91ciBjdXN0b21lciAKK2NhbiBwYXkgdXMgYmFjayBieSBkb25hdGluZyB0aGUgdGltZSBhbmQgZW5lcmd5IHRoYXQgbW9uZXkgcmVwcmVzZW50cy4KKzwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJidWdzIiBuYW1lPSJIb3cgY2FuIEkgcmVwb3J0IGJ1Z3Mgb3IgbWFrZSBmZWF0dXJlIHJlcXVlc3RzPyI+CisKKzxwPgorWW91IGNhbiByZXNlYXJjaCBhbmQgcmVwb3J0IG91dHN0YW5kaW5nIGZpeGVzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIHVzaW5nCis8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3NpdGUvYnVncy5odG1sIj5KYWthcnRhIEJ1Z3ppbGxhPC9hPi4gCitJZiB5b3UgYXJlIHVuc3VyZSBpZiB0aGlzIGlzIGFuIGFjdHVhbCBwcm9ibGVtLCBmZWVsIGZyZWUgdG8gYnJpbmcgaXQgdXAgdGhlIAorbGlzdCBmaXJzdC4gCitCdXQgdG8gYmUgc3VyZSB0aGF0IGFuIGlzc3VlIGlzIHJlc29sdmVkLCByZWFkIAorPGEgaHJlZj0iaHR0cDovL3d3dy5jaGlhcmsuZ3JlZW5lbmQub3JnLnVrL35zZ3RhdGhhbS9idWdzLmh0bWwiPgorSG93IHRvIFJlcG9ydCBCdWdzIEVmZmVjdGl2ZWx5PC9hPiBhbmQgcmVwb3J0IGl0IHRvCis8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3NpdGUvYnVncy5odG1sIj48c3Ryb25nPkJ1Z3ppbGxhPC9zdHJvbmc+PC9hPi4KKzwvcD4KKworPHA+CitGZWF0dXJlIHJlcXVlc3RzIGFyZSBhbHNvIG1haW50YWluZWQgaW4gdGhlIEJ1Z3ppbGxhIGRhdGFiYXNlLiAKKzwvcD4KKworPHA+Cis8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3NpdGUvc291cmNlLmh0bWwiPlBhdGNoZXM8L2E+IGFyZSBhbHdheXMKK3dlbGNvbWUuIAorSWYgeW91IGNhbid0IHdyaXRlIGEgcGF0Y2ggdG8gZml4IHlvdXIgYnVnLCBhIDxhIGhyZWY9ImtpY2tzdGFydC5odG1sI3Rlc3RzIj51bml0IHRlc3Q8L2E+Cit0aGF0IGRlbW9uc3RyYXRlcyB0aGUgcHJvYmxlbSBpcyBhbHNvIHdlbGNvbWUuCisoQW5kLCBvZiBjb3Vyc2UsIHVuaXQgdGVzdHMgdGhhdCBwcm92ZSB5b3VyIHBhdGNoIHdvcmtzIGFyZSBlcXVhbGx5IHdlbGNvbWUuKQorPC9wPgorCis8cD4KK0lmIHlvdXIgYnVnIG9yIGZlYXR1cmUgaXMgYWxyZWFkeSBpbiBCdWd6aWxsYSwgPHN0cm9uZz55b3UgY2FuIHZvdGU8L3N0cm9uZz4KK2ZvciB0aGUgaXNzdWUgYW5kIGNhbGwgbW9yZSBhdHRlbnRpb24gdG8gaXQuIAorRWFjaCB1c2VyIGNhbiBjYXN0IHVwIHRvIHNpeCB2b3RlcyBhdCBhIHRpbWUuCis8L3A+CisKKzxwPgorSWYgdGhlcmUgaXMgYSBwYXRjaCBhdHRhY2hlZCB0byB0aGUgaXNzdWUsIHlvdSBjYW4gYWxzbyB0cnkgYXBwbHlpbmcKK3RvIHlvdXIgbG9jYWwgY29weSBvZiBTdHJ1dHMsIGFuZCByZXBvcnQgd2hldGhlciBpdCB3b3JrZWQgZm9yIHlvdS4KK0ZlZWRiYWNrIGZyb20gZGV2ZWxvcGVycyByZWdhcmRpbmcgYSBwcm9wb3NlZCBwYXRjaCBpcyByZWFsbHkgcXVpdGUKK2hlbHBmdWwuIAorRG9uJ3QgaGVzaXRhdGUgdG8gIm1lIHRvbyIgaWYgeW91J3ZlIHRyaWVkIHRoZSBwYXRjaCB5b3Vyc2VsZi4KKzwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJjb250cmlidXRlIiAKKyAgICBuYW1lPSJIb3cgY2FuIEkgY29udHJpYnV0ZSB0byB0aGUgU3RydXRzIHNvdXJjZSBjb2RlPyI+CisKKzxwPgorU3RydXRzIGlzIGRpc3RyaWJ1dGVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9hcGFjaGUub3JnLyI+CitUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb248L2E+LgorVGhlc2UgYXJlIHRoZSBzYW1lIHBlb3BsZSB3aG8gZGlzdHJpYnV0ZSB0aGUgQXBhY2hlIFdlYiBzZXJ2ZXIuIAorTGlrZSBhbGwgQVNGIHByb2plY3RzLCBTdHJ1dHMgaXMgbWFuYWdlZCBhcyBhICZxdW90O21lcml0b2NyYWN5JnF1b3Q7LCAKK3doZXJlIGV2ZXJ5b25lJ3MgY29udHJpYnV0aW9uIGlzIHdlbGNvbWUuIAorVXNlcnMgY2FuIGhlbHAgb3RoZXIgdXNlcnMgdGhlIAorPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL21haWwuaHRtbCI+bWFpbGluZyBsaXN0czwvYT4sCis8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3NpdGUvYnVncy5odG1sIj5yZXBvcnQgYnVnczwvYT4sIGFuZAorPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL2J1Z3MuaHRtbCI+cmVxdWVzdCBuZXcgZmVhdHVyZXM8L2E+LiAKK0RldmVsb3BlcnMgY2FuCitjb250cmlidXRlIHBhdGNoZXMsIG5ldyBjb2RlLCBhbmQgZG9jdW1lbnRhdGlvbi4gCitUaGUgbW9zdCBhY3RpdmUgRGV2ZWxvcGVycyBtYXkgYmVjb21lCis8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3NpdGUvcm9sZXMuaHRtbCI+Q29tbWl0dGVyczwvYT4sIAord2hvIG1ha2UgdGhlIGFjdHVhbCBkZWNpc2lvbnMgYWJvdXQgU3RydXQncyBjb2RlYmFzZS4KKzwvcD4KKworPHA+CitJZiB5b3UgYXJlIG5ldyB0byBvcGVuIHNvdXJjZSBkZXZlbG9wbWVudCwgc2VlIHRoZQorPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL2dldGludm9sdmVkLmh0bWwiPgorSG93IHRvIGdldCBpbnZvbHZlZDwvYT4gcGFnZSB0aGUgbWFpbiBKYWthcnRhIHNpdGUuCis8L3A+CisKKzxwPgorQSB2ZXJ5IGdvb2QgcGxhY2UgdG8gc3RhcnQgaXMgYnkgPHN0cm9uZz5yZXZpZXdpbmcgdGhlIGxpc3Qgb2Ygb3BlbiBpc3N1ZXM8L3N0cm9uZz4gYW5kIAorcGVuZGluZyBmZWF0dXJlIHJlcXVlc3RzICg8YSBocmVmPSIjYnVncyI+QnVnemlsbGE8L2E+KS4gCitJZiB5b3Ugc2VlIGFuIGlzc3VlIHRoYXQgbmVlZHMgYSBwYXRjaCB5b3UgY2FuIHdyaXRlLCAKK2ZlZWwgZnJlZSB0byBhbm5leCB5b3VyIHBhdGNoLiAKK0lmIHlvdSBzZWVuIGFuIGlzc3VlIHRoYXQgbmVlZHMgYSB1bml0IHRlc3QgdG8gcHJvdmUgaXRzIGZpeGVkLCAKK2ZlZWwgZnJlZSB0byBhbm5leCB5b3VyIHRlc3QgY2FzZS4gCitJZiBzb21lb25lIGhhcyBwb3N0ZWQgYSBwYXRjaCB0byBhbiBpc3N1ZSB5b3UnZCBsaWtlIHRvIHNlZSByZXNvbHZlZCwgCithcHBseSB0aGUgcGF0Y2ggdG8geW91ciBsb2NhbCBkZXZlbG9wbWVudCBjb3B5IG9mIFN0cnV0cy4gCitUaGVuIGxldCB1cyBrbm93IGlmIGl0IHdvcmtzIGZvciB5b3UsIGFuZCBpZiBpdCBkb2VzLCAKK2Nhc3QgeW91ciB2b3RlIGZvciB0aGUgaXNzdWUgYW5kIGl0cyBwYXRjaC4KKzwvcD4KKworPHA+CitJZiBub25lIG9mIHRoZSBwZW5kaW5nIGlzc3VlcyBzY3JhdGNoIHlvdXIgaXRjaCwgCithbm90aGVyIGdvb2QgcGxhY2UgdG8gc3RhcnQgaXMgYnkgPHN0cm9uZz5jb250cmlidXRpbmcgdW5pdCB0ZXN0czwvc3Ryb25nPiAKK2ZvciBleGlzdGluZyBmZWF0dXJlcyAoZXZlbiB0aG9zZSB0aGF0IHN0aWxsIHdvcmspLgorPC9wPgorCis8cD4KK091ciBjdXJyZW50IGFwcHJvYWNoIHRvIDxhIGhyZWY9ImtpY2tzdGFydC5odG1sI3Rlc3RzIj51bml0IHRlc3Rpbmc8L2E+Cit3b3JrcyBmYWlybHkgd2VsbCBmb3IgZXhlcmNpc2luZyBtb3N0IG1ldGhvZC1sZXZlbCBzdHVmZiwgYnV0IGRvZXMKK25vdCByZWFsbHkgYWRkcmVzcyBzaXR1YXRpb25zIG9mIGR5bmFtaWMgYmVoYXZpb3IgLS0gbW9zdCBwYXJ0aWN1bGFybHkgdGhlCitleGVjdXRpb24gb2YgY3VzdG9tIHRhZ3MgZm9yIFN0cnV0cy4gIAorWW91IGNhbiB0cnkgdG8gZmFrZSB3aGF0IGEgSlNQIGNvbnRhaW5lciBkb2VzLCBidXQgYSBtdWNoIG1vcmUgcmVsaWFibGUgCit0ZXN0aW5nIHJlZ2ltZSB3b3VsZCBhY3R1YWxseSBleGVjdXRlIHRoZSB0YWcgaW4gYSByZWFsIGNvbnRhaW5lci4gIAorRm9yIHRoYXQgcHVycG9zZSwgd2UgdXNlIHRoZSAKKzxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY2FjdHVzIj5DYWN0dXM8L2E+IHRlc3RpbmcgZnJhbWV3b3JrLCAKK3doaWNoIHJlLWV4ZWN1dGVzIHRoZSBKVW5pdC1iYXNlZCB0ZXN0cyBhcyB3ZWxsIHRvIG1ha2Ugc3VyZSB0aGF0IG5vdGhpbmcgCitiYWQgaGFwcGVucyB3aGVuIHlvdSBzd2l0Y2ggZW52aXJvbm1lbnRzLiAgCitSaWdodCBub3csIHRoZXJlIGFyZSB2ZXJ5IGZldyBkeW5hbWljIHRlc3RzOyBpZGVhbGx5LCB3ZSB3aWxsIGhhdmUgdGVzdHMgCitmb3IgZXZlcnkgdGFnLCB0aGF0IGNvdmVyIGV2ZXJ5IHJlYXNvbmFibGUgY29tYmluYXRpb24gb2YgdGFnIGF0dHJpYnV0ZSAKK3ZhbHVlcyAoeWVzLCB0aGF0J3MgYSB0YWxsIG9yZGVyIC0tIHRoZSB0b3RhbGx5IGxpbmVzIG9mIHRlc3Qgc291cmNlIGNvZGUgCit3aWxsIHVuZG91YnRlZGx5IGV4Y2VlZCB0aGUgdG90YWxseSBsaW5lcyBvZiBjb2RlIGluIHRoZSBmcmFtZXdvcmsgaXRzZWxmIAoraWYgd2UgYWNoaWV2ZSB0aGlzKS4KKzwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJkb2N1bWVudGF0aW9uIiAKKyAgICBuYW1lPSJIb3cgY2FuIEkgY29udHJpYnV0ZSB0byB0aGUgZG9jdW1lbnRhdGlvbj8iPgorCis8cD4KK1RoZSBvbmx5IGRpZmZlcmVuY2UgaXMgdGhhdCB0aGUgZG9jdW1lbnRhdGlvbiBpcyBrZXB0IGluIFhNTCByYXRoZXIgdGhhbiBKYXZhCitzb3VyY2UgY29kZS4gCitPdGhlcndpc2UsIGFsbCB0aGUgc2FtZSBwcmVjZXB0cyBhbmQgcHJvY2VkdXJlcyBwZXJ0YWluLgorPC9wPgorCis8cD4KK1RoZSB0cmljayB0byBnZXR0aW5nIHN0YXJ0ZWQgaXMgdG8gZG93bmxvYWQgdGhlIG5pZ2h0bHkgYnVpbGQgYW5kIHRyeSBidWlsZGluZyAKK3RoZSBkb2N1bWVudGF0aW9uIFdBUi4gCitUaGVuIHRyeSBhZGRpbmcgeW91ciBvd24gWE1MIHBhZ2UgdW5kZXIgZG9jLyB0byBzZWUgaWYgdGhlIGJ1aWxkIHN1Y2NlZWRzLiAKK0lmIGl0IGRvZXNuJ3QsIGl0IHdpbGwgcmVwb3J0IHdoZXJlIHRoZSBiYWQgZWxlbWVudCBpcywgbXVjaCBsaWtlIGl0IHJlcG9ydHMgCit3aGVyZSBhIGJhZCBwcm9ncmFtbWluZyBleHByZXNzaW9uIGlzLiAKK0lmIGl0IGRvZXMsIHRoZW4geW91ciBwYWdlIHNob3VsZCBiZSBhdmFpbGFibGUgdW5kZXIgdGFyZ2V0L2RvY3VtZW50YXRpb24vLgorPC9wPgorCis8cD4KK1RoZSB3ZWJzaXRlIHBvcnRpb24gb2YgdGhlIHBhY2thZ2UgaXMgdGhlIHJvb3QgZGlyZWN0b3J5IG9mIGRvYy8uIAorVGhlIFVzZXIgR3VpZGUgcG9ydGlvbiBpcyB1bmRlciB0aGUgdXNlckd1aWRlLyBmb2xkZXIuIAorSWYgdGhlIG1hdGVyaWFsIHlvdSdkIHRvIGFkZCBkb2Vzbid0IGZpdCByaWdodCBpbiB3aXRoIHdoYXQncyB0aGVyZSwgCit0aGUgYmVzdCB0aGluZyBtYXkgdG8gc3RhcnQgYSBuZXcgc2VjdGlvbiBhZnRlciB0aGUgZXhpc3RpbmcgbWF0ZXJpYWwuIAorVGhlIG5hdmlnYXRpb24gY29sdW1uIGNhbiBiZSBmb3VuZCBpbiB0aGUgcHJvamVjdC54bWwgZG9jdW1lbnQuCis8L3A+CisKKzxwPgorVG8gZGlzcGxheSBtYXJrdXAsIHN1YnN0aXR1dGUgJmFtcDtsdDsgZm9yICZsdDsuIAorVGhlIHVubWF0Y2hlZCB0cmFpbGluZyA+IHdpbGwgYmUgaWdub3JlZC4gCitTaW5jZSBpdCBpcyBYTUwsIGFsbCBlbGVtZW50cyBhbHNvIG5lZWQgdG8gY2xvc2VkLiAKK1NvIGVsZW1lbnRzIGxpa2UgJmx0O2JyPiBhbmQgJmx0O2hyPiBuZWVkIHRvIHNldCBvdXQgYXMgJmx0O2JyLz4gYW5kICZsdDtoci8+LgorPC9wPgorCis8cD4KK0Fsc28gd2F0Y2ggZm9yIHRoZSBsZW5ndGggb2YgY29kZSBzYW1wbGVzIC0gCit0aGVzZSBkbyBub3Qgd3JhcC4gCitJZiBhIGxpbmUgaXMgdG9vIGxvbmcsIGl0IHdpbGwgZm9yY2UgdGhlIHJpZ2h0IG1hcmdpbiBvdXQgcGFzdCB0aGUgZWRnZSBvZiB0aGUgCitzY3JlZW4gb3IgcHJpbnRlZCBwYWdlLgorPC9wPgorCis8cD4KK1RoZSBzdHlsZXNoZWV0cyB3ZSB1c2UgYXJlIGFkZXF1YXRlLCBidXQgY291bGQgY2VydGFpbmx5IGJlIGltcHJvdmVkIGJ5IGFuIFhNTAorZ3VydSwgaWYgeW91IGhhcHBlbiB0byBvbmUgb2YgdGhvc2UuCis8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0icmVsZWFzZSIgbmFtZT0iU28gd2hlbiBpcyB0aGUgbmV4dCByZWxlYXNlIGNvbWluZyBvdXQ/Ij4KKworPHA+CitIZXJlIGlzIHRoZSB0cnV0aCByZWdhcmRpbmcgcmVsZWFzZXM6Cis8L3A+CisKKzxwPgorSmFrYXJ0YSBwcm9kdWN0cyBhcmUgcmVsZWFzZWQgb24gdGhlIGJhc2lzIG9mIG1lcml0LCBhbmQgfm5vdH4gYWNjb3JkaW5nCit0byBhIHN0cmljdCB0aW1ldGFibGUuIAorVGhlIHZvbHVudGVlcnMgZGV2b3RlIHdoYXRldmVyIHRpbWUgdGhleSBjYW4gdG8gd29yayBvbiB0aGUgcHJvZHVjdC4gCitCdXQgYWxsIHZvbHVudGVlcnMgaGF2ZSByZWFsIGpvYnMgYW5kIHJlYWwgbGl2ZXMsIHRoYXQgZG8gdGFrZSBwcmVjZWRlbmNlLiAKK1NpbmNlIFN0cnV0cyBkb2VzIG5vdCBoYXZlIHBhaWQgcGVyc29ubmVsIHdvcmtpbmcgb24gdGhlIHByb2plY3QsIAord2Ugc2ltcGx5IGNhbm5vdCBtYWtlIGRhdGUtb3JpZW50ZWQgY29tbWl0bWVudHMuCis8L3A+CisKKzxwPgorQWxsIEpha2FydGEgcHJvZHVjdHMgbXVzdCBjaXJjdWxhdGUgYSBwdWJsaWMgYmV0YSBiZWZvcmUgcmVsZWFzZS4gCitJZiBhIGJldGEgaXMgbm90IGluIGNpcmN1bGF0aW9uLCAKK3RoZW4gaXQncyBhIGdvb2QgYmV0IHRoYXQgYSByZWxlYXNlIGlzIG5vdCBmb3J0aGNvbWluZyBhbnkgdGltZSBzb29uLiAKK1Byb2R1Y3RzIHNvbWV0aW1lcyBnbyB0aHJvdWdoIHNldmVyYWwgYmV0YXMgYmVmb3JlIGZpbmFsIHJlbGVhc2UuIAorU28gaWYgdGhpcyBpcyBiZXRhIDEsIHRoZW4gaXQgc3RpbGwgbWF5IG5vdCBiZSByZWxlYXNlZCBhbnkgdGltZSBzb29uLgorPC9wPgorCis8cD4KK1RoZSBib3R0b20gbGluZSBpcyB0aGF0IEpha2FydGEgdGFrZXMgcmVsZWFzZXMgdmVyeSBzZXJpb3VzbHkuIAorV2UgZG8gbm90IGNvbXByb21pc2UgdGhlIHF1YWxpdHkgb2Ygb3VyIHNvZnR3YXJlIGJ5IHdhdGNoaW5nIHRoZSBjYWxlbmRhciAKKyhhbmQgdGhlbiBzaGlwIHNvbWV0aGluZyByZWFkeSBvciBub3QpLiAKK0EgcmVsZWFzZSBpcyByZWFkeSB3aGVuIGl0IGlzIHJlYWR5LgorPC9wPgorCis8cD4KK1RoYXQgbWF5IHNvdW5kIGZsaXAsIGJ1dCBpdCB+aXN+IHRoZSB0cnV0aC4gCitUaGUgZGVsaXZlcnkgb2YgcHJvZHVjdGlvbi1xdWFsaXR5LCBsZWFkaW5nLWVkZ2Ugc29mdHdhcmUgaXMgbm90IHNvbWV0aGluZyAKK2FueW9uZSBjYW4gcHJvZ25vc3RpY2F0ZS4gCitJZiBhbnlvbmUgdHJpZXMsIHRoZXkgYXJlIGx5aW5nIHRvIHlvdS4gCitUaGF0LCB3ZSB3b24ndCBkbyA7LSkKKzwvcD4KKworPHA+CitXaGF0IHdlIH53aWxsfiBkbyBpcyByZWxlYXNlIGFsbCBvZiBvdXIgZGV2ZWxvcG1lbnQgc29mdHdhcmUgYXMgc29vbiBhcyBpdCBpcyAKK2RldmVsb3BlZC4gCitUaGlzIHdheSB5b3UgY2FuIGp1ZGdlIGZvciB5b3Vyc2VsZiBob3cgcXVpY2tseSB0aGUgZGV2ZWxvcG1lbnQgaXMgcHJvY2VlZGluZywgCithbmQgd2hldGhlciB3aGF0IGlzIGJlaW5nIGRldmVsb3BlZCB3aWxsIG1lZXQgeW91ciBuZWVkcy4gCitJZiB5b3UgbmVlZCBhIGZlYXR1cmUgcmlnaHQgbm93LCB5b3UgY2FuIHVzZSB0aGUgbmlnaHRseSBidWlsZCwgb3Igcm9sbCB5b3VyIAorb3duIHBhdGNoLiAKK1RoZXJlIGFyZSBubyBwcml2YXRlIFN1YnZlcnNpb24gcmVwb3NpdG9yaWVzIG9yIHByaXZhdGUgZGV2ZWxvcG1lbnQgbGlzdHMuIAorV2hhdCB5b3Ugc2VlIGlzIHdoYXQgd2UgZ290LiAKK0lmIHlvdSBhcmUgZm9sbG93aW5nIHRoZSBERVYgbGlzdCwgdGhlbiB5b3Uga25vdyBldmVyeXRoaW5nIHRoZSBkZXZlbG9wZXJzIAora25vdy4gCitSZWFsbHksIHlvdSBkby4KKzwvcD4KKworPHA+Cis8ZW0+U28sIHdoYXQgZG8geW91IHRlbGwgeW91ciB0ZWFtPzwvZW0+IAorSWYgeW91IGNhbiBzaGlwIHlvdXIgYXBwbGljYXRpb24gYmFzZWQgb24gdGhlIG5pZ2h0bHkgYnVpbGQgb2YgeW91ciBjaG9pY2UsIAordGhlbiBjb25zaWRlciB0aGF0IGFuIG9wdGlvbi4gCitZb3UgY2FuIHN0aWxsIHNoaXAgeW91cnMsIGV2ZW4gaWYgd2UgZG9uJ3Qgc2hpcCBvdXJzLCAKK2FuZCB5b3Ugd2lsbCBoYXZlIGFjY2VzcyB0byBhbGwgdGhlIGxhdGVzdCBwYXRjaGVzIG9yIGVuaGFuY2VtZW50cy4gCisoSnVzdCBsaWtlIHdlIHdlcmUgd29ya2luZyBkb3duIHRoZSBoYWxsLikgCitJZiB5b3UgY2FuIG9ubHkgc2hpcCB5b3VyIGFwcGxpY2F0aW9uIGJhc2VkIG9uIGEgcmVsZWFzZSBidWlsZCBvZiBTdHJ1dHMsIAordGhlbiB5b3Ugc2hvdWxkIGJhc2UgeW91ciBkZXZlbG9wbWVudCBvbiB0aGUgcmVsZWFzZSBidWlsZCBvZiBTdHJ1dHMsCithbmQga2VlcCBhbiBleWUgb24gd2hhdCBpcyBjb21pbmcgZG93biB0aGUgcGlwZWxpbmUuIAorVGhpcyB3YXkgeW91IGFyZSBhdCBsZWFzdCBmb3Jld2FybmVkIGFuZCBmb3JlYXJtZWQuCis8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0icmVsZWFzZV9oZWxwIiAKKyAgICBuYW1lPSJXaGF0IGNhbiBJIGRvIHRvIGhlbHAgdGhlIG5leHQgcmVsZWFzZSBhbG9uZz8iPgorCis8dWw+CisKKzxsaT4KKyAgTW9zdCBpbXBvcnRhbnRseSwgPHN0cm9uZz5kb3dubG9hZCB0aGUgbGF0ZXN0IGJldGE8L3N0cm9uZz4gb3IgcmVsZWFzZS1jYW5kaWRhdGUgYW5kIAorICB0ZXN0IGl0IGFnYWluc3QgeW91ciBvd24gYXBwbGljYXRpb25zLiAKKyAgUmVwb3J0IGFueSBhbmQgYWxsIGlzc3VlcyBvciBzdXNwZWN0ZWQgaXNzdWVzIHRvIAorICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3NpdGUvYnVncy5odG1sIj5CdWd6aWxsYTwvYT4uIAorICBUaGUgc29vbmVyIHdlIHJlc29sdmUgYW55IHByb2JsZW1zLCB0aGUgZmV3ZXIgYmV0YXMgb3IgcmVsZWFzZSBjYW5kaWRhdGVzIAorICB3ZSB3aWxsIGhhdmUgdG8gZGlzdHJpYnV0ZSBiZWZvcmUgd2UgYXJlIGRvbmUuIAorICAoSG93IGRvIHdlIGtub3cgd2hlbiB3ZSdyZSBkb25lPyAtLSBXaGVuIHdlIHJ1biBvdXQgb2YgaXNzdWVzID06bykgCisgIFRoZSBzb29uZXIgd2UgZmluZCB0aGVtLCB0aGUgc29vbmVyIHdlIGFyZSBkb25lLikKKzwvbGk+CisKKzxsaT4KKyAgPHN0cm9uZz5Db250cmlidXRlIDxhIGhyZWY9ImtpY2tzdGFydC5odG1sI3Rlc3RzIj51bml0IHRlc3RzPC9hPjwvc3Ryb25nPi4gCisgIFRoZSBjbG9zZXIgd2UgZ2V0IHRvIGEgcmVsZWFzZSwgdGhlIG1vcmUgd2Ugd29ycnkgYWJvdXQgYnJlYWtpbmcgc29tZXRoaW5nLiAKKyAgVGhlIG1vcmUgdGVzdHMgd2UgaGF2ZSwgdGhlIG1vcmUgY29uZmlkZW50IHdlIGNhbiBiZSB3aGVuIGFwcGx5aW5nIHBhdGNoZXMuIAorICBUZXN0cyB0aGF0IHByb3ZlIHRoYXQgYSBwZW5kaW5nIGlzc3VlIGlzIGFjdHVhbGx5IGEgYnVnIGFyZSB0aGUgbW9zdCAKKyAgd2VsY29tZSBvbmVzLiAKKyAgQnV0IHdlIGFyZSBlYWdlciBmb3IgYW55IGFuZCBhbGwgdGVzdHMgZm9yIGFueSBhbmQgYWxsIGZlYXR1cmVzLCAKKyAgZXZlbiB0aG9zZSB0aGF0IHN0aWxsIHdvcmsgPTowKS4KKzwvbGk+CisKKzxsaT4KKyAgPHN0cm9uZz5SZXZpZXcgdGhlIGxpc3Qgb2YgaXNzdWVzPC9zdHJvbmc+IGF0IDxhIGhyZWY9IiNidWdzIj5CdWd6aWxsYTwvYT4uIAorICBJZiB0aGVyZSBhcmUgYW55IHRvIHdoaWNoIHlvdSBjYW4gcmVzcG9uZCwgcGxlYXNlIGRvLiAKKyAgSWYgdGhlcmUgYW55IHBhdGNoZXMgcG9zdGVkLCBmZWVsIGZyZWUgdG8gdGVzdCB0aGVtIHlvdXIgc3lzdGVtLCAKKyAgcmVwb3J0IHRoZSByZXN1bHRzLCBhbmQgY2FzdCB5b3VyIHZvdGUgaWYgdGhleSB3b3JrLgorPC9saT4KKworPGxpPgorICA8c3Ryb25nPkNvbmZpcm0gYW4gaXNzdWUncyBjYXRlZ29yeSBhbmQgc3RhdHVzPC9zdHJvbmc+LiAKKyAgTmV3YmllcyBvZnRlbiBwb3N0IGZlYXR1cmUgcmVxdWVzdHMgb3IgaGVscC1kZXNrIHF1ZXN0aW9ucyBhcyAiYnVncyIuIAorICBUaGlzIGJsb2F0cyB0aGUgbGlzdCBvZiBmaXhlcyB3ZSAoYXBwYXJlbnRseSkgbmVlZCB0byBhcHBseSBiZWZvcmUgdGhlIG5leHQgCisgIGJldGEsIG1ha2luZyBpdCBoYXJkIHRvIHNlZSB0aGUgZm9yZXN0IGZvciB0aGUgdHJlZXMuIAorICBJZiBhbiBpc3N1ZSBkb2Vzbid0IHNlZW0gdG8gYmUgY2F0ZWdvcml6ZWQgY29ycmVjdGx5LCBleGVyY2lzZSB5b3VyIGJlc3QgCisgIGp1ZGdtZW50IGFuZCBjaGFuZ2UgaXQuCisgIElmIG9uZSB0aWNrZXQgc2VlbXMgbGlrZSBhIGR1cGxpY2F0ZSBvZiBhbm90aGVyLCBnbyBhaGVhZCBhbmQgZW50ZXIgdGhlIAorICBjaGFuZ2UuIAorICBFdmVyeSBtb2RpZmljYXRpb24gdG8gdGhlIHRpY2tldCBpcyBlY2hvZWQgdG8gdGhlIERFViBsaXN0IGFuZCAKKyAgYXV0b21hdGljYWxseSBzdWJqZWN0ZWQgdG8gcGVlciByZXZpZXcuIAorICBFcnIgb24gdGhlIHNpZGUgb2YgZG9pbmcuCis8L2xpPgorCis8bGk+CisgIFVzZSBCdWd6aWxsYSB0byA8c3Ryb25nPnZvdGUgZm9yIGlzc3Vlczwvc3Ryb25nPiB5b3UgZmVlbCBzaG91bGQgYmUgaGFuZGxlZAorICBmaXJzdC4gCisgIElmIGFuIGlzc3VlIG9uIHlvdXIgYmFsbG90IGRvZXNuJ3QgaW5jbHVkZSBhIHBhdGNoLCBmZWVsIGZyZWUgdG8gdHJ5IGNvZGluZyAKKyAgb25lIHlvdXJzZWxmLiAKKyAgKEF0IEpha2FydGEsIHBhdGNoZXMgYXJlIHRoZSBvbmx5IHZvdGVzIHRoYXQgdHJ1bHkgY291bnQuKSAKKyAgV2VsbCBvdmVyIDxhIGhyZWY9Ii4uL3ZvbHVudGVlcnMuaHRtbCI+dGhpcnR5IGRldmVsb3BlcnM8L2E+IGhhdmUgY29udHJpYnV0ZWQgCisgIGNvZGUgb3IgZG9jdW1lbnRhdGlvbiB0byB0aGUgcHJvZHVjdC4gCisgIFlvdSBjYW4gdG9vID06MCkKKzwvbGk+CisKKzxsaT4KKyAgPHN0cm9uZz5BbnN3ZXIgcXVlc3Rpb25zIG9uIHRoZSB1c2VyIGxpc3QuPC9zdHJvbmc+IAorICBUaGUgQ29tbWl0dGVycyBvbmx5IGhhdmUgYSBsaW1pdGVkIGFtb3VudCBvZiB0aW1lIHRvIHZvbHVudGVlci4gCisgIElmIERldmVsb3BlcnMgYXJlIHN1cHBvcnRpbmcgZWFjaCBvdGhlciBvbiB0aGUgbGlzdHMsIAorICB0aGUgQ29tbWl0dGVycyBoYXZlIG1vcmUgdGltZSB0byBzcGVuZCBvbiB0aGUgbmV4dCByZWxlYXNlLgorPC9saT4KKworPC91bD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJkZWNpc2lvbnMiIAorICAgIG5hbWU9IldobyBtYWtlcyB0aGUgZmluYWwgZGVjaXNpb25zIHJlZ2FyZGluZyBTdHJ1dHMiPgorCis8cD4KK1RoZSBtYW5hZ2VtZW50IG9mIHRoZSBKYWthcnRhIHNpdGUsIGFuZCB0aGUgU3RydXRzIHByb2R1Y3QsIGlzIGJhc2VkIG9uIAorcHJpbmNpcGxlcyBhbmQgcHJhY3RpY2VzIHVzZWQgYnkgY3JlYXRvcnMgb2YgdGhlIEFwYWNoZSBIVFRQRCBzZXJ2ZXIuIAorU3RydXRzIGZvbGxvd3MgdGhlIAorPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL2d1aWRlbGluZXMuaHRtbCI+UHJvamVjdCBHdWlkZWxpbmVzPC9hPgorb24gdGhlIG1haW4gSmFrYXJ0YSBzaXRlLgorPC9wPgorCis8cD5JZiB5b3UgYXJlIG5ldyB0byB0aGlzIHN0eWxlIG9mIGRldmVsb3BtZW50LCAKK3RoZSBBcGFjaGUgSFRUUEQgRGV2IGxpc3QgaXMgYXZhaWxhYmxlIGluIGEgCis8YSBocmVmPSJtYWlsdG86ZGV2LWRpZ2VzdC1zdWJzY3JpYmVAaHR0cGQuYXBhY2hlLm9yZyI+ZGlnZXN0IGZvcm08L2E+LiAKK0V2ZW4gaWYgeW91IGFyZSBub3Qgd29ya2luZyBvbiB0aGUgSFRUUEQgc2VydmVyIHlvdXJzZWxmLCAKK2l0IGlzIGludGVyZXN0aW5nIHRvIHdhdGNoIGhvdyB0aGUgSFRUUEQgdGVhbSB3b3JrcyBvbiB0aGUgc2VydmVyLgorPC9wPgorCis8cD4KK1RoZSBTdHJ1dHMgcHJvamVjdCBoYXMgaXRzIG93biA8YSBocmVmPSIuLi91c2luZy5odG1sI0xpc3RzIj5EZXYgbGlzdDwvYT4sIAord2hlcmUgYWxsIG9mIHRoZSBkZWNpc2lvbnMgcmVnYXJkaW5nIFN0cnV0cyBhcmUgbWFkZS4gCitNb3N0IGRldmVsb3BtZW50IHRha2VzIHBsYWNlIHZpYQorPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL3Byb3Bvc2FsLmh0bWwjZGVjaXNpb25zL3ZvdGluZy9pdGVtcyI+CitMYXp5IENvbnNlbnN1czwvYT4uCitDb21taXR0ZXJzIHBvc3QgbW9zdCBjaGFuZ2VzIHRvIHRoZSBwcm9kdWN0IHVuaWxhdGVyYWxseSwgdXNpbmcgdGhlaXIgb3duIGJlc3QgCitqdWRnbWVudCwgYW5kIG9ubHkgZGlzY3VzcyBvciB2b3RlIHVwb24gY29udHJvdmVyc2lhbCBtYXR0ZXJzLiAKK0Fub3RoZXIgQ29tbWl0dGVyIGNhbiB2ZXRvIGFueSBjaGFuZ2UgaW4gYW4gdW5yZWxlYXNlZCBwcm9kdWN0IHdpdGggY2F1c2UuCis8L3A+CisKKzwvc2VjdGlvbj4KKzwvYm9keT4KKzwvZG9jdW1lbnQ+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL2luZGV4LnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ZhcXMvaW5kZXgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwMDA3NjIKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL2luZGV4LnhtbApAQCAtMCwwICsxLDExNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorCis8ZG9jdW1lbnQgdXJsPSIuL2luZGV4LnhtbCIgYXV0aG9ycz0iZmFsc2UiPgorCis8cHJvcGVydGllcz4KKyAgICA8dGl0bGU+RkFRcyBhbmQgSG93dG9zIC0gQXBhY2hlIFN0cnV0czwvdGl0bGU+Cis8L3Byb3BlcnRpZXM+CisKKzxib2R5PgorCis8c2VjdGlvbiBuYW1lPSJTdHJ1dHMgRkFRcyI+CisKKyA8dWw+CisKKyAgICA8bGk+CisgICAgPGEgaHJlZj0ia2lja3N0YXJ0Lmh0bWwiPktpY2tzdGFydCBGQVE8L2E+IChyZWFkIG1lIGZpcnN0KQorICAgIDwvbGk+CisKKyAgICA8bGk+CisgICAgPGEgaHJlZj0ibmV3YmllLmh0bWwiPk5ld2JpZSBGQVE8L2E+CisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICA8YSBocmVmPSJoZWxwaW5nLmh0bWwiPkhvdyB0byBIZWxwIEZBUTwvYT4KKyAgICA8L2xpPgorCisgICAgIDxsaT4KKyAgICAgPGEgaHJlZj0id29ya3MuaHRtbCI+SG93IGRvZXMgU3RydXRzIHdvcms/PC9hPgorICAgICA8L2xpPgorCisgPC91bD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSJIb3d0byBHdWlkZXMiPgorCisgPHVsPgorCisgICAgPGxpPgorICAgIDxhIGhyZWY9ImFjdGlvbkZvcm0uaHRtbCI+QnVpbGRpbmcgYW4gQWN0aW9uIEZvcm08L2E+CisgICAgPC9saT4KKyAgICAKKyAgICA8bGk+CisgICAgPGEgaHJlZj0iYXBwcy5odG1sIj5CdWlsZGluZyBBcHBsaWNhdGlvbnM8L2E+CisgICAgPC9saT4KKyAgICAKKyAgICA8bGk+CisgICAgPGEgaHJlZj0iZGF0YWJhc2UuaHRtbCI+QWNjZXNzaW5nIGEgRGF0YWJhc2U8L2E+CisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICA8YSBocmVmPSJpbmRleGVkcHJvcHMuaHRtbCI+SW5kZXhlZCBQcm9wZXJ0aWVzLCBNYXBwZWQgUHJvcGVydGllcywgYW5kIEluZGV4ZWQgVGFnczwvYT4KKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgIDxhIGhyZWY9InNzbC5odG1sIj5Vc2luZyB0aGUgU1NMIHByb3RvY29sPC9hPgorICAgIDwvbGk+CisgICAgCisgICAgPGxpPgorICAgIDxhIGhyZWY9InN0cnV0cy1lbC5odG1sIj5TdHJ1dHMgRUwgRXh0ZW5zaW9uPC9hPgorICAgIDwvbGk+CisKKyA8L3VsPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IklERSBHdWlkZXMiPgorCisgPHVsPgorCisgICAgPGxpPgorICAgIDxhIGhyZWY9ImVjbGlwc2UuaHRtbCI+SW5zdGFsbGluZyB0aGUgRWNsaXBzZSBJREU8L2E+CisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICA8YSBocmVmPSJuZXRiZWFucy5odG1sIj5JbnN0YWxsaW5nIHRoZSBOZXRiZWFucyBJREU8L2E+CisgICAgPC9saT4KKyAgICAKKyA8L3VsPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IkV4dGVybmFsIEZBUXMgYW5kIEhvd3RvcyI+CisKKzx1bD4KKyAgIDxsaT4KKyAgIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvc3RydXRzIj5BcGFjaGUgU3RydXRzIFdpa2k8L2E+CisgICA8L2xpPgorPC91bD4KKworIDx1bD4KKyAgICA8bGk+CisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5qZ3VydS5jb20vZmFxL2hvbWUuanNwP3RvcGljPVN0cnV0cyI+akd1cnUgRkFRPC9hPgorICAgIDwvbGk+CisgPC91bD4KKworPHVsPgorICAgPGxpPgorICAgPGEgaHJlZj0iaHR0cDovL3d3dy5odXN0ZWQuY29tL3N0cnV0cy90aXBzIj5TdHJ1dHMgVGlwczwvYT4gYnkgVGVkIEh1c3RlZAorICAgPC9saT4KKzwvdWw+CisKKyA8dWw+CisgICAgPGxpPgorICAgIDxhIGhyZWY9Imh0dHA6Ly9zdHJ1dHN0ZXN0Y2FzZS5zb3VyY2Vmb3JnZS5uZXQiPlVuaXQgVGVzdGluZyB3aXRoIFN0cnV0cyBUZXN0Q2FzZTwvYT4gYnkgRGVyeWwgU2VhbGUKKyAgICA8L2xpPgorIDwvdWw+CisKKzx1bD4KKyAgIDxsaT4KKyAgIDxhIGhyZWY9Imh0dHA6Ly90aW55dXJsLmNvbS82am52Ij5TdHJ1dHMgVmFsaWRhdG9yOiBWYWxpZGF0aW5nIFR3byBGaWVsZHMgTWF0Y2g8L2E+IGJ5IE1hdHQgUmFpYmxlCisgICA8L2xpPgorPC91bD4KKworPC9zZWN0aW9uPgorCis8L2JvZHk+PC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ZhcXMvaW5kZXhlZHByb3BzLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ZhcXMvaW5kZXhlZHByb3BzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzVmMGZiCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZmFxcy9pbmRleGVkcHJvcHMueG1sCkBAIC0wLDAgKzEsMzgwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKworPGRvY3VtZW50IHVybD0iLi9pbmRleGVkcHJvcHMueG1sIj4KKyA8cHJvcGVydGllcz4KKyAgPHRpdGxlPkluZGV4ZWQgUHJvcGVydGllcywgTWFwcGVkIFByb3BlcnRpZXMsIGFuZCBJbmRleGVkIFRhZ3M8L3RpdGxlPgorIDwvcHJvcGVydGllcz4KKyA8Ym9keT4KKyAgPHNlY3Rpb24gbmFtZT0iSW5kZXhlZCBQcm9wZXJ0aWVzLCBNYXBwZWQgUHJvcGVydGllcywgYW5kIEluZGV4ZWQgVGFncyIvPgorICAgPHNlY3Rpb24gaHJlZj0iaW50cm9kdWN0aW9uIiBuYW1lPSJJbnRyb2R1Y3Rpb24iPgorICAgIDxwPgorICAgICBUaGUgSlNQIHNwZWNpZmljYXRpb24gZGlzY3Vzc2VzIHVzaW5nICJpbmRleGVkIHByb3BlcnRpZXMiIGluIHJlZmVyZW5jZSB0bworICAgICB0aGUgJmx0O2pzcDpzZXRQcm9wZXJ0eSZndDsgdGFnLiAgSG93ZXZlciwgbm9uZSBvZiB0aGUgc3VwcG9ydCBwcm92aWRlZCBpbgorICAgICB0aGUgYmFzZSBKU1Agc3BlY2lmaWNhdGlvbiBhY3R1YWxseSBkZWFscyB3aXRoIHRoZSAiaW5kZXhpbmciIHBhcnQuICBJbgorICAgICB0cnV0aCwgaXQgYWxsb3dzIGZvciBzZXR0aW5nICJhcnJheSBwcm9wZXJ0aWVzIiwgYnV0IGl0IGRvZXNuJ3QgZG8gbXVjaAorICAgICBmb3Igc2V0dGluZyBvciBldmVuIGdldHRpbmcgdGhlIGFjdHVhbCB2YWx1ZXMgaW4gZWFjaCBlbnRyeSBvZiB0aGUgYXJyYXksCisgICAgIGV4Y2VwdCB3aXRoIGV4cGxpY2l0IEpTUCBleHByZXNzaW9ucyAoJmx0OyU9ICAlJmd0OykuCisgICAgPC9wPgorICAgIDxwPgorICAgICBUaGUgU3RydXRzIGZyYW1ld29yayBwcm92aWRlcyBtdWNoIG1vcmUgcG93ZXJmdWwgZmVhdHVyZXMgcmVsYXRlZCB0bworICAgICBpbmRleGVkIHByb3BlcnRpZXMsIGJ1dCBpbiB0cnV0aCBtb3N0IG9mIHRoZSBoZWF2eSBsaWZ0aW5nIGlzIG5vdCBldmVuIGluCisgICAgIHRoZSBTdHJ1dHMgZnJhbWV3b3JrLCBidXQgaW4gdGhlIEpha2FydGEgQ29tbW9ucyBCZWFudXRpbHMgcGFja2FnZS4gIFRoaXMKKyAgICAgcGFja2FnZSBpcyB1c2VkIGJ5IFN0cnV0cyB0byBwcm92aWRlIHRoaXMgZnVuY3Rpb25hbGl0eS4gIFlvdSBjYW4gc2VlIHRoZQorICAgICBqYXZhZG9jIGRvY3VtZW50YXRpb24gZm9yIHRoZSBCZWFudXRpbHMgcGFja2FnZSBhdCA8YQorICAgICBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvYmVhbnV0aWxzL2FwaS9pbmRleC5odG1sIj5odHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvYmVhbnV0aWxzL2FwaS9pbmRleC5odG1sPC9hPi4KKyAgICAgVGhlIGluZm9ybWF0aW9uIHBhcnRpY3VsYXJseSByZWxhdGVkIHRvIGluZGV4ZWQgcHJvcGVydGllcyBpcyBpbiB0aGUKKyAgICAgcGFja2FnZSBkZXNjcmlwdGlvbiBmb3IgdGhlIG9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMgcGFja2FnZS4gIFRoaXMKKyAgICAgYXJ0aWNsZSBtaXJyb3JzIHRoYXQgaW5mb3JtYXRpb24sIGJ1dCBmb2N1c2VzIG9uIGhvdyB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMKKyAgICAgbWFwcGVkIHRvIEpTUCB0YWdzIHVzaW5nIHRoZSBTdHJ1dHMgdGFnIGxpYnJhcnkuCisgICAgPC9wPgorICAgIDxwPgorICAgICBUaGUgc3VwcG9ydCBmb3IgaW5kZXhlZCBwcm9wZXJ0aWVzIGFsc28gaW5jbHVkZXMgIm1hcHBlZCBwcm9wZXJ0aWVzIiwKKyAgICAgIm5lc3RlZCBwcm9wZXJ0aWVzIiBhbmQgImluZGV4ZWQgdGFncyIsIHdoaWNoIGFyZSBhbGwgcmVsYXRlZCBidXQgc2xpZ2h0bHkKKyAgICAgZGlmZmVyZW50LiAgVGhlIGxhdHRlciBpcyBleGNsdXNpdmUgdG8gU3RydXRzLCBidXQgdGhlIGZpcnN0IHR3byBhcmUgYWxzbworICAgICBwcm92aWRlZCBieSB0aGUgQmVhbnV0aWxzIHBhY2thZ2UuICBUaGlzIGFydGljbGUgd2lsbCBjb3ZlciBhbGwgdGhyZWUgb2YKKyAgICAgdGhlc2UgdG9waWNzLgorICAgIDwvcD4KKyAgIDwvc2VjdGlvbj4KKyAgIDxzZWN0aW9uIGhyZWY9ImluZGV4ZWRwcm9wcyIgbmFtZT0iSW5kZXhlZCBQcm9wZXJ0aWVzIj4KKyAgICA8cD4KKyAgICAgVGhlIHNpbXBsZXN0IGRlbW9uc3RyYXRpb24gb2YgdXNpbmcgaW5kZXhlZCBwcm9wZXJ0aWVzIGluIFN0cnV0cyBjYW4gYmUKKyAgICAgc2hvd24gd2l0aCB0aGUgZm9sbG93aW5nIHNpbXBsZSBiZWFuIGFuZCBKU1AgcGFnZToKKyAgICA8L3A+CisgICAgIDxwcmU+CitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC5leGVyY2lzZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK3B1YmxpYyBjbGFzcyBTdHJpbmdCZWFuIGV4dGVuZHMgQWN0aW9uRm9ybSB7CisgICAgcHJpdmF0ZSBTdHJpbmcgc3RyQXJ5W10gPSB7ICJTdHJpbmcgMCIsICJTdHJpbmcgMSIsICJTdHJpbmcgMiIsICJTdHJpbmcgMyIsICJTdHJpbmcgNCIgfTsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RyaW5nSW5kZXhlZChpbnQgaW5kZXgpIHsgCisgICAgICAgIHJldHVybiBzdHJBcnlbaW5kZXhdOyAKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0U3RyaW5nSW5kZXhlZChpbnQgaW5kZXgsIFN0cmluZyB2YWx1ZSkgeyAKKyAgICAgICAgc3RyQXJ5W2luZGV4XSA9IHZhbHVlOyAKKyAgICB9Cit9PC9wcmU+CisgICAgPHA+CisgICAgIEZpcnN0IG5vdGUgdGhlIHR3byBtZXRob2RzIGluIHRoZSBTdHJpbmdCZWFuIGNsYXNzLCAiZ2V0U3RyaW5nSW5kZXhlZCgpIgorICAgICBhbmQgInNldFN0cmluZ0luZGV4ZWQoKSIuICBOb3RlIHRoYXQgdGhlICJnZXQiIG1ldGhvZCB0YWtlcyBhbiAiaW50IiBhbmQKKyAgICAgdGhlICJzZXQiIG1ldGhvZCB0YWtlcyBhbiAiaW50IiBhbmQgIlN0cmluZyIuICBUaGUgQmVhbnV0aWxzIHBhY2thZ2UgYW5kCisgICAgIFN0cnV0cyByZWNvZ25pemVzIHRoaXMgYXJyYW5nZW1lbnQgb2Ygc2lnbmF0dXJlcyBhcyBhbiAiaW5kZXhlZCBwcm9wZXJ0eSIsCisgICAgIGluIHRoaXMgY2FzZSB3aXRoIHRoZSBwcm9wZXJ0eSBuYW1lICJzdHJpbmdJbmRleGVkIi4KKyAgICA8L3A+CisgICAgPHByZT4KKyZsdDshLS0gaW5kZXhlZHRlc3QuanNwIC0tJmd0OworJmx0OyVAIHRhZ2xpYiB1cmk9Ii9XRUItSU5GL3N0cnV0cy1iZWFuLnRsZCIgcHJlZml4PSJiZWFuIiAlJmd0OworJmx0O2pzcDp1c2VCZWFuIGlkPSJiZWFuIiBjbGFzcz0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLmV4ZXJjaXNlLlN0cmluZ0JlYW4iLyZndDsKKyZsdDtiZWFuOndyaXRlIG5hbWU9ImJlYW4iIHByb3BlcnR5PSJzdHJpbmdJbmRleGVkWzFdIi8mZ3Q7PC9wcmU+CisgICAgPHA+CisgICAgIE5vdGUgdGhlIHByb3BlcnR5IHZhbHVlIG9mICJzdHJpbmdJbmRleGVkWzFdIi4gIFRoaXMgaXMgaW50ZW5kZWQgdG8KKyAgICAgcmVmZXJlbmNlIHRoZSBpbmRleGVkIHByb3BlcnR5ICJzdHJpbmdJbmRleGVkIiwgYW5kIHRoZSAxc3QgKHplcm8tYmFzZWQpCisgICAgIGVudHJ5IG9mIHdoYXRldmVyIGFycmF5IG9yIGNvbGxlY3Rpb24gd2hpY2ggdGhlIGluZGV4ZWQgcHJvcGVydHkKKyAgICAgcmVwcmVzZW50cy4KKyAgICA8L3A+CisgICAgPHA+CisgICAgIEFzIHlvdSBtaWdodCBiZSBhYmxlIHRvIGd1ZXNzLCB3aGVuIHRoaXMgcGFnZSBpcyBleGVjdXRlZCwgaXQgd2lsbCBwcmludAorICAgICBqdXN0IHRoZSBzdHJpbmcgIlN0cmluZyAxIiwgd2hpY2ggaXMgdGhlIGNvcnJlc3BvbmRpbmcgYXJyYXkgZW50cnkgYXQgdGhhdAorICAgICBpbmRleCB2YWx1ZS4KKyAgICA8L3A+CisgICAgPHA+CisgICAgIFRoaXMgaXMgYSBzaW1wbGUgZGVtb25zdHJhdGlvbiBvZiB3aGF0IGluZGV4ZWQgcHJvcGVydGllcyBjYW4gcHJvdmlkZS4KKyAgICA8L3A+CisgICA8L3NlY3Rpb24+CisgICA8c2VjdGlvbiBocmVmPSJsaXN0YmFja2VkcHJvcHMiIG5hbWU9Ikxpc3QtQmFja2VkIEluZGV4ZWQgUHJvcGVydGllcyI+CisgICAgPHA+CisgICAgIEEgdmFyaWF0aW9uIG9uIGluZGV4ZWQgcHJvcGVydGllcyBhcmUgcHJvcGVydGllcyB3aG9zZSB0eXBlIGlzCisgICAgIDxjb2RlPmphdmEudXRpbC5MaXN0PC9jb2RlPiBvciBhIHN1YmNsYXNzLgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgRm9yIGluc3RhbmNlLCB0aGUgZmlyc3QgZXhhbXBsZSB1c2luZyAiU3RyaW5nQmVhbi5qYXZhIiBhbmQKKyAgICAgImluZGV4ZWR0ZXN0LmpzcCIgY291bGQgdXNlIGEgbW9kaWZpZWQgIlN0cmluZ0JlYW4uamF2YSIgY2xhc3MsIGxpa2UgdGhpczoKKyAgICA8L3A+CisgICAgPHByZT4KK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLmV4ZXJjaXNlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworcHVibGljIGNsYXNzIFN0cmluZ0JlYW4yIGV4dGVuZHMgQWN0aW9uRm9ybSB7CisgICAgcHJpdmF0ZSBTdHJpbmcgc3RyQXJ5W10gPSB7ICJTdHJpbmcgMCIsICJTdHJpbmcgMSIsICJTdHJpbmcgMiIsICJTdHJpbmcgMyIsICJTdHJpbmcgNCIgfTsKKworICAgIHB1YmxpYyBqYXZhLnV0aWwuTGlzdCBnZXRTdHJpbmdJbmRleGVkKGludCBpbmRleCkgeyAKKyAgICAgICAgcmV0dXJuIGphdmEudXRpbC5BcnJheXMuYXNMaXN0KHN0ckFyeSk7CisgICAgfQorfTwvcHJlPgorICAgIDxwPgorICAgICBOb3RlIHRoZSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb24gb2YgdGhlICJnZXRTdHJpbmdJbmRleGVkKCkiIG1ldGhvZCwKKyAgICAgcmV0dXJuaW5nIGEgTGlzdCBpbnN0ZWFkIG9mIGEgU3RyaW5nLiAgSWYgdGhpcyBiZWFuIGNsYXNzIGlzIHN1YnN0aXR1dGVkCisgICAgIHdpdGggdGhlIG9yaWdpbmFsICJpbmRleGVkdGVzdC5qc3AiLCB0aGUgcmVzdWx0IHdpbGwgYmUgaWRlbnRpY2FsLgorICAgIDwvcD4KKyAgIDwvc2VjdGlvbj4KKyAgIDxzZWN0aW9uIGhyZWY9Im1hcHBlZHByb3BzIiBuYW1lPSJNYXBwZWQgUHJvcGVydGllcyI+CisgICAgPHA+CisgICAgIFRoZSBpZGVhIG9mICJtYXBwZWQgcHJvcGVydGllcyIgYXMgb3Bwb3NlZCB0byAiaW5kZXhlZCBwcm9wZXJ0aWVzIiBpcyB0aGF0CisgICAgIHRoZSBwcm9wZXJ0eSByZXByZXNlbnRzIGEgIm1hcCIgdHlwZSwgYXMgb3Bwb3NlZCB0byBhbiBhcnJheSBvciBjb2xsZWN0aW9uCisgICAgIHR5cGUuICBUaGUgc2lnbmF0dXJlIG9mIHRoZSAiZ2V0IiBhbmQgInNldCIgbWV0aG9kcyBmb3IgYSBtYXBwZWQgcHJvcGVydHkKKyAgICAgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBzYW1lIG1ldGhvZHMgZm9yIGFuIGluZGV4ZWQgcHJvcGVydHkuICBJbgorICAgICBwYXJ0aWN1bGFyLCBpbnN0ZWFkIG9mIGFuICJpbnQiIGZvciB0aGUgaW5kZXgsIHRoZXJlIGlzIGEgIlN0cmluZyIgZm9yIHRoZQorICAgICBrZXkuCisgICAgPC9wPgorICAgIDxwPgorICAgICBUaGUgcHJldmlvdXMgZXhhbXBsZSBmb3IgaW5kZXhlZCBwcm9wZXJ0aWVzIGNhbiBiZSBjaGFuZ2VkIHRvIHRoZQorICAgICBmb2xsb3dpbmcgdG8gZGVtb25zdHJhdGUgbWFwcGVkIHByb3BlcnRpZXM6CisgICAgPC9wPgorICAgIDxwcmU+CitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC5leGVyY2lzZTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK3B1YmxpYyBjbGFzcyBTdHJpbmdCZWFuMyBleHRlbmRzIEFjdGlvbkZvcm0geworICAgIHByaXZhdGUgU3RyaW5nIHN0ckFyeVtdID0geyAiU3RyaW5nIDAiLCAiU3RyaW5nIDEiLCAiU3RyaW5nIDIiLCAiU3RyaW5nIDMiLCAiU3RyaW5nIDQiIH07CisgICAgCisgICAgcHJpdmF0ZSBIYXNoTWFwIG1hcCA9IG5ldyBIYXNoTWFwKCk7CisKKyAgICBwdWJsaWMgU3RyaW5nQmVhbigpIHsKKyAgICAgICAgbWFwLnB1dCgiemVybyIsIHN0ckFyeVswXSk7CisgICAgICAgIG1hcC5wdXQoIm9uZSIsIHN0ckFyeVsxXSk7CisgICAgICAgIG1hcC5wdXQoInR3byIsIHN0ckFyeVsyXSk7CisgICAgICAgIG1hcC5wdXQoInRocmVlIiwgc3RyQXJ5WzNdKTsKKyAgICAgICAgbWFwLnB1dCgiZm91ciIsIHN0ckFyeVs0XSk7CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBnZXRTdHJpbmdNYXBwZWQoU3RyaW5nIGtleSkgeyAKKyAgICAgICAgcmV0dXJuIG1hcC5nZXQoa2V5KTsKKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgc2V0U3RyaW5nTWFwcGVkKFN0cmluZyBrZXksIE9iamVjdCB2YWx1ZSkgeyAKKyAgICAgICAgbWFwLnB1dChrZXksIHZhbHVlKTsgCisgICAgfQorfTwvcHJlPgorICAgIDxwPgorICAgICBOb3RlIHRoZSAiZ2V0IiBhbmQgInNldCIgbWV0aG9kcyB0byByZXByZXNlbnQgdGhlIG1hcHBlZCBwcm9wZXJ0eS4KKyAgICA8L3A+CisgICAgPHByZT4KKyZsdDshLS0gaW5kZXhlZHRlc3QzLmpzcCAtLSZndDsKKyZsdDslQCB0YWdsaWIgdXJpPSIvV0VCLUlORi9zdHJ1dHMtYmVhbi50bGQiIHByZWZpeD0iYmVhbiIgJSZndDsKKyZsdDtqc3A6dXNlQmVhbiBpZD0iYmVhbiIgY2xhc3M9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC5leGVyY2lzZS5TdHJpbmdCZWFuIi8mZ3Q7CismbHQ7YmVhbjp3cml0ZSBuYW1lPSJiZWFuIiBwcm9wZXJ0eT0ic3RyaW5nTWFwcGVkKHR3bykiLyZndDs8L3ByZT4KKyAgICA8cD4KKyAgICAgTm90ZSB0aGUgcHJvcGVydHkgdmFsdWUgb2YgInN0cmluZ01hcHBlZCh0d28pIi4gIFRoaXMgd2lsbCByZWZlcmVuY2UgdGhlCisgICAgIG1hcHBlZCBwcm9wZXJ0eSAic3RyaW5nTWFwcGVkIiwgdXNpbmcgdGhlIGtleSB2YWx1ZSBvZiAidHdvIi4KKyAgICA8L3A+CisgICAgPHA+CisgICAgIFdoZW4gdGhpcyBwYWdlIGlzIGV4ZWN1dGVkLCBpdCB3aWxsIHByaW50IGp1c3QgdGhlIHN0cmluZyAiU3RyaW5nIDIiLAorICAgICB3aGljaCBpcyB0aGUgc3RyaW5nIHN0b3JlZCBpbiB0aGUgSGFzaE1hcCB3aXRoIHRoZSBrZXkgInR3byIuCisgICAgPC9wPgorICAgPC9zZWN0aW9uPgorICAgPHNlY3Rpb24gaHJlZj0ibmVzdGVkcHJvcHMiIG5hbWU9Ik5lc3RlZCBQcm9wZXJ0aWVzIj4KKyAgICA8cD4KKyAgICAgTmVzdGVkIHByb3BlcnRpZXMgYWxsb3dzIHlvdSB0byBjb21iaW5lIG5vcm1hbCBwcm9wZXJ0aWVzLCBpbmRleGVkCisgICAgIHByb3BlcnRpZXMsIGFuZCBtYXBwZWQgcHJvcGVydGllcyBpbiBhIGhpZXJhcmNoaWNhbCBmYXNoaW9uLiBBIHByb3BlcnR5CisgICAgIHZhbHVlIG9mIGEgYmVhbiBkb2VzIG5vdCBoYXZlIHRvIGJlIGEgcHJpbWl0aXZlIGxpa2UgImludCIgb3IgIlN0cmluZy4KKyAgICAgVGhlIHByb3BlcnR5IHZhbHVlIGNhbiBiZSBhIGJlYW4gd2l0aCBpdHMgb3duIHByb3BlcnRpZXMuICBUaGUgZm9sbG93aW5nCisgICAgIGV4YW1wbGUgZGVtb25zdHJhdGVzIHRoaXMuCisgICAgPC9wPgorICAgIDxwcmU+CitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC5leGVyY2lzZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkxhYmVsVmFsdWVCZWFuOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworcHVibGljIGNsYXNzIFN0cmluZ0JlYW40IGV4dGVuZHMgQWN0aW9uRm9ybSB7CisgICAgcHJpdmF0ZSBMYWJlbFZhbHVlQmVhbltdIGx2YmVhbnM7CisgICAgCisgICAgcHVibGljIFN0cmluZ0JlYW4oKSB7CisgICAgICAgIGx2YmVhbnMgICA9IG5ldyBMYWJlbFZhbHVlQmVhbls1XTsKKyAgICAgICAgbHZiZWFuc1swXSAgID0gbmV3IExhYmVsVmFsdWVCZWFuKCJaZXJvIiwgMCsiIik7CisgICAgICAgIGx2YmVhbnNbMV0gICA9IG5ldyBMYWJlbFZhbHVlQmVhbigiT25lIiwgMSsiIik7CisgICAgICAgIGx2YmVhbnNbMl0gICA9IG5ldyBMYWJlbFZhbHVlQmVhbigiVHdvIiwgMisiIik7CisgICAgICAgIGx2YmVhbnNbM10gICA9IG5ldyBMYWJlbFZhbHVlQmVhbigiVGhyZWUiLCAzKyIiKTsKKyAgICAgICAgbHZiZWFuc1s0XSAgID0gbmV3IExhYmVsVmFsdWVCZWFuKCJGb3VyIiwgNCsiIik7CisgICAgfQorCisgICAgcHVibGljICBMYWJlbFZhbHVlQmVhbiBnZXRMYWJlbFZhbHVlKGludCBpbmRleCkgeyAKKyAgICAgICAgcmV0dXJuIGx2YmVhbnNbaW5kZXhdOworICAgIH0KK308L3ByZT4KKyAgICA8cD4KKyAgICAgRmlyc3Qgbm90ZSB0aGUgdXNlIG9mIHRoZSBjbGFzcyAiTGFiZWxWYWx1ZUJlYW4iLiAgVGhpcyBpcyBhIHNpbXBsZSBjbGFzcworICAgICBwcm92aWRlZCBpbiB0aGUgU3RydXRzIGxpYnJhcnkgd2hpY2ggcmVwcmVzZW50cyBhIHBhaXIgb2YgdHdvIFN0cmluZ3MsIGEKKyAgICAgImxhYmVsIiBhbmQgYSAidmFsdWUiLiAgSXQgaXRzZWxmIGlzIGEgYmVhbiwgcHJvdmlkaW5nIHRoZXNlIHR3bworICAgICBwcm9wZXJ0aWVzIHdpdGggc3RhbmRhcmQgZ2V0dGVycyBhbmQgc2V0dGVyIG1ldGhvZHMuCisgICAgPC9wPgorICAgIDxwPgorICAgICBUaGVuLCBzZWUgdGhlICJnZXRMYWJlbFZhbHVlKCkiIG1ldGhvZCwgcmVwcmVzZW50aW5nIHRoZSBpbmRleGVkIHByb3BlcnR5CisgICAgICJsYWJlbFZhbHVlIi4gIFRoaXMgY2xhc3MgZG9lc24ndCBzaG93IGEgInNldHRlciIgbWV0aG9kLiBJZiB5b3Ugb25seSBldmVyCisgICAgIHByb3ZpZGUgcmVhZC1vbmx5IGFjY2VzcyBhIHByb3BlcnR5LCB0aGVuIGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gcHJvdmlkZSBhCisgICAgIHNldHRlciBtZXRob2QuCisgICAgPC9wPgorICAgIDxwcmU+CismbHQ7IS0tIGluZGV4ZWR0ZXN0NC5qc3AgLS0mZ3Q7CismbHQ7JUAgdGFnbGliIHVyaT0iL1dFQi1JTkYvc3RydXRzLWJlYW4udGxkIiBwcmVmaXg9ImJlYW4iICUmZ3Q7CismbHQ7anNwOnVzZUJlYW4gaWQ9ImJlYW4iIGNsYXNzPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAuZXhlcmNpc2UuU3RyaW5nQmVhbiIvJmd0OworJmx0O2JlYW46d3JpdGUgbmFtZT0iYmVhbiIgcHJvcGVydHk9ImxhYmVsVmFsdWVbMV0ubGFiZWwiLyZndDs8L3ByZT4KKyAgICA8cD4KKyAgICAgTm90ZSBoZXJlIHRoZSAibmVzdGVkIiBwcm9wZXJ0eSByZWZlcmVuY2UuIEl0IGlzIGZpcnN0IHVzaW5nIHRoZSBpbmRleGVkCisgICAgIHByb3BlcnR5ICJsYWJlbFZhbHVlIiBhbmQgdGhlbiB0aGUgIm5vcm1hbCIgcHJvcGVydHkgb2YgdGhlIExhYmVsVmFsdWVCZWFuCisgICAgIHRvIGdldCB0aGUgZmluYWwgcmVzdWx0LiAgV2hlbiB0aGlzIHBhZ2UgaXMgZXhlY3V0ZWQsIGl0IHdpbGwgcHJpbnQgdGhlCisgICAgIHN0cmluZyAiT25lIiwgcmVwcmVzZW50aW5nIHRoZSAibGFiZWwiIHByb3BlcnR5IG9mIHRoZSAxc3QgZW50cnkgb2YgdGhlCisgICAgIGFycmF5IHJlcHJlc2VudGVkIGJ5IHRoZSAibGFiZWxWYWx1ZSIgaW5kZXhlZCBwcm9wZXJ0eS4KKyAgICA8L3A+CisgICA8L3NlY3Rpb24+CisgICA8c2VjdGlvbiBocmVmPSJkeW5hbWljaW5kZXhlcyIgbmFtZT0iRHluYW1pYyBJbmRleGVzIGZvciBJbmRleGVkIFByb3BlcnRpZXMiPgorICAgIDxwPgorICAgICBXaGVuIHBlb3BsZSBzdGFydGVkIHVzaW5nIGluZGV4ZWQgcHJvcGVydGllcyBpbiBTdHJ1dHMgdGFncywgSSdtCisgICAgIHJlYXNvbmFibHkgY2VydGFpbiB0aGV5IHN0YXJ0ZWQgb3V0IHdpdGggYSBoaWdoIGxldmVsIG9mIGVudGh1c2lhc20sIGJ1dAorICAgICB3ZXJlIHNvbWV3aGF0IGZydXN0cmF0ZWQgd2hlbiB0aGV5IGRpc2NvdmVyZWQgcmVhbGl0eS4gIFRoZSByZWFsaXR5IGlzCisgICAgIHRoYXQgdGhlICJpbmRleCIgZm9yIGluZGV4ZWQgcHJvcGVydGllcyBvZnRlbiBuZWVkcyB0byBiZSBhIGR5bmFtaWMgdmFsdWUsCisgICAgIHVzdWFsbHkgZnJvbSB0aGUgImluZGV4SWQiIGNvdW50ZXIgaW4gdGhlICImbHQ7bG9naWM6aXRlcmF0ZSZndDsiIHRhZy4KKyAgICA8L3A+CisgICAgPHA+CisgICAgIEZvciBpbnN0YW5jZSwgdGhlIGZvbGxvd2luZyBleGFtcGxlIEpTUCBwYWdlIHVzaW5nIHRoZSBzYW1lICJTdHJpbmdCZWFuIgorICAgICBiZWFuIGNsYXNzIHVzZXMgYSBkeW5hbWljIHZhbHVlIGZvciB0aGUgaW5kZXg6CisgICAgPC9wPgorICAgIDxwcmU+CismbHQ7IS0tIGluZGV4ZWR0ZXN0NS5qc3AgLS0mZ3Q7CismbHQ7JUAgdGFnbGliIHVyaT0iL1dFQi1JTkYvc3RydXRzLWh0bWwudGxkIiBwcmVmaXg9Imh0bWwiICUmZ3Q7CismbHQ7JUAgdGFnbGliIHVyaT0iL1dFQi1JTkYvc3RydXRzLWxvZ2ljLnRsZCIgcHJlZml4PSJsb2dpYyIgJSZndDsKKyZsdDtodG1sJmd0OworICZsdDtib2R5Jmd0OworICAmbHQ7aHRtbDpmb3JtIGFjdGlvbj0iaW5kZXhlZHRlc3Q1LmRvIiZndDsKKyAgICZsdDtsb2dpYzppdGVyYXRlIG5hbWU9InN0cmluZ2JlYW4iIHByb3BlcnR5PSJzdHJpbmdBcnJheSIgaWQ9ImZvbyIKKyAgICAgICAgICAgICAgICAgIGluZGV4SWQ9ImN0ciImZ3Q7CisgICAgJmx0O2h0bWw6dGV4dCBuYW1lPSJzdHJpbmdiZWFuIgorICAgICAgICAgICAgICAgcHJvcGVydHk9JyZsdDslPSAibGFiZWxWYWx1ZVsiICsgY3RyICsgIl0ubGFiZWwiICUmZ3Q7JyAvJmd0OworICAgJmx0Oy9sb2dpYzppdGVyYXRlJmd0OworICAgJmx0O2h0bWw6c3VibWl0IHByb3BlcnR5PSJzdWJtaXRWYWx1ZSImZ3Q7U3VibWl0IENoYW5nZXMmbHQ7L2h0bWw6c3VibWl0Jmd0OworICAmbHQ7L2h0bWw6Zm9ybSZndDsKKyAmbHQ7L2JvZHkmZ3Q7CismbHQ7L2h0bWwmZ3Q7PC9wcmU+CisgICAgPHA+CisgICAgIFRoZSBKU1AgZXhwcmVzc2lvbiBzeW50YXggZm9yIHRoZSA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlIGlzIHNvbWV3aGF0IAorICAgICBtZXNzeSBhbmQgZWFzeSB0byBnZXQgd3Jvbmcgc28gaXQncyBzb21ldGhpbmcgd2Ugd2FudCB0byBhdm9pZC4gT25lCisgICAgIHdheSB0byBtYWtlIHRoaXMgYSBsaXR0bGUgY2xlYW5lciBpcyB0byB1c2UgImluZGV4ZWQgdGFncyIsIGJ1dCB0aGVyZSdzIGEKKyAgICAgd3JpbmtsZSB0byB0aGlzIGFwcHJvYWNoLiAgV2UnbGwgZmlyc3QgY292ZXIgdGhlIGRldGFpbHMgb2YgaW5kZXhlZCB0YWdzLAorICAgICB0aGVuIHdlJ2xsIHRhbGsgYWJvdXQgdGhlIHdyaW5rbGUsIGFuZCB0aGVuIGZpbmFsbHkgYW4gYWx0ZXJuYXRpdmUgdG8KKyAgICAgaW5kZXhlZCB0YWdzLgorICAgIDwvcD4KKyAgIDwvc2VjdGlvbj4KKyAgIDxzZWN0aW9uIGhyZWY9ImluZGV4ZWR0YWdzIiBuYW1lPSJJbmRleGVkIFRhZ3MiPgorICAgIDxwPgorICAgICBUaGUgImluZGV4ZWQgdGFncyIgZmVhdHVyZSBpcyBwcm92aWRlZCBieSBzZXZlcmFsIHRhZ3MgdGhhdCBoYXZlIGFuCisgICAgIG9wdGlvbmFsIGJvb2xlYW4gImluZGV4ZWQiIGF0dHJpYnV0ZS4gIFRoaXMgaXMgb25seSBsZWdhbCB3aGVuIGluc2lkZSBhCisgICAgICImbHQ7bG9naWM6aXRlcmF0ZSZndDsiIHRhZy4gIFdoZW4gdGhlICJpbmRleGVkIiBhdHRyaWJ1dGUgaXMgdHJ1ZSwgdGhlbgorICAgICB0aGUgdGFnIHdpbGwgaW5jb3Jwb3JhdGUgdGhlIGxvb3AgaW5kZXggaW50byB0aGUgcmVzdWx0aW5nIEhUTUwgY29tcG9uZW50LgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgVGhlIHNldmVyYWwgdGFncyB0aGF0IHN1cHBvcnQgdGhlICJpbmRleGVkIiBhdHRyaWJ1dGUgY2FuIGJlIGJyb2tlbiBpbnRvCisgICAgIHRocmVlIGdyb3Vwcywgc3BsaXQgYnkgd2hhdCB0aGV5IGRvIHRvIGluY29ycG9yYXRlIHRoZSBsb29wIGluZGV4IGludG8gdGhlCisgICAgIHJlc3VsdGluZyBIVE1MIGNvbXBvbmVudC4KKyAgICA8L3A+CisgICAgPHRhYmxlPgorICAgICA8dGhlYWQ+CisgICAgIDx0cj4KKyAgICAgIDx0aD5Hcm91cCAxPC90aD48dGg+R3JvdXAgMjwvdGg+PHRoPkdyb3VwIDM8L3RoPgorICAgICA8L3RyPgorICAgICA8L3RoZWFkPgorICAgICA8dHI+PHRkPmNoZWNrYm94PC90ZD48dGQ+YnV0dG9uPC90ZD48dGQ+bGluazwvdGQ+PC90cj4KKyAgICAgPHRyPjx0ZD5maWxlPC90ZD48dGQ+aW1hZ2U8L3RkPjx0ZD4mIzE2MDs8L3RkPjwvdHI+CisgICAgIDx0cj48dGQ+aGlkZGVuPC90ZD48dGQ+c3VibWl0PC90ZD48dGQ+JiMxNjA7PC90ZD48L3RyPgorICAgICA8dHI+PHRkPnBhc3N3b3JkPC90ZD48dGQ+JiMxNjA7PC90ZD48dGQ+JiMxNjA7PC90ZD48L3RyPgorICAgICA8dHI+PHRkPnJhZGlvPC90ZD48dGQ+JiMxNjA7PC90ZD48dGQ+JiMxNjA7PC90ZD48L3RyPgorICAgICA8dHI+PHRkPnNlbGVjdDwvdGQ+PHRkPiYjMTYwOzwvdGQ+PHRkPiYjMTYwOzwvdGQ+PC90cj4KKyAgICAgPHRyPjx0ZD50ZXh0PC90ZD48dGQ+JiMxNjA7PC90ZD48dGQ+JiMxNjA7PC90ZD48L3RyPgorICAgICA8dHI+PHRkPnRleHRhcmVhPC90ZD48dGQ+JiMxNjA7PC90ZD48dGQ+JiMxNjA7PC90ZD48L3RyPgorICAgIDwvdGFibGU+CisgICAgPHA+CisgICAgIEluIEdyb3VwIDEsIGFsbCBvZiB0aGVzZSB0YWdzIHdpbGwgZ2VuZXJhdGUgYW4gSFRNTCAibmFtZSIgYXR0cmlidXRlIG9mCisgICAgICJuYW1lW25uXS5wcm9wZXJ0eSIuICBUaGUgdmFsdWUgb2YgZWFjaCB0YWcgd2lsbCBhbHNvIGJlIGluaXRpYWxpemVkIGJ5CisgICAgIHRoZSBnZXR0ZXIgbWV0aG9kIGNvcnJlc3BvbmRpbmcgdG8gdGhhdCBwcm9wZXJ0eSBzcGVjaWZpY2F0aW9uLgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgSW4gR3JvdXAgMiwgdGhlc2UgdGFncyB3aWxsIGdlbmVyYXRlIGFuIEhUTUwgIm5hbWUiIGF0dHJpYnV0ZSBvZgorICAgICAicHJvcGVydHlbbm5dIi4gIFRoZXNlIHRocmVlIHRhZ3MgZG9uJ3QgaGF2ZSAibmFtZSIgYXR0cmlidXRlcywgc28gc2luY2UKKyAgICAgaXQgd291bGRuJ3QgbWFrZSBzZW5zZSB0byB1c2UgIltubl0ucHJvcGVydHkiIChubyBuYW1lIHZhbHVlKSwgdGhlIGFycmF5CisgICAgIGluZGV4ZXMgYXJlIGF0dGFjaGVkIHRvIHRoZSBwcm9wZXJ0eSBpbnN0ZWFkLgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgVGhlICJsaW5rIiB0YWcgaW4gR3JvdXAgMyBpc24ndCBhbnl0aGluZyBsaWtlIGFueSBvZiB0aGUgb3RoZXJzLiAgVGhlIGJhc2UKKyAgICAgZGVzY3JpcHRpb24gb2YgdGhlICJsaW5rIiB0YWcgZG9lc24ndCBldmVuIG1lbnRpb24gaG93IHRoaXMgd29ya3MsIGJ1dCB0aGUKKyAgICAgZGVzY3JpcHRpb24gb2YgdGhlICJpbmRleGVkIiB0YWcgZGVzY3JpYmVzIGhvdyBpdCB3b3JrcyBzb21ld2hhdCAoYWx0aG91Z2gKKyAgICAgaXQgZG9lc24ndCBzcGVjaWZpY2FsbHkgc2F5IHRoYXQgaXQgdXNlcyB0aGUgbmFtZSAiaW5kZXgiIGlmICJpbmRleElkIgorICAgICBpc24ndCBzZXQpLiAgSW4gc2hvcnQsIHRoZSAiaW5kZXhlZCIgYmVoYXZpb3Igb2YgdGhpcyB0YWcgaXMgdG8gYWRkIGEgVVJMCisgICAgIHF1ZXJ5IHBhcmFtZXRlciwgd2hlcmUgdGhlIHBhcmFtZXRlciBuYW1lIGlzICJpbmRleCIgb3IgdGhlIHZhbHVlIG9mIHRoZQorICAgICAiaW5kZXhJZCIgYXR0cmlidXRlLCBhbmQgdGhlIHBhcmFtZXRlciB2YWx1ZSBpcyB0aGUgY3VycmVudCBpbmRleCB2YWx1ZS4KKyAgICAgT3V0c2lkZSBvZiB0aGlzLCB0aGUgImluZGV4ZWQiIGJlaGF2aW9yIG9mIHRoZSAibGluayIgdGFnIG5lZWRzIG5vIG1vcmUKKyAgICAgZXhwbGFuYXRpb24sIGluIGNvbnRyYXN0IHRvIHRoZSB0YWdzIGluIHRoZSBmaXJzdCB0d28gZ3JvdXBzLgorICAgIDwvcD4KKyAgIDwvc2VjdGlvbj4KKyAgIDxzZWN0aW9uIGhyZWY9IndyaW5rbGUiIG5hbWU9IlRoZSBXcmlua2xlIHdpdGggSW5kZXhlZCBUYWdzIj4KKyAgICA8cD4KKyAgICAgVGhlIHByb2JsZW0gd2l0aCB1c2luZyB0aGUgImluZGV4ZWQiIGF0dHJpYnV0ZSB0byBhdXRvbWF0aWNhbGx5IGF0dGFjaCB0aGUKKyAgICAgbG9vcCBpbmRleCBpcyB0aGF0IGl0IGdpdmVzIHlvdSBsZXNzIGNvbnRyb2wgb3ZlciBob3cgdGhlIGxvb3AgaW5kZXggaXMKKyAgICAgdXNlZC4gIEZvciBpbnN0YW5jZSwgaW4gb3VyIGVhcmxpZXIgZXhhbXBsZXMgdXNpbmcgdGhlICImbHQ7aHRtbDp0ZXh0Jmd0OyIKKyAgICAgdGFnLCB3ZSBhdHRhY2hlZCB0aGUgbG9vcCBpbmRleCB0byB0aGUgZW5kIG9mIHRoZSAicHJvcGVydHkiIGF0dHJpYnV0ZQorICAgICB2YWx1ZSwgd2hpY2ggd2FzICJsYWJlbFZhbHVlIiBpbiBvdXIgZXhhbXBsZS4gIFRoaXMgcmVzdWx0cyBpbiBhICJuYW1lIgorICAgICBhdHRyaWJ1dGUgdmFsdWUgaW4gdGhlIEhUTUwgY29tcG9uZW50IG9mICJsYWJlbFZhbHVlW25uXSIuICBUaGlzIG1hcHMgdG8gYQorICAgICAibGFiZWxWYWx1ZSIgaW5kZXhlZCBwcm9wZXJ0eSBvbiB0aGUgInN0cmluZ2JlYW4iIGJlYW4gaW5zdGFuY2UuCisgICAgPC9wPgorICAgIDxwPgorICAgICBIb3dldmVyLCBpZiB3ZSBpbnN0ZWFkIGFkZCB0aGUgImluZGV4ZWQiIGF0dHJpYnV0ZSwgYW5kIHJlbW92ZSB0aGUgbWFudWFsCisgICAgIGF0dGFjaG1lbnQgb2YgdGhlIGxvb3AgaW5kZXgsIHRoZW4gdGhlIHJlc3VsdGluZyAibmFtZSIgYXR0cmlidXRlIGluIHRoZQorICAgICBIVE1MIGNvbXBvbmVudCBlbmRzIHVwIGFzICJzdHJpbmdiZWFuW25uXS5sYWJlbFZhbHVlIi4gIFRoaXMgd2lsbCBub3Qgd29yaworICAgICBhcyBpcy4gIEl0IGNhbiBiZSBjaGFuZ2VkIHRvIHdvcmssIGhvd2V2ZXIuICBGcm9tIHRoZSBwcmV2aW91cyBleGFtcGxlCisgICAgIChpbmRleGVkdGVzdDUuanNwKSwgdGhlICImbHQ7aHRtbDp0ZXh0Jmd0OyIgY29tcG9uZW50IHdvdWxkIGNoYW5nZSB0aGUKKyAgICAgIm5hbWUiIGF0dHJpYnV0ZSBmcm9tICJzdHJpbmdiZWFuIiB0byAibGFiZWxWYWx1ZSIsIGFuZCB0aGUgInByb3BlcnR5IgorICAgICBhdHRyaWJ1dGUgdG8gImxhYmVsIi4gIFdpdGggdGhlICJpbmRleGVkIiBhdHRyaWJ1dGUsIHRoYXQgZW5kcyB1cCB3aXRoIGEKKyAgICAgIm5hbWUiIGF0dHJpYnV0ZSB2YWx1ZSBvZiAibGFiZWxWYWx1ZVtubl0ubGFiZWwiLgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgU28sIGl0J3MgdmVyeSBsaWtlbHkgeW91IGNvdWxkIHVzZSBpbmRleGVkIHRhZ3MgdG8gc3VwcG9ydCB5b3VyIG5lZWRzIGZvcgorICAgICBpbmRleGVkIHByb3BlcnRpZXMsIGJ1dCB5b3UgaGF2ZSB0byB1bmRlcnN0YW5kIHRoZSByZXN1bHRpbmcgc3RydWN0dXJlIG9mCisgICAgIHlvdXIgIm5hbWUiIGF0dHJpYnV0ZSBpbiBvcmRlciB0byB1bmRlcnN0YW5kIHdoYXQgb3RoZXIgYXR0cmlidXRlIHZhbHVlcworICAgICB5b3UgbmVlZC4KKyAgICA8L3A+CisgICA8L3NlY3Rpb24+CisgICA8c2VjdGlvbiBocmVmPSJzdHJ1dHNlbCIgbmFtZT0iVXNpbmcgU3RydXRzLUVMIFRvIEF2b2lkIFNvbWUgT2YgVGhlIFBhaW4iPgorICAgIDxwPgorICAgICBUaGUgImluZGV4ZWQgdGFncyIgZmVhdHVyZSB3YXMgY3JlYXRlZCBwYXJ0aWFsbHkgYmVjYXVzZSBvZiB0aGUgYXdrd2FyZAorICAgICBwcm9jZXNzIGZvciBlbmNvZGluZyB0aGUgbG9vcCBpbmRleCBpbnRvIHRoZSBwcm9wZXJ0eSBhdHRyaWJ1dGUsIHVzaW5nIGEKKyAgICAgSlNQIGV4cHJlc3Npb24uICBUaGUgY3JlYXRpb24gb2YgdGhlIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvanNwL2pzdGwvIj5KU1RMPC9hPiAKKyAgICAgZXZlbnR1YWxseSByZXN1bHRlZCBpbiBhIHNvbHV0aW9uIHRoYXQgbWFrZXMgdGhhdCBwcm9jZXNzIGxlc3MgcGFpbmZ1bC4KKyAgICA8L3A+CisgICAgPHA+CisgICAgIFRoZSBKU1RMIHVzZXMgYSBzdHJpbmctYmFzZWQgZXhwcmVzc2lvbiBsYW5ndWFnZSB0byBldmFsdWF0ZSBhdHRyaWJ1dGUKKyAgICAgdmFsdWVzLCBpbnN0ZWFkIG9mIHVzaW5nIGEgcnVuLXRpbWUgSlNQIGV4cHJlc3Npb24uICBUaGUgZW5naW5lIHRoYXQKKyAgICAgcGVyZm9ybXMgdGhlc2UgZXZhbHVhdGlvbnMgaXMgb2Z0ZW4gY2FsbGVkIGp1c3QgIkVMIiAoZXhwcmVzc2lvbiBsYW5ndWFnZSkKKyAgICAgZm9yIHNob3J0LiAgQWZ0ZXIgdGhlIEpTVEwgd2FzIGNyZWF0ZWQsIGEgZGVyaXZhdGl2ZSBvZiB0aGUgU3RydXRzIHRhZworICAgICBsaWJyYXJ5IGNhbGxlZCBTdHJ1dHMtRUwgd2FzIGNyZWF0ZWQuICBJbiBzaG9ydCwgdGhpcyBkb2VzIGV2ZXJ5dGhpbmcgdGhhdAorICAgICB0aGUgU3RydXRzIHRhZyBsaWJyYXJ5IGRvZXMsIGJ1dCBpdCB1c2VzIHRoZSBKU1RMIEVMIGVuZ2luZSB0byBldmFsdWF0ZQorICAgICBhdHRyaWJ1dGUgdmFsdWVzLgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgSWYgeW91IHVzZSBTdHJ1dHMtRUwsIHlvdSBjYW4gZ2V0IGJhY2sgc29tZSBvZiB0aGUgZmxleGliaWxpdHkgb2YgZW5jb2RpbmcKKyAgICAgeW91ciBsb29wIGluZGljZXMgbWFudWFsbHksIGJ1dCB0aGUgcmVzdWx0aW5nIGV4cHJlc3Npb25zIHdpbGwgYmUgYSBsaXR0bGUKKyAgICAgbW9yZSByZWFkYWJsZSwgYW5kIHRodXMgbWF5YmUgYSBsaXR0bGUgZWFzaWVyIHRvIG1haW50YWluLgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgRm9yIGluc3RhbmNlLCBmb2xsb3dpbmcgdGhpcyBpcyBhIHZlcnNpb24gb2YgImluZGV4ZWR0ZXN0NS5qc3AiIHVzaW5nCisgICAgIFN0cnV0cy1FTDoKKyAgICA8L3A+CisgICAgPHByZT4KKyZsdDshLS0gaW5kZXhlZHRlc3Q2LmpzcCAtLSZndDsKKyZsdDslQCB0YWdsaWIgdXJpPSIvV0VCLUlORi9zdHJ1dHMtaHRtbC1lbC50bGQiIHByZWZpeD0iaHRtbC1lbCIgJSZndDsKKyZsdDslQCB0YWdsaWIgdXJpPSIvV0VCLUlORi9zdHJ1dHMtbG9naWMtZWwudGxkIiBwcmVmaXg9ImxvZ2ljLWVsIiAlJmd0OworJmx0O2h0bWwmZ3Q7CisgJmx0O2JvZHkmZ3Q7CisgICZsdDtodG1sLWVsOmZvcm0gYWN0aW9uPSJpbmRleGVkdGVzdDYuZG8iJmd0OworICAgJmx0O2xvZ2ljLWVsOml0ZXJhdGUgbmFtZT0ic3RyaW5nYmVhbiIgcHJvcGVydHk9InN0cmluZ0FycmF5IiBpZD0iZm9vIgorICAgICAgICAgICAgICAgICAgICAgaW5kZXhJZD0iY3RyIiZndDsKKyAgICAmbHQ7aHRtbC1lbDp0ZXh0IG5hbWU9InN0cmluZ2JlYW4iCisgICAgICAgICAgICAgICAgICBwcm9wZXJ0eT0ibGFiZWxWYWx1ZVske2N0cn1dLmxhYmVsIiAvJmd0OworICAgJmx0Oy9sb2dpYy1lbDppdGVyYXRlJmd0OworICAgJmx0O2h0bWwtZWw6c3VibWl0IHByb3BlcnR5PSJzdWJtaXRWYWx1ZSImZ3Q7U3VibWl0IENoYW5nZXMmbHQ7L2h0bWw6c3VibWl0Jmd0OworICAmbHQ7L2h0bWwtZWw6Zm9ybSZndDsKKyAmbHQ7L2JvZHkmZ3Q7CismbHQ7L2h0bWwmZ3Q7PC9wcmU+CisgICAgPHA+CisgICAgIFRoZSBTdHJ1dHMtRUwgbGlicmFyeSBpcyBwYXJ0IG9mIHRoZSBTdHJ1dHMgZGlzdHJpYnV0aW9uLCBpbiB0aGUgImNvbnRyaWIiCisgICAgIGRpcmVjdG9yeS4gIFRoZSBvbmUgZHJhd2JhY2sgdG8gdXNpbmcgU3RydXRzLUVMIGlzIHRoYXQgaXQgcmVxdWlyZXMgYSB3ZWIKKyAgICAgY29udGFpbmVyIHN1cHBvcnRpbmcgdGhlIFNlcnZsZXQgMi4zIHNwZWNpZmljYXRpb24uCisgICAgPC9wPgorICAgPC9zZWN0aW9uPgorIDwvYm9keT4KKzwvZG9jdW1lbnQ+CisKZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ZhcXMva2lja3N0YXJ0LnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ZhcXMva2lja3N0YXJ0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGYwNjM5Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZmFxcy9raWNrc3RhcnQueG1sCkBAIC0wLDAgKzEsMzU2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Ii4va2lja3N0YXJ0LnhtbCI+Cis8cHJvcGVydGllcz4KKzx0aXRsZT5LaWNrc3RhcnQgRkFRIC0gQXBhY2hlIFN0cnV0czwvdGl0bGU+Cis8L3Byb3BlcnRpZXM+Cis8Ym9keT4KKzxzZWN0aW9uIGhyZWY9ImZhcSIgbmFtZT0iS2lja3N0YXJ0IEZBUSIvPgorCis8c2VjdGlvbiBocmVmPSJjb250ZW50cyIgbmFtZT0iSW5kZXgiPgorCis8cD4KK0hlcmUgYXJlIGFuc3dlcnMgdG8gdGhlIHVzdWFsIGdldHRpbmctc3RhcnRlZCBxdWVzdGlvbnMuIDxzdHJvbmc+Rm9yIGFuIGluLWRlcHRoLCBzZWFyY2hhYmxlIEZBUSwgdmlzaXQgb3VyIGZyaWVuZHMgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5qZ3VydS5jb20vZmFxL2hvbWUuanNwP3RvcGljPVN0cnV0cyI+Skd1cnU8L2E+Ljwvc3Ryb25nPgorPC9wPgorCisgIDx1bD4KKyAgICA8bGk+PGEgaHJlZj0iI3doeSI+V2h5IGRvIHdlIG5lZWQgU3RydXRzPzwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSIjaG93Ij5Ib3cgZG9lcyBTdHJ1dHMgd29yaz88L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iI2NvbXBhdCI+SXMgU3RydXRzIGNvbXBhdGlibGUgd2l0aCBvdGhlciBKYXZhIHRlY2hub2xvZ2llcz88L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iI3dobyI+V2hvIHdyb3RlIFN0cnV0cz88L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iI3N0cnV0cyI+V2h5IGlzIGl0IGNhbGxlZCBTdHJ1dHM/PC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IiNsaWNlbnNlIj5Ib3cgaXMgU3RydXRzIGxpY2Vuc2VkPzwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSIjdXNhZ2UiPkNhbiBTdHJ1dHMgYmUgdXNlZCBpbiBhIGNvbW1lcmNpYWwgYXBwbGljYXRpb24/PC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IiNjcmVkaXRzIj5EbyBJIGhhdmUgdG8gY3JlZGl0IFN0cnV0cyBvbiBteSBvd24gd2Vic2l0ZT88L2E+PC9saT4KKyAgPC91bD48dWw+CisgICAgPGxpPjxhIGhyZWY9IiN3aGVyZSI+V2hlcmUgY2FuIEkgZ2V0IGEgY29weSBvZiBTdHJ1dHM/PC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IiNpbnN0YWxsIj5Ib3cgZG8gSSBpbnN0YWxsIFN0cnV0cz88L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iI2phciI+V2hlbiBkbyBJIG5lZWQgdGhlIHN0cnV0cy5qYXIgb24gbXkgY2xhc3NwYXRoPzwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSIjdGVzdHMiPkRvZXMgU3RydXRzIHByb3ZpZGUgaXRzIG93biB1bml0IHRlc3RzPzwvYT48L2xpPgorICA8L3VsPjx1bD4KKyAgICA8bGk+PGEgaHJlZj0iI3JlcXVlc3RzIj5JZiB0aGUgZnJhbWV3b3JrIGRvZXNuJ3QgZG8gd2hhdCBJIHdhbnQsIGNhbiBJIHJlcXVlc3QgdGhhdCBhIGZlYXR1cmUgYmUgYWRkZWQ/PC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IiNoZWxwIj5XaGVyZSBjYW4gSSBnZXQgaGVscCB3aXRoIFN0cnV0cz88L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iI3N1cHBvcnQiPklzIGNvbW1lcmNpYWwgc3VwcG9ydCBhdmFpbGFibGUgZm9yIFN0cnV0cz88L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iI3Byb3ZpZGVycyI+QXJlIHRoZXJlIElTUHMgdGhhdCB3aWxsIGhvc3QgbXkgU3RydXRzIGFwcGxpY2F0aW9uPzwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSIjcG93ZXJlZCI+V2hhdCBXZWIgc2l0ZXMgYXJlIGFscmVhZHkgUG93ZXJlZCBieSBTdHJ1dHM/PC9hPjwvbGk+CisgIDwvdWw+PHVsPgorICAgIDxsaT48YSBocmVmPSIjdHVyYmluZSI+V2hhdCdzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gU3RydXRzIGFuZCBUdXJiaW5lPyAgV2hhdCdzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gU3RydXRzIGFuZCBFeHByZXNzbz88L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iI3RhZ2xpYnMiPldoeSBhcmVuJ3QgdGhlIFN0cnV0cyB0YWdzIG1haW50YWluZWQgYXMgcGFydCBvZiB0aGUgSmFrYXJ0YSBUYWdsaWJzIHByb2plY3Q/PC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IiN4aHRtbCI+QXJlIHRoZSBTdHJ1dHMgdGFncyBYSFRNTCBjb21wbGlhbnQ/PC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IiNqc2YiPldoYXQgYWJvdXQgSlNUTCBhbmQgSmF2YVNlcnZlciBGYWNlcz88L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iI2lkZSI+SXMgdGhlcmUgYSBwYXJ0aWN1bGFybHkgZ29vZCBJREUgdG8gdXNlIHdpdGggU3RydXRzPzwvYT48L2xpPgorIDwvdWw+PHVsPgorICAgIDxsaT48YSBocmVmPSIjZGlnZXN0Ij5JcyB0aGVyZSBhIGRpZ2VzdCBmb3IgdGhlIG1haWxpbmcgbGlzdD88L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iI25ld3Nncm91cCI+SXMgdGhlcmUgYSBTdHJ1dHMgTmV3c2dyb3VwPzwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSIjbWFpbGJvdW5jZSI+V2h5IGRpZG4ndCBteSBwb3N0aW5nIHNob3cgdXAgb24gdGhlIHVzZXIgbGlzdD8iPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IiN1bnN1YnNjcmliZSI+SG93IGRvIEkgdW5zdWJzY3JpYmUgZnJvbSB0aGUgbWFpbGluZyBsaXN0PzwvYT48L2xpPgorICA8L3VsPiAgICAKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0id2h5IiBuYW1lPSJXaHkgZG8gd2UgbmVlZCBTdHJ1dHM/Ij4KKzxwPkphdmEgdGVjaG5vbG9naWVzIGdpdmUgZGV2ZWxvcGVycyBhIHNlcmlvdXMgYm9vc3Qgd2hlbiBjcmVhdGluZyBhbmQgbWFpbnRhaW5pbmcgYXBwbGljYXRpb25zIHRvIG1lZXQgdGhlIGRlbWFuZHMgb2YgdG9kYXkncyBwdWJsaWMgV2ViIHNpdGVzIGFuZCBlbnRlcnByaXNlIGludHJhbmV0cy4gU3RydXRzIGNvbWJpbmVzIEphdmEgU2VydmxldHMsIEphdmEgU2VydmVyUGFnZXMsIGN1c3RvbSB0YWdzLCBhbmQgbWVzc2FnZSByZXNvdXJjZXMgaW50byBhIHVuaWZpZWQgZnJhbWV3b3JrLiBUaGUgZW5kIHJlc3VsdCBpcyBhIGNvb3BlcmF0aXZlLCBzeW5lcmdpc3RpYyBwbGF0Zm9ybSwgc3VpdGFibGUgZm9yIGRldmVsb3BtZW50IHRlYW1zLCBpbmRlcGVuZGVudCBkZXZlbG9wZXJzLCBhbmQgZXZlcnlvbmUgaW4gYmV0d2Vlbi48L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9ImhvdyIgbmFtZT0iSG93IGRvZXMgU3RydXRzIHdvcms/Ij4KKzxwPkphdmEgU2VydmxldHMgYXJlIGRlc2lnbmVkIHRvIGhhbmRsZSByZXF1ZXN0cyBtYWRlIGJ5IFdlYiBicm93c2Vycy4gSmF2YSBTZXJ2ZXJQYWdlcyBhcmUgZGVzaWduZWQgdG8gY3JlYXRlIGR5bmFtaWMgV2ViIHBhZ2VzIHRoYXQgY2FuIHR1cm4gYmlsbGJvYXJkIHNpdGVzIGludG8gbGl2ZSBhcHBsaWNhdGlvbnMuIFN0cnV0cyB1c2VzIGEgc3BlY2lhbCBTZXJ2bGV0IGFzIGEgc3dpdGNoYm9hcmQgdG8gcm91dGUgcmVxdWVzdHMgZnJvbSBXZWIgYnJvd3NlcnMgdG8gdGhlIGFwcHJvcHJpYXRlIFNlcnZlclBhZ2UuIFRoaXMgbWFrZXMgV2ViIGFwcGxpY2F0aW9ucyBtdWNoIGVhc2llciB0byBkZXNpZ24sIGNyZWF0ZSwgYW5kIG1haW50YWluLjwvcD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0iY29tcGF0IiBuYW1lPSJJcyBTdHJ1dHMgY29tcGF0aWJsZSB3aXRoIG90aGVyIEphdmEgdGVjaG5vbG9naWVzPyI+Cis8cD5ZZXMuIFN0cnV0cyBpcyBjb21taXR0ZWQgdG8gc3VwcG9ydGluZyBpbmR1c3RyeSBzdGFuZGFyZHMuIE91ciBsZWFkIGRldmVsb3BlciBpcyBhIG1lbWJlciBvZiA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2Fib3V0SmF2YS9jb21tdW5pdHlwcm9jZXNzL2pzci9qc3JfMDUyX2pzcHRhZ2xpYi5odG1sIj5KU1IwNTI8L2E+LCBTdW4ncyBFeHBlcnQgZ3JvdXAgZm9yIGRldmVsb3BpbmcgYSBzdGFuZGFyZCBsaWJyYXJ5IG9mIGN1c3RvbSBKU1AgdGFncy4gQSBwcmltYXJ5IGRlc2lnbiBjcml0ZXJpYSBpcyB0aGF0IFN0cnV0cyBtdXN0IGJlIGNvbXBhdGlibGUgd2l0aCBTdW4ncyBKMkVFIHBsYXRmb3JtIGZvciBjb3Jwb3JhdGUgZW50ZXJwcmlzZXMuIEluIGZhY3QsIFN0cnV0cyByZWFsbHkgYWN0cyBhcyBhbiBpbnRlZ3JhdG9yIG9mIEphdmEgdGVjaG5vbG9naWVzLCBzbyB0aGF0IHRoZXkgY2FuIGJlIHVzZWQgaW4gdGhlICZxdW90O3JlYWwgd29ybGQmcXVvdDsuPC9wPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJ3aG8iIG5hbWU9IldobyB3cm90ZSBTdHJ1dHM/Ij4KKzxwPlN0cnV0cyB3YXMgY3JlYXRlZCBieSBDcmFpZyBSLiBNY0NsYW5haGFuLCBhbmQgZG9uYXRlZCB0byBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gaW4gTWF5IDIwMDAuIENyYWlnIGlzIHRoZSBwcmltYXJ5IGRldmVsb3BlciBvZiBib3RoIFN0cnV0cyBhbmQgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy90b21jYXQvaW5kZXguaHRtbCI+VG9tY2F0IDQ8L2E+LCB0aGUgYmFzaXMgZm9yIHRoZSBvZmZpY2lhbCByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gZm9yIGEgc2VydmxldCAyLjMgYW5kIEpTUCAxLjIgY29udGFpbmVyLiBXaXRoIHN0YWJsZSByZWxlYXNlcyBvZiBTdHJ1dHMgYW5kIFRvbWNhdCA0IGluIGNpcmN1bGF0aW9uLCBDcmFpZyBpcyBub3cgdGhlIFNwZWNpZmljYXRpb24gTGVhZCBmb3IgPGEgaHJlZj0iaHR0cDovL2pjcC5vcmcvanNyL2RldGFpbC8xMjcuanNwIj5KYXZhU2VydmVyIEZhY2VzIChKU1ItMTI3KTwvYT4sIGFuZCBpcyB0aGUgV2ViIExheWVyIEFyY2hpdGVjdCBmb3IgdGhlIEphdmEyIEVudGVycHJpc2UgRWRpdGlvbiAoSjJFRSkgcGxhdGZvcm0gYXMgYSB3aG9sZS48L3A+Cis8cD5UaGVyZSBhcmUgbm93IG1hbnkgYWN0aXZlIGNvbW1pdHRlcnMgdG8gdGhlIFN0cnV0cyBwcm9qZWN0LCB3b3JraW5nIGNvb3BlcmF0aXZlbHkgZnJvbSBhcm91bmQgdGhlIGdsb2JlLiBPdGhlciBKYXZhIGRldmVsb3BlcnMgYXJlIGludml0ZWQgdG8gPGEgaHJlZj0iaGVscGluZy5odG1sI2NvbnRyaWJ1dGUiPmNvbnRyaWJ1dGUgdG8gdGhlIHByb2plY3Q8L2E+LiBTdHJ1dHMgaXMgYW4gPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy8iPkFwYWNoZSBKYWthcnRhPC9hPiAgcHJvamVjdCwgd2l0aCB0aGUgY29tbW9uIG1pc3Npb24gdG8gJnF1b3Q7cHJvdmlkZSBjb21tZXJjaWFsLXF1YWxpdHkgc2VydmVyIHNvbHV0aW9ucyBiYXNlZCBvbiB0aGUgSmF2YSBQbGF0Zm9ybSB0aGF0IGFyZSBkZXZlbG9wZWQgaW4gYW4gb3BlbiBhbmQgY29vcGVyYXRpdmUgZmFzaGlvbiZxdW90Oy4gQWxsIHRvbGQsIDE3IGluZGl2aWR1YWwgZGV2ZWxvcGVycyBhbmQgY29tbWl0dGVycyBjb250cmlidXRlZCB0byB0aGUgU3RydXRzIDEuMCBjb2RlYmFzZS48L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9InN0cnV0cyIgbmFtZT0iV2h5IGlzIGl0IGNhbGxlZCBTdHJ1dHM/Ij4KKzxwPkl0J3MgYSByZWZlcmVuY2UgdG8gc3RydXRzIGluIHRoZSBhcmNoaXRlY3R1cmFsIHNlbnNlLCBhIHJlbWluZGVyIG9mIHRoZSBuZWFybHkgaW52aXNpYmxlIHBpZWNlcyB0aGF0IGhvbGQgdXAgYnVpbGRpbmdzLCBob3VzZXMsIGFuZCBicmlkZ2VzLjwvcD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0ibGljZW5zZSIgbmFtZT0iSG93IGlzIFN0cnV0cyBsaWNlbnNlZD8iPgorPHA+U3RydXRzIGlzIGNvcHlyaWdodGVkIHNvZnR3YXJlIGF2YWlsYWJsZSB1bmRlciBhICZxdW90O2ZyZWUtdG8tdXNlLWxpY2Vuc2UmcXVvdDsgYnkgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiBUaGUgbGljZW5zZSBhcHBlYXJzIGF0IHRoZSBoZWFkIG9mIGV2ZXJ5IHNvdXJjZSBjb2RlIGZpbGUuIEEgcmVmZXJlbmNlIGNvcHkgb2YgdGhlIGxpY2Vuc2UgaXMgYXZhaWxhYmxlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9MSUNFTlNFLTEuMSI+aGVyZTwvYT4uPC9wPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJ1c2FnZSIgbmFtZT0iQ2FuIFN0cnV0cyBiZSB1c2VkIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0PyI+Cis8cD5ZZXMuIFRoZSBvbmx5IHJlcXVpcmVtZW50cyB5b3UgbXVzdCBtZWV0IGFyZSB0aG9zZSBsaXN0ZWQgaW4gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGxpY2Vuc2UsIHdoaWNoIGlzIGluY2x1ZGVkIGF0IHRoZSB0b3Agb2YgZWFjaCBzb3VyY2UgZmlsZSBhbmQgaW4gdGhlIGZpbGUgTElDRU5TRSBpbiB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeSBvZiB0aGUgZGlzdHJpYnV0aW9uLjwvcD4KKzxwPkluIGFkZGl0aW9uLCA8YSBocmVmPSJoZWxwaW5nLmh0bWwjYnVncyI+Y29udHJpYnV0aW9ucyBvZiBwYXRjaGVzLCBpbXByb3ZlZCBjb2RlLCBuZXcgZmVhdHVyZXMsPC9hPiBvciBldmVuIGp1c3QgcmVxdWVzdHMgZm9yIGZlYXR1cmVzIGFyZSBhbHNvIHdlbGNvbWUuPC9wPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJjcmVkaXRzIiBuYW1lPSJEbyBJIGhhdmUgdG8gY3JlZGl0IFN0cnV0cyBvbiBteSBvd24gd2Vic2l0ZT8iPgorPHA+WW91IG5lZWQgdG8gY3JlZGl0IFN0cnV0cyBpZiB5b3UgPHN0cm9uZz5yZWRpc3RyaWJ1dGUgeW91ciBvd24gZnJhbWV3b3JrPC9zdHJvbmc+IGJhc2VkIG9uIFN0cnV0cworZm9yIG90aGVyIHBlb3BsZSB0byB1c2UuIChTZWUgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9MSUNFTlNFIj5BcGFjaGUgTGljZW5zZTwvYT4gZm9yIGRldGFpbHMuKQorQnV0IHlvdSBkbyA8c3Ryb25nPm5vdDwvc3Ryb25nPiBuZWVkIHRvIGNyZWRpdCBTdHJ1dHMganVzdCBiZWNhdXNlIHlvdXIgd2ViIGFwcGxpY2F0aW9uIHV0aWxpemVzIHRoZSBmcmFtZXdvcmsuCitJdCdzIHRoZSBzYW1lIHNpdHVhdGlvbiBhcyB1c2luZyB0aGUgQXBhY2hlIEhUVFBEIHNlcnZlciBvciBUb21jYXQuIE5vdCByZXF1aXJlZCBpZiBpdHMganVzdCBydW5uaW5nIHlvdXIgd2ViIHNpdGUuCitSZXF1aXJlZCBpZiB5b3UndmUgdXNlZCB0aGUgc291cmNlIGNvZGUgdG8gY3JlYXRlIHlvdXIgb3duIHNlcnZlciB0aGF0IHlvdSBhcmUgcmVkaXN0cmlidXRpbmcgdG8gb3RoZXIgcGVvcGxlLjwvcD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0id2hlcmUiIG5hbWU9IldoZXJlIGNhbiBJIGdldCBhIGNvcHkgb2YgU3RydXRzPyI+Cis8cD5UaGUgYmVzdCBwbGFjZSB0byBkb3dubG9hZCBTdHJ1dHMgaXMgYXQgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvIj5qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzPC9hPi4gVGhlIG5pZ2h0bHkgYnVpbGRzIGFyZSB2ZXJ5IHN0YWJsZSwgYW5kIHJlY29tbWVuZGVkIGFzIHRoZSBiZXN0IHBsYWNlIHRvIHN0YXJ0IHRvZGF5LjwvcD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0iaW5zdGFsbCIgbmFtZT0iSG93IGRvIEkgaW5zdGFsbCBTdHJ1dHM/Ij4KKzxwPlRvIGRldmVsb3AgYXBwbGljYXRpb25zIHdpdGggU3RydXRzLCB5b3UgY2FuIHVzdWFsbHkganVzdCBhZGQgdGhlIFN0cnV0cyBKQVIgZmlsZQordG8geW91ciBKYXZhIGRldmVsb3BtZW50IGVudmlyb25tZW50LiBZb3UgY2FuIHRoZW4gc3RhcnQgdXNpbmcgdGhlIFN0cnV0cyBjbGFzc2VzIGFzCitwYXJ0IG9mIHlvdXIgb3duIGFwcGxpY2F0aW9uLiBBIGJsYW5rIFN0cnV0cyBhcHBsaWNhdGlvbiAoaW4gdGhlCis8Y29kZT53ZWJhcHBzPC9jb2RlPiBkaXJlY3RvcnksIG9wZW4gPGNvZGU+c3RydXRzLWJsYW5rLndhcjwvY29kZT4pCitpcyBwcm92aWRlZCwgd2hpY2ggeW91IGNhbiBqdXN0IGNvcHkgdG8gZ2V0IGEgcXVpY2stc3RhcnQgb24geW91ciBvd24gYnJhaW5jaGlsZC48L3A+Cis8cD5TaW5jZSB0aGUgZnVsbCBzb3VyY2UgY29kZSBmb3IgU3RydXRzIGlzIGF2YWlsYWJsZSwgd2UgYWxzbyBwcm92aWRlCis8YSBocmVmPSIuLi91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLmh0bWwiPmNvbXBsZXRlIGluc3RydWN0aW9uczwvYT4KK2ZvciBjb21waWxpbmcgeW91ciBvd24gU3RydXRzIEpBUiBmcm9tIHNjcmF0Y2guIChUaGlzIGlzIGFjdHVhbGx5IGVhc2llciB0aGFuIGl0IGxvb2tzISk8L3A+Cis8cD5Zb3VyIFN0cnV0cyBhcHBsaWNhdGlvbiBjYW4gdXN1YWxseSBiZSBkZXBsb3llZCB1c2luZyBhIHN0YW5kYXJkIFdBUiBmaWxlLiBJbiBtb3N0CitjYXNlcywgeW91IHNpbXBseSBkZXBvc2l0IHRoZSBXQVIgZmlsZSBvbiB5b3VyIGFwcGxpY2F0aW9uIHNlcnZlciwgYW5kIGl0IGlzIGluc3RhbGxlZAorYXV0b21hdGljYWxseS4gSWYgbm90LCBzdGVwLWJ5LXN0ZXAgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyBmb3IKKzxhIGhyZWY9Ii4uL3VzZXJHdWlkZS9pbnN0YWxsYXRpb24uaHRtbCNDb250YWluZXJzIj52YXJpb3VzIHNlcnZsZXQKK2NvbnRhaW5lcnM8L2E+IGFyZSBhdmFpbGFibGUuPC9wPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJqYXIiIG5hbWU9IldoZW4gZG8gSSBuZWVkICZxdW90O3N0cnV0cy5qYXImcXVvdDsgb24gbXkgY2xhc3NwYXRoPyI+Cis8cD5XaGVuIHlvdSBhcmUgY29tcGlsaW5nIGFuIGFwcGxpY2F0aW9uIHRoYXQgdXNlcyB0aGUgU3RydXRzIGNsYXNzZXMsIHlvdSBtdXN0IGhhdmUgdGhlICZxdW90O3N0cnV0cy5qYXImcXVvdDsgb24gdGhlIGNsYXNzcGF0aCB5b3VyIDxzdHJvbmc+Y29tcGlsZXI8L3N0cm9uZz4gc2VlcyAtLSBpdCBkb2VzIG5vdCA8ZW0+IGhhdmU8L2VtPiB0byBiZSBvbiB5b3VyIENMQVNTUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZS48L3A+Cis8cD5XaHkgaXMgdGhhdCBhbiBpbXBvcnRhbnQgZGlzdGluY3Rpb24/IEJlY2F1c2UgaWYgeW91IGFyZSB1c2luZyBhIHNlcnZsZXQgY29udGFpbmVyIG9uIHlvdXIgZGV2ZWxvcG1lbnQgbWFjaGluZSB0byB0ZXN0IHlvdXIgYXBwbGljYXRpb24sIHRoZSAmcXVvdDtzdHJ1dHMuamFyJnF1b3Q7IDxzdHJvbmc+bXVzdCBub3Q8L3N0cm9uZz4gYmUgb24geW91ciBDTEFTU1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUgd2hlbiBydW5uaW5nIHRoZSBjb250YWluZXIuIChUaGlzIGlzIGJlY2F1c2UgZWFjaCBXZWIgYXBwbGljYXRpb24gbXVzdCBhbHNvIGhhdmUgdGhlaXIgb3duIGNvcHkgb2YgdGhlIFN0cnV0cyBjbGFzc2VzLCBhbmQgdGhlIGNvbnRhaW5lciB3aWxsIGJlY29tZSBjb25mdXNlZCBpZiBpdCBpcyBvbiB0aGUgZW52aXJvbm1lbnQgcGF0aCBhcyB3ZWxsLik8L3A+Cis8cD5UaGVyZSBhcmUgc2V2ZXJhbCBnZW5lcmFsIGFwcHJvYWNoZXMgdG8gdGhpcyBpc3N1ZTo8L3A+Cis8dWw+Cis8bGk+PHN0cm9uZz5Vc2UgQU5UPC9zdHJvbmc+IGZvciBidWlsZGluZyB5b3VyIHByb2plY3RzIC0tIGl0IGNhbiBlYXNpbHkgYXNzZW1ibGUgY2xhc3NwYXRocyBmb3IgdGhlIGNvbXBpbGVyLiAgKFRoaXMgaXMgaG93IFN0cnV0cyBpdHNlbGYgaXMgIGJ1aWx0LCBhbG9uZyB3aXRoIFRvbWNhdCBhbmQgbW9zdCBvdGhlciBKYXZhLWJhc2VkIHByb2plY3RzKS48L2xpPgorPGxpPjxzdHJvbmc+VXNlIGFuIElERTwvc3Ryb25nPiB3aGVyZSB5b3UgY2FuIGNvbmZpZ3VyZSB0aGUgImNsYXNzIHBhdGgiIHVzZWQgIGZvciBjb21waWxhdGlvbiBpbmRlcGVuZGVudCBvZiB0aGUgQ0xBU1NQQVRIIGVudmlyb25tZW50ICB2YXJpYWJsZS48L2xpPgorPGxpPjxzdHJvbmc+VXNlIGEgc2hlbGwgc2NyaXB0PC9zdHJvbmc+IHRoYXQgdGVtcG9yYXJpbHkgYWRkcyBzdHJ1dHMuamFyICB0byB0aGUgY2xhc3NwYXRoIGp1c3QgZm9yIGNvbXBpbGF0aW9uLCBmb3IgZXhhbXBsZTxici8+Cis8ZW0+amF2YWMgLWNsYXNzcGF0aCAvcGF0aC90by9zdHJ1dHMuamFyOiRDTEFTU1BBVEggJEA8L2VtPjwvbGk+Cis8L3VsPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJ0ZXN0cyIgbmFtZT0iRG9lcyBTdHJ1dHMgaW5jbHVkZSBpdHMgb3duIHVuaXQgdGVzdHM/Ij4KKzxwPgorU3RydXRzIGN1cnJlbnRseSBoYXMgdHdvIHRlc3RpbmcgZW52aXJvbm1lbnRzLCB0byByZWZsZWN0IHRoZSBmYWN0IHRoYXQKK3NvbWUgdGhpbmdzIGNhbiBiZSB0ZXN0ZWQgc3RhdGljYWxseSwgYW5kIHNvbWUgcmVhbGx5IG5lZWQgdG8gYmUgZG9uZSBpbgordGhlIGVudmlyb25tZW50IG9mIGEgcnVubmluZyBzZXJ2bGV0IGNvbnRhaW5lci48L3A+Cis8cD4KK0ZvciBzdGF0aWMgdW5pdCB0ZXN0cywgd2UgdXNlIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3Lmp1bml0Lm9yZyI+SlVuaXQgZnJhbWV3b3JrPC9hPi4KK1RoZSBzb3VyY2VzIGZvciB0aGVzZSB0ZXN0cyBhcmUgaW4gdGhlICJzcmMvdGVzdCIKK2hpZXJhcmNoeSBpbiB0aGUgU3VidmVyc2lvbiByZXBvc2l0b3J5LCBhbmQgYXJlIGV4ZWN1dGVkIHZpYSB0aGUgInRlc3QuanVuaXQiCit0YXJnZXQgaW4gdGhlIHRvcC1sZXZlbCBidWlsZC54bWwgZmlsZS4gIFN1Y2ggdGVzdHMgYXJlIGZvY3VzZWQgb24gdGhlCitsb3ctbGV2ZWwgZnVuY3Rpb25hbGl0eSBvZiBpbmRpdmlkdWFsIG1ldGhvZHMsIGFyZSBwYXJ0aWN1bGFybHkKK3N1aXRhYmxlIGZvciB0aGUgc3RhdGljIG1ldGhvZHMgaW4gdGhlIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwgdXRpbGl0eQorY2xhc3Nlcy4gIEluIHRoZSB0ZXN0IGhpZXJhcmNoeSwgdGhlcmUgYXJlIGFsc28gc29tZSAibW9jayBvYmplY3QiIGNsYXNzZXMKKyhpbiB0aGUgb3JnLmFwYWNoZS5zdHJ1dHMubW9jayBwYWNrYWdlKSBzbyB0aGF0IHlvdSBjYW4gcGFja2FnZSB1cCB0aGluZ3MKK3RoYXQgbG9vayBsaWtlIHNlcnZsZXQgQVBJIGFuZCBTdHJ1dHMgQVBJIG9iamVjdHMgdG8gcGFzcyBpbiBhcyBhcmd1bWVudHMKK3RvIHN1Y2ggdGVzdHMuPC9wPgorPHA+CitBbm90aGVyIHZhbHVhYmxlIHRvb2wgaXMKKzxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvc3RydXRzdGVzdGNhc2UvIj5TdHJ1dHMgVGVzdENhc2U8L2E+Cit3aGljaCBwcm92aWRlcyBhIHVzZWZ1bCBoYXJuZXNzIGZvciBBY3Rpb24gY2xhc3NlcyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggSlVuaXQgb3IKKzxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY2FjdHVzIj5DYWN0dXM8L2E+LgorPC9wPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJyZXF1ZXN0cyIgbmFtZT0iSWYgdGhlIGZyYW1ld29yayBkb2Vzbid0IGRvIHdoYXQgSSB3YW50LCBjYW4gSSByZXF1ZXN0IHRoYXQgYSBmZWF0dXJlIGJlIGFkZGVkPyI+Cis8cD4KK0ZpcnN0LCBpdCdzIGltcG9ydGFudCB0byByZW1lbWJlciB0aGF0IFN0cnV0cyBpcyBhbiBhbGwtdm9sdW50ZWVyIHByb2plY3QuCitXZSBkb24ndCBjaGFyZ2UgYW55b25lIGFueXRoaW5nIHRvIHVzZSBTdHJ1dHMuCitDb21taXR0ZXJzIGFuZCBvdGhlciBkZXZlbG9wZXJzIHdvcmsgb24gU3RydXRzIGJlY2F1c2UgdGhleSBuZWVkIHRvIHVzZSBpdCB3aXRoIHRoZWlyIG93biBhcHBsaWNhdGlvbnMuCitJZiBvdGhlcnMgY2FuIHVzZSBpdCB0b28sIHRoYXQncyAiaWNpbmcgb24gdGhlIGNha2UiLgorSWYgeW91IHN1Ym1pdCBhIHBhdGNoIGZvciBhIGZlYXR1cmUgdGhhdCBhIENvbW1pdHRlciBmaW5kcyB1c2VmdWwsIHRoZW4gdGhhdCBDb21taXR0ZXIgbWF5IGNob29zZSB0byB2b2x1bnRlZXIgaGlzIG9yIGhlciB0aW1lIHRvIGFwcGx5IHRoZSBwYXRjaC4KK0lmIHlvdSBqdXN0IHN1Ym1pdCBhbiBpZGVhIHdpdGhvdXQgYSBwYXRjaCwgaXQgaXMgbXVjaCBsZXNzIGxpa2VseSB0byBiZSBhZGRlZCAoc2luY2UgZmlyc3Qgc29tZW9uZSBlbHNlIGhhcyB0byB2b2x1bnRlZXIgdGhlaXIgdGltZSB0byB3cml0ZSB0aGUgcGF0Y2gpLgorPC9wPgorPHA+CitXZSBhcmUgZ3JhdGVmdWwgZm9yIGFueSBwYXRjaGVzLCBhbmQgd2Ugd2VsY29tZSBuZXcgaWRlYXMsIGJ1dCB0aGUgYmVzdCB3YXkgdG8gc2VlIHRoYXQgc29tZXRoaW5nIGdldHMgYWRkZWQgdG8gdGhlIGZyYW1ld29yayBpcyB0byBkbyBhcyBtdWNoIG9mIHRoZSB3b3JrIGFzIHlvdSBjYW4sIHJhdGhlciB0aGFuIHJlbHkgb24gdGhlICJraW5kbmVzcyBvZiBzdHJhbmdlcnMiLiBXb3JzdCBjYXNlLCB5b3UgY2FuIGFwcGx5IHRoZSBwYXRjaCB0byB5b3VyIGNvcHkgb2YgU3RydXRzIGFuZCBzdGlsbCB1c2UgdGhlIGZlYXR1cmUgaW4geW91ciBvd24gYXBwbGljYXRpb24uIChXaGljaCBpcyB3aGF0IG9wZW4gc291cmNlIGlzIH5yZWFsbHl+IGFsbCBhYm91dC4pCis8L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9ImhlbHAiIG5hbWU9IldoZXJlIGNhbiBJIGdldCBoZWxwIHdpdGggU3RydXRzPyI+Cis8cD5UaGUgU3RydXRzIHBhY2thZ2UgY29tZXMgY29tcGxldGUgd2l0aCBhCis8YSBocmVmPSIuLi91c2VyR3VpZGUvaW5kZXguaHRtbCI+VXNlcnMgR3VpZGU8L2E+IHRvCitpbnRyb2R1Y2UgcGVvcGxlIHRvIHRoZSBmcmFtZXdvcmsgYW5kIGl0cyB1bmRlcmx5aW5nIHRlY2hub2xvZ2llcy4gVmFyaW91cyBjb21wb25lbnRzCithbHNvIGhhdmUgdGhlaXIgb3duIGluLWRlcHRoIERldmVsb3BlcnMgR3VpZGUsIHRvIGNvdmVyIG1vcmUgYWR2YW5jZWQgdG9waWNzLiBDb21wcmVoZW5zaXZlCis8YSBocmVmPSIuLi9hcGkvaW5kZXguaHRtbCI+SmF2YWRvY3M8L2E+IGFyZSBpbmNsdWRlZAorYWxvbmcgd2l0aCB0aGUgPHN0cm9uZz5mdWxsIHNvdXJjZSBjb2RlPC9zdHJvbmc+LiBGb3IgeW91ciBjb252ZW5pZW5jZSwgdGhlc2UgYXJlIGJ1bmRsZWQgdG9nZXRoZXIgYXMKK2Egc2VsZi1pbnN0YWxsaW5nIGFwcGxpY2F0aW9uLiBUaGUgPGNvZGU+c3RydXRzLWRvY3VtZW50YXRpb24ud2FyPC9jb2RlPiBpcyB0aGUgc2FtZQorYnVuZGxlIHRoYXQgaXMgZGVwbG95ZWQgYXMgdGhlCis8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy8iPlN0cnV0cyBXZWIgc2l0ZTwvYT4uCis8L3A+Cis8cD4KK1RoZQorPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL21haWwuaHRtbCI+U3RydXQncyBtYWlsaW5nIGxpc3Q8L2E+IGlzIGFsc28KK3ZlcnkgYWN0aXZlLCBhbmQgd2VsY29tZXMgcG9zdHMgZnJvbSBuZXcgdXNlcnMuIEJlZm9yZSBwb3N0aW5nIGEgbmV3IHF1ZXN0aW9uLCBiZQorc3VyZSB0byBjb25zdWx0IHRoZQorPGEgaHJlZj0iaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyJTQwamFrYXJ0YS5hcGFjaGUub3JnLyI+Cis8c3Ryb25nPk1BSUxJTkcgTElTVCBBUkNISVZFPC9zdHJvbmc+PC9hPiBhbmQgdGhlIHZlcnkgZXhjZWxsZW50Cis8YSBocmVmPSJodHRwOi8vd3d3LnR1eGVkby5vcmcvfmVzci9mYXFzL3NtYXJ0LXF1ZXN0aW9ucy5odG1sIj4KK0hvdyBUbyBBc2sgUXVlc3Rpb25zIFRoZSBTbWFydCBXYXk8L2E+IGJ5IEVyaWMgUmF5bW9uZC4gUGxlYXNlIGRvIGJlIHN1cmUKK3RvIDxhIGhyZWY9Imh0dHA6Ly9leHBpdGEuY29tL25vbWltZS5odG1sIj50dXJuIG9mZiBIVE1MPC9hPiBpbiB5b3VyCitlbWFpbCBjbGllbnQgYmVmb3JlIHBvc3RpbmcuCis8L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9InN1cHBvcnQiIG5hbWU9IklzIGNvbW1lcmNpYWwgc3VwcG9ydCBhdmFpbGFibGU/Ij4KKzxwPlRoZXJlIGlzIG5vIG9mZmljaWFsLCBjb21tZXJjaWFsIHN1cHBvcnQgZm9yIFN0cnV0cywgdGhvdWdoIHRoaXJkIHBhcnRpZXMgbWF5IG9mZmVyIGRpZmZlcmVudCBkZWdyZWVzIG9mIHN1cHBvcnQuIDwvcD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0icHJvdmlkZXJzIiBuYW1lPSJBcmUgdGhlcmUgSVNQcyB0aGF0IHdpbGwgaG9zdCBteSBTdHJ1dHMgYXBwbGljYXRpb24/Ij4KKzxwPkZvciBhIGxpc3Rpbmcgb2Ygc29tZSBKYXZhIGFuZCBTdHJ1dHMgSVNQcywgdmlzaXQgdGhlIDxhIGhyZWY9Imh0dHA6Ly9zdHJ1dHMuc2YubmV0L2NvbW1uaXR5L2luZGV4Lmh0bWwiPlN0cnV0cyBDb21tdW5pdHkgUmVzb3VyY2VzPC9hPiBhcmVhIG9uIFNvdXJjZUZvcmdlLjwvcD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0idHVyYmluZSIgbmFtZT0iV2hhdCdzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gU3RydXRzIGFuZCBUdXJiaW5lPyBXaGF0J3MgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBTdHJ1dHMgYW5kIEV4cHJlc3NvPyI+Cis8cD4KK0lmIHlvdSBhcmUgc3RhcnRpbmcgZnJvbSBzY3JhdGNoLCBwYWNrYWdlcyBsaWtlCis8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3R1cmJpbmUiPlR1cmJpbmU8L2E+IGFuZAorPGEgaHJlZj0iaHR0cDovL2pjb3Jwb3JhdGUuY29tIj5FeHByZXNzbzwvYT4KK2NhbiBiZSB2ZXJ5IGhlbHBmdWwgc2luY2UgdGhleSB0cnkgdG8gcHJvdmlkZSBhbGwgb2YgdGhlIGJhc2ljIHNlcnZpY2VzIHRoYXQgeW91ciB0ZWFtIGlzIGxpa2VseSB0byBuZWVkLgorU3VjaCBzZXJ2aWNlcyBpbmNsdWRlIHRoaW5ncyBsaWtlIGRhdGEgcGVyc2lzdGVuY2UgYW5kIGxvZ2dpbmcuCis8L3A+Cis8cD4KK0lmIHlvdSBhcmUgbm90IHN0YXJ0aW5nIGZyb20gc2NyYXRjaCwgYW5kIG5lZWQgdG8gaG9vayB1cCB5b3VyIHdlYiBhcHBsaWNhdGlvbiB0byBhbiBleGlzdGluZyBpbmZyYXN0cnVjdHVyZSwgdGhlbiAicGxhaW4gdmFuaWxsYSIgU3RydXRzIGNhbiBiZSBhIGJldHRlciBjaG9pY2UuCitUaGUgY29yZSBTdHJ1dHMgZnJhbWV3b3JrIGRvZXMgbm90IHByZXN1cHBvc2UgdGhhdCB5b3UgYXJlIHVzaW5nIGEgZ2l2ZW4gc2V0IG9mIGRhdGEgcGVyc2lzdGVuY2UsIHByZXNlbnRhdGlvbiwgb3IgbG9nZ2luZyB0b29scy4KK0FueXRoaW5nIGdvZXMgPTowKQorPC9wPgorPHA+CitDb21wYXJlZCB0byBvdGhlciBvZmZlcmluZ3MsIFN0cnV0cyBlbmRlYXZvcnMgdG8gYmUgYSBtaW5pbWFsaXN0IGZyYW1ld29yay4KK1dlIHRyeSBsZXZlcmFnZSBleGlzdGluZyB0ZWNobm9sb2dpZXMgd2hlbmV2ZXIgd2UgY2FuIGFuZCBwcm92aWRlIG9ubHkgdGhlIG1pc3NpbmcgcGllY2VzIHlvdSBuZWVkIHRvIGNvbWJpbmUgZGlzcGFyYXRlIHRlY2hub2xvZ2llcyBpbnRvIGEgY29oZXJlbnQgYXBwbGljYXRpb24uCitUaGlzIGlzIGdyZWF0IHdoZW4geW91IHdhbnQgdG8gc2VsZWN0IHlvdXIgb3duIHRvb2xzIHRvIHVzZSB3aXRoIFN0cnV0cy4KK0J1dCwgaWYgeW91IHByZWZlciBhIG1vcmUgaW50ZWdyYXRlZCBpbmZyYXN0cnVjdHVyZSwgdGhlbiBwYWNrYWdlcyBsaWtlIFR1cmJpbmUgb3IgRXhwcmVzc28gKHdoaWNoIHVzZXMgU3RydXRzKSBhcmUgcGVyZmVjdGx5IGdvb2Qgd2F5cyB0byBnby4KKzwvcD4KKzxwPlNlZSBhbHNvPC9wPgorPHVsPgorPGxpPiZsdDsgPGEgaHJlZj0iaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cwMzIwNi5odG1sIj5odHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzAzMjA2Lmh0bWw8L2E+ICZndDs8L2xpPgorPGxpPiZsdDsgPGEgaHJlZj0iaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL2dlbmVyYWxAamFrYXJ0YS5hcGFjaGUub3JnL21zZzAwNDk1Lmh0bWwiPmh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9nZW5lcmFsQGpha2FydGEuYXBhY2hlLm9yZy9tc2cwMDQ5NS5odG1sPC9hPiAmZ3Q7PC9saT4KKzxsaT4mbHQ7IDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdmVsb2NpdHkveW10ZC95bXRkLmh0bWwiPmh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdmVsb2NpdHkveW10ZC95bXRkLmh0bWw8L2E+ICZndDs8L2xpPgorPC91bD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0idGFnbGlicyIgbmFtZT0iV2h5IGFyZW4ndCB0aGUgU3RydXRzIHRhZ3MgbWFpbnRhaW5lZCBhcyBwYXJ0IG9mIHRoZSBKYWthcnRhIFRhZ2xpYnMgcHJvamVjdD8iPgorPHA+RGV2ZWxvcG1lbnQgb2YgYm90aCBwcm9kdWN0cyBiZWdhbiBhYm91dCB0aGUgc2FtZSB0aW1lLiBMZWFkaW5nIHVwIHRvIHRoZSByZWxlYXNlIG9mIDEuMCwgaXQgd2FzIHRob3VnaHQgYmV0dGVyIHRvIGNvbnRpbnVlIHRvIGRldmVsb3AgdGhlIHRhZ2xpYnMgYWxvbmdzaWRlIHRoZSBjb250cm9sbGVyLiBOb3cgdGhhdCAxLjAgaXMgb3V0LCB0aGUgSmF2YVNlcnZlciBQYWdlcyBTdGFuZGFyZCBUYWdsaWIgaXMgaW4gYWN0aXZlIGRldmVsb3BtZW50LiBPbmNlIHdvcmsgb24gSlNUTCBzdGFiaWxpemVzLCB0aGUgU3RydXRzIHRhZ2xpYnMgd2lsbCBiZSByZXZpc2l0ZWQuIFRhZ3Mgd2hpY2ggYXJlIG5vdCBsaW5rZWQgZGlyZWN0bHkgdG8gdGhlIGZyYW1ld29yayBtYXkgYmUgaG9zdGVkIGF0IEpha2FydGEgVGFnbGlicyBpbnN0ZWFkLjwvcD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0ieGh0bWwiIG5hbWU9IkFyZSB0aGUgU3RydXRzIHRhZ3MgWEhUTUwgY29tcGxpYW50PyI+Cis8cD5JZiB5b3UgdXNlIGFuICZsdDtodG1sOmh0bWwgeGh0bWw9InRydWUmZ3Q7IG9yICZsdDtodG1sOnhodG1sLyZndDsgZWxlbWVudCBvbiB5b3VyIHBhZ2UsIHRoZSB0YWdzCit3aWxsIHJlbmRlciBhcyBYSFRNTCAoc2luY2UgU3RydXRzIDEuMSkuIDwvcD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0id21sIiBuYW1lPSJXaWxsIHRoZSBTdHJ1dHMgdGFncyBzdXBwb3J0IG90aGVyIG1hcmt1cCBsYW5ndWFnZXMgc3VjaCBhcyBXTUwiPgorPHA+CitTdHJ1dHMgaXRzZWxmIGlzIG1hcmt1cCBuZXV0cmFsLiBUaGUgb3JpZ2luYWwgU3RydXRzIHRhZ2xpYnMgYXJlIG9ubHkgb25lIGV4YW1wbGUgb2YgaG93CitwcmVzZW50YXRpb24gbGF5ZXIgY29tcG9uZW50cyBjYW4gYWNjZXNzIHRoZSBmcmFtZXdvcmsuIFRoZSBmcmFtZXdvcmsgb2JqZWN0cyBhcmUgZXhwb3NlZAordGhyb3VnaCB0aGUgc3RhbmRhcmQgYXBwbGljYXRpb24sIHNlc3Npb24sIGFuZCByZXF1ZXN0IGNvbnRleHRzLCB3aGVyZSBhbnkgSmF2YSBjb21wb25lbnQgaW4KK3RoZSBhcHBsaWNhdGlvbiBjYW4gbWFrZSB1c2Ugb2YgdGhlbS4KKzwvcD4KKworPHA+TWFya3VwIGV4dGVuc2lvbnMgdGhhdCB1c2UgU3RydXRzIGFyZSBhdmFpbGFibGUgZm9yCis8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3ZlbG9jaXR5Ij5WZWxvY2l0eTwvYT4gYW5kCis8YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5yb2FkLmNhL29wZW5jb2RlLyI+WExTVDwvYT4sIGFtb25nIG90aGVycy4KK0EgbmV3IFN0cnV0cyB0YWcgbGlicmFyeSBmb3IKKzxhIGhyZWY9IiNqc2YiPkphdmEgU2VydmVyIEZhY2VzPC9hPiBpcyBhbHNvIGluIGRldmVsb3BtZW50LgorPC9wPgorCis8cD5Gb3IgbW9yZSBhYm91dCB1c2luZyBXQVAvV01MIHdpdGggU3RydXRzIHNlZSB0aGUgYXJ0aWNsZQorPGEgaHJlZj0iaHR0cDovL3d3dy5zeXMtY29uLmNvbS9wYmRqL2FyY2hpdmVzMi8wOTA0L2hhbWJvZWNrLyI+CitXQVAgdXAgeW91ciBFQXNlcnZlcjwvYT4uCis8L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9ImpzZiIgbmFtZT0iV2hhdCBhYm91dCBKU1RMIGFuZCBKYXZhU2VydmVyIEZhY2VzPyI+CisgICAgPHA+CisgICAgICAgSlNUTCwgdGhlIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvanNwL2pzdGwvIj4KKyAgICAgICBKYXZhU2VydmVyIFN0YW5kYXJkIFRhZyBMaWJyYXJ5PC9hPiwgaXMgYSBzZXQgb2YgSlNQIHRhZ3MgdGhhdAorICAgICAgIGFyZSBkZXNpZ25lZCB0byBtYWtlIGl0IGVhc2llciB0byBkZXZlbG9wIFdlYiBhcHBsaWNhdGlvbnMuCisgICAgICAgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9qMmVlL2phdmFzZXJ2ZXJmYWNlcy8iPkphdmFTZXJ2ZXIgRmFjZXM8L2E+CisgICAgICAgKEpTRikgaXMgYSBzcGVjaWZpY2F0aW9uIGZvciBhIG5ldyB0ZWNobm9sb2d5IHRoYXQgcHJvbWlzZXMgdG8gbWFrZQorICAgICAgIGl0IGVhc2llciB0byB3cml0ZSBNVkMgYXBwbGljYXRpb25zLCBib3RoIGZvciB0aGUgV2ViIGFuZCBmb3IgdGhlCisgICAgICAgZGVza3RvcC4KKyAgICA8L3A+Cis8cD4KK1RoZSBpbnZlbnRvciBvZiBTdHJ1dHMsIENyYWlnIE1jQ2xhbmFoYW4sIHdhcyBhIG1lbWJlciBvZiB0aGUKK2V4cGVydCBncm91cCBmb3IgdGhlIEphdmFTZXJ2ZXIgU3RhbmRhcmQgVGFnIExpYnJhcnkgKEpTUiAwNTIpIGFuZAoraXMgbm93IHRoZSBzcGVjaWZpY2F0aW9uIGNvLWxlYWQgZm9yIEphdmFTZXJ2ZXIgRmFjZXMgKEpTUiAxMjcpLiBCb3RoCit0ZWNobm9sb2dpZXMgYXJlIGNvbXBsZW1lbnRhcnkgdG8gU3RydXRzLjwvcD4KKzxwPgorVGhlIG1haW5zdGF5IG9mIHRoZSBTdHJ1dHMgZnJhbWV3b3JrIGlzIHRoZSBjb250cm9sbGVyIGNvbXBvbmVudHMsIHdoaWNoCitjYW4gYmUgdXNlZCB3aXRoIGFueSBKYXZhIHByZXNlbnRhdGlvbiB0ZWNobm9sb2d5LiBBcyBuZXcgdGVjaG5vbG9naWVzCitiZWNvbWUgYXZhaWxhYmxlLCBpdCBpcyBjZXJ0YWluIHRoYXQgbmV3ICJnbHVlIiBjb21wb25lbnRzIHdpbGwgYWxzbworYXBwZWFyIHRvIGhlbHAgdGhlc2UgdGVjaG5vbG9naWVzIHdvcmsgYXMgd2VsbCB3aXRoIFN0cnV0cy4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICAgIFN0cnV0cyBvcmlnaW5hbGx5IGNhbWUgYnVuZGxlZCB3aXRoIGEgc2V0IG9mIGN1c3RvbSBKU1AgdGFncy4KKyAgICAgICAgVG9kYXksIHNldmVyYWwgZXh0ZW5zaW9ucyBhcmUgYXZhaWxhYmxlIHRvIGhlbHAKKyAgICAgICAgeW91IHVzZSBTdHJ1dHMgd2l0aCBvdGhlciBwb3B1bGFyIHByZXNlbnRhdGlvbiB0ZWNobm9sb2dpZXMsIGxpa2UKKyAgICAgICAgWFNMVCBhbmQgVmVsb2NpdHkuIExpa2V3aXNlLCBleHRlbnNpb25zIGZvciBKU1RMIGFuZCBKU0YgYXJlIG5vdyBhdmFpbGFibGUgYXMgd2VsbC4KKyAgICA8L3A+Cis8cD4KKyAgICBUaGUgSlNUTCByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gaXMgYXZhaWxhYmxlIHRocm91Z2ggdGhlCisgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy90YWdsaWJzL2RvYy9zdGFuZGFyZC1kb2MvaW50cm8uaHRtbCI+SmFrYXJ0YSBUYWdsaWJzIHNpdGU8L2E+LgorICAgIEEgSlNUTCB0YWdsaWJzIGZvciBTdHJ1dHMsCisgICAgPGEgaHJlZj0iLi4vdXNlckd1aWRlL2J1aWxkaW5nX3ZpZXcuaHRtbCNzdHJ1dHMtZWwiPjxzdHJvbmc+U3RydXRzLUVsPC9zdHJvbmc+PC9hPiwKKyAgICBpcyBhdmFpbGFibGUgYW5kIGRpc3RyaWJ1dGVkIHdpdGggU3RydXRzIGJlZ2lubmluZyB3aXRoIHRoZSAxLjEgcmVsZWFzZS4KKzwvcD4KKyAgICA8cD4KKyAgICAgICAgTWVhbndoaWxlLCB0aGUgSlNGIHNwZWNpZmljYXRpb24gaXMgc3RpbGwgdW5kZXIgZGV2ZWxvcG1lbnQsCisgICAgICAgIGFsdGhvdWdoIGFuIGVhcmx5LXJlbGVhc2UgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZQorICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3dlYnNlcnZpY2VzL2Rvd25sb2FkLmh0bWwiPkphdmEgV2ViIFNlcnZpY2VzIERldmVsb3BlciBQYWNrPC9hPi4KKyAgICAgICAgQW4gZWFybHktcmVsZWFzZSBKYXZhU2VydmVyIEZhY2VzIHRhZ2xpYiBmb3IgU3RydXRzLAorICAgICAgICA8YSBocmVmPSJodHRwOi8vYXJjaGl2ZS5hcGFjaGUub3JnL2Rpc3QvamFrYXJ0YS9zdHJ1dHMvb2xkL3JlbGVhc2Uvc3RydXRzLWZhY2VzLyI+CisgICAgICAgIDxzdHJvbmc+U3RydXRzLUZhY2VzPC9zdHJvbmc+PC9hPiwgaXMgYWxzbyBpbiBlYXJseSByZWxlYXNlIGFuZCBhdmFpbGFibGUKKyAgICAgICAgdGhyb3VnaCB0aGUgbmlnaHRseSBidWlsZC4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICAgIEZvciBtb3JlIGFib3V0IHdoYXQgSmF2YVNlcnZlciBGYWNlcyBtZWFucyB0byB0aGUgU3RydXRzIGNvbW11bml0eSwKKyAgICAgICAgc2VlIHRoZSA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL3N0cnV0cy9TdHJ1dHNNb3JlQWJvdXRKU0YiPgorICAgICAgICBTdHJ1dHNNb3JlQWJvdXRKU0Y8L2E+IHdpa2kgcGFnZS4KKyAgICA8L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9ImlkZSIgbmFtZT0iSXMgdGhlcmUgYSBwYXJ0aWN1bGFybHkgZ29vZCBJREUgdG8gdXNlIHdpdGggU3RydXRzIj4KKzxwPgorU3RydXRzIHNob3VsZCB3b3JrIHdlbGwgd2l0aCBhbnkgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgdGhhdCB5b3Ugd291bGQgbGlrZSB0byB1c2UsIGFzIHdlbGwgYXMgd2l0aCBhbnkgcHJvZ3JhbW1lcnMgZWRpdG9yLiAKK1RoZSBtZW1iZXJzIG9mIHRoZSBTdHJ1dHMgZGV2ZWxvcG1lbnQgdGVhbSBlYWNoIHVzZSB0aGVpciBvd24gdG9vbHMgc3VjaCBhcyAKKzxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy9lbWFjcy5odG1sIj5FbWFjczwvYT4sIAorPGEgaHJlZj0iaHR0cDovL3d3dy5pbnRlbGxpai5jb20vaWRlYS8iPklERUE8L2E+LCAKKzxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5FY2xpcHNlPC9hPiwgCithbmQgPGEgaHJlZj0iaHR0cDovL3d3dy5uZXRiZWFucy5vcmcvIj5OZXRCZWFuczwvYT4uCis8L3A+Cis8cD4KK0F0IHRoaXMgd3JpdGluZywgaW4gdGhlIGZyZWUgem9uZSwgTmV0QmVhbnMgaGFkIHRoZSBlZGdlIHdpdGggSlNQIGVkaXRpbmcsIGJ1dCBFY2xpcHNlIGhhcyBtb3JlIGFkdmFuY2VkIHJlZmFjdG9yaW5nIGZlYXR1cmVzLiAKK0VjbGlwc2UgaXMgYWxzbyBhIGdlbmVyYWwtcHVycG9zZSBJREUgYW5kIGNhbiBiZSB1c2VkIHdpdGggbm9uLUphdmEgcHJvamVjdHMuCitJbiB0aGUgbm9uLWZyZWUgem9uZSwgSURFQSBpcyBoaWdobHkgcmVnYXJkZWQgYnV0IGNvc3RzIG1vbmV5LiAoT2YgY291cnNlLCBpZiAqeW91KiBjb3N0IG1vbmV5LCBnb29kIHRvb2xzIGFyZSBvZnRlbiBhIGdvb2QgaW52ZXN0bWVudC4pCis8L3A+Cis8cD4KK1NlZSB0aGUgPGEgaHJlZj0iLi4vZmFxcy9pbmRleC5odG1sIj5Ib3d0byBHdWlkZXM8L2E+IGZvciBtb3JlIGFib3V0IGNvbmZpZ3VyaW5nIElERXMgdG8gd29yayB3aXRoIFN0cnV0cy4KKzwvcD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0iZGlnZXN0IiBuYW1lPSJJcyB0aGVyZSBhIGRpZ2VzdCBmb3IgdGhlIFVzZXIgbGlzdD8iPgorPHA+CitZZXMuIDxhIGhyZWY9Im1haWx0bzpzdHJ1dHMtdXNlci1kaWdlc3Qtc3Vic2NyaWJlQGpha2FydGEuYXBhY2hlLm9yZyI+c2VuZCBhIGJsYW5rIG1lc3NhZ2U8L2E+IHRvICZsdDsgPGEgaHJlZj0ibWFpbHRvOnN0cnV0cy11c2VyLWRpZ2VzdC1zdWJzY3JpYmVAamFrYXJ0YS5hcGFjaGUub3JnIj5zdHJ1dHMtdXNlci1kaWdlc3Qtc3Vic2NyaWJlQGpha2FydGEuYXBhY2hlLm9yZzwvYT4mZ3Q7LgorPC9wPgorPHA+CitJZiB5b3UgYXJlIHN1YnNjcmliZWQgdG8gdGhlIGRpZ2VzdCwgeW91IGNhbiBhbHNvIHBvc3QgdG8gdGhlIGxpc3QuCitKdXN0IGJlIHN1cmUgdG8gc2VuZCB5b3VyIHBvc3QgdG8gdGhlCis8YSBocmVmPSJtYWlsdG86c3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnIj51c2VyIGxpc3Q8L2E+IHJhdGhlciB0aGFuIHRyeWluZyB0byByZXBseSB0byB0aGUgZGlnZXN0LgorPC9wPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJuZXdzZ3JvdXAiIG5hbWU9IklzIHRoZXJlIGEgU3RydXRzIG5ld3Nncm91cD8iPgorPHA+CitOb3QgYSB1c2VuZXQgZ3JvdXAsIGJ1dCB0aGUgU3RydXRzIFVzZXIgbGlzdCBjYW4gYmUgYWNjZXNzZWQgd2l0aCB5b3VyCitmYXZvcml0ZSBuZXdzZ3JvdXAgcmVhZGVyIGZyb20gdGhlCis8YSBocmVmPSJodHRwOi8vbmV3cy5nbWFuZS5vcmcvIj5HTWFuZSBOZXdzIFNpdGU8L2E+LiAgU3Vic2NyaWJlIHRvIGdyb3VwcworPGNvZGU+Z21hbmUuY29tcC5qYWthcnRhLnN0cnV0cy5kZXZlbDwvY29kZT4gZm9yIHRoZSBkZXZlbG9wZXIgbGlzdCwgb3IKKzxjb2RlPmdtYW5lLmNvbXAuamFrYXJ0YS5zdHJ1dHMudXNlcjwvY29kZT4gZm9yIHRoZSB1c2VyIGxpc3QuCis8L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9Im1haWxib3VuY2UiIG5hbWU9IldoeSBkaWRuJ3QgbXkgcG9zdGluZyBzaG93IHVwIG9uIHRoZSB1c2VyIGxpc3Q/Ij4KKzxwPgorWW91IG11c3QgYmUgc3Vic2NyaWJlZCB0byB0aGUgPGEgaHJlZj0ibWFpbHRvOnN0cnV0cy11c2VyLXN1YnNjcmliZUBqYWthcnRhLmFwYWNoZS5vcmciPnVzZXIgbGlzdDwvYT4KK29yIDxhIGhyZWY9Im1haWx0bzpzdHJ1dHMtdXNlci1kaWdlc3Qtc3Vic2NyaWJlQGpha2FydGEuYXBhY2hlLm9yZyI+dXNlciBkaWdlc3Q8L2E+IGJlZm9yZSBwb3N0aW5nCisob3IgdXNlIHRoZSA8YSBocmVmPSJodHRwOi8vbmV3cy5nbWFuZS5vcmciPkdNYW5lIE5ld3Nncm91cHM8L2E+IGluc3RlYWQpLgorPC9wPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJ1bnN1YnNjcmliZSIgbmFtZT0iSG93IGRvIEkgdW5zdWJzY3JpYmUgZnJvbSB0aGUgbWFpbGluZyBsaXN0PyI+Cis8cD4KKzxzdHJvbmc+RnJvbSB0aGUgZW1haWwgYWNjb3VudCB1c2VkIHRvIHN1YnNjcmliZSB0byB0aGUgbGlzdCw8L3N0cm9uZz4gPGEgaHJlZj0ibWFpbHRvOnN0cnV0cy11c2VyLXVuc3Vic2NyaWJlQGpha2FydGEuYXBhY2hlLm9yZyI+c2VuZCBhIGJsYW5rIG1lc3NhZ2U8L2E+IHRvICZsdDsgPGEgaHJlZj0ibWFpbHRvOnN0cnV0cy11c2VyLXVuc3Vic2NyaWJlQGpha2FydGEuYXBhY2hlLm9yZyI+c3RydXRzLXVzZXItdW5zdWJzY3JpYmVAamFrYXJ0YS5hcGFjaGUub3JnPC9hPiZndDsuCis8L3A+Cis8cD4KK0lmIHlvdSBhcmUgcmVjZWl2aW5nIHRoZSBkaWdlc3QsIHlvdSBtdXN0IHNlbmQgYSBibGFuayBlbWFpbCB0bworJmx0OzxhIGhyZWY9Im1haWx0bzpzdHJ1dHMtdXNlci1kaWdlc3QtdW5zdWJzY3JpYmVAamFrYXJ0YS5hcGFjaGUub3JnIj5zdHJ1dHMtdXNlci11bnN1YnNjcmliZUBqYWthcnRhLmFwYWNoZS5vcmc8L2E+Jmd0OworaW5zdGVhZC4KKzwvcD4KKzwvc2VjdGlvbj4KKworPC9ib2R5PjwvZG9jdW1lbnQ+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL25ldGJlYW5zLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ZhcXMvbmV0YmVhbnMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3MzBiYzEKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL25ldGJlYW5zLnhtbApAQCAtMCwwICsxLDIyOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+CisKKzxkb2N1bWVudCB1cmw9Ii4vc3NsLnhtbCI+CisKKzxwcm9wZXJ0aWVzPgorCisKKzx0aXRsZT5Ib3cgdG8gc2V0dXAgYSBiYXNpYyBTdHJ1dHMgcHJvamVjdCB1c2luZyBOZXRiZWFucyBJREUgLSBBcGFjaGUgU3RydXRzPC90aXRsZT4KKworPC9wcm9wZXJ0aWVzPgorCis8Ym9keT4KKworPHNlY3Rpb24gaHJlZj0ibmV0YmVhbnMiIG5hbWU9IkhvdyB0byBzZXR1cCBhIGJhc2ljIFN0cnV0cyBwcm9qZWN0IHVzaW5nIE5ldGJlYW5zIElERSIvPgorPHNlY3Rpb24gbmFtZT0iTGVnYWwgRGlzY2xhbWVyIj4KKworUGxlYXNlIHJlYWQgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL2lkZWRldmVsb3BlcnMuaHRtbCI+dGhpczwvYT4gZmlyc3QuPGJyLz4KKzxwPgorKiBESVNDTEFJTUVSIC0gVGhpcyBzaW1wbGUgSG93LVRvIHNob3dzIHlvdSBvbmUgb2YgbWFueSB3YXlzIHRvIHNldHVwIGEgd29ya2luZyBwcm9qZWN0IHVzaW5nPGJyLz4KK3RoZSBTdHJ1dHMgZnJhbWV3b3JrLiAgVGhpcyBpcyBtYWlubHkgZ2VhcmVkIHRvd2FyZCBzdHJ1dHMgdXNlcnMgd2hvIGFyZSBuZXcgdG8gTmV0YmVhbnMsIGFuZDxici8+IAorZG9uJ3Qgd2FudCB0byBzcGVuZCBhIGxvdCBvZiB0aW1lIGZpZ3VyaW5nIG91dCB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGVpciBvbGQgSURFIChpZiBhbnkpPGJyLz4KK2FuZCB0aGlzIG9uZS48YnIvPgorPGJyLz4KK0kgd2lsbCBhbHNvIGFwb2xvZ2l6ZSBhaGVhZCBvZiB0aW1lIGZvciB0aGUgZm9ybWF0dGluZyBvZiB0aGlzIHBhZ2UuPGJyLz4KKzwvcD4KKzxici8+CitJbiB0aGlzIEhvdy1UbywgSSB3aWxsIGRlbW9uc3RyYXRlICh1c2luZyBOZXRiZWFucyAzLjQpIGhvdyB0byBzZXR1cCwgY29tcGlsZSwgYW5kIGJ1aWxkCithIGN1c3RvbWl6ZWQgdmVyc2lvbiBvZiB0aGUgc3RydXRzLWV4YW1wbGUuPGJyLz4gCis8L3NlY3Rpb24+CisKKworPHNlY3Rpb24gbmFtZT0iTGV0J3MgZ2V0IHN0YXJ0ZWQiPgorPG9sPgorIDxsaT4KKyAgQ3JlYXRlIGEgbmV3IHByb2plY3QuPGJyLz4KKyAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL25ldGJlYW5zL2NyZWF0aW5nLXByb2plY3QzLmpwZyI+PC9pbWc+PGJyLz48YnIvPjxici8+CisgIDxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2hvdy10by9uZXRiZWFucy9jcmVhdGluZy1wcm9qZWN0NC5qcGciPjwvaW1nPjxici8+PGJyLz48YnIvPgorICA8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9ob3ctdG8vbmV0YmVhbnMvY3JlYXRpbmctcHJvamVjdDUuanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL25ldGJlYW5zL2NyZWF0aW5nLXByb2plY3Q2LmpwZyI+PC9pbWc+PGJyLz48YnIvPjxici8+CisgIDxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2hvdy10by9uZXRiZWFucy9jcmVhdGluZy1wcm9qZWN0OC5qcGciPjwvaW1nPjxici8+PGJyLz48YnIvPgorICA8L2xpPgorIDxsaT4KKyAgTm93IGxldCdzIGNyZWF0ZSAob3IgcmV1c2UpIGEgZGlyZWN0b3J5IHRvIGhvbGQgdGhlIHByb2plY3QuCisgIFdoYXQgSSBkaWQgd2FzIGNvcHkgdGhlIHN0cnV0cy1leGFtcGxlLndhciBmcm9tIHRoZSBTdHJ1dHMgZGlzdHJpYnV0aW9uCisgIGFuZCBleHRyYWN0ZWQgaXQgKHVzaW5nIFdpbnppcCkgbGlrZSB0aGlzOgorICA8YnIvPgorICA8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9ob3ctdG8vbmV0YmVhbnMvZGlyZWN0b3J5LmpwZyI+PC9pbWc+PGJyLz48YnIvPjxici8+CisgIDwvbGk+CisgPGxpPgorICBOZXh0IHdlIG5lZWQgdG8gY3JlYXRlIGEgYnVpbGQueG1sIHRvIGJ1aWxkIG91ciBwcm9qZWN0LiAgVGhpcyBmaWxlIHdpbGwgc2l0IGluIHRoZSByb290PGJyLz4KKyAgZGlyZWN0b3J5IG9mIHlvdXIgcHJvamVjdC4gKEFjdHVhbGx5LCBpdCBkb2Vzbid0IG1hdHRlciB3aGVyZSBzaXRzIHNvIGxvbmcgYXMgeW91IG1ha2UgPGJyLz4KKyAgdGhlIGFwcHJvcHJpYXRlIGNoYW5nZXMgdG8gZGlyZWN0b3JpZXMgYW5kIHN1Y2guKTxici8+CisgIDxici8+CisgICpOb3RlIC0gSSB3aWxsIG5vdCBzcGVuZCBhbnkgdGltZSBoZXJlIHRyeWluZyB0byBjb252aW5jZSB5b3Ugd2h5IHlvdSBzaG91bGQgYmUgPGJyLz4KKyAgdXNpbmcgQW50IHRvIGJ1aWxkIHlvdXIgcHJvamVjdHMuICBJIGd1ZXNzIEkgY29uc2lkZXIgdGhpcyB0byBiZSBvYnZpb3VzLjxici8+CisgIEhlcmUgaXMgdGhlIGJ1aWxkLnhtbCBmaWxlIEkgdXNlIGZvciB0aGlzIGRlbW9uc3RyYXRpb24gKHlvdSBNVVNUIG1vZGlmeSB0aGlzIDxici8+CisgIHRvIHVzZSB5b3VyIGVudmlyb25tZW50KTo8YnIvPgorICA8cHJlPgorICAKKyAgJmx0O3Byb2plY3QgbmFtZT0iU3RydXRzIEV4YW1wbGUiIGRlZmF1bHQ9Im1haW4iIGJhc2VkaXI9Ii4iJmd0OworICAKKyAgICAmbHQ7IS0tICBUaGlzIGlzIGEgYmFzaWMgYnVpbGQgc2NyaXB0LCBvbmx5IHRoZSBtaW5pbXVtcyBoZXJlIC0tJmd0OworICAgIAorICAgICZsdDshLS0gVGVsbCBhbnQgdG8gdXNlIG15IGVudmlyb25tZW50IHZhcmlhYmxlcyAtLSZndDsKKyAgICAmbHQ7cHJvcGVydHkgZW52aXJvbm1lbnQ9ImVudiIvJmd0OworICAKKyAgICAmbHQ7cHJvcGVydHkgZmlsZT0iLi9idWlsZC5wcm9wZXJ0aWVzIi8mZ3Q7CisgIAorICAgICAgJmx0O3Byb3BlcnR5IG5hbWU9ImJ1aWxkLmNvbXBpbGVyIiAgICAgdmFsdWU9Im1vZGVybiIvJmd0OworICAgICAgJmx0O3Byb3BlcnR5IG5hbWU9ImJ1aWxkLmRpciIgICAgICAgICAgdmFsdWU9Ii4vV0VCLUlORi9jbGFzc2VzIiAvJmd0OworICAgICAgJmx0O3Byb3BlcnR5IG5hbWU9InNyYy5kaXIiICAgICAgICAgICAgdmFsdWU9Ii4vV0VCLUlORi9zcmMiLyZndDsKKyAgICAmbHQ7cHJvcGVydHkgbmFtZT0ic2VydmxldC5qYXIiICAgICAgICB2YWx1ZT0iL0FwYWNoZV9Ib21lL2pha2FydGEtc2VydmxldGFwaS00L2xpYi9zZXJ2bGV0LmphciIvJmd0OworICAgICAgJmx0O3Byb3BlcnR5IG5hbWU9Indhci5maWxlIiAgICAgICAgICAgICAgdmFsdWU9InN0cnV0cy1leGFtcGxlIi8mZ3Q7CisgICAgICAmbHQ7cHJvcGVydHkgbmFtZT0id2FyLmZpbGUubmFtZSIgICAgICB2YWx1ZT0iJHt3YXIuZmlsZX0ud2FyIi8mZ3Q7CisgICAgICAmbHQ7cHJvcGVydHkgbmFtZT0idG9tY2F0LmhvbWUiICAgICAgIHZhbHVlPSIke2Vudi5DQVRBTElOQV9IT01FfSIvJmd0OworICAgICAgJmx0O3Byb3BlcnR5IG5hbWU9ImRlcGxveS5kaXIiICAgICAgICAgdmFsdWU9IiR7dG9tY2F0LmhvbWV9L3dlYmFwcHMiLyZndDsKKyAgCisgICAgJmx0O3BhdGggaWQ9InByb2plY3QuY2xhc3MucGF0aCImZ3Q7CisgICAgICAgICZsdDtmaWxlc2V0IGRpcj0iLi9XRUItSU5GL2xpYi8iJmd0OworICAgICAgICAgICAgJmx0O2luY2x1ZGUgbmFtZT0iKiovKi5qYXIiLyZndDsKKyAgICAgICAgJmx0Oy9maWxlc2V0Jmd0OworICAgICAgICAmbHQ7cGF0aGVsZW1lbnQgcGF0aD0iJHtzcmMuZGlyfSIvJmd0OworICAgICAgICAmbHQ7cGF0aGVsZW1lbnQgcGF0aD0iJHtzZXJ2bGV0Lmphcn0iLyZndDsKKyAgICAmbHQ7L3BhdGgmZ3Q7CisgIAorICAgICAgJmx0O3RhcmdldCBuYW1lPSJjbGVhbiImZ3Q7CisgICAgICAgICAgJmx0O2RlbGV0ZSBkaXI9IiR7YnVpbGQuZGlyfSIgaW5jbHVkZUVtcHR5RGlycz0idHJ1ZSIgLyZndDsKKyAgICAgICZsdDsvdGFyZ2V0Jmd0OworICAKKyAgCisgICAgICAmbHQ7dGFyZ2V0IG5hbWU9InByZXAiJmd0OworICAgICAgICAgICZsdDtta2RpciBkaXI9IiR7YnVpbGQuZGlyfSIvJmd0OworICAgICAgJmx0Oy90YXJnZXQmZ3Q7CisgIAorICAgICAgJmx0O3RhcmdldCBuYW1lPSJjb21waWxlIiZndDsKKyAgICAgICAgJmx0O2phdmFjICAgc3JjZGlyPSIke3NyYy5kaXJ9IgorICAgICAgICAgICAgICAgICAgICBkZXN0ZGlyPSIke2J1aWxkLmRpcn0iCisgICAgICAgICAgICAgICAgICAgIGRlYnVnPSJvbiIKKyAgICAgICAgICAgICAgICBkZXByZWNhdGlvbj0ib24iJmd0OworICAgICAgICAgICZsdDtpbmNsdWRlIG5hbWU9IioqLyouamF2YSIvJmd0OworICAgICAgICAgICZsdDtjbGFzc3BhdGggcmVmaWQ9InByb2plY3QuY2xhc3MucGF0aCIvJmd0OworICAgICAgICAmbHQ7L2phdmFjJmd0OworICAgICAgJmx0Oy90YXJnZXQmZ3Q7CisgIAorICAgICAgJmx0O3RhcmdldCBuYW1lPSJjbGVhbldlYkFwcCImZ3Q7CisgICAgICAgICZsdDtkZWxldGUgZmlsZT0iJHtkZXBsb3kuZGlyfS8ke3dhci5maWxlLm5hbWV9IiAvJmd0OworICAgICAgICAgICZsdDtkZWxldGUgIGRpcj0iJHtkZXBsb3kuZGlyfS8ke3dhci5maWxlfSIgaW5jbHVkZUVtcHR5RGlycz0idHJ1ZSIgLyZndDsKKyAgICAgICZsdDsvdGFyZ2V0Jmd0OworICAKKyAgICAgICZsdDt0YXJnZXQgbmFtZT0id2FyIiZndDsKKyAgICAgICAgICAmbHQ7d2FyIHdhcmZpbGU9IiR7d2FyLmZpbGUubmFtZX0iIHdlYnhtbD0iLi9XRUItSU5GL3dlYi54bWwiJmd0OworICAgICAgICAgICAgICAgICAmbHQ7ZmlsZXNldCBkaXI9Ii4vIiBpbmNsdWRlcz0iKiovKi4qIiBleGNsdWRlcz0iKi53YXIsICoqLyoubmJhdHRycywgd2ViLnhtbCwgKiovV0VCLUlORi8qKi8qLiosICoqL3Byb2plY3QtZmlsZXMvKiovKi4qIi8mZ3Q7CisgICAgICAgICAgICAgICAgICZsdDt3ZWJpbmYgIGRpcj0iLi9XRUItSU5GIiAgICBpbmNsdWRlcz0iKiovKiIgZXhjbHVkZXM9IndlYi54bWwsICoqLyouamFyLCAqKi8qLmNsYXNzIi8mZ3Q7CisgICAgICAgICAgICAgICAgICZsdDtsaWIgICAgIGRpcj0iLi9XRUItSU5GL2xpYiIvJmd0OworICAgICAgICAgICAgICAgICAmbHQ7Y2xhc3NlcyBkaXI9IiR7YnVpbGQuZGlyfSIgaW5jbHVkZXM9IioqLyoucHJvcGVydGllcyIgLyZndDsKKyAgICAgICAgICAmbHQ7L3dhciZndDsKKyAgICAgICZsdDsvdGFyZ2V0Jmd0OworICAKKyAgICAgICZsdDt0YXJnZXQgbmFtZT0iZGVwbG95IiZndDsKKyAgICAgICAgICAmbHQ7Y29weSB0b2Rpcj0iJHtkZXBsb3kuZGlyfSImZ3Q7CisgICAgICAgICAgICAmbHQ7ZmlsZXNldCBkaXI9Ii4vIiBpbmNsdWRlcz0iJHt3YXIuZmlsZS5uYW1lfSIvJmd0OworICAgICAgICAgICZsdDsvY29weSZndDsKKyAgICAgICZsdDsvdGFyZ2V0Jmd0OworIAorICAgICZsdDt0YXJnZXQgbmFtZT0ibWFpbiIgZGVwZW5kcz0iY2xlYW4sIHByZXAsIGNsZWFuV2ViQXBwLCBjb21waWxlLCB3YXIiLyZndDsKKyAgCisgICZsdDsvcHJvamVjdCZndDsKKyAgCisgIDwvcHJlPgorICA8L2xpPgorICA8bGk+CisgIEJ1aWxkIHRoZSBwcm9qZWN0IHVzaW5nIEFudCBmcm9tIHRoZSBjb21tYW5kIGxpbmUuPGJyLz4KKyAgSGVyZSdzIHdoYXQgSSBnZXQ6CisgIAorICA8cHJlPgorICAKKyAgQzpccGVyc29uYWxcZGV2ZWxvcG1lbnRcUHJvamVjdHNcc3RydXRzLWV4YW1wbGVzXHN0cnV0cy1leGFtcGxlPmFudAorICBCdWlsZGZpbGU6IGJ1aWxkLnhtbAorICAKKyAgY2xlYW46CisgICAgIFtkZWxldGVdIERlbGV0aW5nIGRpcmVjdG9yeSBDOlxwZXJzb25hbFxkZXZlbG9wbWVudFxQcm9qZWN0c1xzdHJ1dHMtZXhhbXBsZXNcc3RydXRzLWV4YW1wbGVcV0VCLUlORlxjbGFzc2VzCisgIAorICBwcmVwOgorICAgICAgW21rZGlyXSBDcmVhdGVkIGRpcjogQzpccGVyc29uYWxcZGV2ZWxvcG1lbnRcUHJvamVjdHNcc3RydXRzLWV4YW1wbGVzXHN0cnV0cy1leGFtcGxlXFdFQi1JTkZcY2xhc3NlcworICAKKyAgY2xlYW5XZWJBcHA6CisgICAgIFtkZWxldGVdIERlbGV0aW5nOiBDOlxBcGFjaGVfSG9tZVxqYWthcnRhLXRvbWNhdC00LjAuNlx3ZWJhcHBzXHN0cnV0cy1leGFtcGxlLndhcgorICAgICBbZGVsZXRlXSBEZWxldGluZyBkaXJlY3RvcnkgQzpcQXBhY2hlX0hvbWVcamFrYXJ0YS10b21jYXQtNC4wLjZcd2ViYXBwc1xzdHJ1dHMtZXhhbXBsZQorICAKKyAgY29tcGlsZToKKyAgICAgIFtqYXZhY10gQ29tcGlsaW5nIDIyIHNvdXJjZSBmaWxlcyB0byBDOlxwZXJzb25hbFxkZXZlbG9wbWVudFxQcm9qZWN0c1xzdHJ1dHMtZXhhbXBsZXNcc3RydXRzLWV4YW1wbGVcV0VCLUlORlxjbGFzc2VzCisgICAgICBbamF2YWNdIEM6XHBlcnNvbmFsXGRldmVsb3BtZW50XFByb2plY3RzXHN0cnV0cy1leGFtcGxlc1xzdHJ1dHMtZXhhbXBsZVxXRUItSU5GXHNyY1xvcmdcYXBhY2hlXHN0cnV0c1x3ZWJhcHBcZXhhbXBsZVxtZW1vcnlcTWVtb3J5RGF0YWJhc2VQbHVnSW4uamF2YTo3ODogd2FybmluZzogb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFwcGxpY2F0aW9uQ29uZmlnIGluIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyBoYXMgYmVlbiBkZXByZWNhdGVkCisgICAgICBbamF2YWNdIGltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQXBwbGljYXRpb25Db25maWc7CisgICAgICBbamF2YWNdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgW2phdmFjXSBDOlxwZXJzb25hbFxkZXZlbG9wbWVudFxQcm9qZWN0c1xzdHJ1dHMtZXhhbXBsZXNcc3RydXRzLWV4YW1wbGVcV0VCLUlORlxzcmNcb3JnXGFwYWNoZVxzdHJ1dHNcd2ViYXBwXGV4YW1wbGVcbWVtb3J5XE1lbW9yeURhdGFiYXNlUGx1Z0luLmphdmE6MTg1OiB3YXJuaW5nOiBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQXBwbGljYXRpb25Db25maWcgaW4gb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIGhhcyBiZWVuIGRlcHJlY2F0ZWQKKyAgICAgIFtqYXZhY10gICAgIHB1YmxpYyB2b2lkIGluaXQoQWN0aW9uU2VydmxldCBzZXJ2bGV0LCBBcHBsaWNhdGlvbkNvbmZpZyBjb25maWcpCisgICAgICBbamF2YWNdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgW2phdmFjXSBDOlxwZXJzb25hbFxkZXZlbG9wbWVudFxQcm9qZWN0c1xzdHJ1dHMtZXhhbXBsZXNcc3RydXRzLWV4YW1wbGVcV0VCLUlORlxzcmNcb3JnXGFwYWNoZVxzdHJ1dHNcd2ViYXBwXGV4YW1wbGVcbWVtb3J5XE1lbW9yeURhdGFiYXNlUGx1Z0luLmphdmE6MTg1OiB3YXJuaW5nOiBpbml0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BcHBsaWNhdGlvbkNvbmZpZykgaW4gb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlBsdWdJbiBoYXMgYmVlbiBkZXByZWNhdGVkCisgICAgICBbamF2YWNdICAgICBwdWJsaWMgdm9pZCBpbml0KEFjdGlvblNlcnZsZXQgc2VydmxldCwgQXBwbGljYXRpb25Db25maWcgY29uZmlnKQorICAgICAgW2phdmFjXSAgICAgICAgICAgICAgICAgXgorICAgICAgW2phdmFjXSBDOlxwZXJzb25hbFxkZXZlbG9wbWVudFxQcm9qZWN0c1xzdHJ1dHMtZXhhbXBsZXNcc3RydXRzLWV4YW1wbGVcV0VCLUlORlxzcmNcb3JnXGFwYWNoZVxzdHJ1dHNcd2ViYXBwXGV4YW1wbGVcbWVtb3J5XE1lbW9yeURhdGFiYXNlUGx1Z0luLmphdmE6MTg1OiB3YXJuaW5nOiBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQXBwbGljYXRpb25Db25maWcgaW4gb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIGhhcyBiZWVuIGRlcHJlY2F0ZWQKKyAgICAgIFtqYXZhY10gICAgIHB1YmxpYyB2b2lkIGluaXQoQWN0aW9uU2VydmxldCBzZXJ2bGV0LCBBcHBsaWNhdGlvbkNvbmZpZyBjb25maWcpCisgICAgICBbamF2YWNdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICAgW2phdmFjXSA0IHdhcm5pbmdzCisgIAorICB3YXI6CisgICAgICAgIFt3YXJdIEJ1aWxkaW5nIHdhcjogQzpccGVyc29uYWxcZGV2ZWxvcG1lbnRcUHJvamVjdHNcc3RydXRzLWV4YW1wbGVzXHN0cnV0cy1leGFtcGxlXHN0cnV0cy1leGFtcGxlLndhcgorICAKKyAgbWFpbjoKKyAgCisgIEJVSUxEIFNVQ0NFU1NGVUwKK1RvdGFsIHRpbWU6IDExIHNlY29uZHMKKyAgPC9wcmU+ICAKKyAgPGJyLz4KKyA8L2xpPgorIDxsaT4KKyAgSWYgaXQgZGlkIG5vdCBidWlsZCBmb3IgeW91LCB2ZXJpZnkgdGhhdCB0aGUgZXh0ZXJuYWwgamFycyAoZXh0ZXJuYWwgdG8gdGhpcyBwcm9qZWN0KSBhcmUgCisgIHNwZWNpZmllZCBjb3JyZWN0bHkuPGJyLz4KKyAgPC9saT4KKyAgPGxpPgorICBOb3cgd2UgY2FuIGZpbmlzaCBzZXR0aW5nIHVwIG91ciBOZXRiZWFucyBwcm9qZWN0PGJyLz48YnIvPgorICBNb3VudCB0aGUgZGlyZWN0b3J5IHdoZXJlIHdlIGV4dHJhY3RlZCB0aGUgZXhhbXBsZSBhbmQgd2hlcmUgd2UgcmFuIHRoZSBidWlsZDo8YnIvPgorICA8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9ob3ctdG8vbmV0YmVhbnMvYnVpbGRpbmcxLmpwZyI+PC9pbWc+PGJyLz48YnIvPjxici8+CisgIDxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2hvdy10by9uZXRiZWFucy9idWlsZGluZzIuanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgPC9saT4KKyAgPGxpPgorICBJZiBzcGVjaWZpZWQgY29ycmVjdGx5LCBOZXRiZWFucyB3aWxsIHBhcnNlIHRoZSBidWlsZC54bWwgYXV0b21hdGljYWxseSBhbmQgd2lsbCB1c2UgPGJyLz4KKyAgKG1vdW50IGphcnMpIHRoZSByZXNvdXJjZXMgdGhhdCB5b3UndmUgZGVjbGFyZWQgZm9yIGJ1aWxkaW5nLjxici8+CisgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL25ldGJlYW5zL2J1aWxkaW5nMy5qcGciPjwvaW1nPjxici8+PGJyLz48YnIvPgorICA8L2xpPgorICA8bGk+CisgICAgSSB1c3VhbGx5IGdldCByaWQgb2YgdGhlIGFkZGl0aW9uYWwgbW91bnRlZCBkaXJlY3RvcnkgdW5kZXIgL1dFQi1JTkYvY2xhc3Nlcy4gIDxici8+CisgICAgU2luY2UgZXZlcnl0aGluZyB0aGVyZSBnZXRzIG92ZXJ3cml0dGVuIHdpdGggZWFjaCBidWlsZCwgSSBkb24ndCB1c3VhbGx5IG5lZWQgdG88YnIvPiAKKyAgICBzZWUgdGhpcyAob3IgcG9zc2libHkgbWFrZSBjaGFuZ2VzIGluIHRoZSB3cm9uZyBwbGFjZSk8YnIvPgorICAgIDxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2hvdy10by9uZXRiZWFucy9idWlsZGluZzQuanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgPC9saT4KKyAgPGxpPgorICAgIEluIG9yZGVyIGZvciBOZXRiZWFucyB0byB1bmRlcnN0YW5kIHRoZSBwYWNrYWdlIHN0cnVjdHVyZSBmb3Igb3VyIHNvdXJjZSBjb2RlLCB3ZSBuZWVkPGJyLz4KKyAgICB0byBtb3VudCBhbGwgc291cmNlIGRpcmVjdG9yaWVzIGRpcmVjdGx5LiAgPGJyLz48YnIvPgorICAgICpOb3RlIC0gU29tZSBJREVzIHdpbGwgZG8gdGhpcyBhdXRvbWF0aWNhbGx5IDxici8+CisgICAgKEVjbGlwc2UpIG9yIGNhbiBiZSBjb25maWd1cmVkIGZyb20gdGhlIHByb2plY3QgY29uZmlnIGZpbGUgKEpCdWlsZGVyKTxici8+CisgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL25ldGJlYW5zL2J1aWxkaW5nNS5qcGciPjwvaW1nPjxici8+PGJyLz48YnIvPgorICAgIDxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2hvdy10by9uZXRiZWFucy9idWlsZGluZzYuanBnIj48L2ltZz48YnIvPjxici8+PGJyLz4KKyAgPC9saT4KKyAgPGxpPgorICAgIFVzZSB5b3VyIHNvdXJjZSBtb3VudCBwb2ludCB0byBhZGQvZWRpdC9kZWxldGUgeW91ciAuamF2YSBmaWxlczxici8+CisgICAgPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvaG93LXRvL25ldGJlYW5zL2J1aWxkaW5nNy5qcGciPjwvaW1nPjxici8+PGJyLz48YnIvPgorICA8L2xpPgorICA8bGk+CisgICAgVXNpbmcgdGhlIGluaXRpYWwgbW91bnQgcG9pbnQsIGV4cGFuZCB1bnRpbCB5b3UgY2FuIHJpZ2h0LWNsaWNrIG9uIHRoZSBidWlsZC54bWwgZmlsZSAob3Igb25lPGJyLz4KKyAgICBvZiB0aGUgdGFyZ2V0cykgYW5kIGJ1aWxkIHRoZSBwcm9qZWN0PGJyLz4KKyAgICA8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9ob3ctdG8vbmV0YmVhbnMvYnVpbGRpbmc4LmpwZyI+PC9pbWc+PGJyLz48YnIvPjxici8+CisgIDwvbGk+CisgIDxsaT4KKyAgICBJZiB5b3UgcmVjZWl2ZSBlcnJvcnMgZnJvbSBOZXRiZWFucyAoY2hva2luZyBvbiB0aGUgWE1MIHBhcnNlKSwgZG9uJ3Qgd29ycnksIEkgZGlkIHRvby48YnIvPgorICAgIEkgYWx3YXlzIGNhbGwgYW50IG9uIHRoZSBjb21tYW5kIGxpbmUgYW55d2F5LCBzbyBJIGRvbid0IHdvcnJ5IHRvbyBtdWNoIGFib3V0IHRoZSBJREUncyA8YnIvPgorICAgIGludGVybmFsIFhNTCBqYXJzLjxici8+CisgICAgPCEtLVs6VE9ETzpdIGZpbmlzaCB0aGlzIHNlY3Rpb24gd2l0aCBzb2x1dGlvbiB0byBOZXRiZWFucyBhbnQveG1sIGluY29tcGF0aWJpbGl0eSB3b2VzLS0+PGJyLz4KKyAgICA8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9ob3ctdG8vbmV0YmVhbnMvYnVpbGRpbmc4LmpwZyI+PC9pbWc+PGJyLz48YnIvPjxici8+CisgIDwvbGk+CisgIDxsaT4KKyAgICBGZWVsIGZyZWUgdG8gY2hhbmdlIHRoZSBjb2RlIGFzIHlvdSBsaWtlLCBhbmQgdGhlbiBidWlsZCBhbmQgZGVwbG95IHlvdXIgbmV3IGFwcC4KKyAgPC9saT4KKyAgCis8L29sPgorCis8L3NlY3Rpb24+Cis8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZmFxcy9uZXdiaWUueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZmFxcy9uZXdiaWUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0NmY5MGMKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL25ld2JpZS54bWwKQEAgLTAsMCArMSwxMzE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Ii4vbmV3YmllLnhtbCI+Cis8cHJvcGVydGllcz4KKzx0aXRsZT5OZXdiaWUgRkFRIC0gQXBhY2hlIFN0cnV0czwvdGl0bGU+Cis8L3Byb3BlcnRpZXM+Cis8Ym9keT4KKzxzZWN0aW9uIGhyZWY9ImZhcSIgbmFtZT0iTmV3YmllIEZBUSIvPgorCis8c2VjdGlvbiBocmVmPSJjb250ZW50cyIgbmFtZT0iSW5kZXgiPgorCisgICAgPHA+CisgICAgSGVyZSBhcmUgYW5zd2VycyB0byB0aGUgbW9zdCBjb21tb24gcXVlc3Rpb25zIHBlb3BsZSBhc2sgd2hlbiB1c2luZworICAgIFN0cnV0cyBvbiB0aGVpciBmaXJzdCBwcm9qZWN0LgorICAgIDxzdHJvbmc+Rm9yIGFuIGluLWRlcHRoLCBzZWFyY2hhYmxlIEZBUSwgdmlzaXQgb3VyIGZyaWVuZHMgYXQKKyAgICA8YSBocmVmPSJodHRwOi8vd3d3LmpndXJ1LmNvbS9mYXEvaG9tZS5qc3A/dG9waWM9U3RydXRzIj5KR3VydTwvYT4uPC9zdHJvbmc+CisgICAgPC9wPgorCisgICAgPHVsPgorCisgICAgPGxpPgorICAgIDxhIGhyZWY9IiNyZWxvYWQiPldoeSB3YXMgcmVsb2FkIHJlbW92ZWQgZnJvbSBTdHJ1dHMgMS4xPzwvYT4KKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgIDxhIGhyZWY9IiNtb2R1bGVzIj5XaGF0IGlzIGEgbW9kdWxhciBhcHBsaWNhdGlvbj8gV2hhdCBkb2VzCisgICAgbW9kdWxlLXJlbGF0aXZlIG1lYW4/PC9hPgorICAgIDwvbGk+CisKKyAgICA8bGk+CisgICAgPGEgaHJlZj0iI25hbWluZyI+V2h5IGFyZSBzb21lIG9mIHRoZSBjbGFzcyBhbmQgZWxlbWVudCBuYW1lcworICAgIGNvdW50ZXItaW50dWl0aXZlPzwvYT4KKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgIDxhIGhyZWY9IiNhY3Rpb25Gb3JtcyI+V2hpdGhlciBBY3Rpb25Gb3Jtcz88L2E+CisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICA8YSBocmVmPSIjYWN0aW9uRm9ybUludGVyZmFjZSI+V2h5IGlzIEFjdGlvbkZvcm0gYSBiYXNlIGNsYXNzIHJhdGhlciB0aGFuIGFuIGludGVyZmFjZT88L2E+CisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICA8YSBocmVmPSIjbXVsdGlwbGUiPkNhbiBJIHVzZSBtdWx0aXBsZSBIVE1MIGZvcm0gZWxlbWVudHMgd2l0aCB0aGUgc2FtZQorICAgIG5hbWU/PC9hPgorICAgIDwvbGk+CisKKyAgICA8bGk+CisgICAgPGEgaHJlZj0iI211bHRpcGxlU3VibWl0cyI+Q2FuIEkgaGF2ZSBtdWx0aXBsZSBzdWJtaXQgYnV0dG9ucyBvbiB0aGUgc2FtZQorICAgIGZvcm0/PC9hPgorICAgIDwvbGk+CisKKyAgICA8bGk+PGEgaHJlZj0iI2NoZWNrYm94Ij5XaHkgYXJlIG15IGNoZWNrYm94ZXMgbm90IGJlaW5nIHNldCBmcm9tIE9OIHRvCisgICAgT0ZGPzwvYT4KKyAgICA8L2xpPgorCisgICAgPGxpPjxhIGhyZWY9IiNmb2N1cyI+V2h5IGRvZXNuJ3QgdGhlIGZvY3VzIGZlYXR1cmUgb24gdGhlICZsdDtodG1sOmZvcm0+CisgICAgdGFnIHdvcmsgaW4gZXZlcnkgY2lyY3Vtc3RhbmNlPzwvYT4KKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgIDxhIGhyZWY9IiNqYXZhc2NyaXB0LnN1Ym1pdCI+SG93IGRvIEkgdXNlIEphdmFTY3JpcHQgdG8gc3VibWl0IGEgZm9ybT8gPC9hPgorICAgIDwvbGk+CisKKyAgICA8bGk+CisgICAgPGEgaHJlZj0iI2phdmFzY3JpcHQiPkhvdyBkbyBJIHVzZSBKYXZhU2NyaXB0IHRvIC4uLiA8L2E+CisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICA8YSBocmVmPSIjcmVzZXQiPkRvIEkgbmVlZCB0byBpbXBsZW1lbnQgcmVzZXQgYW5kIHNldCBhbGwgbXkgZm9ybQorICAgIHByb3BlcnRpZXMgdG8gdGhlaXIgaW5pdGlhbCB2YWx1ZXM/PC9hPgorICAgIDwvbGk+CisKKyAgICA8bGk+CisgICAgPGEgaHJlZj0iI3NjcmlwdGxldHMiPkNhbid0IEkganVzdCBjcmVhdGUgc29tZSBvZiBteSBKYXZhQmVhbnMgaW4gdGhlIEpTUAorICAgIHVzaW5nIGEgc2NyaXB0bGV0PzwvYT4KKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgIDxhIGhyZWY9IiNvdGhlckJlYW5zIj5DYW4gSSB1c2Ugb3RoZXIgYmVhbnMgb3IgaGFzaG1hcHMgd2l0aCBBY3Rpb25Gb3Jtcz88L2E+CisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICA8YSBocmVmPSIjdGFncyI+V2h5IGRvIHRoZSBTdHJ1dHMgdGFncyBwcm92aWRlIGZvciBzbyBsaXR0bGUKKyAgICBmb3JtYXR0aW5nPzwvYT4KKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgIDxhIGhyZWY9IiNsYXlvdXQiPldoeSBkb24ndCB0aGUgU3RydXRzIHRhZ2xpYnMgb2ZmZXIgbW9yZSBsYXlvdXQgb3B0aW9ucz88L2E+CisgICAgPC9saT4KKworCisgICAgPGxpPgorICAgIDxhIGhyZWY9IiNsaW5rIj5XaHkgZG9lcyB0aGUgJmx0O2h0bWw6bGluaz4gdGFnIFVSTC1lbmNvZGUgamF2YXNjcmlwdCBhbmQKKyAgICBtYWlsdG8gbGlua3M/IjwvYT4KKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgIDxhIGhyZWY9IiNhdXRoZW50aWNhdGUiPkhvdyBjYW4gSSBhdXRoZW50aWNhdGUgbXkgdXNlcnM/PC9hPgorICAgIDwvbGk+CisKKyAgICA8bGk+CisgICAgPGEgaHJlZj0iI3BhZ2VyIj5Ib3cgY2FuIEkgc2Nyb2xsIHRocm91Z2ggbGlzdCBvZiBwYWdlcyBsaWtlIHRoZSBzZWFyY2gKKyAgICByZXN1bHRzIGluIGdvb2dsZT88L2E+CisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICA8YSBocmVmPSIjbWluaW1pemF0aW9uIj5XaHkgZG9lcyB0aGUgb3B0aW9uIHRhZyByZW5kZXIgc2VsZWN0ZWQ9InNlbGVjdGVkIgorICAgIGluc3RlYWQgb2YganVzdCAic2VsZWN0ZWQiPworICAgIDwvYT48L2xpPgorCisgICAgPGxpPjxhIGhyZWY9IiNqc3AiPkRvIEkgaGF2ZSB0byB1c2UgSlNQcyB3aXRoIG15IGFwcGxpY2F0aW9uPzwvYT48L2xpPgorCisgICAgPGxpPgorICAgIDxhIGhyZWY9IiNmb3JtYmVhbnMiPkRvIEFjdGlvbkZvcm1zIGhhdmUgdG8gYmUgdHJ1ZSBKYXZhQmVhbnM/PC9hPgorICAgIDwvbGk+CisKKyAgICA8bGk+CisgICAgPGEgaHJlZj0iI3NlcGFyYXRlIj5EbyBJIGhhdmUgdG8gaGF2ZSBhIHNlcGFyYXRlIEFjdGlvbkZvcm0gYmVhbgorICAgIGZvciBldmVyeSBIVE1MIGZvcm0/PC9hPgorICAgIDwvbGk+CisKKyAgICA8bGk+CisgICAgPGEgaHJlZj0iI3ByZXBvcHVsYXRlIj5Ib3cgY2FuIEkgcHJlcG9wdWxhdGUgYSBmb3JtPzwvYT4KKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgIDxhIGhyZWY9IiNub0Zvcm0iPkNhbiBJIGhhdmUgYW4gQWN0aW9uIHdpdGhvdXQgYSBmb3JtPzwvYT4KKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgIDxhIGhyZWY9IiNyZXF1aXJlZGlmIj5DYW4geW91IGdpdmUgbWUgYSBzaW1wbGUgZXhhbXBsZSBvZiB1c2luZyB0aGUgcmVxdWlyZWRpZiBWYWxpZGF0b3IgcnVsZT88L2E+CisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICA8YSBocmVmPSIjdmFsaWRhdGUiPldoZW4gaXMgdGhlIGJlc3QgdGltZSB0byB2YWxpZGF0ZSBpbnB1dD88L2E+CisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICA8YSBocmVmPSIjYXZvaWRWYWxpZGF0ZSI+SG93IGNhbiBJIGF2b2lkIHZhbGlkYXRpbmcgYSBmb3JtIGJlZm9yZSBkYXRhIGlzIGVudGVyZWQ/PC9hPgorICAgIDwvbGk+CisKKyAgICA8bGk+CisgICAgPGEgaHJlZj0iI3dpemFyZCI+SG93IGNhbiBJIGNyZWF0ZSBhICJ3aXphcmQiIHdvcmtmbG93PzwvYT4KKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgIDxhIGhyZWY9IiNjaGFpbmluZyI+SG93IGNhbiBJICJjaGFpbiIgQWN0aW9ucz88L2E+CisgICAgPC9saT4KKworICAgIDwvdWw+CisKKyAgICA8cD4KKyAgICBJZiB5b3UgbGlrZSB0byA8YSBocmVmPSJoZWxwaW5nLmh0bWwiPmNvbnRyaWJ1dGU8L2E+LAorICAgIHRoZXJlIGlzIGEgbGlzdCBvZiA8YSBocmVmPSIjdW5kb2N1bWVudGVkIj4gdW5kb2N1bWVudGVkIHF1ZXN0aW9uczwvYT4KKyAgICBhdCB0aGUgZW5kIG9mIHRoaXMgcGFnZS4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0icmVsb2FkIiBuYW1lPSJXaHkgd2FzIHJlbG9hZCByZW1vdmVkIGZyb20gU3RydXRzIDEuMT8iPgorCis8cD4KK1RoZSBwcm9ibGVtIHdpdGggUmVsb2FkQWN0aW9uIHdhcyB0aGF0IFN0cnV0cyB3YXMgdHJ5aW5nIHRvIGFjdCBsaWtlIGEKK2NvbnRhaW5lciwgYnV0IGl0IGNvdWxkbid0IGRvIGEgcHJvcGVyIGpvYiBvZiBpdC4gRm9yIGV4YW1wbGUsIHlvdQorY2FuJ3QgcmVsb2FkIGNsYXNzZXMgdGhhdCBoYXZlIGJlZW4gbW9kaWZpZWQsIG9yIChwb3J0YWJseSkgYWRkIG5ldworY2xhc3NlcyB0byBhIHJ1bm5pbmcgd2ViIGFwcGxpY2F0aW9uIChldmVuIGlmIHRoZSBjb250YWluZXIgc3VwcG9ydGVkIGl0KS4KKzwvcD4KKworPHA+CitNZWFud2hpbGUsIGFzIDEuMSB3YXMgYmVpbmcgZGV2ZWxvcGVkLCB3b3JrIHByb2dyZXNzZWQgb24gdGhpbmdzCitsaWtlIFRvbWNhdCdzIHJlbG9hZCBjb21tYW5kIHZpYSB0aGUgTWFuYWdlciB3ZWJhcHAuIFRoaXMgZmVhdHVyZSBhbGxvd3MKK3lvdSB0byBxdWlja2x5IHJlbG9hZC1vbi1kZW1hbmQsIGNvbXBsZXRlIHdpdGggc2F2aW5nIGFuZCByZXN0b3JpbmcgeW91cgorc2Vzc2lvbikuIEl0IHN0YXJ0ZWQgdG8gbWFrZSBldmVuIGxlc3Mgc2Vuc2UgZm9yIFN0cnV0cyB0byBoYWxmLWltcGxlbWVudAorYSBmZWF0dXJlIHRoYXQgY29udGFpbmVycyBhcmUgaW1wbGVtZW50aW5nIGZ1bGx5LgorPC9wPgorCis8cD4KK0EgbW9yZSBtaW5vciBwb2ludCBpcyB0aGF0IGZyZWV6aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGF0IGFwcGxpY2F0aW9uCitzdGFydHVwIHRpbWUgYWxsb3dzIFN0cnV0cyB0byBzYWZlbHkgYWNjZXNzIHRoZSBtYXBwaW5nIGluZm9ybWF0aW9uIHdpdGhvdXQKK2JvdGhlcmluZyB3aXRoIHN5bmNocm9uaXphdGlvbi4gVGhlICJzdGFydHVwLW9ubHkiIHN0cmF0ZWd5IGNyZWF0ZXMgYSBtb2Rlc3QKK2J1dCByZWFsIGltcHJvdmVtZW50IGluIHBlcmZvcm1hbmNlIGZvciBhbGwgdXNlcnMuCis8L3A+CisKKzxwPlNvLCBSZWxvYWRBY3Rpb24gaXMgbm90IHN1cHBvcnRlZCBpbiAxLjEgZm9yIHR3byByZWFzb25zOjwvcD4KKworPHVsPgorPGxpPgorICAgIEl0IG5ldmVyIGRpZCBsZXQgeW91IHJlbG9hZCBldmVyeXRoaW5nIHRoYXQgeW91IHdvdWxkIHJlYWxseQorICAgIHdhbnQgdG8gLS0gcGFydGljdWxhcmx5IGNoYW5nZWQgY2xhc3NlcyAtLSBzbyBtYW55IHBlb3BsZQorICAgIGVuZGVkIHVwIGhhdmluZyB0byByZWxvYWQgdGhlIHdlYmFwcCBhbnl3YXkuCis8L2xpPgorPGxpPgorICAgIENvbnRhaW5lcnMgYXJlIHN0YXJ0aW5nIHRvIG9mZmVyIHJlbG9hZC1vbi1kZW1hbmQgZmVhdHVyZXMKKyAgICB3aGljaCBkb2VzIHRoZSBzYW1lIHRoaW5nIGFzIHRoZSBTdHJ1dHMgUmVsb2FkQWN0aW9uLCBvbmx5IGJldHRlci4KKzwvbGk+Cis8bGk+CisgICAgTm90IHN1cHBvcnRpbmcgUmVsb2FkQWN0aW9uIGxldHMgU3RydXRzIGF2b2lkIGRvaW5nIHN5bmNocm9uaXphdGlvbgorICAgIGxvY2tzIGFyb3VuZCBhbGwgdGhlIGxvb2t1cHMgKGxpa2UgZmlndXJpbmcgb3V0IHdoaWNoIGFjdGlvbiB0byB1c2UsCisgICAgb3IgdGhlIGRlc3RpbmF0aW9uIG9mIGFuIEFjdGlvbkZvcndhcmQpIHNvIGFwcGxpY2F0aW9ucyBjYW4gcnVuIGEKKyAgICBsaXR0bGUgZmFzdGVyLgorPC9saT4KKzwvdWw+CisKKzxwPgorT2YgY291cnNlLCBpZiBzb21lb25lIGNhbWUgdXAgd2l0aCBhbiBpbXBsZW1lbnRhdGlvbiB0aGF0IHNvbHZlZCB0aGVzZQorcHJvYmxlbXMgd2l0aG91dCBjcmVhdGluZyBhbnkgb3RoZXJzLCB3ZSB3b3VsZCBub3QgYmUgb3Bwb3NlZCB0byBpbmNsdWRpbmcKK2EgbmV3IFJlbG9hZEFjdGlvbi4KKzwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJtb2R1bGVzIiBuYW1lPSJXaGF0IGlzIGEgbW9kdWxhciBhcHBsaWNhdGlvbj8gV2hhdCBkb2VzIG1vZHVsZS1yZWxhdGl2ZSBtZWFuPyI+CisKKzxwPgorU2luY2UgU3RydXRzIDEuMSwgdGhlIGZyYW1ld29yayBzdXBwb3J0cyBtdWx0aXBsZSBhcHBsaWNhdGlvbiBtb2R1bGVzLiBBbGwgYXBwbGljYXRpb25zIGhhdmUgYXQKK2xlYXN0IG9uZSByb290LCBvciBkZWZhdWx0LCBtb2R1bGUuIExpa2UgdGhlIHJvb3QgZGlyZWN0b3J5IGluIGEgZmlsZSBzeXN0ZW0sIHRoZSBkZWZhdWx0IGFwcGxpY2F0aW9uCitoYXMgbm8gbmFtZS4gKE9yIGlzIG5hbWVkIHdpdGggYW4gZW1wdHkgc3RyaW5nLCBkZXBlbmRpbmcgeW91ciB2aWV3cG9pbnQuKSBEZXZlbG9waW5nIGFuIGFwcGxpY2F0aW9uCit3aXRoIG9ubHkgYSBkZWZhdWx0IG1vZHVsZSBpcyBubyBkaWZmZXJlbnQgZnJvbSBob3cgYXBwbGljYXRpb25zIHdlcmUgZGV2ZWxvcGVkIHVuZGVyIFN0cnV0cyAxLjAuCitTaW5jZSBTdHJ1dHMgMS4xLCB5b3UgY2FuIGFkZCBhZGRpdGlvbmFsIG1vZHVsZXMgdG8geW91ciBhcHBsaWNhdGlvbiwgZWFjaCBvZiB3aGljaCBjYW4gaGF2ZSB0aGVpcgorb3duIGNvbmZpZ3VyYXRpb24gZmlsZXMsIG1lc3NhZ2VzIHJlc291cmNlcywgYW5kIHNvIGZvcnRoLiBFYWNoIG1vZHVsZSBpcyBkZXZlbG9wZWQgaW4gdGhlIHNhbWUgd2F5IGFzCit0aGUgZGVmYXVsdCBtb2R1bGUuIEFwcGxpY2F0aW9ucyB0aGF0IHdlcmUgZGV2ZWxvcGVkIGFzIGEgc2luZ2xlIG1vZHVsZSBjYW4gYWRkZWQgdG8gYSBtdWx0aXBsZQorbW9kdWxlIGFwcGxpY2F0aW9uLCBhbmQgbW9kdWxlcyBjYW4gcHJvbW90ZWQgdG8gYSBzdGFuZGFsb25lIGFwcGxpY2F0aW9uIHdpdGhvdXQgY2hhbmdlLiBGb3IgbW9yZQorYWJvdXQgY29uZmlndXJpbmcgeW91ciBhcHBsaWNhdGlvbiB0byBzdXBwb3J0IG11bHRpcGxlIG1vZHVsZXMsIHNlZQorPGEgaHJlZj0iLi4vdXNlckd1aWRlL2NvbmZpZ3VyYXRpb24uaHRtbCNkZF9jb25maWdfbW9kdWxlcyI+Q29uZmlndXJpbmcgQXBwbGljYXRpb25zPC9hPiBpbiB0aGUKK1VzZXIgR3VpZGUuCis8L3A+CisKKzxwPgorQnV0IHRvIGFuc3dlciB0aGUgcXVlc3Rpb24gPTowKSwgYSBtb2R1bGFyIGFwcGxpY2F0aW9uIGlzIGEgU3RydXRzIGFwcGxpY2F0aW9uIHRoYXQgdXNlcyBtb3JlIHRoYW4KK29uZSBtb2R1bGUuIE1vZHVsZS1yZWxhdGl2ZSBtZWFucyB0aGF0IHRoZSBVUkkgc3RhcnRzIGF0IHRoZSBhcHBsaWNhdGlvbi1tb2R1bGUgbGV2ZWwsIHJhdGhlciB0aGFuIGF0Cit0aGUgYXBwbGljYXRpb24tY29udGV4dCBsZXZlbCwgb3IgdGhlIGFic29sdXRlLVVSTCBsZXZlbC4KKzwvcD4KKzx1bD4KKzxsaT5BYnNvbHV0ZSBVUkw6IGh0dHA6Ly9sb2NhbGhvc3QvbXlBcHBsaWNhdGlvbi9teU1vZHVsZS9teUFjdGlvbi5kbzwvbGk+Cis8bGk+Y29udGV4dC1yZWxhdGl2ZTogL215TW9kdWxlL215QWN0aW9uLmRvPC9saT4KKzxsaT5tb2R1bGUtcmVsYXRpdmU6IC9teUFjdGlvbi5kbzwvbGk+Cis8L3VsPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9Im5hbWluZyIgbmFtZT0iV2h5IGFyZSBzb21lIG9mIHRoZSBjbGFzcyBhbmQgZWxlbWVudCBuYW1lcyBjb3VudGVyLWludHVpdGl2ZT8iPgorPHA+CitUaGUgZnJhbWV3b3JrIGdyZXcgaW4gdGhlIHRlbGxpbmcgYW5kIGFzIGl0IGV2b2x2ZWQgc29tZSBvZiB0aGUgbmFtZXMKK2RyaWZ0ZWQuCis8L3A+Cis8cD5UaGUgZ29vZCB0aGluZyBhYm91dCBhIG5pZ2h0bHkgYnVpbGQsIGlzIHRoYXQgZXZlcnl0aGluZyBiZWNvbWVzCithdmFpbGFibGUgdG8gdGhlIGNvbW11bml0eSBhcyBzb29uIGFzIGl0IGlzIHdyaXR0ZW4uIFRoZSBiYWQgdGhpbmcgYWJvdXQKK2EgbmlnaHRseSBidWlsZCBpcyB0aGF0IHRoaW5ncyBsaWtlIGNsYXNzIG5hbWVzIGdldCBsb2NrZWQgZG93biBlYXJseSBhbmQKK3RoZW4gYmVjb21lIGRpZmZpY3VsdCB0byBjaGFuZ2UuCis8L3A+Cis8L3NlY3Rpb24+CisKKworPHNlY3Rpb24gaHJlZj0iYWN0aW9uRm9ybXMiIG5hbWU9IldpdGhlciBBY3Rpb25Gb3Jtcz8iPgorPHA+Cis8YSBocmVmPSJodHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzE5MjgxLmh0bWwiPmh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMTkyODEuaHRtbDwvYT48YnIvPgorPGEgaHJlZj0iaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cxOTMzOC5odG1sIj5odHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzE5MzM4Lmh0bWw8L2E+PGJyLz4KKzxhIGhyZWY9Imh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMjA4MzMuaHRtbCI+aHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cyMDgzMy5odG1sPC9hPjxici8+Cis8L3A+Cis8L3NlY3Rpb24+CisKKworPHNlY3Rpb24gaHJlZj0iYWN0aW9uRm9ybUludGVyZmFjZSIgbmFtZT0iV2h5IGlzIEFjdGlvbkZvcm0gYSBiYXNlIGNsYXNzIHJhdGhlciB0aGFuIGFuIGludGVyZmFjZT8iPgorPHA+CitUaGUgTVZDIGRlc2lnbiBwYXR0ZXJuIGlzIHZlcnkgc2ltcGxlIHRvIHVuZGVyc3RhbmQgYnV0IG11Y2ggbW9yZSBkaWZmaWN1bHQKK3RvIGxpdmUgd2l0aC4gIFlvdSBqdXN0IG5lZWQgdGhpcyBsaXR0bGUgYml0IG9mIEJ1c2luZXNzIExvZ2ljIGluIHRoZSBWaWV3Citsb2dpYyBvciB5b3UgbmVlZCBqdXN0IHRoYXQgbGl0dGxlIGJpdCBvZiBWaWV3IGxvZ2ljIGluIHRoZSBCdXNpbmVzcyB0aWVyIGFuZAorcHJldHR5IHNvb24geW91IGhhdmUgYSByZWFsIG1lc3MuCis8L3A+Cis8cD4KK01ha2luZyBBY3Rpb25Gb3JtIGEgY2xhc3MgdGFrZXMgYWR2YW50YWdlIG9mIHRoZSBzaW5nbGUKK2luaGVyaXRhbmNlIHJlc3RyaWN0aW9uIG9mIEphdmEgdG8gaXQgbWFrZXMgaXQgbW9yZSBkaWZmaWN1bHQgZm9yIHBlb3BsZSB0byBkbwordGhpbmdzIHRoYXQgdGhleSBzaG91bGQgbm90IGRvLgorPC9wPgorPHA+CitBY3Rpb25Gb3JtcyBpbXBsZW1lbnRlZCBhcyBpbnRlcmZhY2VzIGVuY291cmFnZSBtYWtpbmcgdGhlIHByb3BlcnR5IHR5cGVzIG1hdGNoCit0aGUgdW5kZXJseWluZyBidXNpbmVzcyB0aWVyIGluc3RlYWQgb2YgU3RyaW5ncywgd2hpY2ggdmlvbGF0ZXMgb25lIG9mIHRoZQorcHJpbWFyeSBwdXJwb3NlcyBmb3IgQWN0aW9uRm9ybXMgaW4gdGhlIGZpcnN0IHBsYWNlICh0aGUgYWJpbGl0eSB0byByZXByb2R1Y2UKK2ludmFsaWQgaW5wdXQsIHdoaWNoIGlzIGEgZnVuZGFtZW50YWwgdXNlciBleHBlY3RhdGlvbikuCitBY3Rpb25Gb3JtcyBhcyBhbiBpbnRlcmZhY2Ugd291bGQgYWxzbyBlbmNvdXJhZ2UgdXNpbmcgZXhpc3RpbmcgREFPIG9iamVjdHMgYXMKK0FjdGlvbkZvcm1zIGJ5IGFkZGluZyDigJhpbXBsZW1lbnRzIEFjdGlvbkZvcm3igJkgdG8gdGhlIGNsYXNzLiAgVGhpcyB2aW9sYXRlcwordGhlIE1WQyBkZXNpZ24gcGF0dGVybiBnb2FsIG9mIHNlcGFyYXRpb24gb2YgdGhlIHZpZXcgYW5kIGJ1c2luZXNzIGxvZ2ljLgorPC9wPgorPHA+CitTaW5jZSB0aGUgZ29hbCBvZiBzdHJ1dHMgaXMgdG8gZW5mb3JjZSB0aGlzIHNlcGFyYXRpb24sIGl0IGp1c3QgbWFrZXMgbW9yZSBzZW5zZQorZm9yIFN0cnV0cyB0byBvd24gdGhlIEFjdGlvbkZvcm0uCis8L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9IkphdmFCZWFucyIgbmFtZT0iRG8gQWN0aW9uRm9ybXMgaGF2ZSB0byBiZSB0cnVlIEphdmFCZWFucz8iPgorPHA+CitUaGUgdXRpbGl0aWVzIHRoYXQgU3RydXRzIHVzZXMgKENvbW1vbnMtQmVhblV0aWxzIHNpbmNlIDEuMSkgcmVxdWlyZSB0aGF0IEFjdGlvbkZvcm0gcHJvcGVydGllcyBmb2xsb3cKK3RoZSBKYXZhQmVhbiBwYXR0ZXJucyBmb3IgbXV0YXRvcnMgYW5kIGFjY2Vzc29ycyAoZ2V0KixzZXQqLGlzKikuIFNpbmNlIFN0cnV0cyB1c2VzIHRoZSBJbnRyb3NwZWN0aW9uIEFQSQord2l0aCB0aGUgQWN0aW9uRm9ybXMsIHNvbWUgY29udGFpbmVycyBtYXkgcmVxdWlyZSB0aGF0IGFsbCB0aGUgSmF2YUJlYW4gcGF0dGVybnMgYmUgZm9sbG93ZWQsIGluY2x1ZGluZworZGVjbGFyaW5nICI8Y29kZT5pbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvY29kZT4iIGZvciBlYWNoIHN1YmNsYXNzLiBUaGUgc2FmZXN0IHRoaW5nIGlzIHRvIHJldmlldyB0aGUKKzxhIGhyZWY9Ii4uL3VzZXJHdWlkZS9wcmVmYWNlLmh0bWwjamF2YWJlYW5zIj5KYXZhQmVhbiBzcGVjaWZpY2F0aW9uPC9hPiBhbmQgZm9sbG93IGFsbCB0aGUgcHJlc2NyaWJlZCBwYXR0ZXJucy48L3A+Cis8L3NlY3Rpb24+CisKKworPHNlY3Rpb24gaHJlZj0ibXVsdGlwbGUiIG5hbWU9IkNhbiBJIHVzZSBtdWx0aXBsZSBIVE1MIGZvcm0gZWxlbWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lPyI+Cis8cD4KK1llcy4gRGVmaW5lIHRoZSBlbGVtZW50IGFzIGFuIGFycmF5IGFuZCBTdHJ1dHMgd2lsbCBhdXRvcG9wdWxhdGUgaXQgbGlrZSBhbnkgb3RoZXIuCis8L3A+Cis8cHJlPgorPGNvZGU+Citwcml2YXRlIFN0cmluZ1tdIGlkPSB7fTsKK3B1YmxpYyBTdHJpbmdbXSBnZXRJZCgpIHsgcmV0dXJuIHRoaXMuaWQ7IH0KK3B1YmxpYyB2b2lkIHNldEl0ZW0oU3RyaW5nIGlkW10pIHt0aGlzLmlkID0gaWQ7fQorPC9jb2RlPgorPC9wcmU+Cis8cD4KK0FuZCBzbyBmb3J0aAorPC9wPgorPC9zZWN0aW9uPgorCisKKzxzZWN0aW9uIGhyZWY9Im11bHRpcGxlU3VibWl0cyIgbmFtZT0iQ2FuIEkgaGF2ZSBtdWx0aXBsZSBzdWJtaXQgYnV0dG9ucyBvbiB0aGUgc2FtZSBmb3JtPyI+Cis8cD4KKzxzdHJvbmc+WWVzPC9zdHJvbmc+LiAgVGhlIGlzc3VlIGlzIHRoYXQgb25seSBvbmUgYWN0aW9uIGNsYXNzIGNhbiBiZQorYXNzb2NpYXRlZCB3aXRoIGEgc2luZ2xlIGZvcm0uIFNvIHRoZSByZWFsIGlzc3VlIGlzIGhvdyBkbyBJIGRlY29kZQorbXVsdGlwbGUgc3VibWl0IHR5cGVzIHRvIGEgc2luZ2xlIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MuCitUaGVyZSBpcyBtb3JlIHRoYW4gb25lIHdheSB0byBhY2hpZXZlIHRoaXMgZnVuY3Rpb25hbGl0eS48L3A+Cis8cD4KK1RoZSB3YXkgdGhhdCBpcyBzdWdnZXN0ZWQgYnkgc3RydXRzIGlzIHJpZ2h0IG91dCBvZiB0aGUgamF2YWRvYyBmb3IKKzxhIGhyZWY9Ii4uL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiPgorPGNvZGU+TG9va3VwRGlzcGF0Y2hBY3Rpb248L2NvZGU+PC9hPi4KK0Jhc2ljYWxseSwgPGNvZGU+TG9va3VwRGlzcGF0Y2hBY3Rpb248L2NvZGU+IGlzIHVzaW5nIHRoZSBrZXlzIGZyb20KKzxjb2RlPkFwcGxpY2F0aW9uUHJvcGVydGllcy5yZXNvdXJjZXM8L2NvZGU+IGFzIGtleXMgdG8gYSBtYXAgb2YgYWN0aW9ucworYXZhaWxhYmxlIHRvIHlvdXIgPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcy4gIEl0IHVzZXMKKzxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vajJzZS8xLjMvZG9jcy9ndWlkZS9yZWZsZWN0aW9uLyI+cmVmbGVjdGlvbjwvYT4gdG8KK2RlY29kZSB0aGUgcmVxdWVzdCBhbmQgaW52b2tlIHRoZSBwcm9wZXIgYWN0aW9uLiAgSXQgYWxzbyB0YWtlcyBhZHZhbnRhZ2Ugb2YKK3RoZSBzdHJ1dHMgPGEgaHJlZj0iLi4vdXNlckd1aWRlL3N0cnV0cy1odG1sLmh0bWwjc3VibWl0Ij4KKzxjb2RlPiZsdDtodG1sOnN1Ym1pdCZndDs8L2NvZGU+PC9hPiB0YWdzIGFuZCBpcyBzdHJhaWdodCBmb3J3YXJkIHRvIGltcGxlbWVudC48L3A+Cis8cD4KK1lvdSBjYW4gcm9sbCB5b3VyIG93biB3aXRoIEphdmFTY3JpcHQgZXZlbnRzIGFuZCA8Y29kZT5qYXZhc2NyaXB0OnZvaWQKKyhkb2N1bWVudC5mb3Jtc1sibXlmb3JtIl0uc3VibWl0KTwvY29kZT4gb24gYW55IGh0bWwgZWxlbWVudC4gIFRoaXMgZ2l2ZXMgeW91Citjb250cm9sIG9mIGhvdyB5b3Ugd2FudCB5b3VyIHBhZ2UgdG8gbG9vay4gIEFnYWluIHlvdQord2lsbCBoYXZlIHRvIGRlY29kZSB0aGUgZXhwZWN0ZWQgYWN0aW9uIGluIHRoZSA8Y29kZT5leGVjdXRlPC9jb2RlPiBtZXRob2Qgb2YKK3lvdXIgYWN0aW9uIGZvcm0gaWYgeW91IGNob29zZSB0aGlzIHJvdXRlLjwvcD4KKzwvc2VjdGlvbj4KKworCis8c2VjdGlvbiBocmVmPSJmb2N1cyIgbmFtZT0iV2h5IGRvZXNuJ3QgdGhlIGZvY3VzIGZlYXR1cmUgb24gdGhlICZsdDtodG1sOmZvcm0+IHRhZyB3b3JrIGluIGV2ZXJ5IGNpcmN1bXN0YW5jZT8iPgorPHA+CitVbmZvcnR1bmF0ZWx5LCB0aGVyZSBpcyBzb21lIGRpc2FncmVlbWVudCBiZXR3ZWVuIHRoZSB2YXJpb3VzIGJyb3dzZXJzLCBhbmQgZGlmZmVyZW50IHZlcnNpb25zIG9mIHRoZSBzYW1lIGJyb3dzZXIsIGFzIHRvIGhvdyB0aGUgZm9jdXMgY2FuIGJlIHNldC4KK1RoZSAmbHQ7aHRtbDpmb3JtPiB0YWcgcHJvdmlkZXMgYSBxdWljayBhbmQgZWFzeSBKYXZhU2NyaXB0IHRoYXQgd2lsbCBzZXQgdGhlIGZvY3VzIG9uIGEgZm9ybQorZm9yIG1vc3QgdmVyc2lvbnMgb2YgbW9zdCBicm93c2Vycy4KK0lmIHRoaXMgZmVhdHVyZSBkb2Vzbid0IHdvcmsgZm9yIHlvdSwgdGhlbiB5b3Ugc2hvdWxkIHNldCB0aGUgZm9jdXMgdXNpbmcgeW91ciBvd24gSmF2YVNjcmlwdC4KK1RoZSBmb2N1cyBmZWF0dXJlIGlzIGEgY29udmVuaWVudCAidmFsdWUtYWRkIiAtLSBub3QgYSBjb3JlIHJlcXVpcmVtZW50IG9mIHRoZSB0YWcuCitJZiB5b3UgZG8gY29tZSB1cCB3aXRoIGEgSmF2YVNjcmlwdCB0aGF0IHByb3ZpZGVzIHRoZSBmaW5hbCBzb2x1dGlvbiB0byB0aGlzIHByb2plY3QsCitwbGVhc2UgcG9zdCB5b3VyIHBhdGNoIHRvIHRoaXMgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xMzQ1NCI+QnVnemlsbGEgdGlja2V0PC9hPi4KKzwvcD4KKzwvc2VjdGlvbj4KKworCis8c2VjdGlvbiBocmVmPSJjaGVja2JveCIgbmFtZT0iV2h5IGFyZSBteSBjaGVja2JveGVzIG5vdCBiZWluZyBzZXQgZnJvbSBPTiB0byBPRkY/Ij4KKzxwPgorQSBwcm9ibGVtIHdpdGggYSBjaGVja2JveCBpcyB0aGF0IHRoZSBicm93c2VyIHdpbGwgb25seSBpbmNsdWRlIGl0IGluIHRoZSByZXF1ZXN0Cit3aGVuIGl0IGlzIGNoZWNrZWQuIElmIGl0IGlzIG5vdCBjaGVja2VkLCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIHN1Z2dlc3RzIHRoYXQgaXQKK25vdCBiZSBzZW50IChpLmUuIG9taXR0ZWQgZnJvbSB0aGUgcmVxdWVzdCkuIElmIHRoZSB2YWx1ZSBvZiB0aGUgY2hlY2tib3ggaXMgYmVpbmcKK3BlcnNpc3RlZCwgZWl0aGVyIGluIGEgc2Vzc2lvbiBiZWFuIG9yIGluIHRoZSBtb2RlbCwgYSBjaGVja2VkIGJveCBjYW4gbmV2ZXIKK3VuY2hlY2tlZCBieSBhIEhUTUwgZm9ybSAtLSBiZWNhdXNlIHRoZSBmb3JtIGNhbiBuZXZlciBzZW5kIGEgc2lnbmFsIHRvIHVuY2hlY2sKK3RoZSBib3guIFRoZSBhcHBsaWNhdGlvbiBtdXN0IHNvbWVob3cgYXNjZXJ0YWluIHRoYXQgc2luY2UgdGhlIGVsZW1lbnQgd2FzIG5vdAorc2VudCB0aGF0IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGlzIHVuY2hlY2tlZC4KKzwvcD4KKzxwPgorVGhlIHJlY29tbWVuZGVkIGFwcHJvYWNoIGZvciBTdHJ1dHMgYXBwbGljYXRpb25zIGlzIHRvIHVzZSB0aGUgcmVzZXQgbWV0aG9kIGluIHRoZQorQWN0aW9uRm9ybSB0byBzZXQgYWxsIHByb3BlcnRpZXMgcmVwcmVzZW50ZWQgYnkgY2hlY2tib3hlcyB0byBudWxsIG9yIGZhbHNlLiBUaGUKK2NoZWNrZWQgYm94ZXMgc3VibWl0dGVkIGJ5IHRoZSBmb3JtIHdpbGwgdGhlbiBzZXQgdGhvc2UgcHJvcGVydGllcyB0byB0cnVlLiBUaGUKK29taXR0ZWQgcHJvcGVydGllcyB3aWxsIHJlbWFpbiBmYWxzZS4gQW5vdGhlciBzb2x1dGlvbiBpcyB0byB1c2UgcmFkaW8gYnV0dG9ucworaW5zdGVhZCwgd2hpY2ggYWx3YXlzIHN1Ym1pdCBhIHZhbHVlLgorPC9wPgorPHA+CitJdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHRoZSBIVE1MIHNwZWNpZmljYXRpb24gcmVjb21tZW5kcyB0aGlzIHNhbWUKK2JlaGF2aW9yIHdoZW5ldmVyIGEgY29udHJvbCBpcyBub3QgInN1Y2Nlc3NmdWwiLiBBbnkgYmxhbmsgZWxlbWVudCBpbiBhIEhUTUwKK2Zvcm0gaXMgbm90IGd1YXJhbnRlZWQgdG8gc3VibWl0dGVkLiBJdCBpcyB0aGVyZWZvciB2ZXJ5IGltcG9ydGFudCB0byBzZXQgdGhlCitkZWZhdWx0IHZhbHVlcyBmb3IgYW4gQWN0aW9uRm9ybSBjb3JyZWN0bHksIGFuZCB0byBpbXBsZW1lbnQgdGhlIHJlc2V0IG1ldGhvZAord2hlbiB0aGUgQWN0aW9uRm9ybSBtaWdodCBrZXB0IGluIHNlc3Npb24gc2NvcGUuCis8L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9ImphdmFzY3JpcHQuc3VibWl0IiBuYW1lPSJDYW4gSSB1c2UgSmF2YVNjcmlwdCB0byBzdWJtaXQgYSBmb3JtPyI+Cis8cD4KKyAgICBZb3UgY2FuIHN1Ym1pdCBhIGZvcm0gd2l0aCBhIGxpbmsgYXMgYmVsb3cuCisgICAgQlRXLCB0aGUgZXhhbXBsZXMgYmVsb3cgYXNzdW1lIHlvdSBhcmUgaW4gYW4gJmx0O2h0bWw6Zm9ybSZndDsgYmxvY2sgYW5kICdteUZvcm0nCisgICAgaXMgcGlja2VkIHVwIGZyb20gdGhlIHN0cnV0cy1jb25maWcueG1sIG5hbWUgZmllbGQgb2YgdGhlIGFjdGlvbi4KKzwvcD4KKzxwcmU+PGNvZGU+CisgICAgJmx0O2EgaHJlZj0namF2YXNjcmlwdDp2b2lkKGRvY3VtZW50LmZvcm1zWyJteUZvcm0iXS5zdWJtaXQoKSZndDtNeSBMaW5rJmx0Oy9hJmd0OworPC9jb2RlPjwvcHJlPgorPHA+CisgICAgTm93IHRoZSB0cmljayBpbiB0aGUgYWN0aW9uIGlzIHRvIGRlY29kZSB3aGF0IGFjdGlvbiB5b3UgaW50ZW5kIHRvIHBlcmZvcm0uCisgICAgU2luY2UgeW91IGFyZSB1c2luZyBKYXZhU2NyaXB0LCB5b3UgY291bGQgc2V0IGEgZmllbGQgdmFsdWUgYW5kIGxvb2sgZm9yIGl0IGluCisgICAgdGhlIHJlcXVlc3Qgb3IgaW4gdGhlIGZvcm0uCis8L3A+Cis8cD4KKyAgICAuLi4gaHRtbC9qYXZhc2NyaXB0IHBhcnQgLi4uCis8L3A+Cis8cHJlPjxjb2RlPgorICAgICAgICAmbHQ7aW5wdXQgdHlwZT0naGlkZGVuJyB2YWx1ZT0nbXlBY3Rpb24nIC8mZ3Q7CisgICAgICAgICZsdDtpbnB1dCB0eXBlPSdidXR0b24nIHZhbHVlPSdTYXZlIE1lZWVlZScKKyAgICAgICAgICAgIG9uY2xpY2s9J2RvY3VtZW50LmZvcm1zWyJteUZvcm0iXS5teUFjdGlvbi52YWx1ZT0ic2F2ZSI7CisgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5mb3Jtc1sibXlGb3JtIl0uc3VibWl0KCk7JyAvJmd0OworICAgICAgICAmbHQ7aW5wdXQgdHlwZT0nYnV0dG9uJyB2YWx1ZT0nRGVsZXRlIE1lZWVlZScKKyAgICAgICAgICAgIG9uY2xpY2s9J2RvY3VtZW50LmZvcm1zWyJteUZvcm0iXS5teUFjdGlvbi52YWx1ZT0iZGVsZXRlIjsKKyAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmZvcm1zWyJteUZvcm0iXS5zdWJtaXQoKTsnIC8mZ3Q7Cis8L2NvZGU+PC9wcmU+Cis8cD4KKyAgICAuLi4gdGhlIGphdmEgcGFydCAuLi4KKzwvcD4KKzxwcmU+PGNvZGU+CisgICAgICAgIGNsYXNzIE15QWN0aW9uIGV4dGVuZHMgQWN0aW9uRm9ybSBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSB7CisKKyAgICAgICAgICAgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkIGV4ZWN1dGUgKEFjdGlvbk1hcHBpbmcgbWFwLCBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcSwgSHR0cFNlcnZsZXRSZXNwb25zZSkgeworCisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBteUFjdGlvbiA9IHJlcS5nZXRQYXJhbWV0ZXIoIm15QWN0aW9uIik7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKG15QWN0aW9uLmVxdWFscygic2F2ZSIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIC4uLiAgc2F2ZSBhY3Rpb24gIC4uLgorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG15QWN0aW9uLmVxdWFscygiZGVsZXRlIikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLi4uICBkZWxldGUgYWN0aW9uICAuLi4KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorPC9jb2RlPjwvcHJlPgorPHA+CisgICAgVGhpcyBpcyBqdXN0IG9uZSBvZiBtYW55IHdheXMgdG8gYWNoaWV2ZSBzdWJtaXR0aW5nIGEgZm9ybSBhbmQgZGVjb2RpbmcgdGhlCisgICAgaW50ZW5kZWQgYWN0aW9uLiAgT25jZSB5b3UgZ2V0IHVzZWQgdG8gdGhlIGZyYW1ld29yayB5b3Ugd2lsbCBmaW5kIG90aGVyIHdheXMKKyAgICB0aGF0IG1ha2UgbW9yZSBzZW5zZSBmb3IgeW91ciBjb2Rpbmcgc3R5bGUgYW5kIHJlcXVpcmVtZW50cy4gIEp1c3QgcmVtZW1iZXIKKyAgICB0aGlzIGV4YW1wbGUgaXMgY29tcGxldGVseSBub24tZnVuY3Rpb25hbCB3aXRob3V0IEphdmFTY3JpcHQuCis8L3A+Cis8cD4KKyAgICBIZXJlIGlzIGEgbGluaworICAgIHdoaWNoIHV0aWxpemVzIHRoZSBMb29rdXBEaXNwYXRjaCBhY3Rpb24gdG8gc3VibWl0IGZvcm1zIHdpdGggbXVsdGlwbGUgYWN0aW9ucworICAgIHdpdGhvdXQgamF2YXNjcmlwdDogPGEgaHJlZj0iaHR0cDovL2h1c3RlZC5jb20vc3RydXRzL3RpcHMvMDAzLmh0bWwiPmh0dHA6Ly9odXN0ZWQuY29tL3N0cnV0cy90aXBzLzAwMy5odG1sPC9hPgorPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9ImphdmFzY3JpcHQiIG5hbWU9IkhvdyBkbyBJIHVzZSBKYXZhU2NyaXB0IHRvIC4uLiI+CisKKyAgICA8cD4KKyAgICBTdHJ1dHMgaXMgbWFpbmx5IGEgc2VydmVyLXNpZGUgdGVjaG5vbG9neS4KKyAgICBXZSBidW5kbGVkIGluIHNvbWUgSlNQIHRhZ3MgdG8gZXhwb3NlIHRoZSBmcmFtZXdvcmsgY29tcG9uZW50cyB0byB5b3VyCisgICAgcHJlc2VudGF0aW9uIHBhZ2UsIGJ1dCBwYXN0IHRoYXQsIHRoZSB1c3VhbCBkZXZlbG9wbWVudCBwcm9jZXNzIGFwcGxpZXMuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgSW50ZXJhY3RpdmUgcGFnZXMgcmVxdWlyZSB0aGUgdXNlIG9mIEphdmFTY3JpcHQuCisgICAgKFRoYXQncyB3aHkgaXQgd2FzIGludmVudGVkLikKKyAgICBJZiB5b3Ugd2FudCB0aGluZ3MgcG9wcGluZyB1cCBvciBkb2luZyB0aGlzIHdoZW4gdGhleSBjbGljayB0aGF0LAorICAgIHlvdSBhcmUgb3V0c2lkZSB0aGUgc2NvcGUgb2YgU3RydXRzIGFuZCBiYWNrIGludG8gdGhlIHdlYgorICAgIGRldmVsb3BtZW50IG1haW5zdHJlYW0uCisgICAgPC9wPgorCisgICAgPHA+CisgICAgWW91IHVzZSBKYXZhU2NyaXB0IHdpdGggU3RydXRzIHRoZSBzYW1lIHdheSB5b3UgdXNlIHdpdGggYW55IHByZXNlbnRhdGlvbgorICAgIHBhZ2UuCisgICAgU2luY2UgSmF2YVNjcmlwdCBpcyBhIGNsaWVudC1zaWRlIHRlY2hub2xvZ3ksIHlvdSBjYW4gdXNlIHNpbXBsZSByZWxhdGl2ZQorICAgIHJlZmVyZW5jZXMgdG8geW91ciBzY3JpcHRzLgorICAgIElmIHlvdSBuZWVkIHRvIGZpcmUgYSBKYXZhU2NyaXB0IGZyb20gYSBIVE1MIGNvbnRyb2wsIHRoZSBTdHJ1dHMgSFRNTCB0YWdzCisgICAgaGF2ZSBwcm9wZXJ0aWVzIGZvciB0aGUgSmF2YVNjcmlwdCBldmVudHMuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgQSB2ZXJ5IGdvb2QgSmF2YVNjcmlwdCByZXNvdXJjZSBpcyBNYXR0IEtydXNlJ3Mgc2l0ZSBhdAorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubWF0dGtydXNlLmNvbS9qYXZhc2NyaXB0LyI+CisgICAgaHR0cDovL3d3dy5tYXR0a3J1c2UuY29tL2phdmFzY3JpcHQvPC9hPgorICAgIDwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJyZXNldCIgbmFtZT0iRG8gSSBuZWVkIHRvIGltcGxlbWVudCByZXNldCBhbmQgc2V0IGFsbCBteSBmb3JtIHByb3BlcnRpZXMgdG8gdGhlaXIgaW5pdGlhbCB2YWx1ZXM/Ij4KKzxwPgorTm8uCitZb3UgbmVlZCB0byBzZXQgY2hlY2tib3ggcHJvcGVydGllcyB0byBmYWxzZSBpZiB0aGUgQWN0aW9uRm9ybSBpcyBiZWluZyByZXRhaW5lZCBpbiBzZXNzaW9uIHNjb3BlLgorVGhpcyBpcyBiZWNhdXNlIGFuIHVuY2hlY2tlZCBib3ggZG9lcyBub3Qgc3VibWl0IGFuIGF0dHJpYnV0ZS4KK09ubHkgY2hlY2tlZCBib3hlcyBzdWJtaXQgYXR0cmlidXRlcy4KK0lmIHRoZSBmb3JtIGlzIGluIHNlc3Npb24gc2NvcGUsIGFuZCB0aGUgY2hlY2tib3ggd2FzIGNoZWNrZWQsIHRoZXJlIGlzIG5vIHdheSB0byB0dXJuIGl0IGJhY2sgb2ZmIHdpdGhvdXQgdGhlIHJlc2V0IG1ldGhvZC4KK1Jlc2V0dGluZyB0aGUgcHJvcGVydGllcyBmb3Igb3RoZXIgY29udHJvbHMsIG9yIGZvciBhIHJlcXVlc3Qgc2NvcGUgZm9ybSwgaXMgcG9pbnRsZXNzLgorSWYgdGhlIGZvcm0gaXMgaW4gcmVxdWVzdCBzY29wZSwgZXZlcnl0aGluZyBhbHJlYWR5IGp1c3Qgc3RhcnRlZCBhdCB0aGUgaW5pdGlhbCB2YWx1ZS4KKzwvcD4KKzwvc2VjdGlvbj4KKworCis8c2VjdGlvbiBocmVmPSJzY3JpcHRsZXRzIiBuYW1lPSJDYW4ndCBJIGp1c3QgY3JlYXRlIHNvbWUgb2YgbXkgSmF2YUJlYW5zIGluIHRoZSBKU1AgdXNpbmcgYSBzY3JpcHRsZXQ/Ij4KKzxwPgorU3RydXRzIGlzIGRlc2lnbmVkIHRvIGVuY291cmFnZSBhCis8YSBocmVmPSJodHRwOi8vd3d3LmphdmF3b3JsZC5jb20vamF2YXdvcmxkL2p3LTEyLTE5OTkvanctMTItc3NqLWpzcG12Yy5odG1sIj4KK01vZGVsIDIvTVZDIGFyY2hpdGVjdHVyZTwvYT4uIEJ1dCB0aGVyZSBpcyBub3RoaW5nIHRoYXQgcHJldmVudHMgeW91IGZyb20gdXNpbmcgTW9kZWwgMQordGVjaG5pcXVlcyBpbiB5b3VyIEphdmFTZXJ2ZXIgUGFnZXMsIHNvIHRoZSBhbnN3ZXIgIHRvIHRoZSBxdWVzdGlvbiBpcyAiWWVzLCB5b3UgY2FuIi4KKzwvcD4KKzxwPgorVGhvdWdoLCB1c2luZyBNb2RlbCAxIHRlY2huaXF1ZXMgaW4gYSBTdHJ1dHMgYXBwbGljYXRpb24gZG9lcyBnbyBhZ2FpbnN0IHRoZSBncmFpbi4KK1RoZSBhcHByb2FjaCByZWNvbW1lbmRlZCBieSBtb3N0IFN0cnV0cyBkZXZlbG9wZXJzIGlzIHRvIGNyZWF0ZSBhbmQgcG9wdWxhdGUgd2hhdGV2ZXIKK29iamVjdHMgdGhlIHZpZXcgbWF5IG5lZWQgaW4gdGhlIEFjdGlvbiwgYW5kIHRoZW4gZm9yd2FyZCB0aGVzZSB0aHJvdWdoIHRoZSByZXF1ZXN0LgorU29tZSBvYmplY3RzIG1heSBhbHNvIGJlIGNyZWF0ZWQgYW5kIHN0b3JlZCBpbiB0aGUgc2Vzc2lvbiBvciBhcHBsaWNhdGlvbiBjb250ZXh0LAorZGVwZW5kaW5nIG9uIGhvdyB0aGV5IGFyZSB1c2VkLgorPC9wPgorPHA+CitMaWtld2lzZSwgdGhlcmUgaXMgbm90aGluZyB0byBwcmV2ZW50IHlvdSBmcm9tIHVzaW5nIHNjcmlwdGxldHMgYWxvbmcgd2l0aCBKU1AKK3RhZ3MgaW4geW91ciBwYWdlcy4gVGhvdWdoLCBtYW55IFN0cnV0cyBkZXZlbG9wZXJzIHJlcG9ydCB3cml0aW5nIHZlcnkgY29tcGxleAorc2NyaXBsZXQtZnJlZSBhcHBsaWNhdGlvbnMgYW5kIHJlY29tbWVuZCB0aGUgSlNQIHRhZyBhcHByb2FjaCB0byBvdGhlcnMuCis8L3A+Cis8cD4KK0ZvciBoZWxwIHdpdGggTW9kZWwgMSB0ZWNobmlxdWVzIGFuZCBzY3JpcHRsZXRzLCB5b3UgbWlnaHQgY29uc2lkZXIgam9pbmluZyB0aGUKKzxhIGhyZWY9Imh0dHA6Ly9hcmNoaXZlcy5qYXZhLnN1bi5jb20vanNwLWludGVyZXN0Lmh0bWwiPkphdmFzb2Z0IEpTUC1pbnRlcmVzdAorbWFpbGluZyBsaXN0PC9hPiwgd2hlcmUgdGhlcmUgYXJlIG1vcmUgcGVvcGxlIHN0aWxsIHVzaW5nIHRoZXNlIGFwcHJvYWNoZXMuCis8L3A+Cis8L3NlY3Rpb24+CisKKworPHNlY3Rpb24gaHJlZj0ib3RoZXJCZWFucyIgbmFtZT0iQ2FuIEkgdXNlIG90aGVyIGJlYW5zIG9yIGhhc2htYXBzIHdpdGggQWN0aW9uRm9ybXM/Ij4KKyAgICA8cD4KKyAgICBZZXMuIFRoZXJlIGFyZSBzZXZlcmFsIHdheXMgdGhhdCB5b3UgY2FuIHVzZSBvdGhlciBiZWFucyBvciBoYXNobWFwcyB3aXRoIEFjdGlvbkZvcm1zLgorICAgIDwvcD4KKyAgICA8dWw+CisgICAgPGxpPgorICAgICAgICBBY3Rpb25Gb3JtcyBjYW4gaGF2ZSBvdGhlciBiZWFuc29yIGhhc2htYXBzIGFzIHByb3BlcnRpZXMKKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgICAgIlZhbHVlIEJlYW5zIiBvciAiRGF0YSBUcmFuc2ZlciBPYmplY3RzIiAoRFRPcykgY2FuIGJlIHVzZWQgaW5kZXBlbmRlbnRseSBvZgorICAgICAgICBBY3Rpb25Gb3JtcyB0byB0cmFuc2ZlciBkYXRhIHRvIHRoZSB2aWV3CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICAgIEFjdGlvbkZvcm1zIGNhbiB1c2UgTWFwcyB0byBzdXBwb3J0ICJkeW5hbWljIiBwcm9wZXJ0aWVzIChzaW5jZSBTdHJ1dHMgMS4xKQorICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD4KKyAgICBBY3Rpb25Gb3JtcyAoYS5rLmEuICJmb3JtIGJlYW5zIikgYXJlIHJlYWxseSBqdXN0IEphdmEgYmVhbnMgKHdpdGggYSBmZXcKKyAgICBzcGVjaWFsIG1ldGhvZHMpIHRoYXQgU3RydXRzIGNyZWF0ZXMgYW5kIHB1dHMgaW50byBzZXNzaW9uIG9yIHJlcXVlc3Qgc2NvcGUgZm9yIHlvdS4KKyAgICBUaGVyZSBpcyBub3RoaW5nIHByZXZlbnRpbmcgeW91IGZyb20gdXNpbmcgb3RoZXIgYmVhbnMsIG9yIGluY2x1ZGluZworICAgIHRoZW0gaW4geW91ciBmb3JtIGJlYW5zLiBIZXJlIGFyZSBzb21lIGV4YW1wbGVzOgorICAgIDwvcD4KKyAgICA8cD4KKyAgICA8ZW0+Q29sbGVjdGlvbnMgYXMgcHJvcGVydGllczwvZW0+IFN1cHBvc2UgdGhhdCB5b3UgbmVlZCB0byBkaXNwbGF5IGEgcHVsbGRvd24gbGlzdCBvZgorICAgIGF2YWlsYWJsZSBjb2xvcnMgb24gYW4gaW5wdXQgZm9ybSBpbiB5b3VyIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGluY2x1ZGUgYSBzdHJpbmctdmFsdWVkCisgICAgPGNvZGU+Y29sb3JTZWxlY3RlZDwvY29kZT4gcHJvcGVydHkgaW4geW91ciA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiB0byByZXByZXNlbnQgdGhlIHVzZXIncworICAgIHNlbGVjdGlvbiBhbmQgYSA8Y29kZT5jb2xvck9wdGlvbnM8L2NvZGU+IHByb3BlcnR5IGltcGxlbWVudGVkIGFzIGEgPGNvZGU+Q29sbGVjdGlvbjwvY29kZT4KKyAgICAob2Ygc3RyaW5ncykgdG8gc3RvcmUgdGhlIGF2YWlsYWJsZSBjb2xvciBjaG9pY2VzLiBBc3N1bWluZyB0aGF0IHlvdSBoYXZlIGRlZmluZWQgdGhlIGdldHRlcnMKKyAgICBhbmQgc2V0dGVycyBmb3IgdGhlIDxjb2RlPmNvbG9yU2VsZWN0ZWQ8L2NvZGU+IGFuZCA8Y29kZT5jb2xvck9wdGlvbnM8L2NvZGU+IHByb3BlcnRpZXMKKyAgICBpbiB5b3VyIDxjb2RlPm9yZGVyRW50cnlGb3JtPC9jb2RlPiBmb3JtIGJlYW4sIHlvdSBjYW4gcmVuZGVyIHRoZQorICAgIHB1bGxkb3duIGxpc3QgdXNpbmc6CisgICAgPC9wPgorICAgIDxwcmU+PGNvZGU+CisgICAgJmx0O2h0bWw6c2VsZWN0IHByb3BlcnR5PSJjb2xvclNlbGVjdGVkIiZndDsKKyAgICAgICZsdDtodG1sOm9wdGlvbnMgcHJvcGVydHk9ImNvbG9yT3B0aW9ucyIgbmFtZT0ib3JkZXJFbnRyeUZvcm0iLyZndDsKKyAgICAmbHQ7L2h0bWw6c2VsZWN0Jmd0OworICAgIDwvY29kZT48L3ByZT4KKyAgICA8cD4KKyAgICBUaGUgbGlzdCB3aWxsIGJlIHBvcHVsYXRlZCB1c2luZyB0aGUgc3RyaW5ncyBpbiB0aGUgPGNvZGU+Y29sb3JPcHRpb25zPC9jb2RlPgorICAgIGNvbGxlY3Rpb24gIG9mIHRoZSA8Y29kZT5vcmRlckVudHJ5Rm9ybTwvY29kZT4gYW5kIHRoZSB2YWx1ZSB0aGF0IHRoZSB1c2VyIHNlbGVjdHMKKyAgICB3aWxsIGdvIGludG8gdGhlIDxjb2RlPmNvbG9yU2VsZWN0ZWQ8L2NvZGU+IHByb3BlcnR5IHRoYXQgZ2V0cyBwb3N0ZWQgdG8gdGhlIHN1YnNlcXVlbnQKKyAgICA8Y29kZT5BY3Rpb248L2NvZGU+LiBOb3RlIHRoYXQgd2UgYXJlIGFzc3VtaW5nIGhlcmUgdGhhdCB0aGUgPGNvZGU+Y29sb3JPcHRpb25zPC9jb2RlPgorICAgIHByb3BlcnR5IG9mIHRoZSA8Y29kZT5vcmRlckVudHJ5Rm9ybTwvY29kZT4gaGFzIGFscmVhZHkgYmVlbiBzZXQuCisgICAgPC9wPgorICAgIDxwPgorICAgIFNlZSA8YSBocmVmPSIjcHJlcG9wdWxhdGUiPkhvdyBjYW4gSSBwcmVwb3B1bGF0ZSBhIGZvcm0/PC9hPiBmb3IgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byBzZXQKKyAgICBmb3JtIGJlYW4gcHJvcGVydGllcyBiZWZvcmUgcmVuZGVyaW5nIGVkaXQgZm9ybXMgdGhhdCBleHBlY3QgcHJvcGVydGllcyB0byBiZSBwcmUtc2V0LgorICAgIDwvcD4KKyAgICA8cD4KKyAgICA8ZW0+SW5kZXBlbmRlbnQgRFRPPC9lbT4gQW4gPGNvZGU+QWN0aW9uPC9jb2RlPiB0aGF0IHJldHJpZXZlcyBhIGxpc3Qgb2Ygb3BlbiBvcmRlcnMgKGFzIGFuCisgICAgPGNvZGU+QXJyYXlMaXN0PC9jb2RlPiBvZiA8Y29kZT5PcmRlcjwvY29kZT4gb2JqZWN0cykgY2FuIHVzZSBhIERUTyBpbmRlcGVuZGVudGx5IG9mIGFueQorICAgIGZvcm0gYmVhbiB0byB0cmFuc2ZlciBzZWFyY2ggcmVzdWx0cyB0byB0aGUgdmlldy4gRmlyc3QsIHRoZSBBY3Rpb24ncworICAgIDxjb2RlPmV4ZWN1dGU8L2NvZGU+IG1ldGhvZCBwZXJmb3JtcyB0aGUgc2VhcmNoIGFuZCBwdXRzIHRoZSBEVE8gaW50byB0aGUgcmVxdWVzdDoKKyAgICA8L3A+CisgICAgPHByZT48Y29kZT4KKyAgICBBcnJheUxpc3QgcmVzdWx0cyA9IGJ1c2luZXNzT2JqZWN0LmV4ZWN1dGVTZWFyY2goc2VhcmNoUGFyYW1ldGVycyk7CisgICAgcmVxdWVzdC5zZXRBdHRyaWJ1dGUoInNlYXJjaFJlc3VsdHMiLHJlc3VsdHMpOworICAgIDwvY29kZT48L3ByZT4KKyAgICA8cD4KKyAgICBUaGVuIHRoZSB2aWV3IGNhbiBpdGVyYXRlIHRocm91Z2ggdGhlIHJlc3VsdHMgdXNpbmcgdGhlICJzZWFyY2hSZXN1bHRzIiByZXF1ZXN0IGtleSB0bworICAgIHJlZmVyZW5jZSB0aGUgRFRPOgorYCAgIDwvcD4KKyAgICA8cHJlPjxjb2RlPgorICAgICZsdDtsb2dpYzppdGVyYXRlIGlkPSJvcmRlciIgbmFtZT0ic2VhcmNoUmVzdWx0cyIgdHlwZT0iY29tLmZvby5iYXIuT3JkZXIiJmd0OworICAgICAgICAmbHQ7dHImZ3Q7Jmx0O3RkJmd0OyZsdDtiZWFuOndyaXRlIG5hbWU9Im9yZGVyIiBwcm9wZXJ0eT0ib3JkZXJOdW1iZXIiLyZndDsmbHQ7dGQmZ3Q7CisgICAgICAgICAgICAmbHQ7dGQmZ3Q7Li5vdGhlciBwcm9wZXJ0aWVzLi4uJmx0Oy90ZCZndDsmbHQ7L3RyJmd0OworICAgICZsdDsvbG9naWM6aXRlcmF0ZSZndDsKKyAgICA8L2NvZGU+PC9wcmU+CisgICAgPHA+CisgICAgU2VlIGFsc286IDxhIGhyZWY9Ii4uL3VzZXJHdWlkZS9idWlsZGluZ19jb250cm9sbGVyLmh0bWwjbWFwX2FjdGlvbl9mb3JtX2NsYXNzZXMiPk1hcC1CYWNrZWQgQWN0aW9uRm9ybXM8L2E+IChzaW5jZSBTdHJ1dHMgMS4xKQorICAgIDwvcD4KKzwvc2VjdGlvbj4KKworCis8c2VjdGlvbiBocmVmPSJ0YWdzIiBuYW1lPSJXaHkgZG8gdGhlIFN0cnV0cyB0YWdzIHByb3ZpZGUgZm9yIHNvIGxpdHRsZSBmb3JtYXR0aW5nPyI+Cis8cD4KKzxlbT5UaGUgU3RydXRzIHRhZ3Mgc2VlbSB0byBwcm92aWRlIG9ubHkgdGhlIG1vc3QgcnVkaW1lbnRhcnkgZnVuY3Rpb25hbGl0eS4KK1doeSBpcyB0aGVyZSBub3QgYmV0dGVyIHN1cHBvcnQgZm9yIGRhdGUgZm9ybWF0dGluZyBhbmQgYWR2YW5jZWQgc3RyaW5nIGhhbmRsaW5nPzwvZW0+Cis8L3A+Cis8cD4KK1RocmVlIHJlYXNvbnM6Cis8L3A+Cis8cD4KK0ZpcnN0LCB3b3JrIHN0YXJ0ZWQgb24gdGhlIEpTVEwgYW5kIHdlIGRpZG4ndCB3YW50IHRvIGR1cGxpY2F0ZSB0aGUgZWZmb3J0LgorPC9wPgorPHA+CitTZWNvbmQsIHdvcmsgc3RhcnRlZCBvbiBKYXZhIFNlcnZlciBGYWNlcywgYW5kIHdlIGRpZG4ndCB3YW50IHRvIGR1cGxpY2F0ZSB0aGF0IGVmZm9ydCBlaXRoZXIuCis8L3A+Cis8cD4KK1RoaXJkLCBpbiBhIE1vZGVsIDIgYXBwbGljYXRpb24sIG1vc3Qgb2YgdGhlIGZvcm1hdHRpbmcgY2FuIGJlIGhhbmRsZWQgaW4gdGhlIEFjdGlvbkZvcm1zIChvciBpbiB0aGUgYnVzaW5lc3MgdGllciksCitzbyBhbGwgdGhlIHRhZyBoYXMgdG8gZG8gaXMgc3BpdCBvdXQgYSBzdHJpbmcuCitUaGlzIGxlYWRzIHRvIGJldHRlciByZXVzZSBzaW5jZSB0aGUgc2FtZSAiaG93IHRvIGZvcm1hdCIgY29kZSBkb2VzIG5vdCBuZWVkIHRvIGJlIHJlcGVhdGVkIGluIGV2ZXJ5IGluc3RhbmNlLgorWW91IGNhbiAic2F5IGl0IG9uY2UiIGluIGEgSmF2YUJlYW4gYW5kIGJlIGRvbmUgd2l0aCBpdC4KKzwvcD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0ibGF5b3V0IiBuYW1lPSJXaHkgZG9uJ3QgdGhlIFN0cnV0cyB0YWdsaWJzIG9mZmVyIG1vcmUgbGF5b3V0IG9wdGlvbnM/Ij4KKzxwPgorU2luY2UgdGhlIFN0cnV0cyB0YWdzIGFyZSBvcGVuIHNvdXJjZSwgeW91IGNhbiBleHRlbmQgdGhlbSB0byBwcm92aWRlIHdoYXRldmVyIGFkZGl0aW9uYWwgZm9ybWF0dGluZyB5b3UgbWF5IG5lZWQuCitJZiB5b3UgYXJlIGludGVyZXN0ZWQgaW4gYSBwcmUtd3JpdHRlbiB0YWdsaWIgdGhhdCBvZmZlcnMgbW9yZSBsYXlvdXQgb3B0aW9ucywgc2VlIHRoZQorPGEgaHJlZj0iaHR0cDovL3N0cnV0cy5hcHBsaWNhdGlvbi1zZXJ2ZXJzLmNvbSI+c3RydXRzLWxheW91dCB0YWdsaWI8L2E+LgorPC9wPgorPHA+CitJbiB0aGUgc2FtZSBhcmVuYSwgdGhlcmUgaXMgYSB3ZWxsIHJlZ2FyZGVkIGNvbnRyaWJ1dG9yIHRhZ2xpYiB0aGF0IGNhbiBoZWxwIHlvdSBjcmVhdGUKKzxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvc3RydXRzLW1lbnUvIj5NZW51cyBmb3IgeW91ciBTdHJ1dHMgYXBwbGljYXRpb25zPC9hPi4KKzwvcD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0ibGluayIgbmFtZT0iV2h5IGRvZXMgdGhlICZsdDtodG1sOmxpbms+IHRhZyBVUkwtZW5jb2RlIGphdmFzY3JpcHQgYW5kIG1haWx0byBsaW5rcz8iPgorPHA+CitUaGUgJmx0O2h0bWw6bGluaz4gdGFnIGlzIG5vdCBpbnRlbmRlZCBmb3IgdXNlIHdpdGggY2xpZW50LXNpZGUgcmVmZXJlbmNlcyBsaWtlIHRob3NlIHVzZWQgdG8gbGF1bmNoIEphdmFzY3JpcHRzIG9yIGVtYWlsIGNsaWVudHMuCitUaGUgcHVycG9zZSBvZiBsaW5rIHRhZyBpcyB0byBpbnRlcmplY3QgdGhlIGNvbnRleHQgKG9yIG1vZHVsZSkgcGF0aCBpbnRvIHRoZSBVUkkgc28gdGhhdCB5b3VyIHNlcnZlci1zaWRlIGxpbmtzIGFyZSBub3QgZGVwZW5kZW50IG9uIHlvdXIgY29udGV4dCAob3IgbW9kdWxlKSBuYW1lLgorSXQgYWxzbyBlbmNvZGVzIHRoZSBsaW5rLCBhcyBuZWVkZWQsIHRvIG1haW50YWluIHRoZSBjbGllbnQncyBzZXNzaW9uIG9uIHRoZSBzZXJ2ZXIuCitOZWl0aGVyIGZlYXR1cmUgYXBwbGllcyB0byBjbGllbnQtc2lkZSBsaW5rcywgc28gdGhlcmUgaXMgbm8gcmVhc29uIHRvIHVzZSB0aGUgJmx0O2h0bWw6bGluaz4gdGFnLgorU2ltcGx5IG1hcmt1cCB0aGUgY2xpZW50LXNpZGUgbGlua3MgdXNpbmcgdGhlIHN0YW5kYXJkIDxhLz4gdGFnLgorPC9wPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJhdXRoZW50aWNhdGUiIG5hbWU9IkhvdyBjYW4gSSBhdXRoZW50aWNhdGUgbXkgdXNlcnM/Ij4KKzxwPgorPGEgaHJlZj0iaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cyNDUwNC5odG1sIj5odHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vc3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnL21zZzI0NTA0Lmh0bWw8L2E+PGJyLz4KKzxhIGhyZWY9Imh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMjI5NDkuaHRtbCI+aHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cyMjk0OS5odG1sPC9hPgorPC9wPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJwYWdlciIgbmFtZT0iSG93IGNhbiBJIHNjcm9sbCB0aHJvdWdoIGxpc3Qgb2YgcGFnZXMgbGlrZSB0aGUgc2VhcmNoIHJlc3VsdHMgaW4gZ29vZ2xlPyI+Cis8cD5NYW55IFN0cnV0cyBkZXZlbG9wZXJzIHVzZSB0aGUgUGFnZXIgZnJvbSB0aGUgSlNQVGFncyBzaXRlLjwvcD4KKzxwPjxhIGhyZWY9Imh0dHA6Ly9qc3B0YWdzLmNvbS90YWdzL25hdmlnYXRpb24vcGFnZXIvIj5odHRwOi8vanNwdGFncy5jb20vdGFncy9uYXZpZ2F0aW9uL3BhZ2VyLzwvYT48L3A+Cis8L3NlY3Rpb24+CisKKworPHNlY3Rpb24gaHJlZj0ibWluaW1pemF0aW9uIiBuYW1lPSJXaHkgZG9lcyB0aGUgb3B0aW9uIHRhZyByZW5kZXIgc2VsZWN0ZWQ9c2VsZWN0ZWQgaW5zdGVhZCBvZiBqdXN0IHNlbGVjdGVkPyI+Cis8cD4KK0F0dHJpYnV0ZSBtaW5pbWl6YXRpb24gKHRoYXQgaXMsIHNwZWNpZnlpbmcgYW4gYXR0cmlidXRlIHdpdGggbm8gdmFsdWUpIGlzCithIHBsYWNlIHdoZXJlIEhUTUwgdmlvbGF0ZXMgc3RhbmRhcmQgWE1MIHN5bnRheCBydWxlcy4gVGhpcyBtYXR0ZXJzIGEgbG90Citmb3IgcGVvcGxlIHdyaXRpbmcgdG8gYnJvd3NlcnMgdGhhdCBzdXBwb3J0IFhIVE1MLCB3aGVyZSBkb2luZyBzbyBtYWtlcwordGhlIHBhZ2UgaW52YWxpZC5JdCdzIG11Y2ggYmV0dGVyIGZvciBTdHJ1dHMgdG8gdXNlIHRoZSBleHBhbmRlZCBzeW50YXgsCit3aGljaCB3b3JrcyB0aGUgc2FtZSBvbiBleGlzdGluZyBicm93c2VycyBpbnRlcnByZXRpbmcgSFRNTCwgYW5kIG5ld2VyCiticm93c2VycyB0aGF0IGV4cGVjdCBYSFRNTC1jb21wbGlhbnQgc3ludGF4LiBTdHJ1dHMgaXMgZm9sbG93aW5nIHRoZQorYmVoYXZpb3IgcmVjb21tZW5kZWQgYnkgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS8jaC00LjUiPgorWEhUTUwgc3BlY2lmaWNhdGlvbjwvYT48L3A+Cis8L3NlY3Rpb24+CisKKworPHNlY3Rpb24gaHJlZj0ianNwIiBuYW1lPSJEbyBJIGhhdmUgdG8gdXNlIEpTUHMgd2l0aCBteSBhcHBsaWNhdGlvbj8iPgorCisgICAgPHA+CisgICAgVGhlIHNob3J0IGFuc3dlciB0byB0aGlzIHF1ZXN0aW9uIGlzOiBObywgeW91IGFyZSBub3QgbGltaXRlZCB0bworICAgIEphdmFTZXJ2ZXIgUGFnZXMuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhlIGxvbmdlciBhbnN3ZXIgaXMgdGhhdCB5b3UgY2FuIHVzZSBhbnkgdHlwZSBvZiBwcmVzZW50YXRpb24gdGVjaG5vbG9neQorICAgIHdoaWNoIGNhbiBiZSByZXR1cm5lZCBieSBhIHdlYiBzZXJ2ZXIgb3IgSmF2YSBjb250YWluZXIuCisgICAgVGhlIGxpc3QgaW5jbHVkZXMgYnV0IGlzIG5vdCBsaW1pdGVkIHRvOgorICAgIDwvcD4KKworICAgIDx1bD4KKworICAgICAgICA8bGk+CisgICAgICAgIEphdmFTZXJ2ZXIgUGFnZXMsCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBIVE1MIHBhZ2VzLAorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgV01MIGZpbGVzLAorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgSmF2YSBzZXJ2bGV0cywKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIFZlbG9jaXR5IHRlbXBsYXRlcywgYW5kCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBYTUwvWExTVAorICAgICAgICA8L2xpPgorCisgICAgPC91bD4KKworICAgIDxwPgorICAgIFNvbWUgcGVvcGxlIGV2ZW4gbWl4IGFuZCBtYXRjaCBhcHBhcmVudGx5IHVucmVsYXRlZCB0ZWNobm9sb2dpZXMsCisgICAgbGlrZSBQSFAsIGludG8gdGhlIHNhbWUgd2ViIGFwcGxpY2F0aW9uLgorICAgIDwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJmb3JtYmVhbnMiIG5hbWU9IkRvIEFjdGlvbkZvcm1zIGhhdmUgdG8gYmUgdHJ1ZSBKYXZhQmVhbnM/Ij4KKworICAgIDxwPkFjdGlvbkZvcm1zIGFyZSBhZGRlZCB0byBhIHNlcnZsZXQgc2NvcGUgKHNlc3Npb24gb3IgcmVxdWVzdCkKKyAgICBhcyBiZWFucy4gIFdoYXQgdGhpcyBtZWFucyBpcyB0aGF0LCBmb3IgY2VydGFpbiBmdW5jdGlvbmFsaXR5IHRvCisgICAgYmUgYXZhaWxhYmxlLCB5b3VyIEFjdGlvbkZvcm1zIHdpbGwgaGF2ZSB0byBmb2xsb3cgYSBmZXcgc2ltcGxlCisgICAgcnVsZXMuPC9wPgorCisgICAgPHA+Rmlyc3QsIHlvdXIgQWN0aW9uRm9ybSBiZWFuIG11c3QgaGF2ZSBhIHplcm8tYXJndW1lbnRzCisgICAgY29uc3RydWN0b3IuICBUaGlzIGlzIHJlcXVpcmVkIGJlY2F1c2UgU3RydXRzIG11c3QgYmUgYWJsZSB0bworICAgIGR5bmFtaWNhbGx5IGNyZWF0ZSBuZXcgaW5zdGFuY2VzIG9mIHlvdXIgZm9ybSBiZWFuIGNsYXNzLCB3aGlsZQorICAgIGtub3dpbmcgb25seSB0aGUgY2xhc3MgbmFtZS4gIFRoaXMgaXMgbm90IGFuIG9uZXJvdXMgcmVzdHJpY3Rpb24sCisgICAgaG93ZXZlciwgYmVjYXVzZSBTdHJ1dHMgd2lsbCBhbHNvIHBvcHVsYXRlIHlvdXIgZm9ybSBiZWFuJ3MKKyAgICBwcm9wZXJ0aWVzIChmcm9tIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMpIGZvciB5b3UuPC9wPgorCisgICAgPHA+U2Vjb25kLCB0aGUgZmllbGRzIG9mIHlvdXIgZm9ybSBiZWFuIGFyZSBtYWRlIGF2YWlsYWJsZSB0byB0aGUKKyAgICBmcmFtZXdvcmsgYnkgc3VwcGx5aW5nIHB1YmxpYyBnZXR0ZXIgYW5kIHNldHRlciBtZXRob2RzIHRoYXQKKyAgICBmb2xsb3cgdGhlIG5hbWluZyBkZXNpZ24gcGF0dGVybnMgZGVzY3JpYmVkIGluIHRoZSBKYXZhQmVhbnMKKyAgICBTcGVjaWZpY2F0aW9uLiAgRm9yIG1vc3QgdXNlcnMsIHRoYXQgbWVhbnMgdXNpbmcgdGhlIGZvbGxvd2luZworICAgIGlkaW9tIGZvciBlYWNoIG9mIHlvdXIgZm9ybSBiZWFuJ3MgcHJvcGVydGllczo8L3A+CisKKyAgICA8cHJlPgorICAgICAgICBwcml2YXRlIHt0eXBlfSBmaWVsZE5hbWU7CisKKyAgICAgICAgcHVibGljIHt0eXBlfSBnZXRGaWVsZE5hbWUoKSB7CisgICAgICAgICAgICByZXR1cm4gKHRoaXMuZmllbGROYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIHNldEZpZWxkTmFtZSh7dHlwZX0gZmllbGROYW1lKSB7CisgICAgICAgICAgICB0aGlzLmZpZWxkTmFtZSA9IGZpZWxkTmFtZTsKKyAgICAgICAgfQorICAgIDwvcHJlPgorCisgICAgPHA+PHN0cm9uZz5OT1RFPC9zdHJvbmc+IC0geW91IDxlbT5NVVNUPC9lbT4gb2JleSB0aGUgY2FwaXRhbGl6YXRpb24KKyAgICBjb252ZW50aW9ucyBzaG93biBhYm92ZSBmb3IgeW91ciBBY3Rpb25Gb3JtIHByb3BlcnRpZXMgdG8gYmUgcmVjb2duaXplZC4KKyAgICBUaGUgcHJvcGVydHkgbmFtZSBpbiB0aGlzIGV4YW1wbGUgaXMgImZpZWxkTmFtZSIsIGFuZCB0aGF0IG11c3QgYWxzbyBiZQorICAgIHRoZSBuYW1lIG9mIHRoZSBpbnB1dCBmaWVsZCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoaXMgcHJvcGVydHkuICBBIGJlYW4KKyAgICBwcm9wZXJ0eSBtYXkgaGF2ZSBhICJnZXR0ZXIiIG1ldGhvZCBhbmQgYSAic2V0dGVyIiBtZXRob2QgKGluIGEgZm9ybSBiZWFuLAorICAgIGl0IGlzIHR5cGljYWwgdG8gaGF2ZSBib3RoKSB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRoICJnZXQiIG9yICJzZXQiLAorICAgIGZvbGxvd2VkIGJ5IHRoZSBwcm9wZXJ0eSBuYW1lIHdpdGggdGhlIGZpcnN0IGNoYXJhY3RlciBjYXBpdGFsaXplZC4KKyAgICAoRm9yIGJvb2xlYW4gcHJvcGVydGllcywgaXQgaXMgYWxzbyBsZWdhbCB0byB1c2UgImlzIiBpbnN0ZWFkIG9mICJnZXQiCisgICAgYXMgdGhlIHByZWZpeCBmb3IgdGhlIGdldHRlciBtZXRob2QuKTwvcD4KKworICAgIDxwPiBBZHZhbmNlZCBKYXZhQmVhbnMgdXNlcnMgd2lsbCBrbm93IHRoYXQgeW91IGNhbiB0ZWxsIHRoZSBzeXN0ZW0KKyAgICB5b3Ugd2FudCB0byB1c2UgZGlmZmVyZW50IG5hbWVzIGZvciB0aGUgZ2V0dGVyIGFuZCBzZXR0ZXIgbWV0aG9kcywgYnkKKyAgICB1c2luZyBhIDxjb2RlPmphdmEuYmVhbnMuQmVhbkluZm88L2NvZGU+IGNsYXNzIGFzc29jaWF0ZWQgd2l0aCB5b3VyIGZvcm0KKyAgICBiZWFuLiAgTm9ybWFsbHksIGhvd2V2ZXIsIGl0IGlzIG11Y2ggbW9yZSBjb252ZW5pZW50IHRvIGZvbGxvdyB0aGUKKyAgICBzdGFuZGFyZCBjb252ZW50aW9ucy48L3A+CisKKyAgICA8cD48c3Ryb25nPldBUk5JTkc8L3N0cm9uZz4gLSBkZXZlbG9wZXJzIG1pZ2h0IGJlIHRlbXB0ZWQgdG8gdXNlIG9uZSBvZgorICAgIHRoZSBmb2xsb3dpbmcgdGVjaG5pcXVlcywgYnV0IGFueSBvZiB0aGVtIHdpbGwgY2F1c2UgeW91ciBwcm9wZXJ0eSBub3QKKyAgICB0byBiZSByZWNvZ25pemVkIGJ5IHRoZSBKYXZhQmVhbnMgaW50cm9zcGVjdGlvbiBmYWNpbGl0aWVzLCBhbmQgdGhlcmVmb3JlCisgICAgY2F1c2UgeW91ciBhcHBsaWNhdGlvbnMgdG8gbWlzYmVoYXZlOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxlbT5Vc2luZyBnZXR0ZXIgYW5kIHNldHRlciBtZXRob2QgbmFtZXMgdGhhdCBkbyBub3QKKyAgICAgICAgbWF0Y2g8L2VtPiAtIGlmIHlvdSBoYXZlIGEgPGNvZGU+Z2V0Rm9vKCk8L2NvZGU+IG1ldGhvZCBmb3IgeW91cgorICAgICAgICBnZXR0ZXIsIGJ1dCBhIDxjb2RlPnNldEJhcigpPC9jb2RlPiBtZXRob2QgZm9yIHlvdXIgc2V0dGVyLCBKYXZhCisgICAgICAgIHdpbGwgbm90IHJlY29nbml6ZSB0aGVzZSBtZXRob2RzIGFzIHJlZmVycmluZyB0byB0aGUgc2FtZSBwcm9wZXJ0eS4KKyAgICAgICAgSW5zdGVhZCwgdGhlIGxhbmd1YWdlIHdpbGwgdGhpbmsgeW91IGhhdmUgYSByZWFkLW9ubHkgcHJvcGVydHkgbmFtZWQKKyAgICAgICAgImZvbyIgYW5kIGEgd3JpdGUtb25seSBwcm9wZXJ0eSBuYW1lZCAiYmFyIi48L2xpPgorICAgIDxsaT48ZW0+VXNpbmcgbW9yZSB0aGFuIG9uZSBzZXR0ZXIgbWV0aG9kIHdpdGggdGhlIHNhbWUKKyAgICAgICAgbmFtZTwvZW0+IC0gVGhlIEphdmEgbGFuZ3VhZ2UgbGV0cyB5b3UgIm92ZXJsb2FkIiBtZXRob2RzLCBhcyBsb25nCisgICAgICAgIGFzIHRoZSBhcmd1bWVudCB0eXBlcyBhcmUgZGlmZmVyZW50LiAgRm9yIGV4YW1wbGUsIHlvdSBjb3VsZCBoYXZlIGEKKyAgICAgICAgPGNvZGU+c2V0U3RhcnREYXRlKGphdmEudXRpbC5EYXRlIGRhdGUpPC9jb2RlPiBtZXRob2QgYW5kIGEKKyAgICAgICAgPGNvZGU+c2V0U3RhcnREYXRlKFN0cmluZyBkYXRlKTwvY29kZT4gbWV0aG9kIGluIHRoZSBzYW1lIGNsYXNzLCBhbmQKKyAgICAgICAgdGhlIGNvbXBpbGVkIGNvZGUgd291bGQga25vdyB3aGljaCBtZXRob2QgdG8gY2FsbCBiYXNlZCBvbiB0aGUKKyAgICAgICAgcGFyYW1ldGVyIHR5cGUgYmVpbmcgcGFzc2VkLiAgSG93ZXZlciwgZG9pbmcgdGhpcyBmb3IgZm9ybSBiZWFuCisgICAgICAgIHByb3BlcnRpZXMgd2lsbCBwcmV2ZW50IEphdmEgZnJvbSByZWNvZ25pemluZyB0aGF0IHlvdSBoYXZlIGEKKyAgICAgICAgInN0YXJ0RGF0ZSIgcHJvcGVydHkgYXQgYWxsLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZXJlIGFyZSBvdGhlciBydWxlcyB0byBmb2xsb3cgaWYgeW91IHdhbnQgb3RoZXIgZmVhdHVyZXMgb2YgeW91cgorICAgIGZvcm0gYmVhbnMgdG8gYmUgZXhwb3NlZC4gIFRoZXNlIGluY2x1ZGUgaW5kZXhlZCBhdHRyaWJ1dGVzIGFuZCBtYXBwZWQKKyAgICBhdHRyaWJ1dGVzLiAgVGhleSBhcmUgY292ZXJlZCBpbiBkZXRhaWwgaW4gb3RoZXIgYXJlYXMgb2YgdGhlIFN0cnV0cworICAgIGRvY3VtZW50YXRpb24sIGluIHBhcnRpY3VsYXI6PC9wPgorICAgIAorICAgIDxhIGhyZWY9ImluZGV4ZWRwcm9wcy5odG1sIj5pbmRleGVkcHJvcHMuaHRtbDwvYT4KKyAgICAKKworICAgIDxwPkZvciBhIGNvbXBsZXRlIGV4cGxhbmF0aW9uIG9mIHdoYXQgYSBKYXZhQmVhbiBpcywgYW5kIGV2ZXJ5dGhpbmcgaXQgY2FuCisgICAgZG8sIHNlZSB0aGUgSmF2YUJlYW5zIFNwZWNpZmljYXRpb24gKHZlcnNpb24gMS4wMSkgYXQ6PC9wPgorICAgIAorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvamF2YWJlYW5zL2RvY3MvYmVhbnMuMTAxLnBkZiI+CisgICAgaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9qYXZhYmVhbnMvZG9jcy9iZWFucy4xMDEucGRmPC9hPgorICAgIAorCis8L3NlY3Rpb24+CisKKworPHNlY3Rpb24gaHJlZj0ic2VwYXJhdGUiCisgICAgICBuYW1lPSJEbyBJIGhhdmUgdG8gaGF2ZSBhIHNlcGFyYXRlIEFjdGlvbkZvcm0gYmVhbiBmb3IgZXZlcnkgSFRNTCBmb3JtPyI+CisKKyAgICA8cD5UaGlzIGlzIGFuIGludGVyZXN0aW5nIHF1ZXN0aW9uLiAgQXMgYSBuZXdiaWUsIGl0IGlzIGEgZ29vZAorICAgIHByYWN0aWNlIHRvIGNyZWF0ZSBhIG5ldyA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBmb3IgZWFjaCBhY3Rpb24KKyAgICBzZXF1ZW5jZS4gIFlvdSBjYW4gdXNlIDxjb2RlPkR5bmFBY3Rpb25Gb3JtPC9jb2RlPnMgdG8gaGVscCByZWR1Y2UKKyAgICB0aGUgZWZmb3J0IHJlcXVpcmVkLCBvciB1c2UgdGhlIGNvZGUgZ2VuZXJhdGlvbiBmYWNpbGl0aWVzIG9mIHlvdXIKKyAgICBJREUuPC9wPgorCisgICAgPHA+U29tZSBpc3N1ZXMgdG8ga2VlcCBpbiBtaW5kIHJlZ2FyZGluZyByZXVzZSBvZiBmb3JtIGJlYW5zCisgICAgYXJlIGFzIGZvbGxvd3M6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGVtPlZhbGlkYXRpb248L2VtPiAtIFlvdSBtaWdodCBuZWVkIHRvIHVzZSBkaWZmZXJlbnQKKyAgICAgICAgdmFsaWRhdGlvbiBydWxlcyBkZXBlbmRpbmcgdXBvbiB0aGUgYWN0aW9uIHRoYXQgaXMgY3VycmVudGx5CisgICAgICAgIGJlaW5nIGV4ZWN1dGVkLjwvbGk+CisgICAgPGxpPjxlbT5QZXJzaXN0ZW5jZTwvZW0+IC0gQmUgY2FyZWZ1bCB0aGF0IGEgZm9ybSBwb3B1bGF0ZWQgaW4KKyAgICAgICAgb25lIGFjdGlvbiBpcyBub3QgPHN0cm9uZz51bmV4cGVjdGVkbHk8L3N0cm9uZz4gcmV1c2VkIGluIGEKKyAgICAgICAgZGlmZmVyZW50IGFjdGlvbi4gIE11bHRpcGxlIDxjb2RlPiZsdDtmb3JtLWJlYW4mZ3Q7PC9jb2RlPgorICAgICAgICBlbnRyaWVzIGluIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPiBmb3IgdGhlIHNhbWUKKyAgICAgICAgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gc3ViY2xhc3MgY2FuIGhlbHAgKGVzcGVjaWFsbHkgaWYgeW91CisgICAgICAgIHN0b3JlIHlvdXIgZm9ybSBiZWFucyBpbiBzZXNzaW9uIHNjb3BlKS4gIEFsdGVybmF0aXZlbHksCisgICAgICAgIHN0b3JpbmcgZm9ybSBiZWFucyBpbiByZXF1ZXN0IHNjb3BlIGNhbiBhdm9pZCB1bmV4cGVjdGVkCisgICAgICAgIGludGVyYWN0aW9ucyAoYXMgd2VsbCBhcyByZWR1Y2UgdGhlIG1lbW9yeSBmb290cHJpbnQgb2YgeW91cgorICAgICAgICBhcHBsaWNhdGlvbiwgYmVjYXVzZSBubyBzZXJ2ZXItc2lkZSBvYmplY3RzIHdpbGwgbmVlZCB0byBiZQorICAgICAgICBzYXZlZCBpbiBiZXR3ZWVuIHJlcXVlc3RzLjwvbGk+CisgICAgPGxpPjxlbT5DaGVja2JveGVzPC9lbT4gLSBJZiB5b3UgZG8gYXMgcmVjb21tZW5kZWQgYW5kIHJlc2V0CisgICAgICAgIHlvdXIgYm9vbGVhbiBwcm9wZXJ0aWVzIChmb3IgZmllbGRzIHByZXNlbnRlZCBhcyBjaGVja2JveGVzKSwKKyAgICAgICAgYW5kIHRoZSBwYWdlIHlvdSBhcmUgY3VycmVudGx5IGRpc3BsYXlpbmcgZG9lcyBub3QgaGF2ZSBhCisgICAgICAgIGNoZWNrYm94IGZvciBldmVyeSBib29sZWFuIHByb3BlcnR5IG9uIHRoZSBmb3JtIGJlYW4sIHRoZQorICAgICAgICB1bmRpc3BsYXllZCBib29sZWFuIHByb3BlcnRpZXMgd2lsbCBhbHdheXMgYXBwZWFyIHRvIGhhdmUgYQorICAgICAgICA8Y29kZT5mYWxzZTwvY29kZT4gdmFsdWUuPC9saT4KKyAgICA8bGk+PGVtPldvcmtmbG93PC9lbT4gLSBUaGUgbW9zdCBjb21tb24gbmVlZCBmb3IgZm9ybSBiZWFuCisgICAgICAgIHJldXNlIGlzIHdvcmtmbG93LiAgT3V0IG9mIHRoZSBib3gsIFN0cnV0cyBoYXMgbGltaXRlZCBzdXBwb3J0CisgICAgICAgIGZvciB3b3JrZmxvdywgYnV0IGEgY29tbW9uIHBhdHRlcm4gaXMgdG8gdXNlIGEgc2luZ2xlIGZvcm0gYmVhbgorICAgICAgICB3aXRoIGFsbCBvZiB0aGUgcHJvcGVydGllcyBmb3IgYWxsIG9mIHRoZSBwYWdlcyBvZiBhIHdvcmtmbG93LgorICAgICAgICBZb3Ugd2lsbCBuZWVkIGEgZ29vZCB1bmRlcnN0YW5kaW5nIG9mIHRoZQorICAgICAgICBlbnZpcm9ubWVudCAoPGNvZGU+QWN0aW9uRm9ybTwvY29kZT5zLCA8Y29kZT5BY3Rpb248L2NvZGU+cywKKyAgICAgICAgZXRjLikgcHJpb3IgdG8gYmVpbmcgYWJsZSB0byBwdXQgdG9nZXRoZXIgYSBzbW9vdGggd29ya2Zsb3cKKyAgICAgICAgZW52aXJvbm1lbnQgdXNpbmcgYSBzaW5nbGUgZm9ybSBiZWFuLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPkFzIHlvdSBnZXQgbW9yZSBjb21mb3J0YWJsZSwgdGhlcmUgYXJlIGEgZmV3IHNob3J0Y3V0cyB5b3UgY2FuCisgICAgdGFrZSBpbiBvcmRlciB0byByZXVzZSB5b3VyIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW5zLiAgTW9zdCBvZgorICAgIHRoZXNlIHNob3J0Y3V0cyBkZXBlbmQgb24gaG93IHlvdSBoYXZlIGNob3NlbiB0byBpbXBsZW1lbnQgeW91cgorICAgIDxjb2RlPkFjdGlvbjwvY29kZT4gLyA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBjb21iaW5hdGlvbnMuPC9wPgorCis8L3NlY3Rpb24+CisKKworPHNlY3Rpb24gaHJlZj0icHJlcG9wdWxhdGUiCisgICAgICAgICBuYW1lPSJIb3cgY2FuIEkgcHJlcG9wdWxhdGUgYSBmb3JtPyI+CisKKyAgICA8cD5UaGUgc2ltcGxlc3Qgd2F5IHRvIHByZXBvcHVsYXRlICBhIGZvcm0gaXMgdG8gaGF2ZSBhbiA8Y29kZT5BY3Rpb248L2NvZGU+CisgICAgd2hvc2Ugc29sZSBwdXJwb3NlIGlzIHRvIHBvcHVsYXRlIGFuIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGFuZCBmb3J3YXJkCisgICAgdG8gdGhlIHNlcnZsZXQgb3IgSlNQIHRvIHJlbmRlciB0aGF0IGZvcm0gYmFjayB0byB0aGUgY2xpZW50LiAgQSBzZXBhcmF0ZQorICAgIDxjb2RlPkFjdGlvbjwvY29kZT4gd291bGQgdGhlbiBiZSB1c2UgdG8gcHJvY2VzcyB0aGUgc3VibWl0dGVkIGZvcm0gZmllbGRzLAorICAgIGJ5IGRlY2xhcmluZyBhbiBpbnN0YW5jZSBvZiB0aGUgc2FtZSBmb3JtIGJlYW4gbmFtZS48L3A+CisKKyAgICA8cD5UaGUgPGVtPnN0cnV0cy1leGFtcGxlPC9lbT4gZXhhbXBsZSBhcHBsaWNhdGlvbiB0aGF0IGlzIHNoaXBwZWQKKyAgICB3aXRoIFN0cnV0cyBpbGx1c3RyYXRlcyB0aGlzIGRlc2lnbiBwYXR0ZXJuIG5pY2VseS4gIE5vdGUgdGhlIGZvbGxvd2luZworICAgIGRlZmluaXRpb25zIGZyb20gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPiBmaWxlOjwvcD4KKyAgICA8cHJlPgorICAgICAgICAuLi4KKyAgICAgICAgJmx0O2Zvcm0tYmVhbnMmZ3Q7CisgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgICZsdDstLSBSZWdpc3RyYXRpb24gZm9ybSBiZWFuIC0tJmd0OworICAgICAgICAgICAgJmx0O2Zvcm0tYmVhbiBuYW1lPSJyZWdpc3RyYXRpb25Gb3JtIgorICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAuZXhhbXBsZS5SZWdpc3RyYXRpb25Gb3JtIi8mZ3Q7CisgICAgICAgICAgICAuLi4KKyAgICAgICAgJmx0Oy9mb3JtLWJlYW5zJmd0OworICAgICAgICAuLi4KKyAgICAgICAgJmx0O2FjdGlvbi1tYXBwaW5ncyZndDsKKyAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgJmx0Oy0tIEVkaXQgdXNlciByZWdpc3RyYXRpb24gLS0mZ3Q7CisgICAgICAgICAgICAmbHQ7YWN0aW9uIHBhdGg9Ii9lZGl0UmVnaXN0cmF0aW9uIgorICAgICAgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAuZXhhbXBsZS5FZGl0UmVnaXN0cmF0aW9uQWN0aW9uIgorICAgICAgICAgICAgICAgICAgICBuYW1lPSJyZWdpc3RyYXRpb25Gb3JtIgorICAgICAgICAgICAgICAgICAgIHNjb3BlPSJyZXF1ZXN0IgorICAgICAgICAgICAgICAgIHZhbGlkYXRlPSJmYWxzZSIvJmd0OworICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAmbHQ7LS0gU2F2ZSB1c2VyIHJlZ2lzdHJhdGlvbiAtLSZndDsKKyAgICAgICAgICAgICZsdDthY3Rpb24gcGF0aD0iL3NhdmVSZWdpc3RyYXRpb24iCisgICAgICAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC5leGFtcGxlLlNhdmVSZWdpc3RyYXRpb25BY3Rpb24iCisgICAgICAgICAgICAgICAgICAgIG5hbWU9InJlZ2lzdHJhdGlvbkZvcm0iCisgICAgICAgICAgICAgICAgICAgaW5wdXQ9InJlZ2lzdHJhdGlvbiIKKyAgICAgICAgICAgICAgICAgICBzY29wZT0icmVxdWVzdCIvJmd0OworICAgICAgICAgICAgLi4uCisgICAgICAgICZsdDsvYWN0aW9uLW1hcHBpbmdzJmd0OworICAgIDwvcHJlPgorCisgICAgPHA+Tm90ZSB0aGUgZm9sbG93aW5nIGZlYXR1cmVzIG9mIHRoaXMgYXBwcm9hY2g6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Qm90aCB0aGUgPGNvZGU+L2VkaXRSZWdpc3RyYXRpb248L2NvZGU+IGFuZAorICAgICAgICA8Y29kZT4vc2F2ZVJlZ2lzdHJhdGlvbjwvY29kZT4gYWN0aW9ucyB1c2UgdGhlIHNhbWUgZm9ybSBiZWFuLjwvbGk+CisgICAgPGxpPldoZW4gdGhlIDxjb2RlPi9lZGl0UmVnaXN0cmF0aW9uPC9jb2RlPiBhY3Rpb24gaXMgZW50ZXJlZCwgU3RydXRzCisgICAgICAgIHdpbGwgaGF2ZSBwcmUtY3JlYXRlZCBhbiBlbXB0eSBmb3JtIGJlYW4gaW5zdGFuY2UsIGFuZCBwYXNzZWQgaXQgdG8KKyAgICAgICAgdGhlIDxjb2RlPmV4ZWN1dGUoKTwvY29kZT4gbWV0aG9kLiAgVGhlIHNldHVwIGFjdGlvbiBpcyBmcmVlIHRvCisgICAgICAgIHByZWNvbmZpZ3VyZSB0aGUgdmFsdWVzIHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgd2hlbiB0aGUgZm9ybSBpcworICAgICAgICByZW5kZXJlZCwgc2ltcGx5IGJ5IHNldHRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgZm9ybSBiZWFuIHByb3BlcnRpZXMuCisgICAgICAgIDwvbGk+CisgICAgPGxpPldoZW4gdGhlIHNldHVwIGFjdGlvbiBjb21wbGV0ZXMgY29uZmlndXJpbmcgdGhlIHByb3BlcnRpZXMgb2YgdGhlCisgICAgICAgIGZvcm0gYmVhbiwgaXQgc2hvdWxkIHJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiB0aGF0IHBvaW50cworICAgICAgICBhdCB0aGUgcGFnZSB3aGljaCB3aWxsIGRpc3BsYXkgdGhpcyBmb3JtLiAgSWYgeW91IGFyZSB1c2luZyB0aGUKKyAgICAgICAgU3RydXRzIEpTUCB0YWcgbGlicmFyeSwgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlIG9uIHlvdXIKKyAgICAgICAgJmx0O2h0bWw6Zm9ybSZndDsgdGFnIHdpbGwgYmUgc2V0IHRvIDxjb2RlPi9zYXZlUmVnaXN0cmF0aW9uPC9jb2RlPgorICAgICAgICBpbiBvcmRlciBmb3IgdGhlIGZvcm0gdG8gYmUgc3VibWl0dGVkIHRvIHRoZSBwcm9jZXNzaW5nIGFjdGlvbi48L2xpPgorICAgIDxsaT5Ob3RlIHRoYXQgdGhlIHNldHVwIGFjdGlvbiAoPGNvZGU+L2VkaXRSZWdpc3RyYXRpb248L2NvZGU+KSB0dXJucyBvZmYKKyAgICAgICAgdmFsaWRhdGlvbiBvbiB0aGUgZm9ybSB0aGF0IGlzIGJlaW5nIHNldCB1cC4gIFlvdSB3aWxsIG5vcm1hbGx5IHdhbnQKKyAgICAgICAgdG8gaW5jbHVkZSB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgY29uZmlndXJhdGlvbiBvZiB5b3VyIHNldHVwIGFjdGlvbnMsCisgICAgICAgIGJlY2F1c2UgeW91IGFyZSBub3QgcGxhbm5pbmcgdG8gYWN0dWFsbHkgcHJvY2VzcyB0aGUgcmVzdWx0cyAtLSB5b3UKKyAgICAgICAgc2ltcGx5IHdhbnQgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIGZhY3QgdGhhdCBTdHJ1dHMgd2lsbCBwcmVjcmVhdGUKKyAgICAgICAgYSBmb3JtIGJlYW4gaW5zdGFuY2Ugb2YgdGhlIGNvcnJlY3QgY2xhc3MgZm9yIHlvdS48L2xpPgorICAgIDxsaT5UaGUgcHJvY2Vzc2luZyBhY3Rpb24gKDxjb2RlPi9zYXZlUmVnaXN0cmF0aW9uPC9jb2RlPiksIG9uIHRoZSBvdGhlcgorICAgICAgICBoYW5kLCBsZWF2ZXMgb3V0IHRoZSA8Y29kZT52YWxpZGF0ZTwvY29kZT4gYXR0cmlidXRlLCB3aGljaCBkZWZhdWx0cworICAgICAgICB0byA8Y29kZT50cnVlPC9jb2RlPi4gIFRoaXMgdGVsbHMgU3RydXRzIHRvIHBlcmZvcm0gdGhlIHZhbGlkYXRpb25zCisgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZvcm0gYmVhbiBiZWZvcmUgaW52b2tpbmcgdGhlIHByb2Nlc3NpbmcgYWN0aW9uCisgICAgICAgIGF0IGFsbC4gIElmIGFueSB2YWxpZGF0aW9uIGVycm9ycyBoYXZlIG9jY3VycmVkLCBTdHJ1dHMgd2lsbCBmb3J3YXJkCisgICAgICAgIGJhY2sgdG8geW91ciBpbnB1dCBwYWdlICh0ZWNobmljYWxseSwgaXQgZm9yd2FyZHMgYmFjayB0byBhbgorICAgICAgICA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBuYW1lZCAicmVnaXN0cmF0aW9uIiBpbiB0aGlzIGNhc2UsIGJlY2F1c2UKKyAgICAgICAgdGhlIGV4YW1wbGUgd2ViYXBwIHVzZXMgdGhlIDxjb2RlPmlucHV0Rm9yd2FyZDwvY29kZT4gYXR0cmlidXRlIGluIHRoZQorICAgICAgICA8Y29kZT4mbHQ7Y29udHJvbGxlciZndDs8L2NvZGU+IGVsZW1lbnQgLS0gc2VlIHRoZSBkb2N1bWVudGF0aW9uCisgICAgICAgIGRlc2NyaWJpbmcgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+IGZvciBtb3JlIGluZm9ybWF0aW9uKQorICAgICAgICBpbnN0ZWFkIG9mIGNhbGxpbmcgeW91ciBwcm9jZXNzaW5nIGFjdGlvbi48L2xpPgorICAgIDwvdWw+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0ibm9Gb3JtIiBuYW1lPSJDYW4gSSBoYXZlIGFuIEFjdGlvbiB3aXRob3V0IGEgZm9ybT8iPgorPHA+CitZZXMuIElmIHlvdXIgPGNvZGU+QWN0aW9uPC9jb2RlPiBkb2VzIG5vdCBuZWVkIGFueSBkYXRhIGFuZCBpdCBkb2VzIG5vdCBuZWVkIHRvIG1ha2UgYW55CitkYXRhIGF2YWlsYWJsZSB0byB0aGUgdmlldyBvciBjb250cm9sbGVyIGNvbXBvbmVudCB0aGF0IGl0IGZvcndhcmRzIHRvLCBpdCBkb2Vzbid0IG5lZWQKK2EgZm9ybS4gQSBnb29kIGV4YW1wbGUgb2YgYW4gPGNvZGU+QWN0aW9uPC9jb2RlPiB3aXRoIG5vIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGlzIHRoZQorPGNvZGU+TG9nb2ZmQWN0aW9uPC9jb2RlPiBpbiB0aGUgc3RydXRzIGV4YW1wbGUgYXBwbGljYXRpb246PC9wPgorPHByZT4KKyAgICAmbHQ7YWN0aW9uIHBhdGg9Ii9sb2dvZmYiCisgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC5leGFtcGxlLkxvZ29mZkFjdGlvbiImZ3Q7CisgICAgICAmbHQ7Zm9yd2FyZCBuYW1lPSJzdWNjZXNzIiBwYXRoPSIvaW5kZXguanNwIi8mZ3Q7CisgICAgJmx0Oy9hY3Rpb24mZ3Q7Cis8L3ByZT4KKzxwPgorVGhpcyBhY3Rpb24gbmVlZHMgbm8gZGF0YSBvdGhlciB0aGFuIHRoZSB1c2VyJ3Mgc2Vzc2lvbiwgd2hpY2ggaXQgY2FuIGdldCBmcm9tIHRoZQorPGNvZGU+UmVxdWVzdDwvY29kZT4sIGFuZCBpdCBkb2Vzbid0IG5lZWQgdG8gcHJlcGFyZSBhbnkgdmlldyBlbGVtZW50cyBmb3IgZGlzcGxheSwKK3NvIGl0IGRvZXMgbm90IG5lZWQgYSBmb3JtLgorPC9wPgorCisgICAgPHA+CisgICAgSG93ZXZlciwgeW91IGNhbm5vdCB1c2UgdGhlICZsdDtodG1sOmZvcm0mZ3Q7IDxzdHJvbmc+dGFnPC9zdHJvbmc+IHdpdGhvdXQgYW4gQWN0aW9uRm9ybS4KKyAgICBFdmVuIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgJmx0O2h0bWw6Zm9ybSZndDsgdGFnIHdpdGggYSBzaW1wbGUgQWN0aW9uIHRoYXQgZG9lcyBub3QgcmVxdWlyZSBpbnB1dCwKKyAgICB0aGUgdGFnIHdpbGwgZXhwZWN0IHlvdSB0byB1c2Ugc29tZSB0eXBlIG9mIEFjdGlvbkZvcm0sIGV2ZW4gaWYgaXQgaXMgYW4gZW1wdHkgc3ViY2xhc3Mgd2l0aG91dCBhbnkgcHJvcGVydGllcy4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0icmVxdWlyZWRpZiIKKyAgICAgICAgIG5hbWU9IkNhbiB5b3UgZ2l2ZSBtZSBhIHNpbXBsZSBleGFtcGxlIG9mIHVzaW5nIHRoZSByZXF1aXJlZGlmIFZhbGlkYXRvciBydWxlPyI+CisgICAgIDxwPkZpcnN0IG9mZiwgdGhlcmUncyBhbiBldmVuIG5ld2VyIFZhbGlkYXRvciBydWxlIGNhbGxlZCA8Y29kZT52YWxpZHdoZW48L2NvZGU+LAorICAgICB3aGljaCBpcyBhbG1vc3QgY2VydGFpbmx5IHdoYXQgeW91IHdhbnQgdG8gdXNlLCBzaW5jZSBpdCBpcyBtdWNoIGVhc2llciBhbmQKKyAgICAgbW9yZSBwb3dlcmZ1bC4gIEl0IHdpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBmaXJzdCByZWxlYXNlIGFmdGVyIDEuMSBzaGlwcy4KKyAgICAgVGhlIGV4YW1wbGUgc2hvd24gYmVsb3cgY291bGQgYmUgY29kZWQgd2l0aCB2YWxpZHdoZW4gYXM6PC9wPgorPHByZT4KKyZsdDtmb3JtIG5hbWU9Im1lZGljYWxTdGF0dXNGb3JtIiZndDsKKworJmx0O2ZpZWxkCisgICAgcHJvcGVydHk9InByZWduYW5jeVRlc3QiIGRlcGVuZHM9InZhbGlkd2hlbiImZ3Q7CisgICZsdDthcmcwIGtleT0ibWVkaWNhbFN0YXR1c0Zvcm0ucHJlZ25hbmN5VGVzdC5sYWJlbCIvJmd0OworICAmbHQ7dmFyJmd0OworICAgICZsdDt2YXItbmFtZSZndDt0ZXN0Jmx0Oy92YXItbmFtZSZndDsKKyAgICAmbHQ7dmFyLXZhbHVlJmd0OygoKChzZXggPT0gJ20nKSBPUiAoc2V4ID09ICdNJykpIEFORCAoKnRoaXMqID09IG51bGwpKSBPUiAoKnRoaXMqICE9IG51bGwpKSZsdDsvdGVzdCZndDsKKyAgJmx0Oy92YXImZ3Q7CismbHQ7L2ZpZWxkJmd0OworPC9wcmU+CisgICAgIDxwPkxldCdzIGFzc3VtZSB5b3UgaGF2ZSBhIG1lZGljYWwgaW5mb3JtYXRpb24gZm9ybSB3aXRoIHRocmVlIGZpZWxkcywgc2V4LCBwcmVnbmFuY3lUZXN0LCBhbmQgdGVzdFJlc3VsdC4KKyAgICAgSWYgc2V4IGlzICdmJyBvciAnRicsIHByZWduYW5jeVRlc3QgaXMgcmVxdWlyZWQuICBJZiBwcmVnbmFuY3lUZXN0IGlzIG5vdCBibGFuaywgdGVzdFJlc3VsdCBpcyByZXF1aXJlZC4KKyAgICAgVGhlIGVudHJ5IGluIHlvdXIgdmFsaWRhdGlvbi54bWwgZmlsZSB3b3VsZCBsb29rIGxpa2UgdGhpczoKKyAgICAgPC9wPgorICAgICA8cHJlPgorJmx0O2Zvcm0gbmFtZT0ibWVkaWNhbFN0YXR1c0Zvcm0iJmd0OworCismbHQ7ZmllbGQKKyAgICBwcm9wZXJ0eT0icHJlZ25hbmN5VGVzdCIgZGVwZW5kcz0icmVxdWlyZWRpZiImZ3Q7CisgICZsdDthcmcwIGtleT0ibWVkaWNhbFN0YXR1c0Zvcm0ucHJlZ25hbmN5VGVzdC5sYWJlbCIvJmd0OworICAmbHQ7dmFyJmd0OworICAgICZsdDt2YXItbmFtZSZndDtmaWVsZFswXSZsdDsvdmFyLW5hbWUmZ3Q7CisgICAgJmx0O3Zhci12YWx1ZSZndDtzZXgmbHQ7L3Zhci12YWx1ZSZndDsKKyAgJmx0Oy92YXImZ3Q7CisgICZsdDt2YXImZ3Q7CisgICAgJmx0O3Zhci1uYW1lJmd0O2ZpZWxkVGVzdFswXSZsdDsvdmFyLW5hbWUmZ3Q7CisgICAgJmx0O3Zhci12YWx1ZSZndDtFUVVBTCZsdDsvdmFyLXZhbHVlJmd0OworICAmbHQ7L3ZhciZndDsKKyAgJmx0O3ZhciZndDsKKyAgICAmbHQ7dmFyLW5hbWUmZ3Q7ZmllbGRWYWx1ZVswXSZsdDsvdmFyLW5hbWUmZ3Q7CisgICAgJmx0O3Zhci12YWx1ZSZndDtGJmx0Oy92YXItdmFsdWUmZ3Q7CisgICZsdDsvdmFyJmd0OworICAmbHQ7dmFyJmd0OworICAgICZsdDt2YXItbmFtZSZndDtmaWVsZFsxXSZsdDsvdmFyLW5hbWUmZ3Q7CisgICAgJmx0O3Zhci12YWx1ZSZndDtzZXgmbHQ7L3Zhci12YWx1ZSZndDsKKyAgJmx0Oy92YXImZ3Q7CisgICZsdDt2YXImZ3Q7CisgICAgJmx0O3Zhci1uYW1lJmd0O2ZpZWxkVGVzdFsxXSZsdDsvdmFyLW5hbWUmZ3Q7CisgICAgJmx0O3Zhci12YWx1ZSZndDtFUVVBTCZsdDsvdmFyLXZhbHVlJmd0OworICAmbHQ7L3ZhciZndDsKKyAgJmx0O3ZhciZndDsKKyAgICAmbHQ7dmFyLW5hbWUmZ3Q7ZmllbGRWYWx1ZVsxXSZsdDsvdmFyLW5hbWUmZ3Q7CisgICAgJmx0O3Zhci12YWx1ZSZndDtmJmx0Oy92YXItdmFsdWUmZ3Q7CisgICZsdDsvdmFyJmd0OworICAmbHQ7dmFyJmd0OworICAgICZsdDt2YXItbmFtZSZndDtmaWVsZEpvaW4mbHQ7L3Zhci1uYW1lJmd0OworICAgICZsdDt2YXItdmFsdWUmZ3Q7T1ImbHQ7L3Zhci12YWx1ZSZndDsKKyAgJmx0Oy92YXImZ3Q7CismbHQ7L2ZpZWxkJmd0OworCismbHQ7ZmllbGQKKyAgICBwcm9wZXJ0eT0idGVzdFJlc3VsdCIgZGVwZW5kcz0icmVxdWlyZWRpZiImZ3Q7CisgICZsdDthcmcwIGtleT0ibWVkaWNhbFN0YXR1c0Zvcm0udGVzdFJlc3VsdC5sYWJlbCIvJmd0OworICAmbHQ7dmFyJmd0OworICAgICZsdDt2YXItbmFtZSZndDtmaWVsZFswXSZsdDsvdmFyLW5hbWUmZ3Q7CisgICAgJmx0O3Zhci12YWx1ZSZndDtwcmVnbmFuY3lUZXN0Jmx0Oy92YXItdmFsdWUmZ3Q7CisgICZsdDsvdmFyJmd0OworICAmbHQ7dmFyJmd0OworICAgICZsdDt2YXItbmFtZSZndDtmaWVsZFRlc3RbMF0mbHQ7L3Zhci1uYW1lJmd0OworICAgICZsdDt2YXItdmFsdWUmZ3Q7Tk9UTlVMTCZsdDsvdmFyLXZhbHVlJmd0OworICAmbHQ7L3ZhciZndDsKKyZsdDsvZmllbGQmZ3Q7CismbHQ7L2Zvcm0mZ3Q7Cis8L3ByZT4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0idmFsaWRhdGUiIG5hbWU9IldoZW4gaXMgdGhlIGJlc3QgdGltZSB0byB2YWxpZGF0ZSBpbnB1dD8iPgorPHA+CitUaGlzIGlzIGFuIGV4Y2VsbGVudCBxdWVzdGlvbi4gIExldCdzIHN0ZXAgYmFjayBhIHNlY29uZCBhbmQgdGhpbmsgYWJvdXQgYQordHlwaWNhbCBtaWQgdG8gbGFyZ2Ugc2l6ZSBhcHBsaWNhdGlvbi4gIElmIHdlIHN0YXJ0IGZyb20gdGhlIGJhY2sgZW5kIGFuZCB3b3JrCit0b3dhcmQgdGhlIHZpZXcgd2UgaGF2ZToKKzwvcD4KKzxwPgorMSkgRGF0YWJhc2U6ICBNb3N0IG1vZGVybiBkYXRhYmFzZXMgYXJlIGdvaW5nIHRvIHZhbGlkYXRlIGZvciByZXF1aXJlZAorZmllbGRzLCBkdXBsaWNhdGUgcmVjb3Jkcywgc2VjdXJpdHkgY29uc3RyYWludHMsIGV0Yy48L3A+Cis8cD4KKzIpIEJ1c2luZXNzIExvZ2ljOiAgSGVyZSB5b3UgYXJlIGdvaW5nIHRvIGNoZWNrIGZvciB2YWxpZCBkYXRhIHJlbGF0aW9uc2hpcHMKK2FuZCB0aGluZ3MgdGhhdCBtYWtlIHNlbnNlIGZvciB0aGUgcGFydGljdWxhciBwcm9ibGVtIHlvdSBhcmUgdHJpaW5nIHRvCitzb2x2ZS48L3A+Cis8cD4KKy4uLiBUaGlzIGlzIHdoZXJlIHN0cnV0cyBjb21lcyBpbnRvIHRoZSBwaWN0dXJlLCBieSBub3cgdGhlIHN5c3RlbSBzaG91bGQgYmUKK3ByZXR0eSB3ZWxsIGJ1bGxldHByb29mLiAgV2hhdCB3ZSBhcmUgZ29pbmcgdG8gZG8gaXMgbWFrZSB2YWxpZGF0aW9uIGZyaWVuZGxpZXIKK2FuZCBpbmZvcm1hdGl2ZS4gIFJlbWJlciBpdCBpcyBPSyB0byBoYXZlIGR1cGxpY2F0ZSB2YWxpZGF0aW9ucy4uLjwvcD4KKzxwPgorMykgPGNvZGU+QWN0aW9uRXJyb3JzIHZhbGlkYXRlKEFjdGlvbk1hcHBpbmcgbWFwLCBIdHRwU2VydmxldFJlcXVlc3QgcmVxKTwvY29kZT4KK2lzIHdoZXJlIHlvdSBjYW4gZG8geW91ciB2YWxpZGF0aW9uIGFuZCBmZWVkIGJhY2sgdG8gdGhlIHZpZXcsCitpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBjb3JyZWN0IGFueSBlcnJvcnMuICA8Y29kZT52YWxpZGF0ZTwvY29kZT4gaXMgcnVuIGFmdGVyCit0aGUgZm9ybSBoYXMgYmVlbiA8Y29kZT5yZXNldDwvY29kZT4gYW5kIGFmdGVyIHRoZSA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPgorcHJvcGVydGllcyBoYXZlIGJlZW4gc2V0IGZyb20gY29ycmVzcG9uZGluZyB2aWV3IGJhc2VkIGlucHV0LiBBbHNvIHJlbWVtYmVyIHlvdQorY2FuIHR1cm4gdmFsaWRhdGlvbiBvZmYgd2l0aCA8Y29kZT52YWxpZGF0ZT0iZmFsc2UiPC9jb2RlPiBpbiB0aGUKKzxjb2RlPmFjdGlvbjwvY29kZT4gbWFwcGluZyBpbiB0aGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+LiBUaGlzIGlzIGRvbmUKK2J5IHJldHVybmluZyBhbiA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IGNvbGxlY3Rpb24gd2l0aCBtZXNzYWdlcyBmcm9tIHlvdXIKKzxjb2RlPkFwcGxpY2F0aW9uUmVzb3VyY2VzLnByb3BlcnRpZXM8L2NvZGU+IGZpbGUuPC9wPgorPHA+CitIZXJlIHlvdSBoYXZlIGFjY2VzcyB0byB0aGUgcmVxdWVzdCBzbyB5b3UgY2FuIHNlZSB3aGF0IGtpbmRzIG9mIGFjdGlvbiBpcworYmVpbmcgcmVxdWVzdGVkIHRvIGZpbmUgdHVuZSB5b3VyIHZhbGlkYXRpb25zLiAgVGhlICZsdDtodG1sOmVycm9yJmd0OyB0YWcKK2FsbG93cyB5b3UgdG8gZHVtcCBhbGwgZXJyb3JzIG9uIHlvdXIgcGFnZSBvciBhIHBhcnRpY3VsYXIgZXJyb3IgYXNzb2NpYXRlZAord2l0aCBhIHBhcnRpY3VsYXIgcHJvcGVydHkuICBUaGUgPGNvZGU+aW5wdXQ8L2NvZGU+IGF0dHJpYnV0ZSBvZiB0aGUKKzxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPiA8Y29kZT5hY3Rpb248L2NvZGU+IGFsbG93cyB5b3UgdG8gc2VuZAordmFsaWRhdGlvbiBlcnJvcnMgdG8gYSBwYXJ0aWN1bGFyIGpzcCAvIGh0bWwgLyB0aWxlIHBhZ2UuPC9wPgorPHA+Cis0KSBZb3UgY2FuIGhhdmUgdGhlIHN5c3RlbSBwZXJmb3JtIGxvdyBsZXZlbCB2YWxpZGF0aW9ucyBhbmQgY2xpZW50IHNpZGUKK2ZlZWRiYWNrIHVzaW5nIGEgPGNvZGU+VmFsaWRhdG9yRm9ybTwvY29kZT4gb3IgaXRzIGRlcml2YXRpdmVzLiAgVGhpcyB3aWxsCitnZW5lcmF0ZSBqYXZhc2NyaXB0IGFuZCBnaXZlIGluc3RhbnQgZmVlZGJhY2sgdG8gdGhlIHVzZXIgZm9yIHNpbXBsZSBkYXRhIGVudHJ5CitlcnJvcnMuICBZb3UgY29kZSB5b3VyIHZhbGlkYXRpb25zIGluIHRoZSA8Y29kZT52YWxpZGF0b3ItcnVsZXMueG1sPC9jb2RlPgorZmlsZS4gIEEgd29ya2luZyBrbm93bGVkZ2Ugb2YKKzxhIGhyZWY9Imh0dHA6Ly9ldGV4dC5saWIudmlyZ2luaWEuZWR1L2hlbHBzaGVldHMvcmVnZXguaHRtbCI+cmVndWxhcgorZXhwcmVzc2lvbnM8L2E+IGlzIG5lY2Vzc2FyeSB0byB1c2UgdGhpcyBmZWF0dXJlIGVmZmVjdGl2ZWx5LiAgRm9yIG1vcmUKK2luZm9ybWF0aW9uLCBzZWUKKzxhIGhyZWY9Ii4uL3VzZXJHdWlkZS9kZXZfdmFsaWRhdG9yLmh0bWwiPgorVXNlciBHdWlkZTwvYT48L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9ImF2b2lkVmFsaWRhdGUiCisgICAgICAgICBuYW1lPSJIb3cgY2FuIEkgYXZvaWQgdmFsaWRhdGluZyBhIGZvcm0gYmVmb3JlIGRhdGEgaXMgZW50ZXJlZD8iPgorICAgIDxwPgorICAgIFRoZSBzaW1wbGVzdCB3YXkgaXMgdG8gaGF2ZSB0d28gYWN0aW9ucy4gIFRoZSBmaXJzdCBvbmUgaGFzIHRoZSBqb2Igb2Ygc2V0dGluZworICAgIHRoZSBmb3JtIGRhdGEsIGkuZS4gYSBibGFuayByZWdpc3RyYXRpb24gc2NyZWVuLiAgVGhlIHNlY29uZCBhY3Rpb24gaW4gb3VyCisgICAgd3JpdGVzIHRoZSByZWdpc3RyYXRpb24gZGF0YSB0byB0aGUgZGF0YWJhc2UuIFN0cnV0cworICAgIHdvdWxkIHRha2UgY2FyZSBvZiBpbnZva2luZyB0aGUgdmFsaWRhdGlvbiBhbmQgcmV0dXJuaW5nIHRoZSB1c2VyIHRvIHRoZQorICAgIGNvcnJlY3Qgc2NyZWVuIGlmIHZhbGlkYXRpb24gd2FzIG5vdCBjb21wbGV0ZS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGUgRWRpdFJlZ2lzdHJhdGlvbiBhY3Rpb24gaW4gdGhlIHN0cnV0cyBleGFtcGxlIGFwcGxpY2F0aW9uIGlsbHVzdHJhdGVzIHRoaXM6CisgICAgPC9wPgorCisgICAgICAgIDxwcmU+PGNvZGU+CisgICAgJmx0O2FjdGlvbiBwYXRoPSIvZWRpdFJlZ2lzdHJhdGlvbiIKKyAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC5leGFtcGxlLkVkaXRSZWdpc3RyYXRpb25BY3Rpb24iCisgICAgICAgICBhdHRyaWJ1dGU9InJlZ2lzdHJhdGlvbkZvcm0iCisgICAgICAgICBzY29wZT0icmVxdWVzdCIKKyAgICAgICAgIHZhbGlkYXRlPSJmYWxzZSImZ3Q7CisgICAgICAmbHQ7Zm9yd2FyZCBuYW1lPSJzdWNjZXNzICBwYXRoPSIvcmVnaXN0cmF0aW9uLmpzcCIvJmd0OworICAgICZsdDsvYWN0aW9uJmd0OworICAgICAgICA8L2NvZGU+PC9wcmU+CisKKzxwPgorV2hlbiB0aGUgL2VkaXRSZWdpc3RyYXRpb24gYWN0aW9uIGlzIGludm9rZWQsIGEgcmVnaXN0cmF0aW9uRm9ybSBpcyBjcmVhdGVkIGFuZCBhZGRlZCB0byB0aGUgcmVxdWVzdCwKK2J1dCBpdHMgdmFsaWRhdGUgbWV0aG9kIGlzIG5vdCBjYWxsZWQuIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSA8Y29kZT52YWxpZGF0ZTwvY29kZT4gYXR0cmlidXRlIGlzCis8Y29kZT50cnVlPC9jb2RlPiwgc28gaWYgeW91IGRvIG5vdCB3YW50IGFuIGFjdGlvbiB0byB0cmlnZ2VyIGZvcm0gdmFsaWRhdGlvbiwgeW91IG5lZWQgdG8gcmVtZW1iZXIKK3RvIGFkZCB0aGlzIGF0dHJpYnV0ZSBhbmQgc2V0IGl0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPi4KKzwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJ3aXphcmQiIG5hbWU9IkhvdyBjYW4gSSBjcmVhdGUgYSB3aXphcmQgd29ya2Zsb3c/Ij4KKyAgICA8cD4KKyAgICAgICAgVGhlIGJhc2ljIGlkZWEgaXMgYSBzZXJpZXMgb2YgYWN0aW9ucyB3aXRoIG5leHQsIGJhY2ssIGNhbmNlbAorICAgICAgICBhbmQgZmluaXNoIGFjdGlvbnMgd2l0aCBhIGNvbW1vbiBiZWFuLiAgVXNpbmcgYSBMb29rdXBEaXNwYXRjaEFjdGlvbiBpcworICAgICAgICByZWNjb21lbmRlZCBhcyBpdCBmaXRzIHRoZSBkZXNpZ24gcGF0dGVybiB3ZWxsIGFuZCBjYW4gYmUgaW50ZXJuYXRpb25hbGl6ZWQKKyAgICAgICAgZWFzaWx5LiAgU2luY2UgdGhlIGJlYW4gaXMgc2hhcmVkLCBlYWNoIGNob2ljZSBtYWRlIHdpbGwgYWRkIGRhdGEgdG8gdGhlCisgICAgICAgIHdpemFyZHMgYmFzZSBvZiBpbmZvcm1hdGlvbi4gIEEgc2FtcGxlIG9mIHN0cnV0cy1jb25maWcueG1sIGZvbGxvd3M6CisgICAgPC9wPgorCisgICAgPHByZT48Y29kZT4KKyAgICAgICAgICAgICZsdDtmb3JtLWJlYW5zJmd0OworICAgICAgICAgICAgICAgICZsdDtmb3JtLWJlYW4gIG5hbWU9Ik15V2l6YXJkIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImZvcm1zLk15V2l6YXJkIiAvJmd0OworICAgICAgICAgICAgJmx0Oy9mb3JtLWJlYW5zJmd0OworCisgICAgICAgICZsdDshLS0gdGhlIGZpcnN0IHNjcmVlbiBvZiB0aGUgd2l6YXJkIChuZXh0IGFjdGlvbiBvbmx5IGF2YWlsYWJsZSkgLS0mZ3Q7CisgICAgICAgICZsdDshLS0gbm8gdmFsaWRhdGlvbiwgc2luY2UgdGhlIGZpbmlzaCBhY3Rpb24gaXMgbm90IGF2YWlsYWJsZSAtLSZndDsKKyAgICAgICAgICAgICZsdDthY3Rpb25zJmd0OworICAgICAgICAgICAgICAgICZsdDthY3Rpb24gcGF0aD0iL215d2l6YXJkMSIKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImFjdGlvbnMuTXlXaXphcmQiCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJNeVdpemFyZCIKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlPSJmYWxzZSIKKyAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0PSIvV0VCLUlORi9qc3AvbXl3aXphcmQxLmpzcCImZ3Q7CisgICAgICAgICAgICAgICAgICAgICZsdDtmb3J3YXJkIG5hbWU9Im5leHQiCisgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPSIvV0VCLUlORi9qc3AvbXl3aXphcmQyLmpzcCIgLyZndDsKKyAgICAgICAgICAgICAgICAgICAgJmx0O2ZvcndhcmQgbmFtZT0iY2FuY2VsIgorICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD0iL1dFQi1JTkYvanNwL215d2l6YXJkY2FuY2VsLmpzcCIgLyZndDsKKyAgICAgICAgICAgICAgICAmbHQ7L2FjdGlvbiZndDsKKworICAgICAgICAgICAgICAgICZsdDshLS0gdGhlIHNlY29uZCBzY3JlZW4gb2YgdGhlIHdpemFyZCAoYmFjaywgbmV4dCBhbmQgZmluaXNoKSAtLSZndDsKKyAgICAgICAgICAgICAgICAmbHQ7IS0tIHNpbmNlIGZpbmlzaCBhY3Rpb24gaXMgYXZhaWxhYmxlLCBiZWFuIHNob3VsZCB2YWxpZGF0ZWQsIG5vdGUKKyAgICAgICAgdmFsaWRhdGlvbiBzaG91bGQgbm90IG5lY2Vzc2FyaWx5IHZhbGlkYXRlIGlmIGJhY2sgYWN0aW9uIHJlcXVlc3RlZCwgeW91CisgICAgICAgIG1pZ2h0IGRlbGF5IHZhbGlkYXRpb24gb3IgZG8gY29uZGl0aW9uYWwgdmFsaWRhdGlvbiAtLSZndDsKKyAgICAgICAgICAgICAgICAmbHQ7YWN0aW9uIHBhdGg9Ii9teXdpemFyZDIiCisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJhY3Rpb25zLk15V2l6YXJkIgorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iTXlXaXphcmQiCisgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZT0idHJ1ZSIKKyAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0PSIvV0VCLUlORi9qc3AvbXl3aXphcmQyLmpzcCImZ3Q7CisgICAgICAgICAgICAgICAgICAgICZsdDtmb3J3YXJkIG5hbWU9ImJhY2siCisgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPSIvV0VCLUlORi9qc3AvbXl3aXphcmQxLmpzcCIgLyZndDsKKyAgICAgICAgICAgICAgICAgICAgJmx0O2ZvcndhcmQgbmFtZT0ibmV4dCIKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9Ii9XRUItSU5GL2pzcC9teXdpemFyZDMuanNwIiAvJmd0OworICAgICAgICAgICAgICAgICAgICAmbHQ7Zm9yd2FyZCBuYW1lPSJmaW5pc2giCisgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPSIvV0VCLUlORi9qc3AvbXl3aXphcmRkb25lLmpzcCIgLyZndDsKKyAgICAgICAgICAgICAgICAgICAgJmx0O2ZvcndhcmQgbmFtZT0iY2FuY2VsIgorICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD0iL1dFQi1JTkYvanNwL215d2l6YXJkY2FuY2VsLmpzcCIgLyZndDsKKyAgICAgICAgICAgICAgICAmbHQ7L2FjdGlvbiZndDsKKworICAgICAgICAgICAgICAgICZsdDshLS0gdGhlIGxhc3Qgc2NyZWVuIG9mIHRoZSB3aXphcmQgKGJhY2ssIGZpbmlzaCBhbmQgY2FuY2VsIG9ubHkpIC0tJmd0OworICAgICAgICAgICAgICAgICZsdDthY3Rpb24gcGF0aD0iL215d2l6YXJkMyIKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImFjdGlvbnMuTXlXaXphcmQiCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJNeVdpemFyZCIKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ9Ii9XRUItSU5GL2pzcC9teXdpemFyZDMuanNwIiZndDsKKyAgICAgICAgICAgICAgICAgICAgJmx0O2ZvcndhcmQgbmFtZT0iYmFjayIKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9Ii9XRUItSU5GL2pzcC9teXdpemFyZDIuanNwIiAvJmd0OworICAgICAgICAgICAgICAgICAgICAmbHQ7Zm9yd2FyZCBuYW1lPSJmaW5pc2giCisgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPSIvV0VCLUlORi9qc3AvbXl3aXphcmRkb25lLmpzcCIgLyZndDsKKyAgICAgICAgICAgICAgICAgICAgJmx0O2ZvcndhcmQgbmFtZT0iY2FuY2VsIgorICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD0iL1dFQi1JTkYvanNwL215d2l6YXJkY2FuY2VsLmpzcCIgLyZndDsKKyAgICAgICAgICAgICAgICAmbHQ7L2FjdGlvbiZndDsKKyAgICA8L2NvZGU+PC9wcmU+CisKKyAgIDxwPgorICAgICAgICBUaGUgcGllY2VzIG9mIHRoZSB3aXphcmQgYXJlIGFzIGZvbGxvd3M6CisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIDxzdHJvbmc+Zm9ybXMuTXlXaXphcmQuamF2YTwvc3Ryb25nPiAtIHRoZSBmb3JtIGJlYW4gaG9sZGluZyB0aGUgaW5mb3JtYXRpb24gcmVxdWlyZWQKKyAgICA8L3A+CisgICAgPHA+CisgICAgICAgIDxzdHJvbmc+YWN0aW9ucy5NeVdpemFyZC5qYXZhPC9zdHJvbmc+IC0gdGhlIGFjdGlvbnMgb2YgdGhlIHdpemFyZCwgbm90ZSB0aGUgdXNlIG9mCisgICAgICAgIExvb2t1cERpc3BhdGNoQWN0aW9uIGFsbG93cyBmb3Igb25lIGFjdGlvbiBjbGFzcyB3aXRoIHNldmVyYWwgbWV0aG9kcy4gIEFsbCB0aGUKKyAgICAgICAgcmVhbCB3b3JrIHdpbGwgYmUgZG9uZSBpbiB0aGUgJ2ZpbmlzaCcgbWV0aG9kLgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgICAgPHN0cm9uZz5teXdpemFyZFt4XS5qc3A8L3N0cm9uZz4gLSB0aGUgZGF0YSBjb2xsZWN0aW9uIGpzcCdzCisgICAgPC9wPgorICAgIDxwPgorICAgICAgICA8c3Ryb25nPm15d2l6YXJkZG9uZS5qc3A8L3N0cm9uZz4gLSB0aGUgJ3N1Y2Nlc3MnIHBhZ2UKKyAgICA8L3A+CisgICAgPHA+CisgICAgICAgIDxzdHJvbmc+bXl3aXphcmRjYW5jZWwuanNwPC9zdHJvbmc+IC0gdGhlICdjYW5jZWwnIHBhZ2UKKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworICAgIDxzZWN0aW9uIGhyZWY9ImNoYWluaW5nIiBuYW1lPSJIb3cgY2FuIEkgJ2NoYWluJyBBY3Rpb25zPyI+CisgICAgPHA+CisgICAgICAgIENoYWluaW5nIGFjdGlvbnMgY2FuIGJlIGRvbmUgYnkgc2ltcGx5IHVzaW5nIHRoZSBwcm9wZXIgbWFwcGluZyBpbiB5b3VyCisgICAgICAgIGZvcndhcmQgZW50cmllcyBpbiB0aGUgc3RydXRzLWNvbmZpZy54bWwgZmlsZS4gQXNzdW1lIHlvdSBoYWQgdGhlIGZvbGxvd2luZworICAgICAgICB0d28gY2xhc3NlczoKKyAgICA8L3A+CisgICAgPHByZT48Y29kZT48IVtDREFUQVsKKyAgICAvKiBjb20vQUFjdGlvbi5qYXZhICovCisgICAgLi4uCisKKyAgICBwdWJsaWMgY2xhc3MgQUFjdGlvbiBleHRlbmRzIEFjdGlvbgorICAgIHsKKyAgICAgICAgcHVibGljIEFjdGlvbkZvcndhcmQKKyAgICAgICAgICAgICAgICBleGVjdXRlKEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkgdGhyb3dzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeGNlcHRpb24KKyAgICAgICAgeworICAgICAgICAgICAgLy8gRG8gc29tZXRoaW5nCisKKyAgICAgICAgICAgIHJldHVybiBtYXBwaW5nLmZpbmRGb3J3YXJkKCJzdWNjZXNzIik7CisgICAgICAgIH0KKyAgICB9CisgICAgXV0+PC9jb2RlPjwvcHJlPgorICAgIDxwcmU+PGNvZGU+PCFbQ0RBVEFbCisgICAgLyogY29tL0JBY3Rpb24uamF2YSAqLworICAgIC4uLgorCisgICAgcHVibGljIGNsYXNzIEJBY3Rpb24gZXh0ZW5kcyBBY3Rpb24KKyAgICB7CisgICAgICAgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkCisgICAgICAgICAgICAgICAgZXhlY3V0ZShBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpIHRocm93cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIERvIHNvbWV0aGluZyBlbHNlCisKKyAgICAgICAgICAgIHJldHVybiBtYXBwaW5nLmZpbmRGb3J3YXJkKCJzdWNjZXNzIik7CisgICAgICAgIH0KKyAgICB9CisgICAgXV0+PC9jb2RlPjwvcHJlPgorCisgICAgICAgPHA+CisgICAgICAgVGhlbiB5b3UgY2FuIGNoYWluIHRvZ2V0aGVyIHRoZXNlIHR3byBhY3Rpb25zIHdpdGggdGhlIFN0cnV0cworICAgICAgIGNvbmZpZ3VyYXRpb24gYXMgc2hvd24gaW4gdGhlIGZvbGxvd2luZyBleGNlcnB0OgorICAgICAgIDwvcD4KKworICAgIDxwcmU+PGNvZGU+PCFbQ0RBVEFbCisgICAgLi4uCisgICAgPGFjdGlvbi1tYXBwaW5ncyB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZyI+CisgICAgICAgPGFjdGlvbiBwYXRoPSIvQSIKKyAgICAgICAgICAgICAgIHR5cGU9ImNvbS5BQWN0aW9uIgorICAgICAgICAgICAgICAgdmFsaWRhdGU9ImZhbHNlIj4KKyAgICAgICAgICA8Zm9yd2FyZCBuYW1lPSJzdWNjZXNzIiBwYXRoPSIvQi5kbyIgLz4KKyAgICAgICA8L2FjdGlvbj4KKyAgICAgICA8YWN0aW9uIHBhdGg9Ii9CIgorICAgICAgICAgICAgICAgdHlwZT0iY29tLkJBY3Rpb24iCisgICAgICAgICAgICAgICBzY29wZT0ic2Vzc2lvbiIKKyAgICAgICAgICAgICAgIHZhbGlkYXRlPSJmYWxzZSI+CisgICAgICAgICAgPGZvcndhcmQgbmFtZT0ic3VjY2VzcyIgcGF0aD0iL3Jlc3VsdC5qc3AiIC8+CisgICAgICAgPC9hY3Rpb24+CisgICAgPC9hY3Rpb24tbWFwcGluZ3M+CisgICAgLi4uCisgICAgXV0+PC9jb2RlPjwvcHJlPgorCisgICAgICAgPHA+CisgICAgICAgSGVyZSB3ZSBhcmUgYXNzdW1pbmcgeW91IGFyZSB1c2luZyBhIHN1ZmZpeC1iYXNlZCAoPGNvZGU+LmRvPC9jb2RlPikgc2VydmxldAorICAgICAgIG1hcHBpbmcsIHdoaWNoIGlzIHJlY29tbWVuZGVkIHNpbmNlIG1vZHVsZSBzdXBwb3J0IHJlcXVpcmVzIGl0LiBXaGVuIHlvdQorICAgICAgIHNlbmQgeW91ciBicm93c2VyIHRvIHRoZSB3ZWIgYXBwbGljYXRpb24gYW5kIG5hbWUgdGhlIGFjdGlvbgorICAgICAgIDxjb2RlPkEuZG88L2NvZGU+IChpLmUuIDxjb2RlPmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9hcHAvQS5kbzwvY29kZT4pIGl0IHdpbGwKKyAgICAgICBleGVjdXRlIDxjb2RlPkFBY3Rpb24uZXhlY3V0ZSgpPC9jb2RlPiwgd2hpY2ggd2lsbCB0aGVuIGZvcndhcmQgdG8gdGhlCisgICAgICAgInN1Y2Nlc3MiIG1hcHBpbmcuCisgICAgICAgPC9wPgorCisgICAgICAgPHA+CisgICAgICAgVGhpcyBjYXVzZXMgdGhlIGV4ZWN1dGlvbiBvZiA8Y29kZT5CQWN0aW9uLmV4ZWN1dGUoKTwvY29kZT4gc2luY2UgdGhlCisgICAgICAgPGNvZGU+Jmx0O2ZvcndhcmQmZ3Q7PC9jb2RlPiBlbnRyeSBmb3IgInN1Y2Nlc3MiIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUKKyAgICAgICB1c2VzIHRoZSA8Y29kZT4uZG88L2NvZGU+IHN1ZmZpeC4KKyAgICAgICA8L3A+CisKKyAgICAgICA8cD4KKyAgICAgICBPZiBjb3Vyc2UgaXQgaXMgYWxzbyBwb3NzaWJsZSB0byBjaGFpbiBhY3Rpb25zIHByb2dyYW1tYXRpY2FsbHksIGJ1dCB0aGUKKyAgICAgICBwb3dlciBhbmQgZWFzZSBvZiBiZWluZyBhYmxlIHRvICJyZXJvdXRlIiB5b3VyIHdlYiBhcHBsaWNhdGlvbidzIHN0cnVjdHVyZQorICAgICAgIHVzaW5nIHRoZSBYTUwgY29uZmlndXJhdGlvbiBmaWxlIGlzIG11Y2ggZWFzaWVyIHRvIG1haW50YWluLgorICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICBBcyBhIHJ1bGUsIGNoYWluaW5nIEFjdGlvbnMgaXMgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gcmVjb21tZW5kZWQuCisgICAgSWYgeW91ciBidXNpbmVzcyBjbGFzc2VzIGFyZSBwcm9wZXJseSBmYWN0b3JlZCwgeW91IHNob3VsZCBiZSBhYmxlIHRvIGNhbGwKKyAgICB3aGF0ZXZlciBtZXRob2RzIHlvdSBuZWVkIGZyb20gYW55IEFjdGlvbiwgd2l0aG91dCBzcGxpY2luZyB0aGVtIHRvZ2V0aGVyCisgICAgaW50byBhIGN5YmVybmV0aWMgUnViZSBHb2xkYmVyZyBkZXZpY2UuCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICBJZiB5b3UgbXVzdCBjaGFpbiBBY3Rpb25zLCBiZSBhd2FyZSBvZiB0aGUgZm9sbG93aW5nOgorICAgIGNhbGxpbmcgdGhlIHNlY29uZCBBY3Rpb24gZnJvbSB0aGUgZmlyc3QgQWN0aW9uIGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgY2FsbGluZyB0aGUgc2Vjb25kCisgICAgQWN0aW9uIGZyb20gc2NyYXRjaC4KKyAgICBJZiBib3RoIG9mIHlvdXIgQWN0aW9ucyBjaGFuZ2UgdGhlIHByb3BlcnRpZXMgb2YgYSBmb3JtYmVhbiwKKyAgICB0aGUgY2hhbmdlcyBtYWRlIGJ5IHRoZSBmaXJzdCBBY3Rpb24gd2lsbCBiZSBsb3N0IGJlY2F1c2UgU3RydXRzIGNhbGxzIHRoZSByZXNldCgpIG1ldGhvZCBvbgorICAgIHRoZSBmb3JtYmVhbiB3aGVuIHRoZSBzZWNvbmQgQWN0aW9uIGlzIGNhbGxlZC4KKyAgICAgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uCisgICAgaHJlZj0idW5kb2N1bWVudGVkIgorICAgIG5hbWU9IklmIHlvdSB3b3VsZCBsaWtlIHRvIGNvbnRyaWJ1dGUsIGhlcmUgaXMgYSBsaXN0IG9mCisgICAgcG9wdWxhciBidXQgdW5kb2N1bWVudGVkIHF1ZXN0aW9ucyI+CisKKyAgICA8dWw+CisKKyAgICA8bGk+SG93IGNhbiBJIGNhcHR1cmUgYmluYXJ5IG9yIGZvcm1hdHRlZCB2YWx1ZXMsIGxpa2UgZGF0ZXMgb3IgdGVsZXBob25lIG51bWJlcnM/PC9saT4KKworICAgIDxsaT5XaHkgZG8gbXkgb3B0aW9uIGxpc3RzIGRpc2FwcGVhciB3aGVuIHZhbGlkYXRpb24gZmFpbHM/PC9saT4KKworICAgIDxsaT5XaHkgY2FuJ3QgSSBkaXNhYmxlIFVSTC1lbmNvZGluZyBpbiB0aGUgU3RydXRzIHRhZ2xpYnM/PC9saT4KKworICAgIDxsaT5DYW4gSSBjcmVhdGUgZHluYW1pYyBBY3Rpb25Gb3J3YXJkcz88L2xpPgorCisgICAgPGxpPkhvdyBjYW4gSSB1c2UgbXkgb3duIChBY3Rpb25Gb3JtLCBBY3Rpb25Gb3J3YXJkLCBBY3Rpb25NYXBwaW5nLCBBY3Rpb25TZXJ2bGV0KSBjbGFzcz88L2xpPgorCisgICAgPC91bD4KKworPC9zZWN0aW9uPgorCis8L2JvZHk+PC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ZhcXMvcHJvamVjdC54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL3Byb2plY3QueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxNGVjOTQKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL3Byb2plY3QueG1sCkBAIC0wLDAgKzEsNzEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKworPHByb2plY3QgCisgICAgbmFtZT0iQXBhY2hlIFN0cnV0cyBXZWIgQXBwbGljYXRpb24gRnJhbWV3b3JrIgorICAgIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzIgorICAgIGltYWdlPSJpbWFnZXMvc3RydXRzLmdpZiIKKyAgICBhdXRob3JzPSJmYWxzZSI+CisKKyAgICA8dGl0bGU+QXBhY2hlIFN0cnV0cyBXZWIgQXBwbGljYXRpb24gRnJhbWV3b3JrPC90aXRsZT4KKworICAgIDxtZW51IG5hbWU9IkZBUXMiPgorICAgICAgICA8aXRlbSAKKyAgICAgICAgICAgIGhyZWY9ImtpY2tzdGFydC5odG1sIiAKKyAgICAgICAgICAgIG5hbWU9IktpY2tzdGFydCIvPgorICAgICAgICA8aXRlbSAKKyAgICAgICAgICAgIGhyZWY9Im5ld2JpZS5odG1sIiAKKyAgICAgICAgICAgIG5hbWU9Ik5ld2JpZSIvPgorICAgICAgICA8aXRlbSAKKyAgICAgICAgICAgIGhyZWY9ImhlbHBpbmcuaHRtbCIgCisgICAgICAgICAgICBuYW1lPSJIb3cgdG8gSGVscCIvPgorICAgIDwvbWVudT4KKworICAgIDxtZW51IG5hbWU9Ikhvd3RvIEd1aWRlcyI+CisgICAgICAgIDxpdGVtIAorICAgICAgICAgICAgaHJlZj0iYWN0aW9uRm9ybS5odG1sIiAKKyAgICAgICAgICAgIG5hbWU9IkFjdGlvbiBGb3JtcyIvPgorICAgICAgICA8aXRlbSAKKyAgICAgICAgICAgIGhyZWY9ImFwcHMuaHRtbCIgCisgICAgICAgICAgICBuYW1lPSJCdWlsZGluZyBBcHBzIi8+CisgICAgICAgIDxpdGVtIAorICAgICAgICAgICAgaHJlZj0iZGF0YWJhc2UuaHRtbCIgCisgICAgICAgICAgICBuYW1lPSJEYXRhYmFzZSIvPgorICAgICAgICA8aXRlbSAKKyAgICAgICAgICAgIGhyZWY9ImluZGV4ZWRwcm9wcy5odG1sIiAKKyAgICAgICAgICAgIG5hbWU9IkluZGV4ZWQgUHJvcGVydGllcyIvPgorICAgICAgICA8aXRlbSAKKyAgICAgICAgICAgIGhyZWY9InNzbC5odG1sIiAKKyAgICAgICAgICAgIG5hbWU9IlNTTCIvPgorCisgICAgICAgIDxpdGVtCisgICAgICAgICAgICBocmVmPSJzdHJ1dHMtZWwuaHRtbCIKKyAgICAgICAgICAgIG5hbWU9IlN0cnV0cy1FTCAoSlNUTCkiLz4KKyAgICA8L21lbnU+CisKKyAgICA8bWVudSBuYW1lPSJJREUgR3VpZGVzIj4KKyAgICAgICAgPGl0ZW0gCisgICAgICAgICAgICBocmVmPSJlY2xpcHNlLmh0bWwiIAorICAgICAgICAgICAgbmFtZT0iRWNsaXBzZSIvPgorICAgICAgICA8aXRlbSAKKyAgICAgICAgICAgIGhyZWY9Im5ldGJlYW5zLmh0bWwiIAorICAgICAgICAgICAgbmFtZT0iTmV0YmVhbnMiLz4KKyAgICA8L21lbnU+CisKKyAgICA8bWVudSBuYW1lPSJRdWljayBMaW5rcyI+CisgICAgICAgIDxpdGVtIAorICAgICAgICAgICAgbmFtZT0iV2VsY29tZSIgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaHJlZj0iLi4vaW5kZXguaHRtbCIvPgorCisgICAgICAgIDxpdGVtCisgICAgICAgIAluYW1lPSJVc2VyIGFuZCBEZXZlbG9wZXIgR3VpZGVzIgorICAgICAgICAgICAgaHJlZj0iLi4vdXNlckd1aWRlL2luZGV4Lmh0bWwiCisgICAgICAgICAgICAvPgorICAgIDwvbWVudT4KKworPC9wcm9qZWN0PgorCisKKworCisKKwpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZmFxcy9zc2wueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZmFxcy9zc2wueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkMWZhNTUKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL3NzbC54bWwKQEAgLTAsMCArMSwxMzggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorCis8ZG9jdW1lbnQgdXJsPSIuL3NzbC54bWwiPgorCis8cHJvcGVydGllcz4KKworCis8dGl0bGU+U2VjdXJlIFNvY2tldCBMYXllciBhbmQgV2ViIEFwcGxpY2F0aW9ucyAtIEFwYWNoZSBTdHJ1dHM8L3RpdGxlPgorCis8L3Byb3BlcnRpZXM+CisKKzxib2R5PgorCis8c2VjdGlvbiBocmVmPSJzc2wiIG5hbWU9IlNlY3VyZSBTb2NrZXQgTGF5ZXIgYW5kIFdlYiBBcHBsaWNhdGlvbnMiLz4KKworPHNlY3Rpb24gaHJlZj0ib3ZlcnZpZXciIG5hbWU9Ik92ZXJ2aWV3Ij4KKworPHA+CitNYW55IHdlYiBhcHBsaWNhdGlvbnMsIGVzcGVjaWFsbHkgdGhvc2UgZGVwbG95ZWQgZm9yIGUtY29tbWVyY2UsIG5lY2Vzc2l0YXRlIHRoZQordHJhbnNtaXNzaW9uIG9mIHNlbnNpdGl2ZSBkYXRhIGJldHdlZW4gdGhlIHdlYiBzZXJ2ZXIgYW5kIHRoZSBjbGllbnQgYnJvd3Nlci4gIFRoaXMgZGF0YQorbWF5IGluY2x1ZGUgcGFzc3dvcmRzLCBjcmVkaXQgY2FyZCBudW1iZXJzLCBiYW5rIGFjY291bnQgbnVtYmVycyBvciBhbnkgb3RoZXIKK2luZm9ybWF0aW9uIHRoYXQgdXNlcnMgd291bGQgbm90IHdhbnQgdG8gZGl2dWxnZSB0byB0aGUgZ2VuZXJhbCBwdWJsaWMuIFRvIHByb3RlY3QKK3NlbnNpdGl2ZSBkYXRhIGR1cmluZyB0cmFuc21pc3Npb24sIGFwcGxpY2F0aW9uIGRldmVsb3BlcnMgdHlwaWNhbGx5IHVzZSB0aGUgU2VjdXJlCitTb2NrZXRzIExheWVyIChTU0wpIGFuZCBpdHMgY29tcGFuaW9uIHByb3RvY29sLCBIVFRQIG92ZXIgU2VjdXJlIFNvY2tldHMgTGF5ZXIKKyhIVFRQUykuIEhUVFBTIGVtcGxveXMgU1NMIHRvIHByb3RlY3QgZGF0YSBieSBlbmNyeXB0aW5nIGl0IGF0IHRoZSBzb3VyY2UsIGJlIGl0IHRoZQorc2VydmVyIG9yIHRoZSBjbGllbnQsIGFuZCBkZWNyeXB0aW5nIGl0IGF0IHRoZSBkZXN0aW5hdGlvbi4gVGhpcyBwcmV2ZW50cyBhbnlvbmUgbW9uaXRvcmluZworSW50ZXJuZXQgZGF0YSB0cmFuc21pc3Npb25zIGZyb20gZWFzaWx5IGNhcHR1cmluZyB0aGlzIGRhdGEuIFRoZSBjbGllbnQgYW5kIHNlcnZlcgorZXhjaGFuZ2UgcHVibGljIGtleXMgdG8gZW5hYmxlIGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24gdG8gb2NjdXIuCis8L3A+CisKKzxwPgorVGhlIGVuY3J5cHRpb24vZGVjcnlwdGlvbiBwcm9jZXNzIGNvbWVzIGF0IGEgcGVyZm9ybWFuY2UgcHJpY2UsIGhvd2V2ZXIuIFRoZQordGhyb3VnaHB1dCBvZiBkYXRhIGZvciBhIHdlYiBzZXJ2ZXIgdHJhbnNtaXR0aW5nIHZpYSBIVFRQUyBpcyBvZnRlbiBhcyBsaXR0bGUgYXMgb25lLXRlbnRoCit0aGF0IG9mIGRhdGEgdHJhbnNtaXNzaW9uIHZpYSBIVFRQLiBGb3IgdGhpcyByZWFzb24sIGl0IGlzIHVuZGVzaXJhYmxlIHRvIGRlcGxveSBhbiBlbnRpcmUKK3dlYiBhcHBsaWNhdGlvbiB1bmRlciBTU0wuIEZvciBmYXN0ZXN0IHBlcmZvcm1hbmNlLCBpdCBpcyBiZXN0IHRvIGRlcGxveSBhIHdlYgorYXBwbGljYXRpb24gdW5kZXIgSFRUUCBhbmQgZW1wbG95IEhUVFBTIG9ubHkgZm9yIHRob3NlIHBhZ2VzIGFuZCBwcm9jZXNzZXMgdGhhdAordHJhbnNtaXQgc2Vuc2l0aXZlIGRhdGEuCis8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0ibWl4aW5nIiBuYW1lPSJNaXhpbmcgUHJvdG9jb2xzIGluIFdlYiBBcHBsaWNhdGlvbnMiPgorCis8cD4KK1N3aXRjaGluZyBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuIHRoZSB0d28gcHJvdG9jb2xzIGNhbiByZXF1aXJlIGhhcmQtY29kaW5nIHRoZSBwcm90b2NvbAorYW5kIGZ1bGwgVVJMIGluIGV2ZXJ5IGxpbmsgdG8gZWFjaCByZXNvdXJjZSBpbiB0aGUgd2ViIGFwcGxpY2F0aW9uLiBUaGlzIGNyZWF0ZXMgYW4KK29uZ29pbmcgbWFpbnRlbmFuY2UgaGVhZGFjaGUgZm9yIGRldmVsb3BlcnMgZWFjaCB0aW1lIGEgc2VydmVyIG5hbWUgY2hhbmdlcyBvciBzZWN1cmUKK3Byb3RvY29sIHJlcXVpcmVtZW50cyBjaGFuZ2UgZm9yIHJlc291cmNlcyBpbiB0aGUgd2ViIGFwcC4KKzwvcD4KKworPHA+CitBbm90aGVyIHNpZ25pZmljYW50IGhhemFyZCBpcyB0aGF0IHRoZXJlIGlzIG5vdGhpbmcgdG8gcHJldmVudCBhIHVzZXIgZnJvbSBzcGVjaWZ5aW5nIHRoZQord3JvbmcgcHJvdG9jb2wgYnkgbWFudWFsbHkgZW50ZXJpbmcgYSBVUkwgaW50byB0aGUgYnJvd3Nlci4gVGhlIHBlbmFsdHkgZm9yIG1hbnVhbGx5CitzcGVjaWZ5aW5nIEhUVFBTIGZvciBhIHBhZ2Ugb3Igc2VydmxldCB0aGF0IGRvZXMgbm90IHJlcXVpcmUgSFRUUFMgaXMgcmVkdWNlZAorcGVyZm9ybWFuY2UuIEZhciB3b3JzZSBpcyB0aGUgcGVuYWx0eSBmb3IgbWFudWFsbHkgc3BlY2lmeWluZyBIVFRQIGZvciBub24tc2VjdXJlCithY2Nlc3Mgb2YgYSBwYWdlIHRoYXQgZG9lcyByZXF1aXJlIEhUVFBTOiBwdWJsaWMgZXhwb3N1cmUgb2Ygc2Vuc2l0aXZlIGRhdGEuCis8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0iaGVscCIgbmFtZT0iSGVscCBmcm9tIERlcGxveW1lbnQgRGVzY3JpcHRvciI+CisKKzxwPgorVG8gaGVscCBvdmVyY29tZSB0aGUgcHJvYmxlbSBvZiBub24tc2VjdXJlIGFjY2VzcyBvZiBzZW5zaXRpdmUgZGF0YSwgdGhlIEphdmEgU2VydmxldAorU3BlY2lmaWNhdGlvbiAodmVyc2lvbnMgMi4yIGFuZCAyLjMpIGRlZmluZXMgdGhlIHRyYW5zcG9ydC1ndWFyYW50ZWUgZWxlbWVudCBvZiB0aGUKK3dlYi54bWwgZGVwbG95bWVudCBkZXNjcmlwdG9yIGZpbGUuIFRoZSB0cmFuc3BvcnQtZ3VhcmFudGVlIGVsZW1lbnQgbXVzdCBzcGVjaWZ5IG9uZQorb2YgdGhyZWUgdHlwZXMgb2YgcHJvdGVjdGlvbiBmb3IgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIGNsaWVudCBhbmQgc2VydmVyOiBOT05FLAorSU5URUdSQUwsIG9yIENPTkZJREVOVElBTC4gRm9yIG1vc3QgY29udGFpbmVycyBhIHNwZWNpZmljYXRpb24gb2YgSU5URUdSQUwKK29yIENPTkZJREVOVElBTCBpcyB0cmVhdGVkIGFzIGEgcmVxdWlyZW1lbnQgZm9yIFNTTCB1c2FnZS4gV2ViIGFwcGxpY2F0aW9uCitjb250YWluZXJzIHdpbGwgcHJldmVudCB1c2VycyBmcm9tIGFjY2Vzc2luZyB3ZWIgcmVzb3VyY2VzIG92ZXIgSFRUUCBpZiB0aGV5IGhhdmUgYmVlbgorc28gc3BlY2lmaWVkLgorPC9wPgorCis8cD4KK1RoZSBpbXBsZW1lbnRhdGlvbiBmb3IgYmxvY2tpbmcgSFRUUCBhY2Nlc3MgdG8gd2ViIHJlc291cmNlcyBzcGVjaWZpZWQgYXMgSU5URUdSQUwKK29yIENPTkZJREVOVElBTCB2YXJpZXMgZnJvbSBjb250YWluZXIgdG8gY29udGFpbmVyLiBJZiBhIHVzZXIgYXR0ZW1wdHMgdG8gYWNjZXNzIHN1Y2gKK2EgcmVzb3VyY2Ugb3ZlciBIVFRQLCBzb21lIGNvbnRhaW5lcnMgd2lsbCBwcmVzZW50IHRoYXQgdXNlciB3aXRoIGFuIGVycm9yIG1lc3NhZ2UKK2luc3RydWN0aW5nIHRoZW0gdG8gdXNlIHRoZSBIVFRQUyBwcm90b2NvbCBmb3IgYWNjZXNzaW5nIHRoZSByZXF1ZXN0ZWQgcmVzb3VyY2UuIE90aGVyCitjb250YWluZXJzIHdpbGwgYWN0dWFsbHkgcmVkaXJlY3QgdGhlIHJlcXVlc3QgdXNpbmcgdGhlIEhUVFBTIHByb3RvY29sLCBidXQgdGhlbiBjb250aW51ZQordXNpbmcgdGhlIEhUVFBTIHByb3RvY29sIGZvciBhbGwgc3Vic2VxdWVudCByZXF1ZXN0cywgZXZlbiB0aG9zZSBmb3IgcmVzb3VyY2VzIHdpdGggYQordHJhbnNwb3J0LWd1YXJhbnRlZSBzcGVjaWZpY2F0aW9uIG9mIE5PTkUuCis8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0ic3NsZXh0IiBuYW1lPSJUaGUgc3NsZXh0IFN0cnV0cyBFeHRlbnNpb24iPgorCis8cD4KK0FuIGV4dGVuc2lvbiB0byBTdHJ1dHMgMS4xLCBuYW1lZCBzc2xleHQsIGhlbHBzIHNvbHZlIG1hbnkgb2YgdGhlc2UgaXNzdWVzIGZvciBTdHJ1dHMKK2RldmVsb3BlcnMuIEl0IGV4dGVuZHMgdGhlIEFjdGlvbkNvbmZpZyBjbGFzcywgUmVxdWVzdFByb2Nlc3NvciwgYW5kIFBsdWdpbiBjbGFzc2VzIHRvCitkZWZpbmUgYSBmcmFtZXdvcmsgd2hlcmUgZGV2ZWxvcGVycyBtYXkgc3BlY2lmeSB0aGUgdHJhbnNtaXNzaW9uIHByb3RvY29sIGJlaGF2aW9yIGZvcgorU3RydXRzIGFwcGxpY2F0aW9ucy4gV2l0aGluIHRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlLCBkZXZlbG9wZXJzIHNwZWNpZnkgd2hpY2ggYWN0aW9uCityZXF1ZXN0cyByZXF1aXJlIEhUVFBTIHRyYW5zbWlzc2lvbiBhbmQgd2hpY2ggc2hvdWxkIHVzZSBIVFRQLiBEZXZlbG9wZXJzIGNhbiBhbHNvCitzcGVjaWZ5IHdoZXRoZXIgdG8gcmVkaXJlY3QgImltcHJvcGVybHktcHJvdG9jb2xlZCIgcmVxdWVzdHMgdG8gdGhlIGNvcnJlY3QgcHJvdG9jb2wuCis8L3A+CisKKzxwPgorSW4gYWRkaXRpb24gdG8gdGhlc2UgZXh0ZW5zaW9ucywgdGhlICZsdDtodG1sOmxpbms+IGFuZCB0aGUgJmx0O2h0bWw6Zm9ybT4gdGFncyBoYXZlIGJlZW4KK2V4dGVuZGVkLiBJbiB0aGVzZSBleHRlbnNpb25zLCB0aGUgU3RydXRzIGFjdGlvbnMgc3BlY2lmaWVkIGluIGVpdGhlciBvZiB0aGVzZSB0YWdzIGFyZQorYW5hbHl6ZWQgdG8gZGV0ZXJtaW5lIHRoZSBwcm90b2NvbCB0aGF0IHNob3VsZCBiZSB1c2VkIGluIHJlcXVlc3RpbmcgdGhhdCBhY3Rpb24uIFRoZQorSFRNTCBnZW5lcmF0ZWQgYnkgdGhlc2UgdGFncyB3aWxsIHNwZWNpZnkgdGhlIHByb3BlciBwcm90b2NvbC4gQW4gYWRkaXRpb25hbCBjdXN0b20KK3RhZyBpcyBkZWZpbmVkIGZvciBhbGxvd2luZyB1c2VycyB0byBzcGVjaWZ5IHRoZSB0cmFuc21pc3Npb24gcHJvdG9jb2wgZm9yIGFuIGluZGl2aWR1YWwKK0pTUC4gVGhpcyBpcyBtb3N0IG9mdGVuIHVzZWQgZm9yIGZvcm0tYmFzZWQgYXV0aGVudGljYXRpb24gcGFnZXMuCis8L3A+CisKKzxwPgorVGhlIHNzbGV4dCBsaWJyYXJ5IG1heSBiZSBvYnRhaW5lZCBmcm9tIDxhIGhyZWY9Imh0dHA6Ly9zc2xleHQuc291cmNlZm9yZ2UubmV0Ij4KK2h0dHA6Ly9zc2xleHQuc291cmNlZm9yZ2UubmV0PC9hPgorPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9ImxlZ2FjeSIgbmFtZT0iTGVnYWN5IEJyb3dzZXIgSXNzdWUiPgorCis8cD4KK09uZSBhZGRpdGlvbmFsIGNvbXBsaWNhdGlvbiBmYWNlZCBieSBkZXZlbG9wZXJzIG9mIHdlYiBhcHBsaWNhdGlvbnMgaXMgdGhhdCBzb21lCiticm93c2VycyAoZS5nLiBwcmUtNi4wIHZlcnNpb25zIG9mIE5ldHNjYXBlIE5hdmlnYXRvcikgd2lsbCB0cmVhdCByZXF1ZXN0cyB0byBkaWZmZXJlbnQKK3Byb3RvY29scyBhbmQgcG9ydHMgb24gdGhlIHNhbWUgc2VydmVyIGFzIHJlcXVlc3RzIHRvIGRpZmZlcmVudCBkb21haW5zLiBUaGlzIGNhdXNlcwordGhlc2UgYnJvd3NlcnMgdG8gaW5pdGlhdGUgYSBuZXcgc2Vzc2lvbiBlYWNoIHRpbWUgYSBkaWZmZXJlbnQgcHJvdG9jb2wgb3IgcG9ydCBpcyBzcGVjaWZpZWQKK2luIGEgcmVxdWVzdC4gVGhpcyBwcm9ibGVtIGNhbiBvbmx5IGJlIHNvbHZlZCBhdCB0aGUgY29udGFpbmVyIGxldmVsLiBTb21lIGNvbnRhaW5lcnMKK2hhdmUgYSAic2Vzc2lvbiBkb21haW4iIG9yICJjb29raWUgZG9tYWluIiBjb25maWd1cmF0aW9uIHBhcmFtZXRlciB0byBhbGxvdyB0aGUgc2Vzc2lvbgordG8gYmUgc2hhcmVkIGFjcm9zcyBkaWZmZXJlbnQgc2VydmVycyBpbiB0aGUgc2FtZSBkb21haW4uIEFzIGFuIGV4YW1wbGUsIHRoZSBXZWJsb2dpYworU2VydmVyIGhhcyBhICJDb29raWVEb21haW4iIHByb3BlcnR5IGNvbmZpZ3VyZWQgaW4gaXRzIHdlYmxvZ2ljLnhtbCBkZXBsb3ltZW50CitkZXNjcmlwdG9yLiBUaGFua2Z1bGx5LCB0aGUgZWZmZWN0cyBvZiB0aGlzIHByb2JsZW0gYXJlIGRpbWluaXNoaW5nIGFzIHBlb3BsZSB1cGdyYWRlCit0aGVpciBicm93c2VycyB0byB0aGUgY3VycmVudCB2ZXJzaW9ucy4KKzwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJjb250YWluZXJzIiBuYW1lPSJDb25maWd1cmluZyBDb250YWluZXJzIGZvciBTU0wiPgorCitUaGUgcHJvY2VkdXJlIGZvciBjb25maWd1cmluZyBTU0wgZm9yIGEgY29udGFpbmVyIHdpbGwgYmUgc3BlY2lmaWMgdG8gdGhhdCBjb250YWluZXIuICBUaGUKK3Byb2NlZHVyZSBmb3IgZW5hYmxpbmcgU1NMIGZvciBUb21jYXQgY2FuIGJlIGZvdW5kCis8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RvbWNhdC90b21jYXQtNC4xLWRvYy9zc2wtaG93dG8uaHRtbCI+aGVyZTwvYT4uCisKKzwvc2VjdGlvbj4KKworPC9ib2R5PjwvZG9jdW1lbnQ+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL3N0cnV0cy1lbC54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL3N0cnV0cy1lbC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU5YTgwMQotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ZhcXMvc3RydXRzLWVsLnhtbApAQCAtMCwwICsxLDEzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSIuL3N0cnV0cy1lbC54bWwiPgorPHByb3BlcnRpZXM+Cis8dGl0bGU+U3RydXRzIEVMIEV4dGVuc2lvbiAtIEFwYWNoZSBTdHJ1dHM8L3RpdGxlPgorPC9wcm9wZXJ0aWVzPgorPGJvZHk+Cis8c2VjdGlvbiBocmVmPSJmYXEiIG5hbWU9IlN0cnV0cyBFTCBFeHRlbnNpb24iLz4KKworICAgIDxzZWN0aW9uIGhyZWY9IkludHJvZHVjdGlvbiIgbmFtZT0iSW50cm9kdWN0aW9uIj4KKworICAgIDxwPgorICAgICAgICBUaGlzIHN1YnByb2plY3QgaXMgYW4gZXh0ZW5zaW9uIG9mIHRoZSBTdHJ1dHMgdGFnIGxpYnJhcnkuICBFYWNoIEpTUCBjdXN0b20gdGFnCisgICAgICAgaW4gdGhpcyBsaWJyYXJ5IGlzIGEgc3ViY2xhc3Mgb2YgYW4gYXNzb2NpYXRlZCB0YWcgaW4gdGhlIFN0cnV0cyB0YWcgbGlicmFyeS4KKyAgICAgICBPbmUgZGlmZmVyZW5jZSBpcyB0aGF0IHRoaXMgdGFnIGxpYnJhcnkgZG9lcyBub3QgdXNlICJydGV4cHJ2YWx1ZXMiLCBpdCB1c2VzCisgICAgICAgdGhlIGV4cHJlc3Npb24gZXZhbHVhdGlvbiBlbmdpbmUgaW4gdGhlIEpha2FydGEgVGFnbGlicyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUKKyAgICAgICBKU1AgU3RhbmRhcmQgVGFnIExpYnJhcnkgKHZlcnNpb24gMS4wKSB0byBldmFsdWF0ZSBhdHRyaWJ1dGUgdmFsdWVzLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgIEluIGFkZGl0aW9uLCBzb21lIG9mIHRoZSBTdHJ1dHMgdGFncyB3ZXJlIG5vdCBwb3J0ZWQgdG8gdGhpcyBsaWJyYXJ5LCBhcyBpdCB3YXMKKyAgICAgICBkZXRlcm1pbmVkIHRoYXQgdGhlaXIgZnVuY3Rpb25hbGl0eSB3YXMgZW50aXJlbHkgc3VwcGxpZWQgYnkgdGhlIEpTVEwuICBUaGVzZQorICAgICAgIHBhcnRpY3VsYXIgU3RydXRzIHRhZ3MsIGFuZCB0aGUgcmVhc29uIGZvciB0aGVpciBub24tcG9ydGluZyB3aWxsIGJlIGRlc2NyaWJlZAorICAgICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGlzIGxpYnJhcnkuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgSW4gb3JkZXIgdG8gZnVsbHkgdW5kZXJzdGFuZCB0aGUgY29ycmVjdCB1dGlsaXphdGlvbiBvZiB0aGlzIGxpYnJhcnksIHlvdSBtdXN0CisgICAgICAgdW5kZXJzdGFuZCB0aGUgdXNlIGFuZCBvcGVyYXRpb24gb2YgdGhlIFN0cnV0cyB0YWcgbGlicmFyeSwgYW5kIHRoZSB1c2UgYW5kCisgICAgICAgb3BlcmF0aW9uIG9mIHRoZSBKYXZhU2VydmVyIFBhZ2VzIFN0YW5kYXJkIFRhZyBMaWJyYXJ5IChoZXJlYWZ0ZXIgY2FsbGVkIHRoZQorICAgICAgICJKU1RMIiksIGFsb25nIHdpdGggdGhlIGV4cHJlc3Npb24gbGFuZ3VhZ2UgKHNvbWV0aW1lcyBjYWxsZWQgdGhlICJFTCIpIHVzZWQKKyAgICAgICBmb3IgZXZhbHVhdGluZyBhdHRyaWJ1dGUgdmFsdWVzLgorICAgIDwvcD4KKworICAgIDwvc2VjdGlvbj4KKworICAgICAgIDxzZWN0aW9uIGhyZWY9IlRhZ01hcHBpbmciIG5hbWU9IlRhZyBNYXBwaW5nIj4KKworICAgIDxwPgorICAgICAgIEluIGltcGxlbWVudGluZyB0aGUgU3RydXRzLUVMIGxpYnJhcnksIGV2ZXJ5IFN0cnV0cyB0YWcgdGhhdCBwcm92aWRlcyBhIGZlYXR1cmUKKyAgICAgICB0aGF0IGlzIG5vdCBjb3ZlcmVkIGJ5IHRoZSBKU1RMICgxLjApIGxpYnJhcnkgaXMgbWFwcGVkIGludG8gdGhlIFN0cnV0cy1FTAorICAgICAgIGxpYnJhcnkuICBUaGlzIHNlY3Rpb24gcmV2aWV3cyB3aGljaCBTdHJ1dHMgdGFncyBhcmUgTk9UIGltcGxlbWVudGVkIGluIHRoZQorICAgICAgIFN0cnV0cy1FTCBsaWJyYXJ5LCBhbmQgd2hpY2ggSlNUTCB0YWdzIHByb3ZpZGUgdGhhdCBmZWF0dXJlLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgIE1hbnkgb2YgdGhlIG5vbi1wb3J0aW5nIGRlY2lzaW9ucyB3ZXJlIGJhc2VkIG9uIHRoZSBmYWN0IHRoYXQgdGhlIEpTVEwKKyAgICAgICBleHByZXNzaW9uIGxhbmd1YWdlIGl0c2VsZiBwcm92aWRlcyB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5LiAgSW4gdGhvc2UgY2FzZXMsIGluCisgICAgICAgYWRkaXRpb24gdG8gYSBwb3NzaWJsZSBKU1RMIHRhZyBuYW1lLCB0aGUgc3ltYm9sICJFTCIgd2lsbCBiZSBsaXN0ZWQuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgPHN0cm9uZz4gQmVhbiBUYWcgTGlicmFyeSBUYWdzIE5PVCBJbXBsZW1lbnRlZCBpbiBTdHJ1dHMtRUw8L3N0cm9uZz4KKyAgICA8L3A+CisKKyAgICA8dGFibGU+CisgICAgPHRyPjx0aD5TdHJ1dHMgVGFnPC90aD48dGg+SlNUTCBUYWc8L3RoPjwvdHI+CisgICAgPHRyPjx0ZD5jb29raWU8L3RkPjx0ZD5jOnNldCwgRUw8L3RkPjwvdHI+CisgICAgPHRyPjx0ZD5kZWZpbmU8L3RkPjx0ZD5jOnNldCwgRUw8L3RkPjwvdHI+CisgICAgPHRyPjx0ZD5oZWFkZXI8L3RkPjx0ZD5jOnNldCwgRUw8L3RkPjwvdHI+CisgICAgPHRyPjx0ZD5pbmNsdWRlPC90ZD48dGQ+YzppbXBvcnQ8L3RkPjwvdHI+CisgICAgPHRyPjx0ZD5wYXJhbWV0ZXI8L3RkPjx0ZD5jOnNldCwgRUw8L3RkPjwvdHI+CisgICAgPHRyPjx0ZD53cml0ZTwvdGQ+PHRkPiBjOm91dDwvdGQ+PC90cj4KKyAgICA8L3RhYmxlPgorCisgICAgPHA+CisgICAgICAgPHN0cm9uZz5CZWFuIFRhZyBMaWJyYXJ5IFRhZ3MgTk9UIEltcGxlbWVudGVkIGluIFN0cnV0cy1FTDwvc3Ryb25nPgorICAgIDwvcD4KKworICAgIDx0YWJsZT4KKyAgICA8dHI+PHRoPlN0cnV0cyBUYWc8L3RoPjx0aD5KU1RMIFRhZzwvdGg+PC90cj4KKyAgICA8dHI+PHRkPmVtcHR5PC90ZD48dGQ+YzppZiwgYzp3aGVuLCBFTDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkPmVxdWFsPC90ZD48dGQ+YzppZiwgYzp3aGVuLCBFTDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkPmdyZWF0ZXJFcXVhbDwvdGQ+PHRkPmM6aWYsIGM6d2hlbiwgRUw8L3RkPjwvdHI+CisgICAgPHRyPjx0ZD5ncmVhdGVyVGhhbjwvdGQ+PHRkPmM6aWYsIGM6d2hlbiwgRUw8L3RkPjwvdHI+CisgICAgPHRyPjx0ZD5sZXNzRXF1YWw8L3RkPjx0ZD5jOmlmLCBjOndoZW4sIEVMPC90ZD48L3RyPgorICAgIDx0cj48dGQ+bGVzc1RoYW48L3RkPjx0ZD5jOmlmLCBjOndoZW4sIEVMPC90ZD48L3RyPgorICAgIDx0cj48dGQ+bm90RW1wdHk8L3RkPjx0ZD5jOmlmLCBjOndoZW4sIEVMPC90ZD48L3RyPgorICAgIDx0cj48dGQ+bm90RXF1YWw8L3RkPjx0ZD5jOmlmLCBjOndoZW4sIEVMPC90ZD48L3RyPgorICAgIDwvdGFibGU+CisKKyAgICA8cD4KKyAgICAgICAoTm90ZSB0aGF0IHRoZSAiaXRlcmF0ZSIgdGFnIHdhcyBvcmlnaW5hbGx5IHBvcnRlZCwgZXZlbiB3aXRoIHRoZSBwcmVzZW5jZSBvZgorICAgICAgIHRoZSAiYzpmb3JFYWNoIiB0YWcsIGFzIHRoZSAiaW5kZXhlZCB0YWciIGZ1bmN0aW9uYWxpdHkgd2FzIG5vdCBzdXBwb3J0ZWQgd2hlbgorICAgICAgIHVzaW5nICJjOmZvckVhY2giIGluc3RlYWQgb2YgImxvZ2ljOml0ZXJhdGUiLiAgVGhpcyBoYXMgc2luY2UgYmVlbiByZWN0aWZpZWQsCisgICAgICAgc3VjaCB0aGF0IHRoZSAiaW5kZXhlZCB0YWciIGZ1bmN0aW9uYWxpdHkgY2hlY2tzIGZvciBiZWluZyBjb250YWluZWQgaW4gYQorICAgICAgICJjOmZvckVhY2giIHRhZywgaW4gYWRkaXRpb24gdG8gdGhlICJsb2dpYzppdGVyYXRlIiB0YWcuICBIb3dldmVyLCB0aGUgcG9ydGVkCisgICAgICAgIml0ZXJhdGUiIHRhZyBoYXMgbm90IGJlZW4gcmVtb3ZlZCBmcm9tIFN0cnV0cy1FTCwgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuKQorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgIDxzdHJvbmc+SHRtbCBUYWcgTGlicmFyeSBUYWdzIE5PVCBJbXBsZW1lbnRlZCBpbiBTdHJ1dHMtRUw8L3N0cm9uZz4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICAgICBOb25lIChhbGwgb2YgdGhlbSB3ZXJlIHBvcnRlZCkuCisgICAgPC9wPgorCisgICAgPC9zZWN0aW9uPgorCisgICAgPHNlY3Rpb24gaHJlZj0iQXR0cmlidXRlTWFwcGluZyIgbmFtZT0iQXR0cmlidXRlIE1hcHBpbmciPgorCisgICAgPHA+CisgICAgICAgQXQgdGhpcyBwb2ludCBvZiB0aGUgaW1wbGVtZW50YXRpb24sIHRoZXJlIGlzIG9ubHkgb25lIGNoYW5nZSAodG8gdHdvIHNpbWlsYXIKKyAgICAgICB0YWdzKSB0byB0aGUgc2V0IG9mIGF0dHJpYnV0ZXMgYmV0d2VlbiB0aGUgU3RydXRzIHRhZ3MsIGFuZCB0aGUgU3RydXRzLUVMIHRhZ3MuCisgICAgICAgVGhlICJsb2dpYzptYXRjaCIgYW5kICJsb2dpYzpub3RNYXRjaCIgdGFncyBoYXZlIGFuIGFkZGl0aW9uYWwgYXR0cmlidXRlIG5hbWVkCisgICAgICAgImV4cHIiLCB3aGljaCBjYW4gdGFrZSBhbnkgdmFsdWUsIGFuZCB3aWxsIGJlIHVzZWQgYXMgdGhlIHZhbHVlIHRvIGNvbXBhcmUKKyAgICAgICBhZ2FpbnN0LCBpbiBhZGRpdGlvbiB0byB0aGUgY2hvaWNlcyBvZiAiY29va2llIiwgImhlYWRlciIsICJuYW1lIi8icHJvcGVydHkiLAorICAgICAgIGFuZCAicGFyYW1ldGVyIi4KKyAgICA8L3A+CisKKyAgICA8L3NlY3Rpb24+CisKKyAgICA8c2VjdGlvbiBocmVmPSJVc2FnZVJlcXVpcmVtZW50cyIgbmFtZT0iVXNhZ2UgUmVxdWlyZW1lbnRzIj4KKworICAgIDxwPgorICAgICAgIFRoZSBTdHJ1dHMtRUwgdGFnIGxpYnJhcnkgcmVxdWlyZXMgdGhlIHVzZSBvZiB0aGUgU3RydXRzIHRhZyBsaWJyYXJ5LCBhbmQgdGhlCisgICAgICAgSmF2YSBTZXJ2ZXIgUGFnZXMgU3RhbmRhcmQgVGFnIExpYnJhcnkuICBJdCBpcyBub3QgbmVjZXNzYXJ5IGZvciBKU1AgcGFnZXMKKyAgICAgICB1c2luZyB0aGUgU3RydXRzLUVMIHRhZyBsaWJyYXJ5IHRvIGFsc28gdXNlIHRoZSBTdHJ1dHMgdGFncyBvciB0aGUgSlNUTCB0YWdzLAorICAgICAgIGJ1dCB0aGUgU3RydXRzIGFuZCBKU1RMIHRhZyBsaWJyYXJpZXMgbmVlZCB0byBiZSBwYXJ0IG9mIHRoZSBhcHBsaWNhdGlvbgorICAgICAgIHV0aWxpemluZyB0aGUgU3RydXRzLUVMIHRhZyBsaWJyYXJ5LgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgIFRoaXMgaXMgYmVjYXVzZSB0aGUgU3RydXRzLUVMIHRhZyBjbGFzc2VzIGFyZSBhbGwgc3ViY2xhc3NlcyBvZiBTdHJ1dHMgdGFnCisgICAgICAgY2xhc3NlcywgYW5kIHRoZWlyIGltcGxlbWVudGF0aW9uIHVzZXMgY2xhc3NlcyBwcm92aWRlZCBieSB0aGUgSlNUTC4KKyAgICA8L3A+CisKKyAgICA8L3NlY3Rpb24+CisKKzwvYm9keT48L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZmFxcy93b3Jrcy54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9mYXFzL3dvcmtzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmM2OWE5Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvZmFxcy93b3Jrcy54bWwKQEAgLTAsMCArMSwxNzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0iLi9uZXdiaWUueG1sIj4KKzxwcm9wZXJ0aWVzPgorPHRpdGxlPkhvdyBEb2VzIFN0cnV0cyBXb3JrPyAtIEFwYWNoZSBTdHJ1dHM8L3RpdGxlPgorPC9wcm9wZXJ0aWVzPgorPGJvZHk+CisKKzxzZWN0aW9uIGhyZWY9ImhvdyIgbmFtZT0iSG93IGRvZXMgU3RydXRzIHdvcms/Ij4KKworPHA+CisgICAgSmF2YSBTZXJ2bGV0cyBhcmUgZGVzaWduZWQgdG8gaGFuZGxlIHJlcXVlc3RzIG1hZGUgYnkgV2ViIGJyb3dzZXJzLgorICAgIEphdmEgU2VydmVyUGFnZXMgYXJlIGRlc2lnbmVkIHRvIGNyZWF0ZSBkeW5hbWljIFdlYiBwYWdlcyB0aGF0IGNhbiB0dXJuIGJpbGxib2FyZCBzaXRlcyBpbnRvIGxpdmUgYXBwbGljYXRpb25zLgorICAgIFN0cnV0cyB1c2VzIGEgc3BlY2lhbCBTZXJ2bGV0IGFzIGEgc3dpdGNoYm9hcmQgdG8gcm91dGUgcmVxdWVzdHMgZnJvbSBXZWIgYnJvd3NlcnMgdG8gdGhlIGFwcHJvcHJpYXRlIFNlcnZlclBhZ2UuCisgICAgVGhpcyBtYWtlcyBXZWIgYXBwbGljYXRpb25zIG11Y2ggZWFzaWVyIHRvIGRlc2lnbiwgY3JlYXRlLCBhbmQgbWFpbnRhaW4uCis8L3A+CisKKzxwPgorICAgIEhlcmUgaXMgc29tZSBtb3JlIGRldGFpbCBvbiB0aGUgbWVjaGFuaXNtcyBhbmQgZGVwZW5kZW5jaWVzIG9mIFN0cnV0czoKKzwvcD4KKworPHVsPgorICAgPGxpPgorICAgICAgVGhlIHdlYiBhcHBsaWNhdGlvbiB0aGF0IHlvdSBkZXZlbG9wIGhhcyBhIGRlcGxveW1lbnQgZGVzY3JpcHRvcgorICAgICAgKDxjb2RlPldFQi1JTkYvd2ViLnhtbDwvY29kZT4pIHdoaWNoIHlvdSBtdXN0IHdyaXRlLiBUaGlzIGZpbGUgZGVzY3JpYmVzCisgICAgICB0aGUgY29uZmlndXJhdGlvbiBvZiB5b3VyIHdlYiBhcHBsaWNhdGlvbiwgaW5jbHVkaW5nIHdlbGNvbWUgcGFnZXMgKHRoZQorICAgICAgZmlsZSB0aGF0IGlzIHNob3duIGluIGEgZGlyZWN0b3J5IHdoZW4gbm9uZSBpcyBzcGVjaWZpZWQgYnkgdGhlIHJlcXVlc3QpLAorICAgICAgbWFwcGluZ3MgdG8gc2VydmxldHMgKHBhdGggb3IgZXh0ZW5zaW9uIG5hbWUpLCBhbmQgcGFyYW1ldGVycyB0byB0aG9zZQorICAgICAgc2VydmxldHMuPGJyLz4KKworICAgICAgSW4gdGhpcyBmaWxlLCB5b3UgY29uZmlndXJlIHRoZSBTdHJ1dHMKKyAgICAgIDxhIGhyZWY9Ii4uL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPjwvYT4KKyAgICAgIGFzIHRoZSBzZXJ2bGV0IHRoYXQgd2lsbCBoYW5kbGUgYWxsIHJlcXVlc3RzIGZvciBhIGdpdmVuIG1hcHBpbmcgKHVzdWFsbHkKKyAgICAgIHRoZSBleHRlbnNpb24gPGNvZGU+LmRvPC9jb2RlPikuIFRoaXMgaXMgdGhlICJzd2l0Y2hib2FyZCIgbWVudGlvbmVkCisgICAgICBhYm92ZS48YnIvPgorCisgICAgICBJbiB0aGlzIHNhbWUgZmlsZSwgeW91IGNvbmZpZ3VyZSB0aGUgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4gdG8gdXNlCisgICAgICBvbmUgb3IgbW9yZSBjb25maWd1cmF0aW9uIGZpbGVzIGZvciBTdHJ1dHMgaXRzZWxmLjxici8+CisgICAgICBGb3IgdGhpcyB0ZXh0LCBhc3N1bWUgd2UgYXJlIGluc3RhbGxpbmcgdGhlIHdlYiBhcHBsaWNhdGlvbiBvbiB0aGUgc2VydmVyCisgICAgICBhdCA8Y29kZT4vbXlhcHA8L2NvZGU+LCBhbmQgYXJlIHVzaW5nIHRoZSBzaW1wbGVzdCBwb3NzaWJsZSBjb25maWd1cmF0aW9uCisgICAgICBmcm9tIHRoZXJlLjxici8+CisKKyAgICAgIElmIHlvdSBuZWVkIG1vcmUgZGV0YWlscyBvbiBkZXBsb3ltZW50IGRlc2NyaXB0b3JzLCByZWFkCisgICAgICB0aGUgU2VydmxldCBTcGVjaWZpY2F0aW9uIGF2YWlsYWJsZSBmcm9tIFN1biBNaWNyb3N5c3RlbSdzCisgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tIj5KYXZhIHNpdGU8L2E+Ljxici8+CisgICA8L2xpPgorICAgPGxpPgorICAgICAgSW4gdGhlIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGUocyksIHlvdSBhc3NvY2lhdGUgcGF0aHMgd2l0aAorICAgICAgdGhlIGNvbnRyb2xsZXIgY29tcG9uZW50cyBvZiB5b3VyIGFwcGxpY2F0aW9uLCBrbm93biBhcworICAgICAgPGEgaHJlZj0iLi4vYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+PGNvZGU+QWN0aW9uPC9jb2RlPjwvYT4KKyAgICAgIGNsYXNzZXMgKGkuZS4gImxvZ2luIiA9PSZndDsgTG9naW5BY3Rpb24gY2xhc3MpLiBUaGlzIHRlbGxzIHRoZSBTdHJ1dHMKKyAgICAgIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+IHRoYXQgd2hlbiB0aGUgaW5jb21pbmcgcmVxdWVzdCBpcworICAgICAgPGNvZGU+aHR0cDovL215aG9zdC9teWFwcC9sb2dpbi5kbzwvY29kZT4gaXQgc2hvdWxkIGludm9rZSB5b3VyCisgICAgICBjb250cm9sbGVyIGNvbXBvbmVudCA8Y29kZT5Mb2dpbkFjdGlvbjwvY29kZT4uPGJyLz4KKworICAgICAgTm90ZSB0aGUgZXh0ZW5zaW9uIDxjb2RlPi5kbzwvY29kZT4gaW4gdGhpcyBVUkwuIFRoZSBleHRlbnNpb24gY2F1c2VzCisgICAgICB5b3VyIGNvbnRhaW5lciAoaS5lLiAgVG9tY2F0KSB0byBjYWxsIHRoZSA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiwKKyAgICAgIHdoaWNoIHNlZXMgdGhlIHdvcmQgImxvZ2luIiBhcyB0aGUgdGhpbmcgeW91IHdhbnQgdG8gZG8uIFRoZQorICAgICAgY29uZmlndXJhdGlvbiBpcyByZWZlcmVuY2VkLCBhbmQgeW91ciA8Y29kZT5Mb2dpbkFjdGlvbjwvY29kZT4gaXMKKyAgICAgIGV4ZWN1dGVkLjxici8+CisgICA8L2xpPgorICAgPGxpPgorICAgICAgRm9yIGVhY2ggPGNvZGU+QWN0aW9uPC9jb2RlPiwgeW91IGFsc28gY29uZmlndXJlIFN0cnV0cyB3aXRoIHRoZSBuYW1lcyBvZgorICAgICAgdGhlIHJlc3VsdGluZyBwYWdlKHMpIHRoYXQgY2FuIGJlIHNob3duIGFzIGEgcmVzdWx0IG9mIHRoYXQgYWN0aW9uLiBUaGVyZQorICAgICAgY2FuIGJlIG1vcmUgdGhhbiBvbmUgdmlldyBhcyB0aGUgcmVzdWx0IG9mIGFuIGFjdGlvbiAob2Z0ZW4sIHRoZXJlIGFyZSBhdAorICAgICAgbGVhc3QgdHdvOiBvbmUgZm9yIHN1Y2Nlc3MsIGFuZCBvbmUgZm9yIGZhaWx1cmUpLjxici8+CisKKyAgICAgIFlvdXIgPGNvZGU+QWN0aW9uPC9jb2RlPiAodGhlIGNvbnRyb2xsZXIgY29tcG9uZW50IHlvdSB3cml0ZSkgaXMgYmFzZWQgb24KKyAgICAgIHRoZXNlIDxlbT5sb2dpY2FsPC9lbT4gcmVzdWx0IG1hcHBpbmcgbmFtZXMuIEl0IHJlcG9ydHMgYmFjayB0byB0aGUKKyAgICAgIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+IHVzaW5nIHdvcmRzIGxpa2UgInN1Y2Nlc3MiLCAiZmFpbHVyZSIsCisgICAgICAicmVhZHkiLCAib2siLCAiVXNlcklzSW5jb21wZXRlbnQiLCBldGMuICBUaGUgU3RydXRzIHN5c3RlbSAodGhyb3VnaCB0aGUKKyAgICAgIGNvbmZpZ3VyYXRpb24gdGhhdCB5b3Ugd3JvdGUpIGtub3dzIGhvdyB0byBmb3J3YXJkIHRvIHRoZSBwcm9wZXIKKyAgICAgIDxlbT5zcGVjaWZpYzwvZW0+IHBhZ2UuIFRoaXMgaGFzIHRoZSBhZGRlZCBhZHZhbnRhZ2Ugb2YgcmVjb25maWd1cmF0aW9uIG9mCisgICAgICB0aGUgdmlldyBsYXllciBieSBzaW1wbHkgZWRpdGluZyB0aGUgU3RydXRzIFhNTCBjb25maWd1cmF0aW9uIGZpbGUuPGJyLz4KKworICAgICAgQXQgdGhpcyBwb2ludCBTdHJ1dHMga25vd3MgaG93IHRvIGRlbGVnYXRlIHRvIHlvdXIgY29udHJvbGxlciBjb21wb25lbnRzLAorICAgICAgYW5kIHdoYXQgdG8gc2hvdyBhcyBhIHJlc3VsdCBvZiB5b3VyIGNvbnRyb2xsZXIgcHJvY2Vzc2luZy4gVGhlICJtb2RlbCIKKyAgICAgIHBhcnQgb2YgdGhlIGFwcGxpY2F0aW9uIGlzIGNvbXBsZXRlbHkgdXAgdG8geW91LCBhbmQgaXMgY2FsbGVkIGZyb20KKyAgICAgIHdpdGhpbiB5b3VyIGNvbnRyb2xsZXIgY29tcG9uZW50cy4KKyAgIDwvbGk+CisgICA8bGk+CisgICAgICBZb3UgbWF5IGFsc28gYXNzb2NpYXRlIGEgSmF2YSBCZWFuIHdpdGggYW4gYWN0aW9uIChvciBzZXQgb2YgYWN0aW9ucykgaW4KKyAgICAgIHRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlLiBUaGUgSmF2YSBCZWFuIGlzIHVzZWQgYXMgYSByZXBvc2l0b3J5IGZvcgorICAgICAgZm9ybSBvciBkaXNwbGF5IGRhdGEgdGhhdCBjYW4gYmUgY29tbXVuaWNhdGVkIGJldHdlZW4gdGhlIHZpZXcgYW5kCisgICAgICBjb250cm9sbGVyIGxheWVyLjxici8+CisKKyAgICAgIFRoZXNlIEJlYW5zIGFyZSBhdXRvbWF0aWNhbGx5IG1hZGUgdmlzaWJsZSB0byB5b3VyIGNvbnRyb2xsZXIgY29tcG9uZW50cworICAgICAgKGxpa2UgPGNvZGU+TG9naW5BY3Rpb248L2NvZGU+KSBhbmQgYW55IHZpZXcgcGFnZSB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aAorICAgICAgdGhhdCBjb250cm9sbGVyLiA8YnIvPgorCisgICAgICBUaGVzZSBCZWFucyBjYW4gYWxzbyBiZSB2YWxpZGF0ZWQgd2l0aCB0aGUgaGVscCBvZiB0aGUgU3RydXRzIHN5c3RlbSB0bworICAgICAgaGVscCBpbnN1cmUgdGhhdCB0aGUgdXNlciBpcyBwdXR0aW5nIGdvb2QgZGF0YSBpbiB0aGUgZm9ybS4gVGhleSBjYW4gYmUKKyAgICAgIGNhcnJpZWQgYWxvbmcgd2l0aCBhIHNlc3Npb24sIGFsbG93aW5nIGZvcm1zIHRvIHNwYW4gbXVsdGlwbGUgcGFnZXMgb2YKKyAgICAgIHRoZSB2aWV3LCBhbmQgQWN0aW9ucyBpbiB0aGUgY29udHJvbGxlci48YnIvPgorCisgICAgICA8c3Ryb25nPk5vdGU8L3N0cm9uZz46IFlvdSBtdXN0IGJlIHVzaW5nIHNvbWUgc29ydCBvZiBzZXJ2ZXItc2lkZQorICAgICAgdGVjaG5vbG9neSAoSlNQLCBWZWxvY2l0eSwgWFNMVCkgZm9yIHRoZSB2aWV3IGxheWVyIChnb2luZyA8ZW0+dG88L2VtPiB0aGUKKyAgICAgIGNsaWVudCkgdG8gc2VlIHRoaXMgZGF0YSAocGxhaW4gSFRNTCB3b24ndCB3b3JrKS4gU3RydXRzIHdvcmtzIG9uIHRoZQorICAgICAgc2VydmVyIHNpZGUsIHNvIHRoZSBjbGllbnQncyB2aWV3IGhhcyB0byBiZSBjb21wb3NlZCB0aGVyZS48YnIvPgorCisgICAgICBUaGUgY2xpZW50IGZlZWRzIHRoZSBkYXRhIGJhY2sgdGhyb3VnaCBub3JtYWwgZm9ybSBzdWJtaXNzaW9uIChQT1NUL0dFVCkKKyAgICAgIG1ldGhvZHMsIGFuZCB0aGUgU3RydXRzIHN5c3RlbSB1cGRhdGVzIHRoYXQgZGF0YSBpbiB0aGUgQmVhbiBiZWZvcmUKKyAgICAgIGNhbGxpbmcgeW91ciBjb250cm9sbGVyIGNvbXBvbmVudHMuCisgICA8L2xpPgorICAgPGxpPgorICAgICAgV2l0aGluIHlvdXIgd2ViIGFwcGxpY2F0aW9uIHdpbGwgYmUgcGFnZXMgdGhhdCByZXByZXNlbnQgdGhlIHZpZXcgeW91cgorICAgICAgdXNlcnMgd2lsbCBzZWUuIFRoZXNlIGNhbiBiZSBKU1AgcGFnZXMsIFZlbG9jaXR5IFRlbXBsYXRlcywKKyAgICAgIFhTTFQgcGFnZXMsIGFuZCBzbyBmb3J0aC4KKyAgICAgIEEgc2V0IG9mIEpTUCB0YWdzIGlzIGJ1bmRlZCB3aXRoIHRoZSBTdHJ1dHMgZGlzdHJpYnV0aW9uIHNvIHRoYXQgeW91CisgICAgICBjYW4gZ2V0IHN0YXJ0ZWQgcmlnaHQgYXdheSwgYnV0IGFueSBzdGFuZGFyZCBwcmVzZW50YXRpb24gdGVjaG5vbG9neQorICAgICAgY2FuIGJlIHVzZWQgd2l0aCBTdHJ1dHMuPGJyLz4KKworICAgICAgRXZlbiBwbGFpbiBIVE1MIGZpbGVzIGNhbiBiZSB1c2VkIHdpdGhpbiB5b3VyIFN0cnV0cyBhcHBsaWNhdGlvbiwKKyAgICAgIGFsdGhvdWdoIHRoZXkgd2lsbCBub3QgdGFrZSBmdWxsIGFkdmFudGFnZSBvZiBhbGwgb2YgdGhlIGR5bmFtaWMKKyAgICAgIGZlYXR1cmVzLjxici8+CisKKyAgICAgIEZvbGxvd2luZyB0aGUgZXhhbXBsZSBvZiB0aGUgU3RydXRzIEpTUCB0YWdsaWJzLCBzZXZlcmFsIG90aGVyCisgICAgICBwYWNrYWdlcyBhcmUgYXZhaWxhYmxlIHRvIG1ha2UgdGhlIGZyYW1ld29yayBlYXN5IHRvIHVzZSB3aXRoIHlvdXIKKyAgICAgIGZhdm9yaXRlIHByZXNlbnRhdGlvbiB0ZWNobm9sb2d5LgorICAgICAgRm9yIFZlbG9jaXR5IHRlbXBsYXRlcywgdGhlcmUgYXJlIHRoZQorICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy92ZWxvY2l0eS8iPlZlbG9jaXR5PC9hPiBWaWV3VG9vbHMKKyAgICAgIGZvciBTdHJ1dHMuCisgICAgICBJZiB5b3Ugd2FudCB0byB1c2UgWFNMVCBpbiB5b3UgYXBwbGljYXRpb24sIHlvdSBjYW4gY2hvb3NlIGJldHdlZW4KKyAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnJvYWQuY2Evb3BlbmNvZGUvIj5zdHh4PC9hPiBhbmQKKyAgICAgIDxhIGhyZWY9Imh0dHA6Ly9pdC5jYXBwdWNjaW5vbmV0LmNvbS9zdHJ1dHNjeC8iPgorICAgICAgU3RydXRzQ1g8L2E+Ljxici8+CisKKyAgICAgIFRoZXNlIHBhY2thZ2VzIG1ha2UgdGhlIHN0YW5kYXJkIFN0cnV0cyBmcmFtZXdvcmsgZWxlbWVudHMgbG9vayBhbmQKKyAgICAgIGZlZWwgbGlrZSBhIHNlYW1sZXNzIHBhcnQgb2YgdGhlIG9yaWdpbmFsIHByZXNlbnRhdGlvbiB0ZWNobm9sb2d5LgorICAgICAgU3RydXRzIGFsc28gbWFrZXMgaXQgZWFzeSB0byBtaXggYW5kIG1hdGNoLgorICAgICAgSWYgbmVlZCBiZSwgeW91IGNhbiB1c2UgSlNQLCBWZWxvY2l0eSB0ZW1wbGF0ZXMsIGFuZCBYU0xUIGFsbCBpbgorICAgICAgdGhlIHNhbWUgYXBwbGljYXRpb24hPGJyLz4KKworICAgICAgU2luY2UgU3RydXRzIHJlbGllcyBvbiBzdGFuZGFyZCBTZXJ2bGV0IHRlY2hub2xvZ2llcywgeW91IHNob3VsZCBiZQorICAgICAgYWJsZSB0byB1c2UgYW55IEphdmEgcHJlc2VudGF0aW9uIHRlY2hub2xvZ3kgd2l0aCBTdHJ1dHMuCisgICA8L2xpPgorICAgPGxpPgorICAgICAgV2hpbGUgdGhlIGZvY3VzIG9mIHRoZSBTdHJ1dHMgZnJhbWV3b3JrIGlzIG9uIHRoZSBjb250cm9sbGVyLAorICAgICAgdGhlIHByZXNlbnRhdGlvbiBsYXllciBpcyBhIHNpZ25pZmljYW50IHBhcnQgb2YgYW55IGFwcGxpY2F0aW9uLgorICAgICAgVGhlIFN0cnV0cyBKU1AgdGFnbGlicyBpbmNsdWRlIGEgbnVtYmVyIG9mIGdlbmVyaWMgYW5kIFN0cnV0cy1zcGVjaWZpYworICAgICAgdGFncyB0byBoZWxwIHlvdSB1c2UgZHluYW1pYyBkYXRhIGluIHlvdXIgdmlldy4gPGJyLz4KKworICAgICAgVGhlIGN1c3RvbSBKU1AgdGFncyBhY2NvdW50IGZvciBhIGdvb2QgZGVhbCBvZiB0aGUgU3RydXRzIGNvZGUgYmFzZS4gSXQKKyAgICAgIGlzIGVkdWNhdGlvbmFsIHRvIG5vdGUgdGhhdCBhcyBvZiB2ZXJzaW9uIDEuMWIzIHRoZSBKYXZhIGNvZGUgZm9yIHRoZQorICAgICAgY29yZSBvZiBTdHJ1dHMgd2FzIGFib3V0IDI4LDAwMCBsaW5lcywgYW5kIHRoZSBKYXZhIGNvZGUgZm9yIHRoZSB0YWcKKyAgICAgIGxpYnJhcmllcyAoaW5jbHVkaW5nIHRpbGVzKSB3YXMgYWJvdXQgNDEsMDAwIGxpbmVzLjxici8+CisKKyAgICAgIFRoZXNlIHRhZ3MgaGVscCB5b3UgZ2x1ZSB5b3VyIHZpZXcgbGF5ZXIgdG8gdGhlIGNvbnRyb2xsZXIgbGF5ZXIgd2l0aG91dAorICAgICAgaGF2aW5nIHRvIGVtYmVkIGEgbG90IG9mIEphdmEgaW4gdGhlIEpTUC4gVGhpcyBnaXZlcyB0aGUgcGFnZSBhbiBYTUwKKyAgICAgIGxvb2ssIGFuZCBjYW4gYmUgZWFzaWVyIGZvciB3ZWIgZGVzaWduZXJzIHRvIGRlYWwgd2l0aCB0aGFuIGEgcGxhaW4gSlNQLiBJdAorICAgICAgYWxzbyBoZWxwcyBtaW5pbWl6ZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0aGUgY29udHJvbGxlciBhbmQgdmlldy48YnIvPgorCisgICAgICBUaGUgY3VzdG9tIHRhZ3MgYXJlIHVzZWQgdG8gY3JlYXRlIGZvcm1zIChhbmQgaW52aXNpYmx5IGludGVyYWN0IHdpdGggdGhlCisgICAgICBCZWFuIG1lbnRpb25lZCBwcmV2aW91c2x5KSwgbG9naWNhbGx5IGZvcndhcmQgdG8gb3RoZXIgcGFnZXMsIGFuZCBpbnZva2UKKyAgICAgIG90aGVyIGFjdGlvbnMgb2YgdGhlIHdlYiBhcHBsaWNhdGlvbi48YnIvPgorCisgICAgICBUaGVyZSBhcmUgYWxzbyB0YWdzIHRoYXQgaGVscCB5b3Ugd2l0aCBpbnRlcm5hdGlvbmFsaXphdGlvbiwgZXJyb3IKKyAgICAgIG1lc3NhZ2VzLCBldGMuPGJyLz4KKworICAgICAgQWxsIG9mIHRoZXNlIGFiaWxpdGllcyBkZXBlbmQgaW4gc29tZSB3YXkgb24gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMgeW91CisgICAgICBzdXBwbGllZCB0byBTdHJ1dHMuCisgICA8L2xpPgorPC91bD4KKzxwPgorICAgSXQgaXMgaW1wb3J0YW50IGZvciB5b3UgdG8gcmVtZW1iZXIgdGhhdCB0aGUgbWVjaGFuaXNtIGRlc2NyaWJlZCBoZXJlIGlzCisgICBvbmx5IGluIGVmZmVjdCB3aGVuIHRoZSA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiBpcyBoYW5kbGluZyB0aGUKKyAgIHJlcXVlc3QuCis8L3A+Cis8cD4KKyAgIFNpbmNlIHRoaXMgb25seSBoYXBwZW5zIHdoZW4gYSByZXF1ZXN0IGlzIHN1Ym1pdHRlZCB0aGF0IGNhdXNlcyB5b3VyCisgICBjb250YWluZXIgKGkuZS4gVG9tY2F0LCBXZWJTcGhlcmUsIGV0Yy4pIHRvIGNhbGwgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4sCisgICB5b3UgbXVzdCBiZSBzdXJlIHRoYXQgYW55IHBhZ2UgdGhhdCByZWxpZXMgb24gU3RydXRzIGlzIGRvbmUgdGhyb3VnaCBhCisgICByZXF1ZXN0IHRoYXQgd2lsbCBtYXAgdG8gdGhlIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+IChpLmUuIGhhcyBhCisgICA8Y29kZT4uZG88L2NvZGU+IGV4dGVuc2lvbikuCis8L3A+CisgPC9zZWN0aW9uPgorCis8L2JvZHk+PC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ltYWdlcy9sb2dvcy9zdHJ1dHMtcG93ZXIuZ2lmIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvaW1hZ2VzL2xvZ29zL3N0cnV0cy1wb3dlci5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY0ZTlkNAotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ltYWdlcy9sb2dvcy9zdHJ1dHMtcG93ZXIuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ltYWdlcy9zdHJ1dHMtYmx1ZS0xLmdpZiBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ltYWdlcy9zdHJ1dHMtYmx1ZS0xLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDMyOTM3Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvaW1hZ2VzL3N0cnV0cy1ibHVlLTEuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ltYWdlcy9zdHJ1dHMtYmx1ZS0yLmdpZiBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ltYWdlcy9zdHJ1dHMtYmx1ZS0yLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2ZjMzk2Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvaW1hZ2VzL3N0cnV0cy1ibHVlLTIuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ltYWdlcy9zdHJ1dHMtYmx1ZS0zLmdpZiBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ltYWdlcy9zdHJ1dHMtYmx1ZS0zLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWJiYTNhCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvaW1hZ2VzL3N0cnV0cy1ibHVlLTMuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2ltYWdlcy9zdHJ1dHMtYmx1ZS5naWYgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9pbWFnZXMvc3RydXRzLWJsdWUuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmYjkyZjIKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9pbWFnZXMvc3RydXRzLWJsdWUuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2luZGV4LnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2luZGV4LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzQ5MGJiCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvaW5kZXgueG1sCkBAIC0wLDAgKzEsMTkzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudD4KKworPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlRoZSBBcGFjaGUgU3RydXRzIFdlYiBBcHBsaWNhdGlvbiBGcmFtZXdvcms8L3RpdGxlPgorPC9wcm9wZXJ0aWVzPgorCis8Ym9keT4KKyAgICAKKyAgICA8c2VjdGlvbiBuYW1lPSJXZWxjb21lIHRvIFN0cnV0cyIgaHJlZj0iV2VsY29tZSI+CisKKyAgICA8cD4KKyAgICBXZWxjb21lIHRvIFN0cnV0cyEKKyAgICBUaGUgZ29hbCBvZiB0aGlzIHByb2plY3QgaXMgdG8gcHJvdmlkZSBhbiBvcGVuIHNvdXJjZSBmcmFtZXdvcmsgZm9yIAorICAgIGJ1aWxkaW5nIEphdmEgd2ViIGFwcGxpY2F0aW9ucy4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGUgY29yZSBvZiB0aGUgU3RydXRzIGZyYW1ld29yayBpcyBhIGZsZXhpYmxlIGNvbnRyb2wgbGF5ZXIgYmFzZWQgb24KKyAgICA8YSBocmVmPSJ1c2VyR3VpZGUvcHJlZmFjZS5odG1sIj5zdGFuZGFyZCB0ZWNobm9sb2dpZXM8L2E+IGxpa2UgSmF2YSAKKyAgICBTZXJ2bGV0cywgSmF2YUJlYW5zLCBSZXNvdXJjZUJ1bmRsZXMsIGFuZCBYTUwsIGFzIHdlbGwgYXMgdmFyaW91cworICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9pbmRleC5odG1sIj5KYWthcnRhIENvbW1vbnM8L2E+IHBhY2thZ2VzLgorICAgIFN0cnV0cyBlbmNvdXJhZ2VzIGFwcGxpY2F0aW9uIGFyY2hpdGVjdHVyZXMgYmFzZWQgb24gdGhlIE1vZGVsIDIgYXBwcm9hY2gsCisgICAgYSB2YXJpYXRpb24gb2YgdGhlIGNsYXNzaWMKKyAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2JsdWVwcmludHMvZ3VpZGVsaW5lcy9kZXNpZ25pbmdfZW50ZXJwcmlzZV9hcHBsaWNhdGlvbnNfMmUvd2ViLXRpZXIvd2ViLXRpZXI1Lmh0bWwiPgorICAgIDxzdHJvbmc+TW9kZWwtVmlldy1Db250cm9sbGVyPC9zdHJvbmc+PC9hPiAoTVZDKSBkZXNpZ24gcGFyYWRpZ20uCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIFN0cnV0cyBwcm92aWRlcyBpdHMgb3duIDxzdHJvbmc+Q29udHJvbGxlcjwvc3Ryb25nPiBjb21wb25lbnQgYW5kIGludGVncmF0ZXMgd2l0aCA8YSBocmVmPSJ1c2VyR3VpZGUvcHJlZmFjZS5odG1sI2xheWVycyI+CisgICAgICAgIG90aGVyIHRlY2hub2xvZ2llczwvYT4gdG8gcHJvdmlkZSB0aGUgTW9kZWwgYW5kIHRoZSBWaWV3LgorCisgICAgICAgIEZvciB0aGUgPHN0cm9uZz5Nb2RlbDwvc3Ryb25nPiwgU3RydXRzIGNhbiBpbnRlcmFjdCB3aXRoIHN0YW5kYXJkIGRhdGEgYWNjZXNzCisgICAgICAgIHRlY2hub2xvZ2llcywgbGlrZSA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2pkYmMvIj5KREJDPC9hPiBhbmQKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9lamIvIj5FSkI8L2E+LCBhcyB3ZWxsIGFzIG1vc3QgYW55IHRoaXJkLXBhcnR5IHBhY2thZ2VzLCBsaWtlCisgICAgICAgIEhpYmVybmF0ZSwgaUJBVElTLCBvciBPYmplY3QgUmVsYXRpb25hbCBCcmlkZ2UuCisKKyAgICAgICAgRm9yIHRoZSA8c3Ryb25nPlZpZXc8L3N0cm9uZz4sIFN0cnV0cyB3b3JrcyB3ZWxsIHdpdGggCisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvanNwLyI+SmF2YVNlcnZlciBQYWdlczwvYT4sIGluY2x1ZGluZworICAgICAgICA8YSBocmVmPSIuL2ZhcXMva2lja3N0YXJ0Lmh0bWwjanNmIj5KU1RMIGFuZCBKU0Y8L2E+LCBhcyB3ZWxsIGFzIFZlbG9jaXR5IFRlbXBsYXRlcywgWFNMVCwgYW5kCisgICAgICAgIG90aGVyIHByZXNlbnRhdGlvbiBzeXN0ZW1zLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFRoZSBTdHJ1dHMgZnJhbWV3b3JrIHByb3ZpZGVzIHRoZSBpbnZpc2libGUgdW5kZXJwaW5uaW5ncyBldmVyeSAKKyAgICBwcm9mZXNzaW9uYWwgd2ViIGFwcGxpY2F0aW9uIG5lZWRzIHRvIHN1cnZpdmUuCisgICAgU3RydXRzIGhlbHBzIHlvdSBjcmVhdGUgYW4gZXh0ZW5zaWJsZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCBmb3IgeW91ciAKKyAgICBhcHBsaWNhdGlvbiwgYmFzZWQgb24gcHVibGlzaGVkIHN0YW5kYXJkcyBhbmQgcHJvdmVuIGRlc2lnbiBwYXR0ZXJucy4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBTdHJ1dHMgaXMgcGFydCBvZiB0aGUKKyAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnIj5BcGFjaGUgSmFrYXJ0YSBQcm9qZWN0PC9hPiwKKyAgICBzcG9uc29yZWQgYnkgdGhlCisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnIj5BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbjwvYT4uCisgICAgVGhlIG9mZmljaWFsIFN0cnV0cyBob21lIHBhZ2UgaXMgYXQKKyAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cyI+CisgICAgaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHM8L2E+LgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICBTdHJ1dHMgaXMgYSB2b2x1bnRlZXIgcHJvamVjdCBhbmQgYWxsIHN1cHBvcnQgZm9yIHRoZSBmcmFtZXdvcmsgaXMgcHJvdmlkZWQgYnkgdW5wYWlkIHZvbHVudGVlcnMuCisgICAgICAgIFRoaXMgZG9jdW1lbnRhdGlvbiBidW5kbGUgYW5kIHRoZSBtYWlsaW5nIGxpc3RzIGFyZSB0aGUgcHJpbWFyeSB3YXlzIHRvIGxlYXJuIGhvdyB0byB1c2UgU3RydXRzLgorICAgICAgICBUaGUgbmV4dCBmZXcgcGFnZXMgYXJlIGRldm90ZWQgdG8gaGVscGluZyB5b3UgdW5kZXJzdGFuZCB3aGF0IHJlc291cmNlcyBhcmUgYXZhaWxhYmxlIHRvIHlvdS4KKyAgICAgICAgU2luY2UgU3RydXRzIGlzIGEgdm9sdW50ZWVyIHByb2plY3QsIGFuZCBvdXIgcmVzb3VyY2VzIGFyZSBsaW1pdGVkLCBpdCBpcyBpbXBvcnRhbnQgdGhhdCB3ZSBmaXJzdCBoZWxwIHlvdQorICAgICAgICBoZWxwIHlvdXJzZWxmLgorICAgIDwvcD4KKworICAgIDwvc2VjdGlvbj4KKworICAgIDxzZWN0aW9uIG5hbWU9IlN0cnV0cyBpbiBhIE51dHNoZWxsIiBocmVmPSJudXRzaGVsbCI+CisKKyAgICAgICAgPHA+CisgICAgICAgICAgICBBIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vd2Vic2VydmljZXMvZG9jcy8xLjAvdHV0b3JpYWwvZG9jL1dlYkFwcC5odG1sIj53ZWIgYXBwbGljYXRpb248L2E+IHVzZXMgYQorICAgICAgICAgICAgZGVwbG95bWVudCBkZXNjcmlwdG9yIHRvIGluaXRpYWxpemUgcmVzb3VyY2VzIGxpa2UgPGEgaHJlZj0idXNlckd1aWRlL3ByZWZhY2UuaHRtbCNzZXJ2bGV0cyI+c2VydmxldHM8L2E+CisgICAgICAgICAgICBhbmQgPGEgaHJlZj0idXNlckd1aWRlL3ByZWZhY2UuaHRtbCNqc3AiPnRhZ2xpYnM8L2E+LgorICAgICAgICAgICAgVGhlIGRlcGxveW1lbnQgZGVzY3JpcHRvciBpcyBmb3JtYXR0ZWQgYXMgYSA8YSBocmVmPSJ1c2VyR3VpZGUvcHJlZmFjZS5odG1sI3htbCI+WE1MPC9hPiBkb2N1bWVudCBhbmQgbmFtZWQKKyAgICAgICAgICAgICJ3ZWIueG1sIi4KKyAgICAgICAgICAgIExpa2V3aXNlLCBTdHJ1dHMgdXNlcyBhIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBpbml0aWFsaXplIGl0cyBvd24gcmVzb3VyY2VzLgorICAgICAgICAgICAgVGhlc2UgcmVzb3VyY2VzIGluY2x1ZGUgPGEgaHJlZj0idXNlckd1aWRlL2J1aWxkaW5nX2NvbnRyb2xsZXIuaHRtbCNhY3Rpb25fZm9ybV9jbGFzc2VzIj5BY3Rpb25Gb3JtczwvYT4gdG8KKyAgICAgICAgICAgIGNvbGxlY3QgaW5wdXQgZnJvbSB1c2VycywKKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL3VzZXJHdWlkZS9idWlsZGluZ19jb250cm9sbGVyLmh0bWwjYWN0aW9ubWFwcGluZyI+CisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nczwvYT4gdG8gZGlyZWN0IGlucHV0IHRvIHNlcnZlci1zaWRlCisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy91c2VyR3VpZGUvYnVpbGRpbmdfY29udHJvbGxlci5odG1sI2FjdGlvbl9jbGFzc2VzIj5BY3Rpb25zPC9hPiwKKyAgICAgICAgICAgIGFuZCBBY3Rpb25Gb3J3YXJkcyB0byBzZWxlY3Qgb3V0cHV0IHBhZ2VzLgorICAgICAgICA8L3A+CisKKyAgICAgICAgPHA+CisgICAgICAgICAgICBIZXJlJ3MgYSBzaW1wbGUgU3RydXRzIGNvbmZpZ3VyYXRpb24gKHN0cnV0cy1jb25maWcueG1sKSBmb3IgYSBsb2dpbiB3b3JrZmxvdzoKKyAgICAgICAgPC9wPgorCisgICAgPHNvdXJjZT48IVtDREFUQVsKKyAgICA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorICAgIDwhRE9DVFlQRSBzdHJ1dHMtY29uZmlnIFBVQkxJQworICAgICAgICAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAxLjIvL0VOIgorICAgICAgICAgICAgICAiaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvZHRkcy9zdHJ1dHMtY29uZmlnXzFfMi5kdGQiPgorICAgIDxzdHJ1dHMtY29uZmlnPgorICAgICAgICA8Zm9ybS1iZWFucz4KKyAgICAgICAgICAgIDxmb3JtLWJlYW4KKyAgICAgICAgICAgICAgICBuYW1lPSJsb2dvbkZvcm0iCisgICAgICAgICAgICAgICAgdHlwZT0iYXBwLkxvZ29uRm9ybSIvPgorICAgICAgICA8L2Zvcm0tYmVhbnM+CisgICAgICAgIDxhY3Rpb24tbWFwcGluZ3M+CisgICAgICAgICAgICA8YWN0aW9uCisgICAgICAgICAgICAgICAgcGF0aD0iL1dlbGNvbWUiCisgICAgICAgICAgICAgICAgZm9yd2FyZD0iL3BhZ2VzL1dlbGNvbWUuanNwIi8+CisgICAgICAgICAgICA8YWN0aW9uCisgICAgICAgICAgICAgICAgcGF0aD0iL0xvZ29uIgorICAgICAgICAgICAgICAgIGZvcndhcmQ9Ii9wYWdlcy9Mb2dvbi5qc3AiLz4KKyAgICAgICAgICAgIDxhY3Rpb24KKyAgICAgICAgICAgICAgICBwYXRoPSIvTG9nb25TdWJtaXQiCisgICAgICAgICAgICAgICAgdHlwZT0iYXBwLkxvZ29uQWN0aW9uIgorICAgICAgICAgICAgICAgIG5hbWU9ImxvZ29uRm9ybSIKKyAgICAgICAgICAgICAgICBzY29wZT0icmVxdWVzdCIKKyAgICAgICAgICAgICAgICB2YWxpZGF0ZT0idHJ1ZSIKKyAgICAgICAgICAgICAgICBpbnB1dD0iL0xvZ29uLmRvIj4KKyAgICAgICAgICAgICAgICA8Zm9yd2FyZAorICAgICAgICAgICAgICAgICAgICBuYW1lPSJzdWNjZXNzIgorICAgICAgICAgICAgICAgICAgICBwYXRoPSIvV2VsY29tZS5kbyIvPgorICAgICAgICAgICAgICAgIDxmb3J3YXJkCisgICAgICAgICAgICAgICAgICAgIG5hbWU9ImZhaWx1cmUiCisgICAgICAgICAgICAgICAgICAgIHBhdGg9Ii9Mb2dvbi5kbyIvPgorICAgICAgICAgICAgPC9hY3Rpb24+CisgICAgICAgICAgICA8YWN0aW9uCisgICAgICAgICAgICAgICAgcGF0aD0iL0xvZ29mZiIKKyAgICAgICAgICAgICAgICB0eXBlPSJhcHAuTG9nb2ZmQWN0aW9uIj4KKyAgICAgICAgICAgICAgICA8Zm9yd2FyZAorICAgICAgICAgICAgICAgICAgICBuYW1lPSJzdWNjZXNzIgorICAgICAgICAgICAgICAgICAgICBwYXRoPSIvV2VsY29tZS5kbyIvPgorICAgICAgICAgICAgPC9hY3Rpb24+CisgICAgICAgIDwvYWN0aW9uLW1hcHBpbmdzPgorICAgICAgICA8bWVzc2FnZS1yZXNvdXJjZXMgcGFyYW1ldGVyPSJyZXNvdXJjZXMuYXBwbGljYXRpb24iLz4KKyAgICA8L3N0cnV0cy1jb25maWc+CisgICAgXV0+PC9zb3VyY2U+CisKKyAgICAgICAgPHA+CisgICAgICAgICAgICBUaGVyZSBhcmUgc2V2ZXJhbCBvdGhlciByZXNvdXJjZXMgeW91IGNhbiBzcGVjaWZ5IGluIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGVzLgorICAgICAgICAgICAgWW91IGNhbiBzcGVjaWZ5IHZhbGlkYXRpb25zIGZvciB0aGUgQWN0aW9uRm9ybXMgaW4gYW4gWE1MIGRlc2NyaXB0b3IsIHVzaW5nIHRoZQorICAgICAgICAgICAgPGEgaHJlZj0idXNlckd1aWRlL2Rldl92YWxpZGF0b3IuaHRtbCI+U3RydXRzIFZhbGlkYXRvcjwvYT4uCisgICAgICAgICAgICBBbm90aGVyIGV4dGVuc2lvbiwgPGEgaHJlZj0idXNlckd1aWRlL2Rldl90aWxlcy5odG1sIj5UaWxlczwvYT4sIGhlbHBzIHlvdSBidWlsZCBwYWdlcyBmcm9tIHNtYWxsZXIKKyAgICAgICAgICAgIGZyYWdtZW50cy4KKyAgICAgICAgPC9wPgorCisgICAgICAgIDxwPgorICAgICAgICAgICAgU3RydXRzIGlzIGFuIGV4dGVuc2libGUgZnJhbWV3b3JrLgorICAgICAgICAgICAgRXZlcnkgY2xhc3MgZGVwbG95ZWQgYnkgU3RydXRzIGNhbiBiZSByZXBsYWNlZCBieSB5b3VyIG93biBkZWZhdWx0IGNsYXNzLgorICAgICAgICAgICAgVGhlIHByb3BlcnRpZXMgb2YgeW91ciBkZWZhdWx0IGNsYXNzIGNhbiBiZSBzZXQgdXNpbmcgdGhlCisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvZGlnZXN0ZXIvIj4gRGlnZXN0ZXInczwvYT4gPGNvZGU+c2V0LXByb3BlcnR5PC9jb2RlPiBmZWF0dXJlLgorICAgICAgICAgICAgVGhpcyBpcyBvbmUgcmVhc29uIHdoeSB0aGVyZSBhcmUgc28gbWFueSA8YSBocmVmPSJyZXNvdXJjZXMvZXh0ZW5zaW9ucy5odG1sIj5jb250cmlidXRvciBleHRlbnNpb25zPC9hPiBmb3IKKyAgICAgICAgICAgIFN0cnV0cy4KKyAgICAgICAgICAgIFN0cnV0cyBwcm92aWRlcyBhIGJhc2UgZnJhbWV3b3JrLCBidXQgeW91IGNhbiBzdGlsbCB3cml0ZSA8Yj55b3VyPC9iPiBhcHBsaWNhdGlvbiA8Yj55b3VyPC9iPiB3YXkuCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgICAgIEZvciBtb3JlIGFib3V0IFN0cnV0cyBhbmQgaXRzIHVuZGVybHlpbmcgdGVjaG5vbG9naWVzLCBzZWUgdGhlIDxhIGhyZWY9InVzZXJHdWlkZS9pbmRleC5odG1sIj5Vc2VyCisgICAgICAgICAgICBHdWlkZTwvYT4gYW5kIHRoZSBEZXZlbG9wZXIgR3VpZGVzLgorICAgICAgICA8L3A+CisKKyAgICA8L3NlY3Rpb24+CisKKyAgICA8c2VjdGlvbiBuYW1lPSJJcyBTdHJ1dHMgdGhlIGJlc3QgY2hvaWNlIGZvciBldmVyeSBwcm9qZWN0PyI+CisKKyAgICAgICAgPHA+CisgICAgICAgICAgICBOby4gSWYgeW91IG5lZWQgdG8gd3JpdGUgYSB2ZXJ5IHNpbXBsZSBhcHBsaWNhdGlvbiwgd2l0aCBhIGhhbmRmdWwgb2YgcGFnZXMsCisgICAgICAgICAgICB0aGVuIHlvdSBtaWdodCBjb25zaWRlciBhICJNb2RlbCAxIiBzb2x1dGlvbiB0aGF0IHVzZXMgb25seSBzZXJ2ZXIgcGFnZXMuCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgICAgIEJ1dCwgaWYgeW91IGFyZSB3cml0aW5nIGEgbW9yZSBjb21wbGljYXRlZCBhcHBsaWNhdGlvbiwgd2l0aCBkb3plbnMgb2YgcGFnZXMsCisgICAgICAgICAgICB0aGF0IG5lZWQgdG8gYmUgbWFpbnRhaW5lZCBvdmVyIHRpbWUsIHRoZW4gU3RydXRzIGNhbiBoZWxwLiBGb3IgbW9yZSBhYm91dAorICAgICAgICAgICAgd2hldGhlciBNb2RlbCAxIG9yIG9yIE1WQy9Nb2RlbCAyIGlzIHJpZ2h0IGZvciB5b3UsIHNlZQorICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5qYXZhd29ybGQuY29tL2phdmF3b3JsZC9qdy0xMi0xOTk5L2p3LTEyLXNzai1qc3BtdmMuaHRtbCI+VW5kZXJzdGFuZGluZyBKYXZhU2VydmVyCisgICAgICAgICAgICBQYWdlcyBNb2RlbCAyIGFyY2hpdGVjdHVyZTwvYT4gYW5kCisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LnNjaW93b3Jrcy5uZXQvZGV2bmV3cy9hcnRpY2xlcy9zdHJ1dHNfYWRvcHRpb25faXNzdWVzL2luZGV4Lmh0bWwiPgorICAgICAgICAgICAgSXNzdWVzIGluIFN0cnV0cyBBZG9wdGlvbjwvYT4uCisgICAgICAgIDwvcD4KKworICAgIDwvc2VjdGlvbj4KKworICAgIDxzZWN0aW9uPgorICAgICAgICA8cD4KKyAgICAgICAgTmV4dDogPGEgaHJlZj0ibGVhcm5pbmcuaHRtbCI+TGVhcm5pbmcgQWJvdXQgU3RydXRzPC9hPgorICAgICAgICA8L3A+CisgICAgPC9zZWN0aW9uPgorCisgICAgPHNlY3Rpb24+CisgICAgICAgIDxwPgorICAgICAgICA8YSBocmVmPSJmYXFzL2tpY2tzdGFydC5odG1sI2pzZiI+V2hhdCBhYm91dCBKU1RMIGFuZCBKYXZhU2VydmVyIEZhY2VzPzwvYT4KKyAgICAgICAgPC9wPgorICAgIDwvc2VjdGlvbj4KKworPC9ib2R5PgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2xlYXJuaW5nLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL2xlYXJuaW5nLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTI5Mjg4Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvbGVhcm5pbmcueG1sCkBAIC0wLDAgKzEsMjkyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Ii4vbGVhcm5pbmcueG1sIj4KKworPCEtLQorLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IDc4CistLT4KKworPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPkxlYXJuaW5nIC0gVGhlIEFwYWNoZSBTdHJ1dHMgV2ViIEFwcGxpY2F0aW9uIEZyYW1ld29yazwvdGl0bGU+Cis8L3Byb3BlcnRpZXM+CisKKzxib2R5PgorPHNlY3Rpb24gbmFtZT0iTGVhcm5pbmcgQWJvdXQgU3RydXRzIiBocmVmPSJEb2NzIj4KKworICAgIDxwPgorICAgIFRoZSA8c3Ryb25nPm9mZmljaWFsIGRvY3VtZW50YXRpb248L3N0cm9uZz4gZm9yIHRoZSBmcmFtZXdvcmsgaXMgcHJvdmlkZWQgYm90aCAKKyAgICBvbmxpbmUgYW5kIGFzIGEgc2VsZi1pbnN0YWxsaW5nIFdBUiBpbiB0aGUgZGlzdHJpYnV0aW9uLiAKKyAgICBUaGUgPGNvZGU+c3RydXRzLWRvY3VtZW50YXRpb24ud2FyPC9jb2RlPiBpbmNsdWRlcyBvdXIgCisgICAgPC9wPgorCisgICAgPHVsPgorICAgIDxsaT4KKyAgICA8YSBocmVmPSJ1c2VyR3VpZGUvaW5kZXguaHRtbCI+VXNlciBhbmQgRGV2ZWxvcGVyIEd1aWRlczwvYT4sCisgICAgPC9saT4KKyAgICA8bGk+CisgICAgPGEgaHJlZj0iYXBpL2luZGV4Lmh0bWwiPkNvbXByZWhlbnNpdmUgSmF2YWRvY3M8L2E+LAorICAgIDwvbGk+CisgICAgPGxpPgorICAgIDxhIGhyZWY9Ii4vZmFxcy9pbmRleC5odG1sIj5GQVEgYW5kIEhvd3RvIEd1aWRlczwvYT4sCisgICAgPC9saT4KKyAgICA8bGk+CisgICAgYW5kIGV2ZXJ5dGhpbmcgZWxzZSB5b3UgZmluZCBoZXJlLgorICAgIDwvbGk+CisgICAgPC91bD4KKworICAgIDxwPgorICAgIFlvdSBhcmUgaW52aXRlZCB0byBwcmV2aWV3IHRoZSBkb2N1bWVudGF0aW9uIG9ubGluZSBhbmQgdGhlbiBpbnN0YWxsIAorICAgIHRoZSBhcHBsaWNhdGlvbiBsb2NhbGx5IGZvciBjbG9zZXIgc3R1ZHkuCisgICAgPC9wPgorCisgICAgCisgICAgPHN0cm9uZz5OT1RFOjwvc3Ryb25nPiBJZiB5b3UgYXJlIHByZXZpZXdpbmcgdGhlIGRvY3VtZW50YXRpb24gb24gdGhlIHdlYnNpdGUsIAorICAgIG1vc3Qgb2YgdGhlIGxpbmtzIGluIHRoaXMgc2VjdGlvbiB3aWxsIHJlZmVyIHRvIHRoZSA8c3Ryb25nPk5pZ2h0bHkgQnVpbGQ8L3N0cm9uZz4uCisgICAgV2hlbiBsZWFybmluZyBhYm91dCBTdHJ1dHMsIDxzdHJvbmc+YmUgc3VyZSB0byByZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgCisgICAgdGhlIHZlcnNpb24geW91IGFyZSBhY3R1YWxseSB1c2luZzwvc3Ryb25nPi4gCisgICAgVGhlIGRvY3VtZW50YXRpb24gaXMgYnVuZGxlZCB3aXRoIGVhY2ggZGlzdHJpYnV0aW9uIGFzIGFuIGFwcGxpY2F0aW9uIHRoYXQgCisgICAgeW91IGNhbiBpbnN0YWxsIGFuZCB1c2UgbG9jYWxseS4KKyAgICAKKworICAgIDxwPgorICAgIFRoZSBjb25jaXNlIFN0cnV0cyA8YSBocmVmPSJ1c2VyR3VpZGUvaW5kZXguaHRtbCI+PHN0cm9uZz5Vc2VyIEd1aWRlPC9zdHJvbmc+PC9hPiAKKyAgICBpbnRyb2R1Y2VzIHRoZSBNb2RlbC1WaWV3LUNvbnRyb2xsZXIgYXJjaGl0ZWN0dXJlLCBhbmQgaG93IGl0IHJlbGF0ZXMgdG8gCisgICAgdGhlIG1ham9yIGNvbXBvbmVudHMgb2YgU3RydXRzLgorICAgIElmIHlvdSB3YW50IHRvIGZpbmQgb3V0ICJIb3cgU3RydXRzIHdvcmtzIiwgdGhpcyBpcyB0aGUgcGxhY2UgdG8gc3RhcnQuCisgICAgQWxvbmcgd2l0aCBhbiBhcmNoaXRlY3R1cmFsIG92ZXJ2aWV3LCB0aGUgVXNlciBHdWlkZSBhbHNvIGluY2x1ZGVzIAorICAgIGRldGFpbGVkIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMgYW5kIHJlbGVhc2Ugbm90ZXMgZm9yIGVhY2ggdmVyc2lvbiBvZiAKKyAgICB0aGUgZnJhbWV3b3JrLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICBPdXIgPHN0cm9uZz5EZXZlbG9wZXIgR3VpZGVzPC9zdHJvbmc+IGFyZSBkZXRhaWxlZCB0ZWNobmljYWwgcmVmZXJlbmNlcyB0byB0aGUgZXh0ZW5zaW9ucyBhbmQgY29tcG9uZW50cyBwcm92aWRlZCBpbiB0aGUKKyAgICAgICAgU3RydXRzIGRpc3RyaWJ1dGlvbi4KKyAgICAgICAgSW5jbHVkZWQgYXJlIHBhY2thZ2Ugb3ZlcnZpZXdzIGFuZCBBUEkgcmVmZXJlbmNlIGZvciBlYWNoIG9mIHRoZSBTdHJ1dHMgdGFnbGlicywgYWxvbmcgd2l0aCBndWlkZXMgdG8gdGhlCisgICAgICAgIFN0cnV0cyBVdGlsaXRpZXMgYW5kIHRoZSBTdHJ1dHMgVmFsaWRhdG9yLgorICAgICAgICBUaGUgRGV2ZWxvcGVyIEd1aWRlcyBhcmUgZGVzaWduZWQgYXMgYSBkYXktdG8tZGF5IHJlZmVyZW5jZSB0byBoZWxwIHlvdSBnZXQgdGhlIG1vc3Qgb3V0IG9mIHRoZSBzdGFuZGFyZAorICAgICAgICBwYWNrYWdlcy4KKyAgICAgICAgTGlua3MgdG8gdGhlIHZhcmlvdXMgRGV2ZWxvcGVyIEd1aWRlcyBhcmUgcHJvdmlkZWQgYXMgcGFydCBvZgorICAgICAgICA8YSBocmVmPSJ1c2VyR3VpZGUvaW5kZXguaHRtbCI+PHN0cm9uZz5Vc2VyIEd1aWRlPC9zdHJvbmc+PC9hPiBtZW51LgorICAgIDwvcD4KKworICAgIDxwPgorICAgIEZvciBtb3JlIGRldGFpbCBhYm91dCBhIHNwZWNpZmljIGNsYXNzIG9yIHBhY2thZ2UsIHRoZSBTdHJ1dHMgCisgICAgPGEgaHJlZj0iYXBpL2luZGV4Lmh0bWwiPjxzdHJvbmc+SmF2YWRvY3M8L3N0cm9uZz48L2E+IGFyZSA8c3Ryb25nPnN1cnByaXNpbmdseSAKKyAgICBjb21wcmVoZW5zaXZlIGFuZCBjYXJlZnVsbHkgbWFpbnRhaW5lZDwvc3Ryb25nPi4gCisgICAgSXQgaXMgPGVtPnN0cm9uZ2x5PC9lbT4gcmVjb21tZW5kZWQgdGhhdCB5b3UgcmVmZXIgdG8gdGhlIAorICAgIDxhIGhyZWY9ImFwaS9pbmRleC5odG1sIj4gSmF2YWRvYzwvYT4gZm9yIGVhY2ggY2xhc3MgYXMgeW91IGJlZ2luIHRvIHVzZSAKKyAgICBpdC4gCisgICAgVGhpcyB3aWxsIGhlbHAgZW5zdXJlIHRoYXQgaW1wb3J0YW50IGZlYXR1cmVzIGFuZCBvcHRpb25zIGFyZSBub3QgCisgICAgb3Zlcmxvb2tlZC4gCisgICAgPGVtPldoYXQgeW91IGRvbid0IGtub3csIGNhbid0IGhlbHAgeW91LjwvZW0+CisgICAgPC9wPgorCisgICAgPHAgaWQ9ImZhcXMiPgorICAgIFRoZSBTdHJ1dHMgPHN0cm9uZz5GQVFzPC9zdHJvbmc+IGFyZSBkZXNpZ25lZCB0byBmaWxsIGluIGFueSBzbWFsbCBnYXBzIGxlZnQgYnkgdGhlIAorICAgIEphdmFkb2NzIG9yIHRoZSBVc2VyIGFuZCBEZXZlbG9wZXIgR3VpZGVzLiAKKyAgICA8L3A+CisKKyAgICA8dWw+CisgICAgPGxpPlRoZSA8YSBocmVmPSIuL2ZhcXMva2lja3N0YXJ0Lmh0bWwiPktpY2tzdGFydCBGQVE8L2E+IAorICAgIGFuc3dlcnMgdGhlIG1vc3QgY29tbW9uIG5vbi10ZWNobmljYWwgcXVlc3Rpb25zIHBlb3BsZSBmaXJzdCBhc2sgYWJvdXQgCisgICAgU3RydXRzLiAKKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICBUaGUgPGEgaHJlZj0iLi9mYXFzL25ld2JpZS5odG1sIj5TdHJ1dHMgTmV3YmllIEZBUTwvYT4gYW5zd2VycyB0aGUgbW9zdCAKKyAgICBjb21tb24gdGVjaG5pY2FsIHF1ZXN0aW9ucyBhc2tlZCBieSBmaXJzdC10aW1lciBTdHJ1dHMgZGV2ZWxvcGVycy4gCisgICAgPC9saT4KKyAgICA8bGk+CisgICAgVGhlIDxhIGhyZWY9Ii4vZmFxcy9oZWxwaW5nLmh0bWwiPkhvdyB0byBIZWxwIEZBUTwvYT4gYW5zd2VycyB0aGUgbW9zdCAKKyAgICBjb21tb24gcXVlc3Rpb25zIGFib3V0IGNvbnRyaWJ1dGluZyB0byB0aGUgSmFrYXJ0YS1TdHJ1dHMgcHJvamVjdC4gCisgICAgPC9saT4KKyAgICA8L3VsPgorCisgICAgPHAgaWQ9Imhvd3RvcyI+CisgICAgVGhlIDxzdHJvbmc+SG93dG8gR3VpZGVzPC9zdHJvbmc+IGFyZSBkZXNpZ25lZCB0byBoZWxwIHlvdSBnZXQgc3RhcnRlZCB3aXRoIHNvbWUgb2YgCisgICAgdGhlIG9wdGlvbmFsIGV4dGVuc2lvbnMgYW5kIGNvbXBvbmVudHMgYXZhaWxhYmxlIGZvciBTdHJ1dHMuIAorICAgIFRoZXNlIGluY2x1ZGUgdG9waWNzIGxpa2UgdXNpbmcgdGhlIFNlY3VyZSBTb2NrZXQgTGF5ZXIgKFNTTCkgcHJvdG9jb2wgCisgICAgd2l0aCBTdHJ1dHMgYW5kIGhvdyB0byB1bml0IHRlc3QgeW91ciBTdHJ1dHMgYXBwbGljYXRpb25zLiAKKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICAgICAgVGhlIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvc3RydXRzIj48c3Ryb25nPlN0cnV0cyBXaWtpPC9zdHJvbmc+PC9hPiBpcyBhCisgICAgICAgIHJlbGF0aXZlbHkgbmV3IGFkZGl0aW9uIHRvIHRoZSBTdHJ1dHMgZG9jdW1lbnRhdGlvbi4KKyAgICAgICAgQWxsIG1lbWJlcnMgb2YgdGhlIFN0cnV0cyBDb21tdW5pdHkgYXJlIGludml0ZWQgdG8gcG9zdCBjb21tZW50cyB0byB0aGUgV2lraSwgYXMgd2VsbCBhcyB0aGUgVXNlciBMaXN0LgorICAgICAgICBUaGUgV2lraSBpcyBiZXN0IHN1aXRlZCBmb3IgdGhyZWFkcyB0aGF0IHlvdSB0aGluayBhcmUgb2YgbGFzdGluZyBpbXBvcnRhbmNlLCB3aGlsZSB0aGUgbWFpbGluZyBsaXN0cyBhcmUgYmVzdAorICAgICAgICBzdWl0ZWQgZm9yIGluY2lkZW50YWwgcXVlc3Rpb25zLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICBJZiB5b3UgaGF2ZSBhbnkgY29tbWVudHMgb24gdGhlIHBhZ2VzIHlvdSBzZWUgaGVyZSwgdGhleSBjYW4gYmUgcG9zdGVkIHRvIHRoZSBXaWtpIGJ5IGZvbGxvd2luZyB0aGUgbGluayBvbiB0aGUKKyAgICAgICAgYm90dG9tIG9mIGFueSBwYWdlLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICBGb3IgbW9yZSBoZWxwLCB5b3UgbWlnaHQgdHJ5IHRoZSBKR3VydSBTdHJ1dHMga25vd2xlZGdlYmFzZSBhdCB0aGUgPGEgaHJlZj0iaHR0cDovL2pndXJ1LmNvbS9mYXEvU3RydXRzIj5KR3VydQorICAgICAgICBGQVE8L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vamd1cnUuY29tL2ZvcnVtcy9TdHJ1dHMiPkZvcnVtPC9hPi4KKworICAgIDwvcD4KKyAgICA8cD4KKyAgICBPZiBjb3Vyc2UsIHRoZSBvbmx5IHRydWUgZG9jdW1lbnRhdGlvbiBpcyB0aGUgY29kZSBpdHNlbGYuIAorICAgIElmIHlvdSBoYXZlIGFueSBxdWVzdGlvbnMgYWJvdXQgaG93IFN0cnV0cyBhY3R1YWxseSB3b3JrcywgZG8gbm90IGhlc2l0YXRlIAorICAgIHRvIDxlbT51c2UgdGhlIHNvdXJjZTwvZW0+LiAKKyAgICBGb3IgdGhlIGNvbXBsZXRlLCBidWlsZGFibGUgc291cmNlIGNvZGUgdG8gdGhlIGVudGlyZSBTdHJ1dHMgZnJhbWV3b3JrLCAKKyAgICBzZWUgdGhlICJzcmMiIGZvbGRlciBpbgorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc2l0ZS9zb3VyY2VpbmRleC5odG1sIj48c3Ryb25nPnlvdXIgc291cmNlIAorICAgIGRpc3RyaWJ1dGlvbjwvc3Ryb25nPjwvYT4uCisgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IlN0cnV0cyBieSBFeGFtcGxlIiBocmVmPSJFeGFtcGxlcyI+CisKKyAgICA8cD4KKyAgICAgICAgVG8gaGVscCB5b3Ugc2VlIGhvdyBpdCBhbGwgZml0cyB0b2dldGhlciwgc2V2ZXJhbCBleGFtcGxlIGFwcGxpY2F0aW9ucyBhcmUgYnVuZGxlZCB3aXRoIHRoZSBTdHJ1dHMKKyAgICAgICAgZGlzdHJpYnV0aW9uOgorICAgIDwvcD4KKworICAgIDx1bD4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgQmxhbmsgLSBBIHNpbXBsZSB0ZW1wbGF0ZSBmb3Igc3RhcnRpbmcgbmV3IFN0cnV0cyBhcHBsaWNhdGlvbnMuPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgRXhlcmNpc2UtVGFnbGliIC0gQSBzZXQgb2YgdGVzdCBwYWdlcyB0aGF0IGFsc28gZGVtb25zdHJhdGUgdXNlIG9mIHRoZSBjdXN0b20gdGFncy48L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgICBEb2N1bWVudGF0aW9uIC0gVGhlIFN0cnV0cyBkb2N1bWVudGF0aW9uIGJ1bmRsZSwgYXMgc2VlbiBvbiB0aGUgd2Vic2l0ZS48L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgICA8c3Ryb25nPk1haWxSZWFkZXI8L3N0cm9uZz4gLSBUaGUgb3JpZ2luYWwgU3RydXRzIGV4YW1wbGUgYXBwbGljYXRpb24uIDxlbT5UcnkgbWUgZmlyc3QhPC9lbT48L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgICBUaWxlcy1Eb2MgLSBFeHRlbnNpdmUgZGVtb25zdHJhdGlvbiBvZiBUaWxlcyBleHRlbnNpb24uPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgVXBsb2FkIC0gRGVtb25zdHJhdGVzIHVzaW5nIHRoZSBmaWxlIHVwbG9hZCBmYWNpbGl0aWVzLiAoQmFzZWQgb24gQ29tbW9ucyBVcGxvYWQuKTwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICAgIFZhbGlkYXRvciAtIERlbW9uc3RyYXRlcyB1c2luZyB0aGUgVmFsaWRhdG9yIGV4dGVuc2lvbi48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD4KKyAgICAgICAgVGhlc2UgYXBwbGljYXRpb25zIGFyZSBwcm92aWRlZCBhcyBzdGFuZGFsb25lIFdBUnMgaW4gdGhlIGJpbmFyeSBkaXN0cmlidXRpb24uCisgICAgICAgIFRoZSBzb3VyY2UgY29kZSBmb3IgZWFjaCBhcHBsaWNhdGlvbiBpcyBhdmFpbGFibGUgdW5kZXIgPGNvZGU+V0VCLUlORi9zcmM8L2NvZGU+IGluIHRoZSBiaW5hcmllcyBhbmQgdW5kZXIgdGhlCisgICAgICAgIDxjb2RlPndlYjwvY29kZT4gcGFja2FnZSBpbiB0aGUgc291cmNlIGRpc3RyaWJ1dGlvbi4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICAgICAgVGhlcmUgYXJlIGFsc28gbWFueSB0aGlyZC1wYXJ0eSBleGFtcGxlIGFwcGxpY2F0aW9ucyBhdmFpbGFibGUgZm9yIHN0dWR5LCBpbmNsdWRpbmcgdGhlc2U6CisgICAgPC9wPgorCisgICAgPHVsPgorICAgICAgICA8bGk+CisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vcmFpYmxlZGVzaWducy5jb20vd2lraS9XaWtpLmpzcD9wYWdlPUFwcEZ1c2UiPkFwcEZ1c2U8L2E+IC0gRGVtb25zdHJhdGVzIHVzaW5nIFhEb2NsZXQgd2l0aAorICAgICAgICAgICAgU3RydXRzLCBhbG9uZyB3aXRoIGRpZmZlcmVudCBzZWN1cml0eSBwYWNrYWdlcyBhbmQgSGliZXJuYXRlIGZvciBkYXRhYmFzZSBwZXJzaXN0ZW5jZS4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5pYmF0aXMuY29tL2pwZXRzdG9yZS9qcGV0c3RvcmUuaHRtbCI+SlBldFN0b3JlPC9hPiAtIEEgc3RyZWFtbGluZWQgdmVyc2lvbiBvZiB0aGUgSmF2YQorICAgICAgICAgICAgUGV0c3RvcmUgYXBwbGljYXRpb24gaW1wbGVtZW50ZWQgd2l0aCBTdHJ1dHMgYW5kIGlCQVRJUyBkYXRhYmFzZSBsYXllci4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmNvZGVjemFyLmNvbS9wcm9kdWN0cy9sb2d3ZWIvaW5kZXguaHRtbCI+TG9nV2ViPC9hPiAtIEEgU3RydXRzIHdlYmFwcCBmb3IgY29uZmlndXJpbmcKKyAgICAgICAgICAgIExvZzRKIGF0IHJ1bnRpbWUgd2l0aGluIGEgc2VydmxldCBjb250YWluZXIuCisgICAgICAgIDwvbGk+CisgICAgPC91bD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSJMZWFybmluZyBNb3JlIEFib3V0IFN0cnV0cyIgaHJlZj0iTW9yZSI+CisgICAgPHA+CisgICAgVGhlIFN0cnV0cyA8YSBocmVmPSJ1c2luZy5odG1sI0xpc3RzIj5NYWlsaW5nIExpc3RzPC9hPiBhcmUgYSB0cmVhc3VyZSB0cm92ZSBvZiAKKyAgICB1c2VmdWwsIGludGVyYWN0aXZlIGluZm9ybWF0aW9uLiBUaGUgdXNlciBsaXN0IHRlbmRzIHRvIGNhcnJ5IGEgaGlnaCAKKyAgICB2b2x1bWUsIHNvIGFsd2F5cyBjaGVjayB0aGUgcHVibGlzaGVkIGRvY3VtZW50YXRpb24gYW5kIHRoZQorICAgIDxhIGhyZWY9Imh0dHA6Ly9tYWlsLWFyY2hpdmVzLmFwYWNoZS5vcmcvZXllYnJvd3NlL1N1bW1hcml6ZUxpc3Q/bGlzdElkPTQyIj4KKyAgICA8c3Ryb25nPk1BSUxJTkcgTElTVCBBUkNISVZFPC9zdHJvbmc+PC9hPiBiZWZvcmUgCisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5jYXRiLm9yZy9+ZXNyL2ZhcXMvc21hcnQtcXVlc3Rpb25zLmh0bWwiPnBvc3RpbmcgYQorICAgIG5ldyBxdWVzdGlvbjwvYT4uCisgICAgTGlrZSBhcyBub3QsIGl0J3MgYWxyZWFkeSBiZWVuIGFza2VkIGFuZCBhbnN3ZXJlZC4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBJZiB5b3UgcmVhbGx5IGNhbid0IGZpbmQgdGhlIGFuc3dlciB0byB5b3VyIHF1ZXN0aW9uIGluIHRoZSAKKyAgICA8YSBocmVmPSIjZmFxcyI+RkFRczwvYT4gb3IKKyAgICA8YSBocmVmPSJodHRwOi8vbWFpbC1hcmNoaXZlcy5hcGFjaGUub3JnL2V5ZWJyb3dzZS9TdW1tYXJpemVMaXN0P2xpc3RJZD00MiI+CisgICAgbGlzdCBhcmNoaXZlPC9hPiwgeW91IGNhbiBwb3N0IHlvdXIgcXVlcnkgdG8gdGhlIFN0cnV0cyBVc2VyIGxpc3QgLS0gCisgICAgPHN0cm9uZz5CVVQgWU9VIE1VU1QgU1VCU0NSSUJFIFRPIFRIRSAKKyAgICA8YSBocmVmPSJtYWlsdG86c3RydXRzLXVzZXItc3Vic2NyaWJlQGpha2FydGEuYXBhY2hlLm9yZyI+VVNFUiBMSVNUPC9hPgorICAgIE9SIFRIRSA8YSBocmVmPSJtYWlsdG86c3RydXRzLXVzZXItZGlnZXN0LXN1YnNjcmliZUBqYWthcnRhLmFwYWNoZS5vcmciPgorICAgIFVTRVIgTElTVCBESUdFU1Q8L2E+IEJFRk9SRSBQT1NUSU5HPC9zdHJvbmc+LiA8L3A+CisKKyAgICA8cD4KKyAgICAgICAgUGxlYXNlIG5vdGUgdGhhdCB0aGUgU3RydXRzIFVzZXIgbGlzdCBlbmpveXMgYSAiY2FzdWFsIGZyaWRheSIgcG9saWN5LiAKKyAgICAgICAgTW9yZSBvZmYtdG9waWMgIG1lc3NhZ2VzIGFyZSB0b2xlcmF0ZWQgb24gRnJpZGF5cyBzbyBsb25nIGFzIHRoZSAKKyAgICAgICAgbWVzc2FnZSBpcyBwcmVmaXhlZCB3aXRoIHRoZSB0b2tlbiBbRlJJREFZXS4gCisgICAgICAgIElmIHlvdSdkIHJhdGhlciBub3QgYmUgdHJvdWJsZWQgYnkgdGhlc2UgcG9zdGluZ3MsIHBsZWFzZSBzZXQgeW91ciAKKyAgICAgICAgbWFpbCBmaWx0ZXIgYWNjb3JkaW5nbHkuIAorICAgICAgICBQb3N0aW5nIFtGUklEQVldIGFydGljbGVzIG9uIGFueSBvdGhlciB3ZWVrZGF5IGlzIDxzdHJvbmc+c3Ryb25nbHkgCisgICAgICAgIGRpc2NvdXJhZ2VkPC9zdHJvbmc+LiAKKyAgICAgICAgV2UgdGhhbmsgeW91IGZvciB5b3VyIGNvb3BlcmF0aW9uLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICBUaGUgU3RydXRzIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvc3RydXRzIj48c3Ryb25nPldpa2k8L3N0cm9uZz48L2E+IGlzIGEgcmVsYXRpdmVseQorICAgICAgICBuZXcgYWRkaXRpb24gdG8gb3VyIGRvY3VtZW50YXRpb24uCisgICAgICAgIEFueSBtZW1iZXIgb2YgdGhlIGNvbW11bml0eSAodGhhdCBtZWFucyB5b3UhKSBpcyBpbnZpdGVkIHRvIHBvc3QgbmV3IG1hdGVyaWFsIHRvIHRoZSBXaWtpLgorICAgICAgICBIb3dldmVyLCB0aGUgV2lraSBpcyBub3QgdGhlIHBsYWNlIHRvIGFzayBpbmNpZGVudGFsIHF1ZXN0aW9ucy4KKyAgICAgICAgPHN0cm9uZz5BbGwgc3VwcG9ydCBxdWVzdGlvbnMgc2hvdWxkIGJlIGRpcmVjdGVkIHRvIHRoZSA8YSBocmVmPSJ1c2luZy5odG1sI0xpc3RzIj5TdHJ1dHMgVXNlciBsaXN0PC9hPiBvcgorICAgICAgICBvdGhlciBzdXBwb3J0IGZvcnVtPC9zdHJvbmc+LgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICBUaGVyZSBpcyBhbHNvIGEgc2V0IG9mIFdpa2kgcGFnZXMgZGV2b3RlZCB0byBjb21tZW50cyBvbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyAgICAgICAgVG8gY29tbWVudCBvbiB0aGUgZG9jdW1lbnRhdGlvbiwgZm9sbG93IHRoZSAiQ29tbWVudHM/IiBsaW5rIGF0IHRoZSBib3R0b20gb2YgYW55IHBhZ2UuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhlIDxhIGhyZWY9InN0YXR1cy5odG1sI3JvYWRtYXAiPjxzdHJvbmc+Um9hZG1hcDwvc3Ryb25nPjwvYT4gcGFnZSBvdXRsaW5lcyBvdXIgdGVudGF0aXZlIHBsYW5zIGZvciBmdXR1cmUgZGV2ZWxvcG1lbnQuCisgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKyAgICA8c2VjdGlvbiBuYW1lPSJTdHJ1dHMgQ29tbXVuaXR5IFJlc291cmNlcyIgaHJlZj0icmVzb3VyY2VzIj4KKworICAgIDxwPgorICAgICAgICBTdHJ1dHMgaGFzIGF0dHJhY3RlZCBhIGxhcmdlIGFuZCByb2J1c3QgY29tbXVuaXR5IG9mIGRldmVsb3BlcnMuCisgICAgICAgIFNvbWUgb2YgdGhlc2UgZGV2ZWxvcGVycyBoYXZlIGEgY3JlYXRlZCBhbiBpbmRlcGVuZGFudCBTb3VyY2VGb3JnZSBzaXRlIHRvIHByb21vdGUgbmV3IGV4dGVuc2lvbnMgdG8gdGhlIFN0cnV0cyBmcmFtZXdvcmsuCisgICAgICAgIEFzIGEgc2VydmljZSB0byBvdXIgY29tbXVuaXR5LCB0aGUgU3RydXRzIFNvdXJjZUZvcmdlIHNpdGUgbWFpbnRhaW5zIGFuCisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9zdHJ1dHMuc2YubmV0L2NvbW11bml0eS9pbmRleC5odG1sIj5leHRlbnNpdmUgZGlyZWN0b3J5IG9mIFN0cnV0cyByZXNvdXJjZXM8L2E+LiBpbmNsdWRpbmcuCisgICAgPC9wPgorCisgICAgPHVsPgorICAgICAgICA8bGk+CisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vc3RydXRzLnNmLm5ldC9jb21tdW5pdHkvYXJ0aWNsZXMuaHRtbCI+YXJ0aWNsZXM8L2E+LAorICAgICAgICA8L2xpPgorCisgICAgPGxpPgorICAgICAgICA8YSBocmVmPSJodHRwOi8vc3RydXRzLnNmLm5ldC9jb21tdW5pdHkvYm9va3MuaHRtbCI+Ym9va3M8L2E+LAorICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3N0cnV0cy5zZi5uZXQvY29tbXVuaXR5L2V4YW1wbGVzLmh0bWwiPnNhbXBsZSBhcHBsaWNhdGlvbnM8L2E+LAorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9zdHJ1dHMuc2YubmV0L2NvbW11bml0eS90dXRvcmlhbHMuaHRtbCI+dHV0b3JpYWxzPC9hPiwgYW5kIG1vcmUhCisgICAgICAgIDwvbGk+CisKKyAgICA8L3VsPgorCis8L3NlY3Rpb24+CisKKyAgICA8c2VjdGlvbiBuYW1lPSJCb29rcyBhYm91dCBTdHJ1dHMiIGhyZWY9ImJvb2tzIj4KKworICAgICAgIDxwPgorICAgICAgIFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiBkb2VzIG5vdCBwcm92aWRlIHByaW50ZWQgbWFudWFscywKKyAgICAgICBidXQgc2V2ZXJhbCB0aGlyZC1wYXJ0eSBib29rcyBhYm91dCBTdHJ1dHMgYXJlIGF2YWlsYWJsZS4KKyAgICAgICBBIGN1cnJlbnQgbGlzdCBvZiBib29rcyBhYm91dCBTdHJ1dHMgaXMgbWFpbnRhaW5lZCBieSB0aGUKKyAgICAgICA8YSBocmVmPSJodHRwOi8vc3RydXRzLnNmLm5ldC9jb21tdW5pdHkvaW5kZXguaHRtbCI+U3RydXRzIENvbW11bml0eSBSZXNvdXJjZXMgYXJlYTwvYT4uCisgICAgICAgPC9wPgorCisgICAgPC9zZWN0aW9uPgorCisgICAgPHNlY3Rpb24+CisgICAgICAgIDxwIGNsYXNzPSJyaWdodCI+CisgICAgICAgIE5leHQ6IDxhIGhyZWY9ImFjcXVpcmluZy5odG1sIj5BY3F1aXJpbmcgU3RydXRzPC9hPgorICAgICAgICA8L3A+CisgICAgPC9zZWN0aW9uPgorCis8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvbmF2aWdhdGlvbi54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9uYXZpZ2F0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzViZjRhCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvbmF2aWdhdGlvbi54bWwKQEAgLTAsMCArMSw4NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPHByb2plY3QgbmFtZT0iU3RydXRzIj4KKworICA8dGl0bGU+U3RydXRzPC90aXRsZT4KKyAgPG9yZ2FuaXphdGlvbkxvZ28gaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9pbWFnZXMvamFrYXJ0YS1sb2dvLWJsdWUuZ2lmIj5KYWthcnRhPC9vcmdhbml6YXRpb25Mb2dvPgorCisgIDxib2R5PgorICAKKyAgICA8bWVudSBuYW1lPSJTdHJ1dHMiPgorICAgICAgPGl0ZW0gbmFtZT0iV2VsY29tZSIgICAgICAgICAgICAgICAgICAgIGhyZWY9ImluZGV4Lmh0bWwiLz4KKyAgICAgIDxpdGVtIG5hbWU9IkxlYXJuaW5nIiAgICAgICAgICAgICAgICAgICBocmVmPSJsZWFybmluZy5odG1sIi8+CisgICAgICA8aXRlbSBuYW1lPSJBY3F1aXJpbmciICAgICAgICAgICAgICAgICAgaHJlZj0iYWNxdWlyaW5nLmh0bWwiLz4KKyAgICAgIDxpdGVtIG5hbWU9IlVzaW5nIiAgICAgICAgICAgICAgICAgICAgICBocmVmPSJ1c2luZy5odG1sIi8+CisgICAgICA8aXRlbSBuYW1lPSJXaG8gV2UgQXJlIiAgICAgICAgICAgICAgICAgaHJlZj0idm9sdW50ZWVycy5odG1sIi8+CisgICAgICA8aXRlbSBuYW1lPSJBbm5vdW5jZW1lbnRzIiAgICAgICAgICAgICAgaHJlZj0iYW5ub3VuY2UuaHRtbCIvPiAgCisgICAgPC9tZW51PgorICAKKyAgICA8bWVudSBuYW1lPSJEb2N1bWVudGF0aW9uIj4KKyAgICAgIDxpdGVtIG5hbWU9IlVzZXIgYW5kIERldmVsb3BlciBHdWlkZXMiICBocmVmPSJ1c2VyR3VpZGUvaW5kZXguaHRtbCIvPgorICAgICAgPGl0ZW0gbmFtZT0iSmF2YWRvYyIgICAgICAgICAgICAgICAgICAgIGhyZWY9ImFwaWRvY3MvaW5kZXguaHRtbCIvPgorICAgICAgPGl0ZW0gbmFtZT0iRkFRcyBhbmQgSG93dG9zIiAgICAgICAgICAgIGhyZWY9ImZhcXMvaW5kZXguaHRtbCIvPgorICAgIDwvbWVudT4KKyAgICAKKyAgICA8bWVudSBuYW1lPSJVc2VyIEd1aWRlIj4KKyAgICAgIDxpdGVtIG5hbWU9IlRhYmxlIG9mIENvbnRlbnRzIiAgICAgICAgICBocmVmPSJ1c2VyR3VpZGUvaW5kZXguaHRtbCIvPgorICAgICAgPGl0ZW0gbmFtZT0iUHJlZmFjZSIgICAgICAgICAgICAgICAgICAgIGhyZWY9InVzZXJHdWlkZS9wcmVmYWNlLmh0bWwiLz4KKyAgICAgIDxpdGVtIG5hbWU9IkludHJvZHVjdGlvbiIgICAgICAgICAgICAgICBocmVmPSJ1c2VyR3VpZGUvaW50cm9kdWN0aW9uLmh0bWwiLz4KKyAgICAgIDxpdGVtIG5hbWU9Ik1vZGVsIENvbXBvbmVudHMiICAgICAgICAgICBocmVmPSJ1c2VyR3VpZGUvYnVpbGRpbmdfbW9kZWwuaHRtbCIvPgorICAgICAgPGl0ZW0gbmFtZT0iVmlldyBDb21wb25lbnRzIiAgICAgICAgICAgIGhyZWY9InVzZXJHdWlkZS9idWlsZGluZ192aWV3Lmh0bWwiLz4KKyAgICAgIDxpdGVtIG5hbWU9IkNvbnRyb2xsZXIgQ29tcG9uZW50cyIgICAgICBocmVmPSJ1c2VyR3VpZGUvYnVpbGRpbmdfY29udHJvbGxlci5odG1sIi8+CisgICAgICA8aXRlbSBuYW1lPSJDb25maWd1cmF0aW9uIiAgICAgICAgICAgICAgaHJlZj0idXNlckd1aWRlL2NvbmZpZ3VyYXRpb24uaHRtbCIvPgorICAgICAgPGl0ZW0gbmFtZT0iUmVsZWFzZSBOb3RlcyIgICAgICAgICAgICAgIGhyZWY9InVzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLmh0bWwiLz4KKyAgICAgIDxpdGVtIG5hbWU9Ikluc3RhbGxhdGlvbiIgICAgICAgICAgICAgICBocmVmPSJ1c2VyR3VpZGUvaW5zdGFsbGF0aW9uLmh0bWwiLz4KKyAgICA8L21lbnU+CisKKyAgICA8bWVudSBuYW1lPSJEZXZlbG9wZXIgR3VpZGVzIj4KKyAgICAgIDxpdGVtIG5hbWU9IkJlYW4gVGFncyIgICAgICAgICAgICAgICAgICBocmVmPSJ1c2VyR3VpZGUvZGV2X2JlYW4uaHRtbCIvPgorICAgICAgPGl0ZW0gbmFtZT0iSFRNTCBUYWdzIiAgICAgICAgICAgICAgICAgIGhyZWY9InVzZXJHdWlkZS9kZXZfaHRtbC5odG1sIi8+CisgICAgICA8aXRlbSBuYW1lPSJMb2dpYyBUYWdzIiAgICAgICAgICAgICAgICAgaHJlZj0idXNlckd1aWRlL2Rldl9sb2dpYy5odG1sIi8+CisgICAgICA8aXRlbSBuYW1lPSJOZXN0ZWQgVGFncyIgICAgICAgICAgICAgICAgaHJlZj0idXNlckd1aWRlL2Rldl9uZXN0ZWQuaHRtbCIvPgorICAgICAgPGl0ZW0gbmFtZT0iVGlsZXMgVGFncyIgICAgICAgICAgICAgICAgIGhyZWY9InVzZXJHdWlkZS9kZXZfdGlsZXMuaHRtbCIvPgorICAgICAgPGl0ZW0gbmFtZT0iVXRpbGl0aWVzIiAgICAgICAgICAgICAgICAgIGhyZWY9InVzZXJHdWlkZS9kZXZfdXRpbC5odG1sIi8+CisgICAgICA8aXRlbSBuYW1lPSJWYWxpZGF0b3IiICAgICAgICAgICAgICAgICAgaHJlZj0idXNlckd1aWRlL2Rldl92YWxpZGF0b3IuaHRtbCIvPgorICAgIDwvbWVudT4gICAgCisgIAorICAgIDxtZW51IG5hbWU9IkNvbW11bml0eSI+CisgICAgICA8aXRlbSBuYW1lPSJLbm93biBJc3N1ZXMgKEJ1Z3ppbGxhKSIgICAgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL2J1Z3MuaHRtbCIvPgorICAgICAgPGl0ZW0gbmFtZT0iV2lraSBQYWdlcyIgICAgICAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvc3RydXRzIi8+CisgICAgICA8aXRlbSBuYW1lPSJMaXN0IEFyY2hpdmUiICAgICAgICAgICAgICAgaHJlZj0iaHR0cDovL21haWwtYXJjaGl2ZXMuYXBhY2hlLm9yZy9leWVicm93c2UvU3VtbWFyaXplTGlzdD9saXN0SWQ9NDIiLz4KKyAgICAgIDxpdGVtIG5hbWU9IlJlc291cmNlIERpcmVjdG9yeSIgICAgICAgICBocmVmPSJodHRwOi8vc3RydXRzLnNmLm5ldC9jb21tdW5pdHkvaW5kZXguaHRtbCIvPgorICAgIDwvbWVudT4KKworICAgIDxtZW51IG5hbWU9IkRvd25sb2FkIj4KKyAgICAgIDxpdGVtIG5hbWU9IkJpbmFyaWVzIiAgICAgICAgICAgICAgICAgICBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3NpdGUvYmluaW5kZXguY2dpIi8+CisgICAgICA8aXRlbSBuYW1lPSJTb3VyY2UgQ29kZSIgICAgICAgICAgICAgICAgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL3NvdXJjZWluZGV4LmNnaSIvPgorICAgIDwvbWVudT4KKworICAgIDxtZW51IG5hbWU9IkRldmVsb3BtZW50Ij4KKyAgICA8IS0tIGN2cy11c2FnZS5odG1sIGRvZXNuJ3QgZXhpc3Qgc28gSSdtIGNvbW1lbnRpbmcgdGhpcyBvdXQKKyAgICAgIDxpdGVtIG5hbWU9IkNWUyBBY2Nlc3MiICAgICAgICAgIGhyZWY9ImN2cy11c2FnZS5odG1sIi8+CisgICAgLS0+ICAKKyAgICAgIDxpdGVtIG5hbWU9IlN1YnZlcnNpb24gUmVwb3NpdG9yeSIgICAgICAgICAgICAgaHJlZj0iaHR0cDovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9zdHJ1dHMvY29yZS90cnVuay8iLz4KKyAgICA8IS0tIElzIHRoZXJlIGEgU3VidmVyc2lvbiBlcXVpdmFsZW50PyAKKyAgICAgIDxpdGVtIG5hbWU9IlN1YnZlcnNpb24gQ2hhbmdlbG9nIiAgICAgICAgICAgICAgaHJlZj0iY2hhbmdlbG9nLXJlcG9ydC5odG1sIi8+CisgICAgLS0+ICAKKyAgICAgIDxpdGVtIG5hbWU9IkZpbGUgQWN0aXZpdHkiICAgICAgICAgICAgICBocmVmPSJmaWxlLWFjdGl2aXR5LXJlcG9ydC5odG1sIi8+CisgICAgICA8aXRlbSBuYW1lPSJCdWlsZCBEZXBlbmRlbmNpZXMiICAgICAgICAgaHJlZj0iZGVwZW5kZW5jaWVzLmh0bWwiLz4KKyAgICAgIDxpdGVtIG5hbWU9IlJlbGVhc2UgR3VpZGVsaW5lcyIgICAgICAgICBocmVmPSJyZWxlYXNlcy5odG1sIi8+CisgICAgICA8aXRlbSBuYW1lPSJSb2FkbWFwIiAgICAgICAgICAgICAgICAgICAgaHJlZj0ic3RhdHVzLmh0bWwiLz4KKyAgICA8L21lbnU+ICAKKyAgCis8IS0tICAKKyAgICA8bWVudSBuYW1lPSJTdHJ1dHMiPgorICAgICAgPGl0ZW0gbmFtZT0iT3ZlcnZpZXciICAgICAgICAgICAgICAgIGhyZWY9Ii9pbmRleC5odG1sIi8+CisgICAgICA8aXRlbSBuYW1lPSJDb21tdW5pdHkiICAgICAgICAgICAgICAgaHJlZj0iL2NvbW11bml0eS5odG1sIi8+CisgICAgICA8aXRlbSBuYW1lPSJUbyBEbyBMaXN0IiAgICAgICAgICAgICAgaHJlZj0iL3Rhc2tzLmh0bWwiLz4KKyAgICAgIDxpdGVtIG5hbWU9IlJlc291cmNlcyIgICAgICAgICAgICAgICBocmVmPSIvcmVzb3VyY2VzLmh0bWwiLz4KKyAgICAgIDxpdGVtIG5hbWU9IkxlZ2FjeSIgaHJlZj0iL2luZGV4Lmh0bWwiIGNvbGxhcHNlPSJ0cnVlIj4gICAKKwkgICAgICA8aXRlbSBuYW1lPSJBcGkgMS4wIiBocmVmPSIvYXBpLTEuMC9vcmcvYXBhY2hlL3N0cnV0cy9wYWNrYWdlLXN1bW1hcnkuaHRtbCIgY29sbGFwc2U9InRydWUiLz4KKwkgICAgICA8aXRlbSBuYW1lPSJBcGkgMS4xIiBocmVmPSIvYXBpLTEuMS9vcmcvYXBhY2hlL3N0cnV0cy9wYWNrYWdlLXN1bW1hcnkuaHRtbCIgY29sbGFwc2U9InRydWUiLz4KKwkgIDwvaXRlbT4KKyAgICA8L21lbnU+CistLT4KKyAgICAKKyAgPC9ib2R5PgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvamVjdC54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9qZWN0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTBjNmJkCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvamVjdC54bWwKQEAgLTAsMCArMSwxMDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxwcm9qZWN0IAorICAgIG5hbWU9IlN0cnV0cyBGcmFtZXdvcmsiCisgICAgICAgIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzIgorICAgICAgIGltYWdlPSJpbWFnZXMvc3RydXRzLmdpZiI+CisKKyAgICA8dGl0bGU+CisgICAgICAgIEFwYWNoZSBTdHJ1dHMgV2ViIEFwcGxpY2F0aW9uIEZyYW1ld29yaworICAgIDwvdGl0bGU+CisKKyAgICA8bWVudSBuYW1lPSJTdHJ1dHMiPgorICAgICAgICA8aXRlbSAKKyAgICAgICAgICAgIG5hbWU9IldlbGNvbWUiCisgICAgICAgICAgICBocmVmPSJpbmRleC5odG1sIgorICAgICAgICAgICAgLz4KKyAgICAgICAgPGl0ZW0gCisgICAgICAgICAgICBuYW1lPSJMZWFybmluZyIgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBocmVmPSJsZWFybmluZy5odG1sIgorICAgICAgICAgICAgLz4KKyAgICAgICAgPGl0ZW0gCisgICAgICAgICAgICBuYW1lPSJBY3F1aXJpbmciICAgICAgICAgICAgICAgCisgICAgICAgICAgICBocmVmPSJhY3F1aXJpbmcuaHRtbCIKKyAgICAgICAgICAgIC8+CisgICAgICAgIDxpdGVtIAorICAgICAgICAgICAgbmFtZT0iVXNpbmciICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaHJlZj0idXNpbmcuaHRtbCIKKyAgICAgICAgICAgIC8+CisgICAgICAgIDxpdGVtCisgICAgICAgICAgICBuYW1lPSJXaG8gV2UgQXJlIgorICAgICAgICAgICAgaHJlZj0idm9sdW50ZWVycy5odG1sIgorICAgICAgICAgICAgLz4KKyAgICAgICAgPGl0ZW0KKyAgICAgICAgICAgIG5hbWU9IkFubm91bmNlbWVudHMiCisgICAgICAgICAgICBocmVmPSJhbm5vdW5jZS5odG1sIgorICAgICAgICAgICAgLz4KKzwvbWVudT4KKworICAgIDxtZW51IG5hbWU9IkRvY3VtZW50YXRpb24iPgorICAgICAgICA8aXRlbQorICAgICAgICAgICAgbmFtZT0iVXNlciBhbmQgRGV2ZWxvcGVyIEd1aWRlcyIKKyAgICAgICAgICAgIGhyZWY9InVzZXJHdWlkZS9pbmRleC5odG1sIgorICAgICAgICAgICAgLz4KKyAgICAgICAgPGl0ZW0KKyAgICAgICAgICAgIG5hbWU9IkphdmFkb2MiCisgICAgICAgICAgICBocmVmPSJhcGkvaW5kZXguaHRtbCIKKyAgICAgICAgICAgIC8+CisgICAgICAgIDxpdGVtCisgICAgICAgICAgICBuYW1lPSJGQVFzIGFuZCBIb3d0b3MiCisgICAgICAgICAgICBocmVmPSJmYXFzL2luZGV4Lmh0bWwiCisgICAgICAgICAgICAvPgorICAgIDwvbWVudT4KKworICAgIDxtZW51IG5hbWU9IkNvbW11bml0eSI+CisgICAgICAgIDxpdGVtCisgICAgICAgICAgICBuYW1lPSJLbm93biBJc3N1ZXMgKEJ1Z3ppbGxhKSIKKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc2l0ZS9idWdzLmh0bWwiCisgICAgICAgICAgICAvPgorICAgICAgICA8aXRlbQorICAgICAgICAgICAgbmFtZT0iV2lraSBQYWdlcyIKKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvc3RydXRzIgorICAgICAgICAgICAgLz4KKyAgICAgICAgPGl0ZW0KKyAgICAgICAgICAgIG5hbWU9Ikxpc3QgQXJjaGl2ZSIgICAgICAgICAgICAKKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9tYWlsLWFyY2hpdmVzLmFwYWNoZS5vcmcvZXllYnJvd3NlL1N1bW1hcml6ZUxpc3Q/bGlzdElkPTQyIgorICAgICAgICAgICAgLz4KKyAgICAgICAgPGl0ZW0KKyAgICAgICAgICAgIG5hbWU9IlJlc291cmNlIERpcmVjdG9yeSIKKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9zdHJ1dHMuc2YubmV0L2NvbW11bml0eS9pbmRleC5odG1sIgorICAgICAgICAgICAgLz4KKyAgICA8L21lbnU+CisKKyAgICA8bWVudSBuYW1lPSJEb3dubG9hZCI+CisgICAgICAgIDxpdGVtIAorICAgICAgICAgICAgbmFtZT0iQmluYXJpZXMiICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL2JpbmluZGV4LmNnaSIKKyAgICAgICAgICAgIC8+CisgICAgICAgIDxpdGVtIAorICAgICAgICAgICAgbmFtZT0iU291cmNlIENvZGUiICAgICAgICAgICAgIAorICAgICAgICAgICAgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL3NvdXJjZWluZGV4LmNnaSIKKyAgICAgICAgICAgIC8+CisgICAgPC9tZW51PgorCisgICAgPG1lbnUgbmFtZT0iRGV2ZWxvcG1lbnQiPgorICAgICAgICA8IS0tIE5vdCBzdXJlIHdoYXQgd291bGQgZ28gaGVyZSBmb3IgU3VidmVyc2lvbgorICAgICAgICA8aXRlbSBuYW1lPSJDVlMgQWNjZXNzIiAgaHJlZj0icmVwb3J0cy9jdnMtdXNhZ2UuaHRtbCIvPgorICAgICAgICAtLT4KKyAgICAgICAgPGl0ZW0KKyAgICAgICAgICAgIG5hbWU9IlN1YnZlcnNpb24gUmVwb3NpdG9yeSIKKyAgICAgICAgICAgIGhyZWY9Imh0dHA6Ly9zdm4uYXBhY2hlLm9yZy92aWV3Y3ZzLmNnaS9zdHJ1dHMvY29yZS90cnVuay8/cm9vdD1BcGFjaGUtU1ZOLyIKKyAgICAgICAgICAgIC8+CisgICAgICAgIDwhLS0gQWdhaW4sIGlzIHRoZXJlIGEgU3VidmVyc2lvbiBlcXVpdmFsZW50PyAgICAgCisgICAgICAgIDxpdGVtIG5hbWU9IkNWUyBDaGFuZ2Vsb2ciICBocmVmPSJyZXBvcnRzL2NoYW5nZWxvZy1yZXBvcnQuaHRtbCIvPgorICAgICAgICAtLT4KKyAgICAgICAgPGl0ZW0gbmFtZT0iRmlsZSBBY3Rpdml0eSIgIGhyZWY9InJlcG9ydHMvZmlsZS1hY3Rpdml0eS1yZXBvcnQuaHRtbCIvPgorICAgICAgICA8aXRlbSBuYW1lPSJCdWlsZCBEZXBlbmRlbmNpZXMiICBocmVmPSJyZXBvcnRzL2RlcGVuZGVuY2llcy5odG1sIi8+CisgICAgICAgIDxpdGVtCisgICAgICAgICAgICBuYW1lPSJSZWxlYXNlIEd1aWRlbGluZXMiCisgICAgICAgICAgICBocmVmPSJyZWxlYXNlcy5odG1sIgorICAgICAgICAgICAgLz4KKyAgICAgICAgPGl0ZW0KKyAgICAgICAgICAgIG5hbWU9IlJvYWRtYXAiCisgICAgICAgICAgICBocmVmPSJzdGF0dXMuaHRtbCIKKyAgICAgICAgICAgIC8+CisgICAgPC9tZW51PgorCis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9wb3NhbHMvcHJvamVjdC54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9wb3NhbHMvcHJvamVjdC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FjYmYyOAotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy9wcm9qZWN0LnhtbApAQCAtMCwwICsxLDE4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8cHJvamVjdCBuYW1lPSJTdHJ1dHMgRnJhbWV3b3JrIgorICAgICAgICAgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvcHJvcG9zYWxzIgorICAgICAgICBpbWFnZT0iaW1hZ2VzL3N0cnV0cy5naWYiPgorCisgICAgPHRpdGxlPlByb3Bvc2FscyAtIEFwYWNoZSBTdHJ1dHMgRnJhbWV3b3JrPC90aXRsZT4KKworICAgIDxtZW51IG5hbWU9IlN0cnV0cyI+CisgICAgICAgIDxpdGVtIG5hbWU9IldlbGNvbWUiICAgICAgICAgICAgICAgICBocmVmPSIuLi9pbmRleC5odG1sIi8+CisJPC9tZW51PgorCis8L3Byb2plY3Q+CisKKworCisKKworCmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9wb3NhbHMvcmVsZWFzZS1wbGFuLTEuMC4xLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy9yZWxlYXNlLXBsYW4tMS4wLjEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5Y2E2NjMKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9wb3NhbHMvcmVsZWFzZS1wbGFuLTEuMC4xLnhtbApAQCAtMCwwICsxLDc2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Ii4vcmVsZWFzZS1wbGFuLTEuMC4xLnhtbCI+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlN0cnV0cyBSZWxlYXNlIFBsYW4gKFZlcnNpb24gMS4wLjEpPC90aXRsZT4KKyAgPC9wcm9wZXJ0aWVzPgorCisgIDxib2R5PgorCisKKyAgPHNlY3Rpb24gbmFtZT0iT2JqZWN0aXZlIiBocmVmPSJPYmplY3RpdmUiPgorCisgIDxwPiRJZCQ8L3A+CisKKyAgPHA+VGhlIG9iamVjdGl2ZSBvZiB0aGUgPHN0cm9uZz5TdHJ1dHMgMS4wLjE8L3N0cm9uZz4gcmVsZWFzZSBpcyB0byBwcm92aWRlCisgIGFuIG9mZmljaWFsIHJlbGVhc2Ugb2YgYWxsIHRoZSBidWcgZml4ZXMgYW5kIGRvY3VtZW50YXRpb24gdXBkYXRlcyB0aGF0IGhhdmUKKyAgYmVlbiBtYWRlIHRvIHRoZSBTVFJVVFNfMV8wX0JSQU5DSCBicmFuY2ggc2luY2UgdGhlIHJlbGVhc2Ugb2YgU3RydXRzIDEuMC48L3A+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iVGhlIFBsYW4iIGhyZWY9IlBsYW4iPgorCisgIDxwPlNpbmNlIHRoZSByZWxlYXNlIG9mIFN0cnV0cyAxLjAsIGEgbnVtYmVyIG9mIGltcG9ydGFudCBidWdzIGhhdmUgYmVlbgorICBmaXhlZCwgYW5kIHNvbWUgbm90YWJsZSBpbXByb3ZlbWVudHMgaGF2ZSBiZWVuIG1hZGUgdG8gdGhlIGRvY3VtZW50YXRpb24uCisgIEN1cnJlbnRseSwgdGhlc2UgdXBkYXRlcyBhcmUgYXZhaWxhYmxlIG9ubHkgdG8gdGhvc2UgcGVvcGxlIHdobyBhcmUgd2lsbGluZworICB0byBvYnRhaW4gdGhlIHNvdXJjZSBjb2RlIGZyb20gQ1ZTIGFuZCBidWlsZCB0aGVpciBvd24gdmVyc2lvbiBvZiBTdHJ1dHMuCisgIFRoaXMgcmVsZWFzZSB3aWxsIG1ha2UgdGhlc2UgdXBkYXRlcyBhdmFpbGFibGUgaW4gYW4gb2ZmaWNpYWwgZGlzdHJpYnV0aW9uLAorICB0aHVzIG1ha2luZyB0aGVtIGF2YWlsYWJsZSB0byBhIHdpZGVyIGF1ZGllbmNlLjwvcD4KKworICA8cD5UaGVyZWZvcmUsIHRoZSBmb2xsb3dpbmcgcmVsZWFzZSBwbGFuIGlzIHByb3Bvc2VkIGZvciBTdHJ1dHMgMS4wLjE6CisgIDwvcD4KKyAgPHVsPgorICA8bGk+PGVtPkNvZGUgRnJlZXplIC8gVGFnIERhdGU8L2VtPiAtIFdlZG5lc2RheSwgTm92ZW1iZXIgMjEsIDIwMDE8L2xpPgorICA8bGk+PGVtPlJlbGVhc2UgTWFuYWdlcjwvZW0+IC0gTWFydGluIENvb3BlcjwvbGk+CisgIDxsaT48ZW0+UmVsZWFzZSBBbm5vdW5jZW1lbnQ8L2VtPiAtIFRvIHRoZSBmb2xsb3dpbmcgbWFpbGluZyBsaXN0cyBhbmQKKyAgICAgIHdlYiBzaXRlczoKKyAgICAgIDx1bD4KKyAgICAgIDxsaT5hbm5vdW5jZW1lbnRzQGpha2FydGEuYXBhY2hlLm9yZzwvbGk+CisgICAgICA8bGk+c3RydXRzLWRldkBqYWthcnRhLmFwYWNoZS5vcmc8L2xpPgorICAgICAgPGxpPnN0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZzwvbGk+CisgICAgICA8bGk+anNwLWludGVyZXN0QGphdmEuc3VuLmNvbTwvbGk+CisgICAgICA8bGk+c2VydmxldC1pbnRlcmVzdEBqYXZhLnN1bi5jb208L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZnJlc2htZWF0Lm5ldCI+aHR0cDovL3d3dy5mcmVzaG1lYXQubmV0PC9hPjwvbGk+CisgICAgICA8L3VsPjwvbGk+CisgIDwvdWw+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iUmVsZWFzZSBDcml0ZXJpYSIgaHJlZj0iQ3JpdGVyaWEiPgorCisgIDxwPlByaW9yIHRvIHRoZSByZWxlYXNlIG9mIFN0cnV0cyAxLjAuMSwgdGhlIGZvbGxvd2luZyBhY3Rpb24gaXRlbXMKKyAgbXVzdCBiZSBjb21wbGV0ZWQ6PC9wPgorICA8dWw+CisgIDxsaT5UaGUgU3RydXRzIDEuMC4xIFJlbGVhc2UgTm90ZXMgZG9jdW1lbnQgc2hhbGwgYmUgdXBkYXRlZCB0byBkZXNjcmliZQorICAgICAgc3Vic3RhbnRpYWwgY2hhbmdlcyBhbmQgaW1wcm92ZW1lbnRzIHNpbmNlIHRoZSBTdHJ1dHMgMS4wIHJlbGVhc2UsCisgICAgICBhbG9uZyB3aXRoIGFzc29jaWF0ZWQgdXBkYXRlcyB0byB0aGUgbWFpbiBTdHJ1dHMgRG9jdW1lbnRhdGlvbgorICAgICAgQXBwbGljYXRpb24gcGFnZXMgZGVzY3JpYmluZyB0aGUgbmV3IHJlbGVhc2UuPC9saT4KKyAgPGxpPkFsbCBvZiB0aGUgU3RydXRzIGV4YW1wbGUgYXBwbGljYXRpb25zIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggdGhlIHJlbGVhc2UKKyAgICAgIHNoYWxsIG9wZXJhdGUgc3VjY2Vzc2Z1bGx5IGluIHRoZSBmb2xsb3dpbmcgc2VydmxldCBjb250YWluZXJzOgorICAgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdG9tY2F0Ij5Ub21jYXQgMy4yLjM8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RvbWNhdCI+VG9tY2F0IDQuMC4xPC9hPjwvbGk+CisgICAgICA8L3VsPjwvbGk+CisgIDxsaT5BIHJlbGVhc2Ugdm90ZSBzaGFsbCB0YWtlIHBsYWNlIG9uIHRoZSA8ZW0+c3RydXRzLWRldjwvZW0+IG1haWxpbmcgbGlzdAorICAgICAgdG8gYXBwcm92ZSB0aGlzIHBsYW4uICBUaGUgcmVsZWFzZSB2b3RlIE1VU1QgcGFzcyBieSAiTWFqb3JpdHkgQXBwcm92YWwiCisgICAgICBvZiBTdHJ1dHMgY29tbWl0dGVycy48L2xpPgorICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworCisgIDwvYm9keT4KKworPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy9yZWxlYXNlLXBsYW4tMS4wYjEueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvcG9zYWxzL3JlbGVhc2UtcGxhbi0xLjBiMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjNmMDI4NwotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy9yZWxlYXNlLXBsYW4tMS4wYjEueG1sCkBAIC0wLDAgKzEsODggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0iLi9yZWxlYXNlLXBsYW4tMS4wYjEueG1sIj4KKworICA8cHJvcGVydGllcz4KKyAgICA8dGl0bGU+U3RydXRzIFJlbGVhc2UgUGxhbiAoVmVyc2lvbiAxLjAtYmV0YS0xKTwvdGl0bGU+CisgIDwvcHJvcGVydGllcz4KKworICA8Ym9keT4KKworCisgIDxzZWN0aW9uIG5hbWU9Ik9iamVjdGl2ZSIgaHJlZj0iT2JqZWN0aXZlIj4KKworICA8cD4kSWQkPC9wPgorCisgIDxwPlRoZSBvYmplY3RpdmUgb2YgdGhlIDxzdHJvbmc+U3RydXRzIDEuMC1iZXRhLTE8L3N0cm9uZz4gcmVsZWFzZSBpcyB0bworICBjcmVhdGUgYSBtaWxlc3RvbmUgcmVsZWFzZSBhZ2FpbnN0IHdoaWNoIGEgZmluYWwgc2VyaWVzIG9mIGJ1ZyBmaXhlcyBhbmQKKyAgZG9jdW1lbnRhdGlvbiB1cGRhdGVzIGNhbiBvY2N1ciBiZWZvcmUgYSA8c3Ryb25nPlN0cnV0cyAxLjAgRmluYWw8L3N0cm9uZz4KKyAgcmVsZWFzZSBpcyBjcmVhdGVkLjwvcD4KKworICA8L3NlY3Rpb24+CisKKworICA8c2VjdGlvbiBuYW1lPSJUaGUgUGxhbiIgaHJlZj0iUGxhbiI+CisKKyAgPHA+VGhlIGNvZGUgYmFzZSBmb3IgU3RydXRzIGhhcyBiZWVuIGluIGFuIGluZm9ybWFsICJmZWF0dXJlIGZyZWV6ZSIgZm9yCisgIHNldmVyYWwgd2Vla3MsIHdoaWxlIGRldmVsb3BtZW50IGZvY3VzIGhhcyBiZWVuIG9uIGJ1ZyBmaXhlcyBhbmQgdGhlCisgIGNvbXBsZXRpb24gb2YgcmVxdWlyZWQgZG9jdW1lbnRhdGlvbi4gIEJvdGggb2YgdGhlc2UgZ29hbHMgaGF2ZSBiZWVuCisgIHN1YnN0YW50aWFsbHkgYWNoaWV2ZWQsIHNvIGl0IGlzIHRpbWUgZm9yIGEgZm9ybWFsIGJldGEgcmVsZWFzZSAtIHdpdGgKKyAgdGhlIGdvYWwgb2YgbW92aW5nIHF1aWNrbHkgdG8gYSBmaW5hbCA8c3Ryb25nPlN0cnV0cyAxLjA8L3N0cm9uZz4gcmVsZWFzZQorICBzaG9ydGx5IHRoZXJlYWZ0ZXIsIGlmIG5vIGRpc2FibGluZyBkZWZlY3RzIGFyZSBmb3VuZC48L3A+CisKKyAgPHA+VGhlcmVmb3JlLCB0aGUgZm9sbG93aW5nIHJlbGVhc2UgcGxhbiBpcyBwcm9wb3NlZCBmb3IgU3RydXRzIDEuMC1iZXRhLTE6CisgIDwvcD4KKyAgPHVsPgorICA8bGk+PGVtPkNvZGUgRnJlZXplIC8gVGFnIERhdGU8L2VtPiAtIFdlZG5lc2RheSwgRmVicnVhcnkgMjEsIDIwMDE8L2xpPgorICA8bGk+PGVtPlJlbGVhc2UgTWFuYWdlcjwvZW0+IC0gQ3JhaWcgTWNDbGFuYWhhbjwvbGk+CisgIDxsaT48ZW0+UmVsZWFzZSBBbm5vdW5jZW1lbnQ8L2VtPiAtIFRvIHRoZSBmb2xsb3dpbmcgbWFpbGluZyBsaXN0cyBhbmQKKyAgICAgIHdlYiBzaXRlczoKKyAgICAgIDx1bD4KKyAgICAgIDxsaT5BTk5PVU5DRU1FTlRTQEpBS0FSVEEuQVBBQ0hFLk9SRzwvbGk+CisgICAgICA8bGk+R0VORVJBTEBKQUtBUlRBLkFQQUNIRS5PUkc8L2xpPgorICAgICAgPGxpPlNUUlVUUy1ERVZASkFLQVJUQS5BUEFDSEUuT1JHPC9saT4KKyAgICAgIDxsaT5TVFJVVFMtVVNFUkBKQUtBUlRBLkFQQUNIRS5PUkc8L2xpPgorICAgICAgPGxpPkpTUC1JTlRFUkVTVEBKQVZBLlNVTi5DT008L2xpPgorICAgICAgPGxpPlNFUlZMRVQtSU5URVJFU1RASkFWQS5TVU4uQ09NPC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LmZyZXNobWVhdC5uZXQiPmh0dHA6Ly93d3cuZnJlc2htZWF0Lm5ldDwvYT48L2xpPgorICAgICAgPC91bD48L2xpPgorICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworCisgIDxzZWN0aW9uIG5hbWU9IlJlbGVhc2UgQ3JpdGVyaWEiIGhyZWY9IkNyaXRlcmlhIj4KKworICA8cD5QcmlvciB0byB0aGUgcmVsZWFzZSBvZiBTdHJ1dHMgMS4wLWJldGEtMSwgdGhlIGZvbGxvd2luZyBhY3Rpb24gaXRlbXMKKyAgbXVzdCBiZSBjb21wbGV0ZWQ6PC9wPgorICA8dWw+CisgIDxsaT5BbGwgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhLyI+QnVnemlsbGE8L2E+IGJ1ZyByZXBvcnRzCisgICAgICBhZ2FpbnN0IFN0cnV0cyAxLjAgbmlnaHRseSBidWlsZHMgTVVTVCBiZSBtYXJrZWQgYXMgIlJlc29sdmVkIiwgd2l0aCBhbnkKKyAgICAgIG9mIHRoZSBsZWdhbCBCdWd6aWxsYSByZXNvbHV0aW9ucyAoRklYRUQsIElOVkFMSUQsIFdPTlRGSVgsIExBVEVSLAorICAgICAgUkVNSU5ELCBXT1JLU0ZPUk1FKS48L2xpPgorICA8bGk+QnVnIHJlcG9ydHMgdGhhdCBhcmUgcmVzb2x2ZWQgYXMgTEFURVIgb3IgUkVNSU5EIHdpbGwgaW5jbHVkZSBjb21tZW50cworICAgICAgYXMgdG8gd2hldGhlciB0aG9zZSBzcGVjaWZpYyBpc3N1ZXMgd2lsbCBiZSBkZWFsdCB3aXRoIGluIGEgc3Vic2VxdWVudAorICAgICAgMS4wIGJldGEgb3IgZmluYWwgcmVsZWFzZSwgb3Igd2hldGhlciB0aGV5IHdpbGwgYmUgc2NoZWR1bGVkIGZvcgorICAgICAgY29uc2lkZXJhdGlvbiBpbiBhIHN1YnNlcXVlbnQgcmVsZWFzZSB0aW1lIGZyYW1lLjwvbGk+CisgIDxsaT5BbnkgcmVtYWluaW5nIGl0ZW1zIG9uIHRoZSBTdHJ1dHMgMS4wIFRPRE8gbGlzdCBzaGFsbCBiZSBjb21wbGV0ZWQuPC9saT4KKyAgPGxpPlRoZSBTdHJ1dHMgMS4wIFJlbGVhc2UgTm90ZXMgZG9jdW1lbnQgc2hhbGwgYmUgdXBkYXRlZCB0byBkZXNjcmliZQorICAgICAgc3Vic3RhbnRpYWwgY2hhbmdlcyBhbmQgaW1wcm92ZW1lbnRzIHNpbmNlIHRoZSBTdHJ1dHMgMC41IHJlbGVhc2UsCisgICAgICBhbG9uZyB3aXRoIGFzc29jaWF0ZWQgdXBkYXRlcyB0byB0aGUgbWFpbiBTdHJ1dHMgRG9jdW1lbnRhdGlvbgorICAgICAgQXBwbGljYXRpb24gcGFnZXMgZGVzY3JpYmluZyB0aGUgbmV3IHJlbGVhc2UuPC9saT4KKyAgPGxpPkFsbCBvZiB0aGUgU3RydXRzIGV4YW1wbGUgYXBwbGljYXRpb25zIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggdGhlIHJlbGVhc2UKKyAgICAgIHNoYWxsIG9wZXJhdGUgc3VjY2Vzc2Z1bGx5IGluIHRoZSBmb2xsb3dpbmcgc2VydmxldCBjb250YWluZXJzOgorICAgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdG9tY2F0Ij5Ub21jYXQgMy4yLjE8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RvbWNhdCI+VG9tY2F0IDQuMDwvYT4gKEN1cnJlbnQKKyAgICAgICAgICBuaWdodGx5IGJ1aWxkKTwvbGk+CisgICAgICA8L3VsPjwvbGk+CisgIDxsaT5BIHJlbGVhc2Ugdm90ZSBzaGFsbCB0YWtlIHBsYWNlIG9uIHRoZSBTVFJVVFMtREVWIG1haWxpbmcgbGlzdCB0bworICAgICAgYXBwcm92ZSB0aGlzIHBsYW4uICBUaGUgcmVsZWFzZSB2b3RlIE1VU1QgcGFzcyBieSAiTWFqb3JpdHkgQXBwcm92YWwiCisgICAgICBvZiBTdHJ1dHMgY29tbWl0dGVycy48L2xpPgorICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworCisgIDwvYm9keT4KKworPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy9yZWxlYXNlLXBsYW4tMS4xLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy9yZWxlYXNlLXBsYW4tMS4xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzIxNzE3Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvcG9zYWxzL3JlbGVhc2UtcGxhbi0xLjEueG1sCkBAIC0wLDAgKzEsMTI5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Ii4vcmVsZWFzZS1wbGFuLTEuMXJjMi54bWwiPgorCisgICAgPHByb3BlcnRpZXM+CisgICAgICAgPHRpdGxlPlN0cnV0cyBSZWxlYXNlIFBsYW4gKFZlcnNpb24gMS4xKTwvdGl0bGU+CisgICAgIDwvcHJvcGVydGllcz4KKworICA8Ym9keT4KKworICAgICAgPHNlY3Rpb24gbmFtZT0iT2JqZWN0aXZlIiBocmVmPSJPYmplY3RpdmUiPgorCisgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICRJZCQKKyAgICAgICAgICA8L3A+CisKKyAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgVGhlIG9iamVjdGl2ZSBvZiB0aGUgPHN0cm9uZz5TdHJ1dHMgMS4xIEZpbmFsPC9zdHJvbmc+IHJlbGVhc2UgaXMgdG8gcHJvdmlkZQorICAgICAgICAgICAgICBhbiBvZmZpY2lhbCByZWxlYXNlIG9mIGFsbCB0aGUgYnVnIGZpeGVzIGFuZCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgdGhhdCBoYXZlCisgICAgICAgICAgICAgIGJlZW4gbWFkZSB0byB0aGUgbWFpbiB0cnVuayBvZiB0aGUgamFrYXJ0YS1zdHJ1dHMgQ1ZTIHNpbmNlIHRoZSByZWxlYXNlIG9mCisgICAgICAgICAgICAgIFN0cnV0cyAxLjAuMi4KKyAgICAgICAgICA8L3A+CisKKyAgICAgIDwvc2VjdGlvbj4KKworICAgICAgPHNlY3Rpb24gbmFtZT0iVGhlIFBsYW4iIGhyZWY9IlBsYW4iPgorCisgICAgICAgICAgPHA+CisgICAgICAgICAgICAgIE9ubHkgbWlub3IgY2hhbmdlcyBoYXZlIGJlZW4gbWFkZSB0byB0aGUgY29kZWJhc2Ugc2luY2UgdGhlIFN0cnV0cyAxLjEKKyAgICAgICAgICAgICAgUkMyIHJlbGVhc2UuCisgICAgICAgICAgICAgIElzc3VlcyByZXBvcnRlZCBvbiB0aGUgZmV3IG91c3RhbmRpbmcgdGlja2V0cyBhcmUgZWl0aGVyIHVuY29uZmlybWVkIG9yCisgICAgICAgICAgICAgIG1heSBiZSBjYXRlZ29yaXplZCBhcyBlbmhhbmNlbWVudHMgYW5kIGNhbiBiZSByZXNvbHZlZCBpbiBzaG9ydCBvcmRlci4KKyAgICAgICAgICAgICAgVGhlcmVmb3JlIGl0IGlzIHRpbWUgdG8gbWFrZSB0aGUgbGF0ZXN0IGNvZGUgYmFzZSBhdmFpbGFibGUgYXMgdGhlCisgICAgICAgICAgICAgIFN0cnV0cyAxLjEgRmluYWwgUmVsZWFzZS4KKyAgICAgICAgICA8L3A+CisKKyAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgVGhlIGZpbmFsIHJlbGVhc2Ugb2YgQ29tbW9ucyBGaWxlVXBsb2FkIGhhcyBiZWVuIGFwcHJvdmVkIGFuZCB3aWxsIGJlCisgICAgICAgICAgICAgIGF2YWlsYWJsZSBmb3IgZGlzdHJpYnV0aW9uIHdpdGggU3RydXRzIDEuMSBGaW5hbCwgYXMgcmVxdWlyZWQgYnkgdGhlCisgICAgICAgICAgICAgIFN0cnV0cyAxLjEgUkMyIHJlbGVhc2UgcGxhbi4KKyAgICAgICAgICA8L3A+CisKKyAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgVGhlcmVmb3JlLCB0aGUgZm9sbG93aW5nIHJlbGVhc2UgcGxhbiBpcyBwcm9wb3NlZCBmb3IgU3RydXRzIDEuMSBGaW5hbDoKKyAgICAgICAgICA8L3A+CisKKyAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgIDxlbT5Db2RlIEZyZWV6ZSAvIFRhZyBEYXRlPC9lbT4gLSBTYXR1cmRheSwgSnVuZSAyOCwgMjAwMywgMjM6NTk6NTkKKyAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgPGVtPlJlbGVhc2UgTWFuYWdlcjwvZW0+IC0gTWFydGluIENvb3BlcgorICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICA8ZW0+UmVsZWFzZSBBbm5vdW5jZW1lbnQ8L2VtPiAtIFRvIHRoZSBmb2xsb3dpbmcgbWFpbGluZyBsaXN0czoKKyAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgICA8bGk+YW5ub3VuY2VtZW50c0BqYWthcnRhLmFwYWNoZS5vcmc8L2xpPgorICAgICAgICAgICAgICAgICAgICAgIDxsaT5zdHJ1dHMtZGV2QGpha2FydGEuYXBhY2hlLm9yZzwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgPGxpPnN0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZzwvbGk+CisgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgVGhlIHJlbGVhc2UgcHJvY2VzcyBzaGFsbCBmb2xsb3cgdGhlIHNhbWUKKyAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL3JlbGVhc2VzLyI+Z2VuZXJhbCBwcm9jZWR1cmVzPC9hPgorICAgICAgICAgICAgICBlc3RhYmxpc2hlZCB0aGUgSmFrYXJ0YSBDb21tb25zIHByb2R1Y3RzLgorICAgICAgICAgIDwvcD4KKworICAgICAgPC9zZWN0aW9uPgorCisgICAgICA8c2VjdGlvbiBuYW1lPSJSZWxlYXNlIENyaXRlcmlhIiBocmVmPSJDcml0ZXJpYSI+CisKKyAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgUHJpb3IgdG8gdGhlIHJlbGVhc2Ugb2YgU3RydXRzIDEuMSBGaW5hbCBSZWxlYXNlLCB0aGUgZm9sbG93aW5nCisgICAgICAgICAgICAgIGFjdGlvbiBpdGVtcyBtdXN0IGJlIGNvbXBsZXRlZDoKKyAgICAgICAgICA8L3A+CisKKyAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgIEEgcmVsZWFzZSB2b3RlIHNoYWxsIHRha2UgcGxhY2Ugb24gdGhlIDxlbT5zdHJ1dHMtZGV2PC9lbT4gbWFpbGluZyBsaXN0CisgICAgICAgICAgICAgICAgICB0byBhcHByb3ZlIHRoaXMgcGxhbi4gVGhlIHJlbGVhc2Ugdm90ZSBNVVNUIHBhc3MgYnkgIk1ham9yaXR5IEFwcHJvdmFsIgorICAgICAgICAgICAgICAgICAgb2YgU3RydXRzIGNvbW1pdHRlcnMuCisgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgVGhlIFN0cnV0cyAxLjEgUmVsZWFzZSBOb3RlcyBkb2N1bWVudCBzaGFsbCBiZSB1cGRhdGVkIHRvIGRlc2NyaWJlCisgICAgICAgICAgICAgICAgYW55IHN1YnN0YW50aWFsIGNoYW5nZXMgYW5kIGltcHJvdmVtZW50cyBzaW5jZSB0aGUgU3RydXRzIDEuMSBSQzIgcmVsZWFzZSwKKyAgICAgICAgICAgICAgICBhbG9uZyB3aXRoIGFzc29jaWF0ZWQgdXBkYXRlcyB0byB0aGUgbWFpbiBTdHJ1dHMgRG9jdW1lbnRhdGlvbgorICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uIHBhZ2VzIGRlc2NyaWJpbmcgdGhlIG5ldyByZWxlYXNlLgorICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgIEFsbCBvZiB0aGUgU3RydXRzIGV4YW1wbGUgYXBwbGljYXRpb25zIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggdGhlIHJlbGVhc2UKKyAgICAgICAgICAgICAgICBzaGFsbCBvcGVyYXRlIHN1Y2Nlc3NmdWxseSBpbiB0aGUgZm9sbG93aW5nIHNlcnZsZXQgY29udGFpbmVyczoKKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RvbWNhdCI+VG9tY2F0IDMuMy4xPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RvbWNhdCI+VG9tY2F0IDQuMC42PC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RvbWNhdCI+VG9tY2F0IDQuMS4xODwvYT48L2xpPgorICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPC91bD4KKworICAgICAgICAgIDxwPgorICAgICAgICAgICAgUHJpb3IgdG8gdGhlIHJlbGVhc2Ugb2YgYSBzdWJzZXF1ZW50IFN0cnV0cyAxLjEgRmluYWwgcmVsZWFzZSwgdGhlCisgICAgICAgICAgICBmb2xsb3dpbmcgYWN0aW9uIGl0ZW1zIG11c3QgYmUgY29tcGxldGVkOgorICAgICAgICAgIDwvcD4KKworICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICBBbGwKKyAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvYnVnbGlzdC5jZ2k/ZW1haWwxPSZhbXA7ZW1haWx0eXBlMT1zdWJzdHJpbmcmYW1wO2VtYWlsYXNzaWduZWRfdG8xPTEmYW1wO2VtYWlsMj0mYW1wO2VtYWlsdHlwZTI9c3Vic3RyaW5nJmFtcDtlbWFpbHJlcG9ydGVyMj0xJmFtcDtidWdpZHR5cGU9aW5jbHVkZSZhbXA7YnVnX2lkPSZhbXA7Y2hhbmdlZGluPSZhbXA7dm90ZXM9JmFtcDtjaGZpZWxkZnJvbT0mYW1wO2NoZmllbGR0bz1Ob3cmYW1wO2NoZmllbGR2YWx1ZT0mYW1wO3Byb2R1Y3Q9U3RydXRzJmFtcDt2ZXJzaW9uPTEuMVJDMiZhbXA7c2hvcnRfZGVzYz0mYW1wO3Nob3J0X2Rlc2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZhbXA7bG9uZ19kZXNjPSZhbXA7bG9uZ19kZXNjX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2J1Z19maWxlX2xvYz0mYW1wO2J1Z19maWxlX2xvY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtrZXl3b3Jkcz0mYW1wO2tleXdvcmRzX3R5cGU9YW55d29yZHMmYW1wO2ZpZWxkMC0wLTA9bm9vcCZhbXA7dHlwZTAtMC0wPW5vb3AmYW1wO3ZhbHVlMC0wLTA9JmFtcDtjbWR0eXBlPWRvaXQmYW1wO25ld3F1ZXJ5bmFtZT0mYW1wO29yZGVyPUJ1ZytOdW1iZXIiPgorICAgICAgICAgICAgICAgIEJ1Z3ppbGxhIGJ1ZyByZXBvcnRzPC9hPgorICAgICAgICAgICAgICAgIGFnYWluc3QgU3RydXRzIDEuMSBSQzIgTVVTVCBiZSBtYXJrZWQgYXMgIkVuaGFuY2VtZW50IiBvciAiUmVzb2x2ZWQiLCB3aXRoIGFueQorICAgICAgICAgICAgICAgIG9mIHRoZSBsZWdhbCBCdWd6aWxsYSByZXNvbHV0aW9ucyAoRklYRUQsIElOVkFMSUQsIFdPTlRGSVgsIExBVEVSLAorICAgICAgICAgICAgICAgIFJFTUlORCwgV09SS1NGT1JNRSkuCisgICAgICAgICAgPC9saT4KKyAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgQnVnIHJlcG9ydHMgdGhhdCBhcmUgcmVzb2x2ZWQgYXMgTEFURVIgb3IgUkVNSU5EIHdpbGwgaW5jbHVkZSBjb21tZW50cworICAgICAgICAgICAgICAgIGFzIHRvIHdoZXRoZXIgdGhvc2Ugc3BlY2lmaWMgaXNzdWVzIHdpbGwgYmUgZGVhbHQgd2l0aCBpbiBhIHN1YnNlcXVlbnQKKyAgICAgICAgICAgICAgICBiZXRhLCByZWxlYXNlIGNhbmRpZGF0ZSwgb3IgZmluYWwgcmVsZWFzZSwgb3Igd2hldGhlciB0aGV5IHdpbGwgYmUKKyAgICAgICAgICAgICAgICBzY2hlZHVsZWQgZm9yIGNvbnNpZGVyYXRpb24gaW4gYSBzdWJzZXF1ZW50IHJlbGVhc2UgdGltZSBmcmFtZS4KKyAgICAgICAgIDwvbGk+CisgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgVGhlIGZpbmFsIHJlbGVhc2Ugb2YgQ29tbW9ucy1GaWxlVXBsb2FkIDEuMCBtdXN0IGJlIGF2YWlsYWJsZQorICAgICAgICAgICAgICAgIGFuZCBtYWRlIHBhcnQgb2YgdGhlIFN0cnV0cyAxLjEgRmluYWwgZGlzdHJpYnV0aW9uLgorICAgICAgICAgIDwvbGk+CisgICAgICA8L3VsPgorCisgICAgPC9zZWN0aW9uPgorICAgIDwvYm9keT4KKzwvZG9jdW1lbnQ+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9wb3NhbHMvcmVsZWFzZS1wbGFuLTEuMWIxLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy9yZWxlYXNlLXBsYW4tMS4xYjEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0MDQ4M2IKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9wb3NhbHMvcmVsZWFzZS1wbGFuLTEuMWIxLnhtbApAQCAtMCwwICsxLDg3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Ii4vcmVsZWFzZS1wbGFuLTEuMWIxLnhtbCI+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlN0cnV0cyBSZWxlYXNlIFBsYW4gKFZlcnNpb24gMS4xYjEpPC90aXRsZT4KKyAgPC9wcm9wZXJ0aWVzPgorCisgIDxib2R5PgorCisKKyAgPHNlY3Rpb24gbmFtZT0iT2JqZWN0aXZlIiBocmVmPSJPYmplY3RpdmUiPgorCisgIDxwPiRJZCQ8L3A+CisKKyAgPHA+VGhlIG9iamVjdGl2ZSBvZiB0aGUgPHN0cm9uZz5TdHJ1dHMgMS4xIEJldGEgMTwvc3Ryb25nPiByZWxlYXNlIGlzIHRvCisgIGNyZWF0ZSBhIG1pbGVzdG9uZSByZWxlYXNlIGFnYWluc3Qgd2hpY2ggYSBmaW5hbCBzZXJpZXMgb2YgYnVnIGZpeGVzIGFuZAorICBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgY2FuIG9jY3VyIGJlZm9yZSBhIDxzdHJvbmc+U3RydXRzIDEuMSBGaW5hbDwvc3Ryb25nPgorICByZWxlYXNlIGlzIGNyZWF0ZWQuPC9wPgorCisgIDwvc2VjdGlvbj4KKworCisgIDxzZWN0aW9uIG5hbWU9IlRoZSBQbGFuIiBocmVmPSJQbGFuIj4KKworICA8cD5NYW55IG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIG5pZ2h0bHkgYnVpbGRzIHNpbmNlIHRoZSByZWxlYXNlCisgIG9mIFN0cnV0cyAxLjAsIGFuZCBtYW55IGJ1Z3MgaGF2ZSBiZWVuIGZpeGVkLiBTZXZlcmFsIG9mIHRoZSBuZXcgZmVhdHVyZXMgYXJlCisgIGluIGhpZ2ggZGVtYW5kIGJ5IGN1cnJlbnQgU3RydXRzIHVzZXJzLCBhbmQgc28gaXQgaXMgdGltZSB0byBzdGFydCB0aGUgcHJvY2VzcworICBvZiBtYWtpbmcgdGhpcyBuZXcgY29kZSBiYXNlIGF2YWlsYWJsZSBhcyBhIGZvcm1hbCByZWxlYXNlLiBUaGUgZmlyc3Qgc3RlcCBpbgorICB0aGlzIHByb2Nlc3MgaXMgYW4gaW5pdGlhbCBiZXRhIHJlbGVhc2UsIHdpdGggdGhlIGdvYWwgb2YgbW92aW5nIHRvd2FyZHMgYQorICByZWxlYXNlIGNhbmRpZGF0ZSBhbmQgdGhlbiBhIGZpbmFsIDxzdHJvbmc+U3RydXRzIDEuMTwvc3Ryb25nPiByZWxlYXNlIGFzCisgIHNvb24gYXMgaXMgcHJhY3RpY2FibGUuPC9wPgorCisgIDxwPlRoZXJlZm9yZSwgdGhlIGZvbGxvd2luZyByZWxlYXNlIHBsYW4gaXMgcHJvcG9zZWQgZm9yIFN0cnV0cyAxLjEgQmV0YSAxOgorICA8L3A+CisgIDx1bD4KKyAgPGxpPjxlbT5Db2RlIEZyZWV6ZSAvIFRhZyBEYXRlPC9lbT4gLSBNb25kYXksIE1hcmNoIDE4LCAyMDAyPC9saT4KKyAgPGxpPjxlbT5SZWxlYXNlIE1hbmFnZXI8L2VtPiAtIE1hcnRpbiBDb29wZXI8L2xpPgorICA8bGk+PGVtPlJlbGVhc2UgQW5ub3VuY2VtZW50PC9lbT4gLSBUbyB0aGUgZm9sbG93aW5nIG1haWxpbmcgbGlzdHM6CisgICAgICA8dWw+CisgICAgICA8bGk+YW5ub3VuY2VtZW50c0BqYWthcnRhLmFwYWNoZS5vcmc8L2xpPgorICAgICAgPGxpPnN0cnV0cy1kZXZAamFrYXJ0YS5hcGFjaGUub3JnPC9saT4KKyAgICAgIDxsaT5zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmc8L2xpPgorICAgICAgPC91bD48L2xpPgorICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworCisgIDxzZWN0aW9uIG5hbWU9IlJlbGVhc2UgQ3JpdGVyaWEiIGhyZWY9IkNyaXRlcmlhIj4KKworICA8cD5QcmlvciB0byB0aGUgcmVsZWFzZSBvZiBTdHJ1dHMgMS4xIEJldGEgMSwgdGhlIGZvbGxvd2luZyBhY3Rpb24gaXRlbXMKKyAgbXVzdCBiZSBjb21wbGV0ZWQ6PC9wPgorICA8dWw+CisgIDxsaT5UaGUgU3RydXRzIDEuMSBSZWxlYXNlIE5vdGVzIGRvY3VtZW50IHNoYWxsIGJlIHVwZGF0ZWQgdG8gZGVzY3JpYmUKKyAgICAgIHN1YnN0YW50aWFsIGNoYW5nZXMgYW5kIGltcHJvdmVtZW50cyBzaW5jZSB0aGUgU3RydXRzIDEuMC4yIHJlbGVhc2UsCisgICAgICBhbG9uZyB3aXRoIGFzc29jaWF0ZWQgdXBkYXRlcyB0byB0aGUgbWFpbiBTdHJ1dHMgRG9jdW1lbnRhdGlvbgorICAgICAgQXBwbGljYXRpb24gcGFnZXMgZGVzY3JpYmluZyB0aGUgbmV3IHJlbGVhc2UuPC9saT4KKyAgPGxpPkFsbCBvZiB0aGUgU3RydXRzIGV4YW1wbGUgYXBwbGljYXRpb25zIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggdGhlIHJlbGVhc2UKKyAgICAgIHNoYWxsIG9wZXJhdGUgc3VjY2Vzc2Z1bGx5IGluIHRoZSBmb2xsb3dpbmcgc2VydmxldCBjb250YWluZXJzOgorICAgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdG9tY2F0Ij5Ub21jYXQgMy4zPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy90b21jYXQiPlRvbWNhdCA0LjAuMzwvYT48L2xpPgorICAgICAgPC91bD48L2xpPgorICA8bGk+QSByZWxlYXNlIHZvdGUgc2hhbGwgdGFrZSBwbGFjZSBvbiB0aGUgU1RSVVRTLURFViBtYWlsaW5nIGxpc3QgdG8KKyAgICAgIGFwcHJvdmUgdGhpcyBwbGFuLiAgVGhlIHJlbGVhc2Ugdm90ZSBNVVNUIHBhc3MgYnkgIk1ham9yaXR5IEFwcHJvdmFsIgorICAgICAgb2YgU3RydXRzIGNvbW1pdHRlcnMuPC9saT4KKyAgPC91bD4KKworICA8cD5QcmlvciB0byB0aGUgcmVsZWFzZSBvZiBhIHN1YnNlcXVlbnQgU3RydXRzIDEuMSByZWxlYXNlIGNhbmRpZGF0ZSwgdGhlCisgIGZvbGxvd2luZyBhY3Rpb24gaXRlbXMgbXVzdCBiZSBjb21wbGV0ZWQ6PC9wPgorICA8dWw+CisgIDxsaT5BbGwgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhLyI+QnVnemlsbGE8L2E+IGJ1ZyByZXBvcnRzCisgICAgICBhZ2FpbnN0IFN0cnV0cyAxLjEgbmlnaHRseSBidWlsZHMgTVVTVCBiZSBtYXJrZWQgYXMgIlJlc29sdmVkIiwgd2l0aCBhbnkKKyAgICAgIG9mIHRoZSBsZWdhbCBCdWd6aWxsYSByZXNvbHV0aW9ucyAoRklYRUQsIElOVkFMSUQsIFdPTlRGSVgsIExBVEVSLAorICAgICAgUkVNSU5ELCBXT1JLU0ZPUk1FKS48L2xpPgorICA8bGk+QnVnIHJlcG9ydHMgdGhhdCBhcmUgcmVzb2x2ZWQgYXMgTEFURVIgb3IgUkVNSU5EIHdpbGwgaW5jbHVkZSBjb21tZW50cworICAgICAgYXMgdG8gd2hldGhlciB0aG9zZSBzcGVjaWZpYyBpc3N1ZXMgd2lsbCBiZSBkZWFsdCB3aXRoIGluIGEgc3Vic2VxdWVudAorICAgICAgcmVsZWFzZSBjYW5kaWRhdGUsIG9yIGZpbmFsIHJlbGVhc2UsIG9yIHdoZXRoZXIgdGhleSB3aWxsIGJlIHNjaGVkdWxlZAorICAgICAgZm9yIGNvbnNpZGVyYXRpb24gaW4gYSBzdWJzZXF1ZW50IHJlbGVhc2UgdGltZSBmcmFtZS48L2xpPgorICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworCisgIDwvYm9keT4KKworPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy9yZWxlYXNlLXBsYW4tMS4xYjIueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvcG9zYWxzL3JlbGVhc2UtcGxhbi0xLjFiMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFkOWIzOAotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy9yZWxlYXNlLXBsYW4tMS4xYjIueG1sCkBAIC0wLDAgKzEsMTQ0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Ii4vcmVsZWFzZS1wbGFuLTEuMS1iMi54bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5TdHJ1dHMgUmVsZWFzZSBQbGFuIChWZXJzaW9uIDEuMS1iMik8L3RpdGxlPgorICA8L3Byb3BlcnRpZXM+CisKKyAgPGJvZHk+CisKKworICA8c2VjdGlvbiBuYW1lPSJPYmplY3RpdmUiIGhyZWY9Ik9iamVjdGl2ZSI+CisKKyAgPHA+JElkJDwvcD4KKworICA8cD5UaGUgb2JqZWN0aXZlIG9mIHRoZSA8c3Ryb25nPlN0cnV0cyAxLjEgQmV0YSAyPC9zdHJvbmc+IHJlbGVhc2UgaXMgdG8KKyAgY3JlYXRlIGEgbWlsZXN0b25lIHJlbGVhc2UgYWdhaW5zdCB3aGljaCBhIGZpbmFsIHNlcmllcyBvZiBidWcgZml4ZXMgYW5kCisgIGRvY3VtZW50YXRpb24gdXBkYXRlcyBjYW4gb2NjdXIgYmVmb3JlIGEgPHN0cm9uZz5TdHJ1dHMgMS4xIEZpbmFsPC9zdHJvbmc+CisgIHJlbGVhc2UgaXMgY3JlYXRlZC48L3A+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iVGhlIFBsYW4iIGhyZWY9IlBsYW4iPgorCisgIDxwPkEgbnVtYmVyIG9mIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIG5pZ2h0bHkgYnVpbGRzIHNpbmNlIHRoZQorICBmaXJzdCBCZXRhIHJlbGVhc2Ugb2YgU3RydXRzIDEuMSwgYW5kIG1hbnkgYnVncyBoYXZlIGJlZW4gZml4ZWQuIEl0IGlzIHRpbWUsCisgIHRoZXJlZm9yZSwgdG8gdGFrZSB0aGUgbmV4dCBzdGVwIGluIHRoZSByZWxlYXNlIHByb2Nlc3MsIGFuZCBtYWtlIHRoZSBsYXRlc3QKKyAgY29kZSBiYXNlIGF2YWlsYWJsZSBhcyBhIHNlY29uZCBCZXRhIHJlbGVhc2UuIFRoZSBnb2FsIGlzIHRvIG1vdmUgdG93YXJkcyBhCisgIHJlbGVhc2UgY2FuZGlkYXRlIGFuZCB0aGVuIGEgZmluYWwgPHN0cm9uZz5TdHJ1dHMgMS4xPC9zdHJvbmc+IHJlbGVhc2UgYXMKKyAgc29vbiBhcyBpcyBwcmFjdGljYWJsZS48L3A+CisKKyAgPHA+VGhlcmVmb3JlLCB0aGUgZm9sbG93aW5nIHJlbGVhc2UgcGxhbiBpcyBwcm9wb3NlZCBmb3IgU3RydXRzIDEuMSBCZXRhIDI6CisgIDwvcD4KKyAgPHVsPgorICA8bGk+PGVtPkNvZGUgRnJlZXplIC8gVGFnIERhdGU8L2VtPiAtIFNhdHVyZGF5LCBBdWd1c3QgMTAsIDIwMDI8L2xpPgorICA8bGk+PGVtPlJlbGVhc2UgTWFuYWdlcjwvZW0+IC0gTWFydGluIENvb3BlcjwvbGk+CisgIDxsaT48ZW0+UmVsZWFzZSBBbm5vdW5jZW1lbnQ8L2VtPiAtIFRvIHRoZSBmb2xsb3dpbmcgbWFpbGluZyBsaXN0czoKKyAgICAgIDx1bD4KKyAgICAgIDxsaT5hbm5vdW5jZW1lbnRzQGpha2FydGEuYXBhY2hlLm9yZzwvbGk+CisgICAgICA8bGk+c3RydXRzLWRldkBqYWthcnRhLmFwYWNoZS5vcmc8L2xpPgorICAgICAgPGxpPnN0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZzwvbGk+CisgICAgICA8L3VsPjwvbGk+CisgIDwvdWw+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iUmVsZWFzZSBDcml0ZXJpYSIgaHJlZj0iQ3JpdGVyaWEiPgorCisgIDxwPlByaW9yIHRvIHRoZSByZWxlYXNlIG9mIFN0cnV0cyAxLjEgQmV0YSAyLCB0aGUgZm9sbG93aW5nIGFjdGlvbiBpdGVtcworICBtdXN0IGJlIGNvbXBsZXRlZDo8L3A+CisgIDx1bD4KKyAgPGxpPlRoZSBTdHJ1dHMgMS4xIFJlbGVhc2UgTm90ZXMgZG9jdW1lbnQgc2hhbGwgYmUgdXBkYXRlZCB0byBkZXNjcmliZQorICAgICAgc3Vic3RhbnRpYWwgY2hhbmdlcyBhbmQgaW1wcm92ZW1lbnRzIHNpbmNlIHRoZSBTdHJ1dHMgMS4wLjIgcmVsZWFzZSwKKyAgICAgIGFsb25nIHdpdGggYXNzb2NpYXRlZCB1cGRhdGVzIHRvIHRoZSBtYWluIFN0cnV0cyBEb2N1bWVudGF0aW9uCisgICAgICBBcHBsaWNhdGlvbiBwYWdlcyBkZXNjcmliaW5nIHRoZSBuZXcgcmVsZWFzZS48L2xpPgorICA8bGk+QWxsIG9mIHRoZSBTdHJ1dHMgZXhhbXBsZSBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgaW5jbHVkZWQgd2l0aCB0aGUgcmVsZWFzZQorICAgICAgc2hhbGwgb3BlcmF0ZSBzdWNjZXNzZnVsbHkgaW4gdGhlIGZvbGxvd2luZyBzZXJ2bGV0IGNvbnRhaW5lcnM6CisgICAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy90b21jYXQiPlRvbWNhdCAzLjMuMTwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdG9tY2F0Ij5Ub21jYXQgNC4wLjQ8L2E+PC9saT4KKyAgICAgIDwvdWw+PC9saT4KKyAgPGxpPkEgcmVsZWFzZSB2b3RlIHNoYWxsIHRha2UgcGxhY2Ugb24gdGhlIFNUUlVUUy1ERVYgbWFpbGluZyBsaXN0IHRvCisgICAgICBhcHByb3ZlIHRoaXMgcGxhbi4gIFRoZSByZWxlYXNlIHZvdGUgTVVTVCBwYXNzIGJ5ICJNYWpvcml0eSBBcHByb3ZhbCIKKyAgICAgIG9mIFN0cnV0cyBjb21taXR0ZXJzLjwvbGk+CisgIDwvdWw+CisKKyAgPHA+UHJpb3IgdG8gdGhlIHJlbGVhc2Ugb2YgYSBzdWJzZXF1ZW50IFN0cnV0cyAxLjEgcmVsZWFzZSBjYW5kaWRhdGUsIHRoZQorICBmb2xsb3dpbmcgYWN0aW9uIGl0ZW1zIG11c3QgYmUgY29tcGxldGVkOjwvcD4KKyAgPHVsPgorICA8bGk+QWxsIDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS8iPkJ1Z3ppbGxhPC9hPiBidWcgcmVwb3J0cworICAgICAgYWdhaW5zdCBTdHJ1dHMgMS4xIG5pZ2h0bHkgYnVpbGRzIE1VU1QgYmUgbWFya2VkIGFzICJSZXNvbHZlZCIsIHdpdGggYW55CisgICAgICBvZiB0aGUgbGVnYWwgQnVnemlsbGEgcmVzb2x1dGlvbnMgKEZJWEVELCBJTlZBTElELCBXT05URklYLCBMQVRFUiwKKyAgICAgIFJFTUlORCwgV09SS1NGT1JNRSkuPC9saT4KKyAgPGxpPkJ1ZyByZXBvcnRzIHRoYXQgYXJlIHJlc29sdmVkIGFzIExBVEVSIG9yIFJFTUlORCB3aWxsIGluY2x1ZGUgY29tbWVudHMKKyAgICAgIGFzIHRvIHdoZXRoZXIgdGhvc2Ugc3BlY2lmaWMgaXNzdWVzIHdpbGwgYmUgZGVhbHQgd2l0aCBpbiBhIHN1YnNlcXVlbnQKKyAgICAgIGJldGEsIHJlbGVhc2UgY2FuZGlkYXRlLCBvciBmaW5hbCByZWxlYXNlLCBvciB3aGV0aGVyIHRoZXkgd2lsbCBiZQorICAgICAgc2NoZWR1bGVkIGZvciBjb25zaWRlcmF0aW9uIGluIGEgc3Vic2VxdWVudCByZWxlYXNlIHRpbWUgZnJhbWUuPC9saT4KKyAgPC91bD4KKworICA8L3NlY3Rpb24+CisKKworICA8c2VjdGlvbiBuYW1lPSJCdWdzIFRvIEJlIEFkZHJlc3NlZCIgaHJlZj0iQnVncyI+CisKKyAgPHA+VGhlIGZvbGxvd2luZyBidWdzIG11c3QgYmUgYWRkcmVzc2VkIGJlZm9yZSBGaW5hbCBSZWxlYXNlIG9mIFN0cnV0cyAxLjEuPC9wPgorCisgIDx0YWJsZSBjbGFzcz0ibm9ib3JkZXIiPgorICAgIDx0cj4KKyAgICAgIDx0ZCBjb2xzcGFuPSIyIj48c3Ryb25nPkN1c3RvbSBUYWdzPC9zdHJvbmc+PC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD4xNTg2PC90ZD4KKyAgICAgIDx0ZD5UaGUgJmx0O2h0bWw6Zm9ybSZndDsgdGFnIGdlbmVyYXRlcyBpbmNvcnJlY3QgZm9jdXMgamF2YXNjcmlwdCBmb3IgcmFkaW8gYnV0dG9ucy48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkIGNvbHNwYW49IjIiPjxzdHJvbmc+RG9jdW1lbnRhdGlvbjwvc3Ryb25nPjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+MTA1Mzc8L3RkPgorICAgICAgPHRkPls6VE9ETzpdIHNlY3Rpb25zICgxOCk8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkIGNvbHNwYW49IjIiPjxzdHJvbmc+RXhhbXBsZSBXZWJhcHBzPC9zdHJvbmc+PC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD4xMDk1NTwvdGQ+CisgICAgICA8dGQ+RXJyb3IgcnVubmluZyBzdHJ1dHMtYmxhbmsgYXBwbGljYWl0b24gdW5kZXIgSlJ1biAzLjE8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkIGNvbHNwYW49IjIiPjxzdHJvbmc+VmFsaWRhdG9yIEZyYW1ld29yazwvc3Ryb25nPjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+NzM1MzwvdGQ+CisgICAgICA8dGQ+VmFsaWRhdG9yIEphdmFTY3JpcHQgU2VsZWN0IEVycm9yPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD4xMDE5MTwvdGQ+CisgICAgICA8dGQ+VmFsaWRhdG9yIHJhbmdlIGNoZWNraW5nIGJ1ZzwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+MTAzNDg8L3RkPgorICAgICAgPHRkPlZhbGlkYXRvciBpcyBub3QgYXZhaWxhYmxlIHVuZGVyIG1vZHVsZTwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+MTAzNDk8L3RkPgorICAgICAgPHRkPlZhbGlkYXRvcjogZGF0ZSB2YWxpZGF0aW9uIGRvZXMgbm90IGFsbG93IGJsYW5rIGlucHV0PzwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+MTA0MzI8L3RkPgorICAgICAgPHRkPkR5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtIGRvZXMgbm90IHZhbGlkYXRlIGRhdGE8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPjEwNTg0PC90ZD4KKyAgICAgIDx0ZD5Ob3QgYWxsIHZhbGlkYXRpb24gZmlsZXMgYXJlIHJlYWQgaW4gVmFsaWRhdGlvbiBQbHVnSW48L3RkPgorICAgIDwvdHI+CisgIDwvdGFibGU+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPC9ib2R5PgorCis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvcG9zYWxzL3JlbGVhc2UtcGxhbi0xLjFiMy54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9wb3NhbHMvcmVsZWFzZS1wbGFuLTEuMWIzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjQ1OTc0Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvcG9zYWxzL3JlbGVhc2UtcGxhbi0xLjFiMy54bWwKQEAgLTAsMCArMSwyNTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0iLi9yZWxlYXNlLXBsYW4tMS4xLWIzLnhtbCI+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlN0cnV0cyBSZWxlYXNlIFBsYW4gKFZlcnNpb24gMS4xLWIzKTwvdGl0bGU+CisgIDwvcHJvcGVydGllcz4KKworICA8Ym9keT4KKworCisgIDxzZWN0aW9uIG5hbWU9Ik9iamVjdGl2ZSIgaHJlZj0iT2JqZWN0aXZlIj4KKworICA8cD4kSWQkPC9wPgorCisgIDxwPlRoZSBvYmplY3RpdmUgb2YgdGhlIDxzdHJvbmc+U3RydXRzIDEuMSBCZXRhIDM8L3N0cm9uZz4gcmVsZWFzZSBpcyB0bworICBjcmVhdGUgYSBtaWxlc3RvbmUgcmVsZWFzZSBhZ2FpbnN0IHdoaWNoIGEgZmluYWwgc2VyaWVzIG9mIGJ1ZyBmaXhlcyBhbmQKKyAgZG9jdW1lbnRhdGlvbiB1cGRhdGVzIGNhbiBvY2N1ciBiZWZvcmUgYSA8c3Ryb25nPlN0cnV0cyAxLjEgRmluYWw8L3N0cm9uZz4KKyAgcmVsZWFzZSBpcyBjcmVhdGVkLjwvcD4KKworICA8L3NlY3Rpb24+CisKKworICA8c2VjdGlvbiBuYW1lPSJUaGUgUGxhbiIgaHJlZj0iUGxhbiI+CisKKyAgPHA+QSBudW1iZXIgb2YgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgbmlnaHRseSBidWlsZHMgc2luY2UgdGhlCisgIHNlY29uZCBCZXRhIHJlbGVhc2Ugb2YgU3RydXRzIDEuMSwgYW5kIG1hbnkgYnVncyBoYXZlIGJlZW4gZml4ZWQuIEl0IGlzIHRpbWUsCisgIHRoZXJlZm9yZSwgdG8gdGFrZSB0aGUgbmV4dCBzdGVwIGluIHRoZSByZWxlYXNlIHByb2Nlc3MsIGFuZCBtYWtlIHRoZSBsYXRlc3QKKyAgY29kZSBiYXNlIGF2YWlsYWJsZSBhcyBhIHRoaXJkIEJldGEgcmVsZWFzZS4gVGhlIGdvYWwgaXMgdG8gbW92ZSB0b3dhcmRzIGEKKyAgcmVsZWFzZSBjYW5kaWRhdGUgYW5kIHRoZW4gYSBmaW5hbCA8c3Ryb25nPlN0cnV0cyAxLjE8L3N0cm9uZz4gcmVsZWFzZSBhcworICBzb29uIGFzIGlzIHByYWN0aWNhYmxlLjwvcD4KKworICA8cD5UaGVyZWZvcmUsIHRoZSBmb2xsb3dpbmcgcmVsZWFzZSBwbGFuIGlzIHByb3Bvc2VkIGZvciBTdHJ1dHMgMS4xIEJldGEgMzoKKyAgPC9wPgorICA8dWw+CisgIDxsaT48ZW0+Q29kZSBGcmVlemUgLyBUYWcgRGF0ZTwvZW0+IC0gU3VuZGF5LCBEZWNlbWJlciAyOSwgMjAwMiwgMjM6NTk6NTk8L2xpPgorICA8bGk+PGVtPlJlbGVhc2UgTWFuYWdlcjwvZW0+IC0gTWFydGluIENvb3BlcjwvbGk+CisgIDxsaT48ZW0+UmVsZWFzZSBBbm5vdW5jZW1lbnQ8L2VtPiAtIFRvIHRoZSBmb2xsb3dpbmcgbWFpbGluZyBsaXN0czoKKyAgICAgIDx1bD4KKyAgICAgIDxsaT5hbm5vdW5jZW1lbnRzQGpha2FydGEuYXBhY2hlLm9yZzwvbGk+CisgICAgICA8bGk+c3RydXRzLWRldkBqYWthcnRhLmFwYWNoZS5vcmc8L2xpPgorICAgICAgPGxpPnN0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZzwvbGk+CisgICAgICA8L3VsPjwvbGk+CisgIDwvdWw+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iUmVsZWFzZSBDcml0ZXJpYSIgaHJlZj0iQ3JpdGVyaWEiPgorCisgIDxwPlByaW9yIHRvIHRoZSByZWxlYXNlIG9mIFN0cnV0cyAxLjEgQmV0YSAzLCB0aGUgZm9sbG93aW5nIGFjdGlvbiBpdGVtcworICBtdXN0IGJlIGNvbXBsZXRlZDo8L3A+CisgIDx1bD4KKyAgPGxpPlRoZSBTdHJ1dHMgMS4xIFJlbGVhc2UgTm90ZXMgZG9jdW1lbnQgc2hhbGwgYmUgdXBkYXRlZCB0byBkZXNjcmliZQorICAgICAgc3Vic3RhbnRpYWwgY2hhbmdlcyBhbmQgaW1wcm92ZW1lbnRzIHNpbmNlIHRoZSBTdHJ1dHMgMS4wLjIgcmVsZWFzZSwKKyAgICAgIGFsb25nIHdpdGggYXNzb2NpYXRlZCB1cGRhdGVzIHRvIHRoZSBtYWluIFN0cnV0cyBEb2N1bWVudGF0aW9uCisgICAgICBBcHBsaWNhdGlvbiBwYWdlcyBkZXNjcmliaW5nIHRoZSBuZXcgcmVsZWFzZS48L2xpPgorICA8bGk+QWxsIG9mIHRoZSBTdHJ1dHMgZXhhbXBsZSBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgaW5jbHVkZWQgd2l0aCB0aGUgcmVsZWFzZQorICAgICAgc2hhbGwgb3BlcmF0ZSBzdWNjZXNzZnVsbHkgaW4gdGhlIGZvbGxvd2luZyBzZXJ2bGV0IGNvbnRhaW5lcnM6CisgICAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy90b21jYXQiPlRvbWNhdCAzLjMuMTwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdG9tY2F0Ij5Ub21jYXQgNC4wLjY8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RvbWNhdCI+VG9tY2F0IDQuMS4xODwvYT48L2xpPgorICAgICAgPC91bD48L2xpPgorICA8bGk+QSByZWxlYXNlIHZvdGUgc2hhbGwgdGFrZSBwbGFjZSBvbiB0aGUgU1RSVVRTLURFViBtYWlsaW5nIGxpc3QgdG8KKyAgICAgIGFwcHJvdmUgdGhpcyBwbGFuLiAgVGhlIHJlbGVhc2Ugdm90ZSBNVVNUIHBhc3MgYnkgIk1ham9yaXR5IEFwcHJvdmFsIgorICAgICAgb2YgU3RydXRzIGNvbW1pdHRlcnMuPC9saT4KKyAgPC91bD4KKworICA8cD5QcmlvciB0byB0aGUgcmVsZWFzZSBvZiBhIHN1YnNlcXVlbnQgU3RydXRzIDEuMSByZWxlYXNlIGNhbmRpZGF0ZSwgdGhlCisgIGZvbGxvd2luZyBhY3Rpb24gaXRlbXMgbXVzdCBiZSBjb21wbGV0ZWQ6PC9wPgorICA8dWw+CisgIDxsaT5BbGwgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL2J1Z2xpc3QuY2dpP2J1Z19zdGF0dXM9VU5DT05GSVJNRUQmYW1wO2J1Z19zdGF0dXM9TkVXJmFtcDtidWdfc3RhdHVzPUFTU0lHTkVEJmFtcDtidWdfc3RhdHVzPVJFT1BFTkVEJmFtcDtidWdfc3RhdHVzPVZFUklGSUVEJmFtcDtlbWFpbDE9JmFtcDtlbWFpbHR5cGUxPXN1YnN0cmluZyZhbXA7ZW1haWxhc3NpZ25lZF90bzE9MSZhbXA7ZW1haWwyPSZhbXA7ZW1haWx0eXBlMj1zdWJzdHJpbmcmYW1wO2VtYWlscmVwb3J0ZXIyPTEmYW1wO2J1Z2lkdHlwZT1pbmNsdWRlJmFtcDtidWdfaWQ9JmFtcDtjaGFuZ2VkaW49JmFtcDt2b3Rlcz0mYW1wO2NoZmllbGRmcm9tPSZhbXA7Y2hmaWVsZHRvPU5vdyZhbXA7Y2hmaWVsZHZhbHVlPSZhbXA7cHJvZHVjdD1TdHJ1dHMmYW1wO3ZlcnNpb249TmlnaHRseStCdWlsZCZhbXA7c2hvcnRfZGVzYz0mYW1wO3Nob3J0X2Rlc2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZhbXA7bG9uZ19kZXNjPSZhbXA7bG9uZ19kZXNjX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2J1Z19maWxlX2xvYz0mYW1wO2J1Z19maWxlX2xvY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtrZXl3b3Jkcz0mYW1wO2tleXdvcmRzX3R5cGU9YW55d29yZHMmYW1wO2ZpZWxkMC0wLTA9bm9vcCZhbXA7dHlwZTAtMC0wPW5vb3AmYW1wO3ZhbHVlMC0wLTA9JmFtcDtjbWR0eXBlPWRvaXQmYW1wO25ld3F1ZXJ5bmFtZT0mYW1wO29yZGVyPUJ1ZytOdW1iZXIiPkJ1Z3ppbGxhIGJ1ZyByZXBvcnRzPC9hPgorICAgICAgYWdhaW5zdCBTdHJ1dHMgMS4xIG5pZ2h0bHkgYnVpbGRzIE1VU1QgYmUgbWFya2VkIGFzICJSZXNvbHZlZCIsIHdpdGggYW55CisgICAgICBvZiB0aGUgbGVnYWwgQnVnemlsbGEgcmVzb2x1dGlvbnMgKEZJWEVELCBJTlZBTElELCBXT05URklYLCBMQVRFUiwKKyAgICAgIFJFTUlORCwgV09SS1NGT1JNRSkuPC9saT4KKyAgPGxpPkJ1ZyByZXBvcnRzIHRoYXQgYXJlIHJlc29sdmVkIGFzIExBVEVSIG9yIFJFTUlORCB3aWxsIGluY2x1ZGUgY29tbWVudHMKKyAgICAgIGFzIHRvIHdoZXRoZXIgdGhvc2Ugc3BlY2lmaWMgaXNzdWVzIHdpbGwgYmUgZGVhbHQgd2l0aCBpbiBhIHN1YnNlcXVlbnQKKyAgICAgIGJldGEsIHJlbGVhc2UgY2FuZGlkYXRlLCBvciBmaW5hbCByZWxlYXNlLCBvciB3aGV0aGVyIHRoZXkgd2lsbCBiZQorICAgICAgc2NoZWR1bGVkIGZvciBjb25zaWRlcmF0aW9uIGluIGEgc3Vic2VxdWVudCByZWxlYXNlIHRpbWUgZnJhbWUuPC9saT4KKyAgPC91bD4KKworICA8L3NlY3Rpb24+CisKKworICA8c2VjdGlvbiBuYW1lPSJCdWdzIFRvIEJlIEFkZHJlc3NlZCIgaHJlZj0iQnVncyI+CisKKyAgPHA+CisgICAgICBUaGUgZm9sbG93aW5nIGJ1Z3MgbXVzdCBiZSBhZGRyZXNzZWQgYmVmb3JlIEZpbmFsIFJlbGVhc2Ugb2YgU3RydXRzIDEuMS4KKyAgICAgIENoZWNrZWQgaXRlbXMgaGF2ZSBiZWVuIHJlc29sdmVkLgorICA8L3A+CisKKyAgPHRhYmxlIGNsYXNzPSJub2JvcmRlciI+CisKKyAgICA8IS0tIEN1c3RvbSB0YWdzIC0tPgorICAgIDx0cj4KKyAgICAgIDx0ZCBjb2xzcGFuPSIzIj48c3Ryb25nPkN1c3RvbSBUYWdzPC9zdHJvbmc+PC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5beF08L3RkPgorICAgICAgPHRkPgorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTEwMjEiPjExMDIxPC9hPgorICAgICAgPC90ZD4KKyAgICAgIDx0ZD5BY3Rpb25Gb3J3YXJkIG9yICZsdDtodG1sOmxpbmsmZ3Q7IHRhZyBkb2VzIG5vdCBzdXBwb3J0IGFic29sdXRlIFVSSXM8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgICA8dGQ+W3hdPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTIzMDIiPjEyMzAyPC9hPjwvdGQ+CisgICAgICA8dGQ+U3BvcmFkaWMgZXJyb3IgaW4gaHRtbDpmb3JtIGFjdGlvbiBhdHRyaWJ1dGU8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgICA8dGQ+W3hdPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTM2NDUiPjEzNjQ1PC9hPjwvdGQ+CisgICAgICA8dGQ+QWRkIGFjdGlvbiBhdHRyaWJ1dGUgdG8gJmx0O2h0bWw6bGluayZndDs8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgICA8dGQ+W3hdPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTUwNDQiPjE1MDQ0PC9hPjwvdGQ+CisgICAgICA8dGQ+VGFnbGliIC0gSW5kZXggQXR0cmlidXRlIGluIGh0bWw6Q2hlY2tib3ggZG9lc24ndCBzZXQgY29ycmVjdGx5PC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgICAgPHRkPlt4XTwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTE1MTk2Ij4xNTE5NjwvYT48L3RkPgorICAgICAgPHRkPkJ1ZyBvbiB0aGUgUmVxdWVzdFV0aWxzLmNvbXB1dGVQYXJhbWV0ZXJzIHVzaW5nIGEgRHluYVZhbGlkYXRvckZvcm0gYXMgbWFwIG9mIHRoZSBwYXJhbWV0ZXI8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgICA8dGQ+W3hdPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTU0NTEiPjE1NDUxPC9hPjwvdGQ+CisgICAgICA8dGQ+TXVsdGlwbGUgbWFwcGVkIHByb3BlcnRpZXMgbm90IHBvc3NpYmxlIC8gRGlyZWN0IG1hcHMgYW5kIGluZGV4ZXMgbm90IHBvc3NpYmxlPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgICAgPHRkPlt4XTwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTE1NjAxIj4xNTYwMTwvYT48L3RkPgorICAgICAgPHRkPnRpbGUgZXhhbXBsZXMgdG8gbW92ZSB0byBzdGFuZGFyZCB3ZWJhcHAgbG9jYXRpb248L3RkPgorICAgIDwvdHI+CisKKyAgICA8IS0tIENvbnRyb2xsZXIgLS0+CisgICAgPHRyPgorICAgICAgPHRkIGNvbHNwYW49IjMiPjxzdHJvbmc+Q29udHJvbGxlcjwvc3Ryb25nPjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICAgIDx0ZD5beF08L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xMjg3MSI+MTI4NzE8L2E+PC90ZD4KKyAgICAgIDx0ZD5FeGNlcHRpb25IYW5kbGVyIGRvZXMgbm90IG9iZXkgY29udHJvbGxlciBpbnB1dEZvcndhcmQgcnVsZTwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICAgIDx0ZD5beF08L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xNDA1NCI+MTQwNTQ8L2E+PC90ZD4KKyAgICAgIDx0ZD5SZW5hbWUgIkFwcGxpY2F0aW9uIiBjb21wb25lbnRzIHRvICJNb2R1bGUiPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgICAgPHRkPlt4XTwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTE0NzQ5Ij4xNDc0OTwvYT48L3RkPgorICAgICAgPHRkPkFjdGlvbiAiaW5wdXQiIG5vdCBzdGFydGluZyB3aXRoICcvJyBhbmQgbm90IGEgdmFsaWQgZm9yd2FyZCB3aWxsIGNhdXNlIGFuIGludGVybmFsIHNlcnZlciBlcnJvcjwvdGQ+CisgICAgPC90cj4KKworICAgIDwhLS0gRG9jdW1lbnRhdGlvbiAtLT4KKyAgICA8dHI+CisgICAgICA8dGQgY29sc3Bhbj0iMyI+PHN0cm9uZz5Eb2N1bWVudGF0aW9uPC9zdHJvbmc+PC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgICAgPHRkPlt4XTwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTEwNTM3Ij4xMDUzNzwvYT48L3RkPgorICAgICAgPHRkPls6VE9ETzpdIHNlY3Rpb25zPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgICAgPHRkPlt4XTwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTE1MTY3Ij4xNTE2NzwvYT48L3RkPgorICAgICAgPHRkPlVwZGF0ZWQgQWN0aW9uIGRvY3VtZW50YXRpb248L3RkPgorICAgIDwvdHI+CisKKyAgICA8IS0tIFV0aWxpdGllcyAtLT4KKyAgICA8dHI+CisgICAgICA8dGQgY29sc3Bhbj0iMyI+PHN0cm9uZz5VdGlsaXRpZXM8L3N0cm9uZz48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgICA8dGQ+W3hdPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTE5MzIiPjExOTMyPC9hPjwvdGQ+CisgICAgICA8dGQ+KE1lc3NhZ2UgUmVzb3VyY2UgaXMgbm90IG11bHRpLWFwcCBhd2FyZSkgTXVsdGktUmVzb3VyY2Ugbm90IHdvcmsgaW4gTXVsdGktQXBwbGljdGlvbiBjb25maWcgZW52aXJvbm1lbnQ8L3RkPgorICAgIDwvdHI+CisKKyAgICA8IS0tIFVua25vd24gLS0+CisgICAgPHRyPgorICAgICAgPHRkIGNvbHNwYW49IjMiPjxzdHJvbmc+VW5rbm93bjwvc3Ryb25nPjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICAgIDx0ZD5beF08L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xNDA0MiI+MTQwNDI8L2E+PC90ZD4KKyAgICAgIDx0ZD5Vbmtub3duIE1lbW9yeSBsZWFrcyB3aXRoIEpCb3NzIDMueCArKFRvbWNhdC9KZXR0eSk8L3RkPgorICAgIDwvdHI+CisKKyAgICA8IS0tIFBvc3QgTW9ydGVtIC0tPgorICAgIDx0cj4KKyAgICAgIDx0ZCBjb2xzcGFuPSIzIj48c3Ryb25nPlBvc3QgTW9ydGVtIC0tIFRoZXNlIHRpY2tldHMgd2VyZSBhZGRlZCBhZnRlciB0aGUgcmVsZWFzZSBvZiBTdHJ1dHMgMS4xIEIzIGFuZCBuZWVkIHRvIGJlIHJlc29sdmVkIGJlZm9yZSB0aGUgbmV4dCBpdGVyYXRpb248L3N0cm9uZz48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgICA8dGQ+W3hdPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTU3MzYiPjE1NzM2PC9hPjwvdGQ+CisgICAgICA8dGQ+U3RydXRzIGRvZXNuJ3QgaW5pdGlhbGl6ZSB1bmRlciBzdHJpY3Qgc2VjdXJpdHkgbWFuYWdlcjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICAgIDx0ZD5beF08L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xNTc5OSI+MTU3OTk8L2E+PC90ZD4KKyAgICAgIDx0ZD5OZXN0ZWQgdGFncyBwaWNrcyB1cCB3cm9uZyBiZWFuIGZvciB2YWx1ZXM8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgICA8dGQ+W3hdPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTU4ODMiPjE1ODgzPC9hPjwvdGQ+CisgICAgICA8dGQ+d3JvbmcgcmVzb3VyY2UgZmlsZSB1c2VkIGluIG11bHRpLWFwcGxpY2F0aW9uIGNvbnRleHQ8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgICA8dGQ+W3hdPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTYwMTkiPjE2MDE5PC9hPjwvdGQ+CisgICAgICA8dGQ+TG9va3VwRGlzcGF0Y2hBY3Rpb24gbXVsdGlwbGUgTWVzc2FnZVJlc291cmNlczwvdGQ+CisgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+W3hdPC90ZD4KKyAgICAgICAgICA8dGQ+CisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTE2NTE0Ij4xNjUxNDwvYT48L3RkPgorICAgICAgICA8dGQ+TmVzdGVkdFRpbGVzIGZhaWwgaW4gdGhpcyByZWxlYXNlPC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHI+CisgICAgICAgICAgPHRkPlt4XTwvdGQ+CisgICAgICAgICAgPHRkPgorICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xNjYwMyI+MTY2MDM8L2E+PC90ZD4KKyAgICAgICAgPHRkPmludGVybmFsTW9kdWxlUmVsYXRpdmVGb3J3YXJkKCkgZG9lc24ndCB0cmVhdCBtb2R1bGUtcmVsYXRpdmUgcGF0aHMgYXMgZGVmaW5lZCBieSBmb3J3YXJkUGF0dGVybjwvdGQ+CisgICAgICA8L3RyPgorICAgICAgPHRyPgorICAgICAgICAgIDx0ZD5beF08L3RkPgorICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTY2MDkiPjE2NjA5PC9hPjwvdGQ+CisgICAgICAgIDx0ZD5NZXNzYWdlUmVzb3VyY2Ugbm90IGluIHJlcXVlc3Qgc2NvcGUgZm9yIE1vZHVsZTwvdGQ+CisgICAgICA8L3RyPgorICA8L3RhYmxlPgorCisgIDwvc2VjdGlvbj4KKworCisgIDwvYm9keT4KKworPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy9yZWxlYXNlLXBsYW4tMS4xcmMxLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy9yZWxlYXNlLXBsYW4tMS4xcmMxLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzE2NTI1Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvcG9zYWxzL3JlbGVhc2UtcGxhbi0xLjFyYzEueG1sCkBAIC0wLDAgKzEsODYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0iLi9yZWxlYXNlLXBsYW4tMS4xcmMxLnhtbCI+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlN0cnV0cyBSZWxlYXNlIFBsYW4gKFZlcnNpb24gMS4xLXJjMSk8L3RpdGxlPgorICA8L3Byb3BlcnRpZXM+CisKKyAgPGJvZHk+CisKKworICA8c2VjdGlvbiBuYW1lPSJPYmplY3RpdmUiIGhyZWY9Ik9iamVjdGl2ZSI+CisKKyAgPHA+JElkJDwvcD4KKworICA8cD5UaGUgb2JqZWN0aXZlIG9mIHRoZSA8c3Ryb25nPlN0cnV0cyAxLjEgUmVsZWFzZSBDYW5kaWRhdGUgMTwvc3Ryb25nPgorICByZWxlYXNlIGlzIHRvIGNyZWF0ZSBhIG1pbGVzdG9uZSByZWxlYXNlIGluIHByZXBhcmF0aW9uIGZvciBhbiBpbW1pbmVudAorICA8c3Ryb25nPlN0cnV0cyAxLjEgRmluYWw8L3N0cm9uZz4gcmVsZWFzZS4gQXMgYSByZWxlYXNlIGNhbmRpZGF0ZSwgdGhpcworICBtaWxlc3RvbmUgcmVsZWFzZSBjdXJyZW50bHkgY29udGFpbnMgbm8ga25vd24gc2hvd3N0b3BwZXJzLjwvcD4KKworICA8L3NlY3Rpb24+CisKKworICA8c2VjdGlvbiBuYW1lPSJUaGUgUGxhbiIgaHJlZj0iUGxhbiI+CisKKyAgPHA+QSBudW1iZXIgb2YgYnVncyBoYXZlIGJlZW4gZml4ZWQgc2luY2UgdGhlIHRoaXJkIEJldGEgcmVsZWFzZSBvZiBTdHJ1dHMgMS4xLAorICBhbmQgYWxsIHJlbWFpbmluZyBidWdzIGhhdmUgYmVlbiBjYXRlZ29yaXplZCBlaXRoZXIgYXMgZW5oYW5jZW1lbnRzLCBvciBhcworICBwcm9ibGVtcyB3aGljaCBjYW4gYmUgZml4ZWQgaW4gYSByZWxlYXNlIHN1YnNlcXVlbnQgdG8gU3RydXRzIDEuMSBGaW5hbC4KKyAgVGhlcmVmb3JlIGl0IGlzIHRpbWUgdG8gbWFrZSB0aGUgbGF0ZXN0IGNvZGUgYmFzZSBhdmFpbGFibGUgYXMgYSBmaXJzdCBSZWxlYXNlCisgIENhbmRpZGF0ZS4gVGhlIGdvYWwgaXMgdG8gbW92ZSB0b3dhcmRzIGEgZmluYWwgPHN0cm9uZz5TdHJ1dHMgMS4xPC9zdHJvbmc+CisgIHJlbGVhc2UgYXMgc29vbiBhcyBpcyBwcmFjdGljYWJsZS48L3A+CisKKyAgPHA+VGhlcmVmb3JlLCB0aGUgZm9sbG93aW5nIHJlbGVhc2UgcGxhbiBpcyBwcm9wb3NlZCBmb3IgU3RydXRzIDEuMSBSZWxlYXNlIENhbmRpZGF0ZSAxOgorICA8L3A+CisgIDx1bD4KKyAgPGxpPjxlbT5Db2RlIEZyZWV6ZSAvIFRhZyBEYXRlPC9lbT4gLSBUdWVzZGF5LCBGZWJydWFyeSAxOCwgMjAwMywgMjM6NTk6NTk8L2xpPgorICA8bGk+PGVtPlJlbGVhc2UgTWFuYWdlcjwvZW0+IC0gTWFydGluIENvb3BlcjwvbGk+CisgIDxsaT48ZW0+UmVsZWFzZSBBbm5vdW5jZW1lbnQ8L2VtPiAtIFRvIHRoZSBmb2xsb3dpbmcgbWFpbGluZyBsaXN0czoKKyAgICAgIDx1bD4KKyAgICAgIDxsaT5hbm5vdW5jZW1lbnRzQGpha2FydGEuYXBhY2hlLm9yZzwvbGk+CisgICAgICA8bGk+c3RydXRzLWRldkBqYWthcnRhLmFwYWNoZS5vcmc8L2xpPgorICAgICAgPGxpPnN0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZzwvbGk+CisgICAgICA8L3VsPjwvbGk+CisgIDwvdWw+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iUmVsZWFzZSBDcml0ZXJpYSIgaHJlZj0iQ3JpdGVyaWEiPgorCisgIDxwPlByaW9yIHRvIHRoZSByZWxlYXNlIG9mIFN0cnV0cyAxLjEgUmVsZWFzZSBDYW5kaWRhdGUgMSwgdGhlIGZvbGxvd2luZworICBhY3Rpb24gaXRlbXMgbXVzdCBiZSBjb21wbGV0ZWQ6PC9wPgorICA8dWw+CisgIDxsaT5UaGUgU3RydXRzIDEuMSBSZWxlYXNlIE5vdGVzIGRvY3VtZW50IHNoYWxsIGJlIHVwZGF0ZWQgdG8gZGVzY3JpYmUKKyAgICAgIHN1YnN0YW50aWFsIGNoYW5nZXMgYW5kIGltcHJvdmVtZW50cyBzaW5jZSB0aGUgU3RydXRzIDEuMC4yIHJlbGVhc2UsCisgICAgICBhbG9uZyB3aXRoIGFzc29jaWF0ZWQgdXBkYXRlcyB0byB0aGUgbWFpbiBTdHJ1dHMgRG9jdW1lbnRhdGlvbgorICAgICAgQXBwbGljYXRpb24gcGFnZXMgZGVzY3JpYmluZyB0aGUgbmV3IHJlbGVhc2UuPC9saT4KKyAgPGxpPkFsbCBvZiB0aGUgU3RydXRzIGV4YW1wbGUgYXBwbGljYXRpb25zIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggdGhlIHJlbGVhc2UKKyAgICAgIHNoYWxsIG9wZXJhdGUgc3VjY2Vzc2Z1bGx5IGluIHRoZSBmb2xsb3dpbmcgc2VydmxldCBjb250YWluZXJzOgorICAgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdG9tY2F0Ij5Ub21jYXQgMy4zLjE8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RvbWNhdCI+VG9tY2F0IDQuMC42PC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy90b21jYXQiPlRvbWNhdCA0LjEuMTg8L2E+PC9saT4KKyAgICAgIDwvdWw+PC9saT4KKyAgPGxpPkEgcmVsZWFzZSB2b3RlIHNoYWxsIHRha2UgcGxhY2Ugb24gdGhlIFNUUlVUUy1ERVYgbWFpbGluZyBsaXN0IHRvCisgICAgICBhcHByb3ZlIHRoaXMgcGxhbi4gIFRoZSByZWxlYXNlIHZvdGUgTVVTVCBwYXNzIGJ5ICJNYWpvcml0eSBBcHByb3ZhbCIKKyAgICAgIG9mIFN0cnV0cyBjb21taXR0ZXJzLjwvbGk+CisgIDwvdWw+CisKKyAgPHA+UHJpb3IgdG8gdGhlIHJlbGVhc2Ugb2YgYSBzdWJzZXF1ZW50IFN0cnV0cyAxLjEgRmluYWwgcmVsZWFzZSwgdGhlCisgIGZvbGxvd2luZyBhY3Rpb24gaXRlbXMgbXVzdCBiZSBjb21wbGV0ZWQ6PC9wPgorICA8dWw+CisgIDxsaT5BbGwgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL2J1Z2xpc3QuY2dpP2J1Z19zdGF0dXM9VU5DT05GSVJNRUQmYW1wO2J1Z19zdGF0dXM9TkVXJmFtcDtidWdfc3RhdHVzPUFTU0lHTkVEJmFtcDtidWdfc3RhdHVzPVJFT1BFTkVEJmFtcDtidWdfc3RhdHVzPVZFUklGSUVEJmFtcDtlbWFpbDE9JmFtcDtlbWFpbHR5cGUxPXN1YnN0cmluZyZhbXA7ZW1haWxhc3NpZ25lZF90bzE9MSZhbXA7ZW1haWwyPSZhbXA7ZW1haWx0eXBlMj1zdWJzdHJpbmcmYW1wO2VtYWlscmVwb3J0ZXIyPTEmYW1wO2J1Z2lkdHlwZT1pbmNsdWRlJmFtcDtidWdfaWQ9JmFtcDtjaGFuZ2VkaW49JmFtcDt2b3Rlcz0mYW1wO2NoZmllbGRmcm9tPSZhbXA7Y2hmaWVsZHRvPU5vdyZhbXA7Y2hmaWVsZHZhbHVlPSZhbXA7cHJvZHVjdD1TdHJ1dHMmYW1wO3ZlcnNpb249TmlnaHRseStCdWlsZCZhbXA7c2hvcnRfZGVzYz0mYW1wO3Nob3J0X2Rlc2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZhbXA7bG9uZ19kZXNjPSZhbXA7bG9uZ19kZXNjX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2J1Z19maWxlX2xvYz0mYW1wO2J1Z19maWxlX2xvY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtrZXl3b3Jkcz0mYW1wO2tleXdvcmRzX3R5cGU9YW55d29yZHMmYW1wO2ZpZWxkMC0wLTA9bm9vcCZhbXA7dHlwZTAtMC0wPW5vb3AmYW1wO3ZhbHVlMC0wLTA9JmFtcDtjbWR0eXBlPWRvaXQmYW1wO25ld3F1ZXJ5bmFtZT0mYW1wO29yZGVyPUJ1ZytOdW1iZXIiPkJ1Z3ppbGxhIGJ1ZyByZXBvcnRzPC9hPgorICAgICAgYWdhaW5zdCBTdHJ1dHMgMS4xIG5pZ2h0bHkgYnVpbGRzIE1VU1QgYmUgbWFya2VkIGFzICJSZXNvbHZlZCIsIHdpdGggYW55CisgICAgICBvZiB0aGUgbGVnYWwgQnVnemlsbGEgcmVzb2x1dGlvbnMgKEZJWEVELCBJTlZBTElELCBXT05URklYLCBMQVRFUiwKKyAgICAgIFJFTUlORCwgV09SS1NGT1JNRSkuPC9saT4KKyAgPGxpPkJ1ZyByZXBvcnRzIHRoYXQgYXJlIHJlc29sdmVkIGFzIExBVEVSIG9yIFJFTUlORCB3aWxsIGluY2x1ZGUgY29tbWVudHMKKyAgICAgIGFzIHRvIHdoZXRoZXIgdGhvc2Ugc3BlY2lmaWMgaXNzdWVzIHdpbGwgYmUgZGVhbHQgd2l0aCBpbiBhIHN1YnNlcXVlbnQKKyAgICAgIGJldGEsIHJlbGVhc2UgY2FuZGlkYXRlLCBvciBmaW5hbCByZWxlYXNlLCBvciB3aGV0aGVyIHRoZXkgd2lsbCBiZQorICAgICAgc2NoZWR1bGVkIGZvciBjb25zaWRlcmF0aW9uIGluIGEgc3Vic2VxdWVudCByZWxlYXNlIHRpbWUgZnJhbWUuPC9saT4KKyAgPC91bD4KKworICA8L3NlY3Rpb24+CisKKyAgPC9ib2R5PgorCis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvcG9zYWxzL3JlbGVhc2UtcGxhbi0xLjFyYzIueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvcG9zYWxzL3JlbGVhc2UtcGxhbi0xLjFyYzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OTA3ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9wb3NhbHMvcmVsZWFzZS1wbGFuLTEuMXJjMi54bWwKQEAgLTAsMCArMSwxMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0iLi9yZWxlYXNlLXBsYW4tMS4xcmMyLnhtbCI+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlN0cnV0cyBSZWxlYXNlIFBsYW4gKFZlcnNpb24gMS4xLXJjMik8L3RpdGxlPgorICA8L3Byb3BlcnRpZXM+CisKKyAgPGJvZHk+CisKKyAgPHNlY3Rpb24gbmFtZT0iT2JqZWN0aXZlIiBocmVmPSJPYmplY3RpdmUiPgorCisgIDxwPiRJZCQ8L3A+CisKKyAgPHA+VGhlIG9iamVjdGl2ZSBvZiB0aGUgPHN0cm9uZz5TdHJ1dHMgMS4xIFJlbGVhc2UgQ2FuZGlkYXRlIDI8L3N0cm9uZz4KKyAgcmVsZWFzZSBpcyB0byBjcmVhdGUgYSBtaWxlc3RvbmUgcmVsZWFzZSBpbiBwcmVwYXJhdGlvbiBmb3IgYW4gaW1taW5lbnQKKyAgPHN0cm9uZz5TdHJ1dHMgMS4xIEZpbmFsPC9zdHJvbmc+IHJlbGVhc2UuIEFzIGEgcmVsZWFzZSBjYW5kaWRhdGUsIHRoaXMKKyAgbWlsZXN0b25lIHJlbGVhc2UgY3VycmVudGx5IGNvbnRhaW5zIG5vIGtub3duIHNob3dzdG9wcGVycy48L3A+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iVGhlIFBsYW4iIGhyZWY9IlBsYW4iPgorCisgIDxwPkEgbnVtYmVyIG9mIGJ1Z3MgaGF2ZSBiZWVuIGZpeGVkIHNpbmNlIGFuZCBvdGhlciBpbnRlcm5hbCBjaGFuZ2VzIG1hZGUKKyAgc2luY2UgdGhlIGZpcnN0IHJlbGVhc2UgY2FuZGlkYXRlIG9mIFN0cnV0cyAxLjEuCisgIEFsbCByZW1haW5pbmcgdGlja2V0cyBoYXZlIGJlZW4gY2F0ZWdvcml6ZWQgZWl0aGVyIGFzIGVuaGFuY2VtZW50cywgb3IgYXMKKyAgcHJvYmxlbXMgd2hpY2ggY2FuIGJlIGZpeGVkIGluIGEgcmVsZWFzZSBzdWJzZXF1ZW50IHRvIFN0cnV0cyAxLjEgRmluYWwuCisgIFRoZXJlZm9yZSBpdCBpcyB0aW1lIHRvIG1ha2UgdGhlIGxhdGVzdCBjb2RlIGJhc2UgYXZhaWxhYmxlIGFzIGEgZmlyc3QgUmVsZWFzZQorICBDYW5kaWRhdGUuIFRoZSBnb2FsIGlzIHRvIG1vdmUgdG93YXJkcyBhIGZpbmFsIDxzdHJvbmc+U3RydXRzIDEuMTwvc3Ryb25nPgorICByZWxlYXNlIGFzIHNvb24gYXMgaXMgcHJhY3RpY2FibGUuIDwvcD4KKworICAgICAgPHA+CisgICAgICAgICAgVGhpcyByZWxlYXNlIGNhbmRpZGF0ZSBpbmNsdWRlcyB0aGUgQ29tbW9ucyBGaWxlVXBsb2FkIFJDMSBKQVIsCisgICAgICAgICAgd2hpY2ggaXMgcmVxdWlyZWQgdG8gY29tcGlsZSBhbmQgdXNlIFN0cnV0cyAxLjEuCisgICAgICAgICAgQSBmaW5hbCByZWxlYXNlIG9mIFN0cnV0cyBtdXN0IGRlcGVuZCBvbmx5IG9uIGZpbmFsIHJlbGVhc2VzIG9mIG90aGVyCisgICAgICAgICAgcmVxdWlyZWQgcHJvZHVjdHMuIENvbnNlcXVlbnRseSwgdGhlIFN0cnV0cyAxLjEgRmluYWwgcmVsZWFzZSBjYW5ub3QKKyAgICAgICAgICBiZSBtYWRlIHVuaXRsIHRoZSBDb21tb25zIEZpbGVVcGxvYWQgMS4wIEZpbmFsIFJlbGVhc2UgaXMgYXZhaWxhYmxlLgorICAgICAgPC9wPgorCisgICAgICA8cD4KKyAgICAgICAgICBIb3dldmVyLCBQZW5kaW5nIHRoZSBmaW5hbCByZWxlYXNlIG9mIENvbW1vbnMgRmlsZVVwbG9hZCAxLjAsCisgICAgICAgICAgYW5kIHNob3VsZCB0aGVyZSBiZSBubyBzaG93c3RvcHBlcnMgZm91bmQgaW4gdGhpcyByZWxlYXNlIGNhbmRpZGF0ZSwKKyAgICAgICAgICA8c3Ryb25nPlN1bmRheSBKdW5lIDI5LCAyMDAzPC9zdHJvbmc+LCBpcyBzZXQgYXMgdGhlIGFudGljaXBhdGVkIHJlbGVhc2UgZGF0ZSBvZgorICAgICAgICAgIFN0cnV0cyAxLjEgRmluYWwuCisgICAgICAgICAgQW55b25lIHdpc2hpbmcgdG8gdGVzdCB0aGUgcHJvZHVjdCBiZWZvcmUgdGhlIGZpbmFsIHJlbGVhc2UKKyAgICAgICAgICBpcyBlbmNvdXJnZWQgdG8gZG8gc28gYmVmb3JlIHRoYXQgZGF0ZS4KKyAgICAgIDwvcD4KKworICA8cD5UaGVyZWZvcmUsIHRoZSBmb2xsb3dpbmcgcmVsZWFzZSBwbGFuIGlzIHByb3Bvc2VkIGZvciBTdHJ1dHMgMS4xIFJlbGVhc2UgQ2FuZGlkYXRlIDI6CisgIDwvcD4KKyAgPHVsPgorICA8bGk+PGVtPkNvZGUgRnJlZXplIC8gVGFnIERhdGU8L2VtPiAtIEZyaWRheSwgSnVuZSA2LCAyMDAzLCAyMzo1OTo1OTwvbGk+CisgIDxsaT48ZW0+UmVsZWFzZSBNYW5hZ2VyPC9lbT4gLSBUZWQgSHVzdGVkPC9saT4KKyAgPGxpPjxlbT5SZWxlYXNlIEFubm91bmNlbWVudDwvZW0+IC0gVG8gdGhlIGZvbGxvd2luZyBtYWlsaW5nIGxpc3RzOgorICAgICAgPHVsPgorICAgICAgPGxpPmFubm91bmNlbWVudHNAamFrYXJ0YS5hcGFjaGUub3JnPC9saT4KKyAgICAgIDxsaT5zdHJ1dHMtZGV2QGpha2FydGEuYXBhY2hlLm9yZzwvbGk+CisgICAgICA8bGk+c3RydXRzLXVzZXJAamFrYXJ0YS5hcGFjaGUub3JnPC9saT4KKyAgICAgIDwvdWw+PC9saT4KKyAgPC91bD4KKworICAgICAgPHA+CisgICAgICAgICAgVGhpcyBwbGFuIGlzIGJlaW5nIHByZXBhcmVkIGFuZCBleGVjdXRlZCBpbiBhY2NvcmRhbmNlIHdpdGggYSBwb3NpdGl2ZSB2b3RlCisgICAgICAgICAgaGVsZCBvbiB0aGUgU1RSVVQtREVWIGxpc3QsIGJlZ2lubmluZyBvbiBNYXkgMjksCisgICAgICAgICAgdGhlIHJlc3VsdHMgb2Ygd2hpY2ggd2VyZSBwb3N0ZWQgb24gSnVuZSAzLCAyMDAzLgorICAgICAgPC9wPgorCisgICAgICA8cD4KKyAgICAgICAgICBUaGUgcmVsZWFzZSBwcm9jZXNzIHNoYWxsIGZvbGxvdyB0aGUgc2FtZQorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9yZWxlYXNlcy8iPmdlbmVyYWwgcHJvY2VkdXJlczwvYT4KKyAgICAgICAgICBlc3RhYmxpc2hlZCB0aGUgSmFrYXJ0YSBDb21tb25zIHByb2R1Y3RzLgorICAgICAgPC9wPgorCisgIDwvc2VjdGlvbj4KKworICAgICAgPHNlY3Rpb24gbmFtZT0iUmVsZWFzZSBDcml0ZXJpYSIgaHJlZj0iQ3JpdGVyaWEiPgorCisgICAgICA8cD5QcmlvciB0byB0aGUgcmVsZWFzZSBvZiBTdHJ1dHMgMS4xIFJlbGVhc2UgQ2FuZGlkYXRlIDIsIHRoZSBmb2xsb3dpbmcKKyAgICAgIGFjdGlvbiBpdGVtcyBtdXN0IGJlIGNvbXBsZXRlZDo8L3A+CisgICAgICA8dWw+CisgICAgICA8bGk+VGhlIFN0cnV0cyAxLjEgUmVsZWFzZSBOb3RlcyBkb2N1bWVudCBzaGFsbCBiZSB1cGRhdGVkIHRvIGRlc2NyaWJlCisgICAgICAgICAgc3Vic3RhbnRpYWwgY2hhbmdlcyBhbmQgaW1wcm92ZW1lbnRzIHNpbmNlIHRoZSBTdHJ1dHMgMS4xIFJDMSByZWxlYXNlLAorICAgICAgICAgIGFsb25nIHdpdGggYXNzb2NpYXRlZCB1cGRhdGVzIHRvIHRoZSBtYWluIFN0cnV0cyBEb2N1bWVudGF0aW9uCisgICAgICAgICAgQXBwbGljYXRpb24gcGFnZXMgZGVzY3JpYmluZyB0aGUgbmV3IHJlbGVhc2UuPC9saT4KKyAgICAgIDxsaT5BbGwgb2YgdGhlIFN0cnV0cyBleGFtcGxlIGFwcGxpY2F0aW9ucyB0aGF0IGFyZSBpbmNsdWRlZCB3aXRoIHRoZSByZWxlYXNlCisgICAgICAgICAgc2hhbGwgb3BlcmF0ZSBzdWNjZXNzZnVsbHkgaW4gdGhlIGZvbGxvd2luZyBzZXJ2bGV0IGNvbnRhaW5lcnM6CisgICAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RvbWNhdCI+VG9tY2F0IDMuMy4xPC9hPjwvbGk+CisgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdG9tY2F0Ij5Ub21jYXQgNC4wLjY8L2E+PC9saT4KKyAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy90b21jYXQiPlRvbWNhdCA0LjEuMTg8L2E+PC9saT4KKyAgICAgICAgICA8L3VsPjwvbGk+CisgICAgICA8IS0tCisgICAgICA8bGk+QSByZWxlYXNlIHZvdGUgc2hhbGwgdGFrZSBwbGFjZSBvbiB0aGUgU1RSVVRTLURFViBtYWlsaW5nIGxpc3QgdG8KKyAgICAgICAgICBhcHByb3ZlIHRoaXMgcGxhbi4gIFRoZSByZWxlYXNlIHZvdGUgTVVTVCBwYXNzIGJ5ICJNYWpvcml0eSBBcHByb3ZhbCIKKyAgICAgICAgICBvZiBTdHJ1dHMgY29tbWl0dGVycy4gIDwvbGk+CisgICAgICAtLT4KKyAgICAgIDwvdWw+CisKKyAgICAgIDxwPlByaW9yIHRvIHRoZSByZWxlYXNlIG9mIGEgc3Vic2VxdWVudCBTdHJ1dHMgMS4xIEZpbmFsIHJlbGVhc2UsIHRoZQorICAgICAgZm9sbG93aW5nIGFjdGlvbiBpdGVtcyBtdXN0IGJlIGNvbXBsZXRlZDo8L3A+CisgICAgICA8dWw+CisgICAgICA8bGk+QWxsCisgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL2J1Z2xpc3QuY2dpP2J1Z19zdGF0dXM9VU5DT05GSVJNRUQmYW1wO2J1Z19zdGF0dXM9TkVXJmFtcDtidWdfc3RhdHVzPUFTU0lHTkVEJmFtcDtidWdfc3RhdHVzPVJFT1BFTkVEJmFtcDtidWdfc3RhdHVzPVZFUklGSUVEJmFtcDtidWdfc2V2ZXJpdHk9QmxvY2tlciZhbXA7YnVnX3NldmVyaXR5PUNyaXRpY2FsJmFtcDtidWdfc2V2ZXJpdHk9TWFqb3ImYW1wO2J1Z19zZXZlcml0eT1Ob3JtYWwmYW1wO2J1Z19zZXZlcml0eT1NaW5vciZhbXA7ZW1haWwxPSZhbXA7ZW1haWx0eXBlMT1zdWJzdHJpbmcmYW1wO2VtYWlsYXNzaWduZWRfdG8xPTEmYW1wO2VtYWlsMj0mYW1wO2VtYWlsdHlwZTI9c3Vic3RyaW5nJmFtcDtlbWFpbHJlcG9ydGVyMj0xJmFtcDtidWdpZHR5cGU9aW5jbHVkZSZhbXA7YnVnX2lkPSZhbXA7Y2hhbmdlZGluPSZhbXA7dm90ZXM9JmFtcDtjaGZpZWxkZnJvbT0mYW1wO2NoZmllbGR0bz1Ob3cmYW1wO2NoZmllbGR2YWx1ZT0mYW1wO3Byb2R1Y3Q9U3RydXRzJmFtcDt2ZXJzaW9uPU5pZ2h0bHkrQnVpbGQmYW1wO3Nob3J0X2Rlc2M9JmFtcDtzaG9ydF9kZXNjX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2xvbmdfZGVzYz0mYW1wO2xvbmdfZGVzY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtidWdfZmlsZV9sb2M9JmFtcDtidWdfZmlsZV9sb2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZhbXA7a2V5d29yZHM9JmFtcDtrZXl3b3Jkc190eXBlPWFueXdvcmRzJmFtcDtmaWVsZDAtMC0wPW5vb3AmYW1wO3R5cGUwLTAtMD1ub29wJmFtcDt2YWx1ZTAtMC0wPSZhbXA7Y21kdHlwZT1kb2l0JmFtcDtuZXdxdWVyeW5hbWU9JmFtcDtvcmRlcj1CdWcrTnVtYmVyIj4KKyAgICAgICAgICBCdWd6aWxsYSBidWcgcmVwb3J0czwvYT4KKyAgICAgICAgICBhZ2FpbnN0IFN0cnV0cyAxLjEgbmlnaHRseSBidWlsZHMgTVVTVCBiZSBtYXJrZWQgYXMgIkVuaGFuY2VtZW50IiBvciAiUmVzb2x2ZWQiLCB3aXRoIGFueQorICAgICAgICAgIG9mIHRoZSBsZWdhbCBCdWd6aWxsYSByZXNvbHV0aW9ucyAoRklYRUQsIElOVkFMSUQsIFdPTlRGSVgsIExBVEVSLAorICAgICAgICAgIFJFTUlORCwgV09SS1NGT1JNRSkuPC9saT4KKyAgICAgIDxsaT5CdWcgcmVwb3J0cyB0aGF0IGFyZSByZXNvbHZlZCBhcyBMQVRFUiBvciBSRU1JTkQgd2lsbCBpbmNsdWRlIGNvbW1lbnRzCisgICAgICAgICAgYXMgdG8gd2hldGhlciB0aG9zZSBzcGVjaWZpYyBpc3N1ZXMgd2lsbCBiZSBkZWFsdCB3aXRoIGluIGEgc3Vic2VxdWVudAorICAgICAgICAgIGJldGEsIHJlbGVhc2UgY2FuZGlkYXRlLCBvciBmaW5hbCByZWxlYXNlLCBvciB3aGV0aGVyIHRoZXkgd2lsbCBiZQorICAgICAgICAgIHNjaGVkdWxlZCBmb3IgY29uc2lkZXJhdGlvbiBpbiBhIHN1YnNlcXVlbnQgcmVsZWFzZSB0aW1lIGZyYW1lLjwvbGk+CisgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICBUaGUgZmluYWwgcmVsZWFzZSBvZiBDb21tb25zLUZpbGVVcGxvYWQgMS4wIG11c3QgYmUgYXZhaWxhYmxlCisgICAgICAgICAgICAgIGFuZCBtYWRlIHBhcnQgb2YgdGhlIFN0cnV0cyAxLjEgRmluYWwgZGlzdHJpYnV0aW9uLgorICAgICAgICAgIDwvbGk+CisgICAgICA8L3VsPgorCisgICAgPC9zZWN0aW9uPgorICAgIDwvYm9keT4KKzwvZG9jdW1lbnQ+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9wb3NhbHMvcmVsZWFzZS1wbGFuXzFfMl8wLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy9yZWxlYXNlLXBsYW5fMV8yXzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkOGUyNTQKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9wb3NhbHMvcmVsZWFzZS1wbGFuXzFfMl8wLnhtbApAQCAtMCwwICsxLDE4MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSIuL3JlbGVhc2UtcGxhbi0xLjFyYzIueG1sIj4KKworICAgIDxwcm9wZXJ0aWVzPgorICAgICAgICA8dGl0bGU+U3RydXRzIFJlbGVhc2UgUGxhbiAoVmVyc2lvbiAxLjIuMCk8L3RpdGxlPgorICAgICA8L3Byb3BlcnRpZXM+CisKKyAgPGJvZHk+CisKKyAgICAgIDxzZWN0aW9uIG5hbWU9Ik9iamVjdGl2ZSIgaHJlZj0ib2JqZWN0aXZlIj4KKyAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgJElkJAorICAgICAgICAgIDwvcD4KKworICAgICAgICAgIDxwPgorICAgICAgICAgICAgICBUSElTIElTIEFOIFVOUkFUSUZJRUQgRFJBRlQgRE9DVU1FTlQgUFJPVklERUQgRk9SIERJU0NVU1NJT04gUFVSUE9TRVMgT05MWSEKKyAgICAgICAgICA8L3A+CisKKyAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgVGhlIG9iamVjdGl2ZSBvZiB0aGUgPHN0cm9uZz5TdHJ1dHMgMS4yLjA8L3N0cm9uZz4gcmVsZWFzZSBpcyB0byBwcm92aWRlIGFuIG9mZmljaWFsIHZlcnNpb24gb2YgYWxsIHRoZQorICAgICAgICAgICAgICBjaGFuZ2VzIHRoYXQgaGF2ZSBiZWVuIG1hZGUgdG8gdGhlIG1haW4gdHJ1bmsgb2YgdGhlIGpha2FydGEtc3RydXRzIENWUyBzaW5jZSB0aGUgcmVsZWFzZSBvZiBTdHJ1dHMgMS4xCisgICAgICAgICAgICAgIEZpbmFsLgorICAgICAgICAgIDwvcD4KKyAgICAgIDwvc2VjdGlvbj4KKworICAgICAgPHNlY3Rpb24gbmFtZT0iVGhlIFBsYW4iIGhyZWY9InBsYW4iPgorICAgICAgICAgIDxwPgorICAgICAgICAgICAgICBTaW5jZSB0aGUgcmVsZWFzZSBvZiB2ZXJzaW9uIFN0cnV0cyAxLjEgRmluYWwsIHdlIGhhdmUgcmVtb3ZlZCBtYW55IG9mIHRoZSBlbGVtZW50cyBkZXByZWNhdGVkIGJldHdlZW4KKyAgICAgICAgICAgICAgU3RydXRzIDEuMCBhbmQgU3RydXRzIDEuMSBhbmQgbWFkZSBzZXZlcmFsIGJ1ZyBmaXhlcyBhbmQgbWlub3IgZW5oYW5jZW1lbnRzLgorICAgICAgICAgIDwvcD4KKworICAgICAgICAgIDxwPgorICAgICAgICAgICAgICBUaGUgZm9sbG93aW5nIHJlbGVhc2UgcGxhbiBpcyBwcm9wb3NlZCBmb3IgU3RydXRzIDEuMi4wOgorICAgICAgICAgIDwvcD4KKworICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgPGVtPlRhZyBEYXRlPC9lbT4gLSBTYXR1cmRheSwgU2VwdGVtYmVyIDcsIDIwMDMsIDIzOjU5OjU5CisgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgIDxlbT5SZWxlYXNlIE1hbmFnZXI8L2VtPiAtIFRlZCBIdXN0ZWQKKyAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgPGVtPkFscGhhIFJlbGVhc2UgQW5ub3VuY2VtZW50PC9lbT4gLSBUbyB0aGUgZm9sbG93aW5nIG1haWxpbmcgbGlzdDoKKyAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgICA8bGk+c3RydXRzLWRldkBqYWthcnRhLmFwYWNoZS5vcmc8L2xpPgorICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgPGVtPkJldGEvR2VuZXJhbCBSZWxlYXNlIEFubm91bmNlbWVudDwvZW0+IC0gVG8gdGhlIGZvbGxvd2luZyBtYWlsaW5nIGxpc3RzOgorICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgIDxsaT5zdHJ1dHMtZGV2QGpha2FydGEuYXBhY2hlLm9yZzwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgPGxpPnN0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZzwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgPGxpPmFubm91bmNlbWVudHNAamFrYXJ0YS5hcGFjaGUub3JnPC9saT4KKyAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPC91bD4KKworICAgICAgICAgIDxwPgorICAgICAgICAgICAgICBUaGUgcmVsZWFzZSBwcm9jZXNzIHNoYWxsIGZvbGxvdyB0aGUgc2FtZSBnZW5lcmFsIHByb2NlZHVyZXMgZXN0YWJsaXNoZWQgZm9yIHRoZQorICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kZXYvcmVsZWFzZS5odG1sIj5BcGFjaGUgSFRUUEQgcHJvamVjdDwvYT4gYW5kCisgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9yZWxlYXNlcy8iPkpha2FydGEgQ29tbW9ucyBwcm9kdWN0czwvYT4sIGFuZCB1dGlsaXplIHRoZQorICAgICAgICAgICAgICBIVFRQRCBudW1iZXJpbmcgc2NoZW1lLgorICAgICAgICAgIDwvcD4KKworICAgICAgICAgIDxwPgorICAgICAgICAgICAgICBUaGUgcmVsZWFzZSB3aWxsIGluaXRpYWxseSBiZSBnaXZlbiBhbiBBbHBoYSBzdGF0dXMgYW5kIG1hZGUgYXZhaWxhYmxlIHRocm91Z2ggdGhlIFJlbGVhc2UgTWFuYWdlcidzIGhvbWUKKyAgICAgICAgICAgICAgZGlyZWN0b3J5LgorICAgICAgICAgICAgICBQdXJzdWFudCB0byBhIE1ham9yaXR5IFZvdGUgb24gdGhlIDxlbT5zdHJ1dHMtZGV2PC9lbT4gTWFpbGluZyBMaXN0LCB0aGUgcmVsZWFzZSBtYXkgYmUgbW92ZWQgdG8gdGhlCisgICAgICAgICAgICAgIHB1YmxpYyByZWxlYXNlIGRpcmVjdG9yeS4KKyAgICAgICAgICAgICAgVGhlIHZvdGUgbWF5IGFsc28gc2VydmUgdG8gcmVjbGFzc2lmeSB0aGUgcmVsZWFzZSB0byBiZSBvZiA8c3Ryb25nPkJldGE8L3N0cm9uZz4gb3IgPHN0cm9uZz5HZW5lcmFsIEF2YWlsYWJpbGl0eTwvc3Ryb25nPiAoR0EpCisgICAgICAgICAgICAgIHF1YWxpdHksIGFzIGRlZmluZWQgYnkgdGhlIEFwYWNoZSBIVFRQRCBwcm9qZWN0LgorICAgICAgICAgICAgICBTdWJzZXF1ZW50IHZvdGVzIG1heSByZWNsYXNzaWZ5IHRoZSByZWxlYXNlLCBlaXRoZXIgdG8gcHJvbW90ZSBpdCBvciB0byBkZW1vdGUgaXQsIGFzIG5lZWQgYmUuCisgICAgICAgICAgPC9wPgorICAgICAgPC9zZWN0aW9uPgorCisgICAgICA8c2VjdGlvbiBuYW1lPSJTcGVjaWZpYyBSZWxlYXNlIENyaXRlcmlhIiBocmVmPSJzcGVjaWZpYyI+CisgICAgICAgICAgPHA+CisgICAgICAgICAgICAgIFByaW9yIHRvIHRoZSA8c3Ryb25nPlN0cnV0cyAxLjIuMCByZWxlYXNlPC9zdHJvbmc+LCB0aGVzZSBzcGVjaWZpYyBhY3Rpb24gaXRlbXMgbXVzdCBiZSBjb21wbGV0ZWQ6CisgICAgICAgICAgPC9wPgorCisgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICBUaGUgUm9hZG1hcCBwYWdlIG11c3QgYmUgdXBkYXRlZCB3aXRoIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBuZXcgcmVsZWFzZSBudW1iZXJpbmcgc2NoZW1lLgorICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgIDwvdWw+CisgICAgICA8L3NlY3Rpb24+CisKKyAgICAgIDxzZWN0aW9uIG5hbWU9IlN0YW5kYXJkIFJlbGVhc2UgQ3JpdGVyaWEiIGhyZWY9InN0YW5kYXJkIj4KKyAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgUHJpb3IgdG8gPHN0cm9uZz5hbnkgcmVsZWFzZTwvc3Ryb25nPiBieSB0aGUgU3RydXRzIENvbW1pdHRlcnMsIGluY2x1ZGluZyB0aGlzIG9uZSwgdGhlIGZvbGxvd2luZyBhY3Rpb24gaXRlbXMgbXVzdAorICAgICAgICAgICAgICBiZSBjb21wbGV0ZWQ6CisgICAgICAgICAgPC9wPgorCisgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICA8c3Ryb25nPlJlc29sdmUgc2hvd3N0b3BwZXJzLjwvc3Ryb25nPgorICAgICAgICAgICAgICAgICAgUmVsZXZhbnQKKyAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9idWdsaXN0LmNnaT9lbWFpbDE9JmFtcDtlbWFpbHR5cGUxPXN1YnN0cmluZyZhbXA7ZW1haWxhc3NpZ25lZF90bzE9MSZhbXA7ZW1haWwyPSZhbXA7ZW1haWx0eXBlMj1zdWJzdHJpbmcmYW1wO2VtYWlscmVwb3J0ZXIyPTEmYW1wO2J1Z2lkdHlwZT1pbmNsdWRlJmFtcDtidWdfaWQ9JmFtcDtjaGFuZ2VkaW49JmFtcDt2b3Rlcz0mYW1wO2NoZmllbGRmcm9tPSZhbXA7Y2hmaWVsZHRvPU5vdyZhbXA7Y2hmaWVsZHZhbHVlPSZhbXA7cHJvZHVjdD1TdHJ1dHMmYW1wO3ZlcnNpb249MS4xUkMyJmFtcDtzaG9ydF9kZXNjPSZhbXA7c2hvcnRfZGVzY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtsb25nX2Rlc2M9JmFtcDtsb25nX2Rlc2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZhbXA7YnVnX2ZpbGVfbG9jPSZhbXA7YnVnX2ZpbGVfbG9jX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2tleXdvcmRzPSZhbXA7a2V5d29yZHNfdHlwZT1hbnl3b3JkcyZhbXA7ZmllbGQwLTAtMD1ub29wJmFtcDt0eXBlMC0wLTA9bm9vcCZhbXA7dmFsdWUwLTAtMD0mYW1wO2NtZHR5cGU9ZG9pdCZhbXA7bmV3cXVlcnluYW1lPSZhbXA7b3JkZXI9QnVnK051bWJlciI+CisgICAgICAgICAgICAgICAgICBCdWd6aWxsYSB0aWNrZXRzPC9hPiB2ZXJpZmllZCBieSBhIFN0cnV0cyBDb21taXR0ZXIgdG8gaGF2ZSB0aGUgU2V2ZXJpdHkgQkxPQ0tFUiwgQ1JJVElDQUwsIG9yCisgICAgICAgICAgICAgICAgICBNQUpPUiBtdXN0IGJlICJSZXNvbHZlZCIgd2l0aCBvbmUgb2YgdGhlc2UgQnVnemlsbGEgcmVzb2x1dGlvbnM6IEZJWEVELCBJTlZBTElELCBXT05URklYLCBXT1JLU0ZPUk1FLgorICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICA8c3Ryb25nPkFwcGx5IHBhdGNoZXMuPC9zdHJvbmc+CisgICAgICAgICAgICAgICAgICBSZWxldmFudAorICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL2J1Z2xpc3QuY2dpP2J1Z19zdGF0dXM9TkVXJmFtcDtidWdfc3RhdHVzPUFTU0lHTkVEJmFtcDtidWdfc3RhdHVzPVJFT1BFTkVEJmFtcDtidWdfc3RhdHVzPVZFUklGSUVEJmFtcDtlbWFpbDE9JmFtcDtlbWFpbHR5cGUxPXN1YnN0cmluZyZhbXA7ZW1haWxhc3NpZ25lZF90bzE9MSZhbXA7ZW1haWwyPSZhbXA7ZW1haWx0eXBlMj1zdWJzdHJpbmcmYW1wO2VtYWlscmVwb3J0ZXIyPTEmYW1wO2J1Z2lkdHlwZT1pbmNsdWRlJmFtcDtidWdfaWQ9JmFtcDtjaGFuZ2VkaW49JmFtcDt2b3Rlcz0mYW1wO2NoZmllbGRmcm9tPSZhbXA7Y2hmaWVsZHRvPU5vdyZhbXA7Y2hmaWVsZHZhbHVlPSZhbXA7cHJvZHVjdD1TdHJ1dHMmYW1wO3Nob3J0X2Rlc2M9JmFtcDtzaG9ydF9kZXNjX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2xvbmdfZGVzYz0mYW1wO2xvbmdfZGVzY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtidWdfZmlsZV9sb2M9JmFtcDtidWdfZmlsZV9sb2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZhbXA7a2V5d29yZHM9UGF0Y2hBdmFpbGFibGUmYW1wO2tleXdvcmRzX3R5cGU9YW55d29yZHMmYW1wO2ZpZWxkMC0wLTA9bm9vcCZhbXA7dHlwZTAtMC0wPW5vb3AmYW1wO3ZhbHVlMC0wLTA9JmFtcDtjbWR0eXBlPWRvaXQmYW1wO29yZGVyPUJ1ZytOdW1iZXIiPgorICAgICAgICAgICAgICAgICAgQnVnemlsbGEgcmVwb3J0czwvYT4gd2hpY2ggaW5jbHVkZSBhIHdvcmtpbmcgcGF0Y2ggbXVzdCBiZSAiUmVzb2x2ZWQiIHdpdGggYW55IG9mIHRoZSBsZWdhbCBCdWd6aWxsYQorICAgICAgICAgICAgICAgICAgcmVzb2x1dGlvbnMgKEZJWEVELCBJTlZBTElELCBXT05URklYLCBMQVRFUiwgUkVNSU5ELCBXT1JLU0ZPUk1FKS4KKyAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZyByZXBvcnRzIHdpdGggcGF0Y2hlcyB0aGF0IGFyZSByZXNvbHZlZCBhcyBMQVRFUiBvciBSRU1JTkQgc2hhbGwgaW5jbHVkZSBhbiBleHBsYW5hdGlvbiBhcworICAgICAgICAgICAgICAgICAgICAgICAgICB0byB3aHkgdGhlIHBhdGNoIHNob3VsZCBiZSBhcHBsaWVkIGluIGEgbGF0ZXIgcmVsZWFzZS4KKyAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgPHN0cm9uZz5UZXN0IGV4YW1wbGUgYXBwbGljYXRpb25zLjwvc3Ryb25nPgorICAgICAgICAgICAgICAgICAgQWxsIGV4YW1wbGUgYXBwbGljYXRpb25zIGluY2x1ZGVkIHdpdGggdGhlIHJlbGVhc2Ugc2hhbGwgb3BlcmF0ZSBzdWNjZXNzZnVsbHkgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgICBSZWZlcmVuY2UgSW1wbGVtZW50YXRpb24gY29udGFpbmVycyBmb3IgdGhlIFNlcnZsZXQvSlNQIHNwZWNpZmljYXRpb25zIHN1cHBvcnRlZCBieSB0aGUgcmVsZWFzZS4KKyAgICAgICAgICAgICAgICAgIEluIHRoZSBjYXNlIG9mIGEgU3RydXRzIDEueC54IHJlbGVhc2UsIHRoZXNlIGNvbnRhaW5lcnMgYXJlOgorICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgVG9tY2F0IDMuMyAoU2VydmxldC9KU1AgMi4yLzEuMSBSZWZlcmVuY2UgSW1wbGVtZW50YXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgIFRvbWNhdCA0LjEgKFNlcnZsZXQvSlNQIDIuMy8xLjIgUmVmZXJlbmNlIEltcGxlbWVudGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgICAgICAgIFRoZSBiZXN0IGF2YWlsYWJsZSB2ZXJzaW9uIG9mIGVhY2ggY29udGFpbmVyIHNoYWxsIGJlIHVzZWQsIGFzIGRvY3VtZW50ZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy90b21jYXQiPlRvbWNhdCB3ZWJzaXRlPC9hPiBhdCB0aGUgdGltZSB0aGUgdGVzdCBpcyBjb25kdWN0ZWQuCisgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgIDxzdHJvbmc+VXBkYXRlIFJlbGVhc2UgTm90ZXMuPC9zdHJvbmc+IFRoZSBSZWxlYXNlIE5vdGVzIGZvciB0aGUgZGlzdHJpYnV0aW9uIHNoYWxsIGJlIHVwZGF0ZWQgdG8gc3VtbWFyaXplIGFueQorICAgICAgICAgICAgICAgICAgc3Vic3RhbnRpYWwgY2hhbmdlcyBhbmQgaW1wcm92ZW1lbnRzIHNpbmNlIHRoZSBwcmlvciByZWxlYXNlLCBpbmNsdWRpbmcgdXBkYXRlcyB0byBidW5kbGVkCisgICAgICAgICAgICAgICAgICBkb2N1bWVudGF0aW9uIGFuZCBleGFtcGxlIGFwcGxpY2F0aW9ucy4KKyAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIDwvdWw+CisgICAgICA8L3NlY3Rpb24+CisKKyAgICAgIDxzZWN0aW9uIG5hbWU9Ik1pbm9yIFJlbGVhc2UgQ3JpdGVyaWEiIGhyZWY9Im1pbm9yIj4KKyAgICAgICAgICA8cD4KKyAgICAgICAgICAgIFByaW9yIHRvIGFuIGluaXRpYWwgPHN0cm9uZz5TdHJ1dHMgbWlub3IgcmVsZWFzZTwvc3Ryb25nPiAoIy4jLjApLCB0aGUgZm9sbG93aW5nIGFjdGlvbiBpdGVtcyBtdXN0IGJlIGNvbXBsZXRlZDoKKyAgICAgICAgICA8L3A+CisKKyAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgIDxzdHJvbmc+UmV2aWV3IHBlbmRpbmcgaXNzdWVzLjwvc3Ryb25nPgorICAgICAgICAgICAgICAgICAgQWxsIHJlbGV2YW50CisgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvYnVnbGlzdC5jZ2k/YnVnX3N0YXR1cz1SRVNPTFZFRCZhbXA7cmVzb2x1dGlvbj1MQVRFUiZhbXA7cmVzb2x1dGlvbj1SRU1JTkQmYW1wO2VtYWlsMT0mYW1wO2VtYWlsdHlwZTE9c3Vic3RyaW5nJmFtcDtlbWFpbGFzc2lnbmVkX3RvMT0xJmFtcDtlbWFpbDI9JmFtcDtlbWFpbHR5cGUyPXN1YnN0cmluZyZhbXA7ZW1haWxyZXBvcnRlcjI9MSZhbXA7YnVnaWR0eXBlPWluY2x1ZGUmYW1wO2J1Z19pZD0mYW1wO2NoYW5nZWRpbj0mYW1wO3ZvdGVzPSZhbXA7Y2hmaWVsZGZyb209JmFtcDtjaGZpZWxkdG89Tm93JmFtcDtjaGZpZWxkdmFsdWU9JmFtcDtwcm9kdWN0PVN0cnV0cyZhbXA7c2hvcnRfZGVzYz0mYW1wO3Nob3J0X2Rlc2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZhbXA7bG9uZ19kZXNjPSZhbXA7bG9uZ19kZXNjX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2J1Z19maWxlX2xvYz0mYW1wO2J1Z19maWxlX2xvY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtrZXl3b3Jkcz0mYW1wO2tleXdvcmRzX3R5cGU9YW55d29yZHMmYW1wO2ZpZWxkMC0wLTA9bm9vcCZhbXA7dHlwZTAtMC0wPW5vb3AmYW1wO3ZhbHVlMC0wLTA9JmFtcDtjbWR0eXBlPWRvaXQmYW1wO29yZGVyPUJ1ZytOdW1iZXIiPgorICAgICAgICAgICAgICAgICAgQnVnemlsbGEgcmVwb3J0cyBtYXJrZWQgIlJlc29sdmVkIiB3aXRoIHRoZSBSZXNvbHV0aW9ucyBMQVRFUiBvciBSRU1JTkQ8L2E+IHNoYWxsIGJlIHJldmlld2VkIHRvCisgICAgICAgICAgICAgICAgICBlbnN1cmUgdGhhdCBwZW5kaW5nIGlzc3VlcyBoYXZlIGJlZW4gYWRkcmVzc2VkIHByaW9yIHRvIHRoZSByZWxlYXNlLgorICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICA8c3Ryb25nPlJldmlldyBwZW5kaW5nIGVuaGFuY2VtZW50cy48L3N0cm9uZz4KKyAgICAgICAgICAgICAgICAgIEFsbCByZWxldmFudAorICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL2J1Z2xpc3QuY2dpP2J1Z19zdGF0dXM9TkVXJmFtcDtidWdfc3RhdHVzPUFTU0lHTkVEJmFtcDtidWdfc3RhdHVzPVJFT1BFTkVEJmFtcDtidWdfc3RhdHVzPVZFUklGSUVEJmFtcDtidWdfc2V2ZXJpdHk9RW5oYW5jZW1lbnQmYW1wO2VtYWlsMT0mYW1wO2VtYWlsdHlwZTE9c3Vic3RyaW5nJmFtcDtlbWFpbGFzc2lnbmVkX3RvMT0xJmFtcDtlbWFpbDI9JmFtcDtlbWFpbHR5cGUyPXN1YnN0cmluZyZhbXA7ZW1haWxyZXBvcnRlcjI9MSZhbXA7YnVnaWR0eXBlPWluY2x1ZGUmYW1wO2J1Z19pZD0mYW1wO2NoYW5nZWRpbj0mYW1wO3ZvdGVzPSZhbXA7Y2hmaWVsZGZyb209JmFtcDtjaGZpZWxkdG89Tm93JmFtcDtjaGZpZWxkdmFsdWU9JmFtcDtwcm9kdWN0PVN0cnV0cyZhbXA7c2hvcnRfZGVzYz0mYW1wO3Nob3J0X2Rlc2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZhbXA7bG9uZ19kZXNjPSZhbXA7bG9uZ19kZXNjX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2J1Z19maWxlX2xvYz0mYW1wO2J1Z19maWxlX2xvY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtrZXl3b3Jkcz0mYW1wO2tleXdvcmRzX3R5cGU9YW55d29yZHMmYW1wO2ZpZWxkMC0wLTA9bm9vcCZhbXA7dHlwZTAtMC0wPW5vb3AmYW1wO3ZhbHVlMC0wLTA9JmFtcDtjbWR0eXBlPWRvaXQmYW1wO29yZGVyPUJ1ZytOdW1iZXIiPgorICAgICAgICAgICAgICAgICAgQnVnemlsbGEgcmVwb3J0cyBtYXJrZWQgIkVuaGFuY2VtZW50IjwvYT4gc2hhbGwgYmUgcmV2aWV3ZWQgYnkgdGhlIFJlbGVhc2UgTWFuYWdlciB0byBlbnN1cmUgdGhhdAorICAgICAgICAgICAgICAgICAgYWxsIHN1aXRhYmxlIGVuaGFuY2VtZW50cyBoYXZlIGJlZW4gbWFkZSBwcmlvciB0byB0aGUgcmVsZWFzZS4KKyAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgPHN0cm9uZz5SZXNvbHZlIG5ldyBpc3N1ZXMuPC9zdHJvbmc+CisgIAkgICAgICAgICAgICAgIEFsbCByZWxldmFudAorCSAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL2J1Z2xpc3QuY2dpP2J1Z19zdGF0dXM9TkVXJmFtcDtidWdfc3RhdHVzPUFTU0lHTkVEJmFtcDtidWdfc3RhdHVzPVJFT1BFTkVEJmFtcDtidWdfc3RhdHVzPVZFUklGSUVEJmFtcDtidWdfc2V2ZXJpdHk9QmxvY2tlciZhbXA7YnVnX3NldmVyaXR5PUNyaXRpY2FsJmFtcDtidWdfc2V2ZXJpdHk9TWFqb3ImYW1wO2J1Z19zZXZlcml0eT1Ob3JtYWwmYW1wO2J1Z19zZXZlcml0eT1NaW5vciZhbXA7ZW1haWwxPSZhbXA7ZW1haWx0eXBlMT1zdWJzdHJpbmcmYW1wO2VtYWlsYXNzaWduZWRfdG8xPTEmYW1wO2VtYWlsMj0mYW1wO2VtYWlsdHlwZTI9c3Vic3RyaW5nJmFtcDtlbWFpbHJlcG9ydGVyMj0xJmFtcDtidWdpZHR5cGU9aW5jbHVkZSZhbXA7YnVnX2lkPSZhbXA7Y2hhbmdlZGluPSZhbXA7dm90ZXM9JmFtcDtjaGZpZWxkZnJvbT0mYW1wO2NoZmllbGR0bz1Ob3cmYW1wO2NoZmllbGR2YWx1ZT0mYW1wO3Byb2R1Y3Q9U3RydXRzJmFtcDtzaG9ydF9kZXNjPSZhbXA7c2hvcnRfZGVzY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtsb25nX2Rlc2M9JmFtcDtsb25nX2Rlc2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZhbXA7YnVnX2ZpbGVfbG9jPSZhbXA7YnVnX2ZpbGVfbG9jX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2tleXdvcmRzPSZhbXA7a2V5d29yZHNfdHlwZT1hbnl3b3JkcyZhbXA7ZmllbGQwLTAtMD1ub29wJmFtcDt0eXBlMC0wLTA9bm9vcCZhbXA7dmFsdWUwLTAtMD0mYW1wO2NtZHR5cGU9ZG9pdCZhbXA7b3JkZXI9QnVnK051bWJlciI+CisJICAgICAgICAgICAgICBCdWd6aWxsYSB0aWNrZXRzPC9hPiBNVVNUIGJlIG1hcmtlZCBhcyAiRW5oYW5jZW1lbnQiIG9yICJSZXNvbHZlZCIgd2l0aCBhbnkKKwkgICAgICAgICAgICAgIG9mIHRoZSBsZWdhbCBCdWd6aWxsYSByZXNvbHV0aW9ucyAoRklYRUQsIElOVkFMSUQsIFdPTlRGSVgsIExBVEVSLCBSRU1JTkQsIFdPUktTRk9STUUpLgorICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgQnVnIHJlcG9ydHMgdGhhdCBhcmUgcmVzb2x2ZWQgYXMgTEFURVIgb3IgUkVNSU5EIHdpbGwgaW5jbHVkZSBjb21tZW50cyBhcyB0byB3aGV0aGVyIHRob3NlCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmljIGlzc3VlcyB3aWxsIGJlIGRlYWx0IHdpdGggaW4gYSBmb3J0aGNvbWluZyBtaW5vciByZWxlYXNlIG9yIHdoZXRoZXIgdGhleSB3aWxsIGJlCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNpZGVyZWQgaW4gYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4KKyAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICBBIE1ham9yaXR5IFZvdGUgc2hhbGwgdGFrZSBwbGFjZSBvbiB0aGUgPGVtPnN0cnV0cy1kZXY8L2VtPiBtYWlsaW5nIGxpc3QgdG8gYXBwcm92ZSBhIHJlbGVhc2UgcGxhbgorICAgICAgICAgICAgICAgICAgZm9yIHRoZSBpbml0aWFsIG1pbm9yIHJlbGVhc2UuCisgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPC91bD4KKyAgICA8L3NlY3Rpb24+CisKKyAgICA8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvcG9zYWxzL3N0cnV0cy1mYWNlcy54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9wb3NhbHMvc3RydXRzLWZhY2VzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTNiMTMzCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvcG9zYWxzL3N0cnV0cy1mYWNlcy54bWwKQEAgLTAsMCArMSwzMDAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0iLi9zdHJ1dHMtZmFjZXMtMS54bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5BYm91dCBTdHJ1dHMgYW5kIEphdmFTZXJ2ZXIgRmFjZXMgW2ZvcndhcmQtbG9va2luZ108L3RpdGxlPgorICA8L3Byb3BlcnRpZXM+CisKKyAgPGJvZHk+CisKKzxzZWN0aW9uIG5hbWU9ImJhY2tncm91bmQiIGhyZWY9IkJhY2tncm91bmQiPgorPHA+CitbMTgtU2VwLTIwMDJdIEphdmFTZXJ2ZXIgRmFjZXMgKEpTRikgaXMgYmVpbmcgZGV2ZWxvcGVkIGFzIEpTUiAxMjcgdW5kZXIgdGhlIEphdmEKK0NvbW11bml0eSBQcm9jZXNzLCB3aXRoIHRoZSBnb2FsIG9mIGNyZWF0aW5nIGEgc3RhbmRhcmQgZnJhbWV3b3JrIGZvciB1c2VyCitpbnRlcmZhY2UgY29tcG9uZW50cyB0byBiZSB1c2VkIGluIHdlYiBhcHBsaWNhdGlvbnMuICBJbmNsdWRlZCB3aWxsIGJlIHRoZQorZm9sbG93aW5nIGJhc2ljIGZlYXR1cmVzOgorPC9wPgorCis8dWw+Cis8bGk+CisgIFVzZXIgaW50ZXJmYWNlIGNvbXBvbmVudCBtb2RlbAorPC9saT4KKworPGxpPgorICBFdmVudCBoYW5kbGluZyBtb2RlbAorPC9saT4KKworPGxpPgorICBWYWxpZGF0aW9uIGZyYW1ld29yaworPC9saT4KKworPGxpPgorICBGbGV4aWJsZSByZW5kZXJpbmcgbW9kZWwgKHBsdWdpbiBzdXBwb3J0IGZvciByZW5kZXJpbmcgZGlmZmVyZW50CisgIGtpbmRzIG9mIEhUTUwsIG9yIGRpZmZlcmVudCBtYXJrdXAgbGFuZ3VhZ2VzIGFuZCB0ZWNobm9sb2dpZXMpCis8L2xpPgorCis8bGk+CisgIEEgc3RhbmRhcmQgUmVuZGVyS2l0IChhbmQgYXNzb2NpYXRlZCBSZW5kZXJlcnMpIGZvciBnZW5lcmF0aW5nIGJhc2ljCisgIEhUTUwvNC4wMSBtYXJrdXAuICBUaGlzIGxpYnJhcnkgaXMgcHJpbWFyaWx5IGZvciBtYWtpbmcgSlNGIHVzZWZ1bAorICBvdXQgb2YgdGhlIGJveCwgYW5kIGFsbG93IGFwcHMgdG8gYmUgcG9ydGFibGUgYWNyb3NzIEpTRgorICBpbXBsZW1lbnRhdGlvbnMuICBIb3dldmVyLCB3ZSBleHBlY3QgYSBsb3Qgb2YgaW5ub3ZhdGlvbiBpbiB0aGlzCisgIGFyZWEgYW1vbmcgY29tcGV0aW5nIEpTRiBpbXBsZW1lbnRhdGlvbnMuCis8L2xpPgorPC91bD4KKworPHA+CitBbGwgb2YgdGhlIGFib3ZlIGZ1bmN0aW9uYWxpdHkgaXMgYXZhaWxhYmxlIHZpYSBzdGFuZGFyZCBKYXZhIEFQSXMsIGFuZCBpcwordGh1cyBub3QgdGllZCB0byBKYXZhU2VydmVyIFBhZ2VzIChKU1ApLiAgSG93ZXZlciwgYmVjYXVzZSBhIGxhcmdlCittYWpvcml0eSBvZiBKU0YgdXNlcnMgd2lsbCBhbHNvIGJlIHVzaW5nIEpTUCwgYW4gYWRkaXRpb25hbCBzZXQgb2YKK3JlcXVpcmVtZW50cyBpcyBpbmNsdWRlZCBpbiB0aGUgSlNGIHNwZWNpZmljYXRpb24sIGluY2x1ZGluZzoKKzwvcD4KKworPHVsPgorPGxpPgorICBBIHN0YW5kYXJkIHRhZyBsaWJyYXJ5IGZvciBnZW5lcmljIHRoaW5ncyB0aGF0IGFyZSBpbmRlcGVuZGVudCBvZgorICB0aGUgc3BlY2lmaWMgUmVuZGVyS2l0IGluIHVzZSAoc3VjaCBhcyBhZGRpbmcgYSB2YWxpZGF0b3IgdG8gYQorICBjb21wb25lbnQpLgorPC9saT4KKworPGxpPgorICBBIHN0YW5kYXJkIHRhZyBsaWJyYXJ5IGZvciB0aGUgYmFzaWMgSFRNTCBSZW5kZXJLaXQsIHdpdGggYSB0YWcgZm9yCisgIGVhY2ggY29tYmluYXRpb24gb2YgYSBjb21wb25lbnQgdHlwZSBhbmQgYSBtZXRob2Qgb2YgcmVuZGVyaW5nIHRoYXQKKyAgY29tcG9uZW50IHR5cGUuICBBbiBleGFtcGxlIHdpbGwgbWFrZSB0aGlzIGNsZWFyZXIgLS0gY29uc2lkZXIgdGhlCisgIFVJU2VsZWN0T25lIGNvbXBvbmVudCwgd2hpY2ggcmVwcmVzZW50cyBhIGxpc3Qgb2Ygb3B0aW9ucywgYW5kIGFsbG93cworICBvbmx5IGEgc2luZ2xlIG9wdGlvbiBmcm9tIHRoZSBsaXN0IHRvIGJlIHNlbGVjdGVkLiAgU3VjaCBhIGNvbXBvbmVudAorICBjYW4gYmUgcmVuZGVyZWQgaW4gdGhyZWUgZGlmZmVyZW50IHdheXMgKGluIHRoZSBiYXNpYyBIVE1MIFJlbmRlcktpdCksCisgIGVhY2ggd2l0aCBhIGRpZmZlcmVudCBSZW5kZXJlciBhbmQgYSBjb3JyZXNwb25kaW5nIGN1c3RvbSB0YWc6PGJyLz4KKworICAmbHQ7aDpzZWxlY3RvbmVfbGlzdGJveD4gLSBEaXNwbGF5IGEgbGlzdCBvZiBhbGwgdGhlIHBvc3NpYmxlCisgIG9wdGlvbnMgKGV4cGFuZGluZyB0aGUgYm94IHRvIGluY2x1ZGUgYWxsIG9mIHRoZW0gc28gdGhhdCBubyBzY3JvbGxiYXIKKyAgaXMgcmVxdWlyZWQpLjxici8+CisKKyAgJmx0O2g6c2VsZWN0b25lX21lbnU+IC0gIERpc3BsYXkgYXMgYSBjb21ibyBib3ggKHRoZSB0cmFkaXRpb25hbCBIVE1MCisgICZsdDtzZWxlY3Q+IGVsZW1lbnQgd2l0aCBzaXplPSIxIikuPGJyLz4KKworICAmbHQ7aDpzZWxlY3RvbmVfcmFkaW8+IC0gRGlzcGxheSBhcyBhIHNldCBvZiByYWRpbyBidXR0b25zIGFuZAorICBjb3JyZXNwb25kaW5nIGxhYmVscy4KKzwvbGk+Cis8L3VsPgorCis8cD4KK05vdGUgdGhhdCB0aGUgYXBwbGljYXRpb24gZGV2ZWxvcGVyIGRvZXNuJ3Qga25vdyBvciBjYXJlIHdoaWNoIG1lY2hhbmlzbQord2FzIHVzZWQgdG8gZGlzcGxheSB0aGlzIGNvbXBvbmVudCAtLSB0aGF0J3MgdXAgdG8gdGhlIHBhZ2UgYXV0aG9yLCB3aG8KK3dpbGwgcGljayB0aGUgZGVzaXJlZCByZXByZXNlbnRhdGlvbiBieSB2aXJ0dWUgb2Ygd2hpY2ggdGFnIGhlIG9yIHNoZQorc2VsZWN0cyAoYXQgdGhlIEphdmEgQVBJIGxldmVsLCB5b3UgbWFrZSB0aGlzIGNob2ljZSBieSBzZXR0aW5nIHRoZQorInJlbmRlcmVyVHlwZSIgcHJvcGVydHkgb24gdGhlIGNvbXBvbmVudCBpbnN0YW5jZSkuICBUaGlzIGlzIG9uZSBvZiB0aGUKK21hbnkgYWR2YW5jZXMgdGhhdCBKU0YgcHJvdmlkZXMgb3ZlciBTdHJ1dHMgdGFncywgd2hlcmUgdGhlcmUgaXMgb25lIGFuZAorb25seSBvbmUgd2F5IHRvIHJlbmRlciBlYWNoIGluZGl2aWR1YWwgZWxlbWVudC4KKzwvcD4KKworPHA+CitUaGVyZSBhcmUgYWxzbyBwcm92aXNpb25zIGZvciBjcmVhdGluZyBtb3JlIGNvbXBsZXggY29tcG9uZW50cyBsaWtlIGdyaWRzLAordHJlZSBjb250cm9scywgYW5kIHRoZSBsaWtlIC0tIGEgY29tbW9uIHRoZW1lIHlvdSB3aWxsIHNlZSBpcyAiY29tcG9zZQorY29tcGxleCB0aGluZ3Mgb3V0IG9mIGxpdHRsZSB0aGluZ3MiIC0tIHRoYXQgaXMgYWNjb21wbGlzaGVkIGluIEpTUCBieQorbmVzdGluZyBjb21wb25lbnQgdGFncyBpbnNpZGUgZWFjaCBvdGhlciwganVzdCBsaWtlIHlvdSBuZXN0IEhUTUwgJmx0O2lucHV0PgorZWxlbWVudHMgaW5zaWRlIGEgJmx0O2Zvcm0+IGVsZW1lbnQuCis8L3A+CisKKzxwPgorRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgSmF2YVNlcnZlciBGYWNlcywgYW5kIGFuIGVhcmx5IGFjY2VzcyBkcmFmdCBvZgordGhlIHNwZWNpZmljYXRpb24gKGFuZCBhbiBlYXJseSBhY2Nlc3MgdmVyc2lvbiBvZiB0aGUgUkkgdGhhdCBjb3JyZXNwb25kcwordG8gYW4gZXZlbiBlYXJsaWVyIGRyYWZ0IG9mIHRoZSBzcGVjKSwgeW91J2xsIHdhbnQgdG8gYm9va21hcms6Cis8L3A+CisKKzxwPgorICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyZWUvamF2YXNlcnZlcmZhY2VzLyI+aHR0cDovL2phdmEuc3VuLmNvbS9qMmVlL2phdmFzZXJ2ZXJmYWNlcy88L2E+Cis8L3A+CisKKzxwPgorSW4gYWRkaXRpb24sIHRoZXJlIGlzIGEgZm9ydW0gb24gdGhlIEphdmEgRGV2ZWxvcGVyIENvbm5lY3Rpb24gKGZyZWUKK3JlZ2lzdHJhdGlvbiByZXF1aXJlZCkgZm9jdXNlZCBvbiBKYXZhU2VydmVyIEZhY2VzLCBzbyBwbGVhc2UgYXNrIHlvdXIKK2dlbmVyYWwgRmFjZXMtcmVsYXRlZCBxdWVzdGlvbnMgdGhlcmUgaW5zdGVhZCBvZiBoZXJlLiAgSGVyZSdzIGEgZGlyZWN0CitsaW5rIHRvIHRoZSBmb3J1bSBwYWdlOgorPC9wPgorCis8cD4KKyAgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9qMmVlL2phdmFzZXJ2ZXJmYWNlcy8iPmh0dHA6Ly9mb3J1bXMuamF2YS5zdW4uY29tL2ZvcnVtLmpzcD9mb3J1bT00Mjc8L2E+Cis8L3A+CisKKzxwPgorTm90ZSB0aGF0IEphdmFTZXJ2ZXIgRmFjZXMgZGVwZW5kcyBvbiBTZXJ2bGV0IDIuMyBhbmQgSlNQIDEuMiAoaS5lLiBKMkVFCisxLjMgY29udGFpbmVycykuCis8L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9InN0cnV0cyIgbmFtZT0iSG93IGRvZXMgdGhpcyBhZmZlY3QgU3RydXRzPyI+Cis8cD4KK0F0IGZpcnN0IGdsYW5jZSwgdGhlIGxvdyBsZXZlbCBjb21wb25lbnRzIHNvdW5kIGEgbG90IGxpa2UgdGhlIHN0cnV0cy1odG1sCit0YWcgbGlicmFyeSB0aGF0IFN0cnV0cyB1c2VycyBrbm93IGFuZCBsb3ZlLiAgSW5kZWVkLCB0aGVyZSBpcyBhIHZlcnkKK3N1YnN0YW50aWFsIGFtb3VudCBvZiBvdmVybGFwLiAgU28sIHdoYXQncyBnb2luZyB0byBoYXBwZW4/Cis8L3A+CisKKzxwPgorSW4gbXkgSmF2YU9uZSBCT0Ygb24gU3RydXRzIChNYXJjaCwgMjAwMiksIEkgbWFkZSB0aGUgc3RhdGVtZW50IHRoYXQKK1N0cnV0cyB3b3VsZCBoYXZlIGEgdmVyeSBjbGVhbiBpbnRlZ3JhdGlvbiB3aXRoIEpTRiwgc28gdGhhdCB5b3UgY2FuIHVzZQorSlNGIGNvbXBvbmVudHMgaW4geW91ciB1c2VyIGludGVyZmFjZSwgYnV0IGNvbnRpbnVlIHRvIHVzZSB0aGUgY29udHJvbGxlciwKK0FjdGlvbnMsIGFuZCBhc3NvY2lhdGVkIGJ1c2luZXNzIGxvZ2ljLiAgSW5kZWVkLCBJIHN0YXRlZCB0aGF0IGl0IHdpbGwgYmUKK3Bvc3NpYmxlIHRvIHRyYW5zaXRpb24geW91ciBhcHBsaWNhdGlvbiBmcm9tIHVzaW5nIFN0cnV0cyBIVE1MIHRhZ3MgdG8KK3VzaW5nIEZhY2VzIGNvbXBvbmVudCB0YWdzLCBvbmUgcGFnZSBhdCBhIHRpbWUgLS0gaW4gbW9zdCBjYXNlcywgd2l0aCB6ZXJvCitjaGFuZ2VzIHRvIHRoZSBidXNpbmVzcyBsb2dpYyBvciBBY3Rpb24gY2xhc3NlcyBhbmQgbWluaW1hbCBjaGFuZ2VzIHRvIHRoZQorJmx0O2ZvcndhcmQ+IGVsZW1lbnRzIGluIHlvdXIgc3RydXRzLWNvbmZpZy54bWwgY29uZmlndXJhdGlvbiBmaWxlLgorPC9wPgorCis8cD4KK0Fsb25nIHdpdGggZGV2ZWxvcGluZyBKYXZhU2VydmVyIEZhY2VzIGl0c2VsZiAoSSBhbSB0aGUgc3BlY2lmaWNhdGlvbiBsZWFkCitmb3IgSlNSLTEyNyksIEkgaGF2ZSBiZWVuIHdvcmtpbmcgb24ganVzdCBzdWNoIGFuIGludGVncmF0aW9uIGxpYnJhcnkgZm9yCitTdHJ1dHMgKDEuMSBvbmx5OyBzb3JyeSBpbiBhZHZhbmNlIHRvIDEuMCB1c2VycykuICBXaGlsZSBub3QgY29tcGxldGVkCit5ZXQsIGl0IGlzIGNsZWFyIHRoYXQgdGhlIGdvYWxzIHN0YXRlZCBpbiB0aGUgcHJldmlvdXMgcGFyYWdyYXBoIGFyZQorYWNoaWV2YWJsZSB3aXRoIHRoZSBjdXJyZW50IGV2b2x2aW5nIGRlc2lnbiBvZiBKU0YuICBXaGlsZSB0aGluZ3MgY2FuCithbHdheXMgY2hhbmdlIGluIHRoZSBmdXR1cmUsIG1hbnkgSlNSLTEyNyBleHBlcnQgZ3JvdXAgbWVtYmVycyBjb25zaWRlcgoraGlnaCBxdWFsaXR5IGludGVncmF0aW9uIHdpdGggU3RydXRzIHRvIGJlIGFuIGltcG9ydGFudCBzdWNjZXNzIGZhY3RvciBmb3IKK0phdmFTZXJ2ZXIgRmFjZXMgdG8gYmUgYWNjZXB0ZWQuICBUaGVyZWZvcmUsIEkgZG8gbm90IGV4cGVjdCB0aGF0IEpTRiB3aWxsCitldm9sdmUgaW4gd2F5cyB0aGF0IG1ha2UgdGhpcyBraW5kIG9mIGludGVncmF0aW9uIGRpZmZpY3VsdCBvciBpbXBvc3NpYmxlLgorPC9wPgorCis8cD4KK0Zyb20gdGhlIGRldmVsb3BlcidzIHBlcnNwZWN0aXZlLCB5b3Ugd2lsbCBuZWVkIHRvIGRvIG9ubHkgdGhlIGZvbGxvd2luZwordG8gc3RhcnQgdXNpbmcgSlNGIGNvbXBvbmVudHMgaW4geW91ciBwYWdlczoKKzwvcD4KKworPHVsPgorPGxpPgorICBBZGQgYSBuZXcgc3RydXRzLWZhY2VzLmphciBmaWxlLCBhbmQgdGhlIEpBUiBmaWxlcyBmb3IgYW4KKyAgYXBwcm9wcmlhdGUgSlNGIGltcGxlbWVudGF0aW9uLCB0byB5b3VyIC9XRUItSU5GL2xpYiBkaXJlY3RvcnkuCis8L2xpPgorCis8bGk+CisgIE5vdGUgdGhhdCBKU0YgYW5kIHRoZSBKU1AgU3RhbmRhcmQgVGFnIExpYnJhcnkgKEpTVEwpIGludGVyb3BlcmF0ZQorICB2ZXJ5IG5pY2VseSwgc28geW91IHdpbGwgYWxzbyBiZSBhYmxlIHRvIHVzZSBKU1RMIHRhZ3MgaW4geW91cgorICBuZXcgcGFnZXMgaWYgeW91IHdpc2ggdG8uCis8L2xpPgorCis8bGk+CisgIEFkZCBhIGNvdXBsZSBvZiBlbGVtZW50cyB0byB5b3VyIHdlYi54bWwgZGVwbG95bWVudCBkZXNjcmlwdG9yLAorICBjb3JyZXNwb25kaW5nIHRvIHRoZSByZXF1aXJlbWVudHMgb3V0bGluZWQgaW4gQ2hhcHRlciA5IG9mIHRoZQorICBKU0Ygc3BlY2lmaWNhdGlvbi4KKzwvbGk+CisKKzxsaT4KKyAgVHJhbnNpdGlvbiBvbmUgcGFnZSBhdCBhIHRpbWUgdG8gdXNlIHRoZSBuZXcgdGFnIGxpYnJhcmllcywKKyAgbWFraW5nIGFuIGFwcHJvcHJpYXRlIG1vZGlmaWNhdGlvbiB0byB0aGUgJmx0O2ZvcndhcmQ+IGVsZW1lbnRzCisgIGZvciB5b3VyIHBhZ2VzICh0aGUgVVJMIG5lZWRzIHRvIGNoYW5nZSB0byBtZWV0IEZhY2VzIHJlcXVpcmVtZW50cykuCis8L2xpPgorPC91bD4KKworPHA+CitUaGUgaW50ZWdyYXRpb24gbGlicmFyeSB3aWxsIGJlIGF2YWlsYWJsZSBhcyBhIHNlcGFyYXRlbHkgcGFja2FnZWQKK2Rvd25sb2FkIHRoYXQgcnVucyB3aXRoIFN0cnV0cyAxLjEsIGFuZCB3aWxsIGluY2x1ZGUgYSBjb252ZXJ0ZWQgY29weSBvZgordGhlIGNhbm9uaWNhbCBzdHJ1dHMtZXhhbXBsZSB3ZWIgYXBwbGljYXRpb24gc28gdGhhdCB5b3UgY2FuIHNlZSBleGFjdGx5Cit3aGF0IGhhZCB0byBjaGFuZ2UgaW4gb3JkZXIgdG8gdXNlIFN0cnV0cyB3aXRoIEpTRi4KKzwvcD4KKworPHA+CitCZXNpZGVzIHRoZSBpbnRlZ3JhdGlvbiBjbGFzc2VzIHRoZW1zZWx2ZXMgKHByaW1hcmlseSBhbiBpbXBsZW1lbnRhdGlvbiBvZgordGhlIEpTRiBBcHBsaWNhdGlvbkhhbmRsZXIgQVBJKSwgdGhlIGxpYnJhcnkgd2lsbCBpbmNsdWRlIHNvbWUKK1N0cnV0cy1mbGF2b3JlZCBjb21wb25lbnRzIGFuZCByZW5kZXJlcnMgdGhhdCBwcm92aWRlIGZ1bmN0aW9uYWxpdHkKK3NpbWlsYXIgdG8gdGhhdCBwcm92aWRlZCBieSB0aGUgZXhpc3Rpbmcgc3RydXRzLWh0bWwgdGFncywgd2hlbiB0aGlzIGlzCitub3QgcHJvdmlkZWQgYnkgdGhlIHN0YW5kYXJkIEpTRiBjb21wb25lbnRzLiAgRm9yIGV4YW1wbGUsIHRoZXJlIHdpbGwgYmUgYQorU3RydXRzIHZlcnNpb24gb2YgdGhlIFVJRm9ybSBjb21wb25lbnQgdGhhdCBhY2NlcHRzIGFuICJhY3Rpb24iIGF0dHJpYnV0ZQordGhhdCBsb29rcyB1cCB0aGUgY29ycmVzcG9uZGluZyBhY3Rpb24gbWFwcGluZywgYW5kIGNyZWF0ZXMgdGhlIGZvcm0gYmVhbgorYXMgbmVlZGVkLCBqdXN0IGxpa2UgdGhlICZsdDtodG1sOmZvcm0+IHRhZyBkb2VzIHRvZGF5LgorPC9wPgorCis8cD4KK1RoZSBnb29kIG5ld3MgLS0gZGV2ZWxvcG1lbnQgb2YgdGhpcyBpbnRlZ3JhdGlvbiBsaWJyYXJ5IGlzIHdlbGwgdW5kZXIKK3dheS4KKzwvcD4KKworPHA+CitUaGUgYmFkIG5ld3MgLS0geW91IGNhbid0IHNlZSBpdCBxdWl0ZSB5ZXQuICBUaGlzIGlzIHByaW1hcmlseSBiZWNhdXNlIGl0CityZWxpZXMgb24gY2hhbmdlcyB0byBKU0YgdGhhdCBoYXZlIG9jY3VycmVkIHNpbmNlIHRoZSBlYXJseSBhY2Nlc3MgcmVsZWFzZQorb2YgdGhlIFJJIHdhcyBwdWJsaXNoZWQsIHNvIHlvdSB3b3VsZG4ndCBiZSBhYmxlIHRvIHVzZSBpdCBhbnl3YXkuCitIb3dldmVyLCBhcyBzb29uIGFzIGl0IGlzIGZlYXNpYmxlLCB0aGlzIGxpYnJhcnkgd2lsbCBiZSBhZGRlZCB0byB0aGUKKyJjb250cmliIiBmb2xkZXIgb2YgU3RydXRzLCB3aXRoIHRoZSBzb3VyY2VzIChhbmQgZG93bmxvYWRhYmxlCitkaXN0cmlidXRpb25zKSBhdmFpbGFibGUgdW5kZXIgdGhlIHVzdWFsIEFwYWNoZSBsaWNlbnNlIHRlcm1zLiAgKFRoZQorc291cmNlIGNvZGUgd2lsbCBhbHNvIGdpdmUgeW91IGEgaGVhZCBzdGFydCBhdCBjcmVhdGluZyB5b3VyIG93biBKU0YKK2NvbXBvbmVudHMsIHRvbykuCis8L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9ImNob2ljZXMiIG5hbWU9IlNvIHdoYXQgdXNlciBpbnRlcmZhY2UgdGVjaG5vbG9neSBzaG91bGQgaSBjaG9vc2U/Ij4KKzxwPgorRXZlcnlvbmUncyBmdW5jdGlvbmFsaXR5IGFuZCBzY2hlZHVsZSByZXF1aXJlbWVudHMgYXJlIGRpZmZlcmVudC4KK0hvd2V2ZXIsIHRoZSBmb2xsb3dpbmcgcG9pbnRzIHN1bW1hcml6ZSBteSBiYXNpYyByZWNvbW1lbmRhdGlvbnMgYW5kCit0aG91Z2h0cyBhYm91dCB0aGUgZnV0dXJlOgorPC9wPgorCis8dWw+Cis8bGk+SWYgeW91IGhhdmUgZXhpc3RpbmcgU3RydXRzLWJhc2VkIGFwcGxpY2F0aW9ucyB0aGF0IHVzZSB0aGUgZXhpc3RpbmcKKyAgSFRNTCB0YWcgbGlicmFyeSwgZmVlbCBmcmVlIHRvIGNvbnRpbnVlIHRvIHVzZSB0aGVtIGlmIHlvdSB3aXNoLgorICBTdHJ1dHMgMS4xIG9mZmVycyBmdWxsIHN1cHBvcnQgZm9yIHRoaXMgZXhpc3RpbmcgZnVuY3Rpb25hbGl0eS4KKzwvbGk+CisKKzxsaT4KKyAgT25jZSB0aGUgaW50ZWdyYXRpb24gbGlicmFyeSBiZWNvbWVzIGF2YWlsYWJsZSwgeW91IHNob3VsZCBkbyBzb21lCisgIGV4cGVyaW1lbnRpbmcgYW5kIHByb3RvdHlwaW5nIHRvIGRldGVybWluZSB0aGUgZWZmb3J0IHJlcXVpcmVkIHRvCisgIG1pZ3JhdGUgeW91ciBhcHBzIHRvIHRoZSBuZXcgSlNGIGNvbXBvbmVudCBhcmNoaXRlY3R1cmUgKEknbSBiZXR0aW5nCisgIHRoYXQgdGhlIGV4dHJhIGZ1bmN0aW9uYWxpdHkgeW91IGdhaW4gYnkgZG9pbmcgdGhpcyB3aWxsIGJlIHdlbGwKKyAgd29ydGggdGhlIGVmZm9ydCBpbiBtYW55IGNhc2VzKS4gIEFzIGRlc2NyaWJlZCBhYm92ZSwgdGhlIGFjdHVhbAorICBtaWdyYXRpb24gY2FuIGJlIGRvbmUgcGllY2VtZWFsIC0tIGl0IGRvZXNuJ3QgbmVlZCB0byBoYXBwZW4gYWxsCisgIGF0IG9uY2UuCis8L2xpPgorCis8bGk+CisgIEZvciBhcHBsaWNhdGlvbnMgbm93IChvciBhYm91dCB0byBiZSkgdW5kZXIgZGV2ZWxvcG1lbnQgdGhhdCBoYXZlCisgIHJlbGF0aXZlbHkgc2hvcnQgdGVybSBzY2hlZHVsZXMgKGkuZS4gdGhlIG5leHQgZmV3IG1vbnRocyksIHlvdQorICBzaG91bGQgcHJvYmFibHkgc3RpY2sgd2l0aCB0aGUgZXhpc3RpbmcgSFRNTCBsaWJyYXJ5LgorPC9saT4KKworPGxpPgorICBGb3IgYXBwbGljYXRpb25zIHdpdGggYSBsb25nZXIgbGVhZCB0aW1lLCBzZXJpb3VzbHkgY29uc2lkZXIgd2FpdGluZworICBmb3IgdGhlIGFiaWxpdHkgdG8gdXNlIEpTRiBjb21wb25lbnRzIGluc3RlYWQgb2YgdGhlIFN0cnV0cyBIVE1MCisgIHRhZyBsaWJyYXJ5LiAgRG9pbmcgdGhpcyB3aWxsIGxldCB5b3UgbGV2ZXJhZ2Ugbm90IG9ubHkgdGhlIHN0YW5kYXJkCisgIEhUTUwgY29tcG9uZW50cyB0aGF0IGNvbWUgd2l0aCBKU0Ygb3V0IG9mIHRoZSBib3gsIGJ1dCBhbHNvIHRoZSByaWNoCisgIGxpYnJhcmllcyBvZiBKU0YgY29tcG9uZW50cyBsaWtlbHkgdG8gYmUgY3JlYXRlZCBieSB0aGlyZCBwYXJ0aWVzIGluCisgIHRoZSBmdXR1cmUgKGluY2x1ZGluZyBTdHJ1dHMgZGV2ZWxvcGVycykuCis8L2xpPgorPC91bD4KKworPHA+CitGb3IgU3RydXRzIGFmdGVyIDEuMSBpcyByZWxlYXNlZCwgdGhlIGRldmVsb3BlcnMgaGF2ZW4ndCB5ZXQgaGFkIGZvcm1hbAorY29udmVyc2F0aW9ucyAod2hpY2ggd2lsbCBoYXBwZW4gb24gU1RSVVRTLURFVikgYWJvdXQgd2hhdCBhIGZ1dHVyZSBTdHJ1dHMKK3dpbGwgbG9vayBsaWtlLiAgSG93ZXZlciwgSSdtIGdvaW5nIHRvIGNvbnRpbnVlIHRvIGFkdm9jYXRlIGEgbG9uZyB0ZXJtCittaWdyYXRpb24gdG8gdXNpbmcgc3RhbmRhcmRzIGxpa2UgSlNGIGFuZCBKU1RMIHdoZW4gdGhleSBhcmUgYXZhaWxhYmxlLAorYW5kIGRlLWVtcGhhc2l6ZSB0aGUgZnVydGhlciBkZXZlbG9wbWVudCBvZiB0aGUgU3RydXRzIHByb3ByaWV0YXJ5IHRhZworbGlicmFyaWVzLgorPC9wPgorCis8cD4KK1RoZSBTdHJ1dHMgdGFnIGxpYnJhcmllcyBoYXZlIGhhZCBhIHRyZW1lbmRvdXMgcG9zaXRpdmUgaW1wYWN0IG9uIHRoZQorZGV2ZWxvcG1lbnQgb2YgdGhlIHN0YW5kYXJkIEphdmEgQVBJcyBmb3IgdXNlciBpbnRlcmZhY2VzLiAgSSBqb2tlZCB3aXRoCit0aGUgSlNUTCBzcGVjIGxlYWQgdGhhdCBTdHJ1dHMgdXNlcnMgd291bGQgKm5ldmVyKiBhY2NlcHQgSlNUTCB3aXRob3V0IGFuCitleHByZXNzaW9uIGxhbmd1YWdlIGF0IGxlYXN0IGFzIHBvd2VyZnVsIGFzIHRoZSBTdHJ1dHMgb25lOyBhbmQgdGhlcmUgaXMKK21vcmUgdGhhbiBhIGxpdHRsZSB0cnV0aCB0byB0aGF0IHN0YXRlbWVudCA6LSkuICBUaGUgc2FtZSB0aGluZyBpcworaGFwcGVuaW5nIG5vdyBmb3IgdGhlIEhUTUwgdGFncyAtLSBhbmQgaXQncyB0aW1lIGZvciB1cyB0byBzdGFydCBtaWdyYXRpbmcKK3RvIHRoZSBzdGFuZGFyZHMsIHdoaWNoIGdpdmVzIHVzIHRoZSB0aW1lIHRvIGZvY3VzIG9uIGV4dGVuZGluZyBTdHJ1dHMgaW4KK290aGVyIGRpcmVjdGlvbnMgaW4gdGhlIGZ1dHVyZS4KKzwvcD4KKworPHA+CitDb21tZW50cz8gIFF1ZXN0aW9ucz8gIElmIGl0J3MgYWJvdXQgU3RydXRzLCBvciBTdHJ1dHMvSlNGIGludGVncmF0aW9uLAorZmVlbCBmcmVlIHRvIGFzayBhYm91dCB0aGVzZSBpc3N1ZXMgb24gU1RSVVRTLURFViBvciBTVFJVVFMtVVNFUiAoYWx0aG91Z2gKK0knbSBnb2luZyB0byBiZSByZWxhdGl2ZWx5IGluY29tbXVuaWNhZG8gb3ZlciB0aGUgbmV4dCB3ZWVrOyBJJ2xsIGJlIGluCitZb2tvaGFtYSBhdCBKYXZhT25lIEphcGFuIGFuZCBvbmx5IGludGVybWl0dGVudGx5IGNvbm5lY3RlZCB0byBlbWFpbCkuCitRdWVzdGlvbnMgYWJvdXQgSlNGIGl0c2VsZiBzaG91bGQgYmUgYWRkcmVzc2VkIHRvIHRoZSBKU0YgZm9ydW0gYXQgdGhlIFVSTAorbGlzdGVkIGFib3ZlLgorPC9wPgorCis8cD4KK0FuZCB0aGFua3MgdG8gYWxsIG9mIHlvdSBmb3IgeW91ciBjb250aW51ZWQgc3VwcG9ydCBhbmQgdXNlIG9mIFN0cnV0cyAtLQordGhlIGNvbW11bml0eSB0aGF0IGhhcyBkZXZlbG9wZWQgYXJvdW5kIHRoaXMgZnJhbWV3b3JrIGNvbnRpbnVlcyB0byBhbWF6ZQorYW5kIGh1bWJsZSBtZS4KKzwvcD4KKworPHA+CitDcmFpZyBNY0NsYW5haGFuCis8L3A+Cis8L3NlY3Rpb24+Cis8L2JvZHk+Cis8L2RvY3VtZW50PgorCmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9wb3NhbHMvdG9kby0xLjAueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvcG9zYWxzL3RvZG8tMS4wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMThhYWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvcG9zYWxzL3RvZG8tMS4wLnhtbApAQCAtMCwwICsxLDEyMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSIuL3RvZG8tMS4xLnhtbCI+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlRoZSBTdHJ1dHMgUHJvamVjdCBUT0RPIExpc3QgZm9yIFZlcnNpb24gMS4wPC90aXRsZT4KKyAgPC9wcm9wZXJ0aWVzPgorCisgIDxib2R5PgorCisKKyAgPHNlY3Rpb24gbmFtZT0iSW50cm9kdWN0aW9uIiBocmVmPSJJbnRybyI+CisKKyAgPHA+QXBwbGljYXRpb24gZnJhbWV3b3JrcywgbGlrZSB0aGUgYXBwbGljYXRpb25zIHdlIGJ1aWxkIHdpdGggdGhlbSwKKyAgbmV2ZXIgc2VlbSB0byBiZSBjb21wbGV0ZWQuICBUaGUgZm9sbG93aW5nIGFyZSB0aGUgcmVtYWluaW5nIHdvcmsgaXRlbXMKKyAgYmVmb3JlIFZlcnNpb24gMS4wIG9mIFN0cnV0cyBjYW4gYmUgcmVsZWFzZWQuPC9wPgorCisgIDxwPlRoZSBUT0RPIGxpc3QgdGFza3MgYXJlIGRpdmlkZWQgaW50byBmdW5jdGlvbmFsIGFyZWFzIHRoYXQgY29ycmVzcG9uZAorICB0byB0aGUgbWFqb3IgY29tcG9uZW50cyBvZiB0aGUgU3RydXRzIEZyYW1ld29yay4gIFJlZmVyZW5jZXMgaW4gc3F1YXJlCisgIGJyYWNrZXRzIGFyZSB0aGUgSmF2YSBwYWNrYWdlIGNvbnRhaW5pbmcgdGhlIGNvcnJlc3BvbmRpbmcgc291cmNlIGNvZGUuPC9wPgorCisgIDwvc2VjdGlvbj4KKworCisgIDx0YXNrLWxpc3QgbmFtZT0iU3RydXRzIERvY3VtZW50YXRpb24iIGhyZWY9IkRvY3MiPgorCisgICAgPGluZm8+CisgICAgICA8cD5PbW5pYnVzIHRhc2sgbGlzdCBmb3IgaXRlbXMgcmVsYXRlZCB0byB0aGUgU3RydXRzIERvY3VtZW50YXRpb24sCisgICAgICB3aGljaCBkbyBub3QgaGF2ZSBkaXJlY3QgcmVsYXRpb25zaGlwcyB3aXRoIGNvZGUgYmFzZXMuPC9wPgorICAgIDwvaW5mbz4KKworICA8L3Rhc2stbGlzdD4KKworCisgIDx0YXNrLWxpc3QgbmFtZT0iU3RydXRzIEV4YW1wbGUgQXBwbGljYXRpb24iIGhyZWY9IkV4YW1wbGUiPgorCisgICAgPGluZm8+CisgICAgICA8cD5BbiBleGFtcGxlIHdlYiBhcHBsaWNhdGlvbiB1dGlsaXppbmcgdGhlIFN0cnV0cyBmcmFtZXdvcmsgYW5kCisgICAgICBjdXN0b20gdGFnIGxpYnJhcnkuPC9wPgorICAgIDwvaW5mbz4KKworICA8L3Rhc2stbGlzdD4KKworCisgIDx0YXNrLWxpc3QgbmFtZT0iTVZDIEZyYW1ld29yayBbb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uXSIgaHJlZj0iTVZDIj4KKworICAgIDxpbmZvPgorICAgICAgPHA+VGhpcyBpcyB0aGUgY29yZSBjb250cm9sbGVyIHNlcnZsZXQsIHdpdGggc3VwcG9ydCBmb3IgdGhlIGRldmVsb3BlcidzCisgICAgICBhY3Rpb24gYW5kIGZvcm0gYmVhbiBjbGFzc2VzLCBwbHVzIHRoZSBzdXBwb3J0aW5nIGRhdGEgc3RydWN0dXJlcy48L3A+CisgICAgPC9pbmZvPgorCisgICAgPHRhc2sgbmFtZT0iRGVwcmVjYXRpb24gV2FybmluZ3MiPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPlJldmlldyBmcmFtZXdvcmstd2lkZSB1c2Ugb2YgZmVhdHVyZXMgdGhhdCBoYXZlIG5vdyBiZWVuCisgICAgICAgIGRlcHJlY2F0ZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvdGFzaz4KKworICA8L3Rhc2stbGlzdD4KKworCisgIDx0YXNrLWxpc3QgbmFtZT0iWE1MIERpZ2VzdGVyIFtvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlcl0iIGhyZWY9IkRpZ2VzdGVyIj4KKworICAgIDxpbmZvPgorICAgICAgPHA+VGhlIERpZ2VzdGVyIHBhY2thZ2Ugc3VwcG9ydHMgc2NyaXB0ZWQgZmlyaW5nIG9mICJydWxlcyIgYmFzZWQgb24KKyAgICAgIG1hdGNoaW5nIGEgcGFydGljdWxhciBwYXR0ZXJuIG9mIG5lc3RlZCBYTUwgdGFncy4gIEFtb25nIHRoZSBwcmVkZWZpbmVkCisgICAgICBydWxlcyB0aGF0IGNhbiBiZSB1dGlsaXplZCBhcmUgcnVsZXMgdG8gY3JlYXRlIG5ldyBvYmplY3RzLCBzZXQgYmVhbgorICAgICAgcHJvcGVydGllcyBmcm9tIHRoZSBjb250ZW50cyBvZiBhdHRyaWJ1dGVzLCBvciBjYWxsIGFyYml0cmFyeSBtZXRob2RzCisgICAgICB3aXRoIGFyZ3VtZW50cyBiYXNlZCBvbiB0aGUgWE1MIGNvbnRlbnQgYmVpbmcgcGFyc2VkLiAgQSBjb21tb24KKyAgICAgIHVzZSBmb3IgdGhpcyB0ZWNobm9sb2d5IChpbGx1c3RyYXRlZCBpbiB0aGUgU3RydXRzIEFjdGlvblNlcnZsZXQpLCBpcworICAgICAgcGFyc2luZyBjb25maWd1cmF0aW9uIGZpbGVzIGFuZCBidWlsZGluZyBjb3JyZXNwb25kaW5nIG9iamVjdCB0cmVlcy48L3A+CisgICAgPC9pbmZvPgorCisgIDwvdGFzay1saXN0PgorCisKKyAgPHRhc2stbGlzdCBuYW1lPSJCZWFuIFRhZyBMaWJyYXJ5IFtvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbl0iCisgICAgICAgICAgICAgaHJlZj0iQkVBTiI+CisKKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgdGFnIGxpYnJhcnkgY29udGFpbnMgYmFzaWMgdGFncyB1c2VmdWwgaW4gbWFuaXB1bGF0aW5nIEphdmFCZWFucworICAgICAgYW5kIHRoZWlyIHByb3BlcnRpZXMuICBJdCBpbmNsdWRlcyBzdXBwb3J0IGZvciBnZXR0aW5nIGFuZCBzZXR0aW5nIGJlYW4KKyAgICAgIHByb3BlcnRpZXMgdXNpbmcgc2ltcGxlLCBuZXN0ZWQsIGFuZCBzdWJzY3JpcHRlZCBhY2Nlc3NvciBleHByZXNzaW9ucy4KKyAgICAgIDwvcD4KKyAgICA8L2luZm8+CisKKyAgPC90YXNrLWxpc3Q+CisKKworICA8dGFzay1saXN0IG5hbWU9IkhUTUwgRm9ybXMgVGFnIExpYnJhcnkgW29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sXSIKKyAgICAgICAgICAgICBocmVmPSJIVE1MIj4KKworICAgIDxpbmZvPgorICAgIDxwPlRoaXMgdGFnIGxpYnJhcnkgY29udGFpbnMgdGFncyB1c2VmdWwgaW4gcHJlcGFyaW5nIHdlYiBhcHBsaWNhdGlvbnMgdGhhdAorICAgIHVzZSBIVE1MIGZvcm1zIGFzIHRoZWlyIHByaW1hcnkgbWVjaGFuaXNtIGZvciB1c2VyIGRhdGEgZW50cnksIGFzIHdlbGwgYXMKKyAgICBzdXBwb3J0IGZvciBpbnRlcm5hdGlvbmFsaXplZCBhbmQgbG9jYWxpemVkIGFwcGxpY2F0aW9ucy48L3A+CisgICAgPC9pbmZvPgorCisgIDwvdGFzay1saXN0PgorCisKKyAgPHRhc2stbGlzdCBuYW1lPSJVdGlsaXR5IENsYXNzZXMiIGhyZWY9IlV0aWwiPgorCisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHBhY2thZ2UgY29udGFpbnMgYSB2YXJpZXR5IG9mIHV0aWxpdHkgY2xhc3NlcyB1c2VmdWwgd2l0aGluCisgICAgICBTdHJ1dHMgYXMgd2VsbCBhcyBpbiBzdGFuZC1hbG9uZSBhcHBsaWNhdGlvbnMuPC9wPgorICAgIDwvaW5mbz4KKworICAgIDx0YXNrIG5hbWU9IlVwZGF0ZSBIVE1MIEZpbHRlcmluZyI+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+VXBkYXRlIHRoZSBmaWx0ZXJpbmcgc3VwcG9ydGVkIGJ5IDxjb2RlPkJlYW5VdGlscy5maWx0ZXIoKTwvY29kZT4uCisgICAgICAgIDwvcD4KKyAgICAgICAgW1NUUlVUUy1ERVYsIE1hdHRoaWFzIEtlcmtob2ZmLCAxMS8xMy8yMDAwXQorICAgICAgPC9pbmZvPgorICAgIDwvdGFzaz4KKworICA8L3Rhc2stbGlzdD4KKworCisgIDwvYm9keT4KKworPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy90b2RvLTEuMS54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9wb3NhbHMvdG9kby0xLjEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkOWE2MDIKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9wcm9wb3NhbHMvdG9kby0xLjEueG1sCkBAIC0wLDAgKzEsNjA4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Ii4vdG9kby0xLjEueG1sIj4KKworICA8cHJvcGVydGllcz4KKyAgICA8dGl0bGU+RmVhdHVyZXMgV2UnZCBMaWtlIFRvIFNlZSAtIFRoZSBTdHJ1dHMgUHJvamVjdCBXaXNoIExpc3Q8L3RpdGxlPgorICA8L3Byb3BlcnRpZXM+CisKKyAgPGJvZHk+CisKKworICA8c2VjdGlvbiBuYW1lPSJJbnRyb2R1Y3Rpb24iIGhyZWY9IkludHJvIj4KKworICA8cD5BcHBsaWNhdGlvbiBmcmFtZXdvcmtzLCBsaWtlIHRoZSBhcHBsaWNhdGlvbnMgd2UgYnVpbGQgd2l0aCB0aGVtLAorICBuZXZlciBzZWVtIHRvIGJlIGNvbXBsZXRlZC4gIFRoZSBmb2xsb3dpbmcgbWFqb3IgYXJlYXMgb2YgaW1wcm92ZW1lbnQKKyAgYXJlIGJlaW5nIGNvbnNpZGVyZWQgZm9yIGltcGxlbWVudGF0aW9uIGluIGEgZnV0dXJlIHZlcnNpb24gCisgIG9mIFN0cnV0cy4gPC9wPgorCisgIDxwPldoaWNoIGZlYXR1cmVzIGFyZSBpbXBsZW1lbnRlZCBmaXJzdCBkZXBlbmRzIGdyZWF0bHkgb24gCisgIGluZGl2aWR1YWwgZGV2ZWxvcGVycyBiZWNvbWluZyBpbnZvbHZlZCBpbiB0aGUgcHJvY2Vzcy4gTWFueSBrZXkgCisgIGZlYXR1cmVzIGluIFN0cnV0cyBncmV3IG91dCBvZiBjb2RlIGZpcnN0IGRpc3RyaWJ1dGVkIG9uIHRoZSBtYWlsaW5nIAorICBsaXN0LiBJZiB0aGVyZSBpcyBhIGZlYXR1cmUgaGVyZSB0aGF0IHlvdSBuZWVkLCBvciBhbHJlYWR5IGhhdmUsIHBsZWFzZSAKKyAgc3RhcnQgYSB0aHJlYWQgYW5kIHNob3cgdXMgdGhlIGNvZGUhPC9wPgorCisgIDxwIGNsYXNzPSJjZW50ZXIiPjxhIGhyZWY9Ii4uL2ZhcXMvaGVscGluZy5odG1sI3JlbGVhc2UiPjxzdHJvbmc+U28sIHdoZW4gaXMgdGhlIG5leHQgcmVsZWFzZSBjb21pbmcgb3V0Pzwvc3Ryb25nPjwvYT48L3A+CisKKyAgPHA+QW4gZXh0ZXJuYWwgZGV2ZWxvcG1lbnQgdGhhdCBpcyBsaWtlbHkgdG8gYWZmZWN0IHRoZSBkZXZlbG9wbWVudCBvZgorICBTdHJ1dHMgMS4xIHdpbGwgYmUgdGhlIGVtZXJnaW5nIFN0YW5kYXJkIFRhZyBMaWJyYXJ5LCBiZWluZyBwcm9kdWNlZCB1bmRlcgorICB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5qY3Aub3JnL2pzci9kZXRhaWwvNTIuanNwIj5KYXZhIENvbW11bml0eSBQcm9jZXNzPC9hPi4gCisgIEEgdmVyeSBlYXJseSByZWxlYXNlIGlzIG5vdyBhdmFpbGFibGUgYXQgCisgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdGFnbGlicy9kb2MvanNwdGwtZG9jL2ludHJvLmh0bWwiPkpha2FydGEgCisgIFRhZ2xpYnM8L2E+LjwvcD4KKworICA8cD5UaGUgZXhpc3RpbmcgU3RydXRzIHRhZ3Mgd2VyZSB1c2VkIGFzIGlucHV0IHRvIHRoZSBzdGFuZGFyZGl6YXRpb24gcHJvY2VzcywKKyAgYnV0IGluIHRoZSBjYXNlIHdoZXJlIHN0YW5kYXJkIHRhZ3Mgd2l0aCBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgYXJlIGFkb3B0ZWQsCisgIHdlIHNob3VsZCBtaWdyYXRlIFN0cnV0cyB0YWdzIHRvIG1haW50YWluIG1heGltdW0gY29tcGF0aWJpbGl0eSB3aXRoIHRoZQorICBuZXcgc3RhbmRhcmQgbGlicmFyeS48L3A+CisKKyAgPC9zZWN0aW9uPgorCisgIDxzZWN0aW9uIG5hbWU9IlBlbmRpbmcgVGFza3MiICBocmVmPSJwZW5kaW5nIj4KKyAgCisgIDx1bD4KKyAgPGxpPjxhIGhyZWY9IndvcmtmbG93Lmh0bWwiPldvcmtmbG93PC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwOi8vaHVzdGVkLmNvbS9zdHJ1dHMvcmVzb3VyY2VzL2xvZ2ljLW5pYWxscC5odG0iPklmL0Vsc2UvU3dpdGNoIHRhZ3M8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9odXN0ZWQuY29tL3N0cnV0cy9yZXNvdXJjZXMvY29kZW1ha2VyLmh0bSI+Q29kZSBnZW5lcmF0b3I8L2E+PC9saT4KKyAgPC91bD4KKyAKKyAgPHA+U2VlIGFsc28gdGhlIFNlcnZpY2UgTWFuYWdlciBwYWNrYWdlcyBpbiB0aGUgY29udHJpYiBmb2xkZXIuPC9wPgorCisgIDxwPlRoZSB3aXNoIGxpc3QgdGFza3MgYXJlIGRpdmlkZWQgaW50byBmdW5jdGlvbmFsIGFyZWFzIHRoYXQgY29ycmVzcG9uZAorICB0byB0aGUgbWFqb3IgY29tcG9uZW50cyBvZiB0aGUgU3RydXRzIEZyYW1ld29yay4gUmVmZXJlbmNlcyBpbiBzcXVhcmUKKyAgYnJhY2tldHMgYXJlIHRoZSBKYXZhIHBhY2thZ2UgY29udGFpbmluZyB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZS4gCisgIExpc3RpbmcgYSB0YXNrIGhlcmUgaXMgbm90IGEgZ3VhcmFudGVlIHRoYXQgaXQgd2lsbCBiZSBwcmVzZW50IGluIHRoZSAKKyAgbmV4dCByZWxlYXNlLiBBZ2Fpbiwgd2hldGhlciBhIHdpc2ggYmVjb21lcyBhIGZlYXR1cmUgZGVwZW5kcyBvbiB3aGV0aGVyIAorICB0aGVyZSBhcmUgdm9sdW50ZWVycyB3aG8gY2hvb3NlIHRvIHdvcmsgb24gdGhlIHRhc2suIDwvcD4KKworICA8L3NlY3Rpb24+CisKKyAgPHRhc2stbGlzdCBuYW1lPSJTdHJ1dHMgRG9jdW1lbnRhdGlvbiIgaHJlZj0iRG9jcyI+CisKKyAgICA8aW5mbz4KKyAgICAgIDxwPk9tbmlidXMgdGFzayBsaXN0IGZvciBpdGVtcyByZWxhdGVkIHRvIHRoZSBTdHJ1dHMgRG9jdW1lbnRhdGlvbiwKKyAgICAgIHdoaWNoIGRvIG5vdCBoYXZlIGRpcmVjdCByZWxhdGlvbnNoaXBzIHdpdGggY29kZSBiYXNlcy48L3A+CisgICAgPC9pbmZvPgorCisgICAgPHRhc2sgbmFtZT0iVGFnbGliIENoYXB0ZXJzIGZvciBVc2VyIEd1aWRlIj4KKyAgICA8aW5mbz4KKyAgICAgSW5jb3Jwb3JhdGUgdGhlIFRhZ2xpYiBkb2N1bWVudGF0aW9uIGFuZCBEZXZlbG9wZXIgR3VpZGVzIGludG8gdGhlIFVzZXIgR3VpZGUsIAorICAgICBieSBpbmNsdWRpbmcgdGhlIHNvdXJjZSBvZiB0aGVzZSBmcm9tIHRoZWlyIHByZXNlbnQgbG9jYXRpb25zLgorICAgIDwvaW5mbz4gICAKKyAgICA8L3Rhc2s+CisKKyAgICA8dGFzayBuYW1lPSJUT0RPIHN0eWxlc2hlZXQiPgorICAgIDxpbmZvPgorICAgICBSZXZpc2UgVE9ETyBzdHlsZXNoZWV0IHRvIGFkZCBTdGF0dXMgYW5kIFNvdXJjZSBlbGVtZW50cywgYW5kIHRvIHN1cHBvcnQgbWFpbHRvIAorICAgICBsaW5rcyBmb3Igdm9sdW50ZWVycyBpbiBBc3NpZ25lZCBlbGVtZW50LiBBbGwgZWxlbWVudHMgc2hvdWxkIHN1cHBvcnQgaHlwZXJ0ZXh0IAorICAgICBsaW5rcy4gCisgICAgIDwvaW5mbz4gICAKKyAgICA8L3Rhc2s+CisKKyAgICA8dGFzayBuYW1lPSJUYWdsaWIgc3R5bGVzaGVldCI+CisgICAgPGluZm8+CisgICAgIEFkZCBzdXBwb3J0IGZvciAic2luY2UiIGVsZW1lbnQgZm9yIHRyYWNraW5nIGNoYW5nZXMgdG8gdGFncyBiZXR3ZWVuIHZlcnNpb25zLgorICAgIDwvaW5mbz4gICAKKyAgICA8L3Rhc2s+CisKKyAgICA8dGFzayBuYW1lPSJDb250cmlidXRpb24gUmV2aWV3cyI+CisgICAgPGluZm8+CisgICAgIEFyZWEgdG8gcG9zdCBhcnRpY2xlcyBhYm91dCBjb250cmlidXRpb25zIGZyb20gU3RydXRzIGRldmVsb3BlcnMuCisgICAgPC9pbmZvPiAgIAorICAgIDwvdGFzaz4KKworICAgIDx0YXNrIG5hbWU9IkV4cGFuZGVkIEZBUSI+CisgICAgPGluZm8+CisgICAgIEFyZWEgdG8gcG9zdCBhICJjaG9pY2UiIEZBUSBvZiB0cnVseSBjb21tb24gcXVlc3Rpb25zLgorICAgIDwvaW5mbz4gICAKKyAgICA8L3Rhc2s+CisKKyAgPC90YXNrLWxpc3Q+CisKKworICA8dGFzay1saXN0IG5hbWU9IlN0cnV0cyBFeGFtcGxlIEFwcGxpY2F0aW9uIiBocmVmPSJFeGFtcGxlIj4KKworICAgIDxpbmZvPgorICAgICAgPHA+QW4gZXhhbXBsZSB3ZWIgYXBwbGljYXRpb24gdXRpbGl6aW5nIHRoZSBTdHJ1dHMgZnJhbWV3b3JrIGFuZAorICAgICAgY3VzdG9tIHRhZyBsaWJyYXJ5LjwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8dGFzayBuYW1lPSJCZXR0ZXIgRGF0YWJhc2UgU3VwcG9ydCI+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+VXNlIGEgInJlYWwiIGRhdGFiYXNlIG9mIHNvbWUgc29ydCAod2hpbGUgc3RpbGwgbWFraW5nIFN0cnV0cworICAgICAgICBlYXN5IHRvIGluc3RhbGwuPC9wPgorICAgICAgPC9pbmZvPgorICAgICAgPGFzc2lnbmVkPgorICAgICAgICA8YSBocmVmPSJtYWlsdG86aHVzdGVkQGFwYWNoZS5vcmciPlRlZCBIdXN0ZWQ8L2E+CisgICAgICA8L2Fzc2lnbmVkPgorCisgICAgPC90YXNrPgorCisgICAgPHRhc2sgbmFtZT0iTG9jYWxlIFN3aXRjaGluZyI+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+QWRkIHN1cHBvcnQgZm9yIHN3aXRjaGluZyBMb2NhbGVzIG9uIHRoZSBmbHkgdG8gdGhlIFN0cnV0cworICAgICAgICBleGFtcGxlIGFwcGxpY2F0aW9uLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICAgIDxhc3NpZ25lZD4KKyAgICAgICAgPGEgaHJlZj0ibWFpbHRvOmh1c3RlZEBhcGFjaGUub3JnIj5UZWQgSHVzdGVkPC9hPgorICAgICAgPC9hc3NpZ25lZD4KKyAgICA8L3Rhc2s+CisKKyAgPC90YXNrLWxpc3Q+CisKKworICA8dGFzay1saXN0IG5hbWU9Ik1WQyBGcmFtZXdvcmsgW29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbl0iIGhyZWY9Ik1WQyI+CisKKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgaXMgdGhlIGNvcmUgY29udHJvbGxlciBzZXJ2bGV0LCB3aXRoIHN1cHBvcnQgZm9yIHRoZSBkZXZlbG9wZXIncworICAgICAgYWN0aW9uIGFuZCBmb3JtIGJlYW4gY2xhc3NlcywgcGx1cyB0aGUgc3VwcG9ydGluZyBkYXRhIHN0cnVjdHVyZXMuPC9wPgorICAgIDwvaW5mbz4KKworICAgIDx0YXNrIG5hbWU9IldvcmtmbG93IFByb2Nlc3NpbmciPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPkNyZWF0ZSBhIG1lY2hhbmlzbSBieSB3aGljaCBidXNpbmVzcyBsb2dpYyAobm93IGVuY29kZWQgaW4KKyAgICAgICAgPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzc2VzKSBjYW4gYmUgc3ViZGl2aWRlZCBpbnRvIGluZGl2aWR1YWwgd29yaworICAgICAgICA8Y29kZT5UYXNrczwvY29kZT4gdGhhdCBhcmUgY29tYmluZWQgYWNjb3JkaW5nIHRvIGNvbmZpZ3VyYXRpb24KKyAgICAgICAgaW5mb3JtYXRpb24gKGluY2x1ZGluZyBmbG93IGNvbnRyb2wgYW5kIGl0ZXJhdGlvbiBzdXBwb3J0KSBpbiB0aGUKKyAgICAgICAgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+IGZpbGUuICBTdXBwb3J0IGZvciB3b3JrZmxvdyBwcm9jZXNzaW5nCisgICAgICAgIHdvdWxkIGJlIHByb3ZpZGVkIGJ5IGEgc2V0IG9mIHN0YW5kYXJkIDxjb2RlPkFjdGlvbnM8L2NvZGU+LCBhbmQKKyAgICAgICAgd2lsbCBvZmZlciBhbiBhbHRlcm5hdGl2ZSBtZWNoYW5pc20gKG5vdCBhIHJlcGxhY2VtZW50IG9mIEFjdGlvbnMpCisgICAgICAgIHRvIG9yZ2FuaXppbmcgeW91ciBidXNpbmVzcyBsb2dpYy48L3A+CisgICAgICAgIDxwPjxhIGhyZWY9InByb3Bvc2FsLXdvcmtmbG93Lmh0bWwiPjxzdHJvbmc+QSBXb3JrZmxvdyBQcm9wb3NhbCBpcyBwZW5kaW5nLjwvc3Ryb25nPjwvYT48L3A+ICAgIAorICAgICAgPC9pbmZvPgorICAgICAgPGFzc2lnbmVkPgorICAgICAgICA8YSBocmVmPSJtYWlsdG86Y3JhaWdlckB0YXRhcnluLm5ldCI+Q3JhaWcgVGF0YXJ5bjwvYT4sCisgICAgICAgIDxhIGhyZWY9Im1haWx0bzpuaWMuaG9iYnNAdWsucHdjZ2xvYmFsLmNvbSI+TmljIEhvYmJzPC9hPgorICAgICAgPC9hc3NpZ25lZD4KKyAgICA8L3Rhc2s+CisKKyAgICA8dGFzayBuYW1lPSJQcm9wZXJ0eUVkaXRvciBTdXBwb3J0Ij4KKyAgICAgIDxpbmZvPgorICAgICAgICA8cD5BZGQgc3VwcG9ydCBmb3IgSmF2YUJlYW5zIHRoYXQgaW5jbHVkZSBhIDxjb2RlPlByb3BlcnR5RWRpdG9yPC9jb2RlPgorICAgICAgICBjbGFzcyBmb3IgY29udmVyc2lvbiB0byBhbmQgZnJvbSB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIHVzZWQgaW4gYW4KKyAgICAgICAgSFRNTCBpbnB1dCBmaWVsZC4gIFRoaXMgc3VwcG9ydCBzaG91bGQgb3BlcmF0ZSBpbiBhIG1hbm5lciBjb25zaXN0ZW50CisgICAgICAgIHdpdGggdGhlIHdheSB0aGF0IHN0YW5kYXJkIEpTUCB0YWdzIGRvIGluIEpTUCAxLjIuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvdGFzaz4KKworICAgIDx0YXNrIG5hbWU9IkV2ZW50IGFuZCBMaXN0ZW5lciBNb2RlbCI+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+UmV0cm9maXQgdGhlIFN0cnV0cyBjb250cm9sbGVyIGZyYW1ld29yayB3aXRoIHN1cHBvcnRzIGZvciBldmVudAorICAgICAgICBnZW5lcmF0aW9uIChhbmQgdGhlIGNvcnJlc3BvbmRpbmcgcmVnaXN0cmF0aW9uIG9mIGxpc3RlbmVycykgZm9yIGFsbAorICAgICAgICBpbnRlcmVzdGluZyBldmVudHMgY3JlYXRlZCBieSB0aGUgZnJhbWV3b3JrLiAgVGhlIGxpc3Qgb2YgaW50ZXJlc3RpbmcKKyAgICAgICAgZXZlbnRzIHdpbGwgdW5kb3VidGVkbHkgYmUgaW5mbHVlbmNlZCBieSBjaGFuZ2VzIHJlbGF0ZWQgdG8gb3RoZXIKKyAgICAgICAgd29yayBpdGVtcyBvbiB0aGlzIGxpc3QgKHN1Y2ggYXMgd29ya2Zsb3cgcHJvY2Vzc2luZyBhbmQgc3RhbmRhcmQKKyAgICAgICAgdmFsaWRhdGlvbnMpLCBzbyB3b3JrIG9uIHRoaXMgc2hvdWxkIGJlIGNvb3JkaW5hdGVkIHdpdGggdGhvc2UKKyAgICAgICAgY2hhbmdlcy48L3A+CisgICAgICAgIDxwPgorICAgICAgICBbU1RSVVRTLURFViwgUm9iZXJ0IExlbGFuZCwgMTAvMTAvMjAwMF0KKyAgICAgICAgW1NUUlVUUy1ERVYsIERhdmlkIEdlYXJ5LCAxMi8yMC8yMDAwXQorICAgICAgICBbU1RSVVRTLVVTRVIsIFRlZCBIdXN0ZWQsIDEyLzIzLzIwMDBdCisgICAgICAgIDwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L3Rhc2s+CisKKyAgICA8dGFzayBuYW1lPSJFSkIgRGVzaWduIFBhdHRlcm5zIj4KKyAgICAgIDxpbmZvPgorICAgICAgICA8cD5CZWdpbiBhZGRpbmcgZGVzaWduIHBhdHRlcm5zIGFuZCBzdXBwb3J0IGZvciBlYXN5IGludGVncmF0aW9uIHdpdGgKKyAgICAgICAgRW50ZXJwcmlzZSBKYXZhQmVhbnMgKEVKQnMpIGZvciBlbmNhcHN1bGF0aW9uIG9mIGJ1c2luZXNzIGxvZ2ljIGFuZAorICAgICAgICBhcHBsaWNhdGlvbiBkYXRhLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICAgIDxhc3NpZ25lZD4KKyAgICAgICAgPGEgaHJlZj0ibWFpbHRvOm1zY2hhY2h0ZXJAaHAuY29tIj5NaWtlIFNjaGFjaHRlcjwvYT4KKyAgICAgIDwvYXNzaWduZWQ+CisgICAgPC90YXNrPgorCisgICAgPHRhc2sgbmFtZT0iSFRNTCBOby1DYWNoZSBTdXBwb3J0Ij4KKyAgICAgIDxpbmZvPgorICAgICAgICA8cD5JbXByb3ZlIHRoZSBjdXJyZW50IFN0cnV0cyBzdXBwb3J0IGZvciBnZW5lcmF0aW5nIG5vLWNhY2hlIGhlYWRlcnMKKyAgICAgICAgdG8gcHJvdmlkZSBmaW5lci1ncmFpbmVkLCBjb25maWd1cmFibGUgY29udHJvbCBvbiBhIHBlci1wYWdlIGJhc2lzLgorICAgICAgICA8L3A+CisgICAgICAgIDxwPgorICAgICAgICBbU1RSVVRTLURFViwgSG91IFl1bmZlbmcsIDEwLzA3LzIwMDBdCisgICAgICAgIFtTVFJVVFMtREVWLCBNYXR0aGlhcyBLZXJraG9mZiwgMTEvMTgvMjAwMF0KKyAgICAgICAgPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvdGFzaz4KKworICA8L3Rhc2stbGlzdD4KKworICA8dGFzay1saXN0IG5hbWU9IkJlYW4gVGFnIExpYnJhcnkgW29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuXSIKKyAgICAgICAgICAgICBocmVmPSJCRUFOIj4KKworICAgIDxpbmZvPgorICAgICAgPHA+VGhpcyB0YWcgbGlicmFyeSBjb250YWlucyBiYXNpYyB0YWdzIHVzZWZ1bCBpbiBtYW5pcHVsYXRpbmcgSmF2YUJlYW5zCisgICAgICBhbmQgdGhlaXIgcHJvcGVydGllcy4gIEl0IGluY2x1ZGVzIHN1cHBvcnQgZm9yIGdldHRpbmcgYW5kIHNldHRpbmcgYmVhbgorICAgICAgcHJvcGVydGllcyB1c2luZyBzaW1wbGUsIG5lc3RlZCwgYW5kIHN1YnNjcmlwdGVkIGFjY2Vzc29yIGV4cHJlc3Npb25zLgorICAgICAgPC9wPgorICAgIDwvaW5mbz4KKworICAgIDx0YXNrIG5hbWU9IlhQYXRoIFN1cHBvcnQiPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPlVwZGF0ZSBhbGwgb2YgdGhlIHJlbGV2YW50IHRhZ3MgdG8gaW5jbHVkZSBwcm9wZXJ0eSBhY2Nlc3NvciBzdXBwb3J0CisgICAgICAgIHVzaW5nIHRoZSBzeW50YXggc3BlY2lmaWVkIGJ5IHRoZSBYUGF0aCBzdGFuZGFyZCAod3d3LnczYy5vcmcpLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICAgIDxhc3NpZ25lZD4KKyAgICAgICAgPGEgaHJlZj0ibWFpbHRvOmphdmFiZXR0aW5AeWFob28uY29tIj5EYXZlIEJldHRpbjwvYT4KKyAgICAgIDwvYXNzaWduZWQ+CisgICAgPC90YXNrPgorCisgICAgPHRhc2sgbmFtZT0iWE1MIERPTSBTdXBwb3J0Ij4KKyAgICAgIDxpbmZvPgorICAgICAgICA8cD5VcGRhdGUgYWxsIG9mIHRoZSByZWxldmFudCB0YWdzIHRvIGdldCBhbmQgc2V0IGF0dHJpYnV0ZXMgZnJvbSBhCisgICAgICAgIEphdmEgb2JqZWN0IHRoYXQgaW1wbGVtZW50cyB0aGUgWE1MIERvY3VtZW50IE9iamVjdCBNb2RlbCwgYXMgd2VsbCBhcworICAgICAgICBmcm9tIHRoZSBjdXJyZW50IHRyZWUgb2YgSmF2YUJlYW4gb2JqZWN0cy4gIEhvdyB0aGUgdW5kZXJseWluZyBkYXRhCisgICAgICAgIG9iamVjdCBpcyBzdG9yZWQgc2hvdWxkIGJlIHRyYW5zcGFyZW50IHRvIHBhZ2Ugd3JpdGVycyB1c2luZyB0aGVzZQorICAgICAgICB0YWdzLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICAgIDxhc3NpZ25lZD4KKyAgICAgICAgPGEgaHJlZj0ibWFpbHRvOmphdmFiZXR0aW5AeWFob28uY29tIj5EYXZlIEJldHRpbjwvYT4KKyAgICAgIDwvYXNzaWduZWQ+CisgICAgPC90YXNrPgorCisgICAgPHRhc2sgbmFtZT0iWE1MIERPTSAvIEpEQkMgUm93U2V0IFN1cHBvcnQiPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPlVwZGF0ZSBhbGwgb2YgdGhlIHJlbGV2YW50IHRhZ3MgdG8gZ2V0IGFuZCBzZXQgYXR0cmlidXRlcyBmcm9tIGEKKyAgICAgICAgSkRCQyBSb3dTZXQgKG9yIFJlc3VsdFNldCkgb2JqZWN0LCBhcyB3ZWxsIGFzIGZyb20gWE1MIERPTSBvYmplY3RzIGFuZAorICAgICAgICB0aGUgY3VycmVudCB0cmVlIG9mIEphdmFCZWFuIG9iamVjdHMuICBIb3cgdGhlIHVuZGVybHlpbmcgZGF0YSBvYmplY3QKKyAgICAgICAgaXMgc3RvcmVkIHNob3VsZCBiZSB0cmFuc3BhcmVudCB0byBwYWdlIHdyaXRlcnMgdXNpbmcgdGhlc2UgdGFncy4KKyAgICAgICAgPC9wPgorICAgICAgPC9pbmZvPgorICAgICAgPGFzc2lnbmVkPgorICAgICAgICA8YSBocmVmPSJtYWlsdG86amF2YWJldHRpbkB5YWhvby5jb20iPkRhdmUgQmV0dGluPC9hPgorICAgICAgPC9hc3NpZ25lZD4KKyAgICA8L3Rhc2s+CisKKyAgICA8dGFzayBuYW1lPSJGb3JtYXR0aW5nIFN1cHBvcnQiPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPkFkZCB0aGUgYWJpbGl0eSB0byB1c2UgZm9ybWF0dGluZyBwYXR0ZXJucyAoc3VpdGFibHkgbG9jYWxpemVkKSBmb3IKKyAgICAgICAgcHJlc2VudGluZyBudW1iZXJzLCBkYXRlcywgdGltZXMsIHRpbWVzdGFtcHMsIGFuZCBzbyBvbiB2aWEgZm9ybWF0dGVkCisgICAgICAgIHBhdHRlcm5zLjwvcD4KKyAgICAgICAgPHA+CisgICAgICAgIFtTVFJVVFMtREVWLCBPbGVnIEFsZXhlZXYsIDEwLzI3LzIwMDBdCisgICAgICAgIFtTVFJVVFMtVVNFUiwgTmVkIFNlYWdvb24sIDEyLzExLzIwMDBdCisgICAgICAgIFtTVFJVVFMtREVWLCBOZWQgU2VhZ29vbiwgMTIvMTMvMjAwMF0KKyAgICAgICAgW1NUUlVUUy1VU0VSLCBOZWQgU2VhZ29vbiwgMDEvMDQvMjAwMV0KKyAgICAgICAgPC9wPgorICAgICAgPC9pbmZvPgorICAgICAgPGFzc2lnbmVkPgorICAgICAgICA8YSBocmVmPSJtYWlsdG86amF2YWJldHRpbkB5YWhvby5jb20iPkRhdmUgQmV0dGluPC9hPgorICAgICAgPC9hc3NpZ25lZD4KKyAgICA8L3Rhc2s+CisKKyAgPC90YXNrLWxpc3Q+CisKKworICA8dGFzay1saXN0IG5hbWU9IkhUTUwgVGFnIExpYnJhcnkgW29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sXSIKKyAgICAgICAgICAgICBocmVmPSJIVE1MIj4KKworICAgIDxpbmZvPgorICAgIDxwPlRoaXMgdGFnIGxpYnJhcnkgY29udGFpbnMgdGFncyB1c2VmdWwgaW4gcHJlcGFyaW5nIHdlYiBhcHBsaWNhdGlvbnMgdGhhdAorICAgIHVzZSBIVE1MIGZvcm1zIGFzIHRoZWlyIHByaW1hcnkgbWVjaGFuaXNtIGZvciB1c2VyIGRhdGEgZW50cnksIGFzIHdlbGwgYXMKKyAgICBzdXBwb3J0IGZvciBpbnRlcm5hdGlvbmFsaXplZCBhbmQgbG9jYWxpemVkIGFwcGxpY2F0aW9ucy48L3A+CisgICAgPC9pbmZvPgorCisgICAgPHRhc2sgbmFtZT0iUmFkaW8gQnV0dG9uIEdyb3VwcyI+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+QWRkIGEgbmV3IHRhZyB0aGF0IHN1cHBvcnRzIGdlbmVyYXRpb24gb2YgZ3JvdXBzIG9mIHJhZGlvIGJ1dHRvbnMuCisgICAgICAgIDwvcD4KKyAgICAgICAgPHA+CisgICAgICAgIFtTVFJVVFMtREVWLCBXZWxsaW5ndG9uIFNpbHZhLCAwOC8yOC8yMDAwXQorICAgICAgICA8L3A+CisgICAgICA8L2luZm8+CisgICAgPC90YXNrPgorCisgICAgPHRhc2sgbmFtZT0iSW1wcm92ZSBPcHRpb25zIFRhZyI+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+SW1wcm92ZSB0aGUgbWVjaGFuaXNtIGJ5IHdoaWNoIHlvdSBkZWZpbmUgdmFsdWVzIGFuZCBjb3JyZXNwb25kaW5nCisgICAgICAgIGxhYmVscyBmb3IgPGNvZGU+Jmx0O2h0bWw6b3B0aW9ucyZndDs8L2NvZGU+LjwvcD4KKyAgICAgICAgPHA+CisgICAgICAgIFtTVFJVVFMtREVWLCBEYXZpZCBXaW50ZXJmZWxkdCwgMDcvMjcvMjAwMF0KKyAgICAgICAgW1NUUlVUUy1ERVYsIERhdmlkIFdpbnRlcmZlbGR0LCAwOC8wMi8yMDAwXQorICAgICAgICBbU1RSVVRTLURFViwgQW5keSBCb3lrbywgMTEvMTUvMjAwMF0KKyAgICAgICAgW1NUUlVUUy1ERVYsIEFuZHkgQm95a28sIDEyLzA3LzIwMDBdCisgICAgICAgIDwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L3Rhc2s+CisKKyAgICA8dGFzayBuYW1lPSJBZGRpdGlvbmFsIEF0dHJpYnV0ZXMiPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPlN1cHBvcnQgYWRkaXRpb25hbCBIVE1MIDQuMC4xIGF0dHJpYnV0ZXMgKHN1Y2ggYXMgImRpc2FibGVkIiwKKyAgICAgICAgInJlYWRvbmx5IiwgIndyYXAiIG9uIHRleHRhcmVhKQorICAgICAgICB3aGVyZSBhcHByb3ByaWF0ZS48L3A+CisgICAgICAgIDxwPgorICAgICAgICBbU1RSVVRTLVVTRVIsICwgMDgvMjMvMjAwMF0KKyAgICAgICAgPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvdGFzaz4KKworICAgIDx0YXNrIG5hbWU9IkltcHJvdmVkIEl0ZXJhdGlvbiBTdXBwb3J0Ij4KKyAgICAgIDxpbmZvPgorICAgICAgICA8cD5JbXByb3ZlIHRoZSBhYmlsaXR5IHRvIHVzZSB0aGUgPGNvZGU+Jmx0O2xvZ2ljOml0ZXJhdGUmZ3Q7PC9jb2RlPgorICAgICAgICB0YWcgb3ZlciBhIGNvbGxlY3Rpb24sIGFuZCBnZW5lcmF0ZSBhIHNldCBvZiBpbnB1dCBmaWVsZHMgZm9yIGVhY2gKKyAgICAgICAgbWVtYmVyIG9mIHRoZSBjb2xsZWN0aW9uIChwZXJoYXBzIGF1dG8tZ2VuZXJhdGluZyBhIHN1YnNjcmlwdD8pLgorICAgICAgICBBIHNpZ25pZmljYW50IHVzZSBjYXNlIGlzIG1hc3Rlci1kZXRhaWwgcmVsYXRpb25zaGlwcyAoc2F5LCBhCisgICAgICAgIGN1c3RvbWVyIGFuZCB0aGVpciBjdXJyZW50IG9yZGVycykgd2hlcmUgeW91IGFsbG93IGVkaXRpbmcgb2YgYW55CisgICAgICAgIGFuZCBhbGwgZmllbGRzLjwvcD4KKyAgICAgICAgPHA+CisgICAgICAgIFtTVFJVVFMtVVNFUiwgTGFycywgMTIvMDYvMjAwMF0KKyAgICAgICAgW1NUUlVUUy1VU0VSLCBDaGFuZGFuIEt1bGthcm5pLCAxMi8yNi8yMDAwXQorICAgICAgICA8L3A+CisgICAgICA8L2luZm8+CisgICAgPC90YXNrPgorCisgICAgPHRhc2sgbmFtZT0iTXVsdGktUGFnZSBGb3JtIFN1cHBvcnQiPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPkNyZWF0ZSBkZXNpZ24gcGF0dGVybnMgYW5kIGltcHJvdmVkIGludGVybmFsIHN1cHBvcnQgZm9yIGZvcm1zIHRoYXQKKyAgICAgICAgc3BhbiBtdWx0aXBsZSBwYWdlcy48L3A+CisgICAgICA8L2luZm8+CisgICAgICA8YXNzaWduZWQ+CisgICAgICAgIDxhIGhyZWY9Im1haWx0bzpuaWMuaG9iYnNAdWsucHdjZ2xvYmFsLmNvbSI+TmljIEhvYmJzPC9hPgorICAgICAgPC9hc3NpZ25lZD4KKyAgICA8L3Rhc2s+CisKKyAgPC90YXNrLWxpc3Q+CisKKyAgPHRhc2stbGlzdCBuYW1lPSJMb2dpYyBUYWcgTGlicmFyeSBbb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljXSIKKyAgICAgICAgICAgICBocmVmPSJMb2dpYyI+CisKKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgdGFnIGxpYnJhcnkgcHJvdmlkZXMgbWVjaGFuaXNtcyB0byBjb25kaXRpb25hbGx5IHByb2Nlc3MKKyAgICAgIG5lc3RlZCBib2R5IGNvbnRlbnQgYmFzZWQgb24gYSB2YXJpZXR5IG9mIGxvZ2ljYWwgY29uZGl0aW9ucy48L3A+CisgICAgPC9pbmZvPgorCisgICAgPHRhc2sgbmFtZT0iJ0Vsc2UnIGFuZCAnRWxzZSBJZicgQ2FwYWJpbGl0eSBhbmQgT3RoZXIgQ29uZGl0aW9uYWwgU3RydWN0dXJlcyI+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+QWRkICJlbHNlIiBhbmQgImVsc2UgaWYiIGNvbnN0cnVjdHMgdG8gdGhlIGV4aXN0aW5nIGNvbmRpdGlvbmFsCisgICAgICAgIHRhZ3MsIGluIHNvbWUgcmVhc29uYWJsZSBmb3JtYXQuPC9wPgorICAgICAgICA8cD5BZGQgY29uZGl0aW9uYWwgdGFncyB0aGF0IGVtdWxhdGUgdGhlICJjYXNlIiBvciAic3dpdGNoIgorICAgICAgICBjYXBhYmlsaXR5IG9mIG1hbnkgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLjwvcD4KKyAgICAgICAgPHA+Tk9URTogUGVuZGluZyB0aGUgb3V0Y29tZSBvZiB0aGUgSlNQVEwsIHRoaXMgZnVuY3Rpb25hbGl0eSB3aWxsIAorICAgICAgICA8c3Ryb25nPm5vdDwvc3Ryb25nPiBiZSBhZGRlZCB0byB0aGUgU3RydXRzLUxvZ2ljIHRhZ3MuIEhvd2V2ZXIsIGEgCisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9odXN0ZWQuY29tL3N0cnV0cy9yZXNvdXJjZXMvbG9naWMtbmlhbGxwLmh0bSI+PHN0cm9uZz5jb250cmlidXRvciAKKyAgICAgICAgIHRhZ2xpYjwvc3Ryb25nPjwvYT4gaXMgYXZhaWxhYmxlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICAgIDxhc3NpZ25lZD4KKyAgICAgICAgPGEgaHJlZj0ibWFpbHRvOm5pYWxsLnBlbWJlcnRvbkBidEludGVybmV0LmNvbSI+TmlhbGwgUGVtYmVydG9uPC9hPgorICAgICAgPC9hc3NpZ25lZD4KKyAgICA8L3Rhc2s+CisKKyAgICA8dGFzayBuYW1lPSJJdGVyYXRpbmcgUGFyYWxsZWwgQ29sbGVjdGlvbnMiPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPkVuaGFuY2UgPGNvZGU+Jmx0O2xvZ2ljOml0ZXJhdGUmZ3Q7PC9jb2RlPiwgb3IgcHJvdmlkZSBhIG5ldworICAgICAgICB0YWcsIHRvIGl0ZXJhdGUgb3ZlciBtdWx0aXBsZSBjb2xsZWN0aW9ucyBpbiBwYXJhbGxlbC48L3A+CisgICAgICAgIDxwPgorICAgICAgICBbU1RSVVRTLURFViwgSmVmZiBSLiwgMDgvMDMvMjAwMF0KKyAgICAgICAgPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvdGFzaz4KKworICA8L3Rhc2stbGlzdD4KKworCisgIDx0YXNrLWxpc3QgbmFtZT0iV01MIFRhZyBMaWJyYXJ5IFtvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIud21sXSIKKyAgICAgICAgICAgICBocmVmPSJXTUwiPgorCisgICAgPGluZm8+CisgICAgPHA+VGhpcyB0YWcgbGlicmFyeSB3aWxsIGNvbnRhaW4gdGFncyB1c2VmdWwgaW4gcHJlcGFyaW5nIHdlYiBhcHBsaWNhdGlvbnMKKyAgICBzaW1pbGFyIHRvIHRob3NlIHN1cHBvcnRlZCBieSB0aGUgSFRNTCB0YWcgbGlicmFyeSwgYnV0IHJlbmRlciBvdXRwdXQgdGhhdAorICAgIGlzIHdlbGwtZm9ybWVkIFhNTCBpbiBhY2NvcmRhbmNlIHdpdGggV01MIHNwZWNpZmljYXRpb25zLjwvcD4KKyAgICA8L2luZm8+CisKKyAgPC90YXNrLWxpc3Q+CisKKworICA8dGFzay1saXN0IG5hbWU9IlhGT1JNUyBUYWcgTGlicmFyeSBbb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnhmb3Jtc10iCisgICAgICAgICAgICAgaHJlZj0ieGZvcm1zIj4KKworICAgIDxpbmZvPgorICAgICAgPHA+VGhpcyBwb3RlbnRpYWwgbmV3IHRhZyBsaWJyYXJ5IHByb3ZpZGVzIGFjY2VzcyB0byBmYWNpbGl0aWVzIGluIHRoZQorICAgICAgZW1lcmdpbmcgWEZvcm1zIHN0YW5kYXJkcy48L3A+CisgICAgPC9pbmZvPgorCisgICAgPHRhc2sgbmFtZT0iR2VuZXJhbGl6ZWQgRm9ybSBIYW5kbGluZyI+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+Q29uc2lkZXIgaG93IHRvIHN1cHBvcnQgbW9yZSBnZW5lcmFsaXplZCBkZWZpbml0aW9ucyBvZiBmb3JtcyBhbmQKKyAgICAgICAgdGhlaXIgZmllbGRzLCBwZXJoYXBzIGJhc2VkIG9uIGVtZXJnaW5nIFhGb3JtcyBzdGFuZGFyZHMuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvdGFzaz4KKworICA8L3Rhc2stbGlzdD4KKworCisgIDx0YXNrLWxpc3QgbmFtZT0iWEhUTUwgVGFnIExpYnJhcnkgW29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi54aHRtbF0iCisgICAgICAgICAgICAgaHJlZj0iWEhUTUwiPgorCisgICAgPGluZm8+CisgICAgPHA+VGhpcyB0YWcgbGlicmFyeSB3aWxsIGNvbnRhaW4gdGFncyB1c2VmdWwgaW4gcHJlcGFyaW5nIHdlYiBhcHBsaWNhdGlvbnMKKyAgICBzaW1pbGFyIHRvIHRob3NlIHN1cHBvcnRlZCBieSB0aGUgSFRNTCB0YWcgbGlicmFyeSwgYnV0IHJlbmRlciBvdXRwdXQgdGhhdAorICAgIGlzIHdlbGwtZm9ybWVkIFhNTCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFhIVE1MIDEuMCBzcGVjaWZpY2F0aW9uLjwvcD4KKyAgICA8L2luZm8+CisKKyAgPC90YXNrLWxpc3Q+CisKKworICA8dGFzay1saXN0IG5hbWU9IlRvb2xzIFN1cHBvcnQgW29yZy5hcGFjaGUuc3RydXRzLnRvb2xzXSIKKyAgICAgICAgICAgICBocmVmPSJUb29scyI+CisKKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgcGFja2FnZSBjb250YWlucyBjb2RlIGdlbmVyYXRvcnMgYW5kIG90aGVyIHRvb2xzIHRoYXQKKyAgICAgIGZhY2lsaXRhdGUgdGhlIGNyZWF0aW9uIG9mIFN0cnV0cy1iYXNlZCBhcHBsaWNhdGlvbnMuICBGdXJ0aGVyCisgICAgICBzdWJkaXZpc2lvbiBpbnRvIHNwZWNpYWxpemVkIHBhY2thZ2VzIHNob3VsZCBiZSBwZXJmb3JtZWQgYXMKKyAgICAgIGFwcHJvcHJpYXRlLjwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8dGFzayBuYW1lPSJYTUwgLS0mZ3Q7IEFjdGlvbkZvcm0gQ29kZSBHZW5lcmF0b3IiPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPkNyZWF0ZSBhIHRvb2wgdGhhdCB0YWtlcyBhbiBYTUwtYmFzZWQgZGVzY3JpcHRpb24gb2YgdGhlCisgICAgICAgIHByb3BlcnRpZXMgb2YgdGhlIGZvcm0gYmVhbiwgYW5kIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzCisgICAgICAgIHRoZSBjb3JyZXNwb25kaW5nIEphdmEgY2xhc3MuPC9wPgorICAgICAgICA8cD48YSBocmVmPSJodHRwOi8vaHVzdGVkLmNvbS9zdHJ1dHMvcmVzb3VyY2VzL2NvZGVtYWtlci5odG0iPjxzdHJvbmc+QSAKKyAgICAgICAgY29udHJpYnV0b3IgZXh0ZW5zaW9uIGlzIG5vdyBhdmFpbGFibGUuPC9zdHJvbmc+PC9hPjwvcD4KKyAgICAgICAgPHA+CisgICAgICAgIFtTVFJVVFMtREVWLCBNYXJrIFd1dGthLCAwNi8wMS8yMDAwIGFuZCAwNi8xNi8yMDAwXQorICAgICAgICA8L3A+CisgICAgICA8L2luZm8+CisgICAgICA8YXNzaWduZWQ+CisgICAgICAgIDxhIGhyZWY9InJhdmlAc2VuZ2VuLmNvbSI+UmF2aW5kcmFuIFJhbWFpYWg8L2E+CisgICAgICA8L2Fzc2lnbmVkPgorICAgIDwvdGFzaz4KKworICA8L3Rhc2stbGlzdD4KKworCisgIDx0YXNrLWxpc3QgbmFtZT0iVXRpbGl0eSBDbGFzc2VzIFtvcmcuYXBhY2hlLnN0cnV0cy51dGlsXSIgaHJlZj0iVXRpbCI+CisKKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgcGFja2FnZSBjb250YWlucyBhIHZhcmlldHkgb2YgdXRpbGl0eSBjbGFzc2VzIHVzZWZ1bCB3aXRoaW4KKyAgICAgIFN0cnV0cyBhcyB3ZWxsIGFzIGluIHN0YW5kLWFsb25lIGFwcGxpY2F0aW9ucy48L3A+CisgICAgPC9pbmZvPgorCisgICAgPHRhc2sgbmFtZT0iWG1sTWVzc2FnZVJlc291cmNlcyI+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gYW5kCisgICAgICAgIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiB0aGF0IGxvYWRzIG1lc3NhZ2Uga2V5cworICAgICAgICBhbmQgc3RyaW5ncyBmcm9tIG9uZSBvciBtb3JlIFhNTCByZXNvdXJjZXMgb3IgZmlsZXMuPC9wPgorICAgICAgICA8cD4KKyAgICAgICAgW1NUUlVUUy1ERVYsIFNjb3R0IFNheWxlcywgMDEvMDcvMjAwMF0KKyAgICAgICAgPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvdGFzaz4KKworICAgIDx0YXNrIG5hbWU9IkVuaGFuY2VkIENvbGxlY3Rpb25zIFN1cHBvcnQiPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPkltcHJvdmUgc3VwcG9ydCBpbiA8Y29kZT5CZWFuVXRpbHM8L2NvZGU+LAorICAgICAgICA8Y29kZT5Db252ZXJ0VXRpbHM8L2NvZGU+LCBhbmQgPGNvZGU+UHJvcGVydHlVdGlsczwvY29kZT4gZm9yIHByb3BlcnR5CisgICAgICAgIHZhbHVlcyB0aGF0IGltcGxlbWVudCA8Y29kZT5Db2xsZWN0aW9uPC9jb2RlPiwgPGNvZGU+TGlzdDwvY29kZT4sIG9yCisgICAgICAgIDxjb2RlPlNldDwvY29kZT4sIHRyZWF0aW5nIHRoZW0gaW4gYSBtYW5uZXIgc2ltaWxhciB0byB0aGUgd2F5IHRoYXQKKyAgICAgICAgaW5kZXhlZCBvciBhcnJheS12YWx1ZWQgcHJvcGVydGllcyBhcmUgaGFuZGxlZC48L3A+CisgICAgICAgIDxwPgorICAgICAgICBbQnVnemlsbGEgIzY0MF0KKyAgICAgICAgPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvdGFzaz4KKyAgPC90YXNrLWxpc3Q+CisKKyAgPHRhc2stbGlzdCBuYW1lPSJVbml0IFRlc3QgU3VpdGVzIiBocmVmPSJVbml0VGVzdHMiPgorCisgICAgPGluZm8+CisgICAgICA8cD5Vbml0IHRlc3QgY29tcG9uZW50cyBjb21wYXRpYmxlIHdpdGggdGhlIEpVbml0IGFuZCBDYWN0dXMgdGVzdGluZworICAgICAgZnJhbWV3b3JrcywgdG8gdGVzdCBhbmQgdmFsaWRhdGUgaW50ZXJuYWwgQVBJcyBvZiB0aGUgU3RydXRzIGZyYW1ld29yay4KKyAgICAgIFZvbHVudGVlcnMgd2lsbCB0eXBpY2FsbHkgYWdyZWUgdG8gZGV2ZWxvcCB0ZXN0cyBmb3IgYW4gZW50aXJlIHBhY2thZ2UKKyAgICAgIHdpdGhpbiB0aGUgSmF2YSBzb3VyY2UgY29kZSBvZiBTdHJ1dHMuCisgICAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPHRhc2sgbmFtZT0iQWN0aW9uIj4KKyAgICAgIDxpbmZvPgorICAgICAgICA8cD5Vbml0IHRlc3RzIGZvciB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9jb2RlPiBwYWNrYWdlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICAgIDxhc3NpZ25lZD4KKyAgICAgICAgPGEgaHJlZj0ibWFpbHRvOnN0cnV0cy10ZXN0QGZyZWV0b2NyZWF0ZS5vcmciPlJvYiBMZWxhbmQ8L2E+CisgICAgICA8L2Fzc2lnbmVkPgorICAgIDwvdGFzaz4KKworICAgIDx0YXNrIG5hbWU9IkFjdGlvbnMiPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPlVuaXQgdGVzdHMgZm9yIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9jb2RlPiBwYWNrYWdlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L3Rhc2s+CisKKyAgICA8dGFzayBuYW1lPSJUYWdsaWIuQmVhbiI+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+VW5pdCB0ZXN0cyBmb3IgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9jb2RlPiBwYWNrYWdlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L3Rhc2s+CisKKyAgICA8dGFzayBuYW1lPSJUYWdsaWIuSHRtbCI+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+VW5pdCB0ZXN0cyBmb3IgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPiBwYWNrYWdlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L3Rhc2s+CisKKyAgICA8dGFzayBuYW1lPSJUYWdsaWIuTG9naWMiPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPlVuaXQgdGVzdHMgZm9yIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+IHBhY2thZ2UuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvdGFzaz4KKworICAgIDx0YXNrIG5hbWU9IlRhZ2xpYi5UZW1wbGF0ZSI+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+VW5pdCB0ZXN0cyBmb3IgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvY29kZT4gcGFja2FnZS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC90YXNrPgorCisgICAgPHRhc2sgbmFtZT0iVXBsb2FkIj4KKyAgICAgIDxpbmZvPgorICAgICAgICA8cD5Vbml0IHRlc3RzIGZvciB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnVwbG9hZDwvY29kZT4gcGFja2FnZS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC90YXNrPgorCisgICAgPHRhc2sgbmFtZT0iVXRpbCI+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+VW5pdCB0ZXN0cyBmb3IgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L2NvZGU+IHBhY2thZ2UuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvdGFzaz4KKworICA8L3Rhc2stbGlzdD4KKworCisgIDx0YXNrLWxpc3QgbmFtZT0iQWRkaXRpb25hbCBQb3NzaWJpbGl0aWVzIiBocmVmPSJBZGRpdGlvbmFsIj4KKworICAgIDxpbmZvPgorICAgICAgPHA+VGhpcyBzZWN0aW9uIGlzIGEgY2F0Y2gtYWxsIGZvciBhZGRpdGlvbmFsIGFyZWFzIG9mIGZ1bmN0aW9uYWxpdHkKKyAgICAgIHRvIGJlIGludmVzdGlnYXRlZCBmb3IgaW5jbHVzaW9uIGludG8gU3RydXRzLjwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8dGFzayBuYW1lPSJDb2Fyc2UgR3JhaW4gQ29tcG9uZW50cyI+CisgICAgICA8aW5mbz4KKyAgICAgICAgW1NUUlVUUy1ERVYsIENlZHJpYyBEdW1vdWxpbiwgMTAvMDMvMjAwMF0KKyAgICAgIDwvaW5mbz4KKyAgICA8L3Rhc2s+CisKKyAgICA8dGFzayBuYW1lPSJNdWx0aWRpbWVuc2lvbmFsIFByb3BlcnRpZXMiPgorICAgICAgPGluZm8+CisgICAgICAgIFtTVFJVVFMtREVWLCBFcmljLCAxMS8wNy8yMDAwXQorICAgICAgPC9pbmZvPgorICAgIDwvdGFzaz4KKworICAgIDx0YXNrIG5hbWU9IlBvcnRhbCBDb21wb25lbnRzIj4KKyAgICAgIDxpbmZvPgorICAgICAgICBbU1RSVVRTLURFViwgUGhpbCBHcmltbSwgMTEvMjIvMjAwMF0KKyAgICAgIDwvaW5mbz4KKyAgICAgIDxhc3NpZ25lZD4KKyAgICAgICAgPGEgaHJlZj0ibWFpbHRvOmh1c3RlZEBhcGFjaGUub3JnIj5UZWQgSHVzdGVkPC9hPgorICAgICAgPC9hc3NpZ25lZD4KKyAgICA8L3Rhc2s+CisKKyAgICA8dGFzayBuYW1lPSJTdG9yZWZyb250IEV4YW1wbGUgQXBwIj4KKyAgICAgIDxpbmZvPgorICAgICAgICBbU1RSVVRTLURFViwgRGF2aWQgRCdPcnRvLCAxMi8xMS8yMDAwXQorICAgICAgPC9pbmZvPgorICAgIDwvdGFzaz4KKworICA8L3Rhc2stbGlzdD4KKworCisgIDx0YXNrLWxpc3QgbmFtZT0iQ29udHJpYnV0b3JzIEFyZWEiIGhyZWY9IkNvbnRyaWIiPgorCisgICAgPGluZm8+CisgICAgICA8cD5BIHBvcnRpb24gb2YgdGhlIFN0cnV0cyB3ZWIgc2l0ZSwgYW5kIGZpbGUgc3lzdGVtLCB3aGVyZSBpbmRpdmlkdWFsbHkKKyAgICAgIGNvbnRyaWJ1dGVkIGFkZC1vbnMgZm9yIFN0cnV0cyBjYW4gYmUgaG9zdGVkIGFuZCBkb3dubG9hZGVkLjwvcD4gICAgICAKKyAgICA8L2luZm8+CisgICAgCisgICAgPHRhc2sgbmFtZT0iUHJvcG9zYWwiPgorICAgICA8aW5mbz4KKyAgICAgICA8cD5EZXRhaWxlZCBwcm9wb3NhbCB3aXRoIGltcGxlbWVudGF0aW9uIHBsYW4uPC9wPgorICAgICAgIDxwPiBbU1RSVVRTLVVTRVIsIE5lZCBTZWFnb29uLCAxMi8yMi8yMDAwXTwvcD4KKyAgICAgPC9pbmZvPgorICAgICA8YXNzaWduZWQ+CisgICAgICA8YSBocmVmPSJtYWlsdG86aHVzdGVkQGFwYWNoZS5vcmciPlRlZCBIdXN0ZWQ8L2E+CisgICAgIDwvYXNzaWduZWQ+CisgICAgPC90YXNrPgorCisgIDwvdGFzay1saXN0PgorCisKKyAgPC9ib2R5PgorCis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcHJvcG9zYWxzL3dvcmtmbG93LnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy93b3JrZmxvdy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzlmMjkxMwotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3Byb3Bvc2Fscy93b3JrZmxvdy54bWwKQEAgLTAsMCArMSwzOTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0iLi9wcm9wb3NhbC13b3JrZmxvdy54bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5Qcm9wb3NhbCAtIFdvcmtmbG93IE1hbmFnZW1lbnQgU3lzdGVtPC90aXRsZT4KKyAgPC9wcm9wZXJ0aWVzPgorCisgIDxib2R5PgorCisgICAgPHNlY3Rpb24gbmFtZT0iUmVjZW50IERldmVsb3BtZW50cyI+CisKKyAgICAgICAgPHA+CisgICAgICAgICAgICBXb3JrIG9uIHRoaXMgaW5pdGlhdGl2ZSBoYXMgc3RhbGxlZC4KKyAgICAgICAgICAgIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgaW50ZXJlc3RlZCBwYXJ0aWVzIGxvb2sgdG8gdGhlCisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvamVsbHkvaW5kZXguaHRtbCI+Q29tbW9ucyBKZWxseTwvYT4gcHJvZHVjdC4KKyAgICAgICAgICAgIEEgd2F5IHRvIHBlcnNpc3QgdGhlIHdvcmtmbG93IHN0YXRlIGJldHdlZW4gc2Vzc2lvbnMgaXMgbmVlZGVkLCBidXQgSmVsbHkgb3RoZXJ3aXNlIGZpbGxzIHRoZSBuZWVkcyBpZGVudGlmaWVkIGJ5IHRoaXMgcHJvcG9zYWwuCisgICAgICAgIDwvcD4KKworICAgIDwvc2VjdGlvbj4KKworICA8c2VjdGlvbiBuYW1lPSJCYWNrZ3JvdW5kIGFuZCBHb2FscyI+CisKKyAgPHA+U3RydXRzIDEuMCBoYXMgYmVjb21lIGFuIGluY3JlYXNpbmdseSBwb3B1bGFyIHBsYXRmb3JtIGZvciBjb25zdHJ1Y3RpbmcKKyAgd2ViIGFwcGxpY2F0aW9ucyBiYXNlZCBvbiBhIE1vZGVsLVZpZXctQ29udHJvbGxlciB0eXBlIGRlc2lnbiBwYXR0ZXJuIChhbHNvCisgIGtub3duIGFzIHRoZSA8ZW0+RnJvbnQgQ29udHJvbGxlcjwvZW0+IHBhdHRlcm4uICBJdCBoYXMgYWNoaWV2ZWQgdGhpcworICBwb3B1bGFyaXR5IGZvciBtYW55IHJlYXNvbnMsIGJ1dCBrZXkgYW1vbmcgdGhlbSBoYXZlIGJlZW46PC9wPgorICA8dWw+CisgIDxsaT5UaGUgc2ltcGxpY2l0eSBvZiB0aGUgYmFzaWMgb3JnYW5pemF0aW9uYWwgcHJpbmNpcGxlcyAob25jZSB5b3UKKyAgICAgIHVuZGVyc3RhbmQgdGhlbSk8L2xpPgorICA8bGk+VGhlIHByaW5jaXBsZSBvZiA8ZW0+bG9naWNhbCBuYW1pbmc8L2VtPiB0byBhc3Npc3QgaW4gaXNvbGF0aW5nCisgICAgICB0aGUgdmlldyBsYXllciBhbmQgdGhlIG1vZGVsIGxheWVyLCBzbyB0aGF0IGNoYW5nZXMgaW4gb25lIGRvIG5vdAorICAgICAgaGF2ZSB0byBpbXBhY3QgdGhlIG90aGVyPC9saT4KKyAgPGxpPkEgcmljaCBzZXQgb2YgdG9vbHMgdG8gYXNzaXN0IGluIGNyZWF0aW5nIHBhZ2VzIHdpdGggZHluYW1pYyBjb250ZW50CisgICAgICBleHBvc2VkIGJ5IHRoZSBtb2RlbCBsYXllciB0aHJvdWdoIEphdmFCZWFuczwvbGk+CisgIDwvdWw+CisKKyAgPHA+T25lIGNvbnNlcXVlbmNlIG9mIHRoZSBvcmlnaW5hbCBTdHJ1dHMgZGVzaWduLCBob3dldmVyLCBpcyB0aGF0IHRoZQorICBmcmFtZXdvcmsgZG9lcyBub3QgcHJvdmlkZSBtdWNoIGFzc2lzdGFuY2UgaW4gb3JnYW5pemluZyBidXNpbmVzcworICB0cmFuc2FjdGlvbnMgdGhhdCByZXF1aXJlIG1vcmUgdGhhbiBvbmUgaW50ZXJhY3Rpb24gd2l0aCB0aGUgdXNlciAoaS5lLgorICB0aGV5IHNwYW4gbW9yZSB0aGFuIG9uZSBKU1AgcGFnZSBhbmQvb3IgQWN0aW9uKS4gIEFwcGxpY2F0aW9ucyBhcmUgbGVmdAorICB0byBtYW5hZ2UgbmF2aWdhdGlvbiBpc3N1ZXMsIGFzIHdlbGwgYXMgZGVhbCB3aXRoIEFjdGlvbkZvcm1zIHdob3NlCisgIGxvZ2ljYWwgY29udGVudHMgY3Jvc3NlcyBwYWdlIGJvdW5kYXJpZXMuPC9wPgorCisgIDxwPlRoZSBvcmlnaW5hbCBTdHJ1dHMgZGVzaWduIG1hdGVyaWFsbHkgYXNzaXN0cyBwYWdlIGRlc2lnbmVycyBpbiBjcmVhdGluZworICBkeW5hbWljIHBhZ2VzLCB3aGlsZSBwcm90ZWN0aW5nIHRoZW0gZnJvbSBoYXZpbmcgdG8gYmUgdmVyeSBjb25jZXJuZWQgd2l0aAorICB0aGUgYnVzaW5lc3MgbG9naWMgLS0gb3RoZXIgdGhhbiB0aGUgbmFtZXMgb2YgdGhlIEphdmFCZWFucyB1c2VkIHRvCisgIGNvbW11bmljYXRlIG1vZGVsIGxheWVyIGRhdGEgdG8gdGhlIHByZXNlbnRhdGlvbiBsYXllci4gIEhvd2V2ZXIsIFN0cnV0cyAxLjAKKyAgc3RpbGwgcmVxdWlyZXMgYSBKYXZhIGRldmVsb3BlciB0byBiZSBpbnZvbHZlZCBvbiB0aGUgYnVzaW5lc3MgbG9naWMgc2lkZQorICAoZXZlbiBpZiBhbGwgb2YgdGhlIGZ1bmN0aW9uYWwgbG9naWMgaXMgYWxyZWFkeSBhdmFpbGFibGUgaW4gSmF2YSBjbGFzc2VzKQorICBpbiBvcmRlciB0byBjcmVhdGUgdGhlIEFjdGlvbiBjbGFzc2VzLjwvcD4KKworICA8cD5UaGUgcHVycG9zZSBvZiB0aGlzIDxlbT5Xb3JrZmxvdyBNYW5hZ2VtZW50IFN5c3RlbTwvZW0+IHByb3Bvc2FsIGlzIHRvCisgICAgIGFkZHJlc3Mgc29tZSBvZiB0aGVzZSBjb25zZXF1ZW5jZXMuICBJbiBwYXJ0aWN1bGFyLCBpdCBpbnRlbmRzIHRvIGFkZHJlc3MKKyAgICAgdGhlIGZvbGxvd2luZyBzZXQgb2YgZ29hbHM6PC9wPgorICA8dWw+CisgIDxsaT5DcmVhdGUgYSBtZWFucyB3aGVyZSBtdWx0aXBsZS11c2VyLWludGVyYWN0aW9uIGJ1c2luZXNzIHByb2Nlc3NlcyBjYW4gYmUKKyAgICAgIGNvbmZpZ3VyZWQgKHNjcmlwdGVkKSwgaW5jbHVkaW5nIHN1cHBvcnQgZm9yIGNvbmRpdGlvbmFsIHByb2Nlc3NpbmcKKyAgICAgIGFuZCBicmFuY2hpbmcuPC9saT4KKyAgPGxpPlN1cHBvcnQgc2NyaXB0aW5nIGVsZW1lbnRzIHRoYXQgbGV0cyBidXNpbmVzcyBhcHBsaWNhdGlvbiBleHBlcnRzLAorICAgICAgd2hvIGFyZSBub3QgbmVjZXNzYXJpbHkgSmF2YSBkZXZlbG9wZXJzLCBjYW4gaW50ZWdyYXRlIHByZS1leGlzdGluZworICAgICAgYnVzaW5lc3MgZnVuY3Rpb25hbGl0eSB0aGF0IGlzIGF2YWlsYWJsZSBhcyBwdWJsaWMgbWV0aG9kcyBvbgorICAgICAgYXJiaXRyYXJ5IEphdmEgY2xhc3Nlcy48L2xpPgorICA8bGk+QXNzaXN0IHBhZ2UgZGVzaWduZXJzIGluIGNyZWF0aW5nIHRoZSB1c2VyIGludGVyZmFjZSBlbGVtZW50cyB0aGF0CisgICAgICBjb3JyZXNwb25kIHRvIG5hdmlnYXRpb24gbGlua3Mgd2l0aGluLCBvciBiZXR3ZWVuLCB3b3JrIGZsb3dzLjwvbGk+CisgIDwvdWw+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iVXNlIENhc2VzIGFuZCBFeGFtcGxlcyI+CisKKyAgICA8cD5UbyBnaXZlIGEgZmxhdm9yIG9mIHdoYXQgc2NyaXB0ZWQgd29ya2Zsb3cgYWN0aXZpdGllcyBtaWdodCBsb29rIGxpa2UsCisgICAgaXQgaXMgdXNlZnVsIHRvIGNvbnNpZGVyIHNvbWUgcG9zc2libGUgdXNlIGNhc2Ugc2NlbmFyaW9zLiAgVGhlCisgICAgc3ludGF4IHRoYXQgaXMgc2hvd24gZm9yIHRoZSBleGFtcGxlcyBzaG91bGQgYmUgY29uc2lkZXJlZCBhcworICAgIGlsbHVzdHJhdGl2ZSBvZiB3aGF0IHNob3VsZCBiZSBwb3NzaWJsZSwgcmF0aGVyIHRoYW4gbm9ybWF0aXZlLgorICAgIE5vIHJpZ29yb3VzIGF0dGVtcHQgaGFzIGJlZW4gbWFkZSB0byBndWFyYW50ZWUgY29uc2lzdGVuY3kKKyAgICBiZXR3ZWVuIChvciBldmVuIHdpdGhpbikgdGhlc2UgZXhhbXBsZXMuPC9wPgorCisgICAgPHN1YnNlY3Rpb24gbmFtZT0iQXBwbGljYXRpb24gTG9nb24iPgorCisgICAgICA8cD5UaGUgZXhhbXBsZSBhcHBsaWNhdGlvbiBpbmNsdWRlZCB3aXRoIFN0cnV0cyAobGlrZSBtYW55IG90aGVyCisgICAgICB3ZWIgYXBwbGljYXRpb25zKSB1c2VzIGFwcGxpY2F0aW9uLW1hbmFnZWQgc2VjdXJpdHksIGluY2x1ZGluZworICAgICAgYSBsb2dvbiBmb3JtLiAgQ29uc2lkZXIgdGhhdCBhIGJ1c2luZXNzIGxvZ2ljIGJlYW4gbWlnaHQgYmUgYXZhaWxhYmxlCisgICAgICAoaW4gc29tZSBzY29wZSB1bmRlciBrZXkgPGNvZGU+YXV0aGVudGljYXRvcjwvY29kZT4pCisgICAgICB0aGF0IGtub3dzIGhvdyB0byBhdXRoZW50aWNhdGUgdXNlcnMgZ2l2ZW4gYSB1c2VybmFtZSBhbmQgcGFzc3dvcmQuCisgICAgICBJdCBjb3VsZCBiZSB1dGlsaXplZCB0byBzY3JpcHQgYXBwbGljYXRpb24gbG9nb24gbGlrZSB0aGlzOjwvcD4KKworPHByZT4KKyZsdDthY3Rpdml0eSBpZD0iQXBwbGljYXRpb24gTG9nb24iJmd0OworCisgICZsdDstLSBEaXNwbGF5IHRoZSBsb2dvbiBmb3JtICh3ZWIgZnJhbWV3b3JrIGluZGVwZW5kZW50KSAtLSZndDsKKyAgJmx0O3dlYjpmb3J3YXJkIGlkPSJkaXNwbGF5IiBwYWdlPSIvbG9nb24uanNwIi8mZ3Q7CisKKyAgJmx0Oy0tIEF1dGhlbnRpY2F0ZSB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkLCByZXR1cm5pbmcgYSBQcmluY2lwYWwKKyAgICAgIGlmIGFjY2VwdGVkLCBvciBudWxsIGlmIG5vdCAtLSZndDsKKyAgJmx0O3dlYjpzZXQgIG5hbWU9InVzZXJuYW1lIiB2YWx1ZT0iJHBhcmFtZXRlcjp1c2VybmFtZSIvJmd0OworICAmbHQ7d2ViOnNldCAgbmFtZT0icGFzc3dvcmQiIHZhbHVlPSIkcGFyYW1ldGVyOnBhc3N3b3JkIi8mZ3Q7CisgICZsdDtjb3JlOmludm9rZSBiZWFuPSJhdXRoZW50aWNhdG9yIiBtZXRob2Q9ImF1dGhlbnRpY2F0ZSImZ3Q7CisgICAgJmx0O2NvcmU6cGFyYW0gdHlwZT0iamF2YS5sYW5nLlN0cmluZyIgdmFsdWU9IiR1c2VybmFtZSIvJmd0OworICAgICZsdDtjb3JlOnBhcmFtIHR5cGU9ImphdmEubGFuZy5TdHJpbmciIHZhbHVlPSIkcGFzc3dvcmQiLyZndDsKKyAgICAmbHQ7Y29yZTpyZXR1cm4gbmFtZT0icHJpbmNpcGFsIi8mZ3Q7CisgICZsdDsvY29yZTppbnZva2UmZ3Q7CisKKyAgJmx0Oy0tIElmIG5vIFByaW5jaXBhbCB3YXMgcmV0dXJuZWQsIGJyYW5jaCBiYWNrIHRvIHRoZSBsb2dvbiBmb3JtIC0tJmd0OworICAmbHQ7Y29yZTppZiBleHByPSIkcHJpbmNpcGFsID09IG51bGwiJmd0OworICAgICZsdDt3ZWI6c2V0IG5hbWU9ImVycm9yIiB2YWx1ZT0iJG1lc3NhZ2VzLmxvb2t1cCgnaW52YWxpZC5sb2dvbicpIi8mZ3Q7CisgICAgJmx0O2NvcmU6YnJhbmNoIGlkcmVmPSJkaXNwbGF5Ii8mZ3Q7CisgICZsdDsvY29yZTppZiZndDsKKworICAmbHQ7LS0gRXhpdCB0byB0aGUgIk1haW4gTWVudSIgd29ya2Zsb3cgLS0mZ3Q7CisgICZsdDtjb3JlOmdvdG8gbmFtZT0iTWFpbiBNZW51Ii8mZ3Q7CisKKyZsdDsvYWN0aXZpdHkmZ3Q7Cis8L3ByZT4KKworICAgIDwvc3Vic2VjdGlvbj4KKworCisgICAgPHN1YnNlY3Rpb24gbmFtZT0iU2ltcGxlIE11bHRpLVBhZ2UgV2l6YXJkIj4KKworICAgICAgPHA+TWFueSBjb21wbGV4IGRhdGEgZW50cnkgb3BlcmF0aW9ucyBjYW4gYmUgc2ltcGxpZmllZCAoZnJvbSB0aGUKKyAgICAgIHVzZXIncyBwb2ludCBvZiB2aWV3KSBieSBkaXZpZGluZyB0aGVtIHVwIGludG8gYSBzZXJpZXMgb2Ygc2ltcGxlCisgICAgICBkaWFsb2cgcGFnZXMgdGhhdCBhc2sgYSBmZXcgKG9mdGVuIG9uZSkgcXVlc3Rpb24gdGhhdCBsZWFkcyB1bHRpbWF0ZWx5CisgICAgICB0byBhIGNvbXBsZXRlZCBzZXQgb2YgaW5mb3JtYXRpb24gcmVxdWlyZWQgdG8gcHJvY2VzcyBhIHJlcXVlc3QuCisgICAgICBJbiBtYW55IGNhc2VzLCBlYWNoIHBhZ2Ugb2YgdGhlIGludGVyYWN0aW9uIHdpbGwgaGF2ZSBuYXZpZ2F0aW9uCisgICAgICBjb250cm9scyBzbyB0aGF0IHRoZSB1c2VyIGNhbiBzaG9ydCBjdXQgdG8gaW1tZWRpYXRlIGV4ZWN1dGlvbiwKKyAgICAgIG9yIGNhbmNlbCB0aGUgZW50aXJlIGludGVyYWN0aW9uLiAgU3VjaCBhbiBpbnRlcmFjdGlvbiBtaWdodCBiZQorICAgICAgbW9kZWxsZWQgbGlrZSB0aGlzOjwvcD4KKworPHByZT4KKyZsdDthY3Rpdml0eSBpZD0iU2ltcGxlIFdpemFyZCBBcHBsaWNhdGlvbiImZ3Q7CisKKyAgJmx0OyEtLSBEaXNwbGF5IHRoZSBmaXJzdCBwYWdlIG9mIHRoZSBpdGVyYXRpb24gLS0mZ3Q7CisgICZsdDshLS0gKFVzaW5nIFN0cnV0cy1zcGVjaWZpYyBsb2dpY2FsLXRvLXBoeXNpY2FsIG1hcHBpbmcpIC0tJmd0OworICAmbHQ7c3RydXRzOmZvcndhcmQgaWQ9InBhZ2UxIiBuYW1lPSJTaW1wbGUgV2l6YXJkIFBhZ2UgMSImZ3Q7CisKKyAgJmx0OyEtLSBQcm9jZXNzIG5hdmlnYXRpb24gaW5wdXQgZnJvbSB0aGUgZmlyc3QgcGFnZSAtLSZndDsKKyAgJmx0OyEtLSAoQ2FuIGRvIHNvbWV0aGluZyBtdWNoIGxpa2UgdGhpcyBmcmFtZXdvcmstaW5kZXBlbmRlbnRseSB0b28pIC0tJmd0OworICAmbHQ7c3RydXRzOm5hdmlnYXRlJmd0OworICAgICZsdDtzdHJ1dHM6YnJhbmNoIGNvbnRyb2w9IkNBTkNFTCIgaWRyZWY9ImNhbmNlbCIvJmd0OworICAgICZsdDtzdHJ1dHM6YnJhbmNoIGNvbnRyb2w9IkZJTklTSCIgaWRyZWY9ImZpbmlzaCIvJmd0OworICAgICZsdDtzdHJ1dHM6YnJhbmNoIGNvbnRyb2w9Ik5FWFQiICAgaWRyZWY9InBhZ2UyIi8mZ3Q7CisgICZsdDsvc3RydXRzOm5hdmlnYXRlJmd0OworCisgICZsdDshLS0gRGlzcGxheSB0aGUgc2Vjb25kIHBhZ2Ugb2YgdGhlIGl0ZXJhdGlvbiAtLSZndDsKKyAgJmx0O3N0cnV0czpmb3J3YXJkIGlkPSJwYWdlMiIgbmFtZT0iU2ltcGxlIFdpemFyZCBQYWdlIDIiJmd0OworCisgICZsdDshLS0gUHJvY2VzcyBuYXZpZ2F0aW9uIGlucHV0IGZyb20gdGhlIHNlY29uZCBwYWdlIC0tJmd0OworICAmbHQ7c3RydXRzOm5hdmlnYXRlJmd0OworICAgICZsdDtzdHJ1dHM6YnJhbmNoIGNvbnRyb2w9IkNBTkNFTCIgaWRyZWY9ImNhbmNlbCIvJmd0OworICAgICZsdDtzdHJ1dHM6YnJhbmNoIGNvbnRyb2w9IkZJTklTSCIgaWRyZWY9ImZpbmlzaCIvJmd0OworICAgICZsdDtzdHJ1dHM6YnJhbmNoIGNvbnRyb2w9Ik5FWFQiICAgaWRyZWY9InBhZ2UzIi8mZ3Q7CisgICAgJmx0O3N0cnV0czpicmFuY2ggY29udHJvbD0iUFJFViIgICBpZHJlZj0icGFnZTEiLyZndDsKKyAgJmx0Oy9zdHJ1dHM6bmF2aWdhdGUmZ3Q7CisKKyAgJmx0OyEtLSBEaXNwbGF5IHRoZSB0aGlyZCBwYWdlIG9mIHRoZSBpdGVyYXRpb24gLS0mZ3Q7CisgICZsdDtzdHJ1dHM6Zm9yd2FyZCBpZD0icGFnZTMiIG5hbWU9IlNpbXBsZSBXaXphcmQgUGFnZSAzIiZndDsKKworICAmbHQ7IS0tIFByb2Nlc3MgbmF2aWdhdGlvbiBpbnB1dCBmcm9tIHRoZSB0aGlyZCBwYWdlIC0tJmd0OworICAmbHQ7c3RydXRzOm5hdmlnYXRlJmd0OworICAgICZsdDtzdHJ1dHM6YnJhbmNoIGNvbnRyb2w9IkNBTkNFTCIgaWRyZWY9ImNhbmNlbCIvJmd0OworICAgICZsdDtzdHJ1dHM6YnJhbmNoIGNvbnRyb2w9IkZJTklTSCIgaWRyZWY9ImZpbmlzaCIvJmd0OworICAgICZsdDtzdHJ1dHM6YnJhbmNoIGNvbnRyb2w9IlBSRVYiICAgaWRyZWY9InBhZ2UyIi8mZ3Q7CisgICZsdDsvc3RydXRzOm5hdmlnYXRlJmd0OworCisgICZsdDshLS0gUHJvY2VzcyB0aGUgRklOSVNIIG5hdmlnYXRpb24gY29udHJvbCBhcyBhcHByb3ByaWF0ZSAtLSZndDsKKyAgJmx0O3h4eDp5eXkgaWQ9ImZpbmlzaCIgLi4uLyZndDsKKyAgJmx0O2NvcmU6Z290byBuYW1lPSJNYWluIE1lbnUiLyZndDsKKworICAmbHQ7IS0tIFByb2Nlc3MgdGhlIENBTkNFTCBuYXZpZ2F0aW9uIGNvbnRyb2wgYXMgYXBwcm9wcmlhdGUgLS0mZ3Q7CisgICZsdDt4eHg6eXl5IGlkPSJjYW5jZWwiIC4uLi8mZ3Q7CisgICZsdDtjb3JlOmdvdG8gbmFtZT0iTWFpbiBNZW51Ii8mZ3Q7CisKKyZsdDsvYWN0aXZpdHkmZ3Q7Cis8L3ByZT4KKworCisgICAgICA8cD5Ob3QgaWxsdXN0cmF0ZWQgYWJvdmUsIGJ1dCBhbHNvIGludGVyZXN0aW5nIHRvIGV4cGxvcmUsIHdvdWxkIGJlCisgICAgICB0aGUgc2l0dWF0aW9uIHdoZXJlIGNob2ljZXMgb24gb25lIHBhZ2UgYWZmZWN0IHdoZXRoZXIgc29tZSBwYWdlcworICAgICAgaW4gdGhlIG92ZXJhbGwgZmxvdyBtaWdodCBiZSBza2lwcGVkLjwvcD4KKworICAgIDwvc3Vic2VjdGlvbj4KKworCisgIDwvc2VjdGlvbj4KKworCisgIDxzZWN0aW9uIG5hbWU9IlVzZXIgVmlzaWJsZSBGZWF0dXJlcyI+CisKKworICAgIDxwPldvcmtmbG93IHN5c3RlbSBjYXBhYmlsaXRpZXMgd2lsbCBiZSBleHBvc2VkIHRvIGFwcGxpY2F0aW9ucyB0aHJvdWdoCisgICAgSmF2YSBBUElzIHRoYXQgcmVwcmVzZW50IGJvdGggdGhlIHN0YXRpYyBkZXNjcmlwdGlvbiBvZiBwYXJ0aWN1bGFyCisgICAgYWN0aXZpdGllcyBhbmQgdGhlIGR5bmFtaWMgY3VycmVudCBzdGF0ZSBvZiBhIGNvbXB1dGF0aW9uLiAgT2JqZWN0CisgICAgZmFjdG9yeSBhbmQgcGx1Z2dhYmxlIGltcGxlbWVudGF0aW9uIHBhdHRlcm5zIHNoYWxsIGJlIHVzZWQgd2hlcmUKKyAgICBhcHByb3ByaWF0ZSB0byBtYXhpbWl6ZSB0aGUgZ2VuZXJhbGl0eSBhbmQgZmxleGliaWxpdHkgb2YgdGhlIHN5c3RlbS48L3A+CisKKworICAgIDxzdWJzZWN0aW9uIG5hbWU9IldvcmtmbG93IE1hbmFnZW1lbnQgU3lzdGVtIEltcGxlbWVudGF0aW9uIE9iamVjdHMiPgorCisgICAgICA8cD5UaGUgZm9sbG93aW5nIGNsYXNzZXMgcmVwcmVzZW50IHRoZSBwcmltYXJ5IGNvbXBvbmVudHMgb2YgdGhlCisgICAgICB3b3JrZmxvdyBtYW5hZ2VtZW50IHN5c3RlbTo8L3A+CisKKyAgICAgIDxwPjxzdHJvbmc+UmVnaXN0cnk8L3N0cm9uZz4gLSBDb2xsZWN0aW9uIGludG8gd2hpY2ggbXVsdGlwbGUKKyAgICAgIDxlbT5Qcm9jZXNzPC9lbT4gYW5kIDxlbT5BY3Rpdml0eTwvZW0+IHN0YXRpYyBkZXNjcmlwdGlvbnMgY2FuIGJlCisgICAgICBzdG9yZWQgYW5kIHJldHJpZXZlZCBieSBTdHJpbmctdmFsdWVkIGtleXMuPC9wPgorCisgICAgICA8cD48c3Ryb25nPlByb2Nlc3M8L3N0cm9uZz4gLSBUaGUgc3RhdGljIGRlc2NyaXB0aW9uIG9mIGEgdHJlZSBvZgorICAgICAgYnVzaW5lc3MgYWN0aXZpdGllcyB0aGF0IGFyZSBleGVjdXRlZCBpbiBhIG5lc3RlZCBmYXNoaW9uLCBvZnRlbiBieQorICAgICAgc2VwYXJhdGUgaW5kaXZpZHVhbHMgKG9yIGFwcGxpY2F0aW9uIHN5c3RlbXMpLjwvcD4KKworICAgICAgPHA+PHN0cm9uZz5BY3Rpdml0eTwvc3Ryb25nPiAtIFRoZSBzdGF0aWMgZGVzY3JpcHRpb24gb2YgYSBzZXF1ZW5jZQorICAgICAgb2YgU3RlcHMgdGhhdCBhcmUgZ2VuZXJhbGx5IGV4ZWN1dGVkIGJ5IGEgc2luZ2xlIGluZGl2aWR1YWwgKG9yCisgICAgICBhcHBsaWNhdGlvbiBzeXN0ZW0pLCB3aXRoaW4gYSByZWFzb25hYmx5IHNob3J0IHBlcmlvZCBvZiB0aW1lLjwvcD4KKworICAgICAgPHA+PHN0cm9uZz5TdGVwPC9zdHJvbmc+IC0gVGhlIHN0YXRpYyBkZXNjcmlwdGlvbiBvZiBhbiBpbmRpdmlkdWFsCisgICAgICB0YXNrIHRvIGJlIHBlcmZvcm1lZCBhcyBhIGRpc2NyZXRlLCBpbmRpdmlzaWJsZSwgdW5pdC4gIFN0ZXBzIGNhbgorICAgICAgYWxzbyBiZSBuZXN0ZWQgaW5zaWRlIG90aGVyIHN0ZXBzLCB0byBwcm92aWRlIGZvciBsb29waW5nIGFuZAorICAgICAgY29uZGl0aW9uYWwgcHJvY2Vzc2luZy4gIEEgcmljaCBzZXQgb2YgYnVpbHQtaW4gU3RlcCBpbXBsZW1lbnRhdGlvbnMKKyAgICAgIHNoYWxsIGJlIHByb3ZpZGVkIChpbmNsdWRpbmcgcG93ZXJmdWwgY2FwYWJpbGl0aWVzIHN1Y2ggYXMgdGhlCisgICAgICBleGVjdXRpb24gb2YgYW4gYXJiaXRyYXJ5IG1ldGhvZCBvbiBhbiBhcmJpdHJhcnkgSmF2YSBvYmplY3QpLCBhbmQKKyAgICAgIG1lY2hhbmlzbXMgdG8gZXh0ZW5kIHRoZSBzZXQgb2Ygc3VwcG9ydGVkIFN0ZXAgaW1wbGVtZW50YXRpb25zCisgICAgICBhbGxvd3MgYXJiaXRyYXJ5IGV4dGVuc2liaWxpdHkuPC9wPgorCisgICAgICA8cD48c3Ryb25nPkNvbnRleHQ8L3N0cm9uZz4gLSBUaGUgZHluYW1pYyBzdGF0ZSBvZiBhIGNvbXB1dGF0aW9uCisgICAgICB0aHJvdWdoIGFuIDxlbT5BY3Rpdml0eTwvZW0+IChvciBhIHNldCBvZiBuZXN0ZWQgPGVtPkFjdGl2aXRpZXM8L2VtPiksCisgICAgICBpbmNsdWRpbmcgcHJvdmlzaW9uIG9mIHN0b3JhZ2Ugc3BhY2UgZm9yIEphdmFCZWFucyBwcm9kdWNlZCBhbmQKKyAgICAgIGNvbnN1bWVkIGJ5IG90aGVyIFN0ZXBzLiAgQ29udGV4dHMga2VlcCB0cmFjayBvZiB0aGUgY3VycmVudCBTdGVwCisgICAgICBiZWluZyBleGVjdXRlZCwgc28gdGhhdCBhY3Rpdml0eSBwcm9jZXNzaW5nIGNhbiBiZSBzdXNwZW5kZWQgYW5kCisgICAgICByZXN1bWVkIGxhdGVyLjwvcD4KKworICAgICAgPHA+PHN0cm9uZz5TY29wZTwvc3Ryb25nPiAtIEEgPGNvZGU+TWFwPC9jb2RlPiBpbnRvIHdoaWNoCisgICAgICBhcmJpdHJhcnkgSmF2YSBvYmplY3RzIGNhbiBzdG9yZWQgYW5kIHJldHJpZXZlZCBieSBTdHJpbmctdmFsdWVkIGtleXMuCisgICAgICBDb250ZXh0IHN1cHBvcnQgYSBudW1iZXIgb2YgaW5kaXZpZHVhbCBTY29wZXMsIGVhY2ggb2Ygd2hpY2ggY2FuIGJlCisgICAgICBwbHVnZ2VkIGluIGZyb20gYXBwbGljYXRpb24gbG9naWMsIHRvIHByb3ZpZGUgaW50ZWdyYXRpb24gaW50bworICAgICAgZXhpc3RpbmcgYXBwbGljYXRpb24gZnVuY3Rpb25hbGl0eS4gIEZvciBleGFtcGxlLCBpbiBhIHdlYiBhcHBsaWNhdGlvbgorICAgICAgaW1wbGVtZW50YXRpb24sIFNjb3BlcyB3aWxsIGdlbmVyYWxseSBiZSBtYXBwZWQgZGlyZWN0bHkgdG8gcmVxdWVzdAorICAgICAgYXR0cmlidXRlcywgc2Vzc2lvbiBhdHRyaWJ1dGVzLCBhbmQgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMgYXMKKyAgICAgIHByb3ZpZGVkIGJ5IHRoZSBTZXJ2bGV0IEFQSS48L3A+CisKKyAgICA8L3N1YnNlY3Rpb24+CisKKworICAgIDxzdWJzZWN0aW9uIG5hbWU9IkJ1aWx0LUluIFN0ZXBzIj4KKworICAgICAgPHA+QSByaWNoIHZhcmlldHkgb2YgYnVpbHQtaW4gPGVtPlN0ZXA8L2VtPiBpbXBsZW1lbnRhdGlvbnMgKGFuZAorICAgICAgY29ycmVzcG9uZGluZyBYTUwgZWxlbWVudHMgaW4gc3BlY2lmaWVkIG5hbWVzcGFjZXMpIHdpbGwgYmUgcHJvdmlkZWQKKyAgICAgIGFzIHBhcnQgb2YgdGhlIGJhc2ljIHdvcmtmbG93IGVuZ2luZSwgYW5kIGFzIHBhcnQgb2YgdGhlIGFzc29jaWF0ZWQKKyAgICAgIFN0cnV0cyBpbnRlZ3JhdGlvbiBvZiB0aGlzIGVuZ2luZS48L3A+CisKKyAgICAgIDxwPjxzdHJvbmc+QmVhbiBJbnRlcmFjdGlvbjwvc3Ryb25nPiAtIFRoZSBhYmlsaXR5IHRvIGdldCBhbmQgc2V0CisgICAgICBKYXZhQmVhbnMgaW4gYXJiaXRyYXJ5IFNjb3BlcyAobWFwcGVkIHZpYSB0aGUgQ29udGV4dCB0byByZWFsIGNvbGxlY3Rpb25zCisgICAgICBvZiBvYmplY3RzKS48L3A+CisKKyAgICAgIDxwPjxzdHJvbmc+Q29udHJvbCBGbG93PC9zdHJvbmc+IC0gQ29uZGl0aW9uYWxzIGFuZCBsb29waW5nLCB3aGVyZQorICAgICAgY29udHJvbCBmbG93IFN0ZXBzIGNhbiBjb250YWluIG5lc3RlZCBzZXRzIG9mIFN0ZXBzIHRvIGFuIGFyYml0cmFyeQorICAgICAgZGVncmVlLjwvcD4KKworICAgICAgPHA+PHN0cm9uZz5NZXRob2QgRXhlY3V0aW9uPC9zdHJvbmc+IC0gRXhlY3V0ZSBhcmJpdHJhcnkgcHVibGljIG1ldGhvZHMKKyAgICAgIG9mIGJlYW5zIHN0b3JlZCBpbiBzb21lIFNjb3BlLCBwYXNzaW5nIHNwZWNpZmllZCBhcmd1bWVudHMgKGV4cHJlc3Npb25zCisgICAgICBvciBiZWFuIHJlZmVyZW5jZXMpIGFuZCByZXR1cm5pbmcgdGhlIG1ldGhvZCdzIHJlc3VsdCAoaWYgYW55KSB0byBhCisgICAgICBuYW1lZCBiZWFuIGluIHNvbWUgU2NvcGUuICBUbyBtYXhpbWl6ZSB1c2VmdWxuZXNzIG9mIHRoZSB3b3JrZmxvdworICAgICAgc3lzdGVtIGluIGNvbXBvc2luZyBhcHBsaWNhdGlvbnMsIDxzdHJvbmc+bm88L3N0cm9uZz4gcmVzdHJpY3Rpb25zCisgICAgICBzaG91bGQgYmUgcGxhY2VkIG9uIHRoZSBvYmplY3QgdHlwZXMgdGhlc2UgU3RlcHMgY2FuIGludGVyYWN0IHdpdGguPC9wPgorCisgICAgICA8cD48c3Ryb25nPkFjdGl2aXR5IE1hbmFnZW1lbnQ8L3N0cm9uZz4gLSBHT1RPIGEgbmFtZWQgQWN0aXZpdHkKKyAgICAgIChleGl0aW5nIHRoZSBjdXJyZW50IG9uZSksIENBTEwgYSBuYW1lZCBBY3Rpdml0eSAocmVzdW1pbmcgdGhlIGN1cnJlbnQKKyAgICAgIG9uZSB3aGVuIHRoZSBjYWxsZWQgQWN0aXZpdHkgcmV0dXJucywgUkVUVVJOIGZyb20gYSBjYWxsZWQgQWN0aXZpdHksCisgICAgICBFWElUIHRoZSBBY3Rpdml0eSBzeXN0ZW0uPC9wPgorCisgICAgICA8cD48c3Ryb25nPlVzZXIgSW50ZXJhY3Rpb248L3N0cm9uZz4gLSBTdXNwZW5kIHdvcmtmbG93IGV4ZWN1dGlvbiB0bworICAgICAgaW50ZXJhY3Qgd2l0aCB0aGUgdXNlciBpbiBzb21lIGFwcGxpY2F0aW9uIHNwZWNpZmljIHdheS4gIEZvciBleGFtcGxlLAorICAgICAgYSB3ZWIgYXBwbGljYXRpb24gd291bGQgZGlzcGxheSBhIHBhZ2UgYW5kIHdhaXQgZm9yIGlucHV0IHRvIGJlCisgICAgICBzdWJtaXR0ZWQgYmVmb3JlIHJlc3VtaW5nIHRoZSB3b3JrZmxvdy48L3A+CisKKyAgICAgIDxwPjxzdHJvbmc+U3BlY2lhbGl6ZWQgUHJvY2Vzc2luZzwvc3Ryb25nPiAtIFByZWJ1aWx0IFN0ZXBzIGZvciBjb21tb24KKyAgICAgIHByb2Nlc3NpbmcgZnVuY3Rpb25zIHN1Y2ggYXMgWFNMVCB0cmFuc2Zvcm1hdGlvbnMsIHBlcmZvcm1pbmcKKyAgICAgIGFyYml0cmFyeSBTUUwgcXVlcmllcywgc2VuZGluZyBtYWlsLCBhbmQgc28gb24uPC9wPgorCisgICAgPC9zdWJzZWN0aW9uPgorCisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iSW1wbGVtZW50YXRpb24gTm90ZXMiPgorCisgIDxwPlRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIHByb3Bvc2FsIHdpbGwgYmUgZGl2aWRlZCBpbnRvIHRocmVlIG1ham9yCisgIGRldmVsb3BtZW50IGxheWVyczo8L3A+CisgIDx1bD4KKyAgPGxpPkNvcmUgd29ya2Zsb3cgbWFuYWdlbWVudCBzeXN0ZW0gY2FwYWJpbGl0aWVzIGFuZCBidWlsdCBpbiBTdGVwCisgICAgICBpbXBsZW1lbnRhdGlvbnMgdGhhdCBhcmUgaW5kZXBlbmRlbnQgb2YgYXBwbGljYXRpb24gZW52aXJvbm1lbnQuCisgICAgICBbQ29kZSBpbiBqYWthcnRhLWNvbW1vbnNdPC9saT4KKyAgPGxpPlNwZWNpYWxpemVkIGltcGxlbWVudGF0aW9uIG9mIHdvcmtmbG93IG1hbmFnZW1lbnQgc3lzdGVtIGNvbXBvbmVudHMKKyAgICAgIHRoYXQgaW50ZWdyYXRlIHdpdGggdGhlIFNlcnZsZXQgQVBJIGluIGEgbWFubmVyIHRoYXQgaXMgaW5kZXBlbmRlbnQKKyAgICAgIG9mIGFueSBzcGVjaWZpYyBhcHBsaWNhdGlvbiBmcmFtZXdvcmsuICBbQ29kZSBpbiBqYWthcnRhLWNvbW1vbnNdPC9saT4KKyAgPGxpPlNwZWNpYWxpemVkIGltcGxlbWVudGF0aW9uIG9mIHdvcmtmbG93IG1hbmFnZW1lbnQgc3lzdGVtIGNvbXBvbmVudHMKKyAgICAgIHRoYXQgaXMgdGlnaHRseSBpbnRlZ3JhdGVkIHdpdGggU3RydXRzJ3MgaW50ZXJuYWwgYXJjaGl0ZWN0dXJlIGFuZAorICAgICAgY3VzdG9tIHRhZyBsaWJyYXJpZXMuICBbQ29kZSBpbiBqYWthcnRhLXN0cnV0c108L2xpPgorICA8L3VsPgorCisgIDxwPlRoZSB3b3JrZmxvdyBtYW5hZ2VtZW50IHN5c3RlbSB3aWxsIHN1cHBvcnQgdGhlIGdlbmVyYWwgY29uY2VwdCBvZgorICA8ZW0+U2NvcGVzPC9lbT4gaW4gd2hpY2ggYmVhbnMgY2FuIGJlIHN0YXNoZWQsIHdpdGggcGx1Z2dhYmxlCisgIGltcGxlbWVudGF0aW9ucyBmb3IgaW50ZWdyYXRpb24gaW50byBkaWZmZXJlbnQgd29ya2luZyBlbnZpcm9ubWVudHMuCisgIE5vbmUgb2YgdGhlIEFQSXMgaW4gdGhlIHdvcmtmbG93IGVuZ2luZSBpdHNlbGYgd2lsbCBoYXZlIGFueSByZWZlcmVuY2UKKyAgdG8gdGhlIHdlYiBsYXllciAoaS5lLiBubyBpbXBvcnRzIG9mIDxjb2RlPmphdmF4LnNlcnZsZXQuKjwvY29kZT4pLjwvcD4KKworICA8cD5TdWl0YWJsZSBvYmplY3QgZmFjdG9yeSBhbmQgcGx1Z2dhYmlsaXR5IEFQSXMgd2lsbCBiZSBpbmNsdWRlZAorICB0byBndWFyYW50ZWUgZXh0ZW5zaWJpbGl0eSBvZiB0aGUgYmFzaWMgZnJhbWV3b3JrLgorICA8L3A+CisKKyAgPHA+U2NyaXB0aW5nIG9mIGJ1c2luZXNzIHRyYW5zYWN0aW9ucyB3aWxsIGJlIGNvZGlmaWVkIGluIFhNTCBkb2N1bWVudHMKKyAgdGhhdCBjb25mb3JtIHRvIGFuIGFwcHJvcHJpYXRlIERURCBhbmQvb3Igc2NoZW1hLiAgVGhlIFhNTCB0ZWNobm9sb2d5CisgIHRoYXQgaXMgdXNlZCB3aWxsIGZhY2lsaXRhdGUgZXh0ZW5zaWJsZSBkZWZpbml0aW9ucyBvZiA8ZW0+U3RlcHM8L2VtPgorICBhbmQgb3RoZXIgY29tcG9uZW50cywgaW4gYm90aCB0aGUgWE1MIGRlc2NyaXB0aW9uIG9mIHRoZXNlIGNvbXBvbmVudHMgYW5kCisgIGluIHRoZSBzZXQgb2YgSmF2YSBvYmplY3RzIHRoYXQgaW1wbGVtZW50cyB0aGVtLgorICA8L3A+CisKKyAgICAKKyAgPHA+V2hlbiBkZXNpZ25pbmcgdGhlIGRldGFpbGVkIHN5bnRheCBvZiB0aGUgWE1MIHJlcHJlc2VudGF0aW9uCisgIG9mIFN0ZXBzLCBjb25zaWRlciB3aGV0aGVyIGl0IGlzIGZlYXNpYmxlIGZvciBhZHZhbmNlZCBkZXZlbG9wbWVudAorICB0b29scyB0byAiY29tcGlsZSIgYWN0aXZpdGllcyBpbnRvIGluZGl2aWR1YWwgY2xhc3NlcyB0byBvcHRpbWl6ZQorICBvdmVyYWxsIHBlcmZvcm1hbmNlLgorICA8L3A+CisgIAorICA8cD5XaGVuIGRlc2lnbmluZyB0aGUgZGV0YWlsZWQgc3ludGF4IG9mIHRoZSBYTUwgcmVwcmVzZW50YXRpb24KKyAgb2YgU3RlcHMsIGNvbnNpZGVyYXRpb24gc2hvdWxkIGJlIGdpdmVuIHRvIGVtdWxhdGluZyB0aGUgc3ludGF4CisgIG9mIG90aGVyIFhNTCBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgc2ltaWxhciBpbiBzcGlyaXQgb3IgZGV0YWlsCisgIHRvIHRoZSBjb25jZXB0cyBvZiBzY3JpcHRpbmcgYSBidXNpbmVzcyB0cmFuc2FjdGlvbi4gIFVzZWZ1bAorICBtb2RlbHMgdG8gY29uc2lkZXIgaW5jbHVkZToKKyAgPC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIveHNsdCI+WFNMIFRyYW5zZm9ybWF0aW9ucyAoWFNMVCk8L2E+CisgICAgICAgIC0gSW5jbHVkZXMgY29udHJvbCBmbG93IG1lY2hhbmlzbXMgdGhhdCBhcmUgYmVjb21pbmcgd2lkZWx5CisgICAgICAgIGtub3duIGFuZCB1bmRlcnN0b29kLCB3aGljaCBjb3VsZCBiZSBtaW1pY2tlZC48L2xpPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RhZ2xpYnMvanNwdGwtZG9jL2ludHJvLmh0bWwiPgorICAgICAgICBKU1AgU3RhbmRhcmQgVGFnIExpYnJhcnkgKEVhcmx5IEFjY2Vzcyk8L2E+IC0gVGhlIGRlc2lnbiBnb2FscyBmb3IKKyAgICAgICAgbWFueSBvZiB0aGUgSlNQIGN1c3RvbSB0YWdzIGluIHRoaXMgbGlicmFyeSAocHJvZHVjZWQgYnkgdGhlCisgICAgICAgIEpTUi0wNTIgZXhwZXJ0IGdyb3VwIHVuZGVyIHRoZSBKYXZhIENvbW11bml0eSBQcm9jZXNzKSBhcmUgc2ltaWxhcgorICAgICAgICBlbm91Z2ggdG8gcHJvdmlkZSBhIHVzZWZ1bCBtb2RlbCBmb3IgY29uZGl0aW9uYWxzLCBsb29waW5nLCBhbmQKKyAgICAgICAgaW50ZXJhY3Rpb24gd2l0aCBvYmplY3RzIGluIGFyYml0cmFyeSBzY29wZXMuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VG8gbWF4aW1pemUgdGhlIHVzZWZ1bG5lc3Mgb2YgYnVpbHQtaW4gYWN0aW9ucywgYW4gZXhwcmVzc2lvbgorICAgIGxhbmd1YWdlIHRoYXQga25vd3MgaG93IHRvIG1hbmlwdWxhdGUgb2JqZWN0cyBpbiB0aGUgU2NvcGVzIGFzc29jaWF0ZWQKKyAgICB3aXRoIHRoZSBjdXJyZW50IENvbnRleHQgd2lsbCBuZWVkIHRvIGJlIHN1cHBvcnRlZC4gIFVzZWZ1bCBtb2RlbHMgdG8KKyAgICBjb25zaWRlciBpbmNsdWRlOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hwYXRoIj5YTUwgUGF0aCBMYW5ndWFnZSAoWFBhdGgpPC9hPgorICAgICAgICAtIFdpbGwgYmUgZmFtaWxpYXIgdG8gWE1MLW9yaWVudGVkIGFwcGxpY2F0aW9uIGRldmVsb3BlcnMgYmVjYXVzZQorICAgICAgICBpdCBpcyB1c2VkIHRocm91Z2hvdXQgdGhlIHN1aXRlIG9mIFhNTCBzcGVjaWZpY2F0aW9ucy48L2xpPgorICAgIDxsaT5KYXZhU2NyaXB0IGxpa2UgZXhwcmVzc2lvbiBsYW5ndWFnZXMgLSBXaWxsIGJlIGZhbWlsaWFyIHRvIHBhZ2UKKyAgICAgICAgZGV2ZWxvcGVycyAoYXMgd2VsbCBhcyBTdHJ1dHMgZGV2ZWxvcGVycyBmYW1pbGlhciB3aXRoIHRoZQorICAgICAgICBuZXN0ZWQgYW5kIGluZGV4ZWQgcHJvcGVydHkgYWNjZXNzb3Igc3ludGF4IG9mIG1hbnkgU3RydXRzIHRhZ3MpLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPkZyb20gdGhlIHdvcmtmbG93IHNjcmlwdCBkZXZlbG9wZXIncyBwb2ludCBvZiB2aWV3LCBYTUwgbmFtZXNwYWNlcworICAgIHdpbGwgYmUgdXNlZCB0byBpbnRyb2R1Y2UgZXh0ZW5kZWQgc2V0cyBvZiBTdGVwIGltcGxlbWVudGF0aW9ucy4gIFRoZXJlCisgICAgd2lsbCBuZWVkIHRvIGJlIG1lY2hhbmlzbXMgdG8gbWFwIGEgcGFydGljdWxhciBuYW1lc3BhY2UgdG8gYSBzZXQgb2YKKyAgICBsZWdhbCBYTUwgZWxlbWVudHMgKHdpdGhpbiB0aGF0IG5hbWVzcGFjZSkgYW5kIGNvcnJlc3BvbmRpbmcgSmF2YQorICAgIGNsYXNzZXMgdGhhdCBwcm92aWRlIHRoZSBmdW5jdGlvbmFsaXR5IGZvciB0aG9zZSBTdGVwcy48L3A+CisKKyAgPHA+VGhlIHdlYiBsYXllciBpbnRlZ3JhdGlvbiB3aWxsIGluY2x1ZGUgYSBtZWNoYW5pc20gdG8gbWFwIHNjb3BlcyAoZnJvbQorICB0aGUgd29ya2Zsb3cgcGVyc3BlY3RpdmUpIGludG8gdGhlIHN0YW5kYXJkIDxlbT5yZXF1ZXN0PC9lbT4sCisgIDxlbT5zZXNzaW9uPC9lbT4sIGFuZCA8ZW0+YXBwbGljYXRpb248L2VtPiBzY29wZXMgb2YgdGhlIHdlYiBsYXllci4KKyAgVGh1cywgd29ya2Zsb3cgc2NyaXB0cyB3aWxsIGJlIGFibGUgdG8gcGxhY2UgYmVhbnMgaW4gYXBwcm9wcmlhdGUKKyAgc2NvcGVzIHN1Y2ggdGhhdCBKU1AgcGFnZXMgY2FuIGRpcmVjdGx5IHB1bGwgdGhhdCBkYXRhIGludG8gdGhlIHByZXNlbnRhdGlvbiwKKyAgbXVjaCBhcyBTdHJ1dHMgQWN0aW9ucyAoYW5kIHRoZSBidXNpbmVzcyBsb2dpYyBjbGFzc2VzIHRoYXQgYXJlIGNhbGxlZCBieQorICB0aG9zZSBBY3Rpb25zKSBjYW4gcGxhY2UgYmVhbnMgdGhlcmUgaW4gYSBTdHJ1dHMgMS4wIGJhc2VkIGFwcGxpY2F0aW9uLgorICBVdGlsaXppbmcgdGhlc2UgY2FwYWJpbGl0aWVzLCBhcHBsaWNhdGlvbiBkZXZlbG9wZXJzIHdpbGwgYmUgYWJsZSB0bworICAic2NyaXB0IiB0aGUgYnVzaW5lc3MgbG9naWMgcmVxdWlyZW1lbnRzIG9mIG1hbnkgYXBwbGljYXRpb25zLCBieQorICBjb21iaW5pbmcgZnVuY3Rpb25hbCBsb2dpYyBhbHJlYWR5IGF2YWlsYWJsZSBhcyBtZXRob2RzIG9uIGJ1c2luZXNzCisgIGxvZ2ljIGJlYW5zLCB3aXRob3V0IGhhdmluZyB0byBpbnZvbHZlIEphdmEgcHJvZ3JhbW1lcnMgdG8gY3JlYXRlIG5ldworICBBY3Rpb25zIChvciBvdGhlcndpc2Ugc3ludGhlc2l6ZSBidXNpbmVzcyBsb2dpYyBvdXQgb2YgdGhlIGNvbnN0aXR1ZW50CisgIHBpZWNlcykuPC9wPgorCisgIDxwPkNvbXBvbmVudHMgaW4gdGhlIHdlYiBsYXllciBpbnRlZ3JhdGlvbiBtYXkgaW1wb3J0IEFQSXMgZnJvbSB0aGUKKyAgU2VydmxldCBhbmQgSlNQIHNwZWNpZmljYXRpb25zLCBidXQgbm90IGZyb20gYW55IGFwcGxpY2F0aW9uIHNwZWNpZmljCisgIGZyYW1ld29yay4gIEZyYW1ld29yay1zcGVjaWZpYyBpbnRlZ3JhdGlvbiB3aWxsIG9jY3VyIG9uIHRvcCBvZiB0aGUKKyAgZ2VuZXJpYyB3ZWIgbGF5ZXIgaW50ZWdyYXRpb24uPC9wPgorCisgIDxwPkluIGFkZGl0aW9uLCB0aGUgU3RydXRzIGludGVncmF0aW9uIHdpbGwgaW5jbHVkZSBhIHNtYWxsIGN1c3RvbSB0YWcKKyAgbGlicmFyeSB3aWxsIGJlIGluY2x1ZGVkLCBzbyB0aGF0IHBhZ2UKKyAgZGV2ZWxvcGVycyBjYW4gZWFzaWx5IGNyZWF0ZSBuYXZpZ2F0aW9uYWwgbGlua3MgYW5kIGNvbnRyb2xzLiAgRXhhbXBsZXMKKyAgb2Ygc3VjaCBjb250cm9scyBpbmNsdWRlIGxpbmtzIHRvIHRoZSAibmV4dCIsICJwcmV2aW91cyIsIGFuZCAiZmluaXNoIgorICBwYWdlcyBvZiBhIHdpemFyZCBkaWFsb2csIGEgImNhbmNlbCIgYnV0dG9uIHRvIGV4aXQgYSB3b3JrZmxvdyBlYXJseSwgb3IKKyAgYW4gImludm9rZSIgYnV0dG9uIHRvIGludm9rZSBhIG5ldyB3b3JrZmxvdyBhcyBhIHN1YnJvdXRpbmUsIGFuZCB0aGVuCisgIHJldHVybiB0byB0aGUgY3VycmVudCBzdGVwIG9mIHRoZSBvcmlnaW5hbCB3b3JrZmxvdy4gIFV0aWxpemluZyB0aGVzZQorICBjYXBhYmlsaXRpZXMsIHBhZ2UgZGV2ZWxvcGVycyBjYW4gY3JlYXRlIHRoZSBpbmRpdmlkdWFsIHZpc2libGUgcGllY2VzCisgIG9mIGEgd29yayBmbG93IGRpYWxvZywgd2l0aG91dCBoYXZpbmcgdG8gYmUgaW52b2x2ZWQgaW4gbmF2aWdhdGlvbmFsCisgIGNvbXBsZXhpdGllcy48L3A+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPC9ib2R5PgorCis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcmVsZWFzZXMueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvcmVsZWFzZXMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0NWZiOGUKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9yZWxlYXNlcy54bWwKQEAgLTAsMCArMSwyNzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0iLi9yZWxlYXNlcy54bWwiPgorCis8IS0tCisvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gNzgKKy0tPgorCis8cHJvcGVydGllcz4KKyAgICA8dGl0bGU+UmVsZWFzZSBHdWlkZWxpbmVzIC0gVGhlIEFwYWNoZSBTdHJ1dHMgV2ViIEFwcGxpY2F0aW9uIEZyYW1ld29yazwvdGl0bGU+Cis8L3Byb3BlcnRpZXM+CisKKzxib2R5PgorICAgIDxzZWN0aW9uIGhyZWY9InN0YXR1cyIgbmFtZT0iUmVsZWFzZSBHdWlkZWxpbmVzIj4KKworICAgIDxwPgorICAgIFRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSBTdHJ1dHMgPGEgaHJlZj0iI1JlbGVhc2VzIj5yZWxlYXNlIHByb2Nlc3M8L2E+IGFuZCBvdXIgPGEgaHJlZj0iI0NvZGluZyI+Y29kaW5nCisgICAgY29udmVudGlvbnM8L2E+LiBCb3RoIHN0YWJsZSBhbmQgZGV2ZWxvcG1lbnQgcmVsZWFzZXMgYXJlIDxhIGhyZWY9ImFjcXVpcmluZy5odG1sIj5hdmFpbGFibGUgZm9yIGRvd25sb2FkPC9hPi4KKyAgICA8L3A+CisKKyAgICA8L3NlY3Rpb24+CisKKyAgICA8c2VjdGlvbiBocmVmPSJSZWxlYXNlcyIgbmFtZT0iUmVsZWFzZSBHdWlkZWxpbmVzIj4KKworICAgICAgICA8cD4KKyAgICAgICAgICAgIEEgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL3ZlcnNpb25pbmcuaHRtbCI+cG9pbnQgcmVsZWFzZTwvYT4KKyAgICAgICAgICAgIHNob3VsZCBiZSBtYWRlIGJlZm9yZSBhbmQgYWZ0ZXIgYW55IHByb2R1Y3QgY2hhbmdlIHRoYXQgaXMgbm90IGEgImZ1bGx5LWNvbXBhdGlibGUgY2hhbmdlIgorICAgICAgICAgICAgKHNlZSBsaW5rKS4gVGhpcyBpbmNsdWRlcyBtb3ZpbmcgYSBkZXBlbmRlbmN5IGZyb20gYW4gaW50ZXJuYWwgcGFja2FnZSB0byBhbiBleHRlcm5hbCBwcm9kdWN0LAorICAgICAgICAgICAgaW5jbHVkaW5nIHByb2R1Y3RzIGRpc3RyaWJ1dGVkIHRocm91Z2ggdGhlIEpha2FydGEgQ29tbW9ucy4KKyAgICAgICAgICAgIFdlIHNob3VsZCBwbGFjZSBhbnkgZnVsbHktY29tcGF0aWJsZSBjaGFuZ2VzIGluIHRoZSBoYW5kcyBvZiB0aGUgY29tbXVuaXR5CisgICAgICAgICAgICBiZWZvcmUgc3RhcnRpbmcgb24gYSBjaGFuZ2UgdGhhdCBpcyBvbmx5ICJpbnRlcmZhY2UiIG9yICJleHRlcm5hbC1pbnRlcmZhY2UiIGNvbXBhdGlibGUuCisgICAgICAgIDwvcD4KKyAgICAgICAgPHA+CisgICAgICAgICAgICBBIGZ1bGx5LWNvbXBhdGlibGUgcG9pbnQgcmVsZWFzZSBkb2VzIG5vdCBhbHdheXMgbmVlZCBhICJwcmV2aWV3IiBiZXRhIG9yIG1pbGVzdG9uZSByZWxlYXNlLgorICAgICAgICAgICAgSWYgYXBwcm9wcmlhdGUsIGEgUmVsZWFzZSBDYW5kaWRhdGUgY2FuIGJlIGN1dCwgdXBsb2FkZWQgdG8gdGhlIFJlbGVhc2UgTWFuYWdlcidzIGhvbWUgZGlyZWN0b3J5CisgICAgICAgICAgICBvbiBzdm4uYXBhY2hlLm9yZyAofi9wdWJsaWNfaHRtbCksIGFuZCB2b3RlZCB0byBiZSByZWxlYXNlZCB0byB0aGUgZ2VuZXJhbCBwdWJsaWMgZnJvbSB0aGVyZS4KKyAgICAgICAgPC9wPgorCisgICAgICAgIDxwPgorICAgICAgICAgICAgQW55IHJlbGVhc2Ugc2hvdWxkIGZvbGxvdyB0aGUgc2FtZSBnZW5lcmFsIHByb2Nlc3MgdXNlZCBieSB0aGUgSmFrYXJ0YSBDb21tb25zCisgICAgICAgICAgICBhbmQgdGhlIEFwYWNoZSBIVFRQIFNlcnZlciBwcm9qZWN0LgorICAgICAgICA8L3A+CisKKyAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvcmVsZWFzZXMvIj5SZWxlYXNpbmcgQ29tbW9uIENvbXBvbmVudHM8L2E+CisgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaW5jdWJhdG9yL1NpZ25pbmdSZWxlYXNlcyI+U2lnbmluZyBhIHJlbGVhc2UgdmVyc2lvbjwvYT4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICA8c21hbGw+VGhlIE1ENSB0b29sIGlzIGluc3RhbGxlZCBvbiBkYWVkYWx1cywgYW5kIHlvdSBjYW4gY3JlYXRlIHRoZSBkaWdlc3RzIGZvciBTdHJ1dHMgcmVsZWFzZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoZXJlLjwvc21hbGw+CisgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kZXYvcmVsZWFzZS5odG1sIj5BcGFjaGUgSFRUUEQgU2VydmVyIFJlbGVhc2UgR3VpZGVsaW5lczwvYT4KKyAgICAgICAgICAgIDwvbGk+CisgICAgICAgIDwvdWw+CisKKyAgICAgICAgPHA+CisgICAgICAgICAgICBBZGRpdGlvbmFsIHJlbWFya3M6CisgICAgICAgIDwvcD4KKworICAgICAgICA8dWw+CisgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgVGhlIHJlbGVhc2UgcHJvY2VzcyBjYW4gc2VlbSBkYXVudGluZyB3aGVuIHlvdSByZXZpZXcgaXQgZm9yIHRoZSBmaXJzdCB0aW1lLgorICAgICAgICAgICAgICAgIEJ1dCwgZXNzZW50aWFsbHksIGl0IGJyZWFrcyBkb3duIGludG8gdGhyZWUgcGhhc2VzIG9mIGp1c3QgYSBmZXcgc3RlcHMgZWFjaDoKKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgIDxsaT5CdWlsZGluZyAtIEJ1Z3ppbGxhLCBkZXBlbmRlbmNpZXMsIHJlbGVhc2Ugbm90ZXMsIEpBUiBtYW5pZmVzdCwgbGljZW5zZXMsIGNvcHlyaWdodHMsIGFuZCBidWlsZAorICAgICAgICAgICAgICAgICAgICAgICAgKHVzaW5nIHRoZSByZWxlYXNlIHRhcmdldCkuPC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPlRlc3RpbmcgLSBKVW5pdCwgQ2FjdHVzLCB3ZWIgYXBwcyAoZm9yIGFsbCAic3VwcG9ydGVkIiBjb250YWluZXJzKS4gPC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPkRpc3RyaWJ1dGluZyAtIENoZWNrc3VtLCBzaWduLCBtaXJyb3IsIHJlbGVhc2UsIHVwZGF0ZSBTdHJ1dHMgc2l0ZSwgdXBkYXRlIEpha2FydGEgc2l0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFubm91bmNlLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgT3VyIGRlcGVuZGVuY2llcyBvbiBleHRlcm5hbCBKQVJzIChpbmNsdWRpbmcgQ29tbW9ucyBKQVJzKSBzaG91bGQKKyAgICAgICAgICAgICAgICBiZSBpbiBsaW5lIHdpdGggb3VyIG93biByZWxlYXNlIHN0YXR1cy4KKyAgICAgICAgICAgICAgICBPdXIgbmlnaHRseSBidWlsZCBjYW4gYmUgZGVwZW5kYW50IG9uIGFub3RoZXIgbmlnaHRseSBidWlsZC4KKyAgICAgICAgICAgICAgICBPdXIgYmV0YSBjYW4gYmUgZGVwZW5kYW50IG9uIGFub3RoZXIgYmV0YSwKKyAgICAgICAgICAgICAgICBidXQgc2hvdWxkIGF2b2lkIGEgZGVwZW5kYW5jZSBvbiBhIG5pZ2h0bHkgYnVpbGQuCisgICAgICAgICAgICAgICAgT3VyIHJlbGVhc2UgY2FuZGlkYXRlIGNhbiBoYXZlIGEgZGVwZW5kYW5jZSBvbiBhbm90aGVyIFJDLAorICAgICAgICAgICAgICAgIGJ1dCBzaG91bGQgbm90IGhhdmUgYSBkZXBlbmRhbmNlIG9uIGEgYmV0YSAoYW5kIGNlcnRhaW5seSA8c3Ryb25nPm5vdDwvc3Ryb25nPiBhIG5pZ2h0bHkgYnVpbGQpLgorICAgICAgICAgICAgICAgIE91ciBmaW5hbCByZWxlYXNlIGNhbiBvbmx5IGhhdmUgZGVwZW5kZW5jaWVzIG9uIG90aGVyIGZpbmFsIHJlbGVhc2VzLgorICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICBVc2UgeW91ciBvd24gZGlzY3JldGlvbiBhcyB0byBkZXRhaWwgbmVlZGVkIGJ5IHRoZSBSZWxlYXNlIE5vdGVzLgorICAgICAgICAgICAgICAgIEEgaGlnaC1sZXZlbCBkZXNjcmlwdGlvbiBvZiB0aGUgY2hhbmdlcyBpcyBtb3JlIGltcG9ydGFudCB0aGFuIHByb3ZpZGluZyB1bmludGVycHJldGVkIGRldGFpbC4KKyAgICAgICAgICAgICAgICBBdCBhIG1pbmltdW0sIG5ldyBmZWF0dXJlcyBhbmQgZGVwcmVjYXRpb25zIHNob3VsZCBiZSBzdW1tYXJpemVkLAorICAgICAgICAgICAgICAgIHNpbmNlIHRoZXNlIGFyZSBjb21tb25seSBhc2tlZCBxdWVzdGlvbnMuCisgICAgICAgICAgICAgICAgSWRlYWxseSwgdGhlIHJlbGVhc2Ugbm90ZXMgc2hvdWxkIGJlIG1haW50YWluZWQgY29udGludW91c2x5IGZvciB0aGUgbmlnaHRseSBidWlsZAorICAgICAgICAgICAgICAgIHNvIHRoYXQgd2UgZG8gbm90IG5lZWQgdG8gcXVpY2tseSBhc3NlbWJsZWQgdGhlbSBvbiB0aGUgZXZlIG9mIGEgUmVsZWFzZS4KKyAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgVGVzdCBidWlsZGluZyB0aGUgZGlzdHJpYnV0aW9uIHVuZGVyIHByaW9yIHZlcnNpb24gb2YgSjJTRSwgaWYgcG9zc2libGUsCisgICAgICAgICAgICAgICAgdG8gZW5zdXJlIHRoYXQgd2UgYXJlIHN0aWxsIGJhY2t3YXJkbHktY29tcGF0aWJsZS4KKyAgICAgICAgICAgICAgICBCdXQsIG91ciBSZWxlYXNlIGRpc3RyaWJ1dGlvbiBzaG91bGQgYmUgYnVpbHQgdXNpbmcgdGhlIDxzdHJvbmc+bGF0ZXN0IHJlbGVhc2Ugb2YgSjJTRTwvc3Ryb25nPiwKKyAgICAgICAgICAgICAgICB0byB0YWtlIGFkdmFudGFnZSBvZiBhbGwgYXZhaWxhYmxlIGNvbXBpbGVyIGVuaGFuY2VtZW50cy4KKyAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgQmVmb3JlIGJ1aWxkaW5nIHRoZSByZWxlYXNlLCBydW4gdGhlIEpVbml0IGFuZCBDYWN0dXMgdGVzdHMgdXNpbmcgdGhlIHNhbWUKKyAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uIHVzZWQgdGhhdCB3aWxsIGJlIHVzZWQgdG8gYnVpbGQgdGhlIFJlbGVhc2UgZGlzdHJpYnV0aW9uLgorICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICBUaGVyZSBpcyBhICJyZWxlYXNlIiB0YXJnZXQgaW4gdGhlIGJ1aWxkZmlsZSB0aGF0IHdpbGwgemlwIGFuZCB0YXIgdGhlIHJlbGVhc2VzLgorICAgICAgICAgICAgICAgIEJlZm9yZSB1cGxvYWRpbmcgdGhlIHJlbGVhc2UsIGV4dHJhY3QgdGhlIHNhbXBsZSB3ZWIgYXBwbGljYXRpb25zIGFuZCBkZXBsb3kgdGhlIFdBUnMgdW5kZXIKKyAgICAgICAgICAgICAgICBlYWNoIG9mIHRoZSAic3VwcG9ydGVkIiBjb250YWluZXJzLgorICAgICAgICAgICAgICAgIFBsYXkgdGVzdCBlYWNoIGFwcGxpY2F0aW9uIHVuZGVyIGVhY2ggY29udGFpbmVyIHRvIGJlIHN1cmUgdGhleSBvcGVyYXRlIG5vbWluYWxseS4KKyAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgQmUgc3VyZSB0byBjb3B5IHRoZSBwbWNAamFrYXJ0YS5hcGFjaGUub3JnIGxpc3Qgb24gYW55IHJlbGVhc2UgYW5ub3VuY2VtZW50LgorICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICBSZW1lbWJlciB0byB1cGRhdGUgdGhlIDxhIGhyZWY9InN0YXR1cy5odG1sIj5TdGF0dXMgc2VjdGlvbiBvZiB0aGUgUm9hZG1hcCBwYWdlPC9hPiAKKyAgICAgICAgICAgICAgICBvbmNlIGEgcmVsZWFzZSBpcyBhdmFpbGFibGUuIAorICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICBCeSB0aGUgd2F5LCB0aGUgbmlnaHRseSBidWlsZHMgYXJlIGJlaW5nIGNyZWF0ZWQgb24gYSBtYWNoaW5lIG9mIENyYWlnIE1jQ2xhbmFoYW4ncy4KKyAgICAgICAgICAgICAgICBJZiB0aGVyZSBhcmUgcHJvYmxlbXMgd2l0aCBhIG5pZ2h0bHkgYnVpbGQgdGhhdCBzZWVtIGluZnJhc3RydWN0dXJlIHJlbGF0ZWQsCisgICAgICAgICAgICAgICAgQ3JhaWcgaXMgdGhlIG9uZSB0byBjb250YWN0LgorICAgICAgICAgICAgPC9saT4KKyAgICAgICAgPC91bD4KKworICAgIDwvc2VjdGlvbj4KKworCis8c2VjdGlvbiBocmVmPSJDb2RpbmciIG5hbWU9IkNvZGluZyBDb252ZW50aW9ucyBhbmQgR3VpZGVsaW5lcyI+CisKKyAgICA8cD4KKyAgICBTb3VyY2UgY29kZSBhbmQgZG9jdW1lbnRhdGlvbiBjb250cmlidXRlZCB0byB0aGUgU3RydXRzIHJlcG9zaXRvcmllcworICAgIHNob3VsZCBvYnNlcnZlIHRoZToKKyAgICA8L3A+CisKKyAgICA8dWw+CisKKyAgICAgICAgPGxpPgorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc2l0ZS9zb3VyY2UuaHRtbCI+SmFrYXJ0YSBwcm9qZWN0CisgICAgICAgICAgZ3VpZGVsaW5lczwvYT4sCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYW1ieXNvZnQuY29tL2VsZW1lbnRzSmF2YVN0eWxlLmh0bWwiPkVsZW1lbnRzIG9mCisgICAgICAgICAgSmF2YSBTdHlsZTwvYT4sIGFuZAorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvamF2YWRvYy93cml0aW5nZG9jY29tbWVudHMvIj5Ib3cgdG8KKyAgICAgICAgICB3cml0ZSBEb2MgQ29tbWVudHM8L2E+CisgICAgICAgIDwvbGk+CisKKyAgICA8L3VsPgorCisgICAgPHA+CisgICAgYXMgY29yZSByZWZlcmVuY2VzIHJlZ2FyZGluZyB0aGUgZm9ybWF0dGluZyBvZiBjb2RlIGFuZCBkb2N1bWVudGF0aW9uLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIDxzdHJvbmc+Q2xhcmlmaWNhdGlvbnM8L3N0cm9uZz4KKyAgICA8L3A+CisKKyAgICA8dWw+CisKKyAgICAgICAgPGxpPgorICAgICAgICBGaXJzdCwgIk9ic2VydmUgdGhlIHN0eWxlIG9mIHRoZSBvcmlnaW5hbCIuCisgICAgICAgIFJlc2lzdCB0aGUgdGVtcHRhdGlvbiB0byBtYWtlIHN0eWxpc3RpYyBjaGFuZ2VzIGZvciB0aGVpciBvd24gc2FrZS4KKyAgICAgICAgQnV0LCBpZiB5b3UgbXVzdCByZWZvcm1hdCBjb2RlLCBjb21taXQgc3R5bGUgY2hhbmdlcyBzZXBhcmF0ZWx5IGZyb20KKyAgICAgICAgY29kZSBjaGFuZ2VzLgorICAgICAgICBFaXRoZXIgY2hhbmdlIHRoZSBzdHlsZSwgY29tbWl0LCBhbmQgdGhlbiBjaGFuZ2UgdGhlIGNvZGUsIG9yIHZpY2UtCisgICAgICAgIHZlcnNhLgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgU2V0IGVkaXRvcnMgdG8gcmVwbGFjZSB0YWJzIHdpdGggc3BhY2VzLCBhbmQgZG8gbm90IHRyaW0gdHJhaWxpbmcKKyAgICAgICAgc3BhY2VzLgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgU3BlY2lmeSBpbXBvcnRlZCBjbGFzc2VzIChkbyBub3QgdXNlIDxjb2RlPi4qPC9jb2RlPikuCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBXcml0ZSBhbGwgaWYvZWxzZSBzdGF0ZW1lbnRzIGFzIGZ1bGwgYmxvY2tzIHdpdGggZWFjaCBjbGF1c2Ugd2l0aGluIGJyYWNlcywKKyAgICAgICAgdW5sZXNzIHRoZSBlbnRpcmUgc3RhdGVtZW50IGZpdHMgb24gdGhlIHNhbWUgbGluZS4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIFVzZSA8Y29kZT46RklYTUU6PC9jb2RlPiBhbmQgPGNvZGU+OlRPRE86PC9jb2RlPiB0b2tlbnMgdG8gbWFyayBmb2xsb3cgdXAKKyAgICAgICAgbm90ZXMgaW4gY29kZS4KKyAgICAgICAgWW91IG1heSBhbHNvIGluY2x1ZGUgeW91ciBBcGFjaGUgdXNlcm5hbWUgYW5kIHRoZSBkYXRlLgorICAgICAgICA8Y29kZT46RklYTUU6IHdlIG5lZWQgdG8gZG8gdGhpcyBzb21ldGltZSAoaHVzdGVkIDIwMDItMTEtMTQpPC9jb2RlPgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgVXNlIDxjb2RlPkBzaW5jZTwvY29kZT4gdG8gZG9jdW1lbnQgY2hhbmdlcyBiZXR3ZWVuIFN0cnV0cyB2ZXJzaW9ucywKKyAgICAgICAgYXMgaW4gPGNvZGU+QHNpbmNlIFN0cnV0cyAxLjE8L2NvZGU+LgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgV3JhcCBsaW5lcyBvZiBjb2RlIGFuZCBKYXZhRG9jIGF0IGNvbHVtbiA3OC4KKyAgICAgICAgWW91IGNhbiBpbmNsdWRlIGEgImNvbW1lbnQgcnVsZSIgaW4gdGhlIHNvdXJjZSB0byBoZWxwIHdpdGggdGhpcy48YnIgLz4KKyAgICAgICAgPHNtYWxsPgorICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gNzgKKyAgICAgICAgPC9zbWFsbD4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIFBsZWFzZSBkbyB5b3VyIGJlc3QgdG8gcHJvdmlkZSBoaWdoLXF1YWxpdHkgSmF2YURvY3MgZm9yIGFsbCBzb3VyY2UgY29kZQorICAgICAgICBlbGVtZW50cy4KKyAgICAgICAgUGFja2FnZSBvdmVydmlld3MgKGFrYSAiRGV2ZWxvcGVyIEd1aWRlcyIpIGFyZSBhbHNvIGVuY291cmFnZWQuCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBXaGVuIHdvcmtpbmcgb24gYSBidWdmaXgsIHBsZWFzZSBmaXJzdCB3cml0ZSBhCisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuanVuaXQub3JnIj5KVW5pdDwvYT4gdGVzdCB0aGF0IHByb3ZlcyB0aGUgYnVnIGV4aXN0cywKKyAgICAgICAgYW5kIHRoZW4gdXNlIHRoZSB0ZXN0IHRvIHByb3ZlICB0aGUgYnVnIGlzIGZpeGVkLiA9OjApCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBXaGVuIHdvcmtpbmcgb24gYW4gZW5oYW5jZW1lbnQsIHBsZWFzZSBmZWVsIGZyZWUgdG8gdXNlIHRlc3QtZHJpdmVuIGRlc2lnbgorICAgICAgICBhbmQgd3JpdGUgdGhlIHRlc3QgZmlyc3QgJmx0O2hlYWQtc2xhcC8+LgorICAgICAgICBGb3IgbW9yZSBhYm91dCBUREQsIHNlZSB0aGUKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9tb2Nrb2JqZWN0cyI+TW9ja09iamVjdHMgcHJvamVjdAorICAgICAgICA8L2E+LgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgQXMgZmlsZXMgYXJlIHVwZGF0ZWQgZnJvbSB5ZWFyIHRvIHllYXIsIHRoZSBjb3B5cmlnaHQgb24gZWFjaCBmaWxlIHNob3VsZAorICAgICAgICBiZSBleHRlbmRlZCB0byBpbmNsdWRlIHRoZSBjdXJyZW50IHllYXIuCisgICAgICAgIFlvdSBkbyBub3QgbmVlZCB0byBjaGFuZ2UgdGhlIGNvcHlyaWdodCB5ZWFyIHVubGVzcyB5b3UgY2hhbmdlIHRoZSBmaWxlLgorICAgICAgICBFdmVyeSBzb3VyY2UgZmlsZSBzaG91bGQgaW5jbHVkZSB0aGUgY3VycmVudCBBcGFjaGUgTGljZW5zZSBhbmQgY29weXJpZ2h0LgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgUHJvdmlkZSBoaWdoLWxldmVsIEFQSSBjb21wYXRpYmlsaXR5IGZvciBhbnkgY2hhbmdlcyBtYWRlIHdpdGhpbiB0aGUgc2FtZQorICAgICAgICBtYWpvciByZWxlYXNlIHNlcmllcyAoIy54KS4KKyAgICAgICAgQ2hhbmdlcyB3aGljaCBhZHZlcnNlbHkgYWZmZWN0IGNvbXBhdGliaWxpdHkgc2hvdWxkIGJlIHNsb3R0ZWQgZm9yIHRoZQorICAgICAgICBuZXh0IG1ham9yIHJlbGVhc2Ugc2VyaWVzICgrKyMueCkuCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBPdXIgZmF2b3JpdGUgYm9va3MgYWJvdXQgcHJvZ3JhbW1pbmcgYXJlCisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYW1hem9uLmNvbS9leGVjL29iaWRvcy9JU0JOPTAyMDE2MzM2MTIvaGl0Y2hoaWtlZ3VpZGV0b0EvIj4KKyAgICAgICAgRGVzaWduIFBhdHRlcm5zPC9hPiBhbmQKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hbWF6b24uY29tL2V4ZWMvb2JpZG9zL0lTQk49MDIwMTQ4NTY3Mi9oaXRjaGhpa2VndWlkZXRvQS8iPgorICAgICAgICBSZWZhY3RvcmluZzwvYT4uCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBPdXIgZmF2b3JpdGUgYm9vayBhYm91dCBvcGVuIHNvdXJjZSBkZXZlbG9wbWVudCBpcyB0aGUKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hbWF6b24uY29tL2V4ZWMvb2JpZG9zL0lTQk49MTU2NTkyNzI0OS9oaXRjaGhpa2VndWlkZXRvQS8iPgorICAgICAgICBUaGUgQ2F0aGVkcmFsIGFuZCB0aGUgQmF6YWFyPC9hPi4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIE91ciBmYXZvcml0ZSBzY2llbmNlIGZpY3Rpb24gYXV0aG9yIGlzCisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubml0cm9zeW5jcmV0aWMuY29tL3JhaC8iPlJvYmVydCBIZWlubGVpbjwvYT4uCisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cudHV4ZWRvLm9yZy9+ZXNyL2phcmdvbi9odG1sL2VudHJ5L1RBTlNUQUFGTC5odG1sIj4KKyAgICAgICAgVEFOU1RBQUZMPC9hPi48YnIgLz4KKyAgICAgICAgKEV4Y2VwdCBvbiBGcmlkYXksIHdoZW4gd2UgZmF2b3IKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL2NhcmJvbi5jdWRlbnZlci5lZHUvfm1zdGlsbWFuL3phcGhvZC8iPkRvdWdsYXMKKyAgICAgICAgQWRhbXM8L2E+LgorICAgICAgICA8YSBocmVmPSJodHRwOi8vbmV3cy5iYmMuY28udWsvMS9oaS91ay8xMzI2NjU3LnN0bSI+CisgICAgICAgIFNMQVRGQVRGPC9hPi4pCisgICAgICAgIDwvbGk+CisKKyAgICA8L3VsPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uPgorICAgIDxwIGNsYXNzPSJyaWdodCI+CisgICAgTmV4dDogPGEgaHJlZj0ibmV3cy9pbmRleC5odG1sIj5OZXdzIGFuZCBTdGF0dXM8L2E+CisgICAgPC9wPgorPC9zZWN0aW9uPgorCis8L2JvZHk+PC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3N0YXR1cy54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9zdGF0dXMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlMTZmNjkKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9zdGF0dXMueG1sCkBAIC0wLDAgKzEsNDgzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Ii4vc3RhdHVzLnhtbCI+CisKKzwhLS0KKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSA3OAorLS0+CisKKzxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5TdGF0dXMgLSBUaGUgQXBhY2hlIFN0cnV0cyBXZWIgQXBwbGljYXRpb24gRnJhbWV3b3JrPC90aXRsZT4KKzwvcHJvcGVydGllcz4KKworPGJvZHk+CisgICAgPHNlY3Rpb24gbmFtZT0iU3RhdHVzIiBocmVmPSJzdGF0dXMiPgorCisgICAgPHA+CisgICAgICAgIFRoZSA8c3Ryb25nPnN0YWJsZSBwcm9kdWN0aW9uIHJlbGVhc2U8L3N0cm9uZz4gaXMKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2Rpc3QvamFrYXJ0YS9zdHJ1dHMvYmluYXJpZXMvIj5TdHJ1dHMgMS4xLjA8L2E+ICgyOSBKdW5lIDIwMDMpLgorICAgIDwvcD4KKworICAgIDxoci8+CisKKyAgICA8dWw+CisgICAgPGxpPgorICAgICAgU2VlIHRoZSA8YSBocmVmPSIuLi9zdGF0dXMuaHRtbCI+RGV2ZWxvcG1lbnQgUm9hZG1hcDwvYT4gZm9yIGFuIG92ZXJ2aWV3IG9mIGZ1dHVyZSBwbGFucy4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgICAgU2VlIHRoZSA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3NpdGUvYnVncy5odG1sIj5BcGFjaGUgQnVnIERhdGFiYXNlPC9hPiBmb3Igb3V0c3RhbmRpbmcgaXNzdWVzIGFuZAorICAgICAgICBlbmhhbmNlbWVudCByZXF1ZXN0cy4KKyAgICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgICBTZWUgdGhlIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvYnVpbGRzL2pha2FydGEtc3RydXRzL25pZ2h0bHkvIj5TdHJ1dHMgTmlnaHRseSBCdWlsZDwvYT4gZm9yIHRoZQorICAgICAgICBsYXRlc3QgZGV2ZWxvcG1lbnQgZGlzdHJpYnV0aW9uLgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgICBTZWUgdGhlIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc2l0ZS9tYWlsLmh0bWwiPlN0cnV0cy1EZXYgbGlzdDwvYT4gZm9yIGN1cnJlbnQgZGV2ZWxvcG1lbnQKKyAgICAgICAgY29tbXVuaWNhdGlvbnMuCisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICAgIFNlZSB0aGUgPGEgaHJlZj0iaHR0cDovL2N2cy5hcGFjaGUub3JnL3ZpZXdjdnMvamFrYXJ0YS1zdHJ1dHMvIj5TdHJ1dHMgQ1ZTPC9hPiBmb3IgdGhlIGN1cnJlbnQgZGV2ZWxvcG1lbnQKKyAgICAgICAgY29kZWJhc2UuCisgICAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgICBTZWUgdGhlIDxhIGhyZWY9Ii4uL3JlbGVhc2VzLmh0bWwiPlJlbGVhc2UgR3VpZGVzPC9hPiBmb3Igb3VyIHJlbGVhc2UgcHJvY2VzcyBhbmQgY29kaW5nIGNvbnZlbnRpb25zLgorICAgIDwvbGk+CisgICAgPC91bD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJyb2FkbWFwIiBuYW1lPSJEZXZlbG9wbWVudCBSb2FkbWFwIj4KKworICAgIDxwIGNsYXNzPSJ2ZXJzaW9uIj4KKyAgICAkSWQkCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhpcyBkb2N1bWVudCBvdXRsaW5lcyBzb21lIG9mIGNoYW5nZXMgd2UgZXhwZWN0IHRvCisgICAgc2VlIGluIGZ1dHVyZSByZWxlYXNlcyBvZiBTdHJ1dHMuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhpcyBkb2N1bWVudCBpcyBwcm92aWRlZCBmb3IgZGlzY3Vzc2lvbiBwdXJwb3NlcyBvbmx5LgorICAgIEFsbCByZWxlYXNlcyBhbmQgY2hhbmdlcyB0byB0aGUgY29kZWJhc2UgYXJlIHN1YmplY3QgdG8KKyAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3NpdGUvZGVjaXNpb25zLmh0bWwiPmEgdm90ZTwvYT4gb2YgdGhlCisgICAgPGEgaHJlZj0idm9sdW50ZWVycy5odG1sI2NvbW1pdHRlcnMiPlN0cnV0cyBDb21taXR0ZXJzPC9hPi4KKyAgICA8L3A+CisKKyAgICA8L3NlY3Rpb24+CisKKyAgICA8c2VjdGlvbiBocmVmPSJCdWd6aWxsYSIgbmFtZT0iQnVnemlsbGEgUXVlcmllcyI+CisKKyAgICAgICAgPHA+CisgICAgICAgICAgICBUaGUgU3RydXRzIGRldmVsb3BtZW50IHRlYW1zIHVzZXMgdGhlIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc2l0ZS9idWdzLmh0bWwiPkFwYWNoZSBCdWcgRGF0YWJhc2U8L2E+IChCdWd6aWxsYSkKKyAgICAgICAgICAgIHRvIG1hbmFnZSBwcm9ibGVtIHJlcG9ydHMgYW5kIGVuaGFuY2VtZW50IHJlcXVlc3RzLgorICAgICAgICAgICAgRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgYXJlIHNvbWUgY29tbW9uIEJ1Z3ppbGxhIHF1ZXJpZXM6CisgICAgICAgIDwvcD4KKworICAgICAgICA8dWw+CisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL2J1Z2xpc3QuY2dpP2J1Z19zdGF0dXM9VU5DT05GSVJNRUQmYW1wO2J1Z19zdGF0dXM9TkVXJmFtcDtidWdfc3RhdHVzPUFTU0lHTkVEJmFtcDtidWdfc3RhdHVzPVJFT1BFTkVEJmFtcDtwcm9kdWN0PVN0cnV0cyZhbXA7b3JkZXI9JTI3SW1wb3J0YW5jZSUyNyI+T3BlbiByZXBvcnRzPC9hPjwvbGk+CisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL2J1Z2xpc3QuY2dpP2J1Z19zdGF0dXM9VU5DT05GSVJNRUQmYW1wO2J1Z19zdGF0dXM9TkVXJmFtcDtidWdfc3RhdHVzPUFTU0lHTkVEJmFtcDtidWdfc3RhdHVzPVJFT1BFTkVEJmFtcDtidWdfc2V2ZXJpdHk9QmxvY2tlciZhbXA7YnVnX3NldmVyaXR5PUNyaXRpY2FsJmFtcDtidWdfc2V2ZXJpdHk9TWFqb3ImYW1wO2J1Z19zZXZlcml0eT1Ob3JtYWwmYW1wO2J1Z19zZXZlcml0eT1NaW5vciZhbXA7ZW1haWwxPSZhbXA7ZW1haWx0eXBlMT1zdWJzdHJpbmcmYW1wO2VtYWlsYXNzaWduZWRfdG8xPTEmYW1wO2VtYWlsMj0mYW1wO2VtYWlsdHlwZTI9c3Vic3RyaW5nJmFtcDtlbWFpbHJlcG9ydGVyMj0xJmFtcDtidWdpZHR5cGU9aW5jbHVkZSZhbXA7YnVnX2lkPSZhbXA7Y2hhbmdlZGluPSZhbXA7dm90ZXM9JmFtcDtjaGZpZWxkZnJvbT0mYW1wO2NoZmllbGR0bz1Ob3cmYW1wO2NoZmllbGR2YWx1ZT0mYW1wO3Byb2R1Y3Q9U3RydXRzJmFtcDtzaG9ydF9kZXNjPSZhbXA7c2hvcnRfZGVzY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtsb25nX2Rlc2M9JmFtcDtsb25nX2Rlc2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZhbXA7YnVnX2ZpbGVfbG9jPSZhbXA7YnVnX2ZpbGVfbG9jX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2tleXdvcmRzPSZhbXA7a2V5d29yZHNfdHlwZT1hbnl3b3JkcyZhbXA7ZmllbGQwLTAtMD1ub29wJmFtcDt0eXBlMC0wLTA9bm9vcCZhbXA7dmFsdWUwLTAtMD0mYW1wO2NtZHR5cGU9ZG9pdCZhbXA7b3JkZXI9JTI3SW1wb3J0YW5jZSUyNyI+T3BlbiBwcm9ibGVtIHJlcG9ydHM8L2E+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvYnVnbGlzdC5jZ2k/YnVnX3N0YXR1cz1VTkNPTkZJUk1FRCZhbXA7YnVnX3N0YXR1cz1ORVcmYW1wO2J1Z19zdGF0dXM9QVNTSUdORUQmYW1wO2J1Z19zdGF0dXM9UkVPUEVORUQmYW1wO3Byb2R1Y3Q9U3RydXRzJmFtcDtidWdfc2V2ZXJpdHk9QmxvY2tlciZhbXA7YnVnX3NldmVyaXR5PUNyaXRpY2FsJmFtcDtidWdfc2V2ZXJpdHk9TWFqb3ImYW1wO29yZGVyPSUyN0ltcG9ydGFuY2UlMjciPm1ham9yIHByb2JsZW0gcmVwb3J0czwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvYnVnbGlzdC5jZ2k/YnVnX3N0YXR1cz1VTkNPTkZJUk1FRCZhbXA7YnVnX3N0YXR1cz1ORVcmYW1wO2J1Z19zdGF0dXM9QVNTSUdORUQmYW1wO2J1Z19zdGF0dXM9UkVPUEVORUQmYW1wO3Byb2R1Y3Q9U3RydXRzJmFtcDtidWdfc2V2ZXJpdHk9QmxvY2tlciZhbXA7YnVnX3NldmVyaXR5PU5vcm1hbCZhbXA7YnVnX3NldmVyaXR5PU1pbm9yJmFtcDtvcmRlcj0lMjdJbXBvcnRhbmNlJTI3Ij5taW5vciBwcm9ibGVtIHJlcG9ydHM8L2E+PC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL2J1Z2xpc3QuY2dpP2J1Z19zdGF0dXM9VU5DT05GSVJNRUQmYW1wO2J1Z19zdGF0dXM9TkVXJmFtcDtidWdfc3RhdHVzPUFTU0lHTkVEJmFtcDtidWdfc3RhdHVzPVJFT1BFTkVEJmFtcDtwcm9kdWN0PVN0cnV0cyZhbXA7YnVnX3NldmVyaXR5PUVuaGFuY2VtZW50JmFtcDtvcmRlcj0lMjdJbXBvcnRhbmNlJTI3Ij5PcGVuIGVuaGFuY2VtZW50IHJlcG9ydHM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvYnVnbGlzdC5jZ2k/YnVnX3N0YXR1cz1SRVNPTFZFRCZhbXA7cmVzb2x1dGlvbj1MQVRFUiZhbXA7cmVzb2x1dGlvbj1SRU1JTkQmYW1wO3Byb2R1Y3Q9U3RydXRzJmFtcDtvcmRlcj0lMjdJbXBvcnRhbmNlJTI3Ij5SZXBvcnRzIHRvIGJlIGhhbmRsZWQgIkxBVEVSIjwvYT48L2xpPgorICAgICAgICA8L3VsPgorCisKKyAgICA8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9IlN0cnV0c18xX3giIG5hbWU9IlN0cnV0cyAxLngiPgorCisgICAgPHA+CisgICAgICAgIFRoZSBwbGF0Zm9ybSByZXF1aXJlbWVudHMgdGhyb3VnaG91dCB0aGUgU3RydXRzIDEueCBzZXJpZXMgd2lsbCByZW1haW4gdGhlIHNhbWUgKFNlcnZsZXQgMi4yIC8gSlNQIDEuMSkuCisgICAgICAgIFRob3VnaCwgbGF0ZXIgcGxhdGZvcm1zIG1heSBiZSBzdXBwb3J0ZWQgYXMgYW4gb3B0aW9uLgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgICAgUmVsZWFzZXMgaW4gdGhlIDEueCBzZXJpZXMgd2lsbCBmb2N1cyBvbiByZWZhY3RvcmluZyBvZiBleGlzdGluZyBmdW5jdGlvbmFsaXR5LCB3aXRoIGEKKyAgICAgICAgY29udGludWVkIGVtcGhhc2lzIG9uIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGFzIHdlcmUgc2VlbiBpbiBTdHJ1dHMgMS4xLgorICAgICAgICBIb3dldmVyLCB3ZSBleHBlY3QgdGhlcmUgdG8gcmVsZWFzZXMgdG8gYmUgaW5jcmVtZW50YWwgdGhyb3VnaG91dCB0aGUgcmVzdCBvZiB0aGUKKyAgICAgICAgMS54IHNlcmllcywgc28gdGhhdCBpbXByb3ZlbWVudHMgYW5kIGZpeGVzIGJlY29tZSBhdmFpbGFibGUgdG8gcHJvZHVjdGlvbiB0ZWFtcyBldmVyeSBmZXcgd2Vla3MuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIEFueSBmZWF0dXJlIHRoYXQgY2FuIGJlIGltcGxlbWVudGVkIHVuZGVyIFNlcnZsZXQgMi4yL0pTUCAxLjEgbWF5IGJlIGNvbnNpZGVyZWQgZm9yIHRoZSBTdHJ1dHMgMS54IHNlcmllcy4KKyAgICAgICAgVGhpcyBtYXkgaW5jbHVkZSwgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBiZXR0ZXIgc3VwcG9ydCBmb3IgYWx0ZXJuYXRlIHZpZXcgdGVjaG5vbG9naWVzIChsaWtlIFhMU1QpLAorICAgICAgICBpbnRlZ3JhdGVkIHVuaXQgdGVzdGluZywgaW50ZWdyYXRlZCBzdXBwb3J0IGZvciBIVFRQL0hUVFBTIG1vZGUgc3dpdGNoaW5nLCBiZXR0ZXIgd29ya2Zsb3cgaGFuZGxpbmcsCisgICAgICAgIHN1cHBvcnQgZm9yIGFsdGVybmF0aXZlIGFjdGlvbiB0eXBlcyAoZS5nLiBCU0YgYWN0aW9ucyksIGEgY2hhaW5hYmxlIHJlcXVlc3QgcHJvY2Vzc29yLCBzdXBwb3J0IGZvciBhbiBBY3Rpb24KKyAgICAgICAgY29udGV4dCwgYW5kIHNvIGZvcnRoLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICBGZWF0dXJlcyBtb3N0IGxpa2VseSB0byBiZSBjb25zaWRlcmVkIGFyZSB0aG9zZSB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuIGltcGxlbWVudGVkIGFzCisgICAgICAgIHRoaXJkLXBhcnR5IGV4dGVuc2lvbnMgYW5kIGFyZSBpbiBhY3RpdmUgdXNlIGJ5IHRoZSBTdHJ1dHMgQ29tbXVuaXR5LCBzdWNoIGFzCisgICAgICAgIHRob3NlIGRpc3RyaWJ1dGVkIHRocm91Z2ggdGhlCisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvc3RydXRzIj5TdHJ1dHMgU291cmNlRm9yZ2U8L2E+IHNpdGUuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIFRocm91Z2hvdXQgdGhlIDEueCBzZXJpZXMsIHRoZXJlIHdpbGwgYmUgYSBjb250aW51ZWQgZW1waGFzaXMgb24gZXhwYW5kaW5nIHVuaXQgdGVzdCBjb3ZlcmFnZSBmb3IgdGhlCisgICAgICAgIGZyYW1ld29yay4KKyAgICAgICAgQnVnIHJlcG9ydHMgc2hvdWxkIGluY2x1ZGUgYSBmYWlsaW5nIHRlc3QgY2FzZSB3aGVuIHBvc3NpYmxlLgorICAgICAgICBQcm9wb3NhbHMgZm9yIG5ldyBmZWF0dXJlcyBzaG91bGQgaW5jbHVkZSBhIHdvcmtpbmcgdGVzdCBzdWl0ZS4KKyAgICAgICAgKENyZWF0aW5nIGZlYXR1cmVzIHRocm91Z2ggVGVzdCBEcml2ZW4gRGV2ZWxvcG1lbnQgaXMgc3Ryb25nbHkgZW5jb3VyYWdlZC4pCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIEVuaGFuY2VtZW50IHJlcXVlc3RzIGFyZSBsb2dnZWQgaW4gQnVnemlsbGEgdGhleSBhcmUgc3VnZ2VzdGVkLgorICAgICAgICA8c3Ryb25nPlRoZSBsaXN0aW5nIG9mIGFuIGVuaGFuY2VtZW50IGluIEJ1Z3ppbGxhIGRvZXMgbm90IGltcGx5IHRoYXQgaXMgYmVpbmcgInBsYW5uZWQiPC9zdHJvbmc+LCBtZXJlbHkgdGhhdCBzb21lCisgICAgICAgIG1lbWJlciBvZiB0aGUgY29tbXVuaXR5IGhhcyBzdWdnZXN0ZWQgaXQsIGFuZCB0aGUgaWRlYSBoYXNuJ3QgYmVlbiBydWxlZCBvdXQgKHlldCkuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIEZ1dHVyZSByZWxlYXNlIG1pbGVzdG9uZXMgYXJlIHByb3ZpZGVkIGZvciBlbmhhbmNlbWVudHMgd2hpY2ggYXJlIGJlaW5nIGFjdGl2ZWx5IHBsYW5uZWQgb3IgZGV2ZWxvcGVkCisgICAgICAgIGJ1dCBtYXkgbm90IGJlIHJlYWR5IGZvciB0aGUgdmVyeSBuZXh0IHJlbGVhc2UuCisgICAgICAgIElmIGEgcmVwb3J0IGhhcyBub3QgYmVlbiB0YWdnZWQgZm9yIGEgc3BlY2lmaWMgbWlsZXN0b25lIGJ5IGEgd29ya2luZyBkZXZlbG9wZXIsIHRoZW4gPHN0cm9uZz5pdCBtYXkgbmV2ZXIgYmUKKyAgICAgICAgcmVzb2x2ZWQ8L3N0cm9uZz4uCisgICAgICAgIFdoZW4gZGV2ZWxvcGVycyAoaW5jbHVkaW5nIG5vbi1Db21taXR0ZXJzKSBhcmUgYWN0dWFsbHkgd29ya2luZyBvbiBhbiBlbmhhbmNlbWVudCwgdGhleSBzaG91bGQgcmUtdGFnIGl0IGZvciBhCisgICAgICAgIHNwZWNpZmljIHJlbGVhc2UgbWlsZXN0b25lLCBzdWNoIGFzICIxLjIuMSIgb3IgIjEuMi4yIi4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICAgICAgSWYgYW4gZW5oYW5jZW1lbnQgaGFzIG5vdCBiZWVuIHRhZ2dlZCBmb3IgYSBzcGVjaWZpYyB0YXJnZXQsIGZlZWwgZnJlZSB0byBzdGFydCB3b3JraW5nIG9uIGl0IHlvdXJzZWxmLgorICAgICAgICBNYW55IG9mIG91ciBiZXN0IGZlYXR1cmVzIGhhdmUgYmVlbiBjb250cmlidXRlZCBieSBkZXZlbG9wZXJzLCBqdXN0IGxpa2UgeW91LgorICAgICAgICBJZiB5b3Ugd291bGQgbGlrZSB0byBhbm5vdW5jZSB5b3VyIGFjdGl2ZSBpbnRlcmVzdCBpbiBhbiBlbmhhbmNlbWVudCwgcGxlYXNlIHBvc3QgYSBub3RlIG9uIHRoZSB0aWNrZXQsIGFuZCB0YWcKKyAgICAgICAgaXQgdG8gYW4gYXBwcm9wcmlhdGUgcmVsZWFzZSBtaWxlc3RvbmUuCisgICAgPC9wPgorCisgICAgPC9zZWN0aW9uPgorCisgICAgPHNlY3Rpb24gaHJlZj0iU3RydXRzXzFfeF93aGl0ZWJvYXJkIiBuYW1lPSJTdHJ1dHMgMS54IFdoaXRlYm9hcmQiPgorCisgICAgICAgIDxwPgorICAgICAgICAgICAgVGhlc2UgYXJlIHNvbWUgZ2VuZXJhbCBpZGVhcyB3ZSBoYXZlIGFib3V0IHdoYXQgbWF5IGhhcHBlbiBpbiB0aGUgU3RydXRzIDEueCBzZXJpZXMuCisgICAgICAgICAgICBUaGlzIGlzIGEgPHN0cm9uZz53aGl0ZWJvYXJkPC9zdHJvbmc+IGFuZCBldmVyeXRoaW5nIGhlcmUgaXMgPHN0cm9uZz5zdWJqZWN0IHRvIGNoYW5nZTwvc3Ryb25nPi4KKyAgICAgICAgPC9wPgorCisgICAgICAgIDx1bD4KKworICAgICAgICAgICAgPGxpPlN0cnV0cyAxLjAuMCAoY29tcGxldGUpIC0KKyAgICAgICAgICAgIE1ham9yIHJlZmFjdG9yaW5nIG9mIFN0cnV0cyBpbnRlcm5hbHMgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciBtb2R1bGVzIGFuZCBhIG5ldyAiY29uZmlnIiBvYmplY3Qgc2VyaWVzLgorICAgICAgICAgICAgQnVuZGxlcyBTdHJ1dHMgVGlsZXMgYW5kIFN0cnV0cyBWYWxpZGF0b3IgaW50byBtYWluIGRpc3RyaWJ1dGlvbi4KKyAgICAgICAgICAgIFRoZSBpbml0aWFsIHJlbGVhc2Ugb2YgU3RydXRzIEVMIGlzIHByb3ZpZGVkIGFzIGFuIG9wdGlvbmFsIHBhY2thZ2UuCisgICAgICAgICAgICA8L2xpPgorCisgICAgICAgICAgICA8bGk+U3RydXRzIDEuMi54IC0KKyAgICAgICAgICAgIENvbnRpbnVlZCByZWZhY3RvcmluZ3Mgb2YgdGhlIFN0cnV0cyAxLnggcHJvZHVjdCBzZXJpZXMuCisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICA8bGk+UmVtb3ZlIGRlcHJlY2F0aW9ucyBjcmVhdGVkIGluIHRoZSAxLjAgdG8gMS4xIHRpbWVmcmFtZSwgYW5kIHByaW9yPC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPk90aGVyIG1pbm9yIGVuaGFuY2VtZW50cyBhbmQgcmVmYWN0b3JpbmdzPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC9saT4KKworICAgICAgICAgICAgPGxpPlN0cnV0cyAxLjMueCAtCisgICAgICAgICAgICBNb3JlIHN1YnN0YW50aWFsIGVuaGFuY2VtZW50cyB0byBwcm9kdWN0IGJhc2UKKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgIDxsaT5Nb3ZlIHRvIENvbW1vbnMgUmVzb3VyY2VzPC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPk1vdmUgdGFnbGlicyBpbnRvIHNlcGFyYXRlIEpBUnM8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+RW5oYW5jZSBhbGwgY29uZmlncyB0byBleHRlbmQgb25lIGNvbmZpZ3VyYXRpb24gZWxlbWVudCBmcm9tIGFub3RoZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBhcyBpcyBkb25lIHdpdGggVGlsZXMgRGVmaW5pdGlvbnM8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L2xpPgorCisgICAgICAgICAgICA8bGk+U3RydXRzIDEuNC54IC0KKyAgICAgICAgICAgIE1vcmUgc3Vic3RhbnRpYWwgZW5oYW5jZW1lbnRzIHRvIHByb2R1Y3QgYmFzZQorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgPGxpPkNvbnNpZGVyIG5ldyBSZXF1ZXN0IFByb2Nlc3NvciwgaWYgYXZhaWxhYmxlICh3aGljaCBtaWdodCBiZSBiYXNlZCBvbiB0aGUgQ29tbW9ucyBDaGFpbgorICAgICAgICAgICAgICAgICAgICAgICAgb2YgUmVzcG9uc2libGl0eSBwYWNrYWdlKTwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT5Db25zaWRlciBtaWdyYXRpb24gdG8gYW4gQWN0aW9uIGNvbnRleHQgKHdoaWNoIGFsc28gbWlnaHQgYmUgYmFzZWQgbm8gdGhlIENvbW1vbnMgQ2hhaW4KKyAgICAgICAgICAgICAgICAgICAgICAgIG9mIFJlc3BvbnNpYmxpdHkgcGFja2FnZSk8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+Q29uc2lkZXIgZW5oYW5jZWQgc3VwcG9ydCBmb3Igb3RoZXIgcGxhdGZvcm1zICgyLjMvMS4yKSBpZiB0aGlzIGNhbiBiZSBhY2NvbXBsaXNoZWQgYnkKKyAgICAgICAgICAgICAgICAgICAgc3BlY2lmeWluZyBhbiBhbHRlcm5hdGUgUmVxdWVzdCBQcm9jZXNzb3I8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L2xpPgorCisgICAgICAgICAgICA8bGk+T3RoZXIgcG90ZW50aWFsIGVuaGFuY2VtZW50cyBmb3IgdGhlIDEueC54IHNlcmllcworICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgPGxpPk1vdmUgdG8gPGEgaHJlZj0iaHR0cDovL3htbC5hcGFjaGUub3JnL2ZvcnJlc3QvIj5Gb3JyZXN0PC9hPiBvcgorICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvIj5NYXZlbjwvYT4gZm9yIHByb2plY3QgbWFuYWdlbWVudDwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT5Db25zaWRlciBhZG9wdGluZyBzZXZlcmFsIHBvcHVsYXIgZXh0ZW5zaW9ucywgaW5jbHVkaW5nOgorICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vc3NsZXh0LnNvdXJjZWZvcmdlLm5ldC8iPlNTTCBFeHQ8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3N0cnV0c3Rlc3RjYXNlLnNvdXJjZWZvcmdlLm5ldC8iPlRlc3RDYXNlPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9zdHh4LnNvdXJjZWZvcmdlLm5ldCI+U3R4eDwvYT4gKFhMU1QpPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5saXZpbmdsb2dpYy5kZS9TdHJ1dHMvIj5Xb3JrZmxvdzwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vc3RydXRzLnNmLm5ldC9zdHJ1dHMtY29jb29uLyI+Q29jb29uIFBsdWdpbjwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vc3RydXRzLnNmLm5ldC9zdHJ1dHMtYnNmLyI+U2NyaXB0YWJsZSBBY3Rpb25zIHVzaW5nIEJTRjwvYT4gKEJlYW4gU2NyaXB0aW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyYW1ld29yayk8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC9saT4KKworICAgICAgICA8L3VsPgorCisgIDwhLS0KKyAgICA8cD4KKyAgICBGZWF0dXJlcyB1bmRlciBkaXNjdXNzaW9uIGluY2x1ZGU6CisgICAgPC9wPgorCisgICAgPHVsPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgUHJvcG9zaW5nIEFjdGlvbkVycm9yL0FjdGlvbkVycm9ycyBhcyBnZW5lcmljIENvbW1vbnMgIm1lc3NhZ2UiIGNvbXBvbmVudHMKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgICJOZXN0ZWQiIG9yICJoaWVyYXJjaGljYWwiIGFuZCBsb2NhbGUtc2Vuc2l0aXZlIG1vZHVsZXMKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIEV4dGVuZGluZyBvbmUgY29uZmlndXJhdGlvbiBlbGVtZW50IGZyb20gYW5vdGhlciwgYXMgaXMgZG9uZSB3aXRoIFRpbGVzCisgICAgICAgIERlZmluaXRpb25zCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBFbmhhbmNlZCBpbnRlcm9wZXJhYmlsaXR5IHdpdGggSlNUTCBhbmQgSlNGCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBNYWtpbmcgVGlsZXMgSlNUTC1hd2FyZSBhbmQgYXZhaWxhYmxlIHRvIG90aGVyIHByZXNlbnRhdGlvbiBzeXN0ZW1zIChYTFNULAorICAgICAgICBWZWxvY2l0eSkKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIEVuY291cmFnaW5nIHRoZSB1c2Ugb2YgPGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy94ZG9jbGV0LyI+WERvY2xldDwvYT4gYW5kIG90aGVyIGNvZGUgZ2VuZXJhdGlvbiB0ZWNobm9sb2dpZXMgdG8gc3RyZWFtbGluZSBkZXZlbG9wbWVudC4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+TW92aW5nIHRvIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdHVyYmluZS9tYXZlbi9pbmRleC5odG1sIj4KKyAgICAgICAgTWF2ZW48L2E+IGZvciBwcm9qZWN0IG1hbmFnZW1lbnQKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+UmVnYXJkbGVzcyBvZiB3aGV0aGVyIGEgbW92ZSB0byBNYXZlbiBoYXBwZW5zIG9yIG5vdCwgd2UgbmVlZCB0bworICAgICAgICByZWZhY3RvciB0aGUgc291cmNlIHJlcG9zaXRvcmllcyBhbmQgYnVpbGQgc2NyaXB0cyBmb3IgbGVzcyBjb21wbGV4aXR5CisgICAgICAgIGFuZCBlYXNpZXIgbWFpbnRlbmFuY2UuPC9saT4KKworICAgIDwvdWw+CisgICAgPHA+CisgICAgTW9yZSBkZXRhaWwgb24gd29yay1pbi1wcm9ncmVzcyBtYXkgYmUgZm91bmQgaW4KKyAgICA8YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvYnVnbGlzdC5jZ2k/YnVnX3N0YXR1cz1SRVNPTFZFRCZhbXA7cmVzb2x1dGlvbj1MQVRFUiZhbXA7ZW1haWwxPSZhbXA7ZW1haWx0eXBlMT1zdWJzdHJpbmcmYW1wO2VtYWlsYXNzaWduZWRfdG8xPTEmYW1wO2VtYWlsMj0mYW1wO2VtYWlsdHlwZTI9c3Vic3RyaW5nJmFtcDtlbWFpbHJlcG9ydGVyMj0xJmFtcDtidWdpZHR5cGU9aW5jbHVkZSZhbXA7YnVnX2lkPSZhbXA7Y2hhbmdlZGluPSZhbXA7dm90ZXM9JmFtcDtjaGZpZWxkZnJvbT0mYW1wO2NoZmllbGR0bz1Ob3cmYW1wO2NoZmllbGR2YWx1ZT0mYW1wO3Byb2R1Y3Q9U3RydXRzJmFtcDt2ZXJzaW9uPVVua25vd24mYW1wO3ZlcnNpb249MS4wK0JldGErMiZhbXA7dmVyc2lvbj0xLjArQmV0YSsxJmFtcDt2ZXJzaW9uPTAuNStGaW5hbCZhbXA7dmVyc2lvbj0xLjAuMitGaW5hbCZhbXA7dmVyc2lvbj0xLjAuMStGaW5hbCZhbXA7dmVyc2lvbj0xLjArRmluYWwmYW1wO3ZlcnNpb249MS4wK0JldGErMyZhbXA7dmVyc2lvbj0xLjErQmV0YSsyJmFtcDt2ZXJzaW9uPTEuMStCZXRhKzEmYW1wO3ZlcnNpb249TmlnaHRseStCdWlsZCZhbXA7c2hvcnRfZGVzYz0mYW1wO3Nob3J0X2Rlc2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZhbXA7bG9uZ19kZXNjPSZhbXA7bG9uZ19kZXNjX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2J1Z19maWxlX2xvYz0mYW1wO2J1Z19maWxlX2xvY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtrZXl3b3Jkcz0mYW1wO2tleXdvcmRzX3R5cGU9YW55d29yZHMmYW1wO2ZpZWxkMC0wLTA9bm9vcCZhbXA7dHlwZTAtMC0wPW5vb3AmYW1wO3ZhbHVlMC0wLTA9JmFtcDtjbWR0eXBlPWRvaXQmYW1wO29yZGVyPUJ1ZytOdW1iZXIiPkJ1Z3ppbGxhPC9hPi4KKyAgICBJZiBhbnkgb2YgdGhlc2UgZmVhdHVyZXMgYXJlIGltcG9ydGFudCB0byB5b3UsIHBsZWFzZSBkb24ndCBoZXNpdGF0ZSB0bworICAgIDxhIGhyZWY9Ii4vZmFxcy9oZWxwaW5nLmh0bWwiPmhlbHAgd2l0aCB0aGUgZGV2ZWxvcG1lbnQgZWZmb3J0PC9hPi4KKyAgICA8L3A+CistLT4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJTdHJ1dHNfMl8wIiBuYW1lPSJTdHJ1dHMgMi4wLngiPgorCisgICAgPHA+CisgICAgU3RydXRzIDIueCAoYWthIFN0cnV0cyAiTmV4dCBHZW5lcmF0aW9uIikgd2lsbCBpbmNsdWRlIGJyb2FkZXIgZW5oYW5jZW1lbnRzLgorICAgIFdlIGFudGljaXBhdGUgdGhhdCB0aGUgaW1wbGVtZW50YXRpb24gd2lsbCB1dGlsaXplIHRoZSBTZXJ2bGV0IDIuNCAvIEpTUCAyLjAKKyAgICBwbGF0Zm9ybSwgYnV0IG1heSBvcHRpb25hbGx5IHN1cHBvcnQgZWFybGllciBwbGF0Zm9ybXMuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgV2UgYW50aWNpcGF0ZSB0aGF0IFN0cnV0cyAyLnggd2lsbCByZWx5IG9uIEpTVEwgYW5kIHRoZSBKYXZhU2VydmVyIEZhY2VzCisgICAgQVBJIGFzIHN1cHBvcnRpbmcgdGVjaG5vbG9naWVzLgorICAgIEhvd2V2ZXIsIHRoZSBmb2N1cyBvZiB0aGUgU3RydXRzIGZyYW1ld29yayB3aWxsIHJlbWFpbiBvbiB0aGUgQ29udHJvbGxlciBhc3BlY3Qgb2YgYSBNb2RlbCAyL01WQyBhcmNoaXRlY3R1cmUuCisgICAgVGhlIGNvcmUgZnJhbWV3b3JrIHdpbGwgY29udGludWUgdG8gYmUgYm90aCBNb2RlbCBhbmQgVmlldyBpbmRlcGVuZGVudC4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBEZXZlbG9wbWVudCBvZiBTdHJ1dHMgMi54IHdpbGwgaW5jbHVkZSB0YWtpbmcgYSBjb21wbGV0ZWx5IGZyZXNoIGxvb2sgYXQKKyAgICB0aGUgYXJjaGl0ZWN0dXJlLgorICAgIFRoZSBnb2FsIGZvciAyLnggd2lsbCBiZSB0byBpbmNvcnBvcmF0ZSBldmVyeXRoaW5nIHdlJ3ZlIGxlYXJuZWQgaW4gdGhlIHBhc3QKKyAgICB5ZWFycyBvZiBTdHJ1dHMgdXNhZ2UsIGFuZCBjcmVhdGUgc29tZXRoaW5nIGV2ZW4gYmV0dGVyLgorICAgIERldmVsb3BtZW50IHdpbGwgZm9sbG93IGN1cnJlbnQgYmVzdCBwcmFjdGljZXMsIGxpa2UgVGVzdCBEcml2ZW4gRGV2ZWxvcG1lbnQsCisgICAgYW5kIHJlbHkgb24gdGVjaG5vbG9naWVzIGxpa2UgTWF2ZW4gZm9yIHByb2plY3QgbWFuYWdlbWVudC4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBPZiBjb3Vyc2UsIGl0IGlzIGFudGljaXBhdGVkIHRoYXQgdGhlIFN0cnV0cyB0ZWFtIHdpbGwgY29udGludWUgdG8gc3VwcG9ydAorICAgIHRoZSAxLnggY29kZWJhc2UgZm9yIGEgbG9uZyB0aW1lIHdpdGggYnVnZml4ZXMgYW5kIGluY3JlbWVudGFsIGVuaGFuY2VtZW50cy4KKyAgICAoTWFpbmx5IGJlY2F1c2UgbWFueSBvZiB1cyB3aWxsIHN0aWxsIGJlIHVzaW5nIGl0IG9uIG91ciBwcm9kdWN0aW9uIHNpdGVzISkKKyAgICBBY2NvcmRpbmdseSwgaXQgaXMgYW50aWNpcGF0ZWQgdGhhdCB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhlIDIueCBhbmQgMS54CisgICAgc2VyaWVzIHdpbGwgb2NjdXIgaW4gdGFuZGVtLgorICAgIEF0IHNvbWUgcG9pbnQsIDIueCBtaWxlc3RvbmVzIG1heSBhcHBlYXIgYWxvbmdzaWRlIG5ldyAxLnggcmVsZWFzZXMuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGFyZ2V0IGZlYXR1cmVzIGluY2x1ZGU6CisgICAgPC9wPgorCisgICAgPHVsPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgQ29tcHJlaGVuc2l2ZSB1bml0IHRlc3QgY292ZXJhZ2UgZm9yIGFsbCBjb3JlIGZlYXR1cmVzCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBFbmhhbmNlZCBzdXBwb3J0IGZvciB1c2luZyBTdHJ1dHMgaW4gbGFyZ2UgdGVhbSBlbnZpcm9ubWVudHMuCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBUcmFuc3BhcmVudCBzdXBwb3J0IGZvciBhIHBvcnRsZXQgZW52aXJvbm1lbnQgKEpTUiAxNjgpLCB3aXRoIG1pbmltYWwtdG8tbm8gY2hhbmdlcyBpbiB5b3VyIGJ1c2luZXNzIGxvZ2ljCisgICAgICAgIGFuZCBwYWdlcy4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIERpcmVjdCBzdXBwb3J0IGZvciBKU1RML0pTRiB0YWdsaWJzIGFuZCB0aGUgSlNGIEFQSQorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgRW5oYW5jZWQgc3VwcG9ydCBmb3Igb3RoZXIgcHJlc2VudGF0aW9uIGxheWVycywgc3VjaCBhcyBYTFNUCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBFbmhhbmNlZCBzdXBwb3J0IGZvciBzY3JpcHRhYmxlIEFjdGlvbnMsIHVzaW5nIHRlY2hub2xvZ2llcyBsaWtlIEJTRiBvciBKZWxseQorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgUmVmYWN0b3JpbmcgZm9yIG5ldyB0ZWNobm9sb2dpZXMgYXZhaWxhYmxlIG9uIHRoZSBTZXJ2bGV0IDIuNC8gSlNQIDIuMCBwbGF0Zm9ybQorICAgICAgICA8L2xpPgorCisgICAgPC91bD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJQb3J0bGV0cyIgbmFtZT0iUG9ydGxldCAoSlNSLTE2OCkgV2hpdGVib2FyZCI+CisgICAgPHA+CisgICAgICAgIFRoZXJlIGFyZSB0aHJlZSBtYWpvciBpc3N1ZXMgd2l0aCBzdXBwb3J0aW5nIEpTUi0xNjggKGFuZCBJJ20gc3VyZSBhIGJ1bmNoIG9mIHNtYWxsZXIgb25lcyBhcyB3ZWxsKToKKyAgICA8L3A+CisKKyAgICA8dWw+CisKKyAgICAgICAgPGxpPgorICAgICAgICAgICAgU3RydXRzIEFQSXMgYXNzdW1lIHNlcnZsZXQgQVBJIG9iamVjdHMgKFNlcnZsZXRDb250ZXh0LCBTZXJ2bGV0UmVxdWVzdCwgU2VydmxldFJlc3BvbnNlKSwgd2hlcmVhcyBKU1ItMTY4CisgICAgICAgICAgICB0YWxrcyBhYm91dFBvcnRsZXRDb250ZXh0LCBQb3J0bGV0UmVxdWVzdCwgYW5kIFBvcnRsZXRSZXNwb25zZS4KKyAgICAgICAgICAgIFdlJ2QgZWl0aGVyIG5lZWQgdG8gY2hhbmdlIHRoZSBjYWxsaW5nIHNlcXVlbmNlIGZvciBBY3Rpb24uZXhlY3V0ZSgpIC0tIHByb2JsZW1hdGljIGZvciBiYWNrd2FyZHMKKyAgICAgICAgICAgIGNvbXBhdGliaWxpdHkgLS0gb3IgZmFrZSBpdCBzb21laG93IGluIGEgcG9ydGxldCBlbnZpcm9ubWVudC4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgICAgICBUaGUgbGlmZWN5Y2xlIG9mIGEgcG9ydGxldCByZXF1ZXN0IGlzIGFjdHVhbGx5IGRpdmlkZWQgaW50byB0d28gY2h1bmtzIC0tIHByb2Nlc3NpbmcgYW5kIHRoZW4gcmVuZGVyaW5nLgorICAgICAgICAgICAgRnJvbSBhIFN0cnV0cyBwZXJzcGVjdGl2ZSwgdGhhdCBtZWFucyBtYWtpbmcgc3VyZSB0aGF0IHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSByZXF1ZXN0IHByb2Nlc3NvciBwaXBlbGluZQorICAgICAgICAgICAgbmVlZCB0byBoYXBwZW4gaW4gdGhlICJwcm9jZXNzIiBwYXJ0LCBhbmQgdGhlIGZvcndhcmRpbmcgdG8gdGhlIHJlc3VsdGluZyBwYWdlIG5lZWRzIHRvIGhhcHBlbiBpbiB0aGUKKyAgICAgICAgICAgICJyZW5kZXIiIHBhcnQuCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICAgICAgVG9kYXksIFN0cnV0cyBvd25zIHRoZSBwcm9jZXNzIG9mIGNhbGN1bGF0aW5nIFVSTHMgZm9yIHBhZ2VzIGFuZCBhY3Rpb25zLgorICAgICAgICAgICAgQmVjYXVzZSBpdCdzIGluIGEgd2ViYXBwLCBpdCBrbm93cyBleGFjdGx5IHdoYXQgdG8gZG8gZm9yIHRoZSBkZXZlbG9wZXIuCisgICAgICAgICAgICBIb3dldmVyLCBpbiBhIHBvcnRsZXQgY29udGFpbmVyIGl0J3MgYWN0dWFsbHkgdGhlIHBvcnRhbCBzZXJ2ZXIgdGhhdCBtYW5hZ2VzIFVSTHMsIHNvIGEgU3RydXRzLWJhc2VkCisgICAgICAgICAgICBwb3J0bGV0IHdvdWxkIG5lZWQgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgcG9ydGxldCBBUElzIGZvciB0aGlzIHB1cnBvc2UuCisgICAgICAgIDwvbGk+CisKKyAgICA8L3VsPgorCisgICAgPHA+CisgICAgICAgIEEgc3Ryb25nIGdvYWwgc2hvdWxkIGJlIHRoYXQgYSBTdHJ1dHMgYXBwbGljYXRpb24gc2hvdWxkIGJlIHVzYWJsZSBlaXRoZXIgYXMgYSB3ZWJhcHAgb3IgYXMgYSBwb3J0bGV0LCB3aXRoCisgICAgICAgIGxpdHRsZSAoaWRlYWxseSBubykgY2hhbmdlcy4KKyAgICAgICAgVGhlcmVmb3JlLCB3ZSBzaG91bGQgYnVpbGQgd2hhdGV2ZXIgaXQgdGFrZXMgdG8gc3VwcG9ydCB0aGlzIGludG8gdGhlIHN0YW5kYXJkIFN0cnV0cyBkaXN0cmlidXRpb24sIHdoaWNoIHdvdWxkCisgICAgICAgIHRoZW4gYmUgdXNlZCBpbiBib3RoIGVudmlyb25tZW50cy4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworICAgIDxzZWN0aW9uIGhyZWY9ImpzZiIgbmFtZT0iSmF2YVNlcnZlciBGYWNlcyI+CisKKyAgICAgICAgPHA+CisgICAgICAgICAgICBUaGUgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9qMmVlL2phdmFzZXJ2ZXJmYWNlcy8iPkphdmFTZXJ2ZXIgRmFjZXM8L2E+IHNwZWNpZmljYXRpb24gaGFzIG5vdCBiZWVuCisgICAgICAgICAgICBmaW5hbGl6ZWQuIEhvd2V2ZXIsIFN0cnV0cyBpcyBhbHJlYWR5IHByb3ZpZGluZyBzdXBwb3J0IGZvciBKU0YgdGhyb3VnaCB0aGUgU3RydXRzIEZhY2VzIHRhZ2xpYi4gT25jZSBKU0YKKyAgICAgICAgICAgIGlzIGZpbmFsaXplZCBhbmQgY29tZXMgaW50byBicm9hZCB1c2UsIGl0IGlzIGV4cGVjdGVkIHRoYXQgU3RydXRzIGRldmVsb3BlcnMgd2lsbCBjb250aW51ZSB0byBvZmZlcgorICAgICAgICAgICAgZW5oYW5jZW1lbnRzIHRvIG1ha2UgaXQgZXZlbiBlYXNpZXIgdG8gdXNlIFN0cnV0cyB3aXRoIEpTRi4KKyAgICAgICAgPC9wPgorCisgICAgICAgIDxwPgorICAgICAgICAgICAgUmlnaHQgbm93LCB0aGVyZSBpcyBvbmx5IG9uZSBvcGVuIHNvdXJjZSBwcm9qZWN0IHdvcmtpbmcgb24gYSBKYXZhU2VydmVyIEZhY2VzIGltcGxlbWVudGF0aW9uLAorICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3NmLm5ldC9wcm9qZWN0cy9teWZhY2VzIj5NeUZhY2VzPC9hPi4gVGhpcyB3b3JrIGlzIGJlaW5nIGRvbmUgdW5kZXIgdGhlCisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvbGVzc2VyLmh0bWwiPkxHUEw8L2E+LCB3aGljaCBzb21lCisgICAgICAgICAgICBkZXZlbG9wZXJzIGZpbmQgdW5hY2NlcHRhYmxlLiAoSWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIHRoaXMgcHJvamVjdCwgd2Ugc3VnZ2VzdCB5b3UgbG9iYnkgdGhlIGRldmVsb3BlcnMKKyAgICAgICAgICAgIHRvIGFkb3B0IGEgbW9yZSBsaWJlcmFsIGxpY2Vuc2UsIGxpa2UgdGhlIDxhIGhyZWY9Imh0dHA6Ly9hcGFjaGUub3JnL0xJQ0VOU0UiPkFTTDwvYT4uKQorICAgICAgICA8L3A+CisKKyAgICAgICAgPHA+CisgICAgICAgICAgIFRoYW5rcyBpbiBsYXJnZSBwYXJ0IHRvIEFwYWNoZSdzIGFkdm9jYWN5IGFuZCBpbmZsdWVuY2UsIHRoZSA8YSBocmVmPSJodHRwOi8vamNwLm9yZyI+SmF2YSBDb21tdW5pdHkKKyAgICAgICAgICAgUHJvY2VzczwvYT4sIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgSmF2YVNlcnZlciBGYWNlcyBzcGVjaWZpY2F0aW9uLCBwcm9jZXNzIGhhcyBiZWVuIG1vZGlmaWVkIHNvIHRoYXQKKyAgICAgICAgICAgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gcHJvamVjdHMsIGxpa2UgSmFrYXJ0YSwgY2FuIHF1YWxpZnkgZm9yIHRoZSBjZXJ0aWZpY2F0aW9uIHNjaG9sYXJzaGlwIChmb3IKKyAgICAgICAgICAgbm9ucHJvZml0cykgYW5kIGFjY2VzcyB0byB0aGUgVENLcyBhbmQgY2VydGlmeSB0aGF0IG91ciBhcHBsaWNhdGlvbiBpcyBjb21wbGlhbnQuCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgICAgIEFuIGNlcnRpZmljYXRlZC1jb21wbGFpbnQgQXBhY2hlIGltcGxlbWVudGF0aW9uIG9mIEphdmFTZXJ2ZXIgRmFjZXMgd291bGQgbW9zdCBkZWZpbmF0ZWx5IGJlIGEgR29vZCBUaGluZy4KKyAgICAgICAgICAgIEl0IHdvdWxkIG5vdCBiZSB0aGUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uLCBidXQgd2UgY291bGQgdHJlYXQgaXQgbGlrZSBvbmUsIGFuZCBzdHJpY3RseSBmb2xsb3cgdGhlCisgICAgICAgICAgICBib29rLCBpbiB0aGUgQXBhY2hlIFdheS4gQSBzdHJpY3QsIGhpZ2gtcXVhbGl0eSwgb3Blbi1zb3VyY2UgaW1wbGVtZW50YXRpb24gd291bGQgbW9zdCBsaWtlbHkgYmVjb21lCisgICAgICAgICAgICBhIHBvcHVsYXIgb3B0aW9uIGFtb25nIGNvbnRhaW5lcnMuCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgICAgIFdvcmsgb24gc3VjaCBhbiBpbXBsZW1lbnRhdGlvbiBjb3VsZCBiZSB1bmRlcnRha2VuIGJ5IFN0cnV0cywgZWl0aGVyIGhlcmUgYXQgSmFrYXJ0YSBvciBhZnRlciBvdXIgYXBwbHlpbmcKKyAgICAgICAgICAgIGZvciBzdGF0dXMgYXMgYSB0b3AtbGV2ZWwgQXBhY2hlIHByb2plY3QuIDxiPk9yPC9iPiwgIkFwYWNoZSBGYWNlcyIgY291bGQgYWxzbyBiZSB1bmRlcnRha2VuIGFzIGEgc2VwYXJhdGUKKyAgICAgICAgICAgIHByb2plY3QsIHdpdGggU3RydXRzIHNpbXBseSB1c2luZyB0aGUgdGVjaG5vbG9neSBhcyB3ZSBub3cgdXNlIHRlY2hub2xvZ2llcyBmcm9tIHRoZSBDb21tb25zIHRvZGF5LgorICAgICAgICA8L3A+CisKKyAgICAgICAgPHA+CisgICAgICAgICAgICBIb3dldmVyLCBhdCB0aGlzIHBvaW50LCB0aGVyZSBpcyBubyAiY29kZSBvbiB0aGUgdGFibGUiLiBBcGFjaGUgcHJvZHVjdHMgbGVhdmUgZGVjaXNpb25zIHN1Y2ggYXMgdGhlc2UgdG8KKyAgICAgICAgICAgIHRoZSBwZW9wbGUgd2hvIGNyZWF0ZSBhbmQgbWFpbnRhaW4gdGhlIGNvZGViYXNlLiBTbywgbGFja2luZyBhIGNvZGViYXNlLCBubyBiaW5kaW5nIGRlY2lzaW9uCisgICAgICAgICAgICBjYW4gYmUgbWFkZS4gQnV0LCBhbnlvbmUgd2lzaGluZyB0byBwdXJzdWUgYW4gIkFwYWNoZSBGYWNlcyIgaW1wbGVtZW50YXRpb24gc2hvdWxkIGJlIGF3YXJlIHRoYXQgdGhlIG9wdGlvbgorICAgICAgICAgICAgY2VydGFpbmx5IGV4aXN0cy4KKyAgICAgICAgPC9wPgorCisgICAgICAgIDxwPgorICAgICAgICAgICAgQXNpZGUgZnJvbSBvZmZlcmluZyBhIHN0cmljdCBpbXBsZW1lbnRhdGlvbiBvZiBKYXZhU2VydmVyIEZhY2VzLCB0aGVyZSBhcmUgbWFueSwgbWFueSBvdGhlciBKU0YgcmVsYXRlZAorICAgICAgICAgICAgdG9vbHMgYW5kIHRlY2hub2xvZ2llcyBBcGFjaGUgRmFjZXMgY291bGQgcHJvdmlkZS4gVGhlc2UgaW5jbHVkZSBjb21wb3NpdGUgdmlldyBhbmQgdmFsaWRhdGlvbgorICAgICAgICAgICAgZnJhbWV3b3JrcyAobGlrZSBUaWxlcyBhbmQgdGhlIFZhbGlkYXRvciksIGZyYW1ld29ya3MgZm9yIG11bHRpLXJlcXVlc3QgdHJhbnNhY3Rpb25zLCBub24tSFRNTCBtYXJrdXAKKyAgICAgICAgICAgIGxhbmd1YWdlcyAoYnVpbGRpbmcgb24gdG9wIG9mIEZhY2VzIGZvciB0aGluZ3MgbGlrZSBYVUwgb3IgWEZvcm1zIG9yIFNWRyBpcyBlYXN5KSwgbm9uLUpTUCByZW5kZXJpbmcKKyAgICAgICAgICAgIHRlY2hub2xvZ2llcyAocHJldHR5IG11Y2ggYW55dGhpbmcgdGhhdCBoYXMgYSB3YXkgdG8gbWFyayB3aGVyZSBkeW5hbWljYWxseSBjcmVhdGVkIG91dHB1dCBnb2VzIGNhbiBiZQorICAgICAgICAgICAgYWRhcHRlZCksIGxpYnJhcmllcyBvZiBwcmVidWlsdCBjb21wb25lbnRzIGFib3ZlIGFuZCBiZXlvbmQgdGhlIGJ1aWx0LWluIHN0YW5kYXJkIG9uZXMgKHN1Y2ggY29tcG9uZW50cworICAgICAgICAgICAgd29yayBlcXVhbGx5IHdlbGwgaW4gSlNQIGFuZCBub24tSlNQIGVudmlyb25tZW50cyksIGFuZCBhbGwgdGhlIG5vbi1odW1hbi1VSSB0aGluZ3MgYmFzZWQgb24gWE1MCisgICAgICAgICAgICB0ZWNobm9sb2dpZXMuCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgICAgIEFzIGFsd2F5cywgdGhlIHN0YW5kYXJkIGltcGxlbWVudGF0aW9uIGlzIG9ubHkgdGhlIGJlZ2lubmluZy4KKyAgICAgICAgPC9wPgorCisgICAgICAgIDxwPgorICAgICAgICAgICAgRm9yIG1vcmUgYWJvdXQgU3RydXRzIGFuZCBKYXZhU2VydmVyIGZhY2VzLCBzZWUgb3VyIDxhIGhyZWY9ImZhcXMva2lja3N0YXJ0Lmh0bWwjanNmIj5GQVE8L2E+LgorICAgICAgICAgICAgRm9yIG1vcmUgYWJvdXQgSmF2YVNlcnZlciBGYWNlcyBnZW5lcmFsbHksIHNlZSBhbHNvIDxhIGhyZWY9Imh0dHA6Ly93d3cuamFtZXNob2xtZXMuY29tL0phdmFTZXJ2ZXJGYWNlcy8iPgorICAgICAgICAgICAgSmF2YSBTZXJ2ZXIgRmFjZXMgUmVzb3VyY2VzIGF0IEphbWVzSG9tZXMuY29tPC9hPi4KKyAgICAgICAgPC9wPgorICAgIDwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0iUHJvcG9zYWxzIiBuYW1lPSJSZWxldmFudCBQcm9wb3NhbHMiPgorCisgICAgPHVsPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL2N2cy5hcGFjaGUub3JnL3ZpZXdjdnMvamFrYXJ0YS1jb21tb25zLXNhbmRib3gvY2hhaW4vIj5Db21tb25zIENoYWluIG9mIFJlc3BvbnNpYmxpdHkKKyAgICAgICAgcGFja2FnZTwvYT4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9jdnMuYXBhY2hlLm9yZy92aWV3Y3ZzL2pha2FydGEtc3RydXRzL2NvbnRyaWIvc3RydXRzLWNoYWluLyI+Q29SZSBSZXF1ZXN0IFByb2Nlc3NvcjwvYT4KKyAgICAgICAgPC9saT4KKworCisgICAgICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0icHJvcG9zYWxzL3JlbGVhc2UtcGxhbl8xXzJfMC5odG1sIj5SZWxlYXNlIFBsYW4gMS4yLjA8L2E+IC0tIHVucmF0aWZpZWQgRFJBRlQgZG9jdW1lbnQKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9InByb3Bvc2Fscy9zdHJ1dHMtZmFjZXMuaHRtbCI+c3RydXRzLWZhY2VzIHRhZ2xpYjwvYT4KKyAgICAgICAgPC9saT4KKworICAgIDwvdWw+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24+CisgICAgPHAgY2xhc3M9InJpZ2h0Ij4KKyAgICBOZXh0OiA8YSBocmVmPSJyZWxlYXNlcy5odG1sIj5SZWxlYXNlIEd1aWRlbGluZXM8L2E+CisgICAgPC9wPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbj4KKyAgICA8cCBjbGFzcz0idmVyc2lvbiI+V2Vic2l0ZSB1cGRhdGVkIGZyb20gQ1ZTOiAyMDAzIE5PViAyNiBieSBodXN0ZWQuPC9wPgorICAgIDxwIGNsYXNzPSJ2ZXJzaW9uIj5KYXZhZG9jcyB1cGRhdGVkIGZyb20gQ1ZTOiAyMDAzIE5PViAyNiBieSBodXN0ZWQuPC9wPgorPC9zZWN0aW9uPgorCis8L2JvZHk+PC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3N0eWxlc2hlZXRzL3N0cnV0cy5jc3MgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9zdHlsZXNoZWV0cy9zdHJ1dHMuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3ZWE0MDIKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy9zdHlsZXNoZWV0cy9zdHJ1dHMuY3NzCkBAIC0wLDAgKzEsNzg2IEBACisvKiAkSWQkICovCisJCitib2R5IHsKKwliYWNrZ3JvdW5kOiAjZmZmOworCWNvbG9yOiAjMDAwOworfQorCisuYXBwIGgzLCAuYXBwIGg0LCAudGFicyB0ZCwgLnRhYnMgdGgsIC5mdW5jdG5iYXIgeworCWJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvbndfbWFqLmdpZik7IAorCWJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7Cit9CisKKy5mdW5jdG5iYXIsIC5mdW5jdG5iYXIyIHsKKwliYWNrZ3JvdW5kLWNvbG9yOiAjYWFhOworfQorCisuZnVuY3RuYmFyMiwgLmZ1bmN0bmJhcjMgeworCWJhY2tncm91bmQtY29sb3I6ICNhYWE7CisvKgliYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3N3X21hal9yb25kLmdpZik7ICovCisJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKwliYWNrZ3JvdW5kLXBvc2l0aW9uOiBib3R0b20gbGVmdDsKK30KKworLmZ1bmN0bmJhcjMgeworCWJhY2tncm91bmQtY29sb3I6ICNkZGQ7CisvKgliYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL3N3X21lZF9yb25kLmdpZik7ICovCit9CisKKy5mdW5jdG5iYXIsIC5mdW5jdG5iYXIyLCAuZnVuY3RuYmFyMyB7CisJY29sb3I6ICMwMDA7Cit9CisKKy5mdW5jdG5iYXIgYSwgLmZ1bmN0bmJhcjIgYSwgLmZ1bmN0bmJhcjMgYSB7CisJY29sb3I6ICMwMDA7CisJdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cit9CisKKyNuYXZjb2x1bW4gLmJvZHkgZGl2LCBib2R5LmRvY3MgI3RvYyBsaSBsaSB7CisJYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9zdHJpY2guZ2lmKTsKKwliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworCWJhY2tncm91bmQtcG9zaXRpb246IC41ZW0gLjVlbTsKK30KKworI3NlYXJjaGJveCAuYm9keSBkaXYsICNuYXZjb2x1bW4gLmJvZHkgLmhlYWRpbmcgeworCWJhY2tncm91bmQtaW1hZ2U6IG5vbmU7Cit9CisKK2E6bGluaywgI25hdmNvbHVtbiBhOnZpc2l0ZWQsIC5hcHAgYTp2aXNpdGVkLCAudGFza25hdiBhOnZpc2l0ZWQgeworCWNvbG9yOiBibHVlOworfQorCithOmxpbmsuc2VsZnJlZiwgYTp2aXNpdGVkLnNlbGZyZWYgeworCWNvbG9yOiAjNTU1ICFpbXBvcnRhbnQ7CisJdGV4dC1kZWNvcmF0aW9uOiBub25lOworfQorCithOmFjdGl2ZSwgYTpob3ZlciwgI2xlZnRjb2wgYTphY3RpdmUsICNsZWZ0Y29sIGE6aG92ZXIgeworCWNvbG9yOiAjZjMwICFpbXBvcnRhbnQ7Cit9CisKKyNsZWZ0Y29sIGEsICNicmVhZGNydW1icyBhIHsKKwl0ZXh0LWRlY29yYXRpb246IG5vbmU7Cit9CisKKy5hcHAgaDMsIC5hcHAgaDQgeworCWNvbG9yOiAjZmZmOworfQorCisuYXBwIGgzIHsKKwliYWNrZ3JvdW5kLWNvbG9yOiAjMzMzOworfQorCisuYXBwIGgzIGE6bGluaywgLmFwcCBoMyBhOnZpc2l0ZWQsIC5hcHAgaDQgYTpsaW5rLCAuYXBwIGg0IGE6dmlzaXRlZCB7CisJY29sb3I6ICNmZmYgIWltcG9ydGFudDsKKwl0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKK30KKworLmFwcCBoNCB7CisJYmFja2dyb3VuZC1jb2xvcjogIzg4ODsKK30KKworLmEgdGQgeworCWJhY2tncm91bmQ6ICNkZGQ7Cit9CisKKy5iIHRkIHsKKwliYWNrZ3JvdW5kOiAjZWZlZmVmOworfQorCit0YWJsZSwgdGgsIHRkIHsKKwlib3JkZXI6IG5vbmU7Cit9CisKK2Rpdi5jb2xiYXIgeworCWJhY2tncm91bmQ6ICNlZWU7CisJYm9yZGVyLWNvbG9yOiAjOTk5ICNFRUUgI0VFRSAjOTk5OworCWJvcmRlci13aWR0aDogMXB4OworCWJvcmRlci1zdHlsZTogc29saWQ7Cit9CisKKy50b29sZ3JvdXAgeworCWJhY2tncm91bmQ6ICNlZmVmZWY7Cit9CisKKy50b29sZ3JvdXAgLmxhYmVsIHsKKwlib3JkZXItYm90dG9tOiAxcHggc29saWQgIzY2NjsKKwlib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjNjY2OworCWJhY2tncm91bmQ6ICNkZGQ7CisJY29sb3I6ICM1NTU7Cit9CisKKy50b29sZ3JvdXAgLmJvZHkgeworCWJvcmRlci1yaWdodDogMXB4IHNvbGlkICNhYWE7CisJYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhYWE7Cit9CisKKyNicmVhZGNydW1icyB7CisJYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmZmY7CisJYmFja2dyb3VuZC1jb2xvcjogI2NjYzsKK30KKworI21haW4geworCWJvcmRlci10b3A6IDFweCBzb2xpZCAjOTk5OworfQorCisjcmlnaHRjb2wgZGl2Lnd3dywgI3JpZ2h0Y29sIGRpdi5oZWxwIHsKKwlib3JkZXI6IDFweCBzb2xpZCAjZGRkOworfQorCitib2R5LmRvY3MgZGl2LmRvY3MgeworCWJhY2tncm91bmQtY29sb3I6ICNmZmY7CisJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZGRkOworCWJvcmRlci10b3A6IDFweCBzb2xpZCAjZGRkOworfQorCisjaGVscHRleHQgLmxhYmVsIHsKKwliYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2ljb25faGVscF9zbWwuZ2lmKTsKKwliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworCWJhY2tncm91bmQtcG9zaXRpb246IDk3JTsKK30KKworYm9keS5kb2NzIHsKKwliYWNrZ3JvdW5kOiAjZWVlIHVybCguLi9pbWFnZXMvaGVscF9sb2dvLmdpZikgdG9wIHJpZ2h0IG5vLXJlcGVhdCAhaW1wb3J0YW50OworfQorCisuZG9jcyBoMywgLmRvY3MgaDQgeworCWJvcmRlci10b3A6IHNvbGlkIDFweCAjMDAwOworfQorCisjYXBwaGVhZCBoMiBlbSB7CisJY29sb3I6ICM3Nzc7Cit9CisKKy5hcHAgdGggeworCWJhY2tncm91bmQtY29sb3I6ICNiYmI7Cit9CisKKy50YWJzIHRoIHsKKwlib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjMzMzOworCWJhY2tncm91bmQtY29sb3I6ICNkZGQ7CisJY29sb3I6ICNmZmY7CisJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZmZmOworfQorCisudGFicyB0ZCB7CisJYmFja2dyb3VuZC1jb2xvcjogIzk5OTsKKwlib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjsKKwlib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZmZmOworCWJvcmRlci1sZWZ0OiAxcHggc29saWQgI2ZmZjsKK30KKworLnRhYnMgeworCWJvcmRlci1ib3R0b206IDZweCAjZGRkIHNvbGlkOworfQorCisudGFicyB0aCwgLnRhYnMgdGggYTpsaW5rLCAudGFicyB0aCBhOnZpc2l0ZWQgeworCWNvbG9yOiAjNTU1OworfQorCisudGFicyB0ZCwgLnRhYnMgdGQgYTpsaW5rLCAudGFicyB0ZCBhOnZpc2l0ZWQgeworCWNvbG9yOiAjZmZmOworfQorCisudGFicyBhIHsKKwl0ZXh0LWRlY29yYXRpb246IG5vbmU7Cit9CisKKy5heGlhbCB0aCB7CisJYmFja2dyb3VuZC1jb2xvcjogI2RkZDsKKwljb2xvcjogYmxhY2s7Cit9CisKKy5hbGVydCB7CisJYmFja2dyb3VuZC1jb2xvcjogI2ZmOTsKK30KKworLmV4cGFuZGVkd2FzdGUgeworCWJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbl9hcnJvd3dhc3RlMl9zbWwuZ2lmKSBuby1yZXBlYXQ7Cit9CisKKy5jb2xsYXBzZWR3YXN0ZSB7CisJYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29uX2Fycm93d2FzdGUxX3NtbC5naWYpIG5vLXJlcGVhdDsKK30KKworLmZpbGVicm93c2UgLmV4cGFuZGVkLCAuZmlsZWJyb3dzZS1hbHQgLmV4cGFuZGVkIHsKKwliYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2ljb25fYXJyb3dmb2xkZXJvcGVuMl9zbWwuZ2lmKTsKKwliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworfQorCisuZmlsZWJyb3dzZSAuY29sbGFwc2VkLCAuZmlsZWJyb3dzZS1hbHQgLmNvbGxhcHNlZCB7CisJYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uX2Fycm93Zm9sZGVyY2xvc2VkMV9zbWwuZ2lmKTsKKwliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworfQorCisuZmlsZWJyb3dzZSAubGVhZm5vZGUsIC5maWxlYnJvd3NlLWFsdCAubGVhZm5vZGUgeworCWJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvaWNvbl9mb2xkZXJfc21sLmdpZik7CisJYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKK30KKworLmZpbGVicm93c2UgLmxlYWYsIC5maWxlYnJvd3NlLWFsdCAubGVhZiB7CisJYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uX2RvY19zbWwuZ2lmKTsKKwliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworfQorCisuc29ydHVwIHsKKwliYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25fc29ydHVwLmdpZikgbm8tcmVwZWF0OworfQorCisuc29ydGRvd24geworCWJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbl9zb3J0ZG93bi5naWYpIG5vLXJlcGVhdDsKK30KKworLmNvbGxhcHNlZHdhc3RlIHsKKwliYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25fYXJyb3d3YXN0ZTFfc21sLmdpZikgbm8tcmVwZWF0OworfQorCitib2R5IC5ncmlkIHRkIHsKKwlib3JkZXItdG9wOiAxcHggc29saWQgI2NjYzsKKwlib3JkZXItbGVmdDogMXB4IHNvbGlkICNjY2M7CisJYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cit9CisKKy5jb25maXJtIHsKKwljb2xvcjogIzA5MDsKK30KKworLmluZm8geworCWNvbG9yOiAjMDY5OworfQorCisuZXJyb3JtZXNzYWdlLCAud2FybmluZ21lc3NhZ2UsIC5kb25lbWVzc2FnZSwgLmluZm9tZXNzYWdlIHsKKwlib3JkZXItdG9wOiA1cHggc29saWQgIzkwMDsKKwlib3JkZXItbGVmdDogMXB4IHNvbGlkICM5MDA7CisJYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uX2Vycm9yX2xyZy5naWYpOworCWJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisJYmFja2dyb3VuZC1wb3NpdGlvbjogNXB4IDEuMzNlbTsKK30KKworLndhcm5pbmdtZXNzYWdlIHsKKwliYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vaW1hZ2VzL2ljb25fd2FybmluZ19scmcuZ2lmKTsKKwlib3JkZXItY29sb3I6ICNjNjA7Cit9CisKKy5kb25lbWVzc2FnZSB7CisJYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uX3N1Y2Nlc3NfbHJnLmdpZik7CisJYm9yZGVyLWNvbG9yOiAjMDkwOworfQorCisuaW5mb21lc3NhZ2UgeworCWJhY2tncm91bmQtaW1hZ2U6IHVybCguLi9pbWFnZXMvaWNvbl9pbmZvX2xyZy5naWYpOworCWJvcmRlci1jb2xvcjogIzA2OTsKK30KKworLmRvY2luZm8geworCWJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbl9kb2NfbHJnLmdpZikgbm8tcmVwZWF0OworfQorCisuZGlyaW5mbyB7CisJYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29uX2ZvbGRlcl9scmcuZ2lmKSBuby1yZXBlYXQ7Cit9CisKKy5tZW1iZXJpbmZvIHsKKwliYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25fbWVtYmVyc19scmcuZ2lmKSBuby1yZXBlYXQ7Cit9CisKKy51c2VyZ3JvdXBpbmZvIHsKKwliYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25fdXNlcmdyb3Vwc19scmcuZ2lmKSBuby1yZXBlYXQ7Cit9CisKKy5lcnJvcm1hcmssIC53YXJuaW5nbWFyaywgLmRvbmVtYXJrLCAuaW5mb21hcmsgeworCWJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbl9lcnJvcl9zbWwuZ2lmKSBuby1yZXBlYXQ7Cit9CisKKy53YXJuaW5nbWFyayB7CisJYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uX3dhcm5pbmdfc21sLmdpZik7Cit9CisKKy5kb25lbWFyayB7CisJYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uX3N1Y2Nlc3Nfc21sLmdpZik7Cit9CisKKy5pbmZvbWFyayB7CisJYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL2ltYWdlcy9pY29uX2luZm9fc21sLmdpZik7Cit9CisKKy5jdnNkaWZmLCAuY3ZzYmxhbWUgeworCWJhY2tncm91bmQtY29sb3I6ICNjY2M7Cit9CisKKy5jdnNkaWZmYWRkIHsKKwliYWNrZ3JvdW5kLWNvbG9yOiAjYWZhOworfQorCisuY3ZzZGlmZnJlbW92ZSB7CisJYmFja2dyb3VuZC1jb2xvcjogI2ZhYTsKK30KKworLmN2c2RpZmZjaGFuZ2VzMSB7CisJYmFja2dyb3VuZC1jb2xvcjogI2ZmNzsKK30KKworLmN2c2RpZmZjaGFuZ2VzMiB7CisJYmFja2dyb3VuZC1jb2xvcjogI2ZmNzsKK30KKworbGkuc2VsZWN0aW9uIHVsIGEgeworCWJhY2tncm91bmQ6ICNmZmY7Cit9CisKKy5iYW5kMSB7CisJY29sb3I6ICNmZmY7CisJYmFja2dyb3VuZC1jb2xvcjogIzY2MzsKK30KKworLmJhbmQyIHsKKwljb2xvcjogI2ZmZjsKKwliYWNrZ3JvdW5kLWNvbG9yOiAjNjZDOworfQorCisuYmFuZDMgeworCWJhY2tncm91bmQtY29sb3I6ICNDOTk7Cit9CisKKy5iYW5kNCB7CisJYmFja2dyb3VuZC1jb2xvcjogI0NGRjsKK30KKworLmJhbmQ1IHsKKwljb2xvcjogI2ZmZjsKKwliYWNrZ3JvdW5kLWNvbG9yOiAjMzM2OworfQorCisuYmFuZDYgeworCWNvbG9yOiAjZmZmOworCWJhY2tncm91bmQtY29sb3I6ICM5NjY7Cit9CisKKy5iYW5kNyB7CisJYmFja2dyb3VuZC1jb2xvcjogIzlDQzsKK30KKworLmJhbmQ4IHsKKwliYWNrZ3JvdW5kLWNvbG9yOiAjRkZDOworfQorCisuYmFuZDkgeworCWNvbG9yOiAjZmZmOworCWJhY2tncm91bmQtY29sb3I6ICM2MzM7Cit9CisKKy5iYW5kMTAgeworCWNvbG9yOiAjZmZmOworCWJhY2tncm91bmQtY29sb3I6ICM2OTk7Cit9CisKKy5iYW5kMTEgeworCWJhY2tncm91bmQtY29sb3I6ICNDQzk7Cit9CisKKy5iYW5kMTIgeworCWJhY2tncm91bmQtY29sb3I6ICNDQ0Y7Cit9CisKKy5iYW5kMTMgeworCWNvbG9yOiAjZmZmOworCWJhY2tncm91bmQtY29sb3I6ICMzNjY7Cit9CisKKy5iYW5kMTQgeworCWNvbG9yOiAjZmZmOworCWJhY2tncm91bmQtY29sb3I6ICM5OTY7Cit9CisKKy5iYW5kMTUgeworCWJhY2tncm91bmQtY29sb3I6ICM5OUM7Cit9CisKKy5iYW5kMTYgeworCWJhY2tncm91bmQtY29sb3I6ICNGQ0M7Cit9CisKKy5hcHAgLmhlbHBsaW5rLCAjaGVscHRleHQgLmhlbHBsaW5rIHsKKwljdXJzb3I6IGhlbHA7Cit9CisKKy5sZWdlbmQgdGgsIC5iYXJzIHRoIHsKKwliYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOworfQorCisvKiBmb250IGFuZCB0ZXh0IHByb3BlcnRpZXMsIGV4Y2x1c2l2ZSBvZiBsaW5rIGluZGljYXRpb24sIGFsaWdubWVudCwgdGV4dC1pbmRlbnQgKi8KK2JvZHksIHRoLCB0ZCwgaW5wdXQsIHNlbGVjdCB7CisJZm9udC1mYW1pbHk6IFZlcmRhbmEsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7Cit9CisKK2NvZGUsIHByZSB7CisJZm9udC1mYW1pbHk6ICdBbmRhbGUgTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZTsKK30KKworYm9keSwgLmFwcCBoMywgLmFwcCBoNCwgI3JpZ2h0Y29sIGgzLCBwcmUsIGNvZGUsICNhcHBoZWFkIGgyIHNtYWxsLCBoNCwgdGgsIHRkIHsKKwlmb250LXNpemU6IHgtc21hbGw7CisJdm9pY2UtZmFtaWx5OiAiXCJ9XCIiOworCXZvaWNlLWZhbWlseTogaW5oZXJpdDsKKwlmb250LXNpemU6IHNtYWxsOworfQorCitzbWFsbCwgZGl2I2Zvb3RlciwgZGl2I2xvZ2luLCBkaXYudGFicyB0aCwgZGl2LnRhYnMgdGQsIGlucHV0LCBzZWxlY3QsIC5wYWdpbmF0ZSwgLmZ1bmN0bmJhciwgLmZ1bmN0bmJhcjIsIC5mdW5jdG5iYXIzLCAjYnJlYWRjcnVtYnMsIC5jb3VydGVzeWxpbmtzLCAjcmlnaHRjb2wgZGl2LmhlbHAsIC5jb2xiYXIsIC50YXNrbmF2LCBib2R5LmRvY3MgZGl2I3RvYywgI2xlZnRjb2wsIC5sZWdlbmQsIC5iYXJzIHsKKwlmb250LXNpemU6IHh4LXNtYWxsOworCXZvaWNlLWZhbWlseTogIlwifVwiIjsKKwl2b2ljZS1mYW1pbHk6IGluaGVyaXQ7CisJZm9udC1zaXplOiB4LXNtYWxsOworfQorCisudGFicyB0ZCwgLnRhYnMgdGgsIGR0LCAudGFza25hdiAuc2VsZnJlZiwgI2xvZ2luIC51c2VybmFtZSwgLnNlbGVjdGlvbiB7CisJZm9udC13ZWlnaHQ6IGJvbGQ7Cit9CisKK2xpLnNlbGVjdGlvbiB1bCB7CisJZm9udC13ZWlnaHQ6IG5vcm1hbDsKK30KKworI2FwcGhlYWQgaDIgZW0geworCWZvbnQtc3R5bGU6IG5vcm1hbDsKK30KKworI2Jhbm5lciBoMSB7CisJZm9udC1zaXplOiAxLjI1ZW07Cit9CisKKy8qIGJveCBwcm9wZXJ0aWVzIChleGNsdXNpdmUgb2YgYm9yZGVycyksIHBvc2l0aW9uaW5nLCBhbGlnbm1lbnRzLCBsaXN0IHR5cGVzLCB0ZXh0LWluZGVudCAqLworI2JvZHljb2wgaDIgeworCW1hcmdpbi10b3A6IC4zZW07CisJbWFyZ2luLWJvdHRvbTogLjVlbTsKK30KKworcCwgdWwsIG9sLCBkbCwgLmJhcnMgdGFibGUgeworCW1hcmdpbi10b3A6IC42N2VtOworCW1hcmdpbi1ib3R0b206IC42N2VtOworfQorCitoMywgaDQgeworCW1hcmdpbi1ib3R0b206IDA7Cit9CisKK2Zvcm0geworCW1hcmdpbjogMDsKK30KKworI2JvZHljb2wgeworCXBhZGRpbmctbGVmdDogMTJweDsKKwlwYWRkaW5nLXJpZ2h0OiAxMnB4OworCXdpZHRoOiAxMDAlOworCXZvaWNlLWZhbWlseTogIlwifVwiIjsKKwl2b2ljZS1mYW1pbHk6IGluaGVyaXQ7CisJd2lkdGg6IGF1dG87Cit9CisKK2h0bWw+Ym9keSAjYm9keWNvbCB7CisJd2lkdGg6IGF1dG87Cit9CisKKy5kb2NzIHsKKwlsaW5lLWhlaWdodDogMS40OworfQorCitvbCBvbCB7CisJbGlzdC1zdHlsZS10eXBlOiBsb3dlci1hbHBoYTsKK30KKworb2wgb2wgb2wgeworCWxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47Cit9CisKKy5hcHAgaDMsIC5hcHAgaDQgeworCXBhZGRpbmc6IDVweDsKKwltYXJnaW4tcmlnaHQ6IDJweDsKKwltYXJnaW4tbGVmdDogMnB4OworfQorCisuYXBwIHRkLCAuYXBwIHRoIHsKKwlwYWRkaW5nOiAycHggM3B4OworfQorCisuaDMgcCwgLmg0IHAsIC5oMyBkdCwgLmg0IGR0IHsKKwltYXJnaW4tcmlnaHQ6IDdweDsKKwltYXJnaW4tbGVmdDogN3B4OworfQorCisudGFza25hdiB7CisJbWFyZ2luLWJvdHRvbTogMS4zM2VtOworfQorCitkaXYuY29sYmFyIHsKKwlwYWRkaW5nOiAzcHg7CisJbWFyZ2luOiAycHggMnB4IDA7Cit9CisKKy50YWJzIHsKKwltYXJnaW4tdG9wOiAuNjdlbTsKKwltYXJnaW4tcmlnaHQ6IDJweDsKKwltYXJnaW4tbGVmdDogMnB4OworCXBhZGRpbmctbGVmdDogOHB4OworfQorCisudGFicyB0ZCwgLnRhYnMgdGggeworCXBhZGRpbmc6IDNweCA5cHg7Cit9CisKKyNyaWdodGNvbCBkaXYud3d3LCAjcmlnaHRjb2wgZGl2LmhlbHAgeworCXBhZGRpbmc6IDAgLjVlbTsKK30KKworYm9keS5kb2NzICN0b2MgeworCXBvc2l0aW9uOiBhYnNvbHV0ZTsKKwl0b3A6IDE1cHg7CisJbGVmdDogMHB4OworCXdpZHRoOiAxMjBweDsKKwlwYWRkaW5nOiAwIDIwcHggMCAwOworfQorCitib2R5LmRvY3MgI3RvYyB1bCwgI3RvYyBvbCB7CisJbWFyZ2luLWxlZnQ6IDA7CisJcGFkZGluZy1sZWZ0OiAwOworfQorCitib2R5LmRvY3MgI3RvYyBsaSB7CisJbWFyZ2luLXRvcDogN3B4OworCXBhZGRpbmctbGVmdDogMTBweDsKKwlsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cit9CisKK2JvZHkuZG9jcyBkaXYuZG9jcyB7CisJbWFyZ2luOiA2MXB4IDAgMCAxNTBweDsKKwlwYWRkaW5nOiAxZW0gMmVtIDFlbSAxZW0gIWltcG9ydGFudDsKK30KKworLmRvY3MgcCtwIHsKKwl0ZXh0LWluZGVudDogNSU7CisJbWFyZ2luLXRvcDogLS42N2VtOworfQorCisuZG9jcyBoMywgLmRvY3MgaDQgeworCW1hcmdpbi1ib3R0b206IC4xZW07CisJcGFkZGluZy10b3A6IC4zZW07Cit9CisKKy5mdW5jdG5iYXIsIC5mdW5jdG5iYXIyLCAuZnVuY3RuYmFyMyB7CisJcGFkZGluZzogNXB4OworCW1hcmdpbjogLjY3ZW0gMnB4OworfQorCisuZnVuY3RuYmFyMyB7CisJbWFyZ2luLXRvcDogMDsKK30KKworYm9keSB7CisJcGFkZGluZzogMWVtOworfQorCitib2R5LmNvbXBvc2l0ZSwgYm9keS5kb2NzIHsKKwltYXJnaW46IDA7CisJcGFkZGluZzogMDsKK30KKwordGgsIHRkIHsKKwl0ZXh0LWFsaWduOiBsZWZ0OworCXZlcnRpY2FsLWFsaWduOiB0b3A7Cit9CisKKy5yaWdodCB7CisJdGV4dC1hbGlnbjogcmlnaHQgIWltcG9ydGFudDsKK30KKworLmNlbnRlciB7CisJdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7Cit9CisKKy5heGlhbCB0aCwgLmF4aWFsIHRoIC5zdHJ1dCB7CisJdGV4dC1hbGlnbjogcmlnaHQ7Cit9CisKKy5hcHAgLmF4aWFsIHRkIHRoIHsKKwl0ZXh0LWFsaWduOiBsZWZ0OworfQorCitib2R5IC5zdGIgeworCW1hcmdpbi10b3A6IDFlbTsKKwl0ZXh0LWluZGVudDogMDsKK30KKworYm9keSAubXRiIHsKKwltYXJnaW4tdG9wOiAyZW07CisJdGV4dC1pbmRlbnQ6IDA7Cit9CisKKy5jb3VydGVzeWxpbmtzIHsKKwltYXJnaW4tdG9wOiAxZW07CisJcGFkZGluZy10b3A6IDFlbTsKK30KKworZGQgeworCW1hcmdpbi1ib3R0b206IC42N2VtOworfQorCisudG9vbGdyb3VwIHsKKwltYXJnaW4tYm90dG9tOiA2cHg7Cit9CisKKy50b29sZ3JvdXAgLmJvZHkgeworCXBhZGRpbmc6IDRweCA0cHggNHB4IDA7Cit9CisKKy50b29sZ3JvdXAgLmxhYmVsIHsKKwlwYWRkaW5nOiA0cHg7Cit9CisKKy50b29sZ3JvdXAgLmJvZHkgZGl2IHsKKwlwYWRkaW5nLWJvdHRvbTogLjNlbTsKKwlwYWRkaW5nLWxlZnQ6IDFlbTsKK30KKworLnRvb2xncm91cCAuYm9keSBkaXYgZGl2IHsKKwltYXJnaW4tdG9wOiAuM2VtOworCXBhZGRpbmctYm90dG9tOiAwOworfQorCisudGllcjEgeworCW1hcmdpbi1sZWZ0OiAwOworfQorCisudGllcjIgeworCW1hcmdpbi1sZWZ0OiAxLjVlbTsKK30KKworLnRpZXIzIHsKKwltYXJnaW4tbGVmdDogM2VtOworfQorCisudGllcjQgeworCW1hcmdpbi1sZWZ0OiA0LjVlbTsKK30KKworLnRpZXI1IHsKKwltYXJnaW4tbGVmdDogNmVtOworfQorCisudGllcjYgeworCW1hcmdpbi1sZWZ0OiA3LjVlbTsKK30KKworLnRpZXI3IHsKKwltYXJnaW4tbGVmdDogOWVtOworfQorCisudGllcjggeworCW1hcmdpbi1sZWZ0OiAxMC41ZW07Cit9CisKKy50aWVyOSB7CisJbWFyZ2luLWxlZnQ6IDEyZW07Cit9CisKKy50aWVyMTAgeworCW1hcmdpbi1sZWZ0OiAxMy41ZW07Cit9CisKKy5maWxlYnJvd3NlIC5leHBhbmRlZCwgLmZpbGVicm93c2UgLmNvbGxhcHNlZCB7CisJcGFkZGluZy1sZWZ0OiAzNHB4OworfQorCisuZmlsZWJyb3dzZSAubGVhZm5vZGUsIC5maWxlYnJvd3NlIC5sZWFmIHsKKwlwYWRkaW5nLWxlZnQ6IDIwcHg7Cit9CisKKy5tZXNzYWdlY2hpbGQgeworCXBhZGRpbmctbGVmdDogMzRweDsKK30KKworLmZpbGVicm93c2UtYWx0IC5leHBhbmRlZCwgLmZpbGVicm93c2UtYWx0IC5jb2xsYXBzZWQsIC5maWxlYnJvd3NlLWFsdCAubGVhZiwgLmZpbGVicm93c2UtYWx0IC5sZWFmbm9kZSwgLmV4cGFuZGVkd2FzdGUsIC5jb2xsYXBzZWR3YXN0ZSwgLnNvcnR1cCwgLnNvcnRkb3duIHsKKwkvKiBoaWRlIGZyb20gbWFjaWU1XCovCisJZmxvYXQ6IGxlZnQ7CisJLyogcmVzdW1lICovCisJZGlzcGxheTogaW5saW5lLWJsb2NrOworCWhlaWdodDogMTVweDsKKwl3aWR0aDogMzRweDsKKwlwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsKK30KKworLmZpbGVicm93c2UtYWx0IC5sZWFmLCAuZmlsZWJyb3dzZS1hbHQgLmxlYWZub2RlLCAuc29ydHVwLCAuc29ydGRvd24geworCXdpZHRoOiAyMHB4OworfQorCisuZmlsZWJyb3dzZSB1bCwgLmZpbGVicm93c2UtYWx0IHVsIHsKKwlsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CisJcGFkZGluZy1sZWZ0OiAwOworCW1hcmdpbi1sZWZ0OiAwOworfQorCisuZmlsZWJyb3dzZSB1bCB1bCwgLmZpbGVicm93c2UtYWx0IHVsIHVsIHsKKwltYXJnaW4tbGVmdDogMS41ZW07CisJbWFyZ2luLXRvcDogMDsKKwlwYWRkaW5nLXRvcDogLjY3ZW07Cit9CisKKy5maWxlYnJvd3NlIGxpLCAuZmlsZWJyb3dzZS1hbHQgbGkgeworCW1hcmdpbi1ib3R0b206IC42N2VtOworfQorCit0ZC5maWxlYnJvd3NlIGgzIHsKKwltYXJnaW4tdG9wOiAwOworfQorCisuZXJyb3JtZXNzYWdlLCAud2FybmluZ21lc3NhZ2UsIC5kb25lbWVzc2FnZSwgLmluZm9tZXNzYWdlLCAuZG9jaW5mbywgLmRpcmluZm8sIC5tZW1iZXJpbmZvLCAudXNlcmdyb3VwaW5mbyB7CisJbWFyZ2luOiAuNjdlbSAwOworCXBhZGRpbmc6IC4zM2VtIDAgLjY3ZW0gNDJweDsKKwltaW4taGVpZ2h0OiAzMnB4OworfQorCisuZXJyb3JtYXJrLCAud2FybmluZ21hcmssIC5kb25lbWFyaywgLmluZm9tYXJrIHsKKwlwYWRkaW5nLWxlZnQ6IDIwcHg7CisJbWluLWhlaWdodDogMTVweDsKK30KKworLmFsdCB7CisJZGlzcGxheTogbm9uZTsKK30KKworI2Jhbm5lciBoMSB7CisJbWFyZ2luOiAwOworfQorCisjbGVmdGNvbCB7CisJd2lkdGg6IDE0ZW07Cit9CisKKy5heGlhbCB0aCwgLmF4aWFsIHRoIC5zdHJ1dCwgI2xlZnRjb2wgLnN0cnV0IHsKKwl3aWR0aDogMTJlbTsKK30KKworI2JyZWFkY3J1bWJzIHsKKwlwYWRkaW5nOiAycHggOHB4OworfQorCisuYXBwIGgzLCAuYXBwIGg0LCAuYmFycyB7CisJY2xlYXI6IGJvdGg7Cit9CisKKy5sZWdlbmQgeworCWZsb2F0OiByaWdodDsKK30KKworLmxlZ2VuZCB0aCwgLmJhcnMgdGggeworCXRleHQtYWxpZ246IHJpZ2h0OworCXBhZGRpbmctbGVmdDogMWVtOworfQorCisuYmFycyB0YWJsZSB7CisJdGFibGUtbGF5b3V0OiBmaXhlZDsKK30KKworLmJhcnMgdGggeworCXdpZHRoOiAxMmVtOworfQorCisjcHJvamVjdGRvY3VtZW50bGlzdCB0ZC5maWxlYnJvd3NlLWFsdCB7CisJcGFkZGluZy1yaWdodDogLjc1ZW07Cit9CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy90aWxlcy9pbnN0YWxsYXRpb24ueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdGlsZXMvaW5zdGFsbGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODZmOWYxCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdGlsZXMvaW5zdGFsbGF0aW9uLnhtbApAQCAtMCwwICsxLDM0NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSIuL2luc3RhbGxhdGlvbi54bWwiPgorPHByb3BlcnRpZXM+CisgIDx0aXRsZT5UaGUgVGlsZXMgMS4xIEZyYW1ld29yayBQcm9qZWN0IC0gSW5zdGFsbGF0aW9uICgxLjEpPC90aXRsZT4KKzwvcHJvcGVydGllcz4KKworPGJvZHk+CisKKzxzZWN0aW9uIG5hbWU9IlF1aWNrIEluc3RhbGwgZm9yIFRlc3RpbmcsIERvY3VtZW50YXRpb24gYW5kIFR1dG9yaWFsIgorICAgICAgICAgaHJlZj0iUXVpY2tJbnN0YWxsIj4KKyAgICA8dWw+CisgICAgICAgIDxsaT5Eb3dubG9hZCBUaWxlcyBiaW5hcnkgZGlzdHJpYnV0aW9uPC9saT4KKyAgICAgICAgPGxpPlVuemlwIGRpc3RyaWJ1dGlvbjwvbGk+CisgICAgICAgIDxsaT5Db3B5IDxjb2RlPndlYi90aWxlcy1kb2Mud2FyPC9jb2RlPiBvciA8Y29kZT53ZWIvc3RydXRzLXRpbGVzLndhcjwvY29kZT4KKyAgICAgICAgICAgIGluICB5b3VyIHdlYiBzZXJ2ZXIgd2ViYXBwcyBkaXJlY3RvcnkgKHdlYmFwcHMgd2l0aCBUb21jYXQpLgorICAgICAgICAgICAgUGxlYXNlIHJlZmVyIHRvIHlvdXIgd2Vic2VydmVyIG1hbnVhbCB0byBrbm93IGV4YWN0bHkgd2hlcmUsIG9yCisgICAgICAgICAgICBjaGVjayA8YSBocmVmPSIjQ29udGFpbmVycyI+ZGV0YWlsZWQgaW5zdGFsbDwvYT4uPC9saT4KKyAgICAgICAgPGxpPlJlc3RhcnQgeW91ciB3ZWIgc2VydmVyIGlmIG5lY2Vzc2FyeTwvbGk+CisgICAgICAgIDxsaT5Qb2ludCB5b3VyIGJyb3dzZXIgdG8gdGhlIHJvb3Qgb2YgbmV3bHkgaW5zdGFsbGVkIHdlYiBhcHBsaWNhdGlvbgorICAgICAgICAgICAgKDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC90aWxlcy1kb2MiPgorICAgICAgICAgICAgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3RpbGVzLWRvYzwvYT4KKyAgICAgICAgICAgICBvciA8YSBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwODAvc3RydXRzLXRpbGVzIj4KKyAgICAgICAgICAgICBodHRwOi8vbG9jYWxob3N0OjgwODAvc3RydXRzLXRpbGVzPC9hPgorICAgICAgICAgICAgd2l0aCB0b21jYXQ8L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5RdWljayBzdGFydCBhbmQgc2V0dGluZyBvZiBhIG5ldyBhcHBsaWNhdGlvbiB1c2luZyBUaWxlczwvcD4KKyAgICA8dWw+CisgICAgICAgIDxsaT5UYWtlIGFwcHJvcHJpYXRlIDxjb2RlPnRpbGVzLWJsYW5rLndhcjwvY29kZT4gYW5kCisgICAgICAgICAgICBjb3B5IGl0IGluIHlvdXIgd2ViIHNlcnZlciB3ZWJhcHBzIGRpcmVjdG9yeQorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48Y29kZT50aWxlcy1ibGFuay53YXI8L2NvZGU+IC0gVGlsZXMKKyAgICAgICAgICAgICAgICAgICAgd2l0aG91dCBTdHJ1dHM8L2xpPgorICAgICAgICAgICAgICAgIDxsaT48Y29kZT50aWxlcy1ibGFuay1zdHJ1dHMxLjEud2FyPC9jb2RlPiAtCisgICAgICAgICAgICAgICAgICAgIFRpbGVzIHdpdGggU3RydXRzMS4xPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGNvZGU+dGlsZXMtYmxhbmstc3RydXRzMS4wLndhcjwvY29kZT4gLQorICAgICAgICAgICAgICAgICAgICBUaWxlcyB3aXRoIGxhdGVzdCBzdGFibGUgU3RydXRzMS4wLng8L2xpPgorICAgICAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPlRoZXNlIHdhciBmaWxlcyBhcmUgbm90IGRpc3RyaWJ1dGVkIHdpdGggU3RydXRzIGJpbmFyaWVzLjwvbGk+CisgICAgPC91bD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gbmFtZT0iUHJlcmVxdWlzaXRlIFNvZnR3YXJlIiBocmVmPSJQcmVyZXF1aXNpdGVzIj4KKyAgICA8cD5Db3B5cmlnaHQgOiBUaGlzIHBhZ2UgaXMgbGFyZ2VseSBpbnNwaXJlZCBmcm9tIHRoZSBvcmlnaW5hbAorICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzIj5TdHJ1dHMgaW5zdGFsbGF0aW9uIHBhZ2U8L2E+LgorICAgICAgIEZvciB0aG9zZSBmYW1pbGlhciB3aXRoIFN0cnV0cywgdGhlcmUgaXMgbm90aGluZyByZWFsbHkgbmV3LjwvcD4KKworICAgIDxwPlRoZSBUaWxlcyBiaW5hcnkgZGlzdHJpYnV0aW9uIG5lZWRzIG90aGVyIHNvZnR3YXJlIHBhY2thZ2VzIGluc3RhbGxlZAorICAgICAgIHRvIG9wZXJhdGUuIFlvdSBtYXkgYWxyZWFkeSBoYXZlIHRoZXNlIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS4gVG8KKyAgICAgICBidWlsZCBUaWxlcyBmcm9tIHNvdXJjZSB5b3UgbWF5IG5lZWQgdG8gYWNxdWlyZSBhbmQgaW5zdGFsbCBzZXZlcmFsCisgICAgICAgb3RoZXJzLiBUaGUgY29tcGxldGUgbGlzdCBpcyBhcyBmb2xsb3dzOjwvcD4KKworICAgIDx1bD4KKyAgICAgICAgPGxpPjxzdHJvbmc+SmF2YSBEZXZlbG9wbWVudCBLaXQ8L3N0cm9uZz4gLQorICAgICAgICAgICAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBkb3dubG9hZCBhbmQgaW5zdGFsbCBhIEphdmEyICh2ZXJzaW9uCisgICAgICAgICAgICAxLjIgb3IgbGF0ZXIpIEphdmEgRGV2ZWxvcG1lbnQgS2l0IGltcGxlbWVudGF0aW9uIGZvciB5b3VyCisgICAgICAgICAgICBvcGVyYXRpbmcgc3lzdGVtIHBsYXRmb3JtLiBBIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIGxvY2F0aW5nIEphdmEKKyAgICAgICAgICAgIERldmVsb3BtZW50IEtpdCBkaXN0cmlidXRpb25zIGlzIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vajJzZSI+CisgICAgICAgICAgICBodHRwOi8vamF2YS5zdW4uY29tL2oyc2U8L2E+LgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+PHN0cm9uZz5TZXJ2bGV0IENvbnRhaW5lcjwvc3Ryb25nPiAtCisgICAgICAgICAgICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IGRvd25sb2FkIGFuZCBpbnN0YWxsIGEgc2VydmxldCBjb250YWluZXIKKyAgICAgICAgICAgIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBTZXJ2bGV0IEFQSSBTcGVjaWZpY2F0aW9uLCB2ZXJzaW9uIDIuMgorICAgICAgICAgICAgb3IgbGF0ZXIsIGFuZCB0aGUgSmF2YVNlcnZlciBQYWdlcyAoSlNQKSBTcGVjaWZpY2F0aW9uLCB2ZXJzaW9uIDEuMQorICAgICAgICAgICAgb3IgbGF0ZXIuIE9uZSBwb3B1bGFyIGNob2ljZSBpcyB0byBkb3dubG9hZCBBcGFjaGUncworICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy90b21jYXQiPlRvbWNhdDwvYT4KKyAgICAgICAgICAgICh2ZXJzaW9uIDMuMSBvciBsYXRlciByZXF1aXJlZCwgdmVyc2lvbiAzLjIgb3IgbGF0ZXIgcmVjb21tZW5kZWQpLjwvbGk+CisgICAgICAgIDxsaT48c3Ryb25nPlhNTCBQYXJzZXI8L3N0cm9uZz4gLSBUaWxlcyA8c3Ryb25nPnJlcXVpcmVzPC9zdHJvbmc+IHRoZQorICAgICAgICAgICAgcHJlc2VuY2Ugb2YgYW4gWE1MIHBhcnNlciB0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgSmF2YSBBUEkgZm9yCisgICAgICAgICAgICBYTUwgUGFyc2luZyAoSkFYUCkgc3BlY2lmaWNhdGlvbiwgMS4xIG9yIGxhdGVyLiBZb3UgY2FuIGRvd25sb2FkCisgICAgICAgICAgICBhbmQgaW5zdGFsbCB0aGUgSkFYUCA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3htbCI+cmVmZXJlbmNlCisgICAgICAgICAgICBpbXBsZW1lbnRhdGlvbjwvYT4sIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBidWlsZGluZyB0aGUgVGlsZXMKKyAgICAgICAgICAgIHNvdXJjZSBkaXN0cmlidXRpb24uIEluIFRpbGVzLWJhc2VkIHdlYiBhcHBsaWNhdGlvbnMsIHlvdSBtYXkKKyAgICAgICAgICAgIHJlcGxhY2UgdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBjbGFzc2VzIHdpdGggYW55IG90aGVyIEpBWFAKKyAgICAgICAgICAgIGNvbXBsaWFudCBwYXJzZXIsIHN1Y2ggYXMgPGEgaHJlZj0iaHR0cDovL3htbC5hcGFjaGUub3JnL3hlcmNlcy1qIj4KKyAgICAgICAgICAgIFhlcmNlczwvYT4uIFNlZSBkZXRhaWxlZCAgICBpbnN0cnVjdGlvbnMgcmVsYXRlZCB0byB0aGUgcGFyc2VyIGluCisgICAgICAgICAgICB0aGUgaW5zdHJ1Y3Rpb25zIGZvciA8YSBocmVmPSIjQnVpbGRpbmciPmJ1aWxkaW5nPC9hPiBhbmQKKyAgICAgICAgICAgIDxhIGhyZWY9IiNJbnN0YWxsaW5nIj5pbnN0YWxsaW5nPC9hPiBUaWxlcywgYmVsb3cuIDwvbGk+CisgICAgICAgIDxsaT48c3Ryb25nPkFudCBCdWlsZCBTeXN0ZW08L3N0cm9uZz4gLQorICAgICAgICAgICAgSWYgeW91IGFyZSBidWlsZGluZyBUaWxlcyBmcm9tIHRoZSBzb3VyY2UgZGlzdHJpYnV0aW9uLCB5b3UgbXVzdAorICAgICAgICAgICAgZG93bmxvYWQgYW5kIGluc3RhbGwgdmVyc2lvbiAxLjMgb3IgbGF0ZXIgb2YgdGhlCisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2FudCI+QW50PC9hPiBidWlsZCBzeXN0ZW0uCisgICAgICAgICAgICBUaGlzIHBhY2thZ2UgaXMgYWxzbyBzdHJvbmdseSByZWNvbW1lbmRlZCBmb3IgdXNlIGluIGRldmVsb3BpbmcKKyAgICAgICAgICAgIHlvdXIgb3duIHdlYiBhcHBsaWNhdGlvbnMgYmFzZWQgb24gVGlsZXMuCisgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT5JZiB5b3UgYXJlIHVzaW5nIHRoZSByZWxlYXNlIHZlcnNpb24gb2YgQW50IHZlcnNpb24gMS4zLCB5b3UKKyAgICAgICAgICAgICAgICB3aWxsIGFsc28gbmVlZCB0byBkb3dubG9hZCB0aGUgIm9wdGlvbmFsLmphciIgZmlsZSB0aGF0CisgICAgICAgICAgICAgICAgY29udGFpbnMgdGhlIGltcGxlbWVudGF0aW9uIG9mIEFudCdzIDxjb2RlPiZsdDtzdHlsZSZndDs8L2NvZGU+CisgICAgICAgICAgICAgICAgY29tbWFuZC4gPC9saT4KKyAgICAgICAgICAgIDxsaT5NYWtlIHN1cmUgdGhhdCB0aGUgImFudCIgYW5kICJhbnQuYmF0IiBzY3JpcHRzCisgICAgICAgICAgICAgICAgYXJlIGV4ZWN1dGFibGUsIGJ5IGFkZGluZyB0aGUgJEFOVF9IT01FL2JpbiBkaXJlY3RvcnkgdG8geW91cgorICAgICAgICAgICAgICAgIFBBVEggZW52aXJvbm1lbnQgdmFyaWFibGUuIDwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT48c3Ryb25nPlNlcnZsZXQgQVBJIENsYXNzZXM8L3N0cm9uZz4gLSBJbiBvcmRlciB0byBjb21waWxlIFRpbGVzCisgICAgICAgICAgICBpdHNlbGYsIG9yIGFwcGxpY2F0aW9ucyB0aGF0IHVzZSBUaWxlcywgeW91IHdpbGwgbmVlZCBhCisgICAgICAgICAgICA8Y29kZT5zZXJ2bGV0LmphcjwvY29kZT4gZmlsZSBjb250YWluaW5nIHRoZSBTZXJ2bGV0IGFuZCBKU1AgQVBJCisgICAgICAgICAgICBjbGFzc2VzLiBNb3N0IHNlcnZsZXQgY29udGFpbmVycyBpbmNsdWRlIHRoaXMgSkFSIGZpbGUuIE90aGVyd2lzZSwKKyAgICAgICAgICAgIHlvdSBjYW4gZ2V0IHRoZSBTZXJ2bGV0IEFQSSBjbGFzc2VzIGRpc3RyaWJ1dGlvbiBmcm9tCisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2J1aWxkcy9qYWthcnRhLXNlcnZsZXRhcGkiPgorICAgICAgICAgICAgaGVyZTwvYT4uCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT48c3Ryb25nPkpha2FydGEgQ29tbW9ucyBQYWNrYWdlczwvc3Ryb25nPiAtCisgICAgICAgICAgICBUaWxlcyB1dGlsaXplcyBzZXZlcmFsICAgIHBhY2thZ2VzIGZyb20gdGhlCisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvIj5KYWthcnRhIENvbW1vbnMKKyAgICAgICAgICAgIFByb2plY3Q8L2E+LklmIHlvdSBhcmUgdXRpbGl6aW5nIGEgYmluYXJ5IGRpc3RyaWJ1dGlvbiBvZiBUaWxlcywKKyAgICAgICAgICAgIHRoZSBjb3JyZXNwb25kaW5nIEpBUiBmaWxlcyBhcmUgaW5jbHVkZWQgaW4gdGhlIDxjb2RlPmxpYjwvY29kZT4KKyAgICAgICAgICAgIGRpcmVjdG9yeS4gSG93ZXZlciwgaWYgeW91IHdpc2ggdG8gYnVpbGQgVGlsZXMgZnJvbSBzb3VyY2UsIHlvdQorICAgICAgICAgICAgd2lsbCBuZWVkIHRvIGRvd25sb2FkIGFuZCBpbnN0YWxsIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6CisKKyAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+QmVhbnV0aWxzPC9lbT4gKFZlcnNpb24gMS4wIG9yIGxhdGVyKTwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5Db2xsZWN0aW9uczwvZW0+IChWZXJzaW9uIDEuMCBvciBsYXRlcik8L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+RGlnZXN0ZXI8L2VtPiAoVmVyc2lvbiAxLjAgb3IgbGF0ZXIpPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPkxvZ2dpbmc8L2VtPiAoVmVyc2lvbiAxLjAgb3IgbGF0ZXIpPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPjxzdHJvbmc+WGFsYW4gWFNMVCBQcm9jZXNzb3I8L3N0cm9uZz4gLQorICAgICAgICAgICAgSWYgeW91IGFyZSBidWlsZGluZyBUaWxlcyBmcm9tIHRoZSBzb3VyY2UgZGlzdHJpYnV0aW9uLCB5b3Ugd2lsbAorICAgICAgICAgICAgbmVlZCBhIHZlcnNpb24gb2YgWGFsYW4gdG8gcGVyZm9ybSBYU0xUIHRyYW5zZm9ybWF0aW9ucy4gSWYgeW91CisgICAgICAgICAgICBhcmUgdXNpbmcgdGhlIEpBWFAvMS4xIFhNTCBwYXJzZXIsIHlvdSAgICBzaG91bGQgdXNlIHRoZSB2ZXJzaW9uCisgICAgICAgICAgICBvZiA8Y29kZT54YWxhbi5qYXI8L2NvZGU+IHNoaXBwZWQgd2l0aCBpdC4gT3RoZXJ3aXNlLCBkb3dubG9hZAorICAgICAgICAgICAgYW5kIGluc3RhbGwgdmVyc2lvbiAxLjIgb2YgWGFsYW4gZnJvbQorICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL3htbC5hcGFjaGUub3JnL3hhbGFuIj5oZXJlPC9hPi4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPjxzdHJvbmc+U3RydXRzIEZyYW1ld29yazwvc3Ryb25nPiAtIElmIHlvdSBhcmUgcGxhbm5pbmcgdG8gdXNlCisgICAgICAgICAgICBUaWxlcyB3aXRoIFN0cnV0cywgeW91IHNob3VsZCBkb3dubG9hZCBhbmQgaW5zdGFsbCBTdHJ1dHMgZnJvbQorICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvIj4KKyAgICAgICAgICAgIEpha2FydGEgU3RydXRzIFByb2plY3Q8L2E+LgorICAgICAgICAgICAgSWYgeW91IGhhdmUgYWNxdWlyZWQgVGlsZXMgd2l0aCB0aGUgU3RydXRzIGRpc3RyaWJ1dGlvbiwgeW91CisgICAgICAgICAgICBkb24ndCBuZWVkIHRvIGluc3RhbGwgaXQgYWdhaW4uIFRpbGVzIGNhbiBydW4gd2l0aG91dCBTdHJ1dHMuCisgICAgICAgICAgICBJbiB0aGlzIGNhc2UgeW91IGxvb3NlIHNvbWUgZmVhdHVyZXMuPC9saT4KKyAgICA8L3VsPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSJJbnN0YWxsIEEgVGlsZXMgQmluYXJ5IERpc3RyaWJ1dGlvbiIgaHJlZj0iSW5zdGFsbGluZyI+CisgICAgPHA+Rmlyc3QsIGRvd25sb2FkIGEgYmluYXJ5IGRpc3RyaWJ1dGlvbiBvZiBUaWxlcyBieSBmb2xsb3dpbmcgdGhlCisgICAgICAgaW5zdHJ1Y3Rpb25zIDxhIGhyZWY9ImRvd25sb2FkLmpzcCI+aGVyZTwvYT4uCisgICAgICAgVGhlbiwgbWFrZSBzdXJlICAgIHlvdSBoYXZlIGRvd25sb2FkZWQgYW5kIGluc3RhbGxlZCB0aGUKKyAgICAgICA8YSBocmVmPSIjUHJlcmVxdWlzaXRlcyI+cHJlcmVxdWlzaXRlPC9hPiBzb2Z0d2FyZSBwYWNrYWdlcyBkZXNjcmliZWQKKyAgICAgICBhYm92ZS48L3A+CisgICAgPHA+VW5wYWNrIHRoZSBUaWxlcyBiaW5hcnkgZGlzdHJpYnV0aW9uIGludG8gYSBjb252ZW5pZW50IGRpcmVjdG9yeS4KKyAgICAgICAoSWYgeW91IDxhIGhyZWY9IiNCdWlsZGluZyI+YnVpbGQgVGlsZXMgZnJvbSB0aGUgc291cmNlIGRpc3RyaWJ1dGlvbjwvYT4sCisgICAgICAgdGhlIHJlc3VsdCBvZiB0aGUgYnVpbGQgd2lsbCBhbHJlYWR5IGJlIGFuIHVucGFja2VkIGJpbmFyeSBkaXN0cmlidXRpb24KKyAgICAgICBmb3IgeW91KS4gVGhlIGRpc3RyaWJ1dGlvbiBjb25zaXN0cyBvZiB0aGUgZm9sbG93aW5nIGNvbnRlbnRzOjwvcD4KKyAgICA8dWw+CisgICAgICAgIDxsaT48c3Ryb25nPmxpYi90aWxlcy5qYXI8L3N0cm9uZz4gLSBUaGlzIEpBUiBmaWxlIGNvbnRhaW5zIGFsbCBvZgorICAgICAgICAgICAgdGhlIEphdmEgY2xhc3NlcyBpbmNsdWRlZCBpbiBUaWxlcy4gSXQgc2hvdWxkIGJlIGNvcGllZCBpbnRvIHRoZQorICAgICAgICAgICAgPGNvZGU+V0VCLUlORi9saWI8L2NvZGU+ZGlyZWN0b3J5IG9mIHlvdXIgd2ViIGFwcGxpY2F0aW9uLgorICAgICAgICAgICAgPGVtPldBUk5JTkc8L2VtPiAtIElmIHlvdSBhcmUgZ29pbmcgdG8gYmUgaG9zdGluZyBtdWx0aXBsZSB0aWxlcworICAgICAgICAgICAgYmFzZWQgYXBwbGljYXRpb25zIG9uIHRoZSBzYW1lIHNlcnZsZXQgY29udGFpbmVyLCB5b3Ugd2lsbCBiZQorICAgICAgICAgICAgdGVtcHRlZCB0byBwbGFjZSB0aGUgPGNvZGU+c3RydXRzLmphcjwvY29kZT4gZmlsZSBpbnRvIHRoZSBzaGFyZWQKKyAgICAgICAgICAgIHJlcG9zaXRvcnkgc3VwcG9ydGVkIGJ5IHlvdXIgY29udGFpbmVyLiBCZSBhZHZpc2VkIHRoYXQgdGhpcyB3aWxsCisgICAgICAgICAgICBsaWtlbHkgY2F1c2UgeW91IHRvIGVuY291bnRlciBDbGFzc05vdEZvdW5kRXhjZXB0aW9uIHByb2JsZW1zCisgICAgICAgICAgICB1bmxlc3MgPGVtPmFsbDwvZW0+IG9mIHlvdXIgYXBwbGljYXRpb24gY2xhc3NlcyBhcmUgc3RvcmVkIGluIHRoZQorICAgICAgICAgICAgc2hhcmVkIHJlcG9zaXRvcnkuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT48c3Ryb25nPmxpYi9zdHJ1dHMxLjAvdGlsZXNGb3JTdHJ1dHMxLjAuamFyPC9zdHJvbmc+IC0KKyAgICAgICAgICAgIFNhbWUgYXMgYmVmb3JlLCAgICBidXQgZm9yIHVzZSB3aXRoIFN0cnV0czEuMC54LiA8L2xpPgorICAgICAgICA8bGk+PHN0cm9uZz5saWIvdGlsZXMudGxkPC9zdHJvbmc+IC0gVGhlc2UgaXMgdGhlICJ0YWcgbGlicmFyeQorICAgICAgICAgICAgZGVzY3JpcHRvciIgZmlsZSB0aGF0IGRlc2NyaWJlIHRoZSBjdXN0b20gdGFncyBpbiB0aGUgVGlsZXMgdGFnCisgICAgICAgICAgICBsaWJyYXJpZXMuIEl0IHNob3VsZCBiZSBjb3BpZWQgaW50byB0aGUgPGNvZGU+V0VCLUlORjwvY29kZT4KKyAgICAgICAgICAgIGRpcmVjdG9yeSBvZiB5b3VyIHdlYiBhcHBsaWNhdGlvbi4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPjxzdHJvbmc+d2ViYXBwcy90aWxlcy1kb2Mud2FyPC9zdHJvbmc+IG9yCisgICAgICAgICAgICA8c3Ryb25nPndlYmFwcHMvc3RydXRzLXRpbGVzLndhcjwvc3Ryb25nPiAtIFRoaXMgaXMgYQorICAgICAgICAgICAgIndlYiBhcHBsaWNhdGlvbiBhcmNoaXZlIiBmaWxlIGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBUaWxlcworICAgICAgICAgICAgZG9jdW1lbnRhdGlvbiBmb3VuZCBvbiB0aGUKKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubGlmbC5mci9+ZHVtb3VsaW4vdGlsZXMvIj5UaWxlcyB3ZWIgc2l0ZTwvYT4KKyAgICAgICAgICAgIChpbmNsdWRpbmcgdGhlc2UgcGFnZXMpLiBZb3UgY2FuIGluc3RhbGwgdGhpcyB3ZWIgYXBwbGljYXRpb24KKyAgICAgICAgICAgIG9uIGFueSBzZXJ2bGV0IGNvbnRhaW5lciBjb21wYXRpYmxlIHdpdGggU2VydmxldCBBUEkgMi4yIG9yIGxhdGVyLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+PHN0cm9uZz53ZWJhcHBzL3RpbGVzLWNoYW5uZWwud2FyPC9zdHJvbmc+IC0gRXhhbXBsZXMgdXNpbmcgYQorICAgICAgICAgICAgY3VzdG9tIGRlZmluaXRpb24gZmFjdG9yeS48L2xpPgorICAgICAgICA8bGk+PHN0cm9uZz53ZWJhcHBzL3RpbGVzLWJsYW5rLndhcjwvc3Ryb25nPiAtIEEgYmxhbmsgYXBwbGljYXRpb24KKyAgICAgICAgICAgIHRoYXQgY2FuIGJlIHVzZWQgYXMgYSBzdGFydGluZyBwb2ludCB3aGVuIHlvdSB3YW50IHRvIGRldmVsb3AKKyAgICAgICAgICAgIHlvdXIgb3duIGFwcGxpY2F0aW9uIHdpdGggVGlsZXMuIFRoaXMgYmxhbmsgYXBwbGljYXRpb24gZG9lc24ndAorICAgICAgICAgICAgY29udGFpbnMgbmVpdGhlciB1c2UgU3RydXRzLiBJZiB5b3UgYWxzbyB3YW50IHRvIHVzZSBTdHJ1dHMsCisgICAgICAgICAgICBhZGQgc3RydXRzLmphciBhbmQgcmVsYXRlZCB0bGQgZmlsZXMsIG9yIGNob29zZSBvbmUgb2YgdGhlCisgICAgICAgICAgICBmb2xsb3dpbmcgYXBwbGljYXRpb25zLiA8L2xpPgorICAgICAgICA8bGk+PHN0cm9uZz53ZWJhcHBzL3RpbGVzLWJsYW5rLXN0cnV0czEuMS53YXI8L3N0cm9uZz4gLQorICAgICAgICAgICAgQSBibGFuayBhcHBsaWNhdGlvbiB0byB1c2Ugd2l0aCBTdHJ1dHMxLjEgPC9saT4KKyAgICAgICAgPGxpPjxzdHJvbmc+d2ViYXBwcy90aWxlcy1ibGFuay1zdHJ1dHMxLjAud2FyPC9zdHJvbmc+IC0KKyAgICAgICAgICAgIEEgYmxhbmsgYXBwbGljYXRpb24gdG8gdXNlIHdpdGggU3RydXRzMS4wLnggPC9saT4KKyAgICA8L3VsPgorICAgIDxwPlRvIHVzZSBUaWxlcyBpbiB5b3VyIG93biBhcHBsaWNhdGlvbiwgeW91IHdpbGwgbmVlZCB0byBmb2xsb3cKKyAgICAgICB0aGVzZSBzdGVwczo8L3A+CisgICAgPHVsPgorICAgICAgICA8bGk+Q29weSB0aGUgZmlsZXM8Y29kZT5saWIvY29tbW9ucy0qLmphcjwvY29kZT4gaW50bworICAgICAgICAgICAgdGhlIDxjb2RlPldFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3Rvcnkgb2YgeW91ciB3ZWIgYXBwbGljYXRpb24uCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT5Db3B5IHRoZSBmaWxlIDxjb2RlPmxpYi90aWxlcy5qYXI8L2NvZGU+IGZyb20KKyAgICAgICAgICAgIHRoZSBUaWxlcyBkaXN0cmlidXRpb24gICAgaW50byB0aGUgPGNvZGU+V0VCLUlORi9saWI8L2NvZGU+CisgICAgICAgICAgICBkaXJlY3Rvcnkgb2YgeW91ciB3ZWIgYXBwbGljYXRpb24uCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT5Db3B5IGFsbCBvZiB0aGUgZmlsZXMgdGhhdCBtYXRjaCA8Y29kZT5saWIvKi50bGQ8L2NvZGU+IGZyb20KKyAgICAgICAgICAgIHRoZSBUaWxlcyAgICBkaXN0cmlidXRpb24gaW50byB0aGUgPGNvZGU+V0VCLUlORjwvY29kZT4gZGlyZWN0b3J5CisgICAgICAgICAgICBvZiB5b3VyIHdlYiBhcHBsaWNhdGlvbi4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPklmIHlvdSB3YW50IHRvIHVzZSA8ZW0+ZGVmaW5pdGlvbnMgY29uZmlndXJhdGlvbiBmaWxlPC9lbT4sIHlvdQorICAgICAgICAgICAgbmVlZCB0byBpbml0aWFsaXplIHRoZSBkZWZpbml0aW9ucyBmYWN0b3J5LiBUaGlzIGNhbiBiZSBkb25lIGFzIGZvbGxvd3M6CisgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT5Nb2RpZnkgdGhlIDxjb2RlPldFQi1JTkYvd2ViLnhtbDwvY29kZT4gZmlsZQorICAgICAgICAgICAgICAgIGZvciB5b3VyIHdlYiBhcHBsaWNhdGlvbiB0byB1c2UgYSA8Y29kZT4mbHQ7c2VydmxldCZndDsKKyAgICAgICAgICAgICAgICA8L2NvZGU+IHRoYXQgaW5pdGlhbGl6ZXMgdGhlIGZhY3RvcnkgYW5kIGNhdGNoIFN0cnV0cyBhY3Rpb24KKyAgICAgICAgICAgICAgICBmb3J3YXJkcyB0byBjaGVjayBmb3IgZGVmaW5pdGlvbiBuYW1lLiBVc2UgdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+V0VCLUlORi93ZWIueG1sPC9jb2RlPiBmaWxlIGZyb20gdGhlIFRpbGVzIGV4YW1wbGUKKyAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiBmb3IgYSBkZXRhaWxlZCBleGFtcGxlIG9mIHRoZSByZXF1aXJlZCBzeW50YXguCisgICAgICAgICAgICA8cHJlPgorICAmbHQ7c2VydmxldCZndDsKKyAgICAgLi4uCisgICAgICZsdDtzZXJ2bGV0LW5hbWUmZ3Q7YWN0aW9uJmx0Oy9zZXJ2bGV0LW5hbWUmZ3Q7CisgICAgICZsdDtzZXJ2bGV0LWNsYXNzJmd0O29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkFjdGlvbkNvbXBvbmVudHNTZXJ2bGV0Jmx0Oy9zZXJ2bGV0LWNsYXNzCisgICAgICZsdDtpbml0LXBhcmFtJmd0OworICAgICAgICZsdDtwYXJhbS1uYW1lJmd0O2RlZmluaXRpb25zLWNvbmZpZyZsdDsvcGFyYW0tbmFtZSZndDsKKyAgICAgICAmbHQ7cGFyYW0tdmFsdWUmZ3Q7L1dFQi1JTkYvdGlsZXMtY29uZmlnLnhtbCZsdDsvcGFyYW0tdmFsdWUmZ3Q7CisgICAgICZsdDsvaW5pdC1wYXJhbSZndDsKKyAgICAgLi4uCis8L3ByZT4KKyAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICA8bGk+SWYgeW91IGRvbid0IHdhbnQgdG8gdXNlIFN0cnV0cywgdXNlCisgICAgICAgICAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNTZXJ2bGV0PC9jb2RlPiBhcyBzZXJ2bGV0LgorICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIDxsaT5DcmVhdGUgYSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIGRlZmluaXRpb25zLiBJdHMgbmFtZSBtdXN0CisgICAgICAgICAgICAgICAgbWF0Y2ggdGhlIG9uZSBwcm92aWRlZCBiZWZvcmUgaW4gPGNvZGU+V0VCLUlORi93ZWIueG1sPC9jb2RlPi4KKyAgICAgICAgICAgICAgICBTZXZlcmFsIGNvbW1hIHNlcGFyYXRlZCBuYW1lcyBjYW4gYmUgcHJvdmlkZWQuCisgICAgICAgICAgICA8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+TW9kaWZ5IHRoZSA8Y29kZT5XRUItSU5GL3dlYi54bWw8L2NvZGU+IGZpbGUgb2YgeW91ciB3ZWIgYXBwbGljYXRpb24KKyAgICAgICAgICAgIHRvIGluY2x1ZGUgdGhlIGZvbGxvd2luZyB0YWcgbGlicmFyeSBkZWNsYXJhdGlvbnM6IDwvbGk+CisgICAgPC91bD4KKzxwcmU+Jmx0O3RhZ2xpYiZndDsKKyAgJmx0O3RhZ2xpYi11cmkmZ3Q7L1dFQi1JTkYvdGlsZXMudGxkJmx0Oy90YWdsaWItdXJpJmd0OworICAmbHQ7dGFnbGliLWxvY2F0aW9uJmd0Oy9XRUItSU5GL3RpbGVzLnRsZCZsdDsvdGFnbGliLWxvY2F0aW9uJmd0OworJmx0Oy90YWdsaWImZ3Q7Cis8L3ByZT4KKworICAgIDx1bD4KKyAgICAgICAgPGxpPkF0IHRoZSB0b3Agb2YgZWFjaCBKU1AgcGFnZSB0aGF0IHdpbGwgdXNlIHRoZSBUaWxlcyBjdXN0b20gdGFncywKKyAgICAgICAgICAgIGFkZCBsaW5lKHMpIGRlY2xhcmluZyB0aGUgVGlsZXMgY3VzdG9tIHRhZyBsaWJyYXJpZXMgdXNlZCBvbiB0aGlzCisgICAgICAgICAgICBwYXJ0aWN1bGFyIHBhZ2UsIGxpa2UgdGhpczo8L2xpPgorICAgIDwvdWw+Cis8cHJlPiZsdDslQCB0YWdsaWIgdXJpPSIvV0VCLUlORi90aWxlcy50bGQiIHByZWZpeD0idGlsZXMiICUmZ3Q7Cis8L3ByZT4KKyAgICA8dWw+CisgICAgICAgIDxsaT5XaGVuIGNvbXBpbGluZyB0aGUgSmF2YSBjbGFzc2VzIHRoYXQgY29tcHJpc2UgeW91ciBhcHBsaWNhdGlvbiwKKyAgICAgICAgICAgIGJlIHN1cmUgdG8gaW5jbHVkZSB0aGUgPGNvZGU+dGlsZXMuamFyPC9jb2RlPiBhbmQKKyAgICAgICAgICAgIDxjb2RlPmNvbW1vbnMtKi5qYXI8L2NvZGU+IGZpbGVzIChjb3BpZWQgZWFybGllcikgb24gdGhlCisgICAgICAgICAgICBDTEFTU1BBVEggdGhhdCBpcyBzdWJtaXR0ZWQgdG8gdGhlIGNvbXBpbGVyLjwvbGk+CisgICAgPC91bD4KKyAgICA8cD5Ob3RlIHRvIFN0cnV0cyAxLjAgdXNlcnMgOjwvcD4KKyAgICA8dWw+CisgICAgICAgIDxsaT5Zb3Ugc2hvdWxkIHVzZSBhIDxjb2RlPnRpbGVzLmphcjwvY29kZT4gYnVpbGQgd2l0aCBTdHJ1dHMxLjAueC48L2xpPgorICAgICAgICA8bGk+SWYgeW91IGhhdmUgZG93bmxvYWRlZCBhIFRpbGVzIHZlcnNpb24gYnVpbGQgd2l0aCBTdHJ1dHMxLjAueCwgeW91CisgICAgICAgICAgICBhbHJlYWR5IGhhdmUgaXQuIDwvbGk+CisgICAgICAgIDxsaT5Db25zaWRlciB0byB1c2UgdGlsZXNGb3JTdHJ1dHMxLjAuamFyIGxvY2F0ZWQgaW4KKyAgICAgICAgICAgIDxjb2RlPmxpYi9zdHJ1dHMxLjA8L2NvZGU+PC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+Tm90ZSB0byBTdHJ1dHMxLjEgdXNlcnMgOjwvcD4KKyAgICA8dWw+CisgICAgICAgIDxsaT5Zb3Ugc2hvdWxkIGFsc28gaW5pdGlhbGl6ZSBhIDxjb2RlPlRpbGVzUmVxdWVzdFByb2Nlc3NvcjwvY29kZT4uPC9saT4KKyAgICAgICAgPGxpPlRvIGRvIHNvLCBhZGQgZm9sbG93aW5nIGxpbmVzIGluIHlvdXIgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+CisgICAgICAgICAgICBmaWxlIDoKKzxwcmU+CisgICAmbHQ7Y29udHJvbGxlciBwcm9jZXNzb3JDbGFzcz0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNSZXF1ZXN0UHJvY2Vzc29yIiZndDsKKyAgICZsdDsvY29udHJvbGxlciZndDsKKzwvcHJlPgorICAgICAgICA8L2xpPgorICAgIDwvdWw+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9Ikluc3RhbGxpbmcgVGlsZXMgd2l0aCB5b3VyIHNlcnZsZXQgY29udGFpbmVyIiBocmVmPSJDb250YWluZXJzIj4KKyAgICA8cD48c3Ryb25nPldBUk5JTkc8L3N0cm9uZz4gLSBEbyA8c3Ryb25nPk5PVDwvc3Ryb25nPiBhZGQKKyAgICAgICA8Y29kZT50aWxlcy5qYXI8L2NvZGU+IHRvIHRoZSBjbGFzc3BhdGggb2YgeW91ciBzZXJ2bGV0IGNvbnRhaW5lciBpbgorICAgICAgIGFuIGF0dGVtcHQgdG8gYXZvaWQgcGxhY2luZyBpdCBpbiB0aGUgPGNvZGU+L1dFQi1JTkYvbGliPC9jb2RlPgorICAgICAgIGRpcmVjdG9yeSBvZiBlYWNoIGluZGl2aWR1YWwgd2ViIGFwcCEgRG9pbmcgc28gd2lsbCBjYXVzZSBwcm9ibGVtcyB3aXRoCisgICAgICAgPGNvZGU+Q2xhc3NOb3RGb3VuZEV4Y2VwdGlvbjwvY29kZT4gZXhjZXB0aW9ucy4gPC9wPgorCisgICAgPHA+Rm9yIG1vc3QgY29udGFpbmVycywgeW91IG5lZWQgb25seSB0bzo8L3A+CisgICAgPHVsPgorICAgICAgICA8bGk+Q29weSB0aGUgV0FSIGZpbGVzIGluIHlvdXIgVGlsZXMgPGNvZGU+L3dlYmFwcDwvY29kZT4gZGlyZWN0b3J5CisgICAgICAgICAgICB0byB5b3VyICAgIGNvbnRhaW5lcnMgPGNvZGU+d2ViYXBwczwvY29kZT4gZGlyZWN0b3J5LiA8L2xpPgorICAgICAgICA8bGk+SW4gc29tZSBjYXNlcywgeW91IG1heSBuZWVkIHRvIHJlc3RhcnQgeW91ciBjb250YWluZXIgaWYgaXQKKyAgICAgICAgICAgIGlzIHJ1bm5pbmcuPC9saT4KKyAgICA8L3VsPgorCisgICAgPGg0PlN0YXR1cyBvZiB2YXJpb3VzIGNvbnRhaW5lcnM8L2g0PgorICAgIDxwPkZvciBzdGF0dXMgb2YgYWRkaXRpb25hbCBjb250YWluZXJzLCBwbGVhc2UgcmVmZXIgdG8gdGhlCisgICAgICAgIDxhIGhyZWY9Imluc3RhbGxhdGlvbi5odG1sI0luc3RhbGxpbmciPiBTdHJ1dHMgaW5zdGFsbGF0aW9uIHBhZ2U8L2E+KS4KKyAgICA8L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IkJ1aWxkaW5nIFRpbGVzIEZyb20gU291cmNlIiBocmVmPSJCdWlsZGluZyI+CisgICAgPHA+Rmlyc3QsIGRvd25sb2FkIGEgc291cmNlIGRpc3RyaWJ1dGlvbiBvZiBUaWxlcyBmcm9tCisgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5saWZsLmZyL35kdW1vdWxpbi90aWxlcy8iPmhlcmU8L2E+IG9yCisgICAgICAgZnJvbSBTdHJ1dHMgY29udHJpYiBkaXJlY3RvcnkuIFRoZW4sIG1ha2Ugc3VyZSB5b3UgaGF2ZSBkb3dubG9hZGVkIGFuZAorICAgICAgIGluc3RhbGxlZCA8c3Ryb25nPmFsbDwvc3Ryb25nPiBvZiB0aGUKKyAgICAgICA8YSBocmVmPSIjUHJlcmVxdWlzaXRlcyI+cHJlcmVxdWlzaXRlPC9hPiBzb2Z0d2FyZSBwYWNrYWdlcyBkZXNjcmliZWQKKyAgICAgICBhYm92ZS4gWW91IGFsc28gbmVlZCB0aGUgYXBwcm9wcmlhdGUgc3RydXRzIHZlcnNpb24gKDEuMC54IG9yIDEuMSk8L3A+CisgICAgPHA+VG8gYnVpbGQgVGlsZXMsIHlvdSB3aWxsIG5lZWQgdG8gY3VzdG9taXplIHRoZSBidWlsZCBwcm9jZXNzIHRvIHRoZSBkZXRhaWxzCisgICAgICAgIG9mIHlvdXIgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgYXMgZm9sbG93czogPC9wPgorICAgIDx1bD4KKyAgICAgICAgPGxpPlRoZSBUaWxlcyBzb3VyY2UgZGlzdHJpYnV0aW9uIHVzZXMgYSBmaWxlIG5hbWVkCisgICAgICAgICAgICA8Y29kZT5idWlsZC5wcm9wZXJ0aWVzPC9jb2RlPiAoaW4gdGhlIHRvcC1sZXZlbCBkaXJlY3Rvcnkgb2YgdGhlCisgICAgICAgICAgICBkaXN0cmlidXRpb24pIHRvIGlkZW50aWZ5IHRoZSBsb2NhdGlvbiBvZiBleHRlcm5hbCBjb21wb25lbnRzCisgICAgICAgICAgICB0aGF0IFRpbGVzIGRlcGVuZHMgb24uPC9saT4KKyAgICAgICAgPGxpPlRoZXJlIGlzIG5vIDxjb2RlPmJ1aWxkLnByb3BlcnRpZXM8L2NvZGU+IGZpbGUgaW5jbHVkZWQgd2l0aCB0aGUKKyAgICAgICAgICAgIHNvdXJjZSBkaXN0cmlidXRpb24uIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIGV4YW1wbGUgZmlsZSBuYW1lZAorICAgICAgICAgICAgPGNvZGU+YnVpbGQucHJvcGVydGllcy5leGFtcGxlPC9jb2RlPiB0aGF0IHlvdSBjYW4gY29weSB0bworICAgICAgICAgICAgPGNvZGU+YnVpbGQucHJvcGVydGllczwvY29kZT5hbmQgdGhlbiBjdXN0b21pemUuPC9saT4KKyAgICAgICAgPGxpPlRoZSBwcm9wZXJ0aWVzIHlvdSBtdXN0IGNvbmZpZ3VyZSBpbiA8Y29kZT5idWlsZC5wcm9wZXJ0aWVzPC9jb2RlPiBhcmUKKyAgICAgICAgICAgIGRvY3VtZW50ZWQgaW4gPGNvZGU+YnVpbGQucHJvcGVydGllcy5leGFtcGxlPC9jb2RlPiA8L2xpPgorICAgICAgICA8bGk+VGlsZXMgYnVpbGQgcmVxdWlyZSBhIFN0cnV0cyBsaWJyYXJ5LiBZb3UgY2FuIHVzZSBlaXRoZXIgYQorICAgICAgICAgICAgU3RydXRzMS4wLnggb3IgMS4xIDxjb2RlPnN0cnV0cy5qYXI8L2NvZGU+LiBUaGUgcmVzdWx0aW5nCisgICAgICAgICAgICA8Y29kZT50aWxlcy5qYXI8L2NvZGU+IHdpbGwgcnVuIHdpdGggdGhlIHVzZWQgPGNvZGU+c3RydXRzLmphcjwvY29kZT4uCisgICAgICAgICAgICBZb3Ugc3BlY2lmeSB0aGUgU3RydXRzIGhvbWUgd2l0aCA8Y29kZT5zdHJ1dHMuaG9tZTwvY29kZT4gcHJvcGVydHkuCisgICAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD5UbyBidWlsZCBhICJkaXN0cmlidXRpb24iIHZlcnNpb24gb2YgVGlsZXMsIGZpcnN0IGNoYW5nZSB5b3VyIGN1cnJlbnQKKyAgICAgICAgZGlyZWN0b3J5IHRvIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggeW91IGhhdmUgdW5wYWNrZWQgdGhlIFRpbGVzCisgICAgICAgIHNvdXJjZSBkaXN0cmlidXRpb24sIGFuZCAoaWYgbmVjZXNzYXJ5KSBjcmVhdGUgb3IgY3VzdG9taXplIHRoZQorICAgICAgICA8Y29kZT5idWlsZC5wcm9wZXJ0aWVzPC9jb2RlPmZpbGUgYXMgZGVzY3JpYmVkIGFib3ZlLiBUaGVuLCB0eXBlOgorICAgIDwvcD4KKzxwcmU+CisgICAgICAgIGFudCBkaXN0Cis8L3ByZT4KKworICAgIDxwPlRoaXMgY29tbWFuZCB3aWxsIGNyZWF0ZSBhIGJpbmFyeSBkaXN0cmlidXRpb24gb2YgVGlsZXMsIGluIGEKKyAgICAgICBkaXJlY3RvcnkgbmFtZWQgPGNvZGU+ZGlzdDwvY29kZT4gKHJlbGF0aXZlIHRvIHdoZXJlIHlvdSBhcmUKKyAgICAgICBjb21waWxpbmcgZnJvbSkuIFRoaXMgZGlyZWN0b3J5IGNvbnRhaW5zIGFuIGV4YWN0IHJlcGxpY2Egb2YKKyAgICAgICB0aGUgZmlsZXMgaW5jbHVkZWQgaW4gYSBiaW5hcnkgZGlzdHJpYnV0aW9uIG9mIFRpbGVzLCBhcyBkZXNjcmliZWQKKyAgICAgICBpbiB0aGUgPGEgaHJlZj0iSW5zdGFsbGluZyI+cHJlY2VkaW5nIHNlY3Rpb248L2E+LjwvcD4KKyAgICA8cD5JTVBPUlRBTlQgTk9URTogVGhlIDxjb2RlPnRpbGVzLmphcjwvY29kZT4sIGFzIHdlbGwgYXMgdGhlIEpBUgorICAgICAgICBmaWxlcyBmcm9tIHRoZSBKYWthcnRhIENvbW1vbnMgcHJvamVjdCwgbXVzdCBiZSBpbiB5b3VyIGNsYXNzcGF0aAorICAgICAgICB3aGVuIGNvbXBpbGluZyBUaWxlcy4gVGhlIDxjb2RlPmJ1aWxkLnhtbDwvY29kZT4gcHJvdmlkZWQgZG9lcyB0aGlzCisgICAgICAgIGF1dG9tYXRpY2FsbHkuIElmIHlvdSB1c2UgeW91ciBkZXZlbG9wbWVudCBtYWNoaW5lIHRvIHRlc3QgVGlsZXMKKyAgICAgICAgYXBwbGljYXRpb24gbG9jYWxseSwgYmUgc3VyZSB0aGF0IHRoZSA8Y29kZT50aWxlcy5qYXI8L2NvZGU+aXMKKyAgICAgICAgPHN0cm9uZz5OT1Q8L3N0cm9uZz4gb24geW91ciBjbGFzc3BhdGggd2hlbiB5b3VyIGNvbnRhaW5lciBpcworICAgICAgICBydW5uaW5nLgorICAgIDwvcD4KKzwvc2VjdGlvbj4KKzwvYm9keT4KKzwvZG9jdW1lbnQ+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy90aWxlcy9wcm9qZWN0LnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3RpbGVzL3Byb2plY3QueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzYzQxYjcKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy90aWxlcy9wcm9qZWN0LnhtbApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8cHJvamVjdCBuYW1lPSJBcGFjaGUgU3RydXRzIFdlYiBBcHBsaWNhdGlvbiBGcmFtZXdvcmsiCisgICAgICAgICBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cyIKKyAgICAgICAgaW1hZ2U9ImltYWdlcy9zdHJ1dHMuZ2lmIj4KKworICAgIDx0aXRsZT5UaGUgVGlsZXMgMS4xIEZyYW1ld29yayBQcm9qZWN0IC0gSW5zdGFsbGF0aW9uICgxLjEpPC90aXRsZT4KKworICAgIDxtZW51IG5hbWU9IlRpbGVzIj4KKyAgICAgICAgPGl0ZW0gaHJlZj0iaW5kZXguanNwIiBuYW1lPSJUaWxlcyBIb21lIi8+CisgICAgPC9tZW51PgorCisgICAgPG1lbnUgbmFtZT0iRXhhbXBsZXMiPgorICAgICAgICA8aXRlbSBocmVmPSJleGFtcGxlcy9pbmRleC5qc3AiIG5hbWU9IkhvbWUiLz4KKyAgICA8L21lbnU+CisKKyAgICA8bWVudSBuYW1lPSJEb2N1bWVudGF0aW9uIj4KKyAgICAgICAgPGl0ZW0gaHJlZj0iZG9jL2luZGV4LmpzcCIgbmFtZT0iSG9tZSIvPgorICAgICAgICA8aXRlbSBocmVmPSJleGFtcGxlcy9pbmRleC5qc3AiIG5hbWU9IkV4YW1wbGVzIi8+CisgICAgICAgIDxpdGVtIGhyZWY9InRlc3QvcXVpY2tPdmVydmlldy5qc3AiIG5hbWU9IlF1aWNrIG92ZXJ2aWV3Ii8+CisgICAgICAgIDxpdGVtIGhyZWY9ImRvYy9pbmRleC5qc3AiIG5hbWU9IkhvbWUiLz4KKyAgICAgICAgPGl0ZW0gaHJlZj0idHV0b3JpYWwvaW5kZXguanNwIiBuYW1lPSJUdXRvcmlhbCBMaXZlIEV4YW1wbGVzIi8+CisgICAgPC9tZW51PgorCis8L3Byb2plY3Q+CisKKworCisKKworCmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvYnVpbGRpbmdfY29udHJvbGxlci54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvYnVpbGRpbmdfY29udHJvbGxlci54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkyMDI4NwotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9idWlsZGluZ19jb250cm9sbGVyLnhtbApAQCAtMCwwICsxLDE1NjcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0iYnVpbGRpbmdfY29udHJvbGxlci5odG1sIj4KKworPCEtLQorLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IDc4CistLT4KKworPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlRoZSBTdHJ1dHMgVXNlciBHdWlkZSAtIEJ1aWxkaW5nIENvbnRyb2xsZXIgQ29tcG9uZW50czwvdGl0bGU+Cis8L3Byb3BlcnRpZXM+CisKKzxib2R5PgorPHNlY3Rpb24gbmFtZT0iNC4gQnVpbGRpbmcgQ29udHJvbGxlciBDb21wb25lbnRzIiBocmVmPSJidWlsZGluZ19jb250cm9sbGVyIi8+CisKKzxzZWN0aW9uIG5hbWU9IjQuMSBPdmVydmlldyIgaHJlZj0ib3ZlcnZpZXciPgorCisgICAgPHA+CisgICAgTm93IHRoYXQgd2UgdW5kZXJzdGFuZCBob3cgdG8gY29uc3RydWN0IHRoZSBNb2RlbCBhbmQgVmlldyBjb21wb25lbnRzCisgICAgb2YgeW91ciBhcHBsaWNhdGlvbiwgaXQgaXMgdGltZSB0byBmb2N1cyBvbiB0aGUgPGNvZGU+Q29udHJvbGxlcjwvY29kZT4KKyAgICBjb21wb25lbnRzLiAgCisgICAgU3RydXRzIGluY2x1ZGVzIGEgc2VydmxldCB0aGF0IGltcGxlbWVudHMgdGhlIHByaW1hcnkgZnVuY3Rpb24gb2YgbWFwcGluZyAKKyAgICBhIHJlcXVlc3QgVVJJIHRvIGFuIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MuICAKKyAgICBUaGVyZWZvcmUsIHlvdXIgcHJpbWFyeSByZXNwb25zaWJpbGl0aWVzIHJlbGF0ZWQgdG8gdGhlIENvbnRyb2xsZXIgYXJlOgorICAgIDwvcD4KKworICAgIDx1bD4KKyAgICAKKyAgICAgICAgPGxpPgorICAgICAgICBXcml0ZSBhbiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBjbGFzcyB0byBtZWRpYXRlIGJldHdlZW4gdGhlIE1vZGVsCisgICAgICAgIGFuZCB0aGUgVmlldywgYXMgZGVzY3JpYmVkIGluIDxhIGhyZWY9ImJ1aWxkaW5nX21vZGVsLmh0bWwiPkJ1aWxkaW5nCisgICAgICAgIE1vZGVsIENvbXBvbmVudHM8L2E+LgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgV3JpdGUgYW4gPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcyBmb3IgZWFjaCBsb2dpY2FsIHJlcXVlc3QgdGhhdCBtYXkKKyAgICAgICAgYmUgcmVjZWl2ZWQgKGV4dGVuZCA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uPC9jb2RlPikuCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBDb25maWd1cmUgYSBBY3Rpb25NYXBwaW5nIChpbiBYTUwpIGZvciBlYWNoIGxvZ2ljYWwgcmVxdWVzdCB0aGF0IG1heQorICAgICAgICBiZSBzdWJtaXR0ZWQuIAorICAgICAgICBUaGUgWE1MIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyB1c3VhbGx5IG5hbWVkIAorICAgICAgICA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4uCisgICAgICAgIDwvbGk+CisKKyAgICA8L3VsPgorICAgIAorICAgIDxwPgorICAgIFRvIGRlcGxveSB5b3VyIGFwcGxpY2F0aW9uLCB5b3Ugd2lsbCBhbHNvIG5lZWQgdG86CisgICAgPC9wPgorICAgIAorICAgIDx1bD4KKworICAgICAgICA8bGk+CisgICAgICAgIFVwZGF0ZSB0aGUgd2ViIGFwcGxpY2F0aW9uIGRlcGxveW1lbnQgZGVzY3JpcHRvciBmaWxlIChpbiBYTUwpCisgICAgICAgIGZvciB5b3VyIGFwcGxpY2F0aW9uIHRvIGluY2x1ZGUgdGhlIG5lY2Vzc2FyeSBTdHJ1dHMgY29tcG9uZW50cy4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIEFkZCB0aGUgYXBwcm9wcmlhdGUgU3RydXRzIGNvbXBvbmVudHMgdG8geW91ciBhcHBsaWNhdGlvbi4KKyAgICAgICAgPC9saT4KKyAgICAgICAgCisgICAgPC91bD4KKyAgICAKKyAgICA8cD4KKyAgICBUaGUgbGF0dGVyIHR3byBpdGVtcyBhcmUgY292ZXJlZCBpbiB0aGUgCisgICAgIjxhIGhyZWY9ImNvbmZpZ3VyYXRpb24uaHRtbCI+Q29uZmlndXJpbmcgQXBwbGljYXRpb25zPC9hPiIgY2hhcHRlci4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gbmFtZT0iNC4yIFRoZSBBY3Rpb25TZXJ2bGV0IiBocmVmPSJhY3Rpb25fc2VydmxldCI+CisKKyAgICA8cD4KKyAgICBGb3IgdGhvc2Ugb2YgeW91IGZhbWlsaWFyIHdpdGggTVZDIGFyY2hpdGVjdHVyZSwgdGhlIEFjdGlvblNlcnZsZXQKKyAgICByZXByZXNlbnRzIHRoZSBDIC0gdGhlIGNvbnRyb2xsZXIuICAKKyAgICBUaGUgam9iIG9mIHRoZSBjb250cm9sbGVyIGlzIHRvOgorICAgIDwvcD4KKyAgICAKKyAgICA8dWw+CisgICAgCisgICAgPGxpPgorICAgIHByb2Nlc3MgdXNlciByZXF1ZXN0cywgCisgICAgPC9saT4KKyAgICAKKyAgICA8bGk+CisgICAgZGV0ZXJtaW5lIHdoYXQgdGhlIHVzZXIgaXMgdHJ5aW5nIHRvIGFjaGlldmUgYWNjb3JkaW5nIHRvIHRoZSByZXF1ZXN0LCAKKyAgICA8L2xpPgorICAgIAorICAgIDxsaT4KKyAgICBwdWxsIGRhdGEgZnJvbSB0aGUgbW9kZWwgKGlmIG5lY2Vzc2FyeSkgdG8gYmUgZ2l2ZW4gdG8gdGhlIGFwcHJvcHJpYXRlIAorICAgIHZpZXcsIGFuZCAKKyAgICA8L2xpPgorICAgIAorICAgIDxsaT4KKyAgICBzZWxlY3QgdGhlIHByb3BlciB2aWV3IHRvIHJlc3BvbmQgdG8gdGhlIHVzZXIuICAKKyAgICA8L2xpPgorICAgIAorICAgIDwvdWw+CisgICAgCisgICAgPHA+CisgICAgVGhlIFN0cnV0cyBjb250cm9sbGVyIGRlbGVnYXRlcyBtb3N0IG9mIHRoaXMgZ3J1bnQgd29yayB0byBBY3Rpb24gY2xhc3Nlcy4KKyAgICA8L3A+CisgICAgCisgICAgPHA+CisgICAgSW4gYWRkaXRpb24gdG8gYmVpbmcgdGhlIGNvbnRyb2xsZXIgZm9yIHlvdXIgYXBwbGljYXRpb24sIHRoZQorICAgIEFjdGlvblNlcnZsZXQgaW5zdGFuY2UgYWxzbyBpcyByZXNwb25zaWJsZSBmb3IgaW5pdGlhbGl6YXRpb24gYW5kCisgICAgY2xlYW4tdXAgb2YgcmVzb3VyY2VzLiAgCisgICAgV2hlbiB0aGUgY29udHJvbGxlciBpbml0aWFsaXplcywgaXQgZmlyc3QgbG9hZHMgdGhlIGFwcGxpY2F0aW9uIGNvbmZpZyAKKyAgICBjb3JyZXNwb25kaW5nIHRvIHRoZSAiY29uZmlnIiBpbml0LXBhcmFtLgorICAgIEl0IHRoZW4gZ29lcyB0aHJvdWdoIGFuIGVudW1lcmF0aW9uIG9mIGFsbCA8Y29kZT5pbml0LXBhcmFtPC9jb2RlPgorICAgIGVsZW1lbnRzLCBsb29raW5nIGZvciB0aG9zZSBlbGVtZW50cyB3aG8ncyBuYW1lIHN0YXJ0cyB3aXRoCisgICAgPGNvZGU+Y29uZmlnLzwvY29kZT4uICAKKyAgICBGb3IgZWFjaCBvZiB0aGVzZSBlbGVtZW50cywgU3RydXRzIGxvYWRzIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgc3BlY2lmaWVkIAorICAgIGJ5IHRoZSB2YWx1ZSBvZiB0aGF0IDxjb2RlPmluaXQtcGFyYW08L2NvZGU+LCBhbmQgYXNzaWducyBhICJwcmVmaXgiIAorICAgIHZhbHVlIHRvIHRoYXQgbW9kdWxlJ3MgTW9kdWxlQ29uZmlnIGluc3RhbmNlIGNvbnNpc3Rpbmcgb2YgdGhlIHBpZWNlCisgICAgb2YgdGhlIDxjb2RlPmluaXQtcGFyYW08L2NvZGU+IG5hbWUgZm9sbG93aW5nICJjb25maWcvIi4gIAorICAgIEZvciBleGFtcGxlLCB0aGUgbW9kdWxlIHByZWZpeCBzcGVjaWZpZWQgYnkgdGhlIAorICAgIDxjb2RlPmluaXQtcGFyYW0gY29uZmlnL2ZvbzwvY29kZT4gd291bGQgYmUgImZvbyIuIAorICAgIFRoaXMgaXMgaW1wb3J0YW50IHRvIGtub3csIHNpbmNlIHRoaXMgaXMgaG93IHRoZSBjb250cm9sbGVyIGRldGVybWluZXMgCisgICAgd2hpY2ggbW9kdWxlIHdpbGwgYmUgZ2l2ZW4gY29udHJvbCBvZiBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0LiAgCisgICAgVG8gYWNjZXNzIHRoZSBtb2R1bGUgZm9vLCB5b3Ugd291bGQgdXNlIGEgVVJMIGxpa2U6CisgICAgPC9wPgorICAgIAorICAgIDxwcmU+aHR0cDovL2xvY2FsaG9zdDo4MDgwL215QXBwL2Zvby9zb21lQWN0aW9uLmRvPC9wcmU+CisgICAgCisgICAgPHA+CisgICAgRm9yIGVhY2ggcmVxdWVzdCBtYWRlIG9mIHRoZSBjb250cm9sbGVyLCB0aGUgbWV0aG9kCisgICAgPGNvZGU+cHJvY2VzcyhIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9jb2RlPiB3aWxsIGJlCisgICAgY2FsbGVkLiAgCisgICAgVGhpcyBtZXRob2Qgc2ltcGx5IGRldGVybWluZXMgd2hpY2ggbW9kdWxlIHNob3VsZCBzZXJ2aWNlIHRoZSByZXF1ZXN0IGFuZCAKKyAgICB0aGVuIGludm9rZXMgdGhhdCBtb2R1bGUncyBSZXF1ZXN0UHJvY2Vzc29yJ3MgcHJvY2VzcyBtZXRob2QsIHBhc3NpbmcgdGhlIAorICAgIHNhbWUgcmVxdWVzdCBhbmQgcmVzcG9uc2UuCisgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IjQuMi4xIFJlcXVlc3QgUHJvY2Vzc29yIiBocmVmPSJyZXF1ZXN0X3Byb2Nlc3NvciI+CisKKyAgICA8cD4KKyAgICBUaGUgUmVxdWVzdFByb2Nlc3NvciBpcyB3aGVyZSB0aGUgbWFqb3JpdHkgb2YgdGhlIGNvcmUgcHJvY2Vzc2luZyAKKyAgICBvY2N1cnMgZm9yIGVhY2ggcmVxdWVzdC4gIAorICAgIExldCdzIHRha2UgYSBsb29rIGF0IHRoZSBoZWxwZXIgZnVuY3Rpb25zIHRoZSBwcm9jZXNzIG1ldGhvZCBpbnZva2VzIAorICAgIGluLXR1cm46CisgICAgPC9wPgorCisgICAgPHRhYmxlPgorICAgIDx0cj4KKyAgICAgICAgPHRkPgorICAgICAgICA8Y29kZT5wcm9jZXNzUGF0aDwvY29kZT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICBEZXRlcm1pbmUgdGhlIHBhdGggdGhhdCBpbnZva2VkIHVzLiAgCisgICAgICAgIFRoaXMgd2lsbCBiZSB1c2VkIGxhdGVyIHRvIHJldHJpZXZlIGFuIEFjdGlvbk1hcHBpbmcuCisgICAgICAgIDwvdGQ+CisgICAgPC90cj4KKworICAgIDx0cj4KKyAgICAgICAgPHRkPgorICAgICAgICA8Y29kZT5wcm9jZXNzTG9jYWxlPC9jb2RlPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgIFNlbGVjdCBhIGxvY2FsZSBmb3IgdGhpcyByZXF1ZXN0LCBpZiBvbmUgaGFzbid0IGFscmVhZHkgYmVlbiAKKyAgICAgICAgc2VsZWN0ZWQsIGFuZCBwbGFjZSBpdCBpbiB0aGUgcmVxdWVzdC4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorCisgICAgPHRyPgorICAgICAgICA8dGQ+CisgICAgICAgIDxjb2RlPnByb2Nlc3NDb250ZW50PC9jb2RlPiAKKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICBTZXQgdGhlIGRlZmF1bHQgY29udGVudCB0eXBlICh3aXRoIG9wdGlvbmFsIGNoYXJhY3RlciBlbmNvZGluZykgZm9yIAorICAgICAgICBhbGwgcmVzcG9uc2VzIGlmIHJlcXVlc3RlZC4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorCisgICAgPHRyPgorICAgICAgICA8dGQ+CisgICAgICAgIDxjb2RlPnByb2Nlc3NOb0NhY2hlPC9jb2RlPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgIElmIGFwcHJvcHJpYXRlLCBzZXQgdGhlIGZvbGxvd2luZyByZXNwb25zZSBoZWFkZXJzOiAiUHJhZ21hIiwgCisgICAgICAgICJDYWNoZS1Db250cm9sIiwgYW5kICJFeHBpcmVzIi4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorCisgICAgPHRyPgorICAgICAgICA8dGQ+CisgICAgICAgIDxjb2RlPnByb2Nlc3NQcmVwcm9jZXNzPC9jb2RlPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgIFRoaXMgaXMgb25lIG9mIHRoZSAiaG9va3MiIHRoZSBSZXF1ZXN0UHJvY2Vzc29yIG1ha2VzIGF2YWlsYWJsZSBmb3IgCisgICAgICAgIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUuICAKKyAgICAgICAgVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gc2ltcGx5IHJldHVybnMgPGNvZGU+dHJ1ZTwvY29kZT4uICAKKyAgICAgICAgSWYgeW91IHN1YmNsYXNzIFJlcXVlc3RQcm9jZXNzb3IgYW5kIG92ZXJyaWRlIHByb2Nlc3NQcmVwcm9jZXNzIHlvdSAKKyAgICAgICAgc2hvdWxkIGVpdGhlciByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gKGluZGljYXRpbmcgcHJvY2VzcyBzaG91bGQgCisgICAgICAgIGNvbnRpbnVlIHByb2Nlc3NpbmcgdGhlIHJlcXVlc3QpIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiAoaW5kaWNhdGluZyAKKyAgICAgICAgeW91IGhhdmUgaGFuZGxlZCB0aGUgcmVxdWVzdCBhbmQgdGhlIHByb2Nlc3Mgc2hvdWxkIHJldHVybikKKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorCisgICAgPHRyPgorICAgICAgICA8dGQ+CisgICAgICAgIDxjb2RlPnByb2Nlc3NNYXBwaW5nPC9jb2RlPiAKKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICBEZXRlcm1pbmUgdGhlIEFjdGlvbk1hcHBpbmcgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcGF0aC4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorCisgICAgPHRyPgorICAgICAgICA8dGQ+CisgICAgICAgIDxjb2RlPnByb2Nlc3NSb2xlczwvY29kZT4gCisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgSWYgdGhlIG1hcHBpbmcgaGFzIGEgcm9sZSBhc3NvY2lhdGVkIHdpdGggaXQsIGVuc3VyZSB0aGUgcmVxdWVzdGluZyAKKyAgICAgICAgdXNlciBpcyBoYXMgdGhlIHNwZWNpZmllZCByb2xlLiAgCisgICAgICAgIElmIHRoZXkgZG8gbm90LCByYWlzZSBhbiBlcnJvciBhbmQgc3RvcCBwcm9jZXNzaW5nIG9mIHRoZSByZXF1ZXN0LgorICAgICAgICA8L3RkPgorICAgIDwvdHI+CisKKyAgICA8dHI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgPGNvZGU+cHJvY2Vzc0FjdGlvbkZvcm08L2NvZGU+IAorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgIEluc3RhbnRpYXRlIChpZiBuZWNlc3NhcnkpIHRoZSBBY3Rpb25Gb3JtIGFzc29jaWF0ZWQgd2l0aCB0aGlzIAorICAgICAgICBtYXBwaW5nIChpZiBhbnkpIGFuZCBwbGFjZSBpdCBpbnRvIHRoZSBhcHByb3ByaWF0ZSBzY29wZS4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorCisgICAgPHRyPgorICAgICAgICA8dGQ+CisgICAgICAgIDxjb2RlPnByb2Nlc3NQb3B1bGF0ZTwvY29kZT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICBQb3B1bGF0ZSB0aGUgQWN0aW9uRm9ybSBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXF1ZXN0LCBpZiBhbnkuCisgICAgICAgIDwvdGQ+CisgICAgPC90cj4KKworICAgIDx0cj4KKyAgICAgICAgPHRkPgorICAgICAgICA8Y29kZT5wcm9jZXNzVmFsaWRhdGU8L2NvZGU+IAorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+CisgICAgICAgIFBlcmZvcm0gdmFsaWRhdGlvbiAoaWYgcmVxdWVzdGVkKSBvbiB0aGUgQWN0aW9uRm9ybSBhc3NvY2lhdGVkIHdpdGggCisgICAgICAgIHRoaXMgcmVxdWVzdCAoaWYgYW55KS4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIAorICAgIDx0cj4KKyAgICAgICAgPHRkPgorICAgICAgICA8Y29kZT5wcm9jZXNzRm9yd2FyZDwvY29kZT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICBJZiB0aGlzIG1hcHBpbmcgcmVwcmVzZW50cyBhIGZvcndhcmQsIGZvcndhcmQgdG8gdGhlIHBhdGggc3BlY2lmaWVkIAorICAgICAgICBieSB0aGUgbWFwcGluZy4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIAorICAgIDx0cj4KKyAgICAgICAgPHRkPgorICAgICAgICA8Y29kZT5wcm9jZXNzSW5jbHVkZTwvY29kZT4gCisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgSWYgdGhpcyBtYXBwaW5nIHJlcHJlc2VudHMgYW4gaW5jbHVkZSwgaW5jbHVkZSB0aGUgcmVzdWx0IG9mIAorICAgICAgICBpbnZva2luZyB0aGUgcGF0aCBpbiB0aGlzIHJlcXVlc3QuCisgICAgICAgIDwvdGQ+CisgICAgPC90cj4KKyAgICAKKyAgICA8dHI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgPGNvZGU+cHJvY2Vzc0FjdGlvbkNyZWF0ZTwvY29kZT4KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICBJbnN0YW50aWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGUgY2xhc3Mgc3BlY2lmaWVkIGJ5IHRoZSBjdXJyZW50IAorICAgICAgICBBY3Rpb25NYXBwaW5nIChpZiBuZWNlc3NhcnkpLgorICAgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgCisgICAgPHRyPgorICAgICAgICA8dGQ+CisgICAgICAgIDxjb2RlPnByb2Nlc3NBY3Rpb25QZXJmb3JtPC9jb2RlPiAKKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICBUaGlzIGlzIHRoZSBwb2ludCBhdCB3aGljaCB5b3VyIGFjdGlvbidzIDxjb2RlPnBlcmZvcm08L2NvZGU+IG9yIAorICAgICAgICA8Y29kZT5leGVjdXRlPC9jb2RlPiBtZXRob2Qgd2lsbCBiZSBjYWxsZWQuCisgICAgICAgIDwvdGQ+CisgICAgPC90cj4KKworICAgIDx0cj4KKyAgICAgICAgPHRkPgorICAgICAgICAgPGNvZGU+cHJvY2Vzc0ZvcndhcmRDb25maWc8L2NvZGU+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZD4KKyAgICAgICAgRmluYWxseSwgdGhlIHByb2Nlc3MgbWV0aG9kIG9mIHRoZSBSZXF1ZXN0UHJvY2Vzc29yIHRha2VzIHRoZSAKKyAgICAgICAgQWN0aW9uRm9yd2FyZCByZXR1cm5lZCBieSB5b3VyIEFjdGlvbiBjbGFzcywgYW5kIHVzZXMgdG8gc2VsZWN0IHRoZSAKKyAgICAgICAgbmV4dCByZXNvdXJjZSAoaWYgYW55KS4KKyAgICAgICAgTW9zdCBvZnRlbiB0aGUgQWN0aW9uRm9yd2FyZCBsZWFkcyB0byB0aGUgcHJlc2VudGF0aW9uIHBhZ2UgdGhhdAorICAgICAgICByZW5kZXJzIHRoZSByZXNwb25zZS4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorCisgICAgPC90YWJsZT4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSI0LjMgQWN0aW9uRm9ybSBDbGFzc2VzIiBocmVmPSJhY3Rpb25fZm9ybV9jbGFzc2VzIj4KKworICAgIDxwPgorICAgIEFuIEFjdGlvbkZvcm0gcmVwcmVzZW50cyBhbiBIVE1MIGZvcm0gdGhhdCB0aGUgdXNlciBpbnRlcmFjdHMgd2l0aCBvdmVyIAorICAgIG9uZSBvciBtb3JlIHBhZ2VzLiAgCisgICAgWW91IHdpbGwgcHJvdmlkZSBwcm9wZXJ0aWVzIHRvIGhvbGQgdGhlIHN0YXRlIG9mIHRoZSBmb3JtIHdpdGggZ2V0dGVycyAKKyAgICBhbmQgc2V0dGVycyB0byBhY2Nlc3MgdGhlbS4gIAorICAgIEFjdGlvbkZvcm1zIGNhbiBiZSBzdG9yZWQgaW4gZWl0aGVyIHRoZSBzZXNzaW9uIChkZWZhdWx0KSBvciByZXF1ZXN0IAorICAgIHNjb3Blcy4gIAorICAgIElmIHRoZXkncmUgaW4gdGhlIHNlc3Npb24gaXQncyBpbXBvcnRhbnQgdG8gaW1wbGVtZW50IHRoZSBmb3JtJ3MgCisgICAgPGNvZGU+cmVzZXQ8L2NvZGU+IG1ldGhvZCB0byBpbml0aWFsaXplIHRoZSBmb3JtIGJlZm9yZSBlYWNoIHVzZS4gIAorICAgIFN0cnV0cyBzZXRzIHRoZSBBY3Rpb25Gb3JtJ3MgcHJvcGVydGllcyBmcm9tIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMgYW5kIAorICAgIHNlbmRzIHRoZSB2YWxpZGF0ZWQgZm9ybSB0byB0aGUgYXBwcm9wcmlhdGUgQWN0aW9uJ3MgPGNvZGU+ZXhlY3V0ZTwvY29kZT4gCisgICAgbWV0aG9kLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFdoZW4geW91IGNvZGUgeW91ciA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBiZWFucywga2VlcCB0aGUgZm9sbG93aW5nCisgICAgcHJpbmNpcGxlcyBpbiBtaW5kOgorICAgIDwvcD4KKworICAgIDx1bD4KKyAgICAKKyAgICA8bGk+CisgICAgVGhlIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGNsYXNzIGl0c2VsZiByZXF1aXJlcyBubyBzcGVjaWZpYworICAgIG1ldGhvZHMgdG8gYmUgaW1wbGVtZW50ZWQuICAKKyAgICBJdCBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZSByb2xlIHRoZXNlIHBhcnRpY3VsYXIgYmVhbnMgcGxheSBpbiB0aGUgb3ZlcmFsbCAKKyAgICBhcmNoaXRlY3R1cmUuICAKKyAgICBUeXBpY2FsbHksIGFuIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4gd2lsbCBoYXZlIG9ubHkgcHJvcGVydHkgZ2V0dGVyIAorICAgIGFuZCBwcm9wZXJ0eSBzZXR0ZXIgbWV0aG9kcywgd2l0aCBubyBidXNpbmVzcyBsb2dpYy4KKyAgICA8L2xpPgorICAgIAorICAgIDxsaT4KKyAgICBUaGUgQWN0aW9uRm9ybSBvYmplY3QgYWxzbyBvZmZlcnMgYSBzdGFuZGFyZCB2YWxpZGF0aW9uIG1lY2hhbmlzbS4KKyAgICBJZiB5b3Ugb3ZlcnJpZGUgYSAic3R1YiIgbWV0aG9kLCBhbmQgcHJvdmlkZSBlcnJvciBtZXNzYWdlcyBpbiB0aGUKKyAgICBzdGFuZGFyZCBhcHBsaWNhdGlvbiByZXNvdXJjZSwgU3RydXRzIHdpbGwgYXV0b21hdGljYWxseSB2YWxpZGF0ZSB0aGUKKyAgICBpbnB1dCBmcm9tIHRoZSBmb3JtICh1c2luZyB5b3VyIG1ldGhvZCkuIAorICAgIFNlZSAiPGEgaHJlZj0iLi9idWlsZGluZ192aWV3Lmh0bWwjZm9ybV92YWxpZGF0aW9uIj4KKyAgICBBY3Rpb24gRm9ybSBWYWxpZGF0aW9uPC9hPiIgZm9yIGRldGFpbHMuIAorICAgIE9mIGNvdXJzZSwgeW91IGNhbiBhbHNvIGlnbm9yZSB0aGUgQWN0aW9uRm9ybSB2YWxpZGF0aW9uIGFuZCBwcm92aWRlIHlvdXIgCisgICAgb3duIGluIHRoZSBBY3Rpb24gb2JqZWN0LgorICAgIDwvbGk+CisKKyAgICA8bGk+CisgICAgRGVmaW5lIGEgcHJvcGVydHkgKHdpdGggYXNzb2NpYXRlZCA8Y29kZT5nZXRYeHg8L2NvZGU+IGFuZAorICAgIDxjb2RlPnNldFh4eDwvY29kZT4gbWV0aG9kcykgZm9yIGVhY2ggZmllbGQgdGhhdCBpcyBwcmVzZW50IGluIHRoZQorICAgIGZvcm0uICAKKyAgICBUaGUgZmllbGQgbmFtZSBhbmQgcHJvcGVydHkgbmFtZSBtdXN0IG1hdGNoIGFjY29yZGluZyB0byB0aGUgdXN1YWwgCisgICAgSmF2YUJlYW5zIGNvbnZlbnRpb25zIChzZWUgdGhlIEphdmFkb2MgZm9yIHRoZSAKKyAgICA8Y29kZT5qYXZhLmJlYW5zLkludHJvc3BlY3RvcjwvY29kZT4gY2xhc3MgZm9yIGEgc3RhcnQgb24gaW5mb3JtYXRpb24KKyAgICBhYm91dCB0aGlzKS4gIAorICAgIEZvciBleGFtcGxlLCBhbiBpbnB1dCBmaWVsZCBuYW1lZCA8Y29kZT51c2VybmFtZTwvY29kZT4gd2lsbCBjYXVzZSB0aGUgCisgICAgPGNvZGU+c2V0VXNlcm5hbWU8L2NvZGU+IG1ldGhvZCB0byBiZSBjYWxsZWQuCisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICBCdXR0b25zIGFuZCBvdGhlciBjb250cm9scyBvbiB5b3VyIGZvcm0gY2FuIGFsc28gYmUgZGVmaW5lZCBhcyBwcm9wZXJ0aWVzLgorICAgIFRoaXMgY2FuIGhlbHAgZGV0ZXJtaW5lIHdoaWNoIGJ1dHRvbiBvciBjb250cm9sIHdhcyBzZWxlY3RlZCB3aGVuIHRoZQorICAgIGZvcm0gd2FzIHN1Ym1pdHRlZC4gCisgICAgUmVtZW1iZXIsIHRoZSBBY3Rpb25Gb3JtIGlzIG1lYW50IHRvIHJlcHJlc2VudCB5b3VyIGRhdGEtZW50cnkgZm9ybSwgbm90IAorICAgIGp1c3QgdGhlIGRhdGEgYmVhbnMuCisgICAgPC9saT4KKyAgICAKKyAgICA8bGk+CisgICAgVGhpbmsgb2YgeW91ciBBY3Rpb25Gb3JtIGJlYW5zIGFzIGEgZmlyZXdhbGwgYmV0d2VlbiBIVFRQIGFuZCB0aGUgQWN0aW9uLgorICAgIFVzZSB0aGUgPGNvZGU+dmFsaWRhdGU8L2NvZGU+IG1ldGhvZCB0byBlbnN1cmUgYWxsIHJlcXVpcmVkIHByb3BlcnRpZXMgCisgICAgYXJlIHByZXNlbnQsIGFuZCB0aGF0IHRoZXkgY29udGFpbiByZWFzb25hYmxlIHZhbHVlcy4gCisgICAgQW4gQWN0aW9uRm9ybSB0aGF0IGZhaWxzIHZhbGlkYXRpb24gd2lsbCBub3QgZXZlbiBiZSBwcmVzZW50ZWQgdG8gdGhlIAorICAgIEFjdGlvbiBmb3IgaGFuZGxpbmcuCisgICAgPC9saT4KKyAgICAKKyAgICA8bGk+CisgICAgWW91IG1heSBhbHNvIHBsYWNlIGEgYmVhbiBpbnN0YW5jZSBvbiB5b3VyIGZvcm0sIGFuZCB1c2UgbmVzdGVkIHByb3BlcnR5CisgICAgcmVmZXJlbmNlcy4gCisgICAgRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBoYXZlIGEgImN1c3RvbWVyIiBiZWFuIG9uIHlvdXIgQWN0aW9uRm9ybSwgYW5kIAorICAgIHRoZW4gcmVmZXIgdG8gdGhlIHByb3BlcnR5ICJjdXN0b21lci5uYW1lIiBpbiB5b3VyIHByZXNlbnRhdGlvbiBwYWdlLgorICAgIFRoaXMgd291bGQgY29ycmVzcG9uZCB0byB0aGUgbWV0aG9kcyA8Y29kZT5jdXN0b21lci5nZXROYW1lKCk8L2NvZGU+IGFuZAorICAgIDxjb2RlPmN1c3RvbWVyLnNldE5hbWUoc3RyaW5nIE5hbWUpPC9jb2RlPiBvbiB5b3VyIGN1c3RvbWVyIGJlYW4uIAorICAgIFNlZSB0aGUgVGFnIExpYnJhcnkgRGV2ZWxvcGVyIEd1aWRlcyBmb3IgbW9yZSBhYm91dCB1c2luZyBuZXN0ZWQgc3ludGF4IAorICAgIHdpdGggdGhlIFN0cnV0cyBKU1AgdGFncy4KKyAgICA8L2xpPgorICAgIAorICAgIDxsaT4KKyAgICA8ZW0+Q2F1dGlvbjo8L2VtPiBJZiB5b3UgbmVzdCBhbiBleGlzdGluZyBiZWFuIGluc3RhbmNlIG9uIHlvdXIgZm9ybSwgdGhpbmsKKyAgICBhYm91dCB0aGUgcHJvcGVydGllcyBpdCBleHBvc2VzLiAKKyAgICBBbnkgcHVibGljIHByb3BlcnR5IG9uIGFuIEFjdGlvbkZvcm0gdGhhdCBhY2NlcHRzIGEgc2luZ2xlIFN0cmluZyB2YWx1ZSAKKyAgICBjYW4gYmUgc2V0IHdpdGggYSBxdWVyeSBzdHJpbmcuIAorICAgIEl0IG1heSBiZSB1c2VmdWwgdG8gcGxhY2UgYmVhbnMgdGhhdCBjYW4gYWZmZWN0IHRoZSBidXNpbmVzcyBzdGF0ZSBpbnNpZGUgCisgICAgYSB0aGluICJ3cmFwcGVyIiB0aGF0IGV4cG9zZXMgb25seSB0aGUgcHJvcGVydGllcyByZXF1aXJlZC4gCisgICAgVGhpcyB3cmFwcGVyIGNhbiBhbHNvIHByb3ZpZGUgYSBmaWx0ZXIgdG8gYmUgc3VyZSBydW50aW1lIHByb3BlcnRpZXMgYXJlIAorICAgIG5vdCBzZXQgdG8gaW5hcHByb3ByaWF0ZSB2YWx1ZXMuCisgICAgPC9saT4KKyAgICAKKyAgICA8L3VsPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IjQuMy4xIER5bmFBY3Rpb25Gb3JtIENsYXNzZXMiIGhyZWY9ImR5bmFfYWN0aW9uX2Zvcm1fY2xhc3NlcyI+CisKKyAgICA8cD4KKyAgICBNYWludGFpbmluZyBhIHNlcGFyYXRlIGNvbmNyZXRlIEFjdGlvbkZvcm0gY2xhc3MgZm9yIGVhY2ggZm9ybSBpbiB5b3VyIAorICAgIFN0cnV0cyBhcHBsaWNhdGlvbiBpcyB0aW1lLWNvbnN1bWluZy4KKyAgICBJdCBpcyBwYXJ0aWN1bGFybHkgZnJ1c3RyYXRpbmcgd2hlbiBhbGwgdGhlIEFjdGlvbkZvcm0gZG9lcyBpcyBnYXRoZXIKKyAgICBhbmQgdmFsaWRhdGUgc2ltcGxlIHByb3BlcnRpZXMgdGhhdCBhcmUgcGFzc2VkIGFsb25nIHRvIGEgYnVzaW5lc3MKKyAgICBKYXZhQmVhbi4KKyAgICA8L3A+CisgICAgPHA+CisgICAgVGhpcyBib3R0bGVuZWNrIGNhbiBiZSBhbGxldmlhdGVkIHRocm91Z2ggdGhlIHVzZSBvZiBEeW5hQWN0aW9uRm9ybSBjbGFzc2VzLgorICAgIEluc3RlYWQgb2YgY3JlYXRpbmcgYSBuZXcgQWN0aW9uRm9ybSBzdWJjbGFzcyBhbmQgbmV3IGdldC9zZXQgbWV0aG9kcyBmb3IgCisgICAgZWFjaCBvZiB5b3VyIGJlYW4ncyBwcm9wZXJ0aWVzLCB5b3UgY2FuIGxpc3QgaXRzIHByb3BlcnRpZXMsIHR5cGUsIGFuZCAKKyAgICBkZWZhdWx0cyBpbiB0aGUgU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZS4KKyAgICA8L3A+CisgICAgCisgICAgPHA+CisgICAgRm9yIGV4YW1wbGUsIGFkZCB0aGUgZm9sbG93aW5nIHRvIHN0cnV0cy1jb25maWcueG1sIGZvciBhIFVzZXJGb3JtIGJlYW4gCisgICAgdGhhdCBzdG9yZXMgYSB1c2VyJ3MgZ2l2ZW4gYW5kIGZhbWlseSBuYW1lczoKKyAgICA8L3A+CisgICAgCis8cHJlPjxjb2RlPjwhW0NEQVRBWworPGZvcm0tYmVhbiAKKyAgICBuYW1lPSJVc2VyRm9ybSIgCisgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkR5bmFBY3Rpb25Gb3JtIj4KKyAgICA8Zm9ybS1wcm9wZXJ0eSAKKyAgICAgICAgbmFtZT0iZ2l2ZW5OYW1lIiAKKyAgICAgICAgdHlwZT0iamF2YS5sYW5nLlN0cmluZyIgCisgICAgICAgIGluaXRpYWw9IkpvaG4iLz4KKyAgICA8Zm9ybS1wcm9wZXJ0eSAKKyAgICAgICAgbmFtZT0iZmFtaWx5TmFtZSIgCisgICAgICAgIHR5cGU9ImphdmEubGFuZy5TdHJpbmciIAorICAgICAgICBpbml0aWFsPSJTbWl0aCIvPgorPC9mb3JtLWJlYW4+CitdXT48L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICBUaGUgdHlwZXMgc3VwcG9ydGVkIGJ5IER5bmFBY3Rpb25Gb3JtIGluY2x1ZGU6CisgICAgPC9wPgorICAgIAorICAgIDx1bD4KKyAgICAKKyAgICAgICAgPGxpPgorICAgICAgICBqYXZhLmxhbmcuQmlnRGVjaW1hbAorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgamF2YS5sYW5nLkJpZ0ludGVnZXIKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIGJvb2xlYW4gYW5kIGphdmEubGFuZy5Cb29sZWFuCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBieXRlIGFuZCBqYXZhLmxhbmcuQnl0ZQorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgY2hhciBhbmQgamF2YS5sYW5nLkNoYXJhY3RlcgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgamF2YS5sYW5nLkNsYXNzCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBkb3VibGUgYW5kIGphdmEubGFuZy5Eb3VibGUKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIGZsb2F0IGFuZCBqYXZhLmxhbmcuRmxvYXQKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIGludCBhbmQgamF2YS5sYW5nLkludGVnZXIKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIGxvbmcgYW5kIGphdmEubGFuZy5Mb25nCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBzaG9ydCBhbmQgamF2YS5sYW5nLlNob3J0CisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBqYXZhLmxhbmcuU3RyaW5nCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBqYXZhLnNxbC5EYXRlCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBqYXZhLnNxbC5UaW1lCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBqYXZhLnNxbC5UaW1lc3RhbXAKKyAgICAgICAgPC9saT4KKyAgICAKKyAgICA8L3VsPgorCisgICAgPHA+CisgICAgICAgIFlvdSBtYXkgYWxzbyBzcGVjaWZ5IEFycmF5cyBvZiB0aGVzZSB0eXBlcyAoZS5nLiA8Y29kZT5TdHJpbmdbXTwvY29kZT4pLgorICAgICAgICBZb3UgbWF5IGFsc28gc3BlY2lmeSBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNYXAgSW50ZXJmYWNlLAorICAgICAgICBzdWNoIGFzIDxjb2RlPmphdmEudXRpbC5IYXNoTWFwPC9jb2RlPiwKKyAgICAgICAgb3IgYSBMaXN0IGltcGxlbWVudGF0aW9uLCBzdWNoIGFzIDxjb2RlPmphdmEudXRpbC5BcnJheUxpc3Q8L2NvZGU+LgorICAgIDwvcD4KKworICAgIDxwPgorICAgIElmIHlvdSBkbyBub3Qgc3VwcGx5IGFuIGluaXRpYWwgYXR0cmlidXRlLCBudW1iZXJzIHdpbGwgYmUgaW5pdGlhbGl6ZWQgdG8gCisgICAgMCBhbmQgb2JqZWN0cyB0byA8Y29kZT5udWxsPC9jb2RlPi4KKyAgICA8L3A+CisgICAgCisgICAgPHA+CisgICAgSW4gSlNQIHBhZ2VzIHVzaW5nIHRoZSBvcmlnaW5hbCBTdHJ1dHMgY3VzdG9tIHRhZ3MsIGF0dHJpYnV0ZXMgb2YKKyAgICA8Y29kZT5EeW5hQWN0aW9uRm9ybTwvY29kZT4gb2JqZWN0cyBjYW4gYmUgcmVmZXJlbmNlZCBqdXN0IGxpa2Ugb3JkaW5hcnkKKyAgICA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBvYmplY3RzLiBXaGVyZXZlciBhIFN0cnV0cyB0YWcgcmVmZXJzIHRvIGEKKyAgICAicHJvcGVydHkiLCB0aGUgdGFncyB3aWxsIGF1dG9tYXRpY2FsbHkgdXNlIHRoZSBEeW5hQWN0aW9uRm9ybSBwcm9wZXJ0aWVzCisgICAganVzdCBsaWtlIHRob3NlIG9mIGEgY29udmVudGlvbmFsIEphdmFCZWFuLgorICAgIFlvdSBjYW4gZXZlbiBleHBvc2UgRHluYUFjdGlvbkZvcm0gcHJvcGVydGllcyB1c2luZyBiZWFuOmRlZmluZS4KKyAgICAoQWx0aG91Z2gsIHRvdSBjYW4ndCB1c2UgYmVhbjpkZWZpbmUgdG8gPHN0cm9uZz5pbnN0YW50aWF0ZTwvc3Ryb25nPiBhIER5bmFBY3Rpb25Gb3JtLAorICAgIHNpbmNlIGl0IG5lZWRzIHRvIGJlIHNldHVwIHdpdGggdGhlIGFwcHJvcHJpYXRlIGR5bmEtcHJvcGVydGllcykuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgSWYgeW91IGFyZSB1c2luZyB0aGUgU3RydXRzIEpTVEwgRUwgdGFnbGliLCB0aGUgcmVmZXJlbmNlcyBhcmUgZGlmZmVyZW50LAorICAgIGhvd2V2ZXIuCisgICAgT25seSBwcm9wZXJ0aWVzIG9mIG9yZGluYXJ5IDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IG9iamVjdHMgY2FuIGJlIGRpcmVjdGx5CisgICAgYWNjZXNzZWQgdGhyb3VnaCB0aGUgSlNUTCBleHByZXNzaW9uIGxhbmd1YWdlIHN5bnRheC4gIAorICAgIFRoZSA8Y29kZT5EeW5hQWN0aW9uRm9ybTwvY29kZT4gcHJvcGVydGllcyBtdXN0IGJlIGFjY2Vzc2VkIHRocm91Z2ggYQorICAgIHNsaWdodGx5IGRpZmZlcmVudCBzeW50YXguIAorICAgIFRoZSBKU1RMIEVMIHN5bnRheCBmb3IgcmVmZXJlbmNpbmcgYSBwcm9wZXJ0eQorICAgIG9mIGFuIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGdvZXMgbGlrZSB0aGlzOgorICAgIDwvcD4KKyAgICAKKzxwcmU+PGNvZGU+JHtmb3JtYmVhbi5wcm9wfTwvY29kZT48L3ByZT4KKyAgICAKKyAgICA8cD4KKyAgICBUaGUgc3ludGF4IGZvciByZWZlcmVuY2luZyBhIHByb3BlcnR5IG9mIGEgPGNvZGU+RHluYUFjdGlvbkZvcm08L2NvZGU+CisgICAgd291bGQgYmU6CisgICAgPC9wPgorCis8cHJlPjxjb2RlPiR7ZHluYWJlYW4ubWFwLnByb3B9PC9jb2RlPjwvcHJlPgorCisgICAgPHA+CisgICAgVGhlIDxjb2RlPm1hcDwvY29kZT4gcHJvcGVydHkgaXMgYSBwcm9wZXJ0eSBvZiAKKyAgICA8Y29kZT5EeW5hQWN0aW9uRm9ybTwvY29kZT4gd2hpY2ggcmVwcmVzZW50cyB0aGUgPGNvZGU+SGFzaE1hcDwvY29kZT4KKyAgICBjb250YWluaW5nIHRoZSA8Y29kZT5EeW5hQWN0aW9uRm9ybTwvY29kZT4gcHJvcGVydGllcy4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBEeW5hQWN0aW9uRm9ybXMgYXJlIG1lYW50IGFzIGFuIGVhc3kgc29sdXRpb24gdG8gYSBjb21tb24gcHJvYmxlbToKKyAgICA8ZW0+WW91ciBBY3Rpb25Gb3JtcyB1c2Ugc2ltcGxlIHByb3BlcnRpZXMgYW5kIHN0YW5kYXJkIHZhbGlkYXRpb25zLAorICAgIGFuZCB5b3UganVzdCBwYXNzIHRoZXNlIHByb3BlcnRpZXMgb3ZlciB0byBhbm90aGVyIEphdmFCZWFuPC9lbT4KKyAgICAoc2F5IHVzaW5nIDxjb2RlPkJlYW5VdGlscy5jb3B5UHJvcGVydGllcyhteUJ1c2luZXNzQmVhbixmb3JtKTwvY29kZT4pLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIER5bmFBY3Rpb25Gb3JtcyBhcmUgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gYSBkcm9wLWluIHJlcGxhY2VtZW50IGZvciBBY3Rpb25Gb3Jtcy4KKyAgICBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgQWN0aW9uRm9ybSBwcm9wZXJ0aWVzIGluIHlvdXIgQWN0aW9uLCB5b3Ugd2lsbCBuZWVkIHRvCisgICAgdXNlIHRoZSBtYXAtc3R5bGUgYWNjZXNzb3IsIGxpa2UgPGNvZGU+bXlGb3JtLmdldCgibmFtZSIpPC9jb2RlPi4KKyAgICBJZiB5b3UgYWN0aXZlbHkgdXNlIHRoZSBBY3Rpb25Gb3JtIG9iamVjdCBpbiB5b3VyIEFjdGlvbiwKKyAgICB0aGVuIHlvdSBtYXkgd2FudCB0byB1c2UgY29udmVudGlvbmFsIEFjdGlvbkZvcm1zIGluc3RlYWQuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgRHluYUFjdGlvbkZvcm1zIGNhbm5vdCBiZSBpbnN0YW50aWF0ZWQgdXNpbmcgYSBuby1hcmd1bWVudCBjb25zdHJ1Y3Rvci4KKyAgICBJbiBvcmRlciB0byBzaW11bGF0ZSB0aGUgZXh0cmEgcHJvcGVydGllcywKKyAgICB0aGVyZSBpcyBhIGxvdCBvZiBtYWNoaW5lcnkgaW52b2x2ZWQgaW4gdGhlaXIgY29uc3RydWN0aW9uLgorICAgIFlvdSBtdXN0IHJlbHkgb24gU3RydXRzIHRvIGluc3RhbnRpYXRlIGEgRHluYUFjdGlvbkZvcm0gZm9yIHlvdSwKKyAgICB2aWEgdGhlIEFjdGlvbk1hcHBpbmcuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgSWYgbmVlZCBiZSwgeW91IGNhbiBleHRlbmQgdGhlIER5bmFBY3Rpb25Gb3JtIHRvIGFkZCBjdXN0b20KKyAgICB2YWxpZGF0ZSBhbmQgcmVzZXQgbWV0aG9kcyB5b3UgbWlnaHQgbmVlZC4KKyAgICBTaW1wbHkgc3BlY2lmeSB5b3VyIHN1YmNsYXNzIGluIHRoZSBzdHJ1dHMtY29uZmlnIGluc3RlYWQuCisgICAgSG93ZXZlciwgeW91IGNhbm5vdCBtaXggY29udmVudGlvbmFsIHByb3BlcnRpZXMgYW5kIER5bmFQcm9wZXJ0aWVzLgorICAgIEEgY29udmVudGlvbmFsIGdldHRlciBvciBzZXR0ZXIgb24gYSBEeW5hQWN0aW9uRm9ybSB3b24ndCBiZSBmb3VuZAorICAgIGJ5IHRoZSByZWZsZWN0aW9uIHV0aWxpdGllcy4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUbyB1c2UgRHluYUFjdGlvbkZvcm1zIHdpdGggdGhlIFN0cnV0cyBWYWxpZGF0b3IsIHNwZWNpZnkKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uRm9ybTwvY29kZT4KKyAgICAob3IgeW91ciBzdWJjbGFzcykgYXMgdGhlIGZvcm0tYmVhbiBjbGFzcy4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gbmFtZT0iNC4zLjIgTWFwLWJhY2tlZCBBY3Rpb25Gb3JtcyIgaHJlZj0ibWFwX2FjdGlvbl9mb3JtX2NsYXNzZXMiPgorCisgICAgPHA+CisgICAgVGhlIER5bmFBY3Rpb25Gb3JtIGNsYXNzZXMgb2ZmZXIgdGhlIGFiaWxpdHkgdG8gY3JlYXRlIEFjdGlvbkZvcm0gYmVhbnMgCisgICAgYXQgaW5pdGlhbGl6YXRpb24gdGltZSwgYmFzZWQgb24gYSBsaXN0IG9mIHByb3BlcnRpZXMgZW51bWVyYXRlZCBpbiB0aGUgCisgICAgU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZS4gCisgICAgSG93ZXZlciwgbWFueSBIVE1MIGZvcm1zIGFyZSBnZW5lcmF0ZWQgZHluYW1pY2FsbHkgYXQgcmVxdWVzdCB0aW1lLiAKKyAgICBTaW5jZSB0aGUgcHJvcGVydGllcyBvZiB0aGVzZSBmb3JtcycgQWN0aW9uRm9ybSBiZWFucyBhcmUgbm90IGFsbCBrbm93biAKKyAgICBhaGVhZCBvZiB0aW1lLCB3ZSBuZWVkIGEgbmV3IGFwcHJvYWNoLgorICAgIDwvcD4KKyAgICAKKyAgICA8cD4KKyAgICBTdHJ1dHMgYWxsb3dzIHlvdSB0byBtYWtlIG9uZSBvciBtb3JlIG9mIHlvdXIgQWN0aW9uRm9ybSdzIHByb3BlcnRpZXMnIAorICAgIHZhbHVlcyBhIE1hcCBpbnN0ZWFkIG9mIGEgdHJhZGl0aW9uYWwgYXRvbWljIG9iamVjdC4gCisgICAgWW91IGNhbiB0aGVuIHN0b3JlIHRoZSBkYXRhIGZyb20geW91ciBmb3JtJ3MgZHluYW1pYyBmaWVsZHMgaW4gdGhhdCBNYXAuIAorICAgIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiBhIG1hcC1iYWNrZWQgQWN0aW9uRm9ybSBjbGFzczoKKyAgICA8L3A+CisgICAgCis8cHJlPjxjb2RlPjwhW0NEQVRBW3B1YmxpYyBGb29Gb3JtIGV4dGVuZHMgQWN0aW9uRm9ybSB7CisKKyAgICBwcml2YXRlIGZpbmFsIE1hcCB2YWx1ZXMgPSBuZXcgSGFzaE1hcCgpOworCisgICAgcHVibGljIHZvaWQgc2V0VmFsdWUoU3RyaW5nIGtleSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIHZhbHVlcy5wdXQoa2V5LCB2YWx1ZSk7CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBnZXRWYWx1ZShTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiB2YWx1ZXMuZ2V0KGtleSk7CisgICAgfQorCit9CitdXT48L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICBJbiBpdHMgY29ycmVzcG9uZGluZyBKU1AgcGFnZSwgeW91IGNhbiBhY2Nlc3Mgb2JqZWN0cyBzdG9yZWQgaW4gdGhlIAorICAgIHZhbHVlcyBtYXAgdXNpbmcgYSBzcGVjaWFsIG5vdGF0aW9uOiA8Y29kZT5tYXBuYW1lKGtleW5hbWUpPC9jb2RlPi4gCisgICAgVGhlIHBhcmVudGhlc2VzIGluIHRoZSBiZWFuIHByb3BlcnR5IG5hbWUgaW5kaWNhdGUgdGhhdDoKKyAgICA8L3A+CisgICAgCisgICAgPHVsPgorICAgIAorICAgICAgICA8bGk+CisgICAgICAgIFRoZSBiZWFuIHByb3BlcnR5IG5hbWVkIDxjb2RlPm1hcG5hbWU8L2NvZGU+IGlzIGluZGV4ZWQgdXNpbmcgU3RyaW5ncworICAgICAgICAocHJvYmFibHkgYmFja2VkIGJ5IGEgTWFwKSwgYW5kIHRoYXQgCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBTdHJ1dHMgc2hvdWxkIGxvb2sgZm9yIGdldC9zZXQgbWV0aG9kcyB0aGF0IHRha2UgYSBTdHJpbmcga2V5IAorICAgICAgICBwYXJhbWV0ZXIgdG8gZmluZCB0aGUgY29ycmVjdCBzdWItcHJvcGVydHkgdmFsdWUuIAorICAgICAgICBTdHJ1dHMgd2lsbCwgb2YgY291cnNlLCB1c2UgdGhlIDxjb2RlPmtleW5hbWU8L2NvZGU+IHZhbHVlIGZyb20gdGhlIAorICAgICAgICBwYXJlbnRoZXNlcyB3aGVuIGl0IGNhbGxzIHRoZSBnZXQvc2V0IG1ldGhvZHMuCisgICAgICAgIDwvbGk+CisgICAgCisgICAgPC91bD4KKyAgICAKKyAgICA8cD4KKyAgICBIZXJlIGlzIGEgc2ltcGxlIGV4YW1wbGU6CisgICAgPC9wPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWzxodG1sOnRleHQgcHJvcGVydHk9InZhbHVlKGZvbykiLz5dXT48L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICBUaGlzIHdpbGwgY2FsbCB0aGUgPGNvZGU+Z2V0VmFsdWU8L2NvZGU+IG1ldGhvZCBvbiBGb29Gb3JtIHdpdGggYSBrZXkgCisgICAgdmFsdWUgb2YgIjxjb2RlPmZvbzwvY29kZT4iIHRvIGZpbmQgdGhlIHByb3BlcnR5IHZhbHVlLiAKKyAgICBUbyBjcmVhdGUgYSBmb3JtIHdpdGggZHluYW1pYyBmaWVsZCBuYW1lcywgeW91IGNvdWxkIGRvIHRoZSBmb2xsb3dpbmc6CisgICAgPC9wPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWworPCUgCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgICAgIFN0cmluZyBuYW1lID0gInZhbHVlKGZvby0iICsgaSArICIpIjsKKyU+CisgICAgICAgIDxodG1sOnRleHQgcHJvcGVydHk9IjwlPSBuYW1lICU+Ii8+CisgICAgICAgIDxici8+Cis8JQorICAgIH0KKyU+CitdXT48L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICBOb3RlIHRoYXQgdGhlcmUgaXMgbm90aGluZyBzcGVjaWFsIGFib3V0IHRoZSBuYW1lIDxjb2RlPnZhbHVlPC9jb2RlPi4gCisgICAgWW91ciBtYXAtYmFja2VkIHByb3BlcnR5IGNvdWxkIGluc3RlYWQgYmUgbmFtZWQgPGNvZGU+cHJvcGVydHk8L2NvZGU+LCAKKyAgICA8Y29kZT50aGluZ3k8L2NvZGU+LCBvciBhbnkgb3RoZXIgYmVhbiBwcm9wZXJ0eSBuYW1lIHlvdSBwcmVmZXIuIAorICAgIFlvdSBjYW4gZXZlbiBoYXZlIG11bHRpcGxlIG1hcC1iYWNrZWQgcHJvcGVydGllcyBvbiB0aGUgc2FtZSBiZWFuLgorICAgIDwvcD4KKyAgICAKKyAgICA8cD4KKyAgICBJbiBhZGRpdGlvbiB0byBtYXAtYmFja2VkIHByb3BlcnRpZXMsIHlvdSBjYW4gYWxzbyBjcmVhdGUgbGlzdC1iYWNrZWQgCisgICAgcHJvcGVydGllcy4gCisgICAgWW91IGRvIHNvIGJ5IGNyZWF0aW5nIGluZGV4ZWQgZ2V0L3NldCBtZXRob2RzIG9uIHlvdXIgYmVhbjoKKyAgICA8L3A+CisgICAgCis8cHJlPjxjb2RlPjwhW0NEQVRBW3B1YmxpYyBGb29Gb3JtIGV4dGVuZHMgQWN0aW9uRm9ybSB7CisKKyAgICBwcml2YXRlIGZpbmFsIExpc3QgdmFsdWVzID0gbmV3IEFycmF5TGlzdCgpOworCisgICAgcHVibGljIHZvaWQgc2V0VmFsdWUoaW50IGtleSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIHZhbHVlcy5zZXQoa2V5LCB2YWx1ZSk7CisgICAgfQorCisgICAgcHVibGljIE9iamVjdCBnZXRWYWx1ZShpbnQga2V5KSB7CisgICAgICAgIHJldHVybiB2YWx1ZXMuZ2V0KGtleSk7CisgICAgfQorfQorXV0+PC9jb2RlPjwvcHJlPgorCisgICAgPHA+CisgICAgSW4geW91ciBwcmVzZW50YXRpb24gcGFnZXMsIHlvdSBhY2Nlc3MgaW5kaXZpZHVhbCBlbnRyaWVzIGluIGEgbGlzdC1iYWNrZWQgCisgICAgcHJvcGVydHkgYnkgdXNpbmcgYSBkaWZmZXJlbnQgc3BlY2lhbCBub3RhdGlvbjogCisgICAgPGNvZGU+bGlzdG5hbWVbaW5kZXhdPC9jb2RlPi4gCisgICAgVGhlIGJyYWNlcyBpbiB0aGUgYmVhbiBwcm9wZXJ0eSBuYW1lIGluZGljYXRlIHRoYXQgdGhlIGJlYW4gcHJvcGVydHkgbmFtZWQgCisgICAgPGNvZGU+bGlzdG5hbWU8L2NvZGU+IGlzIGluZGV4ZWQgKHByb2JhYmx5IGJhY2tlZCBieSBhIExpc3QpLCBhbmQgdGhhdCAKKyAgICBTdHJ1dHMgc2hvdWxkIGxvb2sgZm9yIGdldC9zZXQgbWV0aG9kcyB0aGF0IHRha2UgYW4gaW5kZXggcGFyYW1ldGVyIGluIAorICAgIG9yZGVyIHRvIGZpbmQgdGhlIGNvcnJlY3Qgc3ViLXByb3BlcnR5IHZhbHVlLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICBXaGlsZSBtYXAtYmFja2VkIEFjdGlvbkZvcm1zIHByb3ZpZGUgeW91IHdpdGggbW9yZSBmbGV4aWJpbGl0eSwgdGhleSBkbyBub3Qgc3VwcG9ydCB0aGUgc2FtZSByYW5nZSBvZiBzeW50YXgKKyAgICAgICAgYXZhaWxhYmxlIHRvIGNvbnZlbnRpb25hbCBvciBEeW5hQWN0aW9uRm9ybXMuCisgICAgICAgIFlvdSBtaWdodCBoYXZlIGRpZmZpY3VsdHkgcmVmZXJlbmNpbmcgPGEgaHJlZj0iLi4vZmFxcy9pbmRleGVkcHJvcHMuaHRtbCI+aW5kZXhlZCBvciBtYXBwZWQgcHJvcGVydGllczwvYT4KKyAgICAgICAgdXNpbmcgYSBtYXAtYmFja2VkIEFjdGlvbkZvcm0uCisgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IjQuNCBBY3Rpb24gQ2xhc3NlcyIgaHJlZj0iYWN0aW9uX2NsYXNzZXMiPgorCisgICAgPHA+CisgICAgVGhlIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MgZGVmaW5lcyB0d28gbWV0aG9kcyB0aGF0IGNvdWxkIGJlCisgICAgZXhlY3V0ZWQgZGVwZW5kaW5nIG9uIHlvdXIgc2VydmxldCBlbnZpcm9ubWVudDoKKyAgICA8L3A+CisKKzxwcmU+PGNvZGU+cHVibGljIEFjdGlvbkZvcndhcmQgZXhlY3V0ZShBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICAgICAgICAgICBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKQordGhyb3dzIEV4Y2VwdGlvbjsKKworcHVibGljIEFjdGlvbkZvcndhcmQgZXhlY3V0ZShBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCit0aHJvd3MgRXhjZXB0aW9uOworPC9jb2RlPjwvcHJlPgorCisgICAgPHA+CisgICAgU2luY2UgdGhlIG1ham9yaXR5IG9mIFN0cnV0cyBwcm9qZWN0cyBhcmUgZm9jdXNlZCBvbiBidWlsZGluZyB3ZWIgCisgICAgYXBwbGljYXRpb25zLCBtb3N0IHByb2plY3RzIHdpbGwgb25seSB1c2UgdGhlICJIdHRwU2VydmxldFJlcXVlc3QiIAorICAgIHZlcnNpb24uCisgICAgQSBub24tSFRUUCBleGVjdXRlKCkgbWV0aG9kIGhhcyBiZWVuIHByb3ZpZGVkIGZvciBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgCisgICAgbm90IHNwZWNpZmljYWxseSBnZWFyZWQgdG93YXJkcyB0aGUgSFRUUCBwcm90b2NvbC4gIAorICAgIDwvcD4KKworICAgIDxwPgorICAgIFRoZSBnb2FsIG9mIGFuIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MgaXMgdG8gcHJvY2VzcyBhIHJlcXVlc3QsIHZpYQorICAgIGl0cyA8Y29kZT5leGVjdXRlPC9jb2RlPiBtZXRob2QsIGFuZCByZXR1cm4gYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gCisgICAgb2JqZWN0IHRoYXQgaWRlbnRpZmllcyB3aGVyZSBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQgKGUuZy4gYSBKU1AsIAorICAgIFRpbGUgZGVmaW5pdGlvbiwgVmVsb2NpdHkgdGVtcGxhdGUsIG9yIGFub3RoZXIgQWN0aW9uKSB0byBwcm92aWRlIHRoZSAKKyAgICBhcHByb3ByaWF0ZSByZXNwb25zZS4gIAorICAgIEluIHRoZSA8ZW0+TVZDL01vZGVsIDI8L2VtPiBkZXNpZ24gcGF0dGVybiwgYSB0eXBpY2FsIDxjb2RlPkFjdGlvbjwvY29kZT4gCisgICAgY2xhc3Mgd2lsbCBvZnRlbiBpbXBsZW1lbnQgbG9naWMgbGlrZSB0aGUgZm9sbG93aW5nIGluIGl0cyAKKyAgICA8Y29kZT5leGVjdXRlPC9jb2RlPiBtZXRob2Q6CisgICAgPC9wPgorICAgIAorICAgIDx1bD4KKyAgICAKKyAgICAgICAgPGxpPgorICAgICAgICBWYWxpZGF0ZSB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgdXNlcidzIHNlc3Npb24gKGZvciBleGFtcGxlLCAKKyAgICAgICAgY2hlY2tpbmcgdGhhdCB0aGUgdXNlciBoYXMgc3VjY2Vzc2Z1bGx5IGxvZ2dlZCBvbikuCisgICAgICAgIElmIHRoZSA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzIGZpbmRzIHRoYXQgbm8gbG9nb24gZXhpc3RzLCB0aGUgCisgICAgICAgIHJlcXVlc3QgY2FuIGJlIGZvcndhcmRlZCB0byB0aGUgcHJlc2VudGF0aW9uIHBhZ2UgdGhhdCBkaXNwbGF5cyB0aGUgCisgICAgICAgIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBwcm9tcHRzIGZvciBsb2dnaW5nIG9uLiAgCisgICAgICAgIFRoaXMgY291bGQgb2NjdXIgYmVjYXVzZSBhIHVzZXIgdHJpZWQgdG8gZW50ZXIgYW4gYXBwbGljYXRpb24gImluIHRoZSAKKyAgICAgICAgbWlkZGxlIiAoc2F5LCBmcm9tIGEgYm9va21hcmspLCBvciBiZWNhdXNlIHRoZSBzZXNzaW9uIGhhcyB0aW1lZCBvdXQsIAorICAgICAgICBhbmQgdGhlIHNlcnZsZXQgY29udGFpbmVyIGNyZWF0ZWQgYSBuZXcgb25lLgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgSWYgdmFsaWRhdGlvbiBpcyBub3QgY29tcGxldGUsIHZhbGlkYXRlIHRoZSBmb3JtIGJlYW4gcHJvcGVydGllcyBhcyAKKyAgICAgICAgbmVlZGVkLiAKKyAgICAgICAgSWYgYSBwcm9ibGVtIGlzIGZvdW5kLCBzdG9yZSB0aGUgYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZSBrZXlzIGFzIGEgCisgICAgICAgIHJlcXVlc3QgYXR0cmlidXRlLCBhbmQgZm9yd2FyZCBjb250cm9sIGJhY2sgdG8gdGhlIGlucHV0IGZvcm0gc28gdGhhdCAKKyAgICAgICAgdGhlIGVycm9ycyBjYW4gYmUgY29ycmVjdGVkLgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgUGVyZm9ybSB0aGUgcHJvY2Vzc2luZyByZXF1aXJlZCB0byBkZWFsIHdpdGggdGhpcyByZXF1ZXN0IChzdWNoIGFzCisgICAgICAgIHNhdmluZyBhIHJvdyBpbnRvIGEgZGF0YWJhc2UpLiAgCisgICAgICAgIFRoaXMgPGVtPmNhbjwvZW0+IGJlIGRvbmUgYnkgbG9naWMgY29kZSBlbWJlZGRlZCB3aXRoaW4gdGhlIAorICAgICAgICA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzIGl0c2VsZiwgPHN0cm9uZz5idXQ8L3N0cm9uZz4gc2hvdWxkIGdlbmVyYWxseSBiZSAKKyAgICAgICAgcGVyZm9ybWVkIGJ5IGNhbGxpbmcgYW4gYXBwcm9wcmlhdGUgbWV0aG9kIG9mIGEgYnVzaW5lc3MgbG9naWMgYmVhbi4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIFVwZGF0ZSB0aGUgc2VydmVyLXNpZGUgb2JqZWN0cyB0aGF0IHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgdGhlIG5leHQKKyAgICAgICAgcGFnZSBvZiB0aGUgdXNlciBpbnRlcmZhY2UgKHR5cGljYWxseSByZXF1ZXN0IHNjb3BlIG9yIHNlc3Npb24gc2NvcGUKKyAgICAgICAgYmVhbnMsIGRlcGVuZGluZyBvbiBob3cgbG9uZyB5b3UgbmVlZCB0byBrZWVwIHRoZXNlIGl0ZW1zIGF2YWlsYWJsZSkuCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBSZXR1cm4gYW4gYXBwcm9wcmlhdGUgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gb2JqZWN0IHRoYXQgCisgICAgICAgIGlkZW50aWZpZXMgdGhlIHByZXNlbnRhdGlvbiBwYWdlIHRvIGJlIHVzZWQgdG8gZ2VuZXJhdGUgdGhpcyByZXNwb25zZSwgCisgICAgICAgIGJhc2VkIG9uIHRoZSBuZXdseSB1cGRhdGVkIGJlYW5zLiAKKyAgICAgICAgVHlwaWNhbGx5LCB5b3Ugd2lsbCBhY3F1aXJlIGEgcmVmZXJlbmNlIHRvIHN1Y2ggYW4gb2JqZWN0IGJ5IGNhbGxpbmcgCisgICAgICAgIDxjb2RlPmZpbmRGb3J3YXJkPC9jb2RlPiBvbiBlaXRoZXIgdGhlIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IAorICAgICAgICBvYmplY3QgeW91IHJlY2VpdmVkIChpZiB5b3UgYXJlIHVzaW5nIGEgbG9naWNhbCBuYW1lIGxvY2FsIHRvIHRoaXMgCisgICAgICAgIG1hcHBpbmcpLCBvciBvbiB0aGUgY29udHJvbGxlciBzZXJ2bGV0IGl0c2VsZiAoaWYgeW91IGFyZSB1c2luZyBhIAorICAgICAgICBsb2dpY2FsIG5hbWUgZ2xvYmFsIHRvIHRoZSBhcHBsaWNhdGlvbikuCisgICAgICAgIDwvbGk+CisgICAgCisgICAgPC91bD4KKworICAgIDxwPgorICAgIEluIFN0cnV0cyAxLjAsIEFjdGlvbnMgY2FsbGVkIGEgPGNvZGU+cGVyZm9ybTwvY29kZT4gbWV0aG9kIGluc3RlYWQgb2YgCisgICAgdGhlIG5vdy1wcmVmZXJyZWQgPGNvZGU+ZXhlY3V0ZTwvY29kZT4gbWV0aG9kLiAKKyAgICBUaGVzZSBtZXRob2RzIHVzZSB0aGUgc2FtZSBwYXJhbWV0ZXJzIGFuZCBkaWZmZXIgb25seSBpbiB3aGljaCBleGNlcHRpb25zIAorICAgIHRoZXkgdGhyb3cuIAorICAgIFRoZSBlbGRlciA8Y29kZT5wZXJmb3JtPC9jb2RlPiBtZXRob2QgdGhyb3dzIDxjb2RlPlNlcmx2ZXRFeGNlcHRpb248L2NvZGU+IAorICAgIGFuZCA8Y29kZT5JT0V4Y2VwdGlvbjwvY29kZT4uIAorICAgIFRoZSBuZXcgPGNvZGU+ZXhlY3V0ZTwvY29kZT4gbWV0aG9kIHNpbXBseSB0aHJvd3MgPGNvZGU+RXhjZXB0aW9uPC9jb2RlPi4gCisgICAgVGhlIGNoYW5nZSB3YXMgdG8gZmFjaWxpdGF0ZSB0aGUgRGVjbGFyYXRpdmUgRXhjZXB0aW9uIGhhbmRsaW5nIGZlYXR1cmUgCisgICAgaW50cm9kdWNlZCBpbiBTdHJ1dHMgMS4xLgorICAgIDwvcD4KKyAgICAKKyAgICA8cD4KKyAgICBUaGUgPGNvZGU+cGVyZm9ybTwvY29kZT4gbWV0aG9kIG1heSBzdGlsbCBiZSB1c2VkIGluIFN0cnV0cyAxLjEgYnV0IGlzIAorICAgIGRlcHJlY2F0ZWQuCisgICAgVGhlIFN0cnV0cyAxLjEgbWV0aG9kIHNpbXBseSBjYWxscyB0aGUgbmV3IDxjb2RlPmV4ZWN1dGU8L2NvZGU+IG1ldGhvZCAKKyAgICBhbmQgd3JhcHMgYW55IDxjb2RlPkV4Y2VwdGlvbjwvY29kZT4gdGhyb3duIGFzIGEgCisgICAgPGNvZGU+U2VydmxldEV4Y2VwdGlvbjwvY29kZT4uCisgICAgPC9wPgorCisgICA8L3NlY3Rpb24+CisgICAKKyAgIDxzZWN0aW9uIG5hbWU9IjQuNC4xIEFjdGlvbiBDbGFzcyBEZXNpZ24gR3VpZGVsaW5lcyIgaHJlZj0iYWN0aW9uX2Rlc2lnbl9ndWlkZSI+CisKKyAgICA8cD4KKyAgICBSZW1lbWJlciB0aGUgZm9sbG93aW5nIGRlc2lnbiBndWlkZWxpbmVzIHdoZW4gY29kaW5nIDxjb2RlPkFjdGlvbjwvY29kZT4gCisgICAgY2xhc3NlczoKKyAgICA8L3A+CisKKyAgICA8dWw+CisgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5Xcml0ZSBjb2RlIGZvciBhIG11bHRpLXRocmVhZGVkIGVudmlyb25tZW50PC9zdHJvbmc+IC0KKyAgICAgICAgVGhlIGNvbnRyb2xsZXIgc2VydmxldCBjcmVhdGVzIDxzdHJvbmc+b25seSBvbmUgaW5zdGFuY2Ugb2YgeW91cgorICAgICAgICA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzPC9zdHJvbmc+LCBhbmQgdXNlcyB0aGlzIG9uZSBpbnN0YW5jZSB0byBzZXJ2aWNlCisgICAgICAgIGFsbCByZXF1ZXN0cy4gIAorICAgICAgICBUaHVzLCB5b3UgbmVlZCB0byB3cml0ZSB0aHJlYWQtc2FmZSA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzZXMuCisgICAgICAgIEZvbGxvdyB0aGUgc2FtZSBndWlkZWxpbmVzIHlvdSB3b3VsZCB1c2UgdG8gd3JpdGUgdGhyZWFkLXNhZmUgCisgICAgICAgIFNlcnZsZXRzLiAgCisgICAgICAgIEhlcmUgYXJlIHR3byBnZW5lcmFsIGd1aWRlbGluZXMgdGhhdCB3aWxsIGhlbHAgeW91IHdyaXRlIHNjYWxhYmxlLCAKKyAgICAgICAgdGhyZWFkLXNhZmUgQWN0aW9uIGNsYXNzZXM6CisgICAgICAgIAorICAgICAgICA8dWw+CisgICAgICAgIAorICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgPHN0cm9uZz5Pbmx5IFVzZSBMb2NhbCBWYXJpYWJsZXM8L3N0cm9uZz4gLSBUaGUgbW9zdCBpbXBvcnRhbnQgcHJpbmNpcGxlIAorICAgICAgICAgICAgdGhhdCBhaWRzIGluIHRocmVhZC1zYWZlIGNvZGluZyBpcyB0byB1c2Ugb25seSBsb2NhbCB2YXJpYWJsZXMsIAorICAgICAgICAgICAgPHN0cm9uZz5ub3QgaW5zdGFuY2UgdmFyaWFibGVzPC9zdHJvbmc+LCBpbiB5b3VyIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MuICAKKyAgICAgICAgICAgIExvY2FsIHZhcmlhYmxlcyBhcmUgY3JlYXRlZCBvbiBhIHN0YWNrIHRoYXQgaXMgYXNzaWduZWQgKGJ5IHlvdXIgCisgICAgICAgICAgICBKVk0pIHRvIGVhY2ggcmVxdWVzdCB0aHJlYWQsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gd29ycnkgYWJvdXQgCisgICAgICAgICAgICBzaGFyaW5nIHRoZW0uICAKKyAgICAgICAgICAgIEFuIDxjb2RlPkFjdGlvbjwvY29kZT4gY2FuIGJlIGZhY3RvcmVkIGludG8gc2V2ZXJhbCBsb2NhbCBtZXRob2RzLCAKKyAgICAgICAgICAgIHNvICBsb25nIGFzIGFsbCB2YXJpYWJsZXMgbmVlZGVkIGFyZSBwYXNzZWQgYXMgbWV0aG9kIHBhcmFtZXRlcnMuIAorICAgICAgICAgICAgVGhpcyBhc3N1cmVzIHRocmVhZCBzYWZldHksIGFzIHRoZSBKVk0gaGFuZGxlcyBzdWNoIHZhcmlhYmxlcyAKKyAgICAgICAgICAgIGludGVybmFsbHkgdXNpbmcgdGhlIGNhbGwgc3RhY2sgd2hpY2ggaXMgYXNzb2NpYXRlZCB3aXRoIGEgc2luZ2xlIAorICAgICAgICAgICAgVGhyZWFkLgorICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgPHN0cm9uZz5Db25zZXJ2ZSBSZXNvdXJjZXM8L3N0cm9uZz4gLSBBcyBhIGdlbmVyYWwgcnVsZSwgYWxsb2NhdGluZyBzY2FyY2UgCisgICAgICAgICAgICByZXNvdXJjZXMgYW5kIGtlZXBpbmcgdGhlbSBhY3Jvc3MgcmVxdWVzdHMgZnJvbSB0aGUgc2FtZSB1c2VyIAorICAgICAgICAgICAgKGluIHRoZSB1c2VyJ3Mgc2Vzc2lvbikgY2FuIGNhdXNlIHNjYWxhYmlsaXR5IHByb2JsZW1zLiAgCisgICAgICAgICAgICBGb3IgZXhhbXBsZSwgaWYgeW91ciBhcHBsaWNhdGlvbiB1c2VzIEpEQkMgYW5kIHlvdSAgYWxsb2NhdGUgYSAKKyAgICAgICAgICAgIHNlcGFyYXRlIEpEQkMgY29ubmVjdGlvbiBmb3IgZXZlcnkgdXNlciwgeW91IGFyZSBwcm9iYWJseSBnb2luZworICAgICAgICAgICAgdG8gcnVuIGluIHNvbWUgc2NhbGFiaWxpdHkgaXNzdWVzIHdoZW4geW91ciBzaXRlIHN1ZGRlbmx5IHNob3dzIAorICAgICAgICAgICAgdXAgb24gU2xhc2hkb3QuICAKKyAgICAgICAgICAgIFlvdSBzaG91bGQgc3RyaXZlIHRvIHVzZSBwb29scyBhbmQgcmVsZWFzZSByZXNvdXJjZXMgKHN1Y2ggYXMgCisgICAgICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9ucykgcHJpb3IgdG8gZm9yd2FyZGluZyBjb250cm9sIHRvIHRoZSAKKyAgICAgICAgICAgIGFwcHJvcHJpYXRlIFZpZXcgY29tcG9uZW50IC0tIGV2ZW4gaWYgYSBiZWFuIG1ldGhvZCB5b3UgaGF2ZSAKKyAgICAgICAgICAgIGNhbGxlZCB0aHJvd3MgYW4gZXhjZXB0aW9uLgorICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIAorICAgICAgICA8L3VsPgorICAgIAorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5Eb24ndCB0aHJvdyBpdCwgY2F0Y2ggaXQhPC9zdHJvbmc+IC0gRXZlciB1c2VkIGEgY29tbWVyY2lhbCB3ZWJzaXRlIG9ubHkgdG8gCisgICAgICAgIGhhdmUgYSBzdGFjayB0cmFjZSBvciBleGNlcHRpb24gdGhyb3duIGluIHlvdXIgZmFjZSBhZnRlciB5b3UndmUgYWxyZWFkeSAKKyAgICAgICAgdHlwZWQgaW4geW91ciBjcmVkaXQgY2FyZCBudW1iZXIgYW5kIGNsaWNrZWQgdGhlIHB1cmNoYXNlIGJ1dHRvbj8gIAorICAgICAgICBMZXQncyBqdXN0IHNheSBpdCBkb2Vzbid0IGluc3BpcmUgY29uZmlkZW5jZS4gIAorICAgICAgICBOb3cgaXMgeW91ciBjaGFuY2UgdG8gZGVhbCB3aXRoIHRoZXNlIGFwcGxpY2F0aW9uIGVycm9ycyAtIGluIHRoZSAKKyAgICAgICAgPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcy4gIAorICAgICAgICBJZiB5b3VyIGFwcGxpY2F0aW9uIHNwZWNpZmljIGNvZGUgdGhyb3dzIGV4cGVjdGlvbnMgeW91IHNob3VsZCBjYXRjaCB0aGVzZSAKKyAgICAgICAgZXhjZXB0aW9ucyAgaW4geW91ciBBY3Rpb24gY2xhc3MsIGxvZyB0aGVtIGluIHlvdXIgYXBwbGljYXRpb24ncyBsb2cgCisgICAgICAgICg8Y29kZT5zZXJ2bGV0LmxvZygiRXJyb3IgbWVzc2FnZSIsIGV4Y2VwdGlvbik8L2NvZGU+KSBhbmQgcmV0dXJuIHRoZSAKKyAgICAgICAgYXBwcm9wcmlhdGUgQWN0aW9uRm9yd2FyZC4KKyAgICAgICAgPC9saT4KKyAgICAKKyAgICA8L3VsPgorCisgICAgPHA+CisgICAgSXQgaXMgd2lzZSB0byBhdm9pZCBjcmVhdGluZyBsZW5ndGh5IGFuZCBjb21wbGV4IEFjdGlvbiBjbGFzc2VzLgorICAgIElmIHlvdSBzdGFydCB0byBlbWJlZCB0b28gbXVjaCBsb2dpYyBpbiB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcyAKKyAgICBpdHNlbGYsIHlvdSB3aWxsIGJlZ2luIHRvIGZpbmQgdGhlIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MgaGFyZCB0byAKKyAgICB1bmRlcnN0YW5kLCBtYWludGFpbiwgYW5kIGltcG9zc2libGUgdG8gcmV1c2UuICAKKyAgICBSYXRoZXIgdGhhbiBjcmVhdGluZyBvdmVybHkgY29tcGxleCBBY3Rpb24gY2xhc3NlcywgaXQgaXMgZ2VuZXJhbGx5IGEgCisgICAgZ29vZCBwcmFjdGljZSB0byBtb3ZlIG1vc3Qgb2YgdGhlIHBlcnNpc3RlbmNlLCBhbmQgImJ1c2luZXNzIGxvZ2ljIiB0byBhIAorICAgIHNlcGFyYXRlIGFwcGxpY2F0aW9uIGxheWVyLiAgCisgICAgV2hlbiBhbiBBY3Rpb24gY2xhc3MgYmVjb21lcyBsZW5ndGh5IGFuZCBwcm9jZWR1cmFsLCBpdCBtYXkgYmUgYSBnb29kIHRpbWUgCisgICAgdG8gcmVmYWN0b3IgeW91ciBhcHBsaWNhdGlvbiBhcmNoaXRlY3R1cmUgYW5kIG1vdmUgc29tZSBvZiB0aGlzIGxvZ2ljCisgICAgdG8gYW5vdGhlciBjb25jZXB0dWFsIGxheWVyOyAKKyAgICBvdGhlcndpc2UsIHlvdSBtYXkgYmUgbGVmdCB3aXRoIGFuIGluZmxleGlibGUgYXBwbGljYXRpb24gd2hpY2ggY2FuIG9ubHkgCisgICAgYmUgYWNjZXNzZWQgaW4gYSB3ZWItYXBwbGljYXRpb24gZW52aXJvbm1lbnQuCisgICAgU3RydXRzIHNob3VsZCBiZSB2aWV3ZWQgYXMgc2ltcGx5IHRoZSA8c3Ryb25nPmZvdW5kYXRpb248L3N0cm9uZz4gZm9yIGltcGxlbWVudGluZyAKKyAgICBNVkMgaW4geW91ciBhcHBsaWNhdGlvbnMuIAorICAgIFN0cnV0cyBwcm92aWRlcyB5b3Ugd2l0aCBhIHVzZWZ1bCBjb250cm9sIGxheWVyLCBidXQgaXQgaXMgbm90IGEgZnVsbHkgCisgICAgZmVhdHVyZWQgcGxhdGZvcm0gZm9yIGJ1aWxkaW5nIE1WQyBhcHBsaWNhdGlvbnMsIHNvdXAgdG8gbnV0cy4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGUgTWFpbFJlYWRlciBleGFtcGxlIGFwcGxpY2F0aW9uIGluY2x1ZGVkIHdpdGggU3RydXRzIHN0cmV0Y2hlcyB0aGlzIGRlc2lnbgorICAgIHByaW5jaXBsZSBzb21ld2hhdCwgYmVjYXVzZSB0aGUgYnVzaW5lc3MgbG9naWMgaXRzZWxmIGlzIGVtYmVkZGVkIGluIHRoZQorICAgIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3Nlcy4gCisgICAgVGhpcyBzaG91bGQgYmUgY29uc2lkZXJlZCBzb21ldGhpbmcgb2YgYSBidWcgaW4gdGhlIGRlc2lnbiBvZiB0aGUgZXhhbXBsZSwKKyAgICByYXRoZXIgdGhhbiBhbiBpbnRyaW5zaWMgZmVhdHVyZSBvZiB0aGUgU3RydXRzIGFyY2hpdGVjdHVyZSwgb3IgYW4gCisgICAgYXBwcm9hY2ggdG8gYmUgZW11bGF0ZWQuCisgICAgSW4gb3JkZXIgdG8gZGVtb25zdHJhdGUsIGluIHNpbXBsZSB0ZXJtcywgdGhlIGRpZmZlcmVudCB3YXlzIFN0cnV0cyBjYW4gYmUKKyAgICB1c2VkLCB0aGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbiBkb2VzIG5vdCBhbHdheXMgZm9sbG93IGJlc3QgcHJhY3RpY2VzLgorICAgIDwvcD4KKyAgICAgIAorPC9zZWN0aW9uPgorICAgCis8c2VjdGlvbiBuYW1lPSI0LjUgRXhjZXB0aW9uIEhhbmRsZXIiIGhyZWY9ImV4Y2VwdGlvbl9oYW5kbGVyIj4KKworICAgIDxwPgorICAgIFlvdSBjYW4gZGVmaW5lIGFuIEV4Y2VwdGlvbkhhbmRsZXIgdG8gZXhlY3V0ZSB3aGVuIGFuIEFjdGlvbidzIAorICAgIDxjb2RlPmV4ZWN1dGU8L2NvZGU+IG1ldGhvZCB0aHJvd3MgYW4gRXhjZXB0aW9uLiAgCisgICAgRmlyc3QsIHlvdSBuZWVkIHRvIHN1YmNsYXNzIAorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5FeGNlcHRpb25IYW5kbGVyPC9jb2RlPiBhbmQgb3ZlcnJpZGUgdGhlIAorICAgIDxjb2RlPmV4ZWN1dGU8L2NvZGU+IG1ldGhvZC4KKyAgICBZb3VyIDxjb2RlPmV4ZWN1dGU8L2NvZGU+IG1ldGhvZCBzaG91bGQgcHJvY2VzcyB0aGUgRXhjZXB0aW9uIGFuZCByZXR1cm4gCisgICAgYW4gQWN0aW9uRm9yd2FyZCBvYmplY3QgdG8gdGVsbCBTdHJ1dHMgd2hlcmUgdG8gZm9yd2FyZCB0byBuZXh0LiAgCisgICAgVGhlbiB5b3UgY29uZmlndXJlIHlvdXIgaGFuZGxlciBpbiBzdHJ1dHMtY29uZmlnLnhtbCBsaWtlIHRoaXM6CisgICAgPC9wPgorICAgIAorPHByZT48Y29kZT48IVtDREFUQVs8Z2xvYmFsLWV4Y2VwdGlvbnM+CisgICAgPGV4Y2VwdGlvbiAKKyAgICAgIGtleT0ic29tZS5rZXkiIAorICAgICAgdHlwZT0iamF2YS5pby5JT0V4Y2VwdGlvbiIgCisgICAgICBoYW5kbGVyPSJjb20ueW91cmNvcnAuRXhjZXB0aW9uSGFuZGxlciIvPgorPC9nbG9iYWwtZXhjZXB0aW9ucz4KK11dPjwvY29kZT48L3ByZT4KKyAgICAKKyAgICA8cD4KKyAgICBUaGlzIGNvbmZpZ3VyYXRpb24gZWxlbWVudCBzYXlzIHRoYXQgCisgICAgPGNvZGU+Y29tLnlvdXJjb3JwLkV4Y2VwdGlvbkhhbmRsZXIuZXhlY3V0ZTwvY29kZT4gd2lsbCBiZSBjYWxsZWQgd2hlbiAKKyAgICBhbnkgSU9FeGNlcHRpb24gaXMgdGhyb3duIGJ5IGFuIEFjdGlvbi4gIAorICAgIFRoZSA8Y29kZT5rZXk8L2NvZGU+IGlzIGEga2V5IGludG8geW91ciBtZXNzYWdlIHJlc291cmNlcyBwcm9wZXJ0aWVzIGZpbGUgCisgICAgdGhhdCBjYW4gYmUgdXNlZCB0byByZXRyaWV2ZSBhbiBlcnJvciBtZXNzYWdlLgorICAgIDwvcD4KKyAgICAKKyAgICA8cD4KKyAgICBZb3UgY2FuIG92ZXJyaWRlIGdsb2JhbCBleGNlcHRpb24gaGFuZGxlcnMgYnkgZGVmaW5pbmcgYSBoYW5kbGVyIGluc2lkZSBhbiAKKyAgICBhY3Rpb24gZGVmaW5pdGlvbi4KKyAgICA8L3A+CisgICAgCisgICAgPHA+CisgICAgQSBjb21tb24gdXNlIG9mIEV4Y2VwdGlvbkhhbmRsZXJzIGlzIHRvIGNvbmZpZ3VyZSBvbmUgZm9yIAorICAgIDxjb2RlPmphdmEubGFuZy5FeGNlcHRpb248L2NvZGU+IHNvIGl0J3MgY2FsbGVkIGZvciBhbnkgZXhjZXB0aW9uIGFuZCBsb2cgCisgICAgdGhlIGV4Y2VwdGlvbiB0byBzb21lIGRhdGEgc3RvcmUuCisgICAgPC9wPgorICAgIAorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSI0LjYgUGx1Z0luIENsYXNzZXMiIGhyZWY9InBsdWdpbl9jbGFzc2VzIj4KKworICAgIDxwPgorICAgIFRoZSA8ZW0+UGx1Z0luPC9lbT4gaW50ZXJmYWNlIGV4dGVuZHMgQWN0aW9uIGFuZCBzbyB0aGF0IGFwcGxpY2F0aW9ucyBjYW4KKyAgICBlYXNpbHkgaG9vayBpbnRvIHRoZSBBY3Rpb25TZXJ2bGV0IGxpZmVjeWNsZS4gCisgICAgVGhpcyBpbnRlcmZhY2UgZGVmaW5lcyB0d28gbWV0aG9kcywgPGNvZGU+aW5pdCgpPC9jb2RlPiBhbmQgCisgICAgPGNvZGU+ZGVzdHJveSgpPC9jb2RlPiwgd2hpY2ggYXJlIGNhbGxlZCBhdCBhcHBsaWNhdGlvbiBzdGFydHVwIGFuZCAKKyAgICBzaHV0ZG93biwgcmVzcGVjdGl2ZWx5LiAKKyAgICBBIGNvbW1vbiB1c2Ugb2YgYSBQbHVnaW4gQWN0aW9uIGlzIHRvIGNvbmZpZ3VyZSBvciBsb2FkIAorICAgIGFwcGxpY2F0aW9uLXNwZWNpZmljIGRhdGEgYXMgdGhlIHdlYiBhcHBsaWNhdGlvbiBpcyBzdGFydGluZyB1cC4KKyAgICA8L3A+CisgICAgCisgICAgPHA+CisgICAgQXQgcnVudGltZSwgYW55IHJlc291cmNlIHNldHVwIGJ5IDxjb2RlPmluaXQ8L2NvZGU+IHdvdWxkIGJlIGFjY2Vzc2VkIGJ5IAorICAgIEFjdGlvbnMgb3IgYnVzaW5lc3MgdGllciBjbGFzc2VzLiAKKyAgICBUaGUgUGx1Z0luIGludGVyZmFjZSBhbGxvd3MgeW91IHRvIHNldHVwIHJlc291cmNlcywgYnV0IGRvZXMgbm90IHByb3ZpZGUgCisgICAgYW55IHNwZWNpYWwgd2F5IHRvIGFjY2VzcyB0aGVtLiAKKyAgICBNb3N0IG9mdGVuLCB0aGUgcmVzb3VyY2Ugd291bGQgYmUgc3RvcmVkIGluIGFwcGxpY2F0aW9uIGNvbnRleHQsIHVuZGVyCisgICAgYSBrbm93biBrZXksIHdoZXJlIG90aGVyIGNvbXBvbmVudHMgY2FuIGZpbmQgaXQuCisgICAgPC9wPgorICAgIAorICAgIDxwPgorICAgIFBsdWdJbnMgYXJlIGNvbmZpZ3VyZWQgdXNpbmcgJmx0O3BsdWctaW4mZ3Q7IGVsZW1lbnRzIHdpdGhpbiB0aGUKKyAgICBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlLiAKKyAgICBTZWUgPGEgaHJlZj0iY29uZmlndXJhdGlvbi5odG1sI3BsdWdpbl9jb25maWciPiBQbHVnSW4gQ29uZmlndXJhdGlvbjwvYT4gCisgICAgZm9yIGRldGFpbHMuCisgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IjQuNyBUaGUgQWN0aW9uTWFwcGluZyBJbXBsZW1lbnRhdGlvbiIgaHJlZj0iYWN0aW9ubWFwcGluZyI+CisKKyAgICA8cD4KKyAgICBJbiBvcmRlciB0byBvcGVyYXRlIHN1Y2Nlc3NmdWxseSwgdGhlIFN0cnV0cyBjb250cm9sbGVyIHNlcnZsZXQgbmVlZHMKKyAgICB0byBrbm93IHNldmVyYWwgdGhpbmdzIGFib3V0IGhvdyBlYWNoIHJlcXVlc3QgVVJJIHNob3VsZCBiZSBtYXBwZWQgdG8gYW4KKyAgICBhcHByb3ByaWF0ZSA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzLiAgCisgICAgVGhlIHJlcXVpcmVkIGtub3dsZWRnZSBoYXMgYmVlbiBlbmNhcHN1bGF0ZWQgaW4gYSBKYXZhIGNsYXNzIG5hbWVkIAorICAgIDxlbT5BY3Rpb25NYXBwaW5nPC9lbT4sIHRoZSBtb3N0IGltcG9ydGFudCBwcm9wZXJ0aWVzIGFyZSBhcyBmb2xsb3dzOgorICAgIDwvcD4KKworICAgIDx1bD4KKyAgICAKKyAgICAgICAgPGxpPgorICAgICAgICA8Y29kZT50eXBlPC9jb2RlPiAtIEZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIEFjdGlvbiAKKyAgICAgICAgaW1wbGVtZW50YXRpb24gY2xhc3MgdXNlZCBieSB0aGlzIG1hcHBpbmcuCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8Y29kZT5uYW1lPC9jb2RlPiAtIFRoZSBuYW1lIG9mIHRoZSBmb3JtIGJlYW4gZGVmaW5lZCBpbiB0aGUgY29uZmlnIGZpbGUKKyAgICAgICAgdGhhdCB0aGlzIGFjdGlvbiB3aWxsIHVzZS4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxjb2RlPnBhdGg8L2NvZGU+IC0gVGhlIHJlcXVlc3QgVVJJIHBhdGggdGhhdCBpcyBtYXRjaGVkIHRvIHNlbGVjdCB0aGlzCisgICAgICAgIG1hcHBpbmcuICAKKyAgICAgICAgU2VlIGJlbG93IGZvciBleGFtcGxlcyBvZiBob3cgbWF0Y2hpbmcgd29ya3MgYW5kIGhvdyB0byB1c2Ugd2lsZGNhcmRzIAorICAgICAgICB0byBtYXRjaCBtdWx0aXBsZSByZXF1ZXN0IFVSSXMuCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8Y29kZT51bmtub3duPC9jb2RlPiAtIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGFjdGlvbgorICAgICAgICBzaG91bGQgYmUgY29uZmlndXJlZCBhcyB0aGUgZGVmYXVsdCBmb3IgdGhpcyBhcHBsaWNhdGlvbiwgdG8gaGFuZGxlCisgICAgICAgIGFsbCByZXF1ZXN0cyBub3QgaGFuZGxlZCBieSBhbm90aGVyIGFjdGlvbi4gIAorICAgICAgICBPbmx5IG9uZSBhY3Rpb24gY2FuIGJlIGRlZmluZWQgYXMgYSBkZWZhdWx0IHdpdGhpbiBhIHNpbmdsZSBhcHBsaWNhdGlvbi4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxjb2RlPnZhbGlkYXRlPC9jb2RlPiAtIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgCisgICAgICAgIDxjb2RlPnZhbGlkYXRlPC9jb2RlPiBtZXRob2Qgb2YgdGhlIGFjdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhpcyBtYXBwaW5nIAorICAgICAgICBzaG91bGQgYmUgY2FsbGVkLgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gLSBUaGUgcmVxdWVzdCBVUkkgcGF0aCB0byB3aGljaCBjb250cm9sIGlzIHBhc3NlZAorICAgICAgICB3aGVuIHRoaXMgbWFwcGluZyBpcyBpbnZva2VkLiAKKyAgICAgICAgVGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSB0byBkZWNsYXJpbmcgYSA8Y29kZT50eXBlPC9jb2RlPiBwcm9wZXJ0eS4gCisgICAgICAgIDwvbGk+CisKKyAgICA8L3VsPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IjQuOCBXcml0aW5nIEFjdGlvbiBNYXBwaW5ncyIgaHJlZj0iY29uZmlnIj4KKworICAgIDxwPgorICAgIEhvdyBkb2VzIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgbGVhcm4gYWJvdXQgdGhlIG1hcHBpbmdzIHlvdSB3YW50PworICAgIEl0IHdvdWxkIGJlIHBvc3NpYmxlIChidXQgdGVkaW91cykgdG8gd3JpdGUgYSBzbWFsbCBKYXZhIGNsYXNzIHRoYXQgc2ltcGx5CisgICAgaW5zdGFudGlhdGVkIG5ldyA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPiBpbnN0YW5jZXMsIGFuZCBjYWxsZWQgYWxsIG9mCisgICAgdGhlIGFwcHJvcHJpYXRlIHNldHRlciBtZXRob2RzLiAgCisgICAgVG8gbWFrZSB0aGlzIHByb2Nlc3MgZWFzaWVyLCBTdHJ1dHMgdXNlcyB0aGUgSmFrYXJ0YS1EaWdlc3RlciBjb21wb25lbnQgCisgICAgdG8gcGFyc2UgYW4gWE1MLWJhc2VkIGRlc2NyaXB0aW9uIG9mIHRoZSBkZXNpcmVkIG1hcHBpbmdzIGFuZCBjcmVhdGUgdGhlIAorICAgIGFwcHJvcHJpYXRlIG9iamVjdHMgaW5pdGlhbGl6ZWQgdG8gdGhlIGFwcHJvcHJpYXRlIGRlZmF1bHQgdmFsdWVzLgorICAgIFNlZSB0aGUgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zIj5KYWthcnRhIENvbW1vbnMgCisgICAgd2Vic2l0ZTwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIERpZ2VzdGVyLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFRoZSBkZXZlbG9wZXIncyByZXNwb25zaWJpbGl0eSBpcyB0byBjcmVhdGUgYW4gWE1MIGZpbGUgbmFtZWQKKyAgICA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4gYW5kIHBsYWNlIGl0IGluIHRoZSBXRUItSU5GIGRpcmVjdG9yeSBvZiAKKyAgICB5b3VyIGFwcGxpY2F0aW9uLiAKKyAgICBUaGlzIGZvcm1hdCBvZiB0aGlzIGRvY3VtZW50IGlzIGRlc2NyaWJlZCBieSB0aGUgRG9jdW1lbnQgVHlwZSBEZWZpbml0aW9uCisgICAgKERURCkgbWFpbnRhaW5lZCBhdAorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2R0ZHMvc3RydXRzLWNvbmZpZ18xXzEuZHRkIj4KKyAgICBodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9kdGRzL3N0cnV0cy1jb25maWdfMV8xLmR0ZDwvYT4uCisgICAgVGhpcyBjaGFwdGVyIGNvdmVycyB0aGUgY29uZmlndXJhdGlvbiBlbGVtZW50cyB0aGF0IHlvdSB3aWxsIHR5cGljYWxseSAKKyAgICB3cml0ZSBhcyBwYXJ0IG9mIGRldmVsb3BpbmcgeW91ciBhcHBsaWNhdGlvbi4KKyAgICBUaGVyZSBhcmUgc2V2ZXJhbCBvdGhlciBlbGVtZW50cyB0aGF0IGNhbiBiZSBwbGFjZWQgaW4gdGhlIAorICAgIHN0cnV0cy1jb25maWcgZmlsZSB0byBjdXN0b21pemUgeW91ciBhcHBsaWNhdGlvbi4gCisgICAgU2VlICI8YSBocmVmPSJjb25maWd1cmF0aW9uLmh0bWwiPkNvbmZpZ3VyaW5nIEFwcGxpY2F0aW9uczwvYT4iIGZvciBtb3JlIAorICAgIGFib3V0IHRoZSBvdGhlciBlbGVtZW50cyBpbiB0aGUgU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZS4gCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhlIGNvbnRyb2xsZXIgdXNlcyBhbiBpbnRlcm5hbCBjb3B5IG9mIHRoaXMgZG9jdW1lbnQgdG8gcGFyc2UgdGhlIAorICAgIGNvbmZpZ3VyYXRpb247IGFuIEludGVybmV0IGNvbm5lY3Rpb24gaXMgbm90IHJlcXVpcmVkIGZvciBvcGVyYXRpb24uCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhlIG91dGVybW9zdCBYTUwgZWxlbWVudCBtdXN0IGJlIDxjb2RlPiZsdDtzdHJ1dHMtY29uZmlnJmd0OzwvY29kZT4uIAorICAgIEluc2lkZSBvZiB0aGUgJmx0O3N0cnV0cy1jb25maWcmZ3Q7IGVsZW1lbnQsIHRoZXJlIGFyZSB0aHJlZSBpbXBvcnRhbnQgCisgICAgZWxlbWVudHMgdGhhdCBhcmUgdXNlZCB0byBkZXNjcmliZSB5b3VyIGFjdGlvbnM6CisgICAgPC9wPgorICAgIAorICAgIDx1bD4KKyAgICAKKyAgICAgICAgPGxpPgorICAgICAgICA8Y29kZT4mbHQ7Zm9ybS1iZWFucyZndDs8L2NvZGU+CisgICAgICAgIDwvbGk+CisgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgPGNvZGU+Jmx0O2dsb2JhbC1mb3J3YXJkcyZndDs8L2NvZGU+CisgICAgICAgIDwvbGk+CisgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgPGNvZGU+Jmx0O2FjdGlvbi1tYXBwaW5ncyZndDs8L2NvZGU+CisgICAgICAgIDwvbGk+CisKKyAgICA8L3VsPgorICAgIAorICAgIDxwPgorICAgIDxjb2RlPjxzdHJvbmc+Jmx0O2Zvcm0tYmVhbnMmZ3Q7PC9zdHJvbmc+PC9jb2RlPjxiciAvPgorICAgIFRoaXMgc2VjdGlvbiBjb250YWlucyB5b3VyIGZvcm0gYmVhbiBkZWZpbml0aW9ucy4gIAorICAgIEZvcm0gYmVhbnMgYXJlIGRlc2NyaXB0b3JzIHRoYXQgYXJlIHVzZWQgdG8gY3JlYXRlIEFjdGlvbkZvcm0gaW5zdGFuY2VzIAorICAgIGF0IHJ1bnRpbWUuIAorICAgIFlvdSB1c2UgYSAmbHQ7Zm9ybS1iZWFuJmd0OyBlbGVtZW50IGZvciBlYWNoIGZvcm0gYmVhbiwgd2hpY2ggaGFzIHRoZSAKKyAgICBmb2xsb3dpbmcgaW1wb3J0YW50IGF0dHJpYnV0ZXM6CisgICAgPC9wPgorICAgIAorICAgIDx1bD4KKyAgICAKKyAgICAgICAgPGxpPgorICAgICAgICA8Y29kZT5uYW1lPC9jb2RlPjogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBiZWFuLCB3aGljaCB3aWxsIGJlIAorICAgICAgICB1c2VkIHRvIHJlZmVyZW5jZSBpdCBpbiBjb3JyZXNwb25kaW5nIGFjdGlvbiBtYXBwaW5ncy4gCisgICAgICAgIFVzdWFsbHksIHRoaXMgaXMgYWxzbyB0aGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBvciBzZXNzaW9uIGF0dHJpYnV0ZSAKKyAgICAgICAgdW5kZXIgd2hpY2ggdGhpcyBmb3JtIGJlYW4gd2lsbCBiZSBzdG9yZWQuCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8Y29kZT50eXBlPC9jb2RlPjogVGhlIGZ1bGx5LXF1YWxpZmllZCBKYXZhIGNsYXNzbmFtZSBvZiB0aGUgCisgICAgICAgIEFjdGlvbkZvcm0gc3ViY2xhc3MgdG8gdXNlIHdpdGggdGhpcyBmb3JtIGJlYW4uCisgICAgICAgIDwvbGk+CisKKyAgICA8L3VsPgorCisgICAgPHA+CisgICAgPHN0cm9uZz4mbHQ7Z2xvYmFsLWZvcndhcmRzJmd0Ozwvc3Ryb25nPjxiciAvPgorICAgIFRoaXMgc2VjdGlvbiBjb250YWlucyB5b3VyIGdsb2JhbCBmb3J3YXJkIGRlZmluaXRpb25zLiAgCisgICAgRm9yd2FyZHMgYXJlIGluc3RhbmNlcyBvZiB0aGUgQWN0aW9uRm9yd2FyZCBjbGFzcyByZXR1cm5lZCBmcm9tIGFuIAorICAgIEFjdGlvbkZvcm0ncyA8Y29kZT5leGVjdXRlPC9jb2RlPiBtZXRob2QuIAorICAgIFRoZXNlIG1hcCBsb2dpY2FsIG5hbWVzIHRvIHNwZWNpZmljIHJlc291cmNlcyAodHlwaWNhbGx5IEpTUHMpLCBhbGxvd2luZyAKKyAgICB5b3UgdG8gY2hhbmdlIHRoZSByZXNvdXJjZSB3aXRob3V0IGNoYW5naW5nIHJlZmVyZW5jZXMgdG8gaXQgdGhyb3VnaG91dCAKKyAgICB5b3VyIGFwcGxpY2F0aW9uLgorICAgIFlvdSB1c2UgYSA8Y29kZT4mbHQ7Zm9yd2FyZCZndDs8L2NvZGU+IGVsZW1lbnQgZm9yIGVhY2ggZm9yd2FyZCAKKyAgICBkZWZpbml0aW9uLCB3aGljaCBoYXMgdGhlIGZvbGxvd2luZyBpbXBvcnRhbnQgYXR0cmlidXRlczoKKyAgICA8L3A+CisgICAgCisgICAgPHVsPgorICAgIAorICAgICAgICA8bGk+CisgICAgICAgIDxjb2RlPm5hbWU8L2NvZGU+OiBUaGUgbG9naWNhbCBuYW1lIGZvciB0aGlzIGZvcndhcmQuICAKKyAgICAgICAgVGhpcyBpcyB1c2VkIGluIHlvdXIgQWN0aW9uRm9ybSdzIDxjb2RlPmV4ZWN1dGU8L2NvZGU+IG1ldGhvZCB0byAKKyAgICAgICAgZm9yd2FyZCB0byB0aGUgbmV4dCBhcHByb3ByaWF0ZSByZXNvdXJjZS4gCisgICAgICAgIEV4YW1wbGU6IGhvbWVwYWdlCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8Y29kZT5wYXRoPC9jb2RlPjogVGhlIGNvbnRleHQgcmVsYXRpdmUgcGF0aCB0byB0aGUgcmVzb3VyY2UuCisgICAgICAgIEV4YW1wbGU6IC9pbmRleC5qc3Agb3IgL2luZGV4LmRvCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8Y29kZT5yZWRpcmVjdDwvY29kZT46IDxjb2RlPlRydWU8L2NvZGU+IG9yIDxjb2RlPmZhbHNlPC9jb2RlPiAKKyAgICAgICAgKGRlZmF1bHQpLiAgCisgICAgICAgIFNob3VsZCB0aGUgQWN0aW9uU2VydmxldCByZWRpcmVjdCB0byB0aGUgcmVzb3VyY2UgaW5zdGVhZCBvZiBmb3J3YXJkPworICAgICAgICA8L2xpPgorCisgICAgPC91bD4KKyAgICAKKyAgICA8cD4KKyAgICA8Y29kZT48c3Ryb25nPiZsdDthY3Rpb24tbWFwcGluZ3MmZ3Q7PC9zdHJvbmc+PC9jb2RlPjxiciAvPgorICAgIFRoaXMgc2VjdGlvbiBjb250YWlucyB5b3VyIGFjdGlvbiBkZWZpbml0aW9ucy4gIAorICAgIFlvdSB1c2UgYW4gPGNvZGU+Jmx0O2FjdGlvbiZndDs8L2NvZGU+IGVsZW1lbnQgZm9yIGVhY2ggb2YgdGhlIG1hcHBpbmdzIAorICAgIHlvdSB3b3VsZCBsaWtlIHRvIGRlZmluZS4gIAorICAgIE1vc3QgYWN0aW9uIGVsZW1lbnRzIHdpbGwgZGVmaW5lIGF0IGxlYXN0IHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlczoKKyAgICA8L3A+CisKKyAgICA8dWw+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8Y29kZT5wYXRoPC9jb2RlPjogVGhlIGFwcGxpY2F0aW9uIGNvbnRleHQtcmVsYXRpdmUgcGF0aCB0byB0aGUgCisgICAgICAgIGFjdGlvbi4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxjb2RlPnR5cGU8L2NvZGU+OiBUaGUgZnVsbHkgcXVhbGlmaWVkIGphdmEgY2xhc3NuYW1lIG9mIHlvdXIgCisgICAgICAgIEFjdGlvbiBjbGFzcy4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxjb2RlPm5hbWU8L2NvZGU+OiBUaGUgbmFtZSBvZiB5b3VyIAorICAgICAgICA8Y29kZT4mbHQ7Zm9ybS1iZWFuJmd0OzwvY29kZT4gZWxlbWVudCB0byB1c2Ugd2l0aCB0aGlzIGFjdGlvbgorICAgICAgICA8L2xpPgorCisgICAgPC91bD4KKworICAgIDxwPk90aGVyIG9mdGVuLXVzZWQgYXR0cmlidXRlcyBpbmNsdWRlOjwvcD4KKworICAgIDx1bD4KKyAgICAKKyAgICAgICAgPGxpPgorICAgICAgICA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+OiBBIGdlbmVyYWwtcHVycG9zZSBhdHRyaWJ1dGUgb2Z0ZW4gdXNlZCBieSAKKyAgICAgICAgInN0YW5kYXJkIiBBY3Rpb25zIHRvIHBhc3MgYSByZXF1aXJlZCBwcm9wZXJ0eS4KKyAgICAgICAgPC9saT4KKyAgICAKKyAgICAgICAgPGxpPgorICAgICAgICA8Y29kZT5yb2xlczwvY29kZT46IEEgY29tbWEtZGVsaW1pdGVkIGxpc3Qgb2YgdGhlIHVzZXIgc2VjdXJpdHkgcm9sZXMgCisgICAgICAgIHRoYXQgY2FuIGFjY2VzcyB0aGlzIG1hcHBpbmcuCisgICAgICAgIDwvbGk+CisgICAgCisgICAgPC91bD4KKworICAgIDxwPgorICAgIEZvciBhIGNvbXBsZXRlIGRlc2NyaXB0aW9uIG9mIHRoZSBlbGVtZW50cyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlIAorICAgIDxjb2RlPmFjdGlvbjwvY29kZT4gZWxlbWVudCwgc2VlIHRoZQorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2R0ZHMvc3RydXRzLWNvbmZpZ18xXzEuZHRkIj4KKyAgICBTdHJ1dHMgQ29uZmlndXJhdGlvbiBEVEQ8L2E+IGFuZCB0aGUKKyAgICA8YSBocmVmPSIuLi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZyAKKyAgICBkb2N1bWVudGF0aW9uPC9hPi4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gbmFtZT0iNC44LjEgQWN0aW9uTWFwcGluZyBFeGFtcGxlIiBocmVmPSJhY3Rpb25fbWFwcGluZ19leGFtcGxlIj4KKworICAgIDxwPgorICAgIEhlcmUncyBhIG1hcHBpbmcgZW50cnkgYmFzZWQgb24gdGhlIE1haWxSZWFkZXIgZXhhbXBsZQorICAgIGFwcGxpY2F0aW9uLiBUaGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbiBub3cgdXNlcyBEeW5hQWN0aW9uRm9ybXMuCisgICAgQnV0IGluIHRoaXMgZXhhbXBsZSwgd2UnbGwgc2hvdyBhIGNvbnZlbnRpbmFsCisgICAgQWN0aW9uRm9ybSBpbnN0ZWFkLCB0byBpbGx1c3RyYXRlIHRoZSB1c3VhbCB3b3JrZmxvdy4KKyAgICBOb3RlIHRoYXQgdGhlIGVudHJpZXMgZm9yIGFsbCB0aGUgb3RoZXIgYWN0aW9ucyBhcmUgbGVmdCBvdXQ6CisgICAgPC9wPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWzxzdHJ1dHMtY29uZmlnPgorICAgIDxmb3JtLWJlYW5zPgorICAgICAgICA8Zm9ybS1iZWFuCisgICAgICAgICAgICBuYW1lPSJsb2dvbkZvcm0iCisgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAuZXhhbXBsZS5Mb2dvbkZvcm0iIC8+CisgICAgIDwvZm9ybS1iZWFucz4KKyAgICA8Z2xvYmFsLWZvcndhcmRzCisgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkIj4KKyAgICAgICAgPGZvcndhcmQgCisgICAgICAgICAgICBuYW1lPSJsb2dvbiIgCisgICAgICAgICAgICBwYXRoPSIvbG9nb24uanNwIgorICAgICAgICAgICAgcmVkaXJlY3Q9ImZhbHNlIiAvPgorICAgIDwvZ2xvYmFsLWZvcndhcmRzPgorICAgIDxhY3Rpb24tbWFwcGluZ3M+CisgICAgICAgIDxhY3Rpb24KKyAgICAgICAgICAgIHBhdGg9Ii9sb2dvbiIKKyAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC5leGFtcGxlLkxvZ29uQWN0aW9uIgorICAgICAgICAgICAgbmFtZT0ibG9nb25Gb3JtIgorICAgICAgICAgICAgc2NvcGU9InJlcXVlc3QiCisgICAgICAgICAgICBpbnB1dD0iL2xvZ29uLmpzcCIKKyAgICAgICAgICAgIHVua25vd249ImZhbHNlIgorICAgICAgICAgICAgdmFsaWRhdGU9InRydWUiIC8+CisgICAgPC9hY3Rpb24tbWFwcGluZ3M+Cis8L3N0cnV0cy1jb25maWc+CitdXT48L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICBGaXJzdCB0aGUgZm9ybSBiZWFuIGlzIGRlZmluZWQuICAKKyAgICBBIGJhc2ljIGJlYW4gb2YgY2xhc3MgIjxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC5leGFtcGxlLkxvZ29uRm9ybTwvY29kZT4iCisgICAgaXMgbWFwcGVkIHRvIHRoZSBsb2dpY2FsIG5hbWUgIjxjb2RlPmxvZ29uRm9ybTwvY29kZT4iLiAKKyAgICBUaGlzIG5hbWUgaXMgdXNlZCBhcyBhIHJlcXVlc3QgYXR0cmlidXRlIG5hbWUgZm9yIHRoZSBmb3JtCisgICAgYmVhbi4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGUgIjxjb2RlPmdsb2JhbC1mb3J3YXJkczwvY29kZT4iIHNlY3Rpb24gaXMgdXNlZCB0byBjcmVhdGUgbG9naWNhbCBuYW1lIAorICAgIG1hcHBpbmdzIGZvciBjb21tb25seSB1c2VkIHByZXNlbnRhdGlvbiBwYWdlcy4gIAorICAgIEVhY2ggb2YgdGhlc2UgZm9yd2FyZHMgaXMgYXZhaWxhYmxlIHRocm91Z2ggYSBjYWxsIHRvIHlvdXIgYWN0aW9uIG1hcHBpbmcgCisgICAgaW5zdGFuY2UsIGkuZS4gPGNvZGU+bWFwcGluZy5maW5kRm9yd2FyZCgibG9naWNhbE5hbWUiKTwvY29kZT4uCisgICAgPC9wPgorCisgICAgPHA+CisgICAgQXMgeW91IGNhbiBzZWUsIHRoaXMgbWFwcGluZyBtYXRjaGVzIHRoZSBwYXRoIDxjb2RlPi9sb2dvbjwvY29kZT4gCisgICAgKGFjdHVhbGx5LCBiZWNhdXNlIHRoZSBNYWlsUmVhZGVyIGV4YW1wbGUgYXBwbGljYXRpb24gdXNlcyBleHRlbnNpb24gCisgICAgbWFwcGluZywgdGhlIHJlcXVlc3QgVVJJIHlvdSBzcGVjaWZ5IGluIGEgSlNQIHBhZ2Ugd291bGQgZW5kIGluIAorICAgIDxjb2RlPi9sb2dvbi5kbzwvY29kZT4pLgorICAgIFdoZW4gYSByZXF1ZXN0IHRoYXQgbWF0Y2hlcyB0aGlzIHBhdGggaXMgcmVjZWl2ZWQsIGFuIGluc3RhbmNlIG9mIHRoZQorICAgIDxlbT5Mb2dvbkFjdGlvbjwvZW0+IGNsYXNzIHdpbGwgYmUgY3JlYXRlZCAodGhlIGZpcnN0IHRpbWUgb25seSkgYW5kIHVzZWQuCisgICAgVGhlIGNvbnRyb2xsZXIgc2VydmxldCB3aWxsIGxvb2sgZm9yIGEgYmVhbiBpbiByZXF1ZXN0IHNjb3BlIHVuZGVyIGtleQorICAgIDxjb2RlPmxvZ29uRm9ybTwvY29kZT4sIGNyZWF0aW5nIGFuZCBzYXZpbmcgYSBiZWFuIG9mIHRoZSBzcGVjaWZpZWQgY2xhc3MKKyAgICBpZiBuZWVkZWQuCisgICAgPC9wPgorICAgCisgICAgPHA+CisgICAgT3B0aW9uYWwgYnV0IHZlcnkgdXNlZnVsIGFyZSB0aGUgbG9jYWwgIjxjb2RlPmZvcndhcmQ8L2NvZGU+IiBlbGVtZW50cy4gCisgICAgSW4gdGhlIE1haWxSZWFkZXIgZXhhbXBsZSBhcHBsaWNhdGlvbiwgbWFueSBhY3Rpb25zIGluY2x1ZGUgYSBsb2NhbCAKKyAgICAic3VjY2VzcyIgYW5kL29yICJmYWlsdXJlIiBmb3J3YXJkIGFzIHBhcnQgb2YgYW4gYWN0aW9uIG1hcHBpbmcuCisgICAgPC9wPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWzwhLS0gRWRpdCBtYWlsIHN1YnNjcmlwdGlvbiAtLT4KKzxhY3Rpb24gICAgCisgICAgcGF0aD0iL2VkaXRTdWJzY3JpcHRpb24iCisgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLmV4YW1wbGUuRWRpdFN1YnNjcmlwdGlvbkFjdGlvbiIKKyAgICBuYW1lPSJzdWJzY3JpcHRpb25Gb3JtIgorICAgIHNjb3BlPSJyZXF1ZXN0IgorICAgIHZhbGlkYXRlPSJmYWxzZSI+CisgICAgPGZvcndhcmQgCisgICAgICAgIG5hbWU9ImZhaWx1cmUiIAorICAgICAgICBwYXRoPSIvbWFpbk1lbnUuanNwIi8+CisgICAgPGZvcndhcmQgCisgICAgICAgIG5hbWU9InN1Y2Nlc3MiIAorICAgICAgICBwYXRoPSIvc3Vic2NyaXB0aW9uLmpzcCIvPgorPC9hY3Rpb24+CitdXT48L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICBVc2luZyBqdXN0IHRoZXNlIHR3byBleHRyYSBwcm9wZXJ0aWVzLCB0aGUgQWN0aW9uIGNsYXNzZXMgYXJlIGFsbW9zdCAKKyAgICB0b3RhbGx5IGluZGVwZW5kZW50IG9mIHRoZSBhY3R1YWwgbmFtZXMgb2YgdGhlIHByZXNlbnRhdGlvbiBwYWdlcy4gCisgICAgVGhlIHBhZ2VzIGNhbiBiZSByZW5hbWVkIChmb3IgZXhhbXBsZSkgZHVyaW5nIGEgcmVkZXNpZ24sIHdpdGggbmVnbGlnaWJsZSAKKyAgICBpbXBhY3Qgb24gdGhlIEFjdGlvbiBjbGFzc2VzIHRoZW1zZWx2ZXMuCisgICAgSWYgdGhlIG5hbWVzIG9mIHRoZSAibmV4dCIgcGFnZXMgd2VyZSBoYXJkIGNvZGVkIGludG8gdGhlIEFjdGlvbiBjbGFzc2VzLCAKKyAgICBhbGwgb2YgdGhlc2UgY2xhc3NlcyB3b3VsZCBhbHNvIG5lZWQgdG8gYmUgbW9kaWZpZWQuIAorICAgIE9mIGNvdXJzZSwgeW91IGNhbiBkZWZpbmUgd2hhdGV2ZXIgbG9jYWwgPGNvZGU+Zm9yd2FyZDwvY29kZT4gcHJvcGVydGllcyAKKyAgICBtYWtlcyBzZW5zZSBmb3IgeW91ciBvd24gYXBwbGljYXRpb24uCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhlIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGUgaW5jbHVkZXMgc2V2ZXJhbCBvdGhlciBlbGVtZW50cyB0aGF0IHlvdSAKKyAgICBjYW4gdXNlIHRvIGN1c3RvbWl6ZSB5b3VyIGFwcGxpY2F0aW9uLiAKKyAgICBTZWUgIjxhIGhyZWY9ImNvbmZpZ3VyYXRpb24uaHRtbCI+Q29uZmlndXJpbmcgQXBwbGljYXRpb25zPC9hPiIgZm9yIGRldGFpbHMuCisgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IjQuOSBVc2luZyBBY3Rpb25NYXBwaW5ncyBmb3IgUGFnZXMiIGhyZWY9Im1vZHVsZV9jb25maWctdXNlX2FjdGlvbnMiPgorCisgICAgPHA+CisgICAgRnJvbnRpbmcgeW91ciBwYWdlcyB3aXRoIEFjdGlvbk1hcHBpbmdzIGlzIDxlbT5lc3NlbnRpYWw8L2VtPiB3aGVuIHVzaW5nIAorICAgIGFwcGxpY2F0aW9uIG1vZHVsZXMsIHNpbmNlIGRvaW5nIHNvIGlzIHRoZSBvbmx5IHdheSB5b3UgaW52b2x2ZSB0aGUgCisgICAgY29udHJvbGxlciBpbiB0aGUgcmVxdWVzdCAtLSBhbmQgeW91IHdhbnQgdG8hICAKKyAgICBUaGUgY29udHJvbGxlciBwdXRzIHRoZSBhcHBsaWNhdGlvbiBjb25maWd1cmF0aW9uIGluIHRoZSByZXF1ZXN0LAorICAgIHdoaWNoIG1ha2VzIGF2YWlsYWJsZSBhbGwgb2YgeW91ciBtb2R1bGUtc3BlY2lmaWMgY29uZmlndXJhdGlvbiBkYXRhIAorICAgIChpbmNsdWRpbmcgd2hpY2ggbWVzc2FnZSByZXNvdXJjZXMgeW91IGFyZSB1c2luZywgcmVxdWVzdC1wcm9jZXNzb3IsIAorICAgIGRhdGFzb3VyY2VzLCBhbmQgc28gZm9ydGgpLgorICAgIDwvcD4KKyAgICAKKyAgICA8cD4KKyAgICBUaGUgc2ltcGxlc3Qgd2F5IHRvIGRvIHRoaXMgaXMgdG8gdXNlIHRoZSA8Y29kZT5mb3J3YXJkPC9jb2RlPiBwcm9wZXJ0eSAKKyAgICBvZiB0aGUgQWN0aW9uTWFwcGluZzoKKyAgICA8L3A+CisgICAgCisgICAgPHByZT4mbHQ7YWN0aW9uIHBhdGg9Ii92aWV3IiBmb3J3YXJkPSIvdmlldy5qc3AiLz48L3ByZT4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSI0LjEwIFVzaW5nIFdpbGRjYXJkcyBpbiBBY3Rpb25NYXBwaW5ncyIgaHJlZj0iYWN0aW9uX21hcHBpbmdfd2lsZGNhcmRzIj4KKworICAgIDxwPgorICAgIEFzIGEgU3RydXRzIGFwcGxpY2F0aW9uIGdyb3dzIGluIHNpemUsIHNvIHdpbGwgdGhlIG51bWJlciBvZiBhY3Rpb24gCisgICAgbWFwcGluZ3MuICBXaWxkY2FyZHMgY2FuIGJlIHVzZWQgdG8gY29tYmluZSBzaW1pbGlhciBtYXBwaW5ncyBpbnRvIG9uZQorICAgIG1vcmUgZ2VuZXJpYyBtYXBwaW5nLiAgCisgICAgPC9wPgorICAgIDxwPgorICAgIFRoZSBiZXN0IHdheSB0byBleHBsYWluIHdpbGRjYXJkcyBpcyB0byBzaG93IGFuIGV4YW1wbGUgYW5kIHdhbGsgdGhyb3VnaCAKKyAgICBob3cgaXQgd29ya3MuICBUaGlzIGV4YW1wbGUgbW9kaWZpZXMgdGhlIHByZXZpb3VzIG1hcHBpbmcgaW4gdGhlIDxhIAorICAgIGhyZWY9IiNhY3Rpb25fbWFwcGluZ19leGFtcGxlIj5BY3Rpb25NYXBwaW5nIEV4YW1wbGU8L2E+IHNlY3Rpb24gdG8gdXNlCisgICAgd2lsZGNhcmRzIHRvIG1hdGNoIGFsbCBwYWdlcyB0aGF0IHN0YXJ0IHdpdGggPGNvZGU+L2VkaXQ8L2NvZGU+OgorICAgIDwvcD4gCisKKzxwcmU+PGNvZGU+PCFbQ0RBVEFbPCEtLSBHZW5lcmljIGVkaXQqIG1hcHBpbmcgLS0+Cis8YWN0aW9uICAgIAorICAgIHBhdGg9Ii9lZGl0KiIKKyAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAuZXhhbXBsZS5FZGl0ezF9QWN0aW9uIgorICAgIG5hbWU9InsxfUZvcm0iCisgICAgc2NvcGU9InJlcXVlc3QiCisgICAgdmFsaWRhdGU9ImZhbHNlIj4KKyAgICA8Zm9yd2FyZCAKKyAgICAgICAgbmFtZT0iZmFpbHVyZSIgCisgICAgICAgIHBhdGg9Ii9tYWluTWVudS5qc3AiLz4KKyAgICA8Zm9yd2FyZCAKKyAgICAgICAgbmFtZT0ic3VjY2VzcyIgCisgICAgICAgIHBhdGg9Ii97MX0uanNwIi8+Cis8L2FjdGlvbj4KK11dPjwvY29kZT48L3ByZT4KKworICAgIDxwPgorICAgIFRoZSAiPGNvZGU+KjwvY29kZT4iIGluIHRoZSBwYXRoIGF0dHJpYnV0ZSBhbGxvd3MgdGhlIG1hcHBpbmcgdG8gbWF0Y2ggdGhlIAorICAgIHJlcXVlc3QgVVJJcyA8Y29kZT4vZWRpdFN1YnNjcmlwdGlvbjwvY29kZT4sIDxjb2RlPmVkaXRSZWdpc3RyYXRpb248L2NvZGU+LAorICAgIG9yIGFueSBvdGhlciBVUkkgdGhhdCBzdGFydHMgd2l0aCAKKyAgICA8Y29kZT4vZWRpdDwvY29kZT4sIGhvd2V2ZXIgPGNvZGU+L2VkaXRTdWJzY3JpcHRpb24vYWRkPC9jb2RlPiB3b3VsZCBub3QgYmUgCisgICAgbWF0Y2hlZC4gIFRoZSBwYXJ0IG9mIAorICAgIHRoZSBVUkkgbWF0Y2hlZCBieSB0aGUgd2lsZGNhcmQgd2lsbCB0aGVuIGJlIHN1YnN0aXR1dGVkIGludG8gdmFyaW91cyAKKyAgICBhdHRyaWJ1dGVzIG9mIHRoZSBhY3Rpb24gbWFwcGluZyBhbmQgaXRzIGFjdGlvbiBmb3J3YXJkcyByZXBsYWNpbmcgCisgICAgPGNvZGU+ezF9PC9jb2RlPi4KKyAgICBGb3IgdGhlIHJlc3Qgb2YgdGhlIHJlcXVlc3QsIFN0cnV0cyB3aWxsIHNlZSB0aGUgYWN0aW9uIG1hcHBpbmcgYW5kIGl0cyAKKyAgICBhY3Rpb24gZm9yd2FyZHMgY29udGFpbmluZyB0aGUgbmV3IHZhbHVlcy4KKyAgICA8L3A+CisgICAgCisgICAgPHA+CisgICAgV2lsZGNhcmQgcGF0dGVybnMgY2FuIGNvbnRhaW4gb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBzcGVjaWFsIHRva2VuczoKKyAgICA8L3A+CisKKyAgICA8dGFibGU+CisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgIDxjb2RlPio8L2NvZGU+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgTWF0Y2hlcyB6ZXJvIG9yIG1vcmUgY2hhcmFjdGVycyBleGNsdWRpbmcgdGhlIAorICAgICAgICAgICAgc2xhc2ggKCcvJykgY2hhcmFjdGVyLgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4gICAgICAgPHRyPgorICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgPGNvZGU+Kio8L2NvZGU+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgTWF0Y2hlcyB6ZXJvIG9yIG1vcmUgY2hhcmFjdGVycyBpbmNsdWRpbmcgdGhlIAorICAgICAgICAgICAgc2xhc2ggKCcvJykgY2hhcmFjdGVyLgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4gICAgICAgPHRyPgorICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgPGNvZGU+XGNoYXJhY3RlcjwvY29kZT4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICBUaGUgYmFja3NsYXNoIGNoYXJhY3RlciBpcyB1c2VkIGFzIGFuIGVzY2FwZQorICAgICAgICAgICAgc2VxdWVuY2UuICBUaHVzIDxjb2RlPlwqPC9jb2RlPiBtYXRjaGVzIHRoZSBjaGFyYWN0ZXIgYXN0ZXJpc2sgCisgICAgICAgICAgICAoJyonKSwgYW5kIDxjb2RlPlxcPC9jb2RlPgorICAgICAgICAgICAgbWF0Y2hlcyB0aGUgY2hhcmFjdGVyIGJhY2tzbGFzaCAoJ1wnKS4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgPC90YWJsZT4gICAgCisKKyAgICA8cD4KKyAgICBJbiB0aGUgYWN0aW9uIG1hcHBpbmcgYW5kIGFjdGlvbiBmb3J3YXJkcywgdGhlIHdpbGRjYXJkLW1hdGNoZWQgdmFsdWVzIGNhbgorICAgIGJlIGFjY2Vzc2VkIHdpdGggdGhlIHRva2VuIDxjb2RlPntOfTwvY29kZT4gd2hlcmUgPGNvZGU+TjwvY29kZT4KKyAgICBpcyBhIG51bWJlciBmcm9tIDEgdG8gOSBpbmRpY2F0aW5nCisgICAgd2hpY2ggd2lsZGNhcmQtbWF0Y2hlZCB2YWx1ZSB0byBzdWJzdGl0dXRlLiAgVGhlIHdob2xlIHJlcXVlc3QgVVJJIGNhbiBiZQorICAgIGFjY2Vzc2VkIHdpdGggdGhlIDxjb2RlPnswfTwvY29kZT4gdG9rZW4uCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhlIGFjdGlvbiBtYXBwaW5nIGF0dHJpYnV0ZXMgdGhhdCB3aWxsIGFjY2VwdCB3aWxkY2FyZC1tYXRjaGVkIHN0cmluZ3MKKyAgICBhcmU6CisgICAgPC9wPgorCisgICAgPHVsPgorICAgICAgICA8bGk+PGNvZGU+dHlwZTwvY29kZT48L2xpPgorICAgICAgICA8bGk+PGNvZGU+bmFtZTwvY29kZT48L2xpPgorICAgICAgICA8bGk+PGNvZGU+cm9sZXM8L2NvZGU+PC9saT4KKyAgICAgICAgPGxpPjxjb2RlPnBhcmFtZXRlcjwvY29kZT48L2xpPgorICAgICAgICA8bGk+PGNvZGU+YXR0cmlidXRlPC9jb2RlPjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5mb3J3YXJkPC9jb2RlPjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5pbmNsdWRlPC9jb2RlPjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5pbnB1dDwvY29kZT48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD4KKyAgICBUaGUgYWN0aW9uIGZvcndhcmQgYXR0cmlidXRlcyB0aGF0IHdpbGwgYWNjZXB0IHdpbGRjYXJkLW1hdGNoZWQgc3RyaW5ncworICAgIGFyZToKKyAgICA8L3A+CisKKyAgICA8dWw+CisgICAgICAgIDxsaT48Y29kZT5wYXRoPC9jb2RlPjwvbGk+CisgICAgPC91bD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSI0LjExIENvbW1vbnMgTG9nZ2luZyBJbnRlcmZhY2UiIGhyZWY9ImxvZ2dpbmciPgorICAgIDxwPgorICAgIFN0cnV0cyBkb2Vzbid0IGNvbmZpZ3VyZSBsb2dnaW5nIGl0c2VsZiAtLSBpdCdzIGFsbCBkb25lIGJ5CisgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zLyI+Y29tbW9ucy1sb2dnaW5nPC9hPiAKKyAgICB1bmRlciB0aGUgY292ZXJzLiAKKyAgICBUaGUgZGVmYXVsdCBhbGdvcml0aG0gaXMgYSBzZWFyY2g6CisgICAgPC9wPgorICAgIAorICAgIDx1bD4KKyAgICAKKyAgICAgICAgPGxpPgorICAgICAgICBJZiBMb2c0SiBpcyB0aGVyZSwgdXNlIGl0LgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgSWYgSkRLIDEuNCBpcyB0aGVyZSwgdXNlIGl0LgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgT3RoZXJ3aXNlLCB1c2UgU2ltcGxlTG9nLgorICAgICAgICA8L2xpPgorICAgIAorICAgIDwvdWw+CisgICAgCisgICAgPHA+CisgICAgVGhlIGNvbW1vbnMtbG9nZ2luZyBpbnRlcmZhY2UgaXMgYW4gPGVtPnVsdHJhLXRoaW48L2VtPiBicmlkZ2UgdG8gbWFueSAKKyAgICBkaWZmZXJlbnQgbG9nZ2luZyBpbXBsZW1lbnRhdGlvbnMuICAKKyAgICBUaGUgaW50ZW50IGlzIHRvIHJlbW92ZSBjb21waWxlLSBhbmQgcnVuLXRpbWUgZGVwZW5kZW5jaWVzIG9uIGFueSAKKyAgICBzaW5nbGUgbG9nZ2luZyBpbXBsZW1lbnRhdGlvbi4gIAorICAgIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50bHktc3VwcG9ydGVkIGltcGxlbWVudGF0aW9ucywgCisgICAgcGxlYXNlIHJlZmVyIHRvIHRoZQorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9sb2dnaW5nL2FwaS9pbmRleC5odG1sIj4KKyAgICB0aGUgZGVzY3JpcHRpb24gZm9yIHRoZSA8Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZzwvY29kZT4gCisgICAgcGFja2FnZTwvYT4uCisgICAgPC9wPgorICAgIAorICAgIDxwPgorICAgIEJlY2F1c2UgU3RydXRzIHVzZXMgY29tbW9ucy1sb2dnaW5nIGFuZCwgdGhlcmVmb3JlLCBpbmNsdWRlcyB0aGUgbmVjZXNzYXJ5IAorICAgIEpBUiBmaWxlcyBmb3IgPHN0cm9uZz55b3U8L3N0cm9uZz4gdG8gdXNlIGNvbW1vbnMtbG9nZ2luZywgeW91J3ZlIHByb2JhYmx5IGhhZCB0aGUgCisgICAgb2NjYXNpb25hbCBmbGVldGluZyB0aG91Z2h0LCA8ZW0+IlNob3VsZCBJIHVzZQorICAgIGNvbW1vbnMtbG9nZ2luZz8iPC9lbT4gCisgICAgVGhlIGFuc3dlciAoc3VycHJpc2UhKSBkZXBlbmRzIG9uIHRoZSByZXF1aXJlbWVudHMgZm9yIHlvdXIgcGFydGljdWxhciAKKyAgICBwcm9qZWN0LiAKKyAgICBJZiBvbmUgb2YgeW91ciByZXF1aXJlbWVudHMgaXMgdGhlIGFiaWxpdHkgdG8gZWFzaWx5IGNoYW5nZSBsb2dnaW5nIAorICAgIGltcGxlbWVudGF0aW9ucyB3aXRoIHplcm8gaW1wYWN0IG9uIHlvdXIgYXBwbGljYXRpb24sIHRoZW4gY29tbW9ucy1sb2dnaW5nIAorICAgIGlzIGEgdmVyeSBnb29kIG9wdGlvbi4KKyAgICA8L3A+CisgICAgCisgICAgPHA+CisgICAgPGVtPiJHcmVhdCEgIFdoYXQgZG8gSSBkbyB0byBnZXQgc3RhcnRlZCB1c2luZyBjb21tb25zLWxvZ2dpbmcgaW4gbXkgb3duIAorICAgIGNvZGU/IjwvZW0+CisgICAgPC9wPgorICAgIAorICAgIDxwPgorICAgIFVzaW5nIGNvbW1vbnMtbG9nZ2luZyBpbiB5b3VyIG93biBjb2RlIGlzIHZlcnkgc2ltcGxlIC0gYWxsIHlvdSBuZWVkIGFyZSAKKyAgICB0d28gaW1wb3J0cyBhbmQgYSBkZWNsYXJhdGlvbiBmb3IgYSBsb2dnZXIuCisgICAgTGV0J3MgdGFrZSBhIGxvb2s6CisgICAgPC9wPgorICAgIAorPHByZT48Y29kZT5wYWNrYWdlIGNvbS5mb287CisvLyAuLi4KK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKKy4uLgorcHVibGljIGNsYXNzIEZvbyB7CisgICAgLy8gLi4uCisgICAgcHJpdmF0ZSBzdGF0aWMgTG9nIGxvZyA9IExvZ0ZhY3RvcnkuZ2V0TG9nKEZvby5jbGFzcyk7CisgICAgLy8gLi4uCisgICAgcHVibGljIHZvaWQgc2V0QmFyKEJhciBiYXIpIHsKKyAgICAgICAgaWYgKGxvZy5pc1RyYWNlRW5hYmxlZCgpKSB7IAorICAgICAgICAgICAgbG9nLnRyYWNlKCJTZXR0aW5nIGJhciB0byAiICsgYmFyKTsKKyAgICAgICAgfQorICAgICAgICB0aGlzLmJhciA9IGJhcjsKKyAgICB9CisvLyAuLi4KK30KKzwvY29kZT48L3ByZT4KKyAgICAKKyAgICA8cD4KKyAgICBUaGUgZ2VuZXJhbCBpZGVhIGlzIHRvIGluc3RhbnRpYXRlIGEgc2luZ2xlIGxvZ2dlciBwZXIgY2xhc3MgYW5kIHRvCisgICAgdXNlIGEgbmFtZSBmb3IgdGhlIGxvZ2dlciB3aGljaCByZWZsZWN0cyB3aGVyZSBpdCdzIGJlaW5nIHVzZWQuICBUaGUKKyAgICBleGFtcGxlIGlzIGNvbnN0cnVjdGVkIHdpdGggdGhlIGNsYXNzIGl0c2VsZi4gIFRoaXMgZ2l2ZXMgdGhlCisgICAgbG9nZ2VyIHRoZSBuYW1lIG9mIGNvbS5mb28uRm9vLiAgRG9pbmcgdGhpbmdzIHRoaXMgd2F5IGxldHMgeW91CisgICAgZWFzaWx5IHNlZSB3aGVyZSB0aGUgb3V0cHV0IGlzIGNvbWluZyBmcm9tLCBzbyB5b3UgY2FuIHF1aWNrbHkKKyAgICBwaW4tcG9pbnQgcHJvYmxlbSBhcmVhcy4gIEluIGFkZGl0aW9uLCB5b3UgYXJlIGFibGUgdG8gZW5hYmxlL2Rpc2FibGUKKyAgICBsb2dnaW5nIGluIGEgdmVyeSBmaW5lLWdyYWluZWQgd2F5LgorICAgIDwvcD4KKworICAgIDxwPgorICAgIEZvciBleGFtcGxlcyBvZiB1c2luZyBsb2dnaW5nIGluIFN0cnV0cyBjbGFzc2VzLCBzZWUgdGhlCisgICAgQWN0aW9uIGNsYXNzZXMgaW4gdGhlIFN0cnV0cyBNYWlsUmVhZGVyIGV4YW1wbGUgYXBwbGljYXRpb24uCisgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uPgorICAgIDxwIGNsYXNzPSJyaWdodCI+CisgICAgTmV4dDogPGEgaHJlZj0iLi9jb25maWd1cmF0aW9uLmh0bWwiPkNvbmZpZ3VyaW5nIEFwcGxpY2F0aW9uczwvYT4KKyAgICA8L3A+Cis8L3NlY3Rpb24+CisKKzwvYm9keT4KKzwvZG9jdW1lbnQ+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvYnVpbGRpbmdfbW9kZWwueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2J1aWxkaW5nX21vZGVsLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTAwODJjCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2J1aWxkaW5nX21vZGVsLnhtbApAQCAtMCwwICsxLDI3OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+CisKKzwhLS0KKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSA3OAorLS0+CisKKzxkb2N1bWVudCB1cmw9ImJ1aWxkaW5nX21vZGVsLmh0bWwiPgorCis8cHJvcGVydGllcz4KKyAgICA8dGl0bGU+VGhlIFN0cnV0cyBVc2VyJ3MgR3VpZGUgLSBCdWlsZGluZyBNb2RlbCBDb21wb25lbnRzPC90aXRsZT4KKzwvcHJvcGVydGllcz4KKworPGJvZHk+Cis8c2VjdGlvbiBuYW1lPSIyLiBCdWlsZGluZyBNb2RlbCBDb21wb25lbnRzIiBocmVmPSJidWlsZGluZ19tb2RlbCIvPgorCis8c2VjdGlvbiBuYW1lPSIyLjEgT3ZlcnZpZXciIGhyZWY9Im92ZXJ2aWV3Ij4KKworICAgIDxwPgorICAgIE1hbnkgcmVxdWlyZW1lbnRzIGRvY3VtZW50cyB1c2VkIGZvciBidWlsZGluZyB3ZWIgYXBwbGljYXRpb25zIGZvY3VzIG9uIAorICAgIHRoZSA8ZW0+VmlldzwvZW0+LiAgCisgICAgSG93ZXZlciwgeW91IHNob3VsZCBlbnN1cmUgdGhhdCB0aGUgcHJvY2Vzc2luZyByZXF1aXJlZCBmb3IgZWFjaCBzdWJtaXR0ZWQgCisgICAgcmVxdWVzdCBpcyBhbHNvIGNsZWFybHkgZGVmaW5lZCBmcm9tIHRoZSA8ZW0+TW9kZWwnczwvZW0+IHBlcnNwZWN0aXZlLiAgCisgICAgSW4gZ2VuZXJhbCwgdGhlIGRldmVsb3BlciBvZiB0aGUgPGVtPk1vZGVsPC9lbT4gY29tcG9uZW50cyB3aWxsIGJlIGZvY3VzaW5nIAorICAgIG9uIHRoZSBjcmVhdGlvbiBvZiBKYXZhQmVhbnMgY2xhc3NlcyB0aGF0IHN1cHBvcnQgYWxsIG9mIHRoZSBmdW5jdGlvbmFsIAorICAgIHJlcXVpcmVtZW50cy4gIAorICAgIFRoZSBwcmVjaXNlIG5hdHVyZSBvZiB0aGUgYmVhbnMgcmVxdWlyZWQgYnkgYSBwYXJ0aWN1bGFyIGFwcGxpY2F0aW9uIHdpbGwgCisgICAgdmFyeSB3aWRlbHkgZGVwZW5kaW5nIG9uIHRob3NlIHJlcXVpcmVtZW50cywgYnV0IHRoZXkgY2FuIGdlbmVyYWxseSBiZQorICAgIGNsYXNzaWZpZWQgaW50byBzZXZlcmFsIGNhdGVnb3JpZXMgZGlzY3Vzc2VkIGJlbG93LiAgCisgICAgSG93ZXZlciwgYSBicmllZiByZXZpZXcgb2YgdGhlIGNvbmNlcHQgb2YgInNjb3BlIiBhcyBpdCByZWxhdGVzIHRvIGJlYW5zIAorICAgIGFuZCBKU1AgaXMgdXNlZnVsIGZpcnN0LgorICAgIDwvcD4KKyAgICAKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gbmFtZT0iMi4yIEphdmFCZWFucyBhbmQgU2NvcGUiIGhyZWY9ImphdmFiZWFucyI+CisKKyAgICA8cD4KKyAgICBXaXRoaW4gYSB3ZWItYmFzZWQgYXBwbGljYXRpb24sIEphdmFCZWFucyBjYW4gYmUgc3RvcmVkIGluIChhbmQgYWNjZXNzZWQKKyAgICBmcm9tKSBhIG51bWJlciBvZiBkaWZmZXJlbnQgY29sbGVjdGlvbnMgb2YgImF0dHJpYnV0ZXMiLiAgCisgICAgRWFjaCBjb2xsZWN0aW9uIGhhcyBkaWZmZXJlbnQgcnVsZXMgZm9yIHRoZSBsaWZldGltZSBvZiB0aGF0IGNvbGxlY3Rpb24sIAorICAgIGFuZCB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYmVhbnMgc3RvcmVkIHRoZXJlLiAgCisgICAgVG9nZXRoZXIsIHRoZSBydWxlcyBkZWZpbmluZyBsaWZldGltZSBhbmQgdmlzaWJpbGl0eSBhcmUgY2FsbGVkIHRoZSAKKyAgICA8ZW0+c2NvcGU8L2VtPiBvZiB0aG9zZSBiZWFucy4gIAorICAgIFRoZSBKYXZhU2VydmVyIFBhZ2VzIChKU1ApIFNwZWNpZmljYXRpb24gZGVmaW5lcyBzY29wZSBjaG9pY2VzIHVzaW5nIAorICAgIHRoZSBmb2xsb3dpbmcgdGVybXMgKHdpdGggdGhlIGVxdWl2YWxlbnQgc2VydmxldCBBUEkgY29uY2VwdCBkZWZpbmVkIGluIAorICAgIHBhcmVudGhlc2VzKToKKyAgICA8L3A+CisKKyAgICA8dWw+CisgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5wYWdlPC9zdHJvbmc+IC0gQmVhbnMgdGhhdCBhcmUgdmlzaWJsZSB3aXRoaW4gYSBzaW5nbGUgSlNQIHBhZ2UsCisgICAgICAgIGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGN1cnJlbnQgcmVxdWVzdC4gIAorICAgICAgICAoTG9jYWwgdmFyaWFibGVzIG9mIHRoZSA8Y29kZT5zZXJ2aWNlPC9jb2RlPiBtZXRob2QpCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8c3Ryb25nPnJlcXVlc3Q8L3N0cm9uZz4gLSBCZWFucyB0aGF0IGFyZSB2aXNpYmxlIHdpdGhpbiBhIHNpbmdsZSBKU1AgcGFnZSwKKyAgICAgICAgYXMgd2VsbCBhcyB0byBhbnkgcGFnZSBvciBzZXJ2bGV0IHRoYXQgaXMgaW5jbHVkZWQgaW4gdGhpcyBwYWdlLAorICAgICAgICBvciBmb3J3YXJkZWQgdG8gYnkgdGhpcyBwYWdlLgorICAgICAgICAoUmVxdWVzdCBhdHRyaWJ1dGVzKQorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5zZXNzaW9uPC9zdHJvbmc+IC0gQmVhbnMgdGhhdCBhcmUgdmlzaWJsZSB0byBhbGwgSlNQIHBhZ2VzIGFuZAorICAgICAgICBzZXJ2bGV0cyB0aGF0IHBhcnRpY2lwYXRlIGluIGEgcGFydGljdWxhciB1c2VyIHNlc3Npb24sIGFjcm9zcyBvbmUKKyAgICAgICAgb3IgbW9yZSByZXF1ZXN0cy4KKyAgICAgICAgKFNlc3Npb24gYXR0cmlidXRlcykKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxzdHJvbmc+YXBwbGljYXRpb248L3N0cm9uZz4gLSBCZWFucyB0aGF0IGFyZSB2aXNpYmxlIHRvIGFsbCBKU1AgcGFnZXMgYW5kCisgICAgICAgIHNlcnZsZXRzIHRoYXQgYXJlIHBhcnQgb2YgYSB3ZWIgYXBwbGljYXRpb24uICAKKyAgICAgICAgKFNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzKQorICAgICAgICA8L2xpPgorICAgIAorICAgIDwvdWw+CisKKyAgICA8cD4KKyAgICBJdCBpcyBpbXBvcnRhbnQgdG8gcmVtZW1iZXIgdGhhdCBKU1AgcGFnZXMgYW5kIHNlcnZsZXRzIGluIHRoZSBzYW1lCisgICAgd2ViIGFwcGxpY2F0aW9uIHNoYXJlIHRoZSBzYW1lIHNldHMgb2YgYmVhbiBjb2xsZWN0aW9ucy4gIAorICAgIEZvciBleGFtcGxlLCBhIGJlYW4gc3RvcmVkIGFzIGEgcmVxdWVzdCBhdHRyaWJ1dGUgaW4gYSBzZXJ2bGV0IGxpa2UgdGhpczoKKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICA8Y29kZT5NeUNhcnQgbXljYXJ0ID0gbmV3IE15Q2FydCguLi4pOzxiciAvPgorICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKCJjYXJ0IiwgbXljYXJ0KTsKKyAgICA8L2NvZGU+CisgICAgPC9wPgorCisgICAgPHA+CisgICAgaXMgaW1tZWRpYXRlbHkgdmlzaWJsZSB0byBhIEpTUCBwYWdlIHdoaWNoIHRoaXMgc2VydmxldCBmb3J3YXJkcyB0bywKKyAgICB1c2luZyBhIHN0YW5kYXJkIGFjdGlvbiB0YWcgbGlrZSB0aGlzOgorICAgIDwvcD4KKworICAgIDxwPgorICAgIDxjb2RlPiZsdDtqc3A6dXNlQmVhbiBpZD0iY2FydCIgc2NvcGU9InJlcXVlc3QiPGJyIC8+CisgICAgY2xhc3M9ImNvbS5teWNvbXBhbnkuTXlBcHAuTXlDYXJ0Ii8mZ3Q7CisgICAgPC9jb2RlPgorICAgIDwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSIyLjMgQWN0aW9uRm9ybSBCZWFucyIgaHJlZj0iYWN0aW9uZm9ybSI+CisKKyAgICAKKyAgICA8c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFdoaWxlIEFjdGlvbkZvcm0gYmVhbnMgb2Z0ZW4gaGF2ZSBwcm9wZXJ0aWVzIHRoYXQgCisgICAgY29ycmVzcG9uZCB0byBwcm9wZXJ0aWVzIGluIHlvdXIgTW9kZWwgYmVhbnMsIHRoZSBmb3JtIGJlYW5zIHRoZW1zZWx2ZXMgCisgICAgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSBDb250cm9sbGVyIGNvbXBvbmVudC4gCisgICAgQXMgc3VjaCwgdGhleSBhcmUgYWJsZSB0byB0cmFuc2ZlciBkYXRhIGJldHdlZW4gdGhlIE1vZGVsIGFuZCBWaWV3IGxheWVycy4KKyAgICAKKworICAgIDxwPgorICAgIFRoZSBTdHJ1dHMgZnJhbWV3b3JrIGdlbmVyYWxseSBhc3N1bWVzIHRoYXQgeW91IGhhdmUgZGVmaW5lZCBhbgorICAgIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4gKHRoYXQgaXMsIGEgSmF2YSBjbGFzcyBleHRlbmRpbmcgdGhlCisgICAgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gY2xhc3MpIGZvciB0aGUgaW5wdXQgZm9ybXMgaW4geW91cgorICAgIGFwcGxpY2F0aW9uLiAKKyAgICA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBiZWFucyBhcmUgc29tZXRpbWVzIGp1c3QgY2FsbGVkICJmb3JtIGJlYW5zIi4gCisgICAgVGhlc2UgbWF5IGJlIGZpbmVseS1ncmFpbmVkIG9iamVjdHMsIHNvIHRoYXQgdGhlcmUgaXMgb25lCisgICAgYmVhbiBmb3IgZWFjaCBmb3JtLCBvciBjb2Fyc2VseS1ncmFpbmVkIHNvIHRoYXQgb25lIGJlYW4gc2VydmVzCisgICAgc2V2ZXJhbCBmb3Jtcywgb3IgZXZlbiBhbiBlbnRpcmUgYXBwbGljYXRpb24uCisgICAgPC9wPgorCisgICAgPHA+CisgICAgSWYgeW91IGRlY2xhcmUgc3VjaCBiZWFucyBpbiB5b3VyIFN0cnV0cworICAgIGNvbmZpZ3VyYXRpb24gZmlsZSAoc2VlICI8YSBocmVmPSJidWlsZGluZ19jb250cm9sbGVyLmh0bWwjY29uZmlnIj4KKyAgICBCdWlsZGluZyB0aGUgQ29udHJvbGxlciBDb21wb25lbnRzPC9hPiIpLCB0aGUgU3RydXRzICBjb250cm9sbGVyIHNlcnZsZXQKKyAgICB3aWxsIGF1dG9tYXRpY2FsbHkgcGVyZm9ybSB0aGUgZm9sbG93aW5nIHNlcnZpY2VzIGZvciB5b3UsIGJlZm9yZQorICAgIGludm9raW5nIHRoZSBhcHByb3ByaWF0ZSA8Y29kZT5BY3Rpb248L2NvZGU+IG1ldGhvZDoKKyAgICA8L3A+CisKKyAgICA8dWw+CisgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgQ2hlY2sgZm9yIGFuIGluc3RhbmNlIG9mIGEgYmVhbiBvZiB0aGUgYXBwcm9wcmlhdGUgY2xhc3MsIHVuZGVyIHRoZSBhcHByb3ByaWF0ZSBrZXksCisgICAgICAgIGluIHRoZSBhcHByb3ByaWF0ZSBzY29wZSAocmVxdWVzdCBvciBzZXNzaW9uKS4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIElmIHRoZXJlIGlzIG5vIHN1Y2ggYmVhbiBpbnN0YW5jZSBhdmFpbGFibGUsIGEgbmV3IG9uZSBpcworICAgICAgICBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYW5kIGFkZGVkIHRvIHRoZSBhcHByb3ByaWF0ZSBzY29wZSAocmVxdWVzdCBvciBzZXNzaW9uKS4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIEZvciBldmVyeSByZXF1ZXN0IHBhcmFtZXRlciB3aG9zZSBuYW1lIGNvcnJlc3BvbmRzIHRvIHRoZSBuYW1lCisgICAgICAgIG9mIGEgcHJvcGVydHkgaW4gdGhlIGJlYW4sIHRoZSBjb3JyZXNwb25kaW5nIHNldHRlciBtZXRob2Qgd2lsbAorICAgICAgICBiZSBjYWxsZWQuICBUaGlzIG9wZXJhdGVzIGluIGEgbWFubmVyIHNpbWlsYXIgdG8gdGhlIHN0YW5kYXJkCisgICAgICAgIEpTUCBhY3Rpb24gPGNvZGU+Jmx0O2pzcDpzZXRQcm9wZXJ0eSZndDs8L2NvZGU+IHdoZW4geW91IHVzZSB0aGUKKyAgICAgICAgYXN0ZXJpc2sgd2lsZGNhcmQgdG8gc2VsZWN0IGFsbCBwcm9wZXJ0aWVzLgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgVGhlIHVwZGF0ZWQgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gYmVhbiB3aWxsIGJlIHBhc3NlZCB0byB0aGUKKyAgICAgICAgPGNvZGU+ZXhlY3V0ZTwvY29kZT4gbWV0aG9kIG9mIGFuIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MKKyAgICAgICAgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLkFjdGlvbjwvY29kZT5dLCBzbyB0aGF0IHRoZSB2YWx1ZXMgY2FuCisgICAgICAgIGJlIG1hZGUgYXZhaWxhYmxlIHRvIHlvdXIgc3lzdGVtIHN0YXRlIGFuZCBidXNpbmVzcyBsb2dpYyBiZWFucy4KKyAgICAgICAgPC9saT4KKyAgICAKKyAgICA8L3VsPgorCisgICAgPHA+CisgICAgRm9yIG1vcmUgYWJvdXQgY29kaW5nIDxjb2RlPkFjdGlvbnM8L2NvZGU+IGFuZCA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPgorICAgIGJlYW5zLCBzZWUgdGhlICI8YSBocmVmPSJidWlsZGluZ19jb250cm9sbGVyLmh0bWwiPkJ1aWxkaW5nCisgICAgQ29udHJvbGxlciBDb21wb25lbnRzPC9hPiIgY2hhcHRlci4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBZb3Ugc2hvdWxkIG5vdGUgdGhhdCBhICJmb3JtIiwgaW4gdGhlIHNlbnNlIGRpc2N1c3NlZCBoZXJlLCBkb2VzIG5vdAorICAgIG5lY2Vzc2FyaWx5IGNvcnJlc3BvbmQgdG8gYSBzaW5nbGUgSlNQIHBhZ2UgaW4gdGhlIHVzZXIgaW50ZXJmYWNlLiAgCisgICAgSXQgaXMgY29tbW9uIGluIG1hbnkgYXBwbGljYXRpb25zIHRvIGhhdmUgYSAiZm9ybSIgKGZyb20gdGhlIHVzZXIncyAKKyAgICBwZXJzcGVjdGl2ZSkgdGhhdCBleHRlbmRzIG92ZXIgbXVsdGlwbGUgcGFnZXMuIAorICAgIFRoaW5rLCBmb3IgZXhhbXBsZSwgb2YgdGhlIHdpemFyZCBzdHlsZSB1c2VyIGludGVyZmFjZSB0aGF0IGlzIGNvbW1vbmx5IAorICAgIHVzZWQgd2hlbiBpbnN0YWxsaW5nIG5ldyBhcHBsaWNhdGlvbnMuICAKKyAgICBTdHJ1dHMgZW5jb3VyYWdlcyB5b3UgdG8gZGVmaW5lIGEgc2luZ2xlIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4gdGhhdCAKKyAgICBjb250YWlucyBwcm9wZXJ0aWVzIGZvciBhbGwgb2YgdGhlIGZpZWxkcywgbm8gbWF0dGVyIHdoaWNoIHBhZ2UgdGhlIGZpZWxkIAorICAgIGlzIGFjdHVhbGx5IGRpc3BsYXllZCBvbi4gCisgICAgTGlrZXdpc2UsIHRoZSB2YXJpb3VzIHBhZ2VzIG9mIHRoZSBzYW1lIGZvcm0gc2hvdWxkIGFsbCBiZSBzdWJtaXR0ZWQgdG8gCisgICAgdGhlIHNhbWUgQWN0aW9uIENsYXNzLiAKKyAgICBJZiB5b3UgZm9sbG93IHRoZXNlIHN1Z2dlc3Rpb25zLCB0aGUgcGFnZSBkZXNpZ25lcnMgY2FuIHJlYXJyYW5nZSB0aGUgCisgICAgZmllbGRzIGFtb25nIHRoZSB2YXJpb3VzIHBhZ2VzLCBvZnRlbiB3aXRob3V0IHJlcXVpcmluZyBjaGFuZ2VzIHRvIHRoZSAKKyAgICBwcm9jZXNzaW5nIGxvZ2ljLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFNtYWxsZXIgYXBwbGljYXRpb25zIG1heSBvbmx5IG5lZWQgYSBzaW5nbGUgQWN0aW9uRm9ybSB0byBzZXJ2aWNlIGFsbCBvZgorICAgIGl0cyBpbnB1dCBmb3Jtcy4gCisgICAgT3RoZXJzIGFwcGxpY2F0aW9ucyBtaWdodCB1c2UgYSBzaW5nbGUgQWN0aW9uRm9ybSBmb3IgZWFjaCBtYWpvciBzdWJzeXN0ZW0gCisgICAgb2YgdGhlIGFwcGxpY2F0aW9uLiAKKyAgICBTb21lIHRlYW1zIG1pZ2h0IHByZWZlciB0byBoYXZlIGEgc2VwYXJhdGUgQWN0aW9uRm9ybSBjbGFzcyBmb3IgZWFjaCAKKyAgICBkaXN0aW5jdCBpbnB1dCBmb3JtIG9yIHdvcmtmbG93LiAKKyAgICBIb3cgbWFueSBvciBob3cgZmV3IEFjdGlvbkZvcm1zIHRvIHVzZSBpcyBlbnRpcmVseSB1cCB0byB5b3UuIAorICAgIFRoZSBmcmFtZXdvcmsgZG9lc24ndCBjYXJlLgorICAgIDwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSIyLjQgU3lzdGVtIFN0YXRlIEJlYW5zIiBocmVmPSJzeXN0ZW1fc3RhdGUiPgorCisgICAgPHA+CisgICAgVGhlIGFjdHVhbCBzdGF0ZSBvZiBhIHN5c3RlbSBpcyBub3JtYWxseSByZXByZXNlbnRlZCBhcyBhIHNldCBvZiBvbmUgb3IKKyAgICBtb3JlIEphdmFCZWFucyBjbGFzc2VzLCB3aG9zZSBwcm9wZXJ0aWVzIGRlZmluZSB0aGUgY3VycmVudCBzdGF0ZS4gIAorICAgIEEgc2hvcHBpbmcgY2FydCBzeXN0ZW0sIGZvciBleGFtcGxlLCB3aWxsIGluY2x1ZGUgYSBiZWFuIHRoYXQgcmVwcmVzZW50cyAKKyAgICB0aGUgY2FydCBiZWluZyBtYWludGFpbmVkIGZvciBlYWNoIGluZGl2aWR1YWwgc2hvcHBlciwgYW5kIHdpbGwgKGFtb25nIAorICAgIG90aGVyIHRoaW5ncykgaW5jbHVkZSB0aGUgc2V0IG9mIGl0ZW1zIHRoYXQgdGhlIHNob3BwZXIgaGFzIGN1cnJlbnRseSAKKyAgICBzZWxlY3RlZCBmb3IgcHVyY2hhc2UuICAKKyAgICBTZXBhcmF0ZWx5LCB0aGUgc3lzdGVtIHdpbGwgYWxzbyBpbmNsdWRlIGRpZmZlcmVudCBiZWFucyBmb3IgdGhlIHVzZXIncyAKKyAgICBwcm9maWxlIGluZm9ybWF0aW9uIChpbmNsdWRpbmcgdGhlaXIgY3JlZGl0IGNhcmQgYW5kIHNoaXAtdG8gYWRkcmVzc2VzKSwgCisgICAgYXMgd2VsbCBhcyB0aGUgY2F0YWxvZyBvZiBhdmFpbGFibGUgaXRlbXMgYW5kIHRoZWlyIGN1cnJlbnQgaW52ZW50b3J5IAorICAgIGxldmVscy4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBGb3Igc21hbGwgc2NhbGUgc3lzdGVtcywgb3IgZm9yIHN0YXRlIGluZm9ybWF0aW9uIHRoYXQgbmVlZCBub3QgYmUga2VwdAorICAgIGZvciBhIGxvbmcgcGVyaW9kIG9mIHRpbWUsIGEgc2V0IG9mIHN5c3RlbSBzdGF0ZSBiZWFucyBtYXkgY29udGFpbiBhbGwgdGhlCisgICAga25vd2xlZGdlIHRoYXQgdGhlIHN5c3RlbSBldmVyIGhhcyBvZiB0aGVzZSBwYXJ0aWN1bGFyIGRldGFpbHMuICAKKyAgICBPciwgYXMgaXMgb2Z0ZW4gdGhlIGNhc2UsIHRoZSBzeXN0ZW0gc3RhdGUgYmVhbnMgd2lsbCByZXByZXNlbnQgCisgICAgaW5mb3JtYXRpb24gdGhhdCBpcyBzdG9yZWQgcGVybWFuZW50bHkgaW4gc29tZSBleHRlcm5hbCBkYXRhYmFzZSAoc3VjaCBhcyAKKyAgICBhIDxjb2RlPkN1c3RvbWVyQmVhbjwvY29kZT4gb2JqZWN0IHRoYXQgY29ycmVzcG9uZHMgdG8gYSBwYXJ0aWN1bGFyIHJvdyBpbiAKKyAgICB0aGUgQ1VTVE9NRVJTIHRhYmxlKSwgYW5kIGFyZSBjcmVhdGVkIG9yIHJlbW92ZWQgZnJvbSB0aGUgc2VydmVyJ3MgbWVtb3J5IAorICAgIGFzIG5lZWRlZC4gIAorICAgIEVudGl0eSBFbnRlcnByaXNlIEphdmFCZWFucyBhcmUgYWxzbyB1c2VkIGZvciB0aGlzIHB1cnBvc2UgaW4gbGFyZ2Ugc2NhbGUgCisgICAgYXBwbGljYXRpb25zLgorICAgIDwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSIyLjUgQnVzaW5lc3MgTG9naWMgQmVhbnMiIGhyZWY9ImJ1c2luZXNzX2xvZ2ljIj4KKworICAgIDxwPgorICAgIFlvdSBzaG91bGQgZW5jYXBzdWxhdGUgdGhlIGZ1bmN0aW9uYWwgbG9naWMgb2YgeW91ciBhcHBsaWNhdGlvbiBhcworICAgIG1ldGhvZCBjYWxscyBvbiBKYXZhQmVhbnMgZGVzaWduZWQgZm9yIHRoaXMgcHVycG9zZS4gIAorICAgIFRoZXNlIG1ldGhvZHMgbWF5IGJlIHBhcnQgb2YgdGhlIHNhbWUgY2xhc3NlcyB1c2VkIGZvciB0aGUgc3lzdGVtIHN0YXRlIAorICAgIGJlYW5zLCBvciB0aGV5IG1heSBiZSBpbiBzZXBhcmF0ZSBjbGFzc2VzIGRlZGljYXRlZCB0byBwZXJmb3JtaW5nIHRoZSAKKyAgICBsb2dpYy4gIAorICAgIEluIHRoZSBsYXR0ZXIgY2FzZSwgeW91IHdpbGwgdXN1YWxseSBuZWVkIHRvIHBhc3MgdGhlIHN5c3RlbSBzdGF0ZSBiZWFucyAKKyAgICB0byBiZSBtYW5pcHVsYXRlZCB0byB0aGVzZSBtZXRob2RzIGFzIGFyZ3VtZW50cy4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBGb3IgbWF4aW11bSBjb2RlIHJlLXVzZSwgYnVzaW5lc3MgbG9naWMgYmVhbnMgc2hvdWxkIGJlIGRlc2lnbmVkIGFuZAorICAgIGltcGxlbWVudGVkIHNvIHRoYXQgdGhleSBkbyA8c3Ryb25nPm5vdDwvc3Ryb25nPiBrbm93IHRoZXkgYXJlIGJlaW5nIGV4ZWN1dGVkIGluIGEKKyAgICB3ZWIgYXBwbGljYXRpb24gZW52aXJvbm1lbnQuICAKKyAgICBJZiB5b3UgZmluZCB5b3Vyc2VsZiBoYXZpbmcgdG8gaW1wb3J0IGEgPGNvZGU+amF2YXguc2VydmxldC4qPC9jb2RlPiBjbGFzcyAKKyAgICBpbiB5b3VyIGJlYW4sIHlvdSBhcmUgdHlpbmcgdGhpcyBidXNpbmVzcyBsb2dpYyB0byB0aGUgd2ViIGFwcGxpY2F0aW9uIAorICAgIGVudmlyb25tZW50LiAgCisgICAgQ29uc2lkZXIgcmVhcnJhbmdpbmcgdGhpbmdzIHNvIHRoYXQgeW91ciA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzZXMgKHBhcnQgCisgICAgb2YgdGhlIENvbnRyb2xsZXIgcm9sZSwgYXMgZGVzY3JpYmVkIGJlbG93KSB0cmFuc2xhdGUgYWxsIHJlcXVpcmVkIAorICAgIGluZm9ybWF0aW9uIGZyb20gdGhlIEhUVFAgcmVxdWVzdCBiZWluZyBwcm9jZXNzZWQgaW50byBwcm9wZXJ0eSBzZXR0ZXIgCisgICAgY2FsbHMgb24geW91ciBidXNpbmVzcyBsb2dpYyBiZWFucywgYWZ0ZXIgd2hpY2ggYSBjYWxsIHRvIGFuIAorICAgIDxjb2RlPmV4ZWN1dGU8L2NvZGU+IG1ldGhvZCBjYW4gYmUgbWFkZS4gIAorICAgIFN1Y2ggYSBidXNpbmVzcyBsb2dpYyBjbGFzcyBjYW4gYmUgcmV1c2VkIGluIGVudmlyb25tZW50cyBvdGhlciB0aGFuIHRoZSAKKyAgICB3ZWIgYXBwbGljYXRpb24gZm9yIHdoaWNoIHRoZXkgd2VyZSBpbml0aWFsbHkgY29uc3RydWN0ZWQuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgRGVwZW5kaW5nIG9uIHRoZSBjb21wbGV4aXR5IGFuZCBzY29wZSBvZiB5b3VyIGFwcGxpY2F0aW9uLCBidXNpbmVzcyBsb2dpYworICAgIGJlYW5zIG1pZ2h0IGJlIG9yZGluYXJ5IEphdmFCZWFucyB0aGF0IGludGVyYWN0IHdpdGggc3lzdGVtIHN0YXRlIGJlYW5zCisgICAgcGFzc2VkIGFzIGFyZ3VtZW50cywgb3Igb3JkaW5hcnkgSmF2YUJlYW5zIHRoYXQgYWNjZXNzIGEgZGF0YWJhc2UgdXNpbmcKKyAgICBKREJDIGNhbGxzLiAgCisgICAgRm9yIGxhcmdlciBhcHBsaWNhdGlvbnMsIHRoZXNlIGJlYW5zIHdpbGwgb2Z0ZW4gYmUgc3RhdGVmdWwgb3Igc3RhdGVsZXNzIAorICAgIEVudGVycHJpc2UgSmF2YUJlYW5zIChFSkJzKSBpbnN0ZWFkLgorICAgIDwvcD4KKyAgICAKKyAgICA8cD4KKyAgICBGb3IgbW9yZSBhYm91dCB1c2luZyBhIGRhdGFiYXNlIHdpdGggeW91ciBhcHBsaWNhdGlvbiwgc2VlIHRoZSAKKyAgICA8YSBocmVmPSIuLi9mYXFzL2RhdGFiYXNlLmh0bWwiPkFjY2Vzc2luZyBhIERhdGFiYXNlIEhvd1RvPC9hPi4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24+CisgICAgPHAgY2xhc3M9InJpZ2h0Ij4KKyAgICBOZXh0OiA8YSBocmVmPSJidWlsZGluZ192aWV3Lmh0bWwiPkJ1aWxkaW5nIFZpZXcgQ29tcG9uZW50czwvYT4KKyAgICA8L3A+Cis8L3NlY3Rpb24+CisKKworPC9ib2R5PgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9idWlsZGluZ192aWV3LnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9idWlsZGluZ192aWV3LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTgxYzM1Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2J1aWxkaW5nX3ZpZXcueG1sCkBAIC0wLDAgKzEsODk2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9ImJ1aWxkaW5nX3ZpZXcuaHRtbCI+CisKKzwhLS0KKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSA3OAorLS0+CisKKzxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5UaGUgU3RydXRzIFVzZXIncyBHdWlkZSAtIEJ1aWxkaW5nIFZpZXcgQ29tcG9uZW50czwvdGl0bGU+Cis8L3Byb3BlcnRpZXM+CisKKzxib2R5PgorPHNlY3Rpb24gbmFtZT0iMy4gQnVpbGRpbmcgVmlldyBDb21wb25lbnRzIiBocmVmPSJidWlsZGluZ192aWV3Ii8+CisKKzxzZWN0aW9uIG5hbWU9IjMuMSBPdmVydmlldyIgaHJlZj0ib3ZlcnZpZXciPgorCisgICAgPHA+CisgICAgVGhpcyBjaGFwdGVyIGZvY3VzZXMgb24gdGhlIHRhc2sgb2YgYnVpbGRpbmcgdGhlIDxlbT5WaWV3PC9lbT4gY29tcG9uZW50cworICAgIGZvciB1c2Ugd2l0aCB0aGUgU3RydXRzIGZyYW1ld29yay4gCisgICAgTWFueSBhcHBsaWNhdGlvbnMgcmVseSBvbiBKYXZhU2VydmVyIFBhZ2VzIChKU1ApIHRlY2hub2xvZ3kgdG8gY3JlYXRlIHRoZSAKKyAgICBwcmVzZW50YXRpb24gbGF5ZXIuIAorICAgIFRoZSBTdHJ1dHMgZGlzdHJpYnV0aW9uIGluY2x1ZGVzIGEgY29tcHJlaGVuc2l2ZSBKU1AgdGFnIGxpYnJhcnkgdGhhdCAKKyAgICBwcm92aWRlcyBzdXBwb3J0IGZvciBidWlsZGluZyBpbnRlcm5hdGlvbmFsaXplZCBhcHBsaWNhdGlvbnMsIGFzIHdlbGwgYXMgCisgICAgZm9yIGludGVyYWN0aW5nIHdpdGggaW5wdXQgZm9ybXMuCisgICAgU2V2ZXJhbCBvdGhlciB0b3BpY3MgcmVsYXRlZCB0byB0aGUgVmlldyBjb21wb25lbnRzIGFyZSBicmllZmx5IGRpc2N1c3NlZC4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gbmFtZT0iMy4yIEludGVybmF0aW9uYWxpemVkIE1lc3NhZ2VzIiBocmVmPSJpMThuIj4KKworICAgIDxwPgorICAgIEEgZmV3IHllYXJzIGFnbywgYXBwbGljYXRpb24gZGV2ZWxvcGVycyBjb3VsZCBjb3VudCBvbiBoYXZpbmcgdG8gc3VwcG9ydAorICAgIG9ubHkgcmVzaWRlbnRzIG9mIHRoZWlyIG93biBjb3VudHJ5LCB3aG8gYXJlIHVzZWQgdG8gb25seSBvbmUgKG9yIAorICAgIHNvbWV0aW1lcyB0d28pIGxhbmd1YWdlcywgYW5kIG9uZSB3YXkgdG8gcmVwcmVzZW50IG51bWVyaWMgcXVhbnRpdGllcyBsaWtlIAorICAgIGRhdGVzLCBudW1iZXJzLCBhbmQgbW9uZXRhcnkgdmFsdWVzLiAgCisgICAgSG93ZXZlciwgdGhlIGV4cGxvc2lvbiBvZiBhcHBsaWNhdGlvbiBkZXZlbG9wbWVudCBiYXNlZCBvbiB3ZWIgCisgICAgdGVjaG5vbG9naWVzLCBhcyB3ZWxsIGFzIHRoZSBkZXBsb3ltZW50IG9mIHN1Y2ggYXBwbGljYXRpb25zIG9uIHRoZSAKKyAgICBJbnRlcm5ldCBhbmQgb3RoZXIgYnJvYWRseSBhY2Nlc3NpYmxlIG5ldHdvcmtzLCBoYXZlIHJlbmRlcmVkIG5hdGlvbmFsIAorICAgIGJvdW5kYXJpZXMgaW52aXNpYmxlIGluIG1hbnkgY2FzZXMuICAKKyAgICBUaGlzIGhhcyB0cmFuc2xhdGVkIChpZiB5b3Ugd2lsbCBwYXJkb24gdGhlIHB1bikgaW50byBhIG5lZWQgZm9yIAorICAgIGFwcGxpY2F0aW9ucyB0byBzdXBwb3J0IDxlbT5pbnRlcm5hdGlvbmFsaXphdGlvbjwvZW0+IChvZnRlbiBjYWxsZWQgImkxOG4iIAorICAgIGJlY2F1c2UgMTggaXMgdGhlIG51bWJlciBvZiBsZXR0ZXJzIGluIGJldHdlZW4gdGhlICJpIiBhbmQgdGhlICJuIikgYW5kIAorICAgIDxlbT5sb2NhbGl6YXRpb248L2VtPi4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBTdHJ1dHMgYnVpbGRzIHVwb24gdGhlIHN0YW5kYXJkIGNsYXNzZXMgYXZhaWxhYmxlIG9uIHRoZSBKYXZhIHBsYXRmb3JtIHRvCisgICAgYnVpbGQgaW50ZXJuYXRpb25hbGl6ZWQgYW5kIGxvY2FsaXplZCBhcHBsaWNhdGlvbnMuIAorICAgIFRoZSBrZXkgY29uY2VwdHMgdG8gYmVjb21lIGZhbWlsaWFyIHdpdGggYXJlOgorICAgIDwvcD4KKworICAgIDx1bD4KKyAgICAKKyAgICAgICAgPGxpPgorICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS40LjEvZG9jcy9hcGkvamF2YS91dGlsL0xvY2FsZS5odG1sIj4KKyAgICAgICAgPHN0cm9uZz5Mb2NhbGU8L3N0cm9uZz48L2E+IC0gVGhlIGZ1bmRhbWVudGFsIEphdmEgY2xhc3MgdGhhdCBzdXBwb3J0cyAKKyAgICAgICAgaW50ZXJuYXRpb25hbGl6YXRpb24gaXMgPGNvZGU+TG9jYWxlPC9jb2RlPi4gIAorICAgICAgICBFYWNoIDxjb2RlPkxvY2FsZTwvY29kZT4gcmVwcmVzZW50cyBhIHBhcnRpY3VsYXIgY2hvaWNlIG9mIGNvdW50cnkgYW5kIAorICAgICAgICBsYW5ndWFnZSAocGx1cyBhbiBvcHRpb25hbCBsYW5ndWFnZSB2YXJpYW50KSwgYW5kIGFsc28gYSBzZXQgb2YgCisgICAgICAgIGZvcm1hdHRpbmcgYXNzdW1wdGlvbnMgZm9yIHRoaW5ncyBsaWtlIG51bWJlcnMgYW5kIGRhdGVzLgorICAgICAgICA8L2xpPgorICAgICAgICAKKyAgICAgICAgPGxpPgorICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS40LjEvZG9jcy9hcGkvamF2YS91dGlsL1Jlc291cmNlQnVuZGxlLmh0bWwiPgorICAgICAgICA8c3Ryb25nPlJlc291cmNlQnVuZGxlPC9zdHJvbmc+PC9hPiAtIFRoZSA8Y29kZT5qYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU8L2NvZGU+IAorICAgICAgICBjbGFzcyBwcm92aWRlcyB0aGUgZnVuZGFtZW50YWwgdG9vbHMgZm9yIHN1cHBvcnRpbmcgbWVzc2FnZXMgaW4gCisgICAgICAgIG11bHRpcGxlIGxhbmd1YWdlcy4gIAorICAgICAgICBTZWUgdGhlIEphdmFkb2NzIGZvciB0aGUgPGNvZGU+UmVzb3VyY2VCdW5kbGU8L2NvZGU+IGNsYXNzLCBhbmQgdGhlIAorICAgICAgICBpbmZvcm1hdGlvbiBvbiBJbnRlcm5hdGlvbmFsaXphdGlvbiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBidW5kbGUgZm9yIHlvdXIgCisgICAgICAgIEpESyByZWxlYXNlLCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICAgICAgPC9saT4KKyAgICAgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9qMnNlLzEuNC4xL2RvY3MvYXBpL2phdmEvdXRpbC9Qcm9wZXJ0eVJlc291cmNlQnVuZGxlLmh0bWwiPgorICAgICAgICA8c3Ryb25nPlByb3BlcnR5UmVzb3VyY2VCdW5kbGU8L3N0cm9uZz48L2E+IC0gT25lIG9mIHRoZSBzdGFuZGFyZCAKKyAgICAgICAgaW1wbGVtZW50YXRpb25zIG9mIDxjb2RlPlJlc291cmNlQnVuZGxlPC9jb2RlPiBhbGxvd3MgeW91IHRvIGRlZmluZSAKKyAgICAgICAgcmVzb3VyY2VzIHVzaW5nICB0aGUgc2FtZSAibmFtZT12YWx1ZSIgc3ludGF4IHVzZWQgdG8gaW5pdGlhbGl6ZSAKKyAgICAgICAgcHJvcGVydGllcyBmaWxlcy4gIAorICAgICAgICBUaGlzIGlzIHZlcnkgY29udmVuaWVudCBmb3IgcHJlcGFyaW5nIHJlc291cmNlIGJ1bmRsZXMgd2l0aCBtZXNzYWdlcyAKKyAgICAgICAgdGhhdCBhcmUgdXNlZCBpbiBhIHdlYiBhcHBsaWNhdGlvbiwgYmVjYXVzZSB0aGVzZSBtZXNzYWdlcyBhcmUgCisgICAgICAgIGdlbmVyYWxseSB0ZXh0IG9yaWVudGVkLgorICAgICAgICA8L2xpPgorICAgICAgICAKKyAgICAgICAgPGxpPgorICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS40LjEvZG9jcy9hcGkvamF2YS90ZXh0L01lc3NhZ2VGb3JtYXQuaHRtbCI+CisgICAgICAgIDxzdHJvbmc+TWVzc2FnZUZvcm1hdDwvc3Ryb25nPjwvYT4gLSBUaGUgPGNvZGU+amF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQ8L2NvZGU+IAorICAgICAgICBjbGFzcyBhbGxvd3MgeW91IHRvIHJlcGxhY2UgcG9ydGlvbnMgb2YgYSBtZXNzYWdlIHN0cmluZyAoaW4gdGhpcyAKKyAgICAgICAgY2FzZSwgb25lIHJldHJpZXZlZCBmcm9tIGEgcmVzb3VyY2UgYnVuZGxlKSB3aXRoIGFyZ3VtZW50cyBzcGVjaWZpZWQgCisgICAgICAgIGF0IHJ1biB0aW1lLiAgCisgICAgICAgIFRoaXMgaXMgdXNlZnVsIGluIGNhc2VzIHdoZXJlIHlvdSBhcmUgY3JlYXRpbmcgYSBzZW50ZW5jZSwgYnV0IHRoZSAKKyAgICAgICAgd29yZHMgd291bGQgYXBwZWFyIGluIGEgZGlmZmVyZW50IG9yZGVyIGluIGRpZmZlcmVudCBsYW5ndWFnZXMuCisgICAgICAgIFRoZSBwbGFjZWhvbGRlciBzdHJpbmcgPGNvZGU+ezB9PC9jb2RlPiBpbiB0aGUgbWVzc2FnZSBpcyByZXBsYWNlZCBieQorICAgICAgICB0aGUgZmlyc3QgcnVudGltZSBhcmd1bWVudCwgPGNvZGU+ezF9PC9jb2RlPiBpcyByZXBsYWNlZCBieSB0aGUgCisgICAgICAgIHNlY29uZCBhcmd1bWVudCwgYW5kIHNvIG9uLgorICAgICAgICA8L2xpPgorICAgICAgICAKKyAgICAgICAgPGxpPgorICAgICAgICA8YSBocmVmPSIuLi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPgorICAgICAgICA8c3Ryb25nPk1lc3NhZ2VSZXNvdXJjZXM8L3N0cm9uZz48L2E+IC0gVGhlIFN0cnV0cyBjbGFzcyAKKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBsZXRzIHlvdSB0cmVhdAorICAgICAgICBhIHNldCBvZiByZXNvdXJjZSBidW5kbGVzIGxpa2UgYSBkYXRhYmFzZSwgYW5kIGFsbG93cyB5b3UgdG8gcmVxdWVzdAorICAgICAgICBhIHBhcnRpY3VsYXIgbWVzc2FnZSBzdHJpbmcgZm9yIGEgcGFydGljdWxhciBMb2NhbGUgKG5vcm1hbGx5IG9uZQorICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgdXNlcikgaW5zdGVhZCBvZiBmb3IgdGhlIGRlZmF1bHQgTG9jYWxlCisgICAgICAgIHRoZSBzZXJ2ZXIgaXRzZWxmIGlzIHJ1bm5pbmcgaW4uCisgICAgICAgIDwvbGk+CisgICAgICAgIAorICAgIDwvdWw+CisKKyAgICA8cD4KKyAgICBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBpMThuIHN1cHBvcnQgaW4gYSBmcmFtZXdvcmsgbGlrZSBTdHJ1dHMgaXMgbGltaXRlZCB0byAKKyAgICB0aGUgPHN0cm9uZz5wcmVzZW50YXRpb248L3N0cm9uZz4gb2YgaW50ZXJuYXRpb25hbGl6ZWQgdGV4dCBhbmQgaW1hZ2VzIHRvIHRoZSB1c2VyLgorICAgIFN1cHBvcnQgZm9yIExvY2FsZSBzcGVjaWZpYyA8c3Ryb25nPmlucHV0IG1ldGhvZHM8L3N0cm9uZz4gKHVzZWQgd2l0aCBsYW5ndWFnZXMKKyAgICBzdWNoIGFzIEphcGFuZXNlLCBDaGluZXNlLCBhbmQgS29yZWFuKSBpcyBsZWZ0IHVwIHRvIHRoZSBjbGllbnQgZGV2aWNlLCAKKyAgICB3aGljaGlzIHVzdWFsbHkgYSB3ZWIgYnJvd3Nlci4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBGb3IgYW4gaW50ZXJuYXRpb25hbGl6ZWQgYXBwbGljYXRpb24sIGZvbGxvdyB0aGUgc3RlcHMgZGVzY3JpYmVkIGluCisgICAgdGhlIEludGVybmF0aW9uYWxpemF0aW9uIGRvY3VtZW50IGluIHRoZSBKREsgZG9jdW1lbnRhdGlvbiBidW5kbGUgZm9yIHlvdXIKKyAgICBwbGF0Zm9ybSB0byBjcmVhdGUgYSBwcm9wZXJ0aWVzIGZpbGUgY29udGFpbmluZyB0aGUgbWVzc2FnZXMgZm9yIGVhY2gKKyAgICBsYW5ndWFnZS4gIAorICAgIEFuIGV4YW1wbGUgd2lsbCBpbGx1c3RyYXRlIHRoaXMgZnVydGhlcjoKKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBBc3N1bWUgdGhhdCB5b3VyIHNvdXJjZSBjb2RlIGlzIGNyZWF0ZWQgaW4gcGFja2FnZQorICAgIDxjb2RlPmNvbS5teWNvbXBhbnkubXlwYWNrYWdlPC9jb2RlPiwgc28gaXQgaXMgc3RvcmVkIGluIGEgZGlyZWN0b3J5CisgICAgKHJlbGF0aXZlIHRvIHlvdXIgc291cmNlIGRpcmVjdG9yeSkgbmFtZWQKKyAgICA8Y29kZT5jb20vbXljb21wYW55L215cGFja2FnZTwvY29kZT4uICAKKyAgICBUbyBjcmVhdGUgYSByZXNvdXJjZSBidW5kbGUgY2FsbGVkCisgICAgPGNvZGU+Y29tLm15Y29tcGFueS5teXBhY2thZ2UuTXlBcHBsaWNhdGlvbjwvY29kZT4sIHlvdSB3b3VsZCBjcmVhdGUgdGhlCisgICAgZm9sbG93aW5nIGZpbGVzIGluIHRoZSA8Y29kZT5jb20vbXljb21wYW55L215cGFja2FnZTwvY29kZT4gZGlyZWN0b3J5OgorICAgIDwvcD4KKworICAgIDx1bD4KKworICAgICAgICA8bGk+CisgICAgICAgIDxzdHJvbmc+TXlBcHBsaWNhdGlvbi5wcm9wZXJ0aWVzPC9zdHJvbmc+IC0gQ29udGFpbnMgdGhlIG1lc3NhZ2VzIGluIHRoZSBkZWZhdWx0CisgICAgICAgIGxhbmd1YWdlIGZvciB5b3VyIHNlcnZlci4gIAorICAgICAgICBJZiB5b3VyIGRlZmF1bHQgbGFuZ3VhZ2UgaXMgRW5nbGlzaCwgeW91IG1pZ2h0IGhhdmUgYW4gZW50cnkgbGlrZSAKKyAgICAgICAgdGhpczogPGNvZGU+cHJvbXB0LmhlbGxvPUhlbGxvPC9jb2RlPgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5NeUFwcGxpY2F0aW9uX3h4LnByb3BlcnRpZXM8L3N0cm9uZz4gLSBDb250YWlucyB0aGUgc2FtZSBtZXNzYWdlcyBpbiB0aGUKKyAgICAgICAgbGFuZ3VhZ2Ugd2hvc2UgSVNPIGxhbmd1YWdlIGNvZGUgaXMgInh4IiAoU2VlIHRoZQorICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS40LjEvZG9jcy9hcGkvamF2YS91dGlsL1Jlc291cmNlQnVuZGxlLmh0bWwiPgorICAgICAgICBSZXNvdXJjZUJ1bmRsZSBKYXZhZG9jPC9hPiBwYWdlIGZvciBhIGxpbmsgdG8gdGhlIGN1cnJlbnQgbGlzdCkuICAKKyAgICAgICAgRm9yIGEgRnJlbmNoIHZlcnNpb24gb2YgdGhlIG1lc3NhZ2Ugc2hvd24gYWJvdmUsIHlvdSB3b3VsZCBoYXZlIHRoaXMgCisgICAgICAgIGVudHJ5OiA8Y29kZT5wcm9tcHQuaGVsbG89Qm9uam91cjwvY29kZT4KKyAgICAgICAgWW91IGNhbiBoYXZlIHJlc291cmNlIGJ1bmRsZSBmaWxlcyBmb3IgYXMgbWFueSBsYW5ndWFnZXMgYXMgeW91IG5lZWQuCisgICAgICAgIDwvbGk+CisKKyAgICA8L3VsPgorCisgICAgPHA+CisgICAgV2hlbiB5b3UgY29uZmlndXJlIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW4gdGhlIHdlYiBhcHBsaWNhdGlvbgorICAgIGRlcGxveW1lbnQgZGVzY3JpcHRvciwgb25lIG9mIHRoZSB0aGluZ3MgeW91IHdpbGwgbmVlZCB0byBkZWZpbmUgaW4KKyAgICBhbiBpbml0aWFsaXphdGlvbiBwYXJhbWV0ZXIgaXMgdGhlIGJhc2UgbmFtZSBvZiB0aGUgcmVzb3VyY2UgYnVuZGxlCisgICAgZm9yIHRoZSBhcHBsaWNhdGlvbi4gIAorICAgIEluIHRoZSBjYXNlIGRlc2NyaWJlZCBhYm92ZSwgaXQgd291bGQgYmUgCisgICAgPGNvZGU+Y29tLm15Y29tcGFueS5teXBhY2thZ2UuTXlBcHBsaWNhdGlvbjwvY29kZT4uCisgICAgPC9wPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWworPHNlcnZsZXQ+Cis8c2VydmxldC1uYW1lPmFjdGlvbjwvc2VydmxldC1uYW1lPgorPHNlcnZsZXQtY2xhc3M+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldAorPC9zZXJ2bGV0LWNsYXNzPgorPGluaXQtcGFyYW0+Cis8cGFyYW0tbmFtZT5hcHBsaWNhdGlvbjwvcGFyYW0tbmFtZT4KKzxwYXJhbS12YWx1ZT4KKyAgICBjb20ubXljb21wYW55Lm15cGFja2FnZS5NeVJlc291cmNlcworPC9wYXJhbS12YWx1ZT4KKzwvaW5pdC1wYXJhbT4KKzwhLS0gLi4uIC0tPgorPC9zZXJ2bGV0PgorXV0+PC9jb2RlPjwvcHJlPgorCisgICAgPHA+CisgICAgVGhlIGltcG9ydGFudCB0aGluZyBpcyBmb3IgdGhlIHJlc291cmNlIGJ1bmRsZSB0byBiZSBmb3VuZCBvbiB0aGUKKyAgICBjbGFzcyBwYXRoIGZvciB5b3VyIGFwcGxpY2F0aW9uLiAKKyAgICBBbm90aGVyIGFwcHJvYWNoIGlzIHRvIHN0b3JlIHRoZSA8Y29kZT5NeVJlc291cmNlcy5wcm9wZXJ0aWVzPC9jb2RlPiAKKyAgICBmaWxlIGluIHlvdXIgYXBwbGljYXRpb24ncyA8Y29kZT5jbGFzc2VzPC9jb2RlPiBmb2xkZXIuIAorICAgIFlvdSBjYW4gdGhlbiBzaW1wbHkgc3BlY2lmeSAibXlSZXNvdXJjZXMiIGFzIHRoZSBhcHBsaWNhdGlvbiB2YWx1ZS4gCisgICAgSnVzdCBiZSBjYXJlZnVsIGl0IGlzIG5vdCBkZWxldGVkIGlmIHlvdXIgYnVpbGQgc2NyaXB0IGRlbGV0ZXMgCisgICAgY2xhc3NlcyBhcyBwYXJ0IG9mIGEgImNsZWFuIiB0YXJnZXQuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgSWYgaXQgZG9lcywgaGVyZSBpcyBhbiBBbnQgdGFzayB0byBydW4gd2hlbiBjb21waWxpbmcgeW91ciBhcHBsaWNhdGlvbgorICAgIHRoYXQgY29waWVzIHRoZSBjb250ZW50cyBvZiBhIDxjb2RlPnNyYy9jb25mPC9jb2RlPgorICAgIGRpcmVjdG9yeSB0byB0aGUgPGNvZGU+Y2xhc3NlczwvY29kZT4gZGlyZWN0b3J5OgorICAgIDwvcD4KKworPHByZT48Y29kZT48IVtDREFUQVsKKzwhLS0gQ29weSBhbnkgY29uZmlndXJhdGlvbiBmaWxlcyAtLT4KKzxjb3B5IHRvZGlyPSJjbGFzc2VzIj4KKzxmaWxlc2V0IGRpcj0ic3JjL2NvbmYiLz4KKzwvY29weT4KK11dPjwvY29kZT48L3ByZT4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSIzLjMgRm9ybXMgYW5kIEZvcm1CZWFuIEludGVyYWN0aW9ucyIgaHJlZj0iZm9ybV9iZWFucyI+CisKKzxwPgorICAgIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gV2hpbGUgdGhlIGV4YW1wbGVzIGdpdmVuIGhlcmUgdXNlIEpTUCBhbmQgY3VzdG9tIHRhZ3MsCisgICAgdGhlIEFjdGlvbkZvcm0gYmVhbnMgYW5kIHRoZSBvdGhlciBTdHJ1dHMgY29udHJvbGxlciBjb21wb25lbnRzIGFyZQorICAgIFZpZXcgbmV1dHJhbC4gCisgICAgU3RydXRzIGNhbiBiZSB1c2VkIHdpdGggVmVsb2NpdHkgVGVtcGxhdGVzLCBYU0wsIGFuZCBhbnkgb3RoZXIgCisgICAgcHJlc2VudGF0aW9uIHRlY2hub2xvZ3kgdGhhdCBjYW4gYmUgcmVuZGVyZWQgdmlhIGEgSmF2YSBzZXJ2bGV0LiAKKzwvcD4KKworICAgIDxwPgorICAgIEF0IG9uZSB0aW1lIG9yIGFub3RoZXIsIG1vc3Qgd2ViIGRldmVsb3BlcnMgaGF2ZSBidWlsdCBmb3JtcyB1c2luZworICAgIHRoZSBzdGFuZGFyZCBjYXBhYmlsaXRpZXMgb2YgSFRNTCwgc3VjaCBhcyB0aGUgPGNvZGU+Jmx0O2lucHV0Jmd0OzwvY29kZT4KKyAgICB0YWcuICAKKyAgICBVc2VycyBoYXZlIGNvbWUgdG8gZXhwZWN0IGludGVyYWN0aXZlIGFwcGxpY2F0aW9ucyB0byBoYXZlIGNlcnRhaW4KKyAgICBiZWhhdmlvcnMsIGFuZCBvbmUgb2YgdGhlc2UgZXhwZWN0YXRpb25zIHJlbGF0ZXMgdG8gZXJyb3IgaGFuZGxpbmcgLS0gaWYKKyAgICB0aGUgdXNlciBtYWtlcyBhbiBlcnJvciwgdGhlIGFwcGxpY2F0aW9uIHNob3VsZCBhbGxvdyB0aGVtIHRvIGZpeCBqdXN0IAorICAgIHdoYXQgbmVlZHMgdG8gYmUgY2hhbmdlZCAtLSB3aXRob3V0IGhhdmluZyB0byByZS1lbnRlciBhbnkgb2YgdGhlIHJlc3QgCisgICAgb2YgdGhlIGluZm9ybWF0aW9uIG9uIHRoZSBjdXJyZW50IHBhZ2Ugb3IgZm9ybS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBGdWxmaWxsaW5nIHRoaXMgZXhwZWN0YXRpb24gaXMgdGVkaW91cyBhbmQgY3VtYmVyc29tZSB3aGVuIGNvZGluZyB3aXRoCisgICAgc3RhbmRhcmQgSFRNTCBhbmQgSlNQIHBhZ2VzLiAgCisgICAgRm9yIGV4YW1wbGUsIGFuIGlucHV0IGVsZW1lbnQgZm9yIGEgPGNvZGU+dXNlcm5hbWU8L2NvZGU+IGZpZWxkIG1pZ2h0IAorICAgIGxvb2sgbGlrZSB0aGlzIChpbiBKU1ApOgorICAgIDwvcD4KKyAgIAorPHByZT48Y29kZT48IVtDREFUQVsKKzxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIKK3ZhbHVlPSI8JT0gbG9naW5CZWFuLmdldFVzZXJuYW1lKCkgPiIvPgorXV0+PC9jb2RlPjwvcHJlPgorCisgICAgPHA+CisgICAgd2hpY2ggaXMgZGlmZmljdWx0IHRvIHR5cGUgY29ycmVjdGx5LCBjb25mdXNlcyBIVE1MIGRldmVsb3BlcnMgd2hvIGFyZQorICAgIG5vdCBrbm93bGVkZ2VhYmxlIGFib3V0IHByb2dyYW1taW5nIGNvbmNlcHRzLCBhbmQgY2FuIGNhdXNlIHByb2JsZW1zIHdpdGgKKyAgICBIVE1MIGVkaXRvcnMuICAKKyAgICBJbnN0ZWFkLCBTdHJ1dHMgcHJvdmlkZXMgYSBjb21wcmVoZW5zaXZlIGZhY2lsaXR5IGZvciBidWlsZGluZyBmb3JtcywgCisgICAgYmFzZWQgb24gdGhlIEN1c3RvbSBUYWcgTGlicmFyeSBmYWNpbGl0eSBvZiBKU1AgMS4xLgorICAgIFRoZSBjYXNlIGFib3ZlIHdvdWxkIGJlIHJlbmRlcmVkIGxpa2UgdGhpcyB1c2luZyBTdHJ1dHM6CisgICAgPC9wPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWworPGh0bWw6dGV4dCBwcm9wZXJ0eT0idXNlcm5hbWUiLz47CitdXT48L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICB3aXRoIG5vIG5lZWQgdG8gZXhwbGljaXRseSByZWZlciB0byB0aGUgSmF2YUJlYW4gZnJvbSB3aGljaCB0aGUgaW5pdGlhbAorICAgIHZhbHVlIGlzIHJldHJpZXZlZC4gIFRoYXQgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBKU1AgdGFnLCB1c2luZworICAgIGZhY2lsaXRpZXMgcHJvdmlkZWQgYnkgdGhlIGZyYW1ld29yay4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBIVE1MIGZvcm1zIGFyZSBzb21ldGltZXMgdXNlZCB0byB1cGxvYWQgb3RoZXIgZmlsZXMuIAorICAgIE1vc3QgYnJvd3NlcnMgc3VwcG9ydCB0aGlzIHRocm91Z2ggYSAmbHQ7aW5wdXQgdHlwZT0iZmlsZSImZ3Q7IGVsZW1lbnQsIAorICAgIHRoYXQgZ2VuZXJhdGVzIGEgZmlsZSBicm93c2UgYnV0dG9uLCBidXQgaXQncyB1cCB0byB0aGUgZGV2ZWxvcGVyIHRvIAorICAgIGhhbmRsZSB0aGUgaW5jb21pbmcgZmlsZXMuIAorICAgIFN0cnV0cyBoYW5kbGVzIHRoZXNlICJtdWx0aXBhcnQiIGZvcm1zIGluIGEgd2F5IGlkZW50aWNhbCB0byBidWlsZGluZyAKKyAgICBub3JtYWwgZm9ybXMuIAorICAgIDwvcD4KKyAgICAKKyAgICA8cD4KKyAgICBGb3IgYW4gZXhhbXBsZSBvZiB1c2luZyBTdHJ1dHMgdG8gY3JlYXRlIGEgc2ltcGxlIGxvZ2luIGZvcm0sIAorICAgIHNlZSB0aGUgIjxhIGhyZWY9Ii4uL2ZhcXMvYWN0aW9uRm9ybS5odG1sIj4KKyAgICBCdWlkaW5nIGFuIEFjdGlvbkZvcm0gSG93dG88L2E+Ii4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworCis8c2VjdGlvbiBuYW1lPSIzLjMuMSBJbmRleGVkICZhbXA7IE1hcHBlZCBQcm9wZXJ0aWVzIiBocmVmPSJpbmRleGVkIj4KKworICAgIDxwPgorICAgIFByb3BlcnR5IHJlZmVyZW5jZXMgaW4gSlNQIHBhZ2VzIHVzaW5nIHRoZSBTdHJ1dHMgZnJhbWV3b3JrIGNhbiByZWZlcmVuY2UKKyAgICBKYXZhIEJlYW4gcHJvcGVydGllcyBhcyBkZXNjcmliZWQgaW4gdGhlIEphdmFCZWFucyBzcGVjaWZpY2F0aW9uLiAKKyAgICBNb3N0IG9mIHRoZXNlIHJlZmVyZW5jZXMgcmVmZXIgdG8gInNjYWxhciIgYmVhbiBwcm9wZXJ0aWVzLCByZWZlcnJpbmcgdG8gCisgICAgcHJpbWl0aXZlIG9yIHNpbmdsZSBPYmplY3QgcHJvcGVydGllcy4gIAorICAgIEhvd2V2ZXIsIFN0cnV0cywgYWxvbmcgd2l0aCB0aGUgSmFrYXJ0YSBDb21tb25zIEJlYW51dGlscyBsaWJyYXJ5LCBhbGxvdyAKKyAgICB5b3UgdG8gdXNlIHByb3BlcnR5IHJlZmVyZW5jZXMgd2hpY2ggcmVmZXIgdG8gaW5kaXZpZHVhbCBpdGVtcyBpbiBhbiBhcnJheSwgCisgICAgY29sbGVjdGlvbiwgb3IgbWFwLCB3aGljaCBhcmUgcmVwcmVzZW50ZWQgYnkgYmVhbiBtZXRob2RzIHVzaW5nIAorICAgIHdlbGwtZGVmaW5lZCBuYW1pbmcgYW5kIHNpZ25hdHVyZSBzY2hlbWVzLgorICAgIDwvcD4KKworPHA+CisgRG9jdW1lbnRhdGlvbiBvbiB0aGUgQmVhbnV0aWxzIHBhY2thZ2UgY2FuIGJlIGZvdW5kIGF0IAorIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9iZWFudXRpbHMvYXBpL2luZGV4Lmh0bWwiPgorIGh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9iZWFudXRpbHMvYXBpL2luZGV4Lmh0bWw8L2E+LgorIE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdXNpbmcgaW5kZXhlZCBhbmQgbWFwcGVkIHByb3BlcnRpZXMgaW4gU3RydXRzIGNhbgorIGJlIGZvdW5kIGluIHRoZSBGQVEgZGVzY3JpYmluZyA8YQorIGhyZWY9Ii4uL2ZhcXMvaW5kZXhlZHByb3BzLmh0bWwiPjxlbT5JbmRleGVkIFByb3BlcnRpZXMsIE1hcHBlZCBQcm9wZXJ0aWVzLAorIGFuZCBJbmRleGVkIFRhZ3M8L2VtPjwvYT4uCis8L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IjMuMy4yIElucHV0IEZpZWxkIFR5cGVzIFN1cHBvcnRlZCIgaHJlZj0iZm9ybV9pbnB1dCI+CisKKyAgICA8cD4KKyAgICBTdHJ1dHMgZGVmaW5lcyBIVE1MIHRhZ3MgZm9yIGFsbCBvZiB0aGUgZm9sbG93aW5nIHR5cGVzIG9mIGlucHV0IGZpZWxkcywKKyAgICB3aXRoIGh5cGVybGlua3MgdG8gdGhlIGNvcnJlc3BvbmRpbmcgcmVmZXJlbmNlIGluZm9ybWF0aW9uLgorICAgIDwvcD4KKworICAgIDx1bD4KKyAgICAgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0ic3RydXRzLWh0bWwuaHRtbCNjaGVja2JveCI+Y2hlY2tib3hlczwvYT4KKyAgICAgICAgPC9saT4KKyAgICAgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0ic3RydXRzLWh0bWwuaHRtbCNoaWRkZW4iPmhpZGRlbjwvYT4gZmllbGRzCisgICAgICAgIDwvbGk+CisgICAgICAgIAorICAgICAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9InN0cnV0cy1odG1sLmh0bWwjcGFzc3dvcmQiPnBhc3N3b3JkPC9hPiBpbnB1dCBmaWVsZHMKKyAgICAgICAgPC9saT4KKyAgICAgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0ic3RydXRzLWh0bWwuaHRtbCNyYWRpbyI+cmFkaW88L2E+IGJ1dHRvbnMKKyAgICAgICAgPC9saT4KKyAgICAgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0ic3RydXRzLWh0bWwuaHRtbCNyZXNldCI+cmVzZXQ8L2E+IGJ1dHRvbnMKKyAgICAgICAgPC9saT4KKyAgICAgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0ic3RydXRzLWh0bWwuaHRtbCNzZWxlY3QiPnNlbGVjdDwvYT4gbGlzdHMgd2l0aCBlbWJlZGRlZCAKKyAgICAgICAgb3B0aW9uIG9yIG9wdGlvbnMgaXRlbXMKKyAgICAgICAgPC9saT4KKyAgICAgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0ic3RydXRzLWh0bWwuaHRtbCNvcHRpb24iPm9wdGlvbjwvYT4KKyAgICAgICAgPC9saT4KKyAgICAgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0ic3RydXRzLWh0bWwuaHRtbCNvcHRpb25zIj5vcHRpb25zPC9hPgorICAgICAgICA8L2xpPgorICAgICAgICAKKyAgICAgICAgPGxpPgorICAgICAgICA8YSBocmVmPSJzdHJ1dHMtaHRtbC5odG1sI3N1Ym1pdCI+c3VibWl0PC9hPiBidXR0b25zCisgICAgICAgIDwvbGk+CisgICAgICAgIAorICAgICAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9InN0cnV0cy1odG1sLmh0bWwjdGV4dCI+dGV4dDwvYT4gaW5wdXQgZmllbGRzCisgICAgICAgIDwvbGk+CisgICAgICAgIAorICAgICAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9InN0cnV0cy1odG1sLmh0bWwjdGV4dGFyZWEiPnRleHRhcmVhczwvYT4KKyAgICAgICAgPC9saT4KKyAgICAgICAgCisgICAgPC91bD4KKworICAgIDxwPgorICAgIEluIGV2ZXJ5CisgICAgY2FzZSwgYSBmaWVsZCB0YWcgbXVzdCBiZSBuZXN0ZWQgd2l0aGluIGEgPGNvZGU+Zm9ybTwvY29kZT4gdGFnLCBzbyB0aGF0CisgICAgdGhlIGZpZWxkIGtub3dzIHdoYXQgYmVhbiB0byB1c2UgZm9yIGluaXRpYWxpemluZyBkaXNwbGF5ZWQgdmFsdWVzLgorICAgIDwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSIzLjMuMyBPdGhlciBVc2VmdWwgUHJlc2VudGF0aW9uIFRhZ3MiIGhyZWY9InByZXNlbnRhdGlvbl90YWdzIj4KKworICAgIDxwPgorICAgIFRoZXJlIGFyZSBzZXZlcmFsIHRhZ3MgdXNlZnVsIGZvciBjcmVhdGluZyBwcmVzZW50YXRpb25zLCBjb25zdWx0IHRoZSAKKyAgICBkb2N1bWVudGF0aW9uIG9uIGVhY2ggc3BlY2lmaWMgdGFnIGxpYnJhcnksIGFsb25nIHdpdGggdGhlIFRhZyBEZXZlbG9wZXJzIAorICAgIEd1aWRlcywgZm9yIG1vcmUgaW5mb3JtYXRpb246CisgICAgPC9wPgorCisgICAgPHVsPgorCisgICAgPGxpPgorICAgIFtsb2dpY10gPGEgaHJlZj0ic3RydXRzLWxvZ2ljLmh0bWwjaXRlcmF0ZSI+aXRlcmF0ZTwvYT4gcmVwZWF0cyBpdHMgCisgICAgdGFnIGJvZHkgb25jZSBmb3IgZWFjaCBlbGVtZW50IG9mIGEgc3BlY2lmaWVkIGNvbGxlY3Rpb24gKHdoaWNoIGNhbiBiZSBhbiAKKyAgICBFbnVtZXJhdGlvbiwgYSBIYXNodGFibGUsIGEgVmVjdG9yLCBvciBhbiBhcnJheSBvZiBvYmplY3RzKS4KKyAgICA8L2xpPgorICAgIAorICAgIDxsaT4KKyAgICBbbG9naWNdIDxhIGhyZWY9InN0cnV0cy1sb2dpYy5odG1sI3ByZXNlbnQiPnByZXNlbnQ8L2E+IGRlcGVuZGluZyBvbiAKKyAgICB3aGljaCAgYXR0cmlidXRlIGlzIHNwZWNpZmllZCwgdGhpcyB0YWcgY2hlY2tzIHRoZSBjdXJyZW50IHJlcXVlc3QsIGFuZCAKKyAgICBldmFsdWF0ZXMgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgb25seSBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlIAorICAgIGlzIHByZXNlbnQuIAorICAgIE9ubHkgb25lIG9mIHRoZSBhdHRyaWJ1dGVzIG1heSBiZSB1c2VkIGluIG9uZSBvY2N1cnJlbmNlIG9mIHRoaXMgdGFnLCAKKyAgICB1bmxlc3MgeW91IHVzZSB0aGUgcHJvcGVydHkgYXR0cmlidXRlLCBpbiB3aGljaCBjYXNlIHRoZSBuYW1lIGF0dHJpYnV0ZSAKKyAgICBpcyBhbHNvIHJlcXVpcmVkLiAKKyAgICBUaGUgYXR0cmlidXRlcyBpbmNsdWRlIGNvb2tpZSwgaGVhZGVyLCBuYW1lLCBwYXJhbWV0ZXIsIHByb3BlcnR5LCByb2xlLCAKKyAgICBzY29wZSwgYW5kIHVzZXIuCisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICBbbG9naWNdIDxhIGhyZWY9InN0cnV0cy1sb2dpYy5odG1sI25vdFByZXNlbnQiPm5vdFByZXNlbnQ8L2E+IHRoZSAKKyAgICBjb21wYW5pb24gdGFnIHRvIHByZXNlbnQsIG5vdFByZXNlbnQgcHJvdmlkZXMgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eSB3aGVuIAorICAgIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlIGlzIG5vdCBwcmVzZW50LgorICAgIDwvbGk+CisgICAgCisgICAgPGxpPgorICAgIFtodG1sXSA8YSBocmVmPSJzdHJ1dHMtaHRtbC5odG1sI2xpbmsiPmxpbms8L2E+IGdlbmVyYXRlcyBhIEhUTUwgCisgICAgJmx0O2EmZ3Q7IGVsZW1lbnQgYXMgYW4gYW5jaG9yIGRlZmluaXRpb24gb3IgYSBoeXBlcmxpbmsgdG8gdGhlIHNwZWNpZmllZCAKKyAgICBVUkwsIGFuZCBhdXRvbWF0aWNhbGx5IGFwcGxpZXMgVVJMIGVuY29kaW5nIHRvIG1haW50YWluIHNlc3Npb24gc3RhdGUgaW4gCisgICAgdGhlIGFic2VuY2Ugb2YgY29va2llIHN1cHBvcnQuCisgICAgPC9saT4KKyAgICAKKyAgICA8bGk+CisgICAgW2h0bWxdIDxhIGhyZWY9InN0cnV0cy1odG1sLmh0bWwjaW1nIj5pbWc8L2E+IGdlbmVyYXRlcyBhIEhUTUwgCisgICAgJmx0O2ltZyZndDsgZWxlbWVudCB3aXRoIHRoZSBhYmlsaXR5IHRvIGR5bmFtaWNhbGx5IG1vZGlmeSB0aGUgVVJMcyAKKyAgICBzcGVjaWZpZWQgYnkgdGhlICJzcmMiIGFuZCAibG93c3JjIiBhdHRyaWJ1dGVzIGluIHRoZSBzYW1lIG1hbm5lciB0aGF0IAorICAgICZsdDtodG1sOmxpbms+IGNhbi4KKyAgICA8L2xpPgorICAgIAorICAgIDxsaT4KKyAgICBbYmVhbl0gPGEgaHJlZj0ic3RydXRzLWJlYW4uaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvYT4gCisgICAgcmV0cmlldmVzIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHJlcXVlc3QgcGFyYW1ldGVyLCBhbmQgZGVmaW5lcyB0aGUgCisgICAgcmVzdWx0IGFzIGEgcGFnZSBzY29wZSBhdHRyaWJ1dGUgb2YgdHlwZSBTdHJpbmcgb3IgU3RyaW5nW10uCisgICAgPC9saT4KKyAgICAKKyAgICA8L3VsPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IjMuMy40IEF1dG9tYXRpYyBGb3JtIFZhbGlkYXRpb24iIGhyZWY9ImZvcm1fdmFsaWRhdGlvbiI+CisKKyAgICA8cD4KKyAgICBJbiBhZGRpdGlvbiB0byB0aGUgZm9ybSBhbmQgYmVhbiBpbnRlcmFjdGlvbnMgZGVzY3JpYmVkIGFib3ZlLCBTdHJ1dHMKKyAgICBvZmZlcnMgYW4gYWRkaXRpb25hbCBmYWNpbGl0eSB0byB2YWxpZGF0ZSB0aGUgaW5wdXQgZmllbGRzIGl0IGhhcyByZWNlaXZlZC4KKyAgICBUbyB1dGlsaXplIHRoaXMgZmVhdHVyZSwgb3ZlcnJpZGUgdGhlIGZvbGxvd2luZyBtZXRob2QgaW4geW91ciBBY3Rpb25Gb3JtCisgICAgY2xhc3M6CisgICAgPC9wPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWwordmFsaWRhdGUoQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QpOworXV0+PC9jb2RlPjwvcHJlPgorCisgICAgPHA+CisgICAgVGhlIDxjb2RlPnZhbGlkYXRlPC9jb2RlPiBtZXRob2QgaXMgY2FsbGVkIGJ5IHRoZSBjb250cm9sbGVyIHNlcnZsZXQgYWZ0ZXIKKyAgICB0aGUgIGJlYW4gcHJvcGVydGllcyBoYXZlIGJlZW4gcG9wdWxhdGVkLCBidXQgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nIAorICAgIGFjdGlvbiBjbGFzcydzIDxjb2RlPmV4ZWN1dGU8L2NvZGU+IG1ldGhvZCBpcyBpbnZva2VkLiAKKyAgICBUaGUgPGNvZGU+dmFsaWRhdGU8L2NvZGU+IG1ldGhvZCBoYXMgdGhlIGZvbGxvd2luZyBvcHRpb25zOgorICAgIDwvcD4KKworICAgIDx1bD4KKworICAgICAgICA8bGk+CisgICAgICAgIFBlcmZvcm0gdGhlIGFwcHJvcHJpYXRlIHZhbGlkYXRpb25zIGFuZCBmaW5kIG5vIHByb2JsZW1zIC0tIFJldHVybgorICAgICAgICBlaXRoZXIgPGNvZGU+bnVsbDwvY29kZT4gb3IgYSB6ZXJvLWxlbmd0aCBBY3Rpb25FcnJvcnMgaW5zdGFuY2UsIAorICAgICAgICBhbmQgdGhlIGNvbnRyb2xsZXIgc2VydmxldCB3aWxsIHByb2NlZWQgdG8gY2FsbCB0aGUgCisgICAgICAgIDxjb2RlPnBlcmZvcm08L2NvZGU+IG1ldGhvZCBvZiB0aGUgYXBwcm9wcmlhdGUgPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcy4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIFBlcmZvcm0gdGhlIGFwcHJvcHJpYXRlIHZhbGlkYXRpb25zIGFuZCBmaW5kIHByb2JsZW1zIC0tIFJldHVybiBhbiAKKyAgICAgICAgQWN0aW9uRXJyb3JzIGluc3RhbmNlIGNvbnRhaW5pbmcgPGNvZGU+QWN0aW9uRXJyb3I8L2NvZGU+J3MsIHdoaWNoIAorICAgICAgICBhcmUgY2xhc3NlcyB0aGF0IGNvbnRhaW4gdGhlIGVycm9yIG1lc3NhZ2Uga2V5cyAoaW50byB0aGUgCisgICAgICAgIGFwcGxpY2F0aW9uJ3MgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gYnVuZGxlKSB0aGF0IHNob3VsZCBiZSAKKyAgICAgICAgZGlzcGxheWVkLiAKKyAgICAgICAgVGhlIGNvbnRyb2xsZXIgc2VydmxldCB3aWxsIHN0b3JlIHRoaXMgYXJyYXkgYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZSAKKyAgICAgICAgc3VpdGFibGUgZm9yIHVzZSBieSB0aGUgPGNvZGU+Jmx0O2h0bWw6ZXJyb3JzJmd0OzwvY29kZT4gdGFnLCBhbmQgCisgICAgICAgIHdpbGwgZm9yd2FyZCBjb250cm9sIGJhY2sgdG8gdGhlIGlucHV0IGZvcm0gKGlkZW50aWZpZWQgYnkgdGhlIAorICAgICAgICA8Y29kZT5pbnB1dDwvY29kZT4gcHJvcGVydHkgZm9yIHRoaXMgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4pLgorICAgICAgICA8L2xpPgorICAgICAgICAKKyAgICA8L3VsPgorCisgICAgPHA+CisgICAgQXMgbWVudGlvbmVkIGVhcmxpZXIsIHRoaXMgZmVhdHVyZSBpcyBlbnRpcmVseSBvcHRpb25hbC4gIAorICAgIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHRoZSA8Y29kZT52YWxpZGF0ZTwvY29kZT4gbWV0aG9kIHJldHVybnMgCisgICAgPGNvZGU+bnVsbDwvY29kZT4sIGFuZCB0aGUgY29udHJvbGxlciBzZXJ2bGV0IHdpbGwgYXNzdW1lIHRoYXQgYW55IAorICAgIHJlcXVpcmVkIHZhbGlkYXRpb24gaXMgZG9uZSBieSB0aGUgYWN0aW9uIGNsYXNzLgorICAgIDwvcD4KKyAgICAKKyAgICA8cD4KKyAgICBPbmUgY29tbW9uIGFwcHJvYWNoIGlzIHRvIHBlcmZvcm0gc2ltcGxlLCBwcmltYSBmYWNpYSB2YWxpZGF0aW9ucyB1c2luZyAKKyAgICB0aGUgQWN0aW9uRm9ybSA8Y29kZT52YWxpZGF0ZTwvY29kZT4gbWV0aG9kLCBhbmQgdGhlbiBoYW5kbGUgdGhlIAorICAgICJidXNpbmVzcyBsb2dpYyIgdmFsaWRhdGlvbiBmcm9tIHRoZSBBY3Rpb24uCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhlIFN0cnV0cyBWYWxpZGF0b3IsIGNvdmVyZWQgaW4gdGhlIG5leHQgc2VjdGlvbiwgbWF5IGJlIHVzZWQgdG8gZWFzaWx5IAorICAgIHZhbGlkYXRlIEFjdGlvbkZvcm1zLgorICAgIDwvcD4KKyAgICAKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gbmFtZT0iMy4zLjUgVGhlIFN0cnV0cyBWYWxpZGF0b3IiIGhyZWY9InZhbGlkYXRvciI+CisKKyAgICA8cD4KKyAgICBDb25maWd1cmluZyB0aGUgVmFsaWRhdG9yIHRvIHBlcmZvcm0gZm9ybSB2YWxpZGF0aW9uIGlzIGVhc3kuCisgICAgPC9wPgorICAgIDxvbD4KKyAgICAKKyAgICA8bGk+CisgICAgVGhlIEFjdGlvbkZvcm0gYmVhbiBtdXN0IGV4dGVuZCBWYWxpZGF0b3JGb3JtCisgICAgPC9saT4KKyAgICA8bGk+CisgICAgVGhlIGZvcm0ncyBKU1AgbXVzdCBpbmNsdWRlIHRoZSAKKyAgICA8YSBocmVmPSJzdHJ1dHMtaHRtbC5odG1sIj4mbHQ7aHRtbDpqYXZhc2NyaXB0Jmd0OzwvYT4gdGFnIGZvciBjbGllbnQgCisgICAgc2lkZSB2YWxpZGF0aW9uLgorICAgIDwvbGk+CisgICAgPGxpPgorICAgIFlvdSBtdXN0IGRlZmluZSB0aGUgdmFsaWRhdGlvbiBydWxlcyBpbiBhbiB4bWwgZmlsZSBsaWtlIHRoaXM6CisgICAgCis8cHJlPjxjb2RlPjwhW0NEQVRBWworPGZvcm0tdmFsaWRhdGlvbj4KKzxmb3Jtc2V0PiAgICAgICAgICAgICAKKzxmb3JtIG5hbWU9ImxvZ29uRm9ybSI+CisgIDxmaWVsZCBwcm9wZXJ0eT0idXNlcm5hbWUiIGRlcGVuZHM9InJlcXVpcmVkIj4KKyAgICA8bXNnIG5hbWU9InJlcXVpcmVkIiBrZXk9ImVycm9yLnVzZXJuYW1lIi8+CisgIDwvZmllbGQ+ICAgIAorPC9mb3JtPiAgICAgICAgCis8L2Zvcm1zZXQ+ICAgCis8L2Zvcm0tdmFsaWRhdGlvbj4KK11dPjwvY29kZT48L3ByZT4KK1RoZSBtc2cgZWxlbWVudCBwb2ludHMgdG8gdGhlIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgdGhlIGVycm9yIG1lc3NhZ2UuCis8L2xpPgorPGxpPkxhc3RseSwgeW91IG11c3QgZW5hYmxlIHRoZSBWYWxpZGF0b3JQbHVnaW4gaW4gdGhlIHN0cnV0cy1jb25maWcueG1sIGZpbGUgbGlrZSB0aGlzOgorPHByZT48Y29kZT48IVtDREFUQVsKKzxwbHVnLWluIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvclBsdWdJbiI+Cis8c2V0LXByb3BlcnR5IAorcHJvcGVydHk9InBhdGhuYW1lcyIgCit2YWx1ZT0iL1dFQi1JTkYvdmFsaWRhdG9yLXJ1bGVzLnhtbCwgCisgICAgL1dFQi1JTkYvdmFsaWRhdGlvbi54bWwiLz4KKzwvcGx1Zy1pbj4KK11dPjwvY29kZT48L3ByZT4KKworICAgICAgICA8L2xpPgorICAgIDwvb2w+CisgICAgCisgICAgPHA+CisgICAgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBJZiB5b3VyIHJlcXVpcmVkIGZvcm0gcHJvcGVydHkgaXMgb25lIG9mIHRoZSBKYXZhIG9iamVjdCByZXByZXNlbnRhdGlvbnMgb2YgCisgICAgcHJpbWl0aXZlIHR5cGVzIChpZS4gamF2YS5sYW5nLkludGVnZXIpLCB5b3UgbXVzdCBzZXQgdGhlIEFjdGlvblNlcnZsZXQncyBjb252ZXJ0TnVsbCBpbml0LgorICAgIHBhcmFtZXRlciB0byB0cnVlLiAgRmFpbGluZyB0byBkbyB0aGlzIHdpbGwgcmVzdWx0IGluIHRoZSByZXF1aXJlZCB2YWxpZGF0aW9uIG5vdCBiZWluZyBwZXJmb3JtZWQKKyAgICBvbiB0aGF0IGZpZWxkIGJlY2F1c2UgaXQgd2lsbCBkZWZhdWx0IHRvIDAuCisgICAgPC9wPgorICAgIAorICAgIDxwPgorICAgIEZvciBtb3JlIGFib3V0IHRoZSBTdHJ1dHMgVmFsaWRhdG9yLCBzZWUgdGhlIAorICAgIDxhIGhyZWY9Ii4vZGV2X3ZhbGlkYXRvci5odG1sIj5EZXZlbG9wZXJzIEd1aWRlPC9hPi4KKyAgICA8L3A+CisgICAgCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IjMuNCBPdGhlciBQcmVzZW50YXRpb24gVGVjaG5pcXVlcyIgaHJlZj0ib3RoZXJfcHJlc2VudGF0aW9ucyI+CisKKyAgICA8cD4KKyAgICBBbHRob3VnaCB0aGUgbG9vayBhbmQgZmVlbCBvZiB5b3VyIGFwcGxpY2F0aW9uIGNhbiBiZSBjb21wbGV0ZWx5CisgICAgY29uc3RydWN0ZWQgYmFzZWQgb24gdGhlIHN0YW5kYXJkIGNhcGFiaWxpdGllcyBvZiBKU1AgYW5kIHRoZSBTdHJ1dHMKKyAgICBjdXN0b20gdGFnIGxpYnJhcnksIHlvdSBzaG91bGQgY29uc2lkZXIgZW1wbG95aW5nIG90aGVyIHRlY2huaXF1ZXMgdGhhdAorICAgIHdpbGwgaW1wcm92ZSBjb21wb25lbnQgcmV1c2UsIHJlZHVjZSBtYWludGVuYW5jZSBlZmZvcnRzLCBhbmQvb3IgcmVkdWNlCisgICAgZXJyb3JzLiAgCisgICAgU2V2ZXJhbCBvcHRpb25zIGFyZSBkaXNjdXNzZWQgaW4gdGhlIGZvbGxvd2luZyBzZWN0aW9ucy4KKyAgICA8L3A+CisgIAorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSIzLjQuMSBBcHBsaWNhdGlvbi1TcGVjaWZpYyBDdXN0b20gVGFncyIgaHJlZj0iY3VzdG9tX3RhZ3MiPgorCisgICAgPHA+CisgICAgQmV5b25kIHVzaW5nIHRoZSBjdXN0b20gdGFncyBwcm92aWRlZCBieSB0aGUgU3RydXRzIGxpYnJhcnksIGl0IGlzIGVhc3kKKyAgICB0byBjcmVhdGUgdGFncyB0aGF0IGFyZSBzcGVjaWZpYyB0byB0aGUgYXBwbGljYXRpb24geW91IGFyZSBidWlsZGluZywgdG8KKyAgICBhc3Npc3QgaW4gY3JlYXRpbmcgdGhlIHVzZXIgaW50ZXJmYWNlLiAgVGhlIE1haWxSZWFkZXIgZXhhbXBsZSBhcHBsaWNhdGlvbiBpbmNsdWRlZCB3aXRoCisgICAgU3RydXRzIGlsbHVzdHJhdGVzIHRoaXMgcHJpbmNpcGxlIGJ5IGNyZWF0aW5nIHRoZSBmb2xsb3dpbmcgdGFncyB1bmlxdWUgdG8KKyAgICB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBhcHBsaWNhdGlvbjoKKyAgICA8L3A+CisKKyAgICA8dWw+CisgICAgPGxpPjxzdHJvbmc+Y2hlY2tMb2dvbjwvc3Ryb25nPiAtIENoZWNrcyBmb3IgdGhlIGV4aXN0ZW5jZSBvZiBhIHBhcnRpY3VsYXIgc2Vzc2lvbgorICAgIG9iamVjdCwgYW5kIGZvcndhcmRzIGNvbnRyb2wgdG8gdGhlIGxvZ29uIHBhZ2UgaWYgaXQgaXMgbWlzc2luZy4gIFRoaXMgaXMKKyAgICB1c2VkIHRvIGNhdGNoIGNhc2VzIHdoZXJlIGEgdXNlciBoYXMgYm9va21hcmtlZCBhIHBhZ2UgaW4gdGhlIG1pZGRsZSBvZgorICAgIHlvdXIgYXBwbGljYXRpb24gYW5kIHRyaWVzIHRvIGJ5cGFzcyBsb2dnaW5nIG9uLCBvciBpZiB0aGUgdXNlcidzIHNlc3Npb24KKyAgICBoYXMgYmVlbiB0aW1lZCBvdXQuIChOb3RlIHRoYXQgdGhlcmUgYXJlIGJldHRlciB3YXlzIHRvIGF1dGhlbnRpY2F0ZSB1c2VyczsgdGhlCisgICAgY2hlY2tMb2dvbiB0YWcgaXMgc2ltcGx5IG1lYW50IHRvIGRlbW9uc3RyYXRlIHdyaXRpbmcgeW91ciBvd24gY3VzdG9tIHRhZ3MuKSA8L2xpPgorICAgIDxsaT48c3Ryb25nPmxpbmtTdWJzY3JpcHRpb248L3N0cm9uZz4gLSBHZW5lcmF0ZXMgYSBoeXBlcmxpbmsgdG8gYSBkZXRhaWxzIHBhZ2UKKyAgICBmb3IgYSBTdWJzY3JpcHRpb24sIHdoaWNoIHBhc3NlcyB0aGUgcmVxdWlyZWQgcHJpbWFyeSBrZXkgdmFsdWVzIGFzCisgICAgcmVxdWVzdCBhdHRyaWJ1dGVzLiAgVGhpcyBpcyB1c2VkIHdoZW4gbGlzdGluZyB0aGUgc3Vic2NyaXB0aW9ucyBhc3NvY2lhdGVkCisgICAgd2l0aCBhIHVzZXIsIGFuZCBwcm92aWRpbmcgbGlua3MgdG8gZWRpdCBvciBkZWxldGUgdGhlbS48L2xpPgorICAgIDxsaT48c3Ryb25nPmxpbmtVc2VyPC9zdHJvbmc+IC0gR2VuZXJhdGVzIGEgaHlwZXJsaW5rIHRvIGEgZGV0YWlscyBwYWdlCisgICAgZm9yIGEgVXNlciwgd2hpY2ggcGFzc2VzIHRoZSByZXF1aXJlZCBwcmltYXJ5IGtleSB2YWx1ZXMgYXMKKyAgICByZXF1ZXN0IGF0dHJpYnV0ZXMuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+CisgICAgVGhlIHNvdXJjZSBjb2RlIGZvciB0aGVzZSB0YWdzIGlzIGluIHRoZSA8Y29kZT5zcmMvZXhhbXBsZTwvY29kZT4gZGlyZWN0b3J5LAorICAgIGluIHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuZXhhbXBsZTwvY29kZT4sIGFsb25nIHdpdGggdGhlIG90aGVyIEphdmEKKyAgICBjbGFzc2VzIHRoYXQgYXJlIHVzZWQgaW4gdGhpcyBhcHBsaWNhdGlvbi4KKyAgICA8L3A+Cis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IjMuNC4yIFBhZ2UgQ29tcG9zaXRpb24gV2l0aCBJbmNsdWRlcyIgaHJlZj0iaW5jbHVkZXMiPgorCisgICAgPHA+CisgICAgQ3JlYXRpbmcgdGhlIGVudGlyZSBwcmVzZW50YXRpb24gb2YgYSBwYWdlIGluIG9uZSBKU1AgZmlsZSAod2l0aCBjdXN0b20KKyAgICB0YWdzIGFuZCBiZWFucyB0byBhY2Nlc3MgdGhlIHJlcXVpcmVkIGR5bmFtaWMgZGF0YSkgaXMgYSB2ZXJ5IGNvbW1vbiAKKyAgICBkZXNpZ24gYXBwcm9hY2gsIGFuZCB3YXMgZW1wbG95ZWQgaW4gdGhlIGV4YW1wbGUgYXBwbGljYXRpb24gaW5jbHVkZWQgCisgICAgd2l0aCBTdHJ1dHMuCisgICAgSG93ZXZlciwgbWFueSBhcHBsaWNhdGlvbnMgcmVxdWlyZSB0aGUgZGlzcGxheSBvZiBtdWx0aXBsZSBsb2dpY2FsbHkgCisgICAgZGlzdGluY3QgcG9ydGlvbnMgb2YgeW91ciBhcHBsaWNhdGlvbiB0b2dldGhlciBvbiBhIHNpbmdsZSBwYWdlLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIEZvciBleGFtcGxlLCBhIHBvcnRhbCBhcHBsaWNhdGlvbiBtaWdodCBoYXZlIHNvbWUgb3IgYWxsIG9mIHRoZSBmb2xsb3dpbmcKKyAgICBmdW5jdGlvbmFsIGNhcGFiaWxpdGllcyBhdmFpbGFibGUgb24gdGhlIHBvcnRhbCdzICJob21lIiBwYWdlOgorICAgIDwvcD4KKworICAgIDx1bD4KKyAgICAKKyAgICAgICAgPGxpPgorICAgICAgICBBY2Nlc3MgdG8gYSBzZWFyY2ggZW5naW5lIGZvciB0aGlzIHBvcnRhbC4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIE9uZSBvciBtb3JlICJuZXdzIGZlZWQiIGRpc3BsYXlzLCB3aXRoIHRoZSB0b3BpY3Mgb2YgaW50ZXJlc3QgCisgICAgICAgIGN1c3RvbWl6ZWRmcm9tIHRoZSB1c2VyJ3MgcmVnaXN0cmF0aW9uIHByb2ZpbGUuCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICBBY2Nlc3MgdG8gZGlzY3Vzc2lvbiB0b3BpY3MgcmVsYXRlZCB0byB0aGlzIHBvcnRhbC4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIEEgIm1haWwgd2FpdGluZyIgaW5kaWNhdG9yIGlmIHlvdXIgcG9ydGFsIHByb3ZpZGVzIGZyZWUgZW1haWwKKyAgICAgICAgYWNjb3VudHMuCisgICAgICAgIDwvbGk+CisgICAgCisgICAgPC91bD4KKworICAgIDxwPgorICAgIFRoZSBkZXZlbG9wbWVudCBvZiB0aGUgdmFyaW91cyBzZWdtZW50cyBvZiB0aGlzIHNpdGUgaXMgZWFzaWVyIGlmIHlvdQorICAgIGNhbiBkaXZpZGUgdXAgdGhlIHdvcmssIGFuZCBhc3NpZ24gZGlmZmVyZW50IGRldmVsb3BlcnMgdG8gdGhlIGRpZmZlcmVudAorICAgIHNlZ21lbnRzLiAgCisgICAgVGhlbiwgeW91IGNhbiB1c2UgdGhlIDxlbT5pbmNsdWRlPC9lbT4gY2FwYWJpbGl0eSBvZiBKYXZhU2VydmVyIFBhZ2VzCisgICAgdGVjaG5vbG9neSB0byBjb21iaW5lIHRoZSByZXN1bHRzIGludG8gYSBzaW5nbGUgcmVzdWx0IHBhZ2UsIG9yIHVzZSB0aGUgCisgICAgaW5jbHVkZSB0YWcgcHJvdmlkZWQgd2l0aCBTdHJ1dHMuICAKKyAgICBUaGVyZSBhcmUgdGhyZWUgdHlwZXMgb2YgPGVtPmluY2x1ZGU8L2VtPiBhdmFpbGFibGUsIGRlcGVuZGluZyBvbiB3aGVuIHlvdSB3CisgICAgYW50IHRoZSBjb21iaW5hdGlvbiBvZiBvdXRwdXQgdG8gb2NjdXI6CisgICAgPC9wPgorCisgICAgPHVsPgorICAgIAorICAgICAgICA8bGk+CisgICAgICAgIEFuIDxjb2RlPiZsdDslQCBpbmNsdWRlIGZpbGU9Inh4eHh4IiAlJmd0OzwvY29kZT4gZGlyZWN0aXZlIGNhbiAKKyAgICAgICAgaW5jbHVkZSBhIGZpbGUgdGhhdCBjb250YWlucyBKYXZhIGNvZGUgb3IgSlNQIHRhZ3MuIAorICAgICAgICBUaGUgY29kZSBpbiB0aGUgaW5jbHVkZWQgZmlsZSBjYW4gZXZlbiByZWZlcmVuY2UgdmFyaWFibGVzIGRlY2xhcmVkIAorICAgICAgICBlYXJsaWVyIGluIHRoZSBvdXRlciBqc3AgcGFnZS4gCisgICAgICAgIFRoZSBjb2RlIGlzIGlubGluZWQgaW50byB0aGUgb3RoZXIgSmF2YVNlcnZlciBQYWdlIGJlZm9yZSBpdCBpcyAKKyAgICAgICAgY29tcGlsZWQgc28gaXQgY2FuIGRlZmluaXRlbHkgY29udGFpbiBtb3JlIHRoYW4ganVzdCBIVE1MLgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgVGhlIGluY2x1ZGUgPGVtPmFjdGlvbjwvZW0+ICg8Y29kZT4mbHQ7anNwOmluY2x1ZGUgcGFnZT0ieHh4eHgiCisgICAgICAgIGZsdXNoPSJ0cnVlIiAvJmd0OzwvY29kZT4pIGlzIHByb2Nlc3NlZCBhdCByZXF1ZXN0IHRpbWUsIGFuZCBpcyAKKyAgICAgICAgaGFuZGxlZCB0cmFuc3BhcmVudGx5IGJ5IHRoZSBzZXJ2ZXIuICAKKyAgICAgICAgQW1vbmcgb3RoZXIgdGhpbmdzLCB0aGF0IG1lYW5zIHlvdSBjYW4gY29uZGl0aW9uYWxseSBwZXJmb3JtIHRoZSAKKyAgICAgICAgaW5jbHVkZSBieSBuZXN0aW5nIGl0IHdpdGhpbiBhIHRhZyBsaWtlIAorICAgICAgICA8YSBocmVmPSJzdHJ1dHMtbG9naWMuaHRtbCNlcXVhbCI+ZXF1YWw8L2E+IGJ5IHVzaW5nIGl0J3MKKyAgICAgICAgcGFyYW1ldGVyIGF0dHJpYnV0ZS4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIFRoZSA8YSBocmVmPSJzdHJ1dHMtYmVhbi5odG1sI2luY2x1ZGUiPmJlYW46aW5jbHVkZTwvYT4gCisgICAgICAgIHRhZyB0YWtlcyBlaXRoZXIgYSBhbiBhcmd1bWVudCAiZm9yd2FyZCIgcmVwcmVzZW50aW5nIGEgbG9naWNhbCBuYW1lIAorICAgICAgICBtYXBwZWQgdG8gdGhlIGpzcCB0byBpbmNsdWRlLCBvciB0aGUgImlkIiBhcmd1bWVudCwgd2hpY2ggcmVwcmVzZW50cyBhIAorICAgICAgICBwYWdlIGNvbnRleHQgU3RyaW5nIHZhcmlhYmxlIHRvIHByaW50IG91dCB0byB0aGUganNwIHBhZ2UuCisgICAgICAgIDwvbGk+CisgICAgCisgICAgPC91bD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSIzLjQuMyBQYWdlIENvbXBvc2l0aW9uIFdpdGggVGlsZXMiIGhyZWY9IlRpbGVzIj4KKworICAgIDxwPgorICAgIFRpbGVzIGlzIGEgcG93ZXJmdWwgdGVtcGxhdGluZyBsaWJyYXJ5IHRoYXQgYWxsb3dzIHlvdSB0byBjb25zdHJ1Y3Qgdmlld3MgCisgICAgYnkgY29tYmluaW5nIHZhcmlvdXMgInRpbGVzIi4gIAorICAgIEhlcmUncyBhIHF1aWNrIHNldHVwIGd1aWRlOgorICAgIDwvcD4KKworICAgIDxvbD4KKyAgICAgICAgPGxpPgorICAgICAgICBDcmVhdGUgYSAvbGF5b3V0L2xheW91dC5qc3AgZmlsZSB0aGF0IGNvbnRhaW5zIHlvdXIgYXBwJ3MgY29tbW9uIGxvb2sgYW5kIAorICAgICAgICBmZWVsOgorICAgIAorPHByZT48Y29kZT48IVtDREFUQVsKKzxodG1sPgorPGJvZHk+Cis8dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0iYm9keSIvPgorPC9ib2R5PgorPC9odG1sPgorXV0+PC9jb2RlPjwvcHJlPgorICAgICAgICA8L2xpPgorICAgICAgICAKKyAgICAgICAgPGxpPgorICAgIENyZWF0ZSB5b3VyIC9pbmRleC5qc3AgaG9tZXBhZ2UgZmlsZToKKyAgICAKKzxwcmU+PGNvZGU+PCFbQ0RBVEFbCis8aDE+VGhpcyBpcyBteSBob21lcGFnZTwvaDE+CitdXT48L2NvZGU+PC9wcmU+CisKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIENyZWF0ZSBhIC9XRUItSU5GL3RpbGVzLWRlZnMueG1sIGZpbGUgdGhhdCBsb29rcyBsaWtlIHRoaXM6CisKKzxwcmU+PGNvZGU+PCFbQ0RBVEFbCis8dGlsZXMtZGVmaW5pdGlvbnM+Cis8ZGVmaW5pdGlvbiAKKyAgICBuYW1lPSJsYXlvdXQiIAorICAgIHBhdGg9Ii9sYXlvdXQvbGF5b3V0LmpzcCI+CisgICAgPHB1dCBuYW1lPSJib2R5IiB2YWx1ZT0iIi8+Cis8L2RlZmluaXRpb24+Cis8ZGVmaW5pdGlvbiBuYW1lPSJob21lcGFnZSIgZXh0ZW5kcz0ibGF5b3V0Ij4KKyAgICA8cHV0IAorICAgICAgICBuYW1lPSJib2R5IiAKKyAgICAgICAgdmFsdWU9Ii9pbmRleC5qc3AiLz4KKzwvZGVmaW5pdGlvbj4KKzx0aWxlcy1kZWZpbml0aW9ucz4KK11dPjwvY29kZT48L3ByZT4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIFNldHVwIHRoZSBUaWxlc1BsdWdpbiBpbiB0aGUgc3RydXRzLWNvbmZpZy54bWwgZmlsZToKKyAgICAgICAgCis8cHJlPjxjb2RlPjwhW0NEQVRBWworPHBsdWctaW4gCisgICAgY2xhc3NOYW1lPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1BsdWdpbiI+CisgICAgPHNldC1wcm9wZXJ0eSAKKyAgICAgICAgcHJvcGVydHk9ImRlZmluaXRpb25zLWNvbmZpZyIgCisgICAgICAgIHZhbHVlPSIvV0VCLUlORi90aWxlcy1kZWZzLnhtbCIvPgorPC9wbHVnLWluPgorXV0+PC9jb2RlPjwvcHJlPgorICAgICAgICA8L2xpPgorICAgICAgICAKKyAgICAgICAgPGxpPgorICAgICAgICBTZXR1cCBhbiBhY3Rpb24gbWFwcGluZyBpbiBzdHJ1dHMtY29uZmlnLnhtbCB0byBwb2ludCB0byB5b3VyIAorICAgICAgICBob21lcGFnZSB0aWxlOgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWworPGFjdGlvbiAKK3BhdGg9Ii9pbmRleCIKK3R5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuRm9yd2FyZEFjdGlvbiIKK3BhcmFtZXRlcj0iaG9tZXBhZ2UiLz4KK11dPjwvY29kZT48L3ByZT4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPC9vbD4KKworICAgICAgICA8cD4KKyAgICAgICAgVGhlIFRpbGVzUGx1Z2luIGNvbmZpZ3VyZXMgYSBzcGVjaWFsIFJlcXVlc3RQcm9jZXNzb3IgdGhhdCBkZXRlcm1pbmVzIAorICAgICAgICBpZiB0aGUgcmVxdWVzdGVkIHZpZXcgaXMgYSB0aWxlIGFuZCBwcm9jZXNzZXMgaXQgYWNjb3JkaW5nbHkuICAKKyAgICAgICAgTm90ZSB0aGF0IHdlIG1hZGUgdGhlIGhvbWVwYWdlIHRpbGUgZXh0ZW5kIG91ciByb290IGxheW91dCB0aWxlIGFuZCAKKyAgICAgICAgY2hhbmdlZCB0aGUgYm9keSBhdHRyaWJ1dGUuICAKKyAgICAgICAgVGlsZXMgaW5zZXJ0cyB0aGUgZmlsZSBuYW1lZCBpbiB0aGUgYm9keSBhdHRyaWJ1dGUgaW50byB0aGUgbWFpbiAKKyAgICAgICAgbGF5b3V0LgorICAgICAgICA8L3A+CisKKyAgICAgICAgPHA+CisgICAgICAgIFNlZSB0aGUgdGlsZXMtZG9jdW1lbnRhdGlvbiB3ZWJhcHAgZm9yIGluLWRlcHRoIGV4YW1wbGVzLgorICAgICAgICA8L3A+CisgIAorICA8L3NlY3Rpb24+CisKKyAgPHNlY3Rpb24gbmFtZT0iMy40LjQgSW1hZ2UgUmVuZGVyaW5nIENvbXBvbmVudHMiIGhyZWY9ImltYWdlX3JlbmRlcmluZyI+CisKKyAgICAgICAgPHA+CisgICAgICAgIFNvbWUgYXBwbGljYXRpb25zIHJlcXVpcmUgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGltYWdlcywgbGlrZSB0aGUgCisgICAgICAgIHByaWNlIGNoYXJ0cyBvbiBhIHN0b2NrIHJlcG9ydGluZyBzaXRlLiAgCisgICAgICAgIFR3byBkaWZmZXJlbnQgYXBwcm9hY2hlcyBhcmUgY29tbW9ubHkgIHVzZWQgdG8gbWVldCB0aGVzZSAKKyAgICAgICAgcmVxdWlyZW1lbnRzOgorICAgICAgICA8L3A+CisKKyAgICA8dWw+CisgIAorICAgICAgICA8bGk+CisgICAgICAgIFJlbmRlciBhIGh5cGVybGluayB3aXRoIGEgVVJMIHRoYXQgZXhlY3V0ZXMgYSBzZXJ2bGV0IHJlcXVlc3QuICAKKyAgICAgICAgVGhlIHNlcnZsZXQgd2lsbCB1c2UgYSBncmFwaGljcyBsaWJyYXJ5IHRvIHJlbmRlciB0aGUgZ3JhcGhpY2FsIGltYWdlLAorICAgICAgICBzZXQgdGhlIGNvbnRlbnQgdHlwZSBhcHByb3ByaWF0ZWx5IChzdWNoIGFzIHRvIAorICAgICAgICA8Y29kZT5pbWFnZS9naWY8L2NvZGU+KSwgYW5kIHNlbmQgYmFjayB0aGUgYnl0ZXMgb2YgdGhhdCBpbWFnZSB0byB0aGUgCisgICAgICAgIGJyb3dzZXIsIHdoaWNoIHdpbGwgZGlzcGxheSB0aGVtIGp1c3QgYXMgaWYgaXQgaGFkIHJlY2VpdmVkIGEgc3RhdGljIAorICAgICAgICBmaWxlLgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgUmVuZGVyIHRoZSBIVE1MIGNvZGUgbmVjZXNzYXJ5IHRvIGRvd25sb2FkIGEgSmF2YSBhcHBsZXQgdGhhdCAKKyAgICAgICAgY3JlYXRlcyB0aGUgcmVxdWlyZWQgZ3JhcGguICAKKyAgICAgICAgWW91IGNhbiBjb25maWd1cmUgdGhlIGdyYXBoIGJ5IHNldHRpbmcgYXBwcm9wcmlhdGUgaW5pdGlhbGl6YXRpb24gCisgICAgICAgIHBhcmFtZXRlcnMgZm9yIHRoZSBhcHBsZXQgaW4gdGhlIHJlbmRlcmVkIGNvZGUsIG9yIHlvdSBjYW4gaGF2ZSB0aGUgCisgICAgICAgIGFwcGxldCBtYWtlIGl0cyBvd24gY29ubmVjdGlvbiB0byB0aGUgc2VydmVyIHRvIHJlY2VpdmUKKyAgICAgICAgdGhlc2UgcGFyYW1ldGVycy4KKyAgICAgICAgPC9saT4KKyAgICAgICAgCisgICAgPC91bD4KKyAgICAKKyAgPC9zZWN0aW9uPgorCisgIDxzZWN0aW9uIG5hbWU9IjMuNC41IFJlbmRlcmluZyBUZXh0IiBocmVmPSJ0ZXh0X3JlbmRlcmluZyI+CisKKyAgICA8cD4KKyAgICBTb21lIGFwcGxpY2F0aW9ucyByZXF1aXJlIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCB0ZXh0IG9yIG1hcmt1cCwKKyAgICBzdWNoIGFzIFhNTC4gCisgICAgSWYgYSBjb21wbGV0ZSBwYWdlIGlzIGJlaW5nIHJlbmRlcmVkLCBhbmQgY2FuIGJlIG91dHB1dCB1c2luZyBhIAorICAgIFByaW50V3JpdGVyLCB0aGlzIGlzIHZlcnkgZWFzeSB0byBkbyBmcm9tIGFuIEFjdGlvbjoKKyAgICA8L3A+CisKKzxwcmU+PGNvZGU+PCFbQ0RBVEFbCityZXNwb25zZS5zZXRDb250ZW50VHlwZSgidGV4dC9wbGFpbiIpOyAvLyBvciB0ZXh0L3htbAorUHJpbnRXcml0ZXIgd3JpdGVyID0gcmVzcG9uc2UuZ2V0V3JpdGVyKCk7CisvLyB1c2Ugd3JpdGVyIHRvIHJlbmRlciB0ZXh0CityZXR1cm4obnVsbCk7CitdXT48L2NvZGU+PC9wcmU+CisKKzwvc2VjdGlvbj4KKworICAgIDxzZWN0aW9uIG5hbWU9IjMuNC42IFRoZSBTdHJ1dHMtRUwgVGFnIExpYnJhcnkiIGhyZWY9InN0cnV0cy1lbCI+CisgICAgCisgICAgPHA+CisgICAgVGhlIDxzdHJvbmc+U3RydXRzLUVMPC9zdHJvbmc+IHRhZyBsaWJyYXJ5IGlzIGEgY29udHJpYnV0ZWQgbGlicmFyeSBpbgorICAgIHRoZSBTdHJ1dHMgZGlzdHJpYnV0aW9uLiAgCisgICAgSXQgcmVwcmVzZW50cyBhbiBpbnRlZ3JhdGlvbiBvZiB0aGUgU3RydXRzIHRhZyBsaWJyYXJ5IHdpdGggdGhlIEphdmFTZXJ2ZXIgCisgICAgUGFnZXMgU3RhbmRhcmQgVGFnIExpYnJhcnksIG9yIGF0IGxlYXN0IHRoZSAiZXhwcmVzc2lvbiBldmFsdWF0aW9uIiAKKyAgICBlbmdpbmUgdGhhdCBpcyB1c2VkIGJ5IHRoZSBKU1RMLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFRoZSBiYXNlIFN0cnV0cyB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHdoaWNoIHJlbHkgb24gdGhlIGV2YWx1YXRpb24KKyAgICBvZiAicnRleHBydmFsdWUicyAocnVudGltZSBzY3JpcHRsZXQgZXhwcmVzc2lvbnMpIHRvIGV2YWx1YXRlIGR5bmFtaWMKKyAgICBhdHRyaWJ1dGUgdmFsdWVzLiAgRm9yIGluc3RhbmNlLCB0byBwcmludCBhIG1lc3NhZ2UgZnJvbSBhIHByb3BlcnRpZXMKKyAgICBmaWxlIGJhc2VkIG9uIGEgcmVzb3VyY2Uga2V5LCB5b3Ugd291bGQgdXNlIHRoZQorICAgIDxjb2RlPmJlYW46d3JpdGU8L2NvZGU+IHRhZywgcGVyaGFwcyBsaWtlIHRoaXM6PC9wPgorICAgIDxwcmU+PGNvZGU+CisgICAgPCFbQ0RBVEFbPGJlYW46bWVzc2FnZSBrZXk9JzwlPSBzdHJpbmd2YXIgJT4nLz5dXT4KKyAgICA8L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICBUaGlzIGFzc3VtZXMgdGhhdCA8Y29kZT5zdHJpbmd2YXI8L2NvZGU+IGV4aXN0cyBhcyBhIEpTUCBzY3JpcHRpbmcKKyAgICB2YXJpYWJsZS4gIElmIHlvdSdyZSB1c2luZyB0aGUgPHN0cm9uZz5TdHJ1dHMtRUw8L3N0cm9uZz4gbGlicmFyeSwgdGhlCisgICAgcmVmZXJlbmNlIGxvb2tzIHZlcnkgc2ltaWxhciwgYnV0IHNsaWdodGx5IGRpZmZlcmVudCwgbGlrZSB0aGlzOjwvcD4KKyAgICA8cHJlPjxjb2RlPgorICAgIDwhW0NEQVRBWzxiZWFuLWVsOm1lc3NhZ2Uga2V5PSIke3N0cmluZ3Zhcn0iLz5dXT4KKyAgICA8L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICBJZiB5b3Ugd2FudCB0byBrbm93IGhvdyB0byBwcm9wZXJseSB1c2UgdGhlIDxzdHJvbmc+U3RydXRzLUVMPC9zdHJvbmc+CisgICAgdGFnIGxpYnJhcnksIHRoZXJlIGFyZSB0d28gaW1wb3J0YW50IHRoaW5ncyB5b3UgbmVlZCB0byBrbm93OgorICAgIDwvcD4KKyAgICAKKyAgICA8dWw+CisgICAgCisgICAgICAgIDxsaT4KKyAgICAgICAgVGhlIFN0cnV0cyB0YWcgbGlicmFyeQorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgVGhlIEphdmFTZXJ2ZXIgUGFnZXMgU3RhbmRhcmQgdGFnIGxpYnJhcnkKKyAgICAgICAgPC9saT4KKworICAgIDwvdWw+CisKKworICAgIDxwPgorICAgIE9uY2UgeW91IHVuZGVyc3RhbmQgaG93IHRvIHVzZSB0aGVzZSB0d28sIGNvbnNpZGVyIFN0cnV0cyB0YWcKKyAgICBhdHRyaWJ1dGUgdmFsdWVzIGJlaW5nIGV2YWx1YXRlZCB0aGUgc2FtZSB3YXkgdGhlIEpTVEwgdGFnIGF0dHJpYnV0ZQorICAgIHZhbHVlcyBhcmUuICAKKyAgICBQYXN0IHRoYXQsIHRoZXJlIGlzIHZlcnkgbGl0dGxlIGVsc2UgeW91IG5lZWQgdG8ga25vdyB0byBlZmZlY3RpdmVseSB1c2UgCisgICAgdGhlIDxzdHJvbmc+U3RydXRzLUVMPC9zdHJvbmc+IHRhZyBsaWJyYXJ5LgorICAgIDwvcD4KKyAgICAKKyAgICA8cD4KKyAgICBBbHRob3VnaCB0aGUgPHN0cm9uZz5TdHJ1dHMtRUw8L3N0cm9uZz4gdGFnIGxpYnJhcnkgaXMgYSBkaXJlY3QgInBvcnQiCisgICAgb2YgdGhlIHRhZ3MgZnJvbSB0aGUgU3RydXRzIHRhZyBsaWJyYXJ5LCBub3QgYWxsIG9mIHRoZSB0YWdzIGluIHRoZQorICAgIFN0cnV0cyB0YWcgbGlicmFyeSB3ZXJlIGltcGxlbWVudGVkIGluIHRoZSA8c3Ryb25nPlN0cnV0cy1FTDwvc3Ryb25nPgorICAgIHRhZyBsaWJyYXJ5LiAgCisgICAgVGhpcyB3YXMgdGhlIGNhc2UgaWYgaXQgd2FzIGNsZWFyIHRoYXQgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYSBwYXJ0aWN1bGFyIAorICAgIFN0cnV0cyB0YWcgY291bGQgYmUgZW50aXJlbHkgZnVsZmlsbGVkIGJ5IGEgdGFnIGluIHRoZSBKU1RMLiAgCisgICAgSXQgaXMgYXNzdW1lZCB0aGF0IGRldmVsb3BlcnMgd2lsbCB3YW50IHRvIHVzZSB0aGUgCisgICAgPHN0cm9uZz5TdHJ1dHMtRUw8L3N0cm9uZz4gdGFnIGxpYnJhcnkgYWxvbmcgd2l0aCB0aGUgSlNUTCwgc28gaXQgaXMgCisgICAgcmVhc29uYWJsZSB0byBhc3N1bWUgdGhhdCB0aGV5IHdpbGwgdXNlIHRhZ3MgZnJvbSB0aGUgSlNUTCBpZiB0aGV5CisgICAgZmlsbCB0aGVpciBuZWVkcy4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBGb3IgbW9yZSBzZWUsIDxhIGhyZWY9Ii4uL2ZhcXMvc3RydXRzLWVsLmh0bWwiPlN0cnV0cy1FbCBFeHRlbnNpb248L2E+IGluIHRoZSBGQVEvSE9XVE8gc2VjdGlvbi4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24+CisgICAgPHAgY2xhc3M9InJpZ2h0Ij4KKyAgICBOZXh0OiA8YSBocmVmPSJidWlsZGluZ19jb250cm9sbGVyLmh0bWwiPkJ1aWxkaW5nIENvbnRyb2xsZXIgCisgICAgQ29tcG9uZW50czwvYT4KKyAgICA8L3A+Cis8L3NlY3Rpb24+CisKKworPC9ib2R5PgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9jb25maWd1cmF0aW9uLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9jb25maWd1cmF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzMyMDFlCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2NvbmZpZ3VyYXRpb24ueG1sCkBAIC0wLDAgKzEsMTMwNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSJjb25maWd1cmF0aW9uLmh0bWwiPgorCis8cHJvcGVydGllcz4KKyAgICA8dGl0bGU+VGhlIFN0cnV0cyBVc2VyJ3MgR3VpZGUgLSBDb25maWd1cmluZyBBcHBsaWNhdGlvbnM8L3RpdGxlPgorPC9wcm9wZXJ0aWVzPgorCis8Ym9keT4KKzxzZWN0aW9uIG5hbWU9IjUuIENvbmZpZ3VyaW5nIEFwcGxpY2F0aW9ucyIgaHJlZj0iY29uZmlnX2FwcHMiLz4KKworPHNlY3Rpb24gbmFtZT0iNS4xIE92ZXJ2aWV3IiBocmVmPSJjb25maWctb3ZlcnZpZXciPgorCisgICAgPHA+CisgICAgQmVmb3JlIHlvdSBjYW4gYnVpbGQgYW4gYXBwbGljYXRpb24sIHlvdSBuZWVkIHRvIGxheSBhIHNvbGlkIGZvdW5kYXRpb24uCisgICAgVGhlcmUgYXJlIHNldmVyYWwgc2V0dXAgdGFza3MgeW91IG5lZWQgdG8gcGVyZm9ybSBiZWZvcmUgZGVwbG95aW5nCisgICAgeW91ciBTdHJ1dHMgYXBwbGljYXRpb24uCisgICAgVGhlc2UgaW5jbHVkZSBjb21wb25lbnRzIGluIHRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlCisgICAgYW5kIGluIHRoZSBXZWIgQXBwbGljYXRpb24gRGVwbG95bWVudCBEZXNjcmlwdG9yLgorICAgIDwvcD4KKworIDwvc2VjdGlvbj4KKworIDxzZWN0aW9uIG5hbWU9IjUuMiBUaGUgU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZSIgIGhyZWY9InN0cnV0cy1jb25maWciPgorCisgICAgPHA+CisgICAgVGhlIDxhIGhyZWY9ImJ1aWxkaW5nX2NvbnRyb2xsZXIuaHRtbCNjb25maWciPkJ1aWxkaW5nIENvbnRyb2xsZXIKKyAgICBDb21wb25lbnRzPC9hPiBjaGFwdGVyIGNvdmVyZWQgd3JpdGluZyB0aGUgZm9ybS1iZWFuIGFuZCBhY3Rpb24tbWFwcGluZworICAgIHBvcnRpb25zIG9mIHRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlLgorICAgIFRoZXNlIGVsZW1lbnRzIHVzdWFsbHkgcGxheSBhbiBpbXBvcnRhbnQgcm9sZSBpbiB0aGUgZGV2ZWxvcG1lbnQgb2YgYQorICAgIFN0cnV0cyBhcHBsaWNhdGlvbi4KKyAgICBUaGUgb3RoZXIgZWxlbWVudHMgaW4gU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZSB0ZW5kIHRvIGJlIHN0YXRpYzoKKyAgICB5b3Ugc2V0IHRoZW0gb25jZSBhbmQgbGVhdmUgdGhlbSBhbG9uZS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGVzZSAic3RhdGljIiBjb25maWd1cmF0aW9uIGVsZW1lbnRzIGFyZToKKyAgICA8L3A+CisKKyAgICA8dWw+CisKKyAgICAgICAgPGxpPgorICAgICAgICAgICAgY29udHJvbGxlcgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgICAgIG1lc3NhZ2UtcmVzb3VyY2VzCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICAgICAgcGx1Zy1pbgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgICAgIGRhdGEtc291cmNlcworICAgICAgICA8L2xpPgorCisgICAgPC91bD4KKworIDwvc2VjdGlvbj4KKworIDxzZWN0aW9uIG5hbWU9IjUuMi4xIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiIgaHJlZj0iY29udHJvbGxlcl9jb25maWciPgorCisgICAgPHA+CisgICAgVGhlIDxjb2RlPiZsdDtjb250cm9sbGVyJmd0OzwvY29kZT4gZWxlbWVudCBhbGxvd3MgeW91IHRvIGNvbmZpZ3VyZQorICAgIHRoZSBBY3Rpb25TZXJ2bGV0LgorICAgIE1hbnkgb2YgdGhlIGNvbnRyb2xsZXIgcGFyYW1ldGVycyB3ZXJlIHByZXZpb3VzbHkgZGVmaW5lZCBieSBzZXJ2bGV0CisgICAgaW5pdGlhbGl6YXRpb24gcGFyYW1ldGVycyBpbiB5b3VyIDxjb2RlPndlYi54bWw8L2NvZGU+IGZpbGUgYnV0IGhhdmUgYmVlbgorICAgIG1vdmVkIHRvIHRoaXMgc2VjdGlvbiBvZiA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4gaW4gb3JkZXIgdG8gYWxsb3cKKyAgICBkaWZmZXJlbnQgbW9kdWxlcyBpbiB0aGUgc2FtZSB3ZWIgYXBwbGljYXRpb24gdG8gYmUgY29uZmlndXJlZCBkaWZmZXJlbnRseS4KKyAgICBGb3IgZnVsbCBkZXRhaWxzIG9uIGF2YWlsYWJsZSBwYXJhbWV0ZXJzIHNlZSB0aGUKKyAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9kdGRzL3N0cnV0cy1jb25maWdfMV8xLmR0ZCI+CisgICAgc3RydXRzLWNvbmZpZ18xXzEuZHRkPC9hPiBvciB0aGUgbGlzdCBiZWxvdy4KKyAgICA8L3A+CisKKyAgICAKKworICAgIDx1bD4KKworICAgICAgICA8bGk+CisgICAgICAgIDxzdHJvbmc+YnVmZmVyU2l6ZTwvc3Ryb25nPiAtIFRoZSBzaXplIChpbiBieXRlcykgb2YgdGhlIGlucHV0IGJ1ZmZlcgorICAgICAgICB1c2VkIHdoZW4gcHJvY2Vzc2luZyBmaWxlIHVwbG9hZHMuCisgICAgICAgIFs0MDk2XSAob3B0aW9uYWwpCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8c3Ryb25nPmNsYXNzTmFtZTwvc3Ryb25nPiAtIENsYXNzbmFtZSBvZiBjb25maWd1cmF0aW9uIGJlYW4uCisgICAgICAgIFtvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29udHJvbGxlckNvbmZpZ10gKG9wdGlvbmFsKQorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5jb250ZW50VHlwZTwvc3Ryb25nPiAtIERlZmF1bHQgY29udGVudCB0eXBlIChhbmQgb3B0aW9uYWwgY2hhcmFjdGVyCisgICAgICAgIGVuY29kaW5nKSB0byBiZSBzZXQgb24gZWFjaCByZXNwb25zZS4KKyAgICAgICAgTWF5IGJlIG92ZXJyaWRkZW4gYnkgdGhlIEFjdGlvbiwgSlNQLCBvciBvdGhlciByZXNvdXJjZSB0byB3aGljaAorICAgICAgICB0aGUgcmVxdWVzdCBpcyBmb3J3YXJkZWQuCisgICAgICAgIFt0ZXh0L2h0bWxdIChvcHRpb25hbCkKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxzdHJvbmc+Zm9yd2FyZFBhdHRlcm48L3N0cm9uZz4gLSBSZXBsYWNlbWVudCBwYXR0ZXJuIGRlZmluaW5nIGhvdyB0aGUgInBhdGgiCisgICAgICAgIGF0dHJpYnV0ZSBvZiBhIDxjb2RlPiZsdDtmb3J3YXJkJmd0OzwvY29kZT4gZWxlbWVudCBpcyBtYXBwZWQgdG8gYQorICAgICAgICBjb250ZXh0LXJlbGF0aXZlIFVSTCB3aGVuIGl0IHN0YXJ0cyB3aXRoIGEgc2xhc2ggKGFuZCB3aGVuIHRoZQorICAgICAgICA8Y29kZT5jb250ZXh0UmVsYXRpdmU8L2NvZGU+IHByb3BlcnR5IGlzIDxjb2RlPmZhbHNlPC9jb2RlPikuCisgICAgICAgIFRoaXMgdmFsdWUgbWF5IGNvbnNpc3Qgb2YgYW55IGNvbWJpbmF0aW9uIG9mIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgPHVsPgorCisgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICA8ZW0+JE08L2VtPiAtIFJlcGxhY2VkIGJ5IHRoZSBtb2R1bGUgcHJlZml4IG9mIHRoaXMgbW9kdWxlLgorICAgICAgICAgICAgPC9saT4KKworICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgPGVtPiRQPC9lbT4gLSBSZXBsYWNlZCBieSB0aGUgInBhdGgiIGF0dHJpYnV0ZSBvZiB0aGUgc2VsZWN0ZWQKKyAgICAgICAgICAgIDxjb2RlPiZsdDtmb3J3YXJkJmd0OzwvY29kZT4gZWxlbWVudC4KKyAgICAgICAgICAgIDwvbGk+CisKKyAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgIDxlbT4kJDwvZW0+IC0gQ2F1c2VzIGEgbGl0ZXJhbCBkb2xsYXIgc2lnbiB0byBiZSByZW5kZXJlZC4KKyAgICAgICAgICAgIDwvbGk+CisKKyAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgIDxlbT4keDwvZW0+IC0gKFdoZXJlICJ4IiBpcyBhbnkgY2hhcmFjdGVyIG5vdCBkZWZpbmVkIGFib3ZlKQorICAgICAgICAgICAgU2lsZW50bHkgc3dhbGxvd2VkLCByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS4KKyAgICAgICAgICAgIDwvbGk+CisKKyAgICAgICAgPC91bD4KKworICAgICAgICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBmb3J3YXJkUGF0dGVybiBpcyBjb25zaXN0ZW50IHdpdGggdGhlCisgICAgICAgIHByZXZpb3VzIGJlaGF2aW9yIG9mIGZvcndhcmRzLgorICAgICAgICBbJE0kUF0gKG9wdGlvbmFsKQorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5pbnB1dEZvcndhcmQ8L3N0cm9uZz4gLSBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgeW91IHdhbnQgdGhlCisgICAgICAgIDxjb2RlPmlucHV0PC9jb2RlPiBhdHRyaWJ1dGUgb2YgPGNvZGU+Jmx0O2FjdGlvbiZndDs8L2NvZGU+IGVsZW1lbnRzCisgICAgICAgIHRvIGJlIHRoZSBuYW1lIG9mIGEgbG9jYWwgb3IgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+LCB3aGljaAorICAgICAgICB3aWxsIHRoZW4gYmUgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHVsdGltYXRlIFVSTC4KKyAgICAgICAgU2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiB0byB0cmVhdCB0aGUgPGNvZGU+aW5wdXQ8L2NvZGU+IHBhcmFtZXRlciBvZgorICAgICAgICA8Y29kZT4mbHQ7YWN0aW9uJmd0OzwvY29kZT4gZWxlbWVudHMgYXMgYSBtb2R1bGUtcmVsYXRpdmUgcGF0aCB0bworICAgICAgICB0aGUgcmVzb3VyY2UgdG8gYmUgdXNlZCBhcyB0aGUgaW5wdXQgZm9ybS4KKyAgICAgICAgW2ZhbHNlXSAob3B0aW9uYWwpCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8c3Ryb25nPmxvY2FsZTwvc3Ryb25nPiAtIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB5b3Ugd2FudCBhCisgICAgICAgIDxjb2RlPkxvY2FsZTwvY29kZT4gb2JqZWN0IHN0b3JlZCBpbiB0aGUgdXNlcidzIHNlc3Npb24gaWYgbm90IGFscmVhZHkKKyAgICAgICAgcHJlc2VudC4KKyAgICAgICAgW3RydWVdIChvcHRpb25hbCkKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxzdHJvbmc+bWF4RmlsZVNpemU8L3N0cm9uZz4gLSBUaGUgbWF4aW11bSBzaXplIChpbiBieXRlcykgb2YgYSBmaWxlIHRvIGJlCisgICAgICAgIGFjY2VwdGVkIGFzIGEgZmlsZSB1cGxvYWQuCisgICAgICAgIENhbiBiZSBleHByZXNzZWQgYXMgYSBudW1iZXIgZm9sbG93ZWQgYnkgYSAiSyIsICJNIiwgb3IgIkciLAorICAgICAgICB3aGljaCBhcmUgaW50ZXJwcmV0ZWQgdG8gbWVhbiBraWxvYnl0ZXMsIG1lZ2FieXRlcywgb3IgZ2lnYWJ5dGVzLAorICAgICAgICByZXNwZWN0aXZlbHkuCisgICAgICAgIFsyNTBNXSAob3B0aW9uYWwpCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8c3Ryb25nPm1lbUZpbGVTaXplPC9zdHJvbmc+IC0gVGhlIG1heGltdW0gc2l6ZSAoaW4gYnl0ZXMpIG9mIGEgZmlsZSB3aG9zZSAKKyAgICAgICAgY29udGVudHMgd2lsbCBiZSByZXRhaW5lZCBpbiBtZW1vcnkgYWZ0ZXIgdXBsb2FkaW5nLiBGaWxlcyBsYXJnZXIgdGhhbiB0aGlzCisgICAgICAgIHRocmVzaG9sZCB3aWxsIGJlIHdyaXR0ZW4gdG8gc29tZSBhbHRlcm5hdGl2ZSBzdG9yYWdlIG1lZGl1bSwgdHlwaWNhbGx5CisgICAgICAgIGEgaGFyZCBkaXNrLiBDYW4gYmUgZXhwcmVzc2VkIGFzIGEgbnVtYmVyIGZvbGxvd2VkIGJ5IGEgIksiLCAiTSIsIG9yCisgICAgICAgICJHIiwgd2hpY2ggYXJlIGludGVycHJldGVkIHRvIG1lYW4ga2lsb2J5dGVzLCBtZWdhYnl0ZXMsIG9yIGdpZ2FieXRlcywKKyAgICAgICAgcmVzcGVjdGl2ZWx5LgorICAgICAgICBbMjU2S10gKG9wdGlvbmFsKQorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5tdWx0aXBhcnRDbGFzczwvc3Ryb25nPiAtIFRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZQorICAgICAgICBtdWx0aXBhcnQgcmVxdWVzdCBoYW5kbGVyIGNsYXNzIHRvIGJlIHVzZWQgd2l0aCB0aGlzIG1vZHVsZS4KKyAgICAgICAgW29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXJdIChvcHRpb25hbCkKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxzdHJvbmc+bm9jYWNoZTwvc3Ryb25nPiAtIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB5b3Ugd2FudCB0aGUgY29udHJvbGxlcgorICAgICAgICB0byBhZGQgSFRUUCBoZWFkZXJzIGZvciBkZWZlYXRpbmcgY2FjaGluZyB0byBldmVyeSByZXNwb25zZSBmcm9tCisgICAgICAgIHRoaXMgbW9kdWxlLgorICAgICAgICBbZmFsc2VdIChvcHRpb25hbCkKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxzdHJvbmc+cGFnZVBhdHRlcm48L3N0cm9uZz4gLSBSZXBsYWNlbWVudCBwYXR0ZXJuIGRlZmluaW5nIGhvdyB0aGUKKyAgICAgICAgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIG9mIGN1c3RvbSB0YWdzIHVzaW5nIGl0IGlzIG1hcHBlZCB0byBhCisgICAgICAgIGNvbnRleHQtcmVsYXRpdmUgVVJMIG9mIHRoZSBjb3JyZXNwb25kaW5nIHJlc291cmNlLgorICAgICAgICBUaGlzIHZhbHVlIG1heSBjb25zaXN0IG9mIGFueSBjb21iaW5hdGlvbiBvZiB0aGUgZm9sbG93aW5nOgorCisgICAgICAgIDx1bD4KKworICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgPGVtPiRNPC9lbT4gLSBSZXBsYWNlZCBieSB0aGUgbW9kdWxlIHByZWZpeCBvZiB0aGlzIG1vZHVsZS4KKyAgICAgICAgICAgIDwvbGk+CisKKyAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgIDxlbT4kUDwvZW0+IC0gUmVwbGFjZWQgYnkgdGhlICJwYXRoIiBhdHRyaWJ1dGUgb2YgdGhlIHNlbGVjdGVkCisgICAgICAgICAgICA8Y29kZT4mbHQ7Zm9yd2FyZCZndDs8L2NvZGU+IGVsZW1lbnQuCisKKyAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICA8ZW0+JCQ8L2VtPiAtIENhdXNlcyBhIGxpdGVyYWwgZG9sbGFyIHNpZ24gdG8gYmUgcmVuZGVyZWQuCisgICAgICAgICAgICA8L2xpPgorCisgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICA8ZW0+JHg8L2VtPiAtIChXaGVyZSAieCIgaXMgYW55IGNoYXJhY3RlciBub3QgZGVmaW5lZCBhYm92ZSkKKyAgICAgICAgICAgICAgU2lsZW50bHkgc3dhbGxvd2VkLCByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS4KKyAgICAgICAgICAgIDwvbGk+CisKKyAgICAgICAgPC91bD4KKworICAgICAgICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBwYWdlUGF0dGVybiBpcyBjb25zaXN0ZW50IHdpdGggdGhlCisgICAgICAgIHByZXZpb3VzIGJlaGF2aW9yIG9mIFVSTCBjYWxjdWxhdGlvbi4KKyAgICAgICAgWyRNJFBdIChvcHRpb25hbCkKKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorCisgICAgICAgIDxzdHJvbmc+cHJvY2Vzc29yQ2xhc3M8L3N0cm9uZz4gLSBUaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUKKyAgICAgICAgPGNvZGU+UmVxdWVzdFByb2Nlc3NvcjwvY29kZT4gc3ViY2xhc3MgdG8gYmUgdXNlZCB3aXRoIHRoaXMgbW9kdWxlLgorICAgICAgICBbb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJlcXVlc3RQcm9jZXNzb3JdIChvcHRpb25hbCkKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxzdHJvbmc+dGVtcERpcjwvc3Ryb25nPiAtIFRlbXBvcmFyeSB3b3JraW5nIGRpcmVjdG9yeSB0byB1c2Ugd2hlbiBwcm9jZXNzaW5nCisgICAgICAgIGZpbGUgdXBsb2Fkcy4KKyAgICAgICAgW3t0aGUgZGlyZWN0b3J5IHByb3ZpZGVkIGJ5IHRoZSBzZXJ2bGV0IGNvbnRhaW5lcn1dCisgICAgICAgIDwvbGk+CisKKyAgICA8L3VsPgorCisgICAgCisKKyAgICA8cD4KKyAgICBUaGlzIGV4YW1wbGUgdXNlcyB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHNldmVyYWwgY29udHJvbGxlciBwYXJhbWV0ZXJzLgorICAgIElmIHlvdSBvbmx5IHdhbnQgZGVmYXVsdCBiZWhhdmlvciB5b3UgY2FuIG9taXQgdGhlIGNvbnRyb2xsZXIgc2VjdGlvbgorICAgIGFsdG9nZXRoZXIuCisgICAgPC9wPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWworPGNvbnRyb2xsZXIKKyAgICBwcm9jZXNzb3JDbGFzcz0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJlcXVlc3RQcm9jZXNzb3IiCisgICAgICAgICAgICAgZGVidWc9IjAiCisgICAgICAgY29udGVudFR5cGU9InRleHQvaHRtbCIvPjsKK11dPjwvY29kZT48L3ByZT4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSI1LjIuMiBNZXNzYWdlIFJlc291cmNlcyBDb25maWd1cmF0aW9uIiBocmVmPSJyZXNvdXJjZXNfY29uZmlnIj4KKworICAgIDxwPgorICAgIFN0cnV0cyBoYXMgYnVpbHQgaW4gc3VwcG9ydCBmb3IgaW50ZXJuYXRpb25hbGl6YXRpb24gKEkxOE4pLgorICAgIFlvdSBjYW4gZGVmaW5lIG9uZSBvciBtb3JlIDxjb2RlPiZsdDttZXNzYWdlLXJlc291cmNlcyZndDs8L2NvZGU+IGVsZW1lbnRzCisgICAgZm9yIHlvdXIgd2ViYXBwOyBtb2R1bGVzIGNhbiBkZWZpbmUgdGhlaXIgb3duIHJlc291cmNlIGJ1bmRsZXMuCisgICAgRGlmZmVyZW50IGJ1bmRsZXMgY2FuIGJlIHVzZWQgc2ltdWx0YW5lb3VzbHkgaW4geW91ciBhcHBsaWNhdGlvbiwgdGhlICdrZXknCisgICAgYXR0cmlidXRlIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgZGVzaXJlZCBidW5kbGUuCisgICAgPC9wPgorCisgICAgCisKKyAgICA8dWw+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8c3Ryb25nPmNsYXNzTmFtZTwvc3Ryb25nPiAtIENsYXNzbmFtZSBvZiBjb25maWd1cmF0aW9uIGJlYW4uCisgICAgICAgIFtvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTWVzc2FnZVJlc291cmNlc0NvbmZpZ10gKG9wdGlvbmFsKQorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5mYWN0b3J5PC9zdHJvbmc+IC0gQ2xhc3NuYW1lIG9mIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LgorICAgICAgICBbb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5XSAob3B0aW9uYWwpCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8c3Ryb25nPmtleTwvc3Ryb25nPiAtIFNlcnZsZXRDb250ZXh0IGF0dHJpYnV0ZSBrZXkgdG8gc3RvcmUgdGhpcyBidW5kbGUuCisgICAgICAgIFtvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uTUVTU0FHRV0gKG9wdGlvbmFsKQorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5udWxsPC9zdHJvbmc+IC0gU2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiB0byBkaXNwbGF5IG1pc3NpbmcgcmVzb3VyY2UKKyAgICAgICAga2V5cyBpbiB5b3VyIGFwcGxpY2F0aW9uIGxpa2UgJzxlbT4/Pz9rZXluYW1lPz8/PC9lbT4nIGluc3RlYWQgb2YKKyAgICAgICAgPGNvZGU+bnVsbDwvY29kZT4uCisgICAgICAgIFt0cnVlXSAob3B0aW9uYWwpCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8c3Ryb25nPnBhcmFtZXRlcjwvc3Ryb25nPiAtIE5hbWUgb2YgdGhlIHJlc291cmNlIGJ1bmRsZS4gKHJlcXVpcmVkKQorICAgICAgICA8L2xpPgorCisgICAgPC91bD4KKworICAgIAorCisgICAgPHA+RXhhbXBsZSBjb25maWd1cmF0aW9uOjwvcD4KKworPHByZT48Y29kZT48IVtDREFUQVsKKzxtZXNzYWdlLXJlc291cmNlcworICAgIHBhcmFtZXRlcj0iTXlXZWJBcHBSZXNvdXJjZXMiCisgICAgbnVsbD0iZmFsc2UiIC8+CitdXT48L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICBUaGlzIHdvdWxkIHNldCB1cCBhIG1lc3NhZ2UgcmVzb3VyY2UgYnVuZGxlIHByb3ZpZGVkIGluIHRoZSBmaWxlCisgICAgPGNvZGU+TXlXZWJBcHBSZXNvdXJjZXMucHJvcGVydGllczwvY29kZT4gdW5kZXIgdGhlIGRlZmF1bHQga2V5LgorICAgIE1pc3NpbmcgcmVzb3VyY2Uga2V5cyB3b3VsZCBiZSBkaXNwbGF5ZWQgYXMgJzxlbT4/Pz9rZXluYW1lPz8/PC9lbT4nLgorICAgIDwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSI1LjIuMyBQbHVnSW4gQ29uZmlndXJhdGlvbiIgaHJlZj0icGx1Z2luX2NvbmZpZyI+CisKKyAgICA8cD4KKyAgICBTdHJ1dHMgUGx1Z0lucyBhcmUgY29uZmlndXJlZCB1c2luZyB0aGUgPGNvZGU+Jmx0O3BsdWctaW4mZ3Q7PC9jb2RlPgorICAgIGVsZW1lbnQgd2l0aGluIHRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlLgorICAgIFRoaXMgZWxlbWVudCBoYXMgb25seSBvbmUgdmFsaWQgYXR0cmlidXRlLCAnY2xhc3NOYW1lJywgd2hpY2ggaXMgdGhlIGZ1bGx5CisgICAgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIEphdmEgY2xhc3Mgd2hpY2ggaW1wbGVtZW50cyB0aGUKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUGx1Z0luPC9jb2RlPiBpbnRlcmZhY2UuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgRm9yIFBsdWdJbnMgdGhhdCByZXF1aXJlIGNvbmZpZ3VyYXRpb24gdGhlbXNlbHZlcywgdGhlIG5lc3RlZAorICAgIDxjb2RlPiZsdDtzZXQtcHJvcGVydHkmZ3Q7PC9jb2RlPiBlbGVtZW50IGlzIGF2YWlsYWJsZS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGlzIGlzIGFuIGV4YW1wbGUgdXNpbmcgdGhlIFRpbGVzIHBsdWdpbjoKKyAgICA8L3A+CisKKzxwcmU+PGNvZGU+PCFbQ0RBVEFbCis8cGx1Zy1pbiBjbGFzc05hbWU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzUGx1Z2luIiA+Cis8c2V0LXByb3BlcnR5CisgIHByb3BlcnR5PSJkZWZpbml0aW9ucy1jb25maWciCisgIHZhbHVlPSIvV0VCLUlORi90aWxlcy1kZWZzLnhtbCIvPgorPC9wbHVnLWluPgorXV0+PC9jb2RlPjwvcHJlPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IjUuMi40IERhdGEgU291cmNlIENvbmZpZ3VyYXRpb24iIGhyZWY9ImRhdGEtc291cmNlX2NvbmZpZyI+CisKKyAgICA8cD4KKyAgICBCZXNpZGVzIHRoZSBvYmplY3RzIHJlbGF0ZWQgdG8gZGVmaW5pbmcgQWN0aW9uTWFwcGluZ3MsIHRoZSBTdHJ1dHMKKyAgICBjb25maWd1cmF0aW9uIG1heSBjb250YWluIGVsZW1lbnRzIHRoYXQgY3JlYXRlIG90aGVyIHVzZWZ1bCBvYmplY3RzLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFRoZSA8Y29kZT4mbHQ7ZGF0YS1zb3VyY2VzPjwvY29kZT4gc2VjdGlvbiBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5CisgICAgYSBjb2xsZWN0aW9uIG9mIERhdGFTb3VyY2VzIFtqYXZheC5zcWwuRGF0YVNvdXJjZV0gZm9yIHRoZSB1c2Ugb2YgeW91cgorICAgIGFwcGxpY2F0aW9uLgorICAgIFR5cGljYWxseSwgYSBEYXRhU291cmNlIHJlcHJlc2VudHMgYSBjb25uZWN0aW9uIHBvb2wgdG8gYSBkYXRhYmFzZQorICAgIG9yIG90aGVyIHBlcnNpc3RlbnQgc3RvcmUuCisgICAgQXMgYSBjb252ZW5pZW5jZSwgdGhlIFN0cnV0cyBEYXRhU291cmNlIG1hbmFnZXIgY2FuIGJlIHVzZWQgdG8KKyAgICBpbnN0YW50aWF0ZSB3aGF0ZXZlciBzdGFuZGFyZCBwb29sIHlvdXIgYXBwbGljYXRpb24gbWF5IG5lZWQuCisgICAgT2YgY291cnNlLCBpZiB5b3VyIHBlcnNpc3RlbmNlIGxheWVyIHByb3ZpZGVzIGZvciBpdHMgb3duIGNvbm5lY3Rpb25zLAorICAgIHRoZW4geW91IGRvIG5vdCBuZWVkIHRvIHNwZWNpZnkgYSA8Y29kZT5kYXRhLXNvdXJjZXM8L2NvZGU+IGVsZW1lbnQuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgU2luY2UgRGF0YVNvdXJjZSBpbXBsZW1lbnRhdGlvbnMgdmFyeSBpbiB3aGF0IHByb3BlcnRpZXMgbmVlZCB0byBiZQorICAgIHNldCwgdW5saWtlIG90aGVyIFN0cnV0cyBjb25maWd1cmF0aW9uIGVsZW1lbnRzLCB0aGUKKyAgICA8Y29kZT5kYXRhLXNvdXJjZTwvY29kZT4gZWxlbWVudCBkb2VzIG5vdCBwcmUtZGVmaW5lIGEgc2xhdGUgb2YKKyAgICBwcm9wZXJ0aWVzLgorICAgIEluc3RlYWQsIHRoZSBnZW5lcmljIDxjb2RlPnNldC1wcm9wZXJ0eTwvY29kZT4gZmVhdHVyZSBpcyB1c2VkIHRvIHNldAorICAgIHdoYXRldmVyIHByb3BlcnRpZXMgeW91ciBpbXBsZW1lbnRhdGlvbiBtYXkgcmVxdWlyZS4KKyAgICBUeXBpY2FsbHksIHRoZXNlIHNldHRpbmdzIHdvdWxkIGluY2x1ZGU6CisgICAgPC9wPgorCisgICAgPHVsPgorCisgICAgPGxpPgorICAgIEEgZHJpdmVyIGNsYXNzIG5hbWUKKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgIEEgdXJsIHRvIGFjY2VzcyB0aGUgZHJpdmVyCisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICBBIGRlc2NyaXB0aW9uCisgICAgPC9saT4KKworICAgIDwvdWw+CisKKyAgICA8cD4KKyAgICBBbmQgb3RoZXIgc3VuZHJ5IHByb3BlcnRpZXMuCisgICAgPC9wPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWworPGRhdGEtc291cmNlIHR5cGU9Im9yZy5hcGFjaGUuY29tbW9ucy5kYmNwLkJhc2ljRGF0YVNvdXJjZSI+Cis8IS0tIC4uLiBzZXQtcHJvcGVydHkgZWxlbWVudHMgLi4uIC0tPgorPC9kYXRhLXNvdXJjZT4KK11dPjwvY29kZT48L3ByZT4KKworICAgIDxwPgorICAgIEluIFN0cnV0cyAxLjIuMCwgdGhlIEdlbmVyaWNEYXRhU291cmNlIGhhcyBiZWVuIHJlbW92ZWQsIGFuZCBpdCBpcworICAgIHJlY29tbWVuZGVkIHRoYXQgeW91IHVzZSB0aGUgQ29tbW9ucyBCYXNpY0RhdGFTb3VyY2Ugb3Igb3RoZXIgRGF0YVNvdXJjZQorICAgIGltcGxlbWVudGF0aW9uIGluc3RlYWQuIEluIHByYWN0aWNlLCBpZiB5b3UgbmVlZCB0byB1c2UgdGhlIERhdGFTb3VyY2UgCisgICAgbWFuYWdlciwgeW91IHNob3VsZCB1c2Ugd2hhdGV2ZXIgRGF0YVNvdXJjZSBpbXBsZW1lbnRhdGlvbiB3b3JrcyBiZXN0IAorICAgIHdpdGggeW91ciBjb250YWluZXIgb3IgZGF0YWJhc2UuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgRm9yIGV4YW1wbGVzIG9mIHNwZWNpZnlpbmcgYSBkYXRhLXNvdXJjZXMgZWxlbWVudCBhbmQgdXNpbmcgdGhlCisgICAgRGF0YVNvdXJjZSB3aXRoIGFuIEFjdGlvbiwgc2VlIHRoZQorICAgIDxhIGhyZWY9Ii4uL2ZhcXMvZGF0YWJhc2UuaHRtbCI+QWNjZXNzaW5nIGEgRGF0YWJhc2UgSG93VG88L2E+LgorICAgIDwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbgorICAgIG5hbWU9IjUuMyBDb25maWd1cmluZyB5b3VyIGFwcGxpY2F0aW9uIGZvciBtb2R1bGVzIgorICAgIGhyZWY9ImRkX2NvbmZpZ19tb2R1bGVzIj4KKworICAgIDxwPgorICAgIFZlcnkgbGl0dGxlIGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvIHN0YXJ0IHRha2luZyBhZHZhbnRhZ2Ugb2YgdGhlIFN0cnV0cworICAgIGFwcGxpY2F0aW9uIG1vZHVsZSBmZWF0dXJlLgorICAgIEp1c3QgZ28gdGhyb3VnaCB0aGUgZm9sbG93aW5nIHN0ZXBzOgorICAgIDwvcD4KKworICAgIDxvbD4KKworICAgICAgPGxpPgorICAgICAgUHJlcGFyZSBhIGNvbmZpZyBmaWxlIGZvciBlYWNoIG1vZHVsZS4KKyAgICAgIDwvbGk+CisKKyAgICAgIDxsaT4KKyAgICAgIEluZm9ybSB0aGUgY29udHJvbGxlciBvZiB5b3VyIG1vZHVsZS4KKyAgICAgIDwvbGk+CisKKyAgICAgIDxsaT4KKyAgICAgIFVzZSBhY3Rpb25zIHRvIHJlZmVyIHRvIHlvdXIgcGFnZXMuCisgICAgICA8L2xpPgorCisgICAgPC9vbD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSI1LjMuMSBNb2R1bGUgQ29uZmlndXJhdGlvbiBGaWxlcyIgaHJlZj0ibW9kdWxlX2NvbmZpZy1maWxlcyI+CisKKyAgICA8cD4KKyAgICBCYWNrIGluIFN0cnV0cyAxLjAsIGEgZmV3ICJib290LXN0cmFwIiBvcHRpb25zIHdlcmUgcGxhY2VkIGluIHRoZSB3ZWIueG1sCisgICAgZmlsZSwgYW5kIHRoZSBidWxrIG9mIHRoZSBjb25maWd1cmF0aW9uIHdhcyBkb25lIGluIGEgc2luZ2xlCisgICAgc3RydXRzLWNvbmZpZy54bWwgZmlsZS4KKyAgICBPYnZpb3VzbHksIHRoaXMgd2Fzbid0IGlkZWFsIGZvciBhIHRlYW0gZW52aXJvbm1lbnQsIHNpbmNlIG11bHRpcGxlIHVzZXJzCisgICAgaGFkIHRvIHNoYXJlIHRoZSBzYW1lIGNvbmZpZ3VyYXRpb24gZmlsZS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBJbiBTdHJ1dHMgMS4xLCB5b3UgaGF2ZSB0d28gb3B0aW9uczogeW91IGNhbiBsaXN0CisgICAgPGEgaHJlZj0iI2RkX2NvbmZpZ19zZXJ2bGV0Ij5tdWx0aXBsZSBzdHJ1dHMtY29uZmlnIGZpbGVzPC9hPiBhcyBhCisgICAgY29tbWEtZGVsaW1pdGVkIGxpc3QsIG9yIHlvdSBjYW4gc3ViZGl2aWRlIGEgbGFyZ2VyIGFwcGxpY2F0aW9uIGludG8KKyAgICBtb2R1bGVzLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFdpdGggdGhlIGFkdmVudCBvZiBtb2R1bGVzLCBhIGdpdmVuIG1vZHVsZSBoYXMgaXRzIG93biBjb25maWd1cmF0aW9uIGZpbGUuCisgICAgVGhpcyBtZWFucyBlYWNoIHRlYW0gKGVhY2ggbW9kdWxlIHdvdWxkIHByZXN1bWFibHkgYmUgZGV2ZWxvcGVkIGJ5IGEKKyAgICBzaW5nbGUgdGVhbSkgaGFzIHRoZWlyIG93biBjb25maWd1cmF0aW9uIGZpbGUsIGFuZCB0aGVyZSBzaG91bGQgYmUgYSBsb3QKKyAgICBsZXNzIGNvbnRlbnRpb24gd2hlbiB0cnlpbmcgdG8gbW9kaWZ5IGl0LgorICAgIDwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbgorICAgIG5hbWU9IjUuMy4yIEluZm9ybWluZyB0aGUgQ29udHJvbGxlciIKKyAgICBocmVmPSJtb2R1bGVfY29uZmlnLWluZm9ybV9jb250cm9sbGVyIj4KKworICAgIDxwPgorICAgIEluIHN0cnV0cyAxLjAsIHlvdSBsaXN0ZWQgeW91ciBjb25maWd1cmF0aW9uIGZpbGUgYXMgYW4gaW5pdGlhbGl6YXRpb24KKyAgICBwYXJhbWV0ZXIgdG8gdGhlIGFjdGlvbiBzZXJ2bGV0IGluIHdlYi54bWwuCisgICAgVGhpcyBpcyBzdGlsbCBkb25lIGluIDEuMSwgYnV0IGl0J3MgYXVnbWVudGVkIGEgbGl0dGxlLgorICAgIEluIG9yZGVyIHRvIHRlbGwgdGhlIFN0cnV0cyBtYWNoaW5lcnkgYWJvdXQgeW91ciBkaWZmZXJlbnQgbW9kdWxlcywgeW91CisgICAgc3BlY2lmeSBtdWx0aXBsZSBjb25maWcgaW5pdGlhbGl6YXRpb24gcGFyYW1ldGVycywgd2l0aCBhIHNsaWdodCB0d2lzdC4KKyAgICBZb3UnbGwgc3RpbGwgdXNlICJjb25maWciIHRvIHRlbGwgdGhlIGFjdGlvbiBzZXJ2bGV0IGFib3V0IHlvdXIgImRlZmF1bHQiCisgICAgbW9kdWxlLCBob3dldmVyLCBmb3IgZWFjaCBhZGRpdGlvbmFsIG1vZHVsZSwgeW91IHdpbGwKKyAgICBsaXN0IGFuIGluaXRpYWxpemF0aW9uIHBhcmFtZXRlciBuYW1lZCAiY29uZmlnL21vZHVsZSIsIHdoZXJlIG1vZHVsZSBpcworICAgIHRoZSBuYW1lIG9mIHlvdXIgbW9kdWxlICh0aGlzIGdldHMgdXNlZCB3aGVuIGRldGVybWluaW5nIHdoaWNoIFVSSXMgZmFsbAorICAgIHVuZGVyIGEgZ2l2ZW4gbW9kdWxlLCBzbyBjaG9vc2Ugc29tZXRoaW5nIG1lYW5pbmdmdWwhKS4KKyAgICBGb3IgZXhhbXBsZToKKyAgICA8L3A+CisKKzxwcmU+PGNvZGU+PCFbQ0RBVEFbCisgICAgLi4uCisgICAgPGluaXQtcGFyYW0+CisgICAgICA8cGFyYW0tbmFtZT5jb25maWc8L3BhcmFtLW5hbWU+CisgICAgICA8cGFyYW0tdmFsdWU+L1dFQi1JTkYvY29uZi9zdHJ1dHMtZGVmYXVsdC54bWw8L3BhcmFtLXZhbHVlPgorICAgIDwvaW5pdC1wYXJhbT4KKyAgICA8aW5pdC1wYXJhbT4KKyAgICAgIDxwYXJhbS1uYW1lPmNvbmZpZy9tb2R1bGUxPC9wYXJhbS1uYW1lPgorICAgICAgPHBhcmFtLXZhbHVlPi9XRUItSU5GL2NvbmYvc3RydXRzLW1vZHVsZTEueG1sPC9wYXJhbS12YWx1ZT4KKyAgICA8L2luaXQtcGFyYW0+CisgICAgLi4uCitdXT48L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICBUaGlzIHNheXMgSSBoYXZlIHR3byBtb2R1bGVzLgorICAgIE9uZSBoYXBwZW5zIHRvIGJlIHRoZSAiZGVmYXVsdCIgbW9kdWxlLCB3aGljaCBoYXMgbm8gIi9tb2R1bGUiIGluIGl0J3MKKyAgICBuYW1lLCBhbmQgb25lIG5hbWVkICJtb2R1bGUxIiAoY29uZmlnL21vZHVsZTEpLgorICAgIEkndmUgdG9sZCB0aGUgY29udHJvbGxlciBpdCBjYW4gZmluZCB0aGVpciByZXNwZWN0aXZlIGNvbmZpZ3VyYXRpb25zCisgICAgdW5kZXIgL1dFQi1JTkYvY29uZiAod2hpY2ggaXMgd2hlcmUgSSBwdXQgYWxsIG15IGNvbmZpZ3VyYXRpb24gZmlsZXMpLgorICAgIFByZXR0eSBzaW1wbGUhCisgICAgPC9wPgorCisgICAgPHA+CisgICAgKE15IHN0cnV0cy1kZWZhdWx0LnhtbCB3b3VsZCBiZSBlcXVpdmFsZW50IHRvIHdoYXQgbW9zdCBmb2xrcyBjYWxsCisgICAgc3RydXRzLWNvbmZpZy54bWwuCisgICAgSSBqdXN0IGxpa2UgdGhlIHN5bW1ldHJ5IG9mIGhhdmluZyBhbGwgbXkgU3RydXRzIG1vZHVsZSBmaWxlcyBiZWluZworICAgIG5hbWVkIHN0cnV0cy0mbHQ7bW9kdWxlJmd0Oy54bWwpCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIElmIHlvdSdkIGxpa2UgdG8gdmFyeSB3aGVyZSB0aGUgcGFnZXMgZm9yIGVhY2ggbW9kdWxlIGlzIHN0b3JlZCwKKyAgICAgICAgc2VlIHRoZSA8YSBocmVmPSIjY29udHJvbGxlcl9jb25maWciPmZvcndhcmRQYXR0ZXJuPC9hPiBzZXR0aW5nIGZvciB0aGUKKyAgICAgICAgQ29udHJvbGxlci4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworCis8c2VjdGlvbiBuYW1lPSI1LjMuMyBTd2l0Y2hpbmcgTW9kdWxlcyIgaHJlZj0ibW9kdWxlX2NvbmZpZy1zd2l0Y2hpbmciPgorCisgICAgPHA+CisgICAgVGhlcmUgYXJlIHR3byBiYXNpYyBtZXRob2RzIHRvIHN3aXRjaGluZyBmcm9tIG9uZSBtb2R1bGUgdG8gYW5vdGhlci4KKyAgICBZb3UgY2FuIGVpdGhlciB1c2UgYSBmb3J3YXJkIChnbG9iYWwgb3IgbG9jYWwpIGFuZCBzcGVjaWZ5IHRoZQorICAgIGNvbnRleHRSZWxhdGl2ZSBhdHRyaWJ1dGUgd2l0aCBhIHZhbHVlIG9mIHRydWUsIG9yIHlvdSBjYW4gdXNlCisgICAgdGhlIGJ1aWx0LWluIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuU3dpdGNoQWN0aW9uPC9jb2RlPi4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBIZXJlJ3MgYW4gZXhhbXBsZSBvZiBhIGdsb2JhbCBmb3J3YXJkOgorICAgIDwvcD4KKworPHByZT48Y29kZT48IVtDREFUQVsKKyAgICAuLi4KKyAgICA8c3RydXRzLWNvbmZpZz4KKyAgICAuLi4KKyAgICA8Z2xvYmFsLWZvcndhcmRzPgorICAgIDxmb3J3YXJkIG5hbWU9InRvTW9kdWxlQiIKKyAgICAgICBjb250ZXh0UmVsYXRpdmU9InRydWUiCisgICAgICAgcGF0aD0iL21vZHVsZUIvaW5kZXguZG8iCisgICAgICAgcmVkaXJlY3Q9InRydWUiLz4KKyAgICAuLi4KKyAgICA8L2dsb2JhbC1mb3J3YXJkcz4KKyAgICAuLi4KKyAgICA8L3N0cnV0cy1jb25maWc+CitdXT48L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICAgWW91IGNvdWxkIGRvIHRoZSBzYW1lIHRoaW5nIHdpdGggYSBsb2NhbCBmb3J3YXJkIGRlY2xhcmVkIGluIGFuCisgICAgIEFjdGlvbk1hcHBpbmc6CisgICAgPC9wPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWworICAgIC4uLgorICAgIDxzdHJ1dHMtY29uZmlnPgorICAgIC4uLgorICAgIDxhY3Rpb24tbWFwcGluZ3M+CisgICAgLi4uCisgICAgPGFjdGlvbiAuLi4gPgorICAgIDxmb3J3YXJkIG5hbWU9InN1Y2Nlc3MiCisgICAgICAgICBjb250ZXh0UmVsYXRpdmU9InRydWUiCisgICAgICAgICBwYXRoPSIvbW9kdWxlQi9pbmRleC5kbyIKKyAgICAgICAgIHJlZGlyZWN0PSJ0cnVlIi8+CisgICAgPC9hY3Rpb24+CisgICAgLi4uCisgICAgPC9hY3Rpb24tbWFwcGluZ3M+CisgICAgLi4uCisgICAgPC9zdHJ1dHMtY29uZmlnPgorXV0+PC9jb2RlPjwvcHJlPgorCisgICAgPHA+CisgICAgIEZpbmFsbHksIHlvdSBjb3VsZCB1c2UKKyAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5Td2l0Y2hBY3Rpb248L2NvZGU+LAorICAgICBsaWtlIHNvOgorICAgIDwvcD4KKworPHByZT48Y29kZT48IVtDREFUQVsKKyAgICAuLi4KKyAgICA8YWN0aW9uLW1hcHBpbmdzPgorICAgIDxhY3Rpb24gcGF0aD0iL3RvTW9kdWxlIgorICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuU3dpdGNoQWN0aW9uIi8+CisgICAgLi4uCisgICAgPC9hY3Rpb24tbWFwcGluZ3M+CisgICAgLi4uCitdXT48L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICAgTm93LCB0byBjaGFuZ2UgdG8gTW9kdWxlQiwgd2Ugd291bGQgdXNlIGEgVVJJIGxpa2UgdGhpczoKKyAgICA8L3A+CisKKyAgICA8cHJlPjxjb2RlPgorICAgIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC90b01vZHVsZS5kbz9wcmVmaXg9L21vZHVsZUImYW1wO3BhZ2U9L2luZGV4LmRvCisgICAgPC9jb2RlPjwvcHJlPgorCisgICAgPHA+CisgICAgSWYgeW91IGFyZSB1c2luZyB0aGUgImRlZmF1bHQiIG1vZHVsZSBhcyB3ZWxsIGFzICJuYW1lZCIgbW9kdWxlcyAobGlrZSAiL21vZHVsZUIiKSwKKyAgICB5b3UgY2FuIHN3aXRjaCBiYWNrIHRvIHRoZSAiZGVmYXVsdCIgbW9kdWxlIHdpdGggYSBVUkkgbGlrZSB0aGlzOgorICAgIDwvcD4KKworICAgIDxwcmU+PGNvZGU+CisgICAgaHR0cDovL2xvY2FsaG9zdDo4MDgwL3RvTW9kdWxlLmRvP3ByZWZpeD0mYW1wO3BhZ2U9L2luZGV4LmRvCisgICAgPC9jb2RlPjwvcHJlPgorCisgICAgPHA+CisgICAgVGhhdCdzIGFsbCB0aGVyZSBpcyB0byBpdCEgIEhhcHB5IG1vZHVsZS1zd2l0Y2hpbmchCisgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IjUuNCBUaGUgV2ViIEFwcGxpY2F0aW9uIERlcGxveW1lbnQgRGVzY3JpcHRvciIgaHJlZj0iZGRfY29uZmlnIj4KKworICAgIDxwPgorICAgIFRoZSBmaW5hbCBzdGVwIGluIHNldHRpbmcgdXAgdGhlIGFwcGxpY2F0aW9uIGlzIHRvIGNvbmZpZ3VyZSB0aGUKKyAgICBhcHBsaWNhdGlvbiBkZXBsb3ltZW50IGRlc2NyaXB0b3IgKHN0b3JlZCBpbiBmaWxlCisgICAgPGNvZGU+V0VCLUlORi93ZWIueG1sPC9jb2RlPikgdG8gIGluY2x1ZGUgYWxsIHRoZSBTdHJ1dHMgY29tcG9uZW50cyB0aGF0CisgICAgYXJlIHJlcXVpcmVkLgorICAgIFVzaW5nIHRoZSBkZXBsb3ltZW50IGRlc2NyaXB0b3IgZm9yIHRoZSBleGFtcGxlIGFwcGxpY2F0aW9uIGFzIGEgZ3VpZGUsCisgICAgd2Ugc2VlIHRoYXQgdGhlIGZvbGxvd2luZyBlbnRyaWVzIG5lZWQgdG8gYmUgY3JlYXRlZCBvciBtb2RpZmllZC4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24KKyAgICBuYW1lPSI1LjQuMSBDb25maWd1cmUgdGhlIEFjdGlvbiBTZXJ2bGV0IEluc3RhbmNlIgorICAgIGhyZWY9ImRkX2NvbmZpZ19zZXJ2bGV0Ij4KKworICAgIDxwPgorICAgIEFkZCBhbiBlbnRyeSBkZWZpbmluZyB0aGUgYWN0aW9uIHNlcnZsZXQgaXRzZWxmLCBhbG9uZyB3aXRoIHRoZQorICAgIGFwcHJvcHJpYXRlIGluaXRpYWxpemF0aW9uIHBhcmFtZXRlcnMuCisgICAgU3VjaCBhbiBlbnRyeSBtaWdodCBsb29rIGxpa2UgdGhpczoKKyAgICA8L3A+CisKKzxwcmU+PGNvZGU+PCFbQ0RBVEFbCis8c2VydmxldD4KKyAgPHNlcnZsZXQtbmFtZT5hY3Rpb248L3NlcnZsZXQtbmFtZT4KKyAgPHNlcnZsZXQtY2xhc3M+CisgICAgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQKKyAgPC9zZXJ2bGV0LWNsYXNzPgorICA8aW5pdC1wYXJhbT4KKyAgICA8cGFyYW0tbmFtZT5jb25maWc8L3BhcmFtLW5hbWU+CisgICAgPHBhcmFtLXZhbHVlPgorICAgICAgL1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWwKKyAgICA8L3BhcmFtLXZhbHVlPgorICA8L2luaXQtcGFyYW0+CisgIDxsb2FkLW9uLXN0YXJ0dXA+MTwvbG9hZC1vbi1zdGFydHVwPgorPC9zZXJ2bGV0PgorXV0+PC9jb2RlPjwvcHJlPgorCisgICAgPHA+CisgICAgVGhlIGluaXRpYWxpemF0aW9uIHBhcmFtZXRlcnMgc3VwcG9ydGVkIGJ5IHRoZSBjb250cm9sbGVyIHNlcnZsZXQgYXJlCisgICAgZGVzY3JpYmVkIGJlbG93LgorICAgIChZb3UgY2FuIGFsc28gZmluZCB0aGVzZSBkZXRhaWxzIGluIHRoZQorICAgIDxhIGhyZWY9Ii4uL2FwaS9pbmRleC5odG1sIj5KYXZhZG9jczwvYT4gZm9yIHRoZSBBY3Rpb25TZXJ2bGV0IGNsYXNzLikKKyAgICBTcXVhcmUgYnJhY2tldHMgZGVzY3JpYmUgdGhlIGRlZmF1bHQgdmFsdWVzIHRoYXQgYXJlIGFzc3VtZWQgaWYgeW91IGRvCisgICAgbm90IHByb3ZpZGUgYSB2YWx1ZSBmb3IgdGhhdCBpbml0aWFsaXphdGlvbiBwYXJhbWV0ZXIuCisgICAgPC9wPgorCisgICAgPHVsPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5jb25maWc8L3N0cm9uZz4gLSBDb250ZXh0LXJlbGF0aXZlIHBhdGggdG8gdGhlIFhNTCByZXNvdXJjZQorICAgICAgICBjb250YWluaW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGZvciB0aGUgZGVmYXVsdCBtb2R1bGUuCisgICAgICAgIFRoaXMgbWF5IGFsc28gYmUgYSBjb21tYS1kZWxpbWl0ZWQgbGlzdCBvZiBjb25maWd1cmF0aW9uIGZpbGVzLgorICAgICAgICBFYWNoIGZpbGUgaXMgbG9hZGVkIGluIHR1cm4sIGFuZCBpdHMgb2JqZWN0cyBhcmUgYXBwZW5kZWQgdG8gdGhlCisgICAgICAgIGludGVybmFsIGRhdGEgc3RydWN0dXJlLiBbL1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWxdLjxici8+CisgICAgICAgIDxzdHJvbmc+V0FSTklORzwvc3Ryb25nPiAtIElmIHlvdSBkZWZpbmUKKyAgICAgICAgYW4gb2JqZWN0IG9mIHRoZSBzYW1lIG5hbWUgaW4gbW9yZSB0aGFuIG9uZSBjb25maWd1cmF0aW9uIGZpbGUsCisgICAgICAgIHRoZSBsYXN0IG9uZSBsb2FkZWQgcXVpZXRseSB3aW5zLgorCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8c3Ryb25nPmNvbmZpZy8ke21vZHVsZX08L3N0cm9uZz4gLSBDb250ZXh0LXJlbGF0aXZlIHBhdGggdG8gdGhlIFhNTAorICAgICAgICByZXNvdXJjZSBjb250YWluaW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGZvciB0aGUgYXBwbGljYXRpb24KKyAgICAgICAgbW9kdWxlIHRoYXQgd2lsbCB1c2UgdGhlIHNwZWNpZmllZCBwcmVmaXggKC8ke21vZHVsZX0pLgorICAgICAgICBUaGlzIGNhbiBiZSByZXBlYXRlZCBhcyBtYW55IHRpbWVzIGFzIHJlcXVpcmVkIGZvciBtdWx0aXBsZQorICAgICAgICBhcHBsaWNhdGlvbiBtb2R1bGVzLiAoU2luY2UgU3RydXRzIDEuMSkKKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxzdHJvbmc+Y29udmVydE51bGw8L3N0cm9uZz4gLSBGb3JjZSBzaW11bGF0aW9uIG9mIHRoZSBTdHJ1dHMgMS4wCisgICAgICAgIGJlaGF2aW9yIHdoZW4gcG9wdWxhdGluZyBmb3Jtcy4KKyAgICAgICAgSWYgc2V0IHRvIHRydWUsIHRoZSBudW1lcmljIEphdmEgd3JhcHBlciBjbGFzcyB0eXBlcyAobGlrZQorICAgICAgICA8Y29kZT5qYXZhLmxhbmcuSW50ZWdlcjwvY29kZT4pIHdpbGwgZGVmYXVsdCB0byBudWxsIChyYXRoZXIgdGhhbiAwKS4KKyAgICAgICAgKFNpbmNlIFN0cnV0cyAxLjEpIFtmYWxzZV0KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxzdHJvbmc+cnVsZXNldHM8L3N0cm9uZz4gLSBDb21tYS1kZWxpbWl0ZWQgbGlzdCBvZiBmdWxseSBxdWFsaWZpZWQKKyAgICAgICAgY2xhc3NuYW1lcyBvZiBhZGRpdGlvbmFsCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlU2V0PC9jb2RlPiBpbnN0YW5jZXMgdGhhdAorICAgICAgICBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIDxjb2RlPkRpZ2VzdGVyPC9jb2RlPiB0aGF0IHdpbGwgYmUgcHJvY2Vzc2luZworICAgICAgICA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4gZmlsZXMuCisgICAgICAgIEJ5IGRlZmF1bHQsIG9ubHkgdGhlIDxjb2RlPlJ1bGVTZXQ8L2NvZGU+IGZvciB0aGUgc3RhbmRhcmQKKyAgICAgICAgY29uZmlndXJhdGlvbiBlbGVtZW50cyBpcyBsb2FkZWQuIChTaW5jZSBTdHJ1dHMgMS4xKQorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz52YWxpZGF0aW5nPC9zdHJvbmc+IC0gU2hvdWxkIHdlIHVzZSBhIHZhbGlkYXRpbmcgWE1MIHBhcnNlciB0bworICAgICAgICBwcm9jZXNzIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgKHN0cm9uZ2x5IHJlY29tbWVuZGVkKT8KKyAgICAgICAgW3RydWVdCisgICAgICAgIDwvbGk+CisKKyAgICA8L3VsPgorCisKKyAgICAgPHA+CisgICAgIFRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBtYXkgc3RpbGwgYmUgdXNlZCB3aXRoIHRoZSBTdHJ1dHMgMS4xIHJlbGVhc2UKKyAgICAgYnV0IGFyZSA8c3Ryb25nPmRlcHJlY2F0ZWQ8L3N0cm9uZz4uCisgICAgIDwvcD4KKworICAgICA8dWw+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8c3Ryb25nPmFwcGxpY2F0aW9uPC9zdHJvbmc+IC0gSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbgorICAgICAgICByZXNvdXJjZXMgYnVuZGxlIGJhc2UgY2xhc3MuCisgICAgICAgIFtOT05FXQorICAgICAgICA8ZW0+REVQUkVDQVRFRCAtIENvbmZpZ3VyZSB0aGlzIHVzaW5nIHRoZSAicGFyYW1ldGVyIiBhdHRyaWJ1dGUKKyAgICAgICAgb2YgdGhlICZsdDttZXNzYWdlLXJlc291cmNlcyZndDsgZWxlbWVudC48L2VtPgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT48c3Ryb25nPmJ1ZmZlclNpemU8L3N0cm9uZz4gLSBUaGUgc2l6ZSBvZiB0aGUgaW5wdXQgYnVmZmVyIHVzZWQKKyAgICAgICAgd2hlbiBwcm9jZXNzaW5nIGZpbGUgdXBsb2Fkcy4KKyAgICAgICAgWzQwOTZdCisgICAgICAgIDxlbT5ERVBSRUNBVEVEIC0gQ29uZmlndXJlIHRoaXMgdXNpbmcgdGhlICJidWZmZXJTaXplIiBhdHRyaWJ1dGUKKyAgICAgICAgb2YgdGhlICZsdDtjb250cm9sbGVyJmd0OyBlbGVtZW50LjwvZW0+CisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8c3Ryb25nPmNvbnRlbnQ8L3N0cm9uZz4gLSBEZWZhdWx0IGNvbnRlbnQgdHlwZSBhbmQgY2hhcmFjdGVyIGVuY29kaW5nCisgICAgICAgIHRvIGJlIHNldCBvbiBlYWNoIHJlc3BvbnNlOyBtYXkgYmUgb3ZlcnJpZGRlbiBieSBhIGZvcndhcmRlZC10bworICAgICAgICBzZXJ2bGV0IG9yIEpTUCBwYWdlLgorICAgICAgICBbdGV4dC9odG1sXQorICAgICAgICA8ZW0+REVQUkVDQVRFRCAtIENvbmZpZ3VyZSB0aGlzIHVzaW5nIHRoZSAiY29udGVudFR5cGUiIGF0dHJpYnV0ZQorICAgICAgICBvZiB0aGUgJmx0O2NvbnRyb2xsZXImZ3Q7IGVsZW1lbnQuPC9lbT4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxzdHJvbmc+ZGVidWc8L3N0cm9uZz4gLSBUaGUgZGVidWdnaW5nIGRldGFpbCBsZXZlbCB0aGF0IGNvbnRyb2xzCisgICAgICAgIGhvdyBtdWNoIGluZm9ybWF0aW9uIGlzIGxvZ2dlZCBmb3IgdGhpcyBzZXJ2bGV0LgorICAgICAgICBBY2NlcHRzIHZhbHVlcyAwIChvZmYpIGFuZCBmcm9tIDEgKGxlYXN0IHNlcmlvdXMpIHRocm91Z2ggNgorICAgICAgICAobW9zdCBzZXJpb3VzKS4gWzBdCisgICAgICAgIDxlbT5ERVBSRUNBVEVEIC0gQ29uZmlndXJlIHRoZSBsb2dnaW5nIGRldGFpbCBsZXZlbCBpbiB5b3VyCisgICAgICAgIHVuZGVybHlpbmcgbG9nZ2luZyBpbXBsZW1lbnRhdGlvbi48L2VtPgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5mYWN0b3J5PC9zdHJvbmc+IC0gVGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUKKyAgICAgICAgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IHVzZWQgdG8gY3JlYXRlIHRoZSBhcHBsaWNhdGlvbgorICAgICAgICA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBvYmplY3QuCisgICAgICAgIFtvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnldCisgICAgICAgIDxlbT5ERVBSRUNBVEVEIC0gQ29uZmlndXJlIHRoaXMgdXNpbmcgdGhlICJmYWN0b3J5IiBhdHRyaWJ1dGUKKyAgICAgICAgb2YgdGhlICZsdDttZXNzYWdlLXJlc291cmNlcyZndDsgZWxlbWVudC48L2VtPgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5mb3JtQmVhbjwvc3Ryb25nPiAtIFRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIEFjdGlvbkZvcm1CZWFuCisgICAgICAgIGltcGxlbWVudGF0aW9uIHRvIHVzZQorICAgICAgICBbb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuXS4KKyAgICAgICAgPGVtPkRFUFJFQ0FURUQgLSBDb25maWd1cmUgdGhpcyB1c2luZyB0aGUgImNsYXNzTmFtZSIgYXR0cmlidXRlCisgICAgICAgIG9mIGVhY2ggJmx0O2Zvcm0tYmVhbiZndDsgZWxlbWVudC48L2VtPgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5mb3J3YXJkPC9zdHJvbmc+IC0gVGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgQWN0aW9uRm9yd2FyZAorICAgICAgICBpbXBsZW1lbnRhdGlvbiB0byB1c2UKKyAgICAgICAgW29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkXS4KKyAgICAgICAgVHdvIGNvbnZlbmllbnQgY2xhc3NlcyB5b3UgbWF5IHdpc2ggdG8gdXNlIGFyZToKKyAgICAgICAgPHVsPgorCisgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICA8ZW0+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkPC9lbT4gLQorICAgICAgICAgICAgU3ViY2xhc3Mgb2YgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ8L2NvZGU+CisgICAgICAgICAgICB0aGF0IGRlZmF1bHRzIHRoZSA8Y29kZT5yZWRpcmVjdDwvY29kZT4gcHJvcGVydHkgdG8KKyAgICAgICAgICAgIDxjb2RlPmZhbHNlPC9jb2RlPiAoc2FtZSBhcyB0aGUgQWN0aW9uRm9yd2FyZCBkZWZhdWx0IHZhbHVlKS4KKyAgICAgICAgICAgIDwvbGk+CisKKyAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgIDxlbT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9lbT4gLQorICAgICAgICAgICAgU3ViY2xhc3Mgb2YgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ8L2NvZGU+CisgICAgICAgICAgICB0aGF0IGRlZmF1bHRzIHRoZSA8Y29kZT5yZWRpcmVjdDwvY29kZT4gcHJvcGVydHkgdG8KKyAgICAgICAgICAgIDxjb2RlPnRydWU8L2NvZGU+LgorICAgICAgICAgICAgPC9saT4KKworICAgICAgICA8L3VsPgorICAgICAgICA8ZW0+REVQUkVDQVRFRCAtIENvbmZpZ3VyZSB0aGlzIHVzaW5nIHRoZSAiY2xhc3NOYW1lIiBhdHRyaWJ1dGUgb2YKKyAgICAgICAgZWFjaCAmbHQ7Zm9yd2FyZCZndDsgZWxlbWVudC48L2VtPgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5sb2NhbGU8L3N0cm9uZz4gLSBJZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIGFuZCB0aGVyZSBpcyBhCisgICAgICAgIHVzZXIgc2Vzc2lvbiwgaWRlbnRpZnkgYW5kIHN0b3JlIGFuIGFwcHJvcHJpYXRlCisgICAgICAgIDxjb2RlPmphdmEudXRpbC5Mb2NhbGU8L2NvZGU+IG9iamVjdCAodW5kZXIgdGhlIHN0YW5kYXJkIGtleQorICAgICAgICBpZGVudGlmaWVkIGJ5IDxjb2RlPkdsb2JhbHMuTE9DQUxFX0tFWTwvY29kZT4pIGluIHRoZSB1c2VyJ3Mgc2Vzc2lvbgorICAgICAgICBpZiB0aGVyZSBpcyBub3QgYSBMb2NhbGUgb2JqZWN0IHRoZXJlIGFscmVhZHkuCisgICAgICAgIFt0cnVlXQorICAgICAgICA8ZW0+REVQUkVDQVRFRCAtIENvbmZpZ3VyZSB0aGlzIHVzaW5nIHRoZSAibG9jYWxlIiBhdHRyaWJ1dGUgb2YKKyAgICAgICAgdGhlICZsdDtjb250cm9sbGVyJmd0OyBlbGVtZW50LjwvZW0+CisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8c3Ryb25nPm1hcHBpbmc8L3N0cm9uZz4gLSBUaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBBY3Rpb25NYXBwaW5nCisgICAgICAgIGltcGxlbWVudGF0aW9uIHRvIHVzZQorICAgICAgICBbb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmddLgorICAgICAgICBUd28gY29udmVuaWVudCBjbGFzc2VzIHlvdSBtYXkgd2lzaCB0byB1c2UgYXJlOgorCisgICAgICAgIDx1bD4KKworICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgPGVtPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvZW0+IC0gU3ViY2xhc3MKKyAgICAgICAgICAgIG9mIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nPC9jb2RlPiB0aGF0CisgICAgICAgICAgICBkZWZhdWx0cyB0aGUgPGNvZGU+c2NvcGU8L2NvZGU+IHByb3BlcnR5IHRvICJyZXF1ZXN0Ii4KKyAgICAgICAgICAgIDwvbGk+CisKKyAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgIDxlbT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uU2Vzc2lvbkFjdGlvbk1hcHBpbmc8L2VtPiAtIFN1YmNsYXNzCisgICAgICAgICAgICBvZiA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzwvY29kZT4gdGhhdAorICAgICAgICAgICAgZGVmYXVsdHMgdGhlIDxjb2RlPnNjb3BlPC9jb2RlPiBwcm9wZXJ0eSB0byAic2Vzc2lvbiIuCisgICAgICAgICAgICAoU2FtZSBhcyB0aGUgQWN0aW9uTWFwcGluZyBkZWZhdWx0IHZhbHVlKS4KKyAgICAgICAgICAgIDwvbGk+CisKKyAgICAgICAgPC91bD4KKworICAgICAgICA8ZW0+REVQUkVDQVRFRCAtIENvbmZpZ3VyZSB0aGlzIHVzaW5nIHRoZSAiY2xhc3NOYW1lIiBhdHRyaWJ1dGUgb2YKKyAgICAgICAgZWFjaCAmbHQ7YWN0aW9uJmd0OyBlbGVtZW50LCBvciBnbG9iYWxseSBmb3IgYSBtb2R1bGUgYnkgdXNpbmcgdGhlCisgICAgICAgICJ0eXBlIiBhdHRyaWJ1dGUgb2YgdGhlICZsdDthY3Rpb24tbWFwcGluZ3MmZ3Q7IGVsZW1lbnQuPC9lbT4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxzdHJvbmc+bWF4RmlsZVNpemU8L3N0cm9uZz4gLSBUaGUgbWF4aW11bSBzaXplIChpbiBieXRlcykgb2YgYSBmaWxlCisgICAgICAgIHRvIGJlIGFjY2VwdGVkIGFzIGEgZmlsZSB1cGxvYWQuCisgICAgICAgIENhbiBiZSBleHByZXNzZWQgYXMgYSBudW1iZXIgZm9sbG93ZWQgYnkgYSAiSyIgIk0iLCBvciAiRyIsIHdoaWNoIGFyZQorICAgICAgICBpbnRlcnByZXRlZCB0byBtZWFuIGtpbG9ieXRlcywgbWVnYWJ5dGVzLCBvciBnaWdhYnl0ZXMsIHJlc3BlY3RpdmVseS4KKyAgICAgICAgWzI1ME1dCisgICAgICAgIDxlbT5ERVBSRUNBVEVEIC0gQ29uZmlndXJlIHRoaXMgdXNpbmcgdGhlICJtYXhGaWxlU2l6ZSIgYXR0cmlidXRlIG9mCisgICAgICAgIHRoZSAmbHQ7Y29udHJvbGxlciZndDsgZWxlbWVudC48L2VtPgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5tdWx0aXBhcnRDbGFzczwvc3Ryb25nPiAtIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUKKyAgICAgICAgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgaW1wbGVtZW50YXRpb24gY2xhc3MgdG8gYmUgdXNlZCBmb3IgcHJvY2Vzc2luZworICAgICAgICBmaWxlIHVwbG9hZHMuCisgICAgICAgIElmIHNldCB0byA8Y29kZT5ub25lPC9jb2RlPiwgZGlzYWJsZXMgU3RydXRzIG11bHRpcGFydCByZXF1ZXN0CisgICAgICAgIGhhbmRsaW5nLgorICAgICAgICBbb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcl0KKyAgICAgICAgPGVtPkRFUFJFQ0FURUQgLSBDb25maWd1cmUgdGhpcyB1c2luZyB0aGUgIm11bHRpcGFydENsYXNzIiBhdHRyaWJ1dGUKKyAgICAgICAgb2YgdGhlICZsdDtjb250cm9sbGVyJmd0OyBlbGVtZW50LjwvZW0+CisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8c3Ryb25nPm5vY2FjaGU8L3N0cm9uZz4gLSBJZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIGFkZCBIVFRQCisgICAgICAgIGhlYWRlcnMgdG8gZXZlcnkgcmVzcG9uc2UgaW50ZW5kZWQgdG8gZGVmZWF0IGJyb3dzZXIgY2FjaGluZyBvZgorICAgICAgICBhbnkgcmVzcG9uc2Ugd2UgZ2VuZXJhdGUgb3IgZm9yd2FyZCB0by4KKyAgICAgICAgW2ZhbHNlXQorICAgICAgICA8ZW0+REVQUkVDQVRFRCAtIENvbmZpZ3VyZSB0aGlzIHVzaW5nIHRoZSAibm9jYWNoZSIgYXR0cmlidXRlIG9mCisgICAgICAgIHRoZSAmbHQ7Y29udHJvbGxlciZndDsgZWxlbWVudC48L2VtPgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz5udWxsPC9zdHJvbmc+IC0gSWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBzZXQgb3VyCisgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyB0byByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4gaWYgYW4gdW5rbm93bgorICAgICAgICBtZXNzYWdlIGtleSBpcyB1c2VkLgorICAgICAgICBPdGhlcndpc2UsIGFuIGVycm9yIG1lc3NhZ2UgaW5jbHVkaW5nIHRoZSBvZmZlbmRpbmcgbWVzc2FnZSBrZXkgd2lsbAorICAgICAgICBiZSByZXR1cm5lZC4KKyAgICAgICAgW3RydWVdCisgICAgICAgIDxlbT5ERVBSRUNBVEVEIC0gQ29uZmlndXJlIHRoaXMgdXNpbmcgdGhlICJudWxsIiBhdHRyaWJ1dGUgb2YKKyAgICAgICAgdGhlICZsdDttZXNzYWdlLXJlc291cmNlcyZndDsgZWxlbWVudC48L2VtPgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPHN0cm9uZz50ZW1wRGlyPC9zdHJvbmc+IC0gVGhlIHRlbXBvcmFyeSB3b3JraW5nIGRpcmVjdG9yeSB0byB1c2Ugd2hlbgorICAgICAgICBwcm9jZXNzaW5nIGZpbGUgdXBsb2Fkcy4KKyAgICAgICAgW1RoZSB3b3JraW5nIGRpcmVjdG9yeSBwcm92aWRlZCB0byB0aGlzIHdlYiBhcHBsaWNhdGlvbiBhcyBhIHNlcnZsZXQKKyAgICAgICAgY29udGV4dCBhdHRyaWJ1dGVdCisgICAgICAgIDxlbT5ERVBSRUNBVEVEIC0gQ29uZmlndXJlIHRoaXMgdXNpbmcgdGhlICJ0ZW1wRGlyIiBhdHRyaWJ1dGUgb2YKKyAgICAgICAgdGhlICZsdDtjb250cm9sbGVyJmd0OyBlbGVtZW50LjwvZW0+CisgICAgICAgIDwvbGk+CisKKyAgICAgPC91bD4KKworICAgICA8cD4KKyAgICAgICA8c3Ryb25nPldBUk5JTkc8L3N0cm9uZz4gLSBTdHJ1dHMgd2lsbCBub3QKKyAgICAgICBvcGVyYXRlIGNvcnJlY3RseSBpZiB5b3UgZGVmaW5lIG1vcmUgdGhhbiBvbmUKKyAgICAgICA8Y29kZT4mbHQ7c2VydmxldCZndDs8L2NvZGU+IGVsZW1lbnQgZm9yIGEgY29udHJvbGxlcgorICAgICAgIHNlcnZsZXQsIG9yIGEgc3ViY2xhc3Mgb2YgdGhlIHN0YW5kYXJkIGNvbnRyb2xsZXIgc2VydmxldCBjbGFzcy4KKyAgICAgICBUaGUgY29udHJvbGxlciBzZXJ2bGV0IDxzdHJvbmc+TVVTVDwvc3Ryb25nPiBiZSBhIHdlYiBhcHBsaWNhdGlvbgorICAgICAgIHdpZGUgc2luZ2xldG9uLgorICAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24KKyAgICBuYW1lPSI1LjQuMiBDb25maWd1cmUgdGhlIEFjdGlvbiBTZXJ2bGV0IE1hcHBpbmciCisgICAgaHJlZj0iZGRfY29uZmlnX21hcHBpbmciPgorCisgICAgPHA+CisgICAgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgbWF0ZXJpYWwgaW4gdGhpcyBzZWN0aW9uIGlzIG5vdCBzcGVjaWZpYyB0bworICAgIFN0cnV0cy4KKyAgICBUaGUgY29uZmlndXJhdGlvbiBvZiBzZXJ2bGV0IG1hcHBpbmdzIGlzIGRlZmluZWQgaW4gdGhlIEphdmEgU2VydmxldAorICAgIFNwZWNpZmljYXRpb24uCisgICAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgbW9zdCBjb21tb24gbWVhbnMgb2YgY29uZmlndXJpbmcgYSBTdHJ1dHMKKyAgICBhcHBsaWNhdGlvbi4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGVyZSBhcmUgdHdvIGNvbW1vbiBhcHByb2FjaGVzIHRvIGRlZmluaW5nIHRoZSBVUkxzIHRoYXQgd2lsbAorICAgIGJlIHByb2Nlc3NlZCBieSB0aGUgY29udHJvbGxlciBzZXJ2bGV0IC0tIHByZWZpeCBtYXRjaGluZyBhbmQgZXh0ZW5zaW9uCisgICAgbWF0Y2hpbmcuCisgICAgQW4gYXBwcm9wcmlhdGUgbWFwcGluZyBlbnRyeSBmb3IgZWFjaCBhcHByb2FjaCB3aWxsIGJlIGRlc2NyaWJlZCBiZWxvdy4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBQcmVmaXggbWF0Y2hpbmcgbWVhbnMgdGhhdCB5b3Ugd2FudCBhbGwgVVJMcyB0aGF0IHN0YXJ0IChhZnRlciB0aGUgY29udGV4dAorICAgIHBhdGggcGFydCkgd2l0aCBhIHBhcnRpY3VsYXIgdmFsdWUgdG8gYmUgcGFzc2VkIHRvIHRoaXMgc2VydmxldC4KKyAgICBTdWNoIGFuIGVudHJ5IG1pZ2h0IGxvb2sgbGlrZSB0aGlzOgorICAgIDwvcD4KKworPHByZT48Y29kZT48IVtDREFUQVsKKyAgPHNlcnZsZXQtbWFwcGluZz4KKyAgICAgPHNlcnZsZXQtbmFtZT5hY3Rpb248L3NlcnZsZXQtbmFtZT4KKyAgICAgPHVybC1wYXR0ZXJuPi9kby8qPC91cmwtcGF0dGVybj4KKyAgIDwvc2VydmxldC1tYXBwaW5nPgorXV0+PC9jb2RlPjwvcHJlPgorCisgICAgICAgIDxwPgorICAgICAgICB3aGljaCBtZWFucyB0aGF0IGEgcmVxdWVzdCBVUkkgdG8gbWF0Y2ggdGhlIDxjb2RlPi9sb2dvbjwvY29kZT4gcGF0aAorICAgICAgICBkZXNjcmliZWQgZWFybGllciBtaWdodCBsb29rIGxpa2UgdGhpczoKKyAgICAgICAgPC9wPgorCis8cHJlPjxjb2RlPmh0dHA6Ly93d3cubXljb21wYW55LmNvbS9teWFwcGxpY2F0aW9uL2RvL2xvZ29uPC9jb2RlPjwvcHJlPgorCisgICAgICAgIDxwPgorICAgICAgICB3aGVyZSA8Y29kZT4vbXlhcHBsaWNhdGlvbjwvY29kZT4gaXMgdGhlIGNvbnRleHQgcGF0aCB1bmRlciB3aGljaCB5b3VyCisgICAgICAgIGFwcGxpY2F0aW9uIGlzIGRlcGxveWVkLgorICAgICAgICA8L3A+CisKKyAgICAgICAgPHA+CisgICAgICAgIEV4dGVuc2lvbiBtYXBwaW5nLCBvbiB0aGUgb3RoZXIgaGFuZCwgbWF0Y2hlcyByZXF1ZXN0IFVSSXMgdG8gdGhlCisgICAgICAgIGFjdGlvbiBzZXJ2bGV0IGJhc2VkIG9uIHRoZSBmYWN0IHRoYXQgdGhlIFVSSSBlbmRzIHdpdGggYSBwZXJpb2QKKyAgICAgICAgZm9sbG93ZWQgYnkgYSBkZWZpbmVkIHNldCBvZiBjaGFyYWN0ZXJzLgorICAgICAgICBGb3IgZXhhbXBsZSwgdGhlIEpTUCBwcm9jZXNzaW5nIHNlcnZsZXQgaXMgbWFwcGVkCisgICAgICAgIHRvIHRoZSA8Y29kZT4qLmpzcDwvY29kZT4gcGF0dGVybiBzbyB0aGF0IGl0IGlzIGNhbGxlZCB0byBwcm9jZXNzCisgICAgICAgIGV2ZXJ5IEpTUCBwYWdlIHRoYXQgaXMgcmVxdWVzdGVkLgorICAgICAgICBUbyB1c2UgdGhlIDxjb2RlPiouZG88L2NvZGU+IGV4dGVuc2lvbiAod2hpY2ggaW1wbGllcyAiZG8gc29tZXRoaW5nIiksCisgICAgICAgIHRoZSBtYXBwaW5nIGVudHJ5IHdvdWxkIGxvb2sgbGlrZSB0aGlzOgorICAgICAgICA8L3A+CisKKzxwcmU+PGNvZGU+PCFbQ0RBVEFbCisgIDxzZXJ2bGV0LW1hcHBpbmc+CisgICAgIDxzZXJ2bGV0LW5hbWU+YWN0aW9uPC9zZXJ2bGV0LW5hbWU+CisgICAgIDx1cmwtcGF0dGVybj4qLmRvPC91cmwtcGF0dGVybj4KKyAgIDwvc2VydmxldC1tYXBwaW5nPgorXV0+PC9jb2RlPjwvcHJlPgorCisgICAgICAgIDxwPgorICAgICAgICBhbmQgYSByZXF1ZXN0IFVSSSB0byBtYXRjaCB0aGUgPGNvZGU+L2xvZ29uPC9jb2RlPiBwYXRoIGRlc2NyaWJlZAorICAgICAgICBlYXJsaWVyIG1pZ2h0IGxvb2sgbGlrZSB0aGlzOgorICAgICAgICA8L3A+CisKKzxwcmU+PGNvZGU+aHR0cDovL3d3dy5teWNvbXBhbnkuY29tL215YXBwbGljYXRpb24vbG9nb24uZG88L2NvZGU+PC9wcmU+CisKKyAgICAgICAgPHA+CisgICAgICAgIDxzdHJvbmc+V0FSTklORzwvc3Ryb25nPiAtIFN0cnV0cyB3aWxsIG5vdAorICAgICAgICBvcGVyYXRlIGNvcnJlY3RseSBpZiB5b3UgZGVmaW5lIG1vcmUgdGhhbiBvbmUKKyAgICAgICAgPGNvZGU+Jmx0O3NlcnZsZXQtbWFwcGluZyZndDs8L2NvZGU+IGVsZW1lbnQgZm9yIHRoZSBjb250cm9sbGVyCisgICAgICAgIHNlcnZsZXQuCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgPHN0cm9uZz5XQVJOSU5HPC9zdHJvbmc+IC0gSWYgeW91IGFyZSB1c2luZworICAgICAgICB0aGUgbmV3IG1vZHVsZSBzdXBwb3J0IGluIFN0cnV0cyAxLjEsIHlvdSBzaG91bGQgYmUgYXdhcmUKKyAgICAgICAgdGhhdCA8c3Ryb25nPm9ubHk8L3N0cm9uZz4gZXh0ZW5zaW9uIG1hcHBpbmcgaXMgc3VwcG9ydGVkLgorICAgICAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24KKyAgICBuYW1lPSI1LjQuMyBDb25maWd1cmUgdGhlIFN0cnV0cyBUYWcgTGlicmFyaWVzIgorICAgIGhyZWY9ImRkX2NvbmZpZ190YWdsaWIiPgorCisgICAgICAgIDxwPgorICAgICAgICBOZXh0LCB5b3UgbXVzdCBhZGQgYW4gZW50cnkgZGVmaW5pbmcgdGhlIFN0cnV0cyB0YWcgbGlicmFyeS4KKyAgICAgICAgPC9wPgorCisgICAgICAgIDxwPgorICAgICAgICBUaGUgc3RydXRzLWJlYW4gdGFnbGliIGNvbnRhaW5zIHRhZ3MgdXNlZnVsIGluIGFjY2Vzc2luZyBiZWFucyBhbmQgdGhlaXIKKyAgICAgICAgcHJvcGVydGllcywgIGFzIHdlbGwgYXMgZGVmaW5pbmcgbmV3IGJlYW5zIChiYXNlZCBvbiB0aGVzZSBhY2Nlc3NlcykKKyAgICAgICAgdGhhdCBhcmUgYWNjZXNzaWJsZSB0byB0aGUgcmVtYWluZGVyIG9mIHRoZSBwYWdlIHZpYSBzY3JpcHRpbmcKKyAgICAgICAgdmFyaWFibGVzIGFuZCBwYWdlIHNjb3BlIGF0dHJpYnV0ZXMuCisgICAgICAgIENvbnZlbmllbnQgbWVjaGFuaXNtcyB0byBjcmVhdGUgbmV3IGJlYW5zIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiByZXF1ZXN0CisgICAgICAgIGNvb2tpZXMsIGhlYWRlcnMsIGFuZCBwYXJhbWV0ZXJzIGFyZSBhbHNvIHByb3ZpZGVkLgorICAgICAgICA8L3A+CisKKyAgICAgICAgPHA+CisgICAgICAgIFRoZSBzdHJ1dHMtaHRtbCB0YWdsaWIgY29udGFpbnMgdGFncyB1c2VkIHRvIGNyZWF0ZSBzdHJ1dHMgaW5wdXQgZm9ybXMsCisgICAgICAgIGFzIHdlbGwgYXMgb3RoZXIgdGFncyBnZW5lcmFsbHkgdXNlZnVsIGluIHRoZSBjcmVhdGlvbiBvZiBIVE1MLWJhc2VkCisgICAgICAgIHVzZXIgaW50ZXJmYWNlcy4KKyAgICAgICAgPC9wPgorCisgICAgICAgIDxwPgorICAgICAgICBUaGUgc3RydXRzLWxvZ2ljIHRhZ2xpYiBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbiBtYW5hZ2luZworICAgICAgICBjb25kaXRpb25hbCBnZW5lcmF0aW9uIG9mIG91dHB1dCB0ZXh0LAorICAgICAgICBsb29waW5nIG92ZXIgb2JqZWN0IGNvbGxlY3Rpb25zIGZvciByZXBldGl0aXZlIGdlbmVyYXRpb24gb2Ygb3V0cHV0CisgICAgICAgIHRleHQsICBhbmQgYXBwbGljYXRpb24gZmxvdyBtYW5hZ2VtZW50LgorICAgICAgICA8L3A+CisKKyAgICAgICAgPHA+CisgICAgICAgIFRoZSBzdHJ1dHMtdGlsZXMgdGFnbGliIGNvbnRhaW5zIHRhZ3MgdXNlZCBmb3IgY29tYmluaW5nIHZhcmlvdXMgdmlldworICAgICAgICBjb21wb25lbnRzLCBjYWxsZWQgInRpbGVzIiwgaW50byBhIGZpbmFsIGNvbXBvc2l0ZSB2aWV3LgorICAgICAgICA8L3A+CisKKyAgICAgICAgPHA+CisgICAgICAgIFRoZSBzdHJ1dHMtbmVzdGVkIHRhZ2xpYiBpcyBhbiBleHRlbnNpb24gb2Ygb3RoZXIgc3RydXRzIHRhZ2xpYnMgdGhhdAorICAgICAgICBhbGxvd3MgdGhlIHVzZSBvZiBuZXN0ZWQgYmVhbnMuCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgQmVsb3cgaXMgaG93IHlvdSB3b3VsZCBkZWZpbmUgYWxsIHRhZ2xpYnMgZm9yIHVzZSB3aXRoaW4geW91cgorICAgICAgICBhcHBsaWNhdGlvbi4KKyAgICAgICAgSW4gcHJhY3RpY2UsIHlvdSB3b3VsZCBvbmx5IHNwZWNpZnkgdGhlIHRhZ2xpYnMgdGhhdCB5b3VyIGFwcGxpY2F0aW9uCisgICAgICAgIHVzZXM6CisgICAgICAgIDwvcD4KKworPHByZT48Y29kZT48IVtDREFUQVsKKzx0YWdsaWI+CisgIDx0YWdsaWItdXJpPgorICAgIC90YWdzL3N0cnV0cy1iZWFuCisgIDwvdGFnbGliLXVyaT4KKyAgPHRhZ2xpYi1sb2NhdGlvbj4KKyAgICAvV0VCLUlORi9zdHJ1dHMtYmVhbi50bGQKKyAgPC90YWdsaWItbG9jYXRpb24+Cis8L3RhZ2xpYj4KKzx0YWdsaWI+CisgIDx0YWdsaWItdXJpPgorICAgIC90YWdzL3N0cnV0cy1odG1sCisgIDwvdGFnbGliLXVyaT4KKyAgPHRhZ2xpYi1sb2NhdGlvbj4KKyAgICAvV0VCLUlORi9zdHJ1dHMtaHRtbC50bGQKKyAgPC90YWdsaWItbG9jYXRpb24+Cis8L3RhZ2xpYj4KKzx0YWdsaWI+CisgIDx0YWdsaWItdXJpPgorICAgIC90YWdzL3N0cnV0cy1sb2dpYworICA8L3RhZ2xpYi11cmk+CisgIDx0YWdsaWItbG9jYXRpb24+CisgICAgL1dFQi1JTkYvc3RydXRzLWxvZ2ljLnRsZAorICA8L3RhZ2xpYi1sb2NhdGlvbj4KKzwvdGFnbGliPgorPHRhZ2xpYj4KKyAgPHRhZ2xpYi11cmk+CisgICAgL3RhZ3Mvc3RydXRzLXRpbGVzCisgIDwvdGFnbGliLXVyaT4KKyAgPHRhZ2xpYi1sb2NhdGlvbj4KKyAgICAvV0VCLUlORi9zdHJ1dHMtdGlsZXMudGxkCisgIDwvdGFnbGliLWxvY2F0aW9uPgorPC90YWdsaWI+CitdXT48L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICBUaGlzIHRlbGxzIHRoZSBKU1Agc3lzdGVtIHdoZXJlIHRvIGZpbmQgdGhlIHRhZyBsaWJyYXJ5IGRlc2NyaXB0b3IKKyAgICBmb3IgdGhpcyBsaWJyYXJ5IChpbiB5b3VyIGFwcGxpY2F0aW9uJ3MgV0VCLUlORiBkaXJlY3RvcnksIGluc3RlYWQgb2YKKyAgICBvdXQgb24gdGhlIEludGVybmV0IHNvbWV3aGVyZSkuCisgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uCisgICAgbmFtZT0iNS40LjMuMSBDb25maWd1cmUgdGhlIFN0cnV0cyBUYWcgTGlicmFyaWVzIChTZXJ2bGV0IDIuMykiCisgICAgaHJlZj0iZGRfY29uZmlnX3RhZ2xpYl8yMyI+CisKKyAgICA8cD4KKyAgICA8c3Ryb25nPlNlcnZsZXQgMi4zIFVzZXJzIG9ubHk6PC9zdHJvbmc+IFRoZSBTZXJ2bGV0IDIuMyBzcGVjaWZpY2F0aW9uIHNpbXBsaWZpZXMKKyAgICB0aGUgZGVwbG95bWVudCBhbmQgY29uZmlndXJhdGlvbiBvZiB0YWcgbGlicmFyaWVzLgorICAgIFRoZSBpbnN0cnVjdGlvbnMgYWJvdmUgd2lsbCB3b3JrIG9uIG9sZGVyIGNvbnRhaW5lcnMgYXMgd2VsbCBhcyAyLjMKKyAgICBjb250YWluZXJzIChTdHJ1dHMgb25seSByZXF1aXJlcyBhIHNlcnZsZXQgMi4yIGNvbnRhaW5lcik7CisgICAgaG93ZXZlciwgaWYgeW91J3JlIHVzaW5nIGEgMi4zIGNvbnRhaW5lciBzdWNoIGFzIFRvbWNhdCA0LngsCisgICAgeW91IGNhbiB0YWtlIGFkdmFudGFnZSBvZiBhIHNpbXBsaWZpZWQgZGVwbG95bWVudC4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBBbGwgdGhhdCdzIHJlcXVpcmVkIHRvIGluc3RhbGwgdGhlIHN0cnV0cyB0YWcgbGlicmFyaWVzIGlzIHRvIGNvcHkKKyAgICBzdHJ1dHMuamFyIGludG8geW91ciAvV0VCLUlORi9saWIgZGlyZWN0b3J5IGFuZCByZWZlcmVuY2UgdGhlIHRhZ3MgaW4KKyAgICB5b3VyIGNvZGUgbGlrZSB0aGlzOgorICAgIDwvcD4KKworICAgIDxwcmU+PGNvZGU+CisgICAgJmx0OyVAIHRhZ2xpYgorICAgICAgICB1cmk9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL3RhZ3MtaHRtbCIKKyAgICAgICAgcHJlZml4PSJodG1sIiAlJmd0OworICAgIDwvY29kZT48L3ByZT4KKworICAgIDxwPgorICAgIE5vdGUgdGhhdCB5b3UgPHN0cm9uZz5tdXN0IHVzZSB0aGUgZnVsbCB1cmk8L3N0cm9uZz4gZGVmaW5lZCBpbiB0aGUgdmFyaW91cyBzdHJ1dHMKKyAgICB0bGRzIHNvIHRoYXQgdGhlIGNvbnRhaW5lciBrbm93cyB3aGVyZSB0byBmaW5kIHRoZSB0YWcncyBjbGFzcyBmaWxlcy4KKyAgICBZb3UgZG9uJ3QgaGF2ZSB0byBhbHRlciB5b3VyIHdlYi54bWwgZmlsZSBvciBjb3B5IHRsZHMgaW50byBhbnkKKyAgICBhcHBsaWNhdGlvbiBkaXJlY3Rvcmllcy4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24KKyAgICBuYW1lPSI1LjUgQWRkIFN0cnV0cyBDb21wb25lbnRzIFRvIFlvdXIgQXBwbGljYXRpb24iCisgICAgaHJlZj0iY29uZmlnX2FkZCI+CisKKyAgICA8cD4KKyAgICBUbyB1c2UgU3RydXRzLCB5b3UgbXVzdCBjb3B5IHRoZSAudGxkIGZpbGVzIHRoYXQgeW91IHJlcXVpcmUgaW50bworICAgIHlvdXIgPGNvZGU+V0VCLUlORjwvY29kZT4gZGlyZWN0b3J5LCBhbmQgY29weSA8Y29kZT5zdHJ1dHMuamFyPC9jb2RlPgorICAgIChhbmQgYWxsIG9mIHRoZSA8Y29kZT5jb21tb25zLSouamFyPC9jb2RlPiBmaWxlcykgaW50byB5b3VyCisgICAgPGNvZGU+V0VCLUlORi9saWI8L2NvZGU+IGRpcmVjdG9yeS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICA8c3Ryb25nPlNlcnZsZXQgMi4zIFVzZXJzOjwvc3Ryb25nPiBTZWUKKyAgICA8YSBocmVmPSIjZGRfY29uZmlnX3RhZ2xpYl8yMyI+c2VjdGlvbiA1LjQuMy4xPC9hPgorICAgIGZvciBob3cgdG8gYXZvaWQgY29weWluZyB0aGUgdGxkcyBpbnRvIHlvdXIgYXBwbGljYXRpb24uCisgICAgPC9wPgorCisgICAgPGRpdiBjbGFzcz0ibm90aWNlIj4KKyAgICAgIDxoNCBjbGFzcz0iY2VudGVyIj4KKyAgICAgICAgU2lkZWJhcjogIFNoYXJpbmcgSkFSIEZpbGVzIEFjcm9zcyBXZWIgQXBwbGljYXRpb25zCisgICAgICA8L2g0PgorCisgICAgICA8cD4KKyAgICAgICAgTWFueSBzZXJ2bGV0IGNvbnRhaW5lcnMgYW5kIGFwcGxpY2F0aW9uIHNlcnZlcnMgcHJvdmlkZSBmYWNpbGl0aWVzCisgICAgICAgIGZvciBzaGFyaW5nIEpBUiBmaWxlcyBhY3Jvc3MgbXVsdGlwbGUgd2ViIGFwcGxpY2F0aW9ucyB0aGF0IGRlcGVuZAorICAgICAgICBvbiB0aGVtLiAgRm9yIGV4YW1wbGUsIFRvbWNhdCA0LjEgYWxsb3dzIHlvdSB0byBwdXQgSkFSIGZpbGVzIGludG8KKyAgICAgICAgdGhlIDxjb2RlPiRDQVRBTElOQV9IT01FL3NoYXJlZC9saWI8L2NvZGU+IG9yCisgICAgICAgIDxjb2RlPiRDQVRBTElOQV9IT01FL2NvbW1vbi9saWI8L2NvZGU+IGRpcmVjdG9yaWVzLCBhbmQgdGhlIGNsYXNzZXMKKyAgICAgICAgaW4gdGhvc2UgSkFSIGZpbGVzIHdpbGwgYmUgYXZhaWxhYmxlIGluIGFsbCBhcHBsaWNhdGlvbnMsIHdpdGhvdXQKKyAgICAgICAgdGhlIG5lZWQgdG8gcGxhY2UgdGhlbSBpbiBldmVyeSB3ZWIgYXBwbGljYXRpb24ncworICAgICAgICA8Y29kZT4vV0VCLUlORi9saWI8L2NvZGU+IGRpcmVjdG9yeS4gIFVzdWFsbHksIHRoZSBzaGFyaW5nIGlzCisgICAgICAgIGFjY29tcGxpc2hlZCBieSBjcmVhdGluZyBhIHNlcGFyYXRlIGNsYXNzIGxvYWRlciB0aGF0IGlzIHRoZSBwYXJlbnQKKyAgICAgICAgb2YgdGhlIGNsYXNzIGxvYWRlciAoY3JlYXRlZCBieSB5b3VyIGNvbnRhaW5lcikgZm9yIGVhY2ggaW5kaXZpZHVhbAorICAgICAgICB3ZWIgYXBwbGljYXRpb24uCisgICAgICA8L3A+CisKKyAgICAgIDxwPgorICAgICAgICBJZiB5b3UgaGF2ZSBtdWx0aXBsZSBTdHJ1dHMtYmFzZWQgd2ViIGFwcGxpY2F0aW9ucywgaXQgaXMgdGVtcHRpbmcKKyAgICAgICAgdG8gY29uc2lkZXIgdGFraW5nIGFkdmFudGFnZSBvZiB0aGlzIGNvbnRhaW5lciBmZWF0dXJlLCBhbmQgcGxhY2luZworICAgICAgICA8Y29kZT5zdHJ1dHMuamFyPC9jb2RlPiBhbmQgdGhlIHZhcmlvdXMgPGNvZGU+Y29tbW9ucy0qLmphcjwvY29kZT4KKyAgICAgICAgZmlsZXMgaW4gdGhlIHNoYXJlZCBkaXJlY3RvcnksIHJhdGhlciB0aGFuIGluIGVhY2ggd2ViIGFwcGxpY2F0aW9uLgorICAgICAgICBIb3dldmVyLCB0aGVyZSBhcmUgc2V2ZXJhbCBwb3RlbnRpYWwsIGFuZCBhY3R1YWwsIHByb2JsZW1zIHdpdGgKKyAgICAgICAgdGhpcyBhcHByb2FjaDoKKyAgICAgIDwvcD4KKworICAgICAgPHVsPgorICAgICAgICA8bGk+CisgICAgICAgICAgQ2xhc3NlcyBsb2FkZWQgZnJvbSB0aGUgc2hhcmVkIGNsYXNzIGxvYWRlciBjYW5ub3Qgc2VlIGNsYXNzZXMKKyAgICAgICAgICBpbiB0aGUgd2ViIGFwcGxpY2F0aW9uJ3MgY2xhc3MgbG9hZGVyLCB1bmxlc3MgdGhleSBhcmUgc3BlY2lmaWNhbGx5CisgICAgICAgICAgcHJvZ3JhbW1lZCB0byB1c2UgdGhlIFRocmVhZCBjb250ZXh0IGNsYXNzIGxvYWRlci4KKyAgICAgICAgICAKKyAgICAgICAgICAgIEZvciBleGFtcGxlLCBTdHJ1dHMgZHluYW1pY2FsbHkgbG9hZHMgeW91ciBhY3Rpb24gYW5kIGZvcm0gYmVhbgorICAgICAgICAgICAgY2xhc3NlcywgYW5kIG5vcm1hbGx5IHdvdWxkIG5vdCBiZSBhYmxlIHRvIGZpbmQgdGhvc2UgY2xhc3Nlcy4KKyAgICAgICAgICAgIFN0cnV0cyBoYXMgYmVlbiBwcm9ncmFtbWVkIHRvIGRlYWwgd2l0aCB0aGlzIGluIDxlbT5tb3N0PC9lbT4KKyAgICAgICAgICAgIHNjZW5hcmlvcywgYnV0IGl0IGhhcyBub3QgYmVlbiB0aG9yb3VnaGx5IGF1ZGl0ZWQgdG8gZW5zdXJlIHRoYXQKKyAgICAgICAgICAgIGl0IHdvcmtzIGluIDxlbT5hbGw8L2VtPiBzY2VuYXJpb3MuICBUaGUgQ29tbW9ucyBsaWJyYXJpZXMgdGhhdAorICAgICAgICAgICAgU3RydXRzIHVzZXMgaGF2ZSA8c3Ryb25nPk5PVDwvc3Ryb25nPiBiZWVuIGF1ZGl0ZWQgdG8gY2F0Y2ggYWxsCisgICAgICAgICAgICBwb3NzaWJsZSBzY2VuYXJpb3Mgd2hlcmUgdGhpcyBtaWdodCBiZWNvbWUgYSBwcm9ibGVtLgorICAgICAgICAgIAorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgV2hlbiBhIGNsYXNzIGlzIGxvYWRlZCBmcm9tIGEgc2hhcmVkIGNsYXNzIGxvYWRlciwgc3RhdGljIHZhcmlhYmxlcworICAgICAgICAgIHVzZWQgd2l0aGluIHRoYXQgY2xhc3MgYmVjb21lIGdsb2JhbCBhcyB3ZWxsLiAgVGhpcyBjYW4gY2F1c2UKKyAgICAgICAgICBpbnRlci13ZWJhcHAgY29uZmxpY3RzIHdoZW4gdGhlIHVuZGVybHlpbmcgY29kZSBhc3N1bWVzIHRoYXQgdGhlCisgICAgICAgICAgc3RhdGljcyBhcmUgZ2xvYmFsIG9ubHkgd2l0aGluIGEgcGFydGljdWxhciB3ZWIgYXBwbGljYWl0b24gKHdoaWNoCisgICAgICAgICAgd291bGQgYmUgdHJ1ZSBpZiB0aGUgY2xhc3Mgd2FzIGxvYWRlZCBmcm9tIHRoZSB3ZWJhcHAgY2xhc3MgbG9hZGVyKS4KKyAgICAgICAgICAKKyAgICAgICAgICAgIFRoZXJlIGFyZSBtYW55IGNhc2VzIHdoZXJlIFN0cnV0cywgYW5kIHRoZSBDb21tb25zIGxpYnJhcmllcyBpdAorICAgICAgICAgICAgcmVsaWVzIG9uLCB1c2Ugc3RhdGljIHZhcmlhYmxlcyB0byBtYWludGFpbiBpbmZvcm1hdGlvbiB0aGF0IGlzCisgICAgICAgICAgICBwcmVzdW1lZCB0byBiZSB2aXNpYmxlIG9ubHkgd2l0aGluIGEgc2luZ2xlIHdlYiBhcHBsaWNhaXRvbi4KKyAgICAgICAgICAgIFNoYXJpbmcgdGhlc2UgSkFSIGZpbGVzIGNhbiBjYXVzZSB1bndhbnRlZCBpbnRlcmFjdGlvbnMsIGFuZAorICAgICAgICAgICAgcHJvYmFibHkgY2F1c2UgaW5jb3JyZWN0IGJlaGF2aW9yLgorICAgICAgICAgIAorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgV2hlbiBKQVIgZmlsZXMgYXJlIHNoYXJlZCBsaWtlIHRoaXMsIGl0IGlzIG5vdCBwb3NzaWJsZSB0byB1cGRhdGUKKyAgICAgICAgICB0aGUgSkFSIGZpbGUgdmVyc2lvbnMgZW1wbG95ZWQgYnkgYSBzaW5nbGUgd2ViIGFwcGxpY2F0aW9uIHdpdGhvdXQKKyAgICAgICAgICB1cGRhdGluZyBhbGwgb2YgdGhlbS4gIEluIGFkZGl0aW9uLCBiZWNhdXNlIHVwZGF0aW5nIGEgU3RydXRzIHZlcnNpb24KKyAgICAgICAgICBub3JtYWxseSByZXF1aXJlcyByZWNvbXBpbGF0aW9uIG9mIHRoZSBhcHBsaWNhdGlvbnMgdGhhdCB1c2UgaXQsCisgICAgICAgICAgeW91IHdpbGwgaGF2ZSB0byByZWNvbXBpbGUgYWxsIG9mIHlvdXIgYXBwbGljYXRpb25zIGFzIHdlbGwsIGluc3RlYWQKKyAgICAgICAgICBvZiBiZWluZyBhYmxlIHRvIG1hbmFnZSB0aGVtIGluZGVwZW5kZW50bHkuCisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPgorCisgICAgICA8cD4KKyAgICAgICAgSW4gc3BpdGUgb2YgdGhlc2UgZGlmZmljdWx0aWVzLCBpdCBpcyBwb3NzaWJsZSB0aGF0IHNoYXJpbmcgdGhlCisgICAgICAgIFN0cnV0cyBhbmQgQ29tbW9ucyBKQVIgZmlsZXMgPGVtPm1pZ2h0PC9lbT4gYXBwZWFyIHRvIHdvcmsgZm9yIHlvdS4KKyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyA8c3Ryb25nPk5PVDwvc3Ryb25nPiBhIHN1cHBvcnRlZCBjb25maWd1cmF0aW9uLgorICAgICAgPC9wPgorCisgICAgICA8cD4KKyAgICAgICAgSWYgeW91IGZpbGUgYSBidWcgcmVwb3J0IGZvciA8Y29kZT5DbGFzc05vdEZvdW5kRXhjZXB0aW9uPC9jb2RlPiBvcgorICAgICAgICA8Y29kZT5Ob0NsYXNzRGVmRm91bmRFcnJvcjwvY29kZT4gZXhjZXB0aW9ucywgb3Igc2ltaWxhciBzaXR1YXRpb25zCisgICAgICAgIHdoZXJlIGl0IGFwcGVhcnMgdGhhdCB0aGUgd3JvbmcgdmVyc2lvbiBvZiBhIGNsYXNzIGlzIGJlaW5nIGxvYWRlZCwKKyAgICAgICAgdGhlIGJ1ZyByZXBvcnQgd2lsbCA8c3Ryb25nPk5PVDwvc3Ryb25nPiBiZSBwcm9jZXNzZWQgdW5sZXNzIHRoZQorICAgICAgICBwcm9ibGVtIGV4aXN0cyB3aXRoIHRoZSBKQVIgZmlsZXMgaW4gdGhlaXIgcmVjb21tZW5kZWQgbG9jYXRpb24sCisgICAgICAgIGluIHRoZSA8Y29kZT4vV0VCLUlORi9saWI8L2NvZGU+IHN1YmRpcmVjdG9yeSBvZiB5b3VyIHdlYmFwcC4KKyAgICAgIDwvcD4KKyAgICA8L2Rpdj4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbgorICAgIG5hbWU9IjUuNiBMb2dnaW5nIGluIFN0cnV0cyBCYXNlZCBBcHBsaWNhdGlvbnMiCisgICAgaHJlZj0iY29uZmlnX2xvZ2dpbmciPgorCisgIDxwPgorICBJbiBTdHJ1dHMgMS4wLCB0aGUgbG9nZ2luZyBmdW5jdGlvbmFsaXR5IHdhcyBmYWlybHkgbGltaXRlZC4gIFlvdSBjb3VsZAorICBzZXQgYSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIHdpdGggYSBzZXJ2bGV0IGluaXRpYWxpemF0aW9uIHBhcmFtZXRlciwgYW5kCisgIGFsbCBsb2cgbWVzc2FnZXMgd2VyZSB3cml0dGVuIHRvIHdoZXJldmVyIDxjb2RlPlNlcnZsZXRDb250ZXh0LmxvZygpPC9jb2RlPgorICBvdXRwdXQgaXMgc2VudCBieSB5b3VyIHNlcnZsZXQgY29udGFpbmVyLiAgV0l0aCBTdHJ1dHMgMS4xLCBob3dldmVyLCBhbGwKKyAgbG9nZ2luZyBtZXNzYWdlcyB3cml0dGVuIGJ5IFN0cnV0cyBpdHNlbGYsIGFzIHdlbGwgYXMgdGhlIGNvbW1vbnMgbGlicmFyaXJlcworICB0aGF0IGl0IHV0aWxpemVzLCBmbG93IHRocm91Z2ggYW4gYWJzdHJhY3Qgd3JhcHBlciBjYWxsZWQKKyAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2xvZ2dpbmciPkNvbW1vbnMgTG9nZ2luZzwvYT4sCisgIHdoaWNoIGNhbiBiZSB1c2VkIGFzIGEgd3JhcHBlciBhcm91bmQgYW55IGxvZ2dpbmcgaW1wbGVtZW50YXRpb24uICBUaGUgbW9zdAorICBjb21tb24gaW1wbGVtZW50YXRpb25zIHVzZWQgYXJlIHNpbXBsZSBsb2dnaW5nIHRvIDxjb2RlPlN5c3RlbS5lcnI8L2NvZGU+LAorICB0aGUgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9sb2c0ai8iPkFwYWNoZSBMb2c0SjwvYT4gcGFja2FnZSwKKyAgb3IgdGhlIGJ1aWx0LWluIGxvZ2dpbmcgY2FwYWJpbGl0aWVzIG9mIEpESyAxLjQgb3IgbGF0ZXIgaW4gdGhlCisgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vajJzZS8xLjQvZG9jcy9hcGkvamF2YS91dGlsL2xvZ2dpbmcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPgorICBqYXZhLnV0aWwubG9nZ2luZzwvYT4gcGFja2FnZS4KKyAgPC9wPgorCisgIDxwPgorICBUaGlzIHNlY3Rpb24gZG9lcyBub3QgYXR0ZW1wdCB0byBmdWxseSBleHBsYWluIGhvdyBDb21tb25zIExvZ2dpbmcgaXMKKyAgY29uZmlndXJlZCBhbmQgdXNlZC4gIEluc3RlYWQsIGl0IGZvY3VzZXMgb24gcGVydGluZW50IGRldGFpbHMgb2YgdXNpbmcKKyAgQ29tbW9ucyBMb2dnaW5nIGluIGEgU3RydXRzIGJhc2VkIGVudmlyb25tZW50LiAgRm9yIGNvbXBsZXRlIGRvY3VtZW50YXRpb24KKyAgb24gdXNpbmcgQ29tbW9ucyBMb2dnaW5nLCBjb25zdWx0IHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgbG9nZ2luZyBzeXN0ZW0KKyAgeW91IGFyZSB1c2luZywgcGx1cyB0aGUgQ29tbW9ucyBMb2dnaW5nCisgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9sb2dnaW5nL2FwaS9vcmcvYXBhY2hlL2NvbW1vbnMvbG9nZ2luZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCNwYWNrYWdlX2Rlc2NyaXB0aW9uIj4KKyAgSmF2YWRvY3M8L2E+LgorICA8L3A+CisKKyAgPHA+CisgIENvbW1vbnMgTG9nZ2luZyBwcm92aWRlcyBmaW5lLWdyYWluZWQgY29udHJvbCBvdmVyIHRoZSBsb2dnaW5nIG1lc3NhZ2VzCisgIGNyZWF0ZWQgYnkgYSA8Y29kZT5Mb2c8L2NvZGU+IGluc3RhbmNlLiAgQnkgY29udmVudGlvbiwgdGhlIDxjb2RlPkxvZzwvY29kZT4KKyAgaW5zdGFuY2VzIGZvciBTdHJ1dHMgKGFuZCB0aGUgQ29tbW9ucyBwYWNrYWdlcyBpbiBnZW5lcmFsKSBhcmUgbmFtZWQgdGhlCisgIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIG9mIHRoZSBjbGFzcyB3aG9zZSBtZXNzYWdlcyBhcmUgYmVpbmcgbG9nZ2VkLgorICBUaGVyZWZvcmUsIGxvZyBtZXNzYWdlcyBjcmVhdGVkIGJ5IHRoZSBSZXF1ZXN0UHJvY2Vzc29yIGNsYXNzIGFyZSwgbmF0dXJhbGx5CisgIGVub3VnaCwgZGlyZWN0ZWQgdG8gYSBsb2dnZXIgbmFtZWQKKyAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJlcXVlc3RQcm9jZXNzb3I8L2NvZGU+LgorICA8L3A+CisKKyAgPHA+CisgIFRoZSBhZHZhbnRhZ2Ugb2YgdGhpcyBhcHByb2FjaCBpcyB0aGF0IHlvdSBjYW4gY29uZmlndXJlIHRoZSBsZXZlbCBvZiBkZXRhaWwKKyAgaW4gdGhlIG91dHB1dCB5b3Ugd2FudCBmcm9tIGVhY2ggY2xhc3MsIGluZGl2aWR1YWxseS4gIEhvd2V2ZXIsIGl0IHdvdWxkIGJlCisgIGEgYnVyZGVuIHRvIGJlIHJlcXVpcmVkIHRvIG1haW50YWluIHN1Y2ggc2V0dGluZ3MgZm9yIGV2ZXJ5IHBvc3NpYmxlIGNsYXNzLAorICBzbyB0aGUgbG9nZ2luZyBlbnZpcm9ubWVudCBzdXBwb3J0cyB0aGUgbm90aW9uIG9mIGxvZ2dpbmcKKyAgPGVtPmhpZXJhcmNoaWVzPC9lbT4gYXMgd2VsbC4gIElmIGEgZGV0YWlsIGxldmVsIGNvbmZpZ3VyYXRpb24gZm9yIGEKKyAgcGFydGljdWxhciBjbGFzcyBoYXMgbm90IGJlZW4gc2V0LCB0aGUgbG9nZ2luZyBzeXN0ZW0gbG9va3MgdXAgdGhlIGhpZXJhcmNoeQorICB1bnRpbCBpdCBmaW5kcyBhIGNvbmZpZ3VyYXRpb24gc2V0dGluZyB0byB1c2UsIG9yIGVsc2UgdXNlcyB0aGUgZGVmYXVsdAorICBkZXRhaWwgbGV2ZWwgaWYgbm8gY29uZmlndXJhdGlvbiBmb3IgYW55IGxldmVsIG9mIHRoZSBoaWVyYXJjaHkgaGFzIGJlZW4KKyAgZXhwbGljaXRseSBzZXQuICBJbiB0aGUgY2FzZSBvZiBvdXIgbWVzc2FnZXMgZnJvbSA8Y29kZT5SZXF1ZXN0UHJvY2Vzc29yPC9jb2RlPiwKKyAgdGhlIGxvZ2dpbmcgc3lzdGVtIHdpbGwgbG9vayBmb3IgZXhwbGljaXQgc2V0dGluZ3Mgb2YgdGhlIGZvbGxvd2luZyBsb2dnZXJzLAorICBpbiB0aGlzIG9yZGVyLCB1bnRpbCBpdCBmaW5kcyBvbmUuCisgIDwvcD4KKworICA8dWw+CisgIDxsaT48Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdFByb2Nlc3NvcjwvY29kZT48L2xpPgorICA8bGk+PGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9jb2RlPjwvbGk+CisgIDxsaT48Y29kZT5vcmcuYXBhY2hlLnN0cnV0czwvY29kZT48L2xpPgorICA8bGk+PGNvZGU+b3JnLmFwYWNoZTwvY29kZT48L2xpPgorICA8bGk+PGNvZGU+b3JnPC9jb2RlPjwvbGk+CisgIDxsaT5UaGUgZGVmYXVsdCBsb2dnaW5nIGRldGFpbCBsZXZlbCBmb3IgeW91ciBsb2cgaW1wbGVtZW50YXRpb24uPC9saT4KKyAgPC91bD4KKworICA8cD4KKyAgSW4gYSBzaW1pbGFyIG1hbm5lciwgdGhlIGRldGFpbCBsZXZlbCBmb3IgbWVzc2FnZXMgZnJvbQorICA8Y29kZT5Qcm9wZXJ0eVV0aWxzPC9jb2RlPiAoZnJvbSB0aGUgQ29tbW9ucyBCZWFuVXRpbHMgbGlicmFyeSkgaXMgc2V0IGJ5CisgIGEgc2VhcmNoIGZvciBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvcjoKKyAgPC9wPgorCisgIDx1bD4KKyAgPGxpPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuUHJvcGVydHlVdGlsczwvY29kZT48L2xpPgorICA8bGk+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlsczwvY29kZT48L2xpPgorICA8bGk+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zPC9jb2RlPjwvbGk+CisgIDxsaT48Y29kZT5vcmcuYXBhY2hlPC9jb2RlPjwvbGk+CisgIDxsaT48Y29kZT5vcmc8L2NvZGU+PC9saT4KKyAgPGxpPlRoZSBkZWZhdWx0IGxvZ2dpbmcgZGV0YWlsIGxldmVsIGZvciB5b3VyIGxvZyBpbXBsZW1lbnRhdGlvbi48L2xpPgorICA8L3VsPgorCisgIDxwPgorICBZb3UgY2FuIHNlYW1sZXNzbHkgaW50ZWdyYXRlIGxvZ2dpbmcgZnJvbSB5b3VyIG93biBjb21wb25lbnRzIGludG8gdGhlIHNhbWUKKyAgbG9nZ2luZyBpbXBsZW1lbnRhdGlvbiB0aGF0IFN0cnV0cyBhbmQgdGhlIENvbW1vbnMgbGlicmFyaWVzIHVzZSwgYnkKKyAgZm9sbG93aW5nIHRoZSBpbnN0cnVjdGlvbnMgaW4KKyAgPGEgaHJlZj0iYnVpbGRpbmdfY29udHJvbGxlci5odG1sI2xvZ2dpbmciPlNlY3Rpb24gNC4xMDwvYT4uICBJZiB5b3UgZG8KKyAgdGhpcywgeW91IGFyZSBzdHJvbmdseSBlbmNvdXJhZ2VkIHRvIGZvbGxvdyB0aGUgc2FtZSBuYW1pbmcgY29udmVudGlvbiBmb3IKKyAgbG9nZ2VycyAoYmFzZWQgb24gdGhlIGNsYXNzIG5hbWUgb2YgdGhlIG1lc3NhZ2VzIGJlaW5nIGxvZ2dlZCkgZm9yCisgIG1heGltdW0gY29uZmlndXJhdGlvbiBmbGV4aWJpbGl0eS4KKyAgPC9wPgorCis8L3NlY3Rpb24+CisKKworPHNlY3Rpb24+CisKKyAgICA8cD4KKyAgICBGb3IgbW9yZSBhYm91dCBwdXR0aW5nIGl0IGFsbCB0b2dldGhlciwgc2VlIHRoZSA8YSBocmVmPSIuLi9mYXFzL2FwcHMuaHRtbCI+CisgICAgQnVpbGRpbmcgQXBwbGljYXRpb25zIEhvd1RvPC9hPi4KKyAgICA8L3A+CisKKyAgICA8cCBjbGFzcz0icmlnaHQiPgorICAgIE5leHQ6IDxhIGhyZWY9Ii4vcmVsZWFzZS1ub3Rlcy5odG1sIj5SZWxlYXNlIE5vdGVzPC9hPgorICAgIDwvcD4KKworPC9zZWN0aW9uPgorCisgIAorICA8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2Rldl9iZWFuLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9kZXZfYmVhbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzMyYmNlOQotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9kZXZfYmVhbi54bWwKQEAgLTAsMCArMSw1OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPGRvY3VtZW50IHVybD0iZGV2X2JlYW4uaHRtbCI+CisKKzwhLS0KKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSA3OAorLS0+CisKKzxwcm9wZXJ0aWVzPgorICA8dGl0bGU+VGhlIFN0cnV0cyBVc2VyJ3MgR3VpZGUgLSBCZWFuIFRhZ2xpYiBHdWlkZTwvdGl0bGU+Cis8L3Byb3BlcnRpZXM+CisKKzxib2R5PiAKKzxzZWN0aW9uIG5hbWU9IkJlYW4gVGFnbGliIEd1aWRlIi8+IAorCis8c2VjdGlvbiBocmVmPSJiZWFuIiBuYW1lPSJUaGUgQmVhbiBUYWdsaWIiPgorCisgICAgPHA+CisgICAgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiAtIFNvbWUgb2YgdGhlIGZlYXR1cmVzIGluIHRoaXMgdGFnbGliIGFyZSBhbHNvIAorICAgIGF2YWlsYWJsZSBpbiB0aGUgCisgICAgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9qc3AvanN0bC8iPkphdmFTZXJ2ZXIgUGFnZXMgCisgICAgU3RhbmRhcmQgVGFnIExpYnJhcnkgKEpTVEwpPC9hPi4KKyAgICBUaGUgU3RydXRzIHRlYW0gZW5jb3VyYWdlcyB0aGUgdXNlIG9mIHRoZSBzdGFuZGFyZCB0YWdzIG92ZXIgdGhlIFN0cnV0cyAKKyAgICBzcGVjaWZpYyB0YWdzIHdoZW4gcG9zc2libGUuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhlICJzdHJ1dHMtYmVhbiIgdGFnIGxpYnJhcnkgY29udGFpbnMgSlNQIGN1c3RvbSB0YWdzIHVzZWZ1bCBpbiBkZWZpbmluZyAKKyAgICBuZXcgYmVhbnMgKGluIGFueSBkZXNpcmVkIHNjb3BlKSBmcm9tIGEgdmFyaWV0eSBvZiBwb3NzaWJsZSBzb3VyY2VzLCAKKyAgICBhcyB3ZWxsIGFzIGEgdGFnIHRvIHJlbmRlciBhIHBhcnRpY3VsYXIgYmVhbiAob3IgYmVhbiBwcm9wZXJ0eSkgdG8gdGhlIAorICAgIG91dHB1dCByZXNwb25zZS4gCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhpcyB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHVzZWZ1bCBpbiBhY2Nlc3NpbmcgYmVhbnMgYW5kIHRoZWlyIAorICAgIHByb3BlcnRpZXMsIGFzIHdlbGwgYXMgZGVmaW5pbmcgbmV3IGJlYW5zIChiYXNlZCBvbiB0aGVzZSBhY2Nlc3NlcykgdGhhdCAKKyAgICBhcmUgYWNjZXNzaWJsZSB0byB0aGUgcmVtYWluZGVyIG9mIHRoZSBwYWdlIHZpYSBzY3JpcHRpbmcgdmFyaWFibGVzIGFuZCAKKyAgICBwYWdlIHNjb3BlIGF0dHJpYnV0ZXMuIAorICAgIENvbnZlbmllbnQgbWVjaGFuaXNtcyB0byBjcmVhdGUgbmV3IGJlYW5zIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiByZXF1ZXN0IAorICAgIGNvb2tpZXMsIGhlYWRlcnMsIGFuZCBwYXJhbWV0ZXJzIGFyZSBhbHNvIHByb3ZpZGVkLgorICAgIDwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJyZXNvdXJjZXMiIG5hbWU9IkJlYW4gVGFnbGliIFJlc291cmNlcyI+CisKKyAgICA8dWw+CisgICAgICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0iLi4vYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sI3BhY2thZ2VfZGVzY3JpcHRpb24iPgorICAgICAgICBCZWFuIFRhZ2xpYiBQYWNrYWdlIERlc2NyaXB0aW9uPC9hPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+PGEgaHJlZj0ic3RydXRzLWJlYW4uaHRtbCI+QmVhbiBUYWdsaWIgQVBJIFJlZmVyZW5jZTwvYT4KKyAgICAgICAgPC9saT4KKyAgICA8L3VsPgorCis8L3NlY3Rpb24+CisKKworPC9ib2R5PgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9kZXZfaHRtbC54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvZGV2X2h0bWwueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZTYxNzQKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvZGV2X2h0bWwueG1sCkBAIC0wLDAgKzEsMzEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxkb2N1bWVudCB1cmw9ImRldl9odG1sLmh0bWwiPgorPHByb3BlcnRpZXM+CisgPHRpdGxlPlRoZSBTdHJ1dHMgVXNlcidzIEd1aWRlIC0gSFRNTCBUYWdsaWIgR3VpZGU8L3RpdGxlPgorPC9wcm9wZXJ0aWVzPgorPGJvZHk+Cis8c2VjdGlvbiBuYW1lPSJIVE1MIFRhZ2xpYiBHdWlkZSIvPgorCis8c2VjdGlvbiBocmVmPSJodG1sIiBuYW1lPSJUaGUgSFRNTCBUYWdsaWIiPgorCis8cD4KK1RoZSB0YWdzIGluIHRoZSBTdHJ1dHMgSFRNTCBsaWJyYXJ5IGZvcm0gYSBicmlkZ2UgYmV0d2VlbiBhIEpTUCB2aWV3IGFuZCB0aGUgb3RoZXIgY29tcG9uZW50cyBvZiBhIFdlYiBhcHBsaWNhdGlvbi4KK1NpbmNlIGEgZHluYW1pYyBXZWIgYXBwbGljYXRpb24gb2Z0ZW4gZGVwZW5kcyBvbiBnYXRoZXJpbmcgZGF0YSBmcm9tIGEgdXNlciwgaW5wdXQgZm9ybXMgcGxheSBhbiBpbXBvcnRhbnQgcm9sZSBpbgordGhlIFN0cnV0cyBmcmFtZXdvcmsuIENvbnNlcXVlbnRseSwgdGhlIG1ham9yaXR5IG9mIHRoZSBIVE1MIHRhZ3MgaW52b2x2ZSBIVE1MIGZvcm1zLgorPC9wPgorCis8cD4KK1RoZSBIVE1MIHRhZ2xpYiBjb250YWlucyB0YWdzIHVzZWQgdG8gY3JlYXRlIFN0cnV0cyBpbnB1dCBmb3JtcywgYXMgd2VsbCBhcyBvdGhlciB0YWdzIGdlbmVyYWxseSB1c2VmdWwKK2luIHRoZSBjcmVhdGlvbiBvZiBIVE1MLWJhc2VkIHVzZXIgaW50ZXJmYWNlcy4gIFRoZSBvdXRwdXQgaXMgSFRNTCA0LjAxIGNvbXBsaWFudCBvciBYSFRNTCAxLjAgd2hlbiBpbiBYSFRNTCBtb2RlLgorPC9wPgorPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJyZXNvdXJjZXMiIG5hbWU9IkhUTUwgVGFnIFJlc291cmNlcyI+CisKKzx1bD4KKzxsaT48YSBocmVmPSIuLi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwjcGFja2FnZV9kZXNjcmlwdGlvbiI+SFRNTCBUYWdsaWIgUGFja2FnZSBEZXNjcmlwdGlvbjwvYT48L2xpPgorPGxpPjxhIGhyZWY9InN0cnV0cy1odG1sLmh0bWwiPkhUTUwgVGFnbGliIEFQSSBSZWZlcmVuY2U8L2E+PC9saT4KKzwvdWw+Cis8L3NlY3Rpb24+CisKKzwvYm9keT48L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2Rldl9sb2dpYy54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvZGV2X2xvZ2ljLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWE3MmI5Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2Rldl9sb2dpYy54bWwKQEAgLTAsMCArMSwzMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPGRvY3VtZW50IHVybD0iZGV2X2xvZ2ljLmh0bWwiPgorPHByb3BlcnRpZXM+CisgPHRpdGxlPlRoZSBTdHJ1dHMgVXNlcidzIEd1aWRlIC0gTG9naWMgVGFnbGliIEd1aWRlPC90aXRsZT4KKzwvcHJvcGVydGllcz4KKzxib2R5PiAKKzxzZWN0aW9uIG5hbWU9IkxvZ2ljIFRhZ2xpYiBHdWlkZSIvPiAKKworPHNlY3Rpb24gaHJlZj0iaHRtbCIgbmFtZT0iVGhlIExvZ2ljIFRhZ2xpYiI+CisKKzxwPgorICAgIDxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gLSBNYW55IG9mIHRoZSBmZWF0dXJlcyBpbiB0aGlzIHRhZ2xpYiBhcmUgYWxzbyBhdmFpbGFibGUgaW4gdGhlIAorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvanNwL2pzdGwvIj5KYXZhU2VydmVyIFBhZ2VzIFN0YW5kYXJkIFRhZyBMaWJyYXJ5IChKU1RMKTwvYT4uCisgICAgVGhlIFN0cnV0cyB0ZWFtIGVuY291cmFnZXMgdGhlIHVzZSBvZiB0aGUgc3RhbmRhcmQgdGFncyBvdmVyIHRoZSBTdHJ1dHMgc3BlY2lmaWMgdGFncyB3aGVuIHBvc3NpYmxlLgorPC9wPgorCis8cD4KK1RoZSAic3RydXRzLWxvZ2ljIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbiBtYW5hZ2luZyBjb25kaXRpb25hbCBnZW5lcmF0aW9uIG9mIG91dHB1dCB0ZXh0LCBsb29waW5nIAorb3ZlciBvYmplY3QgY29sbGVjdGlvbnMgZm9yIHJlcGV0aXRpdmUgZ2VuZXJhdGlvbiBvZiBvdXRwdXQgdGV4dCwgYW5kIGFwcGxpY2F0aW9uIGZsb3cgbWFuYWdlbWVudAorPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9InJlc291cmNlcyIgbmFtZT0iTG9naWMgVGFnIFJlc291cmNlcyI+CisKKzx1bD4KKzxsaT48YSBocmVmPSIuLi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sI3BhY2thZ2VfZGVzY3JpcHRpb24iPkxvZ2ljIFRhZ2xpYiBQYWNrYWdlIERlc2NyaXB0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic3RydXRzLWxvZ2ljLmh0bWwiPkxvZ2ljIFRhZ2xpYiBBUEkgUmVmZXJlbmNlPC9hPjwvbGk+Cis8L3VsPgorPC9zZWN0aW9uPgorCis8L2JvZHk+PC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9kZXZfbmVzdGVkLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9kZXZfbmVzdGVkLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTdmNDJlCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2Rldl9uZXN0ZWQueG1sCkBAIC0wLDAgKzEsMjcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxkb2N1bWVudCB1cmw9ImRldl9uZXN0ZWQuaHRtbCI+Cis8cHJvcGVydGllcz4KKzx0aXRsZT5UaGUgU3RydXRzIFVzZXIncyBHdWlkZSAtIE5lc3RlZCBUYWdsaWIgR3VpZGU8L3RpdGxlPgorPC9wcm9wZXJ0aWVzPgorPGJvZHk+IAorPHNlY3Rpb24gbmFtZT0iTmVzdGVkIFRhZ2xpYiBHdWlkZSIvPiAKKworPHNlY3Rpb24gaHJlZj0ibmVzdGVkIiBuYW1lPSJUaGUgTmVzdGVkIFRhZ2xpYiI+CisKKzxwPgorTmVzdGVkIHRhZ3MgJmFtcDsgc3VwcG9ydGluZyBjbGFzc2VzIGV4dGVuZCB0aGUgYmFzZSBzdHJ1dHMgdGFncyB0byBhbGxvdyB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4gCitUaGUgZnVuZGFtZW50YWwgbG9naWMgb2YgdGhlIG9yaWdpbmFsIHRhZ3MgZG9uJ3QgY2hhbmdlLCBleGNlcHQgaW4gdGhhdCBhbGwgcmVmZXJlbmNlcyB0byBiZWFucyBhbmQgYmVhbiBwcm9wZXJ0aWVzIAord2lsbCBiZSBtYW5hZ2VkIGluIGEgbmVzdGVkIGNvbnRleHQuIAorPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9InJlc291cmNlcyIgbmFtZT0iTmVzdGVkIFRhZ2xpYiBSZXNvdXJjZXMiPgorCis8dWw+Cis8bGk+PGEgaHJlZj0iLi4vYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwjcGFja2FnZV9kZXNjcmlwdGlvbiI+TmVzdGVkIFRhZ2xpYiBQYWNrYWdlIERlc2NyaXB0aW9uPC9hPjwvbGk+Cis8bGk+PGEgaHJlZj0ic3RydXRzLW5lc3RlZC5odG1sIj5OZXN0ZWQgVGFnbGliIEFQSSBSZWZlcmVuY2U8L2E+PC9saT4KKzwvdWw+Cis8L3NlY3Rpb24+CisKKzwvYm9keT48L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2Rldl90aWxlcy54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvZGV2X3RpbGVzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDQ2Y2FiCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2Rldl90aWxlcy54bWwKQEAgLTAsMCArMSwyNzIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxkb2N1bWVudCB1cmw9ImRldl90aWxlcy5odG1sIj4KKzxwcm9wZXJ0aWVzPgorPHRpdGxlPgorVGhlIFN0cnV0cyBVc2VyJ3MgR3VpZGUgLSBUaWxlcyBHdWlkZQorPC90aXRsZT4KKzwvcHJvcGVydGllcz4KKzxib2R5PgorPHNlY3Rpb24gbmFtZT0iVGlsZXMgR3VpZGUiLz4KKworPHNlY3Rpb24gbmFtZT0iVGhlIFRpbGVzIERvY3VtZW50IEFzc2VtYmx5IEZyYW1ld29yayI+CisKKzxwPlRpbGVzIGJ1aWxkcyBvbiB0aGUgImluY2x1ZGUiIGZlYXR1cmUgcHJvdmlkZWQgYnkgdGhlIEphdmFTZXJ2ZXIgUGFnZXMKK3NwZWNpZmljYXRpb24gdG8gcHJvdmlkZSBhIGZ1bGwtZmVhdHVyZWQsIHJvYnVzdCBmcmFtZXdvcmsgZm9yIGFzc2VtYmxpbmcKK3ByZXNlbnRhdGlvbiBwYWdlcyBmcm9tIGNvbXBvbmVudCBwYXJ0cy4gRWFjaCBwYXJ0ICgiVGlsZSIpIGNhbiBiZQorcmV1c2VkIGFzIG9mdGVuIGFzIG5lZWRlZCB0aHJvdWdob3V0IHlvdXIgYXBwbGljYXRpb24uIFRoaXMgcmVkdWNlcyB0aGUKK2Ftb3VudCBvZiBtYXJrdXAgdGhhdCBuZWVkcyB0byBiZSBtYWludGFpbmVkIGFuZCBtYWtlcyBpdCBlYXNpZXIgdG8KK2NoYW5nZSB0aGUgbG9vayBhbmQgZmVlbCBvZiBhIHdlYnNpdGUuCis8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0iZmVhdHVyZXMiIG5hbWU9Ik92ZXJ2aWV3IG9mIFRpbGVzIEZlYXR1cmVzIj4KKworPHVsPgorCis8bGk+CisgIFNjcmVlbiBkZWZpbml0aW9ucworCis8dWw+Cis8bGk+CisgIENyZWF0ZSBhIHNjcmVlbiBieSBhc3NlbWJsaW5nIDxzdHJvbmc+PGVtPlRpbGVzPC9lbT48L3N0cm9uZz4sIGUuZy4gaGVhZGVyLCBmb290ZXIsIG1lbnUsIGJvZHkKKzwvbGk+Cis8bGk+CisgIERlZmluaXRpb25zIGNhbiB0YWtlIHBsYWNlOgorCis8dWw+Cis8bGk+CisgIGluIGEgY2VudHJhbGl6ZWQgWE1MIGZpbGUKKzwvbGk+CisKKzxsaT4KKyAgZGlyZWN0bHkgaW4gSlNQIHBhZ2VzCis8L2xpPgorCis8bGk+CisgIGluIFN0cnV0cyA8Y29kZT5BY3Rpb248L2NvZGU+cworPC9saT4KKzwvdWw+Cis8L2xpPgorCis8bGk+CisgIERlZmluaXRpb25zIHByb3ZpZGUgYW4gaW5oZXJpdGFuY2UKKyAgbWVjaGFuaXNtOiBhIGRlZmluaXRpb24gY2FuIGV4dGVuZCBhbm90aGVyIG9uZQorICBhbmQgb3ZlcnJpZGUgc29tZSAob3IgYWxsKSBvZiBpdHMgcGFyYW1ldGVycworPC9saT4KKzwvdWw+Cis8L2xpPgorCis8bGk+CitMYXlvdXRzCisKKzx1bD4KKzxsaT4KKyAgRGVmaW5lIGNvbW1vbiBwYWdlIGxheW91dHMgYW5kIHJldXNlIHRoZW0gYWNyb3NzIHlvdXIgd2ViIHNpdGUKKzwvbGk+CisKKzxsaT4KKyAgRGVmaW5lIG1lbnUgbGF5b3V0cyBhbmQgcGFzcyBsaXN0cyBvZiBpdGVtcyBhbmQgbGlua3MKKzwvbGk+CisKKzxsaT4KKyAgRGVmaW5lIGEgcG9ydGFsIGxheW91dCwgdXNlIGl0IGJ5IHBhc3NpbmcgbGlzdCBvZiA8c3Ryb25nPjxlbT5UaWxlczwvZW0+PC9zdHJvbmc+IChwYWdlcykgdG8gc2hvdworPC9saT4KKworPGxpPgorICBSZXVzZSBleGlzdGluZyBsYXlvdXRzLCBvciBkZWZpbmUgeW91ciBvd24gb25lcworPC9saT4KKzwvdWw+Cis8L2xpPgorCis8bGk+CisgIER5bmFtaWMgcGFnZSBidWlsZGluZworPHVsPgorPGxpPgorICBUaWxlcyBhcmUgZ2F0aGVyZWQgZHluYW1pY2FsbHkgZHVyaW5nIHBhZ2UgcmVsb2FkLiBJdCBpcyBwb3NzaWJsZSB0byBjaGFuZ2UgYW55IGF0dHJpYnV0ZXM6IGxheW91dCwgbGlzdCBvZiBUaWxlcyBpbiBwb3J0YWwsIGxpc3Qgb2YgbWVudSBpdGVtcywgLi4uCis8L2xpPgorPC91bD4KKzwvbGk+CisKKzxsaT4KKyAgUmV1c2Ugb2YgPHN0cm9uZz48ZW0+VGlsZXM8L2VtPjwvc3Ryb25nPi9Db21wb25lbnRzCis8dWw+CisKKzxsaT4KKyAgSWYgd2VsbCBkZWZpbmVkLCBhIDxzdHJvbmc+PGVtPlRpbGU8L2VtPjwvc3Ryb25nPiBjYW4gYmUgcmV1c2VkIGluIGRpZmZlcmVudCBsb2NhdGlvbnMKKzwvbGk+CisKKzxsaT4KKyAgRHluYW1pYyBhdHRyaWJ1dGVzIGFyZSB1c2VkIHRvIHBhcmFtZXRlcml6ZSA8ZW0+PHN0cm9uZz5UaWxlczwvc3Ryb25nPgorPC9lbT4KKzwvbGk+CisKKzxsaT4KKyAgSXQgaXMgcG9zc2libGUgdG8gZGVmaW5lIGxpYnJhcmllcyBvZiByZXVzYWJsZSA8ZW0+PHN0cm9uZz5UaWxlczwvc3Ryb25nPgorPC9lbT4uCis8L2xpPgorCis8bGk+CisgIEJ1aWxkIGEgcGFnZSBieSBhc3NlbWJsaW5nIHByZWRlZmluZWQgY29tcG9uZW50cywgZ2l2ZSB0aGVtIGFwcHJvcHJpYXRlIHBhcmFtZXRlcnMKKzwvbGk+Cis8L3VsPgorPC9saT4KKworPGxpPgorICBJbnRlcm5hdGlvbmFsaXphdGlvbiAoSTE4TikKKworPHVsPgorPGxpPgorICBJdCBpcyBwb3NzaWJsZSB0byBsb2FkIGRpZmZlcmVudCBUaWxlcyBhY2NvcmRpbmcgdG8gdGhlIHVzZXIncyBMb2NhbGUKKzwvbGk+CisKKzxsaT4KK0EgbWVjaGFuaXNtIHNpbWlsYXIgdG8gSmF2YSBwcm9wZXJ0aWVzIGZpbGVzIGlzIHVzZWQgZm9yIGRlZmluaXRpb24gZmlsZXM6IHlvdSBjYW4gaGF2ZSBvbmUgZGVmaW5pdGlvbiBmaWxlIHBlciBMb2NhbGUsIHRoZSBhcHByb3ByaWF0ZSBkZWZpbml0aW9uIGlzIGxvYWRlZCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgTG9jYWxlCis8L2xpPgorPC91bD4KKzwvbGk+CisKKzxsaT4KKyAgTXVsdGktY2hhbm5lbHMKKworPHVsPgorPGxpPgorICBJdCBpcyBwb3NzaWJsZSB0byBsb2FkIGRpZmZlcmVudCBUaWxlcyBhY2NvcmRpbmcgdG8gYSBrZXkgc3RvcmVkIGUuZy4gaW4gc2Vzc2lvbiBjb250ZXh0Cis8L2xpPgorCis8bGk+CisgIFRoZSBrZXkgY291bGQgaG9sZCBlLmcuIHVzZXIgcHJpdmlsZWdlcywgYnJvd3NlciB0eXBlLCAuLi4KKzwvbGk+CisKKzxsaT4KKyAgQSBtZWNoYW5pc20gc2ltaWxhciB0byBKYXZhIHByb3BlcnRpZXMgZmlsZXMgaXMgdXNlZCBmb3IgZGVmaW5pdGlvbiBmaWxlczogeW91IGNhbiBoYXZlIG9uZSBkZWZpbml0aW9uIGZpbGUgcGVyIGtleSwgdGhlIGFwcHJvcHJpYXRlIGRlZmluaXRpb24gaXMgbG9hZGVkIGFjY29yZGluZyB0byB0aGUga2V5Cis8L2xpPgorPC91bD4KKzwvbGk+Cis8L3VsPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9InNldHVwIiBuYW1lPSJFbmFibGluZyB5b3VyIGFwcGxpY2F0aW9uIGZvciBUaWxlcyI+CisKKzxwPgorVGhlIFRpbGVzIGZyYW1ld29yayBpcyBidW5kbGVkIHdpdGggU3RydXRzIGJ1dCBub3QgZW5hYmxlZCBieSBkZWZhdWx0LiBUbyBlbmFibGUgVGlsZXMgeW91IG5lZWQgdG86Cis8L3A+CisKKzx1bD4KKzxsaT4KKyAgU2V0dXAgdGhlIHN0cnV0cy10aWxlcyB0YWdsaWIgaW4geW91ciA8Y29kZT5XRUItSU5GL3dlYi54bWw8L2NvZGU+IGZpbGUgdG8gaW5jbHVkZSB0aGUgZm9sbG93aW5nIHRhZyBsaWJyYXJ5IGRlY2xhcmF0aW9uOgorPC9saT4KKzwvdWw+CisKKzxwcmU+Jmx0O3RhZ2xpYiZndDsKKyZsdDt0YWdsaWItdXJpJmd0Oy9XRUItSU5GL3N0cnV0cy10aWxlcy50bGQmbHQ7L3RhZ2xpYi11cmkmZ3Q7CismbHQ7dGFnbGliLWxvY2F0aW9uJmd0Oy9XRUItSU5GL3N0cnV0cy10aWxlcy50bGQmbHQ7L3RhZ2xpYi1sb2NhdGlvbiZndDsKKyZsdDsvdGFnbGliJmd0OzwvcHJlPgorCis8dWw+Cis8bGk+CisgIEF0IHRoZSB0b3Agb2YgZWFjaCBKU1AgcGFnZSB0aGF0IHdpbGwgdXNlIHRoZSBUaWxlcyBjdXN0b20gdGFncywgYWRkIHRoZSBmb2xsb3dpbmcgbGluZSBkZWNsYXJpbmcgdGhlIFRpbGVzIGN1c3RvbSB0YWcgbGlicmFyeSBmb3IgdXNlIG9uIHRoZSBwYWdlOgorPC9saT4KKzwvdWw+CisKKzxwcmU+Jmx0OyVAIHRhZ2xpYiB1cmk9Ii9XRUItSU5GL3N0cnV0cy10aWxlcy50bGQiIHByZWZpeD0idGlsZXMiICUmZ3Q7PC9wcmU+Cis8c3Ryb25nPlNlcnZsZXQgMi4zPC9zdHJvbmc+OiBZb3UgY2FuIG9taXQgdGhlIGRlY2xhcmF0aW9uIGluIDxjb2RlPldFQi1JTkYvd2ViLnhtbDwvY29kZT4gYW5kIHJlcGxhY2UgYWJvdmUgbGluZSB3aXRoIHRoZSBmdWxsIFVSSToKKzxwcmU+Jmx0OyVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICUmZ3Q7PC9wcmU+Cis8dWw+Cis8bGk+CisgIElmIHlvdSBwbGFuIHRvIHVzZSBUaWxlcyBkZWZpbml0aW9ucyBkZWZpbmVkIGluIGEgY2VudHJhbGl6ZWQgZmlsZSwgeW91IG5lZWQgdG8gY3JlYXRlIHRoaXMgZmlsZSBhbmQgaW5zdHJ1Y3QgU3RydXRzIHRvIGxvYWQgdGhlIFRpbGVzIHBsdWdpbiB3aGljaCB3aWxsIGNyZWF0ZSB0aGUgZmFjdG9yeSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmaWxlLiBZb3UgY2FuIGhhdmUgbW9yZSB0aGFuIG9uZSBkZWZpbml0aW9ucyBmaWxlLgorCis8dWw+Cis8bGk+CitDcmVhdGUgYSBmaWxlIGNvbnRhaW5pbmcgeW91ciBkZWZpbml0aW9ucyAoZS5nLiA8Y29kZT5XRUItSU5GL3RpbGVzLWRlZnMueG1sPC9jb2RlPikuIFlvdSBjYW4gdXNlIHRoZSA8Y29kZT50aWxlcy1kZWZzLnhtbDwvY29kZT4gZmlsZSBmcm9tIHRoZSBUaWxlcyBhcHBsaWNhdGlvbiBmb3IgYSBkZXRhaWxlZCBleGFtcGxlIG9mIHRoZSByZXF1aXJlZCBzeW50YXguPC9saT4KKworPGxpPgorICBTZXR1cCB0aGUgVGlsZXMgcGx1Z2luIGluIGVhY2ggPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+IGZpbGUgY29ycmVzcG9uZGluZyB0byBhIG1vZHVsZToKKzwvbGk+Cis8L3VsPgorCis8cHJlPgorJmx0O3BsdWctaW4gY2xhc3NOYW1lPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1BsdWdpbiIgJmd0OworICAmbHQ7c2V0LXByb3BlcnR5IHByb3BlcnR5PSJkZWZpbml0aW9ucy1jb25maWciIHZhbHVlPSIvV0VCLUlORi90aWxlcy1kZWZzLnhtbCwKKy9XRUItSU5GL3RpbGVzLXRlc3RzLWRlZnMueG1sIiAvJmd0OworICAmbHQ7c2V0LXByb3BlcnR5IHByb3BlcnR5PSJkZWZpbml0aW9ucy1wYXJzZXItdmFsaWRhdGUiIHZhbHVlPSJ0cnVlIiAvJmd0OworICAmbHQ7c2V0LXByb3BlcnR5IHByb3BlcnR5PSJtb2R1bGVBd2FyZSIgdmFsdWU9InRydWUiIC8mZ3Q7CismbHQ7L3BsdWctaW4mZ3Q7PC9wcmU+CisKKzx1bD4KKzxsaT4KKyAgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGlzIHBsdWdpbiBjcmVhdGVzIG9uZSBmYWN0b3J5IGZvciBlYWNoIFN0cnV0cyBtb2R1bGVzLiBUaGUgcGx1Z2luIGZpcnN0IHJlYWRzIHRoZSBmYWN0b3J5IHBhcmFtZXRlcnMgZnJvbSA8Y29kZT53ZWIueG1sPC9jb2RlPiBhbmQgdGhlbiBvdmVybG9hZHMgdGhlbSB3aXRoIHRoZSBvbmVzIGRlZmluZWQgaW4gdGhlIGZpcnN0IDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPiBmaWxlLgorPC9saT4KKzwvdWw+Cis8L2xpPgorPC91bD4KKworPHVsPgorPGxpPgorPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgVGlsZXMgZnJhbWV3b3JrIG5vdyB1c2VzIHRoZSBjb21tb25zLWxvZ2dpbmcgcGFja2FnZSB0byBvdXRwdXQgZGlmZmVyZW50IGluZm9ybWF0aW9uIG9yIGRlYnVnIHN0YXRlbWVudHMuIFBsZWFzZSByZWZlciB0byB0aGlzIHBhY2thZ2UgZG9jdW1lbnRhdGlvbiB0byBlbmFibGUgaXQuIFRoZSBzaW1wbGVzdCB3YXkgdG8gZW5hYmxlIGxvZ2dpbmcgaXMgdG8gY3JlYXRlIHR3byBmaWxlcyBpbiA8Y29kZT5XRUItSU5GL2NsYXNzZXM8L2NvZGU+OgorPHByZT48c3Ryb25nPmNvbW1vbnMtbG9nZ2luZy5wcm9wZXJ0aWVzPC9zdHJvbmc+CitvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c9b3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuaW1wbC5TaW1wbGVMb2cKKzxzdHJvbmc+c2ltcGxlbG9nLnByb3BlcnRpZXM8L3N0cm9uZz4KKyMgTG9nZ2luZyBkZXRhaWwgbGV2ZWwsCisjIE11c3QgYmUgb25lIG9mICgidHJhY2UiLCAiZGVidWciLCAiaW5mbyIsICJ3YXJuIiwgImVycm9yIiwgb3IgImZhdGFsIikuCitvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5zaW1wbGVsb2cuZGVmYXVsdGxvZz10cmFjZTwvcHJlPgorPC9saT4KKzwvdWw+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0idGlsZXMiIG5hbWU9IlRpbGVzIEFQSSBHdWlkZSI+CisKKzx1bD4KKzxsaT4KKyAgQSBjb25jaXNlIDxhIGhyZWY9Ii4uL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCNwYWNrYWdlX2Rlc2NyaXB0aW9uIj5UaWxlcyBBUEkgR3VpZGU8L2E+IGlzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSBnZXQgc3RhcnRlZCB3aXRoIHRoZSBUaWxlcyBmcmFtZXdvcmsuCis8L2xpPgorCis8bGk+PGEgaHJlZj0ic3RydXRzLXRpbGVzLmh0bWwiPlRpbGVzIFRhZ2xpYiBTeW50YXggUmVmZXJlbmNlPC9hPjwvbGk+Cis8L3VsPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9InJlc291cmNlcyIgbmFtZT0iVGlsZXMgUmVzb3VyY2VzIj4KKworPHA+Cis8YSBocmVmPSJodHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5vbG9neS9vcmFtYWcvb3JhY2xlLzA0LW1heS9vMzRkZXZfc3RydXRzLmh0bWwiPgorPHN0cm9uZz5SZXVzZSBUaWxlcyBhbmQgU2ltcGxpZnkgVUk8L3N0cm9uZz48L2E+IGJ5IEphbWVzIEhvbG1lcy4gSG93dG8gYXJ0aWNsZSBpbiBPcmFjbGUgTWFnYXppbmUuCis8L3A+CisKKzxwPgorPGEgaHJlZj0iaHR0cDovL3d3dy5tYW5uaW5nLmNvbS9nZXRwYWdlLmh0bWw/cHJvamVjdD1odXN0ZWQmYW1wO2ZpbGVuYW1lPWNoYXB0ZXJzLmh0bWwiPgorPHN0cm9uZz5EZXZlbG9waW5nIGFwcGxpY2F0aW9ucyB3aXRoIFRpbGVzPC9zdHJvbmc+PC9hPiBieSBDZWRyaWMgRHVtb3VsaW4gYW5kIFRlZCBIdXN0ZWQuCitTYW1wbGUgY2hhcHRlciBmcm9tCis8YSBocmVmPSJodHRwOi8vd3d3LmFtYXpvbi5jb20vZXhlYy9vYmlkb3MvSVNCTj0xOTMwMTEwNTAyL2hpdGNoaGlrZWd1aWRldG9BLyI+U3RydXRzIGluIEFjdGlvbjwvYT47IGF2YWlsYWJsZSBhcyBhIGZyZWUgZG93bmxvYWQgKFBERikuCis8L3A+CisKKzxwPgorPGEgaHJlZj0iaHR0cDovL3d3dy5vcmVpbGx5LmNvbS9jYXRhbG9nL2pha2FydGEvY2hhcHRlci8iPgorPHN0cm9uZz5Vc2luZyBUaWxlczwvc3Ryb25nPjwvYT4gU2FtcGxlIGJldGEgY2hhcHRlciBmcm9tCis8YSBocmVmPSJodHRwOi8vd3d3LmFtYXpvbi5jb20vZXhlYy9vYmlkb3MvSVNCTj0wNTk2MDAzMjg1L2hpdGNoaGlrZWd1aWRldG9BLyI+UHJvZ3JhbW1pbmcgSmFrYXJ0YSBTdHJ1dHM8L2E+OyBhdmFpbGFibGUgYXMgYSBmcmVlIGRvd25sb2FkIChQREYpLgorPC9wPgorCis8cD4KKzxhIGhyZWY9Imh0dHA6Ly93d3ctMTA2LmlibS5jb20vZGV2ZWxvcGVyd29ya3MvamF2YS9saWJyYXJ5L2otc3RydXRzdGlsZXMuaHRtbD9sb2M9aiI+Cis8c3Ryb25nPlN0cnV0cyBhbmQgVGlsZXMgYWlkIGNvbXBvbmVudC1iYXNlZCBkZXZlbG9wbWVudDwvc3Ryb25nPjwvYT4gYnkgV2VsbGllIENoYW8uCis8L3A+CisKKzxwPgorPGEgaHJlZj0iaHR0cDovL3d3dy5qYXZhd29ybGQuY29tL2phdmF3b3JsZC9qdy0wMS0yMDAyL2p3LTAxMDQtdGlsZXN0cnV0Lmh0bWwiPgorPHN0cm9uZz5VSSBkZXNpZ24gd2l0aCBUaWxlcyBhbmQgU3RydXRzPC9zdHJvbmc+PC9hPiBieSBQcmFrYXNoIE1hbGFuaS4KKzwvcD4KKworPHA+Cis8YSBocmVmPSJodHRwOi8vd3d3LnRoZXNlcnZlcnNpZGUuY29tL3Jlc291cmNlcy9hcnRpY2xlLmpzcD9sPVRpbGVzMTAxIj4KKzxzdHJvbmc+VGlsZXMgMTAxLzIwMTwvc3Ryb25nPjwvYT4gYnkgUGF0cmljayBQZWFrLgorPC9wPgorCis8cD4KKzxhIGhyZWY9Imh0dHA6Ly93d3cubGlmbC5mci9+ZHVtb3VsaW4vdGlsZXMvdGlsZXNBZHZhbmNlZEZlYXR1cmVzLnBkZiI+Cis8c3Ryb25nPlRpbGVzIEFkdmFuY2VkIEZlYXR1cmVzPC9zdHJvbmc+PC9hPiBieSBDZWRyaWMgRHVtb3VsaW4uCis8L3A+CisKKzwvc2VjdGlvbj4KKzwvYm9keT48L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2Rldl91dGlsLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9kZXZfdXRpbC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY3ZDU1YQotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9kZXZfdXRpbC54bWwKQEAgLTAsMCArMSwyNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPGRvY3VtZW50IHVybD0iZGV2X3V0aWwuaHRtbCI+Cis8cHJvcGVydGllcz4KKyAgPHRpdGxlPlRoZSBTdHJ1dHMgVXNlcidzIEd1aWRlIC0gVXRpbGl0aWVzIEd1aWRlPC90aXRsZT4KKzwvcHJvcGVydGllcz4KKzxib2R5PiAKKzxzZWN0aW9uIG5hbWU9IlV0aWxpdGllcyBHdWlkZSIvPiAKKworPHNlY3Rpb24gaHJlZj0idXRpbHMiIG5hbWU9IlRoZSBVdGlsaXRpZXMgUGFja2FnZSI+CisKKzxwPgorVGhlIFV0aWxpdGllcyBwYWNrYWdlIHByb3ZpZGVzIGEgdmFyaWV0eSBvZiBmYW1pbGllcyBvZiBjbGFzc2VzLCB0byBzb2x2ZSBwcm9ibGVtcyB0aGF0IGFyZSBjb21tb25seSAKK2VuY291bnRlcmVkIGluIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMuICAKKzwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJyZXNvdXJjZXMiIG5hbWU9IlV0aWxpdGllcyBSZXNvdXJjZXMiPgorCis8dWw+Cis8bGk+PGEgaHJlZj0iLi4vYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwjcGFja2FnZV9kZXNjcmlwdGlvbiI+VXRpbGl0aWVzIFBhY2thZ2UgRGVzY3JpcHRpb248L2E+PC9saT4KKzwvdWw+Cis8L3NlY3Rpb24+CisKKzwvYm9keT48L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2Rldl92YWxpZGF0b3IueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2Rldl92YWxpZGF0b3IueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0MDVkYjMKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvZGV2X3ZhbGlkYXRvci54bWwKQEAgLTAsMCArMSw4NjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzxkb2N1bWVudCB1cmw9ImRldl92YWxpZGF0b3IuaHRtbCI+CisKKzwhLS0KKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSA3OAorLS0+CisKKzxwcm9wZXJ0aWVzPgorPHRpdGxlPlRoZSBTdHJ1dHMgVXNlcidzIEd1aWRlIC0gVmFsaWRhdG9yIEd1aWRlPC90aXRsZT4KKzwvcHJvcGVydGllcz4KKworPGJvZHk+CisKKzxzZWN0aW9uIG5hbWU9IlN0cnV0cyBWYWxpZGF0b3IgR3VpZGUiLz4KKworPHNlY3Rpb24gaHJlZj0idmFsaWRhdG9yIiBuYW1lPSJTdHJ1dHMgVmFsaWRhdG9yIj4KKworICAgIDxwPgorICAgIFRoZSBTdHJ1dHMgVmFsaWRhdG9yLCBpbiBzb21lIGZvcm0sIGhhcyBiZWVuIGF2YWlsYWJsZSBzaW5jZSB0aGUKKyAgICBkYXlzIG9mIFN0cnV0cyAwLjUuCisgICAgSXQgd2FzIG9yaWduYWxseSBwYWNrYWdlZCBhcyBhIGRldmVsb3BlciBjb250cmlidXRpb24uCisgICAgTGF0ZXIsIHRoZSBjb3JlIGNvZGUgd2FzIG1vdmVkIHRvIHRoZSBKYWthcnRhIENvbW1vbnMgYW5kCisgICAgYSBTdHJ1dHMgc3BlY2lmaWMgZXh0ZW5zaW9uIGJlY2FtZSBwYXJ0IG9mIFN0cnV0cyAxLjEuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgRm9yIHRoZSBjb252ZW5pZW5jZSBvZiB0aGUgbWFueSBkZXZlbG9wZXJzIHdobyBoYXZlIGJlZW4gdXNpbmcKKyAgICB0aGUgU3RydXRzIFZhbGlkYXRvciBhbGwgYWxvbmcsIHRoaXMgZG9jdW1lbnQgZmlyc3Qgb3ZlcnZpZXdzCisgICAgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBhbmQgdGhlbiBjb3ZlcnMgdGhlIGNoYW5nZXMgYW5kCisgICAgbmV3IGZ1bmN0aW9uYWxpdHkgYWRkZWQgaW4gdGhlIFN0cnV0cyAxLjEuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgT25jZSB5b3UgaGF2ZSBjb25maWd1cmVkIHRoZSBWYWxpZGF0b3IgUGx1Zy1Jbiwgc28gdGhhdCBpdCBjYW4gbG9hZCB5b3VyCisgICAgVmFsaWRhdG9yIFJlc291cmNlcyB5b3UganVzdCBoYXZlIHRvIGV4dGVuZAorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5hY3Rpb24uVmFsaWRhdG9yRm9ybTwvY29kZT4gaW5zdGVhZCBvZgorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtPC9jb2RlPi4KKyAgICBUaGVuIHdoZW4gdGhlIDxjb2RlPnZhbGlkYXRlPC9jb2RlPiBtZXRob2QgaXMgY2FsbGVkLCB0aGUgYWN0aW9uJ3MgbmFtZQorICAgIGF0dHJpYnV0ZSBmcm9tIHRoZSBzdHJ1dHMtY29uZmlnLnhtbCBpcyB1c2VkIHRvIGxvYWQgdGhlIHZhbGlkYXRpb25zIGZvcgorICAgIHRoZSBjdXJyZW50IGZvcm0uCisgICAgU28gdGhlIGZvcm0gZWxlbWVudCdzIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUKKyAgICB2YWxpZGF0b3ItcnVsZXMueG1sIHNob3VsZCBtYXRjaCAgYWN0aW9uIGVsZW1lbnQncyA8Y29kZT5uYW1lPC9jb2RlPgorICAgIGF0dHJpYnV0ZS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBBbm90aGVyIGFsdGVybmF0aXZlIGlzIHRvIHVzZSB0aGUgYWN0aW9uIG1hcHBpbmcgeW91IGFyZSBjdXJyZW50bHkgb24gYnkKKyAgICBleHRlbmRpbmcgdGhlIFZhbGlkYXRvckFjdGlvbkZvcm0gaW5zdGVhZCBvZiB0aGUgVmFsaWRhdG9yRm9ybS4KKyAgICBUaGUgVmFsaWRhdG9yQWN0aW9uRm9ybSB1c2VzIHRoZSBhY3Rpb24gZWxlbWVudCdzIDxjb2RlPnBhdGg8L2NvZGU+CisgICAgYXR0cmlidXRlIGZyb20gdGhlIHN0cnV0cy1jb25maWcueG1sIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgZm9ybSBlbGVtZW50J3MKKyAgICA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIHZhbGlkYXRvci1ydWxlcy54bWwuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhlbiBhIHNlcGFyYXRlIGFjdGlvbiBjYW4gYmUgZGVmaW5lZCBmb3IgZWFjaCBwYWdlIGluIGEgbXVsdGktcGFnZSBmb3JtCisgICAgYW5kIHRoZSB2YWxpZGF0aW9uIHJ1bGVzIGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIGFjdGlvbiBhbmQgbm90IGEgcGFnZQorICAgIG51bWJlciBhcyBpbiB0aGUgZXhhbXBsZSBvZiBhIG11bHRpLXBhZ2UgZm9ybSBpbiB0aGUgdmFsaWRhdG9yIGV4YW1wbGUuCisgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9ImkxOG4iIG5hbWU9IkludGVybmF0aW9uYWxpemF0aW9uIj4KKworICAgIDxwPgorICAgIFZhbGlkYXRpb24gcnVsZXMgZm9yIGZvcm1zIGNhbiBiZSBncm91cGVkIHVuZGVyIGEgPGNvZGU+Rm9ybVNldDwvY29kZT4KKyAgICBlbGVtZW50IGluIHRoZSB2YWxpZGF0b3ItcnVsZXMueG1sIGZpbGUuCisgICAgVGhlIDxjb2RlPkZvcm1TZXQ8L2NvZGU+IGhhcyBsYW5ndWFnZSwgY291bnRyeSwgYW5kIHZhcmlhbnQgYXR0cmlidXRlcyB0aGF0CisgICAgY29ycmVzcG9uZCB3aXRoIHRoZSA8Y29kZT5qYXZhLnV0aWwuTG9jYWxlPC9jb2RlPiBjbGFzcy4KKyAgICBJZiB0aGV5IGFyZSBub3QgdXNlZCwgdGhlIDxjb2RlPkZvcm1TZXQ8L2NvZGU+ICB3aWxsIGJlIHNldCB0byB0aGUgZGVmYXVsdAorICAgIGxvY2FsZS4KKyAgICBBIDxjb2RlPkZvcm1TZXQ8L2NvZGU+IGNhbiBhbHNvIGhhdmUgY29uc3RhbnRzIGFzc29jaWF0ZWQgd2l0aCBpdC4KKyAgICBPbiB0aGUgc2FtZSBsZXZlbCBhcyBhIDxjb2RlPkZvcm1TZXQ8L2NvZGU+IHRoZXJlIGNhbiBiZSBhIGdsb2JhbCBlbGVtZW50CisgICAgd2hpY2ggY2FuIGFsc28gaGF2ZSBjb25zdGFudHMgYW5kIGhhdmUgdmFsaWRhdG9yIGFjdGlvbnMgdGhhdCBwZXJmb3JtCisgICAgdmFsaWRhdGlvbnMuCisgICAgPC9wPgorICAgIDxwPgorICAgIDxzdHJvbmc+Tm90ZTwvc3Ryb25nPjogWW91IG11c3QgZGVjbGFyZSBhIGRlZmF1bHQgPGNvZGU+Rm9ybVNldDwvY29kZT4gd2l0aG91dCAKKyAgICBpbnRlcm5hdGlvbmFsaXphdGlvbiBiZWZvcmUgeW91ciBpbnRlcm5hdGlvbmFsaXplZCA8Y29kZT5Gb3JtU2V0PC9jb2RlPnMuICBUaGlzCisgICAgYWxsb3dzIHRoZSBWYWxpZGF0b3IgdG8gZmFsbCBiYWNrIHRvIHRoZSBkZWZhdWx0IHZlcnNpb24gaWYgbm8gbG9jYWxlIGlzIGZvdW5kLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFRoZSBkZWZhdWx0IGVycm9yIG1lc3NhZ2UgZm9yIGEgcGx1Z2dhYmxlIHZhbGlkYXRvciBjYW4gYmUgb3ZlcnJpZGVuIHdpdGgKKyAgICB0aGUgPGNvZGU+bXNnPC9jb2RlPiBlbGVtZW50LgorICAgIFNvIGluc3RlYWQgb2YgdXNpbmcgdGhlIDxjb2RlPm1zZzwvY29kZT4gYXR0cmlidXRlIGZvciB0aGUgbWFzayB2YWxpZGF0b3IKKyAgICB0byBnZW5lcmF0ZSB0aGUgZXJyb3IgbWVzc2FnZSB0aGUgPGNvZGU+bXNnPC9jb2RlPiBhdHRyaWJ1dGUgZnJvbSB0aGUKKyAgICBmaWVsZCB3aWxsIGJlIHVzZWQgaWYgdGhlIG5hbWUgb2YgdGhlIGZpZWxkJ3MgbmFtZSBhdHRyaWJ1dGUgbWF0Y2hlcyB0aGUKKyAgICB2YWxpZGF0b3IncyBuYW1lIGF0dHJpYnV0ZS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGUgYXJndW1lbnRzIGZvciBlcnJvciBtZXNzYWdlcyBjYW4gYmUgc2V0IHdpdGggdGhlIGFyZzAtYXJnMyBlbGVtZW50cy4KKyAgICBJZiB0aGUgYXJnMC1hcmczIGVsZW1lbnRzJyBuYW1lIGF0dHJpYnV0ZSBpc24ndCBzZXQsIGl0IHdpbGwgYmVjb21lIHRoZQorICAgIGRlZmF1bHQgYXJnIHZhbHVlIGZvciB0aGUgZGlmZmVyZW50IGVycm9yIG1lc3NhZ2VzIGNvbnN0cnVjdGVkLgorICAgIElmIHRoZSBuYW1lIGF0dHJpYnV0ZSBpcyBzZXQsIHlvdSBjYW4gc3BlY2lmeSB0aGUgYXJndW1lbnQgZm9yIGEgc3BlY2lmaWMKKyAgICBwbHVnZ2FibGUgdmFsaWRhdG9yIGFuZCB0aGVuIHRoaXMgd2lsbCBiZSB1c2VkIGZvciBjb25zdHJ1Y3RpbmcgdGhlIGVycm9yCisgICAgbWVzc2FnZS4KKyAgICA8L3A+CisKKzxwcmU+PGNvZGU+PCFbQ0RBVEFbCis8ZmllbGQKKyAgICBwcm9wZXJ0eT0ibGFzdE5hbWUiCisgICAgZGVwZW5kcz0icmVxdWlyZWQsbWFzayI+CisgICAgPG1zZworICAgICAgICBuYW1lPSJtYXNrIgorICAgICAgICBrZXk9InJlZ2lzdHJhdGlvbkZvcm0ubGFzdG5hbWUubWFza21zZyIvPgorICAgIDxhcmcwIGtleT0icmVnaXN0cmF0aW9uRm9ybS5sYXN0bmFtZS5kaXNwbGF5bmFtZSIvPgorICAgIDx2YXI+CisgICAgICAgIDx2YXItbmFtZT5tYXNrPC92YXItbmFtZT4KKyAgICAgICAgPHZhci12YWx1ZT5eW2EtekEtWl0qJDwvdmFyLXZhbHVlPgorICAgIDwvdmFyPgorPC9maWVsZD4KK11dPjwvY29kZT48L3ByZT4KKworICAgIDxwPgorICAgIEJ5IGRlZmF1bHQgdGhlIGFyZzAtYXJnMyBlbGVtZW50cyB3aWxsIHRyeSB0byBsb29rIHVwIHRoZSA8Y29kZT5rZXk8L2NvZGU+CisgICAgYXR0cmlidXRlIGluIHRoZSBtZXNzYWdlIHJlc291cmNlcy4KKyAgICBJZiB0aGUgcmVzb3VyY2UgYXR0cmlidXRlIGlzIHNldCB0byBmYWxzZSwgaXQgd2lsbCBwYXNzIGluIHRoZSB2YWx1ZSBkaXJlY3RseQorICAgIHdpdGhvdXQgcmV0cmlldmluZyB0aGUgdmFsdWUgZnJvbSB0aGUgbWVzc2FnZSByZXNvdXJjZXMuCisgICAgPC9wPgorICAgIDxwPgorICAgIE5vdGUgdGhhdCBhcyBvZiB0aGUgU3RydXRzIDEuMSByZWxlYXNlLCB5b3UgbXVzdCBleHBsaWNpdGx5IGRlZmluZSB5b3VyIG1lc3NhZ2UKKyAgICByZXNvdXJjZSBpbiBhbnkgbW9kdWxlIHRoYXQgaXMgZ29pbmcgdG8gdXNlIHRoZSBWYWxpZGF0b3IsIGR1ZSB0byBhIHByb2JsZW0KKyAgICBhY2Nlc3NpbmcgdGhlIHRvcC1sZXZlbCByZXNvdXJjZS4gIFRoaXMgb25seSBlZmZlY3RzIGFwcGxpY2F0aW9ucyB3aGljaCBhcmUKKyAgICB1c2luZyBtb2R1bGVzLgorICAgIDwvcD4KKworPHByZT48Y29kZT48IVtDREFUQVsKKzxmaWVsZAorICAgIHByb3BlcnR5PSJpbnRlZ2VyIgorICAgIGRlcGVuZHM9InJlcXVpcmVkLGludGVnZXIsaW50UmFuZ2UiPgorICAgIDxhcmcwIGtleT0idHlwZUZvcm0uaW50ZWdlci5kaXNwbGF5bmFtZSIvPgorICAgIDxhcmcxCisgICAgICAgIG5hbWU9InJhbmdlIgorICAgICAgICBrZXk9IiR7dmFyOm1pbn0iCisgICAgICAgIHJlc291cmNlPSJmYWxzZSIvPgorICAgIDxhcmcyCisgICAgICAgIG5hbWU9InJhbmdlIgorICAgICAgICBrZXk9IiR7dmFyOm1heH0iCisgICAgICAgIHJlc291cmNlPSJmYWxzZSIvPgorICAgIDx2YXI+CisgICAgICAgIDx2YXItbmFtZT5taW48L3Zhci1uYW1lPgorICAgICAgICA8dmFyLXZhbHVlPjEwPC92YXItdmFsdWU+CisgICAgPC92YXI+CisgICAgPHZhcj4KKyAgICAgICAgPHZhci1uYW1lPm1heDwvdmFyLW5hbWU+CisgICAgICAgIDx2YXItdmFsdWU+MjA8L3Zhci12YWx1ZT4KKyAgICA8L3Zhcj4KKyAgICA8L2ZpZWxkPgorXV0+PC9jb2RlPjwvcHJlPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9Im1lbWJlcnMiIG5hbWU9IkNvbnN0YW50cy9WYXJpYWJsZXMiPgorCisgICAgPHA+CisgICAgR2xvYmFsIGNvbnN0YW50cyBjYW4gYmUgaW5zaWRlIHRoZSBnbG9iYWwgdGFncyBhbmQgRm9ybVNldC9Mb2NhbGUKKyAgICBjb25zdGFudHMgY2FuIGJlIGNyZWF0ZWQgaW4gdGhlIGZvcm1zZXQgdGFncy4KKyAgICBDb25zdGFudHMgYXJlIGN1cnJlbnRseSBvbmx5IHJlcGxhY2VkIGluIHRoZSBGaWVsZCdzIHByb3BlcnR5IGF0dHJpYnV0ZSwKKyAgICB0aGUgRmllbGQncyB2YXIgZWxlbWVudCB2YWx1ZSBhdHRyaWJ1dGUsIHRoZSBGaWVsZCdzIG1zZyBlbGVtZW50IGtleQorICAgIGF0dHJpYnV0ZSwgYW5kIEZpZWxkJ3MgYXJnMC1hcmczIGVsZW1lbnQncyBrZXkgYXR0cmlidXRlLgorICAgIEEgRmllbGQncyB2YXJpYWJsZXMgY2FuIGFsc28gYmUgc3Vic3RpdHV0ZWQgaW4gdGhlIGFyZzAtYXJnMworICAgIGVsZW1lbnRzIChleDogJHt2YXI6bWlufSkuCisgICAgVGhlIG9yZGVyIG9mIHJlcGxhY2VtZW50IGlzIEZvcm1TZXQvTG9jYWxlIGNvbnN0YW50cyBhcmUgcmVwbGFjZWQgZmlyc3QsCisgICAgR2xvYmFsIGNvbnN0YW50cyBzZWNvbmQsIGFuZCBmb3IgdGhlIGFyZyBlbGVtZW50cyB2YXJpYWJsZXMgYXJlIHJlcGxhY2VkCisgICAgbGFzdC4KKyAgICA8L3A+CisKKzxwcmU+PGNvZGU+PCFbQ0RBVEFbCis8Z2xvYmFsPgorICAgIDxjb25zdGFudD4KKyAgICAgICAgPGNvbnN0YW50LW5hbWU+emlwPC9jb25zdGFudC1uYW1lPgorICAgICAgICA8Y29uc3RhbnQtdmFsdWU+XlxkezV9KC1cZHs0fSk/JDwvY29uc3RhbnQtdmFsdWU+CisgICAgPC9jb25zdGFudD4KKzwvZ2xvYmFsPgorCis8ZmllbGQKKyAgIHByb3BlcnR5PSJ6aXAiCisgICBkZXBlbmRzPSJyZXF1aXJlZCxtYXNrIj4KKzxhcmcwIGtleT0icmVnaXN0cmF0aW9uRm9ybS56aXBwb3N0YWwuZGlzcGxheW5hbWUiLz4KKzx2YXI+CisgPHZhci1uYW1lPm1hc2s8L3Zhci1uYW1lPgorIDx2YXItdmFsdWU+JHt6aXB9PC92YXItdmFsdWU+Cis8L3Zhcj4KKzwvZmllbGQ+CitdXT48L2NvZGU+PC9wcmU+CisKKyAgICA8cD4KKyAgICBUaGUgdmFyIGVsZW1lbnQgdW5kZXIgYSBmaWVsZCBjYW4gYmUgdXNlZCB0byBzdG9yZSB2YXJpYWJsZXMgZm9yIHVzZSBieSBhCisgICAgcGx1Z2dhYmxlIHZhbGlkYXRvci4KKyAgICBUaGVzZSB2YXJpYWJsZXMgYXJlIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSBGaWVsZCdzCisgICAgPGNvZGU+Z2V0VmFyKFN0cmluZyBrZXkpPC9jb2RlPiBtZXRob2QuCisgICAgPC9wPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWworPGZpZWxkCisgICAgcHJvcGVydHk9ImludGVnZXIiCisgICAgZGVwZW5kcz0icmVxdWlyZWQsaW50ZWdlcixpbnRSYW5nZSI+CisgICAgPGFyZzAga2V5PSJ0eXBlRm9ybS5pbnRlZ2VyLmRpc3BsYXluYW1lIi8+CisgICAgPGFyZzEKKyAgICAgICAgbmFtZT0icmFuZ2UiCisgICAgICAgIGtleT0iJHt2YXI6bWlufSIKKyAgICAgICAgcmVzb3VyY2U9ImZhbHNlIi8+CisgICAgPGFyZzIKKyAgICAgICAgbmFtZT0icmFuZ2UiCisgICAgICAgIGtleT0iJHt2YXI6bWF4fSIKKyAgICAgICAgcmVzb3VyY2U9ImZhbHNlIi8+CisgICAgPHZhcj4KKyAgICAgICAgPHZhci1uYW1lPm1pbjwvdmFyLW5hbWU+CisgICAgICAgIDx2YXItdmFsdWU+MTA8L3Zhci12YWx1ZT4KKyAgICA8L3Zhcj4KKyAgICA8dmFyPgorICAgICAgICA8dmFyLW5hbWU+bWF4PC92YXItbmFtZT4KKyAgICAgICAgPHZhci12YWx1ZT4yMDwvdmFyLXZhbHVlPgorICAgIDwvdmFyPgorICAgIDwvZmllbGQ+CitdXT48L2NvZGU+PC9wcmU+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gaHJlZj0idmFsaWR3aGVuIiBuYW1lPSJEZXNpZ25pbmcgQ29tcGxleCBWYWxpZGF0aW9ucyB3aXRoIHZhbGlkd2hlbiI+CisgICAgPHA+CisgICAgQSBmcmVxdWVudCByZXF1aXJlbWVudCBpbiB2YWxpZGF0aW9uIGRlc2lnbiBpcyB0byB2YWxpZGF0ZSBvbmUgZmllbGQKKyAgICBhZ2FpbnN0IGFub3RoZXIgKGZvciBleGFtcGxlLCBpZiB5b3UgaGF2ZSBhc2tlZCB0aGUgdXNlciB0byB0eXBlIGluCisgICAgYSBwYXNzd29yZCB0d2ljZSBmb3IgY29uZmlybWF0aW9uLCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgdmFsdWVzIG1hdGNoLikKKyAgICBJbiBhZGRpdGlvbiwgdGhlcmUgYXJlIGZpZWxkcyBpbiBhIGZvcm0gdGhhdCBtYXkgb25seSBiZSByZXF1aXJlZCBpZgorICAgIG90aGVyIGZpZWxkcyBoYXZlIGNlcnRhaW4gdmFsdWVzLiAgVGhlIG5ldyA8Y29kZT52YWxpZHdoZW48L2NvZGU+CisgICAgdmFsaWRhdGlvbiBydWxlLCB3aGljaCB3aWxsIGJlIGluY2x1ZGVkIGludG8gdGhlIFN0cnV0cyByZWxlYXNlCisgICAgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIDEuMSByZWxlYXNlLCBpcyBkZXNpZ25lZCB0byBoYW5kbGUgdGhlc2UgY2FzZXMuPC9wPgorICAgIDxwPgorICAgIFRoZSA8Y29kZT52YWxpZHdoZW48L2NvZGU+IHJ1bGUgdGFrZXMgYSBzaW5nbGUgPGNvZGU+dmFyPC9jb2RlPiBmaWVsZCwKKyAgICBjYWxsZWQgPGNvZGU+dGVzdDwvY29kZT4uICBUaGUgdmFsdWUgb2YgdGhpcyB2YXIgaXMgYSBib29sZWFuIGV4cHJlc3Npb24KKyAgICB3aGljaCBtdXN0IGJlIHRydWUgaW4gb3JkZXIgZm9yIHRoZSB2YWxpZGF0aW9uIHRvIHN1Y2Nlc3MuICBUaGUKKyAgICB2YWx1ZXMgd2hpY2ggYXJlIGFsbG93ZWQgaW4gdGhlIGV4cHJlc3Npb24gYXJlOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+U2luZ2xlIG9yIGRvdWJsZS1xdW90ZWQgc3RyaW5nIGxpdGVyYWxzLjwvbGk+CisgICAgICA8bGk+SW50ZWdlciBsaXRlcmFscyBpbiBkZWNpbWFsLCBoZXggb3Igb2N0YWwgZm9ybWF0PC9saT4KKyAgICAgIDxsaT5UaGUgdmFsdWUgPGNvZGU+bnVsbDwvY29kZT4gd2hpY2ggd2lsbCBtYXRjaCBhZ2FpbnN0IGVpdGhlcgorICAgICAgbnVsbCBvciBhbiBlbXB0eSBzdHJpbmc8L2xpPgorICAgICAgPGxpPk90aGVyIGZpZWxkcyBpbiB0aGUgZm9ybSByZWZlcmVuY2VkIGJ5IGZpZWxkIG5hbWUsIHN1Y2ggYXMKKyAgICAgIDxjb2RlPmN1c3RvbWVyQWdlPC9jb2RlPjwvbGk+CisgICAgICA8bGk+SW5kZXhlZCBmaWVsZHMgaW4gdGhlIGZvcm0gcmVmZXJlbmNlZCBieSBhbiBleHBsaWNpdCBpbnRlZ2VyLCAKKyAgICAgIHN1Y2ggYXMgPGNvZGU+Y2hpbGRMYXN0TmFtZVsyXTwvY29kZT48L2xpPgorICAgICAgPGxpPkluZGV4ZWQgZmllbGRzIGluIHRoZSBmb3JtIHJlZmVyZW5jZWQgYnkgYW4gaW1wbGljaXQgaW50ZWdlciwgCisgICAgICBzdWNoIGFzIDxjb2RlPmNoaWxkTGFzdE5hbWVbXTwvY29kZT4sIHdoaWNoIHdpbGwgdXNlIHRoZSBzYW1lCisgICAgICBpbmRleCBpbnRvIHRoZSBhcnJheSBhcyB0aGUgaW5kZXggb2YgdGhlIGZpZWxkIGJlaW5nIHRlc3RlZC48L2xpPgorICAgICAgPGxpPlByb3BlcnRpZXMgb2YgYW4gaW5kZXhlZCBmaWVsZHMgaW4gdGhlIGZvcm0gcmVmZXJlbmNlZCBieSBhbiAKKyAgICAgIGV4cGxpY2l0IG9yIGltcGxpY2l0IGludGVnZXIsIHN1Y2ggYXMgPGNvZGU+Y2hpbGRbXS5sYXN0TmFtZTwvY29kZT4sIAorICAgICAgd2hpY2ggd2lsbCB1c2UgdGhlIHNhbWUgaW5kZXggaW50byB0aGUgYXJyYXkgYXMgdGhlIGluZGV4IG9mIHRoZSAKKyAgICAgIGZpZWxkIGJlaW5nIHRlc3RlZC48L2xpPgorICAgICAgPGxpPlRoZSBsaXRlcmFsIDxjb2RlPip0aGlzPC9jb2RlPiwgd2hpY2ggY29udGFpbnMgdGhlIHZhbHVlIG9mCisgICAgICB0aGUgZmllbGQgY3VycmVudGx5IGJlaW5nIHRlc3RlZDwvbGk+CisgICA8L3VsPgorICAgPHA+CisgICAgICBBcyBhbiBleGFtcGxlIG9mIGhvdyB0aGlzIHdvdWxkIHdvcmssIGNvbnNpZGVyIGEgZm9ybSB3aXRoCisgICAgICBmaWVsZHMgPGNvZGU+c2VuZE5ld3NsZXR0ZXI8L2NvZGU+IGFuZCA8Y29kZT5lbWFpbEFkZHJlc3M8L2NvZGU+LgorICAgICAgVGhlIDxjb2RlPmVtYWlsQWRkcmVzczwvY29kZT4gZmllbGQgaXMgb25seSByZXF1aXJlZCBpZiB0aGUKKyAgICAgIDxjb2RlPnNlbmROZXdzbGV0dGVyPC9jb2RlPiBmaWVsZCBpcyBub3QgbnVsbC4gIFlvdSBjb3VsZCBjb2RlCisgICAgICB0aGlzIHVzaW5nIHRoZSB2YWxpZHdoZW4gcnVsZSBhczo8L3A+Cis8cHJlPjxjb2RlPjwhW0NEQVRBWworPGZpZWxkIHByb3BlcnR5PSJlbWFpbEFkZHJlc3MiIGRlcGVuZHM9InZhbGlkd2hlbiI+CisgICAgICA8YXJnMCBrZXk9InVzZXJpbmZvLmVtYWlsQWRkcmVzcy5sYWJlbCIvPgorICAgICAgICA8dmFyPgorICAgICAgICAgIDx2YXItbmFtZT50ZXN0PC92YXItbmFtZT4KKyAgICAgICAgICA8dmFyLXZhbHVlPigoc2VuZE5ld3NsZXR0ZXIgPT0gbnVsbCkgb3IgKCp0aGlzKiAhPSBudWxsKSk8L3Zhci12YWx1ZT4KKyAgICAgICAgPC92YXI+CisgICAgICA8L2ZpZWxkPgorXV0+PC9jb2RlPjwvcHJlPgorPHA+CisgICAgICBXaGljaCByZWFkcyBhczogdGhpcyBmaWVsZCBpcyB2YWxpZCBpZiA8Y29kZT5zZW5kTmV3c2xldHRlcjwvY29kZT4gaXMgCisgICAgICA8Y29kZT5udWxsPC9jb2RlPiBvciB0aGUgZmllbGQgdmFsdWUgaXMgbm90IDxjb2RlPm51bGw8L2NvZGU+LjwvcD4KKzxwPgorICAgICAgSGVyZSdzIGEgc2xpZ2h0bHkgbW9yZSBjb21wbGljYXRlZCBleGFtcGxlIHVzaW5nIGluZGV4ZWQgZmllbGRzLgorICAgICAgQXNzdW1lIGEgZm9ybSB3aXRoIGEgbnVtYmVyIG9mIGxpbmVzIHRvIGFsbG93IHRoZSB1c2VyIHRvIGVudGVyCisgICAgICBwYXJ0IG51bWJlcnMgYW5kIHF1YW50aXRpZXMgdGhleSB3aXNoIHRvIG9yZGVyLiAgQW4gYXJyYXkgb2YKKyAgICAgIGJlYW5zIG9mIGNsYXNzIDxjb2RlPm9yZGVyTGluZTwvY29kZT4gaXMgdXNlZCB0byBob2xkIHRoZSBlbnRyaWVzIGluCisgICAgICBhIHByb3BlcnR5IGNhbGxlZCBvcmRlckxpbmVzLgorICAgICAgSWYgeW91IHdpc2hlZCB0byB2ZXJpZnkgdGhhdCBldmVyeSBsaW5lIHdpdGggcGFydCBudW1iZXIgYWxzbyBoYWQKKyAgICAgIGEgcXVhbnRpdHkgZW50ZXJlZCwgeW91IGNvdWxkIGRvIGl0IHdpdGg6PC9wPgorPHByZT48Y29kZT48IVtDREFUQVsKKyAgICA8ZmllbGQgcHJvcGVydHk9InF1YW50aXR5IiBpbmRleGVkTGlzdFByb3BlcnR5PSJvcmRlckxpbmVzIiBkZXBlbmRzPSJ2YWxpZHdoZW4iPgorICAgICAgPGFyZzAga2V5PSJvcmRlcmZvcm0ucXVhbnRpdHkubGFiZWwiLz4KKyAgICAgICAgPHZhcj4KKyAgICAgICAgICA8dmFyLW5hbWU+dGVzdDwvdmFyLW5hbWU+CisgICAgICAgICAgPHZhci12YWx1ZT4oKG9yZGVyTGluZXNbXS5wYXJ0TnVtYmVyID09IG51bGwpIG9yICgqdGhpcyogIT0gbnVsbCkpPC92YXItdmFsdWU+CisgICAgICAgIDwvdmFyPgorICAgICAgPC9maWVsZD4KK11dPjwvY29kZT48L3ByZT4KKyAgICAgPHA+CisgICAgIFdoaWNoIHJlYWRzIGFzOiBUaGlzIGZpZWxkIGlzIHZhbHVlIGlmIHRoZSBjb3JyZXNwb25kaW5nIDxjb2RlPnBhcnROdW1iZXIKKyAgICAgPC9jb2RlPiBmaWVsZCBpcyA8Y29kZT5udWxsPC9jb2RlPiwgb3IgdGhpcyBmaWVsZCBpcyBub3QgPGNvZGU+bnVsbDwvY29kZT4uCisgICAgIDwvcD4KKyAgICAgPHA+CisgICAgIEFzIGEgZmluYWwgZXhhbXBsZSwgaW1hZ2luZSBhIGZvcm0gd2hlcmUgdGhlIHVzZXIgbXVzdCBlbnRlciB0aGVpcgorICAgICBoZWlnaHQgaW4gaW5jaGVzLCBhbmQgaWYgdGhleSBhcmUgdW5kZXIgNjAgaW5jaGVzIGluIGhlaWdodCwgaXQgaXMKKyAgICAgYW4gZXJyb3IgdG8gaGF2ZSBjaGVja2VkIG9mZiBuYmFQb2ludEd1YXJkIGFzIGEgY2FyZWVyLjwvcD4KKzxwcmU+PGNvZGU+PCFbQ0RBVEFbCisgICAgPGZpZWxkIHByb3BlcnR5PSJuYmFQb2ludEd1YXJkIiBkZXBlbmRzPSJ2YWxpZHdoZW4iPgorICAgICAgPGFyZzAga2V5PSJjYXJlZXJzLm5iYVBvaW50R3VhcmQubGFiZWwiLz4KKyAgICAgICAgPHZhcj4KKyAgICAgICAgICA8dmFyLW5hbWU+dGVzdDwvdmFyLW5hbWU+CisgICAgICAgICAgPHZhci12YWx1ZT4oKGhlaWdodEluSW5jaGVzID49IDYwKSBvciAoKnRoaXMqID09IG51bGwpKTwvdmFyLXZhbHVlPgorICAgICAgICA8L3Zhcj4KKyAgICAgIDwvZmllbGQ+CitdXT48L2NvZGU+PC9wcmU+CisgICAgIDxwPgorICAgICBBIGZldyBxdWljayBub3RlcyBvbiB0aGUgZ3JhbW1lci48L3A+CisgICAgIDx1bD4KKyAgICAgICA8bGk+QWxsIGNvbXBhcmlzb25zIG11c3QgYmUgZW5jbG9zZWQgaW4gcGFyZW5zLjwvbGk+CisgICAgICAgPGxpPk9ubHkgdHdvIGl0ZW1zIG1heSBiZSBqb2luZWQgd2l0aCA8Y29kZT5hbmQ8L2NvZGU+IG9yIDxjb2RlPm9yPC9jb2RlPjwvbGk+CisgICAgICAgPGxpPklmIGJvdGggaXRlbXMgdG8gYmUgY29tcGFyZWQgYXJlIGNvbnZlcnRhYmxlIHRvIGludHMsIGEgbnVtZXJpYworICAgICAgIGNvbXBhcmlzb24gaXMgZG9uZSwgb3RoZXJ3aXNlIGEgc3RyaW5nIGNvbXBhcmlzb24gaXMgZG9uZS4KKyAgICAgICA8L2xpPgorICAgICA8L3VsPgorPC9zZWN0aW9uPgorPHNlY3Rpb24gaHJlZj0icGx1Z3MiIG5hbWU9IlBsdWdnYWJsZSBWYWxpZGF0b3JzIj4KKworICAgIDxwPgorICAgIFZhbGlkYXRpb24gYWN0aW9ucyBhcmUgcmVhZCBmcm9tIHRoZSB2YWxpZGF0aW9uLnhtbCBmaWxlLgorICAgIFRoZSBkZWZhdWx0IGFjdGlvbnMgYXJlIHNldHVwIGluIHRoZSB2YWxpZGF0aW9uLnhtbCBmaWxlLgorICAgIFRoZSBvbmVzIGN1cnJlbnRseSBjb25maWd1cmVkIGFyZSByZXF1aXJlZCwgbWFzayAsYnl0ZSwgc2hvcnQsIGludCwgbG9uZywKKyAgICBmbG9hdCwgZG91YmxlLCBkYXRlICh3aXRob3V0IGxvY2FsZSBzdXBwb3J0KSwgYW5kIGEgbnVtZXJpYyByYW5nZS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGUgJ21hc2snIGFjdGlvbiBkZXBlbmRzIG9uIHJlcXVpcmVkIGluIHRoZSBkZWZhdWx0IHNldHVwLgorICAgIFRoYXQgbWVhbnMgdGhhdCAncmVxdWlyZWQnIGhhcyB0byBzdWNjZXNzZnVsbHkgY29tcGxldGVkIGJlZm9yZSAnbWFzaycgd2lsbAorICAgIHJ1bi4KKyAgICBUaGUgJ3JlcXVpcmVkJyBhbmQgJ21hc2snIGFjdGlvbiBhcmUgcGFydGlhbGx5IGJ1aWx0IGludG8gdGhlIGZyYW1ld29yay4KKyAgICBBbnkgZmllbGQgdGhhdCBpc24ndCAncmVxdWlyZWQnIHdpbGwgc2tpcCBvdGhlciBhY3Rpb25zIGlmIHRoZSBmaWVsZCBpcyBudWxsCisgICAgb3IgaGFzIGEgbGVuZ3RoIG9mIHplcm8uCisgICAgPC9wPgorCisgICAgPHA+CisgICAgSWYgdGhlIDxhIGhyZWY9InN0cnV0cy1odG1sLmh0bWwjamF2YXNjcmlwdCI+SmF2YXNjcmlwdCBUYWc8L2E+IGlzIHVzZWQsCisgICAgdGhlIGNsaWVudCBzaWRlIEphdmFzY3JpcHQgZ2VuZXJhdGlvbiBsb29rcyBmb3IgYSB2YWx1ZSBpbiB0aGUgdmFsaWRhdG9yJ3MKKyAgICBqYXZhc2NyaXB0IGF0dHJpYnV0ZSBhbmQgZ2VuZXJhdGVzIGFuIG9iamVjdCB0aGF0IHRoZSBzdXBwbGllZCBtZXRob2QgY2FuCisgICAgdXNlIHRvIHZhbGlkYXRlIHRoZSBmb3JtLgorICAgIEZvciBhIG1vcmUgZGV0YWlsZWQgZXhwbGFuYXRpb24gb2YgaG93IHRoZSBKYXZhc2NyaXB0IFZhbGlkYXRvciBUYWcgd29ya3MsCisgICAgc2VlIHRoZSA8YSBocmVmPSJzdHJ1dHMtaHRtbC5odG1sIj5odG1sIHRhZ2xpYiBBUEkgcmVmZXJlbmNlPC9hPi4KKyAgICA8L3A+CisKKworICAgIDxwPgorICAgIFRoZSAnbWFzaycgYWN0aW9uIGxldHMgeW91IHZhbGlkYXRlIGEgcmVndWxhciBleHByZXNzaW9uIG1hc2sgdG8gdGhlIGZpZWxkLgorICAgIEl0IHVzZXMgdGhlIFJlZ3VsYXIgRXhwcmVzc2lvbiBQYWNrYWdlIGZyb20gdGhlIGpha2FydGEgc2l0ZS4KKyAgICBBbGwgdmFsaWRhdGlvbiBydWxlcyBjYW4gYmUgc3RvcmVkIGluIHRoZSB2YWxpZGF0b3ItcnVsZXMueG1sIGZpbGUuCisgICAgVGhlIG1haW4gY2xhc3MgdXNlZCBpcyA8Y29kZT5vcmcuYXBhY2hlLnJlZ2V4cC5SRTwvY29kZT4uCisgICAgPC9wPgorCisgICAgPHA+CisgICAgRXhhbXBsZSBWYWxpZGF0b3IgQ29uZmlndXJhdGlvbiBmcm9tIHZhbGlkYXRpb24ueG1sLgorICAgIDwvcD4KKworPHByZT48Y29kZT48IVtDREFUQVsKKzx2YWxpZGF0b3IgbmFtZT0icmVxdWlyZWQiCisgICAgICAgIGNsYXNzbmFtZT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLkZpZWxkQ2hlY2tzIgorICAgICAgICBtZXRob2Q9InZhbGlkYXRlUmVxdWlyZWQiCisgICAgICAgIG1ldGhvZFBhcmFtcz0iamF2YS5sYW5nLk9iamVjdCwKKyAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sCisgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsCisgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsCisgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QiCisgICAgICAgIG1zZz0iZXJyb3JzLnJlcXVpcmVkIj4KKworPHZhbGlkYXRvciBuYW1lPSJtYXNrIgorICAgICAgICBjbGFzc25hbWU9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5GaWVsZENoZWNrcyIKKyAgICAgICAgbWV0aG9kPSJ2YWxpZGF0ZU1hc2siCisgICAgICAgIG1ldGhvZFBhcmFtcz0iamF2YS5sYW5nLk9iamVjdCwKKyAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sCisgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsCisgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsCisgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QiCisgICAgICAgIG1zZz0iZXJyb3JzLmludmFsaWQiPgorXV0+PC9jb2RlPjwvcHJlPgorCisgICAgPHA+CisgICAgPHN0cm9uZz5DcmVhdGluZyBQbHVnZ2FibGUgVmFsaWRhdG9yczwvc3Ryb25nPgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFRoZSA8Y29kZT5tZXRob2RQYXJhbXM8L2NvZGU+IGF0dHJpYnV0ZSB0YWtlcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0CisgICAgb2YgY2xhc3MgbmFtZXMuIFRoZSA8Y29kZT5tZXRob2Q8L2NvZGU+IGF0dHJpYnV0ZSBuZWVkcyB0byBoYXZlIGEgc2lnbmF0dXJlCisgICAgY29tcGx5aW5nIHdpdGggdGhlIGFib3ZlIGxpc3QuIFRoZSBsaXN0IGNhbiBiZSBjb21wcmlzZWQgb2YgYW55IGNvbWJpbmF0aW9uCisgICAgb2YgdGhlIGZvbGxvd2luZzoKKyAgICA8L3A+CisKKyAgICA8dWw+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8Y29kZT5qYXZhLmxhbmcuT2JqZWN0PC9jb2RlPgorICAgICAgICAtIEJlYW4gdmFsaWRhdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQgb24uCisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbjwvY29kZT4KKyAgICAgICAgLSBUaGUgY3VycmVudCBWYWxpZGF0b3JBY3Rpb24gYmVpbmcgcGVyZm9ybWVkLgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZDwvY29kZT4KKyAgICAgICAgLSBGaWVsZCBvYmplY3QgYmVpbmcgdmFsaWRhdGVkLgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9yczwvY29kZT4KKyAgICAgICAgLSBUaGUgZXJyb3JzIG9iamVjdHMgdG8gYWRkIGFuIEFjdGlvbkVycm9yIHRvIGlmIHRoZSB2YWxpZGF0aW9uIGZhaWxzLgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPGNvZGU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvY29kZT4KKyAgICAgICAgLSBDdXJyZW50IHJlcXVlc3Qgb2JqZWN0LgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPGNvZGU+amF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDwvY29kZT4KKyAgICAgICAgLSBUaGUgYXBwbGljYXRpb24ncyBTZXJ2bGV0Q29udGV4dC4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yPC9jb2RlPgorICAgICAgICAtIFRoZSBjdXJyZW50IG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yIGluc3RhbmNlLgorICAgICAgICA8L2xpPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPGNvZGU+amF2YS51dGlsLkxvY2FsZTwvY29kZT4KKyAgICAgICAgLSBUaGUgTG9jYWxlIG9mIHRoZSBjdXJyZW50IHVzZXIuCisgICAgICAgIDwvbGk+CisKKyAgICA8L3VsPgorCisgICAgPHA+CisgICAgPHN0cm9uZz5NdWx0aSBQYWdlIEZvcm1zPC9zdHJvbmc+CisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhlIGZpZWxkIGVsZW1lbnQgaGFzIGFuIG9wdGlvbmFsIHBhZ2UgYXR0cmlidXRlLgorICAgIEl0IGNhbiBiZSBzZXQgdG8gYW4gaW50ZWdlci4KKyAgICBBbGwgdmFsaWRhdGlvbiBmb3IgYW55IGZpZWxkIG9uIGEgcGFnZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlCisgICAgY3VycmVudCBwYWdlIGlzIHBlcmZvcm1lZCBzZXJ2ZXIgc2lkZS4KKyAgICBBbGwgdmFsaWRhdGlvbiBmb3IgYW55IGZpZWxkIG9uIGEgcGFnZSBlcXVhbCB0byB0aGUgY3VycmVudCBwYWdlIGlzCisgICAgZ2VuZXJhdGVkIGZvciB0aGUgY2xpZW50IHNpZGUgSmF2YXNjcmlwdC4KKyAgICBBIG11dGxpLXBhcnQgZm9ybSBleHBlY3RzIHRoZSBwYWdlIGF0dHJpYnV0ZSB0byBiZSBzZXQuCisgICAgPC9wPgorCis8cHJlPjxjb2RlPjwhW0NEQVRBWworPGh0bWw6aGlkZGVuIHByb3BlcnR5PSJwYWdlIiB2YWx1ZT0iMSIvPgorXV0+PC9jb2RlPjwvcHJlPgorCisgICAgPHA+CisgICAgPHN0cm9uZz5Db21wYXJpbmcgVHdvIEZpZWxkczwvc3Ryb25nPgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFRoaXMgaXMgYW4gZXhhbXBsZSBvZiBob3cgeW91IGNvdWxkIGNvbXBhcmUgdHdvIGZpZWxkcyB0byBzZWUgaWYgdGhleQorICAgIGhhdmUgdGhlIHNhbWUgdmFsdWUuCisgICAgQSBnb29kIGV4YW1wbGUgb2YgdGhpcyBpcyB3aGVuIHlvdSBhcmUgdmFsaWRhdGluZyBhIHVzZXIgY2hhbmdpbmcgdGhlaXIKKyAgICBwYXNzd29yZCBhbmQgdGhlcmUgaXMgdGhlIG1haW4gcGFzc3dvcmQgZmllbGQgYW5kIGEgY29uZmlybWF0aW9uIGZpZWxkLgorICAgIDwvcD4KKworPHByZT48Y29kZT48IVtDREFUQVsKKzx2YWxpZGF0b3IgbmFtZT0idHdvZmllbGRzIgorICAgICAgIGNsYXNzbmFtZT0iY29tLm15c2l0ZS5TdHJ1dHNWYWxpZGF0b3IiCisgICAgICAgbWV0aG9kPSJ2YWxpZGF0ZVR3b0ZpZWxkcyIKKyAgICAgICBtc2c9ImVycm9ycy50d29maWVsZHMiLz4KKworPGZpZWxkIHByb3BlcnR5PSJwYXNzd29yZCIKKyAgICAgICBkZXBlbmRzPSJyZXF1aXJlZCx0d29maWVsZHMiPgorICAgICAgICAgIDxhcmcwIGtleT0idHlwZUZvcm0ucGFzc3dvcmQuZGlzcGxheW5hbWUiLz4KKyAgICAgICAgICA8dmFyPgorICAgICAgICAgICAgIDx2YXItbmFtZT5zZWNvbmRQcm9wZXJ0eTwvdmFyLW5hbWU+CisgICAgICAgICAgICAgPHZhci12YWx1ZT5wYXNzd29yZDI8L3Zhci12YWx1ZT4KKyAgICAgICAgICA8L3Zhcj4KKzwvZmllbGQ+CitdXT48L2NvZGU+PC9wcmU+CisKKzxwcmU+PGNvZGU+PCFbQ0RBVEFbCitwdWJsaWMgc3RhdGljIGJvb2xlYW4gdmFsaWRhdGVUd29GaWVsZHMoCisgICAgT2JqZWN0IGJlYW4sCisgICAgVmFsaWRhdG9yQWN0aW9uIHZhLCAKKyAgICBGaWVsZCBmaWVsZCwKKyAgICBBY3Rpb25FcnJvcnMgZXJyb3JzLAorICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LCAKKyAgICBTZXJ2bGV0Q29udGV4dCBhcHBsaWNhdGlvbikgeworCisgICAgU3RyaW5nIHZhbHVlID0gVmFsaWRhdG9yVXRpbHMuZ2V0VmFsdWVBc1N0cmluZygKKyAgICAgICAgYmVhbiwgCisgICAgICAgIGZpZWxkLmdldFByb3BlcnR5KCkpOworICAgIFN0cmluZyBzUHJvcGVydHkyID0gZmllbGQuZ2V0VmFyVmFsdWUoInNlY29uZFByb3BlcnR5Iik7CisgICAgU3RyaW5nIHZhbHVlMiA9IFZhbGlkYXRvclV0aWxzLmdldFZhbHVlQXNTdHJpbmcoCisgICAgICAgIGJlYW4sIAorICAgICAgICBzUHJvcGVydHkyKTsKKworICAgIGlmICghR2VuZXJpY1ZhbGlkYXRvci5pc0JsYW5rT3JOdWxsKHZhbHVlKSkgeworICAgICAgIHRyeSB7CisgICAgICAgICAgaWYgKCF2YWx1ZS5lcXVhbHModmFsdWUyKSkgeworICAgICAgICAgICAgIGVycm9ycy5hZGQoZmllbGQuZ2V0S2V5KCksCisgICAgICAgICAgICAgICAgUmVzb3VyY2VzLmdldEFjdGlvbkVycm9yKAorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgdmEsCisgICAgICAgICAgICAgICAgICAgIGZpZWxkKSk7CisKKyAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQorICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgZXJyb3JzLmFkZChmaWVsZC5nZXRLZXkoKSwKKyAgICAgICAgICAgICAgICBSZXNvdXJjZXMuZ2V0QWN0aW9uRXJyb3IoCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICB2YSwKKyAgICAgICAgICAgICAgICAgICAgZmllbGQpKTsKKyAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorXV0+PC9jb2RlPjwvcHJlPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9InZhbGlkYXRvci1idWdzIiBuYW1lPSJLbm93biBCdWdzIj4KKworICAgIDxwPgorICAgIFNpbmNlIHRoZSBTdHJ1dHMgVmFsaWRhdG9yIHJlbGllcyBvbiB0aGUgQ29tbW9ucyBWYWxpZGF0b3IsIHByb2JsZW0KKyAgICByZXBvcnRzIGFuZCBlbmhhbmNlbWVudCByZXF1ZXN0cyBtYXkgYmUgbGlzdGVkIGFnYWluc3QgZWl0aGVyIHByb2R1Y3QuCisgICAgPC9wPgorCisgICAgPHVsPgorCisgICAgICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL2J1Z2xpc3QuY2dpP2J1Z19zdGF0dXM9VU5DT05GSVJNRUQmYW1wO2J1Z19zdGF0dXM9TkVXJmFtcDtidWdfc3RhdHVzPUFTU0lHTkVEJmFtcDtidWdfc3RhdHVzPVJFT1BFTkVEJmFtcDtidWdfc3RhdHVzPVZFUklGSUVEJmFtcDtidWdfc2V2ZXJpdHk9QmxvY2tlciZhbXA7YnVnX3NldmVyaXR5PUNyaXRpY2FsJmFtcDtidWdfc2V2ZXJpdHk9TWFqb3ImYW1wO2J1Z19zZXZlcml0eT1Ob3JtYWwmYW1wO2J1Z19zZXZlcml0eT1NaW5vciZhbXA7ZW1haWwxPSZhbXA7ZW1haWx0eXBlMT1zdWJzdHJpbmcmYW1wO2VtYWlsYXNzaWduZWRfdG8xPTEmYW1wO2VtYWlsMj0mYW1wO2VtYWlsdHlwZTI9c3Vic3RyaW5nJmFtcDtlbWFpbHJlcG9ydGVyMj0xJmFtcDtidWdpZHR5cGU9aW5jbHVkZSZhbXA7YnVnX2lkPSZhbXA7Y2hhbmdlZGluPSZhbXA7dm90ZXM9JmFtcDtjaGZpZWxkZnJvbT0mYW1wO2NoZmllbGR0bz1Ob3cmYW1wO2NoZmllbGR2YWx1ZT0mYW1wO3Byb2R1Y3Q9U3RydXRzJmFtcDt2ZXJzaW9uPTEuMStCZXRhKzEmYW1wO3ZlcnNpb249MS4xK0JldGErMiZhbXA7dmVyc2lvbj1OaWdodGx5K0J1aWxkJmFtcDt2ZXJzaW9uPVVua25vd24mYW1wO2NvbXBvbmVudD1WYWxpZGF0b3IrRnJhbWV3b3JrJmFtcDtzaG9ydF9kZXNjPSZhbXA7c2hvcnRfZGVzY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtsb25nX2Rlc2M9JmFtcDtsb25nX2Rlc2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZhbXA7YnVnX2ZpbGVfbG9jPSZhbXA7YnVnX2ZpbGVfbG9jX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2tleXdvcmRzPSZhbXA7a2V5d29yZHNfdHlwZT1hbnl3b3JkcyZhbXA7ZmllbGQwLTAtMD1ub29wJmFtcDt0eXBlMC0wLTA9bm9vcCZhbXA7dmFsdWUwLTAtMD0mYW1wO2NtZHR5cGU9ZG9pdCZhbXA7b3JkZXI9QnVnK051bWJlciI+CisgICAgICAgIFN0cnV0cyBWYWxpZGF0b3IgQnVnemlsbGEgUmVwb3J0cworICAgICAgICA8L2E+CisgICAgICAgIDwvbGk+CisKKyAgICAgICAgPGxpPgorICAgICAgICA8YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvYnVnbGlzdC5jZ2k/YnVnX3N0YXR1cz1VTkNPTkZJUk1FRCZhbXA7YnVnX3N0YXR1cz1ORVcmYW1wO2J1Z19zdGF0dXM9QVNTSUdORUQmYW1wO2J1Z19zdGF0dXM9UkVPUEVORUQmYW1wO2J1Z19zdGF0dXM9VkVSSUZJRUQmYW1wO2J1Z19zZXZlcml0eT1CbG9ja2VyJmFtcDtidWdfc2V2ZXJpdHk9Q3JpdGljYWwmYW1wO2J1Z19zZXZlcml0eT1NYWpvciZhbXA7YnVnX3NldmVyaXR5PU5vcm1hbCZhbXA7YnVnX3NldmVyaXR5PU1pbm9yJmFtcDtlbWFpbDE9JmFtcDtlbWFpbHR5cGUxPXN1YnN0cmluZyZhbXA7ZW1haWxhc3NpZ25lZF90bzE9MSZhbXA7ZW1haWwyPSZhbXA7ZW1haWx0eXBlMj1zdWJzdHJpbmcmYW1wO2VtYWlscmVwb3J0ZXIyPTEmYW1wO2J1Z2lkdHlwZT1pbmNsdWRlJmFtcDtidWdfaWQ9JmFtcDtjaGFuZ2VkaW49JmFtcDt2b3Rlcz0mYW1wO2NoZmllbGRmcm9tPSZhbXA7Y2hmaWVsZHRvPU5vdyZhbXA7Y2hmaWVsZHZhbHVlPSZhbXA7cHJvZHVjdD1Db21tb25zJmFtcDtjb21wb25lbnQ9VmFsaWRhdG9yJmFtcDtzaG9ydF9kZXNjPSZhbXA7c2hvcnRfZGVzY190eXBlPWFsbHdvcmRzc3Vic3RyJmFtcDtsb25nX2Rlc2M9JmFtcDtsb25nX2Rlc2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZhbXA7YnVnX2ZpbGVfbG9jPSZhbXA7YnVnX2ZpbGVfbG9jX3R5cGU9YWxsd29yZHNzdWJzdHImYW1wO2tleXdvcmRzPSZhbXA7a2V5d29yZHNfdHlwZT1hbnl3b3JkcyZhbXA7ZmllbGQwLTAtMD1ub29wJmFtcDt0eXBlMC0wLTA9bm9vcCZhbXA7dmFsdWUwLTAtMD0mYW1wO2NtZHR5cGU9ZG9pdCZhbXA7b3JkZXI9QnVnK051bWJlciI+CisgICAgICAgIENvbW1vbnMgVmFsaWRhdG9yIEJ1Z3ppbGxhIFJlcG9ydHM8L2E+CisgICAgICAgIDwvbGk+CisKKyAgICA8L3VsPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9InZhbGlkYXRvci1jaGFuZ2VzIiBuYW1lPSJDaGFuZ2VzIGFuZCBkZXByZWNhdGlvbnMiPgorCisgICAgPHA+CisgICAgPHN0cm9uZz5OZXcgdGFnIGF0dHJpYnV0ZXMuPC9zdHJvbmc+CisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhlIDxhIGhyZWY9InN0cnV0cy1odG1sLmh0bWwjamF2YXNjcmlwdCI+Jmx0O2h0bWw6amF2YXNjcmlwdCZndDsgdGFnPC9hPgorICAgIGhhcyBuZXcgYXR0cmlidXRlcyBkZWZpbmVkLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIDxzdHJvbmc+VmFsaWRhdGluZyBhZ2FpbnN0IHRoZSBEVEQgaW4gdGhlIGNvbW1vbnMtdmFsaWRhdG9yLmphci48L3N0cm9uZz4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGUgdmFsaWRhdG9yIHhtbCBmaWxlcyBub3cgPHN0cm9uZz52YWxpZGF0ZXMgYWdhaW5zdCB0aGUgRFREIHN0b3JlZAorICAgIGluIHRoZSBjb21tb25zLXZhbGlkYXRvci5qYXIgPC9zdHJvbmc+IQorICAgIFN0cnV0cyBubyBsb25nZXIgbWFpbnRhaW5zIGEgc2VwYXJhdGUgZHRkIGZvciB2YWxpZGF0b3ItcnVsZXMueG1sIGFuZAorICAgIHZhbGlkYXRvci54bWwuCisgICAgQWRkaXRpb25hbGx5LCBjb21tb25zLXZhbGlkYXRvciBub3cgbWFpbnRhaW5zIGEgdW5pZmllZCB2YWxpZGF0b3IuZHRkLgorICAgIENoYW5nZSBhbGwgdmFsaWRhdG9yLnhtbCBEVEQgcmVmZXJlbmNlcyB0bzoKKyAgICA8L3A+Cis8cHJlPjwhW0NEQVRBWworPCFET0NUWVBFIGZvcm0tdmFsaWRhdGlvbiBQVUJMSUMKKyItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIENvbW1vbnMgVmFsaWRhdG9yIFJ1bGVzIENvbmZpZ3VyYXRpb24gMS4wLy9FTiIKKyJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvZHRkcy92YWxpZGF0b3JfMV8wLmR0ZCI+CitdXT48L3ByZT4KKworICAgIDxwPgorICAgIDxzdHJvbmc+QmxhbmsgZmllbGRzLjwvc3Ryb25nPgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFRoZSBkZWZhdWx0IHZhbGlkYXRvci1ydWxlcy54bWwgbm93IGlnbm9yZXMgYmxhbmsgZmllbGRzIGZvciBhbGwgdGhlCisgICAgYmFzaWMgdmFsaWRhdGlvbiB0eXBlcy4KKyAgICBJZiB5b3UgcmVxdWlyZSBhIGZpZWxkIHRvIGJlIHByZXNlbnQgdGhlbiB0byB5b3VyIGFwcGxpY2F0aW9ucworICAgIHZhbGlkYXRvci54bWwgZmllbGQgZGVmaW5pdGlvbiBhZGQgInJlcXVpcmVkIiB0byB0aGUgZGVwZW5kcworICAgIGF0dHJpYnV0ZS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICA8c3Ryb25nPk5ldyByYW5nZSBtZXRob2RzLjwvc3Ryb25nPgorICAgIDwvcD4KKworICAgIDxwPgorICAgIDxjb2RlPmludFJhbmdlPC9jb2RlPiAmYW1wOyA8Y29kZT5mbG9hdFJhbmdlPC9jb2RlPiBtZXRob2RzIGluIGJvdGgKKyAgICBKYXZhU2NyaXB0IGFuZCBKYXZhCisgICAgPC9wPgorCisgICAgPHA+CisgICAgPHN0cm9uZz5Db25kaXRpb25hbGx5IHJlcXVpcmVkIGZpZWxkcy48L3N0cm9uZz4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGUgbW9zdCBmdW5kYW1lbnRhbCBjaGFuZ2UgaXMgdGhlIGFiaWxpdHkgdG8gY29uZGl0aW9uYWxseSByZXF1aXJlCisgICAgdmFsaWRhdG9yIGZpZWxkcyBiYXNlZCBvbiB0aGUgdmFsdWUgb2Ygb3RoZXIgZmllbGRzLiAKKyAgICBJdCBhbGxvd3MgeW91IHRvIGRlZmluZSBsb2dpYyBsaWtlICJvbmx5IHZhbGlkYXRlIHRoaXMgZmllbGQgaWYgZmllbGQgWCBpcworICAgIG5vbi1udWxsIGFuZCBmaWVsZCBZIGVxdWFscyAnbWFsZSciLiAgVGhlIHJlY29tbWVuZGVkIHdheSB0byBkbyB0aGlzIHdpbGwKKyAgICBiZSB3aXRoIHRoZSA8Y29kZT52YWxpZHdoZW48L2NvZGU+IHJ1bGUsIGRlc2NyaWJlZCBhYm92ZSwgYW5kIGF2YWlsYWJsZQorICAgIGluIHRoZSBmaXJzdCByZWxlYXNlIGFmdGVyIDEuMS4gIFRoZSAKKyAgICA8Y29kZT5yZXF1aXJlZGlmPC9jb2RlPiB2YWxpZGF0aW9uIHJ1bGUsIHdoaWNoIHdhcyBhZGRlZCBpbiBTdHJ1dHMgMS4xLCAKKyAgICB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgdGhpcyBydWxlLCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgCisgICAgZnV0dXJlIHJlbGVhc2UuICBIb3dldmVyLCBpZiB5b3UgYXJlIHVzaW5nIDxjb2RlPnJlcXVpcmVkaWY8L2NvZGU+LCBoZXJlCisgICAgaXMgYSBicmllZiB0dXRvcmlhbC4KKyAgICA8L3A+CisKKyAgICAgPHA+TGV0J3MgYXNzdW1lIHlvdSBoYXZlIGEgbWVkaWNhbCBpbmZvcm1hdGlvbiBmb3JtIHdpdGggdGhyZWUgZmllbGRzLCBzZXgsIHByZWduYW5jeVRlc3QsIGFuZCB0ZXN0UmVzdWx0LiAgCisgICAgIElmIHNleCBpcyAnZicgb3IgJ0YnLCBwcmVnbmFuY3lUZXN0IGlzIHJlcXVpcmVkLiAgSWYgcHJlZ25hbmN5VGVzdCBpcyBub3QgYmxhbmssIHRlc3RSZXN1bHQgaXMgcmVxdWlyZWQuCisgICAgIFRoZSBlbnRyeSBpbiB5b3VyIHZhbGlkYXRpb24ueG1sIGZpbGUgd291bGQgbG9vayBsaWtlIHRoaXM6CisgICAgIDwvcD4KKyAgICAgPHByZT4KKyZsdDtmb3JtIG5hbWU9Im1lZGljYWxTdGF0dXNGb3JtIiZndDsKKworJmx0O2ZpZWxkCisgICAgcHJvcGVydHk9InByZWduYW5jeVRlc3QiIGRlcGVuZHM9InJlcXVpcmVkaWYiJmd0OworICAmbHQ7YXJnMCBrZXk9Im1lZGljYWxTdGF0dXNGb3JtLnByZWduYW5jeVRlc3QubGFiZWwiLyZndDsKKyAgJmx0O3ZhciZndDsKKyAgICAmbHQ7dmFyLW5hbWUmZ3Q7ZmllbGRbMF0mbHQ7L3Zhci1uYW1lJmd0OworICAgICZsdDt2YXItdmFsdWUmZ3Q7c2V4Jmx0Oy92YXItdmFsdWUmZ3Q7CisgICZsdDsvdmFyJmd0OworICAmbHQ7dmFyJmd0OworICAgICZsdDt2YXItbmFtZSZndDtmaWVsZFRlc3RbMF0mbHQ7L3Zhci1uYW1lJmd0OworICAgICZsdDt2YXItdmFsdWUmZ3Q7RVFVQUwmbHQ7L3Zhci12YWx1ZSZndDsKKyAgJmx0Oy92YXImZ3Q7CisgICZsdDt2YXImZ3Q7CisgICAgJmx0O3Zhci1uYW1lJmd0O2ZpZWxkVmFsdWVbMF0mbHQ7L3Zhci1uYW1lJmd0OworICAgICZsdDt2YXItdmFsdWUmZ3Q7RiZsdDsvdmFyLXZhbHVlJmd0OworICAmbHQ7L3ZhciZndDsKKyAgJmx0O3ZhciZndDsKKyAgICAmbHQ7dmFyLW5hbWUmZ3Q7ZmllbGRbMV0mbHQ7L3Zhci1uYW1lJmd0OworICAgICZsdDt2YXItdmFsdWUmZ3Q7c2V4Jmx0Oy92YXItdmFsdWUmZ3Q7CisgICZsdDsvdmFyJmd0OworICAmbHQ7dmFyJmd0OworICAgICZsdDt2YXItbmFtZSZndDtmaWVsZFRlc3RbMV0mbHQ7L3Zhci1uYW1lJmd0OworICAgICZsdDt2YXItdmFsdWUmZ3Q7RVFVQUwmbHQ7L3Zhci12YWx1ZSZndDsKKyAgJmx0Oy92YXImZ3Q7CisgICZsdDt2YXImZ3Q7CisgICAgJmx0O3Zhci1uYW1lJmd0O2ZpZWxkVmFsdWVbMV0mbHQ7L3Zhci1uYW1lJmd0OworICAgICZsdDt2YXItdmFsdWUmZ3Q7ZiZsdDsvdmFyLXZhbHVlJmd0OworICAmbHQ7L3ZhciZndDsKKyAgJmx0O3ZhciZndDsKKyAgICAmbHQ7dmFyLW5hbWUmZ3Q7ZmllbGRKb2luJmx0Oy92YXItbmFtZSZndDsKKyAgICAmbHQ7dmFyLXZhbHVlJmd0O09SJmx0Oy92YXItdmFsdWUmZ3Q7CisgICZsdDsvdmFyJmd0OworJmx0Oy9maWVsZCZndDsKKworJmx0O2ZpZWxkCisgICAgcHJvcGVydHk9InRlc3RSZXN1bHQiIGRlcGVuZHM9InJlcXVpcmVkaWYiJmd0OworICAmbHQ7YXJnMCBrZXk9Im1lZGljYWxTdGF0dXNGb3JtLnRlc3RSZXN1bHQubGFiZWwiLyZndDsKKyAgJmx0O3ZhciZndDsKKyAgICAmbHQ7dmFyLW5hbWUmZ3Q7ZmllbGRbMF0mbHQ7L3Zhci1uYW1lJmd0OworICAgICZsdDt2YXItdmFsdWUmZ3Q7cHJlZ25hbmN5VGVzdCZsdDsvdmFyLXZhbHVlJmd0OworICAmbHQ7L3ZhciZndDsKKyAgJmx0O3ZhciZndDsKKyAgICAmbHQ7dmFyLW5hbWUmZ3Q7ZmllbGRUZXN0WzBdJmx0Oy92YXItbmFtZSZndDsKKyAgICAmbHQ7dmFyLXZhbHVlJmd0O05PVE5VTEwmbHQ7L3Zhci12YWx1ZSZndDsKKyAgJmx0Oy92YXImZ3Q7CismbHQ7L2ZpZWxkJmd0OworJmx0Oy9mb3JtJmd0OworPC9wcmU+CisgICAKKyAgICAgCisKKyAgICA8cD4KKyAgICBIZXJlJ3MgYSBtb3JlIGNvbXBsZXggZXhhbXBsZSB1c2luZyBpbmRleGVkIHByb3BlcnRpZXMuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgSWYgeW91IGhhdmUgdGhpcyBpbiB5b3VyIHN0cnV0cy1jb25maWcueG1sCisgICAgPC9wPgorCis8cHJlPjwhW0NEQVRBWworPGZvcm0tYmVhbgorICAgIG5hbWU9ImRlcGVuZGVudGxpc3RGb3JtIgorICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC52YWxpZGF0b3IuZm9ybXMuVmFsaWRhdG9yRm9ybSI+CisgICAgPGZvcm0tcHJvcGVydHkKKyAgICAgICAgbmFtZT0iZGVwZW5kZW50cyIKKyAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnZhbGlkYXRvci5EZXBlbmRlbnRbXSIgc2l6ZT0iMTAiLz4KKyAgICA8Zm9ybS1wcm9wZXJ0eQorICAgICAgICBuYW1lPSJpbnN1cmVEZXBlbmRlbnRzIgorICAgICAgICB0eXBlPSJqYXZhLmxhbmcuQm9vbGVhbiIKKyAgICAgICAgaW5pdGlhbD0iZmFsc2UiLz4KKzwvZm9ybS1iZWFuPgorXV0+PC9wcmU+CisKKyAgICA8cD4KKyAgICBXaGVyZSBkZXBlbmRlbnQgaXMgYSBiZWFuIHRoYXQgaGFzIHByb3BlcnRpZXMgbGFzdE5hbWUsIGZpcnN0TmFtZSwgZG9iLAorICAgIGNvdmVyYWdlVHlwZQorICAgIDwvcD4KKworICAgIDxwPgorICAgIFlvdSBjYW4gZGVmaW5lIGEgdmFsaWRhdGlvbjoKKyAgICA8L3A+CisKKzxwcmU+PCFbQ0RBVEFbCisKKzxmb3JtIG5hbWU9ImRlcGVuZGVudGxpc3RGb3JtIj4KKworPGZpZWxkCisgICAgcHJvcGVydHk9ImZpcnN0TmFtZSIgaW5kZXhlZExpc3RQcm9wZXJ0eT0iZGVwZW5kZW50cyIKKyAgICBkZXBlbmRzPSJyZXF1aXJlZGlmIj4KKyAgPGFyZzAga2V5PSJkZXBlbmRlbnRsaXN0Rm9ybS5maXJzdE5hbWUubGFiZWwiLz4KKyAgPHZhcj4KKyAgICA8dmFyLW5hbWU+ZmllbGRbMF08L3Zhci1uYW1lPgorICAgIDx2YXItdmFsdWU+bGFzdE5hbWU8L3Zhci12YWx1ZT4KKyAgPC92YXI+CisgIDx2YXI+CisgICAgPHZhci1uYW1lPmZpZWxkSW5kZXhlZFswXTwvdmFyLW5hbWU+CisgICAgPHZhci12YWx1ZT50cnVlPC92YXItdmFsdWU+CisgIDwvdmFyPgorICA8dmFyPgorICAgIDx2YXItbmFtZT5maWVsZFRlc3RbMF08L3Zhci1uYW1lPgorICAgIDx2YXItdmFsdWU+Tk9UTlVMTDwvdmFyLXZhbHVlPgorICA8L3Zhcj4KKzwvZmllbGQ+CisKKzxmaWVsZAorICAgIHByb3BlcnR5PSJkb2IiCisgICAgaW5kZXhlZExpc3RQcm9wZXJ0eT0iZGVwZW5kZW50cyIKKyAgICBkZXBlbmRzPSJyZXF1aXJlZGlmLGRhdGUiPgorICA8YXJnMCBrZXk9ImRlcGVuZGVudGxpc3RGb3JtLmRvYi5sYWJlbCIvPgorICA8dmFyPgorICAgIDx2YXItbmFtZT5maWVsZFswXTwvdmFyLW5hbWU+CisgICAgPHZhci12YWx1ZT5sYXN0TmFtZTwvdmFyLXZhbHVlPgorICA8L3Zhcj4KKyAgPHZhcj4KKyAgICA8dmFyLW5hbWU+ZmllbGRJbmRleGVkWzBdPC92YXItbmFtZT4KKyAgICA8dmFyLXZhbHVlPnRydWU8L3Zhci12YWx1ZT4KKyAgPC92YXI+CisgIDx2YXI+CisgICAgPHZhci1uYW1lPmZpZWxkVGVzdFswXTwvdmFyLW5hbWU+CisgICAgPHZhci12YWx1ZT5OT1ROVUxMPC92YXItdmFsdWU+CisgIDwvdmFyPgorPC9maWVsZD4KKworPGZpZWxkCisgICAgcHJvcGVydHk9ImNvdmVyYWdlVHlwZSIKKyAgICBpbmRleGVkTGlzdFByb3BlcnR5PSJkZXBlbmRlbnRzIgorICAgIGRlcGVuZHM9InJlcXVpcmVkaWYiPgorICA8YXJnMCBrZXk9ImRlcGVuZGVudGxpc3RGb3JtLmNvdmVyYWdlVHlwZS5sYWJlbCIvPgorICA8dmFyPgorICAgIDx2YXItbmFtZT5maWVsZFswXTwvdmFyLW5hbWU+CisgICAgPHZhci12YWx1ZT5sYXN0TmFtZTwvdmFyLXZhbHVlPgorICA8L3Zhcj4KKyAgPHZhcj4KKyAgICA8dmFyLW5hbWU+ZmllbGRJbmRleGVkWzBdPC92YXItbmFtZT4KKyAgICA8dmFyLXZhbHVlPnRydWU8L3Zhci12YWx1ZT4KKyAgPC92YXI+CisgIDx2YXI+CisgICAgPHZhci1uYW1lPmZpZWxkVGVzdFswXTwvdmFyLW5hbWU+CisgICAgPHZhci12YWx1ZT5OT1ROVUxMPC92YXItdmFsdWU+CisgIDwvdmFyPgorICA8dmFyPgorICAgIDx2YXItbmFtZT5maWVsZFsxXTwvdmFyLW5hbWU+CisgICAgPHZhci12YWx1ZT5pbnN1cmVEZXBlbmRlbnRzPC92YXItdmFsdWU+CisgIDwvdmFyPgorICA8dmFyPgorICAgIDx2YXItbmFtZT5maWVsZFRlc3RbMV08L3Zhci1uYW1lPgorICAgIDx2YXItdmFsdWU+RVFVQUw8L3Zhci12YWx1ZT4KKyAgPC92YXI+CisgIDx2YXI+CisgICAgPHZhci1uYW1lPmZpZWxkVmFsdWVbMV08L3Zhci1uYW1lPgorICAgIDx2YXItdmFsdWU+dHJ1ZTwvdmFyLXZhbHVlPgorICA8L3Zhcj4KKyAgPHZhcj4KKyAgICA8dmFyLW5hbWU+ZmllbGRKb2luPC92YXItbmFtZT4KKyAgICA8dmFyLXZhbHVlPkFORDwvdmFyLXZhbHVlPgorICA8L3Zhcj4KKzwvZmllbGQ+CisKKzwvZm9ybT4KKworXV0+PC9wcmU+CisKKyAgICA8cD4KKyAgICBXaGljaCBpcyByZWFkIGFzIGZvbGxvd3M6CisgICAgVGhlIGZpcnN0TmFtZSBmaWVsZCBpcyBvbmx5IHJlcXVpcmVkIGlmIHRoZSBsYXN0TmFtZSBmaWVsZCBpcyBub24tbnVsbC4KKyAgICBTaW5jZSBmaWVsZEluZGV4ZWQgaXMgdHJ1ZSwgaXQgbWVhbnMgdGhhdCBsYXN0TmFtZSBtdXN0IGJlIGEgcHJvcGVydHkgb2YKKyAgICB0aGUgc2FtZSBpbmRleGVkIGZpZWxkIGFzIGZpcnN0TmFtZS4KKyAgICBTYW1lIHRoaW5nIGZvciBkb2IsIGV4Y2VwdCB0aGF0IHdlIHZhbGlkYXRlIGZvciBkYXRlIGlmIG5vdCBibGFuay4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGUgY292ZXJhZ2VUeXBlIGlzIG9ubHkgcmVxdWlyZWQgaWYgdGhlIGxhc3ROYW1lIGZvciB0aGUgc2FtZSBpbmRleGVkCisgICAgYmVhbiBpcyBub3QgbnVsbCwgYW5kIGFsc28gaWYgdGhlIG5vbi1pbmRleGVkIGZpZWxkIGluc3VyZURlcGVuZGVudHMgaXMKKyAgICB0cnVlLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFlvdSBjYW4gaGF2ZSBhbiBhcmJpdHJhcnkgbnVtYmVyIG9mIGZpZWxkcyBieSB1c2luZyB0aGUgW25dIHN5bnRheCwKKyAgICB0aGUgb25seSByZXN0cmljdGlvbiBpcyB0aGF0IHRoZXkgbXVzdCBhbGwgYmUgQU5EIG9yIE9SLCB5b3UgY2FuJ3QgbWl4LgorICAgIDwvcD4KKworICAgIDxwPgorICAgIDxzdHJvbmc+RGVwcmVjYXRpb25zLjwvc3Ryb25nPgorICAgIDwvcD4KKworICAgIDx1bD4KKworICAgICAgICA8bGk+CisgICAgICAgIERlcHJlY2F0aW9uIG9mIDxjb2RlPnJhbmdlPC9jb2RlPiBtZXRob2RzIGluIGJvdGggSmF2YVNjcmlwdCBhbmQgSmF2YS4KKyAgICAgICAgPC9saT4KKworICAgICAgICA8bGk+CisgICAgICAgIERlcHJlY2F0aW9uIG9mIFN0cnV0c1ZhbGlkYXRvciAmYW1wOyBTdHJ1dHNWYWxpZGF0b3JVdGlsLgorICAgICAgICA8L2xpPgorCisgICAgPC91bD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbiBocmVmPSJ0aWxlcyIgbmFtZT0iVmFsaWRhdG9yIEFQSSBHdWlkZSI+CisKKyAgICA8cD4KKyAgICBBIGNvbmNpc2UKKyAgICA8YSBocmVmPSIuLi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sI3BhY2thZ2VfZGVzY3JpcHRpb24iPgorICAgIFN0cnV0cyBWYWxpZGF0b3IgQVBJIEd1aWRlPC9hPiBpcyBhdmFpbGFibGUgdG8gaGVscCB5b3UgZ2V0IHN0YXJ0ZWQuCisgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIGhyZWY9InJlc291cmNlcyIgbmFtZT0iVmFsaWRhdG9yIFJlc291cmNlcyI+CisKKwk8cD4KKyAgICA8YSBocmVmPSJodHRwOi8vb3RuLm9yYWNsZS5jb20vb3JhbWFnL29yYWNsZS8wNC1qYW4vbzE0ZGV2X3N0cnV0cy5odG1sIj4KKyAgICA8c3Ryb25nPkNoZWNrIFlvdXIgRm9ybSB3aXRoIFZhbGlkYXRvcjwvc3Ryb25nPjwvYT4gYnkgSmFtZXMgSG9sbWVzLgorICAgIEhvd3RvIGFydGljbGUgaW4gT3JhY2xlIE1hZ2F6aW5lLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIDxhIGhyZWY9Imh0dHA6Ly90aW55dXJsLmNvbS82am52Ij4KKyAgICA8c3Ryb25nPlN0cnV0cyBWYWxpZGF0b3I6IFZhbGlkYXRpbmcgVHdvIEZpZWxkcyBNYXRjaDwvc3Ryb25nPjwvYT4gYnkgTWF0dCBSYWlibGUuCisgICAgSG93dG8gYXJ0aWNsZS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICA8YSBocmVmPSJodHRwOi8vd3d3LnN0cnV0c2tpY2tzdGFydC5jb20vIj4KKyAgICA8c3Ryb25nPkR5bmFGb3JtcyBhbmQgdGhlIFZhbGlkYXRvcjwvc3Ryb25nPjwvYT4gYnkgSmFtZXMgVHVybmVyIGFuZCBLZXZpbiBCZWRlbGwuCisgICAgU2FtcGxlIGNoYXB0ZXIgZnJvbQorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuc3RydXRza2lja3N0YXJ0LmNvbS8iPlN0cnV0cyBLaWNrc3RhcnQ8L2E+OworICAgIGF2YWlsYWJsZSBhcyBhIGZyZWUgZG93bmxvYWQgKFBERikuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5tYW5uaW5nLmNvbS9nZXRwYWdlLmh0bWw/cHJvamVjdD1odXN0ZWQmYW1wO2ZpbGVuYW1lPWNoYXB0ZXJzLmh0bWwiPgorICAgIDxzdHJvbmc+VmFsaWRhdGluZyB1c2VyIGlucHV0PC9zdHJvbmc+PC9hPiBieSBEYXZpZCBXaW50ZXJmZWxkdCBhbmQgVGVkIEh1c3RlZC4KKyAgICBTYW1wbGUgY2hhcHRlciBmcm9tCisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hbWF6b24uY29tL2V4ZWMvb2JpZG9zL0lTQk49MTkzMDExMDUwMi9oaXRjaGhpa2VndWlkZXRvQS8iPgorICAgIFN0cnV0cyBpbiBBY3Rpb248L2E+OworICAgIGF2YWlsYWJsZSBhcyBhIGZyZWUgZG93bmxvYWQgKFBERikuCisgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKworPC9ib2R5PgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9pbmRleC54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5kZXgueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiOThhN2UKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5kZXgueG1sCkBAIC0wLDAgKzEsMTc3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9ImluZGV4Lmh0bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5UaGUgU3RydXRzIFVzZXIncyBHdWlkZSAtIFRhYmxlIG9mIENvbnRlbnRzPC90aXRsZT4KKyAgPC9wcm9wZXJ0aWVzPgorCisgIDxib2R5PgorCisgICAgICA8IS0tIE9taXQgY2hhcHRlciBoZWFkaW5nIGZvciB0aGUgbGlzdCBvZiBjaGFwdGVycyAoYWxzbyBvbWl0cyBhdXRob3JzKSAtLT4KKworICAgICAgPHNlY3Rpb24gbmFtZT0iVGFibGUgb2YgQ29udGVudHMiIGhyZWY9InRvYyI+CisKKyAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPjxhIGhyZWY9InByZWZhY2UuaHRtbCI+MC4gUHJlZmFjZTwvYT4KKyAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9InByZWZhY2UuaHRtbCNzdXNwZWN0cyI+MC4xIFRoZSBVc3VhbCBTdXNwZWN0czwvYT48L2xpPgorICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0icHJlZmFjZS5odG1sI2h0dHAiPjAuMiBIVFRQLCBIVE1MLCBhbmQgVXNlciBBZ2VudHM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9InByZWZhY2UuaHRtbCNjeWNsZSI+MC4zIFRoZSBIVFRQIFJlcXVlc3QvUmVzcG9uc2UgQ3ljbGU8L2E+PC9saT4KKyAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9InByZWZhY2UuaHRtbCNqYXZhIj4wLjQgVGhlIEphdmEgTGFuZ3VhZ2UgYW5kIEFwcGxpY2F0aW9uIEZyYW1ld29ya3M8L2E+PC9saT4KKyAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9InByZWZhY2UuaHRtbCNqYXZhYmVhbnMiPjAuNSBKYXZhQmVhbnM8L2E+PC9saT4KKyAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9InByZWZhY2UuaHRtbCNyZXNvdXJjZXMiPjAuNiBQcm9wZXJ0aWVzIEZpbGVzIGFuZCAgUmVzb3VyY2VCdW5kbGVzPC9hPjwvbGk+CisgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJwcmVmYWNlLmh0bWwjc2VydmxldHMiPjAuNyBKYXZhIFNlcnZsZXRzPC9hPjwvbGk+CisgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJwcmVmYWNlLmh0bWwjanNwIj4wLjggSmF2YVNlcnZlciBQYWdlcywgSlNQIFRhZyBMaWJyYXJpZXMsIGFuZCBKYXZhU2VydmVyIEZhY2VzPC9hPjwvbGk+CisgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJwcmVmYWNlLmh0bWwjeG1sIj4wLjkgRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2U8L2E+PC9saT4KKyAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9InByZWZhY2UuaHRtbCNqYWFzIj4wLjEwIEpBQVM8L2E+PC9saT4KKyAgICAgICAgICAgIDwvdWw+PC9saT4KKworCisgICAgICAgICAgIDxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCI+MS4gSW50cm9kdWN0aW9uPC9hPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaW50cm9kdWN0aW9uLmh0bWwjaGlzdG9yeSI+MS4xIEZvcndhcmQgaW50byB0aGUgUGFzdCE8L2E+PC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaW50cm9kdWN0aW9uLmh0bWwjbXZjIj4xLjIgVGhlIE1vZGVsLVZpZXctQ29udHJvbGxlciAoJ01WQycpIERlc2lnbiBQYXR0ZXJuPC9hPgorICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNtb2RlbENvbmNlcHRzIj4xLjIuMSBUaGUgTW9kZWw6IFN5c3RlbSBTdGF0ZSBhbmQgQnVzaW5lc3MgTG9naWMgSmF2YUJlYW5zPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJpbnRyb2R1Y3Rpb24uaHRtbCNwcmVzZW50YXRpb25Db25jZXB0cyI+MS4yLjIgVGhlIFZpZXc6IEpTUCBQYWdlcyBhbmQgUHJlc2VudGF0aW9uIENvbXBvbmVudHM8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sI2NvbnRyb2xsZXJDb25jZXB0cyI+MS4yLjMgVGhlIENvbnRyb2xsZXI6IEFjdGlvblNlcnZsZXQgYW5kIEFjdGlvbk1hcHBpbmc8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaW50cm9kdWN0aW9uLmh0bWwjY29udHJvbGxlckNvbmNlcHRzIj4xLjMgU3RydXRzIENvbnRyb2wgRmxvdzwvYT48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ19tb2RlbC5odG1sIj4yLiBCdWlsZGluZyBNb2RlbCBDb21wb25lbnRzPC9hPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iYnVpbGRpbmdfbW9kZWwuaHRtbCNvdmVydmlldyI+Mi4xIE92ZXJ2aWV3PC9hPjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImJ1aWxkaW5nX21vZGVsLmh0bWwjamF2YWJlYW5zIj4yLjIgSmF2YUJlYW5zIGFuZCBTY29wZTwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ19tb2RlbC5odG1sI2FjdGlvbmZvcm0iPjIuMyBBY3Rpb25Gb3JtIEJlYW5zPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImJ1aWxkaW5nX21vZGVsLmh0bWwjc3lzdGVtX3N0YXRlIj4yLjQgU3lzdGVtIFN0YXRlIEJlYW5zPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImJ1aWxkaW5nX21vZGVsLmh0bWwjYnVzaW5lc3NfbG9naWMiPjIuNSBCdXNpbmVzcyBMb2dpYyBCZWFuczwvYT48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ192aWV3Lmh0bWwiPjMuIEJ1aWxkaW5nIFZpZXcgQ29tcG9uZW50czwvYT4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImJ1aWxkaW5nX3ZpZXcuaHRtbCNvdmVydmlldyI+My4xIE92ZXJ2aWV3PC9hPjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImJ1aWxkaW5nX3ZpZXcuaHRtbCNpMThuIj4zLjIgSW50ZXJuYXRpb25hbGl6YXRpb248L2E+PC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iYnVpbGRpbmdfdmlldy5odG1sI2Zvcm1fYmVhbnMiPjMuMyBGb3JtcyBhbmQgRm9ybUJlYW4gSW50ZXJhY3Rpb25zPC9hPgorICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ192aWV3Lmh0bWwjaW5kZXhlZCI+My4zLjEgSW5kZXhlZCAmYW1wOyBNYXBwZWQgUHJvcGVydGllczwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iYnVpbGRpbmdfdmlldy5odG1sI2Zvcm1faW5wdXQiPjMuMy4yIElucHV0IEZpZWxkIFR5cGVzIFN1cHBvcnRlZDwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iYnVpbGRpbmdfdmlldy5odG1sI3ByZXNlbnRhdGlvbl90YWdzIj4zLjMuMyBPdGhlciBVc2VmdWwgUHJlc2VudGF0aW9uIFRhZ3M8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImJ1aWxkaW5nX3ZpZXcuaHRtbCNmb3JtX3ZhbGlkYXRpb24iPjMuMy40IEF1dG9tYXRpYyBGb3JtIFZhbGlkYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImJ1aWxkaW5nX3ZpZXcuaHRtbCN2YWxpZGF0b3IiPjMuMy41IFN0cnV0cyBWYWxpZGF0b3I8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPC91bD48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ192aWV3Lmh0bWwjb3RoZXJfcHJlc2VudGF0aW9ucyI+My40IE90aGVyIFByZXNlbnRhdGlvbiBUZWNobmlxdWVzPC9hPgorICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ192aWV3Lmh0bWwjY3VzdG9tX3RhZ3MiPjMuNC4xIEFwcGxpY2F0aW9uLVNwZWNpZmljIEN1c3RvbSBUYWdzPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ192aWV3Lmh0bWwjaW5jbHVkZXMiPjMuNC4yIFBhZ2UgQ29tcG9zaXRpb24gV2l0aCBJbmNsdWRlczwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iYnVpbGRpbmdfdmlldy5odG1sI2luY2x1ZGVzIj4zLjQuMyBQYWdlIENvbXBvc2l0aW9uIFdpdGggVGlsZXM8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImJ1aWxkaW5nX3ZpZXcuaHRtbCNpbWFnZV9yZW5kZXJpbmciPjMuNC40IEltYWdlIFJlbmRlcmluZyBDb21wb25lbnRzPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ192aWV3Lmh0bWwjdGV4dF9yZW5kZXJpbmciPjMuNC41IFJlbmRlcmluZyBUZXh0PC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ192aWV3Lmh0bWwjc3RydXRzLWVsIj4zLjQuNiBUaGUgU3RydXRzLUVMIFRhZyBMaWJyYXJ5PC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPjwvbGk+CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iYnVpbGRpbmdfY29udHJvbGxlci5odG1sIj40LiBCdWlsZGluZyBDb250cm9sbGVyIENvbXBvbmVudHM8L2E+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ19jb250cm9sbGVyLmh0bWwjb3ZlcnZpZXciPjQuMSBPdmVydmlldzwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ19jb250cm9sbGVyLmh0bWwjYWN0aW9uX3NlcnZsZXQiPjQuMiBUaGUgQWN0aW9uU2VydmxldDwvYT4KKyAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iYnVpbGRpbmdfY29udHJvbGxlci5odG1sI3JlcXVlc3RfcHJvY2Vzc29yIj40LjIuMSBSZXF1ZXN0IFByb2Nlc3NvcjwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImJ1aWxkaW5nX2NvbnRyb2xsZXIuaHRtbCNhY3Rpb25fZm9ybV9jbGFzc2VzIj40LjMgQWN0aW9uRm9ybSBDbGFzc2VzPC9hPgorICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ19jb250cm9sbGVyLmh0bWwjZHluYV9hY3Rpb25fZm9ybV9jbGFzc2VzIj40LjMuMSBEeW5hQWN0aW9uRm9ybSBDbGFzc2VzPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ19jb250cm9sbGVyLmh0bWwjbWFwX2FjdGlvbl9mb3JtX2NsYXNzZXMiPjQuMy4yIE1hcC1iYWNrZWQgQWN0aW9uRm9ybSBDbGFzc2VzPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgPC9saT4gICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ19jb250cm9sbGVyLmh0bWwjYWN0aW9uX2NsYXNzZXMiPjQuNCBBY3Rpb24gQ2xhc3NlczwvYT4KKyAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iYnVpbGRpbmdfY29udHJvbGxlci5odG1sI2FjdGlvbl9kZXNpZ25fZ3VpZGUiPjQuNC4xIEFjdGlvbiBDbGFzcyBEZXNpZ24gR3VpZGVsaW5lczwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImJ1aWxkaW5nX2NvbnRyb2xsZXIuaHRtbCNleGNlcHRpb25faGFuZGxlciI+NC41IEV4Y2VwdGlvbiBIYW5kbGVyPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImJ1aWxkaW5nX2NvbnRyb2xsZXIuaHRtbCNwbHVnaW5fY2xhc3NlcyI+NC42IFBsdWdpbiBDbGFzc2VzPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImJ1aWxkaW5nX2NvbnRyb2xsZXIuaHRtbCNhY3Rpb25tYXBwaW5nIj40LjcgVGhlIEFjdGlvbk1hcHBpbmcgSW1wbGVtZW50YXRpb248L2E+PC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iYnVpbGRpbmdfY29udHJvbGxlci5odG1sI2NvbmZpZyI+NC44IFdyaXRpbmcgQWN0aW9uTWFwcGluZ3M8L2E+CisgICAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImJ1aWxkaW5nX2NvbnRyb2xsZXIuaHRtbCNhY3Rpb25fbWFwcGluZ19leGFtcGxlIj40LjguMSBBY3Rpb25NYXBwaW5nIEV4YW1wbGU8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ19jb250cm9sbGVyLmh0bWwjbW9kdWxlX2NvbmZpZy11c2VfYWN0aW9ucyI+NC45IFVzaW5nIEFjdGlvbk1hcHBpbmdzIGZvciBQYWdlczwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ19jb250cm9sbGVyLmh0bWwjYWN0aW9uX21hcHBpbmdfd2lsZGNhcmRzIj40LjEwIFVzaW5nIFdpbGRjYXJkcyBpbiBBY3Rpb25NYXBwaW5nczwvYT48L2xpPiAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJidWlsZGluZ19jb250cm9sbGVyLmh0bWwjbG9nZ2luZyI+NC4xMSBVc2luZyBUaGUgQ29tbW9ucyBMb2dnaW5nIEludGVyZmFjZTwvYT48L2xpPiAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIDwvdWw+PC9saT4KKworICAgICAgICAgICAgIDxsaT48YSBocmVmPSJjb25maWd1cmF0aW9uLmh0bWwiPjUuIENvbmZpZ3VyaW5nIEFwcGxpY2F0aW9uczwvYT4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImNvbmZpZ3VyYXRpb24uaHRtbCNjb25maWctb3ZlcnZpZXciPjUuMSBPdmVydmlldzwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJjb25maWd1cmF0aW9uLmh0bWwjc3RydXRzLWNvbmZpZyI+NS4yIFRoZSBTdHJ1dHMgQ29uZmlndXJhdGlvbiBGaWxlPC9hPgorICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJjb25maWd1cmF0aW9uLmh0bWwjY29udHJvbGxlcl9jb25maWciPjUuMi4xIENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iY29uZmlndXJhdGlvbi5odG1sI3Jlc291cmNlc19jb25maWciPjUuMi4yIE1lc3NhZ2UgUmVzb3VyY2VzIENvbmZpZ3VyYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImNvbmZpZ3VyYXRpb24uaHRtbCNwbHVnaW5fY29uZmlnIj41LjIuMyBQbHVnSW4gQ29uZmlndXJhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iY29uZmlndXJhdGlvbi5odG1sI2RhdGEtc291cmNlX2NvbmZpZyI+NS4yLjQgRGF0YSBTb3VyY2UgQ29uZmlndXJhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgIDwvbGk+ICAgIAorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJjb25maWd1cmF0aW9uLmh0bWwjZGRfY29uZmlnX21vZHVsZXMiPjUuMyBDb25maWd1cmluZyB5b3VyIGFwcGxpY2F0aW9uIGZvciBtb2R1bGVzPC9hPgorICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJjb25maWd1cmF0aW9uLmh0bWwjbW9kdWxlX2NvbmZpZy1maWxlcyI+NS4zLjEgTW9kdWxlIENvbmZpZ3VyYXRpb24gRmlsZXM8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImNvbmZpZ3VyYXRpb24uaHRtbCNtb2R1bGVfY29uZmlnLWluZm9ybV9jb250cm9sbGVyIj41LjMuMiBJbmZvcm1pbmcgdGhlIENvbnRyb2xsZXI8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImNvbmZpZ3VyYXRpb24uaHRtbCNtb2R1bGVfY29uZmlnLXN3aXRjaGluZyI+NS4zLjMgU3dpdGNoaW5nIE1vZHVsZXM8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICA8L2xpPiAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImNvbmZpZ3VyYXRpb24uaHRtbCNkZF9jb25maWciPjUuNCBUaGUgV2ViIEFwcGxpY2F0aW9uIERlcGxveW1lbnQgRGVzY3JpcHRvcjwvYT4KKyAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iY29uZmlndXJhdGlvbi5odG1sI2RkX2NvbmZpZ19zZXJ2bGV0Ij41LjQuMSBDb25maWd1cmUgdGhlIEFjdGlvbiBTZXJ2bGV0IEluc3RhbmNlPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJjb25maWd1cmF0aW9uLmh0bWwjZGRfY29uZmlnX21hcHBpbmciPjUuNC4yIENvbmZpZ3VyZSB0aGUgQWN0aW9uIFNlcnZsZXQgTWFwcGluZzwvYT48L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iY29uZmlndXJhdGlvbi5odG1sI2RkX2NvbmZpZ190YWdsaWIiPjUuNC4zIENvbmZpZ3VyZSB0aGUgU3RydXRzIFRhZyBMaWJyYXJpZXMiPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9ImNvbmZpZ3VyYXRpb24uaHRtbCNjb25maWdfYWRkIj41LjUgQWRkIFN0cnV0cyBDb21wb25lbnRzIFRvIFlvdXIgQXBwbGljYXRpb248L2E+PC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iY29uZmlndXJhdGlvbi5odG1sI2NvbmZpZ19sb2dnaW5nIj41LjYgTG9nZ2luZyBpbiBTdHJ1dHMgQXBwbGljYXRpb25zPC9hPjwvbGk+CisgICAgICAgICAgICAgICA8L3VsPiAgICAgICAgICAgICAKKyAgICAgICAgICAgICA8L2xpPgorCisgICAgICAgICAgICAgPGxpPjYuIEdldHRpbmcgU3RhcnRlZAorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0icmVsZWFzZS1ub3Rlcy5odG1sIj42LjEgUmVsZWFzZSBOb3RlczwvYT4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9InJlbGVhc2Utbm90ZXMtMS4xLmh0bWwiPlJlbGVhc2UgTm90ZXMgMS4xPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9InJlbGVhc2Utbm90ZXMtMS4xLXJjMi5odG1sIj5SZWxlYXNlIE5vdGVzIDEuMS1yYzI8L2E+PC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0icmVsZWFzZS1ub3Rlcy0xLjEtcmMxLmh0bWwiPlJlbGVhc2UgTm90ZXMgMS4xLXJjMTwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJyZWxlYXNlLW5vdGVzLTEuMS1iMy5odG1sIj5SZWxlYXNlIE5vdGVzIDEuMS1iMzwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJyZWxlYXNlLW5vdGVzLTEuMS1iMi5odG1sIj5SZWxlYXNlIE5vdGVzIDEuMS1iMjwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJyZWxlYXNlLW5vdGVzLTEuMS1iMS5odG1sIj5SZWxlYXNlIE5vdGVzIDEuMS1iMTwvYT48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaW5zdGFsbGF0aW9uLmh0bWwiPjYuMiBJbnN0YWxsYXRpb248L2E+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJpbnN0YWxsYXRpb24taXAuaHRtbCI+aVBsYW5ldDwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJpbnN0YWxsYXRpb24taXBhcy5odG1sIj5Qb3J0YWwgQXBwbGljYXRpb24gU2VydmVyPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imluc3RhbGxhdGlvbi1qZXR0eS5odG1sIj5KZXR0eTwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJpbnN0YWxsYXRpb24tanIzMC5odG1sIj5KUnVuIDMuMDwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJpbnN0YWxsYXRpb24tb2FzLmh0bWwiPk9yaW9uIEFwcGxpY2F0aW9uIFNlcnZlcjwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJpbnN0YWxsYXRpb24tc2FzLmh0bWwiPlNpbHZlclN0cmVhbSBBcHBsaWNhdGlvbiBTZXJ2ZXIgMy43LjEgYW5kIGxhdGVyPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imluc3RhbGxhdGlvbi10Yy5odG1sIj5Ub21jYXQgd2l0aCBBcGFjaGU8L2E+PC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaW5zdGFsbGF0aW9uLXViczcyLmh0bWwiPkJsdWVzdG9uZSBVbml2ZXJzYWwgQnVzaW5lc3MgU2VydmVyIDcuMjwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJpbnN0YWxsYXRpb24td2FzMzUyLmh0bWwiPldlYlNwaGVyZSBBcHBsaWNhdGlvbiBTZXJ2ZXIgMy41IEZpeFBhY2sgMjwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJpbnN0YWxsYXRpb24td2FzMzUyLXguaHRtbCI+V0FTIHdpdGggdGhlIEV4YW1wbGUgQXBwbGNhdGlvbjwvYT48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJpbnN0YWxsYXRpb24td2xzNS5odG1sIj5XZWJsb2dpYyA1LjEgc3A4PC9hPjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICA8L3VsPgorCisgICAgICA8L3NlY3Rpb24+CisgICAgICAKKyAgICA8c2VjdGlvbj4KKyAgICAgICAgPHAgY2xhc3M9InJpZ2h0Ij4KKyAgICAgICAgTmV4dDogPGEgaHJlZj0icHJlZmFjZS5odG1sIj5QcmVmYWNlPC9hPgorICAgICAgICA8L3A+CisgICAgPC9zZWN0aW9uPgorCisgIDwvYm9keT4KKworPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9pbnN0YWxsYXRpb24tMS4wLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9pbnN0YWxsYXRpb24tMS4wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGM4NTQzCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2luc3RhbGxhdGlvbi0xLjAueG1sCkBAIC0wLDAgKzEsMjkxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Imluc3RhbGxhdGlvbi0xLjAuaHRtbCI+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlRoZSBTdHJ1dHMgRnJhbWV3b3JrIFByb2plY3QgLSBJbnN0YWxsYXRpb24gKDEuMCk8L3RpdGxlPgorICA8L3Byb3BlcnRpZXM+CisKKyAgPGJvZHk+CisKKyAgPHNlY3Rpb24gbmFtZT0iUHJlcmVxdWlzaXRlIFNvZnR3YXJlIiBocmVmPSJQcmVyZXF1aXNpdGVzIj4KKworICA8cD5UaGUgU3RydXRzIGJpbmFyeSBkaXN0cmlidXRpb24gbmVlZHMgdGhyZWUgb3RoZXIgc29mdHdhcmUgcGFja2FnZXMgaW5zdGFsbGVkIHRvIAorICBvcGVyYXRlLiBZb3UgbWF5IGFscmVhZHkgaGF2ZSB0aGVzZSBpbnN0YWxsZWQgb24geW91ciBzeXN0ZW0uIFRvIGJ1aWxkIFN0cnV0cyBmcm9tIAorICBzb3VyY2UgeW91IG1heSBuZWVkIHRvIGFjcXVpcmUgYW5kIGluc3RhbGwgc2V2ZXJhbCBvdGhlcnMuIFRoZSBjb21wbGV0ZSBsaXN0IGlzIGFzIAorICBmb2xsb3dzOjwvcD4KKworICA8dWw+CisgIDxsaT48c3Ryb25nPkphdmEgRGV2ZWxvcG1lbnQgS2l0PC9zdHJvbmc+IC0gWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBkb3dubG9hZCBhbmQgaW5zdGFsbAorICAgICAgYSBKYXZhMiAodmVyc2lvbiAxLjIgb3IgbGF0ZXIpIEphdmEgRGV2ZWxvcG1lbnQgS2l0IGltcGxlbWVudGF0aW9uIGZvcgorICAgICAgeW91ciBvcGVyYXRpbmcgc3lzdGVtIHBsYXRmb3JtLgorICAgICAgQSBnb29kIHN0YXJ0aW5nIHBvaW50IGZvciBsb2NhdGluZyBKYXZhIERldmVsb3BtZW50IEtpdCBkaXN0cmlidXRpb25zIGlzCisgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UiPmh0dHA6Ly9qYXZhLnN1bi5jb20vajJzZTwvYT4uPC9saT4KKyAgCisgIDxsaT48c3Ryb25nPlNlcnZsZXQgQ29udGFpbmVyPC9zdHJvbmc+IC0gWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBkb3dubG9hZCBhbmQgaW5zdGFsbCBhCisgICAgICBzZXJ2bGV0IGNvbnRhaW5lciB0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgU2VydmxldCBBUEkgU3BlY2lmaWNhdGlvbiwKKyAgICAgIHZlcnNpb24gMi4yIG9yIGxhdGVyLCBhbmQgdGhlIEphdmFTZXJ2ZXIgUGFnZXMgKEpTUCkgU3BlY2lmaWNhdGlvbiwKKyAgICAgIHZlcnNpb24gMS4xIG9yIGxhdGVyLiAgT25lIHBvcHVsYXIgY2hvaWNlIGlzIHRvIGRvd25sb2FkIEFwYWNoZSdzCisgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RvbWNhdCI+VG9tY2F0PC9hPiAodmVyc2lvbiAzLjEKKyAgICAgIG9yIGxhdGVyIHJlcXVpcmVkLCB2ZXJzaW9uIDMuMiBvciBsYXRlciByZWNvbW1lbmRlZCkuPC9saT4KKworICA8bGk+PHN0cm9uZz5YTUwgUGFyc2VyPC9zdHJvbmc+IC0gU3RydXRzIDxzdHJvbmc+cmVxdWlyZXM8L3N0cm9uZz4gdGhlIHByZXNlbmNlIG9mIGFuIFhNTAorICAgICAgcGFyc2VyIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBKYXZhIEFQSSBmb3IgWE1MIFBhcnNpbmcgKEpBWFApCisgICAgICBzcGVjaWZpY2F0aW9uLCAxLjAgb3IgbGF0ZXIuICBZb3UgY2FuIGRvd25sb2FkIGFuZCBpbnN0YWxsIHRoZSBKQVhQCisgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3htbCI+cmVmZXJlbmNlIGltcGxlbWVudGF0aW9uPC9hPiwKKyAgICAgIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBidWlsZGluZyB0aGUgU3RydXRzIHNvdXJjZSBkaXN0cmlidXRpb24uICBJbgorICAgICAgU3RydXRzLWJhc2VkIHdlYiBhcHBsaWNhdGlvbnMsIHlvdSBtYXkgcmVwbGFjZSB0aGUgcmVmZXJlbmNlCisgICAgICBpbXBsZW1lbnRhdGlvbiBjbGFzc2VzIHdpdGggYW55IG90aGVyIEpBWFAgY29tcGxpYW50IHBhcnNlciwgc3VjaCBhcworICAgICAgPGEgaHJlZj0iaHR0cDovL3htbC5hcGFjaGUub3JnL3hlcmNlcy1qIj5YZXJjZXM8L2E+LiAgU2VlIGRldGFpbGVkCisgICAgICBpbnN0cnVjdGlvbnMgcmVsYXRlZCB0byB0aGUgcGFyc2VyIGluIHRoZSBpbnN0cnVjdGlvbnMgZm9yCisgICAgICA8YSBocmVmPSIjQnVpbGRpbmciPmJ1aWxkaW5nPC9hPiBhbmQgPGEgaHJlZj0iI0luc3RhbGxpbmciPmluc3RhbGxpbmc8L2E+CisgICAgICBTdHJ1dHMsIGJlbG93LjwvbGk+CisKKyAgPGxpPjxzdHJvbmc+QW50IEJ1aWxkIFN5c3RlbTwvc3Ryb25nPiAtIElmIHlvdSBhcmUgYnVpbGRpbmcgU3RydXRzIGZyb20gdGhlCisgICAgICBzb3VyY2UgZGlzdHJpYnV0aW9uLCB5b3UgbXVzdCBkb3dubG9hZCBhbmQgaW5zdGFsbCB2ZXJzaW9uIDEuMyBvciBsYXRlcgorICAgICAgb2YgdGhlIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvYW50Ij5BbnQ8L2E+IGJ1aWxkIHN5c3RlbS4KKyAgICAgIFRoaXMgcGFja2FnZSBpcyBhbHNvIHN0cm9uZ2x5IHJlY29tbWVuZGVkIGZvciB1c2UgaW4gZGV2ZWxvcGluZyB5b3VyCisgICAgICBvd24gd2ViIGFwcGxpY2F0aW9ucyBiYXNlZCBvbiBTdHJ1dHMuCisgICAgICA8dWw+CisgICAgICA8bGk+SWYgeW91IGFyZSB1c2luZyB0aGUgcmVsZWFzZSB2ZXJzaW9uIG9mIEFudCB2ZXJzaW9uIDEuMywgeW91IHdpbGwKKyAgICAgICAgICBhbHNvIG5lZWQgdG8gZG93bmxvYWQgdGhlICJvcHRpb25hbC5qYXIiIGZpbGUgdGhhdCBjb250YWlucyB0aGUKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiBBbnQncyA8Y29kZT4mbHQ7c3R5bGUmZ3Q7PC9jb2RlPiBjb21tYW5kLjwvbGk+CisgICAgICA8bGk+TWFrZSBzdXJlIHRoYXQgdGhlICJhbnQiIGFuZCAiYW50LmJhdCIgc2NyaXB0cyBhcmUgZXhlY3V0YWJsZSwgYnkKKyAgICAgICAgICBhZGRpbmcgdGhlICRBTlRfSE9NRS9iaW4gZGlyZWN0b3J5IHRvIHlvdXIgUEFUSCBlbnZpcm9ubWVudAorICAgICAgICAgIHZhcmlhYmxlLjwvbGk+CisgICAgICA8L3VsPjwvbGk+CisKKyAgPGxpPjxzdHJvbmc+SkRCQyAyLjAgT3B0aW9uYWwgUGFja2FnZSBDbGFzc2VzPC9zdHJvbmc+IC0gU3RydXRzIHN1cHBvcnRzCisgICAgICBhbiBvcHRpb25hbCBpbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5qYXZheC5zcWwuRGF0YVNvdXJjZTwvY29kZT4sIHNvIGl0CisgICAgICByZXF1aXJlcyB0aGUgQVBJIGNsYXNzZXMgdG8gYmUgY29tcGlsZWQuICBUaGV5IGNhbiBiZSBkb3dubG9hZGVkIGZyb20KKyAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvamRiYy9kb3dubG9hZC5odG1sIj5odHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2pkYmMvZG93bmxvYWQuaHRtbDwvYT4uPC9saT4KKworICA8bGk+PHN0cm9uZz5YYWxhbiBYU0xUIFByb2Nlc3Nvcjwvc3Ryb25nPiAtIElmIHlvdSBhcmUgYnVpbGRpbmcgU3RydXRzIGZyb20KKyAgICAgIHRoZSBzb3VyY2UgZGlzdHJpYnV0aW9uLCB5b3UgbXVzdCBkb3dubG9hZCBhbmQgaW5zdGFsbCB2ZXJzaW9uIDEuMgorICAgICAgKHByb2JsZW1zIGhhdmUgYmVlbiByZXBvcnRlZCB3aXRoIGN1cnJlbnQgdmVyc2lvbnMgb2YgWGFsYW4gMi4wKQorICAgICAgb2YgdGhlIDxhIGhyZWY9Imh0dHA6Ly94bWwuYXBhY2hlLm9yZy94YWxhbiI+WGFsYW48L2E+CisgICAgICBYU0xUIHByb2Nlc3NvciAod2hpY2ggYWxzbyBpbmNsdWRlcyB0aGUgWGVyY2VzIFhNTCBwYXJzZXIpLCBvciB1c2UgdGhlCisgICAgICB2ZXJzaW9uIG9mIFhhbGFuIGluY2x1ZGVkIGluIHRoZSBKQVhQIDEuMSByZWxlYXNlLiAgVGhpcworICAgICAgcHJvY2Vzc29yIGlzIHVzZWQgdG8gY29udmVydCB0aGUgU3RydXRzIGRvY3VtZW50YXRpb24gZnJvbSBpdHMgaW50ZXJuYWwKKyAgICAgIFhNTC1iYXNlZCBmb3JtYXQgaW50byB0aGUgSFRNTCB0aGF0IGlzIHByZXNlbnRlZCBpbiB0aGUgU3RydXRzCisgICAgICBkb2N1bWVudGF0aW9uIGFwcGxpY2F0aW9uLjwvbGk+CisgIDwvdWw+CisKKyAgPC9zZWN0aW9uPgorCisgIDxzZWN0aW9uIG5hbWU9Ikluc3RhbGwgQSBTdHJ1dHMgQmluYXJ5IERpc3RyaWJ1dGlvbiIgaHJlZj0iSW5zdGFsbGluZyI+CisKKyAgICA8cD5GaXJzdCwgZG93bmxvYWQgYSBiaW5hcnkgZGlzdHJpYnV0aW9uIG9mIFN0cnV0cyBieSBmb2xsb3dpbmcgdGhlCisgICAgaW5zdHJ1Y3Rpb25zIDxhIGhyZWY9Ii4uL2FjcXVpcmluZy5odG1sIj5oZXJlPC9hPi4gIFRoZW4sIG1ha2Ugc3VyZQorICAgIHlvdSBoYXZlIGRvd25sb2FkZWQgYW5kIGluc3RhbGxlZCB0aGUKKyAgICA8YSBocmVmPSIjUHJlcmVxdWlzaXRlcyI+cHJlcmVxdWlzaXRlPC9hPiBzb2Z0d2FyZSBwYWNrYWdlcyBkZXNjcmliZWQKKyAgICBhYm92ZS48L3A+CisKKyAgICA8cD5VbnBhY2sgdGhlIFN0cnV0cyBiaW5hcnkgZGlzdHJpYnV0aW9uIGludG8gYSBjb252ZW5pZW50IGRpcmVjdG9yeS4KKyAgICAoSWYgeW91IDxhIGhyZWY9IiNCdWlsZGluZyI+YnVpbGQgU3RydXRzIGZyb20gdGhlIHNvdXJjZSBkaXN0cmlidXRpb248L2E+LCAKKyAgICB0aGUgcmVzdWx0IG9mIHRoZSBidWlsZCB3aWxsIGFscmVhZHkgYmUgYW4gdW5wYWNrZWQgYmluYXJ5IGRpc3RyaWJ1dGlvbiAKKyAgICBmb3IgeW91KS4gVGhlIGRpc3RyaWJ1dGlvbiBjb25zaXN0cyBvZiB0aGUgZm9sbG93aW5nIGNvbnRlbnRzOjwvcD4KKworICAgIDx1bD4KKyAgICA8bGk+PHN0cm9uZz5saWIvc3RydXRzLmphcjwvc3Ryb25nPiAtIFRoaXMgSkFSIGZpbGUgY29udGFpbnMgYWxsIG9mIHRoZQorICAgICAgICBKYXZhIGNsYXNzZXMgaW5jbHVkZWQgaW4gU3RydXRzLiAgSXQgc2hvdWxkIGJlIGNvcGllZCBpbnRvIHRoZQorICAgICAgICA8Y29kZT5XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5IG9mIHlvdXIgd2ViIGFwcGxpY2F0aW9uLgorICAgICAgICA8ZW0+V0FSTklORzwvZW0+IC0gSWYgeW91IGFyZSBnb2luZyB0byBiZSBob3N0aW5nIG11bHRpcGxlIFN0cnV0cworICAgICAgICBiYXNlZCBhcHBsaWNhdGlvbnMgb24gdGhlIHNhbWUgc2VydmxldCBjb250YWluZXIsIHlvdSB3aWxsIGJlIHRlbXB0ZWQKKyAgICAgICAgdG8gcGxhY2UgdGhlIDxjb2RlPnN0cnV0cy5qYXI8L2NvZGU+IGZpbGUgaW50byB0aGUgc2hhcmVkIHJlcG9zaXRvcnkKKyAgICAgICAgc3VwcG9ydGVkIGJ5IHlvdXIgY29udGFpbmVyLiAgQmUgYWR2aXNlZCB0aGF0IHRoaXMgd2lsbCBsaWtlIGNhdXNlIHlvdQorICAgICAgICB0byBlbmNvdW50ZXIgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBwcm9ibGVtcyB1bmxlc3MgPGVtPmFsbDwvZW0+IG9mCisgICAgICAgIHlvdXIgYXBwbGljYXRpb24gY2xhc3NlcyBhcmUgc3RvcmVkIGluIHRoZSBzaGFyZWQgcmVwb3NpdG9yeS48L2xpPgorICAgIDxsaT48c3Ryb25nPmxpYi9zdHJ1dHMqLnRsZDwvc3Ryb25nPiAtIFRoZXNlIGFyZSB0aGUgInRhZyBsaWJyYXJ5CisgICAgICAgIGRlc2NyaXB0b3IiIGZpbGVzIHRoYXQgZGVzY3JpYmUgdGhlIGN1c3RvbSB0YWdzIGluIHRoZSB2YXJpb3VzIFN0cnV0cworICAgICAgICB0YWcgbGlicmFyaWVzLiAgVGhleSBzaG91bGQgYmUgY29waWVkIGludG8gdGhlIDxjb2RlPldFQi1JTkY8L2NvZGU+CisgICAgICAgIGRpcmVjdG9yeSBvZiB5b3VyIHdlYiBhcHBsaWNhdGlvbi48L2xpPgorICAgIDxsaT48c3Ryb25nPndlYmFwcHMvc3RydXRzLWJsYW5rLndhcjwvc3Ryb25nPiAtIFRoaXMgaXMgYSBzaW1wbGUgIndlYgorICAgICAgICBhcHBsaWNhdGlvbiBhcmNoaXZlIiBmaWxlIGNvbnRhaW5pbmcgYSBiYXNpYyBzdGFydGluZyBwb2ludCBmb3IKKyAgICAgICAgYnVpbGRpbmcgeW91ciBvd24gU3RydXRzLWJhc2VkIGFwcGxpY2F0aW9ucy48L2xpPgorICAgIDxsaT48c3Ryb25nPndlYmFwcHMvc3RydXRzLWRvY3VtZW50YXRpb24ud2FyPC9zdHJvbmc+IC0gVGhpcyBpcyBhCisgICAgICAgICJ3ZWIgYXBwbGljYXRpb24gYXJjaGl2ZSIgZmlsZSBjb250YWluaW5nIGFsbCBvZiB0aGUgU3RydXRzCisgICAgICAgIGRvY3VtZW50YXRpb24gZm91bmQgb24gdGhlCisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzIj5TdHJ1dHMgd2ViIHNpdGU8L2E+CisgICAgICAgIChpbmNsdWRpbmcgdGhlc2UgcGFnZXMpLiAgWW91IGNhbiBpbnN0YWxsIHRoaXMgd2ViIGFwcGxpY2F0aW9uCisgICAgICAgIG9uIGFueSBzZXJ2bGV0IGNvbnRhaW5lciBjb21wYXRpYmxlIHdpdGggU2VydmxldCBBUEkgMi4yIG9yIGxhdGVyLjwvbGk+CisgICAgPGxpPjxzdHJvbmc+d2ViYXBwcy9zdHJ1dHMtZXhhbXBsZS53YXI8L3N0cm9uZz4gLSBUaGlzIGlzIGFuIGV4YW1wbGUKKyAgICAgICAgd2ViIGFwcGxpY2F0aW9uIHRoYXQgdXNlcyBhIGxhcmdlIHBlcmNlbnRhZ2Ugb2YgU3RydXRzIGZlYXR1cmVzLgorICAgICAgICBZb3UgY2FuIGluc3RhbGwgdGhpcyB3ZWIgYXBwbGljYXRpb24gb24gYW55IHNlcnZsZXQgY29udGFpbmVyCisgICAgICAgIGNvbXBhdGlibGUgd2l0aCB0aGUgU2VydmxldCAyLjIgKG9yIGxhdGVyKSBhbmQgSlNQIDEuMSAob3IgbGF0ZXIpCisgICAgICAgIHNwZWNpZmljYXRpb25zLiAgSWYgYW4gWE1MIHBhcnNlciBpcyBub3QgbWFkZSBhdmFpbGFibGUgdG8gd2ViCisgICAgICAgIGFwcGxpY2F0aW9ucyBieSB5b3VyIGNvbnRhaW5lciwgeW91IHdpbGwgbmVlZCB0byBhZGQgb25lIHRvIHRoZQorICAgICAgICBXRUItSU5GL2xpYiBkaXJlY3Rvcnkgb2YgdGhpcyB3ZWIgYXBwbGljYXRpb24uPC9saT4KKyAgICA8bGk+PHN0cm9uZz53ZWJhcHBzL3N0cnV0cy1leGVyY2lzZS10YWdsaWIud2FyPC9zdHJvbmc+IC0gVGhpcyB3ZWIKKyAgICAgICAgYXBwbGljYXRpb24gY29udGFpbnMgdGVzdCBwYWdlcyBmb3IgdGhlIHZhcmlvdXMgY3VzdG9tIHRhZ3Mgc3VwcG9ydGVkCisgICAgICAgIGJ5IFN0cnV0cy4gIEl0IGlzIHByaW1hcmlseSBvZiB1c2UgdG8gZGV2ZWxvcGVycyB3aG8gYXJlIGVuaGFuY2luZyB0aGUKKyAgICAgICAgU3RydXRzIGN1c3RvbSB0YWcgbGlicmFyaWVzLCBidXQgbWF5IGFsc28gYmUgdXNlZnVsIGFzIHNpbXBsZSBleGFtcGxlcworICAgICAgICBvZiB0aGUgdXNhZ2Ugb2YgdmFyaW91cyBTdHJ1dHMgdGFncy48L2xpPgorICAgIDxsaT48c3Ryb25nPndlYmFwcHMvc3RydXRzLXRlbXBsYXRlLndhcjwvc3Ryb25nPiAtIFRoaXMgd2ViIGFwcGxpY2F0aW9uCisgICAgICAgIGJvdGggaW50cm9kdWNlcyBhbmQgZGVtb25zdHJhdGVzIHRoZSBTdHJ1dHMgdGVtcGxhdGUgdGFncy48L2xpPiAgICAgICAKKyAgICA8bGk+PHN0cm9uZz53ZWJhcHBzL3N0cnV0cy11cGxvYWQud2FyPC9zdHJvbmc+IC0gVGhpcyB3ZWIgYXBwbGljYXRpb24KKyAgICAgICAgaXMgYSBxdWljayBleGFtcGxlIG9mIHVwbG9hZGluZyBmaWxlcyB1c2luZyB0aGUgU3RydXRzIGZyYW1ld29yay48L2xpPgorICAgICAgICA8L3VsPgorCisgICAgPHA+VG8gdXNlIFN0cnV0cyBpbiB5b3VyIG93biBhcHBsaWNhdGlvbiwgeW91IHdpbGwgbmVlZCB0byBmb2xsb3cKKyAgICB0aGVzZSBzdGVwczo8L3A+CisgICAgPHVsPgorICAgIDxsaT5Db3B5IHRoZSBmaWxlIDxjb2RlPmxpYi9zdHJ1dHMuamFyPC9jb2RlPiBmcm9tIHRoZSBTdHJ1dHMgZGlzdHJpYnV0aW9uCisgICAgICAgIGludG8gdGhlIDxjb2RlPldFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3Rvcnkgb2YgeW91ciB3ZWIgYXBwbGljYXRpb24uCisgICAgICAgIDwvbGk+CisgICAgPGxpPkNvcHkgdGhlIGFsbCBvZiB0aGUgZmlsZXMgdGhhdCBtYXRjaCA8Y29kZT5saWIvc3RydXRzKi50bGQ8L2NvZGU+CisgICAgICAgIGZyb20gdGhlIFN0cnV0cyBkaXN0cmlidXRpb24gaW50byB0aGUgPGNvZGU+V0VCLUlORjwvY29kZT4gZGlyZWN0b3J5CisgICAgICAgIG9mIHlvdXIgd2ViIGFwcGxpY2F0aW9uLjwvbGk+CisgICAgPGxpPk1vZGlmeSB0aGUgPGNvZGU+V0VCLUlORi93ZWIueG1sPC9jb2RlPiBmaWxlIGZvciB5b3VyIHdlYiBhcHBsaWNhdGlvbgorICAgICAgICB0byBpbmNsdWRlIGEgPGNvZGU+Jmx0O3NlcnZsZXQmZ3Q7PC9jb2RlPiBlbGVtZW50IHRvIGRlZmluZSB0aGUKKyAgICAgICAgY29udHJvbGxlciBzZXJ2bGV0LCBhbmQgYSA8Y29kZT4mbHQ7c2VydmxldC1tYXBwaW5nJmd0OzwvY29kZT4gZWxlbWVudAorICAgICAgICB0byBlc3RhYmxpc2ggd2hpY2ggcmVxdWVzdCBVUklzIGFyZSBtYXBwZWQgdG8gdGhpcyBzZXJ2bGV0LiAgVXNlIHRoZQorICAgICAgICA8Y29kZT5XRUItSU5GL3dlYi54bWw8L2NvZGU+IGZpbGUgZnJvbSB0aGUgU3RydXRzIGV4YW1wbGUgYXBwbGljYXRpb24KKyAgICAgICAgZm9yIGEgZGV0YWlsZWQgZXhhbXBsZSBvZiB0aGUgcmVxdWlyZWQgc3ludGF4LjwvbGk+CisgICAgPGxpPk1vZGlmeSB0aGUgPGNvZGU+V0VCLUlORi93ZWIueG1sPC9jb2RlPiBmaWxlIG9mIHlvdXIgd2ViIGFwcGxpY2F0aW9uCisgICAgICAgIHRvIGluY2x1ZGUgdGhlIGZvbGxvd2luZyB0YWcgbGlicmFyeSBkZWNsYXJhdGlvbnM6PC9saT4KKyAgICA8L3VsPgorCis8cHJlPiZsdDt0YWdsaWImZ3Q7CisgICZsdDt0YWdsaWItdXJpJmd0Oy9XRUItSU5GL3N0cnV0cy1iZWFuLnRsZCZsdDsvdGFnbGliLXVyaSZndDsKKyAgJmx0O3RhZ2xpYi1sb2NhdGlvbiZndDsvV0VCLUlORi9zdHJ1dHMtYmVhbi50bGQmbHQ7L3RhZ2xpYi1sb2NhdGlvbiZndDsKKyZsdDsvdGFnbGliJmd0OworCismbHQ7dGFnbGliJmd0OworICAmbHQ7dGFnbGliLXVyaSZndDsvV0VCLUlORi9zdHJ1dHMtaHRtbC50bGQmbHQ7L3RhZ2xpYi11cmkmZ3Q7CisgICZsdDt0YWdsaWItbG9jYXRpb24mZ3Q7L1dFQi1JTkYvc3RydXRzLWh0bWwudGxkJmx0Oy90YWdsaWItbG9jYXRpb24mZ3Q7CismbHQ7L3RhZ2xpYiZndDsKKworJmx0O3RhZ2xpYiZndDsKKyAgJmx0O3RhZ2xpYi11cmkmZ3Q7L1dFQi1JTkYvc3RydXRzLWxvZ2ljLnRsZCZsdDsvdGFnbGliLXVyaSZndDsKKyAgJmx0O3RhZ2xpYi1sb2NhdGlvbiZndDsvV0VCLUlORi9zdHJ1dHMtbG9naWMudGxkJmx0Oy90YWdsaWItbG9jYXRpb24mZ3Q7CismbHQ7L3RhZ2xpYiZndDsKKworJmx0O3RhZ2xpYiZndDsKKyAgJmx0O3RhZ2xpYi11cmkmZ3Q7L1dFQi1JTkYvc3RydXRzLXRlbXBsYXRlLnRsZCZsdDsvdGFnbGliLXVyaSZndDsKKyAgJmx0O3RhZ2xpYi1sb2NhdGlvbiZndDsvV0VCLUlORi9zdHJ1dHMtdGVtcGxhdGUudGxkJmx0Oy90YWdsaWItbG9jYXRpb24mZ3Q7CismbHQ7L3RhZ2xpYiZndDsKKzwvcHJlPgorCisgICAgPHVsPgorICAgIDxsaT5DcmVhdGUgYSBmaWxlIDxjb2RlPldFQi1JTkYvc3RydXRzLWNvbmZpZy54bWw8L2NvZGU+IHRoYXQgZGVmaW5lcyB0aGUKKyAgICAgICAgYWN0aW9uIG1hcHBpbmdzIGFuZCBvdGhlciBjaGFyYWN0ZXJpc3RpY3Mgb2YgeW91ciBzcGVjaWZpYyBhcHBsaWNhdGlvbi4KKyAgICAgICAgWW91IGNhbiB1c2UgdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPiBmaWxlIGZyb20gdGhlIFN0cnV0cworICAgICAgICBleGFtcGxlIGFwcGxpY2F0aW9uIGZvciBhIGRldGFpbGVkIGV4YW1wbGUgb2YgdGhlIHJlcXVpcmVkIHN5bnRheC48L2xpPgorICAgIDxsaT5BdCB0aGUgdG9wIG9mIGVhY2ggSlNQIHBhZ2UgdGhhdCB3aWxsIHVzZSB0aGUgU3RydXRzIGN1c3RvbSB0YWdzLAorICAgICAgICBhZGQgbGluZShzKSBkZWNsYXJpbmcgdGhlIFN0cnV0cyBjdXN0b20gdGFnIGxpYnJhcmllcyB1c2VkIG9uCisgICAgICAgIHRoaXMgcGFydGljdWxhciBwYWdlLCBsaWtlIHRoaXM6PC9saT4KKyAgICA8L3VsPgorCis8cHJlPiZsdDslQCB0YWdsaWIgdXJpPSIvV0VCLUlORi9zdHJ1dHMtYmVhbi50bGQiIHByZWZpeD0iYmVhbiIgJSZndDsKKyZsdDslQCB0YWdsaWIgdXJpPSIvV0VCLUlORi9zdHJ1dHMtaHRtbC50bGQiIHByZWZpeD0iaHRtbCIgJSZndDsKKyZsdDslQCB0YWdsaWIgdXJpPSIvV0VCLUlORi9zdHJ1dHMtbG9naWMudGxkIiBwcmVmaXg9ImxvZ2ljIiAlJmd0OworJmx0OyVAIHRhZ2xpYiB1cmk9Ii9XRUItSU5GL3N0cnV0cy10ZW1wbGF0ZS50bGQiIHByZWZpeD0idGVtcGxhdGUiICUmZ3Q7Cis8L3ByZT4KKworICAgIDx1bD4KKyAgICA8bGk+V2hlbiBjb21waWxpbmcgdGhlIEphdmEgY2xhc3NlcyB0aGF0IGNvbXByaXNlIHlvdXIgYXBwbGljYXRpb24sIGJlIHN1cmUKKyAgICAgICAgdG8gaW5jbHVkZSB0aGUgPGNvZGU+c3RydXRzLmphcjwvY29kZT4gZmlsZSAoY29waWVkIGVhcmxpZXIpIG9uIHRoZQorICAgICAgICBDTEFTU1BBVEggdGhhdCBpcyBzdWJtaXR0ZWQgdG8gdGhlIGNvbXBpbGVyLjwvbGk+CisgICAgPC91bD4KKzwvc2VjdGlvbj4gCisKKzxzZWN0aW9uIG5hbWU9Ikluc3RhbGxpbmcgU3RydXRzIHdpdGggeW91ciBzZXJ2bGV0IGNvbnRhaW5lciIgaHJlZj0iQ29udGFpbmVycyI+IAorCis8cD48c3Ryb25nPldBUk5JTkc8L3N0cm9uZz4gLSBEbyA8c3Ryb25nPk5PVDwvc3Ryb25nPiBhZGQKKzxjb2RlPnN0cnV0cy5qYXI8L2NvZGU+IHRvIHRoZSBjbGFzc3BhdGggb2YgeW91ciBzZXJ2bGV0IGNvbnRhaW5lciBpbiBhbgorYXR0ZW1wdCB0byBhdm9pZCBwbGFjaW5nIGl0IGluIHRoZSA8Y29kZT4vV0VCLUlORi9saWI8L2NvZGU+IGRpcmVjdG9yeSBvZgorZWFjaCBpbmRpdmlkdWFsIHdlYiBhcHAhICBEb2luZyBzbyB3aWxsIGNhdXNlIHByb2JsZW1zIHdpdGgKKzxjb2RlPkNsYXNzTm90Rm91bmRFeGNlcHRpb248L2NvZGU+IGV4Y2VwdGlvbnMuPC9wPgorCis8cD5Gb3IgbW9zdCBjb250YWluZXJzLCB5b3UgbmVlZCBvbmx5IHRvOiA8L3A+Cis8dWw+CisgIDxsaT5Db3B5IHRoZSBXQVIgZmlsZXMgaW4geW91ciBTdHJ1dHMgPGNvZGU+L3dlYmFwcDwvY29kZT4gZGlyZWN0b3J5IHRvIHlvdXIgCisgICAgY29udGFpbmVycyA8Y29kZT53ZWJhcHBzPC9jb2RlPiBkaXJlY3RvcnkuIDwvbGk+CisgIDxsaT5JbiBzb21lIGNhc2VzLCB5b3UgbWF5IG5lZWQgdG8gcmVzdGFydCB5b3VyIGNvbnRhaW5lciBpZiBpdCBpcyBydW5uaW5nLjwvbGk+Cis8L3VsPgorPGg0PlN0YXR1cyBvZiB2YXJpb3VzIGNvbnRhaW5lcnM8L2g0PgorPHVsPgorICA8bGk+Qmx1ZXN0b25lIFVuaXZlcnNhbCBCdXNpbmVzcyBTZXJ2ZXIgLSA8YSBocmVmPSJpbnN0YWxsYXRpb24tdWJzNzIuaHRtbCI+QWRkaXRpb25hbCAKKyAgICBzdGVwcyByZXF1aXJlZC48L2E+PC9saT4KKyAgPGxpPkJvcmxhbmQgQXBwbGljYXRpb24gU2VydmVyIDQuNSAtTm8gYWRkaXRpb25hbCAKKyAgICBzdGVwcyByZXF1aXJlZC48L2xpPgorICA8bGk+aVBsYW5ldCBBcHBsaWNhdGlvbiBTZXJ2ZXIgLSBTZXJ2aWNlIFBhY2sgMiBpcyByZWNvbW1lbmRlZC4gTm90ZSB0aGF0IHRoZSBkYXRhYmFzZSAKKyAgb2JqZWN0IGluIHRoZSBTdHJ1dHMtRXhhbXBsZSBhcHBsaWNhdGlvbiBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoaXMgY29udGFpbmVyLjwvbGk+CisgIDxsaT5pUGxhbmV0IFdlYiBTZXJ2ZXIgLSA8YSBocmVmPSJpbnN0YWxsYXRpb24taXAuaHRtbCI+QWRkaXRpb25hbCBzdGVwcyByZXF1aXJlZC48L2E+PC9saT4KKyAgPGxpPmlQb3J0YWwgQXBwbGljYXRpb24gU2VydmVyIC0gPGEgaHJlZj0iaW5zdGFsbGF0aW9uLWlwYXMuaHRtbCI+QWRkaXRpb25hbCBzdGVwcyByZXF1aXJlZC48L2E+PC9saT4KKyAgPGxpPkpldHR5IC0gPGEgaHJlZj0iaW5zdGFsbGF0aW9uLWpldHR5Lmh0bWwiPkFkZGl0aW9uYWwgc3RlcHMgcmVxdWlyZWQuPC9hPjwvbGk+CisgIDxsaT5KUnVuIC0gPGEgaHJlZj0iaW5zdGFsbGF0aW9uLWpyMzAuaHRtbCI+QWRkaXRpb25hbCBzdGVwcyByZXF1aXJlZC48L2E+PC9saT4KKyAgPGxpPk9yaW9uIEFwcGxpY2F0aW9uIFNlcnZlciAtIDxhIGhyZWY9Imluc3RhbGxhdGlvbi1vYXMuaHRtbCI+QWRkaXRpb25hbCBzdGVwcyAKKyAgICByZXF1aXJlZC48L2E+PC9saT4KKyAgPGxpPlJlc2luIDEuMisgInN0YW5kYWxvbmUiIC0gTm8gYWRkaXRpb25hbCBzdGVwcyByZXF1aXJlZC48L2xpPgorICA8bGk+U2lsdmVyU3RyZWFtIDMuNy4xIGFuZCBsYXRlciAtIDxhIGhyZWY9Imluc3RhbGxhdGlvbi1zYXMuaHRtbCI+QWRkaXRpb25hbCBzdGVwcyByZXF1aXJlZC48L2E+PC9saT4KKyAgPGxpPlRvbWNhdCAzLjEgYW5kIHByaW9yIC0gTm90IHJlY29tbWVuZGVkLiBVc2UgVG9tY2F0IDMuMi4xIG9yIGxhdGVyLjwvbGk+CisgIDxsaT5Ub21jYXQgMy4yLjEgd2l0aCBBcGFjaGUgLSA8YSBocmVmPSJpbnN0YWxsYXRpb24tdGMuaHRtbCI+QWRkaXRpb25hbCBzdGVwcyAKKyAgICByZXF1aXJlZC48L2E+PC9saT4KKyAgPGxpPlRvbWNhdCAzLjIuMSsgInN0YW5kYWxvbmUiIC0gTm8gYWRkaXRpb25hbCBzdGVwcyByZXF1aXJlZC48L2xpPgorICA8bGk+VG9tY2F0IDQuMCAtIE5vIGFkZGl0aW9uYWwgc3RlcHMgcmVxdWlyZWQuPC9saT4KKyAgPGxpPldlYmxvZ2ljIC0gPGEgaHJlZj0iaW5zdGFsbGF0aW9uLXdsczUuaHRtbCI+QWRkaXRpb25hbCBzdGVwcyByZXF1aXJlZC48L2E+PC9saT4KKyAgPGxpPldlYkxvZ2ljIDYuMCsgLSBObyBhZGRpdGlvbmFsIHN0ZXBzIHJlcXVpcmVkLjwvbGk+CisgIDxsaT5XZWJTcGhlcmUgLSA8YSBocmVmPSJpbnN0YWxsYXRpb24td2FzMzUyLmh0bWwiPkFkZGl0aW9uYWwgc3RlcHMgcmVxdWlyZWQuPC9hPjwvbGk+CisgIDxsaT5XZWJTcGhlcmUgLSA8YSBocmVmPSJpbnN0YWxsYXRpb24td2FzMzUyLXguaHRtbCI+U3RlcHMgZm9yIHRoZSBFeGFtcGxlIEFwcGxpY2F0aW9uLjwvYT48L2xpPjwvdWw+Cis8L3NlY3Rpb24+IAorCisKKyAgPHNlY3Rpb24gbmFtZT0iQnVpbGRpbmcgU3RydXRzIEZyb20gU291cmNlIiBocmVmPSJCdWlsZGluZyI+CisKKyAgICA8cD5GaXJzdCwgZG93bmxvYWQgYSBzb3VyY2UgZGlzdHJpYnV0aW9uIG9mIFN0cnV0cyBieSBmb2xsb3dpbmcgdGhlCisgICAgaW5zdHJ1Y3Rpb25zIDxhIGhyZWY9Ii4uL2FjcXVpcmluZy5odG1sIj5oZXJlPC9hPi4gIFRoZW4sIG1ha2Ugc3VyZQorICAgIHlvdSBoYXZlIGRvd25sb2FkZWQgYW5kIGluc3RhbGxlZCA8c3Ryb25nPmFsbDwvc3Ryb25nPiBvZiB0aGUKKyAgICA8YSBocmVmPSIjUHJlcmVxdWlzaXRlcyI+cHJlcmVxdWlzaXRlPC9hPiBzb2Z0d2FyZSBwYWNrYWdlcyBkZXNjcmliZWQKKyAgICBhYm92ZS48L3A+CisKKyAgICA8cD5UbyBidWlsZCBTdHJ1dHMsIHlvdSB3aWxsIG5lZWQgdG8gY3VzdG9taXplIHRoZSBidWlsZCBwcm9jZXNzIHRvIHRoZQorICAgIGRldGFpbHMgb2YgeW91ciBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCBhcyBmb2xsb3dzOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlRoZSBTdHJ1dHMgc291cmNlIGRpc3RyaWJ1dGlvbiB1c2VzIGEgZmlsZSBuYW1lZAorICAgICAgICA8Y29kZT5idWlsZC5wcm9wZXJ0aWVzPC9jb2RlPiAoaW4gdGhlIHRvcC1sZXZlbCBkaXJlY3Rvcnkgb2YgdGhlCisgICAgICAgIGRpc3RyaWJ1dGlvbikgdG8gaWRlbnRpZnkgdGhlIGxvY2F0aW9uIG9mIGV4dGVybmFsIGNvbXBvbmVudHMKKyAgICAgICAgdGhhdCBTdHJ1dHMgZGVwZW5kcyBvbi48L2xpPgorICAgIDxsaT5UaGVyZSBpcyBubyA8Y29kZT5idWlsZC5wcm9wZXJ0aWVzPC9jb2RlPiBmaWxlIGluY2x1ZGVkIHdpdGggdGhlCisgICAgICAgIHNvdXJjZSBkaXN0cmlidXRpb24uICBIb3dldmVyLCB0aGVyZSBpcyBhbiBleGFtcGxlIGZpbGUgbmFtZWQKKyAgICAgICAgPGNvZGU+YnVpbGQucHJvcGVydGllcy5leGFtcGxlPC9jb2RlPiB0aGF0IHlvdSBjYW4gY29weSB0bworICAgICAgICA8Y29kZT5idWlsZC5wcm9wZXJ0aWVzPC9jb2RlPiBhbmQgdGhlbiBjdXN0b21pemUuPC9saT4KKyAgICA8bGk+VGhlIHByb3BlcnRpZXMgeW91IG11c3QgY29uZmlndXJlIGluIDxjb2RlPmJ1aWxkLnByb3BlcnRpZXM8L2NvZGU+IGFyZToKKyAgICAgICAgPHVsPgorICAgICAgICA8bGk+PHN0cm9uZz5jYXRhbGluYS5ob21lPC9zdHJvbmc+IC0gUGF0aG5hbWUgdG8gdGhlIGRpcmVjdG9yeSBvZiB5b3VyCisgICAgICAgICAgICBiaW5hcnkgZGlzdHJpYnV0aW9uIG9mIFRvbWNhdCA0LjAgKHJlcXVpcmVkIG9ubHkgaWYgeW91IHdpc2ggdG8KKyAgICAgICAgICAgIHVzZSB0aGUgPGNvZGU+ZGVwbG95LmNhdGFsaW5hPC9jb2RlPiB0YXJnZXQpLjwvbGk+CisgICAgICAgIDxsaT48c3Ryb25nPnNlcnZsZXRhcGkuaG9tZTwvc3Ryb25nPiAtIFBhdGhuYW1lIHRvIHRoZSBkaXJlY3Rvcnkgb2YKKyAgICAgICAgICAgIHlvdXIgYmluYXJ5IGRpc3RyaWJ1dGlvbiBvZiB0aGUgU2VydmxldCBBUEkgY2xhc3Nlcy48L2xpPgorICAgICAgICA8bGk+PHN0cm9uZz50b21jYXQuaG9tZTwvc3Ryb25nPiAtIFBhdGhuYW1lIHRvIHRoZSBkaXJlY3Rvcnkgb2YgeW91cgorICAgICAgICAgICAgYmluYXJ5IGRpc3RyaWJ1dGlvbiBvZiBUb21jYXQgMy4yIChyZXF1aXJlZCBvbmx5IGlmIHlvdSB3aXNoIHRvCisgICAgICAgICAgICB1c2UgdGhlIDxjb2RlPmRlcGxveS50b21jYXQ8L2NvZGU+IHRhcmdldCkuPC9saT4KKyAgICAgICAgPGxpPjxzdHJvbmc+eGVyY2VzLmhvbWU8L3N0cm9uZz4gLSBQYXRobmFtZSB0byB0aGUgZGlyZWN0b3J5IG9mIHlvdXIKKyAgICAgICAgICAgIGJpbmFyeSBkaXN0cmlidXRpb24gb2YgdGhlIFhlcmNlcyBwYXJzZXIsIHZlcnNpb24gMS4yIG9yIDEuMworICAgICAgICAgICAgKHJlcXVpcmVkIG9ubHkgaWYgeW91IHdpc2ggdG8gdXNlIHRoZSA8Y29kZT5kZXBsb3kuY2F0YWxpbmE8L2NvZGU+CisgICAgICAgICAgICB0YXJnZXQpLjwvbGk+CisgICAgICAgIDwvdWw+PC9saT4KKyAgICA8bGk+SWYgeW91IGFyZSBhIFN0cnV0cyBkZXZlbG9wZXIgd2l0aCB3cml0ZSBhY2Nlc3MgdG8gdGhlIFN1YnZlcnNpb24gcmVwb3NpdG9yeSwKKyAgICAgICAgYmUgc3VyZSB0aGF0IHlvdSBkbyA8c3Ryb25nPk5PVDwvc3Ryb25nPiBjaGVjayBpbiBhIGNvcHkgb2YgdGhlCisgICAgICAgIDxjb2RlPmJ1aWxkLnByb3BlcnRpZXM8L2NvZGU+IGZpbGUsIHNpbmNlIGl0IHdpbGwgYmUgZGlmZmVyZW50IGZvcgorICAgICAgICBlYWNoIGluZGl2aWR1YWwgZGV2ZWxvcGVyLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRvIGJ1aWxkIGEgImRpc3RyaWJ1dGlvbiIgdmVyc2lvbiBvZiBTdHJ1dHMsIGZpcnN0IGNoYW5nZSB5b3VyIGN1cnJlbnQKKyAgICBkaXJlY3RvcnkgdG8gdGhlIGRpcmVjdG9yeSBpbiB3aGljaCB5b3UgaGF2ZSB1bnBhY2tlZCB0aGUgU3RydXRzCisgICAgc291cmNlIGRpc3RyaWJ1dGlvbiwgYW5kIChpZiBuZWNlc3NhcnkpIGNyZWF0ZSBvciBjdXN0b21pemUgdGhlCisgICAgPGNvZGU+YnVpbGQucHJvcGVydGllczwvY29kZT4gZmlsZSBhcyBkZXNjcmliZWQgYWJvdmUuICBUaGVuLCB0eXBlOjwvcD4KKzxwcmU+CisgICAgICAgIGFudCBkaXN0Cis8L3ByZT4KKworICAgIDxwPlRoaXMgY29tbWFuZCB3aWxsIGNyZWF0ZSBhIGJpbmFyeSBkaXN0cmlidXRpb24gb2YgU3RydXRzLCBpbiBhCisgICAgZGlyZWN0b3J5IG5hbWVkIDxjb2RlPmRpc3Q8L2NvZGU+IChyZWxhdGl2ZSB0byB3aGVyZSB5b3UKKyAgICBhcmUgY29tcGlsaW5nIGZyb20pLiAgVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgYW4gZXhhY3QgcmVwbGljYSBvZiB0aGUKKyAgICBmaWxlcyBpbmNsdWRlZCBpbiBhIGJpbmFyeSBkaXN0cmlidXRpb24gb2YgU3RydXRzLCBhcyBkZXNjcmliZWQKKyAgICBpbiB0aGUgPGEgaHJlZj0iI0luc3RhbGxpbmciPnByZWNlZGluZyBzZWN0aW9uPC9hPi48L3A+CisKKyAgPC9zZWN0aW9uPgorCis8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2luc3RhbGxhdGlvbi1pcC54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLWlwLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjhiNjI1Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2luc3RhbGxhdGlvbi1pcC54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSJpbnN0YWxsYXRpb24taXAuaHRtbCI+Cis8cHJvcGVydGllcz4KKzx0aXRsZT5UaGUgU3RydXRzIEZyYW1ld29yayBQcm9qZWN0IC0gSW5zdGFsbGF0aW9uIC0gaVBsYW5ldDwvdGl0bGU+Cis8L3Byb3BlcnRpZXM+Cis8Ym9keT4KKzxzZWN0aW9uIG5hbWU9IjUuMiBJbnN0YWxsYXRpb24iIGhyZWY9Imluc3RhbGxhdGlvbiIvPgorPHNlY3Rpb24gbmFtZT0iSW5zdGFsbGluZyBTdHJ1dHMgd2l0aCB5b3VyIHNlcnZsZXQgY29udGFpbmVyIiBocmVmPSJDb250YWluZXJzIj4KKzxoNCBpZD0iaXB3czYwIj5pUGxhbmV0IEFwcGxpY2F0aW9uIFNlcnZlciA2LjA8L2g0PgorPHA+U2VydmljZSBQYWNrIDIgaXMgcmVjb21tZW5kZWQuPC9wPgorPHA+Tk9URTogQXQgcHJlc2VudCwgdGhlIFN0cnV0cyBleGFtcGxlIGFwcGxpY2F0aW9uIHN0aWxsIHVzZXMgYSBub24tU2VyaWFsaXphYmxlCitzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlLCBhbmQgd2lsbCBub3QgcnVuIGluIGFuIGVudmlyb25tZW50IHRoYXQgcmVxdWlyZXMgdGhlbSwKK2xpa2UgaVBsYW5ldCBBcHBsaWNhdGlvbiBTZXJ2ZXIuPC9wPgorPGg0IGlkPSJpcHdzNDIiPmlQbGFuZXQgV2ViIFNlcnZlciA0LjI8L2g0PgorPHA+SGVyZSBhcmUgdGhlIGlzc3VlcyBJIHJhbiBpbnRvIHdoaWxlIG1vdmluZyBteSBzdHJ1dHMgYmFzZWQgYXBwbGljYXRpb24gZnJvbQorICBUb21jYXQgKHN1cHBvcnRzIFdlYkFwcHMgYW5kIFdBUikgdG8gaVdTIDQuMSAoZG9lcyA8c3Ryb25nPk5PVDwvc3Ryb25nPiBzdXBwb3J0IFdlYmFwcHMKKyAgYW5kIFdBUikuIDwvcD4KKzxwPldlYmFwcHMgYW5kIFdBUiB3aWxsIGJlIHN1cHBvcnRlZCBpbiBpV1MgNS4wLCBhcyBtZW50aW9uZWQgaW4gaVdTNS4wIHJvYWRtYXAuPC9wPgorPGg0PkNsYXNzcGF0aCBpc3N1ZXMuPC9oND4KKzxwPlRoaXMgcyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLiBTaW5jZSB0aGVyZSBpcyBubyBub3Rpb24gb2YgPGNvZGU+V0VCLUlORi9saWI8L2NvZGU+IGFuZAorICA8Y29kZT5XRUItSU5GL2NsYXNzZXM8L2NvZGU+IHRoZSBjbGFzc3BhdGggaGFzIHRvIGJlIGV4cGxpY2l0bHkgc2V0IGluCisgIDxjb2RlPiRTRVJWRVJfUk9PVC9jb25maWcvanZtMTIuY29uZjwvY29kZT4uPC9wPgorPGg0PkNvbnRleHQgcmVsYXRpdmUgcGF0aHM8L2g0PgorPHA+QWxsIFVSTHMgc2hvdWxkIGJlIHZpc2libGUgZnJvbSB0aGUgZG9jdW1lbnQgcm9vdC4gSW4gbXkgY2FzZSBJIGp1c3QgY3JlYXRlZAorICBhIHN5bWJvbGljIGxpbmsgZnJvbSA8Y29kZT4kRE9DUk9PVC9teWFwcDwvY29kZT4gdG8gPGNvZGU+d2ViYXBwcy9teWFwcDwvY29kZT4uPC9wPgorPGg0PkV4dGVuc2lvbiBtYXBwaW5nPC9oND4KKzxwPlRoZSBjb25maWcgZmlsZSA8Y29kZT4kU0VSVkVSX1JPT1QvY29uZmlnL3J1bGVzLnByb3BlcnRpZXM8L2NvZGU+IGhhcyBhIHNpbWlsYXIgbWVjaGFuaXNtCisgIGFzIGluIHdlYi54bWwuPC9wPgorPHA+SSBoYXZlIHRoaXMgaW4gbXkgPGNvZGU+cnVsZXMucHJvcGVydGllczwvY29kZT4gd2hpY2ggZm9yd2FyZHMgYWxsIHVybHMgZW5kaW5nIHdpdGggJnF1b3Q7ZG8mcXVvdDsKKyAgdG8gdGhlIHNlcnZsZXQgd2hvc2UgbG9naWNhbCBuYW1lIGlzIGFjdGlvbi48L3A+Cis8cHJlPiMjIyMKKyAgICBALipbLl1kbyQ9YWN0aW9uCisjIyMjPC9wcmU+Cis8aHIvPgorPHA+QmFjayB0byA8YSBocmVmPSJpbnN0YWxsYXRpb24uaHRtbCNDb250YWluZXJzIj5JbnN0YWxsYXRpb248L2E+PC9wPjwvc2VjdGlvbj4KKworPC9ib2R5PgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9pbnN0YWxsYXRpb24taXBhcy54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLWlwYXMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0MDBjNDcKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLWlwYXMueG1sCkBAIC0wLDAgKzEsMTU1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Imluc3RhbGxhdGlvbi1pcGFzLmh0bWwiPgorICAgIDxwcm9wZXJ0aWVzPgorICAgICAgICA8dGl0bGU+VGhlIFN0cnV0cyBGcmFtZXdvcmsgUHJvamVjdCAtIEluc3RhbGxhdGlvbiAtIGlQb3J0YWwgQXBwbGljYXRpb24gU2VydmVyPC90aXRsZT4KKyAgICA8L3Byb3BlcnRpZXM+CisgICAgPGJvZHk+CisgICAgPHNlY3Rpb24gbmFtZT0iNS4yIEluc3RhbGxhdGlvbiIgaHJlZj0iaW5zdGFsbGF0aW9uIi8+CisgICAgICAgIDxzZWN0aW9uIG5hbWU9Ikluc3RhbGxpbmcgU3RydXRzIHdpdGggeW91ciBzZXJ2bGV0IGNvbnRhaW5lciIgaHJlZj0iQ29udGFpbmVycyI+CisgICAgICAgICAgICA8aDQ+CisgICAgICAgICAgICAgICAgPGEgbmFtZT0iaXBhczEzIj5pUG9ydGFsIEFwcGxpY2F0aW9uIFNlcnZlciAxLjM8L2E+CisgICAgICAgICAgICA8L2g0PgorICAgICAgICAgICAgPHN0cm9uZz5UZXN0ZWQgd2l0aDogV2luZG93cyAyMDAwPC9zdHJvbmc+CisgICAgICAgICAgICA8aDQ+SW1wb3J0YW50IE5vdGU6PC9oND4KKyAgICAgICAgICAgIDxwPkF0IHRoZSBtb21lbnQsIGlQQVMgMS4zIGlzIG5vdCBmdWxseSBjb21wbGlhbnQgd2l0aCB0aGUgSlNQIDEuMS8xLjIKK3NwZWNpZmljYXRpb24uIDwvcD4KKyAgICAgICAgICAgIDxwPlNwZWNpZmljYWxseSwgdGhlIGF1dG9tYXRpYyB0eXBlIGNvbnZlcnNpb25zIGZvciBjdXN0b20gdGFnIHBhcmFtZXRlcnMKK3NwZWNpZmllZCBpbiAiSXNzdWUgIDciIG9mIHRoZSBKU1AgMS4xIEVycmF0YSBhbmQgaW4gdGhlIEpTUCAxLjIgUHJvcG9zZWQKK0ZpbmFsIERyYWZ0IGhhdmUgbm90IHlldCBiZWVuIGltcGxlbWVudGVkLjwvcD4KKyAgICAgICAgICAgIDxwPkFzIGl0IHN0YW5kcywgSlNQIHBhZ2VzIHRoYXQgbWFrZSB1c2Ugb2YgU3RydXRzIHRhZ2xpYnMgd2hvc2UgcGFyYW1ldGVycworcmVxdWlyZSAgY29udmVyc2lvbiAoc3VjaCBhcyBib29sZWFucykgd2lsbCBub3QgY29tcGlsZSB1bmRlciBKUnVuLiBUaGlzCitpbmNsdWRlcyB0aGUgU3RydXRzIEV4YW1wbGUgQXBwbGljYXRpb24uIEF0dGVtcHRpbmcgdG8gcnVuIHRoZSBleGFtcGxlCithcHBsaWNhdGlvbiB3aWxsIHJlc3VsdCBpbiBhbiBleGNlcHRpb24gc2ltaWxhciB0byB0aGUgZm9sbG93aW5nIGJlaW5nCit0aHJvd246PC9wPgorPHByZT4KKy9zdHJ1dHMtZXhhbXBsZS9pbmRleC5qc3A6CisKK0NvbXBpbGF0aW9uIGZhaWxlZCBbSVRfQnVpbGRlcjoxMDAwXQorIGF0IGNvbS5pb25hLmoyZWUuYnVpbGRlci5KYXZhQnVpbGRlci5idWlsZChKYXZhQnVpbGRlci5qYXZhOjg0KQorIGF0IGNvbS5pb25hLmoyZWUuYnVpbGRlci5Kc3BCdWlsZGVyLmJ1aWxkKEpzcEJ1aWxkZXIuamF2YTo1MSkKKyBhdCBjb20uaW9uYS5qMmVlLmJ1aWxkZXIuV2FyQnVpbGRlci5idWlsZChXYXJCdWlsZGVyLmphdmE6MTExKQorIGF0IGNvbS5pb25hLmoyZWUuYnVpbGRlci5FYXJCdWlsZGVyLmJ1aWxkKEVhckJ1aWxkZXIuamF2YTo5OSkKKyBhdCBjb20uaW9uYS5qMmVlLmJ1aWxkZXIuRWFyQnVpbGRlci5tYWluKEVhckJ1aWxkZXIuamF2YToyMjMpCisgYXQgaXBvcnRhbC5idWlsZC5tYWluKGJ1aWxkLmphdmE6MTQpCisgb2NhbGUoYm9vbGVhbikgaW4gb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSHRtbFRhZworICAgY2Fubm90IGJlIGFwcGxpZWQgdG8gKGphdmEubGFuZy5TdHJpbmcpCisgICAgICAgX3gwLnNldExvY2FsZSgidHJ1ZSIpOworICAgICAgICAgICAgXgorIDEgZXJyb3IKKzwvcHJlPgorICAgICAgICAgICAgPHA+KEZvciBtb3JlIGRldGFpbHMgc2VlIHJlZmVyIHRvOjxici8+CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMDE4NjAuaHRtbCI+aHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cwMTg2MC5odG1sPC9hPgorICAgICAgICAgICAgICAgICkKKyAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+VGhlIGZvbGxvd2luZyBpbnN0cnVjdGlvbnMgZGVzY3JpYmUgaG93IHRvIGluc3RhbGwgdGhlIFN0cnV0cyBFeGFtcGxlCitBcHBsaWNhdGlvbiB1bmRlciBpUEFTIDEuMy4gQSBzdWJzZXF1ZW50IHNlY3Rpb24gZGVzY3JpYmVzIGhvdyB0aGUgU3RydXRzCitFeGFtcGxlIEFwcGxpY2F0aW9uIGNhbiBiZSBwYXRjaGVkIHRvIHdvcmsgd2l0aCBTdHJ1dHMuPC9wPgorICAgICAgICAgICAgPHA+VGhlIGZvbGxvd2luZyBpbnN0cnVjdGlvbnMgYXNzdW1lIHRoZSBmb2xsb3dpbmc6PC9wPgorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT5pUG9ydGFsIEFwcGxpY2F0aW9uIFNlcnZlciAxLjMgaGFzIGJlZW4gaW5zdGFsbGVkLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPkJvdGggdGhlIFN0cnV0IGFuZCBYTUwgUGFyc2VyIGxpYnJhcmllcyBhcmUgaW4geW91ciBjbGFzc3BhdGguPC9saT4KKyAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8aDQ+SW5zdGFsbGluZyB0aGUgc3RydXRzIGV4YW1wbGUgYXBwbGljYXRpb248L2g0PgorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT5TdGFydCBpUEFTIFNlcnZpY2VzIGJ5IGNsaWNraW5nIG9uIHRoZSBbU3RhcnQgaVBBUyBTZXJ2aWNlc10gbWVudSBpdGVtLiA8L2xpPgorICAgICAgICAgICAgICAgIDxsaT5TdGFydCB0aGUgaVBvcnRhbCBBcHBsaWNhdGlvbiBTZXJ2ZXIgYnkgY2xpY2tpbmcgb24gdGhlIFtpUG9ydGFsIEFwcGxpY2F0aW9uIFNlcnZlcl0gbWVudSBpdGVtLiA8L2xpPgorICAgICAgICAgICAgICAgIDxsaT5TdGFydCBhIGNvbW1hbmQgc2hlbGwuIENoYW5nZSB0byB0aGUgPGNvZGU+JElOU1RBTExESVJcSU9OQTwvY29kZT4gYW5kIHJ1biB0aGUKK3NldGVudnMuYmF0IGZpbGUuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+Q3JlYXRlIGEgZGlyZWN0b3J5IGNhbGxlZCBqYXJzLjwvbGk+CisgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPHA+Tm93IHJ1biB0aGUgRUFSU0NPIHRvb2wuIFR5cGUgPGNvZGU+amF2YSBpcG9ydGFsLmVhcnNjbzwvY29kZT4gYW5kIGF0IHRoZSBwcm9tcHRzIGRvOjwvcD4KKyAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+TmV4dDwvbGk+CisgICAgICAgICAgICAgICAgPGxpPlR5cGUgaW4gdGhlIGFwcGxpY2F0aW9uIG5hbWUgb2YgPGNvZGU+c3RydXRzLWV4YW1wbGU8L2NvZGU+IHRoZW4gY2xpY2sgbmV4dC48L2xpPgorICAgICAgICAgICAgICAgIDxsaT5JbiBzdGVwIHRocmVlIGNsaWNrIHRoZSBjaGVjayBib3ggYW5kIGVudGVyIHRoZSBuYW1lIG9mIHRoZQorICAgV0FSIDxjb2RlPnN0cnV0cy1leGFtcGxlPC9jb2RlPi5UaGVuIGNsaWNrIG5leHQuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+Q2xpY2sgb24gRmluaXNoLjwvbGk+CisgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPHA+Tm93IHlvdSBtdXN0IGNvcHkgdGhlIGNvbnRlbnRzIG9mIHRoZSBzdHJ1dHMtZXhhbXBsZSB3YXIgaW50byB0aGUgRUFSU0NPCitkaXJlY3Rvcnkgc3RydWN0dXJlIGFzIGZvbGxvd3M6IDwvcD4KKyAgICAgICAgICAgIDxwPlVuZGVyIDxjb2RlPiRJTlNUQUxMRElSXElPTkFcamFyc1xzdHJ1dHMtZXhhbXBsZXNcc3JjXHN0cnV0cy1leGFtcGxlLndhcjwvY29kZT4geW91Citjb3B5IGNvbnRlbnRzIGludG8gdGhlIGZvbGxvd2luZyBkaXJlY3RvcmllczogZXRjLCBsaWIsIHNyYyBhbmQgd2ViLjwvcD4KKyAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+Q29weSBhbGwgZmlsZXMgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IDxici8+CisgICAgICAgICAgICAgICAgICAgIDxjb2RlPiRJTlNUQUxMRElSXGpha2FydGEtdG9tY2F0LTMuMi4xXHdlYmFwcHNcc3RydXRzLWV4YW1wbGVcV0VCLUlORjwvY29kZT4KKyAgICAgICAgICAgICAgICAgICAgPGJyLz4KKyAgIGludG8gdGhlIGVhcnNjbyBkaXJlY3Rvcnk8YnIvPgorICAgICAgICAgICAgICAgICAgICA8Y29kZT4kSU5TVEFMTERJUlxJT05BXGphcnNcc3RydXRzLWV4YW1wbGVzXHNyY1xzdHJ1dHMtZXhhbXBsZS53YXJcZXRjPC9jb2RlPgorICAgICAgICAgICAgICAgICAgICA8YnIvPgorICAgRG8gbm90IGNvcHkgaW4gdGhlIGNsYXNzZXMgb3IgbGliIGRpcmVjdG9yaWVzLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPkNvcHkgdGhlIGRpcmVjdG9yeSA8YnIvPgorICAgICAgICAgICAgICAgICAgICA8Y29kZT4kSU5TVEFMTERJUlxqYWthcnRhLXRvbWNhdC0zLjIuMVx3ZWJhcHBzXHN0cnV0cy1leGFtcGxlXFdFQi1JTkZcbGliPC9jb2RlPgorICAgICAgICAgICAgICAgICAgICA8YnIvPgorICAgaW50byB0aGUgZWFyc2NvIGRpcmVjdG9yeTxici8+CisgICAgICAgICAgICAgICAgICAgIDxjb2RlPiRJTlNUQUxMRElSXElPTkFcamFyc1xzdHJ1dHMtZXhhbXBsZXNcc3JjXHN0cnV0cy1leGFtcGxlLndhclxsaWI8L2NvZGU+CisgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+Q29weSB0aGUgZGlyZWN0b3J5IDxici8+CisgICAgICAgICAgICAgICAgICAgIDxjb2RlPiRJTlNUQUxMRElSXGpha2FydGEtdG9tY2F0LTMuMi4xXHdlYmFwcHNcc3RydXRzLWV4YW1wbGVcV0VCLUlORlxjbGFzc2VzPC9jb2RlPgorICAgICAgICAgICAgICAgICAgICA8YnIvPgorICAgaW50byB0aGUgZWFyc2NvIGRpcmVjdG9yeTxici8+CisgICAgICAgICAgICAgICAgICAgIDxjb2RlPiRJTlNUQUxMRElSXElPTkFcamFyc1xzdHJ1dHMtZXhhbXBsZXNcc3JjXHN0cnV0cy1leGFtcGxlLndhclxzcmM8L2NvZGU+CisgICAgICAgICAgICAgICAgICAgIDxici8+CisgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+Q29weSB0aGUgZGlyZWN0b3J5IDxici8+CisgICAgICAgICAgICAgICAgICAgIDxjb2RlPiRJTlNUQUxMRElSXGpha2FydGEtdG9tY2F0LTMuMi4xXHdlYmFwcHNcc3RydXRzLWV4YW1wbGUgPC9jb2RlPgorICAgICAgICAgICAgICAgICAgICA8YnIvPgorICAgaW50byB0aGUgZWFyc2NvIGRpcmVjdG9yeSA8YnIvPgorICAgICAgICAgICAgICAgICAgICA8Y29kZT4kSU5TVEFMTERJUlxJT05BXGphcnNcc3RydXRzLWV4YW1wbGVzXHNyY1xzdHJ1dHMtZXhhbXBsZS53YXJcd2ViPC9jb2RlPgorICAgICAgICAgICAgICAgICAgICA8YnIvPgorICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgPGxpPk5leHQgbW9kaWZ5IHRoZSBhcHBsaWNhdGlvbi54bWwgaW4gdGhlIDxici8+CisgICAgICAgICAgICAgICAgICAgIDxjb2RlPiRJTlNUQUxMRElSXElPTkFcamFyc1xzdHJ1dHMtZXhhbXBsZXNcZXRjPC9jb2RlPiBkaXJlY3RvcnkgdG8gdGhpczogPC9saT4KKyAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8cHJlPgorICAgICAmbHQ7YXBwbGljYXRpb24+CisKKyAgICAgJmx0OyEtLSBBZGQgZGlzcGxheSBuYW1lIC0tPgorICAgICAgICAgICAmbHQ7ZGlzcGxheS1uYW1lPlN0cnV0cyBFeGFtcGxlJmx0Oy9kaXNwbGF5LW5hbWU+CisgICAgICAgICAgICAgICAgIC4uLi4uLi4KKzwvcHJlPgorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT5MYXN0IHVwZGF0ZSB0aGUgY2MueG1sIGluIHRoZSA8YnIvPgorICAgICAgICAgICAgICAgICAgICA8Y29kZT4kSU5TVEFMTERJUlxJT05BXGphcnNcc3RydXRzLWV4YW1wbGVzIGRpcmVjdG9yeSBhcyBmb2xsb3dzOjwvY29kZT4KKyAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDxwcmU+CisgICAgICZsdDtjb25maWd1cmF0aW9uPgorICAgICAgICZsdDt3ZWItYXBwPgorICAgICAgICAgJmx0O2NvbnRleHQtcm9vdD5zdHJ1dHMtZXhhbXBsZSZsdDsvY29udGV4dC1yb290PgorICAgICAgICZsdDsvd2ViLWFwcD4KKyAgICAgJmx0Oy9jb25maWd1cmF0aW9uPgorPC9wcmU+CisgICAgICAgICAgICA8cD5Ob3cgeW91IGFyZSByZWFkeSB0byBjb21waWxlIGFuZCBkZXBsb3kgdGhlIHN0cnV0cy1leGFtcGxlLjwvcD4KKyAgICAgICAgICAgIDxwPlRvIGNvbXBpbGUgdGhlIHNvdXJjZSBmcm9tIHRoZSAkSU5TVEFMTERJUlxJT05BXGphcnNcc3RydXRzLWV4YW1wbGVzIHR5cGUgPC9wPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgPGNvZGU+amF2YSBpcG9ydGFsLmJ1aWxkPC9jb2RlPgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+TmV4dCwgdHlwZTwvcD4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIDxjb2RlPmphdmEgaXBvcnRhbC5kZXBsb3k8L2NvZGU+CisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICA8cD5UaGUgZmlyc3QgdGltZSB5b3UgZGVwbG95IHlvdSB3aWxsIGJlIHByb21wdGVkIGJ5IGEgRGVwbG95IHdpemFyZCBhbmQgYXNrZWQgdG8KK3N1cHBseSBib3RoIGxvY2F0aW9ucyBvZiB0aGUgc3RydXRzLWV4YW1wbGUuZWFyIGZpbGUgYW5kIG9mIHRoZSBjYy54bWwgZmlsZS4KK09uY2UgYm90aCBlbGVtZW50cyBoYXZlIGJlZW4gc2F0aXNmaWVkIGNvbnRpbnVlIHVudGlsIHRoZSBmaW5pc2ggYnV0dG9uIGFuZAorY2xpY2sgaXQuIFRoZSBFQVIgZmlsZSBzaG91bGQgZGVwbG95IHN1Y2Nlc3NmdWxseS48L3A+CisgICAgICAgICAgICA8cD5UZXN0IHRoZSBzYW1wbGUgYXBwbGljYXRpb24gYnkgdXNpbmcgdGhlIGZvbGxvd2luZyBVUkwgaW4gdGhlIGJyb3dzZXI6PC9wPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgPGNvZGU+aHR0cDovL2hvc3RuYW1lOjkwMDAvc3RydXRzLWV4YW1wbGUvaW5kZXguanNwPC9jb2RlPgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+VGhlIDxjb2RlPnN0cnV0cy1kb2N1bWVudGF0aW9uLndhcjwvY29kZT4gY2FuIGJlIGluc3RhbGxlZCB1c2luZyB0aGUgc2FtZSBwcm9jZWR1cmUuPC9wPgorICAgICAgICAgICAgPGg0PlBhdGNoaW5nIHRoZSBzdHJ1dHMgZXhhbXBsZSBhcHBsaWNhdGlvbjwvaDQ+CisgICAgICAgICAgICA8cD5BcyBtZW50aW9uZWQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGVzZSBub3RlcywgdGhlIFN0cnV0cyBFeGFtcGxlIEFwcGxpY2F0aW9uCit3aWxsIG5vdCBydW4gdW5kZXIgaVBBUyAxLjMgd2l0aG91dCBtb2RpZmljYXRpb24uIFRoZSBmb2xsb3dpbmcgY2hhbmdlcyB3aWxsCituZWVkIHRvIGJlIG1hZGU6PC9wPgorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT5pbmRleC5qc3AsIGxvZ29uLmpzcDogQ2hhbmdlICZsdDtodG1sOmh0bWwgbG9jYWxlPSJ0cnVlIj4gdG8gPGJyLz4mbHQ7aHRtbDpodG1sIGxvY2FsZT0mbHQ7JT0gdHJ1ZSAlPj48L2xpPgorICAgICAgICAgICAgICAgIDxsaT5yZWdpc3RyYXRpb24uanNwLCBzdWJzY3JpcHRpb24uanNwOiBDaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiBmaWx0ZXI9InRydWUiIHRvIDxici8+ZmlsdGVyPSZsdDslPSB0cnVlICU+PC9saT4KKyAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8aHIvPgorICAgICAgICAgICAgPHA+QmFjayB0byA8YSBocmVmPSJpbnN0YWxsYXRpb24uaHRtbCNDb250YWluZXJzIj5JbnN0YWxsYXRpb248L2E+CisgICAgICAgICAgICA8L3A+CisgICAgICAgIDwvc2VjdGlvbj4KKyAgICAKKyAgICA8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2luc3RhbGxhdGlvbi1qZXR0eS54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLWpldHR5LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OWE2NDE3Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2luc3RhbGxhdGlvbi1qZXR0eS54bWwKQEAgLTAsMCArMSwxMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorCis8ZG9jdW1lbnQgdXJsPSJpbnN0YWxsYXRpb24taXAuaHRtbCI+CisKKzxwcm9wZXJ0aWVzPgorICA8dGl0bGU+VGhlIFN0cnV0cyBGcmFtZXdvcmsgUHJvamVjdCAtIEluc3RhbGxhdGlvbiAtIEpldHR5PC90aXRsZT4KKzwvcHJvcGVydGllcz4KKworPGJvZHk+Cis8c2VjdGlvbiBuYW1lPSI1LjIgSW5zdGFsbGF0aW9uIiBocmVmPSJpbnN0YWxsYXRpb24iLz4KKzxzZWN0aW9uIG5hbWU9Ikluc3RhbGxpbmcgU3RydXRzIHdpdGggeW91ciBzZXJ2bGV0IGNvbnRhaW5lciIgaHJlZj0iQ29udGFpbmVycyI+CisKKzxoNCBpZD0iamV0dHkiPkpldHR5IEphdmEgSFRUUCBTZXJ2bGV0IFNlcnZlcjwvaDQ+CisKKzxwPgorSmV0dHkgaXMgYSBzbWFsbCwgcHVyZS1KYXZhLCBvcGVuIHNvdXJjZSBIVFRQIHNlcnZlciB0aGF0IHN1cHBvcnRzIHRoZQorMi4zIFNlcnZsZXQgc3BlYyBhbmQgSlNQIDEuMi4gSmV0dHkgY2FuIGJlIGRvd25sb2FkZWQgZnJvbQorPGEgaHJlZj0iaHR0cDovL3d3dy5tb3J0YmF5LmNvbS9qZXR0eSI+aHR0cDovL3d3dy5tb3J0YmF5LmNvbS9qZXR0eTwvYT4uCis8L3A+CisKKzxwPgorU3RydXRzIFdBUiBmaWxlcyBydW4gbmVhcmx5IHN0cmFpZ2h0IG91dCBvZiB0aGUgYm94IHdoZW4gcGxhY2VkCit1bmRlcm5lYXRoIEpldHR5J3Mgd2ViYXBwcyBkaXJlY3RvcnkuIFRoZSBvbmUgYWRkaXRpb25hbCBzdGVwIG5lZWRlZAoraXMgdG8gYWRkIGFuIGVudHJ5IGZvciBlYWNoIFdBUiBmaWxlIHRvIHRoZSBKZXR0eSBzZXJ2ZXIgY29uZmlndXJhdGlvbgorZmlsZSBpbiBvcmRlciB0byBtYXAgdGhlIGFwcHJvcHJpYXRlIHJlcXVlc3QgcGF0aHMgdG8gdGhlIGFkZGVkIFN0cnV0cword2ViIGFwcGxpY2F0aW9ucyAodXNpbmcgIiZsdDtDYWxsIG5hbWU9ImFkZFdlYkFwcGxpY2F0aW9uIiZndDsuLi4iKS4KKzwvcD4KKworPHA+CitTbyBmb3IgZXhhbXBsZSwgaWYgeW91IGhhdmUgY29waWVkIHRoZSBXQVIgZmlsZXMgdGhhdCBjb21lIHdpdGggdGhlCitTdHJ1dHMgYmluYXJ5IGRpc3RyaWJ1dGlvbiBpbnRvIGEgc3ViZGlyZWN0b3J5IG9mIHRoZQorIiVKRVRUWV9IT01FJS93ZWJhcHBzIiBjYWxsZWQgIiVKRVRUWV9IT01FJS93ZWJhcHBzL3N0cnV0cyIgc28gdGhhdAoreW91IGhhdmU6Cis8L3A+CisKKzxwcmU+CistICVKRVRUWV9IT01FJS93ZWJhcHBzL3N0cnV0cy9zdHJ1dHMtZG9jdW1lbnRhdGlvbi53YXIKKy0gJUpFVFRZX0hPTUUlL3dlYmFwcHMvc3RydXRzL3N0cnV0cy1leGFtcGxlLndhcgorLSAlSkVUVFlfSE9NRSUvd2ViYXBwcy9zdHJ1dHMvc3RydXRzLWV4ZXJjaXNlLXRhZ2xpYi53YXIKKy0gJUpFVFRZX0hPTUUlL3dlYmFwcHMvc3RydXRzL3N0cnV0cy11cGxvYWQud2FyCistICVKRVRUWV9IT01FJS93ZWJhcHBzL3N0cnV0cy9zdHJ1dHMtYmxhbmsud2FyCis8L3ByZT4KKworPHA+CitBbmQgeW91IHdhbnQgdG8gcnVuIEpldHR5IHVzaW5nIHRoZSBkZW1vLnhtbCBjb25maWd1cmF0aW9uIGZpbGUgdGhhdAorY29tZXMgd2l0aCBKZXR0eSwganVzdCBhZGQgdGhlIGZvbGxvd2luZyBibG9jayB0byBkZW1vLnhtbCwgYW55d2hlcmUKK2FmdGVyIHRoZSBMaXN0ZW5lcnMgYXJlIGRlY2xhcmVkLgorPC9wPgorCis8cHJlPgorJmx0OyEtLSBKZXR0eSBjb25maWcgZm9yIFN0cnV0cyBCRUdJTiAtLSZndDsKKworICAmbHQ7Q2FsbCBuYW1lPSJhZGRXZWJBcHBsaWNhdGlvbiImZ3Q7CisgICAgJmx0O0FyZyZndDsvc3RydXRzL3N0cnV0cy1kb2N1bWVudGF0aW9uLyombHQ7L0FyZyZndDsKKyAgICAmbHQ7QXJnJmd0OyZsdDtTeXN0ZW1Qcm9wZXJ0eSBuYW1lPSJqZXR0eS5ob21lIgorICAgICAgICBkZWZhdWx0PSIuIi8mZ3Q7L3dlYmFwcHMvc3RydXRzL3N0cnV0cy1kb2N1bWVudGF0aW9uLndhciZsdDsvQXJnJmd0OworICAgICZsdDtBcmcmZ3Q7Jmx0O1N5c3RlbVByb3BlcnR5IG5hbWU9ImpldHR5LmhvbWUiCisgICAgICAgIGRlZmF1bHQ9Ii4iLyZndDsvZXRjL3dlYmRlZmF1bHQueG1sJmx0Oy9BcmcmZ3Q7CisgICAgJmx0O0FyZyB0eXBlPSJib29sZWFuIiZndDtmYWxzZSZsdDsvQXJnJmd0OyAmbHQ7IS0tIGlmIHRydWUsCisgICAgICAgIGV4cGFuZCB3YXIgaW4gdGVtcCBkaXIgLS0mZ3Q7CisgICZsdDsvQ2FsbCZndDsKKworICAmbHQ7Q2FsbCBuYW1lPSJhZGRXZWJBcHBsaWNhdGlvbiImZ3Q7CisgICAgJmx0O0FyZyZndDsvc3RydXRzL3N0cnV0cy1leGFtcGxlLyombHQ7L0FyZyZndDsKKyAgICAmbHQ7QXJnJmd0OyZsdDtTeXN0ZW1Qcm9wZXJ0eSBuYW1lPSJqZXR0eS5ob21lIgorICAgICAgICBkZWZhdWx0PSIuIi8mZ3Q7L3dlYmFwcHMvc3RydXRzL3N0cnV0cy1leGFtcGxlLndhciZsdDsvQXJnJmd0OworICAgICZsdDtBcmcmZ3Q7Jmx0O1N5c3RlbVByb3BlcnR5IG5hbWU9ImpldHR5LmhvbWUiCisgICAgICAgIGRlZmF1bHQ9Ii4iLyZndDsvZXRjL3dlYmRlZmF1bHQueG1sJmx0Oy9BcmcmZ3Q7CisgICAgJmx0O0FyZyB0eXBlPSJib29sZWFuIiZndDt0cnVlJmx0Oy9BcmcmZ3Q7ICZsdDshLS0gaWYgdHJ1ZSwKKyAgICAgICAgZXhwYW5kIHdhciBpbiB0ZW1wIGRpciAtLSZndDsKKyAgJmx0Oy9DYWxsJmd0OworCisgICZsdDtDYWxsIG5hbWU9ImFkZFdlYkFwcGxpY2F0aW9uIiZndDsKKyAgICAmbHQ7QXJnJmd0Oy9zdHJ1dHMvc3RydXRzLWV4ZXJjaXNlLXRhZ2xpYi8qJmx0Oy9BcmcmZ3Q7CisgICAgJmx0O0FyZyZndDsmbHQ7U3lzdGVtUHJvcGVydHkgbmFtZT0iamV0dHkuaG9tZSIKKyAgICAgICAgZGVmYXVsdD0iLiIvJmd0Oy93ZWJhcHBzL3N0cnV0cy9zdHJ1dHMtZXhlcmNpc2UtdGFnbGliLndhciZsdDsvQXJnJmd0OworICAgICZsdDtBcmcmZ3Q7Jmx0O1N5c3RlbVByb3BlcnR5IG5hbWU9ImpldHR5LmhvbWUiCisgICAgICAgIGRlZmF1bHQ9Ii4iLyZndDsvZXRjL3dlYmRlZmF1bHQueG1sJmx0Oy9BcmcmZ3Q7CisgICAgJmx0O0FyZyB0eXBlPSJib29sZWFuIiZndDtmYWxzZSZsdDsvQXJnJmd0OyAmbHQ7IS0tIGlmIHRydWUsCisgICAgICAgIGV4cGFuZCB3YXIgaW4gdGVtcCBkaXIgLS0mZ3Q7CisgICZsdDsvQ2FsbCZndDsKKworICAmbHQ7Q2FsbCBuYW1lPSJhZGRXZWJBcHBsaWNhdGlvbiImZ3Q7CisgICAgJmx0O0FyZyZndDsvc3RydXRzL3N0cnV0cy11cGxvYWQvKiZsdDsvQXJnJmd0OworICAgICZsdDtBcmcmZ3Q7Jmx0O1N5c3RlbVByb3BlcnR5IG5hbWU9ImpldHR5LmhvbWUiCisgICAgICAgIGRlZmF1bHQ9Ii4iLyZndDsvd2ViYXBwcy9zdHJ1dHMvc3RydXRzLXVwbG9hZC53YXImbHQ7L0FyZyZndDsKKyAgICAmbHQ7QXJnJmd0OyZsdDtTeXN0ZW1Qcm9wZXJ0eSBuYW1lPSJqZXR0eS5ob21lIgorICAgICAgICBkZWZhdWx0PSIuIi8mZ3Q7L2V0Yy93ZWJkZWZhdWx0LnhtbCZsdDsvQXJnJmd0OworICAgICZsdDtBcmcgdHlwZT0iYm9vbGVhbiImZ3Q7dHJ1ZSZsdDsvQXJnJmd0OyAmbHQ7IS0tIGlmIHRydWUsCisgICAgICAgIGV4cGFuZCB3YXIgaW4gdGVtcCBkaXIgLS0mZ3Q7CisgICZsdDsvQ2FsbCZndDsKKworICAmbHQ7Q2FsbCBuYW1lPSJhZGRXZWJBcHBsaWNhdGlvbiImZ3Q7CisgICAgJmx0O0FyZyZndDsvc3RydXRzL3N0cnV0cy1ibGFuay8qJmx0Oy9BcmcmZ3Q7CisgICAgJmx0O0FyZyZndDsmbHQ7U3lzdGVtUHJvcGVydHkgbmFtZT0iamV0dHkuaG9tZSIKKyAgICAgICAgZGVmYXVsdD0iLiIvJmd0Oy93ZWJhcHBzL3N0cnV0cy9zdHJ1dHMtYmxhbmsud2FyJmx0Oy9BcmcmZ3Q7CisgICAgJmx0O0FyZyZndDsmbHQ7U3lzdGVtUHJvcGVydHkgbmFtZT0iamV0dHkuaG9tZSIKKyAgICAgICAgZGVmYXVsdD0iLiIvJmd0Oy9ldGMvd2ViZGVmYXVsdC54bWwmbHQ7L0FyZyZndDsKKyAgICAmbHQ7QXJnIHR5cGU9ImJvb2xlYW4iJmd0O3RydWUmbHQ7L0FyZyZndDsgJmx0OyEtLSBpZiB0cnVlLAorICAgICAgICBleHBhbmQgd2FyIGluIHRlbXAgZGlyIC0tJmd0OworICAmbHQ7L0NhbGwmZ3Q7CisKKyZsdDshLS0gSmV0dHkgY29uZmlnIGZvciBTdHJ1dHMgRU5EIC0tJmd0OworPC9wcmU+CisKKzxoci8+Cis8cD5CYWNrIHRvIDxhIGhyZWY9Imluc3RhbGxhdGlvbi5odG1sI0NvbnRhaW5lcnMiPkluc3RhbGxhdGlvbjwvYT48L3A+CisKKzwvc2VjdGlvbj4KKworPC9ib2R5PgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9pbnN0YWxsYXRpb24tanIzMC54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLWpyMzAueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwNzcwNDkKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLWpyMzAueG1sCkBAIC0wLDAgKzEsMTg2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Imluc3RhbGxhdGlvbi1qcjMwLmh0bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5UaGUgU3RydXRzIEZyYW1ld29yayBQcm9qZWN0IC0gSW5zdGFsbGF0aW9uIC0gSlJ1biAzLjA8L3RpdGxlPgorICA8L3Byb3BlcnRpZXM+CisKKyAgPGJvZHk+Cis8c2VjdGlvbiBuYW1lPSI1LjIgSW5zdGFsbGF0aW9uIiBocmVmPSJpbnN0YWxsYXRpb24iLz4KKzxzZWN0aW9uIG5hbWU9Ikluc3RhbGxpbmcgU3RydXRzIHdpdGggeW91ciBzZXJ2bGV0IGNvbnRhaW5lciIgaHJlZj0iQ29udGFpbmVycyI+CisKKzxoNCBpZD0ianJ1biI+SlJVTiAzLjAgU1AyQSwgVkVSU0lPTiAzLjAyQS4xMTYxNDwvaDQ+CisKKzxzdHJvbmc+VGVzdGVkIHdpdGg6IE1pY3Jvc29mdCBJSVMgNS4wLCBXaW5kb3dzIDIwMDA8L3N0cm9uZz4KKworPGg0PkltcG9ydGFudCBOb3RlOjwvaDQ+CisKKzxwPkF0IHRoZSBtb21lbnQsIEpSdW4gaXMgbm90IGZ1bGx5IGNvbXBsaWFudCB3aXRoIHRoZSBKU1AgMS4xLzEuMgorc3BlY2lmaWNhdGlvbi4gPC9wPgorCis8cD5TcGVjaWZpY2FsbHksIHRoZSBhdXRvbWF0aWMgdHlwZSBjb252ZXJzaW9ucyBmb3IgY3VzdG9tIHRhZyBwYXJhbWV0ZXJzCitzcGVjaWZpZWQgaW4gIklzc3VlICA3IiBvZiB0aGUgSlNQIDEuMSBFcnJhdGEgYW5kIGluIHRoZSBKU1AgMS4yIFByb3Bvc2VkCitGaW5hbCBEcmFmdCBoYXZlIG5vdCB5ZXQgYmVlbiBpbXBsZW1lbnRlZC48L3A+CisKKzxwPkFzIGl0IHN0YW5kcywgSlNQIHBhZ2VzIHRoYXQgbWFrZSB1c2Ugb2YgU3RydXRzIHRhZ2xpYnMgd2hvc2UgcGFyYW1ldGVycworcmVxdWlyZSAgY29udmVyc2lvbiAoc3VjaCBhcyBib29sZWFucykgd2lsbCBub3QgY29tcGlsZSB1bmRlciBKUnVuLiBUaGlzCitpbmNsdWRlcyB0aGUgU3RydXRzIEV4YW1wbGUgQXBwbGljYXRpb24uIEF0dGVtcHRpbmcgdG8gcnVuIHRoZSBleGFtcGxlCithcHBsaWNhdGlvbiB3aWxsIHJlc3VsdCBpbiBhbiBleGNlcHRpb24gc2ltaWxhciB0byB0aGUgZm9sbG93aW5nIGJlaW5nCit0aHJvd246PC9wPgorCis8cHJlPgorL3N0cnV0cy1leGFtcGxlL2luZGV4LmpzcDoKKworamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uOiBDb21waWxhdGlvbiBlcnJvciBvY2N1cnJlZDoKKworYWxsYWlyZS5qcnVuLnNjcmlwdGluZy5EZWZhdWx0Q0ZFOgorCitFcnJvcnMgcmVwb3J0ZWQgYnkgY29tcGlsZXI6CitjOi9KUnVuL3NlcnZlcnMvZGVmYXVsdC9TdHJ1dHMKKyAgRXhhbXBsZS9XRUItSU5GL2pzcC9qcnVuX19pbmRleDJlanNwYS5qYXZhOjQxOjE6NDE6Mjc6CisKK0Vycm9yOiBObyBtYXRjaCB3YXMgZm91bmQgZm9yIG1ldGhvZCAic2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIi4KKzwvcHJlPgorCis8cD4oRm9yIG1vcmUgZGV0YWlscyBzZWUgcmVmZXIgdG86PGJyLz4KKzxhIGhyZWY9Imh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmcvbXNnMDE4NjAuaHRtbCI+aHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL3N0cnV0cy11c2VyQGpha2FydGEuYXBhY2hlLm9yZy9tc2cwMTg2MC5odG1sPC9hPik8L3A+CisKKzxwPlRoZSBmb2xsb3dpbmcgaW5zdHJ1Y3Rpb25zIGRlc2NyaWJlIGhvdyB0byBpbnN0YWxsIHRoZSBTdHJ1dHMgRXhhbXBsZQorQXBwbGljYXRpb24gdW5kZXIgSlJ1bi4gQSBzdWJzZXF1ZW50IHNlY3Rpb24gZGVzY3JpYmVzIGhvdyB0aGUgU3RydXRzIEV4YW1wbGUKK0FwcGxpY2F0aW9uIGNhbiBiZSBwYXRjaGVkIHRvIHdvcmsgd2l0aCBTdHJ1dHM8L3A+CisKKzxwPlRoZSBmb2xsb3dpbmcgaW5zdHJ1Y3Rpb25zIGFzc3VtZSB0aGUgZm9sbG93aW5nOjwvcD4KKworPHVsPgorPGxpPkpSdW4gaGFzIGJlZW4gaW5zdGFsbGVkIGFuZCBpbnRlZ3JhdGVkIHdpdGggdGhlIHdlYiBzZXJ2ZXIgb2YgY2hvaWNlLjwvbGk+CisKKzxsaT4kQVBQX1NFUlZFUl9OQU1FIGlzIHRoZSBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbiBzZXJ2ZXIgdXNlZCB0byBob3N0IHRoZQorICBhcHBsaWNhdGlvbi4gIChXaGVuIEpSdW4gaXMgZmlyc3QgaW5zdGFsbGVkLCBpdCBjcmVhdGVzIGFuIGFwcGxpY2F0aW9uCisgIHNlcnZlciBjYWxsZWQgSlJ1biBEZWZhdWx0IFNlcnZlcikuPC9saT4KKworPGxpPiRBUFBfU0VSVkVSX0RJUiBpcyB0aGUgZGlyZWN0b3J5IHVzZWQgdG8gaG9sZCBhcHBsaWNhdGlvbnMgaG9zdGVkIGJ5CisgICRBUFBfU0VSVkVSX05BTUUuICBGb3IgdGhlIEpSdW4gRGVmYXVsdCBTZXJ2ZXIsIHRoZSBkaXJlY3RvcnkgaXMKKyAgJEpSVU5fSE9NRS9zZXJ2ZXJzL2RlZmF1bHQgd2hlcmUgJEpSVU5fSE9NRSBpcyB0aGUgZGlyZWN0b3J5IHdoZXJlCisgIEpSdW4gaXMgaW5zdGFsbGVkLjwvbGk+Cis8L3VsPgorCis8aDQ+SW5zdGFsbGluZyB0aGUgc3RydXRzIGV4YW1wbGUgYXBwbGljYXRpb248L2g0PgorCis8dWw+Cis8bGk+TG9naW4gdG8gdGhlIEpSdW4gTWFuYWdlbWVudCBDb25zb2xlLjwvbGk+CisKKzxsaT5PbiB0aGUgbGVmdCBwYW5lLCBzZWxlY3QgJEFQUF9TRVJWRVJfTkFNRS4gQSBwYWdlIHNob3dpbmcgdGhlCisgIGN1cnJlbnQgc2VydmVyIHN0YXR1cyB3aWxsIGJlIHNob3duIG9uIHRoZSByaWdodCBwYW5lLjwvbGk+CisKKzxsaT5PbiB0aGUgcmlnaHQgcGFuZSwgY2xpY2sgb24gdGhlIFdBUiBEZXBsb3ltZW50IGxpbmsuIEEgcGFnZQorICBjb250YWluaW5nIGEgbGlzdCBvZiB0aGUgY3VycmVudGx5IGRlcGxveWVkIHdlYiBhcHBsaWNhdGlvbnMgd2lsbCBiZQorICBzaG93bi48L2xpPgorCis8bGk+T24gdGhlIHJpZ2h0IHBhbmUsIGNsaWNrIG9uIERlcGxveSBhbiBBcHBsaWNhdGlvbi4gQ29tcGxldGUgdGhlIFdlYgorICBBcHBsaWNhdGlvbiBJbmZvcm1hdGlvbiBmb3JtIGFzIGZvbGxvd3M6CisKKyAgPHVsPgorICA8bGk+U2VydmxldCBXYXIgRmlsZSBvciBEaXJlY3Rvcnk6ICBFbnRlciB0aGUgZnVsbCBwYXRoIHdoZXJlCisgICAgICBzdHJ1dHMtZXhhbXBsZS53YXIgaXMgZm91bmQgb3IgY2xpY2sgb24gQnJvd3NlIHRvIHNlbGVjdAorICAgICAgdGhlIHBhdGguPC9saT4KKyAgPGxpPkpSdW4gU2VydmVyIE5hbWU6ICAkQVBQX1NFUlZFUl9OQU1FPC9saT4KKyAgPGxpPkFwcGxpY2F0aW9uIE5hbWU6ICBTdHJ1dHMgRXhhbXBsZTwvbGk+CisgIDxsaT5BcHBsaWNhdGlvbiBIb3N0czogIEFsbCBIb3N0czwvbGk+CisgIDxsaT5BcHBsaWNhdGlvbiBVUkw6ICAgL3N0cnV0cy1leGFtcGxlPC9saT4KKyAgPGxpPkFwcGxpY2F0aW9uIERlcGxveSBEaXJlY3Rvcnk6ICB3aWxsIGRlZmF1bHQgdG8KKyAgICAgICRBUFBfU0VSVkVSX05BTUUvU3RydXRzIEV4YW1wbGUgKG9yIHRoZSBuYW1lIGFzIHNwZWNpZmllZCBmb3IKKyAgICAgIEFwcGxpY2F0aW9uIE5hbWUpLjwvbGk+CisgIDwvdWw+Cis8L2xpPiAgCisKKzxsaT5PbmNlIHRoZSBmb3JtIGlzIGNvbXBsZXRlLCBjbGljayBvbiB0aGUgRGVwbG95IGJ1dHRvbi48L2xpPgorCis8bGk+SWYgZGVwbG95bWVudCBpcyBzdWNjZXNzZnVsLCByZXN0YXJ0IHRoZSBhcHBsaWNhdGlvbiBzZXJ2ZXIgYnkKKyAgY2xpY2tpbmcgb24gPGNvZGU+JEFQUF9TRVJWRVJfTkFNRTwvY29kZT4gb24gdGhlIGxlZnQgcGFuZS4gQSBwYWdlIHNob3dpbmcgdGhlCisgIGN1cnJlbnQgc2VydmVyIHN0YXR1cyB3aWxsIGJlIHNob3duIG9uIHRoZSByaWdodCBwYW5lLiBDbGljayB0aGUKKyAgUmVzdGFydCBTZXJ2ZXIgYnV0dG9uIHRvIHJlc3RhcnQgdGhlIGFwcGxpY2F0aW9uIHNlcnZlci48L2xpPgorCis8bGk+VGVzdCB0aGUgc2FtcGxlIGFwcGxpY2F0aW9uIGJ5IHVzaW5nIHRoZSBmb2xsb3dpbmcgVVJMIGluIHRoZQorICBicm93c2VyOjxici8+CisgICAgPGNvZGU+aHR0cDovL2hvc3RuYW1lL3N0cnV0cy1leGFtcGxlL2luZGV4LmpzcDwvY29kZT48YnIvPgorICBUaGUgc3RydXRzLWRvY3VtZW50YXRpb24ud2FyIGNhbiBiZSBpbnN0YWxsZWQgdXNpbmcgdGhlIHNhbWUKKyAgcHJvY2VkdXJlLjwvbGk+Cis8L3VsPgorCis8aDQ+SW5zdGFsbGluZyB1bnBhY2tlZCB3ZWIgYXBwbGljYXRpb25zPC9oND4KKworPHA+VGhlIGFib3ZlIHN0ZXBzIHNob3VsZCBiZSBmb2xsb3dlZCBmb3IgYXBwbGljYXRpb25zIGRlcGxveWVkIGFzIDxjb2RlPioud2FyPC9jb2RlPiBmaWxlcy48L3A+CisKKzxwPkZvciB1bnBhY2tlZCB3ZWIgYXBwbGljYXRpb25zLCBjb25maWd1cmF0aW9uIGludm9sdmVzIHRoZSBmb2xsb3dpbmcgc3RlcHM6PC9wPgorCis8dWw+Cis8bGk+RnJvbSB0aGUgSlJ1biBNYW5hZ2VtZW50IENvbnNvbGUsIHNlbGVjdCA8Y29kZT4kQVBQX1NFUlZFUl9OQU1FPC9jb2RlPiAob24gdGhlCisgIGxlZnQgcGFuZSkgYW5kIGNsaWNrIG9uIFdBUiBEZXBsb3ltZW50IChvbiB0aGUgcmlnaHQgcGFuZSkuPC9saT4KKworPGxpPk9uIHRoZSByaWdodCBwYW5lLCBjbGljayBvbiBDcmVhdGUgYW4gQXBwbGljYXRpb24gYW5kIGNvbXBsZXRlIHRoZQorICBXZWIgQXBwbGljYXRpb24gSW5mb3JtYXRpb24gZm9ybSBhcyBmb2xsb3dzOjwvbGk+CisKKzxsaT5KUnVuIFNlcnZlciBOYW1lOiAgJEFQUF9TRVJWRVJfTkFNRQorCisgIDx1bD4KKyAgPGxpPkFwcGxpY2F0aW9uIE5hbWU6ICBteUFwcGxpY2F0aW9uPC9saT4KKyAgPGxpPkFwcGxpY2F0aW9uIEhvc3RzOiAgQWxsIEhvc3RzPC9saT4KKyAgPGxpPkFwcGxpY2F0aW9uIFVSTDogICAvbXlBcHBsaWNhdGlvbjwvbGk+CisgIDxsaT5BcHBsaWNhdGlvbiBEZXBsb3kgRGlyZWN0b3J5OiAgd2lsbCBkZWZhdWx0IHRvPGJyLz4KKyAgICA8Y29kZT4kQVBQX1NFUlZFUl9OQU1FL215QXBwbGljYXRpb248L2NvZGU+PC9saT4KKyAgPC91bD4KKzwvbGk+ICAKKworPGxpPkNsaWNrIG9uIENyZWF0ZSB0byBzdWJtaXQgdGhlIGZvcm0uPC9saT4KKworPGxpPk9uY2UgdGhlIHdlYiBhcHBsaWNhdGlvbiBpcyBjcmVhdGVkLCBpbnN0YWxsIGFuZCBjb25maWd1cmUgdGhlIHN0cnV0cworICBjb21wb25lbnRzIChzdHJ1dHMuamFyLCBzdHJ1dHMqLnRsZCwgZXRjKSBmb3IgdGhlIHdlYiBhcHBsaWNhdGlvbiB1bmRlcgorICA8Y29kZT4kQVBQX1NFUlZFUl9OQU1FL215QXBwbGljYXRpb24vV0VCLUlORjwvY29kZT48L2xpPgorCis8bGk+SW5zdGFsbCB0aGUgcmVtYWluaW5nIGNvbXBvbmVudHMgb2YgdGhlIGFwcGxpY2F0aW9uOiAgLmNsYXNzIGZpbGVzLAorICBKU1AgcGFnZXMsLnByb3BlcnRpZXMgZmlsZXMgZXRjICBhcyByZXF1aXJlZC48L2xpPgorCis8bGk+VG8gY29uZmlndXJlIHRoZSBleHRlbnNpb24gbWFwcGluZyBvZiB0aGUgcmVxdWVzdCBVUkkgKGllICouZG8pIHRvCisgIHRoZSBhY3Rpb24gc2VydmxldCwgZXhwYW5kIDxjb2RlPiRBUFBfU0VSVkVSX05BTUU8L2NvZGU+IG9uIHRoZSBsZWZ0IHBhbmUsIGV4cGFuZAorICB0aGUgV2ViIEFwcGxpY2F0aW9ucyBicmFuY2ggYW5kIGNsaWNrIG9uIG15QXBwbGljYXRpb24uIFRoZSByaWdodCBwYW5lCisgIHdpbGwgZGlzcGxheSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBteUFwcGxpY2F0aW9uLiBDbGljayBvbgorICBTZXJ2bGV0IFVSTCBNYXBwaW5ncy4gQSBsaXN0IG9mIGV4aXN0aW5nIG1hcHBpbmdzIHdpbGwgYmUgc2hvd24uIENsaWNrCisgIHRoZSBFZGl0IGJ1dHRvbiBhbmQgY3JlYXRlIHRoZSBmb2xsb3dpbmcgZW50cnk6CisKKyAgPHVsPgorICA8bGk+VmlydHVhbCBQYXRoL0V4dGVuc2lvbjogICAqLmRvPC9saT4KKyAgPGxpPlNlcnZsZXQgSW52b2tlZDogIGFjdGlvbjwvbGk+CisgIDwvdWw+Cis8L2xpPiAgCisKKzxsaT5DbGljayBvbiB0aGUgVXBkYXRlIGJ1dHRvbiB0byBzYXZlIHRoZSBjaGFuZ2VzLjwvbGk+Cis8bGk+UmVzdGFydCB0aGUgYXBwbGljYXRpb24gc2VydmVyLjwvbGk+Cis8bGk+VGhlIGFwcGxpY2F0aW9uIHNob3VsZCBub3cgYmUgYWNjZXNzaWJsZSBmcm9tIHRoZSBicm93c2VyLjwvbGk+Cis8L3VsPgorCis8cD5UaGUgSlJ1biBhcHBsaWNhdGlvbiBzZXJ2ZXIgd2lsbCBuZWVkIHRvIGJlIHJlc3RhcnRlZCBlYWNoIHRpbWUgb25lIG9mIHRoZQorZm9sbG93aW5nIGNoYW5nZXMgYXJlIG1hZGUgdG8gdGhlIHdlYiBhcHBsaWNhdGlvbjo8L3A+CisKKzx1bD4KKzxsaT48Y29kZT4uY2xhc3M8L2NvZGU+IG9yIDxjb2RlPi5qYXI8L2NvZGU+IGZpbGVzIGFyZSBtb2RpZmllZDwvbGk+Cis8bGk+PGNvZGU+LnByb3BlcnRpZXM8L2NvZGU+IGZpbGVzIGFyZSBtb2RpZmllZDwvbGk+Cis8bGk+PGNvZGU+LnhtbDwvY29kZT4gZmlsZXMgYXJlIG1vZGlmaWVkPC9saT4KKzwvdWw+CisKKzxoND5QYXRjaGluZyB0aGUgc3RydXRzIGV4YW1wbGUgYXBwbGljYXRpb248L2g0PgorCis8cD5BcyBtZW50aW9uZWQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGVzZSBub3RlcywgdGhlIFN0cnV0cyBFeGFtcGxlIEFwcGxpY2F0aW9uCit3aWxsIG5vdCBydW4gdW5kZXIgSlJ1biB3aXRob3V0IG1vZGlmaWNhdGlvbi4gIFRoZSBmb2xsb3dpbmcgY2hhbmdlcyB3aWxsIG5lZWQKK3RvIGJlIG1hZGU6PC9wPgorCis8dWw+Cis8bGk+aW5kZXguanNwLCBsb2dvbi5qc3A6IENoYW5nZSAmbHQ7aHRtbDpodG1sIGxvY2FsZT0idHJ1ZSI+IHRvIDxici8+Jmx0O2h0bWw6aHRtbCBsb2NhbGU9Jmx0OyU9IHRydWUgJT4+PC9saT4KKzxsaT5sb2dvbi5qc3A6IENoYW5nZSAmbHQ7aHRtbDpodG1sIHJlZGlzcGxheT0idHJ1ZSI+IHRvIDxici8+Jmx0O2h0bWw6aHRtbCByZWRpc3BsYXk9Jmx0OyU9IHRydWUgJT4+PC9saT4KKzxsaT5yZWdpc3RyYXRpb24uanNwLCBzdWJzY3JpcHRpb24uanNwOiBDaGFuZ2UgYWxsIGluc3RhbmNlcyBvZiBmaWx0ZXI9InRydWUiIHRvIDxici8+ZmlsdGVyPSZsdDslPSB0cnVlICU+PC9saT4KKzwvdWw+CisgIDxoci8+CisgIDxwPkJhY2sgdG8gPGEgaHJlZj0iaW5zdGFsbGF0aW9uLmh0bWwjQ29udGFpbmVycyI+SW5zdGFsbGF0aW9uPC9hPjwvcD4KKzwvc2VjdGlvbj4KKworPC9ib2R5PgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9pbnN0YWxsYXRpb24tbm92ZWxsLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9pbnN0YWxsYXRpb24tbm92ZWxsLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTg4NWRkCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2luc3RhbGxhdGlvbi1ub3ZlbGwueG1sCkBAIC0wLDAgKzEsMTEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Imluc3RhbGxhdGlvbi1ub3ZlbGwuaHRtbCI+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlRoZSBTdHJ1dHMgRnJhbWV3b3JrIFByb2plY3QgLSBJbnN0YWxsYXRpb24gLSBOb3ZlbGwgRXh0ZU5kIEFwcGxpY2F0aW9uIFNlcnZlcjwvdGl0bGU+CisgIDwvcHJvcGVydGllcz4KKworICA8Ym9keT4KKzxzZWN0aW9uIG5hbWU9IjUuMiBJbnN0YWxsYXRpb24iIGhyZWY9Imluc3RhbGxhdGlvbiIvPgorPHNlY3Rpb24gbmFtZT0iSW5zdGFsbGluZyBTdHJ1dHMgd2l0aCB5b3VyIHNlcnZsZXQgY29udGFpbmVyIiBocmVmPSJDb250YWluZXJzIj4KKworPGg0IGlkPSJvcmlvbiI+Tm92ZWxsIEV4dGVOZCBBcHBsaWNhdGlvbiBTZXJ2ZXIgNC4wPC9oND4KKworPHN0cm9uZz5Vc2luZyB0aGUgRXh0ZU5kIFdvcmtiZW5jaCB0byBkZXBsb3kgYSBXQVIgdG8gdGhlIE5vdmVsbCBFeHRlTmQKK2FwcGxpY2F0aW9uIHNlcnZlcjo8L3N0cm9uZz4KKzx1bD4KKyAgPGxpPlN0YXJ0IHRoZSBOb3ZlbGwgRXh0ZU5kIGFwcGxpY2F0aW9uIHNlcnZlci48L2xpPgorICA8bGk+VXNpbmcgdGhlIEV4dGVOZCBXb3JrYmVuY2gsIGNyZWF0ZSBhIG5ldyBwcm9qZWN0OgorICAgIDxvbD4KKyAgICA8bGk+RmlsZSAmZ3Q7IE5ldyBQcm9qZWN0PC9saT4KKyAgICA8bGk+U2VsZWN0IDxlbT5EZXBsb3ktT25seTwvZW0+IGFuZCBjbGljayA8Y29kZT5PSzwvY29kZT48L2xpPgorICAgIDxsaT5VbmRlciBBcmNoaXZlIEZpbGUgc2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBTdHJ1dHMgV0FSIGZpbGU8L2xpPgorICAgIDxsaT5JbmRpY2F0ZSB0aGUgdHlwZSBvZiBmaWxlIChpLmUuIFdBUiAxLjIpPC9saT4KKyAgICA8bGk+R2l2ZSB0aGUgRGVwbG95LU9ubHkgcHJvamVjdCBhIG5hbWUgKGkuZS4gc3RydXRzLWV4YW1wbGUpPC9saT4KKyAgICA8bGk+R2l2ZSB0aGUgRGVwbG95LU9ubHkgcHJvamVjdCBhIGxvY2F0aW9uCisgICAgICAgIChpLmUuIDxjb2RlPkQ6XFN0cnV0czwvY29kZT4pPC9saT4KKyAgICA8bGk+Q2xpY2sgPGNvZGU+TmV4dDwvY29kZT48L2xpPgorICAgIDxsaT5SZXZpZXcgdGhlIG1hdGVyaWFsIHRvIGJlIHN1cmUgZXZlcnl0aGluZyBpcyBjb3JyZWN0PC9saT4KKyAgICA8bGk+Q2xpY2sgPGNvZGU+RmluaXNoPC9jb2RlPjwvbGk+CisgICAgPC9vbD4KKyAgPC9saT4KKyAgPGxpPlNldHRpbmcgdXAgYSBkZXBsb3ltZW50IHBsYW4gYW5kIHNlcnZlciBwcm9maWxlOgorICAgIDxvbD4KKyAgICA8bGk+UmlnaHQgY2xpY2sgb24gdGhlIHByb2plY3QgaWNvbiB5b3UganVzdCBjcmVhdGVkIGFuZAorICAgICAgICBzZWxlY3QgPGVtPkRlcGxveW1lbnQgUGxhbjwvZW0+PC9saT4KKyAgICA8bGk+U2VsZWN0IDxjb2RlPk9LPC9jb2RlPiB3aGVuIGFza2VkIHRvIGNyZWF0ZSBhIG5ldyBkZXBsb3ltZW50CisgICAgICAgIHBsYW48L2xpPgorICAgIDxsaT5TYXZlIHRoZSBkZXBsb3ltZW50IHBsYW48L2xpPgorICAgIDxsaT5DcmVhdGUgYSBzZXJ2ZXIgcHJvZmlsZTogIFByb2plY3RzICZndDsgRGVwbG95bWVudCBTZXR0aW5nczwvbGk+CisgICAgPGxpPkNsaWNrIG9uIHRoZSBTZXJ2ZXIgUHJvZmlsZXMgdGFiPC9saT4KKyAgICA8bGk+U2VsZWN0IGEgc2VydmVyIHByb2ZpbGUgYW5kIGNsaWNrIDxjb2RlPk9LPC9jb2RlPjwvbGk+CisgICAgPC9vbD4KKyAgPC9saT4KKyAgPGxpPkRlcGxveSB0aGUgcHJvamVjdDoKKyAgICA8b2w+CisgICAgPGxpPlByb2plY3QgJmd0OyBEZXBsb3kgQXJjaGl2ZTwvbGk+CisgICAgPC9vbD4KKyAgPC9saT4KKzwvdWw+CisKKzxzdHJvbmc+RGVwbG95aW5nIGEgV0FSIGZyb20gYSBjb21tYW5kIGxpbmUgdXNpbmcgU2lsdmVyQ21kOjwvc3Ryb25nPgorPHVsPgorICA8bGk+U3RhcnQgdGhlIFNpbHZlclN0cmVhbSBhcHBsaWNhdGlvbiBzZXJ2ZXIuPC9saT4KKyAgPGxpPkNyZWF0ZSBhbiBYTUwgZGVwbG95bWVudCBwbGFuIGZvciB0aGUgPGNvZGU+c3RydXRzLWV4YW1wbGUud2FyPC9jb2RlPgorICAgICAgYXBwbGljYXRpb24uPC9saT4KKyAgPGxpPkNhbGwgdGhlIGZpbGUgPGNvZGU+c3RydXRzLWV4YW1wbGUtZGVwbC1wbGFuLnhtbDwvY29kZT4uICBZb3UKKyAgICAgIGNhbiB1c2UgdGhlIGZvbGxvd2luZyBjb250ZW50cyBmb3IgdGhlIGZpbGU6Cis8cHJlPjwhW0NEQVRBWworPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSB3YXJKYXJPcHRpb25zIFBVQkxJQworICAiLS8vU2lsdmVyc3RyZWFtIFNvZnR3YXJlLCBJbmMuLy9EVEQgSjJFRSBXQVIgRGVwbG95bWVudCBQbGFuLy9FTiIKKyAgImRlcGxveV93YXIuZHRkIj4KKzx3YXJKYXJPcHRpb25zPgorICA8d2FySmFyPgorICAgIDx3YXJKYXJOYW1lPnN0cnV0cy1leGFtcGxlLndhcjwvd2FySmFyTmFtZT4KKyAgICA8aXNFbmFibGVkPnRydWU8L2lzRW5hYmxlZD4KKyAgICA8dXJscz4KKyAgICAgIDxlbD5zdHJ1dHMtZXhhbXBsZTwvZWw+CisgICAgPC91cmxzPgorICA8L3dhckphcj4KKzwvd2FySmFyT3B0aW9ucz4KK11dPjwvcHJlPgorICA8L2xpPgorICA8bGk+Q3JlYXRlIGFuIFhNTCBkZXBsb3ltZW50IHBsYW4gZm9yIHRoZQorICAgICAgPGNvZGU+c3RydXRzLWRvY3VtZW50YXRpb24ud2FyPC9jb2RlPiBhcHBsaWNhdGlvbi48L2xpPgorICA8bGk+Q2FsbCB0aGUgZmlsZSA8Y29kZT5zdHJ1dHMtZG9jdW1lbnRhdGlvbi1kZXBsLXBsYW4ueG1sPC9jb2RlPi4gIFlvdQorICAgICAgY2FuIHVzZSB0aGUgZm9sbG93aW5nIGNvbnRlbnRzIGZvciB0aGUgZmlsZToKKzxwcmU+PCFbQ0RBVEFbCis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHdhckphck9wdGlvbnMgUFVCTElDCisgICItLy9TaWx2ZXJzdHJlYW0gU29mdHdhcmUsIEluYy4vL0RURCBKMkVFIFdBUiBEZXBsb3ltZW50IFBsYW4vL0VOIgorICAiZGVwbG95X3dhci5kdGQiPgorPHdhckphck9wdGlvbnM+CisgIDx3YXJKYXI+CisgICAgPHdhckphck5hbWU+c3RydXRzLWRvY3VtZW50YXRpb24ud2FyPC93YXJKYXJOYW1lPgorICAgIDxpc0VuYWJsZWQ+dHJ1ZTwvaXNFbmFibGVkPgorICAgIDx1cmxzPgorICAgICAgPGVsPnN0cnV0cy1kb2N1bWVudGF0aW9uPC9lbD4KKyAgICA8L3VybHM+CisgIDwvd2FySmFyPgorPC93YXJKYXJPcHRpb25zPgorXV0+PC9wcmU+CisgIDwvbGk+CisgIDxsaT5SdW4gdGhlIGZvbGxvd2luZyAiU2lsdmVyQ21kIERlcGxveVdBUiIgY29tbWFuZHMgdG8gZGVwbG95IHRoZQorICAgICAgYXBwbGljYXRpb25zLiAgWW91IGNhbiBjaGFuZ2UgJ2xvY2FsaG9zdCcgdG8gd2hhdGV2ZXIgc2VydmVyIHlvdQorICAgICAgYXJlIGRlcGxveWluZyB0by4gIFlvdSBjYW4gY2hhbmdlICdTaWx2ZXJtYXN0ZXInIHRvIHdoYXRldmVyCisgICAgICBkYXRhYmFzZSB5b3UgYXJlIGRlcGxveWluZyB0by4KKzxwcmU+PCFbQ0RBVEFbCitTaWx2ZXJDbWQgRGVwbG95V2FyIGxvY2FsaG9zdCBTaWx2ZXJtYXN0ZXIgc3RydXRzLWV4YW1wbGUud2FyCisgIC1mIHN0cnV0cy1leGFtcGxlLWRlcGwtcGxhbi54bWwKK1NpbHZlckNtZCBEZXBsb3lXYXIgbG9jYWxob3N0IFNpbHZlcm1hc3RlciBzdHJ1dHMtZG9jdW1lbnRhdGlvbi53YXIKKyAgLWYgc3RydXRzLWRvY3VtZW50YXRpb24tZGVwbC1wbGFuLnhtbAorXV0+PC9wcmU+CisgIDwvbGk+Cis8L3VsPgorCisgIDxoci8+CisgIDxwPkJhY2sgdG8gPGEgaHJlZj0iaW5zdGFsbGF0aW9uLmh0bWwjQ29udGFpbmVycyI+SW5zdGFsbGF0aW9uPC9hPjwvcD4KKzwvc2VjdGlvbj4KKworPC9ib2R5PgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9pbnN0YWxsYXRpb24tb2FzLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9pbnN0YWxsYXRpb24tb2FzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmE1ZTE2Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2luc3RhbGxhdGlvbi1vYXMueG1sCkBAIC0wLDAgKzEsODYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0iaW5zdGFsbGF0aW9uLW9hcy5odG1sIj4KKworICA8cHJvcGVydGllcz4KKyAgICA8dGl0bGU+VGhlIFN0cnV0cyBGcmFtZXdvcmsgUHJvamVjdCAtIEluc3RhbGxhdGlvbiAtIE9yaW9uIEFwcGxpY2F0aW9uIFNlcnZlcjwvdGl0bGU+CisgIDwvcHJvcGVydGllcz4KKworICA8Ym9keT4KKzxzZWN0aW9uIG5hbWU9IjUuMiBJbnN0YWxsYXRpb24iIGhyZWY9Imluc3RhbGxhdGlvbiIvPgorPHNlY3Rpb24gbmFtZT0iSW5zdGFsbGluZyBTdHJ1dHMgd2l0aCB5b3VyIHNlcnZsZXQgY29udGFpbmVyIiBocmVmPSJDb250YWluZXJzIj4KKworPGg0IGlkPSJvcmlvbiI+T3Jpb24gQXBwbGljYXRpb24gU2VydmVyPC9oND4KKworPHA+SW4gdGhlIHN0ZXBzIGJlbG93LCA8Y29kZT4kT1JJT05fSE9NRTwvY29kZT4gcmVmZXJzIHRvIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2gKKyAgeW91IGhhdmUgaW5zdGFsbGVkIE9yaW9uLCBhbmQgPGNvZGU+JFNUUlVUU19IT01FPC9jb2RlPiBpcyB0aGUgZGlyZWN0b3J5IGluCisgIHdoaWNoIHlvdSB1bnBhY2tlZCB0aGUgU3RydXRzIGJpbmFyeSBkaXN0cmlidXRpb24uPC9wPgorCis8dWw+CisgIDxsaT5Nb2RpZnkgdGhlIGZpbGUgPGNvZGU+JE9SSU9OX0hPTUUvY29uZmlnL2FwcGxpY2F0aW9uLnhtbDwvY29kZT4gdG8gZGVmaW5lCisgICAgdGhlIHR3byBuZXcgYXBwbGljYXRpb25zLCBieSBhZGRpbmcgdGhlIGZvbGxvd2luZyBkZWNsYXJhdGlvbnMsIGltbWVkaWF0ZWx5CisgICAgZm9sbG93aW5nIHRoZSA8Y29kZT53ZWItbW9kdWxlPC9jb2RlPiBkaXJlY3RpdmUgZm9yIHRoZSBkZWZhdWx0IHdlYiBhcHBsaWNhdGlvbjo8L2xpPgorPC91bD4KKworPHByZT4mbHQ7d2ViLW1vZHVsZSBpZD0ic3RydXRzRG9jIgorcGF0aD0iJFNUUlVUU19IT01FL3dlYmFwcHMvc3RydXRzLWRvY3VtZW50YXRpb24ud2FyIi8+CismbHQ7d2ViLW1vZHVsZSBpZD0ic3RydXRzRXhhbXBsZSIKK3BhdGg9IiRTVFJVVFNfSE9NRS93ZWJhcHBzL3N0cnV0cy1leGFtcGxlLndhciIvPgorPC9wcmU+CisKKzx1bD4KKyAgPGxpPk1vZGlmeSB0aGUgZmlsZSA8Y29kZT4kT1JJT05fSE9NRS9jb25maWcvZGVmYXVsdC13ZWItc2l0ZS54bWw8L2NvZGU+IChvcgorICAgIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIGFueSBvdGhlciBPcmlvbiB3ZWIgc2l0ZSkgdG8gaW5jbHVkZSB0aGUgZm9sbG93aW5nCisgICAgZGVjbGFyYXRpb25zLCBhZnRlciB0aGUgZGVjbGFyYXRpb24gZm9yIHRoZSAmbHQ7ZGVmYXVsdC13ZWItYXBwPiBpZiBhbnk6PC9saT4KKzwvdWw+CisKKzxwcmU+Jmx0O3dlYi1hcHAgYXBwbGljYXRpb249ImRlZmF1bHQiIG5hbWU9InN0cnV0c0RvYyIKKyAgcm9vdD0iL3N0cnV0cy1kb2N1bWVudGF0aW9uIi8+CismbHQ7d2ViLWFwcCBhcHBsaWNhdGlvbj0iZGVmYXVsdCIgbmFtZT0ic3RydXRzRXhhbXBsZSIKKyAgcm9vdD0iL3N0cnV0cy1leGFtcGxlIi8+Cis8L3ByZT4KKworPHVsPgorICA8bGk+QWZ0ZXIgeW91IHN0YXJ0IE9yaW9uLCB5b3Ugc2hvdWxkIG5vdyBiZSBhYmxlIHRvIGFjY2VzcyB0aGVzZSBhcHBsaWNhdGlvbnMKKyAgICAoYXNzdW1pbmcgeW91IGhhdmVuJ3QgY2hhbmdlZCB0aGUgcG9ydCBudW1iZXIgZnJvbSB0aGUgZGVmYXVsdCBvZiA4MCkgYXQ6PC9saT4KKzwvdWw+CisKKzxwcmU+aHR0cDovL2xvY2FsaG9zdC9zdHJ1dHMtZG9jdW1lbnRhdGlvbgoraHR0cDovL2xvY2FsaG9zdC9zdHJ1dHMtZXhhbXBsZQorPC9wcmU+CisKKzx1bD4KKyAgPGxpPlZlcnNpb25zIG9mIE9yaW9uIHVwIHRvIGF0IGxlYXN0IDEuMC4zIGhhdmUgYSBidWcgcmVsYXRlZCB0byBTZXJ2bGV0Q29udGV4dC5nZXRSZXNvdXJjZSgpCisgICAgY2FsbHMgdGhhdCBwcmV2ZW50IHRoZSBTdHJ1dHMgZXhhbXBsZSBhcHBsaWNhdGlvbiBmcm9tIHdvcmtpbmcgb3V0IG9mIHRoZQorICAgIGJveC4gVGhpcyBtYW5pZmVzdHMgaXRzZWxmIGFzIGEgSlNQIGVycm9yIHdoZW4geW91IHRyeSB0byBhY2Nlc3MgdGhlIGV4YW1wbGUKKyAgICBhcHBsaWNhdGlvbiwgd2l0aCB0aGUgZm9sbG93aW5nIG1lc3NhZ2U6PGJyLz4KKyAgICA8Y29kZT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb246IE1pc3NpbmcgcmVzb3VyY2VzIGF0dHJpYnV0ZW9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5NRVNTQUdFPC9jb2RlPjxici8+CisgICAgZm9sbG93ZWQgYnkgYW4gZXJyb3IgdHJhY2ViYWNrLiBUaGVyZSB3aWxsIGFsc28gYmUgYW4gaW5pdGlhbGl6YXRpb24gZXJyb3IKKyAgICBtZXNzYWdlIGluIHRoZSA8Y29kZT5PUklPTl9IT01FL2xvZy9nbG9iYWwtYXBwbGljYXRpb24ubG9nPC9jb2RlPiBsb2cgZmlsZS4KKyAgICBUbyB3b3JrIGFyb3VuZCB0aGlzIHByb2JsZW0sIHlvdSBjYW4gdGFrZSB0aGUgZm9sbG93aW5nIHN0ZXBzOgorICA8dWw+CisgICAgPGxpPkdvIHRvIHRoZSA8Y29kZT4kU1RSVVRTX0hPTUUvd2ViYXBwczwvY29kZT4gZGlyZWN0b3J5LCB3aGVyZSB5b3Ugd2lsbAorICAgICAgbm90ZSB0aGF0IE9yaW9uIGhhcyBhdXRvbWF0aWNhbGx5IGV4cGFuZGVkIGVhY2ggd2ViIGFwcGxpY2F0aW9uIGludG8gYW4KKyAgICAgIHVucGFja2VkIGRpcmVjdG9yeSBzdHJ1Y3R1cmUuPC9saT4KKyAgICA8bGk+R28gdG8gdGhlIDxjb2RlPiRTVFJVVFNfSE9NRS93ZWJhcHBzL3N0cnV0cy1leGFtcGxlL1dFQi1JTkY8L2NvZGU+IGRpcmVjdG9yeSwKKyAgICAgIGFuZCBjb3B5IHRoZSBmaWxlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPiBvbmUgZGlyZWN0b3J5IHVwICh0aGF0CisgICAgICBpcywgaW50byA8Y29kZT4kU1RSVVRTX0hPTUUvd2ViYXBwcy9zdHJ1dHMtZXhhbXBsZTwvY29kZT4uPC9saT4KKyAgICA8bGk+TW9kaWZ5IHRoZSA8Y29kZT4kU1RSVVRTX0hPTUUvd2ViYXBwcy9zdHJ1dHMtZXhhbXBsZS9XRUItSU5GL3dlYi54bTwvY29kZT4KKyAgICAgIGZpbGUsIGNoYW5naW5nIHRoZSB2YWx1ZSBvZiB0aGUgImNvbmZpZyIgaW5pdGlhbGl6YXRpb24gcGFyYW1ldGVyIChmb3IgdGhlCisgICAgICBhY3Rpb24gc2VydmxldCkgZnJvbSA8Y29kZT4vV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4gdG8gPGNvZGU+L2FjdGlvbi54bWw8L2NvZGU+LjwvbGk+CisgICAgPGxpPlJlc3RhcnQgT3Jpb24sIGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gYWNjZXNzIHRoZSBleGFtcGxlIGFwcGxpY2F0aW9uLjwvbGk+CisgICAgPGxpPk5vdGUgdGhhdCB0aGlzIHdvcmthcm91bmQgaGFzIGEgbmVnYXRpdmUgc2VjdXJpdHktcmVsYXRlZCBzaWRlIGVmZmVjdDoKKyAgICAgIHlvdXIgPGNvZGU+c3RydXRzLWNvbmlmaWcueG1sPC9jb2RlPiBmaWxlIGNhbiBub3cgYmUgcmV0cmlldmVkIGJ5IHJlbW90ZQorICAgICAgY2xpZW50cyBhdCB0aGUgZm9sbG93aW5nIFVSTDo8YnIvPgorICAgICAgPGNvZGU+aHR0cDovL2xvY2FsaG9zdC9zdHJ1dHMtZXhhbXBsZS9zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT48YnIvPgorICAgICAgVGhlcmVmb3JlLCB5b3Ugc2hvdWxkIGJlIHN1cmUgeW91IGRvIG5vdCBzdG9yZSBzZW5zaXRpdmUgaW5mb3JtYXRpb24gKHN1Y2gKKyAgICAgIGFzIGRhdGFiYXNlIHBhc3N3b3JkcykgaW4gdGhpcyBmaWxlLiA8L2xpPgorICA8L3VsPgorICA8L2xpPgorPC91bD4KKworICA8aHIvPgorICA8cD5CYWNrIHRvIDxhIGhyZWY9Imluc3RhbGxhdGlvbi5odG1sI0NvbnRhaW5lcnMiPkluc3RhbGxhdGlvbjwvYT48L3A+Cis8L3NlY3Rpb24+CisKKzwvYm9keT4KKzwvZG9jdW1lbnQ+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLXNhcy54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLXNhcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDUyZWU0ZAotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9pbnN0YWxsYXRpb24tc2FzLnhtbApAQCAtMCwwICsxLDgwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Imluc3RhbGxhdGlvbi1zYXMuaHRtbCI+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlRoZSBTdHJ1dHMgRnJhbWV3b3JrIFByb2plY3QgLSBJbnN0YWxsYXRpb24gLSBTaWx2ZXJzdHJlYW0gQXBwbGljYXRpb24gU2VydmVyPC90aXRsZT4KKyAgPC9wcm9wZXJ0aWVzPgorCisgIDxib2R5PgorPHNlY3Rpb24gbmFtZT0iNS4yIEluc3RhbGxhdGlvbiIgaHJlZj0iaW5zdGFsbGF0aW9uIi8+Cis8c2VjdGlvbiBuYW1lPSJJbnN0YWxsaW5nIFN0cnV0cyB3aXRoIHlvdXIgc2VydmxldCBjb250YWluZXIiIGhyZWY9IkNvbnRhaW5lcnMiPgorCis8aDQgaWQ9InNhcyI+U2lsdmVyU3RyZWFtIEFwcGxpY2F0aW9uIFNlcnZlciAzLjcuMSBhbmQgbGF0ZXI8L2g0PgorCis8dWw+CisgIDxsaT5TdGFydCB0aGUgU2lsdmVyU3RyZWFtIGFwcGxpY2F0aW9uIHNlcnZlci48L2xpPgorICA8bGk+Q3JlYXRlIGFuIFhNTCBkZXBsb3ltZW50IHBsYW4gZm9yIHRoZSAmcXVvdDs8Y29kZT5zdHJ1dHMtZXhhbXBsZS53YXI8L2NvZGU+JnF1b3Q7CisgICAgICBhcHBsaWNhdGlvbi4gQ2FsbCB0aGUgZmlsZSAmcXVvdDs8Y29kZT5zdHJ1dHMtZXhhbXBsZS1kZXBsLXBsYW4ueG1sPC9jb2RlPiZxdW90Oy4KKyAgICAgIFlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgY29udGVudHMgZm9yIHRoZSBmaWxlPC9saT4KKzwvdWw+CisKKzxoci8+CisKKzxwPi0tLS0tIGN1dCBoZXJlIC0tLS0tPC9wPgorCis8cHJlPgorJmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDs/Jmd0OworJmx0OyFET0NUWVBFIHdhckphck9wdGlvbnMgUFVCTElDCisgICZxdW90Oy0vL1NpbHZlclN0cmVhbSBTb2Z0d2FyZSwgSW5jLi8vRFREIEoyRUUgV0FSIERlcGxveW1lbnQgUGxhbi8vRU4mcXVvdDsKKyAgJnF1b3Q7ZGVwbG95X3dhci5kdGQmcXVvdDsmZ3Q7CismbHQ7d2FySmFyT3B0aW9ucyZndDsKKyZsdDt3YXJKYXImZ3Q7CismbHQ7d2FySmFyTmFtZSZndDtzdHJ1dHMtZXhhbXBsZS53YXImbHQ7L3dhckphck5hbWUmZ3Q7CismbHQ7aXNFbmFibGVkJmd0O3RydWUmbHQ7L2lzRW5hYmxlZCZndDsKKyZsdDt1cmxzJmd0OyZsdDtlbCZndDtzdHJ1dHMtZXhhbXBsZSZsdDsvZWwmZ3Q7Jmx0Oy91cmxzJmd0OworJmx0Oy93YXJKYXImZ3Q7CismbHQ7L3dhckphck9wdGlvbnMmZ3Q7Cis8L3ByZT4KKworPHA+LS0tLS0gY3V0IGhlcmUgLS0tLS08L3A+CisKKzxoci8+CisKKzxwPkNyZWF0ZSBhbiBYTUwgZGVwbG95bWVudCBwbGFuIGZvciB0aGUgJnF1b3Q7PGNvZGU+c3RydXRzLWRvY3VtZW50YXRpb24ud2FyPC9jb2RlPiZxdW90OworICAgIGFwcGxpY2F0aW9uLiBDYWxsIHRoZSBmaWxlICZxdW90O3N0cnV0cy1kb2N1bWVudGF0aW9uLWRlcGwtcGxhbi54bWwmcXVvdDsuCisgICAgWW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBjb250ZW50cyBmb3IgdGhlIGZpbGU6PC9wPgorCis8aHIvPgorPHA+LS0tLS0gY3V0IGhlcmUgLS0tLS08L3A+CisKKzxwcmU+CismbHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90OyBlbmNvZGluZz0mcXVvdDtVVEYtOCZxdW90Oz8mZ3Q7CismbHQ7IURPQ1RZUEUgd2FySmFyT3B0aW9ucyBQVUJMSUMKKyAgJnF1b3Q7LS8vU2lsdmVyU3RyZWFtIFNvZnR3YXJlLCBJbmMuLy9EVEQgSjJFRSBXQVIgRGVwbG95bWVudCBQbGFuLy9FTiZxdW90OworICAmcXVvdDtkZXBsb3lfd2FyLmR0ZCZxdW90OyZndDsKKyZsdDt3YXJKYXJPcHRpb25zJmd0OworJmx0O3dhckphciZndDsKKyZsdDt3YXJKYXJOYW1lJmd0O3N0cnV0cy1kb2N1bWVudGF0aW9uLndhciZsdDsvd2FySmFyTmFtZSZndDsKKyZsdDtpc0VuYWJsZWQmZ3Q7dHJ1ZSZsdDsvaXNFbmFibGVkJmd0OworJmx0O3VybHMmZ3Q7Jmx0O2VsJmd0O3N0cnV0cy1kb2N1bWVudGF0aW9uJmx0Oy9lbCZndDsmbHQ7L3VybHMmZ3Q7CismbHQ7L3dhckphciZndDsKKyZsdDsvd2FySmFyT3B0aW9ucyZndDsKKzwvcHJlPgorCis8cD4tLS0tLSBjdXQgaGVyZSAtLS0tLTwvcD4KKzxoci8+CisKKzxwPlJ1biB0aGUgZm9sbG93aW5nICZxdW90Ozxjb2RlPlNpbHZlckNtZCBEZXBsb3lXQVI8L2NvZGU+JnF1b3Q7IGNvbW1hbmRzIHRvCisgICBkZXBsb3kgdGhlIGFwcGxpY2F0aW9ucy4gWW91IGNhbiBjaGFuZ2UgJ2xvY2FsaG9zdCcgdG8gd2hhdGV2ZXIgc2VydmVyIHlvdQorICAgYXJlIGRlcGxveWluZyB0by4gWW91IGNhbiBjaGFuZ2UgJ1NpbHZlcm1hc3RlcicgdG8gd2hhdGV2ZXIKKyAgIGRhdGFiYXNlIHlvdSBhcmUgZGVwbG95aW5nIHRvLjwvcD4KKyAgIDx1bD4KKyAgICAgPGxpPlNpbHZlckNtZCBEZXBsb3lXYXIgbG9jYWxob3N0IFNpbHZlcm1hc3RlciBzdHJ1dHMtZXhhbXBsZS53YXIgLWYgc3RydXRzLWV4YW1wbGUtZGVwbC1wbGFuLnhtbDwvbGk+CisgICAgIDxsaT5TaWx2ZXJDbWQgRGVwbG95V2FyIGxvY2FsaG9zdCBTaWx2ZXJtYXN0ZXIgc3RydXRzLWRvY3VtZW50YXRpb24ud2FyIC1mIHN0cnV0cy1kb2N1bWVudGF0aW9uLWRlcGwtcGxhbi54bWw8L2xpPgorICAgPC91bD4KKyAgPGhyLz4KKyAgPHA+QmFjayB0byA8YSBocmVmPSJpbnN0YWxsYXRpb24uaHRtbCNDb250YWluZXJzIj5JbnN0YWxsYXRpb248L2E+PC9wPgorPC9zZWN0aW9uPgorCis8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2luc3RhbGxhdGlvbi10Yy54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLXRjLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjQ4OWUwCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2luc3RhbGxhdGlvbi10Yy54bWwKQEAgLTAsMCArMSw3NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSJpbnN0YWxsYXRpb24tdGMuaHRtbCI+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlRoZSBTdHJ1dHMgRnJhbWV3b3JrIFByb2plY3QgLSBJbnN0YWxsYXRpb24gLSBUb21jYXQgd2l0aCBBcGFjaGU8L3RpdGxlPgorICA8L3Byb3BlcnRpZXM+CisKKyAgPGJvZHk+Cis8c2VjdGlvbiBuYW1lPSI1LjIgSW5zdGFsbGF0aW9uIiBocmVmPSJpbnN0YWxsYXRpb24iLz4KKzxzZWN0aW9uIG5hbWU9Ikluc3RhbGxpbmcgU3RydXRzIHdpdGggeW91ciBzZXJ2bGV0IGNvbnRhaW5lciIgaHJlZj0iQ29udGFpbmVycyI+Cis8aDQgaWQ9InRjMzIxIj5Ub21jYXQgMy4yLjEgV2l0aCBBcGFjaGU8L2g0PgorPHA+Tm90ZSB0aGF0IHRoZSBpbnN0cnVjdGlvbnMgZm9yIFRvbWNhdCA0IHdpbGwgYmUgZGlmZmVyZW50IHRoYW4gdGhvc2UgZm9yIFRvbWNhdCAzLAorYnV0IHRoZSBUb21jYXQgNC4wIHdlYiBjb25uZWN0b3IgaXMgc3RpbGwgdW5kZXIgZGV2ZWxvcG1lbnQuIFZlcnNpb25zIG9mIFRvbWNhdCBwcmlvcgordG8gMy4yLjEgYXJlIG5vdCByZWNvbW1lbmQgZm9yIHVzZSB3aXRoIFN0cnV0cy48L3A+Cis8dWw+CisgIDxsaT5UaGVzZSBpbnN0cnVjdGlvbnMgYXNzdW1lIHlvdSBoYXZlIHN1Y2Nlc3NmdWxseSBpbnRlZ3JhdGVkIFRvbWNhdCB3aXRoIEFwYWNoZQorICAgIGFjY29yZGluZyB0byB0aGUgVG9tY2F0IGRvY3VtZW50YXRpb24uPC9saT4KKyAgPGxpPkNvcHkgInN0cnV0cy1kb2N1bWVudGF0aW9uLndhciIgYW5kICJzdHJ1dHMtZXhhbXBsZS53YXIiIHRvIHlvdXIgJFRPTUNBVF9IT01FL3dlYmFwcHMKKyAgICBkaXJlY3Rvcnk8L2xpPgorICA8bGk+UmVzdGFydCBUb21jYXQgaWYgaXQgaXMgYWxyZWFkeSBydW5uaW5nPC9saT4KKyAgPGxpPlRvbWNhdCB3aWxsIGdlbmVyYXRlIGEgZmlsZSAiJFRPTUNBVF9IT01FL2NvbmYvdG9tY2F0LWFwYWNoZS5jb25mIiB0aGF0CisgICAgd2lsbCBiZSB1c2VkIGJ5IEFwYWNoZS4gVGhpcyBmaWxlIGlzIHJlZ2VuZXJhdGVkIGV2ZXJ5IHRpbWUgeW91IHN0YXJ0IFRvbWNhdCwKKyAgICBzbyBjb3B5IHRoaXMgZmlsZSB0byBhIHNhZmUgcGxhY2UgKHN1Y2ggYXMgeW91ciBBcGFjaGUgY29uZmlndXJhdGlvbiBkaXJlY3Rvcnk7CisgICAgb24gVW5peCBzeXN0ZW1zIHRoaXMgaXMgdXN1YWxseSA8Y29kZT4vdXNyL2xvY2FsL2FwYWNoZS9jb25mPC9jb2RlPi48L2xpPgorICA8bGk+SWYgeW91IGFyZSBydW5uaW5nIFRvbWNhdCAzLjEsIFRvbWNhdCB3aWxsIG5vdCBoYXZlIGdlbmVyYXRlZCB0aGUgZW50cmllcworICAgIGZvciB5b3VyIG5ldyBhcHBsaWNhdGlvbnMuIEFkZCB0aGUgZm9sbG93aW5nIGxpbmVzIHRvIHRoZSA8Y29kZT50b21jYXQtYXBhY2hlLmNvbmY8L2NvZGU+CisgICAgZmlsZSB0aGF0IHlvdSBoYXZlIHNhdmVkLCByZXBsYWNpbmcgJFRPTUNBVF9IT01FIHdpdGggdGhlIHBhdGggdG8geW91ciBUb21jYXQKKyAgICBob21lIGRpcmVjdG9yeTo8L2xpPgorPC91bD4KKzxwcmU+CitBbGlhcyAvc3RydXRzLWRvY3VtZW50YXRpb24gIiRUT01DQVRfSE9NRS93ZWJhcHBzL3N0cnV0cy1kb2N1bWVudGF0aW9uCisgICZsdDtEaXJlY3RvcnkgIiRUT01DQVRfSE9NRS93ZWJhcHBzL3N0cnV0cy1kb2N1bWVudGF0aW9uPgorICAgIE9wdGlvbnMgSW5kZXhlcyBGb2xsb3dTeW1MaW5rcworICAmbHQ7L0RpcmVjdG9yeT4KKyAgICBBcEpTZXJ2TW91bnQgL3N0cnV0cy1kb2N1bWVudGF0aW9uL3NlcnZsZXQgL3N0cnV0cy1kb2N1bWVudGF0aW9uCisgICZsdDtMb2NhdGlvbiAiL3N0cnV0cy1kb2N1bWVudGF0aW9uL1dFQi1JTkYvIj4KKyAgICBBbGxvd092ZXJyaWRlIE5vbmUKKyAgICBkZW55IGZyb20gYWxsCisgICZsdDsvTG9jYXRpb24+CitBbGlhcyAvc3RydXRzLWV4YW1wbGUgIiRUT01DQVRfSE9NRS93ZWJhcHBzL3N0cnV0cy1leGFtcGxlIgorICAmbHQ7RGlyZWN0b3J5ICIkVE9NQ0FUX0hPTUUvd2ViYXBwcy9zdHJ1dHMtZXhhbXBsZT4KKyAgICBPcHRpb25zIEluZGV4ZXMgRm9sbG93U3ltTGlua3MKKyAgJmx0Oy9EaXJlY3Rvcnk+CisgICAgQXBKU2Vydk1vdW50IC9zdHJ1dHMtZXhhbXBsZS9zZXJ2bGV0IC9zdHJ1dHMtZXhhbXBsZQorICAmbHQ7TG9jYXRpb24gIi9zdHJ1dHMtZXhhbXBsZS9XRUItSU5GLyI+CisgICAgQWxsb3dPdmVycmlkZSBOb25lCisgICAgZGVueSBmcm9tIGFsbAorICAmbHQ7L0xvY2F0aW9uPgorPC9wcmU+Cis8dWw+CisgIDxsaT5UaGUgZ2VuZXJhdGVkIGZpbGUgYWJvdmUgZG9lcyBub3Qga25vdyBhbnl0aGluZworICAgIGFib3V0IGV4dGVuc2lvbiBtYXBwaW5ncyBkZWZpbmVkIGluIGEgd2ViLnhtbCBmaWxlLCBzbyB0aGUgIiouZG8iIFVSSXMgdGhhdAorICAgIGdvIHRvIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgd2lsbCBub3QgYmUgcmVjb2duaXplZC4gVG8gZml4IHRoaXMsIGFkZCB0aGUKKyAgICBmb2xsb3dpbmcgbGluZSB0byB0aGUgc2F2ZWQgdmVyc2lvbiBvZiAidG9tY2F0LWFwYWNoZS5jb25mIiwgYWZ0ZXIgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICBsaW5lIGZvciB0aGUgLmpzcCBleHRlbnNpb246PGJyLz4KKyAgICA8Y29kZT5BZGRIYW5kbGVyIGpzZXJ2LXNlcnZsZXQgLmRvPC9jb2RlPjwvbGk+CisgIDxsaT5FbnN1cmUgdGhhdCB0aGUgc2F2ZWQgdmVyc2lvbiBvZiAidG9tY2F0LWFwYWNoZS5jb25mIiBpcyByZWZlcmVuY2VkIGluIHlvdXIKKyAgICBBcGFjaGUgImh0dHBkLmNvbmYiIGNvbmZpZ3VyYXRpb24gZmlsZS4gQSB0eXBpY2FsIHVzZSB3b3VsZCBoYXZlIHRoZSBmb2xsb3dpbmcKKyAgICBsaW5lIGF0IHRoZSBib3R0b20gb2YgImh0dHBkLmNvbmYiOjxici8+CisgICAgPGNvZGU+SW5jbHVkZSAvdXNyL2xvY2FsL2FwYWNoZS9jb25mL3RvbWNhdC1hcGFjaGUuY29uZjwvY29kZT48L2xpPgorICA8bGk+SW4gb3JkZXIgdG8gcmVjb2duaXplICJpbmRleC5qc3AiIGFzIGEgZGVmYXVsdCBwYWdlIGZvciB3ZWIgYXBwbGljYXRpb25zLAorICAgIHNlYXJjaCBpbiB5b3VyICJodHRwZC5jb25mIiBmb3IgYSAiRGlyZWN0b3J5SW5kZXgiIGRpcmVjdGl2ZS4gSWYgeW91IGhhdmUKKyAgICBvbmUsIGFkZCAiaW5kZXguanNwIiB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LCBzbyB0aGF0IGl0IG1pZ2h0IGxvb2sgbGlrZSB0aGlzOjxici8+CisgICAgPGNvZGU+RGlyZWN0b3J5SW5kZXggaW5kZXguaHRtbCBpbmRleC5qc3A8L2NvZGU+PGJyLz4KKyAgICBJZiB5b3UgZG8gbm90IGhhdmUgc3VjaCBhbiBlbnRyeSwgYWRkIG9uZSBsaWtlIHRoaXM6PGJyLz4KKyAgICA8Y29kZT5EaXJlY3RvcnlJbmRleCBpbmRleC5qc3A8L2NvZGU+PC9saT4KKyAgPGxpPlJlc3RhcnQgQXBhY2hlIHRvIG1ha2UgaXQgYXdhcmUgb2YgdGhlIG5ldyBhcHBsaWNhdGlvbnMuIFlvdSBzaG91bGQgbm93CisgICAgYmUgYWJsZSB0byBhY2Nlc3MgdGhlIGFwcGxpY2F0aW9ucyBmcm9tIGEgYnJvd3NlciBsaWtlIHRoaXM6PGJyLz4KKyAgICA8Y29kZT5odHRwOi8vbG9jYWxob3N0L3N0cnV0cy1kb2N1bWVudGF0aW9uPGJyLz4KKyAgICBodHRwOi8vbG9jYWxob3N0L3N0cnV0cy1leGFtcGxlPC9jb2RlPjwvbGk+Cis8L3VsPgorICA8aHIvPgorICA8cD5CYWNrIHRvIDxhIGhyZWY9Imluc3RhbGxhdGlvbi5odG1sI0NvbnRhaW5lcnMiPkluc3RhbGxhdGlvbjwvYT48L3A+Cis8L3NlY3Rpb24+CisKKzwvYm9keT4KKzwvZG9jdW1lbnQ+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLXViczcyLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9pbnN0YWxsYXRpb24tdWJzNzIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkYWM5ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLXViczcyLnhtbApAQCAtMCwwICsxLDUzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Imluc3RhbGxhdGlvbi11YnM3Mi5odG1sIj4KKworICA8cHJvcGVydGllcz4KKyAgICA8dGl0bGU+VGhlIFN0cnV0cyBGcmFtZXdvcmsgUHJvamVjdCAtIEluc3RhbGxhdGlvbiAtIEJsdWVzdG9uZSBVQlMgNy4yPC90aXRsZT4KKyAgPC9wcm9wZXJ0aWVzPgorCisgIDxib2R5PgorPHNlY3Rpb24gbmFtZT0iNS4yIEluc3RhbGxhdGlvbiIgaHJlZj0iaW5zdGFsbGF0aW9uIi8+Cis8c2VjdGlvbiBuYW1lPSJJbnN0YWxsaW5nIFN0cnV0cyB3aXRoIHlvdXIgc2VydmxldCBjb250YWluZXIiIGhyZWY9IkNvbnRhaW5lcnMiPgorPGg0IGlkPSJibHVlc3RvbmUiPkJsdWVzdG9uZSBVbml2ZXJzYWwgQnVzaW5lc3MgU2VydmVyIDcuMjwvaDQ+CisKKzx1bD4KKyAgPGxpPllvdSBuZWVkIFVCUyB2ZXJzaW9uIDcuMiB0byBydW4gd2FyIGZpbGUgYXBwbGljYXRpb25zLiBUaGUgVUJTIDcuMi4yIGV2YWx1YXRpb24KKyAgICBpcyBsb2NhdGVkIDxhIGhyZWY9Imh0dHA6Ly93d3cuYmx1ZXN0b25lLmNvbS9TYUlTQVBJLmRsbC9TYVNlcnZsZXRFbmdpbmUuY2xhc3MvcHJvZHVjdHMvZG93bmxvYWRzLmpzcCI+aGVyZTwvYT4uCisgICAgSWYgeW91J3JlIHVzaW5nIHZlcnNpb24gNy4yLjEsIHlvdSBuZWVkIHRvIGRvd25sb2FkIHRoZSBXQVIgZmlsZSBwYXRjaCwgbG9jYXRlZAorICAgIGluIHRoZSBwcm9kdWN0IGVuaGFuY2VtZW50IHNlY3Rpb24gb2YgQmx1ZXN0b25lJ3Mgd2Vic2l0ZSA8YSBocmVmPSJodHRwOi8vd3d3LmJsdWVzdG9uZS5jb20vU2FJU0FQSS5kbGwvU2FTZXJ2bGV0RW5naW5lLmNsYXNzL3Byb2R1Y3RzL3dmZS5qc3AiPmhlcmU8L2E+CisgIDwvbGk+CisgIDxsaT4gQWZ0ZXIgaW5zdGFsbGF0aW9uIG9mIHRoZSBjb3JyZWN0IHZlcnNpb24gYW5kL29yIHBhdGNoIG9mIFVCUyA3LjIsIHlvdQorICAgIG5lZWQgdG8gbW9kaWZ5IHlvdXIgYXBzZXJ2ZXIudHh0IGZpbGUgdG8gcG9pbnQgdG8gdGhlIGNvcnJlY3QgZGlyZWN0b3J5IGZvcgorICAgIHlvdXIgd2FyIGZpbGUgYXBwbGljYXRpb25zLiBMb29rIGZvciB0aGUgc2VjdGlvbiB0aGF0IHNheXMgc29tZXRoaW5nIHNpbWlsYXIKKyAgICB0byB0aGUgZm9sbG93aW5nOjxiciAvPgorICAgIDxwcmU+CisgIFtTYVNlcnZsZXRFbmdpbmUuY2xhc3NdCisgIHNlc3Npb25fYWZmaW5pdHk9MQorICB0eXBlPTEKKyAgcHJvZ3JhbT0vU2FTZXJ2bGV0RW5naW5lLmNsYXNzCisgIGZpbGVfcGF0aD1mOlx3ZWJhcHBzCisgIGhvc3Q9bG9jYWxob3N0OjIwMDAwCis8L3ByZT4KKyAgPC9saT4KKworICA8bGk+VXNlIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5IHRoZSAiZmlsZV9wYXRoIiB2YXJpYWJsZSwgb3IgbW9kaWZ5IGl0IHRvCisgICAgcG9pbnQgdG8geW91ciBvd24gY3VzdG9tIHdlYmFwcCBkaXJlY3RvcnkuIENvcHkgdGhlICJzdHJ1dHMtZG9jdW1lbnRpb24ud2FyIgorICAgIGFuZCAic3RydXRzLWV4YW1wbGUud2FyIiBmaWxlcyBpbnRvIHRoYXQgd2ViYXBwIGRpcmVjdG9yeSwgYW5kIHN0YXJ0IHRoZSBVQlMKKyAgICAocmVhZCBkb2N1bWVudGF0aW9uIGRpc3RyaWJ1dGVkIHdpdGggVUJTIGZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gc3RhcnQgaXQKKyAgICBpZiBuZWNlc3NhcnkpLiBZb3VyIHdlYmFwcHMgYXJlIG5vdyBhY2Nlc3NpYmxlIGZyb20gdGhlIGZvbGxvd2luZyBVUkw6CisgICAgPHAgY2xhc3M9ImNlbnRlciI+IGh0dHA6Ly9sb2NhbGhvc3QvJmx0O1BMVUdJTiZndDsvU2FTZXJ2bGV0RW5naW5lLmNsYXNzL3N0cnV0cy1leGFtcGxlLzxiciAvPgorICAgICAgaHR0cDovL2xvY2FsaG9zdC8mbHQ7UExVR0lOJmd0Oy9TYVNlcnZsZXRFbmdpbmUuY2xhc3Mvc3RydXRzLWRvY3VtZW50YXRpb24vCisgICAgPC9wPgorICA8L2xpPgorCisgIDxsaT4gTm90ZTogIiZsdDtQTFVHSU4mZ3Q7IiByZXByZXNlbnRzIHRoZSBwbHVnaW4geW91IGFyZSB1c2luZyBmb3IgeW91ciBzcGVjaWZpYworICAgIHdlYnNlcnZlci4gRm9yIEFwYWNoZSBvbiBXaW5kb3dzLCBpdCBtaWdodCBiZSAiY2dpLWJpbi9TYUNHSS5leGUiLCBmb3IgSUlTCisgICAgb24gV2luZG93cywgaXQgbWlnaHQgYmUgInNjcmlwdHMvU2FDR0kuZXhlIiBvciAic2NyaXB0cy9JU0FQSS5kbGwiLiBDb25zdWx0CisgICAgdGhlIFVCUyBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLiA8L2xpPgorPC91bD4KKyAgPGhyLz4KKyAgPHA+QmFjayB0byA8YSBocmVmPSJpbnN0YWxsYXRpb24uaHRtbCNDb250YWluZXJzIj5JbnN0YWxsYXRpb248L2E+PC9wPgorPC9zZWN0aW9uPgorCis8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2luc3RhbGxhdGlvbi13YXMzNTIteC54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLXdhczM1Mi14LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTVmZGFkCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2luc3RhbGxhdGlvbi13YXMzNTIteC54bWwKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSJpbnN0YWxsYXRpb24td2FzMzUyLXguaHRtbCI+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlRoZSBTdHJ1dHMgRnJhbWV3b3JrIFByb2plY3QgLSBJbnN0YWxsYXRpb24gLSBXZWJTcGhlcmUgMy41LjI8L3RpdGxlPgorICA8L3Byb3BlcnRpZXM+CisKKyAgPGJvZHk+Cis8c2VjdGlvbiBuYW1lPSI1LjIgSW5zdGFsbGF0aW9uIiBocmVmPSJpbnN0YWxsYXRpb24iLz4KKzxzZWN0aW9uIG5hbWU9Ikluc3RhbGxpbmcgU3RydXRzIHdpdGggeW91ciBzZXJ2bGV0IGNvbnRhaW5lciIgaHJlZj0iQ29udGFpbmVycyI+CisKKzxoNCBpZD0id2FzMzUyIj5XZWJTcGhlcmUgQXBwbGljYXRpb24gU2VydmVyIDMuNSBhbmQgdGhlIEV4YW1wbGUgQXBwbGljYXRpb248L2g0PgorCis8cD5TZXJ2ZXI6IFdpbmRvd3MgMjAwMCBTZXJ2ZXIgd2l0aCBXZWJTcGhlcmUgMy41LjMgQWR2YW5jZWQ8L3A+Cis8b2w+Cis8bGk+U3RhcnQgdXAgdGhlIGFkbWluc2VydmVyLiA8L2xpPgorPGxpPlN0YXJ0IHVwIEFkbWluIENvbnNvbGUuIDwvbGk+Cis8bGk+VXNlIHRoZSBDb252ZXJ0IFdhciBmaWxlIHRhc2sgdG8gY29udmVydCB0aGUgc3RydXRzLWV4YW1wbGUud2FyIGZyb20gdGhlCitzdHJ1dHMtYjEgZGlzdHJpYiBhcy1pcy4gPC9saT4KKzxsaT5Db252ZXJ0IHRvIHRoZSBkZWZhdWx0X3NlcnZlciwgZGVmYXVsdCBzZXJ2bGV0IGVuZ2luZSBhbmQgc3RhbmRhcmQKK2luc3RhbGwgZGlyZWN0b3J5IChjOlx3ZWJzcGhlcmVcYXBwc2VydmVyXGhvc3RzXGRlZmF1bHRfaG9zdCkuIDwvbGk+Cis8bGk+Q3JlYXRlIGEgV0VCLUlORiBkaXJlY3RvcnkgaW4gdGhlIHNlcnZsZXRzIGRpciBhbmQgY29weQorc3RydXRzLWNvbmZpZy54bWwsIGRhdGFiYXNlLnhtbCBBTkQgd2ViLnhtbCBpbnRvIGl0IChLZWVwIFdFQi1JTkYgd2l0aCBhbGwKK3RoZSBUTEQncyB1bmRlciB3ZWIgLSBib3RoIFdFQi1JTkYgZGlyZWN0b3JpZXMgbXVzdCBiZSBwcmVzZW50KS4gPC9saT4KKzxsaT5Db3B5IGpheHAgMS4wLjEncyAoTk9UIDEuMS4xJ3MpIGpheHAuamFyIGFuZCBwYXJzZXIuamFyIHRvIHRoZSBzZXJ2bGV0cworZGlyZWN0b3J5IG9mIHRoZSBzdHJ1dC1leGFtcGxlIHdlYmFwcC4gPC9saT4KKzxsaT5JbiB0aGUgc2VydmxldHMgZGlyZWN0b3J5LCBvcGVuIHN0cnV0cy5qYXIgd2l0aCBXaW5aaXAuICBFeHRyYWN0IHRoZQordGhyZWUgRFREJ3MgKHN0cnV0cy1jb25maWdfMV8wLmR0ZCwgd2ViLWFwcF8yXzIuZHRkIGFuZCB3ZWItYXBwXzJfMy5kdGQpCitpbnRvIHRoZSBzZXJ2bGV0cyBkaXJlY3RvcnkgbWFraW5nIHN1cmUgeW91IHVzZSBmb2xkZXIgbmFtZXMgKHNvIHRoZSBmaWxlcworZXh0cmFjdCB0byBzZXJ2bGV0cy9vcmcvYXBhY2hlL3N0cnV0cy9yZXNvdXJjZXMpLiA8L2xpPgorPGxpPkNsaWNrIG9uIHN0cnV0cy1leGFtcGxlIGluIHRoZSBBZG1pbiBDb25zb2xlIHVuZGVyIERlZmF1bHQgU2VydmVyL0RlZmF1bHQKK1NlcnZsZXQgRW5naW5lIGFuZCBjbGljayB0aGUgYWR2YW5jZWQgdGFiIG9uIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgdGhlCitzY3JlZW4uIDwvbGk+Cis8bGk+RG93biB3aGVyZSBpdCBzYXlzIERlZmF1bHQgRXJyb3IgUGFnZSwgZW50ZXIgL0Vycm9yUmVwb3J0ZXIgYW5kIHRoZW4KK2NsaWNrIEFwcGx5LiA8L2xpPgorPGxpPlN0YXJ0IHRoZSBEZWZhdWx0IFNlcnZlciB2aWEgdGhlIEFkbWluIENvbnNvbGUuIFlvdSBzaG91bGQgc2VlIGEgd2hvbGUKK2J1bmNoIG9mIEFjdGlvblNlcnZsZXQgbWVzc2FnZXMgaW4gdGhlIGRlZmF1bHRfaG9zdF9zdGRvdXQubG9nIGZpbGUgd2l0aCBubworZXhjZXB0aW9ucy4gPC9saT4KKzxsaT5WaWEgYSBicm93c2VyIGFjY2Vzc2VkIHRoZSBhcHAgdXNpbmcKK2h0dHA6Ly9sb2NhbGhvc3Qvc3RydXRzLWV4YW1wbGUvaW5kZXguanNwLiA8L2xpPgorPGxpPklmIGl0IHJldHVybnMgIkFwcGxpY2F0aW9uIG5vdCBBdmFpbGFibGUiIHRoZW4gZ28gYmFjayB0byB0aGUgQWRtaW4KK0NvbnNvbGUsIHJpZ2h0LWNsaWNrIG9uIHN0cnV0cy1leGFtcGxlIGFuZCBzZWxlY3QgUmVzdGFydCBXZWJBcHAuIDwvbGk+Cis8bGk+T25jZSBpdCByZXBvcnRzIHN1Y2Nlc3MsIGdvIGJhY2sgdG8gdGhlIFVSTCBhYm92ZSBhbmQgdHJ5IGFnYWluIC0gaXQKK3Nob3VsZCB3b3JrIGZsYXdsZXNzbHkuIDwvbGk+Cis8L29sPgorPHA+CitGb3Igd2hhdGV2ZXIgcmVhc29uLCBzb21lIGluc3RhbGxhdGlvbnMgZG8gbm90IGxpa2UgWE1MIGZpbGVzIHRoYXQgcmVmZXJlbmNlCitQVUJMSUMgRFREJ3MgLSBpZiBpbiBsb29raW5nIGF0IHRoZSBkZWZhdWx0X2hvc3Rfc3Rkb3V0LmxvZyBmaWxlIHlvdSBzZWUKK2Vycm9ycyBhYm91dCBpbnZhbGlkIHB1YmxpYyBVUkwgcmVmZXJlbmNlcyBkdXJpbmcgRFREIHJlZ2lzdHJhdGlvbnMsIG9yIGlmCit5b3VyIHBhZ2VzIHNheSAiY2Fubm90IGZpbmQgLy9sb2dvbiBvciAvL3NhdmVSZWdpc3RyYXRpb24gKGllLiBhY3Rpb24KK21hcHBpbmdzKSB0aGVuIGRvIHRoZSBmb2xsb3dpbmc6PC9wPgorPG9sPgorPGxpPlN0b3AgRGVmYXVsdCBTZXJ2ZXI8L2xpPgorPGxpPkdvIHRvIHNlcnZsZXRzXFdFQi1JTkZcIGFuZCBlZGl0IHdlYi54bWwgYW5kIHN0cnV0c19jb25maWcueG1sLjwvbGk+Cis8bGk+SW4gdGhlIERPQ1RZUEUgZGVjbGFyYXRpb24sIGNoYW5nZSB0aGUgd29yZCBQVUJMSUMgdG8gU1lTVEVNIGFuZAorY29tcGxldGVseSByZW1vdmUgdGhlIGxpbmUgdGhhdCByZWFkcyAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIFdlYgorQXBwbGljYXRpb24gMi4yLy9FTiIgZnJvbSB3ZWIueG1sIGFuZCByZW1vdmUgIi0vL0FwYWNoZSBTb2Z0d2FyZQorRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDEuMC8vRU4iIGZyb20gc3RydXRzLWNvbmZpZy54bWwuIDwvbGk+Cis8bGk+U2F2ZSB0aGVzZSBjaGFuZ2VzIGFuZCBnbyBiYWNrIHRvIHN0ZXAgMTAgYWJvdmUuPC9saT4KKzwvb2w+Cis8cD5KdXN0IGFzIGEgdHJvdWJsZXNob290aW5nIGd1aWRlIC0gPC9wPgorPHA+SWYgeW91IGFyZSBnZXR0aW5nIGVycm9ycyBsaWtlICJDYW5ub3QgZmluZCBBY3Rpb25NYXBwaW5ncywgZXRjLi4uIiBvcgorIkNhbm5vdCBmaW5kIGtleSBvcmcuYXBhY2hlLnN0cnV0cy5NRVNTQUdFIiAgdGhlbiB5b3VyIGFwcGxpY2F0aW9uIGlzIG1vc3QKK2xpa2VseSBzdGlsbCBib21iaW5nIG9uIHRoZSBzdHJ1dHMtY29uZmlnIGlzc3VlIHRoYXQgUmljaGFyZCBkaXNjb3ZlcmVkLgorVGhlIGFib3ZlIHN0ZXBzIFNIT1VMRCBjb3JyZWN0IHRoYXQgbGVhdmluZyBub3RoaW5nIG91dC4gIElmIHlvdSBhcmUgZ2V0dGluZworNDA0IGVycm9ycyBhYm91dCAvL2xvZ29uIG9yIHNvbWV0aGluZyBub3QgZm91bmQsIHRoZW4geW91IGFyZSBzdGlsbCBoYXZpbmcKK1hNTCBjb25maWcgdHJvdWJsZXMgYW5kIGl0IGlzIG5vdCBpbml0aWFsaXppbmcgdGhlIEFjdGlvbiBzZXJ2bGV0IHByb3Blcmx5LgorRm9sbG93IHRoZSBzdGVwcyBhYm92ZSBpbiByZWdhcmRzIHRvIERURCdzIGFuZCBpdCBzaG91bGQgd29yay48L3A+Cis8cD5BcyBhIGZpbmFsIHRob3VnaHQsIEkgb2J2aW91c2x5IGhhdmVuJ3QgZ290dGVuIHRvIHRlc3QgdG9vIG11Y2ggYnV0IEkgZG9uJ3QKK2JlbGlldmUgdGhhdCB0aGVyZSBhcmUgQU5ZIGNvZGluZyBjaGFuZ2VzIHRoYXQgbmVlZCB0byBiZSBtYWRlIHRvIHRoZSBhY3R1YWwKK3N0cnV0cyBzb3VyY2UuICBFdmVyeXRoaW5nIGFib3V0IGdldHRpbmcgaXQgdG8gd29yayBpbiBXZWJTcGhlcmUgaGFzIGJlZW4gYQorV2ViU3BoZXJlIGNvbmZpZ3VyYXRpb24gaXNzdWUgdGh1cyBmYXIgKGFuZCBJIGRvbid0IHRoaW5rIEknbGwgYmUgaGF2aW5nIGFueQorbW9yZSkuIDwvcD4KKzxwPklmIGNoYW5naW5nIHRoZSBEVEQncyB0byBTWVNURU0sIGRvIHNvIE9OTFkgQUZURVIgdXNpbmcgdGhlIENvbnZlcnQgYSBXYXIKK3V0aWwuICBBbnQgZG9lc24ndCBzZWVtIHRvIGxpa2UgaXQgdGhlIG90aGVyIHdheSEgOik8L3A+CisgIDxoci8+CisgIDxwPkJhY2sgdG8gPGEgaHJlZj0iaW5zdGFsbGF0aW9uLmh0bWwjQ29udGFpbmVycyI+SW5zdGFsbGF0aW9uPC9hPjwvcD4KKzwvc2VjdGlvbj4KKworPC9ib2R5PgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9pbnN0YWxsYXRpb24td2FzMzUyLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9pbnN0YWxsYXRpb24td2FzMzUyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MzJmMDkyCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2luc3RhbGxhdGlvbi13YXMzNTIueG1sCkBAIC0wLDAgKzEsMTE5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Imluc3RhbGxhdGlvbi13YXMzNTIuaHRtbCI+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlRoZSBTdHJ1dHMgRnJhbWV3b3JrIFByb2plY3QgLSBJbnN0YWxsYXRpb24gLSBXZWJTcGhlcmUgMy41LjI8L3RpdGxlPgorICA8L3Byb3BlcnRpZXM+CisKKyAgPGJvZHk+Cis8c2VjdGlvbiBuYW1lPSI1LjIgSW5zdGFsbGF0aW9uIiBocmVmPSJpbnN0YWxsYXRpb24iLz4KKzxzZWN0aW9uIG5hbWU9Ikluc3RhbGxpbmcgU3RydXRzIHdpdGggeW91ciBzZXJ2bGV0IGNvbnRhaW5lciIgaHJlZj0iQ29udGFpbmVycyI+CisKKzxoNCBpZD0id2FzMzUyIj5XZWJTcGhlcmUgQXBwbGljYXRpb24gU2VydmVyIDMuNSBGaXhQYWNrIDI8L2g0PgorCis8dWw+Cis8bGk+SW4gdGhlIHN0ZXBzIGJlbG93LCA8Y29kZT4kV0FTX0hPTUU8L2NvZGU+IHJlZmVycyB0byB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIHlvdQorICBoYXZlIGluc3RhbGxlZCBXZWJTcGhlcmUgQXBwbGljYXRpb24gU2VydmVyLCBhbmQgPGNvZGU+JFNUUlVUU19IT01FPC9jb2RlPiBpcyB0aGUKKyAgZGlyZWN0b3J5IGluIHdoaWNoIHlvdSB1bnBhY2tlZCB0aGUgU3RydXRzIGJpbmFyeSBkaXN0cmlidXRpb24uPC9saT4KKworPGxpPldlYlNwaGVyZSBiZWZvcmUgMy41LjIgZGlkIG5vdCBzdXBwb3J0IEpTUCAxLjEgYW5kIFNlcnZsZXQgMi4yLCB3aGljaAorICBtYWRlIGl0IGRpZmZpY3VsdCB0byBnZXQgU3RydXRzIGZ1bmN0aW9uaW5nIHdpdGhvdXQgbWFzc2l2ZSBjb2RlIGNoYW5nZXMuCisgIFBsZWFzZSB1cGdyYWRlIHRvIDMuNS4yICgzLjUgd2l0aCBGaXhQYWNrIDIpICBiZWZvcmUgYXR0ZW1wdGluZyB0byB1c2UKKyAgU3RydXRzLiBTZWUgPGEgaHJlZj0iaHR0cDovL3d3dy5pYm0uY29tL3NvZnR3YXJlL3dlYnNlcnZlcnMvYXBwc2Vydi9lZml4Lmh0bWwiPmh0dHA6Ly93d3cuaWJtLmNvbS9zb2Z0d2FyZS93ZWJzZXJ2ZXJzL2FwcHNlcnYvZWZpeC5odG1sPC9hPgorICBmb3IgZG93bmxvYWQgYW5kIGluc3RhbGwgaW5zdHJ1Y3Rpb25zIG9uIEZpeFBhY2sgMiBmb3IgV2ViU3BoZXJlIDMuNTwvbGk+CisKKzxsaT5XYXJuaW5nOiBTdHJ1dHMgd2lsbCBub3Qgd29yayB3aXRoIFdlYlNwaGVyZSAzLjUuMiBvdXQgb2YgdGhlIGJveC4gRml4ZXMKKyAgZXhwZWN0ZWQgdG8gYmUgaW4gV2ViU3BoZXJlIDMuNS4zIChub3QgcmVsZWFzZWQgYXQgdGltZSBvZiB3cml0aW5nKSBzaG91bGQKKyAgY29ycmVjdCB0aGlzLiBIb3dldmVyLCB5b3UgY2FuIHN1Y2Nlc3NmdWxseSBnZXQgV2ViU3BoZXJlIDMuNS4yIHdvcmtpbmcKKyAgd2l0aCBTdHJ1dHMuPC9saT4KKworPGxpPk1ha2Ugc3VyZSB0aGUgV2ViU3BoZXJlIEFwcGxpY2F0aW9uIFNlcnZlciBpcyBzdGFydGVkLiBVbmRlciBXaW5kb3dzCisgIE5ULzIwMDAsIGl0J3MgdGhlICJJQk0gV1MgQWRtaW5TZXJ2ZXIiIHNlcnZpY2UuPC9saT4KKworPGxpPlN0YXJ0IHRoZSBXZWJTcGhlcmUgQWRtaW5pc3RyYXRpdmUgQ29uc29sZS48L2xpPgorCis8bGk+T25jZSBpdCdzIHN0YXJ0ZWQsIHNlbGVjdCAiQ29udmVydCBhIFdhciBGaWxlIiBmcm9tIHRoZSB0YXNrcyB0b29sYmFyCisgIG9wdGlvbiwgb3IgZnJvbSB0aGUgQ29uc29sZS0+VGFza3MgbWVudS4gVGhpcyB3aWxsIGNhdXNlIGEgIkNvbnZlcnQgV2FyCisgIEZpbGUiIFdpemFyZCBkaWFsb2cgdG8gYXBwZWFyLjwvbGk+CisKKzxsaT5TZWxlY3QgYSBTZXJ2bGV0IEVuZ2luZSB0byBob3N0IHRoZSB3ZWIgYXBwbGljYXRpb24gdGhhdCB3aWxsIHJlc3VsdAorICBmcm9tIGNvbnZlcnRpbmcgdGhlIFdhciBmaWxlLCBlLmcuICJEZWZhdWx0IFNlcnZsZXQgRW5naW5lIiwgYnkgZXhwYW5kaW5nCisgIHRoZSB0cmVlIGNvbnRyb2wgdW5kZXIgTm9kZXMuIFByZXNzIHRoZSBOZXh0IGJ1dHRvbi48L2xpPgorCis8bGk+U2VsZWN0IGEgVmlydHVhbCBIb3N0IHRvIGFzc29jaWF0ZSB0aGUgcmVzdWx0aW5nIHdlYiBhcHBsaWNhdGlvbiB3aXRoLAorICBlLmcuICJkZWZhdWx0IGhvc3QiLiBQcmVzcyB0aGUgTmV4dCBidXR0b24uPC9saT4KKworPGxpPlByZXNzIHRoZSBCcm93c2UgYnV0dG9uIGFuZCBjaG9vc2UgdGhlCisgIDxjb2RlPiRTVFJVVFNfSE9NRS93ZWJhcHBzL3N0cnV0cy1leGFtcGxlLndhcjwvY29kZT4uIFByZXNzIHRoZSBOZXh0IGJ1dHRvbjwvbGk+CisKKzxsaT5TZWxlY3QgYSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZm9yIHRoZSByZXN1bHRpbmcgd2ViIGFwcGxpY2F0aW9uLCBlLmcuCisgIDxjb2RlPiRXQVNfSE9NRS9ob3N0cy9kZWZhdWx0X2hvc3Q8L2NvZGU+LiBQcmVzcyB0aGUgTmV4dCBidXR0b248L2xpPgorCis8bGk+RW50ZXIgYSAiV2ViIEFwcGxpY2F0aW9uIFdlYiBQYXRoIiwgZS5nLiBzdHJ1dHMtZXhhbXBsZSwgYW5kIGEgIldlYgorICBBcHBsaWNhdGlvbiBOYW1lIiwgZS5nLiBzdHJ1dHMtZXhhbXBsZS4gUHJlc3MgdGhlIEZpbmlzaCBidXR0b24uPC9saT4KKworPGxpPllvdSBzaG91bGQsIGFmdGVyIGEgbGVuZ3RoeSBwYXVzZSwgZ2V0IGEgbWVzc2FnZSBib3ggd2l0aCB0aGUgdGV4dAorICBDb21tYW5kICJjb252ZXJ0IHdhciBmaWxlIiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LiBQcmVzcyBPay48L2xpPgorCis8bGk+WW91IG5vdyBuZWVkIHRvIGFkZCBqYXhwLmphciBhbmQgYSBqYXhwIGNvbXBhdGlibGUgcGFyc2VyLCBlLmcuCisgIHBhcnNlci5qYXIgZnJvbSBKQVhQIDEuMC4xIHRvIHRoZSBzdHJ1dHMtZXhhbXBsZSB3ZWIgYXBwbGljYXRpb24ncworICBzZXJ2bGV0cyBkaXJlY3RvcnksIGUuZy4KKyAgPGNvZGU+JFdBU19IT01FL0FwcFNlcnZlci9ob3N0cy9kZWZhdWx0X2hvc3Qvc3RydXRzLWV4YW1wbGUvc2VydmxldHM8L2NvZGU+PC9saT4KKworPGxpPkF0IHRoaXMgcG9pbnQsIGlmIFdBUyAzLjUuMiBjb3JyZWN0bHkgaW1wbGVtZW50ZWQgU2VydmxldCAyLjIsIGFsbAorICB3b3VsZCBiZSBmaW5lLiBIb3dldmVyLCBXQVMgMy41LjIgIHJldHVybnMgbnVsbCBmb3IgY2FsbHMgdG8KKyAgPGNvZGU+U2VydmxldENvbnRleHQuZ2V0UmVzb3VyY2UoU3RyaW5nKTwvY29kZT4gb3IKKyAgPGNvZGU+U2VydmxldENvbnRleHQuZ2V0UmVzb3VyY2VBc1N0cmVhbShTdHJpbmcpPC9jb2RlPi4gVGhpcyBtYW5pZmVzdHMgaXRzZWxmIGFzIGFuCisgIGV4Y2VwdGlvbiBpbiB0aGUgYXBwbGljYXRpb24gc2VydmVyIHN0ZG91dCBsb2csIGUuZy4KKyAgPGNvZGU+ZGVmYXVsdF9zZXJ2ZXJfc3Rkb3V0LmxvZy48L2NvZGU+PC9saT4KKworPGxpPldhcm5pbmc6IERvbid0IGJlIGZvb2xlZCBieSB0aGUgZmFjdCB0aGF0IHRoZSB3ZWIgYXBwbGljYXRpb24gc3RhcnRzCisgIHN1Y2Nlc3NmdWxseSBmcm9tIHRoZSBBZG1pbiBDb25zb2xlLiBJdCBhY3R1YWxseSBkb2Vzbid0LiBUaGUgQWRtaW4KKyAgQ29uc29sZSBpcyBseWluZy4gSWYgeW91IHRyeSB0byBhY2Nlc3MgdGhlIHdlYmFwcAorICBlLmcuIDxjb2RlPmh0dHA6Ly9sb2NhbGhvc3Qvc3RydXRzLWV4YW1wbGUvPC9jb2RlPiBpdCB3aWxsIGZhaWwuPC9saT4KKworPGxpPkF0IHRoaXMgcG9pbnQsIHlvdSBuZWVkIHRvIHBhdGNoIHRoZSBTdHJ1dHMgc291cmNlLiBUaGVyZSBhcmUgdGhyZWUKKyAgcGxhY2VzIDxjb2RlPmdldFJlc291cmNlQXNTdHJlYW08L2NvZGU+IGlzIGNhbGxlZDo8L2xpPjwvdWw+CisgPHByZT4KKyAgICBSZXNvdXJjZVRhZy5kb1N0YXJ0VGFnKCkKKyAgICBBY3Rpb25TZXJ2bGV0LmluaXRNYXBwaW5nKCkKKyAgICBQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMubG9hZExvY2FsZShTdHJpbmcpCis8L3ByZT4KKyAgPHA+b2YgdGhlc2UsIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+IGlzIHRoZSBtb3N0IGltcG9ydGFudC48L3A+CisKKzx1bD48bGk+Q2hhbmdlIHRoZSBzb3VyY2UgZnJvbTwvbGk+PC91bD4KKzxwcmU+CisgICAgLy8gQWNxdWlyZSBhbiBpbnB1dCBzdHJlYW0gdG8gb3VyIGNvbmZpZ3VyYXRpb24gcmVzb3VyY2UKKyAgICBJbnB1dFN0cmVhbSBpbnB1dCA9IGdldFNlcnZsZXRDb250ZXh0KCkuZ2V0UmVzb3VyY2VBc1N0cmVhbShjb25maWcpOworPC9wcmU+Cis8cD50bzwvcD4KKzxwcmU+CisgICAgLy8gQWNxdWlyZSBhbiBpbnB1dCBzdHJlYW0gdG8gb3VyIGNvbmZpZ3VyYXRpb24gcmVzb3VyY2UKKyAgICBJbnB1dFN0cmVhbSBpbnB1dCA9IG5ldworICAgICAgamF2YS5pby5GaWxlSW5wdXRTdHJlYW0oZ2V0U2VydmxldENvbnRleHQoKS5nZXRSZWFsUGF0aChjb25maWcpKTsKKyA8L3ByZT4KKzx1bD48bGk+ICBNYWtlIHNpbWlsYXIgY2hhbmdlcyB0byB0aGUgb3RoZXIgY2xhc3NlcyBpZiBuZWNlc3NhcnkuPC9saT4KKworPGxpPlJlY29tcGlsZSBBY3Rpb25TZXJ2bGV0IGFuZCBjb3B5IHRoZSA8Y29kZT4uY2xhc3M8L2NvZGU+IGZpbGUgdG8gPGJyLz4KKworPGNvZGU+JFdBU19IT01FL0FwcFNlcnZlci9ob3N0cy9kZWZhdWx0X2hvc3Qvc3RydXRzLWV4YW1wbGUvc2VydmxldHMvPGJyLz4KK29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0LmNsYXNzPC9jb2RlPjwvbGk+CisKKzxsaT5Bbm90aGVyIGJ1ZyB3aXRoIFdBUyAzLjUuMidzIGNsYXNzbG9hZGVycyBpcyB0aGF0IENsYXNzLmdldFJlc291cmNlKCkKKyAgd29udCBsb2FkIGEgcmVzb3VyY2UgZnJvbSBhIGphciwgc28geW91IG11c3QgY29weTxici8+CisgIDxjb2RlPiRTVFJVVFNfSE9NRS9saWIvc3RydXRzLWNvbmZpZ18xXzAuZHRkPC9jb2RlPiA8YnIvPgorICB0byA8YnIvPgorICA8Y29kZT4kV0FTX0hPTUUvQXBwU2VydmVyL2hvc3RzL2RlZmF1bHRfaG9zdC9zdHJ1dHMtZXhhbXBsZS9zZXJ2bGV0cy9vcmcvYXBhY2hlL3N0cnV0cy9yZXNvdXJjZXMvc3RydXRzLWNvbmZpZ18xXzAuZHRkPC9jb2RlPjxici8+CisgIG9yIGJlIGNvbm5lY3RlZCB0byB0aGUgSW50ZXJuZXQgdG8gZmV0Y2ggdGhlIGR0ZCBmcm9tIHRoZSBKYWthcnRhIHdlYiBzaXRlLjwvbGk+CisKKzxsaT5TdGFydCB5b3VyIHdlYmFwcCBpbiB0aGUgQWRtaW4gQ29uc29sZTwvbGk+CisKKzxsaT5UZXN0IHRoZSBleGFtcGxlIGFwcGxpY2F0aW9uIGJ5IGxvYWRpbmcgdGhlIGZvbGxvd2luZyBVUkwgaW4geW91cgorICBicm93c2VyIG9mIGNob2ljZTogPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdC9zdHJ1dHMtZXhhbXBsZS8iPmh0dHA6Ly9sb2NhbGhvc3Qvc3RydXRzLWV4YW1wbGUvIiA+aHR0cDovL2xvY2FsaG9zdC9zdHJ1dHMtZXhhbXBsZS88L2E+PC9saT4KKzwvdWw+CisgIDxoci8+CisgIDxwPkJhY2sgdG8gPGEgaHJlZj0iaW5zdGFsbGF0aW9uLmh0bWwjQ29udGFpbmVycyI+SW5zdGFsbGF0aW9uPC9hPjwvcD4KKzwvc2VjdGlvbj4KKworPC9ib2R5PgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9pbnN0YWxsYXRpb24td2xzNS54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLXdsczUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4MjE4YzIKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLXdsczUueG1sCkBAIC0wLDAgKzEsMTE4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Imluc3RhbGxhdGlvbi13bHM1Lmh0bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5UaGUgU3RydXRzIEZyYW1ld29yayBQcm9qZWN0IC0gSW5zdGFsbGF0aW9uIC0gV2VibG9naWMgNS4xIHNwODwvdGl0bGU+CisgIDwvcHJvcGVydGllcz4KKworICA8Ym9keT4KKzxzZWN0aW9uIG5hbWU9IjUuMiBJbnN0YWxsYXRpb24iIGhyZWY9Imluc3RhbGxhdGlvbiIvPgorPHNlY3Rpb24gbmFtZT0iSW5zdGFsbGluZyBTdHJ1dHMgd2l0aCB5b3VyIHNlcnZsZXQgY29udGFpbmVyIiBocmVmPSJDb250YWluZXJzIj4KKworPGg0IGlkPSJ3bHM1Ij5XZWJsb2dpYyA1LjEgKHNlcnZpY2UgcGFjayA4KTwvaDQ+Cis8dWw+CisgIDxsaT5PYnRhaW4gYW5kIGluc3RhbGwgdGhlIFhlcmNlcyBYTUwgcGFyc2VyIChwcm9ibGVtcyBoYXZlIGJlZW4gcmVwb3J0ZWQgd2l0aAorICAgIHRoZSBTdW4gcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uKS4gUHV0IHhlcmNlcy5qYXIgaW4geW91ciBXZWJMb2dpYyBzeXN0ZW0KKyAgICBwYXRoLjwvbGk+CisgIDxsaT5PYnRhaW4gYW5kIHVucGFjayB0aGUgU3RydXRzIGJpbmFyeSBkaXN0cmlidXRpb24gKHRoaXMgcHJvY2VkdXJlIGFzc3VtZXMKKyAgICBpdCB3YXMgZXh0cmFjdGVkIHRvIDxjb2RlPmM6XGpha2FydGEtc3RydXRzPC9jb2RlPikuPC9saT4KKyAgPGxpPkFkZCBhbiBlbnRyeSB0byB3ZWJsb2dpYy5wcm9wZXJ0aWVzIGZvciBlYWNoIG9mIHRoZSBTdHJ1dHMgd2ViIGFwcGxpY2F0aW9ucworICAgIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gY29uZmlndXJlLiBGb3IgZXhhbXBsZSwgdG8gbWFrZSB0aGUgc3RydXRzLWV4YW1wbGUKKyAgICBhcHBsaWNhdGlvbiBhdmFpbGFibGUsIGFkZCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gd2VibG9naWMucHJvcGVydGllczo8YnIvPgorICAgIDxjb2RlPndlYmxvZ2ljLmh0dHBkLndlYkFwcC5zdHJ1dHNleGFtcGxlPTxici8+CisgICAgYzovamFrYXJ0YS1zdHJ1dHMvd2ViYXBwcy9zdHJ1dHMtZXhhbXBsZS53YXI8L2NvZGU+PC9saT4KKyAgPGxpPllvdSBkbyBub3QgbmVlZCB0byBpbmNsdWRlIHN0cnV0cy5qYXIgb3IgYW55IG9mIHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYworICAgIGNsYXNzZXMgaW4gdGhlIFdlYkxvZ2ljIGNsYXNzcGF0aCwgc2luY2UgdGhpcyB3aWxsIGJlIGRvbmUgYXV0b21hdGljYWxseSAodW5sZXNzCisgICAgZGVwbG95aW5nIGFuIHVucGFja2VkIHdlYiBhcmNoaXZlLSBzZWUgYmVsb3cpLjwvbGk+CisgIDxsaT5TdGFydCBXZWJMb2dpYyBzZXJ2ZXIgYW5kIHBvaW50IHlvdXIgd2ViIGJyb3dzZXIgdG8gdGhlIHN0cnV0cyBhcHBsaWNhdGlvbi4KKyAgICBGb3IgZXhhbXBsZSwgdG8gY29ubmVjdCB0byB0aGUgZXhhbXBsZSBhcHBsaWNhdGlvbiBhZGRlZCBpbiBzdGVwIDM6PGJyLz4KKyAgICA8Y29kZT5odHRwOi8vbG9jYWxob3N0OjcwMDEvc3RydXRzZXhhbXBsZTwvY29kZT48L2xpPgorICA8bGk+VGhpcyBleGFtcGxlIGFwcGxpY2F0aW9uIGRlcGVuZHMgb24gdGhlIFN0cnV0cyBzcGVjaWZpYyByZXNvdXJjZSBmaWxlIEFwcGxpY2F0aW9uUmVzb3VyY2VzLnByb3BlcnRpZXMKKyAgICB0byBiZSBwcmVzZW50IG9uIHRoZSBjbGFzc3BhdGguIEhvd2V2ZXIsIFdlYkxvZ2ljIG9ubHkgZXh0cmFjdHMgKi5jbGFzcyBmaWxlcworICAgIGZyb20gdGhlIGFyY2hpdmUgc28gdGhpcyBmaWxlIHdpbGwgbm90IGJlIGZvdW5kLCByZXN1bHRpbmcgaW4gYW4gZXJyb3IgdGhlCisgICAgZmlyc3QgdGltZSBpdCBpcyBuZWVkZWQtIHNvbWV0aGluZyBzaW1pbGFyIHRvOiBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb246CisgICAgcnVudGltZSBmYWlsdXJlIGluIGN1c3RvbSB0YWcgJ21lc3NhZ2UnLiBTdGVwcyA2ICZhbXA7IDcgd2lsbCBuZWVkIHRvIGJlIHBlcmZvcm1lZAorICAgIGZvciB0aGlzIGFwcGxpY2F0aW9uLCBhbmQgYW55IG90aGVyIHRoYXQgcmVsaWVzIG9uIEFwcGxpY2F0aW9uUmVzb3VyY2VzLnByb3BlcnRpZXMuPC9saT4KKyAgPGxpPkV4dHJhY3QgQXBwbGljYXRpb25SZXNvdXJjZXMucHJvcGVydGllcyBmcm9tIHRoZSAqLndhciBmaWxlLCBhbmQgbWFudWFsbHkKKyAgICBjb3B5IGl0IHRvIHRoZSByZXNwZWN0aXZlIHBhY2thZ2UgaW4gdGhlIF90bXBfd2FyXyBkaXJlY3RvcnkgV2ViTG9naWMgY3JlYXRlZAorICAgIGZvciB0aGlzIGFwcGxpY2F0aW9uLiBBZ2FpbiByZWZlcnJpbmcgdG8gdGhlIHN0cnV0cy1leGFtcGxlIGFwcGxpY2F0aW9uLCB0aGlzCisgICAgd291bGQgYmU6PGJyLz4KKyAgICA8Y29kZT5jOlxqYWthcnRhLXN0cnV0c1x3ZWJhcHBzXFdFQi1JTkZcX3RtcF93YXJfc3RydXRzZXhhbXBsZTwvY29kZT48L2xpPgorICA8bGk+UmVzdGFydCBXZWJMb2dpYy4gWW91IHdpbGwgbm93IGJlIGFibGUgdG8gcnVuIHRoZSBhcHBsaWNhdGlvbjo8YnIvPgorICAgIDxjb2RlPmh0dHA6Ly9sb2NhbGhvc3Q6NzAwMS9zdHJ1dHNleGFtcGxlPC9jb2RlPjwvbGk+Cis8L3VsPgorPHA+VGhlIGFib3ZlIHN0ZXBzIHNob3VsZCBiZSBmb2xsb3dlZCBmb3IgYXBwbGljYXRpb25zIGRlcGxveWVkIGFzICoud2FyIGZpbGVzLgorICBGb3IgdW5wYWNrZWQgd2ViIGFwcGxpY2F0aW9ucywgY29uZmlndXJhdGlvbiBpbnZvbHZlcyBhZGRpbmcgYm90aCA8Y29kZT5zdHJ1dHMuamFyPC9jb2RlPgorICBhbmQgPGNvZGU+L1dFQi1JTkYvY2xhc3NlczwvY29kZT4gdG8gdGhlIFdlYkxvZ2ljIGNsYXNzcGF0aC4gRm9yIHRoaXMgcmVhc29uLAorICBJIHdvdWxkIHN1Z2dlc3QgZGVwbG95aW5nIGFwcGxpY2F0aW9ucyBhcyB3YXIgZmlsZXMgdG8gV2ViTG9naWMuIEhvd2V2ZXIsIHRoZQorICBzYW1lIGV4YW1wbGUgYXBwbGljYXRpb24gY2FuIGJlIHN1Y2Nlc3NmdWxseSBkZXBsb3llZCBpbiBleHRyYWN0ZWQgZm9ybWF0IGJ5CisgIG1vZGlmeWluZyB3ZWJsb2dpYy5wcm9wZXJ0aWVzIChhc3N1bWluZyB0aGUgd2FyIHdhcyBleHRyYWN0ZWQgdG8gZGlyZWN0b3J5IHdlYmFwcHMvc3RydXRzLWV4YW1wbGUpOjwvcD4KKzxwPjxjb2RlPndlYmxvZ2ljLmh0dHBkLndlYkFwcC5zdHJ1dHNleGFtcGxlPTxici8+CisgIGM6L2pha2FydGEtc3RydXRzL3dlYmFwcHMvc3RydXRzLWV4YW1wbGUvPC9jb2RlPjwvcD4KKzxwPkFuZCBzdGFydGluZyBXZWJMb2dpYyB3aXRoIHRoZSB1cGRhdGVkIFdlYkxvZ2ljIGNsYXNzcGF0aC4gRm9yIGV4YW1wbGU6PC9wPgorPHA+PGNvZGU+YzpcamRrMS4zXGJpblxqYXZhIC1tczE2bSAtbXg2NG08YnIvPgorICAtY2xhc3NwYXRoIGM6XHdlYmxvZ2ljXGxpYlx3ZWJsb2dpYzUxMHNwOGJvb3QuamFyOzwvY29kZT48L3A+CisgIDxoci8+CisgIDxoND5BZGRpdGlvbmFsIFJlY29tbWVuZGF0aW9uczwvaDQ+CisgIDx1bD4KKyAgPGxpPlNlcnZsZXQgYW5kIEpTUC1SZWxvYWRpbmcgc2hvdWxkIGJlIHR1cm5lZCBvZmYuIEZpcnN0LCB5b3UgcGF5IGEgcGVyZm9ybWFuY2UKKyAgICBwZW5hbHR5LiBEZXBlbmRpbmcgb24gdGhlIG51bWJlciBvZiBKU1BzLCB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzIGFuZCB0aGUKKyAgICBjb25maWd1cmVkIGNoZWNraW5nIGludGVydmFsLCB0aGUgc2VydmVyIHdpbGwgc2xvdyBkb3duLiBTZWNvbmQsIHdpdGggSlNQLSBhbmQKKyAgICBTZXJ2bGV0IHJlbG9hZGluZywgb25lIG9wZW5zIHRoZSBkb29yIGZvciB2YXJpb3VzIFdlYmxvZ2ljIGNsYXNzbG9hZGVyIHByb2JsZW1zLAorICAgIHRoYXQgYXJlIGRpZmZpY3VsdCB0byBkaWFnbm9zZSwgZGlmZmljdWx0IHRvIGhhbmRsZSBhbmQgb2Z0ZW4gbGVhZCB0byBsb3N0CisgICAgSFRUUC1zZXNzaW9ucy48L2xpPgorICA8bGk+U2V0IHRoZSBuYW1lIG9mIHRoZSA8Y29kZT5zZXNzaW9uaWQ8L2NvZGU+IHRvIDxjb2RlPkpTRVNTSU9OSUQ8L2NvZGU+LCBpZiBjb29raWVzIGFyZSB1c2VkIGZvciBzZXNzaW9uCisgICAgdHJhY2tpbmcgYW5kIHRvIGpzZXNzaW9uaWQsIGlmIHNlc3Npb25zIGFyZSBVUkwtYmFzZWQuIChUaGVyZSBhcmUgYWRkaXRpb25hbAorICAgIHByb2JsZW1zIHJlbGF0ZWQgdG8gVVJMLWJhc2VkIHNlc3Npb25zLCBjYXVzZWQgZnJvbSBCRUEncyB3YXkgdG8gZW5jb2RlIHRoZSBzZXNzaW9uCisgICAgaWQgKEoyRUUtaW5jb21wYXRpYmxlKSBhcyBxdWVyeS1wYXJhbS4gRXNwZWNpYWxseSAmbHQ7YmVhbjppbmNsdWRlJmd0OyB3aWxsIG5vdCB3b3JrIHdpdGgKKyAgICBVUkwtYmFzZWQgc2Vzc2lvbnMgeWV0LiBIb3dldmVyLCB1c2luZyB0aGUgY29ycmVjdCBzZXNzaW9uIG5hbWUgc29sdmVzIGF0IGxlYXN0IHNvbWUKKyAgICBwcm9ibGVtcy4pPC9saT4KKyAgPGxpPkNvbmZpZ3VyZSB0aGUgSlNQLVNlcnZsZXQgcmVnaXN0cmF0aW9uIGluIDxjb2RlPndlYmxvZ2ljLnByb3BlcnRpZXM8L2NvZGU+IGZvcgorICAgIG1heGltdW0gSjJFRS1jb21wbGlhbmNlIGFuZC9vciBmb3IgbWF4aW11bSBwZXJmb3JtYW5jZS48L2xpPjwvdWw+CisgIDxwPlRoZSBKU1AtU2VydmxldCBzdXBwb3J0cyBzb21lIGluaXRpYWxpemF0aW9uIHBhcmFtZXRlcnMgdGhhdCBjYW4gYmUgY3VzdG9taXplZCB0byBnZXQKKyAgICBiZXN0IHBlcmZvcm1hbmNlLCBtYXhpbXVtIGNvbXBsaWFuY2Ugb3IgKGFzIHNob3duIGJlbG93KSBlYXNpZXIgZGVidWdnaW5nOjwvcD4KKzxwcmU+CisgIHdlYmxvZ2ljLmh0dHBkLmluaXRBcmdzLiouanNwPVwKKyAgICAgICBwYWdlQ2hlY2tTZWNvbmRzPS0xLFwKKyAgICAgICAgc2V0RW1wdHlTdHJpbmdzPWZhbHNlLFwKKyAgICAgICAgIGNvbXBpbGVDb21tYW5kPS4vX2pzcENvbXBpbGVyXy5jbWQsXAorICAgICAgICAgICAgIHdvcmtpbmdEaXI9L3dlYmxvZ2ljL215c2VydmVyL3RtcF9jbGFzc2ZpbGVzLFwKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkPXRydWUsXAorICAgICAgICAgICAgICAgICAgZGVidWc9dHJ1ZSxcCisgICAgICAgICAgICAgICAgdmVyYm9zZT10cnVlCis8L3ByZT4KKzxwPkluIHRoZSBhYm92ZSBleGFtcGxlLCB0aGUgYmF0Y2ggZmlsZSAoPGNvZGU+X2pzcENvbXBpbGVyXy5jbWQ8L2NvZGU+KSBpbnZva2VzIGppa2VzCisgICB3aGljaCByZXN1bHRzIGRyYW1hdGljYWxseSByZWR1Y2VkIHN0YXJ0dXAgdGltZXMgKGppa2VzIGlzIGFib3V0IHRocmVlIHRpbWVzIGZhc3RlcgorICAgdGhhbiBqYXZhYy4pIFRoZSBiYXRjaGZpbGUgY29udGFpbnMgb25seSBhIHNpbmdsZSBsaW5lOjwvcD4KKworPHByZT5AamlrZXMgLWcgLW5vd2FybiAlKjwvcHJlPgorCis8cD5UaGUgbmV4dCBjb25maWd1cmF0aW9uIGNvdWxkIGJlIHVzZWQgd2hlbiBhbGwgdGVzdHMgaGF2ZSBiZWVuIGRvbmUgYW5kIHNwZWVkIGlzIHRoZQorbWFqb3IgY29uY2VybiAuLi48L3A+CisKKzxwcmU+CisgIHdlYmxvZ2ljLmh0dHBkLmluaXRBcmdzLiouanNwPVwKKyAgICAgICBwYWdlQ2hlY2tTZWNvbmRzPS0xLFwKKyAgICAgICAgc2V0RW1wdHlTdHJpbmdzPWZhbHNlLFwKKyAgICAgICAgIGNvbXBpbGVDb21tYW5kPS4vX2pzcENvbXBpbGVyXy5jbWQsXAorICAgICAgICAgICAgIHdvcmtpbmdEaXI9L3dlYmxvZ2ljL215c2VydmVyL3RtcF9jbGFzc2ZpbGVzLFwKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkPWZhbHNlLFwKKyAgICAgICAgICAgICAgICAgIGRlYnVnPWZhbHNlLFwKKyAgICAgICAgICAgICAgICB2ZXJib3NlPWZhbHNlCis8L3ByZT4KKworPHA+Li4uIHRvZ2V0aGVyIHdpdGggLi4uPC9wPgorCis8cHJlPkBqaWtlcyAtTyAtbm93YXJuICUqPC9wcmU+CisKKzxwPldlYmxvZ2ljIHN1cHBvcnRzIHNpbWlsYXIgc2V0dGluZ3MgdGhyb3VnaCA8Y29kZT4mbHQ7Y29udGV4dC1wYXJhbXMmZ3Q7PC9jb2RlPiBpbiA8Y29kZT53ZWIueG1sPC9jb2RlPgorKFBsZWFzZSByZWFkIHRoZSBsYXRlc3QgZG9jdW1lbnRhdGlvbiBhdCB0aGUgQkVBIHdlYnNpdGUgZm9yIGRldGFpbHMuKTwvcD4KKzxwPkZvciBhZGRpdGlvbmFsIGlzc3Vlcywgc2VlIGFsc28gPGEKK2hyZWY9Imh0dHA6Ly93d3cubWFpbC1hcmNoaXZlLmNvbS9zdHJ1dHMtZGV2QGpha2FydGEuYXBhY2hlLm9yZy9tc2cwMDI4NC5odG1sIj5Nb3JlCitmaXhlcyBmb3IgV0xTIDUuMSBTUDg8L2E+IGZyb20gdGhlIFN0cnV0cyBEZXZlbG9wZXIgbWFpbGluZyBsaXN0PC9wPgorPGhyLz4KKyAgPHA+QmFjayB0byA8YSBocmVmPSJpbnN0YWxsYXRpb24uaHRtbCNDb250YWluZXJzIj5JbnN0YWxsYXRpb248L2E+PC9wPgorPC9zZWN0aW9uPgorCis8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2luc3RhbGxhdGlvbi54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW5zdGFsbGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGJmODU2Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2luc3RhbGxhdGlvbi54bWwKQEAgLTAsMCArMSwzODggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0iaW5zdGFsbGF0aW9uLmh0bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5UaGUgU3RydXRzIEZyYW1ld29yayBQcm9qZWN0IC0gSW5zdGFsbGF0aW9uICgxLjEpPC90aXRsZT4KKyAgPC9wcm9wZXJ0aWVzPgorCisgIDxib2R5PgorICA8c2VjdGlvbiBuYW1lPSI2LjIgSW5zdGFsbGF0aW9uIiBocmVmPSJpbnN0YWxsYXRpb24iLz4KKyAgPHNlY3Rpb24gbmFtZT0iUHJlcmVxdWlzaXRlIFNvZnR3YXJlIiBocmVmPSJQcmVyZXF1aXNpdGVzIj4KKworICA8cD5UaGUgU3RydXRzIGJpbmFyeSBkaXN0cmlidXRpb24gbmVlZHMgdGhyZWUgb3RoZXIgc29mdHdhcmUgcGFja2FnZXMgaW5zdGFsbGVkIHRvCisgIG9wZXJhdGUuIFlvdSBtYXkgYWxyZWFkeSBoYXZlIHRoZXNlIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS4gVG8gYnVpbGQgU3RydXRzIGZyb20KKyAgc291cmNlIHlvdSBtYXkgbmVlZCB0byBhY3F1aXJlIGFuZCBpbnN0YWxsIHNldmVyYWwgb3RoZXJzLiBUaGUgY29tcGxldGUgbGlzdCBpcyBhcworICBmb2xsb3dzOjwvcD4KKworICA8dWw+CisgIDxsaT48c3Ryb25nPkphdmEgRGV2ZWxvcG1lbnQgS2l0PC9zdHJvbmc+IC0gWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBkb3dubG9hZCBhbmQgaW5zdGFsbAorICAgICAgYSBKYXZhMiAodmVyc2lvbiAxLjIgb3IgbGF0ZXIpIEphdmEgRGV2ZWxvcG1lbnQgS2l0IGltcGxlbWVudGF0aW9uIGZvcgorICAgICAgeW91ciBvcGVyYXRpbmcgc3lzdGVtIHBsYXRmb3JtLgorICAgICAgQSBnb29kIHN0YXJ0aW5nIHBvaW50IGZvciBsb2NhdGluZyBKYXZhIERldmVsb3BtZW50IEtpdCBkaXN0cmlidXRpb25zIGlzCisgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UiPmh0dHA6Ly9qYXZhLnN1bi5jb20vajJzZTwvYT4uCisgICAgICBUbyBidWlsZCBTdHJ1dHMsIEphdmEgMS40LjIgb3IgbGF0ZXIgaXMgc3VnZ2VzdGVkLiA8L2xpPgorCisgIDxsaT48c3Ryb25nPlNlcnZsZXQgQ29udGFpbmVyPC9zdHJvbmc+IC0gWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBkb3dubG9hZCBhbmQgaW5zdGFsbCBhCisgICAgICBzZXJ2bGV0IGNvbnRhaW5lciB0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgU2VydmxldCBBUEkgU3BlY2lmaWNhdGlvbiwKKyAgICAgIHZlcnNpb24gMi4yIG9yIGxhdGVyLCBhbmQgdGhlIEphdmFTZXJ2ZXIgUGFnZXMgKEpTUCkgU3BlY2lmaWNhdGlvbiwKKyAgICAgIHZlcnNpb24gMS4xIG9yIGxhdGVyLiAgT25lIHBvcHVsYXIgY2hvaWNlIGlzIHRvIGRvd25sb2FkIEFwYWNoZSdzCisgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RvbWNhdCI+VG9tY2F0PC9hPiAodmVyc2lvbiAzLjEKKyAgICAgIG9yIGxhdGVyIHJlcXVpcmVkLCB2ZXJzaW9uIDMuMyBvciBsYXRlciByZWNvbW1lbmRlZCkuPC9saT4KKworICA8bGk+PHN0cm9uZz5YTUwgUGFyc2VyPC9zdHJvbmc+IC0gU3RydXRzIDxzdHJvbmc+cmVxdWlyZXM8L3N0cm9uZz4gdGhlIHByZXNlbmNlIG9mIGFuIFhNTAorICAgICAgcGFyc2VyIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBKYXZhIEFQSSBmb3IgWE1MIFBhcnNpbmcgKEpBWFApCisgICAgICBzcGVjaWZpY2F0aW9uLCAxLjEgb3IgbGF0ZXIuIFRoaXMgaXMgYnVuZGxlZCB3aXRoIEoyU0UgMS40IGFuZCBsYXRlci4KKyAgICAgIChGb3IgZWFybGllciB2ZXJzaW9ucyBvZiBKYXZhLCB0aGUgZWFzaWVzdCB3YXkgdG8gb2J0YWluIEpBWFAgaXMKKyAgICAgIHByb2JhYmx5IGJ5IGRvd25sb2FkaW5nIHRoZSBXZWIgU2VydmljZXMgRGV2ZWxvcGVycyBLaXQKKyAgICAgICgxLjEgb3IgbGF0ZXIhKS4gU2VlIHRoZSA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3htbC9qYXhwL2ZhcS5odG1sI2pheHAtcmktbGF0ZXN0Ij4KKyAgICAgIFN1biBKQVhQIEZBUTwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24uKQorICAgICAgSW4gU3RydXRzLWJhc2VkIHdlYiBhcHBsaWNhdGlvbnMsIHlvdSBtYXkgcmVwbGFjZSB0aGUgcmVmZXJlbmNlCisgICAgICBpbXBsZW1lbnRhdGlvbiBjbGFzc2VzIHdpdGggYW55IG90aGVyIEpBWFAgY29tcGxpYW50IHBhcnNlciwgc3VjaCBhcworICAgICAgPGEgaHJlZj0iaHR0cDovL3htbC5hcGFjaGUub3JnL3hlcmNlcy1qIj5YZXJjZXM8L2E+LiAgU2VlIGRldGFpbGVkCisgICAgICBpbnN0cnVjdGlvbnMgcmVsYXRlZCB0byB0aGUgcGFyc2VyIGluIHRoZSBpbnN0cnVjdGlvbnMgZm9yCisgICAgICA8YSBocmVmPSIjQnVpbGRpbmciPmJ1aWxkaW5nPC9hPiBhbmQgPGEgaHJlZj0iI0luc3RhbGxpbmciPmluc3RhbGxpbmc8L2E+CisgICAgICBTdHJ1dHMsIGJlbG93LjwvbGk+CisKKyAgPGxpPjxzdHJvbmc+QW50IEJ1aWxkIFN5c3RlbTwvc3Ryb25nPiAtIElmIHlvdSBhcmUgYnVpbGRpbmcgU3RydXRzIGZyb20gdGhlCisgICAgICBzb3VyY2UgZGlzdHJpYnV0aW9uLCB5b3UgbXVzdCBkb3dubG9hZCBhbmQgaW5zdGFsbCB2ZXJzaW9uIDEuNS40IChvciBsYXRlcikKKyAgICAgIG9mIHRoZSA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2FudCI+QW50PC9hPiBidWlsZCBzeXN0ZW0uCisgICAgICBUaGlzIHBhY2thZ2UgaXMgYWxzbyBzdHJvbmdseSByZWNvbW1lbmRlZCBmb3IgdXNlIGluIGRldmVsb3BpbmcgeW91cgorICAgICAgb3duIHdlYiBhcHBsaWNhdGlvbnMgYmFzZWQgb24gU3RydXRzLgorICAgICAgPHVsPgorICAgICAgPGxpPk1ha2Ugc3VyZSB0aGF0IHRoZSAiYW50IiBhbmQgImFudC5iYXQiIHNjcmlwdHMgYXJlIGV4ZWN1dGFibGUsIGJ5CisgICAgICAgICAgYWRkaW5nIHRoZSAkQU5UX0hPTUUvYmluIGRpcmVjdG9yeSB0byB5b3VyIFBBVEggZW52aXJvbm1lbnQKKyAgICAgICAgICB2YXJpYWJsZS48L2xpPgorICAgICAgPC91bD48L2xpPgorCisgIDxsaT48c3Ryb25nPlNlcnZsZXQgQVBJIENsYXNzZXM8L3N0cm9uZz4gLSBJbiBvcmRlciB0byBjb21waWxlIFN0cnV0cyBpdHNlbGYsCisgICAgICBvciBhcHBsaWNhdGlvbnMgdGhhdCB1c2UgU3RydXRzLCB5b3Ugd2lsbCBuZWVkIGEgPGNvZGU+c2VydmxldC5qYXI8L2NvZGU+CisgICAgICBmaWxlIGNvbnRhaW5pbmcgdGhlIFNlcnZsZXQgYW5kIEpTUCBBUEkgY2xhc3Nlcy4gIE1vc3Qgc2VydmxldCBjb250YWluZXJzCisgICAgICBpbmNsdWRlIHRoaXMgSkFSIGZpbGUuICBPdGhlcndpc2UsIHlvdSBjYW4gZ2V0IHRoZSBTZXJ2bGV0IEFQSSBjbGFzc2VzCisgICAgICBkaXN0cmlidXRpb24gZnJvbQorICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9idWlsZHMvamFrYXJ0YS1zZXJ2bGV0YXBpIj5oZXJlPC9hPi4KKyAgICAgIDwvbGk+CisKKyAgPGxpPjxzdHJvbmc+SkRCQyAyLjAgT3B0aW9uYWwgUGFja2FnZSBDbGFzc2VzPC9zdHJvbmc+IC0gU3RydXRzIHN1cHBvcnRzCisgICAgICBhbiBvcHRpb25hbCBpbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5qYXZheC5zcWwuRGF0YVNvdXJjZTwvY29kZT4sIHNvIGl0CisgICAgICByZXF1aXJlcyB0aGUgQVBJIGNsYXNzZXMgdG8gYmUgY29tcGlsZWQuICBUaGV5IGNhbiBiZSBkb3dubG9hZGVkIGZyb20KKyAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvamRiYy9kb3dubG9hZC5odG1sIj5odHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2pkYmMvZG93bmxvYWQuaHRtbDwvYT4uPC9saT4KKworICA8bGk+CisgICAgICA8c3Ryb25nPkpha2FydGEgQ29tbW9ucyBQYWNrYWdlczwvc3Ryb25nPiAtIFN0cnV0cyB1dGlsaXplcyBzZXZlcmFsCisgICAgICBwYWNrYWdlcyBmcm9tIHRoZSA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvIj5KYWthcnRhCisgICAgICBDb21tb25zIFByb2plY3Q8L2E+LgorICAgICAgVGhlc2UgYXJlIHRoZSBwYWNrYWdlcyB3aGljaCBtdXN0IGJlIGF2YWlsYWJsZSBpZiB5b3Ugd2lzaCB0bworICAgICAgYnVpbGQgU3RydXRzIGZyb20gc291cmNlOgorICAgICAgPHVsPgorICAgICAgPGxpPjxlbT5CZWFudXRpbHM8L2VtPiAoVmVyc2lvbiAxLjYuMSBvciBsYXRlcik8L2xpPgorICAgICAgPGxpPjxlbT5Db2xsZWN0aW9uczwvZW0+IChWZXJzaW9uIDIuMSBvciBsYXRlcik8L2xpPgorICAgICAgPGxpPjxlbT5EaWdlc3RlcjwvZW0+IChWZXJzaW9uIDEuNSBvciBsYXRlcik8L2xpPgorICAgICAgPGxpPjxlbT5GaWxlVXBsb2FkPC9lbT4gKFZlcnNpb24gMS4wIG9yIGxhdGVyKTwvbGk+CisgICAgICA8bGk+PGVtPkxhbmc8L2VtPiAoVmVyc2lvbiAxLjAuMSBvciBsYXRlcik8L2xpPgorICAgICAgPGxpPjxlbT5Mb2dnaW5nPC9lbT4gKFZlcnNpb24gMS4wLjMgb3IgbGF0ZXIgd2hlbiBpdCBpcyBhdmFpbGFibGUpPC9saT4KKyAgICAgIDxsaT48ZW0+U3RydXRzLUxlZ2FjeTwvZW0+IChWZXJzaW9uIDEuMCBvciBsYXRlcik8L2xpPgorICAgICAgPGxpPjxlbT5WYWxpZGF0b3I8L2VtPiAoVmVyc2lvbiAxLjAuMiBvciBsYXRlcikgPC9saT4KKyAgICAgIDwvdWw+CisgICAgICBGb3IgeW91ciBjb252ZW5pZW5jZSwgdGhlIHJlcXVpc2l0ZSBKQVJzIGFyZSBwcm92aWRlZCBhcyBhIHNpbmdsZQorICAgICAgZG93bmxvYWQgdW5kZXIgdGhlIDxjb2RlPmxpYjwvY29kZT4gc3ViLWRpcmVjdG9yeSB3aXRoIGVhY2ggcmVsZWFzZQorICAgICAgYW5kIGJldGEgZGlzdHJpYnV0aW9uLgorICAgICAgUGxlYXNlIG5vdGUgdGhhdCB0aGUgbWluaW11bSByZXF1aXJlbWVudHMgbWF5IGNoYW5nZSBiZXR3ZWVuIHJlbGVhc2VzCisgICAgICBhbmQgYmV0YXMsIGFuZCBzb21lIEpBUnMgbWF5IG5lZWQgdG8gYmUgdXBkYXRlZCB0byB1c2UgdGhlIGxhdGVzdAorICAgICAgTmlnaHRseSBCdWlsZC4KKyAgPC9saT4KKworICA8bGk+PHN0cm9uZz5KYWthcnRhIE9STzwvc3Ryb25nPiAtCisgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvb3JvL2luZGV4Lmh0bWwiPkFwYWNoZSBKYWthcnRhIE9STzwvYT4KKyAgdmVyc2lvbiAyLjAuNiAob3IgbGF0ZXIpIGlzICByZXF1aXJlZCB0byBidWlsZCBTdHJ1dHMgZnJvbSBzb3VyY2UuPC9saT4KKworICA8bGk+PHN0cm9uZz5YYWxhbiBYU0xUIFByb2Nlc3Nvcjwvc3Ryb25nPiAtIElmIHlvdSBhcmUgYnVpbGRpbmcgU3RydXRzIGZyb20KKyAgICAgIHRoZSBzb3VyY2UgZGlzdHJpYnV0aW9uLCB5b3Ugd2lsbCBuZWVkIGEgdmVyc2lvbiBvZiBYYWxhbiB0byBwZXJmb3JtCisgICAgICBYU0xUIHRyYW5zZm9ybWF0aW9ucy4gSWYgeW91IGFyZSB1c2luZyB0aGUgSkFYUC8xLjEgWE1MIHBhcnNlciwgeW91CisgICAgICBzaG91bGQgdXNlIHRoZSB2ZXJzaW9uIG9mIDxjb2RlPnhhbGFuLmphcjwvY29kZT4gc2hpcHBlZCB3aXRoIGl0LgorICAgICAgT3RoZXJ3aXNlLCBkb3dubG9hZCBhbmQgaW5zdGFsbCB2ZXJzaW9uIDEuMiBvZiBYYWxhbiBmcm9tCisgICAgICA8YSBocmVmPSJodHRwOi8veG1sLmFwYWNoZS5vcmcveGFsYW4iPmhlcmU8L2E+LgorICA8L2xpPgorCisgIDxsaT48c3Ryb25nPkNhY3R1cyBUZXN0aW5nPC9zdHJvbmc+IC0gSWYgeW91IHBsYW4gb24gdGVzdGluZyB0aGUgU3RydXRzIGFwcGxpY2F0aW9ucworICAgICAgaW4gdGhpcyBkaXN0cmlidXRpb24sIHlvdSBtdXN0IGRvd25sb2FkIGFuZCBpbnN0YWxsIHZlcnNpb24gMS4zCisgICAgICBvZiB0aGUgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jYWN0dXMiPkNhY3R1czwvYT4gdGVzdCBmcmFtZXdvcmsuCisgICAgICBUaGlzIHBhY2thZ2UgaXMgYWxzbyByZWNvbW1lbmRlZCBmb3IgdXNlIGluIGRldmVsb3BpbmcgeW91cgorICAgICAgb3duIHVuaXQgdGVzdHMgZm9yIHlvdXIgd2ViIGFwcGxpY2F0aW9ucyBiYXNlZCBvbiBTdHJ1dHMuCisgIDwvbGk+CisKKyAgPC91bD4KKworICA8L3NlY3Rpb24+CisKKyAgPHNlY3Rpb24gbmFtZT0iSW5zdGFsbCBBIFN0cnV0cyBCaW5hcnkgRGlzdHJpYnV0aW9uIiBocmVmPSJJbnN0YWxsaW5nIj4KKworICAgIDxwPkZpcnN0LCBkb3dubG9hZCBhIGJpbmFyeSBkaXN0cmlidXRpb24gb2YgU3RydXRzIGJ5IGZvbGxvd2luZyB0aGUKKyAgICBpbnN0cnVjdGlvbnMgPGEgaHJlZj0iLi4vYWNxdWlyaW5nLmh0bWwiPmhlcmU8L2E+LiAgVGhlbiwgbWFrZSBzdXJlCisgICAgeW91IGhhdmUgZG93bmxvYWRlZCBhbmQgaW5zdGFsbGVkIHRoZQorICAgIDxhIGhyZWY9IiNQcmVyZXF1aXNpdGVzIj5wcmVyZXF1aXNpdGU8L2E+IHNvZnR3YXJlIHBhY2thZ2VzIGRlc2NyaWJlZAorICAgIGFib3ZlLjwvcD4KKworICAgIDxwPlVucGFjayB0aGUgU3RydXRzIGJpbmFyeSBkaXN0cmlidXRpb24gaW50byBhIGNvbnZlbmllbnQgZGlyZWN0b3J5LgorICAgIChJZiB5b3UgPGEgaHJlZj0iI0J1aWxkaW5nIj5idWlsZCBTdHJ1dHMgZnJvbSB0aGUgc291cmNlIGRpc3RyaWJ1dGlvbjwvYT4sCisgICAgdGhlIHJlc3VsdCBvZiB0aGUgYnVpbGQgd2lsbCBhbHJlYWR5IGJlIGFuIHVucGFja2VkIGJpbmFyeSBkaXN0cmlidXRpb24KKyAgICBmb3IgeW91KS4gVGhlIGRpc3RyaWJ1dGlvbiBjb25zaXN0cyBvZiB0aGUgZm9sbG93aW5nIGNvbnRlbnRzOjwvcD4KKworICAgIDx1bD4KKyAgICA8bGk+PHN0cm9uZz5saWIvY29tbW9ucy0qLmphcjwvc3Ryb25nPiAtIFRoZXNlIEpBUiBmaWxlcyBjb250YWluIHBhY2thZ2VzCisgICAgICAgIGZyb20gdGhlIEpha2FydGEgQ29tbW9ucyBwcm9qZWN0IHRoYXQgYXJlIHV0aWxpemVkIHdpdGhpbiBTdHJ1dHMKKyAgICAgICAgaXRzZWxmLiAgV2hlbiB5b3UgYXNzZW1ibGUgYSBTdHJ1dHMtYmFzZWQgYXBwbGljYXRpb24sIHlvdSB3aWxsIG5lZWQKKyAgICAgICAgdG8gY29weSB0aGVzZSBmaWxlcyB0byB0aGUgPGNvZGU+V0VCLUlORi9saWI8L2NvZGU+IGRpcmVjdG9yeS48L2xpPgorICAgIDxsaT48c3Ryb25nPmxpYi9qZGJjMl8wLXN0ZGV4dC5qYXI8L3N0cm9uZz4gLSBUaGUgSkRCQyAyLjAgT3B0aW9uYWwgUGFja2FnZQorICAgICAgICBBUEkgY2xhc3Nlcy4gIFlvdSB3aWxsIG5lZWQgdG8gY29weSB0aGlzIGZpbGUgdG8geW91cgorICAgICAgICA8Y29kZT5XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5IGlmIHlvdSBhcmUgdXRpbGl6aW5nIHRoZSBkYXRhCisgICAgICAgIHNvdXJjZXMgc3VwcG9ydCBwcm92aWRlZCBieSBTdHJ1dHMuPC9saT4KKyAgICA8bGk+PHN0cm9uZz5saWIvc3RydXRzLmphcjwvc3Ryb25nPiAtIFRoaXMgSkFSIGZpbGUgY29udGFpbnMgYWxsIG9mIHRoZQorICAgICAgICBKYXZhIGNsYXNzZXMgaW5jbHVkZWQgaW4gU3RydXRzLiAgSXQgc2hvdWxkIGJlIGNvcGllZCBpbnRvIHRoZQorICAgICAgICA8Y29kZT5XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5IG9mIHlvdXIgd2ViIGFwcGxpY2F0aW9uLgorICAgICAgICA8ZW0+V0FSTklORzwvZW0+IC0gSWYgeW91IGFyZSBnb2luZyB0byBiZSBob3N0aW5nIG11bHRpcGxlIFN0cnV0cworICAgICAgICBiYXNlZCBhcHBsaWNhdGlvbnMgb24gdGhlIHNhbWUgc2VydmxldCBjb250YWluZXIsIHlvdSB3aWxsIGJlIHRlbXB0ZWQKKyAgICAgICAgdG8gcGxhY2UgdGhlIDxjb2RlPnN0cnV0cy5qYXI8L2NvZGU+IGZpbGUgaW50byB0aGUgc2hhcmVkIHJlcG9zaXRvcnkKKyAgICAgICAgc3VwcG9ydGVkIGJ5IHlvdXIgY29udGFpbmVyLiAgQmUgYWR2aXNlZCB0aGF0IHRoaXMgd2lsbCBsaWtlIGNhdXNlIHlvdQorICAgICAgICB0byBlbmNvdW50ZXIgQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBwcm9ibGVtcyB1bmxlc3MgPGVtPmFsbDwvZW0+IG9mCisgICAgICAgIHlvdXIgYXBwbGljYXRpb24gY2xhc3NlcyBhcmUgc3RvcmVkIGluIHRoZSBzaGFyZWQgcmVwb3NpdG9yeS48L2xpPgorICAgIDxsaT48c3Ryb25nPmxpYi9zdHJ1dHMtKi50bGQ8L3N0cm9uZz4gLSBUaGVzZSBhcmUgdGhlICJ0YWcgbGlicmFyeQorICAgICAgICBkZXNjcmlwdG9yIiBmaWxlcyB0aGF0IGRlc2NyaWJlIHRoZSBjdXN0b20gdGFncyBpbiB0aGUgdmFyaW91cyBTdHJ1dHMKKyAgICAgICAgdGFnIGxpYnJhcmllcy4gVGhleSBzaG91bGQgYmUgY29waWVkIGludG8gdGhlIDxjb2RlPldFQi1JTkY8L2NvZGU+CisgICAgICAgIGRpcmVjdG9yeSBvZiB5b3VyIHdlYiBhcHBsaWNhdGlvbi4gKFNlcnZsZXQgMi4zIGNhbiBvbWl0IHRoaXMgc3RlcAorICAgICAgICBpZiB0aGUgPGEgaHJlZj0iY29uZmlndXJhdGlvbi5odG1sI2RkX2NvbmZpZ190YWdsaWJfMjMiPnN0YW5kYXJkIHVyaTwvYT4KKyAgICAgICAgaXMgcmVmZXJlbmNlZC4pPC9saT4KKyAgICA8bGk+PHN0cm9uZz53ZWJhcHBzL3N0cnV0cy1ibGFuay53YXI8L3N0cm9uZz4gLSBUaGlzIGlzIGEgc2ltcGxlICJ3ZWIKKyAgICAgICAgYXBwbGljYXRpb24gYXJjaGl2ZSIgZmlsZSBjb250YWluaW5nIGEgYmFzaWMgc3RhcnRpbmcgcG9pbnQgZm9yCisgICAgICAgIGJ1aWxkaW5nIHlvdXIgb3duIFN0cnV0cy1iYXNlZCBhcHBsaWNhdGlvbnMuPC9saT4KKyAgICA8bGk+PHN0cm9uZz53ZWJhcHBzL3N0cnV0cy1kb2N1bWVudGF0aW9uLndhcjwvc3Ryb25nPiAtIFRoaXMgaXMgYQorICAgICAgICAid2ViIGFwcGxpY2F0aW9uIGFyY2hpdmUiIGZpbGUgY29udGFpbmluZyBhbGwgb2YgdGhlIFN0cnV0cworICAgICAgICBkb2N1bWVudGF0aW9uIGZvdW5kIG9uIHRoZQorICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cyI+U3RydXRzIHdlYiBzaXRlPC9hPgorICAgICAgICAoaW5jbHVkaW5nIHRoZXNlIHBhZ2VzKS4gIFlvdSBjYW4gaW5zdGFsbCB0aGlzIHdlYiBhcHBsaWNhdGlvbgorICAgICAgICBvbiBhbnkgc2VydmxldCBjb250YWluZXIgY29tcGF0aWJsZSB3aXRoIFNlcnZsZXQgQVBJIDIuMiBvciBsYXRlci48L2xpPgorICAgIDxsaT48c3Ryb25nPndlYmFwcHMvc3RydXRzLWV4YW1wbGUud2FyPC9zdHJvbmc+IC0gVGhpcyBpcyBhbiBleGFtcGxlCisgICAgICAgIHdlYiBhcHBsaWNhdGlvbiB0aGF0IHVzZXMgYSBsYXJnZSBwZXJjZW50YWdlIG9mIFN0cnV0cyBmZWF0dXJlcy4KKyAgICAgICAgWW91IGNhbiBpbnN0YWxsIHRoaXMgd2ViIGFwcGxpY2F0aW9uIG9uIGFueSBzZXJ2bGV0IGNvbnRhaW5lcgorICAgICAgICBjb21wYXRpYmxlIHdpdGggdGhlIFNlcnZsZXQgMi4yIChvciBsYXRlcikgYW5kIEpTUCAxLjEgKG9yIGxhdGVyKQorICAgICAgICBzcGVjaWZpY2F0aW9ucy4gIElmIGFuIFhNTCBwYXJzZXIgaXMgbm90IG1hZGUgYXZhaWxhYmxlIHRvIHdlYgorICAgICAgICBhcHBsaWNhdGlvbnMgYnkgeW91ciBjb250YWluZXIsIHlvdSB3aWxsIG5lZWQgdG8gYWRkIG9uZSB0byB0aGUKKyAgICAgICAgV0VCLUlORi9saWIgZGlyZWN0b3J5IG9mIHRoaXMgd2ViIGFwcGxpY2F0aW9uLjwvbGk+CisgICAgPGxpPjxzdHJvbmc+d2ViYXBwcy9zdHJ1dHMtZXhlcmNpc2UtdGFnbGliLndhcjwvc3Ryb25nPiAtIFRoaXMgd2ViCisgICAgICAgIGFwcGxpY2F0aW9uIGNvbnRhaW5zIHRlc3QgcGFnZXMgZm9yIHRoZSB2YXJpb3VzIGN1c3RvbSB0YWdzIHN1cHBvcnRlZAorICAgICAgICBieSBTdHJ1dHMuICBJdCBpcyBwcmltYXJpbHkgb2YgdXNlIHRvIGRldmVsb3BlcnMgd2hvIGFyZSBlbmhhbmNpbmcgdGhlCisgICAgICAgIFN0cnV0cyBjdXN0b20gdGFnIGxpYnJhcmllcywgYnV0IG1heSBhbHNvIGJlIHVzZWZ1bCBhcyBzaW1wbGUgZXhhbXBsZXMKKyAgICAgICAgb2YgdGhlIHVzYWdlIG9mIHZhcmlvdXMgU3RydXRzIHRhZ3MuPC9saT4KKyAgICA8bGk+PHN0cm9uZz53ZWJhcHBzL3N0cnV0cy11cGxvYWQud2FyPC9zdHJvbmc+IC0gVGhpcyB3ZWIgYXBwbGljYXRpb24KKyAgICAgICAgaXMgYSBxdWljayBleGFtcGxlIG9mIHVwbG9hZGluZyBmaWxlcyB1c2luZyB0aGUgU3RydXRzIGZyYW1ld29yay4KKyAgICA8L2xpPgorICAgIDxsaT48c3Ryb25nPndlYmFwcHMvc3RydXRzLXZhbGlkYXRvci53YXI8L3N0cm9uZz4gLSBUaGlzIHdlYiBhcHBsaWNhdGlvbgorICAgICAgICBpcyBhbiBleGFtcGxlIG9mIHVzaW5nIHRoZSB2YWxpZGF0b3IgZnJhbWV3b3JrLCB1c2luZyBib3RoIHRoZQorICAgICAgICBzZXJ2ZXItc2lkZSBhbmQgb3B0aW9uYWwgY2xpZW50LXNpZGUgdmFsaWRhdGlvbi4KKyAgICA8L2xpPgorICAgICAgICA8bGk+PHN0cm9uZz53ZWJhcHBzL3RpbGVzLWRvY3VtZW50YXRpb24ud2FyPC9zdHJvbmc+IC0gVGhpcyB3ZWIKKyAgICAgICAgYXBwbGljYXRpb24gZG9jdW1lbnRzIGhvdyB0byB1c2UgdGlsZXMsIGFuZCB3YXMgZGV2ZWxvcGVkIHVzaW5nIHRpbGVzLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRvIHVzZSBTdHJ1dHMgaW4geW91ciBvd24gYXBwbGljYXRpb24sIHlvdSB3aWxsIG5lZWQgdG8gZm9sbG93CisgICAgdGhlc2Ugc3RlcHM6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Q29weSB0aGUgZmlsZXMgPGNvZGU+bGliL2NvbW1vbnMtKi5qYXI8L2NvZGU+IGZyb20gdGhlIFN0cnV0cworICAgICAgICBkaXN0cmlidXRpb24gaW50byB0aGUgPGNvZGU+V0VCLUlORi9saWI8L2NvZGU+IGRpcmVjdG9yeSBvZiB5b3VyCisgICAgICAgIHdlYiBhcHBsaWNhdGlvbi48L2xpPgorICAgIDxsaT5Db3B5IHRoZSBmaWxlIDxjb2RlPmxpYi9zdHJ1dHMuamFyPC9jb2RlPiBmcm9tIHRoZSBTdHJ1dHMgZGlzdHJpYnV0aW9uCisgICAgICAgIGludG8gdGhlIDxjb2RlPldFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3Rvcnkgb2YgeW91ciB3ZWIgYXBwbGljYXRpb24uCisgICAgICAgIDwvbGk+CisgICAgPGxpPkNvcHkgdGhlIGFsbCBvZiB0aGUgZmlsZXMgdGhhdCBtYXRjaCA8Y29kZT5saWIvc3RydXRzLSoudGxkPC9jb2RlPgorICAgICAgICBmcm9tIHRoZSBTdHJ1dHMgZGlzdHJpYnV0aW9uIGludG8gdGhlIDxjb2RlPldFQi1JTkY8L2NvZGU+IGRpcmVjdG9yeQorICAgICAgICBvZiB5b3VyIHdlYiBhcHBsaWNhdGlvbi48L2xpPgorICAgIDxsaT5Nb2RpZnkgdGhlIDxjb2RlPldFQi1JTkYvd2ViLnhtbDwvY29kZT4gZmlsZSBmb3IgeW91ciB3ZWIgYXBwbGljYXRpb24KKyAgICAgICAgdG8gaW5jbHVkZSBhIDxjb2RlPiZsdDtzZXJ2bGV0Jmd0OzwvY29kZT4gZWxlbWVudCB0byBkZWZpbmUgdGhlCisgICAgICAgIGNvbnRyb2xsZXIgc2VydmxldCwgYW5kIGEgPGNvZGU+Jmx0O3NlcnZsZXQtbWFwcGluZyZndDs8L2NvZGU+IGVsZW1lbnQKKyAgICAgICAgdG8gZXN0YWJsaXNoIHdoaWNoIHJlcXVlc3QgVVJJcyBhcmUgbWFwcGVkIHRvIHRoaXMgc2VydmxldC4gVXNlIHRoZQorICAgICAgICA8Y29kZT5XRUItSU5GL3dlYi54bWw8L2NvZGU+IGZpbGUgZnJvbSB0aGUgU3RydXRzIGV4YW1wbGUgYXBwbGljYXRpb24KKyAgICAgICAgZm9yIGEgZGV0YWlsZWQgZXhhbXBsZSBvZiB0aGUgcmVxdWlyZWQgc3ludGF4LjwvbGk+CisgICAgPGxpPk1vZGlmeSB0aGUgPGNvZGU+V0VCLUlORi93ZWIueG1sPC9jb2RlPiBmaWxlIG9mIHlvdXIgd2ViIGFwcGxpY2F0aW9uCisgICAgICAgIHRvIGluY2x1ZGUgdGhlIGZvbGxvd2luZyB0YWcgbGlicmFyeSBkZWNsYXJhdGlvbnMgKFNlcnZsZXQgMi4zIGNhbiBvbWl0CisgICAgICAgIHRoaXMgc3RlcCBpZiB0aGUgPGEgaHJlZj0iY29uZmlndXJhdGlvbi5odG1sI2RkX2NvbmZpZ190YWdsaWJfMjMiPnN0YW5kYXJkIHVyaTwvYT4KKyAgICAgICAgaXMgcmVmZXJlbmNlZCk6PC9saT4KKyAgICA8L3VsPgorCis8cHJlPiZsdDt0YWdsaWImZ3Q7CisgICZsdDt0YWdsaWItdXJpJmd0Oy9XRUItSU5GL3N0cnV0cy1iZWFuLnRsZCZsdDsvdGFnbGliLXVyaSZndDsKKyAgJmx0O3RhZ2xpYi1sb2NhdGlvbiZndDsvV0VCLUlORi9zdHJ1dHMtYmVhbi50bGQmbHQ7L3RhZ2xpYi1sb2NhdGlvbiZndDsKKyZsdDsvdGFnbGliJmd0OworCismbHQ7dGFnbGliJmd0OworICAmbHQ7dGFnbGliLXVyaSZndDsvV0VCLUlORi9zdHJ1dHMtaHRtbC50bGQmbHQ7L3RhZ2xpYi11cmkmZ3Q7CisgICZsdDt0YWdsaWItbG9jYXRpb24mZ3Q7L1dFQi1JTkYvc3RydXRzLWh0bWwudGxkJmx0Oy90YWdsaWItbG9jYXRpb24mZ3Q7CismbHQ7L3RhZ2xpYiZndDsKKworJmx0O3RhZ2xpYiZndDsKKyAgJmx0O3RhZ2xpYi11cmkmZ3Q7L1dFQi1JTkYvc3RydXRzLWxvZ2ljLnRsZCZsdDsvdGFnbGliLXVyaSZndDsKKyAgJmx0O3RhZ2xpYi1sb2NhdGlvbiZndDsvV0VCLUlORi9zdHJ1dHMtbG9naWMudGxkJmx0Oy90YWdsaWItbG9jYXRpb24mZ3Q7CismbHQ7L3RhZ2xpYiZndDsKKzwvcHJlPgorCisgICAgPHVsPgorICAgIDxsaT5DcmVhdGUgYSBmaWxlIDxjb2RlPldFQi1JTkYvc3RydXRzLWNvbmZpZy54bWw8L2NvZGU+IHRoYXQgZGVmaW5lcyB0aGUKKyAgICAgICAgYWN0aW9uIG1hcHBpbmdzIGFuZCBvdGhlciBjaGFyYWN0ZXJpc3RpY3Mgb2YgeW91ciBzcGVjaWZpYyBhcHBsaWNhdGlvbi4KKyAgICAgICAgWW91IGNhbiB1c2UgdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPiBmaWxlIGZyb20gdGhlIFN0cnV0cworICAgICAgICBleGFtcGxlIGFwcGxpY2F0aW9uIGZvciBhIGRldGFpbGVkIGV4YW1wbGUgb2YgdGhlIHJlcXVpcmVkIHN5bnRheC48L2xpPgorICAgIDxsaT5BdCB0aGUgdG9wIG9mIGVhY2ggSlNQIHBhZ2UgdGhhdCB3aWxsIHVzZSB0aGUgU3RydXRzIGN1c3RvbSB0YWdzLAorICAgICAgICBhZGQgbGluZShzKSBkZWNsYXJpbmcgdGhlIFN0cnV0cyBjdXN0b20gdGFnIGxpYnJhcmllcyB1c2VkIG9uCisgICAgICAgIHRoaXMgcGFydGljdWxhciBwYWdlLCBsaWtlIHRoaXM6PC9saT4KKyAgICA8L3VsPgorCis8cHJlPiZsdDslQCB0YWdsaWIgdXJpPSIvV0VCLUlORi9zdHJ1dHMtYmVhbi50bGQiIHByZWZpeD0iYmVhbiIgJSZndDsKKyZsdDslQCB0YWdsaWIgdXJpPSIvV0VCLUlORi9zdHJ1dHMtaHRtbC50bGQiIHByZWZpeD0iaHRtbCIgJSZndDsKKyZsdDslQCB0YWdsaWIgdXJpPSIvV0VCLUlORi9zdHJ1dHMtbG9naWMudGxkIiBwcmVmaXg9ImxvZ2ljIiAlJmd0OworPC9wcmU+CisKKyAgICA8dWw+CisgICAgPGxpPldoZW4gY29tcGlsaW5nIHRoZSBKYXZhIGNsYXNzZXMgdGhhdCBjb21wcmlzZSB5b3VyIGFwcGxpY2F0aW9uLCBiZSBzdXJlCisgICAgICAgIHRvIGluY2x1ZGUgdGhlIDxjb2RlPnN0cnV0cy5qYXI8L2NvZGU+IGFuZAorICAgICAgICA8Y29kZT5jb21tb25zLSouamFyPC9jb2RlPiBmaWxlcyAoY29waWVkIGVhcmxpZXIpIG9uIHRoZQorICAgICAgICBDTEFTU1BBVEggdGhhdCBpcyBzdWJtaXR0ZWQgdG8gdGhlIGNvbXBpbGVyLjwvbGk+CisgICAgPC91bD4KKzwvc2VjdGlvbj4gPHNlY3Rpb24gbmFtZT0iSW5zdGFsbGluZyBTdHJ1dHMgV2l0aCBZb3VyIFNlcnZsZXQgQ29udGFpbmVyIiBocmVmPSJDb250YWluZXJzIj4KKworPHA+Rm9yIG1vc3QgY29udGFpbmVycywgeW91IG5lZWQgb25seSB0bzogPC9wPgorPHVsPgorICA8bGk+Q29weSB0aGUgV0FSIGZpbGVzIGluIHlvdXIgU3RydXRzIDxjb2RlPi93ZWJhcHA8L2NvZGU+IGRpcmVjdG9yeSB0byB5b3VyCisgICAgY29udGFpbmVycyA8Y29kZT53ZWJhcHBzPC9jb2RlPiBkaXJlY3RvcnkuIDwvbGk+CisgIDxsaT5JbiBzb21lIGNhc2VzLCB5b3UgbWF5IG5lZWQgdG8gcmVzdGFydCB5b3VyIGNvbnRhaW5lciBpZiBpdCBpcyBydW5uaW5nLjwvbGk+Cis8L3VsPgorCis8aDQ+UnVubmluZyBTdHJ1dHMgQXBwbGljYXRpb25zIFVuZGVyIEEgU2VjdXJpdHkgTWFuYWdlcjwvaDQ+CisKKzxwPk1hbnkgYXBwbGljYXRpb24gc2VydmVycyBleGVjdXRlIHdlYiBhcHBsaWNhdGlvbnMgdW5kZXIgdGhlIGNvbnRyb2wgb2YgYQorSmF2YSBzZWN1cml0eSBtYW5hZ2VyLCB3aXRoIHJlc3RyaWN0ZWQgcGVybWlzc2lvbnMgb24gd2hhdCBjbGFzc2VzIGluIHRoZSB3ZWIKK2FwcGxpY2F0aW9uIGNhbiBkby4gIElmIHlvdSB1dGlsaXplIGZvcm0gYmVhbnMgd2l0aCBtYXBwZWQgcHJvcGVydGllcywgeW91IG1heQorZW5jb3VudGVyIHNlY3VyaXR5IGV4Y2VwdGlvbnMgdW5sZXNzIHlvdSBhZGQgdGhlIGZvbGxvd2luZyBwZXJtaXNzaW9uIHRvIHRoZQorc2V0IG9mIHBlcm1pc3Npb25zIGdyYW50ZWQgdG8geW91ciBTdHJ1dHMgYXBwbGljYXRpb24ncyBjb2RlYmFzZTo8L3A+Cis8cHJlPgorICBwZXJtaXNzaW9uIGphdmEubGFuZy5SdW50aW1lUGVybWlzc2lvbiAiYWNjZXNzRGVjbGFyZWRNZW1iZXJzIjsKKzwvcHJlPgorCis8cD5Db25zdWx0IHRoZSBkb2N1bWVudGF0aW9uIG9uIHlvdXIgYXBwbGljYXRpb24gc2VydmVyIGZvciBtb3JlIGluZm9ybWF0aW9uCithYm91dCBob3cgdG8gY29uZmlndXJlIGFkZGl0aW9uYWwgc2VjdXJpdHkgbWFuYWdlciBwZXJtaXNzaW9ucy48L3A+CisKKzxoND5JbnN0YWxsaW5nIFN0cnV0cyBvbiBWYXJpb3VzIENvbnRhaW5lcnM8L2g0PgorPHVsPgorICA8bGk+Qmx1ZXN0b25lIFVuaXZlcnNhbCBCdXNpbmVzcyBTZXJ2ZXIgNy4yIC0gPGEgaHJlZj0iaW5zdGFsbGF0aW9uLXViczcyLmh0bWwiPkFkZGl0aW9uYWwKKyAgICBzdGVwcyByZXF1aXJlZC48L2E+PC9saT4KKyAgPGxpPkJvcmxhbmQgQXBwbGljYXRpb24gU2VydmVyIDQuNSAtTm8gYWRkaXRpb25hbAorICAgIHN0ZXBzIHJlcXVpcmVkLjwvbGk+CisgIDxsaT5pUGxhbmV0IEFwcGxpY2F0aW9uIFNlcnZlciAtIFNlcnZpY2UgUGFjayAyIGlzIHJlY29tbWVuZGVkLiBOb3RlIHRoYXQgdGhlIGRhdGFiYXNlCisgIG9iamVjdCBpbiB0aGUgU3RydXRzLUV4YW1wbGUgYXBwbGljYXRpb24gaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGlzIGNvbnRhaW5lci48L2xpPgorICA8bGk+aVBsYW5ldCBXZWIgU2VydmVyIC0gPGEgaHJlZj0iaW5zdGFsbGF0aW9uLWlwLmh0bWwiPkFkZGl0aW9uYWwgc3RlcHMgcmVxdWlyZWQuPC9hPjwvbGk+CisgIDxsaT5pUG9ydGFsIEFwcGxpY2F0aW9uIFNlcnZlciAtIDxhIGhyZWY9Imluc3RhbGxhdGlvbi1pcGFzLmh0bWwiPkFkZGl0aW9uYWwgc3RlcHMgcmVxdWlyZWQuPC9hPjwvbGk+CisgIDxsaT5KZXR0eSAtIDxhIGhyZWY9Imluc3RhbGxhdGlvbi1qZXR0eS5odG1sIj5BZGRpdGlvbmFsIHN0ZXBzIHJlcXVpcmVkLjwvYT48L2xpPgorICA8bGk+SlJ1biAtIDxhIGhyZWY9Imluc3RhbGxhdGlvbi1qcjMwLmh0bWwiPkFkZGl0aW9uYWwgc3RlcHMgcmVxdWlyZWQuPC9hPjwvbGk+CisgIDxsaT5Ob3ZlbGwgRXh0ZU5kIEFwcGxpY2F0aW9uIFNlcnZlciA0LjArIC0KKyAgICAgIDxhIGhyZWY9Imluc3RhbGxhdGlvbi1ub3ZlbGwuaHRtbCI+QWRkaXRpb25hbCBzdGVwcyByZXF1aXJlZC48L2E+PC9saT4KKyAgPGxpPk9yaW9uIEFwcGxpY2F0aW9uIFNlcnZlciAtIDxhIGhyZWY9Imluc3RhbGxhdGlvbi1vYXMuaHRtbCI+QWRkaXRpb25hbCBzdGVwcworICAgIHJlcXVpcmVkLjwvYT48L2xpPgorICA8bGk+UmVzaW4gMS4yKyAic3RhbmRhbG9uZSIgLSBObyBhZGRpdGlvbmFsIHN0ZXBzIHJlcXVpcmVkLjwvbGk+CisgIDxsaT5SZXhJUCAtIE5vIGFkZGl0aW9uYWwgc3RlcHMgcmVxdWlyZWQuPC9saT4KKyAgPGxpPlNpbHZlclN0cmVhbSAzLjcuMSBhbmQgbGF0ZXIgLSA8YSBocmVmPSJpbnN0YWxsYXRpb24tc2FzLmh0bWwiPkFkZGl0aW9uYWwgc3RlcHMgcmVxdWlyZWQuPC9hPjwvbGk+CisgIDxsaT5Ub21jYXQgMy4xIGFuZCBwcmlvciAtIE5vdCByZWNvbW1lbmRlZC4gVXNlIFRvbWNhdCAzLjIuMSBvciBsYXRlci48L2xpPgorICA8bGk+VG9tY2F0IDMuMi4xIHdpdGggQXBhY2hlIC0gPGEgaHJlZj0iaW5zdGFsbGF0aW9uLXRjLmh0bWwiPkFkZGl0aW9uYWwgc3RlcHMKKyAgICByZXF1aXJlZC48L2E+PC9saT4KKyAgPGxpPlRvbWNhdCAzLjIuMSsgInN0YW5kYWxvbmUiIC0gTm8gYWRkaXRpb25hbCBzdGVwcyByZXF1aXJlZC48L2xpPgorICA8bGk+VG9tY2F0IDQuMCAtIE5vIGFkZGl0aW9uYWwgc3RlcHMgcmVxdWlyZWQuPC9saT4KKyAgPGxpPldlYmxvZ2ljIDUuMSBzcDggLSA8YSBocmVmPSJpbnN0YWxsYXRpb24td2xzNS5odG1sIj5BZGRpdGlvbmFsIHN0ZXBzIHJlcXVpcmVkLjwvYT48L2xpPgorICA8bGk+V2ViTG9naWMgNi4wKyAtIE5vIGFkZGl0aW9uYWwgc3RlcHMgcmVxdWlyZWQuPC9saT4KKyAgPGxpPldlYlNwaGVyZSAtIDxhIGhyZWY9Imluc3RhbGxhdGlvbi13YXMzNTIuaHRtbCI+QWRkaXRpb25hbCBzdGVwcyByZXF1aXJlZC48L2E+PC9saT4KKyAgPGxpPldlYlNwaGVyZSAtIDxhIGhyZWY9Imluc3RhbGxhdGlvbi13YXMzNTIteC5odG1sIj5TdGVwcyBmb3IgdGhlIEV4YW1wbGUgQXBwbGljYXRpb24uPC9hPjwvbGk+PC91bD4KKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gbmFtZT0iQnVpbGRpbmcgU3RydXRzIEZyb20gU291cmNlIiBocmVmPSJCdWlsZGluZyI+CisKKyAgICA8cD5GaXJzdCwgZG93bmxvYWQgYSBzb3VyY2UgZGlzdHJpYnV0aW9uIG9mIFN0cnV0cyBieSBmb2xsb3dpbmcgdGhlCisgICAgaW5zdHJ1Y3Rpb25zIDxhIGhyZWY9Ii4uL2FjcXVpcmluZy5odG1sIj5oZXJlPC9hPi4gIFRoZW4sIG1ha2Ugc3VyZQorICAgIHlvdSBoYXZlIGRvd25sb2FkZWQgYW5kIGluc3RhbGxlZCA8c3Ryb25nPmFsbDwvc3Ryb25nPiBvZiB0aGUKKyAgICA8YSBocmVmPSIjUHJlcmVxdWlzaXRlcyI+cHJlcmVxdWlzaXRlPC9hPiBzb2Z0d2FyZSBwYWNrYWdlcyBkZXNjcmliZWQKKyAgICBhYm92ZS48L3A+CisKKyAgICA8cD5UbyBidWlsZCBTdHJ1dHMsIHlvdSB3aWxsIG5lZWQgdG8gY3VzdG9taXplIHRoZSBidWlsZCBwcm9jZXNzIHRvIHRoZQorICAgIGRldGFpbHMgb2YgeW91ciBkZXZlbG9wbWVudCBlbnZpcm9ubWVudCBhcyBmb2xsb3dzOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlRoZSBTdHJ1dHMgc291cmNlIGRpc3RyaWJ1dGlvbiB1c2VzIGEgZmlsZSBuYW1lZAorICAgICAgICA8Y29kZT5idWlsZC5wcm9wZXJ0aWVzPC9jb2RlPiAoaW4gdGhlIHRvcC1sZXZlbCBkaXJlY3Rvcnkgb2YgdGhlCisgICAgICAgIGRpc3RyaWJ1dGlvbikgdG8gaWRlbnRpZnkgdGhlIGxvY2F0aW9uIG9mIGV4dGVybmFsIGNvbXBvbmVudHMKKyAgICAgICAgdGhhdCBTdHJ1dHMgZGVwZW5kcyBvbi48L2xpPgorICAgIDxsaT5UaGVyZSBpcyBubyA8Y29kZT5idWlsZC5wcm9wZXJ0aWVzPC9jb2RlPiBmaWxlIGluY2x1ZGVkIHdpdGggdGhlCisgICAgICAgIHNvdXJjZSBkaXN0cmlidXRpb24uICBIb3dldmVyLCB0aGVyZSBpcyBhbiBleGFtcGxlIGZpbGUgbmFtZWQKKyAgICAgICAgPGNvZGU+YnVpbGQucHJvcGVydGllcy5leGFtcGxlPC9jb2RlPiB0aGF0IHlvdSBjYW4gY29weSB0bworICAgICAgICA8Y29kZT5idWlsZC5wcm9wZXJ0aWVzPC9jb2RlPiBhbmQgdGhlbiBjdXN0b21pemUuPC9saT4KKyAgICA8bGk+VGhlIHByb3BlcnRpZXMgeW91IG11c3QgY29uZmlndXJlIGluIDxjb2RlPmJ1aWxkLnByb3BlcnRpZXM8L2NvZGU+IGFyZToKKyAgICAgICAgPHVsPgorICAgICAgICA8bGk+PHN0cm9uZz5jYXRhbGluYS5ob21lPC9zdHJvbmc+IC0gUGF0aG5hbWUgdG8gdGhlIGRpcmVjdG9yeSBvZiB5b3VyCisgICAgICAgICAgICBiaW5hcnkgZGlzdHJpYnV0aW9uIG9mIFRvbWNhdCA0LjAgKHJlcXVpcmVkIG9ubHkgaWYgeW91IHdpc2ggdG8KKyAgICAgICAgICAgIHVzZSB0aGUgPGNvZGU+ZGVwbG95LmNhdGFsaW5hPC9jb2RlPiB0YXJnZXQpLjwvbGk+CisgICAgICAgIDxsaT48c3Ryb25nPmNvbW1vbnMtYmVhbnV0aWxzLmphcjwvc3Ryb25nPiAtIFBhdGhuYW1lIG9mIHRoZSBCZWFuVXRpbHMKKyAgICAgICAgICAgIHBhY2thZ2UgSkFSIGZpbGUgZnJvbSB0aGUgSmFrYXJ0YSBDb21tb25zIHByb2plY3QuPC9saT4KKyAgICAgICAgPGxpPjxzdHJvbmc+Y29tbW9ucy1jb2xsZWN0aW9ucy5qYXI8L3N0cm9uZz4gLSBQYXRobmFtZSBvZiB0aGUKKyAgICAgICAgICAgIENvbGxlY3Rpb25zIHBhY2thZ2UgSkFSIGZpbGUgZnJvbSB0aGUgSmFrYXJ0YSBDb21tb25zIHByb2plY3QuPC9saT4KKyAgICAgICAgPGxpPjxzdHJvbmc+Y29tbW9ucy1kaWdlc3Rlci5qYXI8L3N0cm9uZz4gLSBQYXRobmFtZSBvZiB0aGUKKyAgICAgICAgICAgIERpZ2VzdGVyIHBhY2thZ2UgSkFSIGZpbGUgZnJvbSB0aGUgSmFrYXJ0YSBDb21tb25zIHByb2plY3QuPC9saT4KKyAgICAgICAgPGxpPjxzdHJvbmc+Y29tbW9ucy1maWxldXBsb2FkLmphcjwvc3Ryb25nPiAtIFBhdGhuYW1lIG9mIHRoZQorICAgICAgICAgICAgRmlsZXVwbG9hZCBwYWNrYWdlIEpBUiBmaWxlIGZyb20gdGhlIEpha2FydGEgQ29tbW9ucyBwcm9qZWN0LjwvbGk+CisgICAgICAgIDxsaT48c3Ryb25nPmNvbW1vbnMtbGFuZy5qYXI8L3N0cm9uZz4gLSBQYXRobmFtZSBvZiB0aGUKKyAgICAgICAgICAgIExhbmcgcGFja2FnZSBKQVIgZmlsZSBmcm9tIHRoZSBKYWthcnRhIENvbW1vbnMgcHJvamVjdC48L2xpPgorICAgICAgICA8bGk+PHN0cm9uZz5jb21tb25zLWxvZ2dpbmcuamFyPC9zdHJvbmc+IC0gUGF0aG5hbWUgb2YgdGhlCisgICAgICAgICAgICBMb2dnaW5nIHBhY2thZ2UgSkFSIGZpbGUgZnJvbSB0aGUgSmFrYXJ0YSBDb21tb25zIHByb2plY3QuPC9saT4KKyAgICAgICAgPGxpPjxzdHJvbmc+Y29tbW9ucy12YWxpZGF0b3IuamFyPC9zdHJvbmc+IC0gUGF0aG5hbWUgb2YgdGhlCisgICAgICAgICAgICBWYWxpZGF0b3IgcGFja2FnZSBKQVIgZmlsZSBmcm9tIHRoZSBKYWthcnRhIENvbW1vbnMgcHJvamVjdC48L2xpPgorICAgICAgICA8bGk+PHN0cm9uZz5zZXJ2bGV0YXBpLmhvbWU8L3N0cm9uZz4gLSBQYXRobmFtZSB0byB0aGUgZGlyZWN0b3J5IG9mCisgICAgICAgICAgICB5b3VyIGJpbmFyeSBkaXN0cmlidXRpb24gb2YgdGhlIFNlcnZsZXQgQVBJIGNsYXNzZXMuPC9saT4KKyAgICAgICAgPGxpPjxzdHJvbmc+dG9tY2F0LmhvbWU8L3N0cm9uZz4gLSBQYXRobmFtZSB0byB0aGUgZGlyZWN0b3J5IG9mIHlvdXIKKyAgICAgICAgICAgIGJpbmFyeSBkaXN0cmlidXRpb24gb2YgVG9tY2F0IDMuMiAocmVxdWlyZWQgb25seSBpZiB5b3Ugd2lzaCB0bworICAgICAgICAgICAgdXNlIHRoZSA8Y29kZT5kZXBsb3kudG9tY2F0PC9jb2RlPiB0YXJnZXQpLjwvbGk+CisgICAgICAgIDxsaT48c3Ryb25nPnhlcmNlcy5ob21lPC9zdHJvbmc+IC0gUGF0aG5hbWUgdG8gdGhlIGRpcmVjdG9yeSBvZiB5b3VyCisgICAgICAgICAgICBiaW5hcnkgZGlzdHJpYnV0aW9uIG9mIHRoZSBYZXJjZXMgcGFyc2VyLCB2ZXJzaW9uIDEuMiBvciAxLjMKKyAgICAgICAgICAgIChyZXF1aXJlZCBvbmx5IGlmIHlvdSB3aXNoIHRvIHVzZSB0aGUgPGNvZGU+ZGVwbG95LmNhdGFsaW5hPC9jb2RlPgorICAgICAgICAgICAgdGFyZ2V0KS48L2xpPgorICAgICAgICA8L3VsPjwvbGk+CisKKworICAgPGxpPklmIHlvdSBhcmUgYSBTdHJ1dHMgZGV2ZWxvcGVyIHdpdGggd3JpdGUgYWNjZXNzIHRvIHRoZSBTdWJ2ZXJzaW9uIHJlcG9zaXRvcnksCisgICAgICAgIGJlIHN1cmUgdGhhdCB5b3UgZG8gPHN0cm9uZz5OT1Q8L3N0cm9uZz4gY2hlY2sgaW4gYSBjb3B5IG9mIHRoZQorICAgICAgICA8Y29kZT5idWlsZC5wcm9wZXJ0aWVzPC9jb2RlPiBmaWxlLCBzaW5jZSBpdCB3aWxsIGJlIGRpZmZlcmVudCBmb3IKKyAgICAgICAgZWFjaCBpbmRpdmlkdWFsIGRldmVsb3Blci48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UbyBidWlsZCBhICJkaXN0cmlidXRpb24iIHZlcnNpb24gb2YgU3RydXRzLCBmaXJzdCBjaGFuZ2UgeW91ciBjdXJyZW50CisgICAgZGlyZWN0b3J5IHRvIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggeW91IGhhdmUgdW5wYWNrZWQgdGhlIFN0cnV0cworICAgIHNvdXJjZSBkaXN0cmlidXRpb24sIGFuZCAoaWYgbmVjZXNzYXJ5KSBjcmVhdGUgb3IgY3VzdG9taXplIHRoZQorICAgIDxjb2RlPmJ1aWxkLnByb3BlcnRpZXM8L2NvZGU+IGZpbGUgYXMgZGVzY3JpYmVkIGFib3ZlLiAgVGhlbiwgdHlwZTo8L3A+Cis8cHJlPgorICAgICAgICBhbnQgZGlzdAorPC9wcmU+CisKKyAgICA8cD5UaGlzIGNvbW1hbmQgd2lsbCBjcmVhdGUgYSBiaW5hcnkgZGlzdHJpYnV0aW9uIG9mIFN0cnV0cywgaW4gYQorICAgIGRpcmVjdG9yeSBuYW1lZCA8Y29kZT5kaXN0PC9jb2RlPiAocmVsYXRpdmUgdG8gd2hlcmUgeW91CisgICAgYXJlIGNvbXBpbGluZyBmcm9tKS4gIFRoaXMgZGlyZWN0b3J5IGNvbnRhaW5zIGFuIGV4YWN0IHJlcGxpY2Egb2YgdGhlCisgICAgZmlsZXMgaW5jbHVkZWQgaW4gYSBiaW5hcnkgZGlzdHJpYnV0aW9uIG9mIFN0cnV0cywgYXMgZGVzY3JpYmVkCisgICAgaW4gdGhlIDxhIGhyZWY9IiNJbnN0YWxsaW5nIj5wcmVjZWRpbmcgc2VjdGlvbjwvYT4uPC9wPgorCisgICAgPHA+SU1QT1JUQU5UIE5PVEU6IFRoZSA8Y29kZT5zdHJ1dHMuamFyPC9jb2RlPiwgYXMgd2VsbCBhcyB0aGUgSkFSIGZpbGVzCisgICAgZnJvbSB0aGUgSmFrYXJ0YSBDb21tb25zIHByb2plY3QsIG11c3QgYmUgaW4geW91ciBjbGFzc3BhdGggd2hlbgorICAgIGNvbXBpbGluZyBTdHJ1dHMuIFRoZSA8Y29kZT5idWlsZC54bWw8L2NvZGU+IHByb3ZpZGVkIGRvZXMgdGhpcworICAgIGF1dG9tYXRpY2FsbHkuICBJZiB5b3UgdXNlIHlvdXIgZGV2ZWxvcG1lbnQgbWFjaGluZSB0byB0ZXN0IFN0cnV0cworICAgIGFwcGxpY2F0aW9uIGxvY2FsbHksIGJlIHN1cmUgdGhhdCB0aGUgPGNvZGU+c3RydXRzLmphcjwvY29kZT4gaXMKKyAgICA8c3Ryb25nPk5PVDwvc3Ryb25nPiBvbiB5b3VyIGNsYXNzcGF0aCB3aGVuIHlvdXIgY29udGFpbmVyIGlzIHJ1bm5pbmcuCisgICAgPC9wPgorCisgIDwvc2VjdGlvbj4KKworPHNlY3Rpb24+CisgICAgPHAgY2xhc3M9InJpZ2h0Ij4KKyAgICBOZXh0OiA8YSBocmVmPSIuLi9mYXFzL2luZGV4Lmh0bWwiPkZBUXMgYW5kIEhvd1RvczwvYT4KKyAgICA8L3A+Cis8L3NlY3Rpb24+CisKKyAgCis8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2ludHJvZHVjdGlvbi54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvaW50cm9kdWN0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGFmNDAzCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL2ludHJvZHVjdGlvbi54bWwKQEAgLTAsMCArMSw0MjUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0iaW50cm9kdWN0aW9uLmh0bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5UaGUgU3RydXRzIFVzZXIncyBHdWlkZSAtIEludHJvZHVjdGlvbjwvdGl0bGU+CisgIDwvcHJvcGVydGllcz4KKworICA8Ym9keT4KKworICA8c2VjdGlvbiBuYW1lPSIxLiBJbnRyb2R1Y3Rpb24iIGhyZWY9ImludHJvZHVjdGlvbiIvPgorCisgICAgICA8c2VjdGlvbiBuYW1lPSIxLjEgRm9yd2FyZCBpbnRvIHRoZSBQYXN0ISAob3IgYSBicmllZiBoaXN0b3J5IG9mIFN0cnV0cykiIGhyZWY9Imhpc3RvcnkiPgorCisgICAgICAgIDxwPgorICAgICAgICAgIFdoZW4gSmF2YSBzZXJ2bGV0cyB3ZXJlIGZpcnN0IGludmVudGVkLCBtYW55IHByb2dyYW1tZXJzIHF1aWNrbHkgcmVhbGl6ZWQgdGhhdCB0aGV5IHdlcmUgYQorICAgICAgICAgIEdvb2QgVGhpbmcuIFRoZXkgd2VyZSBmYXN0ZXIgYW5kIG1vcmUgcG93ZXJmdWwgdGhhdCBzdGFuZGFyZCBDR0ksIHBvcnRhYmxlLCBhbmQgaW5maW5pdGVseQorICAgICAgICAgIGV4dGVuc2libGUuCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgICBCdXQgd3JpdGluZyBIVE1MIHRvIHNlbmQgdG8gdGhlIGJyb3dzZXIgaW4gZW5kbGVzcyA8Y29kZT5wcmludGxuKCk8L2NvZGU+IHN0YXRlbWVudHMgd2FzIHRpcmVzb21lIGFuZAorICAgICAgICAgIHByb2JsZW1hdGljLiBUaGUgYW5zd2VyIHRvIHRoYXQgd2FzIAorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvanNwL3Byb2R1Y3QuaHRtbCI+SmF2YVNlcnZlciBQYWdlczwvYT4sIAorICAgICAgICAgIHdoaWNoIHR1cm5lZCAKKyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2pzcC9wcm9kdWN0Lmh0bWwiPlNlcnZsZXQ8L2E+IHdyaXRpbmcgaW5zaWRlLW91dC4KKyAgICAgICAgICBOb3cgZGV2ZWxvcGVycyBjb3VsZCBlYXNpbHkgbWl4IEhUTUwgd2l0aCBKYXZhIGNvZGUsIGFuZCBoYXZlIGFsbCB0aGUgYWR2YW50YWdlcyBvZiBzZXJ2bGV0cy4KKyAgICAgICAgICBUaGUgc2t5IHdhcyB0aGUgbGltaXQhCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgICBKYXZhIHdlYiBhcHBsaWNhdGlvbnMgcXVpY2tseSBiZWNhbWUgIkpTUC1jZW50cmljIi4gVGhpcyBpbi1hbmQtb2YgaXRzZWxmIHdhcyBub3QgYSBCYWQKKyAgICAgICAgICBUaGluZywgYnV0IGl0IGRpZCBsaXR0bGUgdG8gcmVzb2x2ZSBmbG93IGNvbnRyb2wgaXNzdWVzIGFuZCBvdGhlciBwcm9ibGVtcyBlbmRlbWljIHRvIHdlYgorICAgICAgICAgIGFwcGxpY2F0aW9ucy4KKyAgICAgICAgPC9wPgorCisgICAgICAgIDxwPkFub3RoZXIgbW9kZWwgd2FzIGNsZWFybHkgbmVlZGVkIC4uLjwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgICBNYW55IGNsZXZlciBkZXZlbG9wZXJzIHJlYWxpemVkIHRoYXQgSmF2YVNlcnZlciBQYWdlcyBBTkQgc2VydmxldHMgY291bGQgYmUgdXNlZCA8c3Ryb25nPgorICAgICAgICAgIHRvZ2V0aGVyPC9zdHJvbmc+IHRvIGRlcGxveSB3ZWIgYXBwbGljYXRpb25zLiBUaGUgc2VydmxldHMgY291bGQgaGVscCB3aXRoIHRoZSBjb250cm9sLWZsb3csIGFuZCB0aGUKKyAgICAgICAgICBKU1BzIGNvdWxkIGZvY3VzIG9uIHRoZSBuYXN0eSBidXNpbmVzcyBvZiB3cml0aW5nIEhUTUwuIEluIGR1ZSBjb3Vyc2UsIHVzaW5nIEpTUHMgYW5kIHNlcnZsZXRzCisgICAgICAgICAgdG9nZXRoZXIgYmVjYW1lIGtub3duIGFzIAorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuamF2YXdvcmxkLmNvbS9qYXZhd29ybGQvanctMTItMTk5OS9qdy0xMi1zc2otanNwbXZjLmh0bWwiPk1vZGVsIDI8L2E+IAorICAgICAgICAgIChtZWFuaW5nLCBwcmVzdW1hYmx5LCB0aGF0IHVzaW5nIEpTUHMgYWxvbmUgd2FzIE1vZGVsIDEpLgorICAgICAgICA8L3A+CisKKyAgICAgICAgPHA+CisgICAgICAgICAgT2YgY291cnNlLCB0aGVyZSBpcyBub3RoaW5nIG5ldyB1bmRlciB0aGUgU3VuIC4uLiBhbmQgbWFueSBoYXZlIGJlZW4gcXVpY2sgdG8gcG9pbnQgb3V0IHRoYXQKKyAgICAgICAgICBKU1AncyBNb2RlbCAyIGZvbGxvd3MgdGhlIGNsYXNzaWMgCisgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9ibHVlcHJpbnRzL3BhdHRlcm5zL2oyZWVfcGF0dGVybnMvbW9kZWxfdmlld19jb250cm9sbGVyLyI+TW9kZWwtVmlldy1Db250cm9sbGVyPC9hPiAKKyAgICAgICAgICBkZXNpZ24gcGF0dGVybiBhYnN0cmFjdGVkIGZyb20gdGhlIHZlbmVyYWJsZSAKKyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vc3Qtd3d3LmNzLnVpdWMuZWR1L3VzZXJzL3NtYXJjaC9zdC1kb2NzL212Yy5odG1sIj5TbWFsbHRhbGsgTVZDIGZyYW1ld29yazwvYT4uIAorICAgICAgICAgIEphdmEgV2ViIGRldmVsb3BlcnMgbm93IHRlbmQgdG8gdXNlIHRoZSB0ZXJtcyBNb2RlbCAyIGFuZCBNVkMgaW50ZXJjaGFuZ2VhYmx5LiBJbiB0aGlzIGd1aWRlLCB3ZSB1c2UgCisgICAgICAgICAgdGhlIE1WQyBwYXJhZGlnbSB0byBkZXNjcmliZSB0aGUgU3RydXRzIGFyY2hpdGVjdHVyZSwgd2hpY2ggbWlnaHQgYmUgYmVzdCB0ZXJtZWQgYSBNb2RlbCAyL01WQyAKKyAgICAgICAgICBkZXNpZ24uCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgICBUaGUgU3RydXRzIHByb2plY3Qgd2FzIGxhdW5jaGVkIGluIE1heSAyMDAwIGJ5IENyYWlnIFIuIE1jQ2xhbmFoYW4gdG8gcHJvdmlkZSBhIHN0YW5kYXJkIE1WQworICAgICAgICAgIGZyYW1ld29yayB0byB0aGUgSmF2YSBjb21tdW5pdHkuIEluIEp1bHkgMjAwMSwgU3RydXRzIDEuMCB3YXMgcmVsZWFzZWQsIGFuZCBJT0hPLCBKYXZhIAorICAgICAgICAgIE1vZGVsIDIgZGV2ZWxvcG1lbnQgd2lsbCBuZXZlciBiZSBxdWl0ZSB0aGUgc2FtZS4KKyAgICAgICAgPC9wPgorICAgICAgCisgICAgICA8L3NlY3Rpb24+CisgICAgICAKKyAgICAgIDxzZWN0aW9uIG5hbWU9IjEuMiBUaGUgTW9kZWwtVmlldy1Db250cm9sbGVyICgnTVZDJykgRGVzaWduIFBhdHRlcm4iIGhyZWY9Im12YyI+CisgICAgICAKKyAgICAgICAgPHA+CisgICAgICAgICAgSW4gdGhlIE1WQyBkZXNpZ24gcGF0dGVybiwgYXBwbGljYXRpb24gZmxvdyBpcyBtZWRpYXRlZCBieSBhCisgICAgICAgICAgY2VudHJhbCBDb250cm9sbGVyLiBUaGUgQ29udHJvbGxlciBkZWxlZ2F0ZXMgcmVxdWVzdHMgLSBpbiBvdXIKKyAgICAgICAgICBjYXNlLCBIVFRQIHJlcXVlc3RzIC0gdG8gYW4gYXBwcm9wcmlhdGUgaGFuZGxlci4gVGhlIGhhbmRsZXJzCisgICAgICAgICAgYXJlIHRpZWQgdG8gYSBNb2RlbCwgYW5kIGVhY2ggaGFuZGxlciBhY3RzIGFzIGFuIGFkYXB0ZXIKKyAgICAgICAgICBiZXR3ZWVuIHRoZSByZXF1ZXN0IGFuZCB0aGUgTW9kZWwuIFRoZSBNb2RlbCByZXByZXNlbnRzLCBvcgorICAgICAgICAgIGVuY2Fwc3VsYXRlcywgYW4gYXBwbGljYXRpb24ncyBidXNpbmVzcyBsb2dpYyBvcgorICAgICAgICAgIHN0YXRlLiBDb250cm9sIGlzIHVzdWFsbHkgdGhlbiBmb3J3YXJkZWQgYmFjayB0aHJvdWdoIHRoZQorICAgICAgICAgIENvbnRyb2xsZXIgdG8gdGhlIGFwcHJvcHJpYXRlIFZpZXcuIFRoZSBmb3J3YXJkaW5nIGNhbiBiZQorICAgICAgICAgIGRldGVybWluZWQgYnkgY29uc3VsdGluZyBhIHNldCBvZiBtYXBwaW5ncywgdXN1YWxseSBsb2FkZWQKKyAgICAgICAgICBmcm9tIGEgZGF0YWJhc2Ugb3IgY29uZmlndXJhdGlvbiBmaWxlLiBUaGlzIHByb3ZpZGVzIGEgbG9vc2UKKyAgICAgICAgICBjb3VwbGluZyBiZXR3ZWVuIHRoZSBWaWV3IGFuZCBNb2RlbCwgd2hpY2ggY2FuIG1ha2UgCisgICAgICAgICAgYXBwbGljYXRpb25zIHNpZ25pZmljYW50bHkgZWFzaWVyIHRvIGNyZWF0ZSBhbmQgbWFpbnRhaW4uCisgICAgICAgIDwvcD4KKworICAgICAgPC9zZWN0aW9uPgorICAgICAgCisgICAgPHNlY3Rpb24gbmFtZT0iMS4yLjEgVGhlIE1vZGVsOiBTeXN0ZW0gU3RhdGUgYW5kIEJ1c2luZXNzIExvZ2ljIEphdmFCZWFucyIgaHJlZj0ibW9kZWxDb25jZXB0cyI+CisgICAgICAKKyAgICAgIDxwPgorICAgICAgICBUaGUgPGVtPk1vZGVsPC9lbT4gcG9ydGlvbiBvZiBhbiBNVkMtYmFzZWQgc3lzdGVtIGNhbiBiZSBvZnRlbiBiZSBkaXZpZGVkIGludG8KKyAgICAgICAgdHdvIG1ham9yIHN1YnN5c3RlbXMgLS0gdGhlIDxzdHJvbmc+aW50ZXJuYWwgc3RhdGU8L3N0cm9uZz4gb2YgdGhlIHN5c3RlbSAKKyAgICAgICAgYW5kIHRoZSA8c3Ryb25nPmFjdGlvbnM8L3N0cm9uZz4gdGhhdCBjYW4gYmUgdGFrZW4gdG8gY2hhbmdlIHRoYXQgc3RhdGUuCisgICAgICA8L3A+CisKKyAgICAgICA8cD5JbiBncmFtbWF0aWNhbCB0ZXJtcywgd2UgbWlnaHQgdGhpbmsgYWJvdXQKKyAgICAgICAgc3RhdGUgaW5mb3JtYXRpb24gYXMgPHN0cm9uZz5ub3Vuczwvc3Ryb25nPiAodGhpbmdzKSBhbmQgYWN0aW9ucyBhcyA8c3Ryb25nPnZlcmJzPC9zdHJvbmc+CisgICAgICAgIChjaGFuZ2VzIHRvIHRoZSBzdGF0ZSBvZiB0aG9zZSB0aGluZ3MpLgorICAgICAgPC9wPgorICAgICAgICAKKyAgICAgIDxwPgorICAgICAgICBNYW55IGFwcGxpY2F0aW9ucyByZXByZXNlbnQgdGhlIGludGVybmFsIHN0YXRlIG9mIHRoZQorICAgICAgICBzeXN0ZW0gYXMgYSBzZXQgb2Ygb25lIG9yIG1vcmUgSmF2YUJlYW5zLiBUaGUgYmVhbiBwcm9wZXJ0aWVzIHJlcHJlc2VudAorICAgICAgICB0aGUgZGV0YWlscyBvZiB0aGUgc3lzdGVtJyBzdGF0ZS4gIERlcGVuZGluZyBvbiB5b3VyIGFwcGxpY2F0aW9uJ3MgY29tcGxleGl0eSwKKyAgICAgICAgdGhlc2UgYmVhbnMgbWF5IGJlIHNlbGYgY29udGFpbmVkIChhbmQga25vdyBob3cgdG8gcGVyc2lzdCB0aGVpciBvd24gc3RhdGUpLAorICAgICAgICBvciB0aGV5IG1heSBiZSBmYWNhZGVzIHRoYXQga25vdyBob3cgdG8gcmV0cmlldmUgdGhlIHN5c3RlbSdzIHN0YXRlIGZyb20gYW5vdGhlciAKKyAgICAgICAgY29tcG9uZW50LiBUaGlzIGNvbXBvbmVudCBtYXkgYmUgYSBkYXRhYmFzZSwgYSBzZWFyY2ggZW5naW5lLCBhbiBFbnRpdHkgRW50ZXJwcmlzZSAKKyAgICAgICAgSmF2YUJlYW4sIGEgTERBUCBzZXJ2ZXIsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5LgorICAgICAgPC9wPgorICAgICAgICAKKyAgICAgIDxwPgorICAgICAgICBMYXJnZS1zY2FsZSBhcHBsaWNhdGlvbnMgd2lsbCBvZnRlbiByZXByZXNlbnQgdGhlIHNldCBvZiBwb3NzaWJsZQorICAgICAgICBidXNpbmVzcyBvcGVyYXRpb25zIGFzIG1ldGhvZHMgdGhhdCBjYW4gYmUgY2FsbGVkIG9uIHRoZSBiZWFuIG9yIGJlYW5zIAorICAgICAgICBtYWludGFpbmluZyB0aGUgc3RhdGUgaW5mb3JtYXRpb24uICBGb3IgZXhhbXBsZSwgeW91IG1pZ2h0IGhhdmUgYSBzaG9wcGluZworICAgICAgICBjYXJ0IGJlYW4sIHN0b3JlZCBpbiBzZXNzaW9uIHNjb3BlIGZvciBlYWNoIGN1cnJlbnQgdXNlciwgd2l0aCBwcm9wZXJ0aWVzCisgICAgICAgIHRoYXQgcmVwcmVzZW50IHRoZSBjdXJyZW50IHNldCBvZiBpdGVtcyB0aGF0IHRoZSB1c2VyIGhhcyBkZWNpZGVkIHRvCisgICAgICAgIHB1cmNoYXNlLiBUaGlzIGJlYW4gbWlnaHQgYWxzbyBoYXZlIGEgPGNvZGU+Y2hlY2tPdXQoKTwvY29kZT4gbWV0aG9kCisgICAgICAgIHRoYXQgYXV0aG9yaXplcyB0aGUgdXNlcidzIGNyZWRpdCBjYXJkIGFuZCBzZW5kcyB0aGUgb3JkZXIgdG8gdGhlCisgICAgICAgIHdhcmVob3VzZSB0byBiZSBwaWNrZWQgYW5kIHNoaXBwZWQuIE90aGVyIHN5c3RlbXMgd2lsbCByZXByZXNlbnQgdGhlCisgICAgICAgIGF2YWlsYWJsZSBvcGVyYXRpb25zIHNlcGFyYXRlbHksIHBlcmhhcHMgYXMgU2Vzc2lvbiBFbnRlcnByaXNlIEphdmFCZWFucworICAgICAgICAoU2Vzc2lvbiBFSkJzKS4KKyAgICAgIDwvcD4KKyAgICAgICAgCisgICAgICA8cD4KKyAgICAgICAgSW4gYSBzbWFsbGVyIHNjYWxlIGFwcGxpY2F0aW9uLCBvbiB0aGUgb3RoZXIgaGFuZCwgdGhlIGF2YWlsYWJsZQorICAgICAgICBvcGVyYXRpb25zIG1pZ2h0IGJlIGVtYmVkZGVkIHdpdGhpbiB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzc2VzIHRoYXQgYXJlCisgICAgICAgIHBhcnQgb2YgdGhlIFN0cnV0cyBjb250cm9sIGxheWVyLiBUaGlzIGNhbiBiZSB1c2VmdWwgd2hlbiB0aGUgbG9naWMgaXMgdmVyeQorICAgICAgICBzaW1wbGUgb3Igd2hlcmUgcmV1c2Ugb2YgdGhlIGJ1c2luZXNzIGxvZ2ljIGluIG90aGVyIGVudmlyb25tZW50cyBpcyBub3QKKyAgICAgICAgY29udGVtcGxhdGVkLgorICAgICAgPC9wPgorICAKKyAgICAgIDxwPgorICAgICAgICBUaGUgU3RydXRzIGZyYW1ld29yayBhcmNoaXRlY3R1cmUgaXMgZmxleGlibGUgZW5vdWdoIHRvIHN1cHBvcnQgbW9zdCBhbnkgCisgICAgICAgIGFwcHJvYWNoIHRvIGFjY2Vzc2luZyB0aGUgTW9kZWwsIGJ1dCB3ZSA8c3Ryb25nPnN0cm9uZ2x5PC9zdHJvbmc+IHJlY29tbWVuZCB0aGF0IHlvdSAKKyAgICAgICAgc2VwYXJhdGUgdGhlIGJ1c2luZXNzIGxvZ2ljICgiaG93IGl0J3MgZG9uZSIpIGZyb20gdGhlIHJvbGUgdGhhdCAKKyAgICAgICAgPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzc2VzIHBsYXkgKCJ3aGF0IHRvIGRvIikuICdudWZmIHNhaWQuCisgICAgICA8L3A+ICAgIAorICAKKyAgICAgIDxwPgorICAgICAgICBGb3IgbW9yZSBhYm91dCBhZGFwdGluZyB5b3VyIGFwcGxpY2F0aW9uJ3MgTW9kZWwgdG8gU3RydXRzLCBzZWUgdGhlCisgICAgICAgIDxhIGhyZWY9ImJ1aWxkaW5nX21vZGVsLmh0bWwiPkJ1aWxkaW5nIE1vZGVsIENvbXBvbmVudHM8L2E+IGNoYXB0ZXIuCisgICAgICA8L3A+CisKKyAgIDwvc2VjdGlvbj4KKworICAgIDxzZWN0aW9uIG5hbWU9IjEuMi4yIFRoZSBWaWV3OiBKU1AgUGFnZXMgYW5kIFByZXNlbnRhdGlvbiBDb21wb25lbnRzIiBocmVmPSJwcmVzZW50YXRpb25Db25jZXB0cyI+ICAgICAKKworICAgICAgPHA+CisgICAgICAgIFRoZSA8ZW0+VmlldzwvZW0+IHBvcnRpb24gb2YgYSBTdHJ1dHMtYmFzZWQgYXBwbGljYXRpb24gaXMgbW9zdCBvZnRlbiAKKyAgICAgICAgY29uc3RydWN0ZWQgdXNpbmcgSmF2YVNlcnZlciBQYWdlcyAoSlNQKSB0ZWNobm9sb2d5LiAgSlNQIHBhZ2VzIGNhbgorICAgICAgICBjb250YWluIHN0YXRpYyBIVE1MIChvciBYTUwpIHRleHQgY2FsbGVkICJ0ZW1wbGF0ZSB0ZXh0IiwgcGx1cyB0aGUKKyAgICAgICAgYWJpbGl0eSB0byBpbnNlcnQgZHluYW1pYyBjb250ZW50IGJhc2VkIG9uIHRoZSBpbnRlcnByZXRhdGlvbiAoYXQgcGFnZQorICAgICAgICByZXF1ZXN0IHRpbWUpIG9mIHNwZWNpYWwgYWN0aW9uIHRhZ3MuICBUaGUgSlNQIGVudmlyb25tZW50IGluY2x1ZGVzIGEKKyAgICAgICAgc2V0IG9mIHN0YW5kYXJkIGFjdGlvbiB0YWdzLCBzdWNoIGFzIDxjb2RlPiZsdDtqc3A6dXNlQmVhbiZndDs8L2NvZGU+CisgICAgICAgIHdob3NlIHB1cnBvc2UgaXMgZGVzY3JpYmVkIGluIHRoZSA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2pzcC9kb3dubG9hZC5odG1sIj5KYXZhU2VydmVyIFBhZ2VzIFNwZWNpZmljYXRpb248L2E+LiAgCisgICAgICAgIEluIGFkZGl0aW9uIHRvIHRoZSBidWlsdC1pbiBhY3Rpb25zLCB0aGVyZSBpcyBhIHN0YW5kYXJkIGZhY2lsaXR5IHRvIAorICAgICAgICBkZWZpbmUgeW91ciBvd24gdGFncywgd2hpY2ggYXJlIG9yZ2FuaXplZCBpbnRvICJjdXN0b20gdGFnIGxpYnJhcmllcy4iCisgICAgICA8L3A+CisgICAgICAgICAgCisgICAgICA8cD4KKyAgICAgICAgU3RydXRzIGluY2x1ZGVzIGEgc2V0IG9mIGN1c3RvbSB0YWcgbGlicmFyaWVzIHRoYXQgZmFjaWxpdGF0ZQorICAgICAgICBjcmVhdGluZyB1c2VyIGludGVyZmFjZXMgdGhhdCBhcmUgZnVsbHkgaW50ZXJuYXRpb25hbGl6ZWQsIGFuZCB0aGF0CisgICAgICAgIGludGVyYWN0IGdyYWNlZnVsbHkgd2l0aCA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBiZWFucyB0aGF0IGFyZSBwYXJ0CisgICAgICAgIG9mIHRoZSA8ZW0+TW9kZWw8L2VtPiBwb3J0aW9uIG9mIHRoZSBzeXN0ZW0uICAKKyAgICAgIDwvcD4KKworICAgICAgPHA+CisgICAgICAgIEZvciBtb3JlIGFib3V0IHRoZSBTdHJ1dHMgdGFnbGlicyBhbmQgdXNpbmcgcHJlc2VudGF0aW9uIHBhZ2VzIAorICAgICAgICB3aXRoIHRoZSBmcmFtZXdvcmssIHNlZSB0aGUgCisgICAgICAgICI8YSBocmVmPSJidWlsZGluZ192aWV3Lmh0bWwiPkJ1aWxkaW5nIFZpZXcgQ29tcG9uZW50czwvYT4iIGNoYXB0ZXIuIAorICAgICAgICBBZGRpdGlvbmFsIGRvY3VtZW50YXRpb24gcmVnYXJkaW5nIHRoZSB0YWdsaWJzIGlzIGFsc28gYXZhaWxhYmxlIGluIAorICAgICAgICB0aGUgRGV2ZWxvcGVyIEd1aWRlcyAoc2VlIG1lbnUpLgorICAgICAgPC9wPgorICAgIDwvc2VjdGlvbj4KKyAgICAKKyAgICA8c2VjdGlvbiBuYW1lPSIxLjIuMyBUaGUgQ29udHJvbGxlcjogQWN0aW9uU2VydmxldCBhbmQgQWN0aW9uTWFwcGluZyIgaHJlZj0iY29udHJvbGxlckNvbmNlcHRzIj4KKyAgICAgIAorICAgICAgPHA+CisgICAgICAgIFRoZSA8ZW0+Q29udHJvbGxlcjwvZW0+IHBvcnRpb24gb2YgdGhlIGFwcGxpY2F0aW9uIGlzIGZvY3VzZWQgb24gcmVjZWl2aW5nCisgICAgICAgIHJlcXVlc3RzIGZyb20gdGhlIGNsaWVudCAodHlwaWNhbGx5IGEgdXNlciBydW5uaW5nIGEgd2ViIGJyb3dzZXIpLCBkZWNpZGluZworICAgICAgICB3aGF0IGJ1c2luZXNzIGxvZ2ljIGZ1bmN0aW9uIGlzIHRvIGJlIHBlcmZvcm1lZCwgYW5kIHRoZW4gZGVsZWdhdGluZworICAgICAgICByZXNwb25zaWJpbGl0eSBmb3IgcHJvZHVjaW5nIHRoZSBuZXh0IHBoYXNlIG9mIHRoZSB1c2VyIGludGVyZmFjZSB0bworICAgICAgICBhbiBhcHByb3ByaWF0ZSBWaWV3IGNvbXBvbmVudC4gIEluIFN0cnV0cywgdGhlIHByaW1hcnkgY29tcG9uZW50IG9mIHRoZQorICAgICAgICBDb250cm9sbGVyIGlzIGEgc2VydmxldCBvZiBjbGFzcyA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPi4gVGhpcyBzZXJ2bGV0CisgICAgICAgIGlzIGNvbmZpZ3VyZWQgYnkgZGVmaW5pbmcgYSBzZXQgb2YgPGNvZGU+QWN0aW9uTWFwcGluZ3M8L2NvZGU+LiAKKyAgICAgICAgQW4gQWN0aW9uTWFwcGluZyBkZWZpbmVzIGEgPGNvZGU+cGF0aDwvY29kZT4gdGhhdCBpcyBtYXRjaGVkIGFnYWluc3QgdGhlIAorICAgICAgICByZXF1ZXN0IFVSSSBvZiB0aGUgaW5jb21pbmcgcmVxdWVzdCwgYW5kIHVzdWFsbHkgc3BlY2lmaWVzIHRoZQorICAgICAgICBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSBvZiBhbiBBY3Rpb24gY2xhc3MuIEFsbCBBY3Rpb25zCisgICAgICAgIGFyZSBzdWJjbGFzc2VkIGZyb20gPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbjwvY29kZT4uIEFjdGlvbnMgCisgICAgICAgIGVuY2Fwc3VsYXRlIHRoZSBidXNpbmVzcyBsb2dpYywgaW50ZXJwcmV0IHRoZSBvdXRjb21lLCBhbmQgdWx0aW1hdGVseSBkaXNwYXRjaAorICAgICAgICBjb250cm9sIHRvIHRoZSBhcHByb3ByaWF0ZSBWaWV3IGNvbXBvbmVudCB0byBjcmVhdGUgdGhlIHJlc3BvbnNlLgorICAgICAgPC9wPgorICAgICAgICAKKyAgICAgIDxwPgorICAgICAgICBTdHJ1dHMgYWxzbyBzdXBwb3J0cyB0aGUgYWJpbGl0eSB0byB1c2UgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4KKyAgICAgICAgY2xhc3NlcyB0aGF0IGhhdmUgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIGJleW9uZCB0aGUgc3RhbmRhcmQgb25lcyByZXF1aXJlZAorICAgICAgICB0byBvcGVyYXRlIHRoZSBmcmFtZXdvcmsuIFRoaXMgYWxsb3dzIHlvdSB0byBzdG9yZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgICAgICAgIHNwZWNpZmljIHRvIHlvdXIgYXBwbGljYXRpb24sIGJ1dCBzdGlsbCB1dGlsaXplIHRoZSByZW1haW5pbmcgZmVhdHVyZXMgb2YKKyAgICAgICAgdGhlIGZyYW1ld29yay4gSW4gYWRkaXRpb24sIFN0cnV0cyBsZXRzIHlvdSBkZWZpbmUgbG9naWNhbCAibmFtZXMiIHRvIHdoaWNoCisgICAgICAgIGNvbnRyb2wgc2hvdWxkIGJlIGZvcndhcmRlZCBzbyB0aGF0IGFuIGFjdGlvbiBtZXRob2QgY2FuIGFzayBmb3IgdGhlCisgICAgICAgICJNYWluIE1lbnUiIHBhZ2UgKGZvciBleGFtcGxlKSwgd2l0aG91dCBrbm93aW5nIHdoYXQgdGhlIGFjdHVhbCBuYW1lIG9mIHRoZQorICAgICAgICBjb3JyZXNwb25kaW5nIEpTUCBwYWdlIGlzLiAgVGhlc2UgZmVhdHVyZXMgZ3JlYXRseSBhc3Npc3QgeW91IGluIHNlcGFyYXRpbmcKKyAgICAgICAgdGhlIGNvbnRyb2wgbG9naWMgKHdoYXQgdG8gZG8pIHdpdGggdGhlIHZpZXcgbG9naWMgKGhvdyBpdCdzIHJlbmRlcmVkKS4KKyAgICAgIDwvcD4KKworICAgICAgPHA+CisgICAgICAgIEZvciBtb3JlIGFib3V0IHRoZSBTdHJ1dHMgY29udHJvbCBsYXllciwgc2VlIHRoZQorICAgICAgICA8YSBocmVmPSJidWlsZGluZ19jb250cm9sbGVyLmh0bWwiPkJ1aWxkaW5nIENvbnRyb2xsZXIgQ29tcG9uZW50czwvYT4gY2hhcHRlci4KKyAgICAgIDwvcD4KKworICAgICAgPC9zZWN0aW9uPgorICAgICAgCisgICAgICA8c2VjdGlvbiBuYW1lPSIxLjMgU3RydXRzIENvbnRyb2wgRmxvdyIgaHJlZj0iZmxvdyI+CisgICAgICAKKyAgICAgICAgPHA+CisgICAgICAgICAgVGhlIFN0cnV0cyBmcmFtZXdvcmsgcHJvdmlkZXMgc2V2ZXJhbCBjb21wb25lbnRzIHRoYXQgbWFrZSB1cCB0aGUgPHN0cm9uZz5Db250cm9sPC9zdHJvbmc+IAorICAgICAgICAgIGxheWVyIG9mIGEgTVZDLXN0eWxlIGFwcGxpY2F0aW9uLiBUaGVzZSBpbmNsdWRlIGEgY29udHJvbGxlciBzZXJ2bGV0LCAKKyAgICAgICAgICBkZXZlbG9wZXItZGVmaW5lZCByZXF1ZXN0IGhhbmRsZXJzLCBhbmQgc2V2ZXJhbCBzdXBwb3J0aW5nIG9iamVjdHMuCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgICBUaGUgU3RydXRzIGN1c3RvbSB0YWcgbGlicmFyaWVzIHByb3ZpZGUgZGlyZWN0IHN1cHBvcnQgZm9yIHRoZSA8c3Ryb25nPlZpZXc8L3N0cm9uZz4gbGF5ZXIgCisgICAgICAgICAgb2YgYSBNVkMgYXBwbGljYXRpb24uIFNvbWUgb2YgdGhlc2UgYWNjZXNzIHRoZSBjb250cm9sLWxheWVyIG9iamVjdHMuIAorICAgICAgICAgIE90aGVycyBhcmUgZ2VuZXJpYyB0YWdzIGZvdW5kIGNvbnZlbmllbnQgd2hlbiB3cml0aW5nIGFwcGxpY2F0aW9ucy4gT3RoZXIgCisgICAgICAgICAgdGFnbGlicywgaW5jbHVkaW5nIAorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvanNwL2pzdGwvaW5kZXguaHRtbCI+SlNUTDwvYT4sIAorICAgICAgICAgIGNhbiBhbHNvIGJlIHVzZWQgd2l0aCBTdHJ1dHMuIE90aGVyIHByZXNlbnRhdGlvbiB0ZWNobm9sb2dpZXMsIGxpa2UgCisgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy92ZWxvY2l0eS9pbmRleC5odG1sIj5WZWxvY2l0eSBUZW1wbGF0ZXM8L2E+IGFuZCAKKyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94c2x0Ij5YU0xUPC9hPgorICAgICAgICAgIGNhbiBhbHNvIGJlIHVzZWQgd2l0aCBTdHJ1dHMuCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgICBUaGUgPHN0cm9uZz5Nb2RlbDwvc3Ryb25nPiBsYXllciBpbiBhIE1WQyBhcHBsaWNhdGlvbiBpcyBvZnRlbiBwcm9qZWN0LXNwZWNpZmljLiBTdHJ1dHMgaXMgCisgICAgICAgICAgZGVzaWduZWQgdG8gbWFrZSBpdCBlYXN5IHRvIGFjY2VzcyB0aGUgYnVzaW5lc3MtZW5kIG9mIHlvdXIgYXBwbGljYXRpb24sIAorICAgICAgICAgIGJ1dCBsZWF2ZXMgdGhhdCBwYXJ0IG9mIHRoZSBwcm9ncmFtbWluZyB0byBvdGhlciBwcm9kdWN0cywgbGlrZSAKKyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2pkYmMvaW5kZXguaHRtbCI+SkRCQzwvYT4sIAorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvZWpiL2luZGV4Lmh0bWwiPkVudGVycHJpc2UgSmF2YSBCZWFuczwvYT4sIAorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvb2piLyI+T2JqZWN0IFJlbGF0aW9uYWwgQnJpZGdlPC9hPiwgb3IgCisgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL25ldG1lbWUub3JnL3NpbXBlci8iPlNpbXBlcjwvYT4sIAorICAgICAgICAgIHRvIG5hbWUgYSBmZXcuCisgICAgICAgICA8L3A+CisKKyAgICAgICAgPHA+CisgICAgICAgICBMZXQncyBzdGVwIHRocm91Z2ggaG93IHRoaXMgYWxsIGZpdHMgdG9nZXRoZXIuCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgICBXaGVuIGluaXRpYWxpemVkLCB0aGUgY29udHJvbGxlciBwYXJzZXMgYSBjb25maWd1cmF0aW9uCisgICAgICAgICAgZmlsZSAoPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+KSBhbmQgdXNlcyBpdCB0byBkZXBsb3kgb3RoZXIgY29udHJvbCBsYXllciBvYmplY3RzLiAKKyAgICAgICAgICBUb2dldGhlciwgdGhlc2Ugb2JqZWN0cyBmb3JtIHRoZSA8c3Ryb25nPlN0cnV0cyBDb25maWd1cmF0aW9uPC9zdHJvbmc+LiBUaGUgU3RydXRzIENvbmZpZ3VyYXRpb24gCisgICAgICAgICAgZGVmaW5lcyAoYW1vbmcgb3RoZXIgdGhpbmdzKSB0aGUgCisgICAgICAgICAgPGEgaHJlZj0iLi4vYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5BY3Rpb25NYXBwaW5nczwvYT4KKyAgICAgICAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzPC9jb2RlPl0gZm9yIGFuIGFwcGxpY2F0aW9uLiAKKyAgICAgICAgPC9wPgorCisgICAgICAgIDxwPgorICAgICAgICAgIFRoZSBTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0IGNvbnN1bHRzIHRoZSBBY3Rpb25NYXBwaW5ncyBhcyBpdCByb3V0ZXMgSFRUUCAKKyAgICAgICAgICByZXF1ZXN0cyB0byBvdGhlciBjb21wb25lbnRzIGluIHRoZSBmcmFtZXdvcmsuIFJlcXVlc3RzIG1heSBiZSBmb3J3YXJkZWQgdG8gSmF2YVNlcnZlciBQYWdlcyBvciAKKyAgICAgICAgICA8YSBocmVmPSIuLi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L2E+IAorICAgICAgICAgIFs8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uPC9jb2RlPl0gc3ViY2xhc3NlcyBwcm92aWRlZCBieSB0aGUKKyAgICAgICAgICBTdHJ1dHMgZGV2ZWxvcGVyLiBPZnRlbiwgYSByZXF1ZXN0IGlzIGZpcnN0IGZvcndhcmRlZCB0byBhbiBBY3Rpb24gYW5kIHRoZW4gdG8gYSBKU1AgCisgICAgICAgICAgKG9yIG90aGVyIHByZXNlbnRhdGlvbiBwYWdlKS4gVGhlIG1hcHBpbmdzIGhlbHAgdGhlIGNvbnRyb2xsZXIgdHVybiBIVFRQIHJlcXVlc3RzIGludG8gYXBwbGljYXRpb24gCisgICAgICAgICAgYWN0aW9ucy4KKyAgICAgICAgPC9wPgorICAgICAgICAKKyAgICAgICAgPHA+CisgICAgICAgIEFuIGluZGl2aWR1YWwgCisgICAgICAgIDxhIGhyZWY9Ii4uL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9hPgorICAgICAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc8L2NvZGU+XSAKKyAgICAgICAgd2lsbCB1c3VhbGx5IGNvbnRhaW4gYSBudW1iZXIgb2YgcHJvcGVydGllcyBpbmNsdWRpbmc6PC9wPgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPmEgPHN0cm9uZz5yZXF1ZXN0IHBhdGg8L3N0cm9uZz4gKG9yICJVUkkiKSw8L2xpPgorICAgICAgICAgIDxsaT50aGUgPHN0cm9uZz5vYmplY3QgdHlwZTwvc3Ryb25nPiAoQWN0aW9uIHN1YmNsYXNzKSB0byBhY3QgdXBvbiB0aGUgcmVxdWVzdCwgYW5kPC9saT4KKyAgICAgICAgICA8bGk+b3RoZXIgcHJvcGVydGllcyBhcyBuZWVkZWQuIDwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICAgIDxwPgorICAgICAgICAgIFRoZSBBY3Rpb24gb2JqZWN0IGNhbiBoYW5kbGUgdGhlIHJlcXVlc3QgYW5kIHJlc3BvbmQgdG8gdGhlIGNsaWVudCAodXN1YWxseSBhIFdlYiAKKyAgICAgICAgICBicm93c2VyKSBvciBpbmRpY2F0ZSB0aGF0IGNvbnRyb2wgc2hvdWxkIGJlIGZvcndhcmRlZCBlbHNld2hlcmUuIEZvciBleGFtcGxlLCBpZiAKKyAgICAgICAgICBhIGxvZ2luIHN1Y2NlZWRzLCBhIGxvZ2luIGFjdGlvbiBtYXkgd2lzaCB0byBmb3J3YXJkIHRoZSByZXF1ZXN0IG9udG8gdGhlIAorICAgICAgICAgIG1haW5NZW51IHBhZ2UuCisgICAgICAgIDwvcD4KKyAgICAgIAorICAgICAgICA8cD4KKyAgICAgICAgICBBY3Rpb24gb2JqZWN0cyBoYXZlIGFjY2VzcyB0byB0aGUgYXBwbGljYXRpb24ncyBjb250cm9sbGVyIHNlcnZsZXQsIGFuZCBzbyBoYXZlIGFjY2VzcworICAgICAgICAgIHRvIHRoYXQgc2VydmxldCdzIG1ldGhvZHMuIFdoZW4gZm9yd2FyZGluZyBjb250cm9sLCBhbiBBY3Rpb24gb2JqZWN0IGNhbiBpbmRpcmVjdGx5CisgICAgICAgICAgZm9yd2FyZCBvbmUgb3IgbW9yZSBzaGFyZWQgb2JqZWN0cywgaW5jbHVkaW5nIAorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvamF2YWJlYW5zLyI+SmF2YUJlYW5zPC9hPiwgYnkgcGxhY2luZyB0aGVtIGluIG9uZQorICAgICAgICAgIG9mIHRoZSBzdGFuZGFyZCBjb250ZXh0cyBzaGFyZWQgYnkgSmF2YSBTZXJ2bGV0cy4KKyAgICAgICAgPC9wPgorICAgICAgICAKKyAgICAgICAgPHA+CisgICAgICAgICAgRm9yIGV4YW1wbGUsIGFuIEFjdGlvbiBvYmplY3QgY2FuIGNyZWF0ZSBhIHNob3BwaW5nIGNhcnQgYmVhbiwgYWRkIGFuIGl0ZW0gdG8gdGhlCisgICAgICAgICAgY2FydCwgcGxhY2UgdGhlIGJlYW4gaW4gdGhlIHNlc3Npb24gY29udGV4dCwgYW5kIHRoZW4gZm9yd2FyZCBjb250cm9sIHRvCisgICAgICAgICAgYW5vdGhlciBtYXBwaW5nLiBUaGF0IG1hcHBpbmcgbWF5IHVzZSBhIEphdmFTZXJ2ZXIgUGFnZSB0byBkaXNwbGF5IHRoZSBjb250ZW50cyBvZiB0aGUgdXNlcidzIGNhcnQuCisgICAgICAgICAgU2luY2UgZWFjaCBjbGllbnQgaGFzIHRoZWlyIG93biBzZXNzaW9uLCB0aGV5IHdpbGwgZWFjaCBhbHNvIGhhdmUgdGhlaXIgb3duCisgICAgICAgICAgc2hvcHBpbmcgY2FydC4gPC9wPgorICAgICAgICA8cD4KKyAgICAgICAgICBJbiBhIFN0cnV0cyBhcHBsaWNhdGlvbiwgbW9zdCBvZiB0aGUgYnVzaW5lc3MgbG9naWMgY2FuIGJlCisgICAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgSmF2YUJlYW5zLiBBbiBBY3Rpb24gY2FuIGNhbGwgdGhlIHByb3BlcnRpZXMgb2YgYSBKYXZhQmVhbiAKKyAgICAgICAgICB3aXRob3V0IGtub3dpbmcgaG93IGl0IGFjdHVhbGx5IHdvcmtzLiBUaGlzIGVuY2Fwc3VsYXRlcyB0aGUgYnVzaW5lc3MgbG9naWMsIAorICAgICAgICAgIHNvIHRoYXQgdGhlIEFjdGlvbiBjYW4gZm9jdXMgb24gZXJyb3IgaGFuZGxpbmcgYW5kIHdoZXJlIHRvIGZvcndhcmQgY29udHJvbC4KKyAgICAgICAgPC9wPgorICAgICAgICAKKyAgICAgICAgPHA+CisgICAgICAgICAgSmF2YUJlYW5zIGNhbiBhbHNvIGJlIHVzZWQgdG8gbWFuYWdlIGlucHV0IGZvcm1zLiBBIGtleSBwcm9ibGVtIGluIGRlc2lnbmluZworICAgICAgICAgIFdlYiBhcHBsaWNhdGlvbnMgaXMgcmV0YWluaW5nIGFuZCB2YWxpZGF0aW5nIHdoYXQgYSB1c2VyIGhhcyBlbnRlcmVkIGJldHdlZW4KKyAgICAgICAgICByZXF1ZXN0cy4gV2l0aCBTdHJ1dHMsIHlvdSBjYW4gZGVmaW5lIHlvdXIgb3duIHNldCBvZiBpbnB1dCBiZWFuIGNsYXNzZXMsIGJ5CisgICAgICAgICAgc3ViY2xhc3NpbmcgCisgICAgICAgICAgPGEgaHJlZj0iLi4vYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L2E+CisgICAgICAgICAgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtPC9jb2RlPl0uIFRoZSBBY3Rpb25Gb3JtIGNsYXNzIG1ha2VzIGl0CisgICAgICAgICAgZWFzeSB0byBzdG9yZSA8c3Ryb25nPmFuZCB2YWxpZGF0ZTwvc3Ryb25nPiB0aGUgZGF0YSBmb3IgeW91ciBhcHBsaWNhdGlvbidzIGlucHV0IGZvcm1zLiAKKyAgICAgICAgICBUaGUgQWN0aW9uRm9ybSBiZWFuIGlzIGF1dG9tYXRpY2FsbHkgc2F2ZWQgaW4gb25lIG9mIHRoZSBzdGFuZGFyZCwgc2hhcmVkIGNvbnRleHQgCisgICAgICAgICAgY29sbGVjdGlvbnMsIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgYnkgb3RoZXIgb2JqZWN0cywgbGlrZSBhbiBBY3Rpb24gb2JqZWN0IG9yIAorICAgICAgICAgIGFub3RoZXIgSlNQLgorICAgICAgICA8L3A+CisgICAgICAgIAorICAgICAgICA8cD4KKyAgICAgICAgICBUaGUgZm9ybSBiZWFuIGNhbiBiZSB1c2VkIGJ5IGEgSlNQIHRvIGNvbGxlY3QgZGF0YSBmcm9tIHRoZSB1c2VyIC4uLiBieSBhbgorICAgICAgICAgIEFjdGlvbiBvYmplY3QgdG8gdmFsaWRhdGUgdGhlIHVzZXItZW50ZXJlZCBkYXRhIC4uLiBhbmQgdGhlbiBieSB0aGUgSlNQIGFnYWluIHRvCisgICAgICAgICAgcmUtcG9wdWxhdGUgdGhlIGZvcm0gZmllbGRzLiBJbiB0aGUgY2FzZSBvZiB2YWxpZGF0aW9uIGVycm9ycywgU3RydXRzIGhhcyBhCisgICAgICAgICAgc2hhcmVkIG1lY2hhbmlzbSBmb3IgcmFpc2luZyBhbmQgZGlzcGxheWluZyBlcnJvciBtZXNzYWdlcy4KKyAgICAgICAgPC9wPgorICAgICAgICAKKyAgICAgICAgPHA+CisgICAgICAgICAgQW5vdGhlciBlbGVtZW50IG9mIHRoZSBTdHJ1dHMgQ29uZmlndXJhdGlvbiBhcmUgdGhlIAorICAgICAgICAgIDxhIGhyZWY9Ii4uL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPkFjdGlvbkZvcm1CZWFuczwvYT4KKyAgICAgICAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuczwvY29kZT5dLgorICAgICAgICAgIFRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIAorICAgICAgICAgIDxhIGhyZWY9Ii4uL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+ZGVzY3JpcHRvciBvYmplY3RzPC9hPgorICAgICAgICAgIHRoYXQgYXJlIHVzZWQgdG8gY3JlYXRlIGluc3RhbmNlcyBvZiB0aGUgQWN0aW9uRm9ybSBvYmplY3RzIGF0IHJ1bnRpbWUuIAorICAgICAgICAgIFdoZW4gYSBtYXBwaW5nIG5lZWRzIGFuIEFjdGlvbkZvcm0sIHRoZSBzZXJ2bGV0IGxvb2tzIHVwIHRoZSBmb3JtLWJlYW4gZGVzY3JpcHRvciBieSBuYW1lIGFuZCB1c2VzIAorICAgICAgICAgIGl0IHRvIGNyZWF0ZSBhbiBBY3Rpb25Gb3JtIGluc3RhbmNlIG9mIHRoZSBzcGVjaWZpZWQgdHlwZS4KKyAgICAgICAgPC9wPgorICAgICAgICAgPHA+ICAgIAorICAgICAgICAgIEhlcmUgaXMgdGhlIHNlcXVlbmNlIG9mIGV2ZW50cyB0aGF0IG9jY3VyIHdoZW4gYSByZXF1ZXN0IGNhbGxzIGZvciBhbiBtYXBwaW5nIHRoYXQgdXNlcyBhbiBBY3Rpb25Gb3JtOgorICAgICAgICA8L3A+CisgICAgICAgICAKKyAgICAgICAgPHVsPgorICAgICAgICA8bGk+VGhlIGNvbnRyb2xsZXIgc2VydmxldCBlaXRoZXIgcmV0cmlldmVzIG9yIGNyZWF0ZXMgdGhlIEFjdGlvbkZvcm0gYmVhbiBpbnN0YW5jZS48L2xpPgorICAgICAgICA8bGk+VGhlIGNvbnRyb2xsZXIgc2VydmxldCBwYXNzZXMgdGhlIGJlYW4gdG8gdGhlIEFjdGlvbiBvYmplY3QuPC9saT4KKyAgICAgICAgPGxpPklmIHRoZSByZXF1ZXN0IGlzIGJlaW5nIHVzZWQgdG8gc3VibWl0IGFuIGlucHV0IHBhZ2UsIHRoZSBBY3Rpb24gb2JqZWN0IAorICAgICAgICBjYW4gZXhhbWluZSB0aGUgZGF0YS4gSWYgbmVjZXNzYXJ5LCB0aGUgZGF0YSBjYW4gYmUgc2VudCBiYWNrIHRvIHRoZSBpbnB1dCAKKyAgICAgICAgZm9ybSBhbG9uZyB3aXRoIGEgbGlzdCBvZiBtZXNzYWdlcyB0byBkaXNwbGF5IG9uIHRoZSBwYWdlLiBPdGhlcndpc2UgdGhlIGRhdGEgY2FuIAorICAgICAgICBiZSBwYXNzZWQgYWxvbmcgdG8gdGhlIGJ1c2luZXNzIHRpZXIuPC9saT4KKyAgICAgICAgPGxpPklmIHRoZSByZXF1ZXN0IGlzIGJlaW5nIHVzZWQgdG8gY3JlYXRlIGFuIGlucHV0IHBhZ2UsIHRoZSBBY3Rpb24gb2JqZWN0IGNhbiAKKyAgICAgICAgcG9wdWxhdGUgdGhlIGJlYW4gd2l0aCBhbnkgZGF0YSB0aGF0IHRoZSBpbnB1dCBwYWdlIG1pZ2h0IG5lZWQuIDwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICAgIAorICAgICAgICA8cD4KKyAgICAgICAgICBUaGUgU3RydXRzIGZyYW1ld29yayBpbmNsdWRlcyBjdXN0b20gdGFncyB0aGF0IGNhbiBhdXRvbWF0aWNhbGx5IHBvcHVsYXRlCisgICAgICAgICAgZmllbGRzIGZyb20gYSBKYXZhQmVhbi4gQWxsIG1vc3QgSmF2YVNlcnZlciBQYWdlcyByZWFsbHkgbmVlZCB0byBrbm93CisgICAgICAgICAgYWJvdXQgdGhlIHJlc3Qgb2YgdGhlIGZyYW1ld29yayBpcyB0aGUgZmllbGQgbmFtZXMgdG8gdXNlIGFuZCB3aGVyZSB0byBzdWJtaXQKKyAgICAgICAgICB0aGUgZm9ybS4gCisgICAgICAgIDwvcD4KKyAgICAgICAgPHA+CisgICAgICAgICAgT3RoZXIgU3RydXRzIHRhZ3MgY2FuIGF1dG9tYXRpY2FsbHkgb3V0cHV0IG1lc3NhZ2VzIHF1ZXVlZCBieSBhbiBBY3Rpb24gCisgICAgICAgICAgb3IgQWN0aW9uRm9ybSBhbmQgc2ltcGx5IG5lZWQgdG8gYmUgaW50ZWdyYXRlZCBpbnRvIHRoZSBwYWdlJ3MgbWFya3VwLiAKKyAgICAgICAgICBUaGUgbWVzc2FnZXMgYXJlIGRlc2lnbmVkIGZvcgorICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIuamF2YS5zdW4uY29tL2RldmVsb3Blci90ZWNobmljYWxBcnRpY2xlcy9JbnRsL0ludGxJbnRyby8iPmxvY2FsaXphdGlvbjwvYT4gCisgICAgICAgICAgYW5kIHdpbGwgcmVuZGVyIHRoZSBiZXN0IGF2YWlsYWJsZSBtZXNzYWdlIGZvciBhIHVzZXIncyBsb2NhbGUuCisgICAgICAgIDwvcD4KKyAgICAgICAgCisgICAgICAgIDxwPgorICAgICAgICAgIFRoZSBTdHJ1dHMgZnJhbWV3b3JrIGFuZCBpdHMgY3VzdG9tIHRhZyBsaWJyYXJpZXMgd2VyZSBkZXNpZ25lZCBmcm9tIHRoZSBncm91bmQtdXAgCisgICAgICAgICAgdG8gc3VwcG9ydCB0aGUgaW50ZXJuYXRpb25hbGl6YXRpb24gZmVhdHVyZXMgYnVpbHQgaW50byB0aGUgSmF2YSBwbGF0Zm9ybS4gQWxsIHRoZSBmaWVsZCBsYWJlbHMKKyAgICAgICAgICBhbmQgbWVzc2FnZXMgY2FuIGJlIHJldHJpZXZlZCBmcm9tIGEgCisgICAgICAgICAgPGEgaHJlZj0iLi4vYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5tZXNzYWdlIHJlc291cmNlPC9hPi4KKyAgICAgICAgICBUbyBwcm92aWRlIG1lc3NhZ2VzIGZvciBhbm90aGVyIGxhbmd1YWdlLCBzaW1wbHkgYWRkIGFub3RoZXIgZmlsZSB0byB0aGUgcmVzb3VyY2UgYnVuZGxlLgorICAgICAgICA8L3A+CisgICAgICAgIAorICAgICAgICA8cD4KKyAgICAgICAgICBJbnRlcm5hdGlvbmFsaXNtIGFzaWRlLCBvdGhlciBiZW5lZml0cyB0byB0aGUgbWVzc2FnZSByZXNvdXJjZXMgYXBwcm9hY2ggYXJlIGNvbnNpc3RlbnQgbGFiZWxpbmcgCisgICAgICAgICAgYmV0d2VlbiBmb3JtcywgYW5kIHRoZSBhYmlsaXR5IHRvIHJldmlldyBhbGwgbGFiZWxzIGFuZCBtZXNzYWdlcyBmcm9tIGEgY2VudHJhbCAKKyAgICAgICAgICBsb2NhdGlvbi4KKyAgICAgICAgPC9wPgorICAgICAgICAKKyAgICAgICAgPHA+CisgICAgICAgICAgRm9yIHRoZSBzaW1wbGVzdCBhcHBsaWNhdGlvbnMsIGFuIEFjdGlvbiBvYmplY3QgbWF5IHNvbWV0aW1lcyBoYW5kbGUgdGhlIGJ1c2luZXNzIGxvZ2ljCisgICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIGEgcmVxdWVzdC4gPHN0cm9uZz5Ib3dldmVyLCBpbiBtb3N0IGNhc2VzLCBhbiBBY3Rpb24gb2JqZWN0IHNob3VsZCAKKyAgICAgICAgICBpbnZva2UgYW5vdGhlciBvYmplY3QsIHVzdWFsbHkgYSBKYXZhQmVhbiwgdG8gcGVyZm9ybSB0aGUgYWN0dWFsIGJ1c2luZXNzIGxvZ2ljLjwvc3Ryb25nPiAKKyAgICAgICAgICBUaGlzIGxldHMgdGhlIEFjdGlvbiBmb2N1cyBvbiBlcnJvciBoYW5kbGluZyBhbmQgY29udHJvbCBmbG93LCByYXRoZXIgdGhhbiAKKyAgICAgICAgICBidXNpbmVzcyBsb2dpYy4gVG8gYWxsb3cgIHJldXNlIG9uIG90aGVyIHBsYXRmb3JtcywgYnVzaW5lc3MtbG9naWMgSmF2YUJlYW5zIHNob3VsZCBub3QgcmVmZXIgdG8gYW55IFdlYiAKKyAgICAgICAgICBhcHBsaWNhdGlvbiBvYmplY3RzLiBUaGUgQWN0aW9uIG9iamVjdCBzaG91bGQgdHJhbnNsYXRlIG5lZWRlZCBkZXRhaWxzIGZyb20gdGhlIAorICAgICAgICAgIEhUVFAgcmVxdWVzdCBhbmQgcGFzcyB0aG9zZSBhbG9uZyB0byB0aGUgYnVzaW5lc3MtbG9naWMgYmVhbnMgYXMgcmVndWxhciBKYXZhIAorICAgICAgICAgIHZhcmlhYmxlcy4KKyAgICAgICAgPC9wPgorICAgICAgICAgIAorICAgICAgICA8cD4KKyAgICAgICAgICBJbiBhIGRhdGFiYXNlIGFwcGxpY2F0aW9uLCBmb3IgZXhhbXBsZTogCisgICAgICAgIDwvcD4KKworICAgICAgICA8dWw+CisgICAgICAgICA8bGk+QSBidXNpbmVzcy1sb2dpYyBiZWFuIHdpbGwgY29ubmVjdCB0byBhbmQgcXVlcnkgdGhlIGRhdGFiYXNlLDwvbGk+CisgICAgICAgICA8bGk+VGhlIGJ1c2luZXNzLWxvZ2ljIGJlYW4gcmV0dXJucyB0aGUgcmVzdWx0IHRvIHRoZSBBY3Rpb24sPC9saT4KKyAgICAgICAgIDxsaT5UaGUgQWN0aW9uIHN0b3JlcyB0aGUgcmVzdWx0IGluIGEgZm9ybSBiZWFuIGluIHRoZSByZXF1ZXN0LDwvbGk+CisgICAgICAgICA8bGk+VGhlIEphdmFTZXJ2ZXIgUGFnZSBkaXNwbGF5cyB0aGUgcmVzdWx0IGluIGEgSFRNTCBmb3JtLjwvbGk+CisgICAgICAgICA8L3VsPgorCisgICAgICAgICA8cD5OZWl0aGVyIHRoZSBBY3Rpb24gbm9yIHRoZSBKU1AgbmVlZCB0byBrbm93IChvciBjYXJlKSBmcm9tIHdoZXJlIAorICAgICAgICAgdGhlIHJlc3VsdCBjb21lcy4gVGhleSBqdXN0IG5lZWQgdG8ga25vdyBob3cgdG8gcGFja2FnZSBhbmQgZGlzcGxheSBpdC4KKyAgICAgICAgIDwvcD4KKyAgICAgICAgCisgICAgICAgIDxwPgorICAgICAgICAgIDxhIGhyZWY9ImluZGV4Lmh0bWwiPk90aGVyIGNoYXB0ZXJzPC9hPiBpbiB0aGlzIGRvY3VtZW50IGNvdmVyIHRoZSAKKyAgICAgICAgICB2YXJpb3VzIFN0cnV0cyBjb21wb25lbnRzIGluIGdyZWF0ZXIgZGV0YWlsLiBUaGUgU3RydXRzIHJlbGVhc2UgYWxzbyAKKyAgICAgICAgICBpbmNsdWRlcyBzZXZlcmFsIERldmVsb3BlciBHdWlkZXMgY292ZXJpbmcgdmFyaW91cyBhc3BlY3RzIG9mIHRoZSAKKyAgICAgICAgICBmcmFtZXdvcmtzLCBhbG9uZyB3aXRoIHNhbXBsZSBhcHBsaWNhdGlvbnMsIHRoZSBzdGFuZGFyZCBKYXZhZG9jIEFQSSwgCisgICAgICAgICAgYW5kLCBvZiBjb3Vyc2UsIHRoZSBjb21wbGV0ZSBzb3VyY2UgY29kZSEKKyAgICAgICAgIDwvcD4KKyAgICAgICAgIAorICAgICAgICAgPHA+CisgICAgICAgICAgU3RydXRzIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiBsaWNlbnNlLiBUaGUgY29kZSAKKyAgICAgICAgICBpcyBjb3B5cmlnaHRlZCwgYnV0IGlzIGZyZWUgdG8gdXNlIGluIGFueSBhcHBsaWNhdGlvbi4gU2VlIHRoZSAKKyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvTElDRU5TRS0xLjEiPkFTRiBsaWNlbnNlPC9hPiBmb3Igc3BlY2lmaWNzLiAKKyAgICAgICAgIDwvcD4KKyAgICAgICAgICAKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24+CisgICAgPHAgY2xhc3M9InJpZ2h0Ij4KKyAgICBOZXh0OiA8YSBocmVmPSJidWlsZGluZ19tb2RlbC5odG1sIj5CdWlsZGluZyBNb2RlbCBDb21wb25lbnRzPC9hPgorICAgIDwvcD4KKzwvc2VjdGlvbj4KKyAgICAgIAorCis8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3ByZWZhY2UueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3ByZWZhY2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlYWE1MmUKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcHJlZmFjZS54bWwKQEAgLTAsMCArMSw4NTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0icHJlZmFjZS5odG1sIj4KKworICA8cHJvcGVydGllcz4KKyAgICA8dGl0bGU+VGhlIFN0cnV0cyBVc2VyJ3MgR3VpZGUgLSBQcmVmYWNlOiBDb3JlIFRlY2hub2xvZ2llczwvdGl0bGU+CisgIDwvcHJvcGVydGllcz4KKworICA8Ym9keT4KKworICA8c2VjdGlvbiBuYW1lPSIwLiBQcmVmYWNlOiBDb3JlIFRlY2hub2xvZ2llcyIvPgorCisgIDxzZWN0aW9uIG5hbWU9IjAuMSBUaGUgVXN1YWwgU3VzcGVjdHMiIGhyZWY9InN1c3BlY3RzIj4KKworICAgIDxwPgorICAgICAgVGhpcyBVc2VyIEd1aWRlIGlzIHdyaXR0ZW4gZm9yIGFjdGl2ZSB3ZWIgZGV2ZWxvcGVycyBhbmQgYXNzdW1lcyBhIHdvcmtpbmcKKyAgICAgIGtub3dsZWRnZSBhYm91dCBob3cgSmF2YSB3ZWIgYXBwbGljYXRpb25zIGFyZSBidWlsdC4gQmVmb3JlIGdldHRpbmcgc3RhcnRlZCwgeW91IHNob3VsZAorICAgICAgdW5kZXJzdGFuZCB0aGUgYmFzaWNzIG9mIHNldmVyYWwgY29yZSB0ZWNobm9sb2dpZXM6CisgICAgPC9wPgorCisgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9IiNodHRwIj5IVFRQLCBIVE1MLCBhbmQgVXNlciBBZ2VudHM8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSIjY3ljbGUiPlRoZSBIVFRQIFJlcXVlc3QvUmVzcG9uc2UgQ3ljbGU8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSIjamF2YSI+VGhlIEphdmEgTGFuZ3VhZ2UgYW5kIEFwcGxpY2F0aW9uIEZyYW1ld29ya3M8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSIjamF2YWJlYW5zIj5KYXZhQmVhbnM8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSIjcmVzb3VyY2VzIj5Qcm9wZXJ0aWVzIEZpbGVzIGFuZCAgUmVzb3VyY2VCdW5kbGVzPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iI3NlcnZsZXRzIj5KYXZhIFNlcnZsZXRzPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iI2pzcCI+SmF2YVNlcnZlciBQYWdlcyBhbmQgSlNQIFRhZyBMaWJyYXJpZXM8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSIjeG1sIj5FeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZTwvYT48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD4KKyAgICBUaGlzIGNoYXB0ZXIgYnJpZWZseSBkZWZpbmVzIGVhY2ggb2YgdGhlc2UgdGVjaG5vbG9naWVzIGJ1dCBkb2VzIG5vdCBkZXNjcmliZSB0aGVtIGluIGRldGFpbC4KKyAgICBGb3IgeW91ciBjb252ZW5pZW5jZSwgbGlua3MgdG8gZnVydGhlciBpbmZvcm1hdGlvbiBhcmUgcHJvdmlkZWQgaWYgeW91IHdvdWxkIGxpa2UgdG8gbGVhcm4gbW9yZSBhYm91dCBhIHRlY2hub2xvZ3kuCisgICAgPC9wPgorCisgICAgPHAgaWQ9IkphdmFXZWJTZXJ2aWNlc1R1dG9yaWFsIj5JZiB5b3UgYXJlIGZhbWlsaWFyIHdpdGggSmF2YSwgYnV0IG5vdCB0aGVzZSB0ZWNobm9sb2dpZXMsCisgICAgdGhlIGJlc3Qgb3ZlcmFsbCBzdGFydGluZyBwb2ludCBpcworICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vd2Vic2VydmljZXMvZG9jcy8xLjAvdHV0b3JpYWwvaW5kZXguaHRtbCI+PHN0cm9uZz5UaGUgSmF2YSBXZWIgU2VydmljZXMgVHV0b3JpYWw8L3N0cm9uZz48L2E+LgorICAgIFRoaXMgZG9jdW1lbnQgaXMgYWxzbyBhdmFpbGFibGUgZm9yIGRvd25sb2FkIGluCisgICAgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS93ZWJzZXJ2aWNlcy9kb2NzLzEuMC90dXRvcmlhbC9kb2MvSmF2YVdTVHV0b3JpYWwucGRmIj5QREY8L2E+IGZvcm1hdC4KKyAgICA8L3A+CisKKyAgICA8cD5JZiB5b3UndmUgY3JlYXRlZCB3ZWIgYXBwbGljYXRpb25zIGZvciBvdGhlciBwbGF0Zm9ybXMsIHlvdSBtYXkgYmUgYWJsZSB0byBmb2xsb3cgYWxvbmcKKyAgICBhbmQgdmlzaXQgdGhlIG90aGVyIHJlZmVyZW5jZXMgYXMgbmVlZGVkLiBUaGUgY29yZSB0ZWNobm9sb2dpZXMgdXNlZCBieSBTdHJ1dHMgYXJlCisgICAgYWxzbyB1c2VkIGJ5IG1vc3Qgb3RoZXIgSmF2YSB3ZWIgZGV2ZWxvcG1lbnQgcHJvZHVjdHMsIHNvIHRoZSBiYWNrZ3JvdW5kIGluZm9ybWF0aW9uIHdpbGwgYmUKKyAgICB1c2VmdWwgaW4gYW55IEphdmEgcHJvamVjdC4KKyAgICA8L3A+CisKKyAgICA8cCBpZD0ianQiPklmIHlvdSBhcmUgbm90IGZhbWlsaWFyIHdpdGggdGhlIEphdmEgbGFuZ3VhZ2UgZ2VuZXJhbGx5LAorICAgIHRoZW4gdGhlIGJlc3Qgc3RhcnRpbmcgcG9pbnQgaXMKKyAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2RvY3MvYm9va3MvdHV0b3JpYWwvaW5kZXguaHRtbCI+PHN0cm9uZz5UaGUgSmF2YSBUdXRvcmlhbDwvc3Ryb25nPjwvYT4uCisgICAgVGhpcyBvdmVybGFwcyB3aXRoIHRoZSBKYXZhIFdlYiBTZXJ2aWNlcyBUdXRvcmlhbCBpbiBzb21lIHBsYWNlcywgYnV0IHRoZSB0d28gd29yayB3ZWxsIHRvZ2V0aGVyLgorICAgIDwvcD4KKworICAgICAgPHA+CisgICAgICAgICAgRm9yIG1vcmUgYWJvdXQgYnVpbGRpbmcgSmF2YSBhcHBsaWNhdGlvbiBpbiBnZW5lcmFsLCBzZWUgdGhlCisgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2RldmVsb3Blci5qYXZhLnN1bi5jb20vZGV2ZWxvcGVyL29ubGluZVRyYWluaW5nL25ldzJqYXZhL2RpdmVsb2cvcGFydDEvdG9jLmpzcCI+TmV3IHRvCisgICAgICAgICAgSmF2YTwvYT4gdHV0b3JpYWwuCisgICAgICA8L3A+CisKKyAgICA8L3NlY3Rpb24+CisKKyAgICA8c2VjdGlvbiBuYW1lPSIwLjIgSFRUUCwgSFRNTCBhbmQgVXNlciBBZ2VudHMiIGhyZWY9Imh0dHAiPgorCisgICAgPHA+VGhlIFdvcmxkIFdpZGUgV2ViIHdhcyBidWlsdCBvdmVyIHRoZSBIeXBlcnRleHQgVHJhbnNmZXIgUHJvdG9jb2wKKyAgICAoPGEgaHJlZj0iaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjYxNi50eHQ/bnVtYmVyPTI2MTYiPkhUVFA8L2E+KSBhbmQgdGhlIEh5cGVydGV4dCBNYXJrdXAgTGFuZ3VhZ2UKKyAgICAoPGEgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvTWFya1VwLyI+SFRNTDwvYT4pLiBBIFVzZXIgQWdlbnQsIGxpa2UgYSB3ZWIgYnJvd3NlciwgdXNlcyBIVFRQIHRvIHJlcXVlc3QKKyAgICAgYSBIVE1MIGRvY3VtZW50LiBUaGUgYnJvd3NlciB0aGVuIGZvcm1hdHMgYW5kIGRpc3BsYXlzIHRoZSBkb2N1bWVudCB0byBpdHMgdXNlci4gSFRUUCBpcyB1c2VkIHRvCisgICAgdHJhbnNwb3J0IG1vcmUgdGhhbiBIVE1MLCBidXQgSFRNTCBpcyB0aGUgbGluZ3VhIGZyYW5jYSBvZiB0aGUgV2ViIGFuZCB3ZWIgYXBwbGljYXRpb25zLiA8L3A+CisKKyAgICA8cD5XaGlsZSBidWlsZGluZyB3ZWIgYXBwbGljYXRpb25zLCBzb21lIEphdmEgZGV2ZWxvcGVycyB3aWxsIHdyaXRlIHRoZWlyIG93biBIVE1MLiBPdGhlcnMgbGVhdmUgdGhhdCByZXNwb25zaWJpbGl0eSB0byB0aGUKKyAgICBwYWdlIGRlc2lnbmVycy48L3A+CisKKyAgICA8cD5Gb3IgbW9yZSBhYm91dCBIVFRQLCBIVE1MLCBhbmQgVXNlciBBZ2VudHMsIHNlZTo8L3A+CisKKyAgICA8dWw+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL01hcmtVcC9HdWlkZS8iPjxzdHJvbmc+R2V0dGluZyBzdGFydGVkIHdpdGggSFRNTDwvc3Ryb25nPjwvYT4gYnkgRGF2ZSBSYWdnZXR0PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS93ZWJzZXJ2aWNlcy9kb2NzLzEuMC90dXRvcmlhbC9kb2MvSFRUUC5odG1sIzYzNzk2Ij4KKyAgICA8c3Ryb25nPkhUVFAgT3ZlcnZpZXc8L3N0cm9uZz48L2E+IGluIHRoZSBKYXZhIFdlYiBTZXJ2aWNlcyBUdXRvcmlhbC48L2xpPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmMyNjE2LnR4dCI+PHN0cm9uZz5IVFRQLzEuMQorICAgICAgICA8L3N0cm9uZz48L2E+IFNwZWNpZmljYXRpb248L2xpPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmMyNjE3LnR4dCI+PHN0cm9uZz5IVFRQCisgICAgICAgIEJhc2ljIGFuZCBEaWdlc3QgQXV0aGVudGljYXRpb248L3N0cm9uZz48L2E+IFNwZWNpZmljYXRpb248L2xpPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmMyMTA5LnR4dCI+PHN0cm9uZz5TdGF0ZQorICAgICAgICBNYW5hZ2VtZW50IE1lY2hhbmlzbTwvc3Ryb25nPjwvYT4gU3BlY2lmaWNhdGlvbiAoQ29va2llcyk8L2xpPgorICAgIDwvdWw+CisgICAgPC9zZWN0aW9uPgorCisgICAgPHNlY3Rpb24gbmFtZT0iMC4zIFRoZSBIVFRQIFJlcXVlc3QvUmVzcG9uc2UgY3ljbGUiIGhyZWY9ImN5Y2xlIj4KKworICAgIDxwPkEgdmVyeSBpbXBvcnRhbnQgcGFydCBvZiBIVFRQIGZvciB0aGUgd2ViIGRldmVsb3BlciBpcyB0aGUgcmVxdWVzdC9yZXNwb25zZSBjeWNsZS4gVG8gdXNlIEhUVFAKKyAgICB5b3UgaGF2ZSB0byBtYWtlIGEgcmVxdWVzdC4gQSBIVFRQIHNlcnZlciwgbGlrZSBhIHdlYiBzZXJ2ZXIsIGlzIHRoZW4gb2JsaWdlZCB0byByZXNwb25kLiBXaGVuIHlvdQorICAgIGJ1aWxkIHlvdXIgd2ViIGFwcGxpY2F0aW9uLCB5b3UgZGVzaWduIGl0IHRvIHJlYWN0IHRvIGEgSFRUUCByZXF1ZXN0IGJ5IHJldHVybmluZyBhIEhUVFAgcmVzcG9uc2UuCisgICAgRnJhbWV3b3JrcyBsaWtlIFN0cnV0cyBhYnN0cmFjdCBtdWNoIG9mIHRoZXNlIG51dHMgYW5kIGJvbHRzLCBidXQgaXQgaXMgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQKKyAgICB3aGF0IGlzIGhhcHBlbmluZyBiZWhpbmQgdGhlIHNjZW5lcy4gPC9wPgorCisgICAgPHA+SWYgeW91IGFyZSBub3QgZmFtaWxpYXIgd2l0aCB0aGUgSFRUUCByZXF1ZXN0L3Jlc3BvbnNlIGN5Y2xlLCB3ZSA8c3Ryb25nPnN0cm9uZ2x5PC9zdHJvbmc+IHJlY29tbWVuZCB0aGUKKyAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3dlYnNlcnZpY2VzL2RvY3MvMS4wL3R1dG9yaWFsL2RvYy9IVFRQLmh0bWwjNjM3OTYiPgorICAgIEhUVFAgT3ZlcnZpZXc8L2E+IGluIHRoZSBKYXZhIFdlYiBTZXJ2aWNlcyBUdXRvcmlhbC4KKyAgICA8L3A+CisKKyAgICA8L3NlY3Rpb24+CisKKyAgICA8c2VjdGlvbiBuYW1lPSIwLjQgVGhlIEphdmEgTGFuZ3VhZ2UgYW5kIEFwcGxpY2F0aW9uIEZyYW1ld29ya3MiIGhyZWY9ImphdmEiPgorCisgICAgPHA+U3RydXRzIGlzIHdyaXR0ZW4gaW4gdGhlIHBvcHVsYXIgYW5kIHZlcnNhdGlsZQorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vZG9jcy9ib29rcy9qbHMvZmlyc3RfZWRpdGlvbi9odG1sL2luZGV4Lmh0bWwiPkphdmEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2U8L2E+LgorICAgIEphdmEgaXMgYW4gb2JqZWN0LW9yaWVudGF0ZWQgbGFuZ3VhZ2UsIGFuZCBTdHJ1dHMgbWFrZXMgZ29vZCB1c2Ugb2YgbWFueQorICAgIG9iamVjdC1vcmllbnRhdGVkIHRlY2huaXF1ZXMuICBJbiBhZGRpdGlvbiwgSmF2YSBuYXRpdmVseSBzdXBwb3J0cyB0aGUKKyAgICBjb25jZXB0IG9mIDxlbT50aHJlYWRzPC9lbT4sIHdoaWNoIGFsbG93cyBtb3JlIHRoYW4gb25lIHRhc2sgdG8gYmUKKyAgICBwZXJmb3JtZWQgYXQgdGhlIHNhbWUgdGltZS4gIEEgZ29vZCB1bmRlcnN0YW5kaW5nIG9mIEphdmEsIGFuZCBlc3BlY2lhbGx5CisgICAgb2JqZWN0LW9yaWVudGF0ZWQgcHJvZ3JhbW1pbmcgKE9PUCkgYW5kIHRocmVhZGluZywgd2lsbCBoZWxwCisgICAgeW91IGdldCB0aGUgbW9zdCBvdXQgb2YgU3RydXRzIGFuZCB0aGlzIFVzZXIgR3VpZGUuIDwvcD4KKworICAgIDxwPkZvciBtb3JlIGFib3V0IEphdmEgYW5kIHRocmVhZHMsIHNlZSA8L3A+CisKKyAgICA8dWw+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vZG9jcy9ib29rcy90dXRvcmlhbC9qYXZhL2luZGV4Lmh0bWwiPjxzdHJvbmc+TGVhcm5pbmcgdGhlIEphdmEgTGFuZ3VhZ2U8L3N0cm9uZz48L2E+IGluIHRoZSBKYXZhIFR1dG9yaWFsPC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9kb2NzL2Jvb2tzL3R1dG9yaWFsL2Vzc2VudGlhbC90aHJlYWRzL2luZGV4Lmh0bWwiPgorICAgICAgICA8c3Ryb25nPlRocmVhZHM6IERvaW5nIFR3byBvciBNb3JlIFRhc2tzIEF0IE9uY2U8L3N0cm9uZz48L2E+IGluIHRoZSBKYXZhIExhbmd1YWdlCisgICAgICAgIFR1dG9yaWFsPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+RXZlbiBpZiB5b3UgaGF2ZSB3b3JrZWQgd2l0aCBKYXZhIGFuZCBPT1AgYmVmb3JlLCBpdCBjYW4gYWxzbyBoZWxwIHRvIGJlIGF3YXJlIG9mIHRoZQorICAgIHByb2dyYW1taW5nIGNoYWxsZW5nZXMgc3BlY2lmaWMgdG8gY3JlYXRpbmcgYW5kIHVzaW5nIGFwcGxpY2F0aW9uIGZyYW1ld29ya3MuIEZvciBtb3JlIGFib3V0IGFwcGxpY2F0aW9uCisgICAgZnJhbWV3b3Jrcywgc2VlIHRoZSBjbGFzc2ljIHdoaXRlIHBhcGVyczwvcD4KKworICAgIDx1bD4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5sYXB1dGFuLm9yZy9kcmMvZHJjLmh0bWwiPjxzdHJvbmc+RGVzaWduaW5nIFJldXNhYmxlIENsYXNzZXM8L3N0cm9uZz48L2E+IGJ5IFJhbHBoIEUuIEpvaG5zb24gJmFtcDsgQnJpYW4gRm9vdGU8L2xpPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vd3d3LmNzLnd1c3RsLmVkdS9+c2NobWlkdC9DQUNNLWZyYW1ld29ya3MuaHRtbCI+PHN0cm9uZz5PYmplY3QtT3JpZW50ZWQgQXBwbGljYXRpb24gRnJhbWV3b3Jrczwvc3Ryb25nPjwvYT4KKyAgICBieSBNb2hhbWVkIEZheWFkIGFuZCBEb3VnbGFzIEMuIFNjaG1pZHQ8L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGVzZSBwYXBlcnMgY2FuIGJlIGVzcGVjaWFsbHkgaGVscGZ1bCBpZiB5b3UgYXJlCisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy53YWZlcnByb2plY3Qub3JnL2luZGV4Lmh0bWwiPmZhY3QtZmluZGluZyBvciByZXZpZXdpbmc8L2E+CisgICAgc2VydmVyLXNpZGUKKyAgICA8YSBocmVmPSJodHRwOi8vZGlyZWN0b3J5Lmdvb2dsZS5jb20vVG9wL0NvbXB1dGVycy9Qcm9ncmFtbWluZy9MYW5ndWFnZXMvSmF2YS9TZXJ2ZXItU2lkZS9MaWJyYXJpZXNfYW5kX0ZyYW1ld29ya3MvIj5mcmFtZXdvcmtzPC9hPi4KKyAgICA8L3A+CisKKyAgICA8L3NlY3Rpb24+CisKKyAgICA8c2VjdGlvbiBuYW1lPSIwLjUgSmF2YUJlYW5zIiBocmVmPSJqYXZhYmVhbnMiPgorCisgICAgPHA+TGlrZSBtYW55IEphdmEgYXBwbGljYXRpb25zLCBtb3N0IG9mIHRoZSBTdHJ1dHMgb2JqZWN0cyBhcmUgZGVzaWduZWQgYXMKKyAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2phdmFiZWFucy8iPkphdmFCZWFuczwvYT4uIEZvbGxvd2luZyB0aGUgSmF2YUJlYW4gZGVzaWduIHBhdHRlcm5zIG1ha2VzCisgICAgdGhlIFN0cnV0cyBjbGFzc2VzIGVhc2llciB0byB1c2UgLS0gYm90aCBieSBKYXZhIGRldmVsb3BlcnMgYW5kIGJ5IEphdmEgZGV2ZWxvcG1lbnQgdG9vbHMuIDwvcD4KKworICAgIDxwPkFsdGhvdWdoIEphdmFCZWFucyB3ZXJlIGZpcnN0IGNyZWF0ZWQgZm9yIHZpc3VhbCBlbGVtZW50cywgdGhlc2Ugb2JqZWN0IGRlc2lnbiBwYXR0ZXJucyBoYXZlIGJlZW4gZm91bmQgdG8KKyAgICBiZSB1c2VmdWwgYXMgdGhlIGJhc2lzIGZvciBhbnkgcmV1c2FibGUgY29tcG9uZW50LCBsaWtlIHRob3NlIHVzZWQgYnkgdGhlIFN0cnV0cyBmcmFtZXdvcmsuPC9wPgorCisgICAgPHA+Rm9yIG1vcmUgYWJvdXQgSmF2YUJlYW5zLCBzZWU6PC9wPgorCisgICAgPHVsPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2phdmFiZWFucy9kb2NzLyI+PHN0cm9uZz5UaGUKKyAgICAgICAgSmF2YUJlYW5zIENvbXBvbmVudCBBcmNoaXRlY3R1cmUgRG9jdW1lbnRhdGlvbjwvc3Ryb25nPjwvYT4gcGFnZSBhdAorICAgICAgICA8Y29kZT5qYXZhLnN1bi5jb208L2NvZGU+LCBpbmNsdWRpbmcgYSBsaW5rIHRvIGRvd25sb2FkIHRoZQorICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2phdmFiZWFucy9kb2NzL3NwZWMuaHRtbCI+CisgICAgICAgIEphdmFCZWFucyAxLjAxIFNwZWNpZmljYXRpb248L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9kb2NzL2Jvb2tzL3R1dG9yaWFsL2phdmFiZWFucy9pbmRleC5odG1sIj4KKyAgICAgICAgPHN0cm9uZz5UaGUgSmF2YUJlYW4gVHJhaWw8L3N0cm9uZz48L2E+IGluIHRoZSBKYXZhIFR1dG9yaWFsPC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS93ZWJzZXJ2aWNlcy9kb2NzLzEuMC90dXRvcmlhbC9kb2MvSlNQQmVhbnMuaHRtbCI+CisgICAgICAgIDxzdHJvbmc+SmF2YUJlYW5zIENvbXBvbmVudHMgaW4gSlNQIFBhZ2VzPC9zdHJvbmc+PC9hPiBpbiB0aGUgSmF2YSBXZWIgU2VydmljZXMgVHV0b3JpYWwKKyAgICAgICAgPC9saT4KKyAgICA8L3VsPgorCisgICAgPC9zZWN0aW9uPgorCisgICAgPHNlY3Rpb24gbmFtZT0iMC41LjEgUmVmbGVjdGlvbiBhbmQgSW50cm9zcGVjdGlvbiIgaHJlZj0icmVmbGVjdGlvbiI+CisKKyAgICA8cD4KKyAgICBSZWZsZWN0aW9uIGlzIHRoZSBwcm9jZXNzIG9mIGRldGVybWluaW5nIHdoaWNoIG1lbWJlciBmaWVsZHMgYW5kIG1ldGhvZHMgYXJlIGF2YWlsYWJsZSBvbiBhbiBvYmplY3QuCisgICAgSW50cm9zcGVjdGlvbiBpcyBhIHNwZWNpYWxpemVkIGZvcm0gb2YgcmVmbGVjdGlvbiB1c2VkICBieSB0aGUgSmF2YUJlYW4gQVBJLgorICAgIFVzaW5nIEludHJvc3BlY3Rpb24sIHdlIGNhbiBkZXRlcm1pbmUgd2hpY2ggbWV0aG9kcyBvZiBhIEphdmFCZWFuIGFyZSBpbnRlbmRlZCB0byBiZSBhY2Nlc3NlZCBieSBvdGhlciBvYmplY3RzLgorICAgIChUaGUgZ2V0dGVycyBhbmQgdGhlICBzZXR0ZXJzLCBmb3IgZXhhbXBsZS4pCisgICAgPC9wPgorCisgICAgPHA+CisgICAgVGhlIFN0cnV0cyBmcmFtZXdvcmsgdXNlcyBJbnRyb3NwZWN0aW9uIHRvIGNvbnZlcnQgSFRUUCBwYXJhbWV0ZXJzIGludG8gSmF2YUJlYW4gcHJvcGVydGllcyBhbmQgdG8gcG9wdWxhdGUgSFRNTCBmaWVsZHMgZnJvbSBKYXZhQmVhbiBwcm9wZXJ0aWVzLgorICAgIFRoaXMgdGVjaG5pcXVlIG1ha2VzIGl0IGVhc3kgdG8gInJvdW5kdHJpcCIgcHJvcGVydGllcyBiZXR3ZWVuIEhUTUwgZm9ybXMgYW5kIEphdmFCZWFucy4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBGb3IgbW9yZSBhYm91dCBSZWZsZWN0aW9uIGFuZCBJbnRyb3NwZWN0aW9uLCBzZWUKKyAgICA8L3A+CisKKyAgICA8dWw+CisgICAgPGxpPgorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vZG9jcy9ib29rcy90dXRvcmlhbC9yZWZsZWN0LyI+VGhlIFJlZmxlY3Rpb24gVHJhaWw8L2E+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9qYXZhYmVhbnMvZG9jcy9zcGVjLmh0bWwiPkNoYXB0ZXIgOCBvZiB0aGUgSmF2YUJlYW5zIEFQSSBTcGVjaWZpY2F0aW9uPC9hPgorICAgIDwvbGk+CisgICAgPC91bD4KKworICAgIDwvc2VjdGlvbj4KKworICAgIDxzZWN0aW9uIG5hbWU9IjAuNS4yIE1hcHMiIGhyZWY9Ik1hcHMiPgorCisgICAgPHA+CisgICAgSmF2YUJlYW5zIHN0b3JlIGRhdGEgYXMgcHJvcGVydGllcyBhbmQgbWF5IGFjdCBvbiB0aGF0IGRhdGEgdGhyb3VnaCBvdGhlciBtZXRob2RzLgorICAgIEphdmFCZWFucyBhcmUgZmxleGlibGUgYW5kIHBvd2VyZnVsIG9iamVjdHMgYnV0IGFyZSBub3QgdGhlIG9ubHkgb2JqZWN0IHRoYXQgcHJvZ3JhbW1lcnMgdXNlIHRvIHN0b3JlIGRhdGEuCisgICAgQW5vdGhlciBwb3B1bGFyIG9iamVjdCBpcyB0aGUgTWFwIFs8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPl0uCisgICAgQSBNYXAgaXMgYSBzaW1wbGUgY29sbGVjdGlvbiBvZiBuYW1lIGFuZCB2YWx1ZSBwYWlycy4KKyAgICBNYXBzIGFyZSBvZnRlbiB1c2VkICJiZWhpbmQgdGhlIHNjZW5lcyIgYXMgYSBmbGV4aWJsZSB3YXkgdG8gc3RvcmUgZHluYW1pYyBkYXRhLgorICAgIDwvcD4KKworICAgIDwvc2VjdGlvbj4KKworICAgIDxzZWN0aW9uIG5hbWU9IjAuNS4zIER5bmFCZWFucyIgaHJlZj0iZHluYWJlYW5zIj4KKworICAgIDxwPgorICAgIER5bmFCZWFucyBjb21iaW5lIHRoZSBleHRlbnNpYmlsaXR5IG9mIEphdmFCZWFucyB3aXRoIHRoZSBmbGV4aWJpbGl0eSBvZiBhIE1hcC4KKyAgICBEZWZpbmluZyBldmVuIHRoZSBzaW1wbGVzdCBKYXZhQmVhbiByZXF1aXJlcyBkZWZpbmluZyBhIG5ldyBjbGFzcyBhbmQgY29kaW5nIGEgZmllbGQgYW5kIHR3byBtZXRob2RzIGZvciBlYWNoIHByb3BlcnR5LgorICAgIFRoZSBwcm9wZXJ0aWVzIG9mIGEgRHluYUJlYW4gY2FuIGJlIGNvbmZpZ3VyZWQgdmlhIGFuIFhNTCBkZXNjcmlwdG9yLgorICAgIFRoZSB2aXJ0dWFsIHByb3BlcnRpZXMgb2YgYSBEeW5hQmVhbiBjYW4ndCBiZSBjYWxsZWQgYnkgc3RhbmRhcmQgSmF2YSBtZXRob2RzLAorICAgIGJ1dCB3b3JrIHdlbGwgd2l0aCBjb21wb25lbnRzIHRoYXQgcmVseSBvbiByZWZsZWN0aW9uIGFuZCBpbnRyb3NwZWN0aW9uLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIEluIGEgU3RydXRzIGFwcGxpY2F0aW9uLCB5b3UgY2FuIHVzZSBEeW5hQmVhbnMgdG8gZGVzY3JpYmUgeW91ciBIVE1MIGZvcm1zLgorICAgIFRoaXMgc3RyYXRlZ3kgY2FuIGF2b2lkIGNyZWF0aW5nIGEgZm9ybWFsIEphdmFCZWFuIHN1YmNsYXNzIHRvIHN0b3JlIGEgZmV3IHNpbXBsZSBwcm9wZXJ0aWVzLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIEZvciBtb3JlIGFib3V0IER5bmFCZWFucywgc2VlCisgICAgPC9wPgorCisgICAgPHVsPgorICAgIDxsaT4KKyAgICBUaGUgQ29tbW9ucyBCZWFuVXRpbHMKKyAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvYmVhbnV0aWxzL2FwaS9vcmcvYXBhY2hlL2NvbW1vbnMvYmVhbnV0aWxzL3BhY2thZ2Utc3VtbWFyeS5odG1sI3BhY2thZ2VfZGVzY3JpcHRpb24iPgorICAgIFBhY2thZ2UgRGVzY3JpcHRpb248L2E+IGFuZCA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvYmVhbnV0aWxzL2FwaS9pbmRleC5odG1sIj5KYXZhZG9jczwvYT4uCisgICAgPC9saT4KKyAgICA8L3VsPgorCisgICAgPC9zZWN0aW9uPgorCisgICAgPHNlY3Rpb24gbmFtZT0iMC42IFByb3BlcnRpZXMgRmlsZXMgYW5kIFJlc291cmNlQnVuZGxlcyIgaHJlZj0icmVzb3VyY2VzIj4KKworICAgIDxwPkphdmEgYXBwbGljYXRpb25zLCBpbmNsdWRpbmcgd2ViIGFwcGxpY2F0aW9ucywgYXJlIG9mdGVuIGNvbmZpZ3VyZWQgdXNpbmcKKyAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS40LjEvZG9jcy9hcGkvamF2YS91dGlsL1Byb3BlcnRpZXMuaHRtbCI+UHJvcGVydGllczwvYT4KKyAgICBmaWxlcy4gUHJvcGVydGllcyBmaWxlcyBhcmUgdGhlIGJhc2lzIGZvciB0aGUKKyAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS40LjEvZG9jcy9hcGkvamF2YS91dGlsL1Jlc291cmNlQnVuZGxlLmh0bWwiPlJlc291cmNlQnVuZGxlczwvYT4gdGhhdCBTdHJ1dHMgdXNlcyB0byBwcm92aWRlIG1lc3NhZ2UgcmVzb3VyY2VzCisgICAgdG8gYW4gYXBwbGljYXRpb24uIDwvcD4KKworICAgIDxwPkZvciBtb3JlIGFib3V0IFByb3BlcnRpZXMgZmlsZXMsIHNlZTogPC9wPgorCisgICAgPHVsPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2RvY3MvYm9va3MvdHV0b3JpYWwvZXNzZW50aWFsL2F0dHJpYnV0ZXMvcHJvcGVydGllcy5odG1sIj4KKyAgICA8c3Ryb25nPlVzaW5nIFByb3BlcnRpZXMgdG8gTWFuYWdlIFByb2dyYW0gQXR0cmlidXRlczwvc3Ryb25nPjwvYT4gaW4gVGhlIEphdmEgVHV0b3JpYWw8L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5KYXZhIFJlc291cmNlQnVuZGxlcyB1c2Ugb25lIG9yIG1vcmUgUHJvcGVydGllcyBmaWxlcyB0byBwcm92aWRlIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzCisgICAgdG8gdXNlcnMgYmFzZWQgdGhlaXIKKyAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS40LjEvZG9jcy9hcGkvamF2YS91dGlsL0xvY2FsZS5odG1sIj5Mb2NhbGU8L2E+LgorICAgIFN1cHBvcnQgZm9yIGxvY2FsaXppbmcgYW4gYXBwbGljYXRpb24gd2FzIGJ1aWx0IGludG8gU3RydXRzIGZyb20gdGhlIGdyb3VuZC11cC48L3A+CisKKyAgICA8cD5Gb3IgbW9yZSBhYm91dCBsb2NhbGl6YXRpb24gYW5kIFJlc291cmNlQnVuZGxlcywgc2VlIDwvcD4KKworICAgIDx1bD4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9kb2NzL2Jvb2tzL3R1dG9yaWFsL2kxOG4vcmVzYnVuZGxlL2NvbmNlcHQuaHRtbCI+PHN0cm9uZz5BYm91dCB0aGUgUmVzb3VyY2VCdW5kbGUgQ2xhc3M8L3N0cm9uZz48L2E+CisgICAgaW4gdGhlIEphdmEgVHV0b3JpYWw8L2xpPgorICAgIDwvdWw+CisKKyAgICA8L3NlY3Rpb24+CisKKyAgICA8c2VjdGlvbiBuYW1lPSIwLjcgSmF2YSBTZXJ2bGV0cyIgaHJlZj0ic2VydmxldHMiPgorICAgIDxwPgorICAgIFNpbmNlIEphdmEgaXMgYW4gb2JqZWN0LW9yaWVudGF0ZWQgbGFuZ3VhZ2UsIHRoZQorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvc2VydmxldC8iPkphdmEgU2VydmxldDwvYT4KKyAgICBwbGF0Zm9ybSBzdHJpdmVzIHRvIGNhc3QgSFRUUCBpbnRvIGFuIG9iamVjdC1vcmllbnRhdGVkIGZvcm0uCisgICAgVGhpcyBzdHJhdGVneSBtYWtlcyBpdCBlYXNpZXIgZm9yIEphdmEgZGV2ZWxvcGVycyB0byBjb25jZW50cmF0ZSBvbiB3aGF0IHRoZXkgbmVlZCB0aGVpciBhcHBsaWNhdGlvbiB0byBkbyAtLQorICAgIHJhdGhlciB0aGFuIHRoZSBtZWNoYW5pY3Mgb2YgSFRUUC4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBIVFRQIHByb3ZpZGVzIGEgc3RhbmRhcmQgbWVjaGFuaXNtIGZvciBleHRlbmRpbmcgc2VydmVycyBjYWxsZWQgdGhlIENvbW1vbiBHYXRld2F5IEludGVyZmFjZSwgb3IgQ0dJLgorICAgIFRoZSBzZXJ2ZXIgY2FuIHBhc3MgYSByZXF1ZXN0IHRvIGEgQ0dJLWF3YXJlIHByb2dyYW0sIGFuZCB0aGUgcHJvZ3JhbSB3aWxsIHBhc3MgYmFjayBhIHJlc3BvbnNlLgorICAgIExpa2V3aXNlLCBhIEphdmEtYXdhcmUgc2VydmVyIGNhbiBwYXNzIGEgcmVxdWVzdCB0byBhIHNlcnZsZXQgY29udGFpbmVyLgorICAgIFRoZSBjb250YWluZXIgY2FuIGZ1bGZpbGwgdGhlIHJlcXVlc3Qgb3IgaXQgY2FuIHBhc3MgdGhlIHJlcXVlc3QgYmFjayB0byB0aGUgSFRUUCBzZXJ2ZXIuCisgICAgVGhlIGNvbnRhaW5lciBkZWNpZGVzIHdoZXRoZXIgaXQgY2FuIGhhbmRsZSB0aGUgcmVxdWVzdCBieSBjaGVja2luZyBpdHMgbGlzdCBvZiBzZXJ2bGV0cy4KKyAgICBJZiB0aGVyZSBpcyBhIHNlcnZsZXQgcmVnaXN0ZXJlZCBmb3IgdGhlIHJlcXVlc3QsIHRoZSBjb250YWluZXIgcGFzc2VzIHRoZSByZXF1ZXN0IHRvIHRoZSBzZXJ2bGV0LgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFdoZW4gYSByZXF1ZXN0IGNvbWVzIGluLCB0aGUgY29udGFpbmVyIGNoZWNrcyB0byBzZWUgaWYgdGhlcmUgaXMgYSBzZXJ2bGV0IHJlZ2lzdGVyZWQgZm9yIHRoYXQgcmVxdWVzdC4KKyAgICBJZiB0aGVyZSBpcyBhIG1hdGNoLAorICAgIHRoZSByZXF1ZXN0IGlzIGdpdmVuIHRvIHRoZSBzZXJ2bGV0LgorICAgIElmIG5vdCwgdGhlIHJlcXVlc3QgaXMgcmV0dXJuZWQgdG8gdGhlIEhUVFAgc2VydmVyLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIEl0J3MgdGhlIGNvbnRhaW5lcidzIGpvYiB0byBtYW5hZ2VzIHRoZSBzZXJ2bGV0IGxpZmVjeWNsZS4KKyAgICBUaGUgY29udGFpbmVyIGNyZWF0ZXMgdGhlIHNlcnZsZXRzLCBpbnZva2VzIHRoZSBzZXJ2bGV0cywgYW5kIHVsdGltYXRlbHkgZGlzcG9zZXMgdGhlIHNlcnZsZXRzLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIEEgc2VydmxldCBpcyBnZW5lcmFsbHkgYSBzdWJjbGFzcyBvZiA8Y29kZT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQ8L2NvZGU+LgorICAgIEEgc2VydmxldCBtdXN0IGltcGxlbWVudCBmb3VyIG1ldGhvZHMsIHdoaWNoIGFyZSBpbnZva2VkIGJ5IHRoZSBjb250YWluZXIgYXMgbmVlZGVkOgorICAgIDwvcD4KKworICAgICAgPHVsPgorICAgICAgPGxpPjxzdHJvbmc+cHVibGljIHZvaWQgaW5pdChTZXJ2bGV0Q29uZmlnIGNvbmZpZyk8L3N0cm9uZz4gLSBDYWxsZWQgYnkgdGhlCisgICAgICAgICAgc2VydmxldCBjb250YWluZXIgd2hlbiB0aGUgc2VydmxldCBpbnN0YW5jZSBpcyBmaXJzdCBjcmVhdGVkLCBhbmQKKyAgICAgICAgICBiZWZvcmUgYW55IHJlcXVlc3QgaXMgcHJvY2Vzc2VkLjwvbGk+CisgICAgICA8bGk+PHN0cm9uZz5wdWJsaWMgdm9pZCBkb0dldChIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKTwvc3Ryb25nPiAtIENhbGxlZCB0byBwcm9jZXNzIGEKKyAgICAgICAgICBzcGVjaWZpYyByZXF1ZXN0IHJlY2VpdmVkIHVzaW5nIHRoZSBIVFRQIDxjb2RlPkdFVDwvY29kZT4gcHJvdG9jb2wsCisgICAgICAgICAgd2hpY2ggZ2VuZXJhdGVzIGEgY29ycmVzcG9uZGluZyBkeW5hbWljIHJlc3BvbnNlLjwvbGk+CisgICAgICA8bGk+PHN0cm9uZz5wdWJsaWMgdm9pZCBkb1Bvc3QoSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSk8L3N0cm9uZz4gLSBDYWxsZWQgdG8gcHJvY2VzcyBhCisgICAgICAgICAgc3BlY2lmaWMgcmVxdWVzdCByZWNlaXZlZCB1c2luZyB0aGUgSFRUUCA8Y29kZT5QT1NUPC9jb2RlPiBwcm90b2NvbCwKKyAgICAgICAgICB3aGljaCBnZW5lcmF0ZXMgYSBjb3JyZXNwb25kaW5nIGR5bmFtaWMgcmVzcG9uc2UuPC9saT4KKyAgICAgIDxsaT48c3Ryb25nPnB1YmxpYyB2b2lkIGRlc3Ryb3koKTwvc3Ryb25nPiAtIENhbGxlZCBieSB0aGUgc2VydmxldAorICAgICAgICAgIGNvbnRhaW5lciB3aGVuIGl0IHRha2VzIHRoaXMgc2VydmxldCBpbnN0YW5jZSBvdXQgb2Ygc2VydmljZSwKKyAgICAgICAgICBzdWNoIGFzIHdoZW4gYSB3ZWIgYXBwbGljYXRpb24gaXMgYmVpbmcgdW5kZXBsb3llZCBvciB3aGVuIHRoZQorICAgICAgICAgIGVudGlyZSBjb250YWluZXIgaXMgYmVpbmcgc2h1dCBkb3duLjwvbGk+CisgICAgICA8L3VsPgorCisgICAgPHA+CisgICAgU3RydXRzIHByb3ZpZGVzIGEgcmVhZHktdG8tdXNlIHNlcnZsZXQgZm9yIHlvdXIgYXBwbGljYXRpb24gWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0PC9jb2RlPl0uCisgICAgQXMgYSBTdHJ1dHMgZGV2ZWxvcGVyLCB5b3UgY2FuIHRoZW4ganVzdCB3cml0ZSBvYmplY3RzIHRoYXQgdGhlIFN0cnV0cyBBY3Rpb25TZXJ2bGV0IGNhbGxzIHdoZW4gbmVlZGVkLgorICAgIEJ1dCBpdCBpcyBzdGlsbCBoZWxwZnVsIHRvIHVuZGVyc3RhbmQgdGhlIGJhc2ljcyBvZiB3aGF0IHNlcnZsZXRzIGFyZSwKKyAgICBhbmQgdGhlIHJvbGUgdGhleSBwbGF5IGluIGEgSmF2YSB3ZWIgYXBwbGljYXRpb24uCisgICAgPC9wPgorCisgICAgPHA+CisgICAgRm9yIG1vcmUgYWJvdXQgSmF2YSBTZXJ2bGV0cywgc2VlOgorICAgIDwvcD4KKworICAgIDx1bD4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9zZXJ2bGV0LyI+PHN0cm9uZz5UaGUKKyAgICAgICAgSmF2YSBTZXJ2bGV0IFRlY2hub2xvZ3k8L3N0cm9uZz48L2E+IHBhZ2UgYXQKKyAgICAgICAgPGNvZGU+amF2YS5zdW4uY29tPC9jb2RlPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvc2VydmxldC9kb3dubG9hZC5odG1sIj48c3Ryb25nPlRoZQorICAgICAgICBTZXJ2bGV0IDIuMiBhbmQgMi4zIFNwZWNpZmljYXRpb25zPC9zdHJvbmc+PC9hPiBkb3dubG9hZCBwYWdlIGF0CisgICAgICAgIDxjb2RlPmphdmEuc3VuLmNvbTwvY29kZT48L2xpPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3dlYnNlcnZpY2VzL2RvY3MvMS4wL3R1dG9yaWFsL2RvYy9TZXJ2bGV0cy5odG1sIj4KKyAgICAgICAgPHN0cm9uZz5KYXZhIFNlcnZsZXQgVGVjaG5vbG9neTwvc3Ryb25nPjwvYT4gaW4gdGhlIEphdmEgV2ViIFNlcnZpY2VzIFR1dG9yaWFsLjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vd2Vic2VydmljZXMvZG9jcy8xLjAvdHV0b3JpYWwvZG9jL1dlYkFwcC5odG1sIj4KKyAgICAgICAgPHN0cm9uZz5XZWIgQXBwbGljYXRpb25zPC9zdHJvbmc+PC9hPiBpbiB0aGUgSmF2YSBXZWIgU2VydmljZXMgVHV0b3JpYWwuPC9saT4KKyAgICA8L3VsPgorCisgICAgPC9zZWN0aW9uPgorCisgICAgPHNlY3Rpb24gbmFtZT0iMC43LjEgU2VydmxldHMgYW5kIHRocmVhZHMiIGhyZWY9InRocmVhZHMiPgorCisgICAgPHA+CisgICAgVG8gYm9vc3QgcGVyZm9ybWFuY2UsIHRoZSBjb250YWluZXIgY2FuIG11bHRpLXRocmVhZCBzZXJ2bGV0cy4KKyAgICBPbmx5IG9uZSBpbnN0YW5jZSBvZiBhIHBhcnRpY3VsYXIgc2VydmxldCBpcyBjcmVhdGVkLAorICAgIGFuZCBlYWNoIHJlcXVlc3QgZm9yIHRoYXQgc2VydmxldCBwYXNzZXMgdGhyb3VnaCB0aGUgc2FtZSBvYmplY3QuCisgICAgVGhpcyBzdHJhdGVneSBoZWxwcyB0aGUgY29udGFpbmVyIG1ha2UgdGhlIGJlc3QgdXNlIG9mIGF2YWlsYWJsZSByZXNvdXJjZXMuCisgICAgVGhlIHRyYWRlb2ZmIGlzIHRoYXQgdGhlIHNlcnZsZXQncyA8Y29kZT5kb0dldCgpPC9jb2RlPiBhbmQgPGNvZGU+ZG9Qb3N0KCk8L2NvZGU+IG1ldGhvZHMgbXVzdCBiZSBwcm9ncmFtbWVkIGluIGEgPGVtPnRocmVhZC1zYWZlPC9lbT4gbWFubmVyLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIEZvciBtb3JlIGFib3V0IHNlcnZsZXRzIGFuZCB0aHJlYWQtc2FmZXR5LCBzZWU6CisgICAgPC9wPgorCisgICAgPHVsPgorICAgIDxsaT4KKyAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3dlYnNlcnZpY2VzL2RvY3MvMS4wL3R1dG9yaWFsL2RvYy9TZXJ2bGV0czUuaHRtbCM2NDM4NiI+Q29udHJvbGxpbmcgQ29uY3VycmVudCBBY2Nlc3MgdG8gU2hhcmVkIFJlc291cmNlczwvYT4gaW4gSmF2YSBXZWIgU2VydmljZXMgVHV0b3JpYWwuCisgICAgPC9saT4KKyAgICA8L3VsPgorCisgICAgPC9zZWN0aW9uPgorCisgICAgICA8c2VjdGlvbiBuYW1lPSIwLjcuMiBTZXJ2bGV0IENvbnRleHQiIGhyZWY9ImNvbnRleHQiPgorCisgICAgICA8cD5UaGUgPGVtPlNlcnZsZXRDb250ZXh0PC9lbT4gaW50ZXJmYWNlIFs8Y29kZT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0PC9jb2RlPl0gZGVmaW5lcyBhIHNlcnZsZXQncyB2aWV3IG9mCisgICAgICB0aGUgd2ViIGFwcGxpY2F0aW9uIHdpdGhpbiB3aGljaCB0aGUgc2VydmxldCBpcyBydW5uaW5nLiAgSXQgaXMKKyAgICAgIGFjY2Vzc2libGUgaW4gYSBzZXJ2bGV0IHZpYSB0aGUgPGNvZGU+Z2V0U2VydmxldENvbmZpZygpPC9jb2RlPiBtZXRob2QsCisgICAgICBhbmQgaW4gYSBKU1AgcGFnZSBhcyB0aGUgPGNvZGU+YXBwbGljYXRpb248L2NvZGU+IGltcGxpY2l0IHZhcmlhYmxlLgorICAgICAgU2VydmxldCBjb250ZXh0cyBwcm92aWRlIHNldmVyYWwgQVBJcyB0aGF0IGFyZSB2ZXJ5IHVzZWZ1bCBpbiBidWlsZGluZworICAgICAgU3RydXRzIGJhc2VkIHdlYiBhcHBsaWNhdGlvbnM6PC9wPgorICAgICAgPHVsPgorICAgICAgPGxpPjxlbT5BY2Nlc3MgVG8gV2ViIEFwcGxpY2F0aW9uIFJlc291cmNlczwvZW0+IC0gQSBzZXJ2bGV0IGNhbgorICAgICAgICAgIGFjY2VzcyBzdGF0aWMgcmVzb3VyY2UgZmlsZXMgd2l0aGluIHRoZSB3ZWIgYXBwbGljYXRpb24gdXNpbmcgdGhlCisgICAgICAgICAgPGNvZGU+Z2V0UmVzb3VyY2UoKTwvY29kZT4gYW5kIDxjb2RlPmdldFJlc291cmNlQXNTdHJlYW0oKTwvY29kZT4KKyAgICAgICAgICBtZXRob2RzLjwvbGk+CisgICAgICA8bGk+PGVtPlNlcnZsZXQgQ29udGV4dCBBdHRyaWJ1dGVzPC9lbT4gLSBUaGUgY29udGV4dCBtYWtlcyBhdmFpbGFibGUKKyAgICAgICAgICBhIHN0b3JhZ2UgcGxhY2UgZm9yIEphdmEgb2JqZWN0cywgaWRlbnRpZmllZCBieSBzdHJpbmctdmFsdWVkIGtleXMuCisgICAgICAgICAgVGhlc2UgYXR0cmlidXRlcyBhcmUgZ2xvYmFsIHRvIHRoZSBlbnRpcmUgd2ViIGFwcGxpY2F0aW9uLCBhbmQgbWF5CisgICAgICAgICAgYmUgYWNjZXNzZWQgYnkgYSBzZXJ2bGV0IHVzaW5nIHRoZSA8Y29kZT5nZXRBdHRyaWJ1dGUoKTwvY29kZT4sCisgICAgICAgICAgPGNvZGU+Z2V0QXR0cmlidXRlTmFtZXMoKTwvY29kZT4sIDxjb2RlPnJlbW92ZUF0dHJpYnV0ZSgpPC9jb2RlPiwgYW5kCisgICAgICAgICAgPGNvZGU+c2V0QXR0cmlidXRlKCk8L2NvZGU+IG1ldGhvZHMuICBGcm9tIGEgSlNQIHBhZ2UsIHNlcnZsZXQKKyAgICAgICAgICBjb250ZXh0IGF0dHJpYnV0ZXMgYXJlIGFsc28ga25vd24gYXMgImFwcGxpY2F0aW9uIHNjb3BlIGJlYW5zIi4KKyAgICAgICAgICA8L2xpPgorICAgICAgPC91bD4KKworICAgIDxwPgorICAgIEZvciBtb3JlIGFib3V0IHRoZSBzZXJ2bGV0IGNvbnRleHQsIHNlZToKKyAgICA8L3A+CisKKyAgICA8dWw+CisgICAgPGxpPgorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vd2Vic2VydmljZXMvZG9jcy8xLjAvdHV0b3JpYWwvZG9jL1NlcnZsZXRzMTAuaHRtbCM2NDcyNCI+QWNjZXNzaW5nIHRoZSBXZWIgQ29udGV4dDwvYT4gaW4gSmF2YSBXZWIgU2VydmljZXMgVHV0b3JpYWwuCisgICAgPC9saT4KKyAgICA8L3VsPgorCisgICAgICA8L3NlY3Rpb24+CisKKyAgICAgIDxzZWN0aW9uIG5hbWU9IjAuNy4zIFNlcnZsZXQgUmVxdWVzdCIgaHJlZj0icmVxdWVzdCI+CisKKyAgICAgIDxwPkVhY2ggcmVxdWVzdCBwcm9jZXNzZWQgYnkgYSBzZXJ2bGV0IGlzIHJlcHJlc2VudGVkIGJ5IGEgSmF2YQorICAgICAgaW50ZXJmYWNlLCBub3JtYWxseSBhIDxjb2RlPkh0dHBTZXJ2bGV0UmVxdWVzdDwvY29kZT4KKyAgICAgIFs8Y29kZT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9jb2RlPl0uCisgICAgICBUaGUgcmVxdWVzdCBpbnRlcmZhY2UgcHJvdmlkZXMgYW4gb2JqZWN0LW9yaWVudGVkIG1lY2hhbmlzbSB0byBhY2Nlc3MKKyAgICAgIGFsbCBvZiB0aGUgaW5mb3JtYXRpb24gdGhhdCB3YXMgaW5jbHVkZWQgaW4gdGhlIHVuZGVybHlpbmcgSFRUUCByZXF1ZXN0LAorICAgICAgaW5jbHVkaW5nOjwvcD4KKyAgICAgIDx1bD4KKyAgICAgIDxsaT48ZW0+Q29va2llczwvZW0+IC0gVGhlIHNldCBvZiBjb29raWVzIGluY2x1ZGVkIHdpdGggdGhpcyByZXF1ZXN0CisgICAgICAgICAgYXJlIGF2YWlsYWJsZSB2aWEgdGhlIDxjb2RlPmdldENvb2tpZXMoKTwvY29kZT4gbWV0aG9kLjwvbGk+CisgICAgICA8bGk+PGVtPkhlYWRlcnM8L2VtPiAtIEhUVFAgaGVhZGVycyB0aGF0IHdlcmUgaW5jbHVkZWQgd2l0aAorICAgICAgICAgIHRoZSByZXF1ZXN0IGFyZSBhY2Nlc3NpYmxlIGJ5IG5hbWUuIFlvdSBjYW4gZW51bWVyYXRlIHRoZSBuYW1lcworICAgICAgICAgIG9mIGFsbCBpbmNsdWRlZCBoZWFkZXJzLjwvbGk+CisgICAgICA8bGk+PGVtPlBhcmFtZXRlcnM8L2VtPiAtIFJlcXVlc3QgcGFyYW1ldGVycywgaW5jbHVkaW5nIHRob3NlIGZyb20KKyAgICAgICAgICB0aGUgcXVlcnkgc3RyaW5nIHBvcnRpb24gb2YgdGhlIFVSTCBhbmQgZnJvbSB0aGUgZW1iZWRkZWQgY29udGVudAorICAgICAgICAgIG9mIHRoZSByZXF1ZXN0IChQT1NUIG9ubHkpIGFyZSBhdmFpbGFibGUgYnkgbmFtZS48L2xpPgorICAgICAgPGxpPjxlbT5SZXF1ZXN0IENoYXJhY3RlcmlzdGljczwvZW0+IC0gTWFueSBvdGhlciBjaGFyYWN0ZXJpc3RpY3MKKyAgICAgICAgICBvZiB0aGUgaW5jb21pbmcgSFRUUCByZXF1ZXN0LCBzdWNoIGFzIHRoZSBtZXRob2QgdXNlZCAobm9ybWFsbHkKKyAgICAgICAgICBHRVQgb3IgUE9TVCkgdGhlIHByb3RvY29sIHNjaGVtZSB1c2VkICgiaHR0cCIgb3IgImh0dHBzIiksIGFuZAorICAgICAgICAgIHNpbWlsYXIgdmFsdWVzLjwvbGk+CisgICAgICA8bGk+PGVtPlJlcXVlc3QgVVJJIEluZm9ybWF0aW9uPC9lbT4gLSBUaGUgb3JpZ2luYWwgcmVxdWVzdCBVUkkKKyAgICAgICAgICBiZWluZyBwcm9jZXNzZWQgaXMgYXZhaWxhYmxlIHZpYSA8Y29kZT5nZXRSZXF1ZXN0VVJJKCk8L2NvZGU+LgorICAgICAgICAgIEluIGFkZGl0aW9uLCB0aGUgY29uc3RpdHVlbnQgcGFydHMgaW50byB3aGljaCB0aGUgc2VydmxldCBjb250YWluZXIKKyAgICAgICAgICBwYXJzZXMgdGhlIHJlcXVlc3QgVVJJIChjb250ZXh0UGF0aCwgc2VydmxldFBhdGgsIGFuZCBwYXRoSW5mbykgYXJlCisgICAgICAgICAgYXZhaWxhYmxlIHNlcGFyYXRlbHkuPC9saT4KKyAgICAgIDxsaT48ZW0+VXNlciBJbmZvcm1hdGlvbjwvZW0+IC0gSWYgeW91IGFyZSB1c2luZworICAgICAgICAgIDxhIGhyZWY9IiNzZWN1cml0eSI+Q29udGFpbmVyIE1hbmFnZWQgU2VjdXJpdHk8L2E+LCB5b3UgY2FuIGFzayBmb3IKKyAgICAgICAgICB0aGUgdXNlcm5hbWUgb2YgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlciwgcmV0cmlldmUgYQorICAgICAgICAgIDxjb2RlPlByaW5jaXBhbDwvY29kZT4gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgY3VycmVudCB1c2VyLCBhbmQKKyAgICAgICAgICB3aGV0aGVyIHRoZSBjdXJyZW50IHVzZXIgaXMgYXV0aG9yaXplZCBmb3IgYSBzcGVjaWZpZWQgcm9sZS48L2xpPgorICAgICAgPC91bD4KKworICAgICAgPHA+SW4gYWRkaXRpb24sIHNlcnZsZXQgcmVxdWVzdHMgc3VwcG9ydCA8ZW0+cmVxdWVzdCBhdHRyaWJ1dGVzPC9lbT4KKyAgICAgIChmcm9tIEpTUCwgdGhlc2UgYXJlICJyZXF1ZXN0IHNjb3BlIGJlYW5zIiksIGFuYWxvZ291cyB0byB0aGUgc2VydmxldAorICAgICAgY29udGV4dCBhdHRyaWJ1dGVzIGRlc2NyaWJlZCBhYm92ZS4gUmVxdWVzdCBhdHRyaWJ1dGVzIGFyZSBvZnRlbiB1c2VkCisgICAgICB0byBjb21tdW5pY2F0ZSBzdGF0ZSBpbmZvcm1hdGlvbiBmcm9tIGEgYnVzaW5lc3MgbG9naWMgY2xhc3MgdGhhdAorICAgICAgZ2VuZXJhdGVzIGl0IHRvIGEgdmlldyBjb21wb25lbnQgKHN1Y2ggYXMgYSBKU1AgcGFnZSkgdGhhdCB3aWxsIHVzZQorICAgICAgdGhlIGluZm9ybWF0aW9uIHRvIHByb2R1Y2UgdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UuPC9wPgorCisgICAgICA8cD5UaGUgc2VydmxldCBjb250YWluZXIgZ3VhcmFudGVlcyB0aGF0IGEgcGFydGljdWxhciByZXF1ZXN0IHdpbGwKKyAgICAgIGJlIHByb2Nlc3NlZCBieSBhIHNlcnZsZXQgb24gYSBzaW5nbGUgdGhyZWFkLiBUaGVyZWZvcmUsIHlvdSBkbyBub3QKKyAgICAgIGdlbmVyYWxseSBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoZSB0aHJlYWQgc2FmZXR5IG9mIHlvdXIgYWNjZXNzIHRvCisgICAgICByZXF1ZXN0IHByb3BlcnRpZXMgYW5kIGF0dHJpYnV0ZXMuPC9wPgorCisgICAgPHA+CisgICAgRm9yIG1vcmUgYWJvdXQgdGhlIHNlcnZsZXQgcmVxdWVzdCwgc2VlOgorICAgIDwvcD4KKworICAgIDx1bD4KKyAgICA8bGk+CisgICAgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS93ZWJzZXJ2aWNlcy9kb2NzLzEuMC90dXRvcmlhbC9kb2MvU2VydmxldHM3Lmh0bWwjNjQ0MzMiPkdldHRpbmcgSW5mb3JtYXRpb24gZnJvbSBSZXF1ZXN0czwvYT4gaW4gSmF2YSBXZWIgU2VydmljZXMgVHV0b3JpYWwuCisgICAgPC9saT4KKyAgICA8L3VsPgorCisgICAgICA8L3NlY3Rpb24+CisKKyAgICAgIDxzZWN0aW9uIG5hbWU9IjAuNy40IFNlcnZsZXQgUmVzcG9uc2UiIGhyZWY9InJlc3BvbnNlIj4KKworICAgICAgPHA+VGhlIHByaW1hcnkgcHVycG9zZSBvZiBhIHNlcnZsZXQgaXMgdG8gcHJvY2VzcyBhbiBpbmNvbWluZworICAgICAgPGEgaHJlZj0iI3JlcXVlc3QiPlNlcnZsZXQgUmVxdWVzdDwvYT4gWzxjb2RlPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L2NvZGU+XQorICAgICAgYW5kIGNvbnZlcnQgaXQgaW50byBhCisgICAgICBjb3JyZXNwb25kaW5nIHJlc3BvbnNlLiBUaGlzIGlzIHBlcmZvcm1lZCBieSBjYWxsaW5nIGFwcHJvcHJpYXRlCisgICAgICBtZXRob2RzIG9uIHRoZSBzZXJ2bGV0IHJlc3BvbnNlIFs8Y29kZT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTwvY29kZT5dCisgICAgICBpbnRlcmZhY2UuIEF2YWlsYWJsZSBtZXRob2RzIGxldCB5b3U6PC9wPgorICAgICAgPHVsPgorICAgICAgPGxpPjxlbT5TZXQgSGVhZGVyczwvZW0+IC0gWW91IGNhbiBzZXQgSFRUUCBoZWFkZXJzIHRoYXQgd2lsbCBiZQorICAgICAgICAgIGluY2x1ZGVkIGluIHRoZSByZXNwb25zZS4gIFRoZSBtb3N0IGltcG9ydGFudCBoZWFkZXIgaXMgdGhlCisgICAgICAgICAgPGNvZGU+Q29udGVudC1UeXBlPC9jb2RlPiBoZWFkZXIsIHdoaWNoIHRlbGxzIHlvdXIgY2xpZW50IHdoYXQKKyAgICAgICAgICBraW5kIG9mIGluZm9ybWF0aW9uIGlzIGluY2x1ZGVkIGluIHRoZSBib2R5IG9mIHRoaXMgcmVzcG9uc2UuCisgICAgICAgICAgVGhpcyBpcyB0eXBpY2FsbHkgc2V0IHRvIDxjb2RlPnRleHQvaHRtbDwvY29kZT4gZm9yIGFuIEhUTUwgcGFnZSwKKyAgICAgICAgICBvciA8Y29kZT50ZXh0L3htbDwvY29kZT4gZm9yIGFuIFhNTCBkb2N1bWVudC48L2xpPgorICAgICAgPGxpPjxlbT5TZXQgQ29va2llczwvZW0+IC0gWW91IGNhbiBhZGQgY29va2llcyB0byB0aGUgY3VycmVudAorICAgICAgICAgIHJlc3BvbnNlLjwvbGk+CisgICAgICA8bGk+PGVtPlNlbmQgRXJyb3IgUmVzcG9uc2VzPC9lbT4gLSBZb3UgY2FuIHNlbmQgYW4gSFRUUCBlcnJvciBzdGF0dXMKKyAgICAgICAgICAoaW5zdGVhZCBvZiBhIHVzdWFsIHBhZ2Ugb2YgY29udGVudCkgdXNpbmcKKyAgICAgICAgICA8Y29kZT5zZW5kRXJyb3IoKTwvY29kZT4uPC9saT4KKyAgICAgIDxsaT48ZW0+UmVkaXJlY3QgVG8gQW5vdGhlciBSZXNvdXJjZTwvZW0+IC0gWW91IGNhbiB1c2UgdGhlCisgICAgICAgICAgPGNvZGU+c2VuZFJlZGlyZWN0KCk8L2NvZGU+IG1ldGhvZCB0byByZWRpcmVjdCB0aGUgY2xpZW50IHRvCisgICAgICAgICAgc29tZSBvdGhlciBVUkwgdGhhdCB5b3Ugc3BlY2lmeS48L2xpPgorICAgICAgPC91bD4KKworICAgICAgPHA+QW4gaW1wb3J0YW50IHByaW5jaXBsZSBpbiB1c2luZyB0aGUgc2VydmxldCByZXNwb25zZSBBUElzIGlzIHRoYXQKKyAgICAgIGFueSBtZXRob2RzIHlvdSBjYWxsIHRvIG1hbmlwdWxhdGUgaGVhZGVycyBvciBjb29raWVzCisgICAgICA8c3Ryb25nPk1VU1Q8L3N0cm9uZz4gYmUgcGVyZm9ybWVkIGJlZm9yZSB0aGUgZmlyc3QgYnVmZmVyLWZ1bGwgb2YKKyAgICAgIGNvbnRlbnQgaGFzIGJlZW4gZmx1c2hlZCB0byB0aGUgY2xpZW50LiBUaGUgcmVhc29uIGZvciB0aGlzIHJlc3RyaWN0aW9uCisgICAgICBpcyB0aGF0IHN1Y2ggaW5mb3JtYXRpb24gaXMgdHJhbnNtaXR0ZWQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgSFRUUAorICAgICAgcmVzcG9uc2UsIHNvIHRyeWluZyB0aGluZ3MgbGlrZSBhZGRpbmcgYSBoZWFkZXIgYWZ0ZXIgdGhlIGhlYWRlcnMgaGF2ZQorICAgICAgYWxyZWFkeSBiZWVuIHNlbnQgd2lsbCBub3QgYmUgZWZmZWN0aXZlLjwvcD4KKworICAgICAgPHA+CisgICAgICBXaGVuIHlvdSBhcmUgdXNpbmcgcHJlc2VudGF0aW9uIHBhZ2VzIGluIGEgTW9kZWwgMiBhcHBsaWNhdGlvbiwKKyAgICAgIHlvdSB3aWxsIG5vdCBnZW5lcmFsbHkgdXNlIHRoZSBzZXJ2bGV0IHJlc3BvbnNlIEFQSXMgZGlyZWN0bHkuCisgICAgICBJbiB0aGUgY2FzZSBvZiBKYXZhU2VydmVyUGFnZXMsIHRoZSBKU1AgcGFnZSBjb21waWxlcgorICAgICAgaW4geW91ciBzZXJ2bGV0IGNvbnRhaW5lciB3aWxsIGNvbnZlcnQgeW91ciBwYWdlIGludG8gYSBzZXJ2bGV0LgorICAgICAgVGhlIEpTUCBzZXJ2bGV0IHJlbmRlcnMgdGhlIHJlc3BvbnNlLCBpbnRlcnNwZXJzaW5nIGR5bmFtaWMKKyAgICAgIGluZm9ybWF0aW9uIHdoZXJlIHlvdSBoYXZlIGludGVycG9zZWQgSlNQIGN1c3RvbSB0YWdzLgorICAgICAgPC9wPgorCisgICAgICA8cD4KKyAgICAgIE90aGVyIHByZXNlbnRhdGlvbiBzeXN0ZW1zLCBsaWtlIFZlbG9jaXR5IFRvb2xzIGZvciBTdHJ1dHMsCisgICAgICBtYXkgZGVsZWdhdGUgcmVuZGVyaW5nIHRoZSByZXNwb25zZSB0byBhIHNwZWNpYWxpemVkIHNlcnZsZXQsCisgICAgICBidXQgdGhlIHNhbWUgcGF0dGVybiBob2xkcyB0cnVlLgorICAgICAgWW91IGNyZWF0ZSBhIHRlbXBsYXRlLAorICAgICAgYW5kIHRoZSBkeW5hbWljIHJlc3BvbnNlIGlzIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIHRlbXBsYXRlLgorICAgICAgPC9wPgorCisgICAgPHA+CisgICAgRm9yIG1vcmUgYWJvdXQgdGhlIHNlcnZsZXQgcmVzcG9uc2UsIHNlZToKKyAgICA8L3A+CisKKyAgICA8dWw+CisgICAgPGxpPgorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vd2Vic2VydmljZXMvZG9jcy8xLjAvdHV0b3JpYWwvZG9jL1NlcnZsZXRzNy5odG1sIzY0NTMxIj5Db25zdHJ1Y3RpbmcgUmVzcG9uc2VzPC9hPiBpbiBKYXZhIFdlYiBTZXJ2aWNlcyBUdXRvcmlhbC4KKyAgICA8L2xpPgorICAgIDwvdWw+CisKKyAgICAgIDwvc2VjdGlvbj4KKworICAgICAgPHNlY3Rpb24gbmFtZT0iMC43LjUgRmlsdGVyaW5nIiBocmVmPSJmaWx0ZXIiPgorCisgICAgICA8cD5JZiB5b3UgYXJlIHVzaW5nIGEgc2VydmxldCBjb250YWluZXIgYmFzZWQgb24gdmVyc2lvbgorICAgICAgPHN0cm9uZz4yLjM8L3N0cm9uZz4gb3IgbGF0ZXIgb2YgdGhlIFNlcnZsZXQgU3BlY2lmaWNhdGlvbiAoc3VjaCBhcworICAgICAgVG9tY2F0IDQueCksIHlvdSBjYW4gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIG5ldyBGaWx0ZXIgQVBJcworICAgICAgWzxjb2RlPmphdmF4LnNlcnZsZXQuRmlsdGVyPC9jb2RlPl0gdGhhdAorICAgICAgbGV0IHlvdSBjb21wb3NlIGEgc2V0IG9mIGNvbXBvbmVudHMgdGhhdCB3aWxsIHByb2Nlc3MgYSByZXF1ZXN0IG9yCisgICAgICByZXNwb25zZS4gRmlsdGVycyBhcmUgYWdncmVnYXRlZCBpbnRvIGEgY2hhaW4gaW4gd2hpY2ggZWFjaCBmaWx0ZXIKKyAgICAgIGhhcyBhIGNoYW5jZSB0byBwcm9jZXNzIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSBiZWZvcmUgYW5kIGFmdGVyCisgICAgICBpdCBpcyBwcm9jZXNzZWQgYnkgc3Vic2VxdWVudCBmaWx0ZXJzIChhbmQgdGhlIHNlcnZsZXQgdGhhdCBpcyB1bHRpbWF0ZWx5CisgICAgICBjYWxsZWQpLjwvcD4KKworICAgICAgPHA+CisgICAgICAgICAgVGhlIFN0cnV0cyAxLnggc2VyaWVzICh2ZXJzaW9ucyAxLjAsIDEuMSwgYW5kIHNvIGZvcnRoKSByZXF1aXJlIG9ubHkgdmVyc2lvbiAyLjIgb3IgbGF0ZXIgb2YgdGhlIFNlcnZsZXQKKyAgICAgICAgICBTcGVjaWZpY2F0aW9uIHRvIGJlIGltcGxlbWVudGVkIGJ5IHlvdXIgc2VydmxldCBjb250YWluZXIsIHNvIFN0cnV0cyBkb2VzIG5vdCBpdHNlbGYgdXRpbGl6ZSBGaWx0ZXJzCisgICAgICAgICAgYXQgdGhpcyB0aW1lLgorICAgICAgICAgIFRoZSBuZXh0IGdlbmVyYXRpb24gb2YgU3RydXRzICh0aGUgMi54IHNlcmllcykgd2lsbCBiZSBiYXNlZCBvbiBTZXJ2bGV0IDIuMyBvciBsYXRlci4KKyAgICAgICAgICBJdCBpcyBsaWtlbHkgdGhhdCB0aGUgU3RydXRzIDIueCByZWxlYXNlIHNlcmllcyB3aWxsIHV0aWxpemUgZmlsdGVycy4KKyAgICAgIDwvcD4KKworICAgICAgPHA+CisgICAgICBGb3IgbW9yZSBhYm91dCBmaWx0ZXJzLCBzZWU6CisgICAgICA8L3A+CisKKyAgICA8dWw+CisgICAgPGxpPgorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vd2Vic2VydmljZXMvZG9jcy8xLjAvdHV0b3JpYWwvZG9jL1NlcnZsZXRzOC5odG1sIzY0NTcyIj5GaWx0ZXJpbmcgUmVxdWVzdHMgYW5kIFJlc3BvbnNlczwvYT4KKyAgICA8L2xpPgorICAgIDwvdWw+CisKKyAgICAgIDwvc2VjdGlvbj4KKworICAgICAgPHNlY3Rpb24gbmFtZT0iMC43LjYgU2Vzc2lvbnMiIGhyZWY9InNlc3Npb24iPgorCisgICAgICA8cD5PbmUgb2YgdGhlIGtleSBjaGFyYWN0ZXJpc3RpY3Mgb2YgSFRUUCBpcyB0aGF0IGl0IGlzCisgICAgICA8ZW0+c3RhdGVsZXNzPC9lbT4uIEluIG90aGVyIHdvcmRzLCB0aGVyZSBpcyBub3RoaW5nIGJ1aWx0IGluIHRvCisgICAgICBIVFRQIHRoYXQgaWRlbnRpZmllcyBhIHN1YnNlcXVlbnQgcmVxdWVzdCBmcm9tIHRoZSBzYW1lIHVzZXIgYXMgYmVpbmcKKyAgICAgIHJlbGF0ZWQgdG8gYSBwcmV2aW91cyByZXF1ZXN0IGZyb20gdGhhdCB1c2VyLiBUaGlzIG1ha2VzIGJ1aWxkaW5nIGFuCisgICAgICBhcHBsaWNhdGlvbiB0aGF0IHdhbnRzIHRvIGVuZ2FnZSBpbiBhIGNvbnZlcnNhdGlvbiB3aXRoIHRoZSB1c2VyIG92ZXIKKyAgICAgIHNldmVyYWwgcmVxdWVzdHMgdG8gYmUgc29tZXdoYXQgZGlmZmljdWx0LjwvcD4KKworICAgICAgPHA+VG8gYWxsZXZpYXRlIHRoaXMgZGlmZmljdWx0eSwgdGhlIHNlcnZsZXQgQVBJIHByb3ZpZGVzIGEgcHJvZ3JhbW1hdGljCisgICAgICBjb25jZXB0IGNhbGxlZCBhIDxlbT5zZXNzaW9uPC9lbT4sIHJlcHJlc2VudGVkIGFzIGFuIG9iamVjdCB0aGF0CisgICAgICBpbXBsZW1lbnRzIHRoZSA8Y29kZT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb248L2NvZGU+IGludGVyZmFjZS4KKyAgICAgIFRoZSBzZXJ2bGV0IGNvbnRhaW5lciB3aWxsIHVzZSBvbmUgb2YgdHdvIHRlY2huaXF1ZXMgKGNvb2tpZXMgb3IKKyAgICAgIFVSTCByZXdyaXRpbmcpIHRvIGVuc3VyZSB0aGF0IHRoZSBuZXh0IHJlcXVlc3QgZnJvbSB0aGUgc2FtZSB1c2VyIHdpbGwKKyAgICAgIGluY2x1ZGUgdGhlIDxlbT5zZXNzaW9uIGlkPC9lbT4gZm9yIHRoaXMgc2Vzc2lvbiwgc28gdGhhdCBzdGF0ZQorICAgICAgaW5mb3JtYXRpb24gc2F2ZWQgaW4gdGhlIHNlc3Npb24gY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBtdWx0aXBsZQorICAgICAgcmVxdWVzdHMuIFRoaXMgc3RhdGUgaW5mb3JtYXRpb24gaXMgc3RvcmVkIGluIDxlbT5zZXNzaW9uCisgICAgICBhdHRyaWJ1dGVzPC9lbT4gKGluIEpTUCwgdGhleSBhcmUga25vd24gYXMgInNlc3Npb24gc2NvcGUgYmVhbnMiKS48L3A+CisKKyAgICAgIDxwPlRvIGF2b2lkIG9jY3VweWluZyByZXNvdXJjZXMgZm9yZXZlciB3aGVuIGEgdXNlciBmYWlscyB0byBjb21wbGV0ZQorICAgICAgYW4gaW50ZXJhY3Rpb24sIHNlc3Npb25zIGhhdmUgYSBjb25maWd1cmFibGUgPGVtPnRpbWVvdXQgaW50ZXJ2YWw8L2VtPi4KKyAgICAgIElmIHRoZSB0aW1lIGdhcCBiZXR3ZWVuIHR3byByZXF1ZXN0cyBleGNlZWRzIHRoaXMgaW50ZXJ2YWwsIHRoZSBzZXNzaW9uCisgICAgICB3aWxsIGJlIHRpbWVkIG91dCwgYW5kIGFsbCBzZXNzaW9uIGF0dHJpYnV0ZXMgcmVtb3ZlZC4gWW91IGRlZmluZSBhCisgICAgICBkZWZhdWx0IHNlc3Npb24gdGltZW91dCBpbiB5b3VyIHdlYiBhcHBsaWNhdGlvbiBkZXBsb3ltZW50IGRlc2NyaXB0b3IsCisgICAgICBhbmQgeW91IGNhbiBkeW5hbWljYWxseSBjaGFuZ2UgaXQgZm9yIGEgcGFydGljdWxhciBzZXNzaW9uIGJ5IGNhbGxpbmcKKyAgICAgIHRoZSA8Y29kZT5zZXRNYXhJbmFjdGl2ZUludGVydmFsKCk8L2NvZGU+IG1ldGhvZC48L3A+CisKKyAgICAgIDxwPlVubGlrZSByZXF1ZXN0cywgeW91IG5lZWQgdG8gYmUgY29uY2VybmVkIGFib3V0IHRocmVhZCBzYWZldHkgb24KKyAgICAgIHlvdXIgc2Vzc2lvbiBhdHRyaWJ1dGVzICh0aGUgbWV0aG9kcyB0aGVzZSBiZWFucyBwcm92aWRlLCBub3QgdGhlCisgICAgICA8Y29kZT5nZXRBdHRyaWJ1dGUoKTwvY29kZT4gYW5kIDxjb2RlPnNldEF0dHJpYnV0ZSgpPC9jb2RlPiBtZXRob2RzCisgICAgICBvZiB0aGUgc2Vzc2lvbiBpdHNlbGYpLiBJdCBpcyBzdXJwcmlzaW5nbHkgZWFzeSBmb3IgdGhlcmUgdG8gYmUKKyAgICAgIG11bHRpcGxlIHNpbXVsdGFuZW91cyByZXF1ZXN0cyBmcm9tIHRoZSBzYW1lIHVzZXIsIHdoaWNoIHdpbGwgdGhlcmVmb3JlCisgICAgICBhY2Nlc3MgdGhlIHNhbWUgc2Vzc2lvbi48L3A+CisKKyAgICAgIDxwPkFub3RoZXIgaW1wb3J0YW50IGNvbnNpZGVyYXRpb24gaXMgdGhhdCBzZXNzaW9uIGF0dHJpYnV0ZXMgb2NjdXB5CisgICAgICBtZW1vcnkgaW4geW91ciBzZXJ2ZXIgPGVtPmluIGJldHdlZW48L2VtPiByZXF1ZXN0cy4gVGhpcyBjYW4gaGF2ZQorICAgICAgYW4gaW1wYWN0IG9uIHRoZSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIHVzZXJzIHRoYXQgeW91ciBhcHBsaWNhdGlvbiBjYW4KKyAgICAgIHN1cHBvcnQuIElmIHlvdXIgYXBwbGljYXRpb24gcmVxdWlyZW1lbnRzIGluY2x1ZGUgdmVyeSBsYXJnZSBudW1iZXJzIG9mCisgICAgICBzaW11bHRhbmVvdXMgdXNlcnMsIHlvdSB3aWxsIGxpa2VseSB3YW50IHRvIG1pbmltaXplIHlvdXIgdXNlIG9mCisgICAgICBzZXNzaW9uIGF0dHJpYnV0ZXMsIGluIGFuIGVmZm9ydCB0byBjb250cm9sIHRoZSBvdmVyYWxsIGFtb3VudCBvZiBtZW1vcnkKKyAgICAgIHJlcXVpcmVkIHRvIHN1cHBvcnQgeW91ciBhcHBsaWNhdGlvbi48L3A+CisKKyAgICAgIDxwPgorICAgICAgRm9yIG1vcmUgYWJvdXQgc2Vzc2lvbnMsIHNlZToKKyAgICAgIDwvcD4KKyAgICAgIDx1bD4KKyAgICAgICAgPGxpPgorICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3dlYnNlcnZpY2VzL2RvY3MvMS4wL3R1dG9yaWFsL2RvYy9TZXJ2bGV0czExLmh0bWwjNjQ3NDQiPk1haW50YWluaW5nIENsaWVudCBTdGF0ZTwvYT4gaW4gSmF2YSBXZWIgU2VydmljZXMgVHV0b3JpYWwKKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL3NlcnZsZXQvMi4xL2FwaS9qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb24uaHRtbCI+PGNvZGU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uPC9jb2RlPjwvYT4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+CisKKyAgICAgIDwvc2VjdGlvbj4KKworICAgICAgPHNlY3Rpb24gbmFtZT0iMC43LjcgRGlzcGF0Y2hpbmcgUmVxdWVzdHMiIGhyZWY9ImRpc3BhdGNoIj4KKworICAgICAgPHA+CisgICAgICBUaGUgSmF2YSBTZXJ2bGV0IHNwZWNpZmljYXRpb24gZXh0ZW5kcyB0aGUgSFRUUCByZXF1ZXN0L3Jlc3BvbnNlIGN5Y2xlIGJ5IGFsbG93aW5nIHRoZSByZXF1ZXN0IHRvIGJlIGRpc3BhdGNoZWQsCisgICAgICBvciBmb3J3YXJkZWQsIGJldHdlZW4gcmVzb3VyY2VzLgorICAgICAgU3RydXRzIHVzZXMgdGhpcyBmZWF0dXJlIHRvIHBhc3MgYSByZXF1ZXN0IHRocm91Z2ggc3BlY2lhbGl6ZWQgY29tcG9uZW50cywKKyAgICAgIGVhY2ggaGFuZGxpbmcgb25lIGFzcGVjdCBvZiB0aGUgcmVzcG9uc2UuCisgICAgICBJbiB0aGUgbm9ybWFsIGNvdXJzZSwgYSByZXF1ZXN0IG1heSBwYXNzIHRocm91Z2ggYSBjb250cm9sbGVyIG9iamVjdCwgYSBtb2RlbCBvYmplY3QsCisgICAgICBhbmQgZmluYWxseSB0byBhIHZpZXcgb2JqZWN0IGFzIHBhcnQgb2YgYSBzaW5nbGUgcmVxdWVzdC9yZXNwb25zZSBjeWNsZS4KKyAgICAgIDwvcD4KKworICAgICAgPC9zZWN0aW9uPgorCisgICAgICA8c2VjdGlvbiBuYW1lPSIwLjcuOCBXZWIgQXBwbGljYXRpb25zIiBocmVmPSJ3ZWJhcHAiPgorCisgICAgICA8cD4KKyAgICAgIEp1c3QgYXMgYSBIVFRQIHNlcnZlciBjYW4gYmUgdXNlZCB0byBob3N0IHNldmVyYWwgZGlzdGluY3Qgd2ViIHNpdGVzLAorICAgICAgYSBzZXJ2bGV0IGNvbnRhaW5lciBjYW4gYmUgdXNlZCB0byBob3N0IG1vcmUgdGhhbiBvbmUgd2ViIGFwcGxpY2F0aW9uLgorICAgICAgVGhlIEphdmEgc2VydmxldCBwbGF0Zm9ybSBwcm92aWRlcyBhIHdlbGwtZGVmaW5lZCBtZWNoYW5pc20gZm9yIG9yZ2FuaXppbmcgYW5kIGRlcGxveWluZyB3ZWIgYXBwbGljYXRpb25zLgorICAgICAgRWFjaCBhcHBsaWNhdGlvbiBydW5zIGluIGl0cyBvd24gbmFtZXNwYWNlIHNvIHRoYXQgdGhleSBjYW4gYmUgZGV2ZWxvcGVkIGFuZCBkZXBsb3llZCBzZXBhcmF0ZWx5LgorICAgICAgQSB3ZWIgYXBwbGljYXRpb24gY2FuIGJlIGFzc2VtYmxlZCBpbnRvIGEgV2ViIEFwcGxpY2F0aW9uIEFyY2hpdmUsIG9yIFdBUiBmaWxlLgorICAgICAgVGhlIHNpbmdsZSBXQVIgY2FuIGJlIHVwbG9hZGVkIHRvIHRoZSBzZXJ2ZXIgYW5kIGF1dG9tYXRpY2FsbHkgZGVwbG95ZWQuCisgICAgICA8L3A+CisKKyAgICA8cD4KKyAgICBGb3IgbW9yZSBhYm91dCB3ZWIgYXBwbGljYXRpb25zLCBzZWU6CisgICAgPC9wPgorICAgIDx1bD4KKyAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vd2Vic2VydmljZXMvZG9jcy8xLjAvdHV0b3JpYWwvZG9jL1dlYkFwcC5odG1sIzc2NDMxIj5XZWIgQXBwbGljYXRpb25zPC9hPiBpbiBKYXZhIFdlYiBTZXJ2aWNlcyBUdXRvcmlhbAorICAgIDwvbGk+CisgICAgPC91bD4KKworICAgICAgPC9zZWN0aW9uPgorCisgICAgICA8c2VjdGlvbiBuYW1lPSIwLjcuOSBXZWIgYXBwbGljYXRpb24gZGVwbG95bWVudCBkZXNjcmlwdG9yICh3ZWIueG1sKSIgaHJlZj0iZXZlbnRzIj4KKworICAgICAgPHA+CisgICAgICBNb3N0IGFzcGVjdHMgb2YgYW4gYXBwbGljYXRpb24ncyBsaWZlY3ljbGUgYXJlIGNvbmZpZ3VyZWQgdGhyb3VnaCBhbiBYTUwgZG9jdW1lbnQgY2FsbGVkIHRoZSBXZWIgYXBwbGljYXRpb24gZGVwbG95bWVudCBkZXNjcmlwdG9yLgorICAgICAgVGhlIHNjaGVtYSBvZiB0aGUgZGVzY3JpcHRvciwgb3Igd2ViLnhtbCwgaXMgZ2l2ZW4gYnkgdGhlIEphdmEgc2VydmxldCBzcGVjaWZpY2F0aW9uLgorICAgICAgPC9wPgorCisgICAgICA8cD4KKyAgICAgIEZvciBtb3JlIGFib3V0IHRoZSB3ZWIueG1sIGFuZCBhcHBsaWNhdGlvbiBsaWZlY3ljbGUgZXZlbnRzLCBzZWU6CisgICAgICA8L3A+CisgICAgICA8dWw+CisgICAgICA8bGk+CisgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3dlYnNlcnZpY2VzL2RvY3MvMS4wL3R1dG9yaWFsL2RvYy9XZWJBcHAyLmh0bWwjNjQ1NTAiPldlYiBBcHBsaWNhdGlvbiBMaWZlIEN5Y2xlPC9hPiBpbiBKYXZhIFdlYiBTZXJ2aWNlcyBUdXRvcmlhbAorICAgICAgPC9saT4KKyAgICAgIDwvdWw+CisKKyAgICAgIDwvc2VjdGlvbj4KKworICAgIDxzZWN0aW9uIG5hbWU9IjAuNy4xMCBTZWN1cml0eSIgaHJlZj0ic2VjdXJpdHkiPgorCisgICAgPHA+CisgICAgT25lIGRldGFpbCB0aGF0IGNhbiBiZSBjb25maWd1cmVkIGluIHRoZSBXZWIgYXBwbGljYXRpb24gZGVwbG95bWVudCBkZXNjcmlwdG9yIGlzIGNvbnRhaW5lci1tYW5hZ2VkIHNlY3VyaXR5LgorICAgIERlY2xhcmF0aXZlIHNlY3VyaXR5IGNhbiBiZSB1c2VkIHRvIHByb3RlY3QgcmVxdWVzdHMgZm9yIFVSSXMgdGhhdCBtYXRjaCBnaXZlbiBwYXR0ZXJucy4KKyAgICBQcmFnbWF0aWMgc2VjdXJpdHkgY2FuIGJlIHVzZWQgdG8gZmluZS10dW5lIHNlY3VyaXR5IG1ha2UgYXV0aG9yaXphdGlvbiBkZWNpc2lvbnMgYmFzZWQgb24gdGhlIHRpbWUgb2YgZGF5LAorICAgIHRoZSBwYXJhbWV0ZXJzIG9mIGEgY2FsbCwgb3IgdGhlIGludGVybmFsIHN0YXRlIG9mIGEgV2ViIGNvbXBvbmVudC4KKyAgICBJdCBjYW4gYWxzbyBiZSB1c2VkIHRvIHJlc3RyaWN0IGF1dGhlbnRpY2F0aW9uIGJhc2VkIG9uIGluZm9ybWF0aW9uIGluIGEgZGF0YWJhc2UuCisgICAgPC9wPgorCisgICAgICA8cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBjb250YWluZXItbWFuYWdlZCBzZWN1cml0eSwgc2VlOjwvcD4KKyAgICAgIDx1bD4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3dlYnNlcnZpY2VzL2RvY3MvMS4yL3R1dG9yaWFsL2RvYy9pbmRleC5odG1sIj4KKyAgICAgICAgICBXZWIgQXBwbGljYXRpb24gU2VjdXJpdHkgKENoYXB0ZXIgMjQpPC9hPiBpbiB0aGUgSmF2YSBXZWIgU2VydmljZXMgVHV0b3JpYWwKKyAgICAgIDwvbGk+CisgICAgICA8L3VsPgorCisgICAgPC9zZWN0aW9uPgorCisgICAgPHNlY3Rpb24gbmFtZT0iMC44IEphdmFTZXJ2ZXIgUGFnZXMsIEpTUCBUYWcgTGlicmFyaWVzLCBhbmQgSmF2YSBTZXJ2ZXIgRmFjZXMiIGhyZWY9ImpzcCI+CisgICAgPHA+PGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9qc3AvcHJvZHVjdC5odG1sIj5KYXZhU2VydmVyIFBhZ2VzPC9hPiAoSlNQcykgYXJlCisgICAgImluc2lkZS1vdXQgc2VydmxldHMiIHRoYXQgbWFrZSBpdCBlYXNpZXIgdG8gY3JlYXRlIGFuZCBtYWludGFpbiBkeW5hbWljIHdlYiBwYWdlcy4gSW5zdGVhZAorICAgIG9mIHB1dHRpbmcgd2hhdCB5b3Ugd2FudCB0byB3cml0ZSB0byB0aGUgSFRUUCByZXNwb25zZSBpbnNpZGUgb2YgYSBKYXZhIDxjb2RlPnByaW50PC9jb2RlPgorICAgIHN0YXRlbWVudCwgZXZlcnl0aGluZyBpbiBhIEphdmFTZXJ2ZXIgUGFnZSBpcyB3cml0dGVuIHRvIHRoZSByZXNwb25zZSwgPHN0cm9uZz5leGNlcHQ8L3N0cm9uZz4gd2hhdCBpcworICAgIHBsYWNlZCB3aXRoaW4gc3BlY2lhbCBKYXZhIHN0YXRlbWVudHMuPC9wPgorCisgICAgPHA+V2l0aCA8c3Ryb25nPkphdmFTZXJ2ZXIgUGFnZXM8L3N0cm9uZz4geW91IGNhbiBzdGFydCBieSB3cml0aW5nIHRoZSBwYWdlIGluIHN0YW5kYXJkIEhUTUwgYW5kIHRoZW4gYWRkIHRoZQorICAgIGR5bmFtaWMgZmVhdHVyZXMgdXNpbmcgc3RhdGVtZW50cyBpbiB0aGUgSmF2YSBsYW5ndWFnZSBvciBieSB1c2luZworICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvanNwL3RhZ2xpYnJhcmllcy5odG1sIj5KU1AgdGFnczwvYT4uCisgICAgVGhlIFN0cnV0cyBkaXN0cmlidXRpb24gaW5jbHVkZXMgc2V2ZXJhbCBKU1AgdGFncyB0aGF0IG1ha2UgaXQgZWFzeSB0byBhY2Nlc3MgdGhlIGZyYW1ld29yaydzCisgICAgZmVhdHVyZXMgZnJvbSBhIEphdmFTZXJ2ZXIgUGFnZS48L3A+CisKKyAgICA8cD5Gb3IgbW9yZSBhYm91dCBKYXZhU2VydmVyUGFnZXMgYW5kIEN1c3RvbSBKU1AgVGFnIExpYnJhcmllcyBzZWUgIDwvcD4KKworICAgIDx1bD4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9qc3AvIj48c3Ryb25nPlRoZQorICAgICAgICBKYXZhU2VydmVyIFBhZ2VzIFRlY2hub2xvZ3k8L3N0cm9uZz48L2E+IHBhZ2UgYXQKKyAgICAgICAgPGNvZGU+amF2YS5zdW4uY29tPC9jb2RlPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvanNwL2Rvd25sb2FkLmh0bWwiPjxzdHJvbmc+VGhlCisgICAgICAgIEpTUCAxLjEgYW5kIDEuMiBTcGVjaWZpY2F0aW9uczwvc3Ryb25nPjwvYT4gZG93bmxvYWQgcGFnZSBhdAorICAgICAgICA8Y29kZT5qYXZhLnN1bi5jb208L2NvZGU+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS93ZWJzZXJ2aWNlcy9kb2NzLzEuMC90dXRvcmlhbC9kb2MvSlNQSW50cm8uaHRtbCI+PHN0cm9uZz5KYXZhU2VydmVyIFBhZ2VzIFRlY2hub2xvZ3k8L3N0cm9uZz48L2E+IGluIHRoZSBKYXZhIFdlYiBTZXJ2aWNlcyBUdXRvcmlhbDwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vd2Vic2VydmljZXMvZG9jcy8xLjAvdHV0b3JpYWwvZG9jL0pTUFRhZ3MuaHRtbCI+PHN0cm9uZz5DdXN0b20gVGFncyBpbiBKU1AgUGFnZXM8L3N0cm9uZz48L2E+IGluIHRoZSBKYXZhIFdlYiBTZXJ2aWNlcyBUdXRvcmlhbDwvbGk+CisgICAgPC91bD4KKworICAgIDxwPk1hbnkgdGltZXMsIEpTUCB0YWdzIHdvcmsgaGFuZC1pbi1oYW5kIHdpdGggSmF2YUJlYW5zLiBUaGUgYXBwbGljYXRpb24gc2VuZHMgYSBKYXZhQmVhbiB0bworICAgIHRoZSBKU1AsIGFuZCB0aGUgSlNQIHRhZyB1c2VzIHRoZSBiZWFuIHRvIGN1c3RvbWl6ZSB0aGUgcGFnZSBmb3IgdGhlIGluc3RhbnQgdXNlci4gRm9yIG1vcmUsIHNlZQorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vd2Vic2VydmljZXMvZG9jcy8xLjAvdHV0b3JpYWwvZG9jL0pTUEJlYW5zLmh0bWwiPkphdmFCZWFucyBDb21wb25lbnRzIGluIEpTUCBQYWdlczwvYT4KKyAgICBpbiB0aGUgSmF2YSBXZWIgU2VydmljZXMgVHV0b3JpYWwuPC9wPgorCisgICAgPHA+U3RydXRzIGFsc28gd29ya3Mgd2VsbCB3aXRoIHRoZSBuZXcKKyAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2pzcC9qc3RsIj48c3Ryb25nPkphdmFTZXJ2ZXIgUGFnZXMgU3RhbmRhcmQgVGFnIExpYnJhcnk8L3N0cm9uZz48L2E+CisgICAgKEpTVEwpIGFuZCB0YWdsaWJzIGZyb20gb3RoZXIgc291cmNlcywgbGlrZQorICAgIDxhIGhyZWY9Imh0dHA6Ly9qc3B0YWdzLmNvbS8iPkpTUCBUYWdzPC9hPiBhbmQKKyAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RhZ2xpYnMvaW5kZXguaHRtbCI+SmFrYXJ0YSBUYWdsaWJzPC9hPi4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICAgICAgT25lIG9mIHRoZSBjb250cmlidXRlZCBsaWJyYXJpZXMgYXZhaWxhYmxlIGZvciBTdHJ1dHMgaXMgPHN0cm9uZz5TdHJ1dHMtRUw8L3N0cm9uZz4uCisgICAgICAgIFRoaXMgdGFnbGliIGlzIHNwZWNpZmljYWxseSBkZXNpZ25lZCB0byB3b3JrIHdlbGwgd2l0aCBKU1RMLgorICAgICAgICBJbiBwYXJ0aWN1bGFyLCBpdCB1c2VzIHRoZSBzYW1lICJleHByZXNzaW9uIGxhbmd1YWdlIiBlbmdpbmUgZm9yIGV2YWx1YXRpbmcgdGFnIGF0dHJpYnV0ZSB2YWx1ZXMgYXMgSlNUTC4KKyAgICAgICAgVGhpcyBpcyBpbiBjb250cmFzdCB0byB0aGUgb3JpZ2luYWwgU3RydXRzIHRhZyBsaWJyYXJ5LCB3aGljaCBjYW4gb25seSB1c2UgInJ0ZXhwcnZhbHVlInMgKHJ1bnRpbWUgc2NyaXB0bGV0CisgICAgICAgIGV4cHJlc3Npb25zKSBmb3IgZHluYW1pYyBhdHRyaWJ1dGUgdmFsdWVzLgorICAgIDwvcD4KKworICAgIDxwPlRoZXJlIGFyZSBhbHNvIHRvb2xraXRzIGF2YWlsYWJsZSB0aGF0IG1ha2UgU3RydXRzIGVhc3kgdG8gdXNlIHdpdGgKKyAgICA8YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5yb2FkLmNhL29wZW5jb2RlLyI+WFNMVDwvYT4gYW5kCisgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy92ZWxvY2l0eS9pbmRleC5odG1sIj5WZWxvY2l0eSBUZW1wbGF0ZXM8L2E+LgorICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgICAgIFRoZSBuZXdlc3Qgc3RhciBvbiB0aGUgSmF2YSBob3Jpem9uIGlzIDxzdHJvbmc+SmF2YSBTZXJ2ZXIgRmFjZXM8L3N0cm9uZz4uCisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyZWUvamF2YXNlcnZlcmZhY2VzLyI+SmF2YVNlcnZlciBGYWNlcyB0ZWNobm9sb2d5PC9hPiBzaW1wbGlmaWVzIGJ1aWxkaW5nCisgICAgICAgICAgICB1c2VyIGludGVyZmFjZXMgZm9yIEphdmFTZXJ2ZXIgYXBwbGljYXRpb25zLCBib3RoIGZvciB0aGUgd2ViIGFuZCBmb3IgdGhlIGRlc2t0b3AuCisgICAgICAgICAgICBUaGUgSlNGIHNwZWNpZmljYXRpb24gaXMgc3RpbGwgdW5kZXIgZGV2ZWxvcG1lbnQsIGFsdGhvdWdoIGFuIGVhcmx5LXJlbGVhc2UgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGlzCisgICAgICAgICAgICBhdmFpbGFibGUgdGhyb3VnaCB0aGUgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS93ZWJzZXJ2aWNlcy9kb3dubG9hZC5odG1sIj5KYXZhIFdlYiBTZXJ2aWNlcyBEZXZlbG9wZXIKKyAgICAgICAgICAgIFBhY2s8L2E+LgorICAgICAgICAgICAgTGlrZXdpc2UsIGFuIGVhcmx5LXJlbGVhc2UgSmF2YVNlcnZlciBGYWNlcyB0YWdsaWIgZm9yIFN0cnV0cywKKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9hcmNoaXZlLmFwYWNoZS5vcmcvZGlzdC9qYWthcnRhL3N0cnV0cy9vbGQvcmVsZWFzZS9zdHJ1dHMtZmFjZXMvIj48c3Ryb25nPlN0cnV0cy1GYWNlczwvc3Ryb25nPjwvYT4sIGlzCisgICAgICAgICAgICBhbHNvIGluIGVhcmx5IHJlbGVhc2UgYW5kIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSBuaWdodGx5IGJ1aWxkLgorICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgICAgIEphdmEgU2VydmVyIEZhY2VzIGlzIHZlcnkgY29tcGF0aWJsZSB3aXRoIFN0cnV0cy4KKyAgICAgICAgICAgIEFkZGl0aW9uYWwgU3RydXRzL0pTRiBpbnRlZ3JhdGlvbiB0b29scyBhcmUgc3VyZSB0byBhcHBlYXIgYXMgdGhlIHNwZWNpZmljYXRpb24gaXMgZmluYWxpemVkIGFuZCBjb21lcyBpbnRvCisgICAgICAgICAgICB3aWRlc3ByZWFkIHVzZS4KKyAgICAgICAgPC9wPgorCisgICAgICAgIDxwPkZvciBtb3JlIGFib3V0IEpTVEwgYW5kIEphdmFTZXJ2ZXIgRmFjZXMgc2VlICA8L3A+CisKKyAgICAgICA8dWw+CisgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly90b2RheS5qYXZhLm5ldC9wdWIvYS90b2RheS8yMDAzLzEwLzA3L2pzdGwxLmh0bWwiPlByYWN0aWNhbCBKU1RMLCBQYXJ0IDE8L2E+IGJ5IFN1ZSBTcGllbG1hbgorICAgICAgICAgICA8L2xpPgorICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmpzZmNlbnRyYWwuY29tIj48c3Ryb25nPkpTRiBDZW50cmFsPC9zdHJvbmc+PC9hPiAtIEphdmFTZXJ2ZXIgRmFjZXMgcmVzb3VyY2VzLgorICAgICAgICAgICAgPC9saT48bGk+CisgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmphbWVzaG9sbWVzLmNvbS9KYXZhU2VydmVyRmFjZXMvIj48c3Ryb25nPkphdmFTZXJ2ZXIgRmFjZXMgUmVzb3VyY2VzPC9zdHJvbmc+PC9hPiAtIEphbWVzIEhvbG1lcyBkb3QgQ29tLgorICAgICAgICAgICA8L2xpPgorICAgICAgIDwvdWw+CisKKyAgICA8L3NlY3Rpb24+CisKKyAgICA8c2VjdGlvbiBuYW1lPSIwLjkgRXh0ZW5zaWJsZSBNYXJrdXAgTGFuZ3VhZ2UgKFhNTCkiIGhyZWY9InhtbCI+CisKKyAgICA8cD5UaGUgZmVhdHVyZXMgcHJvdmlkZWQgYnkgdGhlIFN0cnV0cyBmcmFtZXdvcmsgcmVsaWVzIG9uIGEgbnVtYmVyIG9mIG9iamVjdHMgdGhhdCBhcmUKKyAgICB1c3VhbGx5IGRlcGxveWVkIHVzaW5nIGEgY29uZmlndXJhdGlvbiBmaWxlIHdyaXR0ZW4gaW4KKyAgICA8YSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9YTUwvIj5FeHRlbnNpYmxlIE1hcmt1cCBMYW5ndWFnZTwvYT4uIFhNTCBpcyBhbHNvIHVzZWQgdG8KKyAgICBjb25maWd1cmUgSmF2YSB3ZWIgYXBwbGljYXRpb25zOyBzbywgdGhpcyBpcyB5ZXQgYW5vdGhlciBmYW1pbGlhciBhcHByb2FjaC4KKyAgICA8L3A+CisKKyAgICA8cD5Gb3IgbW9yZSBhYm91dCBYTUwgY29uZmlndXJhdGlvbiBmaWxlcyBhbmQgSmF2YSB3ZWIgYXBwbGljYXRpb25zLCBzZWU8L3A+CisKKyAgICA8dWw+CisgICAgPGxpPgorICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3dlYnNlcnZpY2VzL2RvY3MvMS4wL3R1dG9yaWFsL2RvYy9XZWJBcHA0Lmh0bWwjNjQ2NzgiPkNvbmZpZ3VyaW5nIFdlYgorICAgICAgICBBcHBsaWNhdGlvbnM8L2E+IGluIHRoZSBKYXZhIFdlYiBTZXJ2aWNlcyBUdXRvcmlhbDwvbGk+CisgICAgPC91bD4KKworICAgIDxwPgorICAgICAgICBGb3IgbW9yZSBhYm91dCBob3cgWE1MIGlzIHVzZWQgd2l0aCBKYXZhIGFwcGxpY2F0aW9ucyBnZW5lcmFsbHksIHNlZQorICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3dlYnNlcnZpY2VzL2RvY3MvMS4wL3R1dG9yaWFsL2RvYy9KQVhQSW50cm8uaHRtbCI+SmF2YSBBUEkgZm9yIFhNTCBQcm9jZXNzaW5nPC9hPgorICAgICAgICBpbiB0aGUgSmF2YSBXZWIgU2VydmljZXMgVHV0b3JpYWwuCisgICAgICAgIFdoaWxlIHRoZSBmcmFtZXdvcmsgbWFrZXMgZ29vZCB1c2Ugb2YgdGhpcyBBUEkgaW50ZXJuYWxseSwgaXQgaXMgbm90IHNvbWV0aGluZyBtb3N0IFN0cnV0cyBkZXZlbG9wZXJzIHdvdWxkIHVzZQorICAgICAgICB3aGVuIHdyaXRpbmcgdGhlaXIgb3duIGFwcGxpY2F0aW9ucy4KKyAgICA8L3A+CisKKyAgICA8L3NlY3Rpb24+CisKKyAgICAgICAgPHNlY3Rpb24gbmFtZT0iMC45LjEgRGVzY3JpcHRvcnMiIGhyZWY9ImRlc2NyaXB0b3JzIj4KKworICAgICAgICA8cD4KKyAgICAgICAgV2hlbiBKYXZhIGFwcGxpY2F0aW9ucyB1c2UgWE1MIGNvbmZpZ3VyYXRpb24gZmlsZXMsCisgICAgICAgIHRoZSBlbGVtZW50cyBhcmUgbW9zdCBvZnRlbiB1c2VkIGFzIDxlbT5kZXNjcmlwdG9yczwvZW0+LgorICAgICAgICBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QgdXNlIHRoZSBYTUwgZWxlbWVudHMgZGlyZWN0bHkuCisgICAgICAgIFRoZSBlbGVtZW50cyBhcmUgdXNlZCB0byBjcmVhdGUgYW5kIGNvbmZpZ3VyZSAob3IgZGVwbG95KSBKYXZhIG9iamVjdHMuCisgICAgICAgIDwvcD4KKworICAgICAgICA8cD4KKyAgICAgICAgVGhlIEphdmEgU2VydmxldCBwbGF0Zm9ybSB1c2VzIGFuIFhNTCBjb25maWd1cmF0aW9uIGZpbGUgdG8gZGVwbG95IHNlcnZsZXRzIChhbW9uZyBvdGhlciB0aGluZ3MpLgorICAgICAgICBMaWtld2lzZSwgU3RydXRzIHVzZXMgYW4gWE1MIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBkZXBsb3kgb2JqZWN0cyB1c2VkIGJ5IHRoZSBmcmFtZXdvcmsuCisgICAgICAgIDwvcD4KKworICAgIDwvc2VjdGlvbj4KKworICAgIDxzZWN0aW9uIG5hbWU9IjAuMTAgT3RoZXIgbGF5ZXJzIiBocmVmPSJsYXllcnMiPgorCisgICAgPHA+CisgICAgICBTdHJ1dHMgcHJvdmlkZXMgdGhlIGNvbnRyb2wgbGF5ZXIgZm9yIGEgd2ViIGFwcGxpY2F0aW9uLiBEZXZlbG9wZXJzIGNhbiB1c2UgdGhpcyBsYXllciB3aXRoCisgICAgICBvdGhlciBzdGFuZGFyZCB0ZWNobm9sb2dpZXMgdG8gcHJvdmlkZSB0aGUgZGF0YSBhY2Nlc3MgYW5kIHByZXNlbnRhdGlvbiBsYXllcnMuIFNvbWUKKyAgICAgIHBvcHVsYXIgRGF0YSBhY2Nlc3MgdGVjaG5vbG9naWVzIGluY2x1ZGU6CisgICAgPC9wPgorCisgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2VqYi9pbmRleC5odG1sIj5FbnRlcnByaXNlIEphdmEgQmVhbnM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL2hpYmVybmF0ZSI+SGliZXJuYXRlPC9hPjwvbGk+CisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9pYmF0aXNkYiI+aUJBVElTPC9hPjwvbGk+CisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9qZGJjL2luZGV4Lmh0bWwiPkpEQkM8L2E+PC9saT4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vZGIuYXBhY2hlLm9yZy9vamIvIj5PYmplY3QgUmVsYXRpb25hbCBCcmlkZ2U8L2E+PC9saT4KKyAgICAgICAgPC91bD4KKworICAgIDxwPgorICAgICAgUHJlc2VudGF0aW9uIGxheWVyIHRlY2hub2xvZ2llcyBpbmNsdWRlOgorICAgIDwvcD4KKworICAgICAgICA8dWw+CisgICAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2pzcCI+SmF2YVNlcnZlciBQYWdlczwvYT48L2xpPgorICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy92ZWxvY2l0eS9pbmRleC5odG1sIj5WZWxvY2l0eSBUZW1wbGF0ZXM8L2E+PC9saT4KKyAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hzbHQiPlhTTCBUcmFuc2Zvcm1hdGlvbnMgPC9hPjwvbGk+CisgICAgICAgIDwvdWw+CisKKyAgICA8L3NlY3Rpb24+CisKKyAgICA8c2VjdGlvbiBuYW1lPSIwLjExIEpBQVMiIGhyZWY9ImphYXMiPgorCisgICAgPHA+CisgICAgICAgIFdoaWxlIFN0cnV0cyBjYW4gd29yayB3aXRoIGFueSBhcHByb2FjaCB0byB1c2VyIGF1dGhlbnRpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uLCBTdHJ1dHMgMS4xIGFuZCBsYXRlciBvZmZlcnMKKyAgICAgICAgZGlyZWN0IHN1cHBvcnQgZm9yIHRoZSBzdGFuZGFyZCBKYXZhIEF1dGhlbnRpY2F0aW9uIGFuZCBBdXRob3JpemF0aW9uIFNlcnZpY2UgKEpBQVMpLgorICAgICAgICBZb3UgY2FuIG5vdyBzcGVjaWZ5IHNlY3VyaXR5IHJvbGVzIG9uIGFuIGFjdGlvbi1ieS1hY3Rpb24gYmFzaXMuCisgICAgPC9wPgorCisgICAgPHA+Rm9yIG1vcmUgYWJvdXQgSkFBUywgc2VlIHRoZSA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2phYXMvaW5kZXgtMTQuaHRtbCI+SmF2YXNvZnQgcHJvZHVjdCBwYWdlPC9hPgorICAgIGFuZCB0aGUgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS93ZWJzZXJ2aWNlcy9kb2NzLzEuMC90dXRvcmlhbC9kb2MvV2ViQXBwU2VjdXJpdHkuaHRtbCI+CisgICAgV2ViIEFwcGxpY2F0aW9uIFNlY3VyaXR5PC9hPiBjaGFwdGVyIG9mIHRoZQorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vd2Vic2VydmljZXMvZG9jcy8xLjAvdHV0b3JpYWwvaW5kZXguaHRtbCI+SmF2YSBXZWIgU2VydmljZXMgVHV0b3JpYWw8L2E+LjwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbj4KKyAgICA8cCBjbGFzcz0icmlnaHQiPgorICAgIE5leHQ6IDxhIGhyZWY9ImludHJvZHVjdGlvbi5odG1sIj5JbnRyb2R1Y3Rpb248L2E+CisgICAgPC9wPgorPC9zZWN0aW9uPgorCis8L2JvZHk+Cis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3Byb2plY3QueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3Byb2plY3QueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhYmJjY2UKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcHJvamVjdC54bWwKQEAgLTAsMCArMSw3NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPHByb2plY3QgbmFtZT0iU3RydXRzIFVzZXIncyBHdWlkZSIKKyAgICAgICAgIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL3VzZXJHdWlkZSIKKyAgICAgICAgaW1hZ2U9Ii4uL2ltYWdlcy9zdHJ1dHMuZ2lmIgorICAgICAgYXV0aG9ycz0iZmFsc2UiPgorCisgICAgPHRpdGxlPkdldHRpbmcgU3RhcnRlZDwvdGl0bGU+CisgICAgCisgICAgPG1lbnUgbmFtZT0iVXNlciBHdWlkZSI+CisgICAgICA8aXRlbSAKKyAgICAgICAgbmFtZT0iVGFibGUgb2YgQ29udGVudHMiICAgICAKKyAgICAgICAgaHJlZj0iaW5kZXguaHRtbCIvPgorICAgICAgPGl0ZW0gCisgICAgICAgIG5hbWU9IlByZWZhY2UiICAgICAgICAgICAgICAgCisgICAgICAgIGhyZWY9InByZWZhY2UuaHRtbCIvPgorICAgICAgPGl0ZW0gCisgICAgICAgIG5hbWU9IkludHJvZHVjdGlvbiIgICAgICAgICAgCisgICAgICAgIGhyZWY9ImludHJvZHVjdGlvbi5odG1sIi8+CisgICAgICA8aXRlbSAKKyAgICAgICAgbmFtZT0iTW9kZWwgQ29tcG9uZW50cyIgICAgICAKKyAgICAgICAgaHJlZj0iYnVpbGRpbmdfbW9kZWwuaHRtbCIvPgorICAgICAgPGl0ZW0gCisgICAgICAgIG5hbWU9IlZpZXcgQ29tcG9uZW50cyIgICAgICAgCisgICAgICAgIGhyZWY9ImJ1aWxkaW5nX3ZpZXcuaHRtbCIvPgorICAgICAgPGl0ZW0gCisgICAgICAgIG5hbWU9IkNvbnRyb2xsZXIgQ29tcG9uZW50cyIgCisgICAgICAgIGhyZWY9ImJ1aWxkaW5nX2NvbnRyb2xsZXIuaHRtbCIvPgorICAgICAgPGl0ZW0gCisgICAgICAgIG5hbWU9IkNvbmZpZ3VyYXRpb24iICAgICAgICAgCisgICAgICAgIGhyZWY9ImNvbmZpZ3VyYXRpb24uaHRtbCIvPgorICAgICAgPGl0ZW0gCisgICAgICAgIG5hbWU9IlJlbGVhc2UgTm90ZXMiICAgICAgICAgCisgICAgICAgIGhyZWY9InJlbGVhc2Utbm90ZXMuaHRtbCIvPgorICAgICAgPGl0ZW0gCisgICAgICAgIG5hbWU9Ikluc3RhbGxhdGlvbiIgICAgICAgICAgCisgICAgICAgIGhyZWY9Imluc3RhbGxhdGlvbi5odG1sIi8+CisgICAgPC9tZW51PgorCisgICAgPG1lbnUgbmFtZT0iRGV2ZWxvcGVyIEd1aWRlcyI+CisgICAgICAgIDxpdGVtIAorICAgICAgICAgICAgbmFtZT0iQmVhbiBUYWdzIgorICAgICAgICAgICAgaHJlZj0iZGV2X2JlYW4uaHRtbCIvPgorICAgICAgICA8aXRlbSAKKyAgICAgICAgICAgIG5hbWU9IkhUTUwgVGFncyIKKyAgICAgICAgICAgIGhyZWY9ImRldl9odG1sLmh0bWwiLz4KKyAgICAgICAgPGl0ZW0gCisgICAgICAgICAgICBuYW1lPSJMb2dpYyBUYWdzIgorICAgICAgICAgICAgaHJlZj0iZGV2X2xvZ2ljLmh0bWwiLz4KKyAgICAgICAgPGl0ZW0gCisgICAgICAgICAgICBuYW1lPSJOZXN0ZWQgVGFncyIKKyAgICAgICAgICAgIGhyZWY9ImRldl9uZXN0ZWQuaHRtbCIvPgorICAgICAgICA8aXRlbSAKKyAgICAgICAgICAgIG5hbWU9IlRpbGVzIFRhZ3MiCisgICAgICAgICAgICBocmVmPSJkZXZfdGlsZXMuaHRtbCIvPgorICAgICAgICA8aXRlbSAKKyAgICAgICAgICAgIG5hbWU9IlV0aWxpdGllcyIKKyAgICAgICAgICAgIGhyZWY9ImRldl91dGlsLmh0bWwiLz4KKyAgICAgICAgPGl0ZW0gCisgICAgICAgICAgICBuYW1lPSJWYWxpZGF0b3IiCisgICAgICAgICAgICBocmVmPSJkZXZfdmFsaWRhdG9yLmh0bWwiLz4KKyAgICA8L21lbnU+CisKKyAgICA8bWVudSBuYW1lPSJRdWljayBMaW5rcyI+CisgICAgICAgIDxpdGVtIAorICAgICAgICAgICAgbmFtZT0iV2VsY29tZSIgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaHJlZj0iLi4vaW5kZXguaHRtbCIvPgorICAgICAgICA8aXRlbQorICAgICAgICAgICAgbmFtZT0iVXNlciBhbmQgRGV2ZWxvcGVyIEd1aWRlcyAqIiAKKyAgICAgICAgICAgIGhyZWY9ImluZGV4Lmh0bWwiLz4KKyAgICAgICAgPGl0ZW0gCisgICAgICAgICAgICBuYW1lPSJGQVFzIGFuZCBIb3dUb3MiICAgICAgICAgCisgICAgICAgICAgICBocmVmPSIuLi9mYXFzL2luZGV4Lmh0bWwiLz4KKyAgICA8L21lbnU+CisKKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLTEuMC1iMS54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjAtYjEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiODdmNGIKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjAtYjEueG1sCkBAIC0wLDAgKzEsNDMxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9InJlbGVhc2Utbm90ZXMtMS4wLWIxLmh0bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5TdHJ1dHMgUmVsZWFzZSBOb3RlcyAoVmVyc2lvbiAxLjAtYmV0YS0xKTwvdGl0bGU+CisgIDwvcHJvcGVydGllcz4KKworICA8Ym9keT4KKworICA8c2VjdGlvbiBuYW1lPSJJbnRyb2R1Y3Rpb24iIGhyZWY9IkludHJvZHVjdGlvbiI+CisKKyAgPHA+VGhpcyBkb2N1bWVudCBjb250YWlucyB0aGUgcmVsZWFzZSBub3RlcyBmb3IKKyAgPHN0cm9uZz5WZXJzaW9uIDEuMC1iZXRhLTE8L3N0cm9uZz4gb2YgdGhlIFN0cnV0cyBGcmFtZXdvcmsuCisgIFRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgY292ZXIKKyAgPGEgaHJlZj0iI05ldyI+TmV3IEZlYXR1cmVzPC9hPiBhbmQgPGEgaHJlZj0iI0NoYW5nZXMiPkNoYW5nZXM8L2E+IHNpbmNlCisgIHRoZSA8c3Ryb25nPlZlcnNpb24gMC41PC9zdHJvbmc+IG9mIFN0cnV0cyB3YXMgbWFkZSBhdmFpbGFibGUuPC9wPgorCisgIDxwPk9uZSBnbG9iYWwgbmV3IGZlYXR1cmUgdG8gdGFrZSBub3RlIG9mIGlzIHRoYXQgU3RydXRzIDEuMCByZXF1aXJlcworICBhIEphdmEyIChKREsgMS4yIG9yIGxhdGVyKSBwbGF0Zm9ybSBvbiB3aGljaCB0byBydW4uPC9wPgorCisgIDwvc2VjdGlvbj4KKworCisgIDxzZWN0aW9uIG5hbWU9IldoYXQncyBOZXc/IiBocmVmPSJOZXciPgorCisgIDxwPlRoZSBmb2xsb3dpbmcgbWFqb3IgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgY29udHJvbGxlcgorICBzZXJ2bGV0IGFuZCBhc3NvY2lhdGVkIGNsYXNzZXMKKyAgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9jb2RlPik6PC9wPgorICA8dWw+CisgIDxsaT5BIG5ldyBjb25maWd1cmF0aW9uIGZpbGUgZm9ybWF0LCBpbmNsdWRpbmcgdGhlCisgICAgICA8YSBocmVmPSIuLi8uLi9kdGRzL3N0cnV0cy1jb25maWdfMV8wLmR0ZCI+RG9jdW1lbnQgVHlwZSBEZWZpbml0aW9uIChEVEQpPC9hPgorICAgICAgaXQgaXMgYmFzZWQgb24sIGlzIGF2YWlsYWJsZSBmb3IgY29uZmlndXJpbmcgdGhlIFN0cnV0cyBjb250cm9sbGVyCisgICAgICBzZXJ2bGV0LiAgU3VwcG9ydCBmb3IgdGhlIHByZXZpb3VzIGZvcm1hdCBpcyBzdGlsbCBwcmVzZW50LCBidXQgd2lsbAorICAgICAgYmUgcGhhc2VkIG91dCBieSB0aGUgMS4wIHJlbGVhc2UuPC9saT4KKyAgPGxpPklmIGVuYWJsZWQgYnkgc2V0dGluZyB0aGUgPGNvZGU+bG9jYWxlPC9jb2RlPiBzZXJ2bGV0IGluaXRpYWxpemF0aW9uCisgICAgICBwYXJhbWV0ZXIgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgd2lsbCBub3cgY2FsY3VsYXRlCisgICAgICBhIExvY2FsZSBmb3IgdGhpcyB1c2VyIChiYXNlZCBvbiB0aGUgTG9jYWxlIHJldHVybmVkIGJ5IHRoZSBzZXJ2bGV0CisgICAgICBjb250YWluZXIsIG9yIGJ5IHRoZSBIVFRQIGhlYWRlcnMgaW5jbHVkZWQgd2l0aCB0aGUgcmVxdWVzdCkKKyAgICAgIGFuZCBzdG9yZSBpdCBpbiB0aGUgdXNlcidzIHNlc3Npb24sIHVubGVzcyB0aGUgYXBwbGljYXRpb24KKyAgICAgIGhhcyBzdG9yZWQgb25lIHRoZXJlIGFscmVhZHkuPC9saT4KKyAgPGxpPkFwcGxpY2F0aW9uIDxjb2RlPkFjdGlvbjwvY29kZT4gaW5zdGFuY2VzIG5vdyBoYXZlIGxpZmVjeWNsZSBzdXBwb3J0LgorICAgICAgVGhlIGNvbnRyb2xsZXIgc2VydmxldCB3aWxsIGNhbGwgPGNvZGU+c2V0U2VydmxldCgpPC9jb2RlPiB3aXRoIGEKKyAgICAgIG5vbi1udWxsIGFyZ3VtZW50IHdoZW4gdGhlIGluc3RhbmNlIGlzIGZpcnN0IGNyZWF0ZWQsIGFuZCBjYWxsIGl0IHdpdGgKKyAgICAgIGEgPGNvZGU+bnVsbDwvY29kZT4gYXJndW1lbnQgd2hlbiB0aGUgaW5zdGFuY2UgaXMgYmVpbmcgc2h1dCBkb3duLjwvbGk+CisgIDxsaT5UaGUgY29sbGVjdGlvbiBvZiAic3RhbmRhcmQiIFN0cnV0cyBhY3Rpb25zIChpbiBwYWNrYWdlCisgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9jb2RlPikgaXMga2lja2VkIG9mZiB3aXRoIGEgc2V0IG9mCisgICAgICBzaW1wbGUgYWN0aW9ucyB0aGF0IGFsbG93IG9uLXRoZS1mbHkgY2hhbmdlcyBpbiB0aGUgZm9ybSBiZWFuLCBmb3J3YXJkLAorICAgICAgYW5kIG1hcHBpbmcgZGVmaW5pdGlvbnMgcmVnaXN0ZXJlZCB3aXRoIHRoZSBjb250cm9sbGVyIHNlcnZsZXQuICBUaGVzZQorICAgICAgYWN0aW9ucyB3b3VsZCBub3JtYWxseSBiZSBjb25maWd1cmVkIGJlaGluZCBzZWN1cml0eSBjb25zdHJhaW50cyB0bworICAgICAgcHJldmVudCBpbnRlcmZlcmVuY2Ugd2l0aCB0aGUgb3BlcmF0aW9uIG9mIHlvdXIgYXBwbGljYXRpb24gYnV0IGNhbiBiZQorICAgICAgdmVyeSB1c2VmdWwgZHVyaW5nIGRldmVsb3BtZW50LjwvbGk+CisgIDxsaT5BIG5ldyByZXByZXNlbnRhdGlvbiBvZiBlcnJvciBtZXNzYWdlcyAoPGNvZGU+QWN0aW9uRXJyb3I8L2NvZGU+IGFuZAorICAgICAgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPikgaGFzIGJlZW4gY3JlYXRlZCB0aGF0IGFsbG93cyBlcnJvcnMgdG8gYmUKKyAgICAgIGFzc29jaWF0ZWQgd2l0aCBpbmRpdmlkdWFsIGZpZWxkcywgYW5kIHN0b3JlcyBwYXJhbWV0ZXIgcmVwbGFjZW1lbnQKKyAgICAgIHZhbHVlcyBhbG9uZyB3aXRoIHRoZSBtZXNzYWdlcyBrZXlzLjwvbGk+CisgIDxsaT5UaGUgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gaW50ZXJmYWNlIGhhcyBiZWVuIGNvbnZlcnRlZCB0byBhIGJhc2UgY2xhc3MsCisgICAgICB3aXRoIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIG9mIHNvbWUgdXNlZnVsIGZ1bmN0aW9uYWxpdHkuICBJbiBhZGRpdGlvbiwKKyAgICAgIHRoZSBuZXcgY2xhc3MgcHJvdmlkZXMgdHdvIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZHMgdGhhdCB0YWtlCisgICAgICB0aGUgY3VycmVudCBtYXBwaW5nIGFuZCBjdXJyZW50IHJlcXVlc3QgYXMgYXJndW1lbnRzLCBpbiBvcmRlciB0byBwcm92aWRlCisgICAgICBhY2Nlc3MgdG8gbW9yZSBjb250ZXh0IGluZm9ybWF0aW9uIHRoYW4ganVzdCB0aGUgcHJvcGVydGllcyBvZiB0aGlzCisgICAgICBwYXJ0aWN1bGFyIGZvcm0gYmVhbi48L2xpPgorICA8bGk+VGhlIG5ldyA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBjbGFzcyBhbHNvIHByb3ZpZGVzIHR3bworICAgICAgPGNvZGU+cmVzZXQoKTwvY29kZT4gbWV0aG9kcyB0aGF0IHRha2UgdGhlIGN1cnJlbnQgbWFwcGluZyBhbmQgY3VycmVudAorICAgICAgcmVxdWVzdCBhcyBhcmd1bWVudHMsIGluIG9yZGVyIHRvIHByb3ZpZGUgYWNjZXNzIHRvIG1vcmUgY29udGV4dAorICAgICAgaW5mb3JtYXRpb24gKHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgb24gbXVsdGktcGFnZSBmb3JtcyBzbyB0aGF0IHRoZSBmb3JtCisgICAgICBiZWFuIGtub3dzIHdoaWNoIHByb3BlcnRpZXMgdG8gcmVzZXQpLiAgQW1vbmcgb3RoZXIgdGhpbmdzLCB1c2Ugb2YgdGhlCisgICAgICA8Y29kZT5yZXNldCgpPC9jb2RlPiBtZXRob2RzIGNhbiBwcmV2ZW50IHByb2JsZW1zIHdpdGggY2hlY2tib3ggZmllbGRzCisgICAgICAtLSBzaW1wbHkgcmVzZXQgYm9vbGVhbiBmaWVsZHMgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IGFuZCB0aGV5IHdpbGwgYmUKKyAgICAgIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiAoZHVyaW5nIGF1dG8tcG9wdWxhdGlvbiBvZiB0aGUgZm9ybSBiZWFuCisgICAgICBwcm9wZXJ0aWVzKSBvbmx5IGlmIHRoZSBjaGVja2JveCB3YXMgYWN0dWFsbHkgY2hlY2tlZC48L2xpPgorICA8bGk+QWxsIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGNyZWF0ZWQgYnkgdGhlIFN0cnV0cyBjb250cm9sbGVyIHNlcnZsZXQKKyAgICAgIGl0c2VsZiAoYnV0IG5vdCB0aGUgU3RydXRzIEV4YW1wbGUgYXBwbGljYXRpb24pIG5vdyBpbXBsZW1lbnQKKyAgICAgIDxjb2RlPmphdmEuaW8uU2VyaWFsaXphYmxlPC9jb2RlPi48L2xpPgorICA8bGk+VGhlIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3Mgbm93IGluY2x1ZGVzIHN1cHBvcnQgZm9yICJ0cmFuc2FjdGlvbmFsCisgICAgICB0b2tlbnMiLCBzbyB0aGF0IHlvdSBjYW4gZGV0ZWN0IGNhc2VzIHdoZXJlIHRoZSB1c2VyIHN1Ym1pdHRlZCBhIGZvcm0sCisgICAgICB0aGVuIHdlbnQgYmFjayBhbmQgcmVzdWJtaXR0ZWQgdGhlIGZvcm0gYWdhaW4uPC9saT4KKyAgPC91bD4KKworICA8cD5UaGUgZm9sbG93aW5nIG1ham9yIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlCisgIDxlbT5zdHJ1dHMtYmVhbjwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZQorICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvY29kZT4pOjwvcD4KKyAgPHVsPgorICA8bGk+QSBuZXcgY3VzdG9tIHRhZywgPGNvZGU+Jmx0O2JlYW46cGFnZSZndDs8L2NvZGU+LCBpcyBhdmFpbGFibGUKKyAgICAgIHRvIGV4cG9zZSBrZXkgaXRlbXMgZnJvbSB0aGUgcGFnZSBjb250ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudAorICAgICAgcGFnZSBhcyBzY3JpcHRpbmcgdmFyaWFibGVzLCBhbmQgYXMgcGFnZS1zY29wZSBiZWFucy4gIEZvciBleGFtcGxlLAorICAgICAgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBzZXF1ZW5jZSB0byByZW5kZXIgdGhlIHNlcnZlciBpbmZvcm1hdGlvbgorICAgICAgc3RyaW5nIHJldHVybmVkIGJ5IG91ciBzZXJ2bGV0IGNvbnRleHQ6CisgICAgICA8cHJlPgorICAgICAgJmx0O2JlYW46cGFnZSBpZD0iYXBwIiBwcm9wZXJ0eT0iYXBwbGljYXRpb24iLyZndDsKKyAgICAgICZsdDtiZWFuOndyaXRlIG5hbWU9ImFwcCIgcHJvcGVydHk9InNlcnZlckluZm8iLyZndDsKKyAgICAgIDwvcHJlPjwvbGk+CisgIDxsaT5BIG5ldyBjdXN0b20gdGFnLCA8Y29kZT4mbHQ7YmVhbjpzdHJ1dHMmZ3Q7PC9jb2RlPiwgaXMgYXZhaWxhYmxlCisgICAgICB0byBleHBvc2UgaW50ZXJuYWwgU3RydXRzIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyAoZm9ybSBiZWFuLCBmb3J3YXJkLAorICAgICAgYW5kIG1hcHBpbmcgZGVmaW5pdGlvbnMpIGFzIHNjcmlwdGluZyB2YXJpYWJsZXMgYW5kIHBhZ2Utc2NvcGUgYmVhbnMuCisgICAgICBGb3IgZXhhbXBsZSwgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBzZXF1ZW5jZSB0byByZW5kZXIgdGhlIGFjdHVhbAorICAgICAgY29udGV4dC1yZWxhdGl2ZSBwYXRoIG9mIGFuIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IG9iamVjdDoKKyAgICAgIDxwcmU+CisgICAgICAmbHQ7YmVhbjpzdHJ1dHMgaWQ9ImxpbmsiIGZvcndhcmQ9InN1Y2Nlc3MiLyZndDsKKyAgICAgICZsdDtiZWFuOndyaXRlIG5hbWU9ImxpbmsiIHByb3BlcnR5PSJwYXRoIi8mZ3Q7CisgICAgICA8L3ByZT48L2xpPgorICA8bGk+QWxsIG9mIHRoZSB0YWdzIGluIHRoaXMgbGlicmFyeSB0aGF0IGFjY2VwdCBhIDxjb2RlPm5hbWU8L2NvZGU+CisgICAgICBhdHRyaWJ1dGUgcmVmZXJyaW5nIHRvIGEgSlNQIGJlYW4gbm93IGFsc28gYWNjZXB0IGFuIG9wdGlvbmFsCisgICAgICA8Y29kZT5zY29wZTwvY29kZT4gYXR0cmlidXRlIHRvIGRlZmluZSB0aGUgc2NvcGUgaW4gd2hpY2ggdG8gc2VhcmNoCisgICAgICBmb3IgdGhhdCBiZWFuLiAgSWYgbm90IHNwZWNpZmllZCwgYWxsIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9saT4KKyAgPGxpPlRoZSA8Y29kZT4mbHQ7YmVhbjpzaXplJmd0OzwvY29kZT4gdGFnIHdpbGwgY3JlYXRlIGEgYmVhbiB0aGF0IHN0b3JlcworICAgICAgdGhlIG51bWJlciBvZiBlbGVtZW50cyBvZiBhbiBhcnJheSwgQ29sbGVjdGlvbiwgb3IgTWFwLjwvbGk+CisgIDwvdWw+CisKKyAgPHA+VGhlIDxlbT5zdHJ1dHMtaHRtbDwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSBoYXMgYmVlbiBjcmVhdGVkIChwYWNrYWdlCisgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPiksIGJhc2VkIG9uIHRoZSBvbGQgdGFncyB0aGF0CisgIHdlcmUgcmVsYXRlZCB0byBIVE1MIGZvcm0gcHJlc2VudGF0aW9uLiAgVGhlIGZvbGxvd2luZyBkaWZmZXJlbmNlcyBmcm9tCisgIHRoZSBvbGQgdGFncyBhcmUgbm90YWJsZTo8L3A+CisgIDx1bD4KKyAgPGxpPllvdSBtdXN0IG5vdyByZWZlcmVuY2UgdGhlICJzdHJ1dHMtaHRtbC50bGQiIFRMRCB0byBhY2Nlc3MgdGhlc2UKKyAgICAgIHRhZ3MuPC9saT4KKyAgPGxpPkFsbCBhdHRyaWJ1dGUgbmFtZXMgbWF0Y2hpbmcgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVycyBhcmUgbm93IGFsbAorICAgICAgbG93ZXIgY2FzZSAob25DbGljayAtLSZndDsgb25jbGljaykgdG8gY29uZm9ybSB0byBYSFRNTC48L2xpPgorICA8bGk+VGhlIDxjb2RlPm9wdGlvbnMxPC9jb2RlPiB0YWcgaGFzIGJlZW4gZWxpbWluYXRlZCBzaW5jZSBTdHJ1dHMgaXMgbm93CisgICAgICBiYXNlZCBvbiBKYXZhMi48L2xpPgorICA8bGk+QWxsIHRhZyBpbXBsZW1lbnRhdGlvbiBjbGFzc2VzIGhhdmUgaGFkIHRoZWlyIDxjb2RlPmZpbmFsPC9jb2RlPgorICAgICAgbW9kaWZpZXJzIHJlbW92ZWQsIGFuZCA8Y29kZT5wcml2YXRlPC9jb2RlPiBpbnN0YW5jZSB2YXJpYWJsZXMKKyAgICAgIGNoYW5nZWQgdG8gPGNvZGU+cHJvdGVjdGVkPC9jb2RlPi4gIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gZWFzaWx5CisgICAgICBzdWJjbGFzcyB0aGVzZSB0YWdzIHRvIHByb3ZpZGUgc3BlY2lhbGl6ZWQgZnVuY3Rpb25hbGl0eS48L2xpPgorICA8bGk+VGhlIDxjb2RlPiZsdDtodG1sOmxpbmsmZ3Q7PC9jb2RlPiB0YWcgaGFzIGJlZW4gZW5oYW5jZWQgdG8gc3VwcG9ydAorICAgICAgYSBuZXcgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIHRoYXQgYWxsb3dzIHlvdSB0byB1c2UKKyAgICAgIGNvbnRleHQtcmVsYXRpdmUgVVJJcyBpbiBhIHBvcnRhYmxlIG1hbm5lci48L2xpPgorICA8bGk+QSBuZXcgPGNvZGU+Jmx0O2h0bWw6aHRtbCZndDs8L2NvZGU+IHRhZyBoYXMgYmVlbiBjcmVhdGVkIHRoYXQKKyAgICAgIHJlbmRlcnMgYW4gSFRNTCA8Y29kZT4mbHQ7aHRtbCZndDs8L2NvZGU+IGVsZW1lbnQgd2l0aCBhcHByb3ByaWF0ZQorICAgICAgPGNvZGU+bGFuZzwvY29kZT4gYW5kIDxjb2RlPnhtbDpsYW5nPC9jb2RlPiBhdHRyaWJ1dGVzLCBiYXNlZCBvbiB0aGUKKyAgICAgIGxvY2FsZSBzdG9yZWQgZm9yIHRoZSB1c2VyJ3Mgc2Vzc2lvbiAoaWYgdGhlcmUgaXMgb25lKS48L2xpPgorICA8bGk+QSBuZXcgPGNvZGU+Jmx0O3Jld3JpdGUmZ3Q7PC9jb2RlPiB0YWcgaGFzIGJlZW4gY3JlYXRlZCB0aGF0CisgICAgICByZW5kZXJzIGEgcmVxdWVzdCBVUkksIHBvc3NpYmx5IGVuY29kZWQgd2l0aCBhIHNlc3Npb24gaWRlbnRpZmllciwKKyAgICAgIGJhc2VkIG9uIGV4YWN0bHkgdGhlIHNhbWUgcnVsZXMgdXNlZCBieSB0aGUgPGNvZGU+Jmx0O2xpbmsmZ3Q7PC9jb2RlPgorICAgICAgdGFnIHRoYXQgZ2VuZXJhdGVzIGh5cGVybGlua3MuICBUaGVzZSBjb25zdGFudHMgY2FuIGJlIHVzZWZ1bCB3aGVuCisgICAgICB5b3UgYXJlIGNyZWF0aW5nIEphdmFTY3JpcHQgY29kZSB0aGF0IG5lZWRzIHRvIGJlIGF3YXJlIG9mIFN0cnV0cworICAgICAgYWRkcmVzc2luZyBjb25jZXB0cy48L2xpPgorICA8bGk+VGhlIDxjb2RlPm9wdGlvbnM8L2NvZGU+IHRhZyBub3cgc3VwcG9ydHMgYSBuZXcgPGNvZGU+Y29sbGVjdGlvbjwvY29kZT4gYXR0cmlidXRlLAorICAgICAgd2hpY2ggY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIGNvbGxlY3Rpb24gd2hvc2UgYmVhbnMgaGF2ZSBwcm9wZXJ0aWVzCisgICAgICB0aGF0IHJldHVybiB0aGUgdmFsdWUgKHRvIGJlIHJldHVybmVkIHRvIHRoZSBzZXJ2ZXIpIGFuZCB0aGUgbGFiZWwgKHRvCisgICAgICBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIpIGZyb20gYSBzaW5nbGUgY29sbGVjdGlvbi4gIFRoZSBwcmV2aW91cworICAgICAgc3VwcG9ydCBmb3IgcHJvY2Vzc2luZyBwYXJhbGxlbCBjb2xsZWN0aW9ucyBpcyBzdGlsbCBhdmFpbGFibGUuPC9saT4KKyAgPGxpPlRoZSA8Y29kZT5mb3JtPC9jb2RlPiB0YWcgaGFzIGJlZW4gZW5oYW5jZWQgdG8gbG9vayB1cCB0aGUgbmFtZSBvZiB0aGUKKyAgICAgIGZvcm0gYmVhbiwgaXQncyBKYXZhIGNsYXNzLCBhbmQgdGhlIHNjb3BlIGluIHdoaWNoIHRoZSBiZWFuIHNob3VsZCBiZQorICAgICAgY3JlYXRlZCBvciBhY2Nlc3NlZCwgZnJvbSB0aGUgY29ycmVzcG9uZGluZyBhY3Rpb24gbWFwcGluZyBlbnRyeSBpbiB0aGUKKyAgICAgICJzdHJ1dHMtY29uZmlnLnhtbCIgZmlsZSwgaWYgdGhlIDxjb2RlPm5hbWU8L2NvZGU+LCA8Y29kZT5zY29wZTwvY29kZT4sCisgICAgICBhbmQgPGNvZGU+dHlwZTwvY29kZT4gYXR0cmlidXRlcyBhcmUgbm90IHNwZWNpZmllZC4gIFRoaXMgcmVtb3ZlcyB0aGUKKyAgICAgIG5lZWQgdG8gbWFrZSBjaGFuZ2VzIGluIHR3byBwbGFjZXMgd2hlbiB0aGVzZSB2YWx1ZXMgYXJlIGNoYW5nZWQuPC9saT4KKyAgPGxpPkEgbmV3IDxjb2RlPiZsdDtpbWFnZSZndDs8L2NvZGU+IHRhZyBoYXMgYmVlbiBhZGRlZCwgdG8gY3JlYXRlCisgICAgICBIVE1MIGlucHV0IHRhZ3Mgb2YgdHlwZSAiaW1hZ2UiLjwvbGk+Cis8bGk+VGhlIDxjb2RlPmZvcm08L2NvZGU+IHRhZyBoYXMgYmVlbiBlbmhhbmNlZCB0byByZWFkIGl0cyBjb25maWd1cmF0aW9uIGZyb20gCisgICAgICBhIGNvcnJlc3BvbmRpbmcgYWN0aW9uIG1hcHBpbmcgZW50cnkgaW4gdGhlICJzdHJ1dHMtY29uZmlnLnhtbCIgZmlsZSwgCisgICAgICBpZiB0aGUgPGNvZGU+bmFtZTwvY29kZT4sIDxjb2RlPnNjb3BlPC9jb2RlPiwgYW5kIDxjb2RlPnR5cGU8L2NvZGU+IAorICAgICAgYXR0cmlidXRlcyBhcmUgbm90IHNwZWNpZmllZC4gSXQgY2FuIGxvb2sgdXAgdGhlIG5hbWUgb2YgdGhlCisgICAgICBmb3JtIGJlYW4sIGl0cyBKYXZhIGNsYXNzLCB0aGUgc2NvcGUgaW4gd2hpY2ggdGhlIGJlYW4gc2hvdWxkIGJlCisgICAgICBjcmVhdGVkIG9yIGFjY2Vzc2VkLCBwbHVzIHRoZSBwYXRoIHRvIHdoaWNoIHRoZSBmb3JtIHNob3VsZCBiZQorICAgICAgc3VibWl0dGVkLiBUaGlzIHJlbW92ZXMgdGhlIG5lZWQgdG8gbWFrZSBjaGFuZ2VzIGluIHR3byBwbGFjZXMgd2hlbiB0aGVzZSAKKyAgICAgIHZhbHVlcyBhcmUgY2hhbmdlZC4gSXQgd29ya3MgZm9yIGNhc2VzIHdoZXJlIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaXMgCisgICAgICBleHRlbnNpb24gbWFwcGVkIG9yIHBhdGggbWFwcGVkLjwvbGk+CisgIDxsaT5UaGUgPGNvZGU+Jmx0O2h0bWw6aW1nJmd0OzwvY29kZT4gdGFnIGhhcyBiZWVuIGFkZGVkLCB0byByZW5kZXIgYW4gSFRNTAorICAgICAgPGNvZGU+Jmx0O2ltZyZndDs8L2NvZGU+IHRhZy48L2xpPgorICA8L3VsPgorCisgIDxwPkEgbmV3IHBhY2thZ2Ugb2YgQWN0aW9ucyBhbmQgYXNzb2NpYXRlZCBjbGFzc2VzIGZvciBoYW5kbGluZyBmaWxlIHVwbG9hZHMKKyAgaGFzIGJlZW4gY3JlYXRlZCAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L2NvZGU+KTo8L3A+CisgIDx1bD4KKyAgPGxpPlRoZSBiYXNpYyBwYWNrYWdlIG9mIGZpbGUgdXBsb2FkIGhhbmRsaW5nIGFjdGlvbnMgaGFzIGJlZW4gY3JlYXRlZC48L2xpPgorICA8bGk+QW4gZXhhbXBsZSBhcHBsaWNhdGlvbiBpbGx1c3RyYXRpbmcgdGhlIHVzZSBvZiB0aGUgbmV3IGZlYXR1cmVzCisgICAgICBoYXMgYmVlbiBhZGRlZCAoPGNvZGU+d2ViYXBwcy9zdHJ1dHMtdXBsb2FkLndhcjwvY29kZT4pLjwvbGk+CisgIDwvdWw+CisKKyAgPHA+VGhlIGZvbGxvd2luZyBtYWpvciBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSB1dGlsaXR5IGNsYXNzZXMKKyAgbGlicmFyeSAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9jb2RlPik6PC9wPgorICA8dWw+CisgIDxsaT5Jbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIGEgSkRCQyBkYXRhIHNvdXJjZSB0aGF0IGltcGxlbWVudHMgdGhlCisgICAgICA8Y29kZT5qYXZheC5zcWwuRGF0YVNvdXJjZTwvY29kZT4gaW50ZXJmYWNlIGZyb20gdGhlIEpEQkMgMi4wIFN0YW5kYXJkCisgICAgICBFeHRlbnNpb25zIEFQSS4gIFRoaXMgaW1wbGVtZW50YXRpb24gbWF5IGJlIGNvbmZpZ3VyZWQgYmFzZWQgb24gbmV3CisgICAgICBleHRlbnNpb25zIHRvIHRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlIERURCwgYW5kIHRoZSBjb25maWd1cmVkCisgICAgICBkYXRhIHNvdXJjZXMgLyBjb25uZWN0aW9uIHBvb2xzIGFyZSBtYWRlIGF2YWlsYWJsZSB0byBhcHBsaWNhdGlvbgorICAgICAgY29tcG9uZW50cyBhcyBhIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUgKGkuZS4gYW4gYXBwbGljYXRpb24gc2NvcGUKKyAgICAgIGJlYW4pLjwvbGk+CisgIDxsaT5UaGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24gb2YgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4sIHdoaWNoIHdhcworICAgICAgdWx0aW1hdGVseSBiYXNlZCBvbiA8Y29kZT5qYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU8L2NvZGU+LCBoYXMgYmVlbgorICAgICAgY29tcGxldGVseSByZXBsYWNlZCBhbmQgcmUtaW1wbGVtZW50ZWQuICBUaGUgcHJpbWFyeSBmZWF0dXJlcyBvZiB0aGUKKyAgICAgIG5ldyBpbXBsZW1lbnRhdGlvbiBhcmU6CisgICAgICA8dWw+CisgICAgICA8bGk+QWxsIGNvbXBvbmVudHMgc3RvcmVkIGFzIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIG5vdyBpbXBsZW1lbnQKKyAgICAgICAgICB0aGUgPGNvZGU+amF2YS5pby5TZXJpYWxpemFibGU8L2NvZGU+IGludGVyZmFjZSwgdG8gYmV0dGVyIGludGVncmF0ZQorICAgICAgICAgIHdpdGggYXBwbGljYXRpb24gc2VydmVycyB0aGF0IHByZWZlciB0aGlzLjwvbGk+CisgICAgICA8bGk+VGhlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGFuZCA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4KKyAgICAgICAgICBjbGFzc2VzIGhhdmUgYmVlbiBhYnN0cmFjdGVkIHNvIHRoYXQgeW91IGNhbiBlYXNpbHkgY3JlYXRlIHlvdXIKKyAgICAgICAgICBvd24gaW1wbGVtZW50YXRpb25zIHRoYXQgZGVyaXZlIHRoZWlyIG1lc3NhZ2Ugc3RyaW5ncyBmcm9tIHJlc291cmNlcworICAgICAgICAgIG90aGVyIHRoYW4gcHJvcGVydHkgZmlsZXMuPC9saT4KKyAgICAgIDwvdWw+PC9saT4KKyAgPGxpPlByb3BlcnR5IGdldHMgYW5kIHNldHMgbWFkZSB0aHJvdWdoIDxjb2RlPlByb3BlcnR5VXRpbHM8L2NvZGU+IGNhbiBub3cKKyAgICAgIHVzZSBhIG5ldyBzeW50YXggZm9yIGluZGV4ZWQgYW5kIG5lc3RlZCBwcm9wZXJ0aWVzLjwvbGk+CisgIDxsaT5Db252ZXJzaW9uIHRvIGFuZCBmcm9tIG51bWVyaWMgdHlwZXMgbm93IHN1cHBvcnQgYSBjb25maWd1cmFibGUgZGVmYXVsdAorICAgICAgdmFsdWUgdG8gdXNlIHdoZW4gY29udmVyc2lvbiBmYWlscy48L2xpPgorICA8L3VsPgorCisgIDxwPlRoZSBmb2xsb3dpbmcgbWFqb3IgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUKKyAgPGVtPlN0cnV0cyBFeGFtcGxlIEFwcGxpY2F0aW9uPC9lbT46PC9wPgorICA8dWw+CisgIDxsaT5UaGUgZm9ybSBiZWFucyB1c2VkIGluIHRoZSBleGFtcGxlIGFwcGxpY2F0aW9uIG5vdyB1c2UgcmVxdWVzdCBzY29wZQorICAgICAgcmF0aGVyIHRoYW4gc2Vzc2lvbiBzY29wZS4gIFRoaXMgaXMgdGhlIHByZWZlcnJlZCBhcHByb2FjaCBmb3Igc2luZ2xlCisgICAgICBwYWdlIGZvcm1zIHRoYXQgY29udGFpbiA8ZW0+YWxsPC9lbT4gb2YgeW91ciByZWxldmFudCBwcm9wZXJ0aWVzLAorICAgICAgYmVjYXVzZSB0aGVyZSBpcyBubyBuZWVkIHRvIG1haW50YWluIHN1Y2ggZm9ybSBiZWFucyBhY3Jvc3MgcmVxdWVzdHMuCisgICAgICBOb3RlIHRoYXQgdGhlIGFjdGlvbiBjbGFzc2VzIGhhdmUgYmVlbiBjb2RlZCBzbyB0aGF0IHRoZXkgd29yayB3aXRoCisgICAgICBlaXRoZXIgcmVxdWVzdCBzY29wZSBvciBzZXNzaW9uIHNjb3BlIGJlYW5zLjwvbGk+CisgIDxsaT5UaGUgU3RydXRzIEV4YW1wbGUgQXBwbGljYXRpb24gaGFzIGJlZW4gdXBkYXRlZCB0byB1dGlsaXplIHRoZSBuZXcKKyAgICAgIChzZXBhcmF0ZWQpIGN1c3RvbSB0YWcgbGlicmFyaWVzLCByYXRoZXIgdGhhbiB0aGUgb2xkIGNvbWJpbmVkIG9uZSwKKyAgICAgIGFzIHdlbGwgYXMgdGhlIGxhdGVzdCBmZWF0dXJlcyBvZiB0aGUgdGFncyBiZWluZyB1c2VkLjwvbGk+CisgIDxsaT5BICJXYWxraW5nIFRvdXIgb2YgdGhlIFN0cnV0cyBFeGFtcGxlIEFwcGxpY2F0aW9uIiBoYXMgYmVlbiBhZGRlZCwgdG8KKyAgICAgIGhpZ2hsaWdodCBmZWF0dXJlcyBmb3IgbmV3Y29tZXJzIHRvIFN0cnV0cy48L2xpPgorICA8L3VsPgorCisgIDxwPlRoZSBmb2xsb3dpbmcgbWFqb3IgbmV3IGRvY3VtZW50YXRpb24gdXBkYXRlcyBoYXZlIGJlZW4gYWRkZWQgdG8KKyAgU3RydXRzOjwvcD4KKyAgPHVsPgorICA8bGk+QWxsIGRvY3VtZW50YXRpb24gaXMgZ2VuZXJhdGVkIGZyb20gWE1MIGlucHV0IGZpbGVzLCB1c2luZyBhIHN0YW5kYXJkCisgICAgICBzdHlsZXNoZWV0IHRvIGNyZWF0ZSBhIGNvbW1vbiBsb29rIGFuZCBmZWVsLjwvbGk+CisgIDxsaT5EZXZlbG9wZXIgR3VpZGVzIGZvciB0aGUgSmF2YSBjbGFzc2VzIGluIHRoZQorICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXI8L2NvZGU+IGFuZAorICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvY29kZT4gcGFja2FnZXMuPC9saT4KKyAgPGxpPkRldmVsb3BlciBHdWlkZXMgZm9yIHRoZSBmb2xsb3dpbmcgU3RydXRzIGN1c3RvbSB0YWcgbGlicmFyaWVzIGhhdmUKKyAgICAgIGJlZW4gYWRkZWQ6ICA8Y29kZT5zdHJ1dHMtYmVhbjwvY29kZT4sIDxjb2RlPnN0cnV0cy1odG1sPC9jb2RlPiwKKyAgICAgIDxjb2RlPnN0cnV0cy1sb2dpYzwvY29kZT4sIGFuZCA8Y29kZT5zdHJ1dHMtdGVtcGxhdGU8L2NvZGU+LjwvbGk+CisgIDxsaT5UaGUgU3RydXRzIFVzZXJzIEd1aWRlIGhhcyBiZWVuIGJyb3VnaHQgdXAgdG8gZGF0ZSB3aXRoIHJlc3BlY3QgdG8KKyAgICAgIGFsbCBvZiB0aGUgY2hhbmdlcyBzaW5jZSBTdHJ1dHMgMC41LCBhbmQgc2VwYXJhdGVkIGludG8gbXVsdGlwbGUKKyAgICAgIEhUTUwgcGFnZXMgZm9yIGVhc3kgcmVhZGluZy48L2xpPgorICA8bGk+SW5zdGFsbGF0aW9uIGluZm9ybWF0aW9uIGhhcyBiZWVuIHVwZGF0ZWQgdG8gaW5jbHVkZSBwbGF0Zm9ybS1zcGVjaWZpYworICAgICAgbm90ZXMsIGlzc3VlcywgYW5kIHdvcmthcm91bmRzLjwvbGk+CisgIDxsaT5BIG5ldyByZXNvdXJjZXMgcGFnZSBub3cgcG9pbnRzIGF0IGV4dGVybmFsIGluZm9ybWF0aW9uIGFuZCByZXNvdXJjZXMKKyAgICAgIHJlbGF0ZWQgdG8gU3RydXRzLjwvbGk+CisgIDxsaT5BIG5ldyBleGFtcGxlIGFwcGxpY2F0aW9uLCA8Y29kZT5zdHJ1dHMtYmxhbms8L2NvZGU+LCBpcyBpbmNsdWRlZCBhcyBhCisgICAgICBxdWljayBzdGFydGluZyBwb2ludCBmb3IgbmV3IGFwcGxpY2F0aW9uIGRldmVsb3BtZW50LjwvbGk+CisgIDwvdWw+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iQ2hhbmdlcyBhbmQgQnVnIEZpeGVzIiBocmVmPSJDaGFuZ2VzIj4KKworICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgY29udHJvbGxlciBzZXJ2bGV0IGFuZAorICBhc3NvY2lhdGVkIGNsYXNzZXMgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9jb2RlPikgaGF2ZQorICBvY2N1cnJlZDo8L3A+CisgIDx1bD4KKyAgPGxpPlRoZSA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPiBpbnRlcmZhY2UgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgYmFzZQorICAgICAgY2xhc3MgaW5zdGVhZCwgdG8gcmVkdWNlIHRoZSBpbXBhY3Qgb2YgZnV0dXJlIGVuaGFuY2VtZW50cy4gIEFueW9uZSB3aG8KKyAgICAgIGhhcyBleHRlbmRlZCB0aGUgPGNvZGU+QWN0aW9uTWFwcGluZ0Jhc2U8L2NvZGU+IGNvbnZlbmllbmNlIGJhc2UgY2xhc3MKKyAgICAgICh3aGljaCBoYXMgYmVlbiBkZXByZWNhdGVkKSBzaG91bGQgZXh0ZW5kIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+CisgICAgICBpbnN0ZWFkLjwvbGk+CisgIDxsaT5JbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBuZXcgY29uZmlndXJhdGlvbiBmaWxlIGZvcm1hdCBtZW50aW9uZWQgYWJvdmUsCisgICAgICB0aGUgcHJvcGVydGllcyBvZiA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPiBoYXZlIGJlZW4gc3Vic3RhbnRpYWxseQorICAgICAgdXBkYXRlZC4gIFNlZSB0aGUKKyAgICAgIDxhIGhyZWY9Ii4uLy4uL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BUEkKKyAgICAgIERvY3VtZW50YXRpb248L2E+IGZvciBtb3JlIGluZm9ybWF0aW9uPC9saT4KKyAgPGxpPlRoZSA8Y29kZT5BY3Rpb248L2NvZGU+IGludGVyZmFjZSBoYXMgYmVlbiBjb252ZXJ0ZWQgdG8gYSBiYXNlIGNsYXNzCisgICAgICBpbnN0ZWFkLCB0byByZWR1Y2UgdGhlIGltcGFjdCBvZiBmdXR1cmUgZW5oYW5jZW1lbnRzLiAgQW55b25lIHdobyBoYXMKKyAgICAgIGV4dGVuZGVkIHRoZSA8Y29kZT5BY3Rpb25CYXNlPC9jb2RlPiBjb252ZW5pZW5jZSBiYXNlIGNsYXNzICh3aGljaAorICAgICAgaGFzIGJlZW4gZGVwcmVjYXRlZCkgc2hvdWxkIGV4dGVuZCA8Y29kZT5BY3Rpb248L2NvZGU+IGluc3RlYWQuPC9saT4KKyAgPGxpPkluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGFib3ZlIGNoYW5nZSwgdGhlIDxjb2RlPnNlcnZsZXQ8L2NvZGU+CisgICAgICBhcmd1bWVudCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHBhcmFtZXRlciBsaXN0IGZvciB0aGUKKyAgICAgIDxjb2RlPnBlcmZvcm0oKTwvY29kZT4gbWV0aG9kLCBiZWNhdXNlIGl0IGlzIG5vdyByZWR1bmRhbnQgLS0gdGhlCisgICAgICBhc3NvY2lhdGVkIHNlcnZsZXQgaXMgc2V0IHZpYSB0aGUgPGNvZGU+c2V0U2VydmxldCgpPC9jb2RlPiBtZXRob2QKKyAgICAgIHdoZW4gdGhlIDxjb2RlPkFjdGlvbjwvY29kZT4gaW5zdGFuY2UgaXMgZmlyc3QgY3JlYXRlZC48L2xpPgorICA8bGk+UmVzcG9uc2liaWxpdHkgZm9yIGNyZWF0aW5nIDxjb2RlPkFjdGlvbjwvY29kZT4gaW5zdGFuY2VzIGhhcyBiZWVuIG1vdmVkCisgICAgICBmcm9tIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IHRvIHRoZSBjb250cm9sbGVyIHNlcnZsZXQsIHNvIHRoYXQKKyAgICAgIGluc3RhbmNlIGxpZmVjeWNsZSBtYW5hZ2VtZW50IGNhbiBiZSBwZXJmb3JtZWQuICBBcyBhIHNpZGUgZWZmZWN0IG9mIHRoaXMKKyAgICAgIGNoYW5nZSwgaWYgeW91IGhhZCB0d28gYWN0aW9ucyB0aGF0IHVzZWQgdGhlIHNhbWUgQWN0aW9uIGNsYXNzIG5hbWUsCisgICAgICB0aGVyZSB3aWxsIG5vdyBiZSBvbmx5IG9uZSAoc2hhcmVkKSBpbnN0YW5jZSBvZiB0aGUgQWN0aW9uIGNsYXNzLAorICAgICAgcmF0aGVyIHRoYW4gdHdvLjwvbGk+CisgIDxsaT5OZXcgPGNvZGU+bG9nKFN0cmluZywgaW50KTwvY29kZT4gbWV0aG9kIHRoYXQgbG9ncyB0aGUgYXNzb2NpYXRlZCBtZXNzYWdlCisgICAgICBvbmx5IGlmIHlvdSBoYXZlIGNvbmZpZ3VyZWQgdGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgZm9yIHRoZSBzZXJ2bGV0IHRvCisgICAgICBhbiBlcXVhbCBvciBoaWdoZXIgdmFsdWUuPC9saT4KKyAgPGxpPkluIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCB0aGUgZnVuY3Rpb25hbGl0eSB0byBwb3B1bGF0ZSBmb3JtIGJlYW4KKyAgICAgIHBhcmFtZXRlcnMgZnJvbSBhIHJlcXVlc3QsIGFuZCB0aGUgZnVuY3Rpb25hbGl0eSB0byB2YWxpZGF0ZSB0aGUgZm9ybQorICAgICAgYmVhbidzIGNvbnRlbnRzLCBoYXMgYmVlbiBzZXBhcmF0ZWQgaW50byB0d28gbWV0aG9kcyB0aGF0IGNhbiBiZQorICAgICAgb3ZlcnJpZGRlbiBpbmRpdmlkdWFsbHkgaWYgcmVxdWlyZWQuPC9saT4KKyAgPGxpPlRoZSA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiBmdW5jdGlvbmFsaXR5IHRvIGNhbGwgdGhlCisgICAgICA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2Qgb2YgYSBmb3JtIGJlYW4gaXMgc2tpcHBlZCBpZiB0aGUgdXNlcgorICAgICAgcHJlc3NlZCB0aGUgQ2FuY2VsIGtleSAoaS5lLiB0aGUgc3VibWl0IGJ1dHRvbiBjcmVhdGVkIGJ5IHRoZQorICAgICAgPGNvZGU+Jmx0O2h0bWw6Y2FuY2VsJmd0OzwvY29kZT4gY3VzdG9tIHRhZyksIG9yIGlmIHRoZSBzZWxlY3RlZAorICAgICAgbWFwcGluZyBkb2VzIG5vdCBkZWZpbmUgYW4gaW5wdXQgZm9ybSB0byByZXR1cm4gY29udHJvbCB0by48L2xpPgorICA8bGk+VGhlIGNvbnRyb2xsZXIgc2VydmxldCBtYXkgbm93IGJlIHVzZWQgYXMgdGhlIHRhcmdldCBvZiBhCisgICAgICA8Y29kZT5SZXF1ZXN0RGlzcGF0Y2hlci5pbmNsdWRlKCk8L2NvZGU+IG9yCisgICAgICA8Y29kZT4mbHQ7anNwOmluY2x1ZGUvJmd0OzwvY29kZT4gY2FsbC4gIFByZXZpb3VzbHksIGl0IHdvdWxkIG1pc3Rha2VubHkKKyAgICAgIHVzZSB0aGUgb3JpZ2luYWwgcmVxdWVzdCBVUkksIHJhdGhlciB0aGFuIHRoZSBpbmNsdWRlZCBwYXRoLCB0byBjYWxjdWxhdGUKKyAgICAgIHdoaWNoIGFjdGlvbiBjbGFzcyB0byBleGVjdXRlLjwvbGk+CisgIDxsaT5UaGUgPGNvZGU+QWN0aW9uTWFwcGluZ3MuZ2V0VW5rbm93bigpPC9jb2RlPiBtZXRob2Qgbm93IHRha2VzIHRoZSBjdXJyZW50CisgICAgICByZXF1ZXN0IGFzIGFuIHBhcmFtZXRlciwgc28gdGhhdCBjb250ZXh0LXNlbnNpdGl2ZSBkZWNpc2lvbnMgY2FuIGJlCisgICAgICBtYWRlLjwvbGk+CisgIDxsaT5XaGVuIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgcHJvY2Vzc2VzIGFuIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRoYXQKKyAgICAgIGhhcyB0aGUgPGNvZGU+cmVkaXJlY3Q8L2NvZGU+IHByb3BlcnR5IHNldCwgaXQgbm93IHBlcmZvcm1zIFVSTCByZXdyaXRpbmcKKyAgICAgIHRvIG1haW50YWluIHNlc3Npb24gc3RhdGUgZXZlbiBpZiBjb29raWVzIGFyZSBub3QgYmVpbmcgdXNlZC48L2xpPgorICA8bGk+VGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gY2xhc3Mgbm93IGluY2x1ZGVzIGEgbWV0aG9kIHRoYXQgd2lsbAorICAgICAgcmV0dXJuIGFuIEl0ZXJhdG9yIG92ZXIgdGhlIGVycm9yIG1lc3NhZ2VzIHJlbGF0ZWQgdG8gYSBwYXJ0aWN1bGFyCisgICAgICBpbnB1dCBmaWVsZC48L2xpPgorICA8L3VsPgorCisgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBEaWdlc3RlciBtb2R1bGUKKyAgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXI8L2NvZGU+KSBoYXZlIG9jY3VycmVkOjwvcD4KKyAgPHVsPgorICA8bGk+VGhlIDxjb2RlPkRpZ2VzdGVyLnJlc29sdmVFbnRpdHkoKTwvY29kZT4gbWV0aG9kIGhhcyBiZWVuIGVuaGFuY2VkCisgICAgICB0byBjb3JyZWN0bHkgaGFuZGxlIGxvY2FsIFVSSXMgc28gdGhhdCBpdCB3b3JrcyB3aXRoIHJlc291cmNlcyBsb2FkZWQgdmlhCisgICAgICA8Y29kZT5DbGFzcy5nZXRSZXNvdXJjZSgpPC9jb2RlPi48L2xpPgorICA8bGk+VGhlIGlucHV0IHNvdXJjZSBoYW5kZWQgdG8gdGhlIERpZ2VzdGVyIGlzIG5vdyBjbG9zZWQsIGV2ZW4gaWYgYQorICAgICAgcGFyc2luZyBleGNlcHRpb24gaXMgdGhyb3cuPC9saT4KKyAgPC91bD4KKworICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgPGVtPnN0cnV0cy1iZWFuPC9lbT4gY3VzdG9tCisgIHRhZyBsaWJyYXJ5IChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9jb2RlPikgaGF2ZQorICBvY2N1cnJlZDo8L3A+CisgIDx1bD4KKyAgPGxpPkJ5IGRlZmF1bHQsIHRoZSA8Y29kZT4mbHQ7YmVhbjp3cml0ZSZndDs8L2NvZGU+IHRhZyB3aWxsIGZpbHRlciBvdXRwdXQKKyAgICAgIGZvciBjaGFyYWN0ZXJzIHNlbnNpdGl2ZSB0byBIVE1MLiAgWW91IGNhbiB0dXJuIHRoaXMgb2ZmIGJ5IGFkZGluZyBhCisgICAgICA8Y29kZT5maWx0ZXI9ImZhbHNlIjwvY29kZT4gYXR0cmlidXRlLjwvbGk+CisgIDxsaT5XaGVuIHBlcmZvcm1pbmcgYSA8Y29kZT4mbHQ7YmVhbjppbmNsdWRlJmd0OzwvY29kZT4gaW4gYSBwYWdlIHRoYXQgaXMKKyAgICAgIHBhcnQgb2YgYSBzZXNzaW9uLCBwYXNzIHRoZSBzZXNzaW9uIGlkZW50aWZpZXIgYWxvbmcgb24gdGhlIGdlbmVyYXRlZAorICAgICAgcmVxdWVzdCBzbyB0aGF0IGl0IHdpbGwgYmUgcGFydCBvZiB0aGUgc2FtZSBzZXNzaW9uLjwvbGk+CisgIDxsaT5UaGUgPGNvZGU+Jmx0O2JlYW46ZGVmaW5lJmd0OzwvY29kZT4gdGFnIGNhbiBub3cgY3JlYXRlCisgICAgICBiZWFucyBkaXJlY3RseSBmcm9tIHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gYXR0cmlidXRlLCBpZiBkZXNpcmVkLjwvbGk+CisgIDxsaT5UaGUgPGNvZGU+Jmx0O2JlYW46ZGVmaW5lJmd0OzwvY29kZT4gdGFnIG5vdyBhY2NlcHRzIGFuIG9wdGlvbmFsCisgICAgICA8Y29kZT50b1Njb3BlPC9jb2RlPiBhdHRyaWJ1dGUsIHRvIGRlY2xhcmUgd2hpY2ggc2NvcGUgdGhlIG5ldyBiZWFuCisgICAgICBzaG91bGQgYmUgY3JlYXRlZCBpbi4gIFRoZSBkZWZhdWx0IHJlbWFpbnMgPGNvZGU+cGFnZTwvY29kZT4gc2NvcGUuPC9saT4KKyAgPGxpPkRlZmF1bHQgdmFsdWVzIGNhbiBub3cgYmUgc3BlY2lmaWVkIG9uIDxjb2RlPiZsdDtiZWFuOmNvb2tpZSZndDs8L2NvZGU+LAorICAgICAgPGNvZGU+Jmx0O2JlYW46aGVhZGVyJmd0OzwvY29kZT4sIGFuZAorICAgICAgPGNvZGU+Jmx0O2JlYW46cGFyYW1ldGVyJmd0OzwvY29kZT4gdGFncywgd2hpY2ggYXJlIHVzZWQgd2hlbiB0aGUKKyAgICAgIGNvcnJlc3BvbmRpbmcgdmFsdWUgaXMgbm90IHByZXNlbnQgaW4gdGhlIGN1cnJlbnQgcmVxdWVzdC48L2xpPgorICA8L3VsPgorCisgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSA8ZW0+c3RydXRzLWh0bWw8L2VtPiBjdXN0b20KKyAgdGFnIGxpYnJhcnkgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+KSBoYXZlCisgIG9jY3VycmVkOjwvcD4KKyAgPHVsPgorICA8bGk+PHN0cm9uZz5XQVJOSU5HPC9zdHJvbmc+IC0gV2hlbiB0aGUgU3RydXRzIDAuNSB0YWcgbGlicmFyeSB3YXMgb3JpZ2luYWxseQorICAgICAgc3BsaXQgaW50byBzZXBhcmF0ZSBsaWJyYXJpZXMsIHRoaXMgbGlicmFyeSB3YXMgbmFtZWQKKyAgICAgIDxlbT5zdHJ1dHMtZm9ybTwvZW0+LCB0byByZWZsZWN0IHRoZSBmYWN0IHRoYXQgdGhlIG1ham9yaXR5IG9mIHRhZ3MKKyAgICAgIHJlbGF0ZWQgdG8gY3JlYXRpbmcgaW5wdXQgZm9ybXMuICBJdCBoYXMgYmVlbiByZW5hbWVkIHRvCisgICAgICA8ZW0+c3RydXRzLWh0bWw8L2VtPiB0byByZWZsZWN0IHRoZSBmYWN0IHRoYXQgYWxsIG9mIHRoZSB0YWdzIGluIHRoaXMKKyAgICAgIGxpYnJhcnkgYXJlIHJlbGV2YW50IG9ubHkgd2hlbiBidWlsZGluZyBIVE1MLWJhc2VkIHVzZXIgaW50ZXJmYWNlcy48L2xpPgorICA8bGk+VGhlIDxjb2RlPiZsdDtodG1sOmh0bWwmZ3Q7PC9jb2RlPiB0YWcgbm93IHN1cHBvcnRzIGEKKyAgICAgIDxjb2RlPmxvY2FsZT0idHJ1ZSI8L2NvZGU+IGF0dHJpYnV0ZSB0aGF0IHJlcXVlc3RzIHRoZSBzYW1lIExvY2FsZQorICAgICAgbmVnb3RpYXRpb24gKGJhc2VkIG9uIHRoZSBwcmVzZW5jZSBvZiBhbiA8Y29kZT5BY2NlcHQtTGFuZ3VhZ2U8L2NvZGU+CisgICAgICBoZWFkZXIpIHRoYXQgaXMgcGVyZm9ybWVkIGJ5IHRoZSBjb250cm9sbGVyIHNlcnZsZXQuPC9saT4KKyAgPGxpPlRoZSA8Y29kZT4mbHQ7aHRtbDpsaW5rJmd0OzwvY29kZT4gdGFnIG5vdyBzdXBwb3J0cyB0aGUgYWJpbGl0eSB0byBhZGQKKyAgICAgIGEgc2luZ2xlIHJlcXVlc3QgcGFyYW1ldGVyIChiYXNlZCBvbiBhIGJlYW4gcHJvcGVydHkpIGluIGFkZGl0aW9uIHRvIHRoZQorICAgICAgYWJpbGl0eSB0byBhZGQgcmVxdWVzdCBwYXJhbWV0ZXJzIGZyb20gYSBNYXAuPC9saT4KKyAgPGxpPlRoZSA8Y29kZT4mbHQ7aHRtbDplcnJvcnMmZ3Q7PC9jb2RlPiB0YWcgbGV0cyB5b3Ugc2VsZWN0IG9ubHkgdGhlIGVycm9yCisgICAgICBtZXNzYWdlcyByZWxhdGVkIHRvIGEgcGFydGljdWxhciBpbnB1dCBmaWVsZCwgb3IgYWxsIGVycm9ycy48L2xpPgorICA8bGk+VGhlIDxjb2RlPiZsdDtodG1sOnBhc3N3b3JkJmd0OzwvY29kZT4gdGFnIG5vdyBvcHRpb25hbGx5IHJlZGlzcGxheXMKKyAgICAgIHRoZSBwcmV2aW91cyB2YWx1ZSBvZiB0aGUgaW5wdXQgZmllbGQuPC9saT4KKyAgPGxpPlRoZSB2YWx1ZSByZXR1cm5lZCBieSBhIDxjb2RlPiZsdDtodG1sOm11bHRpYm94Jmd0OzwvY29kZT4gdGFnIGNhbiBub3cKKyAgICAgIGJlIHNwZWNpZmllZCBpbiB0aGUgYm9keSBvZiB0aGUgdGFnLCBhcyB3ZWxsIGFzIHZpYSB0aGUKKyAgICAgIDxjb2RlPnZhbHVlPC9jb2RlPiBhdHRyaWJ1dGUuPC9saT4KKyAgPC91bD4KKworICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgPGVtPnN0cnV0cy1sb2dpYzwvZW0+CisgIGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+KQorICBoYXZlIG9jY3VycmVkOjwvcD4KKyAgPHVsPgorICA8bGk+VGhlIDxjb2RlPiZsdDtsb2dpYzpwcmVzZW50Jmd0OzwvY29kZT4gYW5kCisgICAgICA8Y29kZT4mbHQ7bG9naWM6bm90UHJlc2VudCZndDs8L2NvZGU+IHRhZ3Mgbm93IGFjY2VwdCBhIDxjb2RlPnJvbGU8L2NvZGU+CisgICAgICBhdHRyaWJ1dGUgdGhhdCBhbGxvd3MgeW91IHRvIGRldGVjdCB3aGV0aGVyIHRoZSBjdXJyZW50bHkgYXV0aGVudGljYXRlZAorICAgICAgdXNlciBkb2VzLCBvciBkb2VzIG5vdCwgcG9zc2VzcyBhIHBhcnRpY3VsYXIgc2VjdXJpdHkgcm9sZS48L2xpPgorICA8L3VsPgorCisgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSA8ZW0+c3RydXRzLXRlbXBsYXRlPC9lbT4KKyAgY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvY29kZT4pCisgIGhhdmUgb2NjdXJyZWQ6PC9wPgorICA8dWw+CisgIDxsaT5UaGUgPGNvZGU+Jmx0O3RlbXBsYXRlOnB1dCZndDs8L2NvZGU+IHRhZyBub3cgYWNjZXB0cyBhCisgICAgICA8Y29kZT5kaXJlY3Q8L2NvZGU+IGF0dHJpYnV0ZSB0aGF0IGNhdXNlcyB0aGUgY29udGVudCBiZWluZyBwdXQgdG8gYmUKKyAgICAgIHJlbmRlcmVkIGRpcmVjdGx5LCByYXRoZXIgdGhhbiBiZWluZyBpbmNsdWRlZC48L2xpPgorICA8L3VsPgorCisgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBVdGlsaXRpZXMgcGFja2FnZQorICAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9jb2RlPikgaGF2ZSBvY2N1cnJlZDo8L3A+CisgIDx1bD4KKyAgPGxpPkZpeGVkIDxjb2RlPlByb3BlcnR5VXRpbHMuZ2V0UHJvcGVydHlUeXBlKCk8L2NvZGU+IHRvIGNvcnJlY3RseSByZXR1cm4KKyAgICAgIHRoZSB1bmRlcmx5aW5nIGVsZW1lbnQgdHlwZSBldmVuIGlmIHRoZXJlIHdhcyBhIG5vbi1pbmRleGVkIHByb3BlcnR5CisgICAgICBnZXR0ZXIgbWV0aG9kLjwvbGk+CisgIDxsaT5BZGRlZCBhIG1pc3NpbmcgInJldHVybiIgc3RhdGVtZW50IHRvCisgICAgICA8Y29kZT5Qcm9wZXJ0eVV0aWxzLnNldEluZGV4ZWRQcm9wZXJ0eSgpPC9jb2RlPi48L2xpPgorICA8bGk+RnVuY3Rpb25hbGl0eSBpbiA8Y29kZT5CZWFuVXRpbHM8L2NvZGU+IHRoYXQgcHJldmlvdXNseSBkdXBsaWNhdGVkCisgICAgICBmdW5jdGlvbmFsaXR5IHRoYXQgd2FzIGVhcmxpZXIgbW92ZWQgdG8gPGNvZGU+UHJvcGVydHlVdGlsczwvY29kZT4KKyAgICAgIGhhcyBiZWVuIHJlbW92ZWQuPC9saT4KKyAgPGxpPkZpeGVkIDxjb2RlPlByb3BlcnR5VXRpbHMuY29weVByb3BlcnRpZXMoKTwvY29kZT4gdG8gc2tpcCBjYXNlcyB3aGVyZQorICAgICAgdGhlIG9yaWdpbiBiZWFuIGhhcyBhIGdldHRlciBtZXRob2QgYnV0IHRoZSBkZXN0aW5hdGlvbiBiZWFuIGRvZXMgbm90CisgICAgICBoYXZlIGEgc2V0dGVyIG1ldGhvZC48L2xpPgorICA8bGk+QWRkZWQgPGNvZGU+QmVhblV0aWxzLmNsb25lQmVhbigpPC9jb2RlPiB0byBjcmVhdGUgYSBuZXcgaW5zdGFuY2Ugb2YKKyAgICAgIGFuIGV4aXN0aW5nIGJlYW4sIGFuZCBjb3B5IGFsbCBrbm93biBwcm9wZXJ0aWVzLCBldmVuIGlmIHRoZSBiZWFuIGNsYXNzCisgICAgICBkb2VzIG5vdCBpbXBsZW1lbnQgPGNvZGU+Q2xvbmVhYmxlPC9jb2RlPi48L2xpPgorICA8bGk+VGhlIDxjb2RlPkJlYW5VdGlsczwvY29kZT4gY2xhc3MgaGFzIGJlZW4gcmVmYWN0b3JlZCBzbyB0aGF0IGl0LCBhbmQKKyAgICAgIHRoZSBhc3NvY2lhdGVkIDxjb2RlPkNvbnZlcnRVdGlsczwvY29kZT4gYW5kIDxjb2RlPlByb3BlcnR5VXRpbHM8L2NvZGU+CisgICAgICBjbGFzc2VzLCBjYW4gZWFzaWx5IGJlIHVzZWQgd2l0aG91dCBoYXZpbmcgdG8gaGF2ZSB0aGUgc2VydmxldCBBUEkKKyAgICAgIGNsYXNzZXMgYXZhaWxhYmxlIG9uIHRoZSBjbGFzc3BhdGguPC9saT4KKyAgPGxpPlByb3BlcnR5IGludHJvc3BlY3Rpb24gaXMgbm93IHNtYXJ0ZXIsIHNvIHRoYXQgeW91IGNhbiBhY2Nlc3MgcHVibGljCisgICAgICBtZXRob2RzIGRlY2xhcmVkIGluIGFuIGltcGxlbWVudGVkIGludGVyZmFjZSwgZXZlbiBpZiB0aGUgY2xhc3MgaXRzZWxmCisgICAgICBpcyBub3QgcHVibGljLjwvbGk+CisgIDwvdWw+CisKKyAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgdG8gdGhlIFN0cnV0cyBFeGFtcGxlIEFwcGxpY2F0aW9uCisgIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmV4YW1wbGU8L2NvZGU+IGFuZCB0aGUgY29ycmVzcG9uZGluZyB3ZWIKKyAgY29tcG9uZW50cykgaGF2ZSBvY2N1cnJlZDo8L3A+CisgIDx1bD4KKyAgPGxpPlVzZWQgdGhlIDxjb2RlPnJlc2V0KCk8L2NvZGU+IG1ldGhvZHMgZGVmaW5lZCBieSB0aGUKKyAgICAgIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGludGVyZmFjZSB0byByZXNldCBmb3JtIGJlYW4gcHJvcGVydGllcyB0bworICAgICAgZGVmYXVsdCB2YWx1ZXMuICBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgdG8gbWFrZSBib29sZWFuCisgICAgICBwcm9wZXJ0aWVzIChyZXByZXNlbnRlZCB2aXN1YWxseSBieSBjaGVja2JveGVzKSB3b3JrIGNvcnJlY3RseS48L2xpPgorICA8bGk+RWxpbWluYXRlIHRoZSBzcGVjaWFsLWNhc2UgaGFuZGxpbmcgb2YgbnVsbCBTdHJpbmcgdmFsdWVzIGluIHRoZQorICAgICAgZm9ybSBiZWFucy4gIFN1Y2ggaGFuZGxpbmcgaXMgbm90IG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBjdXN0b20gdGFncworICAgICAgY29ycmVjdGx5IGRlYWwgd2l0aCBudWxsIFN0cmluZyB2YWx1ZXMuPC9saT4KKyAgPGxpPlVzZSB0aGUgPGNvZGU+UHJvcGVydHlVdGlscy5jb3B5UHJvcGVydGllcygpPC9jb2RlPiBtZXRob2QgdG8gaW5pdGlhbGx5CisgICAgICBwb3B1bGF0ZSBmb3JtIGJlYW5zIGZyb20gdW5kZXJseWluZyBkYXRhIG9iamVjdHMsIGFuZCB0byB1cGRhdGUgZGF0ZQorICAgICAgb2JqZWN0cyB3aGVuIGEgdHJhbnNhY3Rpb24gaXMgc3VjY2Vzc2Z1bGx5IGNvbXBsZXRlZC4gIE5vdGUgdGhhdCB1c2luZworICAgICAgdGhpcyBhcHByb2FjaCBkcmFtYXRpY2FsbHkgbGVzc2VucyBhbiBhY3Rpb24gY2xhc3MncyBkZXBlbmRlbmNlIG9uIHRoZQorICAgICAgc3BlY2lmaWMgcHJvcGVydGllcyBvZiB0aGUgZm9ybSBiZWFuIGFuZCBjb3JyZXNwb25kaW5nIGRhdGEgb2JqZWN0CisgICAgICBpbiBtYW55IHVzZSBjYXNlcy48L2xpPgorICA8bGk+QWRkZWQgYW4gPGNvZGU+YXV0b0Nvbm5lY3Q8L2NvZGU+IGJvb2xlYW4gcHJvcGVydHkgdG8gdGhlIFN1YnNjcmlwdGlvbgorICAgICAgZGF0YSBvYmplY3QsIHByaW1hcmlseSB0byBpbGx1c3RyYXRlIHRoYXQgcmVwcmVzZW50aW5nIGEgYm9vbGVhbgorICAgICAgcHJvcGVydHkgd2l0aCBhIGNoZWNrYm94IG5vdyB3b3JrcyBjb3JyZWN0bHkgaWYgeW91IHNldCB0aGUgcHJvcGVydHkKKyAgICAgIHRvIDxjb2RlPmZhbHNlPC9jb2RlPiBpbiB0aGUgPGNvZGU+cmVzZXQoKTwvY29kZT4gbWV0aG9kIG9mIHlvdXIKKyAgICAgIGZvcm0gYmVhbnMuPC9saT4KKyAgPC91bD4KKworICA8L3NlY3Rpb24+CisKKyAgPC9ib2R5PgorCis8L2RvY3VtZW50PgorCmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjAtYjIueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3JlbGVhc2Utbm90ZXMtMS4wLWIyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2Y0ZDc5Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3JlbGVhc2Utbm90ZXMtMS4wLWIyLnhtbApAQCAtMCwwICsxLDMzMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSJyZWxlYXNlLW5vdGVzLTEuMC1iMi5odG1sIj4KKworICA8cHJvcGVydGllcz4KKyAgICA8dGl0bGU+U3RydXRzIFJlbGVhc2UgTm90ZXMgKFZlcnNpb24gMS4wLWJldGEtMik8L3RpdGxlPgorICA8L3Byb3BlcnRpZXM+CisKKyAgPGJvZHk+CisKKyAgPHNlY3Rpb24gbmFtZT0iSW50cm9kdWN0aW9uIiBocmVmPSJJbnRyb2R1Y3Rpb24iPgorCisgICAgPHA+VGhpcyBkb2N1bWVudCBjb250YWlucyB0aGUgcmVsZWFzZSBub3RlcyBmb3IKKyAgICA8c3Ryb25nPlZlcnNpb24gMS4wLWJldGEtMjwvc3Ryb25nPiBvZiB0aGUgU3RydXRzIEZyYW1ld29yaywKKyAgICBhbmQgY292ZXJzIGNoYW5nZXMgdGhhdCBoYXZlIHRha2VuIHBsYWNlIHNpbmNlCisgICAgPGEgaHJlZj0icmVsZWFzZS1ub3Rlcy0xLjAtYjEuaHRtbCI+VmVyc2lvbiAxLjAtYmV0YS0xPC9hPgorICAgIHdhcyByZWxlYXNlZC4gIFRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgY292ZXIKKyAgICA8YSBocmVmPSIjTmV3Ij5OZXcgRmVhdHVyZXM8L2E+IGFuZCA8YSBocmVmPSIjQ2hhbmdlcyI+Q2hhbmdlczwvYT4KKyAgICB0byBTdHJ1dHMuPC9wPgorCisgIDwvc2VjdGlvbj4KKworCisgIDxzZWN0aW9uIG5hbWU9IldoYXQncyBJbmNsdWRlZD8iIGhyZWY9IkluY2x1ZGVkIj4KKworICAgIDxwPlRoZSBiaW5hcnkgZGlzdHJpYnV0aW9uIG9mIHRoaXMgcmVsZWFzZSBpbmNsdWRlcyB0aGUgZm9sbG93aW5nCisgICAgZmlsZXMgcmVsZXZhbnQgdG8gU3RydXRzIDEuMDo8L3A+CisgICAgPHVsPgorICAgIDxsaT48Y29kZT5JTlNUQUxMPC9jb2RlPiAtIEJyaWVmIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMuICBTZWUKKyAgICAgICAgdGhlIDxjb2RlPlN0cnV0cyBEb2N1bWVudGF0aW9uIEFwcGxpY2F0aW9uPC9jb2RlPiwgb3Igb25saW5lIGF0CisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzLyI+aHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvPC9hPgorICAgICAgICBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L2xpPgorICAgIDxsaT48Y29kZT5MSUNFTlNFPC9jb2RlPiAtIFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiBsaWNlbnNlIHRoYXQKKyAgICAgICAgZGVmaW5lcyB0aGUgdGVybXMgdW5kZXIgd2hpY2ggeW91IGNhbiB1c2UgU3RydXRzIChhbmQgb3RoZXIgc29mdHdhcmUKKyAgICAgICAgbGljZW5zZWQgYnkgQXBhY2hlKS48L2xpPgorICAgIDxsaT48Y29kZT5SRUFETUU8L2NvZGU+IC0gQSBicmllZiBpbnRyb2R1Y3Rpb24gdG8gU3RydXRzLjwvbGk+CisgICAgPGxpPjxjb2RlPmxpYi88L2NvZGU+IC0gRGlyZWN0b3J5IGNvbnRhaW5pbmcgZmlsZXMgeW91IHdpbGwgbmVlZCBpbgorICAgICAgICB5b3VyIG93biBhcHBsaWNhdGlvbnMuICBUaGUgaW5kaXZpZHVhbCBmaWxlcyBvZiBpbnRlcmVzdCBhcmU6CisgICAgICAgIDx1bD4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy5qYXI8L2NvZGU+IC0gSkFSIGZpbGUgdGhhdCBjb250YWlucyB0aGUgY29tcGlsZWQKKyAgICAgICAgICAgIEphdmEgY2xhc3NlcyBmb3IgYm90aCB2ZXJzaW9uIDAuNSBhbmQgMS4wIG9mIFN0cnV0cy4gIFlvdSBtdXN0CisgICAgICAgICAgICBwbGFjZSB0aGlzIGZpbGUgaW4gdGhlIDxjb2RlPi9XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5IG9mCisgICAgICAgICAgICB5b3VyIHdlYiBhcHBsaWNhdGlvbi48L2xpPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLXh4eHh4LnRsZDwvY29kZT4gLSBUaGUgdGFnIGxpYnJhcnkgZGVzY3JpcHRvciBmaWxlcworICAgICAgICAgICAgZm9yIHRoZSBTdHJ1dHMgMS4wIHRhZyBsaWJyYXJpZXMgKGJlYW4sIGh0bWwsIGxvZ2ljLCBhbmQKKyAgICAgICAgICAgIHRlbXBsYXRlKS4gIFlvdSBtdXN0IHBsYWNlIHRoZXNlIGZpbGVzIGluIHRoZSA8Y29kZT4vV0VCLUlORjwvY29kZT4KKyAgICAgICAgICAgIGRpcmVjdG9yeSBvZiB5b3VyIHdlYiBhcHBsaWNhdGlvbiwgYW5kIHJlZmVyZW5jZSB0aGVtIHdpdGgKKyAgICAgICAgICAgIGFwcHJvcHJpYXRlIDxjb2RlPiZsdDt0YWdsaWImZ3Q7PC9jb2RlPiBkaXJlY3RpdmVzIGluIHlvdXIKKyAgICAgICAgICAgIHdlYi54bWwgZmlsZS4gIDxzdHJvbmc+Tk9URTwvc3Ryb25nPiAtIFRoZSBzdHJ1dHMtZm9ybS50bGQKKyAgICAgICAgICAgIGZpbGUgaXMgZGVwcmVjYXRlZDsgeW91IHNob3VsZCB1c2UgdGhlIHN0cnV0cy1odG1sLnRsZCBmaWxlCisgICAgICAgICAgICBpbnN0ZWFkLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5qZGJjMl8wLXN0ZGV4dC5qYXI8L2NvZGU+IC0gVGhlIEpEQkMgMi4wIE9wdGlvbmFsIFBhY2thZ2UKKyAgICAgICAgICAgIEFQSSBjbGFzc2VzIChwYWNrYWdlIDxjb2RlPmphdmF4LnNxbDwvY29kZT4pLiAgWW91IHdpbGwgbmVlZCB0bworICAgICAgICAgICAgaW5jbHVkZSB0aGlzIGZpbGUgaW4gdGhlIDxjb2RlPi9XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5CisgICAgICAgICAgICBvZiB5b3VyIGFwcGxpY2F0aW9uLCBpZiBpdCBpcyBub3QgYWxyZWFkeSBtYWRlIHZpc2libGUgdG8gd2ViCisgICAgICAgICAgICBhcHBsaWNhdGlvbnMgYnkgeW91ciBzZXJ2bGV0IGNvbnRhaW5lci48L2xpPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLWNvbmZpZ18xXzAuZHRkPC9jb2RlPiAtIFRoZSBkb2N1bWVudCB0eXBlIGRlc2NyaXB0b3IKKyAgICAgICAgICAgIChEVEQpIGZvciB0aGUgU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZSAod2hpY2ggaXMgdHlwaWNhbGx5IG5hbWVkCisgICAgICAgICAgICA8Y29kZT4vV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4uICBZb3VyIGNvbmZpZ3VyYXRpb24gZmlsZQorICAgICAgICAgICAgd2lsbCBiZSB2YWxpZGF0ZWQgYWdhaW5zdCBhbiBpbnRlcm5hbCBjb3B5IG9mIHRoaXMgRFREIC0tIHRoaXMKKyAgICAgICAgICAgIGNvcHkgaXMgYXZhaWxhYmxlIGZvciByZWZlcmVuY2UgcHVycG9zZXMgb25seS48L2xpPgorICAgICAgICA8bGk+PGNvZGU+d2ViLWFwcF8yXzIuZHRkPC9jb2RlPiAtIFRoZSBkb2N1bWVudCB0eXBlIGRlc2NyaXB0b3IgKERURCkKKyAgICAgICAgICAgIGZvciB3ZWIueG1sIGZpbGVzIGNvbmZvcm1pbmcgdG8gdGhlIFNlcnZsZXQgMi4yIHNwZWNpZmljYXRpb24uCisgICAgICAgICAgICBUaGlzIGNvcHkgaXMgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDxsaT48Y29kZT53ZWItYXBwXzJfMy5kdGQ8L2NvZGU+IC0gVGhlIGRvY3VtZW50IHR5cGUgZGVzY3JpcHRvciAoRFREKQorICAgICAgICAgICAgZm9yIHdlYi54bWwgZmlsZXMgY29uZm9ybWluZyB0byB0aGUgU2VydmxldCAyLjMgc3BlY2lmaWNhdGlvbi4KKyAgICAgICAgICAgIFRoaXMgY29weSBpcyBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPC91bD48L2xpPgorICAgIDxsaT48Y29kZT53ZWJhcHBzLzwvY29kZT4gLSBXZWIgQXBwbGljYXRpb24gQXJjaGl2ZSAoV0FSKSBmaWxlcyBmb3IgdGhlCisgICAgICAgIHdlYiBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgaW5jbHVkZWQgd2l0aCBTdHJ1dHMuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+Rm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IG9ubHksIHRoZSBiaW5hcnkgZGlzdHJpYnV0aW9uIGFsc28KKyAgICBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIGZpbGVzIHRoYXQgY29uZm9ybSB0byB0aGUgU3RydXRzIDAuNSBtaWxlc3RvbmUKKyAgICByZWxlYXNlIEFQSXMuICBVc2FnZSBvZiB0aGVzZSBmaWxlcyBhbmQgQVBJcyBpcyBkZXByZWNhdGVkLCBhbmQgdGhleQorICAgIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHJlbGVhc2VzIGFmdGVyIFN0cnV0cyAxLjA6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+bGliLzwvY29kZT4gLSBEaXJlY3RvcnkgY29udGFpbmluZyBmaWxlcyB5b3Ugd2lsbCBuZWVkIGluCisgICAgICAgIHlvdXIgb3duIGFwcGxpY2F0aW9ucy4gIFRoZSBpbmRpdmlkdWFsIGZpbGVzIG9mIGludGVyZXN0IGFyZToKKyAgICAgICAgPHVsPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLmphcjwvY29kZT4gLSBKQVIgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSBjb21waWxlZAorICAgICAgICAgICAgSmF2YSBjbGFzc2VzIGZvciBib3RoIHZlcnNpb24gMC41IGFuZCAxLjAgb2YgU3RydXRzLiAgWW91IG11c3QKKyAgICAgICAgICAgIHBsYWNlIHRoaXMgZmlsZSBpbiB0aGUgPGNvZGU+L1dFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3Rvcnkgb2YKKyAgICAgICAgICAgIHlvdXIgd2ViIGFwcGxpY2F0aW9uLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMudGxkPC9jb2RlPiAtIFRoZSB0YWcgbGlicmFyeSBkZXNjcmlwdG9yIGZpbGUgZm9yCisgICAgICAgICAgICB0aGUgMC41IHZlcnNpb24gb2YgdGhlIFN0cnV0cyB0YWdzLiAgWW91IG11c3QgcGxhY2UgdGhpcyBmaWxlCisgICAgICAgICAgICBpbiB0aGUgPGNvZGU+L1dFQi1JTkY8L2NvZGU+IGRpcmVjdG9yeSBvZiB5b3VyIHdlYiBhcHBsaWNhdGlvbiwKKyAgICAgICAgICAgIGFuZCByZWZlcmVuY2UgaXQgd2l0aCBhcHByb3ByaWF0ZSA8Y29kZT4mbHQ7dGFnbGliJmd0OzwvY29kZT4KKyAgICAgICAgICAgIGRpcmVjdGl2ZXMgaW4geW91ciB3ZWIueG1sIGZpbGUuPC9saT4KKyAgICAgICAgPC91bD48L2xpPgorICAgIDwvdWw+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iV2hhdCdzIE5ldz8iIGhyZWY9Ik5ldyI+CisKKyAgICA8cD48c3Ryb25nPkRFUFJFQ0FUSU9OUzwvc3Ryb25nPiAtIFRoZSBlbnRpcmUgY3VzdG9tIHRhZyBsaWJyYXJ5CisgICAgdGhhdCBpcyBkb2N1bWVudGVkIGluIDxjb2RlPnN0cnV0cy50bGQ8L2NvZGU+IGhhcyBiZWVuIGRlcHJlY2F0ZWQuCisgICAgVGhlc2UgdGFncyBjb3JyZXNwb25kIHRvIHRoZSBTdHJ1dHMgMC41IGZ1bmN0aW9uYWxpdHkgdGhhdCBpcyBhbHNvCisgICAgZGVwcmVjYXRlZCwgYW5kIGhhdmUgYmVlbiByZXBsYWNlZCAoYW5kIGNvbnNpZGVyYWJseSBlbmhhbmNlZCkgaW4KKyAgICB0aGUgdmFyaW91cyBpbmRpdmlkdWFsIHRhZyBsaWJyYXJpZXMuPC9wPgorCisgICAgPHA+VGhlIGJ1aWxkIHByb2NlZHVyZSBmb3IgY29tcGlsaW5nIHRoZSBTdHJ1dHMgc291cmNlIGRpc3RyaWJ1dGlvbgorICAgIGhhcyBiZWVuIHJldmlzZWQsIGFuZCBub3cgZGVwZW5kcyBvbiBoYXZpbmcgPHN0cm9uZz5BbnQgMS4yPC9zdHJvbmc+CisgICAgKG9yIGxhdGVyKSBpbnN0YWxsZWQsIHdpdGggdGhlIDxjb2RlPiRBTlRfSE9NRS9iaW48L2NvZGU+IGRpcmVjdG9yeQorICAgIG9uIHlvdXIgcGF0aC4gIEZ1cnRoZXIgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIHRoZQorICAgIDxhIGhyZWY9Imluc3RhbGxhdGlvbi5odG1sIj5JbnN0YWxsYXRpb248L2E+IGRvY3VtZW50YXRpb24uPC9wPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBiYXNpYyBjb250cm9sbGVyCisgICAgZnJhbWV3b3JrIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPllvdSBjYW4gbm93IHNwZWNpZnkgdGhhdCBhbiA8Y29kZT4mbHQ7YWN0aW9uJmd0OzwvY29kZT4gZWxlbWVudCBzaG91bGQKKyAgICAgICAgaW52b2tlIGFuIGV4aXN0aW5nIHNlcnZsZXQgb3IgSlNQIHBhZ2UgcmVzb3VyY2UsIHJhdGhlciB0aGFuIGNhbGxpbmcgYW4KKyAgICAgICAgPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcywgYnkgdXNpbmcgdGhlIDxjb2RlPmluY2x1ZGU8L2NvZGU+IGF0dHJpYnV0ZQorICAgICAgICByYXRoZXIgdGhhbiB0aGUgPGNvZGU+dHlwZTwvY29kZT4gYXR0cmlidXRlLiAgVGhlIHN0YW5kYXJkIGZvcm0gYmVhbgorICAgICAgICBwcm9jZXNzaW5nIHByb3ZpZGVkIGJ5IHRoZSBjb250cm9sbGVyIGlzIHN0aWxsIHBlcmZvcm1lZCBmaXJzdCwgaWYgeW91CisgICAgICAgIGhhdmUgY29uZmlndXJlZCBpdCwgc28gdGhlIGluY2x1ZGVkIHJlc291cmNlIGNhbiBiZW5lZml0IGZyb20gdGhpcworICAgICAgICBwcm9jZXNzaW5nIGlmIGl0IHdpc2hlcyB0by48L2xpPgorICAgIDxsaT5UaGUgPGNvZGU+aW5pdERhdGFTb3VyY2VzKCk8L2NvZGU+IG1ldGhvZCBjYW4gbm93IHRocm93IGEKKyAgICAgICAgPGNvZGU+U2VydmxldEV4Y2VwdGlvbjwvY29kZT4gdG8gcmVwb3J0IHRoYXQgYW4gaW5pdGlhbGl6YXRpb24gZXJyb3IKKyAgICAgICAgaGFzIG9jY3VycmVkLiAgUHJldmlvdXNseSwgc3VjaCBlcnJvcnMgd2VyZSBsb2dnZWQgYnV0IG90aGVyd2lzZQorICAgICAgICBpZ25vcmVkLjwvbGk+CisgICAgPGxpPkl0IGlzIG5vdyBwb3NzaWJsZSB0byBpbnRlZ3JhdGUgYnVzaW5lc3MgbG9naWMgdGhhdCBpcyBhbHJlYWR5CisgICAgICAgIGVuY2Fwc3VsYXRlZCBhcyBhIHNlcnZsZXQgb3IgSlNQIHBhZ2UsIHZpYSB1c2Ugb2YgdHdvIG5ldyBzdGFuZGFyZAorICAgICAgICBhY3Rpb25zOiAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5Gb3J3YXJkQWN0aW9uPC9jb2RlPiBhbmQKKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5JbmNsdWRlQWN0aW9uPC9jb2RlPi4gIFRoZXNlIGFjdGlvbnMKKyAgICAgICAgbGV0IHlvdSB0YWtlIGFkdmFudGFnZSBvZiB0aGUgc3RhbmRhcmQgcHJvY2Vzc2luZyBwZXJmb3JtZWQgYnkgdGhlCisgICAgICAgIGNvbnRyb2xsZXIgc2VydmxldCAoaW5jbHVkaW5nIGZvcm0gYmVhbiBwb3B1bGF0aW9uIGFuZCBjYWxsaW5nIHRoZQorICAgICAgICA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2QpLCBidXQgbm90IGhhdmUgdG8gd3JpdGUgSmF2YSBjb2RlIHRvCisgICAgICAgIHBlcmZvcm0gKG9yIHdyYXApIHRoZSByZXF1aXJlZCBidXNpbmVzcyBsb2dpYy48L2xpPgorICAgIDxsaT5BIHdyYXBwZXIgY2xhc3MgaGFzIGJlZW4gYWRkZWQgYXJvdW5kIHRoZSBzdGFuZGFyZAorICAgICAgICA8Y29kZT5IdHRwU2VydmxldFJlcXVlc3Q8L2NvZGU+IGZvciBoYW5kbGluZyBtdWx0aXBhcnQgcmVxdWVzdHMgYXMKKyAgICAgICAgaWRlbnRpY2FsbHkgYXMgcG9zc2libGUgdG8gc3RhbmRhcmQgcmVxdWVzdHMsIGluY2x1ZGluZyBwcm9jZXNzaW5nCisgICAgICAgIHJlcXVlc3QgcGFyYW1ldGVycywgcG9wdWxhdGluZyBmb3JtIGJlYW5zLCB0cmFuc2FjdGlvbiB0b2tlbnMsIGFuZAorICAgICAgICBjaGVja2luZyBmb3IgY2FuY2VsbGF0aW9ucy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIHV0aWxpdHkgY2xhc3NlcworICAgIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT48Y29kZT5Qcm9wZXJ0eVV0aWxzPC9jb2RlPiBjYW4gbm93IGNvcnJlY3RseSBsb2NhdGUgcHVibGljIG1ldGhvZHMKKyAgICAgICAgZGVmaW5lZCBpbiBhIG5lc3RlZCBpbnRlcmZhY2UgdGhhdCBpcyBpbXBsZW1lbnRlZCBieSBhIGJlYW4uPC9saT4KKyAgICA8bGk+PGNvZGU+UHJvcGVydHlVdGlsczwvY29kZT4gbWV0aG9kcyBub3cgdGhyb3cKKyAgICAgICAgPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPiB3aGVuIHlvdSBwYXNzIGEgbnVsbAorICAgICAgICA8Y29kZT5iZWFuPC9jb2RlPiByZWZlcmVuY2Ugb3IgcHJvcGVydHkgPGNvZGU+bmFtZTwvY29kZT4uPC9saT4KKyAgICA8bGk+PHN0cm9uZz5ERVBSRUNBVElPTlM8L3N0cm9uZz4gLSBUaGUgZm9sbG93aW5nIGNsYXNzZXMgaGF2ZSBiZWVuCisgICAgICAgIGRlcHJlY2F0ZWQgaW4gdGhlaXIgZW50aXJldHksIGJlY2F1c2UgdGhleSB3aWxsIGJlIHJlcGxhY2VkIGJ5CisgICAgICAgIGNvcnJlc3BvbmRpbmcgY2xhc3NlcyAod2l0aCBpZGVudGljYWwgZnVuY3Rpb25hbGl0eSkgZnJvbSB0aGUKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zIj5KYWthcnRhIENvbW1vbnMgUHJvamVjdDwvYT4KKyAgICAgICAgYXQgc29tZSBwb2ludCBhZnRlciBTdHJ1dHMgMS4wIGZpbmFsIHJlbGVhc2UuICBUaGUgb25seSBjaGFuZ2UgdGhhdAorICAgICAgICB3aWxsIHVsdGltYXRlbHkgYmUgcmVxdWlyZWQgaW4gdXNlciBjb2RlIGlzIHRvIGNoYW5nZSB0aGUgcGFja2FnZQorICAgICAgICBuYW1lcyBvbiB0aGUgPGNvZGU+aW1wb3J0PC9jb2RlPiBjbGF1c2VzOgorICAgICAgICA8dWw+CisgICAgICAgIDxsaT48Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RBcnJheUxpc3Q8L2NvZGU+PC9saT4KKyAgICAgICAgPGxpPjxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdEhhc2hNYXA8L2NvZGU+PC9saT4KKyAgICAgICAgPGxpPjxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdFRyZWVNYXA8L2NvZGU+PC9saT4KKyAgICAgICAgPGxpPjxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuQmVhblV0aWxzPC9jb2RlPjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkNvbnZlcnRVdGlsczwvY29kZT48L2xpPgorICAgICAgICA8bGk+PGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eVV0aWxzPC9jb2RlPjwvbGk+CisgICAgICAgIDwvdWw+PC9saT4KKyAgICA8L3VsPgorCisKKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlCisgICAgPGVtPnN0cnV0cy1odG1sPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5UaGUgPGNvZGU+Jmx0O2h0bWw6bGluayZndDs8L2NvZGU+IHRhZyBub3cgYWNjZXB0cyBhbiBvcHRpb25hbAorICAgICAgICA8Y29kZT5hbmNob3I8L2NvZGU+IGF0dHJpYnV0ZSwgdG8gYWxsb3cgdGhlIGluY2x1c2lvbiBvZiBhCisgICAgICAgIChwb3NzaWJseSBjYWxjdWxhdGVkKSBhbmNob3IgKCIjeHh4IikgaW4gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuPC9saT4KKyAgICA8bGk+VGhlIDxjb2RlPiZsdDtodG1sOmJhc2UmZ3Q7PC9jb2RlPiB0YWcgbm93IGFjY2VwdHMgYW4gb3B0aW9uYWwKKyAgICAgICAgPGNvZGU+dGFyZ2V0PC9jb2RlPiBhdHRyaWJ1dGUuPC9saT4KKyAgICA8bGk+VGhlIDxjb2RlPiZsdDtodG1sOmltYWdlJmd0OzwvY29kZT4gdGFnIG5vdyBhY2NlcHRzIGFuIG9wdGlvbmFsCisgICAgICAgIDxjb2RlPmJvcmRlcjwvY29kZT4gYXR0cmlidXRlLCB0byBkZWZpbmUgdGhlIGJvcmRlciB3aXRoIGFyb3VuZAorICAgICAgICB0aGlzIGltYWdlLjwvbGk+CisgICAgPGxpPllvdSBjYW4gbm93IHJlcXVlc3QgdGhhdCB0aGUgPGNvZGU+Jmx0O2h0bWw6bGluayZndDs8L2NvZGU+IHRhZworICAgICAgICBpbmNsdWRlIGFueSBjdXJyZW50IHRyYW5zYWN0aW9uIGNvbnRyb2wgdG9rZW4gaW4gdGhlIGdlbmVyYXRlZAorICAgICAgICBoeXBlcmxpbmssIGJ5IHNwZWNpZnlpbmcgdGhlIDxjb2RlPnRyYW5zYWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUKKyAgICAgICAgd2l0aCBhIHZhbHVlIG9mIDxjb2RlPnRydWU8L2NvZGU+LjwvbGk+CisgICAgPGxpPlRoZSA8Y29kZT4mbHQ7aHRtbDpvcHRpb25zJmd0OzwvY29kZT4gdGFnIG5vdyBzdXBwb3J0cyBFbnVtZXJhdGlvbgorICAgICAgICBmb3IgdGhlIDxjb2RlPmNvbGxlY3Rpb248L2NvZGU+IHByb3BlcnR5LjwvbGk+CisgICAgPGxpPlRoZSA8Y29kZT4mbHQ7aHRtbDpmb3JtJmd0OzwvY29kZT4gdGFnIG5vdyBjcmVhdGVzIGF0dHJpYnV0ZXMgZm9yCisgICAgICAgIHRoZSB0YWcgaXRzZWxmLCBhbmQgdGhlIGZvcm0gYmVhbiwgaW4gcmVxdWVzdCBzY29wZSBpbnN0ZWFkIG9mCisgICAgICAgIHBhZ2Ugc2NvcGUuICBBbW9uZyBvdGhlciBiZW5lZml0cywgdGhpcyBhbGxvd3MgeW91IHRvIG5lc3QgdGhlCisgICAgICAgIGZpZWxkcyBvZiBhIGZvcm0gaW5zaWRlIGEgc2VwYXJhdGUgcGFnZSB0aGF0IGlzIGFjY2Vzc2VkIHZpYSBhCisgICAgICAgIHRlbXBsYXRlIG9yIGEgPGNvZGU+Jmx0O2pzcDppbmNsdWRlJmd0OzwvY29kZT4gdGFnLjwvbGk+CisgICAgPGxpPlRoZSA8Y29kZT5zdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGUgaGFzIGJlZW4gYWRkZWQgdG8gYWxsIG9mIHRoZQorICAgICAgICB0YWdzIHdoZXJlIHRoZSBjb3JyZXNwb25kaW5nIDxjb2RlPmlkPC9jb2RlPiB0YWcgaXMgcmVsZXZhbnQsIHRvCisgICAgICAgIGlkZW50aWZ5IGEgc3BlY2lmaWMgdGFnIGZvciB0aGUgcHVycG9zZXMgb2Ygc3R5bGVzaGVldCByZWZlcmVuY2VzLjwvbGk+CisgICAgPGxpPlRoZSA8Y29kZT4mbHQ7aHRtbDpmaWxlJmd0OzwvY29kZT4gdGFnIG5vdyBzdXBwb3J0cyB0aGUKKyAgICAgICAgPGNvZGU+c2l6ZTwvY29kZT4gYXR0cmlidXRlIHRvIHNldCB0aGUgc2l6ZSBvZiB0aGUgZmlsZSBsaXN0CisgICAgICAgIGZpZWxkLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUKKyAgICA8ZW0+c3RydXRzLWxvZ2ljPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+VGhlIDxjb2RlPiZsdDtsb2dpYzppdGVyYXRlJmd0OzwvY29kZT4gdGFnIG5vdyBzdXBwb3J0cyBFbnVtZXJhdGlvbgorICAgICAgICBmb3IgdGhlIDxjb2RlPmNvbGxlY3Rpb248L2NvZGU+IHByb3BlcnR5LjwvbGk+CisgICAgPGxpPlRoZSA8Y29kZT4mbHQ7bG9naWM6aXRlcmF0ZSZndDs8L2NvZGU+IHRhZyBub3cgZXhwb3NlcyB0aGUgY3VycmVudAorICAgICAgICBpdGVyYXRpb24gaW5kZXggdG8gbmVzdGVkIHRhZ3MsIHRocm91Z2ggYSBjYWxsIHRvIHRoZQorICAgICAgICA8Y29kZT5nZXRJbmRleCgpPC9jb2RlPiBtZXRob2QuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtdGVtcGxhdGU8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgKHBhY2thZ2UKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGU8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5BdHRyaWJ1dGUgZ2V0dGVyIG1ldGhvZHMgaGF2ZSBiZWVuIGFkZGVkIHRvIGFsbCBvZiB0aGUgY3VzdG9tCisgICAgICAgIHRhZyBpbXBsZW1lbnRhdGlvbiBjbGFzc2VzIHRvIGZhY2lsaXRhdGUgcmV1c2UuPC9saT4KKyAgICA8bGk+VGhlIDxjb2RlPiZsdDt0ZW1wbGF0ZTpnZXQmZ3Q7PC9jb2RlPiB0YWcgbm93IGhhcyBhbiBvcHRpb25hbAorICAgICAgICAiZmx1c2giIGF0dHJpYnV0ZSB0aGF0IGNhdXNlcyB0aGUgcmVzcG9uc2UgdG8gYmUgY29tbWl0dGVkIHByaW9yCisgICAgICAgIHRvIHBlcmZvcm1pbmcgdGhlIGluY2x1ZGUsIGlmIHNldCB0byAidHJ1ZSIuICBUaGlzIGFsbG93cyB3b3JraW5nCisgICAgICAgIGFyb3VuZCBwcm9ibGVtcyBvbiBicm9rZW4gc2VydmxldCBjb250YWluZXJzLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgU3RydXRzIERvY3VtZW50YXRpb24KKyAgICBhcHBsaWNhdGlvbiAoYW5kIGNvcnJlc3BvbmRpbmcgY29udGVudHMgb24gdGhlIFN0cnV0cyB3ZWIgc2l0ZSk6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+UGxhdGZvcm0gc3BlY2lmaWMgaW5zdGFsbGF0aW9uIG5vdGVzIGZvciBhIHdpZGUgdmFyaWV0eSBvZiBhcHBsaWNhdGlvbgorICAgICAgICBzZXJ2ZXIgYW5kIHNlcnZsZXQgY29udGFpbmVyIGVudmlyb25tZW50cyBoYXZlIGJlZW4gYWNjdW11bGF0ZWQgYW5kCisgICAgICAgIHB1Ymxpc2hlZC48L2xpPgorICAgIDwvdWw+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iQ2hhbmdlcyBhbmQgQnVnIEZpeGVzIiBocmVmPSJDaGFuZ2VzIj4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlIGJhc2ljCisgICAgY29udHJvbGxlciBmcmFtZXdvcmsgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9jb2RlPiBub3cgdHJpZXMgdG8gcmV0cmlldmUgdGhlCisgICAgdGVtcG9yYXJ5IGRpcmVjdG9yeSBwcm92aWRlZCBieSB0aGUgc2VydmxldCBjb250YWluZXIgYmVmb3JlIGFsbCBvdGhlcgorICAgIHBvc3NpYmxlIHRlbXBvcmFyeSBkaXJlY3Rvcmllcy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSB1dGlsaXRpZXMKKyAgICAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+VGhlIDxjb2RlPmNvbXB1dGVVUkwoKTwvY29kZT4gbWV0aG9kIG5vdyByZXR1cm5zIGEKKyAgICAgICAgPGNvZGU+TWFsZm9ybWVkVVJMRXhjZXB0aW9uPC9jb2RlPiBpZiBhIFVSTCBjYW5ub3QgYmUgY3JlYXRlZC4KKyAgICAgICAgUHJldmlvdXNseSwgdGhpcyBjYXNlIHJldHVybmVkIDxjb2RlPm51bGw8L2NvZGU+IHdpdGggbm8gZXJyb3IKKyAgICAgICAgbWVzc2FnZSwgbWFraW5nIHNvbWUgcHJvYmxlbXMgZGlmZmljdWx0IHRvIHRyYWNrIGRvd24uPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUKKyAgICA8ZW0+c3RydXRzLWh0bWw8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgKHBhY2thZ2UKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlRoZSA8Y29kZT4mbHQ7aHRtbDppbWFnZSZndDs8L2NvZGU+IHRhZyBub3cgY29ycmVjdGx5IGdlbmVyYXRlcyBhCisgICAgICAgIGNsb3NpbmcgZG91YmxlIHF1b3RlIG9uIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUuPC9saT4KKyAgICA8bGk+VGhlIDxjb2RlPiZsdDtodG1sOmZvcm0mZ3Q7PC9jb2RlPiB0YWcgbm93IGdlbmVyYXRlcyBhIGh5cGVybGluaworICAgICAgICB0aGF0IGluY2x1ZGVzIGFueSBxdWVyeSBwYXJhbWV0ZXJzIHRoYXQgd2VyZSBpbmNsdWRlZCBpbiB0aGUgb3JpZ2luYWwKKyAgICAgICAgaHlwZXJsaW5rIHZhbHVlLjwvbGk+CisgICAgPGxpPlRoZSA8Y29kZT4mbHQ7aHRtbDpsaW5rJmd0OzwvY29kZT4gdGFnIG5vdyBjb3JyZWN0bHkgcGxhY2VzIGFueQorICAgICAgICBzcGVjaWZpZWQgYW5jaG9yICgiI3h4eCIpIGluIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLjwvbGk+CisgICAgPGxpPlRoZSBKYXZhU2NyaXB0IGNvZGUgZ2VuZXJhdGVkIHRvIGltcGxlbWVudCB0aGUgPGNvZGU+Zm9jdXM8L2NvZGU+CisgICAgICAgIGF0dHJpYnV0ZSBvZiB0aGUgPGNvZGU+Jmx0O2h0bWw6Zm9ybSZndDs8L2NvZGU+IHRhZyBub3cgd29ya3MgZXZlbgorICAgICAgICB3aGVuIHlvdSB1c2UgbmVzdGVkIG9yIGluZGV4ZWQgcHJvcGVydHkgZXhwcmVzc2lvbnMuICBQcmV2aW91c2x5LAorICAgICAgICB0aGlzIHdvdWxkIGdlbmVyYXRlIGFuIGludmFsaWQgSmF2YVNjcmlwdCByZWZlcmVuY2UgdG8gdGhlIGZpZWxkLjwvbGk+CisgICAgPGxpPlRoZSA8Y29kZT4mbHQ7aHRtbDpjaGVja2JveCZndDs8L2NvZGU+IHRhZyBub3cgY29uZm9ybXMgdG8gaXRzCisgICAgICAgIGRvY3VtZW50YXRpb24sIGFuZCBzZW5kcyB0aGUgc3BlY2lmaWVkIDxjb2RlPnZhbHVlPC9jb2RlPiB0byB0aGUKKyAgICAgICAgc2VydmVyIGlmIHRoaXMgY2hlY2tib3ggaXMgY2hlY2tlZCBhdCBzdWJtaXQgdGltZS4gIEluIGFkZGl0aW9uLCBhCisgICAgICAgIGRlZmF1bHQgdmFsdWUgb2YgPGNvZGU+b248L2NvZGU+IGlzIHNlbnQgaWYgbm8gdmFsdWUgYXR0cmlidXRlIGlzCisgICAgICAgIHNwZWNpZmllZC48L2xpPgorICAgIDxsaT5UaGUgaHlwZXJsaW5rcyBjcmVhdGVkIGJ5IHRoZSA8Y29kZT4mbHQ7aHRtbDpsaW5rJmd0OzwvY29kZT4gYW5kCisgICAgICAgIDxjb2RlPiZsdDtodG1sOnJlZGlyZWN0Jmd0OzwvY29kZT4gdGFncyBub3cgcHJvcGVybHkgb21pdCB0aGUgcG9ydAorICAgICAgICBudW1iZXIgaWYgaXQgaXMgdGhlIGRlZmF1bHQgcG9ydCBmb3IgdGhlIGN1cnJlbnQgcmVxdWVzdCBzY2hlbWUgKDgwCisgICAgICAgIGZvciBodHRwLCBvciA0NDMgZm9yIGh0dHBzKS4gIEFtb25nIG90aGVyIHRoaW5ncywgdGhpcyBjb3JyZWN0cworICAgICAgICBzZXNzaW9uIG1hbmFnZW1lbnQgYmVoYXZpb3Igb24gdGhlIHN0YW5kYXJkIHBvcnQgbnVtYmVycy48L2xpPgorICAgIDxsaT5UaGUgPGNvZGU+Zm9jdXM8L2NvZGU+IGF0dHJpYnV0ZSBvZiB0aGUgPGNvZGU+Jmx0O2h0bWw6Zm9ybSZndDs8L2NvZGU+CisgICAgICAgIHRhZyBub3cgd29ya3Mgd2hlbiB0aGUgY29ycmVzcG9uZGluZyBpbnB1dCBmaWVsZCBpcyBhIHJhZGlvIGJ1dHRvbiwKKyAgICAgICAgb3IgaXMgb3RoZXJ3aXNlIGluZGV4ZWQuPC9saT4KKyAgICA8bGk+VGhlIDxjb2RlPmRpc2FibGVkPC9jb2RlPiBhbmQgPGNvZGU+cmVhZG9ubHk8L2NvZGU+IGF0dHJpYnV0ZXMgaGF2ZQorICAgICAgICBiZWVuIGFkZGVkIHRvIGFsbCBIVE1MLXJlbmRlcmluZyB0YWdzIHdoZXJlIHRoZXkgYXJlIHJlbGV2YW50LjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlCisgICAgPGVtPnN0cnV0cy1sb2dpYzwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZQorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkh5cGVybGluayBwcm9jZXNzaW5nIGluIHRoZSA8Y29kZT4mbHQ7bG9naWM6Zm9yd2FyZCZndDs8L2NvZGU+CisgICAgICAgIHRhZyBpcyBub3cgaWRlbnRpY2FsIHRvIHRoYXQgcGVyZm9ybWVkIGJ5IHRoZSBTdHJ1dHMgQ29udHJvbGxlcgorICAgICAgICBTZXJ2bGV0IHdoZW4gaXQgcHJvY2Vzc2VzIGFuIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRoYXQgaXMKKyAgICAgICAgcmV0dXJuZWQgYnkgYW4gPGNvZGU+QWN0aW9uPC9jb2RlPi48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgU3RydXRzIERvY3VtZW50YXRpb24KKyAgICBhcHBsaWNhdGlvbiAoYW5kIGNvcnJlc3BvbmRpbmcgY29udGVudHMgb24gdGhlIFN0cnV0cyB3ZWIgc2l0ZSkgaGF2ZQorICAgIG9jY3VycmVkOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlRoZSBKYXZhIHR5cGVzIG9mIGNvbGxlY3Rpb25zIChhbmQgYXJyYXlzKSBvdmVyIHdoaWNoIHRoZQorICAgICAgICA8Y29kZT4mbHQ7bG9naWM6aXRlcmF0ZSZndDs8L2NvZGU+IHRhZyBjYW4gcnVuIGFyZSBub3cgZG9jdW1lbnRlZC48L2xpPgorICAgIDxsaT5UaGUgPGNvZGU+Jmx0O2JlYW46ZGVmaW5lJmd0OzwvY29kZT4gZG9jdW1lbnRhdGlvbiBub3cgbWVudGlvbnMgdGhlCisgICAgICAgIEpTUCAxLjEgU3BlY2lmaWNhdGlvbiByZXN0cmljdGlvbiBvbiB1c2luZyBtb3JlIHRoYW4gb25lCisgICAgICAgIDxjb2RlPmlkPC9jb2RlPiBhdHRyaWJ1dGUgd2l0aCB0aGUgc2FtZSB2YWx1ZSBpbiB0aGUgc2FtZSBwYWdlLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgRXhhbXBsZSBBcHBsaWNhdGlvbgorICAgIGhhdmUgb2NjdXJyZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+VGhlIEphdmEgc291cmNlIGNvZGUgb2YgdGhlc2UgYXBwbGljYXRpb25zIGlzIG5vdyBpbmNsdWRlZCBpbiB0aGUKKyAgICAgICAgY29ycmVzcG9uZGluZyBXQVIgZmlsZXMsIGluIHN1YmRpcmVjdG9yeSA8Y29kZT5XRUItSU5GL3NyYzwvY29kZT4uPC9saT4KKyAgICA8bGk+RXhjZXNzaXZlIGZpbHRlcigpIGNhbGxzIGluIDxjb2RlPkxpbmtTdWJzY3JpcHRpb25UYWc8L2NvZGU+CisgICAgICAgIGhhdmUgYmVlbiBlbGltaW5hdGVkLjwvbGk+CisgICAgPGxpPkNhbGxzIHRvIHRoZSBkZXByZWNhdGVkIDxjb2RlPkJlYW5VdGlscy5maWx0ZXIoKTwvY29kZT4gaGF2ZSBiZWVuCisgICAgICAgIHJlcGxhY2VkIGJ5IGNhbGxzIHRvIDxjb2RlPlJlc3BvbnNlVXRpbHMuZmlsdGVyKCk8L2NvZGU+LjwvbGk+CisgICAgPGxpPlJlbW92ZWQgYW55IGF0dGVtcHQgdG8gc2F2ZSB0aGUgcHNldWRvLWRhdGFiYXNlIGF0IGFwcGxpY2F0aW9uCisgICAgICAgIHNodXRkb3duLCBiZWNhdXNlIHRoZXJlIGlzIG5vIHBvcnRhYmxlIG1lY2hhbmlzbSB0byBhY2NvbXBsaXNoCisgICAgICAgIHRoaXMgdGFzay48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgU3RydXRzIFRlbXBsYXRlIEV4YW1wbGUKKyAgICBBcHBsaWNhdGlvbiBoYXZlIG9jY3VycmVkOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlJlZmFjdG9yZWQgdGhlIGV4YW1wbGUgcGFnZXMgdG8gZWxpbWluYXRlIHRoZSBjcmVhdGlvbiBvZiByZWR1bmRhbnQKKyAgICAgICAgPGNvZGU+Jmx0O2h0bWwmZ3Q7PC9jb2RlPiwgPGNvZGU+Jmx0O2hlYWQmZ3Q7PC9jb2RlPiwgYW5kCisgICAgICAgIDxjb2RlPiZsdDtib2R5Jmd0OzwvY29kZT4gdGFncy48L2xpPgorICAgIDxsaT5JZiA8Y29kZT4mbHQ7dGVtcGxhdGU6Z2V0Jmd0OzwvY29kZT4gb3IKKyAgICAgICAgPGNvZGU+Jmx0O3RlbXBsYXRlOmluc2VydCZndDs8L2NvZGU+IHRocm93cyBhbiBleGNlcHRpb24sIGRvIG5vdAorICAgICAgICBvdmVyd3JpdGUgYW55ICJyZWFsIiBleGNlcHRpb24gdGhhdCBoYXMgYWxyZWFkeSBiZWVuIHNhdmVkLjwvbGk+CisgICAgPGxpPlRoZSB0ZXh0IG9mIHRoZSB2YXJpb3VzIHBhZ2VzIGluIHRoZSBleGFtcGxlIGhhcyBiZWVuIHVwZGF0ZWQgc28KKyAgICAgICAgdGhhdCB0aGV5IGFyZSBub3QgaWRlbnRpY2FsLjwvbGk+CisgICAgPC91bD4gCisKKyAgPC9zZWN0aW9uPgorCisKKyAgPC9ib2R5PgorCis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3JlbGVhc2Utbm90ZXMtMS4wLWIzLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLTEuMC1iMy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk4YTEzMgotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLTEuMC1iMy54bWwKQEAgLTAsMCArMSwyNTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0icmVsZWFzZS1ub3Rlcy0xLjAtYjMuaHRtbCI+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlN0cnV0cyBSZWxlYXNlIE5vdGVzIChWZXJzaW9uIDEuMC1iZXRhLTMpPC90aXRsZT4KKyAgPC9wcm9wZXJ0aWVzPgorCisgIDxib2R5PgorCisgIDxzZWN0aW9uIG5hbWU9IkludHJvZHVjdGlvbiIgaHJlZj0iSW50cm9kdWN0aW9uIj4KKworICAgIDxwPlRoaXMgZG9jdW1lbnQgY29udGFpbnMgdGhlIHJlbGVhc2Ugbm90ZXMgZm9yCisgICAgPHN0cm9uZz5WZXJzaW9uIDEuMC1iZXRhLTM8L3N0cm9uZz4gb2YgdGhlIFN0cnV0cyBGcmFtZXdvcmssCisgICAgYW5kIGNvdmVycyBjaGFuZ2VzIHRoYXQgaGF2ZSB0YWtlbiBwbGFjZSBzaW5jZQorICAgIDxhIGhyZWY9InJlbGVhc2Utbm90ZXMtMS4wLWIyLmh0bWwiPlZlcnNpb24gMS4wLWJldGEtMjwvYT4KKyAgICB3YXMgcmVsZWFzZWQuICBUaGUgZm9sbG93aW5nIHNlY3Rpb25zIGNvdmVyCisgICAgPGEgaHJlZj0iI05ldyI+TmV3IEZlYXR1cmVzPC9hPiBhbmQgPGEgaHJlZj0iI0NoYW5nZXMiPkNoYW5nZXM8L2E+CisgICAgdG8gU3RydXRzLjwvcD4KKworICA8L3NlY3Rpb24+CisKKworICA8c2VjdGlvbiBuYW1lPSJXaGF0J3MgSW5jbHVkZWQ/IiBocmVmPSJJbmNsdWRlZCI+CisKKyAgICA8cD5UaGUgYmluYXJ5IGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHJlbGVhc2UgaW5jbHVkZXMgdGhlIGZvbGxvd2luZworICAgIGZpbGVzIHJlbGV2YW50IHRvIFN0cnV0cyAxLjA6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+SU5TVEFMTDwvY29kZT4gLSBCcmllZiBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLiAgU2VlCisgICAgICAgIHRoZSA8Y29kZT5TdHJ1dHMgRG9jdW1lbnRhdGlvbiBBcHBsaWNhdGlvbjwvY29kZT4sIG9yIG9ubGluZSBhdAorICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy8iPmh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzLzwvYT4KKyAgICAgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9saT4KKyAgICA8bGk+PGNvZGU+TElDRU5TRTwvY29kZT4gLSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gbGljZW5zZSB0aGF0CisgICAgICAgIGRlZmluZXMgdGhlIHRlcm1zIHVuZGVyIHdoaWNoIHlvdSBjYW4gdXNlIFN0cnV0cyAoYW5kIG90aGVyIHNvZnR3YXJlCisgICAgICAgIGxpY2Vuc2VkIGJ5IEFwYWNoZSkuPC9saT4KKyAgICA8bGk+PGNvZGU+UkVBRE1FPC9jb2RlPiAtIEEgYnJpZWYgaW50cm9kdWN0aW9uIHRvIFN0cnV0cy48L2xpPgorICAgIDxsaT48Y29kZT5saWIvPC9jb2RlPiAtIERpcmVjdG9yeSBjb250YWluaW5nIGZpbGVzIHlvdSB3aWxsIG5lZWQgaW4KKyAgICAgICAgeW91ciBvd24gYXBwbGljYXRpb25zLiAgVGhlIGluZGl2aWR1YWwgZmlsZXMgb2YgaW50ZXJlc3QgYXJlOgorICAgICAgICA8dWw+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMuamFyPC9jb2RlPiAtIEpBUiBmaWxlIHRoYXQgY29udGFpbnMgdGhlIGNvbXBpbGVkCisgICAgICAgICAgICBKYXZhIGNsYXNzZXMgZm9yIGJvdGggdmVyc2lvbiAwLjUgYW5kIDEuMCBvZiBTdHJ1dHMuICBZb3UgbXVzdAorICAgICAgICAgICAgcGxhY2UgdGhpcyBmaWxlIGluIHRoZSA8Y29kZT4vV0VCLUlORi9saWI8L2NvZGU+IGRpcmVjdG9yeSBvZgorICAgICAgICAgICAgeW91ciB3ZWIgYXBwbGljYXRpb24uPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy14eHh4eC50bGQ8L2NvZGU+IC0gVGhlIHRhZyBsaWJyYXJ5IGRlc2NyaXB0b3IgZmlsZXMKKyAgICAgICAgICAgIGZvciB0aGUgU3RydXRzIDEuMCB0YWcgbGlicmFyaWVzIChiZWFuLCBodG1sLCBsb2dpYywgYW5kCisgICAgICAgICAgICB0ZW1wbGF0ZSkuICBZb3UgbXVzdCBwbGFjZSB0aGVzZSBmaWxlcyBpbiB0aGUgPGNvZGU+L1dFQi1JTkY8L2NvZGU+CisgICAgICAgICAgICBkaXJlY3Rvcnkgb2YgeW91ciB3ZWIgYXBwbGljYXRpb24sIGFuZCByZWZlcmVuY2UgdGhlbSB3aXRoCisgICAgICAgICAgICBhcHByb3ByaWF0ZSA8Y29kZT4mbHQ7dGFnbGliJmd0OzwvY29kZT4gZGlyZWN0aXZlcyBpbiB5b3VyCisgICAgICAgICAgICB3ZWIueG1sIGZpbGUuICA8c3Ryb25nPk5PVEU8L3N0cm9uZz4gLSBUaGUgc3RydXRzLWZvcm0udGxkCisgICAgICAgICAgICBmaWxlIGlzIGRlcHJlY2F0ZWQ7IHlvdSBzaG91bGQgdXNlIHRoZSBzdHJ1dHMtaHRtbC50bGQgZmlsZQorICAgICAgICAgICAgaW5zdGVhZC48L2xpPgorICAgICAgICA8bGk+PGNvZGU+amRiYzJfMC1zdGRleHQuamFyPC9jb2RlPiAtIFRoZSBKREJDIDIuMCBPcHRpb25hbCBQYWNrYWdlCisgICAgICAgICAgICBBUEkgY2xhc3NlcyAocGFja2FnZSA8Y29kZT5qYXZheC5zcWw8L2NvZGU+KS4gIFlvdSB3aWxsIG5lZWQgdG8KKyAgICAgICAgICAgIGluY2x1ZGUgdGhpcyBmaWxlIGluIHRoZSA8Y29kZT4vV0VCLUlORi9saWI8L2NvZGU+IGRpcmVjdG9yeQorICAgICAgICAgICAgb2YgeW91ciBhcHBsaWNhdGlvbiwgaWYgaXQgaXMgbm90IGFscmVhZHkgbWFkZSB2aXNpYmxlIHRvIHdlYgorICAgICAgICAgICAgYXBwbGljYXRpb25zIGJ5IHlvdXIgc2VydmxldCBjb250YWluZXIuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy1jb25maWdfMV8wLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yCisgICAgICAgICAgICAoRFREKSBmb3IgdGhlIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGUgKHdoaWNoIGlzIHR5cGljYWxseSBuYW1lZAorICAgICAgICAgICAgPGNvZGU+L1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWw8L2NvZGU+LiAgWW91ciBjb25maWd1cmF0aW9uIGZpbGUKKyAgICAgICAgICAgIHdpbGwgYmUgdmFsaWRhdGVkIGFnYWluc3QgYW4gaW50ZXJuYWwgY29weSBvZiB0aGlzIERURCAtLSB0aGlzCisgICAgICAgICAgICBjb3B5IGlzIGF2YWlsYWJsZSBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPndlYi1hcHBfMl8yLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yIChEVEQpCisgICAgICAgICAgICBmb3Igd2ViLnhtbCBmaWxlcyBjb25mb3JtaW5nIHRvIHRoZSBTZXJ2bGV0IDIuMiBzcGVjaWZpY2F0aW9uLgorICAgICAgICAgICAgVGhpcyBjb3B5IGlzIGZvciByZWZlcmVuY2UgcHVycG9zZXMgb25seS48L2xpPgorICAgICAgICA8bGk+PGNvZGU+d2ViLWFwcF8yXzMuZHRkPC9jb2RlPiAtIFRoZSBkb2N1bWVudCB0eXBlIGRlc2NyaXB0b3IgKERURCkKKyAgICAgICAgICAgIGZvciB3ZWIueG1sIGZpbGVzIGNvbmZvcm1pbmcgdG8gdGhlIFNlcnZsZXQgMi4zIHNwZWNpZmljYXRpb24uCisgICAgICAgICAgICBUaGlzIGNvcHkgaXMgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDwvdWw+PC9saT4KKyAgICA8bGk+PGNvZGU+d2ViYXBwcy88L2NvZGU+IC0gV2ViIEFwcGxpY2F0aW9uIEFyY2hpdmUgKFdBUikgZmlsZXMgZm9yIHRoZQorICAgICAgICB3ZWIgYXBwbGljYXRpb25zIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggU3RydXRzLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPkZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBvbmx5LCB0aGUgYmluYXJ5IGRpc3RyaWJ1dGlvbiBhbHNvCisgICAgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBmaWxlcyB0aGF0IGNvbmZvcm0gdG8gdGhlIFN0cnV0cyAwLjUgbWlsZXN0b25lCisgICAgcmVsZWFzZSBBUElzLiAgVXNhZ2Ugb2YgdGhlc2UgZmlsZXMgYW5kIEFQSXMgaXMgZGVwcmVjYXRlZCwgYW5kIHRoZXkKKyAgICB3aWxsIGJlIHJlbW92ZWQgZnJvbSByZWxlYXNlcyBhZnRlciBTdHJ1dHMgMS4wOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPmxpYi88L2NvZGU+IC0gRGlyZWN0b3J5IGNvbnRhaW5pbmcgZmlsZXMgeW91IHdpbGwgbmVlZCBpbgorICAgICAgICB5b3VyIG93biBhcHBsaWNhdGlvbnMuICBUaGUgaW5kaXZpZHVhbCBmaWxlcyBvZiBpbnRlcmVzdCBhcmU6CisgICAgICAgIDx1bD4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy5qYXI8L2NvZGU+IC0gSkFSIGZpbGUgdGhhdCBjb250YWlucyB0aGUgY29tcGlsZWQKKyAgICAgICAgICAgIEphdmEgY2xhc3NlcyBmb3IgYm90aCB2ZXJzaW9uIDAuNSBhbmQgMS4wIG9mIFN0cnV0cy4gIFlvdSBtdXN0CisgICAgICAgICAgICBwbGFjZSB0aGlzIGZpbGUgaW4gdGhlIDxjb2RlPi9XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5IG9mCisgICAgICAgICAgICB5b3VyIHdlYiBhcHBsaWNhdGlvbi48L2xpPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLnRsZDwvY29kZT4gLSBUaGUgdGFnIGxpYnJhcnkgZGVzY3JpcHRvciBmaWxlIGZvcgorICAgICAgICAgICAgdGhlIDAuNSB2ZXJzaW9uIG9mIHRoZSBTdHJ1dHMgdGFncy4gIFlvdSBtdXN0IHBsYWNlIHRoaXMgZmlsZQorICAgICAgICAgICAgaW4gdGhlIDxjb2RlPi9XRUItSU5GPC9jb2RlPiBkaXJlY3Rvcnkgb2YgeW91ciB3ZWIgYXBwbGljYXRpb24sCisgICAgICAgICAgICBhbmQgcmVmZXJlbmNlIGl0IHdpdGggYXBwcm9wcmlhdGUgPGNvZGU+Jmx0O3RhZ2xpYiZndDs8L2NvZGU+CisgICAgICAgICAgICBkaXJlY3RpdmVzIGluIHlvdXIgd2ViLnhtbCBmaWxlLjwvbGk+CisgICAgICAgIDwvdWw+PC9saT4KKyAgICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworCisgIDxzZWN0aW9uIG5hbWU9IldoYXQncyBOZXc/IiBocmVmPSJOZXciPgorCisgICAgPHA+PHN0cm9uZz5ERVBSRUNBVElPTlM8L3N0cm9uZz4gLSBUaGUgZW50aXJlIGN1c3RvbSB0YWcgbGlicmFyeQorICAgIHRoYXQgaXMgZG9jdW1lbnRlZCBpbiA8Y29kZT5zdHJ1dHMudGxkPC9jb2RlPiBoYXMgYmVlbiBkZXByZWNhdGVkLgorICAgIFRoZXNlIHRhZ3MgY29ycmVzcG9uZCB0byB0aGUgU3RydXRzIDAuNSBmdW5jdGlvbmFsaXR5IHRoYXQgaXMgYWxzbworICAgIGRlcHJlY2F0ZWQsIGFuZCBoYXZlIGJlZW4gcmVwbGFjZWQgKGFuZCBjb25zaWRlcmFibHkgZW5oYW5jZWQpIGluCisgICAgdGhlIHZhcmlvdXMgaW5kaXZpZHVhbCB0YWcgbGlicmFyaWVzLjwvcD4KKworICAgIDxwPjxzdHJvbmc+REVQUkVDQVRJT05TPC9zdHJvbmc+IC0gVGhlIGVudGlyZSBjdXN0b20gdGFnIGxpYnJhcnkKKyAgICB0aGF0IGlzIGRvY3VtZW50ZWQgaW4gPGNvZGU+c3RydXRzLWZvcm0udGxkPC9jb2RlPiBoYXMgYmVlbiBkZXByZWNhdGVkCisgICAgYmVjYXVzZSB0aGlzIGxpYnJhcnkgaGFzIGJlZW4gcmVuYW1lZCA8Y29kZT5zdHJ1dHMtaHRtbC50bGQ8L2NvZGU+CisgICAgaW5zdGVhZC48L3A+CisKKyAgICA8cD48c3Ryb25nPkRFUFJFQ0FUSU9OUzwvc3Ryb25nPiAtIFNldmVyYWwgY2xhc3NlcyBpbiB0aGUKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9jb2RlPiBwYWNrYWdlIGhhdmUgYmVlbiBtYXJrZWQgYXMKKyAgICBkZXByZWNhdGVkIGluIHRoZWlyIGVudGlyZXR5LCBiZWNhdXNlIHRoZXkgd2lsbCBiZSByZXBsYWNlZCBieQorICAgIHZlcnNpb25zIGZyb20gdGhlIEpha2FydGEgQ29tbW9ucyBwcm9qZWN0IG9uY2UgdGhvc2UgcGFja2FnZXMgYXJlCisgICAgcmVsZWFzZWQuICBUaGVzZSBkZXByZWNhdGVkIGNsYXNzZXMgd2lsbCA8c3Ryb25nPm5vdDwvc3Ryb25nPiBiZQorICAgIHJlbW92ZWQgdW50aWwgYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjEuICBJbiBnZW5lcmFsLCB0aGUgb25seQorICAgIGNoYW5nZSByZXF1aXJlZCBpbnNpZGUgdXNlciBjb2RlIHVzaW5nIHRoZXNlIGNsYXNzZXMgd2lsbCBiZSB0bworICAgIHVwZGF0ZSB0aGUgPGNvZGU+aW1wb3J0PC9jb2RlPiBzdGF0ZW1lbnQuICBUaGUgZm9sbG93aW5nIGNsYXNzZXMKKyAgICBhcmUgaW52b2x2ZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+QXJyYXlTdGFjazwvbGk+CisgICAgPGxpPkJlYW5VdGlsczwvbGk+CisgICAgPGxpPkNvbnZlcnRVdGlsczwvbGk+CisgICAgPGxpPkZhc3RBcnJheUxpc3Q8L2xpPgorICAgIDxsaT5GYXN0SGFzaE1hcDwvbGk+CisgICAgPGxpPkZhc3RUcmVlTWFwPC9saT4KKyAgICA8bGk+R2VuZXJpY0Nvbm5lY3Rpb248L2xpPgorICAgIDxsaT5HZW5lcmljRGF0YVNvdXJjZTwvbGk+CisgICAgPGxpPlByb3BlcnR5VXRpbHM8L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIGJhc2ljIGNvbnRyb2xsZXIKKyAgICBmcmFtZXdvcmsgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9jb2RlPik6PC9wPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSB1dGlsaXR5IGNsYXNzZXMKKyAgICAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+R2VuZXJpY0RhdGFTb3VyY2U8L2NvZGU+IGNhbiBub3cgYmUgY29uZmlndXJlZCB3aXRoIGEgInBpbmciCisgICAgICAgIHR5cGUgY29tbWFuZCAodmlhIHRoZSA8Y29kZT5waW5nQ29tbWFuZDwvY29kZT4gYW5kCisgICAgICAgIDxjb2RlPnBpbmdRdWVyeTwvY29kZT4gcHJvcGVydGllcykgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIGJlZm9yZQorICAgICAgICByZXR1cm5pbmcgYSBjb25uZWN0aW9uIGZyb20gPGNvZGU+Z2V0Q29ubmVjdGlvbigpPC9jb2RlPi4gIFRoaXMKKyAgICAgICAgY2FuIGJlIHVzZWQgdG8gZGV0ZWN0IHN0YWxlIGNvbm5lY3Rpb25zIGR1ZSB0byB0aW1lb3V0cyBvciBhCisgICAgICAgIGRhdGFiYXNlIHNlcnZlciByZXN0YXJ0LiAgSWYgdGhlIHBpbmcgY29tbWFuZCBmYWlscywgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgY29ubmVjdGlvbiB3aWxsIGJlIHRocm93biBhd2F5LCBhbmQgYSBuZXcgb25lIGFsbG9jYXRlZC48L2xpPgorICAgIDwvdWw+CisKKworICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUKKyAgICA8ZW0+c3RydXRzLWh0bWw8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgKHBhY2thZ2UKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkl0IGlzIG5vdyBwb3NzaWJsZSB0byB1c2UgYW55IG9iamVjdCBpbiB0aGUgdmFsdWVzIGFuZCBsYWJlbHMKKyAgICAgICAgY29sbGVjdGlvbnMgZm9yIHRoZSA8Y29kZT4mbHQ7aHRtbDpvcHRpb25zJmd0OzwvY29kZT4gdGFnLjwvbGk+CisgICAgPGxpPkFkZGVkIHRoZSBtaXNzaW5nIDxjb2RlPnRhYmluZGV4PC9jb2RlPiBhdHRyaWJ1dGUgdG8gdGhlCisgICAgICAgIDxjb2RlPiZsdDtodG1sOnJhZGlvJmd0OzwvY29kZT4gdGFnLjwvbGk+CisgICAgPGxpPk9uIHRoZSA8Y29kZT4mbHQ7aHRtbDppbWcmZ3Q7PC9jb2RlPiwgPGNvZGU+Jmx0O2h0bWw6bGluayZndDs8L2NvZGU+LAorICAgICAgICBhbmQgPGNvZGU+Jmx0O2h0bWw6cmV3cml0ZSZndDs8L2NvZGU+IHRhZ3MsIHlvdSBjYW4gbm93IHNwZWNpZnkKKyAgICAgICAgYXJiaXRyYXJ5IG9iamVjdCB2YWx1ZXMgaW4gdGhlIDxjb2RlPk1hcDwvY29kZT4gdXNlZCB0byBpbmNsdWRlCisgICAgICAgIGR5bmFtaWMgcmVxdWVzdCBhdHRyaWJ1dGVzLCBhcyBsb25nIGFzIHRoZSA8Y29kZT50b1N0cmluZygpPC9jb2RlPgorICAgICAgICBtZXRob2QgcmVuZGVycyB0aGUgdmFsdWVzIGFwcHJvcHJpYXRlbHkuPC9saT4KKyAgICA8bGk+SW4gYWxsIGNhc2VzIHdoZXJlICJtaW5pbWl6ZWQiIGF0dHJpYnV0ZXMgd2VyZSBiZWluZyBnZW5lcmF0ZWQKKyAgICAgICAgKDxjb2RlPmNoZWNrZWQ8L2NvZGU+LCA8Y29kZT5kaXNhYmxlZDwvY29kZT4sIDxjb2RlPm11bHRpcGxlPC9jb2RlPiwKKyAgICAgICAgPGNvZGU+cmVhZG9ubHk8L2NvZGU+LCBhbmQgPGNvZGU+c2VsZWN0ZWQ8L2NvZGU+KSwgdGhlIGdlbmVyYXRlZAorICAgICAgICBhdHRyaWJ1dGUgaGFzIGEgdmFsdWUgKHN1Y2ggYXMgPGNvZGU+c2VsZWN0ZWQ9InRydWUiPC9jb2RlPikgZm9yCisgICAgICAgIFhNTCBzeW50YXggY29tcGF0aWJpbGl0eS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlCisgICAgPGVtPnN0cnV0cy1sb2dpYzwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZQorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvY29kZT4pOjwvcD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUKKyAgICA8ZW0+c3RydXRzLXRlbXBsYXRlPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlPC9jb2RlPik6PC9wPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBTdHJ1dHMgRG9jdW1lbnRhdGlvbgorICAgIGFwcGxpY2F0aW9uIChhbmQgY29ycmVzcG9uZGluZyBjb250ZW50cyBvbiB0aGUgU3RydXRzIHdlYiBzaXRlKTo8L3A+CisKKworICA8L3NlY3Rpb24+CisKKworICA8c2VjdGlvbiBuYW1lPSJDaGFuZ2VzIGFuZCBCdWcgRml4ZXMiIGhyZWY9IkNoYW5nZXMiPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgY29uZmlndXJhdGlvbgorICAgIGZpbGVzIHJlbGF0ZWQgdG8gU3RydXRzOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlRoZSBEVEQgZm9yIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPiBmaWxlcyBoYWQgYW4gaW5jb3JyZWN0CisgICAgICAgIEVOVElUWSBkZWNsYXJhdGlvbiBmb3IgdGhlIDxjb2RlPkxvY2F0aW9uPC9jb2RlPiBlbGVtZW50LjwvbGk+CisgICAgPGxpPlRoZSBEVEQgZm9yIHZlcnNpb24gMi4zIHdlYiBhcHBsaWNhdGlvbiBkZXBsb3ltZW50IGRlc2NyaXB0b3JzIGhhcworICAgICAgICBiZWVuIHVwZGF0ZWQgdG8gdGhlIG1vc3QgcmVjZW50IChQcm9wb3NlZCBGaW5hbCBEcmFmdCAyKSB2ZXJzaW9uLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlIGJhc2ljCisgICAgY29udHJvbGxlciBmcmFtZXdvcmsgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9jb2RlPik6PC9wPgorCisKKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSB1dGlsaXRpZXMKKyAgICAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+VGhlIDxjb2RlPkZhc3RBcnJheU1hcCgpPC9jb2RlPiwgPGNvZGU+RmFzdEhhc2hNYXAoKTwvY29kZT4sIGFuZAorICAgICAgICA8Y29kZT5GYXN0VHJlZU1hcCgpPC9jb2RlPiBjbGFzc2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IHRoZQorICAgICAgICA8Y29kZT5jbG9uZSgpPC9jb2RlPiwgPGNvZGU+ZXF1YWxzKCk8L2NvZGU+LCBhbmQKKyAgICAgICAgPGNvZGU+aGFzaENvZGUoKTwvY29kZT4gbWV0aG9kcyBjb25zaXN0ZW50IHdpdGggdGhlIHJlcXVpcmVtZW50cworICAgICAgICBvZiB0aGUgSmF2YSBzdGFuZGFyZCBDb2xsZWN0aW9ucyBBUElzLjwvbGk+CisgICAgPGxpPjxjb2RlPlByb3BlcnR5VXRpbHM8L2NvZGU+IGNhbiBub3cgYWNjZXNzIHB1YmxpYyBtZXRob2RzIGRlZmluZWQKKyAgICAgICAgaW4gbmVzdGVkIGludGVyZmFjZXMuPC9saT4KKyAgICA8bGk+QSBtaXNsZWFkaW5nIGVycm9yIG1lc3NhZ2UgcmV0dXJuZWQgYnkgPGNvZGU+QmVhblV0aWxzPC9jb2RlPgorICAgICAgICBoYXMgYmVlbiBjb3JyZWN0ZWQuPC9saT4KKyAgICA8bGk+V29yayBhcm91bmQgYSBwcm9ibGVtIGNvbXBpbGluZyB0aGUgPGNvZGU+RmFzdFh4eHh4PC9jb2RlPiBjbGFzc2VzCisgICAgICAgIHdpdGggdGhlIFZBSiBjb21waWxlciwgYmVjYXVzZSB0aGUgc3VwZXJjbGFzcyBhbHJlYWR5IGluY2x1ZGVzIGEKKyAgICAgICAgcHJpdmF0ZSBjbGFzcyBuYW1lZCA8Y29kZT5JdGVyYXRvcjwvY29kZT4uPC9saT4KKyAgICA8bGk+UmVtb3ZlIGEgSkRLIDEuMyBkZXBlbmRlbmN5IHRoYXQgcHJldmVudGVkIGNvbXBpbGluZworICAgICAgICA8Y29kZT5CZWFuVXRpbHM8L2NvZGU+IHVuZGVyIEpESyAxLjIuPC9saT4KKyAgICA8bGk+R2VuZXJhdGUgIiZhbXA7YW1wOyIgaW5zdGVhZCBvZiAiJmFtcDsiIGluIHF1ZXJ5IHN0cmluZ3MgdGhhdAorICAgICAgICBjb250YWluIG1vcmUgdGhhbiBvbmUgbmFtZS92YWx1ZSBwYWlyLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlCisgICAgPGVtPnN0cnV0cy1odG1sPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5SZXN0b3JlIHRoZSBhYmlsaXR5IG9mIHRoZSA8Y29kZT4mbHQ7aHRtbDpidXR0b24mZ3Q7PC9jb2RlPiB0YWcgdG8KKyAgICAgICAgcmV0cmlldmUgdGhlIGJ1dHRvbiB0ZXh0IGZyb20gdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgKHNvIHRoYXQgaXQKKyAgICAgICAgY2FuIGJlIGVhc2lseSBpbnRlcm5hdGlvbmFsaXplZCkuPC9saT4KKyAgICA8bGk+SWYgdGhlIHByb3BlcnR5IG5hbWUgdXNlZCBpbiB0aGUgPGNvZGU+bGFiZWxQcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgYXR0cmlidXRlIG9mIGFuIDxjb2RlPiZsdDtodG1sOm9wdGlvbnMmZ3Q7PC9jb2RlPiB0YWcgaXMgaW52YWxpZCwKKyAgICAgICAgcmVwb3J0IHRoZSBjb3JyZWN0IHByb3BlcnR5IG5hbWUgaW4gdGhlIGVycm9yIG1lc3NhZ2UuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUKKyAgICA8ZW0+c3RydXRzLWxvZ2ljPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPik6PC9wPgorCisKKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgU3RydXRzIERvY3VtZW50YXRpb24KKyAgICBhcHBsaWNhdGlvbiAoYW5kIGNvcnJlc3BvbmRpbmcgY29udGVudHMgb24gdGhlIFN0cnV0cyB3ZWIgc2l0ZSkgaGF2ZQorICAgIG9jY3VycmVkOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkZpeCBhIHJlZmVyZW5jZSB0byBhbiBvbGQgU3RydXRzIDAuNSB0YWcgaW4gb25lIG9mIHRoZSBVc2VyJ3MgR3VpZGUKKyAgICAgICAgZXhhbXBsZXMuPC9saT4KKyAgICA8bGk+Rml4IHRoZSBzdHlsZXNoZWV0IHVzZWQgdG8gdHJhbnNmb3JtIFhNTCBpbnRvIEhUTUwgZG9jdW1lbnRhdGlvbiBzbworICAgICAgICB0aGF0IG5lc3RlZCA8Y29kZT4mbHQ7Ym9keSZndDs8L2NvZGU+IHRhZ3MgYXJlIG5vdCBjcmVhdGVkLjwvbGk+CisgICAgPGxpPlRoZSBEVEQgZm9yIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGVzIGhhcyBiZWVuIHJlZmluZWQgdG8gaGlnaGxpZ2h0CisgICAgICAgIHRoZSBmYWN0IHRoYXQgeW91IHNob3VsZCB1c2UgPGNvZGU+Jmx0O3NldC1wcm9wZXJ0eSZndDs8L2NvZGU+CisgICAgICAgIGVsZW1lbnRzIHRvIGNvbmZpZ3VyZSB5b3VyIGRhdGEgc291cmNlIGltcGxlbWVudGF0aW9uLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgRXhhbXBsZSBBcHBsaWNhdGlvbgorICAgIGhhdmUgb2NjdXJyZWQ6PC9wPgorCisKKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgU3RydXRzIFRlbXBsYXRlIEV4YW1wbGUKKyAgICBBcHBsaWNhdGlvbiBoYXZlIG9jY3VycmVkOjwvcD4KKworCisgIDwvc2VjdGlvbj4KKworCisgIDwvYm9keT4KKworPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLTEuMC4xLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLTEuMC4xLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOGIxYTcwCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3JlbGVhc2Utbm90ZXMtMS4wLjEueG1sCkBAIC0wLDAgKzEsMjA4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9InJlbGVhc2Utbm90ZXMtMS4wLjEuaHRtbCI+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHRpdGxlPlN0cnV0cyBSZWxlYXNlIE5vdGVzIChWZXJzaW9uIDEuMC4xKTwvdGl0bGU+CisgIDwvcHJvcGVydGllcz4KKworICA8Ym9keT4KKworICA8c2VjdGlvbiBuYW1lPSJJbnRyb2R1Y3Rpb24iIGhyZWY9IkludHJvZHVjdGlvbiI+CisKKyAgICA8cD5UaGlzIGRvY3VtZW50IGNvbnRhaW5zIHRoZSByZWxlYXNlIG5vdGVzIGZvcgorICAgIDxzdHJvbmc+VmVyc2lvbiAxLjAuMSA8L3N0cm9uZz4gb2YgdGhlIFN0cnV0cyBGcmFtZXdvcmssCisgICAgYW5kIGNvdmVycyBjaGFuZ2VzIHRoYXQgaGF2ZSB0YWtlbiBwbGFjZSBzaW5jZQorICAgIDxhIGhyZWY9InJlbGVhc2Utbm90ZXMtMS4wLmh0bWwiPlZlcnNpb24gMS4wPC9hPgorICAgIHdhcyByZWxlYXNlZC4gIFRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgY292ZXIKKyAgICA8YSBocmVmPSIjTmV3Ij5OZXcgRmVhdHVyZXM8L2E+IGFuZCA8YSBocmVmPSIjQ2hhbmdlcyI+Q2hhbmdlczwvYT4KKyAgICB0byBTdHJ1dHMuPC9wPgorCisgICAgPHA+VGhpcyB2ZXJzaW9uIGNvdmVycyBidWctZml4ZXMgb25seTsgbm8gbmV3IGZ1bmN0aW9uYWxpdHkuPC9wPgorCisgIDwvc2VjdGlvbj4KKworCisgIDxzZWN0aW9uIG5hbWU9IldoYXQncyBJbmNsdWRlZD8iIGhyZWY9IkluY2x1ZGVkIj4KKworICAgIDxwPlRoZSBiaW5hcnkgZGlzdHJpYnV0aW9uIG9mIHRoaXMgcmVsZWFzZSBpbmNsdWRlcyB0aGUgZm9sbG93aW5nCisgICAgZmlsZXMgcmVsZXZhbnQgdG8gU3RydXRzIDEuMC4xOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPklOU1RBTEw8L2NvZGU+IC0gQnJpZWYgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucy4gIFNlZQorICAgICAgICB0aGUgPGNvZGU+U3RydXRzIERvY3VtZW50YXRpb24gQXBwbGljYXRpb248L2NvZGU+LCBvciBvbmxpbmUgYXQKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvIj5odHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy88L2E+CisgICAgICAgIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvbGk+CisgICAgPGxpPjxjb2RlPkxJQ0VOU0U8L2NvZGU+IC0gVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGxpY2Vuc2UgdGhhdAorICAgICAgICBkZWZpbmVzIHRoZSB0ZXJtcyB1bmRlciB3aGljaCB5b3UgY2FuIHVzZSBTdHJ1dHMgKGFuZCBvdGhlciBzb2Z0d2FyZQorICAgICAgICBsaWNlbnNlZCBieSBBcGFjaGUpLjwvbGk+CisgICAgPGxpPjxjb2RlPlJFQURNRTwvY29kZT4gLSBBIGJyaWVmIGludHJvZHVjdGlvbiB0byBTdHJ1dHMuPC9saT4KKyAgICA8bGk+PGNvZGU+bGliLzwvY29kZT4gLSBEaXJlY3RvcnkgY29udGFpbmluZyBmaWxlcyB5b3Ugd2lsbCBuZWVkIGluCisgICAgICAgIHlvdXIgb3duIGFwcGxpY2F0aW9ucy4gIFRoZSBpbmRpdmlkdWFsIGZpbGVzIG9mIGludGVyZXN0IGFyZToKKyAgICAgICAgPHVsPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLmphcjwvY29kZT4gLSBKQVIgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSBjb21waWxlZAorICAgICAgICAgICAgSmF2YSBjbGFzc2VzIGZvciB2ZXJzaW9uIDEuMCBvZiBTdHJ1dHMuICBZb3UgbXVzdAorICAgICAgICAgICAgcGxhY2UgdGhpcyBmaWxlIGluIHRoZSA8Y29kZT4vV0VCLUlORi9saWI8L2NvZGU+IGRpcmVjdG9yeSBvZgorICAgICAgICAgICAgeW91ciB3ZWIgYXBwbGljYXRpb24uPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy14eHh4eC50bGQ8L2NvZGU+IC0gVGhlIHRhZyBsaWJyYXJ5IGRlc2NyaXB0b3IgZmlsZXMKKyAgICAgICAgICAgIGZvciB0aGUgU3RydXRzIDEuMC4xIHRhZyBsaWJyYXJpZXMgKGJlYW4sIGh0bWwsIGxvZ2ljLCBhbmQKKyAgICAgICAgICAgIHRlbXBsYXRlKS4gIFlvdSBtdXN0IHBsYWNlIHRoZXNlIGZpbGVzIGluIHRoZSA8Y29kZT4vV0VCLUlORjwvY29kZT4KKyAgICAgICAgICAgIGRpcmVjdG9yeSBvZiB5b3VyIHdlYiBhcHBsaWNhdGlvbiwgYW5kIHJlZmVyZW5jZSB0aGVtIHdpdGgKKyAgICAgICAgICAgIGFwcHJvcHJpYXRlIDxjb2RlPiZsdDt0YWdsaWImZ3Q7PC9jb2RlPiBkaXJlY3RpdmVzIGluIHlvdXIKKyAgICAgICAgICAgIHdlYi54bWwgZmlsZS48L2xpPgorICAgICAgICA8bGk+PGNvZGU+amRiYzJfMC1zdGRleHQuamFyPC9jb2RlPiAtIFRoZSBKREJDIDIuMCBPcHRpb25hbCBQYWNrYWdlCisgICAgICAgICAgICBBUEkgY2xhc3NlcyAocGFja2FnZSA8Y29kZT5qYXZheC5zcWw8L2NvZGU+KS4gIFlvdSB3aWxsIG5lZWQgdG8KKyAgICAgICAgICAgIGluY2x1ZGUgdGhpcyBmaWxlIGluIHRoZSA8Y29kZT4vV0VCLUlORi9saWI8L2NvZGU+IGRpcmVjdG9yeQorICAgICAgICAgICAgb2YgeW91ciBhcHBsaWNhdGlvbiwgaWYgaXQgaXMgbm90IGFscmVhZHkgbWFkZSB2aXNpYmxlIHRvIHdlYgorICAgICAgICAgICAgYXBwbGljYXRpb25zIGJ5IHlvdXIgc2VydmxldCBjb250YWluZXIuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy1jb25maWdfMV8wLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yCisgICAgICAgICAgICAoRFREKSBmb3IgdGhlIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGUgKHdoaWNoIGlzIHR5cGljYWxseSBuYW1lZAorICAgICAgICAgICAgPGNvZGU+L1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWw8L2NvZGU+LiAgWW91ciBjb25maWd1cmF0aW9uIGZpbGUKKyAgICAgICAgICAgIHdpbGwgYmUgdmFsaWRhdGVkIGFnYWluc3QgYW4gaW50ZXJuYWwgY29weSBvZiB0aGlzIERURCAtLSB0aGlzCisgICAgICAgICAgICBjb3B5IGlzIGF2YWlsYWJsZSBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPndlYi1hcHBfMl8yLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yIChEVEQpCisgICAgICAgICAgICBmb3Igd2ViLnhtbCBmaWxlcyBjb25mb3JtaW5nIHRvIHRoZSBTZXJ2bGV0IDIuMiBzcGVjaWZpY2F0aW9uLgorICAgICAgICAgICAgVGhpcyBjb3B5IGlzIGZvciByZWZlcmVuY2UgcHVycG9zZXMgb25seS48L2xpPgorICAgICAgICA8bGk+PGNvZGU+d2ViLWFwcF8yXzMuZHRkPC9jb2RlPiAtIFRoZSBkb2N1bWVudCB0eXBlIGRlc2NyaXB0b3IgKERURCkKKyAgICAgICAgICAgIGZvciB3ZWIueG1sIGZpbGVzIGNvbmZvcm1pbmcgdG8gdGhlIFNlcnZsZXQgMi4zIHNwZWNpZmljYXRpb24uCisgICAgICAgICAgICBUaGlzIGNvcHkgaXMgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT48Y29kZT53ZWJhcHBzLzwvY29kZT4gLSBXZWIgQXBwbGljYXRpb24gQXJjaGl2ZSAoV0FSKSBmaWxlcyBmb3IgdGhlCisgICAgICAgICAgICB3ZWIgYXBwbGljYXRpb25zIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggU3RydXRzLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBzdHJ1dHMgMC41IG1pbGVzdG9uZSBBUEkgcmVsZWFzZSBpcyBubyBsb25nZXIgc3VwcG9ydGVkLAorICAgICAgIGFuZCBoYXMgYmVlbiByZW1vdmVkIGFzIG9mIFN0cnV0cyAxLjEuPC9wPgorCisgIDwvc2VjdGlvbj4KKworCisgIDxzZWN0aW9uIG5hbWU9IldoYXQncyBOZXc/IiBocmVmPSJOZXciPgorCisKKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIGJhc2ljIGNvbnRyb2xsZXIKKyAgICBmcmFtZXdvcmsgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9jb2RlPik6PC9wPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSB1dGlsaXR5IGNsYXNzZXMKKyAgICAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+TG9jYWxTdHJpbmdzOiBDb3JyZWN0IG1lc3NhZ2UgcmVnYXJkaW5nIHJlcGxhY2VhYmxlIHBhcmFtZXRlciBzbyB0aGF0IGl0IGRvZXMgbm90IGFwcGVuZCBhbiBleHRyYW5lb3VzIGNoYXJhY3Rlci48L2xpPgorICAgIDxsaT5NZXNzYWdlUmVzb3VyY2VzOiBFc2NhcGUgYW55IHNpbmdsZSBxdW90ZSBjaGFyYWN0ZXJzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSBzdHJpbmcuPC9saT4KKyAgICA8bGk+QWxsb3cgYSB0cmFuc2FjdGlvbiB0b2tlbiB0byBiZSB0aGUgb25seSBwYXJhbWV0ZXIgaW4gY29tcHV0ZVBhcmFtZXRlcnMoKS48L2xpPgorICAgIDxsaT5DaGFuZ2UgUmVxdWVzdFV0aWxzIHRvIGVuY29kZSBhbXBlcnNhbmRzIHdoZW4gYnVpbGRpbmcgYSBxdWVyeSBzdHJpbmcuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtaHRtbDwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZQorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPik6PC9wPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtbG9naWM8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgKHBhY2thZ2UKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+KTo8L3A+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlCisgICAgPGVtPnN0cnV0cy10ZW1wbGF0ZTwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZQorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvY29kZT4pOjwvcD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgU3RydXRzIERvY3VtZW50YXRpb24KKyAgICBhcHBsaWNhdGlvbiAoYW5kIGNvcnJlc3BvbmRpbmcgY29udGVudHMgb24gdGhlIFN0cnV0cyB3ZWIgc2l0ZSk6PC9wPgorCisgIDwvc2VjdGlvbj4KKworCisgIDxzZWN0aW9uIG5hbWU9IkNoYW5nZXMgYW5kIEJ1ZyBGaXhlcyIgaHJlZj0iQ2hhbmdlcyI+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSBjb25maWd1cmF0aW9uCisgICAgZmlsZXMgcmVsYXRlZCB0byBTdHJ1dHM6PC9wPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgYmFzaWMKKyAgICBjb250cm9sbGVyIGZyYW1ld29yayAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5Nb2RpZnkgQWN0aW9uRm9ybSBjbGFzcyB0byB1c2UgQWN0aW9uU2VydmxldFdyYXBwZXIgcmF0aGVyIHRoYW4gZXhwb3NlIEFjdGlvblNlcnZsZXQuPC9saT4KKyAgICA8bGk+QWRkIEFjdGlvblNlcnZsZXRXcmFwcGVyIGNsYXNzLiBVc2VkIGJ5IEFjdGlvbkZvcm0gdG8gcHJldmVudCB0aGUgUHVibGljIFN0cmluZyBwcm9wZXJ0aWVzIG9mIEFjdGlvblNlcnZsZXQgZnJvbSBiZWluZyBjaGFuZ2VkIHZpYSBhIHF1ZXJ5IHN0cmluZy48L2xpPgorICAgIDxsaT5VbmNvbmRpdGlvbmFsbHkgcGFzcyB0aGUgc2VsZWN0ZWQgbWFwcGluZyBhcyBhIHJlcXVlc3QgYXR0cmlidXRlIHVuZGVyIGtleSBBY3Rpb24uTUFQUElOR19LRVksIGV2ZW4gaWYgbm8gZm9ybSBiZWFuIGlzIHNwZWNpZmllZC48L2xpPgorICAgIDxsaT5Bdm9pZCBhIE51bGxQb2ludGVyRXhjZXB0aW9uIGluIGNvcm5lciBjYXNlcyBjYXVzZWQgYnkgZmFpbGVkIGluaXRpYWxpemF0aW9uIG9mIEFjdGlvblNlcnZsZXQuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgZmlsZSB1cGxvYWQKKyAgICBwYWNrYWdlIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkZpeGVkIGxvc3QgYnl0ZSBwcm9ibGVtIGluIEJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L2xpPgorICAgIDxsaT5GaXhlZCBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gc2l0dWF0aW9uczwvbGk+CisgICAgPGxpPkJldHRlciByZXBvcnRpbmcgZm9yIHByZW1hdHVyZSBjbG9zaW5nIG9mIGlucHV0IHN0cmVhbXMgd2hpbGUgcmVhZGluZyBtdWx0aXBhcnQgcmVxdWVzdHMuPC9saT4KKyAgICA8bGk+QWRkaXRpb25hbCBmaXggZm9yIGZpbGUgY29ycnVwdGlvbiBwcm9ibGVtIHdpdGggdXBsb2FkcyBhbmQgbmV3IGxpbmUgY2hhcmFjdGVycy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSB1dGlsaXRpZXMKKyAgICAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+TW9kaWZ5IFJlcXVlc3RVdGlscyBjbGFzcyB0byB1c2UgQWN0aW9uU2VydmxldFdyYXBwZXIgcmF0aGVyIHRoYW4gZXhwb3NlIEFjdGlvblNlcnZsZXQuPC9saT4KKyAgICA8bGk+PGNvZGU+Q29udmVydFV0aWxzLmNvbnZlcnRDaGFyYWN0ZXIoKTwvY29kZT4gd2lsbCBub3cgZGV0ZWN0IGVtcHR5IHN0cmluZ3MgYW5kIHJldHVybiB0aGUgZGVmYXVsdCB2YWx1ZS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZQorICAgIDxlbT5zdHJ1dHMtYmVhbjwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZQorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Q29ycmVjdCB0aGUgZ2VuZXJhdGVkIHNjcmlwdGluZyB2YXJpYWJsZSB0eXBlIHdoZW4gdGhlICZsdDtiZWFuOmNvb2tpZSZndDssICZsdDtiZWFuOmhlYWRlciZndDssIG9yICZsdDtiZWFuOnBhcmFtZXRlciZndDsgdGFnIGlzIHVzZWQgd2l0aCB0aGUgIm11bHRpcGxlIiBhdHRyaWJ1dGUuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUKKyAgICA8ZW0+c3RydXRzLWh0bWw8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgKHBhY2thZ2UKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkZpeGVkIEZvcm1UYWcgdG8gZXhjbHVkZSBxdWVyeSBzdHJpbmcgd2hlbiBpZGVudGlmeWluZyBhY3Rpb24gbWFwcGluZyBuYW1lLjwvbGk+CisgICAgPGxpPkNvcnJlY3QgTXVsdGlib3hUYWdkb0FmdGVyQm9keSgpIHRvIHJldHVybiBTS0lQX0JPRFkgaW5zdGVhZCBvZiBTS0lQX1BBR0UuPC9saT4KKyAgICA8bGk+QWRkZWQgdGhlICdhbGlnbicgYXR0cmlidXRlIHRvIHRoZSAmbHQ7aHRtbDppbWFnZSZndDsgdGFnLjwvbGk+CisgICAgPGxpPk9uIHRoZSBPcHRpb25zIHRhZywgaWYgdGhlIHByb3BlcnR5IHNwZWNpZmllZCBieSB0aGUgInByb3BlcnR5IiBhdHRyaWJ1dGUgcmV0dXJucyBudWxsLCBpdCBub3cgdGhyb3dzIGFuIGVycm9yIG1lc3NhZ2UgdGhhdCBpbmRpY2F0ZXMgd2hhdCB0aGUgcmVhbCBwcm9ibGVtIGlzLCByYXRoZXIgdGhhbiBjYXVzaW5nIGFuIE5QRS48L2xpPgorICAgIDxsaT5BZGRlZCAnc3R5bGUnIGFuZCAnc3R5bGVDbGFzcycgYXR0cmlidXRlcyBmb3IgJmx0O2h0bWw6b3B0aW9uJmd0OyBhbmQgJmx0O2h0bWw6b3B0aW9ucyZndDsgdGFncy48L2xpPgorICAgIDxsaT5Db3JyZWN0bHkgVVJMRW5jb2RlIHRoZSBxdWVyeSBzdHJpbmcgcGFyYW1ldGVyIHZhbHVlIG9uIEltZ1RhZywgZXZlbiBpZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHBhcmFtZXRlci48L2xpPgorICAgIDwvdWw+CisKKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlCisgICAgPGVtPnN0cnV0cy1sb2dpYzwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZQorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlRoZSA8Y29kZT4mbHQ7aHRtbDplcnJvcnMmZ3Q7PC9jb2RlPiB3aGVuIHRoZSBwcm9wZXJ0eSB0YWcgaXMKKyAgICBzcGVjaWZpZWQsIGVycm9ycyBhcmUgbm8gbG9uZ2VyIHByaW50ZWQgaWYgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eQorICAgIGhhcyBubyBlcnJvcnMuIFByZXZpb3VzbHkgZXJyb3JzIHdlcmUgYWx3YXlzIHByaW50ZWQhIEZ1dHVyZQorICAgIGVuaGFuY2VtZW50cyB3b3VsZCBpbmNsdWRlIGFkZGl0aW9uYWwgYXR0cmlidXRlcyB0byBhbHdheXMgdHVybgorICAgIG9mZiB0aGUgaGVhZGVyIG9yIGZvb3Rlci4gPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgdG8gdGhlIFN0cnV0cyBEb2N1bWVudGF0aW9uCisgICAgYXBwbGljYXRpb24gKGFuZCBjb3JyZXNwb25kaW5nIGNvbnRlbnRzIG9uIHRoZSBTdHJ1dHMgd2ViIHNpdGUpIGhhdmUKKyAgICBvY2N1cnJlZDo8L3A+CisgICAgPHVsPgorICAgIDxsaT5BZGQgaW5zdGFsbGF0aW9uIG5vdGVzIGZvciBKZXR0eS48L2xpPgorICAgIDxsaT5JbiB0aGUgVGFnIERldmVsb3BlcnMgR3VpZGUsIGFkZCBtb3JlIGRldGFpbCByZWdhcmRpbmcgZmlsZSB1cGxvYWQgcmVxdWlyZW1lbnRzLjwvbGk+CisgICAgPGxpPkluIHRoZSBJbnRyb2R1Y3Rpb24sIGFkZGVkIHJlZmVyZW5jZXMgdG8gYmFzaWMgYmFja2dyb3VuZCBtYXRlcmlhbC48L2xpPgorICAgIDxsaT5JbiBCdWlsZGluZyBWaWV3IENvbXBvbmVudHMsIGNsYXJpZnkgdGhhdCBhZGRpdGlvbmFsIGkxOG4gc3VwcG9ydCBtYXkgYmUgcHJvdmlkZWQgYnkgdGhlIGJyb3dzZXIsIGFuZCBpcyBvdXRzaWRlIHRoZSBzY29wZSBvZiB0aGUgZnJhbWV3b3JrLjwvbGk+CisgICAgPGxpPkluIEJ1aWxkaW5nIENvbnRyb2xsZXIgQ29tcG9uZW50cywgZG9jdW1lbnQgJ3ZhbGlkYXRpbmcnIGluaXQtcGFyYW0sIGFkZCBkZWZhdWx0cyBmb3IgdmFyaW91cyBwYXJhbWV0ZXJzLCBjbGFyaWZ5IHRoYXQgc29tZSB3ZWIueG1sIHNldHRpbmdzIGFyZSBub3QgU3RydXRzLXNwZWNpZmljLjwvbGk+CisgICAgPGxpPkNvcnJlY3QgdGhlIGV4YW1wbGUgcGFnZSBpbiB0aGUgVXNlcidzIEd1aWRlIChCdWlsZGluZyBWaWV3IENvbXBvbmVudHMpIHRvIHJlZmxlY3QgY3VycmVudCBwcmFjdGljZS48L2xpPgorICAgIDxsaT5SZXZpc2VkIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMgZm9yIFNpbHZlclN0cmVhbSBhbmQgUmVzaW4uPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgdG8gdGhlIFN0cnV0cyBFeGFtcGxlIEFwcGxpY2F0aW9uCisgICAgaGF2ZSBvY2N1cnJlZDo8L3A+CisgICAgPHVsPgorICAgIDxsaT5SZW1vdmUgcmVmZXJlbmNlcyB0byBzYXZpbmcgZGF0YWJhc2UgZGF0YSBmcm9tICJ0b3VyIiBkb2N1bWVudCwgc2luY2UgdGhpcyBmdW5jdGlvbmFsaXR5IHdhcyByZW1vdmVkLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgVGVtcGxhdGUgRXhhbXBsZQorICAgIEFwcGxpY2F0aW9uIGhhdmUgb2NjdXJyZWQ6PC9wPgorCisKKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgU3RydXRzIEV4ZXJjaXNlIFRhZ2xpYiBFeGFtcGxlCisgICAgQXBwbGljYXRpb24gaGF2ZSBvY2N1cnJlZDo8L3A+CisgICAgPHVsPgorICAgIDxsaT5BZGRlZCB0ZXN0IGNhc2UgZm9yICZsdDtodG1sOnNlbGVjdD4gdXNpbmcgJmx0O2h0bWw6b3B0aW9ucz4gYmFzZWQgb24gYSBjb2xsZWN0aW9uCisgIHNhdmVkIGluIHRoZSBwYWdlIGNvbnRleHQuPC9saT4KKyAgICA8L3VsPiAKKworICA8L3NlY3Rpb24+CisKKworICA8L2JvZHk+CisKKzwvZG9jdW1lbnQ+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjAuMi54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjAuMi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzViZWU4NgotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLTEuMC4yLnhtbApAQCAtMCwwICsxLDEwMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSJyZWxlYXNlLW5vdGVzLTEuMC4yLmh0bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5TdHJ1dHMgUmVsZWFzZSBOb3RlcyAoVmVyc2lvbiAxLjAuMik8L3RpdGxlPgorICA8L3Byb3BlcnRpZXM+CisKKyAgPGJvZHk+CisKKyAgPHNlY3Rpb24gbmFtZT0iSW50cm9kdWN0aW9uIiBocmVmPSJJbnRyb2R1Y3Rpb24iPgorCisgICAgPHA+VGhpcyBkb2N1bWVudCBjb250YWlucyB0aGUgcmVsZWFzZSBub3RlcyBmb3IKKyAgICA8c3Ryb25nPlZlcnNpb24gMS4wLjI8L3N0cm9uZz4gb2YgdGhlIFN0cnV0cyBGcmFtZXdvcmssCisgICAgYW5kIGNvdmVycyBjaGFuZ2VzIHRoYXQgaGF2ZSB0YWtlbiBwbGFjZSBzaW5jZQorICAgIDxhIGhyZWY9InJlbGVhc2Utbm90ZXMtMS4wLjEuaHRtbCI+VmVyc2lvbiAxLjAuMTwvYT4KKyAgICB3YXMgcmVsZWFzZWQuICBUaGUgZm9sbG93aW5nIHNlY3Rpb25zIGNvdmVyCisgICAgPGEgaHJlZj0iI05ldyI+TmV3IEZlYXR1cmVzPC9hPiBhbmQgPGEgaHJlZj0iI0NoYW5nZXMiPkNoYW5nZXM8L2E+CisgICAgdG8gU3RydXRzLjwvcD4KKworICAgIDxwPlRoaXMgdmVyc2lvbiBjb3ZlcnMgYnVnLWZpeGVzIG9ubHk7IG5vIG5ldyBmdW5jdGlvbmFsaXR5LjwvcD4KKworICA8L3NlY3Rpb24+CisKKworICA8c2VjdGlvbiBuYW1lPSJXaGF0J3MgSW5jbHVkZWQ/IiBocmVmPSJJbmNsdWRlZCI+CisKKyAgICA8cD5UaGUgYmluYXJ5IGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHJlbGVhc2UgaW5jbHVkZXMgdGhlIGZvbGxvd2luZworICAgIGZpbGVzIHJlbGV2YW50IHRvIFN0cnV0cyAxLjAuMjo8L3A+CisgICAgPHVsPgorICAgIDxsaT48Y29kZT5JTlNUQUxMPC9jb2RlPiAtIEJyaWVmIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMuICBTZWUKKyAgICAgICAgdGhlIDxjb2RlPlN0cnV0cyBEb2N1bWVudGF0aW9uIEFwcGxpY2F0aW9uPC9jb2RlPiwgb3Igb25saW5lIGF0CisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzLyI+aHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvPC9hPgorICAgICAgICBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L2xpPgorICAgIDxsaT48Y29kZT5MSUNFTlNFPC9jb2RlPiAtIFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiBsaWNlbnNlIHRoYXQKKyAgICAgICAgZGVmaW5lcyB0aGUgdGVybXMgdW5kZXIgd2hpY2ggeW91IGNhbiB1c2UgU3RydXRzIChhbmQgb3RoZXIgc29mdHdhcmUKKyAgICAgICAgbGljZW5zZWQgYnkgQXBhY2hlKS48L2xpPgorICAgIDxsaT48Y29kZT5SRUFETUU8L2NvZGU+IC0gQSBicmllZiBpbnRyb2R1Y3Rpb24gdG8gU3RydXRzLjwvbGk+CisgICAgPGxpPjxjb2RlPmxpYi88L2NvZGU+IC0gRGlyZWN0b3J5IGNvbnRhaW5pbmcgZmlsZXMgeW91IHdpbGwgbmVlZCBpbgorICAgICAgICB5b3VyIG93biBhcHBsaWNhdGlvbnMuICBUaGUgaW5kaXZpZHVhbCBmaWxlcyBvZiBpbnRlcmVzdCBhcmU6CisgICAgICAgIDx1bD4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy5qYXI8L2NvZGU+IC0gSkFSIGZpbGUgdGhhdCBjb250YWlucyB0aGUgY29tcGlsZWQKKyAgICAgICAgICAgIEphdmEgY2xhc3NlcyBmb3IgdmVyc2lvbiAxLjAuMiBvZiBTdHJ1dHMuICBZb3UgbXVzdAorICAgICAgICAgICAgcGxhY2UgdGhpcyBmaWxlIGluIHRoZSA8Y29kZT4vV0VCLUlORi9saWI8L2NvZGU+IGRpcmVjdG9yeSBvZgorICAgICAgICAgICAgeW91ciB3ZWIgYXBwbGljYXRpb24uPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy14eHh4eC50bGQ8L2NvZGU+IC0gVGhlIHRhZyBsaWJyYXJ5IGRlc2NyaXB0b3IgZmlsZXMKKyAgICAgICAgICAgIGZvciB0aGUgU3RydXRzIDEuMC4yIHRhZyBsaWJyYXJpZXMgKGJlYW4sIGh0bWwsIGxvZ2ljLCBhbmQKKyAgICAgICAgICAgIHRlbXBsYXRlKS4gIFlvdSBtdXN0IHBsYWNlIHRoZXNlIGZpbGVzIGluIHRoZSA8Y29kZT4vV0VCLUlORjwvY29kZT4KKyAgICAgICAgICAgIGRpcmVjdG9yeSBvZiB5b3VyIHdlYiBhcHBsaWNhdGlvbiwgYW5kIHJlZmVyZW5jZSB0aGVtIHdpdGgKKyAgICAgICAgICAgIGFwcHJvcHJpYXRlIDxjb2RlPiZsdDt0YWdsaWImZ3Q7PC9jb2RlPiBkaXJlY3RpdmVzIGluIHlvdXIKKyAgICAgICAgICAgIHdlYi54bWwgZmlsZS48L2xpPgorICAgICAgICA8bGk+PGNvZGU+amRiYzJfMC1zdGRleHQuamFyPC9jb2RlPiAtIFRoZSBKREJDIDIuMCBPcHRpb25hbCBQYWNrYWdlCisgICAgICAgICAgICBBUEkgY2xhc3NlcyAocGFja2FnZSA8Y29kZT5qYXZheC5zcWw8L2NvZGU+KS4gIFlvdSB3aWxsIG5lZWQgdG8KKyAgICAgICAgICAgIGluY2x1ZGUgdGhpcyBmaWxlIGluIHRoZSA8Y29kZT4vV0VCLUlORi9saWI8L2NvZGU+IGRpcmVjdG9yeQorICAgICAgICAgICAgb2YgeW91ciBhcHBsaWNhdGlvbiwgaWYgaXQgaXMgbm90IGFscmVhZHkgbWFkZSB2aXNpYmxlIHRvIHdlYgorICAgICAgICAgICAgYXBwbGljYXRpb25zIGJ5IHlvdXIgc2VydmxldCBjb250YWluZXIuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy1jb25maWdfMV8wLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yCisgICAgICAgICAgICAoRFREKSBmb3IgdGhlIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGUgKHdoaWNoIGlzIHR5cGljYWxseSBuYW1lZAorICAgICAgICAgICAgPGNvZGU+L1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWw8L2NvZGU+LiAgWW91ciBjb25maWd1cmF0aW9uIGZpbGUKKyAgICAgICAgICAgIHdpbGwgYmUgdmFsaWRhdGVkIGFnYWluc3QgYW4gaW50ZXJuYWwgY29weSBvZiB0aGlzIERURCAtLSB0aGlzCisgICAgICAgICAgICBjb3B5IGlzIGF2YWlsYWJsZSBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPndlYi1hcHBfMl8yLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yIChEVEQpCisgICAgICAgICAgICBmb3Igd2ViLnhtbCBmaWxlcyBjb25mb3JtaW5nIHRvIHRoZSBTZXJ2bGV0IDIuMiBzcGVjaWZpY2F0aW9uLgorICAgICAgICAgICAgVGhpcyBjb3B5IGlzIGZvciByZWZlcmVuY2UgcHVycG9zZXMgb25seS48L2xpPgorICAgICAgICA8bGk+PGNvZGU+d2ViLWFwcF8yXzMuZHRkPC9jb2RlPiAtIFRoZSBkb2N1bWVudCB0eXBlIGRlc2NyaXB0b3IgKERURCkKKyAgICAgICAgICAgIGZvciB3ZWIueG1sIGZpbGVzIGNvbmZvcm1pbmcgdG8gdGhlIFNlcnZsZXQgMi4zIHNwZWNpZmljYXRpb24uCisgICAgICAgICAgICBUaGlzIGNvcHkgaXMgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT48Y29kZT53ZWJhcHBzLzwvY29kZT4gLSBXZWIgQXBwbGljYXRpb24gQXJjaGl2ZSAoV0FSKSBmaWxlcyBmb3IgdGhlCisgICAgICAgICAgICB3ZWIgYXBwbGljYXRpb25zIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggU3RydXRzLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBzdHJ1dHMgMC41IG1pbGVzdG9uZSBBUEkgcmVsZWFzZSBpcyBubyBsb25nZXIgc3VwcG9ydGVkLAorICAgICAgIGFuZCB3aWxsIGJlIHJlbW92ZWQgYXMgb2YgU3RydXRzIDEuMS48L3A+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iV2hhdCdzIE5ldz8iIGhyZWY9Ik5ldyI+CisKKyAgICA8cD5ObyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIGluIHRoaXMgcmVsZWFzZS48L3A+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iQ2hhbmdlcyBhbmQgQnVnIEZpeGVzIiBocmVmPSJDaGFuZ2VzIj4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlIGJhc2ljCisgICAgY29udHJvbGxlciBmcmFtZXdvcmsgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+VGhlIDxjb2RlPkFjdGlvbkZvcm0uZ2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIoKTwvY29kZT4gbWV0aG9kIGlzIG5vdworICAgICAgICBwdWJsaWMgcmF0aGVyIHRoYW4gcHJvdGVjdGVkLCB0byByZXN0b3JlIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgVGlsZXMKKyAgICAgICAgZXh0ZW5zaW9uLjwvbGk+CisgICAgPC91bD4KKworICA8L3NlY3Rpb24+CisKKworICA8L2JvZHk+CisKKzwvZG9jdW1lbnQ+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjAueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3JlbGVhc2Utbm90ZXMtMS4wLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2JlNjRhCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3JlbGVhc2Utbm90ZXMtMS4wLnhtbApAQCAtMCwwICsxLDI4MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSJyZWxlYXNlLW5vdGVzLTEuMC5odG1sIj4KKworICA8cHJvcGVydGllcz4KKyAgICA8dGl0bGU+U3RydXRzIFJlbGVhc2UgTm90ZXMgKFZlcnNpb24gMS4wKTwvdGl0bGU+CisgIDwvcHJvcGVydGllcz4KKworICA8Ym9keT4KKworICA8c2VjdGlvbiBuYW1lPSJJbnRyb2R1Y3Rpb24iIGhyZWY9IkludHJvZHVjdGlvbiI+CisKKyAgICA8cD5UaGlzIGRvY3VtZW50IGNvbnRhaW5zIHRoZSByZWxlYXNlIG5vdGVzIGZvcgorICAgIDxzdHJvbmc+VmVyc2lvbiAxLjA8L3N0cm9uZz4gb2YgdGhlIFN0cnV0cyBGcmFtZXdvcmssCisgICAgYW5kIGNvdmVycyBjaGFuZ2VzIHRoYXQgaGF2ZSB0YWtlbiBwbGFjZSBzaW5jZQorICAgIDxhIGhyZWY9InJlbGVhc2Utbm90ZXMtMS4wLWIzLmh0bWwiPlZlcnNpb24gMS4wLWJldGEtMzwvYT4KKyAgICB3YXMgcmVsZWFzZWQuICBUaGUgZm9sbG93aW5nIHNlY3Rpb25zIGNvdmVyCisgICAgPGEgaHJlZj0iI05ldyI+TmV3IEZlYXR1cmVzPC9hPiBhbmQgPGEgaHJlZj0iI0NoYW5nZXMiPkNoYW5nZXM8L2E+CisgICAgdG8gU3RydXRzLjwvcD4KKworICA8L3NlY3Rpb24+CisKKworICA8c2VjdGlvbiBuYW1lPSJXaGF0J3MgSW5jbHVkZWQ/IiBocmVmPSJJbmNsdWRlZCI+CisKKyAgICA8cD5UaGUgYmluYXJ5IGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHJlbGVhc2UgaW5jbHVkZXMgdGhlIGZvbGxvd2luZworICAgIGZpbGVzIHJlbGV2YW50IHRvIFN0cnV0cyAxLjA6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+SU5TVEFMTDwvY29kZT4gLSBCcmllZiBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLiAgU2VlCisgICAgICAgIHRoZSA8Y29kZT5TdHJ1dHMgRG9jdW1lbnRhdGlvbiBBcHBsaWNhdGlvbjwvY29kZT4sIG9yIG9ubGluZSBhdAorICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy8iPmh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzLzwvYT4KKyAgICAgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9saT4KKyAgICA8bGk+PGNvZGU+TElDRU5TRTwvY29kZT4gLSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gbGljZW5zZSB0aGF0CisgICAgICAgIGRlZmluZXMgdGhlIHRlcm1zIHVuZGVyIHdoaWNoIHlvdSBjYW4gdXNlIFN0cnV0cyAoYW5kIG90aGVyIHNvZnR3YXJlCisgICAgICAgIGxpY2Vuc2VkIGJ5IEFwYWNoZSkuPC9saT4KKyAgICA8bGk+PGNvZGU+UkVBRE1FPC9jb2RlPiAtIEEgYnJpZWYgaW50cm9kdWN0aW9uIHRvIFN0cnV0cy48L2xpPgorICAgIDxsaT48Y29kZT5saWIvPC9jb2RlPiAtIERpcmVjdG9yeSBjb250YWluaW5nIGZpbGVzIHlvdSB3aWxsIG5lZWQgaW4KKyAgICAgICAgeW91ciBvd24gYXBwbGljYXRpb25zLiAgVGhlIGluZGl2aWR1YWwgZmlsZXMgb2YgaW50ZXJlc3QgYXJlOgorICAgICAgICA8dWw+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMuamFyPC9jb2RlPiAtIEpBUiBmaWxlIHRoYXQgY29udGFpbnMgdGhlIGNvbXBpbGVkCisgICAgICAgICAgICBKYXZhIGNsYXNzZXMgZm9yIGJvdGggdmVyc2lvbiAwLjUgYW5kIDEuMCBvZiBTdHJ1dHMuICBZb3UgbXVzdAorICAgICAgICAgICAgcGxhY2UgdGhpcyBmaWxlIGluIHRoZSA8Y29kZT4vV0VCLUlORi9saWI8L2NvZGU+IGRpcmVjdG9yeSBvZgorICAgICAgICAgICAgeW91ciB3ZWIgYXBwbGljYXRpb24uPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy14eHh4eC50bGQ8L2NvZGU+IC0gVGhlIHRhZyBsaWJyYXJ5IGRlc2NyaXB0b3IgZmlsZXMKKyAgICAgICAgICAgIGZvciB0aGUgU3RydXRzIDEuMCB0YWcgbGlicmFyaWVzIChiZWFuLCBodG1sLCBsb2dpYywgYW5kCisgICAgICAgICAgICB0ZW1wbGF0ZSkuICBZb3UgbXVzdCBwbGFjZSB0aGVzZSBmaWxlcyBpbiB0aGUgPGNvZGU+L1dFQi1JTkY8L2NvZGU+CisgICAgICAgICAgICBkaXJlY3Rvcnkgb2YgeW91ciB3ZWIgYXBwbGljYXRpb24sIGFuZCByZWZlcmVuY2UgdGhlbSB3aXRoCisgICAgICAgICAgICBhcHByb3ByaWF0ZSA8Y29kZT4mbHQ7dGFnbGliJmd0OzwvY29kZT4gZGlyZWN0aXZlcyBpbiB5b3VyCisgICAgICAgICAgICB3ZWIueG1sIGZpbGUuICA8c3Ryb25nPk5PVEU8L3N0cm9uZz4gLSBUaGUgc3RydXRzLWZvcm0udGxkCisgICAgICAgICAgICBmaWxlIGlzIGRlcHJlY2F0ZWQ7IHlvdSBzaG91bGQgdXNlIHRoZSBzdHJ1dHMtaHRtbC50bGQgZmlsZQorICAgICAgICAgICAgaW5zdGVhZC48L2xpPgorICAgICAgICA8bGk+PGNvZGU+amRiYzJfMC1zdGRleHQuamFyPC9jb2RlPiAtIFRoZSBKREJDIDIuMCBPcHRpb25hbCBQYWNrYWdlCisgICAgICAgICAgICBBUEkgY2xhc3NlcyAocGFja2FnZSA8Y29kZT5qYXZheC5zcWw8L2NvZGU+KS4gIFlvdSB3aWxsIG5lZWQgdG8KKyAgICAgICAgICAgIGluY2x1ZGUgdGhpcyBmaWxlIGluIHRoZSA8Y29kZT4vV0VCLUlORi9saWI8L2NvZGU+IGRpcmVjdG9yeQorICAgICAgICAgICAgb2YgeW91ciBhcHBsaWNhdGlvbiwgaWYgaXQgaXMgbm90IGFscmVhZHkgbWFkZSB2aXNpYmxlIHRvIHdlYgorICAgICAgICAgICAgYXBwbGljYXRpb25zIGJ5IHlvdXIgc2VydmxldCBjb250YWluZXIuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy1jb25maWdfMV8wLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yCisgICAgICAgICAgICAoRFREKSBmb3IgdGhlIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGUgKHdoaWNoIGlzIHR5cGljYWxseSBuYW1lZAorICAgICAgICAgICAgPGNvZGU+L1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWw8L2NvZGU+LiAgWW91ciBjb25maWd1cmF0aW9uIGZpbGUKKyAgICAgICAgICAgIHdpbGwgYmUgdmFsaWRhdGVkIGFnYWluc3QgYW4gaW50ZXJuYWwgY29weSBvZiB0aGlzIERURCAtLSB0aGlzCisgICAgICAgICAgICBjb3B5IGlzIGF2YWlsYWJsZSBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPndlYi1hcHBfMl8yLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yIChEVEQpCisgICAgICAgICAgICBmb3Igd2ViLnhtbCBmaWxlcyBjb25mb3JtaW5nIHRvIHRoZSBTZXJ2bGV0IDIuMiBzcGVjaWZpY2F0aW9uLgorICAgICAgICAgICAgVGhpcyBjb3B5IGlzIGZvciByZWZlcmVuY2UgcHVycG9zZXMgb25seS48L2xpPgorICAgICAgICA8bGk+PGNvZGU+d2ViLWFwcF8yXzMuZHRkPC9jb2RlPiAtIFRoZSBkb2N1bWVudCB0eXBlIGRlc2NyaXB0b3IgKERURCkKKyAgICAgICAgICAgIGZvciB3ZWIueG1sIGZpbGVzIGNvbmZvcm1pbmcgdG8gdGhlIFNlcnZsZXQgMi4zIHNwZWNpZmljYXRpb24uCisgICAgICAgICAgICBUaGlzIGNvcHkgaXMgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDwvdWw+PC9saT4KKyAgICA8bGk+PGNvZGU+d2ViYXBwcy88L2NvZGU+IC0gV2ViIEFwcGxpY2F0aW9uIEFyY2hpdmUgKFdBUikgZmlsZXMgZm9yIHRoZQorICAgICAgICB3ZWIgYXBwbGljYXRpb25zIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggU3RydXRzLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPkZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBvbmx5LCB0aGUgYmluYXJ5IGRpc3RyaWJ1dGlvbiBhbHNvCisgICAgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBmaWxlcyB0aGF0IGNvbmZvcm0gdG8gdGhlIFN0cnV0cyAwLjUgbWlsZXN0b25lCisgICAgcmVsZWFzZSBBUElzLiAgVXNhZ2Ugb2YgdGhlc2UgZmlsZXMgYW5kIEFQSXMgaXMgZGVwcmVjYXRlZCwgYW5kIHRoZXkKKyAgICB3aWxsIGJlIHJlbW92ZWQgZnJvbSByZWxlYXNlcyBhZnRlciBTdHJ1dHMgMS4wOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPmxpYi88L2NvZGU+IC0gRGlyZWN0b3J5IGNvbnRhaW5pbmcgZmlsZXMgeW91IHdpbGwgbmVlZCBpbgorICAgICAgICB5b3VyIG93biBhcHBsaWNhdGlvbnMuICBUaGUgaW5kaXZpZHVhbCBmaWxlcyBvZiBpbnRlcmVzdCBhcmU6CisgICAgICAgIDx1bD4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy5qYXI8L2NvZGU+IC0gSkFSIGZpbGUgdGhhdCBjb250YWlucyB0aGUgY29tcGlsZWQKKyAgICAgICAgICAgIEphdmEgY2xhc3NlcyBmb3IgYm90aCB2ZXJzaW9uIDAuNSBhbmQgMS4wIG9mIFN0cnV0cy4gIFlvdSBtdXN0CisgICAgICAgICAgICBwbGFjZSB0aGlzIGZpbGUgaW4gdGhlIDxjb2RlPi9XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5IG9mCisgICAgICAgICAgICB5b3VyIHdlYiBhcHBsaWNhdGlvbi48L2xpPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLnRsZDwvY29kZT4gLSBUaGUgdGFnIGxpYnJhcnkgZGVzY3JpcHRvciBmaWxlIGZvcgorICAgICAgICAgICAgdGhlIDAuNSB2ZXJzaW9uIG9mIHRoZSBTdHJ1dHMgdGFncy4gIFlvdSBtdXN0IHBsYWNlIHRoaXMgZmlsZQorICAgICAgICAgICAgaW4gdGhlIDxjb2RlPi9XRUItSU5GPC9jb2RlPiBkaXJlY3Rvcnkgb2YgeW91ciB3ZWIgYXBwbGljYXRpb24sCisgICAgICAgICAgICBhbmQgcmVmZXJlbmNlIGl0IHdpdGggYXBwcm9wcmlhdGUgPGNvZGU+Jmx0O3RhZ2xpYiZndDs8L2NvZGU+CisgICAgICAgICAgICBkaXJlY3RpdmVzIGluIHlvdXIgd2ViLnhtbCBmaWxlLjwvbGk+CisgICAgICAgIDwvdWw+PC9saT4KKyAgICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworCisgIDxzZWN0aW9uIG5hbWU9IldoYXQncyBOZXc/IiBocmVmPSJOZXciPgorCisgICAgPHA+PHN0cm9uZz5ERVBSRUNBVElPTlM8L3N0cm9uZz4gLSBUaGUgZW50aXJlIGN1c3RvbSB0YWcgbGlicmFyeQorICAgIHRoYXQgaXMgZG9jdW1lbnRlZCBpbiA8Y29kZT5zdHJ1dHMudGxkPC9jb2RlPiBoYXMgYmVlbiBkZXByZWNhdGVkLgorICAgIFRoZXNlIHRhZ3MgY29ycmVzcG9uZCB0byB0aGUgU3RydXRzIDAuNSBmdW5jdGlvbmFsaXR5IHRoYXQgaXMgYWxzbworICAgIGRlcHJlY2F0ZWQsIGFuZCBoYXZlIGJlZW4gcmVwbGFjZWQgKGFuZCBjb25zaWRlcmFibHkgZW5oYW5jZWQpIGluCisgICAgdGhlIHZhcmlvdXMgaW5kaXZpZHVhbCB0YWcgbGlicmFyaWVzLjwvcD4KKworICAgIDxwPjxzdHJvbmc+REVQUkVDQVRJT05TPC9zdHJvbmc+IC0gVGhlIGVudGlyZSBjdXN0b20gdGFnIGxpYnJhcnkKKyAgICB0aGF0IGlzIGRvY3VtZW50ZWQgaW4gPGNvZGU+c3RydXRzLWZvcm0udGxkPC9jb2RlPiBoYXMgYmVlbiBkZXByZWNhdGVkCisgICAgYmVjYXVzZSB0aGlzIGxpYnJhcnkgaGFzIGJlZW4gcmVuYW1lZCA8Y29kZT5zdHJ1dHMtaHRtbC50bGQ8L2NvZGU+CisgICAgaW5zdGVhZC48L3A+CisKKyAgICA8cD48c3Ryb25nPkRFUFJFQ0FUSU9OUzwvc3Ryb25nPiAtIFNldmVyYWwgY2xhc3NlcyBpbiB0aGUKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9jb2RlPiBwYWNrYWdlIGhhdmUgYmVlbiBtYXJrZWQgYXMKKyAgICBkZXByZWNhdGVkIGluIHRoZWlyIGVudGlyZXR5LCBiZWNhdXNlIHRoZXkgd2lsbCBiZSByZXBsYWNlZCBieQorICAgIHZlcnNpb25zIGZyb20gdGhlIEpha2FydGEgQ29tbW9ucyBwcm9qZWN0IG9uY2UgdGhvc2UgcGFja2FnZXMgYXJlCisgICAgcmVsZWFzZWQuICBUaGVzZSBkZXByZWNhdGVkIGNsYXNzZXMgd2lsbCA8c3Ryb25nPm5vdDwvc3Ryb25nPiBiZQorICAgIHJlbW92ZWQgdW50aWwgYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjEuICBJbiBnZW5lcmFsLCB0aGUgb25seQorICAgIGNoYW5nZSByZXF1aXJlZCBpbnNpZGUgdXNlciBjb2RlIHVzaW5nIHRoZXNlIGNsYXNzZXMgd2lsbCBiZSB0bworICAgIHVwZGF0ZSB0aGUgPGNvZGU+aW1wb3J0PC9jb2RlPiBzdGF0ZW1lbnQuICBUaGUgZm9sbG93aW5nIGNsYXNzZXMKKyAgICBhcmUgaW52b2x2ZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+QXJyYXlTdGFjazwvbGk+CisgICAgPGxpPkJlYW5VdGlsczwvbGk+CisgICAgPGxpPkNvbnZlcnRVdGlsczwvbGk+CisgICAgPGxpPkZhc3RBcnJheUxpc3Q8L2xpPgorICAgIDxsaT5GYXN0SGFzaE1hcDwvbGk+CisgICAgPGxpPkZhc3RUcmVlTWFwPC9saT4KKyAgICA8bGk+R2VuZXJpY0Nvbm5lY3Rpb248L2xpPgorICAgIDxsaT5HZW5lcmljRGF0YVNvdXJjZTwvbGk+CisgICAgPGxpPlByb3BlcnR5VXRpbHM8L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIGJhc2ljIGNvbnRyb2xsZXIKKyAgICBmcmFtZXdvcmsgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9jb2RlPik6PC9wPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSB1dGlsaXR5IGNsYXNzZXMKKyAgICAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9jb2RlPik6PC9wPgorCisKKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlCisgICAgPGVtPnN0cnV0cy1odG1sPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5UaGUgPGNvZGU+Jmx0O2h0bWw6bGluayZndDs8L2NvZGU+IHRhZyBub3cgc3VwcG9ydHMgdGhlIG9wdGlvbmFsCisgICAgICAgIDxjb2RlPnRpdGxlPC9jb2RlPiBhdHRyaWJ1dGUsIHRoYXQgY2F1c2VzIHNvbWUgYnJvd3NlcnMgdG8gZGlzcGxheQorICAgICAgICBhbHRlcm5hdGUgdGV4dCB3aGVuIHRoZSBtb3VzZSBpcyBob3ZlcmVkIG92ZXIgYSBoeXBlcmxpbmsuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtbG9naWM8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgKHBhY2thZ2UKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5UaGUgPGNvZGU+Jmx0O2xvZ2ljOml0ZXJhdGUmZ3Q7PC9jb2RlPiB0YWcgbm93IHN1cHBvcnRzIGEgbmV3CisgICAgICAgIGF0dHJpYnV0ZSwgPGNvZGU+aW5kZXhJZDwvY29kZT4uICBUaGlzIGF0dHJpYnV0ZSBuYW1lcyBhIHBhZ2Ugc2NvcGUKKyAgICAgICAgYXR0cmlidXRlIChhbmQgY29ycmVzcG9uZGluZyBzY3JpcHRpbmcgdmFyaWFibGUpIHRoYXQgd2lsbCBiZQorICAgICAgICBleHBvc2VkIGluIHRoZSBuZXN0ZWQgYm9keSBvZiB0aGUgaXRlcmF0aW9uLCB3aGljaCB3aWxsIGNvbnRhaW4KKyAgICAgICAgdGhlIGN1cnJlbnQgbG9vcCBpbmRleCBhcyBhIGphdmEubGFuZy5JbnRlZ2VyLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUKKyAgICA8ZW0+c3RydXRzLXRlbXBsYXRlPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlPC9jb2RlPik6PC9wPgorCisKKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIFN0cnV0cyBEb2N1bWVudGF0aW9uCisgICAgYXBwbGljYXRpb24gKGFuZCBjb3JyZXNwb25kaW5nIGNvbnRlbnRzIG9uIHRoZSBTdHJ1dHMgd2ViIHNpdGUpOjwvcD4KKworICA8L3NlY3Rpb24+CisKKworICA8c2VjdGlvbiBuYW1lPSJDaGFuZ2VzIGFuZCBCdWcgRml4ZXMiIGhyZWY9IkNoYW5nZXMiPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgY29uZmlndXJhdGlvbgorICAgIGZpbGVzIHJlbGF0ZWQgdG8gU3RydXRzOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlRoZSBkb2N1bWVudGF0aW9uIGFib3V0IGNvbmZpZ3VyaW5nIGEgZGF0YSBzb3VyY2UgZWxlbWVudCBpbiB0aGUKKyAgICAgICAgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+IGZpbGUgaGFzIGJlZW4gdXBkYXRlZCB0byBlbXBoYXNpemUKKyAgICAgICAgdGhlIHVzZSBvZiA8Y29kZT4mbHQ7c2V0LXByb3BlcnR5Jmd0OzwvY29kZT4gZWxlbWVudHMgbmVzdGVkIGluc2lkZQorICAgICAgICB0aGUgPGNvZGU+Jmx0O2RhdGEtc291cmNlJmd0OzwvY29kZT4gZWxlbWVudC4gIE5vIGZ1cnRoZXIgYWRkaXRpb25hbAorICAgICAgICBhdHRyaWJ1dGVzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIDxjb2RlPiZsdDtkYXRhLXNvdXJjZSZndDs8L2NvZGU+CisgICAgICAgIGVsZW1lbnQgaW4gdGhlIERURCB0byBzdXBwb3J0IGN1c3RvbSBwcm9wZXJ0aWVzIG9mIHBhcnRpY3VsYXIKKyAgICAgICAgZGF0YSBzb3VyY2UgaW1wbGVtZW50YXRpb25zLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlIGJhc2ljCisgICAgY29udHJvbGxlciBmcmFtZXdvcmsgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+U2V2ZXJhbCBpc3N1ZXMgaW50cm9kdWNlZCB3aXRoIHRoZSBpbnRlcm5hbCB3cmFwcGluZyBvZiBtdWx0aXBhcnQKKyAgICAgICAgcmVxdWVzdHMgaGF2ZSBiZWVuIGZpeGVkLjwvbGk+CisgICAgPGxpPlRoZSBpbnN0YW5jZSB2YXJpYWJsZXMgaW4gdGhlIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJhc2UgY2xhc3MKKyAgICAgICAgYXJlIG5vdyB0cmFuc2llbnQsIHNvIHRoYXQgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gaW5zdGFuY2VzIGNhbgorICAgICAgICBhY3R1YWxseSBiZSBzZXJpYWxpemVkLiAgPHN0cm9uZz5XQVJOSU5HPC9zdHJvbmc+IC0gSWYgeW91IGRlc2VyaWFsaXplCisgICAgICAgIHN1Y2ggYW4gPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gaW5zdGFuY2UgYW5kIGF0dGVtcHQgdG8gdXNlIGl0IHdpdGhpbgorICAgICAgICB0aGUgU3RydXRzIGZyYW1ld29yaywgYmUgc3VyZSB0byBjYWxsIDxjb2RlPnNldFNlcnZsZXQoKTwvY29kZT4gKGFuZAorICAgICAgICA8Y29kZT5zZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGVyKCk8L2NvZGU+IGlmIGFwcHJvcHJpYXRlKSBmaXJzdC48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSBmaWxlIHVwbG9hZAorICAgIHBhY2thZ2UgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Rml4ZWQgYSBidWcgdGhhdCBjb3VsZCBjYXVzZSBjb3JydXB0aW9uIGluIHRoZSB1cGxvYWRlZCBmaWxlLAorICAgICAgICBieSBjb252ZXJ0aW5nIHNlcXVlbmNlcyBvZiBcclxuXG4gaW50byBcclxuXHJcbi48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSB1dGlsaXRpZXMKKyAgICAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Q29ycmVjdGVkIGEgY3V0LWFuZC1wYXN0ZSB0eXBvIHRoYXQgY2F1c2VkIE51bGxQb2ludGVyRXhjZXB0aW9uCisgICAgICAgIG9uIGF0dGVtcHRzIHRvIHVzZSB0aGUgbmV3IDxjb2RlPnBpbmdRdWVyeTwvY29kZT4gcHJvcGVydHkgdGhhdAorICAgICAgICB3YXMgYWRkZWQgaW4gU3RydXRzIDEuMC1iMy48L2xpPgorICAgIDxsaT5GaXggb3BlcmF0aW9uIG9yZGVyaW5nIHNvIHRoYXQgPGNvZGU+UmVxdWVzdFV0aWxzLmxvb2t1cCgpPC9jb2RlPgorICAgICAgICB3aWxsIHRocm93IGEgSnNwRXhjZXB0aW9uIHdoZW4gdGhlIHNwZWNpZmllZCBiZWFuIGlzIG1pc3NpbmcsIGluCisgICAgICAgIGFjY29yZGFuY2Ugd2l0aCBpdHMgSmF2YURvYyBkb2N1bWVudGF0aW9uLjwvbGk+CisgICAgPGxpPkRpZ2VzdGVyIGNhbGxzIHRvIDxjb2RlPlJ1bGUuYm9keSgpPC9jb2RlPiBtZXRob2RzIHdpbGwgbm93IHRyaW0KKyAgICAgICAgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSBmaXJzdCwgY29uc2lzdGVudCB3aXRoIHRoZSBiZWhhdmlvcgorICAgICAgICBvZiBvdGhlciBib2R5IHByb2Nlc3NpbmcgcGVyZm9ybWVkIHdpdGhpbiB0aGUgcnVsZXMuPC9saT4KKyAgICA8bGk+Q29ycmVjdCB0aGUgY2FsY3VsYXRpb24gb2YgYW4gYWJzb2x1dGUgVVJMIGZyb20gYSBjb250ZXh0LXJlbGF0aXZlCisgICAgICAgIHBhdGggaW4gPGNvZGU+UmVxdWVzdFV0aWxzLmFic29sdXRlVVJMKCk8L2NvZGU+LjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlCisgICAgPGVtPnN0cnV0cy1iZWFuPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5UaGUgPGNvZGU+Jmx0O2JlYW46aW5jbHVkZSZndDs8L2NvZGU+IHRhZyB3aWxsIG5vdyBwYXNzIGEgc2Vzc2lvbgorICAgICAgICBpZGVudGlmaWVyIG9uIHRvIHRoZSBpbmNsdWRlZCByZXF1ZXN0IChhc3N1bWluZyB0aGF0IGl0IGlzIHBhcnQgb2YKKyAgICAgICAgdGhlIHNhbWUgd2ViIGFwcGxpY2F0aW9uKSwgZXZlbiBpZiB0aGUgY3VycmVudCByZXF1ZXN0IGlzIG1haW50YWluaW5nCisgICAgICAgIHNlc3Npb24gaWRlbnRpdHkgd2l0aCBjb29raWVzLiAgUHJldmlvdXNseSwgdGhpcyBvbmx5IHdvcmtlZCBpZiB5b3UKKyAgICAgICAgd2VyZSB1c2luZyBVUkwgcmV3cml0aW5nLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlCisgICAgPGVtPnN0cnV0cy1odG1sPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5Gb3IgYWxsIHRhZ3Mgd2hlcmUgU3RydXRzIGdlbmVyYXRlcyBhdHRyaWJ1dGVzIHRoYXQgYXJlIGFsbG93ZWQgdG8KKyAgICAgICAgYmUgbWluaW1pemVkIGluIHRoZSBIVE1MIHNwZWNpZmljYXRpb24gKGkuZS4gY2hlY2tlZCwgZGlzYWJsZWQsCisgICAgICAgIG11bHRpcGxlLCByZWFkb25seSwgYW5kIHNlbGVjdGVkKSwgZ2VuZXJhdGUgYXR0cmlidXRlIHZhbHVlcyBlcXVhbAorICAgICAgICB0byB0aGUgYXR0cmlidXRlIG5hbWUsIGFzIHJlcXVpcmVkIGJ5IEhUTUwgNC4wMSwgc2VjdGlvbiAzLjMuNC4KKyAgICAgICAgRm9yIGV4YW1wbGUsIGdlbmVyYXRlIDxjb2RlPmNoZWNrZWQ9ImNoZWNrZWQiPC9jb2RlPiBpbnN0ZWFkIG9mCisgICAgICAgIDxjb2RlPmNoZWNrZWQ9InRydWUiPC9jb2RlPiBmb3IgdGhlICJjaGVja2VkIiBhdHRyaWJ1dGUuPC9saT4KKyAgICA8bGk+Q29ycmVjdGx5IGdlbmVyYXRlIGEgPGNvZGU+Jmx0O2EgbmFtZT0ibXkgbmFtZSImZ3Q7Jmx0OyZndDs8L2NvZGU+CisgICAgICAgIGVsZW1lbnQgd2hlbiB0aGUgPGNvZGU+bGlua05hbWU8L2NvZGU+IGF0dHJpYnV0ZSBpcyB1c2VkIG9uIHRoZQorICAgICAgICA8Y29kZT4mbHQ7aHRtbDpsaW5rJmd0OzwvY29kZT4gdGFnLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlCisgICAgPGVtPnN0cnV0cy1sb2dpYzwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZQorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlVwZGF0ZSB0aGUgcHJvY2Vzc2luZyBwZXJmb3JtZWQgYnkgdGhlCisgICAgICAgIDxjb2RlPiZsdDtsb2dpYzpwcmVzZW50Jmd0OzwvY29kZT4gYW5kCisgICAgICAgIDxjb2RlPiZsdDtsb2dpYzpub3RQcmVzZW50Jmd0OzwvY29kZT4gdGFncyB0byByZWZsZWN0IHRoZSBjaGFuZ2VkCisgICAgICAgIGJlaGF2aW9yIG9mIDxjb2RlPlJlcXVlc3RVdGlscy5sb29rdXAoKTwvY29kZT4uPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgdG8gdGhlIFN0cnV0cyBEb2N1bWVudGF0aW9uCisgICAgYXBwbGljYXRpb24gKGFuZCBjb3JyZXNwb25kaW5nIGNvbnRlbnRzIG9uIHRoZSBTdHJ1dHMgd2ViIHNpdGUpIGhhdmUKKyAgICBvY2N1cnJlZDo8L3A+CisgICAgPHVsPgorICAgIDxsaT5MaW5rcyB0byBzdWJzY3JpYmUgYW5kIHVuc3Vic2NyaWJlIGZyb20gdGhlIFNUUlVUUy1ERVYgYW5kCisgICAgICAgIFNUUlVUUy1VU0VSIG1haWxpbmcgbGlzdHMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBob21lIHBhZ2UuPC9saT4KKyAgICA8bGk+TWlzY2VsbGFuZW91cyBjb3JyZWN0aW9ucyB0byB0eXBvcyBhbmQgaHlwZXJsaW5rcy48L2xpPgorICAgIDxsaT5DbGVhbmVkIHVwIHByb2JsZW1zIGluIHRoZSBzdHlsZXNoZWV0cyB1c2VkIHRvIGNyZWF0ZSBkb2N1bWVudGF0aW9uCisgICAgICAgIHBhZ2VzIHRoYXQgZm9ybWVybHkgZW1pdHRlZCA8Y29kZT4mbHQ7cHJvamVjdCZndDs8L2NvZGU+IHRhZ3MgaW4gdGhlCisgICAgICAgIGdlbmVyYXRlZCBIVE1MLCBhbmQgZ2VuZXJhdGVkIGluY29ycmVjdCByZWZlcmVuY2VzIHRvIGxpbmsgY29sb3JzIGluCisgICAgICAgIHRoZSBuYXZpZ2F0aW9uIGJhci48L2xpPgorICAgIDxsaT5BZGRlZCBhICJXaG8gV2UgQXJlIiBwYWdlIHRvIHRoZSBkb2N1bWVudGF0aW9uLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgRXhhbXBsZSBBcHBsaWNhdGlvbgorICAgIGhhdmUgb2NjdXJyZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+VGhlIDxjb2RlPm5hbWU8L2NvZGU+IGFuZCA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGVzIG9mIHRoZQorICAgICAgICA8Y29kZT4mbHQ7YXBwOmNoZWNrTG9nb24mZ3Q7PC9jb2RlPiB0YWcgbm93IGFjY2VwdCBydW50aW1lCisgICAgICAgIGV4cHJlc3Npb25zLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgVGVtcGxhdGUgRXhhbXBsZQorICAgIEFwcGxpY2F0aW9uIGhhdmUgb2NjdXJyZWQ6PC9wPgorCisgIDwvc2VjdGlvbj4KKworCisgIDwvYm9keT4KKworPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLTEuMS1iMS54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjEtYjEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiZDRlM2UKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjEtYjEueG1sCkBAIC0wLDAgKzEsMzM5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9InJlbGVhc2Utbm90ZXMtMS4xLWIxLmh0bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5TdHJ1dHMgUmVsZWFzZSBOb3RlcyAoY3VycmVudCBuaWdodGx5IGJ1aWxkKTwvdGl0bGU+CisgIDwvcHJvcGVydGllcz4KKworICA8Ym9keT4KKworICA8c2VjdGlvbiBuYW1lPSJJbnRyb2R1Y3Rpb24iIGhyZWY9IkludHJvZHVjdGlvbiI+CisKKyAgICA8cD5UaGlzIGRvY3VtZW50IGNvbnRhaW5zIHRoZSByZWxlYXNlIG5vdGVzIGZvcgorICAgIDxzdHJvbmc+VmVyc2lvbiAxLjEgQmV0YSAxPC9zdHJvbmc+IG9mIHRoZSBTdHJ1dHMgRnJhbWV3b3JrLAorICAgIGFuZCBjb3ZlcnMgY2hhbmdlcyB0aGF0IGhhdmUgdGFrZW4gcGxhY2Ugc2luY2UKKyAgICA8YSBocmVmPSJyZWxlYXNlLW5vdGVzLTEuMC4xLmh0bWwiPlZlcnNpb24gMS4wLjE8L2E+CisgICAgd2FzIHJlbGVhc2VkLiAgVGhlIGZvbGxvd2luZyBzZWN0aW9ucyBjb3ZlcgorICAgIDxhIGhyZWY9IiNOZXciPk5ldyBGZWF0dXJlczwvYT4gYW5kIDxhIGhyZWY9IiNDaGFuZ2VzIj5DaGFuZ2VzPC9hPgorICAgIHRvIFN0cnV0cy48L3A+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iV2hhdCdzIEluY2x1ZGVkPyIgaHJlZj0iSW5jbHVkZWQiPgorCisgICAgPHA+VGhlIGJpbmFyeSBkaXN0cmlidXRpb24gb2YgdGhpcyByZWxlYXNlIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcKKyAgICBmaWxlcyByZWxldmFudCB0byBTdHJ1dHM6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+SU5TVEFMTDwvY29kZT4gLSBCcmllZiBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLiAgU2VlCisgICAgICAgIHRoZSA8Y29kZT5TdHJ1dHMgRG9jdW1lbnRhdGlvbiBBcHBsaWNhdGlvbjwvY29kZT4sIG9yIG9ubGluZSBhdAorICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy8iPmh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzLzwvYT4KKyAgICAgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9saT4KKyAgICA8bGk+PGNvZGU+TElDRU5TRTwvY29kZT4gLSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gbGljZW5zZSB0aGF0CisgICAgICAgIGRlZmluZXMgdGhlIHRlcm1zIHVuZGVyIHdoaWNoIHlvdSBjYW4gdXNlIFN0cnV0cyAoYW5kIG90aGVyIHNvZnR3YXJlCisgICAgICAgIGxpY2Vuc2VkIGJ5IEFwYWNoZSkuPC9saT4KKyAgICA8bGk+PGNvZGU+UkVBRE1FPC9jb2RlPiAtIEEgYnJpZWYgaW50cm9kdWN0aW9uIHRvIFN0cnV0cy48L2xpPgorICAgIDxsaT48Y29kZT5saWIvPC9jb2RlPiAtIERpcmVjdG9yeSBjb250YWluaW5nIGZpbGVzIHlvdSB3aWxsIG5lZWQgaW4KKyAgICAgICAgeW91ciBvd24gYXBwbGljYXRpb25zLiAgVGhlIGluZGl2aWR1YWwgZmlsZXMgb2YgaW50ZXJlc3QgYXJlOgorICAgICAgICA8dWw+CisgICAgICAgIDxsaT48Y29kZT5jb21tb25zLSouamFyPC9jb2RlPiAtIFJlbGVhc2UgcGFja2FnZXMgZnJvbSB0aGUKKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy8iPkpha2FydGEgQ29tbW9ucworICAgICAgICAgICAgUHJvamVjdDwvYT4gdGhhdCBTdHJ1dHMgcmVsaWVzIG9uLiAgWW91IGFyZSB3ZWxjb21lIHRvIHVzZSB0aGVzZQorICAgICAgICAgICAgY2xhc3NlcyBpbiB5b3VyIG93biBhcHBsaWNhdGlvbnMuICBUaGVzZSBKQVIgZmlsZXMgc2hvdWxkIGJlCisgICAgICAgICAgICBjb3BpZWQgaW50byB0aGUgPGNvZGU+L1dFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3Rvcnkgb2YKKyAgICAgICAgICAgIHlvdXIgd2ViIGFwcGxpY2F0aW9uLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMuamFyPC9jb2RlPiAtIEpBUiBmaWxlIHRoYXQgY29udGFpbnMgdGhlIGNvbXBpbGVkCisgICAgICAgICAgICBKYXZhIGNsYXNzZXMgb2YgU3RydXRzLiAgWW91IG11c3QKKyAgICAgICAgICAgIHBsYWNlIHRoaXMgZmlsZSBpbiB0aGUgPGNvZGU+L1dFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3Rvcnkgb2YKKyAgICAgICAgICAgIHlvdXIgd2ViIGFwcGxpY2F0aW9uLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMteHh4eHgudGxkPC9jb2RlPiAtIFRoZSB0YWcgbGlicmFyeSBkZXNjcmlwdG9yIGZpbGVzCisgICAgICAgICAgICBmb3IgdGhlIFN0cnV0cyAxLjAgdGFnIGxpYnJhcmllcyAoYmVhbiwgaHRtbCwgbG9naWMsIGFuZAorICAgICAgICAgICAgdGVtcGxhdGUpLiAgWW91IG11c3QgcGxhY2UgdGhlc2UgZmlsZXMgaW4gdGhlIDxjb2RlPi9XRUItSU5GPC9jb2RlPgorICAgICAgICAgICAgZGlyZWN0b3J5IG9mIHlvdXIgd2ViIGFwcGxpY2F0aW9uLCBhbmQgcmVmZXJlbmNlIHRoZW0gd2l0aAorICAgICAgICAgICAgYXBwcm9wcmlhdGUgPGNvZGU+Jmx0O3RhZ2xpYiZndDs8L2NvZGU+IGRpcmVjdGl2ZXMgaW4geW91cgorICAgICAgICAgICAgd2ViLnhtbCBmaWxlLiAgPHN0cm9uZz5OT1RFPC9zdHJvbmc+IC0gVGhlIHN0cnV0cy1mb3JtLnRsZAorICAgICAgICAgICAgZmlsZSBpcyBkZXByZWNhdGVkOyB5b3Ugc2hvdWxkIHVzZSB0aGUgc3RydXRzLWh0bWwudGxkIGZpbGUKKyAgICAgICAgICAgIGluc3RlYWQuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPmpkYmMyXzAtc3RkZXh0LmphcjwvY29kZT4gLSBUaGUgSkRCQyAyLjAgT3B0aW9uYWwgUGFja2FnZQorICAgICAgICAgICAgQVBJIGNsYXNzZXMgKHBhY2thZ2UgPGNvZGU+amF2YXguc3FsPC9jb2RlPikuICBZb3Ugd2lsbCBuZWVkIHRvCisgICAgICAgICAgICBpbmNsdWRlIHRoaXMgZmlsZSBpbiB0aGUgPGNvZGU+L1dFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3RvcnkKKyAgICAgICAgICAgIG9mIHlvdXIgYXBwbGljYXRpb24sIGlmIGl0IGlzIG5vdCBhbHJlYWR5IG1hZGUgdmlzaWJsZSB0byB3ZWIKKyAgICAgICAgICAgIGFwcGxpY2F0aW9ucyBieSB5b3VyIHNlcnZsZXQgY29udGFpbmVyLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMtY29uZmlnXzFfMS5kdGQ8L2NvZGU+IC0gVGhlIGRvY3VtZW50IHR5cGUgZGVzY3JpcHRvcgorICAgICAgICAgICAgKERURCkgZm9yIHRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlICh3aGljaCBpcyB0eXBpY2FsbHkgbmFtZWQKKyAgICAgICAgICAgIDxjb2RlPi9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sPC9jb2RlPi4gIFlvdXIgY29uZmlndXJhdGlvbiBmaWxlCisgICAgICAgICAgICB3aWxsIGJlIHZhbGlkYXRlZCBhZ2FpbnN0IGFuIGludGVybmFsIGNvcHkgb2YgdGhpcyBEVEQgLS0gdGhpcworICAgICAgICAgICAgY29weSBpcyBhdmFpbGFibGUgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDxsaT48Y29kZT53ZWItYXBwXzJfMi5kdGQ8L2NvZGU+IC0gVGhlIGRvY3VtZW50IHR5cGUgZGVzY3JpcHRvciAoRFREKQorICAgICAgICAgICAgZm9yIHdlYi54bWwgZmlsZXMgY29uZm9ybWluZyB0byB0aGUgU2VydmxldCAyLjIgc3BlY2lmaWNhdGlvbi4KKyAgICAgICAgICAgIFRoaXMgY29weSBpcyBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPndlYi1hcHBfMl8zLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yIChEVEQpCisgICAgICAgICAgICBmb3Igd2ViLnhtbCBmaWxlcyBjb25mb3JtaW5nIHRvIHRoZSBTZXJ2bGV0IDIuMyBzcGVjaWZpY2F0aW9uLgorICAgICAgICAgICAgVGhpcyBjb3B5IGlzIGZvciByZWZlcmVuY2UgcHVycG9zZXMgb25seS48L2xpPgorICAgICAgICA8L3VsPjwvbGk+CisgICAgPGxpPjxjb2RlPndlYmFwcHMvPC9jb2RlPiAtIFdlYiBBcHBsaWNhdGlvbiBBcmNoaXZlIChXQVIpIGZpbGVzIGZvciB0aGUKKyAgICAgICAgd2ViIGFwcGxpY2F0aW9ucyB0aGF0IGFyZSBpbmNsdWRlZCB3aXRoIFN0cnV0cy48L2xpPgorICAgIDwvdWw+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iV2hhdCdzIE5ldz8iIGhyZWY9Ik5ldyI+CisKKyAgICA8cD48c3Ryb25nPkRFUFJFQ0FUSU9OUzwvc3Ryb25nPjo8L3A+CisgICAgPHVsPgorICAgIDxsaT48Y29kZT5zdHJ1dHMtY29uZmlnLmR0ZDwvY29kZT4gaW4gZmF2b3Igb2YgPGNvZGU+c3RydXRzLWNvbmZpZ18xXzEuZHRkPC9jb2RlPi48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkNPTU1PTlMgUEFDS0FHRVM8L3N0cm9uZz46CisgICAgU2V2ZXJhbCBjb21wb25lbnRzIG9mIFN0cnV0cyAxLjAgaGF2ZSBiZWVuIGZvdW5kIHRvIGJlIHVzZWZ1bCBpbgorICAgIGdlbmVyYWwgSmF2YSBkZXZlbG9wbWVudCAoYW5kIG5vdCBqdXN0IHVzZWZ1bCBmb3IgYnVpbGRpbmcgU3RydXRzLWJhc2VkCisgICAgd2ViIGFwcGxpY2F0aW9ucyksIGFuZCBoYXZlIGJlZW4gbWlncmF0ZWQgaW50byB0aGUKKyAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvIj5KYWthcnRhIENvbW1vbnMgUHJvamVjdDwvYT4uCisgICAgQXMgYSByZXN1bHQsIHRoZSBjdXJyZW50IGRldmVsb3BtZW50IHZlcnNpb24gb2YgU3RydXRzIGhhcyBiZWVuIG1vZGlmaWVkCisgICAgdG8gcmVseSBvbiB0aGUgQ29tbW9ucyBwYWNrYWdlcyBjb250YWluaW5nIHRoZXNlIGNsYXNzZXMsIHJhdGhlciB0aGFuIHRoZQorICAgIFN0cnV0cyBpbnRlcm5hbCB2ZXJzaW9ucy4gIEluIG5lYXJseSBldmVyeSBjYXNlLCB0aGlzIGludm9sdmVkIGNoYW5naW5nCisgICAgb25seSB0aGUgPGNvZGU+aW1wb3J0PC9jb2RlPiBzdGF0ZW1lbnRzIGF0IHRoZSB0b3Agb2YgeW91ciBjbGFzc2VzLiAgQW55CisgICAgYXBwbGljYXRpb25zIHRoYXQgdXRpbGl6ZSB0aGVzZSBjbGFzc2VzIHdpbGwgbmVlZCB0byBiZSBtb2RpZmllZCBpbiB0aGUKKyAgICBzYW1lIHdheS4gIFRoZSBmb2xsb3dpbmcgQ29tbW9ucyBwYWNrYWdlcyBjb250YWluIHRoZSByZXBsYWNlbWVudHMgZm9yIHRoZQorICAgIGNvcnJlc3BvbmRpbmcgU3RydXRzIDEuMCBjbGFzc2VzOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxzdHJvbmc+QmVhblV0aWxzIFBhY2thZ2U8L3N0cm9uZz4gKG9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMpIC0KKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbHMuQmVhblV0aWxzPC9jb2RlPiwKKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbHMuQ29udmVydFV0aWxzPC9jb2RlPiwgYW5kCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWxzLlByb3BlcnR5VXRpbHM8L2NvZGU+LjwvbGk+CisgICAgPGxpPjxzdHJvbmc+Q29sbGVjdGlvbnMgUGFja2FnZTwvc3Ryb25nPgorICAgICAgICAob3JnLmFwYWNoZS5jb21tb25zLmNvbGxlY3Rpb25zKSAtCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuQXJyYXlTdGFjazwvY29kZT4sCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdEFycmF5TGlzdDwvY29kZT4sCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdEhhc2hNYXA8L2NvZGU+LAorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RUcmVlTWFwPC9jb2RlPi48L2xpPgorICAgIDxsaT48c3Ryb25nPkRpZ2VzdGVyIFBhY2thZ2U8L3N0cm9uZz4gLQorICAgICAgICAob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyKSAtCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLio8L2NvZGU+LjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+WE1MIFBBUlNFUiBQUkVSRVFVSVNJVEUgVVBEQVRFRDwvc3Ryb25nPjogIFN0cnV0cyBub3cgZGVwZW5kcworICAgIG9uIGFuIFhNTCBwYXJzZXIgdGhhdCBjb25mb3JtcyB0byB0aGUgSkFYUC8xLjEgKHJhdGhlciB0aGFuIEpBWFAvMS4wKQorICAgIEFQSXMuICBQYXJzZXIga25vd24gdG8gd29yayBpbmNsdWRlIHRoZSBKQVhQLzEuMSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24sCisgICAgYW5kIFhlcmNlcyAxLjMuMS48L3A+CisKKyAgICA8cD48c3Ryb25nPkNPTlRSSUIgRGlyZWN0b3J5PC9zdHJvbmc+OgorICAgIEEgbmV3IGRpcmVjdG9yeSAoPGNvZGU+Y29udHJpYjwvY29kZT4pIGluIHRoZSBDVlMgc291cmNlIHJlcG9zaXRvcnkgaGFzCisgICAgYmVlbiBhZGRlZCB0byBhY2N1bXVsYXRlIFN0cnV0cyBhZGQtb24gZXh0ZW5zaW9ucyB0aGF0IGFyZSBnZW5lcmFsbHkKKyAgICB1c2VmdWwgYnV0IGhhdmUgbm90IHlldCBiZWVuIGludGVncmF0ZWQgaW50byB0aGUgc3RhbmRhcmQgY29kZSBiYXNlLjwvcD4KKworICAgIDx1bD4KKyAgICA8bGk+VmFsaWRhdG9yRm9ybSAtIENsaWVudCBhbmQgU2VydmVyLXNpZGUgdmFsaWRhdGlvbiBsaWJyYXJ5LjwvbGk+CisgICAgPGxpPlRpbGVzIC0gQWR2YW5jZWQgdGVtcGxhdGluZyBsaWJyYXJ5IChzZWUgU3RydXRzLVRpbGVzLndhcikuPC9saT4KKyAgICA8bGk+U2VydmljZSBNYW5hZ2VyIC0gQWRkIGN1c3RvbSBzZXJ2aWNlcyB3aXRob3V0IHN1YmNsYXNzaW5nIGNvbnRyb2xsZXIuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5VTklUIFRFU1RJTkcgU1VQUE9SVDwvc3Ryb25nPjogIFN1cHBvcnQgZm9yIHJ1bm5pbmcgdW5pdCB0ZXN0cworICAgIG9uIFN0cnV0cyBjb21wb25lbnRzIGFuZCBjdXN0b20gdGFncyBpcyBiZWluZyBhZGRlZCwgdXRpbGl6aW5nIHRoZQorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY2FjdHVzLyI+SmFrYXJ0YSBDYWN0dXM8L2E+IHByb2R1Y3QuPC9wPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBiYXNpYyBjb250cm9sbGVyCisgICAgZnJhbWV3b3JrIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlRoZSBuZXcgPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IGNsYXNzIHdpbGwgc3VwcG9ydCBhIHN1cGVyc2V0IG9mCisgICAgICAgIHRoZSBjYXBhYmlsaXRpZXMgb2YgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiwgYW5kIHdpbGwgYmUgdXNlZnVsIGFzCisgICAgICAgIGEgY29sbGVjdGlvbiBvZiBnZW5lcmFsIHB1cnBvc2UgbWVzc2FnZXMsIG5vdCBqdXN0IGVycm9ycy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIHV0aWxpdHkgY2xhc3NlcworICAgIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5Mb2NhbFN0cmluZ3M6IENvcnJlY3QgbWVzc2FnZSByZWdhcmRpbmcgcmVwbGFjZWFibGUgcGFyYW1ldGVyIHNvIHRoYXQgaXQgZG9lcyBub3QgYXBwZW5kIGFuIGV4dHJhbmVvdXMgY2hhcmFjdGVyLjwvbGk+CisgICAgPGxpPkFkZCBMYWJlbFZhbHVlQmVhbiBjbGFzcy4gVGhpcyBkZWZpbmVzIGEgY29sbGVjdGlvbiBvZiBuYW1lL3ZhbHVlIHBhaXJzIHRoYXQgY2FuIGJlIHVzZWQgd2l0aCB0aGUgJmx0O2h0bWw6b3B0aW9ucyZndDsgdGFnLCBhbmQgZWxzZXdoZXJlLjwvbGk+CisgICAgPGxpPk1lc3NhZ2VSZXNvdXJjZXM6IEVzY2FwZSBhbnkgc2luZ2xlIHF1b3RlIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gdGhlIHNwZWNpZmllZCBtZXNzYWdlIHN0cmluZy48L2xpPgorICAgIDxsaT5BbGxvdyBhIHRyYW5zYWN0aW9uIHRva2VuIHRvIGJlIHRoZSBvbmx5IHBhcmFtZXRlciBpbiBjb21wdXRlUGFyYW1ldGVycygpLjwvbGk+CisgICAgPGxpPkNoYW5nZSBSZXF1ZXN0VXRpbHMgdG8gZW5jb2RlIGFtcGVyc2FuZHMgd2hlbiBidWlsZGluZyBhIHF1ZXJ5IHN0cmluZy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlCisgICAgPGVtPnN0cnV0cy1iZWFuPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5BZGQgZm9ybWF0LCBsb2NhbGUgYW5kIGJ1bmRsZSBhdHRyaWJ1dGVzIHRvIGJlYW46d3JpdGUgdG8gc3VwcG9ydCB2YWx1ZXMgZm9ybWF0dGluZyBhY2NvcmRpbmcgdG8gY3VycmVudAordXNlciBsb2NhbGUsIGZvcm1hdCBzdHJpbmcgZnJvbSBhdHRyaWJ1dGUgb3IgZm9ybWF0IHN0cmluZyBmcm9tIHN0cmluZyByZXNvdXJjZXMuPC9saT4KKyAgICA8bGk+Q29ycmVjdCB0aGUgZ2VuZXJhdGVkIHNjcmlwdGluZyB2YXJpYWJsZSB0eXBlIHdoZW4gdGhlICZsdDtiZWFuOmNvb2tpZT4sICZsdDtiZWFuOmhlYWRlcj4sIG9yICZsdDtiZWFuOnBhcmFtZXRlcj4gdGFnIGlzIHVzZWQgd2l0aCB0aGUgIm11bHRpcGxlIiBhdHRyaWJ1dGUuPC9saT4KKyAgICA8bGk+QWRkZWQgPGNvZGU+bmFtZTwvY29kZT4sIDxjb2RlPnByb3BlcnR5PC9jb2RlPiwgYW5kCisgICAgICAgIDxjb2RlPnNjb3BlPC9jb2RlPiBhdHRyaWJ1dGVzIHRvIHRoZSA8Y29kZT4mbHQ7YmVhbjptZXNzYWdlJmd0OzwvY29kZT4KKyAgICAgICAgdGFnLCBzbyB0aGF0IHRoZSBtZXNzYWdlIHNvdXJjZSBrZXkgY2FuIGJlIG9idGFpbmVkIGR5bmFtaWNhbGx5IGZyb20KKyAgICAgICAgYSBiZWFuIG9yIGJlYW4gcHJvcGVydHkuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtaHRtbDwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZQorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+T24gdGhlIE9wdGlvbnMgdGFnLCBpZiB0aGUgcHJvcGVydHkgc3BlY2lmaWVkIGJ5IHRoZSAicHJvcGVydHkiIGF0dHJpYnV0ZSByZXR1cm5zIG51bGwsIGl0IG5vdyB0aHJvd3MgYW4gZXJyb3IgbWVzc2FnZSB0aGF0IGluZGljYXRlcyB3aGF0IHRoZSByZWFsIHByb2JsZW0gaXMsIHJhdGhlciB0aGFuIGNhdXNpbmcgYW4gTlBFLjwvbGk+CisgICAgPGxpPkFkZGVkICdzdHlsZScgYW5kICdzdHlsZUNsYXNzJyBhdHRyaWJ1dGVzIGZvciAmbHQ7aHRtbDpvcHRpb24mZ3Q7IGFuZCAmbHQ7aHRtbDpvcHRpb25zJmd0OyB0YWdzLjwvbGk+CisgICAgPGxpPkFkZGVkICduYW1lJywgJ3Byb3BlcnR5JyBhbmQgJ3Njb3BlJyBhdHRyaWJ1dGVzIHRvCisgICAgICAgIDxjb2RlPiZsdDtiZWFuOm1lc3NhZ2UmZ3Q7PC9jb2RlPiBzbyB0aGF0CisgICAgICAgIHRoZSBtZXNzYWdlIHJlc291cmNlIGtleSBjYW4gYmUgb2J0YWluZWQgZHluYW1pY2FsbHkgZnJvbSBhIGJlYW4uPC9saT4KKyAgICA8bGk+QWRkZWQgYSBuZXcgPGNvZGU+Jmx0O2h0bWw6bWVzc2FnZXMmZ3Q7PC9jb2RlPiB0YWcgdG8gaXRlcmF0ZSB0aHJvdWdoCisgICAgICAgIGEgbWVzc2FnZSBjb2xsZWN0aW9uIGluIHRoZSBuZXcgPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IGNsYXNzLjwvbGk+CisgICAgPGxpPjxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IHdpbGwgbm93IGNhbGwgPGNvZGU+cmVzZXQoKTwvY29kZT4gaWYgaXQgCisgICAgICAgIGluc3RhbnRpYXRlcyB0aGUgQWN0aW9uRm9ybSBiZWFuLjwvbGk+CisgICAgPGxpPkFkZGVkIGluZGV4ZWQgcHJvcGVydHkgdG8gdGhlIFN1Ym1pdFRhZywgU2VsZWN0VGFnLCBMaW5rVGFnLmphdmEsIENoZWNrYm94VGFnLCBCdXR0b25UYWcsIEltYWdlVGFnLCBSYWRpb1RhZywgYW5kIFRleHRBcmVhLlRhZy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlCisgICAgPGVtPnN0cnV0cy1sb2dpYzwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZQorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkFkZGVkIDxjb2RlPiZsdDtsb2dpYzplbXB0eSZndDs8L2NvZGU+IGFuZAorICAgICAgICA8Y29kZT4mbHQ7bG9naWM6bm90RW1wdHkmZ3Q7PC9jb2RlPiB0YWdzLCB3aGljaCBhcmUgc2ltaWxhciB0bworICAgICAgICA8Y29kZT4mbHQ7bG9naWM6cHJlc2VudCZndDs8L2NvZGU+IGFuZAorICAgICAgICA8Y29kZT4mbHQ7bG9naWM6bm90UHJlc2VudCZndDs8L2NvZGU+IGV4Y2VwdCBmb3IgdGhlIHRyZWF0bWVudCBvZgorICAgICAgICBlbXB0eSBzdHJpbmdzLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUKKyAgICA8ZW0+c3RydXRzLXRlbXBsYXRlPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Tm9uZS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIFN0cnV0cyBEb2N1bWVudGF0aW9uCisgICAgYXBwbGljYXRpb24gKGFuZCBjb3JyZXNwb25kaW5nIGNvbnRlbnRzIG9uIHRoZSBTdHJ1dHMgd2ViIHNpdGUpOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPk1vdmUgVGFnIExpYnJhcnkgZG9jdW1lbnRhdGlvbiBpbnRvIFVzZXIncyBHdWlkZS48L2xpPgorICAgIDxsaT5BZGRlZCBLaWNrc3RhcnQgRkFRLjwvbGk+CisgICAgPGxpPkFkZGVkIFJlZmVyZW5jZSBjb3B5IG9mIDEuMCBKYXZhRG9jLjwvbGk+CisgICAgPGxpPlJldmlzZWQgdGhlIGV4YW1wbGUgcGFnZSBpbiB0aGUgVXNlcidzIEd1aWRlIChCdWlsZGluZyBWaWV3IENvbXBvbmVudHMpIHRvIHJlZmxlY3QgY3VycmVudCBwcmFjdGljZS48L2xpPgorICAgIDxsaT5SZXZpc2VkIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMgZm9yIFNpbHZlclN0cmVhbSBhbmQgUmVzaW4uPC9saT4KKyAgICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworCisgIDxzZWN0aW9uIG5hbWU9IkNoYW5nZXMgYW5kIEJ1ZyBGaXhlcyIgaHJlZj0iQ2hhbmdlcyI+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSBjb25maWd1cmF0aW9uCisgICAgZmlsZXMgcmVsYXRlZCB0byBTdHJ1dHM6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+UmVtb3ZlIGRlcHJlY2F0ZWQgc3VwcG9ydCBmb3IgdGhlIG9sZCAoU3RydXRzIDAuNSkgY29uZmlndXJhdGlvbiBmaWxlCisgIGZvcm1hdC48L2xpPgorICAgIDwvdWw+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgYmFzaWMKKyAgICBjb250cm9sbGVyIGZyYW1ld29yayAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5BZGQgSW52b2tlQWN0aW9uIGFuZCBDcmVhdGVBY3Rpb25Gb3JtIG1ldGhvZHMgdG8gYWxsb3cgZGlyZWN0IGNoYWluaW5nIG9mIEFjdGlvbnMuPC9saT4KKyAgICA8bGk+QWRkIENvbnRleHRIZWxwZXIgdG8gZXhwb3NlIGZyYW1ld29yayBlbGVtZW50cyB0byBhbHRlcm5hdGUgcHJlc2VudGF0aW9uIGxheWVycy48L2xpPgorICAgIDxsaT5BY3Rpb25Gb3JtcyBhbmQgcmVsYXRlZCBjbGFzc2VzIG5vdyB1c2UgYSBTdHJpbmdCdWZmZXIgd2hlbiByZXNwb25kaW5nIGEgdG9TdHJpbmcgcmVxdWVzdCBpbiBvcmRlciB0byBjb25zZXJ2ZSByZXNvdXJjZXMuPC9saT4KKyAgICA8bGk+QWRkIHN0YW5kYXJkIExvb2t1cERpc3BhdGNoQWN0aW9uIHRvIGhlbHAgc2VsZWN0IGJldHdlZW4gaW50ZXJuYXRpb25hbGl6ZWQgYnV0dG9ucy48L2xpPgorICAgIDxsaT5Nb2RpZnkgQWN0aW9uRm9ybSBjbGFzcyB0byB1c2UgQWN0aW9uU2VydmxldFdyYXBwZXIgcmF0aGVyIHRoYW4gZXhwb3NlIEFjdGlvblNlcnZsZXQuPC9saT4KKyAgICA8bGk+QWRkIEFjdGlvblNlcnZsZXRXcmFwcGVyIGNsYXNzLiBVc2VkIGJ5IEFjdGlvbkZvcm0gdG8gcHJldmVudCB0aGUgUHVibGljIFN0cmluZyBwcm9wZXJ0aWVzIG9mIEFjdGlvblNlcnZsZXQgZnJvbSBiZWluZyBjaGFuZ2VkIHZpYSBhIHF1ZXJ5IHN0cmluZy48L2xpPgorICAgIDxsaT5VbmNvbmRpdGlvbmFsbHkgcGFzcyB0aGUgc2VsZWN0ZWQgbWFwcGluZyBhcyBhIHJlcXVlc3QgYXR0cmlidXRlIHVuZGVyIGtleSBBY3Rpb24uTUFQUElOR19LRVksIGV2ZW4gaWYgbm8gZm9ybSBiZWFuIGlzIHNwZWNpZmllZC48L2xpPgorICAgIDxsaT5Bdm9pZCBhIE51bGxQb2ludGVyRXhjZXB0aW9uIGluIGNvcm5lciBjYXNlcyBjYXVzZWQgYnkgZmFpbGVkIGluaXRpYWxpemF0aW9uIG9mIEFjdGlvblNlcnZsZXQuPC9saT4KKyAgICA8bGk+VGhlIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGNsYXNzIGlzIG5vdyB0cnVseSBzZXJpYWxpemFibGUsIGJlY2F1c2UKKyAgICAgICAgdGhlIHR3byBub24tc2VyaWFsaXphYmxlIGluc3RhbmNlIHZhcmlhYmxlcyAoc2VydmxldCBhbmQKKyAgICAgICAgbXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpIGhhdmUgYmVlbiBtYWRlIHRyYW5zaWVudC4gIEhvd2V2ZXIsIGlmIHlvdQorICAgICAgICBhY3R1YWxseSBkbyBzZXJpYWxpemUgYW5kIGRlc2VyaWFsaXplIHN1Y2ggaW5zdGFuY2VzLCBpdCBpcyB5b3VyCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIHJlc2V0IHRoZXNlIHR3byBwcm9wZXJ0aWVzLjwvbGk+CisgICAgPGxpPlJlbW92ZWQgZGVwcmVjYXRlZCBTdHJ1dHMgMC41IG1ldGhvZHMsIGFuZCBzdXBwb3J0IGZvciB0aGUgU3RydXRzIDAuNQorICAgICAgICBjb25maWd1cmF0aW9uIGZpbGUgZm9ybWF0LjwvbGk+CisgICAgPGxpPlRoZSBpbml0aWFsIG9yZGVyIGEgcHJvcGVydHkva2V5IGlzIGFkZGVkIGluIGlzIG5vdyBtYWludGFpbmVkIGJ5IEFjdGlvbk1lc3NhZ2VzIGNsYXNzLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlIGZpbGUgdXBsb2FkCisgICAgcGFja2FnZSAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5Db3JyZWN0IE11bHRpYm94VGFnZG9BZnRlckJvZHkoKSB0byByZXR1cm4gU0tJUF9CT0RZIGluc3RlYWQgb2YgU0tJUF9QQUdFLjwvbGk+CisgICAgPGxpPkZpeGVkIGxvc3QgYnl0ZSBwcm9ibGVtIGluIEJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L2xpPgorICAgIDxsaT5GaXhlZCBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gc2l0dWF0aW9uczwvbGk+CisgICAgPGxpPkJldHRlciByZXBvcnRpbmcgZm9yIHByZW1hdHVyZSBjbG9zaW5nIG9mIGlucHV0IHN0cmVhbXMgd2hpbGUgcmVhZGluZworbXVsdGlwYXJ0IHJlcXVlc3RzLjwvbGk+CisgICAgPGxpPkFkZGl0aW9uYWwgZml4IGZvciBmaWxlIGNvcnJ1cHRpb24gcHJvYmxlbSB3aXRoIHVwbG9hZHMgYW5kIG5ldyBsaW5lIGNoYXJhY3RlcnMuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgdXRpbGl0aWVzCisgICAgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPk1vZGlmeSBSZXF1ZXN0VXRpbHMgY2xhc3MgdG8gdXNlIEFjdGlvblNlcnZsZXRXcmFwcGVyIHJhdGhlciB0aGFuIGV4cG9zZSBBY3Rpb25TZXJ2bGV0LjwvbGk+CisgICAgPGxpPkFkZGVkIGVycm9yIG1lc3NhZ2UgZm9yIHRoZSBnZXRBY3Rpb25FcnJvcnMgYW5kIGdldEFjdGlvbk1lc3NhZ2VzIG1ldGhvZC48L2xpPgorICAgIDxsaT5BZGRlZCBhIGdldEFjdGlvbkVycm9ycyBhbmQgZ2V0QWN0aW9uTWVzc2FnZXMgbWV0aG9kcyB0byBnZW5lcmF0ZSB0aGUgY29ycmVjdCBjb3JyZXNwb25kaW5nIG9iamVjdCBiYXNlZCBvbiB0aGUgb2JqZWN0IHJldHJpZXZlZCBmcm9tIHJlcXVlc3Qgc2NvcGUgYmFzZWQgb24gdGhlIGtleSBwYXNzZWQgaW4uPC9saT4KKyAgICA8bGk+VGhlIGxvZ2ljIGZvciBjcmVhdGluZyBhbiBBY3Rpb25FcnJvcnMgb3IgQWN0aW9uTWVzc2FnZXMgb2JqZWN0IGhhcyBiZWVuIG1vdmVkIHRvIGEgdXRpbGl0eSBtZXRob2QgaW4gUmVxdWVzdFV0aWxzLiBUaGUgSnNwRXhjZXB0aW9uIG1lc3NhZ2UgaXMgYWxzbyBnZW5lcmF0ZWQgaW4gUmVxdWVzdFV0aWxzLjwvbGk+CisgICAgPGxpPjxjb2RlPkNvbnZlcnRVdGlscy5jb252ZXJ0Q2hhcmFjdGVyKCk8L2NvZGU+IHdpbGwgbm93IGRldGVjdCBlbXB0eSBzdHJpbmdzIGFuZCByZXR1cm4gdGhlIGRlZmF1bHQgdmFsdWUuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUKKyAgICA8ZW0+c3RydXRzLWJlYW48L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgKHBhY2thZ2UKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlRoZSA8Y29kZT4mbHQ7aHRtbDplcnJvcnMmZ3Q7PC9jb2RlPiB3aGVuIHRoZSBwcm9wZXJ0eSB0YWcgaXMKKyAgICBzcGVjaWZpZWQsIGVycm9ycyBhcmUgbm8gbG9uZ2VyIHByaW50ZWQgaWYgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eQorICAgIGhhcyBubyBlcnJvcnMuIFByZXZpb3VzbHkgZXJyb3JzIHdlcmUgYWx3YXlzIHByaW50ZWQgISBGdXR1cmUKKyAgICBlbmhhbmNlbWVudHMgd291bGQgaW5jbHVkZSBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgdG8gYWx3YXlzIHR1cm4KKyAgICBvZmYgdGhlIGhlYWRlciBvciBmb290ZXIuIDwvbGk+CisgICAgPGxpPk1hZGUgdGhlIHJlbWFpbmluZyBoZWxwZXIgbWV0aG9kcyAicHJvdGVjdGVkIiByYXRoZXIgdGhhbiAKKyAgICAicHJpdmF0ZSIuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUKKyAgICA8ZW0+c3RydXRzLWh0bWw8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgKHBhY2thZ2UKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkZpeGVkIEZvcm1UYWcgdG8gZXhjbHVkZSBxdWVyeSBzdHJpbmcgd2hlbiBpZGVudGlmeWluZyBhY3Rpb24gbWFwcGluZyBuYW1lLjwvbGk+CisgICAgPGxpPkFkZGVkIHRoZSAnYWxpZ24nIGF0dHJpYnV0ZSB0byB0aGUgJmx0O2h0bWw6aW1hZ2U+IHRhZy48L2xpPgorICAgIDxsaT5BZGRlZCBpbmRleGVkIGF0dHJpYnV0ZSB0byBJbWFnZVRhZywgUmFkaW9UYWcsIGFuZCBUZXh0QXJlYVRhZy48L2xpPgorICAgIDxsaT5BZGRlZCBNZXNzYWdlc1RhZy48L2xpPgorICAgIDxsaT5Db3JyZWN0bHkgVVJMRW5jb2RlIHRoZSBxdWVyeSBzdHJpbmcgcGFyYW1ldGVyIHZhbHVlIG9uIEltZ1RhZywgZXZlbiBpZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHBhcmFtZXRlci48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZQorICAgIDxlbT5zdHJ1dHMtbG9naWM8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgKHBhY2thZ2UKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5Ob25lLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgRG9jdW1lbnRhdGlvbgorICAgIGFwcGxpY2F0aW9uIChhbmQgY29ycmVzcG9uZGluZyBjb250ZW50cyBvbiB0aGUgU3RydXRzIHdlYiBzaXRlKSBoYXZlCisgICAgb2NjdXJyZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+SW4gdGhlIEhUTUwgdGFnIGRvY3VtZW50YXRpb24sIGV4cGFuZCB0byBjb3ZlciB1c2luZyBpbmRleGVkIHByb3BlcnRpZXMgd2l0aCBpdGVyYXRlLjwvbGk+CisgICAgPGxpPkFkZCBpbnN0YWxsYXRpb24gbm90ZXMgZm9yIEpldHR5LjwvbGk+CisgICAgPGxpPkluIHRoZSBUYWcgRGV2ZWxvcGVycyBHdWlkZSwgYWRkIG1vcmUgZGV0YWlsIHJlZ2FyZGluZyBmaWxlIHVwbG9hZCByZXF1aXJlbWVudHMuPC9saT4KKyAgICA8bGk+SW4gdGhlIEludHJvZHVjdGlvbiwgYWRkZWQgcmVmZXJlbmNlcyB0byBiYXNpYyBiYWNrZ3JvdW5kIG1hdGVyaWFsLjwvbGk+CisgICAgPGxpPkluIEJ1aWxkaW5nIFZpZXcgQ29tcG9uZW50cywgY2xhcmlmeSB0aGF0IGFkZGl0aW9uYWwgaTE4biBzdXBwb3J0IG1heSBiZSBwcm92aWRlZCBieSB0aGUgYnJvd3NlciwgYW5kIGlzIG91dHNpZGUgdGhlIHNjb3BlIG9mIHRoZSBmcmFtZXdvcmsuPC9saT4KKyAgICA8bGk+SW4gQnVpbGRpbmcgQ29udHJvbGxlciBDb21wb25lbnRzLCBkb2N1bWVudCAndmFsaWRhdGluZycgaW5pdC1wYXJhbSwgYWRkIGRlZmF1bHRzIGZvciB2YXJpb3VzIHBhcmFtZXRlcnMsIGNsYXJpZnkgdGhhdCBzb21lIHdlYi54bWwgc2V0dGluZ3MgYXJlIG5vdCBTdHJ1dHMtc3BlY2lmaWMuPC9saT4KKyAgICA8bGk+UmVvcmdhbml6ZWQgdG8gc2VwYXJhdGUgMS4wIG1hdGVyaWFsIGZyb20gbmlnaHRseSBidWlsZCBtYXRlcmlhbC48L2xpPgorICAgIDxsaT5FeHBhbmRlZCBSZXNvdXJjZXMgc2VjdGlvbi48L2xpPgorICAgIDxsaT5WYXJpb3VzIHVwZGF0ZXMgcmVnYXJkaW5nIG90aGVyIHJlbGVhc2Ugbm90ZXMuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgdG8gdGhlIFN0cnV0cyBFeGFtcGxlIEFwcGxpY2F0aW9uCisgICAgaGF2ZSBvY2N1cnJlZDo8L3A+CisgICAgPHVsPgorICAgIDxsaT5BZGQgUnVzc2lhbiBhbmQgSmFwYW5lc2UgdHJhbnNsYXRpb25zIG9mIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZXMgYW5kIHNldCB0aGUgY2hhcmFjdGVyIHNldCBmb3IgdGhlIGV4YW1wbGUgSlNQIHBhZ2VzIHRvICJVVEYtOCIgc28gdGhhdCBpdCBjYW4gZGlzcGxheSBlaXRoZXIgRW5nbGlzaCBvciBKYXBhbmVzZS48L2xpPgorICAgIDxsaT5FeGNoYW5nZSAibmFtZSIgZm9yICJhdHRyaWJ1dGUiIHByb3BlcnRpZXMgZm9yIEVkaXQgbWFwcGluZ3MgaW4gU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZS48L2xpPgorICAgIDxsaT5SZW1vdmUgcmVmZXJlbmNlcyB0byBzYXZpbmcgZGF0YWJhc2UgZGF0YSBmcm9tICJ0b3VyIiBkb2N1bWVudCwgc2luY2UgdGhpcyBmdW5jdGlvbmFsaXR5IHdhcyByZW1vdmVkLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgVGVtcGxhdGUgRXhhbXBsZQorICAgIEFwcGxpY2F0aW9uIGhhdmUgb2NjdXJyZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Tm9uZS48L2xpPgorICAgIDwvdWw+IAorCisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgdG8gdGhlIFN0cnV0cyBFeGVyY2lzZSBUYWdsaWIgRXhhbXBsZQorICAgIEFwcGxpY2F0aW9uIGhhdmUgb2NjdXJyZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+QWRkZWQgdGVzdCBjYXNlIGZvciAmbHQ7aHRtbDpzZWxlY3Q+IHVzaW5nICZsdDtodG1sOm9wdGlvbnM+IGJhc2VkIG9uIGEgY29sbGVjdGlvbgorICBzYXZlZCBpbiB0aGUgcGFnZSBjb250ZXh0LjwvbGk+CisgICAgPC91bD4gCisKKyAgICA8cD4KKyAgICAgICAgICAgIE5leHQ6IDxhIGhyZWY9Imluc3RhbGxhdGlvbi5odG1sIj5JbnN0YWxsYXRpb248L2E+CisgICAgPC9wPgorCis8L3NlY3Rpb24+ICAKKworICAgIDwvYm9keT4KKworPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLTEuMS1iMi54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjEtYjIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhODNmMTIKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjEtYjIueG1sCkBAIC0wLDAgKzEsNjM0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9InJlbGVhc2Utbm90ZXMtMS4xLWIyLmh0bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5TdHJ1dHMgUmVsZWFzZSBOb3RlcyAoVmVyc2lvbiAxLjEgQmV0YSAyKTwvdGl0bGU+CisgIDwvcHJvcGVydGllcz4KKworICA8Ym9keT4KKworICA8c2VjdGlvbiBuYW1lPSJJbnRyb2R1Y3Rpb24iIGhyZWY9IkludHJvZHVjdGlvbiI+CisKKyAgICA8cD5UaGlzIGRvY3VtZW50IGNvbnRhaW5zIHRoZSByZWxlYXNlIG5vdGVzIGZvcgorICAgIDxzdHJvbmc+VmVyc2lvbiAxLjEgQmV0YSAyPC9zdHJvbmc+IG9mIHRoZSBTdHJ1dHMgRnJhbWV3b3JrLAorICAgIGFuZCBjb3ZlcnMgY2hhbmdlcyB0aGF0IGhhdmUgdGFrZW4gcGxhY2Ugc2luY2UKKyAgICA8YSBocmVmPSJyZWxlYXNlLW5vdGVzLTEuMC4yLmh0bWwiPlZlcnNpb24gMS4wLjI8L2E+CisgICAgd2FzIHJlbGVhc2VkLiAgVGhlIGZvbGxvd2luZyBzZWN0aW9ucyBjb3ZlcgorICAgIDxhIGhyZWY9IiNOZXciPk5ldyBGZWF0dXJlczwvYT4gYW5kIDxhIGhyZWY9IiNDaGFuZ2VzIj5DaGFuZ2VzPC9hPgorICAgIHRvIFN0cnV0cy48L3A+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iV2hhdCdzIEluY2x1ZGVkPyIgaHJlZj0iSW5jbHVkZWQiPgorCisgICAgPHA+VGhlIGJpbmFyeSBkaXN0cmlidXRpb24gb2YgdGhpcyByZWxlYXNlIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcKKyAgICBmaWxlcyByZWxldmFudCB0byBTdHJ1dHM6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+SU5TVEFMTDwvY29kZT4gLSBCcmllZiBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLiAgU2VlCisgICAgICAgIHRoZSA8Y29kZT5TdHJ1dHMgRG9jdW1lbnRhdGlvbiBBcHBsaWNhdGlvbjwvY29kZT4sIG9yIG9ubGluZSBhdAorICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy8iPmh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzLzwvYT4KKyAgICAgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9saT4KKyAgICA8bGk+PGNvZGU+TElDRU5TRTwvY29kZT4gLSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gbGljZW5zZSB0aGF0CisgICAgICAgIGRlZmluZXMgdGhlIHRlcm1zIHVuZGVyIHdoaWNoIHlvdSBjYW4gdXNlIFN0cnV0cyAoYW5kIG90aGVyIHNvZnR3YXJlCisgICAgICAgIGxpY2Vuc2VkIGJ5IEFwYWNoZSkuPC9saT4KKyAgICA8bGk+PGNvZGU+UkVBRE1FPC9jb2RlPiAtIEEgYnJpZWYgaW50cm9kdWN0aW9uIHRvIFN0cnV0cy48L2xpPgorICAgIDxsaT48Y29kZT5saWIvPC9jb2RlPiAtIERpcmVjdG9yeSBjb250YWluaW5nIGZpbGVzIHlvdSB3aWxsIG5lZWQgaW4KKyAgICAgICAgeW91ciBvd24gYXBwbGljYXRpb25zLiAgVGhlIGluZGl2aWR1YWwgZmlsZXMgb2YgaW50ZXJlc3QgYXJlOgorICAgICAgICA8dWw+CisgICAgICAgIDxsaT48Y29kZT5jb21tb25zLSouamFyPC9jb2RlPiAtIFJlbGVhc2UgcGFja2FnZXMgZnJvbSB0aGUKKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy8iPkpha2FydGEgQ29tbW9ucworICAgICAgICAgICAgUHJvamVjdDwvYT4gdGhhdCBTdHJ1dHMgcmVsaWVzIG9uLiAgWW91IGFyZSB3ZWxjb21lIHRvIHVzZSB0aGVzZQorICAgICAgICAgICAgY2xhc3NlcyBpbiB5b3VyIG93biBhcHBsaWNhdGlvbnMuICBUaGVzZSBKQVIgZmlsZXMgc2hvdWxkIGJlCisgICAgICAgICAgICBjb3BpZWQgaW50byB0aGUgPGNvZGU+L1dFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3Rvcnkgb2YKKyAgICAgICAgICAgIHlvdXIgd2ViIGFwcGxpY2F0aW9uLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMuamFyPC9jb2RlPiAtIEpBUiBmaWxlIHRoYXQgY29udGFpbnMgdGhlIGNvbXBpbGVkCisgICAgICAgICAgICBKYXZhIGNsYXNzZXMgb2YgU3RydXRzLiAgWW91IG11c3QKKyAgICAgICAgICAgIHBsYWNlIHRoaXMgZmlsZSBpbiB0aGUgPGNvZGU+L1dFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3Rvcnkgb2YKKyAgICAgICAgICAgIHlvdXIgd2ViIGFwcGxpY2F0aW9uLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMteHh4eHgudGxkPC9jb2RlPiAtIFRoZSB0YWcgbGlicmFyeSBkZXNjcmlwdG9yIGZpbGVzCisgICAgICAgICAgICBmb3IgdGhlIFN0cnV0cyAxLjEgdGFnIGxpYnJhcmllcyAoYmVhbiwgaHRtbCwgbG9naWMsIGFuZAorICAgICAgICAgICAgdGVtcGxhdGUpLiAgWW91IG11c3QgcGxhY2UgdGhlc2UgZmlsZXMgaW4gdGhlIDxjb2RlPi9XRUItSU5GPC9jb2RlPgorICAgICAgICAgICAgZGlyZWN0b3J5IG9mIHlvdXIgd2ViIGFwcGxpY2F0aW9uLCBhbmQgcmVmZXJlbmNlIHRoZW0gd2l0aAorICAgICAgICAgICAgYXBwcm9wcmlhdGUgPGNvZGU+Jmx0O3RhZ2xpYiZndDs8L2NvZGU+IGRpcmVjdGl2ZXMgaW4geW91cgorICAgICAgICAgICAgd2ViLnhtbCBmaWxlLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5qZGJjMl8wLXN0ZGV4dC5qYXI8L2NvZGU+IC0gVGhlIEpEQkMgMi4wIE9wdGlvbmFsIFBhY2thZ2UKKyAgICAgICAgICAgIEFQSSBjbGFzc2VzIChwYWNrYWdlIDxjb2RlPmphdmF4LnNxbDwvY29kZT4pLiAgWW91IHdpbGwgbmVlZCB0bworICAgICAgICAgICAgaW5jbHVkZSB0aGlzIGZpbGUgaW4gdGhlIDxjb2RlPi9XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5CisgICAgICAgICAgICBvZiB5b3VyIGFwcGxpY2F0aW9uLCBpZiBpdCBpcyBub3QgYWxyZWFkeSBtYWRlIHZpc2libGUgdG8gd2ViCisgICAgICAgICAgICBhcHBsaWNhdGlvbnMgYnkgeW91ciBzZXJ2bGV0IGNvbnRhaW5lci48L2xpPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLWNvbmZpZ18xXzEuZHRkPC9jb2RlPiAtIFRoZSBkb2N1bWVudCB0eXBlIGRlc2NyaXB0b3IKKyAgICAgICAgICAgIChEVEQpIGZvciB0aGUgU3RydXRzIDEuMSBjb25maWd1cmF0aW9uIGZpbGUgKHdoaWNoIGlzIHR5cGljYWxseSBuYW1lZAorICAgICAgICAgICAgPGNvZGU+L1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWw8L2NvZGU+LiAgWW91ciBjb25maWd1cmF0aW9uIGZpbGUKKyAgICAgICAgICAgIHdpbGwgYmUgdmFsaWRhdGVkIGFnYWluc3QgYW4gaW50ZXJuYWwgY29weSBvZiB0aGlzIERURCAtLSB0aGlzCisgICAgICAgICAgICBjb3B5IGlzIGF2YWlsYWJsZSBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy1jb25maWdfMV8wLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yCisgICAgICAgICAgICAoRFREKSBmb3IgdGhlIFN0cnV0cyAxLjAgY29uZmlndXJhdGlvbiBmaWxlICh3aGljaCBpcyB0eXBpY2FsbHkgbmFtZWQKKyAgICAgICAgICAgIDxjb2RlPi9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sPC9jb2RlPi4gIFlvdXIgY29uZmlndXJhdGlvbiBmaWxlCisgICAgICAgICAgICB3aWxsIGJlIHZhbGlkYXRlZCBhZ2FpbnN0IGFuIGludGVybmFsIGNvcHkgb2YgdGhpcyBEVEQgLS0gdGhpcworICAgICAgICAgICAgY29weSBpcyBhdmFpbGFibGUgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDxsaT48Y29kZT53ZWItYXBwXzJfMi5kdGQ8L2NvZGU+IC0gVGhlIGRvY3VtZW50IHR5cGUgZGVzY3JpcHRvciAoRFREKQorICAgICAgICAgICAgZm9yIHdlYi54bWwgZmlsZXMgY29uZm9ybWluZyB0byB0aGUgU2VydmxldCAyLjIgc3BlY2lmaWNhdGlvbi4KKyAgICAgICAgICAgIFRoaXMgY29weSBpcyBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPndlYi1hcHBfMl8zLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yIChEVEQpCisgICAgICAgICAgICBmb3Igd2ViLnhtbCBmaWxlcyBjb25mb3JtaW5nIHRvIHRoZSBTZXJ2bGV0IDIuMyBzcGVjaWZpY2F0aW9uLgorICAgICAgICAgICAgVGhpcyBjb3B5IGlzIGZvciByZWZlcmVuY2UgcHVycG9zZXMgb25seS48L2xpPgorICAgICAgICA8L3VsPjwvbGk+CisgICAgPGxpPjxjb2RlPndlYmFwcHMvPC9jb2RlPiAtIFdlYiBBcHBsaWNhdGlvbiBBcmNoaXZlIChXQVIpIGZpbGVzIGZvciB0aGUKKyAgICAgICAgd2ViIGFwcGxpY2F0aW9ucyB0aGF0IGFyZSBpbmNsdWRlZCB3aXRoIFN0cnV0cy48L2xpPgorICAgIDwvdWw+CisKKyAgPC9zZWN0aW9uPgorCisgIDxzZWN0aW9uIG5hbWU9IldoYXQncyBOZXc/IiBocmVmPSJOZXciPgorCisgICAgPHA+Rm9sbG93aW5nIGFyZSBoaWdobGlnaHRzIG9mIHRoZSBuZXcgZmVhdHVyZXMuIEluIHRoZSBuZXh0IHNlY3Rpb24sIHdlCisgICAgcHJvdmlkZSBsaW5rcyB0byB0aGUgSmF2YURvY3MgZm9yIHRoZSBhZmZlY3RlZCBjbGFzc2VzLjwvcD4KKworICAgIDxwPjxzdHJvbmc+TmV3IENvbmZpZ3VyYXRpb24gRFREPC9zdHJvbmc+PC9wPgorICAgIDxwPiBUaGUgU3RydXRzIENvbmZpZ3VyYXRpb24gMS4wIERURCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHRoZQorICAgIDxjb2RlPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2R0ZHMvc3RydXRzLWNvbmZpZ18xXzEuZHRkIj5zdHJ1dHMtY29uZmlnXzFfMS5kdGQ8L2E+PC9jb2RlPi4KKyAgICBJbiB0aGUgU3RydXRzIDEuMSByZWxlYXNlLCBleGlzdGluZyBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlcyBjYW4gYmUKKyAgICBsb2FkZWQgdXNpbmcgZWl0aGVyIERURCB2ZXJzaW9uLgorICAgIDwvcD4KKworICAgIDxwPjxzdHJvbmc+TmV3IERlcGVuZGVuY2llcyBvbiBDb21tb25zIHBhY2thZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlNldmVyYWwgY29tcG9uZW50cyBvZiBTdHJ1dHMgMS4wIGhhdmUgYmVlbiBmb3VuZCB0byBiZSB1c2VmdWwgaW4KKyAgICBnZW5lcmFsIEphdmEgZGV2ZWxvcG1lbnQgKGFuZCBub3QganVzdCB1c2VmdWwgZm9yIGJ1aWxkaW5nIFN0cnV0cy1iYXNlZAorICAgIHdlYiBhcHBsaWNhdGlvbnMpLCBhbmQgaGF2ZSBiZWVuIG1pZ3JhdGVkIGludG8gdGhlCisgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zLyI+SmFrYXJ0YSBDb21tb25zIFByb2plY3Q8L2E+LgorICAgIEFzIGEgcmVzdWx0LCB0aGUgY3VycmVudCBkZXZlbG9wbWVudCB2ZXJzaW9uIG9mIFN0cnV0cyBoYXMgYmVlbiBtb2RpZmllZAorICAgIHRvIHJlbHkgb24gdGhlIENvbW1vbnMgcGFja2FnZXMgY29udGFpbmluZyB0aGVzZSBjbGFzc2VzLCByYXRoZXIgdGhhbiB0aGUKKyAgICBTdHJ1dHMgaW50ZXJuYWwgdmVyc2lvbnMuICBJbiBuZWFybHkgZXZlcnkgY2FzZSwgdGhpcyBpbnZvbHZlZCBjaGFuZ2luZworICAgIG9ubHkgdGhlIDxjb2RlPmltcG9ydDwvY29kZT4gc3RhdGVtZW50cyBhdCB0aGUgdG9wIG9mIHlvdXIgY2xhc3Nlcy4gIEFueQorICAgIGFwcGxpY2F0aW9ucyB0aGF0IHV0aWxpemUgdGhlc2UgY2xhc3NlcyB3aWxsIG5lZWQgdG8gYmUgbW9kaWZpZWQgaW4gdGhlCisgICAgc2FtZSB3YXkuICA8L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBDb21tb25zIHBhY2thZ2VzIGNvbnRhaW4gdGhlIHJlcGxhY2VtZW50cyBmb3IgdGhlCisgICAgY29ycmVzcG9uZGluZyBTdHJ1dHMgMS4wIGNsYXNzZXM6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PHN0cm9uZz5CZWFuVXRpbHMgUGFja2FnZTwvc3Ryb25nPgorICAgICAgICBbPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2JlYW51dGlscy5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzPC9jb2RlPjwvYT5dIC0KKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbHMuQmVhblV0aWxzPC9jb2RlPiwKKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbHMuQ29udmVydFV0aWxzPC9jb2RlPiwgYW5kCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWxzLlByb3BlcnR5VXRpbHM8L2NvZGU+LjwvbGk+CisgICAgPGxpPjxzdHJvbmc+Q29sbGVjdGlvbnMgUGFja2FnZTwvc3Ryb25nPgorICAgICAgICBbPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2NvbGxlY3Rpb25zLmh0bWwiPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5jb2xsZWN0aW9uczwvY29kZT48L2E+XSAgLQorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkFycmF5U3RhY2s8L2NvZGU+LAorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RBcnJheUxpc3Q8L2NvZGU+LAorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RIYXNoTWFwPC9jb2RlPiwKKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0VHJlZU1hcDwvY29kZT4uPC9saT4KKyAgICA8bGk+PHN0cm9uZz5EaWdlc3RlciBQYWNrYWdlPC9zdHJvbmc+IC0KKyAgICAgICAgWzxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9kaWdlc3Rlci5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXI8L2NvZGU+PC9hPl0gLQorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci4qPC9jb2RlPi48L2xpPgorICAgIDwvdWw+CisgICAgPHA+VGhlIGZvbGxvd2luZyBDb21tb25zIHBhY2thZ2VzIGFyZSBhbHNvIG5vdyB1c2VkIGJ5IHZhcmlvdXMgY29tcG9uZW50cworICAgIG9mIHRoZSBTdHJ1dHMgZnJhbWV3b3JrOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxzdHJvbmc+RGF0YWJhc2UgQ29ubmVjdGlvbiBQb29sIFBhY2thZ2U8L3N0cm9uZz4KKyAgICBbPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2RiY3AuaHRtbCI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmRiY3A8L2NvZGU+PC9hPl08L2xpPgorICAgIDxsaT48c3Ryb25nPkZpbGVVcGxvYWQgUGFja2FnZTwvc3Ryb25nPgorICAgIFs8YSBocmVmPSJodHRwOi8vY3ZzLmFwYWNoZS5vcmcvdmlld2N2cy9qYWthcnRhLWNvbW1vbnMtc2FuZGJveC9maWxldXBsb2FkLyI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmZpbGV1cGxvYWQ8L2NvZGU+PC9hPl08L2xpPgorICAgIDxsaT48c3Ryb25nPkxvZ2dpbmcgUGFja2FnZTwvc3Ryb25nPgorICAgIFs8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvbG9nZ2luZy5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZzwvY29kZT48L2E+XTwvbGk+CisgICAgPGxpPjxzdHJvbmc+UG9vbCBQYWNrYWdlPC9zdHJvbmc+CisgICAgWzxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9wb29sL2luZGV4Lmh0bWwiPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5wb29sPC9jb2RlPjwvYT5dPC9saT4KKyAgICA8bGk+PHN0cm9uZz5TZXJ2aWNlcyBQYWNrYWdlPC9zdHJvbmc+CisgICAgWzxhIGhyZWY9Imh0dHA6Ly9jdnMuYXBhY2hlLm9yZy92aWV3Y3ZzL2pha2FydGEtY29tbW9ucy1zYW5kYm94L3NlcnZpY2VzLyI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLnNlcnZpY2VzPC9jb2RlPjwvYT5dPC9saT4KKyAgICA8bGk+PHN0cm9uZz5WYWxpZGF0b3IgUGFja2FnZTwvc3Ryb25nPgorICAgIFs8YSBocmVmPSJodHRwOi8vY3ZzLmFwYWNoZS5vcmcvdmlld2N2cy9qYWthcnRhLWNvbW1vbnMvdmFsaWRhdG9yLyI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvcjwvY29kZT48L2E+XTwvbGk+CisgICAgPC91bD4KKworCisgICAgPHA+PHN0cm9uZz5OT1RFISBYTUwgUGFyc2VyIFByZXJlcXVpc2l0ZSBVcGRhdGVkPC9zdHJvbmc+PC9wPgorCisgICAgPHA+U3RydXRzIG5vdyBkZXBlbmRzIG9uIGFuIFhNTCBwYXJzZXIgdGhhdCBjb25mb3JtcyB0byB0aGUgSkFYUC8xLjEKKyAgICAocmF0aGVyIHRoYW4gSkFYUC8xLjApIEFQSXMuIFBhcnNlcnMga25vd24gdG8gd29yayBpbmNsdWRlIHRoZSBKQVhQLzEuMQorICAgIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiwgYW5kIFhlcmNlcyAxLjMuMS48L3A+CisKKyAgICA8cD48c3Ryb25nPlNPVVJDRSBERVZFTE9QRVJTIE5PVEUhIEFudCBQcmVyZXF1aXNpdGUgVXBkYXRlZDwvc3Ryb25nPjwvcD4KKyAgICA8cD5UbyBidWlsZCBTdHJ1dHMgZnJvbSBzb3VyY2UgQW50IDEuNCBvciBsYXRlciBpcyBub3cgcmVxdWlyZWQuIFRoaXMKKyAgICBkb2VzIG5vdCBhZmZlY3QgZGV2ZWxvcGVycyB0aGF0IHVzZSBTdHJ1dHMgZnJvbSB0aGUgYmluYXJ5IGRpc3RyaWJ1dGlvbi48L3A+CisKKyAgICA8cD48c3Ryb25nPlN0cnV0cyBWYWxpZGF0b3IgSW50ZWdyYXRpb248L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIG5ldyBDb21tb25zLVZhbGlkYXRvciBpcyBub3cgaW50ZWdyYXRlZCB3aXRoIFN0cnV0cyBhbmQgZXhwb3NlZAorICAgIHRocm91Z2ggdGhlIG5ldyBWYWxpZGF0b3IgcGFja2FnZS48L3A+CisKKyAgICA8cD48c3Ryb25nPlRpbGVzIC0gQW4gYWR2YW5jZWQgdGVtcGxhdGluZyB0YWdsaWI8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIFRpbGVzIEpTUCBhc3NlbWJseSBmcmFtZXdvcmsgaGFzIGJlZW4gaW50ZWdyYXRlZCB3aXRoIFN0cnV0cy48L3A+CisKKyAgICA8cD48c3Ryb25nPk5lc3RlZCAtIEFuIHZlcnkgY29vbCB0YWdsaWIgZXh0ZW5zaW9uPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBOZXN0ZWQgdGFnbGliIGlzIGJ1bmRsZWQgd2l0aCBTdHJ1dHMgYW5kIGVuaGFuY2VzIHRoZSBmdW5jdGlvbmFsaXR5CisgICAgIG9mIHRoZSBleGlzdGluZyBTdHJ1dHMgdGFncy48L3A+CisKKyAgICA8cD48c3Ryb25nPk5ldyBFeGFtcGxlIEFwcGxpY2F0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5OZXcgZXhhbXBsZSBhcHBsaWNhdGlvbnMgZm9yIHRoZSBWYWxpZGF0b3IgYW5kIFRpbGVzIGFyZSBub3cgcGFydAorICAgIG9mIHRoZSBTdHJ1dHMgZGlzdHJpYnV0aW9uLjwvcD4KKworICAgIDxwPjxzdHJvbmc+TmV3IENvbnRyaWIgZGlyZWN0b3J5IGZvciBvcHRpb25hbCBjb21wb25lbnRzPC9zdHJvbmc+PC9wPgorICAgIDxwPkEgbmV3IGRpcmVjdG9yeSAoPGNvZGU+Y29udHJpYjwvY29kZT4pIGluIHRoZSBDVlMgc291cmNlIHJlcG9zaXRvcnkgaGFzCisgICAgYmVlbiBhZGRlZCB0byBhY2N1bXVsYXRlIFN0cnV0cyBhZGQtb24gZXh0ZW5zaW9ucyB0aGF0IGFyZSBnZW5lcmFsbHkKKyAgICB1c2VmdWwgYnV0IGhhdmUgbm90IHlldCBiZWVuIGludGVncmF0ZWQgaW50byB0aGUgc3RhbmRhcmQgY29kZSBiYXNlLjwvcD4KKworICAgIDx1bD4KKyAgICA8bGk+U2NhZmZvbGQgLSBMaWJyYXJ5IG9mIHJldXNhYmxlIGNsYXNzZXMgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMuPC9saT4KKyAgICA8bGk+U2VydmljZSBNYW5hZ2VyIC0gQWRkIGN1c3RvbSBzZXJ2aWNlcyB3aXRob3V0IHN1YmNsYXNzaW5nIGNvbnRyb2xsZXIuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIHNvdXJjZSBmb3IgdGhlc2UgY29tcG9uZW50cyBpcyBhdmFpbGFibGUgaW4gdGhlIFN0cnV0cyBzb3VyY2UKKyAgICBkaXN0cmlidXRpb24uIEJpbmFyeSBkaXN0cmlidXRpb25zIG1heSBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIHdpdGggdGhlIFN0cnV0cworICAgIGRvd25sb2FkIGFyZWEuIEFzIG9wdGlvbmFsIGNvbXBvbmVudHMsIHRoZXNlIHByb2R1Y3RzIGhhdmUgdGhlaXIgb3duCisgICAgcmVsZWFzZSBjeWNsZXMuPC9wPgorCisgICAgPHA+PHN0cm9uZz5BY3Rpb24gUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBiYXNpYyBjb250cm9sbGVyCisgICAgZnJhbWV3b3JrIFs8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5UaGUgQWN0aW9uU2VydmxldCBub3cgcHJvdmlkZXMgc3VwcG9ydCBmb3IgbW9kdWxhciBTdHJ1dHMgYXBwbGljYXRpb25zIGFuZAorICAgIHNwb3J0cyBzZXZlcmFsIG5ldyBleHRlbnNpb24gcG9pbnRzLjwvbGk+CisgICAgPGxpPlRoZSBuZXcgPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IGNsYXNzIHdpbGwgc3VwcG9ydCBhIHN1cGVyc2V0IG9mCisgICAgICAgIHRoZSBjYXBhYmlsaXRpZXMgb2YgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiwgYW5kIHdpbGwgYmUgdXNlZnVsIGFzCisgICAgICAgIGEgY29sbGVjdGlvbiBvZiBnZW5lcmFsIHB1cnBvc2UgbWVzc2FnZXMsIG5vdCBqdXN0IGVycm9ycy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlVwbG9hZCBQYWNrYWdlIEFkZGl0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIGZpbGUgdXBsb2FkIGNsYXNzZXMKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9jb2RlPl06PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyOjwvY29kZT4gTmV3IGNsYXNzIHRoYXQgaW1wbGVtZW50cworICAgICAgICBmaWxlIHVwbG9hZCB1c2luZyB0aGUgSmFrYXJ0YSBDb21tb25zIEZpbGVVcGxvYWQgcGFja2FnZS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlV0aWwgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSB1dGlsaXR5IGNsYXNzZXMKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvY29kZT5dOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPkxvY2FsU3RyaW5nczo8L2NvZGU+IENvcnJlY3QgbWVzc2FnZSByZWdhcmRpbmcgcmVwbGFjZWFibGUgcGFyYW1ldGVyIHNvIHRoYXQgaXQgZG9lcyBub3QgYXBwZW5kIGFuIGV4dHJhbmVvdXMgY2hhcmFjdGVyLjwvbGk+CisgICAgPGxpPjxjb2RlPkxhYmVsVmFsdWVCZWFuOjwvY29kZT4gTmV3IGNsYXNzIHRoYXQgZGVmaW5lcyBhIGNvbGxlY3Rpb24gb2YgbmFtZS92YWx1ZSBwYWlycyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlICZsdDtodG1sOm9wdGlvbnMmZ3Q7IHRhZywgYW5kIGVsc2V3aGVyZS48L2xpPgorICAgIDxsaT48Y29kZT5NZXNzYWdlUmVzb3VyY2VzOjwvY29kZT4gRXNjYXBlIGFueSBzaW5nbGUgcXVvdGUgY2hhcmFjdGVycyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgc3BlY2lmaWVkIG1lc3NhZ2Ugc3RyaW5nLjwvbGk+CisgICAgPGxpPjxjb2RlPmNvbXB1dGVQYXJhbWV0ZXJzOjwvY29kZT4gQWxsb3cgYSB0cmFuc2FjdGlvbiB0b2tlbiB0byBiZSB0aGUgb25seSBwYXJhbWV0ZXIgaW4gLjwvbGk+CisgICAgPGxpPjxjb2RlPlJlcXVlc3RVdGlsczo8L2NvZGU+IENoYW5nZSB0byBlbmNvZGUgYW1wZXJzYW5kcyB3aGVuIGJ1aWxkaW5nIGEgcXVlcnkgc3RyaW5nLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+QmVhbiBUYWdsaWIgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtYmVhbjwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeQorICAgIFs8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvY29kZT5dOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPiZsdDtiZWFuOndyaXRlPjwvY29kZT46IEFkZCBmb3JtYXQsIGxvY2FsZSBhbmQgYnVuZGxlIGF0dHJpYnV0ZXMgdG8gc3VwcG9ydCBmb3JtYXR0aW5nIHZhbHVlcyBhY2NvcmRpbmcgdG8gY3VycmVudAorICAgIHVzZXIgbG9jYWxlLCBmb3JtYXQgc3RyaW5nIGZyb20gYXR0cmlidXRlIG9yIGZvcm1hdCBzdHJpbmcgZnJvbSBzdHJpbmcgcmVzb3VyY2VzLjwvbGk+CisgICAgPGxpPjxjb2RlPiZsdDtiZWFuOmNvb2tpZT4sICZsdDtiZWFuOmhlYWRlcj4sIG9yICZsdDtiZWFuOnBhcmFtZXRlcj46PC9jb2RlPiBDb3JyZWN0IHRoZSBnZW5lcmF0ZWQgc2NyaXB0aW5nIHZhcmlhYmxlIHR5cGUgd2hlbiB0YWcgaXMgdXNlZCB3aXRoIHRoZSAibXVsdGlwbGUiIGF0dHJpYnV0ZS48L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7YmVhbjptZXNzYWdlJmd0Ozo8L2NvZGU+IEFkZGVkIDxjb2RlPm5hbWU8L2NvZGU+LCA8Y29kZT5wcm9wZXJ0eTwvY29kZT4sIGFuZCAgPGNvZGU+c2NvcGU8L2NvZGU+IGF0dHJpYnV0ZXMgdG8gdGhlIHRhZywgc28gdGhhdCB0aGUgbWVzc2FnZSBzb3VyY2Uga2V5IGNhbiBiZSBvYnRhaW5lZCBkeW5hbWljYWxseSBmcm9tIGEgYmVhbiBvciBiZWFuIHByb3BlcnR5LjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+SFRNTCBUYWdsaWIgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtaHRtbDwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT48Y29kZT4mbHQ7b3B0aW9ucyZndDs6PC9jb2RlPiBJZiB0aGUgcHJvcGVydHkgc3BlY2lmaWVkIGJ5IHRoZSAncHJvcGVydHknIGF0dHJpYnV0ZSByZXR1cm5zIG51bGwsIHRhZyBub3cgdGhyb3dzIGFuIGVycm9yIG1lc3NhZ2UgdGhhdCBpbmRpY2F0ZXMgd2hhdCB0aGUgcmVhbCBwcm9ibGVtIGlzLCByYXRoZXIgdGhhbiBjYXVzaW5nIGFuIE5QRS48L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7aHRtbDpvcHRpb24mZ3Q7IGFuZCAmbHQ7aHRtbDpvcHRpb25zJmd0Ozo8L2NvZGU+IEFkZGVkICdzdHlsZScgYW5kICdzdHlsZUNsYXNzJyBhdHRyaWJ1dGVzLjwvbGk+CisgICAgPGxpPjxjb2RlPiZsdDtodG1sOm9wdGlvbnNDb2xsZWN0aW9uJmd0Ozo8L2NvZGU+IE5ldyB0YWcgcHJvdmlkaW5nIGEgY2xlYW5lciB3YXkgb2YgcG9wdWxhdGluZyBIVE1MIG9wdGlvbnMgZnJvbSBhIGNvbGxlY3Rpb24uPC9saT4KKyAgICA8bGk+PGNvZGU+Jmx0O2JlYW46bWVzc2FnZSZndDs6PC9jb2RlPiBBZGRlZCAnbmFtZScsICdwcm9wZXJ0eScgYW5kICdzY29wZScgYXR0cmlidXRlcyBzbyB0aGF0IHRoZSBtZXNzYWdlIHJlc291cmNlIGtleSBjYW4gYmUgb2J0YWluZWQgZHluYW1pY2FsbHkgZnJvbSBhIGJlYW4uPC9saT4KKyAgICA8bGk+PGNvZGU+Jmx0O2h0bWw6bWVzc2FnZXMmZ3Q7OjwvY29kZT4gTmV3IHRhZyB0byBpdGVyYXRlIHRocm91Z2ggYSBtZXNzYWdlIGNvbGxlY3Rpb24gaW4gdGhlIG5ldyA8Y29kZT5BY3Rpb25NZXNzYWdlczwvY29kZT4gY2xhc3MuPC9saT4KKyAgICA8bGk+PGNvZGU+QWN0aW9uRm9ybTo8L2NvZGU+IFRhZyB3aWxsIG5vdyBjYWxsIDxjb2RlPnJlc2V0KCk8L2NvZGU+IGlmIGl0IGluc3RhbnRpYXRlcyB0aGUgQWN0aW9uRm9ybSBiZWFuLiBUaGlzIGFsc28gcmVxdWlyZXMgdGhhdCB0aGUgYmVhbiBpbnN0YW50aWF0ZWQgYnkgdGhlIHRhZyB0byBiZSBhbiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBzdWJjbGFzcy4gPC9saT4KKyAgICA8bGk+PGNvZGU+Jmx0O2h0bWw6aW1hZ2U+OjwvY29kZT4gQWRkZWQgdGhlICdhbGlnbicgYXR0cmlidXRlLjwvbGk+CisgICAgPGxpPjxjb2RlPiZsdDtodG1sOmltZz46PC9jb2RlPiBBZGRlZCB0aGUgbW91c2UgZXZlbnQgYXR0cmlidXRlcyAoJ29uY2xpY2snLCAnb25kYmxjbGljaycsICdvbm1vdXNlZG93bicsICdvbm1vdXNldXAnLCAnb25tb3VzZW92ZXInLCAnb25tb3VzZW1vdmUnLCAnb25tb3VzZW91dCcpLjwvbGk+CisgICAgPGxpPjxjb2RlPlN1Ym1pdFRhZywgU2VsZWN0VGFnLCBMaW5rVGFnLmphdmEsIENoZWNrYm94VGFnLCBCdXR0b25UYWcsIEltYWdlVGFnLCBSYWRpb1RhZywgYW5kIFRleHRBcmVhIHRhZ3M6PC9jb2RlPiBBZGRlZCBpbmRleGVkIHByb3BlcnR5LiA8L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkxvZ2ljIFRhZ2xpYiBQYWNrYWdlIEFkZGl0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlCisgICAgPGVtPnN0cnV0cy1sb2dpYzwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPl06PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+Jmx0O2xvZ2ljOmVtcHR5Jmd0OzwvY29kZT4gYW5kCisgICAgICAgIDxjb2RlPiZsdDtsb2dpYzpub3RFbXB0eSZndDs8L2NvZGU+OiBOZXcgdGFncyB0aGF0IGFyZSBzaW1pbGFyIHRvCisgICAgICAgIDxjb2RlPiZsdDtsb2dpYzpwcmVzZW50Jmd0OzwvY29kZT4gYW5kCisgICAgICAgIDxjb2RlPiZsdDtsb2dpYzpub3RQcmVzZW50Jmd0OzwvY29kZT4gZXhjZXB0IGZvciB0aGUgdHJlYXRtZW50IG9mCisgICAgICAgIGVtcHR5IHN0cmluZ3MuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5UZW1wbGF0ZSBUYWdsaWIgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtdGVtcGxhdGU8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlPC9jb2RlPl06PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Tm9uZS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkRvY3VtZW50YXRpb24gQWRkaXRpb25zPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgU3RydXRzIERvY3VtZW50YXRpb24KKyAgICBhcHBsaWNhdGlvbiAoYW5kIGNvcnJlc3BvbmRpbmcgY29udGVudHMgb24gdGhlIFN0cnV0cyB3ZWIgc2l0ZSk6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+VmVyc2lvbiBEaWZmZXJlbmNlczogTmV3IHNlY3Rpb24gaW4gUmVsZWFzZSBOb3RlcyB0byBsaW5rIHRvIHRoZSBKYXZhRG9jcyBmb3IgYWxsIFN0cnV0cyBjbGFzc2VzIGFuZCBtZW1iZXJzIGFkZGVkIG9yIGNoYW5nZWQgYmV0d2VlbiB2ZXJzaW9ucy48L2xpPgorICAgIDxsaT5Vc2VyIEd1aWRlIFByZWZhY2U6IE5ldyBzZWN0aW9uIHRvIG92ZXJ2aWV3IHRoZSBlbmFibGluZyB0ZWNobm9sb2dpZXMgYmVoaW5kIFN0cnV0cy48L2xpPgorICAgIDxsaT5EZXZlbG9wZXIgR3VpZGVzOiBBZGRlZCAiY292ZXIgcGFnZSIgdG8gZ3VpZGVzLiBUaGVzZSB0aGVuIGxpbmsgdG8gdGhlIFBhY2thZ2UgRGVzY3JpcHRpb25zIGFuZCB0aGUgQVBJIGd1aWRlcy48L2xpPgorICAgIDxsaT5IVE1MIHRhZyBkb2N1bWVudGF0aW9uOiBleHBhbmRlZCB0byBjb3ZlciB1c2luZyBpbmRleGVkIHByb3BlcnRpZXMgd2l0aCBpdGVyYXRlLjwvbGk+CisgICAgPGxpPlNpdGUgTWVudTogUmVtb3ZlZCBzZXBhcmF0ZSBsaW5rcyB0byB0YWdsaWIgZG9jdW1lbnRhdGlvbiwgc2luY2UgdGhlc2UgYXJlIG5vdyBpbiB0aGUgRGV2ZWxvcGVyIEd1aWRlLjwvbGk+CisgICAgPGxpPk5ld2JpZSBGQVE6IFRoZSBxdWVzdGlvbnMgbW9zdCBsaWtlbHkgdG8gYmUgYXNrZWQgYnkgbmV3IGRldmVsb3BlcnMgdXNpbmcgU3RydXRzLiBTdGlsbCB1bmRlciBkZXZlbG9wbWVudC48L2xpPgorICAgIDxsaT5LaWNrc3RhcnQgRkFROiBUaGUgcXVlc3Rpb25zIG1vc3QgbGlrZWx5IHRvIGJlIGFza2VkIHdoZW4gc2VsZWN0aW5nIFN0cnV0cy48L2xpPgorICAgIDxsaT4xLjAgSmF2YURvYzogQWRkZWQgYXJjaGl2YWwgY29weSB0byB3ZWIgc2l0ZSBmb3IgZnV0dXJlIHJlZmVyZW5jZS48L2xpPgorICAgIDxsaT5UaGUgVXNlckd1aWRlICJCdWlsZGluZyIgcGFnZXM6IEdlbmVyYWwgcmV2aXNpb25zIHRvIHJlZmxlY3QgbmV3IGZlYXR1cmVzIGFuZCBjdXJyZW50IHByYWN0aWNlcy48L2xpPgorICAgIDxsaT5JbnN0YWxsYXRpb246IFVwZGF0ZWQgaW5zdHJ1Y3Rpb25zIGZvciBTaWx2ZXJTdHJlYW0gYW5kIFJlc2luLiBBZGQgaW5zdGFsbGF0aW9uIG5vdGVzIGZvciBKZXR0eS4gQWRkZWQgUmV4SVAgdG8gbGlzdCBvZiBub21pbmFsIGNvbnRhaW5lcnMuPC9saT4KKyAgICA8bGk+SmF2YURvY3M6IE5ldyA8Y29kZT5Ac2luY2UgU3RydXRzIDEuMTwvY29kZT4gdGFnIHRvIGluZGljYXRlIG5ldyBwYWNrYWdlcywgY2xhc3NlcywgYW5kIG1lbWJlcnMgYWRkZWQgYWZ0ZXIgdGhlIFN0cnV0cyAxLjAueCB2ZXJzaW9uPC9saT4KKyAgICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworICA8c2VjdGlvbiBuYW1lPSJPcGVyYXRpb25hbCBDaGFuZ2VzIGFuZCBCdWcgRml4ZXMiIGhyZWY9IkNoYW5nZXMiPgorCisgICAgPHA+PHN0cm9uZz5TdHJ1dHMgQ29uZmlndXJhdGlvbiBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24KKyAgICBmaWxlcyByZWxhdGVkIHRvIFN0cnV0czo8L3A+CisgICAgPHVsPgorICAgIDxsaT5EZXByZWNhdGVkIChTdHJ1dHMgMC41KSBjb25maWd1cmF0aW9uIGZpbGUgZm9ybWF0OiBSZW1vdmUgc3VwcG9ydC48L2xpPgorICAgIDxsaT5EZXByZWNhdGVkIChTdHJ1dHMgMC41KSBtZXRob2RzOiBSZW1vdmUgZnJvbSBjb2RlYmFzZS48L2xpPgorICAgIDwvdWw+CisgICAgPHA+PHN0cm9uZz5BZGRlZCBDb25maWcgUGFja2FnZTwvc3Ryb25nPjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkNvbnRyb2xsZXJDb25maWc6IEFkZGVkIGlucHV0Rm9yd2FyZCBwcm9wZXJ0eSB0byBpbmRpY2F0ZSB0aGF0IEFjdGlvbk1hcHBpbmcuaW5wdXQgaXMgYSBmb3J3YXJkIHJhdGhlciB0aGFuIGEgVVJJLjwvbGk+CisgICAgPGxpPkNvbnRyb2xsZXJDb25maWc6IEFkZGVkIGZvcndhcmRQYXR0ZXJuIGFuZCBpbnB1dFBhdHRlcm4gdG8gaGVscCBtYW5hZ2UgcGFnZSBkaXJlY3RvcmllcyBpbiBhcHBsaWNhdGlvbiBtb2R1bGVzLjwvbGk+CisgICAgPGxpPkFkZGVkIHBhY2thZ2UgdG8gcHJvdmlkZSBtb3JlIGZsZXhpYmlsaXR5IGluIGNvbmZpZ3VyaW5nIHRoZSBjb250cm9sbGVyIGFuZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIG1vZHVsYXIgYXBwbGljYXRpb25zPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxzdHJvbmc+QWN0aW9uIFBhY2thZ2UgQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSBiYXNpYworICAgIGNvbnRyb2xsZXIgZnJhbWV3b3JrIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkFjdGlvbk1hcHBpbmc6IGlucHV0IHByb3BlcnR5IG1heSBub3cgcmVmZXIgdG8gYW4gQWN0aW9uRm9yd2FyZCByYXRoZXIgdGhhbiBhIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIGlmIGlucHV0Rm9yd2FyZCBpcyBzZXQgdG8gdHJ1ZSBvbiB0aGUgbW9kdWxlJ3MgQ29udHJvbGxlckNvbmZpZyBiZWFuIFtvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29udHJvbGxlckNvbmZpZy48L2xpPgorICAgIDxsaT5BY3Rpb25TZXJ2bGV0OiBBZGRlZCBjb252ZXJ0TnVsbCBwYXJhbWV0ZXIgdG8gc2ltdWxhdGUgdGhlIFN0cnV0cyAxLjAgYmVoYXZpb3Igd2hlbiBwb3B1bGF0aW5nIGZvcm1zLiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIG51bWVyaWMgSmF2YSB3cmFwcGVyIGNsYXNzIHR5cGVzIChsaWtlIGphdmEubGFuZy5JbnRlZ2VyKSB3aWxsIGRlZmF1bHQgdG8gbnVsbCAocmF0aGVyIHRoYW4gMCkuPC9saT4KKyAgICA8bGk+QWN0aW9uU2VydmxldDogQWRkZWQgImNvbmZpZy8kZm9vIiBwYXJhbWV0ZXIgYW5kIGRlcHJlY2F0ZWQgc2V2ZXJhbCBvdGhlcnMgaW4gZmF2b3Igb2YgY29tcG9uZW50cyBpbiB0aGUgbmV3IGNvbmZpZyBwYWNrYWdlLiA8L2xpPgorICAgIDxsaT5BY3Rpb25Gb3JtcyBhbmQgcmVsYXRlZCBjbGFzc2VzOiBub3cgdXNlIGEgU3RyaW5nQnVmZmVyIHdoZW4gcmVzcG9uZGluZyBhIHRvU3RyaW5nIHJlcXVlc3QgaW4gb3JkZXIgdG8gY29uc2VydmUgcmVzb3VyY2VzLjwvbGk+CisgICAgPGxpPkxvb2t1cERpc3BhdGNoQWN0aW9uOiBBZGRlZCBzdGFuZGFyZCBBY3Rpb24gdG8gaGVscCBzZWxlY3QgYmV0d2VlbiBpbnRlcm5hdGlvbmFsaXplZCBidXR0b25zLjwvbGk+CisgICAgPGxpPkFjdGlvbkZvcm0gY2xhc3M6IE1vZGlmaWVkIHRvIHVzZSBBY3Rpb25TZXJ2bGV0V3JhcHBlciByYXRoZXIgdGhhbiBleHBvc2UgQWN0aW9uU2VydmxldC48L2xpPgorICAgIDxsaT5BY3Rpb25TZXJ2bGV0V3JhcHBlciBjbGFzczogQWRkZWQgZm9yIHVzZSBieSBBY3Rpb25Gb3JtIHRvIHByZXZlbnQgdGhlIFB1YmxpYyBTdHJpbmcgcHJvcGVydGllcyBvZiBBY3Rpb25TZXJ2bGV0IGZyb20gYmVpbmcgY2hhbmdlZCB2aWEgYSBxdWVyeSBzdHJpbmcuPC9saT4KKyAgICA8bGk+QWN0aW9uLk1BUFBJTkdfS0VZIHJlcXVlc3QgYXR0cmlidXRlOiBVbmNvbmRpdGlvbmFsbHkgcGFzcyB0aGUgc2VsZWN0ZWQgbWFwcGluZyBhcyBhIHJlcXVlc3QgYXR0cmlidXRlICgib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLm1hcHBpbmcuaW5zdGFuY2UiKSBldmVuIGlmIG5vIGZvcm0gYmVhbiBpcyBzcGVjaWZpZWQuPC9saT4KKyAgICA8bGk+QWN0aW9uU2VydmxldDogQXZvaWQgYSBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpbiBjb3JuZXIgY2FzZXMgY2F1c2VkIGJ5IGZhaWxlZCBpbml0aWFsaXphdGlvbiBvZiBzZXJ2bGV0LjwvbGk+CisgICAgPGxpPkFjdGlvbkZvcm0gY2xhc3M6IE5vdyB0cnVseSBzZXJpYWxpemFibGUsIGJlY2F1c2UKKyAgICAgICAgdGhlIHR3byBub24tc2VyaWFsaXphYmxlIGluc3RhbmNlIHZhcmlhYmxlcyAoc2VydmxldCBhbmQKKyAgICAgICAgbXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpIGhhdmUgYmVlbiBtYWRlIHRyYW5zaWVudC4gIEhvd2V2ZXIsIGlmIHlvdQorICAgICAgICBhY3R1YWxseSBkbyBzZXJpYWxpemUgYW5kIGRlc2VyaWFsaXplIHN1Y2ggaW5zdGFuY2VzLCBpdCBpcyB5b3VyCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIHJlc2V0IHRoZXNlIHR3byBwcm9wZXJ0aWVzLjwvbGk+CisgICAgPGxpPkFjdGlvbk1lc3NhZ2VzIGFuZCBBY3Rpb25FcnJvcnM6IFRoZSBpbml0aWFsIG9yZGVyIGEgcHJvcGVydHkva2V5IGlzIGFkZGVkIGluIGlzIG5vdyByZXRhaW5lZC48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlVwbG9hZCBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgZmlsZSB1cGxvYWQKKyAgICBwYWNrYWdlIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjogTmV3IGltcGxlbWVudGF0aW9uIG9mIGZpbGUgdXBsb2FkIGJhc2VkCisgICAgICAgIG9uIHRoZSBKYWthcnRhIENvbW1vbnMgRmlsZVVwbG9hZCBwYWNrYWdlLiBUaGlzIG5ldyBpbXBsZW1lbnRhdGlvbiBpcworICAgICAgICBub3cgdGhlIGRlZmF1bHQuPC9saT4KKyAgICA8bGk+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTogRml4ZWQgbG9zdCBieXRlIHByb2JsZW0uPC9saT4KKyAgICA8bGk+QXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uOiBGaXhlZCBzaXR1YXRpb25zIHdoZXJlIHRoaXMgd2FzIGtub3duIHRvIG9jY3VyLjwvbGk+CisgICAgPGxpPk11bHRpcGFydCByZXF1ZXN0czogQmV0dGVyIHJlcG9ydGluZyBmb3IgcHJlbWF0dXJlIGNsb3Npbmcgb2YgaW5wdXQgc3RyZWFtcyB3aGlsZSByZWFkaW5nIG11bHRpcGFydCByZXF1ZXN0cy48L2xpPgorICAgIDxsaT5OZXcgbGluZSBjaGFyYWN0ZXJzOiBBZGRpdGlvbmFsIGZpeCBmb3IgZmlsZSBjb3JydXB0aW9uIHByb2JsZW0gd2l0aCB1cGxvYWRzIGFuZCBuZXcgbGluZSBjaGFyYWN0ZXJzLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+VXRpbGl0eSBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgdXRpbGl0aWVzCisgICAgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlJlcXVlc3RVdGlsczogQWRkZWQgc3VwcG9ydCBmb3IgZm9yd2FyZFBhdHRlcm4sIHBhZ2VQYXR0ZXJuLCBhbmQgaW5wdXRGb3J3YXJkIHByb3BlcnRpZXMgb24gQ29udHJvbGxlckNvbmZpZy48L2xpPgorICAgIDxsaT5HZW5lcmljRGF0YVNvdXJjZTogRGVwcmVjYXRlZCBhbmQgbW9kaWZpZWQgdG8gYWN0IGFzIGEgdGhpbiB3cmFwcGVyIGFyb3VuZAorICAgIFs8Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuZGJwYy5CYXNpY0RhdGFTb3VyY2U8L2NvZGU+XS4KKyAgICBSZXBsYWNlZCBieSBkaXJlY3QgdXNlIG9mIEJhc2ljRGF0YVNvdXJjZSBvciBvdGhlciBjb21wYXRpYmxlIGNvbXBvbmVudC48L2xpPgorICAgIDxsaT5SZXF1ZXN0VXRpbHMgY2xhc3M6IE1vZGlmeSB0byB1c2UgQWN0aW9uU2VydmxldFdyYXBwZXIgcmF0aGVyIHRoYW4gZXhwb3NlIEFjdGlvblNlcnZsZXQuPC9saT4KKyAgICA8bGk+QWRkZWQgZXJyb3IgbWVzc2FnZSBmb3IgdGhlIGdldEFjdGlvbkVycm9ycyBhbmQgZ2V0QWN0aW9uTWVzc2FnZXMgbWV0aG9kLjwvbGk+CisgICAgPGxpPmdldEFjdGlvbkVycm9ycyBhbmQgZ2V0QWN0aW9uTWVzc2FnZXM6IEFkZGVkIG1ldGhvZHMgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgY29ycmVzcG9uZGluZworICAgIG9iamVjdCBiYXNlZCBvbiB0aGUgb2JqZWN0IHJldHJpZXZlZCBmcm9tIHJlcXVlc3Qgc2NvcGUgYmFzZWQgb24gdGhlIGtleSBwYXNzZWQgaW4uPC9saT4KKyAgICA8bGk+QWN0aW9uRXJyb3JzIG9yIEFjdGlvbk1lc3NhZ2VzOiBUaGUgbG9naWMgZm9yIGNyZWF0aW5nIG9uZSBvZiB0aGVzZSBvYmplY3RzIGhhcyBiZWVuIG1vdmVkCisgICAgdG8gYSB1dGlsaXR5IG1ldGhvZCBpbiBSZXF1ZXN0VXRpbHMuPC9saT4KKyAgICA8bGk+SnNwRXhjZXB0aW9uIG1lc3NhZ2U6IE5vdyBnZW5lcmF0ZWQgaW4gUmVxdWVzdFV0aWxzLjwvbGk+CisgICAgPGxpPkNvbnZlcnRVdGlscy5jb252ZXJ0Q2hhcmFjdGVyKCk6IFdpbGwgbm93IGRldGVjdCBlbXB0eSBzdHJpbmdzIGFuZCByZXR1cm4gdGhlIGRlZmF1bHQgdmFsdWUuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5CZWFuIFRhZ2xpYiBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUKKyAgICA8ZW0+c3RydXRzLWJlYW48L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT4mbHQ7aHRtbDplcnJvcnMmZ3Q7OiBXaGVuIHRoZSBwcm9wZXJ0eSB0YWcgaXMKKyAgICBzcGVjaWZpZWQsIGVycm9ycyBhcmUgbm8gbG9uZ2VyIHByaW50ZWQgaWYgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eQorICAgIGhhcyBubyBlcnJvcnMuIFByZXZpb3VzbHkgZXJyb3JzIHdlcmUgYWx3YXlzIHByaW50ZWQgISBGdXR1cmUKKyAgICBlbmhhbmNlbWVudHMgd291bGQgaW5jbHVkZSBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgdG8gYWx3YXlzIHR1cm4KKyAgICBvZmYgdGhlIGhlYWRlciBvciBmb290ZXIuIDwvbGk+CisgICAgPGxpPk1hZGUgdGhlIHJlbWFpbmluZyBoZWxwZXIgbWV0aG9kcyAicHJvdGVjdGVkIiByYXRoZXIgdGhhbgorICAgICJwcml2YXRlIi48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkhUTUwgVGFnbGliIFBhY2thZ2UgQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZQorICAgIDxlbT5zdHJ1dHMtaHRtbDwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZQorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Rm9ybVRhZzogRml4ZWQgdG8gZXhjbHVkZSBxdWVyeSBzdHJpbmcgd2hlbiBpZGVudGlmeWluZyBhY3Rpb24gbWFwcGluZyBuYW1lLjwvbGk+CisgICAgPGxpPkltZ1RhZzogQ29ycmVjdGx5IFVSTEVuY29kZSB0aGUgcXVlcnkgc3RyaW5nIHBhcmFtZXRlciB2YWx1ZSBldmVuIGlmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgcGFyYW1ldGVyLjwvbGk+CisgICAgPGxpPk11bHRpYm94VGFnLmRvQWZ0ZXJCb2R5KCk6IENvcnJlY3RlZCB0byByZXR1cm4gU0tJUF9CT0RZIGluc3RlYWQgb2YgU0tJUF9QQUdFLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+TG9naWMgVGFnbGliIFBhY2thZ2UgQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZQorICAgIDxlbT5zdHJ1dHMtbG9naWM8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgKHBhY2thZ2UKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5Ob25lLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+RG9jdW1lbnRhdGlvbiBBcHBsaWNhdGlvbiBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgRG9jdW1lbnRhdGlvbgorICAgIGFwcGxpY2F0aW9uIChhbmQgY29ycmVzcG9uZGluZyBjb250ZW50cyBvbiB0aGUgU3RydXRzIHdlYiBzaXRlKSBoYXZlCisgICAgb2NjdXJyZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+UmVvcmdhbml6ZWQgUmVzb3VyY2VzIGludG8gc2VwYXJhdGUgcGFnZXMuLjwvbGk+CisgICAgPGxpPkluIHRoZSBUYWcgRGV2ZWxvcGVycyBHdWlkZSwgYWRkIG1vcmUgZGV0YWlsIHJlZ2FyZGluZyBmaWxlIHVwbG9hZCByZXF1aXJlbWVudHMuPC9saT4KKyAgICA8bGk+SW4gQnVpbGRpbmcgVmlldyBDb21wb25lbnRzLCBjbGFyaWZ5IHRoYXQgYWRkaXRpb25hbCBpMThuIHN1cHBvcnQgbWF5IGJlIHByb3ZpZGVkIGJ5IHRoZSBicm93c2VyLCBhbmQgaXMgb3V0c2lkZSB0aGUgc2NvcGUgb2YgdGhlIGZyYW1ld29yay48L2xpPgorICAgIDxsaT5JbiBCdWlsZGluZyBDb250cm9sbGVyIENvbXBvbmVudHMsIGRvY3VtZW50ICd2YWxpZGF0aW5nJyBpbml0LXBhcmFtLCBhZGQgZGVmYXVsdHMgZm9yIHZhcmlvdXMgcGFyYW1ldGVycywgY2xhcmlmeSB0aGF0IHNvbWUgd2ViLnhtbCBzZXR0aW5ncyBhcmUgbm90IFN0cnV0cy1zcGVjaWZpYy48L2xpPgorICAgIDxsaT5UYWcgbGlicmFyeSBkb2N1bWVudGF0aW9uOiBNb3ZlZCB1bmRlciBVc2VyJ3MgR3VpZGUuPC9saT4KKyAgICA8bGk+UmVvcmdhbml6ZWQgdG8gc2VwYXJhdGUgMS4wIG1hdGVyaWFsIGZyb20gbmlnaHRseSBidWlsZCBtYXRlcmlhbC48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPk1haWxSZWFkZXIgRXhhbXBsZSBBcHBsaWNhdGlvbiBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgTWFpbFJlYWRlciBFeGFtcGxlIEFwcGxpY2F0aW9uCisgICAgaGF2ZSBvY2N1cnJlZDo8L3A+CisgICAgPHVsPgorICAgIDxsaT5BZGQgUnVzc2lhbiBhbmQgSmFwYW5lc2UgdHJhbnNsYXRpb25zIG9mIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZXMgYW5kIHNldCB0aGUgY2hhcmFjdGVyIHNldCBmb3IgdGhlIGV4YW1wbGUgSlNQIHBhZ2VzIHRvICJVVEYtOCIgc28gdGhhdCBpdCBjYW4gZGlzcGxheSBlaXRoZXIgRW5nbGlzaCBvciBKYXBhbmVzZS48L2xpPgorICAgIDxsaT5FeGNoYW5nZSAibmFtZSIgZm9yICJhdHRyaWJ1dGUiIHByb3BlcnRpZXMgZm9yIEVkaXQgbWFwcGluZ3MgaW4gU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZS48L2xpPgorICAgIDxsaT5SZW1vdmUgcmVmZXJlbmNlcyB0byBzYXZpbmcgZGF0YWJhc2UgZGF0YSBmcm9tICJ0b3VyIiBkb2N1bWVudCwgc2luY2UgdGhpcyBmdW5jdGlvbmFsaXR5IHdhcyByZW1vdmVkLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+VGVtcGxhdGUgRXhhbXBsZSBBcHBsaWNhdGlvbiBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgVGVtcGxhdGUgRXhhbXBsZQorICAgIEFwcGxpY2F0aW9uIGhhdmUgb2NjdXJyZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Tm9uZS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkV4ZXJjaXNlIFRhZ2xpYiBFeGFtcGxlIEFwcGxpY2F0aW9uIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgdG8gdGhlIFN0cnV0cyBFeGVyY2lzZSBUYWdsaWIgRXhhbXBsZQorICAgIEFwcGxpY2F0aW9uIGhhdmUgb2NjdXJyZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+QWRkZWQgdGVzdCBjYXNlIGZvciAmbHQ7aHRtbDpzZWxlY3Q+IHVzaW5nICZsdDtodG1sOm9wdGlvbnM+IGJhc2VkIG9uIGEgY29sbGVjdGlvbgorICAgIHNhdmVkIGluIHRoZSBwYWdlIGNvbnRleHQuPC9saT4KKyAgICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworICA8c2VjdGlvbiBuYW1lPSJXaGF0J3MgZGlmZmVyZW50PyIgaHJlZj0iZGlmZiI+CisKKyAgICA8cD5UaGlzIHNlY3Rpb24gcHJvdmlkZXMgbGlua3MgdG8gdGhlIFN0cnV0cyBKYXZhRG9jIGZvciBhbnkgY2xhc3NlcyB0aGF0IGhhdmUKKyAgICBiZWVuIGFkZGVkIG9yIGRlcHJlY2F0ZWQgc2luY2UgdGhlIFN0cnV0cyAxLjAgcmVsZWFzZS4KKyAgICA8L3A+CisKKyAgICA8cD48c3Ryb25nPlByZXZpb3VzbHkgZGVwcmVjYXRlZCBjbGFzc2VzIGFuZCBwYWNrYWdlcyByZW1vdmVkIGluIFN0cnV0cyAxLjE8L3N0cm9uZz48L3A+CisgICAgPHVsPgorICAgIDxsaT5SZW1vdmVkOgorICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbHMuQmVhblV0aWxzPC9jb2RlPiwKKyAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWxzLkNvbnZlcnRVdGlsczwvY29kZT4sIGFuZAorICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbHMuUHJvcGVydHlVdGlsczwvY29kZT4gLSByZXBsYWNlZCBieQorICAgICAgPGEgaHJlZiA9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9iZWFudXRpbHMuaHRtbCI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlsczwvY29kZT48L2E+CisgICAgPC9saT4KKyAgICA8bGk+UmVtb3ZlZDoKKyAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5BcnJheVN0YWNrPC9jb2RlPiwKKyAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0QXJyYXlMaXN0PC9jb2RlPiwKKyAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0SGFzaE1hcDwvY29kZT4sCisgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdFRyZWVNYXA8L2NvZGU+IC0gcmVwbGFjZWQgYnkKKyAgICAgPGEgaHJlZiA9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9jb2xsZWN0aW9ucy5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnM8L2NvZGU+PC9hPgorICAgIDwvbGk+CisgICAgPGxpPlJlbW92ZWQ6IDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLio8L2NvZGU+IC0gcmVwbGFjZWQgYnkKKyAgICA8YSBocmVmID0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2RpZ2VzdGVyLmh0bWwiPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3RlcjwvY29kZT48L2E+CisgICAgPC9saT4KKyAgICA8bGk+UmVtb3ZlZDogVGhlIDxjb2RlPnN0cnV0cy1jb25maWcuZHRkPC9jb2RlPiAtIFJlcGxhY2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2R0ZHMvc3RydXRzLWNvbmZpZ18xXzEuZHRkIj48Y29kZT5zdHJ1dHMtY29uZmlnXzFfMS5kdGQ8L2NvZGU+PC9hPi48L2xpPgorICAgIDxsaT5SZW1vdmVkOiBUaGUgb21uaWJ1cyAic3RydXRzIiB0YWdsaWIgYW5kIGl0cyBhc3NvY2lhdGVkIFRMRCAtIHJlcGxhY2VkIGJ5IHNlcGFyYXRlIGJlYW4sIGxvZ2ljLCBhbmQgaHRtbCB0YWdsaWJzLjwvbGk+CisgICAgPGxpPlJlbW92ZWQ6IFRoZSAiZm9ybSIgdGFnbGliIGFuZCBpdHMgYXNzb2NpYXRlZCBUTEQgLSByZXBsYWNlZCBieSAocmVuYW1lZCBhcykgdGhlIGh0bWwgdGFnbGliLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+UGFja2FnZXMgYWRkZWQgaW4gU3RydXRzIDEuMTwvc3Ryb25nPjwvcD4KKworICAgIDx1bD4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+Y29uZmlnPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj50YWdsaWIubmVzdGVkPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPnRhZ2xpYi5uZXN0ZWQuYmVhbjwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj50YWdsaWIubmVzdGVkLmh0bWw8L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPnRhZ2xpYi5uZXN0ZWQubG9naWM8L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9wYWNrYWdlLWZyYW1lLmh0bWwiPnZhbGlkYXRvcjwvYT48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkNsYXNzZXMgYWRkZWQgaW4gU3RydXRzIDEuMTwvc3Ryb25nPjwvcD4KKyAgICA8cD5hY3Rpb248L3A+CisgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj4gQWN0aW9uTWVzc2FnZTwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+IEFjdGlvbk1lc3NhZ2VzPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj4gRHluYUFjdGlvbkZvcm08L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+IER5bmFBY3Rpb25Gb3JtQ2xhc3M8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCI+IEV4Y2VwdGlvbkhhbmRsZXI8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+IFJlcXVlc3RQcm9jZXNzb3I8L2E+PC9saT4KKyAgICA8L3VsPgorICAgIDxwPmFjdGlvbnM8L3A+CisgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiPiBMb29rdXBEaXNwYXRjaEFjdGlvbjwvYT48L2xpPgorICAgIDwvdWw+CisgICAgPHA+dGFnbGliLmh0bWw8L3A+CisgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj4gRnJhbWVUYWc8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj4gSmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj4gT3B0aW9uc0NvbGxlY3Rpb25UYWc8L2E+PC9saT4KKyAgICA8L3VsPgorICAgIDxwPnRhZ2xpYi5sb2dpYzwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIj4gRW1wdHlUYWc8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj4gTWVzc2FnZXNOb3RQcmVzZW50VGFnPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+IE1lc3NhZ2VzUHJlc2VudFRhZzwvYT48L2xpPgorICAgIDwvdWw+CisgICAgPHA+dXBsb2FkPC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj4gQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9hPjwvbGk+CisgICAgPC91bD4KKyAgICA8cD51dGlsPC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sIj4gTGFiZWxWYWx1ZUJlYW48L2E+PC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxzdHJvbmc+Q2xhc3NlcyB3aXRoIG1lbWJlcnMgYWRkZWQgaW4gU3RydXRzIDEuMTwvc3Ryb25nPjwvcD4KKyAgICA8cD48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5hY3Rpb24uQWN0aW9uPC9hPjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+QUNUSU9OX1NFUlZMRVRfS0VZPC9saT4KKyAgICAgIDxsaT5BUFBMSUNBVElPTl9LRVk8L2xpPgorICAgICAgPGxpPk1FU1NBR0VfS0VZPC9saT4KKyAgICAgIDxsaT5QTFVHX0lOU19LRVk8L2xpPgorICAgICAgPGxpPlJFUVVFU1RfUFJPQ0VTU09SX0tFWTwvbGk+CisgICAgICA8bGk+ZXhlY3V0ZTwvbGk+CisgICAgICA8bGk+Z2V0UmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpPC9saT4KKyAgICAgIDxsaT5zYXZlTWVzc2FnZXM8L2xpPgorICAgIDwvdWw+CisgICAgPHA+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPmFjdGlvbi5BPC9hPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5jdGlvblNlcnZsZXQ8L2E+PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5jb25maWdEaWdlc3RlcjwvbGk+CisgICAgICA8bGk+Y29udmVydEhhY2s8L2xpPgorICAgICAgPGxpPmxvZzwvbGk+CisgICAgICA8bGk+cHJvY2Vzc29yPC9saT4KKyAgICAgIDxsaT5nZXRJbnRlcm5hbDwvbGk+CisgICAgICA8bGk+ZGVzdHJveUFwcGxpY2F0aW9uczwvbGk+CisgICAgICA8bGk+ZGVzdHJveUNvbmZpZ0RpZ2VzdGVyPC9saT4KKyAgICAgIDxsaT5nZXRBcHBsaWNhdGlvbkNvbmZpZzwvbGk+CisgICAgICA8bGk+Z2V0UmVxdWVzdFByb2Nlc3NvcjwvbGk+CisgICAgICA8bGk+aW5pdEFwcGxpY2F0aW9uQ29uZmlnPC9saT4KKyAgICAgIDxsaT5pbml0QXBwbGljYXRpb25EYXRhU291cmNlczwvbGk+CisgICAgICA8bGk+aW5pdEFwcGxpY2F0aW9uUGx1Z0luczwvbGk+CisgICAgICA8bGk+aW5pdEFwcGxpY2F0aW9uTWVzc2FnZVJlc291cmNlczwvbGk+CisgICAgICA8bGk+aW5pdENvbmZpZ0RpZ2VzdGVyPC9saT4KKyAgICAgIDxsaT5tZXRob2RzIGNyZWF0ZWQgZm9yIGJhY2t3YXJkLWNvbXBhdGlibGl0eSBvbmx5CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+ZGVmYXVsdENvbnRyb2xsZXJDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0Rm9ybUJlYW5zQ29uZmlnPC9saT4KKyAgICAgICAgICA8bGk+ZGVmYXVsdEZvcndhcmRzQ29uZmlnPC9saT4KKyAgICAgICAgICA8bGk+ZGVmYXVsdE1hcHBpbmdzQ29uZmlnPC9saT4KKyAgICAgICAgICA8bGk+ZGVmYXVsdE1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvYT48L3A+CisgICAgPHVsPgorICAgICAgPGxpPmluZGV4ZWQ8L2xpPgorICAgICAgPGxpPnNldEluZGV4ZWQ8L2xpPgorICAgICAgPGxpPmdldEluZGV4ZWQ8L2xpPgorICAgIDwvdWw+CisgICAgPHA+PHN0cm9uZz5DbGFzc2VzIGRlcHJlY2F0ZWQgYmV0d2VlbiBTdHJ1dHMgMS4wIGFuZCBTdHJ1dHMgMS4xPC9zdHJvbmc+PC9wPgorICAgIDxwPmFjdGlvbjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+QWN0aW9uRXhjZXB0aW9uPC9saT4KKyAgICAgIDxsaT5BY3Rpb25Gb3JtQmVhbnM8L2xpPgorICAgICAgPGxpPkFjdGlvbkZvcndhcmRzPC9saT4KKyAgICAgIDxsaT5BY3Rpb25NYXBwaW5nczwvbGk+CisgICAgPC91bD4KKyAgICA8cD48c3Ryb25nPkNsYXNzZXMgd2l0aCBtZW1iZXJzIGRlcHJlY2F0ZWQgYmV0d2VlbiBTdHJ1dHMgMS4wIGFuZCBTdHJ1dHMgMS4xPC9zdHJvbmc+PC9wPgorICAgIDxwPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPmFjdGlvbi5BY3Rpb248L2E+PC9wPgorCisgICAgPHVsPgorICAgICAgPGxpPkZPUk1fQkVBTlNfS0VZPC9saT4KKyAgICAgIDxsaT5GT1JXQVJEU19LRVk8L2xpPgorICAgICAgPGxpPk1BUFBJTkdTX0tFWTwvbGk+CisgICAgICA8bGk+Z2V0UmVzb3VyY2VzKCk8L2xpPgorICAgICAgPGxpPnBlcmZvcm08L2xpPgorICAgIDwvdWw+CisgICAgPHA+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L2E+PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5maW5kRGF0YVNvdXJjZTwvbGk+CisgICAgICA8bGk+ZmluZEZvcm1CZWFuPC9saT4KKyAgICAgIDxsaT5maW5kRm9yd2FyZDwvbGk+CisgICAgICA8bGk+ZmluZE1hcHBpbmc8L2xpPgorICAgICAgPGxpPmluaXREYXRhU291cmNlczwvbGk+CisgICAgICA8bGk+bWV0aG9kcyBjcmVhdGVkIGZvciBiYWNrd2FyZC1jb21wYXRpYmxpdHkgb25seQorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPmRlZmF1bHRDb250cm9sbGVyQ29uZmlnPC9saT4KKyAgICAgICAgICA8bGk+ZGVmYXVsdEZvcm1CZWFuc0NvbmZpZzwvbGk+CisgICAgICAgICAgPGxpPmRlZmF1bHRGb3J3YXJkc0NvbmZpZzwvbGk+CisgICAgICAgICAgPGxpPmRlZmF1bHRNYXBwaW5nc0NvbmZpZzwvbGk+CisgICAgICAgICAgPGxpPmRlZmF1bHRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKworICAgIDxwPk5leHQ6IDxhIGhyZWY9Imluc3RhbGxhdGlvbi5odG1sIj5JbnN0YWxsYXRpb248L2E+PC9wPgorCisgIDwvc2VjdGlvbj4KKworICA8c2VjdGlvbiBuYW1lPSJLbm93biBJc3N1ZXMiIGhyZWY9IkJ1Z3MiPgorCisgICAgPHA+VGhlIGZvbGxvd2luZyBrbm93biBpc3N1ZXMgd2lsbCBiZSBhZGRyZXNzZWQgYmVmb3JlIEZpbmFsIFJlbGVhc2Ugb2YKKyAgICAgICBTdHJ1dHMgMS4xLiBUaGUgbnVtYmVycyBpbiBwYXJlbnRoZXNlcyBhcmUgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGVudHJpZXMKKyAgICAgICBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhIj5CdWd6aWxsYTwvYT4gYnVnCisgICAgICAgdHJhY2tpbmcgc3lzdGVtLjwvcD4KKworICAgIDxzdHJvbmc+Q3VzdG9tIFRhZ3M8L3N0cm9uZz4KKyAgICA8dWw+CisgICAgICA8bGk+VGhlICZsdDtodG1sOmZvcm0mZ3Q7IHRhZyBnZW5lcmF0ZXMgaW5jb3JyZWN0IEphdmFTY3JpcHQgd2hlbiB0aGUKKyAgICAgICAgICBmb2N1cyBpcyB0byBiZSBzZXQgb24gYSByYWRpbyBidXR0b24uCisgICAgICAgICAgKDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTU4NiI+IzE1ODY8L2E+KQorICAgICAgPC9saT4KKyAgICA8L3VsPgorCisgICAgPHN0cm9uZz5Eb2N1bWVudGF0aW9uPC9zdHJvbmc+CisgICAgPHVsPgorICAgICAgPGxpPlNvbWUgcGFydHMgb2YgdGhlIGRvY3VtZW50YXRpb24gYXJlIGluY29tcGxldGUsIGVzcGVjaWFsbHkgZm9yIG5ldworICAgICAgICAgIGZlYXR1cmVzIGluIHRoaXMgcmVsZWFzZS4gVGhlc2Ugc2VjdGlvbnMgYXJlIG1hcmtlZCBUT0RPLgorICAgICAgICAgICg8YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTEwNTM3Ij4jMTA1Mzc8L2E+KQorICAgICAgPC9saT4KKyAgICA8L3VsPgorCisgICAgPHN0cm9uZz5FeGFtcGxlIFdlYmFwcHM8L3N0cm9uZz4KKyAgICA8dWw+CisgICAgICA8bGk+VGhlIDxlbT5zdHJ1dHMtYmxhbms8L2VtPiBzYW1wbGUgd2ViYXBwIGZhaWxzIHRvIHJ1biBkdWUgdG8gcHJvYmxlbXMKKyAgICAgICAgICBhY2Nlc3NpbmcgbWVzc2FnZSByZXNvdXJjZXMuCisgICAgICAgICAgKDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTUiPiMxMDk1NTwvYT4pCisgICAgICA8L2xpPgorICAgIDwvdWw+CisKKyAgICA8c3Ryb25nPlZhbGlkYXRvciBGcmFtZXdvcms8L3N0cm9uZz4KKyAgICA8dWw+CisgICAgICA8bGk+VmFsaWRhdG9yIGdlbmVyYXRlcyBpbmNvcnJlY3QgSmF2YVNjcmlwdCBmb3IgdGhlICZsdDtzZWxlY3QmZ3Q7IGVsZW1lbnQuCisgICAgICAgICAgKDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NzM1MyI+IzczNTM8L2E+KQorICAgICAgPC9saT4KKyAgICAgIDxsaT5WYWxpZGF0b3IgcmFuZ2UgY2hlY2tpbmcgc3VwcG9ydHMgb25seSBpbnRlZ2VyIHZhbHVlcywgYW5kIG5vdCBvdGhlcgorICAgICAgICAgIG51bWVyaWMgdmFsdWVzIHN1Y2ggYXMgZmxvYXRzIGFuZCBkb3VibGVzLgorICAgICAgICAgICg8YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTEwMTkxIj4jMTAxOTE8L2E+KQorICAgICAgPC9saT4KKyAgICAgIDxsaT5WYWxpZGF0b3IgZG9lcyBub3Qgd29yayB3aXRoIFN0cnV0cyBhcHBsaWNhdGlvbiBtb2R1bGVzIG90aGVyIHRoYW4KKyAgICAgICAgICB0aGUgZGVmYXVsdCBtb2R1bGUuCisgICAgICAgICAgKDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTAzNDgiPiMxMDM0ODwvYT4pCisgICAgICA8L2xpPgorICAgICAgPGxpPlZhbGlkYXRvciBkb2VzIG5vdCBzdWNjZXNzZnVsbHkgdmFsaWRhdGUgZW1wdHkgZGF0ZSBmaWVsZHMuCisgICAgICAgICAgKDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTAzNDkiPiMxMDM0OTwvYT4pCisgICAgICA8L2xpPgorICAgICAgPGxpPlZhbGlkYXRvciBkb2VzIG5vdCB2YWxpZGF0ZSBkYXRhIHdoZW4gdXNpbmcgRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uCisgICAgICAgICAgKDxhIGhyZWY9Imh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTA0MzIiPiMxMDQzMjwvYT4pCisgICAgICA8L2xpPgorICAgICAgPGxpPlZhbGlkYXRvciBwbHVnaW4gZG9lcyBub3QgY29ycmVjdGx5IGNvbmZpZ3VyZSBtdWx0aXBsZSB2YWxpZGF0aW9uIGZpbGVzLgorICAgICAgICAgICg8YSBocmVmPSJodHRwOi8vaXNzdWVzLmFwYWNoZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTEwNTg0Ij4jMTA1ODQ8L2E+KQorICAgICAgPC9saT4KKyAgICA8L3VsPgorCisgIDxwPk5leHQ6IDxhIGhyZWY9Imluc3RhbGxhdGlvbi5odG1sIj5JbnN0YWxsYXRpb248L2E+PC9wPgorCisgIDwvc2VjdGlvbj4KKworICAgIDwvYm9keT4KKworPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLTEuMS1iMy54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjEtYjMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0N2Q4NWYKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjEtYjMueG1sCkBAIC0wLDAgKzEsNjE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9InJlbGVhc2Utbm90ZXMtMS4xLWIzLmh0bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5TdHJ1dHMgUmVsZWFzZSBOb3RlcyAoVmVyc2lvbiAxLjEgQmV0YSAzKTwvdGl0bGU+CisgIDwvcHJvcGVydGllcz4KKworICA8Ym9keT4KKworICA8c2VjdGlvbiBuYW1lPSI2LjEgUmVsZWFzZSBOb3RlcyIgaHJlZj0icmVsZWFzZV9ub3RlcyIvPgorICA8c2VjdGlvbiBuYW1lPSJCZXRhIE5vdGVzIiBocmVmPSJiZXRhIj4KKworICAgIDxwPlRoaXMgc2VjdGlvbiBjb250YWlucyB0aGUgcmVsZWFzZSBub3RlcyBmb3IKKyAgICA8c3Ryb25nPm5pZ2h0bHkgYnVpbGQ8L3N0cm9uZz4gb2YgdGhlIFN0cnV0cyBGcmFtZXdvcmssCisgICAgZm9yIGNoYW5nZXMgdGhhdCBoYXZlIHRha2VuIHBsYWNlIHNpbmNlCisgICAgPGEgaHJlZj0icmVsZWFzZS1ub3Rlcy0xLjEtYjIuaHRtbCI+VmVyc2lvbiAxLjEgYmV0YSAyPC9hPgorICAgIHdhcyByZWxlYXNlZC4gRm9yIGEgY29tcGxldGUgbGlzdCBvZiBjaGFuZ2VzIHNpbmNlIHRoZSBsYXN0CisgICAgcHJvZHVjdGlvbiByZWxlYXNlLCBzZWUgdGhlIDxhIGhyZWY9IiNJbnRyb2R1Y3Rpb24iPkludHJvZHVjdGlvbjwvYT4gPC9wPgorCisgIDwvc2VjdGlvbj4KKworPHNlY3Rpb24gbmFtZT0iQmV0YSBGaXhlcyIgaHJlZj0iYmV0YS5DaGFuZ2VzIj4KKworICA8cD4KKyAgPHN0cm9uZz5BcHBsaWNhdGlvbkNvbmZpZzo8L3N0cm9uZz4gSW4gU3RydXRzIDEuMS4gYmV0YSAzLCB0aGUgQXBwbGljYXRpb25Db25maWcgY2xhc3MgCisgIGlzIHJlbmFtZWQgdG8gTW9kdWxlQ29uZmlnLCB0byBjb25mb3JtIHdpdGggdGhlIHZlbmFjdWxhci4KKyAgPC9wPgorCisgIDxwPgorICA8c3Ryb25nPkR5bmEqRm9ybTo8L3N0cm9uZz4gSW4gU3RydXRzIDEuMS4gYmV0YSAzLCB0aGUgcmVzZXQgbWV0aG9kIHdhcyBjaGFuZ2VkIHNvIHRoYXQgCisgIGl0IGNvbmZvcm1zIHRvIHRoZSBvcmlnaW5hbCBBY3Rpb25Gb3JtIGltcGxlbWVudGF0aW9uLjwvcD4KKworICA8cD4KKyAgPHN0cm9uZz5CbGFuayBhcHBsaWNhdGlvbjo8L3N0cm9uZz4gRml4ZWQgY29uZmlndXJhdGlvbiBwcm9ibGVtIHdpdGggU3RydXRzIEJsYW5rIAorICBhcHBsaWNhdGlvbi4KKyAgPC9wPgorCis8L3NlY3Rpb24+CisKKyAgPHNlY3Rpb24gbmFtZT0iSW50cm9kdWN0aW9uIiBocmVmPSJJbnRyb2R1Y3Rpb24iPgorCisgICAgPHA+VGhlIHJlbWFpbmRlciBvZiB0aGlzIGRvY3VtZW50IGNvbnRhaW5zIHRoZSByZWxlYXNlIG5vdGVzIGZvcgorICAgIDxzdHJvbmc+bmlnaHRseSBidWlsZDwvc3Ryb25nPiBvZiB0aGUgU3RydXRzIEZyYW1ld29yaywKKyAgICBhbmQgY292ZXJzIGNoYW5nZXMgdGhhdCBoYXZlIHRha2VuIHBsYWNlIHNpbmNlCisgICAgPGEgaHJlZj0icmVsZWFzZS1ub3Rlcy0xLjAuMi5odG1sIj5WZXJzaW9uIDEuMC4yPC9hPgorICAgIHdhcyByZWxlYXNlZC4gIFRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgY292ZXIKKyAgICA8YSBocmVmPSIjTmV3Ij5OZXcgRmVhdHVyZXM8L2E+IGFuZCA8YSBocmVmPSIjQ2hhbmdlcyI+Q2hhbmdlczwvYT4KKyAgICB0byBTdHJ1dHMuPC9wPgorCisgIDwvc2VjdGlvbj4KKworCisgIDxzZWN0aW9uIG5hbWU9IldoYXQncyBJbmNsdWRlZD8iIGhyZWY9IkluY2x1ZGVkIj4KKworICAgIDxwPlRoZSBiaW5hcnkgZGlzdHJpYnV0aW9uIG9mIHRoaXMgcmVsZWFzZSBpbmNsdWRlcyB0aGUgZm9sbG93aW5nCisgICAgZmlsZXMgcmVsZXZhbnQgdG8gU3RydXRzOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPklOU1RBTEw8L2NvZGU+IC0gQnJpZWYgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucy4gIFNlZQorICAgICAgICB0aGUgPGNvZGU+U3RydXRzIERvY3VtZW50YXRpb24gQXBwbGljYXRpb248L2NvZGU+LCBvciBvbmxpbmUgYXQKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvIj5odHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy88L2E+CisgICAgICAgIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvbGk+CisgICAgPGxpPjxjb2RlPkxJQ0VOU0U8L2NvZGU+IC0gVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGxpY2Vuc2UgdGhhdAorICAgICAgICBkZWZpbmVzIHRoZSB0ZXJtcyB1bmRlciB3aGljaCB5b3UgY2FuIHVzZSBTdHJ1dHMgKGFuZCBvdGhlciBzb2Z0d2FyZQorICAgICAgICBsaWNlbnNlZCBieSBBcGFjaGUpLjwvbGk+CisgICAgPGxpPjxjb2RlPlJFQURNRTwvY29kZT4gLSBBIGJyaWVmIGludHJvZHVjdGlvbiB0byBTdHJ1dHMuPC9saT4KKyAgICA8bGk+PGNvZGU+bGliLzwvY29kZT4gLSBEaXJlY3RvcnkgY29udGFpbmluZyBmaWxlcyB5b3Ugd2lsbCBuZWVkIGluCisgICAgICAgIHlvdXIgb3duIGFwcGxpY2F0aW9ucy4gIFRoZSBpbmRpdmlkdWFsIGZpbGVzIG9mIGludGVyZXN0IGFyZToKKyAgICAgICAgPHVsPgorICAgICAgICA8bGk+PGNvZGU+Y29tbW9ucy0qLmphcjwvY29kZT4gLSBSZWxlYXNlIHBhY2thZ2VzIGZyb20gdGhlCisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvIj5KYWthcnRhIENvbW1vbnMKKyAgICAgICAgICAgIFByb2plY3Q8L2E+IHRoYXQgU3RydXRzIHJlbGllcyBvbi4gIFlvdSBhcmUgd2VsY29tZSB0byB1c2UgdGhlc2UKKyAgICAgICAgICAgIGNsYXNzZXMgaW4geW91ciBvd24gYXBwbGljYXRpb25zLiAgVGhlc2UgSkFSIGZpbGVzIHNob3VsZCBiZQorICAgICAgICAgICAgY29waWVkIGludG8gdGhlIDxjb2RlPi9XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5IG9mCisgICAgICAgICAgICB5b3VyIHdlYiBhcHBsaWNhdGlvbi48L2xpPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLmphcjwvY29kZT4gLSBKQVIgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSBjb21waWxlZAorICAgICAgICAgICAgSmF2YSBjbGFzc2VzIG9mIFN0cnV0cy4gIFlvdSBtdXN0CisgICAgICAgICAgICBwbGFjZSB0aGlzIGZpbGUgaW4gdGhlIDxjb2RlPi9XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5IG9mCisgICAgICAgICAgICB5b3VyIHdlYiBhcHBsaWNhdGlvbi48L2xpPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLXh4eHh4LnRsZDwvY29kZT4gLSBUaGUgdGFnIGxpYnJhcnkgZGVzY3JpcHRvciBmaWxlcworICAgICAgICAgICAgZm9yIHRoZSBTdHJ1dHMgMS4xIHRhZyBsaWJyYXJpZXMgKGJlYW4sIGh0bWwsIGxvZ2ljLCBhbmQKKyAgICAgICAgICAgIHRlbXBsYXRlKS4gIFlvdSBtdXN0IHBsYWNlIHRoZXNlIGZpbGVzIGluIHRoZSA8Y29kZT4vV0VCLUlORjwvY29kZT4KKyAgICAgICAgICAgIGRpcmVjdG9yeSBvZiB5b3VyIHdlYiBhcHBsaWNhdGlvbiwgYW5kIHJlZmVyZW5jZSB0aGVtIHdpdGgKKyAgICAgICAgICAgIGFwcHJvcHJpYXRlIDxjb2RlPiZsdDt0YWdsaWImZ3Q7PC9jb2RlPiBkaXJlY3RpdmVzIGluIHlvdXIKKyAgICAgICAgICAgIHdlYi54bWwgZmlsZS48L2xpPgorICAgICAgICA8bGk+PGNvZGU+amRiYzJfMC1zdGRleHQuamFyPC9jb2RlPiAtIFRoZSBKREJDIDIuMCBPcHRpb25hbCBQYWNrYWdlCisgICAgICAgICAgICBBUEkgY2xhc3NlcyAocGFja2FnZSA8Y29kZT5qYXZheC5zcWw8L2NvZGU+KS4gIFlvdSB3aWxsIG5lZWQgdG8KKyAgICAgICAgICAgIGluY2x1ZGUgdGhpcyBmaWxlIGluIHRoZSA8Y29kZT4vV0VCLUlORi9saWI8L2NvZGU+IGRpcmVjdG9yeQorICAgICAgICAgICAgb2YgeW91ciBhcHBsaWNhdGlvbiwgaWYgaXQgaXMgbm90IGFscmVhZHkgbWFkZSB2aXNpYmxlIHRvIHdlYgorICAgICAgICAgICAgYXBwbGljYXRpb25zIGJ5IHlvdXIgc2VydmxldCBjb250YWluZXIuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy1jb25maWdfMV8xLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yCisgICAgICAgICAgICAoRFREKSBmb3IgdGhlIFN0cnV0cyAxLjEgY29uZmlndXJhdGlvbiBmaWxlICh3aGljaCBpcyB0eXBpY2FsbHkgbmFtZWQKKyAgICAgICAgICAgIDxjb2RlPi9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sPC9jb2RlPi4gIFlvdXIgY29uZmlndXJhdGlvbiBmaWxlCisgICAgICAgICAgICB3aWxsIGJlIHZhbGlkYXRlZCBhZ2FpbnN0IGFuIGludGVybmFsIGNvcHkgb2YgdGhpcyBEVEQgLS0gdGhpcworICAgICAgICAgICAgY29weSBpcyBhdmFpbGFibGUgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMtY29uZmlnXzFfMC5kdGQ8L2NvZGU+IC0gVGhlIGRvY3VtZW50IHR5cGUgZGVzY3JpcHRvcgorICAgICAgICAgICAgKERURCkgZm9yIHRoZSBTdHJ1dHMgMS4wIGNvbmZpZ3VyYXRpb24gZmlsZSAod2hpY2ggaXMgdHlwaWNhbGx5IG5hbWVkCisgICAgICAgICAgICA8Y29kZT4vV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4uICBZb3VyIGNvbmZpZ3VyYXRpb24gZmlsZQorICAgICAgICAgICAgd2lsbCBiZSB2YWxpZGF0ZWQgYWdhaW5zdCBhbiBpbnRlcm5hbCBjb3B5IG9mIHRoaXMgRFREIC0tIHRoaXMKKyAgICAgICAgICAgIGNvcHkgaXMgYXZhaWxhYmxlIGZvciByZWZlcmVuY2UgcHVycG9zZXMgb25seS48L2xpPgorICAgICAgICA8bGk+PGNvZGU+d2ViLWFwcF8yXzIuZHRkPC9jb2RlPiAtIFRoZSBkb2N1bWVudCB0eXBlIGRlc2NyaXB0b3IgKERURCkKKyAgICAgICAgICAgIGZvciB3ZWIueG1sIGZpbGVzIGNvbmZvcm1pbmcgdG8gdGhlIFNlcnZsZXQgMi4yIHNwZWNpZmljYXRpb24uCisgICAgICAgICAgICBUaGlzIGNvcHkgaXMgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDxsaT48Y29kZT53ZWItYXBwXzJfMy5kdGQ8L2NvZGU+IC0gVGhlIGRvY3VtZW50IHR5cGUgZGVzY3JpcHRvciAoRFREKQorICAgICAgICAgICAgZm9yIHdlYi54bWwgZmlsZXMgY29uZm9ybWluZyB0byB0aGUgU2VydmxldCAyLjMgc3BlY2lmaWNhdGlvbi4KKyAgICAgICAgICAgIFRoaXMgY29weSBpcyBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPC91bD48L2xpPgorICAgIDxsaT48Y29kZT53ZWJhcHBzLzwvY29kZT4gLSBXZWIgQXBwbGljYXRpb24gQXJjaGl2ZSAoV0FSKSBmaWxlcyBmb3IgdGhlCisgICAgICAgIHdlYiBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgaW5jbHVkZWQgd2l0aCBTdHJ1dHMuPC9saT4KKyAgICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworICA8c2VjdGlvbiBuYW1lPSJXaGF0J3MgTmV3PyIgaHJlZj0iTmV3Ij4KKworICAgIDxwPkZvbGxvd2luZyBhcmUgaGlnaGxpZ2h0cyBvZiB0aGUgbmV3IGZlYXR1cmVzLiBJbiB0aGUgbmV4dCBzZWN0aW9uLCB3ZQorICAgIHByb3ZpZGUgbGlua3MgdG8gdGhlIEphdmFEb2NzIGZvciB0aGUgYWZmZWN0ZWQgY2xhc3Nlcy48L3A+CisKKyAgICA8cD48c3Ryb25nPk5ldyBDb25maWd1cmF0aW9uIERURDwvc3Ryb25nPjwvcD4KKyAgICA8cD4gVGhlIFN0cnV0cyBDb25maWd1cmF0aW9uIDEuMCBEVEQgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZiB0aGUKKyAgICA8Y29kZT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9kdGRzL3N0cnV0cy1jb25maWdfMV8xLmR0ZCI+c3RydXRzLWNvbmZpZ18xXzEuZHRkPC9hPjwvY29kZT4uCisgICAgSW4gdGhlIFN0cnV0cyAxLjEgcmVsZWFzZSwgZXhpc3RpbmcgU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZXMgY2FuIGJlCisgICAgbG9hZGVkIHVzaW5nIGVpdGhlciBEVEQgdmVyc2lvbi4KKyAgICA8L3A+CisKKyAgICA8cD48c3Ryb25nPk5ldyBEZXBlbmRlbmNpZXMgb24gQ29tbW9ucyBwYWNrYWdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5TZXZlcmFsIGNvbXBvbmVudHMgb2YgU3RydXRzIDEuMCBoYXZlIGJlZW4gZm91bmQgdG8gYmUgdXNlZnVsIGluCisgICAgZ2VuZXJhbCBKYXZhIGRldmVsb3BtZW50IChhbmQgbm90IGp1c3QgdXNlZnVsIGZvciBidWlsZGluZyBTdHJ1dHMtYmFzZWQKKyAgICB3ZWIgYXBwbGljYXRpb25zKSwgYW5kIGhhdmUgYmVlbiBtaWdyYXRlZCBpbnRvIHRoZQorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy8iPkpha2FydGEgQ29tbW9ucyBQcm9qZWN0PC9hPi4KKyAgICBBcyBhIHJlc3VsdCwgdGhlIGN1cnJlbnQgZGV2ZWxvcG1lbnQgdmVyc2lvbiBvZiBTdHJ1dHMgaGFzIGJlZW4gbW9kaWZpZWQKKyAgICB0byByZWx5IG9uIHRoZSBDb21tb25zIHBhY2thZ2VzIGNvbnRhaW5pbmcgdGhlc2UgY2xhc3NlcywgcmF0aGVyIHRoYW4gdGhlCisgICAgU3RydXRzIGludGVybmFsIHZlcnNpb25zLiAgSW4gbmVhcmx5IGV2ZXJ5IGNhc2UsIHRoaXMgaW52b2x2ZWQgY2hhbmdpbmcKKyAgICBvbmx5IHRoZSA8Y29kZT5pbXBvcnQ8L2NvZGU+IHN0YXRlbWVudHMgYXQgdGhlIHRvcCBvZiB5b3VyIGNsYXNzZXMuICBBbnkKKyAgICBhcHBsaWNhdGlvbnMgdGhhdCB1dGlsaXplIHRoZXNlIGNsYXNzZXMgd2lsbCBuZWVkIHRvIGJlIG1vZGlmaWVkIGluIHRoZQorICAgIHNhbWUgd2F5LiAgPC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgQ29tbW9ucyBwYWNrYWdlcyBjb250YWluIHRoZSByZXBsYWNlbWVudHMgZm9yIHRoZQorICAgIGNvcnJlc3BvbmRpbmcgU3RydXRzIDEuMCBjbGFzc2VzOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxzdHJvbmc+QmVhblV0aWxzIFBhY2thZ2U8L3N0cm9uZz4KKyAgICAgICAgWzxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9iZWFudXRpbHMuaHRtbCI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlsczwvY29kZT48L2E+XSAtCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWxzLkJlYW5VdGlsczwvY29kZT4sCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWxzLkNvbnZlcnRVdGlsczwvY29kZT4sIGFuZAorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlscy5Qcm9wZXJ0eVV0aWxzPC9jb2RlPi48L2xpPgorICAgIDxsaT48c3Ryb25nPkNvbGxlY3Rpb25zIFBhY2thZ2U8L3N0cm9uZz4KKyAgICAgICAgWzxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9jb2xsZWN0aW9ucy5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnM8L2NvZGU+PC9hPl0gIC0KKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5BcnJheVN0YWNrPC9jb2RlPiwKKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0QXJyYXlMaXN0PC9jb2RlPiwKKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0SGFzaE1hcDwvY29kZT4sCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdFRyZWVNYXA8L2NvZGU+LjwvbGk+CisgICAgPGxpPjxzdHJvbmc+RGlnZXN0ZXIgUGFja2FnZTwvc3Ryb25nPiAtCisgICAgICAgIFs8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvZGlnZXN0ZXIuaHRtbCI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyPC9jb2RlPjwvYT5dIC0KKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuKjwvY29kZT4uPC9saT4KKyAgICA8L3VsPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgQ29tbW9ucyBwYWNrYWdlcyBhcmUgYWxzbyBub3cgdXNlZCBieSB2YXJpb3VzIGNvbXBvbmVudHMKKyAgICBvZiB0aGUgU3RydXRzIGZyYW1ld29yazo8L3A+CisgICAgPHVsPgorICAgIDxsaT48c3Ryb25nPkRhdGFiYXNlIENvbm5lY3Rpb24gUG9vbCBQYWNrYWdlPC9zdHJvbmc+CisgICAgWzxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9kYmNwLmh0bWwiPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5kYnBjPC9jb2RlPjwvYT5dPC9saT4KKyAgICA8bGk+PHN0cm9uZz5GaWxlVXBsb2FkIFBhY2thZ2U8L3N0cm9uZz4KKyAgICBbPGEgaHJlZj0iaHR0cDovL2N2cy5hcGFjaGUub3JnL3ZpZXdjdnMvamFrYXJ0YS1jb21tb25zLXNhbmRib3gvZmlsZXVwbG9hZC8iPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5maWxldXBsb2FkPC9jb2RlPjwvYT5dPC9saT4KKyAgICA8bGk+PHN0cm9uZz5Mb2dnaW5nIFBhY2thZ2U8L3N0cm9uZz4KKyAgICBbPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2xvZ2dpbmcuaHRtbCI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmc8L2NvZGU+PC9hPl08L2xpPgorICAgIDxsaT48c3Ryb25nPlBvb2wgUGFja2FnZTwvc3Ryb25nPgorICAgIFs8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvcG9vbC9pbmRleC5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMucG9vbDwvY29kZT48L2E+XTwvbGk+CisgICAgPGxpPjxzdHJvbmc+VmFsaWRhdG9yIFBhY2thZ2U8L3N0cm9uZz4KKyAgICBbPGEgaHJlZj0iaHR0cDovL2N2cy5hcGFjaGUub3JnL3ZpZXdjdnMvamFrYXJ0YS1jb21tb25zL3ZhbGlkYXRvci8iPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3I8L2NvZGU+PC9hPl08L2xpPgorICAgIDwvdWw+CisKKworICAgIDxwPjxzdHJvbmc+Tk9URSEgWE1MIFBhcnNlciBQcmVyZXF1aXNpdGUgVXBkYXRlZDwvc3Ryb25nPjwvcD4KKworICAgIDxwPlN0cnV0cyBub3cgZGVwZW5kcyBvbiBhbiBYTUwgcGFyc2VyIHRoYXQgY29uZm9ybXMgdG8gdGhlIEpBWFAvMS4xCisgICAgKHJhdGhlciB0aGFuIEpBWFAvMS4wKSBBUElzLiBQYXJzZXJzIGtub3duIHRvIHdvcmsgaW5jbHVkZSB0aGUgSkFYUC8xLjEKKyAgICByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24sIGFuZCBYZXJjZXMgMS4zLjEuPC9wPgorCisgICAgPHA+PHN0cm9uZz5TT1VSQ0UgREVWRUxPUEVSUyBOT1RFISBBbnQgUHJlcmVxdWlzaXRlIFVwZGF0ZWQ8L3N0cm9uZz48L3A+CisgICAgPHA+VG8gYnVpbGQgU3RydXRzIGZyb20gc291cmNlIEFudCAxLjQgb3IgbGF0ZXIgaXMgbm93IHJlcXVpcmVkLiBUaGlzCisgICAgZG9lcyBub3QgYWZmZWN0IGRldmVsb3BlcnMgdGhhdCB1c2UgU3RydXRzIGZyb20gdGhlIGJpbmFyeSBkaXN0cmlidXRpb24uPC9wPgorCisgICAgPHA+PHN0cm9uZz5TdHJ1dHMgVmFsaWRhdG9yIEludGVncmF0aW9uPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBuZXcgQ29tbW9ucy1WYWxpZGF0b3IgaXMgbm93IGludGVncmF0ZWQgd2l0aCBTdHJ1dHMgYW5kIGV4cG9zZWQKKyAgICB0aHJvdWdoIHRoZSBuZXcgVmFsaWRhdG9yIHBhY2thZ2UuPC9wPgorCisgICAgPHA+PHN0cm9uZz5UaWxlcyAtIEFuIGFkdmFuY2VkIHRlbXBsYXRpbmcgdGFnbGliPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBUaWxlcyBKU1AgYXNzZW1ibHkgZnJhbWV3b3JrIGhhcyBiZWVuIGludGVncmF0ZWQgd2l0aCBTdHJ1dHMuPC9wPgorCisgICAgPHA+PHN0cm9uZz5OZXN0ZWQgLSBBbiB2ZXJ5IGNvb2wgdGFnbGliIGV4dGVuc2lvbjwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgTmVzdGVkIHRhZ2xpYiBpcyBidW5kbGVkIHdpdGggU3RydXRzIGFuZCBlbmhhbmNlcyB0aGUgZnVuY3Rpb25hbGl0eQorICAgICBvZiB0aGUgZXhpc3RpbmcgU3RydXRzIHRhZ3MuPC9wPgorCisgICAgPHA+PHN0cm9uZz5OZXcgRXhhbXBsZSBBcHBsaWNhdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+TmV3IGV4YW1wbGUgYXBwbGljYXRpb25zIGZvciB0aGUgVmFsaWRhdG9yIGFuZCBUaWxlcyBhcmUgbm93IHBhcnQKKyAgICBvZiB0aGUgU3RydXRzIGRpc3RyaWJ1dGlvbi48L3A+CisKKyAgICA8cD48c3Ryb25nPk5ldyBDb250cmliIGRpcmVjdG9yeSBmb3Igb3B0aW9uYWwgY29tcG9uZW50czwvc3Ryb25nPjwvcD4KKyAgICA8cD5BIG5ldyBkaXJlY3RvcnkgKDxjb2RlPmNvbnRyaWI8L2NvZGU+KSBpbiB0aGUgQ1ZTIHNvdXJjZSByZXBvc2l0b3J5IGhhcworICAgIGJlZW4gYWRkZWQgdG8gYWNjdW11bGF0ZSBTdHJ1dHMgYWRkLW9uIGV4dGVuc2lvbnMgdGhhdCBhcmUgZ2VuZXJhbGx5CisgICAgdXNlZnVsIGJ1dCBoYXZlIG5vdCB5ZXQgYmVlbiBpbnRlZ3JhdGVkIGludG8gdGhlIHN0YW5kYXJkIGNvZGUgYmFzZS48L3A+CisKKyAgICA8dWw+CisgICAgPGxpPlNjYWZmb2xkIC0gQW4gZXh0ZW5zaW9uIG9mIHRoZSBDb21tb25zIFNjYWZmb2xkIHRvb2xraXQgb2YgcmV1c2FibGUgCisgICAgY2xhc3NlcyBmb3IgYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucy48L2xpPgorICAgIDxsaT5TdHJ1dHMtZWwgLSBUaGUgb3B0aW9uYWwgU3RydXRzLWVsIHRhZ2xpYiBtYWtlcyBpdCBlYXN5IHRvIHVzZSBTdHJ1dHMgCisgICAgd2l0aCBKU1RMIChjb250YWluZXIgd2l0aCBzZXJ2bGV0IDIuMyBzdXBwb3J0IHJlcXVpcmVkKS4gPC9saT4gICAgCisgICAgPC91bD4KKworICAgIDxwPlRoZSBzb3VyY2UgZm9yIHRoZXNlIGNvbXBvbmVudHMgaXMgYXZhaWxhYmxlIGluIHRoZSBTdHJ1dHMgc291cmNlCisgICAgZGlzdHJpYnV0aW9uLiBCaW5hcnkgZGlzdHJpYnV0aW9ucyBtYXkgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSB3aXRoIHRoZSBTdHJ1dHMKKyAgICBkb3dubG9hZCBhcmVhLiBBcyBvcHRpb25hbCBjb21wb25lbnRzLCB0aGVzZSBwcm9kdWN0cyBoYXZlIHRoZWlyIG93bgorICAgIHJlbGVhc2UgY3ljbGVzLjwvcD4KKworICAgIDxwPjxzdHJvbmc+QWN0aW9uIFBhY2thZ2UgQWRkaXRpb25zPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgYmFzaWMgY29udHJvbGxlcgorICAgIGZyYW1ld29yayBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9jb2RlPl06PC9wPgorICAgIDx1bD4KKyAgICA8bGk+VGhlIEFjdGlvblNlcnZsZXQgbm93IHByb3ZpZGVzIHN1cHBvcnQgZm9yIG1vZHVsYXIgU3RydXRzIGFwcGxpY2F0aW9ucyBhbmQKKyAgICBzcG9ydHMgc2V2ZXJhbCBuZXcgZXh0ZW5zaW9uIHBvaW50cy48L2xpPgorICAgIDxsaT5UaGUgbmV3IDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPiBjbGFzcyB3aWxsIHN1cHBvcnQgYSBzdXBlcnNldCBvZgorICAgICAgICB0aGUgY2FwYWJpbGl0aWVzIG9mIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4sIGFuZCB3aWxsIGJlIHVzZWZ1bCBhcworICAgICAgICBhIGNvbGxlY3Rpb24gb2YgZ2VuZXJhbCBwdXJwb3NlIG1lc3NhZ2VzLCBub3QganVzdCBlcnJvcnMuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5VcGxvYWQgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBmaWxlIHVwbG9hZCBjbGFzc2VzCisgICAgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvY29kZT5dOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjo8L2NvZGU+IE5ldyBjbGFzcyB0aGF0IGltcGxlbWVudHMKKyAgICAgICAgZmlsZSB1cGxvYWQgdXNpbmcgdGhlIEpha2FydGEgQ29tbW9ucyBGaWxlVXBsb2FkIHBhY2thZ2UuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5VdGlsIFBhY2thZ2UgQWRkaXRpb25zPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgdXRpbGl0eSBjbGFzc2VzCisgICAgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT48Y29kZT5Mb2NhbFN0cmluZ3M6PC9jb2RlPiBDb3JyZWN0IG1lc3NhZ2UgcmVnYXJkaW5nIHJlcGxhY2VhYmxlIHBhcmFtZXRlciBzbyB0aGF0IGl0IGRvZXMgbm90IGFwcGVuZCBhbiBleHRyYW5lb3VzIGNoYXJhY3Rlci48L2xpPgorICAgIDxsaT48Y29kZT5MYWJlbFZhbHVlQmVhbjo8L2NvZGU+IE5ldyBjbGFzcyB0aGF0IGRlZmluZXMgYSBjb2xsZWN0aW9uIG9mIG5hbWUvdmFsdWUgcGFpcnMgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIHRoZSAmbHQ7aHRtbDpvcHRpb25zJmd0OyB0YWcsIGFuZCBlbHNld2hlcmUuPC9saT4KKyAgICA8bGk+PGNvZGU+TWVzc2FnZVJlc291cmNlczo8L2NvZGU+IEVzY2FwZSBhbnkgc2luZ2xlIHF1b3RlIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gdGhlIHNwZWNpZmllZCBtZXNzYWdlIHN0cmluZy48L2xpPgorICAgIDxsaT48Y29kZT5jb21wdXRlUGFyYW1ldGVyczo8L2NvZGU+IEFsbG93IGEgdHJhbnNhY3Rpb24gdG9rZW4gdG8gYmUgdGhlIG9ubHkgcGFyYW1ldGVyIGluIC48L2xpPgorICAgIDxsaT48Y29kZT5SZXF1ZXN0VXRpbHM6PC9jb2RlPiBDaGFuZ2UgdG8gZW5jb2RlIGFtcGVyc2FuZHMgd2hlbiBidWlsZGluZyBhIHF1ZXJ5IHN0cmluZy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkJlYW4gVGFnbGliIFBhY2thZ2UgQWRkaXRpb25zPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUKKyAgICA8ZW0+c3RydXRzLWJlYW48L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT48Y29kZT4mbHQ7YmVhbjp3cml0ZT48L2NvZGU+OiBBZGQgZm9ybWF0LCBsb2NhbGUgYW5kIGJ1bmRsZSBhdHRyaWJ1dGVzIHRvIHN1cHBvcnQgZm9ybWF0dGluZyB2YWx1ZXMgYWNjb3JkaW5nIHRvIGN1cnJlbnQKKyAgICB1c2VyIGxvY2FsZSwgZm9ybWF0IHN0cmluZyBmcm9tIGF0dHJpYnV0ZSBvciBmb3JtYXQgc3RyaW5nIGZyb20gc3RyaW5nIHJlc291cmNlcy48L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7YmVhbjpjb29raWU+LCAmbHQ7YmVhbjpoZWFkZXI+LCBvciAmbHQ7YmVhbjpwYXJhbWV0ZXI+OjwvY29kZT4gQ29ycmVjdCB0aGUgZ2VuZXJhdGVkIHNjcmlwdGluZyB2YXJpYWJsZSB0eXBlIHdoZW4gdGFnIGlzIHVzZWQgd2l0aCB0aGUgIm11bHRpcGxlIiBhdHRyaWJ1dGUuPC9saT4KKyAgICA8bGk+PGNvZGU+Jmx0O2JlYW46bWVzc2FnZSZndDs6PC9jb2RlPiBBZGRlZCA8Y29kZT5uYW1lPC9jb2RlPiwgPGNvZGU+cHJvcGVydHk8L2NvZGU+LCBhbmQgIDxjb2RlPnNjb3BlPC9jb2RlPiBhdHRyaWJ1dGVzIHRvIHRoZSB0YWcsIHNvIHRoYXQgdGhlIG1lc3NhZ2Ugc291cmNlIGtleSBjYW4gYmUgb2J0YWluZWQgZHluYW1pY2FsbHkgZnJvbSBhIGJlYW4gb3IgYmVhbiBwcm9wZXJ0eS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkhUTUwgVGFnbGliIFBhY2thZ2UgQWRkaXRpb25zPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUKKyAgICA8ZW0+c3RydXRzLWh0bWw8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPl06PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+Jmx0O2h0bWw6bGluayZndDs6PC9jb2RlPiBBZGRlZCAnYWN0aW9uJyBhdHRyaWJ1dGUuPC9saT4KKyAgICA8bGk+PGNvZGU+Jmx0O2h0bWw6b3B0aW9ucyZndDs6PC9jb2RlPiBJZiB0aGUgcHJvcGVydHkgc3BlY2lmaWVkIGJ5IHRoZSAncHJvcGVydHknIGF0dHJpYnV0ZSByZXR1cm5zIG51bGwsIHRhZyBub3cgdGhyb3dzIGFuIGVycm9yIG1lc3NhZ2UgdGhhdCBpbmRpY2F0ZXMgd2hhdCB0aGUgcmVhbCBwcm9ibGVtIGlzLCByYXRoZXIgdGhhbiBjYXVzaW5nIGFuIE5QRS48L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7aHRtbDpvcHRpb24mZ3Q7IGFuZCAmbHQ7aHRtbDpvcHRpb25zJmd0Ozo8L2NvZGU+IEFkZGVkICdzdHlsZScgYW5kICdzdHlsZUNsYXNzJyBhdHRyaWJ1dGVzLjwvbGk+CisgICAgPGxpPjxjb2RlPiZsdDtodG1sOm9wdGlvbnNDb2xsZWN0aW9uJmd0Ozo8L2NvZGU+IE5ldyB0YWcgcHJvdmlkaW5nIGEgY2xlYW5lciB3YXkgb2YgcG9wdWxhdGluZyBIVE1MIG9wdGlvbnMgZnJvbSBhIGNvbGxlY3Rpb24uPC9saT4KKyAgICA8bGk+PGNvZGU+Jmx0O2JlYW46bWVzc2FnZSZndDs6PC9jb2RlPiBBZGRlZCAnbmFtZScsICdwcm9wZXJ0eScgYW5kICdzY29wZScgYXR0cmlidXRlcyBzbyB0aGF0IHRoZSBtZXNzYWdlIHJlc291cmNlIGtleSBjYW4gYmUgb2J0YWluZWQgZHluYW1pY2FsbHkgZnJvbSBhIGJlYW4uPC9saT4KKyAgICA8bGk+PGNvZGU+Jmx0O2h0bWw6bWVzc2FnZXMmZ3Q7OjwvY29kZT4gTmV3IHRhZyB0byBpdGVyYXRlIHRocm91Z2ggYSBtZXNzYWdlIGNvbGxlY3Rpb24gaW4gdGhlIG5ldyA8Y29kZT5BY3Rpb25NZXNzYWdlczwvY29kZT4gY2xhc3MuPC9saT4KKyAgICA8bGk+PGNvZGU+QWN0aW9uRm9ybTo8L2NvZGU+IFRhZyB3aWxsIG5vdyBjYWxsIDxjb2RlPnJlc2V0KCk8L2NvZGU+IGlmIGl0IGluc3RhbnRpYXRlcyB0aGUgQWN0aW9uRm9ybSBiZWFuLiBUaGlzIGFsc28gcmVxdWlyZXMgdGhhdCB0aGUgYmVhbiBpbnN0YW50aWF0ZWQgYnkgdGhlIHRhZyB0byBiZSBhbiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBzdWJjbGFzcy4gPC9saT4KKyAgICA8bGk+PGNvZGU+Jmx0O2h0bWw6aW1hZ2U+OjwvY29kZT4gQWRkZWQgdGhlICdhbGlnbicgYXR0cmlidXRlLjwvbGk+CisgICAgPGxpPjxjb2RlPiZsdDtodG1sOmltZz46PC9jb2RlPiBBZGRlZCB0aGUgbW91c2UgZXZlbnQgYXR0cmlidXRlcyAoJ29uY2xpY2snLCAnb25kYmxjbGljaycsICdvbm1vdXNlZG93bicsICdvbm1vdXNldXAnLCAnb25tb3VzZW92ZXInLCAnb25tb3VzZW1vdmUnLCAnb25tb3VzZW91dCcpLjwvbGk+CisgICAgPGxpPjxjb2RlPlN1Ym1pdFRhZywgU2VsZWN0VGFnLCBMaW5rVGFnLmphdmEsIENoZWNrYm94VGFnLCBCdXR0b25UYWcsIEltYWdlVGFnLCBSYWRpb1RhZywgYW5kIFRleHRBcmVhIHRhZ3M6PC9jb2RlPiBBZGRlZCBpbmRleGVkIHByb3BlcnR5LiA8L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkxvZ2ljIFRhZ2xpYiBQYWNrYWdlIEFkZGl0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlCisgICAgPGVtPnN0cnV0cy1sb2dpYzwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPl06PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+Jmx0O2xvZ2ljOmVtcHR5Jmd0OzwvY29kZT4gYW5kCisgICAgICAgIDxjb2RlPiZsdDtsb2dpYzpub3RFbXB0eSZndDs8L2NvZGU+OiBOZXcgdGFncyB0aGF0IGFyZSBzaW1pbGFyIHRvCisgICAgICAgIDxjb2RlPiZsdDtsb2dpYzpwcmVzZW50Jmd0OzwvY29kZT4gYW5kCisgICAgICAgIDxjb2RlPiZsdDtsb2dpYzpub3RQcmVzZW50Jmd0OzwvY29kZT4gZXhjZXB0IGZvciB0aGUgdHJlYXRtZW50IG9mCisgICAgICAgIGVtcHR5IHN0cmluZ3MuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5UZW1wbGF0ZSBUYWdsaWIgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtdGVtcGxhdGU8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlPC9jb2RlPl06PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Tm9uZS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkRvY3VtZW50YXRpb24gQWRkaXRpb25zPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgU3RydXRzIERvY3VtZW50YXRpb24KKyAgICBhcHBsaWNhdGlvbiAoYW5kIGNvcnJlc3BvbmRpbmcgY29udGVudHMgb24gdGhlIFN0cnV0cyB3ZWIgc2l0ZSk6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+VmVyc2lvbiBEaWZmZXJlbmNlczogTmV3IHNlY3Rpb24gaW4gUmVsZWFzZSBOb3RlcyB0byBsaW5rIHRvIHRoZSBKYXZhRG9jcyBmb3IgYWxsIFN0cnV0cyBjbGFzc2VzIGFuZCBtZW1iZXJzIGFkZGVkIG9yIGNoYW5nZWQgYmV0d2VlbiB2ZXJzaW9ucy48L2xpPgorICAgIDxsaT5GQVEvSG93VG9zOiBOZXcgZG9jdW1lbnRhdGlvbiBjYXRlZ29yeSBvcmdhbml6ZXMgb3VyIEZBUXMgYW5kIGV4YW1wbGUtZHJpdmVuIGhvd1Rvcy4gCisgICAgTmV3IEhvd1RvcyBpbmNsdWRlICJCdWlsZGluZyBBcHBsaWNhdGlvbnMiLCAiVXNpbmcgU1NMIiwgYW5kIHVzaW5nIFN0cnV0cyB3aXRoIEVjbGlwc2Ugb3IgTmV0QmVhbnMuPC9saT4KKyAgICA8bGk+VXNlciBHdWlkZSBQcmVmYWNlOiBOZXcgc2VjdGlvbiB0byBvdmVydmlldyB0aGUgZW5hYmxpbmcgdGVjaG5vbG9naWVzIGJlaGluZCBTdHJ1dHMuPC9saT4KKyAgICA8bGk+RGV2ZWxvcGVyIEd1aWRlczogQWRkZWQgImNvdmVyIHBhZ2UiIHRvIGd1aWRlcy4gVGhlc2UgdGhlbiBsaW5rIHRvIHRoZSBQYWNrYWdlIERlc2NyaXB0aW9ucyBhbmQgdGhlIEFQSSBndWlkZXMuPC9saT4KKyAgICA8bGk+SFRNTCB0YWcgZG9jdW1lbnRhdGlvbjogZXhwYW5kZWQgdG8gY292ZXIgdXNpbmcgaW5kZXhlZCBwcm9wZXJ0aWVzIHdpdGggaXRlcmF0ZS48L2xpPgorICAgIDxsaT5TaXRlIE1lbnU6IFJlbW92ZWQgc2VwYXJhdGUgbGlua3MgdG8gdGFnbGliIGRvY3VtZW50YXRpb24sIHNpbmNlIHRoZXNlIGFyZSBub3cgaW4gdGhlIERldmVsb3BlciBHdWlkZS48L2xpPgorICAgIDxsaT5OZXdiaWUgRkFROiBUaGUgcXVlc3Rpb25zIG1vc3QgbGlrZWx5IHRvIGJlIGFza2VkIGJ5IG5ldyBkZXZlbG9wZXJzIHVzaW5nIFN0cnV0cy4gU3RpbGwgdW5kZXIgZGV2ZWxvcG1lbnQuPC9saT4KKyAgICA8bGk+S2lja3N0YXJ0IEZBUTogVGhlIHF1ZXN0aW9ucyBtb3N0IGxpa2VseSB0byBiZSBhc2tlZCB3aGVuIHNlbGVjdGluZyBTdHJ1dHMuPC9saT4KKyAgICA8bGk+MS4wIEphdmFEb2M6IEFkZGVkIGFyY2hpdmFsIGNvcHkgdG8gd2ViIHNpdGUgZm9yIGZ1dHVyZSByZWZlcmVuY2UuPC9saT4KKyAgICA8bGk+VGhlIFVzZXJHdWlkZSAiQnVpbGRpbmciIHBhZ2VzOiBHZW5lcmFsIHJldmlzaW9ucyB0byByZWZsZWN0IG5ldyBmZWF0dXJlcyBhbmQgY3VycmVudCBwcmFjdGljZXMuPC9saT4KKyAgICA8bGk+SW5zdGFsbGF0aW9uOiBVcGRhdGVkIGluc3RydWN0aW9ucyBmb3IgU2lsdmVyU3RyZWFtIGFuZCBSZXNpbi4gQWRkIGluc3RhbGxhdGlvbiBub3RlcyBmb3IgSmV0dHkuIEFkZGVkIFJleElQIHRvIGxpc3Qgb2Ygbm9taW5hbCBjb250YWluZXJzLjwvbGk+CisgICAgPGxpPkphdmFEb2NzOiBOZXcgPGNvZGU+QHNpbmNlIFN0cnV0cyAxLjE8L2NvZGU+IHRhZyB0byBpbmRpY2F0ZSBuZXcgcGFja2FnZXMsIGNsYXNzZXMsIGFuZCBtZW1iZXJzIGFkZGVkIGFmdGVyIHRoZSBTdHJ1dHMgMS4wLnggdmVyc2lvbjwvbGk+CisgICAgPC91bD4KKworICA8L3NlY3Rpb24+CisKKyAgPHNlY3Rpb24gbmFtZT0iT3BlcmF0aW9uYWwgQ2hhbmdlcyBhbmQgQnVnIEZpeGVzIiBocmVmPSJDaGFuZ2VzIj4KKworICAgIDxwPjxzdHJvbmc+U3RydXRzIENvbmZpZ3VyYXRpb24gQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSBjb25maWd1cmF0aW9uCisgICAgZmlsZXMgcmVsYXRlZCB0byBTdHJ1dHM6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+RGVwcmVjYXRlZCAoU3RydXRzIDAuNSkgY29uZmlndXJhdGlvbiBmaWxlIGZvcm1hdDogUmVtb3ZlIHN1cHBvcnQuPC9saT4KKyAgICA8bGk+RGVwcmVjYXRlZCAoU3RydXRzIDAuNSkgbWV0aG9kczogUmVtb3ZlIGZyb20gY29kZWJhc2UuPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxzdHJvbmc+QWRkZWQgQ29uZmlnIFBhY2thZ2U8L3N0cm9uZz48L3A+CisgICAgPHVsPgorICAgIDxsaT5Db250cm9sbGVyQ29uZmlnOiBBZGRlZCBpbnB1dEZvcndhcmQgcHJvcGVydHkgdG8gaW5kaWNhdGUgdGhhdCBBY3Rpb25NYXBwaW5nLmlucHV0IGlzIGEgZm9yd2FyZCByYXRoZXIgdGhhbiBhIFVSSS48L2xpPgorICAgIDxsaT5Db250cm9sbGVyQ29uZmlnOiBBZGRlZCBmb3J3YXJkUGF0dGVybiBhbmQgaW5wdXRQYXR0ZXJuIHRvIGhlbHAgbWFuYWdlIHBhZ2UgZGlyZWN0b3JpZXMgaW4gYXBwbGljYXRpb24gbW9kdWxlcy48L2xpPgorICAgIDxsaT5BZGRlZCBwYWNrYWdlIHRvIHByb3ZpZGUgbW9yZSBmbGV4aWJpbGl0eSBpbiBjb25maWd1cmluZyB0aGUgY29udHJvbGxlciBhbmQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciBtb2R1bGFyIGFwcGxpY2F0aW9uczwvbGk+CisgICAgPC91bD4KKyAgICA8cD48c3Ryb25nPkFjdGlvbiBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgYmFzaWMKKyAgICBjb250cm9sbGVyIGZyYW1ld29yayAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5BY3Rpb25NYXBwaW5nOiBpbnB1dCBwcm9wZXJ0eSBtYXkgbm93IHJlZmVyIHRvIGFuIEFjdGlvbkZvcndhcmQgcmF0aGVyIHRoYW4gYSBtb2R1bGUtcmVsYXRpdmUgcGF0aCBpZiBpbnB1dEZvcndhcmQgaXMgc2V0IHRvIHRydWUgb24gdGhlIG1vZHVsZSdzIENvbnRyb2xsZXJDb25maWcgYmVhbiBbb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkNvbnRyb2xsZXJDb25maWcuPC9saT4KKyAgICA8bGk+QWN0aW9uU2VydmxldDogQWRkZWQgY29udmVydE51bGwgcGFyYW1ldGVyIHRvIHNpbXVsYXRlIHRoZSBTdHJ1dHMgMS4wIGJlaGF2aW9yIHdoZW4gcG9wdWxhdGluZyBmb3Jtcy4gSWYgc2V0IHRvIHRydWUsIHRoZSBudW1lcmljIEphdmEgd3JhcHBlciBjbGFzcyB0eXBlcyAobGlrZSBqYXZhLmxhbmcuSW50ZWdlcikgd2lsbCBkZWZhdWx0IHRvIG51bGwgKHJhdGhlciB0aGFuIDApLjwvbGk+CisgICAgPGxpPkFjdGlvblNlcnZsZXQ6IEFkZGVkICJjb25maWcvJGZvbyIgcGFyYW1ldGVyIGFuZCBkZXByZWNhdGVkIHNldmVyYWwgb3RoZXJzIGluIGZhdm9yIG9mIGNvbXBvbmVudHMgaW4gdGhlIG5ldyBjb25maWcgcGFja2FnZS4gPC9saT4KKyAgICA8bGk+QWN0aW9uRm9ybXMgYW5kIHJlbGF0ZWQgY2xhc3Nlczogbm93IHVzZSBhIFN0cmluZ0J1ZmZlciB3aGVuIHJlc3BvbmRpbmcgYSB0b1N0cmluZyByZXF1ZXN0IGluIG9yZGVyIHRvIGNvbnNlcnZlIHJlc291cmNlcy48L2xpPgorICAgIDxsaT5Mb29rdXBEaXNwYXRjaEFjdGlvbjogQWRkZWQgc3RhbmRhcmQgQWN0aW9uIHRvIGhlbHAgc2VsZWN0IGJldHdlZW4gaW50ZXJuYXRpb25hbGl6ZWQgYnV0dG9ucy48L2xpPgorICAgIDxsaT5BY3Rpb25Gb3JtIGNsYXNzOiBNb2RpZmllZCB0byB1c2UgQWN0aW9uU2VydmxldFdyYXBwZXIgcmF0aGVyIHRoYW4gZXhwb3NlIEFjdGlvblNlcnZsZXQuPC9saT4KKyAgICA8bGk+QWN0aW9uU2VydmxldFdyYXBwZXIgY2xhc3M6IEFkZGVkIGZvciB1c2UgYnkgQWN0aW9uRm9ybSB0byBwcmV2ZW50IHRoZSBQdWJsaWMgU3RyaW5nIHByb3BlcnRpZXMgb2YgQWN0aW9uU2VydmxldCBmcm9tIGJlaW5nIGNoYW5nZWQgdmlhIGEgcXVlcnkgc3RyaW5nLjwvbGk+CisgICAgPGxpPkFjdGlvbi5NQVBQSU5HX0tFWSByZXF1ZXN0IGF0dHJpYnV0ZTogVW5jb25kaXRpb25hbGx5IHBhc3MgdGhlIHNlbGVjdGVkIG1hcHBpbmcgYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZSAoIm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5tYXBwaW5nLmluc3RhbmNlIikgZXZlbiBpZiBubyBmb3JtIGJlYW4gaXMgc3BlY2lmaWVkLjwvbGk+CisgICAgPGxpPkFjdGlvblNlcnZsZXQ6IEF2b2lkIGEgTnVsbFBvaW50ZXJFeGNlcHRpb24gaW4gY29ybmVyIGNhc2VzIGNhdXNlZCBieSBmYWlsZWQgaW5pdGlhbGl6YXRpb24gb2Ygc2VydmxldC48L2xpPgorICAgIDxsaT5BY3Rpb25Gb3JtIGNsYXNzOiBOb3cgdHJ1bHkgc2VyaWFsaXphYmxlLCBiZWNhdXNlCisgICAgICAgIHRoZSB0d28gbm9uLXNlcmlhbGl6YWJsZSBpbnN0YW5jZSB2YXJpYWJsZXMgKHNlcnZsZXQgYW5kCisgICAgICAgIG11bHRpcGFydFJlcXVlc3RIYW5kbGVyKSBoYXZlIGJlZW4gbWFkZSB0cmFuc2llbnQuICBIb3dldmVyLCBpZiB5b3UKKyAgICAgICAgYWN0dWFsbHkgZG8gc2VyaWFsaXplIGFuZCBkZXNlcmlhbGl6ZSBzdWNoIGluc3RhbmNlcywgaXQgaXMgeW91cgorICAgICAgICByZXNwb25zaWJpbGl0eSB0byByZXNldCB0aGVzZSB0d28gcHJvcGVydGllcy48L2xpPgorICAgIDxsaT5BY3Rpb25NZXNzYWdlcyBhbmQgQWN0aW9uRXJyb3JzOiBUaGUgaW5pdGlhbCBvcmRlciBhIHByb3BlcnR5L2tleSBpcyBhZGRlZCBpbiBpcyBub3cgcmV0YWluZWQuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5VcGxvYWQgUGFja2FnZSBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlIGZpbGUgdXBsb2FkCisgICAgcGFja2FnZSAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI6IE5ldyBpbXBsZW1lbnRhdGlvbiBvZiBmaWxlIHVwbG9hZCBiYXNlZAorICAgICAgICBvbiB0aGUgSmFrYXJ0YSBDb21tb25zIEZpbGVVcGxvYWQgcGFja2FnZS4gVGhpcyBuZXcgaW1wbGVtZW50YXRpb24gaXMKKyAgICAgICAgbm93IHRoZSBkZWZhdWx0LjwvbGk+CisgICAgPGxpPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW06IEZpeGVkIGxvc3QgYnl0ZSBwcm9ibGVtLjwvbGk+CisgICAgPGxpPkFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbjogRml4ZWQgc2l0dWF0aW9ucyB3aGVyZSB0aGlzIHdhcyBrbm93biB0byBvY2N1ci48L2xpPgorICAgIDxsaT5NdWx0aXBhcnQgcmVxdWVzdHM6IEJldHRlciByZXBvcnRpbmcgZm9yIHByZW1hdHVyZSBjbG9zaW5nIG9mIGlucHV0IHN0cmVhbXMgd2hpbGUgcmVhZGluZyBtdWx0aXBhcnQgcmVxdWVzdHMuPC9saT4KKyAgICA8bGk+TmV3IGxpbmUgY2hhcmFjdGVyczogQWRkaXRpb25hbCBmaXggZm9yIGZpbGUgY29ycnVwdGlvbiBwcm9ibGVtIHdpdGggdXBsb2FkcyBhbmQgbmV3IGxpbmUgY2hhcmFjdGVycy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlV0aWxpdHkgUGFja2FnZSBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlIHV0aWxpdGllcworICAgIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5SZXF1ZXN0VXRpbHM6IEFkZGVkIHN1cHBvcnQgZm9yIGZvcndhcmRQYXR0ZXJuLCBwYWdlUGF0dGVybiwgYW5kIGlucHV0Rm9yd2FyZCBwcm9wZXJ0aWVzIG9uIENvbnRyb2xsZXJDb25maWcuPC9saT4KKyAgICA8bGk+R2VuZXJpY0RhdGFTb3VyY2U6IERlcHJlY2F0ZWQgYW5kIG1vZGlmaWVkIHRvIGFjdCBhcyBhIHRoaW4gd3JhcHBlciBhcm91bmQKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmRicGMuQmFzaWNEYXRhU291cmNlPC9jb2RlPl0uCisgICAgUmVwbGFjZWQgYnkgZGlyZWN0IHVzZSBvZiBCYXNpY0RhdGFTb3VyY2Ugb3Igb3RoZXIgY29tcGF0aWJsZSBjb21wb25lbnQuPC9saT4KKyAgICA8bGk+UmVxdWVzdFV0aWxzIGNsYXNzOiBNb2RpZnkgdG8gdXNlIEFjdGlvblNlcnZsZXRXcmFwcGVyIHJhdGhlciB0aGFuIGV4cG9zZSBBY3Rpb25TZXJ2bGV0LjwvbGk+CisgICAgPGxpPkFkZGVkIGVycm9yIG1lc3NhZ2UgZm9yIHRoZSBnZXRBY3Rpb25FcnJvcnMgYW5kIGdldEFjdGlvbk1lc3NhZ2VzIG1ldGhvZC48L2xpPgorICAgIDxsaT5nZXRBY3Rpb25FcnJvcnMgYW5kIGdldEFjdGlvbk1lc3NhZ2VzOiBBZGRlZCBtZXRob2RzIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IGNvcnJlc3BvbmRpbmcKKyAgICBvYmplY3QgYmFzZWQgb24gdGhlIG9iamVjdCByZXRyaWV2ZWQgZnJvbSByZXF1ZXN0IHNjb3BlIGJhc2VkIG9uIHRoZSBrZXkgcGFzc2VkIGluLjwvbGk+CisgICAgPGxpPkFjdGlvbkVycm9ycyBvciBBY3Rpb25NZXNzYWdlczogVGhlIGxvZ2ljIGZvciBjcmVhdGluZyBvbmUgb2YgdGhlc2Ugb2JqZWN0cyBoYXMgYmVlbiBtb3ZlZAorICAgIHRvIGEgdXRpbGl0eSBtZXRob2QgaW4gUmVxdWVzdFV0aWxzLjwvbGk+CisgICAgPGxpPkpzcEV4Y2VwdGlvbiBtZXNzYWdlOiBOb3cgZ2VuZXJhdGVkIGluIFJlcXVlc3RVdGlscy48L2xpPgorICAgIDxsaT5Db252ZXJ0VXRpbHMuY29udmVydENoYXJhY3RlcigpOiBXaWxsIG5vdyBkZXRlY3QgZW1wdHkgc3RyaW5ncyBhbmQgcmV0dXJuIHRoZSBkZWZhdWx0IHZhbHVlLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+QmVhbiBUYWdsaWIgUGFja2FnZSBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlCisgICAgPGVtPnN0cnV0cy1iZWFuPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5CisgICAgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9jb2RlPl06PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Jmx0O2h0bWw6ZXJyb3JzJmd0OzogV2hlbiB0aGUgcHJvcGVydHkgdGFnIGlzCisgICAgc3BlY2lmaWVkLCBlcnJvcnMgYXJlIG5vIGxvbmdlciBwcmludGVkIGlmIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkKKyAgICBoYXMgbm8gZXJyb3JzLiBQcmV2aW91c2x5IGVycm9ycyB3ZXJlIGFsd2F5cyBwcmludGVkICEgRnV0dXJlCisgICAgZW5oYW5jZW1lbnRzIHdvdWxkIGluY2x1ZGUgYWRkaXRpb25hbCBhdHRyaWJ1dGVzIHRvIGFsd2F5cyB0dXJuCisgICAgb2ZmIHRoZSBoZWFkZXIgb3IgZm9vdGVyLiA8L2xpPgorICAgIDxsaT5NYWRlIHRoZSByZW1haW5pbmcgaGVscGVyIG1ldGhvZHMgInByb3RlY3RlZCIgcmF0aGVyIHRoYW4KKyAgICAicHJpdmF0ZSIuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5IVE1MIFRhZ2xpYiBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUKKyAgICA8ZW0+c3RydXRzLWh0bWw8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgKHBhY2thZ2UKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkZvcm1UYWc6IEZpeGVkIHRvIGV4Y2x1ZGUgcXVlcnkgc3RyaW5nIHdoZW4gaWRlbnRpZnlpbmcgYWN0aW9uIG1hcHBpbmcgbmFtZS48L2xpPgorICAgIDxsaT5JbWdUYWc6IENvcnJlY3RseSBVUkxFbmNvZGUgdGhlIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXIgdmFsdWUgZXZlbiBpZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHBhcmFtZXRlci48L2xpPgorICAgIDxsaT5NdWx0aWJveFRhZy5kb0FmdGVyQm9keSgpOiBDb3JyZWN0ZWQgdG8gcmV0dXJuIFNLSVBfQk9EWSBpbnN0ZWFkIG9mIFNLSVBfUEFHRS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkxvZ2ljIFRhZ2xpYiBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUKKyAgICA8ZW0+c3RydXRzLWxvZ2ljPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Tm9uZS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkRvY3VtZW50YXRpb24gQXBwbGljYXRpb24gQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgU3RydXRzIERvY3VtZW50YXRpb24KKyAgICBhcHBsaWNhdGlvbiAoYW5kIGNvcnJlc3BvbmRpbmcgY29udGVudHMgb24gdGhlIFN0cnV0cyB3ZWIgc2l0ZSkgaGF2ZQorICAgIG9jY3VycmVkOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlJlb3JnYW5pemVkIFJlc291cmNlcyBpbnRvIHNlcGFyYXRlIHBhZ2VzLi48L2xpPgorICAgIDxsaT5JbiB0aGUgVGFnIERldmVsb3BlcnMgR3VpZGUsIGFkZCBtb3JlIGRldGFpbCByZWdhcmRpbmcgZmlsZSB1cGxvYWQgcmVxdWlyZW1lbnRzLjwvbGk+CisgICAgPGxpPkluIEJ1aWxkaW5nIFZpZXcgQ29tcG9uZW50cywgY2xhcmlmeSB0aGF0IGFkZGl0aW9uYWwgaTE4biBzdXBwb3J0IG1heSBiZSBwcm92aWRlZCBieSB0aGUgYnJvd3NlciwgYW5kIGlzIG91dHNpZGUgdGhlIHNjb3BlIG9mIHRoZSBmcmFtZXdvcmsuPC9saT4KKyAgICA8bGk+SW4gQnVpbGRpbmcgQ29udHJvbGxlciBDb21wb25lbnRzLCBkb2N1bWVudCAndmFsaWRhdGluZycgaW5pdC1wYXJhbSwgYWRkIGRlZmF1bHRzIGZvciB2YXJpb3VzIHBhcmFtZXRlcnMsIGNsYXJpZnkgdGhhdCBzb21lIHdlYi54bWwgc2V0dGluZ3MgYXJlIG5vdCBTdHJ1dHMtc3BlY2lmaWMuPC9saT4KKyAgICA8bGk+VGFnIGxpYnJhcnkgZG9jdW1lbnRhdGlvbjogTW92ZWQgdW5kZXIgVXNlcidzIEd1aWRlLjwvbGk+CisgICAgPGxpPlJlb3JnYW5pemVkIHRvIHNlcGFyYXRlIDEuMCBtYXRlcmlhbCBmcm9tIG5pZ2h0bHkgYnVpbGQgbWF0ZXJpYWwuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5NYWlsUmVhZGVyIEV4YW1wbGUgQXBwbGljYXRpb24gQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgU3RydXRzIE1haWxSZWFkZXIgRXhhbXBsZSBBcHBsaWNhdGlvbgorICAgIGhhdmUgb2NjdXJyZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+QWRkIFJ1c3NpYW4gYW5kIEphcGFuZXNlIHRyYW5zbGF0aW9ucyBvZiB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2VzIGFuZCBzZXQgdGhlIGNoYXJhY3RlciBzZXQgZm9yIHRoZSBleGFtcGxlIEpTUCBwYWdlcyB0byAiVVRGLTgiIHNvIHRoYXQgaXQgY2FuIGRpc3BsYXkgZWl0aGVyIEVuZ2xpc2ggb3IgSmFwYW5lc2UuPC9saT4KKyAgICA8bGk+RXhjaGFuZ2UgIm5hbWUiIGZvciAiYXR0cmlidXRlIiBwcm9wZXJ0aWVzIGZvciBFZGl0IG1hcHBpbmdzIGluIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGUuPC9saT4KKyAgICA8bGk+UmVtb3ZlIHJlZmVyZW5jZXMgdG8gc2F2aW5nIGRhdGFiYXNlIGRhdGEgZnJvbSAidG91ciIgZG9jdW1lbnQsIHNpbmNlIHRoaXMgZnVuY3Rpb25hbGl0eSB3YXMgcmVtb3ZlZC48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlRlbXBsYXRlIEV4YW1wbGUgQXBwbGljYXRpb24gQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgU3RydXRzIFRlbXBsYXRlIEV4YW1wbGUKKyAgICBBcHBsaWNhdGlvbiBoYXZlIG9jY3VycmVkOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPk5vbmUuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5FeGVyY2lzZSBUYWdsaWIgRXhhbXBsZSBBcHBsaWNhdGlvbiBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgRXhlcmNpc2UgVGFnbGliIEV4YW1wbGUKKyAgICBBcHBsaWNhdGlvbiBoYXZlIG9jY3VycmVkOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkFkZGVkIHRlc3QgY2FzZSBmb3IgJmx0O2h0bWw6bGluaz4gdXNpbmcgImFjdGlvbiIgYXR0cmlidXRlLiA8L2xpPgorICAgIDxsaT5BZGRlZCB0ZXN0IGNhc2UgZm9yICZsdDtodG1sOnNlbGVjdD4gdXNpbmcgJmx0O2h0bWw6b3B0aW9ucz4gYmFzZWQgb24gYSBjb2xsZWN0aW9uCisgICAgc2F2ZWQgaW4gdGhlIHBhZ2UgY29udGV4dC48L2xpPgorICAgIDwvdWw+CisKKyAgPC9zZWN0aW9uPgorCisgIDxzZWN0aW9uIG5hbWU9IldoYXQncyBkaWZmZXJlbnQ/IiBocmVmPSJkaWZmIj4KKworICAgIDxwPlRoaXMgc2VjdGlvbiBwcm92aWRlcyBsaW5rcyB0byB0aGUgU3RydXRzIEphdmFEb2MgZm9yIGFueSBjbGFzc2VzIHRoYXQgaGF2ZQorICAgIGJlZW4gYWRkZWQgb3IgZGVwcmVjYXRlZCBzaW5jZSB0aGUgU3RydXRzIDEuMCByZWxlYXNlLgorICAgIDwvcD4KKworICAgIDxwPjxzdHJvbmc+UHJldmlvdXNseSBkZXByZWNhdGVkIGNsYXNzZXMgYW5kIHBhY2thZ2VzIHJlbW92ZWQgaW4gU3RydXRzIDEuMTwvc3Ryb25nPjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlJlbW92ZWQ6CisgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlscy5CZWFuVXRpbHM8L2NvZGU+LAorICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbHMuQ29udmVydFV0aWxzPC9jb2RlPiwgYW5kCisgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlscy5Qcm9wZXJ0eVV0aWxzPC9jb2RlPiAtIHJlcGxhY2VkIGJ5CisgICAgICA8YSBocmVmID0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2JlYW51dGlscy5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzPC9jb2RlPjwvYT4KKyAgICA8L2xpPgorICAgIDxsaT5SZW1vdmVkOgorICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkFycmF5U3RhY2s8L2NvZGU+LAorICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RBcnJheUxpc3Q8L2NvZGU+LAorICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RIYXNoTWFwPC9jb2RlPiwKKyAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0VHJlZU1hcDwvY29kZT4gLSByZXBsYWNlZCBieQorICAgICA8YSBocmVmID0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2NvbGxlY3Rpb25zLmh0bWwiPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5jb2xsZWN0aW9uczwvY29kZT48L2E+CisgICAgPC9saT4KKyAgICA8bGk+UmVtb3ZlZDogPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuKjwvY29kZT4gLSByZXBsYWNlZCBieQorICAgIDxhIGhyZWYgPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvZGlnZXN0ZXIuaHRtbCI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyPC9jb2RlPjwvYT4KKyAgICA8L2xpPgorICAgIDxsaT5SZW1vdmVkOiBUaGUgPGNvZGU+c3RydXRzLWNvbmZpZy5kdGQ8L2NvZGU+IC0gUmVwbGFjZWQgYnkgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvZHRkcy9zdHJ1dHMtY29uZmlnXzFfMS5kdGQiPjxjb2RlPnN0cnV0cy1jb25maWdfMV8xLmR0ZDwvY29kZT48L2E+LjwvbGk+CisgICAgPGxpPlJlbW92ZWQ6IFRoZSBvbW5pYnVzICJzdHJ1dHMiIHRhZ2xpYiBhbmQgaXRzIGFzc29jaWF0ZWQgVExEIC0gcmVwbGFjZWQgYnkgc2VwYXJhdGUgYmVhbiwgbG9naWMsIGFuZCBodG1sIHRhZ2xpYnMuPC9saT4KKyAgICA8bGk+UmVtb3ZlZDogVGhlICJmb3JtIiB0YWdsaWIgYW5kIGl0cyBhc3NvY2lhdGVkIFRMRCAtIHJlcGxhY2VkIGJ5IChyZW5hbWVkIGFzKSB0aGUgaHRtbCB0YWdsaWIuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5QYWNrYWdlcyBhZGRlZCBpbiBTdHJ1dHMgMS4xPC9zdHJvbmc+PC9wPgorCisgICAgPHVsPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5jb25maWc8L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPnRhZ2xpYi5uZXN0ZWQ8L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+dGFnbGliLm5lc3RlZC5iZWFuPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPnRhZ2xpYi5uZXN0ZWQuaHRtbDwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+dGFnbGliLm5lc3RlZC5sb2dpYzwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2UtZnJhbWUuaHRtbCI+dmFsaWRhdG9yPC9hPjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+Q2xhc3NlcyBhZGRlZCBpbiBTdHJ1dHMgMS4xPC9zdHJvbmc+PC9wPgorICAgIDxwPmFjdGlvbjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlLmh0bWwiPiBBY3Rpb25NZXNzYWdlPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj4gQWN0aW9uTWVzc2FnZXM8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPiBEeW5hQWN0aW9uRm9ybTwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sIj4gRHluYUFjdGlvbkZvcm1DbGFzczwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRXhjZXB0aW9uSGFuZGxlci5odG1sIj4gRXhjZXB0aW9uSGFuZGxlcjwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj4gUmVxdWVzdFByb2Nlc3NvcjwvYT48L2xpPgorICAgIDwvdWw+CisgICAgPHA+YWN0aW9uczwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCI+IExvb2t1cERpc3BhdGNoQWN0aW9uPC9hPjwvbGk+CisgICAgPC91bD4KKyAgICA8cD50YWdsaWIuaHRtbDwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPiBGcmFtZVRhZzwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPiBKYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPk1lc3NhZ2VzVGFnPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPiBPcHRpb25zQ29sbGVjdGlvblRhZzwvYT48L2xpPgorICAgIDwvdWw+CisgICAgPHA+dGFnbGliLmxvZ2ljPC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VtcHR5VGFnLmh0bWwiPiBFbXB0eVRhZzwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPiBNZXNzYWdlc05vdFByZXNlbnRUYWc8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj4gTWVzc2FnZXNQcmVzZW50VGFnPC9hPjwvbGk+CisgICAgPC91bD4KKyAgICA8cD51cGxvYWQ8L3A+CisgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPiBDb21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L2E+PC9saT4KKyAgICA8L3VsPgorICAgIDxwPnV0aWw8L3A+CisgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwiPiBMYWJlbFZhbHVlQmVhbjwvYT48L2xpPgorICAgIDwvdWw+CisgICAgPHA+PHN0cm9uZz5DbGFzc2VzIHdpdGggbWVtYmVycyBhZGRlZCBpbiBTdHJ1dHMgMS4xPC9zdHJvbmc+PC9wPgorICAgIDxwPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPmFjdGlvbi5BY3Rpb248L2E+PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5BQ1RJT05fU0VSVkxFVF9LRVk8L2xpPgorICAgICAgPGxpPkFQUExJQ0FUSU9OX0tFWTwvbGk+CisgICAgICA8bGk+TUVTU0FHRV9LRVk8L2xpPgorICAgICAgPGxpPlBMVUdfSU5TX0tFWTwvbGk+CisgICAgICA8bGk+UkVRVUVTVF9QUk9DRVNTT1JfS0VZPC9saT4KKyAgICAgIDxsaT5leGVjdXRlPC9saT4KKyAgICAgIDxsaT5nZXRSZXNvdXJjZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCk8L2xpPgorICAgICAgPGxpPnNhdmVNZXNzYWdlczwvbGk+CisgICAgPC91bD4KKyAgICA8cD48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+YWN0aW9uLkE8L2E+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPmN0aW9uU2VydmxldDwvYT48L3A+CisgICAgPHVsPgorICAgICAgPGxpPmNvbmZpZ0RpZ2VzdGVyPC9saT4KKyAgICAgIDxsaT5jb252ZXJ0SGFjazwvbGk+CisgICAgICA8bGk+bG9nPC9saT4KKyAgICAgIDxsaT5wcm9jZXNzb3I8L2xpPgorICAgICAgPGxpPmdldEludGVybmFsPC9saT4KKyAgICAgIDxsaT5kZXN0cm95QXBwbGljYXRpb25zPC9saT4KKyAgICAgIDxsaT5kZXN0cm95Q29uZmlnRGlnZXN0ZXI8L2xpPgorICAgICAgPGxpPmdldEFwcGxpY2F0aW9uQ29uZmlnPC9saT4KKyAgICAgIDxsaT5nZXRSZXF1ZXN0UHJvY2Vzc29yPC9saT4KKyAgICAgIDxsaT5pbml0QXBwbGljYXRpb25Db25maWc8L2xpPgorICAgICAgPGxpPmluaXRBcHBsaWNhdGlvbkRhdGFTb3VyY2VzPC9saT4KKyAgICAgIDxsaT5pbml0QXBwbGljYXRpb25QbHVnSW5zPC9saT4KKyAgICAgIDxsaT5pbml0QXBwbGljYXRpb25NZXNzYWdlUmVzb3VyY2VzPC9saT4KKyAgICAgIDxsaT5pbml0Q29uZmlnRGlnZXN0ZXI8L2xpPgorICAgICAgPGxpPm1ldGhvZHMgY3JlYXRlZCBmb3IgYmFja3dhcmQtY29tcGF0aWJsaXR5IG9ubHkKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5kZWZhdWx0Q29udHJvbGxlckNvbmZpZzwvbGk+CisgICAgICAgICAgPGxpPmRlZmF1bHRGb3JtQmVhbnNDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0Rm9yd2FyZHNDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0TWFwcGluZ3NDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPHA+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9hPjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+aW5kZXhlZDwvbGk+CisgICAgICA8bGk+c2V0SW5kZXhlZDwvbGk+CisgICAgICA8bGk+Z2V0SW5kZXhlZDwvbGk+CisgICAgPC91bD4KKyAgICA8cD48c3Ryb25nPkNsYXNzZXMgZGVwcmVjYXRlZCBiZXR3ZWVuIFN0cnV0cyAxLjAgYW5kIFN0cnV0cyAxLjE8L3N0cm9uZz48L3A+CisgICAgPHA+YWN0aW9uPC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5BY3Rpb25FeGNlcHRpb248L2xpPgorICAgICAgPGxpPkFjdGlvbkZvcm1CZWFuczwvbGk+CisgICAgICA8bGk+QWN0aW9uRm9yd2FyZHM8L2xpPgorICAgICAgPGxpPkFjdGlvbk1hcHBpbmdzPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxzdHJvbmc+Q2xhc3NlcyB3aXRoIG1lbWJlcnMgZGVwcmVjYXRlZCBiZXR3ZWVuIFN0cnV0cyAxLjAgYW5kIFN0cnV0cyAxLjE8L3N0cm9uZz48L3A+CisgICAgPHA+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+YWN0aW9uLkFjdGlvbjwvYT48L3A+CisKKyAgICA8dWw+CisgICAgICA8bGk+Rk9STV9CRUFOU19LRVk8L2xpPgorICAgICAgPGxpPkZPUldBUkRTX0tFWTwvbGk+CisgICAgICA8bGk+TUFQUElOR1NfS0VZPC9saT4KKyAgICAgIDxsaT5nZXRSZXNvdXJjZXMoKTwvbGk+CisgICAgICA8bGk+cGVyZm9ybTwvbGk+CisgICAgPC91bD4KKyAgICA8cD48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvYT48L3A+CisgICAgPHVsPgorICAgICAgPGxpPmZpbmREYXRhU291cmNlPC9saT4KKyAgICAgIDxsaT5maW5kRm9ybUJlYW48L2xpPgorICAgICAgPGxpPmZpbmRGb3J3YXJkPC9saT4KKyAgICAgIDxsaT5maW5kTWFwcGluZzwvbGk+CisgICAgICA8bGk+aW5pdERhdGFTb3VyY2VzPC9saT4KKyAgICAgIDxsaT5tZXRob2RzIGNyZWF0ZWQgZm9yIGJhY2t3YXJkLWNvbXBhdGlibGl0eSBvbmx5CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+ZGVmYXVsdENvbnRyb2xsZXJDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0Rm9ybUJlYW5zQ29uZmlnPC9saT4KKyAgICAgICAgICA8bGk+ZGVmYXVsdEZvcndhcmRzQ29uZmlnPC9saT4KKyAgICAgICAgICA8bGk+ZGVmYXVsdE1hcHBpbmdzQ29uZmlnPC9saT4KKyAgICAgICAgICA8bGk+ZGVmYXVsdE1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uPgorICAgIDxwIGNsYXNzPSJyaWdodCI+CisgICAgTmV4dDogPGEgaHJlZj0iaW5zdGFsbGF0aW9uLmh0bWwiPkluc3RhbGxhdGlvbjwvYT4KKyAgICA8L3A+Cis8L3NlY3Rpb24+CisKKworICAgIDwvYm9keT4KKworPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLTEuMS1yYzEueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3JlbGVhc2Utbm90ZXMtMS4xLXJjMS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJmNWEwZgotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLTEuMS1yYzEueG1sCkBAIC0wLDAgKzEsNjE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9InJlbGVhc2Utbm90ZXMtMS4xLXJjMS5odG1sIj4KKworICA8cHJvcGVydGllcz4KKyAgICA8dGl0bGU+U3RydXRzIFJlbGVhc2UgTm90ZXMgKFZlcnNpb24gMS4xIFJlbGVhc2UgQ2FuZGlkYXRlIDEpPC90aXRsZT4KKyAgPC9wcm9wZXJ0aWVzPgorCisgIDxib2R5PgorCisgIDxzZWN0aW9uIG5hbWU9IjYuMSBSZWxlYXNlIE5vdGVzIiBocmVmPSJyZWxlYXNlX25vdGVzIi8+CisgIDxzZWN0aW9uIG5hbWU9IkJldGEgTm90ZXMiIGhyZWY9ImJldGEiPgorCisgICAgPHA+VGhpcyBzZWN0aW9uIGNvbnRhaW5zIHRoZSByZWxlYXNlIG5vdGVzIGZvcgorICAgIDxzdHJvbmc+bmlnaHRseSBidWlsZDwvc3Ryb25nPiBvZiB0aGUgU3RydXRzIEZyYW1ld29yaywKKyAgICBmb3IgY2hhbmdlcyB0aGF0IGhhdmUgdGFrZW4gcGxhY2Ugc2luY2UKKyAgICA8YSBocmVmPSJyZWxlYXNlLW5vdGVzLTEuMS1iMi5odG1sIj5WZXJzaW9uIDEuMSBiZXRhIDI8L2E+CisgICAgd2FzIHJlbGVhc2VkLiBGb3IgYSBjb21wbGV0ZSBsaXN0IG9mIGNoYW5nZXMgc2luY2UgdGhlIGxhc3QKKyAgICBwcm9kdWN0aW9uIHJlbGVhc2UsIHNlZSB0aGUgPGEgaHJlZj0iI0ludHJvZHVjdGlvbiI+SW50cm9kdWN0aW9uPC9hPiA8L3A+CisKKyAgPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSJCZXRhIEZpeGVzIiBocmVmPSJiZXRhLkNoYW5nZXMiPgorCisgIDxwPgorICA8c3Ryb25nPkFwcGxpY2F0aW9uQ29uZmlnOjwvc3Ryb25nPiBJbiBTdHJ1dHMgMS4xLiBiZXRhIDMsIHRoZSBBcHBsaWNhdGlvbkNvbmZpZyBjbGFzcyAKKyAgaXMgcmVuYW1lZCB0byBNb2R1bGVDb25maWcsIHRvIGNvbmZvcm0gd2l0aCB0aGUgdmVuYWN1bGFyLgorICA8L3A+CisKKyAgPHA+CisgIDxzdHJvbmc+RHluYSpGb3JtOjwvc3Ryb25nPiBJbiBTdHJ1dHMgMS4xLiBiZXRhIDMsIHRoZSByZXNldCBtZXRob2Qgd2FzIGNoYW5nZWQgc28gdGhhdCAKKyAgaXQgY29uZm9ybXMgdG8gdGhlIG9yaWdpbmFsIEFjdGlvbkZvcm0gaW1wbGVtZW50YXRpb24uPC9wPgorCisgIDxwPgorICA8c3Ryb25nPkJsYW5rIGFwcGxpY2F0aW9uOjwvc3Ryb25nPiBGaXhlZCBjb25maWd1cmF0aW9uIHByb2JsZW0gd2l0aCBTdHJ1dHMgQmxhbmsgCisgIGFwcGxpY2F0aW9uLgorICA8L3A+CisKKzwvc2VjdGlvbj4KKworICA8c2VjdGlvbiBuYW1lPSJJbnRyb2R1Y3Rpb24iIGhyZWY9IkludHJvZHVjdGlvbiI+CisKKyAgICA8cD5UaGUgcmVtYWluZGVyIG9mIHRoaXMgZG9jdW1lbnQgY29udGFpbnMgdGhlIHJlbGVhc2Ugbm90ZXMgZm9yCisgICAgPHN0cm9uZz5uaWdodGx5IGJ1aWxkPC9zdHJvbmc+IG9mIHRoZSBTdHJ1dHMgRnJhbWV3b3JrLAorICAgIGFuZCBjb3ZlcnMgY2hhbmdlcyB0aGF0IGhhdmUgdGFrZW4gcGxhY2Ugc2luY2UKKyAgICA8YSBocmVmPSJyZWxlYXNlLW5vdGVzLTEuMC4yLmh0bWwiPlZlcnNpb24gMS4wLjI8L2E+CisgICAgd2FzIHJlbGVhc2VkLiAgVGhlIGZvbGxvd2luZyBzZWN0aW9ucyBjb3ZlcgorICAgIDxhIGhyZWY9IiNOZXciPk5ldyBGZWF0dXJlczwvYT4gYW5kIDxhIGhyZWY9IiNDaGFuZ2VzIj5DaGFuZ2VzPC9hPgorICAgIHRvIFN0cnV0cy48L3A+CisKKyAgPC9zZWN0aW9uPgorCisKKyAgPHNlY3Rpb24gbmFtZT0iV2hhdCdzIEluY2x1ZGVkPyIgaHJlZj0iSW5jbHVkZWQiPgorCisgICAgPHA+VGhlIGJpbmFyeSBkaXN0cmlidXRpb24gb2YgdGhpcyByZWxlYXNlIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcKKyAgICBmaWxlcyByZWxldmFudCB0byBTdHJ1dHM6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+SU5TVEFMTDwvY29kZT4gLSBCcmllZiBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zLiAgU2VlCisgICAgICAgIHRoZSA8Y29kZT5TdHJ1dHMgRG9jdW1lbnRhdGlvbiBBcHBsaWNhdGlvbjwvY29kZT4sIG9yIG9ubGluZSBhdAorICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy8iPmh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzLzwvYT4KKyAgICAgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9saT4KKyAgICA8bGk+PGNvZGU+TElDRU5TRTwvY29kZT4gLSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gbGljZW5zZSB0aGF0CisgICAgICAgIGRlZmluZXMgdGhlIHRlcm1zIHVuZGVyIHdoaWNoIHlvdSBjYW4gdXNlIFN0cnV0cyAoYW5kIG90aGVyIHNvZnR3YXJlCisgICAgICAgIGxpY2Vuc2VkIGJ5IEFwYWNoZSkuPC9saT4KKyAgICA8bGk+PGNvZGU+UkVBRE1FPC9jb2RlPiAtIEEgYnJpZWYgaW50cm9kdWN0aW9uIHRvIFN0cnV0cy48L2xpPgorICAgIDxsaT48Y29kZT5saWIvPC9jb2RlPiAtIERpcmVjdG9yeSBjb250YWluaW5nIGZpbGVzIHlvdSB3aWxsIG5lZWQgaW4KKyAgICAgICAgeW91ciBvd24gYXBwbGljYXRpb25zLiAgVGhlIGluZGl2aWR1YWwgZmlsZXMgb2YgaW50ZXJlc3QgYXJlOgorICAgICAgICA8dWw+CisgICAgICAgIDxsaT48Y29kZT5jb21tb25zLSouamFyPC9jb2RlPiAtIFJlbGVhc2UgcGFja2FnZXMgZnJvbSB0aGUKKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy8iPkpha2FydGEgQ29tbW9ucworICAgICAgICAgICAgUHJvamVjdDwvYT4gdGhhdCBTdHJ1dHMgcmVsaWVzIG9uLiAgWW91IGFyZSB3ZWxjb21lIHRvIHVzZSB0aGVzZQorICAgICAgICAgICAgY2xhc3NlcyBpbiB5b3VyIG93biBhcHBsaWNhdGlvbnMuICBUaGVzZSBKQVIgZmlsZXMgc2hvdWxkIGJlCisgICAgICAgICAgICBjb3BpZWQgaW50byB0aGUgPGNvZGU+L1dFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3Rvcnkgb2YKKyAgICAgICAgICAgIHlvdXIgd2ViIGFwcGxpY2F0aW9uLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMuamFyPC9jb2RlPiAtIEpBUiBmaWxlIHRoYXQgY29udGFpbnMgdGhlIGNvbXBpbGVkCisgICAgICAgICAgICBKYXZhIGNsYXNzZXMgb2YgU3RydXRzLiAgWW91IG11c3QKKyAgICAgICAgICAgIHBsYWNlIHRoaXMgZmlsZSBpbiB0aGUgPGNvZGU+L1dFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3Rvcnkgb2YKKyAgICAgICAgICAgIHlvdXIgd2ViIGFwcGxpY2F0aW9uLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMteHh4eHgudGxkPC9jb2RlPiAtIFRoZSB0YWcgbGlicmFyeSBkZXNjcmlwdG9yIGZpbGVzCisgICAgICAgICAgICBmb3IgdGhlIFN0cnV0cyAxLjEgdGFnIGxpYnJhcmllcyAoYmVhbiwgaHRtbCwgbG9naWMsIGFuZAorICAgICAgICAgICAgdGVtcGxhdGUpLiAgWW91IG11c3QgcGxhY2UgdGhlc2UgZmlsZXMgaW4gdGhlIDxjb2RlPi9XRUItSU5GPC9jb2RlPgorICAgICAgICAgICAgZGlyZWN0b3J5IG9mIHlvdXIgd2ViIGFwcGxpY2F0aW9uLCBhbmQgcmVmZXJlbmNlIHRoZW0gd2l0aAorICAgICAgICAgICAgYXBwcm9wcmlhdGUgPGNvZGU+Jmx0O3RhZ2xpYiZndDs8L2NvZGU+IGRpcmVjdGl2ZXMgaW4geW91cgorICAgICAgICAgICAgd2ViLnhtbCBmaWxlLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5qZGJjMl8wLXN0ZGV4dC5qYXI8L2NvZGU+IC0gVGhlIEpEQkMgMi4wIE9wdGlvbmFsIFBhY2thZ2UKKyAgICAgICAgICAgIEFQSSBjbGFzc2VzIChwYWNrYWdlIDxjb2RlPmphdmF4LnNxbDwvY29kZT4pLiAgWW91IHdpbGwgbmVlZCB0bworICAgICAgICAgICAgaW5jbHVkZSB0aGlzIGZpbGUgaW4gdGhlIDxjb2RlPi9XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5CisgICAgICAgICAgICBvZiB5b3VyIGFwcGxpY2F0aW9uLCBpZiBpdCBpcyBub3QgYWxyZWFkeSBtYWRlIHZpc2libGUgdG8gd2ViCisgICAgICAgICAgICBhcHBsaWNhdGlvbnMgYnkgeW91ciBzZXJ2bGV0IGNvbnRhaW5lci48L2xpPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLWNvbmZpZ18xXzEuZHRkPC9jb2RlPiAtIFRoZSBkb2N1bWVudCB0eXBlIGRlc2NyaXB0b3IKKyAgICAgICAgICAgIChEVEQpIGZvciB0aGUgU3RydXRzIDEuMSBjb25maWd1cmF0aW9uIGZpbGUgKHdoaWNoIGlzIHR5cGljYWxseSBuYW1lZAorICAgICAgICAgICAgPGNvZGU+L1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWw8L2NvZGU+LiAgWW91ciBjb25maWd1cmF0aW9uIGZpbGUKKyAgICAgICAgICAgIHdpbGwgYmUgdmFsaWRhdGVkIGFnYWluc3QgYW4gaW50ZXJuYWwgY29weSBvZiB0aGlzIERURCAtLSB0aGlzCisgICAgICAgICAgICBjb3B5IGlzIGF2YWlsYWJsZSBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy1jb25maWdfMV8wLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yCisgICAgICAgICAgICAoRFREKSBmb3IgdGhlIFN0cnV0cyAxLjAgY29uZmlndXJhdGlvbiBmaWxlICh3aGljaCBpcyB0eXBpY2FsbHkgbmFtZWQKKyAgICAgICAgICAgIDxjb2RlPi9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sPC9jb2RlPi4gIFlvdXIgY29uZmlndXJhdGlvbiBmaWxlCisgICAgICAgICAgICB3aWxsIGJlIHZhbGlkYXRlZCBhZ2FpbnN0IGFuIGludGVybmFsIGNvcHkgb2YgdGhpcyBEVEQgLS0gdGhpcworICAgICAgICAgICAgY29weSBpcyBhdmFpbGFibGUgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDxsaT48Y29kZT53ZWItYXBwXzJfMi5kdGQ8L2NvZGU+IC0gVGhlIGRvY3VtZW50IHR5cGUgZGVzY3JpcHRvciAoRFREKQorICAgICAgICAgICAgZm9yIHdlYi54bWwgZmlsZXMgY29uZm9ybWluZyB0byB0aGUgU2VydmxldCAyLjIgc3BlY2lmaWNhdGlvbi4KKyAgICAgICAgICAgIFRoaXMgY29weSBpcyBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPndlYi1hcHBfMl8zLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yIChEVEQpCisgICAgICAgICAgICBmb3Igd2ViLnhtbCBmaWxlcyBjb25mb3JtaW5nIHRvIHRoZSBTZXJ2bGV0IDIuMyBzcGVjaWZpY2F0aW9uLgorICAgICAgICAgICAgVGhpcyBjb3B5IGlzIGZvciByZWZlcmVuY2UgcHVycG9zZXMgb25seS48L2xpPgorICAgICAgICA8L3VsPjwvbGk+CisgICAgPGxpPjxjb2RlPndlYmFwcHMvPC9jb2RlPiAtIFdlYiBBcHBsaWNhdGlvbiBBcmNoaXZlIChXQVIpIGZpbGVzIGZvciB0aGUKKyAgICAgICAgd2ViIGFwcGxpY2F0aW9ucyB0aGF0IGFyZSBpbmNsdWRlZCB3aXRoIFN0cnV0cy48L2xpPgorICAgIDwvdWw+CisKKyAgPC9zZWN0aW9uPgorCisgIDxzZWN0aW9uIG5hbWU9IldoYXQncyBOZXc/IiBocmVmPSJOZXciPgorCisgICAgPHA+Rm9sbG93aW5nIGFyZSBoaWdobGlnaHRzIG9mIHRoZSBuZXcgZmVhdHVyZXMuIEluIHRoZSBuZXh0IHNlY3Rpb24sIHdlCisgICAgcHJvdmlkZSBsaW5rcyB0byB0aGUgSmF2YURvY3MgZm9yIHRoZSBhZmZlY3RlZCBjbGFzc2VzLjwvcD4KKworICAgIDxwPjxzdHJvbmc+TmV3IENvbmZpZ3VyYXRpb24gRFREPC9zdHJvbmc+PC9wPgorICAgIDxwPiBUaGUgU3RydXRzIENvbmZpZ3VyYXRpb24gMS4wIERURCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHRoZQorICAgIDxjb2RlPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2R0ZHMvc3RydXRzLWNvbmZpZ18xXzEuZHRkIj5zdHJ1dHMtY29uZmlnXzFfMS5kdGQ8L2E+PC9jb2RlPi4KKyAgICBJbiB0aGUgU3RydXRzIDEuMSByZWxlYXNlLCBleGlzdGluZyBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlcyBjYW4gYmUKKyAgICBsb2FkZWQgdXNpbmcgZWl0aGVyIERURCB2ZXJzaW9uLgorICAgIDwvcD4KKworICAgIDxwPjxzdHJvbmc+TmV3IERlcGVuZGVuY2llcyBvbiBDb21tb25zIHBhY2thZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlNldmVyYWwgY29tcG9uZW50cyBvZiBTdHJ1dHMgMS4wIGhhdmUgYmVlbiBmb3VuZCB0byBiZSB1c2VmdWwgaW4KKyAgICBnZW5lcmFsIEphdmEgZGV2ZWxvcG1lbnQgKGFuZCBub3QganVzdCB1c2VmdWwgZm9yIGJ1aWxkaW5nIFN0cnV0cy1iYXNlZAorICAgIHdlYiBhcHBsaWNhdGlvbnMpLCBhbmQgaGF2ZSBiZWVuIG1pZ3JhdGVkIGludG8gdGhlCisgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zLyI+SmFrYXJ0YSBDb21tb25zIFByb2plY3Q8L2E+LgorICAgIEFzIGEgcmVzdWx0LCB0aGUgY3VycmVudCBkZXZlbG9wbWVudCB2ZXJzaW9uIG9mIFN0cnV0cyBoYXMgYmVlbiBtb2RpZmllZAorICAgIHRvIHJlbHkgb24gdGhlIENvbW1vbnMgcGFja2FnZXMgY29udGFpbmluZyB0aGVzZSBjbGFzc2VzLCByYXRoZXIgdGhhbiB0aGUKKyAgICBTdHJ1dHMgaW50ZXJuYWwgdmVyc2lvbnMuICBJbiBuZWFybHkgZXZlcnkgY2FzZSwgdGhpcyBpbnZvbHZlZCBjaGFuZ2luZworICAgIG9ubHkgdGhlIDxjb2RlPmltcG9ydDwvY29kZT4gc3RhdGVtZW50cyBhdCB0aGUgdG9wIG9mIHlvdXIgY2xhc3Nlcy4gIEFueQorICAgIGFwcGxpY2F0aW9ucyB0aGF0IHV0aWxpemUgdGhlc2UgY2xhc3NlcyB3aWxsIG5lZWQgdG8gYmUgbW9kaWZpZWQgaW4gdGhlCisgICAgc2FtZSB3YXkuICA8L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBDb21tb25zIHBhY2thZ2VzIGNvbnRhaW4gdGhlIHJlcGxhY2VtZW50cyBmb3IgdGhlCisgICAgY29ycmVzcG9uZGluZyBTdHJ1dHMgMS4wIGNsYXNzZXM6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PHN0cm9uZz5CZWFuVXRpbHMgUGFja2FnZTwvc3Ryb25nPgorICAgICAgICBbPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2JlYW51dGlscy5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzPC9jb2RlPjwvYT5dIC0KKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbHMuQmVhblV0aWxzPC9jb2RlPiwKKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbHMuQ29udmVydFV0aWxzPC9jb2RlPiwgYW5kCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWxzLlByb3BlcnR5VXRpbHM8L2NvZGU+LjwvbGk+CisgICAgPGxpPjxzdHJvbmc+Q29sbGVjdGlvbnMgUGFja2FnZTwvc3Ryb25nPgorICAgICAgICBbPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2NvbGxlY3Rpb25zLmh0bWwiPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5jb2xsZWN0aW9uczwvY29kZT48L2E+XSAgLQorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkFycmF5U3RhY2s8L2NvZGU+LAorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RBcnJheUxpc3Q8L2NvZGU+LAorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RIYXNoTWFwPC9jb2RlPiwKKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0VHJlZU1hcDwvY29kZT4uPC9saT4KKyAgICA8bGk+PHN0cm9uZz5EaWdlc3RlciBQYWNrYWdlPC9zdHJvbmc+IC0KKyAgICAgICAgWzxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9kaWdlc3Rlci5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXI8L2NvZGU+PC9hPl0gLQorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci4qPC9jb2RlPi48L2xpPgorICAgIDwvdWw+CisgICAgPHA+VGhlIGZvbGxvd2luZyBDb21tb25zIHBhY2thZ2VzIGFyZSBhbHNvIG5vdyB1c2VkIGJ5IHZhcmlvdXMgY29tcG9uZW50cworICAgIG9mIHRoZSBTdHJ1dHMgZnJhbWV3b3JrOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxzdHJvbmc+RGF0YWJhc2UgQ29ubmVjdGlvbiBQb29sIFBhY2thZ2U8L3N0cm9uZz4KKyAgICBbPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2RiY3AuaHRtbCI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmRicGM8L2NvZGU+PC9hPl08L2xpPgorICAgIDxsaT48c3Ryb25nPkZpbGVVcGxvYWQgUGFja2FnZTwvc3Ryb25nPgorICAgIFs8YSBocmVmPSJodHRwOi8vY3ZzLmFwYWNoZS5vcmcvdmlld2N2cy9qYWthcnRhLWNvbW1vbnMtc2FuZGJveC9maWxldXBsb2FkLyI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmZpbGV1cGxvYWQ8L2NvZGU+PC9hPl08L2xpPgorICAgIDxsaT48c3Ryb25nPkxvZ2dpbmcgUGFja2FnZTwvc3Ryb25nPgorICAgIFs8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvbG9nZ2luZy5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZzwvY29kZT48L2E+XTwvbGk+CisgICAgPGxpPjxzdHJvbmc+UG9vbCBQYWNrYWdlPC9zdHJvbmc+CisgICAgWzxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9wb29sL2luZGV4Lmh0bWwiPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5wb29sPC9jb2RlPjwvYT5dPC9saT4KKyAgICA8bGk+PHN0cm9uZz5WYWxpZGF0b3IgUGFja2FnZTwvc3Ryb25nPgorICAgIFs8YSBocmVmPSJodHRwOi8vY3ZzLmFwYWNoZS5vcmcvdmlld2N2cy9qYWthcnRhLWNvbW1vbnMvdmFsaWRhdG9yLyI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvcjwvY29kZT48L2E+XTwvbGk+CisgICAgPC91bD4KKworCisgICAgPHA+PHN0cm9uZz5OT1RFISBYTUwgUGFyc2VyIFByZXJlcXVpc2l0ZSBVcGRhdGVkPC9zdHJvbmc+PC9wPgorCisgICAgPHA+U3RydXRzIG5vdyBkZXBlbmRzIG9uIGFuIFhNTCBwYXJzZXIgdGhhdCBjb25mb3JtcyB0byB0aGUgSkFYUC8xLjEKKyAgICAocmF0aGVyIHRoYW4gSkFYUC8xLjApIEFQSXMuIFBhcnNlcnMga25vd24gdG8gd29yayBpbmNsdWRlIHRoZSBKQVhQLzEuMQorICAgIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiwgYW5kIFhlcmNlcyAxLjMuMS48L3A+CisKKyAgICA8cD48c3Ryb25nPlNPVVJDRSBERVZFTE9QRVJTIE5PVEUhIEFudCBQcmVyZXF1aXNpdGUgVXBkYXRlZDwvc3Ryb25nPjwvcD4KKyAgICA8cD5UbyBidWlsZCBTdHJ1dHMgZnJvbSBzb3VyY2UgQW50IDEuNCBvciBsYXRlciBpcyBub3cgcmVxdWlyZWQuIFRoaXMKKyAgICBkb2VzIG5vdCBhZmZlY3QgZGV2ZWxvcGVycyB0aGF0IHVzZSBTdHJ1dHMgZnJvbSB0aGUgYmluYXJ5IGRpc3RyaWJ1dGlvbi48L3A+CisKKyAgICA8cD48c3Ryb25nPlN0cnV0cyBWYWxpZGF0b3IgSW50ZWdyYXRpb248L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIG5ldyBDb21tb25zLVZhbGlkYXRvciBpcyBub3cgaW50ZWdyYXRlZCB3aXRoIFN0cnV0cyBhbmQgZXhwb3NlZAorICAgIHRocm91Z2ggdGhlIG5ldyBWYWxpZGF0b3IgcGFja2FnZS48L3A+CisKKyAgICA8cD48c3Ryb25nPlRpbGVzIC0gQW4gYWR2YW5jZWQgdGVtcGxhdGluZyB0YWdsaWI8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIFRpbGVzIEpTUCBhc3NlbWJseSBmcmFtZXdvcmsgaGFzIGJlZW4gaW50ZWdyYXRlZCB3aXRoIFN0cnV0cy48L3A+CisKKyAgICA8cD48c3Ryb25nPk5lc3RlZCAtIEFuIHZlcnkgY29vbCB0YWdsaWIgZXh0ZW5zaW9uPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBOZXN0ZWQgdGFnbGliIGlzIGJ1bmRsZWQgd2l0aCBTdHJ1dHMgYW5kIGVuaGFuY2VzIHRoZSBmdW5jdGlvbmFsaXR5CisgICAgIG9mIHRoZSBleGlzdGluZyBTdHJ1dHMgdGFncy48L3A+CisKKyAgICA8cD48c3Ryb25nPk5ldyBFeGFtcGxlIEFwcGxpY2F0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5OZXcgZXhhbXBsZSBhcHBsaWNhdGlvbnMgZm9yIHRoZSBWYWxpZGF0b3IgYW5kIFRpbGVzIGFyZSBub3cgcGFydAorICAgIG9mIHRoZSBTdHJ1dHMgZGlzdHJpYnV0aW9uLjwvcD4KKworICAgIDxwPjxzdHJvbmc+TmV3IENvbnRyaWIgZGlyZWN0b3J5IGZvciBvcHRpb25hbCBjb21wb25lbnRzPC9zdHJvbmc+PC9wPgorICAgIDxwPkEgbmV3IGRpcmVjdG9yeSAoPGNvZGU+Y29udHJpYjwvY29kZT4pIGluIHRoZSBDVlMgc291cmNlIHJlcG9zaXRvcnkgaGFzCisgICAgYmVlbiBhZGRlZCB0byBhY2N1bXVsYXRlIFN0cnV0cyBhZGQtb24gZXh0ZW5zaW9ucyB0aGF0IGFyZSBnZW5lcmFsbHkKKyAgICB1c2VmdWwgYnV0IGhhdmUgbm90IHlldCBiZWVuIGludGVncmF0ZWQgaW50byB0aGUgc3RhbmRhcmQgY29kZSBiYXNlLjwvcD4KKworICAgIDx1bD4KKyAgICA8bGk+U2NhZmZvbGQgLSBBbiBleHRlbnNpb24gb2YgdGhlIENvbW1vbnMgU2NhZmZvbGQgdG9vbGtpdCBvZiByZXVzYWJsZSAKKyAgICBjbGFzc2VzIGZvciBidWlsZGluZyB3ZWIgYXBwbGljYXRpb25zLjwvbGk+CisgICAgPGxpPlN0cnV0cy1lbCAtIFRoZSBvcHRpb25hbCBTdHJ1dHMtZWwgdGFnbGliIG1ha2VzIGl0IGVhc3kgdG8gdXNlIFN0cnV0cyAKKyAgICB3aXRoIEpTVEwgKGNvbnRhaW5lciB3aXRoIHNlcnZsZXQgMi4zIHN1cHBvcnQgcmVxdWlyZWQpLiA8L2xpPiAgICAKKyAgICA8L3VsPgorCisgICAgPHA+VGhlIHNvdXJjZSBmb3IgdGhlc2UgY29tcG9uZW50cyBpcyBhdmFpbGFibGUgaW4gdGhlIFN0cnV0cyBzb3VyY2UKKyAgICBkaXN0cmlidXRpb24uIEJpbmFyeSBkaXN0cmlidXRpb25zIG1heSBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIHdpdGggdGhlIFN0cnV0cworICAgIGRvd25sb2FkIGFyZWEuIEFzIG9wdGlvbmFsIGNvbXBvbmVudHMsIHRoZXNlIHByb2R1Y3RzIGhhdmUgdGhlaXIgb3duCisgICAgcmVsZWFzZSBjeWNsZXMuPC9wPgorCisgICAgPHA+PHN0cm9uZz5BY3Rpb24gUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBiYXNpYyBjb250cm9sbGVyCisgICAgZnJhbWV3b3JrIFs8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5UaGUgQWN0aW9uU2VydmxldCBub3cgcHJvdmlkZXMgc3VwcG9ydCBmb3IgbW9kdWxhciBTdHJ1dHMgYXBwbGljYXRpb25zIGFuZAorICAgIHNwb3J0cyBzZXZlcmFsIG5ldyBleHRlbnNpb24gcG9pbnRzLjwvbGk+CisgICAgPGxpPlRoZSBuZXcgPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IGNsYXNzIHdpbGwgc3VwcG9ydCBhIHN1cGVyc2V0IG9mCisgICAgICAgIHRoZSBjYXBhYmlsaXRpZXMgb2YgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiwgYW5kIHdpbGwgYmUgdXNlZnVsIGFzCisgICAgICAgIGEgY29sbGVjdGlvbiBvZiBnZW5lcmFsIHB1cnBvc2UgbWVzc2FnZXMsIG5vdCBqdXN0IGVycm9ycy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlVwbG9hZCBQYWNrYWdlIEFkZGl0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIGZpbGUgdXBsb2FkIGNsYXNzZXMKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9jb2RlPl06PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyOjwvY29kZT4gTmV3IGNsYXNzIHRoYXQgaW1wbGVtZW50cworICAgICAgICBmaWxlIHVwbG9hZCB1c2luZyB0aGUgSmFrYXJ0YSBDb21tb25zIEZpbGVVcGxvYWQgcGFja2FnZS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlV0aWwgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSB1dGlsaXR5IGNsYXNzZXMKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvY29kZT5dOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPkxvY2FsU3RyaW5nczo8L2NvZGU+IENvcnJlY3QgbWVzc2FnZSByZWdhcmRpbmcgcmVwbGFjZWFibGUgcGFyYW1ldGVyIHNvIHRoYXQgaXQgZG9lcyBub3QgYXBwZW5kIGFuIGV4dHJhbmVvdXMgY2hhcmFjdGVyLjwvbGk+CisgICAgPGxpPjxjb2RlPkxhYmVsVmFsdWVCZWFuOjwvY29kZT4gTmV3IGNsYXNzIHRoYXQgZGVmaW5lcyBhIGNvbGxlY3Rpb24gb2YgbmFtZS92YWx1ZSBwYWlycyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlICZsdDtodG1sOm9wdGlvbnMmZ3Q7IHRhZywgYW5kIGVsc2V3aGVyZS48L2xpPgorICAgIDxsaT48Y29kZT5NZXNzYWdlUmVzb3VyY2VzOjwvY29kZT4gRXNjYXBlIGFueSBzaW5nbGUgcXVvdGUgY2hhcmFjdGVycyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgc3BlY2lmaWVkIG1lc3NhZ2Ugc3RyaW5nLjwvbGk+CisgICAgPGxpPjxjb2RlPmNvbXB1dGVQYXJhbWV0ZXJzOjwvY29kZT4gQWxsb3cgYSB0cmFuc2FjdGlvbiB0b2tlbiB0byBiZSB0aGUgb25seSBwYXJhbWV0ZXIgaW4gLjwvbGk+CisgICAgPGxpPjxjb2RlPlJlcXVlc3RVdGlsczo8L2NvZGU+IENoYW5nZSB0byBlbmNvZGUgYW1wZXJzYW5kcyB3aGVuIGJ1aWxkaW5nIGEgcXVlcnkgc3RyaW5nLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+QmVhbiBUYWdsaWIgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtYmVhbjwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeQorICAgIFs8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvY29kZT5dOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPiZsdDtiZWFuOndyaXRlPjwvY29kZT46IEFkZCBmb3JtYXQsIGxvY2FsZSBhbmQgYnVuZGxlIGF0dHJpYnV0ZXMgdG8gc3VwcG9ydCBmb3JtYXR0aW5nIHZhbHVlcyBhY2NvcmRpbmcgdG8gY3VycmVudAorICAgIHVzZXIgbG9jYWxlLCBmb3JtYXQgc3RyaW5nIGZyb20gYXR0cmlidXRlIG9yIGZvcm1hdCBzdHJpbmcgZnJvbSBzdHJpbmcgcmVzb3VyY2VzLjwvbGk+CisgICAgPGxpPjxjb2RlPiZsdDtiZWFuOmNvb2tpZT4sICZsdDtiZWFuOmhlYWRlcj4sIG9yICZsdDtiZWFuOnBhcmFtZXRlcj46PC9jb2RlPiBDb3JyZWN0IHRoZSBnZW5lcmF0ZWQgc2NyaXB0aW5nIHZhcmlhYmxlIHR5cGUgd2hlbiB0YWcgaXMgdXNlZCB3aXRoIHRoZSAibXVsdGlwbGUiIGF0dHJpYnV0ZS48L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7YmVhbjptZXNzYWdlJmd0Ozo8L2NvZGU+IEFkZGVkIDxjb2RlPm5hbWU8L2NvZGU+LCA8Y29kZT5wcm9wZXJ0eTwvY29kZT4sIGFuZCAgPGNvZGU+c2NvcGU8L2NvZGU+IGF0dHJpYnV0ZXMgdG8gdGhlIHRhZywgc28gdGhhdCB0aGUgbWVzc2FnZSBzb3VyY2Uga2V5IGNhbiBiZSBvYnRhaW5lZCBkeW5hbWljYWxseSBmcm9tIGEgYmVhbiBvciBiZWFuIHByb3BlcnR5LjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+SFRNTCBUYWdsaWIgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtaHRtbDwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT48Y29kZT4mbHQ7aHRtbDpsaW5rJmd0Ozo8L2NvZGU+IEFkZGVkICdhY3Rpb24nIGF0dHJpYnV0ZS48L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7aHRtbDpvcHRpb25zJmd0Ozo8L2NvZGU+IElmIHRoZSBwcm9wZXJ0eSBzcGVjaWZpZWQgYnkgdGhlICdwcm9wZXJ0eScgYXR0cmlidXRlIHJldHVybnMgbnVsbCwgdGFnIG5vdyB0aHJvd3MgYW4gZXJyb3IgbWVzc2FnZSB0aGF0IGluZGljYXRlcyB3aGF0IHRoZSByZWFsIHByb2JsZW0gaXMsIHJhdGhlciB0aGFuIGNhdXNpbmcgYW4gTlBFLjwvbGk+CisgICAgPGxpPjxjb2RlPiZsdDtodG1sOm9wdGlvbiZndDsgYW5kICZsdDtodG1sOm9wdGlvbnMmZ3Q7OjwvY29kZT4gQWRkZWQgJ3N0eWxlJyBhbmQgJ3N0eWxlQ2xhc3MnIGF0dHJpYnV0ZXMuPC9saT4KKyAgICA8bGk+PGNvZGU+Jmx0O2h0bWw6b3B0aW9uc0NvbGxlY3Rpb24mZ3Q7OjwvY29kZT4gTmV3IHRhZyBwcm92aWRpbmcgYSBjbGVhbmVyIHdheSBvZiBwb3B1bGF0aW5nIEhUTUwgb3B0aW9ucyBmcm9tIGEgY29sbGVjdGlvbi48L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7YmVhbjptZXNzYWdlJmd0Ozo8L2NvZGU+IEFkZGVkICduYW1lJywgJ3Byb3BlcnR5JyBhbmQgJ3Njb3BlJyBhdHRyaWJ1dGVzIHNvIHRoYXQgdGhlIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IGNhbiBiZSBvYnRhaW5lZCBkeW5hbWljYWxseSBmcm9tIGEgYmVhbi48L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7aHRtbDptZXNzYWdlcyZndDs6PC9jb2RlPiBOZXcgdGFnIHRvIGl0ZXJhdGUgdGhyb3VnaCBhIG1lc3NhZ2UgY29sbGVjdGlvbiBpbiB0aGUgbmV3IDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPiBjbGFzcy48L2xpPgorICAgIDxsaT48Y29kZT5BY3Rpb25Gb3JtOjwvY29kZT4gVGFnIHdpbGwgbm93IGNhbGwgPGNvZGU+cmVzZXQoKTwvY29kZT4gaWYgaXQgaW5zdGFudGlhdGVzIHRoZSBBY3Rpb25Gb3JtIGJlYW4uIFRoaXMgYWxzbyByZXF1aXJlcyB0aGF0IHRoZSBiZWFuIGluc3RhbnRpYXRlZCBieSB0aGUgdGFnIHRvIGJlIGFuIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IHN1YmNsYXNzLiA8L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7aHRtbDppbWFnZT46PC9jb2RlPiBBZGRlZCB0aGUgJ2FsaWduJyBhdHRyaWJ1dGUuPC9saT4KKyAgICA8bGk+PGNvZGU+Jmx0O2h0bWw6aW1nPjo8L2NvZGU+IEFkZGVkIHRoZSBtb3VzZSBldmVudCBhdHRyaWJ1dGVzICgnb25jbGljaycsICdvbmRibGNsaWNrJywgJ29ubW91c2Vkb3duJywgJ29ubW91c2V1cCcsICdvbm1vdXNlb3ZlcicsICdvbm1vdXNlbW92ZScsICdvbm1vdXNlb3V0JykuPC9saT4KKyAgICA8bGk+PGNvZGU+U3VibWl0VGFnLCBTZWxlY3RUYWcsIExpbmtUYWcuamF2YSwgQ2hlY2tib3hUYWcsIEJ1dHRvblRhZywgSW1hZ2VUYWcsIFJhZGlvVGFnLCBhbmQgVGV4dEFyZWEgdGFnczo8L2NvZGU+IEFkZGVkIGluZGV4ZWQgcHJvcGVydHkuIDwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+TG9naWMgVGFnbGliIFBhY2thZ2UgQWRkaXRpb25zPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUKKyAgICA8ZW0+c3RydXRzLWxvZ2ljPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IFs8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT48Y29kZT4mbHQ7bG9naWM6ZW1wdHkmZ3Q7PC9jb2RlPiBhbmQKKyAgICAgICAgPGNvZGU+Jmx0O2xvZ2ljOm5vdEVtcHR5Jmd0OzwvY29kZT46IE5ldyB0YWdzIHRoYXQgYXJlIHNpbWlsYXIgdG8KKyAgICAgICAgPGNvZGU+Jmx0O2xvZ2ljOnByZXNlbnQmZ3Q7PC9jb2RlPiBhbmQKKyAgICAgICAgPGNvZGU+Jmx0O2xvZ2ljOm5vdFByZXNlbnQmZ3Q7PC9jb2RlPiBleGNlcHQgZm9yIHRoZSB0cmVhdG1lbnQgb2YKKyAgICAgICAgZW1wdHkgc3RyaW5ncy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlRlbXBsYXRlIFRhZ2xpYiBQYWNrYWdlIEFkZGl0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlCisgICAgPGVtPnN0cnV0cy10ZW1wbGF0ZTwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeQorICAgIFs8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGU8L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5Ob25lLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+RG9jdW1lbnRhdGlvbiBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBTdHJ1dHMgRG9jdW1lbnRhdGlvbgorICAgIGFwcGxpY2F0aW9uIChhbmQgY29ycmVzcG9uZGluZyBjb250ZW50cyBvbiB0aGUgU3RydXRzIHdlYiBzaXRlKTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5WZXJzaW9uIERpZmZlcmVuY2VzOiBOZXcgc2VjdGlvbiBpbiBSZWxlYXNlIE5vdGVzIHRvIGxpbmsgdG8gdGhlIEphdmFEb2NzIGZvciBhbGwgU3RydXRzIGNsYXNzZXMgYW5kIG1lbWJlcnMgYWRkZWQgb3IgY2hhbmdlZCBiZXR3ZWVuIHZlcnNpb25zLjwvbGk+CisgICAgPGxpPkZBUS9Ib3dUb3M6IE5ldyBkb2N1bWVudGF0aW9uIGNhdGVnb3J5IG9yZ2FuaXplcyBvdXIgRkFRcyBhbmQgZXhhbXBsZS1kcml2ZW4gaG93VG9zLiAKKyAgICBOZXcgSG93VG9zIGluY2x1ZGUgIkJ1aWxkaW5nIEFwcGxpY2F0aW9ucyIsICJVc2luZyBTU0wiLCBhbmQgdXNpbmcgU3RydXRzIHdpdGggRWNsaXBzZSBvciBOZXRCZWFucy48L2xpPgorICAgIDxsaT5Vc2VyIEd1aWRlIFByZWZhY2U6IE5ldyBzZWN0aW9uIHRvIG92ZXJ2aWV3IHRoZSBlbmFibGluZyB0ZWNobm9sb2dpZXMgYmVoaW5kIFN0cnV0cy48L2xpPgorICAgIDxsaT5EZXZlbG9wZXIgR3VpZGVzOiBBZGRlZCAiY292ZXIgcGFnZSIgdG8gZ3VpZGVzLiBUaGVzZSB0aGVuIGxpbmsgdG8gdGhlIFBhY2thZ2UgRGVzY3JpcHRpb25zIGFuZCB0aGUgQVBJIGd1aWRlcy48L2xpPgorICAgIDxsaT5IVE1MIHRhZyBkb2N1bWVudGF0aW9uOiBleHBhbmRlZCB0byBjb3ZlciB1c2luZyBpbmRleGVkIHByb3BlcnRpZXMgd2l0aCBpdGVyYXRlLjwvbGk+CisgICAgPGxpPlNpdGUgTWVudTogUmVtb3ZlZCBzZXBhcmF0ZSBsaW5rcyB0byB0YWdsaWIgZG9jdW1lbnRhdGlvbiwgc2luY2UgdGhlc2UgYXJlIG5vdyBpbiB0aGUgRGV2ZWxvcGVyIEd1aWRlLjwvbGk+CisgICAgPGxpPk5ld2JpZSBGQVE6IFRoZSBxdWVzdGlvbnMgbW9zdCBsaWtlbHkgdG8gYmUgYXNrZWQgYnkgbmV3IGRldmVsb3BlcnMgdXNpbmcgU3RydXRzLiBTdGlsbCB1bmRlciBkZXZlbG9wbWVudC48L2xpPgorICAgIDxsaT5LaWNrc3RhcnQgRkFROiBUaGUgcXVlc3Rpb25zIG1vc3QgbGlrZWx5IHRvIGJlIGFza2VkIHdoZW4gc2VsZWN0aW5nIFN0cnV0cy48L2xpPgorICAgIDxsaT4xLjAgSmF2YURvYzogQWRkZWQgYXJjaGl2YWwgY29weSB0byB3ZWIgc2l0ZSBmb3IgZnV0dXJlIHJlZmVyZW5jZS48L2xpPgorICAgIDxsaT5UaGUgVXNlckd1aWRlICJCdWlsZGluZyIgcGFnZXM6IEdlbmVyYWwgcmV2aXNpb25zIHRvIHJlZmxlY3QgbmV3IGZlYXR1cmVzIGFuZCBjdXJyZW50IHByYWN0aWNlcy48L2xpPgorICAgIDxsaT5JbnN0YWxsYXRpb246IFVwZGF0ZWQgaW5zdHJ1Y3Rpb25zIGZvciBTaWx2ZXJTdHJlYW0gYW5kIFJlc2luLiBBZGQgaW5zdGFsbGF0aW9uIG5vdGVzIGZvciBKZXR0eS4gQWRkZWQgUmV4SVAgdG8gbGlzdCBvZiBub21pbmFsIGNvbnRhaW5lcnMuPC9saT4KKyAgICA8bGk+SmF2YURvY3M6IE5ldyA8Y29kZT5Ac2luY2UgU3RydXRzIDEuMTwvY29kZT4gdGFnIHRvIGluZGljYXRlIG5ldyBwYWNrYWdlcywgY2xhc3NlcywgYW5kIG1lbWJlcnMgYWRkZWQgYWZ0ZXIgdGhlIFN0cnV0cyAxLjAueCB2ZXJzaW9uPC9saT4KKyAgICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworICA8c2VjdGlvbiBuYW1lPSJPcGVyYXRpb25hbCBDaGFuZ2VzIGFuZCBCdWcgRml4ZXMiIGhyZWY9IkNoYW5nZXMiPgorCisgICAgPHA+PHN0cm9uZz5TdHJ1dHMgQ29uZmlndXJhdGlvbiBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24KKyAgICBmaWxlcyByZWxhdGVkIHRvIFN0cnV0czo8L3A+CisgICAgPHVsPgorICAgIDxsaT5EZXByZWNhdGVkIChTdHJ1dHMgMC41KSBjb25maWd1cmF0aW9uIGZpbGUgZm9ybWF0OiBSZW1vdmUgc3VwcG9ydC48L2xpPgorICAgIDxsaT5EZXByZWNhdGVkIChTdHJ1dHMgMC41KSBtZXRob2RzOiBSZW1vdmUgZnJvbSBjb2RlYmFzZS48L2xpPgorICAgIDwvdWw+CisgICAgPHA+PHN0cm9uZz5BZGRlZCBDb25maWcgUGFja2FnZTwvc3Ryb25nPjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkNvbnRyb2xsZXJDb25maWc6IEFkZGVkIGlucHV0Rm9yd2FyZCBwcm9wZXJ0eSB0byBpbmRpY2F0ZSB0aGF0IEFjdGlvbk1hcHBpbmcuaW5wdXQgaXMgYSBmb3J3YXJkIHJhdGhlciB0aGFuIGEgVVJJLjwvbGk+CisgICAgPGxpPkNvbnRyb2xsZXJDb25maWc6IEFkZGVkIGZvcndhcmRQYXR0ZXJuIGFuZCBpbnB1dFBhdHRlcm4gdG8gaGVscCBtYW5hZ2UgcGFnZSBkaXJlY3RvcmllcyBpbiBhcHBsaWNhdGlvbiBtb2R1bGVzLjwvbGk+CisgICAgPGxpPkFkZGVkIHBhY2thZ2UgdG8gcHJvdmlkZSBtb3JlIGZsZXhpYmlsaXR5IGluIGNvbmZpZ3VyaW5nIHRoZSBjb250cm9sbGVyIGFuZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIG1vZHVsYXIgYXBwbGljYXRpb25zPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxzdHJvbmc+QWN0aW9uIFBhY2thZ2UgQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSBiYXNpYworICAgIGNvbnRyb2xsZXIgZnJhbWV3b3JrIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkFjdGlvbk1hcHBpbmc6IGlucHV0IHByb3BlcnR5IG1heSBub3cgcmVmZXIgdG8gYW4gQWN0aW9uRm9yd2FyZCByYXRoZXIgdGhhbiBhIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIGlmIGlucHV0Rm9yd2FyZCBpcyBzZXQgdG8gdHJ1ZSBvbiB0aGUgbW9kdWxlJ3MgQ29udHJvbGxlckNvbmZpZyBiZWFuIFtvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29udHJvbGxlckNvbmZpZy48L2xpPgorICAgIDxsaT5BY3Rpb25TZXJ2bGV0OiBBZGRlZCBjb252ZXJ0TnVsbCBwYXJhbWV0ZXIgdG8gc2ltdWxhdGUgdGhlIFN0cnV0cyAxLjAgYmVoYXZpb3Igd2hlbiBwb3B1bGF0aW5nIGZvcm1zLiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIG51bWVyaWMgSmF2YSB3cmFwcGVyIGNsYXNzIHR5cGVzIChsaWtlIGphdmEubGFuZy5JbnRlZ2VyKSB3aWxsIGRlZmF1bHQgdG8gbnVsbCAocmF0aGVyIHRoYW4gMCkuPC9saT4KKyAgICA8bGk+QWN0aW9uU2VydmxldDogQWRkZWQgImNvbmZpZy8kZm9vIiBwYXJhbWV0ZXIgYW5kIGRlcHJlY2F0ZWQgc2V2ZXJhbCBvdGhlcnMgaW4gZmF2b3Igb2YgY29tcG9uZW50cyBpbiB0aGUgbmV3IGNvbmZpZyBwYWNrYWdlLiA8L2xpPgorICAgIDxsaT5BY3Rpb25Gb3JtcyBhbmQgcmVsYXRlZCBjbGFzc2VzOiBub3cgdXNlIGEgU3RyaW5nQnVmZmVyIHdoZW4gcmVzcG9uZGluZyBhIHRvU3RyaW5nIHJlcXVlc3QgaW4gb3JkZXIgdG8gY29uc2VydmUgcmVzb3VyY2VzLjwvbGk+CisgICAgPGxpPkxvb2t1cERpc3BhdGNoQWN0aW9uOiBBZGRlZCBzdGFuZGFyZCBBY3Rpb24gdG8gaGVscCBzZWxlY3QgYmV0d2VlbiBpbnRlcm5hdGlvbmFsaXplZCBidXR0b25zLjwvbGk+CisgICAgPGxpPkFjdGlvbkZvcm0gY2xhc3M6IE1vZGlmaWVkIHRvIHVzZSBBY3Rpb25TZXJ2bGV0V3JhcHBlciByYXRoZXIgdGhhbiBleHBvc2UgQWN0aW9uU2VydmxldC48L2xpPgorICAgIDxsaT5BY3Rpb25TZXJ2bGV0V3JhcHBlciBjbGFzczogQWRkZWQgZm9yIHVzZSBieSBBY3Rpb25Gb3JtIHRvIHByZXZlbnQgdGhlIFB1YmxpYyBTdHJpbmcgcHJvcGVydGllcyBvZiBBY3Rpb25TZXJ2bGV0IGZyb20gYmVpbmcgY2hhbmdlZCB2aWEgYSBxdWVyeSBzdHJpbmcuPC9saT4KKyAgICA8bGk+QWN0aW9uLk1BUFBJTkdfS0VZIHJlcXVlc3QgYXR0cmlidXRlOiBVbmNvbmRpdGlvbmFsbHkgcGFzcyB0aGUgc2VsZWN0ZWQgbWFwcGluZyBhcyBhIHJlcXVlc3QgYXR0cmlidXRlICgib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLm1hcHBpbmcuaW5zdGFuY2UiKSBldmVuIGlmIG5vIGZvcm0gYmVhbiBpcyBzcGVjaWZpZWQuPC9saT4KKyAgICA8bGk+QWN0aW9uU2VydmxldDogQXZvaWQgYSBOdWxsUG9pbnRlckV4Y2VwdGlvbiBpbiBjb3JuZXIgY2FzZXMgY2F1c2VkIGJ5IGZhaWxlZCBpbml0aWFsaXphdGlvbiBvZiBzZXJ2bGV0LjwvbGk+CisgICAgPGxpPkFjdGlvbkZvcm0gY2xhc3M6IE5vdyB0cnVseSBzZXJpYWxpemFibGUsIGJlY2F1c2UKKyAgICAgICAgdGhlIHR3byBub24tc2VyaWFsaXphYmxlIGluc3RhbmNlIHZhcmlhYmxlcyAoc2VydmxldCBhbmQKKyAgICAgICAgbXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpIGhhdmUgYmVlbiBtYWRlIHRyYW5zaWVudC4gIEhvd2V2ZXIsIGlmIHlvdQorICAgICAgICBhY3R1YWxseSBkbyBzZXJpYWxpemUgYW5kIGRlc2VyaWFsaXplIHN1Y2ggaW5zdGFuY2VzLCBpdCBpcyB5b3VyCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIHJlc2V0IHRoZXNlIHR3byBwcm9wZXJ0aWVzLjwvbGk+CisgICAgPGxpPkFjdGlvbk1lc3NhZ2VzIGFuZCBBY3Rpb25FcnJvcnM6IFRoZSBpbml0aWFsIG9yZGVyIGEgcHJvcGVydHkva2V5IGlzIGFkZGVkIGluIGlzIG5vdyByZXRhaW5lZC48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlVwbG9hZCBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgZmlsZSB1cGxvYWQKKyAgICBwYWNrYWdlIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjogTmV3IGltcGxlbWVudGF0aW9uIG9mIGZpbGUgdXBsb2FkIGJhc2VkCisgICAgICAgIG9uIHRoZSBKYWthcnRhIENvbW1vbnMgRmlsZVVwbG9hZCBwYWNrYWdlLiBUaGlzIG5ldyBpbXBsZW1lbnRhdGlvbiBpcworICAgICAgICBub3cgdGhlIGRlZmF1bHQuPC9saT4KKyAgICA8bGk+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTogRml4ZWQgbG9zdCBieXRlIHByb2JsZW0uPC9saT4KKyAgICA8bGk+QXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uOiBGaXhlZCBzaXR1YXRpb25zIHdoZXJlIHRoaXMgd2FzIGtub3duIHRvIG9jY3VyLjwvbGk+CisgICAgPGxpPk11bHRpcGFydCByZXF1ZXN0czogQmV0dGVyIHJlcG9ydGluZyBmb3IgcHJlbWF0dXJlIGNsb3Npbmcgb2YgaW5wdXQgc3RyZWFtcyB3aGlsZSByZWFkaW5nIG11bHRpcGFydCByZXF1ZXN0cy48L2xpPgorICAgIDxsaT5OZXcgbGluZSBjaGFyYWN0ZXJzOiBBZGRpdGlvbmFsIGZpeCBmb3IgZmlsZSBjb3JydXB0aW9uIHByb2JsZW0gd2l0aCB1cGxvYWRzIGFuZCBuZXcgbGluZSBjaGFyYWN0ZXJzLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+VXRpbGl0eSBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgdXRpbGl0aWVzCisgICAgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlJlcXVlc3RVdGlsczogQWRkZWQgc3VwcG9ydCBmb3IgZm9yd2FyZFBhdHRlcm4sIHBhZ2VQYXR0ZXJuLCBhbmQgaW5wdXRGb3J3YXJkIHByb3BlcnRpZXMgb24gQ29udHJvbGxlckNvbmZpZy48L2xpPgorICAgIDxsaT5HZW5lcmljRGF0YVNvdXJjZTogRGVwcmVjYXRlZCBhbmQgbW9kaWZpZWQgdG8gYWN0IGFzIGEgdGhpbiB3cmFwcGVyIGFyb3VuZAorICAgIFs8Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuZGJwYy5CYXNpY0RhdGFTb3VyY2U8L2NvZGU+XS4KKyAgICBSZXBsYWNlZCBieSBkaXJlY3QgdXNlIG9mIEJhc2ljRGF0YVNvdXJjZSBvciBvdGhlciBjb21wYXRpYmxlIGNvbXBvbmVudC48L2xpPgorICAgIDxsaT5SZXF1ZXN0VXRpbHMgY2xhc3M6IE1vZGlmeSB0byB1c2UgQWN0aW9uU2VydmxldFdyYXBwZXIgcmF0aGVyIHRoYW4gZXhwb3NlIEFjdGlvblNlcnZsZXQuPC9saT4KKyAgICA8bGk+QWRkZWQgZXJyb3IgbWVzc2FnZSBmb3IgdGhlIGdldEFjdGlvbkVycm9ycyBhbmQgZ2V0QWN0aW9uTWVzc2FnZXMgbWV0aG9kLjwvbGk+CisgICAgPGxpPmdldEFjdGlvbkVycm9ycyBhbmQgZ2V0QWN0aW9uTWVzc2FnZXM6IEFkZGVkIG1ldGhvZHMgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgY29ycmVzcG9uZGluZworICAgIG9iamVjdCBiYXNlZCBvbiB0aGUgb2JqZWN0IHJldHJpZXZlZCBmcm9tIHJlcXVlc3Qgc2NvcGUgYmFzZWQgb24gdGhlIGtleSBwYXNzZWQgaW4uPC9saT4KKyAgICA8bGk+QWN0aW9uRXJyb3JzIG9yIEFjdGlvbk1lc3NhZ2VzOiBUaGUgbG9naWMgZm9yIGNyZWF0aW5nIG9uZSBvZiB0aGVzZSBvYmplY3RzIGhhcyBiZWVuIG1vdmVkCisgICAgdG8gYSB1dGlsaXR5IG1ldGhvZCBpbiBSZXF1ZXN0VXRpbHMuPC9saT4KKyAgICA8bGk+SnNwRXhjZXB0aW9uIG1lc3NhZ2U6IE5vdyBnZW5lcmF0ZWQgaW4gUmVxdWVzdFV0aWxzLjwvbGk+CisgICAgPGxpPkNvbnZlcnRVdGlscy5jb252ZXJ0Q2hhcmFjdGVyKCk6IFdpbGwgbm93IGRldGVjdCBlbXB0eSBzdHJpbmdzIGFuZCByZXR1cm4gdGhlIGRlZmF1bHQgdmFsdWUuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5CZWFuIFRhZ2xpYiBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUKKyAgICA8ZW0+c3RydXRzLWJlYW48L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT4mbHQ7aHRtbDplcnJvcnMmZ3Q7OiBXaGVuIHRoZSBwcm9wZXJ0eSB0YWcgaXMKKyAgICBzcGVjaWZpZWQsIGVycm9ycyBhcmUgbm8gbG9uZ2VyIHByaW50ZWQgaWYgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eQorICAgIGhhcyBubyBlcnJvcnMuIFByZXZpb3VzbHkgZXJyb3JzIHdlcmUgYWx3YXlzIHByaW50ZWQgISBGdXR1cmUKKyAgICBlbmhhbmNlbWVudHMgd291bGQgaW5jbHVkZSBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgdG8gYWx3YXlzIHR1cm4KKyAgICBvZmYgdGhlIGhlYWRlciBvciBmb290ZXIuIDwvbGk+CisgICAgPGxpPk1hZGUgdGhlIHJlbWFpbmluZyBoZWxwZXIgbWV0aG9kcyAicHJvdGVjdGVkIiByYXRoZXIgdGhhbgorICAgICJwcml2YXRlIi48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkhUTUwgVGFnbGliIFBhY2thZ2UgQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZQorICAgIDxlbT5zdHJ1dHMtaHRtbDwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZQorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Rm9ybVRhZzogRml4ZWQgdG8gZXhjbHVkZSBxdWVyeSBzdHJpbmcgd2hlbiBpZGVudGlmeWluZyBhY3Rpb24gbWFwcGluZyBuYW1lLjwvbGk+CisgICAgPGxpPkltZ1RhZzogQ29ycmVjdGx5IFVSTEVuY29kZSB0aGUgcXVlcnkgc3RyaW5nIHBhcmFtZXRlciB2YWx1ZSBldmVuIGlmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgcGFyYW1ldGVyLjwvbGk+CisgICAgPGxpPk11bHRpYm94VGFnLmRvQWZ0ZXJCb2R5KCk6IENvcnJlY3RlZCB0byByZXR1cm4gU0tJUF9CT0RZIGluc3RlYWQgb2YgU0tJUF9QQUdFLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+TG9naWMgVGFnbGliIFBhY2thZ2UgQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZQorICAgIDxlbT5zdHJ1dHMtbG9naWM8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgKHBhY2thZ2UKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5Ob25lLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+RG9jdW1lbnRhdGlvbiBBcHBsaWNhdGlvbiBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgRG9jdW1lbnRhdGlvbgorICAgIGFwcGxpY2F0aW9uIChhbmQgY29ycmVzcG9uZGluZyBjb250ZW50cyBvbiB0aGUgU3RydXRzIHdlYiBzaXRlKSBoYXZlCisgICAgb2NjdXJyZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+UmVvcmdhbml6ZWQgUmVzb3VyY2VzIGludG8gc2VwYXJhdGUgcGFnZXMuLjwvbGk+CisgICAgPGxpPkluIHRoZSBUYWcgRGV2ZWxvcGVycyBHdWlkZSwgYWRkIG1vcmUgZGV0YWlsIHJlZ2FyZGluZyBmaWxlIHVwbG9hZCByZXF1aXJlbWVudHMuPC9saT4KKyAgICA8bGk+SW4gQnVpbGRpbmcgVmlldyBDb21wb25lbnRzLCBjbGFyaWZ5IHRoYXQgYWRkaXRpb25hbCBpMThuIHN1cHBvcnQgbWF5IGJlIHByb3ZpZGVkIGJ5IHRoZSBicm93c2VyLCBhbmQgaXMgb3V0c2lkZSB0aGUgc2NvcGUgb2YgdGhlIGZyYW1ld29yay48L2xpPgorICAgIDxsaT5JbiBCdWlsZGluZyBDb250cm9sbGVyIENvbXBvbmVudHMsIGRvY3VtZW50ICd2YWxpZGF0aW5nJyBpbml0LXBhcmFtLCBhZGQgZGVmYXVsdHMgZm9yIHZhcmlvdXMgcGFyYW1ldGVycywgY2xhcmlmeSB0aGF0IHNvbWUgd2ViLnhtbCBzZXR0aW5ncyBhcmUgbm90IFN0cnV0cy1zcGVjaWZpYy48L2xpPgorICAgIDxsaT5UYWcgbGlicmFyeSBkb2N1bWVudGF0aW9uOiBNb3ZlZCB1bmRlciBVc2VyJ3MgR3VpZGUuPC9saT4KKyAgICA8bGk+UmVvcmdhbml6ZWQgdG8gc2VwYXJhdGUgMS4wIG1hdGVyaWFsIGZyb20gbmlnaHRseSBidWlsZCBtYXRlcmlhbC48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPk1haWxSZWFkZXIgRXhhbXBsZSBBcHBsaWNhdGlvbiBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgTWFpbFJlYWRlciBFeGFtcGxlIEFwcGxpY2F0aW9uCisgICAgaGF2ZSBvY2N1cnJlZDo8L3A+CisgICAgPHVsPgorICAgIDxsaT5BZGQgUnVzc2lhbiBhbmQgSmFwYW5lc2UgdHJhbnNsYXRpb25zIG9mIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZXMgYW5kIHNldCB0aGUgY2hhcmFjdGVyIHNldCBmb3IgdGhlIGV4YW1wbGUgSlNQIHBhZ2VzIHRvICJVVEYtOCIgc28gdGhhdCBpdCBjYW4gZGlzcGxheSBlaXRoZXIgRW5nbGlzaCBvciBKYXBhbmVzZS48L2xpPgorICAgIDxsaT5FeGNoYW5nZSAibmFtZSIgZm9yICJhdHRyaWJ1dGUiIHByb3BlcnRpZXMgZm9yIEVkaXQgbWFwcGluZ3MgaW4gU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZS48L2xpPgorICAgIDxsaT5SZW1vdmUgcmVmZXJlbmNlcyB0byBzYXZpbmcgZGF0YWJhc2UgZGF0YSBmcm9tICJ0b3VyIiBkb2N1bWVudCwgc2luY2UgdGhpcyBmdW5jdGlvbmFsaXR5IHdhcyByZW1vdmVkLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+VGVtcGxhdGUgRXhhbXBsZSBBcHBsaWNhdGlvbiBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgVGVtcGxhdGUgRXhhbXBsZQorICAgIEFwcGxpY2F0aW9uIGhhdmUgb2NjdXJyZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Tm9uZS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkV4ZXJjaXNlIFRhZ2xpYiBFeGFtcGxlIEFwcGxpY2F0aW9uIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgdG8gdGhlIFN0cnV0cyBFeGVyY2lzZSBUYWdsaWIgRXhhbXBsZQorICAgIEFwcGxpY2F0aW9uIGhhdmUgb2NjdXJyZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+QWRkZWQgdGVzdCBjYXNlIGZvciAmbHQ7aHRtbDpsaW5rPiB1c2luZyAiYWN0aW9uIiBhdHRyaWJ1dGUuIDwvbGk+CisgICAgPGxpPkFkZGVkIHRlc3QgY2FzZSBmb3IgJmx0O2h0bWw6c2VsZWN0PiB1c2luZyAmbHQ7aHRtbDpvcHRpb25zPiBiYXNlZCBvbiBhIGNvbGxlY3Rpb24KKyAgICBzYXZlZCBpbiB0aGUgcGFnZSBjb250ZXh0LjwvbGk+CisgICAgPC91bD4KKworICA8L3NlY3Rpb24+CisKKyAgPHNlY3Rpb24gbmFtZT0iV2hhdCdzIGRpZmZlcmVudD8iIGhyZWY9ImRpZmYiPgorCisgICAgPHA+VGhpcyBzZWN0aW9uIHByb3ZpZGVzIGxpbmtzIHRvIHRoZSBTdHJ1dHMgSmF2YURvYyBmb3IgYW55IGNsYXNzZXMgdGhhdCBoYXZlCisgICAgYmVlbiBhZGRlZCBvciBkZXByZWNhdGVkIHNpbmNlIHRoZSBTdHJ1dHMgMS4wIHJlbGVhc2UuCisgICAgPC9wPgorCisgICAgPHA+PHN0cm9uZz5QcmV2aW91c2x5IGRlcHJlY2F0ZWQgY2xhc3NlcyBhbmQgcGFja2FnZXMgcmVtb3ZlZCBpbiBTdHJ1dHMgMS4xPC9zdHJvbmc+PC9wPgorICAgIDx1bD4KKyAgICA8bGk+UmVtb3ZlZDoKKyAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWxzLkJlYW5VdGlsczwvY29kZT4sCisgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlscy5Db252ZXJ0VXRpbHM8L2NvZGU+LCBhbmQKKyAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWxzLlByb3BlcnR5VXRpbHM8L2NvZGU+IC0gcmVwbGFjZWQgYnkKKyAgICAgIDxhIGhyZWYgPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvYmVhbnV0aWxzLmh0bWwiPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHM8L2NvZGU+PC9hPgorICAgIDwvbGk+CisgICAgPGxpPlJlbW92ZWQ6CisgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuQXJyYXlTdGFjazwvY29kZT4sCisgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdEFycmF5TGlzdDwvY29kZT4sCisgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdEhhc2hNYXA8L2NvZGU+LAorICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RUcmVlTWFwPC9jb2RlPiAtIHJlcGxhY2VkIGJ5CisgICAgIDxhIGhyZWYgPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvY29sbGVjdGlvbnMuaHRtbCI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmNvbGxlY3Rpb25zPC9jb2RlPjwvYT4KKyAgICA8L2xpPgorICAgIDxsaT5SZW1vdmVkOiA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci4qPC9jb2RlPiAtIHJlcGxhY2VkIGJ5CisgICAgPGEgaHJlZiA9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9kaWdlc3Rlci5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXI8L2NvZGU+PC9hPgorICAgIDwvbGk+CisgICAgPGxpPlJlbW92ZWQ6IFRoZSA8Y29kZT5zdHJ1dHMtY29uZmlnLmR0ZDwvY29kZT4gLSBSZXBsYWNlZCBieSA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9kdGRzL3N0cnV0cy1jb25maWdfMV8xLmR0ZCI+PGNvZGU+c3RydXRzLWNvbmZpZ18xXzEuZHRkPC9jb2RlPjwvYT4uPC9saT4KKyAgICA8bGk+UmVtb3ZlZDogVGhlIG9tbmlidXMgInN0cnV0cyIgdGFnbGliIGFuZCBpdHMgYXNzb2NpYXRlZCBUTEQgLSByZXBsYWNlZCBieSBzZXBhcmF0ZSBiZWFuLCBsb2dpYywgYW5kIGh0bWwgdGFnbGlicy48L2xpPgorICAgIDxsaT5SZW1vdmVkOiBUaGUgImZvcm0iIHRhZ2xpYiBhbmQgaXRzIGFzc29jaWF0ZWQgVExEIC0gcmVwbGFjZWQgYnkgKHJlbmFtZWQgYXMpIHRoZSBodG1sIHRhZ2xpYi48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlBhY2thZ2VzIGFkZGVkIGluIFN0cnV0cyAxLjE8L3N0cm9uZz48L3A+CisKKyAgICA8dWw+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPmNvbmZpZzwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+dGFnbGliLm5lc3RlZDwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sIj50YWdsaWIubmVzdGVkLmJlYW48L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+dGFnbGliLm5lc3RlZC5odG1sPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj50YWdsaWIubmVzdGVkLmxvZ2ljPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1mcmFtZS5odG1sIj52YWxpZGF0b3I8L2E+PC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5DbGFzc2VzIGFkZGVkIGluIFN0cnV0cyAxLjE8L3N0cm9uZz48L3A+CisgICAgPHA+YWN0aW9uPC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+IEFjdGlvbk1lc3NhZ2U8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPiBBY3Rpb25NZXNzYWdlczwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCI+IER5bmFBY3Rpb25Gb3JtPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiPiBEeW5hQWN0aW9uRm9ybUNsYXNzPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9FeGNlcHRpb25IYW5kbGVyLmh0bWwiPiBFeGNlcHRpb25IYW5kbGVyPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPiBSZXF1ZXN0UHJvY2Vzc29yPC9hPjwvbGk+CisgICAgPC91bD4KKyAgICA8cD5hY3Rpb25zPC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Mb29rdXBEaXNwYXRjaEFjdGlvbi5odG1sIj4gTG9va3VwRGlzcGF0Y2hBY3Rpb248L2E+PC9saT4KKyAgICA8L3VsPgorICAgIDxwPnRhZ2xpYi5odG1sPC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCI+IEZyYW1lVGFnPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+IEphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+IE9wdGlvbnNDb2xsZWN0aW9uVGFnPC9hPjwvbGk+CisgICAgPC91bD4KKyAgICA8cD50YWdsaWIubG9naWM8L3A+CisgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCI+IEVtcHR5VGFnPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+IE1lc3NhZ2VzTm90UHJlc2VudFRhZzwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPiBNZXNzYWdlc1ByZXNlbnRUYWc8L2E+PC9saT4KKyAgICA8L3VsPgorICAgIDxwPnVwbG9hZDwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+IENvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvYT48L2xpPgorICAgIDwvdWw+CisgICAgPHA+dXRpbDwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTGFiZWxWYWx1ZUJlYW4uaHRtbCI+IExhYmVsVmFsdWVCZWFuPC9hPjwvbGk+CisgICAgPC91bD4KKyAgICA8cD48c3Ryb25nPkNsYXNzZXMgd2l0aCBtZW1iZXJzIGFkZGVkIGluIFN0cnV0cyAxLjE8L3N0cm9uZz48L3A+CisgICAgPHA+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+YWN0aW9uLkFjdGlvbjwvYT48L3A+CisgICAgPHVsPgorICAgICAgPGxpPkFDVElPTl9TRVJWTEVUX0tFWTwvbGk+CisgICAgICA8bGk+QVBQTElDQVRJT05fS0VZPC9saT4KKyAgICAgIDxsaT5NRVNTQUdFX0tFWTwvbGk+CisgICAgICA8bGk+UExVR19JTlNfS0VZPC9saT4KKyAgICAgIDxsaT5SRVFVRVNUX1BST0NFU1NPUl9LRVk8L2xpPgorICAgICAgPGxpPmV4ZWN1dGU8L2xpPgorICAgICAgPGxpPmdldFJlc291cmNlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KTwvbGk+CisgICAgICA8bGk+c2F2ZU1lc3NhZ2VzPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5hY3Rpb24uQTwvYT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+Y3Rpb25TZXJ2bGV0PC9hPjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+Y29uZmlnRGlnZXN0ZXI8L2xpPgorICAgICAgPGxpPmNvbnZlcnRIYWNrPC9saT4KKyAgICAgIDxsaT5sb2c8L2xpPgorICAgICAgPGxpPnByb2Nlc3NvcjwvbGk+CisgICAgICA8bGk+Z2V0SW50ZXJuYWw8L2xpPgorICAgICAgPGxpPmRlc3Ryb3lBcHBsaWNhdGlvbnM8L2xpPgorICAgICAgPGxpPmRlc3Ryb3lDb25maWdEaWdlc3RlcjwvbGk+CisgICAgICA8bGk+Z2V0QXBwbGljYXRpb25Db25maWc8L2xpPgorICAgICAgPGxpPmdldFJlcXVlc3RQcm9jZXNzb3I8L2xpPgorICAgICAgPGxpPmluaXRBcHBsaWNhdGlvbkNvbmZpZzwvbGk+CisgICAgICA8bGk+aW5pdEFwcGxpY2F0aW9uRGF0YVNvdXJjZXM8L2xpPgorICAgICAgPGxpPmluaXRBcHBsaWNhdGlvblBsdWdJbnM8L2xpPgorICAgICAgPGxpPmluaXRBcHBsaWNhdGlvbk1lc3NhZ2VSZXNvdXJjZXM8L2xpPgorICAgICAgPGxpPmluaXRDb25maWdEaWdlc3RlcjwvbGk+CisgICAgICA8bGk+bWV0aG9kcyBjcmVhdGVkIGZvciBiYWNrd2FyZC1jb21wYXRpYmxpdHkgb25seQorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPmRlZmF1bHRDb250cm9sbGVyQ29uZmlnPC9saT4KKyAgICAgICAgICA8bGk+ZGVmYXVsdEZvcm1CZWFuc0NvbmZpZzwvbGk+CisgICAgICAgICAgPGxpPmRlZmF1bHRGb3J3YXJkc0NvbmZpZzwvbGk+CisgICAgICAgICAgPGxpPmRlZmF1bHRNYXBwaW5nc0NvbmZpZzwvbGk+CisgICAgICAgICAgPGxpPmRlZmF1bHRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+dGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L2E+PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5pbmRleGVkPC9saT4KKyAgICAgIDxsaT5zZXRJbmRleGVkPC9saT4KKyAgICAgIDxsaT5nZXRJbmRleGVkPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxzdHJvbmc+Q2xhc3NlcyBkZXByZWNhdGVkIGJldHdlZW4gU3RydXRzIDEuMCBhbmQgU3RydXRzIDEuMTwvc3Ryb25nPjwvcD4KKyAgICA8cD5hY3Rpb248L3A+CisgICAgPHVsPgorICAgICAgPGxpPkFjdGlvbkV4Y2VwdGlvbjwvbGk+CisgICAgICA8bGk+QWN0aW9uRm9ybUJlYW5zPC9saT4KKyAgICAgIDxsaT5BY3Rpb25Gb3J3YXJkczwvbGk+CisgICAgICA8bGk+QWN0aW9uTWFwcGluZ3M8L2xpPgorICAgIDwvdWw+CisgICAgPHA+PHN0cm9uZz5DbGFzc2VzIHdpdGggbWVtYmVycyBkZXByZWNhdGVkIGJldHdlZW4gU3RydXRzIDEuMCBhbmQgU3RydXRzIDEuMTwvc3Ryb25nPjwvcD4KKyAgICA8cD48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5hY3Rpb24uQWN0aW9uPC9hPjwvcD4KKworICAgIDx1bD4KKyAgICAgIDxsaT5GT1JNX0JFQU5TX0tFWTwvbGk+CisgICAgICA8bGk+Rk9SV0FSRFNfS0VZPC9saT4KKyAgICAgIDxsaT5NQVBQSU5HU19LRVk8L2xpPgorICAgICAgPGxpPmdldFJlc291cmNlcygpPC9saT4KKyAgICAgIDxsaT5wZXJmb3JtPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9hPjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+ZmluZERhdGFTb3VyY2U8L2xpPgorICAgICAgPGxpPmZpbmRGb3JtQmVhbjwvbGk+CisgICAgICA8bGk+ZmluZEZvcndhcmQ8L2xpPgorICAgICAgPGxpPmZpbmRNYXBwaW5nPC9saT4KKyAgICAgIDxsaT5pbml0RGF0YVNvdXJjZXM8L2xpPgorICAgICAgPGxpPm1ldGhvZHMgY3JlYXRlZCBmb3IgYmFja3dhcmQtY29tcGF0aWJsaXR5IG9ubHkKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5kZWZhdWx0Q29udHJvbGxlckNvbmZpZzwvbGk+CisgICAgICAgICAgPGxpPmRlZmF1bHRGb3JtQmVhbnNDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0Rm9yd2FyZHNDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0TWFwcGluZ3NDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPgorICAgIDwvdWw+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24+CisgICAgPHAgY2xhc3M9InJpZ2h0Ij4KKyAgICBOZXh0OiA8YSBocmVmPSJpbnN0YWxsYXRpb24uaHRtbCI+SW5zdGFsbGF0aW9uPC9hPgorICAgIDwvcD4KKzwvc2VjdGlvbj4KKworCisgICAgPC9ib2R5PgorCis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3JlbGVhc2Utbm90ZXMtMS4xLXJjMi54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjEtcmMyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzBiZWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3JlbGVhc2Utbm90ZXMtMS4xLXJjMi54bWwKQEAgLTAsMCArMSw4ODYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0icmVsZWFzZS1ub3Rlcy0xLjEtcmMyLmh0bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5TdHJ1dHMgUmVsZWFzZSBOb3RlcyAoVmVyc2lvbiAxLjEgUmVsZWFzZSBDYW5kaWRhdGUgMSk8L3RpdGxlPgorICA8L3Byb3BlcnRpZXM+CisKKyAgPGJvZHk+CisKKyAgPHNlY3Rpb24gbmFtZT0iNi4xIFJlbGVhc2UgTm90ZXMiIGhyZWY9InJlbGVhc2Vfbm90ZXMiLz4KKyAgPHNlY3Rpb24gbmFtZT0iUmVsZWFzZSBDYW5kaWRhdGUgTm90ZXMiIGhyZWY9ImJldGEiPgorCisgICAgPHA+VGhpcyBzZWN0aW9uIGNvbnRhaW5zIHRoZSByZWxlYXNlIG5vdGVzIGZvciB0aGUKKyAgICA8c3Ryb25nPlZlcnNpb24gMS4xIFJlbGVhc2UgQ2FuZGlkYXRlIDI8L3N0cm9uZz4gYnVpbGQgb2YgdGhlIFN0cnV0cyBGcmFtZXdvcmssCisgICAgZm9yIGNoYW5nZXMgdGhhdCBoYXZlIHRha2VuIHBsYWNlIHNpbmNlCisgICAgPGEgaHJlZj0icmVsZWFzZS1ub3Rlcy0xLjEtcmMxLmh0bWwiPlZlcnNpb24gMS4xIFJlbGVhc2UgQ2FuZGlkYXRlIDE8L2E+CisgICAgd2FzIGlzc3VlZC4gRm9yIGEgY29tcGxldGUgbGlzdCBvZiBjaGFuZ2VzIHNpbmNlIHRoZSBsYXN0CisgICAgcHJvZHVjdGlvbiByZWxlYXNlLCBzZWUgdGhlIDxhIGhyZWY9IiNJbnRyb2R1Y3Rpb24iPkludHJvZHVjdGlvbjwvYT4gPC9wPgorCisgIDwvc2VjdGlvbj4KKworPHNlY3Rpb24gbmFtZT0iUkMvQmV0YSBGaXhlcyIgaHJlZj0iYmV0YS5DaGFuZ2VzIj4KKworICAgIDxwPgorICAgICAgICBJbiBSQzIsIHRoZSA8c3Ryb25nPkNvbW1vbnMtREJDUCBhbmQgQ29tbW9ucy1Qb29sIGRlcGVuZGVuY2llcyBoYXZlIGJlZW4gcmVtb3ZlZDwvc3Ryb25nPi4KKyAgICAgICAgVGhlc2UgYXJlIHJlcGxhY2VkIHdpdGggYSBkZXBlbmRlbmN5IG9uIHRoZSBTdHJ1dHMtTGVnYWN5IHBhY2thZ2UsCisgICAgICAgIGNvbnRhaW5pbmcgdGhlIEdlbmVyaWNEYXRhU291cmNlIGFuZCBHZW5lcmljQ29ubmVjdGlvbiBjbGFzc2VzIGZyb20gU3RydXRzIDEuMC4yLgorICAgICAgICBUaGVzZSBhcmUgZGlzdHJpYnV0ZWQgZm9yIEoyU0UgMS4zIGJ1dCBtYXkgYmUgcmVjb21waWxlZCBmb3IgSjJTRSAxLjQuCisgICAgICAgIE90aGVyIERhdGFTb3VyY2UgaW1wbGVtZW50YXRpb25zIG1heSBiZSBwbHVnZ2VkIGluIChyZWNvbW1lbmRlZCkuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIFJDMiBpcyBkZXBlbmRlbnQgdXBvbiA8c3Ryb25nPkNvbW1vbnMgRmlsZVVwbG9hZCBSQzE8L3N0cm9uZz4uCisgICAgICAgIFRoZSBmaW5hbCByZWxlYXNlIG9mIFN0cnV0cyAxLjEgY2Fubm90IGhhcHBlbiB1bnRpbCB0aGlzIGRlcGVuZGVuY3kgaXMKKyAgICAgICAgdXBkYXRlZCB0byBhIGZpbmFsIHJlbGVhc2Ugb2YgRmlsZVVwbG9hZC4KKyAgICAgICAgQWxsIG90aGVyIGRlcGVuZGVuY2llcyBhcmUgaW4gdGhlaXIgZmluYWwgcmVsZWFzZS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICAgICAgT3RoZXIgY2hhbmdlcyBzaW5jZSBSQzEgaGF2ZSBiZWVuIHJvdXRpbmUgZml4ZXMgYW5kIHJlZmFjdG9yaW5ncy4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICAgICAgPHN0cm9uZz5PVEhFUiBDSEFOR0VTOjwvc3Ryb25nPgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICA8c3Ryb25nPkFjdGlvbiBwYWNrYWdlOjwvc3Ryb25nPgorICAgICAgICBEZXByZWNhdGVkIHByb2Nlc3NBY3Rpb25Gb3J3YXJkKCkgYmVjYXVzZSBBY3Rpb25Gb3J3YXJkIGlzIGEgc3ViY2xhc3Mgb2YgRm9yd2FyZENvbmZpZyBzbyB0aGVyZSdzIG5vIHJlYXNvbiB3ZSBjYW4ndCB1c2UgcHJvY2Vzc0ZvcndhcmRDb25maWcoKSBpbnN0ZWFkLgorICAgICAgICBVcGRhdGVkIHRvIHVzZSBwcm9jZXNzRm9yd2FyZENvbmZpZyBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQgcHJvY2Vzc0FjdGlvbkZvcndhcmQuCisgICAgICAgIERlcHJlY2F0ZWQgdGhlIHJlc3Qgb2YgdGhlIEFjdGlvbiBjb25zdGFudHMgaW4gZmF2b3Igb2YgR2xvYmFscy4KKyAgICAgICAgUmVmYWN0b3JlZCBzb21lIG9mIGluaXRNb2R1bGVDb25maWcgaW50byBhIHNlcGFyYXRlIG1ldGhvZCBhbmQgY2xlYW5lZCB1cC4KKyAgICAgICAgSW1wcm92ZWQgZXhjZXB0aW9uIGhhbmRsaW5nIGluIEFjdGlvblNlcnZsZXQgYW5kIFJlcXVlc3RQcm9jZXNzb3I7IGdlbmVyYWxseSwgd2UgbGltaXRlZCB0aGUgc2NvcGUgb2YgdHJ5L2NhdGNoIGJsb2NrcyBhbmQgY2F1Z2h0IHNwZWNpZmljIGV4Y2VwdGlvbnMgcmF0aGVyIHRoYW4gVGhyb3dhYmxlLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICA8c3Ryb25nPkRvY3VtZW50YXRpb246PC9zdHJvbmc+CisgICAgICAgIERvY3VtZW50IHRoZSAmbHQ7aHRtbDpodG1sJmd0OyB0YWcncyBsb2NhbGUgYXR0cmlidXRlIGJlaGF2aW91ciBvZiBjcmVhdGluZyBhIHNlc3Npb24gaWYgbmVlZGVkLgorICAgICAgICBBZGRlZCBub3RlIHRvIHZhbGlkYXRvciBzZWN0aW9uIHJlZ2FyZGluZyB0aGUgY29udmVyTnVsbCBzZXJ2bGV0IHBhcmFtZXRlciBhbmQgcmVxdWlyZWQgdmFsaWRhdGlvbnMgb2YgamF2YS5sYW5nLkludGVnZXIgZmllbGRzLgorICAgICAgICBNb3ZlZCBzaXRlcyBhbmQgY29uc3VsdGFudHMgcGFnZSB0byBTdHJ1dHMgV2lraS4KKyAgICAgICAgT3RoZXIgbWlub3IgdHdlYWtzLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICA8c3Ryb25nPkVMIHBhY2thZ2U6PC9zdHJvbmc+CisgICAgICAgIEZpeGVkIG1hcHBpbmcgb2YgIm9ua2V5cHJlc3MiIGF0dHJpYnV0ZS4KKyAgICAgICAgU2VwYXJhdGVkICJleHByIiBhdHRyaWJ1dGUgaW50byAiZXhwciIgYW5kICJleHByVmFsdWUiLCBiZWluZyB0aGUgb3JpZ2luYWwgYXR0cmlidXRlIHZhbHVlIGFuZCB0aGUgZXZhbHVhdGVkIHZhbHVlLgorICAgICAgICBGaXhlZCBwcm9iYWJseSBsb25nLXN0YW5kaW5nIGJ1ZyBpbiBub3RNYXRjaCB0YWcgdGhhdCBtYWRlIGl0IGJlaGF2ZSBpZGVudGljYWxseSB0byB0aGUgIm1hdGNoIiB0YWcgKGluc3RlYWQgb2YgdGhlIHJldmVyc2UpLgorCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIDxzdHJvbmc+RXhhbXBsZSBhcHBsaWNhdHRpb25zOjwvc3Ryb25nPgorICAgICAgICBBZGRlZCBNdWx0aS1jb25maWcgZmlsZXMgZm9yIHRoZSBleGFtcGxlIGFwcC4KKyAgICA8L3A+CisKKworICAgIDxwPgorICAgICAgICA8c3Ryb25nPkxlZ2FjeSBwYWNrYWdlOjwvc3Ryb25nPgorICAgICAgICBBZGRlZCBwYWNrYWdlIHVuZGVyIGNvbnRyaWIgdG8gaG9zdCBvbGQgR2VuZXJpY0RhdGFTb3VyY2UgYW5kIEdlbmVyaWNDb25uZWN0aW9uIGNsYXNzZXMuCisKKyAgICA8L3A+CisgICAgPHA+CisgICAgICAgIDxzdHJvbmc+VGFnbGlicyBwYWNrYWdlczo8L3N0cm9uZz4KKyAgICAgICAgRml4ZWQgc2V2ZXJhbCBpbXBvcnQgc3RhdGVtZW50cy4KKyAgICAgICAgUmVmYWN0b3JlZCBjb252ZXJ0aW5nIGEgc2NvcGUgbmFtZSBpbnRvIGl0cyBpbnRlZ2VyIGNvbnN0YW50IGludG8gYSBuZXcgbWV0aG9kIFJlcXVlc3RVdGlscy5nZXRTY29wZShTdHJpbmcpLCBhbmQgY2hhbmdlZCB0aGUgRGVmaW5lVGFnLCBFbXB0eVRhZywgYW5kIFRhZ1V0aWxzIGNsYXNzZXMgdG8gdXNlIHRoZSBuZXcgbWV0aG9kLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICA8ZW0+ZmFjZXMgdGFnbGliLjwvZW0+IEFkZGVkIGVhcmx5IHJlbGVhc2UgdG8gY29udHJpYiBhcmVhLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgIDxlbT5odG1sIHRhZ2xpYi48L2VtPgorICAgICAgIFJlc2V0IHRoZSAncHJvY2Vzc2VkJyBmbGFnIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCB1c2FnZSBvZiB0aGUgdGFnLiBVc2UgYSBsb2NhbCBjb3B5IG9mIHRoZSAnbmFtZScgYXR0cmlidXRlIHRvIGF2b2lkIG1vZGlmeWluZyB0aGUgYXR0cmlidXRlIHZhbHVlIGl0c2VsZi4KKyAgICAgICBGaXhlZCByZWZlcmVuY2VzIHRvIHN0YXRpYyBtZW1iZXJzLgorICAgICAgIEZvciBGcmFtZVRhZyBhbmQgSGlkZGVuVGFnLCBjb25mb3JtIFRMRCB3aXRoIGltcGxlbWVudGF0aW9ucy4KKyAgICAgICBJbiBFcnJvcnNUYWcsIHJlbmRlciBhIHBsYXRmb3JtLWluZGVwZW5kZW50IGxpbmUgZW5kaW5nIGluc3RlYWQgb2YgaGFyZCBjb2RlZCAiXHJcbiIuCisgICAgICAgSW4gSmF2YVNjcmlwdFZhbGlkYXRvclRhZywgbWFrZSB0aGUgbGluZS1lbmQgZ2VuZXJhdGlvbiBwbGF0Zm9ybSBpbmRlcGVuZGVudCBzbyB0aGF0IENhY3R1cyB0ZXN0cyB3b3JrIHByb3Blcmx5LgorICAgICAgIEluIEZvcm1UYWcsIHJlZmFjdG9yZWQgY29kZSBpbnRvIHNtYWxsZXIgcmV1c2FibGUgbWV0aG9kcy4KKyAgICAgICBJbiBSZXdyaXRlVGFnLCBlbmNvZGUgdGhlIGFtcGVyc2FuZCBjaGFyYWN0ZXIgaW4gWEhUTUwgbW9kZSBvbmx5LCBvdGhlcndpc2Ugd3JpdGUgdGhlIGFtcGVyc2FuZCBhcyBpcyBzbyB0aGUgVVJMIHdpbGwgd29yayBpbiBKYXZhU2NyaXB0IHNjcmlwdHMuCisgICAgICAgUmVmYWN0b3JlZCBmb3JtIGJlYW4gaW5pdGlhbGl6YXRpb24gb3V0IG9mIGRvU3RhcnRUYWcoKSBpbnRvIGl0cyBvd24gbWV0aG9kLgorICAgICAgIFJlZmFjdG9yZWQgZG9TdGFydFRhZygpICdpZicgc3RhdGVtZW50IHRvIGF2b2lkIGhhdmluZyBsb25nIG5lc3RlZCAnaWYnIGxvZ2ljLgorICAgICAgIEluIEVycm9yVGFnLCBmaXhlZCBmb3JtYXR0aW5nIGFuZCBkZXByZWNhdGVkIHVudXNlZCBkZWZhdWx0TG9jYWxlIHZhcmlhYmxlLgorICAgICAgIFJlZmFjdG9yZWQgZG9TdGFydFRhZygpIGFuZCBkb0VuZFRhZygpIGludG8gc21hbGxlciBtZXRob2RzLgorICAgICAgIE1vdmVkIHhodG1sIGNoZWNrIHRvIFJlcXVlc3RVdGlscyBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIHRoZSBsb2dpYyBpbiBtYW55IGRpZmZlcmVudCBjbGFzc2VzLgorICAgICAgIEFkZGVkIGxvb2t1cFByb3BlcnR5KCkgbWV0aG9kIHRvIEJhc2VIYW5kbGVyVGFnIGJlY2F1c2UgYm90aCBSYWRpb1RhZyBhbmQgVGV4dGFyZWFUYWcgdXNlZCB0aGUgc2FtZSBjb2RlLgorICAgICAgIFJlZmFjdG9yZWQgVGV4dGFyZWFUYWcgaW50byBzbWFsbGVyIG1ldGhvZHMuCisgICAgICAgSW4gSmF2YVNjcmlwdFZhbGlkYXRvclRhZywgcmVwbGFjZWQgZHVwbGljYXRlZCBjb2RlIHdpdGggY2FsbCB0byBSZXF1ZXN0VXRpbHMucmV0cmlldmVVc2VyTG9jYWxlKCkgYW5kIHNpbXBsaWZpZWQgYW4gJ2lmJyBzdGF0ZW1lbnQuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIDxlbT5sb2dpYyB0YWdsaWIuPC9lbT4KKyAgICAgICAgU2V0ICdpdGVyYXRvcicgdG8gbnVsbCBpbiBkb0VuZFRhZygpIHNvIHRoYXQgd2UgcmVsZWFzZSB0aGUgaXRlcmF0b3IgcmVmZXJlbmNlIGFzIGVhcmx5IGFzIHBvc3NpYmxlLiBXZSBjYW5ub3QgZG8gdGhlIHNhbWUgZm9yICdjb2xsZWN0aW9uJyBzaW5jZSBpdCBpcyBhIHRhZyBhdHRyaWJ1dGUsIGFuZCBuZWVkcyB0byByZW1haW4gdW5jaGFuZ2VkIHRvIGNvbXBseSB3aXRoIHRoZSBKU1Agc3BlYy4KKyAgICAgICAgRG9uJ3QgY3JlYXRlIGVtcHR5IGNvb2tpZXMgYXJyYXkgaWYgbnVsbCwganVzdCBkb24ndCBydW4gdGhlIGxvb3AgYXQgYWxsLgorICAgICAgICBJbiBGb3J3YXJkVGFnLCByZW1vdmUgdW5uZWNlc3NhcnkgdGVzdCBmb3IgbnVsbC4KKworICAgIDwvcD4KKworICAgPHA+CisgICAgICAgPGVtPm5lc3RlZCB0YWJsaWJzLjwvZW0+CisgICAgICAgSW1wcm92ZWQgc3VwcG9ydCBmb3IgVG9tY2F0IDQuMS4xOC4KKyAgICAgICBSZXBsYWNlIEVWQUxfQk9EWV9BR0FJTiB3aXRoIEVWQUxfQk9EWV9UQUcgc28gdGhhdCB0aGUgY29kZSBjb21waWxlcyBhZ2FpbnN0IHRoZSBKU1AgMS4xIEFQSS4KKyAgICAgICBDaGFuZ2VkIHRoZSAmbHQ7bmVzdGVkOmRlZmluZSZndDsgdGFnJ3MgdGVpIGNsYXNzIHRvIHJlZmVyZW5jZSBhIG5ldyBjdXN0b20gdGVpIGNsYXNzIGZvciB0aGUgbmVzdGVkIHRhZ3MuCisgICA8L3A+CisKKyAgICA8cD4KKyAgICAgICAgPGVtPnRpbGVzIHRhZ2xpYi48L2VtPgorICAgICAgICBGaXhlZCByZWZlcmVuY2VzIHRvIHN0YXRpYyBtZW1iZXJzLgorICAgICAgICBEZXByZWNhdGVkIG91dGRhdGVkIFRpbGVzIFRleHRUYWcuCisgICAgICAgIEZvciBJbnNlcnRUYWcsIG9ubHkgaW5jbHVkZSBwYWdlIGlmIGl0J3Mgbm9uLW51bGwuCisgICAgICAgIEZvciBJbnNlclRhZywgcmVtb3ZlIHBhZ2UgY2hlY2sgYmVmb3JlIGluY2x1ZGluZyBmb3IgbW9yZSBpbnZlc3RpZ2F0aW9uLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICA8c3Ryb25nPlRlc3QgcGFja2FnZXM6PC9zdHJvbmc+CisgICAgICAgIEFkZGVkIHNldmVyYWwgbmV3IHRlc3RzIGZvciB0aGUgYmVhbiwgaHRtbCwgYW5kIGxvZ2ljIHRhZ2xpYnMgdG8gdGhlIHN1aXRlIHNldHVwIGF0IHRoZSB0YWlsLWVuZCBvZiBSQzEuCisgICAgICAgIE5vdGU6IFdlIGNhbm5vdCByZXNvbHZlIHJlcXVlc3QuZ2V0U2VydmVyUG9ydCgpIGluIHRoZSBDYWN0dXMgMS40LnggZW52aXJvbm1lbnQsIHNvIGZvciBub3csIG91ciB0ZXN0cyB3aWxsIG9ubHkgcnVuIG9uIENhY3R1cyAxLjMKKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICAgICAgPHN0cm9uZz5UaWxlcyBwYWNrYWdlOjwvc3Ryb25nPgorICAgICAgICBEZXByZWNhdGVkIFRpbGVzVXRpbC5hcHBsaWNhdGlvbkNsYXNzKCkgaW4gZmF2b3Igb2YgUmVxdWVzdFV0aWxzLmFwcGxpY2F0aW9uQ2xhc3MoKQorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICA8c3Ryb25nPlV0aWwgcGFja2FnZTo8L3N0cm9uZz4KKyAgICAgICAgcmV0cmlldmVVc2VyTG9jYWxlIG5vdyB1c2VzIHRoZSByZXF1ZXN0LmdldExvY2FsZSgpIG1ldGhvZCBmb3IgZmluZGluZyB0aGUgdXNlcidzIHByZWZlcnJlZCBsb2NhbGUuCisgICAgICAgIElmIHVzZXIgaGFzIG5vdCBzcGVjaWZpZWQgdGhpcyB3aXRoIEFjY2VwdC1MYW5ndWFnZSBoZWFkZXIsIHRoZSBzZXJ2ZXIgZGVmYXVsdCBsb2NhbGUgaXMgdXNlZC4KKyAgICAgICAgQ2hhbmdlIGVuY29kZVVSTCgpIHRvIG5vdCB1c2UgcmVmbGVjdGlvbiBvbiBldmVyeSBjYWxsLgorICAgICAgICBJbiBSZXF1ZXN0VXRpbHMsIHNpbXBsaWZpZWQgc2VwYXJhdG9yIGxvZ2ljIGluIGNvbXB1dGVVUkwoKS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICAgICAgPHN0cm9uZz5WYWxpZGF0b3IgcGFja2FnZTo8L3N0cm9uZz4KKyAgICAgICAgRGVwcmVjYXRlIGxvZ2dpbmcgbWV0aG9kcyBhbmQgaW5kaWNhdGUgdGhhdCBjb21tb25zLWxvZ2dpbmcgc2hvdWxkIGJlIHVzZWQuCisgICAgICAgIExvZ2ljIHNpbXBsaWZpY2F0aW9uIGFuZCBtaW5vciBmb3JtYXR0aW5nIGZpeGVzIHRvIFJlc291cmNlcyBjbGFzcy4KKworICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICA8c3Ryb25nPmJ1aWxkIGZpbGVzOjwvc3Ryb25nPgorICAgIDwvcD4KKworICAgIDx1bD4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgKGJ1aWxkLnByb3BlcnRpZXMuc2FtcGxlKSBBZGQgYW4gZW50cnkgZm9yIGh0dHAtdW5pdC4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgUmVtb3ZlIGRlcGVuZGVuY3kgb24gQ29tbW9ucyBSZXNvdXJjZXMgZm9yIFN0cnV0cyAxLjEgcmVsZWFzZS4gKFRoaXMgbWlncmF0aW9uIHdpbGwgaGFwcGVuIGxhdGVyKS4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBTdHJ1dHMgYWdhaW5zdCB0aGUgU2VydmxldCAyLjQgYW5kIEpTUCAyLjAgQVBJcywgd2hlcmUgdGhlIEpTUCBjbGFzc2VzIGhhdmUgYmVlbiBwdWxsZWQgb3V0IGludG8gdGhlaXIgb3duIEpBUiBmaWxlIChqc3AuamFyKS4gT24gYW4gZWFybGllciBwbGF0Zm9ybSwgeW91IGNhbiBsZWF2ZSB0aGUgImpzcC5qYXIiIHByb3BlcnR5IHVuc2V0IGFuZCB0aGluZyB3aWxsIGNvbnRpbnVlIHRvIG9wZXJhdGUgYXMgdGhleSBoYXZlIGJlZm9yZS4KKyAgICAgICAgPC9saT4KKworICAgIDwvdWw+CisKKworICAgIDxwPgorICAgICAgICA8c3Ryb25nPkJ1Z3ppbGxhIFByb2JsZW0gUmVwb3J0IGZpeGVzOjwvc3Ryb25nPgorICAgIDwvcD4KKworICAgIDx1bD4KKyAgICAgICAgPGxpPgorICAgICAgICAgICAgRml4ZWQgIzE3MzEyIC0gcmV0cmlldmVVc2VyTG9jYWxlIHRocm93cyBleGNlcHRpb24gd2l0aG91dCBzZXNzaW9ucy4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICBGaXhlZCAjMTcyNTQgLSBJZiBib2R5IHRleHQgaXMgZW1wdHkgYW5kIHRoZXJlJ3Mgbm8gcmVzb3VyY2Uga2V5IHRvIGxvb2t1cCwgZGlzcGxheSBub3RoaW5nIGluIHRoZSBvcHRpb24uCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICAgRml4ZWQgIzE3MzcxLSBUaGUgdGFnIG5vdyB1c2VzIFJlcXVlc3RVdGlscy5yZXRyaWV2ZVVzZXJMb2NhbGUgZm9yIGxvb2tpbmcgdXAgdGhlIGFwcHJvcHJpYXRlIGxvY2FsZS4gVXNpbmcgdGhhdCBtZXRob2QgcHJvdGVjdHMgdXMgZnJvbSBuZWVkbGVzc2x5IGNyZWF0aW5nIGEgc2Vzc2lvbi4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICBGaXhlZCAjMTczNzUgLSBQcm9ibGVtIGluIEVMRXJyb3JzVGFnIGJlY2F1c2UgdGhlICJuYW1lIiBhdHRyaWJ1dGUgb2YgRXJyb3JzVGFnIGhhcyBhIG5vbi1udWxsIGRlZmF1bHQgdmFsdWUuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICBGaXhlZCAjMTc2MjIgLSB2YWxpZGF0b3ItcnVsZXMueG1sIGlzc3Vlcy4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIEZpeGVkICMxNzI5OSAtIFNldCBwYWdlIHZhcmlhYmxlIGZyb20gZHluYSBtYXAgYmVmb3JlIHZhbGlkYXRpbmcuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICBGaXhlZCAjMTc4MzggLSBIZWxwIGRlYnVnIHNwZWNpZmljIHVzZXIgZXJyb3JzIGJ5IHNob3dpbmcgcXVvdGVzIGFyb3VuZCB0aGUga2V5IHRoYXQgaXMgaW4gZXJyb3IgKG1pc3Npbmcgb3IgbWlzcGVsbGVkKS4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIEZpeGVkICMxNzgzMyAtIHZhbGlkYXRlU2hvcnQgYW5kIGlzQWxsRGlnaXRzIGZvciBuZWdhdGl2ZSBudW1iZXJzLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgRml4ZWQgIzE3MzI4IC0gU3luY2hyb25pemVkIGxvYWRMb2NhbGUuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICBGaXhlZCAjMTgwMTggLSBDaGFuZ2VkIGZpZWxkLSogdmFyaWFibGVzIHRvIGNhbWVsIGNhc2UgYW5kIG5vICItIi4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIEZpeGVkICMxNjU0OCAtIHZhbGlkYXRlTWluTGVuZ3RoIGFuZCB2YWxpZGF0ZU1heExlbmd0aCBhcmUgbm93IGluZGVwZW5kZW50IG9mIHRoZSByZXF1aXJlZCBjaGVjay4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgRml4ZWQgIzE3Mzg5IC0gU3BsaWNlIGluIHRoZSBJMThuRmFjdG9yeVNldC5jYWxjdWxhdGVQb3N0aXhlcyBmcm9tIHRoZSBhdHRhY2htZW50LCByZWJ1aWxkLCBhbmQgcmFuIHRoZSB1bml0IHRlc3RzIHN1Y2Nlc3NmdWxseS4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgRml4ZWQgIzE3MjczIC0gUmVtb3ZlZCBleHRyYSByZXR1cm4gc3RhdGVtZW50IChSZXF1ZXN0VXRpbHMpLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICBGaXhlZCAjMTc1OTIgLSBUYWcgc2hvdWxkIHN1cHBvcnQgYSAibmFrZWQiIGNvbGxlY3Rpb24gdGhhdCBpcyBub3QgYSBwcm9wZXJ0eSBvZiBhIGJlYW4uCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgIEZpeGVkICMxNzU5MiAtIE1hZGUgInByb3BlcnR5IiBhdHRyaWJ1dGUgb2YgIm9wdGlvbnNDb2xsZWN0aW9uIiB0YWcgYmUgbm90IHJlcXVpcmVkLCB0byBtYXRjaCBzYW1lIGNoYW5nZSBtYWRlIGZvciAjMTc1OTIgaW4gYmFzZSB0YWcuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgIEZpeGVkICMxNzU2MiAtIENoYW5nZSB0aGUgSW5zZXJ0VGFnIHRvIGxldCBpdCB1c2UgUGFnZUNvbnRleHQuaW5jbHVkZSgpIGluc3RlYWQgb2YgUmVxdWVzdERpc3BhdGNoZXIuaW5jbHVkZSgpLiBXZSBhcmUgbm8gYmFjayB0byB0aGUgc2FtZSBtZWNoYW5pc20gdXNlZCBpbiB0aGUgMS4xYjMgcmVsZWFzZS4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgRml4ZWQgIzE4MTg2IC0gVXNlIHRlbXAgdmFyaWFibGUgaW5zdGVhZCBvZiBvdmVyd3JpdGluZyB0YWcgYXR0cmlidXRlIHZhcmlhYmxlLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICBGaXhlZCAjMTgzOTQgLSBDaGFuZ2VkIGVycm9yIHRvIGluZm8gbG9nIGlmIERlZmluaXRpb25zRmFjdG9yeSBpcyBub3Qgc3VwcGxpZWQuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgIEZpeGVkICMxODUzOCAtIENoYW5nZWQgc2hvcnRuYW1lIHRvICJ0aWxlcyIuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgIEZpeGVkICMxODU5MSAtIEJyYWNlcyBwbGFjZW1lbnQgaW4gbWVzc2FnZSgpLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICBGaXhlZCAjMTgwMTggLSBEb24ndCBvdXRwdXQgcmVxdWlyZWRpZiBmaWVsZCogamF2YXNjcmlwdCB2YXJpYWJsZXMgYmVjYXVzZSB0aGV5J3JlIG5vdCB1c2VkIGFuZCBicmVhayBvdGhlciB2YWxpZGF0aW9ucy4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgRml4ZWQgIzE4Nzk0IC1DaGVjayBTZXJ2bGV0Q29udGV4dCBmb3IgTW9kdWxlQ29uZmlnIGluc3RlYWQgb2YgcmVxdWVzdC4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgRml4ZWQgIzE4ODY0IC0gQ2hhbmdlZCBDbGFzcy1QYXRoIHRvIGNvbmZvcm0gdG8gamFyIHNwZWMuICBUaGUgcHJldmlvdXMgcGF0Y2ggZml4aW5nIGEgYnVnIGluICBXZWJMb2dpYyBjYXVzZWQgd2FybmluZ3MgaW4gUmVzaW4uCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgIEZpeGVkICMxODk5MSAtIEFsbG93IG1lc3NhZ2VzIG9iamVjdCBwYXNzZWQgdG8gYWRkKEFjdGlvbk1lc3NhZ2VzKSB0byBiZSBudWxsLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICBGaXhlZCAjMTkwNDAgLSAgQWRkZWQgbnVsbCBjaGVja3MgYmFjayB0byBBY3Rpb25TZXJ2bGV0LgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICBGaXhlZCAjMTkxNTcgLSBJbXBsZW1lbnQgU2VyaWFsaXphYmxlIGluIE5lc3RlZFJlZmVyZW5jZS4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgRml4ZWQgIzE4ODY5IC0gQWRkZWQgZGlzcGxheS1uYW1lIHRvIHdlYi54bWwgZmlsZXMuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgRml4ZWQgIzE5MjIzIC0gU3luY2hyb25pemVkIHRva2VuIG1ldGhvZHMgZm9yIFBSLiAgUG9zdCAxLjEgdGhlc2UgbWV0aG9kcyBzaG91bGQgYmUgbW92ZWQgdG8gc29tZSBraW5kIG9mIFRva2VuUHJvY2Vzc29yIGNsYXNzIGZvciByZXVzYWJpbGl0eSBieSBvdGhlciBjb21wb25lbnRzIHN1Y2ggYXMgdGhlIFJlcXVlc3RQcm9jZXNzb3IgKCMxNjc0MykuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgIEZpeGVkICMxOTIzNiAtICBBZGRlZCAiYWN0aW9uIiBhdHRyaWJ1dGUgdG8gImh0bWwtZWw6ZnJhbWUiIHRhZy4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgRml4ZWQgIzExOTMyIC0gRmFjdG9yZWQgY29tbW9uIGNvZGUgb3V0IG9mIG1lc3NhZ2UoKSBhbmQgcHJlc2VudCgpIGludG8gYSBuZXcgcHJpdmF0ZSBtZXRob2QgcmV0cmlldmVNZXNzYWdlUmVzb3VyY2VzLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICBGaXhlZCAjMTE5MjIgLSBNb3ZlZCBBY3Rpb24ncyB0b2tlbiBtZXRob2RzIHRvIHRoaXMgbmV3IGNsYXNzIHRvIGZpeCBzeW5jaHJvbml6YXRpb24gaXNzdWVzIGFuZCBhbGxvdyBBY3Rpb24gdG8gYmUgbW9yZSBmb2N1c2VkLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICBGaXhlZCAjMTk1OTQgLSBGaXhlZCBtaW5sZW5ndGggamF2YXNjcmlwdCBmb3IgUFIuICBBbHNvLCByZW1vdmVkCisgIHBhc3N3b3JkIGZpZWxkIGNoZWNraW5nIGZyb20gdmFsaWRhdGVNYXNrLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgIEZpeGVkICMxOTc3MyAtIEVtcHR5VGFnIGFuZCBhZGRlZCB0ZXN0IHRvIGV4ZXJjaXNlLXRhZ2xpYiB3ZWJhcHAuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgRml4ZWQgIzE5ODM1IC0gQWRkIGNoZWNrIGFnYWluc3QgLTEgdG8gbWF4U2l6ZS4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICBGaXhlZCAjMjAwMzQgLSBDYWxsIHJlbGVhc2VJbnRlcm5hbCgpIGluIHJlbGVhc2UoKSBzbyBpZiBlcnJvciBvY2N1cnMgYmV0d2VlbiBiZWdpbi9lbmQgb2YgdGFnIG5leHQgdXNlci9yZXF1ZXN0IHdpbGwgbm90IGJlIHdvcmtpbmcgd2l0aCBvbGQgcGFyYW1ldGVycy4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICBGaXhlZCAjMjA0NTUgLSB2YWxpZGF0ZVJlcXVpcmVkSWYoKSBmYWlscyBvbiBTdHJpbmdzIG9mIHdoaXRlc3BhY2UuCisgICAgICAgIDwvbGk+CisgICAgPC91bD4KKworCis8L3NlY3Rpb24+CisKKyAgPHNlY3Rpb24gbmFtZT0iSW50cm9kdWN0aW9uIiBocmVmPSJJbnRyb2R1Y3Rpb24iPgorCisgICAgPHA+VGhlIHJlbWFpbmRlciBvZiB0aGlzIGRvY3VtZW50IGNvbnRhaW5zIHRoZSByZWxlYXNlIG5vdGVzIGZvcgorICAgIDxzdHJvbmc+MS4xIFJlbGVhc2UgQ2FuZGlkYXRlIDI8L3N0cm9uZz4gYnVpbGQgb2YgdGhlIFN0cnV0cyBGcmFtZXdvcmssCisgICAgYW5kIGNvdmVycyBjaGFuZ2VzIHRoYXQgaGF2ZSB0YWtlbiBwbGFjZSBzaW5jZQorICAgIDxhIGhyZWY9InJlbGVhc2Utbm90ZXMtMS4wLjIuaHRtbCI+VmVyc2lvbiAxLjAuMjwvYT4KKyAgICB3YXMgcmVsZWFzZWQuICBUaGUgZm9sbG93aW5nIHNlY3Rpb25zIGNvdmVyCisgICAgPGEgaHJlZj0iI05ldyI+TmV3IEZlYXR1cmVzPC9hPiBhbmQgPGEgaHJlZj0iI0NoYW5nZXMiPkNoYW5nZXM8L2E+CisgICAgdG8gU3RydXRzLjwvcD4KKworICA8L3NlY3Rpb24+CisKKworICA8c2VjdGlvbiBuYW1lPSJXaGF0J3MgSW5jbHVkZWQ/IiBocmVmPSJJbmNsdWRlZCI+CisKKyAgICA8cD5UaGUgYmluYXJ5IGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHJlbGVhc2UgaW5jbHVkZXMgdGhlIGZvbGxvd2luZworICAgIGZpbGVzIHJlbGV2YW50IHRvIFN0cnV0czo8L3A+CisgICAgPHVsPgorICAgIDxsaT48Y29kZT5JTlNUQUxMPC9jb2RlPiAtIEJyaWVmIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMuICBTZWUKKyAgICAgICAgdGhlIDxjb2RlPlN0cnV0cyBEb2N1bWVudGF0aW9uIEFwcGxpY2F0aW9uPC9jb2RlPiwgb3Igb25saW5lIGF0CisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzLyI+aHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvPC9hPiwKKyAgICAgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9saT4KKyAgICA8bGk+PGNvZGU+TElDRU5TRTwvY29kZT4gLSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gbGljZW5zZSB0aGF0CisgICAgICAgIGRlZmluZXMgdGhlIHRlcm1zIHVuZGVyIHdoaWNoIHlvdSBjYW4gdXNlIFN0cnV0cyAoYW5kIG90aGVyIHNvZnR3YXJlCisgICAgICAgIGxpY2Vuc2VkIGJ5IEFwYWNoZSkuPC9saT4KKyAgICA8bGk+PGNvZGU+UkVBRE1FPC9jb2RlPiAtIEEgYnJpZWYgaW50cm9kdWN0aW9uIHRvIFN0cnV0cy48L2xpPgorICAgIDxsaT48Y29kZT5saWIvPC9jb2RlPiAtIERpcmVjdG9yeSBjb250YWluaW5nIGZpbGVzIHlvdSB3aWxsIG5lZWQgaW4KKyAgICAgICAgeW91ciBvd24gYXBwbGljYXRpb25zLiAgVGhlIGluZGl2aWR1YWwgZmlsZXMgb2YgaW50ZXJlc3QgYXJlOgorICAgICAgICA8dWw+CisgICAgICAgIDxsaT48Y29kZT5jb21tb25zLSouamFyPC9jb2RlPiAtIFJlbGVhc2UgcGFja2FnZXMgZnJvbSB0aGUKKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy8iPkpha2FydGEgQ29tbW9ucworICAgICAgICAgICAgUHJvamVjdDwvYT4gdGhhdCBTdHJ1dHMgcmVsaWVzIG9uLiAgWW91IGFyZSB3ZWxjb21lIHRvIHVzZSB0aGVzZQorICAgICAgICAgICAgY2xhc3NlcyBpbiB5b3VyIG93biBhcHBsaWNhdGlvbnMuICBUaGVzZSBKQVIgZmlsZXMgc2hvdWxkIGJlCisgICAgICAgICAgICBjb3BpZWQgaW50byB0aGUgPGNvZGU+L1dFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3Rvcnkgb2YKKyAgICAgICAgICAgIHlvdXIgd2ViIGFwcGxpY2F0aW9uLiBTZWUgYmVsb3cgZm9yIHRoZSB2ZXJzaW9uIG9mIGVhY2gKKyAgICAgICAgICAgIENvbW1vbnMgbGlicmFyeSB0aGF0IGlzIGluY2x1ZGVkLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMuamFyPC9jb2RlPiAtIEpBUiBmaWxlIHRoYXQgY29udGFpbnMgdGhlIGNvbXBpbGVkCisgICAgICAgICAgICBKYXZhIGNsYXNzZXMgb2YgU3RydXRzLiAgWW91IG11c3QKKyAgICAgICAgICAgIHBsYWNlIHRoaXMgZmlsZSBpbiB0aGUgPGNvZGU+L1dFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3Rvcnkgb2YKKyAgICAgICAgICAgIHlvdXIgd2ViIGFwcGxpY2F0aW9uLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMteHh4eHgudGxkPC9jb2RlPiAtIFRoZSB0YWcgbGlicmFyeSBkZXNjcmlwdG9yIGZpbGVzCisgICAgICAgICAgICBmb3IgdGhlIFN0cnV0cyAxLjEgdGFnIGxpYnJhcmllcyAoYmVhbiwgaHRtbCwgbG9naWMsIGFuZAorICAgICAgICAgICAgdGVtcGxhdGUpLiAgWW91IG11c3QgcGxhY2UgdGhlc2UgZmlsZXMgaW4gdGhlIDxjb2RlPi9XRUItSU5GPC9jb2RlPgorICAgICAgICAgICAgZGlyZWN0b3J5IG9mIHlvdXIgd2ViIGFwcGxpY2F0aW9uLCBhbmQgcmVmZXJlbmNlIHRoZW0gd2l0aAorICAgICAgICAgICAgYXBwcm9wcmlhdGUgPGNvZGU+Jmx0O3RhZ2xpYiZndDs8L2NvZGU+IGRpcmVjdGl2ZXMgaW4geW91cgorICAgICAgICAgICAgd2ViLnhtbCBmaWxlLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5qZGJjMl8wLXN0ZGV4dC5qYXI8L2NvZGU+IC0gVGhlIEpEQkMgMi4wIE9wdGlvbmFsIFBhY2thZ2UKKyAgICAgICAgICAgIEFQSSBjbGFzc2VzIChwYWNrYWdlIDxjb2RlPmphdmF4LnNxbDwvY29kZT4pLiAgWW91IHdpbGwgbmVlZCB0bworICAgICAgICAgICAgaW5jbHVkZSB0aGlzIGZpbGUgaW4gdGhlIDxjb2RlPi9XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5CisgICAgICAgICAgICBvZiB5b3VyIGFwcGxpY2F0aW9uLCBpZiBpdCBpcyBub3QgYWxyZWFkeSBtYWRlIHZpc2libGUgdG8gd2ViCisgICAgICAgICAgICBhcHBsaWNhdGlvbnMgYnkgeW91ciBzZXJ2bGV0IGNvbnRhaW5lci48L2xpPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLWNvbmZpZ18xXzEuZHRkPC9jb2RlPiAtIFRoZSBkb2N1bWVudCB0eXBlIGRlc2NyaXB0b3IKKyAgICAgICAgICAgIChEVEQpIGZvciB0aGUgU3RydXRzIDEuMSBjb25maWd1cmF0aW9uIGZpbGUgKHdoaWNoIGlzIHR5cGljYWxseSBuYW1lZAorICAgICAgICAgICAgPGNvZGU+L1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWw8L2NvZGU+KS4gIFlvdXIgY29uZmlndXJhdGlvbiBmaWxlCisgICAgICAgICAgICB3aWxsIGJlIHZhbGlkYXRlZCBhZ2FpbnN0IGFuIGludGVybmFsIGNvcHkgb2YgdGhpcyBEVEQgLS0gdGhpcworICAgICAgICAgICAgY29weSBpcyBhdmFpbGFibGUgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMtY29uZmlnXzFfMC5kdGQ8L2NvZGU+IC0gVGhlIGRvY3VtZW50IHR5cGUgZGVzY3JpcHRvcgorICAgICAgICAgICAgKERURCkgZm9yIHRoZSBTdHJ1dHMgMS4wIGNvbmZpZ3VyYXRpb24gZmlsZSAod2hpY2ggaXMgdHlwaWNhbGx5IG5hbWVkCisgICAgICAgICAgICA8Y29kZT4vV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4pLiAgWW91ciBjb25maWd1cmF0aW9uIGZpbGUKKyAgICAgICAgICAgIHdpbGwgYmUgdmFsaWRhdGVkIGFnYWluc3QgYW4gaW50ZXJuYWwgY29weSBvZiB0aGlzIERURCAtLSB0aGlzCisgICAgICAgICAgICBjb3B5IGlzIGF2YWlsYWJsZSBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPndlYi1hcHBfMl8yLmR0ZDwvY29kZT4gLSBUaGUgZG9jdW1lbnQgdHlwZSBkZXNjcmlwdG9yIChEVEQpCisgICAgICAgICAgICBmb3Igd2ViLnhtbCBmaWxlcyBjb25mb3JtaW5nIHRvIHRoZSBTZXJ2bGV0IDIuMiBzcGVjaWZpY2F0aW9uLgorICAgICAgICAgICAgVGhpcyBjb3B5IGlzIGZvciByZWZlcmVuY2UgcHVycG9zZXMgb25seS48L2xpPgorICAgICAgICA8bGk+PGNvZGU+d2ViLWFwcF8yXzMuZHRkPC9jb2RlPiAtIFRoZSBkb2N1bWVudCB0eXBlIGRlc2NyaXB0b3IgKERURCkKKyAgICAgICAgICAgIGZvciB3ZWIueG1sIGZpbGVzIGNvbmZvcm1pbmcgdG8gdGhlIFNlcnZsZXQgMi4zIHNwZWNpZmljYXRpb24uCisgICAgICAgICAgICBUaGlzIGNvcHkgaXMgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDwvdWw+PC9saT4KKyAgICA8bGk+PGNvZGU+d2ViYXBwcy88L2NvZGU+IC0gV2ViIEFwcGxpY2F0aW9uIEFyY2hpdmUgKFdBUikgZmlsZXMgZm9yIHRoZQorICAgICAgICB3ZWIgYXBwbGljYXRpb25zIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggU3RydXRzLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgSmFrYXJ0YSBDb21tb25zIGxpYnJhcmllcyBhcmUgaW5jbHVkZWQgd2l0aCB0aGlzIHJlbGVhc2UKKyAgICBvZiBTdHJ1dHM6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Q29tbW9ucyBCZWFuVXRpbHMgMS42LjE8L2xpPgorICAgIDxsaT5Db21tb25zIENvbGxlY3Rpb25zIDIuMTwvbGk+CisgICAgPGxpPkNvbW1vbnMgRGlnZXN0ZXIgMS41PC9saT4KKyAgICA8bGk+Q29tbW9ucyBGaWxlVXBsb2FkIDEuMCBSQzE8L2xpPgorICAgIDxsaT5Db21tb25zIExhbmcgMS4wLjE8L2xpPgorICAgIDxsaT5Db21tb25zIExvZ2dpbmcgMS4wLjM8L2xpPgorICAgIDxsaT5Db21tb25zIFZhbGlkYXRvciAxLjAuMjwvbGk+CisgICAgPC91bD4KKworICA8L3NlY3Rpb24+CisKKyAgPHNlY3Rpb24gbmFtZT0iV2hhdCdzIE5ldz8iIGhyZWY9Ik5ldyI+CisKKyAgICA8cD5Gb2xsb3dpbmcgYXJlIGhpZ2hsaWdodHMgb2YgdGhlIG5ldyBmZWF0dXJlcy4gSW4gdGhlIG5leHQgc2VjdGlvbiwgd2UKKyAgICBwcm92aWRlIGxpbmtzIHRvIHRoZSBKYXZhRG9jcyBmb3IgdGhlIGFmZmVjdGVkIGNsYXNzZXMuPC9wPgorCisgICAgPHA+PHN0cm9uZz5OZXcgQ29uZmlndXJhdGlvbiBEVEQ8L3N0cm9uZz48L3A+CisgICAgPHA+IFRoZSBTdHJ1dHMgQ29uZmlndXJhdGlvbiAxLjAgRFREIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgdGhlCisgICAgPGNvZGU+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvZHRkcy9zdHJ1dHMtY29uZmlnXzFfMS5kdGQiPnN0cnV0cy1jb25maWdfMV8xLmR0ZDwvYT48L2NvZGU+LgorICAgIEluIHRoZSBTdHJ1dHMgMS4xIHJlbGVhc2UsIGV4aXN0aW5nIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGVzIGNhbiBiZQorICAgIGxvYWRlZCB1c2luZyBlaXRoZXIgRFREIHZlcnNpb24uCisgICAgPC9wPgorCisgICAgPHA+PHN0cm9uZz5OZXcgRGVwZW5kZW5jaWVzIG9uIENvbW1vbnMgcGFja2FnZXM8L3N0cm9uZz48L3A+CisgICAgPHA+U2V2ZXJhbCBjb21wb25lbnRzIG9mIFN0cnV0cyAxLjAgaGF2ZSBiZWVuIGZvdW5kIHRvIGJlIHVzZWZ1bCBpbgorICAgIGdlbmVyYWwgSmF2YSBkZXZlbG9wbWVudCAoYW5kIG5vdCBqdXN0IHVzZWZ1bCBmb3IgYnVpbGRpbmcgU3RydXRzLWJhc2VkCisgICAgd2ViIGFwcGxpY2F0aW9ucyksIGFuZCBoYXZlIGJlZW4gbWlncmF0ZWQgaW50byB0aGUKKyAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvIj5KYWthcnRhIENvbW1vbnMgUHJvamVjdDwvYT4uCisgICAgQXMgYSByZXN1bHQsIHRoaXMgcmVsZWFzZSBvZiBTdHJ1dHMgaGFzIGJlZW4gbW9kaWZpZWQKKyAgICB0byByZWx5IG9uIHRoZSBDb21tb25zIHBhY2thZ2VzIGNvbnRhaW5pbmcgdGhlc2UgY2xhc3NlcywgcmF0aGVyIHRoYW4gdGhlCisgICAgU3RydXRzIGludGVybmFsIHZlcnNpb25zLiAgSW4gbmVhcmx5IGV2ZXJ5IGNhc2UsIHRoaXMgaW52b2x2ZWQgY2hhbmdpbmcKKyAgICBvbmx5IHRoZSA8Y29kZT5pbXBvcnQ8L2NvZGU+IHN0YXRlbWVudHMgYXQgdGhlIHRvcCBvZiB0aGUgY2xhc3Nlcy4gIEFueQorICAgIG9mIHlvdXIgYXBwbGljYXRpb25zIHRoYXQgdXRpbGl6ZSB0aGVzZSBjbGFzc2VzIHdpbGwgbmVlZCB0byBiZSBtb2RpZmllZCBpbgorICAgIHRoZSBzYW1lIHdheS4gIDwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIENvbW1vbnMgcGFja2FnZXMgY29udGFpbiB0aGUgcmVwbGFjZW1lbnRzIGZvciB0aGUKKyAgICBjb3JyZXNwb25kaW5nIFN0cnV0cyAxLjAgY2xhc3Nlczo8L3A+CisgICAgPHVsPgorICAgIDxsaT48c3Ryb25nPkJlYW5VdGlscyBQYWNrYWdlPC9zdHJvbmc+CisgICAgICAgIFs8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvYmVhbnV0aWxzLmh0bWwiPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHM8L2NvZGU+PC9hPl0gLQorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlscy5CZWFuVXRpbHM8L2NvZGU+LAorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlscy5Db252ZXJ0VXRpbHM8L2NvZGU+LCBhbmQKKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbHMuUHJvcGVydHlVdGlsczwvY29kZT4uPC9saT4KKyAgICA8bGk+PHN0cm9uZz5Db2xsZWN0aW9ucyBQYWNrYWdlPC9zdHJvbmc+CisgICAgICAgIFs8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvY29sbGVjdGlvbnMuaHRtbCI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmNvbGxlY3Rpb25zPC9jb2RlPjwvYT5dICAtCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuQXJyYXlTdGFjazwvY29kZT4sCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdEFycmF5TGlzdDwvY29kZT4sCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdEhhc2hNYXA8L2NvZGU+LAorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RUcmVlTWFwPC9jb2RlPi48L2xpPgorICAgIDxsaT48c3Ryb25nPkRpZ2VzdGVyIFBhY2thZ2U8L3N0cm9uZz4gLQorICAgICAgICBbPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2RpZ2VzdGVyLmh0bWwiPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3RlcjwvY29kZT48L2E+XSAtCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLio8L2NvZGU+LjwvbGk+CisgICAgPC91bD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIENvbW1vbnMgcGFja2FnZXMgYXJlIGFsc28gbm93IHVzZWQgYnkgdmFyaW91cyBjb21wb25lbnRzCisgICAgb2YgdGhlIFN0cnV0cyBmcmFtZXdvcms6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PHN0cm9uZz5GaWxlVXBsb2FkIFBhY2thZ2U8L3N0cm9uZz4KKyAgICBbPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2ZpbGV1cGxvYWQvIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuZmlsZXVwbG9hZDwvY29kZT48L2E+XTwvbGk+CisgICAgPGxpPjxzdHJvbmc+TG9nZ2luZyBQYWNrYWdlPC9zdHJvbmc+CisgICAgWzxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9sb2dnaW5nLmh0bWwiPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nPC9jb2RlPjwvYT5dPC9saT4KKyAgICA8bGk+PHN0cm9uZz5WYWxpZGF0b3IgUGFja2FnZTwvc3Ryb25nPgorICAgIFs8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvdmFsaWRhdG9yLyI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvcjwvY29kZT48L2E+XTwvbGk+CisgICAgPC91bD4KKworCisgICAgPHA+PHN0cm9uZz5OT1RFISBYTUwgUGFyc2VyIFByZXJlcXVpc2l0ZSBVcGRhdGVkPC9zdHJvbmc+PC9wPgorCisgICAgPHA+U3RydXRzIG5vdyBkZXBlbmRzIG9uIGFuIFhNTCBwYXJzZXIgdGhhdCBjb25mb3JtcyB0byB0aGUgSkFYUC8xLjEKKyAgICAocmF0aGVyIHRoYW4gSkFYUC8xLjApIEFQSXMuIFBhcnNlcnMga25vd24gdG8gd29yayBpbmNsdWRlIHRoZSBKQVhQLzEuMQorICAgIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiwgYW5kIFhlcmNlcyAxLjMuMS48L3A+CisKKyAgICA8cD48c3Ryb25nPlNPVVJDRSBERVZFTE9QRVJTIE5PVEUhIEFudCBQcmVyZXF1aXNpdGUgVXBkYXRlZDwvc3Ryb25nPjwvcD4KKyAgICA8cD5UbyBidWlsZCBTdHJ1dHMgZnJvbSBzb3VyY2UgQW50IDEuNCBvciBsYXRlciBpcyBub3cgcmVxdWlyZWQuIFRoaXMKKyAgICBkb2VzIG5vdCBhZmZlY3QgZGV2ZWxvcGVycyB0aGF0IHVzZSBTdHJ1dHMgZnJvbSB0aGUgYmluYXJ5IGRpc3RyaWJ1dGlvbi48L3A+CisKKyAgICA8cD48c3Ryb25nPlN0cnV0cyBWYWxpZGF0b3IgSW50ZWdyYXRpb248L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIG5ldyBDb21tb25zIFZhbGlkYXRvciBpcyBub3cgaW50ZWdyYXRlZCB3aXRoIFN0cnV0cyBhbmQgZXhwb3NlZAorICAgIHRocm91Z2ggdGhlIG5ldyBWYWxpZGF0b3IgcGFja2FnZS48L3A+CisKKyAgICA8cD48c3Ryb25nPlRpbGVzIC0gQW4gYWR2YW5jZWQgdGVtcGxhdGluZyB0YWdsaWI8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIFRpbGVzIEpTUCBhc3NlbWJseSBmcmFtZXdvcmsgaGFzIGJlZW4gaW50ZWdyYXRlZCB3aXRoIFN0cnV0cy48L3A+CisKKyAgICA8cD48c3Ryb25nPk5lc3RlZCAtIEFuIHZlcnkgY29vbCB0YWdsaWIgZXh0ZW5zaW9uPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBOZXN0ZWQgdGFnbGliIGlzIGJ1bmRsZWQgd2l0aCBTdHJ1dHMgYW5kIGVuaGFuY2VzIHRoZSBmdW5jdGlvbmFsaXR5CisgICAgIG9mIHRoZSBleGlzdGluZyBTdHJ1dHMgdGFncy48L3A+CisKKyAgICA8cD48c3Ryb25nPk5ldyBFeGFtcGxlIEFwcGxpY2F0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5OZXcgZXhhbXBsZSBhcHBsaWNhdGlvbnMgZm9yIHRoZSBWYWxpZGF0b3IgYW5kIFRpbGVzIGFyZSBub3cgcGFydAorICAgIG9mIHRoZSBTdHJ1dHMgZGlzdHJpYnV0aW9uLjwvcD4KKworICAgIDxwPjxzdHJvbmc+TmV3IENvbnRyaWIgZGlyZWN0b3J5IGZvciBvcHRpb25hbCBjb21wb25lbnRzPC9zdHJvbmc+PC9wPgorICAgIDxwPkEgbmV3IGRpcmVjdG9yeSAoPGNvZGU+Y29udHJpYjwvY29kZT4pIGluIHRoZSBDVlMgc291cmNlIHJlcG9zaXRvcnkgaGFzCisgICAgYmVlbiBhZGRlZCB0byBhY2N1bXVsYXRlIFN0cnV0cyBhZGQtb24gZXh0ZW5zaW9ucyB0aGF0IGFyZSBnZW5lcmFsbHkKKyAgICB1c2VmdWwgYnV0IGhhdmUgbm90IHlldCBiZWVuIGludGVncmF0ZWQgaW50byB0aGUgc3RhbmRhcmQgY29kZSBiYXNlLjwvcD4KKworICAgIDx1bD4KKyAgICA8bGk+U2NhZmZvbGQgLSBBbiBleHRlbnNpb24gb2YgdGhlIENvbW1vbnMgU2NhZmZvbGQgdG9vbGtpdCBvZiByZXVzYWJsZQorICAgIGNsYXNzZXMgZm9yIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMuPC9saT4KKyAgICA8bGk+U3RydXRzLUVMIC0gVGhlIG9wdGlvbmFsIFN0cnV0cy1FTCB0YWdsaWIgbWFrZXMgaXQgZWFzeSB0byB1c2UgU3RydXRzCisgICAgd2l0aCBKU1RMLiAoQ29udGFpbmVyIHdpdGggU2VydmxldCAyLjMgc3VwcG9ydCByZXF1aXJlZC4pPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+VGhlIHNvdXJjZSBmb3IgdGhlc2UgY29tcG9uZW50cyBpcyBhdmFpbGFibGUgaW4gdGhlIFN0cnV0cyBzb3VyY2UKKyAgICBkaXN0cmlidXRpb24uIEJpbmFyeSBkaXN0cmlidXRpb25zIG1heSBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIGluIHRoZSBTdHJ1dHMKKyAgICBkb3dubG9hZCBhcmVhLiBBcyBvcHRpb25hbCBjb21wb25lbnRzLCB0aGVzZSBwcm9kdWN0cyBoYXZlIHRoZWlyIG93bgorICAgIHJlbGVhc2UgY3ljbGVzLjwvcD4KKworICAgIDxwPjxzdHJvbmc+QWN0aW9uIFBhY2thZ2UgQWRkaXRpb25zPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgYmFzaWMgY29udHJvbGxlcgorICAgIGZyYW1ld29yayBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9jb2RlPl06PC9wPgorICAgIDx1bD4KKyAgICA8bGk+VGhlIEFjdGlvblNlcnZsZXQgbm93IHByb3ZpZGVzIHN1cHBvcnQgZm9yIG1vZHVsYXIgU3RydXRzIGFwcGxpY2F0aW9ucyBhbmQKKyAgICBzcG9ydHMgc2V2ZXJhbCBuZXcgZXh0ZW5zaW9uIHBvaW50cy48L2xpPgorICAgIDxsaT5UaGUgbmV3IDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPiBjbGFzcyB3aWxsIHN1cHBvcnQgYSBzdXBlcnNldCBvZgorICAgICAgICB0aGUgY2FwYWJpbGl0aWVzIG9mIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4sIGFuZCB3aWxsIGJlIHVzZWZ1bCBhcworICAgICAgICBhIGNvbGxlY3Rpb24gb2YgZ2VuZXJhbCBwdXJwb3NlIG1lc3NhZ2VzLCBub3QganVzdCBlcnJvcnMuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5VcGxvYWQgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBmaWxlIHVwbG9hZCBjbGFzc2VzCisgICAgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvY29kZT5dOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjo8L2NvZGU+IE5ldyBjbGFzcyB0aGF0IGltcGxlbWVudHMKKyAgICAgICAgZmlsZSB1cGxvYWQgdXNpbmcgdGhlIEpha2FydGEgQ29tbW9ucyBGaWxlVXBsb2FkIHBhY2thZ2UuIFRoaXMgaXMgbm93CisgICAgICAgIHRoZSBkZWZhdWx0IGZpbGUgdXBsb2FkIGltcGxlbWVudGF0aW9uIGZvciBTdHJ1dHMuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5VdGlsIFBhY2thZ2UgQWRkaXRpb25zPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgdXRpbGl0eSBjbGFzc2VzCisgICAgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT48Y29kZT5Mb2NhbFN0cmluZ3M6PC9jb2RlPiBDb3JyZWN0IG1lc3NhZ2UgcmVnYXJkaW5nIHJlcGxhY2VhYmxlIHBhcmFtZXRlciBzbyB0aGF0IGl0IGRvZXMgbm90IGFwcGVuZCBhbiBleHRyYW5lb3VzIGNoYXJhY3Rlci48L2xpPgorICAgIDxsaT48Y29kZT5MYWJlbFZhbHVlQmVhbjo8L2NvZGU+IE5ldyBjbGFzcyB0aGF0IGRlZmluZXMgYSBjb2xsZWN0aW9uIG9mIG5hbWUvdmFsdWUgcGFpcnMgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIHRoZSAmbHQ7aHRtbDpvcHRpb25zJmd0OyBhbmQgJmx0O2h0bWw6b3B0aW9uc0NvbGxlY3Rpb24mZ3Q7IHRhZ3MsIGFuZCBlbHNld2hlcmUuPC9saT4KKyAgICA8bGk+PGNvZGU+TWVzc2FnZVJlc291cmNlczo8L2NvZGU+IEVzY2FwZSBhbnkgc2luZ2xlIHF1b3RlIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gdGhlIHNwZWNpZmllZCBtZXNzYWdlIHN0cmluZy48L2xpPgorICAgIDxsaT48Y29kZT5jb21wdXRlUGFyYW1ldGVyczo8L2NvZGU+IEFsbG93IGEgdHJhbnNhY3Rpb24gdG9rZW4gdG8gYmUgdGhlIG9ubHkgcGFyYW1ldGVyLjwvbGk+CisgICAgPGxpPjxjb2RlPlJlcXVlc3RVdGlsczo8L2NvZGU+IENoYW5nZSB0byBlbmNvZGUgYW1wZXJzYW5kcyB3aGVuIGJ1aWxkaW5nIGEgcXVlcnkgc3RyaW5nLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+QmVhbiBUYWdsaWIgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtYmVhbjwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeQorICAgIFs8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvY29kZT5dOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPiZsdDtiZWFuOndyaXRlPjwvY29kZT46IEFkZCBmb3JtYXQsIGxvY2FsZSBhbmQgYnVuZGxlIGF0dHJpYnV0ZXMgdG8gc3VwcG9ydCBmb3JtYXR0aW5nIHZhbHVlcyBhY2NvcmRpbmcgdG8gY3VycmVudAorICAgIHVzZXIgbG9jYWxlLCBmb3JtYXQgc3RyaW5nIGZyb20gYXR0cmlidXRlIG9yIGZvcm1hdCBzdHJpbmcgZnJvbSBzdHJpbmcgcmVzb3VyY2VzLjwvbGk+CisgICAgPGxpPjxjb2RlPiZsdDtiZWFuOmNvb2tpZT4sICZsdDtiZWFuOmhlYWRlcj4sIG9yICZsdDtiZWFuOnBhcmFtZXRlcj46PC9jb2RlPiBDb3JyZWN0IHRoZSBnZW5lcmF0ZWQgc2NyaXB0aW5nIHZhcmlhYmxlIHR5cGUgd2hlbiB0YWcgaXMgdXNlZCB3aXRoIHRoZSAibXVsdGlwbGUiIGF0dHJpYnV0ZS48L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7YmVhbjptZXNzYWdlJmd0Ozo8L2NvZGU+IEFkZGVkIDxjb2RlPm5hbWU8L2NvZGU+LCA8Y29kZT5wcm9wZXJ0eTwvY29kZT4sIGFuZCAgPGNvZGU+c2NvcGU8L2NvZGU+IGF0dHJpYnV0ZXMgdG8gdGhlIHRhZywgc28gdGhhdCB0aGUgbWVzc2FnZSBzb3VyY2Uga2V5IGNhbiBiZSBvYnRhaW5lZCBkeW5hbWljYWxseSBmcm9tIGEgYmVhbiBvciBiZWFuIHByb3BlcnR5LjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+SFRNTCBUYWdsaWIgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtaHRtbDwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT48Y29kZT4mbHQ7aHRtbDpsaW5rJmd0Ozo8L2NvZGU+IEFkZGVkICdhY3Rpb24nIGF0dHJpYnV0ZS48L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7aHRtbDpvcHRpb25zJmd0Ozo8L2NvZGU+IElmIHRoZSBwcm9wZXJ0eSBzcGVjaWZpZWQgYnkgdGhlICdwcm9wZXJ0eScgYXR0cmlidXRlIHJldHVybnMgbnVsbCwgdGFnIG5vdyB0aHJvd3MgYW4gZXJyb3IgbWVzc2FnZSB0aGF0IGluZGljYXRlcyB3aGF0IHRoZSByZWFsIHByb2JsZW0gaXMsIHJhdGhlciB0aGFuIGNhdXNpbmcgYW4gTlBFLjwvbGk+CisgICAgPGxpPjxjb2RlPiZsdDtodG1sOm9wdGlvbiZndDsgYW5kICZsdDtodG1sOm9wdGlvbnMmZ3Q7OjwvY29kZT4gQWRkZWQgJ3N0eWxlJyBhbmQgJ3N0eWxlQ2xhc3MnIGF0dHJpYnV0ZXMuPC9saT4KKyAgICA8bGk+PGNvZGU+Jmx0O2h0bWw6b3B0aW9uc0NvbGxlY3Rpb24mZ3Q7OjwvY29kZT4gTmV3IHRhZyBwcm92aWRpbmcgYSBjbGVhbmVyIHdheSBvZiBwb3B1bGF0aW5nIEhUTUwgb3B0aW9ucyBmcm9tIGEgY29sbGVjdGlvbi48L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7YmVhbjptZXNzYWdlJmd0Ozo8L2NvZGU+IEFkZGVkICduYW1lJywgJ3Byb3BlcnR5JyBhbmQgJ3Njb3BlJyBhdHRyaWJ1dGVzIHNvIHRoYXQgdGhlIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IGNhbiBiZSBvYnRhaW5lZCBkeW5hbWljYWxseSBmcm9tIGEgYmVhbi48L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7aHRtbDptZXNzYWdlcyZndDs6PC9jb2RlPiBOZXcgdGFnIHRvIGl0ZXJhdGUgdGhyb3VnaCBhIG1lc3NhZ2UgY29sbGVjdGlvbiBpbiB0aGUgbmV3IDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPiBjbGFzcy48L2xpPgorICAgIDxsaT48Y29kZT5BY3Rpb25Gb3JtOjwvY29kZT4gVGFnIHdpbGwgbm93IGNhbGwgPGNvZGU+cmVzZXQoKTwvY29kZT4gaWYgaXQgaW5zdGFudGlhdGVzIHRoZSBBY3Rpb25Gb3JtIGJlYW4uIFRoaXMgYWxzbyByZXF1aXJlcyB0aGF0IHRoZSBiZWFuIGluc3RhbnRpYXRlZCBieSB0aGUgdGFnIHRvIGJlIGFuIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IHN1YmNsYXNzLiA8L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7aHRtbDppbWFnZT46PC9jb2RlPiBBZGRlZCB0aGUgJ2FsaWduJyBhdHRyaWJ1dGUuPC9saT4KKyAgICA8bGk+PGNvZGU+Jmx0O2h0bWw6aW1nPjo8L2NvZGU+IEFkZGVkIHRoZSBtb3VzZSBldmVudCBhdHRyaWJ1dGVzICgnb25jbGljaycsICdvbmRibGNsaWNrJywgJ29ubW91c2Vkb3duJywgJ29ubW91c2V1cCcsICdvbm1vdXNlb3ZlcicsICdvbm1vdXNlbW92ZScsICdvbm1vdXNlb3V0JykuPC9saT4KKyAgICA8bGk+PGNvZGU+U3VibWl0VGFnLCBTZWxlY3RUYWcsIExpbmtUYWcuamF2YSwgQ2hlY2tib3hUYWcsIEJ1dHRvblRhZywgSW1hZ2VUYWcsIFJhZGlvVGFnLCBhbmQgVGV4dEFyZWEgdGFnczo8L2NvZGU+IEFkZGVkIGluZGV4ZWQgcHJvcGVydHkuIDwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+TG9naWMgVGFnbGliIFBhY2thZ2UgQWRkaXRpb25zPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUKKyAgICA8ZW0+c3RydXRzLWxvZ2ljPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IFs8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT48Y29kZT4mbHQ7bG9naWM6ZW1wdHkmZ3Q7PC9jb2RlPiBhbmQKKyAgICAgICAgPGNvZGU+Jmx0O2xvZ2ljOm5vdEVtcHR5Jmd0OzwvY29kZT46IE5ldyB0YWdzIHRoYXQgYXJlIHNpbWlsYXIgdG8KKyAgICAgICAgPGNvZGU+Jmx0O2xvZ2ljOnByZXNlbnQmZ3Q7PC9jb2RlPiBhbmQKKyAgICAgICAgPGNvZGU+Jmx0O2xvZ2ljOm5vdFByZXNlbnQmZ3Q7PC9jb2RlPiBleGNlcHQgZm9yIHRoZSB0cmVhdG1lbnQgb2YKKyAgICAgICAgZW1wdHkgc3RyaW5ncy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlRlbXBsYXRlIFRhZ2xpYiBQYWNrYWdlIEFkZGl0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlCisgICAgPGVtPnN0cnV0cy10ZW1wbGF0ZTwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeQorICAgIFs8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGU8L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5Ob25lLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+RG9jdW1lbnRhdGlvbiBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBTdHJ1dHMgRG9jdW1lbnRhdGlvbgorICAgIGFwcGxpY2F0aW9uIChhbmQgY29ycmVzcG9uZGluZyBjb250ZW50cyBvbiB0aGUgU3RydXRzIHdlYiBzaXRlKTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5WZXJzaW9uIERpZmZlcmVuY2VzOiBOZXcgc2VjdGlvbiBpbiBSZWxlYXNlIE5vdGVzIHRvIGxpbmsgdG8gdGhlIEphdmFEb2NzIGZvciBhbGwgU3RydXRzIGNsYXNzZXMgYW5kIG1lbWJlcnMgYWRkZWQgb3IgY2hhbmdlZCBiZXR3ZWVuIHZlcnNpb25zLjwvbGk+CisgICAgPGxpPkZBUS9Ib3dUb3M6IE5ldyBkb2N1bWVudGF0aW9uIGNhdGVnb3J5IG9yZ2FuaXplcyBvdXIgRkFRcyBhbmQgZXhhbXBsZS1kcml2ZW4gaG93VG9zLgorICAgIE5ldyBIb3dUb3MgaW5jbHVkZSAiQnVpbGRpbmcgQXBwbGljYXRpb25zIiwgIlVzaW5nIFNTTCIsIGFuZCB1c2luZyBTdHJ1dHMgd2l0aCBFY2xpcHNlIG9yIE5ldEJlYW5zLjwvbGk+CisgICAgPGxpPlVzZXIgR3VpZGUgUHJlZmFjZTogTmV3IHNlY3Rpb24gdG8gb3ZlcnZpZXcgdGhlIGVuYWJsaW5nIHRlY2hub2xvZ2llcyBiZWhpbmQgU3RydXRzLjwvbGk+CisgICAgPGxpPkRldmVsb3BlciBHdWlkZXM6IEFkZGVkICJjb3ZlciBwYWdlIiB0byBndWlkZXMuIFRoZXNlIHRoZW4gbGluayB0byB0aGUgUGFja2FnZSBEZXNjcmlwdGlvbnMgYW5kIHRoZSBBUEkgZ3VpZGVzLjwvbGk+CisgICAgPGxpPkhUTUwgdGFnIGRvY3VtZW50YXRpb246IGV4cGFuZGVkIHRvIGNvdmVyIHVzaW5nIGluZGV4ZWQgcHJvcGVydGllcyB3aXRoIGl0ZXJhdGUuPC9saT4KKyAgICA8bGk+U2l0ZSBNZW51OiBSZW1vdmVkIHNlcGFyYXRlIGxpbmtzIHRvIHRhZ2xpYiBkb2N1bWVudGF0aW9uLCBzaW5jZSB0aGVzZSBhcmUgbm93IGluIHRoZSBEZXZlbG9wZXIgR3VpZGUuPC9saT4KKyAgICA8bGk+TmV3YmllIEZBUTogVGhlIHF1ZXN0aW9ucyBtb3N0IGxpa2VseSB0byBiZSBhc2tlZCBieSBuZXcgZGV2ZWxvcGVycyB1c2luZyBTdHJ1dHMuIFN0aWxsIHVuZGVyIGRldmVsb3BtZW50LjwvbGk+CisgICAgPGxpPktpY2tzdGFydCBGQVE6IFRoZSBxdWVzdGlvbnMgbW9zdCBsaWtlbHkgdG8gYmUgYXNrZWQgd2hlbiBzZWxlY3RpbmcgU3RydXRzLjwvbGk+CisgICAgPGxpPjEuMC4yIEphdmFEb2M6IEFkZGVkIGFyY2hpdmFsIGNvcHkgdG8gd2ViIHNpdGUgZm9yIGZ1dHVyZSByZWZlcmVuY2UuPC9saT4KKyAgICA8bGk+VGhlIFVzZXJHdWlkZSAiQnVpbGRpbmciIHBhZ2VzOiBHZW5lcmFsIHJldmlzaW9ucyB0byByZWZsZWN0IG5ldyBmZWF0dXJlcyBhbmQgY3VycmVudCBwcmFjdGljZXMuPC9saT4KKyAgICA8bGk+SW5zdGFsbGF0aW9uOiBVcGRhdGVkIGluc3RydWN0aW9ucyBmb3IgU2lsdmVyU3RyZWFtIGFuZCBSZXNpbi4gQWRkIGluc3RhbGxhdGlvbiBub3RlcyBmb3IgSmV0dHkuIEFkZGVkIFJleElQIHRvIGxpc3Qgb2Ygbm9taW5hbCBjb250YWluZXJzLjwvbGk+CisgICAgPGxpPkphdmFEb2NzOiBOZXcgPGNvZGU+QHNpbmNlIFN0cnV0cyAxLjE8L2NvZGU+IHRhZyB0byBpbmRpY2F0ZSBuZXcgcGFja2FnZXMsIGNsYXNzZXMsIGFuZCBtZW1iZXJzIGFkZGVkIGFmdGVyIHRoZSBTdHJ1dHMgMS4wLnggdmVyc2lvbjwvbGk+CisgICAgPC91bD4KKworICA8L3NlY3Rpb24+CisKKyAgPHNlY3Rpb24gbmFtZT0iT3BlcmF0aW9uYWwgQ2hhbmdlcyBhbmQgQnVnIEZpeGVzIiBocmVmPSJDaGFuZ2VzIj4KKworICAgIDxwPjxzdHJvbmc+U3RydXRzIENvbmZpZ3VyYXRpb24gQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSBjb25maWd1cmF0aW9uCisgICAgZmlsZXMgcmVsYXRlZCB0byBTdHJ1dHM6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+RGVwcmVjYXRlZCAoU3RydXRzIDAuNSkgY29uZmlndXJhdGlvbiBmaWxlIGZvcm1hdDogUmVtb3ZlIHN1cHBvcnQuPC9saT4KKyAgICA8bGk+RGVwcmVjYXRlZCAoU3RydXRzIDAuNSkgbWV0aG9kczogUmVtb3ZlIGZyb20gY29kZWJhc2UuPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxzdHJvbmc+QWRkZWQgQ29uZmlnIFBhY2thZ2U8L3N0cm9uZz48L3A+CisgICAgPHVsPgorICAgIDxsaT5Db250cm9sbGVyQ29uZmlnOiBBZGRlZCBpbnB1dEZvcndhcmQgcHJvcGVydHkgdG8gaW5kaWNhdGUgdGhhdCBBY3Rpb25NYXBwaW5nLmlucHV0IGlzIGEgZm9yd2FyZCByYXRoZXIgdGhhbiBhIFVSSS48L2xpPgorICAgIDxsaT5Db250cm9sbGVyQ29uZmlnOiBBZGRlZCBmb3J3YXJkUGF0dGVybiBhbmQgaW5wdXRQYXR0ZXJuIHRvIGhlbHAgbWFuYWdlIHBhZ2UgZGlyZWN0b3JpZXMgaW4gYXBwbGljYXRpb24gbW9kdWxlcy48L2xpPgorICAgIDxsaT5BZGRlZCBwYWNrYWdlIHRvIHByb3ZpZGUgbW9yZSBmbGV4aWJpbGl0eSBpbiBjb25maWd1cmluZyB0aGUgY29udHJvbGxlciBhbmQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciBtb2R1bGFyIGFwcGxpY2F0aW9uczwvbGk+CisgICAgPC91bD4KKyAgICA8cD48c3Ryb25nPkFjdGlvbiBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgYmFzaWMKKyAgICBjb250cm9sbGVyIGZyYW1ld29yayAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5BbGwgY29uc3RhbnRzIGluIHRoZSBBY3Rpb24gY2xhc3M6IERlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgZXF1aXZhbGVudHMgaW4gbmV3IEdsb2JhbHMgY2xhc3MuPC9saT4KKyAgICA8bGk+QWN0aW9uTWFwcGluZzogaW5wdXQgcHJvcGVydHkgbWF5IG5vdyByZWZlciB0byBhbiBBY3Rpb25Gb3J3YXJkIHJhdGhlciB0aGFuIGEgbW9kdWxlLXJlbGF0aXZlIHBhdGggaWYgaW5wdXRGb3J3YXJkIGlzIHNldCB0byB0cnVlIG9uIHRoZSBtb2R1bGUncyBDb250cm9sbGVyQ29uZmlnIGJlYW4gW29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Db250cm9sbGVyQ29uZmlnLjwvbGk+CisgICAgPGxpPkFjdGlvblNlcnZsZXQ6IEFkZGVkIGNvbnZlcnROdWxsIHBhcmFtZXRlciB0byBzaW11bGF0ZSB0aGUgU3RydXRzIDEuMCBiZWhhdmlvciB3aGVuIHBvcHVsYXRpbmcgZm9ybXMuIElmIHNldCB0byB0cnVlLCB0aGUgbnVtZXJpYyBKYXZhIHdyYXBwZXIgY2xhc3MgdHlwZXMgKGxpa2UgamF2YS5sYW5nLkludGVnZXIpIHdpbGwgZGVmYXVsdCB0byBudWxsIChyYXRoZXIgdGhhbiAwKS48L2xpPgorICAgIDxsaT5BY3Rpb25TZXJ2bGV0OiBBZGRlZCAiY29uZmlnLyRmb28iIHBhcmFtZXRlciBhbmQgZGVwcmVjYXRlZCBzZXZlcmFsIG90aGVycyBpbiBmYXZvciBvZiBjb21wb25lbnRzIGluIHRoZSBuZXcgY29uZmlnIHBhY2thZ2UuIDwvbGk+CisgICAgPGxpPkFjdGlvbkZvcm1zIGFuZCByZWxhdGVkIGNsYXNzZXM6IE5vdyB1c2UgYSBTdHJpbmdCdWZmZXIgd2hlbiByZXNwb25kaW5nIHRvIGEgdG9TdHJpbmcgcmVxdWVzdCBpbiBvcmRlciB0byBjb25zZXJ2ZSByZXNvdXJjZXMuPC9saT4KKyAgICA8bGk+TG9va3VwRGlzcGF0Y2hBY3Rpb246IEFkZGVkIHN0YW5kYXJkIEFjdGlvbiB0byBoZWxwIHNlbGVjdCBiZXR3ZWVuIGludGVybmF0aW9uYWxpemVkIGJ1dHRvbnMuPC9saT4KKyAgICA8bGk+QWN0aW9uRm9ybSBjbGFzczogTW9kaWZpZWQgdG8gdXNlIEFjdGlvblNlcnZsZXRXcmFwcGVyIHJhdGhlciB0aGFuIGV4cG9zZSBBY3Rpb25TZXJ2bGV0LjwvbGk+CisgICAgPGxpPkFjdGlvblNlcnZsZXRXcmFwcGVyIGNsYXNzOiBBZGRlZCBmb3IgdXNlIGJ5IEFjdGlvbkZvcm0gdG8gcHJldmVudCB0aGUgUHVibGljIFN0cmluZyBwcm9wZXJ0aWVzIG9mIEFjdGlvblNlcnZsZXQgZnJvbSBiZWluZyBjaGFuZ2VkIHZpYSBhIHF1ZXJ5IHN0cmluZy48L2xpPgorICAgIDxsaT5BY3Rpb24uTUFQUElOR19LRVkgcmVxdWVzdCBhdHRyaWJ1dGU6IFVuY29uZGl0aW9uYWxseSBwYXNzIHRoZSBzZWxlY3RlZCBtYXBwaW5nIGFzIGEgcmVxdWVzdCBhdHRyaWJ1dGUgKCJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24ubWFwcGluZy5pbnN0YW5jZSIpIGV2ZW4gaWYgbm8gZm9ybSBiZWFuIGlzIHNwZWNpZmllZC48L2xpPgorICAgIDxsaT5BY3Rpb25TZXJ2bGV0OiBBdm9pZCBhIE51bGxQb2ludGVyRXhjZXB0aW9uIGluIGNvcm5lciBjYXNlcyBjYXVzZWQgYnkgZmFpbGVkIGluaXRpYWxpemF0aW9uIG9mIHNlcnZsZXQuPC9saT4KKyAgICA8bGk+QWN0aW9uRm9ybSBjbGFzczogTm93IHRydWx5IHNlcmlhbGl6YWJsZSwgYmVjYXVzZQorICAgICAgICB0aGUgdHdvIG5vbi1zZXJpYWxpemFibGUgaW5zdGFuY2UgdmFyaWFibGVzIChzZXJ2bGV0IGFuZAorICAgICAgICBtdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcikgaGF2ZSBiZWVuIG1hZGUgdHJhbnNpZW50LiAgSG93ZXZlciwgaWYgeW91CisgICAgICAgIGFjdHVhbGx5IGRvIHNlcmlhbGl6ZSBhbmQgZGVzZXJpYWxpemUgc3VjaCBpbnN0YW5jZXMsIGl0IGlzIHlvdXIKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gcmVzZXQgdGhlc2UgdHdvIHByb3BlcnRpZXMuPC9saT4KKyAgICA8bGk+QWN0aW9uTWVzc2FnZXMgYW5kIEFjdGlvbkVycm9yczogVGhlIGluaXRpYWwgb3JkZXIgYSBwcm9wZXJ0eS9rZXkgaXMgYWRkZWQgaW4gaXMgbm93IHJldGFpbmVkLjwvbGk+CisgICAgPGxpPnByb2Nlc3NBY3Rpb25Gb3J3YXJkKCk6IERlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgcHJvY2Vzc0ZvcndhcmRDb25maWc8L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlVwbG9hZCBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgZmlsZSB1cGxvYWQKKyAgICBwYWNrYWdlIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvY29kZT4pIFtwYXJ0IG9mIHRoZSBVcGxvYWQgd2ViYXBwXTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI6IE5ldyBpbXBsZW1lbnRhdGlvbiBvZiBmaWxlIHVwbG9hZCBiYXNlZAorICAgICAgICBvbiB0aGUgSmFrYXJ0YSBDb21tb25zIEZpbGVVcGxvYWQgcGFja2FnZS4gVGhpcyBuZXcgaW1wbGVtZW50YXRpb24gaXMKKyAgICAgICAgbm93IHRoZSBkZWZhdWx0LjwvbGk+CisgICAgPGxpPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW06IEZpeGVkIGxvc3QgYnl0ZSBwcm9ibGVtLjwvbGk+CisgICAgPGxpPkFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbjogRml4ZWQgc2l0dWF0aW9ucyB3aGVyZSB0aGlzIHdhcyBrbm93biB0byBvY2N1ci48L2xpPgorICAgIDxsaT5NdWx0aXBhcnQgcmVxdWVzdHM6IEJldHRlciByZXBvcnRpbmcgZm9yIHByZW1hdHVyZSBjbG9zaW5nIG9mIGlucHV0IHN0cmVhbXMgd2hpbGUgcmVhZGluZyBtdWx0aXBhcnQgcmVxdWVzdHMuPC9saT4KKyAgICA8bGk+TmV3IGxpbmUgY2hhcmFjdGVyczogQWRkaXRpb25hbCBmaXggZm9yIGZpbGUgY29ycnVwdGlvbiBwcm9ibGVtIHdpdGggdXBsb2FkcyBhbmQgbmV3IGxpbmUgY2hhcmFjdGVycy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlV0aWxpdHkgUGFja2FnZSBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlIHV0aWxpdGllcworICAgIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L2NvZGU+KTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5SZXF1ZXN0VXRpbHM6IEFkZGVkIHN1cHBvcnQgZm9yIGZvcndhcmRQYXR0ZXJuLCBwYWdlUGF0dGVybiwgYW5kIGlucHV0Rm9yd2FyZCBwcm9wZXJ0aWVzIG9uIENvbnRyb2xsZXJDb25maWcuPC9saT4KKyAgICA8bGk+R2VuZXJpY0RhdGFTb3VyY2U6IERlcHJlY2F0ZWQgYW5kIG1vZGlmaWVkIHRvIGFjdCBhcyBhIHRoaW4gd3JhcHBlciBhcm91bmQKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmRicGMuQmFzaWNEYXRhU291cmNlPC9jb2RlPl0uCisgICAgUmVwbGFjZWQgYnkgZGlyZWN0IHVzZSBvZiBCYXNpY0RhdGFTb3VyY2Ugb3Igb3RoZXIgY29tcGF0aWJsZSBjb21wb25lbnQuPC9saT4KKyAgICA8bGk+UmVxdWVzdFV0aWxzIGNsYXNzOiBNb2RpZnkgdG8gdXNlIEFjdGlvblNlcnZsZXRXcmFwcGVyIHJhdGhlciB0aGFuIGV4cG9zZSBBY3Rpb25TZXJ2bGV0LjwvbGk+CisgICAgPGxpPkFkZGVkIGVycm9yIG1lc3NhZ2UgZm9yIHRoZSBnZXRBY3Rpb25FcnJvcnMgYW5kIGdldEFjdGlvbk1lc3NhZ2VzIG1ldGhvZC48L2xpPgorICAgIDxsaT5nZXRBY3Rpb25FcnJvcnMgYW5kIGdldEFjdGlvbk1lc3NhZ2VzOiBBZGRlZCBtZXRob2RzIHRvIGdlbmVyYXRlIHRoZSBjb3JyZWN0IGNvcnJlc3BvbmRpbmcKKyAgICBvYmplY3QgYmFzZWQgb24gdGhlIG9iamVjdCByZXRyaWV2ZWQgZnJvbSByZXF1ZXN0IHNjb3BlIGJhc2VkIG9uIHRoZSBrZXkgcGFzc2VkIGluLjwvbGk+CisgICAgPGxpPkFjdGlvbkVycm9ycyBvciBBY3Rpb25NZXNzYWdlczogVGhlIGxvZ2ljIGZvciBjcmVhdGluZyBvbmUgb2YgdGhlc2Ugb2JqZWN0cyBoYXMgYmVlbiBtb3ZlZAorICAgIHRvIGEgdXRpbGl0eSBtZXRob2QgaW4gUmVxdWVzdFV0aWxzLjwvbGk+CisgICAgPGxpPkpzcEV4Y2VwdGlvbiBtZXNzYWdlOiBOb3cgZ2VuZXJhdGVkIGluIFJlcXVlc3RVdGlscy48L2xpPgorICAgIDxsaT5Db252ZXJ0VXRpbHMuY29udmVydENoYXJhY3RlcigpOiBXaWxsIG5vdyBkZXRlY3QgZW1wdHkgc3RyaW5ncyBhbmQgcmV0dXJuIHRoZSBkZWZhdWx0IHZhbHVlLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+QmVhbiBUYWdsaWIgUGFja2FnZSBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlCisgICAgPGVtPnN0cnV0cy1iZWFuPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5CisgICAgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9jb2RlPl06PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Jmx0O2h0bWw6ZXJyb3JzJmd0OzogV2hlbiB0aGUgcHJvcGVydHkgdGFnIGlzCisgICAgc3BlY2lmaWVkLCBlcnJvcnMgYXJlIG5vIGxvbmdlciBwcmludGVkIGlmIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkKKyAgICBoYXMgbm8gZXJyb3JzLiBQcmV2aW91c2x5IGVycm9ycyB3ZXJlIGFsd2F5cyBwcmludGVkICEgRnV0dXJlCisgICAgZW5oYW5jZW1lbnRzIHdvdWxkIGluY2x1ZGUgYWRkaXRpb25hbCBhdHRyaWJ1dGVzIHRvIGFsd2F5cyB0dXJuCisgICAgb2ZmIHRoZSBoZWFkZXIgb3IgZm9vdGVyLiA8L2xpPgorICAgIDxsaT5NYWRlIHRoZSByZW1haW5pbmcgaGVscGVyIG1ldGhvZHMgInByb3RlY3RlZCIgcmF0aGVyIHRoYW4KKyAgICAicHJpdmF0ZSIuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5IVE1MIFRhZ2xpYiBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUKKyAgICA8ZW0+c3RydXRzLWh0bWw8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgKHBhY2thZ2UKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkZvcm1UYWc6IEZpeGVkIHRvIGV4Y2x1ZGUgcXVlcnkgc3RyaW5nIHdoZW4gaWRlbnRpZnlpbmcgYWN0aW9uIG1hcHBpbmcgbmFtZS48L2xpPgorICAgIDxsaT5JbWdUYWc6IENvcnJlY3RseSBVUkxFbmNvZGUgdGhlIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXIgdmFsdWUgZXZlbiBpZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIHBhcmFtZXRlci48L2xpPgorICAgIDxsaT5NdWx0aWJveFRhZy5kb0FmdGVyQm9keSgpOiBDb3JyZWN0ZWQgdG8gcmV0dXJuIFNLSVBfQk9EWSBpbnN0ZWFkIG9mIFNLSVBfUEFHRS48L2xpPgorICAgIDxsaT5FcnJvcnRhZzogZGVmYXVsdExvY2FsZSBtZXRob2QgaXMgZGVwcmVjYXRlZCBhcyBpdCBpcyB1bnVzZWQuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5Mb2dpYyBUYWdsaWIgUGFja2FnZSBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlCisgICAgPGVtPnN0cnV0cy1sb2dpYzwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZQorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPk5vbmUuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5Eb2N1bWVudGF0aW9uIEFwcGxpY2F0aW9uIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgdG8gdGhlIFN0cnV0cyBEb2N1bWVudGF0aW9uCisgICAgYXBwbGljYXRpb24gKGFuZCBjb3JyZXNwb25kaW5nIGNvbnRlbnRzIG9uIHRoZSBTdHJ1dHMgd2ViIHNpdGUpIGhhdmUKKyAgICBvY2N1cnJlZDo8L3A+CisgICAgPHVsPgorICAgIDxsaT5SZW9yZ2FuaXplZCBSZXNvdXJjZXMgaW50byBzZXBhcmF0ZSBwYWdlcy4uPC9saT4KKyAgICA8bGk+SW4gdGhlIFRhZyBEZXZlbG9wZXJzIEd1aWRlLCBhZGQgbW9yZSBkZXRhaWwgcmVnYXJkaW5nIGZpbGUgdXBsb2FkIHJlcXVpcmVtZW50cy48L2xpPgorICAgIDxsaT5JbiBCdWlsZGluZyBWaWV3IENvbXBvbmVudHMsIGNsYXJpZnkgdGhhdCBhZGRpdGlvbmFsIGkxOG4gc3VwcG9ydCBtYXkgYmUgcHJvdmlkZWQgYnkgdGhlIGJyb3dzZXIsIGFuZCBpcyBvdXRzaWRlIHRoZSBzY29wZSBvZiB0aGUgZnJhbWV3b3JrLjwvbGk+CisgICAgPGxpPkluIEJ1aWxkaW5nIENvbnRyb2xsZXIgQ29tcG9uZW50cywgZG9jdW1lbnQgJ3ZhbGlkYXRpbmcnIGluaXQtcGFyYW0sIGFkZCBkZWZhdWx0cyBmb3IgdmFyaW91cyBwYXJhbWV0ZXJzLCBjbGFyaWZ5IHRoYXQgc29tZSB3ZWIueG1sIHNldHRpbmdzIGFyZSBub3QgU3RydXRzLXNwZWNpZmljLjwvbGk+CisgICAgPGxpPlRhZyBsaWJyYXJ5IGRvY3VtZW50YXRpb246IE1vdmVkIHVuZGVyIFVzZXIncyBHdWlkZS48L2xpPgorICAgIDxsaT5SZW9yZ2FuaXplZCB0byBzZXBhcmF0ZSAxLjAgbWF0ZXJpYWwgZnJvbSBuaWdodGx5IGJ1aWxkIG1hdGVyaWFsLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+TWFpbFJlYWRlciBFeGFtcGxlIEFwcGxpY2F0aW9uIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgdG8gdGhlIFN0cnV0cyBNYWlsUmVhZGVyIEV4YW1wbGUgQXBwbGljYXRpb24KKyAgICBoYXZlIG9jY3VycmVkOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkFkZCBSdXNzaWFuIGFuZCBKYXBhbmVzZSB0cmFuc2xhdGlvbnMgb2YgdGhlIGFwcGxpY2F0aW9uIHJlc291cmNlcyBhbmQgc2V0IHRoZSBjaGFyYWN0ZXIgc2V0IGZvciB0aGUgZXhhbXBsZSBKU1AgcGFnZXMgdG8gIlVURi04IiBzbyB0aGF0IGl0IGNhbiBkaXNwbGF5IGVpdGhlciBFbmdsaXNoIG9yIEphcGFuZXNlLjwvbGk+CisgICAgPGxpPkV4Y2hhbmdlICJuYW1lIiBmb3IgImF0dHJpYnV0ZSIgcHJvcGVydGllcyBmb3IgRWRpdCBtYXBwaW5ncyBpbiBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlLjwvbGk+CisgICAgPGxpPlJlbW92ZSByZWZlcmVuY2VzIHRvIHNhdmluZyBkYXRhYmFzZSBkYXRhIGZyb20gInRvdXIiIGRvY3VtZW50LCBzaW5jZSB0aGlzIGZ1bmN0aW9uYWxpdHkgd2FzIHJlbW92ZWQuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5UZW1wbGF0ZSBFeGFtcGxlIEFwcGxpY2F0aW9uIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgdG8gdGhlIFN0cnV0cyBUZW1wbGF0ZSBFeGFtcGxlCisgICAgQXBwbGljYXRpb24gaGF2ZSBvY2N1cnJlZDo8L3A+CisgICAgPHVsPgorICAgIDxsaT5Ob25lLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+RXhlcmNpc2UgVGFnbGliIEV4YW1wbGUgQXBwbGljYXRpb24gQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgU3RydXRzIEV4ZXJjaXNlIFRhZ2xpYiBFeGFtcGxlCisgICAgQXBwbGljYXRpb24gaGF2ZSBvY2N1cnJlZDo8L3A+CisgICAgPHVsPgorICAgIDxsaT5BZGRlZCB0ZXN0IGNhc2UgZm9yICZsdDtodG1sOmxpbmsmZ3Q7IHVzaW5nICJhY3Rpb24iIGF0dHJpYnV0ZS4gPC9saT4KKyAgICA8bGk+QWRkZWQgdGVzdCBjYXNlcyBmb3IgJmx0O2h0bWw6c2VsZWN0Jmd0OyB1c2luZyAmbHQ7aHRtbDpvcHRpb25zJmd0OyBhbmQKKyAgICAgICAgJmx0O2h0bWw6b3B0aW9uc0NvbGxlY3Rpb24mZ3Q7IGJhc2VkIG9uIGEgY29sbGVjdGlvbiBzYXZlZCBpbiB0aGUgcGFnZSBjb250ZXh0LjwvbGk+CisgICAgPC91bD4KKworICA8L3NlY3Rpb24+CisKKyAgPHNlY3Rpb24gbmFtZT0iV2hhdCdzIGRpZmZlcmVudD8iIGhyZWY9ImRpZmYiPgorCisgICAgPHA+VGhpcyBzZWN0aW9uIHByb3ZpZGVzIGxpbmtzIHRvIHRoZSBTdHJ1dHMgSmF2YURvYyBmb3IgYW55IGNsYXNzZXMgdGhhdCBoYXZlCisgICAgYmVlbiBhZGRlZCBvciBkZXByZWNhdGVkIHNpbmNlIHRoZSBTdHJ1dHMgMS4wIHJlbGVhc2UuCisgICAgPC9wPgorCisgICAgPHA+PHN0cm9uZz5QcmV2aW91c2x5IGRlcHJlY2F0ZWQgY2xhc3NlcyBhbmQgcGFja2FnZXMgcmVtb3ZlZCBpbiBTdHJ1dHMgMS4xPC9zdHJvbmc+PC9wPgorICAgIDx1bD4KKyAgICA8bGk+UmVtb3ZlZDoKKyAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWxzLkJlYW5VdGlsczwvY29kZT4sCisgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlscy5Db252ZXJ0VXRpbHM8L2NvZGU+LCBhbmQKKyAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWxzLlByb3BlcnR5VXRpbHM8L2NvZGU+IC0gcmVwbGFjZWQgYnkKKyAgICAgIDxhIGhyZWYgPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvYmVhbnV0aWxzLmh0bWwiPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHM8L2NvZGU+PC9hPgorICAgIDwvbGk+CisgICAgPGxpPlJlbW92ZWQ6CisgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuQXJyYXlTdGFjazwvY29kZT4sCisgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdEFycmF5TGlzdDwvY29kZT4sCisgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdEhhc2hNYXA8L2NvZGU+LAorICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RUcmVlTWFwPC9jb2RlPiAtIHJlcGxhY2VkIGJ5CisgICAgIDxhIGhyZWYgPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvY29sbGVjdGlvbnMuaHRtbCI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmNvbGxlY3Rpb25zPC9jb2RlPjwvYT4KKyAgICA8L2xpPgorICAgIDxsaT5SZW1vdmVkOiA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci4qPC9jb2RlPiAtIHJlcGxhY2VkIGJ5CisgICAgPGEgaHJlZiA9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9kaWdlc3Rlci5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXI8L2NvZGU+PC9hPgorICAgIDwvbGk+CisgICAgPGxpPlJlbW92ZWQ6IFRoZSA8Y29kZT5zdHJ1dHMtY29uZmlnLmR0ZDwvY29kZT4gLSBSZXBsYWNlZCBieSA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9kdGRzL3N0cnV0cy1jb25maWdfMV8xLmR0ZCI+PGNvZGU+c3RydXRzLWNvbmZpZ18xXzEuZHRkPC9jb2RlPjwvYT4uPC9saT4KKyAgICA8bGk+UmVtb3ZlZDogVGhlIG9tbmlidXMgInN0cnV0cyIgdGFnbGliIGFuZCBpdHMgYXNzb2NpYXRlZCBUTEQgLSByZXBsYWNlZCBieSBzZXBhcmF0ZSBiZWFuLCBsb2dpYywgYW5kIGh0bWwgdGFnbGlicy48L2xpPgorICAgIDxsaT5SZW1vdmVkOiBUaGUgImZvcm0iIHRhZ2xpYiBhbmQgaXRzIGFzc29jaWF0ZWQgVExEIC0gcmVwbGFjZWQgYnkgKHJlbmFtZWQgYXMpIHRoZSBodG1sIHRhZ2xpYi48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlBhY2thZ2VzIGFkZGVkIGluIFN0cnV0cyAxLjE8L3N0cm9uZz48L3A+CisKKyAgICA8dWw+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPmNvbmZpZzwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+dGFnbGliLm5lc3RlZDwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sIj50YWdsaWIubmVzdGVkLmJlYW48L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+dGFnbGliLm5lc3RlZC5odG1sPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj50YWdsaWIubmVzdGVkLmxvZ2ljPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPnZhbGlkYXRvcjwvYT48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkNsYXNzZXMgYWRkZWQgaW4gU3RydXRzIDEuMTwvc3Ryb25nPjwvcD4KKyAgICA8cD5hY3Rpb248L3A+CisgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj4gQWN0aW9uTWVzc2FnZTwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+IEFjdGlvbk1lc3NhZ2VzPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj4gRHluYUFjdGlvbkZvcm08L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+IER5bmFBY3Rpb25Gb3JtQ2xhc3M8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCI+IEV4Y2VwdGlvbkhhbmRsZXI8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+IFJlcXVlc3RQcm9jZXNzb3I8L2E+PC9saT4KKyAgICA8L3VsPgorICAgIDxwPmFjdGlvbnM8L3A+CisgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiPiBMb29rdXBEaXNwYXRjaEFjdGlvbjwvYT48L2xpPgorICAgIDwvdWw+CisgICAgPHA+dGFnbGliLmh0bWw8L3A+CisgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj4gRnJhbWVUYWc8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj4gSmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj4gT3B0aW9uc0NvbGxlY3Rpb25UYWc8L2E+PC9saT4KKyAgICA8L3VsPgorICAgIDxwPnRhZ2xpYi5sb2dpYzwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIj4gRW1wdHlUYWc8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj4gTWVzc2FnZXNOb3RQcmVzZW50VGFnPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+IE1lc3NhZ2VzUHJlc2VudFRhZzwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbCI+IE5vdEVtcHR5VGFnPC9hPjwvbGk+CisgICAgPC91bD4KKyAgICA8cD51cGxvYWQ8L3A+CisgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPiBDb21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L2E+PC9saT4KKyAgICA8L3VsPgorICAgIDxwPnV0aWw8L3A+CisgICAgPHVsPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwiPiBMYWJlbFZhbHVlQmVhbjwvYT48L2xpPgorICAgIDwvdWw+CisgICAgPHA+PHN0cm9uZz5DbGFzc2VzIHdpdGggbWVtYmVycyBhZGRlZCBpbiBTdHJ1dHMgMS4xPC9zdHJvbmc+PC9wPgorICAgIDxwPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPmFjdGlvbi5BY3Rpb248L2E+PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5BQ1RJT05fU0VSVkxFVF9LRVk8L2xpPgorICAgICAgPGxpPkFQUExJQ0FUSU9OX0tFWTwvbGk+CisgICAgICA8bGk+TUVTU0FHRV9LRVk8L2xpPgorICAgICAgPGxpPlBMVUdfSU5TX0tFWTwvbGk+CisgICAgICA8bGk+UkVRVUVTVF9QUk9DRVNTT1JfS0VZPC9saT4KKyAgICAgIDxsaT5leGVjdXRlPC9saT4KKyAgICAgIDxsaT5nZXRSZXNvdXJjZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCk8L2xpPgorICAgICAgPGxpPnNhdmVNZXNzYWdlczwvbGk+CisgICAgPC91bD4KKyAgICA8cD48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+YWN0aW9uLkE8L2E+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPmN0aW9uU2VydmxldDwvYT48L3A+CisgICAgPHVsPgorICAgICAgPGxpPmNvbmZpZ0RpZ2VzdGVyPC9saT4KKyAgICAgIDxsaT5jb252ZXJ0SGFjazwvbGk+CisgICAgICA8bGk+bG9nPC9saT4KKyAgICAgIDxsaT5wcm9jZXNzb3I8L2xpPgorICAgICAgPGxpPmdldEludGVybmFsPC9saT4KKyAgICAgIDxsaT5kZXN0cm95QXBwbGljYXRpb25zPC9saT4KKyAgICAgIDxsaT5kZXN0cm95Q29uZmlnRGlnZXN0ZXI8L2xpPgorICAgICAgPGxpPmdldEFwcGxpY2F0aW9uQ29uZmlnPC9saT4KKyAgICAgIDxsaT5nZXRSZXF1ZXN0UHJvY2Vzc29yPC9saT4KKyAgICAgIDxsaT5pbml0QXBwbGljYXRpb25Db25maWc8L2xpPgorICAgICAgPGxpPmluaXRBcHBsaWNhdGlvbkRhdGFTb3VyY2VzPC9saT4KKyAgICAgIDxsaT5pbml0QXBwbGljYXRpb25QbHVnSW5zPC9saT4KKyAgICAgIDxsaT5pbml0QXBwbGljYXRpb25NZXNzYWdlUmVzb3VyY2VzPC9saT4KKyAgICAgIDxsaT5pbml0Q29uZmlnRGlnZXN0ZXI8L2xpPgorICAgICAgPGxpPm1ldGhvZHMgY3JlYXRlZCBmb3IgYmFja3dhcmQtY29tcGF0aWJsaXR5IG9ubHkKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5kZWZhdWx0Q29udHJvbGxlckNvbmZpZzwvbGk+CisgICAgICAgICAgPGxpPmRlZmF1bHRGb3JtQmVhbnNDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0Rm9yd2FyZHNDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0TWFwcGluZ3NDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPHA+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9hPjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+aW5kZXhlZDwvbGk+CisgICAgICA8bGk+c2V0SW5kZXhlZDwvbGk+CisgICAgICA8bGk+Z2V0SW5kZXhlZDwvbGk+CisgICAgPC91bD4KKyAgICA8cD48c3Ryb25nPkNsYXNzZXMgZGVwcmVjYXRlZCBiZXR3ZWVuIFN0cnV0cyAxLjAgYW5kIFN0cnV0cyAxLjE8L3N0cm9uZz48L3A+CisgICAgPHA+YWN0aW9uPC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5BY3Rpb25FeGNlcHRpb248L2xpPgorICAgICAgPGxpPkFjdGlvbkZvcm1CZWFuczwvbGk+CisgICAgICA8bGk+QWN0aW9uRm9yd2FyZHM8L2xpPgorICAgICAgPGxpPkFjdGlvbk1hcHBpbmdzPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxzdHJvbmc+Q2xhc3NlcyB3aXRoIG1lbWJlcnMgZGVwcmVjYXRlZCBiZXR3ZWVuIFN0cnV0cyAxLjAgYW5kIFN0cnV0cyAxLjE8L3N0cm9uZz48L3A+CisgICAgPHA+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+YWN0aW9uLkFjdGlvbjwvYT48L3A+CisKKyAgICA8dWw+CisgICAgICA8bGk+Rk9STV9CRUFOU19LRVk8L2xpPgorICAgICAgPGxpPkZPUldBUkRTX0tFWTwvbGk+CisgICAgICA8bGk+TUFQUElOR1NfS0VZPC9saT4KKyAgICAgIDxsaT5nZXRSZXNvdXJjZXMoKTwvbGk+CisgICAgICA8bGk+cGVyZm9ybTwvbGk+CisgICAgPC91bD4KKyAgICA8cD48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvYT48L3A+CisgICAgPHVsPgorICAgICAgPGxpPmZpbmREYXRhU291cmNlPC9saT4KKyAgICAgIDxsaT5maW5kRm9ybUJlYW48L2xpPgorICAgICAgPGxpPmZpbmRGb3J3YXJkPC9saT4KKyAgICAgIDxsaT5maW5kTWFwcGluZzwvbGk+CisgICAgICA8bGk+aW5pdERhdGFTb3VyY2VzPC9saT4KKyAgICAgIDxsaT5tZXRob2RzIGNyZWF0ZWQgZm9yIGJhY2t3YXJkLWNvbXBhdGlibGl0eSBvbmx5CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+ZGVmYXVsdENvbnRyb2xsZXJDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0Rm9ybUJlYW5zQ29uZmlnPC9saT4KKyAgICAgICAgICA8bGk+ZGVmYXVsdEZvcndhcmRzQ29uZmlnPC9saT4KKyAgICAgICAgICA8bGk+ZGVmYXVsdE1hcHBpbmdzQ29uZmlnPC9saT4KKyAgICAgICAgICA8bGk+ZGVmYXVsdE1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uPgorICAgIDxwIGNsYXNzPSJyaWdodCI+CisgICAgTmV4dDogPGEgaHJlZj0iaW5zdGFsbGF0aW9uLmh0bWwiPkluc3RhbGxhdGlvbjwvYT4KKyAgICA8L3A+Cis8L3NlY3Rpb24+CisKKworICAgIDwvYm9keT4KKworPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9yZWxlYXNlLW5vdGVzLTEuMS54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlMzk1YjMKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy0xLjEueG1sCkBAIC0wLDAgKzEsOTAwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9InJlbGVhc2Utbm90ZXMtMS4xLmh0bWwiPgorCisgIDxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5TdHJ1dHMgUmVsZWFzZSBOb3RlcyAoVmVyc2lvbiAxLjEpPC90aXRsZT4KKyAgPC9wcm9wZXJ0aWVzPgorCisgIDxib2R5PgorCisgIDxzZWN0aW9uIG5hbWU9IjYuMSBSZWxlYXNlIE5vdGVzIiBocmVmPSJyZWxlYXNlX25vdGVzIi8+CisgIDxzZWN0aW9uIG5hbWU9IlJlbGVhc2UgTm90ZXMiIGhyZWY9ImJldGEiPgorCisgICAgPHA+VGhpcyBzZWN0aW9uIGNvbnRhaW5zIHRoZSByZWxlYXNlIG5vdGVzIGZvciB0aGUKKyAgICA8c3Ryb25nPlZlcnNpb24gMS4xPC9zdHJvbmc+IGJ1aWxkIG9mIHRoZSBTdHJ1dHMgRnJhbWV3b3JrLCBmb3IgY2hhbmdlcyB0aGF0CisgICAgaGF2ZSB0YWtlbiBwbGFjZSBzaW5jZQorICAgIDxhIGhyZWY9InJlbGVhc2Utbm90ZXMtMS4xLXJjMi5odG1sIj5WZXJzaW9uIDEuMSBSZWxlYXNlIENhbmRpZGF0ZSAyPC9hPgorICAgIHdhcyBpc3N1ZWQuIEZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgY2hhbmdlcyBzaW5jZSB0aGUgbGFzdAorICAgIHByb2R1Y3Rpb24gcmVsZWFzZSwgc2VlIHRoZSA8YSBocmVmPSIjSW50cm9kdWN0aW9uIj5JbnRyb2R1Y3Rpb248L2E+IDwvcD4KKworICA8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IlJlbGVhc2UgQ2FuZGlkYXRlL0JldGEgRml4ZXMiIGhyZWY9ImJldGEuQ2hhbmdlcyI+CisKKyAgICA8cD4KKyAgICAgICAgSW4gUkMyLCB0aGUgPHN0cm9uZz5Db21tb25zLURCQ1AgYW5kIENvbW1vbnMtUG9vbCBkZXBlbmRlbmNpZXMgaGF2ZSBiZWVuIHJlbW92ZWQ8L3N0cm9uZz4uCisgICAgICAgIFRoZXNlIGFyZSByZXBsYWNlZCB3aXRoIGEgZGVwZW5kZW5jeSBvbiB0aGUKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL2FyY2hpdmUuYXBhY2hlLm9yZy9kaXN0L2pha2FydGEvc3RydXRzL29sZC9yZWxlYXNlL3N0cnV0cy1sZWdhY3kvIj5TdHJ1dHMtTGVnYWN5IHBhY2thZ2U8L2E+LAorICAgICAgICBjb250YWluaW5nIHRoZSBHZW5lcmljRGF0YVNvdXJjZSBhbmQgR2VuZXJpY0Nvbm5lY3Rpb24gY2xhc3NlcyBmcm9tIFN0cnV0cyAxLjAuMi4KKyAgICAgICAgVGhlc2UgYXJlIGRpc3RyaWJ1dGVkIGZvciBKMlNFIDEuMyBidXQgbWF5IGJlIHJlY29tcGlsZWQgZm9yIEoyU0UgMS40LgorICAgICAgICBPdGhlciBEYXRhU291cmNlIGltcGxlbWVudGF0aW9ucyBtYXkgYmUgcGx1Z2dlZCBpbiAocmVjb21tZW5kZWQpLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICBPdGhlciBjaGFuZ2VzIHNpbmNlIFJDMSBoYXZlIGJlZW4gcm91dGluZSBmaXhlcyBhbmQgcmVmYWN0b3JpbmdzLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICA8c3Ryb25nPk9USEVSIENIQU5HRVM6PC9zdHJvbmc+CisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIDxzdHJvbmc+QWN0aW9uIHBhY2thZ2U6PC9zdHJvbmc+CisgICAgICAgIERlcHJlY2F0ZWQgcHJvY2Vzc0FjdGlvbkZvcndhcmQoKSBiZWNhdXNlIEFjdGlvbkZvcndhcmQgaXMgYSBzdWJjbGFzcyBvZiBGb3J3YXJkQ29uZmlnIHNvIHRoZXJlJ3Mgbm8gcmVhc29uIHdlIGNhbid0IHVzZSBwcm9jZXNzRm9yd2FyZENvbmZpZygpIGluc3RlYWQuCisgICAgICAgIFVwZGF0ZWQgdG8gdXNlIHByb2Nlc3NGb3J3YXJkQ29uZmlnIGluc3RlYWQgb2YgZGVwcmVjYXRlZCBwcm9jZXNzQWN0aW9uRm9yd2FyZC4KKyAgICAgICAgRGVwcmVjYXRlZCB0aGUgcmVzdCBvZiB0aGUgQWN0aW9uIGNvbnN0YW50cyBpbiBmYXZvciBvZiBHbG9iYWxzLgorICAgICAgICBSZWZhY3RvcmVkIHNvbWUgb2YgaW5pdE1vZHVsZUNvbmZpZyBpbnRvIGEgc2VwYXJhdGUgbWV0aG9kIGFuZCBjbGVhbmVkIHVwLgorICAgICAgICBJbXByb3ZlZCBleGNlcHRpb24gaGFuZGxpbmcgaW4gQWN0aW9uU2VydmxldCBhbmQgUmVxdWVzdFByb2Nlc3NvcjsgZ2VuZXJhbGx5LCB3ZSBsaW1pdGVkIHRoZSBzY29wZSBvZiB0cnkvY2F0Y2ggYmxvY2tzIGFuZCBjYXVnaHQgc3BlY2lmaWMgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiBUaHJvd2FibGUuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIDxzdHJvbmc+RG9jdW1lbnRhdGlvbjo8L3N0cm9uZz4KKyAgICAgICAgRG9jdW1lbnQgdGhlICZsdDtodG1sOmh0bWwmZ3Q7IHRhZydzIGxvY2FsZSBhdHRyaWJ1dGUgYmVoYXZpb3VyIG9mIGNyZWF0aW5nIGEgc2Vzc2lvbiBpZiBuZWVkZWQuCisgICAgICAgIEFkZGVkIG5vdGUgdG8gdmFsaWRhdG9yIHNlY3Rpb24gcmVnYXJkaW5nIHRoZSBjb252ZXJOdWxsIHNlcnZsZXQgcGFyYW1ldGVyIGFuZCByZXF1aXJlZCB2YWxpZGF0aW9ucyBvZiBqYXZhLmxhbmcuSW50ZWdlciBmaWVsZHMuCisgICAgICAgIE1vdmVkIHNpdGVzIGFuZCBjb25zdWx0YW50cyBwYWdlIHRvIFN0cnV0cyBXaWtpLgorICAgICAgICBPdGhlciBtaW5vciB0d2Vha3MuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIDxzdHJvbmc+RUwgcGFja2FnZTo8L3N0cm9uZz4KKyAgICAgICAgRml4ZWQgbWFwcGluZyBvZiAib25rZXlwcmVzcyIgYXR0cmlidXRlLgorICAgICAgICBTZXBhcmF0ZWQgImV4cHIiIGF0dHJpYnV0ZSBpbnRvICJleHByIiBhbmQgImV4cHJWYWx1ZSIsIGJlaW5nIHRoZSBvcmlnaW5hbCBhdHRyaWJ1dGUgdmFsdWUgYW5kIHRoZSBldmFsdWF0ZWQgdmFsdWUuCisgICAgICAgIEZpeGVkIHByb2JhYmx5IGxvbmctc3RhbmRpbmcgYnVnIGluIG5vdE1hdGNoIHRhZyB0aGF0IG1hZGUgaXQgYmVoYXZlIGlkZW50aWNhbGx5IHRvIHRoZSAibWF0Y2giIHRhZyAoaW5zdGVhZCBvZiB0aGUgcmV2ZXJzZSkuCisKKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICAgICAgPHN0cm9uZz5FeGFtcGxlIGFwcGxpY2F0dGlvbnM6PC9zdHJvbmc+CisgICAgICAgIEFkZGVkIE11bHRpLWNvbmZpZyBmaWxlcyBmb3IgdGhlIGV4YW1wbGUgYXBwLgorICAgIDwvcD4KKworCisgICAgPHA+CisgICAgICAgIDxzdHJvbmc+TGVnYWN5IHBhY2thZ2U6PC9zdHJvbmc+CisgICAgICAgIEFkZGVkIHBhY2thZ2UgdW5kZXIgY29udHJpYiB0byBob3N0IG9sZCBHZW5lcmljRGF0YVNvdXJjZSBhbmQgR2VuZXJpY0Nvbm5lY3Rpb24gY2xhc3Nlcy4KKworICAgIDwvcD4KKyAgICA8cD4KKyAgICAgICAgPHN0cm9uZz5UYWdsaWJzIHBhY2thZ2VzOjwvc3Ryb25nPgorICAgICAgICBGaXhlZCBzZXZlcmFsIGltcG9ydCBzdGF0ZW1lbnRzLgorICAgICAgICBSZWZhY3RvcmVkIGNvbnZlcnRpbmcgYSBzY29wZSBuYW1lIGludG8gaXRzIGludGVnZXIgY29uc3RhbnQgaW50byBhIG5ldyBtZXRob2QgUmVxdWVzdFV0aWxzLmdldFNjb3BlKFN0cmluZyksIGFuZCBjaGFuZ2VkIHRoZSBEZWZpbmVUYWcsIEVtcHR5VGFnLCBhbmQgVGFnVXRpbHMgY2xhc3NlcyB0byB1c2UgdGhlIG5ldyBtZXRob2QuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIDxlbT5mYWNlcyB0YWdsaWIuPC9lbT4gQWRkZWQgZWFybHkgcmVsZWFzZSB0byBjb250cmliIGFyZWEuCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgPGVtPmh0bWwgdGFnbGliLjwvZW0+CisgICAgICAgUmVzZXQgdGhlICdwcm9jZXNzZWQnIGZsYWcgYXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIHVzYWdlIG9mIHRoZSB0YWcuIFVzZSBhIGxvY2FsIGNvcHkgb2YgdGhlICduYW1lJyBhdHRyaWJ1dGUgdG8gYXZvaWQgbW9kaWZ5aW5nIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXRzZWxmLgorICAgICAgIEZpeGVkIHJlZmVyZW5jZXMgdG8gc3RhdGljIG1lbWJlcnMuCisgICAgICAgRm9yIEZyYW1lVGFnIGFuZCBIaWRkZW5UYWcsIGNvbmZvcm0gVExEIHdpdGggaW1wbGVtZW50YXRpb25zLgorICAgICAgIEluIEVycm9yc1RhZywgcmVuZGVyIGEgcGxhdGZvcm0taW5kZXBlbmRlbnQgbGluZSBlbmRpbmcgaW5zdGVhZCBvZiBoYXJkIGNvZGVkICJcclxuIi4KKyAgICAgICBJbiBKYXZhU2NyaXB0VmFsaWRhdG9yVGFnLCBtYWtlIHRoZSBsaW5lLWVuZCBnZW5lcmF0aW9uIHBsYXRmb3JtIGluZGVwZW5kZW50IHNvIHRoYXQgQ2FjdHVzIHRlc3RzIHdvcmsgcHJvcGVybHkuCisgICAgICAgSW4gRm9ybVRhZywgcmVmYWN0b3JlZCBjb2RlIGludG8gc21hbGxlciByZXVzYWJsZSBtZXRob2RzLgorICAgICAgIEluIFJld3JpdGVUYWcsIGVuY29kZSB0aGUgYW1wZXJzYW5kIGNoYXJhY3RlciBpbiBYSFRNTCBtb2RlIG9ubHksIG90aGVyd2lzZSB3cml0ZSB0aGUgYW1wZXJzYW5kIGFzIGlzIHNvIHRoZSBVUkwgd2lsbCB3b3JrIGluIEphdmFTY3JpcHQgc2NyaXB0cy4KKyAgICAgICBSZWZhY3RvcmVkIGZvcm0gYmVhbiBpbml0aWFsaXphdGlvbiBvdXQgb2YgZG9TdGFydFRhZygpIGludG8gaXRzIG93biBtZXRob2QuCisgICAgICAgUmVmYWN0b3JlZCBkb1N0YXJ0VGFnKCkgJ2lmJyBzdGF0ZW1lbnQgdG8gYXZvaWQgaGF2aW5nIGxvbmcgbmVzdGVkICdpZicgbG9naWMuCisgICAgICAgSW4gRXJyb3JUYWcsIGZpeGVkIGZvcm1hdHRpbmcgYW5kIGRlcHJlY2F0ZWQgdW51c2VkIGRlZmF1bHRMb2NhbGUgdmFyaWFibGUuCisgICAgICAgUmVmYWN0b3JlZCBkb1N0YXJ0VGFnKCkgYW5kIGRvRW5kVGFnKCkgaW50byBzbWFsbGVyIG1ldGhvZHMuCisgICAgICAgTW92ZWQgeGh0bWwgY2hlY2sgdG8gUmVxdWVzdFV0aWxzIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgdGhlIGxvZ2ljIGluIG1hbnkgZGlmZmVyZW50IGNsYXNzZXMuCisgICAgICAgQWRkZWQgbG9va3VwUHJvcGVydHkoKSBtZXRob2QgdG8gQmFzZUhhbmRsZXJUYWcgYmVjYXVzZSBib3RoIFJhZGlvVGFnIGFuZCBUZXh0YXJlYVRhZyB1c2VkIHRoZSBzYW1lIGNvZGUuCisgICAgICAgUmVmYWN0b3JlZCBUZXh0YXJlYVRhZyBpbnRvIHNtYWxsZXIgbWV0aG9kcy4KKyAgICAgICBJbiBKYXZhU2NyaXB0VmFsaWRhdG9yVGFnLCByZXBsYWNlZCBkdXBsaWNhdGVkIGNvZGUgd2l0aCBjYWxsIHRvIFJlcXVlc3RVdGlscy5yZXRyaWV2ZVVzZXJMb2NhbGUoKSBhbmQgc2ltcGxpZmllZCBhbiAnaWYnIHN0YXRlbWVudC4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICAgICAgPGVtPmxvZ2ljIHRhZ2xpYi48L2VtPgorICAgICAgICBTZXQgJ2l0ZXJhdG9yJyB0byBudWxsIGluIGRvRW5kVGFnKCkgc28gdGhhdCB3ZSByZWxlYXNlIHRoZSBpdGVyYXRvciByZWZlcmVuY2UgYXMgZWFybHkgYXMgcG9zc2libGUuIFdlIGNhbm5vdCBkbyB0aGUgc2FtZSBmb3IgJ2NvbGxlY3Rpb24nIHNpbmNlIGl0IGlzIGEgdGFnIGF0dHJpYnV0ZSwgYW5kIG5lZWRzIHRvIHJlbWFpbiB1bmNoYW5nZWQgdG8gY29tcGx5IHdpdGggdGhlIEpTUCBzcGVjLgorICAgICAgICBEb24ndCBjcmVhdGUgZW1wdHkgY29va2llcyBhcnJheSBpZiBudWxsLCBqdXN0IGRvbid0IHJ1biB0aGUgbG9vcCBhdCBhbGwuCisgICAgICAgIEluIEZvcndhcmRUYWcsIHJlbW92ZSB1bm5lY2Vzc2FyeSB0ZXN0IGZvciBudWxsLgorCisgICAgPC9wPgorCisgICA8cD4KKyAgICAgICA8ZW0+bmVzdGVkIHRhYmxpYnMuPC9lbT4KKyAgICAgICBJbXByb3ZlZCBzdXBwb3J0IGZvciBUb21jYXQgNC4xLjE4LgorICAgICAgIFJlcGxhY2UgRVZBTF9CT0RZX0FHQUlOIHdpdGggRVZBTF9CT0RZX1RBRyBzbyB0aGF0IHRoZSBjb2RlIGNvbXBpbGVzIGFnYWluc3QgdGhlIEpTUCAxLjEgQVBJLgorICAgICAgIENoYW5nZWQgdGhlICZsdDtuZXN0ZWQ6ZGVmaW5lJmd0OyB0YWcncyB0ZWkgY2xhc3MgdG8gcmVmZXJlbmNlIGEgbmV3IGN1c3RvbSB0ZWkgY2xhc3MgZm9yIHRoZSBuZXN0ZWQgdGFncy4KKyAgIDwvcD4KKworICAgIDxwPgorICAgICAgICA8ZW0+dGlsZXMgdGFnbGliLjwvZW0+CisgICAgICAgIEZpeGVkIHJlZmVyZW5jZXMgdG8gc3RhdGljIG1lbWJlcnMuCisgICAgICAgIERlcHJlY2F0ZWQgb3V0ZGF0ZWQgVGlsZXMgVGV4dFRhZy4KKyAgICAgICAgRm9yIEluc2VydFRhZywgb25seSBpbmNsdWRlIHBhZ2UgaWYgaXQncyBub24tbnVsbC4KKyAgICAgICAgRm9yIEluc2VyVGFnLCByZW1vdmUgcGFnZSBjaGVjayBiZWZvcmUgaW5jbHVkaW5nIGZvciBtb3JlIGludmVzdGlnYXRpb24uCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIDxzdHJvbmc+VGVzdCBwYWNrYWdlczo8L3N0cm9uZz4KKyAgICAgICAgQWRkZWQgc2V2ZXJhbCBuZXcgdGVzdHMgZm9yIHRoZSBiZWFuLCBodG1sLCBhbmQgbG9naWMgdGFnbGlicyB0byB0aGUgc3VpdGUgc2V0dXAgYXQgdGhlIHRhaWwtZW5kIG9mIFJDMS4KKyAgICAgICAgTm90ZTogV2UgY2Fubm90IHJlc29sdmUgcmVxdWVzdC5nZXRTZXJ2ZXJQb3J0KCkgaW4gdGhlIENhY3R1cyAxLjQueCBlbnZpcm9ubWVudCwgc28gZm9yIG5vdywgb3VyIHRlc3RzIHdpbGwgb25seSBydW4gb24gQ2FjdHVzIDEuMworICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICA8c3Ryb25nPlRpbGVzIHBhY2thZ2U6PC9zdHJvbmc+CisgICAgICAgIERlcHJlY2F0ZWQgVGlsZXNVdGlsLmFwcGxpY2F0aW9uQ2xhc3MoKSBpbiBmYXZvciBvZiBSZXF1ZXN0VXRpbHMuYXBwbGljYXRpb25DbGFzcygpCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIDxzdHJvbmc+VXRpbCBwYWNrYWdlOjwvc3Ryb25nPgorICAgICAgICByZXRyaWV2ZVVzZXJMb2NhbGUgbm93IHVzZXMgdGhlIHJlcXVlc3QuZ2V0TG9jYWxlKCkgbWV0aG9kIGZvciBmaW5kaW5nIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxvY2FsZS4KKyAgICAgICAgSWYgdXNlciBoYXMgbm90IHNwZWNpZmllZCB0aGlzIHdpdGggQWNjZXB0LUxhbmd1YWdlIGhlYWRlciwgdGhlIHNlcnZlciBkZWZhdWx0IGxvY2FsZSBpcyB1c2VkLgorICAgICAgICBDaGFuZ2UgZW5jb2RlVVJMKCkgdG8gbm90IHVzZSByZWZsZWN0aW9uIG9uIGV2ZXJ5IGNhbGwuCisgICAgICAgIEluIFJlcXVlc3RVdGlscywgc2ltcGxpZmllZCBzZXBhcmF0b3IgbG9naWMgaW4gY29tcHV0ZVVSTCgpLgorICAgIDwvcD4KKworICAgIDxwPgorICAgICAgICA8c3Ryb25nPlZhbGlkYXRvciBwYWNrYWdlOjwvc3Ryb25nPgorICAgICAgICBEZXByZWNhdGUgbG9nZ2luZyBtZXRob2RzIGFuZCBpbmRpY2F0ZSB0aGF0IGNvbW1vbnMtbG9nZ2luZyBzaG91bGQgYmUgdXNlZC4KKyAgICAgICAgTG9naWMgc2ltcGxpZmljYXRpb24gYW5kIG1pbm9yIGZvcm1hdHRpbmcgZml4ZXMgdG8gUmVzb3VyY2VzIGNsYXNzLgorCisgICAgPC9wPgorCisgICAgPHA+CisgICAgICAgIDxzdHJvbmc+YnVpbGQgZmlsZXM6PC9zdHJvbmc+CisgICAgPC9wPgorCisgICAgPHVsPgorICAgICAgICA8bGk+CisgICAgICAgICAgICAoYnVpbGQucHJvcGVydGllcy5zYW1wbGUpIEFkZCBhbiBlbnRyeSBmb3IgaHR0cC11bml0LgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgICBSZW1vdmUgZGVwZW5kZW5jeSBvbiBDb21tb25zIFJlc291cmNlcyBmb3IgU3RydXRzIDEuMSByZWxlYXNlLiAoVGhpcyBtaWdyYXRpb24gd2lsbCBoYXBwZW4gbGF0ZXIpLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIFN0cnV0cyBhZ2FpbnN0IHRoZSBTZXJ2bGV0IDIuNCBhbmQgSlNQIDIuMCBBUElzLCB3aGVyZSB0aGUgSlNQIGNsYXNzZXMgaGF2ZSBiZWVuIHB1bGxlZCBvdXQgaW50byB0aGVpciBvd24gSkFSIGZpbGUgKGpzcC5qYXIpLiBPbiBhbiBlYXJsaWVyIHBsYXRmb3JtLCB5b3UgY2FuIGxlYXZlIHRoZSAianNwLmphciIgcHJvcGVydHkgdW5zZXQgYW5kIHRoaW5nIHdpbGwgY29udGludWUgdG8gb3BlcmF0ZSBhcyB0aGV5IGhhdmUgYmVmb3JlLgorICAgICAgICA8L2xpPgorCisgICAgPC91bD4KKworCisgICAgPHA+CisgICAgICAgIDxzdHJvbmc+QnVnemlsbGEgUHJvYmxlbSBSZXBvcnQgZml4ZXM6PC9zdHJvbmc+CisgICAgPC9wPgorCisgICAgPHVsPgorICAgICAgICA8bGk+CisgICAgICAgICAgICBGaXhlZCAjMTczMTIgLSByZXRyaWV2ZVVzZXJMb2NhbGUgdGhyb3dzIGV4Y2VwdGlvbiB3aXRob3V0IHNlc3Npb25zLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgIEZpeGVkICMxNzI1NCAtIElmIGJvZHkgdGV4dCBpcyBlbXB0eSBhbmQgdGhlcmUncyBubyByZXNvdXJjZSBrZXkgdG8gbG9va3VwLCBkaXNwbGF5IG5vdGhpbmcgaW4gdGhlIG9wdGlvbi4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgICBGaXhlZCAjMTczNzEtIFRoZSB0YWcgbm93IHVzZXMgUmVxdWVzdFV0aWxzLnJldHJpZXZlVXNlckxvY2FsZSBmb3IgbG9va2luZyB1cCB0aGUgYXBwcm9wcmlhdGUgbG9jYWxlLiBVc2luZyB0aGF0IG1ldGhvZCBwcm90ZWN0cyB1cyBmcm9tIG5lZWRsZXNzbHkgY3JlYXRpbmcgYSBzZXNzaW9uLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgIEZpeGVkICMxNzM3NSAtIFByb2JsZW0gaW4gRUxFcnJvcnNUYWcgYmVjYXVzZSB0aGUgIm5hbWUiIGF0dHJpYnV0ZSBvZiBFcnJvcnNUYWcgaGFzIGEgbm9uLW51bGwgZGVmYXVsdCB2YWx1ZS4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIEZpeGVkICMxNzYyMiAtIHZhbGlkYXRvci1ydWxlcy54bWwgaXNzdWVzLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgRml4ZWQgIzE3Mjk5IC0gU2V0IHBhZ2UgdmFyaWFibGUgZnJvbSBkeW5hIG1hcCBiZWZvcmUgdmFsaWRhdGluZy4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIEZpeGVkICMxNzgzOCAtIEhlbHAgZGVidWcgc3BlY2lmaWMgdXNlciBlcnJvcnMgYnkgc2hvd2luZyBxdW90ZXMgYXJvdW5kIHRoZSBrZXkgdGhhdCBpcyBpbiBlcnJvciAobWlzc2luZyBvciBtaXNwZWxsZWQpLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgRml4ZWQgIzE3ODMzIC0gdmFsaWRhdGVTaG9ydCBhbmQgaXNBbGxEaWdpdHMgZm9yIG5lZ2F0aXZlIG51bWJlcnMuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgICBGaXhlZCAjMTczMjggLSBTeW5jaHJvbml6ZWQgbG9hZExvY2FsZS4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgIEZpeGVkICMxODAxOCAtIENoYW5nZWQgZmllbGQtKiB2YXJpYWJsZXMgdG8gY2FtZWwgY2FzZSBhbmQgbm8gIi0iLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgRml4ZWQgIzE2NTQ4IC0gdmFsaWRhdGVNaW5MZW5ndGggYW5kIHZhbGlkYXRlTWF4TGVuZ3RoIGFyZSBub3cgaW5kZXBlbmRlbnQgb2YgdGhlIHJlcXVpcmVkIGNoZWNrLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICBGaXhlZCAjMTczODkgLSBTcGxpY2UgaW4gdGhlIEkxOG5GYWN0b3J5U2V0LmNhbGN1bGF0ZVBvc3RpeGVzIGZyb20gdGhlIGF0dGFjaG1lbnQsIHJlYnVpbGQsIGFuZCByYW4gdGhlIHVuaXQgdGVzdHMgc3VjY2Vzc2Z1bGx5LgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICBGaXhlZCAjMTcyNzMgLSBSZW1vdmVkIGV4dHJhIHJldHVybiBzdGF0ZW1lbnQgKFJlcXVlc3RVdGlscykuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgIEZpeGVkICMxNzU5MiAtIFRhZyBzaG91bGQgc3VwcG9ydCBhICJuYWtlZCIgY29sbGVjdGlvbiB0aGF0IGlzIG5vdCBhIHByb3BlcnR5IG9mIGEgYmVhbi4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgRml4ZWQgIzE3NTkyIC0gTWFkZSAicHJvcGVydHkiIGF0dHJpYnV0ZSBvZiAib3B0aW9uc0NvbGxlY3Rpb24iIHRhZyBiZSBub3QgcmVxdWlyZWQsIHRvIG1hdGNoIHNhbWUgY2hhbmdlIG1hZGUgZm9yICMxNzU5MiBpbiBiYXNlIHRhZy4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgRml4ZWQgIzE3NTYyIC0gQ2hhbmdlIHRoZSBJbnNlcnRUYWcgdG8gbGV0IGl0IHVzZSBQYWdlQ29udGV4dC5pbmNsdWRlKCkgaW5zdGVhZCBvZiBSZXF1ZXN0RGlzcGF0Y2hlci5pbmNsdWRlKCkuIFdlIGFyZSBubyBiYWNrIHRvIHRoZSBzYW1lIG1lY2hhbmlzbSB1c2VkIGluIHRoZSAxLjFiMyByZWxlYXNlLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICBGaXhlZCAjMTgxODYgLSBVc2UgdGVtcCB2YXJpYWJsZSBpbnN0ZWFkIG9mIG92ZXJ3cml0aW5nIHRhZyBhdHRyaWJ1dGUgdmFyaWFibGUuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgIEZpeGVkICMxODM5NCAtIENoYW5nZWQgZXJyb3IgdG8gaW5mbyBsb2cgaWYgRGVmaW5pdGlvbnNGYWN0b3J5IGlzIG5vdCBzdXBwbGllZC4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgRml4ZWQgIzE4NTM4IC0gQ2hhbmdlZCBzaG9ydG5hbWUgdG8gInRpbGVzIi4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgRml4ZWQgIzE4NTkxIC0gQnJhY2VzIHBsYWNlbWVudCBpbiBtZXNzYWdlKCkuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgIEZpeGVkICMxODAxOCAtIERvbid0IG91dHB1dCByZXF1aXJlZGlmIGZpZWxkKiBqYXZhc2NyaXB0IHZhcmlhYmxlcyBiZWNhdXNlIHRoZXkncmUgbm90IHVzZWQgYW5kIGJyZWFrIG90aGVyIHZhbGlkYXRpb25zLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICBGaXhlZCAjMTg3OTQgLUNoZWNrIFNlcnZsZXRDb250ZXh0IGZvciBNb2R1bGVDb25maWcgaW5zdGVhZCBvZiByZXF1ZXN0LgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICBGaXhlZCAjMTg4NjQgLSBDaGFuZ2VkIENsYXNzLVBhdGggdG8gY29uZm9ybSB0byBqYXIgc3BlYy4gIFRoZSBwcmV2aW91cyBwYXRjaCBmaXhpbmcgYSBidWcgaW4gIFdlYkxvZ2ljIGNhdXNlZCB3YXJuaW5ncyBpbiBSZXNpbi4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgRml4ZWQgIzE4OTkxIC0gQWxsb3cgbWVzc2FnZXMgb2JqZWN0IHBhc3NlZCB0byBhZGQoQWN0aW9uTWVzc2FnZXMpIHRvIGJlIG51bGwuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgIEZpeGVkICMxOTA0MCAtICBBZGRlZCBudWxsIGNoZWNrcyBiYWNrIHRvIEFjdGlvblNlcnZsZXQuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgIEZpeGVkICMxOTE1NyAtIEltcGxlbWVudCBTZXJpYWxpemFibGUgaW4gTmVzdGVkUmVmZXJlbmNlLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICBGaXhlZCAjMTg4NjkgLSBBZGRlZCBkaXNwbGF5LW5hbWUgdG8gd2ViLnhtbCBmaWxlcy4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICBGaXhlZCAjMTkyMjMgLSBTeW5jaHJvbml6ZWQgdG9rZW4gbWV0aG9kcyBmb3IgUFIuICBQb3N0IDEuMSB0aGVzZSBtZXRob2RzIHNob3VsZCBiZSBtb3ZlZCB0byBzb21lIGtpbmQgb2YgVG9rZW5Qcm9jZXNzb3IgY2xhc3MgZm9yIHJldXNhYmlsaXR5IGJ5IG90aGVyIGNvbXBvbmVudHMgc3VjaCBhcyB0aGUgUmVxdWVzdFByb2Nlc3NvciAoIzE2NzQzKS4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICAgRml4ZWQgIzE5MjM2IC0gIEFkZGVkICJhY3Rpb24iIGF0dHJpYnV0ZSB0byAiaHRtbC1lbDpmcmFtZSIgdGFnLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICBGaXhlZCAjMTE5MzIgLSBGYWN0b3JlZCBjb21tb24gY29kZSBvdXQgb2YgbWVzc2FnZSgpIGFuZCBwcmVzZW50KCkgaW50byBhIG5ldyBwcml2YXRlIG1ldGhvZCByZXRyaWV2ZU1lc3NhZ2VSZXNvdXJjZXMuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgIEZpeGVkICMxMTkyMiAtIE1vdmVkIEFjdGlvbidzIHRva2VuIG1ldGhvZHMgdG8gdGhpcyBuZXcgY2xhc3MgdG8gZml4IHN5bmNocm9uaXphdGlvbiBpc3N1ZXMgYW5kIGFsbG93IEFjdGlvbiB0byBiZSBtb3JlIGZvY3VzZWQuCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgIEZpeGVkICMxOTU5NCAtIEZpeGVkIG1pbmxlbmd0aCBqYXZhc2NyaXB0IGZvciBQUi4gIEFsc28sIHJlbW92ZWQgcGFzc3dvcmQgZmllbGQgY2hlY2tpbmcgZnJvbSB2YWxpZGF0ZU1hc2suCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgRml4ZWQgIzE5NzczIC0gRW1wdHlUYWcgYW5kIGFkZGVkIHRlc3QgdG8gZXhlcmNpc2UtdGFnbGliIHdlYmFwcC4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICBGaXhlZCAjMTk4MzUgLSBBZGQgY2hlY2sgYWdhaW5zdCAtMSB0byBtYXhTaXplLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgIEZpeGVkICMyMDAzNCAtIENhbGwgcmVsZWFzZUludGVybmFsKCkgaW4gcmVsZWFzZSgpIHNvIGlmIGVycm9yIG9jY3VycyBiZXR3ZWVuIGJlZ2luL2VuZCBvZiB0YWcgbmV4dCB1c2VyL3JlcXVlc3Qgd2lsbCBub3QgYmUgd29ya2luZyB3aXRoIG9sZCBwYXJhbWV0ZXJzLgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgIEZpeGVkICMyMDQ1NSAtIHZhbGlkYXRlUmVxdWlyZWRJZigpIGZhaWxzIG9uIFN0cmluZ3Mgb2Ygd2hpdGVzcGFjZS4KKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICBGaXhlZCAjMjA2NzggLSBTdHJ1dHMgZGF0YS1zb3VjZSBwaW5nUXVlcnkgcGFyYW1ldGVyCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgRml4ZWQgIzIwNzUwIC0gUmVxdWVzdFV0aWxzLnJldHJpZXZlTWVzc2FnZVJlc291cmNlcyAocmVhbGx5IGFuIFJDMiBidWcpCisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgRml4ZWQgIzIwODM1IC0gJmx0O2h0bWw6cmV3cml0ZSZndDsgdGFnIHVzaW5nIHBhZ2UgYXR0cmlidXRlIGJ1ZworICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgIEZpeGVkICMyMDg3NyAtIE1lc3NhZ2VzVGFnIGhhcyBpbmNvcnJlY3QgYXNzaWdubWVudCBpbiByZWxlYXNlKCkKKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICBGaXhlZCAjMjA5NDkgLSBUYWcgJmx0O2h0bWw6c2VsZWN0Jmd0OyBkb2Vzbid0IHdvcmsgd2VsbCBvbiBSQzIKKyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPgorICAgICAgICBGaXhlZCAjMjEwNTEgLSBqYXZhc2NyaXB0IHJlcXVpcmVkIHZhbGlkYXRvciBhY2NlcHRzIGZpZWxkcyBjb250YWluaW5nIG9ubHkgd2hpdGVzcGFjZQorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgIEZpeGVkICMyMTExOSAtIHR5cG8gaW4gc3RydXRzLWRvYy1jb25maWcueG1sCisgICAgICAgIDwvbGk+CisgICAgPC91bD4KKworCis8L3NlY3Rpb24+CisKKyAgPHNlY3Rpb24gbmFtZT0iSW50cm9kdWN0aW9uIiBocmVmPSJJbnRyb2R1Y3Rpb24iPgorCisgICAgPHA+VGhlIHJlbWFpbmRlciBvZiB0aGlzIGRvY3VtZW50IGNvbnRhaW5zIHRoZSByZWxlYXNlIG5vdGVzIGZvcgorICAgIDxzdHJvbmc+MS4xIFJlbGVhc2UgQ2FuZGlkYXRlIDI8L3N0cm9uZz4gYnVpbGQgb2YgdGhlIFN0cnV0cyBGcmFtZXdvcmssCisgICAgYW5kIGNvdmVycyBjaGFuZ2VzIHRoYXQgaGF2ZSB0YWtlbiBwbGFjZSBzaW5jZQorICAgIDxhIGhyZWY9InJlbGVhc2Utbm90ZXMtMS4wLjIuaHRtbCI+VmVyc2lvbiAxLjAuMjwvYT4KKyAgICB3YXMgcmVsZWFzZWQuICBUaGUgZm9sbG93aW5nIHNlY3Rpb25zIGNvdmVyCisgICAgPGEgaHJlZj0iI05ldyI+TmV3IEZlYXR1cmVzPC9hPiBhbmQgPGEgaHJlZj0iI0NoYW5nZXMiPkNoYW5nZXM8L2E+CisgICAgdG8gU3RydXRzLjwvcD4KKworICA8L3NlY3Rpb24+CisKKworICA8c2VjdGlvbiBuYW1lPSJXaGF0J3MgSW5jbHVkZWQ/IiBocmVmPSJJbmNsdWRlZCI+CisKKyAgICA8cD5UaGUgYmluYXJ5IGRpc3RyaWJ1dGlvbiBvZiB0aGlzIHJlbGVhc2UgaW5jbHVkZXMgdGhlIGZvbGxvd2luZworICAgIGZpbGVzIHJlbGV2YW50IHRvIFN0cnV0czo8L3A+CisgICAgPHVsPgorICAgIDxsaT48Y29kZT5JTlNUQUxMPC9jb2RlPiAtIEJyaWVmIGluc3RhbGxhdGlvbiBpbnN0cnVjdGlvbnMuICBTZWUKKyAgICAgICAgdGhlIDxjb2RlPlN0cnV0cyBEb2N1bWVudGF0aW9uIEFwcGxpY2F0aW9uPC9jb2RlPiwgb3Igb25saW5lIGF0CisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzLyI+aHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvPC9hPiwKKyAgICAgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24uPC9saT4KKyAgICA8bGk+PGNvZGU+TElDRU5TRTwvY29kZT4gLSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gbGljZW5zZSB0aGF0CisgICAgICAgIGRlZmluZXMgdGhlIHRlcm1zIHVuZGVyIHdoaWNoIHlvdSBjYW4gdXNlIFN0cnV0cyAoYW5kIG90aGVyIHNvZnR3YXJlCisgICAgICAgIGxpY2Vuc2VkIGJ5IEFwYWNoZSkuPC9saT4KKyAgICA8bGk+PGNvZGU+UkVBRE1FPC9jb2RlPiAtIEEgYnJpZWYgaW50cm9kdWN0aW9uIHRvIFN0cnV0cy48L2xpPgorICAgIDxsaT48Y29kZT5saWIvPC9jb2RlPiAtIERpcmVjdG9yeSBjb250YWluaW5nIGZpbGVzIHlvdSB3aWxsIG5lZWQgaW4KKyAgICAgICAgeW91ciBvd24gYXBwbGljYXRpb25zLiAgVGhlIGluZGl2aWR1YWwgZmlsZXMgb2YgaW50ZXJlc3QgYXJlOgorICAgICAgICA8dWw+CisgICAgICAgIDxsaT48Y29kZT5jb21tb25zLSouamFyPC9jb2RlPiAtIFJlbGVhc2UgcGFja2FnZXMgZnJvbSB0aGUKKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy8iPkpha2FydGEgQ29tbW9ucworICAgICAgICAgICAgUHJvamVjdDwvYT4gdGhhdCBTdHJ1dHMgcmVsaWVzIG9uLiAgWW91IGFyZSB3ZWxjb21lIHRvIHVzZSB0aGVzZQorICAgICAgICAgICAgY2xhc3NlcyBpbiB5b3VyIG93biBhcHBsaWNhdGlvbnMuICBUaGVzZSBKQVIgZmlsZXMgc2hvdWxkIGJlCisgICAgICAgICAgICBjb3BpZWQgaW50byB0aGUgPGNvZGU+L1dFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3Rvcnkgb2YKKyAgICAgICAgICAgIHlvdXIgd2ViIGFwcGxpY2F0aW9uLiBTZWUgYmVsb3cgZm9yIHRoZSB2ZXJzaW9uIG9mIGVhY2gKKyAgICAgICAgICAgIENvbW1vbnMgbGlicmFyeSB0aGF0IGlzIGluY2x1ZGVkLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMuamFyPC9jb2RlPiAtIEpBUiBmaWxlIHRoYXQgY29udGFpbnMgdGhlIGNvbXBpbGVkCisgICAgICAgICAgICBKYXZhIGNsYXNzZXMgb2YgU3RydXRzLiAgWW91IG11c3QKKyAgICAgICAgICAgIHBsYWNlIHRoaXMgZmlsZSBpbiB0aGUgPGNvZGU+L1dFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3Rvcnkgb2YKKyAgICAgICAgICAgIHlvdXIgd2ViIGFwcGxpY2F0aW9uLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMteHh4eHgudGxkPC9jb2RlPiAtIFRoZSB0YWcgbGlicmFyeSBkZXNjcmlwdG9yIGZpbGVzCisgICAgICAgICAgICBmb3IgdGhlIFN0cnV0cyAxLjEgdGFnIGxpYnJhcmllcyAoYmVhbiwgaHRtbCwgbG9naWMsIGFuZAorICAgICAgICAgICAgdGVtcGxhdGUpLiAgWW91IG11c3QgcGxhY2UgdGhlc2UgZmlsZXMgaW4gdGhlIDxjb2RlPi9XRUItSU5GPC9jb2RlPgorICAgICAgICAgICAgZGlyZWN0b3J5IG9mIHlvdXIgd2ViIGFwcGxpY2F0aW9uLCBhbmQgcmVmZXJlbmNlIHRoZW0gd2l0aAorICAgICAgICAgICAgYXBwcm9wcmlhdGUgPGNvZGU+Jmx0O3RhZ2xpYiZndDs8L2NvZGU+IGRpcmVjdGl2ZXMgaW4geW91cgorICAgICAgICAgICAgd2ViLnhtbCBmaWxlLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5qZGJjMl8wLXN0ZGV4dC5qYXI8L2NvZGU+IC0gVGhlIEpEQkMgMi4wIE9wdGlvbmFsIFBhY2thZ2UKKyAgICAgICAgICAgIEFQSSBjbGFzc2VzIChwYWNrYWdlIDxjb2RlPmphdmF4LnNxbDwvY29kZT4pLiAgWW91IHdpbGwgbmVlZCB0bworICAgICAgICAgICAgaW5jbHVkZSB0aGlzIGZpbGUgaW4gdGhlIDxjb2RlPi9XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5CisgICAgICAgICAgICBvZiB5b3VyIGFwcGxpY2F0aW9uLCBpZiBpdCBpcyBub3QgYWxyZWFkeSBtYWRlIHZpc2libGUgdG8gd2ViCisgICAgICAgICAgICBhcHBsaWNhdGlvbnMgYnkgeW91ciBzZXJ2bGV0IGNvbnRhaW5lci48L2xpPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLWNvbmZpZ18xXzEuZHRkPC9jb2RlPiAtIFRoZSBEb2N1bWVudCBUeXBlIERlZmluaXRpb24KKyAgICAgICAgICAgIChEVEQpIGZvciB0aGUgU3RydXRzIDEuMSBjb25maWd1cmF0aW9uIGZpbGUgKHdoaWNoIGlzIHR5cGljYWxseSBuYW1lZAorICAgICAgICAgICAgPGNvZGU+L1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWw8L2NvZGU+KS4gIFlvdXIgY29uZmlndXJhdGlvbiBmaWxlCisgICAgICAgICAgICB3aWxsIGJlIHZhbGlkYXRlZCBhZ2FpbnN0IGFuIGludGVybmFsIGNvcHkgb2YgdGhpcyBEVEQgLS0gdGhpcworICAgICAgICAgICAgY29weSBpcyBhdmFpbGFibGUgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMtY29uZmlnXzFfMC5kdGQ8L2NvZGU+IC0gVGhlIERvY3VtZW50IFR5cGUgRGVmaW5pdGlvbgorICAgICAgICAgICAgKERURCkgZm9yIHRoZSBTdHJ1dHMgMS4wIGNvbmZpZ3VyYXRpb24gZmlsZSAod2hpY2ggaXMgdHlwaWNhbGx5IG5hbWVkCisgICAgICAgICAgICA8Y29kZT4vV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4pLiAgWW91ciBjb25maWd1cmF0aW9uIGZpbGUKKyAgICAgICAgICAgIHdpbGwgYmUgdmFsaWRhdGVkIGFnYWluc3QgYW4gaW50ZXJuYWwgY29weSBvZiB0aGlzIERURCAtLSB0aGlzCisgICAgICAgICAgICBjb3B5IGlzIGF2YWlsYWJsZSBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPndlYi1hcHBfMl8yLmR0ZDwvY29kZT4gLSBUaGUgRG9jdW1lbnQgVHlwZSBEZWZpbml0aW9uIChEVEQpCisgICAgICAgICAgICBmb3Igd2ViLnhtbCBmaWxlcyBjb25mb3JtaW5nIHRvIHRoZSBTZXJ2bGV0IDIuMiBzcGVjaWZpY2F0aW9uLgorICAgICAgICAgICAgVGhpcyBjb3B5IGlzIGZvciByZWZlcmVuY2UgcHVycG9zZXMgb25seS48L2xpPgorICAgICAgICA8bGk+PGNvZGU+d2ViLWFwcF8yXzMuZHRkPC9jb2RlPiAtIFRoZSBEb2N1bWVudCBUeXBlIERlZmluaXRpb24gKERURCkKKyAgICAgICAgICAgIGZvciB3ZWIueG1sIGZpbGVzIGNvbmZvcm1pbmcgdG8gdGhlIFNlcnZsZXQgMi4zIHNwZWNpZmljYXRpb24uCisgICAgICAgICAgICBUaGlzIGNvcHkgaXMgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDwvdWw+PC9saT4KKyAgICA8bGk+PGNvZGU+d2ViYXBwcy88L2NvZGU+IC0gV2ViIEFwcGxpY2F0aW9uIEFyY2hpdmUgKFdBUikgZmlsZXMgZm9yIHRoZQorICAgICAgICB3ZWIgYXBwbGljYXRpb25zIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggU3RydXRzLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPlRoZSBmb2xsb3dpbmcgSmFrYXJ0YSBDb21tb25zIGxpYnJhcmllcyBhcmUgaW5jbHVkZWQgd2l0aCB0aGlzIHJlbGVhc2UKKyAgICBvZiBTdHJ1dHM6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Q29tbW9ucyBCZWFuVXRpbHMgMS42LjE8L2xpPgorICAgIDxsaT5Db21tb25zIENvbGxlY3Rpb25zIDIuMTwvbGk+CisgICAgPGxpPkNvbW1vbnMgRGlnZXN0ZXIgMS41PC9saT4KKyAgICA8bGk+Q29tbW9ucyBGaWxlVXBsb2FkIDEuMDwvbGk+CisgICAgPGxpPkNvbW1vbnMgTGFuZyAxLjAuMTwvbGk+CisgICAgPGxpPkNvbW1vbnMgTG9nZ2luZyAxLjAuMzwvbGk+CisgICAgPGxpPkNvbW1vbnMgVmFsaWRhdG9yIDEuMC4yPC9saT4KKyAgICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworICA8c2VjdGlvbiBuYW1lPSJXaGF0J3MgTmV3PyIgaHJlZj0iTmV3Ij4KKworICAgIDxwPkZvbGxvd2luZyBhcmUgaGlnaGxpZ2h0cyBvZiB0aGUgbmV3IGZlYXR1cmVzLiBJbiB0aGUgbmV4dCBzZWN0aW9uLCB3ZQorICAgIHByb3ZpZGUgbGlua3MgdG8gdGhlIEphdmFEb2NzIGZvciB0aGUgYWZmZWN0ZWQgY2xhc3Nlcy48L3A+CisKKyAgICA8cD48c3Ryb25nPk5ldyBDb25maWd1cmF0aW9uIERURDwvc3Ryb25nPjwvcD4KKyAgICA8cD4gVGhlIFN0cnV0cyBDb25maWd1cmF0aW9uIDEuMCBEVEQgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZiB0aGUKKyAgICA8Y29kZT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9kdGRzL3N0cnV0cy1jb25maWdfMV8xLmR0ZCI+c3RydXRzLWNvbmZpZ18xXzEuZHRkPC9hPjwvY29kZT4uCisgICAgSW4gdGhlIFN0cnV0cyAxLjEgcmVsZWFzZSwgZXhpc3RpbmcgU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZXMgY2FuIGJlCisgICAgbG9hZGVkIHVzaW5nIGVpdGhlciBEVEQgdmVyc2lvbi4KKyAgICA8L3A+CisKKyAgICA8cD48c3Ryb25nPk5ldyBEZXBlbmRlbmNpZXMgb24gQ29tbW9ucyBwYWNrYWdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5TZXZlcmFsIGNvbXBvbmVudHMgb2YgU3RydXRzIDEuMCBoYXZlIGJlZW4gZm91bmQgdG8gYmUgdXNlZnVsIGluCisgICAgZ2VuZXJhbCBKYXZhIGRldmVsb3BtZW50IChhbmQgbm90IGp1c3QgdXNlZnVsIGZvciBidWlsZGluZyBTdHJ1dHMtYmFzZWQKKyAgICB3ZWIgYXBwbGljYXRpb25zKSwgYW5kIGhhdmUgYmVlbiBtaWdyYXRlZCBpbnRvIHRoZQorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy8iPkpha2FydGEgQ29tbW9ucyBQcm9qZWN0PC9hPi4KKyAgICBBcyBhIHJlc3VsdCwgdGhpcyByZWxlYXNlIG9mIFN0cnV0cyBoYXMgYmVlbiBtb2RpZmllZAorICAgIHRvIHJlbHkgb24gdGhlIENvbW1vbnMgcGFja2FnZXMgY29udGFpbmluZyB0aGVzZSBjbGFzc2VzLCByYXRoZXIgdGhhbiB0aGUKKyAgICBTdHJ1dHMgaW50ZXJuYWwgdmVyc2lvbnMuICBJbiBuZWFybHkgZXZlcnkgY2FzZSwgdGhpcyBpbnZvbHZlZCBjaGFuZ2luZworICAgIG9ubHkgdGhlIDxjb2RlPmltcG9ydDwvY29kZT4gc3RhdGVtZW50cyBhdCB0aGUgdG9wIG9mIHRoZSBjbGFzc2VzLiAgQW55CisgICAgb2YgeW91ciBhcHBsaWNhdGlvbnMgdGhhdCB1dGlsaXplIHRoZXNlIGNsYXNzZXMgd2lsbCBuZWVkIHRvIGJlIG1vZGlmaWVkIGluCisgICAgdGhlIHNhbWUgd2F5LiAgPC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgQ29tbW9ucyBwYWNrYWdlcyBjb250YWluIHRoZSByZXBsYWNlbWVudHMgZm9yIHRoZQorICAgIGNvcnJlc3BvbmRpbmcgU3RydXRzIDEuMCBjbGFzc2VzOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxzdHJvbmc+QmVhblV0aWxzIFBhY2thZ2U8L3N0cm9uZz4KKyAgICAgICAgWzxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9iZWFudXRpbHMuaHRtbCI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlsczwvY29kZT48L2E+XSAtCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWxzLkJlYW5VdGlsczwvY29kZT4sCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWxzLkNvbnZlcnRVdGlsczwvY29kZT4sIGFuZAorICAgICAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlscy5Qcm9wZXJ0eVV0aWxzPC9jb2RlPi48L2xpPgorICAgIDxsaT48c3Ryb25nPkNvbGxlY3Rpb25zIFBhY2thZ2U8L3N0cm9uZz4KKyAgICAgICAgWzxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9jb2xsZWN0aW9ucy5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnM8L2NvZGU+PC9hPl0gIC0KKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5BcnJheVN0YWNrPC9jb2RlPiwKKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0QXJyYXlMaXN0PC9jb2RlPiwKKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0SGFzaE1hcDwvY29kZT4sCisgICAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdFRyZWVNYXA8L2NvZGU+LjwvbGk+CisgICAgPGxpPjxzdHJvbmc+RGlnZXN0ZXIgUGFja2FnZTwvc3Ryb25nPiAtCisgICAgICAgIFs8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvZGlnZXN0ZXIuaHRtbCI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyPC9jb2RlPjwvYT5dIC0KKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuKjwvY29kZT4uPC9saT4KKyAgICA8L3VsPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgQ29tbW9ucyBwYWNrYWdlcyBhcmUgYWxzbyBub3cgdXNlZCBieSB2YXJpb3VzIGNvbXBvbmVudHMKKyAgICBvZiB0aGUgU3RydXRzIGZyYW1ld29yazo8L3A+CisgICAgPHVsPgorICAgIDxsaT48c3Ryb25nPkZpbGVVcGxvYWQgUGFja2FnZTwvc3Ryb25nPgorICAgIFs8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvZmlsZXVwbG9hZC8iPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5maWxldXBsb2FkPC9jb2RlPjwvYT5dPC9saT4KKyAgICA8bGk+PHN0cm9uZz5Mb2dnaW5nIFBhY2thZ2U8L3N0cm9uZz4KKyAgICBbPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2xvZ2dpbmcuaHRtbCI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmc8L2NvZGU+PC9hPl08L2xpPgorICAgIDxsaT48c3Ryb25nPlZhbGlkYXRvciBQYWNrYWdlPC9zdHJvbmc+CisgICAgWzxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy92YWxpZGF0b3IvIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yPC9jb2RlPjwvYT5dPC9saT4KKyAgICA8L3VsPgorCisKKyAgICA8cD48c3Ryb25nPk5PVEUhIFhNTCBQYXJzZXIgUHJlcmVxdWlzaXRlIFVwZGF0ZWQ8L3N0cm9uZz48L3A+CisKKyAgICA8cD5TdHJ1dHMgbm93IGRlcGVuZHMgb24gYW4gWE1MIHBhcnNlciB0aGF0IGNvbmZvcm1zIHRvIHRoZSBKQVhQLzEuMQorICAgIChyYXRoZXIgdGhhbiBKQVhQLzEuMCkgQVBJcy4gUGFyc2VycyBrbm93biB0byB3b3JrIGluY2x1ZGUgdGhlIEpBWFAvMS4xCisgICAgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uLCBhbmQgWGVyY2VzIDEuMy4xLjwvcD4KKworICAgIDxwPjxzdHJvbmc+U09VUkNFIERFVkVMT1BFUlMgTk9URSEgQW50IFByZXJlcXVpc2l0ZSBVcGRhdGVkPC9zdHJvbmc+PC9wPgorICAgIDxwPlRvIGJ1aWxkIFN0cnV0cyBmcm9tIHNvdXJjZSBBbnQgMS40IG9yIGxhdGVyIGlzIG5vdyByZXF1aXJlZC4gVGhpcworICAgIGRvZXMgbm90IGFmZmVjdCBkZXZlbG9wZXJzIHRoYXQgdXNlIFN0cnV0cyBmcm9tIHRoZSBiaW5hcnkgZGlzdHJpYnV0aW9uLjwvcD4KKworICAgIDxwPjxzdHJvbmc+U3RydXRzIFZhbGlkYXRvciBJbnRlZ3JhdGlvbjwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgbmV3IENvbW1vbnMgVmFsaWRhdG9yIGlzIG5vdyBpbnRlZ3JhdGVkIHdpdGggU3RydXRzIGFuZCBleHBvc2VkCisgICAgdGhyb3VnaCB0aGUgbmV3IFZhbGlkYXRvciBwYWNrYWdlLjwvcD4KKworICAgIDxwPjxzdHJvbmc+VGlsZXMgLSBBbiBhZHZhbmNlZCB0ZW1wbGF0aW5nIHRhZ2xpYjwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgVGlsZXMgSlNQIGFzc2VtYmx5IGZyYW1ld29yayBoYXMgYmVlbiBpbnRlZ3JhdGVkIHdpdGggU3RydXRzLjwvcD4KKworICAgIDxwPjxzdHJvbmc+TmVzdGVkIC0gQW4gdmVyeSBjb29sIHRhZ2xpYiBleHRlbnNpb248L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIE5lc3RlZCB0YWdsaWIgaXMgYnVuZGxlZCB3aXRoIFN0cnV0cyBhbmQgZW5oYW5jZXMgdGhlIGZ1bmN0aW9uYWxpdHkKKyAgICAgb2YgdGhlIGV4aXN0aW5nIFN0cnV0cyB0YWdzLjwvcD4KKworICAgIDxwPjxzdHJvbmc+TmV3IEV4YW1wbGUgQXBwbGljYXRpb25zPC9zdHJvbmc+PC9wPgorICAgIDxwPk5ldyBleGFtcGxlIGFwcGxpY2F0aW9ucyBmb3IgdGhlIFZhbGlkYXRvciBhbmQgVGlsZXMgYXJlIG5vdyBwYXJ0CisgICAgb2YgdGhlIFN0cnV0cyBkaXN0cmlidXRpb24uPC9wPgorCisgICAgPHA+PHN0cm9uZz5OZXcgQ29udHJpYiBkaXJlY3RvcnkgZm9yIG9wdGlvbmFsIGNvbXBvbmVudHM8L3N0cm9uZz48L3A+CisgICAgPHA+QSBuZXcgZGlyZWN0b3J5ICg8Y29kZT5jb250cmliPC9jb2RlPikgaW4gdGhlIENWUyBzb3VyY2UgcmVwb3NpdG9yeSBoYXMKKyAgICBiZWVuIGFkZGVkIHRvIGFjY3VtdWxhdGUgU3RydXRzIGFkZC1vbiBleHRlbnNpb25zIHRoYXQgYXJlIGdlbmVyYWxseQorICAgIHVzZWZ1bCBidXQgaGF2ZSBub3QgeWV0IGJlZW4gaW50ZWdyYXRlZCBpbnRvIHRoZSBzdGFuZGFyZCBjb2RlIGJhc2UuPC9wPgorCisgICAgPHVsPgorICAgIDxsaT5TY2FmZm9sZCAtIEFuIGV4dGVuc2lvbiBvZiB0aGUgQ29tbW9ucyBTY2FmZm9sZCB0b29sa2l0IG9mIHJldXNhYmxlCisgICAgY2xhc3NlcyBmb3IgYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucy48L2xpPgorICAgIDxsaT5TdHJ1dHMtRUwgLSBUaGUgb3B0aW9uYWwgU3RydXRzLUVMIHRhZ2xpYiBtYWtlcyBpdCBlYXN5IHRvIHVzZSBTdHJ1dHMKKyAgICB3aXRoIEpTVEwuIChDb250YWluZXIgd2l0aCBTZXJ2bGV0IDIuMyBzdXBwb3J0IHJlcXVpcmVkLik8L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgc291cmNlIGZvciB0aGVzZSBjb21wb25lbnRzIGlzIGF2YWlsYWJsZSBpbiB0aGUgU3RydXRzIHNvdXJjZQorICAgIGRpc3RyaWJ1dGlvbi4gQmluYXJ5IGRpc3RyaWJ1dGlvbnMgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgaW4gdGhlIFN0cnV0cworICAgIGRvd25sb2FkIGFyZWEuIEFzIG9wdGlvbmFsIGNvbXBvbmVudHMsIHRoZXNlIHByb2R1Y3RzIGhhdmUgdGhlaXIgb3duCisgICAgcmVsZWFzZSBjeWNsZXMuPC9wPgorCisgICAgPHA+PHN0cm9uZz5BY3Rpb24gUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSBiYXNpYyBjb250cm9sbGVyCisgICAgZnJhbWV3b3JrIFs8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT5UaGUgQWN0aW9uU2VydmxldCBub3cgcHJvdmlkZXMgc3VwcG9ydCBmb3IgbW9kdWxhciBTdHJ1dHMgYXBwbGljYXRpb25zIGFuZAorICAgIHNwb3J0cyBzZXZlcmFsIG5ldyBleHRlbnNpb24gcG9pbnRzLjwvbGk+CisgICAgPGxpPlRoZSBuZXcgPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IGNsYXNzIHdpbGwgc3VwcG9ydCBhIHN1cGVyc2V0IG9mCisgICAgICAgIHRoZSBjYXBhYmlsaXRpZXMgb2YgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiwgYW5kIHdpbGwgYmUgdXNlZnVsIGFzCisgICAgICAgIGEgY29sbGVjdGlvbiBvZiBnZW5lcmFsIHB1cnBvc2UgbWVzc2FnZXMsIG5vdCBqdXN0IGVycm9ycy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlVwbG9hZCBQYWNrYWdlIEFkZGl0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIGZpbGUgdXBsb2FkIGNsYXNzZXMKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9jb2RlPl06PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyOjwvY29kZT4gTmV3IGNsYXNzIHRoYXQgaW1wbGVtZW50cworICAgICAgICBmaWxlIHVwbG9hZCB1c2luZyB0aGUgSmFrYXJ0YSBDb21tb25zIEZpbGVVcGxvYWQgcGFja2FnZS4gVGhpcyBpcyBub3cKKyAgICAgICAgdGhlIGRlZmF1bHQgZmlsZSB1cGxvYWQgaW1wbGVtZW50YXRpb24gZm9yIFN0cnV0cy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlV0aWwgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSB1dGlsaXR5IGNsYXNzZXMKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvY29kZT5dOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPkxvY2FsU3RyaW5nczo8L2NvZGU+IENvcnJlY3QgbWVzc2FnZSByZWdhcmRpbmcgcmVwbGFjZWFibGUgcGFyYW1ldGVyIHNvIHRoYXQgaXQgZG9lcyBub3QgYXBwZW5kIGFuIGV4dHJhbmVvdXMgY2hhcmFjdGVyLjwvbGk+CisgICAgPGxpPjxjb2RlPkxhYmVsVmFsdWVCZWFuOjwvY29kZT4gTmV3IGNsYXNzIHRoYXQgZGVmaW5lcyBhIGNvbGxlY3Rpb24gb2YgbmFtZS92YWx1ZSBwYWlycyB0aGF0IGNhbiBiZSB1c2VkIHdpdGggdGhlICZsdDtodG1sOm9wdGlvbnMmZ3Q7IGFuZCAmbHQ7aHRtbDpvcHRpb25zQ29sbGVjdGlvbiZndDsgdGFncywgYW5kIGVsc2V3aGVyZS48L2xpPgorICAgIDxsaT48Y29kZT5NZXNzYWdlUmVzb3VyY2VzOjwvY29kZT4gRXNjYXBlIGFueSBzaW5nbGUgcXVvdGUgY2hhcmFjdGVycyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgc3BlY2lmaWVkIG1lc3NhZ2Ugc3RyaW5nLjwvbGk+CisgICAgPGxpPjxjb2RlPmNvbXB1dGVQYXJhbWV0ZXJzOjwvY29kZT4gQWxsb3cgYSB0cmFuc2FjdGlvbiB0b2tlbiB0byBiZSB0aGUgb25seSBwYXJhbWV0ZXIuPC9saT4KKyAgICA8bGk+PGNvZGU+UmVxdWVzdFV0aWxzOjwvY29kZT4gQ2hhbmdlIHRvIGVuY29kZSBhbXBlcnNhbmRzIHdoZW4gYnVpbGRpbmcgYSBxdWVyeSBzdHJpbmcuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5CZWFuIFRhZ2xpYiBQYWNrYWdlIEFkZGl0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlCisgICAgPGVtPnN0cnV0cy1iZWFuPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5CisgICAgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9jb2RlPl06PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+Jmx0O2JlYW46d3JpdGU+PC9jb2RlPjogQWRkIGZvcm1hdCwgbG9jYWxlIGFuZCBidW5kbGUgYXR0cmlidXRlcyB0byBzdXBwb3J0IGZvcm1hdHRpbmcgdmFsdWVzIGFjY29yZGluZyB0byBjdXJyZW50CisgICAgdXNlciBsb2NhbGUsIGZvcm1hdCBzdHJpbmcgZnJvbSBhdHRyaWJ1dGUgb3IgZm9ybWF0IHN0cmluZyBmcm9tIHN0cmluZyByZXNvdXJjZXMuPC9saT4KKyAgICA8bGk+PGNvZGU+Jmx0O2JlYW46Y29va2llPiwgJmx0O2JlYW46aGVhZGVyPiwgb3IgJmx0O2JlYW46cGFyYW1ldGVyPjo8L2NvZGU+IENvcnJlY3QgdGhlIGdlbmVyYXRlZCBzY3JpcHRpbmcgdmFyaWFibGUgdHlwZSB3aGVuIHRhZyBpcyB1c2VkIHdpdGggdGhlICJtdWx0aXBsZSIgYXR0cmlidXRlLjwvbGk+CisgICAgPGxpPjxjb2RlPiZsdDtiZWFuOm1lc3NhZ2UmZ3Q7OjwvY29kZT4gQWRkZWQgPGNvZGU+bmFtZTwvY29kZT4sIDxjb2RlPnByb3BlcnR5PC9jb2RlPiwgYW5kICA8Y29kZT5zY29wZTwvY29kZT4gYXR0cmlidXRlcyB0byB0aGUgdGFnLCBzbyB0aGF0IHRoZSBtZXNzYWdlIHNvdXJjZSBrZXkgY2FuIGJlIG9idGFpbmVkIGR5bmFtaWNhbGx5IGZyb20gYSBiZWFuIG9yIGJlYW4gcHJvcGVydHkuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5IVE1MIFRhZ2xpYiBQYWNrYWdlIEFkZGl0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlCisgICAgPGVtPnN0cnV0cy1odG1sPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IFs8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT5dOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPiZsdDtodG1sOmxpbmsmZ3Q7OjwvY29kZT4gQWRkZWQgJ2FjdGlvbicgYXR0cmlidXRlLjwvbGk+CisgICAgPGxpPjxjb2RlPiZsdDtodG1sOm9wdGlvbnMmZ3Q7OjwvY29kZT4gSWYgdGhlIHByb3BlcnR5IHNwZWNpZmllZCBieSB0aGUgJ3Byb3BlcnR5JyBhdHRyaWJ1dGUgcmV0dXJucyBudWxsLCB0YWcgbm93IHRocm93cyBhbiBlcnJvciBtZXNzYWdlIHRoYXQgaW5kaWNhdGVzIHdoYXQgdGhlIHJlYWwgcHJvYmxlbSBpcywgcmF0aGVyIHRoYW4gY2F1c2luZyBhbiBOUEUuPC9saT4KKyAgICA8bGk+PGNvZGU+Jmx0O2h0bWw6b3B0aW9uJmd0OyBhbmQgJmx0O2h0bWw6b3B0aW9ucyZndDs6PC9jb2RlPiBBZGRlZCAnc3R5bGUnIGFuZCAnc3R5bGVDbGFzcycgYXR0cmlidXRlcy48L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7aHRtbDpvcHRpb25zQ29sbGVjdGlvbiZndDs6PC9jb2RlPiBOZXcgdGFnIHByb3ZpZGluZyBhIGNsZWFuZXIgd2F5IG9mIHBvcHVsYXRpbmcgSFRNTCBvcHRpb25zIGZyb20gYSBjb2xsZWN0aW9uLjwvbGk+CisgICAgPGxpPjxjb2RlPiZsdDtiZWFuOm1lc3NhZ2UmZ3Q7OjwvY29kZT4gQWRkZWQgJ25hbWUnLCAncHJvcGVydHknIGFuZCAnc2NvcGUnIGF0dHJpYnV0ZXMgc28gdGhhdCB0aGUgbWVzc2FnZSByZXNvdXJjZSBrZXkgY2FuIGJlIG9idGFpbmVkIGR5bmFtaWNhbGx5IGZyb20gYSBiZWFuLjwvbGk+CisgICAgPGxpPjxjb2RlPiZsdDtodG1sOm1lc3NhZ2VzJmd0Ozo8L2NvZGU+IE5ldyB0YWcgdG8gaXRlcmF0ZSB0aHJvdWdoIGEgbWVzc2FnZSBjb2xsZWN0aW9uIGluIHRoZSBuZXcgPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IGNsYXNzLjwvbGk+CisgICAgPGxpPjxjb2RlPkFjdGlvbkZvcm06PC9jb2RlPiBUYWcgd2lsbCBub3cgY2FsbCA8Y29kZT5yZXNldCgpPC9jb2RlPiBpZiBpdCBpbnN0YW50aWF0ZXMgdGhlIEFjdGlvbkZvcm0gYmVhbi4gVGhpcyBhbHNvIHJlcXVpcmVzIHRoYXQgdGhlIGJlYW4gaW5zdGFudGlhdGVkIGJ5IHRoZSB0YWcgdG8gYmUgYW4gPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gc3ViY2xhc3MuIDwvbGk+CisgICAgPGxpPjxjb2RlPiZsdDtodG1sOmltYWdlPjo8L2NvZGU+IEFkZGVkIHRoZSAnYWxpZ24nIGF0dHJpYnV0ZS48L2xpPgorICAgIDxsaT48Y29kZT4mbHQ7aHRtbDppbWc+OjwvY29kZT4gQWRkZWQgdGhlIG1vdXNlIGV2ZW50IGF0dHJpYnV0ZXMgKCdvbmNsaWNrJywgJ29uZGJsY2xpY2snLCAnb25tb3VzZWRvd24nLCAnb25tb3VzZXVwJywgJ29ubW91c2VvdmVyJywgJ29ubW91c2Vtb3ZlJywgJ29ubW91c2VvdXQnKS48L2xpPgorICAgIDxsaT48Y29kZT5TdWJtaXRUYWcsIFNlbGVjdFRhZywgTGlua1RhZy5qYXZhLCBDaGVja2JveFRhZywgQnV0dG9uVGFnLCBJbWFnZVRhZywgUmFkaW9UYWcsIGFuZCBUZXh0QXJlYSB0YWdzOjwvY29kZT4gQWRkZWQgaW5kZXhlZCBwcm9wZXJ0eS4gPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5Mb2dpYyBUYWdsaWIgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtbG9naWM8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvY29kZT5dOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPiZsdDtsb2dpYzplbXB0eSZndDs8L2NvZGU+IGFuZAorICAgICAgICA8Y29kZT4mbHQ7bG9naWM6bm90RW1wdHkmZ3Q7PC9jb2RlPjogTmV3IHRhZ3MgdGhhdCBhcmUgc2ltaWxhciB0bworICAgICAgICA8Y29kZT4mbHQ7bG9naWM6cHJlc2VudCZndDs8L2NvZGU+IGFuZAorICAgICAgICA8Y29kZT4mbHQ7bG9naWM6bm90UHJlc2VudCZndDs8L2NvZGU+IGV4Y2VwdCBmb3IgdGhlIHRyZWF0bWVudCBvZgorICAgICAgICBlbXB0eSBzdHJpbmdzLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+VGVtcGxhdGUgVGFnbGliIFBhY2thZ2UgQWRkaXRpb25zPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUKKyAgICA8ZW0+c3RydXRzLXRlbXBsYXRlPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5CisgICAgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvY29kZT5dOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPk5vbmUuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5Eb2N1bWVudGF0aW9uIEFkZGl0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIFN0cnV0cyBEb2N1bWVudGF0aW9uCisgICAgYXBwbGljYXRpb24gKGFuZCBjb3JyZXNwb25kaW5nIGNvbnRlbnRzIG9uIHRoZSBTdHJ1dHMgd2ViIHNpdGUpOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlZlcnNpb24gRGlmZmVyZW5jZXM6IE5ldyBzZWN0aW9uIGluIFJlbGVhc2UgTm90ZXMgdG8gbGluayB0byB0aGUgSmF2YURvY3MgZm9yIGFsbCBTdHJ1dHMgY2xhc3NlcyBhbmQgbWVtYmVycyBhZGRlZCBvciBjaGFuZ2VkIGJldHdlZW4gdmVyc2lvbnMuPC9saT4KKyAgICA8bGk+RkFRL0hvd1RvczogTmV3IGRvY3VtZW50YXRpb24gY2F0ZWdvcnkgb3JnYW5pemVzIG91ciBGQVFzIGFuZCBleGFtcGxlLWRyaXZlbiBob3dUb3MuCisgICAgTmV3IEhvd1RvcyBpbmNsdWRlICJCdWlsZGluZyBBcHBsaWNhdGlvbnMiLCAiVXNpbmcgU1NMIiwgYW5kIHVzaW5nIFN0cnV0cyB3aXRoIEVjbGlwc2Ugb3IgTmV0QmVhbnMuPC9saT4KKyAgICA8bGk+VXNlciBHdWlkZSBQcmVmYWNlOiBOZXcgc2VjdGlvbiB0byBvdmVydmlldyB0aGUgZW5hYmxpbmcgdGVjaG5vbG9naWVzIGJlaGluZCBTdHJ1dHMuPC9saT4KKyAgICA8bGk+RGV2ZWxvcGVyIEd1aWRlczogQWRkZWQgImNvdmVyIHBhZ2UiIHRvIGd1aWRlcy4gVGhlc2UgdGhlbiBsaW5rIHRvIHRoZSBQYWNrYWdlIERlc2NyaXB0aW9ucyBhbmQgdGhlIEFQSSBndWlkZXMuPC9saT4KKyAgICA8bGk+SFRNTCB0YWcgZG9jdW1lbnRhdGlvbjogZXhwYW5kZWQgdG8gY292ZXIgdXNpbmcgaW5kZXhlZCBwcm9wZXJ0aWVzIHdpdGggaXRlcmF0ZS48L2xpPgorICAgIDxsaT5TaXRlIE1lbnU6IFJlbW92ZWQgc2VwYXJhdGUgbGlua3MgdG8gdGFnbGliIGRvY3VtZW50YXRpb24sIHNpbmNlIHRoZXNlIGFyZSBub3cgaW4gdGhlIERldmVsb3BlciBHdWlkZS48L2xpPgorICAgIDxsaT5OZXdiaWUgRkFROiBUaGUgcXVlc3Rpb25zIG1vc3QgbGlrZWx5IHRvIGJlIGFza2VkIGJ5IG5ldyBkZXZlbG9wZXJzIHVzaW5nIFN0cnV0cy4gU3RpbGwgdW5kZXIgZGV2ZWxvcG1lbnQuPC9saT4KKyAgICA8bGk+S2lja3N0YXJ0IEZBUTogVGhlIHF1ZXN0aW9ucyBtb3N0IGxpa2VseSB0byBiZSBhc2tlZCB3aGVuIHNlbGVjdGluZyBTdHJ1dHMuPC9saT4KKyAgICA8bGk+MS4wLjIgSmF2YURvYzogQWRkZWQgYXJjaGl2YWwgY29weSB0byB3ZWIgc2l0ZSBmb3IgZnV0dXJlIHJlZmVyZW5jZS48L2xpPgorICAgIDxsaT5UaGUgVXNlckd1aWRlICJCdWlsZGluZyIgcGFnZXM6IEdlbmVyYWwgcmV2aXNpb25zIHRvIHJlZmxlY3QgbmV3IGZlYXR1cmVzIGFuZCBjdXJyZW50IHByYWN0aWNlcy48L2xpPgorICAgIDxsaT5JbnN0YWxsYXRpb246IFVwZGF0ZWQgaW5zdHJ1Y3Rpb25zIGZvciBTaWx2ZXJTdHJlYW0gYW5kIFJlc2luLiBBZGQgaW5zdGFsbGF0aW9uIG5vdGVzIGZvciBKZXR0eS4gQWRkZWQgUmV4SVAgdG8gbGlzdCBvZiBub21pbmFsIGNvbnRhaW5lcnMuPC9saT4KKyAgICA8bGk+SmF2YURvY3M6IE5ldyA8Y29kZT5Ac2luY2UgU3RydXRzIDEuMTwvY29kZT4gdGFnIHRvIGluZGljYXRlIG5ldyBwYWNrYWdlcywgY2xhc3NlcywgYW5kIG1lbWJlcnMgYWRkZWQgYWZ0ZXIgdGhlIFN0cnV0cyAxLjAueCB2ZXJzaW9uPC9saT4KKyAgICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworICA8c2VjdGlvbiBuYW1lPSJPcGVyYXRpb25hbCBDaGFuZ2VzIGFuZCBCdWcgRml4ZXMiIGhyZWY9IkNoYW5nZXMiPgorCisgICAgPHA+PHN0cm9uZz5TdHJ1dHMgQ29uZmlndXJhdGlvbiBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24KKyAgICBmaWxlcyByZWxhdGVkIHRvIFN0cnV0czo8L3A+CisgICAgPHVsPgorICAgIDxsaT5EZXByZWNhdGVkIChTdHJ1dHMgMC41KSBjb25maWd1cmF0aW9uIGZpbGUgZm9ybWF0OiBSZW1vdmUgc3VwcG9ydC48L2xpPgorICAgIDxsaT5EZXByZWNhdGVkIChTdHJ1dHMgMC41KSBtZXRob2RzOiBSZW1vdmUgZnJvbSBjb2RlYmFzZS48L2xpPgorICAgIDwvdWw+CisgICAgPHA+PHN0cm9uZz5BZGRlZCBDb25maWcgUGFja2FnZTwvc3Ryb25nPjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkNvbnRyb2xsZXJDb25maWc6IEFkZGVkIGlucHV0Rm9yd2FyZCBwcm9wZXJ0eSB0byBpbmRpY2F0ZSB0aGF0IEFjdGlvbk1hcHBpbmcuaW5wdXQgaXMgYSBmb3J3YXJkIHJhdGhlciB0aGFuIGEgVVJJLjwvbGk+CisgICAgPGxpPkNvbnRyb2xsZXJDb25maWc6IEFkZGVkIGZvcndhcmRQYXR0ZXJuIGFuZCBpbnB1dFBhdHRlcm4gdG8gaGVscCBtYW5hZ2UgcGFnZSBkaXJlY3RvcmllcyBpbiBhcHBsaWNhdGlvbiBtb2R1bGVzLjwvbGk+CisgICAgPGxpPkFkZGVkIHBhY2thZ2UgdG8gcHJvdmlkZSBtb3JlIGZsZXhpYmlsaXR5IGluIGNvbmZpZ3VyaW5nIHRoZSBjb250cm9sbGVyIGFuZCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIG1vZHVsYXIgYXBwbGljYXRpb25zPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxzdHJvbmc+QWN0aW9uIFBhY2thZ2UgQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSBiYXNpYworICAgIGNvbnRyb2xsZXIgZnJhbWV3b3JrIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkFsbCBjb25zdGFudHMgaW4gdGhlIEFjdGlvbiBjbGFzczogRGVwcmVjYXRlZCBpbiBmYXZvciBvZiBlcXVpdmFsZW50cyBpbiBuZXcgR2xvYmFscyBjbGFzcy48L2xpPgorICAgIDxsaT5BY3Rpb25NYXBwaW5nOiBpbnB1dCBwcm9wZXJ0eSBtYXkgbm93IHJlZmVyIHRvIGFuIEFjdGlvbkZvcndhcmQgcmF0aGVyIHRoYW4gYSBtb2R1bGUtcmVsYXRpdmUgcGF0aCBpZiBpbnB1dEZvcndhcmQgaXMgc2V0IHRvIHRydWUgb24gdGhlIG1vZHVsZSdzIENvbnRyb2xsZXJDb25maWcgYmVhbiBbb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkNvbnRyb2xsZXJDb25maWcuPC9saT4KKyAgICA8bGk+QWN0aW9uU2VydmxldDogQWRkZWQgY29udmVydE51bGwgcGFyYW1ldGVyIHRvIHNpbXVsYXRlIHRoZSBTdHJ1dHMgMS4wIGJlaGF2aW9yIHdoZW4gcG9wdWxhdGluZyBmb3Jtcy4gSWYgc2V0IHRvIHRydWUsIHRoZSBudW1lcmljIEphdmEgd3JhcHBlciBjbGFzcyB0eXBlcyAobGlrZSBqYXZhLmxhbmcuSW50ZWdlcikgd2lsbCBkZWZhdWx0IHRvIG51bGwgKHJhdGhlciB0aGFuIDApLjwvbGk+CisgICAgPGxpPkFjdGlvblNlcnZsZXQ6IEFkZGVkICJjb25maWcvJGZvbyIgcGFyYW1ldGVyIGFuZCBkZXByZWNhdGVkIHNldmVyYWwgb3RoZXJzIGluIGZhdm9yIG9mIGNvbXBvbmVudHMgaW4gdGhlIG5ldyBjb25maWcgcGFja2FnZS4gPC9saT4KKyAgICA8bGk+QWN0aW9uRm9ybXMgYW5kIHJlbGF0ZWQgY2xhc3NlczogTm93IHVzZSBhIFN0cmluZ0J1ZmZlciB3aGVuIHJlc3BvbmRpbmcgdG8gYSB0b1N0cmluZyByZXF1ZXN0IGluIG9yZGVyIHRvIGNvbnNlcnZlIHJlc291cmNlcy48L2xpPgorICAgIDxsaT5Mb29rdXBEaXNwYXRjaEFjdGlvbjogQWRkZWQgc3RhbmRhcmQgQWN0aW9uIHRvIGhlbHAgc2VsZWN0IGJldHdlZW4gaW50ZXJuYXRpb25hbGl6ZWQgYnV0dG9ucy48L2xpPgorICAgIDxsaT5BY3Rpb25Gb3JtIGNsYXNzOiBNb2RpZmllZCB0byB1c2UgQWN0aW9uU2VydmxldFdyYXBwZXIgcmF0aGVyIHRoYW4gZXhwb3NlIEFjdGlvblNlcnZsZXQuPC9saT4KKyAgICA8bGk+QWN0aW9uU2VydmxldFdyYXBwZXIgY2xhc3M6IEFkZGVkIGZvciB1c2UgYnkgQWN0aW9uRm9ybSB0byBwcmV2ZW50IHRoZSBQdWJsaWMgU3RyaW5nIHByb3BlcnRpZXMgb2YgQWN0aW9uU2VydmxldCBmcm9tIGJlaW5nIGNoYW5nZWQgdmlhIGEgcXVlcnkgc3RyaW5nLjwvbGk+CisgICAgPGxpPkFjdGlvbi5NQVBQSU5HX0tFWSByZXF1ZXN0IGF0dHJpYnV0ZTogVW5jb25kaXRpb25hbGx5IHBhc3MgdGhlIHNlbGVjdGVkIG1hcHBpbmcgYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZSAoIm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5tYXBwaW5nLmluc3RhbmNlIikgZXZlbiBpZiBubyBmb3JtIGJlYW4gaXMgc3BlY2lmaWVkLjwvbGk+CisgICAgPGxpPkFjdGlvblNlcnZsZXQ6IEF2b2lkIGEgTnVsbFBvaW50ZXJFeGNlcHRpb24gaW4gY29ybmVyIGNhc2VzIGNhdXNlZCBieSBmYWlsZWQgaW5pdGlhbGl6YXRpb24gb2Ygc2VydmxldC48L2xpPgorICAgIDxsaT5BY3Rpb25Gb3JtIGNsYXNzOiBOb3cgdHJ1bHkgc2VyaWFsaXphYmxlLCBiZWNhdXNlCisgICAgICAgIHRoZSB0d28gbm9uLXNlcmlhbGl6YWJsZSBpbnN0YW5jZSB2YXJpYWJsZXMgKHNlcnZsZXQgYW5kCisgICAgICAgIG11bHRpcGFydFJlcXVlc3RIYW5kbGVyKSBoYXZlIGJlZW4gbWFkZSB0cmFuc2llbnQuICBIb3dldmVyLCBpZiB5b3UKKyAgICAgICAgYWN0dWFsbHkgZG8gc2VyaWFsaXplIGFuZCBkZXNlcmlhbGl6ZSBzdWNoIGluc3RhbmNlcywgaXQgaXMgeW91cgorICAgICAgICByZXNwb25zaWJpbGl0eSB0byByZXNldCB0aGVzZSB0d28gcHJvcGVydGllcy48L2xpPgorICAgIDxsaT5BY3Rpb25NZXNzYWdlcyBhbmQgQWN0aW9uRXJyb3JzOiBUaGUgaW5pdGlhbCBvcmRlciBhIHByb3BlcnR5L2tleSBpcyBhZGRlZCBpbiBpcyBub3cgcmV0YWluZWQuPC9saT4KKyAgICA8bGk+cHJvY2Vzc0FjdGlvbkZvcndhcmQoKTogRGVwcmVjYXRlZCBpbiBmYXZvciBvZiBwcm9jZXNzRm9yd2FyZENvbmZpZzwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+VXBsb2FkIFBhY2thZ2UgQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSBmaWxlIHVwbG9hZAorICAgIHBhY2thZ2UgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9jb2RlPikgW3BhcnQgb2YgdGhlIFVwbG9hZCB3ZWJhcHBdOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjogTmV3IGltcGxlbWVudGF0aW9uIG9mIGZpbGUgdXBsb2FkIGJhc2VkCisgICAgICAgIG9uIHRoZSBKYWthcnRhIENvbW1vbnMgRmlsZVVwbG9hZCBwYWNrYWdlLiBUaGlzIG5ldyBpbXBsZW1lbnRhdGlvbiBpcworICAgICAgICBub3cgdGhlIGRlZmF1bHQuPC9saT4KKyAgICA8bGk+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTogRml4ZWQgbG9zdCBieXRlIHByb2JsZW0uPC9saT4KKyAgICA8bGk+QXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uOiBGaXhlZCBzaXR1YXRpb25zIHdoZXJlIHRoaXMgd2FzIGtub3duIHRvIG9jY3VyLjwvbGk+CisgICAgPGxpPk11bHRpcGFydCByZXF1ZXN0czogQmV0dGVyIHJlcG9ydGluZyBmb3IgcHJlbWF0dXJlIGNsb3Npbmcgb2YgaW5wdXQgc3RyZWFtcyB3aGlsZSByZWFkaW5nIG11bHRpcGFydCByZXF1ZXN0cy48L2xpPgorICAgIDxsaT5OZXcgbGluZSBjaGFyYWN0ZXJzOiBBZGRpdGlvbmFsIGZpeCBmb3IgZmlsZSBjb3JydXB0aW9uIHByb2JsZW0gd2l0aCB1cGxvYWRzIGFuZCBuZXcgbGluZSBjaGFyYWN0ZXJzLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+VXRpbGl0eSBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgdXRpbGl0aWVzCisgICAgKHBhY2thZ2UgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlJlcXVlc3RVdGlsczogQWRkZWQgc3VwcG9ydCBmb3IgZm9yd2FyZFBhdHRlcm4sIHBhZ2VQYXR0ZXJuLCBhbmQgaW5wdXRGb3J3YXJkIHByb3BlcnRpZXMgb24gQ29udHJvbGxlckNvbmZpZy48L2xpPgorICAgIDxsaT5HZW5lcmljRGF0YVNvdXJjZTogRGVwcmVjYXRlZCBhbmQgbW9kaWZpZWQgdG8gYWN0IGFzIGEgdGhpbiB3cmFwcGVyIGFyb3VuZAorICAgIFs8Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuZGJwYy5CYXNpY0RhdGFTb3VyY2U8L2NvZGU+XS4KKyAgICBSZXBsYWNlZCBieSBkaXJlY3QgdXNlIG9mIEJhc2ljRGF0YVNvdXJjZSBvciBvdGhlciBjb21wYXRpYmxlIGNvbXBvbmVudC48L2xpPgorICAgIDxsaT5SZXF1ZXN0VXRpbHMgY2xhc3M6IE1vZGlmeSB0byB1c2UgQWN0aW9uU2VydmxldFdyYXBwZXIgcmF0aGVyIHRoYW4gZXhwb3NlIEFjdGlvblNlcnZsZXQuPC9saT4KKyAgICA8bGk+QWRkZWQgZXJyb3IgbWVzc2FnZSBmb3IgdGhlIGdldEFjdGlvbkVycm9ycyBhbmQgZ2V0QWN0aW9uTWVzc2FnZXMgbWV0aG9kLjwvbGk+CisgICAgPGxpPmdldEFjdGlvbkVycm9ycyBhbmQgZ2V0QWN0aW9uTWVzc2FnZXM6IEFkZGVkIG1ldGhvZHMgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgY29ycmVzcG9uZGluZworICAgIG9iamVjdCBiYXNlZCBvbiB0aGUgb2JqZWN0IHJldHJpZXZlZCBmcm9tIHJlcXVlc3Qgc2NvcGUgYmFzZWQgb24gdGhlIGtleSBwYXNzZWQgaW4uPC9saT4KKyAgICA8bGk+QWN0aW9uRXJyb3JzIG9yIEFjdGlvbk1lc3NhZ2VzOiBUaGUgbG9naWMgZm9yIGNyZWF0aW5nIG9uZSBvZiB0aGVzZSBvYmplY3RzIGhhcyBiZWVuIG1vdmVkCisgICAgdG8gYSB1dGlsaXR5IG1ldGhvZCBpbiBSZXF1ZXN0VXRpbHMuPC9saT4KKyAgICA8bGk+SnNwRXhjZXB0aW9uIG1lc3NhZ2U6IE5vdyBnZW5lcmF0ZWQgaW4gUmVxdWVzdFV0aWxzLjwvbGk+CisgICAgPGxpPkNvbnZlcnRVdGlscy5jb252ZXJ0Q2hhcmFjdGVyKCk6IFdpbGwgbm93IGRldGVjdCBlbXB0eSBzdHJpbmdzIGFuZCByZXR1cm4gdGhlIGRlZmF1bHQgdmFsdWUuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5CZWFuIFRhZ2xpYiBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUKKyAgICA8ZW0+c3RydXRzLWJlYW48L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgIDxsaT4mbHQ7aHRtbDplcnJvcnMmZ3Q7OiBXaGVuIHRoZSBwcm9wZXJ0eSB0YWcgaXMKKyAgICBzcGVjaWZpZWQsIGVycm9ycyBhcmUgbm8gbG9uZ2VyIHByaW50ZWQgaWYgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eQorICAgIGhhcyBubyBlcnJvcnMuIFByZXZpb3VzbHkgZXJyb3JzIHdlcmUgYWx3YXlzIHByaW50ZWQgISBGdXR1cmUKKyAgICBlbmhhbmNlbWVudHMgd291bGQgaW5jbHVkZSBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgdG8gYWx3YXlzIHR1cm4KKyAgICBvZmYgdGhlIGhlYWRlciBvciBmb290ZXIuIDwvbGk+CisgICAgPGxpPk1hZGUgdGhlIHJlbWFpbmluZyBoZWxwZXIgbWV0aG9kcyAicHJvdGVjdGVkIiByYXRoZXIgdGhhbgorICAgICJwcml2YXRlIi48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkhUTUwgVGFnbGliIFBhY2thZ2UgQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZQorICAgIDxlbT5zdHJ1dHMtaHRtbDwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeSAocGFja2FnZQorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Rm9ybVRhZzogRml4ZWQgdG8gZXhjbHVkZSBxdWVyeSBzdHJpbmcgd2hlbiBpZGVudGlmeWluZyBhY3Rpb24gbWFwcGluZyBuYW1lLjwvbGk+CisgICAgPGxpPkltZ1RhZzogQ29ycmVjdGx5IFVSTEVuY29kZSB0aGUgcXVlcnkgc3RyaW5nIHBhcmFtZXRlciB2YWx1ZSBldmVuIGlmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgcGFyYW1ldGVyLjwvbGk+CisgICAgPGxpPk11bHRpYm94VGFnLmRvQWZ0ZXJCb2R5KCk6IENvcnJlY3RlZCB0byByZXR1cm4gU0tJUF9CT0RZIGluc3RlYWQgb2YgU0tJUF9QQUdFLjwvbGk+CisgICAgPGxpPkVycm9ydGFnOiBkZWZhdWx0TG9jYWxlIG1ldGhvZCBpcyBkZXByZWNhdGVkIGFzIGl0IGlzIHVudXNlZC48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkxvZ2ljIFRhZ2xpYiBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUKKyAgICA8ZW0+c3RydXRzLWxvZ2ljPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Tm9uZS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkRvY3VtZW50YXRpb24gQXBwbGljYXRpb24gQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgU3RydXRzIERvY3VtZW50YXRpb24KKyAgICBhcHBsaWNhdGlvbiAoYW5kIGNvcnJlc3BvbmRpbmcgY29udGVudHMgb24gdGhlIFN0cnV0cyB3ZWIgc2l0ZSkgaGF2ZQorICAgIG9jY3VycmVkOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlJlb3JnYW5pemVkIFJlc291cmNlcyBpbnRvIHNlcGFyYXRlIHBhZ2VzLi48L2xpPgorICAgIDxsaT5JbiB0aGUgVGFnIERldmVsb3BlcnMgR3VpZGUsIGFkZCBtb3JlIGRldGFpbCByZWdhcmRpbmcgZmlsZSB1cGxvYWQgcmVxdWlyZW1lbnRzLjwvbGk+CisgICAgPGxpPkluIEJ1aWxkaW5nIFZpZXcgQ29tcG9uZW50cywgY2xhcmlmeSB0aGF0IGFkZGl0aW9uYWwgaTE4biBzdXBwb3J0IG1heSBiZSBwcm92aWRlZCBieSB0aGUgYnJvd3NlciwgYW5kIGlzIG91dHNpZGUgdGhlIHNjb3BlIG9mIHRoZSBmcmFtZXdvcmsuPC9saT4KKyAgICA8bGk+SW4gQnVpbGRpbmcgQ29udHJvbGxlciBDb21wb25lbnRzLCBkb2N1bWVudCAndmFsaWRhdGluZycgaW5pdC1wYXJhbSwgYWRkIGRlZmF1bHRzIGZvciB2YXJpb3VzIHBhcmFtZXRlcnMsIGNsYXJpZnkgdGhhdCBzb21lIHdlYi54bWwgc2V0dGluZ3MgYXJlIG5vdCBTdHJ1dHMtc3BlY2lmaWMuPC9saT4KKyAgICA8bGk+VGFnIGxpYnJhcnkgZG9jdW1lbnRhdGlvbjogTW92ZWQgdW5kZXIgVXNlcidzIEd1aWRlLjwvbGk+CisgICAgPGxpPlJlb3JnYW5pemVkIHRvIHNlcGFyYXRlIDEuMCBtYXRlcmlhbCBmcm9tIG5pZ2h0bHkgYnVpbGQgbWF0ZXJpYWwuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5NYWlsUmVhZGVyIEV4YW1wbGUgQXBwbGljYXRpb24gQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgU3RydXRzIE1haWxSZWFkZXIgRXhhbXBsZSBBcHBsaWNhdGlvbgorICAgIGhhdmUgb2NjdXJyZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+QWRkIFJ1c3NpYW4gYW5kIEphcGFuZXNlIHRyYW5zbGF0aW9ucyBvZiB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2VzIGFuZCBzZXQgdGhlIGNoYXJhY3RlciBzZXQgZm9yIHRoZSBleGFtcGxlIEpTUCBwYWdlcyB0byAiVVRGLTgiIHNvIHRoYXQgaXQgY2FuIGRpc3BsYXkgZWl0aGVyIEVuZ2xpc2ggb3IgSmFwYW5lc2UuPC9saT4KKyAgICA8bGk+RXhjaGFuZ2UgIm5hbWUiIGZvciAiYXR0cmlidXRlIiBwcm9wZXJ0aWVzIGZvciBFZGl0IG1hcHBpbmdzIGluIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGUuPC9saT4KKyAgICA8bGk+UmVtb3ZlIHJlZmVyZW5jZXMgdG8gc2F2aW5nIGRhdGFiYXNlIGRhdGEgZnJvbSAidG91ciIgZG9jdW1lbnQsIHNpbmNlIHRoaXMgZnVuY3Rpb25hbGl0eSB3YXMgcmVtb3ZlZC48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlRlbXBsYXRlIEV4YW1wbGUgQXBwbGljYXRpb24gQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgU3RydXRzIFRlbXBsYXRlIEV4YW1wbGUKKyAgICBBcHBsaWNhdGlvbiBoYXZlIG9jY3VycmVkOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPk5vbmUuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5FeGVyY2lzZSBUYWdsaWIgRXhhbXBsZSBBcHBsaWNhdGlvbiBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgRXhlcmNpc2UgVGFnbGliIEV4YW1wbGUKKyAgICBBcHBsaWNhdGlvbiBoYXZlIG9jY3VycmVkOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkFkZGVkIHRlc3QgY2FzZSBmb3IgJmx0O2h0bWw6bGluayZndDsgdXNpbmcgImFjdGlvbiIgYXR0cmlidXRlLiA8L2xpPgorICAgIDxsaT5BZGRlZCB0ZXN0IGNhc2VzIGZvciAmbHQ7aHRtbDpzZWxlY3QmZ3Q7IHVzaW5nICZsdDtodG1sOm9wdGlvbnMmZ3Q7IGFuZAorICAgICAgICAmbHQ7aHRtbDpvcHRpb25zQ29sbGVjdGlvbiZndDsgYmFzZWQgb24gYSBjb2xsZWN0aW9uIHNhdmVkIGluIHRoZSBwYWdlIGNvbnRleHQuPC9saT4KKyAgICA8L3VsPgorCisgIDwvc2VjdGlvbj4KKworICA8c2VjdGlvbiBuYW1lPSJXaGF0J3MgZGlmZmVyZW50PyIgaHJlZj0iZGlmZiI+CisKKyAgICA8cD5UaGlzIHNlY3Rpb24gcHJvdmlkZXMgbGlua3MgdG8gdGhlIFN0cnV0cyBKYXZhRG9jIGZvciBhbnkgY2xhc3NlcyB0aGF0IGhhdmUKKyAgICBiZWVuIGFkZGVkIG9yIGRlcHJlY2F0ZWQgc2luY2UgdGhlIFN0cnV0cyAxLjAgcmVsZWFzZS4KKyAgICA8L3A+CisKKyAgICA8cD48c3Ryb25nPlByZXZpb3VzbHkgZGVwcmVjYXRlZCBjbGFzc2VzIGFuZCBwYWNrYWdlcyByZW1vdmVkIGluIFN0cnV0cyAxLjE8L3N0cm9uZz48L3A+CisgICAgPHVsPgorICAgIDxsaT5SZW1vdmVkOgorICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbHMuQmVhblV0aWxzPC9jb2RlPiwKKyAgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWxzLkNvbnZlcnRVdGlsczwvY29kZT4sIGFuZAorICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbHMuUHJvcGVydHlVdGlsczwvY29kZT4gLSByZXBsYWNlZCBieQorICAgICAgPGEgaHJlZiA9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9iZWFudXRpbHMuaHRtbCI+PGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlsczwvY29kZT48L2E+CisgICAgPC9saT4KKyAgICA8bGk+UmVtb3ZlZDoKKyAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5BcnJheVN0YWNrPC9jb2RlPiwKKyAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0QXJyYXlMaXN0PC9jb2RlPiwKKyAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0SGFzaE1hcDwvY29kZT4sCisgICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdFRyZWVNYXA8L2NvZGU+IC0gcmVwbGFjZWQgYnkKKyAgICAgPGEgaHJlZiA9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9jb2xsZWN0aW9ucy5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnM8L2NvZGU+PC9hPgorICAgIDwvbGk+CisgICAgPGxpPlJlbW92ZWQ6IDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLio8L2NvZGU+IC0gcmVwbGFjZWQgYnkKKyAgICA8YSBocmVmID0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2RpZ2VzdGVyLmh0bWwiPjxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3RlcjwvY29kZT48L2E+CisgICAgPC9saT4KKyAgICA8bGk+UmVtb3ZlZDogVGhlIDxjb2RlPnN0cnV0cy1jb25maWcuZHRkPC9jb2RlPiAtIFJlcGxhY2VkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2R0ZHMvc3RydXRzLWNvbmZpZ18xXzEuZHRkIj48Y29kZT5zdHJ1dHMtY29uZmlnXzFfMS5kdGQ8L2NvZGU+PC9hPi48L2xpPgorICAgIDxsaT5SZW1vdmVkOiBUaGUgb21uaWJ1cyAic3RydXRzIiB0YWdsaWIgYW5kIGl0cyBhc3NvY2lhdGVkIFRMRCAtIHJlcGxhY2VkIGJ5IHNlcGFyYXRlIGJlYW4sIGxvZ2ljLCBhbmQgaHRtbCB0YWdsaWJzLjwvbGk+CisgICAgPGxpPlJlbW92ZWQ6IFRoZSAiZm9ybSIgdGFnbGliIGFuZCBpdHMgYXNzb2NpYXRlZCBUTEQgLSByZXBsYWNlZCBieSAocmVuYW1lZCBhcykgdGhlIGh0bWwgdGFnbGliLjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+UGFja2FnZXMgYWRkZWQgaW4gU3RydXRzIDEuMTwvc3Ryb25nPjwvcD4KKworICAgIDx1bD4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+Y29uZmlnPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj50YWdsaWIubmVzdGVkPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPnRhZ2xpYi5uZXN0ZWQuYmVhbjwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj50YWdsaWIubmVzdGVkLmh0bWw8L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPnRhZ2xpYi5uZXN0ZWQubG9naWM8L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+dmFsaWRhdG9yPC9hPjwvbGk+CisgICAgPC91bD4KKworICAgIDxwPjxzdHJvbmc+Q2xhc3NlcyBhZGRlZCBpbiBTdHJ1dHMgMS4xPC9zdHJvbmc+PC9wPgorICAgIDxwPmFjdGlvbjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlLmh0bWwiPiBBY3Rpb25NZXNzYWdlPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj4gQWN0aW9uTWVzc2FnZXM8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPiBEeW5hQWN0aW9uRm9ybTwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sIj4gRHluYUFjdGlvbkZvcm1DbGFzczwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRXhjZXB0aW9uSGFuZGxlci5odG1sIj4gRXhjZXB0aW9uSGFuZGxlcjwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj4gUmVxdWVzdFByb2Nlc3NvcjwvYT48L2xpPgorICAgIDwvdWw+CisgICAgPHA+YWN0aW9uczwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCI+IExvb2t1cERpc3BhdGNoQWN0aW9uPC9hPjwvbGk+CisgICAgPC91bD4KKyAgICA8cD50YWdsaWIuaHRtbDwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPiBGcmFtZVRhZzwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPiBKYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPk1lc3NhZ2VzVGFnPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPiBPcHRpb25zQ29sbGVjdGlvblRhZzwvYT48L2xpPgorICAgIDwvdWw+CisgICAgPHA+dGFnbGliLmxvZ2ljPC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VtcHR5VGFnLmh0bWwiPiBFbXB0eVRhZzwvYT48L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPiBNZXNzYWdlc05vdFByZXNlbnRUYWc8L2E+PC9saT4KKyAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj4gTWVzc2FnZXNQcmVzZW50VGFnPC9hPjwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFbXB0eVRhZy5odG1sIj4gTm90RW1wdHlUYWc8L2E+PC9saT4KKyAgICA8L3VsPgorICAgIDxwPnVwbG9hZDwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+IENvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvYT48L2xpPgorICAgIDwvdWw+CisgICAgPHA+dXRpbDwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTGFiZWxWYWx1ZUJlYW4uaHRtbCI+IExhYmVsVmFsdWVCZWFuPC9hPjwvbGk+CisgICAgPC91bD4KKyAgICA8cD48c3Ryb25nPkNsYXNzZXMgd2l0aCBtZW1iZXJzIGFkZGVkIGluIFN0cnV0cyAxLjE8L3N0cm9uZz48L3A+CisgICAgPHA+PGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+YWN0aW9uLkFjdGlvbjwvYT48L3A+CisgICAgPHVsPgorICAgICAgPGxpPkFDVElPTl9TRVJWTEVUX0tFWTwvbGk+CisgICAgICA8bGk+QVBQTElDQVRJT05fS0VZPC9saT4KKyAgICAgIDxsaT5NRVNTQUdFX0tFWTwvbGk+CisgICAgICA8bGk+UExVR19JTlNfS0VZPC9saT4KKyAgICAgIDxsaT5SRVFVRVNUX1BST0NFU1NPUl9LRVk8L2xpPgorICAgICAgPGxpPmV4ZWN1dGU8L2xpPgorICAgICAgPGxpPmdldFJlc291cmNlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KTwvbGk+CisgICAgICA8bGk+c2F2ZU1lc3NhZ2VzPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5hY3Rpb24uQTwvYT48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+Y3Rpb25TZXJ2bGV0PC9hPjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+Y29uZmlnRGlnZXN0ZXI8L2xpPgorICAgICAgPGxpPmNvbnZlcnRIYWNrPC9saT4KKyAgICAgIDxsaT5sb2c8L2xpPgorICAgICAgPGxpPnByb2Nlc3NvcjwvbGk+CisgICAgICA8bGk+Z2V0SW50ZXJuYWw8L2xpPgorICAgICAgPGxpPmRlc3Ryb3lBcHBsaWNhdGlvbnM8L2xpPgorICAgICAgPGxpPmRlc3Ryb3lDb25maWdEaWdlc3RlcjwvbGk+CisgICAgICA8bGk+Z2V0QXBwbGljYXRpb25Db25maWc8L2xpPgorICAgICAgPGxpPmdldFJlcXVlc3RQcm9jZXNzb3I8L2xpPgorICAgICAgPGxpPmluaXRBcHBsaWNhdGlvbkNvbmZpZzwvbGk+CisgICAgICA8bGk+aW5pdEFwcGxpY2F0aW9uRGF0YVNvdXJjZXM8L2xpPgorICAgICAgPGxpPmluaXRBcHBsaWNhdGlvblBsdWdJbnM8L2xpPgorICAgICAgPGxpPmluaXRBcHBsaWNhdGlvbk1lc3NhZ2VSZXNvdXJjZXM8L2xpPgorICAgICAgPGxpPmluaXRDb25maWdEaWdlc3RlcjwvbGk+CisgICAgICA8bGk+bWV0aG9kcyBjcmVhdGVkIGZvciBiYWNrd2FyZC1jb21wYXRpYmxpdHkgb25seQorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPmRlZmF1bHRDb250cm9sbGVyQ29uZmlnPC9saT4KKyAgICAgICAgICA8bGk+ZGVmYXVsdEZvcm1CZWFuc0NvbmZpZzwvbGk+CisgICAgICAgICAgPGxpPmRlZmF1bHRGb3J3YXJkc0NvbmZpZzwvbGk+CisgICAgICAgICAgPGxpPmRlZmF1bHRNYXBwaW5nc0NvbmZpZzwvbGk+CisgICAgICAgICAgPGxpPmRlZmF1bHRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+dGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L2E+PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5pbmRleGVkPC9saT4KKyAgICAgIDxsaT5zZXRJbmRleGVkPC9saT4KKyAgICAgIDxsaT5nZXRJbmRleGVkPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxzdHJvbmc+Q2xhc3NlcyBkZXByZWNhdGVkIGJldHdlZW4gU3RydXRzIDEuMCBhbmQgU3RydXRzIDEuMTwvc3Ryb25nPjwvcD4KKyAgICA8cD5hY3Rpb248L3A+CisgICAgPHVsPgorICAgICAgPGxpPkFjdGlvbkV4Y2VwdGlvbjwvbGk+CisgICAgICA8bGk+QWN0aW9uRm9ybUJlYW5zPC9saT4KKyAgICAgIDxsaT5BY3Rpb25Gb3J3YXJkczwvbGk+CisgICAgICA8bGk+QWN0aW9uTWFwcGluZ3M8L2xpPgorICAgIDwvdWw+CisgICAgPHA+PHN0cm9uZz5DbGFzc2VzIHdpdGggbWVtYmVycyBkZXByZWNhdGVkIGJldHdlZW4gU3RydXRzIDEuMCBhbmQgU3RydXRzIDEuMTwvc3Ryb25nPjwvcD4KKyAgICA8cD48YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5hY3Rpb24uQWN0aW9uPC9hPjwvcD4KKworICAgIDx1bD4KKyAgICAgIDxsaT5GT1JNX0JFQU5TX0tFWTwvbGk+CisgICAgICA8bGk+Rk9SV0FSRFNfS0VZPC9saT4KKyAgICAgIDxsaT5NQVBQSU5HU19LRVk8L2xpPgorICAgICAgPGxpPmdldFJlc291cmNlcygpPC9saT4KKyAgICAgIDxsaT5wZXJmb3JtPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9hPjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+ZmluZERhdGFTb3VyY2U8L2xpPgorICAgICAgPGxpPmZpbmRGb3JtQmVhbjwvbGk+CisgICAgICA8bGk+ZmluZEZvcndhcmQ8L2xpPgorICAgICAgPGxpPmZpbmRNYXBwaW5nPC9saT4KKyAgICAgIDxsaT5pbml0RGF0YVNvdXJjZXM8L2xpPgorICAgICAgPGxpPm1ldGhvZHMgY3JlYXRlZCBmb3IgYmFja3dhcmQtY29tcGF0aWJsaXR5IG9ubHkKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5kZWZhdWx0Q29udHJvbGxlckNvbmZpZzwvbGk+CisgICAgICAgICAgPGxpPmRlZmF1bHRGb3JtQmVhbnNDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0Rm9yd2FyZHNDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0TWFwcGluZ3NDb25maWc8L2xpPgorICAgICAgICAgIDxsaT5kZWZhdWx0TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPgorICAgIDwvdWw+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24+CisgICAgPHAgY2xhc3M9InJpZ2h0Ij4KKyAgICBOZXh0OiA8YSBocmVmPSJpbnN0YWxsYXRpb24uaHRtbCI+SW5zdGFsbGF0aW9uPC9hPgorICAgIDwvcD4KKzwvc2VjdGlvbj4KKworCisgICAgPC9ib2R5PgorCis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3JlbGVhc2Utbm90ZXMueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3JlbGVhc2Utbm90ZXMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlOWI2ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvcmVsZWFzZS1ub3Rlcy54bWwKQEAgLTAsMCArMSwzNjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0icmVsZWFzZS1ub3Rlcy5odG1sIj4KKworICA8cHJvcGVydGllcz4KKyAgICA8dGl0bGU+U3RydXRzIFJlbGVhc2UgTm90ZXMgKE5pZ2h0bHkgQnVpbGQpPC90aXRsZT4KKyAgPC9wcm9wZXJ0aWVzPgorCisgIDxib2R5PgorCisgIDxzZWN0aW9uIG5hbWU9IjYuMSBSZWxlYXNlIE5vdGVzIiBocmVmPSJyZWxlYXNlX25vdGVzIi8+CisgIDxzZWN0aW9uIG5hbWU9IkJldGEgTm90ZXMiIGhyZWY9ImJldGEiPgorCisgICAgPHA+VGhpcyBzZWN0aW9uIGNvbnRhaW5zIHRoZSByZWxlYXNlIG5vdGVzIGZvcgorICAgIDxzdHJvbmc+bmlnaHRseSBidWlsZDwvc3Ryb25nPiBvZiB0aGUgU3RydXRzIEZyYW1ld29yaywKKyAgICBmb3IgY2hhbmdlcyB0aGF0IGhhdmUgdGFrZW4gcGxhY2Ugc2luY2UKKyAgICA8YSBocmVmPSJyZWxlYXNlLW5vdGVzLTEuMS5odG1sIj5WZXJzaW9uIDEuMSA8L2E+CisgICAgd2FzIHJlbGVhc2VkLiBGb3IgYSBjb21wbGV0ZSBsaXN0IG9mIGNoYW5nZXMgc2luY2UgdGhlIGxhc3QKKyAgICBwcm9kdWN0aW9uIHJlbGVhc2UsIHNlZSB0aGUgPGEgaHJlZj0iI0ludHJvZHVjdGlvbiI+SW50cm9kdWN0aW9uPC9hPiA8L3A+CisKKyAgPC9zZWN0aW9uPgorCis8c2VjdGlvbiBuYW1lPSJCZXRhIEZpeGVzIiBocmVmPSJiZXRhLkNoYW5nZXMiPgorCisgIDxwPgorICA8c3Ryb25nPkFwcGxpY2F0aW9uQ29uZmlnOjwvc3Ryb25nPiBJbiBTdHJ1dHMgMS4yIHdhcyByZW1vdmVkLgorICA8L3A+CisKKworPC9zZWN0aW9uPgorCisgIDxzZWN0aW9uIG5hbWU9IkludHJvZHVjdGlvbiIgaHJlZj0iSW50cm9kdWN0aW9uIj4KKworICAgIDxwPlRoZSByZW1haW5kZXIgb2YgdGhpcyBkb2N1bWVudCBjb250YWlucyB0aGUgcmVsZWFzZSBub3RlcyBmb3IKKyAgICA8c3Ryb25nPm5pZ2h0bHkgYnVpbGQ8L3N0cm9uZz4gb2YgdGhlIFN0cnV0cyBGcmFtZXdvcmssCisgICAgYW5kIGNvdmVycyBjaGFuZ2VzIHRoYXQgaGF2ZSB0YWtlbiBwbGFjZSBzaW5jZQorICAgIDxhIGhyZWY9InJlbGVhc2Utbm90ZXMtMS4xLmh0bWwiPlZlcnNpb24gMS4xPC9hPgorICAgIHdhcyByZWxlYXNlZC4gIFRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgY292ZXIKKyAgICA8YSBocmVmPSIjTmV3Ij5OZXcgRmVhdHVyZXM8L2E+IGFuZCA8YSBocmVmPSIjQ2hhbmdlcyI+Q2hhbmdlczwvYT4KKyAgICB0byBTdHJ1dHMuPC9wPgorCisgIDwvc2VjdGlvbj4KKworCisgIDxzZWN0aW9uIG5hbWU9IldoYXQncyBJbmNsdWRlZD8iIGhyZWY9IkluY2x1ZGVkIj4KKworICAgIDxwPlRoZSBiaW5hcnkgZGlzdHJpYnV0aW9uIG9mIHRoaXMgcmVsZWFzZSBpbmNsdWRlcyB0aGUgZm9sbG93aW5nCisgICAgZmlsZXMgcmVsZXZhbnQgdG8gU3RydXRzOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxjb2RlPklOU1RBTEw8L2NvZGU+IC0gQnJpZWYgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucy4gIFNlZQorICAgICAgICB0aGUgPGNvZGU+U3RydXRzIERvY3VtZW50YXRpb24gQXBwbGljYXRpb248L2NvZGU+LCBvciBvbmxpbmUgYXQKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvIj5odHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy88L2E+CisgICAgICAgIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvbGk+CisgICAgPGxpPjxjb2RlPkxJQ0VOU0U8L2NvZGU+IC0gVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGxpY2Vuc2UgdGhhdAorICAgICAgICBkZWZpbmVzIHRoZSB0ZXJtcyB1bmRlciB3aGljaCB5b3UgY2FuIHVzZSBTdHJ1dHMgKGFuZCBvdGhlciBzb2Z0d2FyZQorICAgICAgICBsaWNlbnNlZCBieSBBcGFjaGUpLjwvbGk+CisgICAgPGxpPjxjb2RlPlJFQURNRTwvY29kZT4gLSBBIGJyaWVmIGludHJvZHVjdGlvbiB0byBTdHJ1dHMuPC9saT4KKyAgICA8bGk+PGNvZGU+bGliLzwvY29kZT4gLSBEaXJlY3RvcnkgY29udGFpbmluZyBmaWxlcyB5b3Ugd2lsbCBuZWVkIGluCisgICAgICAgIHlvdXIgb3duIGFwcGxpY2F0aW9ucy4gIFRoZSBpbmRpdmlkdWFsIGZpbGVzIG9mIGludGVyZXN0IGFyZToKKyAgICAgICAgPHVsPgorICAgICAgICA8bGk+PGNvZGU+Y29tbW9ucy0qLmphcjwvY29kZT4gLSBSZWxlYXNlIHBhY2thZ2VzIGZyb20gdGhlCisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvIj5KYWthcnRhIENvbW1vbnMKKyAgICAgICAgICAgIFByb2plY3Q8L2E+IHRoYXQgU3RydXRzIHJlbGllcyBvbi4gIFlvdSBhcmUgd2VsY29tZSB0byB1c2UgdGhlc2UKKyAgICAgICAgICAgIGNsYXNzZXMgaW4geW91ciBvd24gYXBwbGljYXRpb25zLiAgVGhlc2UgSkFSIGZpbGVzIHNob3VsZCBiZQorICAgICAgICAgICAgY29waWVkIGludG8gdGhlIDxjb2RlPi9XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5IG9mCisgICAgICAgICAgICB5b3VyIHdlYiBhcHBsaWNhdGlvbi48L2xpPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLmphcjwvY29kZT4gLSBKQVIgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSBjb21waWxlZAorICAgICAgICAgICAgSmF2YSBjbGFzc2VzIG9mIFN0cnV0cy4gIFlvdSBtdXN0CisgICAgICAgICAgICBwbGFjZSB0aGlzIGZpbGUgaW4gdGhlIDxjb2RlPi9XRUItSU5GL2xpYjwvY29kZT4gZGlyZWN0b3J5IG9mCisgICAgICAgICAgICB5b3VyIHdlYiBhcHBsaWNhdGlvbi48L2xpPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLXh4eHh4LnRsZDwvY29kZT4gLSBUaGUgdGFnIGxpYnJhcnkgZGVzY3JpcHRvciBmaWxlcworICAgICAgICAgICAgZm9yIHRoZSBTdHJ1dHMgMS4xIHRhZyBsaWJyYXJpZXMgKGJlYW4sIGh0bWwsIGFuZCBsb2dpYykuCisgICAgICAgICAgICBZb3UgbXVzdCBwbGFjZSB0aGVzZSBmaWxlcyBpbiB0aGUgPGNvZGU+L1dFQi1JTkY8L2NvZGU+CisgICAgICAgICAgICBkaXJlY3Rvcnkgb2YgeW91ciB3ZWIgYXBwbGljYXRpb24sIGFuZCByZWZlcmVuY2UgdGhlbSB3aXRoCisgICAgICAgICAgICBhcHByb3ByaWF0ZSA8Y29kZT4mbHQ7dGFnbGliJmd0OzwvY29kZT4gZGlyZWN0aXZlcyBpbiB5b3VyCisgICAgICAgICAgICB3ZWIueG1sIGZpbGUuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPmpkYmMyXzAtc3RkZXh0LmphcjwvY29kZT4gLSBUaGUgSkRCQyAyLjAgT3B0aW9uYWwgUGFja2FnZQorICAgICAgICAgICAgQVBJIGNsYXNzZXMgKHBhY2thZ2UgPGNvZGU+amF2YXguc3FsPC9jb2RlPikuICBZb3Ugd2lsbCBuZWVkIHRvCisgICAgICAgICAgICBpbmNsdWRlIHRoaXMgZmlsZSBpbiB0aGUgPGNvZGU+L1dFQi1JTkYvbGliPC9jb2RlPiBkaXJlY3RvcnkKKyAgICAgICAgICAgIG9mIHlvdXIgYXBwbGljYXRpb24sIGlmIGl0IGlzIG5vdCBhbHJlYWR5IG1hZGUgdmlzaWJsZSB0byB3ZWIKKyAgICAgICAgICAgIGFwcGxpY2F0aW9ucyBieSB5b3VyIHNlcnZsZXQgY29udGFpbmVyLjwvbGk+CisgICAgICAgIDxsaT48Y29kZT5zdHJ1dHMtY29uZmlnXzFfMi5kdGQ8L2NvZGU+IC0gVGhlIERvY3VtZW50IFR5cGUgRGVmaW5pdGlvbgorICAgICAgICAgICAgKERURCkgZm9yIHRoZSBTdHJ1dHMgMS4yIGNvbmZpZ3VyYXRpb24gZmlsZSAod2hpY2ggaXMgdHlwaWNhbGx5IG5hbWVkCisgICAgICAgICAgICA8Y29kZT4vV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4uICBZb3VyIGNvbmZpZ3VyYXRpb24gZmlsZQorICAgICAgICAgICAgd2lsbCBiZSB2YWxpZGF0ZWQgYWdhaW5zdCBhbiBpbnRlcm5hbCBjb3B5IG9mIHRoaXMgRFREIC0tIHRoaXMKKyAgICAgICAgICAgIGNvcHkgaXMgYXZhaWxhYmxlIGZvciByZWZlcmVuY2UgcHVycG9zZXMgb25seS48L2xpPgorICAgICAgICA8bGk+PGNvZGU+c3RydXRzLWNvbmZpZ18xXzEuZHRkPC9jb2RlPiAtIFRoZSBEb2N1bWVudCBUeXBlIERlZmluaXRpb24KKyAgICAgICAgICAgIChEVEQpIGZvciB0aGUgU3RydXRzIDEuMSBjb25maWd1cmF0aW9uIGZpbGUgKHdoaWNoIGlzIHR5cGljYWxseSBuYW1lZAorICAgICAgICAgICAgPGNvZGU+L1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWw8L2NvZGU+LiAgWW91ciBjb25maWd1cmF0aW9uIGZpbGUKKyAgICAgICAgICAgIHdpbGwgYmUgdmFsaWRhdGVkIGFnYWluc3QgYW4gaW50ZXJuYWwgY29weSBvZiB0aGlzIERURCAtLSB0aGlzCisgICAgICAgICAgICBjb3B5IGlzIGF2YWlsYWJsZSBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPnN0cnV0cy1jb25maWdfMV8wLmR0ZDwvY29kZT4gLSBUaGUgRG9jdW1lbnQgVHlwZSBEZWZpbml0aW9uCisgICAgICAgICAgICAoRFREKSBmb3IgdGhlIFN0cnV0cyAxLjAgY29uZmlndXJhdGlvbiBmaWxlICh3aGljaCBpcyB0eXBpY2FsbHkgbmFtZWQKKyAgICAgICAgICAgIDxjb2RlPi9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sPC9jb2RlPi4gIFlvdXIgY29uZmlndXJhdGlvbiBmaWxlCisgICAgICAgICAgICB3aWxsIGJlIHZhbGlkYXRlZCBhZ2FpbnN0IGFuIGludGVybmFsIGNvcHkgb2YgdGhpcyBEVEQgLS0gdGhpcworICAgICAgICAgICAgY29weSBpcyBhdmFpbGFibGUgZm9yIHJlZmVyZW5jZSBwdXJwb3NlcyBvbmx5LjwvbGk+CisgICAgICAgIDxsaT48Y29kZT53ZWItYXBwXzJfMi5kdGQ8L2NvZGU+IC0gVGhlIERvY3VtZW50IFR5cGUgRGVmaW5pdGlvbiAoRFREKQorICAgICAgICAgICAgZm9yIHdlYi54bWwgZmlsZXMgY29uZm9ybWluZyB0byB0aGUgU2VydmxldCAyLjIgc3BlY2lmaWNhdGlvbi4KKyAgICAgICAgICAgIFRoaXMgY29weSBpcyBmb3IgcmVmZXJlbmNlIHB1cnBvc2VzIG9ubHkuPC9saT4KKyAgICAgICAgPGxpPjxjb2RlPndlYi1hcHBfMl8zLmR0ZDwvY29kZT4gLSBUaGUgRG9jdW1lbnQgVHlwZSBEZWZpbml0aW9uIChEVEQpCisgICAgICAgICAgICBmb3Igd2ViLnhtbCBmaWxlcyBjb25mb3JtaW5nIHRvIHRoZSBTZXJ2bGV0IDIuMyBzcGVjaWZpY2F0aW9uLgorICAgICAgICAgICAgVGhpcyBjb3B5IGlzIGZvciByZWZlcmVuY2UgcHVycG9zZXMgb25seS48L2xpPgorICAgICAgICA8L3VsPjwvbGk+CisgICAgPGxpPjxjb2RlPndlYmFwcHMvPC9jb2RlPiAtIFdlYiBBcHBsaWNhdGlvbiBBcmNoaXZlIChXQVIpIGZpbGVzIGZvciB0aGUKKyAgICAgICAgd2ViIGFwcGxpY2F0aW9ucyB0aGF0IGFyZSBpbmNsdWRlZCB3aXRoIFN0cnV0cy48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgZm9sbG93aW5nIEpha2FydGEgQ29tbW9ucyBsaWJyYXJpZXMgYXJlIGluY2x1ZGVkIHdpdGggdGhpcyByZWxlYXNlCisgICAgb2YgU3RydXRzOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkNvbW1vbnMgQmVhblV0aWxzIDEuNi4xPC9saT4KKyAgICA8bGk+Q29tbW9ucyBDb2xsZWN0aW9ucyAyLjE8L2xpPgorICAgIDxsaT5Db21tb25zIERpZ2VzdGVyIDEuNTwvbGk+CisgICAgPGxpPkNvbW1vbnMgRmlsZVVwbG9hZCAxLjA8L2xpPgorICAgIDxsaT5Db21tb25zIExhbmcgMi4wPC9saT4KKyAgICA8bGk+Q29tbW9ucyBMb2dnaW5nIDEuMC4zPC9saT4KKyAgICA8bGk+Q29tbW9ucyBWYWxpZGF0b3IgMS4xLjA8L2xpPgorICAgIDwvdWw+CisKKyAgPC9zZWN0aW9uPgorCisgIDxzZWN0aW9uIG5hbWU9IldoYXQncyBOZXc/IiBocmVmPSJOZXciPgorCisgICAgPHA+Rm9sbG93aW5nIGFyZSBoaWdobGlnaHRzIG9mIHRoZSBuZXcgZmVhdHVyZXMuIEluIHRoZSBuZXh0IHNlY3Rpb24sIHdlCisgICAgcHJvdmlkZSBsaW5rcyB0byB0aGUgSmF2YURvY3MgZm9yIHRoZSBhZmZlY3RlZCBjbGFzc2VzLjwvcD4KKworICAgIDxwPjxzdHJvbmc+TmV3IENvbmZpZ3VyYXRpb24gRFREPC9zdHJvbmc+PC9wPgorICAgIDxwPiBUaGUgU3RydXRzIENvbmZpZ3VyYXRpb24gMS4xIERURCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHRoZQorICAgIDxjb2RlPjxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2R0ZHMvc3RydXRzLWNvbmZpZ18xXzIuZHRkIj5zdHJ1dHMtY29uZmlnXzFfMi5kdGQ8L2E+PC9jb2RlPi4KKyAgICBJbiB0aGUgU3RydXRzIDEuMiByZWxlYXNlLCBleGlzdGluZyBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlcyBjYW4gYmUKKyAgICBsb2FkZWQgdXNpbmcgZWl0aGVyIERURCB2ZXJzaW9uLiBUaGUgbmV3IERURCBhZGRzIHR3byBuZXcgZWxlbWVudHMgJmx0O2Rpc3BsYXktbmFtZSZndDsKKyAgICBhbmQgJmx0O2Rlc2NyaXB0aW9uJmd0OyB0byB0aGUgc3RydXRzLWNvbmZpZyBlbGVtZW50LgorICAgIFRoZXJlIGFyZSBmb3IgdXNlIGJ5IHN0cnV0cyBjb25maWcgZmlsZSB0b29scyBhbmQgZG9jdW1lbnQgZ2VuZXJhdGlvbi4gCisgICAgPC9wPgorCisgICAgPHA+PHN0cm9uZz5OZXcgRGVwZW5kZW5jaWVzIG9uIENvbW1vbnMgcGFja2FnZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIHJlc291cmNlIGNvbXBvbmVudCBvZiBTdHJ1dHMgMS4xIGhhcyBiZWVuIGZvdW5kIHRvIGJlIHVzZWZ1bCBpbgorICAgIGdlbmVyYWwgSmF2YSBkZXZlbG9wbWVudCAoYW5kIG5vdCBqdXN0IHVzZWZ1bCBmb3IgYnVpbGRpbmcgU3RydXRzLWJhc2VkCisgICAgd2ViIGFwcGxpY2F0aW9ucyksIGFuZCBoYXZlIGJlZW4gbWlncmF0ZWQgaW50byB0aGUKKyAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvIj5KYWthcnRhIENvbW1vbnMgUHJvamVjdDwvYT4uCisgICAgQXMgYSByZXN1bHQsIHRoZSBjdXJyZW50IGRldmVsb3BtZW50IHZlcnNpb24gb2YgU3RydXRzIGhhcyBiZWVuIG1vZGlmaWVkCisgICAgdG8gcmVseSBvbiB0aGlzIENvbW1vbnMgcGFja2FnZSwgcmF0aGVyIHRoYW4gdGhlCisgICAgU3RydXRzIGludGVybmFsIHZlcnNpb24uICBJbiBuZWFybHkgZXZlcnkgY2FzZSwgdGhpcyBpbnZvbHZlZCBjaGFuZ2luZworICAgIG9ubHkgdGhlIDxjb2RlPmltcG9ydDwvY29kZT4gc3RhdGVtZW50cyBhdCB0aGUgdG9wIG9mIHlvdXIgY2xhc3Nlcy4gIEFueQorICAgIGFwcGxpY2F0aW9ucyB0aGF0IHV0aWxpemUgdGhlc2UgY2xhc3NlcyB3aWxsIG5lZWQgdG8gYmUgbW9kaWZpZWQgaW4gdGhlCisgICAgc2FtZSB3YXkuICA8L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBDb21tb25zIHBhY2thZ2VzIGNvbnRhaW4gdGhlIHJlcGxhY2VtZW50cyBmb3IgdGhlCisgICAgY29ycmVzcG9uZGluZyBTdHJ1dHMgMS4xIGNsYXNzZXM6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PHN0cm9uZz5SZXNvdXJjZXMgUGFja2FnZTwvc3Ryb25nPgorICAgICAgICBbPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL3Jlc291cmNlcy5odG1sIj48Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMucmVzb3VyY2VzPC9jb2RlPjwvYT5dIC0KKyAgICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbHMuTWVzc2FnZVJlc291cmNlczwvY29kZT48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPk5PVEUhIFhNTCBQYXJzZXIgUHJlcmVxdWlzaXRlIFVwZGF0ZWQ8L3N0cm9uZz48L3A+CisKKyAgICA8cD5TdHJ1dHMgbm93IGRlcGVuZHMgb24gYW4gWE1MIHBhcnNlciB0aGF0IGNvbmZvcm1zIHRvIHRoZSBKQVhQLzEuMQorICAgIChyYXRoZXIgdGhhbiBKQVhQLzEuMCkgQVBJcy4gUGFyc2VycyBrbm93biB0byB3b3JrIGluY2x1ZGUgdGhlIEpBWFAvMS4xCisgICAgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uLCBhbmQgWGVyY2VzIDEuMy4xLjwvcD4KKworICAgIDxwPjxzdHJvbmc+U09VUkNFIERFVkVMT1BFUlMgTk9URSEgQW50IFByZXJlcXVpc2l0ZSBVcGRhdGVkPC9zdHJvbmc+PC9wPgorICAgIDxwPlRvIGJ1aWxkIFN0cnV0cyBmcm9tIHNvdXJjZSBBbnQgMS41LjIgb3IgbGF0ZXIgaXMgbm93IHJlcXVpcmVkLiBUaGlzCisgICAgZG9lcyBub3QgYWZmZWN0IGRldmVsb3BlcnMgdGhhdCB1c2UgU3RydXRzIGZyb20gdGhlIGJpbmFyeSBkaXN0cmlidXRpb24uPC9wPgorCisKKyAgICA8cD5UaGUgc291cmNlIGZvciB0aGVzZSBjb21wb25lbnRzIGlzIGF2YWlsYWJsZSBpbiB0aGUgU3RydXRzIHNvdXJjZQorICAgIGRpc3RyaWJ1dGlvbi4gQmluYXJ5IGRpc3RyaWJ1dGlvbnMgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgd2l0aCB0aGUgU3RydXRzCisgICAgZG93bmxvYWQgYXJlYS4gQXMgb3B0aW9uYWwgY29tcG9uZW50cywgdGhlc2UgcHJvZHVjdHMgaGF2ZSB0aGVpciBvd24KKyAgICByZWxlYXNlIGN5Y2xlcy48L3A+CisKKyAgICA8cD48c3Ryb25nPkFjdGlvbiBQYWNrYWdlIEFkZGl0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIGJhc2ljIGNvbnRyb2xsZXIKKyAgICBmcmFtZXdvcmsgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvY29kZT5dOjwvcD4KKworICAgIDxwPjxzdHJvbmc+QWN0aW9ucyBQYWNrYWdlIEFkZGl0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIGFkYXB0ZXJzIGJldHdlZW4gdGhlCisgICAgICAgIGluY29taW5nIEhUVFAgcmVxdWVzdCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYnVzaW5lc3MgbG9naWMKKyAgICBmcmFtZXdvcmsgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L2NvZGU+XTo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPlRoZSBEaXNwYXRjaEFjdGlvbiBub3cgcHJvdmlkZXMgZGVmYXVsdCBjYW5jZWwgaGFuZGxlciB0aGF0IGNhbiBiZSBvdmVycmlkZGVuLgorICAgICAgICAgIEl0IGFsc28gYWxzbyBwb3NzaWJsZSB0byBzcGVjaWZ5IHRoZSBkZWZhdWx0IGhhbmRsZXIgbmFtZS48L2xpPgorICAgICAgPGxpPlRoZSBMb29rdXBEaXNwYXRjaEFjdGlvbiBub3cgcHJvdmlkZXMgZGVmYXVsdCBjYW5jZWwgaGFuZGxlciB0aGF0IGNhbiBiZSBvdmVycmlkZGVuLgorICAgICAgICAgIEl0IGFsc28gYWxzbyBwb3NzaWJsZSB0byBzcGVjaWZ5IHRoZSBkZWZhdWx0IGhhbmRsZXIgbmFtZS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlV0aWwgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZSB1dGlsaXR5IGNsYXNzZXMKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvY29kZT5dOjwvcD4KKworICAgIDxwPjxzdHJvbmc+VmFsaWRhdG9yIFBhY2thZ2UgQWRkaXRpb25zPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUgdmFsaWRhdG9yIGNsYXNzZXMKKyAgICBbPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9jb2RlPl06PC9wPgorICAgIDx1bD4KKyAgICAgICA8bGk+VGhlIFZhbGlkYXRvclBsdWdpbjogIEl0IGlzIG5vdyBwb3NzaWJsZSB0byBmb3JjZSB0aGUgY2xpZW50IHNpZGUKKyAgICAgICBKYXZhc2NyaXB0IHZhbGlkYXRpb24gdG8gY2hlY2sgYWxsIGNvbnN0cmFpbnRzLCBpbnN0ZWFkIG9mIHN0b3BwaW5nCisgICAgICAgYXQgdGhlIGZpcnN0IGVycm9yLiBCeSBzZXR0aW5nIGEgbmV3IHByb3BlcnR5LCBzdG9wT25GaXJzdEVycm9yLAorICAgICAgIG9uIHRoZSB2YWxpZGF0b3IgcGx1ZyBpbiB0YWcgdG8gZmFsc2UuIFRoaXMgaXMgaW4gdGhlIHN0cnV0cy1jb25maWcueG1sIGFzIGZvbGxvdzoKKyAgICAgICA8cHJlPgorICAgICAgICZsdDtwbHVnLWluIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvclBsdWdJbiImZ3Q7CisgICAgICAgICAmbHQ7c2V0LXByb3BlcnR5IHByb3BlcnR5PSJwYXRobmFtZXMiCisgICAgICAgICAgICAgICAgIHZhbHVlPSIvV0VCLUlORi92YWxpZGF0aW9uLnhtbCwvV0VCLUlORi92YWxpZGF0b3ItcnVsZXMueG1sIi8mZ3Q7CisgICAgICAgICAmbHQ7c2V0LXByb3BlcnR5IHByb3BlcnR5PSJzdG9wT25GaXJzdEVycm9yIiB2YWx1ZT0idHJ1ZSIvJmd0OworICAgICAgJmx0Oy9wbHVnLWluJmd0OworICAgICAgIDwvcHJlPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+dmFsaWRhdG9yLXJ1bGVzLnhtbFtpbnRSYW5nZV06IEludFJhbmdlIG5vdyBjaGVja3Mgc2VsZWN0LW9uZSBhbmQgcmFkaW8gZmllbGRzLgorICAgICAgICAgICAgRXhhbXBsZToKKyAgICAgICAgICAgIFRoaXMgYWxsb3dzIHBvcHVsYXRpbmcgY29tYm8gYm94ZXMgd2l0aCB2YWxpZCBjaG9pY2VzIHBsdXMgb25lIGFkZGl0aW9uYWwgY2hvaWNlCisgICAgICAgICAgICB3aXRoIGEgY2FwdGlvbiBzb21ldGhpbmcgbGlrZSAgIkNob29zZSBvbmUiIGFuZCBhIHZhbHVlIDBmICItMSIuCisgICAgICAgICAgICBUaGVuIHdoZW4gdGhlIHVzZXIgYXR0ZW1wdHMgdG8gc3VibWl0IHRoZSBmb3JtLCB5b3UgY2FuIGxvb2sgZm9yIHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgIi0xIiBhbmQgeWVsbCBhdCB0aGVtIGlmIHRoZXkgZmFpbGVkIHRvIHBpY2sgc29tZXRoaW5nLgorCisKKyAgICAgICAgICAgPC9saT4KKworICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkhUTUwgVGFnbGliIFBhY2thZ2UgQWRkaXRpb25zPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgbmV3IGZlYXR1cmVzIGhhdmUgYmVlbiBhZGRlZCB0byB0aGUKKyAgICA8ZW0+c3RydXRzLWh0bWw8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPl06PC9wPgorCisgICAgPHA+PHN0cm9uZz5Mb2dpYyBUYWdsaWIgUGFja2FnZSBBZGRpdGlvbnM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIHRoZQorICAgIDxlbT5zdHJ1dHMtbG9naWM8L2VtPiBjdXN0b20gdGFnIGxpYnJhcnkgWzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvY29kZT5dOjwvcD4KKworCisgICAgPHA+PHN0cm9uZz5Eb2N1bWVudGF0aW9uIEFkZGl0aW9uczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4gYWRkZWQgdG8gdGhlIFN0cnV0cyBEb2N1bWVudGF0aW9uCisgICAgYXBwbGljYXRpb24gKGFuZCBjb3JyZXNwb25kaW5nIGNvbnRlbnRzIG9uIHRoZSBTdHJ1dHMgd2ViIHNpdGUpOjwvcD4KKworICA8L3NlY3Rpb24+CisKKyAgPHNlY3Rpb24gbmFtZT0iT3BlcmF0aW9uYWwgQ2hhbmdlcyBhbmQgQnVnIEZpeGVzIiBocmVmPSJDaGFuZ2VzIj4KKworICAgIDxwPjxzdHJvbmc+U3RydXRzIENvbmZpZ3VyYXRpb24gQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSBjb25maWd1cmF0aW9uCisgICAgZmlsZXMgcmVsYXRlZCB0byBTdHJ1dHM6PC9wPgorICAgIDx1bD4KKyAgICAgICAgPGxpPkphcGFuZXNlIHJlc291cmNlcyB1cGRhdGVzIGZvciBTdHJ1dHMsIGl0cyBleGFtcGxlLCB1cGxvYWQsIHRpbGVzLWRvY3VtZW50YXRpb24uPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjxzdHJvbmc+Q29uZmlnIFBhY2thZ2U8L3N0cm9uZz48L3A+CisKKyAgICA8cD48c3Ryb25nPkFjdGlvbiBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgYmFzaWMKKyAgICBjb250cm9sbGVyIGZyYW1ld29yayAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L2NvZGU+KTo8L3A+CisKKyAgICA8cD48c3Ryb25nPlVwbG9hZCBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUgZmlsZSB1cGxvYWQKKyAgICBwYWNrYWdlIChwYWNrYWdlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvY29kZT4pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPk5vbmUuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+PHN0cm9uZz5VdGlsaXR5IFBhY2thZ2UgQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZSB1dGlsaXRpZXMKKyAgICAocGFja2FnZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+UmVxdWVzdFV0aWxzOiA8L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkJlYW4gVGFnbGliIFBhY2thZ2UgQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyBoYXZlIG9jY3VycmVkIGluIHRoZQorICAgIDxlbT5zdHJ1dHMtYmVhbjwvZW0+IGN1c3RvbSB0YWcgbGlicmFyeQorICAgIFs8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvY29kZT5dOjwvcD4KKworICAgIDxwPjxzdHJvbmc+SFRNTCBUYWdsaWIgUGFja2FnZSBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIGhhdmUgb2NjdXJyZWQgaW4gdGhlCisgICAgPGVtPnN0cnV0cy1odG1sPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+KTo8L3A+CisKKyAgICA8cD48c3Ryb25nPkxvZ2ljIFRhZ2xpYiBQYWNrYWdlIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgaGF2ZSBvY2N1cnJlZCBpbiB0aGUKKyAgICA8ZW0+c3RydXRzLWxvZ2ljPC9lbT4gY3VzdG9tIHRhZyBsaWJyYXJ5IChwYWNrYWdlCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPik6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+Tm9uZS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkRvY3VtZW50YXRpb24gQXBwbGljYXRpb24gQ2hhbmdlczwvc3Ryb25nPjwvcD4KKyAgICA8cD5UaGUgZm9sbG93aW5nIGNoYW5nZXMgYW5kIGJ1ZyBmaXhlcyB0byB0aGUgU3RydXRzIERvY3VtZW50YXRpb24KKyAgICBhcHBsaWNhdGlvbiAoYW5kIGNvcnJlc3BvbmRpbmcgY29udGVudHMgb24gdGhlIFN0cnV0cyB3ZWIgc2l0ZSkgaGF2ZQorICAgIG9jY3VycmVkOjwvcD4KKworICAgIDxwPjxzdHJvbmc+TWFpbFJlYWRlciBFeGFtcGxlIEFwcGxpY2F0aW9uIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgdG8gdGhlIFN0cnV0cyBNYWlsUmVhZGVyIEV4YW1wbGUgQXBwbGljYXRpb24KKyAgICBoYXZlIG9jY3VycmVkOjwvcD4KKworICAgIDxwPjxzdHJvbmc+VGVtcGxhdGUgRXhhbXBsZSBBcHBsaWNhdGlvbiBDaGFuZ2VzPC9zdHJvbmc+PC9wPgorICAgIDxwPlRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhbmQgYnVnIGZpeGVzIHRvIHRoZSBTdHJ1dHMgVGVtcGxhdGUgRXhhbXBsZQorICAgIEFwcGxpY2F0aW9uIGhhdmUgb2NjdXJyZWQ6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+UmVtb3ZlZC48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPkV4ZXJjaXNlIFRhZ2xpYiBFeGFtcGxlIEFwcGxpY2F0aW9uIENoYW5nZXM8L3N0cm9uZz48L3A+CisgICAgPHA+VGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFuZCBidWcgZml4ZXMgdG8gdGhlIFN0cnV0cyBFeGVyY2lzZSBUYWdsaWIgRXhhbXBsZQorICAgIEFwcGxpY2F0aW9uIGhhdmUgb2NjdXJyZWQ6PC9wPgorCisgIDwvc2VjdGlvbj4KKworICA8c2VjdGlvbiBuYW1lPSJXaGF0J3MgZGlmZmVyZW50PyIgaHJlZj0iZGlmZiI+CisKKyAgICA8cD5UaGlzIHNlY3Rpb24gcHJvdmlkZXMgbGlua3MgdG8gdGhlIFN0cnV0cyBKYXZhRG9jIGZvciBhbnkgY2xhc3NlcyB0aGF0IGhhdmUKKyAgICBiZWVuIGFkZGVkIG9yIGRlcHJlY2F0ZWQgc2luY2UgdGhlIFN0cnV0cyAxLjAgcmVsZWFzZS4KKyAgICA8L3A+CisKKyAgICA8cD48c3Ryb25nPlByZXZpb3VzbHkgZGVwcmVjYXRlZCBjbGFzc2VzIGFuZCBwYWNrYWdlcyByZW1vdmVkIGluIFN0cnV0cyAxLjI8L3N0cm9uZz48L3A+CisgICAgPHVsPgorICAgIDxsaT5SZW1vdmVkOgorICAgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMueHh4eDwvY29kZT4KKyAgICA8L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlBhY2thZ2VzIGFkZGVkIGluIFN0cnV0cyAxLjI8L3N0cm9uZz48L3A+CisKKworICAgIDxwPjxzdHJvbmc+Q2xhc3NlcyBhZGRlZCBpbiBTdHJ1dHMgMS4yPC9zdHJvbmc+PC9wPgorICAgIDxwPmFjdGlvbjwvcD4KKworICAgIDxwPmFjdGlvbnM8L3A+CisKKyAgICA8cD50YWdsaWIuaHRtbDwvcD4KKworICAgIDxwPnRhZ2xpYi5sb2dpYzwvcD4KKworICAgIDxwPnVwbG9hZDwvcD4KKworICAgIDxwPnV0aWw8L3A+CisgICAgCisgICAgPHA+PHN0cm9uZz5DbGFzc2VzIHdpdGggbWVtYmVycyBhZGRlZCBpbiBTdHJ1dHMgMS4yPC9zdHJvbmc+PC9wPgorICAgIDxwPjxhIGhyZWY9Ii4uL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5hY3Rpb24uQTwvYT48YSBocmVmPSIuLi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvYT48L3A+CisgICAgPHVsPgorICAgICAgPGxpPmluaXRNb2R1bGVDb25maWdGYWN0b3J5KCk8L2xpPgorICAgICAgPGxpPm1ldGhvZHMgY3JlYXRlZCBmb3IgYmFja3dhcmQtY29tcGF0aWJsaXR5IG9ubHk8L2xpPgorICAgIDwvdWw+CisgICAgPHA+PGEgaHJlZj0iLi4vYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnaW4uaHRtbCI+dmFsaWRhdG9yLmh0bWw8L2E+PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5pc1N0b3BPbkZpcnN0RXJyb3I8L2xpPgorICAgICAgPGxpPnNldFN0b3BPbkZpcnN0RXJyb3I8L2xpPgorICAgIDwvdWw+CisgICAgPHA+PHN0cm9uZz5DbGFzc2VzIGRlcHJlY2F0ZWQgYmV0d2VlbiBTdHJ1dHMgMS4xIGFuZCBTdHJ1dHMgMS4yPC9zdHJvbmc+PC9wPgorICAgIDxwPmFjdGlvbjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iLi4vYXBpL29yZy9hcGFjaGUvc3RydXRzL3h4eC94eHh4Lmh0bWwiPiB4eHg8L2E+PC9saT4KKyAgICA8L3VsPgorICAgIAorICAgIDxwPjxzdHJvbmc+Q2xhc3NlcyB3aXRoIG1lbWJlcnMgZGVwcmVjYXRlZCBiZXR3ZWVuIFN0cnV0cyAxLjEgYW5kIFN0cnV0cyAxLjI8L3N0cm9uZz48L3A+CisgICAgPHA+PGEgaHJlZj0iLi4vYXBpL29yZy9hcGFjaGUvc3RydXRzL3h4eHgveHh4eC5odG1sIj5jbGFzcy5tZXRob2Q8L2E+PC9wPgorCisgIAorICAgIDxwPjxzdHJvbmc+Q2xhc3NlcyB3aXRoIG1lbWJlcnMgcmVtb3ZlZCBiZXR3ZWVuIFN0cnV0cyAxLjEgYW5kIFN0cnV0cyAxLjI8L3N0cm9uZz48L3A+CisgICAgPHA+dmFsaWRhdG9yLXJ1bGVzLnhtbCwgcmFuZ2UoKSAtIHVzZSBpbnRSYW5nZSgpIGluc3RlYWQuPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uPgorICAgIDxwIGNsYXNzPSJyaWdodCI+CisgICAgTmV4dDogPGEgaHJlZj0iaW5zdGFsbGF0aW9uLmh0bWwiPkluc3RhbGxhdGlvbjwvYT4KKyAgICA8L3A+Cis8L3NlY3Rpb24+CisKKworICAgIDwvYm9keT4KKworPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9zdHJ1dHMtYmVhbi54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvc3RydXRzLWJlYW4ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkYzhhY2IKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvc3RydXRzLWJlYW4ueG1sCkBAIC0wLDAgKzEsMTEyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSJzdHJ1dHMtYmVhbi5odG1sIiBhdXRob3JzPSJmYWxzZSI+CisKKzxwcm9wZXJ0aWVzPgorICA8dGl0bGU+VGhlIFN0cnV0cyBGcmFtZXdvcmsgUHJvamVjdCAtIEJlYW4gVGFnczwvdGl0bGU+Cis8L3Byb3BlcnRpZXM+CisKKzxib2R5PgorCisKKzx0YWdsaWI+CisKKyAgPHRsaWJ2ZXJzaW9uPjEuMDwvdGxpYnZlcnNpb24+CisgIDxqc3B2ZXJzaW9uPjEuMTwvanNwdmVyc2lvbj4KKyAgPHNob3J0bmFtZT5iZWFuPC9zaG9ydG5hbWU+CisgIDxkaXNwbGF5LW5hbWU+U3RydXRzIEJlYW4gVGFnczwvZGlzcGxheS1uYW1lPgorICA8dXJpPmh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL3RhZ3MtYmVhbjwvdXJpPgorICA8aW5mbz4KKyAgPHA+VGhpcyB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHVzZWZ1bCBpbiBhY2Nlc3NpbmcgYmVhbnMgYW5kIHRoZWlyCisgIHByb3BlcnRpZXMsIGFzIHdlbGwgYXMgZGVmaW5pbmcgbmV3IGJlYW5zIChiYXNlZCBvbiB0aGVzZSBhY2Nlc3NlcykKKyAgdGhhdCBhcmUgYWNjZXNzaWJsZSB0byB0aGUgcmVtYWluZGVyIG9mIHRoZSBwYWdlIHZpYSBzY3JpcHRpbmcgdmFyaWFibGVzCisgIGFuZCBwYWdlIHNjb3BlIGF0dHJpYnV0ZXMuICBDb252ZW5pZW50IG1lY2hhbmlzbXMgdG8gY3JlYXRlIG5ldyBiZWFucworICBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgcmVxdWVzdCBjb29raWVzLCBoZWFkZXJzLCBhbmQgcGFyYW1ldGVycyBhcmUgYWxzbworICBwcm92aWRlZC48L3A+CisKKyAgPHA+TWFueSBvZiB0aGUgdGFncyBpbiB0aGlzIHRhZyBsaWJyYXJ5IHdpbGwgdGhyb3cgYQorICA8Y29kZT5Kc3BFeGNlcHRpb248L2NvZGU+IGF0IHJ1bnRpbWUgd2hlbiB0aGV5IGFyZSB1dGlsaXplZCBpbmNvcnJlY3RseQorICAoc3VjaCBhcyB3aGVuIHlvdSBzcGVjaWZ5IGFuIGludmFsaWQgY29tYmluYXRpb24gb2YgdGFnIGF0dHJpYnV0ZXMpLiAgSlNQCisgIGFsbG93cyB5b3UgdG8gZGVjbGFyZSBhbiAiZXJyb3IgcGFnZSIgaW4gdGhlIDxjb2RlPiZsdDslQCBwYWdlICUmZ3Q7PC9jb2RlPgorICBkaXJlY3RpdmUuICBJZiB5b3Ugd2lzaCB0byBwcm9jZXNzIHRoZSBhY3R1YWwgZXhjZXB0aW9uIHRoYXQgY2F1c2VkIHRoZQorICBwcm9ibGVtLCBpdCBpcyBwYXNzZWQgdG8gdGhlIGVycm9yIHBhZ2UgYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZSB1bmRlciBrZXkKKyAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkVYQ0VQVElPTjwvY29kZT4uPC9wPgorCisgIDxwPklmIHlvdSBhcmUgdmlld2luZyB0aGlzIHBhZ2UgZnJvbSB3aXRoaW4gdGhlIFN0cnV0cyBEb2N1bWVudGF0aW9uCisgIEFwcGxpY2F0aW9uIChvciBvbmxpbmUgYXQgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMiPgorICBodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0czwvYT4pLCB5b3UgY2FuIGxlYXJuIG1vcmUgYWJvdXQgdXNpbmcKKyAgdGhlc2UgdGFncyBpbiB0aGUKKyAgPGEgaHJlZj0iLi4vYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sI3BhY2thZ2VfZGVzY3JpcHRpb24iPgorICBCZWFuIFRhZ3MgRGV2ZWxvcGVyJ3MgR3VpZGU8L2E+LjwvcD4KKyAgPC9pbmZvPgorCisKKyAgPHRhZz4KKworICAgIDxuYW1lPmNvb2tpZTwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICBEZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIHZhbHVlKHMpIG9mIHRoZSBzcGVjaWZpZWQKKyAgICByZXF1ZXN0IGNvb2tpZS4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkNvb2tpZVRhZzwvdGFnY2xhc3M+CisgICAgPHRlaWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkNvb2tpZVRlaTwvdGVpY2xhc3M+CisgICAgPGJvZHljb250ZW50PmVtcHR5PC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICA8cD5SZXRyaWV2ZSB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCByZXF1ZXN0IGNvb2tpZSAoYXMgYSBzaW5nbGUKKyAgICB2YWx1ZSBvciBtdWx0aXBsZSB2YWx1ZXMsIGRlcGVuZGluZyBvbiB0aGUgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGF0dHJpYnV0ZSksCisgICAgYW5kIGRlZmluZSB0aGUgcmVzdWx0IGFzIGEgcGFnZSBzY29wZSBhdHRyaWJ1dGUgb2YgdHlwZSA8Y29kZT5Db29raWU8L2NvZGU+CisgICAgKGlmIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkKSBvciA8Y29kZT5Db29raWVbXTwvY29kZT4KKyAgICAoaWYgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGlzIHNwZWNpZmllZCkuPC9wPgorCisgICAgPHA+SWYgbm8gY29va2llIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lIGNhbiBiZSBsb2NhdGVkLCBhbmQgbm8gZGVmYXVsdAorICAgIHZhbHVlIGlzIHNwZWNpZmllZCwgYSByZXF1ZXN0IHRpbWUgZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duLjwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5TcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSAoYW5kIGFzc29jaWF0ZWQgcGFnZQorICAgICAgc2NvcGUgYXR0cmlidXRlKSB0aGF0IHdpbGwgYmUgbWFkZSBhdmFpbGFibGUgd2l0aCB0aGUgdmFsdWUgb2YgdGhlCisgICAgICBzcGVjaWZpZWQgcmVxdWVzdCBjb29raWUuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm11bHRpcGxlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+SWYgYW55IGFyYml0cmFyeSB2YWx1ZSBmb3IgdGhpcyBhdHRyaWJ1dGUgaXMgc3BlY2lmaWVkLCBjYXVzZXMgYWxsCisgICAgICBtYXRjaGluZyBjb29raWVzIHRvIGJlIGFjY3VtdWxhdGVkIGFuZCBzdG9yZWQgaW50byBhIGJlYW4gb2YgdHlwZQorICAgICAgPGNvZGU+Q29va2llW108L2NvZGU+LiAgSWYgbm90IHNwZWNpZmllZCwgdGhlIGZpcnN0IHZhbHVlIGZvciB0aGUKKyAgICAgIHNwZWNpZmllZCBjb29raWUgd2lsbCBiZSByZXRyaWV2ZWQgYXMgYSB2YWx1ZSBvZiB0eXBlCisgICAgICA8Y29kZT5Db29raWU8L2NvZGU+LjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5TcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgY29va2llIHdob3NlIHZhbHVlLCBvciB2YWx1ZXMsCisgICAgICBpcyB0byBiZSByZXRyaWV2ZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIGRlZmF1bHQgY29va2llIHZhbHVlIHRvIHJldHVybiBpZiBubyBjb29raWUgd2l0aCB0aGUKKyAgICAgIHNwZWNpZmllZCBuYW1lIHdhcyBpbmNsdWRlZCBpbiB0aGlzIHJlcXVlc3QuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisKKyAgPHRhZz4KKworICAgIDxuYW1lPmRlZmluZTwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICBEZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIHZhbHVlKHMpIG9mIHRoZSBzcGVjaWZpZWQKKyAgICBiZWFuIHByb3BlcnR5LgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uRGVmaW5lVGFnPC90YWdjbGFzcz4KKyAgICA8dGVpY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uRGVmaW5lVGVpPC90ZWljbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICA8cD5DcmVhdGUgYSBuZXcgYXR0cmlidXRlIChpbiB0aGUgc2NvcGUgc3BlY2lmaWVkIGJ5IHRoZQorICAgIDxjb2RlPnRvU2NvcGU8L2NvZGU+IHByb3BlcnR5LCBpZiBhbnkpLCBhbmQgYSBjb3JyZXNwb25kaW5nIHNjcmlwdGluZworICAgIHZhcmlhYmxlLCBib3RoIG9mIHdoaWNoIGFyZSBuYW1lZCBieSB0aGUgdmFsdWUgb2YgdGhlIDxjb2RlPmlkPC9jb2RlPgorICAgIGF0dHJpYnV0ZS4gIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIHRvIHdoaWNoIHRoaXMgbmV3IGF0dHJpYnV0ZSAoYW5kCisgICAgc2NyaXB0aW5nIHZhcmlhYmxlKSBpcyBzZXQgYXJlIHNwZWNpZmllZCB2aWEgdXNlIG9mIGV4YWN0bHkgb25lIG9mIHRoZQorICAgIGZvbGxvd2luZyBhcHByb2FjaGVzICh0cnlpbmcgdG8gdXNlIG1vcmUgdGhhbiBvbmUgd2lsbCByZXN1bHQgaW4gYQorICAgIEpzcEV4Y2VwdGlvbiBiZWluZyB0aHJvd24pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPlNwZWNpZnkgYSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgKHBsdXMgb3B0aW9uYWwKKyAgICAgICAgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGFuZCA8Y29kZT5zY29wZTwvY29kZT4gYXR0cmlidXRlcykgLQorICAgICAgICBUaGUgY3JlYXRlZCBhdHRyaWJ1dGUgYW5kIHNjcmlwdGluZyB2YXJpYWJsZSB3aWxsIGJlIG9mIHRoZSB0eXBlIG9mIHRoZQorICAgICAgICByZXRyaWV2ZWQgSmF2YUJlYW4gcHJvcGVydHksIHVubGVzcyBpdCBpcyBhIEphdmEgcHJpbWl0aXZlIHR5cGUsCisgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSB3cmFwcGVkIGluIHRoZSBhcHByb3ByaWF0ZSB3cmFwcGVyIGNsYXNzCisgICAgICAgIChpLmUuIGludCBpcyB3cmFwcGVkIGJ5IGphdmEubGFuZy5JbnRlZ2VyKS48L2xpPgorICAgIDxsaT5TcGVjaWZ5IGEgPGNvZGU+dmFsdWU8L2NvZGU+IGF0dHJpYnV0ZSAtIFRoZSBjcmVhdGVkIGF0dHJpYnV0ZSBhbmQKKyAgICAgICAgc2NyaXB0aW5nIHZhcmlhYmxlIHdpbGwgYmUgb2YgdHlwZSA8Y29kZT5qYXZhLmxhbmcuU3RyaW5nPC9jb2RlPiwKKyAgICAgICAgc2V0IHRvIHRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZS48L2xpPgorICAgIDxsaT5TcGVjaWZ5IG5lc3RlZCBib2R5IGNvbnRlbnQgLSBUaGUgY3JlYXRlZCBhdHRyaWJ1dGUgYW5kIHNjcmlwdGluZworICAgICAgICB2YXJpYWJsZSB3aWxsIGJlIG9mIHR5cGUgPGNvZGU+amF2YS5sYW5nLlN0cmluZzwvY29kZT4sIHNldCB0bworICAgICAgICB0aGUgdmFsdWUgb2YgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+SWYgYSBwcm9ibGVtIG9jY3VycyB3aGlsZSByZXRyaWV2aW5nIHRoZSBzcGVjaWZpZWQgYmVhbiBwcm9wZXJ0eSwgYQorICAgIHJlcXVlc3QgdGltZSBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24uPC9wPgorCisgICAgPHA+VGhlIDxjb2RlPiZsdDtiZWFuOmRlZmluZSZndDs8L2NvZGU+IHRhZyBkaWZmZXJzIGZyb20KKyAgICA8Y29kZT4mbHQ7anNwOnVzZUJlYW4mZ3Q7PC9jb2RlPiBpbiBzZXZlcmFsIHdheXMsIGluY2x1ZGluZzo8L3A+CisgICAgPHVsPgorICAgIDxsaT5VbmNvbmRpdGlvbmFsbHkgY3JlYXRlcyAob3IgcmVwbGFjZXMpIGEgYmVhbiB1bmRlciB0aGUKKyAgICAgICAgc3BlY2lmaWVkIGlkZW50aWZpZXIuPC9saT4KKyAgICA8bGk+Q2FuIGNyZWF0ZSBhIGJlYW4gd2l0aCB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgYSBwcm9wZXJ0eSBnZXR0ZXIKKyAgICAgICAgb2YgYSBkaWZmZXJlbnQgYmVhbiAoaW5jbHVkaW5nIHByb3BlcnRpZXMgcmVmZXJlbmNlZCB3aXRoIGEKKyAgICAgICAgbmVzdGVkIGFuZC9vciBpbmRleGVkIHByb3BlcnR5IG5hbWUpLjwvbGk+CisgICAgPGxpPkNhbiBjcmVhdGUgYSBiZWFuIHdob3NlIGNvbnRlbnRzIGlzIGEgbGl0ZXJhbCBzdHJpbmcgKG9yIHRoZSByZXN1bHQKKyAgICAgICAgb2YgYSBydW50aW1lIGV4cHJlc3Npb24pIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+dmFsdWU8L2NvZGU+CisgICAgICAgIGF0dHJpYnV0ZS48L2xpPgorICAgIDxsaT5Eb2VzIG5vdCBzdXBwb3J0IG5lc3RlZCBjb250ZW50IChzdWNoIGFzCisgICAgICAgIDxjb2RlPiZsdDtqc3A6c2V0UHJvcGVydHkmZ3Q7PC9jb2RlPiB0YWdzKSB0aGF0IGFyZSBvbmx5IGV4ZWN1dGVkCisgICAgICAgIGlmIGEgYmVhbiB3YXMgYWN0dWFsbHkgY3JlYXRlZC48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD48c3Ryb25nPlVTQUdFIE5PVEU8L3N0cm9uZz4gLSBUaGVyZSBpcyBhIHJlc3RyaWN0aW9uIGluIHRoZSBKU1AgMS4xCisgICAgU3BlY2lmaWNhdGlvbiB0aGF0IGRpc2FsbG93cyB1c2luZyB0aGUgc2FtZSB2YWx1ZSBmb3IgYW4gPGNvZGU+aWQ8L2NvZGU+CisgICAgYXR0cmlidXRlIG1vcmUgdGhhbiBvbmNlIGluIGEgc2luZ2xlIEpTUCBwYWdlLiAgVGhlcmVmb3JlLCB5b3Ugd2lsbCBub3QKKyAgICBiZSBhYmxlIHRvIHVzZSA8Y29kZT4mbHQ7YmVhbjpkZWZpbmUmZ3Q7PC9jb2RlPiBmb3IgdGhlIHNhbWUgYmVhbgorICAgIG5hbWUgbW9yZSB0aGFuIG9uY2UgaW4gYSBzaW5nbGUgcGFnZS48L3A+CisKKyAgICA8cD48c3Ryb25nPlVTQUdFIE5PVEU8L3N0cm9uZz4gLSBJZiB5b3UgdXNlIGFub3RoZXIgdGFnIHRvIGNyZWF0ZSB0aGUKKyAgICBib2R5IGNvbnRlbnQgKGUuZy4gYmVhbjp3cml0ZSksIHRoYXQgdGFnIG11c3QgcmV0dXJuIGEgbm9uLWVtcHR5IFN0cmluZy4KKyAgICBBbiBlbXB0eSBTdHJpbmcgZXF1YXRlcyB0byBhbiBlbXB0eSBib2R5IG9yIGEgbnVsbCBTdHJpbmcsIGFuZCBhIG5ldworICAgIHNjcmlwdGluZyB2YXJpYWJsZSBjYW5ub3QgYmUgZGVmaW5lZCBhcyBudWxsLiBZb3VyIGJlYW4gbXVzdCByZXR1cm4gYQorICAgIG5vbi1lbXB0eSBTdHJpbmcsIG9yIHRoZSBkZWZpbmUgdGFnIG11c3QgYmUgd3JhcHBlZCB3aXRoaW4gYSBsb2dpYyB0YWcKKyAgICB0byB0ZXN0IGZvciBhbiBlbXB0eSBvciBudWxsIHZhbHVlLjwvcD4KKworICAgIDxwPjxzdHJvbmc+VVNBR0UgTk9URTwvc3Ryb25nPiAtIFlvdSBjYW5ub3QgdXNlIGJlYW46ZGVmaW5lIHRvIDxzdHJvbmc+aW5zdGFudGlhdGU8L3N0cm9uZz4KKyAgICBhIER5bmFBY3Rpb25Gb3JtICh0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRHluYUFjdGlvbkZvcm0iKSB3aXRoCisgICAgdGhlIHByb3BlcnRpZXMgc3BlY2lmaWVkIGluIHRoZSBzdHJ1dHMtY29uZmlnLiBUaGUgbWVjaGFuaWNzIG9mIGNyZWF0aW5nCisgICAgdGhlIGR5bmEtcHJvcGVydGllcyBpcyBjb21wbGV4IGFuZCBjYW5ub3QgYmUgaGFuZGxlZCBieSBhIG5vLWFyZ3VtZW50CisgICAgY29uc3RydWN0b3IuIElmIHlvdSBuZWVkIHRvIGNyZWF0ZSBhbiBBY3Rpb25Gb3JtIHRoaXMgd2F5LCB5b3UgbXVzdCB1c2UKKyAgICBhIGNvbnZlbnRpb25hbCBBY3Rpb25Gb3JtLgorICAgIDwvcD4KKworICAgIDxwPlNlZSB0aGUgQmVhbiBEZXZlbG9wZXIncyBHdWlkZSBzZWN0aW9uIG9uCisgICAgPGEgaHJlZj0iLi4vYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sI2RvYy5DcmVhdGlvbiI+CisgICAgYmVhbiBjcmVhdGlvbjwvYT4gZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlc2UgZGlmZmVyZW5jZXMsIGFzIHdlbGwKKyAgICBhcyBhbHRlcm5hdGl2ZSBhcHByb2FjaGVzIHRvIGludHJvZHVjaW5nIGJlYW5zIGludG8gYSBKU1AgcGFnZS48L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmlkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+U3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgKGFuZCBhc3NvY2lhdGVkIHBhZ2UKKyAgICAgIHNjb3BlIGF0dHJpYnV0ZSkgdGhhdCB3aWxsIGJlIG1hZGUgYXZhaWxhYmxlIHdpdGggdGhlIHZhbHVlIG9mIHRoZQorICAgICAgc3BlY2lmaWVkIHByb3BlcnR5LjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+U3BlY2lmaWVzIHRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0eSBpcyBhY2Nlc3NlZAorICAgICAgdG8gZGVmaW5lIGEgbmV3IHBhZ2Ugc2NvcGUgYXR0cmlidXRlIChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gaXMgYWxzbworICAgICAgc3BlY2lmaWVkKSBvciB0aGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gdGhhdCBpcyBkdXBsaWNhdGVkIHdpdGgKKyAgICAgIHRoZSBuZXcgcmVmZXJlbmNlIGNyZWF0ZWQgYnkgdGhpcyB0YWcgKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBub3QKKyAgICAgIGFsc28gc3BlY2lmaWVkKS4gIFRoaXMgYXR0cmlidXRlIGlzIHJlcXVpcmVkIHVubGVzcyB5b3Ugc3BlY2lmeQorICAgICAgYSA8Y29kZT52YWx1ZTwvY29kZT4gYXR0cmlidXRlIG9yIG5lc3RlZCBib2R5IGNvbnRlbnQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+U3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBiZSBhY2Nlc3NlZCBvbiB0aGUgYmVhbgorICAgICAgc3BlY2lmaWVkIGJ5IDxjb2RlPm5hbWU8L2NvZGU+LiAgVGhpcyB2YWx1ZSBtYXkgYmUgYSBzaW1wbGUsIGluZGV4ZWQsCisgICAgICBvciBuZXN0ZWQgcHJvcGVydHkgcmVmZXJlbmNlIGV4cHJlc3Npb24uICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgYmVhbgorICAgICAgaWRlbnRpZmllZCBieSA8Y29kZT5uYW1lPC9jb2RlPiBpcyBnaXZlbiBhIG5ldyByZWZlcmVuY2UgaWRlbnRpZmllZCBieQorICAgICAgPGNvZGU+aWQ8L2NvZGU+LjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlNwZWNpZmllcyB0aGUgdmFyaWFibGUgc2NvcGUgc2VhcmNoZWQgdG8gcmV0cmlldmUgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICBieSA8Y29kZT5uYW1lPC9jb2RlPi4gIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IHJ1bGVzIGFwcGxpZWQgYnkKKyAgICAgIDxjb2RlPlBhZ2VDb250ZXh0LmZpbmRBdHRyaWJ1dGUoKTwvY29kZT4gYXJlIGFwcGxpZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnRvU2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5TcGVjaWZpZXMgdGhlIHZhcmlhYmxlIHNjb3BlIGludG8gd2hpY2ggdGhlIG5ld2x5IGRlZmluZWQgYmVhbiB3aWxsCisgICAgICBiZSBjcmVhdGVkLiAgSWYgbm90IHNwZWNpZmllZCwgdGhlIGJlYW4gd2lsbCBiZSBjcmVhdGVkIGluCisgICAgICA8Y29kZT5wYWdlPC9jb2RlPiBzY29wZS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dHlwZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+U3BlY2lmaWVzIHRoZSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSBvZiB0aGUgdmFsdWUgdG8gYmUgZXhwb3NlZAorICAgICAgICBhcyB0aGUgPGNvZGU+aWQ8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICA8L2luZm8+CisgICAgICA8ZGVmYXVsdD4KKyAgICAgICAgPGNvZGU+amF2YS5sYW5nLlN0cmluZzwvY29kZT4gKGlmIHlvdSBzcGVjaWZ5IGEgPGNvZGU+dmFsdWU8L2NvZGU+CisgICAgICAgIGF0dHJpYnV0ZSkgb3IgPGNvZGU+amF2YS5sYW5nLk9iamVjdDwvY29kZT4gb3RoZXJ3aXNlLgorICAgICAgPC9kZWZhdWx0PgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIDxjb2RlPmphdmEubGFuZy5TdHJpbmc8L2NvZGU+IHZhbHVlIHRvIHdoaWNoIHRoZSBleHBvc2VkIGJlYW4KKyAgICAgIHNob3VsZCBiZSBzZXQuICBUaGlzIGF0dHJpYnV0ZSBpcyByZXF1aXJlZCB1bmxlc3MgeW91IHNwZWNpZnkgdGhlCisgICAgICA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgb3IgbmVzdGVkIGJvZHkgY29udGVudC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKworICA8dGFnPgorCisgICAgPG5hbWU+aGVhZGVyPC9uYW1lPgorICAgIDxzdW1tYXJ5PgorICAgIERlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSBiYXNlZCBvbiB0aGUgdmFsdWUocykgb2YgdGhlIHNwZWNpZmllZAorICAgIHJlcXVlc3QgaGVhZGVyLgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSGVhZGVyVGFnPC90YWdjbGFzcz4KKyAgICA8dGVpY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSGVhZGVyVGVpPC90ZWljbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+ZW1wdHk8L2JvZHljb250ZW50PgorICAgIDxpbmZvPgorICAgIDxwPlJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHJlcXVlc3QgaGVhZGVyIChhcyBhIHNpbmdsZQorICAgIHZhbHVlIG9yIG11bHRpcGxlIHZhbHVlcywgZGVwZW5kaW5nIG9uIHRoZSA8Y29kZT5tdWx0aXBsZTwvY29kZT4gYXR0cmlidXRlKSwKKyAgICBhbmQgZGVmaW5lIHRoZSByZXN1bHQgYXMgYSBwYWdlIHNjb3BlIGF0dHJpYnV0ZSBvZiB0eXBlIDxjb2RlPlN0cmluZzwvY29kZT4KKyAgICAoaWYgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQpIG9yIDxjb2RlPlN0cmluZ1tdPC9jb2RlPgorICAgIChpZiA8Y29kZT5tdWx0aXBsZTwvY29kZT4gaXMgc3BlY2lmaWVkKS48L3A+CisKKyAgICA8cD5JZiBubyBoZWFkZXIgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgY2FuIGJlIGxvY2F0ZWQsIGFuZCBubyBkZWZhdWx0CisgICAgdmFsdWUgaXMgc3BlY2lmaWVkLCBhIHJlcXVlc3QgdGltZSBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24uPC9wPgorICAgIDwvaW5mbz4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5pZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIChhbmQgYXNzb2NpYXRlZCBwYWdlCisgICAgICBzY29wZSBhdHRyaWJ1dGUpIHRoYXQgd2lsbCBiZSBtYWRlIGF2YWlsYWJsZSB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgIHNwZWNpZmllZCByZXF1ZXN0IGhlYWRlci48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bXVsdGlwbGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5JZiBhbnkgYXJiaXRyYXJ5IHZhbHVlIGZvciB0aGlzIGF0dHJpYnV0ZSBpcyBzcGVjaWZpZWQsIGNhdXNlcyBhIGNhbGwKKyAgICAgIHRvIDxjb2RlPkh0dHBTZXJ2bGV0UmVxdWVzdC5nZXRIZWFkZXJzKCk8L2NvZGU+IGFuZCBhIGRlZmluaXRpb24gb2YgdGhlCisgICAgICByZXN1bHQgYXMgYSBiZWFuIG9mIHR5cGUgPGNvZGU+U3RyaW5nW108L2NvZGU+LiAgT3RoZXJ3aXNlLAorICAgICAgPGNvZGU+SHR0cFNlcnZsZXRSZXF1ZXN0LmdldEhlYWRlcigpPC9jb2RlPiB3aWxsIGJlIGNhbGxlZCwgYW5kIGEKKyAgICAgIGRlZmluaXRpb24gb2YgdGhlIHJlc3VsdCBhcyBhIGJlYW4gb2YgdHlwZSA8Y29kZT5TdHJpbmc8L2NvZGU+CisgICAgICB3aWxsIGJlIHBlcmZvcm1lZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+U3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IGhlYWRlciB3aG9zZSB2YWx1ZSwgb3IgdmFsdWVzLAorICAgICAgaXMgdG8gYmUgcmV0cmlldmVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSBkZWZhdWx0IGhlYWRlciB2YWx1ZSB0byByZXR1cm4gaWYgbm8gaGVhZGVyIHdpdGggdGhlCisgICAgICBzcGVjaWZpZWQgbmFtZSB3YXMgaW5jbHVkZWQgaW4gdGhpcyByZXF1ZXN0LjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworCisgIDx0YWc+CisKKyAgICA8bmFtZT5pbmNsdWRlPC9uYW1lPgorICAgIDxzdW1tYXJ5PgorICAgIExvYWQgdGhlIHJlc3BvbnNlIGZyb20gYSBkeW5hbWljIGFwcGxpY2F0aW9uIHJlcXVlc3QgYW5kIG1ha2UgaXQgYXZhaWxhYmxlCisgICAgYXMgYSBiZWFuLgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSW5jbHVkZVRhZzwvdGFnY2xhc3M+CisgICAgPHRlaWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkluY2x1ZGVUZWk8L3RlaWNsYXNzPgorICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgPHA+UGVyZm9ybSBhbiBpbnRlcm5hbCBkaXNwYXRjaCB0byB0aGUgc3BlY2lmaWVkIGFwcGxpY2F0aW9uIGNvbXBvbmVudAorICAgIChvciBleHRlcm5hbCBVUkwpCisgICAgYW5kIG1ha2UgdGhlIHJlc3BvbnNlIGRhdGEgZnJvbSB0aGF0IHJlcXVlc3QgYXZhaWxhYmxlIGFzIGEgYmVhbiBvZgorICAgIHR5cGUgPGNvZGU+U3RyaW5nPC9jb2RlPi4gIFRoaXMgdGFnIGhhcyBhIGZ1bmN0aW9uIHNpbWlsYXIgdG8gdGhhdCBvZgorICAgIHRoZSBzdGFuZGFyZCA8Y29kZT4mbHQ7anNwOmluY2x1ZGUmZ3Q7PC9jb2RlPiB0YWcsIGV4Y2VwdCB0aGF0IHRoZQorICAgIHJlc3BvbnNlIGRhdGEgaXMgc3RvcmVkIGluIGEgcGFnZSBzY29wZSBhdHRyaWJ1dGUgaW5zdGVhZCBvZiBiZWluZworICAgIHdyaXR0ZW4gdG8gdGhlIG91dHB1dCBzdHJlYW0uICBJZiB0aGUgY3VycmVudCByZXF1ZXN0IGlzIHBhcnQgb2YgYQorICAgIHNlc3Npb24sIHRoZSBnZW5lcmF0ZWQgcmVxdWVzdCBmb3IgdGhlIGluY2x1ZGUgd2lsbCBhbHNvIGluY2x1ZGUgdGhlCisgICAgc2Vzc2lvbiBpZGVudGlmaWVyIChhbmQgdGh1cyBiZSBwYXJ0IG9mIHRoZSBzYW1lIHNlc3Npb24pLjwvcD4KKworICAgIDxwPlRoZSBVUkwgdXNlZCB0byBhY2Nlc3MgdGhlIHNwZWNpZmllZCBhcHBsaWNhdGlvbiBjb21wb25lbnQgaXMKKyAgICBjYWxjdWxhdGVkIGJhc2VkIG9uIHdoaWNoIG9mIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyB5b3Ugc3BlY2lmeQorICAgICh5b3UgbXVzdCBzcGVjaWZ5IGV4YWN0bHkgb25lIG9mIHRoZW0pOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPjxlbT5mb3J3YXJkPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIHRoZSBuYW1lCisgICAgICAgIG9mIGEgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRvIGJlIGxvb2tlZCB1cCwgYW5kCisgICAgICAgIHVzZSB0aGUgYXBwbGljYXRpb24tcmVsYXRpdmUgb3IgY29udGV4dC1yZWxhdGl2ZSBVUkkgZm91bmQgdGhlcmUuPC9saT4KKyAgICA8bGk+PGVtPmhyZWY8L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgdW5jaGFuZ2VkIChzaW5jZQorICAgICAgICB0aGlzIG1pZ2h0IGxpbmsgdG8gYSByZXNvdXJjZSBleHRlcm5hbCB0byB0aGUgYXBwbGljYXRpb24sIHRoZQorICAgICAgICBzZXNzaW9uIGlkZW50aWZpZXIgaXMgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gaW5jbHVkZWQuPC9saT4KKyAgICA8bGk+PGVtPnBhZ2U8L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgYXMgYW4KKyAgICAgICAgYXBwbGljYXRpb24tcmVsYXRpdmUgVVJJIHRvIHRoZSBkZXNpcmVkIHJlc291cmNlLjwvbGk+CisgICAgPC91bD4KKyAgICA8L2luZm8+CisKKyAgICA8cD48c3Ryb25nPldBUk5JTkc8L3N0cm9uZz4gLSBBY2Nlc3NpbmcgcmVzb3VyY2VzIHByb3RlY3RlZCBieSBzZWN1cml0eQorICAgIGNvbnN0cmFpbnRzLCBvciByZXNvdXJjZXMgdW5kZXIgdGhlIDxjb2RlPi9XRUItSU5GPC9jb2RlPiBzdWJkaXJlY3RvcnksCisgICAgIHdpdGggdGhpcyB0YWcgaXMgbm90IHN1cHBvcnRlZC4gIENvbnNpZGVyIHVzaW5nIHRoZQorICAgIDxjb2RlPiZsdDtqc3A6aW5jbHVkZSAuLi4gZmx1c2g9ImZhbHNlIiZndDs8L2NvZGU+IHRhZyBvbiBhIEpTUCAxLjIKKyAgICBvciBsYXRlciBjb250YWluZXIsIG9yIHRoZQorICAgIDxjb2RlPiZsdDtjOmltcG9ydCZndDs8L2NvZGU+IHRhZyBmcm9tIHRoZSBKU1AgU3RhbmRhcmQgVGFnIExpYnJhcnkKKyAgICB0byBhY2NvbXBsaXNoIHRoaXMuPC9wPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFuY2hvcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPk9wdGlvbmFsIGFuY2hvciB0YWcgKCIjeHh4IikgdG8gYmUgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZAorICAgICAgaHlwZXJsaW5rLiAgU3BlY2lmeSB0aGlzIHZhbHVlIDxzdHJvbmc+d2l0aG91dDwvc3Ryb25nPiBhbnkKKyAgICAgICIjIiBjaGFyYWN0ZXIuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmZvcndhcmQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5Mb2dpY2FsIG5hbWUgb2YgYSBnbG9iYWwgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gdGhhdCBjb250YWlucworICAgICAgdGhlIGFjdHVhbCBjb250ZW50LXJlbGF0aXZlIFVSSSBvZiB0aGUgcmVzb3VyY2UgdG8gYmUgaW5jbHVkZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmhyZWY8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5BYnNvbHV0ZSBVUkwgKGluY2x1ZGluZyB0aGUgYXBwcm9wcmlhdGUgcHJvdG9jb2wgcHJlZml4IHN1Y2ggYXMKKyAgICAgICJodHRwOiIpIG9mIHRoZSByZXNvdXJjZSB0byBiZSBpbmNsdWRlZC4gIEJlY2F1c2UgdGhpcyBVUkwgY291bGQgYmUKKyAgICAgIGV4dGVybmFsIHRvIHRoZSBjdXJyZW50IHdlYiBhcHBsaWNhdGlvbiwgdGhlIHNlc3Npb24gaWRlbnRpZmllciB3aWxsCisgICAgICA8c3Ryb25nPm5vdDwvc3Ryb25nPiBiZSBpbmNsdWRlZCBpbiB0aGUgcmVxdWVzdC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5TcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSAoYW5kIGFzc29jaWF0ZWQgcGFnZQorICAgICAgc2NvcGUgYXR0cmlidXRlKSB0aGF0IHdpbGwgYmUgbWFkZSBhdmFpbGFibGUgd2l0aCB0aGUgdmFsdWUgb2YgdGhlCisgICAgICBzcGVjaWZpZWQgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+QXBwbGljYXRpb24tcmVsYXRpdmUgbmFtZSAoc3RhcnRpbmcgd2l0aCBhICcvJykgb2YgdGhlIHdlYiBhcHBsaWNhdGlvbgorICAgICAgcmVzb3VyY2UgdG8gYmUgZGlzcGF0Y2hlZCwgYW5kIHdob3NlIHJlc3BvbnNlIGRhdGEgaXMgdG8gYmUgbWFkZQorICAgICAgYXZhaWxhYmxlIGFzIGEgYmVhbi48L3A+CisgICAgICA8L2luZm8+CisgICAgICA8ZGVwcmVjYXRlZD4KKyAgICAgIFVzZSB0aGUgInBhZ2UiIGF0dHJpYnV0ZSBpbnN0ZWFkLgorICAgICAgPC9kZXByZWNhdGVkPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5BcHBsaWNhdGlvbi1yZWxhdGl2ZSBVUkkgKHN0YXJ0aW5nIHdpdGggYSAnLycpIG9mIHRoZSB3ZWIgYXBwbGljYXRpb24KKyAgICAgIHJlc291cmNlIHRvIGJlIGluY2x1ZGVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50cmFuc2FjdGlvbjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgICAgPHA+U2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHlvdSB3YW50IHRoZSBjdXJyZW50CisgICAgICAgIHRyYW5zYWN0aW9uIGNvbnRyb2wgdG9rZW4gaW5jbHVkZWQgaW4gdGhlIGdlbmVyYXRlZAorICAgICAgICBVUkwgZm9yIHRoaXMgaW5jbHVkZS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKworICA8dGFnPgorCisgICAgPG5hbWU+bWVzc2FnZTwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICBSZW5kZXIgYW4gaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZSBzdHJpbmcgdG8gdGhlIHJlc3BvbnNlLgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uTWVzc2FnZVRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PmVtcHR5PC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICA8cD5SZXRyaWV2ZXMgYW4gaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZCBsb2NhbGUsCisgICAgdXNpbmcgdGhlIHNwZWNpZmllZCBtZXNzYWdlIGtleSwgYW5kIHdyaXRlIGl0IHRvIHRoZSBvdXRwdXQgc3RyZWFtLgorICAgIFVwIHRvIGZpdmUgcGFyYW1ldHJpYyByZXBsYWNlbWVudHMgKHN1Y2ggYXMgInswfSIpIG1heSBiZSBzcGVjaWZpZWQuPC9wPgorCisgICAgPHA+VGhlIG1lc3NhZ2Uga2V5IG1heSBiZSBzcGVjaWZpZWQgZGlyZWN0bHksIHVzaW5nIHRoZSA8Y29kZT5rZXk8L2NvZGU+CisgICAgYXR0cmlidXRlLCBvciBpbmRpcmVjdGx5LCB1c2luZyB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYW5kCisgICAgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMgdG8gb2J0YWluIGl0IGZyb20gYSBiZWFuLjwvcD4KKyAgICAKKyAgICA8cD4KKyAgICA8c3Ryb25nPkpTVEw8L3N0cm9uZz46ICBUaGUgZXF1aXZhbGVudCBKU1RMIHRhZyBpcyAmbHQ7Zm10Om1lc3NhZ2UmZ3Q7LiAgRm9yIGV4YW1wbGUsCisgICAgPGJyLz4KKyAgICA8Y29kZT4KKyAgICAJJmx0O2ZtdDptZXNzYWdlIGtleT0ibXkubXNnLmtleSImZ3Q7CisgICAgCSAgJmx0O2ZtdDpwYXJhbSB2YWx1ZT0icmVwbGFjZW1lbnQgdGV4dCIvJmd0OworICAgIAkmbHQ7L2ZtdDptZXNzYWdlJmd0OworICAgIDwvY29kZT4KKyAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFyZzA8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5GaXJzdCBwYXJhbWV0cmljIHJlcGxhY2VtZW50IHZhbHVlLCBpZiBhbnkuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFyZzE8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5TZWNvbmQgcGFyYW1ldHJpYyByZXBsYWNlbWVudCB2YWx1ZSwgaWYgYW55LjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hcmcyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhpcmQgcGFyYW1ldHJpYyByZXBsYWNlbWVudCB2YWx1ZSwgaWYgYW55LjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hcmczPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+Rm91cnRoIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgdmFsdWUsIGlmIGFueS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YXJnNDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPkZpZnRoIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgdmFsdWUsIGlmIGFueS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggdGhlCisgICAgICA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBvYmplY3QgY29udGFpbmluZyBvdXIgbWVzc2FnZXMKKyAgICAgIGlzIHN0b3JlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgICA8ZGVmYXVsdD5HbG9iYWxzLk1FU1NBR0VTX0tFWTwvZGVmYXVsdD4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5rZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgbWVzc2FnZSBrZXkgb2YgdGhlIHJlcXVlc3RlZCBtZXNzYWdlLCB3aGljaCBtdXN0IGhhdmUKKyAgICAgIGEgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgbWVzc2FnZSByZXNvdXJjZXMuIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICB0aGUga2V5IGlzIG9idGFpbmVkIGZyb20gdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGFuZAorICAgICAgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmxvY2FsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggb3VyIGN1cnJlbnRseQorICAgICAgc2VsZWN0ZWQgPGNvZGU+TG9jYWxlPC9jb2RlPiBvYmplY3QgaXMgc3RvcmVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICAgIDxkZWZhdWx0Pkdsb2JhbHMuTE9DQUxFX0tFWTwvZGVmYXVsdD4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+U3BlY2lmaWVzIHRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0eSBpcyBhY2Nlc3NlZAorICAgICAgdG8gcmV0cmlldmUgdGhlIHZhbHVlIHNwZWNpZmllZCBieSA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gKGlmCisgICAgICBzcGVjaWZpZWQpLiAgSWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQsIHRoZSB2YWx1ZSBvZgorICAgICAgdGhpcyBiZWFuIGl0c2VsZiB3aWxsIGJlIHVzZWQgYXMgdGhlIG1lc3NhZ2UgcmVzb3VyY2Uga2V5LjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYmUgYWNjZXNzZWQgb24gdGhlIGJlYW4KKyAgICAgIHNwZWNpZmllZCBieSA8Y29kZT5uYW1lPC9jb2RlPi4gIFRoaXMgdmFsdWUgbWF5IGJlIGEgc2ltcGxlLCBpbmRleGVkLAorICAgICAgb3IgbmVzdGVkIHByb3BlcnR5IHJlZmVyZW5jZSBleHByZXNzaW9uLiAgSWYgbm90IHNwZWNpZmllZCwgdGhlIHZhbHVlCisgICAgICBvZiB0aGUgYmVhbiBpZGVudGlmaWVkIGJ5IDxjb2RlPm5hbWU8L2NvZGU+IHdpbGwgaXRzZWxmIGJlIHVzZWQgYXMgdGhlCisgICAgICBtZXNzYWdlIHJlc291cmNlIGtleS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5TcGVjaWZpZXMgdGhlIHZhcmlhYmxlIHNjb3BlIHNlYXJjaGVkIHRvIHJldHJpZXZlIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgYnkgPGNvZGU+bmFtZTwvY29kZT4uICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBydWxlcyBhcHBsaWVkIGJ5CisgICAgICA8Y29kZT5QYWdlQ29udGV4dC5maW5kQXR0cmlidXRlKCk8L2NvZGU+IGFyZSBhcHBsaWVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworCisgIDx0YWc+CisKKyAgICA8bmFtZT5wYWdlPC9uYW1lPgorICAgIDxzdW1tYXJ5PgorICAgIEV4cG9zZSBhIHNwZWNpZmllZCBpdGVtIGZyb20gdGhlIHBhZ2UgY29udGV4dCBhcyBhIGJlYW4uCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYWdlVGFnPC90YWdjbGFzcz4KKyAgICA8dGVpY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFnZVRlaTwvdGVpY2xhc3M+CisgICAgPGJvZHljb250ZW50PmVtcHR5PC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICA8cD5SZXRyaWV2ZSB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBpdGVtIGZyb20gdGhlIHBhZ2UgY29udGV4dAorICAgIGZvciB0aGlzIHBhZ2UsIGFuZCBkZWZpbmUgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUsIGFuZCBhIHBhZ2Ugc2NvcGUKKyAgICBhdHRyaWJ1dGUgYWNjZXNzaWJsZSB0byB0aGUgcmVtYWluZGVyIG9mIHRoZSBjdXJyZW50IHBhZ2UuPC9wPgorCisgICAgPHA+SWYgYSBwcm9ibGVtIG9jY3VycyB3aGlsZSByZXRyaWV2aW5nIHRoZSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbgorICAgIG9iamVjdCwgYSByZXF1ZXN0IHRpbWUgZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duLjwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5TcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSAoYW5kIGFzc29jaWF0ZWQKKyAgICAgIHBhZ2Ugc2NvcGUgYXR0cmlidXRlKSB0aGF0IHdpbGwgYmUgbWFkZSBhdmFpbGFibGUgd2l0aCB0aGUgdmFsdWUgb2YKKyAgICAgIHRoZSBzcGVjaWZpZWQgcGFnZSBjb250ZXh0IHByb3BlcnR5LjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+TmFtZSBvZiB0aGUgcHJvcGVydHkgZnJvbSBvdXIgcGFnZSBjb250ZXh0IHRvIGJlIHJldHJpZXZlZCBhbmQKKyAgICAgIGV4cG9zZWQuICBNdXN0IGJlIG9uZSBvZiA8Y29kZT5hcHBsaWNhdGlvbjwvY29kZT4sIDxjb2RlPmNvbmZpZzwvY29kZT4sCisgICAgICA8Y29kZT5yZXF1ZXN0PC9jb2RlPiwgPGNvZGU+cmVzcG9uc2U8L2NvZGU+LCBvciA8Y29kZT5zZXNzaW9uPC9jb2RlPi4KKyAgICAgIDwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworCisgIDx0YWc+CisKKyAgICA8bmFtZT5wYXJhbWV0ZXI8L25hbWU+CisgICAgPHN1bW1hcnk+CisgICAgRGVmaW5lIGEgc2NyaXB0aW5nIHZhcmlhYmxlIGJhc2VkIG9uIHRoZSB2YWx1ZShzKSBvZiB0aGUgc3BlY2lmaWVkCisgICAgcmVxdWVzdCBwYXJhbWV0ZXIuCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYXJhbWV0ZXJUYWc8L3RhZ2NsYXNzPgorICAgIDx0ZWljbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYXJhbWV0ZXJUZWk8L3RlaWNsYXNzPgorICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgPHA+UmV0cmlldmUgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXJhbWV0ZXIgKGFzIGEgc2luZ2xlCisgICAgdmFsdWUgb3IgbXVsdGlwbGUgdmFsdWVzLCBkZXBlbmRpbmcgb24gdGhlIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBhdHRyaWJ1dGUpLAorICAgIGFuZCBkZWZpbmUgdGhlIHJlc3VsdCBhcyBhIHBhZ2Ugc2NvcGUgYXR0cmlidXRlIG9mIHR5cGUgPGNvZGU+U3RyaW5nPC9jb2RlPgorICAgIChpZiA8Y29kZT5tdWx0aXBsZTwvY29kZT4gaXMgbm90IHNwZWNpZmllZCkgb3IgPGNvZGU+U3RyaW5nW108L2NvZGU+CisgICAgKGlmIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcyBzcGVjaWZpZWQpLjwvcD4KKworICAgIDxwPklmIG5vIHJlcXVlc3QgcGFyYW1ldGVyIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lIGNhbiBiZSBsb2NhdGVkLCBhbmQKKyAgICBubyBkZWZhdWx0IHZhbHVlIGlzIHNwZWNpZmllZCwgYSByZXF1ZXN0IHRpbWUgZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duLjwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5TcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSAoYW5kIGFzc29jaWF0ZWQgcGFnZQorICAgICAgc2NvcGUgYXR0cmlidXRlKSB0aGF0IHdpbGwgYmUgbWFkZSBhdmFpbGFibGUgd2l0aCB0aGUgdmFsdWUgb2YgdGhlCisgICAgICBzcGVjaWZpZWQgcmVxdWVzdCBwYXJhbWV0ZXIuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm11bHRpcGxlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+SWYgYW55IGFyYml0cmFyeSB2YWx1ZSBmb3IgdGhpcyBhdHRyaWJ1dGUgaXMgc3BlY2lmaWVkLCBjYXVzZXMgYSBjYWxsCisgICAgICB0byA8Y29kZT5TZXJ2bGV0UmVxdWVzdC5nZXRQYXJhbWV0ZXJWYWx1ZXMoKTwvY29kZT4gYW5kIGEgZGVmaW5pdGlvbiBvZgorICAgICAgdGhlIHJlc3VsdCBhcyBhIGJlYW4gb2YgdHlwZSA8Y29kZT5TdHJpbmdbXTwvY29kZT4uICBPdGhlcndpc2UsCisgICAgICA8Y29kZT5TZXJ2bGV0UmVxdWVzdC5nZXRQYXJhbWV0ZXIoKTwvY29kZT4gd2lsbCBiZSBjYWxsZWQsIGFuZCBhCisgICAgICBkZWZpbml0aW9uIG9mIHRoZSByZXN1bHQgYXMgYSBiZWFuIG9mIHR5cGUgPGNvZGU+U3RyaW5nPC9jb2RlPgorICAgICAgd2lsbCBiZSBwZXJmb3JtZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgd2hvc2UgdmFsdWUsIG9yIHZhbHVlcywKKyAgICAgIGlzIHRvIGJlIHJldHJpZXZlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgdG8gcmV0dXJuIGlmIG5vIHBhcmFtZXRlciB3aXRoIHRoZQorICAgICAgc3BlY2lmaWVkIG5hbWUgd2FzIGluY2x1ZGVkIGluIHRoaXMgcmVxdWVzdC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKworICA8dGFnPgorCisgICAgPG5hbWU+cmVzb3VyY2U8L25hbWU+CisgICAgPHN1bW1hcnk+CisgICAgTG9hZCBhIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSBhbmQgbWFrZSBpdCBhdmFpbGFibGUgYXMgYSBiZWFuLgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUmVzb3VyY2VUYWc8L3RhZ2NsYXNzPgorICAgIDx0ZWljbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5SZXNvdXJjZVRlaTwvdGVpY2xhc3M+CisgICAgPGJvZHljb250ZW50PmVtcHR5PC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICA8cD5SZXRyaWV2ZSB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UsIGFuZCBtYWtlCisgICAgaXQgYXZhaWxhYmxlIGFzIGVpdGhlciBhIDxjb2RlPklucHV0U3RyZWFtPC9jb2RlPiBvciBhIDxjb2RlPlN0cmluZzwvY29kZT4sCisgICAgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+aW5wdXQ8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisKKyAgICA8cD5JZiBhIHByb2JsZW0gb2NjdXJzIHdoaWxlIHJldHJpZXZpbmcgdGhlIHNwZWNpZmllZCByZXNvdXJjZSwgYQorICAgIHJlcXVlc3QgdGltZSBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24uPC9wPgorICAgIDwvaW5mbz4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5pZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIChhbmQgYXNzb2NpYXRlZCBwYWdlCisgICAgICBzY29wZSBhdHRyaWJ1dGUpIHRoYXQgd2lsbCBiZSBtYWRlIGF2YWlsYWJsZSB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgIHNwZWNpZmllZCB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmlucHV0PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+SWYgYW55IGFyYml0cmFyeSB2YWx1ZSBmb3IgdGhpcyBhdHRyaWJ1dGUgaXMgc3BlY2lmaWVkLCB0aGUgcmVzb3VyY2UKKyAgICAgIHdpbGwgYmUgbWFkZSBhdmFpbGFibGUgYXMgYW4gPGNvZGU+SW5wdXRTdHJlYW08L2NvZGU+LiAgSWYgdGhpcworICAgICAgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSByZXNvdXJjZSB3aWxsIGJlIG1hZGUgYXZhaWxhYmxlCisgICAgICBhcyBhIDxjb2RlPlN0cmluZzwvY29kZT4uPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPkFwcGxpY2F0aW9uLXJlbGF0aXZlIG5hbWUgKHN0YXJ0aW5nIHdpdGggYSAnLycpIG9mIHRoZSB3ZWIgYXBwbGljYXRpb24KKyAgICAgIHJlc291cmNlIHRvIGJlIGxvYWRlZCBhbmQgbWFkZSBhdmFpbGFibGUuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisKKyAgPHRhZz4KKworICAgIDxuYW1lPnNpemU8L25hbWU+CisgICAgPHN1bW1hcnk+CisgICAgRGVmaW5lIGEgYmVhbiBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gYSBDb2xsZWN0aW9uIG9yIE1hcC4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlNpemVUYWc8L3RhZ2NsYXNzPgorICAgIDx0ZWljbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5TaXplVGVpPC90ZWljbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+ZW1wdHk8L2JvZHljb250ZW50PgorICAgIDxpbmZvPgorICAgIDxwPkdpdmVuIGEgcmVmZXJlbmNlIHRvIGFuIGFycmF5LCBDb2xsZWN0aW9uIG9yIE1hcCwgY3JlYXRlcyBhIG5ldyBiZWFuLCBvZgorICAgIHR5cGUgPGNvZGU+amF2YS5sYW5nLkludGVnZXI8L2NvZGU+LCB3aG9zZSB2YWx1ZSBpcyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzCisgICAgaW4gdGhhdCBjb2xsZWN0aW9uLiAgWW91IGNhbiBzcGVjaWZ5IHRoZSBjb2xsZWN0aW9uIHRvIGJlIGNvdW50ZWQgaW4gYW55CisgICAgb25lIG9mIHRoZSBmb2xsb3dpbmcgd2F5czo8L3A+CisgICAgPHVsPgorICAgIDxsaT5BcyBhIHJ1bnRpbWUgZXhwcmVzc2lvbiBzcGVjaWZpZWQgYXMgdGhlIHZhbHVlIG9mIHRoZQorICAgICAgICA8Y29kZT5jb2xsZWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUuPC9saT4KKyAgICA8bGk+QXMgYSBKU1AgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZS48L2xpPgorICAgIDxsaT5BcyB0aGUgcHJvcGVydHksIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZSwKKyAgICAgICAgb2YgdGhlIEpTUCBiZWFuIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLjwvbGk+CisgICAgPC91bD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Y29sbGVjdGlvbjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPkEgcnVudGltZSBleHByZXNzaW9uIHRoYXQgZXZhbHVhdGVzIHRvIGFuIGFycmF5LCBhIENvbGxlY3Rpb24sIG9yCisgICAgICBhIE1hcC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgbmFtZSBvZiBhIHBhZ2Ugc2NvcGUgSlNQIGJlYW4sIG9mIHR5cGUKKyAgICAgIDxjb2RlPmphdmEubGFuZy5JbnRlZ2VyPC9jb2RlPiwgdGhhdCB3aWxsIGJlIGNyZWF0ZWQgdG8gY29udGFpbiB0aGUKKyAgICAgIHNpemUgb2YgdGhlIHVuZGVybHlpbmcgY29sbGVjdGlvbiBiZWluZyBjb3VudGVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIEpTUCBiZWFuIChvcHRpb25hbGx5IGNvbnN0cmFpbmVkIHRvIHRoZSBzY29wZQorICAgICAgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5zY29wZTwvY29kZT4gYXR0cmlidXRlKSB0aGF0IGNvbnRhaW5zIHRoZQorICAgICAgY29sbGVjdGlvbiB0byBiZSBjb3VudGVkIChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gaXMgbm90IHNwZWNpZmllZCksCisgICAgICBvciB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMgY2FsbGVkIHRvIHJldHVybiB0aGUgY29sbGVjdGlvbiB0byBiZQorICAgICAgY291bnRlZCAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgbmFtZSBvZiB0aGUgcHJvcGVydHksIG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUKKyAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hvc2UgZ2V0dGVyIG1ldGhvZCB3aWxsIHJldHVybiB0aGUKKyAgICAgIGNvbGxlY3Rpb24gdG8gYmUgY291bnRlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgYmVhbiBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgSlNQIGJlYW4gc3BlY2lmaWVkCisgICAgICBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwgdGhlIGF2YWlsYWJsZQorICAgICAgc2NvcGVzIGFyZSBzZWFyY2hlZCBpbiBhc2NlbmRpbmcgc2VxdWVuY2UuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisKKyAgPHRhZz4KKworICAgIDxuYW1lPnN0cnV0czwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICBFeHBvc2UgYSBuYW1lZCBTdHJ1dHMgaW50ZXJuYWwgY29uZmlndXJhdGlvbiBvYmplY3QgYXMgYSBiZWFuLgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU3RydXRzVGFnPC90YWdjbGFzcz4KKyAgICA8dGVpY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU3RydXRzVGVpPC90ZWljbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+ZW1wdHk8L2JvZHljb250ZW50PgorICAgIDxpbmZvPgorICAgIDxwPlJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIFN0cnV0cyBpbnRlcm5hbCBjb25maWd1cmF0aW9uCisgICAgb2JqZWN0LCBhbmQgZGVmaW5lIGl0IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlIGFuZCBhcyBhIHBhZ2Ugc2NvcGUKKyAgICBhdHRyaWJ1dGUgYWNjZXNzaWJsZSB0byB0aGUgcmVtYWluZGVyIG9mIHRoZSBjdXJyZW50IHBhZ2UuICBZb3UgbXVzdAorICAgIHNwZWNpZnkgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmZvcm1CZWFuPC9jb2RlPiwgPGNvZGU+Zm9yd2FyZDwvY29kZT4sCisgICAgYW5kIDxjb2RlPm1hcHBpbmc8L2NvZGU+IGF0dHJpYnV0ZXMgdG8gc2VsZWN0IHRoZSBjb25maWd1cmF0aW9uIG9iamVjdAorICAgIHRvIGJlIGV4cG9zZWQuPC9wPgorCisgICAgPHA+SWYgYSBwcm9ibGVtIG9jY3VycyB3aGlsZSByZXRyaWV2aW5nIHRoZSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbgorICAgIG9iamVjdCwgYSByZXF1ZXN0IHRpbWUgZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duLjwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5TcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSAoYW5kIGFzc29jaWF0ZWQKKyAgICAgIHBhZ2Ugc2NvcGUgYXR0cmlidXRlKSB0aGF0IHdpbGwgYmUgbWFkZSBhdmFpbGFibGUgd2l0aCB0aGUgdmFsdWUgb2YKKyAgICAgIHRoZSBzcGVjaWZpZWQgU3RydXRzIGludGVybmFsIGNvbmZpZ3VyYXRpb24gb2JqZWN0LjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5mb3JtQmVhbjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgU3RydXRzIDxjb2RlPkFjdGlvbkZvcm1CZWFuPC9jb2RlPgorICAgICAgZGVmaW5pdGlvbiBvYmplY3QgdG8gYmUgZXhwb3NlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Zm9yd2FyZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgZ2xvYmFsIFN0cnV0cyA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPgorICAgICAgZGVmaW5pdGlvbiBvYmplY3QgdG8gYmUgZXhwb3NlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bWFwcGluZzwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlNwZWNpZmllcyB0aGUgbWF0Y2hpbmcgcGF0aCBvZiB0aGUgU3RydXRzIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+CisgICAgICBkZWZpbml0aW9uIG9iamVjdCB0byBiZSBleHBvc2VkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworCisgIDx0YWc+CisKKyAgICA8bmFtZT53cml0ZTwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICBSZW5kZXIgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgYmVhbiBwcm9wZXJ0eSB0byB0aGUgY3VycmVudAorICAgIEpzcFdyaXRlci4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLldyaXRlVGFnPC90YWdjbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+ZW1wdHk8L2JvZHljb250ZW50PgorICAgIDxpbmZvPgorICAgIDxwPlJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4gcHJvcGVydHksIGFuZCByZW5kZXIgaXQgdG8gdGhlCisgICAgY3VycmVudCBKc3BXcml0ZXIgYXMgYSBTdHJpbmcgYnkgdGhlIHdheXM6PC9wPgorICAgICA8dWw+CisgICAgIDxsaT5JZiA8Y29kZT5mb3JtYXQ8L2NvZGU+IGF0dHJpYnV0ZSBleGlzdHMgdGhlbiB2YWx1ZSB3aWxsIGJlIGZvcm1hdHRlZCBvbiBiYXNlIG9mIGZvcm1hdAorICAgICBzdHJpbmcgZnJvbSA8Y29kZT5mb3JtYXQ8L2NvZGU+IGF0dHJpYnV0ZSBhbmQgZGVmYXVsdCBzeXN0ZW0gbG9jYWxlLjwvbGk+CisgICAgIDxsaT5JZiBpbiByZXNvdXJjZXMgZXhpc3RzIGZvcm1hdCBzdHJpbmcgZm9yIHZhbHVlIGRhdGEgdHlwZSAodmlldyA8Y29kZT5mb3JtYXQ8L2NvZGU+CisgICAgIGF0dHJpYnV0ZSBkZXNjcmlwdGlvbikgdGhlbiB2YWx1ZSB3aWxsIGJlIGZvcm1hdHRlZCBvbiBiYXNlIG9mIGZvcm1hdCBzdHJpbmcKKyAgICAgZnJvbSByZXNvdXJjZXMuIFJlc291cmNlcyBidW5kbGUgYW5kIHRhcmdldCBsb2NhbGUgY2FuIGJlIHNwZWNpZmllZCB3aXRoCisgICAgIDxjb2RlPmJ1bmRsZTwvY29kZT4gYW5kIDxjb2RlPmxvY2FsZTwvY29kZT4gYXR0cmlidXRlcy4gSWYgbm90aGluZyBzcGVjaWZpZWQgdGhlbgorICAgICBkZWZhdWx0IHJlc291cmNlIGJ1bmRsZSBhbmQgY3VycmVudCB1c2VyIGxvY2FsZSB3aWxsIGJlIHVzZWQuPC9saT4KKyAgICAgPGxpPklmIHRoZXJlIGlzIGEgUHJvcGVydHlFZGl0b3IgY29uZmlndXJlZCBmb3IgdGhlIHByb3BlcnR5IHZhbHVlJ3MgY2xhc3MsIHRoZQorICAgICA8Y29kZT5nZXRBc1RleHQoKTwvY29kZT4gbWV0aG9kIHdpbGwgYmUgY2FsbGVkLjwvbGk+CisgICAgIDxsaT5PdGhlcndpc2UsIHRoZSB1c3VhbCA8Y29kZT50b1N0cmluZygpPC9jb2RlPiBjb252ZXJzaW9ucyB3aWxsIGJlIGFwcGxpZWQuPC9saT4KKyAgICAgPC91bD4KKworICAgIDxwPklmIGEgcHJvYmxlbSBvY2N1cnMgd2hpbGUgcmV0cmlldmluZyB0aGUgc3BlY2lmaWVkIGJlYW4gcHJvcGVydHksIGEKKyAgICByZXF1ZXN0IHRpbWUgZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duLjwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggdGhlCisgICAgICA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBvYmplY3QgY29udGFpbmluZyBvdXIgbWVzc2FnZXMKKyAgICAgIGlzIHN0b3JlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgICA8ZGVmYXVsdD5HbG9iYWxzLk1FU1NBR0VTX0tFWTwvZGVmYXVsdD4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5maWx0ZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5JZiB0aGlzIGF0dHJpYnV0ZSBpcyBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIHRoZSByZW5kZXJlZCBwcm9wZXJ0eQorICAgICAgdmFsdWUgd2lsbCBiZSBmaWx0ZXJlZCBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBzZW5zaXRpdmUgaW4gSFRNTCwgYW5kIGFueQorICAgICAgc3VjaCBjaGFyYWN0ZXJzIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlaXIgZW50aXR5IGVxdWl2YWxlbnRzLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICAgIDxkZWZhdWx0PnRydWU8L2RlZmF1bHQ+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Zm9ybWF0PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+U3BlY2lmaWVzIHRoZSBmb3JtYXQgc3RyaW5nIHRvIHVzZSB0byBjb252ZXJ0IGJlYW4gb3IgcHJvcGVydHkgdmFsdWUKKyAgICAgIHRvIHRoZSA8Y29kZT5TdHJpbmc8L2NvZGU+LiBJZiBub3RoaW5nIHNwZWNpZmllZCwgdGhlbiBkZWZhdWx0IGZvcm1hdAorICAgICAgc3RyaW5nIGZvciB2YWx1ZSBkYXRhIHR5cGUgd2lsbCBiZSBzZWFyY2hlZCBpbiBtZXNzYWdlIHJlc291cmNlcyBieQorICAgICAgYWNjb3JkaW5nIGtleS48L3A+Cis8IS0tIG1vdmUgdG8gZGV2ZWxvcGVycyBndWlkZQorICAgICAgPHRhYmxlPgorICAgICAgIDx0cj4KKyAgICAgICAgICAgPHRkPktleSB0byBzZWFyY2ggZm9ybWF0IHN0cmluZzwvdGQ+CisgICAgICAgICAgIDx0ZD5EYXRhIHR5cGVzPC90ZD4KKyAgICAgICA8L3RyPgorICAgICAgIDx0cj4KKyAgICAgICAgICAgPHRkPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLmZvcm1hdC5pbnQ8L3RkPgorICAgICAgICAgICA8dGQ+amF2YS5sYW5nLkJ5dGUsIGphdmEubGFuZy5TaG9ydCwgamF2YS5sYW5nLkludGVnZXIsIGphdmEubGFuZy5Mb25nLAorICAgICAgICAgICAgICAgamF2YS5tYXRoLkJpZ0ludGVnZXI8L3RkPgorICAgICAgIDwvdHI+CisgICAgICAgPHRyPgorICAgICAgICAgICA8dGQ+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uZm9ybWF0LmZsb2F0PC90ZD4KKyAgICAgICAgICAgPHRkPmphdmEubGFuZy5GbG9hdCwgamF2YS5sYW5nLkRvdWJsZSwgamF2YS5tYXRoLkJpZ0RlY2ltYWw8L3RkPgorICAgICAgIDwvdHI+CisgICAgICAgPHRyPgorICAgICAgICAgICA8dGQ+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uZm9ybWF0LnNxbC50aW1lc3RhbXA8L3RkPgorICAgICAgICAgICA8dGQ+amF2YS5zcWwuVGltZXN0YW1wPC90ZD4KKyAgICAgICA8L3RyPgorICAgICAgIDx0cj4KKyAgICAgICAgICAgPHRkPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLmZvcm1hdC5zcWwuZGF0ZTwvdGQ+CisgICAgICAgICAgIDx0ZD5qYXZhLnNxbC5EYXRlPC90ZD4KKyAgICAgICA8L3RyPgorICAgICAgIDx0cj4KKyAgICAgICAgICAgPHRkPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLmZvcm1hdC5zcWwudGltZTwvdGQ+CisgICAgICAgICAgIDx0ZD5qYXZhLnNxbC5UaW1lPC90ZD4KKyAgICAgICA8L3RyPgorICAgICAgIDx0cj4KKyAgICAgICAgICAgPHRkPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLmZvcm1hdC5kYXRlPC90ZD4KKyAgICAgICAgICAgPHRkPmphdmEudXRpbC5EYXRlPC90ZD4KKyAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKyAgICAgIDxwPkRlZmF1bHQgZm9ybWF0IHN0cmluZ3MgaW4gcmVzb3VyY2VzIGNhbiBiZSB3cml0dGVuIGFzIC0gPGJyIC8+CisgICAgICAgIDxwcmU+CisgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uZm9ybWF0LmludD0jIyMjIyMKKyAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5mb3JtYXQuZmxvYXQ9IyMjIyMjLCMjIyMKKyAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5mb3JtYXQuc3FsLnRpbWVzdGFtcD1oaCAnbycnY2xvY2snIGEsIHp6enoKKyAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5mb3JtYXQuc3FsLmRhdGU9RUVFLCBNTU0gZCwgJyd5eQorICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLmZvcm1hdC5zcWwudGltZT1oOm1tIGEKKyAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5mb3JtYXQuZGF0ZT1oaCAnbycnY2xvY2snIGEsIHp6enoKKyAgICAgICAgPC9wcmU+CisgICAgICAgIDxiciAvPnZhbHVlcyBmb3IgcmVzb3VyY2UgZmlsZSBlbnRyaWVzIGFyZSBzdGFuZGFydCBKYXZhIGZvcm1hdCBzdHJpbmdzIGZvcgorICAgICAgICBkYXRlLCB0aW1lIGFuZCBudW1iZXIgdmFsdWVzLjwvcD4KKy0tPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmZvcm1hdEtleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlNwZWNpZmllcyB0aGUga2V5IHRvIHNlYXJjaCBmb3JtYXQgc3RyaW5nIGluIGFwcGxpY2F0aW9uIHJlc291cmNlcy48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aWdub3JlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+SWYgdGhpcyBhdHRyaWJ1dGUgaXMgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBhbmQgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYW5kIDxjb2RlPnNjb3BlPC9jb2RlPiBhdHRyaWJ1dGVzIGRvZXMgbm90CisgICAgICBleGlzdCwgc2ltcGx5IHJldHVybiB3aXRob3V0IHdyaXRpbmcgYW55dGhpbmcuICBJZiB0aGlzIGF0dHJpYnV0ZSBpcworICAgICAgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiwgYSBydW50aW1lIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24sCisgICAgICBjb25zaXN0ZW50IHdpdGggdGhlIG90aGVyIHRhZ3MgaW4gdGhpcyB0YWcgbGlicmFyeS48L3A+CisgICAgICA8L2luZm8+CisgICAgICA8ZGVmYXVsdD5mYWxzZTwvZGVmYXVsdD4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5sb2NhbGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPlRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggb3VyIGN1cnJlbnRseQorICAgICAgICBzZWxlY3RlZCA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9iamVjdCBpcyBzdG9yZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgICAgPGRlZmF1bHQ+R2xvYmFscy5MT0NBTEVfS0VZPC9kZWZhdWx0PgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlNwZWNpZmllcyB0aGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydHkgaXMgYWNjZXNzZWQKKyAgICAgIHRvIHJldHJpZXZlIHRoZSB2YWx1ZSBzcGVjaWZpZWQgYnkgPGNvZGU+cHJvcGVydHk8L2NvZGU+IChpZgorICAgICAgc3BlY2lmaWVkKS4gIElmIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgdmFsdWUgb2YKKyAgICAgIHRoaXMgYmVhbiBpdHNlbGYgd2lsbCBiZSByZW5kZXJlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5TcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIGFjY2Vzc2VkIG9uIHRoZSBiZWFuCisgICAgICBzcGVjaWZpZWQgYnkgPGNvZGU+bmFtZTwvY29kZT4uICBUaGlzIHZhbHVlIG1heSBiZSBhIHNpbXBsZSwgaW5kZXhlZCwKKyAgICAgIG9yIG5lc3RlZCBwcm9wZXJ0eSByZWZlcmVuY2UgZXhwcmVzc2lvbi4gIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBiZWFuCisgICAgICBpZGVudGlmaWVkIGJ5IDxjb2RlPm5hbWU8L2NvZGU+IHdpbGwgaXRzZWxmIGJlIHJlbmRlcmVkLiAgSWYgdGhlCisgICAgICBzcGVjaWZpZWQgcHJvcGVydHkgcmV0dXJucyBudWxsLCBubyBvdXRwdXQgd2lsbCBiZSByZW5kZXJlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5TcGVjaWZpZXMgdGhlIHZhcmlhYmxlIHNjb3BlIHNlYXJjaGVkIHRvIHJldHJpZXZlIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgYnkgPGNvZGU+bmFtZTwvY29kZT4uICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBydWxlcyBhcHBsaWVkIGJ5CisgICAgICA8Y29kZT5QYWdlQ29udGV4dC5maW5kQXR0cmlidXRlKCk8L2NvZGU+IGFyZSBhcHBsaWVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworCis8L3RhZ2xpYj4KKworPC9ib2R5PgorCis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3N0cnV0cy1odG1sLnhtbCBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9zdHJ1dHMtaHRtbC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWRhZjFiYQotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9zdHJ1dHMtaHRtbC54bWwKQEAgLTAsMCArMSw2OTgzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9InN0cnV0cy1odG1sLmh0bWwiIGF1dGhvcnM9ImZhbHNlIj4KKworPHByb3BlcnRpZXM+CisgIDx0aXRsZT5UaGUgU3RydXRzIEZyYW1ld29yayBQcm9qZWN0IC0gSFRNTCBUYWdzPC90aXRsZT4KKzwvcHJvcGVydGllcz4KKworPGJvZHk+CisKKworPHRhZ2xpYj4KKworICA8dGxpYnZlcnNpb24+MS4wPC90bGlidmVyc2lvbj4KKyAgPGpzcHZlcnNpb24+MS4xPC9qc3B2ZXJzaW9uPgorICA8c2hvcnRuYW1lPmh0bWw8L3Nob3J0bmFtZT4KKyAgPGRpc3BsYXktbmFtZT5QYWdlIENvbnN0cnVjdGlvbiBUYWdzPC9kaXNwbGF5LW5hbWU+CisgIDx1cmk+aHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvdGFncy1odG1sPC91cmk+CisgIDxpbmZvPgorICA8cD4KKyAgICAgICAgVGhpcyB0YWdsaWIgY29udGFpbnMgdGFncyB1c2VkIHRvIGNyZWF0ZSBzdHJ1dHMKKyAgICAgICAgaW5wdXQgZm9ybXMsIGFzIHdlbGwgYXMgb3RoZXIgdGFncyBnZW5lcmFsbHkgdXNlZnVsCisgICAgICAgICAgICAgICAgaW4gdGhlIGNyZWF0aW9uIG9mIEhUTUwtYmFzZWQgdXNlciBpbnRlcmZhY2VzLgorICA8L3A+CisKKyAgPHA+TWFueSBvZiB0aGUgdGFncyBpbiB0aGlzIHRhZyBsaWJyYXJ5IHdpbGwgdGhyb3cgYQorICA8Y29kZT5Kc3BFeGNlcHRpb248L2NvZGU+IGF0IHJ1bnRpbWUgd2hlbiB0aGV5IGFyZSB1dGlsaXplZCBpbmNvcnJlY3RseQorICAoc3VjaCBhcyB3aGVuIHlvdSBzcGVjaWZ5IGFuIGludmFsaWQgY29tYmluYXRpb24gb2YgdGFnIGF0dHJpYnV0ZXMpLiAgSlNQCisgIGFsbG93cyB5b3UgdG8gZGVjbGFyZSBhbiAiZXJyb3IgcGFnZSIgaW4gdGhlIDxjb2RlPiZsdDslQCBwYWdlICUmZ3Q7PC9jb2RlPgorICBkaXJlY3RpdmUuICBJZiB5b3Ugd2lzaCB0byBwcm9jZXNzIHRoZSBhY3R1YWwgZXhjZXB0aW9uIHRoYXQgY2F1c2VkIHRoZQorICBwcm9ibGVtLCBpdCBpcyBwYXNzZWQgdG8gdGhlIGVycm9yIHBhZ2UgYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZSB1bmRlciBrZXkKKyAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkVYQ0VQVElPTjwvY29kZT4uPC9wPgorCisgIDwvaW5mbz4KKworICAgICAgICA8dGFnPgorICAgICAgICAgIDxuYW1lPmJhc2U8L25hbWU+CisgICAgICAgICAgPHN1bW1hcnk+UmVuZGVyIGFuIEhUTUwgJmx0O2Jhc2UmZ3Q7IEVsZW1lbnQ8L3N1bW1hcnk+CisgICAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VUYWc8L3RhZ2NsYXNzPgorICAgICAgICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgICAgICAgPGluZm8+CisgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MIDxjb2RlPiZsdDtiYXNlJmd0OzwvY29kZT4gZWxlbWVudCB3aXRoIGFuCisgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlIHBvaW50aW5nIHRvIHRoZSBhYnNvbHV0ZSBsb2NhdGlvbiBvZgorICAgICAgICAgIHRoZSBlbmNsb3NpbmcgSlNQIHBhZ2UuICBUaGlzIHRhZyBpcyB2YWxpZCBvbmx5IHdoZW4gbmVzdGVkIGluc2lkZQorICAgICAgICAgIGFuIEhUTUwgPGNvZGU+Jmx0O2hlYWQmZ3Q7PC9jb2RlPiBlbGVtZW50LjwvcD4KKworICAgICAgICAgIDxwPlRoaXMgdGFnIGlzIHVzZWZ1bCBiZWNhdXNlIGl0IGFsbG93cyB5b3UgdG8gdXNlIHJlbGF0aXZlIFVSTAorICAgICAgICAgIHJlZmVyZW5jZXMgaW4gdGhlIHBhZ2UgdGhhdCBhcmUgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgVVJMIG9mIHRoZQorICAgICAgICAgIHBhZ2UgaXRzZWxmLCByYXRoZXIgdGhhbiB0aGUgVVJMIHRvIHdoaWNoIHRoZSBtb3N0IHJlY2VudCBzdWJtaXQKKyAgICAgICAgICB0b29rIHBsYWNlICh3aGljaCBpcyB3aGVyZSB0aGUgYnJvd3NlciB3b3VsZCBub3JtYWxseSByZXNvbHZlCisgICAgICAgICAgcmVsYXRpdmUgcmVmZXJlbmNlcyBhZ2FpbnN0KS48L3A+CisgICAgICAgICAgPC9pbmZvPgorCisgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhcmdldDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgPHA+VGhlIHdpbmRvdyB0YXJnZXQgZm9yIHRoaXMgYmFzZSByZWZlcmVuY2UuPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zZXJ2ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgIDxwPlRoZSBzZXJ2ZXIgbmFtZSB0byB1c2UgaW5zdGVhZCBvZiByZXF1ZXN0LmdldFNlcnZlck5hbWUoKS48L3A+CisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPC90YWc+CisKKyAgICA8dGFnPgorCisgICAgICAgIDxuYW1lPmJ1dHRvbjwvbmFtZT4KKyAgICAgICAgPHN1bW1hcnk+CisgICAgICAgICAgICBSZW5kZXIgQSBCdXR0b24gSW5wdXQgRmllbGQKKyAgICAgICAgPC9zdW1tYXJ5PgorICAgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQnV0dG9uVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGluZm8+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUKKyAgICAgICAgICAgICAgICA8Y29kZT5idXR0b248L2NvZGU+LCBwb3B1bGF0ZWQgZnJvbSB0aGUgc3BlY2lmaWVkIHZhbHVlIG9yIHRoZQorICAgICAgICAgICAgICAgIGNvbnRlbnQgb2YgdGhpcyB0YWcgYm9keS4gVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuIG5lc3RlZAorICAgICAgICAgICAgICAgIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuCisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICBJZiBhIGdyYXBoaWNhbCBidXR0b24gaXMgbmVlZGVkIChhIGJ1dHRvbiB3aXRoIGFuIGltYWdlKSwgdGhlbiB0aGUKKyAgICAgICAgICAgICA8YSBocmVmPSIjaW1hZ2UiPjxjb2RlPmltYWdlPC9jb2RlPjwvYT4gdGFnIGlzIG1vcmUgYXBwcm9wcmlhdGUuCisgICAgICAgICAgICA8L3A+CisgICAgICAgIDwvaW5mbz4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLiAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4KKyAgICAgICAgICAgICAgICB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAicHJvcGVydHlOYW1lWzM0XSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZCBmb3IKKyAgICAgICAgICAgICAgICBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVmFsdWUgb2YgdGhlIGxhYmVsIHRvIGJlIHBsYWNlZCBvbiB0aGlzIGJ1dHRvbi4gVGhpcyB2YWx1ZSB3aWxsCisgICAgICAgICAgICAgICAgYWxzbyBiZSBzdWJtaXR0ZWQgYXMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXJhbWV0ZXIuCisgICAgICAgICAgICAgICAgW0JvZHkgb2YgdGhpcyB0YWcgKGlmIGFueSksIG9yICJDbGljayJdCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorCisgICAgPHRhZz4KKworICAgICAgICA8bmFtZT5jYW5jZWw8L25hbWU+CisgICAgICAgIDxzdW1tYXJ5PgorICAgICAgICAgICAgUmVuZGVyIGEgQ2FuY2VsIEJ1dHRvbgorICAgICAgICA8L3N1bW1hcnk+CisgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DYW5jZWxUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZSBzdWJtaXQuIFRoaXMgdGFnIGlzIG9ubHkKKyAgICAgICAgICAgICAgICB2YWxpZCB3aGVuIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LiBQcmVzc2luZyBvZiB0aGlzIHN1Ym1pdAorICAgICAgICAgICAgICAgIGJ1dHRvbiBjYXVzZXMgdGhlIGFjdGlvbiBzZXJ2bGV0IHRvIGJ5cGFzcyBjYWxsaW5nIHRoZSBhc3NvY2lhdGVkCisgICAgICAgICAgICAgICAgZm9ybSBiZWFuIHZhbGlkYXRlKCkgbWV0aG9kLiBUaGUgYWN0aW9uIGlzIGNhbGxlZCBub3JtYWxseS4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgPC9pbmZvPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgIDxpbmZvPgorICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgICAgIDxzdHJvbmc+V0FSTklORzwvc3Ryb25nPiAtIElmIHlvdSBzZXQgdGhpcyBhdHRyaWJ1dGUgdG8gYQorICAgICAgICAgICAgICAgIHZhbHVlIG90aGVyIHRoYW4gdGhlIGRlZmF1bHQsIHRoaXMgd2lsbCA8ZW0+Tk9UPC9lbT4gYmUKKyAgICAgICAgICAgICAgICByZWNvZ25pemVkIGFzIHRoZSBjYW5jZWwga2V5IGJ5IHRoZSBTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0CisgICAgICAgICAgICAgICAgb3IgdGhlIDxjb2RlPkFjdGlvbi5pc0NhbmNlbGxlZCgpPC9jb2RlPiBtZXRob2QuICBZb3Ugd2lsbAorICAgICAgICAgICAgICAgIG5lZWQgdG8gZG8geW91ciBvd24gY2FuY2VsIGRldGVjdGlvbi4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFZhbHVlIG9mIHRoZSBsYWJlbCB0byBiZSBwbGFjZWQgb24gdGhpcyBidXR0b24uIFRoaXMgdmFsdWUgd2lsbAorICAgICAgICAgICAgICAgIGFsc28gYmUgc3VibWl0dGVkIGFzIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHJlcXVlc3QgcGFyYW1ldGVyLgorICAgICAgICAgICAgICAgIFtCb2R5IG9mIHRoaXMgdGFnIChpZiBhbnkpLCBvciAiQ2FuY2VsIl0KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisKKworICAgIDx0YWc+CisKKyAgICAgICAgPG5hbWU+Y2hlY2tib3g8L25hbWU+CisgICAgICAgIDxzdW1tYXJ5PgorICAgICAgICAgICAgUmVuZGVyIEEgQ2hlY2tib3ggSW5wdXQgRmllbGQKKyAgICAgICAgPC9zdW1tYXJ5PgorICAgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2hlY2tib3hUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgIDxwPlJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+Y2hlY2tib3g8L2NvZGU+LCBwb3B1bGF0ZWQgZnJvbSB0aGUgc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBiZWFuIGFzc29jaWF0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggb3VyIGN1cnJlbnQgZm9ybS4gVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuCisgICAgICAgICAgICAgICAgICAgICAgICBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS48L3A+CisKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+Tk9URTwvc3Ryb25nPjogIFRoZSB1bmRlcmx5aW5nIHByb3BlcnR5IHZhbHVlCisgICAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhpcyBmaWVsZCBzaG91bGQgYmUgb2YgdHlwZSA8Y29kZT5ib29sZWFuPC9jb2RlPiwKKyAgICAgICAgICAgIGFuZCBhbnkgPGNvZGU+dmFsdWU8L2NvZGU+IHlvdSBzcGVjaWZ5IHNob3VsZCBjb3JyZXNwb25kIHRvIG9uZQorICAgICAgICAgICAgb2YgdGhlIFN0cmluZ3MgdGhhdCBpbmRpY2F0ZSBhIHRydWUgdmFsdWUgKCJ0cnVlIiwgInllcyIsIG9yCisgICAgICAgICAgICAib24iKS4gIElmIHlvdSB3aXNoIHRvIHV0aWxpemUgYSBzZXQgb2YgcmVsYXRlZCBTdHJpbmcgdmFsdWVzLAorICAgICAgICAgICAgY29uc2lkZXIgdXNpbmcgdGhlIDxjb2RlPm11bHRpYm94PC9jb2RlPiB0YWcuPC9wPgorCisgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldBUk5JTkc8L3N0cm9uZz46ICBJbiBvcmRlciB0byBjb3JyZWN0bHkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY29nbml6ZSB1bmNoZWNrZWQgY2hlY2tib3hlcywgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZvcm0KKyAgICAgICAgICAgICAgICAgICAgICAgIG11c3QgaW5jbHVkZSBhIHN0YXRlbWVudCBzZXR0aW5nIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHByb3BlcnR5IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPnJlc2V0KCk8L2NvZGU+IG1ldGhvZC48L3A+CisgICAgICAgIDwvaW5mbz4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJpZFszNF0ucHJvcGVydHlOYW1lIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgZm9yIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZCB3aGVuCisgICAgICAgICAgICAgICAgcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSB0byBiZSB0cmFuc21pdHRlZCBpZiB0aGlzIGNoZWNrYm94IGlzCisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkIHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB2YWx1ZSAib24iIHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorCisgICAgICAgIDx0YWc+CisgICAgICAgICAgICAgICAgPG5hbWU+ZXJyb3JzPC9uYW1lPgorICAgICAgICAgICAgICAgIDxzdW1tYXJ5PgorICAgICAgICAgICAgICAgIENvbmRpdGlvbmFsbHkgZGlzcGxheSBhIHNldCBvZiBhY2N1bXVsYXRlZCBlcnJvciBtZXNzYWdlcy4KKyAgICAgICAgICAgICAgICA8L3N1bW1hcnk+CisgICAgICAgICAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkVycm9yc1RhZzwvdGFnY2xhc3M+CisgICAgICAgICAgICAgICAgPGJvZHljb250ZW50PmVtcHR5PC9ib2R5Y29udGVudD4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5EaXNwbGF5cyBhIHNldCBvZiBlcnJvciBtZXNzYWdlcyBwcmVwYXJlZCBieSBhIGJ1c2luZXNzCisgICAgICAgICAgICAgICAgbG9naWMgY29tcG9uZW50IGFuZCBzdG9yZWQgYXMgYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPgorICAgICAgICAgICAgICAgIG9iamVjdCwgYSBTdHJpbmcsIG9yIGEgU3RyaW5nIGFycmF5IGluIHJlcXVlc3Qgc2NvcGUuICBJZgorICAgICAgICAgICAgICAgIHN1Y2ggYSBiZWFuIGlzIG5vdCBmb3VuZCwgbm90aGluZyB3aWxsIGJlIHJlbmRlcmVkLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPkluIG9yZGVyIHRvIHVzZSB0aGlzIHRhZyBzdWNjZXNzZnVsbHksIHlvdSBtdXN0IGhhdmUKKyAgICAgICAgICAgICAgICBkZWZpbmVkIGFuIGFwcGxpY2F0aW9uIHNjb3BlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+CisgICAgICAgICAgICAgICAgYmVhbiB1bmRlciB0aGUgZGVmYXVsdCBhdHRyaWJ1dGUgbmFtZSwgd2l0aCBvcHRpb25hbAorICAgICAgICAgICAgICAgIGRlZmluaXRpb25zIG9mIHRoZSBmb2xsb3dpbmcgbWVzc2FnZSBrZXlzOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZXJyb3JzLmhlYWRlcjwvc3Ryb25nPiAtIFRleHQgdGhhdCB3aWxsIGJlIHJlbmRlcmVkCisgICAgICAgICAgICAgICAgYmVmb3JlIHRoZSBlcnJvciBtZXNzYWdlcyBsaXN0LiAgVHlwaWNhbGx5LCB0aGlzIG1lc3NhZ2UgdGV4dAorICAgICAgICAgICAgICAgIHdpbGwgZW5kIHdpdGggPGNvZGU+Jmx0O3VsJmd0OzwvY29kZT4gdG8gc3RhcnQgdGhlCisgICAgICAgICAgICAgICAgZXJyb3IgbWVzc2FnZXMgbGlzdC48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmVycm9ycy5mb290ZXI8L3N0cm9uZz4gLSBUZXh0IHRoYXQgd2lsbCBiZSByZW5kZXJlZAorICAgICAgICAgICAgICAgIGFmdGVyIHRoZSBlcnJvciBtZXNzYWdlcyBsaXN0LiAgVHlwaWNhbGx5LCB0aGlzIG1lc3NhZ2UgdGV4dAorICAgICAgICAgICAgICAgIHdpbGwgYmVnaW4gd2l0aCA8Y29kZT4mbHQ7L3VsJmd0OzwvY29kZT4gdG8gZW5kIHRoZSBlcnJvcgorICAgICAgICAgICAgICAgIG1lc3NhZ2VzIGxpc3QuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5lcnJvcnMucHJlZml4PC9zdHJvbmc+IC0gVGV4dCB0aGF0IHdpbGwgYmUgcmVuZGVyZWQKKyAgICAgICAgICAgICAgICBiZWZvcmUgZWFjaCBpbmRpdmlkdWFsIGVycm9yIGluIHRoZSBsaXN0LjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+ZXJyb3JzLnN1ZmZpeDwvc3Ryb25nPiAtIFRleHQgdGhhdCB3aWxsIGJlIHJlbmRlcmVkCisgICAgICAgICAgICAgICAgYWZ0ZXIgZWFjaCBpbmRpdmlkdWFsIGVycm9yIGluIHRoZSBsaXN0LjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICA8L2luZm8+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICAgIDxuYW1lPmxvY2FsZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3IgdGhlIExvY2FsZSB1c2VkIHRvIHNlbGVjdAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcyB0byBiZSBkaXNwbGF5ZWQuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0bworICAgICAgICAgICAgICAgICAgICB0aGUgU3RydXRzIHN0YW5kYXJkIHZhbHVlLgorICAgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuCisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eSBmb3Igd2hpY2ggZXJyb3IgbWVzc2FnZXMgc2hvdWxkIGJlCisgICAgICAgICAgICAgICAgICBkaXNwbGF5ZWQuICBJZiBub3Qgc3BlY2lmaWVkLCBhbGwgZXJyb3IgbWVzc2FnZXMgKHJlZ2FyZGxlc3MKKyAgICAgICAgICAgICAgICAgIG9mIHByb3BlcnR5KSBhcmUgZGlzcGxheWVkLgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDwvdGFnPgorCisgICAgPHRhZz4KKworICAgICAgICA8bmFtZT5maWxlPC9uYW1lPgorICAgICAgICA8c3VtbWFyeT4KKyAgICAgICAgICAgIFJlbmRlciBBIEZpbGUgU2VsZWN0IElucHV0IEZpZWxkCisgICAgICAgIDwvc3VtbWFyeT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZpbGVUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZSBmaWxlLCBkZWZhdWx0aW5nIHRvCisgICAgICAgICAgICAgICAgdGhlIHNwZWNpZmllZCB2YWx1ZSBvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBiZWFuCisgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIG91ciBjdXJyZW50IGZvcm0uIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbgorICAgICAgICAgICAgICAgIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgQXMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCwgdGhlCisgICAgICAgICAgICAgICAgZW5jbG9zaW5nIGZvcm0gZWxlbWVudCBtdXN0IHNwZWNpZnkgIlBPU1QiIGZvciB0aGUgPGNvZGU+bWV0aG9kPC9jb2RlPgorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgYW5kICJtdWx0aXBhcnQvZm9ybS1kYXRhIiBmb3IgdGhlIDxjb2RlPmVuY3R5cGU8L2NvZGU+CisgICAgICAgICAgICAgICAgYXR0cmlidXRlLiBGb3IgZXhhbXBsZToKKyAgICAgICAgICAgIDwvcD4KKyAgICA8cHJlPgorICAgICZsdDtodG1sOmZvcm0gbWV0aG9kPSJQT1NUIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiZndDsKKyAgICAgICAgJmx0O2h0bWw6ZmlsZSBwcm9wZXJ0eT0idGhlRmlsZSIgLyZndDsKKyAgICAmbHQ7L2h0bWw6Zm9ybSZndDs8L3ByZT4KKyAgICAgICAgPC9pbmZvPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2NlcHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgQ29tbWEtZGVsaW1pdGVkIHNldCBvZiBjb250ZW50IHR5cGVzIHRoYXQgdGhlIHNlcnZlciB5b3Ugc3VibWl0IHRvCisgICAgICAgICAgICAgICAga25vd3MgaG93IHRvIHByb2Nlc3MuIFRoaXMgbGlzdCBjYW4gYmUgdXNlZCBieSB0aGUgY2xpZW50IGJyb3dzZXIKKyAgICAgICAgICAgICAgICB0byBsaW1pdCB0aGUgc2V0IG9mIGZpbGUgb3B0aW9ucyB0aGF0IGlzIG1hZGUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24uCisgICAgICAgICAgICAgICAgSWYgbm90IHNwZWNpZmllZCwgbm8gY29udGVudCB0eXBlIGxpc3Qgd2lsbCBiZSBzZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJpZFszNF0ucHJvcGVydHlOYW1lIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgZm9yIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1heGxlbmd0aDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBNYXhpbXVtIG51bWJlciBvZiBpbnB1dCBjaGFyYWN0ZXJzIHRvIGFjY2VwdC4gIFRoaXMgaXMgaWdub3JlZAorICAgICAgICAgICAgICAgIGJ5IG1vc3QgYnJvd3NlcnMuIFtObyBsaW1pdF0KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZCB3aGVuCisgICAgICAgICAgICAgICAgcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zaXplPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFNpemUgb2YgdGhlIGZpbGUgc2VsZWN0aW9uIGJveCB0byBiZSBkaXNwbGF5ZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICA8c3Ryb25nPk5PVEU8L3N0cm9uZz46IFdoZW4gc2V0dGluZyB0aGlzIHRvIHNvbWUgdmFsdWUsIHdoZXRoZXIKKyAgICAgICAgICAgICAgICBpbnRlbnRpb25hbCBvciBhcyB0aGUgcmVzdWx0IChmb3IgZXhhbXBsZSkgb2YgdmFsaWRhdGlvbiBlcnJvcnMgCisgICAgICAgICAgICAgICAgZm9yY2luZyB0aGUgdXNlciBiYWNrIHRvIHRoZSBvcmlnaW5hbCBqc3AsIHRoaXMgdmFsdWUgaXMgaWdub3JlZCAKKyAgICAgICAgICAgICAgICBieSBtb3N0IGJyb3dzZXJzIChmb3Igc2VjdXJpdHkgcmVhc29ucykuCisgICAgICAgICAgICAgICAgVGhpcyBtZWFucyB0aGF0IHlvdXIgdXNlcnMgd2lsbCBoYXZlIHRvIHJlLXNlbGVjdCBhbnkgcHJldmlvdXNseQorICAgICAgICAgICAgICAgIHNlbGVjdGVkIGZpbGVzIHdoZW4gc3VibWl0dGluZyB0aGUgZm9ybS4gIE9wZXJhIHdlYiBicm93c2VyIHdpbGwKKyAgICAgICAgICAgICAgICBwcm9tcHQgdGhlIHVzZXIgc28gdGhleSBoYXZlIGEgY2hhbmNlIHRvIGFib3J0IHRoZSBzdWJtaXQuCisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICAgICAgVmFsdWUgdG8gd2hpY2ggdGhpcyBmaWVsZCBzaG91bGQgYmUgaW5pdGlhbGl6ZWQuIFtVc2UgdGhlCisgICAgICAgICAgICAgICAgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5IHZhbHVlIG9yIGJvZHkgY29udGVudCAoaWYgYW55KSBpZiAKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSBpcyBub3Qgc3BlY2lmaWVkXQorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKworICAgIDx0YWc+CisKKyAgICAgICAgPG5hbWU+Zm9ybTwvbmFtZT4KKyAgICAgICAgPHN1bW1hcnk+CisgICAgICAgICAgICBEZWZpbmUgQW4gSW5wdXQgRm9ybQorICAgICAgICA8L3N1bW1hcnk+CisgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5Gb3JtVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgUmVuZGVycyBhbiBIVE1MICZsdDtmb3JtJmd0OyBlbGVtZW50IHdob3NlIGNvbnRlbnRzIGFyZSBkZXNjcmliZWQKKyAgICAgICAgICAgICAgICBieSB0aGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnLiBUaGUgZm9ybSBpbXBsaWNpdGx5IGludGVyYWN0cworICAgICAgICAgICAgICAgIHdpdGggdGhlIHNwZWNpZmllZCByZXF1ZXN0IHNjb3BlIG9yIHNlc3Npb24gc2NvcGUgYmVhbiB0byBwb3B1bGF0ZQorICAgICAgICAgICAgICAgIHRoZSBpbnB1dCBmaWVsZHMgd2l0aCB0aGUgY3VycmVudCBwcm9wZXJ0eSB2YWx1ZXMgZnJvbSB0aGUgYmVhbi4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIFRoZSBmb3JtIGJlYW4gaXMgbG9jYXRlZCwgYW5kIGNyZWF0ZWQgaWYgbmVjZXNzYXJ5LCBiYXNlZCBvbiB0aGUgCisgICAgICAgICAgICAgICAgZm9ybSBiZWFuIHNwZWNpZmljYXRpb24gZm9yIHRoZSBhc3NvY2lhdGVkIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+LgorICAgICAgICAgICAgPC9wPgorICAgICAgICA8L2luZm8+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhlIFVSTCB0byB3aGljaCB0aGlzIGZvcm0gd2lsbCBiZSBzdWJtaXR0ZWQuICBUaGlzCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBpcyBhbHNvIHVzZWQgdG8gc2VsZWN0IHRoZSBBY3Rpb25NYXBwaW5nIHdlIGFyZQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzdW1lZCB0byBiZSBwcm9jZXNzaW5nLCBmcm9tIHdoaWNoIHdlIGNhbiBpZGVudGlmeQorICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGFwcHJvcHJpYXRlIGZvcm0gYmVhbiBhbmQgc2NvcGUuPC9wPgorCisgICAgICAgICAgICAgICAgICAgICAgICA8cD5JZiB5b3UgYXJlIHVzaW5nIGV4dGVuc2lvbiBtYXBwaW5nIGZvciBzZWxlY3RpbmcgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyIHNlcnZsZXQsIHRoaXMgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+cGF0aDwvY29kZT4gYXR0cmlidXRlIG9mIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT4mbHQ7YWN0aW9uJmd0OzwvY29kZT4gZWxlbWVudCwgb3B0aW9uYWxseQorICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93ZWQgYnkgdGhlIGNvcnJlY3QgZXh0ZW5zaW9uIHN1ZmZpeC48L3A+CisKKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPklmIHlvdSBhcmUgdXNpbmcgcGF0aCBtYXBwaW5nIHRvIHNlbGVjdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIgc2VydmxldCwgdGhpcyB2YWx1ZSBzaG91bGQgYmUgZXhhY3RseSBlcXVhbAorICAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhlIDxjb2RlPnBhdGg8L2NvZGU+IGF0dHJpYnV0ZSBvZiB0aGUgY29ycmVzcG9uZGluZworICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+Jmx0O2FjdGlvbiZndDs8L2NvZGU+IGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZW5jdHlwZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgY29udGVudCBlbmNvZGluZyB0byBiZSB1c2VkIHRvIHN1Ym1pdCB0aGlzIGZvcm0sIGlmIHRoZSBtZXRob2QKKyAgICAgICAgICAgICAgICBpcyBQT1NULiBUaGlzIG11c3QgYmUgc2V0IHRvICJtdWx0aXBhcnQvZm9ybS1kYXRhIiBpZiB5b3UgYXJlIHVzaW5nCisgICAgICAgICAgICAgICAgdGhlIGZpbGUgdGFnIHRvIGVuYWJsZSBmaWxlIHVwbG9hZC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIGJyb3dzZXIKKyAgICAgICAgICAgICAgICBkZWZhdWx0IChub3JtYWxseSAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikgaXMgdXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFRoZSBmaWVsZCBuYW1lIChhbW9uZyB0aGUgZmllbGRzIG9uIHRoaXMgZm9ybSkgdG8gd2hpY2ggaW5pdGlhbAorICAgICAgICAgICAgICAgIGZvY3VzIHdpbGwgYmUgYXNzaWduZWQgd2l0aCBhIEphdmFTY3JpcHQgZnVuY3Rpb24uIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgbm8gc3BlY2lhbCBKYXZhU2NyaXB0IGZvciB0aGlzIHB1cnBvc2Ugd2lsbCBiZSByZW5kZXJlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZvY3VzSW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSWYgdGhlIGZvY3VzIGZpZWxkIGlzIGEgZmllbGQgYXJyYXksIHN1Y2ggYXMgYSByYWRpbyBidXR0b24gZ3JvdXAsIHlvdSBjYW4gCisgICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgaW5kZXggaW4gdGhlIGFycmF5IHRvIHJlY2VpdmUgZm9jdXMuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICA8c2luY2U+U3RydXRzIDEuMTwvc2luY2U+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tZXRob2Q8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIEhUVFAgbWV0aG9kIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHN1Ym1pdCB0aGlzIHJlcXVlc3QKKyAgICAgICAgICAgICAgICAoR0VULCBQT1NUKS4gW1BPU1RdCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbnJlc2V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCBpZiB0aGUgZm9ybSBpcyByZXNldC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uc3VibWl0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCBpZiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisJCTxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zY3JpcHRMYW5ndWFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgZm9ybSdzIGZvY3VzICZsdDtzY3JpcHQmZ3Q7IGVsZW1lbnQgd2lsbCBub3QgY29udGFpbiBhIGxhbmd1YWdlIGF0dHJpYnV0ZQorICAgICAgICAgICAgICAgIHdoZW4gdGhpcyBpcyBzZXQgdG8gZmFsc2UuICBUaGUgZGVmYXVsdCBpcyB0cnVlIGJ1dCB0aGlzIHByb3BlcnR5IGlzIGlnbm9yZWQKKyAgICAgICAgICAgICAgICBpbiBYSE1UTCBtb2RlLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgPHNpbmNlPlN0cnV0cyAxLjI8L3NpbmNlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhcmdldDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBXaW5kb3cgdGFyZ2V0IHRvIHdoaWNoIHRoaXMgZm9ybSBpcyBzdWJtaXR0ZWQsIHN1Y2ggYXMKKyAgICAgICAgICAgICAgICBmb3IgdXNlIGluIGZyYW1lZCBwcmVzZW50YXRpb25zLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgIDwvdGFnPgorCisgICAgPHRhZz4KKworICAgICAgICA8bmFtZT5mcmFtZTwvbmFtZT4KKyAgICAgICAgPHN1bW1hcnk+UmVuZGVyIGFuIEhUTUwgZnJhbWUgZWxlbWVudDwvc3VtbWFyeT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZyYW1lVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGluZm8+CisKKyAgICAgICAgICAgIDxwPlJlbmRlcnMgYW4gSFRNTCA8Y29kZT4mbHQ7ZnJhbWUmZ3Q7PC9jb2RlPiBlbGVtZW50CisgICAgICAgICAgICB3aXRoIHByb2Nlc3NpbmcgZm9yIHRoZSA8Y29kZT5zcmM8L2NvZGU+IGF0dHJpYnV0ZSB0aGF0IGlzCisgICAgICAgICAgICBpZGVudGljYWwgdG8gdGhhdCBwZXJmb3JtZWQgYnkgdGhlIDxjb2RlPiZsdDtodG1sOmxpbmsmZ3Q7PC9jb2RlPgorICAgICAgICAgICAgdGFnIGZvciB0aGUgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLiAgVVJMIHJld3JpdGluZyB3aWxsIGJlCisgICAgICAgICAgICBhcHBsaWVkIGF1dG9tYXRpY2FsbHksIHRvIG1haW50YWluIHNlc3Npb24gc3RhdGUgaW4gdGhlCisgICAgICAgICAgICBhYnNlbmNlIG9mIGNvb2tpZXMuPC9wPgorCisgICAgICAgICAgICA8cD5UaGUgYmFzZSBVUkwgZm9yIHRoaXMgZnJhbWUgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbgorICAgICAgICAgICAgd2hpY2ggb2YgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIHlvdSBzcGVjaWZ5ICh5b3UgbXVzdAorICAgICAgICAgICAgc3BlY2lmeSBleGFjdGx5IG9uZSBvZiB0aGVtKTo8L3A+CisgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICA8bGk+PGVtPmZvcndhcmQ8L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgYXMgdGhlCisgICAgICAgICAgICAgICAgbmFtZSBvZiBhIGdsb2JhbCA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiB0byBiZSBsb29rZWQKKyAgICAgICAgICAgICAgICB1cCwgYW5kIHVzZSB0aGUgYXBwbGljYXRpb24tcmVsYXRpdmUgb3IgY29udGV4dC1yZWxhdGl2ZQorICAgICAgICAgICAgICAgIFVSSSBmb3VuZCB0aGVyZS48L2xpPgorICAgICAgICAgICAgPGxpPjxlbT5ocmVmPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIHVuY2hhbmdlZC4KKyAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgPGxpPjxlbT5wYWdlPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIGEKKyAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbi1yZWxhdGl2ZSBVUkksIGFuZCBnZW5lcmF0ZSBhIHNlcnZlci1yZWxhdGl2ZQorICAgICAgICAgICAgICAgIFVSSSBieSBpbmNsdWRpbmcgdGhlIGNvbnRleHQgcGF0aCBhbmQgYXBwbGljYXRpb24KKyAgICAgICAgICAgICAgICBwcmVmaXguPC9saT4KKyAgICAgICAgICAgIDxsaT48ZW0+YWN0aW9uPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIHRoZQorICAgICAgICAgICAgICAgIGxvZ2ljYWwgbmFtZSBvZiBhIGdsb2JhbCBBY3Rpb24gdGhhdCBjb250YWlucyB0aGUgYWN0dWFsIAorICAgICAgICAgICAgICAgIGNvbnRlbnQtcmVsYXRpdmUgVVJJIG9mIHRoZSBkZXN0aW5hdGlvbiBvZiB0aGlzIHRyYW5zZmVyLjwvbGk+CisgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8cD5Ob3JtYWxseSwgdGhlIGh5cGVybGluayB5b3Ugc3BlY2lmeSB3aXRoIG9uZSBvZiB0aGUKKyAgICAgICAgICAgIGF0dHJpYnV0ZXMgZGVzY3JpYmVkIGluIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGggd2lsbCBiZSBsZWZ0CisgICAgICAgICAgICB1bmNoYW5nZWQgKG90aGVyIHRoYW4gVVJMIHJld3JpdGluZyBpZiBuZWNlc3NhcnkpLiAgSG93ZXZlciwKKyAgICAgICAgICAgIHRoZXJlIGFyZSB0d28gd2F5cyB5b3UgY2FuIGFwcGVuZCBvbmUgb3IgbW9yZSBkeW5hbWljYWxseQorICAgICAgICAgICAgZGVmaW5lZCBxdWVyeSBwYXJhbWV0ZXJzIHRvIHRoZSBoeXBlcmxpbmsgLS0gc3BlY2lmeSBhIHNpbmdsZQorICAgICAgICAgICAgcGFyYW1ldGVyIHdpdGggdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+IGF0dHJpYnV0ZSAoYW5kIGl0cworICAgICAgICAgICAgYXNzb2NpYXRlZCBhdHRyaWJ1dGVzIHRvIHNlbGVjdCB0aGUgdmFsdWUpLCBvciBzcGVjaWZ5IHRoZQorICAgICAgICAgICAgPGNvZGU+bmFtZTwvY29kZT4gKGFuZCBvcHRpb25hbCA8Y29kZT5wcm9wZXJ0eTwvY29kZT4pCisgICAgICAgICAgICBhdHRyaWJ1dGVzIHRvIHNlbGVjdCBhIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGJlYW4gdGhhdAorICAgICAgICAgICAgY29udGFpbnMgb25lIG9yIG1vcmUgcGFyYW1ldGVyIGlkcyBhbmQgY29ycmVzcG9uZGluZyB2YWx1ZXMuCisgICAgICAgICAgICA8L3A+CisKKyAgICAgICAgICAgIDxwPlRvIHNwZWNpZnkgYSBzaW5nbGUgcGFyYW1ldGVyLCB1c2UgdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICBhdHRyaWJ1dGUgdG8gZGVmaW5lIHRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0byBiZQorICAgICAgICAgICAgc3VibWl0dGVkLiAgVG8gc3BlY2lmeSB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSwgdXNlIG9uZSBvZiB0aGUKKyAgICAgICAgICAgIGZvbGxvd2luZyBhcHByb2FjaGVzOjwvcD4KKyAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBvbmx5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZTwvZW0+CisgICAgICAgICAgICAgICAgLSBUaGUgbmFtZWQgSlNQIGJlYW4gKG9wdGlvbmFsbHkgc2NvcGVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBhdHRyaWJ1dGUpIG11c3QgaWRlbnRpZnkgYSB2YWx1ZQorICAgICAgICAgICAgICAgIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIFN0cmluZy48L2xpPgorICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IGJvdGggdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYW5kCisgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlczwvZW0+IC0gVGhlIHNwZWNpZmllZAorICAgICAgICAgICAgICAgIHByb3BlcnR5IGdldHRlciBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgb24gdGhlIEpTUCBiZWFuCisgICAgICAgICAgICAgICAgaWRlbnRpZmllZCBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4pIGF0dHJpYnV0ZXMsIGluIG9yZGVyIHRvIHNlbGVjdAorICAgICAgICAgICAgICAgIGEgdmFsdWUgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgU3RyaW5nLjwvbGk+CisgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8cD5JZiB5b3UgcHJlZmVyIHRvIHNwZWNpZnkgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiB0aGF0CisgICAgICAgICAgICBjb250YWlucyBhbGwgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyB0byBiZSBhZGRlZCB0byB0aGUKKyAgICAgICAgICAgIGh5cGVybGluaywgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHRlY2huaXF1ZXM6PC9wPgorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IG9ubHkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZTwvZW0+IC0KKyAgICAgICAgICAgICAgICBUaGUgbmFtZWQgSlNQIGJlYW4gKG9wdGlvbmFsbHkgc2NvcGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5zY29wZTwvY29kZT4gYXR0cmlidXRlKSBtdXN0IGlkZW50aWZ5IGEKKyAgICAgICAgICAgICAgICA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzLjwvbGk+CisgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgYm90aCA8Y29kZT5uYW1lPC9jb2RlPiBhbmQKKyAgICAgICAgICAgICAgICA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlczwvZW0+IC0gVGhlIHNwZWNpZmllZAorICAgICAgICAgICAgICAgIHByb3BlcnR5IGdldHRlciBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgb24gdGhlIGJlYW4KKyAgICAgICAgICAgICAgICBpZGVudGlmaWVkIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgPGNvZGU+c2NvcGU8L2NvZGU+KSBhdHRyaWJ1dGVzLCBpbiBvcmRlciB0byByZXR1cm4gdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcGFyYW1ldGVycy48L2xpPgorICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPHA+QXMgdGhlIDxjb2RlPk1hcDwvY29kZT4gaXMgcHJvY2Vzc2VkLCB0aGUga2V5cyBhcmUgYXNzdW1lZAorICAgICAgICAgICAgdG8gYmUgdGhlIG5hbWVzIG9mIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gYmUgYXBwZW5kZWQgdG8gdGhlCisgICAgICAgICAgICBoeXBlcmxpbmsuICBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGVhY2gga2V5IG11c3QgYmUgZWl0aGVyCisgICAgICAgICAgICBhIFN0cmluZyBvciBhIFN0cmluZyBhcnJheSByZXByZXNlbnRpbmcgdGhlIHBhcmFtZXRlciB2YWx1ZShzKSwKKyAgICAgICAgICAgIG9yIGFuIG9iamVjdCB3aG9zZSB0b1N0cmluZygpIG1ldGhvZCB3aWxsIGJlIGNhbGxlZC4KKyAgICAgICAgICAgIElmIGEgU3RyaW5nIGFycmF5IGlzIHNwZWNpZmllZCwgbW9yZSB0aGFuIG9uZSB2YWx1ZSBmb3IgdGhlCisgICAgICAgICAgICBzYW1lIHF1ZXJ5IHBhcmFtZXRlciBuYW1lIHdpbGwgYmUgY3JlYXRlZC48L3A+CisKKyAgICAgICAgICAgIDxwPkFkZGl0aW9uYWxseSwgeW91IGNhbiByZXF1ZXN0IHRoYXQgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24KKyAgICAgICAgICAgIGNvbnRyb2wgdG9rZW4sIGlmIGFueSwgYmUgaW5jbHVkZWQgaW4gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsKKyAgICAgICAgICAgIGJ5IHNldHRpbmcgdGhlIDxjb2RlPnRyYW5zYWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUgdG8KKyAgICAgICAgICAgIDxjb2RlPnRydWU8L2NvZGU+LgorICAgICAgICAgICAgWW91IGNhbiBhbHNvIHJlcXVlc3QgdGhhdCBhbiBhbmNob3IgKCIjeHh4IikgYmUgYWRkZWQgdG8gdGhlCisgICAgICAgICAgICBlbmQgb2YgdGhlIFVSTCB0aGF0IGlzIGNyZWF0ZWQgYnkgYW55IG9mIHRoZSBhYm92ZSBtZWNoYW5pc21zLAorICAgICAgICAgICAgYnkgdXNpbmcgdGhlIDxjb2RlPmFuY2hvcjwvY29kZT4gYXR0cmlidXRlLjwvcD4KKworICAgICAgICAgPC9pbmZvPgorIAorICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgPG5hbWU+YWN0aW9uPC9uYW1lPgorICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgPHA+TG9naWNhbCBuYW1lIG9mIGEgZ2xvYmFsIDxjb2RlPkFjdGlvbjwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgY29udGFpbnMgdGhlIGFjdHVhbCBjb250ZW50LXJlbGF0aXZlIFVSSSBvZiB0aGUgZGVzdGluYXRpb24KKyAgICAgICAgICAgICAgIG9mIHRoaXMgdHJhbnNmZXIuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgIG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkCisgICAgICAgICAgICAgICBpbiB0aGUgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICA8L2luZm8+CisgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YW5jaG9yPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPk9wdGlvbmFsIGFuY2hvciB0YWcgKCIjeHh4IikgdG8gYmUgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGh5cGVybGluay4gIFNwZWNpZnkgdGhpcyB2YWx1ZSA8c3Ryb25nPndpdGhvdXQ8L3N0cm9uZz4gYW55CisgICAgICAgICAgICAgICAgIiMiIGNoYXJhY3Rlci48L3A+CisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mb3J3YXJkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPkxvZ2ljYWwgbmFtZSBvZiBhIGdsb2JhbCA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICAgY29udGFpbnMgdGhlIGFjdHVhbCBjb250ZW50LXJlbGF0aXZlIFVSSSBvZiB0aGUgZGVzdGluYXRpb24KKyAgICAgICAgICAgICAgICBvZiB0aGlzIHRyYW5zZmVyLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgbW9kaWZpZWQgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQKKyAgICAgICAgICAgICAgICBpbiB0aGUgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgICBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mcmFtZWJvcmRlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5TaG91bGQgYSBmcmFtZSBib3JkZXIgYmUgZ2VuZXJhdGVkIGFyb3VuZCB0aGlzIGZyYW1lICgxKQorICAgICAgICAgICAgICAgIG9yIG5vdCAoMCk/PC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZnJhbWVOYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlZhbHVlIGZvciB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9mIHRoZSByZW5kZXJlZAorICAgICAgICAgICAgICAgIDxjb2RlPiZsdDtmcmFtZSZndDs8L2NvZGU+IGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aHJlZjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgVVJMIHRvIHdoaWNoIHRoaXMgaHlwZXJsaW5rIHdpbGwgdHJhbnNmZXIgY29udHJvbAorICAgICAgICAgICAgICAgICBpZiBhY3RpdmF0ZWQuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQgaW4gdGhlCisgICAgICAgICAgICAgICAgIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsCisgICAgICAgICAgICAgICAgIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxvbmdkZXNjPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlVSSSBvZiBhIGxvbmcgZGVzY3JpcHRpb24gb2YgdGhlIGZyYW1lLiAgVGhpcyBkZXNjcmlwdGlvbgorICAgICAgICAgICAgICAgIHNob3VsZCBzdXBwbGVtZW50IHRoZSBzaG9ydCBkZXNjcmlwdGlvbiBwcm92aWRlZCBieSB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT50aXRsZTwvY29kZT4gYXR0cmlidXRlLCBhbmQgbWF5IGJlIHBhcnRpY3VsYXJseSB1c2VmdWwKKyAgICAgICAgICAgICAgICBmb3Igbm9uLXZpc3VhbCB1c2VyIGFnZW50cy48L3A+CisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tYXJnaW5oZWlnaHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIGFtb3VudCBvZiBzcGFjZSAoaW4gcGl4ZWxzKSB0byBiZSBsZWZ0IGJldHdlZW4gdGhlCisgICAgICAgICAgICAgICAgZnJhbWUncyBjb250ZW50cyBhbmQgaXRzIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMuPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bWFyZ2lud2lkdGg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIGFtb3VudCBvZiBzcGFjZSAoaW4gcGl4ZWxzKSB0byBiZSBsZWZ0IGJldHdlZW4gdGhlCisgICAgICAgICAgICAgICAgZnJhbWUncyBjb250ZW50cyBhbmQgaXRzIGxlZnQgYW5kIHJpZ2h0IG1hcmdpbnMuPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgY29udGFpbnMgYSA8Y29kZT5NYXA8L2NvZGU+CisgICAgICAgICAgICAgICAgcmVwcmVzZW50aW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgICAgICAgICBpcyBub3Qgc3BlY2lmaWVkKSwgb3IgYSBKU1AgYmVhbiB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMKKyAgICAgICAgICAgICAgICBjYWxsZWQgdG8gcmV0dXJuIGEgPGNvZGU+TWFwPC9jb2RlPiAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgaXMgc3BlY2lmaWVkKS48L3A+CisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5ub3Jlc2l6ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5TaG91bGQgdXNlcnMgYmUgZGlzYWxsb3dlZCBmcm9tIHJlc2l6aW5nIHRoZSBmcmFtZT8KKyAgICAgICAgICAgICAgICAodHJ1ZSwgZmFsc2UpLjwvcD4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIChiZWdpbm5pbmcgd2l0aCBhICIvIgorICAgICAgICAgICAgICAgIGNoYXJhY3RlcikgdG8gd2hpY2ggdGhpcyBoeXBlcmxpbmsgd2lsbCB0cmFuc2ZlciBjb250cm9sCisgICAgICAgICAgICAgICAgIGlmIGFjdGl2YXRlZC4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZAorICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGV4YWN0bHkKKyAgICAgICAgICAgICAgICAgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgICAgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkIGh5cGVybGluay4gIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGlzCisgICAgICAgICAgICAgICAgZGVmaW5lZCBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhbmQgKG9wdGlvbmFsKQorICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMsIG9wdGlvbmFsbHkgc2NvcGVkIGJ5CisgICAgICAgICAgICAgICAgdGhlIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IGF0dHJpYnV0ZTwvcD4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgaXMgYSBTdHJpbmcgY29udGFpbmluZyB0aGUKKyAgICAgICAgICAgICAgICB2YWx1ZSBmb3IgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVkIGJ5IDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgKGlmIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQpLCBvciBhIEpTUAorICAgICAgICAgICAgICAgIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzIGNhbGxlZCB0byByZXR1cm4gYSBTdHJpbmcKKyAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkKS4gIFRoZSBKU1AgYmVhbgorICAgICAgICAgICAgICAgIGlzIGNvbnN0cmFpbmVkIHRvIHRoZSBiZWFuIHNjb3BlIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBwcm9wZXJ0eSwgaWYgaXQgaXMgc3BlY2lmaWVkLjwvcD4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtUHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0CisgICAgICAgICAgICAgICAgYmUgYSBTdHJpbmcgY29udGFpbmluZyB0aGUgdmFsdWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyCisgICAgICAgICAgICAgICAgKG5hbWVkIGJ5IHRoZSA8Y29kZT5wYXJhbUlkPC9jb2RlPiBhdHRyaWJ1dGUpIHRoYXQgd2lsbCBiZQorICAgICAgICAgICAgICAgIGR5bmFtaWNhbGx5IGFkZGVkIHRvIHRoaXMgaHlwZXJsaW5rLjwvcD4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtU2NvcGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZS4gIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgYWxsIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdCBiZQorICAgICAgICAgICAgICAgIGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcXVlcnkgcGFyYW1ldGVycworICAgICAgICAgICAgICAgIHRvIGJlIGFkZGVkIHRvIHRoZSBoeXBlcmxpbmsuICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+CisgICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIGlmIHlvdSBzcGVjaWZ5CisgICAgICAgICAgICAgICAgdGhpcyBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLCBhbGwKKyAgICAgICAgICAgICAgICBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjcm9sbGluZzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5TaG91bGQgc2Nyb2xsIGJhcnMgYmUgY3JlYXRlZCB1bmNvbmRpdGlvbmFsbHkgKHllcyksCisgICAgICAgICAgICAgICAgbmV2ZXIgKG5vKSwgb3Igb25seSB3aGVuIG5lZWRlZCAoYXV0byk/PC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dHJhbnNhY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBhbnkgY3VycmVudCB0cmFuc2FjdGlvbgorICAgICAgICAgICAgICAgIGNvbnRyb2wgdG9rZW4gd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluaywKKyAgICAgICAgICAgICAgICBzbyB0aGF0IGl0IHdpbGwgcGFzcyBhbiA8Y29kZT5pc1Rva2VuVmFsaWQoKTwvY29kZT4gdGVzdAorICAgICAgICAgICAgICAgIGluIHRoZSByZWNlaXZpbmcgQWN0aW9uLjwvcD4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8L3RhZz4KKworCisgICAgPHRhZz4KKworICAgICAgICA8bmFtZT5oaWRkZW48L25hbWU+CisgICAgICAgIDxzdW1tYXJ5PgorICAgICAgICAgICAgUmVuZGVyIEEgSGlkZGVuIEZpZWxkCisgICAgICAgIDwvc3VtbWFyeT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkhpZGRlblRhZzwvdGFnY2xhc3M+CisgICAgICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgUmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlIGhpZGRlbiwgcG9wdWxhdGVkCisgICAgICAgICAgICAgICAgZnJvbSB0aGUgc3BlY2lmaWVkIHZhbHVlIG9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlIGJlYW4KKyAgICAgICAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggb3VyIGN1cnJlbnQgZm9ybS4gVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuCisgICAgICAgICAgICAgICAgbmVzdGVkIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuCisgICAgICAgICAgICA8L3A+CisgICAgICAgIDwvaW5mbz4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgImlkWzM0XS5wcm9wZXJ0eU5hbWUiLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkCisgICAgICAgICAgICAgICAgd2hlbiByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBpbnB1dCBmaWVsZC4gSWYgbm90CisgICAgICAgICAgICAgICAgc3BlY2lmaWVkLCB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFnIHdlIGFyZSBuZXN0ZWQKKyAgICAgICAgICAgICAgICB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoaXMgaW5wdXQgZmllbGQsIGFuZCB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBiZWFuCisgICAgICAgICAgICAgICAgcHJvcGVydHkgaWYgdmFsdWUgaXMgbm90IHNwZWNpZmllZC4gVGhlIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eQorICAgICAgICAgICAgICAgIChpZiBhbnkpIG11c3QgYmUgb2YgdHlwZSBTdHJpbmcuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVmFsdWUgdG8gd2hpY2ggdGhpcyBmaWVsZCBzaG91bGQgYmUgaW5pdGlhbGl6ZWQuIFtVc2UgdGhlCisgICAgICAgICAgICAgICAgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5IHZhbHVlXQorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+d3JpdGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgU2hvdWxkIHRoZSB2YWx1ZSBvZiB0aGlzIGZpZWxkIGFsc28gYmUgcmVuZGVyZWQgdG8gdGhlCisgICAgICAgICAgICAgICAgcmVzcG9uc2UgcGFnZSB0byBtYWtlIGl0IHZpc2libGUsIGluIGFkZGl0aW9uIHRvIGNyZWF0aW5nCisgICAgICAgICAgICAgICAgYW4gSFRNTCB0eXBlPSJoaWRkZW4iIGVsZW1lbnQ/ICBCeSBkZWZhdWx0LCBvbmx5IHRoZQorICAgICAgICAgICAgICAgIGhpZGRlbiBlbGVtZW50IGlzIGNyZWF0ZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgPC90YWc+CisKKworICAgICAgICA8dGFnPgorCisgICAgICAgICAgPG5hbWU+aHRtbDwvbmFtZT4KKyAgICAgICAgICA8c3VtbWFyeT5SZW5kZXIgYW4gSFRNTCAmbHQ7aHRtbCZndDsgRWxlbWVudDwvc3VtbWFyeT4KKyAgICAgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSHRtbFRhZzwvdGFnY2xhc3M+CisgICAgICAgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgICAgICAgPGluZm8+CisgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MIDxjb2RlPiZsdDtodG1sJmd0OzwvY29kZT4gZWxlbWVudCB3aXRoCisgICAgICAgICAgbGFuZ3VhZ2UgYXR0cmlidXRlcyBleHRyYWN0ZWQgZnJvbSB0aGUgdXNlcidzIGN1cnJlbnQgTG9jYWxlCisgICAgICAgICAgb2JqZWN0LCBpZiB0aGVyZSBpcyBvbmUuPC9wPgorICAgICAgICAgIDwvaW5mbz4KKworCSAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxhbmc8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgIFJlbmRlcnMgYSBsYW5nIGF0dHJpYnV0ZSB3aXRoIHRoZSBsb2NhbGUgc3RvcmVkIGluIHRoZSB1c2VyJ3Mgc2Vzc2lvbi4gIElmIG5vdCAKKyAgICAgICAgICAgICAgICAgZm91bmQgaW4gdGhlIHNlc3Npb24sIHRoZSBsYW5ndWFnZSBmcm9tIHRoZSA8Y29kZT5BY2NlcHQtTGFuZ3VhZ2U8L2NvZGU+CisgICAgICAgICAgICAgICAgIEhUVFAgaGVhZGVyIGlzIHVzZWQuICBJZiBzdGlsbCBub3QgZm91bmQsIHRoZSBkZWZhdWx0IGxhbmd1YWdlIGZvciB0aGUgc2VydmVyIAorICAgICAgICAgICAgICAgICBpcyB1c2VkLgorICAgICAgICAgICAgPC9pbmZvPgorCQkJPHNpbmNlPlN0cnV0cyAxLjI8L3NpbmNlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sb2NhbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgIDxwPlNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpbiBvcmRlciB0byBzdG9yZSBhIExvY2FsZSBpbiB0aGUgc2Vzc2lvbiBiYXNlZCBvbgorICAgICAgICAgICAgICB0aGUgY3VycmVudCByZXF1ZXN0J3MgPGNvZGU+QWNjZXB0LUxhbmd1YWdlPC9jb2RlPiBoZWFkZXIgKGlmCisgICAgICAgICAgICAgIGFueSkgaWYgbm9uZSBoYXMgY3VycmVudGx5IGJlZW4gc2V0LiAgVGhpcyBhdHRyaWJ1dGUgd2lsbCBjcmVhdGUgYSBzZXNzaW9uCisgICAgICAgICAgICAgIGlmIG9uZSBkb2VzIG5vdCBhbHJlYWR5IGV4aXN0LiAgVGhlIGxhbmcgYXR0cmlidXRlIGlzIHJlbmRlcmVkIHdpdGggdGhlCisgICAgICAgICAgICAgIGFwcHJvcHJpYXRlIGxhbmd1YWdlIGNvZGUuPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgPGRlcHJlY2F0ZWQ+CisgICAgICAgICAgICAgICAgQ3JlYXRpbmcgYSBzZXNzaW9uIGlzIHVuZGVzaXJhYmxlIGZvciBhcHBzIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGVtLiAgVXNlIHRoZSBsYW5nCisgICAgICAgICAgICAgICAgYXR0cmlidXRlIHRvIGFjaGlldmUgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eSB3aXRob3V0IGNyZWF0aW5nIGEgc2Vzc2lvbi4KKyAgICAgICAgICAgIDwvZGVwcmVjYXRlZD4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT54aHRtbDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgPHA+U2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGluIG9yZGVyIHRvIHJlbmRlciAKKyAgICAgICAgICAgICAgPGNvZGU+eG1sOmxhbmc8L2NvZGU+IGFuZCA8Y29kZT54bWxuczwvY29kZT4gYXR0cmlidXRlcyAKKyAgICAgICAgICAgICAgb24gdGhlIGdlbmVyYXRlZCA8Y29kZT5odG1sPC9jb2RlPiBlbGVtZW50LiAgVGhpcyBhbHNvIAorICAgICAgICAgICAgICBjYXVzZXMgYWxsIG90aGVyIGh0bWwgdGFncyB0byByZW5kZXIgYXMgWEhUTUwgKHRoZSAKKyAgICAgICAgICAgICAgJmx0O2h0bWw6eGh0bWwvJmd0OyB0YWcgaGFzIGEgc2ltaWxhciBwdXJwb3NlKS4KKyAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgPHNpbmNlPlN0cnV0cyAxLjE8L3NpbmNlPgorICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDwvdGFnPgorCisgICAgICAgIDx0YWc+CisgICAgICAgICAgICAgICAgPG5hbWU+aW1hZ2U8L25hbWU+CisgICAgICAgICAgICAgICAgPHN1bW1hcnk+CisgICAgICAgICAgICAgICAgUmVuZGVyIGFuIGlucHV0IHRhZyBvZiB0eXBlICJpbWFnZSIKKyAgICAgICAgICAgICAgICA8L3N1bW1hcnk+CisgICAgICAgICAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltYWdlVGFnPC90YWdjbGFzcz4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKworICAgICAgICAgICAgICAgIDxwPlJlbmRlcnMgYW4gSFRNTCA8Y29kZT4mbHQ7aW5wdXQmZ3Q7PC9jb2RlPiB0YWcgb2YgdHlwZQorICAgICAgICAgICAgICAgICJpbWFnZSIuICBUaGUgYmFzZSBVUkwgZm9yIHRoaXMgaW1hZ2UgaXMgY2FsY3VsYXRlZCBkaXJlY3RseQorICAgICAgICAgICAgICAgIGJhc2VkIG9uIHRoZSB2YWx1ZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnNyYzwvY29kZT4gb3IKKyAgICAgICAgICAgICAgICA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGVzLCBvciBpbmRpcmVjdGx5IGJ5IGxvb2tpbmcgdXAgYQorICAgICAgICAgICAgICAgIG1lc3NhZ2UgcmVzb3VyY2Ugc3RyaW5nIGJhc2VkIG9uIHRoZSA8Y29kZT5zcmNLZXk8L2NvZGU+IG9yCisgICAgICAgICAgICAgICAgPGNvZGU+cGFnZUtleTwvY29kZT4gYXR0cmlidXRlcy4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4KKyAgICAgICAgICAgICAgICBzcGVjaWZ5IGV4YWN0bHkgb25lIG9mIHRoZXNlIGF0dHJpYnV0ZXMuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+SWYgeW91IHdvdWxkIGxpa2UgdG8gb2J0YWluIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBjbGljayB0aGF0IHN1Ym1pdHRlZCB0aGlzIHJlcXVlc3QsIHNlZSB0aGUgaW5mb3JtYXRpb24gYmVsb3cKKyAgICAgICAgICAgICAgICBvbiB0aGUgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgPHA+VGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LjwvcD4KKworICAgICAgICAgICAgICAgIDwvaW5mbz4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseQorICAgICAgICAgICAgICAgIHRvIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPmFsaWduPC9uYW1lPgorICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlRoZSBhbGlnbm1lbnQgb3B0aW9uIGZvciB0aGlzIGltYWdlLjwvcD4KKyAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPGRlcHJlY2F0ZWQ+CisgICAgICAgICAgICAgICAgICAgIFRoZSBhbGlnbiBhdHRyaWJ1dGUgaXMgZGVwcmVjYXRlZCBpbiBIVE1MIDQueC4gVGhlIHN1Z2dlc3RlZCBhbHRlcm5hdGl2ZSBpcyB0byB1c2UgQ1NTLgorICAgICAgICAgICAgICAgICAgICBQbGVhc2Ugc2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvc3RydWN0L29iamVjdHMuaHRtbCNoLTEzLjcuNCBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAgICAgICAgICAgIDwvZGVwcmVjYXRlZD4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGltYWdlLjwvcD4KKyAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5ib3JkZXI8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIHdpZHRoIChpbiBwaXhlbHMpIG9mIHRoZSBib3JkZXIgYXJvdW5kIHRoaXMgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLiAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4KKyAgICAgICAgICAgICAgICB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAicHJvcGVydHlOYW1lWzM0XSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZCBmb3IKKyAgICAgICAgICAgICAgICBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgPG5hbWU+bG9jYWxlPC9uYW1lPgorICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlRoZSBzZXNzaW9uIGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBMb2NhbGUgdXNlZCB0byBzZWxlY3QKKyAgICAgICAgICAgICAgICBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcy4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgIFN0cnV0cyBzdGFuZGFyZCB2YWx1ZS48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzCisgICAgICAgICAgICAgICAgYW5kIGEga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMKKyAgICAgICAgICAgICAgICBhbmQgYSBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMKKyAgICAgICAgICAgICAgICBhbmQgYSBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZQorICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QKKyAgICAgICAgICAgICAgICB1bmRlciB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZQorICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIG9mIHRoZSBpbWFnZSBmb3IgdGhpcworICAgICAgICAgICAgICAgIGlucHV0IHRhZy48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPnBhZ2VLZXk8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIGtleSBvZiB0aGUgbWVzc2FnZSByZXNvdXJjZXMgc3RyaW5nIHNwZWNpZnlpbmcgdGhlCisgICAgICAgICAgICAgICAgbW9kdWxlLXJlbGF0aXZlIHBhdGggb2YgdGhlIGltYWdlIGZvciB0aGlzIGlucHV0IHRhZy48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlRoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoaXMgaW1hZ2UgdGFnLiAgVGhlIHBhcmFtZXRlciBuYW1lcworICAgICAgICAgICAgICAgIGZvciB0aGUgcmVxdWVzdCB3aWxsIGFwcGVhciBhcyAicHJvcGVydHkueCIgYW5kICJwcm9wZXJ0eS55IiwKKyAgICAgICAgICAgICAgICB0aGUgeCBhbmQgeSByZXByZXNlbnRpbmcgdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBtb3VzZSBjbGljaworICAgICAgICAgICAgICAgIGZvciB0aGUgaW1hZ2UuICBBIHdheSBvZiByZXRyaWV2aW5nIHRoZXNlIHZhbHVlcyB0aHJvdWdoIGEKKyAgICAgICAgICAgICAgICBmb3JtIGJlYW4gaXMgdG8gZGVmaW5lIGdldFgoKSwgZ2V0WSgpLCBzZXRYKCksIGFuZCBzZXRZKCkKKyAgICAgICAgICAgICAgICBtZXRob2RzLCBhbmQgc3BlY2lmeSB5b3VyIHByb3BlcnR5IGFzIGEgYmxhbmsgc3RyaW5nCisgICAgICAgICAgICAgICAgKHByb3BlcnR5PSIiKS48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPnNyYzwvbmFtZT4KKyAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgc291cmNlIFVSTCBvZiB0aGUgaW1hZ2UgZm9yIHRoaXMgaW5wdXQgdGFnLjwvcD4KKyAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgPG5hbWU+c3JjS2V5PC9uYW1lPgorICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlRoZSBrZXkgb2YgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIHN0cmluZyBzcGVjaWZ5aW5nIHRoZQorICAgICAgICAgICAgICAgIHNvdXJjZSBVUkwgb2YgdGhlIGltYWdlIGZvciB0aGlzIGlucHV0IHRhZy48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgPHA+VGhlIHZhbHVlIHRoYXQgd2lsbCBiZSBzdWJtaXR0ZWQgaWYgdGhpcyBpbWFnZSBidXR0b24KKyAgICAgICAgICAgICAgaXMgcHJlc3NlZC48L3A+CisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPC90YWc+CisKKworICAgICAgICA8dGFnPgorCisgICAgICAgICAgICAgICAgPG5hbWU+aW1nPC9uYW1lPgorICAgICAgICAgICAgICAgIDxzdW1tYXJ5PlJlbmRlciBhbiBIVE1MIGltZyB0YWc8L3N1bW1hcnk+CisgICAgICAgICAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltZ1RhZzwvdGFnY2xhc3M+CisgICAgICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgICAgICAgICAgICAgPGluZm8+CisKKyAgICAgICAgICAgICAgICA8cD5SZW5kZXJzIGFuIEhUTUwgPGNvZGU+Jmx0O2ltZyZndDs8L2NvZGU+IGVsZW1lbnQgd2l0aAorICAgICAgICAgICAgICAgIHRoZSBpbWFnZSBhdCB0aGUgc3BlY2lmaWVkIFVSTC4gIExpa2UgdGhlIGxpbmsgdGFnLCBVUkwKKyAgICAgICAgICAgICAgICByZXdyaXRpbmcgd2lsbCBiZSBhcHBsaWVkIGF1dG9tYXRpY2FsbHkgdG8gdGhlIHZhbHVlCisgICAgICAgICAgICAgICAgc3BlY2lmaWVkIGluIDxjb2RlPnNyYzwvY29kZT4gb3IgPGNvZGU+cGFnZTwvY29kZT4sCisgICAgICAgICAgICAgICAgdG8gbWFpbnRhaW4gc2Vzc2lvbiBzdGF0ZQorICAgICAgICAgICAgICAgIGluIHRoZSBhYnNlbmNlIG9mIGNvb2tpZXMuICBUaGlzIHdpbGwgYWxsb3cgZHluYW1pYworICAgICAgICAgICAgICAgIGdlbmVyYXRpb24gb2YgYW4gaW1hZ2Ugd2hlcmUgdGhlIGNvbnRlbnQgZGlzcGxheWVkIGZvciB0aGlzCisgICAgICAgICAgICAgICAgaW1hZ2Ugd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBhdHRyaWJ1dGVzIG9mIHRoaXMgdGFnLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPlRoZSBiYXNlIFVSTCBmb3IgdGhpcyBpbWFnZSBpcyBjYWxjdWxhdGVkIGRpcmVjdGx5IGJhc2VkIG9uCisgICAgICAgICAgICAgICAgdGhlIHZhbHVlIHNwZWNpZmllZCBpbiA8Y29kZT5zcmM8L2NvZGU+IG9yIDxjb2RlPnBhZ2U8L2NvZGU+LAorICAgICAgICAgICAgICAgIG9yIGluZGlyZWN0bHkgYnkgbG9va2luZyB1cCBhIG1lc3NhZ2UgcmVzb3VyY2Ugc3RyaW5nIGJhc2VkIG9uCisgICAgICAgICAgICAgICAgdGhlIDxjb2RlPnNyY0tleTwvY29kZT4gb3IgPGNvZGU+cGFnZUtleTwvY29kZT4gYXR0cmlidXRlcy4KKyAgICAgICAgICAgICAgICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgZXhhY3RseSBvbmUgb2YgdGhlc2UKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPk5vcm1hbGx5LCB0aGUgPGNvZGU+c3JjPC9jb2RlPiBvciA8Y29kZT5wYWdlPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICAgeW91IHNwZWNpZnkgd2lsbCBiZSBsZWZ0CisgICAgICAgICAgICAgICAgdW5jaGFuZ2VkIChvdGhlciB0aGFuIFVSTCByZXdyaXRpbmcgaWYgbmVjZXNzYXJ5KS4gIEhvd2V2ZXIsCisgICAgICAgICAgICAgICAgdGhlcmUgYXJlIHR3byB3YXlzIHlvdSBjYW4gYXBwZW5kIG9uZSBvciBtb3JlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgZGVmaW5lZCBxdWVyeSBwYXJhbWV0ZXJzIHRvIHRoZSA8Y29kZT5zcmM8L2NvZGU+IFVSTCAtLQorICAgICAgICAgICAgICAgIHNwZWNpZnkgYSBzaW5nbGUgcGFyYW1ldGVyIHdpdGggdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIChhdCBpdHMgYXNzb2NpYXRlZCBhdHRyaWJ1dGVzIHRvIHNlbGVjdCB0aGUgdmFsdWUpLAorICAgICAgICAgICAgICAgIG9yIHNwZWNpZnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICA8Y29kZT5wcm9wZXJ0eTwvY29kZT4pIGF0dHJpYnV0ZXMgdG8gc2VsZWN0IGEKKyAgICAgICAgICAgICAgICA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBiZWFuIHRoYXQgY29udGFpbnMgb25lIG9yIG1vcmUKKyAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgaWRzIGFuZCBjb3JyZXNwb25kaW5nIHZhbHVlcy48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5UbyBzcGVjaWZ5IGEgc2luZ2xlIHBhcmFtZXRlciwgdXNlIHRoZSA8Y29kZT5wYXJhbUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSB0byBkZWZpbmUgdGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGJlCisgICAgICAgICAgICAgICAgc3VibWl0dGVkLiAgVG8gc3BlY2lmeSB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSwgdXNlIG9uZSBvZiB0aGUKKyAgICAgICAgICAgICAgICBmb2xsb3dpbmcgYXBwcm9hY2hlczo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBvbmx5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZTwvZW0+CisgICAgICAgICAgICAgICAgICAgIC0gVGhlIG5hbWVkIEpTUCBiZWFuIChvcHRpb25hbGx5IHNjb3BlZCBieSB0aGUgdmFsdWUgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IGF0dHJpYnV0ZSkgbXVzdCBpZGVudGlmeSBhIHZhbHVlCisgICAgICAgICAgICAgICAgICAgIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIFN0cmluZy48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBib3RoIHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGFuZAorICAgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzPC9lbT4gLSBUaGUgc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5IGdldHRlciB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgSlNQIGJlYW4gaWRlbnRpZmllZAorICAgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+KSBhdHRyaWJ1dGVzLCBpbiBvcmRlciB0byBzZWxlY3QKKyAgICAgICAgICAgICAgICAgICAgYSB2YWx1ZSB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgPHA+SWYgeW91IHByZWZlciB0byBzcGVjaWZ5IGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgIGNvbnRhaW5zIGFsbCBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzIHRvIGJlIGFkZGVkIHRvIHRoZQorICAgICAgICAgICAgICAgIGh5cGVybGluaywgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHRlY2huaXF1ZXM6PC9wPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgb25seSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlPC9lbT4gLQorICAgICAgICAgICAgICAgICAgICBUaGUgbmFtZWQgSlNQIGJlYW4gKG9wdGlvbmFsbHkgc2NvcGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgICAgICAgICB0aGUgPGNvZGU+c2NvcGU8L2NvZGU+IGF0dHJpYnV0ZSkgbXVzdCBpZGVudGlmeSBhCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgYm90aCA8Y29kZT5uYW1lPC9jb2RlPiBhbmQKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXM8L2VtPiAtIFRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgZ2V0dGVyIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgYmVhbgorICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVkIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnNjb3BlPC9jb2RlPikgYXR0cmlidXRlcywgaW4gb3JkZXIgdG8gcmV0dXJuIHRoZQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICAgIDxwPkFzIHRoZSA8Y29kZT5NYXA8L2NvZGU+IGlzIHByb2Nlc3NlZCwgdGhlIGtleXMgYXJlIGFzc3VtZWQKKyAgICAgICAgICAgICAgICB0byBiZSB0aGUgbmFtZXMgb2YgcXVlcnkgcGFyYW1ldGVycyB0byBiZSBhcHBlbmRlZCB0byB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5zcmM8L2NvZGU+IFVSTC4gIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBrZXkKKyAgICAgICAgICAgICAgICBtdXN0IGJlIGVpdGhlciBhIFN0cmluZyBvciBhIFN0cmluZyBhcnJheSByZXByZXNlbnRpbmcgdGhlCisgICAgICAgICAgICAgICAgcGFyYW1ldGVyIHZhbHVlKHMpLCBvciBhbiBvYmplY3Qgd2hvc2UgdG9TdHJpbmcoKSBtZXRob2QKKyAgICAgICAgICAgICAgICB3aWxsIGJlIGNhbGxlZC4gIElmIGEgU3RyaW5nIGFycmF5IGlzIHNwZWNpZmllZCwgbW9yZSB0aGFuCisgICAgICAgICAgICAgICAgb25lIHZhbHVlIGZvciB0aGUgc2FtZSBxdWVyeSBwYXJhbWV0ZXIgbmFtZSB3aWxsIGJlCisgICAgICAgICAgICAgICAgY3JlYXRlZC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5Zb3UgY2FuIHNwZWNpZnkgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGltYWdlICh3aGljaAorICAgICAgICAgICAgICAgIG1vc3QgYnJvd3NlcnMgZGlzcGxheSBhcyBwb3AtdXAgdGV4dCBibG9jayB3aGVuIHRoZSB1c2VyCisgICAgICAgICAgICAgICAgaG92ZXJzIHRoZSBtb3VzZSBvdmVyIHRoaXMgaW1hZ2UpIGVpdGhlciBkaXJlY3RseSwgdGhyb3VnaAorICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5hbHQ8L2NvZGU+IGF0dHJpYnV0ZSwgb3IgaW5kaXJlY3RseSBmcm9tIGEgbWVzc2FnZQorICAgICAgICAgICAgICAgIHJlc291cmNlcyBidW5kbGUsIHVzaW5nIHRoZSA8Y29kZT5idW5kbGU8L2NvZGU+IGFuZAorICAgICAgICAgICAgICAgIDxjb2RlPmFsdEtleTwvY29kZT4gYXR0cmlidXRlcy48L3A+CisKKyAgICAgICAgICAgICAgICA8L2luZm8+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+YWxpZ248L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5XaGVyZSB0aGUgaW1hZ2UgaXMgYWxpZ25lZCB0by4gIENhbiBiZSBvbmUgb2YgdGhlCisgICAgICAgICAgICAgICAgICBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+CisgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgPGxpPmxlZnQgLSBsZWZ0IGp1c3RpZnksIHdyYXBwaW5nIHRleHQgb24gcmlnaHQ8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+cmlnaHQgLXJpZ2h0IGp1c3RpZnksIHdyYXBwaW5nIHRlc3Qgb24gbGVmdDwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT50b3AgLSBhbGlnbnMgdGhlIGltYWdlIHdpdGggdGhlIHRvcCBvZiB0aGUgdGV4dCBvbgorICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgcm93PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPm1pZGRsZSAtIGFsaWducyB0aGUgaW1hZ2UncyB2ZXJ0aWNhbCBjZW50ZXIgd2l0aCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgYmFzZSBsaW5lPC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPmJvdHRvbSAtIGFsaWducyB0aGUgaW1hZ2Ugd2l0aCB0aGUgYm90dG9tIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCdzIGJhc2UgbGluZTwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT50ZXh0dG9wIC0gYWxpZ25zIHRoZSBpbWFnZSdzIHRvcCB3aXRoIHRoYXQgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0IGZvbnQgb24gdGhlIHNhbWUgbGluZTwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT5hYnNtaWRkbGUgLSBhbGlnbnMgdGhlIGltYWdlJ3MgdmVydGljYWwgY2VudGVyIHdpdGggdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBhYnNvbHV0ZSBjZW50ZXIgb2YgdGhlIHRleHQ8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+YWJzYm90dG9tIC0gYWxpZ25zIHRoZSBpbWFnZSB3aXRoIHRoZSBhYnNvbHV0ZSBib3R0b20KKyAgICAgICAgICAgICAgICAgICAgICAgIG9mIHRoZSB0ZXh0IGZvbnQgb24gdGhlIHNhbWUgcm93PC9saT4KKyAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5BbmQgYWx0ZXJuYXRpdmUgdGV4dCB0byBiZSBkaXNwbGF5ZWQgaW4gYnJvd3NlcnMgdGhhdAorICAgICAgICAgICAgICAgICAgICAgZG9uJ3Qgc3VwcG9ydCBncmFwaGljcy4gIEFsc28gdXNlZCBvZnRlbiBhcyB0eXBlIG9mCisgICAgICAgICAgICAgICAgICAgICBjb250ZXh0IGhlbHAgb3ZlciBpbWFnZXMuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPmJvcmRlcjwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSB3aWR0aCBvZiB0aGUgYm9yZGVyIHN1cnJvdW5kaW5nIHRoZSBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5oZWlnaHQ8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgaGVpZ2h0IG9mIHRoZSBpbWFnZSBiZWluZyBkaXNwbGF5ZWQuICBUaGlzIHBhcmFtZXRlcgorICAgICAgICAgICAgICAgICAgICAgaXMgdmVyeSBuaWNlIHRvIHNwZWNpZnkgKGFsb25nIHdpdGggPGNvZGU+d2lkdGg8L2NvZGU+KQorICAgICAgICAgICAgICAgICAgICAgdG8gaGVscCB0aGUgYnJvd3NlciByZW5kZXIgdGhlIHBhZ2UgZmFzdGVyLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5oc3BhY2U8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIGhvcml6b250YWwgc3BhY2luZyBiZXR3ZWVuIHRoZSBpY29uIGFuZAorICAgICAgICAgICAgICAgICAgICAgdGhlIHRleHQuICBUaGUgdGV4dCBtYXkgYmUgaW4gdGhlIHNhbWUgcGFyYWdyYXBoLCBvcgorICAgICAgICAgICAgICAgICAgICAgYmUgd3JhcHBlZCBhcm91bmQgdGhlIGltYWdlLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5pbWFnZU5hbWU8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NyaXB0YWJsZSBuYW1lIHRvIGJlIGRlZmluZWQgd2l0aGluIHRoaXMgcGFnZSwgc28KKyAgICAgICAgICAgICAgICAgIHRoYXQgeW91IGNhbiByZWZlcmVuY2UgaXQgd2l0aCBpbnRyYS1wYWdlIHNjcmlwdHMuICBJbiBvdGhlcgorICAgICAgICAgICAgICAgICAgd29yZHMsIHRoZSB2YWx1ZSBzcGVjaWZpZWQgaGVyZSB3aWxsIHJlbmRlciBhICJuYW1lIiBlbGVtZW50CisgICAgICAgICAgICAgICAgICBpbiB0aGUgZ2VuZXJhdGVkIGltYWdlIHRhZy48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+aXNtYXA8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiB0aGUgc2VydmVyLXNpZGUgbWFwIHRoYXQgdGhpcyBpbWFnZSBiZWxvbmdzCisgICAgICAgICAgICAgICAgICAgICB0by48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+bG9jYWxlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIHJlcXVlc3Qgb3Igc2Vzc2lvbiBMb2NhbGUgYXR0cmlidXRlIHVzZWQKKyAgICAgICAgICAgICAgICAgIHRvIGxvb2sgdXAgaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPmxvd3NyYzwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgQW4gaW1hZ2UgZm9yIHBlb3BsZSB3aXRoIGxvdyByZXNvbHV0aW9uIGdyYXBoaWNzIGNhcmRzLgorICAgICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgICAgPGRlcHJlY2F0ZWQ+CisgICAgICAgICAgICAgICAgICAgICAgVGhpcyBhdHRyaWJ1dGUgaXMgbm90IGRlZmluZWQgaW4gdGhlIEhUTUwgNC4wMSBzcGVjIGFuZCAKKyAgICAgICAgICAgICAgICAgICAgICB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiBTdHJ1dHMuCisgICAgICAgICAgICAgICAgICA8L2RlcHJlY2F0ZWQ+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gdGhhdCBjb250YWlucyBhIDxjb2RlPk1hcDwvY29kZT4KKyAgICAgICAgICAgICAgICAgIHJlcHJlc2VudGluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgICBpcyBub3Qgc3BlY2lmaWVkKSwgb3IgYSBKU1AgYmVhbiB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMKKyAgICAgICAgICAgICAgICAgIGNhbGxlZCB0byByZXR1cm4gYSA8Y29kZT5NYXA8L2NvZGU+IChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGlzIHNwZWNpZmllZCkuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBrZXkgZG93biBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIGtleSBwcmVzcyBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIGtleSB1cCBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5wYXJhbUlkPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBzcmMgVVJMLiAgVGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaXMKKyAgICAgICAgICAgICAgICAgIGRlZmluZWQgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYW5kIChvcHRpb25hbCkKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMsIG9wdGlvbmFsbHkgc2NvcGVkIGJ5CisgICAgICAgICAgICAgICAgICB0aGUgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gYXR0cmlidXRlPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgbW9kdWxlLXJlbGF0aXZlIHBhdGgsIHN0YXJ0aW5nIHdpdGggYSBzbGFzaCwgb2YKKyAgICAgICAgICAgICAgICAgIHRoZSBpbWFnZSB0byBiZSBkaXNwbGF5ZWQgYnkgdGhpcyB0YWcuICBUaGUgcmVuZGVyZWQKKyAgICAgICAgICAgICAgICAgIFVSTCBmb3IgdGhpcyBpbWFnZSB3aWxsIGF1dG9tYXRpY2FsbHkgcHJlcGVuZCB0aGUgY29udGV4dAorICAgICAgICAgICAgICAgICAgcGF0aCBvZiB0aGlzIHdlYiBhcHBsaWNhdGlvbiAoaW4gdGhlIHNhbWUgbWFubmVyIGFzIHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZSBsaW5rIHRhZyB3b3JrcyksCisgICAgICAgICAgICAgICAgICBpbiBhZGRpdGlvbiB0byBhbnkgbmVjZXNzYXJ5IFVSTCByZXdyaXRpbmcuICBZb3UKKyAgICAgICAgICAgICAgICAgIDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGVpdGhlciB0aGUgPGNvZGU+cGFnZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBvciB0aGUgPGNvZGU+c3JjPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnBhZ2VLZXk8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSBrZXksIGluIHRoZSBtZXNzYWdlIHJlc291cmNlcyBidW5kbGUgbmFtZWQgYnkKKyAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5idW5kbGU8L2NvZGU+IGF0dHJpYnV0ZSwgb2YgdGhlIFN0cmluZyB0byBiZQorICAgICAgICAgICAgICAgICAgdXNlZCBhcyB0aGUgbW9kdWxlLXJlbGF0aXZlIHBhdGggZm9yIHRoaXMgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnBhcmFtTmFtZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gdGhhdCBpcyBhIFN0cmluZyBjb250YWluaW5nIHRoZQorICAgICAgICAgICAgICAgICAgdmFsdWUgZm9yIHRoZSByZXF1ZXN0IHBhcmFtZXRlciBuYW1lZCBieSA8Y29kZT5wYXJhbUlkPC9jb2RlPgorICAgICAgICAgICAgICAgICAgKGlmIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQpLCBvciBhIEpTUAorICAgICAgICAgICAgICAgICAgYmVhbiB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMgY2FsbGVkIHRvIHJldHVybiBhIFN0cmluZworICAgICAgICAgICAgICAgICAgKGlmIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZCkuICBUaGUgSlNQIGJlYW4KKyAgICAgICAgICAgICAgICAgIGlzIGNvbnN0cmFpbmVkIHRvIHRoZSBiZWFuIHNjb3BlIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IHByb3BlcnR5LCBpZiBpdCBpcyBzcGVjaWZpZWQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnBhcmFtUHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdAorICAgICAgICAgICAgICAgICAgYmUgYSBTdHJpbmcgY29udGFpbmluZyB0aGUgdmFsdWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyCisgICAgICAgICAgICAgICAgICAobmFtZWQgYnkgdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+IGF0dHJpYnV0ZSkgdGhhdCB3aWxsIGJlCisgICAgICAgICAgICAgICAgICBkeW5hbWljYWxseSBhZGRlZCB0byB0aGlzIHNyYyBVUkwuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnBhcmFtU2NvcGU8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgICAgYWxsIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0IGJlCisgICAgICAgICAgICAgICAgICBhIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKKyAgICAgICAgICAgICAgICAgIHRvIGJlIGFkZGVkIHRvIHRoZSBzcmMgVVJMLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPgorICAgICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIGlmIHlvdSBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwgYWxsCisgICAgICAgICAgICAgICAgICBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5zcmM8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgVVJMIHRvIHdoaWNoIHRoaXMgaW1hZ2Ugd2lsbCBiZSB0cmFuc2ZlcnJlZCBmcm9tCisgICAgICAgICAgICAgICAgICBUaGlzIGltYWdlIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQgaW4gdGhlCisgICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBUaGlzIHZhbHVlIHdpbGwgYmUgdXNlZCB1bm1vZGlmaWVkIChvdGhlcgorICAgICAgICAgICAgICAgICAgdGhhbiBwb3RlbnRpYWwgVVJMIHJld3JpdGluZykgYXMgdGhlIHZhbHVlIG9mIHRoZSAic3JjIgorICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGluIHRoZSByZW5kZXJlZCB0YWcuICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+CisgICAgICAgICAgICAgICAgICBzcGVjaWZ5IGVpdGhlciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIG9yIHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+c3JjPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnNyY0tleTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIGtleSwgaW4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGJ1bmRsZSBuYW1lZCBieQorICAgICAgICAgICAgICAgICAgdGhlIDxjb2RlPmJ1bmRsZTwvY29kZT4gYXR0cmlidXRlLCBvZiB0aGUgU3RyaW5nIHRvIGJlCisgICAgICAgICAgICAgICAgICB1c2VkIGFzIHRoZSBVUkwgb2YgdGhpcyBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnVzZW1hcDwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIHRoZSBtYXAgYXMgZGVmaW5lZCB3aXRoaW4gdGhpcyBwYWdlIGZvcgorICAgICAgICAgICAgICAgICAgICAgbWFwcGluZyBob3Qtc3BvdCBhcmVhcyBvZiB0aGlzIGltYWdlLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT52c3BhY2U8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIHZlcnRpY2FsIHNwYWNpbmcgYmV0d2VlbiB0aGUgaWNvbiBhbmQKKyAgICAgICAgICAgICAgICAgICAgIHRoZSB0ZXh0LCBhYm92ZSBhbmQgYmVsb3cuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPndpZHRoPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIHdpZHRoIG9mIHRoZSBpbWFnZSBiZWluZyBkaXNwbGF5ZWQuICBUaGlzIHBhcmFtZXRlcgorICAgICAgICAgICAgICAgICAgICAgaXMgdmVyeSBuaWNlIHRvIHNwZWNpZnkgKGFsb25nIHdpdGggPGNvZGU+aGVpZ2h0PC9jb2RlPikKKyAgICAgICAgICAgICAgICAgICAgIHRvIGhlbHAgdGhlIGJyb3dzZXIgcmVuZGVyIHRoZSBwYWdlIGZhc3Rlci48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPC90YWc+CisKKyAgICA8dGFnPgorCisgICAgICAgIDxuYW1lPmphdmFzY3JpcHQ8L25hbWU+CisgICAgICAgIDxzdW1tYXJ5PgorICAgICAgICAgICAgUmVuZGVyIEphdmFTY3JpcHQgdmFsaWRhdGlvbiBiYXNlZCBvbiB0aGUKKyAgICAgICAgICAgIHZhbGlkYXRpb24gcnVsZXMgbG9hZGVkIGJ5IHRoZSA8Y29kZT5WYWxpZGF0b3JQbHVnSW48L2NvZGU+LgorICAgICAgICA8L3N1bW1hcnk+CisgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGJvZHljb250ZW50PmVtcHR5PC9ib2R5Y29udGVudD4KKyAgICAgICAgPGluZm8+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBSZW5kZXIgSmF2YVNjcmlwdCB2YWxpZGF0aW9uIGJhc2VkIG9uIHRoZQorICAgICAgICAgICAgICAgIHZhbGlkYXRpb24gcnVsZXMgbG9hZGVkIGJ5IHRoZSA8Y29kZT5WYWxpZGF0b3JQbHVnSW48L2NvZGU+LgorICAgICAgICAgICAgICAgIFRoZSBzZXQgb2YgdmFsaWRhdGlvbiBydWxlcyB0aGF0IHNob3VsZCBiZSBnZW5lcmF0ZWQgaXMgYmFzZWQKKyAgICAgICAgICAgICAgICBvbiB0aGUgZm9ybU5hbWUgYXR0cmlidXRlIHBhc3NlZCBpbiwgd2hpY2ggc2hvdWxkIG1hdGNoCisgICAgICAgICAgICAgICAgdGhlIG5hbWUgYXR0cmlidXRlIG9mIHRoZSBmb3JtIGVsZW1lbnQgaW4gdGhlIHhtbCBmaWxlLgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgVGhlIGR5bmFtaWNKYXZhc2NyaXB0IGFuZCBzdGF0aWNKYXZhc2NyaXB0IGF0dHJpYnV0ZXMKKyAgICAgICAgICAgICAgICBkZWZhdWx0IHRvIHRydWUsIGJ1dCBpZiBkeW5hbWljSmF2YXNjcmlwdCBpcyBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4KKyAgICAgICAgICAgICAgICBhbmQgc3RhdGljSmF2YXNjcmlwdCBpcyBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IHRoZW4gb25seQorICAgICAgICAgICAgICAgIHRoZSBkeW5hbWljIEphdmFTY3JpcHQgd2lsbCBiZSByZW5kZXJlZC4gIElmIGR5bmFtaWNKYXZhc2NyaXB0CisgICAgICAgICAgICAgICAgaXMgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPgorICAgICAgICAgICAgICAgIGFuZCBzdGF0aWNKYXZhc2NyaXB0IGlzIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG9ubHkKKyAgICAgICAgICAgICAgICB0aGUgc3RhdGljIEphdmFTY3JpcHQgd2lsbCBiZSByZW5kZXJlZCB3aGljaCBjYW4gdGhlbiBiZSBwdXQgaW4KKyAgICAgICAgICAgICAgICBzZXBhcmF0ZSBKU1AgcGFnZSBzbyB0aGUgYnJvd3NlciBjYW4gY2FjaGUgdGhlIHN0YXRpYyBKYXZhU2NyaXB0LgorICAgICAgICAgICAgPC9wPgorICAgICAgICA8L2luZm8+CisKKwkJPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmNkYXRhPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICBJZiBzZXQgdG8gInRydWUiIGFuZCBYSFRNTCBoYXMgYmVlbiBlbmFibGVkLCB0aGUgSmF2YVNjcmlwdCB3aWxsCisgICAgICAgICAgICAgICAgICBiZSB3cmFwcGVkIGluIGEgQ0RBVEEgc2VjdGlvbiB0byBwcmV2ZW50IFhNTCBwYXJzaW5nLiBUaGUgZGVmYXVsdCBpcworICAgICAgICAgICAgICAgICAgInRydWUiIHRvIGNvbXBseSB3aXRoIHRoZSBXM0MncyByZWNvbW1lbmRhdGlvbi4KKyAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgIDxzaW5jZT5TdHJ1dHMgMS4xPC9zaW5jZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIAorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZHluYW1pY0phdmFzY3JpcHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICBXaGV0aGVyIG9yIG5vdCB0byByZW5kZXIgdGhlIGR5bmFtaWMgSmF2YVNjcmlwdC4KKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIDxjb2RlPnRydWU8L2NvZGU+LgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZvcm1OYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICBUaGUga2V5IChmb3JtIG5hbWUpIHRvIHJldHJpZXZlIGEgc3BlY2lmaWMKKyAgICAgICAgICAgICAgICAgIHNldCBvZiB2YWxpZGF0aW9uIHJ1bGVzLgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1ldGhvZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgVGhlIGFsdGVybmF0ZSBKYXZhU2NyaXB0IG1ldGhvZCBuYW1lIHRvIGJlIHVzZWQKKyAgICAgICAgICAgICAgICAgIGluc3RlYWQgb2YgdGhlIG9mIHRoZSBkZWZhdWx0LiAgVGhlIGRlZmF1bHQgaXMKKyAgICAgICAgICAgICAgICAgICd2YWxpZGF0ZScgY29uY2F0ZW5hdGVkIGluIGZyb250IG9mCisgICAgICAgICAgICAgICAgICB0aGUga2V5IChmb3JtIG5hbWUpIHBhc3NlZCBpbiAoZXg6IHZhbGlkYXRlUmVnaXN0cmF0aW9uRm9ybSkuCisgICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgVGhlIGN1cnJlbnQgcGFnZSBvZiBhIHNldCBvZiB2YWxpZGF0aW9uIHJ1bGVzCisgICAgICAgICAgICAgICAgICBpZiB0aGUgcGFnZSBhdHRyaWJ1dGUgZm9yIHRoZSBmaWVsZCBlbGVtZW50CisgICAgICAgICAgICAgICAgICBpbiB0aGUgeG1sIGZpbGUgaXMgaW4gdXNlLgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zY3JpcHRMYW5ndWFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgJmx0O3NjcmlwdCZndDsgZWxlbWVudCB3aWxsIG5vdCBjb250YWluIGEgbGFuZ3VhZ2UgYXR0cmlidXRlCisgICAgICAgICAgICAgICAgd2hlbiB0aGlzIGlzIHNldCB0byBmYWxzZS4gIFRoZSBkZWZhdWx0IGlzIHRydWUgYnV0IHRoaXMgcHJvcGVydHkgaXMgaWdub3JlZAorICAgICAgICAgICAgICAgIGluIFhIVE1MIG1vZGUuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICA8c2luY2U+U3RydXRzIDEuMjwvc2luY2U+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICAKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNyYzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgVGhlIHNyYyBhdHRyaWJ1dGUncyB2YWx1ZSB3aGVuIGRlZmluaW5nCisgICAgICAgICAgICAgICAgICB0aGUgaHRtbCBzY3JpcHQgZWxlbWVudC4KKyAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdGF0aWNKYXZhc2NyaXB0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgV2hldGhlciBvciBub3QgdG8gcmVuZGVyIHRoZSBzdGF0aWMgSmF2YVNjcmlwdC4KKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIDxjb2RlPnRydWU8L2NvZGU+LgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmh0bWxDb21tZW50PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICBXaGV0aGVyIG9yIG5vdCB0byBlbmNsb3NlIHRoZSBqYXZhc2NyaXB0CisgICAgICAgICAgICAgICAgICB3aXRoIEhUTUwgY29tbWVudHMuICBUaGlzIGF0dHJpYnV0ZSBpcyBpZ25vcmVkIGluIFhIVE1MCisgICAgICAgICAgICAgICAgICBtb2RlIGJlY2F1c2UgdGhlIHNjcmlwdCB3b3VsZCBiZSBkZWxldGVkIGJ5IHRoZSBYTUwgcGFyc2VyLiAgU2VlCisgICAgICAgICAgICAgICAgICB0aGUgY2RhdGEgYXR0cmlidXRlIGZvciBkZXRhaWxzIG9uIGhpZGluZyBzY3JpcHRzIGZyb20gWE1MCisgICAgICAgICAgICAgICAgICBwYXJzZXJzLiAKKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIDxjb2RlPnRydWU8L2NvZGU+LgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgIDwvdGFnPgorCisgICAgICAgIDx0YWc+CisKKyAgICAgICAgICAgICAgICA8bmFtZT5saW5rPC9uYW1lPgorICAgICAgICAgICAgICAgIDxzdW1tYXJ5PlJlbmRlciBhbiBIVE1MIGFuY2hvciBvciBoeXBlcmxpbms8L3N1bW1hcnk+CisgICAgICAgICAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWc8L3RhZ2NsYXNzPgorICAgICAgICAgICAgICAgIDxpbmZvPgorCisgICAgICAgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MIDxjb2RlPiZsdDthJmd0OzwvY29kZT4gZWxlbWVudCBhcyBhbgorICAgICAgICAgICAgICAgIGFuY2hvciBkZWZpbml0aW9uIChpZiAibGlua05hbWUiIGlzIHNwZWNpZmllZCkgb3IgYXMgYQorICAgICAgICAgICAgICAgIGh5cGVybGluayB0byB0aGUgc3BlY2lmaWVkIFVSTC4gIFVSTCByZXdyaXRpbmcgd2lsbCBiZQorICAgICAgICAgICAgICAgIGFwcGxpZWQgYXV0b21hdGljYWxseSwgdG8gbWFpbnRhaW4gc2Vzc2lvbiBzdGF0ZSBpbiB0aGUKKyAgICAgICAgICAgICAgICBhYnNlbmNlIG9mIGNvb2tpZXMuICBUaGUgY29udGVudCBkaXNwbGF5ZWQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBoeXBlcmxpbmsgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBib2R5IG9mIHRoaXMgdGFnLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPlRoZSBiYXNlIFVSTCBmb3IgdGhpcyBoeXBlcmxpbmsgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbgorICAgICAgICAgICAgICAgIHdoaWNoIG9mIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyB5b3Ugc3BlY2lmeSAoeW91IG11c3QKKyAgICAgICAgICAgICAgICBzcGVjaWZ5IGV4YWN0bHkgb25lIG9mIHRoZW0pOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5mb3J3YXJkPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIHRoZQorICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGEgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRvIGJlIGxvb2tlZAorICAgICAgICAgICAgICAgICAgICB1cCwgYW5kIHVzZSB0aGUgYXBwbGljYXRpb24tcmVsYXRpdmUgb3IgY29udGV4dC1yZWxhdGl2ZQorICAgICAgICAgICAgICAgICAgICBVUkkgZm91bmQgdGhlcmUuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPmFjdGlvbjwvZW0+IC0gVXNlIHRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSBhcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBhIDxjb2RlPkFjdGlvbjwvY29kZT4gdG8gYmUgbG9va2VkCisgICAgICAgICAgICAgICAgICAgIHVwLCBhbmQgdXNlIHRoZSBhcHBsaWNhdGlvbi1yZWxhdGl2ZSBvciBjb250ZXh0LXJlbGF0aXZlCisgICAgICAgICAgICAgICAgICAgIFVSSSBmb3VuZCB0aGVyZS48L2xpPgorICAgICAgICAgICAgICAgICA8bGk+PGVtPmhyZWY8L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgdW5jaGFuZ2VkLgorICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgPGxpPjxlbT5wYWdlPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIGEKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24tcmVsYXRpdmUgVVJJLCBhbmQgZ2VuZXJhdGUgYSBzZXJ2ZXItcmVsYXRpdmUKKyAgICAgICAgICAgICAgICAgICAgVVJJIGJ5IGluY2x1ZGluZyB0aGUgY29udGV4dCBwYXRoIGFuZCBhcHBsaWNhdGlvbgorICAgICAgICAgICAgICAgICAgICBwcmVmaXguPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgPHA+Tm9ybWFsbHksIHRoZSBoeXBlcmxpbmsgeW91IHNwZWNpZnkgd2l0aCBvbmUgb2YgdGhlCisgICAgICAgICAgICAgICAgYXR0cmlidXRlcyBkZXNjcmliZWQgaW4gdGhlIHByZXZpb3VzIHBhcmFncmFwaCB3aWxsIGJlIGxlZnQKKyAgICAgICAgICAgICAgICB1bmNoYW5nZWQgKG90aGVyIHRoYW4gVVJMIHJld3JpdGluZyBpZiBuZWNlc3NhcnkpLiAgSG93ZXZlciwKKyAgICAgICAgICAgICAgICB0aGVyZSBhcmUgdHdvIHdheXMgeW91IGNhbiBhcHBlbmQgb25lIG9yIG1vcmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICBkZWZpbmVkIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gdGhlIGh5cGVybGluayAtLSBzcGVjaWZ5IGEgc2luZ2xlCisgICAgICAgICAgICAgICAgcGFyYW1ldGVyIHdpdGggdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+IGF0dHJpYnV0ZSAoYW5kIGl0cworICAgICAgICAgICAgICAgIGFzc29jaWF0ZWQgYXR0cmlidXRlcyB0byBzZWxlY3QgdGhlIHZhbHVlKSwgb3Igc3BlY2lmeSB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5uYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsIDxjb2RlPnByb3BlcnR5PC9jb2RlPikKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzIHRvIHNlbGVjdCBhIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGJlYW4gdGhhdAorICAgICAgICAgICAgICAgIGNvbnRhaW5zIG9uZSBvciBtb3JlIHBhcmFtZXRlciBpZHMgYW5kIGNvcnJlc3BvbmRpbmcgdmFsdWVzLgorICAgICAgICAgICAgICAgIDwvcD4KKworICAgICAgICAgICAgICAgIDxwPlRvIHNwZWNpZnkgYSBzaW5nbGUgcGFyYW1ldGVyLCB1c2UgdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIHRvIGRlZmluZSB0aGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdG8gYmUKKyAgICAgICAgICAgICAgICBzdWJtaXR0ZWQuICBUbyBzcGVjaWZ5IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlLCB1c2Ugb25lIG9mIHRoZQorICAgICAgICAgICAgICAgIGZvbGxvd2luZyBhcHByb2FjaGVzOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IG9ubHkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlPC9lbT4KKyAgICAgICAgICAgICAgICAgICAgLSBUaGUgbmFtZWQgSlNQIGJlYW4gKG9wdGlvbmFsbHkgc2NvcGVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gYXR0cmlidXRlKSBtdXN0IGlkZW50aWZ5IGEgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgU3RyaW5nLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IGJvdGggdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYW5kCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXM8L2VtPiAtIFRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgZ2V0dGVyIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgSlNQIGJlYW4KKyAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllZCBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+KSBhdHRyaWJ1dGVzLCBpbiBvcmRlciB0byBzZWxlY3QKKyAgICAgICAgICAgICAgICAgICAgYSB2YWx1ZSB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgPHA+SWYgeW91IHByZWZlciB0byBzcGVjaWZ5IGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgIGNvbnRhaW5zIGFsbCBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzIHRvIGJlIGFkZGVkIHRvIHRoZQorICAgICAgICAgICAgICAgIGh5cGVybGluaywgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHRlY2huaXF1ZXM6PC9wPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgb25seSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlPC9lbT4gLQorICAgICAgICAgICAgICAgICAgICBUaGUgbmFtZWQgSlNQIGJlYW4gKG9wdGlvbmFsbHkgc2NvcGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgICAgICAgICB0aGUgPGNvZGU+c2NvcGU8L2NvZGU+IGF0dHJpYnV0ZSkgbXVzdCBpZGVudGlmeSBhCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgYm90aCA8Y29kZT5uYW1lPC9jb2RlPiBhbmQKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXM8L2VtPiAtIFRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgZ2V0dGVyIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgYmVhbgorICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVkIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnNjb3BlPC9jb2RlPikgYXR0cmlidXRlcywgaW4gb3JkZXIgdG8gcmV0dXJuIHRoZQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICAgIDxwPkFzIHRoZSA8Y29kZT5NYXA8L2NvZGU+IGlzIHByb2Nlc3NlZCwgdGhlIGtleXMgYXJlIGFzc3VtZWQKKyAgICAgICAgICAgICAgICB0byBiZSB0aGUgbmFtZXMgb2YgcXVlcnkgcGFyYW1ldGVycyB0byBiZSBhcHBlbmRlZCB0byB0aGUKKyAgICAgICAgICAgICAgICBoeXBlcmxpbmsuICBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGVhY2gga2V5IG11c3QgYmUgZWl0aGVyCisgICAgICAgICAgICAgICAgYSBTdHJpbmcgb3IgYSBTdHJpbmcgYXJyYXkgcmVwcmVzZW50aW5nIHRoZSBwYXJhbWV0ZXIgdmFsdWUocyksCisgICAgICAgICAgICAgICAgb3IgYW4gb2JqZWN0IHdob3NlIHRvU3RyaW5nKCkgbWV0aG9kIHdpbGwgYmUgY2FsbGVkLgorICAgICAgICAgICAgICAgIElmIGEgU3RyaW5nIGFycmF5IGlzIHNwZWNpZmllZCwgbW9yZSB0aGFuIG9uZSB2YWx1ZSBmb3IgdGhlCisgICAgICAgICAgICAgICAgc2FtZSBxdWVyeSBwYXJhbWV0ZXIgbmFtZSB3aWxsIGJlIGNyZWF0ZWQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+QWRkaXRpb25hbGx5LCB5b3UgY2FuIHJlcXVlc3QgdGhhdCB0aGUgY3VycmVudCB0cmFuc2FjdGlvbgorICAgICAgICAgICAgICAgIGNvbnRyb2wgdG9rZW4sIGlmIGFueSwgYmUgaW5jbHVkZWQgaW4gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsKKyAgICAgICAgICAgICAgICBieSBzZXR0aW5nIHRoZSA8Y29kZT50cmFuc2FjdGlvbjwvY29kZT4gYXR0cmlidXRlIHRvCisgICAgICAgICAgICAgICAgPGNvZGU+dHJ1ZTwvY29kZT4uCisgICAgICAgICAgICAgICAgWW91IGNhbiBhbHNvIHJlcXVlc3QgdGhhdCBhbiBhbmNob3IgKCIjeHh4IikgYmUgYWRkZWQgdG8gdGhlCisgICAgICAgICAgICAgICAgZW5kIG9mIHRoZSBVUkwgdGhhdCBpcyBjcmVhdGVkIGJ5IGFueSBvZiB0aGUgYWJvdmUgbWVjaGFuaXNtcywKKyAgICAgICAgICAgICAgICBieSB1c2luZyB0aGUgPGNvZGU+YW5jaG9yPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorCisgICAgICAgICAgICAgICAgPC9pbmZvPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5CisgICAgICAgICAgICAgICAgICB0byB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAKKyAgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPmFjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPkxvZ2ljYWwgbmFtZSBvZiBhIDxjb2RlPkFjdGlvbjwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgICAgY29udGFpbnMgdGhlIGFjdHVhbCBjb250ZW50LXJlbGF0aXZlIFVSSSBvZiB0aGUgZGVzdGluYXRpb24KKyAgICAgICAgICAgICAgICAgIG9mIHRoaXMgdHJhbnNmZXIuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICAgIG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkCisgICAgICAgICAgICAgICAgICBpbiB0aGUgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlIDxjb2RlPmxpbmtOYW1lPC9jb2RlPgorICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICAgPG5hbWU+YW5jaG9yPC9uYW1lPgorICAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5PcHRpb25hbCBhbmNob3IgdGFnICgiI3h4eCIpIHRvIGJlIGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICAgIGh5cGVybGluay4gIFNwZWNpZnkgdGhpcyB2YWx1ZSA8c3Ryb25nPndpdGhvdXQ8L3N0cm9uZz4gYW55CisgICAgICAgICAgICAgICAgICAiIyIgY2hhcmFjdGVyLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5mb3J3YXJkPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+TG9naWNhbCBuYW1lIG9mIGEgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRoYXQKKyAgICAgICAgICAgICAgICAgIGNvbnRhaW5zIHRoZSBhY3R1YWwgY29udGVudC1yZWxhdGl2ZSBVUkkgb2YgdGhlIGRlc3RpbmF0aW9uCisgICAgICAgICAgICAgICAgICAgb2YgdGhpcyB0cmFuc2Zlci4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkCisgICAgICAgICAgICAgICAgICAgaW4gdGhlIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZSA8Y29kZT5saW5rTmFtZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5ocmVmPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIFVSTCB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAgICBpZiBhY3RpdmF0ZWQuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLCB0aGUgPGNvZGU+bGlua05hbWU8L2NvZGU+CisgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBpbmRleGVkIHBhcmFtZXRlciB3aXRoIG5hbWUgZnJvbSBpbmRleElkIGF0dHJpYnV0ZQorICAgICAgICAgICAgICAgIHdpbGwgYmUgYWRkZWQgdG8gdGhlIHF1ZXJ5IHN0cmluZy4gSW5kZXhlZCBwYXJhbWV0ZXIgbG9va3MgbGlrZQorICAgICAgICAgICAgICAgICJpbmRleFszMl0iLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBCeSB0aGlzIGF0dHJpYnV0ZSBkaWZmZXJlbnQgbmFtZSBmb3IgdGhlIGluZGV4ZWQgcGFyYW1ldGVyIGNhbiBiZQorICAgICAgICAgICAgICAgIHNwZWNpZmllZC4gVGFrZSBhIGxvb2sgdG8gdGhlICJpbmRleGVkIiBhdHRyaWJ1dGUgZm9yIGRldGFpbHMuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPmxpbmtOYW1lPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIGFuY2hvciBuYW1lIHRvIGJlIGRlZmluZWQgd2l0aGluIHRoaXMgcGFnZSwgc28gdGhhdAorICAgICAgICAgICAgICAgICAgeW91IGNhbiByZWZlcmVuY2UgaXQgd2l0aCBpbnRyYS1wYWdlIGh5cGVybGlua3MuICBJbiBvdGhlcgorICAgICAgICAgICAgICAgICAgd29yZHMsIHRoZSB2YWx1ZSBzcGVjaWZpZWQgaGVyZSB3aWxsIHJlbmRlciBhICJuYW1lIiBlbGVtZW50CisgICAgICAgICAgICAgICAgICBpbiB0aGUgZ2VuZXJhdGVkIGFuY2hvciB0YWcuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgY29udGFpbnMgYSA8Y29kZT5NYXA8L2NvZGU+CisgICAgICAgICAgICAgICAgICByZXByZXNlbnRpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgICAgaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzCisgICAgICAgICAgICAgICAgICBjYWxsZWQgdG8gcmV0dXJuIGEgPGNvZGU+TWFwPC9jb2RlPiAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgICBpcyBzcGVjaWZpZWQpLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQgZm9jdXMuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBtb3VzZSBjbGljay48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIG1vdXNlIGRvdWJsZSBjbGljay48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dCBmb2N1cy48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEga2V5IGRvd24gZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBrZXkgcHJlc3MgZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBrZXkgdXAgZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEgbW91c2UgZG93biBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBtb3VzZSBtb3ZlIGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEgbW91c2Ugb3V0IGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIG1vdXNlIG92ZXIgZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIG1vdXNlIHVwIGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5wYWdlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIChiZWdpbm5pbmcgd2l0aCBhICIvIgorICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyKSB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAgICBpZiBhY3RpdmF0ZWQuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgZXhhY3RseQorICAgICAgICAgICAgICAgICAgIG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsCisgICAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZSA8Y29kZT5saW5rTmFtZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5wYXJhbUlkPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuICBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcworICAgICAgICAgICAgICAgICAgZGVmaW5lZCBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhbmQgKG9wdGlvbmFsKQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlcywgb3B0aW9uYWxseSBzY29wZWQgYnkKKyAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBhdHRyaWJ1dGU8L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+cGFyYW1OYW1lPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGlzIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlCisgICAgICAgICAgICAgICAgICB2YWx1ZSBmb3IgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVkIGJ5IDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQCisgICAgICAgICAgICAgICAgICBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcyBjYWxsZWQgdG8gcmV0dXJuIGEgU3RyaW5nCisgICAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkKS4gIFRoZSBKU1AgYmVhbgorICAgICAgICAgICAgICAgICAgaXMgY29uc3RyYWluZWQgdG8gdGhlIGJlYW4gc2NvcGUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gcHJvcGVydHksIGlmIGl0IGlzIHNwZWNpZmllZC48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+cGFyYW1Qcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0CisgICAgICAgICAgICAgICAgICBiZSBhIFN0cmluZyBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAgIChuYW1lZCBieSB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4gYXR0cmlidXRlKSB0aGF0IHdpbGwgYmUKKyAgICAgICAgICAgICAgICAgIGR5bmFtaWNhbGx5IGFkZGVkIHRvIHRoaXMgaHlwZXJsaW5rLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5wYXJhbVNjb3BlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICAgIGFsbCBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdCBiZQorICAgICAgICAgICAgICAgICAgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCisgICAgICAgICAgICAgICAgICB0byBiZSBhZGRlZCB0byB0aGUgaHlwZXJsaW5rLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPgorICAgICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIGlmIHlvdSBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwgYWxsCisgICAgICAgICAgICAgICAgICBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnRhcmdldDwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSB3aW5kb3cgdGFyZ2V0IGluIHdoaWNoIHRoZSByZXNvdXJjZSByZXF1ZXN0ZWQgYnkgdGhpcworICAgICAgICAgICAgICAgICAgaHlwZXJsaW5rIHdpbGwgYmUgZGlzcGxheWVkLCBmb3IgZXhhbXBsZSBpbiBhIGZyYW1lZAorICAgICAgICAgICAgICAgICAgcHJlc2VudGF0aW9uLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBoeXBlcmxpbmsuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT50cmFuc2FjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPklmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgYW55IGN1cnJlbnQgdHJhbnNhY3Rpb24KKyAgICAgICAgICAgICAgICAgIGNvbnRyb2wgdG9rZW4gd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluaywKKyAgICAgICAgICAgICAgICAgIHNvIHRoYXQgaXQgd2lsbCBwYXNzIGFuIDxjb2RlPmlzVG9rZW5WYWxpZCgpPC9jb2RlPiB0ZXN0CisgICAgICAgICAgICAgICAgICBpbiB0aGUgcmVjZWl2aW5nIEFjdGlvbi48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPC90YWc+CisKKyAgICAgICAgPHRhZz4KKyAgICAgICAgICAgICAgICA8bmFtZT5tZXNzYWdlczwvbmFtZT4KKyAgICAgICAgICAgICAgICA8c3VtbWFyeT4KKyAgICAgICAgICAgICAgICBDb25kaXRpb25hbGx5IGRpc3BsYXkgYSBzZXQgb2YgYWNjdW11bGF0ZWQgbWVzc2FnZXMuCisgICAgICAgICAgICAgICAgPC9zdW1tYXJ5PgorICAgICAgICAgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5NZXNzYWdlc1RhZzwvdGFnY2xhc3M+CisgICAgICAgICAgICAgICAgPHRlaWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk1lc3NhZ2VzVGVpPC90ZWljbGFzcz4KKyAgICAgICAgICAgICAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5EaXNwbGF5cyBhIHNldCBvZiBtZXNzYWdlcyBwcmVwYXJlZCBieSBhIGJ1c2luZXNzCisgICAgICAgICAgICAgICAgbG9naWMgY29tcG9uZW50IGFuZCBzdG9yZWQgYXMgYW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+CisgICAgICAgICAgICAgICAgb2JqZWN0LCA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCwgYSBTdHJpbmcsCisgICAgICAgICAgICAgICAgb3IgYSBTdHJpbmcgYXJyYXkgaW4gYW55IHNjb3BlLiAgSWYKKyAgICAgICAgICAgICAgICBzdWNoIGEgYmVhbiBpcyBub3QgZm91bmQsIG5vdGhpbmcgd2lsbCBiZSByZW5kZXJlZC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5JbiBvcmRlciB0byB1c2UgdGhpcyB0YWcgc3VjY2Vzc2Z1bGx5LCB5b3UgbXVzdCBoYXZlCisgICAgICAgICAgICAgICAgZGVmaW5lZCBhbiBhcHBsaWNhdGlvbiBzY29wZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPgorICAgICAgICAgICAgICAgIGJlYW4gdW5kZXIgdGhlIGRlZmF1bHQgYXR0cmlidXRlIG5hbWUuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5pZDwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIFRoZSBuYW1lIG9mIGEgcGFnZSBzY29wZSBKU1AgYmVhbiB0aGF0IHdpbGwgY29udGFpbiB0aGUgY3VycmVudAorICAgICAgICAgICAgICAgICAgZWxlbWVudCBvZiB0aGUgY29sbGVjdGlvbiBvZiBtZXNzYWdlcyBvbiBlYWNoIGl0ZXJhdGlvbiwgaWYgaXQgaXMgbm90CisgICAgICAgICAgICAgICAgICA8Y29kZT5udWxsPC9jb2RlPi4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgPG5hbWU+bG9jYWxlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgICBUaGUgc2Vzc2lvbiBhdHRyaWJ1dGUga2V5IGZvciB0aGUgTG9jYWxlIHVzZWQgdG8gc2VsZWN0CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzIHRvIGJlIGRpc3BsYXllZC4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvCisgICAgICAgICAgICAgICAgICAgIHRoZSBTdHJ1dHMgc3RhbmRhcmQgdmFsdWUuCisgICAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgYmVhbiBpbiBhbnkgc2NvcGUgdW5kZXIgd2hpY2ggb3VyIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHkgZm9yIHdoaWNoIG1lc3NhZ2VzIHNob3VsZCBiZQorICAgICAgICAgICAgICAgICAgZGlzcGxheWVkLiAgSWYgbm90IHNwZWNpZmllZCwgYWxsIG1lc3NhZ2VzIChyZWdhcmRsZXNzCisgICAgICAgICAgICAgICAgICBvZiBwcm9wZXJ0eSkgYXJlIGRpc3BsYXllZC4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5oZWFkZXI8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICBUaGlzIHZhbHVlIGlzIGFuIG9wdGlvbmFsIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IHRoYXQgd2lsbAorICAgICAgICAgICAgICAgICAgYmUgcHJpbnRlZCBiZWZvcmUgdGhlIGl0ZXJhdGlvbiBvZiBtZXNzYWdlcyBiZWdpbnMuCisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+Zm9vdGVyPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgVGhpcyB2YWx1ZSBpcyBhbiBvcHRpb25hbCBtZXNzYWdlIHJlc291cmNlIGtleSB0aGF0IHdpbGwKKyAgICAgICAgICAgICAgICAgIGJlIHByaW50ZWQgYWZ0ZXIgdGhlIGl0ZXJhdGlvbiBvZiBtZXNzYWdlcyBoYXMgZmluaXNoZWQuCisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+bWVzc2FnZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIEJ5IGRlZmF1bHQgdGhlIHRhZyB3aWxsIHJldHJpZXZlIHRoZSBiZWFuIGl0IHdpbGwKKyAgICAgICAgICAgICAgICAgIGl0ZXJhdGUgb3ZlciBmcm9tIHRoZSA8Y29kZT5HbG9iYWxzLkVSUk9SX0tFWTwvY29kZT4gY29uc3RhbnQgc3RyaW5nLAorICAgICAgICAgICAgICAgICAgYnV0IGlmIHRoaXMgYXR0cmlidXRlIGlzIHNldCB0byAndHJ1ZScgdGhlIGJlYW4KKyAgICAgICAgICAgICAgICAgIHdpbGwgYmUgcmV0cmlldmVkIGZyb20gdGhlIDxjb2RlPkdsb2JhbHMuTUVTU0FHRV9LRVk8L2NvZGU+CisgICAgICAgICAgICAgICAgICBjb25zdGFudCBzdHJpbmcuICBBbHNvIGlmIHRoaXMgaXMgc2V0IHRvICd0cnVlJywgYW55IHZhbHVlCisgICAgICAgICAgICAgICAgICBhc3NpZ25lZCB0byB0aGUgbmFtZSBhdHRyaWJ1dGUgd2lsbCBiZSBpZ25vcmVkLgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDwvdGFnPgorCisKKyAgICA8dGFnPgorCisgICAgICAgIDxuYW1lPm11bHRpYm94PC9uYW1lPgorICAgICAgICA8c3VtbWFyeT4KKyAgICAgICAgICAgIFJlbmRlciBBIENoZWNrYm94IElucHV0IEZpZWxkCisgICAgICAgIDwvc3VtbWFyeT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk11bHRpYm94VGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICAgICAgICA8cD5SZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPmNoZWNrYm94PC9jb2RlPiwgd2hvc2UgImNoZWNrZWQiIHN0YXR1cyBpcworICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZWQgYmFzZWQgb24gd2hldGhlciB0aGUgc3BlY2lmaWVkIHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVzIG9uZSBvZiB0aGUgZWxlbWVudHMgb2YgdGhlIHVuZGVybHlpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5J3MgYXJyYXkgb2YgY3VycmVudCB2YWx1ZXMuIFRoaXMgZWxlbWVudCBpcworICAgICAgICAgICAgICAgICAgICAgICAgdXNlZnVsIHdoZW4geW91IGhhdmUgbGFyZ2UgbnVtYmVycyBvZiBjaGVja2JveGVzLCBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZWZlciB0byBjb21iaW5lIHRoZSB2YWx1ZXMgaW50byBhIHNpbmdsZQorICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXktdmFsdWVkIHByb3BlcnR5IGluc3RlYWQgb2YgbXVsdGlwbGUgYm9vbGVhbgorICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcy4gIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbiBuZXN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuPC9wPgorCisgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldBUk5JTkc8L3N0cm9uZz46ICBJbiBvcmRlciB0byBjb3JyZWN0bHkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY29nbml6ZSBjYXNlcyB3aGVyZSBub25lIG9mIHRoZSBhc3NvY2lhdGVkIGNoZWNrYm94ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBzZWxlY3RlZCwgdGhlIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZvcm0gbXVzdCBpbmNsdWRlIGEgc3RhdGVtZW50CisgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nIHRoZSBjb3JyZXNwb25kaW5nIGFycmF5IHRvIHplcm8gbGVuZ3RoIGluIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+cmVzZXQoKTwvY29kZT4gbWV0aG9kLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPlRoZSB2YWx1ZSB0byBiZSByZXR1cm5lZCB0byB0aGUgc2VydmVyLCBpZiB0aGlzIGNoZWNrYm94IGlzCisgICAgICAgICAgICAgICAgc2VsZWN0ZWQsIG11c3QgYmUgZGVmaW5lZCBieSBvbmUgb2YgdGhlIGZvbGxvd2luZyBtZXRob2RzOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPlNwZWNpZnkgYSA8Y29kZT52YWx1ZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSBjb250ZW50cyB3aWxsCisgICAgICAgICAgICAgICAgYmUgdXNlZCBsaXRlcmFsbHkgYXMgdGhlIHZhbHVlIHRvIGJlIHJldHVybmVkLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPlNwZWNpZnkgbm8gPGNvZGU+dmFsdWU8L2NvZGU+IGF0dHJpYnV0ZSwgYW5kIHRoZSBuZXN0ZWQKKyAgICAgICAgICAgICAgICBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgd2lsbCBiZSB1c2VkIGFzIHRoZSB2YWx1ZSB0byBiZQorICAgICAgICAgICAgICAgIHJldHVybmVkLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICA8L2luZm8+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgPGluZm8+CisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkIHdoZW4KKyAgICAgICAgICAgICAgICByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBpbnB1dCBmaWVsZC4gSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFnIHdlIGFyZSBuZXN0ZWQgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoaXMKKyAgICAgICAgICAgICAgICBzdWJtaXNzaW9uLCBzZXQgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIGJlIHRyYW5zbWl0dGVkIGlmIHRoaXMgY2hlY2tib3ggaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorCisKKyAgICA8dGFnPgorCisgICAgICAgIDxuYW1lPm9wdGlvbjwvbmFtZT4KKyAgICAgICAgPHN1bW1hcnk+CisgICAgICAgICAgICAgICAgUmVuZGVyIEEgU2VsZWN0IE9wdGlvbgorICAgICAgICA8L3N1bW1hcnk+CisgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25UYWc8L3RhZ2NsYXNzPgorICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5SZW5kZXIgYW4gSFRNTCA8Y29kZT4mbHQ7b3B0aW9uJmd0OzwvY29kZT4gZWxlbWVudCwKKyAgICAgICAgICAgICAgICByZXByZXNlbnRpbmcgb25lIG9mIHRoZSBjaG9pY2VzIGZvciBhbiBlbmNsb3NpbmcKKyAgICAgICAgICAgICAgICA8Y29kZT4mbHQ7c2VsZWN0Jmd0OzwvY29kZT4gZWxlbWVudC4gIFRoZSB0ZXh0IGRpc3BsYXllZCB0byB0aGUKKyAgICAgICAgICAgICAgICB1c2VyIGNvbWVzIGZyb20gZWl0aGVyIHRoZSBib2R5IG9mIHRoaXMgdGFnLCBvciBmcm9tIGEgbWVzc2FnZQorICAgICAgICAgICAgICAgIHN0cmluZyBsb29rZWQgdXAgYmFzZWQgb24gdGhlIDxjb2RlPmJ1bmRsZTwvY29kZT4sCisgICAgICAgICAgICAgICAgPGNvZGU+bG9jYWxlPC9jb2RlPiwgYW5kIDxjb2RlPmtleTwvY29kZT4gYXR0cmlidXRlcy48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5JZiB0aGUgdmFsdWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eSBtYXRjaGVzIHRoZQorICAgICAgICAgICAgICAgIHNwZWNpZmllZCB2YWx1ZSwgdGhpcyBvcHRpb24gd2lsbCBiZSBtYXJrZWQgc2VsZWN0ZWQuICBUaGlzIHRhZworICAgICAgICAgICAgICAgIGlzIG9ubHkgdmFsaWQgd2hlbiBuZXN0ZWQgaW5zaWRlIGEKKyAgICAgICAgICAgICAgICA8Y29kZT4mbHQ7aHRtbDpzZWxlY3QmZ3Q7PC9jb2RlPiB0YWcgYm9keS48L3A+CisgICAgICAgIDwvaW5mbz4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgIDxpbmZvPgorICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIG9wdGlvbiBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgPG5hbWU+a2V5PC9uYW1lPgorICAgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgICBJZiBzcGVjaWZpZWQsIGRlZmluZXMgdGhlIG1lc3NhZ2Uga2V5IHRvIGJlIGxvb2tlZCB1cCBpbgorICAgICAgICAgICAgICAgICAgICB0aGUgcmVzb3VyY2UgYnVuZGxlIHNwZWNpZmllZCBieSA8Y29kZT5idW5kbGU8L2NvZGU+IGZvcgorICAgICAgICAgICAgICAgICAgICB0aGUgdGV4dCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgZm9yIHRoaXMgb3B0aW9uLiAgSWYgbm90CisgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllZCwgdGhlIHRleHQgdG8gYmUgZGlzcGxheWVkIGlzIHRha2VuIGZyb20gdGhlIGJvZHkKKyAgICAgICAgICAgICAgICAgICAgY29udGVudCBvZiB0aGlzIHRhZy4KKyAgICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgICAgPG5hbWU+bG9jYWxlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgICBUaGUgc2Vzc2lvbiBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIExvY2FsZSBpbnN0YW5jZSB0byB1c2UKKyAgICAgICAgICAgICAgICAgICAgZm9yIGxvb2tpbmcgdXAgdGhlIG1lc3NhZ2Ugc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5rZXk8L2NvZGU+IGF0dHJpYnV0ZS4gIElmIG5vdCBzcGVjaWZpZWQsIHVzZXMgdGhlCisgICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkIFN0cnV0cyBzZXNzaW9uIGF0dHJpYnV0ZSBuYW1lLgorICAgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgICBWYWx1ZSB0byBiZSBzdWJtaXR0ZWQgZm9yIHRoaXMgZmllbGQgaWYgdGhpcyBvcHRpb24gaXMKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuCisgICAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8L3RhZz4KKworCisgICAgPHRhZz4KKworICAgICAgICA8bmFtZT5vcHRpb25zPC9uYW1lPgorICAgICAgICA8c3VtbWFyeT4KKyAgICAgICAgICAgIFJlbmRlciBhIENvbGxlY3Rpb24gb2YgU2VsZWN0IE9wdGlvbnMKKyAgICAgICAgPC9zdW1tYXJ5PgorICAgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uc1RhZzwvdGFnY2xhc3M+CisgICAgICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlJlbmRlcnMgYSBzZXQgb2YgSFRNTCA8Y29kZT4mbHQ7b3B0aW9uJmd0OzwvY29kZT4gZWxlbWVudHMsCisgICAgICAgICAgICAgICAgcmVwcmVzZW50aW5nIHBvc3NpYmxlIGNob2ljZXMgZm9yIGEgPGNvZGU+Jmx0O3NlbGVjdCZndDs8L2NvZGU+CisgICAgICAgICAgICAgICAgZWxlbWVudC4gIFRoaXMgdGFnIGNhbiBiZSB1c2VkIG11bHRpcGxlIHRpbWVzIHdpdGhpbiBhIHNpbmdsZQorICAgICAgICAgICAgICAgIDxjb2RlPiZsdDtodG1sOnNlbGVjdCZndDs8L2NvZGU+IGVsZW1lbnQsIGVpdGhlciBpbiBjb25qdW5jdGlvbgorICAgICAgICAgICAgICAgIHdpdGggb3IgaW5zdGVhZCBvZiBvbmUgb3IgbW9yZSA8Y29kZT4mbHQ7aHRtbDpvcHRpb24mZ3Q7PC9jb2RlPgorICAgICAgICAgICAgICAgIG9yIDxjb2RlPiZsdDtodG1sOm9wdGlvbnNDb2xsZWN0aW9uJmd0OzwvY29kZT4gZWxlbWVudHMuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+VGhpcyB0YWcgb3BlcmF0ZXMgaW4gb25lIG9mIHR3byBtYWpvciBtb2RlcywgZGVwZW5kaW5nIG9uCisgICAgICAgICAgICAgICAgd2hldGhlciBvciBub3QgdGhlIDxjb2RlPmNvbGxlY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSBpcworICAgICAgICAgICAgICAgIHNwZWNpZmllZC4gIElmIHRoZSA8Y29kZT5jb2xsZWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUgaXMKKyAgICAgICAgICAgICAgICBpbmNsdWRlZCwgdGhlIGZvbGxvd2luZyBydWxlcyBhcHBseTo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT5UaGUgPHN0cm9uZz5jb2xsZWN0aW9uPC9zdHJvbmc+IGF0dHJpYnV0ZSBpcyBpbnRlcnByZXRlZAorICAgICAgICAgICAgICAgICAgICBhcyB0aGUgbmFtZSBvZiBhIEpTUCBiZWFuLCBpbiBzb21lIHNjb3BlLCB0aGF0IGl0c2VsZgorICAgICAgICAgICAgICAgICAgICByZXByZXNlbnRzIGEgY29sbGVjdGlvbiBvZiBpbmRpdmlkdWFsIGJlYW5zLCBvbmUgcGVyIG9wdGlvbgorICAgICAgICAgICAgICAgICAgICB2YWx1ZSB0byBiZSByZW5kZXJlZC48L2xpPgorICAgICAgICAgICAgICAgIDxsaT5UaGUgPHN0cm9uZz5wcm9wZXJ0eTwvc3Ryb25nPiBhdHRyaWJ1dGUgaXMgaW50ZXJwcmV0ZWQgYXMKKyAgICAgICAgICAgICAgICAgICAgdGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgaW5kaXZpZHVhbCBiZWFucyBpbmNsdWRlZCBpbgorICAgICAgICAgICAgICAgICAgICB0aGUgY29sbGVjdGlvbiwgYW5kIGlzIHVzZWQgdG8gcmV0cmlldmUgdGhlIHZhbHVlIHRoYXQgd2lsbAorICAgICAgICAgICAgICAgICAgICBiZSByZXR1cm5lZCB0byB0aGUgc2VydmVyIGlmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPlRoZSA8c3Ryb25nPmxhYmVsUHJvcGVydHk8L3N0cm9uZz4gYXR0cmlidXRlIGlzIGludGVycHJldGVkCisgICAgICAgICAgICAgICAgICAgIGFzIHRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGluZGl2aWR1YWwgYmVhbnMgaW5jbHVkZWQKKyAgICAgICAgICAgICAgICAgICAgaW4gdGhlIGNvbGxlY3Rpb24sIGFuZCBpcyB1c2VkIHRvIHJldHJpZXZlIHRoZSBsYWJlbCB0aGF0CisgICAgICAgICAgICAgICAgICAgIHdpbGwgYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGlzIG9wdGlvbi4gIElmIHRoZQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5sYWJlbFByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlCisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5IG5hbWVkIGJ5IHRoZSA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlIHdpbGwKKyAgICAgICAgICAgICAgICAgICAgYmUgdXNlZCB0byBzZWxlY3QgYm90aCB0aGUgdmFsdWUgcmV0dXJuZWQgdG8gdGhlIHNlcnZlciBhbmQKKyAgICAgICAgICAgICAgICAgICAgdGhlIGxhYmVsIGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgdGhpcyBvcHRpb24uPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgPHA+SWYgdGhlIDxjb2RlPmNvbGxlY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgIHRoZSBydWxlcyBkZXNjcmliZWQgaW4gdGhlIHJlbWFpbmRlciBvZiB0aGlzIHNlY3Rpb24gYXBwbHkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+VGhlIGNvbGxlY3Rpb24gb2YgdmFsdWVzIGFjdHVhbGx5IHNlbGVjdGVkIGRlcGVuZHMgb24gdGhlIHByZXNlbmNlIG9yCisgICAgICAgICAgICAgICAgYWJzZW5jZSBvZiB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYW5kIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzLiAgVGhlCisgICAgICAgICAgICAgICAgZm9sbG93aW5nIGNvbWJpbmF0aW9ucyBhcmUgYWxsb3dlZDo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+T25seSA8Y29kZT5uYW1lPC9jb2RlPiBpcyBzcGVjaWZpZWQ8L2VtPiAtIFRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZQorICAgICAgICAgICAgICAgICAgICBpcyB0aGUgbmFtZSBvZiBhIEpTUCBiZWFuIGluIHNvbWUgc2NvcGUgdGhhdCBpcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbi48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+T25seSA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkPC9lbT4gLSBUaGUgdmFsdWUgb2YgdGhpcworICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaXMgdGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgQWN0aW9uRm9ybSBiZWFuIGFzc29jaWF0ZWQKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBvdXIgZm9ybSwgd2hpY2ggd2lsbCByZXR1cm4gdGhlIGNvbGxlY3Rpb24uPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPkJvdGggPGNvZGU+bmFtZTwvY29kZT4gYW5kIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhcmUgc3BlY2lmaWVkPC9lbT4gLQorICAgICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgb2YgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBpZGVudGlmaWVzIGEgSlNQIGJlYW4KKyAgICAgICAgICAgICAgICAgICAgaW4gc29tZSBzY29wZS4gIFRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZSBpcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBzb21lIHByb3BlcnR5IG9mIHRoYXQgYmVhbiB3aGljaCB3aWxsIHJldHVybiB0aGUgY29sbGVjdGlvbi48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgICA8cD5UaGUgY29sbGVjdGlvbiBvZiBsYWJlbHMgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGNhbiBiZSB0aGUgc2FtZSBhcyB0aGUKKyAgICAgICAgICAgICAgICBvcHRpb24gdmFsdWVzIHRoZW1zZWx2ZXMsIG9yIGNhbiBiZSBkaWZmZXJlbnQsIGRlcGVuZGluZyBvbiB0aGUgcHJlc2VuY2Ugb3IKKyAgICAgICAgICAgICAgICBhYnNlbmNlIG9mIHRoZSA8Y29kZT5sYWJlbE5hbWU8L2NvZGU+IGFuZCA8Y29kZT5sYWJlbFByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMuICBJZiB0aGlzIGZlYXR1cmUgaXMgdXNlZCwgdGhlIGNvbGxlY3Rpb24gb2YgbGFiZWxzIG11c3QgY29udGFpbgorICAgICAgICAgICAgICAgIHRoZSBzYW1lIG51bWJlciBvZiBlbGVtZW50cyBhcyB0aGUgY29ycmVzcG9uZGluZyBjb2xsZWN0aW9uIG9mIHZhbHVlcy4KKyAgICAgICAgICAgICAgICBUaGUgZm9sbG93aW5nIGNvbWJpbmF0aW9ucyBhcmUgYWxsb3dlZDo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+TmVpdGhlciA8Y29kZT5sYWJlbE5hbWU8L2NvZGU+IG5vciA8Y29kZT5sYWJlbFByb3BlcnR5PC9jb2RlPiBpcworICAgICAgICAgICAgICAgICAgICBzcGVjaWZpZWQ8L2VtPiAtIFRoZSBsYWJlbHMgd2lsbCBiZSB0aGUgc2FtZSBhcyB0aGUgb3B0aW9uIHZhbHVlcworICAgICAgICAgICAgICAgICAgICB0aGVtc2VsdmVzLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5Pbmx5IDxjb2RlPmxhYmVsTmFtZTwvY29kZT4gaXMgc3BlY2lmaWVkPC9lbT4gLSBUaGUgdmFsdWUgb2YgdGhpcworICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaXMgdGhlIG5hbWUgb2YgYSBKU1AgYmVhbiBpbiBzb21lIHNjb3BlIHRoYXQgaXMgdGhlCisgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24uPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPk9ubHkgPGNvZGU+bGFiZWxQcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkPC9lbT4gLSBUaGUgdmFsdWUgb2YgdGhpcworICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaXMgdGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgQWN0aW9uRm9ybSBiZWFuIGFzc29jaWF0ZWQKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBvdXIgZm9ybSwgd2hpY2ggd2lsbCByZXR1cm4gdGhlIGNvbGxlY3Rpb24uPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPkJvdGggPGNvZGU+bGFiZWxOYW1lPC9jb2RlPiBhbmQgPGNvZGU+bGFiZWxQcm9wZXJ0eTwvY29kZT4gYXJlCisgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllZDwvZW0+IC0gVGhlIHZhbHVlIG9mIHRoZSA8Y29kZT5sYWJlbE5hbWU8L2NvZGU+IGF0dHJpYnV0ZQorICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVzIGEgSlNQIGJlYW4gaW4gc29tZSBzY29wZS4gIFRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+bGFiZWxQcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlIGlzIHRoZSBuYW1lIG9mIHNvbWUgcHJvcGVydHkgb2YKKyAgICAgICAgICAgICAgICAgICAgdGhhdCBiZWFuIHdoaWNoIHdpbGwgcmV0dXJuIHRoZSBjb2xsZWN0aW9uLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworCisgICAgICAgICAgICA8cD5Ob3RlIHRoYXQgdGhpcyB0YWcgZG9lcyBub3Qgc3VwcG9ydCBhIDxjb2RlPnN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICBhdHRyaWJ1dGUsIGFzIGl0IHdvdWxkIGhhdmUgdG8gYXBwbHkgdGhlIHZhbHVlIHRvIGFsbCB0aGUKKyAgICAgICAgICAgIDxjb2RlPm9wdGlvbjwvY29kZT4gZWxlbWVudHMgY3JlYXRlZCBieSB0aGlzIGVsZW1lbnQsIHdoaWNoIHdvdWxkCisgICAgICAgICAgICBtZWFuIHRoYXQgbW9yZSB0aGFuIG9uZSA8Y29kZT5pZDwvY29kZT4gZWxlbWVudCBtaWdodCBoYXZlIHRoZSBzYW1lCisgICAgICAgICAgICB2YWx1ZSwgd2hpY2ggdGhlIEhUTUwgc3BlY2lmaWNhdGlvbiBzYXlzIGlzIGlsbGVnYWwuPC9wPgorCisgICAgICAgIDwvaW5mbz4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8bmFtZT5jb2xsZWN0aW9uPC9uYW1lPgorICAgICAgICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgSlNQIGJlYW4gKGluIHNvbWUgc2NvcGUpIHdoaWNoIGlzIGl0c2VsZiBhCisgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aW9uIG9mIG90aGVyIGJlYW5zLCBlYWNoIG9mIHdoaWNoIGhhcyBwcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lZCBieSB0aGUgInByb3BlcnR5IiBhbmQgImxhYmVsUHJvcGVydHkiIGF0dHJpYnV0ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgYXJlIHVzZWQgdG8gcmV0cmlldmUgdGhlIHZhbHVlIGFuZCBsYWJlbCBmb3IgZWFjaAorICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLCByZXNwZWN0aXZlbHkuCisgICAgICAgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZpbHRlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBTZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIHlvdSBkbyBOT1Qgd2FudCB0aGUgb3B0aW9uIGxhYmVscworICAgICAgICAgICAgICAgIGZpbHRlcmVkIGZvciBzZW5zaXRpdmUgY2hhcmFjdGVycyBpbiBIVE1MLiAgQnkgZGVmYXVsdCwgc3VjaAorICAgICAgICAgICAgICAgIHZhbHVlcyBhcmUgZmlsdGVyZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sYWJlbE5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgSlNQIGJlYW4gKGluIHNvbWUgc2NvcGUpIGNvbnRhaW5pbmcgdGhlIGNvbGxlY3Rpb24gb2YgbGFiZWxzIHRvCisgICAgICAgICAgICAgICAgYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGVzZSBvcHRpb25zLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bGFiZWxQcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBQcm9wZXJ0eSBvZiB0aGUgZm9ybSBiZWFuLCBvciB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIGxhYmVsTmFtZQorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgdGhhdCB3aWxsIHJldHVybiB0aGUgY29sbGVjdGlvbiBvZiBsYWJlbHMgdG8gYmUgZGlzcGxheWVkCisgICAgICAgICAgICAgICAgdG8gdGhlIHVzZXIgZm9yIHRoZXNlIG9wdGlvbnMuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIEpTUCBiZWFuIChpbiBzb21lIHNjb3BlKSBjb250YWluaW5nIHRoZSBjb2xsZWN0aW9uIG9mCisgICAgICAgICAgICAgICAgdmFsdWVzIHRvIGJlIHJldHVybmVkIHRvIHRoZSBzZXJ2ZXIgZm9yIHRoZXNlIG9wdGlvbnMuIElmIG5vdAorICAgICAgICAgICAgICAgIHNwZWNpZmllZCwgdGhlIGZvcm0gYmVhbiBhc3NvY2lhdGVkIHdpdGggb3VyIGZvcm0gaXMgYXNzdW1lZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFByb3BlcnR5IG9mIHRoZSBmb3JtIGJlYW4sIG9yIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZQorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgdGhhdCB3aWxsIHJldHVybiB0aGUgY29sbGVjdGlvbiBvZiB2YWx1ZXMgdG8gcmV0dXJuZWQKKyAgICAgICAgICAgICAgICB0byB0aGUgc2VydmVyIGZvciB0aGVzZSBvcHRpb25zLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorCisgICAgPHRhZz4KKworICAgICAgICA8bmFtZT5vcHRpb25zQ29sbGVjdGlvbjwvbmFtZT4KKyAgICAgICAgPHN1bW1hcnk+CisgICAgICAgICAgICBSZW5kZXIgYSBDb2xsZWN0aW9uIG9mIFNlbGVjdCBPcHRpb25zCisgICAgICAgIDwvc3VtbWFyeT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvbnNDb2xsZWN0aW9uVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGJvZHljb250ZW50PmVtcHR5PC9ib2R5Y29udGVudD4KKyAgICAgICAgPGluZm8+CisgICAgICAgICAgICA8cD5SZW5kZXJzIGEgc2V0IG9mIEhUTUwgPGNvZGU+Jmx0O29wdGlvbiZndDs8L2NvZGU+IGVsZW1lbnRzLAorICAgICAgICAgICAgcmVwcmVzZW50aW5nIHBvc3NpYmxlIGNob2ljZXMgZm9yIGEgPGNvZGU+Jmx0O3NlbGVjdCZndDs8L2NvZGU+CisgICAgICAgICAgICBlbGVtZW50LiAgVGhpcyB0YWcgY2FuIGJlIHVzZWQgbXVsdGlwbGUgdGltZXMgd2l0aGluIGEgc2luZ2xlCisgICAgICAgICAgICA8Y29kZT4mbHQ7aHRtbDpzZWxlY3QmZ3Q7PC9jb2RlPiBlbGVtZW50LCBlaXRoZXIgaW4gY29uanVuY3Rpb24KKyAgICAgICAgICAgIHdpdGggb3IgaW5zdGVhZCBvZiBvbmUgb3IgbW9yZSA8Y29kZT4mbHQ7aHRtbDpvcHRpb24mZ3Q7PC9jb2RlPgorICAgICAgICAgICAgb3IgPGNvZGU+Jmx0O2h0bWw6b3B0aW9ucyZndDs8L2NvZGU+IGVsZW1lbnRzLjwvcD4KKworICAgICAgICAgICAgPHA+VGhpcyB0YWcgb3BlcmF0ZXMgb24gYSBjb2xsZWN0aW9uIG9mIGJlYW5zLCB3aGVyZSBlYWNoIGJlYW4KKyAgICAgICAgICAgIGhhcyBhIDxzdHJvbmc+bGFiZWw8L3N0cm9uZz4gcHJvcGVydHkgYW5kIGEgPHN0cm9uZz52YWx1ZTwvc3Ryb25nPgorICAgICAgICAgICAgcHJvcGVydHkuIFRoZSBhY3R1YWwgbmFtZXMgb2YgdGhlc2UgcHJvcGVydGllcyBjYW4gYmUgY29uZmlndXJlZAorICAgICAgICAgICAgdXNpbmcgdGhlIDxjb2RlPmxhYmVsPC9jb2RlPiBhbmQgPGNvZGU+dmFsdWU8L2NvZGU+IGF0dHJpYnV0ZXMKKyAgICAgICAgICAgIG9mIHRoaXMgdGFnLjwvcD4KKworICAgICAgICAgICAgPHA+VGhpcyB0YWcgZGlmZmVycyBmcm9tIHRoZSA8Y29kZT4mbHQ7aHRtbDpvcHRpb25zJmd0OzwvY29kZT4gdGFnCisgICAgICAgICAgICBpbiB0aGF0IGl0IG1ha2VzIG1vcmUgY29uc2lzdGVudCB1c2Ugb2YgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGFuZAorICAgICAgICAgICAgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMsIGFuZCBhbGxvd3MgdGhlIGNvbGxlY3Rpb24gdG8gYmUKKyAgICAgICAgICAgIG1vcmUgZWFzaWx5IG9idGFpbmVkIGZyb20gdGhlIGVuY2xvc2luZyBmb3JtIGJlYW4uPC9wPgorCisgICAgICAgICAgICA8cD5Ob3RlIHRoYXQgdGhpcyB0YWcgZG9lcyBub3Qgc3VwcG9ydCBhIDxjb2RlPnN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICBhdHRyaWJ1dGUsIGFzIGl0IHdvdWxkIGhhdmUgdG8gYXBwbHkgdGhlIHZhbHVlIHRvIGFsbCB0aGUKKyAgICAgICAgICAgIDxjb2RlPm9wdGlvbjwvY29kZT4gZWxlbWVudHMgY3JlYXRlZCBieSB0aGlzIGVsZW1lbnQsIHdoaWNoIHdvdWxkCisgICAgICAgICAgICBtZWFuIHRoYXQgbW9yZSB0aGFuIG9uZSA8Y29kZT5pZDwvY29kZT4gZWxlbWVudCBtaWdodCBoYXZlIHRoZSBzYW1lCisgICAgICAgICAgICB2YWx1ZSwgd2hpY2ggdGhlIEhUTUwgc3BlY2lmaWNhdGlvbiBzYXlzIGlzIGlsbGVnYWwuPC9wPgorICAgICAgICA8L2luZm8+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZpbHRlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBTZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIHlvdSBkbyBOT1Qgd2FudCB0aGUgb3B0aW9uIGxhYmVscworICAgICAgICAgICAgICAgIGZpbHRlcmVkIGZvciBzZW5zaXRpdmUgY2hhcmFjdGVycyBpbiBIVE1MLiAgQnkgZGVmYXVsdCwgc3VjaAorICAgICAgICAgICAgICAgIHZhbHVlcyBhcmUgZmlsdGVyZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sYWJlbDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgcHJvcGVydHkgb2YgdGhlIGJlYW4gd2l0aGluIHRoZSBjb2xsZWN0aW9uIHdoaWNoIHJlcHJlc2VudHMKKyAgICAgICAgICAgICAgICB0aGUgbGFiZWwgdG8gYmUgcmVuZGVyZWQgZm9yIGVhY2ggb3B0aW9uLiBEZWZhdWx0cyB0byAibGFiZWwiLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkCisgICAgICAgICAgICAgICAgd2hlbiByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBpbnB1dCBmaWVsZC4gSWYgbm90CisgICAgICAgICAgICAgICAgc3BlY2lmaWVkLCB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFnIHdlIGFyZSBuZXN0ZWQKKyAgICAgICAgICAgICAgICB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgcHJvcGVydHkgb2YgdGhlIGZvcm0gYmVhbiwgb3IgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lCisgICAgICAgICAgICAgICAgYXR0cmlidXRlLCB0aGF0IHdpbGwgcmV0dXJuIHRoZSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgdG8gYmUKKyAgICAgICAgICAgICAgICByZW5kZXJlZCBmb3IgdGhlc2Ugb3B0aW9ucy4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIHByb3BlcnR5IG9mIHRoZSBiZWFuIHdpdGhpbiB0aGUgY29sbGVjdGlvbiB3aGljaCByZXByZXNlbnRzCisgICAgICAgICAgICAgICAgdGhlIHZhbHVlIHRvIGJlIHJlbmRlcmVkIGZvciBlYWNoIG9wdGlvbi4gRGVmYXVsdHMgdG8gInZhbHVlIi4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisKKyAgICA8dGFnPgorCisgICAgICAgIDxuYW1lPnBhc3N3b3JkPC9uYW1lPgorICAgICAgICA8c3VtbWFyeT4KKyAgICAgICAgICAgIFJlbmRlciBBIFBhc3N3b3JkIElucHV0IEZpZWxkCisgICAgICAgIDwvc3VtbWFyeT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlBhc3N3b3JkVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGluZm8+CisgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUgcGFzc3dvcmQsIHBvcHVsYXRlZAorICAgICAgICAgICAgZnJvbSB0aGUgc3BlY2lmaWVkIHZhbHVlIG9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlIGJlYW4KKyAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCBvdXIgY3VycmVudCBmb3JtLiBUaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4KKyAgICAgICAgICAgIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LgorICAgICAgICA8L2luZm8+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgPGluZm8+CisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tYXhsZW5ndGg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgTWF4aW11bSBudW1iZXIgb2YgaW5wdXQgY2hhcmFjdGVycyB0byBhY2NlcHQuIFtObyBsaW1pdF0KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZCB3aGVuCisgICAgICAgICAgICAgICAgcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgPG5hbWU+cmVhZG9ubHk8L25hbWU+CisgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgPGluZm8+CisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgcmVhZCBvbmx5LgorICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgICAgICAgPG5hbWU+cmVkaXNwbGF5PC9uYW1lPgorICAgICAgICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgICAgICAgQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgZXhpc3RpbmcgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgICAgICB3aWxsIGJlIHJlZGlzcGxheWVkIGlmIHRoZXkgZXhpc3QuICBFdmVuIHRob3VnaCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlzcGxheWVkIHZhbHVlIHdpbGwgYmUgc2hvd24gYXMgYXN0ZXJpc2tzIG9uIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZSBIVE1MIHBhZ2UsIHRoZSBjbGVhcnRleHQgb2YgdGhlIGFjdHVhbCBwYXNzd29yZAorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgd2lsbCBiZSB2aXNpYmxlIHRob3VnaCB0aGUgIlNob3cgUGFnZSBTb3VyY2UiCisgICAgICAgICAgICAgICAgICAgICAgICBtZW51IG9wdGlvbiBvZiB0aGUgY2xpZW50IGJyb3dzZXIuICBZb3UgbWF5IHdpc2ggdG8KKyAgICAgICAgICAgICAgICAgICAgICAgIHNldCB0aGlzIHZhbHVlIHRvIDxjb2RlPmZhbHNlPC9jb2RlPiBvbiBsb2dpbiBwYWdlcy4KKyAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIDxjb2RlPnRydWU8L2NvZGU+IGZvciBjb25zaXN0ZW5jeSB3aXRoCisgICAgICAgICAgICAgICAgICAgICAgICBhbGwgb3RoZXIgZm9ybSB0YWdzIHRoYXQgcmVkaXNwbGF5IHRoZWlyIGNvbnRlbnRzLgorICAgICAgICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNpemU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgTnVtYmVyIG9mIGNoYXJhY3RlciBwb3NpdGlvbnMgdG8gYWxsb2NhdGUuIFtCcm93c2VyIGRlZmF1bHRdCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVmFsdWUgb2YgdGhlIGxhYmVsIHRvIGJlIHBsYWNlZCBvbiB0aGlzIGJ1dHRvbi4gVGhpcyB2YWx1ZSB3aWxsCisgICAgICAgICAgICAgICAgYWxzbyBiZSBzdWJtaXR0ZWQgYXMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXJhbWV0ZXIuCisgICAgICAgICAgICAgICAgW0JvZHkgb2YgdGhpcyB0YWcgKGlmIGFueSldCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorCisKKyAgICA8dGFnPgorCisgICAgICAgIDxuYW1lPnJhZGlvPC9uYW1lPgorICAgICAgICA8c3VtbWFyeT4KKyAgICAgICAgICAgIFJlbmRlciBBIFJhZGlvIEJ1dHRvbiBJbnB1dCBGaWVsZAorICAgICAgICA8L3N1bW1hcnk+CisgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SYWRpb1RhZzwvdGFnY2xhc3M+CisgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUgcmFkaW8sIHBvcHVsYXRlZCBmcm9tCisgICAgICAgICAgICB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCBvdXIgY3VycmVudCBmb3JtLgorICAgICAgICAgICAgVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICBJZiBhbiBpdGVyYXRvciBpcyB1c2VkIHRvIHJlbmRlciBhIHNlcmllcyBvZiByYWRpbyB0YWdzLCB0aGUKKyAgICAgICAgICAgIGlkTmFtZSBhdHRyaWJ1dGUgbWF5IGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgYmVhbgorICAgICAgICAgICAgZXhwb3NlZCBieSB0aGUgaXRlcmF0b3IuIEluIHRoaXMgY2FzZSwgdGhlIHZhbHVlIGF0dHJpYnV0ZSBpcworICAgICAgICAgICAgdXNlZCBhcyB0aGUgbmFtZSBvZiBhIHByb3BlcnR5IG9uIHRoZSBpZE5hbWUgYmVhbiB0aGF0IHJldHVybnMKKyAgICAgICAgICAgIHRoZSB2YWx1ZSBvZiB0aGUgcmFkaW8gdGFnIGluIHRoaXMgaXRlcmF0aW9uLgorICAgICAgICAgICAgPC9wPgorICAgICAgICA8L2luZm8+CisKKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJpZFszNF0ucHJvcGVydHlOYW1lIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgZm9yIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZCB3aGVuCisgICAgICAgICAgICAgICAgcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eSBmb3IgdGhpcyByYWRpbyB0YWcuCisgICAgICAgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBvZiB0aGUgcmFkaW8gdGFnLgorICAgICAgICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pZE5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+TmFtZSBvZiB0aGUgYmVhbiAoaW4gc29tZSBzY29wZSkgdGhhdCB3aWxsIHJldHVybiB0aGUKKyAgICAgICAgICAgICAgICB2YWx1ZSBvZiB0aGUgcmFkaW8gdGFnLiBVc3VhbGx5IGV4cG9zZWQKKyAgICAgICAgICAgICAgICBieSBhbiBpdGVyYXRvci4gV2hlbiB0aGUgaWROYW1lIGF0dHJpYnV0ZSBpcworICAgICAgICAgICAgICAgIHByZXNlbnQsIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXMgdXNlZCBhcyB0aGUgbmFtZSBvZiB0aGUKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSBvbiB0aGUgaWROYW1lIGJlYW4gdGhhdCB3aWxsIHJldHVybiB0aGUKKyAgICAgICAgICAgICAgICB2YWx1ZSBvZiB0aGUgcmFkaW8gdGFnIGZvciB0aGlzIGl0ZXJhdGlvbi48L3A+CisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICA8c2luY2U+U3RydXRzIDEuMTwvc2luY2U+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisKKyAgICA8L3RhZz4KKworCisgICAgPHRhZz4KKworICAgICAgICA8bmFtZT5yZXNldDwvbmFtZT4KKyAgICAgICAgPHN1bW1hcnk+CisgICAgICAgICAgICBSZW5kZXIgQSBSZXNldCBCdXR0b24gSW5wdXQgRmllbGQKKyAgICAgICAgPC9zdW1tYXJ5PgorICAgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmVzZXRUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZSByZXNldC4KKyAgICAgICAgPC9pbmZvPgorCisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgPGluZm8+CisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSBpbnB1dCBmaWVsZCB0aGF0IHdpbGwgYmUgZ2VuZXJhdGVkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICBWYWx1ZSBvZiB0aGUgbGFiZWwgdG8gYmUgcGxhY2VkIG9uIHRoaXMgYnV0dG9uLgorICAgICAgICAgICAgICAgICAgICAgICAgW0JvZHkgb2YgdGhpcyB0YWcgKGlmIGFueSksIG9yICJSZXNldCJdCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgPC90YWc+CisKKworICAgICAgICA8dGFnPgorCisgICAgICAgICAgICAgICAgPG5hbWU+cmV3cml0ZTwvbmFtZT4KKyAgICAgICAgICAgICAgICA8c3VtbWFyeT5SZW5kZXIgYW4gVVJJPC9zdW1tYXJ5PgorICAgICAgICAgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SZXdyaXRlVGFnPC90YWdjbGFzcz4KKyAgICAgICAgICAgICAgICA8Ym9keWNvbnRlbnQ+ZW1wdHk8L2JvZHljb250ZW50PgorICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlJlbmRlcnMgYSByZXF1ZXN0IFVSSSBiYXNlZCBvbiBleGFjdGx5IHRoZSBzYW1lIHJ1bGVzCisgICAgICAgICAgICAgICAgYXMgdGhlIDxjb2RlPjxhIGhyZWY9IiNsaW5rIj5saW5rPC9hPjwvY29kZT4gdGFnIGRvZXMsCisgICAgICAgICAgICAgICAgYnV0IHdpdGhvdXQgY3JlYXRpbmcKKyAgICAgICAgICAgICAgICB0aGUgPGNvZGU+Jmx0O2EmZ3Q7PC9jb2RlPiBoeXBlcmxpbmsuICBUaGlzIHZhbHVlIGlzIHVzZWZ1bAorICAgICAgICAgICAgICAgIHdoZW4geW91IHdhbnQgdG8gZ2VuZXJhdGUgYSBzdHJpbmcgY29uc3RhbnQgZm9yIHVzZSBieQorICAgICAgICAgICAgICAgIGEgSmF2YVNjcmlwdCBwcm9jZWR1cmUuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKworICAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+YWN0aW9uPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+TG9naWNhbCBuYW1lIG9mIGEgPGNvZGU+QWN0aW9uPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICAgICBjb250YWlucyB0aGUgYWN0dWFsIGNvbnRlbnQtcmVsYXRpdmUgVVJJIG9mIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgICAgICAgb2YgdGhpcyB0cmFuc2Zlci4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQKKyAgICAgICAgICAgICAgICAgIGluIHRoZSB0YWcgZGVzY3JpcHRpb24uIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPgorICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5hbmNob3I8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5PcHRpb25hbCBhbmNob3IgdGFnICgiI3h4eCIpIHRvIGJlIGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICAgIGh5cGVybGluay4gIFNwZWNpZnkgdGhpcyB2YWx1ZSA8c3Ryb25nPndpdGhvdXQ8L3N0cm9uZz4gYW55CisgICAgICAgICAgICAgICAgICAiIyIgY2hhcmFjdGVyLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5mb3J3YXJkPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+TG9naWNhbCBuYW1lIG9mIGEgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRoYXQKKyAgICAgICAgICAgICAgICAgICBjb250YWlucyB0aGUgYWN0dWFsIGNvbnRlbnQtcmVsYXRpdmUgVVJJIG9mIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgICAgICAgIG9mIHRoaXMgdHJhbnNmZXIuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICAgICBtb2RpZmllZCBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZAorICAgICAgICAgICAgICAgICAgIGluIHRoZSB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+aHJlZjwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBVUkwgdG8gd2hpY2ggdGhpcyBoeXBlcmxpbmsgd2lsbCB0cmFuc2ZlciBjb250cm9sCisgICAgICAgICAgICAgICAgICAgaWYgYWN0aXZhdGVkLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5IG1vZGlmaWVkCisgICAgICAgICAgICAgICAgICAgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+CisgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgY29udGFpbnMgYSA8Y29kZT5NYXA8L2NvZGU+CisgICAgICAgICAgICAgICAgICByZXByZXNlbnRpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgICAgaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzCisgICAgICAgICAgICAgICAgICBjYWxsZWQgdG8gcmV0dXJuIGEgPGNvZGU+TWFwPC9jb2RlPiAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgICBpcyBzcGVjaWZpZWQpLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5wYWdlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIChiZWdpbm5pbmcgd2l0aCBhICIvIgorICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyKSB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAgICBpZiBhY3RpdmF0ZWQuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgZXhhY3RseQorICAgICAgICAgICAgICAgICAgIG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZSAKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+CisgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgICA8L2luZm8+ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5wYXJhbUlkPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuICBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcworICAgICAgICAgICAgICAgICAgZGVmaW5lZCBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhbmQgKG9wdGlvbmFsKQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlcywgb3B0aW9uYWxseSBzY29wZWQgYnkKKyAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBhdHRyaWJ1dGU8L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+cGFyYW1OYW1lPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGlzIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlCisgICAgICAgICAgICAgICAgICB2YWx1ZSBmb3IgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVkIGJ5IDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQCisgICAgICAgICAgICAgICAgICBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcyBjYWxsZWQgdG8gcmV0dXJuIGEgU3RyaW5nCisgICAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkKS4gIFRoZSBKU1AgYmVhbgorICAgICAgICAgICAgICAgICAgaXMgY29uc3RyYWluZWQgdG8gdGhlIGJlYW4gc2NvcGUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gcHJvcGVydHksIGlmIGl0IGlzIHNwZWNpZmllZC48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+cGFyYW1Qcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0CisgICAgICAgICAgICAgICAgICBiZSBhIFN0cmluZyBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAgIChuYW1lZCBieSB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4gYXR0cmlidXRlKSB0aGF0IHdpbGwgYmUKKyAgICAgICAgICAgICAgICAgIGR5bmFtaWNhbGx5IGFkZGVkIHRvIHRoaXMgaHlwZXJsaW5rLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5wYXJhbVNjb3BlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICAgIGFsbCBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdCBiZQorICAgICAgICAgICAgICAgICAgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCisgICAgICAgICAgICAgICAgICB0byBiZSBhZGRlZCB0byB0aGUgaHlwZXJsaW5rLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPgorICAgICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIGlmIHlvdSBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwgYWxsCisgICAgICAgICAgICAgICAgICBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT50cmFuc2FjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPklmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgYW55IGN1cnJlbnQgdHJhbnNhY3Rpb24KKyAgICAgICAgICAgICAgICAgIGNvbnRyb2wgdG9rZW4gd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluaywKKyAgICAgICAgICAgICAgICAgIHNvIHRoYXQgaXQgd2lsbCBwYXNzIGFuIDxjb2RlPmlzVG9rZW5WYWxpZCgpPC9jb2RlPiB0ZXN0CisgICAgICAgICAgICAgICAgICBpbiB0aGUgcmVjZWl2aW5nIEFjdGlvbi48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPC90YWc+CisKKworICAgIDx0YWc+CisKKyAgICAgICAgPG5hbWU+c2VsZWN0PC9uYW1lPgorICAgICAgICA8c3VtbWFyeT4KKyAgICAgICAgICAgIFJlbmRlciBBIFNlbGVjdCBFbGVtZW50CisgICAgICAgIDwvc3VtbWFyeT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlNlbGVjdFRhZzwvdGFnY2xhc3M+CisgICAgICAgIDxib2R5Y29udGVudD5KU1A8L2JvZHljb250ZW50PgorICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPlJlbmRlcnMgYW4gSFRNTCAmbHQ7c2VsZWN0Jmd0OyBlbGVtZW50LCBhc3NvY2lhdGVkCisgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIGEgYmVhbiBwcm9wZXJ0eSBzcGVjaWZpZWQgYnkgb3VyIGF0dHJpYnV0ZXMuICBUaGlzCisgICAgICAgICAgICAgICAgICAgICAgICB0YWcgaXMgb25seSB2YWxpZCB3aGVuIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LgorICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgorCisgICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGlzIHRhZyBvcGVyYXRlcyBpbiB0d28gbW9kZXMsIGRlcGVuZGluZyB1cG9uIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgb2YgdGhlIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBhdHRyaWJ1dGUsIHdoaWNoCisgICAgICAgICAgICAgICAgICAgICAgICBhZmZlY3RzIHRoZSBkYXRhIHR5cGUgb2YgdGhlIGFzc29jaWF0ZWQgcHJvcGVydHkgeW91CisgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGQgdXNlOjwvcD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48ZW0+bXVsdGlwbGU9InRydWUiIElTIE5PVCBzZWxlY3RlZDwvZW0+IC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBzaG91bGQgYmUgYSBzY2FsYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBvZiBhbnkgc3VwcG9ydGVkIGRhdGEgdHlwZS48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxlbT5tdWx0aXBsZT0idHJ1ZSIgSVMgc2VsZWN0ZWQ8L2VtPiAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgc2hvdWxkIGJlIGFuIGFycmF5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgYW55IHN1cHBvcnRlZCBkYXRhIHR5cGUuPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+V0FSTklORzwvc3Ryb25nPjogIEluIG9yZGVyIHRvIGNvcnJlY3RseQorICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXplIGNhc2VzIHdoZXJlIG5vIHNlbGVjdGlvbiBhdCBhbGwgaXMgbWFkZSwgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZvcm0KKyAgICAgICAgICAgICAgICAgICAgICAgIG11c3QgaW5jbHVkZSBhIHN0YXRlbWVudCByZXNldHRpbmcgdGhlIHNjYWxhciBwcm9wZXJ0eQorICAgICAgICAgICAgICAgICAgICAgICAgdG8gYSBkZWZhdWx0IHZhbHVlIChpZiA8Y29kZT5tdWx0aXBsZTwvY29kZT4gaXMgbm90CisgICAgICAgICAgICAgICAgICAgICAgICBzZXQpLCBvciB0aGUgYXJyYXkgcHJvcGVydHkgdG8gemVybyBsZW5ndGggKGlmCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5tdWx0aXBsZTwvY29kZT4gaXMgc2V0KSBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPnJlc2V0KCk8L2NvZGU+IG1ldGhvZC48L3A+CisgICAgICAgIDwvaW5mbz4KKworCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgIDxpbmZvPgorICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgImlkWzM0XS5wcm9wZXJ0eU5hbWUiLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8bmFtZT5tdWx0aXBsZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgc2V0IHRvIGFueSBhcmJpdHJhcnkgdmFsdWUsIHRoZSByZW5kZXJlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QgZWxlbWVudCB3aWxsIHN1cHBvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgc2VsZWN0aW9ucy4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkCisgICAgICAgICAgICAgICAgdG8gZGV0ZXJtaW5lIHdoaWNoIG9wdGlvbiBzaG91bGQgYmUgcHJlLXNlbGVjdGVkIHdoZW4gcmVuZGVyaW5nCisgICAgICAgICAgICAgICAgdGhpcyBpbnB1dCBmaWVsZC4gIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aAorICAgICAgICAgICAgICAgIHRoZSBlbmNsb3NpbmcgPGNvZGU+Jmx0O2h0bWw6Zm9ybSZndDs8L2NvZGU+IHRhZyBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNpemU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIG51bWJlciBvZiBhdmFpbGFibGUgb3B0aW9ucyBkaXNwbGF5ZWQgYXQgb25lIHRpbWUuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSB0byBjb21wYXJlIHdpdGggZm9yIG1hcmtpbmcgYW4gb3B0aW9uIHNlbGVjdGVkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKworCisgICAgPHRhZz4KKworICAgICAgICA8bmFtZT5zdWJtaXQ8L25hbWU+CisgICAgICAgIDxzdW1tYXJ5PgorICAgICAgICAgICAgUmVuZGVyIEEgU3VibWl0IEJ1dHRvbgorICAgICAgICA8L3N1bW1hcnk+CisgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TdWJtaXRUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZSA8Y29kZT5zdWJtaXQ8L2NvZGU+LgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgSWYgYSBncmFwaGljYWwgYnV0dG9uIGlzIG5lZWRlZCAoYSBidXR0b24gd2l0aCBhbiBpbWFnZSksIHRoZW4gdGhlCisgICAgICAgICAgICAgPGEgaHJlZj0iI2ltYWdlIj48Y29kZT5pbWFnZTwvY29kZT48L2E+IHRhZyBpcyBtb3JlIGFwcHJvcHJpYXRlLgorICAgICAgICAgICAgPC9wPgorICAgICAgICA8L2luZm8+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgPGluZm8+CisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4gIElmIDxjb2RlPnRydWU8L2NvZGU+CisgICAgICAgICAgICAgICAgdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgInByb3BlcnR5TmFtZVszNF0iLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yCisgICAgICAgICAgICAgICAgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisKKyAgICA8dGFnPgorCisgICAgICAgIDxuYW1lPnRleHQ8L25hbWU+CisgICAgICAgIDxzdW1tYXJ5PgorICAgICAgICAgICAgUmVuZGVyIEFuIElucHV0IEZpZWxkIG9mIFR5cGUgdGV4dAorICAgICAgICA8L3N1bW1hcnk+CisgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0VGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGluZm8+CisgICAgICAgICAgICBSZW5kZXIgYW4gaW5wdXQgYnV0dG9uIG9mIHR5cGUgdGV4dC4gIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbiBuZXN0ZWQKKyAgICAgICAgICAgICAgICBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LgorICAgICAgICA8L2luZm8+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgPGluZm8+CisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tYXhsZW5ndGg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgTWF4aW11bSBudW1iZXIgb2YgaW5wdXQgY2hhcmFjdGVycyB0byBhY2NlcHQuIFtObyBsaW1pdF0KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZAorICAgICAgICAgICAgICAgIHdoZW4gcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdAorICAgICAgICAgICAgICAgIHNwZWNpZmllZCwgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkCisgICAgICAgICAgICAgICAgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGlzIGlucHV0IGZpZWxkLCBhbmQgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgYmVhbgorICAgICAgICAgICAgICAgIHByb3BlcnR5IGlmIHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQuIFRoZSBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkKKyAgICAgICAgICAgICAgICAoaWYgYW55KSBtdXN0IGJlIG9mIHR5cGUgU3RyaW5nLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgIDxuYW1lPnJlYWRvbmx5PC9uYW1lPgorICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgIDxpbmZvPgorICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIHJlYWQgb25seS4KKyAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zaXplPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIE51bWJlciBvZiBjaGFyYWN0ZXIgcG9zaXRpb25zIHRvIGFsbG9jYXRlLiBbQnJvd3NlciBkZWZhdWx0XQorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVmFsdWUgdG8gd2hpY2ggdGhpcyBmaWVsZCBzaG91bGQgYmUgaW5pdGlhbGl6ZWQuIFtVc2UgdGhlCisgICAgICAgICAgICAgICAgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5IHZhbHVlXQorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgIDwvdGFnPgorCisKKyAgICA8dGFnPgorCisgICAgICAgIDxuYW1lPnRleHRhcmVhPC9uYW1lPgorICAgICAgICA8c3VtbWFyeT4KKyAgICAgICAgICAgIFJlbmRlciBBIFRleHRhcmVhCisgICAgICAgIDwvc3VtbWFyeT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlRleHRhcmVhVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGluZm8+CisgICAgICAgICAgICBSZW5kZXIgYSB0ZXh0YXJlYSBlbGVtZW50LiAgVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuIG5lc3RlZAorICAgICAgICAgICAgICAgIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuCisgICAgICAgIDwvaW5mbz4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmNvbHM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgPGluZm8+CisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBjb25zdWx0ZWQKKyAgICAgICAgICAgICAgICB3aGVuIHJlbmRlcmluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIGlucHV0IGZpZWxkLiBJZiBub3QKKyAgICAgICAgICAgICAgICBzcGVjaWZpZWQsIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybSB0YWcgd2UgYXJlIG5lc3RlZAorICAgICAgICAgICAgICAgIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICA8L2luZm8+CisgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhpcyBpbnB1dCBmaWVsZCwgYW5kIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIGJlYW4KKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSBpZiB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkLiBUaGUgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5CisgICAgICAgICAgICAgICAgKGlmIGFueSkgbXVzdCBiZSBvZiB0eXBlIFN0cmluZy4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICA8bmFtZT5yZWFkb25seTwvbmFtZT4KKyAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICByZWFkIG9ubHkuCisgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cm93czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIHJvd3MgdG8gZGlzcGxheS4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgIFZhbHVlIHRvIHdoaWNoIHRoaXMgZmllbGQgc2hvdWxkIGJlIGluaXRpYWxpemVkLiBbVXNlIHRoZQorICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eSB2YWx1ZV0KKyAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisKKworICAgIDwvdGFnPgorICAgIAorICAgIAorICAgIDx0YWc+CisgICAgICAgICAgPG5hbWU+eGh0bWw8L25hbWU+CisgICAgICAgICAgPHN1bW1hcnk+UmVuZGVyIEhUTUwgdGFncyBhcyBYSFRNTDwvc3VtbWFyeT4KKyAgICAgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuWGh0bWxUYWc8L3RhZ2NsYXNzPgorICAgICAgICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgICAgICAgPGluZm8+CisgICAgICAgICAgPHA+CisgICAgICAgICAgICBVc2luZyB0aGlzIHRhZyBpbiBhIHBhZ2UgdGVsbHMgYWxsIG90aGVyIGh0bWwgdGFnbGliIHRhZ3MKKyAgICAgICAgICAgIHRvIHJlbmRlciB0aGVtc2VsdmVzIGFzIFhIVE1MLiAgVGhpcyBpcyB1c2VmdWwKKyAgICAgICAgICAgIHdoZW4gY29tcG9zaW5nIHBhZ2VzIHdpdGggSlNQIGluY2x1ZGVzIG9yIFRpbGVzLiAKKyAgICAgICAgICAgICZsdDtodG1sOmh0bWwgeGh0bWw9InRydWUiJmd0OyBoYXMgYSBzaW1pbGFyIGVmZmVjdC4KKyAgICAgICAgICA8L3A+CisgICAgICAgICAgPHA+CisgICAgICAgICAgCTxzdHJvbmc+Tm90ZTwvc3Ryb25nPjogSW5jbHVkZWQgcGFnZXMgZG8gbm90IGluaGVyaXQgdGhlIHJlbmRlcmluZworICAgICAgICAgIAlzdHlsZSBvZiB0aGUgaW5jbHVkaW5nIHBhZ2UuICBFYWNoIEpTUCBmcmFnbWVudCBvciBUaWxlIG11c3QgdXNlIHRoaXMKKyAgICAgICAgICAJdGFnIHRvIHJlbmRlciBhcyBYSFRNTC4gIAorICAgICAgICAgIDwvcD4KKyAgICAgICAgICA8L2luZm8+CisKKyAgICAgICAgPC90YWc+CisKKzwvdGFnbGliPgorPC9ib2R5PgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9zdHJ1dHMtbG9naWMueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3N0cnV0cy1sb2dpYy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTVkMWZlMQotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9zdHJ1dHMtbG9naWMueG1sCkBAIC0wLDAgKzEsMTc0MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSJzdHJ1dHMtbG9naWMuaHRtbCIgYXV0aG9ycz0iZmFsc2UiPgorCis8cHJvcGVydGllcz4KKyAgPHRpdGxlPlRoZSBTdHJ1dHMgRnJhbWV3b3JrIFByb2plY3QgLSBMb2dpYyBUYWdzPC90aXRsZT4KKzwvcHJvcGVydGllcz4KKworPGJvZHk+CisKKzx0YWdsaWI+CisKKyAgPHRsaWJ2ZXJzaW9uPjEuMDwvdGxpYnZlcnNpb24+CisgIDxqc3B2ZXJzaW9uPjEuMTwvanNwdmVyc2lvbj4KKyAgPHNob3J0bmFtZT5sb2dpYzwvc2hvcnRuYW1lPgorICA8ZGlzcGxheS1uYW1lPlN0cnV0cyBMb2dpYyBUYWdzPC9kaXNwbGF5LW5hbWU+CisgIDx1cmk+aHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvdGFncy1sb2dpYzwvdXJpPgorICA8aW5mbz4KKyAgPHA+VGhpcyB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbiBtYW5hZ2luZyBjb25kaXRpb25hbAorICBnZW5lcmF0aW9uIG9mIG91dHB1dCB0ZXh0LCBsb29waW5nIG92ZXIgb2JqZWN0IGNvbGxlY3Rpb25zIGZvcgorICByZXBldGl0aXZlIGdlbmVyYXRpb24gb2Ygb3V0cHV0IHRleHQsIGFuZCBhcHBsaWNhdGlvbiBmbG93IG1hbmFnZW1lbnQuPC9wPgorCisgIDxwPkZvciB0YWdzIHRoYXQgZG8gdmFsdWUgY29tcGFyaXNvbnMgKDxjb2RlPmVxdWFsPC9jb2RlPiwKKyAgPGNvZGU+Z3JlYXRlckVxdWFsPC9jb2RlPiwgPGNvZGU+Z3JlYXRlclRoYW48L2NvZGU+LCA8Y29kZT5sZXNzRXF1YWw8L2NvZGU+LAorICA8Y29kZT5sZXNzVGhhbjwvY29kZT4sIDxjb2RlPm5vdEVxdWFsPC9jb2RlPiksIHRoZSBmb2xsb3dpbmcgcnVsZXMgYXBwbHk6PC9wPgorICA8dWw+CisgIDxsaT5UaGUgc3BlY2lmaWVkIHZhbHVlIGlzIGV4YW1pbmVkLiAgSWYgaXQgY2FuIGJlIGNvbnZlcnRlZCBzdWNjZXNzZnVsbHkKKyAgICAgIHRvIGEgPGNvZGU+ZG91YmxlPC9jb2RlPiBvciBhIDxjb2RlPmxvbmc8L2NvZGU+LCBpdCBpcyBhc3N1bWVkIHRoYXQgdGhlCisgICAgICB1bHRpbWF0ZSBjb21wYXJpc29uIHdpbGwgYmUgbnVtZXJpYyAoZWl0aGVyIGZsb2F0aW5nIHBvaW50IG9yIGludGVnZXIpLgorICAgICAgT3RoZXJ3aXNlLCBhIFN0cmluZyBjb21wYXJpc29uIHdpbGwgYmUgcGVyZm9ybWVkLjwvbGk+CisgIDxsaT5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgdG8gaXMgcmV0cmlldmVkLCBiYXNlZCBvbiB0aGUgc2VsZWN0b3IKKyAgICAgIGF0dHJpYnV0ZShzKSAoPGNvZGU+Y29va2llPC9jb2RlPiwgPGNvZGU+aGVhZGVyPC9jb2RlPiwKKyAgICAgIDxjb2RlPm5hbWU8L2NvZGU+LCA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+LCA8Y29kZT5wcm9wZXJ0eTwvY29kZT4pCisgICAgICBwcmVzZW50IG9uIHRoaXMgdGFnLiAgSXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdGhlIGFwcHJvcHJpYXRlIHR5cGUKKyAgICAgIGZvciB0aGUgY29tcGFyaXNvbiwgYXMgZGV0ZXJtaW5lZCBhYm92ZS48L2xpPgorICA8bGk+SWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZSBvciBwcm9wZXJ0eSByZXR1cm5zIG51bGwsIGl0IHdpbGwgYmUKKyAgICAgIGNvZXJjZWQgdG8gYSB6ZXJvLWxlbmd0aCBzdHJpbmcgYmVmb3JlIHRoZSBjb21wYXJpc29uIG9jY3Vycy48L2xpPgorICA8bGk+VGhlIHNwZWNpZmljIGNvbXBhcmlzb24gZm9yIHRoaXMgdGFnIHdpbGwgYmUgcGVyZm9ybWVkLCBhbmQgdGhlIG5lc3RlZAorICAgICAgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIHdpbGwgYmUgZXZhbHVhdGVkIGlmIHRoZSBjb21wYXJpc29uIHJldHVybnMKKyAgICAgIGEgPGNvZGU+dHJ1ZTwvY29kZT4gcmVzdWx0LjwvbGk+CisgIDwvdWw+CisKKyAgPHA+Rm9yIHRhZ3MgdGhhdCBkbyBzdWJzdHJpbmcgbWF0Y2hpbmcgKDxjb2RlPm1hdGNoPC9jb2RlPiwKKyAgPGNvZGU+bm90TWF0Y2g8L2NvZGU+KSwgdGhlIGZvbGxvd2luZyBydWxlcyBhcHBseTo8L3A+CisgIDx1bD4KKyAgPGxpPlRoZSBzcGVjaWZpZWQgdmFyaWFibGUgaXMgcmV0cmlldmVkLCBiYXNlZCBvbiB0aGUgc2VsZWN0b3IgYXR0cmlidXRlKHMpCisgICAgICAoPGNvZGU+Y29va2llPC9jb2RlPiwgPGNvZGU+aGVhZGVyPC9jb2RlPiwgPGNvZGU+bmFtZTwvY29kZT4sCisgICAgICA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+LCA8Y29kZT5wcm9wZXJ0eTwvY29kZT4pIHByZXNlbnQgb24gdGhpcyB0YWcuCisgICAgICBUaGUgdmFyaWFibGUgaXMgY29udmVydGVkIHRvIGEgU3RyaW5nLCBpZiBuZWNlc3NhcnkuPC9saT4KKyAgPGxpPkEgcmVxdWVzdCB0aW1lIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgICAgICBjYW5ub3QgYmUgcmV0cmlldmVkLCBvciBoYXMgYSBudWxsIHZhbHVlLjwvbGk+CisgIDxsaT5UaGUgc3BlY2lmaWVkIHZhbHVlIGlzIGNoZWNrZWQgZm9yIGV4aXN0ZW5jZSBhcyBhIHN1YnN0cmluZyBvZiB0aGUKKyAgICAgIHZhcmlhYmxlLCBpbiB0aGUgcG9zaXRpb24gc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5sb2NhdGlvbjwvY29kZT4KKyAgICAgIGF0dHJpYnV0ZSwgYXMgZm9sbG93czogIGF0IHRoZSBiZWdpbm5pbmcgKGlmIGxvY2F0aW9uIGlzIHNldCB0bworICAgICAgPGNvZGU+c3RhcnQ8L2NvZGU+KSwgYXQgdGhlIGVuZCAoaWYgbG9jYXRpb24gaXMgc2V0IHRvCisgICAgICA8Y29kZT5lbmQ8L2NvZGU+KSwgb3IgYW55d2hlcmUgKGlmIGxvY2F0aW9uIGlzIG5vdCBzcGVjaWZpZWQpLjwvbGk+CisgIDwvdWw+CisKKyAgPHA+TWFueSBvZiB0aGUgdGFncyBpbiB0aGlzIHRhZyBsaWJyYXJ5IHdpbGwgdGhyb3cgYQorICA8Y29kZT5Kc3BFeGNlcHRpb248L2NvZGU+IGF0IHJ1bnRpbWUgd2hlbiB0aGV5IGFyZSB1dGlsaXplZCBpbmNvcnJlY3RseQorICAoc3VjaCBhcyB3aGVuIHlvdSBzcGVjaWZ5IGFuIGludmFsaWQgY29tYmluYXRpb24gb2YgdGFnIGF0dHJpYnV0ZXMpLiAgSlNQCisgIGFsbG93cyB5b3UgdG8gZGVjbGFyZSBhbiAiZXJyb3IgcGFnZSIgaW4gdGhlIDxjb2RlPiZsdDslQCBwYWdlICUmZ3Q7PC9jb2RlPgorICBkaXJlY3RpdmUuICBJZiB5b3Ugd2lzaCB0byBwcm9jZXNzIHRoZSBhY3R1YWwgZXhjZXB0aW9uIHRoYXQgY2F1c2VkIHRoZQorICBwcm9ibGVtLCBpdCBpcyBwYXNzZWQgdG8gdGhlIGVycm9yIHBhZ2UgYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZSB1bmRlciBrZXkKKyAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkVYQ0VQVElPTjwvY29kZT4uPC9wPgorCisgIDwvaW5mbz4KKworCisgIDx0YWc+CisKKyAgICA8bmFtZT5lbXB0eTwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICBFdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgcmVxdWVzdGVkIHZhcmlhYmxlIGlzCisgICAgZWl0aGVyIDxjb2RlPm51bGw8L2NvZGU+IG9yIGFuIGVtcHR5IHN0cmluZy4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FbXB0eVRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPHNpbmNlPlN0cnV0cyAxLjE8L3NpbmNlPgorICAgIDxpbmZvPgorICAgIDxwPlRoaXMgdGFnIGV2YWx1YXRlcyBpdHMgbmVzdGVkIGJvZHkgY29udGVudCBvbmx5IGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyAgICBpcyBlaXRoZXIgYWJzZW50IChpLmUuIDxjb2RlPm51bGw8L2NvZGU+KSwgYW4gZW1wdHkgc3RyaW5nIChpLmUuIGEKKyAgICA8Y29kZT5qYXZhLmxhbmcuU3RyaW5nPC9jb2RlPiB3aXRoIGEgbGVuZ3RoIG9mIHplcm8pLCBvciBhbiBlbXB0eQorICAgIDxjb2RlPmphdmEudXRpbC5Db2xsZWN0aW9uPC9jb2RlPiBvciA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiAodGVzdGVkIGJ5CisgICAgdGhlIC5pc0VtcHR5KCkgbWV0aG9kIG9uIHRoZSByZXNwZWN0aXZlIGludGVyZmFjZSkuPC9wPgorICAgIAorICAgIDxwPgorICAgIDxzdHJvbmc+SlNUTDwvc3Ryb25nPjogIFRoZSBlcXVpdmFsZW50IEpTVEwgdGFnIGlzICZsdDtjOmlmJmd0OyB1c2luZyB0aGUgCisgICAgPGNvZGU+ZW1wdHk8L2NvZGU+IG9wZXJhdG9yLiAgRm9yIGV4YW1wbGUsCisgICAgPGJyLz4KKyAgICA8Y29kZT4KKyAgICAJJmx0O2M6aWYgdGVzdD0iJHtlbXB0eSBzZXNzaW9uU2NvcGUubXlCZWFuLm15UHJvcGVydHl9IiZndDsKKyAgICAJICBkbyBzb21ldGhpbmcKKyAgICAJJmx0Oy9jOmlmJmd0OworICAgIDwvY29kZT4KKyAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIEpTUCBiZWFuIHNwZWNpZmllZCBieSB0aGlzCisgICAgICBhdHRyaWJ1dGUsIGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkLCBvciB0aGUgdmFsdWUKKyAgICAgIG9mIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhpcyBiZWFuLCBpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgIGlzIHNwZWNpZmllZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIHByb3BlcnR5IChvZiB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUpIHNwZWNpZmllZCBieSB0aGlzIGF0dHJpYnV0ZS4KKyAgICAgIFRoZSBwcm9wZXJ0eSByZWZlcmVuY2UgY2FuIGJlIHNpbXBsZSwgbmVzdGVkLCBhbmQvb3IgaW5kZXhlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgYmVhbiBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBuYW1lZCBieSB0aGUKKyAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IHByb3BlcnR5LCBvciAiYW55IHNjb3BlIiBpZiBub3Qgc3BlY2lmaWVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworCisgIDx0YWc+CisKKyAgICA8bmFtZT5lcXVhbDwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICBFdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgcmVxdWVzdGVkCisgICAgdmFyaWFibGUgaXMgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FcXVhbFRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgPHA+Q29tcGFyZXMgdGhlIHZhcmlhYmxlIHNwZWNpZmllZCBieSBvbmUgb2YgdGhlIHNlbGVjdG9yIGF0dHJpYnV0ZXMKKyAgICBhZ2FpbnN0IHRoZSBzcGVjaWZpZWQgY29uc3RhbnQgdmFsdWUuICBUaGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzCisgICAgdGFnIGlzIGV2YWx1YXRlZCBpZiB0aGUgdmFyaWFibGUgYW5kIHZhbHVlIGFyZSA8c3Ryb25nPmVxdWFsPC9zdHJvbmc+LgorICAgIDwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Y29va2llPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIHZhcmlhYmxlIHRvIGJlIGNvbXBhcmVkIGlzIHRoZSB2YWx1ZSBvZiB0aGUgY29va2llIHdob3NlCisgICAgICBuYW1lIGlzIHNwZWNpZmllZCBieSB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aGVhZGVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIHZhcmlhYmxlIHRvIGJlIGNvbXBhcmVkIGlzIHRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyIHdob3NlCisgICAgICBuYW1lIGlzIHNwZWNpZmllZCBieSB0aGlzIGF0dHJpYnV0ZS4gIFRoZSBuYW1lIG1hdGNoIGlzIHBlcmZvcm1lZAorICAgICAgaW4gYSBjYXNlIGluc2Vuc2l0aXZlIG1hbm5lci48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSB2YXJpYWJsZSB0byBiZSBjb21wYXJlZCBpcyB0aGUgSlNQIGJlYW4gc3BlY2lmaWVkIGJ5IHRoaXMKKyAgICAgIGF0dHJpYnV0ZSwgaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQsIG9yIHRoZSB2YWx1ZQorICAgICAgb2YgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGlzIGJlYW4sIGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgaXMgc3BlY2lmaWVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wYXJhbWV0ZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIGZpcnN0LCBvciBvbmx5LCB2YWx1ZSBvZiB0aGUKKyAgICAgIHJlcXVlc3QgcGFyYW1ldGVyIHNwZWNpZmllZCBieSB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIHByb3BlcnR5IChvZiB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUpIHNwZWNpZmllZCBieSB0aGlzIGF0dHJpYnV0ZS4KKyAgICAgIFRoZSBwcm9wZXJ0eSByZWZlcmVuY2UgY2FuIGJlIHNpbXBsZSwgbmVzdGVkLCBhbmQvb3IgaW5kZXhlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgYmVhbiBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBuYW1lZCBieSB0aGUKKyAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IHByb3BlcnR5LCBvciAiYW55IHNjb3BlIiBpZiBub3Qgc3BlY2lmaWVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIGNvbnN0YW50IHZhbHVlIHRvIHdoaWNoIHRoZSB2YXJpYWJsZSwgc3BlY2lmaWVkIGJ5IG90aGVyCisgICAgICBhdHRyaWJ1dGUocykgb2YgdGhpcyB0YWcsIHdpbGwgYmUgY29tcGFyZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisKKyAgPHRhZz4KKworICAgIDxuYW1lPmZvcndhcmQ8L25hbWU+CisgICAgPHN1bW1hcnk+CisgICAgRm9yd2FyZCBjb250cm9sIHRvIHRoZSBwYWdlIHNwZWNpZmllZCBieSB0aGUgc3BlY2lmaWVkIEFjdGlvbkZvcndhcmQKKyAgICBlbnRyeS4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Gb3J3YXJkVGFnPC90YWdjbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+ZW1wdHk8L2JvZHljb250ZW50PgorICAgIDxpbmZvPgorICAgIDxwPlBlcmZvcm1zIGEgPGNvZGU+UGFnZUNvbnRleHQuZm9yd2FyZCgpPC9jb2RlPiBvcgorICAgIDxjb2RlPkh0dHBTZXJ2bGV0UmVzcG9uc2Uuc2VuZFJlZGlyZWN0KCk8L2NvZGU+IGNhbGwgZm9yIHRoZSBnbG9iYWwKKyAgICA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBlbnRyeSBmb3IgdGhlIHNwZWNpZmllZCBuYW1lLiAgVVJMCisgICAgcmV3cml0aW5nIHdpbGwgb2NjdXIgYXV0b21hdGljYWxseSBpZiBhIHJlZGlyZWN0IGlzIHBlcmZvcm1lZC48L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPgorICAgICAgCVRoZSBsb2dpY2FsIG5hbWUgb2YgdGhlIGdsb2JhbCA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBlbnRyeQorICAgICAgCXRoYXQgaWRlbnRpZmllcyB0aGUgZGVzdGluYXRpb24sIGFuZCBmb3J3YXJkaW5nIGFwcHJvYWNoLCB0byBiZSB1c2VkLgorICAgICAgICA8c3Ryb25nPk5vdGU8L3N0cm9uZz46IGZvcndhcmRpbmcgdG8gVGlsZXMgZGVmaW5pdGlvbnMgaXMgbm90IHN1cHBvcnRlZAorICAgICAgICBmcm9tIHRoaXMgdGFnLiAgWW91IHNob3VsZCBmb3J3YXJkIHRvIHRoZW0gZnJvbSBhbiBBY3Rpb24gc3ViY2xhc3MuCisgICAgICA8L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKworICA8dGFnPgorCisgICAgPG5hbWU+Z3JlYXRlckVxdWFsPC9uYW1lPgorICAgIDxzdW1tYXJ5PgorICAgIEV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSByZXF1ZXN0ZWQKKyAgICB2YXJpYWJsZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5HcmVhdGVyRXF1YWxUYWc8L3RhZ2NsYXNzPgorICAgIDxib2R5Y29udGVudD5KU1A8L2JvZHljb250ZW50PgorICAgIDxpbmZvPgorICAgIDxwPkNvbXBhcmVzIHRoZSB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgb25lIG9mIHRoZSBzZWxlY3RvciBhdHRyaWJ1dGVzCisgICAgYWdhaW5zdCB0aGUgc3BlY2lmaWVkIGNvbnN0YW50IHZhbHVlLiAgVGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcworICAgIHRhZyBpcyBldmFsdWF0ZWQgaWYgdGhlIHZhcmlhYmxlIGlzIDxzdHJvbmc+Z3JlYXRlciB0aGFuIG9yIGVxdWFsPC9zdHJvbmc+CisgICAgdG8gdGhlIHZhbHVlLjwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Y29va2llPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIHZhcmlhYmxlIHRvIGJlIGNvbXBhcmVkIGlzIHRoZSB2YWx1ZSBvZiB0aGUgY29va2llIHdob3NlCisgICAgICBuYW1lIGlzIHNwZWNpZmllZCBieSB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aGVhZGVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIHZhcmlhYmxlIHRvIGJlIGNvbXBhcmVkIGlzIHRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyIHdob3NlCisgICAgICBuYW1lIGlzIHNwZWNpZmllZCBieSB0aGlzIGF0dHJpYnV0ZS4gIFRoZSBuYW1lIG1hdGNoIGlzIHBlcmZvcm1lZAorICAgICAgaW4gYSBjYXNlIGluc2Vuc2l0aXZlIG1hbm5lci48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSB2YXJpYWJsZSB0byBiZSBjb21wYXJlZCBpcyB0aGUgSlNQIGJlYW4gc3BlY2lmaWVkIGJ5IHRoaXMKKyAgICAgIGF0dHJpYnV0ZSwgaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQsIG9yIHRoZSB2YWx1ZQorICAgICAgb2YgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGlzIGJlYW4sIGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgaXMgc3BlY2lmaWVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wYXJhbWV0ZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIGZpcnN0LCBvciBvbmx5LCB2YWx1ZSBvZiB0aGUKKyAgICAgIHJlcXVlc3QgcGFyYW1ldGVyIHNwZWNpZmllZCBieSB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIHByb3BlcnR5IChvZiB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUpIHNwZWNpZmllZCBieSB0aGlzIGF0dHJpYnV0ZS4KKyAgICAgIFRoZSBwcm9wZXJ0eSByZWZlcmVuY2UgY2FuIGJlIHNpbXBsZSwgbmVzdGVkLCBhbmQvb3IgaW5kZXhlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgYmVhbiBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBuYW1lZCBieSB0aGUKKyAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IHByb3BlcnR5LCBvciAiYW55IHNjb3BlIiBpZiBub3Qgc3BlY2lmaWVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIGNvbnN0YW50IHZhbHVlIHRvIHdoaWNoIHRoZSB2YXJpYWJsZSwgc3BlY2lmaWVkIGJ5IG90aGVyCisgICAgICBhdHRyaWJ1dGUocykgb2YgdGhpcyB0YWcsIHdpbGwgYmUgY29tcGFyZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisKKyAgPHRhZz4KKworICAgIDxuYW1lPmdyZWF0ZXJUaGFuPC9uYW1lPgorICAgIDxzdW1tYXJ5PgorICAgIEV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSByZXF1ZXN0ZWQKKyAgICB2YXJpYWJsZSBpcyBncmVhdGVyIHRoYW4gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5HcmVhdGVyVGhhblRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgPHA+Q29tcGFyZXMgdGhlIHZhcmlhYmxlIHNwZWNpZmllZCBieSBvbmUgb2YgdGhlIHNlbGVjdG9yIGF0dHJpYnV0ZXMKKyAgICBhZ2FpbnN0IHRoZSBzcGVjaWZpZWQgY29uc3RhbnQgdmFsdWUuICBUaGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzCisgICAgdGFnIGlzIGV2YWx1YXRlZCBpZiB0aGUgdmFyaWFibGUgaXMgPHN0cm9uZz5ncmVhdGVyIHRoYW48L3N0cm9uZz4KKyAgICB0aGUgdmFsdWUuPC9wPgorICAgIDwvaW5mbz4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5jb29raWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIHZhbHVlIG9mIHRoZSBjb29raWUgd2hvc2UKKyAgICAgIG5hbWUgaXMgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5oZWFkZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIHZhbHVlIG9mIHRoZSBoZWFkZXIgd2hvc2UKKyAgICAgIG5hbWUgaXMgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLiAgVGhlIG5hbWUgbWF0Y2ggaXMgcGVyZm9ybWVkCisgICAgICBpbiBhIGNhc2UgaW5zZW5zaXRpdmUgbWFubmVyLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIHZhcmlhYmxlIHRvIGJlIGNvbXBhcmVkIGlzIHRoZSBKU1AgYmVhbiBzcGVjaWZpZWQgYnkgdGhpcworICAgICAgYXR0cmlidXRlLCBpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gaXMgbm90IHNwZWNpZmllZCwgb3IgdGhlIHZhbHVlCisgICAgICBvZiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoaXMgYmVhbiwgaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICBpcyBzcGVjaWZpZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhcmFtZXRlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSB2YXJpYWJsZSB0byBiZSBjb21wYXJlZCBpcyB0aGUgZmlyc3QsIG9yIG9ubHksIHZhbHVlIG9mIHRoZQorICAgICAgcmVxdWVzdCBwYXJhbWV0ZXIgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSB2YXJpYWJsZSB0byBiZSBjb21wYXJlZCBpcyB0aGUgcHJvcGVydHkgKG9mIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSkgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLgorICAgICAgVGhlIHByb3BlcnR5IHJlZmVyZW5jZSBjYW4gYmUgc2ltcGxlLCBuZXN0ZWQsIG9yIGluZGV4ZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIGJlYW4gc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gbmFtZWQgYnkgdGhlCisgICAgICA8Y29kZT5uYW1lPC9jb2RlPiBwcm9wZXJ0eSwgb3IgImFueSBzY29wZSIgaWYgbm90IHNwZWNpZmllZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSBjb25zdGFudCB2YWx1ZSB0byB3aGljaCB0aGUgdmFyaWFibGUsIHNwZWNpZmllZCBieSBvdGhlcgorICAgICAgYXR0cmlidXRlKHMpIG9mIHRoaXMgdGFnLCB3aWxsIGJlIGNvbXBhcmVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworCisgIDx0YWc+CisKKyAgICA8bmFtZT5pdGVyYXRlPC9uYW1lPgorICAgIDxzdW1tYXJ5PgorICAgIFJlcGVhdCB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBvdmVyIGEgc3BlY2lmaWVkIGNvbGxlY3Rpb24uCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuSXRlcmF0ZVRhZzwvdGFnY2xhc3M+CisgICAgPHRlaWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5JdGVyYXRlVGVpPC90ZWljbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICA8cD5SZXBlYXRzIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIG9uY2UgZm9yIGV2ZXJ5IGVsZW1lbnQKKyAgICBvZiB0aGUgc3BlY2lmaWVkIGNvbGxlY3Rpb24sIHdoaWNoIG11c3QgYmUgYW4gPGNvZGU+SXRlcmF0b3I8L2NvZGU+LAorICAgIGEgPGNvZGU+Q29sbGVjdGlvbjwvY29kZT4sIGEgPGNvZGU+TWFwPC9jb2RlPiAod2hvc2UgdmFsdWVzIGFyZSB0byBiZQorICAgIGl0ZXJhdGVkIG92ZXIpLCBvciBhbiBhcnJheS4gIFRoZSBjb2xsZWN0aW9uIHRvIGJlIGl0ZXJhdGVkIG92ZXIgbXVzdCBiZQorICAgIHNwZWNpZmllZCBpbiBvbmUgb2YgdGhlIGZvbGxvd2luZyB3YXlzOjwvcD4KKyAgICA8dWw+CisgICAgPGxpPkFzIGEgcnVudGltZSBleHByZXNzaW9uIHNwZWNpZmllZCBhcyB0aGUgdmFsdWUgb2YgdGhlCisgICAgICAgIDxjb2RlPmNvbGxlY3Rpb248L2NvZGU+IGF0dHJpYnV0ZS48L2xpPgorICAgIDxsaT5BcyBhIEpTUCBiZWFuIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLjwvbGk+CisgICAgPGxpPkFzIHRoZSBwcm9wZXJ0eSwgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5wcm9wZXJ0eTwvY29kZT4sIG9mIHRoZQorICAgICAgICBKU1AgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZS48L2xpPgorICAgIDwvdWw+CisKKyAgICA8cD5UaGUgY29sbGVjdGlvbiB0byBiZSBpdGVyYXRlZCBvdmVyIE1VU1QgY29uZm9ybSB0byBvbmUgb2YgdGhlIGZvbGxvd2luZworICAgIHJlcXVpcmVtZW50cyBpbiBvcmRlciBmb3IgaXRlcmF0aW9uIHRvIGJlIHN1Y2Nlc3NmdWw6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+QW4gYXJyYXkgb2YgSmF2YSBvYmplY3RzIG9yIHByaW1pdGl2ZXMuPC9saT4KKworICAgIDxsaT5BbiBpbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5qYXZhLnV0aWwuQ29sbGVjdGlvbjwvY29kZT4sIGluY2x1ZGluZworICAgICAgICA8Y29kZT5BcnJheUxpc3Q8L2NvZGU+IGFuZCA8Y29kZT5WZWN0b3I8L2NvZGU+LjwvbGk+CisgICAgPGxpPkFuIGltcGxlbWVudGF0aW9uIG9mIDxjb2RlPmphdmEudXRpbC5FbnVtZXJhdGlvbjwvY29kZT4uPC9saT4KKyAgICA8bGk+QW4gaW1wbGVtZW50YXRpb24gb2YgPGNvZGU+amF2YS51dGlsLkl0ZXJhdG9yPC9jb2RlPi48L2xpPgorICAgIDxsaT5BbiBpbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiwgaW5jbHVkaW5nCisgICAgICAgIDxjb2RlPkhhc2hNYXA8L2NvZGU+LCA8Y29kZT5IYXNodGFibGU8L2NvZGU+LCBhbmQKKyAgICAgICAgPGNvZGU+VHJlZU1hcDwvY29kZT4uICA8c3Ryb25nPk5PVEU8L3N0cm9uZz4gLSBTZWUgYmVsb3cgZm9yCisgICAgICAgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgYWNjZXNzaW5nIE1hcHMuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+Tm9ybWFsbHksIGVhY2ggb2JqZWN0IGV4cG9zZWQgYnkgdGhlIGl0ZXJhdGUgdGFnIGlzIGFuIGVsZW1lbnQKKyAgICBvZiB0aGUgdW5kZXJseWluZyBjb2xsZWN0aW9uIHlvdSBhcmUgaXRlcmF0aW5nIG92ZXIuICBIb3dldmVyLCBpZiB5b3UKKyAgICBpdGVyYXRlIG92ZXIgYSA8Y29kZT5NYXA8L2NvZGU+LCB0aGUgZXhwb3NlZCBvYmplY3QgaXMgb2YgdHlwZQorICAgIDxjb2RlPk1hcC5FbnRyeTwvY29kZT4gdGhhdCBoYXMgdHdvIHByb3BlcnRpZXM6PC9wPgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+a2V5PC9jb2RlPiAtIFRoZSBrZXkgdW5kZXIgd2hpY2ggdGhpcyBpdGVtIGlzIHN0b3JlZCBpbiB0aGUKKyAgICAgICAgdW5kZXJseWluZyBNYXAuPC9saT4KKyAgICA8bGk+PGNvZGU+dmFsdWU8L2NvZGU+IC0gVGhlIHZhbHVlIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhpcyBrZXkuPC9saT4KKyAgICA8L3VsPgorCisgICAgPHA+U28sIGlmIHlvdSB3aXNoIHRvIGl0ZXJhdGUgb3ZlciB0aGUgdmFsdWVzIG9mIGEgSGFzaHRhYmxlLCB5b3Ugd291bGQKKyAgICBpbXBsZW1lbnQgY29kZSBsaWtlIHRoZSBmb2xsb3dpbmc6PC9wPgorICAgIDxjb2RlPgorICAgICZsdDtsb2dpYzppdGVyYXRlIGlkPSJlbGVtZW50IiBuYW1lPSJteWhhc2h0YWJsZSImZ3Q7PGJyLz4KKyAgICAgIE5leHQgZWxlbWVudCBpcyAmbHQ7YmVhbjp3cml0ZSBuYW1lPSJlbGVtZW50IiBwcm9wZXJ0eT0idmFsdWUiLyZndDs8YnIvPgorICAgICZsdDsvbG9naWM6aXRlcmF0ZSZndDsKKyAgICA8L2NvZGU+CisKKyAgICA8cD5JZiB0aGUgY29sbGVjdGlvbiB5b3UgYXJlIGl0ZXJhdGluZyBvdmVyIGNhbiBjb250YWluIDxjb2RlPm51bGw8L2NvZGU+CisgICAgdmFsdWVzLCB0aGUgbG9vcCB3aWxsIHN0aWxsIGJlIHBlcmZvcm1lZCBidXQgbm8gcGFnZSBzY29wZSBhdHRyaWJ1dGUKKyAgICAobmFtZWQgYnkgdGhlIDxjb2RlPmlkPC9jb2RlPiBhdHRyaWJ1dGUpIHdpbGwgYmUgY3JlYXRlZCBmb3IgdGhhdCBsb29wCisgICAgaXRlcmF0aW9uLiAgWW91IGNhbiB1c2UgdGhlIDxjb2RlPiZsdDtsb2dpYzpwcmVzZW50Jmd0OzwvY29kZT4gYW5kCisgICAgPGNvZGU+Jmx0O2xvZ2ljOm5vdFByZXNlbnQmZ3Q7PC9jb2RlPiB0YWdzIHRvIHRlc3QgZm9yIHRoaXMgY2FzZS48L3A+CisKKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Y29sbGVjdGlvbjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPkEgcnVudGltZSBleHByZXNzaW9uIHRoYXQgZXZhbHVhdGVzIHRvIGEgY29sbGVjdGlvbiAoY29uZm9ybWluZyB0bworICAgICAgdGhlIHJlcXVpcmVtZW50cyBsaXN0ZWQgYWJvdmUpIHRvIGJlIGl0ZXJhdGVkIG92ZXIuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmlkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIG5hbWUgb2YgYSBwYWdlIHNjb3BlIEpTUCBiZWFuIHRoYXQgd2lsbCBjb250YWluIHRoZSBjdXJyZW50CisgICAgICBlbGVtZW50IG9mIHRoZSBjb2xsZWN0aW9uIG9uIGVhY2ggaXRlcmF0aW9uLCBpZiBpdCBpcyBub3QKKyAgICAgIDxjb2RlPm51bGw8L2NvZGU+LjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5pbmRleElkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcGFnZSBzY29wZSBKU1AgYmVhbiB0aGF0IHdpbGwgY29udGFpbiB0aGUgY3VycmVudAorICAgICAgaW5kZXggb2YgdGhlIGNvbGxlY3Rpb24gb24gZWFjaCBpdGVyYXRpb24uPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5sZW5ndGg8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgbWF4aW11bSBudW1iZXIgb2YgZW50cmllcyAoZnJvbSB0aGUgdW5kZXJseWluZyBjb2xsZWN0aW9uKSB0byBiZQorICAgICAgaXRlcmF0ZWQgdGhyb3VnaCBvbiB0aGlzIHBhZ2UuICBUaGlzIGNhbiBiZSBlaXRoZXIgYW4gaW50ZWdlciB0aGF0CisgICAgICBkaXJlY3RseSBleHByZXNzZXMgdGhlIGRlc2lyZWQgdmFsdWUsIG9yIHRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gKGluCisgICAgICBhbnkgc2NvcGUpIG9mIHR5cGUgPGNvZGU+amF2YS5sYW5nLkludGVnZXI8L2NvZGU+IHRoYXQgZGVmaW5lcyB0aGUKKyAgICAgIGRlc2lyZWQgdmFsdWUuICBJZiBub3QgcHJlc2VudCwgdGhlcmUgd2lsbCBiZSBubyBsaW1pdCBvbiB0aGUgbnVtYmVyCisgICAgICBvZiBpdGVyYXRpb25zIHBlcmZvcm1lZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSBuYW1lIG9mIHRoZSBKU1AgYmVhbiBjb250YWluaW5nIHRoZSBjb2xsZWN0aW9uIHRvIGJlIGl0ZXJhdGVkCisgICAgICAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQpLCBvciB0aGUgSlNQIGJlYW4gd2hvc2UKKyAgICAgIHByb3BlcnR5IGdldHRlciByZXR1cm5zIHRoZSBjb2xsZWN0aW9uIHRvIGJlIGl0ZXJhdGVkIChpZgorICAgICAgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZCkuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9mZnNldDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSB6ZXJvLXJlbGF0aXZlIGluZGV4IG9mIHRoZSBzdGFydGluZyBwb2ludCBhdCB3aGljaCBlbnRyaWVzIGZyb20KKyAgICAgIHRoZSB1bmRlcmx5aW5nIGNvbGxlY3Rpb24gd2lsbCBiZSBpdGVyYXRlZCB0aHJvdWdoLiAgVGhpcyBjYW4gYmUgZWl0aGVyCisgICAgICBhbiBpbnRlZ2VyIHRoYXQgZGlyZWN0bHkgZXhwcmVzc2VzIHRoZSBkZXNpcmVkIHZhbHVlLCBvciB0aGUgbmFtZSBvZiBhCisgICAgICBKU1AgYmVhbiAoaW4gYW55IHNjb3BlKSBvZiB0eXBlIDxjb2RlPmphdmEubGFuZy5JbnRlZ2VyPC9jb2RlPiB0aGF0CisgICAgICBkZWZpbmVzIHRoZSBkZXNpcmVkIHZhbHVlLiAgSWYgbm90IHByZXNlbnQsIHplcm8gaXMgYXNzdW1lZCAobWVhbmluZworICAgICAgdGhhdCB0aGUgY29sbGVjdGlvbiB3aWxsIGJlIGl0ZXJhdGVkIGZyb20gdGhlIGJlZ2lubmluZy48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5OYW1lIG9mIHRoZSBwcm9wZXJ0eSwgb2YgdGhlIEpTUCBiZWFuIHNwZWNpZmllZCBieSA8Y29kZT5uYW1lPC9jb2RlPiwKKyAgICAgIHdob3NlIGdldHRlciByZXR1cm5zIHRoZSBjb2xsZWN0aW9uIHRvIGJlIGl0ZXJhdGVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSBiZWFuIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIG5hbWVkIGJ5IHRoZQorICAgICAgPGNvZGU+bmFtZTwvY29kZT4gcHJvcGVydHksIG9yICJhbnkgc2NvcGUiIGlmIG5vdCBzcGVjaWZpZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnR5cGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5GdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBlbGVtZW50IHRvIGJlIGV4cG9zZWQgdGhyb3VnaAorICAgICAgdGhlIEpTUCBiZWFuIG5hbWVkIGZyb20gdGhlIDxjb2RlPmlkPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3QgcHJlc2VudCwKKyAgICAgIG5vIHR5cGUgY29udmVyc2lvbnMgd2lsbCBiZSBwZXJmb3JtZWQuICBOT1RFOiAgVGhlIGFjdHVhbCBlbGVtZW50cyBvZgorICAgICAgdGhlIGNvbGxlY3Rpb24gbXVzdCBiZSBhc3NpZ25tZW50LWNvbXBhdGlibGUgd2l0aCB0aGlzIGNsYXNzLCBvciBhCisgICAgICByZXF1ZXN0IHRpbWUgQ2xhc3NDYXN0RXhjZXB0aW9uIHdpbGwgb2NjdXIuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisKKyAgPHRhZz4KKworICAgIDxuYW1lPmxlc3NFcXVhbDwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICBFdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgcmVxdWVzdGVkCisgICAgdmFyaWFibGUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTGVzc0VxdWFsVGFnPC90YWdjbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICA8cD5Db21wYXJlcyB0aGUgdmFyaWFibGUgc3BlY2lmaWVkIGJ5IG9uZSBvZiB0aGUgc2VsZWN0b3IgYXR0cmlidXRlcworICAgIGFnYWluc3QgdGhlIHNwZWNpZmllZCBjb25zdGFudCB2YWx1ZS4gIFRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMKKyAgICB0YWcgaXMgZXZhbHVhdGVkIGlmIHRoZSB2YXJpYWJsZSBpcyA8c3Ryb25nPmxlc3MgdGhhbiBvciBlcXVhbDwvc3Ryb25nPgorICAgIHRvIHRoZSB2YWx1ZS48L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmNvb2tpZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSB2YXJpYWJsZSB0byBiZSBjb21wYXJlZCBpcyB0aGUgdmFsdWUgb2YgdGhlIGNvb2tpZSB3aG9zZQorICAgICAgbmFtZSBpcyBzcGVjaWZpZWQgYnkgdGhpcyBhdHRyaWJ1dGUuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmhlYWRlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSB2YXJpYWJsZSB0byBiZSBjb21wYXJlZCBpcyB0aGUgdmFsdWUgb2YgdGhlIGhlYWRlciB3aG9zZQorICAgICAgbmFtZSBpcyBzcGVjaWZpZWQgYnkgdGhpcyBhdHRyaWJ1dGUuICBUaGUgbmFtZSBtYXRjaCBpcyBwZXJmb3JtZWQKKyAgICAgIGluIGEgY2FzZSBpbnNlbnNpdGl2ZSBtYW5uZXIuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIEpTUCBiZWFuIHNwZWNpZmllZCBieSB0aGlzCisgICAgICBhdHRyaWJ1dGUsIGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkLCBvciB0aGUgdmFsdWUKKyAgICAgIG9mIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhpcyBiZWFuLCBpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgIGlzIHNwZWNpZmllZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cGFyYW1ldGVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIHZhcmlhYmxlIHRvIGJlIGNvbXBhcmVkIGlzIHRoZSBmaXJzdCwgb3Igb25seSwgdmFsdWUgb2YgdGhlCisgICAgICByZXF1ZXN0IHBhcmFtZXRlciBzcGVjaWZpZWQgYnkgdGhpcyBhdHRyaWJ1dGUuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIHZhcmlhYmxlIHRvIGJlIGNvbXBhcmVkIGlzIHRoZSBwcm9wZXJ0eSAob2YgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlKSBzcGVjaWZpZWQgYnkgdGhpcyBhdHRyaWJ1dGUuCisgICAgICBUaGUgcHJvcGVydHkgcmVmZXJlbmNlIGNhbiBiZSBzaW1wbGUsIG5lc3RlZCwgb3IgaW5kZXhlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgYmVhbiBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBuYW1lZCBieSB0aGUKKyAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IHByb3BlcnR5LCBvciAiYW55IHNjb3BlIiBpZiBub3Qgc3BlY2lmaWVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIGNvbnN0YW50IHZhbHVlIHRvIHdoaWNoIHRoZSB2YXJpYWJsZSwgc3BlY2lmaWVkIGJ5IG90aGVyCisgICAgICBhdHRyaWJ1dGUocykgb2YgdGhpcyB0YWcsIHdpbGwgYmUgY29tcGFyZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisKKyAgPHRhZz4KKworICAgIDxuYW1lPmxlc3NUaGFuPC9uYW1lPgorICAgIDxzdW1tYXJ5PgorICAgIEV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSByZXF1ZXN0ZWQKKyAgICB2YXJpYWJsZSBpcyBsZXNzIHRoYW4gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5MZXNzVGhhblRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgPHA+Q29tcGFyZXMgdGhlIHZhcmlhYmxlIHNwZWNpZmllZCBieSBvbmUgb2YgdGhlIHNlbGVjdG9yIGF0dHJpYnV0ZXMKKyAgICBhZ2FpbnN0IHRoZSBzcGVjaWZpZWQgY29uc3RhbnQgdmFsdWUuICBUaGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzCisgICAgdGFnIGlzIGV2YWx1YXRlZCBpZiB0aGUgdmFyaWFibGUgaXMgPHN0cm9uZz5sZXNzIHRoYW48L3N0cm9uZz4KKyAgICB0aGUgdmFsdWUuPC9wPgorICAgIDwvaW5mbz4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5jb29raWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIHZhbHVlIG9mIHRoZSBjb29raWUgd2hvc2UKKyAgICAgIG5hbWUgaXMgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5oZWFkZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIHZhbHVlIG9mIHRoZSBoZWFkZXIgd2hvc2UKKyAgICAgIG5hbWUgaXMgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLiAgVGhlIG5hbWUgbWF0Y2ggaXMgcGVyZm9ybWVkCisgICAgICBpbiBhIGNhc2UgaW5zZW5zaXRpdmUgbWFubmVyLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIHZhcmlhYmxlIHRvIGJlIGNvbXBhcmVkIGlzIHRoZSBKU1AgYmVhbiBzcGVjaWZpZWQgYnkgdGhpcworICAgICAgYXR0cmlidXRlLCBpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gaXMgbm90IHNwZWNpZmllZCwgb3IgdGhlIHZhbHVlCisgICAgICBvZiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoaXMgYmVhbiwgaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICBpcyBzcGVjaWZpZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhcmFtZXRlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSB2YXJpYWJsZSB0byBiZSBjb21wYXJlZCBpcyB0aGUgZmlyc3QsIG9yIG9ubHksIHZhbHVlIG9mIHRoZQorICAgICAgcmVxdWVzdCBwYXJhbWV0ZXIgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSB2YXJpYWJsZSB0byBiZSBjb21wYXJlZCBpcyB0aGUgcHJvcGVydHkgKG9mIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSkgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLgorICAgICAgVGhlIHByb3BlcnR5IHJlZmVyZW5jZSBjYW4gYmUgc2ltcGxlLCBuZXN0ZWQsIGFuZC9vciBpbmRleGVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSBiZWFuIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIG5hbWVkIGJ5IHRoZQorICAgICAgPGNvZGU+bmFtZTwvY29kZT4gcHJvcGVydHksIG9yICJhbnkgc2NvcGUiIGlmIG5vdCBzcGVjaWZpZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgY29uc3RhbnQgdmFsdWUgdG8gd2hpY2ggdGhlIHZhcmlhYmxlLCBzcGVjaWZpZWQgYnkgb3RoZXIKKyAgICAgIGF0dHJpYnV0ZShzKSBvZiB0aGlzIHRhZywgd2lsbCBiZSBjb21wYXJlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKworICA8dGFnPgorCisgICAgPG5hbWU+bWF0Y2g8L25hbWU+CisgICAgPHN1bW1hcnk+CisgICAgRXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorICAgIGlzIGFuIGFwcHJvcHJpYXRlIHN1YnN0cmluZyBvZiB0aGUgcmVxdWVzdGVkIHZhcmlhYmxlLgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1hdGNoVGFnPC90YWdjbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICA8cD5NYXRjaGVzIHRoZSB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgb25lIG9mIHRoZSBzZWxlY3RvciBhdHRyaWJ1dGVzCisgICAgKGFzIGEgU3RyaW5nKSBhZ2FpbnN0IHRoZSBzcGVjaWZpZWQgY29uc3RhbnQgdmFsdWUuICBJZiB0aGUgdmFsdWUgaXMKKyAgICBhIHN1YnN0cmluZyAoYXBwcm9wcmlhdGVseSBsaW1pdGVkIGJ5IHRoZSA8Y29kZT5sb2NhdGlvbjwvY29kZT4KKyAgICBhdHRyaWJ1dGUpLCB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpcyBldmFsdWF0ZWQuPC9wPgorICAgIDwvaW5mbz4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5jb29raWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgbWF0Y2hlZCBpcyB0aGUgdmFsdWUgb2YgdGhlIGNvb2tpZSB3aG9zZQorICAgICAgbmFtZSBpcyBzcGVjaWZpZWQgYnkgdGhpcyBhdHRyaWJ1dGUuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmhlYWRlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSB2YXJpYWJsZSB0byBiZSBtYXRjaGVkIGlzIHRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyIHdob3NlCisgICAgICBuYW1lIGlzIHNwZWNpZmllZCBieSB0aGlzIGF0dHJpYnV0ZS4gIFRoZSBuYW1lIG1hdGNoIGlzIHBlcmZvcm1lZAorICAgICAgaW4gYSBjYXNlIGluc2Vuc2l0aXZlIG1hbm5lci48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bG9jYXRpb248L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5JZiBub3Qgc3BlY2lmaWVkLCBhIG1hdGNoIGJldHdlZW4gdGhlIHZhcmlhYmxlIGFuZCB0aGUgdmFsdWUgbWF5CisgICAgICBvY2N1ciBhdCBhbnkgcG9zaXRpb24gd2l0aGluIHRoZSB2YXJpYWJsZSBzdHJpbmcuICBJZiBzcGVjaWZpZWQsIHRoZQorICAgICAgbWF0Y2ggbXVzdCBvY2N1ciBhdCB0aGUgc3BlY2lmaWVkIGxvY2F0aW9uIChlaXRoZXIgPGNvZGU+c3RhcnQ8L2NvZGU+CisgICAgICBvciA8Y29kZT5lbmQ8L2NvZGU+KSBvZiB0aGUgdmFyaWFibGUgc3RyaW5nLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIHZhcmlhYmxlIHRvIGJlIG1hdGNoZWQgaXMgdGhlIEpTUCBiZWFuIHNwZWNpZmllZCBieSB0aGlzCisgICAgICBhdHRyaWJ1dGUsIGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkLCBvciB0aGUgdmFsdWUKKyAgICAgIG9mIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhpcyBiZWFuLCBpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgIGlzIHNwZWNpZmllZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cGFyYW1ldGVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIHZhcmlhYmxlIHRvIGJlIG1hdGNoZWQgaXMgdGhlIGZpcnN0LCBvciBvbmx5LCB2YWx1ZSBvZiB0aGUKKyAgICAgIHJlcXVlc3QgcGFyYW1ldGVyIHNwZWNpZmllZCBieSB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgbWF0Y2hlZCBpcyB0aGUgcHJvcGVydHkgKG9mIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSkgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLgorICAgICAgVGhlIHByb3BlcnR5IHJlZmVyZW5jZSBjYW4gYmUgc2ltcGxlLCBuZXN0ZWQsIGFuZC9vciBpbmRleGVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSBiZWFuIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIG5hbWVkIGJ5IHRoZQorICAgICAgPGNvZGU+bmFtZTwvY29kZT4gcHJvcGVydHksIG9yICJhbnkgc2NvcGUiIGlmIG5vdCBzcGVjaWZpZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgY29uc3RhbnQgdmFsdWUgd2hpY2ggaXMgY2hlY2tlZCBmb3IgZXhpc3RlbmNlIGFzIGEgc3Vic3RyaW5nCisgICAgICBvZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworICA8dGFnPgorCisgICAgPG5hbWU+bWVzc2FnZXNOb3RQcmVzZW50PC9uYW1lPgorICAgIDxzdW1tYXJ5PgorICAgIEdlbmVyYXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQKKyAgICBtZXNzYWdlIGlzIG5vdCBwcmVzZW50IGluIHRoaXMgcmVxdWVzdC4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NZXNzYWdlc05vdFByZXNlbnRUYWc8L3RhZ2NsYXNzPgorICAgIDxib2R5Y29udGVudD5KU1A8L2JvZHljb250ZW50PgorICAgIDxzaW5jZT5TdHJ1dHMgMS4xPC9zaW5jZT4KKyAgICA8aW5mbz4KKyAgICA8cD5FdmFsdWF0ZXMgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYKKyAgICAgICBhbiA8Y29kZT5BY3Rpb25NZXNzYWdlczwvY29kZT4KKyAgICAgICBvYmplY3QsIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0LCBhIFN0cmluZywKKyAgICAgICBvciBhIFN0cmluZyBhcnJheSBpcyBub3QgaW4gcmVxdWVzdCBzY29wZS4gIElmCisgICAgICAgc3VjaCBhIGJlYW4gaXMgbm90IGZvdW5kLCBub3RoaW5nIHdpbGwgYmUgcmVuZGVyZWQuCisgICAgPC9wPgorICAgIDwvaW5mbz4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIHBhcmFtZXRlciBrZXkgdG8gcmV0cmlldmUgdGhlIG1lc3NhZ2UgZnJvbSByZXF1ZXN0IHNjb3BlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPk5hbWUgb2YgdGhlIHByb3BlcnR5IGZvciB3aGljaCBtZXNzYWdlcyBzaG91bGQgYmUKKyAgICAgICAgIHJldHJpZXZlZC4gIElmIG5vdCBzcGVjaWZpZWQsIGFsbCBtZXNzYWdlcyAocmVnYXJkbGVzcworICAgICAgICAgb2YgcHJvcGVydHkpIGFyZSByZXRyaWV2ZWQuCisgICAgICA8L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bWVzc2FnZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPkJ5IGRlZmF1bHQgdGhlIHRhZyB3aWxsIHJldHJpZXZlIHRoZSByZXF1ZXN0IHNjb3BlIGJlYW4gaXQgd2lsbAorICAgICAgICAgaXRlcmF0ZSBvdmVyIGZyb20gdGhlIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcsCisgICAgICAgICBidXQgaWYgdGhpcyBhdHRyaWJ1dGUgaXMgc2V0IHRvICd0cnVlJyB0aGUgcmVxdWVzdCBzY29wZSBiZWFuCisgICAgICAgICB3aWxsIGJlIHJldHJpZXZlZCBmcm9tIHRoZSA8Y29kZT5HbG9iYWxzLk1FU1NBR0VfS0VZPC9jb2RlPgorICAgICAgICAgY29uc3RhbnQgc3RyaW5nLiAgQWxzbyBpZiB0aGlzIGlzIHNldCB0byAndHJ1ZScsIGFueSB2YWx1ZQorICAgICAgICAgYXNzaWduZWQgdG8gdGhlIG5hbWUgYXR0cmlidXRlIHdpbGwgYmUgaWdub3JlZC4KKyAgICAgIDwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworICA8dGFnPgorCisgICAgPG5hbWU+bWVzc2FnZXNQcmVzZW50PC9uYW1lPgorICAgIDxzdW1tYXJ5PgorICAgIEdlbmVyYXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQKKyAgICBtZXNzYWdlIGlzIHByZXNlbnQgaW4gdGhpcyByZXF1ZXN0LgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1lc3NhZ2VzUHJlc2VudFRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPHNpbmNlPlN0cnV0cyAxLjE8L3NpbmNlPgorICAgIDxpbmZvPgorICAgIDxwPkV2YWx1YXRlcyB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZgorICAgICAgIGFuIDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPgorICAgICAgIG9iamVjdCwgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QsIGEgU3RyaW5nLAorICAgICAgIG9yIGEgU3RyaW5nIGFycmF5IGlzIGluIHJlcXVlc3Qgc2NvcGUuICBJZgorICAgICAgIHN1Y2ggYSBiZWFuIGlzIG5vdCBmb3VuZCwgbm90aGluZyB3aWxsIGJlIHJlbmRlcmVkLgorICAgIDwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSBwYXJhbWV0ZXIga2V5IHRvIHJldHJpZXZlIHRoZSBtZXNzYWdlIGZyb20gcmVxdWVzdCBzY29wZS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5OYW1lIG9mIHRoZSBwcm9wZXJ0eSBmb3Igd2hpY2ggbWVzc2FnZXMgc2hvdWxkIGJlCisgICAgICAgICByZXRyaWV2ZWQuICBJZiBub3Qgc3BlY2lmaWVkLCBhbGwgbWVzc2FnZXMgKHJlZ2FyZGxlc3MKKyAgICAgICAgIG9mIHByb3BlcnR5KSBhcmUgcmV0cmlldmVkLgorICAgICAgPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm1lc3NhZ2U8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5CeSBkZWZhdWx0IHRoZSB0YWcgd2lsbCByZXRyaWV2ZSB0aGUgcmVxdWVzdCBzY29wZSBiZWFuIGl0IHdpbGwKKyAgICAgICAgIGl0ZXJhdGUgb3ZlciBmcm9tIHRoZSA8Y29kZT5HbG9iYWxzLkVSUk9SX0tFWTwvY29kZT4gY29uc3RhbnQgc3RyaW5nLAorICAgICAgICAgYnV0IGlmIHRoaXMgYXR0cmlidXRlIGlzIHNldCB0byAndHJ1ZScgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbgorICAgICAgICAgd2lsbCBiZSByZXRyaWV2ZWQgZnJvbSB0aGUgPGNvZGU+R2xvYmFscy5NRVNTQUdFX0tFWTwvY29kZT4KKyAgICAgICAgIGNvbnN0YW50IHN0cmluZy4gIEFsc28gaWYgdGhpcyBpcyBzZXQgdG8gJ3RydWUnLCBhbnkgdmFsdWUKKyAgICAgICAgIGFzc2lnbmVkIHRvIHRoZSBuYW1lIGF0dHJpYnV0ZSB3aWxsIGJlIGlnbm9yZWQuCisgICAgICA8L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKworICA8dGFnPgorCisgICAgPG5hbWU+bm90RW1wdHk8L25hbWU+CisgICAgPHN1bW1hcnk+CisgICAgRXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHJlcXVlc3RlZCB2YXJpYWJsZSBpcworICAgIG5laXRoZXIgPGNvZGU+bnVsbDwvY29kZT4sIG5vciBhbiBlbXB0eSBzdHJpbmcsIG5vciBhbiBlbXB0eSBqYXZhLnV0aWwuQ29sbGVjdGlvbgorICAgICh0ZXN0ZWQgYnkgdGhlIC5pc0VtcHR5KCkgbWV0aG9kIG9uIHRoZSBqYXZhLnV0aWwuQ29sbGVjdGlvbiBpbnRlcmZhY2UpLgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdEVtcHR5VGFnPC90YWdjbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICA8cD5UaGlzIHRhZyBldmFsdWF0ZXMgaXRzIG5lc3RlZCBib2R5IGNvbnRlbnQgb25seSBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgICAgaXMgcHJlc2VudCAoaS5lLiBub3QgPGNvZGU+bnVsbDwvY29kZT4pIGFuZCBpcyBub3QgYW4gZW1wdHkgc3RyaW5nIChpLmUuIGEKKyAgICA8Y29kZT5qYXZhLmxhbmcuU3RyaW5nPC9jb2RlPiB3aXRoIGEgbGVuZ3RoIG9mIHplcm8pLjwvcD4KKyAgICAKKyAgICA8cD4KKyAgICA8c3Ryb25nPkpTVEw8L3N0cm9uZz46ICBUaGUgZXF1aXZhbGVudCBKU1RMIHRhZyBpcyAmbHQ7YzppZiZndDsgdXNpbmcgdGhlIAorICAgIDxjb2RlPiEgZW1wdHk8L2NvZGU+IG9wZXJhdG9yLiAgRm9yIGV4YW1wbGUsCisgICAgPGJyLz4KKyAgICA8Y29kZT4KKyAgICAJJmx0O2M6aWYgdGVzdD0iJHsgISBlbXB0eSBzZXNzaW9uU2NvcGUubXlCZWFuLm15UHJvcGVydHl9IiZndDsKKyAgICAJICBkbyBzb21ldGhpbmcKKyAgICAJJmx0Oy9jOmlmJmd0OworICAgIDwvY29kZT4KKyAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIEpTUCBiZWFuIHNwZWNpZmllZCBieSB0aGlzCisgICAgICBhdHRyaWJ1dGUsIGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkLCBvciB0aGUgdmFsdWUKKyAgICAgIG9mIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhpcyBiZWFuLCBpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgIGlzIHNwZWNpZmllZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIHByb3BlcnR5IChvZiB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUpIHNwZWNpZmllZCBieSB0aGlzIGF0dHJpYnV0ZS4KKyAgICAgIFRoZSBwcm9wZXJ0eSByZWZlcmVuY2UgY2FuIGJlIHNpbXBsZSwgbmVzdGVkLCBhbmQvb3IgaW5kZXhlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgYmVhbiBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBuYW1lZCBieSB0aGUKKyAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IHByb3BlcnR5LCBvciAiYW55IHNjb3BlIiBpZiBub3Qgc3BlY2lmaWVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworCisgIDx0YWc+CisKKyAgICA8bmFtZT5ub3RFcXVhbDwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICBFdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgcmVxdWVzdGVkCisgICAgdmFyaWFibGUgaXMgbm90IGVxdWFsIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90RXF1YWxUYWc8L3RhZ2NsYXNzPgorICAgIDxib2R5Y29udGVudD5KU1A8L2JvZHljb250ZW50PgorICAgIDxpbmZvPgorICAgIDxwPkNvbXBhcmVzIHRoZSB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgb25lIG9mIHRoZSBzZWxlY3RvciBhdHRyaWJ1dGVzCisgICAgYWdhaW5zdCB0aGUgc3BlY2lmaWVkIGNvbnN0YW50IHZhbHVlLiAgVGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcworICAgIHRhZyBpcyBldmFsdWF0ZWQgaWYgdGhlIHZhcmlhYmxlIGFuZCB2YWx1ZSBhcmUgPHN0cm9uZz5ub3QgZXF1YWw8L3N0cm9uZz4uCisgICAgPC9wPgorICAgIDwvaW5mbz4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5jb29raWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIHZhbHVlIG9mIHRoZSBjb29raWUgd2hvc2UKKyAgICAgIG5hbWUgaXMgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5oZWFkZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgaXMgdGhlIHZhbHVlIG9mIHRoZSBoZWFkZXIgd2hvc2UKKyAgICAgIG5hbWUgaXMgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLiAgVGhlIG5hbWUgbWF0Y2ggaXMgcGVyZm9ybWVkCisgICAgICBpbiBhIGNhc2UgaW5zZW5zaXRpdmUgbWFubmVyLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIHZhcmlhYmxlIHRvIGJlIGNvbXBhcmVkIGlzIHRoZSBKU1AgYmVhbiBzcGVjaWZpZWQgYnkgdGhpcworICAgICAgYXR0cmlidXRlLCBpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gaXMgbm90IHNwZWNpZmllZCwgb3IgdGhlIHZhbHVlCisgICAgICBvZiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoaXMgYmVhbiwgaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICBpcyBzcGVjaWZpZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhcmFtZXRlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSB2YXJpYWJsZSB0byBiZSBjb21wYXJlZCBpcyB0aGUgZmlyc3QsIG9yIG9ubHksIHZhbHVlIG9mIHRoZQorICAgICAgcmVxdWVzdCBwYXJhbWV0ZXIgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSB2YXJpYWJsZSB0byBiZSBjb21wYXJlZCBpcyB0aGUgcHJvcGVydHkgKG9mIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSkgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLgorICAgICAgVGhlIHByb3BlcnR5IHJlZmVyZW5jZSBjYW4gYmUgc2ltcGxlLCBuZXN0ZWQsIGFuZC9vciBpbmRleGVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSBiZWFuIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIG5hbWVkIGJ5IHRoZQorICAgICAgPGNvZGU+bmFtZTwvY29kZT4gcHJvcGVydHksIG9yICJhbnkgc2NvcGUiIGlmIG5vdCBzcGVjaWZpZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgY29uc3RhbnQgdmFsdWUgdG8gd2hpY2ggdGhlIHZhcmlhYmxlLCBzcGVjaWZpZWQgYnkgb3RoZXIKKyAgICAgIGF0dHJpYnV0ZShzKSBvZiB0aGlzIHRhZywgd2lsbCBiZSBjb21wYXJlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKworICA8dGFnPgorCisgICAgPG5hbWU+bm90TWF0Y2g8L25hbWU+CisgICAgPHN1bW1hcnk+CisgICAgRXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorICAgIGlzIG5vdCBhbiBhcHByb3ByaWF0ZSBzdWJzdHJpbmcgb2YgdGhlIHJlcXVlc3RlZCB2YXJpYWJsZS4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RNYXRjaFRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgPHA+TWF0Y2hlcyB0aGUgdmFyaWFibGUgc3BlY2lmaWVkIGJ5IG9uZSBvZiB0aGUgc2VsZWN0b3IgYXR0cmlidXRlcworICAgIChhcyBhIFN0cmluZykgYWdhaW5zdCB0aGUgc3BlY2lmaWVkIGNvbnN0YW50IHZhbHVlLiAgSWYgdGhlIHZhbHVlIGlzCisgICAgbm90IGEgc3Vic3RyaW5nIChhcHByb3ByaWF0ZWx5IGxpbWl0ZWQgYnkgdGhlIDxjb2RlPmxvY2F0aW9uPC9jb2RlPgorICAgIGF0dHJpYnV0ZSksIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlzIGV2YWx1YXRlZC48L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmNvb2tpZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSB2YXJpYWJsZSB0byBiZSBtYXRjaGVkIGlzIHRoZSB2YWx1ZSBvZiB0aGUgY29va2llIHdob3NlCisgICAgICBuYW1lIGlzIHNwZWNpZmllZCBieSB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aGVhZGVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIHZhcmlhYmxlIHRvIGJlIG1hdGNoZWQgaXMgdGhlIHZhbHVlIG9mIHRoZSBoZWFkZXIgd2hvc2UKKyAgICAgIG5hbWUgaXMgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLiAgVGhlIG5hbWUgbWF0Y2ggaXMgcGVyZm9ybWVkCisgICAgICBpbiBhIGNhc2UgaW5zZW5zaXRpdmUgbWFubmVyLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5sb2NhdGlvbjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPklmIG5vdCBzcGVjaWZpZWQsIGEgbWF0Y2ggYmV0d2VlbiB0aGUgdmFyaWFibGUgYW5kIHRoZSB2YWx1ZSBtYXkKKyAgICAgIG9jY3VyIGF0IGFueSBwb3NpdGlvbiB3aXRoaW4gdGhlIHZhcmlhYmxlIHN0cmluZy4gIElmIHNwZWNpZmllZCwgdGhlCisgICAgICBtYXRjaCBtdXN0IG9jY3VyIGF0IHRoZSBzcGVjaWZpZWQgbG9jYXRpb24gKGVpdGhlciA8Y29kZT5zdGFydDwvY29kZT4KKyAgICAgIG9yIDxjb2RlPmVuZDwvY29kZT4pIG9mIHRoZSB2YXJpYWJsZSBzdHJpbmcuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgbWF0Y2hlZCBpcyB0aGUgSlNQIGJlYW4gc3BlY2lmaWVkIGJ5IHRoaXMKKyAgICAgIGF0dHJpYnV0ZSwgaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQsIG9yIHRoZSB2YWx1ZQorICAgICAgb2YgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGlzIGJlYW4sIGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgaXMgc3BlY2lmaWVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wYXJhbWV0ZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgdmFyaWFibGUgdG8gYmUgbWF0Y2hlZCBpcyB0aGUgZmlyc3QsIG9yIG9ubHksIHZhbHVlIG9mIHRoZQorICAgICAgcmVxdWVzdCBwYXJhbWV0ZXIgc3BlY2lmaWVkIGJ5IHRoaXMgYXR0cmlidXRlLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSB2YXJpYWJsZSB0byBiZSBtYXRjaGVkIGlzIHRoZSBwcm9wZXJ0eSAob2YgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlKSBzcGVjaWZpZWQgYnkgdGhpcyBhdHRyaWJ1dGUuCisgICAgICBUaGUgcHJvcGVydHkgcmVmZXJlbmNlIGNhbiBiZSBzaW1wbGUsIG5lc3RlZCwgYW5kL29yIGluZGV4ZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+VGhlIGJlYW4gc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gbmFtZWQgYnkgdGhlCisgICAgICA8Y29kZT5uYW1lPC9jb2RlPiBwcm9wZXJ0eSwgb3IgImFueSBzY29wZSIgaWYgbm90IHNwZWNpZmllZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSBjb25zdGFudCB2YWx1ZSB3aGljaCBpcyBjaGVja2VkIGZvciBleGlzdGVuY2UgYXMgYSBzdWJzdHJpbmcKKyAgICAgIG9mIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisKKyAgPHRhZz4KKworICAgIDxuYW1lPm5vdFByZXNlbnQ8L25hbWU+CisgICAgPHN1bW1hcnk+CisgICAgR2VuZXJhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZAorICAgIHZhbHVlIGlzIG5vdCBwcmVzZW50IGluIHRoaXMgcmVxdWVzdC4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RQcmVzZW50VGFnPC90YWdjbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICA8cD5EZXBlbmRpbmcgb24gd2hpY2ggYXR0cmlidXRlIGlzIHNwZWNpZmllZCwgdGhpcyB0YWcgY2hlY2tzIHRoZQorICAgIGN1cnJlbnQgcmVxdWVzdCwgYW5kIGV2YWx1YXRlcyB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworICAgIG9ubHkgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZSA8c3Ryb25nPmlzIG5vdDwvc3Ryb25nPiBwcmVzZW50LiAgT25seSBvbmUKKyAgICBvZiB0aGUgYXR0cmlidXRlcyBtYXkgYmUgdXNlZCBpbiBvbmUgb2NjdXJyZW5jZSBvZiB0aGlzIHRhZywgdW5sZXNzCisgICAgeW91IHVzZSB0aGUgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZSwgaW4gd2hpY2ggY2FzZSB0aGUKKyAgICA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgaXMgYWxzbyByZXF1aXJlZC48L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmNvb2tpZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPkNoZWNrcyBmb3IgdGhlIGV4aXN0ZW5jZSBvZiBhIGNvb2tpZSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aGVhZGVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+Q2hlY2tzIGZvciB0aGUgZXhpc3RlbmNlIG9mIGFuIEhUVFAgaGVhZGVyIHdpdGggdGhlIHNwZWNpZmllZAorICAgICAgbmFtZS4gIFRoZSBuYW1lIG1hdGNoIGlzIHBlcmZvcm1lZCBpbiBhIGNhc2UgaW5zZW5zaXRpdmUgbWFubmVyLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+Q2hlY2tzIGZvciB0aGUgZXhpc3RlbmNlIG9mIGEgSlNQIGJlYW4sIGluIGFueSBzY29wZSwgd2l0aCB0aGUKKyAgICAgIHNwZWNpZmllZCBuYW1lLiAgSWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIGFsc28gc3BlY2lmaWVkLCBjaGVja3MKKyAgICAgIGZvciBhIG5vbi1udWxsIHByb3BlcnR5IHZhbHVlIGZvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5LjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wYXJhbWV0ZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5DaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYXQgbGVhc3Qgb25lIG9jY3VycmVuY2Ugb2YgdGhlCisgICAgICBzcGVjaWZpZWQgcmVxdWVzdCBwYXJhbWV0ZXIgb24gdGhpcyByZXF1ZXN0LCBldmVuIGlmIHRoZSBwYXJhbWV0ZXIKKyAgICAgIHZhbHVlIGlzIGEgemVyby1sZW5ndGggc3RyaW5nLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPkNoZWNrcyBmb3IgdGhlIGV4aXN0ZW5jZSBvZiBhIG5vbi1udWxsIHByb3BlcnR5IHZhbHVlLCByZXR1cm5lZAorICAgICAgYnkgYSBwcm9wZXJ0eSBnZXR0ZXIgbWV0aG9kIG9uIHRoZSBKU1AgYmVhbiAoaW4gYW55IHNjb3BlKSB0aGF0IGlzCisgICAgICBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZS4gIFByb3BlcnR5IHJlZmVyZW5jZXMKKyAgICAgIGNhbiBiZSBzaW1wbGUsIG5lc3RlZCwgYW5kL29yIGluZGV4ZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnJvbGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5DaGVja3Mgd2hldGhlciB0aGUgY3VycmVudGx5IGF1dGhlbnRpY2F0ZWQgdXNlciAoaWYgYW55KSBoYXMgYmVlbgorICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgc2VjdXJpdHkgcm9sZS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5UaGUgYmVhbiBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBuYW1lZCBieSB0aGUKKyAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IHByb3BlcnR5LCBvciAiYW55IHNjb3BlIiBpZiBub3Qgc3BlY2lmaWVkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT51c2VyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+Q2hlY2tzIHdoZXRoZXIgdGhlIGN1cnJlbnRseSBhdXRoZW50aWNhdGVkIHVzZXIgcHJpbmNpcGFsIGhhcyB0aGUKKyAgICAgIHNwZWNpZmllZCBuYW1lLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworCisgIDx0YWc+CisKKyAgICA8bmFtZT5wcmVzZW50PC9uYW1lPgorICAgIDxzdW1tYXJ5PgorICAgIEdlbmVyYXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQKKyAgICB2YWx1ZSBpcyBwcmVzZW50IGluIHRoaXMgcmVxdWVzdC4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5QcmVzZW50VGFnPC90YWdjbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICA8cD5EZXBlbmRpbmcgb24gd2hpY2ggYXR0cmlidXRlIGlzIHNwZWNpZmllZCwgdGhpcyB0YWcgY2hlY2tzIHRoZQorICAgIGN1cnJlbnQgcmVxdWVzdCwgYW5kIGV2YWx1YXRlcyB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworICAgIG9ubHkgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZSA8c3Ryb25nPmlzPC9zdHJvbmc+IHByZXNlbnQuICBPbmx5IG9uZQorICAgIG9mIHRoZSBhdHRyaWJ1dGVzIG1heSBiZSB1c2VkIGluIG9uZSBvY2N1cnJlbmNlIG9mIHRoaXMgdGFnLCB1bmxlc3MKKyAgICB5b3UgdXNlIHRoZSA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlLCBpbiB3aGljaCBjYXNlIHRoZQorICAgIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBpcyBhbHNvIHJlcXVpcmVkLjwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Y29va2llPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+Q2hlY2tzIGZvciB0aGUgZXhpc3RlbmNlIG9mIGEgY29va2llIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5oZWFkZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5DaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYW4gSFRUUCBoZWFkZXIgd2l0aCB0aGUgc3BlY2lmaWVkCisgICAgICBuYW1lLiAgVGhlIG5hbWUgbWF0Y2ggaXMgcGVyZm9ybWVkIGluIGEgY2FzZSBpbnNlbnNpdGl2ZSBtYW5uZXIuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5DaGVja3MgZm9yIHRoZSBleGlzdGVuY2Ugb2YgYSBKU1AgYmVhbiwgaW4gYW55IHNjb3BlLCB3aXRoIHRoZQorICAgICAgc3BlY2lmaWVkIG5hbWUuICBJZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gaXMgYWxzbyBzcGVjaWZpZWQsIGNoZWNrcworICAgICAgZm9yIGEgbm9uLW51bGwgcHJvcGVydHkgdmFsdWUgZm9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhcmFtZXRlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPkNoZWNrcyBmb3IgdGhlIGV4aXN0ZW5jZSBvZiBhdCBsZWFzdCBvbmUgb2NjdXJyZW5jZSBvZiB0aGUKKyAgICAgIHNwZWNpZmllZCByZXF1ZXN0IHBhcmFtZXRlciBvbiB0aGlzIHJlcXVlc3QsIGV2ZW4gaWYgdGhlIHBhcmFtZXRlcgorICAgICAgdmFsdWUgaXMgYSB6ZXJvLWxlbmd0aCBzdHJpbmcuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgPHA+Q2hlY2tzIGZvciB0aGUgZXhpc3RlbmNlIG9mIGEgbm9uLW51bGwgcHJvcGVydHkgdmFsdWUsIHJldHVybmVkCisgICAgICBieSBhIHByb3BlcnR5IGdldHRlciBtZXRob2Qgb24gdGhlIEpTUCBiZWFuIChpbiBhbnkgc2NvcGUpIHRoYXQgaXMKKyAgICAgIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLiAgUHJvcGVydHkgcmVmZXJlbmNlcworICAgICAgY2FuIGJlIHNpbXBsZSwgbmVzdGVkLCBhbmQvb3IgaW5kZXhlZC48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cm9sZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPkNoZWNrcyB3aGV0aGVyIHRoZSBjdXJyZW50bHkgYXV0aGVudGljYXRlZCB1c2VyIChpZiBhbnkpIGhhcyBiZWVuCisgICAgICBhc3NvY2lhdGVkIHdpdGggYW55IG9mIHRoZSBzcGVjaWZpZWQgc2VjdXJpdHkgcm9sZXMuIFVzZSBhIGNvbW1hLWRlbGltaXRlZAorICAgICAgbGlzdCB0byBjaGVjayBmb3IgbXVsdGlwbGUgcm9sZXMuIEV4YW1wbGU6CisgICAgICA8Y29kZT4mbHQ7bG9naWM6cHJlc2VudCByb2xlPSJyb2xlMSxyb2xlMixyb2xlMyImZ3Q7CisgICAgICAgICAgICAgICAgY29kZS4uLi4uCisgICAgICAgICAgICAmbHQ7L2xvZ2ljOnByZXNlbnQmZ3Q7PC9jb2RlPjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPlRoZSBiZWFuIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIG5hbWVkIGJ5IHRoZQorICAgICAgPGNvZGU+bmFtZTwvY29kZT4gcHJvcGVydHksIG9yICJhbnkgc2NvcGUiIGlmIG5vdCBzcGVjaWZpZWQuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnVzZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5DaGVja3Mgd2hldGhlciB0aGUgY3VycmVudGx5IGF1dGhlbnRpY2F0ZWQgdXNlciBwcmluY2lwYWwgaGFzIHRoZQorICAgICAgc3BlY2lmaWVkIG5hbWUuPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisKKyAgICAgICAgPHRhZz4KKworICAgICAgICAgICAgICAgIDxuYW1lPnJlZGlyZWN0PC9uYW1lPgorICAgICAgICAgICAgICAgIDxzdW1tYXJ5PlJlbmRlciBhbiBIVFRQIFJlZGlyZWN0PC9zdW1tYXJ5PgorICAgICAgICAgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUmVkaXJlY3RUYWc8L3RhZ2NsYXNzPgorICAgICAgICAgICAgICAgIDxib2R5LWNvbnRlbnQ+ZW1wdHk8L2JvZHktY29udGVudD4KKyAgICAgICAgICAgICAgICA8aW5mbz4KKworICAgICAgICAgICAgICAgIDxwPlBlcmZvcm1zIGFuIDxjb2RlPkh0dHBTZXJ2bGV0UmVzcG9uc2Uuc2VuZFJlZGlyZWN0KCk8L2NvZGU+CisgICAgICAgICAgICAgICAgY2FsbCB0byB0aGUgaHlwZXJsaW5rIHNwZWNpZmllZCBieSB0aGUgYXR0cmlidXRlcyB0byB0aGlzCisgICAgICAgICAgICAgICAgdGFnLiAgVVJMIHJld3JpdGluZyB3aWxsIGJlIGFwcGxpZWQgYXV0b21hdGljYWxseSwgdG8KKyAgICAgICAgICAgICAgICBtYWludGFpbiBzZXNzaW9uIHN0YXRlIGluIHRoZSBhYnNlbmNlIG9mIGNvb2tpZXMuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+VGhlIGJhc2UgVVJMIGZvciB0aGlzIHJlZGlyZWN0IGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24KKyAgICAgICAgICAgICAgICB3aGljaCBvZiB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgeW91IHNwZWNpZnkgKHlvdSBtdXN0CisgICAgICAgICAgICAgICAgc3BlY2lmeSBleGFjdGx5IG9uZSBvZiB0aGVtKTo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+Zm9yd2FyZDwvZW0+IC0gVXNlIHRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSBhcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBhIGdsb2JhbCA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiB0byBiZSBsb29rZWQKKyAgICAgICAgICAgICAgICAgICAgdXAsIGFuZCB1c2UgdGhlIGFwcGxpY2F0aW9uLXJlbGF0aXZlIG9yIGNvbnRleHQtcmVsYXRpdmUKKyAgICAgICAgICAgICAgICAgICAgVVJJIGZvdW5kIHRoZXJlLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5ocmVmPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIHVuY2hhbmdlZC4KKyAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPnBhZ2U8L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgYXMgYW4KKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24tcmVsYXRpdmUgVVJJLCBhbmQgZ2VuZXJhdGUgYSBzZXJ2ZXItcmVsYXRpdmUKKyAgICAgICAgICAgICAgICAgICAgVVJJIGJ5IGluY2x1ZGluZyB0aGUgY29udGV4dCBwYXRoLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICAgIDxwPk5vcm1hbGx5LCB0aGUgcmVkaXJlY3QgeW91IHNwZWNpZnkgd2l0aCBvbmUgb2YgdGhlCisgICAgICAgICAgICAgICAgYXR0cmlidXRlcyBkZXNjcmliZWQgaW4gdGhlIHByZXZpb3VzIHBhcmFncmFwaCB3aWxsIGJlIGxlZnQKKyAgICAgICAgICAgICAgICB1bmNoYW5nZWQgKG90aGVyIHRoYW4gVVJMIHJld3JpdGluZyBpZiBuZWNlc3NhcnkpLiAgSG93ZXZlciwKKyAgICAgICAgICAgICAgICB0aGVyZSBhcmUgdHdvIHdheXMgeW91IGNhbiBhcHBlbmQgb25lIG9yIG1vcmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICBkZWZpbmVkIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gdGhlIGh5cGVybGluayAtLSBzcGVjaWZ5IGEgc2luZ2xlCisgICAgICAgICAgICAgICAgcGFyYW1ldGVyIHdpdGggdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+IGF0dHJpYnV0ZSAoYW5kIGl0cworICAgICAgICAgICAgICAgIGFzc29jaWF0ZWQgYXR0cmlidXRlcyB0byBzZWxlY3QgdGhlIHZhbHVlKSwgb3Igc3BlY2lmeSB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5uYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsIDxjb2RlPnByb3BlcnR5PC9jb2RlPikKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzIHRvIHNlbGVjdCBhIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGJlYW4gdGhhdAorICAgICAgICAgICAgICAgIGNvbnRhaW5zIG9uZSBvciBtb3JlIHBhcmFtZXRlciBpZHMgYW5kIGNvcnJlc3BvbmRpbmcgdmFsdWVzLgorICAgICAgICAgICAgICAgIDwvcD4KKworICAgICAgICAgICAgICAgIDxwPlRvIHNwZWNpZnkgYSBzaW5nbGUgcGFyYW1ldGVyLCB1c2UgdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIHRvIGRlZmluZSB0aGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdG8gYmUKKyAgICAgICAgICAgICAgICBzdWJtaXR0ZWQuICBUbyBzcGVjaWZ5IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlLCB1c2Ugb25lIG9mIHRoZQorICAgICAgICAgICAgICAgIGZvbGxvd2luZyBhcHByb2FjaGVzOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IG9ubHkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlPC9lbT4KKyAgICAgICAgICAgICAgICAgICAgLSBUaGUgbmFtZWQgSlNQIGJlYW4gKG9wdGlvbmFsbHkgc2NvcGVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gYXR0cmlidXRlKSBtdXN0IGlkZW50aWZ5IGEgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgU3RyaW5nLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IGJvdGggdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYW5kCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXM8L2VtPiAtIFRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgZ2V0dGVyIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgSlNQIGJlYW4KKyAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllZCBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+KSBhdHRyaWJ1dGVzLCBpbiBvcmRlciB0byBzZWxlY3QKKyAgICAgICAgICAgICAgICAgICAgYSB2YWx1ZSB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgPHA+SWYgeW91IHByZWZlciB0byBzcGVjaWZ5IGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgIGNvbnRhaW5zIGFsbCBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzIHRvIGJlIGFkZGVkIHRvIHRoZQorICAgICAgICAgICAgICAgIGh5cGVybGluaywgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHRlY2huaXF1ZXM6PC9wPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgb25seSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlPC9lbT4gLQorICAgICAgICAgICAgICAgICAgICBUaGUgbmFtZWQgSlNQIGJlYW4gKG9wdGlvbmFsbHkgc2NvcGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgICAgICAgICB0aGUgPGNvZGU+c2NvcGU8L2NvZGU+IGF0dHJpYnV0ZSkgbXVzdCBpZGVudGlmeSBhCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgYm90aCA8Y29kZT5uYW1lPC9jb2RlPiBhbmQKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXM8L2VtPiAtIFRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgZ2V0dGVyIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgYmVhbgorICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVkIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnNjb3BlPC9jb2RlPikgYXR0cmlidXRlcywgaW4gb3JkZXIgdG8gcmV0dXJuIHRoZQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICAgIDxwPkFzIHRoZSA8Y29kZT5NYXA8L2NvZGU+IGlzIHByb2Nlc3NlZCwgdGhlIGtleXMgYXJlIGFzc3VtZWQKKyAgICAgICAgICAgICAgICB0byBiZSB0aGUgbmFtZXMgb2YgcXVlcnkgcGFyYW1ldGVycyB0byBiZSBhcHBlbmRlZCB0byB0aGUKKyAgICAgICAgICAgICAgICBoeXBlcmxpbmsuICBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGVhY2gga2V5IG11c3QgYmUgZWl0aGVyCisgICAgICAgICAgICAgICAgYSBTdHJpbmcgb3IgYSBTdHJpbmcgYXJyYXkgcmVwcmVzZW50aW5nIHRoZSBwYXJhbWV0ZXIgdmFsdWUocykuCisgICAgICAgICAgICAgICAgSWYgYSBTdHJpbmcgYXJyYXkgaXMgc3BlY2lmaWVkLCBtb3JlIHRoYW4gb25lIHZhbHVlIGZvciB0aGUKKyAgICAgICAgICAgICAgICBzYW1lIHF1ZXJ5IHBhcmFtZXRlciBuYW1lIHdpbGwgYmUgY3JlYXRlZC48L3A+CisgICAgICAgICAgICAgICAgPC9pbmZvPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPmFuY2hvcjwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPk9wdGlvbmFsIGFuY2hvciB0YWcgKCIjeHh4IikgdG8gYmUgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgICAgaHlwZXJsaW5rLiAgU3BlY2lmeSB0aGlzIHZhbHVlIDxzdHJvbmc+d2l0aG91dDwvc3Ryb25nPiBhbnkKKyAgICAgICAgICAgICAgICAgICIjIiBjaGFyYWN0ZXIuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPmZvcndhcmQ8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5Mb2dpY2FsIG5hbWUgb2YgYSBnbG9iYWwgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgICAgY29udGFpbnMgdGhlIGFjdHVhbCBjb250ZW50LXJlbGF0aXZlIFVSSSBvZiB0aGUgZGVzdGluYXRpb24KKyAgICAgICAgICAgICAgICAgIG9mIHRoaXMgcmVkaXJlY3QuICBUaGlzIFVSSSBtYXkgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICAgIG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkCisgICAgICAgICAgICAgICAgICBpbiB0aGUgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlIDxjb2RlPmxpbmtOYW1lPC9jb2RlPgorICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5ocmVmPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIFVSTCB0byB3aGljaCB0aGlzIHJlZGlyZWN0IHdpbGwgdHJhbnNmZXIgY29udHJvbC4KKyAgICAgICAgICAgICAgICAgIFRoaXMgVVJMIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQgaW4gdGhlCisgICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLCB0aGUgPGNvZGU+bGlua05hbWU8L2NvZGU+CisgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgICAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgY29udGFpbnMgYSA8Y29kZT5NYXA8L2NvZGU+CisgICAgICAgICAgICAgICAgICByZXByZXNlbnRpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgICAgaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzCisgICAgICAgICAgICAgICAgICBjYWxsZWQgdG8gcmV0dXJuIGEgPGNvZGU+TWFwPC9jb2RlPiAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgICBpcyBzcGVjaWZpZWQpLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5wYWdlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIGNvbnRleHQtcmVsYXRpdmUgcGF0aCAoYmVnaW5uaW5nIHdpdGggYSAiLyIKKyAgICAgICAgICAgICAgICAgIGNoYXJhY3RlcikgdG8gd2hpY2ggdGhpcyBoeXBlcmxpbmsgd2lsbCB0cmFuc2ZlciBjb250cm9sCisgICAgICAgICAgICAgICAgICBpZiBhY3RpdmF0ZWQuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkIGluIHRoZQorICAgICAgICAgICAgICAgICAgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGV4YWN0bHkKKyAgICAgICAgICAgICAgICAgIG9uZSBvZiB0aGUgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlIDxjb2RlPmxpbmtOYW1lPC9jb2RlPgorICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5wYXJhbUlkPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuICBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcworICAgICAgICAgICAgICAgICAgZGVmaW5lZCBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhbmQgKG9wdGlvbmFsKQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlcywgb3B0aW9uYWxseSBzY29wZWQgYnkKKyAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBhdHRyaWJ1dGU8L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+cGFyYW1OYW1lPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGlzIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlCisgICAgICAgICAgICAgICAgICB2YWx1ZSBmb3IgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVkIGJ5IDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQCisgICAgICAgICAgICAgICAgICBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcyBjYWxsZWQgdG8gcmV0dXJuIGEgU3RyaW5nCisgICAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkKS4gIFRoZSBKU1AgYmVhbgorICAgICAgICAgICAgICAgICAgaXMgY29uc3RyYWluZWQgdG8gdGhlIGJlYW4gc2NvcGUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gcHJvcGVydHksIGlmIGl0IGlzIHNwZWNpZmllZC48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+cGFyYW1Qcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0CisgICAgICAgICAgICAgICAgICBiZSBhIFN0cmluZyBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAgIChuYW1lZCBieSB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4gYXR0cmlidXRlKSB0aGF0IHdpbGwgYmUKKyAgICAgICAgICAgICAgICAgIGR5bmFtaWNhbGx5IGFkZGVkIHRvIHRoaXMgaHlwZXJsaW5rLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5wYXJhbVNjb3BlPC9uYW1lPgorICAgICAgICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgICAgICAgIDxpbmZvPgorICAgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICAgIGFsbCBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdCBiZQorICAgICAgICAgICAgICAgICAgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCisgICAgICAgICAgICAgICAgICB0byBiZSBhZGRlZCB0byB0aGUgaHlwZXJsaW5rLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPgorICAgICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIGlmIHlvdSBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICA8L2luZm8+CisgICAgICAgICAgICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgICAgICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgICAgICAgPGluZm8+CisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwgYWxsCisgICAgICAgICAgICAgICAgICBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIDwvaW5mbz4KKyAgICAgICAgICAgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgICAgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICAgICAgICA8bmFtZT50cmFuc2FjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgICAgICAgICAgPHA+U2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHlvdSB3YW50IHRoZSBjdXJyZW50CisgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uIGNvbnRyb2wgdG9rZW4gaW5jbHVkZWQgaW4gdGhlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgICAgICBVUkwgZm9yIHRoaXMgcmVkaXJlY3QuPC9wPgorICAgICAgICAgICAgICAgICAgPC9pbmZvPgorICAgICAgICAgICAgICAgIDwvYXR0cmlidXRlPgorCisgICAgICAgIDwvdGFnPgorCisKKzwvdGFnbGliPgorCis8L2JvZHk+CisKKzwvZG9jdW1lbnQ+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvc3RydXRzLW5lc3RlZC54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvc3RydXRzLW5lc3RlZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdhNWM3YwotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzZXJHdWlkZS9zdHJ1dHMtbmVzdGVkLnhtbApAQCAtMCwwICsxLDQwNTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0ic3RydXRzLW5lc3RlZC5odG1sIiBhdXRob3JzPSJmYWxzZSI+CisKKzxwcm9wZXJ0aWVzPgorICA8dGl0bGU+VGhlIFN0cnV0cyBGcmFtZXdvcmsgUHJvamVjdCAtIE5lc3RlZCBUYWdzPC90aXRsZT4KKzwvcHJvcGVydGllcz4KKworPGJvZHk+CisKKzx0YWdsaWI+CisgIDx0bGlidmVyc2lvbj4xLjA8L3RsaWJ2ZXJzaW9uPgorICA8anNwdmVyc2lvbj4xLjE8L2pzcHZlcnNpb24+CisgIDxzaG9ydG5hbWU+bmVzdGVkPC9zaG9ydG5hbWU+CisgIDxkaXNwbGF5LW5hbWU+U3RydXRzIE5lc3RlZCBUYWdzPC9kaXNwbGF5LW5hbWU+CisgIDx1cmk+aHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvdGFncy1uZXN0ZWQ8L3VyaT4KKyAgPGluZm8+CisgICAgPHA+W1NpbmNlIFN0cnV0cyAxLjFdPC9wPgorICAgIDxwPlRoaXMgdGFnIGxpYnJhcnkgYnJpbmdzIGEgbmVzdGVkIGNvbnRleHQgdG8gdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlCisgICAgU3RydXRzIGN1c3RvbSB0YWcgbGlicmFyeS48L3A+CisKKyAgICA8cD5JdCdzIHdyaXR0ZW4gaW4gYSBsYXllciB0aGF0IGV4dGVuZHMgdGhlIGN1cnJlbnQgU3RydXRzIHRhZ3MsIGJ1aWxkaW5nIG9uCisgICAgdGhlaXIgbG9naWMgYW5kIGZ1bmN0aW9uYWxpdHkuIFRoZSBsYXllciBlbmFibGVzIHRoZSB0YWdzIHRvIGJlIGF3YXJlIG9mIHRoZQorICAgIHRhZ3Mgd2hpY2ggc3Vycm91bmQgdGhlbSBzbyB0aGV5IGNhbiBjb3JyZWN0bHkgcHJvdmlkZSB0aGUgbmVzdGluZyBwcm9wZXJ0eQorICAgIHJlZmVyZW5jZSB0byB0aGUgU3RydXRzIHN5c3RlbS4KKyAgICA8L3A+CisKKyAgICA8cD48c3Ryb25nPkl0J3MgYWxsIGFib3V0IG5lc3RpbmcgYmVhbnMuLi48L3N0cm9uZz48YnIgLz4KKyAgICBBIGJlYW4gaG9sZHMgYSByZWZlcmVuY2UgdG8gYW5vdGhlciBiZWFuIGludGVybmFsbHksIGFuZCBhbGwgYWNjZXNzIHRvIHRoYXQKKyAgICBiZWFuIGlzIGhhbmRsZWQgdGhyb3VnaCB0aGUgY3VycmVudCBiZWFuLiBUaGlzIGFjdCBvZiBoYXZpbmcgb25lIGJlYW4ncworICAgIGFjY2VzcyBnbyB0aHJvdWdoIGFub3RoZXIgYmVhbiBpcyBrbm93biBhcyAibmVzdGluZyBiZWFucyIuIFRoZSBmaXJzdCBiZWFuCisgICAgaXMga25vd24gYXMgdGhlIHBhcmVudCBiZWFuLiBUaGUgYmVhbiB3aGljaCBpdCByZWZlcmVuY2VzLCBpcyBrbm93biBhcyBhCisgICAgY2hpbGQgYmVhbi4gVGhlIHRlcm1zICJwYXJlbnQiIGFuZCAiY2hpbGQiIGFyZSBjb21tb25seSB1c2VkIHRvIGRlc2NyaWJlIHRoZQorICAgIG1vZGVsJ3MgaGllcmFyY2h5LgorICAgIDwvcD4KKworICAgIDxwPjxzdHJvbmc+QSBzaW1wbGUgZXhhbXBsZS4uLiA8L3N0cm9uZz48YnIgLz4KKyAgICAgVGFrZSBhbiBvYmplY3Qgd2hpY2ggcmVwcmVzZW50cyBhIG1vbmtleS4gVGhlIG1vbmtleSdzIGpvYiBpcyB0byBwaWNrCisgICAgIGJ1bmNoZXMgb2YgYmFuYW5hcy4gT24gZWFjaCBidW5jaCBwaWNrZWQgaGFuZ3MgbWFueSBiYW5hbmFzLiBJZiB0aGlzIGNhc2UKKyAgICAgd2FzIHRyYW5zbGF0ZWQgdG8gYmVhbiBvYmplY3RzLCB0aGUgbW9ua2V5IG9iamVjdCB3b3VsZCBoYXZlIGEgcmVmZXJlbmNlIHRvCisgICAgIHRoZSBidW5jaCBvYmplY3RzIGhlIHBpY2tlZCwgYW5kIGVhY2ggYnVuY2ggb2JqZWN0IHdvdWxkIGhvbGQgYSByZWZlcmVuY2UKKyAgICAgdG8gdGhlIGJhbmFuYXMgaGFuZ2luZyBpbiB0aGUgYnVuY2guCisgICAgPC9wPgorCisgICAgPHA+PHN0cm9uZz5UbyBkZXNjcmliZSB0aGlzLi4uIDwvc3Ryb25nPjxiciAvPgorICAgICBUaGUgbW9ua2V5IG9iamVjdCBpcyB0aGUgcGFyZW50IHRvIHRoZSBidW5jaCBvYmplY3QsIGFuZCB0aGUgYnVuY2ggb2JqZWN0CisgICAgIGlzIGEgY2hpbGQgb2YgdGhlIG1vbmtleSBvYmplY3QuIFRoZSBidW5jaCBvYmplY3QgaXMgcGFyZW50IHRvIGl0cyBjaGlsZAorICAgICBiYW5hbmEgb2JqZWN0cywgYW5kIHRoZSBjaGlsZCBiYW5hbmEgb2JqZWN0cyBjaGlsZHJlbiBvZiB0aGUgYnVuY2ggb2JqZWN0LgorICAgICBUaGUgbW9ua2V5IGlzIGhpZ2hlciBpbiB0aGUgaGllcmFyY2h5IHRoYW4gdGhlIGJhbmFuYXMsIGFuZCB0aGUgYmFuYW5hcworICAgICBsb3dlciBpbiB0aGUgaGllcmFyY2h5IHRvIHRoZSBidW5jaGVzLgorICAgICA8L3A+CisKKyAgICA8cD5PbmUgc3BlY2lhbCB0ZXJtIHRvIHJlbWVtYmVyIGlzIGZvciB0aGUgbW9zdCBwYXJlbnQgY2xhc3MsIHdoaWNoIGlzIGtub3duCisgICAgYXMgdGhlICJyb290IiBvYmplY3Qgd2hpY2ggc3RhcnRzIHRoZSBoaWVyYXJjaHkuPC9wPgorCisgICAgPHA+TmVzdGVkIHRhZ3MgYXJlIGFsbCBhYm91dCBlZmZpY2llbnRseSBtYW5hZ2luZyB0aGlzIHN0eWxlIG9mIGhpZXJhcmNoeQorICAgIHN0cnVjdHVyZSB3aXRoaW4geW91ciBKU1AgbWFya3VwLjwvcD4KKworICAgIDxwPgorICAgIDxzdHJvbmc+SW1wb3J0YW50IE5vdGU6PC9zdHJvbmc+IE5lYXJseSBhbGwgdGhlc2UgdGFncyBleHRlbmQgdGFncyBmcm9tCisgICAgb3RoZXIgbGlicmFyaWVzIHRvIGJyaW5nIHRoZWlyIGZ1bmN0aW9uYWxpdHkgaW50byB0aGUgbmVzdGVkIGNvbnRleHQuCisgICAgTmVzdGluZyByZWxpZXMgb24gdGhlIHRhZ3Mgd29ya2luZyBhZ2FpbnN0IHRoZSBvbmUgYmVhbiBtb2RlbCwgYW5kIG1hbmFnaW5nCisgICAgdGhlIHByb3BlcnRpZXMgc28gdGhhdCB0aGV5IGJlY29tZSByZWxhdGl2ZSB0byB0aGUgcHJvcGVydGllcyB0aGV5IGFyZQorICAgIG5lc3RlZCB3aXRoaW4uIEluIGRvaW5nIHNvLCB0aGUgdGFncyB3aWxsIHNldCB0aGUgIm5hbWUiIGF0dHJpYnV0ZSBpbnRlcm5hbGx5CisgICAgKHdoZXJlIGFwcGxpY2FibGUpLCBhbmQgaW4gbWFueSBjYXNlcyB3aWxsIHJlbHkgb24gdGhlICJwcm9wZXJ0eSIgYXR0cmlidXRlCisgICAgYmVpbmcgc2V0IHNvIGl0IGNhbiBiZSB1cGRhdGVkIGludGVybmFsbHkgdG8gYmVjb21lIG5lc3RlZC4gVGhlIG9yaWdpbmFsIHRhZ3MKKyAgICBvbiBvY2Nhc2lvbiBwcm92aWRlIG9wdGlvbnMgdGhhdCBkb24ndCB1c2UgdGhlICJuYW1lIiBhbmQgInByb3BlcnR5IgorICAgIGF0dHJpYnV0ZXMuIFRoZXNlIHVzZXMgd2lsbCB0aGVuIGZhbGwgb3V0c2lkZSB0aGUgbmVzdGVkIGNvbnRleHQsIGFuZCB3aWxsCisgICAgbW9zdCBsaWtlbHkgY2F1c2UgZXJyb3IuIFRvIHRha2UgYWR2YW50YWdlIG9mIHRoZXNlIG9wdGlvbnMsIG1hcmt1cCB1c2luZworICAgIHRoZSBvcmlnaW5hbCB0YWcgZm9yIHRoZXNlIGNhc2VzLiBGb3IgYW4gZXhhbXBsZSBzZWUgdGhlCisgICAgPGEgaHJlZj0iI29wdGlvbnMiPjxjb2RlPiZsdDtuZXN0ZWQ6b3B0aW9ucyZndDs8L2NvZGU+PC9hPiB0YWcuCisgICAgPC9wPgorICA8L2luZm8+CisKKyAgPHRhZz4KKyAgICA8bmFtZT5uZXN0PC9uYW1lPgorICAgIDxzdW1tYXJ5PgorICAgICAgRGVmaW5lcyBhIG5ldyBsZXZlbCBvZiBuZXN0aW5nIGZvciBjaGlsZCB0YWdzIHRvIHJlZmVyZW5jZSB0bworICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD4KKyAgICAgIFRoaXMgdGFnIHByb3ZpZGVzIGEgc2ltcGxlIG1ldGhvZCBvZiBkZWZpbmluZyBhIGxvZ2ljYWwgbmVzdGluZyBsZXZlbCBpbgorICAgICAgdGhlIG5lc3RlZCBoaWVyYXJjaHkuIEl0IHJ1biBubyBleHBsaWNpdCBsb2dpYywgaXMgc2ltcGx5IGEgcGxhY2UgaG9sZGVyLgorICAgICAgSXQgYWxzbyBtZWFucyB5b3UgY2FuIHJlbW92ZSB0aGUgbmVlZCBmb3IgZXhwbGljaXQgc2V0dGluZyBvZiBsZXZlbAorICAgICAgcHJvcGVydGllcyBpbiBjaGlsZCB0YWdzLgorICAgICAgPC9wPgorICAgICAgPHA+CisgICAgICBKdXN0IGFzIHRoZSBpdGVyYXRlIHRhZyBwcm92aWRlIGEgcGFyZW50IHRvIG90aGVyIHRhZ3MsIHRoaXMgZG9lcyB0aGUgc2FtZQorICAgICAgYnV0IHRoZXJlIGlzIG5vIGxvZ2ljIGZvciBpdGVyYXRpbmcgb3Igb3RoZXJ3aXNlLgorICAgICAgPC9wPgorICAgICAgPHA+CisgICAgICBFeGFtcGxlLi4uPC9wPgorICAgICAgPHByZT4KKyZsdDtuZXN0ZWQ6d3JpdGUgcHJvcGVydHk9Im15TmVzdGVkTGV2ZWwucHJvcGVydHlPbmUiIC8mZ3Q7CismbHQ7bmVzdGVkOndyaXRlIHByb3BlcnR5PSJteU5lc3RlZExldmVsLnByb3BlcnR5VHdvIiAvJmd0OworJmx0O25lc3RlZDp3cml0ZSBwcm9wZXJ0eT0ibXlOZXN0ZWRMZXZlbC5wcm9wZXJ0eVRocmVlIiAvJmd0OworICAgICAgPC9wcmU+CisgICAgICA8cD5DYW4gaW5zdGVhZCBiZWNvbWUuLi48L3A+CisgICAgICA8cHJlPgorJmx0O25lc3RlZDpuZXN0IHByb3BlcnR5PSJteU5lc3RlZExldmVsIiAmZ3Q7CisgICZsdDtuZXN0ZWQ6d3JpdGUgcHJvcGVydHk9InByb3BlcnR5T25lIiAvJmd0OworICAmbHQ7bmVzdGVkOndyaXRlIHByb3BlcnR5PSJwcm9wZXJ0eVR3byIgLyZndDsKKyAgJmx0O25lc3RlZDp3cml0ZSBwcm9wZXJ0eT0icHJvcGVydHlUaHJlZSIgLyZndDsKKyZsdDsvbmVzdGVkOm5lc3QgJmd0OworICAgICAgPC9wcmU+CisgICAgPC9pbmZvPgorICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgICAgVGhpcyBzcGVjaWZpZXMgdGhlIHByb3BlcnR5IGJ5IHdoaWNoIHRoaXMgdGFnIGFuZCBhbGwgY2hpbGQgdGFncworICAgICAgICB3aWxsIGJlIHJlbGF0aXZlIHRvLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorICA8L3RhZz4KKworICA8dGFnPgorICAgIDxuYW1lPndyaXRlTmVzdGluZzwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICAgIFdyaXRlcyBvciBtYWtlcyBhIHNjcmlwdGluZyB2YXJpYWJsZSBvZiB0aGUgY3VycmVudCBuZXN0aW5nIGxldmVsLgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRXcml0ZU5lc3RpbmdUYWc8L3RhZ2NsYXNzPgorICAgIDx0ZWljbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFdyaXRlTmVzdGluZ1RlaTwvdGVpY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICBUaGlzIHRhZyBwcm92aWRlcyBhIHdheSBvZiBhY2Nlc3NpbmcgdGhlIG5lc3RlZCBwcm9wZXJ0eSByZWZlcmVuY2UgdXNlZCBieQorICAgICAgdGhlIG5lc3RlZCB0YWdzLiBDYW4gZXhwb3NlIGEgc2NyaXB0aW5nIHZhcmlhYmxlLCBvciBzaW1wbHkgd3JpdGUgb3V0IHRoZQorICAgICAgdmFsdWUuCisgICAgPC9pbmZvPgorICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgICAgSWYgbm90IHN1cHBsaWVkLCB3aWxsIHNpbXBseSB3cml0ZSBvdXQgYXMgaWYgIi4vIiBvciAidGhpcy8iIHdhcyBzdXBwbGllZC4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICAgIElmIDxpPmlkPC9pPiBpcyBzdXBwbGllZCwgdGhlbiB3aGF0IHdvdWxkIGhhdmUgYmVlbiB3cml0dGVuIG91dCBpbnRvIHRoZQorICAgICAgICByZXNwb25zZSBzdHJlYW0sIHdpbGwgaW5zdGVhZCBiZSBtYWRlIGF2YWlsYWJsZSBhcyBhIFN0cmluZyBvYmplY3QKKyAgICAgICAgZGVmaW5lZCBieSB0aGUgdmFyaWFibGUgbmFtZSBwcm92aWRlZC4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+ZmlsdGVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgICB0cnVlL2ZhbHNlIHZhbHVlLCBkZXNjcmliaW5nIHRvIHRoZSB0YWcgaWYgdGhlIHJlc3VsdCBpZiB0byBiZSBVUkxFbmNvZGVkLgorICAgICAgICBIZWxwcyBKYXZhU2NyaXB0IGFsb25nIGlmIHRoZSByZXN1bHQgaXMgcmVxdWlyZWQgZm9yIFVSTCBoYWNraW5nLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorICA8L3RhZz4KKyAgPHRhZz4KKyAgICA8bmFtZT5yb290PC9uYW1lPgorICAgIDxzdW1tYXJ5PlRvIHN0YXJ0IG9mZiBhIG5lc3RlZCBoaWVyYXJjaHkgd2l0aG91dCB0aGUgbmVlZCBmb3IgYSBmb3JtPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFJvb3RUYWc8L3RhZ2NsYXNzPgorICAgIDxib2R5Y29udGVudD5KU1A8L2JvZHljb250ZW50PgorICAgIDxpbmZvPgorICAgICAgPHA+CisgICAgICAgIFRoaXMgdGFnIGlzIHByb3ZpZGVkIHRvIGFsbG93IHRoZSBuZXN0ZWQgdGFncyB0byBmaW5kIGEgY29tbW9uIGJlYW4KKyAgICAgICAgcmVmZXJlbmNlIHdpdGhvdXQgdGhlIG5lZWQgZm9yIGEgZm9ybSBhbmQgaXRzIHJlbGF0aXZlIG92ZXJoZWFkLiBBcworICAgICAgICBsb25nIGFzIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgb2YgdGhpcyB0YWcgbWF0Y2hlcyB0aGUgbmFtZQorICAgICAgICBvZiBhIGJlYW4gaW4gc2NvcGUgb2YgdGhlIEpTUCAoaWU6IFN0cnV0cyB0YWdzIGNhbiBmaW5kIGl0IHZpYSB1c3VhbAorICAgICAgICBtZWFucykuIEZvciBleGFtcGxlIHlvdSBjYW4gbG9hZCBhIGJlYW4gZm9yIHVzZSB3aXRoIHRoZQorICAgICAgICA8Y29kZT5qc3A6dXNlQmVhbjwvY29kZT4gdGFnLgorICAgICAgPC9wPgorICAgICAgPHA+CisgICAgICAgIFRoZSB0YWcgY2FuIGFsc28gYmUgdXNlZCB3aXRob3V0IHNwZWNpZnlpbmcgdGhlIDxjb2RlPm5hbWU8L2NvZGU+CisgICAgICAgIGF0dHJpYnV0ZSwgYnV0IHRoaXMgaXMgb25seSBpbiB0aGUgY2FzZSB0aGF0IHRoZSBjdXJyZW50IEpTUCBpcyBhCisgICAgICAgIGR5bmFtaWMgaW5jbHVkZSBzcGVjaWZpZWQgaW4gYW5vdGhlciBmaWxlLiBZb3Ugd2lsbCBub3QgYmUgYWJsZSB0byBydW4KKyAgICAgICAgdGhlIHRhZyB3aXRob3V0IGEgbmFtZSB1bmxlc3MgdGhpcyBpbmNsdXNpb24gaXMgaW4gcGxhY2UuIE90aGVyd2lzZQorICAgICAgICB0aGUgbmVzdGVkIHRhZ3Mgd2lsbCBub3QgaGF2ZSB0aGUgYmVhbiBhbmQgcHJvcGVydHkgcmVmZXJlbmNlcyB0aGF0IHRoZXkKKyAgICAgICAgbmVlZCB0byBwcm92aWRlIHRoZWlyIGxvZ2ljLgorICAgICAgPC9wPgorICAgICAgPHA+CisgICAgICAgIDxzdHJvbmc+Tm90ZTwvc3Ryb25nPjogVGhlIGFjY2VzcyB0byBhIGJlYW4gdmlhIHRoZSA8Y29kZT5uYW1lPC9jb2RlPgorICAgICAgICBhdHRyaWJ1dGUgdGFrZXMgcHJpb3JpdHkgb3ZlciBsb29raW5nIGZvciB0aGUgcmVmZXJlbmNlIGZyb20gb3RoZXIKKyAgICAgICAgcGFyZW50IHRhZ3MuIFNvIGlmIGEgbmFtZSBpcyBzcGVjaWZpZWQsIGEgYmVhbiB3aWxsIGhhdmUgdG8gYmUgdGhlcmUKKyAgICAgICAgd2FpdGluZyBmb3IgaXQuIEl0IHdhcyBtYWRlIHRoaXMgd2F5IHNvIHRoYXQgeW91IGNvdWxkIHVzZSBzZXBhcmF0ZQorICAgICAgICBiZWFucyB3aXRoaW4gYSBKU1AgdGhhdCBpdHNlbGYgaXMgYW4gaW5jbHVzaW9uIGludG8gYW5vdGhlci4KKyAgICAgIDwvcD4KKyAgICA8L2luZm8+CisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBiZWFuIGJ5IHdoaWNoIGFsbCBjaGlsZCBuZXN0ZWQgdGFncyB3aWxsIGRlcml2ZSB0aGVpcgorICAgICAgICBiZWFuIHJlZmVyZW5jZSBmcm9tLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorICA8L3RhZz4KKworCis8IS0tIEJFQU4gZXh0ZW5kZWQgdGFncworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCistLT4KKyAgPHRhZyBkb2N1bWVudC1hdHRyaWJ1dGVzPSJmYWxzZSI+CisgICAgPG5hbWU+ZGVmaW5lPC9uYW1lPgorICAgIDxzdW1tYXJ5Pk5lc3RlZCBFeHRlbnNpb24gLQorICAgICAgRGVmaW5lIGEgc2NyaXB0aW5nIHZhcmlhYmxlIGJhc2VkIG9uIHRoZSB2YWx1ZShzKSBvZiB0aGUgc3BlY2lmaWVkCisgICAgICBiZWFuIHByb3BlcnR5LgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLk5lc3RlZERlZmluZVRhZzwvdGFnY2xhc3M+CisgICAgPHRlaWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWREZWZpbmVUZWk8L3RlaWNsYXNzPgorICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtYmVhbi5odG1sI2RlZmluZSI+PGNvZGU+Jmx0O2JlYW46ZGVmaW5lJmd0OzwvY29kZT48L2E+CisgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmlkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dG9TY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dHlwZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorCisgICAgPG5hbWU+bWVzc2FnZTwvbmFtZT4KKyAgICA8c3VtbWFyeT5OZXN0ZWQgRXh0ZW5zaW9uIC0KKyAgICBSZW5kZXIgYW4gaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZSBzdHJpbmcgdG8gdGhlIHJlc3BvbnNlLgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLk5lc3RlZE1lc3NhZ2VUYWc8L3RhZ2NsYXNzPgorICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtYmVhbi5odG1sI21lc3NhZ2UiPjxjb2RlPiZsdDtiZWFuOm1lc3NhZ2UmZ3Q7PC9jb2RlPjwvYT4KKyAgICAgIHRhZy4gUGxlYXNlIGNvbnN1bHQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uIG9uIHRhZyBhdHRyaWJ1dGVzCisgICAgICBhbmQgdXNhZ2UgZGV0YWlscy4KKyAgICAgIDwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YXJnMDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YXJnMTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YXJnMjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YXJnMzwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YXJnNDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5rZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmxvY2FsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworICA8dGFnIGRvY3VtZW50LWF0dHJpYnV0ZXM9ImZhbHNlIj4KKworICAgIDxuYW1lPnNpemU8L25hbWU+CisgICAgPHN1bW1hcnk+TmVzdGVkIEV4dGVuc2lvbiAtCisgICAgICBEZWZpbmUgYSBiZWFuIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiBhIENvbGxlY3Rpb24gb3IgTWFwLgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLk5lc3RlZFNpemVUYWc8L3RhZ2NsYXNzPgorICAgIDx0ZWljbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5TaXplVGVpPC90ZWljbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+ZW1wdHk8L2JvZHljb250ZW50PgorICAgIDxpbmZvPgorICAgICAgPHA+VGhpcyB0YWcgaXMgYW4gZXh0ZW5zaW9uIG9mIHRoZQorICAgICAgPGEgaHJlZj0ic3RydXRzLWJlYW4uaHRtbCNzaXplIj48Y29kZT4mbHQ7YmVhbjpzaXplJmd0OzwvY29kZT48L2E+CisgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmNvbGxlY3Rpb248L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmlkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKyAgPHRhZyBkb2N1bWVudC1hdHRyaWJ1dGVzPSJmYWxzZSI+CisKKyAgICA8bmFtZT53cml0ZTwvbmFtZT4KKyAgICA8c3VtbWFyeT5OZXN0ZWQgRXh0ZW5zaW9uIC0KKyAgICBSZW5kZXIgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgYmVhbiBwcm9wZXJ0eSB0byB0aGUgY3VycmVudAorICAgIEpzcFdyaXRlci4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWRXcml0ZVRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PmVtcHR5PC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgdGFnIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGUKKyAgICAgIDxhIGhyZWY9InN0cnV0cy1iZWFuLmh0bWwjd3JpdGUiPjxjb2RlPiZsdDtiZWFuOndyaXRlJmd0OzwvY29kZT48L2E+CisgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+ZmlsdGVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5mb3JtYXQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmZvcm1hdEtleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aWdub3JlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5sb2NhbGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKworPCEtLSBIVE1MIGV4dGVuZGVkIHRhZ3MKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLS0+CisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorICAgIDxuYW1lPmNoZWNrYm94PC9uYW1lPgorICAgIDxzdW1tYXJ5Pk5lc3RlZCBFeHRlbnNpb24gLSBSZW5kZXIgQSBDaGVja2JveCBJbnB1dCBGaWVsZDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZENoZWNrYm94VGFnPC90YWdjbGFzcz4KKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgdGFnIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGUKKyAgICAgIDxhIGhyZWY9InN0cnV0cy1odG1sLmh0bWwjY2hlY2tib3giPjxjb2RlPiZsdDtodG1sOmNoZWNrYm94Jmd0OzwvY29kZT48L2E+CisgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisgIDwvdGFnPgorCisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorICAgICA8bmFtZT5lcnJvcnM8L25hbWU+CisgICAgIDxzdW1tYXJ5PgorICAgICAgICBOZXN0ZWQgRXh0ZW5zaW9uIC0gQ29uZGl0aW9uYWxseSBkaXNwbGF5IGEgc2V0IG9mIGFjY3VtdWxhdGVkIGVycm9yIG1lc3NhZ2VzLgorICAgICA8L3N1bW1hcnk+CisgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkRXJyb3JzVGFnPC90YWdjbGFzcz4KKworICAgICA8Ym9keWNvbnRlbnQ+ZW1wdHk8L2JvZHljb250ZW50PgorICAgICA8aW5mbz4KKyAgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICAgPGEgaHJlZj0ic3RydXRzLWh0bWwuaHRtbCNlcnJvcnMiPjxjb2RlPiZsdDtodG1sOmVycm9ycyZndDs8L2NvZGU+PC9hPgorICAgICAgIHRhZy4gUGxlYXNlIGNvbnN1bHQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uIG9uIHRhZyBhdHRyaWJ1dGVzCisgICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICAgPC9wPgorICAgICA8L2luZm8+CisKKyAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgIDwvYXR0cmlidXRlPgorCisgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICA8bmFtZT5sb2NhbGU8L25hbWU+CisgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICA8L2F0dHJpYnV0ZT4KKworICAgICA8YXR0cmlidXRlPgorICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgIDwvYXR0cmlidXRlPgorCisgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgIDwvYXR0cmlidXRlPgorICA8L3RhZz4KKworCisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorICAgIDxuYW1lPmZpbGU8L25hbWU+CisgICAgPHN1bW1hcnk+TmVzdGVkIEV4dGVuc2lvbiAtCisgICAgICBSZW5kZXIgQSBGaWxlIFNlbGVjdCBJbnB1dCBGaWVsZAorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEZpbGVUYWc8L3RhZ2NsYXNzPgorICAgIDxpbmZvPgorICAgICAgPHA+VGhpcyB0YWcgaXMgYW4gZXh0ZW5zaW9uIG9mIHRoZQorICAgICAgPGEgaHJlZj0ic3RydXRzLWh0bWwuaHRtbCNmaWxlIj48Y29kZT4mbHQ7aHRtbDpmaWxlJmd0OzwvY29kZT48L2E+CisgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YWNjZXB0PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm1heGxlbmd0aDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnNpemU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisgIDwvdGFnPgorCisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorICAgIDxuYW1lPmZvcm08L25hbWU+CisgICAgPHN1bW1hcnk+TmVzdGVkIEV4dGVuc2lvbiAtIERlZmluZSBBbiBJbnB1dCBGb3JtPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkRm9ybVRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtaHRtbC5odG1sI2Zvcm0iPjxjb2RlPiZsdDtodG1sOmZvcm0mZ3Q7PC9jb2RlPjwvYT4KKyAgICAgIHRhZy4gUGxlYXNlIGNvbnN1bHQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uIG9uIHRhZyBhdHRyaWJ1dGVzCisgICAgICBhbmQgdXNhZ2UgZGV0YWlscy4KKyAgICAgIDwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YWN0aW9uPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmVuY3R5cGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmZvY3VzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5tZXRob2Q8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ucmVzZXQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uc3VibWl0PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGFyZ2V0PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworICA8dGFnIGRvY3VtZW50LWF0dHJpYnV0ZXM9ImZhbHNlIj4KKyAgIDxuYW1lPmhpZGRlbjwvbmFtZT4KKyAgICA8c3VtbWFyeT5OZXN0ZWQgRXh0ZW5zaW9uIC0KKyAgICAgICAgUmVuZGVyIEEgSGlkZGVuIEZpZWxkCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkSGlkZGVuVGFnPC90YWdjbGFzcz4KKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgdGFnIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGUKKyAgICAgIDxhIGhyZWY9InN0cnV0cy1odG1sLmh0bWwjaGlkZGVuIj48Y29kZT4mbHQ7aHRtbDpoaWRkZW4mZ3Q7PC9jb2RlPjwvYT4KKyAgICAgIHRhZy4gUGxlYXNlIGNvbnN1bHQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uIG9uIHRhZyBhdHRyaWJ1dGVzCisgICAgICBhbmQgdXNhZ2UgZGV0YWlscy4KKyAgICAgIDwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisgICAgCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8aW5mbz4KKyAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKyAgPC90YWc+CisKKyAgPHRhZyBkb2N1bWVudC1hdHRyaWJ1dGVzPSJmYWxzZSI+CisgICAgPG5hbWU+aW1hZ2U8L25hbWU+CisgICAgPHN1bW1hcnk+TmVzdGVkIEV4dGVuc2lvbiAtCisgICAgUmVuZGVyIGFuIGlucHV0IHRhZyBvZiB0eXBlICJpbWFnZSIKKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRJbWFnZVRhZzwvdGFnY2xhc3M+CisgICAgPGluZm8+CisgICAgPHA+VGhpcyB0YWcgaXMgYW4gZXh0ZW5zaW9uIG9mIHRoZQorICAgIDxhIGhyZWY9InN0cnV0cy1odG1sLmh0bWwjaW1hZ2UiPjxjb2RlPiZsdDtodG1sOmltYWdlJmd0OzwvY29kZT48L2E+CisgICAgdGFnLiBQbGVhc2UgY29uc3VsdCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgaW5mb3JtYXRpb24gb24gdGFnIGF0dHJpYnV0ZXMKKyAgICBhbmQgdXNhZ2UgZGV0YWlscy4KKyAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YWxpZ248L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5ib3JkZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmxvY2FsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhZ2VLZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zcmM8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnNyY0tleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworICA8dGFnIGRvY3VtZW50LWF0dHJpYnV0ZXM9ImZhbHNlIj4KKyAgICA8bmFtZT5pbWc8L25hbWU+CisgICAgPHN1bW1hcnk+TmVzdGVkIEV4dGVuc2lvbiAtIFJlbmRlciBhbiBIVE1MICJpbWciIHRhZzwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEltZ1RhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PmVtcHR5PC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgPGEgaHJlZj0ic3RydXRzLWh0bWwuaHRtbCNpbWciPjxjb2RlPiZsdDtodG1sOmltZyZndDs8L2NvZGU+PC9hPgorICAgIHRhZy4gUGxlYXNlIGNvbnN1bHQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uIG9uIHRhZyBhdHRyaWJ1dGVzCisgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgPC9wPgorICAgIDwvaW5mbz4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFsaWduPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Ym9yZGVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmhlaWdodDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aHNwYWNlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5pbWFnZU5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmlzbWFwPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5sb2NhbGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmxvd3NyYzwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wYXJhbUlkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wYWdlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wYWdlS2V5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wYXJhbU5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhcmFtUHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhcmFtU2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3JjPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zcmNLZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnVzZW1hcDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dnNwYWNlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT53aWR0aDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKyAgPHRhZyBkb2N1bWVudC1hdHRyaWJ1dGVzPSJmYWxzZSI+CisgICAgPG5hbWU+bGluazwvbmFtZT4KKyAgICA8c3VtbWFyeT5OZXN0ZWQgRXh0ZW5zaW9uIC0gUmVuZGVyIGFuIEhUTUwgYW5jaG9yIG9yIGh5cGVybGluazwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZExpbmtUYWc8L3RhZ2NsYXNzPgorICAgIDxpbmZvPgorICAgICAgPHA+VGhpcyB0YWcgaXMgYW4gZXh0ZW5zaW9uIG9mIHRoZQorICAgICAgPGEgaHJlZj0ic3RydXRzLWh0bWwuaHRtbCNsaW5rIj48Y29kZT4mbHQ7aHRtbDpsaW5rJmd0OzwvY29kZT48L2E+CisgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICA8L3A+CisgICAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hY3Rpb248L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFuY2hvcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Zm9yd2FyZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aHJlZjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aW5kZXhJZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bGlua05hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhcmFtSWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhcmFtTmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cGFyYW1Qcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cGFyYW1TY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnRhcmdldDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50cmFuc2FjdGlvbjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKyAgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorICAgICAgPG5hbWU+bWVzc2FnZXM8L25hbWU+CisgICAgICA8c3VtbWFyeT4KKyAgICAgICAgIE5lc3RlZCBFeHRlbnNpb24gLSBDb25kaXRpb25hbGx5IGRpc3BsYXkgYSBzZXQgb2YgYWNjdW11bGF0ZWQgbWVzc2FnZXMuCisgICAgICA8L3N1bW1hcnk+CisgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE1lc3NhZ2VzVGFnPC90YWdjbGFzcz4KKyAgICAgIDx0ZWljbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5NZXNzYWdlc1RlaTwvdGVpY2xhc3M+CisgICAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICAgICA8aW5mbz4KKyAgICAgICAgIDxwPlRoaXMgdGFnIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGUKKyAgICAgICAgIDxhIGhyZWY9InN0cnV0cy1odG1sLmh0bWwjbWVzc2FnZXMiPjxjb2RlPiZsdDtodG1sOm1lc3NhZ2VzJmd0OzwvY29kZT48L2E+CisgICAgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICAgICA8L3A+CisgICAgICAgPC9pbmZvPgorCisgICAgICA8YXR0cmlidXRlPgorICAgICAgICA8bmFtZT5pZDwvbmFtZT4KKyAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICA8bmFtZT5sb2NhbGU8L25hbWU+CisgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgPG5hbWU+aGVhZGVyPC9uYW1lPgorICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgPG5hbWU+Zm9vdGVyPC9uYW1lPgorICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8L2F0dHJpYnV0ZT4KKworICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgPG5hbWU+bWVzc2FnZTwvbmFtZT4KKyAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPC9hdHRyaWJ1dGU+CisKKyAgIDwvdGFnPgorCisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorICAgIDxuYW1lPm11bHRpYm94PC9uYW1lPgorICAgIDxzdW1tYXJ5Pk5lc3RlZCBFeHRlbnNpb24gLQorICAgICAgICBSZW5kZXIgQSBDaGVja2JveCBJbnB1dCBGaWVsZAorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE11bHRpYm94VGFnPC90YWdjbGFzcz4KKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgdGFnIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGUKKyAgICAgIDxhIGhyZWY9InN0cnV0cy1odG1sLmh0bWwjbXVsdGlib3giPjxjb2RlPiZsdDtodG1sOm11bHRpYm94Jmd0OzwvY29kZT48L2E+CisgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKyAgPHRhZyBkb2N1bWVudC1hdHRyaWJ1dGVzPSJmYWxzZSI+CisgICAgPG5hbWU+b3B0aW9uczwvbmFtZT4KKyAgICA8c3VtbWFyeT5OZXN0ZWQgRXh0ZW5zaW9uIC0gUmVuZGVyIGEgQ29sbGVjdGlvbiBvZiBTZWxlY3QgT3B0aW9uczwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE9wdGlvbnNUYWc8L3RhZ2NsYXNzPgorICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtaHRtbC5odG1sI29wdGlvbnMiPjxjb2RlPiZsdDtodG1sOm9wdGlvbnMmZ3Q7PC9jb2RlPjwvYT4KKyAgICAgIHRhZy4gUGxlYXNlIGNvbnN1bHQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uIG9uIHRhZyBhdHRyaWJ1dGVzCisgICAgICBhbmQgdXNhZ2UgZGV0YWlscy4KKyAgICAgIDwvcD4KKyAgICAgIDxwPgorICAgICAgPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgbmVzdGVkIGNvbnRleHQgb2YgdGhpcyB0YWcgcmVsaWVzIG9uIHRoZSB1c2UKKyAgICAgIG9mIHRoZSAicHJvcGVydHkiIHByb3BlcnR5LCBhbmQgdGhlIGludGVybmFsIHVzZSBvZiB0aGUgIm5hbWUiIHByb3BlcnR5LgorICAgICAgVGhlIG5lc3RlZCB0YWdzIHJlbHkgb24gdGhlc2UgcHJvcGVydGllcyBhbmQgd2lsbCBhdHRlbXB0IHRvIHNldCB0aGVtCisgICAgICBpdHNlbGYuIFRoZSA8Y29kZT4mbHQ7aHRtbDpvcHRpb25zJmd0OzwvY29kZT4gdGFnIHRoaXMgdGFnIGV4dGVuZGVkCisgICAgICBhbGxvd3Mgb3RoZXIgb3B0aW9ucyBmb3IgdGhlIHRhZyB3aGljaCBkb24ndCB1c2UgdGhlc2UgcHJvcGVydGllcy4KKyAgICAgIFRvIHRha2UgYWR2YW50YWdlIG9mIHRoZXNlIG9wdGlvbnMsIG1hcmt1cCB1c2luZyB0aGUKKyAgICAgIDxjb2RlPiZsdDtodG1sOm9wdGlvbnMmZ3Q7PC9jb2RlPiB0YWcgaW5zdGVhZCBvZiB0aGUgbmVzdGVkIHRhZy4KKyAgICAgIDwvcD4KKyAgICAgIDxwPgorICAgICAgRm9yIGV4YW1wbGUsIHRoZSAiY29sbGVjdGlvbnMiIG9wdGlvbiBhbGxvd3MgeW91IHRvIHNwZWNpZnkgYSBzZXBhcmF0ZQorICAgICAgYmVhbiByZWZlcmVuY2Ugd2hpY2ggaXRzZWxmIGlzIGEgbGlzdCBvZiBvYmplY3RzIHdpdGggcHJvcGVydGllcworICAgICAgdG8gYWNjZXNzIHRoZSB0aXRsZSBhbmQgdmFsdWUgcGFydHMgb2YgdGhlIGh0bWwgb3B0aW9uIHRhZy4gWW91IGNhbiB1c2UKKyAgICAgIHRoaXMgaW4gYSBuZXN0ZWQgY29udGV4dCAodGhlIGxpc3QgaXMgYSBwcm9wZXJ0eSBvZiBhIG5lc3RlZCBiZWFuKSBieQorICAgICAgdXNpbmcgdGhlIG5lc3RlZCBkZWZpbmUgdGFnIGFuZCB0aGUgb3JpZ2luYWwgb3B0aW9ucyB0YWcuCisgICAgICA8L3A+Cis8cHJlPgorJmx0O25lc3RlZDpuZXN0IHByb3BlcnR5PSJteU5lc3RlZExldmVsIiAvJmd0OworICAmbHQ7bmVzdGVkOmRlZmluZSBwcm9wZXJ0eT0iY29sbGVjdGlvbkxpc3QiIC8mZ3Q7CisgICZsdDtodG1sOm9wdGlvbnMgY29sbGVjdGlvbj0iY29sbGVjdGlvbkxpc3QiCisgICAgICAgICAgICAgICAgICBwcm9wZXJ0eT0ibGFiZWxQcm9wZXJ0eSIKKyAgICAgICAgICAgICB2YWx1ZVByb3BlcnR5PSJ2YWx1ZVByb3BlcnR5IiAvJmd0OworJmx0Oy9uZXN0ZWQ6bmVzdCAmZ3Q7Cis8L3ByZT4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Y29sbGVjdGlvbjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bGFiZWxOYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5sYWJlbFByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorICAgIDxuYW1lPm9wdGlvbnNDb2xsZWN0aW9uPC9uYW1lPgorICAgIDxzdW1tYXJ5Pk5lc3RlZCBFeHRlbnNpb24gLQorICAgICAgICBSZW5kZXIgYSBDb2xsZWN0aW9uIG9mIFNlbGVjdCBPcHRpb25zCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWc8L3RhZ2NsYXNzPgorICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtaHRtbC5odG1sI29wdGlvbnNDb2xsZWN0aW9uIgorICAgICAgPjxjb2RlPiZsdDtodG1sOm9wdGlvbnNDb2xsZWN0aW9uJmd0OzwvY29kZT48L2E+CisgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmxhYmVsPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorICA8L3RhZz4KKworICA8dGFnIGRvY3VtZW50LWF0dHJpYnV0ZXM9ImZhbHNlIj4KKyAgICA8bmFtZT5wYXNzd29yZDwvbmFtZT4KKyAgICA8c3VtbWFyeT5OZXN0ZWQgRXh0ZW5zaW9uIC0KKyAgICAgICAgUmVuZGVyIEEgUGFzc3dvcmQgSW5wdXQgRmllbGQKKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRQYXNzd29yZFRhZzwvdGFnY2xhc3M+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtaHRtbC5odG1sI3Bhc3N3b3JkIj48Y29kZT4mbHQ7aHRtbDpwYXNzd29yZCZndDs8L2NvZGU+PC9hPgorICAgICAgdGFnLiBQbGVhc2UgY29uc3VsdCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgaW5mb3JtYXRpb24gb24gdGFnIGF0dHJpYnV0ZXMKKyAgICAgIGFuZCB1c2FnZSBkZXRhaWxzLgorICAgICAgPC9wPgorICAgIDwvaW5mbz4KKworCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5tYXhsZW5ndGg8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cmVhZG9ubHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnJlZGlzcGxheTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnNpemU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworICA8dGFnIGRvY3VtZW50LWF0dHJpYnV0ZXM9ImZhbHNlIj4KKyAgICA8bmFtZT5yYWRpbzwvbmFtZT4KKyAgICA8c3VtbWFyeT5OZXN0ZWQgRXh0ZW5zaW9uIC0KKyAgICAgICAgUmVuZGVyIEEgUmFkaW8gQnV0dG9uIElucHV0IEZpZWxkCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkUmFkaW9UYWc8L3RhZ2NsYXNzPgorICAgIDxpbmZvPgorICAgICAgPHA+VGhpcyB0YWcgaXMgYW4gZXh0ZW5zaW9uIG9mIHRoZQorICAgICAgPGEgaHJlZj0ic3RydXRzLWh0bWwuaHRtbCNyYWRpbyI+PGNvZGU+Jmx0O2h0bWw6cmFkaW8mZ3Q7PC9jb2RlPjwvYT4KKyAgICAgIHRhZy4gUGxlYXNlIGNvbnN1bHQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uIG9uIHRhZyBhdHRyaWJ1dGVzCisgICAgICBhbmQgdXNhZ2UgZGV0YWlscy4KKyAgICAgIDwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisgIDwvdGFnPgorCisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorICAgIDxuYW1lPnNlbGVjdDwvbmFtZT4KKyAgICA8c3VtbWFyeT5OZXN0ZWQgRXh0ZW5zaW9uIC0KKyAgICBSZW5kZXIgQSBTZWxlY3QgRWxlbWVudAorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZFNlbGVjdFRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtaHRtbC5odG1sI3NlbGVjdCI+PGNvZGU+Jmx0O2h0bWw6c2VsZWN0Jmd0OzwvY29kZT48L2E+CisgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5tdWx0aXBsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnNpemU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorICA8dGFnIGRvY3VtZW50LWF0dHJpYnV0ZXM9ImZhbHNlIj4KKworICAgIDxuYW1lPnN1Ym1pdDwvbmFtZT4KKyAgICA8c3VtbWFyeT5OZXN0ZWQgRXh0ZW5zaW9uIC0gUmVuZGVyIEEgU3VibWl0IEJ1dHRvbjwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZFN1Ym1pdFRhZzwvdGFnY2xhc3M+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtaHRtbC5odG1sI3N1Ym1pdCI+PGNvZGU+Jmx0O2h0bWw6c3VibWl0Jmd0OzwvY29kZT48L2E+CisgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorICA8dGFnIGRvY3VtZW50LWF0dHJpYnV0ZXM9ImZhbHNlIj4KKworICAgIDxuYW1lPnRleHQ8L25hbWU+CisgICAgPHN1bW1hcnk+TmVzdGVkIEV4dGVuc2lvbiAtCisgICAgICAgIFJlbmRlciBBbiBJbnB1dCBGaWVsZCBvZiBUeXBlIHRleHQKKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRUZXh0VGFnPC90YWdjbGFzcz4KKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgdGFnIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGUKKyAgICAgIDxhIGhyZWY9InN0cnV0cy1odG1sLmh0bWwjdGV4dCI+PGNvZGU+Jmx0O2h0bWw6dGV4dCZndDs8L2NvZGU+PC9hPgorICAgICAgdGFnLiBQbGVhc2UgY29uc3VsdCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgaW5mb3JtYXRpb24gb24gdGFnIGF0dHJpYnV0ZXMKKyAgICAgIGFuZCB1c2FnZSBkZXRhaWxzLgorICAgICAgPC9wPgorICAgIDwvaW5mbz4KKworCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5tYXhsZW5ndGg8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5yZWFkb25seTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c2l6ZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKyAgPHRhZyBkb2N1bWVudC1hdHRyaWJ1dGVzPSJmYWxzZSI+CisKKyAgICA8bmFtZT50ZXh0YXJlYTwvbmFtZT4KKyAgICA8c3VtbWFyeT5OZXN0ZWQgRXh0ZW5zaW9uIC0gUmVuZGVyIEEgVGV4dGFyZWE8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRUZXh0YXJlYVRhZzwvdGFnY2xhc3M+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtaHRtbC5odG1sI3RleHRhcmVhIj48Y29kZT4mbHQ7aHRtbDp0ZXh0YXJlYSZndDs8L2NvZGU+PC9hPgorICAgICAgdGFnLiBQbGVhc2UgY29uc3VsdCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgaW5mb3JtYXRpb24gb24gdGFnIGF0dHJpYnV0ZXMKKyAgICAgIGFuZCB1c2FnZSBkZXRhaWxzLgorICAgICAgPC9wPgorICAgIDwvaW5mbz4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5jb2xzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnJlYWRvbmx5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5yb3dzPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisKKworCisKKzwhLS0gTE9HSUMgZXh0ZW5kZWQgdGFncworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCistLT4KKworICA8dGFnIGRvY3VtZW50LWF0dHJpYnV0ZXM9ImZhbHNlIj4KKworICAgIDxuYW1lPmVtcHR5PC9uYW1lPgorICAgIDxzdW1tYXJ5Pk5lc3RlZCBFeHRlbnNpb24gLQorICAgIEV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSByZXF1ZXN0ZWQgdmFyaWFibGUgaXMKKyAgICBlaXRoZXIgPGNvZGU+bnVsbDwvY29kZT4gb3IgYW4gZW1wdHkgc3RyaW5nLgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRFbXB0eVRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtbG9naWMuaHRtbCNlbXB0eSI+PGNvZGU+Jmx0O2xvZ2ljOmVtcHR5Jmd0OzwvY29kZT48L2E+CisgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorCisgICAgPG5hbWU+ZXF1YWw8L25hbWU+CisgICAgPHN1bW1hcnk+TmVzdGVkIEV4dGVuc2lvbiAtCisgICAgRXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHJlcXVlc3RlZAorICAgIHZhcmlhYmxlIGlzIGVxdWFsIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEVxdWFsVGFnPC90YWdjbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgdGFnIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGUKKyAgICAgIDxhIGhyZWY9InN0cnV0cy1sb2dpYy5odG1sI2VxdWFsIj48Y29kZT4mbHQ7bG9naWM6ZXF1YWwmZ3Q7PC9jb2RlPjwvYT4KKyAgICAgIHRhZy4gUGxlYXNlIGNvbnN1bHQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uIG9uIHRhZyBhdHRyaWJ1dGVzCisgICAgICBhbmQgdXNhZ2UgZGV0YWlscy4KKyAgICAgIDwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Y29va2llPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5oZWFkZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhcmFtZXRlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKyAgPHRhZyBkb2N1bWVudC1hdHRyaWJ1dGVzPSJmYWxzZSI+CisKKyAgICA8bmFtZT5ncmVhdGVyRXF1YWw8L25hbWU+CisgICAgPHN1bW1hcnk+TmVzdGVkIEV4dGVuc2lvbiAtIEV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSByZXF1ZXN0ZWQKKyAgICB2YXJpYWJsZSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkR3JlYXRlckVxdWFsVGFnPC90YWdjbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgdGFnIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGUKKyAgICAgIDxhIGhyZWY9InN0cnV0cy1sb2dpYy5odG1sI2dyZWF0ZXJFcXVhbCI+PGNvZGU+Jmx0O2xvZ2ljOmdyZWF0ZXJFcXVhbCZndDs8L2NvZGU+PC9hPgorICAgICAgdGFnLiBQbGVhc2UgY29uc3VsdCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgaW5mb3JtYXRpb24gb24gdGFnIGF0dHJpYnV0ZXMKKyAgICAgIGFuZCB1c2FnZSBkZXRhaWxzLgorICAgICAgPC9wPgorICAgIDwvaW5mbz4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5jb29raWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmhlYWRlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cGFyYW1ldGVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorICA8dGFnIGRvY3VtZW50LWF0dHJpYnV0ZXM9ImZhbHNlIj4KKworICAgIDxuYW1lPmdyZWF0ZXJUaGFuPC9uYW1lPgorICAgIDxzdW1tYXJ5Pk5lc3RlZCBFeHRlbnNpb24gLQorICAgICAgRXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHJlcXVlc3RlZAorICAgICAgdmFyaWFibGUgaXMgZ3JlYXRlciB0aGFuIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEdyZWF0ZXJUaGFuVGFnPC90YWdjbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgdGFnIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGUKKyAgICAgIDxhIGhyZWY9InN0cnV0cy1sb2dpYy5odG1sI2dyZWF0ZXJUaGFuIj48Y29kZT4mbHQ7bG9naWM6Z3JlYXRlclRoYW4mZ3Q7PC9jb2RlPjwvYT4KKyAgICAgIHRhZy4gUGxlYXNlIGNvbnN1bHQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uIG9uIHRhZyBhdHRyaWJ1dGVzCisgICAgICBhbmQgdXNhZ2UgZGV0YWlscy4KKyAgICAgIDwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Y29va2llPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5oZWFkZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhcmFtZXRlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKyAgPHRhZyBkb2N1bWVudC1hdHRyaWJ1dGVzPSJmYWxzZSI+CisKKyAgICA8bmFtZT5pdGVyYXRlPC9uYW1lPgorICAgIDxzdW1tYXJ5Pk5lc3RlZCBFeHRlbnNpb24gLQorICAgICAgUmVwZWF0IHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIG92ZXIgYSBzcGVjaWZpZWQgY29sbGVjdGlvbi4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkSXRlcmF0ZVRhZzwvdGFnY2xhc3M+CisgICAgPHRlaWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkSXRlcmF0ZVRlaTwvdGVpY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtbG9naWMuaHRtbCNpdGVyYXRlIj48Y29kZT4mbHQ7bG9naWM6aXRlcmF0ZSZndDs8L2NvZGU+PC9hPgorICAgICAgdGFnLiBQbGVhc2UgY29uc3VsdCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgaW5mb3JtYXRpb24gb24gdGFnIGF0dHJpYnV0ZXMKKyAgICAgIGFuZCB1c2FnZSBkZXRhaWxzLgorICAgICAgPC9wPgorICAgIDwvaW5mbz4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5jb2xsZWN0aW9uPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5pZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aW5kZXhJZDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bGVuZ3RoPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5vZmZzZXQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dHlwZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorCisgICAgPG5hbWU+bGVzc0VxdWFsPC9uYW1lPgorICAgIDxzdW1tYXJ5Pk5lc3RlZCBFeHRlbnNpb24gLQorICAgICAgRXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHJlcXVlc3RlZAorICAgICAgdmFyaWFibGUgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZExlc3NFcXVhbFRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtbG9naWMuaHRtbCNsZXNzRXF1YWwiPjxjb2RlPiZsdDtsb2dpYzpsZXNzRXF1YWwmZ3Q7PC9jb2RlPjwvYT4KKyAgICAgIHRhZy4gUGxlYXNlIGNvbnN1bHQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uIG9uIHRhZyBhdHRyaWJ1dGVzCisgICAgICBhbmQgdXNhZ2UgZGV0YWlscy4KKyAgICAgIDwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Y29va2llPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5oZWFkZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhcmFtZXRlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKyAgPHRhZyBkb2N1bWVudC1hdHRyaWJ1dGVzPSJmYWxzZSI+CisKKyAgICA8bmFtZT5sZXNzVGhhbjwvbmFtZT4KKyAgICA8c3VtbWFyeT5OZXN0ZWQgRXh0ZW5zaW9uIC0KKyAgICAgIEV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSByZXF1ZXN0ZWQKKyAgICAgIHZhcmlhYmxlIGlzIGxlc3MgdGhhbiB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRMZXNzVGhhblRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtbG9naWMuaHRtbCNsZXNzVGhhbiI+PGNvZGU+Jmx0O2xvZ2ljOmxlc3NUaGFuJmd0OzwvY29kZT48L2E+CisgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmNvb2tpZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aGVhZGVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wYXJhbWV0ZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorCisgICAgPG5hbWU+bWF0Y2g8L25hbWU+CisgICAgPHN1bW1hcnk+TmVzdGVkIEV4dGVuc2lvbiAtCisgICAgICBFdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgICAgICBpcyBhbiBhcHByb3ByaWF0ZSBzdWJzdHJpbmcgb2YgdGhlIHJlcXVlc3RlZCB2YXJpYWJsZS4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTWF0Y2hUYWc8L3RhZ2NsYXNzPgorICAgIDxib2R5Y29udGVudD5KU1A8L2JvZHljb250ZW50PgorICAgIDxpbmZvPgorICAgICAgPHA+VGhpcyB0YWcgaXMgYW4gZXh0ZW5zaW9uIG9mIHRoZQorICAgICAgPGEgaHJlZj0ic3RydXRzLWxvZ2ljLmh0bWwjbWF0Y2giPjxjb2RlPiZsdDtsb2dpYzptYXRjaCZndDs8L2NvZGU+PC9hPgorICAgICAgdGFnLiBQbGVhc2UgY29uc3VsdCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgaW5mb3JtYXRpb24gb24gdGFnIGF0dHJpYnV0ZXMKKyAgICAgIGFuZCB1c2FnZSBkZXRhaWxzLgorICAgICAgPC9wPgorICAgIDwvaW5mbz4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5jb29raWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmhlYWRlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bG9jYXRpb248L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnBhcmFtZXRlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworICA8dGFnIGRvY3VtZW50LWF0dHJpYnV0ZXM9ImZhbHNlIj4KKworICAgIDxuYW1lPm1lc3NhZ2VzTm90UHJlc2VudDwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICAgICBOZXN0ZWQgRXh0ZW5zaW9uIC0KKyAgICAgICBHZW5lcmF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkCisgICAgICAgbWVzc2FnZSBpcyBub3QgcHJlc2VudCBpbiB0aGlzIHJlcXVlc3QuCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtbG9naWMuaHRtbCNtZXNzYWdlc05vdFByZXNlbnQiPjxjb2RlPiZsdDtsb2dpYzptZXNzYWdlc05vdFByZXNlbnQmZ3Q7PC9jb2RlPjwvYT4KKyAgICAgIHRhZy4gUGxlYXNlIGNvbnN1bHQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uIG9uIHRhZyBhdHRyaWJ1dGVzCisgICAgICBhbmQgdXNhZ2UgZGV0YWlscy4KKyAgICAgIDwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm1lc3NhZ2U8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorCisgICAgPG5hbWU+bWVzc2FnZXNQcmVzZW50PC9uYW1lPgorICAgIDxzdW1tYXJ5PgorICAgICAgIE5lc3RlZCBFeHRlbnNpb24gLQorICAgICAgIEdlbmVyYXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQKKyAgICAgICBtZXNzYWdlIGlzIHByZXNlbnQgaW4gdGhpcyByZXF1ZXN0LgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWc8L3RhZ2NsYXNzPgorICAgIDxib2R5Y29udGVudD5KU1A8L2JvZHljb250ZW50PgorICAgIDxpbmZvPgorICAgICAgPHA+VGhpcyB0YWcgaXMgYW4gZXh0ZW5zaW9uIG9mIHRoZQorICAgICAgPGEgaHJlZj0ic3RydXRzLWxvZ2ljLmh0bWwjbWVzc2FnZXNQcmVzZW50Ij48Y29kZT4mbHQ7bG9naWM6bWVzc2FnZXNQcmVzZW50Jmd0OzwvY29kZT48L2E+CisgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5tZXNzYWdlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworCisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorCisgICAgPG5hbWU+bm90RW1wdHk8L25hbWU+CisgICAgPHN1bW1hcnk+TmVzdGVkIEV4dGVuc2lvbiAtCisgICAgICBFdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgcmVxdWVzdGVkIHZhcmlhYmxlIGlzCisgICAgICBuZWl0aGVyIDxjb2RlPm51bGw8L2NvZGU+IG5vciBhbiBlbXB0eSBzdHJpbmcuCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE5vdEVtcHR5VGFnPC90YWdjbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgdGFnIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGUKKyAgICAgIDxhIGhyZWY9InN0cnV0cy1sb2dpYy5odG1sI25vdEVtcHR5Ij48Y29kZT4mbHQ7bG9naWM6bm90RW1wdHkmZ3Q7PC9jb2RlPjwvYT4KKyAgICAgIHRhZy4gUGxlYXNlIGNvbnN1bHQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uIG9uIHRhZyBhdHRyaWJ1dGVzCisgICAgICBhbmQgdXNhZ2UgZGV0YWlscy4KKyAgICAgIDwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKyAgPHRhZyBkb2N1bWVudC1hdHRyaWJ1dGVzPSJmYWxzZSI+CisKKyAgICA8bmFtZT5ub3RFcXVhbDwvbmFtZT4KKyAgICA8c3VtbWFyeT5OZXN0ZWQgRXh0ZW5zaW9uIC0KKyAgICAgIEV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSByZXF1ZXN0ZWQKKyAgICAgIHZhcmlhYmxlIGlzIG5vdCBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgIDwvc3VtbWFyeT4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWROb3RFcXVhbFRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtbG9naWMuaHRtbCNub3RFcXVhbCI+PGNvZGU+Jmx0O2xvZ2ljOm5vdEVxdWFsJmd0OzwvY29kZT48L2E+CisgICAgICB0YWcuIFBsZWFzZSBjb25zdWx0IGl0cyBkb2N1bWVudGF0aW9uIGZvciBpbmZvcm1hdGlvbiBvbiB0YWcgYXR0cmlidXRlcworICAgICAgYW5kIHVzYWdlIGRldGFpbHMuCisgICAgICA8L3A+CisgICAgPC9pbmZvPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmNvb2tpZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aGVhZGVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wYXJhbWV0ZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorCisgICAgPG5hbWU+bm90TWF0Y2g8L25hbWU+CisgICAgPHN1bW1hcnk+TmVzdGVkIEV4dGVuc2lvbiAtCisgICAgICBFdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgICAgICBpcyBub3QgYW4gYXBwcm9wcmlhdGUgc3Vic3RyaW5nIG9mIHRoZSByZXF1ZXN0ZWQgdmFyaWFibGUuCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE5vdE1hdGNoVGFnPC90YWdjbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICA8aW5mbz4KKyAgICAgIDxwPlRoaXMgdGFnIGlzIGFuIGV4dGVuc2lvbiBvZiB0aGUKKyAgICAgIDxhIGhyZWY9InN0cnV0cy1sb2dpYy5odG1sI25vdE1hdGNoIj48Y29kZT4mbHQ7bG9naWM6bm90TWF0Y2gmZ3Q7PC9jb2RlPjwvYT4KKyAgICAgIHRhZy4gUGxlYXNlIGNvbnN1bHQgaXRzIGRvY3VtZW50YXRpb24gZm9yIGluZm9ybWF0aW9uIG9uIHRhZyBhdHRyaWJ1dGVzCisgICAgICBhbmQgdXNhZ2UgZGV0YWlscy4KKyAgICAgIDwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Y29va2llPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5oZWFkZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmxvY2F0aW9uPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wYXJhbWV0ZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisgIDx0YWcgZG9jdW1lbnQtYXR0cmlidXRlcz0iZmFsc2UiPgorCisgICAgPG5hbWU+bm90UHJlc2VudDwvbmFtZT4KKyAgICA8c3VtbWFyeT5OZXN0ZWQgRXh0ZW5zaW9uIC0KKyAgICAgIEdlbmVyYXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQKKyAgICAgIHZhbHVlIGlzIG5vdCBwcmVzZW50IGluIHRoaXMgcmVxdWVzdC4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTm90UHJlc2VudFRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtbG9naWMuaHRtbCNub3RQcmVzZW50Ij48Y29kZT4mbHQ7bG9naWM6bm90UHJlc2VudCZndDs8L2NvZGU+PC9hPgorICAgICAgdGFnLiBQbGVhc2UgY29uc3VsdCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgaW5mb3JtYXRpb24gb24gdGFnIGF0dHJpYnV0ZXMKKyAgICAgIGFuZCB1c2FnZSBkZXRhaWxzLgorICAgICAgPC9wPgorICAgIDwvaW5mbz4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5jb29raWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmhlYWRlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cGFyYW1ldGVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cm9sZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnVzZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorICA8dGFnIGRvY3VtZW50LWF0dHJpYnV0ZXM9ImZhbHNlIj4KKworICAgIDxuYW1lPnByZXNlbnQ8L25hbWU+CisgICAgPHN1bW1hcnk+TmVzdGVkIEV4dGVuc2lvbiAtCisgICAgICBHZW5lcmF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkCisgICAgICB2YWx1ZSBpcyBwcmVzZW50IGluIHRoaXMgcmVxdWVzdC4KKyAgICA8L3N1bW1hcnk+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkUHJlc2VudFRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgPGluZm8+CisgICAgICA8cD5UaGlzIHRhZyBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICA8YSBocmVmPSJzdHJ1dHMtbG9naWMuaHRtbCNwcmVzZW50Ij48Y29kZT4mbHQ7bG9naWM6cHJlc2VudCZndDs8L2NvZGU+PC9hPgorICAgICAgdGFnLiBQbGVhc2UgY29uc3VsdCBpdHMgZG9jdW1lbnRhdGlvbiBmb3IgaW5mb3JtYXRpb24gb24gdGFnIGF0dHJpYnV0ZXMKKyAgICAgIGFuZCB1c2FnZSBkZXRhaWxzLgorICAgICAgPC9wPgorICAgIDwvaW5mbz4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5jb29raWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmhlYWRlcjwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cGFyYW1ldGVyPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cm9sZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnVzZXI8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCis8L3RhZ2xpYj4KKworPC9ib2R5PgorCis8L2RvY3VtZW50PgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3N0cnV0cy10aWxlcy54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2VyR3VpZGUvc3RydXRzLXRpbGVzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNGUzOTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3MvdXNlckd1aWRlL3N0cnV0cy10aWxlcy54bWwKQEAgLTAsMCArMSw4MjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPGRvY3VtZW50IHVybD0ic3RydXRzLXRpbGVzLmh0bWwiIGF1dGhvcnM9ImZhbHNlIj4KKworPHByb3BlcnRpZXM+CisgIDx0aXRsZT5UaWxlcyBUYWcgTGlicmFyeTwvdGl0bGU+Cis8L3Byb3BlcnRpZXM+CisKKzxib2R5PgorCisKKzx0YWdsaWI+CisKKyAgPCEtLSA9PT09PT09PT09PT09PSBUYWcgTGlicmFyeSBEZXNjcmlwdGlvbiBFbGVtZW50cyA9PT09PT09PT09PT09IC0tPgorCisgIDx0bGlidmVyc2lvbj4xLjA8L3RsaWJ2ZXJzaW9uPgorICA8anNwdmVyc2lvbj4xLjE8L2pzcHZlcnNpb24+CisgIDxzaG9ydG5hbWU+dGlsZXM8L3Nob3J0bmFtZT4KKyAgPGRpc3BsYXktbmFtZT5UaWxlcyBUYWcgTGlicmFyeTwvZGlzcGxheS1uYW1lPgorICA8dXJpPmh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL3RhZ3MtdGlsZXM8L3VyaT4KKyAgPGluZm8+CisgICAgPHA+VGhpcyB0YWcgbGlicmFyeSBwcm92aWRlcyB0aWxlcyB0YWdzLjwvcD4KKyAgICA8cD5UaWxlcyB3ZXJlIHByZXZpb3VzbHkgY2FsbGVkIENvbXBvbmVudHMuIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIG5hbWVzLCBwYWdlcywgY29tcG9uZW50cyBhbmQgdGVtcGxhdGVzCisgICAgYXJlIHVzZWQgaW5kaWZmZXJlbnRseSB0byBkZXNpZ24gYSB0aWxlLiBBbHNvLCBhIGxvdCBvZiB0YWdzIGFuZCBhdHRyaWJ1dGUgbmFtZXMgYXJlCisgICAgbGVmdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS48L3A+CisgICAgPHA+VG8ga25vdyBtb3JlIGFib3V0IHRhZ3MgZGVmaW5lZCBpbiB0aGlzIGxpYnJhcnksIGNoZWNrIHRoZSBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb246CisgICAgdGlsZXMtZG9jLjwvcD4KKyAgPC9pbmZvPgorCisgPCEtLSA9PT09PT09PT09PT09PT09PT09PT0gSW5jbHVkZSBUYWdzID09PT09PT09PT09PT09PT09PT09PT0gLS0+CisKKyAgPHRhZz4KKyAgICA8bmFtZT5pbnNlcnQ8L25hbWU+CisgICAgPHN1bW1hcnk+CisgICAgSW5zZXJ0IGEgdGlsZXMvY29tcG9uZW50L3RlbXBsYXRlLgorICAgIDwvc3VtbWFyeT4KKyAgICA8aW5mbz4KKyAgICA8cD5JbnNlcnQgYSB0aWxlcy9jb21wb25lbnQvdGVtcGxhdGUgd2l0aCB0aGUgcG9zc2liaWxpdHkgdG8gcGFzcyBwYXJhbWV0ZXJzCisgICAgKGNhbGxlZCBhdHRyaWJ1dGUpLgorICAgIEEgdGlsZSBjYW4gYmUgc2VlbiBhcyBhIHByb2NlZHVyZSB0aGF0IGNhbiB0YWtlIHBhcmFtZXRlcnMgb3IgYXR0cmlidXRlcy4KKyAgICA8Y29kZT4mbHQ7dGVtcGxhdGU6aW5zZXJ0Jmd0OzwvY29kZT4gYWxsb3dzIHRvIGRlZmluZSB0aGVzZSBhdHRyaWJ1dGVzIGFuZCBwYXNzIHRoZW0gdG8gdGhlIGluc2VydGVkIGpzcCBwYWdlLAorICAgIGNhbGxlZCB0ZW1wbGF0ZS4KKyAgICBBdHRyaWJ1dGVzIGFyZSBkZWZpbmVkIHVzaW5nIG5lc3RlZCB0YWcgPGNvZGU+Jmx0O3RlbXBsYXRlOnB1dCZndDs8L2NvZGU+IG9yCisgICAgPGNvZGU+Jmx0O3RlbXBsYXRlOnB1dExpc3QmZ3Q7PC9jb2RlPi4KKyAgICA8L3A+CisgICAgPHA+CisgICAgWW91IG11c3Qgc3BlY2lmeSBvbmUgb2YgdGhpcyB0YWcgYXR0cmlidXRlIDoKKyAgICA8L3A+CisgICAgICA8dWw+CisgICAgICA8bGk+PGNvZGU+dGVtcGxhdGU8L2NvZGU+LCBmb3IgaW5zZXJ0aW5nIGEgdGlsZXMvY29tcG9uZW50L3RlbXBsYXRlIHBhZ2UsPC9saT4KKyAgICAgIDxsaT48Y29kZT5jb21wb25lbnQ8L2NvZGU+LCBmb3IgaW5zZXJ0aW5nIGEgdGlsZXMvY29tcG9uZW50L3RlbXBsYXRlIHBhZ2UsIChzYW1lIGFzIHRlbXBsYXRlKTwvbGk+CisgICAgICA8bGk+PGNvZGU+cGFnZTwvY29kZT4gZm9yIGluc2VydGluZyBhIEpTUCBwYWdlLCAoc2FtZSBhcyB0ZW1wbGF0ZSk8L2xpPgorICAgICAgPGxpPjxjb2RlPmRlZmluaXRpb248L2NvZGU+LCBmb3IgaW5zZXJ0aW5nIGEgZGVmaW5pdGlvbiBmcm9tIGRlZmluaXRpb25zIGZhY3Rvcnk8L2xpPgorICAgICAgPGxpPjxjb2RlPmF0dHJpYnV0ZTwvY29kZT4sIHN1cnJvdW5kaW5nIHRpbGVzJ3MgYXR0cmlidXRlIG5hbWUgd2hvc2UgdmFsdWUgaXMgdXNlZC4KKyAgICAgICAgPGJyLz5JZiBhdHRyaWJ1dGUgaXMgYXNzb2NpYXRlZCB0byAnZGlyZWN0JyBmbGFnIChzZWUgcHV0KSwgYW5kIGZsYWcgaXMgdHJ1ZSwgd3JpdGUKKyAgICAgICAgYXR0cmlidXRlIHZhbHVlIChubyBpbnNlcnRpb24pLgorICAgICAgPC9saT4KKyAgICAgIDxsaT48Y29kZT5uYW1lPC9jb2RlPiwgdG8gbGV0ICdpbnNlcnQnIGRldGVybWluZSB0aGUgdHlwZSBvZiBlbnRpdGllcyB0byBpbnNlcnQuIEluIHRoaXMgbGF0ZXIKKyAgICAgIGNhc2UsIHNlYXJjaCBpcyBkb25lIGluIHRoaXMgb3JkZXIgOiBkZWZpbml0aW9ucywgdGlsZXMvY29tcG9uZW50cy90ZW1wbGF0ZXMsIHBhZ2VzLgorICAgICAgPC9saT4KKyAgICAgIDwvdWw+CisgICAgICA8cD4KKyAgICAgIEluIGZhY3QsIFBhZ2UsIGNvbXBvbmVudCBhbmQgdGVtcGxhdGUsIGFyZSBlcXVpdmFsZW50IGFzIGEgdGlsZSwgY29tcG9uZW50IG9yIHRlbXBsYXRlIGFyZSBqc3AgcGFnZS4KKyAgICAgIDwvcD4KKyAgICAgIDxwPjxzdHJvbmc+RXhhbXBsZSA6IDwvc3Ryb25nPjwvcD4KKyAgICAgICAgPHByZT48Y29kZT4KKyAgICAgICAgICAmbHQ7dGVtcGxhdGU6aW5zZXJ0IHBhZ2U9Ii9iYXNpYy9teUxheW91dC5qc3AiIGZsdXNoPSJ0cnVlIiZndDsKKyAgICAgICAgICAgICZsdDt0ZW1wbGF0ZTpwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iTXkgZmlyc3QgcGFnZSIgLyZndDsKKyAgICAgICAgICAgICZsdDt0ZW1wbGF0ZTpwdXQgbmFtZT0iaGVhZGVyIiB2YWx1ZT0iL2NvbW1vbi9oZWFkZXIuanNwIiAvJmd0OworICAgICAgICAgICAgJmx0O3RlbXBsYXRlOnB1dCBuYW1lPSJmb290ZXIiIHZhbHVlPSIvY29tbW9uL2Zvb3Rlci5qc3AiIC8mZ3Q7CisgICAgICAgICAgICAmbHQ7dGVtcGxhdGU6cHV0IG5hbWU9Im1lbnUiICAgdmFsdWU9Ii9iYXNpYy9tZW51LmpzcCIgLyZndDsKKyAgICAgICAgICAgICZsdDt0ZW1wbGF0ZTpwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iL2Jhc2ljL2hlbGxvQm9keS5qc3AiIC8mZ3Q7CisgICAgICAgICAgJmx0Oy90ZW1wbGF0ZTppbnNlcnQmZ3Q7PC9jb2RlPjwvcHJlPgorICAgIDwvaW5mbz4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluc2VydFRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGVtcGxhdGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPkEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgVVJJIG9mIGEgdGlsZSBvciB0ZW1wbGF0ZSAoYSBKU1AgcGFnZSkuPC9wPgorICAgICAgICA8cD4ncGFnZScsICdjb21wb25lbnQnIGFuZCAndGVtcGxhdGUnIGFyZSBzeW5vbnltcyA6IHRoZXkgaGF2ZSBleGFjdGx5IHRoZSBzYW1lIGJlaGF2aW9yLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5jb21wb25lbnQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICAgIDxwPlBhdGggKHJlbGF0aXZlIG9yIGFic29sdXRlIHRvIHdlYmFwcHMpIG9mIHRoZSBjb21wb25lbnQgdG8gaW5zZXJ0LjwvcD4KKyAgICAgICAgPHA+J3BhZ2UnLCAnY29tcG9uZW50JyBhbmQgJ3RlbXBsYXRlJyBhcmUgc3lub255bXMgOiB0aGV5IGhhdmUgZXhhY3RseSB0aGUgc2FtZSBiZWhhdmlvci48L3A+CisgICAgICA8L2luZm8+CisgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wYWdlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgICA8cD5QYXRoIChyZWxhdGl2ZSBvciBhYnNvbHV0ZSB0byB3ZWJhcHBzKSBvZiB0aGUgcGFnZSB0byBpbnNlcnQuPC9wPgorICAgICAgICA8cD4ncGFnZScsICdjb21wb25lbnQnIGFuZCAndGVtcGxhdGUnIGFyZSBzeW5vbnltcyA6IHRoZXkgaGF2ZSBleGFjdGx5IHRoZSBzYW1lIGJlaGF2aW9yLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5kZWZpbml0aW9uPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgICBOYW1lIG9mIHRoZSBkZWZpbml0aW9uIHRvIGluc2VydC4gRGVmaW5pdGlvbiBhcmUgZGVmaW5lZCBpbiBhIGNlbnRyYWxpemVkIGZpbGUuCisgICAgICAgIEZvciBub3csIG9ubHkgZGVmaW5pdGlvbiBmcm9tIGZhY3RvcnkgY2FuIGJlIGluc2VydGVkIHdpdGggdGhpcyBhdHRyaWJ1dGUuCisgICAgICAgIFRvIGluc2VydCBhIGRlZmluaXRpb24gZGVmaW5lZCB3aXRoIHRhZyAmbHQ7dGVtcGxhdGU6ZGVmaW5pdGlvbiZndDssIHVzZSBiZWFuTmFtZT0iIi4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5hdHRyaWJ1dGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgICBOYW1lIG9mIGFuIGF0dHJpYnV0ZSBpbiBjdXJyZW50IHRpbGUvY29tcG9uZW50IGNvbnRleHQuIFZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGlzIHBhc3NlZCB0bworICAgICAgICAnbmFtZScgKHNlZSBhdHRyaWJ1dGUgJ25hbWUnKS4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgICBOYW1lIG9mIGFuIGVudGl0eSB0byBpbnNlcnQuIFNlYXJjaCBpcyBkb25lIGluIHRoaXMgb3JkZXIgOiBkZWZpbml0aW9uLCBhdHRyaWJ1dGUsCisgICAgICAgIFt0aWxlL2NvbXBvbmVudC90ZW1wbGF0ZS9wYWdlXS4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5iZWFuTmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIDxwPk5hbWUgb2YgdGhlIGJlYW4gdXNlZCBhcyB2YWx1ZS4gQmVhbiBpcyByZXRyaWV2ZWQgZnJvbSBzcGVjaWZpZWQgY29udGV4dCwgaWYgYW55LiBPdGhlcndpc2UsCisgICAgICBtZXRob2QgcGFnZUNvbnRleHQuZmluZEF0dHJpYnV0ZSBpcyB1c2VkLgorICAgICAgSWYgYmVhblByb3BlcnR5IGlzIGFsc28gc3BlY2lmaWVkLCByZXRyaWV2ZSB2YWx1ZSBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkuPC9wPgorICAgICAgPHA+SWYgZm91bmQgYmVhbiAob3IgcHJvcGVydHkgdmFsdWUpIGlzIGluc3RhbmNlIG9mIG9uZSBvZiBBdHRyaWJ1dGUgY2xhc3MgKERpcmVjdCwKKyAgICAgIEluc3RhbmNlLCAuLi4pLCBpbnNlcnRpb24gaXMgZG9uZSBhY2NvcmRpbmcgdG8gdGhlIGNsYXNzIHR5cGUuIE90aGVyd2lzZSwgdGhlIHRvU3RyaW5nIG1ldGhvZCBpcworICAgICAgY2FsbGVkIG9uIHRoZSBiZWFuLCBhbmQgcmV0dXJuZWQgU3RyaW5nIGlzIHVzZWQgYXMgbmFtZSB0byBpbnNlcnQgKHNlZSAnbmFtZScgYXR0cmlidXRlKS48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YmVhblByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgQmVhbiBwcm9wZXJ0eSBuYW1lLiBJZiBzcGVjaWZpZWQsIHZhbHVlIGlzIHJldHJpZXZlIGZyb20gdGhpcyBwcm9wZXJ0eS4gU3VwcG9ydCBuZXN0ZWQvaW5kZXhlZAorICAgICAgcHJvcGVydGllcy4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5iZWFuU2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgU2NvcGUgaW50byB3aGljaCBiZWFuIGlzIHNlYXJjaGVkLiBJZiBub3Qgc3BlY2lmaWVkLCBtZXRob2QgcGFnZUNvbnRleHQuZmluZEF0dHJpYnV0ZSBpcyB1c2VkLgorICAgICAgU2NvcGUgY2FuIGJlIGFueSBKU1Agc2NvcGUsICdjb21wb25lbnQnLCBvciAndGVtcGxhdGUnLgorICAgICAgSW4gdGhlc2UgdHdvIGxhdGVyIGNhc2VzLCBiZWFuIGlzIHNlYXJjaCBpbiB0aWxlL2NvbXBvbmVudC90ZW1wbGF0ZSBjb250ZXh0LgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmZsdXNoPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgICAgVHJ1ZSBvciBmYWxzZS4gSWYgdHJ1ZSwgY3VycmVudCBwYWdlIG91dCBzdHJlYW0gaXMgZmx1c2hlZCBiZWZvcmUgaW5zZXJ0aW9uLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmlnbm9yZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIElmIHRoaXMgYXR0cmlidXRlIGlzIHNldCB0byB0cnVlLCBhbmQgdGhlIGF0dHJpYnV0ZSBzcGVjaWZpZWQgYnkgdGhlIG5hbWUKKyAgICAgIGRvZXMgbm90IGV4aXN0LCBzaW1wbHkgcmV0dXJuIHdpdGhvdXQgd3JpdGluZyBhbnl0aGluZy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UsIHdoaWNoIHdpbGwKKyAgICAgIGNhdXNlIGEgcnVudGltZSBleGNlcHRpb24gdG8gYmUgdGhyb3duLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnJvbGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICBJZiB0aGUgdXNlciBpcyBpbiB0aGUgc3BlY2lmaWVkIHJvbGUsIHRoZSB0YWcgaXMgdGFrZW4gaW50byBhY2NvdW50OworICAgICAgb3RoZXJ3aXNlLCB0aGUgdGFnIGlzIGlnbm9yZWQgKHNraXBwZWQpLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmNvbnRyb2xsZXJVcmw8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5Vcmwgb2YgYSBjb250cm9sbGVyIGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUgcGFnZSBpcyBpbnNlcnRlZC48L3A+CisgICAgICA8cD4KKyAgICAgIFVybCB1c3VhbGx5IGRlbm90ZSBhIFN0cnV0cyBhY3Rpb24uIENvbnRyb2xsZXIgKGFjdGlvbikgaXMgdXNlZCB0byBwcmVwYXJlIGRhdGEKKyAgICAgIHRvIGJlIHJlbmRlciBieSBpbnNlcnRlZCBUaWxlLgorICAgICAgPC9wPgorICAgICAgPHA+U2VlIGFsc28gY29udHJvbGVyQ2xhc3MuIE9ubHkgb25lIG9mIGNvbnRyb2xsZXJVcmwgb3IgY29udHJvbGxlckNsYXNzIHNob3VsZCBiZSB1c2VkLjwvcD4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5jb250cm9sbGVyQ2xhc3M8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5DbGFzcyB0eXBlIG9mIGEgY29udHJvbGxlciBjYWxsZWQgaW1tZWRpYXRlbHkgYmVmb3JlIHBhZ2UgaXMgaW5zZXJ0ZWQuPC9wPgorICAgICAgPHA+Q29udHJvbGxlciBpcyB1c2VkIHRvIHByZXBhcmUgZGF0YSB0byBiZSByZW5kZXIgYnkgaW5zZXJ0ZWQgVGlsZS48L3A+CisgICAgICA8cD5TZWUgYWxzbyBjb250cm9sZXJVcmw8L3A+CisgICAgICA8cD5DbGFzcyBtdXN0IGltcGxlbWVudHMgb3IgZXh0ZW5kcyBvbmUgb2YgdGhlIGZvbGxvd2luZyA6PC9wPgorICAgICAgPHVsPgorICAgICAgICA8bGk+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29udHJvbGxlcjwvbGk+CisgICAgICAgIDxsaT5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db250cm9sbGVyU3VwcG9ydDwvbGk+CisgICAgICAgIDxsaT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uICh3cmFwcGVyIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Db250cm9sbGVyIGlzIHVzZWQpPC9saT4KKyAgICAgIDwvdWw+CisgICAgICA8cD4KKyAgICAgIFNlZSBhbHNvIGNvbnRyb2xsZXJVcmwuIE9ubHkgb25lIG9mIGNvbnRyb2xsZXJVcmwgb3IgY29udHJvbGxlckNsYXNzIHNob3VsZCBiZSB1c2VkLgorICAgICAgPC9wPgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisgIDx0YWc+CisgICAgPG5hbWU+ZGVmaW5pdGlvbjwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICBDcmVhdGUgYSB0aWxlIC9jb21wb25lbnQgLyB0ZW1wbGF0ZSBkZWZpbml0aW9uIGJlYW4uCisgICAgPC9zdW1tYXJ5PgorICAgIDxpbmZvPgorICAgIENyZWF0ZSBhIHRpbGUvY29tcG9uZW50L3RlbXBsYXRlIGRlZmluaXRpb24gYXMgYSBiZWFuLgorICAgIE5ld2x5IGNyZWF0ZWQgYmVhbiB3aWxsIGJlIHNhdmVkIHVuZGVyIHNwZWNpZmllZCAiaWQiLCBpbiB0aGUgcmVxdWVzdGVkICJzY29wZSIuCisgICAgRGVmaW5pdGlvbiB0YWcgaGFzIHNhbWUgc3ludGF4IGFzIDxjb2RlPmluc2VydDwvY29kZT4gdGFnLgorICAgIFRoZSBuZXcgZGVmaW5pdGlvbiBjYW4gZXh0ZW5kcyBhIGRlZmluaXRpb24gZGVzY3JpYmVkIGluIGZhY3RvcnkgKFhNTCBmaWxlKSwgYW5kIG92ZXJsb2FkCisgICAgYW55IHByZXZpb3VzbHkgZGVmaW5lZCBwYXJhbWV0ZXJzLgorICAgIDwvaW5mbz4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5EZWZpbml0aW9uVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aWQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICBTcGVjaWZpZXMgdGhlIG5hbWUgdW5kZXIgd2hpY2ggdGhlIG5ld2x5IGNyZWF0ZWQgZGVmaW5pdGlvbiBiZWFuIHdpbGwgYmUgc2F2ZWQuCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgU3BlY2lmaWVzIHRoZSB2YXJpYWJsZSBzY29wZSBpbnRvIHdoaWNoIHRoZSBuZXdseSBkZWZpbmVkIGJlYW4gd2lsbCBiZSBjcmVhdGVkLgorICAgICAgSWYgbm90IHNwZWNpZmllZCwgdGhlIGJlYW4gd2lsbCBiZSBjcmVhdGVkIGluIHBhZ2Ugc2NvcGUuCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dGVtcGxhdGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIFVSSSBvZiBhIHRpbGUvY29tcG9uZW50L3RlbXBsYXRlIChhIEpTUCBwYWdlKS4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5wYWdlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgVVJMIG9mIHRoZSB0ZW1wbGF0ZSAvIGNvbXBvbmVudCB0byBpbnNlcnQuIFNhbWUgYXMgInRlbXBsYXRlIi4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5yb2xlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgUm9sZSB0byBjaGVjayBiZWZvcmUgaW5zZXJ0aW5nIHRoaXMgZGVmaW5pdGlvbi4gSWYgcm9sZSBpcyBub3QgZGVmaW5lZCBmb3IgY3VycmVudCB1c2VyLAorICAgICAgZGVmaW5pdGlvbiBpcyBub3QgaW5zZXJ0ZWQuIENoZWNraW5nIGlzIGRvbmUgYXQgaW5zZXJ0IHRpbWUsIG5vdCBkdXJpbmcgZGVmaW5pdGlvbiBwcm9jZXNzLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmV4dGVuZHM8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICBOYW1lIG9mIGEgcGFyZW50IGRlZmluaXRpb24gdGhhdCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhpcyBuZXcgZGVmaW5pdGlvbi4KKyAgICAgIFBhcmVudCBkZWZpbml0aW9uIGlzIHNlYXJjaGVkIGluIGRlZmluaXRpb25zIGZhY3RvcnkuCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKyAgPHRhZz4KKyAgICA8bmFtZT5wdXQ8L25hbWU+CisgICAgPHN1bW1hcnk+CisgICAgICBQdXQgYW4gYXR0cmlidXRlIGludG8gdGlsZS9jb21wb25lbnQvdGVtcGxhdGUgY29udGV4dC4KKyAgICA8L3N1bW1hcnk+CisgICAgPGluZm8+CisgICAgICBEZWZpbmUgYW4gYXR0cmlidXRlIHRvIHBhc3MgdG8gdGlsZS9jb21wb25lbnQvdGVtcGxhdGUuCisgICAgICBUaGlzIHRhZyBjYW4gb25seSBiZSB1c2VkIGluc2lkZSAnaW5zZXJ0JyBvciAnZGVmaW5pdGlvbicgdGFnLgorICAgICAgVmFsdWUgKG9yIGNvbnRlbnQpIGlzIHNwZWNpZmllZCB1c2luZyBhdHRyaWJ1dGUgJ3ZhbHVlJyAob3IgJ2NvbnRlbnQnKSwgb3IgdXNpbmcgdGhlIHRhZyBib2R5LgorICAgICAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBzcGVjaWZ5IHRoZSB0eXBlIG9mIHRoZSB2YWx1ZSA6CisgICAgICA8dWw+CisgICAgICA8bGk+c3RyaW5nIDogQ29udGVudCBpcyB3cml0dGVuIGRpcmVjdGx5LjwvbGk+CisgICAgICA8bGk+cGFnZSB8IHRlbXBsYXRlIDogQ29udGVudCBpcyBpbmNsdWRlZCBmcm9tIHNwZWNpZmllZCBVUkwuIE5hbWUgaXMgdXNlZCBhcyBhbiBVUkwuPC9saT4KKyAgICAgIDxsaT5kZWZpbml0aW9uIDogQ29udGVudCBjb21lIGZyb20gc3BlY2lmaWVkIGRlZmluaXRpb24gKGZyb20gZmFjdG9yeSkuIE5hbWUgaXMgdXNlZCBhcyBkZWZpbml0aW9uIG5hbWUuPC9saT4KKyAgICAgIDwvdWw+CisgICAgICBJZiB0eXBlIGlzIHNwZWNpZmllZCwgaXQgaXMgdGFrZW4gaW50byBhY2NvdW50IGJ5ICdnZXQnIG9yICdpbnNlcnQnIGluc2lkZSB0aGUgaW5zZXJ0ZWQgdGlsZS4KKyAgICAgIDxwPklmICd0eXBlJyBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgY29udGVudCBpcyAndW50eXBlZCcsIHVubGVzcyBpdCBjb21lcyBmcm9tIGEgdHlwZWQgYmVhbi48L3A+CisgICAgICA8cD5Ob3RlIHRoYXQgdXNpbmcgJ2RpcmVjdD0idHJ1ZSInIGlzIGVxdWl2YWxlbnQgdG8gJ3R5cGU9InN0cmluZyInLjwvcD4KKyAgICA8L2luZm8+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRUYWc8L3RhZ2NsYXNzPgorICAgIDxib2R5Y29udGVudD5KU1A8L2JvZHljb250ZW50PgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgICBOYW1lIG9mIHRoZSBhdHRyaWJ1dGUuCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICAgIEF0dHJpYnV0ZSB2YWx1ZS4gQ291bGQgYmUgYSBTdHJpbmcgb3IgYW4gT2JqZWN0LgorICAgICAgIFZhbHVlIGNhbiBjb21lIGZyb20gYSBkaXJlY3QgYXNzaWdubWVudCAodmFsdWU9ImFWYWx1ZSIpIG9yIGZyb20gYSBiZWFuLgorICAgICAgIE9uZSBvZiAndmFsdWUnICdjb250ZW50JyBvciAnYmVhbk5hbWUnIG11c3QgYmUgcHJlc2VudC4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5jb250ZW50PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgQ29udGVudCB0aGF0J3MgcHV0IGludG8gdGlsZSBzY29wZS4KKyAgICAgIFN5bm9ueW0gdG8gdmFsdWUuIEF0dHJpYnV0ZSBhZGRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIEpTUCBUZW1wbGF0ZS4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5kaXJlY3Q8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgRGV0ZXJtaW5lcyBob3cgY29udGVudCBpcyBoYW5kbGVkOiB0cnVlIG1lYW5zIGNvbnRlbnQgaXMKKyAgICAgIHByaW50ZWQgPGVtPmRpcmVjdDwvZW0+bHk7IGZhbHNlLCB0aGUgZGVmYXVsdCwgbWVhbnMgY29udGVudAorICAgICAgaXMgaW5jbHVkZWQuCisgICAgICBUaGlzIGlzIGFub3RoZXIgd2F5IHRvIHNwZWNpZnkgY29udGVudCB0eXBlLiBJZiAnZGlyZWN0PXRydWUnIGNvbnRlbnQgaXMgJ3N0cmluZycsIGlmCisgICAgICAnZGlyZWN0PWZhbHNlJywgY29udGVudCBpcyAncGFnZScuCisgICAgICBBdHRyaWJ1dGUgYWRkZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBKU1AgVGVtcGxhdGUuCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dHlwZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICBTcGVjaWZ5IGNvbnRlbnQgdHlwZTogc3RyaW5nLCBwYWdlLCB0ZW1wbGF0ZSBvciBkZWZpbml0aW9uLgorICAgICAgPHVsPgorICAgICAgPGxpPlN0cmluZyA6IENvbnRlbnQgaXMgcHJpbnRlZCBkaXJlY3RseS48L2xpPgorICAgICAgPGxpPnBhZ2UgfCB0ZW1wbGF0ZSA6IENvbnRlbnQgaXMgaW5jbHVkZWQgZnJvbSBzcGVjaWZpZWQgVVJMLiBOYW1lIGlzIHVzZWQgYXMgYW4gVVJMLjwvbGk+CisgICAgICA8bGk+ZGVmaW5pdGlvbiA6IFZhbHVlIGlzIHRoZSBuYW1lIG9mIGEgZGVmaW5pdGlvbiBkZWZpbmVkIGluIGZhY3RvcnkgKHhtbCBmaWxlKS4gRGVmaW5pdGlvbiB3aWxsIGJlIHNlYXJjaGVkCisgICAgICBpbiB0aGUgaW5zZXJ0ZWQgdGlsZSwgaW4gYSA8Y29kZT4mbHQ7dGVtcGxhdGU6aW5zZXJ0IGF0dHJpYnV0ZT0iYXR0cmlidXRlTmFtZSImZ3Q7PC9jb2RlPiB0YWcsIHdoZXJlICdhdHRyaWJ1dGVOYW1lJworICAgICAgaXMgdGhlIG5hbWUgdXNlZCBmb3IgdGhpcyB0YWcuPC9saT4KKyAgICAgIDwvdWw+CisgICAgICBJZiAndHlwZScgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIGNvbnRlbnQgaXMgJ3VudHlwZWQnLCB1bmxlc3MgaXQgY29tZXMgZnJvbSBhIHR5cGVkIGJlYW4uCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YmVhbk5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICBOYW1lIG9mIHRoZSBiZWFuIHVzZWQgYXMgdmFsdWUuIEJlYW4gaXMgcmV0cmlldmVkIGZyb20gc3BlY2lmaWVkIGNvbnRleHQsIGlmIGFueS4gT3RoZXJ3aXNlLAorICAgICAgbWV0aG9kIHBhZ2VDb250ZXh0LmZpbmRBdHRyaWJ1dGUgaXMgdXNlZC4KKyAgICAgIElmIGJlYW5Qcm9wZXJ0eSBpcyBzcGVjaWZpZWQsIHJldHJpZXZlIHZhbHVlIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eS4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5iZWFuUHJvcGVydHk8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICBCZWFuIHByb3BlcnR5IG5hbWUuIElmIHNwZWNpZmllZCwgdmFsdWUgaXMgcmV0cmlldmUgZnJvbSB0aGlzIHByb3BlcnR5LiBTdXBwb3J0IG5lc3RlZC9pbmRleGVkCisgICAgICBwcm9wZXJ0aWVzLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmJlYW5TY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICBTY29wZSBpbnRvIHdoaWNoIGJlYW4gaXMgc2VhcmNoZWQuIElmIG5vdCBzcGVjaWZpZWQsIG1ldGhvZCBwYWdlQ29udGV4dC5maW5kQXR0cmlidXRlIGlzIHVzZWQuCisgICAgICBTY29wZSBjYW4gYmUgYW55IEpTUCBzY29wZSwgJ3RpbGUnLCAnY29tcG9uZW50Jywgb3IgJ3RlbXBsYXRlJy4KKyAgICAgIEluIHRoZXNlIHRocmVlIGxhdGVyIGNhc2VzLCBiZWFuIGlzIHNlYXJjaCBpbiB0aWxlL2NvbXBvbmVudC90ZW1wbGF0ZSBjb250ZXh0LgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnJvbGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICBJZiB0aGUgdXNlciBpcyBpbiB0aGUgc3BlY2lmaWVkIHJvbGUsIHRoZSB0YWcgaXMgdGFrZW4gaW50byBhY2NvdW50OworICAgICAgb3RoZXJ3aXNlLCB0aGUgdGFnIGlzIGlnbm9yZWQgKHNraXBwZWQpLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisgIDx0YWc+CisgICAgPG5hbWU+cHV0TGlzdDwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICAgIERlY2xhcmUgYSBsaXN0IHRoYXQgd2lsbCBiZSBwYXNzIGFzIGF0dHJpYnV0ZSB0byB0aWxlLgorICAgIDwvc3VtbWFyeT4KKyAgICA8aW5mbz4KKyAgICAgIERlY2xhcmUgYSBsaXN0IHRoYXQgd2lsbCBiZSBwYXNzIGFzIGF0dHJpYnV0ZSB0byB0aWxlLgorICAgICAgTGlzdCBlbGVtZW50cyBhcmUgYWRkZWQgdXNpbmcgdGhlIHRhZyAnYWRkJy4KKyAgICAgIFRoaXMgdGFnIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlICdpbnNlcnQnIG9yICdkZWZpbml0aW9uJyB0YWcuCisgICAgPC9pbmZvPgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0TGlzdFRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgICAgTmFtZSBvZiB0aGUgbGlzdC4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKyAgPC90YWc+CisKKyAgPHRhZz4KKyAgICA8bmFtZT5hZGQ8L25hbWU+CisgICAgPHN1bW1hcnk+CisgICAgICAgQWRkIGFuIGVsZW1lbnQgdG8gdGhlIHN1cnJvdW5kaW5nIGxpc3QuCisgICAgICAgRXF1aXZhbGVudCB0byAncHV0JywgYnV0IGZvciBsaXN0IGVsZW1lbnQuCisgICAgPC9zdW1tYXJ5PgorICAgIDxpbmZvPgorICAgICAgIEFkZCBhbiBlbGVtZW50IHRvIHRoZSBzdXJyb3VuZGluZyBsaXN0LgorICAgICAgIFRoaXMgdGFnIGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIHB1dExpc3QgdGFnLgorICAgICAgIFZhbHVlIGNhbiBjb21lIGZyb20gYSBkaXJlY3QgYXNzaWdubWVudCAodmFsdWU9ImFWYWx1ZSIpIG9yIGZyb20gYSBiZWFuLgorICAgICAgIE9uZSBvZiAndmFsdWUnIG9yICdiZWFuTmFtZScgbXVzdCBiZSBwcmVzZW50LgorICAgIDwvaW5mbz4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkFkZFRhZzwvdGFnY2xhc3M+CisgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgICBFbGVtZW50IHZhbHVlLiBDYW4gYmUgYSBTdHJpbmcgb3IgT2JqZWN0LgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmNvbnRlbnQ8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICBFbGVtZW50IHZhbHVlLiBDYW4gYmUgYSBTdHJpbmcgb3IgT2JqZWN0LgorICAgICAgU3lub255bSB0byB2YWx1ZS4gQXR0cmlidXRlIGFkZGVkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggSlNQIFRlbXBsYXRlLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmRpcmVjdDwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICBEZXRlcm1pbmVzIGhvdyBjb250ZW50IGlzIGhhbmRsZWQ6IHRydWUgbWVhbnMgY29udGVudCBpcworICAgICAgcHJpbnRlZCA8ZW0+ZGlyZWN0PC9lbT5seTsgZmFsc2UsIHRoZSBkZWZhdWx0LCBtZWFucyBjb250ZW50CisgICAgICBpcyBpbmNsdWRlZC4KKyAgICAgIFRoaXMgaXMgYW5vdGhlciB3YXkgdG8gc3BlY2lmeSBjb250ZW50IHR5cGUuIElmICdkaXJlY3Q9dHJ1ZScgY29udGVudCBpcyAnc3RyaW5nJywgaWYKKyAgICAgICdkaXJlY3Q9ZmFsc2UnLCBjb250ZW50IGlzICdwYWdlJy4KKyAgICAgIEF0dHJpYnV0ZSBhZGRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIEpTUCBUZW1wbGF0ZS4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT50eXBlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIFNwZWNpZnkgY29udGVudCB0eXBlOiBzdHJpbmcsIHBhZ2UsIHRlbXBsYXRlIG9yIGluc3RhbmNlLgorICAgICAgPHVsPgorICAgICAgPGxpPlN0cmluZyA6IENvbnRlbnQgaXMgcHJpbnRlZCBkaXJlY3RseS48L2xpPgorICAgICAgPGxpPnBhZ2UgfCB0ZW1wbGF0ZSA6IENvbnRlbnQgaXMgaW5jbHVkZWQgZnJvbSBzcGVjaWZpZWQgVVJMLiBOYW1lIGlzIHVzZWQgYXMgYW4gVVJMLjwvbGk+CisgICAgICA8bGk+ZGVmaW5pdGlvbiA6IFZhbHVlIGRlbm90ZSBhIGRlZmluaXRpb24gZGVmaW5lZCBpbiBmYWN0b3J5ICh4bWwgZmlsZSkuIERlZmluaXRpb24gd2lsbCBiZSBzZWFyY2hlZAorICAgICAgaW4gdGhlIGluc2VydGVkIHRpbGUsIGluIGEgPGNvZGU+Jmx0O2luc2VydCBhdHRyaWJ1dGU9ImF0dHJpYnV0ZU5hbWUiJmd0OzwvY29kZT4gdGFnLCB3aGVyZSAnYXR0cmlidXRlTmFtZScKKyAgICAgIGlzIHRoZSBuYW1lIHVzZWQgZm9yIHRoaXMgdGFnLjwvbGk+CisgICAgICA8L3VsPgorICAgICAgSWYgJ3R5cGUnIGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCBjb250ZW50IGlzICd1bnR5cGVkJywgdW5sZXNzIGl0IGNvbWVzIGZyb20gYSB0eXBlZCBiZWFuLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmJlYW5OYW1lPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgTmFtZSBvZiB0aGUgYmVhbiB1c2VkIGFzIHZhbHVlLiBCZWFuIGlzIHJldHJpZXZlZCBmcm9tIHNwZWNpZmllZCBjb250ZXh0LCBpZiBhbnkuIE90aGVyd2lzZSwKKyAgICAgIG1ldGhvZCBwYWdlQ29udGV4dC5maW5kQXR0cmlidXRlIGlzIHVzZWQuCisgICAgICBJZiBiZWFuUHJvcGVydHkgaXMgc3BlY2lmaWVkLCByZXRyaWV2ZSB2YWx1ZSBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkuCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+YmVhblByb3BlcnR5PC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgQmVhbiBwcm9wZXJ0eSBuYW1lLiBJZiBzcGVjaWZpZWQsIHZhbHVlIGlzIHJldHJpZXZlIGZyb20gdGhpcyBwcm9wZXJ0eS4gU3VwcG9ydCBuZXN0ZWQvaW5kZXhlZAorICAgICAgcHJvcGVydGllcy4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5iZWFuU2NvcGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgU2NvcGUgaW50byB3aGljaCBiZWFuIGlzIHNlYXJjaGVkLiBJZiBub3Qgc3BlY2lmaWVkLCBtZXRob2QgcGFnZUNvbnRleHQuZmluZEF0dHJpYnV0ZSBpcyB1c2VkLgorICAgICAgU2NvcGUgY2FuIGJlIGFueSBKU1Agc2NvcGUsICdjb21wb25lbnQnLCBvciAndGVtcGxhdGUnLgorICAgICAgSW4gdGhlc2UgdHdvIGxhdGVyIGNhc2VzLCBiZWFuIGlzIHNlYXJjaCBpbiB0aWxlL2NvbXBvbmVudC90ZW1wbGF0ZSBjb250ZXh0LgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnJvbGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICA8cD5JZiB0aGUgdXNlciBpcyBpbiB0aGUgc3BlY2lmaWVkIHJvbGUsIHRoZSB0YWcgaXMgdGFrZW4gaW50byBhY2NvdW50OworICAgICAgb3RoZXJ3aXNlLCB0aGUgdGFnIGlzIGlnbm9yZWQgKHNraXBwZWQpLjwvcD4KKyAgICAgIDxwPgorICAgICAgVGhlIHJvbGUgaXNuJ3QgdGFrZW4gaW50byBhY2NvdW50IGlmICZsdDthZGQmZ3Q7IHRhZyBpcyB1c2VkIGluIGEgZGVmaW5pdGlvbi48L3A+CisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKyAgPHRhZz4KKworICAgIDxuYW1lPmdldDwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICBHZXRzIHRoZSBjb250ZW50IGZyb20gcmVxdWVzdCBzY29wZSB0aGF0IHdhcyBwdXQgdGhlcmUgYnkgYQorICAgIHB1dCB0YWcuCisgICAgPC9zdW1tYXJ5PgorICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuR2V0VGFnPC90YWdjbGFzcz4KKyAgICA8Ym9keWNvbnRlbnQ+ZW1wdHk8L2JvZHljb250ZW50PgorICAgIDxpbmZvPgorICAgIDxwPlJldHJpZXZlIGNvbnRlbnQgZnJvbSB0aWxlIGNvbnRleHQgYW5kIGluY2x1ZGUgaXQuPC9wPgorICAgIDxwPlRha2UgaW50byBhY2NvdW50IHRoZSAndHlwZScgYXR0cmlidXRlLjwvcD4KKyAgICA8L2luZm8+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgVGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgdG8gZ2V0IGZyb20gdGlsZS9jb21wb25lbnQgc2NvcGUuCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aWdub3JlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgSWYgdGhpcyBhdHRyaWJ1dGUgaXMgc2V0IHRvIHRydWUsIGFuZCB0aGUgYXR0cmlidXRlIHNwZWNpZmllZCBieSB0aGUgbmFtZQorICAgICAgZG9lcyBub3QgZXhpc3QsIHNpbXBseSByZXR1cm4gd2l0aG91dCB3cml0aW5nIGFueXRoaW5nLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZSwgd2hpY2ggd2lsbAorICAgICAgY2F1c2UgYSBydW50aW1lIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24uCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+Zmx1c2g8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgICBUcnVlIG9yIGZhbHNlLiBJZiB0cnVlLCBjdXJyZW50IHBhZ2UgIG91dCBzdHJlYW0gaXMgZmx1c2hlZCBiZWZvcmUgaW5zZXJ0aW9uLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnJvbGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICBJZiB0aGUgdXNlciBpcyBpbiB0aGUgc3BlY2lmaWVkIHJvbGUsIHRoZSB0YWcgaXMgdGFrZW4gaW50byBhY2NvdW50OworICAgICAgb3RoZXJ3aXNlLCB0aGUgdGFnIGlzIGlnbm9yZWQgKHNraXBwZWQpLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisgIDx0YWc+CisgICAgPG5hbWU+Z2V0QXNTdHJpbmc8L25hbWU+CisgICAgPHN1bW1hcnk+CisgICAgICBSZW5kZXIgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgdGlsZS9jb21wb25lbnQvdGVtcGxhdGUgYXR0cmlidXRlIHRvIHRoZSBjdXJyZW50IEpzcFdyaXRlcgorICAgIDwvc3VtbWFyeT4KKyAgICA8aW5mbz4KKyAgICAgIFJldHJpZXZlIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHRpbGUvY29tcG9uZW50L3RlbXBsYXRlIGF0dHJpYnV0ZSBwcm9wZXJ0eSwgYW5kIHJlbmRlciBpdCB0byB0aGUgY3VycmVudCBKc3BXcml0ZXIgYXMgYSBTdHJpbmcuCisgICAgICBUaGUgdXN1YWwgdG9TdHJpbmcoKSBjb252ZXJzaW9ucyBpcyBhcHBsaWVkIG9uIGZvdW5kIHZhbHVlLgorICAgICAgPHA+VGhyb3cgYSBKU1BFeGNlcHRpb24gaWYgbmFtZWQgdmFsdWUgaXMgbm90IGZvdW5kLjwvcD4KKyAgICA8L2luZm8+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5HZXRBdHRyaWJ1dGVUYWc8L3RhZ2NsYXNzPgorICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgICAgQXR0cmlidXRlIG5hbWUuCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aWdub3JlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgSWYgdGhpcyBhdHRyaWJ1dGUgaXMgc2V0IHRvIHRydWUsIGFuZCB0aGUgYXR0cmlidXRlIHNwZWNpZmllZCBieSB0aGUgbmFtZQorICAgICAgZG9lcyBub3QgZXhpc3QsIHNpbXBseSByZXR1cm4gd2l0aG91dCB3cml0aW5nIGFueXRoaW5nLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBmYWxzZSwgd2hpY2ggd2lsbAorICAgICAgY2F1c2UgYSBydW50aW1lIGV4Y2VwdGlvbiB0byBiZSB0aHJvd24uCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+cm9sZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIElmIHRoZSB1c2VyIGlzIGluIHRoZSBzcGVjaWZpZWQgcm9sZSwgdGhlIHRhZyBpcyB0YWtlbiBpbnRvIGFjY291bnQ7CisgICAgICBvdGhlcndpc2UsIHRoZSB0YWcgaXMgaWdub3JlZCAoc2tpcHBlZCkuCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKyAgPHRhZz4KKyAgICA8bmFtZT51c2VBdHRyaWJ1dGU8L25hbWU+CisgICAgPHN1bW1hcnk+CisgICAgICBVc2UgYXR0cmlidXRlIHZhbHVlIGluc2lkZSBwYWdlLgorICAgIDwvc3VtbWFyeT4KKyAgICA8aW5mbz4KKyAgICAgIDxwPgorICAgICAgRGVjbGFyZSBhIEphdmEgdmFyaWFibGUsIGFuZCBhbiBhdHRyaWJ1dGUgaW4gdGhlIHNwZWNpZmllZCBzY29wZSwgdXNpbmcgdGlsZSBhdHRyaWJ1dGUgdmFsdWUuCisgICAgICA8L3A+CisgICAgICA8cD4KKyAgICAgIEphdmEgdmFyaWFibGUgYW5kIGF0dHJpYnV0ZSB3aWxsIGhhdmUgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5ICdpZCcsIG9yIHRoZSBvcmlnaW5hbCBuYW1lIGlmIG5vdAorICAgICAgc3BlY2lmaWVkLgorICAgICAgPC9wPgorICAgIDwvaW5mbz4KKyAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlVzZUF0dHJpYnV0ZVRhZzwvdGFnY2xhc3M+CisgICAgPHRlaWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5Vc2VBdHRyaWJ1dGVUZWk8L3RlaWNsYXNzPgorICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmlkPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgICAgRGVjbGFyZWQgYXR0cmlidXRlIGFuZCB2YXJpYWJsZSBuYW1lLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5jbGFzc25hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgICBDbGFzcyBvZiB0aGUgZGVjbGFyZWQgdmFyaWFibGUuCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgICAgU2NvcGUgb2YgdGhlIGRlY2xhcmVkIGF0dHJpYnV0ZS4gRGVmYXVsdCB0byAncGFnZScuCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgICAgVGlsZSdzIGF0dHJpYnV0ZSBuYW1lLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmlnbm9yZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICA8aW5mbz4KKyAgICAgIElmIHRoaXMgYXR0cmlidXRlIGlzIHNldCB0byB0cnVlLCBhbmQgdGhlIGF0dHJpYnV0ZSBzcGVjaWZpZWQgYnkgdGhlIG5hbWUKKyAgICAgIGRvZXMgbm90IGV4aXN0LCBzaW1wbHkgcmV0dXJuIHdpdGhvdXQgZXJyb3IuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLCB3aGljaCB3aWxsCisgICAgICBjYXVzZSBhIHJ1bnRpbWUgZXhjZXB0aW9uIHRvIGJlIHRocm93bi4KKyAgICAgIDwvaW5mbz4KKyAgICA8L2F0dHJpYnV0ZT4KKworICA8L3RhZz4KKworICA8dGFnPgorICAgIDxuYW1lPmltcG9ydEF0dHJpYnV0ZTwvbmFtZT4KKyAgICA8c3VtbWFyeT4KKyAgICAgIEltcG9ydCBUaWxlJ3MgYXR0cmlidXRlIGluIHNwZWNpZmllZCBjb250ZXh0LgorICAgIDwvc3VtbWFyeT4KKyAgICA8aW5mbz4KKyAgICAgIEltcG9ydCBhdHRyaWJ1dGUgZnJvbSB0aWxlIHRvIHJlcXVlc3RlZCBzY29wZS4KKyAgICAgIEF0dHJpYnV0ZSBuYW1lIGFuZCBzY29wZSBhcmUgb3B0aW9uYWwuIElmIG5vdCBzcGVjaWZpZWQsIGFsbCB0aWxlCisgICAgICBhdHRyaWJ1dGVzIGFyZSBpbXBvcnRlZCBpbiBwYWdlIHNjb3BlLgorICAgICAgT25jZSBpbXBvcnRlZCwgYW4gYXR0cmlidXRlIGNhbiBiZSB1c2VkIGFzIGFueSBvdGhlciBiZWFucyBmcm9tIGpzcCBjb250ZXh0cy4KKyAgICA8L2luZm8+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbXBvcnRBdHRyaWJ1dGVUYWc8L3RhZ2NsYXNzPgorICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICAgIFRpbGUncyBhdHRyaWJ1dGUgbmFtZS4gSWYgbm90IHNwZWNpZmllZCwgYWxsIGF0dHJpYnV0ZXMgYXJlIGltcG9ydGVkLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorICAgIDxhdHRyaWJ1dGU+CisgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICAgIFNjb3BlIGludG8gd2hpY2ggYXR0cmlidXRlIGlzIGltcG9ydGVkLiBEZWZhdWx0IHRvIHBhZ2UuCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgICA8YXR0cmlidXRlPgorICAgICAgPG5hbWU+aWdub3JlPC9uYW1lPgorICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgIDxpbmZvPgorICAgICAgSWYgdGhpcyBhdHRyaWJ1dGUgaXMgc2V0IHRvIHRydWUsIGFuZCB0aGUgYXR0cmlidXRlIHNwZWNpZmllZCBieSB0aGUgbmFtZQorICAgICAgZG9lcyBub3QgZXhpc3QsIHNpbXBseSByZXR1cm4gd2l0aG91dCBlcnJvci4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UsIHdoaWNoIHdpbGwKKyAgICAgIGNhdXNlIGEgcnVudGltZSBleGNlcHRpb24gdG8gYmUgdGhyb3duLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgIDwvdGFnPgorCisgIDx0YWc+CisgICAgPG5hbWU+aW5pdENvbXBvbmVudERlZmluaXRpb25zPC9uYW1lPgorICAgIDxzdW1tYXJ5PgorICAgICAgSW5pdGlhbGl6ZSBUaWxlL0NvbXBvbmVudCBkZWZpbml0aW9ucyBmYWN0b3J5LgorICAgIDwvc3VtbWFyeT4KKyAgICA8aW5mbz4KKyAgICAgIDxwPkluaXRpYWxpemUgVGlsZS9Db21wb25lbnRzIGRlZmluaXRpb25zIGZhY3RvcnkuPC9wPgorICAgICAgPHA+CisgICAgICBJbiBvcmRlciB0byB1c2UgVGlsZS9Db21wb25lbnQgZGVmaW5pdGlvbnMgZmFjdG9yeSwgeW91IG5lZWQgdG8gaW5pdGlhbGl6ZSB0aGUgZmFjdG9yeS4KKyAgICAgIFRoaXMgaXMgZ2VuZXJhbGx5IGRvbmUgaW4gYSBpbml0aWFsaXppbmcgc2VydmxldC4gSW4gcGFydGljdWxhciwgaXQgaXMgZG9uZSBpbgorICAgICAgIkNvbXBvbmVudEFjdGlvblNlcnZsZXQiIGlmIHlvdSB1c2UgaXQuCisgICAgICBJZiB5b3UgZG9uJ3QgaW5pdGlhbGl6ZSBmYWN0b3J5IGluIGEgc2VydmxldCwgeW91IGNhbiBpbml0aWFsaXplIGl0IHVzaW5nIHRoaXMgdGFnLiBZb3UgbmVlZAorICAgICAgdG8gcHJvdmlkZSB0aGUgZGVzY3JpcHRpb24gZmlsZSBuYW1lLCBhbmQgb3B0aW9uYWxseSB0aGUgZmFjdG9yeSBjbGFzc25hbWUuCisgICAgICBJbml0aWFsaXphdGlvbiBpcyBkb25lIG9ubHkgb25jZSwgYXQgdGhlIGZpcnN0IGNhbGwgb2YgdGhpcyB0YWcuIFN1YnNlcXVlbnQgY2FsbHMKKyAgICAgIGFyZSBpZ25vcmVkICh0YWcgY2hlY2tzIGV4aXN0ZW5jZSBvZiB0aGUgZmFjdG9yeS4KKyAgICAgIDwvcD4KKyAgICA8L2luZm8+CisgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5Jbml0RGVmaW5pdGlvbnNUYWc8L3RhZ2NsYXNzPgorICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmZpbGU8L25hbWU+CisgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICAgIERlZmluaXRpb24gZmlsZSBuYW1lLgorICAgICAgPC9pbmZvPgorICAgIDwvYXR0cmlidXRlPgorCisgICAgPGF0dHJpYnV0ZT4KKyAgICAgIDxuYW1lPmNsYXNzbmFtZTwvbmFtZT4KKyAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgPGluZm8+CisgICAgICAgIElmIHNwZWNpZmllZCwgY2xhc3NuYW1lIG9mIHRoZSBmYWN0b3J5IHRvIGNyZWF0ZSBhbmQgaW5pdGlhbGl6ZWQuCisgICAgICA8L2luZm8+CisgICAgPC9hdHRyaWJ1dGU+CisKKyAgPC90YWc+CisKKzwvdGFnbGliPgorCis8L2JvZHk+CisKKzwvZG9jdW1lbnQ+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2luZy54bWwgYi9idWlsZC1sZWdhY3kvY29yZS94ZG9jcy91c2luZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZThlYzlmMgotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3VzaW5nLnhtbApAQCAtMCwwICsxLDE5MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8ZG9jdW1lbnQgdXJsPSIuL3VzaW5nLnhtbCI+CisKKzwhLS0KKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSA3OAorLS0+CisKKzxwcm9wZXJ0aWVzPgorICAgIDx0aXRsZT5Vc2luZyAtIFRoZSBBcGFjaGUgU3RydXRzIFdlYiBBcHBsaWNhdGlvbiBGcmFtZXdvcms8L3RpdGxlPgorPC9wcm9wZXJ0aWVzPgorCis8Ym9keT4KKworPHNlY3Rpb24gbmFtZT0iVXNpbmcgU3RydXRzIj4KKworICAgIDxwPgorICAgIEluIHRoZSBub3JtYWwgY291cnNlIG9mIHVzaW5nIGFuIGFwcGxpY2F0aW9uIGZyYW1ld29yayBsaWtlIFN0cnV0cywKKyAgICB5b3UgbWF5IHdpc2ggdG8KKyAgICA8L3A+CisKKyAgICA8dWw+CisKKyAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9IiNCdWdzIj5yZXBvcnQgYSBidWcgb3IgZmVhdHVyZSByZXF1ZXN0PC9hPiwKKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgICAgICA8YSBocmVmPSIjUGF0Y2hlcyI+Y29udHJpYnV0ZSBhIHBhdGNoPC9hPiwKKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgICAgICA8YSBocmVmPSIjTGlzdHMiPmpvaW4gdGhlIG1haWxpbmcgbGlzdHM8L2E+LAorICAgIDwvbGk+CisKKyAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9IiNRdWVzdGlvbnMiPnBvc3QgYSBxdWVzdGlvbjwvYT4sCisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICAgICAgb3Igb3RoZXJ3aXNlIDxhIGhyZWY9IiNJbnZvbHZlZCI+YmVjb21lIGludm9sdmVkPC9hPiB3aXRoIHRoZSBTdHJ1dHMgCisgICAgICAgIENvbW11bml0eS4KKyAgICA8L2xpPgorCisgICAgPC91bD4KKworICAgIDwvc2VjdGlvbj4KKworICAgIDxzZWN0aW9uIG5hbWU9IlJlcG9ydGluZyBCdWdzIGFuZCBGZWF0dXJlIFJlcXVlc3RzIiBocmVmPSJCdWdzIj4KKworICAgIDxwPgorICAgIFRyYWNraW5nIG9mIGJ1ZyByZXBvcnRzIGFuZCBlbmhhbmNlbWVudCByZXF1ZXN0cyBmb3IgU3RydXRzIGlzIGhhbmRsZWQKKyAgICB0aHJvdWdoIHRoZSA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3NpdGUvYnVncy5odG1sIj4gQXBhY2hlIEJ1ZyAKKyAgICBEYXRhYmFzZTwvYT4uIAorICAgIFBsZWFzZSBzZWxlY3QgPHN0cm9uZz5TdHJ1dHM8L3N0cm9uZz4gZnJvbSB0aGUgcHJvZHVjdCBsaXN0LCBhbG9uZyB3aXRoIAorICAgIHRoZSBkZXRhaWxzIG9mIHdoaWNoIGNvbXBvbmVudCBvZiBTdHJ1dHMgeW91IGZlZWwgdGhpcyByZXBvcnQKKyAgICByZWxhdGVzIHRvLCBhbmQgZGV0YWlscyBvZiB5b3VyIG9wZXJhdGluZyBlbnZpcm9ubWVudC4gCisgICAgWW91IHdpbGwgYXV0b21hdGljYWxseSBiZSBub3RpZmllZCBieSBlbWFpbCBhcyB0aGUgc3RhdHVzIG9mIHlvdXIgYnVnIG9yCisgICAgZW5oYW5jZW1lbnQgcmVwb3J0IGNoYW5nZXMuIAorICAgIFBsZWFzZSBiZSBzdXJlIHRvIHJlYWQKKyAgICA8YSBocmVmPSJodHRwOi8vd3d3LmNoaWFyay5ncmVlbmVuZC5vcmcudWsvfnNndGF0aGFtL2J1Z3MuaHRtbCI+SG93IHRvIAorICAgIFJlcG9ydCBCdWdzIEVmZmVjdGl2ZWx5PC9hPiBiZWZvcmUgcG9zdGluZy4KKyAgICA8L3A+CisKKzwvc2VjdGlvbj4KKworPHNlY3Rpb24gbmFtZT0iQ29udHJpYnV0aW5nIFBhdGNoZXMgdG8gQ29kZSBvciBEb2N1bWVudGF0aW9uIiBocmVmPSJQYXRjaGVzIj4KKworICAgIDxwPgorICAgIFlvdSBjYW4gdXBsb2FkIGEgcHJvcG9zZWQgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zaXRlL3NvdXJjZS5odG1sI1BhdGNoZXMiPgorICAgIHBhdGNoPC9hPiB0byBlaXRoZXIgdGhlIGNvZGUgb3IgZG9jdW1lbnRhdGlvbiBieSBjcmVhdGluZyBhIGZlYXR1cmUgcmVxdWVzdCBpbgorICAgIDxhIGhyZWY9IiNCdWdzIj5CdWd6aWxsYTwvYT4uIAorICAgIDxzdHJvbmc+QWZ0ZXIgY3JlYXRpbmcgdGhlIHRpY2tldDwvc3Ryb25nPiwgeW91IGNhbiBnbyBiYWNrIGFuZCB1cGxvYWQgYSBmaWxlIAorICAgIGNvbnRhaW5pbmcgeW91ciBwYXRjaC4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICBUaGUgZG9jdW1lbnRhdGlvbiBpcyBtYWludGFpbmVkIGluIHRoZSA8Y29kZT5kb2M8L2NvZGU+IGZvbGRlciBvZiB0aGUgU3VidmVyc2lvbiAKKyAgICByZXBvc2l0b3J5IAorICAgIGluIGEgWE1MIGZvcm1hdC4gCisgICAgSW4gdGhlIE5pZ2h0bHkgQnVpbGQsIHRoZXJlIGlzIGEgImNvbXBpbGUud2Vic2l0ZSIgdGFyZ2V0IGluIHRoZSAKKyAgICA8Y29kZT5idWlsZC54bWw8L2NvZGU+IGZpbGUsIHdoaWNoIHJlbmRlcnMgdGhlIFhNTCBpbnRvIHRoZSBIVE1MIHdlIHBvc3QgCisgICAgdG8gdGhlIFdlYnNpdGUuIAorICAgIElmIHlvdSB3b3VsZCBsaWtlIHRvIGhlbHAgd2l0aCB0aGUgZG9jdW1lbnRhdGlvbiwgaXQgaXMgaW1wb3J0YW50IHRvIAorICAgIHByb3ZpZGUgcGF0Y2hlcyBhbmQgbmV3IHBhZ2VzIGluIHRoZSBYTUwgc291cmNlLiAKKyAgICBPdGhlcndpc2UsIHNvbWUgb3RoZXIgdm9sdW50ZWVyIHdpbGwgaGF2ZSB0byBkbyB0aGlzIGZvciB5b3UsIGFuZCBpdCBtYXkgCisgICAgbmV2ZXIgZ2V0IGRvbmUuIAorICAgIChTYWQgYnV0IHRydWUuKSAKKyAgICBJZiB5b3UgYXJlIHN1Ym1pdHRpbmcgbmV3IG1hdGVyaWFsLCBpdCBpcyBpbXBvcnRhbnQgdG8gZGVjaWRlIGV4YWN0bHkgCisgICAgd2hlcmUgeW91IHdvdWxkIHB1dCB0aGlzIGluIHJlbGF0aW9uIHRvIHRoZSByZXN0IG9mIHRoZSBkb2N1bWVudGF0aW9uLiAKKyAgICBTb21lb25lIGhhcyB0byBmaWd1cmUgdGhhdCBvdXQgYmVmb3JlIGl0IGNhbiBiZSBhZGRlZCwgYW5kIHRoYXQgc29tZW9uZSAKKyAgICBtaWdodCBhcyB3ZWxsIGJlIHlvdS4KKyAgICA8L3A+CisKKyAgICA8cD4KKyAgICAgICAgSWYgeW91IGhhdmUgY29tbWVudHMgb24gZXhpc3RpbmcgbWF0ZXJpYWwsIHlvdSBjYW4gbWFrZSBjb21tZW50cyB2aWEgdGhlIFN0cnV0cyBXaWtpLiBKdXN0IGZvbGxvdyB0aGUKKyAgICAgICAgIkNvbW1lbnRzPyIgbGluayBvbiBhbnkgcGFnZS4KKyAgICAgICAgSWYgeW91IGFyZSBtYWtpbmcgYSBzdWJzdGFudGlhbCBjb250cmlidXRpb24sIHN1Y2ggYXMgYSBuZXcgSE9XLVRPLCBwbGVhc2UgY29uc2lkZXIgc3VibWl0dGluZyBhIGRvY3VtZW50IGluCisgICAgICAgIHRoZSBYTUwgZm9ybWF0IHdlIHVzZS4KKyAgICAgICAgVGhpcyB3aWxsIG1ha2UgaXQgZWFzaWVyIHRvIGFkZCB5b3VyIGNvbnRyaWJ1dGlvbiB0byB0aGUgb2ZmaWNpYWwgZG9jdW1lbnRhdGlvbiBzbyB0aGF0IGl0IGJlY29tZXMgcGFydCBvZiB0aGUKKyAgICAgICAgV0FSIGRpc3RyaWJ1dGVkIHdpdGggU3RydXRzLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIEZvciBtb3JlLCBzZWUgdGhlIDxhIGhyZWY9Ii4vZmFxcy9oZWxwaW5nLmh0bWwiPkhvdyB0byBIZWxwIEZBUTwvYT4uCisgICAgPC9wPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IkpvaW5pbmcgdGhlIE1haWxpbmcgTGlzdHMiIGhyZWY9Ikxpc3RzIj4KKworICAgIDxwPgorICAgIEJlZm9yZSBqb2luaW5nIGFueSBtYWlsaW5nIGxpc3QgYXQgSmFrYXJ0YSwgcGxlYXNlIGJlIHN1cmUgdG8gcmVhZCB0aGUKKyAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3NpdGUvbWFpbC5odG1sIj5NYWlsaW5nIExpc3RzIC0gCisgICAgR3VpZGVsaW5lczwvYT4uCisgICAgSWYgeW91IGhhdmUgcmVhZCBhbmQgdW5kZXJzdG9vZCB0aGVzZSBndWlkZWxpbmVzLCB5b3UgYXJlIHdlbGNvbWUgdG8gam9pbiAKKyAgICB0aGUgSmFrYXJ0YSBTdHJ1dHMgbWFpbGluZyBsaXN0czoKKyAgICA8L3A+CisgICAgCisgICAgPHVsPgorICAgICAgICAKKyAgICA8bGk+CisgICAgICA8c3Ryb25nPlNUUlVUUy1VU0VSIE1haWxpbmcgTGlzdDwvc3Ryb25nPiAtIFN1YnNjcmliZSB0byB0aGlzIGxpc3QKKyAgICAgIHRvIGNvbW11bmljYXRlIHdpdGggb3RoZXIgZGV2ZWxvcGVycyB0aGF0IGFyZSB1c2luZworICAgICAgU3RydXRzIGZvciB0aGVpciBvd24gYXBwbGljYXRpb25zLCBpbmNsdWRpbmcgcXVlc3Rpb25zIGFib3V0IHRoZQorICAgICAgaW5zdGFsbGF0aW9uIG9mIFN0cnV0cywgYW5kIHRoZSB1c2FnZSBvZiBwYXJ0aWN1bGFyIFN0cnV0cyBmZWF0dXJlcy48YnIvPgorICAgICAgWzxhIGhyZWY9Im1haWx0bzpzdHJ1dHMtdXNlci1zdWJzY3JpYmVAamFrYXJ0YS5hcGFjaGUub3JnIj5TdWJzY3JpYmU8L2E+XTxici8+CisgICAgICBbPGEgaHJlZj0ibWFpbHRvOnN0cnV0cy11c2VyLXVuc3Vic2NyaWJlQGpha2FydGEuYXBhY2hlLm9yZyI+VW5zdWJzY3JpYmU8L2E+XQorICAgIDwvbGk+CisgICAgICAKKyAgICA8bGk+CisgICAgICA8c3Ryb25nPlNUUlVUUy1ERVYgTWFpbGluZyBMaXN0PC9zdHJvbmc+IC0gU3Vic2NyaWJlIHRvIHRoaXMgbWFpbGluZyAKKyAgICAgIGxpc3QgdG8gY29tbXVuaWNhdGUgd2l0aCBvdGhlciBkZXZlbG9wZXJzIGludGVyZXN0ZWQgaW4gZXhwYW5kaW5nIGFuZCAKKyAgICAgIGltcHJvdmluZyB0aGUgZnVuY3Rpb25hbGl0eSBzdXBwb3J0ZWQgYnkgU3RydXRzIGl0c2VsZi48YnIvPgorICAgICAgWzxhIGhyZWY9Im1haWx0bzpzdHJ1dHMtZGV2LXN1YnNjcmliZUBqYWthcnRhLmFwYWNoZS5vcmciPlN1YnNjcmliZTwvYT5dPGJyLz4KKyAgICAgIFs8YSBocmVmPSJtYWlsdG86c3RydXRzLWRldi11bnN1YnNjcmliZUBqYWthcnRhLmFwYWNoZS5vcmciPlVuc3Vic2NyaWJlPC9hPl0KKyAgICA8L2xpPgorICAgIAorICAgIDxsaT4KKyAgICAgIDxzdHJvbmc+U1RSVVRTLVVTRVIgRGlnZXN0PC9zdHJvbmc+IC0gU3Vic2NyaWJlIHRvIHRoaXMgbGlzdCB0byByZWNlaXZlIAorICAgICAgYSBkYWlseSBkaWdlc3Qgb2YgdGhlIFN0cnV0cyBVU0VSIGxpc3QuPGJyLz4KKyAgICAgIFs8YSBocmVmPSJtYWlsdG86c3RydXRzLXVzZXItZGlnZXN0LXN1YnNjcmliZUBqYWthcnRhLmFwYWNoZS5vcmciPlN1YnNjcmliZTwvYT5dPGJyLz4KKyAgICAgIFs8YSBocmVmPSJtYWlsdG86c3RydXRzLXVzZXItZGlnZXN0LXVuc3Vic2NyaWJlQGpha2FydGEuYXBhY2hlLm9yZyI+VW5zdWJzY3JpYmU8L2E+XTxici8+CisgICAgICBJZiB5b3Ugc3Vic2NyaWJlIHRvIHRoZSBEaWdlc3QsIHlvdSBjYW4gYWxzbyBwb3N0IHRvIHRoZSBVc2VyIGxpc3QuIAorICAgICAgKEp1c3QgZG9uJ3QgcXVvdGUgdGhlIGVudGlyZSBEaWdlc3QgbWFpbGluZyBpbiBhIHJlcGx5ISkKKyAgICA8L2xpPgorICAgIAorICAgIDxsaT4KKyAgICAgIDxzdHJvbmc+U1RSVVRTLVVTRVIgTmV3c2dyb3VwPC9zdHJvbmc+IC0gVGhlIFVzZXIgbGlzdCBpcyBhbHNvIG1pcnJvcmVkIG9ubGluZSwKKyAgICAgIHNvIHRoYXQgeW91IGNhbiBwYXJ0aWNpcGF0ZSA8c3Ryb25nPndpdGhvdXQ8L3N0cm9uZz4gc3Vic2NyaWJpbmcgdG8gdGhlIHJlZ3VsYXIgbWFpbGluZworICAgICAgbGlzdC48YnIvPgorICAgICAgWzxhIGhyZWY9Imh0dHA6Ly93d3cucHJvai5jb20vc3Vic2NyaWJlLmpzcCI+U3RydXRzIE5ld3Nncm91cDwvYT5dPGJyLz4KKyAgICAgIFRoaXMgaXMgYW5vdGhlciB3YXkgdG8gcG9zdCB0byB0aGUgVXNlciBsaXN0IHdpdGhvdXQgc3Vic2NyaWJpbmcgdG8gdGhlIAorICAgICAgcmVndWxhciBsaXN0LiA8YnIvPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorCis8L3NlY3Rpb24+CisKKzxzZWN0aW9uIG5hbWU9IlBvc3RpbmcgYSBRdWVzdGlvbiB0byBhIE1haWxpbmcgTGlzdCIgaHJlZj0iUXVlc3Rpb25zIj4KKworICAgIDxwPgorICAgIEJlZm9yZSBwb3N0aW5nIGEgbmV3IHF1ZXN0aW9uLCBiZSBzdXJlIHRvIGNvbnN1bHQgdGhlCisgICAgPGEgaHJlZj0iaHR0cDovL21haWwtYXJjaGl2ZXMuYXBhY2hlLm9yZy9leWVicm93c2UvU3VtbWFyaXplTGlzdD9saXN0SWQ9NDIiPgorICAgIDxzdHJvbmc+TUFJTElORyBMSVNUIEFSQ0hJVkU8L3N0cm9uZz48L2E+IGFuZCB0aGUgdmVyeSBleGNlbGxlbnQKKyAgICA8YSBocmVmPSJodHRwOi8vd3d3LmNhdGIub3JnL35lc3IvZmFxcy9zbWFydC1xdWVzdGlvbnMuaHRtbCI+CisgICAgSG93IFRvIEFzayBRdWVzdGlvbnMgVGhlIFNtYXJ0IFdheTwvYT4gYnkgRXJpYyBSYXltb25kLgorICAgIDwvcD4KKworICAgIDxwPgorICAgIFBsZWFzZSBkbyBiZSBzdXJlIHRvIDxhIGhyZWY9Imh0dHA6Ly9leHBpdGEuY29tL25vbWltZS5odG1sIj50dXJuIG9mZiAgSFRNTDwvYT4gaW4geW91ciBlbWFpbCBjbGllbnQgYmVmb3JlIHBvc3RpbmcuCisgICAgPC9wPgorCisgICAgPC9zZWN0aW9uPgorCisgICAgPHNlY3Rpb24gbmFtZT0iR2V0dGluZyBJbnZvbHZlZCIgaHJlZj0iSW52b2x2ZWQiPgorCisgICAgPHA+CisgICAgICAgIEFsbCB3b3JrIG9uIFN0cnV0cyBhbmQgdGhlIG90aGVyIEpha2FydGEgc3VicHJvamVjdHMgaXMgcHJvdmlkZWQgb24gYSB2b2x1bnRlZXIgYmFzaXMuCisgICAgICAgIEZvciBtb3JlIGFib3V0IHdoYXQgeW91IGNhbiBkbywgc2VlIHRoZSBKYWthcnRhCisgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc2l0ZS9nZXRpbnZvbHZlZC5odG1sIj5HZXR0aW5nIEludm9sdmVkIE92ZXJ2aWV3PC9hPiBhbmQgdGhlIFN0cnV0cworICAgICAgICA8YSBocmVmPSIuL2ZhcXMvaGVscGluZy5odG1sIj5Ib3cgdG8gSGVscCBGQVE8L2E+LgorICAgIDwvcD4KKworPC9zZWN0aW9uPgorCis8c2VjdGlvbj4KKyAgICA8cCBjbGFzcz0icmlnaHQiPgorICAgIDxzdHJvbmc+TmV4dDo8L3N0cm9uZz4gPGEgaHJlZj0idm9sdW50ZWVycy5odG1sIj5XaG8gV2UgQXJlPC9hPgorICAgIDwvcD4KKzwvc2VjdGlvbj4KKworPC9ib2R5PgorPC9kb2N1bWVudD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3ZvbHVudGVlcnMueG1sIGIvYnVpbGQtbGVnYWN5L2NvcmUveGRvY3Mvdm9sdW50ZWVycy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZkOGYxYwotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS9jb3JlL3hkb2NzL3ZvbHVudGVlcnMueG1sCkBAIC0wLDAgKzEsMzk0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxkb2N1bWVudCB1cmw9Ii4vdm9sdW50ZWVycy54bWwiPgorICAgPHByb3BlcnRpZXM+CisgICAgICA8dGl0bGU+V2hvIFdlIEFyZSAtIFRoZSBBcGFjaGUgU3RydXRzIFdlYiBBcHBsaWNhdGlvbiBGcmFtZXdvcms8L3RpdGxlPgorCisgICA8L3Byb3BlcnRpZXM+CisKKyAgIDxib2R5PgorICAgICAgCisgICAgICAgICA8c2VjdGlvbiBuYW1lPSJDb21tdW5pdHkgU3VwcG9ydCIgaHJlZj0ic3VwcG9ydCI+CisgICAgICAgICAgICA8cD5JbiBBdWd1c3QgMjAwMywgdGhlcmUgd2VyZSAyNzAwIHN1YnNjcmliZXJzIHRvIFNUUlVUUy1VU0VSIChpbmNsdWRpbmcgdGhlIGRpZ2VzdCB2ZXJzaW9uKS4gSXQncyB0aGUgbGFyZ2VzdCB1c2VyIG1haWxpbmcgbGlzdCBhdCBKYWthcnRhLCBleGNlZWRpbmcgdGhlIFRPTUNBVC1VU0VSIGxpc3Qgb2YgYWJvdXQgMjQwMCBzdWJzY3JpYmVycy4gSW4gYWRkaXRpb24gdG8gdGhlIHJlZ3VsYXIgc3Vic2NyaWJlcnMsIGFuIHVua25vd24gbnVtYmVyIG9mIGRldmVsb3BlcnMgcmVhZCB0aGUgbGlzdHMgdGhyb3VnaCBuZXdzZmVlZCBtaXJyb3JzIGFuZCB0aHJvdWdoIHNldmVyYWwgbGlzdCBhcmNoaXZlcy48L3A+CisKKyAgICAgICAgICAgIDxwPkFjY29yZGluZyB0byByZWNlbnRseSByZWxlYXNlZCAKKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9+dmdyaXRzZW5rby9zdGF0cy9wcm9qZWN0cy9zdHJ1dHMiPnN0YXRpc3RpY3M8L2E+LCBTdHJ1dHMgZG93bmxvYWRzIHJhbmdlIGJldHdlZW4gMTAsMDAwIGFuZCAzMCwwMDAgYSB3ZWVrLCByb3VnaGx5IHRoZSBzYW1lIGFzIEpha2FydGEgVG9tY2F0LjwvcD4KKworICAgICAgICAgPC9zZWN0aW9uPgorCisgICAgICAgICA8c2VjdGlvbiBuYW1lPSJTb3VyY2UgQ29kZSBDb250cmlidXRvcnMiIGhyZWY9ImNvbnRyaWJ1dG9ycy5zb3VyY2UiPgorICAgICAgICAgICAgPHA+TW9yZSB0aGFuIGZpZnR5IGRldmVsb3BlcnMgaGF2ZSBjb250cmlidXRlZCBjb2RlIG9yIGRvY3VtZW50YXRpb24gdG8gU3RydXRzLiBXZSd2ZSB0cmllZCB0byBsaXN0IGFsbCBvZiBvdXIgdm9sdW50ZWVycyBvbiB0aGlzIHBhZ2UgKGFuZCBhcG9sb2dpemUgdG8gYW55b25lIHdlIG1pc3NlZCEpLjwvcD4KKworICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgPGxpPkFycm9uIEJhdGVzPC9saT4KKyAgICAgICAgICAgICAgIDxsaT5BcnVuIE0uIFRob21hczwvbGk+CisgICAgICAgICAgICAgICA8bGk+Q2VkcmljIER1bW91bGluPC9saT4KKyAgICAgICAgICAgICAgIDxsaT5DaHJpcyBBdWRsZXk8L2xpPgorICAgICAgICAgICAgICAgPGxpPkNyYWlnIFIuIE1jQ2xhbmFoYW48L2xpPgorICAgICAgICAgICAgICAgPGxpPkRhdmlkIEdlYXJ5PC9saT4KKyAgICAgICAgICAgICAgIDxsaT5EYXZpZCBHcmFoYW08L2xpPgorICAgICAgICAgICAgICAgPGxpPkRhdmlkIFdpbnRlcmZlbGR0PC9saT4KKyAgICAgICAgICAgICAgIDxsaT5Eb21pbmlxdWUgUGxhbnRlPC9saT4KKyAgICAgICAgICAgICAgIDxsaT5Eb24gQnJvd248L2xpPgorICAgICAgICAgICAgICAgPGxpPkRvbiBDbGFzZW48L2xpPgorICAgICAgICAgICAgICAgPGxpPkZsb3JlbnQgQ2FycGVudGllcjwvbGk+CisgICAgICAgICAgICAgICA8bGk+R3JlZyBMdWRpbmd0b248L2xpPiAgCisgICAgICAgICAgICAgICA8bGk+SmFtZXMgSG9sbWVzPC9saT4KKyAgICAgICAgICAgICAgIDxsaT5KYW1lcyBUdXJuZXI8L2xpPgorICAgICAgICAgICAgICAgPGxpPkplZmYgSHV0Y2hpc29uPC9saT4KKyAgICAgICAgICAgICAgIDxsaT5KaW1teSBMYXJzc29uPC9saT4KKyAgICAgICAgICAgICAgIDxsaT5LdXJ0IFBvc3Q8L2xpPgorICAgICAgICAgICAgICAgPGxpPkxlb25hcmRvIFF1aWphbm88L2xpPgorICAgICAgICAgICAgICAgPGxpPkx1aXMgQXJpYXM8L2xpPgorICAgICAgICAgICAgICAgPGxpPk1hcmN1cyBCcml0bzwvbGk+ICAgIAorICAgICAgICAgICAgICAgPGxpPk1hcml1cyBCYXJkdXRhPC9saT4KKyAgICAgICAgICAgICAgIDxsaT5NYXJ0aW4gQ29vcGVyPC9saT4KKyAgICAgICAgICAgICAgIDxsaT5NaWtlIFNjaGFjaHRlcjwvbGk+CisgICAgICAgICAgICAgICA8bGk+TmlhbGwgUGVtYmVydG9uPC9saT4KKyAgICAgICAgICAgICAgIDxsaT5SYWxwaCBTY2hhZXI8L2xpPgorICAgICAgICAgICAgICAgPGxpPlJvYiBMZWxhbmQ8L2xpPgorICAgICAgICAgICAgICAgPGxpPlNhdWwgUSBZdWFuPC9saT4gICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgPGxpPlNlYW4gTS4gS2VsbGV5PC9saT4KKyAgICAgICAgICAgICAgIDxsaT5TdGV2ZSBSYWVidXJuPC9saT4KKyAgICAgICAgICAgICAgIDxsaT5TdGV2ZSBTdGFpcjwvbGk+ICAgCisgICAgICAgICAgICAgICA8bGk+VGVkIEh1c3RlZDwvbGk+CisgICAgICAgICAgICA8L3VsPgorICAgICAgICAgPC9zZWN0aW9uPgorCisgICAgICAgICA8c2VjdGlvbiBuYW1lPSJEb2N1bWVudGF0aW9uIENvbnRyaWJ1dG9ycyIgaHJlZj0iY29udHJpYnV0b3JzLmRvY3VtZW50YXRpb24iPgorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgPGxpPkNyYWlnIFIuIE1jQ2xhbmFoYW48L2xpPgorCisgICAgICAgICAgICAgICA8bGk+RGF2aWQgR2Vhcnk8L2xpPgorCisgICAgICAgICAgICAgICA8bGk+TWlrZSBTY2hhY2h0ZXI8L2xpPgorCisgICAgICAgICAgICAgICA8bGk+VGVkIEh1c3RlZDwvbGk+CisKKyAgICAgICAgICAgICAgIDxsaT5NYXJ0aW4gQ29vcGVyPC9saT4KKworICAgICAgICAgICAgICAgPGxpPkFycm9uIEJhdGVzPC9saT4KKworICAgICAgICAgICAgICAgPGxpPkNlZHJpYyBEdW1vdWxpbjwvbGk+CisKKyAgICAgICAgICAgICAgIDxsaT5EYXZpZCBXaW50ZXJmZWxkdDwvbGk+CisKKyAgICAgICAgICAgICAgIDxsaT5DaHJpcyBBc3NlbnphPC9saT4KKworICAgICAgICAgICAgICAgPGxpPmRJb24gR2lsbGFyZDwvbGk+CisKKyAgICAgICAgICAgICAgIDxsaT5Eb21pbmlxdWUgUGxhbnRlPC9saT4KKworICAgICAgICAgICAgICAgPGxpPkVkIEJ1cm5zPC9saT4KKworICAgICAgICAgICAgICAgPGxpPkVyaWMgV3U8L2xpPgorCisgICAgICAgICAgICAgICA8bGk+SmFtZXMgRGVWcmllczwvbGk+CisKKyAgICAgICAgICAgICAgIDxsaT5Kb2huIFJvdXNzZWF1PC9saT4KKworICAgICAgICAgICAgICAgPGxpPkpvaG4gVWVsdHpob2VmZmVyPC9saT4KKworICAgICAgICAgICAgICAgPGxpPkxhcnJ5IE1jQ2F5PC9saT4KKworICAgICAgICAgICAgICAgPGxpPk1hcmsgQnVkYWk8L2xpPgorCisgICAgICAgICAgICAgICA8bGk+TWF0dGhpYXMgS2Vya2hvZmY8L2xpPgorCisgICAgICAgICAgICAgICA8bGk+UGF1bCBSdW55YW48L2xpPgorCisgICAgICAgICAgICAgICA8bGk+Um9iZXJ0IEhheWRlbjwvbGk+CisKKyAgICAgICAgICAgICAgIDxsaT5Sb2IgTGVsYW5kPC9saT4KKworICAgICAgICAgICAgICAgPGxpPlN0YW5sZXkgU2FudGlhZ288L2xpPgorCisgICAgICAgICAgICAgICA8bGk+V29uZyBLb2sgS2FpPC9saT4KKworICAgICAgICAgICAgICAgPGxpPkRvbmFsZCBCYWxsPC9saT4KKworICAgICAgICAgICAgICAgPGxpPkRhbiBXYWxrZXI8L2xpPgorCisgICAgICAgICAgICAgICA8bGk+RWRkaWUgQnVzaDwvbGk+CisKKyAgICAgICAgICAgICAgIDxsaT5ZYW5uIENlYnJvbjwvbGk+CisKKyAgICAgICAgICAgICAgIDxsaT5EYXZpZCBHcmFoYW08L2xpPgorCisgICAgICAgICAgICAgICA8bGk+U3RldmUgRGl0bGluZ2VyPC9saT4KKworICAgICAgICAgICAgICAgPGxpPkRhdmlkIE0uIEthcnI8L2xpPgorCisgICAgICAgICAgICAgICA8bGk+VGltIE8nQnJpZW48L2xpPgorCisgICAgICAgICAgICAgICA8bGk+RWRnYXIgRG9sbGluPC9saT4KKworICAgICAgICAgICAgICAgPGxpPlBoaWwgU3RlaXR6PC9saT4KKworICAgICAgICAgICAgICAgPGxpPlN0ZXZlIFJhZWJ1cm48L2xpPgorCisgICAgICAgICAgICAgICA8bGk+VGV0c3VvIEFqaW1hPC9saT4KKworICAgICAgICAgICAgICAgPGxpPlRhdHN1byBUYWthaGFzaGk8L2xpPgorCisgICAgICAgICAgICAgICA8bGk+U2F0b3NoaSBIaW9raTwvbGk+CisKKyAgICAgICAgICAgICAgIDxsaT5Zb3NoaW5vcmkgQXNoaXphd2E8L2xpPgorICAgICAgICAgICAgPC91bD4KKyAgICAgICAgIDwvc2VjdGlvbj4KKworICAgICAgICAgPHNlY3Rpb24gbmFtZT0iQWN0aXZlIENvbW1pdHRlcnMiIGhyZWY9ImNvbW1pdHRlcnMiPgorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgPHN0cm9uZz5DcmFpZyBSLiBNY0NsYW5haGFuPC9zdHJvbmc+CisKKyAgICAgICAgICAgICAgIChjcmFpZ21jYyBhdCBhcGFjaGUub3JnKTwvbGk+CisKKyAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgIDxzdHJvbmc+VGVkIEh1c3RlZDwvc3Ryb25nPgorCisgICAgICAgICAgICAgICAoaHVzdGVkIGF0IGFwYWNoZS5vcmcpPC9saT4KKworICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgPHN0cm9uZz5Sb2IgTGVsYW5kPC9zdHJvbmc+CisKKyAgICAgICAgICAgICAgIChybGVsYW5kIGF0IGFwYWNoZS5vcmcpPC9saT4KKworICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgPHN0cm9uZz5DZWRyaWMgRHVtb3VsaW48L3N0cm9uZz4KKworICAgICAgICAgICAgICAgKGNlZHJpYy5kdW1vdWxpbiBhdCBsaWZsLmZyKTwvbGk+CisKKyAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgIDxzdHJvbmc+TWFydGluIENvb3Blcjwvc3Ryb25nPgorCisgICAgICAgICAgICAgICAobWFydGluYyBhdCBhcGFjaGUub3JnKTwvbGk+CisKKyAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgIDxzdHJvbmc+QXJyb24gQmF0ZXM8L3N0cm9uZz4KKworICAgICAgICAgICAgICAgKGFycm9uIGF0IGFwYWNoZS5vcmcpPC9saT4KKworICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgPHN0cm9uZz5KYW1lcyBIb2xtZXM8L3N0cm9uZz4KKworICAgICAgICAgICAgICAgKGpob2xtZXMgYXQgYXBhY2hlLm9yZyk8L2xpPgorCisgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICA8c3Ryb25nPkRhdmlkIE0uIEthcnI8L3N0cm9uZz4KKworICAgICAgICAgICAgICAgKGRta2FyciBhdCBhcGFjaGUub3JnKTwvbGk+CisKKyAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgIDxzdHJvbmc+RGF2aWQgR3JhaGFtPC9zdHJvbmc+CisKKyAgICAgICAgICAgICAgIChkZ3JhaGFtIGF0IGFwYWNoZS5vcmcpPC9saT4KKworICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgPHN0cm9uZz5KYW1lcyBNaXRjaGVsbDwvc3Ryb25nPgorCisgICAgICAgICAgICAgICAoam1pdGNoZWxsIGF0IGFwYWNoZS5vcmcpPC9saT4KKworICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgPHN0cm9uZz5KYW1lcyBUdXJuZXI8L3N0cm9uZz4KKworICAgICAgICAgICAgICAgKHR1cm5lciBhdCBibGFja2JlYXIuY29tKTwvbGk+CisKKyAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgIDxzdHJvbmc+U3RldmUgUmFlYnVybjwvc3Ryb25nPgorCisgICAgICAgICAgICAgICAoc3JhZWJ1cm4gYXQgYXBhY2hlLm9yZyk8L2xpPgorICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICA8c3Ryb25nPkRvbiBCcm93bjwvc3Ryb25nPgorCisgICAgICAgICAgICAgICAobXJkb24gYXQgYXBhY2hlLm9yZyk8L2xpPgorICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICA8c3Ryb25nPkpvZSBHZXJtdXNrYTwvc3Ryb25nPgorCisgICAgICAgICAgICAgICAoZ2VybXVza2EgYXQgYXBhY2hlLm9yZyk8L2xpPgorICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgPHN0cm9uZz5OaWFsbCBQZW1iZXJ0b248L3N0cm9uZz4KKworICAgICAgICAgICAgICAgKG5pYWxscCBhdCBhcGFjaGUub3JnKTwvbGk+CisgICAgICAgICAgICA8L3VsPgorICAgICAgICAgPC9zZWN0aW9uPgorCisgICAgICAgICA8c2VjdGlvbiBuYW1lPSJFbWVyaXR1cyBDb21taXR0ZXJzIiBocmVmPSJjb21pdHRlcnMuZW1lcml0dXMiPgorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgPGxpPkRhdmlkIEdlYXJ5PC9saT4KKworICAgICAgICAgICAgICAgPGxpPkx1aXMgQXJpYXM8L2xpPgorCisgICAgICAgICAgICAgICA8bGk+UGllcnJlIERlbGlsc2U8L2xpPgorCisgICAgICAgICAgICAgICA8bGk+TWljaGFlbCBTY2hhY2h0ZXI8L2xpPgorCisgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICA8c3Ryb25nPlZpbmNlbnQgTWFzc29sPC9zdHJvbmc+CisgICAgICAgICAgICAgICA8L2xpPgorCisgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICA8c3Ryb25nPkRhdmlkIFdpbnRlcmZlbGR0PC9zdHJvbmc+CisgICAgICAgICAgICAgICA8L2xpPgorCisgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICA8c3Ryb25nPk9sZWcgQWxleGVldjwvc3Ryb25nPgorICAgICAgICAgICAgICAgPC9saT4KKworICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgPHN0cm9uZz5FZGRpZSBCdXNoPC9zdHJvbmc+CisgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgPC91bD4KKyAgICAgICAgIDwvc2VjdGlvbj4KKworICAgICAgICAgPHNlY3Rpb24gbmFtZT0iTW9yZSBBYm91dCBVcyIgaHJlZj0iYWJvdXQiPgorICAgICAgICAgICAgPGg0IGlkPSJjcmFpZ21jYyI+Q3JhaWcgUi4gTWNDbGFuYWhhbiAtLSBDb21taXR0ZXI8L2g0PgorCisgICAgICAgICAgICA8cD5JJ3ZlIGJlZW4gaW52b2x2ZWQgd2l0aCBzZXJ2bGV0IGFuZCBKU1AgdGVjaG5vbG9neSBzaW5jZSBhcm91bmQgMTk5OC4gSXQgc3RhcnRlZCBvdXQgdGhhdCBJIG5lZWRlZCBhIHdheSB0byBidWlsZCBzb21lIHdlYiBhcHBsaWNhdGlvbnMgZm9yIHNldmVyYWwgcHJvamVjdHMsIGFuZCBsaWtlZCBKYXZhIGEgbG90IGJldHRlciB0aGFuIHRoZSBhbHRlcm5hdGl2ZXMuIEkgYWxzbyBsaWtlZCB0aGUgcHJpY2UgdGFnIG9mIG9wZW4gc291cmNlIHNvZnR3YXJlLCBhbmQgc3RhcnRlZCB1c2luZyBBcGFjaGUgSlNlcnYgLS0gbGF0ZXIsIGdldHRpbmcgaW52b2x2ZWQgaW4gdGhlIHByb2plY3QgKGxpa2UgbWFueSBwZW9wbGUsIEkgd2FzIHdoaW5pbmcgYWJvdXQgdGhlIHR3ZWx2ZSBtb250aHMgaXQgdG9vayB0byBnZXQgZnJvbSB2ZXJzaW9uIDAuOSB0byB2ZXJzaW9uIDEuMCwgYW5kIG15IHNvbiBzYWlkICJEYWQsIHlvdSBrbm93IEphdmEgLS0gZ28gaGVscCB0aGVtIGZpbmlzaCBpdCEiIC0tIHNvIEkgZGlkIDotKS48L3A+CisKKyAgICAgICAgICAgIDxwPkZvciBxdWl0ZSBhIHdoaWxlLCBJIHdhcyBwYXJ0aWNpcGF0aW5nIGEgbG90IHRoZSBKU1AtSU5URVJFU1QgYW5kIFNFUlZMRVQtSU5URVJFU1QgCisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vYXJjaGl2ZXMuamF2YS5zdW4uY29tIj5tYWlsaW5nIGxpc3RzPC9hPgorCisgICAgICAgICAgICAsIGVzcGVjaWFsbHkgdGhlIHRvcGljIG9mIGdvb2QgYXJjaGl0ZWN0dXJlcyBmb3Igd2ViIGFwcGxpY2F0aW9ucy4gSSB3YXMgZGlzZ3VzdGVkIHdpdGggdGhlIGhhc2ggdGhhdCBtYW55IGJlZ2lubmVycyBjcmVhdGVkIHdoZW4gdGhleSB1c2VkIChvciBhYnVzZWQpIHNjcmlwdGxldHMgaW4gSlNQIHBhZ2VzLCBhbmQgYnVpbHQgKGZvciBteSBmb3JtZXIgZW1wbG95ZXIpIGEgcHJldHR5IGNvbXByZWhlbnNpdmUgZnJhbWV3b3JrIHRoYXQgY291bGQgY29uc2lkZXJlZCAoIlN0cnV0cyAwLjAxIHdpdGhvdXQgdGhlIGN1c3RvbSB0YWdzIikuIEl0IHdhcyBwcm9wcmlldGFyeSBjb2RlLCBidXQgSSB3YXMgYWJsZSB0byBkZXNjcmliZSB0aGUgY29uY2VwdHMsIGFuZCB0aGVyZSBzdGFydGVkIHRvIGEgZmVlbGluZyB0aGUgbGlzdHMgdGhhdCB0aGlzICJNb2RlbCAyIiB0aGluZyB3YXMgcHJldHR5IGNvb2wgLS0gYnV0IHRoZXJlIHdlcmUgbm8gZ29vZCBleGFtcGxlcyB0byBsb29rIGF0LCBzbyBpdCB3YXMgbW9zdGx5IGhhbmQgd2F2aW5nIHR5cGVzIG9mIGRpc2N1c3Npb25zLjwvcD4KKworICAgICAgICAgICAgPHA+T3ZlciB0aGUgc2FtZSB0aW1lIHBlcmlvZCwgSSBnb3QgaW52b2x2ZWQgYXMgYW4gaW5kaXZpZHVhbCBjb250cmlidXRvciBpbiB0aGUgCisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2pjcCI+SmF2YSBDb21tdW5pdHkgUHJvY2VzczwvYT4KKworICAgICAgICAgICAgLCBhbmQgam9pbmVkIHRoZSBleHBlcnQgZ3JvdXAgdGhhdCBkZWZpbmVkIHRoZSBzZXJ2bGV0IDIuMiBhbmQgSlNQIDEuMSBzcGVjcy4gU3VuIHdhcyBpbXByZXNzZWQgZW5vdWdoIHRvIG9mZmVyIG1lIGEgam9iIGFzIHRoZSB0ZWNobmljYWwgbGVhZCB0aGUgdGVhbSB3aXRoaW4gU3VuIChjdXJyZW50bHkgZml2ZSBvdGhlciBpbmRpdmlkdWFscykgdGhhdCB3b3JrcyAKKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdG9tY2F0Ij5Ub21jYXQ8L2E+CisKKyAgICAgICAgICAgIC0tIHRoZSBhcmNoaXRlY3R1cmUgZm9yIENhdGFsaW5hLCB3aGljaCBpcyB0aGUgc2VydmxldCBjb250YWluZXIgcGFydCBvZiBUb21jYXQgNC4wLCBpcyBhbHNvIG1pbmUgLS0gc28gSSBhbSBpbiB0aGUgcmVhbGx5IG5pY2UgcG9zaXRpb24gb2YgZ2V0dGluZyBwYWlkIHRvIHdvcmsgb3BlbiBzb3VyY2Ugc29mdHdhcmUgOi0pLiBBbmQsIHBhcnRpY2lwYXRlIHRoZSBleHBlcnQgZ3JvdXBzIGZvciBTZXJ2bGV0IDIuMyBhbmQgSlNQIDEuMi4gQW5kLCBzcGVhayBhdCB2YXJpb3VzIGNvbmZlcmVuY2VzLCBpbmNsdWRpbmcgQXBhY2hlQ29uIGFuZCBKYXZhT25lLiBBbmQsIHRhbGsgdG8gZ3JvdXBzIHdpdGhpbiBTdW4gYWJvdXQgdXNpbmcgU3RydXRzIGFuZCBKU1Avc2VydmxldCB0ZWNobm9sb2d5LiBBbmQgLi4uICh0aGVyZSdzIHNvbWUgcmVhbGx5IGludGVyZXN0aW5nIHRoaW5ncyBiZWluZyBjb25zaWRlcmVkIGZvciB0aGUgZnV0dXJlKS48L3A+CisKKyAgICAgICAgICAgIDxwPlRoZSBvcmlnaW5hbCBkZXNpZ24gb2Ygd2hhdCBjYW1lIHRvIFN0cnV0cyBoYXMgYmVlbiBpbiBteSBoZWFkIGZvciBhIGxvbmcgdGltZSwgc2luY2UgdGhvc2UgaW50ZXJlc3RpbmcgbWFpbGluZyBsaXN0IGRpc2N1c3Npb25zLCBidXQgdGhlIGZpcnN0IHZlcnNpb24gb2YgdGhlIGFjdHVhbCBjb2RlIHdhcyB3cml0dGVuIG15IGxhcHRvcCBhIE1lbW9yaWFsIERheSB3ZWVrZW5kIHZhY2F0aW9uIHRyaXAgKGVuZCBvZiBNYXksIDIwMDApIHRvIHRoZSBPcmVnb24gY29hc3QgLS0gaW4gYmV0d2VlbiB3YXRjaGluZyB0aGUgc3VyZiBhbmQgaGF2aW5nIHRoZSBob3VzZSBzaGFrZW4gYnkgYSB3aW5kc3Rvcm0gYXQgbmlnaHQuIFNpbmNlIHRoZW4sIGl0IGhhcyBnYXRoZXJlZCBhdHRlbnRpb24gYW5kIHBvcHVsYXJpdHkgYXMgd2UgYXBwcm9hY2ggb3VyIGZpcnN0IG9mZmljaWFsIHJlbGVhc2UsIGFuZCBpdCBkZWxpZ2h0cyBtZSB0byBzZWUgbXkgImJhYnkiIGdyb3cgdXAgc28gd2VsbCA6LSkuIE9mIGNvdXJzZSwgaXQgaXMgbm8gbG9uZ2VyIGp1c3QgbWUgLS0gdGhlcmUgaGF2ZSBiZWVuIGluY3JlZGlibGUgbnVtYmVycyBvZiBnb29kIGlkZWFzIGZyb20gYWxsIG92ZXIsIGFuZCBhIHBlZWsgYXQgdGhlIFRPRE8gbGlzdCBmb3IgMS4xIHNheXMgdGhhdCBldmVuIG1vcmUgZ29vZCBzdHVmZiBpcyBjb21pbmcgaW4gdGhlIGZ1dHVyZS48L3A+CisKKyAgICAgICAgICAgIDxwPk9uZSBtb3RpdmF0aW9uIGZhY3RvciB3YXMgCisgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LnNlcnZsZXRzLmNvbS9zb2FwYm94L3Byb2JsZW1zLWpzcC5odG1sIj5KYXNvbiBIdW50ZXInczwvYT4KKworICAgICAgICAgICAgYXJ0aWNsZSBhYm91dCB0aGUgUHJvYmxlbXMgd2l0aCBKU1AuIEphc29uIGFuZCBJIGdldCBhbG9uZyBmaW5lLCBldmVuIHRob3VnaCB3ZSBoYXZlIGRpZmZlcmVudCBwcmVmZXJlbmNlcyBhYm91dCBwcmVzZW50YXRpb24gdGVjaG5vbG9naWVzLiBCZXNpZGVzIGJlaW5nIHRoZSBhdXRob3Igb2YgYSB2ZXJ5IHBvcHVsYXIgYm9vayBhYm91dCBzZXJ2bGV0cywgd2l0aCBhIHNlY29uZCBlZGl0aW9uIGNvbWluZyBzb29uLCBKYXNvbiBpcyBhbHNvIHRoZSByZXByZXNlbnRhdGl2ZSBmb3IgdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIHRoZSBFeGVjdXRpdmUgQ29tbWl0dGVlIG9mIHRoZSBKYXZhIENvbW11bml0eSBQcm9jZXNzLjwvcD4KKworICAgICAgICAgICAgPHA+UGVyc29uYWxseSwgSSBsaXZlIGluIFBvcnRsYW5kLCBPcmVnb24gKGV2ZW4gdGhvdWdoIG15IHRlYW0gYXQgU3VuIGlzIG1vc3RseSBpbiBDdXBlcnRpbm8sIENBIC0tIHN0YXlpbmcgaGVyZSB3YXMgcGFydCBvZiB0aGUgam9iIGRlYWwgOi0pLiBJIGxpa2UgdG8gc3VwcG9ydCBPcmVnb24gc3BvcnRzIHRlYW1zIChPcmVnb24gU3RhdGUgQmVhdmVycywgT3JlZ29uIER1Y2tzLCBQb3J0bGFuZCBUcmFpbGJsYXplcnMpIGFuZCB3b3JrIGNvb2wgc29mdHdhcmUuPC9wPgorCisgICAgICAgICAgICA8cD5JIGZpZ3VyZWQgb3V0IEkgd2FzIGdldHRpbmcgcHJldHR5IG9sZCB3aGVuIEkgcmVhbGl6ZWQgdGhhdCAyMDAwIHdhcyB0aGUgMjV0aCB5ZWFyIEkgaGFkIGJlZW4gcGFpZCB0byB3b3JrIGluIHNvbWUgYXNwZWN0IG9mIHNvZnR3YXJlIGRldmVsb3BtZW50IDotKS4gSSd2ZSBnb3QgYSBzb24gd2hvIGlzIGEgZnVsbC10aW1lIHNvZnR3YXJlIGRldmVsb3BlciAocHJpbWFyaWx5IGluIFBIUCBzbyBmYXIsIGJ1dCBJJ20gZ29pbmcgdG8gY29ycnVwdCBoaW0gd2l0aCBKYXZhIGV2ZW50dWFsbHkgOi0pLCBhbmQgYSBkYXVnaHRlciBpbiBjb2xsZWdlLiBJJ2xsIGhhcHBpbHkgbGV0IHRoZSBvdGhlciBjb21taXR0ZXJzIHNwZWFrIGZvciB0aGVtc2VsdmVzLjwvcD4KKworICAgICAgICAgICAgPGg0IGlkPSJtc2NoYWNodGVyIj5NaWtlIFNjaGFjaHRlciAtLSBDb21taXR0ZXI8L2g0PgorCisgICAgICAgICAgICA8cD5JJ20gY3VycmVudGx5IGEgc3R1ZGVudCBvZiBjb21wdXRlciBzY2llbmNlIGF0IERyZXhlbCBVbml2ZXJzaXR5IGluIFBoaWxhZGVscGhpYSwgUEEuIEkndmUgYmVlbiB3b3JraW5nIGF0IEhQIE1pZGRsZXdhcmUsIGZvcm1lcmx5IEJsdWVzdG9uZSBTb2Z0d2FyZSBmb3IgMyB5ZWFycyBwcm9ncmFtbWluZyBpbiBKYXZhIGFuZCByZWNlbnRseSBKMkVFIHRlY2hub2xvZ2llcy4gSSdtIGEgZnVsbCB0aW1lIHdvcmtlciBmcm9tIFNlcHRlbWJlciB1bnRpbCBBcHJpbCBhbmQgYSBzdHVkZW50IGFuZCBwYXJ0IHRpbWUgd29ya2VyIGZyb20gQXByaWwgdW50aWwgQXVndXN0LiBJbiBteSBzcGFyZSB0aW1lIEkndmUgYmVlbiBrbm93biB0byBydW4gbW9ua2V5LWtuaWZlIGZpZ2h0cyBpbiBhIHNoYWR5IHNvdXRoIHBoaWxseSB3YXJlaG91c2UuIEVyci4uLiBJIG1lYW4uLi4gbm90aGluZy48L3A+CisKKyAgICAgICAgICAgIDxoNCBpZD0iaHVzdGVkIj5UZWQgSHVzdGVkIC0tIENvbW1pdHRlcjwvaDQ+CisKKyAgICAgICAgICAgIDxwPk15IHByaW1hcnkgaW50ZXJlc3QgaW4gU3RydXRzIGlzIHRvIHB1dCBpdCB0byB3b3JrIHdyaXRpbmcgbG90cyBvZiByZWFsLWxpZmUgV2ViIGFwcGxpY2F0aW9uczotKSBUbyBkbyB0aGF0IGVmZmVjdGl2ZWx5IG1lYW5zIGhhdmluZyBnb29kIGRvY3VtZW50YXRpb24gYW5kIGNvZGUgc2FtcGxlcyBhdCBteSBmaW5nZXJ0aXBzLCBzbyB0aGF0J3MgYmVlbiBteSBmb2N1cyB3aXRoIHRoZSBTdHJ1dHMgcHJvZHVjdCBzbyBmYXIuPC9wPgorCisgICAgICAgICAgICA8cD5JJ3ZlIGJlZW4gd3JpdGluZyBzb2Z0d2FyZSBmb3IgaGlyZSBzaW5jZSAxOTg0LCBidXQgb25seSByZWNlbnRseSBqdW1wZWQgdGhlIEphdmEgYmFuZHdhZ29uLiBNeSBpbml0aWFsIGludGVyZXN0IHdhcyB3aXRoIGVsZWN0cm9uaWMgcHVibGlzaGluZywgYW5kIHN0YXJ0ZWQgYnkgY29udmVydGluZyBteSB2YXJpb3VzIHByaW50IHByb2plY3RzIHRvIGVsZWN0cm9uaWMgbWVkaWEuIFRoZSAiSW5mb3JtYXRpb24gU3VwZXJoaWdod2F5IiB3YXMgc3RpbGwgdGhlIHByaXZhdGUgc3RvbXBpbmcgZ3JvdW5kIG9mIFVuaXZlcnNpdGllcyBhbmQgZ292ZXJubWVudCBhZ2VuY2llcyB0aGVuLiBUaGUgcmVzdCBvZiB1cyBoYWQgdG8gbWFrZSBkbyB3aXRoIGRpc2tldHRlcyBhbmQgYnVsbGV0aW4gYm9hcmRzLjwvcD4KKworICAgICAgICAgICAgPHA+QmV0d2VlbiAxOTg1IGFuZCAxOTk0LCBJIGNyZWF0ZWQgYW5kIG1hcmtldGVkIHNldmVyYWwgc29mdHdhcmUgcHJvZHVjdHMgZm9yIHB1Ymxpc2hpbmcgZGlzaywgdGhlIG1vc3QgcG9wdWxhciBiZWluZyAiRGFydCIgYW5kICJJcmlzIi4gSW4gMTk5MiwgRGFydCB3YXMgYXdhcmRlZCB0aGUgRGlnaXRhbCBRdWlsbCBmb3Igc29mdHdhcmUgZXhjZWxsZW5jZSwgZmVhdHVyZWQgaW4gUEMgTWFnYXppbmUgKEZlYnJ1YXJ5IDE5OTIpLCBhbmQgYnVuZGxlZCB3aXRoIE1jR3JhdyBIaWxsJ3MgYm9va3NldCwiUGFwZXJsZXNzIFB1Ymxpc2hpbmciIGJ5IENvbGluIEhheWVzIChNY0dyYXcgSGlsbCAxOTk0KS4gRGFydCB3b24gYSBzZWNvbmQgRGlnaXRhbCBRdWlsbCBpbiAxOTkzLiBTZXZlcmFsIHRpdGxlcyB0aGF0IHVzZWQgSXJpcyBmb3IgYSBwdWJsaXNoaW5nIHN5c3RlbSBoYXZlIGFsc28gd29uIGF3YXJkcyBhbmQgYmVlbiB3aWRlbHkgZGlzdHJpYnV0ZWQsIGluY2x1ZGluZyAiSGVybWl0dmlsbGUgVVNBLiIgSSB3YXMgYWxzbyBmb3J0dW5hdGUgdG8gZmluZCBraW5kcmVkIHNvdWxzIENvbXB1U2VydmUgYW5kIEFtZXJpY2EgT25saW5lLCB3aG8gaGVscGVkIG1lIHBpb25lZXIgcmVzb3VyY2VzIGFyZWFzIHRoZXJlIGluIDE5OTMgYW5kIDE5OTQgZm9yIHRoZSBuYXNjZW50IGVsZWN0cm9uaWMgcHVibGlzaGluZyBpbmR1c3RyeS48L3A+CisKKyAgICAgICAgICAgIDxwPkkgZmluYWxseSBjdXQgbG9vc2UgdGhlIEludGVybmV0IGluIDE5OTUsIGxhdW5jaGluZyBFcHViIE5ld3MsIGFuIGVsZWN0cm9uaWMgbmV3c3BhZ2UgYWJvdXQgZWxlY3Ryb25pYyBwdWJsaXNoaW5nLiBBZnRlciB0YWtpbmcgc2V2ZXJhbCBwcml2YXRlIGNvbnRyYWN0cywgSSBvcGVuZWQgdGhlIEh1c3RlZCBkb3QgQ29tIFdlYnNpdGUgKHd3dy5odXN0ZWQuY29tKSBpbiAxOTk2LiBJJ3ZlIGRyaWZ0ZWQgYXdheSBmcm9tIGVsZWN0cm9uaWMgYm9va3MsIGJ1dCBoYXZlIG5vdGljZWQgdGhhdCBzZXZlcmFsIHByb2R1Y3RzIGFyZSBub3cgbWFraW5nIHRoZWlyIHdheSBpbnRvIHRoZSBjb25zdW1lciBtYWluc3RyZWFtIC0tIGFzIHVzdWFsLCBJIHdhcyB0d2VudHkgbWludXRlcyBpbnRvIHRoZSBmdXR1cmU6LSk8L3A+CisKKyAgICAgICAgICAgIDxwPk15IGZhdm9yaXRlIGFsbC10aW1lIHByb2plY3QgaXMgdGhlIEhpdGNoaGlrZXJzIEd1aWRlIHRvIFNjaWVuY2UgRmljdGlvbi4gVGhpcyB3YXMgb25lIG9mIG15IGVhcmxpZXN0IGh5cGVydGV4dCBwcm9qZWN0cyAoaXQgc3RhcnRlZCBhcyBhIHByaW50LWJvb2sgaWRlYSksIGFuZCBJIGhhZCBhIGxvdCBvZiBmdW4gYnJpbmdpbmcgaXQgZm9yd2FyZCBvbnRvIHRoZSBXZWIuIChOb3csIGlmIEkgb25seSBoYWQgdGltZSB0byBicmluZyBpdCBjdXJyZW50IGFuZCBkcmVzcyBpdCB1cCEpPC9wPgorCisgICAgICAgICAgICA8cD5DdXJyZW50bHksIEknbSB3b3JraW5nIHdpdGggdGhlIERlcGFydG1lbnQgb2YgRW52aXJvbm1lbnRhbCBRdWFsaXR5IGZvciBhIG1pZHdlc3Rlcm4gc3RhdGUuIFdlIGFyZSByZXZhbXBpbmcgdGhlIHBlcm1pdCBhcHBsaWNhdGlvbiBzeXN0ZW0gYXMgYSB3ZWIgYXBwbGljYXRpb24gYW5kIGNlbnRyYWxpemluZyB0aGUgZGF0YWJhc2Ugc3lzdGVtIGJldHdlZW4gdGhlIHZhcmlvdXMgREVRIGRpdmlzaW9ucy48L3A+CisKKyAgICAgICAgICAgIDxoNCBpZD0iY2VkcmljIj5DZWRyaWMgRHVtb3VsaW4gLS0gQ29tbWl0dGVyPC9oND4KKworICAgICAgICAgICAgPHA+QXMgYSBkcmVhbWVyIC8gcmVzZWFyY2hlciBJIGhhdmUgdGhvdWdodCBhIGxvdCBhYm91dCBhIGZyYW1ld29yayBsaWtlIFN0cnV0cy4gQnV0LCBhcyBhIGxhenkgZGV2ZWxvcGVyIEkgaGF2ZSBmaXJzdCBjaGVja2VkIHdoYXQgYWxyZWFkeSBleGlzdHMsIGFuZCBJIGhhdmUgZm91bmQgU3RydXRzLiBTdHJ1dHMgZ29hbHMgZnVsZmlsbGVkIG5lYXJseSBhbGwgSSBuZWVkZWQgZm9yIG15IChub3cgb2xkKSBwb3J0YWwgcHJvamVjdCwgZXhjZXB0IHRoZSBjYXBhYmlsaXR5IHRvIHJldXNlIGFuZCBhc3NlbWJsZSBlYXNpbHkgcGllY2VzIG9mIHBhZ2VzIG9yIGNvbXBvbmVudHMuIFNvLCBJIGhhdmUgcHJvcG9zZWQgdGhlIENvbXBvbmVudHMgZnJhbWV3b3JrLiBUaGlzIGZyYW1ld29yayBjYW4gc2VlbiBhcyBhIHN1cGVyc2V0IG9mIHRoZSBUZW1wbGF0ZXMgdGFnIGxpYnJhcnkgY29udHJpYnV0ZWQgYnkgRGF2aWQgR2VhcnksIGFuZCBjb250YWlucyBsb3Qgb2YgaW50ZXJlc3RpbmcgZmVhdHVyZXMuPC9wPgorCisgICAgICAgICAgICA8cD5Gcm9tIGEgcHJvZmVzc2lvbmFsIHBvaW50IG9mIHZpZXcsIEkgaGF2ZSBhIFBoLkQuIGluIGNvbXB1dGVyIHNjaWVuY2UuIEkgaGF2ZSB3b3JrZWQgZm9yIDMgeWVhcnMgaW4gdGhlIFImYW1wO0QgZGVwYXJ0bWVudCBvZiBhIHdvcmxkd2lkZSBjb21wYW55IGRldmVsb3BpbmcgSW50ZXJuZXQgYmFua2luZyBzb2x1dGlvbnMuIEkgYW0gbm93IGEgcmVzZWFyY2hlciBhdCBhIHVuaXZlcnNpdHksIGFuZCB3b3JrIEV1cm9wZWFuIHJlc2VhcmNoIHByb2plY3RzLiBNeSBtYWluIHJlc2VhcmNoIGludGVyZXN0IGlzIFdXVywgRGlzdHJpYnV0ZWQgU3lzdGVtcyBhbmQgT2JqZWN0IE9yaWVudGVkIERlc2lnbi4gV2hlbiBkZXZlbG9waW5nIGNvZGUsIEkgYWx3YXlzIHRyeSB0byBmaXJzdCBwcm9wb3NlIHJldXNhYmxlIHBpZWNlcyBvZiBjb2RlLjwvcD4KKworICAgICAgICAgICAgPGg0IGlkPSJtYXJ0aW5jIj5NYXJ0aW4gQ29vcGVyIC0tIENvbW1pdHRlcjwvaDQ+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgRWFybHkgaW4gdGhlIHllYXIgMjAwMCwgSSB3YXMgYXNrZWQsIGJ5IG15IGVtcGxveWVyIGF0IHRoYXQgdGltZSwKKyAgICAgICAgICAgICAgdG8gaW52ZXN0aWdhdGUgdGhlIGJlc3Qgd2F5IHRvIGRldmVsb3AgYSBuZXcgd2ViLWJhc2VkIGFwcGxpY2F0aW9uCisgICAgICAgICAgICAgIGZvciB0aGUgYWRtaW5pc3RyYXRpb24gYW5kIG1hbmFnZW1lbnQgb2YgYW4gZXhpc3RpbmcgcHJvZHVjdC4KKyAgICAgICAgICAgICAgQWZ0ZXIgZXhwbG9yaW5nIGEgbnVtYmVyIG9mIHRlY2hub2xvZ2llcywgSSBzZXR0bGVkIG9uIEphdmEsIGFsb25nCisgICAgICAgICAgICAgIHdpdGggc2VydmxldHMgYW5kIEpTUCwgYXMgdGhlIHdheSB0byBnby4gVGhlbiBJIHN0YXJ0ZWQgbG9va2luZworICAgICAgICAgICAgICBmb3IgbWV0aG9kb2xvZ2llcyBhbmQgImJlc3QgcHJhY3RpY2VzIiwgc2luY2Ugb3RoZXJzIG11c3Qgc3VyZWx5CisgICAgICAgICAgICAgIGhhdmUgYmVlbiBkb3duIHRoYXQgcGF0aCBiZWZvcmUgbWUuCisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgSW4gYWRkaXRpb24gdG8gcnVtbWFnaW5nIGFyb3VuZCBvbiB0aGUgd2ViLCBJIHN1YnNjcmliZWQgdG8gdGhlCisgICAgICAgICAgICAgIFNFUlZMRVQtSU5URVJFU1QgYW5kIEpTUC1JTlRFUkVTVCBtYWlsaW5nIGxpc3RzLCBhbG9uZyB3aXRoCisgICAgICAgICAgICAgIHNldmVyYWwgb3RoZXJzLCBhbmQgbW9uaXRvcmVkIHRoZSBkaXNjdXNzaW9ucyBmb3IgYSB3aGlsZS4gSXQgd2FzCisgICAgICAgICAgICAgIGNsZWFyIHRoYXQgb3RoZXJzIHdlcmUgc2Vla2luZyB0aGUgc2FtZSBhbnN3ZXJzIGFzIEkgd2FzLCBhbmQgaXQKKyAgICAgICAgICAgICAgd2FzIGFsc28gY2xlYXIgdGhhdCBtYW55IHBlb3BsZSB3ZXJlIGJ1aWxkaW5nIHRoZWlyIGFwcGxpY2F0aW9ucworICAgICAgICAgICAgICBpbiB0cnVseSBob3JyaWJsZSB3YXlzLgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgIEF0IHNvbWUgcG9pbnQgLS0gSSBkb24ndCByZWNhbGwgd2hlbiwgZXhhY3RseSAtLSB0aGUgY29uY2VwdCBvZgorICAgICAgICAgICAgICAiTW9kZWwgMSIgdmVyc3VzICJNb2RlbCAyIiBhcHBsaWNhdGlvbnMgY2FtZSB1cCwgYW5kIHRoZXJlIHdhcyBhCisgICAgICAgICAgICAgIGdyZWF0IGRlYWwgb2YgZGlzY3Vzc2lvbiBhcm91bmQgdGhhdC4gTW9kZWwgMiBzZWVtZWQgdmVyeSBtdWNoCisgICAgICAgICAgICAgIGxpa2UgQSBHb29kIFRoaW5nIHRvIG1lLCBhbmQgSSBwYWlkIGl0IGNsb3NlIGF0dGVudGlvbi4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICBUaGVuLCBpbiBNYXkgb2YgMjAwMCwgSSBzYXcgYSBtZXNzYWdlIGZyb20gQ3JhaWcgTWNDbGFuYWhhbgorICAgICAgICAgICAgICBhYm91dCBhIG5ldyBmcmFtZXdvcmsgY2FsbGVkIFN0cnV0cyB0aGF0IHdhcyBkZXNpZ25lZCB0byBlYXNlCisgICAgICAgICAgICAgIHRoZSBwcm9jZXNzIG9mIGJ1aWxkaW5nIE1vZGVsIDIgYXBwbGljYXRpb25zLCBhbmQgcHJvdmlkZQorICAgICAgICAgICAgICBzb2x1dGlvbnMgZm9yIHNvbWUgb2YgdGhlIGltcG9ydGFudCBpc3N1ZXMgYXQgdGhlIHNhbWUgdGltZS4gSQorICAgICAgICAgICAgICBob3BwZWQgb24gb3ZlciB0byB0aGUgd2ViIHNpdGUgYW5kIHRvb2sgYSBsb29rIGFyb3VuZC4gVGhpcyB3YXMKKyAgICAgICAgICAgICAgZXhhY3RseSB3aGF0IEkgaGFkIGJlZW4gbG9va2luZyBmb3IuCisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgTXkgZmlyc3QgcG9zdGluZ3MgdG8gdGhlIFN0cnV0cyBtYWlsaW5nIGxpc3Qgd2VyZSwgb2YgY291cnNlLAorICAgICAgICAgICAgICBxdWVzdGlvbnMgdG8gaGVscCBtZSB1bmRlcnN0YW5kIGhvdyB0byBkbyB0aGluZ3MgYW5kIHdoeSBTdHJ1dHMKKyAgICAgICAgICAgICAgaXMgdGhlIHdheSBpdCBpcy4gT3ZlciB0aW1lLCBJIGJlY2FtZSBtb3JlIGludm9sdmVkIGluIGJvdGggdGhlCisgICAgICAgICAgICAgIHVzZXIgYW5kIGRldmVsb3BlciBjb21tdW5pdGllcywgc3RhcnRlZCBzdWJtaXR0aW5nIGJ1ZyByZXBvcnRzLAorICAgICAgICAgICAgICBwYXRjaGVzIGFuZCBjaGFuZ2UgcmVxdWVzdHMsIGFuZCBldmVudHVhbGx5IGJlY2FtZSBhIGNvbW1pdHRlci4KKyAgICAgICAgICAgICAgTm90IGxvbmcgYWZ0ZXIgdGhhdCwgSSB2b2x1bnRlZXJlZCB0byB0YWtlIG9uIHRoZSByZWxlYXNlIHByb2Nlc3MsCisgICAgICAgICAgICAgIGFuZCBiZWNhbWUgdGhlIHJlbGVhc2UgbWFuYWdlciBmb3IgU3RydXRzIDEuMC4xIGFuZCBiZXlvbmQuIExpdHRsZQorICAgICAgICAgICAgICBkaWQgSSBrbm93IHdoYXQgSSB3YXMgbGV0dGluZyBteXNlbGYgaW4gZm9yIQorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgIEEgbGFyZ2UgbWFqb3JpdHkgb2YgdGhlIHBlb3BsZSB3aG8gY29udHJpYnV0ZSB0byBBcGFjaGUgcHJvamVjdHMKKyAgICAgICAgICAgICAgYXJlIHZvbHVudGVlcnMgd2hvIGFyZSBub3QgcGFpZCBmb3IgdGhlaXIgY29udHJpYnV0aW9ucy4gTGlrZSBtb3N0CisgICAgICAgICAgICAgIG9mIHRob3NlIHZvbHVudGVlcnMsIEkgYWxzbyBoYXZlIGEgImRheSBqb2IiIHRvIHB1dCBicmVhZCBvbiB0aGUKKyAgICAgICAgICAgICAgdGFibGUuIEN1cnJlbnRseSwgSSBhbSBhIFVJIEFyY2hpdGVjdCBhdCBJbmZvcm1hdGljYSwgd2hlcmUgSSB3b3JrCisgICAgICAgICAgICAgIG9uIHRoZSBhcmNoaXRlY3R1cmUsIGRlc2lnbiBhbmQgaW1wbGVtZW50YXRpb24gb2Ygd2ViIGFwcGxpY2F0aW9ucy4KKyAgICAgICAgICAgICAgV29ya2luZyB3aXRoLCBhbmQgb24sIFN0cnV0cyBoYXMgcHJvdmlkZWQgbWUgd2l0aCBhbiBleGNlbGxlbnQKKyAgICAgICAgICAgICAgcGVyc3BlY3RpdmUgd2l0aCB3aGljaCB0byBkbyB0aGF0IQorICAgICAgICAgICAgPC9wPgorCisgICAgICAgICAgICA8aDQgaWQ9ImR3aW50ZXJmZWxkdCI+RGF2aWQgV2ludGVyZmVsZHQgLS0gQ29tbWl0dGVyPC9oND4KKworICAgICAgICAgICAgPHA+QXMgSSB3b3JrZWQgd2ViIGJhc2VkIHByb2plY3RzIEkgc3RhcnRlZCBsb29raW5nIGZvciBzb21ldGhpbmcgdGhhdCB3b3VsZCByZWFsbHkgaGVscCBzYXZlIHRpbWUgZHVyaW5nIGRldmVsb3BtZW50LiBJIHJhbiBhY3Jvc3MgU3RydXRzIGluIHRoZSBTdW1tZXIgb2YgMjAwMCBhbmQgZGVjaWRlZCBpdCB3YXMgYSBnb29kIHNvbHV0aW9uIGZvciB3ZWIgZGV2ZWxvcG1lbnQuIEFzIEkgdXNlZCBTdHJ1dHMgaXQgcmVhbGx5IGhlbHBlZCB0byByZW1vdmUgYSBsb3Qgb2YgdGhlIHJlcGV0aXRpdmUgd29yaywgYnV0IHZhbGlkYXRpb24gc3RpbGwgc2VlbWVkIHZlcnkgcmVwZXRpdGl2ZS4gSSBoYWQgYW4gaWRlYSB0byBjcmVhdGUgdmFsaWRhdGlvbiBydWxlcyBpbiBhbiB4bWwgZmlsZSBhbmQgaGF2ZSB0aGVtIGVhc2lseSBpbnRlZ3JhdGVkIHdpdGggU3RydXRzLiBJdCBzdGFydGVkIG91dCBzaW1wbGUgYW5kIGNvbnRpbnVlZCB0byBkZXZlbG9wIG92ZXIgdGltZS4gVGhlIHZhbGlkYXRpb24gcHJvamVjdCB3YXMgZXZlbnR1YWxseSBpbmNvcnBvcmF0ZWQgaW50byBTdHJ1dHMgYW5kIHRoZSBjb3JlIHdhcyBtb3ZlZCB0byBKYWthcnRhIENvbW1vbnMuIEknbSBoYXBweSB0byBzZWUgU3RydXRzIGNvbnRpbnVlIHRvIGdyb3cgYW5kIGRldmVsb3AuPC9wPgorCisgICAgICAgICAgICA8cD5JIGN1cnJlbnRseSBhbSBlbXBsb3llZCBhdCBGb3JiZXMuY29tLiBJIG9jY2FzaW9uYWxseSBnZXQgdG8gZG8gc29tZSBpbnRlcm5hbCBwcm9qZWN0cyB1c2luZyBTdHJ1dHMuIFRoZSBsYXN0IGludGVyZXN0aW5nIHByb2plY3Qgd2FzIGEgcHVibGlzaGluZyBzeXN0ZW0gdXNpbmcgTWVzc2FnZSBEcml2ZW4gRUpCcyBpbiBKQm9zcyBhbmQgU3RydXRzIHdhcyB1c2VkIHRvIGRpc3BsYXkgdGhlIHN0YXR1cyBvZiBlYWNoIHB1Ymxpc2hpbmcgcHJvY2Vzcy48L3A+CisKKyAgICAgICAgICAgIDxoNCBpZD0icmxlbGFuZCI+Um9iIExlbGFuZCAtLSBDb21taXR0ZXI8L2g0PgorCisgICAgICAgICAgICA8cD5JIGhhdmUgZ29uZSBmcm9tIFVuaXggLXRvLSBXaW5kb3dzIC10by0gVW5peCBiYXNlZCBkZXZlbG9wbWVudCBhYm91dCBldmVyIDYgeWVhcnMgbm93LiBXaGVuIG1vdmluZyB0byBXaW5kb3dzIEkgd2FzIGFtYXplZCBhdCBob3cgcHJpbWl0aXZlIHRoZSBPUyB3YXMgY29tcGFyZWQgdG8gVW5peC4gV2hpbGUgZGV2ZWxvcGluZyBmb3IgV2luMzIgSSBoYWQgdGhlIHBsZWFzdXJlIG9mIGRpc2NvdmVyaW5nIERlbHBoaSBhbmQgZGV2ZWxvcGVkIG1hbnkgR1VJL2RhdGFiYXNlcywgdGVsZXBob255LCBJbnRlcm5ldCBlbmFibGVkIGFwcGxpY2F0aW9ucy4gSSByZW1haW4gaW1wcmVzc2VkIHdpdGggaXRzIGRlc2lnbi4gRGVscGhpLCBhbHdheXMgZW5hYmxlZCBkZXZlbG9wbWVudCBvZiBhIHNpbXBsZSBlbGVnYW50IHNvbHV0aW9uLCBtdWNoIGxpa2UgdGhlIGxhbmd1YWdlIGl0c2VsZi4gSSB3YXMgY29udmluY2VkIGFmdGVyIDEwIHllYXJzIG9mIGRldmVsb3BtZW50IHdpdGggQy9DKysgdGhhdCBpdCB3YXMgYSBraW5kZXIgZ2VudGxlciBsYW5ndWFnZS48L3A+CisKKyAgICAgICAgICAgIDxwPlRoZW4gaW4gSnVseSAyMDAwIEkgZGVjaWRlZCB0byBtb3ZlIGludG8gSmF2YSwgYW5kIFdlYiBkZXZlbG9wbWVudC4gVGhpcyBpcyBhZnRlciB1c2luZyB0aGUgSW50ZXJuZXQgc2luY2UgMTk4NSBhbmQgb2NjYXNpb25hbGx5IHRlYWNoaW5nIGNsYXNzZXMgYWJvdXQgaXQuIEkgd2FzIGhpcmVkIGFzIGEgY29uc3VsdGFudCB0byB0YWtlIG92ZXIgYSBKU1AgYmFzZWQgYXBwbGljYXRpb24uIEkgcmVhbGl6ZWQgaXQgaGFkIGJlZW4gd3JpdHRlbiB3aXRoIHRoZSBlcXVpdmFsZW50IG9mICJnb3RvJ3MiKE1vZGVsIDEpIGFuZCBoYWQgdG8gYmUgcmVkZXNpZ25lZC4gSSBzZWFyY2hlZCBmb3IgYSBiZXR0ZXIgd2F5IHRvIGRlc2lnbiB0aGUgY29kZSBhbmQgYnkgbGF0ZSBBdWd1c3QgSSBoYWQgZm91bmQgU3RydXRzLiBJdCBpcyBhbHNvIGEgc2ltcGxlIGVsZWdhbnQgc29sdXRpb24uPC9wPgorCisgICAgICAgICAgICA8cD5UbyBkYXRlIEkgaGF2ZSBtYWlubHkgc2VydmVkIHRvIHBpdGNoIGluIHdoZXJlIG5lZWRlZC4gSSBjb250aW51ZSB0byBhbWF6ZWQgYXQgdGhlIFN0cnV0cyBjb21taXR0ZXJzJyBnZW5lcm91cyBjb250cmlidXRpb25zIG9mIHRpbWUsIGluc2lnaHQsIGFuZCBnb29kIHdpbGwuIEkgZmVlbCBmb3J0dW5hdGUgdG8gcGFydCBvZiB0aGUgc3RydXRzIHRlYW0uPC9wPgorCisgICAgICAgICAgICA8aDQgaWQ9ImRncmFoYW0iPkRhdmlkIEdyYWhhbSAtLSBDb21taXR0ZXI8L2g0PgorCisgICAgICAgICAgICA8cD5JLCBsaWtlIG1hbnkgb3RoZXJzLCBkaXNjb3ZlcmVkIFN0cnV0cyB3aGVuIGNvbnRlbXBsYXRpbmcgd3JpdGluZyBteSBvd24gTVZDIEphdmEgZnJhbWV3b3JrIGZvciB0aGUgd2ViLiBTdHJ1dHMgaGFkIGV2ZXJ5dGhpbmcgSSBuZWVkZWQgYW5kIG1vcmUgc28gSSBzY3JhcHBlZCBwbGFucyBmb3IgbXkgb3duIGFuZCBqb2luZWQgdGhlIG1haWxpbmcgbGlzdHMuIEFmdGVyIHBsYXlpbmcgd2l0aCBpdCBmb3Igc2V2ZXJhbCBtb250aHMgSSBzdGFydGVkIHN1Ym1pdHRpbmcgZG9jdW1lbnRhdGlvbiBhbmQgYSBmZXcgc291cmNlIHBhdGNoZXMuIEknbSBleGNpdGVkIGFib3V0IGhlbHBpbmcgU3RydXRzIGV2b2x2ZSBhbmQgYW0gY29udGludWFsbHkgYW1hemVkIGJ5IHRoZSBmcmFtZXdvcmsgYW5kIHRoZSBjb21tdW5pdHkgc3Vycm91bmRpbmcgaXQuPC9wPgorCisgICAgICAgICAgICA8aDQgaWQ9ImptaXRjaGVsbCI+SmFtZXMgTWl0Y2hlbGwgLS0gQ29tbWl0dGVyPC9oND4KKworICAgICAgICAgICAgPHA+SmFtZXMgaGFzIGJlZW4gc28gYnVzeSBhbnN3ZXJpbmcgdXNlcnMgcXVlc3Rpb25zIGFuZCBhZGRpbmcgdGVzdCBjYXNlcyB0aGF0IGhlIGhhc24ndCB0YWtlbiB0aGUgdGltZSB0byBicmFnIGFib3V0IGhpbXNlbGYuIEkgdGhvdWdodCB0aGF0IEkgd291bGQgYWRkIGEgcGxhY2UgbWFya2VyIGZvciBoaW0gdW50aWwgYW5kIGlmIGhlIGRvZXMgZGVjaWRlIHRvIC0tYmxvdyBoaXMgb3duIGhvcm4tLSAhIC1Sb2IgOi1EICE8L3A+CisKKyAgICAgICAgICAgIDxoNCBpZD0ianR1cm5lciI+SmFtZXMgVHVybmVyIC0tIENvbW1pdHRlcjwvaDQ+CisKKyAgICAgICAgICAgIDxwPkkgZGlzY292ZXJlZCBTdHJ1dHMgc29tZXdoYXQgYnkgYWNjaWRlbnQuIEluIDIwMDEgSSBiZWdhbiB3cml0aW5nIGEgYm9vayBmb3IgU0FNUyBvbiBKU1Agd2ViIGRldmVsb3BtZW50IChNeVNRTCBhbmQgSlNQIFdlYiBEZXZlbG9wbWVudCksIGFuZCBhcyBwYXJ0IG9mIGl0LCBJIGRlY2lkZWQgdG8gd3JpdGUgYSBjaGFwdGVyIG9uIFN0cnV0cyBpbiB0aGUgYWR2YW5jZWQgc2VjdGlvbi4gSW4gdGhlIHByb2Nlc3Mgb2YgbGVhcm5pbmcgZW5vdWdoIGFib3V0IFN0cnV0cyB0byB3cml0ZSBhYm91dCBpdCwgSSByZWFsaXplZCB0aGF0IGl0IGNvdWxkIHNpbXBsaWZ5IHNvbWUgb2YgdGhlIHByb2plY3RzIHRoYXQgSSB3YXMgd29ya2luZyBvbiBmb3IgY2xpZW50cy48L3A+CisKKyAgICAgICAgICAgIDxwPkFmdGVyIGEgaGFsZiBhIHllYXIgb2Ygd29ya2luZyB3aXRoIFN0cnV0cywgSSB3YXMgYXNrZWQgYnkgU0FNUyB0byB3cml0ZSBhbm90aGVyIGJvb2ssIHRoaXMgdGltZSBjb25jZW50cmF0aW5nIG9uIFN0cnV0cyBzcGVjaWZpY2FsbHkuIFRoYXQgYm9vaywgY28tYXV0aG9yZWQgd2l0aCBhIGZvcm1lciBjby13b3JrZXIgbmFtZWQgS2V2aW4gQmVkZWxsLCBiZWNhbWUgU3RydXRzIEtpY2sgU3RhcnQuPC9wPgorCisgICAgICAgICAgICA8cD5JbiB0aGUgcHJvY2VzcyBvZiB3cml0aW5nIHRoYXQgYm9vaywgSSBiZWdhbiB0byByZWFsaXplIHRoYXQgdGhlcmUgd2VyZSB0aGluZ3MgSSBjb3VsZCBkbyB0byBjb250cmlidXRlIHRvIFN0cnV0cyBiZXlvbmQgd3JpdGluZyBhYm91dCBpdC4gT25lIHRoaW5nIGluIHBhcnRpY3VsYXIgd2FzIHRvIGNsZWFuIHVwIGFuZCBhZGQgc29tZSBmdW5jdGlvbmFsaXR5IHRvIHRoZSBDb21tb25zIFZhbGlkYXRvciBwcm9qZWN0LCB3aGljaCBldmVudHVhbGx5IGxlZCB0byBtZSByZWxlYXNlLW1hbmFnaW5nICh3aXRoIGEgbG90IG9mIGhlbHAhKSB0aGUgQ29tbW9ucyBWYWxpZGF0b3IgMS4wIHJlbGVhc2UuPC9wPgorCisgICAgICAgICAgICA8cD5Nb3JlIGdlbmVyYWxseSwgSSd2ZSBiZWVuIGEgc29mdHdhcmUgZGV2ZWxvcGVyIGZvciBvdmVyIDIyIHllYXJzLCBzdGFydGluZyB3aXRoIHdvcmsgYXMgYSBSZXNlYXJjaCBTcGVjaWFsaXN0IGF0IHRoZSBNSVQgQUkgTGFiLiBJIHNwZW50IG5lYXJseSBhIGRlY2FkZSB3b3JraW5nIGluIExJU1AsIGJlZm9yZSBtb3Zpbmcgb24gdG8gQy9Vbml4LCBhIHN0aW50IG1hbmFnaW5nIHRoZSBXZWIgU2l0ZSBmb3IgdGhlIENocmlzdGlhbiBTY2llbmNlIE1vbml0b3IsIGFuZCBmaW5hbGx5IEphdmEgYmFzZWQgZS1Db21tZXJjZSBkZXZlbG9wbWVudCwgd2hpY2ggaGFzIGtlcHQgbWUgYnVzeSBmb3IgdGhlIGxhc3QgZml2ZSB5ZWFycy48L3A+CisKKyAgICAgICAgICAgIDxwPkluIGFkZGl0aW9uIHRvIHRoZSB0d28gYm9va3MgbWVudGlvbmVkIGFib3ZlLCBJIGFsc28gd3JpdGUgZm9yIGEgbnVtYmVyIG9mIHB1YmxpY2F0aW9ucywgaW5jbHVkaW5nIFdJUkVEIGFuZCB0aGUgYWZvcmVtZW50aW9uZWQgQ2hyaXN0aWFuIFNjaWVuY2UgTW9uaXRvci4gWW91IGNhbiBnZXQgYSBsb29rIGF0IG15IHBvcnRmb2xpbyAKKyAgICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYmxhY2tiZWFyLmNvbS9tb25pdG9yLmh0bWwiPmhlcmU8L2E+CisgICAgICAgICAgICA8L3A+CisgICAgICAgICA8L3NlY3Rpb24+CisKKyAgICAgICAgIDxzZWN0aW9uPgorICAgICAgICAgICAgPHAgY2xhc3M9InJpZ2h0Ij5OZXh0OiAKKyAgICAgICAgICAgIDxhIGhyZWY9ImFubm91bmNlLmh0bWwiPkFubm91bmNlbWVudHM8L2E+CisgICAgICAgICAgICA8L3A+CisgICAgICAgICA8L3NlY3Rpb24+CisgICA8L2JvZHk+Cis8L2RvY3VtZW50PgorCmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvZWwvTElDRU5TRS5DaGVja1N0eWxlIGIvYnVpbGQtbGVnYWN5L2VsL0xJQ0VOU0UuQ2hlY2tTdHlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjU3ZjFiCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2VsL0xJQ0VOU0UuQ2hlY2tTdHlsZQpAQCAtMCwwICsxLDE5IEBACisvXCpccyoKKyBcKlxzKlwkSGVhZGVyLipcJAorIFwqXHMqXCRSZXZpc2lvbi4qXCQKKyBcKlxzKlwkRGF0ZS4qXCQKKyBcKlxzKgorIFwqXHMqQ29weXJpZ2h0IFxkezR9KC1cZHs0fXwsXGR7NH0pKiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb25cLgorIFwqXHMqCisgXCpccypMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMlwuMCBcKHRoZSAiTGljZW5zZSJcKTsKKyBcKlxzKnlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZVwuCisgXCpccypZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyBcKlxzKgorIFwqXHMqaHR0cDovL3d3d1wuYXBhY2hlXC5vcmcvbGljZW5zZXMvTElDRU5TRVwtMlwuMAorIFwqXHMqCisgXCpccypVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgXCpccypkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIFwqXHMqV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWRcLgorIFwqXHMqU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIFwqXHMqbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2VcLgorIFwqL1xzKgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2VsL0xJQ0VOU0UudHh0IGIvYnVpbGQtbGVnYWN5L2VsL0xJQ0VOU0UudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkNWIzYTUKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvZWwvTElDRU5TRS50eHQKQEAgLTAsMCArMSwxNzQgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0CisgICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCisKKyAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgorCisgICAxLiBEZWZpbml0aW9ucy4KKworICAgICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKKyAgICAgIGFuZCBkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgorCisgICAgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQorICAgICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgorCisgICAgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCisgICAgICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCisgICAgICBjb250cm9sIHdpdGggdGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAorICAgICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCisgICAgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvcgorICAgICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCisgICAgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgorCisgICAgICAiWW91IiAob3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisgICAgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgorCisgICAgICAiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKKyAgICAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KKyAgICAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisKKyAgICAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCisgICAgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0CisgICAgICBub3QgbGltaXRlZCB0byBjb21waWxlZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCisgICAgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCisKKyAgICAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3b3JrIG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCisgICAgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCisgICAgICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsKKyAgICAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdykuCisKKyAgICAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBvciBPYmplY3QKKyAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKKyAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKKyAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLiBGb3IgdGhlIHB1cnBvc2VzCisgICAgICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KKyAgICAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKKyAgICAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCisKKyAgICAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCisgICAgICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMgb3IgYWRkaXRpb25zCisgICAgICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0aGF0IGlzIGludGVudGlvbmFsbHkKKyAgICAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKKyAgICAgIG9yIGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFsZiBvZgorICAgICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJzdWJtaXR0ZWQiCisgICAgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CisgICAgICB0byB0aGUgTGljZW5zb3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bworICAgICAgY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtcywKKyAgICAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCisgICAgICBMaWNlbnNvciBmb3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKKyAgICAgIGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3aXNlCisgICAgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKKworICAgICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFuIExpY2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKyAgICAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAorICAgICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCisKKyAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKyAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAorICAgICAgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCisgICAgICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLgorCisgICAzLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKyAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisgICAgICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhhdmUgbWFkZSwKKyAgICAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3JrLAorICAgICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKKyAgICAgIGJ5IHN1Y2ggQ29udHJpYnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCisgICAgICBDb250cmlidXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpCisgICAgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQorICAgICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKKyAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKKyAgICAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CisgICAgICBvciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vuc2VzCisgICAgICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFsbCB0ZXJtaW5hdGUKKyAgICAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKworICAgNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUKKyAgICAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAorICAgICAgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKKyAgICAgIG1lZXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCisgICAgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgorICAgICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5IG9mIHRoaXMgTGljZW5zZTsgYW5kCisKKyAgICAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKKyAgICAgICAgICBzdGF0aW5nIHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKKworICAgICAgKGMpIFlvdSBtdXN0IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCisgICAgICAgICAgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAorICAgICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCisgICAgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZgorICAgICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKKworICAgICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQgb2YgaXRzCisgICAgICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUgbXVzdAorICAgICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAorICAgICAgICAgIHdpdGhpbiBzdWNoIE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAorICAgICAgICAgIHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0IG9uZQorICAgICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCisgICAgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgorICAgICAgICAgIGRvY3VtZW50YXRpb24sIGlmIHByb3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAorICAgICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKKyAgICAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBwZWFyLiBUaGUgY29udGVudHMKKyAgICAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCisgICAgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KKyAgICAgICAgICBub3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQorICAgICAgICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3JrLCBwcm92aWRlZAorICAgICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAorICAgICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5zZS4KKworICAgICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCisgICAgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCisgICAgICBmb3IgdXNlLCByZXByb2R1Y3Rpb24sIG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCisgICAgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKKyAgICAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aAorICAgICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4KKworICAgNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAorICAgICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCisgICAgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCisgICAgICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5CisgICAgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAorICAgICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25zLgorCisgICA2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCisgICAgICBuYW1lcywgdHJhZGVtYXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCisgICAgICBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVzY3JpYmluZyB0aGUKKyAgICAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgorCisgICA3LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKKyAgICAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKKyAgICAgIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisgICAgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucworICAgICAgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQorICAgICAgUEFSVElDVUxBUiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCisgICAgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKKyAgICAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KKworICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCisgICAgICB3aGV0aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwKKyAgICAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVyYXRlIGFuZCBncm9zc2x5CisgICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQorICAgICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAorICAgICAgaW5jaWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBhCisgICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCisgICAgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCisgICAgICB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAorICAgICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgorICAgICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgorCisgICA5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCisgICAgICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLAorICAgICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKKyAgICAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCisgICAgICBMaWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBhY3Qgb25seQorICAgICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxpdHksIG5vdCBvbiBiZWhhbGYKKyAgICAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKKyAgICAgIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQorICAgICAgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgorICAgICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvZWwvY29uZi9xYS9DaGVja1N0eWxlLnhtbCBiL2J1aWxkLWxlZ2FjeS9lbC9jb25mL3FhL0NoZWNrU3R5bGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzNGZjY2MKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvZWwvY29uZi9xYS9DaGVja1N0eWxlLnhtbApAQCAtMCwwICsxLDEzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgbW9kdWxlIFBVQkxJQworICAgICItLy9QdXBweSBDcmF3bC8vRFREIENoZWNrIENvbmZpZ3VyYXRpb24gMS4xLy9FTiIKKyAgICAiaHR0cDovL3d3dy5wdXBweWNyYXdsLmNvbS9kdGRzL2NvbmZpZ3VyYXRpb25fMV8xLmR0ZCI+CisKKworPCEtLQorICAKKyAgVGhlc2UgY2hlY2tzIHN0aWxsIG5lZWQgdG8gYmUgVm90ZWQgb24gZm9yIFZhbGlkYXRvciwgYnV0CisgIGF0IGxlYXN0IHNlcnZlIHRvIGN1dCBkb3duIG9uIHNvbWUgb2YgdGhlIG5vaXNlLiAKKworCisgIEEgQ2hlY2tzdHlsZSBjb25maWd1cmF0aW9uIHRoYXQgY2hlY2tzIGFnYWluc3QgdGhlIHJlY29tbWVuZGF0aW9ucworICBpbiBKb3NodWEgQmxvY2gsIEVmZmVjdGl2ZSBKYXZhIChoaWdobGl5IHJlY29tbWVuZGVkIHJlYWQhKQorCisgIFRoaXMgZmlsZSBkb2VzIE5PVCBkdXBsaWNhdGUgdGhlIGNoZWNrcyBmb3Igd2hpdGVzcGFjZSBzZXR0aW5ncywKKyAgcGxhY2VtZW50IG9mIGN1cmx5IGJyYWNlcywgZXRjLiAgT25seSB0aGUgcnVsZXMgdGhhdCBhcmUgZXhwbGljaXRseQorICBtZW50aW9uZWQgaW4gdGhlIGJvb2sgYXJlIGVuZm9yY2VkLgorCisgIEN1cnJlbnRseSB0aGUgYW1vdW50IG9mIHJ1bGVzIHRoYXQgY2FuIGJlIGF1dG9tYXRpY2FsbHkgY2hlY2tlZCBieQorICBDaGVja3N0eWxlIGlzIG5vdCB2ZXJ5IGxhcmdlLCBidXQgYWRkaW5nIG1vcmUgY2hlY2tzIG9mIHRoaXMgcXVhbGl0eQorICBpcyBhIGhpZ2ggcHJpb3JpdHkgZ29hbCBmb3IgdGhlIGRldmVsb3BtZW50IHRlYW0uCisKKy0tPgorCis8bW9kdWxlIG5hbWU9IkNoZWNrZXIiPgorCisgICA8bW9kdWxlIG5hbWU9IlRyZWVXYWxrZXIiPgorCisgICAgPCEtLSBJdGVtIDQgLSBBdm9pZCBjcmVhdGluZyBkdXBsaWNhdGUgb2JqZWN0cyAtLT4KKyAgICA8bW9kdWxlIG5hbWU9IklsbGVnYWxJbnN0YW50aWF0aW9uIj4KKyAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjbGFzc2VzIiB2YWx1ZT0iamF2YS5sYW5nLkJvb2xlYW4sIGphdmEubGFuZy5TdHJpbmciLz4KKyAgICA8L21vZHVsZT4KKworICAgIDwhLS0gSXRlbSA2IC0gQXZvaWQgZmluYWxpemVycyAtLT4KKyAgICA8IS0tIHRoaXMgd2lsbCBub3QgZmluZCB2aW9sYXRpb25zIHRoYXQgY29udGFpbiBsaW5lYnJlYWtzIC0tPgorICAgIDxtb2R1bGUgbmFtZT0iR2VuZXJpY0lsbGVnYWxSZWdleHAiPgorICAgICAgPHByb3BlcnR5IG5hbWU9ImZvcm1hdCIKKyAgICAgICAgICAgICAgICB2YWx1ZT0iKChwdWJsaWMpfChwcm90ZWN0ZWQpKVxzK3ZvaWRccytmaW5hbGl6ZVwoXHMqXCkiLz4KKyAgICA8L21vZHVsZT4KKworICAgIDwhLS0gSXRlbSA4IC0gQWx3YXlzIG92ZXJyaWRlIGhhc2hDb2RlIHdoZW4geW91IG92ZXJyaWRlIGVxdWFscyAtLT4KKyAgICA8bW9kdWxlIG5hbWU9IkVxdWFsc0hhc2hDb2RlIi8+CisKKyAgICA8IS0tIEl0ZW0gMTIgLSBNYWtlIGFsbCBmaWVsZHMgcHJpdmF0ZSAtLT4KKyAgICA8bW9kdWxlIG5hbWU9IlZpc2liaWxpdHlNb2RpZmllciIvPgorCisgICAgPCEtLSBJdGVtIDE1IC0gRGVzaWduIGFuZCBkb2N1bWVudCBmb3IgaW5oZXJpdGFuY2Ugb3IgZWxzZSBwcm9oaWJpdCBpdCAtLT4KKyAgICA8IS0tIHRoZSBtb2R1bGUgYWN0dWFsbHkgaW1wbGVtZW50cyBhIHZlcnkgc3RyaWN0IHJ1bGUsIGl0IHdvdWxkIGJlCisgICAgICAgICBpbnRlcmVzdGluZyB0byBrbm93IHdoZXRoZXIgSm9zaHVhIG1lYW50IHdoYXQgY2hlY2tzdHlsZSBpbXBsZW1lbnRzLgorICAgICAgICAgV2UgZmVlbCB0aGlzIGltcGxlbWVudGF0aW9uIGlzIHdlbGwgc3VpdGVkIGFzIGEgd2FybmluZywKKyAgICAgICAgIGkuZS4gaWYgeW91IGdldCBlcnJvciBtZXNzYWdlcyBmcm9tIHRoaXMgY2hlY2sgeW91IHNob3VsZCBiZQorICAgICAgICAgYWJsZSB0byBuYW1lIGEgZ29vZCByZWFzb24gdG8gaW1wbGVtZW50IHlvdXIgY29kZSB0aGUgd2F5IHlvdSBkbyBpdCwKKyAgICAgICAgIGVzcGVjaWFsbHkgaWYgeW91IGFyZSBkZXNpZ25pbmcgYSBsaWJyYXJ5IGFuZCBub3QgYW4gYXBwbGljYXRpb24uIC0tPgorICAgIDxtb2R1bGUgbmFtZT0iRGVzaWduRm9yRXh0ZW5zaW9uIj4KKyAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzZXZlcml0eSIgdmFsdWU9Indhcm5pbmciLz4KKyAgICA8L21vZHVsZT4KKworICAgIDwhLS0gSXRlbSAxNyAtIFVzZSBpbnRlcmZhY2VzIG9ubHkgdG8gZGVmaW5lIHR5cGVzIC0tPgorICAgIDxtb2R1bGUgbmFtZT0iSW50ZXJmYWNlSXNUeXBlIi8+CisKKyAgICA8IS0tIEl0ZW0gMjUgLSBEZXNpZ24gbWV0aG9kIHNpZ25hdHVyZXMgY2FyZWZ1bGx5IC0tPgorICAgIDwhLS0gQXZvaWQgbG9uZyBwYXJhbWV0ZXIgbGlzdHMgLS0+CisgICAgPG1vZHVsZSBuYW1lPSJQYXJhbWV0ZXJOdW1iZXIiPgorICAgICAgPHByb3BlcnR5IG5hbWU9Im1heCIgdmFsdWU9IjMiLz4KKyAgICA8L21vZHVsZT4KKworICAgIDwhLS0gSXRlbSAyNiAtIFVzZSBvdmVybG9hZGluZyBqdWRpY2lvdXNseSAtLT4KKyAgICA8IS0tIHJmZSAjNjU5NzM1IC0tPgorCisgICAgPCEtLSBJdGVtIDI3IC0gUmV0dXJuIHplcm8tbGVuZ3RoIGFycmF5LCBub3QgbnVsbHMgLS0+CisgICAgPCEtLSBubyByZmUgeWV0IC0tPgorCisgICAgPCEtLSBJdGVtIDI4IC0gV3JpdGUgZG9jIGNvbW1lbnRzIGZvciBhbGwgZXhwb3NlZCBBUEkgZWxlbWVudHMgLS0+CisgICAgPG1vZHVsZSBuYW1lPSJKYXZhZG9jVHlwZSI+CisgICAgICA8cHJvcGVydHkgbmFtZT0ic2NvcGUiIHZhbHVlPSJwcm90ZWN0ZWQiLz4KKyAgICA8L21vZHVsZT4KKyAgICA8bW9kdWxlIG5hbWU9IkphdmFkb2NNZXRob2QiPiA8IS0tIGFsc28gY292ZXJzIEl0ZW0gNDQgLS0+CisgICAgICA8cHJvcGVydHkgbmFtZT0ic2NvcGUiIHZhbHVlPSJwcm90ZWN0ZWQiLz4KKyAgICA8L21vZHVsZT4KKyAgICA8bW9kdWxlIG5hbWU9IkphdmFkb2NWYXJpYWJsZSI+CisgICAgICA8cHJvcGVydHkgbmFtZT0ic2NvcGUiIHZhbHVlPSJwcm90ZWN0ZWQiLz4KKyAgICA8L21vZHVsZT4KKworICAgIDwhLS0gSXRlbSAyOSAtIE1pbmltaXplIHRoZSBzY29wZSBvZiBsb2NhbCB2YXJpYWJsZXMgLS0+CisgICAgPCEtLSBubyByZmUgeWV0IC0tPgorCisKKyAgICA8IS0tIEl0ZW0gMzggLSBBZGhlcmUgdG8gZ2VuZXJhbGx5IGFjY2VwdGVkIG5hbWluZyBjb252ZW50aW9ucyAtLT4KKyAgICA8bW9kdWxlIG5hbWU9IlBhY2thZ2VOYW1lIj4KKyAgICAgIDwhLS0gbm8gdXBwZXJjYXNlIGxldHRlcnMsIGJldHdlZW4gMiBhbmQgMTAgY2hhcmFjdGVycyAtLT4KKyAgICAgIDxwcm9wZXJ0eSBuYW1lPSJmb3JtYXQiIHZhbHVlPSJeW2Etel0rKFwuW2Etel1bYS16MC05XXsxLDl9KSokIi8+CisgICAgPC9tb2R1bGU+CisgICAgPG1vZHVsZSBuYW1lPSJUeXBlTmFtZSIvPgorICAgIDxtb2R1bGUgbmFtZT0iQ29uc3RhbnROYW1lIi8+CisgICAgPG1vZHVsZSBuYW1lPSJMb2NhbEZpbmFsVmFyaWFibGVOYW1lIi8+CisgICAgPG1vZHVsZSBuYW1lPSJMb2NhbFZhcmlhYmxlTmFtZSIvPgorICAgIDxtb2R1bGUgbmFtZT0iTWVtYmVyTmFtZSIvPgorICAgIDxtb2R1bGUgbmFtZT0iTWV0aG9kTmFtZSIvPgorICAgIDxtb2R1bGUgbmFtZT0iUGFyYW1ldGVyTmFtZSIvPgorICAgIDxtb2R1bGUgbmFtZT0iU3RhdGljVmFyaWFibGVOYW1lIi8+CisKKyAgICA8IS0tIEl0ZW0gNDcgLSBEb24ndCBpZ25vcmUgZXhjZXB0aW9ucyAtLT4KKyAgICA8bW9kdWxlIG5hbWU9IkVtcHR5QmxvY2siPgorICAgICAgPHByb3BlcnR5IG5hbWU9InRva2VucyIgdmFsdWU9IkxJVEVSQUxfQ0FUQ0giLz4KKyAgICAgIDwhLS0gcmVxdWlyZSBhIGNvbW1lbnQsIGNoYW5nZSB0byBzdG10IHRvIHJlcXVpcmUgYSBzdGF0ZW1lbnQgLS0+CisgICAgICA8cHJvcGVydHkgbmFtZT0ib3B0aW9uIiB2YWx1ZT0idGV4dCIvPgorICAgIDwvbW9kdWxlPgorCisgICAgPCEtLSBJdGVtIDUwIC0gTmV2ZXIgaW52b2tlIHdhaXQgb3V0c2lkZSBhIGxvb3AgLS0+CisgICAgPCEtLSByZmUgIzcxMjc5OCAtLT4KKworICAgIDwhLS0gSXRlbSA1NyAtIFByb3ZpZGUgYSByZWFkUmVzb2x2ZSBtZXRob2Qgd2hlbiBuZWNlc3NhcnkgLS0+CisgICAgPCEtLSBubyByZmUgeWV0IC0tPgorICAgIAorICAgIDwhLS0gZG9uJ3QgYWxsb3cgdGFicyAtLT4KKyAgICA8bW9kdWxlIG5hbWU9IlRhYkNoYXJhY3RlciIvPgorCisgICAgPCEtLSBlbmZvcmNlIExpY2Vuc2UgSGVhZGVyIHVzaW5nIGEgUmVnRXhwIGZpbGUgdG8gYWxsb3cgc29tZSB2YXJpYXRpb25zCisgICAgICAgICBsaWtlIHRoZSB5ZWFycyBpbiBjb3B5cmlnaHRzIG9yIHZhbHVlcyBvZiBTVk4gdmFyaWFibGVzLiAtLT4KKyAgICA8bW9kdWxlIG5hbWU9IlJlZ2V4cEhlYWRlciI+CisgICAgICAgPHByb3BlcnR5IG5hbWU9ImhlYWRlckZpbGUiIHZhbHVlPSJMSUNFTlNFLkNoZWNrU3R5bGUiLz4KKyAgICA8L21vZHVsZT4KKworICA8L21vZHVsZT4KKworICA8IS0tIGVuZm9yY2UgcGFja2FnZSBkb2N1bWVudGF0aW9uIC0tPgorICA8bW9kdWxlIG5hbWU9IlBhY2thZ2VIdG1sIi8+CisgIAorPC9tb2R1bGU+CmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9iZFllYXJCZy4xLmdpZiBiL2J1aWxkLWxlZ2FjeS9lbC9jb25mL3NoYXJlLy5jdnNpZ25vcmUKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9iZFllYXJCZy4xLmdpZgpjb3B5IHRvIGJ1aWxkLWxlZ2FjeS9lbC9jb25mL3NoYXJlLy5jdnNpZ25vcmUKZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9lbC9jb25mL3Rlc3QvY2FjdHVzLnByb3BlcnRpZXMgYi9idWlsZC1sZWdhY3kvZWwvY29uZi90ZXN0L2NhY3R1cy5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkOTNkMjUKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvZWwvY29uZi90ZXN0L2NhY3R1cy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsNyBAQAorIyBDb25maWd1cmF0aW9uIGZpbGUgZm9yIENhY3R1cyBUZXN0aW5nIGZvciBTdHJ1dHMgMS4xCisKK2NhY3R1cy5jb250ZXh0VVJMID0gaHR0cDovL2xvY2FsaG9zdDo5MDkwL3Rlc3QKK2NhY3R1cy5lbmFibGVMb2dnaW5nID0gdHJ1ZQorY2FjdHVzLmZpbHRlclJlZGlyZWN0b3JOYW1lID0gRmlsdGVyUmVkaXJlY3RvcgorY2FjdHVzLmpzcFJlZGlyZWN0b3JOYW1lID0gSnNwUmVkaXJlY3RvcgorY2FjdHVzLnNlcnZsZXRSZWRpcmVjdG9yTmFtZSA9IFNlcnZsZXRSZWRpcmVjdG9yCmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvZWwvY29uZi90ZXN0L2xvZ19zZXJ2ZXIucHJvcGVydGllcyBiL2J1aWxkLWxlZ2FjeS9lbC9jb25mL3Rlc3QvbG9nX3NlcnZlci5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0YzVhMmIKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvZWwvY29uZi90ZXN0L2xvZ19zZXJ2ZXIucHJvcGVydGllcwpAQCAtMCwwICsxLDEwIEBACisjIENvbmZpZ3VyYXRpb24gZmlsZSBmb3IgQ2FjdHVzIExvZ2dpbmcgZm9yIFN0cnV0cyAxLjEgKFNlcnZlciBTaWRlKQorCitsb2c0ai5hcHBlbmRlci5jYWN0dXMgPSBvcmcuYXBhY2hlLmxvZzRqLkZpbGVBcHBlbmRlcgorbG9nNGouYXBwZW5kZXIuY2FjdHVzLkZpbGUgPSBjYWN0dXNfc2VydmVyLmxvZworbG9nNGouYXBwZW5kZXIuY2FjdHVzLkFwcGVuZCA9IGZhbHNlCitsb2c0ai5hcHBlbmRlci5jYWN0dXMubGF5b3V0ID0gb3JnLmFwYWNoZS5sb2c0ai5QYXR0ZXJuTGF5b3V0Citsb2c0ai5hcHBlbmRlci5jYWN0dXMubGF5b3V0LkNvbnZlcnNpb25QYXR0ZXJuID0gJWQoQUJTT0xVVEUpIFsldF0gJS01cCAlLTMwLjMwYygyKSAleCAtICVtICVuCitsb2c0ai5yb290Q2F0ZWdvcnk9REVCVUcsIGNhY3R1cworbG9nNGouY2F0ZWdvcnkub3JnLmFwYWNoZS5jYWN0dXMgPSBXQVJOLCBjYWN0dXMKK2xvZzRqLmFkZGl0aXZpdHkub3JnLmFwYWNoZS5jYWN0dXM9ZmFsc2UKZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9lbC9jb25mL3Rlc3Qvc3RydXRzLWNvbmZpZy54bWwgYi9idWlsZC1sZWdhY3kvZWwvY29uZi90ZXN0L3N0cnV0cy1jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5OGY4YTgKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvZWwvY29uZi90ZXN0L3N0cnV0cy1jb25maWcueG1sCkBAIC0wLDAgKzEsOTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+CisKKzwhRE9DVFlQRSBzdHJ1dHMtY29uZmlnIFBVQkxJQworICAgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDEuMC8vRU4iCisgICAgICAgICAgImh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2R0ZHMvc3RydXRzLWNvbmZpZ18xXzAuZHRkIj4KKworPCEtLQorICAgICBUaGlzIGlzIGEgdGVzdCBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlCistLT4KKworCis8c3RydXRzLWNvbmZpZz4KKworCisgIDwhLS0gPT09PT09PT09PSBEYXRhIFNvdXJjZSBDb25maWd1cmF0aW9uID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+Cis8IS0tCisgIDxkYXRhLXNvdXJjZXM+CisgICAgPGRhdGEtc291cmNlCisgICAgICAgYXV0b0NvbW1pdD0iZmFsc2UiCisgICAgICBkZXNjcmlwdGlvbj0iRXhhbXBsZSBEYXRhIFNvdXJjZSBDb25maWd1cmF0aW9uIgorICAgICAgZHJpdmVyQ2xhc3M9Im9yZy5wb3N0Z3Jlc3FsLkRyaXZlciIKKyAgICAgICAgIG1heENvdW50PSI0IgorICAgICAgICAgbWluQ291bnQ9IjIiCisgICAgICAgICBwYXNzd29yZD0ibXlwYXNzd29yZCIKKyAgICAgICAgICAgICAgdXJsPSJqZGJjOnBvc3RncmVzcWw6Ly9sb2NhbGhvc3QvbXlkYXRhYmFzZSIKKyAgICAgICAgICAgICB1c2VyPSJteXVzZXJuYW1lIgorICAgIC8+CisgIDwvZGF0YS1zb3VyY2VzPgorLS0+CisKKyAgPCEtLSA9PT09PT09PT09IEZvcm0gQmVhbiBEZWZpbml0aW9ucyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKyAgPGZvcm0tYmVhbnM+CisKKyAgICA8IS0tIEV4YW1wbGUgbG9nb24gZm9ybSBiZWFuIAorICAgIDxmb3JtLWJlYW4gICAgICBuYW1lPSJsb2dvbkZvcm0iCisgICAgICAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmV4YW1wbGUuTG9nb25Gb3JtIi8+CisgICAgIC0tPgorCisgIDwvZm9ybS1iZWFucz4KKworCisgIDwhLS0gPT09PT09PT09PSBHbG9iYWwgRm9yd2FyZCBEZWZpbml0aW9ucyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgIDxnbG9iYWwtZm9yd2FyZHM+CisKKyAgICA8IS0tIEV4YW1wbGUgbG9nb24gZm9yd2FyZCAKKyAgICAgPGZvcndhcmQgICBuYW1lPSJsb2dvbiIgICAgICAgICAgICAgICAgcGF0aD0iL2xvZ29uLmpzcCIvPgorICAgICAtLT4KKworICA8L2dsb2JhbC1mb3J3YXJkcz4KKworCisgIDwhLS0gPT09PT09PT09PSBBY3Rpb24gTWFwcGluZyBEZWZpbml0aW9ucyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgIDxhY3Rpb24tbWFwcGluZ3M+CisKKyAgICA8IS0tIEV4YW1wbGUgbG9nb24gYWN0aW9uIAorICAgIDxhY3Rpb24gICAgcGF0aD0iL2xvZ29uIgorICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuZXhhbXBsZS5Mb2dvbkFjdGlvbiIKKyAgICAgICAgICAgICAgIG5hbWU9ImxvZ29uRm9ybSIKKyAgICAgICAgICAgICAgc2NvcGU9InJlcXVlc3QiCisgICAgICAgICAgICAgIGlucHV0PSIvbG9nb24uanNwIj4KKyAgICA8L2FjdGlvbj4KKyAgICAtLT4KKworICAgIDwhLS0gRXhhbXBsZSBsb2dvZmYgYWN0aW9uIAorICAgIDxhY3Rpb24gICAgcGF0aD0iL2xvZ29mZiIKKyAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmV4YW1wbGUuTG9nb2ZmQWN0aW9uIj4KKyAgICAgIDxmb3J3YXJkIG5hbWU9InN1Y2Nlc3MiICAgICAgICAgICAgICBwYXRoPSIvaW5kZXguanNwIi8+CisgICAgPC9hY3Rpb24+CisgICAgLS0+CisKKworICAgIDwhLS0gVGhlIHN0YW5kYXJkIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgYXZhaWxhYmxlIHdpdGggU3RydXRzIC0tPgorICAgIDwhLS0gVGhlc2Ugd291bGQgYmUgZWl0aGVyIG9taXR0ZWQgb3IgcHJvdGVjdGVkIGJ5IHNlY3VyaXR5IC0tPgorICAgIDwhLS0gaW4gYSByZWFsIGFwcGxpY2F0aW9uIGRlcGxveW1lbnQgLS0+CisgICAgPGFjdGlvbiAgICBwYXRoPSIvYWRtaW4vYWRkRm9ybUJlYW4iCisgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkFkZEZvcm1CZWFuQWN0aW9uIi8+CisgICAgPGFjdGlvbiAgICBwYXRoPSIvYWRtaW4vYWRkRm9yd2FyZCIKKyAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuQWRkRm9yd2FyZEFjdGlvbiIvPgorICAgIDxhY3Rpb24gICAgcGF0aD0iL2FkbWluL2FkZE1hcHBpbmciCisgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkFkZE1hcHBpbmdBY3Rpb24iLz4KKyAgICA8YWN0aW9uICAgIHBhdGg9Ii9hZG1pbi9yZWxvYWQiCisgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLlJlbG9hZEFjdGlvbiIvPgorICAgIDxhY3Rpb24gICAgcGF0aD0iL2FkbWluL3JlbW92ZUZvcm1CZWFuIgorICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5SZW1vdmVGb3JtQmVhbkFjdGlvbiIvPgorICAgIDxhY3Rpb24gICAgcGF0aD0iL2FkbWluL3JlbW92ZUZvcndhcmQiCisgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLlJlbW92ZUZvcndhcmRBY3Rpb24iLz4KKyAgICA8YWN0aW9uICAgIHBhdGg9Ii9hZG1pbi9yZW1vdmVNYXBwaW5nIgorICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5SZW1vdmVNYXBwaW5nQWN0aW9uIi8+CisKKworICA8L2FjdGlvbi1tYXBwaW5ncz4KKworPC9zdHJ1dHMtY29uZmlnPgpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2VsL2NvbmYvdGVzdC90b21jYXQ0MC9zZXJ2ZXIueG1sIGIvYnVpbGQtbGVnYWN5L2VsL2NvbmYvdGVzdC90b21jYXQ0MC9zZXJ2ZXIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiNTM0NmMKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvZWwvY29uZi90ZXN0L3RvbWNhdDQwL3NlcnZlci54bWwKQEAgLTAsMCArMSwyNSBAQAorPFNlcnZlciBwb3J0PSI4MDA1IiBzaHV0ZG93bj0iU0hVVERPV04iIGRlYnVnPSIwIj4KKworICA8U2VydmljZSBuYW1lPSJUb21jYXQtU3RhbmRhbG9uZSI+CisKKyAgICA8Q29ubmVjdG9yIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS5jYXRhbGluYS5jb25uZWN0b3IuaHR0cC5IdHRwQ29ubmVjdG9yIgorICAgICAgICAgICAgICAgcG9ydD0iOTA5MCIgbWluUHJvY2Vzc29ycz0iNSIgbWF4UHJvY2Vzc29ycz0iNzUiCisgICAgICAgICAgICAgICBhY2NlcHRDb3VudD0iMTAiIGRlYnVnPSIwIi8+CisKKyAgICA8RW5naW5lIG5hbWU9IlN0YW5kYWxvbmUiIGRlZmF1bHRIb3N0PSJsb2NhbGhvc3QiIGRlYnVnPSIwIj4KKworICAgICAgPExvZ2dlciBjbGFzc05hbWU9Im9yZy5hcGFjaGUuY2F0YWxpbmEubG9nZ2VyLkZpbGVMb2dnZXIiCisgICAgICAgICAgICAgIGRpcmVjdG9yeT0iQG91dC50b21jYXQuNDAuZnVsbC5kaXJAIgorICAgICAgICAgICAgICAgICBwcmVmaXg9ImNhY3R1c190ZXN0IgorICAgICAgICAgICAgICAgICBzdWZmaXg9Ii5sb2ciLz4KKworICAgICAgPFJlYWxtIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS5jYXRhbGluYS5yZWFsbS5NZW1vcnlSZWFsbSIgLz4KKworICAgICAgPEhvc3QgbmFtZT0ibG9jYWxob3N0IiBkZWJ1Zz0iMCIgYXBwQmFzZT0iQG91dC50b21jYXQuNDAuZnVsbC5kaXJAL3dlYmFwcHMiPgorICAgICAgPC9Ib3N0PgorCisgICAgPC9FbmdpbmU+CisKKyAgPC9TZXJ2aWNlPgorCis8L1NlcnZlcj4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9lbC9jb25mL3Rlc3QvdG9tY2F0NDEvc2VydmVyLnhtbCBiL2J1aWxkLWxlZ2FjeS9lbC9jb25mL3Rlc3QvdG9tY2F0NDEvc2VydmVyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2U2OTRiCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2VsL2NvbmYvdGVzdC90b21jYXQ0MS9zZXJ2ZXIueG1sCkBAIC0wLDAgKzEsNTQgQEAKKzxTZXJ2ZXIgcG9ydD0iODAwNSIgc2h1dGRvd249IlNIVVRET1dOIiBkZWJ1Zz0iMCI+CisKKyAgPExpc3RlbmVyIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS5jYXRhbGluYS5tYmVhbnMuU2VydmVyTGlmZWN5Y2xlTGlzdGVuZXIiCisgICAgICAgICAgICBkZWJ1Zz0iMCIvPgorICA8TGlzdGVuZXIgY2xhc3NOYW1lPSJvcmcuYXBhY2hlLmNhdGFsaW5hLm1iZWFucy5HbG9iYWxSZXNvdXJjZXNMaWZlY3ljbGVMaXN0ZW5lciIKKyAgICAgICAgICAgIGRlYnVnPSIwIi8+CisKKyAgPEdsb2JhbE5hbWluZ1Jlc291cmNlcz4KKworICAgIDwhLS0gRWRpdGFibGUgdXNlciBkYXRhYmFzZSB0aGF0IGNhbiBhbHNvIGJlIHVzZWQgYnkKKyAgICAgICAgIFVzZXJEYXRhYmFzZVJlYWxtIHRvIGF1dGhlbnRpY2F0ZSB1c2VycyAtLT4KKyAgICA8UmVzb3VyY2UgbmFtZT0iVXNlckRhdGFiYXNlIiBhdXRoPSJDb250YWluZXIiCisgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuY2F0YWxpbmEuVXNlckRhdGFiYXNlIgorICAgICAgIGRlc2NyaXB0aW9uPSJVc2VyIGRhdGFiYXNlIHRoYXQgY2FuIGJlIHVwZGF0ZWQgYW5kIHNhdmVkIj4KKyAgICA8L1Jlc291cmNlPgorICAgIDxSZXNvdXJjZVBhcmFtcyBuYW1lPSJVc2VyRGF0YWJhc2UiPgorICAgICAgPHBhcmFtZXRlcj4KKyAgICAgICAgPG5hbWU+ZmFjdG9yeTwvbmFtZT4KKyAgICAgICAgPHZhbHVlPm9yZy5hcGFjaGUuY2F0YWxpbmEudXNlcnMuTWVtb3J5VXNlckRhdGFiYXNlRmFjdG9yeTwvdmFsdWU+CisgICAgICA8L3BhcmFtZXRlcj4KKyAgICAgIDxwYXJhbWV0ZXI+CisgICAgICAgIDxuYW1lPnBhdGhuYW1lPC9uYW1lPgorICAgICAgICA8dmFsdWU+Y29uZi90b21jYXQtdXNlcnMueG1sPC92YWx1ZT4KKyAgICAgIDwvcGFyYW1ldGVyPgorICAgIDwvUmVzb3VyY2VQYXJhbXM+CisKKyAgPC9HbG9iYWxOYW1pbmdSZXNvdXJjZXM+CisKKyAgPFNlcnZpY2UgbmFtZT0iVG9tY2F0LVN0YW5kYWxvbmUiPgorCisgICAgPENvbm5lY3RvciBjbGFzc05hbWU9Im9yZy5hcGFjaGUuY295b3RlLnRvbWNhdDQuQ295b3RlQ29ubmVjdG9yIgorICAgICAgICAgICAgICAgcG9ydD0iOTA5MCIgbWluUHJvY2Vzc29ycz0iNSIgbWF4UHJvY2Vzc29ycz0iNzUiCisgICAgICAgICAgICAgICBlbmFibGVMb29rdXBzPSJ0cnVlIiByZWRpcmVjdFBvcnQ9Ijg0NDMiCisgICAgICAgICAgICAgICBhY2NlcHRDb3VudD0iMTAiIGRlYnVnPSIwIiBjb25uZWN0aW9uVGltZW91dD0iMjAwMDAiCisgICAgICAgICAgICAgICB1c2VVUklWYWxpZGF0aW9uSGFjaz0iZmFsc2UiLz4KKworICAgIDxFbmdpbmUgbmFtZT0iU3RhbmRhbG9uZSIgZGVmYXVsdEhvc3Q9ImxvY2FsaG9zdCIgZGVidWc9IjAiPgorCisgICAgICA8TG9nZ2VyIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS5jYXRhbGluYS5sb2dnZXIuRmlsZUxvZ2dlciIKKyAgICAgICAgICAgICAgZGlyZWN0b3J5PSJAb3V0LnRvbWNhdC40MS5mdWxsLmRpckAiCisgICAgICAgICAgICAgICAgIHByZWZpeD0iY2FjdHVzX3Rlc3QiCisgICAgICAgICAgICAgICAgIHN1ZmZpeD0iLmxvZyIvPgorCisgICAgICA8UmVhbG0gIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS5jYXRhbGluYS5yZWFsbS5Vc2VyRGF0YWJhc2VSZWFsbSIKKyAgICAgICAgICAgICAgICAgIGRlYnVnPSIwIiByZXNvdXJjZU5hbWU9IlVzZXJEYXRhYmFzZSIgLz4KKworICAgICAgPEhvc3QgbmFtZT0ibG9jYWxob3N0IiBkZWJ1Zz0iMCIgYXBwQmFzZT0iQG91dC50b21jYXQuNDEuZnVsbC5kaXJAL3dlYmFwcHMiPgorICAgICAgPC9Ib3N0PgorCisgICAgPC9FbmdpbmU+CisKKyAgPC9TZXJ2aWNlPgorCis8L1NlcnZlcj4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS9lbC9jb25mL3Rlc3Qvd2ViLnhtbCBiL2J1aWxkLWxlZ2FjeS9lbC9jb25mL3Rlc3Qvd2ViLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTU4ZGM4Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2VsL2NvbmYvdGVzdC93ZWIueG1sCkBAIC0wLDAgKzEsNDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKworPCFET0NUWVBFIHdlYi1hcHAKKyAgICBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4yLy9FTiIKKyAgICAiaHR0cDovL2phdmEuc3VuLmNvbS9qMmVlL2R0ZHMvd2ViLWFwcF8yXzIuZHRkIj4KKworPHdlYi1hcHA+CisKKzwhLS0KKyAgICA8ZmlsdGVyPgorICAgICAgICA8ZmlsdGVyLW5hbWU+RmlsdGVyUmVkaXJlY3Rvcnk8L2ZpbHRlci1uYW1lPgorICAgICAgICA8ZmlsdGVyLWNsYXNzPgorICAgICAgICAgICAgb3JnLmFwYWNoZS5jYWN0dXMuc2VydmVyLkZpbHRlclRlc3RSZWRpcmVjdG9yCisgICAgICAgIDwvZmlsdGVyLWNsYXNzPgorICAgIDwvZmlsdGVyPgorCisgICAgPGZpbHRlci1tYXBwaW5nPgorICAgICAgICA8ZmlsdGVyLW5hbWU+RmlsdGVyUmVkaXJlY3RvcjwvZmlsdGVyLW5hbWU+CisgICAgICAgIDx1cmwtcGF0dGVybj4vRmlsdGVyUmVkaXJlY3RvcjwvdXJsLXBhdHRlcm4+CisgICAgPC9maWx0ZXItbWFwcGluZz4KKy0tPgorCisgICAgPHNlcnZsZXQ+CisgICAgICAgIDxzZXJ2bGV0LW5hbWU+U2VydmxldFJlZGlyZWN0b3I8L3NlcnZsZXQtbmFtZT4KKyAgICAgICAgPHNlcnZsZXQtY2xhc3M+CisgICAgICAgICAgICBvcmcuYXBhY2hlLmNhY3R1cy5zZXJ2ZXIuU2VydmxldFRlc3RSZWRpcmVjdG9yCisgICAgICAgIDwvc2VydmxldC1jbGFzcz4KKyAgICA8L3NlcnZsZXQ+CisKKyAgICA8c2VydmxldD4KKyAgICAgICAgPHNlcnZsZXQtbmFtZT5Kc3BSZWRpcmVjdG9yPC9zZXJ2bGV0LW5hbWU+CisgICAgICAgIDxqc3AtZmlsZT4vanNwUmVkaXJlY3Rvci5qc3A8L2pzcC1maWxlPgorICAgIDwvc2VydmxldD4KKyAgICAKKyAgICA8c2VydmxldC1tYXBwaW5nPgorICAgICAgICA8c2VydmxldC1uYW1lPlNlcnZsZXRSZWRpcmVjdG9yPC9zZXJ2bGV0LW5hbWU+CisgICAgICAgIDx1cmwtcGF0dGVybj4vU2VydmxldFJlZGlyZWN0b3I8L3VybC1wYXR0ZXJuPgorICAgIDwvc2VydmxldC1tYXBwaW5nPgorCisgICAgPHNlcnZsZXQtbWFwcGluZz4KKyAgICAgICAgPHNlcnZsZXQtbmFtZT5Kc3BSZWRpcmVjdG9yPC9zZXJ2bGV0LW5hbWU+CisgICAgICAgIDx1cmwtcGF0dGVybj4vSnNwUmVkaXJlY3RvcjwvdXJsLXBhdHRlcm4+CisgICAgPC9zZXJ2bGV0LW1hcHBpbmc+CisgICAgCis8L3dlYi1hcHA+CmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvZWwvcHJvamVjdC5wcm9wZXJ0aWVzIGIvYnVpbGQtbGVnYWN5L2VsL3Byb2plY3QucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTEyMTZmCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2VsL3Byb2plY3QucHJvcGVydGllcwpAQCAtMCwwICsxLDEyMCBAQAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFAgUiBPIEogRSBDIFQgIFAgUiBPIFAgRSBSIFQgSSBFIFMKKyMKKyMgJElkJAorIworIyBEbyBub3QgY2hhbmdlIHRoaXMgZmlsZS4gUGxlYXNlIHVzZSBidWlsZC5wcm9wZXJ0aWVzIGluIHRoaXMgZGlyZWN0b3J5CisjIHRvIGRvIHNpdGUgb3IgaW5zdGFsbGF0aW9uIHNwZWNpZmljIGNoYW5nZXMgdG8gdGhlIHByb2plY3QgYnVpbGQuCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK21hdmVuLnJlcG8ucmVtb3RlPWh0dHA6Ly93d3cuaWJpYmxpby5vcmcvbWF2ZW4vLGh0dHA6Ly9jdnMuYXBhY2hlLm9yZy9yZXBvc2l0b3J5LworCisja2VlcCBhbnQgJiBtYXZlbiBkaXJlY3RvcmllcyBzZXBhcmF0ZS4KK21hdmVuLmJ1aWxkLmRpcj1tLXRhcmdldAorCittYXZlbi5jaGVja3N0eWxlLnByb3BlcnRpZXMgPSBjb25mL3FhL0NoZWNrU3R5bGUueG1sCisKKyMgZGlzcGxheSB0aGUgZGF0ZSBvbiB0aGUgc2l0ZQorbWF2ZW4ueGRvYy5kYXRlID0gbGVmdAorIyBEaXNwbGF5IHRoZSB2ZXJzaW9uIHRoZSB3ZWIgc2l0ZSBpcyBkb2N1bWVudGluZworbWF2ZW4ueGRvYy52ZXJzaW9uID0gJHtwb20uY3VycmVudFZlcnNpb259CisjIERheXMgdG8gcmVwb3J0IGluIHRoZSBjaGFuZ2UgbG9nCittYXZlbi5jaGFuZ2Vsb2cucmFuZ2U9MzAKKworY29tcGlsZS5kZWJ1ZyA9IG9uCitjb21waWxlLm9wdGltaXplID0gb2ZmCitjb21waWxlLmRlcHJlY2F0aW9uID0gb24KK21hdmVuLmNvbXBpbGUuZGVwcmVjYXRpb24gPSBvbgorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRCBFIFAgTCBPIFkgTSBFIE4gVCAgUCBSIE8gUCBFIFIgVCBJIEUgUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjLSBtYXZlbi5yZXBvLmNlbnRyYWwgYW5kIG1hdmVuLnJlcG8uY2VudHJhbC5kaXJlY3RvcnkgYXJlIHVzZWQgdG8gZGVwbG95CisjLSBqYXJzIHRvIGJlIHVzZWQgYnkgb3RoZXIgcHJvamVjdHMuICAKKyMKKyMtIEZvciBuaWdodGx5IGJ1aWxkcywgdXNlOgorIy0gICAgbWF2ZW4gamFyOmRlcGxveS1zbmFwc2hvdCAKKyMtIFRoaXMgd2lsbCBkZXBsb3kgdG8gdGhlICdkZWZhdWx0JyBkaXJlY3RvcnksIHdoaWNoIGNvcnJlc3BvbmRzIHRvIHRoZSAicmVtb3RlIiByZXBvc2l0b3J5CisjLSAgaHR0cDovL2N2cy5hcGFjaGUub3JnL3JlcG9zaXRvcnkvCisjLSBGb3IgcHJvZHVjdGlvbiBidWlsZHMsIHVzZToKKyMtICAgIG1hdmVuIC1EbWF2ZW4ucmVwby5jZW50cmFsLmRpcmVjdG9yeT0vd3d3L3d3dy5hcGFjaGUub3JnL2Rpc3QvamF2YS1yZXBvc2l0b3J5LyBqYXI6ZGVwbG95CisjLSBUaGF0IGRpcmVjdG9yeSBpcyBwZXJpb2RpY2FsbHkgbWlycm9yZWQgd2l0aCB0aGUgInN0YW5kYXJkIiBNYXZlbiByZXBvIGF0IGliaWJsaW8KKyMtIFNwZWNpZnkgeW91ciB1c2VybmFtZSBhdCB0aGUgcmVtb3RlIHJlcG9zaXRvcnkgKGN2cy5hcGFjaGUub3JnKSAKKyMtIHdpdGggdGhlIG1hdmVuIHByb3BlcnR5ICdtYXZlbi51c2VybmFtZScKK21hdmVuLnJlcG8uY2VudHJhbD1jdnMuYXBhY2hlLm9yZworbWF2ZW4ucmVwby5jZW50cmFsLmRpcmVjdG9yeT0vd3d3L2N2cy5hcGFjaGUub3JnL3JlcG9zaXRvcnkvICMgbmlnaHRseSBidWlsZHMKKyNtYXZlbi5yZXBvLmNlbnRyYWwuZGlyZWN0b3J5PS93d3cvd3d3LmFwYWNoZS5vcmcvZGlzdC9qYXZhLXJlcG9zaXRvcnkvICMgcmVsZWFzZXMKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFggRCBPIEMgICBQIFIgTyBQIEUgUiBUIEkgRSBTCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyNtYXZlbi54ZG9jLmluY2x1ZGVQcm9qZWN0RG9jdW1lbnRhdGlvbj1ubworI0NvbW1lbnQgb3V0IHRoZSBmb2xsb3dpbmcgbGluZSB0byB1c2UgdGhlIHN0YW5kYXJkIE1hdmVuIHN0eWxlc2hlZXQKK21hdmVuLnhkb2MuanNsPXN0cnV0cy5qc2wKKyMgTGlua3MgdG8gU3RydXRzIERldmVsb3BtZW50IFByb2Nlc3MgZG9jIGluc3RlYWQgb2YgTWF2ZW4gZGVmYXVsdCBkb2MKK21hdmVuLnhkb2MuZGV2ZWxvcG1lbnRQcm9jZXNzVXJsPS9yZWxlYXNlcy5odG1sCisKKyNQb3dlcmVkIEJ5IGxvZ28gCisjbWF2ZW4ueGRvYy5wb3dlcmVkYnkuaW1hZ2U9c3RydXRzLXBvd2VyLmdpZgorI21hdmVuLnhkb2MucG93ZXJlZGJ5LnRpdGxlPVBvd2VyZWQgYnkgU3RydXRzCisjbWF2ZW4ueGRvYy5wb3dlcmVkYnkudXJsPWh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzLworbWF2ZW4ueGRvYy5wb3dlcmVkYnkuaW1hZ2U9CittYXZlbi54ZG9jLnBvd2VyZWRieS50aXRsZT0KK21hdmVuLnhkb2MucG93ZXJlZGJ5LnVybD0KKworbWF2ZW4udWkuYmFubmVyLmJhY2tncm91bmQ9I2ZmZmZmZgorbWF2ZW4udWkuYmFubmVyLmZvcmVncm91bmQ9IzAwMDAwMAorbWF2ZW4udWkuYmFubmVyLmJvcmRlci50b3A9I2ZmZmZmZgorbWF2ZW4udWkuYmFubmVyLmJvcmRlci5ib3R0b209I2ZmZmZmZgorCittYXZlbi51aS5uYXZjb2wuYmFja2dyb3VuZD0jZmZmZmZmCittYXZlbi51aS5uYXZjb2wuYm9yZGVyLnRvcD0jZmZmZmZmCittYXZlbi51aS5uYXZjb2wuYm9yZGVyLnJpZ2h0PSNmZmZmZmYKK21hdmVuLnVpLm5hdmNvbC5ib3JkZXIuYm90dG9tPSNmZmZmZmYKKworbWF2ZW4udWkuYnJlYWRjcnVtYnMuYmFja2dyb3VuZD0jZmZmZmZmCittYXZlbi51aS5icmVhZGNydW1icy5mb3JlZ3JvdW5kPSM2NjY2NjYKK21hdmVuLnVpLmJyZWFkY3J1bWJzLmJvcmRlci50b3A9I2ZmZmZmZgorbWF2ZW4udWkuYnJlYWRjcnVtYnMuYm9yZGVyLmJvdHRvbT0jMDAwMDAwCisKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEMgQSBDIFQgVSBTICAgUCBMIFUgRyAtIEkgTiAgIFAgUiBPIFAgRSBSIFQgSSBFIFMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorY2FjdHVzLnNyYy5kaXIgPSBzcmMvdGVzdAorY2FjdHVzLnNyYy5pbmNsdWRlcyA9IG9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9UZXN0QWN0aW9uU2VydmxldC5qYXZhLG9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi8qKi9UZXN0Ki5qYXZhCisKKyMjIENhY3R1cyBQbHVnLWluOiBUb21jYXQgNCBzcGVjaWZpYyAKKyMgY2FjdHVzLnRvbWNhdDR4LmNvbmZpZyAob3B0aW9uYWwpCisjIExvY2F0aW9uIG9mIHRoZSBUb21jYXQgNC54IGNvbmZpZ3VyYXRpb24gZmlsZSBpZiB5b3UgZG9uJ3Qgd2FudCB0byB1c2UgdGhlIGNhY3R1cy1wcm92aWRlZCBvbmUuCisjIGNhY3R1cy50b21jYXQ0eC5jb25mLmRpciAob3B0aW9uYWwpCisjIExvY2F0aW9uIG9mIGN1c3RvbSBUb21jYXQgNC54IGNvbmZpZ3VyYXRpb24gZmlsZSB0aGF0IHdpbGwgYmUgY29waWVkLCBvdmVyd3JpdGluZyB0aGUgQ2FjdHVzLXByb3ZpZGVkIGNvbmZpZ3VyYXRpb24gZmlsZXMuCitjYWN0dXMudG9tY2F0NHguY29uZi5kaXIgPSBjb25mL3Rlc3QvdG9tY2F0NDEKKyMgY2FjdHVzLnRvbWNhdDR4LmNvbmYuaW5jbHVkZXMgKG9wdGlvbmFsKQorIyBDb25maWd1cmF0aW9uIGZpbGVzIGxvY2F0ZWQgYXQke2NhY3R1cy50b21jYXQ0eC5jb25mLmRpciB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgVG9tY2F0IDQueCBjb250YWluZXIgc2V0IHVwIGJ5IENhY3R1cy4KKyMgY2FjdHVzLnRvbWNhdDR4LmNvbmYuZXhjbHVkZXMgKG9wdGlvbmFsKQorIyBDb25maWd1cmF0aW9uIGZpbGVzIGxvY2F0ZWQgYXQke2NhY3R1cy50b21jYXQ0eC5jb25mLmRpciB0aGF0IHNob3VsZCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIFRvbWNhdCA0LnggY29udGFpbmVyIHNldCB1cCBieSBDYWN0dXMuCisjIGNhY3R1cy50b21jYXQ0eC50bXBkaXIgKG9wdGlvbmFsKQorIyBEaXJlY3RvcnkgdG8gd2hpY2ggdGhlIGNvbnRhaW5lciB3aWxsIGJlIGluc3RhbGxlZCBmb3IgdGhlIHRlc3RzLiBCeSBkZWZhdWx0IHRoZSBzeXN0ZW0gdGVtcG9yYXJ5IGRpcmVjdG9yeSBpcyB1c2VkLgorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQSBQIEEgQyBIIEUgIFIgRSBQIE8gUyBJIFQgTyBSIFkgIFAgUiBPIFAgRSBSIFQgSSBFIFMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorI1RoaXMgaXMgdGhlIGhvc3QgdGhhdCBNYXZlbiB3aWxsIGF0dGVtcHQKKyN0byBkZXBsb3kgdGhlIGRpc3RyaWJ1dGlvbiB0byBkdXJpbmcgYSBkaXN0OmRlcGxveS4gCQorbWF2ZW4ucmVwby5jZW50cmFsPW1pbm90YXVyLmFwYWNoZS5vcmcJCisKKyNUaGlzIGlzIHRoZSBkaXJlY3RvcnkgdGhhdCBNYXZlbiB3aWxsCisjY29weSB0aGUgZGlzdHJpYnV0aW9uIHRvIGR1cmluZyBhIGRpc3Q6ZGVwbG95LiAJCisKK21hdmVuLnJlcG8uY2VudHJhbC5kaXJlY3Rvcnk9L3d3dy93d3cuYXBhY2hlLm9yZy9kaXN0L2phdmEtcmVwb3NpdG9yeQorCisjIEJlY2F1c2UgdGhlIHJlcG9zaXRvcnkgdXNlciBuYW1lIGlzIGRpZmZlcmVudCBmb3IgZWFjaCBwZXJzb24sIGl0IHNob3VsZCBub3QKKyMgYmUgZGVmaW5lZCBpbiB0aGUgc2hhcmVkICJwcm9qZWN0LnByb3BlcnRpZXMiICAKKyMgRGVmaW5lIHRoaXMgb24gdGhlIGNvbW1hbmQgbGluZSwgb3IgaW4geW91ciBvd24gYnVpbGQucHJvcGVydGllcyBmaWxlOgorIyBpbiBvcmRlciB0byBkZXBsb3kgdG8gdGhlIHJlcG9zaXRvcnk6Cisjc3NoIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MganVzdCByZXF1aXJlIHlvdXIgYXBhY2hlIGlkIHRvIGxvZyBvbiB3aXRoCisjbWF2ZW4udXNlcm5hbWU9PGFwYWNoZS11c2VyLW5hbWU+IChET04nVCBVTkNPTU1FTlQgVEhJUyBMSU5FIElOIFNIQVJFRCBwcm9qZWN0LnByb3BlcnQKKworbWF2ZW4uY2hhbmdlbG9nLmZhY3RvcnkgPSBvcmcuYXBhY2hlLm1hdmVuLnN2bmxpYi5Tdm5DaGFuZ2VMb2dGYWN0b3J5CisKKwpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L2VsL3N0cnV0cy5qc2wgYi9idWlsZC1sZWdhY3kvZWwvc3RydXRzLmpzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2RhM2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L2VsL3N0cnV0cy5qc2wKQEAgLTAsMCArMSw1MDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCEtLSAkSWQ6IHN0cnV0cy5qc2wgNTEyMjAgMjAwMy0xMi0xMSAyMDowODowN1ogc3JhZWJ1cm4gJCAtLT4KKzxqc2w6c3R5bGVzaGVldCBzZWxlY3Q9IiRkb2MiCisgIHhtbG5zOmRlZmluZT0iamVsbHk6ZGVmaW5lIgorICB4bWxuczpqPSJqZWxseTpjb3JlIgorICB4bWxuczpqc2w9ImplbGx5OmpzbCIKKyAgeG1sbnM6bG9nPSJqZWxseTpsb2ciCisgIHhtbG5zOnV0aWw9ImplbGx5OnV0aWwiCisgIHhtbG5zOng9ImplbGx5OnhtbCIKKyAgeG1sbnM6ZG9jPSJkb2MiCisgIHhtbG5zPSJkdW1teSIgdHJpbT0iZmFsc2UiPgorICA8anNsOnRlbXBsYXRlIG1hdGNoPSJkb2N1bWVudCIgdHJpbT0iZmFsc2UiPgorICAgIDxqOnVzZUJlYW4gdmFyPSJuYXZiZWFuIiBjbGFzcz0ib3JnLmFwYWNoZS5tYXZlbi5OYXZCZWFuIi8+CisgICAgPGo6c2V0IHZhcj0ibG9jYXRpb24iIHZhbHVlPSIke291dEZpbGUuc3Vic3RyaW5nKGRlc3RkaXIubGVuZ3RoKCkpfSIvPgorICAgIDx1dGlsOnJlcGxhY2UgdmFyPSJsb2NhdGlvbiIgb2xkQ2hhcj0iXCIgbmV3Q2hhcj0iLyIgdmFsdWU9IiR7bG9jYXRpb259Ii8+CisKKyAgICA8IS0tIFN0b3JlcyBsb2NhdGlvbiBmb3IgcHVibGlzaCBkYXRlIC8gdmVyc2lvbiAtLT4KKyAgICA8ajpzZXQgdmFyPSJkYXRlIj4ke21hdmVuLnhkb2MuZGF0ZX08L2o6c2V0PgorICAgICAgCisgICAgPGo6c2V0UHJvcGVydGllcyAKKyAgICAgICAgb2JqZWN0PSIke25hdmJlYW59IgorICAgICAgICBkb2N1bWVudD0iJHtkb2N9IgorICAgICAgICBsb2NhdGlvbj0iJHtsb2NhdGlvbn0iLz4KKyAgICAKKyAgICA8eDpkb2N0eXBlIG5hbWU9Imh0bWwiCisgICAgICBwdWJsaWNJZD0iLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgICBzeXN0ZW1JZD0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCIvPgorCisgICAgPGh0bWw+CisgICAgICA8aGVhZD4KKyAgICAgICAgPGo6c2V0IHZhcj0iZG9jVGl0bGUiPgorICAgICAgICAgIDx4OmV4cHIgc2VsZWN0PSIuL3Byb3BlcnRpZXMvdGl0bGUiLz4KKyAgICAgICAgPC9qOnNldD4KKyAgICAgICAgPHg6aWYgc2VsZWN0PSIkbmF2L3RpdGxlIj4KKyAgICAgICAgICA8dGl0bGU+CisgICAgICAgICAgICA8eDpleHByIHNlbGVjdD0iJG5hdi90aXRsZSIvPiAtICR7ZG9jVGl0bGV9CisgICAgICAgICAgPC90aXRsZT4KKyAgICAgICAgPC94OmlmPgorICAgICAgICA8eDppZiBzZWxlY3Q9Im5vdCgkbmF2L3RpdGxlKSI+CisgICAgICAgICAgPHRpdGxlPiR7cG9tLm5hbWV9IC0gJHtkb2NUaXRsZX08L3RpdGxlPgorICAgICAgICA8L3g6aWY+CisgICAgICAgIAorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgICAgICAgIEBpbXBvcnQgdXJsKCIke3JlbGF0aXZlUGF0aH0vc3R5bGUvc3RydXRzLmNzcyIpOworICAgICAgICAgIEBpbXBvcnQgdXJsKCIke3JlbGF0aXZlUGF0aH0vc3R5bGUvbWF2ZW4uY3NzIik7CisgICAgICAgIF1dPjwvc3R5bGU+CisgICAgICAgIAorICAgICAgICA8dXRpbDpmaWxlIHZhcj0icHJvamVjdENzc0ZpbGUiIG5hbWU9IiR7bWF2ZW4uZG9jcy5zcmN9L3N0eWxlL3Byb2plY3QuY3NzIi8+CisgICAgICAgIDxqOmlmIHRlc3Q9IiR7cHJvamVjdENzc0ZpbGUuZXhpc3RzKCl9Ij4KKyAgICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgICAgICAgICAgQGltcG9ydCB1cmwoIiR7cmVsYXRpdmVQYXRofS9zdHlsZS9wcm9qZWN0LmNzcyIpOworICAgICAgICAgIF1dPjwvc3R5bGU+CisgICAgICAgIDwvajppZj4KKyAgICAgICAgCisgICAgICAgIDwhLS0gRklYTUU6IG9uY2Ugc29tZW9uZSB3b3JrcyBvdXQgaG93IHRvIHN0b3AgdGhpcyBicmVha2luZworICAgICAgICA8eDplbGVtZW50IG5hbWU9InNjcmlwdCI+PHg6YXR0cmlidXRlIG5hbWU9InR5cGUiPnRleHQvamF2YXNjcmlwdDwveDphdHRyaWJ1dGU+CisgICAgICAgICAgaWYgKGRvY3VtZW50LmxheWVycykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LndyaXRlbG4oJycrCisgICAgICAgICAgICAgICAgJzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9IiR7cmVsYXRpdmVQYXRofS9zdHlsZS9uczRfb25seS5jc3MiIG1lZGlhPSJzY3JlZW4iIC8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iJHtyZWxhdGl2ZVBhdGh9L3N0eWxlL21hdmVuX25zNF9vbmx5LmNzcyIgbWVkaWE9InNjcmVlbiIvPicpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICA8L3g6ZWxlbWVudD4KKyAgICAgICAgLS0+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9IiR7cmVsYXRpdmVQYXRofS9zdHlsZS9wcmludC5jc3MiIG1lZGlhPSJwcmludCIvPgorICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD0ke291dHB1dGVuY29kaW5nfSI+PC9tZXRhPgorICAgICAgICA8eDpmb3JFYWNoIHZhcj0iYXV0aG9yIiBzZWxlY3Q9Ii4vcHJvcGVydGllcy9hdXRob3IiPgorICAgICAgICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgY29udGVudD0iJHthdXRob3IudGV4dH0iLz4KKyAgICAgICAgICA8bWV0YSBuYW1lPSJlbWFpbCIgY29udGVudD0iJHthdXRob3IuYXR0cmlidXRlKCdlbWFpbCcpLnZhbHVlfSIvPgorICAgICAgICA8L3g6Zm9yRWFjaD4KKyAgICAgICAgCisgICAgICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSIkZG9jL2RvY3VtZW50L2hlYWQvKiIvPgorICAgICAgICAKKyAgICAgIDwvaGVhZD4KKworICAgICAgPHg6ZWxlbWVudCBuYW1lPSJib2R5Ij48ajp3aGl0ZXNwYWNlIHRyaW09InRydWUiPgorICAgICAgICA8eDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPmNvbXBvc2l0ZTwveDphdHRyaWJ1dGU+CisgICAgICAgIDx4OmZvckVhY2ggdmFyPSJhdHRyIiBzZWxlY3Q9IiRkb2MvZG9jdW1lbnQvYm9keS9AKiI+CisgICAgICAgICAgPHg6YXR0cmlidXRlIG5hbWU9IiR7YXR0ci5uYW1lfSI+JHthdHRyLnZhbHVlfTwveDphdHRyaWJ1dGU+CisgICAgICAgIDwveDpmb3JFYWNoPgorICAgICAgICA8L2o6d2hpdGVzcGFjZT4KKworICAgICAgICA8ZGl2IGlkPSJiYW5uZXIiPgorICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iOCIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8IS0tIG9yZ2FuaXphdGlvbiBsb2dvIC0tPgorICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0ibG9nbyIgdmFsdWU9IiR7cG9tLm9yZ2FuaXphdGlvbi5sb2dvfSIvPgorICAgICAgICAgICAgICAgIDxqOmlmIHRlc3Q9IiR7IWVtcHR5KGxvZ28pfSI+CisgICAgICAgICAgICAgICAgICA8IS0tIHNldCB1cmwgdG8gb3JnIG9yIHByb2plY3QgdXJsIC0tPgorICAgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0idXJsIiB2YWx1ZT0iJHtwb20ub3JnYW5pemF0aW9uLnVybH0iLz4KKyAgICAgICAgICAgICAgICAgIDxqOmlmIHRlc3Q9IiR7IWVtcHR5KHVybCl9Ij4KKyAgICAgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0iaG9tZSIgdmFsdWU9IiR7cG9tLm9yZ2FuaXphdGlvbi51cmx9Ii8+CisgICAgICAgICAgICAgICAgICA8L2o6aWY+CisgICAgICAgICAgICAgICAgICA8ajppZiB0ZXN0PSIke2VtcHR5KHVybCl9Ij4KKyAgICAgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0iaG9tZSIgdmFsdWU9IiR7cG9tLnVybH0iLz4KKyAgICAgICAgICAgICAgICAgIDwvajppZj4KKyAgICAgICAgICAgICAgICAgIDwhLS0gc2V0IGltYWdlIHRvIHJlbGF0aXZlIG9yIGNvbXBsZXRlIC0tPgorICAgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0iaW1hZ2UiIHZhbHVlPSIke3BvbS5vcmdhbml6YXRpb24ubG9nb30iLz4KKyAgICAgICAgICAgICAgICAgIDxqOmlmIHRlc3Q9IiR7IWltYWdlLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKX0iPgorICAgICAgICAgICAgICAgICAgICA8ajpzZXQgdmFyPSJpbWFnZSIgdmFsdWU9IiR7cmVsYXRpdmVQYXRofSR7aW1hZ2V9Ii8+CisgICAgICAgICAgICAgICAgICA8L2o6aWY+CisgICAgICAgICAgICAgICAgICA8YSBocmVmPSIke2hvbWV9Ij4KKyAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9IiR7aW1hZ2V9IiBhbGlnbj0ibGVmdCIgYWx0PSIke3BvbS5vcmdhbml6YXRpb24ubmFtZX0iIGJvcmRlcj0iMCIvPgorICAgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgICAgIDwvajppZj4KKyAgICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgICA8IS0tIHByb2plY3QgbG9nbyBhbmQgbGluayAtLT4KKyAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgIDxkaXYgYWxpZ249InJpZ2h0IiBpZD0ibG9naW4iPgorICAgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0ibG9nbyIgdmFsdWU9IiR7cG9tLmxvZ299Ii8+CisgICAgICAgICAgICAgICAgICA8ajppZiB0ZXN0PSIke2xvZ28gIT0gbnVsbCBhbmQgbG9nbyAhPSAnJ30iPgorICAgICAgICAgICAgICAgICAgICA8IS0tIHNldCBpbWFnZSB0byByZWxhdGl2ZSBvciBjb21wbGV0ZSAtLT4KKyAgICAgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0iaW1hZ2UiIHZhbHVlPSIke3BvbS5sb2dvfSIvPgorICAgICAgICAgICAgICAgICAgICA8ajppZiB0ZXN0PSIkeyFpbWFnZS5zdGFydHNXaXRoKCdodHRwOi8vJyl9Ij4KKyAgICAgICAgICAgICAgICAgICAgICA8ajpzZXQgdmFyPSJpbWFnZSIgdmFsdWU9IiR7cmVsYXRpdmVQYXRofSR7aW1hZ2V9Ii8+CisgICAgICAgICAgICAgICAgICAgIDwvajppZj4KKworICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIke3BvbS51cmx9Ij4KKyAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iJHtpbWFnZX0iIGFsaWduPSJyaWdodCIgYWx0PSIke3BvbS5uYW1lfSIgYm9yZGVyPSIwIi8+CisgICAgICAgICAgICAgICAgICAgIDwvYT4KKyAgICAgICAgICAgICAgICAgIDwvajppZj4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImJyZWFkY3J1bWJzIj4KKyAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjQiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgPGo6aWYgdGVzdD0iJHtkYXRlID09ICdsZWZ0J30iPgorICAgICAgICAgICAgICAgIDxqOnNldCB2YXI9InZlcnNpb24iIHZhbHVlPSIke21hdmVuLnhkb2MudmVyc2lvbn0iLz4KKyAgICAgICAgICAgICAgICA8dGQ+TGFzdCBwdWJsaXNoZWQ6ICR7YnVpbGQuZGF0ZX0KKyAgICAgICAgICAgICAgICAgIDxqOmlmIHRlc3Q9IiR7IWVtcHR5KHZlcnNpb24pfSI+fCBEb2MgZm9yICR7dmVyc2lvbn08L2o6aWY+CisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgPC9qOmlmPgorICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgPGRpdiBhbGlnbj0icmlnaHQiPgorICAgICAgICAgICAgICAgICAgPGo6aWYgdGVzdD0iJHtkYXRlID09ICdyaWdodCd9Ij4KKyAgICAgICAgICAgICAgICAgICAgTGFzdCBwdWJsaXNoZWQ6ICR7YnVpbGQuZGF0ZX0KKyAgICAgICAgICAgICAgICAgICAgPHg6aWYgc2VsZWN0PSIkbmF2L2JvZHkvbGlua3MiPnw8L3g6aWY+CisgICAgICAgICAgICAgICAgICA8L2o6aWY+CisgICAgICAgICAgICAgICAgICA8IS0tIHJlbmRlciBsaW5rcyAtLT4KKyAgICAgICAgICAgICAgICAgIDx4OmlmIHNlbGVjdD0iJG5hdi9ib2R5L2xpbmtzIj4KKyAgICAgICAgICAgICAgICAgICAgPGpzbDphcHBseVRlbXBsYXRlcyBzZWxlY3Q9IiRuYXYvYm9keS9saW5rcyIvPgorICAgICAgICAgICAgICAgICAgPC94OmlmPgorICAgICAgICAgICAgICAgICAgPHg6aWYgc2VsZWN0PSJub3QoJG5hdi9ib2R5L2xpbmtzKSI+CisgICAgICAgICAgICAgICAgICAgIDwhLS0gRklYTUUgJm5ic3A7IC0tPgorICAgICAgICAgICAgICAgICAgPC94OmlmPgorICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8L3RhYmxlPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPCEtLSBCb2R5IG9mIHRoZSBwYWdlIC0tPgorICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjgiIHdpZHRoPSIxMDAlIj4gPCEtLWlkPSJtYWluIiAtLT4KKyAgICAgICAgICA8dHIgdmFsaWduPSJ0b3AiPgorICAgICAgICAgICAgPHRkIGlkPSJsZWZ0Y29sIiB3aWR0aD0iMjAlIj4KKyAgICAgICAgICAgICAgPGRpdiBpZD0ibmF2Y29sdW1uIj4KKyAgICAgICAgICAgICAgICA8ajppZiB0ZXN0PSIke2RhdGUgPT0gJ25hdmlnYXRpb24tdG9wJ30iPgorICAgICAgICAgICAgICAgICAgPGRpdj4KKyAgICAgICAgICAgICAgICAgICAgPHNtYWxsPkxhc3QgcHVibGlzaGVkOiAke2J1aWxkLmRhdGV9PC9zbWFsbD4KKyAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgIDwvajppZj4KKworICAgICAgICAgICAgICAgIDx4OmlmIHNlbGVjdD0iJG5hdiI+CisgICAgICAgICAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iJG5hdi9ib2R5L21lbnVbbm90KEB0eXBlKSB8IEB0eXBlPSdoZWFkZXInXSB8ICRuYXYvYm9keS9zZWFyY2giLz4KKyAgICAgICAgICAgICAgICA8L3g6aWY+CisKKyAgICAgICAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iJHByb2plY3ROYXYvYm9keS9tZW51Ii8+CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgPCEtLSBTdGFuZGFyZCBNYXZlbiBOYXZpZ2F0aW9uIC0tPgorICAgICAgICAgICAgICAgIDxqOnNldCB2YXI9ImZpbGVOYW1lIj4ke2ZpbGV9PC9qOnNldD4KKworICAgICAgICAgICAgICAgIDxqOnNldCB2YXI9InBvd2VyZWRieWltYWdlIj4ke21hdmVuLnhkb2MucG93ZXJlZGJ5LmltYWdlfTwvajpzZXQ+CisgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0icG93ZXJlZGJ5dGl0bGUiPiR7bWF2ZW4ueGRvYy5wb3dlcmVkYnkudGl0bGV9PC9qOnNldD4KKyAgICAgICAgICAgICAgICA8ajpzZXQgdmFyPSJwb3dlcmVkYnl1cmwiPiR7bWF2ZW4ueGRvYy5wb3dlcmVkYnkudXJsfTwvajpzZXQ+CisgICAgICAgICAgICAgICAgPGo6aWYgdGVzdD0iJHshZW1wdHkocG93ZXJlZGJ5aW1hZ2UpfSI+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7IHdpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiR7cG93ZXJlZGJ5dXJsfSIgdGl0bGU9IiR7cG93ZXJlZGJ5dGl0bGV9Ij48aW1nIGFsdD0iJHttYXZlbi54ZG9jLnBvd2VyZWRieS50aXRsZX0iIHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibGFjayIgc3JjPSIke3JlbGF0aXZlUGF0aH0vaW1hZ2VzL2xvZ29zLyR7cG93ZXJlZGJ5aW1hZ2V9Ii8+PC9hPgorICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICA8L2o6aWY+CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIDxqOmlmIHRlc3Q9IiR7ZGF0ZSA9PSAnbmF2aWdhdGlvbi1ib3R0b20nfSI+CisgICAgICAgICAgICAgICAgICA8ZGl2PgorICAgICAgICAgICAgICAgICAgICA8c21hbGw+TGFzdCBwdWJsaXNoZWQ6ICR7YnVpbGQuZGF0ZX08L3NtYWxsPgorICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgPC9qOmlmPgorICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgcm93c3Bhbj0iMiI+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImJvZHljb2wiPgorICAgICAgICAgICAgICAgIDwhLS0gSW5zZXJ0IE1BSU4gYm9keSBoZXJlIC0tPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFwcCI+CisgICAgICAgICAgICAgICAgICA8IS0tIEZJWE1FIHJlYWxseSBzaG91bGRuJ3QgdXNlICRkb2MsIGJ1dCBqZWxseSBsb3NlcyBpdCdzIGNvbnRleHQgYWdhaW4gLS0+CisgICAgICAgICAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iJGRvYy9kb2N1bWVudC9ib2R5L3NlY3Rpb24iLz4KKyAgICAgICAgICAgICAgICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSIkZG9jL2RvY3VtZW50L2JvZHkvZ2xvc3NhcnkiIC8+CisgICAgICAgICAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iJGRvYy9kb2N1bWVudC9ib2R5L3JlbGVhc2UiIC8+CisgICAgICAgICAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iJGRvYy9kb2N1bWVudC9ib2R5L2NoYW5nZWxvZyIgLz4KKyAgICAgICAgICAgICAgICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSIkZG9jL2RvY3VtZW50L2JvZHkvdGFza0xpc3QiIC8+CisgICAgICAgICAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iJGRvYy9kb2N1bWVudC9ib2R5L2dvYWxzIiAvPgorICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPGRpdiBpZD0iZm9vdGVyIj4KKyAgICAgICAgICA8dGFibGUgc3R5bGU9J3dpZHRoOjEwMCUnIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSI0Ij4KKyAgICAgICAgICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSIkbmF2L2JvZHkvZm9vdGVyIi8+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICA8ajppZiB0ZXN0PSIkeyFlbXB0eShwb20ub3JnYW5pemF0aW9uLm5hbWUpfSI+CisgICAgICAgICAgICAgICAgICA8ajppZiB0ZXN0PSIkeyFlbXB0eShwb20uaW5jZXB0aW9uWWVhcil9Ij4KKyAgICAgICAgICAgICAgICAgICAgPGo6aWYgdGVzdD0iJHtwb20uaW5jZXB0aW9uWWVhciA9PSBtYXZlbkN1cnJlbnRZZWFyfSI+CisgICAgICAgICAgICAgICAgICAgICAgJiMxNjk7ICR7bWF2ZW5DdXJyZW50WWVhcn0sICR7cG9tLm9yZ2FuaXphdGlvbi5uYW1lfQorICAgICAgICAgICAgICAgICAgICA8L2o6aWY+CisgICAgICAgICAgICAgICAgICAgIDxqOmlmIHRlc3Q9IiR7cG9tLmluY2VwdGlvblllYXIgIT0gbWF2ZW5DdXJyZW50WWVhcn0iPgorICAgICAgICAgICAgICAgICAgICAgICYjMTY5OyAke3BvbS5pbmNlcHRpb25ZZWFyfS0ke21hdmVuQ3VycmVudFllYXJ9LCAke3BvbS5vcmdhbml6YXRpb24ubmFtZX0KKyAgICAgICAgICAgICAgICAgICAgPC9qOmlmPgorICAgICAgICAgICAgICAgICAgPC9qOmlmPgorICAgICAgICAgICAgICAgICAgPGo6aWYgdGVzdD0iJHtlbXB0eShwb20uaW5jZXB0aW9uWWVhcil9Ij4KKyAgICAgICAgICAgICAgICAgICAgJiMxNjk7ICR7bWF2ZW5DdXJyZW50WWVhcn0sICR7cG9tLm9yZ2FuaXphdGlvbi5uYW1lfQorICAgICAgICAgICAgICAgICAgPC9qOmlmPgorICAgICAgICAgICAgICAgIDwvajppZj4KKworICAgICAgICAgICAgICAgIDxqOmlmIHRlc3Q9IiR7ZGF0ZSA9PSAnYm90dG9tJ30iPgorICAgICAgICAgICAgICAgICAgLSBMYXN0IHB1Ymxpc2hlZDogJHtidWlsZC5kYXRlfQorICAgICAgICAgICAgICAgIDwvajppZj4KKyAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgPGo6aWYgdGVzdD0iJHtkYXRlID09ICdib3R0b20tcmlnaHQnfSI+CisgICAgICAgICAgICAgICAgPHRkIHN0eWxlPSd3aWR0aDogYXV0bzsgdGV4dC1hbGlnbjpyaWdodCc+TGFzdCBwdWJsaXNoZWQ6ICR7YnVpbGQuZGF0ZX08L3RkPgorICAgICAgICAgICAgICA8L2o6aWY+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvZGl2PgorICAgICAgPC94OmVsZW1lbnQ+CisgICAgPC9odG1sPgorICA8L2pzbDp0ZW1wbGF0ZT4KKworICA8IS0tIHByb2Nlc3MgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGRvYyAtLT4KKyAgPGpzbDp0ZW1wbGF0ZSBtYXRjaD0icHJvcGVydGllcyIgdHJpbT0iZmFsc2UiPgorICAgIDwhLS0gc3RpY2sgaGVhZCBibG9jayBoZXJlIGxhdGVyIC0tPgorICA8L2pzbDp0ZW1wbGF0ZT4KKworICA8IS0tIFByb2Nlc3MgYSBtZW51IGZvciB0aGUgbmF2aWdhdGlvbiBiYXIgLS0+CisgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9Im1lbnUiIHRyaW09ImZhbHNlIj4KKyAgICA8ZGl2PgorICAgICAgPHN0cm9uZz48eDpleHByIHNlbGVjdD0iQG5hbWUiLz48L3N0cm9uZz4KKyAgICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSJpdGVtIi8+CisgICAgPC9kaXY+CisgIDwvanNsOnRlbXBsYXRlPgorCisgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9Iml0ZW0iIHRyaW09ImZhbHNlIj4KKyAgICA8eDpzZXQgdmFyPSJpdGVtIiBzZWxlY3Q9Ii4iLz4KKyAgICA8eDpzZXQgdmFyPSJfbmFtZSIgc2VsZWN0PSJzdHJpbmcoQG5hbWUpIi8+CisgICAgPHg6c2V0IHZhcj0iX2xpbmsiIHNlbGVjdD0ic3RyaW5nKEBocmVmKSIvPgorICAgIDx4OnNldCB2YXI9Il9pbWciIHNlbGVjdD0ic3RyaW5nKEBpbWcpIi8+CisgICAgPHg6c2V0IHZhcj0iX2NoaWxkQ291bnQiIHNlbGVjdD0iY291bnQoLi9pdGVtKSIvPgorICAgIDxqOnNldCB2YXI9Il9pc0NvbGxhcHNlZCIgdmFsdWU9IiR7bmF2YmVhbi5pc0NvbGxhcHNlZChpdGVtLmdldCgwKSl9Ii8+CisgICAgPGo6c2V0IHZhcj0iX3N0YXRlIiB2YWx1ZT0ibm9uZSIvPgorICAgIAorICAgIDxqOmlmIHRlc3Q9IiR7X2NoaWxkQ291bnQuaW50VmFsdWUoKSBndCAwfSI+CisgICAgICAgIDxqOmlmIHRlc3Q9IiR7IV9pc0NvbGxhcHNlZH0iPgorICAgICAgICAgIDxqOnNldCB2YXI9Il9zdGF0ZSIgdmFsdWU9ImV4cGFuZGVkIi8+CisgICAgICAgIDwvajppZj4KKyAgICAgICAgPGo6aWYgdGVzdD0iJHtfaXNDb2xsYXBzZWR9Ij4KKyAgICAgICAgICA8ajpzZXQgdmFyPSJfc3RhdGUiIHZhbHVlPSJjb2xsYXBzZWQiLz4KKyAgICAgICAgPC9qOmlmPgorICAgIDwvajppZj4KKyAgICAgICAgICAgCisgICAgCisgICAgPGRpdj4KKyAgICAgIDxzbWFsbD4KKyAgICAgICAgPGo6aWYgdGVzdD0iJHtuYXZiZWFuLmlzU2VsZWN0ZWQoaXRlbS5nZXQoMCkpfSI+CisgICAgICAgICAgICA8Yj48ZG9jOml0ZW1MaW5rIG5hbWU9IiR7X25hbWV9IiBsaW5rPSIke19saW5rfSIgaW1nPSIke19pbWd9IiBzdGF0ZT0iJHtfc3RhdGV9Ii8+PC9iPgorICAgICAgICA8L2o6aWY+CisgICAgICAgIDxqOmlmIHRlc3Q9IiR7IW5hdmJlYW4uaXNTZWxlY3RlZChpdGVtLmdldCgwKSl9Ij4KKyAgICAgICAgICAgIDxkb2M6aXRlbUxpbmsgbmFtZT0iJHtfbmFtZX0iIGxpbms9IiR7X2xpbmt9IiBpbWc9IiR7X2ltZ30iIHN0YXRlPSIke19zdGF0ZX0iLz4KKyAgICAgICAgPC9qOmlmPgorICAgICAgPC9zbWFsbD4KKyAgICAgIDxqOmlmIHRlc3Q9IiR7IW5hdmJlYW4uaXNDb2xsYXBzZWQoaXRlbS5nZXQoMCkpfSI+CisgICAgICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSJpdGVtIi8+CisgICAgICA8L2o6aWY+CisgICAgPC9kaXY+CisgIDwvanNsOnRlbXBsYXRlPgorCisgIDwhLS0gUHJvY2VzcyB0aGUgYnJlYWRjcnVtYiBuYXZiYXIgLS0+CisgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9ImxpbmtzIiB0cmltPSJmYWxzZSI+CisgICAgPGo6c2V0IHZhcj0ibGlua0NvdW50IiB2YWx1ZT0iMSIvPgorICAgIDx4OmZvckVhY2ggdmFyPSJsaW5rIiBzZWxlY3Q9Iml0ZW0iPgorICAgICAgPGo6aWYgdGVzdD0iJHtsaW5rQ291bnQgIT0gMX0iPnw8L2o6aWY+CisgICAgICA8ajpzZXQgdmFyPSJfbmFtZSI+PHg6ZXhwciBzZWxlY3Q9IkBuYW1lIi8+PC9qOnNldD4KKyAgICAgIDxqOnNldCB2YXI9Il9saW5rIj48eDpleHByIHNlbGVjdD0iQGhyZWYiLz48L2o6c2V0PgorICAgICAgPGRvYzppdGVtTGluayBuYW1lPSIke19uYW1lfSIgbGluaz0iJHtfbGlua30iLz4KKyAgICAgIDxqOnNldCB2YXI9ImxpbmtDb3VudCIgdmFsdWU9IiR7MStsaW5rQ291bnR9Ii8+CisgICAgPC94OmZvckVhY2g+CisgIDwvanNsOnRlbXBsYXRlPgorCisgIDwhLS0gR29vZ2xlIHNpdGUgc2VhcmNoIC0tPgorICA8anNsOnRlbXBsYXRlIG1hdGNoPSJzZWFyY2giIHRyaW09ImZhbHNlIj4KKyAgICA8IS0tIFNlYXJjaCBjb2RlOiBodHRwOi8vd3d3Lmdvb2dsZS5jb20vc2VhcmNoY29kZS5odG1sIC0tPgorICAgIDwhLS0gR29vZ2xlIGxvZ29zOiBodHRwOi8vd3d3Lmdvb2dsZS5jb20vc3RpY2tlcnMuaHRtbCAtLT4KKyAgICA8IS0tIFRlcm1zOiBodHRwOi8vd3d3Lmdvb2dsZS5jb20uL3NlcnZpY2VzL3Rlcm1zX2ZyZWUuaHRtbCAtLT4KKyAgICA8ZGl2PgorICAgICAgPHN0cm9uZz5TZWFyY2ggJHtwb20ubmFtZX08L3N0cm9uZz4KKyAgICAgIDxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9zZWFyY2giPgorICAgICAgICA8YSBjbGFzcz0ibmF2bGluayIgaHJlZj0iaHR0cDovL3d3dy5nb29nbGUuY29tIj4KKyAgICAgICAgICA8aW1nIHNyYz0iaHR0cDovL3d3dy5nb29nbGUuY29tL2xvZ29zL0xvZ29fMjV3aHQuZ2lmIiAKKyAgICAgICAgICAgICAgIGFsdD0iR29vZ2xlIiBib3JkZXI9IjAiIC8+CisgICAgICAgIDwvYT48cC8+CisgICAgICAgIDxqOnNldCB2YXI9InNpdGVVUkwiIHZhbHVlPSIke3BvbS51cmx9Ii8+CisgICAgICAgIDwhLS0gZ29vZ2xlIGZhaWxzIG9uIHVybHMgdGhhdCBlbmQgd2l0aCAvIC0tPgorICAgICAgICA8ajppZiB0ZXN0PSIke3NpdGVVUkwuZW5kc1dpdGgoJy8nKX0iPgorICAgICAgICAgIDxqOnNldCB2YXI9IlVSTExlbmd0aCIgdmFsdWU9IiR7c2l0ZVVSTC5sZW5ndGgoKSAtIDF9Ii8+CisgICAgICAgICAgPGo6c2V0IHZhcj0ic2l0ZVVSTCIgdmFsdWU9IiR7c2l0ZVVSTC5zdWJzdHJpbmcoMCwgVVJMTGVuZ3RoLmludFZhbHVlKCkpfSIvPgorICAgICAgICA8L2o6aWY+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxNSIgbmFtZT0icSIgbWF4bGVuZ3RoPSIyNTUiIHZhbHVlPSIiLz4KKyAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdvIiBuYW1lPSJidG5HIi8+CisgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvbWFpbnMiIHZhbHVlPSIke3NpdGVVUkx9Ii8+CisgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2giIG5hbWU9InNpdGVzZWFyY2giIHZhbHVlPSIke3NpdGVVUkx9Ii8+CisgICAgICA8L2Zvcm0+CisgICAgPC9kaXY+CisgIDwvanNsOnRlbXBsYXRlPgorCisgIDwhLS0gcHJvY2VzcyBhIGRvY3VtZW50YXRpb24gc2VjdGlvbiAtLT4KKyAgPGpzbDp0ZW1wbGF0ZSBtYXRjaD0ic2VjdGlvbiIgdHJpbT0iZmFsc2UiPgorICAgIDxkaXYgY2xhc3M9ImgzIj4KKyAgICAgIDxqOnNldCB2YXI9Il9zZWN0aW9uTmFtZSI+PHg6ZXhwciBzZWxlY3Q9IkBuYW1lIi8+PC9qOnNldD4KKyAgICAgIDxqOmlmIHRlc3Q9IiR7IWVtcHR5KF9zZWN0aW9uTmFtZSl9Ij4KKyAgICAgICAgPGgzPgorICAgICAgICAgIDxhIG5hbWU9IiR7X3NlY3Rpb25OYW1lfSI+JHtfc2VjdGlvbk5hbWV9PC9hPgorICAgICAgICA8L2gzPgorICAgICAgPC9qOmlmPgorICAgICAgPGpzbDphcHBseVRlbXBsYXRlcyBzZWxlY3Q9IioiLz4KKyAgICA8L2Rpdj4KKyAgPC9qc2w6dGVtcGxhdGU+CisKKyAgPGpzbDp0ZW1wbGF0ZSBtYXRjaD0ic3Vic2VjdGlvbiIgdHJpbT0iZmFsc2UiPgorICAgIDxkaXYgY2xhc3M9Img0Ij4KKyAgICAgIDxqOnNldCB2YXI9Il9zZWN0aW9uTmFtZSI+PHg6ZXhwciBzZWxlY3Q9IkBuYW1lIi8+PC9qOnNldD4KKyAgICAgIDxqOmlmIHRlc3Q9IiR7IWVtcHR5KF9zZWN0aW9uTmFtZSl9Ij4KKyAgICAgICAgPGg0PgorICAgICAgICAgIDxhIG5hbWU9IiR7X3NlY3Rpb25OYW1lfSI+JHtfc2VjdGlvbk5hbWV9PC9hPgorICAgICAgICA8L2g0PgorICAgICAgPC9qOmlmPgorICAgICAgPGpzbDphcHBseVRlbXBsYXRlcyBzZWxlY3Q9IioiLz4KKyAgICA8L2Rpdj4KKyAgPC9qc2w6dGVtcGxhdGU+CisKKyAgPGpzbDp0ZW1wbGF0ZSBtYXRjaD0ic291cmNlIiB0cmltPSJmYWxzZSI+CisgICAgPGRpdiBpZD0ic291cmNlIj4KKyAgICAgIDxwcmU+PHg6ZXhwciBzZWxlY3Q9Ii4iLz48L3ByZT4KKyAgICA8L2Rpdj4KKyAgPC9qc2w6dGVtcGxhdGU+CisKKyAgPGpzbDp0ZW1wbGF0ZSBtYXRjaD0iZm9vdGVyIiB0cmltPSJmYWxzZSI+CisgICAgPHRyPgorICAgICAgPHRkPgorICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iKiIvPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICA8L2pzbDp0ZW1wbGF0ZT4KKworICA8anNsOnRlbXBsYXRlIG1hdGNoPSJ0YWJsZSIgdHJpbT0iZmFsc2UiPgorICAgIDxqOnNldCB2YXI9InJvd2NvdW50IiB2YWx1ZT0iMCIvPgorICAgIDx0YWJsZSBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjIiIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiPgorICAgICAgPGpzbDphcHBseVRlbXBsYXRlcyBzZWxlY3Q9IioiLz4KKyAgICA8L3RhYmxlPgorICA8L2pzbDp0ZW1wbGF0ZT4KKworICA8anNsOnRlbXBsYXRlIG1hdGNoPSJ0ciIgdHJpbT0iZmFsc2UiPgorICAgIDxqOmNob29zZT4KKyAgICAgIDxqOndoZW4gdGVzdD0iJHtyb3dNb2RlID09ICdhJ30iPgorICAgICAgICA8ajpzZXQgdmFyPSJyb3dNb2RlIiB2YWx1ZT0iYiIvPgorICAgICAgPC9qOndoZW4+CisgICAgICA8ajpvdGhlcndpc2U+CisgICAgICAgIDxqOnNldCB2YXI9InJvd01vZGUiIHZhbHVlPSJhIi8+CisgICAgICA8L2o6b3RoZXJ3aXNlPgorICAgIDwvajpjaG9vc2U+CisKKyAgICA8IS0tIGNvcHkgYXR0cmlidXRlcyBGSVhNRTogU2hvdWxkbid0IHRoaXMgb25seSBiZSBjb2xzcGFufHJvd3NwYW4/IC0tPgorICAgIDx4OmVsZW1lbnQgbmFtZT0idHIiPjxqOndoaXRlc3BhY2UgdHJpbT0idHJ1ZSI+CisgICAgICA8eDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPiR7cm93TW9kZX08L3g6YXR0cmlidXRlPgorICAgICAgPHg6Zm9yRWFjaCB2YXI9ImF0dHIiIHNlbGVjdD0iQCoiPgorICAgICAgICA8eDphdHRyaWJ1dGUgbmFtZT0iJHthdHRyLm5hbWV9Ij4ke2F0dHIudmFsdWV9PC94OmF0dHJpYnV0ZT4KKyAgICAgIDwveDpmb3JFYWNoPgorICAgICAgPGpzbDphcHBseVRlbXBsYXRlcyBzZWxlY3Q9IioiLz4KKzwvajp3aGl0ZXNwYWNlPjwveDplbGVtZW50PgorICA8L2pzbDp0ZW1wbGF0ZT4KKworICA8IS0tKioqKioqKioqKioqKioqKioqKioqKioqLS0+CisgIDwhLS0gZ2xvc3NhcnkgZG9jdW1lbnRhdGlvbiAtLT4KKyAgPCEtLSoqKioqKioqKioqKioqKioqKioqKioqKi0tPgorICA8anNsOnRlbXBsYXRlIG1hdGNoPSJnbG9zc2FyeSIgdHJpbT0iZmFsc2UiPgorICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSJnbG9zc2FyeS1lbnRyaWVzL2dsb3NzYXJ5LWVudHJ5IiAvPgorICA8L2pzbDp0ZW1wbGF0ZT4KKyAgICAgIAorICA8anNsOnRlbXBsYXRlIG1hdGNoPSJnbG9zc2FyeS1lbnRyeSIgdHJpbT0iZmFsc2UiPgorICAgIDxzdHJvbmc+PHg6ZXhwciBzZWxlY3Q9Im5hbWUiIC8+PC9zdHJvbmc+CisgICAgPGJyLz4KKyAgICA8eDpleHByIHNlbGVjdD0iZGVmaW5pdGlvbiIgLz4KKyAgICA8cC8+CisgIDwvanNsOnRlbXBsYXRlPgorCisgICAgICA8IS0tKioqKioqKioqKioqKioqKioqKioqKioqLS0+CisgICAgICA8IS0tIGdvYWxzIGRvY3VtZW50YXRpb24gICAgLS0+CisgICAgICA8IS0tKioqKioqKioqKioqKioqKioqKioqKioqLS0+CisgICAgICA8anNsOnRlbXBsYXRlIG1hdGNoPSJnb2FscyIgdHJpbT0iZmFsc2UiPgorICAgICAgICA8IS0tIHJlc2V0IHJvdyBhbHRlcm5hdGlvbiAtLT4KKyAgICAgICAgPGo6c2V0IHZhcj0icm93TW9kZSIgdmFsdWU9IiIgLz4KKyAgICAgICAgPGRpdiBjbGFzcz0iaDMiPgorICAgICAgICAgIDxoMz48YSBuYW1lPSJHb2FscyI+R29hbHM8L2E+PC9oMz4KKyAgICAgICAgICA8dGFibGU+CisgICAgICAgICAgICA8dHIgd2lkdGg9JzEwMCUnPjx0aD5Hb2FsPC90aD48dGg+RGVzY3JpcHRpb248L3RoPjwvdHI+CisgICAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iZ29hbCIvPgorICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvZGl2PgorICAgICAgPC9qc2w6dGVtcGxhdGU+CisgICAgICAKKyAgICAgIDwhLS0gYSBnb2FsIC0tPgorICAgICAgICA8IS0tIEZJWE1FOiB0aGlzIGlzIGNvcGllZCBmcm9tIHRyIC0gdGhlcmUgbXVzdCBiZSBhIHdheSBvZgorICAgICAgICAgICAgIGNhbGxpbmcgdGVtcGxhdGVzIGluIGpzbD8gLS0+CisgICAgICA8anNsOnRlbXBsYXRlIG1hdGNoPSJnb2FsIiB0cmltPSJmYWxzZSI+CisgICAgICAgIDxqOmNob29zZT4KKyAgICAgICAgICA8ajp3aGVuIHRlc3Q9IiR7cm93TW9kZSA9PSAnYSd9Ij4KKyAgICAgICAgICAgIDxqOnNldCB2YXI9InJvd01vZGUiIHZhbHVlPSJiIi8+CisgICAgICAgICAgPC9qOndoZW4+CisgICAgICAgICAgPGo6b3RoZXJ3aXNlPgorICAgICAgICAgICAgPGo6c2V0IHZhcj0icm93TW9kZSIgdmFsdWU9ImEiLz4KKyAgICAgICAgICA8L2o6b3RoZXJ3aXNlPgorICAgICAgICA8L2o6Y2hvb3NlPgorICAgICAgICAKKyAgICAgICAgPHg6ZWxlbWVudCBuYW1lPSJ0ciI+PGo6d2hpdGVzcGFjZSB0cmltPSJ0cnVlIj4KKyAgICAgICAgICA8eDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPiR7cm93TW9kZX08L3g6YXR0cmlidXRlPgorICAgICAgICAgIDxqOnNldCB2YXI9Il9nb2FsTmFtZSI+PHg6ZXhwciBzZWxlY3Q9Ii4vbmFtZSIgLz48L2o6c2V0PgorICAgICAgICAgIDx0ZCB3aWR0aD0nMjAlJz48YSBuYW1lPSIke19nb2FsTmFtZX0iPiR7X2dvYWxOYW1lfTwvYT48L3RkPgorICAgICAgICAgIDx0ZCB3aWR0aD0nODAlJz48anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iZGVzY3JpcHRpb24iIC8+PC90ZD4KKzwvajp3aGl0ZXNwYWNlPjwveDplbGVtZW50PgorICAgICAgPC9qc2w6dGVtcGxhdGU+ICAgCisgICAgICAKKyAgICAgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9ImRlc2NyaXB0aW9uIj4KKyAgICAgICAgPGpzbDpjb3B5IHRyaW09ImZhbHNlIj4KKyAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHRyaW09ImZhbHNlIi8+CisgICAgICAgIDwvanNsOmNvcHk+CisgICAgICA8L2pzbDp0ZW1wbGF0ZT4KKworICAgICAgPCEtLSoqKioqKioqKioqKioqKioqKioqKioqKi0tPgorICAgICAgPCEtLSBjaGFuZ2Vsb2cgZG9jdW1lbnRhdGlvbi0tPgorICAgICAgPCEtLSoqKioqKioqKioqKioqKioqKioqKioqKi0tPgorICAgICAgPGpzbDp0ZW1wbGF0ZSBtYXRjaD0iY2hhbmdlbG9nIiB0cmltPSJmYWxzZSI+CisgICAgICAgIDxqOnNldCB2YXI9InJvd01vZGUiIHZhbHVlPSIiIC8+CisgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRoPkRhdGU8L3RoPjx0aD5BdXRob3I8L3RoPjx0aD5GaWxlcy9NZXNzYWdlPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSJjaGFuZ2Vsb2ctZW50cnkiIC8+CisgICAgICAgIDwvdGFibGU+CisgICAgICA8L2pzbDp0ZW1wbGF0ZT4KKworICAgICAgPCEtLSB0cmFuc2Zvcm0gYSBjaGFuZ2Vsb2cgZW50cnkgLS0+CisgICAgICA8IS0tIEZJWE1FOiB0ciBjb2RlIGNvcGllZCBmcm9tIGFib3ZlIC0tPgorICAgICAgPGpzbDp0ZW1wbGF0ZSBtYXRjaD0iY2hhbmdlbG9nLWVudHJ5IiB0cmltPSJmYWxzZSI+CisgICAgICAgIDxqOmNob29zZT4KKyAgICAgICAgICA8ajp3aGVuIHRlc3Q9IiR7cm93TW9kZSA9PSAnYSd9Ij4KKyAgICAgICAgICAgIDxqOnNldCB2YXI9InJvd01vZGUiIHZhbHVlPSJiIi8+CisgICAgICAgICAgPC9qOndoZW4+CisgICAgICAgICAgPGo6b3RoZXJ3aXNlPgorICAgICAgICAgICAgPGo6c2V0IHZhcj0icm93TW9kZSIgdmFsdWU9ImEiLz4KKyAgICAgICAgICA8L2o6b3RoZXJ3aXNlPgorICAgICAgICA8L2o6Y2hvb3NlPgorICAgICAgICAKKyAgICAgICAgPHg6ZWxlbWVudCBuYW1lPSJ0ciI+PGo6d2hpdGVzcGFjZSB0cmltPSJ0cnVlIj4KKyAgICAgICAgICA8eDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPiR7cm93TW9kZX08L3g6YXR0cmlidXRlPgorICAgICAgICAgIAorICAgICAgICAgIDx0ZD48eDpleHByIHNlbGVjdD0iZGF0ZSIgLz4gPHg6ZXhwciBzZWxlY3Q9InRpbWUiIC8+PC90ZD4KKyAgICAgICAgICA8dGQ+PHg6ZXhwciBzZWxlY3Q9ImF1dGhvciIvPjwvdGQ+CisgICAgICAgICAgPHRkPjxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSIqIiAvPgorICAgICAgICAgICAgPHByZT48eDpleHByIHNlbGVjdD0ibXNnIi8+PC9wcmU+CisgICAgICAgICAgPC90ZD4KKzwvajp3aGl0ZXNwYWNlPjwveDplbGVtZW50PgorICAgICAgPC9qc2w6dGVtcGxhdGU+CisKKyAgICAgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9ImZpbGUiPgorICAgICAgICA8ajpzZXQgdmFyPSJ1cmwiPiR7cG9tLnJlcG9zaXRvcnkudXJsfTx4OmV4cHIgc2VsZWN0PSJuYW1lIi8+PC9qOnNldD4KKyAgICAgICAgPGo6c2V0IHZhcj0icmV2VXJsIj4ke3VybH0/PHg6ZXhwciBzZWxlY3Q9InJldmlzaW9uIi8+JmFtcDtjb250ZW50LXR5cGU9dGV4dC92bmQudmlld2N2cy1tYXJrdXA8L2o6c2V0PgorICAgICAgICA8YSBocmVmPSIke3VybH0iPjx4OmV4cHIgc2VsZWN0PSJuYW1lIi8+PC9hPiAtIAorICAgICAgICA8YSBocmVmPSIke3JldlVybH0iPnY8eDpleHByIHNlbGVjdD0icmV2aXNpb24iLz48L2E+CisgICAgICAgIDxici8+CisgICAgICA8L2pzbDp0ZW1wbGF0ZT4KKworICA8IS0tIHJlbW92ZSB0aGUgc3BhY2UgYXQgdGhlIGVuZCBvZiBwYXJzZWQgImEiIGFuY2hvcnMgLS0+CisgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9ImEiIHRyaW09ImZhbHNlIj4KKyAgICA8anNsOmNvcHkgdHJpbT0idHJ1ZSI+CisgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHRyaW09InRydWUiLz4KKyAgICA8L2pzbDpjb3B5PgorICA8L2pzbDp0ZW1wbGF0ZT4KKworICA8IS0tIGNvcHkgYW55IG90aGVyIGVsZW1lbnRzIHRocm91Z2ggLS0+CisgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9IioiIHRyaW09ImZhbHNlIj48anNsOmNvcHkgdHJpbT0iZmFsc2UiPgorICAgICAgPGpzbDphcHBseVRlbXBsYXRlcyB0cmltPSJmYWxzZSIvPjwvanNsOmNvcHk+PC9qc2w6dGVtcGxhdGU+CisKKyAgIDwhLS0gZWxlbWVudCB2YWx1ZXMgZG9uJ3QgcGFzcyB0aHJvdWdoIGFzIHRleHQgLS0+CisgICA8anNsOnRlbXBsYXRlIG1hdGNoPSJAKiIvPgorCisgICA8IS0tIENEQVRBIGFuZCB0ZXh0IG5vZGVzIHBhc3MtdGhydSAtLT4KKyAgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9InRleHQoKSI+PHg6ZXhwciBzZWxlY3Q9Ii4iLz48L2pzbDp0ZW1wbGF0ZT4KKworPC9qc2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS90YWdsaWIvTElDRU5TRS5DaGVja1N0eWxlIGIvYnVpbGQtbGVnYWN5L3RhZ2xpYi9MSUNFTlNFLkNoZWNrU3R5bGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGI1N2YxYgotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS90YWdsaWIvTElDRU5TRS5DaGVja1N0eWxlCkBAIC0wLDAgKzEsMTkgQEAKKy9cKlxzKgorIFwqXHMqXCRIZWFkZXIuKlwkCisgXCpccypcJFJldmlzaW9uLipcJAorIFwqXHMqXCREYXRlLipcJAorIFwqXHMqCisgXCpccypDb3B5cmlnaHQgXGR7NH0oLVxkezR9fCxcZHs0fSkqIFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvblwuCisgXCpccyoKKyBcKlxzKkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyXC4wIFwodGhlICJMaWNlbnNlIlwpOworIFwqXHMqeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlXC4KKyBcKlxzKllvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIFwqXHMqCisgXCpccypodHRwOi8vd3d3XC5hcGFjaGVcLm9yZy9saWNlbnNlcy9MSUNFTlNFXC0yXC4wCisgXCpccyoKKyBcKlxzKlVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyBcKlxzKmRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgXCpccypXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZFwuCisgXCpccypTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgXCpccypsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZVwuCisgXCovXHMqCmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvdGFnbGliL2NvbmYvY2FjdHVzLXdlYi54bWwgYi9idWlsZC1sZWdhY3kvdGFnbGliL2NvbmYvY2FjdHVzLXdlYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTA2ZWJiMQotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS90YWdsaWIvY29uZi9jYWN0dXMtd2ViLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzwhLS0gDQorLyoNCisgKiBDb3B5cmlnaHQgMjAwMS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKiANCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQorIC0tPg0KKw0KKzwhRE9DVFlQRSB3ZWItYXBwIFBVQkxJQyAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIFdlYiBBcHBsaWNhdGlvbiAyLjMvL0VOIiAiaHR0cDovL2phdmEuc3VuLmNvbS9kdGQvd2ViLWFwcF8yXzMuZHRkIj4NCisNCis8d2ViLWFwcD4NCis8L3dlYi1hcHA+DQpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L3RhZ2xpYi9jb25mL21lcmdlL2dsb2JhbC1mb3J3YXJkcy54bWwgYi9idWlsZC1sZWdhY3kvdGFnbGliL2NvbmYvbWVyZ2UvZ2xvYmFsLWZvcndhcmRzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NTAyMzYwCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L3RhZ2xpYi9jb25mL21lcmdlL2dsb2JhbC1mb3J3YXJkcy54bWwKQEAgLTAsMCArMSwxMCBAQAorPGdsb2JhbC1mb3J3YXJkcz4NCisNCisgICAgPGZvcndhcmQgbmFtZT0ic2ltcGxlRm9yd2FyZCINCisgICAgICAgICAgICAgcGF0aD0iL3BhdGgvdG8vbm9uL2V4aXN0aW5nL2pzcC5qc3AiLz4NCisNCisgICAgPGZvcndhcmQgbmFtZT0idGVzdEluY2x1ZGVUYWdGb3J3YXJkIg0KKyAgICAgICAgICAgICBwYXRoPSIvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcmVzb3VyY2VzL0luY2x1ZGVUYWdUZXN0LmpzcCIvPg0KKw0KKzwvZ2xvYmFsLWZvcndhcmRzPg0KKw0KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS90YWdsaWIvY29uZi9tZXJnZS9zZXJ2bGV0LW1hcHBpbmdzLnhtbCBiL2J1aWxkLWxlZ2FjeS90YWdsaWIvY29uZi9tZXJnZS9zZXJ2bGV0LW1hcHBpbmdzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMjFmODVjCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L3RhZ2xpYi9jb25mL21lcmdlL3NlcnZsZXQtbWFwcGluZ3MueG1sCkBAIC0wLDAgKzEsNCBAQAorPHNlcnZsZXQtbWFwcGluZz4NCisgICAgPHNlcnZsZXQtbmFtZT5hY3Rpb248L3NlcnZsZXQtbmFtZT4NCisgICAgPHVybC1wYXR0ZXJuPiouZG88L3VybC1wYXR0ZXJuPg0KKzwvc2VydmxldC1tYXBwaW5nPg0KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS90YWdsaWIvY29uZi9tZXJnZS9zZXJ2bGV0cy54bWwgYi9idWlsZC1sZWdhY3kvdGFnbGliL2NvbmYvbWVyZ2Uvc2VydmxldHMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc2NDdiZDIKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvdGFnbGliL2NvbmYvbWVyZ2Uvc2VydmxldHMueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzxzZXJ2bGV0Pg0KKyAgICA8c2VydmxldC1uYW1lPmFjdGlvbjwvc2VydmxldC1uYW1lPg0KKyAgICA8c2VydmxldC1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldDwvc2VydmxldC1jbGFzcz4NCisgICAgPGluaXQtcGFyYW0+DQorICAgICAgICA8cGFyYW0tbmFtZT5jb25maWc8L3BhcmFtLW5hbWU+DQorICAgICAgICA8cGFyYW0tdmFsdWU+L1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWw8L3BhcmFtLXZhbHVlPg0KKyAgICA8L2luaXQtcGFyYW0+DQorICAgIDxsb2FkLW9uLXN0YXJ0dXA+MTwvbG9hZC1vbi1zdGFydHVwPg0KKzwvc2VydmxldD4NCisNCisgICAgICAgIDwhLS0gW0lOU0VSVCBGUkFHTUVOVCBIRVJFXSAtLT4NCisNCmRpZmYgLS1naXQgYS9idWlsZC1sZWdhY3kvdGFnbGliL2NvbmYvbWVyZ2Uvc3RydXRzLWFjdGlvbnMueG1sIGIvYnVpbGQtbGVnYWN5L3RhZ2xpYi9jb25mL21lcmdlL3N0cnV0cy1hY3Rpb25zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZmUwN2VlCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L3RhZ2xpYi9jb25mL21lcmdlL3N0cnV0cy1hY3Rpb25zLnhtbApAQCAtMCwwICsxLDE5IEBACis8YWN0aW9uIHBhdGg9Ii90ZXN0SW5jbHVkZVRhZ1RyYW5zYWN0aW9uIg0KKyAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4ucmVzb3VyY2VzLkluY2x1ZGVUYWdUcmFuc2FjdGlvblRlc3RBY3Rpb24iPg0KKyAgICA8Zm9yd2FyZCBuYW1lPSJzdWNjZXNzIg0KKyAgICAgICAgICAgICBwYXRoPSIvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcmVzb3VyY2VzL0luY2x1ZGVUYWdUZXN0LmpzcCIvPg0KKzwvYWN0aW9uPg0KKw0KKzxhY3Rpb24gcGF0aD0iL3NpbXBsZUFjdGlvbiINCisgICAgICAgIHR5cGU9ImRvZXMubm90LmV4aXN0LlNpbXBsZUFjdGlvbiI+DQorICAgIDxmb3J3YXJkIG5hbWU9InN1Y2Nlc3MiDQorICAgICAgICAgICAgIHBhdGg9Ii9kb2VzL25vdC9leGlzdC9qc3AuanNwIi8+DQorPC9hY3Rpb24+DQorDQorPGFjdGlvbiBwYXRoPSIvdGVzdEZvcm1UYWciDQorICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5yZXNvdXJjZXMuRm9ybVRhZ1Rlc3RBY3Rpb24iDQorICAgICAgICBuYW1lPSJ0ZXN0Rm9ybUJlYW4iDQorICAgICAgICBzY29wZT0icmVxdWVzdCI+DQorICAgIDxmb3J3YXJkIG5hbWU9InN1Y2Nlc3MiDQorICAgICAgICAgICAgIHBhdGg9Ii9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXN0Rm9ybVRhZzEuanNwIi8+DQorPC9hY3Rpb24+DQpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L3RhZ2xpYi9jb25mL21lcmdlL3N0cnV0cy1mb3Jtcy54bWwgYi9idWlsZC1sZWdhY3kvdGFnbGliL2NvbmYvbWVyZ2Uvc3RydXRzLWZvcm1zLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNmQ0YWZlCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L3RhZ2xpYi9jb25mL21lcmdlL3N0cnV0cy1mb3Jtcy54bWwKQEAgLTAsMCArMSwxMiBAQAorPGZvcm0tYmVhbiBuYW1lPSJ0ZXN0RHluYUZvcm1CZWFuIg0KKyAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLkR5bmFWYWxpZGF0b3JGb3JtIj4NCisgICAgPGZvcm0tcHJvcGVydHkgbmFtZT0iZmllbGQxIiB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIi8+DQorICAgIDxmb3JtLXByb3BlcnR5IG5hbWU9ImZpZWxkMiIgdHlwZT0iamF2YS5sYW5nLlN0cmluZyIvPg0KKzwvZm9ybS1iZWFuPg0KKw0KKw0KKyAgICAgICAgPCEtLSBSZWdpc3RyYXRpb24gZm9ybSBiZWFuIC0tPg0KKzxmb3JtLWJlYW4gbmFtZT0idGVzdEZvcm1CZWFuIg0KKyAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLlNpbXBsZUJlYW5Gb3JUZXN0aW5nIi8+DQorDQorDQpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L3RhZ2xpYi9jb25mL21lcmdlL3N0cnV0cy1tZXNzYWdlLXJlc291cmNlcy54bWwgYi9idWlsZC1sZWdhY3kvdGFnbGliL2NvbmYvbWVyZ2Uvc3RydXRzLW1lc3NhZ2UtcmVzb3VyY2VzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZWMyZDcyCi0tLSAvZGV2L251bGwKKysrIGIvYnVpbGQtbGVnYWN5L3RhZ2xpYi9jb25mL21lcmdlL3N0cnV0cy1tZXNzYWdlLXJlc291cmNlcy54bWwKQEAgLTAsMCArMSw2IEBACis8bWVzc2FnZS1yZXNvdXJjZXMNCisgICAgICAgIHBhcmFtZXRlcj0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4ucmVzb3VyY2VzLkFwcGxpY2F0aW9uUmVzb3VyY2VzIi8+DQorDQorPG1lc3NhZ2UtcmVzb3VyY2VzDQorICAgICAgICBwYXJhbWV0ZXI9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLnJlc291cmNlcy5BbHRlcm5hdGVBcHBsaWNhdGlvblJlc291cmNlcyINCisgICAgICAgIGtleT0iYWx0ZXJuYXRlIi8+DQpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L3RhZ2xpYi9jb25mL3FhL0NoZWNrU3R5bGUueG1sIGIvYnVpbGQtbGVnYWN5L3RhZ2xpYi9jb25mL3FhL0NoZWNrU3R5bGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2ZDYxNTMKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvdGFnbGliL2NvbmYvcWEvQ2hlY2tTdHlsZS54bWwKQEAgLTAsMCArMSwxMzEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIG1vZHVsZSBQVUJMSUMKKyAgICAgICAgIi0vL1B1cHB5IENyYXdsLy9EVEQgQ2hlY2sgQ29uZmlndXJhdGlvbiAxLjEvL0VOIgorICAgICAgICAiaHR0cDovL3d3dy5wdXBweWNyYXdsLmNvbS9kdGRzL2NvbmZpZ3VyYXRpb25fMV8xLmR0ZCI+CisKKworPCEtLQorICAKKyAgVGhlc2UgY2hlY2tzIHN0aWxsIG5lZWQgdG8gYmUgVm90ZWQgb24gZm9yIFZhbGlkYXRvciwgYnV0CisgIGF0IGxlYXN0IHNlcnZlIHRvIGN1dCBkb3duIG9uIHNvbWUgb2YgdGhlIG5vaXNlLiAKKworCisgIEEgQ2hlY2tzdHlsZSBjb25maWd1cmF0aW9uIHRoYXQgY2hlY2tzIGFnYWluc3QgdGhlIHJlY29tbWVuZGF0aW9ucworICBpbiBKb3NodWEgQmxvY2gsIEVmZmVjdGl2ZSBKYXZhIChoaWdobGl5IHJlY29tbWVuZGVkIHJlYWQhKQorCisgIFRoaXMgZmlsZSBkb2VzIE5PVCBkdXBsaWNhdGUgdGhlIGNoZWNrcyBmb3Igd2hpdGVzcGFjZSBzZXR0aW5ncywKKyAgcGxhY2VtZW50IG9mIGN1cmx5IGJyYWNlcywgZXRjLiAgT25seSB0aGUgcnVsZXMgdGhhdCBhcmUgZXhwbGljaXRseQorICBtZW50aW9uZWQgaW4gdGhlIGJvb2sgYXJlIGVuZm9yY2VkLgorCisgIEN1cnJlbnRseSB0aGUgYW1vdW50IG9mIHJ1bGVzIHRoYXQgY2FuIGJlIGF1dG9tYXRpY2FsbHkgY2hlY2tlZCBieQorICBDaGVja3N0eWxlIGlzIG5vdCB2ZXJ5IGxhcmdlLCBidXQgYWRkaW5nIG1vcmUgY2hlY2tzIG9mIHRoaXMgcXVhbGl0eQorICBpcyBhIGhpZ2ggcHJpb3JpdHkgZ29hbCBmb3IgdGhlIGRldmVsb3BtZW50IHRlYW0uCisKKy0tPgorCis8bW9kdWxlIG5hbWU9IkNoZWNrZXIiPgorCisgICAgPG1vZHVsZSBuYW1lPSJUcmVlV2Fsa2VyIj4KKworICAgICAgICA8IS0tIEl0ZW0gNCAtIEF2b2lkIGNyZWF0aW5nIGR1cGxpY2F0ZSBvYmplY3RzIC0tPgorICAgICAgICA8bW9kdWxlIG5hbWU9IklsbGVnYWxJbnN0YW50aWF0aW9uIj4KKyAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjbGFzc2VzIgorICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJqYXZhLmxhbmcuQm9vbGVhbiwgamF2YS5sYW5nLlN0cmluZyIvPgorICAgICAgICA8L21vZHVsZT4KKworICAgICAgICA8IS0tIEl0ZW0gNiAtIEF2b2lkIGZpbmFsaXplcnMgLS0+CisgICAgICAgIDwhLS0gdGhpcyB3aWxsIG5vdCBmaW5kIHZpb2xhdGlvbnMgdGhhdCBjb250YWluIGxpbmVicmVha3MgLS0+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iR2VuZXJpY0lsbGVnYWxSZWdleHAiPgorICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImZvcm1hdCIKKyAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iKChwdWJsaWMpfChwcm90ZWN0ZWQpKVxzK3ZvaWRccytmaW5hbGl6ZVwoXHMqXCkiLz4KKyAgICAgICAgPC9tb2R1bGU+CisKKyAgICAgICAgPCEtLSBJdGVtIDggLSBBbHdheXMgb3ZlcnJpZGUgaGFzaENvZGUgd2hlbiB5b3Ugb3ZlcnJpZGUgZXF1YWxzIC0tPgorICAgICAgICA8bW9kdWxlIG5hbWU9IkVxdWFsc0hhc2hDb2RlIi8+CisKKyAgICAgICAgPCEtLSBJdGVtIDEyIC0gTWFrZSBhbGwgZmllbGRzIHByaXZhdGUgLS0+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iVmlzaWJpbGl0eU1vZGlmaWVyIi8+CisKKyAgICAgICAgPCEtLSBJdGVtIDE1IC0gRGVzaWduIGFuZCBkb2N1bWVudCBmb3IgaW5oZXJpdGFuY2Ugb3IgZWxzZSBwcm9oaWJpdCBpdCAtLT4KKyAgICAgICAgPCEtLSB0aGUgbW9kdWxlIGFjdHVhbGx5IGltcGxlbWVudHMgYSB2ZXJ5IHN0cmljdCBydWxlLCBpdCB3b3VsZCBiZQoraW50ZXJlc3RpbmcgdG8ga25vdyB3aGV0aGVyIEpvc2h1YSBtZWFudCB3aGF0IGNoZWNrc3R5bGUgaW1wbGVtZW50cy4KK1dlIGZlZWwgdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyB3ZWxsIHN1aXRlZCBhcyBhIHdhcm5pbmcsCitpLmUuIGlmIHlvdSBnZXQgZXJyb3IgbWVzc2FnZXMgZnJvbSB0aGlzIGNoZWNrIHlvdSBzaG91bGQgYmUKK2FibGUgdG8gbmFtZSBhIGdvb2QgcmVhc29uIHRvIGltcGxlbWVudCB5b3VyIGNvZGUgdGhlIHdheSB5b3UgZG8gaXQsCitlc3BlY2lhbGx5IGlmIHlvdSBhcmUgZGVzaWduaW5nIGEgbGlicmFyeSBhbmQgbm90IGFuIGFwcGxpY2F0aW9uLiAtLT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJEZXNpZ25Gb3JFeHRlbnNpb24iPgorICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InNldmVyaXR5IiB2YWx1ZT0id2FybmluZyIvPgorICAgICAgICA8L21vZHVsZT4KKworICAgICAgICA8IS0tIEl0ZW0gMTcgLSBVc2UgaW50ZXJmYWNlcyBvbmx5IHRvIGRlZmluZSB0eXBlcyAtLT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJJbnRlcmZhY2VJc1R5cGUiLz4KKworICAgICAgICA8IS0tIEl0ZW0gMjUgLSBEZXNpZ24gbWV0aG9kIHNpZ25hdHVyZXMgY2FyZWZ1bGx5IC0tPgorICAgICAgICA8IS0tIEF2b2lkIGxvbmcgcGFyYW1ldGVyIGxpc3RzIC0tPgorICAgICAgICA8bW9kdWxlIG5hbWU9IlBhcmFtZXRlck51bWJlciI+CisgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibWF4IiB2YWx1ZT0iMyIvPgorICAgICAgICA8L21vZHVsZT4KKworICAgICAgICA8IS0tIEl0ZW0gMjYgLSBVc2Ugb3ZlcmxvYWRpbmcganVkaWNpb3VzbHkgLS0+CisgICAgICAgIDwhLS0gcmZlICM2NTk3MzUgLS0+CisKKyAgICAgICAgPCEtLSBJdGVtIDI3IC0gUmV0dXJuIHplcm8tbGVuZ3RoIGFycmF5LCBub3QgbnVsbHMgLS0+CisgICAgICAgIDwhLS0gbm8gcmZlIHlldCAtLT4KKworICAgICAgICA8IS0tIEl0ZW0gMjggLSBXcml0ZSBkb2MgY29tbWVudHMgZm9yIGFsbCBleHBvc2VkIEFQSSBlbGVtZW50cyAtLT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJKYXZhZG9jVHlwZSI+CisgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ic2NvcGUiIHZhbHVlPSJwcm90ZWN0ZWQiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iSmF2YWRvY01ldGhvZCI+IDwhLS0gYWxzbyBjb3ZlcnMgSXRlbSA0NCAtLT4KKyAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzY29wZSIgdmFsdWU9InByb3RlY3RlZCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJKYXZhZG9jVmFyaWFibGUiPgorICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InNjb3BlIiB2YWx1ZT0icHJvdGVjdGVkIi8+CisgICAgICAgIDwvbW9kdWxlPgorCisgICAgICAgIDwhLS0gSXRlbSAyOSAtIE1pbmltaXplIHRoZSBzY29wZSBvZiBsb2NhbCB2YXJpYWJsZXMgLS0+CisgICAgICAgIDwhLS0gbm8gcmZlIHlldCAtLT4KKworCisgICAgICAgIDwhLS0gSXRlbSAzOCAtIEFkaGVyZSB0byBnZW5lcmFsbHkgYWNjZXB0ZWQgbmFtaW5nIGNvbnZlbnRpb25zIC0tPgorICAgICAgICA8bW9kdWxlIG5hbWU9IlBhY2thZ2VOYW1lIj4KKyAgICAgICAgICAgIDwhLS0gbm8gdXBwZXJjYXNlIGxldHRlcnMsIGJldHdlZW4gMiBhbmQgMTAgY2hhcmFjdGVycyAtLT4KKyAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJmb3JtYXQiIHZhbHVlPSJeW2Etel0rKFwuW2Etel1bYS16MC05XXsxLDl9KSokIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9IlR5cGVOYW1lIi8+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iQ29uc3RhbnROYW1lIi8+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iTG9jYWxGaW5hbFZhcmlhYmxlTmFtZSIvPgorICAgICAgICA8bW9kdWxlIG5hbWU9IkxvY2FsVmFyaWFibGVOYW1lIi8+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iTWVtYmVyTmFtZSIvPgorICAgICAgICA8bW9kdWxlIG5hbWU9Ik1ldGhvZE5hbWUiLz4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJQYXJhbWV0ZXJOYW1lIi8+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iU3RhdGljVmFyaWFibGVOYW1lIi8+CisKKyAgICAgICAgPCEtLSBJdGVtIDQ3IC0gRG9uJ3QgaWdub3JlIGV4Y2VwdGlvbnMgLS0+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iRW1wdHlCbG9jayI+CisgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idG9rZW5zIiB2YWx1ZT0iTElURVJBTF9DQVRDSCIvPgorICAgICAgICAgICAgPCEtLSByZXF1aXJlIGEgY29tbWVudCwgY2hhbmdlIHRvIHN0bXQgdG8gcmVxdWlyZSBhIHN0YXRlbWVudCAtLT4KKyAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJvcHRpb24iIHZhbHVlPSJ0ZXh0Ii8+CisgICAgICAgIDwvbW9kdWxlPgorCisgICAgICAgIDwhLS0gSXRlbSA1MCAtIE5ldmVyIGludm9rZSB3YWl0IG91dHNpZGUgYSBsb29wIC0tPgorICAgICAgICA8IS0tIHJmZSAjNzEyNzk4IC0tPgorCisgICAgICAgIDwhLS0gSXRlbSA1NyAtIFByb3ZpZGUgYSByZWFkUmVzb2x2ZSBtZXRob2Qgd2hlbiBuZWNlc3NhcnkgLS0+CisgICAgICAgIDwhLS0gbm8gcmZlIHlldCAtLT4KKworICAgICAgICA8IS0tIGRvbid0IGFsbG93IHRhYnMgLS0+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iVGFiQ2hhcmFjdGVyIi8+CisKKyAgICAgICAgPCEtLSBlbmZvcmNlIExpY2Vuc2UgSGVhZGVyIHVzaW5nIGEgUmVnRXhwIGZpbGUgdG8gYWxsb3cgc29tZSB2YXJpYXRpb25zCitsaWtlIHRoZSB5ZWFycyBpbiBjb3B5cmlnaHRzIG9yIHZhbHVlcyBvZiBTVk4gdmFyaWFibGVzLiAtLT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJSZWdleHBIZWFkZXIiPgorICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImhlYWRlckZpbGUiIHZhbHVlPSJMSUNFTlNFLkNoZWNrU3R5bGUiLz4KKyAgICAgICAgPC9tb2R1bGU+CisKKyAgICA8L21vZHVsZT4KKworICAgIDwhLS0gZW5mb3JjZSBwYWNrYWdlIGRvY3VtZW50YXRpb24gLS0+CisgICAgPG1vZHVsZSBuYW1lPSJQYWNrYWdlSHRtbCIvPgorCis8L21vZHVsZT4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS90YWdsaWIvcHJvamVjdC5wcm9wZXJ0aWVzIGIvYnVpbGQtbGVnYWN5L3RhZ2xpYi9wcm9qZWN0LnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFlYTczZAotLS0gL2Rldi9udWxsCisrKyBiL2J1aWxkLWxlZ2FjeS90YWdsaWIvcHJvamVjdC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTI0IEBACisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUCBSIE8gSiBFIEMgVCAgUCBSIE8gUCBFIFIgVCBJIEUgUyAtIE1vZGVsZWQgYWZ0ZXIgVHVyYmluZSBwcm9qZWN0LnByb3BlcnRpZXMKKyMKKyMgJElkOiBwcm9qZWN0LnByb3BlcnRpZXMgMTA1ODgxIDIwMDQtMTEtMTkgMjE6MDA6NDNaIGdlcm11c2thICQKKyMKKyMgRG8gbm90IGNoYW5nZSB0aGlzIGZpbGUuIFBsZWFzZSB1c2UgYnVpbGQucHJvcGVydGllcyBpbiB0aGlzIGRpcmVjdG9yeQorIyB0byBkbyBzaXRlIG9yIGluc3RhbGxhdGlvbiBzcGVjaWZpYyBjaGFuZ2VzIHRvIHRoZSBwcm9qZWN0IGJ1aWxkLgorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK21hdmVuLnJlcG8ucmVtb3RlPWh0dHA6Ly93d3cuaWJpYmxpby5vcmcvbWF2ZW4vLGh0dHA6Ly9jdnMuYXBhY2hlLm9yZy9yZXBvc2l0b3J5LworCittYXZlbi5jaGVja3N0eWxlLnByb3BlcnRpZXMgPSBjb25mL3FhL0NoZWNrU3R5bGUueG1sCisKKyNrZWVwIGFudCAmIG1hdmVuIGRpcmVjdG9yaWVzIHNlcGFyYXRlLgorI1dlIGRvIHRoaXMgaW4gc3RydXRzIGNvcmUsIGJ1dCBJIHRoaW5rIGFzIHdlIG1vdmUgdG8gdXNlIE1hdmVuIG1vcmUsIHdlIHdpbGwKKyMgcHJvYmFibHkgdXNlIHRoZSBub3JtYWwgInRhcmdldCIgZGlyLgorI21hdmVuLmJ1aWxkLmRpcj1tLXRhcmdldAorCisjIGRvYy5kaXIgaXMgYSBwcm9wZXJ0eSB1c2VkIGluIHRoZSBvcmlnaW5hbCBBbnQtb3JpZW50ZWQgYnVpbGQueG1sLgorIyBkZWZpbmUgaXQgaGVyZSB0byBtYWtlIGl0IGVhc2llciB0byBwb3J0IGFudCB0YXNrcyB0byBtYXZlbi54bWwKK2RvYy5kaXI9ZG9jCisKKyMgZGlzcGxheSB0aGUgZGF0ZSBvbiB0aGUgc2l0ZQorbWF2ZW4ueGRvYy5kYXRlID0gbGVmdAorIyBEaXNwbGF5IHRoZSB2ZXJzaW9uIHRoZSB3ZWIgc2l0ZSBpcyBkb2N1bWVudGluZworbWF2ZW4ueGRvYy52ZXJzaW9uID0gJHtwb20uY3VycmVudFZlcnNpb259CisjIERheXMgdG8gcmVwb3J0IGluIHRoZSBjaGFuZ2UgbG9nCittYXZlbi5jaGFuZ2Vsb2cucmFuZ2U9MzAKKworY29tcGlsZS5kZWJ1ZyA9IG9uCitjb21waWxlLm9wdGltaXplID0gb2ZmCitjb21waWxlLmRlcHJlY2F0aW9uID0gb24KK21hdmVuLmNvbXBpbGUuZGVwcmVjYXRpb24gPSBvbgorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRCBFIFAgTCBPIFkgTSBFIE4gVCAgUCBSIE8gUCBFIFIgVCBJIEUgUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjLSBtYXZlbi5yZXBvLmNlbnRyYWwgYW5kIG1hdmVuLnJlcG8uY2VudHJhbC5kaXJlY3RvcnkgYXJlIHVzZWQgdG8gZGVwbG95CisjLSBqYXJzIHRvIGJlIHVzZWQgYnkgb3RoZXIgcHJvamVjdHMuICAKKyMKKyMtIEZvciBuaWdodGx5IGJ1aWxkcywgdXNlOgorIy0gICAgbWF2ZW4gamFyOmRlcGxveS1zbmFwc2hvdCAKKyMtIFRoaXMgd2lsbCBkZXBsb3kgdG8gdGhlICdkZWZhdWx0JyBkaXJlY3RvcnksIHdoaWNoIGNvcnJlc3BvbmRzIHRvIHRoZSAicmVtb3RlIiByZXBvc2l0b3J5CisjLSAgaHR0cDovL2N2cy5hcGFjaGUub3JnL3JlcG9zaXRvcnkvCisjLSBGb3IgcHJvZHVjdGlvbiBidWlsZHMsIHVzZToKKyMtICAgIG1hdmVuIC1EbWF2ZW4ucmVwby5jZW50cmFsLmRpcmVjdG9yeT0vd3d3L3d3dy5hcGFjaGUub3JnL2Rpc3QvamF2YS1yZXBvc2l0b3J5LyBqYXI6ZGVwbG95CisjLSBUaGF0IGRpcmVjdG9yeSBpcyBwZXJpb2RpY2FsbHkgbWlycm9yZWQgd2l0aCB0aGUgInN0YW5kYXJkIiBNYXZlbiByZXBvIGF0IGliaWJsaW8KKyMtIFNwZWNpZnkgeW91ciB1c2VybmFtZSBhdCB0aGUgcmVtb3RlIHJlcG9zaXRvcnkgKGN2cy5hcGFjaGUub3JnKSAKKyMtIHdpdGggdGhlIG1hdmVuIHByb3BlcnR5ICdtYXZlbi51c2VybmFtZScKK21hdmVuLnJlcG8uY2VudHJhbD1jdnMuYXBhY2hlLm9yZworbWF2ZW4ucmVwby5jZW50cmFsLmRpcmVjdG9yeT0vd3d3L2N2cy5hcGFjaGUub3JnL3JlcG9zaXRvcnkvICMgbmlnaHRseSBidWlsZHMKKyNtYXZlbi5yZXBvLmNlbnRyYWwuZGlyZWN0b3J5PS93d3cvd3d3LmFwYWNoZS5vcmcvZGlzdC9qYXZhLXJlcG9zaXRvcnkvICMgcmVsZWFzZXMKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIE4gSSBHIEggVCBMIFkgICBCIFUgSSBMIEQgICBQIFIgTyBQIEUgUiBUIEkgRSBTCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwordmFsaWRhdG9yLm5pZ2h0bHkuZGlzdC5kaXIgPSBcCisgICAgL3d3dy9qYWthcnRhLmFwYWNoZS5vcmcvYnVpbGRzL2pha2FydGEtc3RydXRzL25pZ2h0bHkKKyAgICAKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBYIEQgTyBDICAgUCBSIE8gUCBFIFIgVCBJIEUgUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjbWF2ZW4ueGRvYy5pbmNsdWRlUHJvamVjdERvY3VtZW50YXRpb249bm8KKyNDb21tZW50IG91dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gdXNlIHRoZSBzdGFuZGFyZCBNYXZlbiBzdHlsZXNoZWV0CittYXZlbi54ZG9jLmpzbD1zdHJ1dHMuanNsCisjIExpbmtzIHRvIFN0cnV0cyBEZXZlbG9wbWVudCBQcm9jZXNzIGRvYyBpbnN0ZWFkIG9mIE1hdmVuIGRlZmF1bHQgZG9jCittYXZlbi54ZG9jLmRldmVsb3BtZW50UHJvY2Vzc1VybD0vcmVsZWFzZXMuaHRtbAorCisjUG93ZXJlZCBCeSBsb2dvIAorI21hdmVuLnhkb2MucG93ZXJlZGJ5LmltYWdlPXN0cnV0cy1wb3dlci5naWYKKyNtYXZlbi54ZG9jLnBvd2VyZWRieS50aXRsZT1Qb3dlcmVkIGJ5IFN0cnV0cworI21hdmVuLnhkb2MucG93ZXJlZGJ5LnVybD1odHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy8KK21hdmVuLnhkb2MucG93ZXJlZGJ5LmltYWdlPQorbWF2ZW4ueGRvYy5wb3dlcmVkYnkudGl0bGU9CittYXZlbi54ZG9jLnBvd2VyZWRieS51cmw9CisKK21hdmVuLnVpLmJhbm5lci5iYWNrZ3JvdW5kPSNmZmZmZmYKK21hdmVuLnVpLmJhbm5lci5mb3JlZ3JvdW5kPSMwMDAwMDAKK21hdmVuLnVpLmJhbm5lci5ib3JkZXIudG9wPSNmZmZmZmYKK21hdmVuLnVpLmJhbm5lci5ib3JkZXIuYm90dG9tPSNmZmZmZmYKKworbWF2ZW4udWkubmF2Y29sLmJhY2tncm91bmQ9I2ZmZmZmZgorbWF2ZW4udWkubmF2Y29sLmJvcmRlci50b3A9I2ZmZmZmZgorbWF2ZW4udWkubmF2Y29sLmJvcmRlci5yaWdodD0jZmZmZmZmCittYXZlbi51aS5uYXZjb2wuYm9yZGVyLmJvdHRvbT0jZmZmZmZmCisKK21hdmVuLnVpLmJyZWFkY3J1bWJzLmJhY2tncm91bmQ9I2ZmZmZmZgorbWF2ZW4udWkuYnJlYWRjcnVtYnMuZm9yZWdyb3VuZD0jNjY2NjY2CittYXZlbi51aS5icmVhZGNydW1icy5ib3JkZXIudG9wPSNmZmZmZmYKK21hdmVuLnVpLmJyZWFkY3J1bWJzLmJvcmRlci5ib3R0b209IzAwMDAwMAorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQyBBIEMgVCBVIFMgICBQIEwgVSBHIC0gSSBOICAgUCBSIE8gUCBFIFIgVCBJIEUgUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitjYWN0dXMuc3JjLmRpciA9IHNyYy90ZXN0CitjYWN0dXMuc3JjLmluY2x1ZGVzID0gb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1Rlc3RBY3Rpb25TZXJ2bGV0LmphdmEsb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliLyoqL1Rlc3QqLmphdmEKKworIyMgQ2FjdHVzIFBsdWctaW46IFRvbWNhdCA0IHNwZWNpZmljIAorIyBjYWN0dXMudG9tY2F0NHguY29uZmlnIChvcHRpb25hbCkKKyMgTG9jYXRpb24gb2YgdGhlIFRvbWNhdCA0LnggY29uZmlndXJhdGlvbiBmaWxlIGlmIHlvdSBkb24ndCB3YW50IHRvIHVzZSB0aGUgY2FjdHVzLXByb3ZpZGVkIG9uZS4KKyMgY2FjdHVzLnRvbWNhdDR4LmNvbmYuZGlyIChvcHRpb25hbCkKKyMgTG9jYXRpb24gb2YgY3VzdG9tIFRvbWNhdCA0LnggY29uZmlndXJhdGlvbiBmaWxlIHRoYXQgd2lsbCBiZSBjb3BpZWQsIG92ZXJ3cml0aW5nIHRoZSBDYWN0dXMtcHJvdmlkZWQgY29uZmlndXJhdGlvbiBmaWxlcy4KK2NhY3R1cy50b21jYXQ0eC5jb25mLmRpciA9IGNvbmYvdGVzdC90b21jYXQ0MQorIyBjYWN0dXMudG9tY2F0NHguY29uZi5pbmNsdWRlcyAob3B0aW9uYWwpCisjIENvbmZpZ3VyYXRpb24gZmlsZXMgbG9jYXRlZCBhdCR7Y2FjdHVzLnRvbWNhdDR4LmNvbmYuZGlyIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBUb21jYXQgNC54IGNvbnRhaW5lciBzZXQgdXAgYnkgQ2FjdHVzLgorIyBjYWN0dXMudG9tY2F0NHguY29uZi5leGNsdWRlcyAob3B0aW9uYWwpCisjIENvbmZpZ3VyYXRpb24gZmlsZXMgbG9jYXRlZCBhdCR7Y2FjdHVzLnRvbWNhdDR4LmNvbmYuZGlyIHRoYXQgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgVG9tY2F0IDQueCBjb250YWluZXIgc2V0IHVwIGJ5IENhY3R1cy4KKyMgY2FjdHVzLnRvbWNhdDR4LnRtcGRpciAob3B0aW9uYWwpCisjIERpcmVjdG9yeSB0byB3aGljaCB0aGUgY29udGFpbmVyIHdpbGwgYmUgaW5zdGFsbGVkIGZvciB0aGUgdGVzdHMuIEJ5IGRlZmF1bHQgdGhlIHN5c3RlbSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGlzIHVzZWQuCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBBIFAgQSBDIEggRSAgUiBFIFAgTyBTIEkgVCBPIFIgWSAgUCBSIE8gUCBFIFIgVCBJIEUgUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEJlY2F1c2UgdGhlIHJlcG9zaXRvcnkgdXNlciBuYW1lIGlzIGRpZmZlcmVudCBmb3IgZWFjaCBwZXJzb24sIGl0IHNob3VsZCBub3QKKyMgYmUgZGVmaW5lZCBpbiB0aGUgc2hhcmVkICJwcm9qZWN0LnByb3BlcnRpZXMiICAKKyMgRGVmaW5lIHRoaXMgb24gdGhlIGNvbW1hbmQgbGluZSwgb3IgaW4geW91ciBvd24gYnVpbGQucHJvcGVydGllcyBmaWxlOgorIyBpbiBvcmRlciB0byBkZXBsb3kgdG8gdGhlIHJlcG9zaXRvcnk6Cisjc3NoIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MganVzdCByZXF1aXJlIHlvdXIgYXBhY2hlIGlkIHRvIGxvZyBvbiB3aXRoCisjbWF2ZW4udXNlcm5hbWU9PGFwYWNoZS11c2VyLW5hbWU+IChET04nVCBVTkNPTU1FTlQgVEhJUyBMSU5FIElOIFNIQVJFRCBwcm9qZWN0LnByb3BlcnQKKworbWF2ZW4uY2hhbmdlbG9nLmZhY3RvcnkgPSBvcmcuYXBhY2hlLm1hdmVuLnN2bmxpYi5Tdm5DaGFuZ2VMb2dGYWN0b3J5CisKKwpkaWZmIC0tZ2l0IGEvYnVpbGQtbGVnYWN5L3RhZ2xpYi9zdHJ1dHMuanNsIGIvYnVpbGQtbGVnYWN5L3RhZ2xpYi9zdHJ1dHMuanNsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM3ZGEzZDQKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvdGFnbGliL3N0cnV0cy5qc2wKQEAgLTAsMCArMSw1MDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCEtLSAkSWQ6IHN0cnV0cy5qc2wgNTEyMjAgMjAwMy0xMi0xMSAyMDowODowN1ogc3JhZWJ1cm4gJCAtLT4KKzxqc2w6c3R5bGVzaGVldCBzZWxlY3Q9IiRkb2MiCisgIHhtbG5zOmRlZmluZT0iamVsbHk6ZGVmaW5lIgorICB4bWxuczpqPSJqZWxseTpjb3JlIgorICB4bWxuczpqc2w9ImplbGx5OmpzbCIKKyAgeG1sbnM6bG9nPSJqZWxseTpsb2ciCisgIHhtbG5zOnV0aWw9ImplbGx5OnV0aWwiCisgIHhtbG5zOng9ImplbGx5OnhtbCIKKyAgeG1sbnM6ZG9jPSJkb2MiCisgIHhtbG5zPSJkdW1teSIgdHJpbT0iZmFsc2UiPgorICA8anNsOnRlbXBsYXRlIG1hdGNoPSJkb2N1bWVudCIgdHJpbT0iZmFsc2UiPgorICAgIDxqOnVzZUJlYW4gdmFyPSJuYXZiZWFuIiBjbGFzcz0ib3JnLmFwYWNoZS5tYXZlbi5OYXZCZWFuIi8+CisgICAgPGo6c2V0IHZhcj0ibG9jYXRpb24iIHZhbHVlPSIke291dEZpbGUuc3Vic3RyaW5nKGRlc3RkaXIubGVuZ3RoKCkpfSIvPgorICAgIDx1dGlsOnJlcGxhY2UgdmFyPSJsb2NhdGlvbiIgb2xkQ2hhcj0iXCIgbmV3Q2hhcj0iLyIgdmFsdWU9IiR7bG9jYXRpb259Ii8+CisKKyAgICA8IS0tIFN0b3JlcyBsb2NhdGlvbiBmb3IgcHVibGlzaCBkYXRlIC8gdmVyc2lvbiAtLT4KKyAgICA8ajpzZXQgdmFyPSJkYXRlIj4ke21hdmVuLnhkb2MuZGF0ZX08L2o6c2V0PgorICAgICAgCisgICAgPGo6c2V0UHJvcGVydGllcyAKKyAgICAgICAgb2JqZWN0PSIke25hdmJlYW59IgorICAgICAgICBkb2N1bWVudD0iJHtkb2N9IgorICAgICAgICBsb2NhdGlvbj0iJHtsb2NhdGlvbn0iLz4KKyAgICAKKyAgICA8eDpkb2N0eXBlIG5hbWU9Imh0bWwiCisgICAgICBwdWJsaWNJZD0iLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgICBzeXN0ZW1JZD0iaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCIvPgorCisgICAgPGh0bWw+CisgICAgICA8aGVhZD4KKyAgICAgICAgPGo6c2V0IHZhcj0iZG9jVGl0bGUiPgorICAgICAgICAgIDx4OmV4cHIgc2VsZWN0PSIuL3Byb3BlcnRpZXMvdGl0bGUiLz4KKyAgICAgICAgPC9qOnNldD4KKyAgICAgICAgPHg6aWYgc2VsZWN0PSIkbmF2L3RpdGxlIj4KKyAgICAgICAgICA8dGl0bGU+CisgICAgICAgICAgICA8eDpleHByIHNlbGVjdD0iJG5hdi90aXRsZSIvPiAtICR7ZG9jVGl0bGV9CisgICAgICAgICAgPC90aXRsZT4KKyAgICAgICAgPC94OmlmPgorICAgICAgICA8eDppZiBzZWxlY3Q9Im5vdCgkbmF2L3RpdGxlKSI+CisgICAgICAgICAgPHRpdGxlPiR7cG9tLm5hbWV9IC0gJHtkb2NUaXRsZX08L3RpdGxlPgorICAgICAgICA8L3g6aWY+CisgICAgICAgIAorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgICAgICAgIEBpbXBvcnQgdXJsKCIke3JlbGF0aXZlUGF0aH0vc3R5bGUvc3RydXRzLmNzcyIpOworICAgICAgICAgIEBpbXBvcnQgdXJsKCIke3JlbGF0aXZlUGF0aH0vc3R5bGUvbWF2ZW4uY3NzIik7CisgICAgICAgIF1dPjwvc3R5bGU+CisgICAgICAgIAorICAgICAgICA8dXRpbDpmaWxlIHZhcj0icHJvamVjdENzc0ZpbGUiIG5hbWU9IiR7bWF2ZW4uZG9jcy5zcmN9L3N0eWxlL3Byb2plY3QuY3NzIi8+CisgICAgICAgIDxqOmlmIHRlc3Q9IiR7cHJvamVjdENzc0ZpbGUuZXhpc3RzKCl9Ij4KKyAgICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwhW0NEQVRBWworICAgICAgICAgICAgQGltcG9ydCB1cmwoIiR7cmVsYXRpdmVQYXRofS9zdHlsZS9wcm9qZWN0LmNzcyIpOworICAgICAgICAgIF1dPjwvc3R5bGU+CisgICAgICAgIDwvajppZj4KKyAgICAgICAgCisgICAgICAgIDwhLS0gRklYTUU6IG9uY2Ugc29tZW9uZSB3b3JrcyBvdXQgaG93IHRvIHN0b3AgdGhpcyBicmVha2luZworICAgICAgICA8eDplbGVtZW50IG5hbWU9InNjcmlwdCI+PHg6YXR0cmlidXRlIG5hbWU9InR5cGUiPnRleHQvamF2YXNjcmlwdDwveDphdHRyaWJ1dGU+CisgICAgICAgICAgaWYgKGRvY3VtZW50LmxheWVycykgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LndyaXRlbG4oJycrCisgICAgICAgICAgICAgICAgJzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9IiR7cmVsYXRpdmVQYXRofS9zdHlsZS9uczRfb25seS5jc3MiIG1lZGlhPSJzY3JlZW4iIC8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iJHtyZWxhdGl2ZVBhdGh9L3N0eWxlL21hdmVuX25zNF9vbmx5LmNzcyIgbWVkaWE9InNjcmVlbiIvPicpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICA8L3g6ZWxlbWVudD4KKyAgICAgICAgLS0+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9IiR7cmVsYXRpdmVQYXRofS9zdHlsZS9wcmludC5jc3MiIG1lZGlhPSJwcmludCIvPgorICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD0ke291dHB1dGVuY29kaW5nfSI+PC9tZXRhPgorICAgICAgICA8eDpmb3JFYWNoIHZhcj0iYXV0aG9yIiBzZWxlY3Q9Ii4vcHJvcGVydGllcy9hdXRob3IiPgorICAgICAgICAgIDxtZXRhIG5hbWU9ImF1dGhvciIgY29udGVudD0iJHthdXRob3IudGV4dH0iLz4KKyAgICAgICAgICA8bWV0YSBuYW1lPSJlbWFpbCIgY29udGVudD0iJHthdXRob3IuYXR0cmlidXRlKCdlbWFpbCcpLnZhbHVlfSIvPgorICAgICAgICA8L3g6Zm9yRWFjaD4KKyAgICAgICAgCisgICAgICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSIkZG9jL2RvY3VtZW50L2hlYWQvKiIvPgorICAgICAgICAKKyAgICAgIDwvaGVhZD4KKworICAgICAgPHg6ZWxlbWVudCBuYW1lPSJib2R5Ij48ajp3aGl0ZXNwYWNlIHRyaW09InRydWUiPgorICAgICAgICA8eDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPmNvbXBvc2l0ZTwveDphdHRyaWJ1dGU+CisgICAgICAgIDx4OmZvckVhY2ggdmFyPSJhdHRyIiBzZWxlY3Q9IiRkb2MvZG9jdW1lbnQvYm9keS9AKiI+CisgICAgICAgICAgPHg6YXR0cmlidXRlIG5hbWU9IiR7YXR0ci5uYW1lfSI+JHthdHRyLnZhbHVlfTwveDphdHRyaWJ1dGU+CisgICAgICAgIDwveDpmb3JFYWNoPgorICAgICAgICA8L2o6d2hpdGVzcGFjZT4KKworICAgICAgICA8ZGl2IGlkPSJiYW5uZXIiPgorICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iOCIgd2lkdGg9IjEwMCUiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICA8IS0tIG9yZ2FuaXphdGlvbiBsb2dvIC0tPgorICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0ibG9nbyIgdmFsdWU9IiR7cG9tLm9yZ2FuaXphdGlvbi5sb2dvfSIvPgorICAgICAgICAgICAgICAgIDxqOmlmIHRlc3Q9IiR7IWVtcHR5KGxvZ28pfSI+CisgICAgICAgICAgICAgICAgICA8IS0tIHNldCB1cmwgdG8gb3JnIG9yIHByb2plY3QgdXJsIC0tPgorICAgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0idXJsIiB2YWx1ZT0iJHtwb20ub3JnYW5pemF0aW9uLnVybH0iLz4KKyAgICAgICAgICAgICAgICAgIDxqOmlmIHRlc3Q9IiR7IWVtcHR5KHVybCl9Ij4KKyAgICAgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0iaG9tZSIgdmFsdWU9IiR7cG9tLm9yZ2FuaXphdGlvbi51cmx9Ii8+CisgICAgICAgICAgICAgICAgICA8L2o6aWY+CisgICAgICAgICAgICAgICAgICA8ajppZiB0ZXN0PSIke2VtcHR5KHVybCl9Ij4KKyAgICAgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0iaG9tZSIgdmFsdWU9IiR7cG9tLnVybH0iLz4KKyAgICAgICAgICAgICAgICAgIDwvajppZj4KKyAgICAgICAgICAgICAgICAgIDwhLS0gc2V0IGltYWdlIHRvIHJlbGF0aXZlIG9yIGNvbXBsZXRlIC0tPgorICAgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0iaW1hZ2UiIHZhbHVlPSIke3BvbS5vcmdhbml6YXRpb24ubG9nb30iLz4KKyAgICAgICAgICAgICAgICAgIDxqOmlmIHRlc3Q9IiR7IWltYWdlLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKX0iPgorICAgICAgICAgICAgICAgICAgICA8ajpzZXQgdmFyPSJpbWFnZSIgdmFsdWU9IiR7cmVsYXRpdmVQYXRofSR7aW1hZ2V9Ii8+CisgICAgICAgICAgICAgICAgICA8L2o6aWY+CisgICAgICAgICAgICAgICAgICA8YSBocmVmPSIke2hvbWV9Ij4KKyAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9IiR7aW1hZ2V9IiBhbGlnbj0ibGVmdCIgYWx0PSIke3BvbS5vcmdhbml6YXRpb24ubmFtZX0iIGJvcmRlcj0iMCIvPgorICAgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgICAgIDwvajppZj4KKyAgICAgICAgICAgICAgPC90ZD4KKworICAgICAgICAgICAgICA8IS0tIHByb2plY3QgbG9nbyBhbmQgbGluayAtLT4KKyAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgIDxkaXYgYWxpZ249InJpZ2h0IiBpZD0ibG9naW4iPgorICAgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0ibG9nbyIgdmFsdWU9IiR7cG9tLmxvZ299Ii8+CisgICAgICAgICAgICAgICAgICA8ajppZiB0ZXN0PSIke2xvZ28gIT0gbnVsbCBhbmQgbG9nbyAhPSAnJ30iPgorICAgICAgICAgICAgICAgICAgICA8IS0tIHNldCBpbWFnZSB0byByZWxhdGl2ZSBvciBjb21wbGV0ZSAtLT4KKyAgICAgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0iaW1hZ2UiIHZhbHVlPSIke3BvbS5sb2dvfSIvPgorICAgICAgICAgICAgICAgICAgICA8ajppZiB0ZXN0PSIkeyFpbWFnZS5zdGFydHNXaXRoKCdodHRwOi8vJyl9Ij4KKyAgICAgICAgICAgICAgICAgICAgICA8ajpzZXQgdmFyPSJpbWFnZSIgdmFsdWU9IiR7cmVsYXRpdmVQYXRofSR7aW1hZ2V9Ii8+CisgICAgICAgICAgICAgICAgICAgIDwvajppZj4KKworICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIke3BvbS51cmx9Ij4KKyAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iJHtpbWFnZX0iIGFsaWduPSJyaWdodCIgYWx0PSIke3BvbS5uYW1lfSIgYm9yZGVyPSIwIi8+CisgICAgICAgICAgICAgICAgICAgIDwvYT4KKyAgICAgICAgICAgICAgICAgIDwvajppZj4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxkaXYgaWQ9ImJyZWFkY3J1bWJzIj4KKyAgICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjQiIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgPGo6aWYgdGVzdD0iJHtkYXRlID09ICdsZWZ0J30iPgorICAgICAgICAgICAgICAgIDxqOnNldCB2YXI9InZlcnNpb24iIHZhbHVlPSIke21hdmVuLnhkb2MudmVyc2lvbn0iLz4KKyAgICAgICAgICAgICAgICA8dGQ+TGFzdCBwdWJsaXNoZWQ6ICR7YnVpbGQuZGF0ZX0KKyAgICAgICAgICAgICAgICAgIDxqOmlmIHRlc3Q9IiR7IWVtcHR5KHZlcnNpb24pfSI+fCBEb2MgZm9yICR7dmVyc2lvbn08L2o6aWY+CisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgPC9qOmlmPgorICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgPGRpdiBhbGlnbj0icmlnaHQiPgorICAgICAgICAgICAgICAgICAgPGo6aWYgdGVzdD0iJHtkYXRlID09ICdyaWdodCd9Ij4KKyAgICAgICAgICAgICAgICAgICAgTGFzdCBwdWJsaXNoZWQ6ICR7YnVpbGQuZGF0ZX0KKyAgICAgICAgICAgICAgICAgICAgPHg6aWYgc2VsZWN0PSIkbmF2L2JvZHkvbGlua3MiPnw8L3g6aWY+CisgICAgICAgICAgICAgICAgICA8L2o6aWY+CisgICAgICAgICAgICAgICAgICA8IS0tIHJlbmRlciBsaW5rcyAtLT4KKyAgICAgICAgICAgICAgICAgIDx4OmlmIHNlbGVjdD0iJG5hdi9ib2R5L2xpbmtzIj4KKyAgICAgICAgICAgICAgICAgICAgPGpzbDphcHBseVRlbXBsYXRlcyBzZWxlY3Q9IiRuYXYvYm9keS9saW5rcyIvPgorICAgICAgICAgICAgICAgICAgPC94OmlmPgorICAgICAgICAgICAgICAgICAgPHg6aWYgc2VsZWN0PSJub3QoJG5hdi9ib2R5L2xpbmtzKSI+CisgICAgICAgICAgICAgICAgICAgIDwhLS0gRklYTUUgJm5ic3A7IC0tPgorICAgICAgICAgICAgICAgICAgPC94OmlmPgorICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgICA8L3RhYmxlPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPCEtLSBCb2R5IG9mIHRoZSBwYWdlIC0tPgorICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjgiIHdpZHRoPSIxMDAlIj4gPCEtLWlkPSJtYWluIiAtLT4KKyAgICAgICAgICA8dHIgdmFsaWduPSJ0b3AiPgorICAgICAgICAgICAgPHRkIGlkPSJsZWZ0Y29sIiB3aWR0aD0iMjAlIj4KKyAgICAgICAgICAgICAgPGRpdiBpZD0ibmF2Y29sdW1uIj4KKyAgICAgICAgICAgICAgICA8ajppZiB0ZXN0PSIke2RhdGUgPT0gJ25hdmlnYXRpb24tdG9wJ30iPgorICAgICAgICAgICAgICAgICAgPGRpdj4KKyAgICAgICAgICAgICAgICAgICAgPHNtYWxsPkxhc3QgcHVibGlzaGVkOiAke2J1aWxkLmRhdGV9PC9zbWFsbD4KKyAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgIDwvajppZj4KKworICAgICAgICAgICAgICAgIDx4OmlmIHNlbGVjdD0iJG5hdiI+CisgICAgICAgICAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iJG5hdi9ib2R5L21lbnVbbm90KEB0eXBlKSB8IEB0eXBlPSdoZWFkZXInXSB8ICRuYXYvYm9keS9zZWFyY2giLz4KKyAgICAgICAgICAgICAgICA8L3g6aWY+CisKKyAgICAgICAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iJHByb2plY3ROYXYvYm9keS9tZW51Ii8+CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgPCEtLSBTdGFuZGFyZCBNYXZlbiBOYXZpZ2F0aW9uIC0tPgorICAgICAgICAgICAgICAgIDxqOnNldCB2YXI9ImZpbGVOYW1lIj4ke2ZpbGV9PC9qOnNldD4KKworICAgICAgICAgICAgICAgIDxqOnNldCB2YXI9InBvd2VyZWRieWltYWdlIj4ke21hdmVuLnhkb2MucG93ZXJlZGJ5LmltYWdlfTwvajpzZXQ+CisgICAgICAgICAgICAgICAgPGo6c2V0IHZhcj0icG93ZXJlZGJ5dGl0bGUiPiR7bWF2ZW4ueGRvYy5wb3dlcmVkYnkudGl0bGV9PC9qOnNldD4KKyAgICAgICAgICAgICAgICA8ajpzZXQgdmFyPSJwb3dlcmVkYnl1cmwiPiR7bWF2ZW4ueGRvYy5wb3dlcmVkYnkudXJsfTwvajpzZXQ+CisgICAgICAgICAgICAgICAgPGo6aWYgdGVzdD0iJHshZW1wdHkocG93ZXJlZGJ5aW1hZ2UpfSI+CisgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDIwcHg7IHdpZHRoOiAxMDAlOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiR7cG93ZXJlZGJ5dXJsfSIgdGl0bGU9IiR7cG93ZXJlZGJ5dGl0bGV9Ij48aW1nIGFsdD0iJHttYXZlbi54ZG9jLnBvd2VyZWRieS50aXRsZX0iIHN0eWxlPSJib3JkZXI6IDFweCBzb2xpZCBibGFjayIgc3JjPSIke3JlbGF0aXZlUGF0aH0vaW1hZ2VzL2xvZ29zLyR7cG93ZXJlZGJ5aW1hZ2V9Ii8+PC9hPgorICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICA8L2o6aWY+CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIDxqOmlmIHRlc3Q9IiR7ZGF0ZSA9PSAnbmF2aWdhdGlvbi1ib3R0b20nfSI+CisgICAgICAgICAgICAgICAgICA8ZGl2PgorICAgICAgICAgICAgICAgICAgICA8c21hbGw+TGFzdCBwdWJsaXNoZWQ6ICR7YnVpbGQuZGF0ZX08L3NtYWxsPgorICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgPC9qOmlmPgorICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8dGQgcm93c3Bhbj0iMiI+CisgICAgICAgICAgICAgIDxkaXYgaWQ9ImJvZHljb2wiPgorICAgICAgICAgICAgICAgIDwhLS0gSW5zZXJ0IE1BSU4gYm9keSBoZXJlIC0tPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImFwcCI+CisgICAgICAgICAgICAgICAgICA8IS0tIEZJWE1FIHJlYWxseSBzaG91bGRuJ3QgdXNlICRkb2MsIGJ1dCBqZWxseSBsb3NlcyBpdCdzIGNvbnRleHQgYWdhaW4gLS0+CisgICAgICAgICAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iJGRvYy9kb2N1bWVudC9ib2R5L3NlY3Rpb24iLz4KKyAgICAgICAgICAgICAgICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSIkZG9jL2RvY3VtZW50L2JvZHkvZ2xvc3NhcnkiIC8+CisgICAgICAgICAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iJGRvYy9kb2N1bWVudC9ib2R5L3JlbGVhc2UiIC8+CisgICAgICAgICAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iJGRvYy9kb2N1bWVudC9ib2R5L2NoYW5nZWxvZyIgLz4KKyAgICAgICAgICAgICAgICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSIkZG9jL2RvY3VtZW50L2JvZHkvdGFza0xpc3QiIC8+CisgICAgICAgICAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iJGRvYy9kb2N1bWVudC9ib2R5L2dvYWxzIiAvPgorICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgPC90cj4KKyAgICAgICAgPC90YWJsZT4KKyAgICAgICAgPGRpdiBpZD0iZm9vdGVyIj4KKyAgICAgICAgICA8dGFibGUgc3R5bGU9J3dpZHRoOjEwMCUnIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSI0Ij4KKyAgICAgICAgICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSIkbmF2L2JvZHkvZm9vdGVyIi8+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICA8ajppZiB0ZXN0PSIkeyFlbXB0eShwb20ub3JnYW5pemF0aW9uLm5hbWUpfSI+CisgICAgICAgICAgICAgICAgICA8ajppZiB0ZXN0PSIkeyFlbXB0eShwb20uaW5jZXB0aW9uWWVhcil9Ij4KKyAgICAgICAgICAgICAgICAgICAgPGo6aWYgdGVzdD0iJHtwb20uaW5jZXB0aW9uWWVhciA9PSBtYXZlbkN1cnJlbnRZZWFyfSI+CisgICAgICAgICAgICAgICAgICAgICAgJiMxNjk7ICR7bWF2ZW5DdXJyZW50WWVhcn0sICR7cG9tLm9yZ2FuaXphdGlvbi5uYW1lfQorICAgICAgICAgICAgICAgICAgICA8L2o6aWY+CisgICAgICAgICAgICAgICAgICAgIDxqOmlmIHRlc3Q9IiR7cG9tLmluY2VwdGlvblllYXIgIT0gbWF2ZW5DdXJyZW50WWVhcn0iPgorICAgICAgICAgICAgICAgICAgICAgICYjMTY5OyAke3BvbS5pbmNlcHRpb25ZZWFyfS0ke21hdmVuQ3VycmVudFllYXJ9LCAke3BvbS5vcmdhbml6YXRpb24ubmFtZX0KKyAgICAgICAgICAgICAgICAgICAgPC9qOmlmPgorICAgICAgICAgICAgICAgICAgPC9qOmlmPgorICAgICAgICAgICAgICAgICAgPGo6aWYgdGVzdD0iJHtlbXB0eShwb20uaW5jZXB0aW9uWWVhcil9Ij4KKyAgICAgICAgICAgICAgICAgICAgJiMxNjk7ICR7bWF2ZW5DdXJyZW50WWVhcn0sICR7cG9tLm9yZ2FuaXphdGlvbi5uYW1lfQorICAgICAgICAgICAgICAgICAgPC9qOmlmPgorICAgICAgICAgICAgICAgIDwvajppZj4KKworICAgICAgICAgICAgICAgIDxqOmlmIHRlc3Q9IiR7ZGF0ZSA9PSAnYm90dG9tJ30iPgorICAgICAgICAgICAgICAgICAgLSBMYXN0IHB1Ymxpc2hlZDogJHtidWlsZC5kYXRlfQorICAgICAgICAgICAgICAgIDwvajppZj4KKyAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgPGo6aWYgdGVzdD0iJHtkYXRlID09ICdib3R0b20tcmlnaHQnfSI+CisgICAgICAgICAgICAgICAgPHRkIHN0eWxlPSd3aWR0aDogYXV0bzsgdGV4dC1hbGlnbjpyaWdodCc+TGFzdCBwdWJsaXNoZWQ6ICR7YnVpbGQuZGF0ZX08L3RkPgorICAgICAgICAgICAgICA8L2o6aWY+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvZGl2PgorICAgICAgPC94OmVsZW1lbnQ+CisgICAgPC9odG1sPgorICA8L2pzbDp0ZW1wbGF0ZT4KKworICA8IS0tIHByb2Nlc3MgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGRvYyAtLT4KKyAgPGpzbDp0ZW1wbGF0ZSBtYXRjaD0icHJvcGVydGllcyIgdHJpbT0iZmFsc2UiPgorICAgIDwhLS0gc3RpY2sgaGVhZCBibG9jayBoZXJlIGxhdGVyIC0tPgorICA8L2pzbDp0ZW1wbGF0ZT4KKworICA8IS0tIFByb2Nlc3MgYSBtZW51IGZvciB0aGUgbmF2aWdhdGlvbiBiYXIgLS0+CisgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9Im1lbnUiIHRyaW09ImZhbHNlIj4KKyAgICA8ZGl2PgorICAgICAgPHN0cm9uZz48eDpleHByIHNlbGVjdD0iQG5hbWUiLz48L3N0cm9uZz4KKyAgICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSJpdGVtIi8+CisgICAgPC9kaXY+CisgIDwvanNsOnRlbXBsYXRlPgorCisgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9Iml0ZW0iIHRyaW09ImZhbHNlIj4KKyAgICA8eDpzZXQgdmFyPSJpdGVtIiBzZWxlY3Q9Ii4iLz4KKyAgICA8eDpzZXQgdmFyPSJfbmFtZSIgc2VsZWN0PSJzdHJpbmcoQG5hbWUpIi8+CisgICAgPHg6c2V0IHZhcj0iX2xpbmsiIHNlbGVjdD0ic3RyaW5nKEBocmVmKSIvPgorICAgIDx4OnNldCB2YXI9Il9pbWciIHNlbGVjdD0ic3RyaW5nKEBpbWcpIi8+CisgICAgPHg6c2V0IHZhcj0iX2NoaWxkQ291bnQiIHNlbGVjdD0iY291bnQoLi9pdGVtKSIvPgorICAgIDxqOnNldCB2YXI9Il9pc0NvbGxhcHNlZCIgdmFsdWU9IiR7bmF2YmVhbi5pc0NvbGxhcHNlZChpdGVtLmdldCgwKSl9Ii8+CisgICAgPGo6c2V0IHZhcj0iX3N0YXRlIiB2YWx1ZT0ibm9uZSIvPgorICAgIAorICAgIDxqOmlmIHRlc3Q9IiR7X2NoaWxkQ291bnQuaW50VmFsdWUoKSBndCAwfSI+CisgICAgICAgIDxqOmlmIHRlc3Q9IiR7IV9pc0NvbGxhcHNlZH0iPgorICAgICAgICAgIDxqOnNldCB2YXI9Il9zdGF0ZSIgdmFsdWU9ImV4cGFuZGVkIi8+CisgICAgICAgIDwvajppZj4KKyAgICAgICAgPGo6aWYgdGVzdD0iJHtfaXNDb2xsYXBzZWR9Ij4KKyAgICAgICAgICA8ajpzZXQgdmFyPSJfc3RhdGUiIHZhbHVlPSJjb2xsYXBzZWQiLz4KKyAgICAgICAgPC9qOmlmPgorICAgIDwvajppZj4KKyAgICAgICAgICAgCisgICAgCisgICAgPGRpdj4KKyAgICAgIDxzbWFsbD4KKyAgICAgICAgPGo6aWYgdGVzdD0iJHtuYXZiZWFuLmlzU2VsZWN0ZWQoaXRlbS5nZXQoMCkpfSI+CisgICAgICAgICAgICA8Yj48ZG9jOml0ZW1MaW5rIG5hbWU9IiR7X25hbWV9IiBsaW5rPSIke19saW5rfSIgaW1nPSIke19pbWd9IiBzdGF0ZT0iJHtfc3RhdGV9Ii8+PC9iPgorICAgICAgICA8L2o6aWY+CisgICAgICAgIDxqOmlmIHRlc3Q9IiR7IW5hdmJlYW4uaXNTZWxlY3RlZChpdGVtLmdldCgwKSl9Ij4KKyAgICAgICAgICAgIDxkb2M6aXRlbUxpbmsgbmFtZT0iJHtfbmFtZX0iIGxpbms9IiR7X2xpbmt9IiBpbWc9IiR7X2ltZ30iIHN0YXRlPSIke19zdGF0ZX0iLz4KKyAgICAgICAgPC9qOmlmPgorICAgICAgPC9zbWFsbD4KKyAgICAgIDxqOmlmIHRlc3Q9IiR7IW5hdmJlYW4uaXNDb2xsYXBzZWQoaXRlbS5nZXQoMCkpfSI+CisgICAgICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSJpdGVtIi8+CisgICAgICA8L2o6aWY+CisgICAgPC9kaXY+CisgIDwvanNsOnRlbXBsYXRlPgorCisgIDwhLS0gUHJvY2VzcyB0aGUgYnJlYWRjcnVtYiBuYXZiYXIgLS0+CisgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9ImxpbmtzIiB0cmltPSJmYWxzZSI+CisgICAgPGo6c2V0IHZhcj0ibGlua0NvdW50IiB2YWx1ZT0iMSIvPgorICAgIDx4OmZvckVhY2ggdmFyPSJsaW5rIiBzZWxlY3Q9Iml0ZW0iPgorICAgICAgPGo6aWYgdGVzdD0iJHtsaW5rQ291bnQgIT0gMX0iPnw8L2o6aWY+CisgICAgICA8ajpzZXQgdmFyPSJfbmFtZSI+PHg6ZXhwciBzZWxlY3Q9IkBuYW1lIi8+PC9qOnNldD4KKyAgICAgIDxqOnNldCB2YXI9Il9saW5rIj48eDpleHByIHNlbGVjdD0iQGhyZWYiLz48L2o6c2V0PgorICAgICAgPGRvYzppdGVtTGluayBuYW1lPSIke19uYW1lfSIgbGluaz0iJHtfbGlua30iLz4KKyAgICAgIDxqOnNldCB2YXI9ImxpbmtDb3VudCIgdmFsdWU9IiR7MStsaW5rQ291bnR9Ii8+CisgICAgPC94OmZvckVhY2g+CisgIDwvanNsOnRlbXBsYXRlPgorCisgIDwhLS0gR29vZ2xlIHNpdGUgc2VhcmNoIC0tPgorICA8anNsOnRlbXBsYXRlIG1hdGNoPSJzZWFyY2giIHRyaW09ImZhbHNlIj4KKyAgICA8IS0tIFNlYXJjaCBjb2RlOiBodHRwOi8vd3d3Lmdvb2dsZS5jb20vc2VhcmNoY29kZS5odG1sIC0tPgorICAgIDwhLS0gR29vZ2xlIGxvZ29zOiBodHRwOi8vd3d3Lmdvb2dsZS5jb20vc3RpY2tlcnMuaHRtbCAtLT4KKyAgICA8IS0tIFRlcm1zOiBodHRwOi8vd3d3Lmdvb2dsZS5jb20uL3NlcnZpY2VzL3Rlcm1zX2ZyZWUuaHRtbCAtLT4KKyAgICA8ZGl2PgorICAgICAgPHN0cm9uZz5TZWFyY2ggJHtwb20ubmFtZX08L3N0cm9uZz4KKyAgICAgIDxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9zZWFyY2giPgorICAgICAgICA8YSBjbGFzcz0ibmF2bGluayIgaHJlZj0iaHR0cDovL3d3dy5nb29nbGUuY29tIj4KKyAgICAgICAgICA8aW1nIHNyYz0iaHR0cDovL3d3dy5nb29nbGUuY29tL2xvZ29zL0xvZ29fMjV3aHQuZ2lmIiAKKyAgICAgICAgICAgICAgIGFsdD0iR29vZ2xlIiBib3JkZXI9IjAiIC8+CisgICAgICAgIDwvYT48cC8+CisgICAgICAgIDxqOnNldCB2YXI9InNpdGVVUkwiIHZhbHVlPSIke3BvbS51cmx9Ii8+CisgICAgICAgIDwhLS0gZ29vZ2xlIGZhaWxzIG9uIHVybHMgdGhhdCBlbmQgd2l0aCAvIC0tPgorICAgICAgICA8ajppZiB0ZXN0PSIke3NpdGVVUkwuZW5kc1dpdGgoJy8nKX0iPgorICAgICAgICAgIDxqOnNldCB2YXI9IlVSTExlbmd0aCIgdmFsdWU9IiR7c2l0ZVVSTC5sZW5ndGgoKSAtIDF9Ii8+CisgICAgICAgICAgPGo6c2V0IHZhcj0ic2l0ZVVSTCIgdmFsdWU9IiR7c2l0ZVVSTC5zdWJzdHJpbmcoMCwgVVJMTGVuZ3RoLmludFZhbHVlKCkpfSIvPgorICAgICAgICA8L2o6aWY+CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIxNSIgbmFtZT0icSIgbWF4bGVuZ3RoPSIyNTUiIHZhbHVlPSIiLz4KKyAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkdvIiBuYW1lPSJidG5HIi8+CisgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvbWFpbnMiIHZhbHVlPSIke3NpdGVVUkx9Ii8+CisgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2giIG5hbWU9InNpdGVzZWFyY2giIHZhbHVlPSIke3NpdGVVUkx9Ii8+CisgICAgICA8L2Zvcm0+CisgICAgPC9kaXY+CisgIDwvanNsOnRlbXBsYXRlPgorCisgIDwhLS0gcHJvY2VzcyBhIGRvY3VtZW50YXRpb24gc2VjdGlvbiAtLT4KKyAgPGpzbDp0ZW1wbGF0ZSBtYXRjaD0ic2VjdGlvbiIgdHJpbT0iZmFsc2UiPgorICAgIDxkaXYgY2xhc3M9ImgzIj4KKyAgICAgIDxqOnNldCB2YXI9Il9zZWN0aW9uTmFtZSI+PHg6ZXhwciBzZWxlY3Q9IkBuYW1lIi8+PC9qOnNldD4KKyAgICAgIDxqOmlmIHRlc3Q9IiR7IWVtcHR5KF9zZWN0aW9uTmFtZSl9Ij4KKyAgICAgICAgPGgzPgorICAgICAgICAgIDxhIG5hbWU9IiR7X3NlY3Rpb25OYW1lfSI+JHtfc2VjdGlvbk5hbWV9PC9hPgorICAgICAgICA8L2gzPgorICAgICAgPC9qOmlmPgorICAgICAgPGpzbDphcHBseVRlbXBsYXRlcyBzZWxlY3Q9IioiLz4KKyAgICA8L2Rpdj4KKyAgPC9qc2w6dGVtcGxhdGU+CisKKyAgPGpzbDp0ZW1wbGF0ZSBtYXRjaD0ic3Vic2VjdGlvbiIgdHJpbT0iZmFsc2UiPgorICAgIDxkaXYgY2xhc3M9Img0Ij4KKyAgICAgIDxqOnNldCB2YXI9Il9zZWN0aW9uTmFtZSI+PHg6ZXhwciBzZWxlY3Q9IkBuYW1lIi8+PC9qOnNldD4KKyAgICAgIDxqOmlmIHRlc3Q9IiR7IWVtcHR5KF9zZWN0aW9uTmFtZSl9Ij4KKyAgICAgICAgPGg0PgorICAgICAgICAgIDxhIG5hbWU9IiR7X3NlY3Rpb25OYW1lfSI+JHtfc2VjdGlvbk5hbWV9PC9hPgorICAgICAgICA8L2g0PgorICAgICAgPC9qOmlmPgorICAgICAgPGpzbDphcHBseVRlbXBsYXRlcyBzZWxlY3Q9IioiLz4KKyAgICA8L2Rpdj4KKyAgPC9qc2w6dGVtcGxhdGU+CisKKyAgPGpzbDp0ZW1wbGF0ZSBtYXRjaD0ic291cmNlIiB0cmltPSJmYWxzZSI+CisgICAgPGRpdiBpZD0ic291cmNlIj4KKyAgICAgIDxwcmU+PHg6ZXhwciBzZWxlY3Q9Ii4iLz48L3ByZT4KKyAgICA8L2Rpdj4KKyAgPC9qc2w6dGVtcGxhdGU+CisKKyAgPGpzbDp0ZW1wbGF0ZSBtYXRjaD0iZm9vdGVyIiB0cmltPSJmYWxzZSI+CisgICAgPHRyPgorICAgICAgPHRkPgorICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iKiIvPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICA8L2pzbDp0ZW1wbGF0ZT4KKworICA8anNsOnRlbXBsYXRlIG1hdGNoPSJ0YWJsZSIgdHJpbT0iZmFsc2UiPgorICAgIDxqOnNldCB2YXI9InJvd2NvdW50IiB2YWx1ZT0iMCIvPgorICAgIDx0YWJsZSBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjIiIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiPgorICAgICAgPGpzbDphcHBseVRlbXBsYXRlcyBzZWxlY3Q9IioiLz4KKyAgICA8L3RhYmxlPgorICA8L2pzbDp0ZW1wbGF0ZT4KKworICA8anNsOnRlbXBsYXRlIG1hdGNoPSJ0ciIgdHJpbT0iZmFsc2UiPgorICAgIDxqOmNob29zZT4KKyAgICAgIDxqOndoZW4gdGVzdD0iJHtyb3dNb2RlID09ICdhJ30iPgorICAgICAgICA8ajpzZXQgdmFyPSJyb3dNb2RlIiB2YWx1ZT0iYiIvPgorICAgICAgPC9qOndoZW4+CisgICAgICA8ajpvdGhlcndpc2U+CisgICAgICAgIDxqOnNldCB2YXI9InJvd01vZGUiIHZhbHVlPSJhIi8+CisgICAgICA8L2o6b3RoZXJ3aXNlPgorICAgIDwvajpjaG9vc2U+CisKKyAgICA8IS0tIGNvcHkgYXR0cmlidXRlcyBGSVhNRTogU2hvdWxkbid0IHRoaXMgb25seSBiZSBjb2xzcGFufHJvd3NwYW4/IC0tPgorICAgIDx4OmVsZW1lbnQgbmFtZT0idHIiPjxqOndoaXRlc3BhY2UgdHJpbT0idHJ1ZSI+CisgICAgICA8eDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPiR7cm93TW9kZX08L3g6YXR0cmlidXRlPgorICAgICAgPHg6Zm9yRWFjaCB2YXI9ImF0dHIiIHNlbGVjdD0iQCoiPgorICAgICAgICA8eDphdHRyaWJ1dGUgbmFtZT0iJHthdHRyLm5hbWV9Ij4ke2F0dHIudmFsdWV9PC94OmF0dHJpYnV0ZT4KKyAgICAgIDwveDpmb3JFYWNoPgorICAgICAgPGpzbDphcHBseVRlbXBsYXRlcyBzZWxlY3Q9IioiLz4KKzwvajp3aGl0ZXNwYWNlPjwveDplbGVtZW50PgorICA8L2pzbDp0ZW1wbGF0ZT4KKworICA8IS0tKioqKioqKioqKioqKioqKioqKioqKioqLS0+CisgIDwhLS0gZ2xvc3NhcnkgZG9jdW1lbnRhdGlvbiAtLT4KKyAgPCEtLSoqKioqKioqKioqKioqKioqKioqKioqKi0tPgorICA8anNsOnRlbXBsYXRlIG1hdGNoPSJnbG9zc2FyeSIgdHJpbT0iZmFsc2UiPgorICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSJnbG9zc2FyeS1lbnRyaWVzL2dsb3NzYXJ5LWVudHJ5IiAvPgorICA8L2pzbDp0ZW1wbGF0ZT4KKyAgICAgIAorICA8anNsOnRlbXBsYXRlIG1hdGNoPSJnbG9zc2FyeS1lbnRyeSIgdHJpbT0iZmFsc2UiPgorICAgIDxzdHJvbmc+PHg6ZXhwciBzZWxlY3Q9Im5hbWUiIC8+PC9zdHJvbmc+CisgICAgPGJyLz4KKyAgICA8eDpleHByIHNlbGVjdD0iZGVmaW5pdGlvbiIgLz4KKyAgICA8cC8+CisgIDwvanNsOnRlbXBsYXRlPgorCisgICAgICA8IS0tKioqKioqKioqKioqKioqKioqKioqKioqLS0+CisgICAgICA8IS0tIGdvYWxzIGRvY3VtZW50YXRpb24gICAgLS0+CisgICAgICA8IS0tKioqKioqKioqKioqKioqKioqKioqKioqLS0+CisgICAgICA8anNsOnRlbXBsYXRlIG1hdGNoPSJnb2FscyIgdHJpbT0iZmFsc2UiPgorICAgICAgICA8IS0tIHJlc2V0IHJvdyBhbHRlcm5hdGlvbiAtLT4KKyAgICAgICAgPGo6c2V0IHZhcj0icm93TW9kZSIgdmFsdWU9IiIgLz4KKyAgICAgICAgPGRpdiBjbGFzcz0iaDMiPgorICAgICAgICAgIDxoMz48YSBuYW1lPSJHb2FscyI+R29hbHM8L2E+PC9oMz4KKyAgICAgICAgICA8dGFibGU+CisgICAgICAgICAgICA8dHIgd2lkdGg9JzEwMCUnPjx0aD5Hb2FsPC90aD48dGg+RGVzY3JpcHRpb248L3RoPjwvdHI+CisgICAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iZ29hbCIvPgorICAgICAgICAgIDwvdGFibGU+CisgICAgICAgIDwvZGl2PgorICAgICAgPC9qc2w6dGVtcGxhdGU+CisgICAgICAKKyAgICAgIDwhLS0gYSBnb2FsIC0tPgorICAgICAgICA8IS0tIEZJWE1FOiB0aGlzIGlzIGNvcGllZCBmcm9tIHRyIC0gdGhlcmUgbXVzdCBiZSBhIHdheSBvZgorICAgICAgICAgICAgIGNhbGxpbmcgdGVtcGxhdGVzIGluIGpzbD8gLS0+CisgICAgICA8anNsOnRlbXBsYXRlIG1hdGNoPSJnb2FsIiB0cmltPSJmYWxzZSI+CisgICAgICAgIDxqOmNob29zZT4KKyAgICAgICAgICA8ajp3aGVuIHRlc3Q9IiR7cm93TW9kZSA9PSAnYSd9Ij4KKyAgICAgICAgICAgIDxqOnNldCB2YXI9InJvd01vZGUiIHZhbHVlPSJiIi8+CisgICAgICAgICAgPC9qOndoZW4+CisgICAgICAgICAgPGo6b3RoZXJ3aXNlPgorICAgICAgICAgICAgPGo6c2V0IHZhcj0icm93TW9kZSIgdmFsdWU9ImEiLz4KKyAgICAgICAgICA8L2o6b3RoZXJ3aXNlPgorICAgICAgICA8L2o6Y2hvb3NlPgorICAgICAgICAKKyAgICAgICAgPHg6ZWxlbWVudCBuYW1lPSJ0ciI+PGo6d2hpdGVzcGFjZSB0cmltPSJ0cnVlIj4KKyAgICAgICAgICA8eDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPiR7cm93TW9kZX08L3g6YXR0cmlidXRlPgorICAgICAgICAgIDxqOnNldCB2YXI9Il9nb2FsTmFtZSI+PHg6ZXhwciBzZWxlY3Q9Ii4vbmFtZSIgLz48L2o6c2V0PgorICAgICAgICAgIDx0ZCB3aWR0aD0nMjAlJz48YSBuYW1lPSIke19nb2FsTmFtZX0iPiR7X2dvYWxOYW1lfTwvYT48L3RkPgorICAgICAgICAgIDx0ZCB3aWR0aD0nODAlJz48anNsOmFwcGx5VGVtcGxhdGVzIHNlbGVjdD0iZGVzY3JpcHRpb24iIC8+PC90ZD4KKzwvajp3aGl0ZXNwYWNlPjwveDplbGVtZW50PgorICAgICAgPC9qc2w6dGVtcGxhdGU+ICAgCisgICAgICAKKyAgICAgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9ImRlc2NyaXB0aW9uIj4KKyAgICAgICAgPGpzbDpjb3B5IHRyaW09ImZhbHNlIj4KKyAgICAgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHRyaW09ImZhbHNlIi8+CisgICAgICAgIDwvanNsOmNvcHk+CisgICAgICA8L2pzbDp0ZW1wbGF0ZT4KKworICAgICAgPCEtLSoqKioqKioqKioqKioqKioqKioqKioqKi0tPgorICAgICAgPCEtLSBjaGFuZ2Vsb2cgZG9jdW1lbnRhdGlvbi0tPgorICAgICAgPCEtLSoqKioqKioqKioqKioqKioqKioqKioqKi0tPgorICAgICAgPGpzbDp0ZW1wbGF0ZSBtYXRjaD0iY2hhbmdlbG9nIiB0cmltPSJmYWxzZSI+CisgICAgICAgIDxqOnNldCB2YXI9InJvd01vZGUiIHZhbHVlPSIiIC8+CisgICAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSI+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRoPkRhdGU8L3RoPjx0aD5BdXRob3I8L3RoPjx0aD5GaWxlcy9NZXNzYWdlPC90aD4KKyAgICAgICAgICA8L3RyPgorICAgICAgICAgIDxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSJjaGFuZ2Vsb2ctZW50cnkiIC8+CisgICAgICAgIDwvdGFibGU+CisgICAgICA8L2pzbDp0ZW1wbGF0ZT4KKworICAgICAgPCEtLSB0cmFuc2Zvcm0gYSBjaGFuZ2Vsb2cgZW50cnkgLS0+CisgICAgICA8IS0tIEZJWE1FOiB0ciBjb2RlIGNvcGllZCBmcm9tIGFib3ZlIC0tPgorICAgICAgPGpzbDp0ZW1wbGF0ZSBtYXRjaD0iY2hhbmdlbG9nLWVudHJ5IiB0cmltPSJmYWxzZSI+CisgICAgICAgIDxqOmNob29zZT4KKyAgICAgICAgICA8ajp3aGVuIHRlc3Q9IiR7cm93TW9kZSA9PSAnYSd9Ij4KKyAgICAgICAgICAgIDxqOnNldCB2YXI9InJvd01vZGUiIHZhbHVlPSJiIi8+CisgICAgICAgICAgPC9qOndoZW4+CisgICAgICAgICAgPGo6b3RoZXJ3aXNlPgorICAgICAgICAgICAgPGo6c2V0IHZhcj0icm93TW9kZSIgdmFsdWU9ImEiLz4KKyAgICAgICAgICA8L2o6b3RoZXJ3aXNlPgorICAgICAgICA8L2o6Y2hvb3NlPgorICAgICAgICAKKyAgICAgICAgPHg6ZWxlbWVudCBuYW1lPSJ0ciI+PGo6d2hpdGVzcGFjZSB0cmltPSJ0cnVlIj4KKyAgICAgICAgICA8eDphdHRyaWJ1dGUgbmFtZT0iY2xhc3MiPiR7cm93TW9kZX08L3g6YXR0cmlidXRlPgorICAgICAgICAgIAorICAgICAgICAgIDx0ZD48eDpleHByIHNlbGVjdD0iZGF0ZSIgLz4gPHg6ZXhwciBzZWxlY3Q9InRpbWUiIC8+PC90ZD4KKyAgICAgICAgICA8dGQ+PHg6ZXhwciBzZWxlY3Q9ImF1dGhvciIvPjwvdGQ+CisgICAgICAgICAgPHRkPjxqc2w6YXBwbHlUZW1wbGF0ZXMgc2VsZWN0PSIqIiAvPgorICAgICAgICAgICAgPHByZT48eDpleHByIHNlbGVjdD0ibXNnIi8+PC9wcmU+CisgICAgICAgICAgPC90ZD4KKzwvajp3aGl0ZXNwYWNlPjwveDplbGVtZW50PgorICAgICAgPC9qc2w6dGVtcGxhdGU+CisKKyAgICAgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9ImZpbGUiPgorICAgICAgICA8ajpzZXQgdmFyPSJ1cmwiPiR7cG9tLnJlcG9zaXRvcnkudXJsfTx4OmV4cHIgc2VsZWN0PSJuYW1lIi8+PC9qOnNldD4KKyAgICAgICAgPGo6c2V0IHZhcj0icmV2VXJsIj4ke3VybH0/PHg6ZXhwciBzZWxlY3Q9InJldmlzaW9uIi8+JmFtcDtjb250ZW50LXR5cGU9dGV4dC92bmQudmlld2N2cy1tYXJrdXA8L2o6c2V0PgorICAgICAgICA8YSBocmVmPSIke3VybH0iPjx4OmV4cHIgc2VsZWN0PSJuYW1lIi8+PC9hPiAtIAorICAgICAgICA8YSBocmVmPSIke3JldlVybH0iPnY8eDpleHByIHNlbGVjdD0icmV2aXNpb24iLz48L2E+CisgICAgICAgIDxici8+CisgICAgICA8L2pzbDp0ZW1wbGF0ZT4KKworICA8IS0tIHJlbW92ZSB0aGUgc3BhY2UgYXQgdGhlIGVuZCBvZiBwYXJzZWQgImEiIGFuY2hvcnMgLS0+CisgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9ImEiIHRyaW09ImZhbHNlIj4KKyAgICA8anNsOmNvcHkgdHJpbT0idHJ1ZSI+CisgICAgICA8anNsOmFwcGx5VGVtcGxhdGVzIHRyaW09InRydWUiLz4KKyAgICA8L2pzbDpjb3B5PgorICA8L2pzbDp0ZW1wbGF0ZT4KKworICA8IS0tIGNvcHkgYW55IG90aGVyIGVsZW1lbnRzIHRocm91Z2ggLS0+CisgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9IioiIHRyaW09ImZhbHNlIj48anNsOmNvcHkgdHJpbT0iZmFsc2UiPgorICAgICAgPGpzbDphcHBseVRlbXBsYXRlcyB0cmltPSJmYWxzZSIvPjwvanNsOmNvcHk+PC9qc2w6dGVtcGxhdGU+CisKKyAgIDwhLS0gZWxlbWVudCB2YWx1ZXMgZG9uJ3QgcGFzcyB0aHJvdWdoIGFzIHRleHQgLS0+CisgICA8anNsOnRlbXBsYXRlIG1hdGNoPSJAKiIvPgorCisgICA8IS0tIENEQVRBIGFuZCB0ZXh0IG5vZGVzIHBhc3MtdGhydSAtLT4KKyAgIDxqc2w6dGVtcGxhdGUgbWF0Y2g9InRleHQoKSI+PHg6ZXhwciBzZWxlY3Q9Ii4iLz48L2pzbDp0ZW1wbGF0ZT4KKworPC9qc2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS90aWxlcy9tYXZlbi54bWwgYi9idWlsZC1sZWdhY3kvdGlsZXMvbWF2ZW4ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ3MWFlNjMKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvdGlsZXMvbWF2ZW4ueG1sCkBAIC0wLDAgKzEsMjYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/Pg0KKw0KKzxwcm9qZWN0ICAgIGRlZmF1bHQ9ImFwcHM6YnVpbGQtYWxsIg0KKyAgICAgICAgICAgIHhtbG5zOmo9ImplbGx5OmNvcmUiDQorICAgICAgICAgICAgeG1sbnM6YW50PSJqZWxseTphbnQiDQorICAgICAgICAgICAgeG1sbnM6bWF2ZW49ImplbGx5Om1hdmVuIj4NCisNCisNCisgIDxwb3N0R29hbCBuYW1lPSJkaXN0Ij4NCisgICAgPGF0dGFpbkdvYWwgbmFtZT0iamFyOmluc3RhbGwiLz4NCisgIDwvcG9zdEdvYWw+DQorICANCisgIA0KKyAgPCEtLSBQcmVwYXJlIGFkZGl0aW9uYWwgSmFyIHJlc291cmNlcyAtLT4NCisgIDxwb3N0R29hbCBuYW1lPSJqYXZhOmphci1yZXNvdXJjZXMiPg0KKw0KKyAgICA8IS0tIEdlbmVyYXRlIFRMRHMgLS0+DQorICAgICR7c3lzdGVtU2NvcGUuc2V0UHJvcGVydHkoJ2phdmF4LnhtbC50cmFuc2Zvcm0uVHJhbnNmb3JtZXJGYWN0b3J5Jywnb3JnLmFwYWNoZS54YWxhbi5wcm9jZXNzb3IuVHJhbnNmb3JtZXJGYWN0b3J5SW1wbCcpfQ0KKwk8YW50OnN0eWxlIGJhc2VkaXI9ImRvYy91c2VyR3VpZGUiDQorCQlkZXN0ZGlyPSIke21hdmVuLmJ1aWxkLmRpcn0vY2xhc3Nlcy9NRVRBLUlORi90bGRzIg0KKwkJZXh0ZW5zaW9uPSIudGxkIg0KKwkJc3R5bGU9ImRvYy9zdHlsZXNoZWV0cy90bGQueHNsIg0KKwkJaW5jbHVkZXM9InN0cnV0cy0qLnhtbCIvPg0KKyAgPC9wb3N0R29hbD4NCisgICAgDQorPC9wcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL2J1aWxkLWxlZ2FjeS90aWxlcy9wcm9qZWN0LnByb3BlcnRpZXMgYi9idWlsZC1sZWdhY3kvdGlsZXMvcHJvamVjdC5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxZWE3M2QKLS0tIC9kZXYvbnVsbAorKysgYi9idWlsZC1sZWdhY3kvdGlsZXMvcHJvamVjdC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTI0IEBACisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgUCBSIE8gSiBFIEMgVCAgUCBSIE8gUCBFIFIgVCBJIEUgUyAtIE1vZGVsZWQgYWZ0ZXIgVHVyYmluZSBwcm9qZWN0LnByb3BlcnRpZXMKKyMKKyMgJElkOiBwcm9qZWN0LnByb3BlcnRpZXMgMTA1ODgxIDIwMDQtMTEtMTkgMjE6MDA6NDNaIGdlcm11c2thICQKKyMKKyMgRG8gbm90IGNoYW5nZSB0aGlzIGZpbGUuIFBsZWFzZSB1c2UgYnVpbGQucHJvcGVydGllcyBpbiB0aGlzIGRpcmVjdG9yeQorIyB0byBkbyBzaXRlIG9yIGluc3RhbGxhdGlvbiBzcGVjaWZpYyBjaGFuZ2VzIHRvIHRoZSBwcm9qZWN0IGJ1aWxkLgorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK21hdmVuLnJlcG8ucmVtb3RlPWh0dHA6Ly93d3cuaWJpYmxpby5vcmcvbWF2ZW4vLGh0dHA6Ly9jdnMuYXBhY2hlLm9yZy9yZXBvc2l0b3J5LworCittYXZlbi5jaGVja3N0eWxlLnByb3BlcnRpZXMgPSBjb25mL3FhL0NoZWNrU3R5bGUueG1sCisKKyNrZWVwIGFudCAmIG1hdmVuIGRpcmVjdG9yaWVzIHNlcGFyYXRlLgorI1dlIGRvIHRoaXMgaW4gc3RydXRzIGNvcmUsIGJ1dCBJIHRoaW5rIGFzIHdlIG1vdmUgdG8gdXNlIE1hdmVuIG1vcmUsIHdlIHdpbGwKKyMgcHJvYmFibHkgdXNlIHRoZSBub3JtYWwgInRhcmdldCIgZGlyLgorI21hdmVuLmJ1aWxkLmRpcj1tLXRhcmdldAorCisjIGRvYy5kaXIgaXMgYSBwcm9wZXJ0eSB1c2VkIGluIHRoZSBvcmlnaW5hbCBBbnQtb3JpZW50ZWQgYnVpbGQueG1sLgorIyBkZWZpbmUgaXQgaGVyZSB0byBtYWtlIGl0IGVhc2llciB0byBwb3J0IGFudCB0YXNrcyB0byBtYXZlbi54bWwKK2RvYy5kaXI9ZG9jCisKKyMgZGlzcGxheSB0aGUgZGF0ZSBvbiB0aGUgc2l0ZQorbWF2ZW4ueGRvYy5kYXRlID0gbGVmdAorIyBEaXNwbGF5IHRoZSB2ZXJzaW9uIHRoZSB3ZWIgc2l0ZSBpcyBkb2N1bWVudGluZworbWF2ZW4ueGRvYy52ZXJzaW9uID0gJHtwb20uY3VycmVudFZlcnNpb259CisjIERheXMgdG8gcmVwb3J0IGluIHRoZSBjaGFuZ2UgbG9nCittYXZlbi5jaGFuZ2Vsb2cucmFuZ2U9MzAKKworY29tcGlsZS5kZWJ1ZyA9IG9uCitjb21waWxlLm9wdGltaXplID0gb2ZmCitjb21waWxlLmRlcHJlY2F0aW9uID0gb24KK21hdmVuLmNvbXBpbGUuZGVwcmVjYXRpb24gPSBvbgorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRCBFIFAgTCBPIFkgTSBFIE4gVCAgUCBSIE8gUCBFIFIgVCBJIEUgUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjLSBtYXZlbi5yZXBvLmNlbnRyYWwgYW5kIG1hdmVuLnJlcG8uY2VudHJhbC5kaXJlY3RvcnkgYXJlIHVzZWQgdG8gZGVwbG95CisjLSBqYXJzIHRvIGJlIHVzZWQgYnkgb3RoZXIgcHJvamVjdHMuICAKKyMKKyMtIEZvciBuaWdodGx5IGJ1aWxkcywgdXNlOgorIy0gICAgbWF2ZW4gamFyOmRlcGxveS1zbmFwc2hvdCAKKyMtIFRoaXMgd2lsbCBkZXBsb3kgdG8gdGhlICdkZWZhdWx0JyBkaXJlY3RvcnksIHdoaWNoIGNvcnJlc3BvbmRzIHRvIHRoZSAicmVtb3RlIiByZXBvc2l0b3J5CisjLSAgaHR0cDovL2N2cy5hcGFjaGUub3JnL3JlcG9zaXRvcnkvCisjLSBGb3IgcHJvZHVjdGlvbiBidWlsZHMsIHVzZToKKyMtICAgIG1hdmVuIC1EbWF2ZW4ucmVwby5jZW50cmFsLmRpcmVjdG9yeT0vd3d3L3d3dy5hcGFjaGUub3JnL2Rpc3QvamF2YS1yZXBvc2l0b3J5LyBqYXI6ZGVwbG95CisjLSBUaGF0IGRpcmVjdG9yeSBpcyBwZXJpb2RpY2FsbHkgbWlycm9yZWQgd2l0aCB0aGUgInN0YW5kYXJkIiBNYXZlbiByZXBvIGF0IGliaWJsaW8KKyMtIFNwZWNpZnkgeW91ciB1c2VybmFtZSBhdCB0aGUgcmVtb3RlIHJlcG9zaXRvcnkgKGN2cy5hcGFjaGUub3JnKSAKKyMtIHdpdGggdGhlIG1hdmVuIHByb3BlcnR5ICdtYXZlbi51c2VybmFtZScKK21hdmVuLnJlcG8uY2VudHJhbD1jdnMuYXBhY2hlLm9yZworbWF2ZW4ucmVwby5jZW50cmFsLmRpcmVjdG9yeT0vd3d3L2N2cy5hcGFjaGUub3JnL3JlcG9zaXRvcnkvICMgbmlnaHRseSBidWlsZHMKKyNtYXZlbi5yZXBvLmNlbnRyYWwuZGlyZWN0b3J5PS93d3cvd3d3LmFwYWNoZS5vcmcvZGlzdC9qYXZhLXJlcG9zaXRvcnkvICMgcmVsZWFzZXMKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIE4gSSBHIEggVCBMIFkgICBCIFUgSSBMIEQgICBQIFIgTyBQIEUgUiBUIEkgRSBTCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwordmFsaWRhdG9yLm5pZ2h0bHkuZGlzdC5kaXIgPSBcCisgICAgL3d3dy9qYWthcnRhLmFwYWNoZS5vcmcvYnVpbGRzL2pha2FydGEtc3RydXRzL25pZ2h0bHkKKyAgICAKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBYIEQgTyBDICAgUCBSIE8gUCBFIFIgVCBJIEUgUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjbWF2ZW4ueGRvYy5pbmNsdWRlUHJvamVjdERvY3VtZW50YXRpb249bm8KKyNDb21tZW50IG91dCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gdXNlIHRoZSBzdGFuZGFyZCBNYXZlbiBzdHlsZXNoZWV0CittYXZlbi54ZG9jLmpzbD1zdHJ1dHMuanNsCisjIExpbmtzIHRvIFN0cnV0cyBEZXZlbG9wbWVudCBQcm9jZXNzIGRvYyBpbnN0ZWFkIG9mIE1hdmVuIGRlZmF1bHQgZG9jCittYXZlbi54ZG9jLmRldmVsb3BtZW50UHJvY2Vzc1VybD0vcmVsZWFzZXMuaHRtbAorCisjUG93ZXJlZCBCeSBsb2dvIAorI21hdmVuLnhkb2MucG93ZXJlZGJ5LmltYWdlPXN0cnV0cy1wb3dlci5naWYKKyNtYXZlbi54ZG9jLnBvd2VyZWRieS50aXRsZT1Qb3dlcmVkIGJ5IFN0cnV0cworI21hdmVuLnhkb2MucG93ZXJlZGJ5LnVybD1odHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy8KK21hdmVuLnhkb2MucG93ZXJlZGJ5LmltYWdlPQorbWF2ZW4ueGRvYy5wb3dlcmVkYnkudGl0bGU9CittYXZlbi54ZG9jLnBvd2VyZWRieS51cmw9CisKK21hdmVuLnVpLmJhbm5lci5iYWNrZ3JvdW5kPSNmZmZmZmYKK21hdmVuLnVpLmJhbm5lci5mb3JlZ3JvdW5kPSMwMDAwMDAKK21hdmVuLnVpLmJhbm5lci5ib3JkZXIudG9wPSNmZmZmZmYKK21hdmVuLnVpLmJhbm5lci5ib3JkZXIuYm90dG9tPSNmZmZmZmYKKworbWF2ZW4udWkubmF2Y29sLmJhY2tncm91bmQ9I2ZmZmZmZgorbWF2ZW4udWkubmF2Y29sLmJvcmRlci50b3A9I2ZmZmZmZgorbWF2ZW4udWkubmF2Y29sLmJvcmRlci5yaWdodD0jZmZmZmZmCittYXZlbi51aS5uYXZjb2wuYm9yZGVyLmJvdHRvbT0jZmZmZmZmCisKK21hdmVuLnVpLmJyZWFkY3J1bWJzLmJhY2tncm91bmQ9I2ZmZmZmZgorbWF2ZW4udWkuYnJlYWRjcnVtYnMuZm9yZWdyb3VuZD0jNjY2NjY2CittYXZlbi51aS5icmVhZGNydW1icy5ib3JkZXIudG9wPSNmZmZmZmYKK21hdmVuLnVpLmJyZWFkY3J1bWJzLmJvcmRlci5ib3R0b209IzAwMDAwMAorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQyBBIEMgVCBVIFMgICBQIEwgVSBHIC0gSSBOICAgUCBSIE8gUCBFIFIgVCBJIEUgUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitjYWN0dXMuc3JjLmRpciA9IHNyYy90ZXN0CitjYWN0dXMuc3JjLmluY2x1ZGVzID0gb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1Rlc3RBY3Rpb25TZXJ2bGV0LmphdmEsb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliLyoqL1Rlc3QqLmphdmEKKworIyMgQ2FjdHVzIFBsdWctaW46IFRvbWNhdCA0IHNwZWNpZmljIAorIyBjYWN0dXMudG9tY2F0NHguY29uZmlnIChvcHRpb25hbCkKKyMgTG9jYXRpb24gb2YgdGhlIFRvbWNhdCA0LnggY29uZmlndXJhdGlvbiBmaWxlIGlmIHlvdSBkb24ndCB3YW50IHRvIHVzZSB0aGUgY2FjdHVzLXByb3ZpZGVkIG9uZS4KKyMgY2FjdHVzLnRvbWNhdDR4LmNvbmYuZGlyIChvcHRpb25hbCkKKyMgTG9jYXRpb24gb2YgY3VzdG9tIFRvbWNhdCA0LnggY29uZmlndXJhdGlvbiBmaWxlIHRoYXQgd2lsbCBiZSBjb3BpZWQsIG92ZXJ3cml0aW5nIHRoZSBDYWN0dXMtcHJvdmlkZWQgY29uZmlndXJhdGlvbiBmaWxlcy4KK2NhY3R1cy50b21jYXQ0eC5jb25mLmRpciA9IGNvbmYvdGVzdC90b21jYXQ0MQorIyBjYWN0dXMudG9tY2F0NHguY29uZi5pbmNsdWRlcyAob3B0aW9uYWwpCisjIENvbmZpZ3VyYXRpb24gZmlsZXMgbG9jYXRlZCBhdCR7Y2FjdHVzLnRvbWNhdDR4LmNvbmYuZGlyIHRoYXQgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBUb21jYXQgNC54IGNvbnRhaW5lciBzZXQgdXAgYnkgQ2FjdHVzLgorIyBjYWN0dXMudG9tY2F0NHguY29uZi5leGNsdWRlcyAob3B0aW9uYWwpCisjIENvbmZpZ3VyYXRpb24gZmlsZXMgbG9jYXRlZCBhdCR7Y2FjdHVzLnRvbWNhdDR4LmNvbmYuZGlyIHRoYXQgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgVG9tY2F0IDQueCBjb250YWluZXIgc2V0IHVwIGJ5IENhY3R1cy4KKyMgY2FjdHVzLnRvbWNhdDR4LnRtcGRpciAob3B0aW9uYWwpCisjIERpcmVjdG9yeSB0byB3aGljaCB0aGUgY29udGFpbmVyIHdpbGwgYmUgaW5zdGFsbGVkIGZvciB0aGUgdGVzdHMuIEJ5IGRlZmF1bHQgdGhlIHN5c3RlbSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGlzIHVzZWQuCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBBIFAgQSBDIEggRSAgUiBFIFAgTyBTIEkgVCBPIFIgWSAgUCBSIE8gUCBFIFIgVCBJIEUgUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEJlY2F1c2UgdGhlIHJlcG9zaXRvcnkgdXNlciBuYW1lIGlzIGRpZmZlcmVudCBmb3IgZWFjaCBwZXJzb24sIGl0IHNob3VsZCBub3QKKyMgYmUgZGVmaW5lZCBpbiB0aGUgc2hhcmVkICJwcm9qZWN0LnByb3BlcnRpZXMiICAKKyMgRGVmaW5lIHRoaXMgb24gdGhlIGNvbW1hbmQgbGluZSwgb3IgaW4geW91ciBvd24gYnVpbGQucHJvcGVydGllcyBmaWxlOgorIyBpbiBvcmRlciB0byBkZXBsb3kgdG8gdGhlIHJlcG9zaXRvcnk6Cisjc3NoIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MganVzdCByZXF1aXJlIHlvdXIgYXBhY2hlIGlkIHRvIGxvZyBvbiB3aXRoCisjbWF2ZW4udXNlcm5hbWU9PGFwYWNoZS11c2VyLW5hbWU+IChET04nVCBVTkNPTU1FTlQgVEhJUyBMSU5FIElOIFNIQVJFRCBwcm9qZWN0LnByb3BlcnQKKworbWF2ZW4uY2hhbmdlbG9nLmZhY3RvcnkgPSBvcmcuYXBhY2hlLm1hdmVuLnN2bmxpYi5Tdm5DaGFuZ2VMb2dGYWN0b3J5CisKKwpkaWZmIC0tZ2l0IGEvcG9tLnhtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9wb20ueG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBwb20ueG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vcG9tLnhtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL0Fic3RyYWN0UmVtb3RlQmVhbi5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9BYnN0cmFjdFJlbW90ZUJlYW4uamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL0Fic3RyYWN0UmVtb3RlQmVhbi5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL0Fic3RyYWN0UmVtb3RlQmVhbi5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvQWJzdHJhY3RWYWxpZGF0ZUJlYW4uamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvQWJzdHJhY3RWYWxpZGF0ZUJlYW4uamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL0Fic3RyYWN0VmFsaWRhdGVCZWFuLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvQWJzdHJhY3RWYWxpZGF0ZUJlYW4uamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL0FuY2hvci5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9BbmNob3IuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL0FuY2hvci5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL0FuY2hvci5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvQXV0b2NvbXBsZXRlci5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9BdXRvY29tcGxldGVyLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9BdXRvY29tcGxldGVyLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvQXV0b2NvbXBsZXRlci5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvQmluZC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9CaW5kLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9CaW5kLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvQmluZC5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvRGF0ZVRpbWVQaWNrZXIuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvRGF0ZVRpbWVQaWNrZXIuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL0RhdGVUaW1lUGlja2VyLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvRGF0ZVRpbWVQaWNrZXIuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL0Rpdi5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9EaXYuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL0Rpdi5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL0Rpdi5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvSGVhZC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9IZWFkLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9IZWFkLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvSGVhZC5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvUmVtb3RlQmVhbi5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9SZW1vdGVCZWFuLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9SZW1vdGVCZWFuLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvUmVtb3RlQmVhbi5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvU3VibWl0LmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL1N1Ym1pdC5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvU3VibWl0LmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvU3VibWl0LmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9UYWJiZWRQYW5lbC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9UYWJiZWRQYW5lbC5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvVGFiYmVkUGFuZWwuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9UYWJiZWRQYW5lbC5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvVGV4dEFyZWEuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvVGV4dEFyZWEuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL1RleHRBcmVhLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvVGV4dEFyZWEuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL1RyZWUuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvVHJlZS5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL2NvbXBvbmVudHMvVHJlZS5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL1RyZWUuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL1RyZWVOb2RlLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL1RyZWVOb2RlLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vY29tcG9uZW50cy9UcmVlTm9kZS5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9jb21wb25lbnRzL1RyZWVOb2RlLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvRG9qb1RhZ0xpYnJhcnkuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL0Rvam9UYWdMaWJyYXJ5LmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvRG9qb1RhZ0xpYnJhcnkuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvRG9qb1RhZ0xpYnJhcnkuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvQW5jaG9yTW9kZWwuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2ZyZWVtYXJrZXIvdGFncy9BbmNob3JNb2RlbC5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2ZyZWVtYXJrZXIvdGFncy9BbmNob3JNb2RlbC5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvQW5jaG9yTW9kZWwuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvQXV0b2NvbXBsZXRlck1vZGVsLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvQXV0b2NvbXBsZXRlck1vZGVsLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL0F1dG9jb21wbGV0ZXJNb2RlbC5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvQXV0b2NvbXBsZXRlck1vZGVsLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL0JpbmRNb2RlbC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL0JpbmRNb2RlbC5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2ZyZWVtYXJrZXIvdGFncy9CaW5kTW9kZWwuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL0JpbmRNb2RlbC5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2ZyZWVtYXJrZXIvdGFncy9EYXRlVGltZVBpY2tlck1vZGVsLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvRGF0ZVRpbWVQaWNrZXJNb2RlbC5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2ZyZWVtYXJrZXIvdGFncy9EYXRlVGltZVBpY2tlck1vZGVsLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2ZyZWVtYXJrZXIvdGFncy9EYXRlVGltZVBpY2tlck1vZGVsLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL0Rpdk1vZGVsLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvRGl2TW9kZWwuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvRGl2TW9kZWwuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL0Rpdk1vZGVsLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL0Rvam9Nb2RlbHMuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2ZyZWVtYXJrZXIvdGFncy9Eb2pvTW9kZWxzLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL0Rvam9Nb2RlbHMuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL0Rvam9Nb2RlbHMuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvSGVhZE1vZGVsLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvSGVhZE1vZGVsLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL0hlYWRNb2RlbC5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvSGVhZE1vZGVsLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL1N1Ym1pdE1vZGVsLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvU3VibWl0TW9kZWwuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvU3VibWl0TW9kZWwuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL1N1Ym1pdE1vZGVsLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL1RhYmJlZFBhbmVsTW9kZWwuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2ZyZWVtYXJrZXIvdGFncy9UYWJiZWRQYW5lbE1vZGVsLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL1RhYmJlZFBhbmVsTW9kZWwuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL1RhYmJlZFBhbmVsTW9kZWwuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvVGV4dEFyZWFNb2RlbC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL1RleHRBcmVhTW9kZWwuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvVGV4dEFyZWFNb2RlbC5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvVGV4dEFyZWFNb2RlbC5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2ZyZWVtYXJrZXIvdGFncy9UcmVlTW9kZWwuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2ZyZWVtYXJrZXIvdGFncy9UcmVlTW9kZWwuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvVHJlZU1vZGVsLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2ZyZWVtYXJrZXIvdGFncy9UcmVlTW9kZWwuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvVHJlZU5vZGVNb2RlbC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvZnJlZW1hcmtlci90YWdzL1RyZWVOb2RlTW9kZWwuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvVHJlZU5vZGVNb2RlbC5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9mcmVlbWFya2VyL3RhZ3MvVHJlZU5vZGVNb2RlbC5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BYnN0cmFjdFJlbW90ZVRhZy5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0Fic3RyYWN0UmVtb3RlVGFnLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0Fic3RyYWN0UmVtb3RlVGFnLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BYnN0cmFjdFJlbW90ZVRhZy5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BYnN0cmFjdFZhbGlkYXRlVGFnLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvQWJzdHJhY3RWYWxpZGF0ZVRhZy5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BYnN0cmFjdFZhbGlkYXRlVGFnLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BYnN0cmFjdFZhbGlkYXRlVGFnLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0FuY2hvclRhZy5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0FuY2hvclRhZy5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BbmNob3JUYWcuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0FuY2hvclRhZy5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BdXRvY29tcGxldGVyVGFnLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvQXV0b2NvbXBsZXRlclRhZy5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BdXRvY29tcGxldGVyVGFnLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BdXRvY29tcGxldGVyVGFnLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0JpbmRUYWcuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9CaW5kVGFnLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0JpbmRUYWcuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0JpbmRUYWcuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvRGF0ZVRpbWVQaWNrZXJUYWcuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9EYXRlVGltZVBpY2tlclRhZy5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9EYXRlVGltZVBpY2tlclRhZy5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvRGF0ZVRpbWVQaWNrZXJUYWcuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvRGl2VGFnLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvRGl2VGFnLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0RpdlRhZy5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvRGl2VGFnLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0hlYWRUYWcuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9IZWFkVGFnLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0hlYWRUYWcuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0hlYWRUYWcuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvU3VibWl0VGFnLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvU3VibWl0VGFnLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1N1Ym1pdFRhZy5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvU3VibWl0VGFnLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RhYmJlZFBhbmVsVGFnLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVGFiYmVkUGFuZWxUYWcuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVGFiYmVkUGFuZWxUYWcuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RhYmJlZFBhbmVsVGFnLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RleHRhcmVhVGFnLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVGV4dGFyZWFUYWcuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVGV4dGFyZWFUYWcuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RleHRhcmVhVGFnLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RyZWVOb2RlVGFnLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVHJlZU5vZGVUYWcuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVHJlZU5vZGVUYWcuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RyZWVOb2RlVGFnLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RyZWVUYWcuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9UcmVlVGFnLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RyZWVUYWcuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RyZWVUYWcuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy92ZWxvY2l0eS9jb21wb25lbnRzL0FuY2hvckRpcmVjdGl2ZS5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9BbmNob3JEaXJlY3RpdmUuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy92ZWxvY2l0eS9jb21wb25lbnRzL0FuY2hvckRpcmVjdGl2ZS5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy92ZWxvY2l0eS9jb21wb25lbnRzL0FuY2hvckRpcmVjdGl2ZS5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvQXV0b2NvbXBsZXRlckRpcmVjdGl2ZS5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9BdXRvY29tcGxldGVyRGlyZWN0aXZlLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9BdXRvY29tcGxldGVyRGlyZWN0aXZlLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvQXV0b2NvbXBsZXRlckRpcmVjdGl2ZS5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvQmluZERpcmVjdGl2ZS5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9CaW5kRGlyZWN0aXZlLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9CaW5kRGlyZWN0aXZlLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvQmluZERpcmVjdGl2ZS5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvRGF0ZVRpbWVQaWNrZXJEaXJlY3RpdmUuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvRGF0ZVRpbWVQaWNrZXJEaXJlY3RpdmUuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy92ZWxvY2l0eS9jb21wb25lbnRzL0RhdGVUaW1lUGlja2VyRGlyZWN0aXZlLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvRGF0ZVRpbWVQaWNrZXJEaXJlY3RpdmUuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy92ZWxvY2l0eS9jb21wb25lbnRzL0RpdkRpcmVjdGl2ZS5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9EaXZEaXJlY3RpdmUuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy92ZWxvY2l0eS9jb21wb25lbnRzL0RpdkRpcmVjdGl2ZS5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy92ZWxvY2l0eS9jb21wb25lbnRzL0RpdkRpcmVjdGl2ZS5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvRG9qb0Fic3RyYWN0RGlyZWN0aXZlLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy92ZWxvY2l0eS9jb21wb25lbnRzL0Rvam9BYnN0cmFjdERpcmVjdGl2ZS5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvRG9qb0Fic3RyYWN0RGlyZWN0aXZlLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvRG9qb0Fic3RyYWN0RGlyZWN0aXZlLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9IZWFkRGlyZWN0aXZlLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy92ZWxvY2l0eS9jb21wb25lbnRzL0hlYWREaXJlY3RpdmUuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy92ZWxvY2l0eS9jb21wb25lbnRzL0hlYWREaXJlY3RpdmUuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9IZWFkRGlyZWN0aXZlLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9TdWJtaXREaXJlY3RpdmUuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvU3VibWl0RGlyZWN0aXZlLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9TdWJtaXREaXJlY3RpdmUuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9TdWJtaXREaXJlY3RpdmUuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy92ZWxvY2l0eS9jb21wb25lbnRzL1RhYmJlZFBhbmVsRGlyZWN0aXZlLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy92ZWxvY2l0eS9jb21wb25lbnRzL1RhYmJlZFBhbmVsRGlyZWN0aXZlLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9UYWJiZWRQYW5lbERpcmVjdGl2ZS5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy92ZWxvY2l0eS9jb21wb25lbnRzL1RhYmJlZFBhbmVsRGlyZWN0aXZlLmphdmEKZGlmZiAtLWdpdCBhL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9UZXh0QXJlYURpcmVjdGl2ZS5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9UZXh0QXJlYURpcmVjdGl2ZS5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvVGV4dEFyZWFEaXJlY3RpdmUuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9UZXh0QXJlYURpcmVjdGl2ZS5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvVHJlZURpcmVjdGl2ZS5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9UcmVlRGlyZWN0aXZlLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvdmVsb2NpdHkvY29tcG9uZW50cy9UcmVlRGlyZWN0aXZlLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvVHJlZURpcmVjdGl2ZS5qYXZhCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvVHJlZU5vZGVEaXJlY3RpdmUuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvVHJlZU5vZGVEaXJlY3RpdmUuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy92ZWxvY2l0eS9jb21wb25lbnRzL1RyZWVOb2RlRGlyZWN0aXZlLmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL3ZlbG9jaXR5L2NvbXBvbmVudHMvVHJlZU5vZGVEaXJlY3RpdmUuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL01FVEEtSU5GL1JFQURNRS50eHQgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL01FVEEtSU5GL1JFQURNRS50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9NRVRBLUlORi9SRUFETUUudHh0CnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL01FVEEtSU5GL1JFQURNRS50eHQKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9OT1RJQ0UudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9OT1RJQ0UudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvTk9USUNFLnR4dApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9OT1RJQ0UudHh0CmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9UYWJiZWRQYW5lbC5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvVGFiYmVkUGFuZWwuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9UYWJiZWRQYW5lbC5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9UYWJiZWRQYW5lbC5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vTElDRU5TRSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL0xJQ0VOU0UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vTElDRU5TRQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vTElDRU5TRQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9SRUFETUUgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9SRUFETUUKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vUkVBRE1FCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9SRUFETUUKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vU3RvcmFnZV92ZXJzaW9uNi5zd2YgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9TdG9yYWdlX3ZlcnNpb242LnN3ZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9TdG9yYWdlX3ZlcnNpb242LnN3ZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vU3RvcmFnZV92ZXJzaW9uNi5zd2YKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9TdG9yYWdlX3ZlcnNpb244LnN3ZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL1N0b3JhZ2VfdmVyc2lvbjguc3dmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL1N0b3JhZ2VfdmVyc2lvbjguc3dmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9TdG9yYWdlX3ZlcnNpb244LnN3ZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL2J1aWxkLnR4dCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL2J1aWxkLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9idWlsZC50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL2J1aWxkLnR4dApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9kb2pvLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vZG9qby5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9kb2pvLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9kb2pvLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL2Rvam8uanMudW5jb21wcmVzc2VkLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vZG9qby5qcy51bmNvbXByZXNzZWQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vZG9qby5qcy51bmNvbXByZXNzZWQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL2Rvam8uanMudW5jb21wcmVzc2VkLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL2ZsYXNoNl9nYXRld2F5LnN3ZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL2ZsYXNoNl9nYXRld2F5LnN3ZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9mbGFzaDZfZ2F0ZXdheS5zd2YKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL2ZsYXNoNl9nYXRld2F5LnN3ZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL2lmcmFtZV9oaXN0b3J5Lmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9pZnJhbWVfaGlzdG9yeS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL2lmcmFtZV9oaXN0b3J5Lmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL2lmcmFtZV9oaXN0b3J5Lmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vbmxzL2Rvam9fUk9PVC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX1JPT1QuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vbmxzL2Rvam9fUk9PVC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vbmxzL2Rvam9fUk9PVC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19kZS1kZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2RlLWRlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2RlLWRlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19kZS1kZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19kZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2RlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2RlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19kZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19lbi1nYi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2VuLWdiLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2VuLWdiLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19lbi1nYi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19lbi11cy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2VuLXVzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2VuLXVzLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19lbi11cy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19lbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2VuLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2VuLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19lbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19lcy1lcy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2VzLWVzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2VzLWVzLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19lcy1lcy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19lcy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2VzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2VzLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19lcy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19mci1mci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2ZyLWZyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2ZyLWZyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19mci1mci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19mci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2ZyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2ZyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19mci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19pdC1pdC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2l0LWl0LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2l0LWl0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19pdC1pdC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19pdC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2l0LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2l0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19pdC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19qYS1qcC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2phLWpwLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2phLWpwLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19qYS1qcC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19qYS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2phLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2phLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19qYS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19rby1rci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2tvLWtyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2tvLWtyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19rby1rci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19rby5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2tvLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX2tvLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19rby5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19wdC1ici5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX3B0LWJyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX3B0LWJyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19wdC1ici5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19wdC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX3B0LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX3B0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb19wdC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb194eC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX3h4LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX3h4LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb194eC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb196aC1jbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX3poLWNuLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX3poLWNuLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb196aC1jbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb196aC10dy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX3poLXR3LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX3poLXR3LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb196aC10dy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb196aC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX3poLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL25scy9kb2pvX3poLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9ubHMvZG9qb196aC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvQWRhcHRlclJlZ2lzdHJ5LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL0FkYXB0ZXJSZWdpc3RyeS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvQWRhcHRlclJlZ2lzdHJ5LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvQWRhcHRlclJlZ2lzdHJ5LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9EZWZlcnJlZC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9EZWZlcnJlZC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvRGVmZXJyZWQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9EZWZlcnJlZC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvRGVmZXJyZWRMaXN0LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL0RlZmVycmVkTGlzdC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvRGVmZXJyZWRMaXN0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvRGVmZXJyZWRMaXN0LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9hMTF5LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2ExMXkuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2ExMXkuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9hMTF5LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9hbmltYXRpb24uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYW5pbWF0aW9uLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9hbmltYXRpb24uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9hbmltYXRpb24uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2FuaW1hdGlvbi9BbmltYXRpb24uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYW5pbWF0aW9uL0FuaW1hdGlvbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYW5pbWF0aW9uL0FuaW1hdGlvbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2FuaW1hdGlvbi9BbmltYXRpb24uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2FuaW1hdGlvbi9BbmltYXRpb25FdmVudC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9hbmltYXRpb24vQW5pbWF0aW9uRXZlbnQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2FuaW1hdGlvbi9BbmltYXRpb25FdmVudC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2FuaW1hdGlvbi9BbmltYXRpb25FdmVudC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYW5pbWF0aW9uL0FuaW1hdGlvblNlcXVlbmNlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2FuaW1hdGlvbi9BbmltYXRpb25TZXF1ZW5jZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYW5pbWF0aW9uL0FuaW1hdGlvblNlcXVlbmNlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYW5pbWF0aW9uL0FuaW1hdGlvblNlcXVlbmNlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9hbmltYXRpb24vVGltZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYW5pbWF0aW9uL1RpbWVyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9hbmltYXRpb24vVGltZXIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9hbmltYXRpb24vVGltZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2FuaW1hdGlvbi9fX3BhY2thZ2VfXy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9hbmltYXRpb24vX19wYWNrYWdlX18uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2FuaW1hdGlvbi9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2FuaW1hdGlvbi9fX3BhY2thZ2VfXy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYmVoYXZpb3IuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYmVoYXZpb3IuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2JlaGF2aW9yLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYmVoYXZpb3IuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2Jvb3RzdHJhcDEuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYm9vdHN0cmFwMS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYm9vdHN0cmFwMS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2Jvb3RzdHJhcDEuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2Jvb3RzdHJhcDIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYm9vdHN0cmFwMi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYm9vdHN0cmFwMi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2Jvb3RzdHJhcDIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2Jyb3dzZXJfZGVidWcuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYnJvd3Nlcl9kZWJ1Zy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYnJvd3Nlcl9kZWJ1Zy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2Jyb3dzZXJfZGVidWcuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2Jyb3dzZXJfZGVidWdfeGQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYnJvd3Nlcl9kZWJ1Z194ZC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvYnJvd3Nlcl9kZWJ1Z194ZC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2Jyb3dzZXJfZGVidWdfeGQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NhbC9pQ2FsZW5kYXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2FsL2lDYWxlbmRhci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2FsL2lDYWxlbmRhci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NhbC9pQ2FsZW5kYXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NhbC90ZXh0RGlyZWN0b3J5LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NhbC90ZXh0RGlyZWN0b3J5LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jYWwvdGV4dERpcmVjdG9yeS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NhbC90ZXh0RGlyZWN0b3J5LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9BeGlzLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL0F4aXMuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL0F4aXMuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9BeGlzLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9DaGFydC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9DaGFydC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2hhcnRpbmcvQ2hhcnQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9DaGFydC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2hhcnRpbmcvUGxvdC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9QbG90LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9QbG90LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2hhcnRpbmcvUGxvdC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2hhcnRpbmcvUGxvdEFyZWEuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2hhcnRpbmcvUGxvdEFyZWEuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL1Bsb3RBcmVhLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2hhcnRpbmcvUGxvdEFyZWEuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL1Bsb3R0ZXJzLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL1Bsb3R0ZXJzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9QbG90dGVycy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL1Bsb3R0ZXJzLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9SRUFETUUudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL1JFQURNRS50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL1JFQURNRS50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9SRUFETUUudHh0CmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9TZXJpZXMuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2hhcnRpbmcvU2VyaWVzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9TZXJpZXMuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9TZXJpZXMuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL19fcGFja2FnZV9fLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL19fcGFja2FnZV9fLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL19fcGFja2FnZV9fLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9zdmcvQXhpcy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9zdmcvQXhpcy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2hhcnRpbmcvc3ZnL0F4aXMuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9zdmcvQXhpcy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2hhcnRpbmcvc3ZnL1Bsb3RBcmVhLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL3N2Zy9QbG90QXJlYS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2hhcnRpbmcvc3ZnL1Bsb3RBcmVhLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2hhcnRpbmcvc3ZnL1Bsb3RBcmVhLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9zdmcvUGxvdHRlcnMuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2hhcnRpbmcvc3ZnL1Bsb3R0ZXJzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9zdmcvUGxvdHRlcnMuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy9zdmcvUGxvdHRlcnMuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL3ZtbC9BeGlzLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL3ZtbC9BeGlzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy92bWwvQXhpcy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL3ZtbC9BeGlzLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy92bWwvUGxvdEFyZWEuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY2hhcnRpbmcvdm1sL1Bsb3RBcmVhLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy92bWwvUGxvdEFyZWEuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy92bWwvUGxvdEFyZWEuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL3ZtbC9QbG90dGVycy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jaGFydGluZy92bWwvUGxvdHRlcnMuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL3ZtbC9QbG90dGVycy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NoYXJ0aW5nL3ZtbC9QbG90dGVycy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY29sbGVjdGlvbnMvQXJyYXlMaXN0LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL0FycmF5TGlzdC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY29sbGVjdGlvbnMvQXJyYXlMaXN0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY29sbGVjdGlvbnMvQXJyYXlMaXN0LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9CaW5hcnlUcmVlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL0JpbmFyeVRyZWUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL0JpbmFyeVRyZWUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9CaW5hcnlUcmVlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9Db2xsZWN0aW9ucy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9Db2xsZWN0aW9ucy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY29sbGVjdGlvbnMvQ29sbGVjdGlvbnMuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9Db2xsZWN0aW9ucy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY29sbGVjdGlvbnMvRGljdGlvbmFyeS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9EaWN0aW9uYXJ5LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9EaWN0aW9uYXJ5LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY29sbGVjdGlvbnMvRGljdGlvbmFyeS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY29sbGVjdGlvbnMvR3JhcGguanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY29sbGVjdGlvbnMvR3JhcGguanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL0dyYXBoLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY29sbGVjdGlvbnMvR3JhcGguanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL1F1ZXVlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL1F1ZXVlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9RdWV1ZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL1F1ZXVlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9TZXQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY29sbGVjdGlvbnMvU2V0LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9TZXQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9TZXQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL1NraXBMaXN0LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL1NraXBMaXN0LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9Ta2lwTGlzdC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL1NraXBMaXN0LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9Tb3J0ZWRMaXN0LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL1NvcnRlZExpc3QuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL1NvcnRlZExpc3QuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9Tb3J0ZWRMaXN0LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9TdGFjay5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9TdGFjay5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY29sbGVjdGlvbnMvU3RhY2suanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9TdGFjay5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY29sbGVjdGlvbnMvU3RvcmUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY29sbGVjdGlvbnMvU3RvcmUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL1N0b3JlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY29sbGVjdGlvbnMvU3RvcmUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL19fcGFja2FnZV9fLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL19fcGFja2FnZV9fLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jb2xsZWN0aW9ucy9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NvbGxlY3Rpb25zL19fcGFja2FnZV9fLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jcnlwdG8uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY3J5cHRvLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jcnlwdG8uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jcnlwdG8uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9CbG93ZmlzaC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jcnlwdG8vQmxvd2Zpc2guanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9CbG93ZmlzaC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9CbG93ZmlzaC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY3J5cHRvL0xJQ0VOU0UgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY3J5cHRvL0xJQ0VOU0UKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9MSUNFTlNFCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY3J5cHRvL0xJQ0VOU0UKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9NRDUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY3J5cHRvL01ENS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY3J5cHRvL01ENS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9NRDUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9SaWpuZGFlbC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jcnlwdG8vUmlqbmRhZWwuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9SaWpuZGFlbC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9SaWpuZGFlbC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY3J5cHRvL1NIQTEuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY3J5cHRvL1NIQTEuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9TSEExLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY3J5cHRvL1NIQTEuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9TSEEyNTYuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY3J5cHRvL1NIQTI1Ni5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvY3J5cHRvL1NIQTI1Ni5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9TSEEyNTYuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9fX3BhY2thZ2VfXy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9jcnlwdG8vX19wYWNrYWdlX18uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2NyeXB0by9fX3BhY2thZ2VfXy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9Dc3ZTdG9yZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL0NzdlN0b3JlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL0NzdlN0b3JlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9Dc3ZTdG9yZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9PcG1sU3RvcmUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9PcG1sU3RvcmUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvT3BtbFN0b3JlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9PcG1sU3RvcmUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvUmRmU3RvcmUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9SZGZTdG9yZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9SZGZTdG9yZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvUmRmU3RvcmUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvUmVhZC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL1JlYWQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvUmVhZC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvUmVhZC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9SZXN1bHQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9SZXN1bHQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvUmVzdWx0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9SZXN1bHQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvV3JpdGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9Xcml0ZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9Xcml0ZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvV3JpdGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvWWFob29TdG9yZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL1lhaG9vU3RvcmUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvWWFob29TdG9yZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvWWFob29TdG9yZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9fX3BhY2thZ2VfXy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL19fcGFja2FnZV9fLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL19fcGFja2FnZV9fLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9fX3BhY2thZ2VfXy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9jb3JlL1JlYWQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9jb3JlL1JlYWQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvY29yZS9SZWFkLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9jb3JlL1JlYWQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvY29yZS9SZW1vdGVTdG9yZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL2NvcmUvUmVtb3RlU3RvcmUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvY29yZS9SZW1vdGVTdG9yZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvY29yZS9SZW1vdGVTdG9yZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9jb3JlL1Jlc3VsdC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL2NvcmUvUmVzdWx0LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL2NvcmUvUmVzdWx0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9jb3JlL1Jlc3VsdC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9jb3JlL1dyaXRlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvY29yZS9Xcml0ZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9jb3JlL1dyaXRlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9jb3JlL1dyaXRlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL2Nzdi9Dc3ZTdG9yZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL2Nzdi9Dc3ZTdG9yZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9jc3YvQ3N2U3RvcmUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL2Nzdi9Dc3ZTdG9yZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9jc3YvUmVzdWx0LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvY3N2L1Jlc3VsdC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9jc3YvUmVzdWx0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9jc3YvUmVzdWx0LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL2Nzdi9fX3BhY2thZ2VfXy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL2Nzdi9fX3BhY2thZ2VfXy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9jc3YvX19wYWNrYWdlX18uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL2Nzdi9fX3BhY2thZ2VfXy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvQXR0cmlidXRlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL0F0dHJpYnV0ZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvQXR0cmlidXRlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvQXR0cmlidXRlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9JdGVtLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL0l0ZW0uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL0l0ZW0uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9JdGVtLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9LaW5kLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL0tpbmQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL0tpbmQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9LaW5kLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9PYnNlcnZhYmxlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL09ic2VydmFibGUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL09ic2VydmFibGUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9PYnNlcnZhYmxlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9SZXN1bHRTZXQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvUmVzdWx0U2V0LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9SZXN1bHRTZXQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9SZXN1bHRTZXQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL1R5cGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvVHlwZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvVHlwZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL1R5cGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL1ZhbHVlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL1ZhbHVlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9WYWx1ZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL1ZhbHVlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9fX3BhY2thZ2VfXy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9fX3BhY2thZ2VfXy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvX19wYWNrYWdlX18uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9fX3BhY2thZ2VfXy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvZm9ybWF0L0Nzdi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9mb3JtYXQvQ3N2LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9mb3JtYXQvQ3N2LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvZm9ybWF0L0Nzdi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvZm9ybWF0L0pzb24uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvZm9ybWF0L0pzb24uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL2Zvcm1hdC9Kc29uLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvZm9ybWF0L0pzb24uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL3Byb3ZpZGVyL0Jhc2UuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvcHJvdmlkZXIvQmFzZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvcHJvdmlkZXIvQmFzZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL3Byb3ZpZGVyL0Jhc2UuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL3Byb3ZpZGVyL0RlbGljaW91cy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9wcm92aWRlci9EZWxpY2lvdXMuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL3Byb3ZpZGVyL0RlbGljaW91cy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL3Byb3ZpZGVyL0RlbGljaW91cy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvcHJvdmlkZXIvRmxhdEZpbGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvcHJvdmlkZXIvRmxhdEZpbGUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL3Byb3ZpZGVyL0ZsYXRGaWxlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvcHJvdmlkZXIvRmxhdEZpbGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL3Byb3ZpZGVyL0pvdFNwb3QuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvcHJvdmlkZXIvSm90U3BvdC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvcHJvdmlkZXIvSm90U3BvdC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL3Byb3ZpZGVyL0pvdFNwb3QuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL3Byb3ZpZGVyL015U3FsLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL3Byb3ZpZGVyL015U3FsLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC9wcm92aWRlci9NeVNxbC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGEvb2xkL3Byb3ZpZGVyL015U3FsLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC90b19kby50eHQgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0YS9vbGQvdG9fZG8udHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC90b19kby50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRhL29sZC90b19kby50eHQKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0ZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0ZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGUvY29tbW9uLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGUvY29tbW9uLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRlL2NvbW1vbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGUvY29tbW9uLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRlL2Zvcm1hdC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRlL2Zvcm1hdC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0ZS9mb3JtYXQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRlL2Zvcm1hdC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0ZS9zZXJpYWxpemUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0ZS9zZXJpYWxpemUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGUvc2VyaWFsaXplLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGF0ZS9zZXJpYWxpemUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGUvc3VwcGxlbWVudGFsLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGUvc3VwcGxlbWVudGFsLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kYXRlL3N1cHBsZW1lbnRhbC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RhdGUvc3VwcGxlbWVudGFsLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kZWJ1Zy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kZWJ1Zy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGVidWcuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kZWJ1Zy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGVidWcvRmlyZWJ1Zy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kZWJ1Zy9GaXJlYnVnLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kZWJ1Zy9GaXJlYnVnLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGVidWcvRmlyZWJ1Zy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGVidWcvYXJyb3dfaGlkZS5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGVidWcvYXJyb3dfaGlkZS5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RlYnVnL2Fycm93X2hpZGUuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGVidWcvYXJyb3dfaGlkZS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGVidWcvYXJyb3dfc2hvdy5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGVidWcvYXJyb3dfc2hvdy5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RlYnVnL2Fycm93X3Nob3cuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGVidWcvYXJyb3dfc2hvdy5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGVidWcvY29uc29sZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kZWJ1Zy9jb25zb2xlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kZWJ1Zy9jb25zb2xlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGVidWcvY29uc29sZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGVidWcvZGVlcC5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RlYnVnL2RlZXAuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGVidWcvZGVlcC5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZGVidWcvZGVlcC5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kZWJ1Zy9zcGFjZXIuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RlYnVnL3NwYWNlci5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RlYnVnL3NwYWNlci5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kZWJ1Zy9zcGFjZXIuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RuZC9EcmFnQW5kRHJvcC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvRHJhZ0FuZERyb3AuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RuZC9EcmFnQW5kRHJvcC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RuZC9EcmFnQW5kRHJvcC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG5kL0h0bWxEcmFnQW5kRHJvcC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvSHRtbERyYWdBbmREcm9wLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvSHRtbERyYWdBbmREcm9wLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG5kL0h0bWxEcmFnQW5kRHJvcC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG5kL0h0bWxEcmFnQ29weS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvSHRtbERyYWdDb3B5LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvSHRtbERyYWdDb3B5LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG5kL0h0bWxEcmFnQ29weS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG5kL0h0bWxEcmFnTWFuYWdlci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvSHRtbERyYWdNYW5hZ2VyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvSHRtbERyYWdNYW5hZ2VyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG5kL0h0bWxEcmFnTWFuYWdlci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG5kL0h0bWxEcmFnTW92ZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvSHRtbERyYWdNb3ZlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvSHRtbERyYWdNb3ZlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG5kL0h0bWxEcmFnTW92ZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG5kL1NvcnRhYmxlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RuZC9Tb3J0YWJsZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG5kL1NvcnRhYmxlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG5kL1NvcnRhYmxlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvVHJlZURyYWdBbmREcm9wLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RuZC9UcmVlRHJhZ0FuZERyb3AuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RuZC9UcmVlRHJhZ0FuZERyb3AuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvVHJlZURyYWdBbmREcm9wLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvVHJlZURyYWdBbmREcm9wVjMuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG5kL1RyZWVEcmFnQW5kRHJvcFYzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvVHJlZURyYWdBbmREcm9wVjMuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvVHJlZURyYWdBbmREcm9wVjMuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RuZC9fX3BhY2thZ2VfXy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kbmQvX19wYWNrYWdlX18uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RuZC9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RuZC9fX3BhY2thZ2VfXy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG9jcy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kb2NzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9kb2NzLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG9jcy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG9tLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2RvbS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG9tLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZG9tLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ldmVudC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ldmVudC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZXZlbnQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ldmVudC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZXZlbnQvX19wYWNrYWdlX18uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZXZlbnQvX19wYWNrYWdlX18uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2V2ZW50L19fcGFja2FnZV9fLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZXZlbnQvX19wYWNrYWdlX18uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2V2ZW50L2Jyb3dzZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZXZlbnQvYnJvd3Nlci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZXZlbnQvYnJvd3Nlci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2V2ZW50L2Jyb3dzZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2V2ZW50L2NvbW1vbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ldmVudC9jb21tb24uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2V2ZW50L2NvbW1vbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2V2ZW50L2NvbW1vbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZXZlbnQvdG9waWMuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZXZlbnQvdG9waWMuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2V2ZW50L3RvcGljLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZXZlbnQvdG9waWMuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2V4cGVyaW1lbnRhbC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9leHBlcmltZW50YWwuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2V4cGVyaW1lbnRhbC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2V4cGVyaW1lbnRhbC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZmxhc2guanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZmxhc2guanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2ZsYXNoLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZmxhc2guanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2ZsYXNoL2ZsYXNoNi9Eb2pvRXh0ZXJuYWxJbnRlcmZhY2UuYXMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZmxhc2gvZmxhc2g2L0Rvam9FeHRlcm5hbEludGVyZmFjZS5hcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZmxhc2gvZmxhc2g2L0Rvam9FeHRlcm5hbEludGVyZmFjZS5hcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2ZsYXNoL2ZsYXNoNi9Eb2pvRXh0ZXJuYWxJbnRlcmZhY2UuYXMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2ZsYXNoL2ZsYXNoNi9mbGFzaDZfZ2F0ZXdheS5mbGEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZmxhc2gvZmxhc2g2L2ZsYXNoNl9nYXRld2F5LmZsYQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZmxhc2gvZmxhc2g2L2ZsYXNoNl9nYXRld2F5LmZsYQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2ZsYXNoL2ZsYXNoNi9mbGFzaDZfZ2F0ZXdheS5mbGEKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZmxhc2gvZmxhc2g4L0Rvam9FeHRlcm5hbEludGVyZmFjZS5hcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9mbGFzaC9mbGFzaDgvRG9qb0V4dGVybmFsSW50ZXJmYWNlLmFzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9mbGFzaC9mbGFzaDgvRG9qb0V4dGVybmFsSW50ZXJmYWNlLmFzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZmxhc2gvZmxhc2g4L0Rvam9FeHRlcm5hbEludGVyZmFjZS5hcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZmxhc2gvZmxhc2g4L0V4cHJlc3NJbnN0YWxsLmFzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2ZsYXNoL2ZsYXNoOC9FeHByZXNzSW5zdGFsbC5hcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZmxhc2gvZmxhc2g4L0V4cHJlc3NJbnN0YWxsLmFzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZmxhc2gvZmxhc2g4L0V4cHJlc3NJbnN0YWxsLmFzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9meC9fX3BhY2thZ2VfXy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9meC9fX3BhY2thZ2VfXy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZngvX19wYWNrYWdlX18uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9meC9fX3BhY2thZ2VfXy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZngvaHRtbC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9meC9odG1sLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9meC9odG1sLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZngvaHRtbC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZngvc3ZnLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2Z4L3N2Zy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZngvc3ZnLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZngvc3ZnLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9nZngvQ29sb3JzcGFjZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9nZngvQ29sb3JzcGFjZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L0NvbG9yc3BhY2UuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9nZngvQ29sb3JzcGFjZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L19fcGFja2FnZV9fLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC9fX3BhY2thZ2VfXy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L19fcGFja2FnZV9fLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L19fcGFja2FnZV9fLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9nZngvY29sb3IuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L2NvbG9yLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9nZngvY29sb3IuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9nZngvY29sb3IuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC9jb2xvci9oc2wuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L2NvbG9yL2hzbC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L2NvbG9yL2hzbC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC9jb2xvci9oc2wuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC9jb2xvci9oc3YuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L2NvbG9yL2hzdi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L2NvbG9yL2hzdi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC9jb2xvci9oc3YuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC9jb21tb24uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L2NvbW1vbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L2NvbW1vbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC9jb21tb24uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC9tYXRyaXguanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L21hdHJpeC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L21hdHJpeC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC9tYXRyaXguanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC9wYXRoLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC9wYXRoLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9nZngvcGF0aC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC9wYXRoLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9nZngvc2hhcGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L3NoYXBlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9nZngvc2hhcGUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9nZngvc2hhcGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC9zdmcuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L3N2Zy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L3N2Zy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC9zdmcuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC92bWwuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L3ZtbC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ2Z4L3ZtbC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dmeC92bWwuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dyYXBoaWNzL0NvbG9yc3BhY2UuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ3JhcGhpY3MvQ29sb3JzcGFjZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ3JhcGhpY3MvQ29sb3JzcGFjZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dyYXBoaWNzL0NvbG9yc3BhY2UuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dyYXBoaWNzL19fcGFja2FnZV9fLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dyYXBoaWNzL19fcGFja2FnZV9fLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ncmFwaGljcy9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dyYXBoaWNzL19fcGFja2FnZV9fLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ncmFwaGljcy9jb2xvci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ncmFwaGljcy9jb2xvci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ3JhcGhpY3MvY29sb3IuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ncmFwaGljcy9jb2xvci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ3JhcGhpY3MvY29sb3IvaHNsLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2dyYXBoaWNzL2NvbG9yL2hzbC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ3JhcGhpY3MvY29sb3IvaHNsLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ3JhcGhpY3MvY29sb3IvaHNsLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ncmFwaGljcy9jb2xvci9oc3YuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvZ3JhcGhpY3MvY29sb3IvaHN2LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ncmFwaGljcy9jb2xvci9oc3YuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ncmFwaGljcy9jb2xvci9oc3YuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfYWRvYmVzdmcuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaG9zdGVudl9hZG9iZXN2Zy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaG9zdGVudl9hZG9iZXN2Zy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfYWRvYmVzdmcuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfYnJvd3Nlci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ob3N0ZW52X2Jyb3dzZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfYnJvd3Nlci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfYnJvd3Nlci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaG9zdGVudl9kYXNoYm9hcmQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaG9zdGVudl9kYXNoYm9hcmQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfZGFzaGJvYXJkLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaG9zdGVudl9kYXNoYm9hcmQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfanNjLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfanNjLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ob3N0ZW52X2pzYy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfanNjLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ob3N0ZW52X3JoaW5vLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfcmhpbm8uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfcmhpbm8uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ob3N0ZW52X3JoaW5vLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ob3N0ZW52X3NwaWRlcm1vbmtleS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ob3N0ZW52X3NwaWRlcm1vbmtleS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaG9zdGVudl9zcGlkZXJtb25rZXkuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ob3N0ZW52X3NwaWRlcm1vbmtleS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaG9zdGVudl9zdmcuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaG9zdGVudl9zdmcuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfc3ZnLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaG9zdGVudl9zdmcuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfd3NoLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfd3NoLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ob3N0ZW52X3dzaC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2hvc3RlbnZfd3NoLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL19fcGFja2FnZV9fLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvX19wYWNrYWdlX18uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvX19wYWNrYWdlX18uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL19fcGFja2FnZV9fLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2NvbG9yLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvY29sb3IuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvY29sb3IuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2NvbG9yLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2NvbW1vbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2NvbW1vbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9jb21tb24uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2NvbW1vbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9kaXNwbGF5LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvZGlzcGxheS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9kaXNwbGF5LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9kaXNwbGF5LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2lmcmFtZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2lmcmFtZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9pZnJhbWUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2lmcmFtZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9pbWFnZXMvc2hhZG93Qi5wbmcgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9pbWFnZXMvc2hhZG93Qi5wbmcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvaW1hZ2VzL3NoYWRvd0IucG5nCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9pbWFnZXMvc2hhZG93Qi5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9pbWFnZXMvc2hhZG93QkwucG5nIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvaW1hZ2VzL3NoYWRvd0JMLnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9pbWFnZXMvc2hhZG93QkwucG5nCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9pbWFnZXMvc2hhZG93QkwucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvaW1hZ2VzL3NoYWRvd0JSLnBuZyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2ltYWdlcy9zaGFkb3dCUi5wbmcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvaW1hZ2VzL3NoYWRvd0JSLnBuZwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvaW1hZ2VzL3NoYWRvd0JSLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2ltYWdlcy9zaGFkb3dMLnBuZyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2ltYWdlcy9zaGFkb3dMLnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9pbWFnZXMvc2hhZG93TC5wbmcKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2ltYWdlcy9zaGFkb3dMLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2ltYWdlcy9zaGFkb3dSLnBuZyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2ltYWdlcy9zaGFkb3dSLnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9pbWFnZXMvc2hhZG93Ui5wbmcKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2ltYWdlcy9zaGFkb3dSLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2ltYWdlcy9zaGFkb3dULnBuZyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2ltYWdlcy9zaGFkb3dULnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9pbWFnZXMvc2hhZG93VC5wbmcKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2ltYWdlcy9zaGFkb3dULnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2ltYWdlcy9zaGFkb3dUTC5wbmcgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9pbWFnZXMvc2hhZG93VEwucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2ltYWdlcy9zaGFkb3dUTC5wbmcKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2ltYWdlcy9zaGFkb3dUTC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9pbWFnZXMvc2hhZG93VFIucG5nIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvaW1hZ2VzL3NoYWRvd1RSLnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9pbWFnZXMvc2hhZG93VFIucG5nCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9pbWFnZXMvc2hhZG93VFIucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvbGF5b3V0LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvbGF5b3V0LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL2xheW91dC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvbGF5b3V0LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL21ldHJpY3MuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9tZXRyaWNzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL21ldHJpY3MuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL21ldHJpY3MuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvc2VsZWN0aW9uLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvc2VsZWN0aW9uLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL3NlbGVjdGlvbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvc2VsZWN0aW9uLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL3NoYWRvdy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL3NoYWRvdy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9zaGFkb3cuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL3NoYWRvdy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9zdHlsZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL3N0eWxlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9odG1sL3N0eWxlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC9zdHlsZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC91dGlsLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2h0bWwvdXRpbC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC91dGlsLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaHRtbC91dGlsLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9SRUFETUUgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvUkVBRE1FCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9SRUFETUUKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9SRUFETUUKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2RlL2dyZWdvcmlhbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9kZS9ncmVnb3JpYW4uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2RlL2dyZWdvcmlhbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2RlL2dyZWdvcmlhbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvZW4vZ3JlZ29yaWFuLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2VuL2dyZWdvcmlhbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvZW4vZ3JlZ29yaWFuLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvZW4vZ3JlZ29yaWFuLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9lcy9ncmVnb3JpYW4uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvZXMvZ3JlZ29yaWFuLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9lcy9ncmVnb3JpYW4uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9lcy9ncmVnb3JpYW4uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2ZpL2dyZWdvcmlhbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9maS9ncmVnb3JpYW4uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2ZpL2dyZWdvcmlhbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2ZpL2dyZWdvcmlhbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvZnIvZ3JlZ29yaWFuLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2ZyL2dyZWdvcmlhbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvZnIvZ3JlZ29yaWFuLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvZnIvZ3JlZ29yaWFuLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9ncmVnb3JpYW4uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvZ3JlZ29yaWFuLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9ncmVnb3JpYW4uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9ncmVnb3JpYW4uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2dyZWdvcmlhbkV4dHJhcy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9ncmVnb3JpYW5FeHRyYXMuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2dyZWdvcmlhbkV4dHJhcy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2dyZWdvcmlhbkV4dHJhcy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvaHUvZ3JlZ29yaWFuLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2h1L2dyZWdvcmlhbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvaHUvZ3JlZ29yaWFuLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvaHUvZ3JlZ29yaWFuLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9pdC9ncmVnb3JpYW4uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvaXQvZ3JlZ29yaWFuLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9pdC9ncmVnb3JpYW4uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9pdC9ncmVnb3JpYW4uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2phL2dyZWdvcmlhbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9qYS9ncmVnb3JpYW4uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2phL2dyZWdvcmlhbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2phL2dyZWdvcmlhbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvamEvZ3JlZ29yaWFuRXh0cmFzLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL2phL2dyZWdvcmlhbkV4dHJhcy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvamEvZ3JlZ29yaWFuRXh0cmFzLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvamEvZ3JlZ29yaWFuRXh0cmFzLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9rby9ncmVnb3JpYW4uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMva28vZ3JlZ29yaWFuLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9rby9ncmVnb3JpYW4uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9rby9ncmVnb3JpYW4uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL25sL2dyZWdvcmlhbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9ubC9ncmVnb3JpYW4uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL25sL2dyZWdvcmlhbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL25sL2dyZWdvcmlhbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvcHQtYnIvZ3JlZ29yaWFuLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL3B0LWJyL2dyZWdvcmlhbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvcHQtYnIvZ3JlZ29yaWFuLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvcHQtYnIvZ3JlZ29yaWFuLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9wdC9ncmVnb3JpYW4uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvcHQvZ3JlZ29yaWFuLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9wdC9ncmVnb3JpYW4uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9wdC9ncmVnb3JpYW4uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL3N2L2dyZWdvcmlhbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy9zdi9ncmVnb3JpYW4uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL3N2L2dyZWdvcmlhbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL3N2L2dyZWdvcmlhbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvemgtY24vZ3JlZ29yaWFuLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL3poLWNuL2dyZWdvcmlhbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvemgtY24vZ3JlZ29yaWFuLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvemgtY24vZ3JlZ29yaWFuLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy96aC1oay9ncmVnb3JpYW4uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvemgtaGsvZ3JlZ29yaWFuLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy96aC1oay9ncmVnb3JpYW4uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy96aC1oay9ncmVnb3JpYW4uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL3poLXR3L2dyZWdvcmlhbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy96aC10dy9ncmVnb3JpYW4uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL3poLXR3L2dyZWdvcmlhbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL3poLXR3L2dyZWdvcmlhbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvemgvZ3JlZ29yaWFuLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY2FsZW5kYXIvbmxzL3poL2dyZWdvcmlhbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvemgvZ3JlZ29yaWFuLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvemgvZ3JlZ29yaWFuLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy96aC9ncmVnb3JpYW5FeHRyYXMuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jYWxlbmRhci9ubHMvemgvZ3JlZ29yaWFuRXh0cmFzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy96aC9ncmVnb3JpYW5FeHRyYXMuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NhbGVuZGFyL25scy96aC9ncmVnb3JpYW5FeHRyYXMuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY29tbW9uLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY29tbW9uLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2NvbW1vbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY29tbW9uLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L2NvbW1vbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L2NvbW1vbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9jb21tb24uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L2NvbW1vbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvRVVSLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL0VVUi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvRVVSLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvRVVSLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9HQlAuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvR0JQLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9HQlAuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9HQlAuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL0lOUi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9JTlIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL0lOUi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL0lOUi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvSVRMLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL0lUTC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvSVRMLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvSVRMLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9KUFkuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvSlBZLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9KUFkuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9KUFkuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL1JFQURNRSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9SRUFETUUKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL1JFQURNRQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL1JFQURNRQpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvVVNELmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL1VTRC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvVVNELmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvVVNELmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9lbi11cy9VU0QuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvZW4tdXMvVVNELmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9lbi11cy9VU0QuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9lbi11cy9VU0QuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2VuL0VVUi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9lbi9FVVIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2VuL0VVUi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2VuL0VVUi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvZW4vR0JQLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2VuL0dCUC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvZW4vR0JQLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvZW4vR0JQLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9lbi9JTlIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvZW4vSU5SLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9lbi9JTlIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9lbi9JTlIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2VuL0lUTC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9lbi9JVEwuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2VuL0lUTC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2VuL0lUTC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvZW4vSlBZLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2VuL0pQWS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvZW4vSlBZLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvZW4vSlBZLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9lbi9VU0QuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvZW4vVVNELmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9lbi9VU0QuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9lbi9VU0QuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2hpL0VVUi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9oaS9FVVIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2hpL0VVUi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2hpL0VVUi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvaGkvR0JQLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2hpL0dCUC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvaGkvR0JQLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvaGkvR0JQLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9oaS9JTlIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvaGkvSU5SLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9oaS9JTlIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9oaS9JTlIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2hpL0lUTC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9oaS9JVEwuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2hpL0lUTC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2hpL0lUTC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvaGkvSlBZLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2hpL0pQWS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvaGkvSlBZLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvaGkvSlBZLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9oaS9VU0QuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvaGkvVVNELmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9oaS9VU0QuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9oaS9VU0QuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2phL0VVUi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9qYS9FVVIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2phL0VVUi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2phL0VVUi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvamEvR0JQLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2phL0dCUC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvamEvR0JQLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvamEvR0JQLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9qYS9JTlIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvamEvSU5SLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9qYS9JTlIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9qYS9JTlIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2phL0lUTC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9qYS9JVEwuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2phL0lUTC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2phL0lUTC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvamEvSlBZLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vY3VycmVuY3kvbmxzL2phL0pQWS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvamEvSlBZLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvamEvSlBZLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9qYS9VU0QuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaTE4bi9jdXJyZW5jeS9ubHMvamEvVVNELmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9qYS9VU0QuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL2N1cnJlbmN5L25scy9qYS9VU0QuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vbnVtYmVyLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vbnVtYmVyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pMThuL251bWJlci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2kxOG4vbnVtYmVyLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pQ2FsZW5kYXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaUNhbGVuZGFyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pQ2FsZW5kYXIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pQ2FsZW5kYXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9Ccm93c2VySU8uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaW8vQnJvd3NlcklPLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9Ccm93c2VySU8uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9Ccm93c2VySU8uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL0lmcmFtZUlPLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL0lmcmFtZUlPLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9JZnJhbWVJTy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL0lmcmFtZUlPLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9SZXB1YnN1YklPLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL1JlcHVic3ViSU8uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL1JlcHVic3ViSU8uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9SZXB1YnN1YklPLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9SaGlub0lPLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL1JoaW5vSU8uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL1JoaW5vSU8uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9SaGlub0lPLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9TY3JpcHRTcmNJTy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9TY3JpcHRTcmNJTy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaW8vU2NyaXB0U3JjSU8uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9TY3JpcHRTcmNJTy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaW8vWGhySWZyYW1lUHJveHkuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaW8vWGhySWZyYW1lUHJveHkuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL1hocklmcmFtZVByb3h5LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaW8vWGhySWZyYW1lUHJveHkuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL19fcGFja2FnZV9fLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL19fcGFja2FnZV9fLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL19fcGFja2FnZV9fLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9jb21ldGQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaW8vY29tZXRkLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9jb21ldGQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9jb21ldGQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL2NvbW1vbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby9jb21tb24uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL2NvbW1vbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL2NvbW1vbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaW8vY29va2llLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL2Nvb2tpZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaW8vY29va2llLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaW8vY29va2llLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby94aXBfY2xpZW50Lmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvaW8veGlwX2NsaWVudC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby94aXBfY2xpZW50Lmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby94aXBfY2xpZW50Lmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL3hpcF9zZXJ2ZXIuaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9pby94aXBfc2VydmVyLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL3hpcF9zZXJ2ZXIuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2lvL3hpcF9zZXJ2ZXIuaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvanNvbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9qc29uLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9qc29uLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvanNvbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy9fX3BhY2thZ2VfXy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL19fcGFja2FnZV9fLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL19fcGFja2FnZV9fLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy9fX3BhY2thZ2VfXy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy9hcnJheS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL2FycmF5LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL2FycmF5LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy9hcnJheS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy9hc3NlcnQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy9hc3NlcnQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvYXNzZXJ0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy9hc3NlcnQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvY29tbW9uLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvY29tbW9uLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL2NvbW1vbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvY29tbW9uLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL2RlY2xhcmUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy9kZWNsYXJlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL2RlY2xhcmUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL2RlY2xhcmUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvZXh0cmFzLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvZXh0cmFzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL2V4dHJhcy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvZXh0cmFzLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL2Z1bmMuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy9mdW5jLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL2Z1bmMuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL2Z1bmMuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvcmVwci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL3JlcHIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvcmVwci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvcmVwci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy90aW1pbmcvU3RyZWFtZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy90aW1pbmcvU3RyZWFtZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvdGltaW5nL1N0cmVhbWVyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy90aW1pbmcvU3RyZWFtZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvdGltaW5nL1RpbWVyLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvdGltaW5nL1RpbWVyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL3RpbWluZy9UaW1lci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvdGltaW5nL1RpbWVyLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL3RpbWluZy9fX3BhY2thZ2VfXy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL3RpbWluZy9fX3BhY2thZ2VfXy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy90aW1pbmcvX19wYWNrYWdlX18uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sYW5nL3RpbWluZy9fX3BhY2thZ2VfXy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy90eXBlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xhbmcvdHlwZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy90eXBlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGFuZy90eXBlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sZngvQW5pbWF0aW9uLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xmeC9BbmltYXRpb24uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xmeC9BbmltYXRpb24uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sZngvQW5pbWF0aW9uLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sZngvX19wYWNrYWdlX18uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGZ4L19fcGFja2FnZV9fLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sZngvX19wYWNrYWdlX18uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sZngvX19wYWNrYWdlX18uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xmeC9leHRyYXMuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGZ4L2V4dHJhcy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGZ4L2V4dHJhcy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xmeC9leHRyYXMuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xmeC9odG1sLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xmeC9odG1sLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sZngvaHRtbC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xmeC9odG1sLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sZngvcm91bmRlZC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sZngvcm91bmRlZC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGZ4L3JvdW5kZWQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sZngvcm91bmRlZC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGZ4L3NoYWRvdy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sZngvc2hhZG93LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sZngvc2hhZG93LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGZ4L3NoYWRvdy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGZ4L3RvZ2dsZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sZngvdG9nZ2xlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sZngvdG9nZ2xlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbGZ4L3RvZ2dsZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbG9hZGVyLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xvYWRlci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbG9hZGVyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbG9hZGVyLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sb2FkZXJfeGQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbG9hZGVyX3hkLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sb2FkZXJfeGQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sb2FkZXJfeGQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xvZ2dpbmcvQ29uc29sZUxvZ2dlci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9sb2dnaW5nL0NvbnNvbGVMb2dnZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xvZ2dpbmcvQ29uc29sZUxvZ2dlci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xvZ2dpbmcvQ29uc29sZUxvZ2dlci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbG9nZ2luZy9Mb2dnZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbG9nZ2luZy9Mb2dnZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xvZ2dpbmcvTG9nZ2VyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbG9nZ2luZy9Mb2dnZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xvZ2dpbmcvX19wYWNrYWdlX18uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbG9nZ2luZy9fX3BhY2thZ2VfXy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbG9nZ2luZy9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL2xvZ2dpbmcvX19wYWNrYWdlX18uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL21hdGguanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbWF0aC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbWF0aC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL21hdGguanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL21hdGgvX19wYWNrYWdlX18uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbWF0aC9fX3BhY2thZ2VfXy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbWF0aC9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL21hdGgvX19wYWNrYWdlX18uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL21hdGgvY3VydmVzLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL21hdGgvY3VydmVzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9tYXRoL2N1cnZlcy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL21hdGgvY3VydmVzLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9tYXRoL21hdHJpeC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9tYXRoL21hdHJpeC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbWF0aC9tYXRyaXguanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9tYXRoL21hdHJpeC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbWF0aC9wb2ludHMuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbWF0aC9wb2ludHMuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL21hdGgvcG9pbnRzLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbWF0aC9wb2ludHMuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL25hbWVzcGFjZXMvZG9qby5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9uYW1lc3BhY2VzL2Rvam8uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL25hbWVzcGFjZXMvZG9qby5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL25hbWVzcGFjZXMvZG9qby5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbnMuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbnMuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL25zLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvbnMuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3Byb2ZpbGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcHJvZmlsZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcHJvZmlsZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3Byb2ZpbGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3JlZ2V4cC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9yZWdleHAuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3JlZ2V4cC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3JlZ2V4cC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcnBjL0RlZmVycmVkLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3JwYy9EZWZlcnJlZC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcnBjL0RlZmVycmVkLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcnBjL0RlZmVycmVkLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ycGMvSm90U2VydmljZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ycGMvSm90U2VydmljZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcnBjL0pvdFNlcnZpY2UuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ycGMvSm90U2VydmljZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcnBjL0pzb25TZXJ2aWNlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3JwYy9Kc29uU2VydmljZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcnBjL0pzb25TZXJ2aWNlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcnBjL0pzb25TZXJ2aWNlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ycGMvUnBjU2VydmljZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ycGMvUnBjU2VydmljZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcnBjL1JwY1NlcnZpY2UuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ycGMvUnBjU2VydmljZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcnBjL1lhaG9vU2VydmljZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ycGMvWWFob29TZXJ2aWNlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ycGMvWWFob29TZXJ2aWNlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcnBjL1lhaG9vU2VydmljZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcnBjL19fcGFja2FnZV9fLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3JwYy9fX3BhY2thZ2VfXy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcnBjL19fcGFja2FnZV9fLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvcnBjL19fcGFja2FnZV9fLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ycGMveWFob28uc21kIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3JwYy95YWhvby5zbWQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3JwYy95YWhvby5zbWQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9ycGMveWFob28uc21kCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zZWxlY3Rpb24vU2VsZWN0aW9uLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3NlbGVjdGlvbi9TZWxlY3Rpb24uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3NlbGVjdGlvbi9TZWxlY3Rpb24uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zZWxlY3Rpb24vU2VsZWN0aW9uLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zdG9yYWdlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0b3JhZ2UuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0b3JhZ2UuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zdG9yYWdlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zdG9yYWdlL1N0b3JhZ2UuYXMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3RvcmFnZS9TdG9yYWdlLmFzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zdG9yYWdlL1N0b3JhZ2UuYXMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zdG9yYWdlL1N0b3JhZ2UuYXMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0b3JhZ2UvX19wYWNrYWdlX18uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3RvcmFnZS9fX3BhY2thZ2VfXy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3RvcmFnZS9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0b3JhZ2UvX19wYWNrYWdlX18uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0b3JhZ2UvYnJvd3Nlci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zdG9yYWdlL2Jyb3dzZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0b3JhZ2UvYnJvd3Nlci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0b3JhZ2UvYnJvd3Nlci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3RvcmFnZS9kYXNoYm9hcmQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3RvcmFnZS9kYXNoYm9hcmQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0b3JhZ2UvZGFzaGJvYXJkLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3RvcmFnZS9kYXNoYm9hcmQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0b3JhZ2Uvc3RvcmFnZV9kaWFsb2cuZmxhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0b3JhZ2Uvc3RvcmFnZV9kaWFsb2cuZmxhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zdG9yYWdlL3N0b3JhZ2VfZGlhbG9nLmZsYQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0b3JhZ2Uvc3RvcmFnZV9kaWFsb2cuZmxhCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0cmluZy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zdHJpbmcuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0cmluZy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0cmluZy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3RyaW5nL0J1aWxkZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3RyaW5nL0J1aWxkZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0cmluZy9CdWlsZGVyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3RyaW5nL0J1aWxkZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0cmluZy9fX3BhY2thZ2VfXy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zdHJpbmcvX19wYWNrYWdlX18uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0cmluZy9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0cmluZy9fX3BhY2thZ2VfXy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3RyaW5nL2NvbW1vbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zdHJpbmcvY29tbW9uLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zdHJpbmcvY29tbW9uLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3RyaW5nL2NvbW1vbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3RyaW5nL2V4dHJhcy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zdHJpbmcvZXh0cmFzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zdHJpbmcvZXh0cmFzLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3RyaW5nL2V4dHJhcy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3R5bGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3R5bGUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N0eWxlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvc3R5bGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N2Zy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy9zdmcuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N2Zy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3N2Zy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdGV4dC9fX3BhY2thZ2VfXy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy90ZXh0L19fcGFja2FnZV9fLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy90ZXh0L19fcGFja2FnZV9fLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdGV4dC9fX3BhY2thZ2VfXy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdGV4dC90ZXh0RGlyZWN0b3J5LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3RleHQvdGV4dERpcmVjdG9yeS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdGV4dC90ZXh0RGlyZWN0b3J5LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdGV4dC90ZXh0RGlyZWN0b3J5LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91bmRvL01hbmFnZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdW5kby9NYW5hZ2VyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91bmRvL01hbmFnZXIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91bmRvL01hbmFnZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3VuZG8vX19wYWNrYWdlX18uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdW5kby9fX3BhY2thZ2VfXy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdW5kby9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3VuZG8vX19wYWNrYWdlX18uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3VuZG8vYnJvd3Nlci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91bmRvL2Jyb3dzZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3VuZG8vYnJvd3Nlci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3VuZG8vYnJvd3Nlci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXJpL1VyaS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91cmkvVXJpLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91cmkvVXJpLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXJpL1VyaS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXJpL19fcGFja2FnZV9fLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3VyaS9fX3BhY2thZ2VfXy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXJpL19fcGFja2FnZV9fLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXJpL19fcGFja2FnZV9fLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91cmkvY2FjaGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXJpL2NhY2hlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91cmkvY2FjaGUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91cmkvY2FjaGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3V1aWQvTGlnaHR3ZWlnaHRHZW5lcmF0b3IuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXVpZC9MaWdodHdlaWdodEdlbmVyYXRvci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXVpZC9MaWdodHdlaWdodEdlbmVyYXRvci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3V1aWQvTGlnaHR3ZWlnaHRHZW5lcmF0b3IuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3V1aWQvTmFtZUJhc2VkR2VuZXJhdG9yLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3V1aWQvTmFtZUJhc2VkR2VuZXJhdG9yLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91dWlkL05hbWVCYXNlZEdlbmVyYXRvci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3V1aWQvTmFtZUJhc2VkR2VuZXJhdG9yLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91dWlkL05pbEdlbmVyYXRvci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91dWlkL05pbEdlbmVyYXRvci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXVpZC9OaWxHZW5lcmF0b3IuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91dWlkL05pbEdlbmVyYXRvci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXVpZC9SYW5kb21HZW5lcmF0b3IuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXVpZC9SYW5kb21HZW5lcmF0b3IuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3V1aWQvUmFuZG9tR2VuZXJhdG9yLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXVpZC9SYW5kb21HZW5lcmF0b3IuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3V1aWQvVGltZUJhc2VkR2VuZXJhdG9yLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3V1aWQvVGltZUJhc2VkR2VuZXJhdG9yLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91dWlkL1RpbWVCYXNlZEdlbmVyYXRvci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3V1aWQvVGltZUJhc2VkR2VuZXJhdG9yLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91dWlkL1V1aWQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXVpZC9VdWlkLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91dWlkL1V1aWQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy91dWlkL1V1aWQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3V1aWQvX19wYWNrYWdlX18uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXVpZC9fX3BhY2thZ2VfXy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdXVpZC9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3V1aWQvX19wYWNrYWdlX18uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy92YWxpZGF0ZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy92YWxpZGF0ZS9fX3BhY2thZ2VfXy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy92YWxpZGF0ZS9fX3BhY2thZ2VfXy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdmFsaWRhdGUvX19wYWNrYWdlX18uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy92YWxpZGF0ZS9fX3BhY2thZ2VfXy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdmFsaWRhdGUvY2hlY2suanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdmFsaWRhdGUvY2hlY2suanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlL2NoZWNrLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdmFsaWRhdGUvY2hlY2suanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlL2NvbW1vbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy92YWxpZGF0ZS9jb21tb24uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlL2NvbW1vbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlL2NvbW1vbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdmFsaWRhdGUvY3JlZGl0Q2FyZC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy92YWxpZGF0ZS9jcmVkaXRDYXJkLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy92YWxpZGF0ZS9jcmVkaXRDYXJkLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdmFsaWRhdGUvY3JlZGl0Q2FyZC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdmFsaWRhdGUvZGF0ZXRpbWUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdmFsaWRhdGUvZGF0ZXRpbWUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlL2RhdGV0aW1lLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdmFsaWRhdGUvZGF0ZXRpbWUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlL2RlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlL2RlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy92YWxpZGF0ZS9kZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlL2RlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy92YWxpZGF0ZS9qcC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy92YWxpZGF0ZS9qcC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdmFsaWRhdGUvanAuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy92YWxpZGF0ZS9qcC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdmFsaWRhdGUvdXMuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdmFsaWRhdGUvdXMuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlL3VzLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvdmFsaWRhdGUvdXMuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlL3dlYi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy92YWxpZGF0ZS93ZWIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlL3dlYi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3ZhbGlkYXRlL3dlYi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0FjY29yZGlvbkNvbnRhaW5lci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQWNjb3JkaW9uQ29udGFpbmVyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQWNjb3JkaW9uQ29udGFpbmVyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0FjY29yZGlvbkNvbnRhaW5lci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0FuaW1hdGVkUG5nLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9BbmltYXRlZFBuZy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0FuaW1hdGVkUG5nLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0FuaW1hdGVkUG5nLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQnV0dG9uLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9CdXR0b24uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9CdXR0b24uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQnV0dG9uLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQ2hhcnQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0NoYXJ0LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQ2hhcnQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQ2hhcnQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9DaGVja2JveC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQ2hlY2tib3guanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9DaGVja2JveC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9DaGVja2JveC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0Nsb2NrLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9DbG9jay5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0Nsb2NrLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0Nsb2NrLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQ29sb3JQYWxldHRlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Db2xvclBhbGV0dGUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Db2xvclBhbGV0dGUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQ29sb3JQYWxldHRlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQ29tYm9Cb3guanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0NvbWJvQm94LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQ29tYm9Cb3guanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQ29tYm9Cb3guanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Db250ZW50UGFuZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQ29udGVudFBhbmUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Db250ZW50UGFuZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Db250ZW50UGFuZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0N1cnJlbmN5VGV4dGJveC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQ3VycmVuY3lUZXh0Ym94LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvQ3VycmVuY3lUZXh0Ym94LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0N1cnJlbmN5VGV4dGJveC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0RhdGVQaWNrZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0RhdGVQaWNrZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9EYXRlUGlja2VyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0RhdGVQaWNrZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9EYXRlVGV4dGJveC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRGF0ZVRleHRib3guanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9EYXRlVGV4dGJveC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9EYXRlVGV4dGJveC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0RlYnVnQ29uc29sZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRGVidWdDb25zb2xlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRGVidWdDb25zb2xlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0RlYnVnQ29uc29sZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0RpYWxvZy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRGlhbG9nLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRGlhbG9nLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0RpYWxvZy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0RvY1BhbmUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0RvY1BhbmUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Eb2NQYW5lLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0RvY1BhbmUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Eb21XaWRnZXQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0RvbVdpZGdldC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0RvbVdpZGdldC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Eb21XaWRnZXQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Ecm9wZG93bkNvbnRhaW5lci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRHJvcGRvd25Db250YWluZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Ecm9wZG93bkNvbnRhaW5lci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Ecm9wZG93bkNvbnRhaW5lci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0Ryb3Bkb3duRGF0ZVBpY2tlci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRHJvcGRvd25EYXRlUGlja2VyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRHJvcGRvd25EYXRlUGlja2VyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0Ryb3Bkb3duRGF0ZVBpY2tlci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0Ryb3Bkb3duVGltZVBpY2tlci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRHJvcGRvd25UaW1lUGlja2VyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRHJvcGRvd25UaW1lUGlja2VyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0Ryb3Bkb3duVGltZVBpY2tlci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL0Fsd2F5c1Nob3dUb29sYmFyLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL0Fsd2F5c1Nob3dUb29sYmFyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9BbHdheXNTaG93VG9vbGJhci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL0Fsd2F5c1Nob3dUb29sYmFyLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9Db250ZXh0TWVudS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9Db250ZXh0TWVudS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJQbHVnaW4vQ29udGV4dE1lbnUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9Db250ZXh0TWVudS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJQbHVnaW4vQ3JlYXRlTGlua0RpYWxvZy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9DcmVhdGVMaW5rRGlhbG9nLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9DcmVhdGVMaW5rRGlhbG9nLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJQbHVnaW4vQ3JlYXRlTGlua0RpYWxvZy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJQbHVnaW4vRmluZFJlcGxhY2UuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJQbHVnaW4vRmluZFJlcGxhY2UuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL0ZpbmRSZXBsYWNlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJQbHVnaW4vRmluZFJlcGxhY2UuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL0ZpbmRSZXBsYWNlRGlhbG9nLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL0ZpbmRSZXBsYWNlRGlhbG9nLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9GaW5kUmVwbGFjZURpYWxvZy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL0ZpbmRSZXBsYWNlRGlhbG9nLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9JbnNlcnRJbWFnZURpYWxvZy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9JbnNlcnRJbWFnZURpYWxvZy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJQbHVnaW4vSW5zZXJ0SW1hZ2VEaWFsb2cuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9JbnNlcnRJbWFnZURpYWxvZy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJQbHVnaW4vSW5zZXJ0VGFibGVEaWFsb2cuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJQbHVnaW4vSW5zZXJ0VGFibGVEaWFsb2cuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL0luc2VydFRhYmxlRGlhbG9nLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJQbHVnaW4vSW5zZXJ0VGFibGVEaWFsb2cuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL1NpbXBsZVNpZ25hbENvbW1hbmRzLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL1NpbXBsZVNpZ25hbENvbW1hbmRzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9TaW1wbGVTaWduYWxDb21tYW5kcy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL1NpbXBsZVNpZ25hbENvbW1hbmRzLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9UYWJsZU9wZXJhdGlvbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9UYWJsZU9wZXJhdGlvbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJQbHVnaW4vVGFibGVPcGVyYXRpb24uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9UYWJsZU9wZXJhdGlvbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJQbHVnaW4vVG9vbGJhckRuZFN1cHBvcnQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJQbHVnaW4vVG9vbGJhckRuZFN1cHBvcnQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL1Rvb2xiYXJEbmRTdXBwb3J0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJQbHVnaW4vVG9vbGJhckRuZFN1cHBvcnQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL19fcGFja2FnZV9fLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL19fcGFja2FnZV9fLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlBsdWdpbi9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9FZGl0b3IyUGx1Z2luL19fcGFja2FnZV9fLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlRvb2xiYXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0VkaXRvcjJUb29sYmFyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlRvb2xiYXIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRWRpdG9yMlRvb2xiYXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9GaWx0ZXJpbmdUYWJsZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRmlsdGVyaW5nVGFibGUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9GaWx0ZXJpbmdUYWJsZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9GaWx0ZXJpbmdUYWJsZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0Zpc2hleWVMaXN0LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9GaXNoZXllTGlzdC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0Zpc2hleWVMaXN0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0Zpc2hleWVMaXN0LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRmxvYXRpbmdQYW5lLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9GbG9hdGluZ1BhbmUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9GbG9hdGluZ1BhbmUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRmxvYXRpbmdQYW5lLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRm9ybS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRm9ybS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0Zvcm0uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvRm9ybS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0dvb2dsZU1hcC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvR29vZ2xlTWFwLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvR29vZ2xlTWFwLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0dvb2dsZU1hcC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0h0bWxXaWRnZXQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0h0bWxXaWRnZXQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9IdG1sV2lkZ2V0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0h0bWxXaWRnZXQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9JbmxpbmVFZGl0Qm94LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9JbmxpbmVFZGl0Qm94LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvSW5saW5lRWRpdEJveC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9JbmxpbmVFZGl0Qm94LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvSW50ZWdlclRleHRib3guanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0ludGVnZXJUZXh0Ym94LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvSW50ZWdlclRleHRib3guanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvSW50ZWdlclRleHRib3guanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9JbnRlcm5ldFRleHRib3guanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0ludGVybmV0VGV4dGJveC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0ludGVybmV0VGV4dGJveC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9JbnRlcm5ldFRleHRib3guanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9MYXlvdXRDb250YWluZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0xheW91dENvbnRhaW5lci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L0xheW91dENvbnRhaW5lci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9MYXlvdXRDb250YWluZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9MaW5rUGFuZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvTGlua1BhbmUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9MaW5rUGFuZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9MaW5rUGFuZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L01hbmFnZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L01hbmFnZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9NYW5hZ2VyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L01hbmFnZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9NZW51Mi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvTWVudTIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9NZW51Mi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9NZW51Mi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L01vbnRobHlDYWxlbmRhci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvTW9udGhseUNhbGVuZGFyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvTW9udGhseUNhbGVuZGFyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L01vbnRobHlDYWxlbmRhci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1BhZ2VDb250YWluZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1BhZ2VDb250YWluZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9QYWdlQ29udGFpbmVyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1BhZ2VDb250YWluZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9QYXJzZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUGFyc2UuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9QYXJzZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9QYXJzZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1BvcHVwQ29udGFpbmVyLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Qb3B1cENvbnRhaW5lci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1BvcHVwQ29udGFpbmVyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1BvcHVwQ29udGFpbmVyLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUHJvZ3Jlc3NCYXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1Byb2dyZXNzQmFyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUHJvZ3Jlc3NCYXIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUHJvZ3Jlc3NCYXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9SYWRpb0dyb3VwLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9SYWRpb0dyb3VwLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUmFkaW9Hcm91cC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9SYWRpb0dyb3VwLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUmVhbE51bWJlclRleHRib3guanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1JlYWxOdW1iZXJUZXh0Ym94LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUmVhbE51bWJlclRleHRib3guanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUmVhbE51bWJlclRleHRib3guanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9SZWdleHBUZXh0Ym94LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9SZWdleHBUZXh0Ym94LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUmVnZXhwVGV4dGJveC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9SZWdleHBUZXh0Ym94LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUmVtb3RlVGFiQ29udHJvbGxlci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUmVtb3RlVGFiQ29udHJvbGxlci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1JlbW90ZVRhYkNvbnRyb2xsZXIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUmVtb3RlVGFiQ29udHJvbGxlci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1JlcGVhdGVyLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9SZXBlYXRlci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1JlcGVhdGVyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1JlcGVhdGVyLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUmVzaXphYmxlVGV4dGFyZWEuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1Jlc2l6YWJsZVRleHRhcmVhLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUmVzaXphYmxlVGV4dGFyZWEuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUmVzaXphYmxlVGV4dGFyZWEuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9SZXNpemVIYW5kbGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1Jlc2l6ZUhhbmRsZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1Jlc2l6ZUhhbmRsZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9SZXNpemVIYW5kbGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9SaWNoVGV4dC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvUmljaFRleHQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9SaWNoVGV4dC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9SaWNoVGV4dC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1JvdW5kZWQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1JvdW5kZWQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Sb3VuZGVkLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1JvdW5kZWQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9TZWxlY3QuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1NlbGVjdC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1NlbGVjdC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9TZWxlY3QuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9TaG93LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9TaG93LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvU2hvdy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9TaG93LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvU2hvd0FjdGlvbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvU2hvd0FjdGlvbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1Nob3dBY3Rpb24uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvU2hvd0FjdGlvbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1Nob3dTbGlkZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvU2hvd1NsaWRlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvU2hvd1NsaWRlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1Nob3dTbGlkZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1NsaWRlU2hvdy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvU2xpZGVTaG93LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvU2xpZGVTaG93LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1NsaWRlU2hvdy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1NsaWRlci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvU2xpZGVyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvU2xpZGVyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1NsaWRlci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1NvcnRhYmxlVGFibGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1NvcnRhYmxlVGFibGUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Tb3J0YWJsZVRhYmxlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1NvcnRhYmxlVGFibGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9TcGlubmVyLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9TcGlubmVyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvU3Bpbm5lci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9TcGlubmVyLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvU3BsaXRDb250YWluZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1NwbGl0Q29udGFpbmVyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvU3BsaXRDb250YWluZXIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvU3BsaXRDb250YWluZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9TcGxpdFBhbmUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1NwbGl0UGFuZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1NwbGl0UGFuZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9TcGxpdFBhbmUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9TdmdCdXR0b24uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1N2Z0J1dHRvbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1N2Z0J1dHRvbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9TdmdCdXR0b24uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9TdmdXaWRnZXQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1N2Z1dpZGdldC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1N2Z1dpZGdldC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9TdmdXaWRnZXQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Td3RXaWRnZXQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1N3dFdpZGdldC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1N3dFdpZGdldC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Td3RXaWRnZXQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UYWJDb250YWluZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RhYkNvbnRhaW5lci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RhYkNvbnRhaW5lci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UYWJDb250YWluZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UYXNrQmFyLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UYXNrQmFyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVGFza0Jhci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UYXNrQmFyLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVGV4dGJveC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVGV4dGJveC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RleHRib3guanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVGV4dGJveC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RpbWVQaWNrZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RpbWVQaWNrZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UaW1lUGlja2VyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RpbWVQaWNrZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UaXRsZVBhbmUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RpdGxlUGFuZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RpdGxlUGFuZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UaXRsZVBhbmUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Ub2FzdGVyLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Ub2FzdGVyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVG9hc3Rlci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Ub2FzdGVyLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVG9nZ2xlci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVG9nZ2xlci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RvZ2dsZXIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVG9nZ2xlci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1Rvb2xiYXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1Rvb2xiYXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Ub29sYmFyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1Rvb2xiYXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Ub29sdGlwLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Ub29sdGlwLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVG9vbHRpcC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Ub29sdGlwLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVCYXNpY0NvbnRyb2xsZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVCYXNpY0NvbnRyb2xsZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlQmFzaWNDb250cm9sbGVyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVCYXNpY0NvbnRyb2xsZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlQmFzaWNDb250cm9sbGVyVjMuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVCYXNpY0NvbnRyb2xsZXJWMy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVCYXNpY0NvbnRyb2xsZXJWMy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlQmFzaWNDb250cm9sbGVyVjMuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlQ29tbW9uLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlQ29tbW9uLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUNvbW1vbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlQ29tbW9uLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUNvbnRleHRNZW51LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlQ29udGV4dE1lbnUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlQ29udGV4dE1lbnUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUNvbnRleHRNZW51LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUNvbnRleHRNZW51VjMuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVDb250ZXh0TWVudVYzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUNvbnRleHRNZW51VjMuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUNvbnRleHRNZW51VjMuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlQ29udHJvbGxlckV4dGVuc2lvbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUNvbnRyb2xsZXJFeHRlbnNpb24uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlQ29udHJvbGxlckV4dGVuc2lvbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlQ29udHJvbGxlckV4dGVuc2lvbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVEZW1vLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlRGVtby5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVEZW1vLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVEZW1vLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZURlc2VsZWN0T25EYmxzZWxlY3QuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVEZXNlbGVjdE9uRGJsc2VsZWN0LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZURlc2VsZWN0T25EYmxzZWxlY3QuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZURlc2VsZWN0T25EYmxzZWxlY3QuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlRGlzYWJsZVdyYXBFeHRlbnNpb24uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVEaXNhYmxlV3JhcEV4dGVuc2lvbi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVEaXNhYmxlV3JhcEV4dGVuc2lvbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlRGlzYWJsZVdyYXBFeHRlbnNpb24uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlRG5kQ29udHJvbGxlclYzLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlRG5kQ29udHJvbGxlclYzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZURuZENvbnRyb2xsZXJWMy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlRG5kQ29udHJvbGxlclYzLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZURvY0ljb25FeHRlbnNpb24uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVEb2NJY29uRXh0ZW5zaW9uLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZURvY0ljb25FeHRlbnNpb24uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZURvY0ljb25FeHRlbnNpb24uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlRWRpdG9yLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlRWRpdG9yLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUVkaXRvci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlRWRpdG9yLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUVtcGhhc2VPblNlbGVjdC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUVtcGhhc2VPblNlbGVjdC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVFbXBoYXNlT25TZWxlY3QuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUVtcGhhc2VPblNlbGVjdC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVFbXBoYXNpemVPblNlbGVjdC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUVtcGhhc2l6ZU9uU2VsZWN0LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUVtcGhhc2l6ZU9uU2VsZWN0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVFbXBoYXNpemVPblNlbGVjdC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVFeHBhbmRPblNlbGVjdC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUV4cGFuZE9uU2VsZWN0LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUV4cGFuZE9uU2VsZWN0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVFeHBhbmRPblNlbGVjdC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVFeHBhbmRUb05vZGVPblNlbGVjdC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUV4cGFuZFRvTm9kZU9uU2VsZWN0LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUV4cGFuZFRvTm9kZU9uU2VsZWN0LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVFeHBhbmRUb05vZGVPblNlbGVjdC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVFeHRlbnNpb24uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVFeHRlbnNpb24uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlRXh0ZW5zaW9uLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVFeHRlbnNpb24uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlTGlua0V4dGVuc2lvbi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUxpbmtFeHRlbnNpb24uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlTGlua0V4dGVuc2lvbi5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlTGlua0V4dGVuc2lvbi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVMb2FkaW5nQ29udHJvbGxlci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUxvYWRpbmdDb250cm9sbGVyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZUxvYWRpbmdDb250cm9sbGVyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVMb2FkaW5nQ29udHJvbGxlci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVMb2FkaW5nQ29udHJvbGxlclYzLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlTG9hZGluZ0NvbnRyb2xsZXJWMy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVMb2FkaW5nQ29udHJvbGxlclYzLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVMb2FkaW5nQ29udHJvbGxlclYzLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZU5vZGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVOb2RlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZU5vZGUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZU5vZGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlTm9kZVYzLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlTm9kZVYzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZU5vZGVWMy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlTm9kZVYzLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVJQQ0NvbnRyb2xsZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVSUENDb250cm9sbGVyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVJQQ0NvbnRyb2xsZXIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVJQQ0NvbnRyb2xsZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlUnBjQ29udHJvbGxlclYzLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlUnBjQ29udHJvbGxlclYzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVJwY0NvbnRyb2xsZXJWMy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlUnBjQ29udHJvbGxlclYzLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVNlbGVjdG9yLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlU2VsZWN0b3IuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlU2VsZWN0b3IuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVNlbGVjdG9yLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVNlbGVjdG9yVjMuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1RyZWVTZWxlY3RvclYzLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVNlbGVjdG9yVjMuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVNlbGVjdG9yVjMuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlVGltZW91dEl0ZXJhdG9yLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlVGltZW91dEl0ZXJhdG9yLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVRpbWVvdXRJdGVyYXRvci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlVGltZW91dEl0ZXJhdG9yLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVRvZ2dsZU9uU2VsZWN0LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlVG9nZ2xlT25TZWxlY3QuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlVG9nZ2xlT25TZWxlY3QuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVRvZ2dsZU9uU2VsZWN0LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVYzLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlVjMuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlVjMuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVYzLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVdpdGhOb2RlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlV2l0aE5vZGUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9UcmVlV2l0aE5vZGUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVHJlZVdpdGhOb2RlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVXNUZXh0Ym94LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Vc1RleHRib3guanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9Vc1RleHRib3guanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVXNUZXh0Ym94LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVmFsaWRhdGlvblRleHRib3guanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1ZhbGlkYXRpb25UZXh0Ym94LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVmFsaWRhdGlvblRleHRib3guanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvVmFsaWRhdGlvblRleHRib3guanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9XaWRnZXQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1dpZGdldC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1dpZGdldC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9XaWRnZXQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9XaXphcmQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1dpemFyZC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L1dpemFyZC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9XaXphcmQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ZYWhvb01hcC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvWWFob29NYXAuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ZYWhvb01hcC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ZYWhvb01hcC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L19fcGFja2FnZV9fLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9fX3BhY2thZ2VfXy5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L19fcGFja2FnZV9fLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L19fcGFja2FnZV9fLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS9EZW1vQ29udGFpbmVyLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL0RlbW9Db250YWluZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL0RlbW9Db250YWluZXIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS9EZW1vQ29udGFpbmVyLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS9EZW1vSXRlbS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS9EZW1vSXRlbS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvRGVtb0l0ZW0uanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS9EZW1vSXRlbS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvRGVtb05hdmlnYXRvci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS9EZW1vTmF2aWdhdG9yLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS9EZW1vTmF2aWdhdG9yLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvRGVtb05hdmlnYXRvci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvRGVtb1BhbmUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvRGVtb1BhbmUuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL0RlbW9QYW5lLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvRGVtb1BhbmUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL1NvdXJjZVBhbmUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvU291cmNlUGFuZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvU291cmNlUGFuZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL1NvdXJjZVBhbmUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL19fcGFja2FnZV9fLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL19fcGFja2FnZV9fLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL19fcGFja2FnZV9fLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvRGVtb0NvbnRhaW5lci5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL0RlbW9Db250YWluZXIuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvRGVtb0NvbnRhaW5lci5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvRGVtb0NvbnRhaW5lci5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9EZW1vQ29udGFpbmVyLmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL0RlbW9Db250YWluZXIuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL0RlbW9Db250YWluZXIuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9EZW1vQ29udGFpbmVyLmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9EZW1vSXRlbS5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL0RlbW9JdGVtLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL0RlbW9JdGVtLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9EZW1vSXRlbS5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9EZW1vSXRlbS5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9EZW1vSXRlbS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvRGVtb0l0ZW0uaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9EZW1vSXRlbS5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvRGVtb05hdmlnYXRvci5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL0RlbW9OYXZpZ2F0b3IuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvRGVtb05hdmlnYXRvci5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvRGVtb05hdmlnYXRvci5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9EZW1vTmF2aWdhdG9yLmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL0RlbW9OYXZpZ2F0b3IuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL0RlbW9OYXZpZ2F0b3IuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9EZW1vTmF2aWdhdG9yLmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9EZW1vUGFuZS5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL0RlbW9QYW5lLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL0RlbW9QYW5lLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9EZW1vUGFuZS5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9EZW1vUGFuZS5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9EZW1vUGFuZS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvRGVtb1BhbmUuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9EZW1vUGFuZS5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvU291cmNlUGFuZS5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL1NvdXJjZVBhbmUuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvU291cmNlUGFuZS5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvU291cmNlUGFuZS5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9Tb3VyY2VQYW5lLmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL1NvdXJjZVBhbmUuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL1NvdXJjZVBhbmUuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9Tb3VyY2VQYW5lLmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9nZW5lcmFsLmNzcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvZ2VuZXJhbC5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9nZW5lcmFsLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9kZW1vRW5naW5lL3RlbXBsYXRlcy9nZW5lcmFsLmNzcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL2ltYWdlcy90ZXN0X3RodW1iLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvaW1hZ2VzL3Rlc3RfdGh1bWIuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvaW1hZ2VzL3Rlc3RfdGh1bWIuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL2ltYWdlcy90ZXN0X3RodW1iLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvaW1hZ2VzL3ZpZXdEZW1vLnBuZyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvaW1hZ2VzL3ZpZXdEZW1vLnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2RlbW9FbmdpbmUvdGVtcGxhdGVzL2ltYWdlcy92aWV3RGVtby5wbmcKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvZGVtb0VuZ2luZS90ZW1wbGF0ZXMvaW1hZ2VzL3ZpZXdEZW1vLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvaHRtbC9sYXlvdXQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2h0bWwvbGF5b3V0LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvaHRtbC9sYXlvdXQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvaHRtbC9sYXlvdXQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9odG1sL2xvYWRlci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvaHRtbC9sb2FkZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9odG1sL2xvYWRlci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9odG1sL2xvYWRlci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2h0bWwvc3RhYmlsZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvaHRtbC9zdGFiaWxlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvaHRtbC9zdGFiaWxlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L2h0bWwvc3RhYmlsZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L25scy9Ecm9wZG93bkRhdGVQaWNrZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L25scy9Ecm9wZG93bkRhdGVQaWNrZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ubHMvRHJvcGRvd25EYXRlUGlja2VyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L25scy9Ecm9wZG93bkRhdGVQaWNrZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ubHMvRHJvcGRvd25UaW1lUGlja2VyLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ubHMvRHJvcGRvd25UaW1lUGlja2VyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvbmxzL0Ryb3Bkb3duVGltZVBpY2tlci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ubHMvRHJvcGRvd25UaW1lUGlja2VyLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvbmxzL1RpbWVQaWNrZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L25scy9UaW1lUGlja2VyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvbmxzL1RpbWVQaWNrZXIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvbmxzL1RpbWVQaWNrZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ubHMvZnIvdmFsaWRhdGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L25scy9mci92YWxpZGF0ZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L25scy9mci92YWxpZGF0ZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ubHMvZnIvdmFsaWRhdGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ubHMvamEvdmFsaWRhdGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L25scy9qYS92YWxpZGF0ZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L25scy9qYS92YWxpZGF0ZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ubHMvamEvdmFsaWRhdGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ubHMvdmFsaWRhdGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L25scy92YWxpZGF0ZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L25scy92YWxpZGF0ZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ubHMvdmFsaWRhdGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ubHMvemgtY24vdmFsaWRhdGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L25scy96aC1jbi92YWxpZGF0ZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L25scy96aC1jbi92YWxpZGF0ZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9ubHMvemgtY24vdmFsaWRhdGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9zdmcvQ2hhcnQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3N2Zy9DaGFydC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3N2Zy9DaGFydC5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC9zdmcvQ2hhcnQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQWNjb3JkaW9uUGFuZS5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9BY2NvcmRpb25QYW5lLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9BY2NvcmRpb25QYW5lLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQWNjb3JkaW9uUGFuZS5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQWNjb3JkaW9uUGFuZS5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQWNjb3JkaW9uUGFuZS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0FjY29yZGlvblBhbmUuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQWNjb3JkaW9uUGFuZS5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0J1dHRvblRlbXBsYXRlLmNzcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0J1dHRvblRlbXBsYXRlLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9CdXR0b25UZW1wbGF0ZS5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0J1dHRvblRlbXBsYXRlLmNzcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9CdXR0b25UZW1wbGF0ZS5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQnV0dG9uVGVtcGxhdGUuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9CdXR0b25UZW1wbGF0ZS5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9CdXR0b25UZW1wbGF0ZS5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0NoZWNrYm94LmNzcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0NoZWNrYm94LmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9DaGVja2JveC5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0NoZWNrYm94LmNzcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9DaGVja2JveC5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQ2hlY2tib3guaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9DaGVja2JveC5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9DaGVja2JveC5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0NoZWNrYm94QTExeS5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQ2hlY2tib3hBMTF5Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQ2hlY2tib3hBMTF5Lmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0NoZWNrYm94QTExeS5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0NpdmlDcm1EYXRlUGlja2VyLmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9DaXZpQ3JtRGF0ZVBpY2tlci5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0NpdmlDcm1EYXRlUGlja2VyLmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0NpdmlDcm1EYXRlUGlja2VyLmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQ29tYm9Cb3guY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQ29tYm9Cb3guY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0NvbWJvQm94LmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQ29tYm9Cb3guY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0NvbWJvQm94Lmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9Db21ib0JveC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0NvbWJvQm94Lmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0NvbWJvQm94Lmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQ29tYm9CdXR0b25UZW1wbGF0ZS5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQ29tYm9CdXR0b25UZW1wbGF0ZS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0NvbWJvQnV0dG9uVGVtcGxhdGUuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvQ29tYm9CdXR0b25UZW1wbGF0ZS5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0RhdGVQaWNrZXIuY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRGF0ZVBpY2tlci5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRGF0ZVBpY2tlci5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0RhdGVQaWNrZXIuY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0RhdGVQaWNrZXIuaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0RhdGVQaWNrZXIuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9EYXRlUGlja2VyLmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0RhdGVQaWNrZXIuaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9EZW1vRW5naW5lLmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9EZW1vRW5naW5lLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRGVtb0VuZ2luZS5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9EZW1vRW5naW5lLmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRGlhbG9nLmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9EaWFsb2cuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9EaWFsb2cuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRGlhbG9nLmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRG9jUGFuZS5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9Eb2NQYW5lLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9Eb2NQYW5lLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRG9jUGFuZS5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRG9jUGFuZS5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRG9jUGFuZS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0RvY1BhbmUuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRG9jUGFuZS5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0Ryb3BEb3duQnV0dG9uVGVtcGxhdGUuaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0Ryb3BEb3duQnV0dG9uVGVtcGxhdGUuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9Ecm9wRG93bkJ1dHRvblRlbXBsYXRlLmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0Ryb3BEb3duQnV0dG9uVGVtcGxhdGUuaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL0RpYWxvZy9jcmVhdGVsaW5rLmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL0RpYWxvZy9jcmVhdGVsaW5rLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9EaWFsb2cvY3JlYXRlbGluay5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL0RpYWxvZy9jcmVhdGVsaW5rLmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9EaWFsb2cvZmluZC5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9EaWFsb2cvZmluZC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvcjIvRGlhbG9nL2ZpbmQuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9EaWFsb2cvZmluZC5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvcjIvRGlhbG9nL2luc2VydGltYWdlLmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL0RpYWxvZy9pbnNlcnRpbWFnZS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvcjIvRGlhbG9nL2luc2VydGltYWdlLmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvcjIvRGlhbG9nL2luc2VydGltYWdlLmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9EaWFsb2cvaW5zZXJ0dGFibGUuaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvcjIvRGlhbG9nL2luc2VydHRhYmxlLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9EaWFsb2cvaW5zZXJ0dGFibGUuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9EaWFsb2cvaW5zZXJ0dGFibGUuaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL0RpYWxvZy9yZXBsYWNlLmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL0RpYWxvZy9yZXBsYWNlLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9EaWFsb2cvcmVwbGFjZS5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL0RpYWxvZy9yZXBsYWNlLmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9FZGl0b3JEaWFsb2cuaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvcjIvRWRpdG9yRGlhbG9nLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9FZGl0b3JEaWFsb2cuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9FZGl0b3JEaWFsb2cuaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL0VkaXRvclRvb2xiYXJfRm9udE5hbWUuaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvcjIvRWRpdG9yVG9vbGJhcl9Gb250TmFtZS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvcjIvRWRpdG9yVG9vbGJhcl9Gb250TmFtZS5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL0VkaXRvclRvb2xiYXJfRm9udE5hbWUuaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL0VkaXRvclRvb2xiYXJfRm9udFNpemUuaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvcjIvRWRpdG9yVG9vbGJhcl9Gb250U2l6ZS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvcjIvRWRpdG9yVG9vbGJhcl9Gb250U2l6ZS5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL0VkaXRvclRvb2xiYXJfRm9udFNpemUuaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL0VkaXRvclRvb2xiYXJfRm9ybWF0QmxvY2suaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvcjIvRWRpdG9yVG9vbGJhcl9Gb3JtYXRCbG9jay5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvcjIvRWRpdG9yVG9vbGJhcl9Gb3JtYXRCbG9jay5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL0VkaXRvclRvb2xiYXJfRm9ybWF0QmxvY2suaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL3Nob3d0YWJsZWJvcmRlcl9nZWNrby5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL3Nob3d0YWJsZWJvcmRlcl9nZWNrby5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9zaG93dGFibGVib3JkZXJfZ2Vja28uY3NzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3IyL3Nob3d0YWJsZWJvcmRlcl9nZWNrby5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9zaG93dGFibGVib3JkZXJfaWUuY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9zaG93dGFibGVib3JkZXJfaWUuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvcjIvc2hvd3RhYmxlYm9yZGVyX2llLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yMi9zaG93dGFibGVib3JkZXJfaWUuY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvclRvb2xiYXIuY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yVG9vbGJhci5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yVG9vbGJhci5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvclRvb2xiYXIuY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvclRvb2xiYXIuaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvclRvb2xiYXIuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3JUb29sYmFyLmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvclRvb2xiYXIuaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3JUb29sYmFyTGlnaHQuaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvclRvb2xiYXJMaWdodC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0VkaXRvclRvb2xiYXJMaWdodC5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3JUb29sYmFyTGlnaHQuaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3JUb29sYmFyT25lbGluZS5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRWRpdG9yVG9vbGJhck9uZWxpbmUuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3JUb29sYmFyT25lbGluZS5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9FZGl0b3JUb29sYmFyT25lbGluZS5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0Zpc2hleWVMaXN0LmNzcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0Zpc2hleWVMaXN0LmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9GaXNoZXllTGlzdC5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0Zpc2hleWVMaXN0LmNzcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9GbG9hdGluZ1BhbmUuY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRmxvYXRpbmdQYW5lLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9GbG9hdGluZ1BhbmUuY3NzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9GbG9hdGluZ1BhbmUuY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0Zsb2F0aW5nUGFuZS5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRmxvYXRpbmdQYW5lLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvRmxvYXRpbmdQYW5lLmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0Zsb2F0aW5nUGFuZS5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0lubGluZUVkaXRCb3guY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvSW5saW5lRWRpdEJveC5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvSW5saW5lRWRpdEJveC5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0lubGluZUVkaXRCb3guY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0lubGluZUVkaXRCb3guaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0lubGluZUVkaXRCb3guaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9JbmxpbmVFZGl0Qm94Lmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL0lubGluZUVkaXRCb3guaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9NZW51LmNzcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL01lbnUuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL01lbnUuY3NzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9NZW51LmNzcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9NZW51Mi5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9NZW51Mi5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvTWVudTIuY3NzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9NZW51Mi5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvTW9udGhseUNhbGVuZGFyLmNzcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL01vbnRobHlDYWxlbmRhci5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvTW9udGhseUNhbGVuZGFyLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvTW9udGhseUNhbGVuZGFyLmNzcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9Nb250aGx5Q2FsZW5kYXIuaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL01vbnRobHlDYWxlbmRhci5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL01vbnRobHlDYWxlbmRhci5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9Nb250aGx5Q2FsZW5kYXIuaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9Qb3BVcEJ1dHRvbi5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9Qb3BVcEJ1dHRvbi5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvUG9wVXBCdXR0b24uY3NzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9Qb3BVcEJ1dHRvbi5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvUHJvZ3Jlc3NCYXIuY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvUHJvZ3Jlc3NCYXIuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Byb2dyZXNzQmFyLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvUHJvZ3Jlc3NCYXIuY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Byb2dyZXNzQmFyLmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9Qcm9ncmVzc0Jhci5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Byb2dyZXNzQmFyLmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Byb2dyZXNzQmFyLmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvUmVtb3RlVGFiQ29udHJvbC5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9SZW1vdGVUYWJDb250cm9sLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9SZW1vdGVUYWJDb250cm9sLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvUmVtb3RlVGFiQ29udHJvbC5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvUmVzaXphYmxlVGV4dGFyZWEuY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvUmVzaXphYmxlVGV4dGFyZWEuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Jlc2l6YWJsZVRleHRhcmVhLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvUmVzaXphYmxlVGV4dGFyZWEuY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Jlc2l6YWJsZVRleHRhcmVhLmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9SZXNpemFibGVUZXh0YXJlYS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Jlc2l6YWJsZVRleHRhcmVhLmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Jlc2l6YWJsZVRleHRhcmVhLmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvUmVzaXplSGFuZGxlLmNzcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Jlc2l6ZUhhbmRsZS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvUmVzaXplSGFuZGxlLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvUmVzaXplSGFuZGxlLmNzcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TaG93LmNzcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Nob3cuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Nob3cuY3NzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TaG93LmNzcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TaG93Lmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TaG93Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU2hvdy5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TaG93Lmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU2hvd1NsaWRlLmNzcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Nob3dTbGlkZS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU2hvd1NsaWRlLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU2hvd1NsaWRlLmNzcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TaG93U2xpZGUuaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Nob3dTbGlkZS5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Nob3dTbGlkZS5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TaG93U2xpZGUuaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TbGlkZVNob3cuY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU2xpZGVTaG93LmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TbGlkZVNob3cuY3NzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TbGlkZVNob3cuY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1NsaWRlU2hvdy5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU2xpZGVTaG93Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU2xpZGVTaG93Lmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1NsaWRlU2hvdy5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1NsaWRlci5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TbGlkZXIuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1NsaWRlci5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1NsaWRlci5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU2xpZGVyLmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TbGlkZXIuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TbGlkZXIuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU2xpZGVyLmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU2xpZGVySG9yaXpvbnRhbC5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU2xpZGVySG9yaXpvbnRhbC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1NsaWRlckhvcml6b250YWwuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU2xpZGVySG9yaXpvbnRhbC5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1NsaWRlclZlcnRpY2FsLmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TbGlkZXJWZXJ0aWNhbC5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1NsaWRlclZlcnRpY2FsLmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1NsaWRlclZlcnRpY2FsLmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU3Bpbm5lci5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TcGlubmVyLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TcGlubmVyLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU3Bpbm5lci5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU3Bpbm5lci5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU3Bpbm5lci5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1NwaW5uZXIuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvU3Bpbm5lci5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1NwbGl0Q29udGFpbmVyLmNzcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1NwbGl0Q29udGFpbmVyLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9TcGxpdENvbnRhaW5lci5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1NwbGl0Q29udGFpbmVyLmNzcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UYWJDb250YWluZXIuY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGFiQ29udGFpbmVyLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UYWJDb250YWluZXIuY3NzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UYWJDb250YWluZXIuY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1RhYkNvbnRhaW5lci5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGFiQ29udGFpbmVyLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGFiQ29udGFpbmVyLmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1RhYkNvbnRhaW5lci5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1RhYkNvbnRhaW5lckExMXkuY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGFiQ29udGFpbmVyQTExeS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGFiQ29udGFpbmVyQTExeS5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1RhYkNvbnRhaW5lckExMXkuY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Rhc2tCYXIuY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGFza0Jhci5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGFza0Jhci5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Rhc2tCYXIuY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Rhc2tCYXJJdGVtVGVtcGxhdGUuaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Rhc2tCYXJJdGVtVGVtcGxhdGUuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UYXNrQmFySXRlbVRlbXBsYXRlLmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Rhc2tCYXJJdGVtVGVtcGxhdGUuaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UZXh0Ym94Lmh0bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UZXh0Ym94Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGV4dGJveC5odG1sCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UZXh0Ym94Lmh0bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGltZVBpY2tlci5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UaW1lUGlja2VyLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UaW1lUGlja2VyLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGltZVBpY2tlci5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGltZVBpY2tlci5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGltZVBpY2tlci5odG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1RpbWVQaWNrZXIuaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGltZVBpY2tlci5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1RpdGxlUGFuZS5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGl0bGVQYW5lLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVGl0bGVQYW5lLmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1RpdGxlUGFuZS5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1RvYXN0ZXIuY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVG9hc3Rlci5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVG9hc3Rlci5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1RvYXN0ZXIuY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Rvb2xiYXIuY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVG9vbGJhci5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVG9vbGJhci5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Rvb2xiYXIuY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Rvb2x0aXBUZW1wbGF0ZS5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9Ub29sdGlwVGVtcGxhdGUuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Rvb2x0aXBUZW1wbGF0ZS5jc3MKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1Rvb2x0aXBUZW1wbGF0ZS5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVHJlZS5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UcmVlLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UcmVlLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVHJlZS5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVHJlZURpc2FibGVXcmFwLmNzcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1RyZWVEaXNhYmxlV3JhcC5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVHJlZURpc2FibGVXcmFwLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVHJlZURpc2FibGVXcmFwLmNzcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UcmVlRG9jSWNvbi5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UcmVlRG9jSWNvbi5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVHJlZURvY0ljb24uY3NzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UcmVlRG9jSWNvbi5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVHJlZUVkaXRvci5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UcmVlRWRpdG9yLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9UcmVlRWRpdG9yLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVHJlZUVkaXRvci5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVHJlZVYzLmNzcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1RyZWVWMy5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVHJlZVYzLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVHJlZVYzLmNzcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9WYWxpZGF0ZS5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9WYWxpZGF0ZS5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVmFsaWRhdGUuY3NzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9WYWxpZGF0ZS5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVmFsaWRhdGlvblRleHRib3guaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1ZhbGlkYXRpb25UZXh0Ym94Lmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVmFsaWRhdGlvblRleHRib3guaHRtbApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvVmFsaWRhdGlvblRleHRib3guaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9XaXphcmQuY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvV2l6YXJkLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9XaXphcmQuY3NzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9XaXphcmQuY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1dpemFyZC5odG1sIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvV2l6YXJkLmh0bWwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvV2l6YXJkLmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL1dpemFyZC5odG1sCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvYWdncmVnYXRlLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvYWdncmVnYXRlLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2FnZ3JlZ2F0ZS5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvYWdncmVnYXRlLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvYmFja2NvbG9yLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvYmFja2NvbG9yLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2JhY2tjb2xvci5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvYmFja2NvbG9yLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvYmctZmFkZS5wbmcgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2JnLWZhZGUucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvYmctZmFkZS5wbmcKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvYmctZmFkZS5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2JvbGQuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9ib2xkLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2JvbGQuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2JvbGQuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9jYW5jZWwuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9jYW5jZWwuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvY2FuY2VsLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9jYW5jZWwuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9jb3B5LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvY29weS5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9jb3B5LmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9jb3B5LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvY3JlYXRlbGluay5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2NyZWF0ZWxpbmsuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvY3JlYXRlbGluay5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvY3JlYXRlbGluay5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2N1dC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2N1dC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9jdXQuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2N1dC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2RlbGV0ZS5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2RlbGV0ZS5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9kZWxldGUuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2RlbGV0ZS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2ZvcmVjb2xvci5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2ZvcmVjb2xvci5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9mb3JlY29sb3IuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2ZvcmVjb2xvci5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2hpbGl0ZWNvbG9yLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaGlsaXRlY29sb3IuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaGlsaXRlY29sb3IuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2hpbGl0ZWNvbG9yLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaW5kZW50LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaW5kZW50LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2luZGVudC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaW5kZW50LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaW5zZXJ0aG9yaXpvbnRhbHJ1bGUuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9pbnNlcnRob3Jpem9udGFscnVsZS5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9pbnNlcnRob3Jpem9udGFscnVsZS5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaW5zZXJ0aG9yaXpvbnRhbHJ1bGUuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9pbnNlcnRpbWFnZS5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2luc2VydGltYWdlLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2luc2VydGltYWdlLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9pbnNlcnRpbWFnZS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2luc2VydG9yZGVyZWRsaXN0LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaW5zZXJ0b3JkZXJlZGxpc3QuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaW5zZXJ0b3JkZXJlZGxpc3QuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2luc2VydG9yZGVyZWRsaXN0LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaW5zZXJ0dGFibGUuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9pbnNlcnR0YWJsZS5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9pbnNlcnR0YWJsZS5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaW5zZXJ0dGFibGUuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9pbnNlcnR1bm9yZGVyZWRsaXN0LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaW5zZXJ0dW5vcmRlcmVkbGlzdC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9pbnNlcnR1bm9yZGVyZWRsaXN0LmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9pbnNlcnR1bm9yZGVyZWRsaXN0LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaXRhbGljLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaXRhbGljLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2l0YWxpYy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvaXRhbGljLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvanVzdGlmeWNlbnRlci5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2p1c3RpZnljZW50ZXIuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvanVzdGlmeWNlbnRlci5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvanVzdGlmeWNlbnRlci5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2p1c3RpZnlmdWxsLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvanVzdGlmeWZ1bGwuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvanVzdGlmeWZ1bGwuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2p1c3RpZnlmdWxsLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvanVzdGlmeWxlZnQuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9qdXN0aWZ5bGVmdC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9qdXN0aWZ5bGVmdC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvanVzdGlmeWxlZnQuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9qdXN0aWZ5cmlnaHQuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9qdXN0aWZ5cmlnaHQuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvanVzdGlmeXJpZ2h0LmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9qdXN0aWZ5cmlnaHQuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9sZWZ0X3RvX3JpZ2h0LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvbGVmdF90b19yaWdodC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9sZWZ0X3RvX3JpZ2h0LmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9sZWZ0X3RvX3JpZ2h0LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvbGlzdF9idWxsZXRfaW5kZW50LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvbGlzdF9idWxsZXRfaW5kZW50LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2xpc3RfYnVsbGV0X2luZGVudC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvbGlzdF9idWxsZXRfaW5kZW50LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvbGlzdF9idWxsZXRfb3V0ZGVudC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2xpc3RfYnVsbGV0X291dGRlbnQuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvbGlzdF9idWxsZXRfb3V0ZGVudC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvbGlzdF9idWxsZXRfb3V0ZGVudC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2xpc3RfbnVtX2luZGVudC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2xpc3RfbnVtX2luZGVudC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9saXN0X251bV9pbmRlbnQuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2xpc3RfbnVtX2luZGVudC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2xpc3RfbnVtX291dGRlbnQuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9saXN0X251bV9vdXRkZW50LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2xpc3RfbnVtX291dGRlbnQuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL2xpc3RfbnVtX291dGRlbnQuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9vdXRkZW50LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvb3V0ZGVudC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9vdXRkZW50LmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9vdXRkZW50LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvcGFzdGUuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9wYXN0ZS5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9wYXN0ZS5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvcGFzdGUuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9yZWRvLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvcmVkby5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9yZWRvLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9yZWRvLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvcmVtb3ZlZm9ybWF0LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvcmVtb3ZlZm9ybWF0LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3JlbW92ZWZvcm1hdC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvcmVtb3ZlZm9ybWF0LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvcmlnaHRfdG9fbGVmdC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3JpZ2h0X3RvX2xlZnQuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvcmlnaHRfdG9fbGVmdC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvcmlnaHRfdG9fbGVmdC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3NhdmUuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9zYXZlLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3NhdmUuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3NhdmUuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9zZXAuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9zZXAuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvc2VwLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9zZXAuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9zcGFjZS5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3NwYWNlLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3NwYWNlLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9zcGFjZS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3N0cmlrZXRocm91Z2guZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9zdHJpa2V0aHJvdWdoLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3N0cmlrZXRocm91Z2guZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3N0cmlrZXRocm91Z2guZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9zdWJzY3JpcHQuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9zdWJzY3JpcHQuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2J1dHRvbnMvc3Vic2NyaXB0LmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9zdWJzY3JpcHQuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9zdXBlcnNjcmlwdC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3N1cGVyc2NyaXB0LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3N1cGVyc2NyaXB0LmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy9zdXBlcnNjcmlwdC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3VuZGVybGluZS5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3VuZGVybGluZS5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy91bmRlcmxpbmUuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3VuZGVybGluZS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3VuZG8uZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy91bmRvLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3VuZG8uZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3VuZG8uZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy93aWtpd29yZC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3dpa2l3b3JkLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9idXR0b25zL3dpa2l3b3JkLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvYnV0dG9ucy93aWtpd29yZC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9jaGVjay5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9jaGVjay5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvY2hlY2suZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9jaGVjay5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9kZWNyZW1lbnRNb250aC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9kZWNyZW1lbnRNb250aC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvZGVjcmVtZW50TW9udGguZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9kZWNyZW1lbnRNb250aC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9kZWNyZW1lbnRXZWVrLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2RlY3JlbWVudFdlZWsuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2RlY3JlbWVudFdlZWsuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9kZWNyZW1lbnRXZWVrLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2dyYWJDb3JuZXIuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvZ3JhYkNvcm5lci5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvZ3JhYkNvcm5lci5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2dyYWJDb3JuZXIuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvVHJlZS5jc3MgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS9UcmVlLmNzcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS9UcmVlLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvVHJlZS5jc3MKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvYmxhbmsuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvYmxhbmsuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL2JsYW5rLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvYmxhbmsuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvY2xvc2VkLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL2Nsb3NlZC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvY2xvc2VkLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvY2xvc2VkLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL2RvY3VtZW50LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL2RvY3VtZW50LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS9kb2N1bWVudC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL2RvY3VtZW50LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL21pbnVzLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL21pbnVzLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS9taW51cy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL21pbnVzLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3BsdXMuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvcGx1cy5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvcGx1cy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3BsdXMuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJhbnNwYXJlbnQuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJhbnNwYXJlbnQuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyYW5zcGFyZW50LmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJhbnNwYXJlbnQuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfYmxhbmsuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfYmxhbmsuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2JsYW5rLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfYmxhbmsuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfY2hpbGQuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfY2hpbGQuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2NoaWxkLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfY2hpbGQuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfZXhwYW5kX21pbnVzLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2V4cGFuZF9taW51cy5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfZXhwYW5kX21pbnVzLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfZXhwYW5kX21pbnVzLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2V4cGFuZF9wbHVzLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2V4cGFuZF9wbHVzLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9leHBhbmRfcGx1cy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2V4cGFuZF9wbHVzLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2dyaWRfYy5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9ncmlkX2MuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2dyaWRfYy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2dyaWRfYy5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9ncmlkX2wuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfZ3JpZF9sLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9ncmlkX2wuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9ncmlkX2wuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfZ3JpZF9wLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2dyaWRfcC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfZ3JpZF9wLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfZ3JpZF9wLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2dyaWRfdC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9ncmlkX3QuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2dyaWRfdC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2dyaWRfdC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9ncmlkX3YuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfZ3JpZF92LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9ncmlkX3YuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9ncmlkX3YuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfZ3JpZF94LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2dyaWRfeC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfZ3JpZF94LmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfZ3JpZF94LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2dyaWRfeS5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9ncmlkX3kuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2dyaWRfeS5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2dyaWRfeS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9ncmlkX3ouZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfZ3JpZF96LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9ncmlkX3ouZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9ncmlkX3ouZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfbG9hZGluZy5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9sb2FkaW5nLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9sb2FkaW5nLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWUvdHJlZW5vZGVfbG9hZGluZy5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9sb2FkaW5nLmpwZyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2xvYWRpbmcuanBnCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlL3RyZWVub2RlX2xvYWRpbmcuanBnCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZS90cmVlbm9kZV9sb2FkaW5nLmpwZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvY2xvc2VkLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvY2xvc2VkLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2Nsb3NlZC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvY2xvc2VkLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvZG9jdW1lbnQuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9kb2N1bWVudC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9kb2N1bWVudC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvZG9jdW1lbnQuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9leHBhbmRfbGVhZi5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2V4cGFuZF9sZWFmLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2V4cGFuZF9sZWFmLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9leHBhbmRfbGVhZi5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2V4cGFuZF9sb2FkaW5nLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvZXhwYW5kX2xvYWRpbmcuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvZXhwYW5kX2xvYWRpbmcuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2V4cGFuZF9sb2FkaW5nLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvZXhwYW5kX21pbnVzLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvZXhwYW5kX21pbnVzLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2V4cGFuZF9taW51cy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvZXhwYW5kX21pbnVzLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvZXhwYW5kX3BsdXMuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9leHBhbmRfcGx1cy5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9leHBhbmRfcGx1cy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvZXhwYW5kX3BsdXMuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9pLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvaS5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9pLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9pLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvaV9iaGFsZi5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2lfYmhhbGYuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvaV9iaGFsZi5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvaV9iaGFsZi5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2lfaGFsZi5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2lfaGFsZi5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9pX2hhbGYuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2lfaGFsZi5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2lfbG9uZy5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2lfbG9uZy5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9pX2xvbmcuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2lfbG9uZy5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2wuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9sLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2wuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL2wuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9taW51cy5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL21pbnVzLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL21pbnVzLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9taW51cy5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL29wZW4uZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9vcGVuLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL29wZW4uZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL29wZW4uZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9wbHVzLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvcGx1cy5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9wbHVzLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy9wbHVzLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvdC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL3QuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvdC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9UcmVlVjMvdC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL3guZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL1RyZWVWMy94LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL3guZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvVHJlZVYzL3guZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2Jhci5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvYmFyLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvYmFyLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2Jhci5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvYmRZZWFyQmcuMS5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvYmRZZWFyQmcuMS5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2JkWWVhckJnLjEuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvYmRZZWFyQmcuMS5naWYKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2JkWWVhckJnLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9iZFllYXJCZy5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2JkWWVhckJnLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2JkWWVhckJnLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9ibGFuay5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvYmxhbmsuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9ibGFuay5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9ibGFuay5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvY2xvY2sucG5nIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2Nsb2NrLnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvY2xvY2sucG5nCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvY2xvY2sucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2NvbWJvX2JveF9hcnJvdy5wbmcgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvY29tYm9fYm94X2Fycm93LnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvY29tYm9fYm94X2Fycm93LnBuZwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2NvbWJvX2JveF9hcnJvdy5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZGF0ZUljb24uZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RhdGVJY29uLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZGF0ZUljb24uZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZGF0ZUljb24uZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RlY3JlbWVudE1vbnRoLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kZWNyZW1lbnRNb250aC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RlY3JlbWVudE1vbnRoLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RlY3JlbWVudE1vbnRoLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kZWNyZW1lbnRNb250aC5wbmcgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZGVjcmVtZW50TW9udGgucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kZWNyZW1lbnRNb250aC5wbmcKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kZWNyZW1lbnRNb250aC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBCZy5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBCZy5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwQmcuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBCZy5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBDdXJ2ZUJMLnBuZyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcEN1cnZlQkwucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcEN1cnZlQkwucG5nCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBDdXJ2ZUJMLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcEN1cnZlQlIucG5nIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwQ3VydmVCUi5wbmcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwQ3VydmVCUi5wbmcKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcEN1cnZlQlIucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwQ3VydmVUTC5wbmcgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBDdXJ2ZVRMLnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBDdXJ2ZVRMLnBuZwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwQ3VydmVUTC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBDdXJ2ZVRSLnBuZyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcEN1cnZlVFIucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcEN1cnZlVFIucG5nCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBDdXJ2ZVRSLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcEhvcml6TGluZS5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBIb3JpekxpbmUuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcEhvcml6TGluZS5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcEhvcml6TGluZS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBIb3JpekxpbmVGb290LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcEhvcml6TGluZUZvb3QuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcEhvcml6TGluZUZvb3QuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBIb3JpekxpbmVGb290LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcE1vbnRoQmcuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwTW9udGhCZy5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwTW9udGhCZy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcE1vbnRoQmcuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwTW9udGhCZy5wbmcgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBNb250aEJnLnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBNb250aEJnLnBuZwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwTW9udGhCZy5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBNb250aEJnMi5wbmcgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBNb250aEJnMi5wbmcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwTW9udGhCZzIucG5nCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBNb250aEJnMi5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBWZXJ0TGluZS5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBWZXJ0TGluZS5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwVmVydExpbmUuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBWZXJ0TGluZS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBZZWFyQmcuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwWWVhckJnLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBZZWFyQmcuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHBZZWFyQmcuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwWWVhckJnLnBuZyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcFllYXJCZy5wbmcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwWWVhckJnLnBuZwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2RwWWVhckJnLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcm9wZG93bkJ1dHRvbnNBcnJvdy1kaXNhYmxlZC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHJvcGRvd25CdXR0b25zQXJyb3ctZGlzYWJsZWQuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcm9wZG93bkJ1dHRvbnNBcnJvdy1kaXNhYmxlZC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9kcm9wZG93bkJ1dHRvbnNBcnJvdy1kaXNhYmxlZC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHJvcGRvd25CdXR0b25zQXJyb3cuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2Ryb3Bkb3duQnV0dG9uc0Fycm93LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHJvcGRvd25CdXR0b25zQXJyb3cuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZHJvcGRvd25CdXR0b25zQXJyb3cuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2Zsb2F0aW5nUGFuZUNsb3NlLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9mbG9hdGluZ1BhbmVDbG9zZS5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2Zsb2F0aW5nUGFuZUNsb3NlLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2Zsb2F0aW5nUGFuZUNsb3NlLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9mbG9hdGluZ1BhbmVNYXhpbWl6ZS5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZmxvYXRpbmdQYW5lTWF4aW1pemUuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9mbG9hdGluZ1BhbmVNYXhpbWl6ZS5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9mbG9hdGluZ1BhbmVNYXhpbWl6ZS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZmxvYXRpbmdQYW5lTWluaW1pemUuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2Zsb2F0aW5nUGFuZU1pbmltaXplLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZmxvYXRpbmdQYW5lTWluaW1pemUuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvZmxvYXRpbmdQYW5lTWluaW1pemUuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2Zsb2F0aW5nUGFuZVJlc3RvcmUuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2Zsb2F0aW5nUGFuZVJlc3RvcmUuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9mbG9hdGluZ1BhbmVSZXN0b3JlLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2Zsb2F0aW5nUGFuZVJlc3RvcmUuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2gtYmFyLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9oLWJhci5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2gtYmFyLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2gtYmFyLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9pbmNyZW1lbnRNb250aC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvaW5jcmVtZW50TW9udGguZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9pbmNyZW1lbnRNb250aC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9pbmNyZW1lbnRNb250aC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvaW5jcmVtZW50TW9udGgucG5nIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL2luY3JlbWVudE1vbnRoLnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvaW5jcmVtZW50TW9udGgucG5nCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvaW5jcmVtZW50TW9udGgucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL25vLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9uby5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL25vLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL25vLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9uby5zdmcgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvbm8uc3ZnCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9uby5zdmcKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9uby5zdmcKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NjQmFja2dyb3VuZC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc2NCYWNrZ3JvdW5kLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc2NCYWNrZ3JvdW5kLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NjQmFja2dyb3VuZC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc2xpZGVyLWJnLXByb2dyZXNzLXZlcnQuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlci1iZy1wcm9ncmVzcy12ZXJ0LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc2xpZGVyLWJnLXByb2dyZXNzLXZlcnQuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc2xpZGVyLWJnLXByb2dyZXNzLXZlcnQuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlci1iZy12ZXJ0LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXItYmctdmVydC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlci1iZy12ZXJ0LmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlci1iZy12ZXJ0LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXItYmcuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlci1iZy5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlci1iZy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXItYmcuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlci1idXR0b24taG9yei5wbmcgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc2xpZGVyLWJ1dHRvbi1ob3J6LnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc2xpZGVyLWJ1dHRvbi1ob3J6LnBuZwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlci1idXR0b24taG9yei5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc2xpZGVyLWJ1dHRvbi12ZXJ0LnBuZyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXItYnV0dG9uLXZlcnQucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXItYnV0dG9uLXZlcnQucG5nCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc2xpZGVyLWJ1dHRvbi12ZXJ0LnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXItYnV0dG9uLnBuZyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXItYnV0dG9uLnBuZwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc2xpZGVyLWJ1dHRvbi5wbmcKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXItYnV0dG9uLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXIuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlci5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlci5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXIuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlcl9kb3duX2Fycm93LnBuZyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXJfZG93bl9hcnJvdy5wbmcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlcl9kb3duX2Fycm93LnBuZwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlcl9kb3duX2Fycm93LnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXJfbGVmdF9hcnJvdy5wbmcgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc2xpZGVyX2xlZnRfYXJyb3cucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXJfbGVmdF9hcnJvdy5wbmcKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXJfbGVmdF9hcnJvdy5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc2xpZGVyX3JpZ2h0X2Fycm93LnBuZyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXJfcmlnaHRfYXJyb3cucG5nCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXJfcmlnaHRfYXJyb3cucG5nCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc2xpZGVyX3JpZ2h0X2Fycm93LnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXJfdXBfYXJyb3cucG5nIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlcl91cF9hcnJvdy5wbmcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NsaWRlcl91cF9hcnJvdy5wbmcKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zbGlkZXJfdXBfYXJyb3cucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NvcmlhQWNjb3JkaW9uT2ZmLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUFjY29yZGlvbk9mZi5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NvcmlhQWNjb3JkaW9uT2ZmLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NvcmlhQWNjb3JkaW9uT2ZmLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUFjY29yZGlvblNlbGVjdGVkLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUFjY29yZGlvblNlbGVjdGVkLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFBY2NvcmRpb25TZWxlY3RlZC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUFjY29yZGlvblNlbGVjdGVkLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUFjdGl2ZS1jLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUFjdGl2ZS1jLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFBY3RpdmUtYy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUFjdGl2ZS1jLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUFjdGl2ZS1sLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUFjdGl2ZS1sLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFBY3RpdmUtbC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUFjdGl2ZS1sLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUFjdGl2ZS1yLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUFjdGl2ZS1yLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFBY3RpdmUtci5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUFjdGl2ZS1yLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUJhckJnLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUJhckJnLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFCYXJCZy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUJhckJnLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUJ1dHRvbi1jLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUJ1dHRvbi1jLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFCdXR0b24tYy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUJ1dHRvbi1jLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUJ1dHRvbi1sLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUJ1dHRvbi1sLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFCdXR0b24tbC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUJ1dHRvbi1sLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUJ1dHRvbi1yLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUJ1dHRvbi1yLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFCdXR0b24tci5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYUJ1dHRvbi1yLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYURpc2FibGVkLWMuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NvcmlhRGlzYWJsZWQtYy5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NvcmlhRGlzYWJsZWQtYy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYURpc2FibGVkLWMuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NvcmlhRGlzYWJsZWQtbC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFEaXNhYmxlZC1sLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFEaXNhYmxlZC1sLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NvcmlhRGlzYWJsZWQtbC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFEaXNhYmxlZC1yLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYURpc2FibGVkLXIuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYURpc2FibGVkLXIuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFEaXNhYmxlZC1yLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYU1lbnVCZy5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFNZW51QmcuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYU1lbnVCZy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYU1lbnVCZy5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFQcmVzc2VkLWMuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NvcmlhUHJlc3NlZC1jLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFQcmVzc2VkLWMuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFQcmVzc2VkLWMuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NvcmlhUHJlc3NlZC1sLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYVByZXNzZWQtbC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NvcmlhUHJlc3NlZC1sLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NvcmlhUHJlc3NlZC1sLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYVByZXNzZWQtci5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc29yaWFQcmVzc2VkLXIuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYVByZXNzZWQtci5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zb3JpYVByZXNzZWQtci5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc3Bpbm5lckRlY3JlbWVudC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc3Bpbm5lckRlY3JlbWVudC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NwaW5uZXJEZWNyZW1lbnQuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc3Bpbm5lckRlY3JlbWVudC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc3Bpbm5lckluY3JlbWVudC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc3Bpbm5lckluY3JlbWVudC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3NwaW5uZXJJbmNyZW1lbnQuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc3Bpbm5lckluY3JlbWVudC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc3VibWVudV9kaXNhYmxlZC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc3VibWVudV9kaXNhYmxlZC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3N1Ym1lbnVfZGlzYWJsZWQuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc3VibWVudV9kaXNhYmxlZC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc3VibWVudV9vZmYuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3N1Ym1lbnVfb2ZmLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc3VibWVudV9vZmYuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvc3VibWVudV9vZmYuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3N1Ym1lbnVfb24uZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3N1Ym1lbnVfb24uZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy9zdWJtZW51X29uLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3N1Ym1lbnVfb24uZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9ib3RfbGVmdC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2JvdF9sZWZ0LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2JvdF9sZWZ0LmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9ib3RfbGVmdC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2JvdF9sZWZ0X2N1cnIuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9ib3RfbGVmdF9jdXJyLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2JvdF9sZWZ0X2N1cnIuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2JvdF9sZWZ0X2N1cnIuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9ib3RfcmlnaHQuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9ib3RfcmlnaHQuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfYm90X3JpZ2h0LmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9ib3RfcmlnaHQuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9ib3RfcmlnaHRfY3Vyci5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2JvdF9yaWdodF9jdXJyLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2JvdF9yaWdodF9jdXJyLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9ib3RfcmlnaHRfY3Vyci5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2Nsb3NlLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfY2xvc2UuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfY2xvc2UuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2Nsb3NlLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfY2xvc2VfaC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2Nsb3NlX2guZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfY2xvc2VfaC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfY2xvc2VfaC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2xlZnQuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9sZWZ0LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2xlZnQuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2xlZnQuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9sZWZ0X3IuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9sZWZ0X3IuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfbGVmdF9yLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9sZWZ0X3IuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9sZWZ0X3JfY3Vyci5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2xlZnRfcl9jdXJyLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX2xlZnRfcl9jdXJyLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9sZWZ0X3JfY3Vyci5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX3JpZ2h0LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfcmlnaHQuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfcmlnaHQuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX3JpZ2h0LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfcmlnaHRfci5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX3JpZ2h0X3IuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfcmlnaHRfci5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfcmlnaHRfci5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX3JpZ2h0X3JfY3Vyci5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX3JpZ2h0X3JfY3Vyci5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RhYl9yaWdodF9yX2N1cnIuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX3JpZ2h0X3JfY3Vyci5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX3RvcF9sZWZ0LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfdG9wX2xlZnQuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfdG9wX2xlZnQuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX3RvcF9sZWZ0LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfdG9wX3JpZ2h0LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfdG9wX3JpZ2h0LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGFiX3RvcF9yaWdodC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90YWJfdG9wX3JpZ2h0LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90aW1lSWNvbi5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdGltZUljb24uZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90aW1lSWNvbi5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90aW1lSWNvbi5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdG9vbGJhci1iZy5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdG9vbGJhci1iZy5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3Rvb2xiYXItYmcuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdG9vbGJhci1iZy5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJhbnNwYXJlbnQuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyYW5zcGFyZW50LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJhbnNwYXJlbnQuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJhbnNwYXJlbnQuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX2JsYW5rLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9ibGFuay5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX2JsYW5rLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX2JsYW5rLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9jaGlsZC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJlZW5vZGVfY2hpbGQuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9jaGlsZC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9jaGlsZC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJlZW5vZGVfZXhwYW5kX21pbnVzLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9leHBhbmRfbWludXMuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9leHBhbmRfbWludXMuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJlZW5vZGVfZXhwYW5kX21pbnVzLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9leHBhbmRfcGx1cy5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJlZW5vZGVfZXhwYW5kX3BsdXMuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9leHBhbmRfcGx1cy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9leHBhbmRfcGx1cy5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJlZW5vZGVfZ3JpZF9jLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9ncmlkX2MuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9ncmlkX2MuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJlZW5vZGVfZ3JpZF9jLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9ncmlkX2wuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX2dyaWRfbC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX2dyaWRfbC5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9ncmlkX2wuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX2dyaWRfcC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJlZW5vZGVfZ3JpZF9wLmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJlZW5vZGVfZ3JpZF9wLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX2dyaWRfcC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJlZW5vZGVfZ3JpZF90LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9ncmlkX3QuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9ncmlkX3QuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJlZW5vZGVfZ3JpZF90LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9ncmlkX3YuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX2dyaWRfdi5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX2dyaWRfdi5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9ncmlkX3YuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX2dyaWRfeC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJlZW5vZGVfZ3JpZF94LmdpZgpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJlZW5vZGVfZ3JpZF94LmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX2dyaWRfeC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJlZW5vZGVfZ3JpZF95LmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9ncmlkX3kuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9ncmlkX3kuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvdHJlZW5vZGVfZ3JpZF95LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9ncmlkX3ouZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX2dyaWRfei5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX2dyaWRfei5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9ncmlkX3ouZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX25vZGUuZ2lmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX25vZGUuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy90cmVlbm9kZV9ub2RlLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3RyZWVub2RlX25vZGUuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3ZlcnRpY2FsYmFyLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy92ZXJ0aWNhbGJhci5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3ZlcnRpY2FsYmFyLmdpZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW1hZ2VzL3ZlcnRpY2FsYmFyLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy93aGl0ZURvd25BcnJvdy5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbWFnZXMvd2hpdGVEb3duQXJyb3cuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy93aGl0ZURvd25BcnJvdy5naWYKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2ltYWdlcy93aGl0ZURvd25BcnJvdy5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbmNyZW1lbnRNb250aC5naWYgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbmNyZW1lbnRNb250aC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC90ZW1wbGF0ZXMvaW5jcmVtZW50TW9udGguZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbmNyZW1lbnRNb250aC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbmNyZW1lbnRXZWVrLmdpZiBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2luY3JlbWVudFdlZWsuZ2lmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL2luY3JlbWVudFdlZWsuZ2lmCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9pbmNyZW1lbnRXZWVrLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL3JpY2h0ZXh0ZnJhbWUuaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL3JpY2h0ZXh0ZnJhbWUuaHRtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3RlbXBsYXRlcy9yaWNodGV4dGZyYW1lLmh0bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdGVtcGxhdGVzL3JpY2h0ZXh0ZnJhbWUuaHRtbApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3ZhbGlkYXRlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC92YWxpZGF0ZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3ZhbGlkYXRlLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMvd2lkZ2V0L3ZhbGlkYXRlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdm1sL0NoYXJ0LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC92bWwvQ2hhcnQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3dpZGdldC92bWwvQ2hhcnQuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy93aWRnZXQvdm1sL0NoYXJ0LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy94bWwvUGFyc2UuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMveG1sL1BhcnNlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy94bWwvUGFyc2UuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy94bWwvUGFyc2UuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3htbC9Yc2xUcmFuc2Zvcm0uanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMveG1sL1hzbFRyYW5zZm9ybS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMveG1sL1hzbFRyYW5zZm9ybS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3htbC9Yc2xUcmFuc2Zvcm0uanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3htbC9fX3BhY2thZ2VfXy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3NyYy94bWwvX19wYWNrYWdlX18uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3htbC9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3htbC9fX3BhY2thZ2VfXy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMveG1sL3N2Z1V0aWwuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMveG1sL3N2Z1V0aWwuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3JjL3htbC9zdmdVdGlsLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zcmMveG1sL3N2Z1V0aWwuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RvcmFnZV9kaWFsb2cuc3dmIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RvcmFnZV9kaWFsb2cuc3dmCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0b3JhZ2VfZGlhbG9nLnN3ZgpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RvcmFnZV9kaWFsb2cuc3dmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL0NvbWJvQm94LmNzcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy9Db21ib0JveC5jc3MKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL0NvbWJvQm94LmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL0NvbWJvQm94LmNzcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L0JpbmQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L0JpbmQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL3dpZGdldC9CaW5kLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L0JpbmQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL3dpZGdldC9CaW5kQW5jaG9yLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL3dpZGdldC9CaW5kQW5jaG9yLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvQmluZEFuY2hvci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL3dpZGdldC9CaW5kQW5jaG9yLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvQmluZERpdi5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvQmluZERpdi5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L0JpbmREaXYuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvQmluZERpdi5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L0JpbmRFdmVudC5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvQmluZEV2ZW50LmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvQmluZEV2ZW50LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L0JpbmRFdmVudC5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L0NvbWJvQm94LmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL3dpZGdldC9Db21ib0JveC5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L0NvbWJvQm94LmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L0NvbWJvQm94LmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvU3RydXRzRGF0ZVBpY2tlci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvU3RydXRzRGF0ZVBpY2tlci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L1N0cnV0c0RhdGVQaWNrZXIuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvU3RydXRzRGF0ZVBpY2tlci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L1N0cnV0c1RhYkNvbnRhaW5lci5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvU3RydXRzVGFiQ29udGFpbmVyLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvU3RydXRzVGFiQ29udGFpbmVyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L1N0cnV0c1RhYkNvbnRhaW5lci5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L1N0cnV0c1RpbWVQaWNrZXIuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L1N0cnV0c1RpbWVQaWNrZXIuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL3dpZGdldC9TdHJ1dHNUaW1lUGlja2VyLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L1N0cnV0c1RpbWVQaWNrZXIuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL3dpZGdldC9TdHJ1dHNUcmVlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL3dpZGdldC9TdHJ1dHNUcmVlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvU3RydXRzVHJlZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL3dpZGdldC9TdHJ1dHNUcmVlLmpzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvU3RydXRzVHJlZU5vZGUuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L1N0cnV0c1RyZWVOb2RlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvU3RydXRzVHJlZU5vZGUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvU3RydXRzVHJlZU5vZGUuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL3dpZGdldC9TdHJ1dHNUcmVlU2VsZWN0b3IuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L1N0cnV0c1RyZWVTZWxlY3Rvci5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHMvd2lkZ2V0L1N0cnV0c1RyZWVTZWxlY3Rvci5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL3dpZGdldC9TdHJ1dHNUcmVlU2VsZWN0b3IuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL3dpZGdldC9fX3BhY2thZ2VfXy5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0cy93aWRnZXQvX19wYWNrYWdlX18uanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL3dpZGdldC9fX3BhY2thZ2VfXy5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzL3dpZGdldC9fX3BhY2thZ2VfXy5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHNfZG9qby5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0c19kb2pvLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy9kb2pvL3N0cnV0c19kb2pvLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHNfZG9qby5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHNfZG9qby5qcy51bmNvbXByZXNzZWQuanMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHNfZG9qby5qcy51bmNvbXByZXNzZWQuanMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL2Rvam8vc3RydXRzX2Rvam8uanMudW5jb21wcmVzc2VkLmpzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9zdGF0aWMvZG9qby9zdHJ1dHNfZG9qby5qcy51bmNvbXByZXNzZWQuanMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL3RyZWUuY3NzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL3RyZWUuY3NzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3N0YXRpYy90cmVlLmNzcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvc3RhdGljL3RyZWUuY3NzCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvc3RydXRzLXBsdWdpbi54bWwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0cnV0cy1wbHVnaW4ueG1sCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvc3RydXRzLXBsdWdpbi54bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RydXRzLXBsdWdpbi54bWwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L2EtY2xvc2UuZnRsIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L2EtY2xvc2UuZnRsCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9hLWNsb3NlLmZ0bApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L2EtY2xvc2UuZnRsCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9hLmZ0bCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9hLmZ0bApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvYS5mdGwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9hLmZ0bApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvYWpheC1jb21tb24uZnRsIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L2FqYXgtY29tbW9uLmZ0bApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvYWpheC1jb21tb24uZnRsCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvYWpheC1jb21tb24uZnRsCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9hdXRvY29tcGxldGVyLmZ0bCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9hdXRvY29tcGxldGVyLmZ0bApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvYXV0b2NvbXBsZXRlci5mdGwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9hdXRvY29tcGxldGVyLmZ0bApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvYmluZC1jbG9zZS5mdGwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvYmluZC1jbG9zZS5mdGwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L2JpbmQtY2xvc2UuZnRsCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvYmluZC1jbG9zZS5mdGwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L2JpbmQuZnRsIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L2JpbmQuZnRsCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9iaW5kLmZ0bApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L2JpbmQuZnRsCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9jb250cm9saGVhZGVyLmZ0bCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9jb250cm9saGVhZGVyLmZ0bApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvY29udHJvbGhlYWRlci5mdGwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9jb250cm9saGVhZGVyLmZ0bApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvZGF0ZXRpbWVwaWNrZXIuZnRsIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L2RhdGV0aW1lcGlja2VyLmZ0bApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvZGF0ZXRpbWVwaWNrZXIuZnRsCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvZGF0ZXRpbWVwaWNrZXIuZnRsCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9kaXYtY2xvc2UuZnRsIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L2Rpdi1jbG9zZS5mdGwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L2Rpdi1jbG9zZS5mdGwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9kaXYtY2xvc2UuZnRsCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9kaXYuZnRsIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L2Rpdi5mdGwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L2Rpdi5mdGwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9kaXYuZnRsCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9kb2pvUmVxdWlyZS5qcyBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9kb2pvUmVxdWlyZS5qcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvZG9qb1JlcXVpcmUuanMKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC9kb2pvUmVxdWlyZS5qcwpkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvaGVhZC5mdGwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvaGVhZC5mdGwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L2hlYWQuZnRsCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvaGVhZC5mdGwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3N1Ym1pdC1jbG9zZS5mdGwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvc3VibWl0LWNsb3NlLmZ0bApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvc3VibWl0LWNsb3NlLmZ0bApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3N1Ym1pdC1jbG9zZS5mdGwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3N1Ym1pdC5mdGwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvc3VibWl0LmZ0bApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvc3VibWl0LmZ0bApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3N1Ym1pdC5mdGwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RhYi1jbG9zZS5mdGwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdGFiLWNsb3NlLmZ0bApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdGFiLWNsb3NlLmZ0bApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RhYi1jbG9zZS5mdGwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RhYi5mdGwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdGFiLmZ0bApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdGFiLmZ0bApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RhYi5mdGwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RhYmJlZHBhbmVsLWNsb3NlLmZ0bCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC90YWJiZWRwYW5lbC1jbG9zZS5mdGwKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RhYmJlZHBhbmVsLWNsb3NlLmZ0bApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RhYmJlZHBhbmVsLWNsb3NlLmZ0bApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdGFiYmVkcGFuZWwuZnRsIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RhYmJlZHBhbmVsLmZ0bApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdGFiYmVkcGFuZWwuZnRsCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdGFiYmVkcGFuZWwuZnRsCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC90ZXh0YXJlYS5mdGwgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdGV4dGFyZWEuZnRsCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC90ZXh0YXJlYS5mdGwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC90ZXh0YXJlYS5mdGwKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RoZW1lLnByb3BlcnRpZXMgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdGhlbWUucHJvcGVydGllcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdGhlbWUucHJvcGVydGllcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RoZW1lLnByb3BlcnRpZXMKZGlmZiAtLWdpdCBhL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RyZWUtY2xvc2UuZnRsIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RyZWUtY2xvc2UuZnRsCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC90cmVlLWNsb3NlLmZ0bApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RyZWUtY2xvc2UuZnRsCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC90cmVlLmZ0bCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC90cmVlLmZ0bApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdHJlZS5mdGwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC90cmVlLmZ0bApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdHJlZW5vZGUtY2xvc2UuZnRsIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RyZWVub2RlLWNsb3NlLmZ0bApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdHJlZW5vZGUtY2xvc2UuZnRsCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdHJlZW5vZGUtY2xvc2UuZnRsCmRpZmYgLS1naXQgYS9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC90cmVlbm9kZS1pbmNsdWRlLmZ0bCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC90cmVlbm9kZS1pbmNsdWRlLmZ0bApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdHJlZW5vZGUtaW5jbHVkZS5mdGwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvdGVtcGxhdGUvYWpheC90cmVlbm9kZS1pbmNsdWRlLmZ0bApkaWZmIC0tZ2l0IGEvc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdHJlZW5vZGUuZnRsIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy90ZW1wbGF0ZS9hamF4L3RyZWVub2RlLmZ0bApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdHJlZW5vZGUuZnRsCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3RlbXBsYXRlL2FqYXgvdHJlZW5vZGUuZnRsCmRpZmYgLS1naXQgYS9zcmMvcHJvZmlsZS9SRUFETUUgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Byb2ZpbGUvUkVBRE1FCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvcHJvZmlsZS9SRUFETUUKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvcHJvZmlsZS9SRUFETUUKZGlmZiAtLWdpdCBhL3NyYy9wcm9maWxlL3N0cnV0cy5wcm9maWxlLmpzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9wcm9maWxlL3N0cnV0cy5wcm9maWxlLmpzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvcHJvZmlsZS9zdHJ1dHMucHJvZmlsZS5qcwpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy9wcm9maWxlL3N0cnV0cy5wcm9maWxlLmpzCmRpZmYgLS1naXQgYS9zcmMvc2l0ZS9zaXRlLnhtbCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvc2l0ZS9zaXRlLnhtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL3NpdGUvc2l0ZS54bWwKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvc2l0ZS9zaXRlLnhtbApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9UZXN0QWN0aW9uLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9UZXN0QWN0aW9uLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vVGVzdEFjdGlvbi5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby9UZXN0QWN0aW9uLmphdmEKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0Fic3RyYWN0VGFnVGVzdC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0Fic3RyYWN0VGFnVGVzdC5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BYnN0cmFjdFRhZ1Rlc3QuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0Fic3RyYWN0VGFnVGVzdC5qYXZhCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BYnN0cmFjdFVJVGFnVGVzdC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0Fic3RyYWN0VUlUYWdUZXN0LmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0Fic3RyYWN0VUlUYWdUZXN0LmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BYnN0cmFjdFVJVGFnVGVzdC5qYXZhCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BbmNob3JUZXN0LmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvQW5jaG9yVGVzdC5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BbmNob3JUZXN0LmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BbmNob3JUZXN0LmphdmEKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0F1dG9jb21wbGV0ZXJUZXN0LmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvQXV0b2NvbXBsZXRlclRlc3QuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvQXV0b2NvbXBsZXRlclRlc3QuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0F1dG9jb21wbGV0ZXJUZXN0LmphdmEKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0JpbmRUZXN0LmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvQmluZFRlc3QuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvQmluZFRlc3QuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0JpbmRUZXN0LmphdmEKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0NhdGVnb3J5LmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvQ2F0ZWdvcnkuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvQ2F0ZWdvcnkuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0NhdGVnb3J5LmphdmEKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0RhdGVUaW1lUGlja2VyVGFnVGVzdC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0RhdGVUaW1lUGlja2VyVGFnVGVzdC5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9EYXRlVGltZVBpY2tlclRhZ1Rlc3QuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0RhdGVUaW1lUGlja2VyVGFnVGVzdC5qYXZhCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9EaXZUZXN0LmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvRGl2VGVzdC5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9EaXZUZXN0LmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9EaXZUZXN0LmphdmEKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0hlYWRUYWdUZXN0LmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvSGVhZFRhZ1Rlc3QuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvSGVhZFRhZ1Rlc3QuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0hlYWRUYWdUZXN0LmphdmEKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1N0cnV0c01vY2tIdHRwU2VydmxldFJlcXVlc3QuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9TdHJ1dHNNb2NrSHR0cFNlcnZsZXRSZXF1ZXN0LmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1N0cnV0c01vY2tIdHRwU2VydmxldFJlcXVlc3QuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1N0cnV0c01vY2tIdHRwU2VydmxldFJlcXVlc3QuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvU3RydXRzTW9ja0h0dHBTZXJ2bGV0UmVzcG9uc2UuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9TdHJ1dHNNb2NrSHR0cFNlcnZsZXRSZXNwb25zZS5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9TdHJ1dHNNb2NrSHR0cFNlcnZsZXRSZXNwb25zZS5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvU3RydXRzTW9ja0h0dHBTZXJ2bGV0UmVzcG9uc2UuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvU3RydXRzTW9ja0h0dHBTZXNzaW9uLmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvU3RydXRzTW9ja0h0dHBTZXNzaW9uLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1N0cnV0c01vY2tIdHRwU2Vzc2lvbi5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvU3RydXRzTW9ja0h0dHBTZXNzaW9uLmphdmEKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1N0cnV0c01vY2tKc3BXcml0ZXIuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9TdHJ1dHNNb2NrSnNwV3JpdGVyLmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1N0cnV0c01vY2tKc3BXcml0ZXIuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1N0cnV0c01vY2tKc3BXcml0ZXIuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvU3RydXRzTW9ja1BhZ2VDb250ZXh0LmphdmEgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvU3RydXRzTW9ja1BhZ2VDb250ZXh0LmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1N0cnV0c01vY2tQYWdlQ29udGV4dC5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvU3RydXRzTW9ja1BhZ2VDb250ZXh0LmphdmEKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1N0cnV0c01vY2tTZXJ2bGV0Q29udGV4dC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1N0cnV0c01vY2tTZXJ2bGV0Q29udGV4dC5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9TdHJ1dHNNb2NrU2VydmxldENvbnRleHQuamF2YQpyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1N0cnV0c01vY2tTZXJ2bGV0Q29udGV4dC5qYXZhCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9TdWJtaXRBamF4VGVzdC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1N1Ym1pdEFqYXhUZXN0LmphdmEKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1N1Ym1pdEFqYXhUZXN0LmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9TdWJtaXRBamF4VGVzdC5qYXZhCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9UYWJiZWRQYW5lbFRhZ1Rlc3QuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9UYWJiZWRQYW5lbFRhZ1Rlc3QuamF2YQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVGFiYmVkUGFuZWxUYWdUZXN0LmphdmEKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9UYWJiZWRQYW5lbFRhZ1Rlc3QuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVHJlZVRlc3QuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9UcmVlVGVzdC5qYXZhCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9UcmVlVGVzdC5qYXZhCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVHJlZVRlc3QuamF2YQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BdXRvY29tcGxldGVyLTEudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvQXV0b2NvbXBsZXRlci0xLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL3Rlc3QvcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BdXRvY29tcGxldGVyLTEudHh0CnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BdXRvY29tcGxldGVyLTEudHh0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0F1dG9jb21wbGV0ZXItMi50eHQgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9BdXRvY29tcGxldGVyLTIudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0F1dG9jb21wbGV0ZXItMi50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0F1dG9jb21wbGV0ZXItMi50eHQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvQmluZC0xLnR4dCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0JpbmQtMS50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvQmluZC0xLnR4dApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvQmluZC0xLnR4dApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9EYXRlVGltZVBpY2tlclRhZ1Rlc3QtMS50eHQgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9EYXRlVGltZVBpY2tlclRhZ1Rlc3QtMS50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvRGF0ZVRpbWVQaWNrZXJUYWdUZXN0LTEudHh0CnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9EYXRlVGltZVBpY2tlclRhZ1Rlc3QtMS50eHQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvRGF0ZVRpbWVQaWNrZXJUYWdUZXN0LTIudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvRGF0ZVRpbWVQaWNrZXJUYWdUZXN0LTIudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0RhdGVUaW1lUGlja2VyVGFnVGVzdC0yLnR4dApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvRGF0ZVRpbWVQaWNrZXJUYWdUZXN0LTIudHh0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0hlYWRUYWdUZXN0LTEudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvSGVhZFRhZ1Rlc3QtMS50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvSGVhZFRhZ1Rlc3QtMS50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0hlYWRUYWdUZXN0LTEudHh0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0hlYWRUYWdUZXN0LTIudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvSGVhZFRhZ1Rlc3QtMi50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvSGVhZFRhZ1Rlc3QtMi50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL0hlYWRUYWdUZXN0LTIudHh0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RhYmJlZFBhbmVsLTEudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVGFiYmVkUGFuZWwtMS50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVGFiYmVkUGFuZWwtMS50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RhYmJlZFBhbmVsLTEudHh0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RhYmJlZFBhbmVsLTIudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVGFiYmVkUGFuZWwtMi50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVGFiYmVkUGFuZWwtMi50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RhYmJlZFBhbmVsLTIudHh0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RhYmJlZFBhbmVsLTMudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVGFiYmVkUGFuZWwtMy50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVGFiYmVkUGFuZWwtMy50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RhYmJlZFBhbmVsLTMudHh0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RhYmJlZFBhbmVsLTQudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVGFiYmVkUGFuZWwtNC50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvVGFiYmVkUGFuZWwtNC50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL1RhYmJlZFBhbmVsLTQudHh0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL2Rpdi0xLnR4dCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL2Rpdi0xLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL3Rlc3QvcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9kaXYtMS50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL2Rpdi0xLnR4dApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9ocmVmLTEudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvaHJlZi0xLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL3Rlc3QvcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9ocmVmLTEudHh0CnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS9ocmVmLTEudHh0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL3N1Ym1pdC1hamF4LTEudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvc3VibWl0LWFqYXgtMS50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvc3VibWl0LWFqYXgtMS50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL3N1Ym1pdC1hamF4LTEudHh0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL3N1Ym1pdC1hamF4LTIudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvc3VibWl0LWFqYXgtMi50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvc3VibWl0LWFqYXgtMi50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL3N1Ym1pdC1hamF4LTIudHh0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL3N1Ym1pdC1hamF4LTMudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvc3VibWl0LWFqYXgtMy50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvc3VibWl0LWFqYXgtMy50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL3N1Ym1pdC1hamF4LTMudHh0CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL3RyZWUtMS50eHQgYi9wbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvcmVzb3VyY2VzL29yZy9hcGFjaGUvc3RydXRzMi9kb2pvL3ZpZXdzL2pzcC91aS90cmVlLTEudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBzcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL3RyZWUtMS50eHQKcmVuYW1lIHRvIHBsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL3RyZWUtMS50eHQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvdHJlZS0yLnR4dCBiL3BsdWdpbnMvc3RydXRzMi1kb2pvLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL2Rvam8vdmlld3MvanNwL3VpL3RyZWUtMi50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvdHJlZS0yLnR4dApyZW5hbWUgdG8gcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvZG9qby92aWV3cy9qc3AvdWkvdHJlZS0yLnR4dApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVzb3VyY2VzL3N0cnV0cy5wcm9wZXJ0aWVzIGIvcGx1Z2lucy9zdHJ1dHMyLWRvam8tcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9zdHJ1dHMucHJvcGVydGllcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc3JjL3Rlc3QvcmVzb3VyY2VzL3N0cnV0cy5wcm9wZXJ0aWVzCnJlbmFtZSB0byBwbHVnaW5zL3N0cnV0czItZG9qby1wbHVnaW4vc3JjL3Rlc3QvcmVzb3VyY2VzL3N0cnV0cy5wcm9wZXJ0aWVzCmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vcG9tLnhtbCBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9wb20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5NDM1Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vcG9tLnhtbApAQCAtMCwwICsxLDE1MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0KKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCistLT4KKzxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPgorICAgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KKyAgICA8cGFyZW50PgorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLnN0cnV0czwvZ3JvdXBJZD4KKyAgICAgICAgPGFydGlmYWN0SWQ+c3RydXRzMi1wbHVnaW5zPC9hcnRpZmFjdElkPgorICAgICAgICA8dmVyc2lvbj4yLjMuMS1TTkFQU0hPVDwvdmVyc2lvbj4KKyAgICA8L3BhcmVudD4KKyAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLnN0cnV0czwvZ3JvdXBJZD4KKyAgICA8YXJ0aWZhY3RJZD5zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgIDxwYWNrYWdpbmc+amFyPC9wYWNrYWdpbmc+CisgICAgPG5hbWU+U3RydXRzIDIgUG9ydGxldCBQbHVnaW48L25hbWU+CisKKyAgICA8c2NtPgorICAgICAgICA8Y29ubmVjdGlvbj5zY206c3ZuOmh0dHA6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2Yvc3RydXRzL3N0cnV0czIvdHJ1bmsvcGx1Z2lucy9wb3J0bGV0LzwvY29ubmVjdGlvbj4KKyAgICAgICAgPGRldmVsb3BlckNvbm5lY3Rpb24+c2NtOnN2bjpodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9zdHJ1dHMvc3RydXRzMi90cnVuay9wbHVnaW5zL3BvcnRsZXQvPC9kZXZlbG9wZXJDb25uZWN0aW9uPgorICAgICAgICA8dXJsPmh0dHA6Ly9zdm4uYXBhY2hlLm9yZy92aWV3Y3ZzLmNnaS9zdHJ1dHMvc3RydXRzMi90cnVuay9wbHVnaW5zL3BvcnRsZXQvPC91cmw+CisgICAgPC9zY20+CisKKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPmp1bml0PC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+anVuaXQ8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD4ke3Byb2plY3QuZ3JvdXBJZH08L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zdHJ1dHMyLWp1bml0LXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPiR7cHJvamVjdC52ZXJzaW9ufTwvdmVyc2lvbj4KKyAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorCisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+amF2YXguc2VydmxldDwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmpzcC1hcGk8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisKKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5jb21tb25zLWxhbmc8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5jb21tb25zLWxhbmc8L2FydGlmYWN0SWQ+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKworICAgICAgICA8IS0tIFZlbG9jaXR5IC0tPgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUudmVsb2NpdHk8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD52ZWxvY2l0eTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDxvcHRpb25hbD50cnVlPC9vcHRpb25hbD4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorCisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS52ZWxvY2l0eTwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPnZlbG9jaXR5LXRvb2xzPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPG9wdGlvbmFsPnRydWU8L29wdGlvbmFsPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisKKyAgICAgICAgPCEtLSBQb3J0bGV0IC0tPgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPnBvcnRsZXQtYXBpPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+cG9ydGxldC1hcGk8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisKKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5tb2Nrb2JqZWN0czwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPm1vY2tvYmplY3RzLWpkazEuMy1qMmVlMS4zPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisKKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuZWFzeW1vY2s8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5lYXN5bW9jazwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPmptb2NrPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+am1vY2s8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKworICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPmptb2NrPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+am1vY2stY2dsaWI8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKworICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPm1vY2tvYmplY3RzPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+bW9ja29iamVjdHMtY29yZTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorCisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+bG9nNGo8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5sb2c0ajwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorCisgICAgICAgIDwhLS0gTW9ja3MgZm9yIHVuaXQgdGVzdGluZyAoYnkgU3ByaW5nKSAtLT4KKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLXRlc3Q8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj4yLjUuNjwvdmVyc2lvbj4KKyAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcms8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctd2VibXZjLXBvcnRsZXQ8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8dmVyc2lvbj4yLjUuNjwvdmVyc2lvbj4KKyAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcms8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctY29yZTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPjIuNS42PC92ZXJzaW9uPgorICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y29tbW9ucy1maWxldXBsb2FkPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy1maWxldXBsb2FkPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+Y2dsaWI8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5jZ2xpYjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jaWVzPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2NvbXBvbmVudHMvUG9ydGxldFVybFJlbmRlcmVyLmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvY29tcG9uZW50cy9Qb3J0bGV0VXJsUmVuZGVyZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmZiOWVjCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2NvbXBvbmVudHMvUG9ydGxldFVybFJlbmRlcmVyLmphdmEKQEAgLTAsMCArMSwxODYgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLmNvbXBvbmVudHM7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25Db250ZXh0OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbkludm9jYXRpb247CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuaW5qZWN0LkluamVjdDsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubGFuZy5TdHJpbmdVdGlsczsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuU3RydXRzRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5kaXNwYXRjaGVyLm1hcHBlci5BY3Rpb25NYXBwZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuY29udGV4dC5Qb3J0bGV0QWN0aW9uQ29udGV4dDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC51dGlsLlBvcnRsZXRVcmxIZWxwZXI7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uV3JpdGVyOworCisvKioKKyAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSB7QGxpbmsgVXJsUmVuZGVyZXJ9IGludGVyZmFjZSB0aGF0IHJlbmRlcnMgVVJMcyBmb3IgcG9ydGxldCBlbnZpcm9ubWVudHMuCisgKiAKKyAqIEBzZWUgVXJsUmVuZGVyZXIKKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBQb3J0bGV0VXJsUmVuZGVyZXIgaW1wbGVtZW50cyBVcmxSZW5kZXJlciB7CisJCisJLyoqCisJICogVGhlIHNlcnZsZXQgcmVuZGVyZXIgdXNlZCB3aGVuIG5vdCBleGVjdXRpbmcgaW4gYSBwb3J0bGV0IGNvbnRleHQuCisJICovCisJcHJpdmF0ZSBVcmxSZW5kZXJlciBzZXJ2bGV0UmVuZGVyZXIgPSBudWxsOworCQorCXB1YmxpYyBQb3J0bGV0VXJsUmVuZGVyZXIoKSB7CisJCXRoaXMuc2VydmxldFJlbmRlcmVyID0gbmV3IFNlcnZsZXRVcmxSZW5kZXJlcigpOworCX0KKworCUBJbmplY3QKKwlwdWJsaWMgdm9pZCBzZXRBY3Rpb25NYXBwZXIoQWN0aW9uTWFwcGVyIGFjdGlvbk1hcHBlcikgeworCQlzZXJ2bGV0UmVuZGVyZXIuc2V0QWN0aW9uTWFwcGVyKGFjdGlvbk1hcHBlcik7CisJfQorCQorCS8qKgorCSAqIHtAaW5oZXJpdERvY30KKwkgKi8KKwlwdWJsaWMgdm9pZCByZW5kZXJVcmwoV3JpdGVyIHdyaXRlciwgVXJsUHJvdmlkZXIgdXJsQ29tcG9uZW50KSB7CisJCWlmKFBvcnRsZXRBY3Rpb25Db250ZXh0LmdldFBvcnRsZXRDb250ZXh0KCkgPT0gbnVsbCB8fCAibm9uZSIuZXF1YWxzSWdub3JlQ2FzZSh1cmxDb21wb25lbnQuZ2V0UG9ydGxldFVybFR5cGUoKSkpIHsKKwkJCXNlcnZsZXRSZW5kZXJlci5yZW5kZXJVcmwod3JpdGVyLCB1cmxDb21wb25lbnQpOworCQl9CisJCWVsc2UgeworCQkJU3RyaW5nIGFjdGlvbiA9IG51bGw7CisJCQlpZih1cmxDb21wb25lbnQuZ2V0QWN0aW9uKCkgIT0gbnVsbCkgeworCQkJCWFjdGlvbiA9IHVybENvbXBvbmVudC5maW5kU3RyaW5nKHVybENvbXBvbmVudC5nZXRBY3Rpb24oKSk7CisJCQl9CisJCQlTdHJpbmcgc2NoZW1lID0gdXJsQ29tcG9uZW50LmdldEh0dHBTZXJ2bGV0UmVxdWVzdCgpLmdldFNjaGVtZSgpOworCisJCQlpZiAodXJsQ29tcG9uZW50LmdldFNjaGVtZSgpICE9IG51bGwpIHsKKwkJCQlzY2hlbWUgPSB1cmxDb21wb25lbnQuZ2V0U2NoZW1lKCk7CisJCQl9CisKKwkJCVN0cmluZyByZXN1bHQ7CisJCQl1cmxDb21wb25lbnQuc2V0TmFtZXNwYWNlKHVybENvbXBvbmVudC5kZXRlcm1pbmVOYW1lc3BhY2UodXJsQ29tcG9uZW50LmdldE5hbWVzcGFjZSgpLCB1cmxDb21wb25lbnQuZ2V0U3RhY2soKSwgdXJsQ29tcG9uZW50LmdldEh0dHBTZXJ2bGV0UmVxdWVzdCgpKSk7CisJCQlpZiAob25seUFjdGlvblNwZWNpZmllZCh1cmxDb21wb25lbnQpKSB7CisJCQkJcmVzdWx0ID0gUG9ydGxldFVybEhlbHBlci5idWlsZFVybChhY3Rpb24sIHVybENvbXBvbmVudC5nZXROYW1lc3BhY2UoKSwgdXJsQ29tcG9uZW50LmdldE1ldGhvZCgpLCB1cmxDb21wb25lbnQuZ2V0UGFyYW1ldGVycygpLCB1cmxDb21wb25lbnQuZ2V0UG9ydGxldFVybFR5cGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVybENvbXBvbmVudC5nZXRQb3J0bGV0TW9kZSgpLCB1cmxDb21wb25lbnQuZ2V0V2luZG93U3RhdGUoKSk7CisJCQl9IGVsc2UgaWYob25seVZhbHVlU3BlY2lmaWVkKHVybENvbXBvbmVudCkpeworCQkJCXJlc3VsdCA9IFBvcnRsZXRVcmxIZWxwZXIuYnVpbGRSZXNvdXJjZVVybCh1cmxDb21wb25lbnQuZ2V0VmFsdWUoKSwgdXJsQ29tcG9uZW50LmdldFBhcmFtZXRlcnMoKSk7CisJCQl9CisJCQllbHNlIHsKKwkJCQlyZXN1bHQgPSBjcmVhdGVEZWZhdWx0VXJsKHVybENvbXBvbmVudCk7CisJCQl9CisgICAgICAgICAgICBTdHJpbmcgYW5jaG9yID0gdXJsQ29tcG9uZW50LmdldEFuY2hvcigpOworCQkJaWYgKFN0cmluZ1V0aWxzLmlzTm90RW1wdHkoYW5jaG9yKSkgeworCQkJCXJlc3VsdCArPSAnIycgKyB1cmxDb21wb25lbnQuZmluZFN0cmluZyhhbmNob3IpOworCQkJfQorCisJCQlTdHJpbmcgdmFyID0gdXJsQ29tcG9uZW50LmdldFZhcigpOworCisJCQlpZiAodmFyICE9IG51bGwpIHsKKwkJCQl1cmxDb21wb25lbnQucHV0SW5Db250ZXh0KHJlc3VsdCk7CisKKwkJCQkvLyBhZGQgdG8gdGhlIHJlcXVlc3QgYW5kIHBhZ2Ugc2NvcGVzIGFzIHdlbGwKKwkJCQl1cmxDb21wb25lbnQuZ2V0SHR0cFNlcnZsZXRSZXF1ZXN0KCkuc2V0QXR0cmlidXRlKHZhciwgcmVzdWx0KTsKKwkJCX0gZWxzZSB7CisJCQkJdHJ5IHsKKwkJCQkJd3JpdGVyLndyaXRlKHJlc3VsdCk7CisJCQkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgeworCQkJCQl0aHJvdyBuZXcgU3RydXRzRXhjZXB0aW9uKCJJT0Vycm9yOiAiICsgZS5nZXRNZXNzYWdlKCksIGUpOworCQkJCX0KKwkJCX0KKwkJfQorCX0KKworCXByaXZhdGUgU3RyaW5nIGNyZWF0ZURlZmF1bHRVcmwoVXJsUHJvdmlkZXIgdXJsQ29tcG9uZW50KSB7CisJCVN0cmluZyByZXN1bHQ7CisJCUFjdGlvbkludm9jYXRpb24gYWkgPSAoQWN0aW9uSW52b2NhdGlvbil1cmxDb21wb25lbnQuZ2V0U3RhY2soKS5nZXRDb250ZXh0KCkuZ2V0KAorCQkJCUFjdGlvbkNvbnRleHQuQUNUSU9OX0lOVk9DQVRJT04pOworCQlTdHJpbmcgYWN0aW9uID0gYWkuZ2V0UHJveHkoKS5nZXRBY3Rpb25OYW1lKCk7CisJCXJlc3VsdCA9IFBvcnRsZXRVcmxIZWxwZXIuYnVpbGRVcmwoYWN0aW9uLCB1cmxDb21wb25lbnQuZ2V0TmFtZXNwYWNlKCksIHVybENvbXBvbmVudC5nZXRNZXRob2QoKSwgdXJsQ29tcG9uZW50LmdldFBhcmFtZXRlcnMoKSwKKyAgICAgICAgICAgICAgICB1cmxDb21wb25lbnQuZ2V0UG9ydGxldFVybFR5cGUoKSwgdXJsQ29tcG9uZW50LmdldFBvcnRsZXRNb2RlKCksIHVybENvbXBvbmVudC5nZXRXaW5kb3dTdGF0ZSgpKTsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisKKwlwcml2YXRlIGJvb2xlYW4gb25seVZhbHVlU3BlY2lmaWVkKFVybFByb3ZpZGVyIHVybENvbXBvbmVudCkgeworCQlyZXR1cm4gdXJsQ29tcG9uZW50LmdldFZhbHVlKCkgIT0gbnVsbCAmJiB1cmxDb21wb25lbnQuZ2V0QWN0aW9uKCkgPT0gbnVsbDsKKwl9CisKKwlwcml2YXRlIGJvb2xlYW4gb25seUFjdGlvblNwZWNpZmllZChVcmxQcm92aWRlciB1cmxDb21wb25lbnQpIHsKKwkJcmV0dXJuIHVybENvbXBvbmVudC5nZXRWYWx1ZSgpID09IG51bGwgJiYgdXJsQ29tcG9uZW50LmdldEFjdGlvbigpICE9IG51bGw7CisJfQorCisJLyoqCisJICoge0Bpbmhlcml0RG9jfQorCSAqLworCXB1YmxpYyB2b2lkIHJlbmRlckZvcm1VcmwoRm9ybSBmb3JtQ29tcG9uZW50KSB7CisJCWlmKFBvcnRsZXRBY3Rpb25Db250ZXh0LmdldFBvcnRsZXRDb250ZXh0KCkgPT0gbnVsbCkgeworCQkJc2VydmxldFJlbmRlcmVyLnJlbmRlckZvcm1VcmwoZm9ybUNvbXBvbmVudCk7CisJCX0KKwkJZWxzZSB7CisJCQlTdHJpbmcgbmFtZXNwYWNlID0gZm9ybUNvbXBvbmVudC5kZXRlcm1pbmVOYW1lc3BhY2UoZm9ybUNvbXBvbmVudC5uYW1lc3BhY2UsIGZvcm1Db21wb25lbnQuZ2V0U3RhY2soKSwKKwkJCQkJZm9ybUNvbXBvbmVudC5yZXF1ZXN0KTsKKwkJCVN0cmluZyBhY3Rpb24gPSBudWxsOworCQkJaWYgKGZvcm1Db21wb25lbnQuYWN0aW9uICE9IG51bGwpIHsKKwkJCQlhY3Rpb24gPSBmb3JtQ29tcG9uZW50LmZpbmRTdHJpbmcoZm9ybUNvbXBvbmVudC5hY3Rpb24pOworCQkJfQorCQkJZWxzZSB7CisJCQkJQWN0aW9uSW52b2NhdGlvbiBhaSA9IChBY3Rpb25JbnZvY2F0aW9uKSBmb3JtQ29tcG9uZW50LmdldFN0YWNrKCkuZ2V0Q29udGV4dCgpLmdldChBY3Rpb25Db250ZXh0LkFDVElPTl9JTlZPQ0FUSU9OKTsKKwkJCQlhY3Rpb24gPSBhaS5nZXRQcm94eSgpLmdldEFjdGlvbk5hbWUoKTsKKwkJCX0KKwkJCVN0cmluZyB0eXBlID0gImFjdGlvbiI7CisJCQlpZiAoU3RyaW5nVXRpbHMuaXNOb3RFbXB0eShmb3JtQ29tcG9uZW50Lm1ldGhvZCkpIHsKKwkJCQlpZiAoIkdFVCIuZXF1YWxzSWdub3JlQ2FzZShmb3JtQ29tcG9uZW50Lm1ldGhvZC50cmltKCkpKSB7CisJCQkJCXR5cGUgPSAicmVuZGVyIjsKKwkJCQl9CisJCQl9CisJCQlpZiAoYWN0aW9uICE9IG51bGwpIHsKKwkJCQlTdHJpbmcgcmVzdWx0ID0gUG9ydGxldFVybEhlbHBlci5idWlsZFVybChhY3Rpb24sIG5hbWVzcGFjZSwgbnVsbCwKKwkJCQkJCWZvcm1Db21wb25lbnQuZ2V0UGFyYW1ldGVycygpLCB0eXBlLCBmb3JtQ29tcG9uZW50LnBvcnRsZXRNb2RlLCBmb3JtQ29tcG9uZW50LndpbmRvd1N0YXRlKTsKKwkJCQlmb3JtQ29tcG9uZW50LmFkZFBhcmFtZXRlcigiYWN0aW9uIiwgcmVzdWx0KTsKKworCisJCQkJLy8gbmFtZS9pZDogY3V0IG91dCBhbnl0aGluZyBiZXR3ZWVuIC8gYW5kIC4gc2hvdWxkIGJlIHRoZSBpZCBhbmQKKwkJCQkvLyBuYW1lCisJCQkJU3RyaW5nIGlkID0gZm9ybUNvbXBvbmVudC5nZXRJZCgpOworCQkJCWlmIChpZCA9PSBudWxsKSB7CisJCQkJCWludCBzbGFzaCA9IGFjdGlvbi5sYXN0SW5kZXhPZignLycpOworCQkJCQlpbnQgZG90ID0gYWN0aW9uLmluZGV4T2YoJy4nLCBzbGFzaCk7CisJCQkJCWlmIChkb3QgIT0gLTEpIHsKKwkJCQkJCWlkID0gYWN0aW9uLnN1YnN0cmluZyhzbGFzaCArIDEsIGRvdCk7CisJCQkJCX0gZWxzZSB7CisJCQkJCQlpZCA9IGFjdGlvbi5zdWJzdHJpbmcoc2xhc2ggKyAxKTsKKwkJCQkJfQorCQkJCQlmb3JtQ29tcG9uZW50LmFkZFBhcmFtZXRlcigiaWQiLCBmb3JtQ29tcG9uZW50LmVzY2FwZShpZCkpOworCQkJCX0KKwkJCX0KKwkJfQorCQkKKwl9CisKKwlwdWJsaWMgdm9pZCBiZWZvcmVSZW5kZXJVcmwoVXJsUHJvdmlkZXIgdXJsQ29tcG9uZW50KSB7CisJCWlmKFBvcnRsZXRBY3Rpb25Db250ZXh0LmdldFBvcnRsZXRDb250ZXh0KCkgPT0gbnVsbCkgeworCQkJc2VydmxldFJlbmRlcmVyLmJlZm9yZVJlbmRlclVybCh1cmxDb21wb25lbnQpOworCQl9CisJfQorCisJcHVibGljIHZvaWQgc2V0U2VydmxldFJlbmRlcmVyKFVybFJlbmRlcmVyIG5vblBvcnRsZXRSZW5kZXJlcikgeworCQl0aGlzLnNlcnZsZXRSZW5kZXJlciA9IG5vblBvcnRsZXRSZW5kZXJlcjsKKwkJCisJfQorCit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9Qb3J0bGV0QWN0aW9uQ29uc3RhbnRzLmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9Qb3J0bGV0QWN0aW9uQ29uc3RhbnRzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmUyZGFmZgotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L1BvcnRsZXRBY3Rpb25Db25zdGFudHMuamF2YQpAQCAtMCwwICsxLDE0MCBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldDsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5TZXJ2bGV0QWN0aW9uQ29udGV4dDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5kaXNwYXRjaGVyLkRpc3BhdGNoZXJTZXJ2bGV0OworCisvKioKKyAqIEludGVyZmFjZSBkZWZpbmluZyBzb21lIGNvbnN0YW50cyB1c2VkIGluIHRoZSBTdHJ1dHMgcG9ydGxldCBpbXBsZW1lbnRhdGlvbgorICoKKyAqLworcHVibGljIGludGVyZmFjZSBQb3J0bGV0QWN0aW9uQ29uc3RhbnRzIHsKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGFjdGlvbiBuYW1lIHRvIHVzZSB3aGVuIG5vIGRlZmF1bHQgYWN0aW9uIGhhcyBiZWVuIGNvbmZpZ3VyZWQgaW4gdGhlIHBvcnRsZXQKKyAgICAgKiBpbml0IHBhcmFtZXRlcnMuCisgICAgICovCisgICAgU3RyaW5nIERFRkFVTFRfQUNUSU9OX05BTUUgPSAiZGVmYXVsdCI7CisKKyAgICAvKioKKyAgICAgKiBBY3Rpb24gbmFtZSBwYXJhbWV0ZXIgbmFtZQorICAgICAqLworICAgIFN0cmluZyBBQ1RJT05fUEFSQU0gPSAic3RydXRzLnBvcnRsZXQuYWN0aW9uIjsKKworICAgIC8qKgorICAgICAqIEtleSBmb3IgcGFyYW1ldGVyIGhvbGRpbmcgdGhlIGxhc3QgZXhlY3V0ZWQgcG9ydGxldCBtb2RlLgorICAgICAqLworICAgIFN0cmluZyBNT0RFX1BBUkFNID0gInN0cnV0cy5wb3J0bGV0Lm1vZGUiOworCisgICAgLyoqCisgICAgICogS2V5IHVzZWQgZm9yIGxvb2tpbmcgdXAgYW5kIHN0b3JpbmcgdGhlIHBvcnRsZXQgcGhhc2UKKyAgICAgKi8KKyAgICBTdHJpbmcgUEhBU0UgPSAic3RydXRzLnBvcnRsZXQucGhhc2UiOworCisgICAgLyoqCisgICAgICogQ29uc3RhbnQgdXNlZCBmb3IgdGhlIHJlbmRlciBwaGFzZSAoCisgICAgICoge0BsaW5rIGphdmF4LnBvcnRsZXQuUG9ydGxldCNyZW5kZXIoamF2YXgucG9ydGxldC5SZW5kZXJSZXF1ZXN0LCBqYXZheC5wb3J0bGV0LlJlbmRlclJlc3BvbnNlKX0pCisgICAgICovCisgICAgSW50ZWdlciBSRU5ERVJfUEhBU0UgPSBuZXcgSW50ZWdlcigxKTsKKworICAgIC8qKgorICAgICAqIENvbnN0YW50IHVzZWQgZm9yIHRoZSBldmVudCBwaGFzZSAoCisgICAgICoge0BsaW5rIGphdmF4LnBvcnRsZXQuUG9ydGxldCNwcm9jZXNzQWN0aW9uKGphdmF4LnBvcnRsZXQuQWN0aW9uUmVxdWVzdCwgamF2YXgucG9ydGxldC5BY3Rpb25SZXNwb25zZSl9KQorICAgICAqLworICAgIEludGVnZXIgRVZFTlRfUEhBU0UgPSBuZXcgSW50ZWdlcigyKTsKKworICAgIC8qKgorICAgICAqIEtleSB1c2VkIGZvciBsb29raW5nIHVwIGFuZCBzdG9yaW5nIHRoZQorICAgICAqIHtAbGluayBqYXZheC5wb3J0bGV0LlBvcnRsZXRSZXF1ZXN0fQorICAgICAqLworICAgIFN0cmluZyBSRVFVRVNUID0gInN0cnV0cy5wb3J0bGV0LnJlcXVlc3QiOworCisgICAgLyoqCisgICAgICogS2V5IHVzZWQgZm9yIGxvb2tpbmcgdXAgYW5kIHN0b3JpbmcgdGhlCisgICAgICoge0BsaW5rIGphdmF4LnBvcnRsZXQuUG9ydGxldFJlc3BvbnNlfQorICAgICAqLworICAgIFN0cmluZyBSRVNQT05TRSA9ICJzdHJ1dHMucG9ydGxldC5yZXNwb25zZSI7CisKKyAgICAvKioKKyAgICAgKiBLZXkgdXNlZCBmb3IgbG9va2luZyB1cCBhbmQgc3RvcmluZyB0aGUgYWN0aW9uIHRoYXQgd2FzIGludm9rZWQgaW4gdGhlIGV2ZW50IHBoYXNlLgorICAgICAqLworICAgIFN0cmluZyBFVkVOVF9BQ1RJT04gPSAic3RydXRzLnBvcnRsZXQuZXZlbnRBY3Rpb24iOworCisgICAgLyoqCisgICAgICogS2V5IHVzZWQgZm9yIGxvb2tpbmcgdXAgYW5kIHN0b3JpbmcgdGhlCisgICAgICoge0BsaW5rIGphdmF4LnBvcnRsZXQuUG9ydGxldENvbmZpZ30KKyAgICAgKi8KKyAgICBTdHJpbmcgUE9SVExFVF9DT05GSUcgPSAic3RydXRzLnBvcnRsZXQuY29uZmlnIjsKKworICAgIC8qKgorICAgICAqIE5hbWUgb2YgdGhlIGFjdGlvbiB1c2VkIGFzIGVycm9yIGhhbmRsZXIKKyAgICAgKi8KKyAgICBTdHJpbmcgRVJST1JfQUNUSU9OID0gImVycm9ySGFuZGxlciI7CisKKyAgICAvKioKKyAgICAgKiBLZXkgZm9yIHRoZSBwb3J0bGV0IG5hbWVzcGFjZSBzdG9yZWQgaW4gdGhlCisgICAgICoge0BsaW5rIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LmNvbnRleHQuUG9ydGxldEFjdGlvbkNvbnRleHR9LgorICAgICAqLworICAgIFN0cmluZyBQT1JUTEVUX05BTUVTUEFDRSA9ICJzdHJ1dHMucG9ydGxldC5wb3J0bGV0TmFtZXNwYWNlIjsKKworICAgIC8qKgorICAgICAqIEtleSBmb3IgdGhlIG1vZGUtdG8tbmFtZXNwYWNlIG1hcCBzdG9yZWQgaW4gdGhlCisgICAgICoge0BsaW5rIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LmNvbnRleHQuUG9ydGxldEFjdGlvbkNvbnRleHR9LgorICAgICAqLworICAgIFN0cmluZyBNT0RFX05BTUVTUEFDRV9NQVAgPSAic3RydXRzLnBvcnRsZXQubW9kZU5hbWVzcGFjZU1hcCI7CisKKyAgICAvKioKKyAgICAgKiBLZXkgZm9yIHRoZSBkZWZhdWx0IGFjdGlvbiBuYW1lIGZvciB0aGUgcG9ydGxldCwgc3RvcmVkIGluIHRoZQorICAgICAqIHtAbGluayBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5jb250ZXh0LlBvcnRsZXRBY3Rpb25Db250ZXh0fS4KKyAgICAgKi8KKyAgICBTdHJpbmcgREVGQVVMVF9BQ1RJT05fRk9SX01PREUgPSAic3RydXRzLnBvcnRsZXQuZGVmYXVsdEFjdGlvbkZvck1vZGUiOworICAgIAorICAgIC8qKgorICAgICAqIEtleSBmb3IgcmVxdWVzdCBhdHRyaWJ1dGUgaW5kaWNhdGluZyBpZiB0aGUgYWN0aW9uIGhhcyBiZWVuIHJlc2V0LiAKKyAgICAgKi8KKyAgICBTdHJpbmcgQUNUSU9OX1JFU0VUID0gInN0cnV0cy5wb3J0bGV0LmFjdGlvblJlc2V0IjsKKyAgICAKKyAgICAvKioKKyAgICAgKiBLZXkgZm9yIHNlc3Npb24gYXR0cmlidXRlIGluZGljYXRpbmcgdGhlIGxvY2F0aW9uIG9mIHRoZSByZW5kZXIgZGlyZWN0IGFjdGlvbi4KKyAgICAgKi8KKyAgICBTdHJpbmcgUkVOREVSX0RJUkVDVF9MT0NBVElPTiA9ICJzdHJ1dHMucG9ydGxldC5yZW5kZXJEaXJlY3RMb2NhdGlvbiI7CisgICAgCisgICAgLyoqCisgICAgICogS2V5IGZvciB0aGUgZGlzcGF0Y2ggaW5zdHJ1Y3Rpb24gZm9yIHRoZSB7QGxpbmsgRGlzcGF0Y2hlclNlcnZsZXR9CisgICAgICovCisJU3RyaW5nIERJU1BBVENIX1RPID0gInN0cnV0cy5wb3J0bGV0LmRpc3BhdGNoVG8iOworCQorCS8qKgorCSAqIFNlc3Npb24ga2V5IHdoZXJlIHRoZSB2YWx1ZSBzdGFjayBmcm9tIHRoZSBldmVudCBwaGFzZSBpcyBzdG9yZWQuCisJICovCisJU3RyaW5nIFNUQUNLX0ZST01fRVZFTlRfUEhBU0UgPSAic3RydXRzLnBvcnRsZXQudmFsdWVTdGFja0Zyb21FdmVudFBoYXNlIjsKKworCS8qKgorCSAqIERlZmF1bHQgbmFtZSBvZiBkaXNwYXRjaGVyIHNlcnZsZXQgaW4gd2ViLnhtbAorCSAqLworCVN0cmluZyBERUZBVUxUX0RJU1BBVENIRVJfU0VSVkxFVF9OQU1FID0gIlN0cnV0czJQb3J0bGV0RGlzcGF0Y2hlclNlcnZsZXQiOworCQorCS8qKgorCSAqIEtleSBmb3IgdGhlIGFjdGlvbiBtYXBwaW5nIGluIHRoZSBjb250ZXh0CisgICAgKi8KKwlTdHJpbmcgQUNUSU9OX01BUFBJTkcgPSBTZXJ2bGV0QWN0aW9uQ29udGV4dC5BQ1RJT05fTUFQUElORzsKK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L1BvcnRsZXRBcHBsaWNhdGlvbk1hcC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvUG9ydGxldEFwcGxpY2F0aW9uTWFwLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM2YzJhZQotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L1BvcnRsZXRBcHBsaWNhdGlvbk1hcC5qYXZhCkBAIC0wLDAgKzEsMjA3IEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0OworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkFic3RyYWN0TWFwOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRDb250ZXh0OworCisvKioKKyAqIFBvcnRsZXQgc3BlY2lmaWMge0BsaW5rIGphdmEudXRpbC5NYXB9IGltcGxlbWVudGF0aW9uIHJlcHJlc2VudGluZyB0aGUKKyAqIHtAbGluayBqYXZheC5wb3J0bGV0LlBvcnRsZXRDb250ZXh0fSBvZiBhIFBvcnRsZXQuCisgKgorICovCitwdWJsaWMgY2xhc3MgUG9ydGxldEFwcGxpY2F0aW9uTWFwIGV4dGVuZHMgQWJzdHJhY3RNYXAgaW1wbGVtZW50cyBTZXJpYWxpemFibGUgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMjI5NjEwNzUxMTA2MzUwNDQxNEw7CisKKyAgICBwcml2YXRlIFBvcnRsZXRDb250ZXh0IGNvbnRleHQ7CisKKyAgICBwcml2YXRlIFNldDxPYmplY3Q+IGVudHJpZXM7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IG1hcCBvYmplY3QgZ2l2ZW4gdGhlIHtAbGluayBQb3J0bGV0Q29udGV4dH0uCisgICAgICoKKyAgICAgKiBAcGFyYW0gY3R4IFRoZSBwb3J0bGV0IGNvbnRleHQuCisgICAgICovCisgICAgcHVibGljIFBvcnRsZXRBcHBsaWNhdGlvbk1hcChQb3J0bGV0Q29udGV4dCBjdHgpIHsKKyAgICAgICAgdGhpcy5jb250ZXh0ID0gY3R4OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgYWxsIGVudHJpZXMgZnJvbSB0aGUgTWFwIGFuZCByZW1vdmVzIGFsbCBhdHRyaWJ1dGVzIGZyb20gdGhlCisgICAgICogcG9ydGxldCBjb250ZXh0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNsZWFyKCkgeworICAgICAgICBlbnRyaWVzID0gbnVsbDsKKworICAgICAgICBFbnVtZXJhdGlvbiBlID0gY29udGV4dC5nZXRBdHRyaWJ1dGVOYW1lcygpOworCisgICAgICAgIHdoaWxlIChlLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBjb250ZXh0LnJlbW92ZUF0dHJpYnV0ZShlLm5leHRFbGVtZW50KCkudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgU2V0IG9mIGFsbCBwb3J0bGV0IGNvbnRleHQgYXR0cmlidXRlcyBhcyB3ZWxsIGFzIGNvbnRleHQgaW5pdAorICAgICAqIHBhcmFtZXRlcnMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgU2V0IG9mIGFsbCBwb3J0bGV0IGNvbnRleHQgYXR0cmlidXRlcyBhcyB3ZWxsIGFzIGNvbnRleHQgaW5pdAorICAgICAqICAgICAgICAgcGFyYW1ldGVycy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU2V0IGVudHJ5U2V0KCkgeworICAgICAgICBpZiAoZW50cmllcyA9PSBudWxsKSB7CisgICAgICAgICAgICBlbnRyaWVzID0gbmV3IEhhc2hTZXQ8T2JqZWN0PigpOworCisgICAgICAgICAgICAvLyBBZGQgcG9ydGxldCBjb250ZXh0IGF0dHJpYnV0ZXMKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIGVudW1lcmF0aW9uID0gY29udGV4dC5nZXRBdHRyaWJ1dGVOYW1lcygpOworCisgICAgICAgICAgICB3aGlsZSAoZW51bWVyYXRpb24uaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcga2V5ID0gZW51bWVyYXRpb24ubmV4dEVsZW1lbnQoKS50b1N0cmluZygpOworICAgICAgICAgICAgICAgIGZpbmFsIE9iamVjdCB2YWx1ZSA9IGNvbnRleHQuZ2V0QXR0cmlidXRlKGtleSk7CisgICAgICAgICAgICAgICAgZW50cmllcy5hZGQobmV3IE1hcC5FbnRyeSgpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gZXF1YWxzKE9iamVjdCBvYmopIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIE1hcC5FbnRyeSBlbnRyeSA9IChNYXAuRW50cnkpIG9iajsKKworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoa2V5ID09IG51bGwpID8gKGVudHJ5LmdldEtleSgpID09IG51bGwpIDoga2V5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5lcXVhbHMoZW50cnkuZ2V0S2V5KCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoKHZhbHVlID09IG51bGwpID8gKGVudHJ5LmdldFZhbHVlKCkgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlLmVxdWFscyhlbnRyeS5nZXRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoa2V5ID09IG51bGwpID8gMCA6IGtleS5oYXNoQ29kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICgodmFsdWUgPT0gbnVsbCkgPyAwIDogdmFsdWUuaGFzaENvZGUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGdldEtleSgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGdldFZhbHVlKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBzZXRWYWx1ZShPYmplY3Qgb2JqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnNldEF0dHJpYnV0ZShrZXkudG9TdHJpbmcoKSwgb2JqKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEFkZCBwb3J0bGV0IGNvbnRleHQgaW5pdCBwYXJhbXMKKyAgICAgICAgICAgIGVudW1lcmF0aW9uID0gY29udGV4dC5nZXRJbml0UGFyYW1ldGVyTmFtZXMoKTsKKworICAgICAgICAgICAgd2hpbGUgKGVudW1lcmF0aW9uLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGtleSA9IGVudW1lcmF0aW9uLm5leHRFbGVtZW50KCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBmaW5hbCBPYmplY3QgdmFsdWUgPSBjb250ZXh0LmdldEluaXRQYXJhbWV0ZXIoa2V5KTsKKyAgICAgICAgICAgICAgICBlbnRyaWVzLmFkZChuZXcgTWFwLkVudHJ5KCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICAgICAgICAgICAgICAgICAgTWFwLkVudHJ5IGVudHJ5ID0gKE1hcC5FbnRyeSkgb2JqOworCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKChrZXkgPT0gbnVsbCkgPyAoZW50cnkuZ2V0S2V5KCkgPT0gbnVsbCkgOiBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmVxdWFscyhlbnRyeS5nZXRLZXkoKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICgodmFsdWUgPT0gbnVsbCkgPyAoZW50cnkuZ2V0VmFsdWUoKSA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdmFsdWUuZXF1YWxzKGVudHJ5LmdldFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBpbnQgaGFzaENvZGUoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKChrZXkgPT0gbnVsbCkgPyAwIDoga2V5Lmhhc2hDb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gKCh2YWx1ZSA9PSBudWxsKSA/IDAgOiB2YWx1ZS5oYXNoQ29kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0S2V5KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGtleTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0VmFsdWUoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IHNldFZhbHVlKE9iamVjdCBvYmopIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0QXR0cmlidXRlKGtleS50b1N0cmluZygpLCBvYmopOworCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBlbnRyaWVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHBvcnRsZXQgY29udGV4dCBhdHRyaWJ1dGUgb3IgaW5pdCBwYXJhbWV0ZXIgYmFzZWQgb24gdGhlCisgICAgICogZ2l2ZW4ga2V5LiBJZiB0aGUgZW50cnkgaXMgbm90IGZvdW5kLCA8dHQ+bnVsbDwvdHQ+IGlzIHJldHVybmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGtleQorICAgICAqICAgICAgICAgICAgdGhlIGVudHJ5IGtleS4KKyAgICAgKiBAcmV0dXJuIHRoZSBwb3J0bGV0IGNvbnRleHQgYXR0cmlidXRlIG9yIGluaXQgcGFyYW1ldGVyIG9yIDx0dD5udWxsPC90dD4KKyAgICAgKiAgICAgICAgIGlmIHRoZSBlbnRyeSBpcyBub3QgZm91bmQuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoT2JqZWN0IGtleSkgeworICAgICAgICAvLyBUcnkgY29udGV4dCBhdHRyaWJ1dGVzIGZpcnN0LCB0aGVuIGluaXQgcGFyYW1zCisgICAgICAgIC8vIFRoaXMgZ2l2ZXMgdGhlIHByb3BlciBzaGFkb3dpbmcgZWZmZWN0cworICAgICAgICBTdHJpbmcga2V5U3RyaW5nID0ga2V5LnRvU3RyaW5nKCk7CisgICAgICAgIE9iamVjdCB2YWx1ZSA9IGNvbnRleHQuZ2V0QXR0cmlidXRlKGtleVN0cmluZyk7CisKKyAgICAgICAgcmV0dXJuICh2YWx1ZSA9PSBudWxsKSA/IGNvbnRleHQuZ2V0SW5pdFBhcmFtZXRlcihrZXlTdHJpbmcpIDogdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyBhIHBvcnRsZXQgY29udGV4dCBhdHRyaWJ1dGUgZ2l2ZW4gYSBhdHRyaWJ1dGUgbmFtZSBhbmQgdmFsdWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5CisgICAgICogICAgICAgICAgICB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLgorICAgICAqIEBwYXJhbSB2YWx1ZQorICAgICAqICAgICAgICAgICAgdGhlIHZhbHVlIHRvIHNldC4KKyAgICAgKiBAcmV0dXJuIHRoZSBhdHRyaWJ1dGUgdGhhdCB3YXMganVzdCBzZXQuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBwdXQoT2JqZWN0IGtleSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIGVudHJpZXMgPSBudWxsOworICAgICAgICBjb250ZXh0LnNldEF0dHJpYnV0ZShrZXkudG9TdHJpbmcoKSwgdmFsdWUpOworCisgICAgICAgIHJldHVybiBnZXQoa2V5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmVzIHRoZSBzcGVjaWZpZWQgcG9ydGxldCBjb250ZXh0IGF0dHJpYnV0ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiAgICAgICAgICAgIHRoZSBhdHRyaWJ1dGUgdG8gcmVtb3ZlLgorICAgICAqIEByZXR1cm4gdGhlIGVudHJ5IHRoYXQgd2FzIGp1c3QgcmVtb3ZlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IHJlbW92ZShPYmplY3Qga2V5KSB7CisgICAgICAgIGVudHJpZXMgPSBudWxsOworCisgICAgICAgIE9iamVjdCB2YWx1ZSA9IGdldChrZXkpOworICAgICAgICBjb250ZXh0LnJlbW92ZUF0dHJpYnV0ZShrZXkudG9TdHJpbmcoKSk7CisKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L1BvcnRsZXRSZXF1ZXN0TWFwLmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9Qb3J0bGV0UmVxdWVzdE1hcC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmZjZhY2IKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9Qb3J0bGV0UmVxdWVzdE1hcC5qYXZhCkBAIC0wLDAgKzEsMTU4IEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0OworCitpbXBvcnQgamF2YS51dGlsLkFic3RyYWN0TWFwOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0UmVxdWVzdDsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnV0aWwubG9nZ2luZy5Mb2dnZXI7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIudXRpbC5sb2dnaW5nLkxvZ2dlckZhY3Rvcnk7CisKKy8qKgorICogQSBzaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHtAbGluayBqYXZhLnV0aWwuTWFwfSBpbnRlcmZhY2UgdG8gaGFuZGxlIGEgY29sbGVjdGlvbiBvZiByZXF1ZXN0IGF0dHJpYnV0ZXMuCisgKgorICovCitwdWJsaWMgY2xhc3MgUG9ydGxldFJlcXVlc3RNYXAgZXh0ZW5kcyBBYnN0cmFjdE1hcCB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2dnZXIgTE9HID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoUG9ydGxldFJlcXVlc3RNYXAuY2xhc3MpOworCisgICAgcHJpdmF0ZSBTZXQ8T2JqZWN0PiBlbnRyaWVzID0gbnVsbDsKKyAgICBwcml2YXRlIFBvcnRsZXRSZXF1ZXN0IHJlcXVlc3QgPSBudWxsOworCisgICAgLyoqCisgICAgICogU2F2ZXMgdGhlIHJlcXVlc3QgdG8gdXNlIGFzIHRoZSBiYWNraW5nIGZvciBnZXR0aW5nIGFuZCBzZXR0aW5nIHZhbHVlcworICAgICAqCisgICAgICogQHBhcmFtIHJlcXVlc3QgdGhlIHBvcnRsZXQgcmVxdWVzdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgUG9ydGxldFJlcXVlc3RNYXAoUG9ydGxldFJlcXVlc3QgcmVxdWVzdCkgeworICAgICAgICB0aGlzLnJlcXVlc3QgPSByZXF1ZXN0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgYWxsIGF0dHJpYnV0ZXMgZnJvbSB0aGUgcmVxdWVzdCBhcyB3ZWxsIGFzIGNsZWFycyBlbnRyaWVzIGluIHRoaXMKKyAgICAgKiBtYXAuCisgICAgICovCisgICAgcHVibGljIHZvaWQgY2xlYXIoKSB7CisgICAgICAgIGVudHJpZXMgPSBudWxsOworICAgICAgICBFbnVtZXJhdGlvbiBrZXlzID0gcmVxdWVzdC5nZXRBdHRyaWJ1dGVOYW1lcygpOworCisgICAgICAgIHdoaWxlIChrZXlzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykga2V5cy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgcmVxdWVzdC5yZW1vdmVBdHRyaWJ1dGUoa2V5KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSBTZXQgb2YgYXR0cmlidXRlcyBmcm9tIHRoZSBwb3J0bGV0IHJlcXVlc3QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgU2V0IG9mIGF0dHJpYnV0ZXMgZnJvbSB0aGUgcG9ydGxldCByZXF1ZXN0LgorICAgICAqLworICAgIHB1YmxpYyBTZXQgZW50cnlTZXQoKSB7CisgICAgICAgIGlmIChlbnRyaWVzID09IG51bGwpIHsKKyAgICAgICAgICAgIGVudHJpZXMgPSBuZXcgSGFzaFNldDxPYmplY3Q+KCk7CisKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIGVudW1lcmF0aW9uID0gcmVxdWVzdC5nZXRBdHRyaWJ1dGVOYW1lcygpOworCisgICAgICAgICAgICB3aGlsZSAoZW51bWVyYXRpb24uaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmcga2V5ID0gZW51bWVyYXRpb24ubmV4dEVsZW1lbnQoKS50b1N0cmluZygpOworICAgICAgICAgICAgICAgIGZpbmFsIE9iamVjdCB2YWx1ZSA9IHJlcXVlc3QuZ2V0QXR0cmlidXRlKGtleSk7CisgICAgICAgICAgICAgICAgZW50cmllcy5hZGQobmV3IEVudHJ5KCkgeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICAgICAgICAgICAgICAgICAgRW50cnkgZW50cnkgPSAoRW50cnkpIG9iajsKKworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoa2V5ID09IG51bGwpID8gKGVudHJ5LmdldEtleSgpID09IG51bGwpIDoga2V5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5lcXVhbHMoZW50cnkuZ2V0S2V5KCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAoKHZhbHVlID09IG51bGwpID8gKGVudHJ5LmdldFZhbHVlKCkgPT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlLmVxdWFscyhlbnRyeS5nZXRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoa2V5ID09IG51bGwpID8gMCA6IGtleS5oYXNoQ29kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICgodmFsdWUgPT0gbnVsbCkgPyAwIDogdmFsdWUuaGFzaENvZGUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGdldEtleSgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IGdldFZhbHVlKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcHVibGljIE9iamVjdCBzZXRWYWx1ZShPYmplY3Qgb2JqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldEF0dHJpYnV0ZShrZXksIG9iaik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGVudHJpZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgcmVxdWVzdCBhdHRyaWJ1dGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBrZXkgb3IKKyAgICAgKiA8dHQ+bnVsbDwvdHQ+IGlmIGl0IGRvZXNuJ3QgZXhpc3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5IHRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IGF0dHJpYnV0ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSByZXF1ZXN0IGF0dHJpYnV0ZSBvciA8dHQ+bnVsbDwvdHQ+IGlmIGl0IGRvZXNuJ3QgZXhpc3QuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXQoT2JqZWN0IGtleSkgeworICAgICAgICByZXR1cm4gcmVxdWVzdC5nZXRBdHRyaWJ1dGUoa2V5LnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNhdmVzIGFuIGF0dHJpYnV0ZSBpbiB0aGUgcmVxdWVzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkgdGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgYXR0cmlidXRlLgorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gc2V0LgorICAgICAqIEByZXR1cm4gdGhlIG9iamVjdCB0aGF0IHdhcyBqdXN0IHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IHB1dChPYmplY3Qga2V5LCBPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgZW50cmllcyA9IG51bGw7CisgICAgICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKGtleS50b1N0cmluZygpLCB2YWx1ZSk7CisKKyAgICAgICAgcmV0dXJuIGdldChrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZXMgdGhlIHNwZWNpZmllZCByZXF1ZXN0IGF0dHJpYnV0ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkgdGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSB0byByZW1vdmUuCisgICAgICogQHJldHVybiB0aGUgdmFsdWUgdGhhdCB3YXMgcmVtb3ZlZCBvciA8dHQ+bnVsbDwvdHQ+IGlmIHRoZSB2YWx1ZSB3YXMKKyAgICAgKiBub3QgZm91bmQgKGFuZCBoZW5jZSwgbm90IHJlbW92ZWQpLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgcmVtb3ZlKE9iamVjdCBrZXkpIHsKKyAgICAgICAgZW50cmllcyA9IG51bGw7CisKKyAgICAgICAgT2JqZWN0IHZhbHVlID0gZ2V0KGtleSk7CisgICAgICAgIHJlcXVlc3QucmVtb3ZlQXR0cmlidXRlKGtleS50b1N0cmluZygpKTsKKworICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9Qb3J0bGV0U2Vzc2lvbk1hcC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvUG9ydGxldFNlc3Npb25NYXAuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMTFkN2ZlCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvUG9ydGxldFNlc3Npb25NYXAuamF2YQpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldDsKKworaW1wb3J0IGphdmEudXRpbC5BYnN0cmFjdE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hTZXQ7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRTZXNzaW9uOworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIudXRpbC5sb2dnaW5nLkxvZ2dlcjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi51dGlsLmxvZ2dpbmcuTG9nZ2VyRmFjdG9yeTsKKworLyoqCisgKiBBIHNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUge0BsaW5rIGphdmEudXRpbC5NYXB9IGludGVyZmFjZSB0byBoYW5kbGUgYSBjb2xsZWN0aW9uIG9mIHBvcnRsZXQgc2Vzc2lvbgorICogYXR0cmlidXRlcy4gVGhlIHtAbGluayAjZW50cnlTZXQoKX0gbWV0aG9kIGVudW1lcmF0ZXMgb3ZlciBhbGwgc2Vzc2lvbiBhdHRyaWJ1dGVzIGFuZCBjcmVhdGVzIGEgU2V0IG9mIGVudHJpZXMuCisgKiBOb3RlLCB0aGlzIHdpbGwgb2NjdXIgbGF6aWx5IC0gb25seSB3aGVuIHRoZSBlbnRyeSBzZXQgaXMgYXNrZWQgZm9yLgorICoKKyAqLworcHVibGljIGNsYXNzIFBvcnRsZXRTZXNzaW9uTWFwIGV4dGVuZHMgQWJzdHJhY3RNYXAgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9nZ2VyIExPRyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKFBvcnRsZXRTZXNzaW9uTWFwLmNsYXNzKTsKKworICAgIHByaXZhdGUgUG9ydGxldFNlc3Npb24gc2Vzc2lvbiA9IG51bGw7CisgICAgcHJpdmF0ZSBTZXQ8T2JqZWN0PiBlbnRyaWVzID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBuZXcgc2Vzc2lvbiBtYXAgZ2l2ZW4gYSBwb3J0bGV0IHJlcXVlc3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCB0aGUgcG9ydGxldCByZXF1ZXN0IG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgUG9ydGxldFNlc3Npb25NYXAoUG9ydGxldFJlcXVlc3QgcmVxdWVzdCkgeworICAgICAgICB0aGlzLnNlc3Npb24gPSByZXF1ZXN0LmdldFBvcnRsZXRTZXNzaW9uKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBqYXZhLnV0aWwuTWFwI2VudHJ5U2V0KCkKKyAgICAgKi8KKyAgICBwdWJsaWMgU2V0IGVudHJ5U2V0KCkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKHNlc3Npb24pIHsKKyAgICAgICAgICAgIGlmIChlbnRyaWVzID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlbnRyaWVzID0gbmV3IEhhc2hTZXQ8T2JqZWN0PigpOworCisgICAgICAgICAgICAgICAgRW51bWVyYXRpb24gZW51bWVyYXRpb24gPSBzZXNzaW9uLmdldEF0dHJpYnV0ZU5hbWVzKCk7CisKKyAgICAgICAgICAgICAgICB3aGlsZSAoZW51bWVyYXRpb24uaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgU3RyaW5nIGtleSA9IGVudW1lcmF0aW9uLm5leHRFbGVtZW50KCkudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgZmluYWwgT2JqZWN0IHZhbHVlID0gc2Vzc2lvbi5nZXRBdHRyaWJ1dGUoa2V5KTsKKyAgICAgICAgICAgICAgICAgICAgZW50cmllcy5hZGQobmV3IE1hcC5FbnRyeSgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFwLkVudHJ5IGVudHJ5ID0gKE1hcC5FbnRyeSkgb2JqOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoa2V5ID09IG51bGwpID8gKGVudHJ5LmdldEtleSgpID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGtleS5lcXVhbHMoZW50cnkuZ2V0S2V5KCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKCh2YWx1ZSA9PSBudWxsKSA/IChlbnRyeS5nZXRWYWx1ZSgpID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdmFsdWUuZXF1YWxzKGVudHJ5LmdldFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKChrZXkgPT0gbnVsbCkgPyAwIDoga2V5Lmhhc2hDb2RlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICgodmFsdWUgPT0gbnVsbCkgPyAwIDogdmFsdWUuaGFzaENvZGUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0S2V5KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgZ2V0VmFsdWUoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgT2JqZWN0IHNldFZhbHVlKE9iamVjdCBvYmopIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXNzaW9uLnNldEF0dHJpYnV0ZShrZXksIG9iaik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBlbnRyaWVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHNlc3Npb24gYXR0cmlidXRlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4ga2V5IG9yCisgICAgICogPHR0Pm51bGw8L3R0PiBpZiBpdCBkb2Vzbid0IGV4aXN0LgorICAgICAqCisgICAgICogQHBhcmFtIGtleSB0aGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiBhdHRyaWJ1dGUuCisgICAgICogQHJldHVybiB0aGUgc2Vzc2lvbiBhdHRyaWJ1dGUgb3IgPHR0Pm51bGw8L3R0PiBpZiBpdCBkb2Vzbid0IGV4aXN0LgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0KE9iamVjdCBrZXkpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChzZXNzaW9uKSB7CisgICAgICAgICAgICByZXR1cm4gc2Vzc2lvbi5nZXRBdHRyaWJ1dGUoa2V5LnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU2F2ZXMgYW4gYXR0cmlidXRlIGluIHRoZSBzZXNzaW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGtleSB0aGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiBhdHRyaWJ1dGUuCisgICAgICogQHBhcmFtIHZhbHVlIHRoZSB2YWx1ZSB0byBzZXQuCisgICAgICogQHJldHVybiB0aGUgb2JqZWN0IHRoYXQgd2FzIGp1c3Qgc2V0LgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgcHV0KE9iamVjdCBrZXksIE9iamVjdCB2YWx1ZSkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKHNlc3Npb24pIHsKKyAgICAgICAgICAgIGVudHJpZXMgPSBudWxsOworICAgICAgICAgICAgc2Vzc2lvbi5zZXRBdHRyaWJ1dGUoa2V5LnRvU3RyaW5nKCksIHZhbHVlKTsKKworICAgICAgICAgICAgcmV0dXJuIGdldChrZXkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBqYXZhLnV0aWwuTWFwI2NsZWFyKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjbGVhcigpIHsKKyAgICAgICAgc3luY2hyb25pemVkIChzZXNzaW9uKSB7CisgICAgICAgICAgICBlbnRyaWVzID0gbnVsbDsKKyAgICAgICAgICAgIHNlc3Npb24uaW52YWxpZGF0ZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVtb3ZlcyB0aGUgc3BlY2lmaWVkIHNlc3Npb24gYXR0cmlidXRlLgorICAgICAqCisgICAgICogQHBhcmFtIGtleSB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIHRvIHJlbW92ZS4KKyAgICAgKiBAcmV0dXJuIHRoZSB2YWx1ZSB0aGF0IHdhcyByZW1vdmVkIG9yIDx0dD5udWxsPC90dD4gaWYgdGhlIHZhbHVlIHdhcworICAgICAqIG5vdCBmb3VuZCAoYW5kIGhlbmNlLCBub3QgcmVtb3ZlZCkuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCByZW1vdmUoT2JqZWN0IGtleSkgeworICAgICAgICBzeW5jaHJvbml6ZWQgKHNlc3Npb24pIHsKKyAgICAgICAgICAgIGVudHJpZXMgPSBudWxsOworCisgICAgICAgICAgICBPYmplY3QgdmFsdWUgPSBnZXQoa2V5KTsKKyAgICAgICAgICAgIHNlc3Npb24ucmVtb3ZlQXR0cmlidXRlKGtleS50b1N0cmluZygpKTsKKworICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvY29udGV4dC9Qb3J0bGV0QWN0aW9uQ29udGV4dC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvY29udGV4dC9Qb3J0bGV0QWN0aW9uQ29udGV4dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkYjllMzEKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9jb250ZXh0L1BvcnRsZXRBY3Rpb25Db250ZXh0LmphdmEKQEAgLTAsMCArMSwyNDEgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuY29udGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK2ltcG9ydCBqYXZheC5wb3J0bGV0LkFjdGlvblJlcXVlc3Q7CitpbXBvcnQgamF2YXgucG9ydGxldC5BY3Rpb25SZXNwb25zZTsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRDb25maWc7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldFJlc3BvbnNlOworaW1wb3J0IGphdmF4LnBvcnRsZXQuUmVuZGVyUmVxdWVzdDsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlJlbmRlclJlc3BvbnNlOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLlN0cnV0c1N0YXRpY3M7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIubWFwcGVyLkFjdGlvbk1hcHBpbmc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuUG9ydGxldEFjdGlvbkNvbnN0YW50czsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbkNvbnRleHQ7CisKKworLyoqCisgKiBQb3J0bGV0QWN0aW9uQ29udGV4dC4gQWN0aW9uQ29udGV4dCB0aHJlYWQgbG9jYWwgZm9yIHRoZSBwb3J0bGV0IGVudmlyb25tZW50LgorICoKKyAqIEB2ZXJzaW9uICRSZXZpc2lvbiQgJERhdGUkCisgKi8KK3B1YmxpYyBjbGFzcyBQb3J0bGV0QWN0aW9uQ29udGV4dCBpbXBsZW1lbnRzIFBvcnRsZXRBY3Rpb25Db25zdGFudHMgeworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBQb3J0bGV0Q29uZmlnIG9mIHRoZSBwb3J0bGV0IHRoYXQgaXMgZXhlY3V0aW5nLgorICAgICAqCisgICAgICogQHJldHVybiBUaGUgUG9ydGxldENvbmZpZyBvZiB0aGUgZXhlY3V0aW5nIHBvcnRsZXQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBQb3J0bGV0Q29uZmlnIGdldFBvcnRsZXRDb25maWcoKSB7CisgICAgICAgIHJldHVybiAoUG9ydGxldENvbmZpZykgZ2V0Q29udGV4dCgpLmdldChQT1JUTEVUX0NPTkZJRyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBSZW5kZXJSZXF1ZXN0LiBDYW4gb25seSBiZSBpbnZva2VkIGluIHRoZSByZW5kZXIgcGhhc2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IFJlbmRlclJlcXVlc3QuCisgICAgICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24gSWYgdGhlIG1ldGhvZCBpcyBpbnZva2VkIGluIHRoZSB3cm9uZyBwaGFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFJlbmRlclJlcXVlc3QgZ2V0UmVuZGVyUmVxdWVzdCgpIHsKKyAgICAgICAgaWYgKCFpc1JlbmRlcigpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAiUmVuZGVyUmVxdWVzdCBjYW5ub3QgYmUgb2J0YWluZWQgaW4gZXZlbnQgcGhhc2UiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKFJlbmRlclJlcXVlc3QpIGdldENvbnRleHQoKS5nZXQoUkVRVUVTVCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBSZW5kZXJSZXNwb25zZS4gQ2FuIG9ubHkgYmUgaW52b2tlZCBpbiB0aGUgcmVuZGVyIHBoYXNlLgorICAgICAqCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBSZW5kZXJSZXNwb25zZS4KKyAgICAgKiBAdGhyb3dzIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiBJZiB0aGUgbWV0aG9kIGlzIGludm9rZWQgaW4gdGhlIHdyb25nIHBoYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUmVuZGVyUmVzcG9uc2UgZ2V0UmVuZGVyUmVzcG9uc2UoKSB7CisgICAgICAgIGlmICghaXNSZW5kZXIoKSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgIlJlbmRlclJlc3BvbnNlIGNhbm5vdCBiZSBvYnRhaW5lZCBpbiBldmVudCBwaGFzZSIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoUmVuZGVyUmVzcG9uc2UpIGdldENvbnRleHQoKS5nZXQoUkVTUE9OU0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgQWN0aW9uUmVxdWVzdC4gQ2FuIG9ubHkgYmUgaW52b2tlZCBpbiB0aGUgZXZlbnQgcGhhc2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IEFjdGlvblJlcXVlc3QuCisgICAgICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24gSWYgdGhlIG1ldGhvZCBpcyBpbnZva2VkIGluIHRoZSB3cm9uZyBwaGFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEFjdGlvblJlcXVlc3QgZ2V0QWN0aW9uUmVxdWVzdCgpIHsKKyAgICAgICAgaWYgKCFpc0V2ZW50KCkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICJBY3Rpb25SZXF1ZXN0IGNhbm5vdCBiZSBvYnRhaW5lZCBpbiByZW5kZXIgcGhhc2UiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKEFjdGlvblJlcXVlc3QpIGdldENvbnRleHQoKS5nZXQoUkVRVUVTVCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBBY3Rpb25SZXF1ZXN0LiBDYW4gb25seSBiZSBpbnZva2VkIGluIHRoZSBldmVudCBwaGFzZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVGhlIGN1cnJlbnQgQWN0aW9uUmVxdWVzdC4KKyAgICAgKiBAdGhyb3dzIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiBJZiB0aGUgbWV0aG9kIGlzIGludm9rZWQgaW4gdGhlIHdyb25nIHBoYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQWN0aW9uUmVzcG9uc2UgZ2V0QWN0aW9uUmVzcG9uc2UoKSB7CisgICAgICAgIGlmICghaXNFdmVudCgpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAiQWN0aW9uUmVzcG9uc2UgY2Fubm90IGJlIG9idGFpbmVkIGluIHJlbmRlciBwaGFzZSIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoQWN0aW9uUmVzcG9uc2UpIGdldENvbnRleHQoKS5nZXQoUkVTUE9OU0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgYWN0aW9uIG5hbWVzcGFjZSBvZiB0aGUgcG9ydGxldC4gVXNlZCB0byBvcmdhbml6ZSBhY3Rpb25zIGZvciBtdWx0aXBsZSBwb3J0bGV0cyBpbgorICAgICAqIHRoZSBzYW1lIHBvcnRsZXQgYXBwbGljYXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBwb3J0bGV0IG5hbWVzcGFjZSBhcyBkZWZpbmVkIGluIDxjb2RlPnBvcnRsZXQueG1sPC9jb2RlPiBhbmQgPGNvZGU+c3RydXRzLnhtbDwvY29kZT4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBnZXRQb3J0bGV0TmFtZXNwYWNlKCkgeworICAgICAgICByZXR1cm4gKFN0cmluZylnZXRDb250ZXh0KCkuZ2V0KFBPUlRMRVRfTkFNRVNQQUNFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGN1cnJlbnQgUG9ydGxldFJlcXVlc3QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IFBvcnRsZXRSZXF1ZXN0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUG9ydGxldFJlcXVlc3QgZ2V0UmVxdWVzdCgpIHsKKyAgICAgICAgcmV0dXJuIChQb3J0bGV0UmVxdWVzdCkgZ2V0Q29udGV4dCgpLmdldChSRVFVRVNUKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugc2V0dGVyIGZvciB0aGUgcG9ydGxldCByZXF1ZXN0LgorICAgICAqIEBwYXJhbSByZXF1ZXN0CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldFJlcXVlc3QoUG9ydGxldFJlcXVlc3QgcmVxdWVzdCkgeworICAgIAlnZXRDb250ZXh0KCkucHV0KFJFUVVFU1QsIHJlcXVlc3QpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCBQb3J0bGV0UmVzcG9uc2UKKyAgICAgKgorICAgICAqIEByZXR1cm4gVGhlIGN1cnJlbnQgUG9ydGxldFJlc3BvbnNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgUG9ydGxldFJlc3BvbnNlIGdldFJlc3BvbnNlKCkgeworICAgICAgICByZXR1cm4gKFBvcnRsZXRSZXNwb25zZSkgZ2V0Q29udGV4dCgpLmdldChSRVNQT05TRSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIHNldHRlciBmb3IgdGhlIHBvcnRsZXQgcmVzcG9uc2UuCisgICAgICogQHBhcmFtIHJlc3BvbnNlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldFJlc3BvbnNlKFBvcnRsZXRSZXNwb25zZSByZXNwb25zZSkgeworICAgIAlnZXRDb250ZXh0KCkucHV0KFJFU1BPTlNFLCByZXNwb25zZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBwaGFzZSB0aGF0IHRoZSBwb3J0bGV0IGlzIGV4ZWN1dGluZyBpbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4ge0BsaW5rIFBvcnRsZXRBY3Rpb25Db25zdGFudHMjUkVOREVSX1BIQVNFfSBpbiByZW5kZXIgcGhhc2UsIGFuZAorICAgICAqIHtAbGluayBQb3J0bGV0QWN0aW9uQ29uc3RhbnRzI0VWRU5UX1BIQVNFfSBpbiB0aGUgZXZlbnQgcGhhc2UuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBJbnRlZ2VyIGdldFBoYXNlKCkgeworICAgICAgICByZXR1cm4gKEludGVnZXIpIGdldENvbnRleHQoKS5nZXQoUEhBU0UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIFBvcnRsZXQgaXMgZXhlY3V0aW5nIGluIHJlbmRlciBwaGFzZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNSZW5kZXIoKSB7CisgICAgICAgIHJldHVybiBQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlJFTkRFUl9QSEFTRS5lcXVhbHMoZ2V0UGhhc2UoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgUG9ydGxldCBpcyBleGVjdXRpbmcgaW4gdGhlIGV2ZW50IHBoYXNlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc0V2ZW50KCkgeworICAgICAgICByZXR1cm4gUG9ydGxldEFjdGlvbkNvbnN0YW50cy5FVkVOVF9QSEFTRS5lcXVhbHMoZ2V0UGhhc2UoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCBBY3Rpb25Db250ZXh0LgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIEFjdGlvbkNvbnRleHQgZ2V0Q29udGV4dCgpIHsKKyAgICAgICAgcmV0dXJuIEFjdGlvbkNvbnRleHQuZ2V0Q29udGV4dCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENoZWNrIHRvIHNlZSBpZiB0aGUgY3VycmVudCByZXF1ZXN0IGlzIGEgcG9ydGxldCByZXF1ZXN0LgorICAgICAqCisgICAgICogQHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgY3VycmVudCByZXF1ZXN0IGlzIGEgcG9ydGxldCByZXF1ZXN0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBpc1BvcnRsZXRSZXF1ZXN0KCkgeworICAgICAgICByZXR1cm4gZ2V0UmVxdWVzdCgpICE9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBkZWZhdWx0IGFjdGlvbiBtYXBwaW5nIGZvciB0aGUgY3VycmVudCBtb2RlLgorICAgICAqCisgICAgICogQHJldHVybiBUaGUgZGVmYXVsdCBhY3Rpb24gbWFwcGluZyBmb3IgdGhlIGN1cnJlbnQgcG9ydGxldCBtb2RlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQWN0aW9uTWFwcGluZyBnZXREZWZhdWx0QWN0aW9uRm9yTW9kZSgpIHsKKyAgICAgICAgcmV0dXJuIChBY3Rpb25NYXBwaW5nKWdldENvbnRleHQoKS5nZXQoREVGQVVMVF9BQ1RJT05fRk9SX01PREUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbmFtZXNwYWNlIHRvIG1vZGUgbWFwcGluZ3MuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBtYXAgb2YgdGhlIG5hbWVzcGFjZXMgZm9yIGVhY2ggbW9kZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE1hcCBnZXRNb2RlTmFtZXNwYWNlTWFwKCkgeworICAgICAgICByZXR1cm4gKE1hcClnZXRDb250ZXh0KCkuZ2V0KE1PREVfTkFNRVNQQUNFX01BUCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEdldCB0aGUgcG9ydGxldCBjb250ZXh0LgorICAgICAqIEByZXR1cm4gVGhlIHBvcnRsZXQgY29udGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFBvcnRsZXRDb250ZXh0IGdldFBvcnRsZXRDb250ZXh0KCkgeworICAgIAlyZXR1cm4gKFBvcnRsZXRDb250ZXh0KWdldENvbnRleHQoKS5nZXQoU3RydXRzU3RhdGljcy5TVFJVVFNfUE9SVExFVF9DT05URVhUKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2Ugc2V0dGVyIGZvciB0aGUgcG9ydGxldCBjb250ZXh0LgorICAgICAqIEBwYXJhbSBjb250ZXh0CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldFBvcnRsZXRDb250ZXh0KFBvcnRsZXRDb250ZXh0IGNvbnRleHQpIHsKKyAgICAJZ2V0Q29udGV4dCgpLnB1dChTdHJ1dHNTdGF0aWNzLlNUUlVUU19QT1JUTEVUX0NPTlRFWFQsIGNvbnRleHQpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBhY3Rpb24gbWFwcGluZyBmb3IgdGhpcyBjb250ZXh0CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBhY3Rpb24gbWFwcGluZworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQWN0aW9uTWFwcGluZyBnZXRBY3Rpb25NYXBwaW5nKCkgeworICAgICAgICByZXR1cm4gKEFjdGlvbk1hcHBpbmcpIGdldENvbnRleHQoKS5nZXQoQUNUSU9OX01BUFBJTkcpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvY29udGV4dC9QcmVwYXJhdG9yU2VydmxldC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvY29udGV4dC9QcmVwYXJhdG9yU2VydmxldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExODFlZjYKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9jb250ZXh0L1ByZXBhcmF0b3JTZXJ2bGV0LmphdmEKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5jb250ZXh0OworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnOworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQ7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuU3RydXRzU3RhdGljczsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnV0aWwubG9nZ2luZy5Mb2dnZXI7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIudXRpbC5sb2dnaW5nLkxvZ2dlckZhY3Rvcnk7CisKKy8qKgorICogQGRlcHJlY2F0ZWQKKyAqIAorICogVGhpcyBzZXJ2bGV0IGhhcyBiZWVuIGRlcHJlY2F0ZWQuIERvIG5vdCB1c2UgaXQgKFdXLTIxMDEpCisgKgorICovCitwdWJsaWMgY2xhc3MgUHJlcGFyYXRvclNlcnZsZXQgZXh0ZW5kcyBIdHRwU2VydmxldCBpbXBsZW1lbnRzIFN0cnV0c1N0YXRpY3MgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gMTg1MzM5OTcyOTM1Mjk4NDA4OUw7CisKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBMb2dnZXIgTE9HID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoUHJlcGFyYXRvclNlcnZsZXQuY2xhc3MpOworCisJQE92ZXJyaWRlCisJcHVibGljIHZvaWQgaW5pdChTZXJ2bGV0Q29uZmlnIGNvbmZpZykgdGhyb3dzIFNlcnZsZXRFeGNlcHRpb24geworICAgICAgICAgICAgaWYgKExPRy5pc1dhcm5FbmFibGVkKCkpIHsKKwkJTE9HLndhcm4oIlRoZSBwcmVwYXJhdG9yIHNlcnZsZXQgaGFzIGJlZW4gZGVwcmVjYXRlZC4gSXQgY2FuIHNhZmVseSBiZSByZW1vdmVkIGZyb20geW91ciB3ZWIueG1sIGZpbGUiKTsKKyAgICAgICAgICAgIH0KKwl9CisKK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2NvbnRleHQvU2VydmxldENvbnRleHRIb2xkZXJMaXN0ZW5lci5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvY29udGV4dC9TZXJ2bGV0Q29udGV4dEhvbGRlckxpc3RlbmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFiNDI3NQotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2NvbnRleHQvU2VydmxldENvbnRleHRIb2xkZXJMaXN0ZW5lci5qYXZhCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuY29udGV4dDsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dEV2ZW50OworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHRMaXN0ZW5lcjsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnV0aWwubG9nZ2luZy5Mb2dnZXI7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIudXRpbC5sb2dnaW5nLkxvZ2dlckZhY3Rvcnk7CisKKy8qKgorICogQGRlcHJlY2F0ZWQKKyAqIAorICogVGhpcyBsaXN0ZW5lciBoYXMgYmVlbiBkZXByZWNhdGVkLiBEbyBub3QgdXNlIGl0LiAoV1ctMjEwMSkKKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBTZXJ2bGV0Q29udGV4dEhvbGRlckxpc3RlbmVyIGltcGxlbWVudHMgU2VydmxldENvbnRleHRMaXN0ZW5lciB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBTZXJ2bGV0Q29udGV4dCBjb250ZXh0ID0gbnVsbDsKKyAgICAKKyAgICBwcml2YXRlIGZpbmFsIHN0YXRpYyBMb2dnZXIgTE9HID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoU2VydmxldENvbnRleHRIb2xkZXJMaXN0ZW5lci5jbGFzcyk7CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IHNlcnZsZXQgY29udGV4dAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU2VydmxldENvbnRleHQgZ2V0U2VydmxldENvbnRleHQoKSB7CisgICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFN0b3JlcyB0aGUgcmVmZXJlbmNlIHRvIHRoZSB7QGxpbmsgU2VydmxldENvbnRleHR9LgorICAgICAqCisgICAgICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0TGlzdGVuZXIjY29udGV4dEluaXRpYWxpemVkKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHRFdmVudCkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb250ZXh0SW5pdGlhbGl6ZWQoU2VydmxldENvbnRleHRFdmVudCBldmVudCkgeworICAgICAgICBpZiAoTE9HLmlzV2FybkVuYWJsZWQoKSkgeworICAgIAkJTE9HLndhcm4oIlRoZSBTZXJ2bGV0Q29udGV4dEhvbGRlckxpc3RlbmVyIGhhcyBiZWVuIGRlcHJlY2F0ZWQuIEl0IGNhbiBzYWZlbHkgYmUgcmVtb3ZlZCBmcm9tIHlvdXIgd2ViLnhtbCBmaWxlIik7CisgICAgICAgIH0KKyAgICAgICAgY29udGV4dCA9IGV2ZW50LmdldFNlcnZsZXRDb250ZXh0KCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0TGlzdGVuZXIjY29udGV4dERlc3Ryb3llZChqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0RXZlbnQpCisgICAgICovCisgICAgcHVibGljIHZvaWQgY29udGV4dERlc3Ryb3llZChTZXJ2bGV0Q29udGV4dEV2ZW50IGV2ZW50KSB7CisgICAgICAgIGNvbnRleHQgPSBudWxsOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvZGlzcGF0Y2hlci9EaXJlY3RSZW5kZXJGcm9tRXZlbnRBY3Rpb24uamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2Rpc3BhdGNoZXIvRGlyZWN0UmVuZGVyRnJvbUV2ZW50QWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWUyYWM2YwotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2Rpc3BhdGNoZXIvRGlyZWN0UmVuZGVyRnJvbUV2ZW50QWN0aW9uLmphdmEKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5kaXNwYXRjaGVyOworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uOworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5pbnRlcmNlcHRvci5TZXNzaW9uQXdhcmU7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuUG9ydGxldEFjdGlvbkNvbnN0YW50czsKKworLyoqCisgKiBXaGVuIGEgcG9ydGxldCBpcyB0YXJnZXR0ZWQgZm9yIGFuIDxjb2RlPmV2ZW50PC9jb2RlPiwgdGhlIHBvcnRsZXQgd2lsbCByZWNlaXZlIHR3bworICogcG9ydGxldCByZXF1ZXN0cywgb25lIGZvciB0aGUgPGNvZGU+ZXZlbnQ8L2NvZGU+IHBoYXNlLCBhbmQgdGhlbiBmb2xsb3dlZCBieSBhIDxjb2RlPnJlbmRlcjwvY29kZT4KKyAqIG9wZXJhdGlvbi4gV2hlbiBpbiB0aGUgPGNvZGU+ZXZlbnQ8L2NvZGU+IHBoYXNlLCB0aGUgYWN0aW9uIHRoYXQgaXMgZXhlY3V0ZWQgY2FuJ3QgcmVuZGVyCisgKiBhbnkgb3V0cHV0LiBUaGlzIG1lYW5zIHRoYXQgaWYgYW4gYWN0aW9uIGluIHRoZSBYV29yayBjb25maWd1cmF0aW9uIGlzIGV4ZWN1dGVkIGluIHRoZSBldmVudAorICogcGhhc2UsIGFuZCB0aGUgYWN0aW9uIGlzIHNldCB1cCB3aXRoIGEgcmVzdWx0IHRoYXQgc2hvdWxkIHJlbmRlciBzb21ldGhpbmcsIHRoZSByZXN1bHQgY2FuJ3QKKyAqIGltbWVkaWF0ZWx5IGJlIGV4ZWN1dGVkLiBUaGUgcG9ydGxldCBuZWVkcyB0byAid2FpdCIgdG8gdGhlIHJlbmRlciBwaGFzZSB0byBkbyB0aGUKKyAqIHJlbmRlcmluZy4KKyAqIDxwLz4KKyAqIFdoZW4gdGhlIHtAbGluayBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5yZXN1bHQuUG9ydGxldFJlc3VsdH0gZGV0ZWN0cyBzdWNoIGEKKyAqIHNjZW5hcmlvLCBpbnN0ZWFkIG9mIGV4ZWN1dGluZyB0aGUgYWN0dWFsIHZpZXcsIGl0IHByZXBhcmVzIGEgY291cGxlIG9mIHJlbmRlciBwYXJhbWV0ZXJzCisgKiBzcGVjaWZ5aW5nIHRoaXMgYWN0aW9uIGFuZCB0aGUgbG9jYXRpb24gb2YgdGhlIHZpZXcsIHdoaWNoIHRoZW4gd2lsbCBiZSBleGVjdXRlZCBpbiB0aGUKKyAqIGZvbGxvd2luZyByZW5kZXIgcmVxdWVzdC4KKyAqLworcHVibGljIGNsYXNzIERpcmVjdFJlbmRlckZyb21FdmVudEFjdGlvbiBpbXBsZW1lbnRzIFNlc3Npb25Bd2FyZSwgUG9ydGxldEFjdGlvbkNvbnN0YW50cywgQWN0aW9uLCBTZXJpYWxpemFibGUgeworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTE4MTQ4MDc3NzIzMDg0MDU3ODVMOworCisgICAgcHJpdmF0ZSBTdHJpbmcgbG9jYXRpb24gPSBudWxsOworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBsb2NhdGlvbiBvZiB0aGUgdmlldy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gUmV0dXJucyB0aGUgbG9jYXRpb24uCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRMb2NhdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGxvY2F0aW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFsd2F5cyByZXR1cm4gc3VjY2Vzcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU1VDQ0VTUworICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICByZXR1cm4gU1VDQ0VTUzsKKyAgICB9CisKKwlwdWJsaWMgdm9pZCBzZXRTZXNzaW9uKE1hcCBzZXNzaW9uKSB7CisJCWxvY2F0aW9uID0gKFN0cmluZylzZXNzaW9uLmdldChSRU5ERVJfRElSRUNUX0xPQ0FUSU9OKTsKKwl9Cit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9kaXNwYXRjaGVyL0Rpc3BhdGNoZXJTZXJ2bGV0LmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9kaXNwYXRjaGVyL0Rpc3BhdGNoZXJTZXJ2bGV0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjlhNzdlNQotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2Rpc3BhdGNoZXIvRGlzcGF0Y2hlclNlcnZsZXQuamF2YQpAQCAtMCwwICsxLDU2IEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LmRpc3BhdGNoZXI7CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubGFuZy5TdHJpbmdVdGlsczsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5TdHJ1dHNSZXF1ZXN0V3JhcHBlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5Qb3J0bGV0QWN0aW9uQ29uc3RhbnRzOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK3B1YmxpYyBjbGFzcyBEaXNwYXRjaGVyU2VydmxldCBleHRlbmRzIEh0dHBTZXJ2bGV0IGltcGxlbWVudHMgUG9ydGxldEFjdGlvbkNvbnN0YW50cyB7CisKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtMjY2MTQ3MDMzNjQ1OTUxOTY3TDsKKworCUBPdmVycmlkZQorCXByb3RlY3RlZCB2b2lkIGRvR2V0KEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKSB0aHJvd3MgU2VydmxldEV4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworCQlTdHJpbmcgZGlzcGF0Y2hUbyA9IChTdHJpbmcpIHJlcXVlc3QuZ2V0QXR0cmlidXRlKERJU1BBVENIX1RPKTsKKwkJSHR0cFNlcnZsZXRSZXF1ZXN0IHdyYXBwZXIgPSB3cmFwUmVxdWVzdElmTmVjZXNzYXJ5KHJlcXVlc3QpOworCQlpZihTdHJpbmdVdGlscy5pc05vdEVtcHR5KGRpc3BhdGNoVG8pKSB7CisJCQlyZXF1ZXN0LmdldFJlcXVlc3REaXNwYXRjaGVyKGRpc3BhdGNoVG8pLmluY2x1ZGUod3JhcHBlciwgcmVzcG9uc2UpOworCQl9CisJfQorCisJcHJpdmF0ZSBIdHRwU2VydmxldFJlcXVlc3Qgd3JhcFJlcXVlc3RJZk5lY2Vzc2FyeShIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCkgeworCQlpZighKHJlcXVlc3QgaW5zdGFuY2VvZiBTdHJ1dHNSZXF1ZXN0V3JhcHBlcikpIHsKKwkJCXJldHVybiBuZXcgU3RydXRzUmVxdWVzdFdyYXBwZXIocmVxdWVzdCk7CisJCX0KKwkJZWxzZSB7CisJCQlyZXR1cm4gcmVxdWVzdDsKKwkJfQorCX0KKworfQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvZGlzcGF0Y2hlci9Kc3IxNjhEaXNwYXRjaGVyLmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9kaXNwYXRjaGVyL0pzcjE2OERpc3BhdGNoZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTFiYTRhCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvZGlzcGF0Y2hlci9Kc3IxNjhEaXNwYXRjaGVyLmphdmEKQEAgLTAsMCArMSw2MjggQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuZGlzcGF0Y2hlcjsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitpbXBvcnQgamF2YXgucG9ydGxldC5BY3Rpb25SZXF1ZXN0OworaW1wb3J0IGphdmF4LnBvcnRsZXQuQWN0aW9uUmVzcG9uc2U7CitpbXBvcnQgamF2YXgucG9ydGxldC5HZW5lcmljUG9ydGxldDsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRDb25maWc7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0RXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldE1vZGU7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRSZXNwb25zZTsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlJlbmRlclJlcXVlc3Q7CitpbXBvcnQgamF2YXgucG9ydGxldC5SZW5kZXJSZXNwb25zZTsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LldpbmRvd1N0YXRlOworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5TdHJ1dHNDb25zdGFudHM7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLlN0cnV0c0V4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuU3RydXRzU3RhdGljczsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5BcHBsaWNhdGlvbk1hcDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5EaXNwYXRjaGVyOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5kaXNwYXRjaGVyLlJlcXVlc3RNYXA7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuU2Vzc2lvbk1hcDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5tYXBwZXIuQWN0aW9uTWFwcGVyOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5kaXNwYXRjaGVyLm1hcHBlci5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5kaXNwYXRjaGVyLm11bHRpcGFydC5NdWx0aVBhcnRSZXF1ZXN0V3JhcHBlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5Qb3J0bGV0QWN0aW9uQ29uc3RhbnRzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LlBvcnRsZXRBcHBsaWNhdGlvbk1hcDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5Qb3J0bGV0UmVxdWVzdE1hcDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5Qb3J0bGV0U2Vzc2lvbk1hcDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5jb250ZXh0LlBvcnRsZXRBY3Rpb25Db250ZXh0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LnNlcnZsZXQuUG9ydGxldFNlcnZsZXRDb250ZXh0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LnNlcnZsZXQuUG9ydGxldFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LnNlcnZsZXQuUG9ydGxldFNlcnZsZXRSZXNwb25zZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIudXRpbC5BdHRyaWJ1dGVNYXA7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxhbmcuU3RyaW5nVXRpbHM7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25Db250ZXh0OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvblByb3h5OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvblByb3h5RmFjdG9yeTsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5jb25maWcuQ29uZmlndXJhdGlvbkV4Y2VwdGlvbjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5pbmplY3QuQ29udGFpbmVyOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnV0aWwuRmlsZU1hbmFnZXI7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIudXRpbC5Mb2NhbGl6ZWRUZXh0VXRpbDsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi51dGlsLmxvZ2dpbmcuTG9nZ2VyOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnV0aWwubG9nZ2luZy5Mb2dnZXJGYWN0b3J5OworCisvKioKKyAqIDwhLS0gU1RBUlQgU05JUFBFVDogamF2YWRvYyAtLT4KKyAqIDxwPgorICogU3RydXRzIEpTUi0xNjggcG9ydGxldCBkaXNwYXRjaGVyLiBTaW1pbGFyIHRvIHRoZSBXVzIgU2VydmxldCBkaXNwYXRjaGVyLAorICogYnV0IGFkanVzdGVkIHRvIGEgcG9ydGFsIGVudmlyb25tZW50LiBUaGUgcG9ydGxldCBpcyBjb25maWd1cmVkIHRocm91Z2ggdGhlIDx0dD5wb3J0bGV0LnhtbDwvdHQ+CisgKiBkZXNjcmlwdG9yLiBFeGFtcGxlcyBhbmQgZGVzY3JpcHRpb25zIGZvbGxvdyBiZWxvdzoKKyAqIDwvcD4KKyAqIDwhLS0gRU5EIFNOSVBQRVQ6IGphdmFkb2MgLS0+CisgKgorICogQGF1dGhvciBOaWxzLUhlbGdlIEdhcmxpCisgKiBAYXV0aG9yIFJhaW5lciBIZXJtYW5ucworICoKKyAqIDxwPjxiPkluaXQgcGFyYW1ldGVyczwvYj48L3A+CisgKiA8IS0tIFNUQVJUIFNOSVBQRVQ6IHBhcmFtcyAtLT4KKyAqIDx0YWJsZSBjbGFzcz0iY29uZmx1ZW5jZVRhYmxlIj4KKyAqIDx0cj4KKyAqICA8dGggY2xhc3M9ImNvbmZsdWVuY2VUaCI+TmFtZTwvdGg+CisgKiA8dGggY2xhc3M9ImNvbmZsdWVuY2VUaCI+RGVzY3JpcHRpb248L3RoPgorICogPHRoIGNsYXNzPSJjb25mbHVlbmNlVGgiPkRlZmF1bHQgdmFsdWU8L3RoPgorICogPC90cj4KKyAqIDx0cj4KKyAqICA8dGQgY2xhc3M9ImNvbmZsdWVuY2VUZCI+cG9ydGxldE5hbWVzcGFjZTwvdGQ+PHRkIGNsYXNzPSJjb25mbHVlbmNlVGQiPlRoZSBuYW1lc3BhY2UgZm9yIHRoZSBwb3J0bGV0IGluIHRoZSB4d29yayBjb25maWd1cmF0aW9uLiBUaGlzCisgKiAgICAgIG5hbWVzcGFjZSBpcyBwcmVwZW5kZWQgdG8gYWxsIGFjdGlvbiBsb29rdXBzLCBhbmQgbWFrZXMgaXQgcG9zc2libGUgdG8gaG9zdCBtdWx0aXBsZQorICogICAgICBwb3J0bGV0cyBpbiB0aGUgc2FtZSBwb3J0bGV0IGFwcGxpY2F0aW9uLiBJZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQsIHRoZSBjb21wbGV0ZSBuYW1lc3BhY2UKKyAqICAgICAgd2lsbCBiZSA8dHQ+L3BvcnRsZXROYW1lc3BhY2UvbW9kZU5hbWVzcGFjZS9hY3Rpb25OYW1lPC90dD48L3RkPjx0ZCBjbGFzcz0iY29uZmx1ZW5jZVRkIj5UaGUgZGVmYXVsdCBuYW1lc3BhY2U8L3RkPgorICogPC90cj4KKyAqIDx0cj4KKyAqICA8dGQgY2xhc3M9ImNvbmZsdWVuY2VUZCI+dmlld05hbWVzcGFjZTwvdGQ+PHRkIGNsYXNzPSJjb25mbHVlbmNlVGQiPkJhc2UgbmFtZXNwYWNlIGluIHRoZSB4d29yayBjb25maWd1cmF0aW9uIGZvciB0aGUgPHR0PnZpZXc8L3R0PiBwb3J0bGV0CisgKiAgICAgIG1vZGU8L3RkPjx0ZCBjbGFzcz0iY29uZmx1ZW5jZVRkIj5UaGUgZGVmYXVsdCBuYW1lc3BhY2U8L3RkPgorICogPC90cj4KKyAqIDx0cj4KKyAqICA8dGQgY2xhc3M9ImNvbmZsdWVuY2VUZCI+ZWRpdE5hbWVzcGFjZTwvdGQ+PHRkIGNsYXNzPSJjb25mbHVlbmNlVGQiPkJhc2UgbmFtZXNwYWNlIGluIHRoZSB4d29yayBjb25maWd1cmF0aW9uIGZvciB0aGUgPHR0PmVkaXQ8L3R0PiBwb3J0bGV0CisgKiAgICAgIG1vZGU8L3RkPjx0ZCBjbGFzcz0iY29uZmx1ZW5jZVRkIj5UaGUgZGVmYXVsdCBuYW1lc3BhY2U8L3RkPgorICogPC90cj4KKyAqIDx0cj4KKyAqICA8dGQgY2xhc3M9ImNvbmZsdWVuY2VUZCI+aGVscE5hbWVzcGFjZTwvdGQ+PHRkIGNsYXNzPSJjb25mbHVlbmNlVGQiPkJhc2UgbmFtZXNwYWNlIGluIHRoZSB4d29yayBjb25maWd1cmF0aW9uIGZvciB0aGUgPHR0PmhlbHA8L3R0PiBwb3J0bGV0CisgKiAgICAgIG1vZGU8L3RkPjx0ZCBjbGFzcz0iY29uZmx1ZW5jZVRkIj5UaGUgZGVmYXVsdCBuYW1lc3BhY2U8L3RkPgorICogPC90cj4KKyAqIDx0cj4KKyAqICA8dGQgY2xhc3M9ImNvbmZsdWVuY2VUZCI+ZGVmYXVsdFZpZXdBY3Rpb248L3RkPjx0ZCBjbGFzcz0iY29uZmx1ZW5jZVRkIj5EZWZhdWx0IGFjdGlvbiB0byBpbnZva2UgaW4gdGhlIDx0dD52aWV3PC90dD4gcG9ydGxldCBtb2RlIGlmIG5vIGFjdGlvbiBpcworICogICAgICBzcGVjaWZpZWQ8L3RkPjx0ZCBjbGFzcz0iY29uZmx1ZW5jZVRkIj48dHQ+ZGVmYXVsdDwvdHQ+PC90ZD4KKyAqIDwvdHI+CisgKiA8dHI+CisgKiAgPHRkIGNsYXNzPSJjb25mbHVlbmNlVGQiPmRlZmF1bHRFZGl0QWN0aW9uPC90ZD48dGQgY2xhc3M9ImNvbmZsdWVuY2VUZCI+RGVmYXVsdCBhY3Rpb24gdG8gaW52b2tlIGluIHRoZSA8dHQ+ZWRpdDwvdHQ+IHBvcnRsZXQgbW9kZSBpZiBubyBhY3Rpb24gaXMKKyAqICAgICAgc3BlY2lmaWVkPC90ZD48dGQgY2xhc3M9ImNvbmZsdWVuY2VUZCI+PHR0PmRlZmF1bHQ8L3R0PjwvdGQ+CisgKiA8L3RyPgorICogPHRyPgorICogIDx0ZCBjbGFzcz0iY29uZmx1ZW5jZVRkIj5kZWZhdWx0SGVscEFjdGlvbjwvdGQ+PHRkIGNsYXNzPSJjb25mbHVlbmNlVGQiPkRlZmF1bHQgYWN0aW9uIHRvIGludm9rZSBpbiB0aGUgPHR0PmhlbHA8L3R0PiBwb3J0bGV0IG1vZGUgaWYgbm8gYWN0aW9uIGlzCisgKiAgICAgIHNwZWNpZmllZDwvdGQ+PHRkIGNsYXNzPSJjb25mbHVlbmNlVGQiPjx0dD5kZWZhdWx0PC90dD48L3RkPgorICogPC90cj4KKyAqIDwvdGFibGU+CisgKiA8IS0tIEVORCBTTklQUEVUOiBwYXJhbXMgLS0+CisgKiA8cD48Yj5FeGFtcGxlOjwvYj48L3A+CisgKiA8cHJlPgorICogPCEtLSBTVEFSVCBTTklQUEVUOiBleGFtcGxlIC0tPgorICoKKyAqICZsdDtpbml0LXBhcmFtJmd0OworICogICAgICZsdDshLS0gVGhlIHZpZXcgbW9kZSBuYW1lc3BhY2UuIE1hcHMgdG8gYSBuYW1lc3BhY2UgaW4gdGhlIHh3b3JrIGNvbmZpZyBmaWxlIC0tJmd0OworICogICAgICZsdDtuYW1lJmd0O3ZpZXdOYW1lc3BhY2UmbHQ7L25hbWUmZ3Q7CisgKiAgICAgJmx0O3ZhbHVlJmd0Oy92aWV3Jmx0Oy92YWx1ZSZndDsKKyAqICZsdDsvaW5pdC1wYXJhbSZndDsKKyAqICZsdDtpbml0LXBhcmFtJmd0OworICogICAgJmx0OyEtLSBUaGUgZGVmYXVsdCBhY3Rpb24gdG8gaW52b2tlIGluIHZpZXcgbW9kZSAtLSZndDsKKyAqICAgICZsdDtuYW1lJmd0O2RlZmF1bHRWaWV3QWN0aW9uJmx0Oy9uYW1lJmd0OworICogICAgJmx0O3ZhbHVlJmd0O2luZGV4Jmx0Oy92YWx1ZSZndDsKKyAqICZsdDsvaW5pdC1wYXJhbSZndDsKKyAqICZsdDtpbml0LXBhcmFtJmd0OworICogICAgICZsdDshLS0gVGhlIHZpZXcgbW9kZSBuYW1lc3BhY2UuIE1hcHMgdG8gYSBuYW1lc3BhY2UgaW4gdGhlIHh3b3JrIGNvbmZpZyBmaWxlIC0tJmd0OworICogICAgICZsdDtuYW1lJmd0O2VkaXROYW1lc3BhY2UmbHQ7L25hbWUmZ3Q7CisgKiAgICAgJmx0O3ZhbHVlJmd0Oy9lZGl0Jmx0Oy92YWx1ZSZndDsKKyAqICZsdDsvaW5pdC1wYXJhbSZndDsKKyAqICZsdDtpbml0LXBhcmFtJmd0OworICogICAgICZsdDshLS0gVGhlIGRlZmF1bHQgYWN0aW9uIHRvIGludm9rZSBpbiB2aWV3IG1vZGUgLS0mZ3Q7CisgKiAgICAgJmx0O25hbWUmZ3Q7ZGVmYXVsdEVkaXRBY3Rpb24mbHQ7L25hbWUmZ3Q7CisgKiAgICAgJmx0O3ZhbHVlJmd0O2luZGV4Jmx0Oy92YWx1ZSZndDsKKyAqICZsdDsvaW5pdC1wYXJhbSZndDsKKyAqICZsdDtpbml0LXBhcmFtJmd0OworICogICAgICZsdDshLS0gVGhlIHZpZXcgbW9kZSBuYW1lc3BhY2UuIE1hcHMgdG8gYSBuYW1lc3BhY2UgaW4gdGhlIHh3b3JrIGNvbmZpZyBmaWxlIC0tJmd0OworICogICAgICZsdDtuYW1lJmd0O2hlbHBOYW1lc3BhY2UmbHQ7L25hbWUmZ3Q7CisgKiAgICAgJmx0O3ZhbHVlJmd0Oy9oZWxwJmx0Oy92YWx1ZSZndDsKKyAqICZsdDsvaW5pdC1wYXJhbSZndDsKKyAqICZsdDtpbml0LXBhcmFtJmd0OworICogICAgICZsdDshLS0gVGhlIGRlZmF1bHQgYWN0aW9uIHRvIGludm9rZSBpbiB2aWV3IG1vZGUgLS0mZ3Q7CisgKiAgICAgJmx0O25hbWUmZ3Q7ZGVmYXVsdEhlbHBBY3Rpb24mbHQ7L25hbWUmZ3Q7CisgKiAgICAgJmx0O3ZhbHVlJmd0O2luZGV4Jmx0Oy92YWx1ZSZndDsKKyAqICZsdDsvaW5pdC1wYXJhbSZndDsKKyAqCisgKiA8IS0tIEVORCBTTklQUEVUOiBleGFtcGxlIC0tPgorICogPC9wcmU+CisgKi8KK3B1YmxpYyBjbGFzcyBKc3IxNjhEaXNwYXRjaGVyIGV4dGVuZHMgR2VuZXJpY1BvcnRsZXQgaW1wbGVtZW50cyBTdHJ1dHNTdGF0aWNzLAorICAgICAgICBQb3J0bGV0QWN0aW9uQ29uc3RhbnRzIHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvZ2dlciBMT0cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcihKc3IxNjhEaXNwYXRjaGVyLmNsYXNzKTsKKworICAgIHByaXZhdGUgQWN0aW9uUHJveHlGYWN0b3J5IGZhY3RvcnkgPSBudWxsOworCisgICAgcHJpdmF0ZSBNYXA8UG9ydGxldE1vZGUsU3RyaW5nPiBtb2RlTWFwID0gbmV3IEhhc2hNYXA8UG9ydGxldE1vZGUsU3RyaW5nPigzKTsKKworICAgIHByaXZhdGUgTWFwPFBvcnRsZXRNb2RlLEFjdGlvbk1hcHBpbmc+IGFjdGlvbk1hcCA9IG5ldyBIYXNoTWFwPFBvcnRsZXRNb2RlLEFjdGlvbk1hcHBpbmc+KDMpOworCisgICAgcHJpdmF0ZSBTdHJpbmcgcG9ydGxldE5hbWVzcGFjZSA9IG51bGw7CisKKyAgICBwcml2YXRlIERpc3BhdGNoZXIgZGlzcGF0Y2hlclV0aWxzOworICAgIAorICAgIHByaXZhdGUgQWN0aW9uTWFwcGVyIGFjdGlvbk1hcHBlcjsKKyAgICAKKyAgICBwcml2YXRlIENvbnRhaW5lciBjb250YWluZXI7CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHRoZSBwb3J0bGV0IHdpdGggdGhlIGluaXQgcGFyYW1ldGVycyBmcm9tIDx0dD5wb3J0bGV0LnhtbDwvdHQ+CisgICAgICovCisgICAgcHVibGljIHZvaWQgaW5pdChQb3J0bGV0Q29uZmlnIGNmZykgdGhyb3dzIFBvcnRsZXRFeGNlcHRpb24geworICAgICAgICBzdXBlci5pbml0KGNmZyk7CisgICAgICAgIGlmIChMT0cuaXNEZWJ1Z0VuYWJsZWQoKSkgTE9HLmRlYnVnKCJJbml0aWFsaXppbmcgcG9ydGxldCAiICsgZ2V0UG9ydGxldE5hbWUoKSk7CisgICAgICAgIAorICAgICAgICBNYXA8U3RyaW5nLFN0cmluZz4gcGFyYW1zID0gbmV3IEhhc2hNYXA8U3RyaW5nLFN0cmluZz4oKTsKKyAgICAgICAgZm9yIChFbnVtZXJhdGlvbiBlID0gY2ZnLmdldEluaXRQYXJhbWV0ZXJOYW1lcygpOyBlLmhhc01vcmVFbGVtZW50cygpOyApIHsKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gKFN0cmluZykgZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gY2ZnLmdldEluaXRQYXJhbWV0ZXIobmFtZSk7CisgICAgICAgICAgICBwYXJhbXMucHV0KG5hbWUsIHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZGlzcGF0Y2hlclV0aWxzID0gbmV3IERpc3BhdGNoZXIobmV3IFBvcnRsZXRTZXJ2bGV0Q29udGV4dChjZmcuZ2V0UG9ydGxldENvbnRleHQoKSksIHBhcmFtcyk7CisgICAgICAgIGRpc3BhdGNoZXJVdGlscy5pbml0KCk7CisgICAgICAgIAorICAgICAgICAvLyBGb3IgdGVzdGFiaWxpdHkKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgZmFjdG9yeSA9IGRpc3BhdGNoZXJVdGlscy5nZXRDb25maWd1cmF0aW9uTWFuYWdlcigpLmdldENvbmZpZ3VyYXRpb24oKS5nZXRDb250YWluZXIoKS5nZXRJbnN0YW5jZShBY3Rpb25Qcm94eUZhY3RvcnkuY2xhc3MpOworICAgICAgICB9CisgICAgICAgIHBvcnRsZXROYW1lc3BhY2UgPSBjZmcuZ2V0SW5pdFBhcmFtZXRlcigicG9ydGxldE5hbWVzcGFjZSIpOworICAgICAgICBpZiAoTE9HLmlzRGVidWdFbmFibGVkKCkpIExPRy5kZWJ1ZygiUG9ydGxldE5hbWVzcGFjZTogIiArIHBvcnRsZXROYW1lc3BhY2UpOworICAgICAgICBwYXJzZU1vZGVDb25maWcoYWN0aW9uTWFwLCBjZmcsIFBvcnRsZXRNb2RlLlZJRVcsICJ2aWV3TmFtZXNwYWNlIiwKKyAgICAgICAgICAgICAgICAiZGVmYXVsdFZpZXdBY3Rpb24iKTsKKyAgICAgICAgcGFyc2VNb2RlQ29uZmlnKGFjdGlvbk1hcCwgY2ZnLCBQb3J0bGV0TW9kZS5FRElULCAiZWRpdE5hbWVzcGFjZSIsCisgICAgICAgICAgICAgICAgImRlZmF1bHRFZGl0QWN0aW9uIik7CisgICAgICAgIHBhcnNlTW9kZUNvbmZpZyhhY3Rpb25NYXAsIGNmZywgUG9ydGxldE1vZGUuSEVMUCwgImhlbHBOYW1lc3BhY2UiLAorICAgICAgICAgICAgICAgICJkZWZhdWx0SGVscEFjdGlvbiIpOworICAgICAgICBwYXJzZU1vZGVDb25maWcoYWN0aW9uTWFwLCBjZmcsIG5ldyBQb3J0bGV0TW9kZSgiY29uZmlnIiksICJjb25maWdOYW1lc3BhY2UiLAorICAgICAgICAgICAgICAgICJkZWZhdWx0Q29uZmlnQWN0aW9uIik7CisgICAgICAgIHBhcnNlTW9kZUNvbmZpZyhhY3Rpb25NYXAsIGNmZywgbmV3IFBvcnRsZXRNb2RlKCJhYm91dCIpLCAiYWJvdXROYW1lc3BhY2UiLAorICAgICAgICAgICAgICAgICJkZWZhdWx0QWJvdXRBY3Rpb24iKTsKKyAgICAgICAgcGFyc2VNb2RlQ29uZmlnKGFjdGlvbk1hcCwgY2ZnLCBuZXcgUG9ydGxldE1vZGUoInByaW50IiksICJwcmludE5hbWVzcGFjZSIsCisgICAgICAgICAgICAgICAgImRlZmF1bHRQcmludEFjdGlvbiIpOworICAgICAgICBwYXJzZU1vZGVDb25maWcoYWN0aW9uTWFwLCBjZmcsIG5ldyBQb3J0bGV0TW9kZSgicHJldmlldyIpLCAicHJldmlld05hbWVzcGFjZSIsCisgICAgICAgICAgICAgICAgImRlZmF1bHRQcmV2aWV3QWN0aW9uIik7CisgICAgICAgIHBhcnNlTW9kZUNvbmZpZyhhY3Rpb25NYXAsIGNmZywgbmV3IFBvcnRsZXRNb2RlKCJlZGl0X2RlZmF1bHRzIiksCisgICAgICAgICAgICAgICAgImVkaXREZWZhdWx0c05hbWVzcGFjZSIsICJkZWZhdWx0RWRpdERlZmF1bHRzQWN0aW9uIik7CisgICAgICAgIGlmIChTdHJpbmdVdGlscy5pc0VtcHR5KHBvcnRsZXROYW1lc3BhY2UpKSB7CisgICAgICAgICAgICBwb3J0bGV0TmFtZXNwYWNlID0gIiI7CisgICAgICAgIH0KKyAgICAgICAgTG9jYWxpemVkVGV4dFV0aWwKKyAgICAgICAgICAgICAgICAuYWRkRGVmYXVsdFJlc291cmNlQnVuZGxlKCJvcmcvYXBhY2hlL3N0cnV0czIvc3RydXRzLW1lc3NhZ2VzIik7CisKKyAgICAgICAgY29udGFpbmVyID0gZGlzcGF0Y2hlclV0aWxzLmdldENvbnRhaW5lcigpOworICAgICAgICAvL2NoZWNrIGZvciBjb25maWd1cmF0aW9uIHJlbG9hZGluZworICAgICAgICBpZiAoInRydWUiLmVxdWFsc0lnbm9yZUNhc2UoY29udGFpbmVyLmdldEluc3RhbmNlKFN0cmluZy5jbGFzcywgU3RydXRzQ29uc3RhbnRzLlNUUlVUU19DT05GSUdVUkFUSU9OX1hNTF9SRUxPQUQpKSkgeworICAgICAgICAgICAgRmlsZU1hbmFnZXIuc2V0UmVsb2FkaW5nQ29uZmlncyh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgYWN0aW9uTWFwcGVyID0gY29udGFpbmVyLmdldEluc3RhbmNlKEFjdGlvbk1hcHBlci5jbGFzcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgdGhlIG1vZGUgdG8gbmFtZXNwYWNlIG1hcHBpbmdzIGNvbmZpZ3VyZWQgaW4gcG9ydGxldC54bWwKKyAgICAgKiBAcGFyYW0gYWN0aW9uTWFwIFRoZSBtYXAgd2l0aCBtb2RlIDwtPiBkZWZhdWx0IGFjdGlvbiBtYXBwaW5nLgorICAgICAqIEBwYXJhbSBwb3J0bGV0Q29uZmlnIFRoZSBQb3J0bGV0Q29uZmlnLgorICAgICAqIEBwYXJhbSBwb3J0bGV0TW9kZSBUaGUgUG9ydGxldE1vZGUuCisgICAgICogQHBhcmFtIG5hbWVTcGFjZVBhcmFtIE5hbWUgb2YgdGhlIGluaXQgcGFyYW1ldGVyIHdoZXJlIHRoZSBuYW1lc3BhY2UgZm9yIHRoZSBtb2RlCisgICAgICogaXMgY29uZmlndXJlZC4KKyAgICAgKiBAcGFyYW0gZGVmYXVsdEFjdGlvblBhcmFtIE5hbWUgb2YgdGhlIGluaXQgcGFyYW1ldGVyIHdoZXJlIHRoZSBkZWZhdWx0IGFjdGlvbiB0bworICAgICAqIGV4ZWN1dGUgZm9yIHRoZSBtb2RlIGlzIGNvbmZpZ3VyZWQuCisgICAgICovCisgICAgdm9pZCBwYXJzZU1vZGVDb25maWcoTWFwPFBvcnRsZXRNb2RlLCBBY3Rpb25NYXBwaW5nPiBhY3Rpb25NYXAsIFBvcnRsZXRDb25maWcgcG9ydGxldENvbmZpZywKKyAgICAgICAgICAgIFBvcnRsZXRNb2RlIHBvcnRsZXRNb2RlLCBTdHJpbmcgbmFtZVNwYWNlUGFyYW0sCisgICAgICAgICAgICBTdHJpbmcgZGVmYXVsdEFjdGlvblBhcmFtKSB7CisgICAgICAgIFN0cmluZyBuYW1lc3BhY2UgPSBwb3J0bGV0Q29uZmlnLmdldEluaXRQYXJhbWV0ZXIobmFtZVNwYWNlUGFyYW0pOworICAgICAgICBpZiAoU3RyaW5nVXRpbHMuaXNFbXB0eShuYW1lc3BhY2UpKSB7CisgICAgICAgICAgICBuYW1lc3BhY2UgPSAiIjsKKyAgICAgICAgfQorICAgICAgICBtb2RlTWFwLnB1dChwb3J0bGV0TW9kZSwgbmFtZXNwYWNlKTsKKyAgICAgICAgU3RyaW5nIGRlZmF1bHRBY3Rpb24gPSBwb3J0bGV0Q29uZmlnCisgICAgICAgICAgICAgICAgLmdldEluaXRQYXJhbWV0ZXIoZGVmYXVsdEFjdGlvblBhcmFtKTsKKyAgICAgICAgU3RyaW5nIG1ldGhvZCA9IG51bGw7CisgICAgICAgIGlmIChTdHJpbmdVdGlscy5pc0VtcHR5KGRlZmF1bHRBY3Rpb24pKSB7CisgICAgICAgICAgICBkZWZhdWx0QWN0aW9uID0gREVGQVVMVF9BQ1RJT05fTkFNRTsKKyAgICAgICAgfQorICAgICAgICBpZihkZWZhdWx0QWN0aW9uLmluZGV4T2YoJyEnKSA+PSAwKSB7CisgICAgICAgIAltZXRob2QgPSBkZWZhdWx0QWN0aW9uLnN1YnN0cmluZyhkZWZhdWx0QWN0aW9uLmluZGV4T2YoJyEnKSArIDEpOworICAgICAgICAJZGVmYXVsdEFjdGlvbiA9IGRlZmF1bHRBY3Rpb24uc3Vic3RyaW5nKDAsIGRlZmF1bHRBY3Rpb24uaW5kZXhPZignIScpKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmdCdWZmZXIgZnVsbFBhdGggPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIGlmIChTdHJpbmdVdGlscy5pc05vdEVtcHR5KHBvcnRsZXROYW1lc3BhY2UpKSB7CisgICAgICAgICAgICBmdWxsUGF0aC5hcHBlbmQocG9ydGxldE5hbWVzcGFjZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFN0cmluZ1V0aWxzLmlzTm90RW1wdHkobmFtZXNwYWNlKSkgeworICAgICAgICAgICAgZnVsbFBhdGguYXBwZW5kKG5hbWVzcGFjZSkuYXBwZW5kKCIvIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBmdWxsUGF0aC5hcHBlbmQoIi8iKTsKKyAgICAgICAgfQorICAgICAgICBmdWxsUGF0aC5hcHBlbmQoZGVmYXVsdEFjdGlvbik7CisgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZyA9IG5ldyBBY3Rpb25NYXBwaW5nKCk7CisgICAgICAgIG1hcHBpbmcuc2V0TmFtZShnZXRBY3Rpb25OYW1lKGZ1bGxQYXRoLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgbWFwcGluZy5zZXROYW1lc3BhY2UoZ2V0TmFtZXNwYWNlKGZ1bGxQYXRoLnRvU3RyaW5nKCkpKTsKKyAgICAgICAgaWYobWV0aG9kICE9IG51bGwpIHsKKyAgICAgICAgCW1hcHBpbmcuc2V0TWV0aG9kKG1ldGhvZCk7CisgICAgICAgIH0KKyAgICAgICAgYWN0aW9uTWFwLnB1dChwb3J0bGV0TW9kZSwgbWFwcGluZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2VydmljZSBhbiBhY3Rpb24gZnJvbSB0aGUgPHR0PmV2ZW50PC90dD4gcGhhc2UuCisgICAgICoKKyAgICAgKiBAc2VlIGphdmF4LnBvcnRsZXQuUG9ydGxldCNwcm9jZXNzQWN0aW9uKGphdmF4LnBvcnRsZXQuQWN0aW9uUmVxdWVzdCwKKyAgICAgKiAgICAgIGphdmF4LnBvcnRsZXQuQWN0aW9uUmVzcG9uc2UpCisgICAgICovCisgICAgcHVibGljIHZvaWQgcHJvY2Vzc0FjdGlvbihBY3Rpb25SZXF1ZXN0IHJlcXVlc3QsIEFjdGlvblJlc3BvbnNlIHJlc3BvbnNlKQorICAgICAgICAgICAgdGhyb3dzIFBvcnRsZXRFeGNlcHRpb24sIElPRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKExPRy5pc0RlYnVnRW5hYmxlZCgpKSBMT0cuZGVidWcoIkVudGVyaW5nIHByb2Nlc3NBY3Rpb24iKTsKKyAgICAgICAgcmVzZXRBY3Rpb25Db250ZXh0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBzZXJ2aWNlQWN0aW9uKHJlcXVlc3QsIHJlc3BvbnNlLCBnZXRSZXF1ZXN0TWFwKHJlcXVlc3QpLCBnZXRQYXJhbWV0ZXJNYXAocmVxdWVzdCksCisgICAgICAgICAgICAgICAgICAgIGdldFNlc3Npb25NYXAocmVxdWVzdCksIGdldEFwcGxpY2F0aW9uTWFwKCksCisgICAgICAgICAgICAgICAgICAgIHBvcnRsZXROYW1lc3BhY2UsIEVWRU5UX1BIQVNFKTsKKyAgICAgICAgICAgIGlmIChMT0cuaXNEZWJ1Z0VuYWJsZWQoKSkgTE9HLmRlYnVnKCJMZWF2aW5nIHByb2Nlc3NBY3Rpb24iKTsKKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIEFjdGlvbkNvbnRleHQuc2V0Q29udGV4dChudWxsKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFNlcnZpY2UgYW4gYWN0aW9uIGZyb20gdGhlIDx0dD5yZW5kZXI8L3R0PiBwaGFzZS4KKyAgICAgKgorICAgICAqIEBzZWUgamF2YXgucG9ydGxldC5Qb3J0bGV0I3JlbmRlcihqYXZheC5wb3J0bGV0LlJlbmRlclJlcXVlc3QsCisgICAgICogICAgICBqYXZheC5wb3J0bGV0LlJlbmRlclJlc3BvbnNlKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbmRlcihSZW5kZXJSZXF1ZXN0IHJlcXVlc3QsIFJlbmRlclJlc3BvbnNlIHJlc3BvbnNlKQorICAgICAgICAgICAgdGhyb3dzIFBvcnRsZXRFeGNlcHRpb24sIElPRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoTE9HLmlzRGVidWdFbmFibGVkKCkpIExPRy5kZWJ1ZygiRW50ZXJpbmcgcmVuZGVyIik7CisgICAgICAgIHJlc2V0QWN0aW9uQ29udGV4dCgpOworICAgICAgICByZXNwb25zZS5zZXRUaXRsZShnZXRUaXRsZShyZXF1ZXN0KSk7CisgICAgICAgIGlmKCFyZXF1ZXN0LmdldFdpbmRvd1N0YXRlKCkuZXF1YWxzKFdpbmRvd1N0YXRlLk1JTklNSVpFRCkpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiBhbiBldmVudCBzZXQgdGhlIHJlbmRlciB0byBiZSBpbmNsdWRlZCBkaXJlY3RseQorICAgICAgICAgICAgc2VydmljZUFjdGlvbihyZXF1ZXN0LCByZXNwb25zZSwgZ2V0UmVxdWVzdE1hcChyZXF1ZXN0KSwgZ2V0UGFyYW1ldGVyTWFwKHJlcXVlc3QpLAorICAgICAgICAgICAgICAgICAgICBnZXRTZXNzaW9uTWFwKHJlcXVlc3QpLCBnZXRBcHBsaWNhdGlvbk1hcCgpLAorICAgICAgICAgICAgICAgICAgICBwb3J0bGV0TmFtZXNwYWNlLCBSRU5ERVJfUEhBU0UpOworICAgICAgICAgICAgaWYgKExPRy5pc0RlYnVnRW5hYmxlZCgpKSBMT0cuZGVidWcoIkxlYXZpbmcgcmVuZGVyIik7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICByZXNldEFjdGlvbkNvbnRleHQoKTsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogIFJlc2V0IHRoZSBhY3Rpb24gY29udGV4dC4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgcmVzZXRBY3Rpb25Db250ZXh0KCkgeworICAgICAgICBBY3Rpb25Db250ZXh0LnNldENvbnRleHQobnVsbCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIE1lcmdlcyBhbGwgYXBwbGljYXRpb24gYW5kIHBvcnRsZXQgYXR0cmlidXRlcyBpbnRvIGEgc2luZ2xlCisgICAgICogPHR0Pkhhc2hNYXA8L3R0PiB0byByZXByZXNlbnQgdGhlIGVudGlyZSA8dHQ+QWN0aW9uPC90dD4gY29udGV4dC4KKyAgICAgKgorICAgICAqIEBwYXJhbSByZXF1ZXN0TWFwIGEgTWFwIG9mIGFsbCByZXF1ZXN0IGF0dHJpYnV0ZXMuCisgICAgICogQHBhcmFtIHBhcmFtZXRlck1hcCBhIE1hcCBvZiBhbGwgcmVxdWVzdCBwYXJhbWV0ZXJzLgorICAgICAqIEBwYXJhbSBzZXNzaW9uTWFwIGEgTWFwIG9mIGFsbCBzZXNzaW9uIGF0dHJpYnV0ZXMuCisgICAgICogQHBhcmFtIGFwcGxpY2F0aW9uTWFwIGEgTWFwIG9mIGFsbCBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcy4KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCB0aGUgUG9ydGxldFJlcXVlc3Qgb2JqZWN0LgorICAgICAqIEBwYXJhbSByZXNwb25zZSB0aGUgUG9ydGxldFJlc3BvbnNlIG9iamVjdC4KKyAgICAgKiBAcGFyYW0gcG9ydGxldENvbmZpZyB0aGUgUG9ydGxldENvbmZpZyBvYmplY3QuCisgICAgICogQHBhcmFtIHBoYXNlIFRoZSBwb3J0bGV0IHBoYXNlIChyZW5kZXIgb3IgYWN0aW9uLCBzZWUKKyAgICAgKiAgICAgICAge0BsaW5rIFBvcnRsZXRBY3Rpb25Db25zdGFudHN9KQorICAgICAqIEByZXR1cm4gYSBIYXNoTWFwIHJlcHJlc2VudGluZyB0aGUgPHR0PkFjdGlvbjwvdHQ+IGNvbnRleHQuCisgICAgICovCisgICAgcHVibGljIEhhc2hNYXA8U3RyaW5nLCBPYmplY3Q+IGNyZWF0ZUNvbnRleHRNYXAoTWFwPFN0cmluZywgT2JqZWN0PiByZXF1ZXN0TWFwLCBNYXA8U3RyaW5nLCBTdHJpbmdbXT4gcGFyYW1ldGVyTWFwLAorICAgICAgICAgICAgTWFwPFN0cmluZywgT2JqZWN0PiBzZXNzaW9uTWFwLCBNYXA8U3RyaW5nLCBPYmplY3Q+IGFwcGxpY2F0aW9uTWFwLCBQb3J0bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgUG9ydGxldFJlc3BvbnNlIHJlc3BvbnNlLCBIdHRwU2VydmxldFJlcXVlc3Qgc2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2Ugc2VydmxldFJlc3BvbnNlLCBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCwgUG9ydGxldENvbmZpZyBwb3J0bGV0Q29uZmlnLCBJbnRlZ2VyIHBoYXNlKSB0aHJvd3MgSU9FeGNlcHRpb24geworCisgICAgICAgIC8vIFRPRE8gTXVzdCBwdXQgaHR0cCByZXF1ZXN0L3Jlc3BvbnNlIG9iamVjdHMgaW50byBtYXAgZm9yIHVzZSB3aXRoCisgICAgCWNvbnRhaW5lci5pbmplY3Qoc2VydmxldFJlcXVlc3QpOworICAgIAkKKyAgICAgICAgLy8gU2VydmxldEFjdGlvbkNvbnRleHQKKyAgICAgICAgSGFzaE1hcDxTdHJpbmcsIE9iamVjdD4gZXh0cmFDb250ZXh0ID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBPYmplY3Q+KCk7CisgICAgICAgIC8vIFRoZSBkdW1teSBzZXJ2bGV0IG9iamVjdHMuIEVhc2VzIHJldXNlIG9mIGV4aXN0aW5nIGludGVyY2VwdG9ycyB0aGF0IHVzZXMgdGhlIHNlcnZsZXQgb2JqZWN0cy4KKyAgICAgICAgZXh0cmFDb250ZXh0LnB1dChTdHJ1dHNTdGF0aWNzLkhUVFBfUkVRVUVTVCwgc2VydmxldFJlcXVlc3QpOworICAgICAgICBleHRyYUNvbnRleHQucHV0KFN0cnV0c1N0YXRpY3MuSFRUUF9SRVNQT05TRSwgc2VydmxldFJlc3BvbnNlKTsKKyAgICAgICAgZXh0cmFDb250ZXh0LnB1dChTdHJ1dHNTdGF0aWNzLlNFUlZMRVRfQ09OVEVYVCwgc2VydmxldENvbnRleHQpOworICAgICAgICAvLyBFbmQgZHVtbXkgc2VydmxldCBvYmplY3RzCisgICAgICAgIGV4dHJhQ29udGV4dC5wdXQoQWN0aW9uQ29udGV4dC5QQVJBTUVURVJTLCBwYXJhbWV0ZXJNYXApOworICAgICAgICBleHRyYUNvbnRleHQucHV0KEFjdGlvbkNvbnRleHQuU0VTU0lPTiwgc2Vzc2lvbk1hcCk7CisgICAgICAgIGV4dHJhQ29udGV4dC5wdXQoQWN0aW9uQ29udGV4dC5BUFBMSUNBVElPTiwgYXBwbGljYXRpb25NYXApOworCisgICAgICAgIFN0cmluZyBkZWZhdWx0TG9jYWxlID0gZGlzcGF0Y2hlclV0aWxzLmdldENvbnRhaW5lcigpLmdldEluc3RhbmNlKFN0cmluZy5jbGFzcywgU3RydXRzQ29uc3RhbnRzLlNUUlVUU19MT0NBTEUpOworICAgICAgICBMb2NhbGUgbG9jYWxlID0gbnVsbDsKKyAgICAgICAgaWYgKGRlZmF1bHRMb2NhbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgbG9jYWxlID0gTG9jYWxpemVkVGV4dFV0aWwubG9jYWxlRnJvbVN0cmluZyhkZWZhdWx0TG9jYWxlLCByZXF1ZXN0LmdldExvY2FsZSgpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvY2FsZSA9IHJlcXVlc3QuZ2V0TG9jYWxlKCk7CisgICAgICAgIH0KKyAgICAgICAgZXh0cmFDb250ZXh0LnB1dChBY3Rpb25Db250ZXh0LkxPQ0FMRSwgbG9jYWxlKTsKKworICAgICAgICBleHRyYUNvbnRleHQucHV0KFN0cnV0c1N0YXRpY3MuU1RSVVRTX1BPUlRMRVRfQ09OVEVYVCwgZ2V0UG9ydGxldENvbnRleHQoKSk7CisgICAgICAgIGV4dHJhQ29udGV4dC5wdXQoUkVRVUVTVCwgcmVxdWVzdCk7CisgICAgICAgIGV4dHJhQ29udGV4dC5wdXQoUkVTUE9OU0UsIHJlc3BvbnNlKTsKKyAgICAgICAgZXh0cmFDb250ZXh0LnB1dChQT1JUTEVUX0NPTkZJRywgcG9ydGxldENvbmZpZyk7CisgICAgICAgIGV4dHJhQ29udGV4dC5wdXQoUE9SVExFVF9OQU1FU1BBQ0UsIHBvcnRsZXROYW1lc3BhY2UpOworICAgICAgICBleHRyYUNvbnRleHQucHV0KERFRkFVTFRfQUNUSU9OX0ZPUl9NT0RFLCBhY3Rpb25NYXAuZ2V0KHJlcXVlc3QuZ2V0UG9ydGxldE1vZGUoKSkpOworICAgICAgICAvLyBoZWxwZXJzIHRvIGdldCBhY2Nlc3MgdG8gcmVxdWVzdC9zZXNzaW9uL2FwcGxpY2F0aW9uIHNjb3BlCisgICAgICAgIGV4dHJhQ29udGV4dC5wdXQoInJlcXVlc3QiLCByZXF1ZXN0TWFwKTsKKyAgICAgICAgZXh0cmFDb250ZXh0LnB1dCgic2Vzc2lvbiIsIHNlc3Npb25NYXApOworICAgICAgICBleHRyYUNvbnRleHQucHV0KCJhcHBsaWNhdGlvbiIsIGFwcGxpY2F0aW9uTWFwKTsKKyAgICAgICAgZXh0cmFDb250ZXh0LnB1dCgicGFyYW1ldGVycyIsIHBhcmFtZXRlck1hcCk7CisgICAgICAgIGV4dHJhQ29udGV4dC5wdXQoTU9ERV9OQU1FU1BBQ0VfTUFQLCBtb2RlTWFwKTsKKworICAgICAgICBleHRyYUNvbnRleHQucHV0KFBIQVNFLCBwaGFzZSk7CisKKyAgICAgICAgQXR0cmlidXRlTWFwIGF0dHJNYXAgPSBuZXcgQXR0cmlidXRlTWFwKGV4dHJhQ29udGV4dCk7CisgICAgICAgIGV4dHJhQ29udGV4dC5wdXQoImF0dHIiLCBhdHRyTWFwKTsKKworICAgICAgICByZXR1cm4gZXh0cmFDb250ZXh0OworICAgIH0KKworICAgIC8qKgorICAgICAqIExvYWRzIHRoZSBhY3Rpb24gYW5kIGV4ZWN1dGVzIGl0LiBUaGlzIG1ldGhvZCBmaXJzdCBjcmVhdGVzIHRoZSBhY3Rpb24KKyAgICAgKiBjb250ZXh0IGZyb20gdGhlIGdpdmVuIHBhcmFtZXRlcnMgdGhlbiBsb2FkcyBhbiA8dHQ+QWN0aW9uUHJveHk8L3R0PgorICAgICAqIGZyb20gdGhlIGdpdmVuIGFjdGlvbiBuYW1lIGFuZCBuYW1lc3BhY2UuIEFmdGVyIHRoYXQsIHRoZSBhY3Rpb24gaXMKKyAgICAgKiBleGVjdXRlZCBhbmQgb3V0cHV0IGNoYW5uZWxzIHRocm91Z2h0IHRoZSByZXNwb25zZSBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCB0aGUgSHR0cFNlcnZsZXRSZXF1ZXN0IG9iamVjdC4KKyAgICAgKiBAcGFyYW0gcmVzcG9uc2UgdGhlIEh0dHBTZXJ2bGV0UmVzcG9uc2Ugb2JqZWN0LgorICAgICAqIEBwYXJhbSByZXF1ZXN0TWFwIGEgTWFwIG9mIHJlcXVlc3QgYXR0cmlidXRlcy4KKyAgICAgKiBAcGFyYW0gcGFyYW1ldGVyTWFwIGEgTWFwIG9mIHJlcXVlc3QgcGFyYW1ldGVycy4KKyAgICAgKiBAcGFyYW0gc2Vzc2lvbk1hcCBhIE1hcCBvZiBhbGwgc2Vzc2lvbiBhdHRyaWJ1dGVzLgorICAgICAqIEBwYXJhbSBhcHBsaWNhdGlvbk1hcCBhIE1hcCBvZiBhbGwgYXBwbGljYXRpb24gYXR0cmlidXRlcy4KKyAgICAgKiBAcGFyYW0gcG9ydGxldE5hbWVzcGFjZSB0aGUgbmFtZXNwYWNlIG9yIGNvbnRleHQgb2YgdGhlIGFjdGlvbi4KKyAgICAgKiBAcGFyYW0gcGhhc2UgVGhlIHBvcnRsZXQgcGhhc2UgKHJlbmRlciBvciBhY3Rpb24sIHNlZQorICAgICAqICAgICAgICB7QGxpbmsgUG9ydGxldEFjdGlvbkNvbnN0YW50c30pCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2VydmljZUFjdGlvbihQb3J0bGV0UmVxdWVzdCByZXF1ZXN0LCBQb3J0bGV0UmVzcG9uc2UgcmVzcG9uc2UsIE1hcDxTdHJpbmcsIE9iamVjdD4gcmVxdWVzdE1hcCwgTWFwPFN0cmluZywgU3RyaW5nW10+IHBhcmFtZXRlck1hcCwKKyAgICAgICAgICAgIE1hcDxTdHJpbmcsIE9iamVjdD4gc2Vzc2lvbk1hcCwgTWFwPFN0cmluZywgT2JqZWN0PiBhcHBsaWNhdGlvbk1hcCwgU3RyaW5nIHBvcnRsZXROYW1lc3BhY2UsCisgICAgICAgICAgICBJbnRlZ2VyIHBoYXNlKSB0aHJvd3MgUG9ydGxldEV4Y2VwdGlvbiB7CisgICAgICAgIGlmIChMT0cuaXNEZWJ1Z0VuYWJsZWQoKSkgTE9HLmRlYnVnKCJzZXJ2aWNlQWN0aW9uIik7CisgICAgICAgIERpc3BhdGNoZXIuc2V0SW5zdGFuY2UoZGlzcGF0Y2hlclV0aWxzKTsKKyAgICAgICAgU3RyaW5nIGFjdGlvbk5hbWUgPSBudWxsOworICAgICAgICBTdHJpbmcgbmFtZXNwYWNlID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0ID0gbmV3IFBvcnRsZXRTZXJ2bGV0Q29udGV4dChnZXRQb3J0bGV0Q29udGV4dCgpKTsKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCBzZXJ2bGV0UmVxdWVzdCA9IG5ldyBQb3J0bGV0U2VydmxldFJlcXVlc3QocmVxdWVzdCwgZ2V0UG9ydGxldENvbnRleHQoKSk7CisgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHNlcnZsZXRSZXNwb25zZSA9IG5ldyBQb3J0bGV0U2VydmxldFJlc3BvbnNlKHJlc3BvbnNlKTsKKyAgICAgICAgICAgIGlmKEVWRU5UX1BIQVNFLmVxdWFscyhwaGFzZSkpIHsKKyAgICAgICAgICAgIAlzZXJ2bGV0UmVxdWVzdCA9IGRpc3BhdGNoZXJVdGlscy53cmFwUmVxdWVzdChzZXJ2bGV0UmVxdWVzdCwgc2VydmxldENvbnRleHQpOworICAgICAgICAJCWlmKHNlcnZsZXRSZXF1ZXN0IGluc3RhbmNlb2YgTXVsdGlQYXJ0UmVxdWVzdFdyYXBwZXIpIHsKKyAgICAgICAgCQkJLy8gTXVsdGlwYXJ0IHJlcXVlc3QuIFJlcXVlc3QgcGFyYW1ldGVycyBhcmUgZW5jb2RlZCBpbiB0aGUgbXVsdGlwYXJ0IGRhdGEsCisgICAgICAgIAkJCS8vIHNvIHdlIG5lZWQgdG8gbWFudWFsbHkgYWRkIHRoZW0gdG8gdGhlIHBhcmFtZXRlciBtYXAuCisgICAgICAgIAkJCXBhcmFtZXRlck1hcC5wdXRBbGwoc2VydmxldFJlcXVlc3QuZ2V0UGFyYW1ldGVyTWFwKCkpOworICAgICAgICAJCX0KKyAgICAgICAgCX0KKyAgICAgICAgICAgIGNvbnRhaW5lci5pbmplY3Qoc2VydmxldFJlcXVlc3QpOworICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nID0gZ2V0QWN0aW9uTWFwcGluZyhyZXF1ZXN0LCBzZXJ2bGV0UmVxdWVzdCk7CisgICAgICAgICAgICBhY3Rpb25OYW1lID0gbWFwcGluZy5nZXROYW1lKCk7CisgICAgICAgICAgICBuYW1lc3BhY2UgPSBtYXBwaW5nLmdldE5hbWVzcGFjZSgpOworICAgICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIE9iamVjdD4gZXh0cmFDb250ZXh0ID0gY3JlYXRlQ29udGV4dE1hcChyZXF1ZXN0TWFwLCBwYXJhbWV0ZXJNYXAsCisgICAgICAgICAgICAgICAgICAgIHNlc3Npb25NYXAsIGFwcGxpY2F0aW9uTWFwLCByZXF1ZXN0LCByZXNwb25zZSwgc2VydmxldFJlcXVlc3QsIHNlcnZsZXRSZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgc2VydmxldENvbnRleHQsIGdldFBvcnRsZXRDb25maWcoKSwgcGhhc2UpOworICAgICAgICAgICAgZXh0cmFDb250ZXh0LnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLkFDVElPTl9NQVBQSU5HLCBtYXBwaW5nKTsKKyAgICAgICAgICAgIGlmIChMT0cuaXNEZWJ1Z0VuYWJsZWQoKSkgeworICAgICAgICAJTE9HLmRlYnVnKCJDcmVhdGluZyBhY3Rpb24gcHJveHkgZm9yIG5hbWUgPSAiICsgYWN0aW9uTmFtZSArICIsIG5hbWVzcGFjZSA9ICIgKyBuYW1lc3BhY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQWN0aW9uUHJveHkgcHJveHkgPSBmYWN0b3J5LmNyZWF0ZUFjdGlvblByb3h5KG5hbWVzcGFjZSwKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9uTmFtZSwgbWFwcGluZy5nZXRNZXRob2QoKSwgZXh0cmFDb250ZXh0KTsKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKCJzdHJ1dHMudmFsdWVTdGFjayIsIHByb3h5LmdldEludm9jYXRpb24oKQorICAgICAgICAgICAgICAgICAgICAuZ2V0U3RhY2soKSk7CisgICAgICAgICAgICBwcm94eS5leGVjdXRlKCk7CisgICAgICAgIH0gY2F0Y2ggKENvbmZpZ3VyYXRpb25FeGNlcHRpb24gZSkgeworICAgICAgICAgICAgTE9HLmVycm9yKCJDb3VsZCBub3QgZmluZCBhY3Rpb24iLCBlKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBQb3J0bGV0RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCBhY3Rpb24gIiArIGFjdGlvbk5hbWUsIGUpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgTE9HLmVycm9yKCJDb3VsZCBub3QgZXhlY3V0ZSBhY3Rpb24iLCBlKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBQb3J0bGV0RXhjZXB0aW9uKCJFcnJvciBleGVjdXRpbmcgYWN0aW9uICIgKyBhY3Rpb25OYW1lLAorICAgICAgICAgICAgICAgICAgICBlKTsKKyAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgIERpc3BhdGNoZXIuc2V0SW5zdGFuY2UobnVsbCk7CisgICAgICAgIH0KKyAgICB9CisKKwkvKioKKyAgICAgKiBSZXR1cm5zIGEgTWFwIG9mIGFsbCBhcHBsaWNhdGlvbiBhdHRyaWJ1dGVzLiBDb3BpZXMgYWxsIGF0dHJpYnV0ZXMgZnJvbQorICAgICAqIHRoZSB7QGxpbmsgUG9ydGxldEFjdGlvbkNvbnRleHR9aW50byBhbiB7QGxpbmsgQXBwbGljYXRpb25NYXB9LgorICAgICAqCisgICAgICogQHJldHVybiBhIE1hcCBvZiBhbGwgYXBwbGljYXRpb24gYXR0cmlidXRlcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgTWFwIGdldEFwcGxpY2F0aW9uTWFwKCkgeworICAgICAgICByZXR1cm4gbmV3IFBvcnRsZXRBcHBsaWNhdGlvbk1hcChnZXRQb3J0bGV0Q29udGV4dCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBuYW1lc3BhY2Ugb2YgdGhlIGFjdGlvbiBmcm9tIHRoZSByZXF1ZXN0LiBUaGUgbmFtZXNwYWNlIGlzIHRoZQorICAgICAqIHNhbWUgYXMgdGhlIHBvcnRsZXQgbW9kZS4gRS5nLCB2aWV3IG1vZGUgaXMgbWFwcGVkIHRvIG5hbWVzcGFjZQorICAgICAqIDxjb2RlPnZpZXc8L2NvZGU+LCBhbmQgZWRpdCBtb2RlIGlzIG1hcHBlZCB0byB0aGUgbmFtZXNwYWNlCisgICAgICogPGNvZGU+ZWRpdDwvY29kZT4KKyAgICAgKgorICAgICAqIEBwYXJhbSByZXF1ZXN0IHRoZSBQb3J0bGV0UmVxdWVzdCBvYmplY3QuCisgICAgICogQHJldHVybiB0aGUgbmFtZXNwYWNlIG9mIHRoZSBhY3Rpb24uCisgICAgICovCisgICAgcHJvdGVjdGVkIEFjdGlvbk1hcHBpbmcgZ2V0QWN0aW9uTWFwcGluZyhmaW5hbCBQb3J0bGV0UmVxdWVzdCBwb3J0bGV0UmVxdWVzdCwgZmluYWwgSHR0cFNlcnZsZXRSZXF1ZXN0IHNlcnZsZXRSZXF1ZXN0KSB7CisgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZyA9IG51bGw7CisgICAgICAgIFN0cmluZyBhY3Rpb25QYXRoID0gbnVsbDsKKyAgICAgICAgaWYgKHJlc2V0QWN0aW9uKHBvcnRsZXRSZXF1ZXN0KSkgeworICAgICAgICAgICAgbWFwcGluZyA9IChBY3Rpb25NYXBwaW5nKSBhY3Rpb25NYXAuZ2V0KHBvcnRsZXRSZXF1ZXN0LmdldFBvcnRsZXRNb2RlKCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYWN0aW9uUGF0aCA9IHNlcnZsZXRSZXF1ZXN0LmdldFBhcmFtZXRlcihBQ1RJT05fUEFSQU0pOworICAgICAgICAgICAgaWYgKFN0cmluZ1V0aWxzLmlzRW1wdHkoYWN0aW9uUGF0aCkpIHsKKyAgICAgICAgICAgICAgICBtYXBwaW5nID0gKEFjdGlvbk1hcHBpbmcpIGFjdGlvbk1hcC5nZXQocG9ydGxldFJlcXVlc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRQb3J0bGV0TW9kZSgpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gVXNlIHRoZSB1c3VhbCBhY3Rpb24gbWFwcGVyLCBidXQgaXQgaXMgZXhwZWN0aW5nIGFuIGFjdGlvbiBleHRlbnNpb24KKyAgICAgICAgICAgICAgICAvLyBvbiB0aGUgdXJpLCBzbyB3ZSBhZGQgdGhlIGRlZmF1bHQgb25lLCB3aGljaCBzaG91bGQgYmUgb2sgYXMgdGhlCisgICAgICAgICAgICAgICAgLy8gcG9ydGxldCBpcyBhIHBvcnRsZXQgZmlyc3QsIGEgc2VydmxldCBzZWNvbmQKKyAgICAgICAgICAgICAgICBtYXBwaW5nID0gYWN0aW9uTWFwcGVyLmdldE1hcHBpbmcoc2VydmxldFJlcXVlc3QsIGRpc3BhdGNoZXJVdGlscy5nZXRDb25maWd1cmF0aW9uTWFuYWdlcigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG1hcHBpbmcgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFN0cnV0c0V4Y2VwdGlvbigiVW5hYmxlIHRvIGxvY2F0ZSBhY3Rpb24gbWFwcGluZyBmb3IgcmVxdWVzdCwgcHJvYmFibHkgZHVlIHRvICIgKworICAgICAgICAgICAgICAgICAgICAiYW4gaW52YWxpZCBhY3Rpb24gcGF0aDogIithY3Rpb25QYXRoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWFwcGluZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG5hbWVzcGFjZSBwYXJ0IG9mIHRoZSBhY3Rpb24gcGF0aC4KKyAgICAgKiBAcGFyYW0gYWN0aW9uUGF0aCBGdWxsIHBhdGggdG8gYWN0aW9uCisgICAgICogQHJldHVybiBUaGUgbmFtZXNwYWNlIHBhcnQuCisgICAgICovCisgICAgU3RyaW5nIGdldE5hbWVzcGFjZShTdHJpbmcgYWN0aW9uUGF0aCkgeworICAgICAgICBpbnQgaWR4ID0gYWN0aW9uUGF0aC5sYXN0SW5kZXhPZignLycpOworICAgICAgICBTdHJpbmcgbmFtZXNwYWNlID0gIiI7CisgICAgICAgIGlmIChpZHggPj0gMCkgeworICAgICAgICAgICAgbmFtZXNwYWNlID0gYWN0aW9uUGF0aC5zdWJzdHJpbmcoMCwgaWR4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbmFtZXNwYWNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgYWN0aW9uIG5hbWUgcGFydCBvZiB0aGUgYWN0aW9uIHBhdGguCisgICAgICogQHBhcmFtIGFjdGlvblBhdGggRnVsbCBwYXRoIHRvIGFjdGlvbgorICAgICAqIEByZXR1cm4gVGhlIGFjdGlvbiBuYW1lLgorICAgICAqLworICAgIFN0cmluZyBnZXRBY3Rpb25OYW1lKFN0cmluZyBhY3Rpb25QYXRoKSB7CisgICAgICAgIGludCBpZHggPSBhY3Rpb25QYXRoLmxhc3RJbmRleE9mKCcvJyk7CisgICAgICAgIFN0cmluZyBhY3Rpb24gPSBhY3Rpb25QYXRoOworICAgICAgICBpZiAoaWR4ID49IDApIHsKKyAgICAgICAgICAgIGFjdGlvbiA9IGFjdGlvblBhdGguc3Vic3RyaW5nKGlkeCArIDEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBhY3Rpb247CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIE1hcCBvZiBhbGwgcmVxdWVzdCBwYXJhbWV0ZXJzLiBUaGlzIGltcGxlbWVudGF0aW9uIGp1c3QgY2FsbHMKKyAgICAgKiB7QGxpbmsgUG9ydGxldFJlcXVlc3QjZ2V0UGFyYW1ldGVyTWFwKCl9LgorICAgICAqCisgICAgICogQHBhcmFtIHJlcXVlc3QgdGhlIFBvcnRsZXRSZXF1ZXN0IG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIGEgTWFwIG9mIGFsbCByZXF1ZXN0IHBhcmFtZXRlcnMuCisgICAgICogQHRocm93cyBJT0V4Y2VwdGlvbiBpZiBhbiBleGNlcHRpb24gb2NjdXJzIHdoaWxlIHJldHJpZXZpbmcgdGhlIHBhcmFtZXRlcgorICAgICAqICAgICAgICAgbWFwLgorICAgICAqLworICAgIHByb3RlY3RlZCBNYXA8U3RyaW5nLCBTdHJpbmdbXT4gZ2V0UGFyYW1ldGVyTWFwKFBvcnRsZXRSZXF1ZXN0IHJlcXVlc3QpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBuZXcgSGFzaE1hcDxTdHJpbmcsIFN0cmluZ1tdPihyZXF1ZXN0LmdldFBhcmFtZXRlck1hcCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgTWFwIG9mIGFsbCByZXF1ZXN0IGF0dHJpYnV0ZXMuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGlzIHRvCisgICAgICogd3JhcCB0aGUgcmVxdWVzdCBpbiBhIHtAbGluayBSZXF1ZXN0TWFwfS4gT3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8KKyAgICAgKiBjdXN0b21pemUgaG93IHJlcXVlc3QgYXR0cmlidXRlcyBhcmUgbWFwcGVkLgorICAgICAqCisgICAgICogQHBhcmFtIHJlcXVlc3QgdGhlIFBvcnRsZXRSZXF1ZXN0IG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIGEgTWFwIG9mIGFsbCByZXF1ZXN0IGF0dHJpYnV0ZXMuCisgICAgICovCisgICAgcHJvdGVjdGVkIE1hcCBnZXRSZXF1ZXN0TWFwKFBvcnRsZXRSZXF1ZXN0IHJlcXVlc3QpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQb3J0bGV0UmVxdWVzdE1hcChyZXF1ZXN0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgTWFwIG9mIGFsbCBzZXNzaW9uIGF0dHJpYnV0ZXMuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGlzIHRvCisgICAgICogd3JhcCB0aGUgcmVxZXVzdCBpbiBhIHtAbGluayBTZXNzaW9uTWFwfS4gT3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8KKyAgICAgKiBjdXN0b21pemUgaG93IHNlc3Npb24gYXR0cmlidXRlcyBhcmUgbWFwcGVkLgorICAgICAqCisgICAgICogQHBhcmFtIHJlcXVlc3QgdGhlIFBvcnRsZXRSZXF1ZXN0IG9iamVjdC4KKyAgICAgKiBAcmV0dXJuIGEgTWFwIG9mIGFsbCBzZXNzaW9uIGF0dHJpYnV0ZXMuCisgICAgICovCisgICAgcHJvdGVjdGVkIE1hcCBnZXRTZXNzaW9uTWFwKFBvcnRsZXRSZXF1ZXN0IHJlcXVlc3QpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBQb3J0bGV0U2Vzc2lvbk1hcChyZXF1ZXN0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gZWFzZSB0ZXN0aW5nLgorICAgICAqIEBwYXJhbSBmYWN0b3J5CisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0QWN0aW9uUHJveHlGYWN0b3J5KEFjdGlvblByb3h5RmFjdG9yeSBmYWN0b3J5KSB7CisgICAgICAgIHRoaXMuZmFjdG9yeSA9IGZhY3Rvcnk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgdG8gc2VlIGlmIHRoZSBhY3Rpb24gcGFyYW1ldGVyIGlzIHZhbGlkIGZvciB0aGUgY3VycmVudCBwb3J0bGV0IG1vZGUuIElmIHRoZSBwb3J0bGV0CisgICAgICogbW9kZSBoYXMgYmVlbiBjaGFuZ2VkIHdpdGggdGhlIHBvcnRhbCB3aWRnZXRzLCB0aGUgYWN0aW9uIG5hbWUgaXMgaW52YWxpZCwgc2luY2UgdGhlCisgICAgICogYWN0aW9uIG5hbWUgYmVsb25ncyB0byB0aGUgcHJldmlvdXMgZXhlY3V0aW5nIHBvcnRsZXQgbW9kZS4gSWYgdGhpcyBtZXRob2QgZXZhbHVhdGVzIHRvCisgICAgICogPGNvZGU+dHJ1ZTwvY29kZT4gdGhlIDxjb2RlPmRlZmF1bHQmbHQ7TW9kZSZndDtBY3Rpb248L2NvZGU+IGlzIHVzZWQgaW5zdGVhZC4KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgcG9ydGxldCByZXF1ZXN0LgorICAgICAqIEByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIGFjdGlvbiBzaG91bGQgYmUgcmVzZXQuCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIHJlc2V0QWN0aW9uKFBvcnRsZXRSZXF1ZXN0IHJlcXVlc3QpIHsKKyAgICAgICAgYm9vbGVhbiByZXNldCA9IGZhbHNlOworICAgICAgICBNYXAgcGFyYW1NYXAgPSByZXF1ZXN0LmdldFBhcmFtZXRlck1hcCgpOworICAgICAgICBTdHJpbmdbXSBtb2RlUGFyYW0gPSAoU3RyaW5nW10pIHBhcmFtTWFwLmdldChNT0RFX1BBUkFNKTsKKyAgICAgICAgaWYgKG1vZGVQYXJhbSAhPSBudWxsICYmIG1vZGVQYXJhbS5sZW5ndGggPT0gMSkgeworICAgICAgICAgICAgU3RyaW5nIG9yaWdpbmF0aW5nTW9kZSA9IG1vZGVQYXJhbVswXTsKKyAgICAgICAgICAgIFN0cmluZyBjdXJyZW50TW9kZSA9IHJlcXVlc3QuZ2V0UG9ydGxldE1vZGUoKS50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKCFjdXJyZW50TW9kZS5lcXVhbHMob3JpZ2luYXRpbmdNb2RlKSkgeworICAgICAgICAgICAgICAgIHJlc2V0ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZihyZXNldCkgeworICAgICAgICAJcmVxdWVzdC5zZXRBdHRyaWJ1dGUoQUNUSU9OX1JFU0VULCBCb29sZWFuLlRSVUUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAJcmVxdWVzdC5zZXRBdHRyaWJ1dGUoQUNUSU9OX1JFU0VULCBCb29sZWFuLkZBTFNFKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzZXQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZGVzdHJveSgpIHsKKyAgICAgICAgaWYgKGRpc3BhdGNoZXJVdGlscyA9PSBudWxsKSB7CisgICAgICAgICAgICBpZiAoTE9HLmlzV2FybkVuYWJsZWQoKSkgeworICAgICAgICAJTE9HLndhcm4oInNvbWV0aGluZyBpcyBzZXJpb3VzbHkgd3JvbmcsIERpc3BhdGNoZXJVdGlsIGlzIG5vdCBpbml0aWFsaXplZCAobnVsbCkgIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkaXNwYXRjaGVyVXRpbHMuY2xlYW51cCgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIGFjdGlvbk1hcHBlciB0aGUgYWN0aW9uTWFwcGVyIHRvIHNldAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEFjdGlvbk1hcHBlcihBY3Rpb25NYXBwZXIgYWN0aW9uTWFwcGVyKSB7CisgICAgICAgIHRoaXMuYWN0aW9uTWFwcGVyID0gYWN0aW9uTWFwcGVyOworICAgIH0KKyAgICAKK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2ludGVyY2VwdG9yL1BvcnRsZXRBd2FyZUludGVyY2VwdG9yLmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9pbnRlcmNlcHRvci9Qb3J0bGV0QXdhcmVJbnRlcmNlcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5MDc1YzAKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9pbnRlcmNlcHRvci9Qb3J0bGV0QXdhcmVJbnRlcmNlcHRvci5qYXZhCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuaW50ZXJjZXB0b3I7CisKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRDb25maWc7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldFJlc3BvbnNlOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLlN0cnV0c1N0YXRpY3M7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmludGVyY2VwdG9yLlByaW5jaXBhbEF3YXJlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LlBvcnRsZXRBY3Rpb25Db25zdGFudHM7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25Db250ZXh0OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbkludm9jYXRpb247CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuaW50ZXJjZXB0b3IuQWJzdHJhY3RJbnRlcmNlcHRvcjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi51dGlsLmxvZ2dpbmcuTG9nZ2VyOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnV0aWwubG9nZ2luZy5Mb2dnZXJGYWN0b3J5OworCitwdWJsaWMgY2xhc3MgUG9ydGxldEF3YXJlSW50ZXJjZXB0b3IgZXh0ZW5kcyBBYnN0cmFjdEludGVyY2VwdG9yIGltcGxlbWVudHMgUG9ydGxldEFjdGlvbkNvbnN0YW50cywgU3RydXRzU3RhdGljcyB7CisKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAyNDc2NTA5NzIxMDU5NTg3NzAwTDsKKwkKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2dnZXIgTE9HID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoUG9ydGxldEF3YXJlSW50ZXJjZXB0b3IuY2xhc3MpOworCisJLyoqCisgICAgICogU2V0cyBhY3Rpb24gcHJvcGVydGllcyBiYXNlZCBvbiB0aGUgaW50ZXJmYWNlcyBhbiBhY3Rpb24gaW1wbGVtZW50cy4gVGhpbmdzIGxpa2UgYXBwbGljYXRpb24gcHJvcGVydGllcywKKyAgICAgKiBwYXJhbWV0ZXJzLCBzZXNzaW9uIGF0dHJpYnV0ZXMsIGV0YyBhcmUgc2V0IGJhc2VkIG9uIHRoZSBpbXBsZW1lbnRpbmcgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGludm9jYXRpb24gYW4gZW5jYXBzdWxhdGlvbiBvZiB0aGUgYWN0aW9uIGV4ZWN1dGlvbiBzdGF0ZS4KKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBpZiBhbiBlcnJvciBvY2N1cnMgd2hlbiBzZXR0aW5nIGFjdGlvbiBwcm9wZXJ0aWVzLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgaW50ZXJjZXB0KEFjdGlvbkludm9jYXRpb24gaW52b2NhdGlvbikgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGZpbmFsIE9iamVjdCBhY3Rpb24gPSBpbnZvY2F0aW9uLmdldEFjdGlvbigpOworICAgICAgICBmaW5hbCBBY3Rpb25Db250ZXh0IGNvbnRleHQgPSBpbnZvY2F0aW9uLmdldEludm9jYXRpb25Db250ZXh0KCk7CisKKyAgICAgICAgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIFBvcnRsZXRSZXF1ZXN0QXdhcmUpIHsKKyAgICAgICAgICAgIFBvcnRsZXRSZXF1ZXN0IHJlcXVlc3QgPSAoUG9ydGxldFJlcXVlc3QpIGNvbnRleHQuZ2V0KFJFUVVFU1QpOworICAgICAgICAgICAgKChQb3J0bGV0UmVxdWVzdEF3YXJlKSBhY3Rpb24pLnNldFBvcnRsZXRSZXF1ZXN0KHJlcXVlc3QpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIFBvcnRsZXRSZXNwb25zZUF3YXJlKSB7CisgICAgICAgICAgICBQb3J0bGV0UmVzcG9uc2UgcmVzcG9uc2UgPSAoUG9ydGxldFJlc3BvbnNlKSBjb250ZXh0LmdldChSRVNQT05TRSk7CisgICAgICAgICAgICAoKFBvcnRsZXRSZXNwb25zZUF3YXJlKSBhY3Rpb24pLnNldFBvcnRsZXRSZXNwb25zZShyZXNwb25zZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIFByaW5jaXBhbEF3YXJlKSB7CisgICAgICAgICAgICBQb3J0bGV0UmVxdWVzdCByZXF1ZXN0ID0gKFBvcnRsZXRSZXF1ZXN0KSBjb250ZXh0LmdldChSRVFVRVNUKTsKKyAgICAgICAgICAgICgoUHJpbmNpcGFsQXdhcmUpIGFjdGlvbikuc2V0UHJpbmNpcGFsUHJveHkobmV3IFBvcnRsZXRQcmluY2lwYWxQcm94eShyZXF1ZXN0KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIFBvcnRsZXRDb250ZXh0QXdhcmUpIHsKKyAgICAgICAgICAgIFBvcnRsZXRDb250ZXh0IHBvcnRsZXRDb250ZXh0ID0gKFBvcnRsZXRDb250ZXh0KSBjb250ZXh0LmdldChTVFJVVFNfUE9SVExFVF9DT05URVhUKTsKKyAgICAgICAgICAgICgoUG9ydGxldENvbnRleHRBd2FyZSkgYWN0aW9uKS5zZXRQb3J0bGV0Q29udGV4dChwb3J0bGV0Q29udGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIFBvcnRsZXRDb25maWdBd2FyZSkgeworICAgICAgICAJUG9ydGxldENvbmZpZyBwb3J0bGV0Q29uZmlnID0gKFBvcnRsZXRDb25maWcpY29udGV4dC5nZXQoUE9SVExFVF9DT05GSUcpOworICAgICAgICAJKChQb3J0bGV0Q29uZmlnQXdhcmUpIGFjdGlvbikuc2V0UG9ydGxldENvbmZpZyhwb3J0bGV0Q29uZmlnKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYWN0aW9uIGluc3RhbmNlb2YgUG9ydGxldFByZWZlcmVuY2VzQXdhcmUpIHsKKyAgICAgICAgCVBvcnRsZXRSZXF1ZXN0IHJlcXVlc3QgPSAoUG9ydGxldFJlcXVlc3QpIGNvbnRleHQuZ2V0KFJFUVVFU1QpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBDaGVjayBpZiBydW5uaW5nIGluIGEgc2VydmxldCBlbnZpcm9ubWVudAorICAgICAgICAgICAgaWYgKHJlcXVlc3QgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGlmIChMT0cuaXNXYXJuRW5hYmxlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIExPRy53YXJuKCJUaGlzIHBvcnRsZXQgcHJlZmVyZW5jZXMgaW1wbGVtZW50YXRpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCBkdXJpbmcgZGV2ZWxvcG1lbnQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKChQb3J0bGV0UHJlZmVyZW5jZXNBd2FyZSlhY3Rpb24pLnNldFBvcnRsZXRQcmVmZXJlbmNlcyhuZXcgU2VydmxldFBvcnRsZXRQcmVmZXJlbmNlcyhBY3Rpb25Db250ZXh0LmdldENvbnRleHQoKS5nZXRTZXNzaW9uKCkpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAJKChQb3J0bGV0UHJlZmVyZW5jZXNBd2FyZSlhY3Rpb24pLnNldFBvcnRsZXRQcmVmZXJlbmNlcyhyZXF1ZXN0LmdldFByZWZlcmVuY2VzKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBpbnZvY2F0aW9uLmludm9rZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2ludGVyY2VwdG9yL1BvcnRsZXRDb25maWdBd2FyZS5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvaW50ZXJjZXB0b3IvUG9ydGxldENvbmZpZ0F3YXJlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDMyZGUyNQotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2ludGVyY2VwdG9yL1BvcnRsZXRDb25maWdBd2FyZS5qYXZhCkBAIC0wLDAgKzEsMzQgQEAKKy8qDQorICogJElkOiAkDQorICoNCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lDQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlDQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24NCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlDQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQ0KKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UNCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICoNCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICoNCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsDQorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4NCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkNCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUNCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zDQorICogdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQorcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5pbnRlcmNlcHRvcjsNCisNCitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0Q29uZmlnOw0KKw0KKw0KKy8qKg0KKyAqIEFjdGlvbnMgdGhhdCB3YW50cyBhIHJlZmVyZW5jZSB0byB0aGUgUG9ydGxldENvbmZpZyBvYmplY3QgY2FuDQorICogaW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlLg0KKyAqDQorICovDQorcHVibGljIGludGVyZmFjZSBQb3J0bGV0Q29uZmlnQXdhcmUgew0KKwkNCisJdm9pZCBzZXRQb3J0bGV0Q29uZmlnKFBvcnRsZXRDb25maWcgcG9ydGxldENvbmZpZyk7DQorfQ0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2ludGVyY2VwdG9yL1BvcnRsZXRDb250ZXh0QXdhcmUuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2ludGVyY2VwdG9yL1BvcnRsZXRDb250ZXh0QXdhcmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OWI2MTNlCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvaW50ZXJjZXB0b3IvUG9ydGxldENvbnRleHRBd2FyZS5qYXZhCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuaW50ZXJjZXB0b3I7CisKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRDb250ZXh0OworCitwdWJsaWMgaW50ZXJmYWNlIFBvcnRsZXRDb250ZXh0QXdhcmUgeworCisJdm9pZCBzZXRQb3J0bGV0Q29udGV4dChQb3J0bGV0Q29udGV4dCBwb3J0bGV0Q29udGV4dCk7CisKK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2ludGVyY2VwdG9yL1BvcnRsZXRQcmVmZXJlbmNlc0F3YXJlLmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9pbnRlcmNlcHRvci9Qb3J0bGV0UHJlZmVyZW5jZXNBd2FyZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2OTJiOWMKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9pbnRlcmNlcHRvci9Qb3J0bGV0UHJlZmVyZW5jZXNBd2FyZS5qYXZhCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuaW50ZXJjZXB0b3I7CisKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRQcmVmZXJlbmNlczsKKworCisvKioKKyAqIEFsbCBBY3Rpb25zIHRoYXQgd2FudCB0byBoYXZlIGFjY2VzcyB0byB0aGUgcG9ydGxldCBwcmVmZXJlbmNlcyBzaG91bGQKKyAqIGltcGxlbWVudCB0aGlzIGludGVyZmFjZS4gIElmIHJ1bm5pbmcgaW4gYSBzZXJ2bGV0IGVudmlyb25tZW50LCBhbgorICogYXBwcm9wcmlhdGUgdGVzdGluZyBpbXBsZW1lbnRhdGlvbiB3aWxsIGJlIHByb3ZpZGVkLgorICovCitwdWJsaWMgaW50ZXJmYWNlIFBvcnRsZXRQcmVmZXJlbmNlc0F3YXJlIHsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIEhUVFAgcmVxdWVzdCBvYmplY3QgaW4gaW1wbGVtZW50aW5nIGNsYXNzZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCB0aGUgSFRUUCByZXF1ZXN0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBvcnRsZXRQcmVmZXJlbmNlcyhQb3J0bGV0UHJlZmVyZW5jZXMgcHJlZnMpOworfQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvaW50ZXJjZXB0b3IvUG9ydGxldFByaW5jaXBhbFByb3h5LmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9pbnRlcmNlcHRvci9Qb3J0bGV0UHJpbmNpcGFsUHJveHkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMWNkMDgyCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvaW50ZXJjZXB0b3IvUG9ydGxldFByaW5jaXBhbFByb3h5LmphdmEKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5pbnRlcmNlcHRvcjsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5pbnRlcmNlcHRvci5QcmluY2lwYWxQcm94eTsKKworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZhLnNlY3VyaXR5LlByaW5jaXBhbDsKKworLyoqCisgKiBQcmluY2lwYWxQcm94eSBpbXBsZW1lbnRhdGlvbiBmb3IgdXNpbmcgUG9ydGxldFJlcXVlc3QgUHJpbmNpcGFsIHJlbGF0ZWQgbWV0aG9kcy4KKyAqLworcHVibGljIGNsYXNzIFBvcnRsZXRQcmluY2lwYWxQcm94eSBpbXBsZW1lbnRzIFByaW5jaXBhbFByb3h5IHsKKworICAgIHByaXZhdGUgUG9ydGxldFJlcXVlc3QgcmVxdWVzdDsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdHMgYSBwcm94eQorICAgICAqCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIHVuZGVybHlpbmcgcmVxdWVzdAorICAgICAqLworICAgIHB1YmxpYyBQb3J0bGV0UHJpbmNpcGFsUHJveHkoUG9ydGxldFJlcXVlc3QgcmVxdWVzdCkgeworICAgICAgICB0aGlzLnJlcXVlc3QgPSByZXF1ZXN0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFRydWUgaWYgdGhlIHVzZXIgaXMgaW4gdGhlIGdpdmVuIHJvbGUKKyAgICAgKgorICAgICAqIEBwYXJhbSByb2xlIFRoZSByb2xlCisgICAgICogQHJldHVybiBUcnVlIGlmIHRoZSB1c2VyIGlzIGluIHRoYXQgcm9sZQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzVXNlckluUm9sZShTdHJpbmcgcm9sZSkgeworICAgICAgICByZXR1cm4gcmVxdWVzdC5pc1VzZXJJblJvbGUocm9sZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgdXNlciBwcmluY2lwYWwKKyAgICAgKgorICAgICAqIEByZXR1cm4gVGhlIHByaW5jaXBhbAorICAgICAqLworICAgIHB1YmxpYyBQcmluY2lwYWwgZ2V0VXNlclByaW5jaXBhbCgpIHsKKyAgICAgICAgcmV0dXJuIHJlcXVlc3QuZ2V0VXNlclByaW5jaXBhbCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldHMgdGhlIHVzZXIgaWQKKyAgICAgKgorICAgICAqIEByZXR1cm4gVGhlIHVzZXIgaWQKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFJlbW90ZVVzZXIoKSB7CisgICAgICAgIHJldHVybiByZXF1ZXN0LmdldFJlbW90ZVVzZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBJcyB0aGUgcmVxdWVzdCB1c2luZyBodHRwcz8KKyAgICAgKgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB1c2luZyBodHRwcworICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzUmVxdWVzdFNlY3VyZSgpIHsKKyAgICAgICAgcmV0dXJuIHJlcXVlc3QuaXNTZWN1cmUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSByZXF1ZXN0LgorICAgICAqCisgICAgICogQHJldHVybiBUaGUgcmVxdWVzdAorICAgICAqIEB0aHJvd3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24gbm90IHN1cHBvcnRlZCBpbiB0aGlzIGltcGxlbWVudGF0aW9uLgorICAgICAqIEBkZXByZWNhdGVkIFRvIG9idGFpbiB0aGUgSHR0cFNlcnZsZXRSZXF1ZXN0IGluIHlvdXIgYWN0aW9uLCB1c2UKKyAgICAgKiAgICAgICAgICAgICB7QGxpbmsgb3JnLmFwYWNoZS5zdHJ1dHMyLnNlcnZsZXQuU2VydmxldFJlcXVlc3RBd2FyZX0sIHNpbmNlIHRoaXMgbWV0aG9kIHdpbGwgYmUgZHJvcHBlZCBpbiBmdXR1cmUuCisgICAgICovCisgICAgcHVibGljIEh0dHBTZXJ2bGV0UmVxdWVzdCBnZXRSZXF1ZXN0KCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIlVzYWdlIG9mIGdldFJlcXVlc3QoKSBtZXRob2QgaXMgZGVwcmVjYWRldCBhbmQgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBpbXBsZW1lbnRhdGlvbiIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2ludGVyY2VwdG9yL1BvcnRsZXRSZXF1ZXN0QXdhcmUuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2ludGVyY2VwdG9yL1BvcnRsZXRSZXF1ZXN0QXdhcmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjNmOWI0Ci0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvaW50ZXJjZXB0b3IvUG9ydGxldFJlcXVlc3RBd2FyZS5qYXZhCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuaW50ZXJjZXB0b3I7CisKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRSZXF1ZXN0OworCitwdWJsaWMgaW50ZXJmYWNlIFBvcnRsZXRSZXF1ZXN0QXdhcmUgeworCisJdm9pZCBzZXRQb3J0bGV0UmVxdWVzdChQb3J0bGV0UmVxdWVzdCByZXF1ZXN0KTsKKworfQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvaW50ZXJjZXB0b3IvUG9ydGxldFJlc3BvbnNlQXdhcmUuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2ludGVyY2VwdG9yL1BvcnRsZXRSZXNwb25zZUF3YXJlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVhMTJlOAotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2ludGVyY2VwdG9yL1BvcnRsZXRSZXNwb25zZUF3YXJlLmphdmEKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5pbnRlcmNlcHRvcjsKKworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldFJlc3BvbnNlOworCitwdWJsaWMgaW50ZXJmYWNlIFBvcnRsZXRSZXNwb25zZUF3YXJlIHsKKworCXZvaWQgc2V0UG9ydGxldFJlc3BvbnNlKFBvcnRsZXRSZXNwb25zZSByZXNwb25zZSk7CisKK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2ludGVyY2VwdG9yL1BvcnRsZXRTdGF0ZUludGVyY2VwdG9yLmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9pbnRlcmNlcHRvci9Qb3J0bGV0U3RhdGVJbnRlcmNlcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZmU2YzcKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9pbnRlcmNlcHRvci9Qb3J0bGV0U3RhdGVJbnRlcmNlcHRvci5qYXZhCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuaW50ZXJjZXB0b3I7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25JbnZvY2F0aW9uOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmludGVyY2VwdG9yLkFic3RyYWN0SW50ZXJjZXB0b3I7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIudXRpbC5Db21wb3VuZFJvb3Q7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIudXRpbC5WYWx1ZVN0YWNrOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnV0aWwubG9nZ2luZy5Mb2dnZXI7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIudXRpbC5sb2dnaW5nLkxvZ2dlckZhY3Rvcnk7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxhbmcuU3RyaW5nVXRpbHM7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuUG9ydGxldEFjdGlvbkNvbnN0YW50czsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5kaXNwYXRjaGVyLkRpcmVjdFJlbmRlckZyb21FdmVudEFjdGlvbjsKKworaW1wb3J0IGphdmF4LnBvcnRsZXQuQWN0aW9uUmVzcG9uc2U7CitpbXBvcnQgamF2YXgucG9ydGxldC5SZW5kZXJSZXF1ZXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK3B1YmxpYyBjbGFzcyBQb3J0bGV0U3RhdGVJbnRlcmNlcHRvciBleHRlbmRzIEFic3RyYWN0SW50ZXJjZXB0b3IgaW1wbGVtZW50cyBQb3J0bGV0QWN0aW9uQ29uc3RhbnRzIHsKKworCXByaXZhdGUgZmluYWwgc3RhdGljIExvZ2dlciBMT0cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcihQb3J0bGV0U3RhdGVJbnRlcmNlcHRvci5jbGFzcyk7CisKKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSA2MTM4NDUyMDYzMzUzOTExNzg0TDsKKworCUBPdmVycmlkZQorCXB1YmxpYyBTdHJpbmcgaW50ZXJjZXB0KEFjdGlvbkludm9jYXRpb24gaW52b2NhdGlvbikgdGhyb3dzIEV4Y2VwdGlvbiB7CisJCUludGVnZXIgcGhhc2UgPSAoSW50ZWdlcikgaW52b2NhdGlvbi5nZXRJbnZvY2F0aW9uQ29udGV4dCgpLmdldChQSEFTRSk7CisJCWlmIChSRU5ERVJfUEhBU0UuZXF1YWxzKHBoYXNlKSkgeworCQkJcmVzdG9yZVN0YWNrKGludm9jYXRpb24pOworCQkJcmV0dXJuIGludm9jYXRpb24uaW52b2tlKCk7CisJCX0gZWxzZSBpZiAoRVZFTlRfUEhBU0UuZXF1YWxzKHBoYXNlKSkgeworCQkJdHJ5IHsKKwkJCQlyZXR1cm4gaW52b2NhdGlvbi5pbnZva2UoKTsKKwkJCX0gZmluYWxseSB7CisJCQkJc2F2ZVN0YWNrKGludm9jYXRpb24pOworCQkJfQorCQl9IGVsc2UgeworCQkJcmV0dXJuIGludm9jYXRpb24uaW52b2tlKCk7CisJCX0KKwl9CisKKwlAU3VwcHJlc3NXYXJuaW5ncygidW5jaGVja2VkIikKKwlwcml2YXRlIHZvaWQgc2F2ZVN0YWNrKEFjdGlvbkludm9jYXRpb24gaW52b2NhdGlvbikgeworCQlNYXAgc2Vzc2lvbiA9IGludm9jYXRpb24uZ2V0SW52b2NhdGlvbkNvbnRleHQoKS5nZXRTZXNzaW9uKCk7CisJCXNlc3Npb24ucHV0KFNUQUNLX0ZST01fRVZFTlRfUEhBU0UsIGludm9jYXRpb24uZ2V0U3RhY2soKSk7CisJCUFjdGlvblJlc3BvbnNlIGFjdGlvblJlc3BvbnNlID0gKEFjdGlvblJlc3BvbnNlKSBpbnZvY2F0aW9uLmdldEludm9jYXRpb25Db250ZXh0KCkuZ2V0KFJFU1BPTlNFKTsKKwkJYWN0aW9uUmVzcG9uc2Uuc2V0UmVuZGVyUGFyYW1ldGVyKEVWRU5UX0FDVElPTiwgInRydWUiKTsKKwl9CisKKwlAU3VwcHJlc3NXYXJuaW5ncygidW5jaGVja2VkIikKKwlwcml2YXRlIHZvaWQgcmVzdG9yZVN0YWNrKEFjdGlvbkludm9jYXRpb24gaW52b2NhdGlvbikgeworCQlSZW5kZXJSZXF1ZXN0IHJlcXVlc3QgPSAoUmVuZGVyUmVxdWVzdCkgaW52b2NhdGlvbi5nZXRJbnZvY2F0aW9uQ29udGV4dCgpLmdldChSRVFVRVNUKTsKKwkJaWYgKFN0cmluZ1V0aWxzLmlzTm90RW1wdHkocmVxdWVzdC5nZXRQYXJhbWV0ZXIoRVZFTlRfQUNUSU9OKSkpIHsKKwkJCWlmKCFpc1Byb3BlclByZyhpbnZvY2F0aW9uKSkgeworCQkJCWlmIChMT0cuaXNEZWJ1Z0VuYWJsZWQoKSkgTE9HLmRlYnVnKCJSZXN0b3JpbmcgdmFsdWUgc3RhY2sgZnJvbSBldmVudCBwaGFzZSIpOworCQkJCVZhbHVlU3RhY2sgb2xkU3RhY2sgPSAoVmFsdWVTdGFjaykgaW52b2NhdGlvbi5nZXRJbnZvY2F0aW9uQ29udGV4dCgpLmdldFNlc3Npb24oKS5nZXQoCisJCQkJU1RBQ0tfRlJPTV9FVkVOVF9QSEFTRSk7CisJCQkJaWYgKG9sZFN0YWNrICE9IG51bGwpIHsKKwkJCQkJQ29tcG91bmRSb290IG9sZFJvb3QgPSBvbGRTdGFjay5nZXRSb290KCk7CisJCQkJCVZhbHVlU3RhY2sgY3VycmVudFN0YWNrID0gaW52b2NhdGlvbi5nZXRTdGFjaygpOworCQkJCQlDb21wb3VuZFJvb3Qgcm9vdCA9IGN1cnJlbnRTdGFjay5nZXRSb290KCk7CisJCQkJCXJvb3QuYWRkQWxsKDAsIG9sZFJvb3QpOworCQkJCQlpZiAoTE9HLmlzRGVidWdFbmFibGVkKCkpIExPRy5kZWJ1ZygiUmVzdG9yZWQgc3RhY2siKTsKKwkJCQl9CisJCQl9CisJCQllbHNlIHsKKwkJCQlpZiAoTE9HLmlzRGVidWdFbmFibGVkKCkpIExPRy5kZWJ1ZygiV29uJ3QgcmVzdG9yZSBzdGFjayBmcm9tIGV2ZW50IHBoYXNlIHNpbmNlIGl0J3MgYSBwcm9wZXIgUFJHIHJlcXVlc3QiKTsKKwkJCX0KKwkJfQorCX0KKworCXByaXZhdGUgYm9vbGVhbiBpc1Byb3BlclByZyhBY3Rpb25JbnZvY2F0aW9uIGludm9jYXRpb24pIHsKKwkJcmV0dXJuICEoaW52b2NhdGlvbi5nZXRBY3Rpb24oKSBpbnN0YW5jZW9mIERpcmVjdFJlbmRlckZyb21FdmVudEFjdGlvbik7CisJfQorCit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9pbnRlcmNlcHRvci9TZXJ2bGV0UG9ydGxldFByZWZlcmVuY2VzLmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9pbnRlcmNlcHRvci9TZXJ2bGV0UG9ydGxldFByZWZlcmVuY2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE5MTRiMwotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2ludGVyY2VwdG9yL1NlcnZsZXRQb3J0bGV0UHJlZmVyZW5jZXMuamF2YQpAQCAtMCwwICsxLDk2IEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LmludGVyY2VwdG9yOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuVmVjdG9yOworCitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0UHJlZmVyZW5jZXM7CitpbXBvcnQgamF2YXgucG9ydGxldC5SZWFkT25seUV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlZhbGlkYXRvckV4Y2VwdGlvbjsKKworLyoqCisgKiBTaW1wbGUgcG9ydGxldCBwcmVmZXJlbmNlcyBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMgYSBtYXAgaW4gdGhlIFNlc3Npb24KKyAqIGFzIHN0b3JhZ2UuCisgKi8KK3B1YmxpYyBjbGFzcyBTZXJ2bGV0UG9ydGxldFByZWZlcmVuY2VzIGltcGxlbWVudHMgUG9ydGxldFByZWZlcmVuY2VzIHsKKworICAgIHByaXZhdGUgTWFwIHNlc3Npb247CisgICAgcHJpdmF0ZSBTdHJpbmcgUFJFRkVSRU5DRVNfS0VZID0gIl9wb3J0bGV0LXByZWZlcmVuY2VzIjsKKyAgICAKKyAgICBwdWJsaWMgU2VydmxldFBvcnRsZXRQcmVmZXJlbmNlcyhNYXAgc2Vzc2lvbikgeworICAgICAgICB0aGlzLnNlc3Npb24gPSBzZXNzaW9uOworICAgIH0KKyAgICAKKyAgICBwdWJsaWMgTWFwIGdldE1hcCgpIHsKKyAgICAgICAgTWFwIG1hcCA9IChNYXApIHNlc3Npb24uZ2V0KFBSRUZFUkVOQ0VTX0tFWSk7CisgICAgICAgIGlmIChtYXAgPT0gbnVsbCkgeworICAgICAgICAgICAgbWFwID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIHNlc3Npb24ucHV0KFBSRUZFUkVOQ0VTX0tFWSwgbWFwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWFwOworICAgIH0KKworICAgIHB1YmxpYyBFbnVtZXJhdGlvbiBnZXROYW1lcygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBWZWN0b3IoZ2V0TWFwKCkua2V5U2V0KCkpLmVsZW1lbnRzKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRWYWx1ZShTdHJpbmcga2V5LCBTdHJpbmcgZGVmKSB7CisgICAgICAgIFN0cmluZyB2YWwgPSAoU3RyaW5nKSBnZXRNYXAoKS5nZXQoa2V5KTsKKyAgICAgICAgaWYgKHZhbCA9PSBudWxsKSB7CisgICAgICAgICAgICB2YWwgPSBkZWY7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbDsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nW10gZ2V0VmFsdWVzKFN0cmluZyBrZXksIFN0cmluZ1tdIGRlZikgeworICAgICAgICBTdHJpbmdbXSB2YWwgPSAoU3RyaW5nW10pIGdldE1hcCgpLmdldChrZXkpOworICAgICAgICBpZiAodmFsID09IG51bGwpIHsKKyAgICAgICAgICAgIHZhbCA9IGRlZjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGlzUmVhZE9ubHkoU3RyaW5nIGFyZzApIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlc2V0KFN0cmluZyBhcmcwKSB0aHJvd3MgUmVhZE9ubHlFeGNlcHRpb24geworICAgICAgICBzZXNzaW9uLnB1dChQUkVGRVJFTkNFU19LRVksIG5ldyBIYXNoTWFwKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFZhbHVlKFN0cmluZyBrZXksIFN0cmluZyB2YWx1ZSkgdGhyb3dzIFJlYWRPbmx5RXhjZXB0aW9uIHsKKyAgICAgICAgZ2V0TWFwKCkucHV0KGtleSwgdmFsdWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFZhbHVlcyhTdHJpbmcga2V5LCBTdHJpbmdbXSB2YWx1ZSkgdGhyb3dzIFJlYWRPbmx5RXhjZXB0aW9uIHsKKyAgICAgICAgZ2V0TWFwKCkucHV0KGtleSwgdmFsdWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHN0b3JlKCkgdGhyb3dzIElPRXhjZXB0aW9uLCBWYWxpZGF0b3JFeGNlcHRpb24geworICAgICAgICAKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3Jlc3VsdC9Qb3J0bGV0QWN0aW9uUmVkaXJlY3RSZXN1bHQuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3Jlc3VsdC9Qb3J0bGV0QWN0aW9uUmVkaXJlY3RSZXN1bHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzk0YTFmCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvcmVzdWx0L1BvcnRsZXRBY3Rpb25SZWRpcmVjdFJlc3VsdC5qYXZhCkBAIC0wLDAgKzEsMjY5IEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LnJlc3VsdDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaW5rZWRIYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRNb2RlOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuU2VydmxldEFjdGlvblJlZGlyZWN0UmVzdWx0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5kaXNwYXRjaGVyLm1hcHBlci5BY3Rpb25NYXBwZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIubWFwcGVyLkFjdGlvbk1hcHBpbmc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuUG9ydGxldEFjdGlvbkNvbnN0YW50czsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIudmlld3MudXRpbC5VcmxIZWxwZXI7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25JbnZvY2F0aW9uOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnV0aWwucmVmbGVjdGlvbi5SZWZsZWN0aW9uRXhjZXB0aW9uSGFuZGxlcjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi51dGlsLnJlZmxlY3Rpb24uUmVmbGVjdGlvbkV4Y2VwdGlvbjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi51dGlsLmxvZ2dpbmcuTG9nZ2VyOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnV0aWwubG9nZ2luZy5Mb2dnZXJGYWN0b3J5OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmNvbmZpZy5lbnRpdGllcy5SZXN1bHRDb25maWc7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuaW5qZWN0LkluamVjdDsKKworLyoqCisgKgorICogUG9ydGxldCBtb2RpZmljYXRpb24gb2YgdGhlIHtAbGluayBTZXJ2bGV0QWN0aW9uUmVkaXJlY3RSZXN1bHR9LgorICoKKyAqIDwhLS0gU1RBUlQgU05JUFBFVDogZGVzY3JpcHRpb24gLS0+CisgKgorICogVGhpcyByZXN1bHQgdXNlcyB0aGUge0BsaW5rIEFjdGlvbk1hcHBlcn0gcHJvdmlkZWQgYnkgdGhlCisgKiB7QGxpbmsgQWN0aW9uTWFwcGVyRmFjdG9yeX0gdG8gaW5zdHJ1Y3QgdGhlIHJlbmRlciBwaGFzZSB0byBpbnZva2UgdGhlCisgKiBzcGVjaWZpZWQgYWN0aW9uIGFuZCAob3B0aW9uYWwpIG5hbWVzcGFjZS4gVGhpcyBpcyBiZXR0ZXIgdGhhbiB0aGUKKyAqIHtAbGluayBQb3J0bGV0UmVzdWx0fSBiZWNhdXNlIGl0IGRvZXMgbm90IHJlcXVpcmUgeW91IHRvIGVuY29kZSB0aGUgVVJMCisgKiBwYXR0ZXJucyBwcm9jZXNzZWQgYnkgdGhlIHtAbGluayBBY3Rpb25NYXBwZXJ9IGluIHRvIHlvdXIgc3RydXRzLnhtbAorICogY29uZmlndXJhdGlvbiBmaWxlcy4gVGhpcyBtZWFucyB5b3UgY2FuIGNoYW5nZSB5b3VyIFVSTCBwYXR0ZXJucyBhdCBhbnkgcG9pbnQKKyAqIGFuZCB5b3VyIGFwcGxpY2F0aW9uIHdpbGwgc3RpbGwgd29yay4gSXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdGhhdCBpZiB5b3UKKyAqIGFyZSByZWRpcmVjdGluZyB0byBhbm90aGVyIGFjdGlvbiwgeW91IHVzZSB0aGlzIHJlc3VsdCByYXRoZXIgdGhhbiB0aGUKKyAqIHN0YW5kYXJkIHJlZGlyZWN0IHJlc3VsdC4KKyAqCisgKiBTZWUgZXhhbXBsZXMgYmVsb3cgZm9yIGFuIGV4YW1wbGUgb2YgaG93IHJlcXVlc3QgcGFyYW1ldGVycyBjb3VsZCBiZSBwYXNzZWQKKyAqIGluLgorICoKKyAqIDwhLS0gRU5EIFNOSVBQRVQ6IGRlc2NyaXB0aW9uIC0tPgorICoKKyAqIDxiPlRoaXMgcmVzdWx0IHR5cGUgdGFrZXMgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzOjwvYj4KKyAqCisgKiA8IS0tIFNUQVJUIFNOSVBQRVQ6IHBhcmFtcyAtLT4KKyAqCisgKiA8dWw+CisgKgorICogPGxpPjxiPmFjdGlvbk5hbWUgKGRlZmF1bHQpPC9iPiAtIHRoZSBuYW1lIG9mIHRoZSBhY3Rpb24gdGhhdCB3aWxsIGJlCisgKiByZWRpcmVjdCB0bzwvbGk+CisgKgorICogPGxpPjxiPm5hbWVzcGFjZTwvYj4gLSB1c2VkIHRvIGRldGVybWluZSB3aGljaCBuYW1lc3BhY2UgdGhlIGFjdGlvbiBpcyBpbgorICogdGhhdCB3ZSdyZSByZWRpcmVjdGluZyB0byAuIElmIG5hbWVzcGFjZSBpcyBudWxsLCB0aGlzIGRlZmF1bHRzIHRvIHRoZQorICogY3VycmVudCBuYW1lc3BhY2U8L2xpPgorICoKKyAqIDwvdWw+CisgKgorICogPCEtLSBFTkQgU05JUFBFVDogcGFyYW1zIC0tPgorICoKKyAqIDxiPkV4YW1wbGU6PC9iPgorICoKKyAqIDxwcmU+CisgKiAmbHQ7IS0tIFNUQVJUIFNOSVBQRVQ6IGV4YW1wbGUgLS0mZ3Q7CisgKiAgJmx0O3BhY2thZ2UgbmFtZT0mcXVvdDtwdWJsaWMmcXVvdDsgZXh0ZW5kcz0mcXVvdDtzdHJ1dHMtZGVmYXVsdCZxdW90OyZndDsKKyAqICAgICAgJmx0O2FjdGlvbiBuYW1lPSZxdW90O2xvZ2luJnF1b3Q7IGNsYXNzPSZxdW90Oy4uLiZxdW90OyZndDsKKyAqICAgICAgICAgICZsdDshLS0gUmVkaXJlY3QgdG8gYW5vdGhlciBuYW1lc3BhY2UgLS0mZ3Q7CisgKiAgICAgICAgICAmbHQ7cmVzdWx0IHR5cGU9JnF1b3Q7cmVkaXJlY3RBY3Rpb24mcXVvdDsmZ3Q7CisgKiAgICAgICAgICAgICAgJmx0O3BhcmFtIG5hbWU9JnF1b3Q7YWN0aW9uTmFtZSZxdW90OyZndDtkYXNoYm9hcmQmbHQ7L3BhcmFtJmd0OworICogICAgICAgICAgICAgICZsdDtwYXJhbSBuYW1lPSZxdW90O25hbWVzcGFjZSZxdW90OyZndDsvc2VjdXJlJmx0Oy9wYXJhbSZndDsKKyAqICAgICAgICAgICZsdDsvcmVzdWx0Jmd0OworICogICAgICAmbHQ7L2FjdGlvbiZndDsKKyAqICAmbHQ7L3BhY2thZ2UmZ3Q7CisgKgorICogICZsdDtwYWNrYWdlIG5hbWU9JnF1b3Q7c2VjdXJlJnF1b3Q7IGV4dGVuZHM9JnF1b3Q7c3RydXRzLWRlZmF1bHQmcXVvdDsgbmFtZXNwYWNlPSZxdW90Oy9zZWN1cmUmcXVvdDsmZ3Q7CisgKiAgICAgICZsdDstLSBSZWRpcmVjdCB0byBhbiBhY3Rpb24gaW4gdGhlIHNhbWUgbmFtZXNwYWNlIC0tJmd0OworICogICAgICAmbHQ7YWN0aW9uIG5hbWU9JnF1b3Q7ZGFzaGJvYXJkJnF1b3Q7IGNsYXNzPSZxdW90Oy4uLiZxdW90OyZndDsKKyAqICAgICAgICAgICZsdDtyZXN1bHQmZ3Q7ZGFzaGJvYXJkLmpzcCZsdDsvcmVzdWx0Jmd0OworICogICAgICAgICAgJmx0O3Jlc3VsdCBuYW1lPSZxdW90O2Vycm9yJnF1b3Q7IHR5cGU9JnF1b3Q7cmVkaXJlY3RBY3Rpb24mcXVvdDsmZ3Q7ZXJyb3ImbHQ7L3Jlc3VsdCZndDsKKyAqICAgICAgJmx0Oy9hY3Rpb24mZ3Q7CisgKgorICogICAgICAmbHQ7YWN0aW9uIG5hbWU9JnF1b3Q7ZXJyb3ImcXVvdDsgY2xhc3M9JnF1b3Q7Li4uJnF1b3Q7Jmd0OworICogICAgICAgICAgJmx0O3Jlc3VsdCZndDtlcnJvci5qc3AmbHQ7L3Jlc3VsdCZndDsKKyAqICAgICAgJmx0Oy9hY3Rpb24mZ3Q7CisgKiAgJmx0Oy9wYWNrYWdlJmd0OworICoKKyAqICAmbHQ7cGFja2FnZSBuYW1lPSZxdW90O3Bhc3NpbmdSZXF1ZXN0UGFyYW1ldGVycyZxdW90OyBleHRlbmRzPSZxdW90O3N0cnV0cy1kZWZhdWx0JnF1b3Q7IG5hbWVzcGFjZT0mcXVvdDsvcGFzc2luZ1JlcXVlc3RQYXJhbWV0ZXJzJnF1b3Q7Jmd0OworICogICAgICZsdDstLSBQYXNzIHBhcmFtZXRlcnMgKHJlcG9ydFR5cGUsIHdpZHRoIGFuZCBoZWlnaHQpIC0tJmd0OworICogICAgICZsdDshLS0KKyAqICAgICBUaGUgcmVkaXJlY3RBY3Rpb24gdXJsIGdlbmVyYXRlZCB3aWxsIGJlIDoKKyAqICAgICAvZ2VuUmVwb3J0L2dlbmVyYXRlUmVwb3J0LmFjdGlvbj9yZXBvcnRUeXBlPXBpZSZhbXA7d2lkdGg9MTAwJmFtcDtoZWlnaHQ9MTAwCisgKiAgICAgLS0mZ3Q7CisgKiAgICAgJmx0O2FjdGlvbiBuYW1lPSZxdW90O2dhdGhlclJlcG9ydEluZm8mcXVvdDsgY2xhc3M9JnF1b3Q7Li4uJnF1b3Q7Jmd0OworICogICAgICAgICZsdDtyZXN1bHQgbmFtZT0mcXVvdDtzaG93UmVwb3J0UmVzdWx0JnF1b3Q7IHR5cGU9JnF1b3Q7cmVkaXJlY3RBY3Rpb24mcXVvdDsmZ3Q7CisgKiAgICAgICAgICAgJmx0O3BhcmFtIG5hbWU9JnF1b3Q7YWN0aW9uTmFtZSZxdW90OyZndDtnZW5lcmF0ZVJlcG9ydCZsdDsvcGFyYW0mZ3Q7CisgKiAgICAgICAgICAgJmx0O3BhcmFtIG5hbWU9JnF1b3Q7bmFtZXNwYWNlJnF1b3Q7Jmd0Oy9nZW5SZXBvcnQmbHQ7L3BhcmFtJmd0OworICogICAgICAgICAgICZsdDtwYXJhbSBuYW1lPSZxdW90O3JlcG9ydFR5cGUmcXVvdDsmZ3Q7cGllJmx0Oy9wYXJhbSZndDsKKyAqICAgICAgICAgICAmbHQ7cGFyYW0gbmFtZT0mcXVvdDt3aWR0aCZxdW90OyZndDsxMDAmbHQ7L3BhcmFtJmd0OworICogICAgICAgICAgICZsdDtwYXJhbSBuYW1lPSZxdW90O2hlaWdodCZxdW90OyZndDsxMDAmbHQ7L3BhcmFtJmd0OworICogICAgICAgICZsdDsvcmVzdWx0Jmd0OworICogICAgICZsdDsvYWN0aW9uJmd0OworICogICZsdDsvcGFja2FnZSZndDsKKyAqCisgKgorICogICZsdDshLS0gRU5EIFNOSVBQRVQ6IGV4YW1wbGUgLS0mZ3Q7CisgKiA8L3ByZT4KKyAqCisgKiBAc2VlIEFjdGlvbk1hcHBlcgorICovCitwdWJsaWMgY2xhc3MgUG9ydGxldEFjdGlvblJlZGlyZWN0UmVzdWx0IGV4dGVuZHMgUG9ydGxldFJlc3VsdCBpbXBsZW1lbnRzIFJlZmxlY3Rpb25FeGNlcHRpb25IYW5kbGVyIHsKKworCXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC03NjI3Mzg4OTM2NjgzNTYyNTU3TDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvZ2dlciBMT0cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcihQb3J0bGV0QWN0aW9uUmVkaXJlY3RSZXN1bHQuY2xhc3MpOworCisgICAgLyoqIFRoZSBkZWZhdWx0IHBhcmFtZXRlciAqLworCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFRfUEFSQU0gPSAiYWN0aW9uTmFtZSI7CisKKwlwcm90ZWN0ZWQgU3RyaW5nIGFjdGlvbk5hbWU7CisKKwlwcm90ZWN0ZWQgU3RyaW5nIG5hbWVzcGFjZTsKKworCXByb3RlY3RlZCBTdHJpbmcgbWV0aG9kOworCisJcHJpdmF0ZSBNYXA8U3RyaW5nLCBTdHJpbmc+IHJlcXVlc3RQYXJhbWV0ZXJzID0gbmV3IExpbmtlZEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+KCk7CisKKwlwcml2YXRlIEFjdGlvbk1hcHBlciBhY3Rpb25NYXBwZXI7CisKKwlwdWJsaWMgUG9ydGxldEFjdGlvblJlZGlyZWN0UmVzdWx0KCkgeworCQlzdXBlcigpOworCX0KKworCXB1YmxpYyBQb3J0bGV0QWN0aW9uUmVkaXJlY3RSZXN1bHQoU3RyaW5nIGFjdGlvbk5hbWUpIHsKKwkJdGhpcyhudWxsLCBhY3Rpb25OYW1lLCBudWxsKTsKKwl9CisKKwlwdWJsaWMgUG9ydGxldEFjdGlvblJlZGlyZWN0UmVzdWx0KFN0cmluZyBhY3Rpb25OYW1lLCBTdHJpbmcgbWV0aG9kKSB7CisJCXRoaXMobnVsbCwgYWN0aW9uTmFtZSwgbWV0aG9kKTsKKwl9CisKKwlwdWJsaWMgUG9ydGxldEFjdGlvblJlZGlyZWN0UmVzdWx0KFN0cmluZyBuYW1lc3BhY2UsIFN0cmluZyBhY3Rpb25OYW1lLCBTdHJpbmcgbWV0aG9kKSB7CisJCXN1cGVyKG51bGwpOworCQl0aGlzLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTsKKwkJdGhpcy5hY3Rpb25OYW1lID0gYWN0aW9uTmFtZTsKKwkJdGhpcy5tZXRob2QgPSBtZXRob2Q7CisJfQorCisJcHJvdGVjdGVkIExpc3Q8U3RyaW5nPiBwcm9oaWJpdGVkUmVzdWx0UGFyYW0gPSBBcnJheXMuYXNMaXN0KG5ldyBTdHJpbmdbXSB7IERFRkFVTFRfUEFSQU0sICJuYW1lc3BhY2UiLCAibWV0aG9kIiwKKwkJCSJlbmNvZGUiLCAicGFyc2UiLCAibG9jYXRpb24iLCAicHJlcGVuZFNlcnZsZXRDb250ZXh0IiB9KTsKKworCUBJbmplY3QKKwlwdWJsaWMgdm9pZCBzZXRBY3Rpb25NYXBwZXIoQWN0aW9uTWFwcGVyIGFjdGlvbk1hcHBlcikgeworCQl0aGlzLmFjdGlvbk1hcHBlciA9IGFjdGlvbk1hcHBlcjsKKwl9CisKKwkvKioKKwkgKiBAc2VlIGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLlJlc3VsdCNleGVjdXRlKGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbkludm9jYXRpb24pCisJICovCisJcHVibGljIHZvaWQgZXhlY3V0ZShBY3Rpb25JbnZvY2F0aW9uIGludm9jYXRpb24pIHRocm93cyBFeGNlcHRpb24geworCQlhY3Rpb25OYW1lID0gY29uZGl0aW9uYWxQYXJzZShhY3Rpb25OYW1lLCBpbnZvY2F0aW9uKTsKKwkJaWYgKHBvcnRsZXRNb2RlICE9IG51bGwpIHsKKwkJCU1hcDxQb3J0bGV0TW9kZSwgU3RyaW5nPiBuYW1lc3BhY2VNYXAgPSAoTWFwPFBvcnRsZXRNb2RlLCBTdHJpbmc+KSBpbnZvY2F0aW9uLmdldEludm9jYXRpb25Db250ZXh0KCkuZ2V0KAorCQkJCQlQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLk1PREVfTkFNRVNQQUNFX01BUCk7CisJCQluYW1lc3BhY2UgPSBuYW1lc3BhY2VNYXAuZ2V0KHBvcnRsZXRNb2RlKTsKKwkJfQorCQlpZiAobmFtZXNwYWNlID09IG51bGwpIHsKKwkJCW5hbWVzcGFjZSA9IGludm9jYXRpb24uZ2V0UHJveHkoKS5nZXROYW1lc3BhY2UoKTsKKwkJfSBlbHNlIHsKKwkJCW5hbWVzcGFjZSA9IGNvbmRpdGlvbmFsUGFyc2UobmFtZXNwYWNlLCBpbnZvY2F0aW9uKTsKKwkJfQorCQlpZiAobWV0aG9kID09IG51bGwpIHsKKwkJCW1ldGhvZCA9ICIiOworCQl9IGVsc2UgeworCQkJbWV0aG9kID0gY29uZGl0aW9uYWxQYXJzZShtZXRob2QsIGludm9jYXRpb24pOworCQl9CisKKwkJU3RyaW5nIHJlc3VsdENvZGUgPSBpbnZvY2F0aW9uLmdldFJlc3VsdENvZGUoKTsKKwkJaWYgKHJlc3VsdENvZGUgIT0gbnVsbCkgeworCQkJUmVzdWx0Q29uZmlnIHJlc3VsdENvbmZpZyA9IGludm9jYXRpb24uZ2V0UHJveHkoKS5nZXRDb25maWcoKS5nZXRSZXN1bHRzKCkuZ2V0KHJlc3VsdENvZGUpOworCQkJTWFwIHJlc3VsdENvbmZpZ1BhcmFtcyA9IHJlc3VsdENvbmZpZy5nZXRQYXJhbXMoKTsKKwkJCWZvciAoSXRlcmF0b3IgaSA9IHJlc3VsdENvbmZpZ1BhcmFtcy5lbnRyeVNldCgpLml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOykgeworCQkJCU1hcC5FbnRyeSBlID0gKE1hcC5FbnRyeSkgaS5uZXh0KCk7CisJCQkJaWYgKCFwcm9oaWJpdGVkUmVzdWx0UGFyYW0uY29udGFpbnMoZS5nZXRLZXkoKSkpIHsKKwkJCQkJcmVxdWVzdFBhcmFtZXRlcnMucHV0KGUuZ2V0S2V5KCkudG9TdHJpbmcoKSwgZS5nZXRWYWx1ZSgpID09IG51bGwgPyAiIiA6IGNvbmRpdGlvbmFsUGFyc2UoZQorCQkJCQkJCS5nZXRWYWx1ZSgpLnRvU3RyaW5nKCksIGludm9jYXRpb24pKTsKKwkJCQl9CisJCQl9CisJCX0KKworCQlTdHJpbmdCdWlsZGVyIHRtcExvY2F0aW9uID0gbmV3IFN0cmluZ0J1aWxkZXIoYWN0aW9uTWFwcGVyLmdldFVyaUZyb21BY3Rpb25NYXBwaW5nKG5ldyBBY3Rpb25NYXBwaW5nKGFjdGlvbk5hbWUsCisgICAgICAgICAgICAgICAgbmFtZXNwYWNlLCBtZXRob2QsIG51bGwpKSk7CisJCVVybEhlbHBlci5idWlsZFBhcmFtZXRlcnNTdHJpbmcocmVxdWVzdFBhcmFtZXRlcnMsIHRtcExvY2F0aW9uLCAiJiIpOworCisJCXNldExvY2F0aW9uKHRtcExvY2F0aW9uLnRvU3RyaW5nKCkpOworCisJCXN1cGVyLmV4ZWN1dGUoaW52b2NhdGlvbik7CisJfQorCisJLyoqCisJICogU2V0cyB0aGUgYWN0aW9uIG5hbWUKKwkgKgorCSAqIEBwYXJhbSBhY3Rpb25OYW1lCisJICogICAgICAgICAgICBUaGUgbmFtZQorCSAqLworCXB1YmxpYyB2b2lkIHNldEFjdGlvbk5hbWUoU3RyaW5nIGFjdGlvbk5hbWUpIHsKKwkJdGhpcy5hY3Rpb25OYW1lID0gYWN0aW9uTmFtZTsKKwl9CisKKwkvKioKKwkgKiBTZXRzIHRoZSBuYW1lc3BhY2UKKwkgKgorCSAqIEBwYXJhbSBuYW1lc3BhY2UKKwkgKiAgICAgICAgICAgIFRoZSBuYW1lc3BhY2UKKwkgKi8KKwlwdWJsaWMgdm9pZCBzZXROYW1lc3BhY2UoU3RyaW5nIG5hbWVzcGFjZSkgeworCQl0aGlzLm5hbWVzcGFjZSA9IG5hbWVzcGFjZTsKKwl9CisKKwkvKioKKwkgKiBTZXRzIHRoZSBtZXRob2QKKwkgKgorCSAqIEBwYXJhbSBtZXRob2QKKwkgKiAgICAgICAgICAgIFRoZSBtZXRob2QKKwkgKi8KKwlwdWJsaWMgdm9pZCBzZXRNZXRob2QoU3RyaW5nIG1ldGhvZCkgeworCQl0aGlzLm1ldGhvZCA9IG1ldGhvZDsKKwl9CisKKwkvKioKKwkgKiBBZGRzIGEgcmVxdWVzdCBwYXJhbWV0ZXIgdG8gYmUgYWRkZWQgdG8gdGhlIHJlZGlyZWN0IHVybAorCSAqCisJICogQHBhcmFtIGtleQorCSAqICAgICAgICAgICAgVGhlIHBhcmFtZXRlciBuYW1lCisJICogQHBhcmFtIHZhbHVlCisJICogICAgICAgICAgICBUaGUgcGFyYW1ldGVyIHZhbHVlCisJICovCisJcHVibGljIFBvcnRsZXRBY3Rpb25SZWRpcmVjdFJlc3VsdCBhZGRQYXJhbWV0ZXIoU3RyaW5nIGtleSwgT2JqZWN0IHZhbHVlKSB7CisJCXJlcXVlc3RQYXJhbWV0ZXJzLnB1dChrZXksIFN0cmluZy52YWx1ZU9mKHZhbHVlKSk7CisJCXJldHVybiB0aGlzOworCX0KKworICAgIHB1YmxpYyB2b2lkIGhhbmRsZShSZWZsZWN0aW9uRXhjZXB0aW9uIGV4KSB7CisgICAgICAgIC8vIE9ubHkgbG9nIGFzIGRlYnVnIGFzIHRoZXkgYXJlIHByb2JhYmx5IHBhcmFtZXRlcnMgdG8gYmUgYXBwZW5kZWQgdG8gdGhlIHVybAorICAgICAgICBpZiAoTE9HLmlzRGVidWdFbmFibGVkKCkpIExPRy5kZWJ1ZyhleC5nZXRNZXNzYWdlKCksIGV4KTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9yZXN1bHQvUG9ydGxldFJlc3VsdC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvcmVzdWx0L1BvcnRsZXRSZXN1bHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTk0OWFjCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvcmVzdWx0L1BvcnRsZXRSZXN1bHQuamF2YQpAQCAtMCwwICsxLDI0MyBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5yZXN1bHQ7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25JbnZvY2F0aW9uOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmluamVjdC5JbmplY3Q7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIudXRpbC5sb2dnaW5nLkxvZ2dlcjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi51dGlsLmxvZ2dpbmcuTG9nZ2VyRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubGFuZy5TdHJpbmdVdGlsczsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuU2VydmxldEFjdGlvbkNvbnRleHQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuU3RydXRzUmVzdWx0U3VwcG9ydDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5Qb3J0bGV0QWN0aW9uQ29uc3RhbnRzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LmNvbnRleHQuUG9ydGxldEFjdGlvbkNvbnRleHQ7CisKK2ltcG9ydCBqYXZheC5wb3J0bGV0LkFjdGlvblJlc3BvbnNlOworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldENvbnRleHQ7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0RXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldE1vZGU7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0UmVxdWVzdERpc3BhdGNoZXI7CitpbXBvcnQgamF2YXgucG9ydGxldC5SZW5kZXJSZXF1ZXN0OworaW1wb3J0IGphdmF4LnBvcnRsZXQuUmVuZGVyUmVzcG9uc2U7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb247CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlN0cmluZ1Rva2VuaXplcjsKKworLyoqCisgKiBSZXN1bHQgdHlwZSB0aGF0IGluY2x1ZGVzIGEgSlNQIHRvIHJlbmRlci4KKyAqIAorICovCitwdWJsaWMgY2xhc3MgUG9ydGxldFJlc3VsdCBleHRlbmRzIFN0cnV0c1Jlc3VsdFN1cHBvcnQgaW1wbGVtZW50cyBQb3J0bGV0QWN0aW9uQ29uc3RhbnRzIHsKKworCXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IDQzNDI1MTM5MzkyNjE3ODU2N0w7CisKKwlwcml2YXRlIGJvb2xlYW4gdXNlRGlzcGF0Y2hlclNlcnZsZXQ7CisJCisJcHJpdmF0ZSBTdHJpbmcgZGlzcGF0Y2hlclNlcnZsZXROYW1lID0gREVGQVVMVF9ESVNQQVRDSEVSX1NFUlZMRVRfTkFNRTsKKworCS8qKgorCSAqIExvZ2dlciBpbnN0YW5jZS4KKwkgKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2dnZXIgTE9HID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoUG9ydGxldFJlc3VsdC5jbGFzcyk7CisKKwlwcml2YXRlIFN0cmluZyBjb250ZW50VHlwZSA9ICJ0ZXh0L2h0bWwiOworCisJcHJpdmF0ZSBTdHJpbmcgdGl0bGU7CisJCisJcHJvdGVjdGVkIFBvcnRsZXRNb2RlIHBvcnRsZXRNb2RlOworCisJcHVibGljIFBvcnRsZXRSZXN1bHQoKSB7CisJCXN1cGVyKCk7CisJfQorCisJcHVibGljIFBvcnRsZXRSZXN1bHQoU3RyaW5nIGxvY2F0aW9uKSB7CisJCXN1cGVyKGxvY2F0aW9uKTsKKwl9CisKKwkvKioKKwkgKiBFeGVjdXRlIHRoZSByZXN1bHQuIE9idGFpbnMgdGhlCisJICoge0BsaW5rIGphdmF4LnBvcnRsZXQuUG9ydGxldFJlcXVlc3REaXNwYXRjaGVyfWZyb20gdGhlCisJICoge0BsaW5rIFBvcnRsZXRBY3Rpb25Db250ZXh0fWFuZCBpbmNsdWRlcyB0aGUgSlNQLgorCSAqIAorCSAqIEBzZWUgY29tLm9wZW5zeW1waG9ueS54d29yazIuUmVzdWx0I2V4ZWN1dGUoY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uSW52b2NhdGlvbikKKwkgKi8KKwlwdWJsaWMgdm9pZCBkb0V4ZWN1dGUoU3RyaW5nIGZpbmFsTG9jYXRpb24sIEFjdGlvbkludm9jYXRpb24gYWN0aW9uSW52b2NhdGlvbikgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKwkJaWYgKFBvcnRsZXRBY3Rpb25Db250ZXh0LmlzUmVuZGVyKCkpIHsKKwkJCWV4ZWN1dGVSZW5kZXJSZXN1bHQoZmluYWxMb2NhdGlvbik7CisJCX0gZWxzZSBpZiAoUG9ydGxldEFjdGlvbkNvbnRleHQuaXNFdmVudCgpKSB7CisJCQlleGVjdXRlQWN0aW9uUmVzdWx0KGZpbmFsTG9jYXRpb24sIGFjdGlvbkludm9jYXRpb24pOworCQl9IGVsc2UgeworCQkJZXhlY3V0ZVJlZ3VsYXJTZXJ2bGV0UmVzdWx0KGZpbmFsTG9jYXRpb24sIGFjdGlvbkludm9jYXRpb24pOworCQl9CisJfQorCisJLyoqCisJICogRXhlY3V0ZXMgdGhlIHJlZ3VsYXIgc2VydmxldCByZXN1bHQuCisJICogCisJICogQHBhcmFtIGZpbmFsTG9jYXRpb24KKwkgKiBAcGFyYW0gYWN0aW9uSW52b2NhdGlvbgorCSAqLworCXByaXZhdGUgdm9pZCBleGVjdXRlUmVndWxhclNlcnZsZXRSZXN1bHQoU3RyaW5nIGZpbmFsTG9jYXRpb24sIEFjdGlvbkludm9jYXRpb24gYWN0aW9uSW52b2NhdGlvbikKKwkJCXRocm93cyBTZXJ2bGV0RXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7CisJCVNlcnZsZXRDb250ZXh0IGN0eCA9IFNlcnZsZXRBY3Rpb25Db250ZXh0LmdldFNlcnZsZXRDb250ZXh0KCk7CisJCUh0dHBTZXJ2bGV0UmVxdWVzdCByZXEgPSBTZXJ2bGV0QWN0aW9uQ29udGV4dC5nZXRSZXF1ZXN0KCk7CisJCUh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzID0gU2VydmxldEFjdGlvbkNvbnRleHQuZ2V0UmVzcG9uc2UoKTsKKwkJdHJ5IHsKKwkJCWN0eC5nZXRSZXF1ZXN0RGlzcGF0Y2hlcihmaW5hbExvY2F0aW9uKS5pbmNsdWRlKHJlcSwgcmVzKTsKKwkJfSBjYXRjaCAoU2VydmxldEV4Y2VwdGlvbiBlKSB7CisJCQlMT0cuZXJyb3IoIlNlcnZsZXRFeGNlcHRpb24gaW5jbHVkaW5nICIgKyBmaW5hbExvY2F0aW9uLCBlKTsKKwkJCXRocm93IGU7CisJCX0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKwkJCUxPRy5lcnJvcigiSU9FeGNlcHRpb24gd2hpbGUgaW5jbHVkaW5nIHJlc3VsdCAnIiArIGZpbmFsTG9jYXRpb24gKyAiJyIsIGUpOworCQkJdGhyb3cgZTsKKwkJfQorCX0KKworCS8qKgorCSAqIEV4ZWN1dGVzIHRoZSBhY3Rpb24gcmVzdWx0LgorCSAqIAorCSAqIEBwYXJhbSBmaW5hbExvY2F0aW9uCisJICogQHBhcmFtIGludm9jYXRpb24KKwkgKi8KKwlwcm90ZWN0ZWQgdm9pZCBleGVjdXRlQWN0aW9uUmVzdWx0KFN0cmluZyBmaW5hbExvY2F0aW9uLCBBY3Rpb25JbnZvY2F0aW9uIGludm9jYXRpb24pIHRocm93cyBFeGNlcHRpb24geworCQlpZiAoTE9HLmlzRGVidWdFbmFibGVkKCkpIExPRy5kZWJ1ZygiRXhlY3V0aW5nIHJlc3VsdCBpbiBFdmVudCBwaGFzZSIpOworCQlBY3Rpb25SZXNwb25zZSByZXMgPSBQb3J0bGV0QWN0aW9uQ29udGV4dC5nZXRBY3Rpb25SZXNwb25zZSgpOworCQlNYXAgc2Vzc2lvbk1hcCA9IGludm9jYXRpb24uZ2V0SW52b2NhdGlvbkNvbnRleHQoKS5nZXRTZXNzaW9uKCk7CisJCWlmIChMT0cuaXNEZWJ1Z0VuYWJsZWQoKSkgTE9HLmRlYnVnKCJTZXR0aW5nIGV2ZW50IHJlbmRlciBwYXJhbWV0ZXI6ICIgKyBmaW5hbExvY2F0aW9uKTsKKwkJaWYgKGZpbmFsTG9jYXRpb24uaW5kZXhPZignPycpICE9IC0xKSB7CisJCQljb252ZXJ0UXVlcnlQYXJhbXNUb1JlbmRlclBhcmFtcyhyZXMsIGZpbmFsTG9jYXRpb24uc3Vic3RyaW5nKGZpbmFsTG9jYXRpb24uaW5kZXhPZignPycpICsgMSkpOworCQkJZmluYWxMb2NhdGlvbiA9IGZpbmFsTG9jYXRpb24uc3Vic3RyaW5nKDAsIGZpbmFsTG9jYXRpb24uaW5kZXhPZignPycpKTsKKwkJfQorCQlpZiAoZmluYWxMb2NhdGlvbi5lbmRzV2l0aCgiLmFjdGlvbiIpKSB7CisJCQkvLyBWaWV3IGlzIHJlbmRlcmVkIHdpdGggYSB2aWV3IGFjdGlvbi4uLmx1Y2tpbHkuLi4KKwkJCWZpbmFsTG9jYXRpb24gPSBmaW5hbExvY2F0aW9uLnN1YnN0cmluZygwLCBmaW5hbExvY2F0aW9uLmxhc3RJbmRleE9mKCIuIikpOworCQkJcmVzLnNldFJlbmRlclBhcmFtZXRlcihBQ1RJT05fUEFSQU0sIGZpbmFsTG9jYXRpb24pOworCQl9IGVsc2UgeworCQkJLy8gVmlldyBpcyByZW5kZXJlZCBvdXRzaWRlIGFuIGFjdGlvbi4uLnVoIG9oLi4uCisgICAgICAgICAgICBTdHJpbmcgbmFtZXNwYWNlID0gaW52b2NhdGlvbi5nZXRQcm94eSgpLmdldE5hbWVzcGFjZSgpOworICAgICAgICAgICAgaWYgKCBuYW1lc3BhY2UgIT0gbnVsbCAmJiBuYW1lc3BhY2UubGVuZ3RoKCkgPiAwICYmICFuYW1lc3BhY2UuZW5kc1dpdGgoIi8iKSkgeworICAgICAgICAgICAgICAgIG5hbWVzcGFjZSArPSAiLyI7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXMuc2V0UmVuZGVyUGFyYW1ldGVyKEFDVElPTl9QQVJBTSwgbmFtZXNwYWNlICsgInJlbmRlckRpcmVjdCIpOworCQkJc2Vzc2lvbk1hcC5wdXQoUkVOREVSX0RJUkVDVF9MT0NBVElPTiwgZmluYWxMb2NhdGlvbik7CisJCX0KKwkJaWYocG9ydGxldE1vZGUgIT0gbnVsbCkgeworCQkJcmVzLnNldFBvcnRsZXRNb2RlKHBvcnRsZXRNb2RlKTsKKwkJCXJlcy5zZXRSZW5kZXJQYXJhbWV0ZXIoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5NT0RFX1BBUkFNLCBwb3J0bGV0TW9kZS50b1N0cmluZygpKTsKKwkJfQorCQllbHNlIHsKKwkJCXJlcy5zZXRSZW5kZXJQYXJhbWV0ZXIoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5NT0RFX1BBUkFNLCBQb3J0bGV0QWN0aW9uQ29udGV4dC5nZXRSZXF1ZXN0KCkuZ2V0UG9ydGxldE1vZGUoKQorCQkJCQkudG9TdHJpbmcoKSk7CisJCX0KKwl9CisKKwkvKioKKwkgKiBDb252ZXJ0cyB0aGUgcXVlcnkgcGFyYW1zIHRvIHJlbmRlciBwYXJhbXMuCisJICogCisJICogQHBhcmFtIHJlc3BvbnNlCisJICogQHBhcmFtIHF1ZXJ5UGFyYW1zCisJICovCisJcHJvdGVjdGVkIHN0YXRpYyB2b2lkIGNvbnZlcnRRdWVyeVBhcmFtc1RvUmVuZGVyUGFyYW1zKEFjdGlvblJlc3BvbnNlIHJlc3BvbnNlLCBTdHJpbmcgcXVlcnlQYXJhbXMpIHsKKwkJU3RyaW5nVG9rZW5pemVyIHRvayA9IG5ldyBTdHJpbmdUb2tlbml6ZXIocXVlcnlQYXJhbXMsICImIik7CisJCXdoaWxlICh0b2suaGFzTW9yZVRva2VucygpKSB7CisJCQlTdHJpbmcgdG9rZW4gPSB0b2submV4dFRva2VuKCk7CisJCQlTdHJpbmcga2V5ID0gdG9rZW4uc3Vic3RyaW5nKDAsIHRva2VuLmluZGV4T2YoJz0nKSk7CisJCQlTdHJpbmcgdmFsdWUgPSB0b2tlbi5zdWJzdHJpbmcodG9rZW4uaW5kZXhPZignPScpICsgMSk7CisJCQlyZXNwb25zZS5zZXRSZW5kZXJQYXJhbWV0ZXIoa2V5LCB2YWx1ZSk7CisJCX0KKwl9CisKKwkvKioKKwkgKiBFeGVjdXRlcyB0aGUgcmVuZGVyIHJlc3VsdC4KKwkgKiAKKwkgKiBAcGFyYW0gZmluYWxMb2NhdGlvbgorCSAqIEB0aHJvd3MgUG9ydGxldEV4Y2VwdGlvbgorCSAqIEB0aHJvd3MgSU9FeGNlcHRpb24KKwkgKi8KKwlwcm90ZWN0ZWQgdm9pZCBleGVjdXRlUmVuZGVyUmVzdWx0KGZpbmFsIFN0cmluZyBmaW5hbExvY2F0aW9uKSB0aHJvd3MgUG9ydGxldEV4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworCQlpZiAoTE9HLmlzRGVidWdFbmFibGVkKCkpIExPRy5kZWJ1ZygiRXhlY3V0aW5nIHJlc3VsdCBpbiBSZW5kZXIgcGhhc2UiKTsKKwkJUG9ydGxldENvbnRleHQgY3R4ID0gUG9ydGxldEFjdGlvbkNvbnRleHQuZ2V0UG9ydGxldENvbnRleHQoKTsKKwkJUmVuZGVyUmVxdWVzdCByZXEgPSBQb3J0bGV0QWN0aW9uQ29udGV4dC5nZXRSZW5kZXJSZXF1ZXN0KCk7CisJCVJlbmRlclJlc3BvbnNlIHJlcyA9IFBvcnRsZXRBY3Rpb25Db250ZXh0LmdldFJlbmRlclJlc3BvbnNlKCk7CisJCXJlcy5zZXRDb250ZW50VHlwZShjb250ZW50VHlwZSk7CisJCWlmIChTdHJpbmdVdGlscy5pc05vdEVtcHR5KHRpdGxlKSkgeworCQkJcmVzLnNldFRpdGxlKHRpdGxlKTsKKwkJfQorCQlpZiAoTE9HLmlzRGVidWdFbmFibGVkKCkpIExPRy5kZWJ1ZygiTG9jYXRpb246ICIgKyBmaW5hbExvY2F0aW9uKTsKKwkJaWYgKHVzZURpc3BhdGNoZXJTZXJ2bGV0KSB7CisJCQlyZXEuc2V0QXR0cmlidXRlKERJU1BBVENIX1RPLCBmaW5hbExvY2F0aW9uKTsKKwkJCVBvcnRsZXRSZXF1ZXN0RGlzcGF0Y2hlciBkaXNwYXRjaGVyID0gY3R4LmdldE5hbWVkRGlzcGF0Y2hlcihkaXNwYXRjaGVyU2VydmxldE5hbWUpOworCQkJaWYoZGlzcGF0Y2hlciA9PSBudWxsKSB7CisJCQkJdGhyb3cgbmV3IFBvcnRsZXRFeGNlcHRpb24oIkNvdWxkIG5vdCBsb2NhdGUgZGlzcGF0Y2hlciBzZXJ2bGV0IFwiIiArIGRpc3BhdGNoZXJTZXJ2bGV0TmFtZSArICJcIi4gUGxlYXNlIGNvbmZpZ3VyZSBpdCBpbiB5b3VyIHdlYi54bWwgZmlsZSIpOworCQkJfQorCQkJZGlzcGF0Y2hlci5pbmNsdWRlKHJlcSwgcmVzKTsKKwkJfSBlbHNlIHsKKwkJCVBvcnRsZXRSZXF1ZXN0RGlzcGF0Y2hlciBkaXNwYXRjaGVyID0gY3R4LmdldFJlcXVlc3REaXNwYXRjaGVyKGZpbmFsTG9jYXRpb24pOworCQkJaWYgKGRpc3BhdGNoZXIgPT0gbnVsbCkgeworCQkJCXRocm93IG5ldyBQb3J0bGV0RXhjZXB0aW9uKCJDb3VsZCBub3QgbG9jYXRlIGRpc3BhdGNoZXIgZm9yICciICsgZmluYWxMb2NhdGlvbiArICInIik7CisJCQl9CisJCQlkaXNwYXRjaGVyLmluY2x1ZGUocmVxLCByZXMpOworCQl9CisJfQorCisJLyoqCisJICogU2V0cyB0aGUgY29udGVudCB0eXBlLgorCSAqIAorCSAqIEBwYXJhbSBjb250ZW50VHlwZQorCSAqICAgICAgICAgICAgVGhlIGNvbnRlbnQgdHlwZSB0byBzZXQuCisJICovCisJcHVibGljIHZvaWQgc2V0Q29udGVudFR5cGUoU3RyaW5nIGNvbnRlbnRUeXBlKSB7CisJCXRoaXMuY29udGVudFR5cGUgPSBjb250ZW50VHlwZTsKKwl9CisKKwkvKioKKwkgKiBTZXRzIHRoZSB0aXRsZS4KKwkgKiAKKwkgKiBAcGFyYW0gdGl0bGUKKwkgKiAgICAgICAgICAgIFRoZSB0aXRsZSB0byBzZXQuCisJICovCisJcHVibGljIHZvaWQgc2V0VGl0bGUoU3RyaW5nIHRpdGxlKSB7CisJCXRoaXMudGl0bGUgPSB0aXRsZTsKKwl9CisJCisJcHVibGljIHZvaWQgc2V0UG9ydGxldE1vZGUoU3RyaW5nIHBvcnRsZXRNb2RlKSB7CisJCWlmKHBvcnRsZXRNb2RlICE9IG51bGwpIHsKKwkJCXRoaXMucG9ydGxldE1vZGUgPSBuZXcgUG9ydGxldE1vZGUocG9ydGxldE1vZGUpOworCQl9CisJfQorCisJQEluamVjdCgic3RydXRzLnBvcnRsZXQudXNlRGlzcGF0Y2hlclNlcnZsZXQiKSAKKwlwdWJsaWMgdm9pZCBzZXRVc2VEaXNwYXRjaGVyU2VydmxldChTdHJpbmcgdXNlRGlzcGF0Y2hlclNlcnZsZXQpIHsKKwkJdGhpcy51c2VEaXNwYXRjaGVyU2VydmxldCA9ICJ0cnVlIi5lcXVhbHNJZ25vcmVDYXNlKHVzZURpc3BhdGNoZXJTZXJ2bGV0KTsKKwl9CisJCisJQEluamVjdCgic3RydXRzLnBvcnRsZXQuZGlzcGF0Y2hlclNlcnZsZXROYW1lIikKKwlwdWJsaWMgdm9pZCBzZXREaXNwYXRjaGVyU2VydmxldE5hbWUoU3RyaW5nIGRpc3BhdGNoZXJTZXJ2bGV0TmFtZSkgeworCQl0aGlzLmRpc3BhdGNoZXJTZXJ2bGV0TmFtZSA9IGRpc3BhdGNoZXJTZXJ2bGV0TmFtZTsKKwl9Cit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9yZXN1bHQvUG9ydGxldFZlbG9jaXR5UmVzdWx0LmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9yZXN1bHQvUG9ydGxldFZlbG9jaXR5UmVzdWx0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNkZWZkOAotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3Jlc3VsdC9Qb3J0bGV0VmVsb2NpdHlSZXN1bHQuamF2YQpAQCAtMCwwICsxLDI5MSBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5yZXN1bHQ7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25Db250ZXh0OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbkludm9jYXRpb247CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuaW5qZWN0LkluamVjdDsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi51dGlsLlZhbHVlU3RhY2s7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIudXRpbC5sb2dnaW5nLkxvZ2dlcjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi51dGlsLmxvZ2dpbmcuTG9nZ2VyRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuU2VydmxldEFjdGlvbkNvbnRleHQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLlN0cnV0c0NvbnN0YW50czsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5TdHJ1dHNSZXN1bHRTdXBwb3J0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LlBvcnRsZXRBY3Rpb25Db25zdGFudHM7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuY29udGV4dC5Qb3J0bGV0QWN0aW9uQ29udGV4dDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIudmlld3MuSnNwU3VwcG9ydFNlcnZsZXQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnZpZXdzLnZlbG9jaXR5LlZlbG9jaXR5TWFuYWdlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnZlbG9jaXR5LlRlbXBsYXRlOworaW1wb3J0IG9yZy5hcGFjaGUudmVsb2NpdHkuYXBwLlZlbG9jaXR5RW5naW5lOworaW1wb3J0IG9yZy5hcGFjaGUudmVsb2NpdHkuY29udGV4dC5Db250ZXh0OworCitpbXBvcnQgamF2YXgucG9ydGxldC5BY3Rpb25SZXNwb25zZTsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworaW1wb3J0IGphdmF4LnNlcnZsZXQuanNwLkpzcEZhY3Rvcnk7CitpbXBvcnQgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQ7CitpbXBvcnQgamF2YS5pby5PdXRwdXRTdHJlYW1Xcml0ZXI7CitpbXBvcnQgamF2YS5pby5Xcml0ZXI7CisKKy8qKgorICogPCEtLSBTVEFSVCBTTklQUEVUOiBkZXNjcmlwdGlvbiAtLT4KKyAqCisgKiBVc2luZyB0aGUgU2VydmxldCBjb250YWluZXIncyB7QGxpbmsgSnNwRmFjdG9yeX0sIHRoaXMgcmVzdWx0IG1vY2tzIGEgSlNQCisgKiBleGVjdXRpb24gZW52aXJvbm1lbnQgYW5kIHRoZW4gZGlzcGxheXMgYSBWZWxvY2l0eSB0ZW1wbGF0ZSB0aGF0IHdpbGwgYmUKKyAqIHN0cmVhbWVkIGRpcmVjdGx5IHRvIHRoZSBzZXJ2bGV0IG91dHB1dC4KKyAqCisgKiA8IS0tIEVORCBTTklQUEVUOiBkZXNjcmlwdGlvbiAtLT4gPHAvPjxiPlRoaXMgcmVzdWx0IHR5cGUgdGFrZXMgdGhlCisgKiBmb2xsb3dpbmcgcGFyYW1ldGVyczogPC9iPgorICoKKyAqIDwhLS0gU1RBUlQgU05JUFBFVDogcGFyYW1zIC0tPgorICoKKyAqIDx1bD4KKyAqCisgKiA8bGk+PGI+bG9jYXRpb24gKGRlZmF1bHQpIDwvYj4tIHRoZSBsb2NhdGlvbiBvZiB0aGUgdGVtcGxhdGUgdG8gcHJvY2Vzcy4KKyAqIDwvbGk+CisgKgorICogPGxpPjxiPnBhcnNlIDwvYj4tIHRydWUgYnkgZGVmYXVsdC4gSWYgc2V0IHRvIGZhbHNlLCB0aGUgbG9jYXRpb24gcGFyYW0KKyAqIHdpbGwgbm90IGJlIHBhcnNlZCBmb3IgT2dubCBleHByZXNzaW9ucy48L2xpPgorICoKKyAqIDwvdWw+CisgKiA8cD4KKyAqIFRoaXMgcmVzdWx0IGZvbGxvd3MgdGhlIHNhbWUgcnVsZXMgZnJvbSB7QGxpbmsgU3RydXRzUmVzdWx0U3VwcG9ydH0uCisgKiA8L3A+CisgKgorICogPCEtLSBFTkQgU05JUFBFVDogcGFyYW1zIC0tPgorICoKKyAqIDxiPkV4YW1wbGU6IDwvYj4KKyAqCisgKiA8cHJlPgorICogJmx0OyEtLSBTVEFSVCBTTklQUEVUOiBleGFtcGxlIC0tJmd0OworICogICZsdDtyZXN1bHQgbmFtZT0mcXVvdDtzdWNjZXNzJnF1b3Q7IHR5cGU9JnF1b3Q7dmVsb2NpdHkmcXVvdDsmZ3Q7CisgKiAgICAmbHQ7cGFyYW0gbmFtZT0mcXVvdDtsb2NhdGlvbiZxdW90OyZndDtmb28udm0mbHQ7L3BhcmFtJmd0OworICogICZsdDsvcmVzdWx0Jmd0OworICogICZsdDshLS0gRU5EIFNOSVBQRVQ6IGV4YW1wbGUgLS0mZ3Q7CisgKiA8L3ByZT4KKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBQb3J0bGV0VmVsb2NpdHlSZXN1bHQgZXh0ZW5kcyBTdHJ1dHNSZXN1bHRTdXBwb3J0IHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC04MjQxMDg2NTU1ODcyMjEyMjc0TDsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvZ2dlciBMT0cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcihQb3J0bGV0VmVsb2NpdHlSZXN1bHQuY2xhc3MpOworICAgIAorICAgIHByaXZhdGUgU3RyaW5nIGRlZmF1bHRFbmNvZGluZzsKKyAgICBwcml2YXRlIFZlbG9jaXR5TWFuYWdlciB2ZWxvY2l0eU1hbmFnZXI7CisgICAgcHJpdmF0ZSBKc3BGYWN0b3J5IGpzcEZhY3RvcnkgPSBKc3BGYWN0b3J5LmdldERlZmF1bHRGYWN0b3J5KCk7CisKKyAgICBwdWJsaWMgUG9ydGxldFZlbG9jaXR5UmVzdWx0KCkgeworICAgICAgICBzdXBlcigpOworICAgIH0KKworICAgIHB1YmxpYyBQb3J0bGV0VmVsb2NpdHlSZXN1bHQoU3RyaW5nIGxvY2F0aW9uKSB7CisgICAgICAgIHN1cGVyKGxvY2F0aW9uKTsKKyAgICB9CisgICAgCisgICAgQEluamVjdAorICAgIHB1YmxpYyB2b2lkIHNldFZlbG9jaXR5TWFuYWdlcihWZWxvY2l0eU1hbmFnZXIgbWdyKSB7CisgICAgICAgIHRoaXMudmVsb2NpdHlNYW5hZ2VyID0gbWdyOworICAgIH0KKyAgICAKKyAgICBASW5qZWN0KFN0cnV0c0NvbnN0YW50cy5TVFJVVFNfSTE4Tl9FTkNPRElORykKKyAgICBwdWJsaWMgdm9pZCBzZXREZWZhdWx0RW5jb2RpbmcoU3RyaW5nIGVuY29kaW5nKSB7CisgICAgICAgIHRoaXMuZGVmYXVsdEVuY29kaW5nID0gZW5jb2Rpbmc7CisgICAgfQorCisgICAgLyogKG5vbi1KYXZhZG9jKQorICAgICAqIEBzZWUgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuU3RydXRzUmVzdWx0U3VwcG9ydCNkb0V4ZWN1dGUoamF2YS5sYW5nLlN0cmluZywgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uSW52b2NhdGlvbikKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkb0V4ZWN1dGUoU3RyaW5nIGxvY2F0aW9uLCBBY3Rpb25JbnZvY2F0aW9uIGludm9jYXRpb24pCisgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKFBvcnRsZXRBY3Rpb25Db250ZXh0LmlzRXZlbnQoKSkgeworICAgICAgICAgICAgZXhlY3V0ZUFjdGlvblJlc3VsdChsb2NhdGlvbiwgaW52b2NhdGlvbik7CisgICAgICAgIH0gZWxzZSBpZiAoUG9ydGxldEFjdGlvbkNvbnRleHQuaXNSZW5kZXIoKSkgeworICAgICAgICAgICAgZXhlY3V0ZVJlbmRlclJlc3VsdChsb2NhdGlvbiwgaW52b2NhdGlvbik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFeGVjdXRlcyB0aGUgcmVzdWx0CisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYXRpb24gVGhlIGxvY2F0aW9uIHN0cmluZworICAgICAqIEBwYXJhbSBpbnZvY2F0aW9uIFRoZSBhY3Rpb24gaW52b2NhdGlvbgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBleGVjdXRlQWN0aW9uUmVzdWx0KFN0cmluZyBsb2NhdGlvbiwKKyAgICAgICAgICAgIEFjdGlvbkludm9jYXRpb24gaW52b2NhdGlvbikgeworICAgICAgICBBY3Rpb25SZXNwb25zZSByZXMgPSBQb3J0bGV0QWN0aW9uQ29udGV4dC5nZXRBY3Rpb25SZXNwb25zZSgpOworICAgICAgICAvLyBWaWV3IGlzIHJlbmRlcmVkIG91dHNpZGUgYW4gYWN0aW9uLi4udWggb2guLi4KKyAgICAgICAgU3RyaW5nIG5hbWVzcGFjZSA9IGludm9jYXRpb24uZ2V0UHJveHkoKS5nZXROYW1lc3BhY2UoKTsKKyAgICAgICAgaWYgKCBuYW1lc3BhY2UgIT0gbnVsbCAmJiBuYW1lc3BhY2UubGVuZ3RoKCkgPiAwICYmICFuYW1lc3BhY2UuZW5kc1dpdGgoIi8iKSkgeworICAgICAgICAgICAgbmFtZXNwYWNlICs9ICIvIjsKKworICAgICAgICB9CisgICAgICAgIHJlcy5zZXRSZW5kZXJQYXJhbWV0ZXIoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5BQ1RJT05fUEFSQU0sIG5hbWVzcGFjZSArICJmcmVlbWFya2VyRGlyZWN0Iik7CisgICAgICAgIHJlcy5zZXRSZW5kZXJQYXJhbWV0ZXIoImxvY2F0aW9uIiwgbG9jYXRpb24pOworICAgICAgICByZXMuc2V0UmVuZGVyUGFyYW1ldGVyKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuTU9ERV9QQVJBTSwgUG9ydGxldEFjdGlvbkNvbnRleHQKKyAgICAgICAgICAgICAgICAuZ2V0UmVxdWVzdCgpLmdldFBvcnRsZXRNb2RlKCkudG9TdHJpbmcoKSk7CisKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgVmVsb2NpdHkgY29udGV4dCBmcm9tIHRoZSBhY3Rpb24sIGxvYWRzIGEgVmVsb2NpdHkgdGVtcGxhdGUgYW5kCisgICAgICogZXhlY3V0ZXMgdGhlIHRlbXBsYXRlLiBPdXRwdXQgaXMgd3JpdHRlbiB0byB0aGUgc2VydmxldCBvdXRwdXQgc3RyZWFtLgorICAgICAqCisgICAgICogQHBhcmFtIGZpbmFsTG9jYXRpb24gdGhlIGxvY2F0aW9uIG9mIHRoZSBWZWxvY2l0eSB0ZW1wbGF0ZQorICAgICAqIEBwYXJhbSBpbnZvY2F0aW9uIGFuIGVuY2Fwc3VsYXRpb24gb2YgdGhlIGFjdGlvbiBleGVjdXRpb24gc3RhdGUuCisgICAgICogQHRocm93cyBFeGNlcHRpb24gaWYgYW4gZXJyb3Igb2NjdXJzIHdoZW4gY3JlYXRpbmcgdGhlIFZlbG9jaXR5IGNvbnRleHQsCisgICAgICogICAgICAgICBsb2FkaW5nIG9yIGV4ZWN1dGluZyB0aGUgdGVtcGxhdGUgb3Igd3JpdGluZyBvdXRwdXQgdG8gdGhlCisgICAgICogICAgICAgICBzZXJ2bGV0IHJlc3BvbnNlIHN0cmVhbS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBleGVjdXRlUmVuZGVyUmVzdWx0KFN0cmluZyBmaW5hbExvY2F0aW9uLAorICAgICAgICAgICAgQWN0aW9uSW52b2NhdGlvbiBpbnZvY2F0aW9uKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVmFsdWVTdGFjayBzdGFjayA9IEFjdGlvbkNvbnRleHQuZ2V0Q29udGV4dCgpLmdldFZhbHVlU3RhY2soKTsKKworICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCA9IFNlcnZsZXRBY3Rpb25Db250ZXh0LmdldFJlcXVlc3QoKTsKKyAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSA9IFNlcnZsZXRBY3Rpb25Db250ZXh0LmdldFJlc3BvbnNlKCk7CisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0ID0gU2VydmxldEFjdGlvbkNvbnRleHQKKyAgICAgICAgICAgICAgICAuZ2V0U2VydmxldENvbnRleHQoKTsKKyAgICAgICAgU2VydmxldCBzZXJ2bGV0ID0gSnNwU3VwcG9ydFNlcnZsZXQuanNwU3VwcG9ydFNlcnZsZXQ7CisKKyAgICAgICAgdmVsb2NpdHlNYW5hZ2VyLmluaXQoc2VydmxldENvbnRleHQpOworCisgICAgICAgIGJvb2xlYW4gdXNlZEpzcEZhY3RvcnkgPSBmYWxzZTsKKyAgICAgICAgUGFnZUNvbnRleHQgcGFnZUNvbnRleHQgPSAoUGFnZUNvbnRleHQpIEFjdGlvbkNvbnRleHQuZ2V0Q29udGV4dCgpLmdldCgKKyAgICAgICAgICAgICAgICBTZXJ2bGV0QWN0aW9uQ29udGV4dC5QQUdFX0NPTlRFWFQpOworCisgICAgICAgIGlmIChwYWdlQ29udGV4dCA9PSBudWxsICYmIHNlcnZsZXQgIT0gbnVsbCkgeworICAgICAgICAgICAgcGFnZUNvbnRleHQgPSBqc3BGYWN0b3J5LmdldFBhZ2VDb250ZXh0KHNlcnZsZXQsIHJlcXVlc3QsIHJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICBudWxsLCB0cnVlLCA4MTkyLCB0cnVlKTsKKyAgICAgICAgICAgIEFjdGlvbkNvbnRleHQuZ2V0Q29udGV4dCgpLnB1dChTZXJ2bGV0QWN0aW9uQ29udGV4dC5QQUdFX0NPTlRFWFQsCisgICAgICAgICAgICAgICAgICAgIHBhZ2VDb250ZXh0KTsKKyAgICAgICAgICAgIHVzZWRKc3BGYWN0b3J5ID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgZW5jb2RpbmcgPSBnZXRFbmNvZGluZyhmaW5hbExvY2F0aW9uKTsKKyAgICAgICAgICAgIFN0cmluZyBjb250ZW50VHlwZSA9IGdldENvbnRlbnRUeXBlKGZpbmFsTG9jYXRpb24pOworCisgICAgICAgICAgICBpZiAoZW5jb2RpbmcgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlID0gY29udGVudFR5cGUgKyAiO2NoYXJzZXQ9IiArIGVuY29kaW5nOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzcG9uc2Uuc2V0Q29udGVudFR5cGUoY29udGVudFR5cGUpOworICAgICAgICAgICAgVGVtcGxhdGUgdCA9IGdldFRlbXBsYXRlKHN0YWNrLAorICAgICAgICAgICAgICAgICAgICB2ZWxvY2l0eU1hbmFnZXIuZ2V0VmVsb2NpdHlFbmdpbmUoKSwgaW52b2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgZmluYWxMb2NhdGlvbiwgZW5jb2RpbmcpOworCisgICAgICAgICAgICBDb250ZXh0IGNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHZlbG9jaXR5TWFuYWdlciwgc3RhY2ssIHJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLCBmaW5hbExvY2F0aW9uKTsKKyAgICAgICAgICAgIFdyaXRlciB3cml0ZXIgPSBuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKHJlc3BvbnNlLmdldE91dHB1dFN0cmVhbSgpLAorICAgICAgICAgICAgICAgICAgICBlbmNvZGluZyk7CisKKyAgICAgICAgICAgIHQubWVyZ2UoY29udGV4dCwgd3JpdGVyKTsKKworICAgICAgICAgICAgLy8gYWx3YXlzIGZsdXNoIHRoZSB3cml0ZXIgKHdlIHVzZWQgdG8gb25seSBmbHVzaCBpdCBpZiB0aGlzIHdhcyBhCisgICAgICAgICAgICAvLyBqc3BXcml0ZXIsIGJ1dCBzb21lb25lIGFza2VkCisgICAgICAgICAgICAvLyB0byBkbyBpdCBhbGwgdGhlIHRpbWUgKFdXLTgyOSkuIFNpbmNlIFZlbG9jaXR5IHN1cHBvcnQgaXMgYmVpbmcKKyAgICAgICAgICAgIC8vIGRlcHJlY2F0ZWQsIHdlJ2xsIG9ibGlnZSA6KQorICAgICAgICAgICAgd3JpdGVyLmZsdXNoKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBMT0cuZXJyb3IoIlVuYWJsZSB0byByZW5kZXIgVmVsb2NpdHkgVGVtcGxhdGUsICciICsgZmluYWxMb2NhdGlvbgorICAgICAgICAgICAgICAgICAgICArICInIiwgZSk7CisgICAgICAgICAgICB0aHJvdyBlOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgaWYgKHVzZWRKc3BGYWN0b3J5KSB7CisgICAgICAgICAgICAgICAganNwRmFjdG9yeS5yZWxlYXNlUGFnZUNvbnRleHQocGFnZUNvbnRleHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBjb250ZW50IHR5cGUgZm9yIHRoaXMgdGVtcGxhdGUuIDxwLz5QZW9wbGUgY2FuIG92ZXJyaWRlCisgICAgICogdGhpcyBtZXRob2QgaWYgdGhleSB3YW50IHRvIHByb3ZpZGUgc3BlY2lmaWMgY29udGVudCB0eXBlcyBmb3Igc3BlY2lmaWMKKyAgICAgKiB0ZW1wbGF0ZXMgKGVnIHRleHQveG1sKS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVGhlIGNvbnRlbnQgdHlwZSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0ZW1wbGF0ZSAoZGVmYXVsdAorICAgICAqICAgICAgICAgInRleHQvaHRtbCIpCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBnZXRDb250ZW50VHlwZShTdHJpbmcgdGVtcGxhdGVMb2NhdGlvbikgeworICAgICAgICByZXR1cm4gInRleHQvaHRtbCI7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmUgdGhlIGVuY29kaW5nIGZvciB0aGlzIHRlbXBsYXRlLiA8cC8+UGVvcGxlIGNhbiBvdmVycmlkZSB0aGlzCisgICAgICogbWV0aG9kIGlmIHRoZXkgd2FudCB0byBwcm92aWRlIHNwZWNpZmljIGVuY29kaW5ncyBmb3Igc3BlY2lmaWMgdGVtcGxhdGVzLgorICAgICAqCisgICAgICogQHJldHVybiBUaGUgZW5jb2RpbmcgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGVtcGxhdGUgKGRlZmF1bHRzIHRvIHRoZSB2YWx1ZQorICAgICAqICAgICAgICAgb2YgJ3N0cnV0cy5pMThuLmVuY29kaW5nJyBwcm9wZXJ0eSkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGdldEVuY29kaW5nKFN0cmluZyB0ZW1wbGF0ZUxvY2F0aW9uKSB7CisgICAgICAgIFN0cmluZyBlbmNvZGluZyA9IGRlZmF1bHRFbmNvZGluZzsKKyAgICAgICAgaWYgKGVuY29kaW5nID09IG51bGwpIHsKKyAgICAgICAgICAgIGVuY29kaW5nID0gU3lzdGVtLmdldFByb3BlcnR5KCJmaWxlLmVuY29kaW5nIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVuY29kaW5nID09IG51bGwpIHsKKyAgICAgICAgICAgIGVuY29kaW5nID0gIlVURi04IjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZW5jb2Rpbmc7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2l2ZW4gYSB2YWx1ZSBzdGFjaywgYSBWZWxvY2l0eSBlbmdpbmUsIGFuZCBhbiBhY3Rpb24gaW52b2NhdGlvbiwgdGhpcworICAgICAqIG1ldGhvZCByZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBWZWxvY2l0eSB0ZW1wbGF0ZSB0byByZW5kZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhY2sgdGhlIHZhbHVlIHN0YWNrIHRvIHJlc29sdmUgdGhlIGxvY2F0aW9uIGFnYWluICh3aGVuIHBhcnNlCisgICAgICogICAgICAgIGVxdWFscyB0cnVlKQorICAgICAqIEBwYXJhbSB2ZWxvY2l0eSB0aGUgdmVsb2NpdHkgZW5naW5lIHRvIHByb2Nlc3MgdGhlIHJlcXVlc3QgYWdhaW5zdAorICAgICAqIEBwYXJhbSBpbnZvY2F0aW9uIGFuIGVuY2Fwc3VsYXRpb24gb2YgdGhlIGFjdGlvbiBleGVjdXRpb24gc3RhdGUuCisgICAgICogQHBhcmFtIGxvY2F0aW9uIHRoZSBsb2NhdGlvbiBvZiB0aGUgdGVtcGxhdGUKKyAgICAgKiBAcGFyYW0gZW5jb2RpbmcgdGhlIGNoYXJzZXQgZW5jb2Rpbmcgb2YgdGhlIHRlbXBsYXRlCisgICAgICogQHJldHVybiB0aGUgdGVtcGxhdGUgdG8gcmVuZGVyCisgICAgICogQHRocm93cyBFeGNlcHRpb24gd2hlbiB0aGUgcmVxdWVzdGVkIHRlbXBsYXRlIGNvdWxkIG5vdCBiZSBmb3VuZAorICAgICAqLworICAgIHByb3RlY3RlZCBUZW1wbGF0ZSBnZXRUZW1wbGF0ZShWYWx1ZVN0YWNrIHN0YWNrLAorICAgICAgICAgICAgVmVsb2NpdHlFbmdpbmUgdmVsb2NpdHksIEFjdGlvbkludm9jYXRpb24gaW52b2NhdGlvbiwKKyAgICAgICAgICAgIFN0cmluZyBsb2NhdGlvbiwgU3RyaW5nIGVuY29kaW5nKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKCFsb2NhdGlvbi5zdGFydHNXaXRoKCIvIikpIHsKKyAgICAgICAgICAgIGxvY2F0aW9uID0gaW52b2NhdGlvbi5nZXRQcm94eSgpLmdldE5hbWVzcGFjZSgpICsgIi8iICsgbG9jYXRpb247CisgICAgICAgIH0KKworICAgICAgICBUZW1wbGF0ZSB0ZW1wbGF0ZSA9IHZlbG9jaXR5LmdldFRlbXBsYXRlKGxvY2F0aW9uLCBlbmNvZGluZyk7CisKKyAgICAgICAgcmV0dXJuIHRlbXBsYXRlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgdGhlIFZlbG9jaXR5Q29udGV4dCB0aGF0IHdlJ2xsIHVzZSB0byByZW5kZXIgdGhpcyBwYWdlLgorICAgICAqCisgICAgICogQHBhcmFtIHZlbG9jaXR5TWFuYWdlciBhIHJlZmVyZW5jZSB0byB0aGUgdmVsb2NpdHlNYW5hZ2VyIHRvIHVzZQorICAgICAqIEBwYXJhbSBzdGFjayB0aGUgdmFsdWUgc3RhY2sgdG8gcmVzb2x2ZSB0aGUgbG9jYXRpb24gYWdhaW5zdCAod2hlbiBwYXJzZQorICAgICAqICAgICAgICBlcXVhbHMgdHJ1ZSkKKyAgICAgKiBAcGFyYW0gbG9jYXRpb24gdGhlIG5hbWUgb2YgdGhlIHRlbXBsYXRlIHRoYXQgaXMgYmVpbmcgdXNlZAorICAgICAqIEByZXR1cm4gdGhlIGEgbWludGVkIFZlbG9jaXR5IGNvbnRleHQuCisgICAgICovCisgICAgcHJvdGVjdGVkIENvbnRleHQgY3JlYXRlQ29udGV4dChWZWxvY2l0eU1hbmFnZXIgdmVsb2NpdHlNYW5hZ2VyLAorICAgICAgICAgICAgVmFsdWVTdGFjayBzdGFjaywgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlLCBTdHJpbmcgbG9jYXRpb24pIHsKKyAgICAgICAgcmV0dXJuIHZlbG9jaXR5TWFuYWdlci5jcmVhdGVDb250ZXh0KHN0YWNrLCByZXF1ZXN0LCByZXNwb25zZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvc2VydmxldC9Qb3J0bGV0SHR0cFNlc3Npb24uamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3NlcnZsZXQvUG9ydGxldEh0dHBTZXNzaW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJjMzlmYQotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3NlcnZsZXQvUG9ydGxldEh0dHBTZXNzaW9uLmphdmEKQEAgLTAsMCArMSwyMTUgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuc2VydmxldDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0U2Vzc2lvbjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vzc2lvbjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb25Db250ZXh0OworCisvKioKKyAqIFdyYXBwZXIgb2JqZWN0IGV4cG9zaW5nIGEge0BsaW5rIFBvcnRsZXRTZXNzaW9ufSBhcyBhIHtAbGluayBIdHRwU2Vzc2lvbn0gaW5zdGFuY2UuCisgKiBDbGllbnRzIGFjY2Vzc2luZyB0aGlzIHNlc3Npb24gb2JqZWN0IHdpbGwgaW4gZmFjdCBvcGVyYXRlIG9uIHRoZQorICoge0BsaW5rIFBvcnRsZXRTZXNzaW9ufSBvYmplY3Qgd3JhcHBlZCBieSB0aGlzIHNlc3Npb24gb2JqZWN0LgorICovCitwdWJsaWMgY2xhc3MgUG9ydGxldEh0dHBTZXNzaW9uIGltcGxlbWVudHMgSHR0cFNlc3Npb24geworCisJcHJpdmF0ZSBQb3J0bGV0U2Vzc2lvbiBwb3J0bGV0U2Vzc2lvbjsKKworCXB1YmxpYyBQb3J0bGV0SHR0cFNlc3Npb24oUG9ydGxldFNlc3Npb24gcG9ydGxldFNlc3Npb24pIHsKKwkJdGhpcy5wb3J0bGV0U2Vzc2lvbiA9IHBvcnRsZXRTZXNzaW9uOworCX0KKworCS8qCisJICogKG5vbi1KYXZhZG9jKQorCSAqIAorCSAqIEBzZWUgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uI2dldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKQorCSAqLworCXB1YmxpYyBPYmplY3QgZ2V0QXR0cmlidXRlKFN0cmluZyBuYW1lKSB7CisJCXJldHVybiBwb3J0bGV0U2Vzc2lvbi5nZXRBdHRyaWJ1dGUobmFtZSk7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb24jZ2V0QXR0cmlidXRlTmFtZXMoKQorCSAqLworCXB1YmxpYyBFbnVtZXJhdGlvbiBnZXRBdHRyaWJ1dGVOYW1lcygpIHsKKwkJcmV0dXJuIHBvcnRsZXRTZXNzaW9uLmdldEF0dHJpYnV0ZU5hbWVzKCk7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb24jZ2V0Q3JlYXRpb25UaW1lKCkKKwkgKi8KKwlwdWJsaWMgbG9uZyBnZXRDcmVhdGlvblRpbWUoKSB7CisJCXJldHVybiBwb3J0bGV0U2Vzc2lvbi5nZXRDcmVhdGlvblRpbWUoKTsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vzc2lvbiNnZXRJZCgpCisJICovCisJcHVibGljIFN0cmluZyBnZXRJZCgpIHsKKwkJcmV0dXJuIHBvcnRsZXRTZXNzaW9uLmdldElkKCk7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb24jZ2V0TGFzdEFjY2Vzc2VkVGltZSgpCisJICovCisJcHVibGljIGxvbmcgZ2V0TGFzdEFjY2Vzc2VkVGltZSgpIHsKKwkJcmV0dXJuIHBvcnRsZXRTZXNzaW9uLmdldExhc3RBY2Nlc3NlZFRpbWUoKTsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vzc2lvbiNnZXRNYXhJbmFjdGl2ZUludGVydmFsKCkKKwkgKi8KKwlwdWJsaWMgaW50IGdldE1heEluYWN0aXZlSW50ZXJ2YWwoKSB7CisJCXJldHVybiBwb3J0bGV0U2Vzc2lvbi5nZXRNYXhJbmFjdGl2ZUludGVydmFsKCk7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb24jZ2V0U2VydmxldENvbnRleHQoKQorCSAqLworCXB1YmxpYyBTZXJ2bGV0Q29udGV4dCBnZXRTZXJ2bGV0Q29udGV4dCgpIHsKKwkJcmV0dXJuIG5ldyBQb3J0bGV0U2VydmxldENvbnRleHQocG9ydGxldFNlc3Npb24uZ2V0UG9ydGxldENvbnRleHQoKSk7CisJfQorCisJLyoqCisJICogQHNlZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb24jZ2V0U2Vzc2lvbkNvbnRleHQoKQorCSAqIEB0aHJvd3MgSWxsZWdhbFN0YXRlRXhjZXB0aW9uCisJICogICAgICAgICAgICAgTm90IHN1cHBvcnRlZCBpbiBhIHBvcnRsZXQuCisJICovCisJcHVibGljIEh0dHBTZXNzaW9uQ29udGV4dCBnZXRTZXNzaW9uQ29udGV4dCgpIHsKKwkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IHN1cHBvcnRlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vzc2lvbiNnZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKQorCSAqLworCXB1YmxpYyBPYmplY3QgZ2V0VmFsdWUoU3RyaW5nIG5hbWUpIHsKKwkJcmV0dXJuIGdldEF0dHJpYnV0ZShuYW1lKTsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vzc2lvbiNnZXRWYWx1ZU5hbWVzKCkKKwkgKi8KKwlwdWJsaWMgU3RyaW5nW10gZ2V0VmFsdWVOYW1lcygpIHsKKwkJTGlzdDxTdHJpbmc+IG5hbWVzID0gbmV3IEFycmF5TGlzdDxTdHJpbmc+KCk7CisJCUVudW1lcmF0aW9uIGF0dHJOYW1lcyA9IGdldEF0dHJpYnV0ZU5hbWVzKCk7CisJCXdoaWxlIChhdHRyTmFtZXMuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKwkJCW5hbWVzLmFkZCgoU3RyaW5nKSBhdHRyTmFtZXMubmV4dEVsZW1lbnQoKSk7CisJCX0KKwkJcmV0dXJuIG5hbWVzLnRvQXJyYXkobmV3IFN0cmluZ1swXSk7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb24jaW52YWxpZGF0ZSgpCisJICovCisJcHVibGljIHZvaWQgaW52YWxpZGF0ZSgpIHsKKwkJcG9ydGxldFNlc3Npb24uaW52YWxpZGF0ZSgpOworCX0KKworCS8qCisJICogKG5vbi1KYXZhZG9jKQorCSAqIAorCSAqIEBzZWUgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uI2lzTmV3KCkKKwkgKi8KKwlwdWJsaWMgYm9vbGVhbiBpc05ldygpIHsKKwkJcmV0dXJuIHBvcnRsZXRTZXNzaW9uLmlzTmV3KCk7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb24jcHV0VmFsdWUoamF2YS5sYW5nLlN0cmluZywKKwkgKiAgICAgIGphdmEubGFuZy5PYmplY3QpCisJICovCisJcHVibGljIHZvaWQgcHV0VmFsdWUoU3RyaW5nIG5hbWUsIE9iamVjdCB2YWx1ZSkgeworCQlzZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworCX0KKworCS8qCisJICogKG5vbi1KYXZhZG9jKQorCSAqIAorCSAqIEBzZWUgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uI3JlbW92ZUF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKQorCSAqLworCXB1YmxpYyB2b2lkIHJlbW92ZUF0dHJpYnV0ZShTdHJpbmcgbmFtZSkgeworCQlwb3J0bGV0U2Vzc2lvbi5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb24jcmVtb3ZlVmFsdWUoamF2YS5sYW5nLlN0cmluZykKKwkgKi8KKwlwdWJsaWMgdm9pZCByZW1vdmVWYWx1ZShTdHJpbmcgbmFtZSkgeworCQlyZW1vdmVBdHRyaWJ1dGUobmFtZSk7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb24jc2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsCisJICogICAgICBqYXZhLmxhbmcuT2JqZWN0KQorCSAqLworCXB1YmxpYyB2b2lkIHNldEF0dHJpYnV0ZShTdHJpbmcgbmFtZSwgT2JqZWN0IHZhbHVlKSB7CisJCXBvcnRsZXRTZXNzaW9uLnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb24jc2V0TWF4SW5hY3RpdmVJbnRlcnZhbChpbnQpCisJICovCisJcHVibGljIHZvaWQgc2V0TWF4SW5hY3RpdmVJbnRlcnZhbChpbnQgaW50ZXJ2YWwpIHsKKwkJcG9ydGxldFNlc3Npb24uc2V0TWF4SW5hY3RpdmVJbnRlcnZhbChpbnRlcnZhbCk7CisJfQorCisJLyoqCisJICogR2V0IHRoZSB3cmFwcGVkIHBvcnRsZXQgc2Vzc2lvbi4KKwkgKiAKKwkgKiBAcmV0dXJuIFRoZSB3cmFwcGVkIHBvcnRsZXQgc2Vzc2lvbi4KKwkgKi8KKwlwdWJsaWMgUG9ydGxldFNlc3Npb24gZ2V0UG9ydGxldFNlc3Npb24oKSB7CisJCXJldHVybiBwb3J0bGV0U2Vzc2lvbjsKKwl9CisKK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3NlcnZsZXQvUG9ydGxldFNlcnZsZXRDb25maWcuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3NlcnZsZXQvUG9ydGxldFNlcnZsZXRDb25maWcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTA5MjM3Ci0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvc2VydmxldC9Qb3J0bGV0U2VydmxldENvbmZpZy5qYXZhCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuc2VydmxldDsKKworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKKworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldENvbmZpZzsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRDb250ZXh0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZzsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0OworCisvKioKKyAqIFdyYXBwZXIgb2JqZWN0IGV4cG9zaW5nIGEge0BsaW5rIFBvcnRsZXRDb25maWd9IGFzIGEge0BsaW5rIFNlcnZsZXRDb25maWd9IGluc3RhbmNlLgorICogQ2xpZW50cyBhY2Nlc3NpbmcgdGhpcyBjb25maWcgb2JqZWN0IHdpbGwgaW4gZmFjdCBvcGVyYXRlIG9uIHRoZQorICoge0BsaW5rIFBvcnRsZXRDb25maWd9IG9iamVjdCB3cmFwcGVkIGJ5IHRoaXMgY29uZmlnIG9iamVjdC4KKyAqLworcHVibGljIGNsYXNzIFBvcnRsZXRTZXJ2bGV0Q29uZmlnIGltcGxlbWVudHMgU2VydmxldENvbmZpZyB7CisKKwlwcml2YXRlIFBvcnRsZXRDb25maWcgcG9ydGxldENvbmZpZzsKKwkKKwlwdWJsaWMgUG9ydGxldFNlcnZsZXRDb25maWcoUG9ydGxldENvbmZpZyBwb3J0bGV0Q29uZmlnKSB7CisJCXRoaXMucG9ydGxldENvbmZpZyA9IHBvcnRsZXRDb25maWc7CisJfQorCQorCS8qIChub24tSmF2YWRvYykKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZyNnZXRJbml0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpCisJICovCisJcHVibGljIFN0cmluZyBnZXRJbml0UGFyYW1ldGVyKFN0cmluZyBuYW1lKSB7CisJCXJldHVybiBwb3J0bGV0Q29uZmlnLmdldEluaXRQYXJhbWV0ZXIobmFtZSk7CisJfQorCisJLyogKG5vbi1KYXZhZG9jKQorCSAqIEBzZWUgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnI2dldEluaXRQYXJhbWV0ZXJOYW1lcygpCisJICovCisJcHVibGljIEVudW1lcmF0aW9uIGdldEluaXRQYXJhbWV0ZXJOYW1lcygpIHsKKwkJcmV0dXJuIHBvcnRsZXRDb25maWcuZ2V0SW5pdFBhcmFtZXRlck5hbWVzKCk7CisJfQorCisJLyoqCisJICogR2V0IHRoZSB7QGxpbmsgUG9ydGxldENvbnRleHR9IGFzIGEge0BsaW5rIFBvcnRsZXRTZXJ2bGV0Q29udGV4dH0gaW5zdGFuY2UuCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcjZ2V0U2VydmxldENvbnRleHQoKQorCSAqLworCXB1YmxpYyBTZXJ2bGV0Q29udGV4dCBnZXRTZXJ2bGV0Q29udGV4dCgpIHsKKwkJcmV0dXJuIG5ldyBQb3J0bGV0U2VydmxldENvbnRleHQocG9ydGxldENvbmZpZy5nZXRQb3J0bGV0Q29udGV4dCgpKTsKKwl9CisKKwkvKioKKwkgKiBXaWxsIHJldHVybiB0aGUgcG9ydGxldCBuYW1lLgorCSAqIEBzZWUgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnI2dldFNlcnZsZXROYW1lKCkKKwkgKi8KKwlwdWJsaWMgU3RyaW5nIGdldFNlcnZsZXROYW1lKCkgeworCQlyZXR1cm4gcG9ydGxldENvbmZpZy5nZXRQb3J0bGV0TmFtZSgpOworCX0KKwkKKwkvKioKKwkgKiBHZXQgdGhlIHdyYXBwZWQge0BsaW5rIFBvcnRsZXRDb25maWd9IGluc3RhbmNlLgorCSAqIEByZXR1cm4gVGhlIHdyYXBwZWQge0BsaW5rIFBvcnRsZXRDb25maWd9IGluc3RhbmNlLgorCSAqLworCXB1YmxpYyBQb3J0bGV0Q29uZmlnIGdldFBvcnRsZXRDb25maWcoKSB7CisJCXJldHVybiBwb3J0bGV0Q29uZmlnOworCX0KKworfQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvc2VydmxldC9Qb3J0bGV0U2VydmxldENvbnRleHQuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3NlcnZsZXQvUG9ydGxldFNlcnZsZXRDb250ZXh0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI4NjI4NwotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3NlcnZsZXQvUG9ydGxldFNlcnZsZXRDb250ZXh0LmphdmEKQEAgLTAsMCArMSwyMzYgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuc2VydmxldDsKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5uZXQuTWFsZm9ybWVkVVJMRXhjZXB0aW9uOworaW1wb3J0IGphdmEubmV0LlVSTDsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldENvbnRleHQ7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0UmVxdWVzdERpc3BhdGNoZXI7CitpbXBvcnQgamF2YXguc2VydmxldC5SZXF1ZXN0RGlzcGF0Y2hlcjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb247CisKKy8qKgorICogV3JhcHBlciBvYmplY3QgZXhwb3NpbmcgYSB7QGxpbmsgUG9ydGxldENvbnRleHR9IGFzIGEge0BsaW5rIFNlcnZsZXRDb250ZXh0fSBpbnN0YW5jZS4KKyAqIENsaWVudHMgYWNjZXNzaW5nIHRoaXMgY29udGV4dCBvYmplY3Qgd2lsbCBpbiBmYWN0IG9wZXJhdGUgb24gdGhlCisgKiB7QGxpbmsgUG9ydGxldENvbnRleHR9IG9iamVjdCB3cmFwcGVkIGJ5IHRoaXMgY29udGV4dCBvYmplY3QuCisgKi8KK3B1YmxpYyBjbGFzcyBQb3J0bGV0U2VydmxldENvbnRleHQgaW1wbGVtZW50cyBTZXJ2bGV0Q29udGV4dCB7CisKKwlwcml2YXRlIFBvcnRsZXRDb250ZXh0IHBvcnRsZXRDb250ZXh0OworCQorCXB1YmxpYyBQb3J0bGV0U2VydmxldENvbnRleHQoUG9ydGxldENvbnRleHQgcG9ydGxldENvbnRleHQpIHsKKwkJdGhpcy5wb3J0bGV0Q29udGV4dCA9IHBvcnRsZXRDb250ZXh0OworCX0KKworCS8qIChub24tSmF2YWRvYykKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQjZ2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpCisJICovCisJcHVibGljIE9iamVjdCBnZXRBdHRyaWJ1dGUoU3RyaW5nIG5hbWUpIHsKKwkJcmV0dXJuIHBvcnRsZXRDb250ZXh0LmdldEF0dHJpYnV0ZShuYW1lKTsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0I2dldEF0dHJpYnV0ZU5hbWVzKCkKKwkgKi8KKwlwdWJsaWMgRW51bWVyYXRpb24gZ2V0QXR0cmlidXRlTmFtZXMoKSB7CisJCXJldHVybiBwb3J0bGV0Q29udGV4dC5nZXRBdHRyaWJ1dGVOYW1lcygpOworCX0KKworCS8qKgorCSAqIEBzZWUgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCNnZXRDb250ZXh0KGphdmEubGFuZy5TdHJpbmcpCisJICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24gTm90IHN1cHBvcnRlZCBpbiBhIHBvcnRsZXQuCisJICovCisJcHVibGljIFNlcnZsZXRDb250ZXh0IGdldENvbnRleHQoU3RyaW5nIHVyaXBhdGgpIHsKKwkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IHN1cHBvcnRlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0I2dldEluaXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykKKwkgKi8KKwlwdWJsaWMgU3RyaW5nIGdldEluaXRQYXJhbWV0ZXIoU3RyaW5nIG5hbWUpIHsKKwkJcmV0dXJuIHBvcnRsZXRDb250ZXh0LmdldEluaXRQYXJhbWV0ZXIobmFtZSk7CisJfQorCisJLyogKG5vbi1KYXZhZG9jKQorCSAqIEBzZWUgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCNnZXRJbml0UGFyYW1ldGVyTmFtZXMoKQorCSAqLworCXB1YmxpYyBFbnVtZXJhdGlvbiBnZXRJbml0UGFyYW1ldGVyTmFtZXMoKSB7CisJCXJldHVybiBwb3J0bGV0Q29udGV4dC5nZXRJbml0UGFyYW1ldGVyTmFtZXMoKTsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0I2dldE1ham9yVmVyc2lvbigpCisJICovCisJcHVibGljIGludCBnZXRNYWpvclZlcnNpb24oKSB7CisJCXJldHVybiBwb3J0bGV0Q29udGV4dC5nZXRNYWpvclZlcnNpb24oKTsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0I2dldE1pbWVUeXBlKGphdmEubGFuZy5TdHJpbmcpCisJICovCisJcHVibGljIFN0cmluZyBnZXRNaW1lVHlwZShTdHJpbmcgZmlsZSkgeworCQlyZXR1cm4gcG9ydGxldENvbnRleHQuZ2V0TWltZVR5cGUoZmlsZSk7CisJfQorCisJLyogKG5vbi1KYXZhZG9jKQorCSAqIEBzZWUgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCNnZXRNaW5vclZlcnNpb24oKQorCSAqLworCXB1YmxpYyBpbnQgZ2V0TWlub3JWZXJzaW9uKCkgeworCQlyZXR1cm4gcG9ydGxldENvbnRleHQuZ2V0TWlub3JWZXJzaW9uKCk7CisJfQorCisJLyoqCisJICogUmV0dXJucyBhIHtAbGluayBQb3J0bGV0U2VydmxldFJlcXVlc3REaXNwYXRjaGVyfSB3cmFwcGluZyB0aGUge0BsaW5rIFBvcnRsZXRSZXF1ZXN0RGlzcGF0Y2hlcn0KKwkgKiBhcyBhIHtAbGluayBSZXF1ZXN0RGlzcGF0Y2hlcn0gaW5zdGFuY2UuCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0I2dldE5hbWVkRGlzcGF0Y2hlcihqYXZhLmxhbmcuU3RyaW5nKQorCSAqIEByZXR1cm4gUG9ydGxldFNlcnZsZXRSZXF1ZXN0RGlzcGF0Y2hlcgorCSAqLworCXB1YmxpYyBSZXF1ZXN0RGlzcGF0Y2hlciBnZXROYW1lZERpc3BhdGNoZXIoU3RyaW5nIG5hbWUpIHsKKwkJcmV0dXJuIG5ldyBQb3J0bGV0U2VydmxldFJlcXVlc3REaXNwYXRjaGVyKHBvcnRsZXRDb250ZXh0LmdldE5hbWVkRGlzcGF0Y2hlcihuYW1lKSk7CisJfQorCisJLyogKG5vbi1KYXZhZG9jKQorCSAqIEBzZWUgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCNnZXRSZWFsUGF0aChqYXZhLmxhbmcuU3RyaW5nKQorCSAqLworCXB1YmxpYyBTdHJpbmcgZ2V0UmVhbFBhdGgoU3RyaW5nIHBhdGgpIHsKKwkJcmV0dXJuIHBvcnRsZXRDb250ZXh0LmdldFJlYWxQYXRoKHBhdGgpOworCX0KKworCS8qKgorCSAqIFJldHVybnMgYSB7QGxpbmsgUG9ydGxldFNlcnZsZXRSZXF1ZXN0RGlzcGF0Y2hlcn0gd3JhcHBpbmcgdGhlIHtAbGluayBQb3J0bGV0UmVxdWVzdERpc3BhdGNoZXJ9CisJICogYXMgYSB7QGxpbmsgUmVxdWVzdERpc3BhdGNoZXJ9IGluc3RhbmNlLgorCSAqIEBzZWUgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCNnZXROYW1lZERpc3BhdGNoZXIoamF2YS5sYW5nLlN0cmluZykKKwkgKiBAcmV0dXJuIFBvcnRsZXRTZXJ2bGV0UmVxdWVzdERpc3BhdGNoZXIKKwkgKi8KKwlwdWJsaWMgUmVxdWVzdERpc3BhdGNoZXIgZ2V0UmVxdWVzdERpc3BhdGNoZXIoU3RyaW5nIHBhdGgpIHsKKwkJcmV0dXJuIG5ldyBQb3J0bGV0U2VydmxldFJlcXVlc3REaXNwYXRjaGVyKHBvcnRsZXRDb250ZXh0LmdldFJlcXVlc3REaXNwYXRjaGVyKHBhdGgpKTsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0I2dldFJlc291cmNlKGphdmEubGFuZy5TdHJpbmcpCisJICovCisJcHVibGljIFVSTCBnZXRSZXNvdXJjZShTdHJpbmcgcGF0aCkgdGhyb3dzIE1hbGZvcm1lZFVSTEV4Y2VwdGlvbiB7CisJCXJldHVybiBwb3J0bGV0Q29udGV4dC5nZXRSZXNvdXJjZShwYXRoKTsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0I2dldFJlc291cmNlQXNTdHJlYW0oamF2YS5sYW5nLlN0cmluZykKKwkgKi8KKwlwdWJsaWMgSW5wdXRTdHJlYW0gZ2V0UmVzb3VyY2VBc1N0cmVhbShTdHJpbmcgcGF0aCkgeworCQlyZXR1cm4gcG9ydGxldENvbnRleHQuZ2V0UmVzb3VyY2VBc1N0cmVhbShwYXRoKTsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0I2dldFJlc291cmNlUGF0aHMoamF2YS5sYW5nLlN0cmluZykKKwkgKi8KKwlwdWJsaWMgU2V0IGdldFJlc291cmNlUGF0aHMoU3RyaW5nIHBhdGgpIHsKKwkJcmV0dXJuIHBvcnRsZXRDb250ZXh0LmdldFJlc291cmNlUGF0aHMocGF0aCk7CisJfQorCisJLyogKG5vbi1KYXZhZG9jKQorCSAqIEBzZWUgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCNnZXRTZXJ2ZXJJbmZvKCkKKwkgKi8KKwlwdWJsaWMgU3RyaW5nIGdldFNlcnZlckluZm8oKSB7CisJCXJldHVybiBwb3J0bGV0Q29udGV4dC5nZXRTZXJ2ZXJJbmZvKCk7CisJfQorCisJLyoqCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0I2dldFNlcnZsZXQoamF2YS5sYW5nLlN0cmluZykKKwkgKiBAdGhyb3dzIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiBOb3Qgc3VwcG9ydGVkIGluIGEgcG9ydGxldC4KKwkgKi8KKwlwdWJsaWMgU2VydmxldCBnZXRTZXJ2bGV0KFN0cmluZyBuYW1lKSB0aHJvd3MgU2VydmxldEV4Y2VwdGlvbiB7CisJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGEgcG9ydGxldCIpOworCX0KKworCS8qIChub24tSmF2YWRvYykKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQjZ2V0U2VydmxldENvbnRleHROYW1lKCkKKwkgKi8KKwlwdWJsaWMgU3RyaW5nIGdldFNlcnZsZXRDb250ZXh0TmFtZSgpIHsKKwkJcmV0dXJuIHBvcnRsZXRDb250ZXh0LmdldFBvcnRsZXRDb250ZXh0TmFtZSgpOworCX0KKworCS8qKgorCSAqIEBzZWUgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCNnZXRTZXJ2bGV0TmFtZXMoKQorIAkgKiBAdGhyb3dzIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiBOb3Qgc3VwcG9ydGVkIGluIGEgcG9ydGxldC4KKwkgKi8KKwlwdWJsaWMgRW51bWVyYXRpb24gZ2V0U2VydmxldE5hbWVzKCkgeworCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwkvKioKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQjZ2V0U2VydmxldHMoKQorCSAqIEB0aHJvd3MgSWxsZWdhbFN0YXRlRXhjZXB0aW9uIE5vdCBzdXBwb3J0ZWQgaW4gYSBwb3J0bGV0LgorCSAqLworCXB1YmxpYyBFbnVtZXJhdGlvbiBnZXRTZXJ2bGV0cygpIHsKKwkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0Iik7CisJfQorCisJLyogKG5vbi1KYXZhZG9jKQorCSAqIEBzZWUgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCNsb2coamF2YS5sYW5nLlN0cmluZykKKwkgKi8KKwlwdWJsaWMgdm9pZCBsb2coU3RyaW5nIG1zZykgeworCQlwb3J0bGV0Q29udGV4dC5sb2cobXNnKTsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0I2xvZyhqYXZhLmxhbmcuRXhjZXB0aW9uLCBqYXZhLmxhbmcuU3RyaW5nKQorCSAqLworCXB1YmxpYyB2b2lkIGxvZyhFeGNlcHRpb24gZXhjZXB0aW9uLCBTdHJpbmcgbXNnKSB7CisJCWxvZyhtc2csIGV4Y2VwdGlvbik7CisJfQorCisJLyogKG5vbi1KYXZhZG9jKQorCSAqIEBzZWUgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCNsb2coamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlRocm93YWJsZSkKKwkgKi8KKwlwdWJsaWMgdm9pZCBsb2coU3RyaW5nIG1lc3NhZ2UsIFRocm93YWJsZSB0aHJvd2FibGUpIHsKKwkJcG9ydGxldENvbnRleHQubG9nKG1lc3NhZ2UsIHRocm93YWJsZSk7CisJfQorCisJLyogKG5vbi1KYXZhZG9jKQorCSAqIEBzZWUgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCNyZW1vdmVBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykKKwkgKi8KKwlwdWJsaWMgdm9pZCByZW1vdmVBdHRyaWJ1dGUoU3RyaW5nIG5hbWUpIHsKKwkJcG9ydGxldENvbnRleHQucmVtb3ZlQXR0cmlidXRlKG5hbWUpOworCX0KKworCS8qIChub24tSmF2YWRvYykKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQjc2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpCisJICovCisJcHVibGljIHZvaWQgc2V0QXR0cmlidXRlKFN0cmluZyBuYW1lLCBPYmplY3Qgb2JqZWN0KSB7CisJCXBvcnRsZXRDb250ZXh0LnNldEF0dHJpYnV0ZShuYW1lLCBvYmplY3QpOworCX0KKwkKKwkvKioKKwkgKiBHZXQgdGhlIHdyYXBwZWQge0BsaW5rIFBvcnRsZXRDb250ZXh0fSBpbnN0YW5jZS4KKwkgKiBAcmV0dXJuIFRoZSB3cmFwcGVkIHtAbGluayBQb3J0bGV0Q29udGV4dH0gaW5zdGFuY2UuCisJICovCisJcHVibGljIFBvcnRsZXRDb250ZXh0IGdldFBvcnRsZXRDb250ZXh0KCkgeworCQlyZXR1cm4gcG9ydGxldENvbnRleHQ7CisJfQorCit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9zZXJ2bGV0L1BvcnRsZXRTZXJ2bGV0SW5wdXRTdHJlYW0uamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3NlcnZsZXQvUG9ydGxldFNlcnZsZXRJbnB1dFN0cmVhbS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1NWY5NjYKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9zZXJ2bGV0L1BvcnRsZXRTZXJ2bGV0SW5wdXRTdHJlYW0uamF2YQpAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5zZXJ2bGV0OworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0SW5wdXRTdHJlYW07CisKKy8qKgorICogV3JhcHBlciBvYmplY3QgZXhwb3NpbmcgYSB7QGxpbmsgSW5wdXRTdHJlYW19IGZyb20gYSBwb3J0bGV0IGFzIGEge0BsaW5rIFNlcnZsZXRJbnB1dFN0cmVhbX0gaW5zdGFuY2UuCisgKiBDbGllbnRzIGFjY2Vzc2luZyB0aGlzIHN0cmVhbSBvYmplY3Qgd2lsbCBpbiBmYWN0IG9wZXJhdGUgb24gdGhlCisgKiB7QGxpbmsgSW5wdXRTdHJlYW19IG9iamVjdCB3cmFwcGVkIGJ5IHRoaXMgc3RyZWFtIG9iamVjdC4KKyAqLworcHVibGljIGNsYXNzIFBvcnRsZXRTZXJ2bGV0SW5wdXRTdHJlYW0gZXh0ZW5kcyBTZXJ2bGV0SW5wdXRTdHJlYW0geworCisJcHJpdmF0ZSBJbnB1dFN0cmVhbSBwb3J0bGV0SW5wdXRTdHJlYW07CisJCisJcHVibGljIFBvcnRsZXRTZXJ2bGV0SW5wdXRTdHJlYW0oSW5wdXRTdHJlYW0gcG9ydGxldElucHV0U3RyZWFtKSB7CisJCXRoaXMucG9ydGxldElucHV0U3RyZWFtID0gcG9ydGxldElucHV0U3RyZWFtOworCX0KKwkKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZhLmlvLklucHV0U3RyZWFtI3JlYWQoKQorCSAqLworCUBPdmVycmlkZQorCXB1YmxpYyBpbnQgcmVhZCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisJCXJldHVybiBwb3J0bGV0SW5wdXRTdHJlYW0ucmVhZCgpOworCX0KKworCS8qIChub24tSmF2YWRvYykKKwkgKiBAc2VlIGphdmEuaW8uSW5wdXRTdHJlYW0jYXZhaWxhYmxlKCkKKwkgKi8KKwlAT3ZlcnJpZGUKKwlwdWJsaWMgaW50IGF2YWlsYWJsZSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisJCXJldHVybiBwb3J0bGV0SW5wdXRTdHJlYW0uYXZhaWxhYmxlKCk7CisJfQorCisJLyogKG5vbi1KYXZhZG9jKQorCSAqIEBzZWUgamF2YS5pby5JbnB1dFN0cmVhbSNjbG9zZSgpCisJICovCisJQE92ZXJyaWRlCisJcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgSU9FeGNlcHRpb24geworCQlwb3J0bGV0SW5wdXRTdHJlYW0uY2xvc2UoKTsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZhLmlvLklucHV0U3RyZWFtI21hcmsoaW50KQorCSAqLworCUBPdmVycmlkZQorCXB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBtYXJrKGludCByZWFkbGltaXQpIHsKKwkJcG9ydGxldElucHV0U3RyZWFtLm1hcmsocmVhZGxpbWl0KTsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZhLmlvLklucHV0U3RyZWFtI21hcmtTdXBwb3J0ZWQoKQorCSAqLworCUBPdmVycmlkZQorCXB1YmxpYyBib29sZWFuIG1hcmtTdXBwb3J0ZWQoKSB7CisJCXJldHVybiBwb3J0bGV0SW5wdXRTdHJlYW0ubWFya1N1cHBvcnRlZCgpOworCX0KKworCS8qIChub24tSmF2YWRvYykKKwkgKiBAc2VlIGphdmEuaW8uSW5wdXRTdHJlYW0jcmVhZChieXRlW10sIGludCwgaW50KQorCSAqLworCUBPdmVycmlkZQorCXB1YmxpYyBpbnQgcmVhZChieXRlW10gYiwgaW50IG9mZiwgaW50IGxlbikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKwkJcmV0dXJuIHBvcnRsZXRJbnB1dFN0cmVhbS5yZWFkKGIsIG9mZiwgbGVuKTsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZhLmlvLklucHV0U3RyZWFtI3JlYWQoYnl0ZVtdKQorCSAqLworCUBPdmVycmlkZQorCXB1YmxpYyBpbnQgcmVhZChieXRlW10gYikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKwkJcmV0dXJuIHBvcnRsZXRJbnB1dFN0cmVhbS5yZWFkKGIpOworCX0KKworCS8qIChub24tSmF2YWRvYykKKwkgKiBAc2VlIGphdmEuaW8uSW5wdXRTdHJlYW0jcmVzZXQoKQorCSAqLworCUBPdmVycmlkZQorCXB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCByZXNldCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisJCXBvcnRsZXRJbnB1dFN0cmVhbS5yZXNldCgpOworCX0KKworCS8qIChub24tSmF2YWRvYykKKwkgKiBAc2VlIGphdmEuaW8uSW5wdXRTdHJlYW0jc2tpcChsb25nKQorCSAqLworCUBPdmVycmlkZQorCXB1YmxpYyBsb25nIHNraXAobG9uZyBuKSB0aHJvd3MgSU9FeGNlcHRpb24geworCQlyZXR1cm4gcG9ydGxldElucHV0U3RyZWFtLnNraXAobik7CisJfQorCQorCS8qKgorCSAqIEdldCB0aGUgd3JhcHBlZCB7QGxpbmsgSW5wdXRTdHJlYW19IGluc3RhbmNlLgorCSAqIEByZXR1cm4gVGhlIHdyYXBwZWQge0BsaW5rIElucHV0U3RyZWFtfSBpbnN0YW5jZS4KKwkgKi8KKwlwdWJsaWMgSW5wdXRTdHJlYW0gZ2V0SW5wdXRTdHJlYW0oKSB7CisJCXJldHVybiBwb3J0bGV0SW5wdXRTdHJlYW07CisJfQorCit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9zZXJ2bGV0L1BvcnRsZXRTZXJ2bGV0T3V0cHV0U3RyZWFtLmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9zZXJ2bGV0L1BvcnRsZXRTZXJ2bGV0T3V0cHV0U3RyZWFtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODcxYjNkMgotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3NlcnZsZXQvUG9ydGxldFNlcnZsZXRPdXRwdXRTdHJlYW0uamF2YQpAQCAtMCwwICsxLDg5IEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LnNlcnZsZXQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uT3V0cHV0U3RyZWFtOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0T3V0cHV0U3RyZWFtOworCisvKioKKyAqIFdyYXBwZXIgb2JqZWN0IGV4cG9zaW5nIGEge0BsaW5rIE91dHB1dFN0cmVhbX0gZnJvbSBhIHBvcnRsZXQgYXMgYSB7QGxpbmsgU2VydmxldE91dHB1dFN0cmVhbX0gaW5zdGFuY2UuCisgKiBDbGllbnRzIGFjY2Vzc2luZyB0aGlzIHN0cmVhbSBvYmplY3Qgd2lsbCBpbiBmYWN0IG9wZXJhdGUgb24gdGhlCisgKiB7QGxpbmsgT3V0cHV0U3RyZWFtfSBvYmplY3Qgd3JhcHBlZCBieSB0aGlzIHN0cmVhbSBvYmplY3QuCisgKi8KK3B1YmxpYyBjbGFzcyBQb3J0bGV0U2VydmxldE91dHB1dFN0cmVhbSBleHRlbmRzIFNlcnZsZXRPdXRwdXRTdHJlYW0geworCisJcHJpdmF0ZSBPdXRwdXRTdHJlYW0gcG9ydGxldE91dHB1dFN0cmVhbTsKKwkKKwlwdWJsaWMgUG9ydGxldFNlcnZsZXRPdXRwdXRTdHJlYW0oT3V0cHV0U3RyZWFtIHBvcnRsZXRPdXRwdXRTdHJlYW0pIHsKKwkJdGhpcy5wb3J0bGV0T3V0cHV0U3RyZWFtID0gcG9ydGxldE91dHB1dFN0cmVhbTsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZhLmlvLk91dHB1dFN0cmVhbSN3cml0ZShpbnQpCisJICovCisJQE92ZXJyaWRlCisJcHVibGljIHZvaWQgd3JpdGUoaW50IGNoKSB0aHJvd3MgSU9FeGNlcHRpb24geworCQlwb3J0bGV0T3V0cHV0U3RyZWFtLndyaXRlKGNoKTsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZhLmlvLk91dHB1dFN0cmVhbSNjbG9zZSgpCisJICovCisJQE92ZXJyaWRlCisJcHVibGljIHZvaWQgY2xvc2UoKSB0aHJvd3MgSU9FeGNlcHRpb24geworCQlwb3J0bGV0T3V0cHV0U3RyZWFtLmNsb3NlKCk7CisJfQorCisJLyogKG5vbi1KYXZhZG9jKQorCSAqIEBzZWUgamF2YS5pby5PdXRwdXRTdHJlYW0jZmx1c2goKQorCSAqLworCUBPdmVycmlkZQorCXB1YmxpYyB2b2lkIGZsdXNoKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKwkJcG9ydGxldE91dHB1dFN0cmVhbS5mbHVzaCgpOworCX0KKworCS8qIChub24tSmF2YWRvYykKKwkgKiBAc2VlIGphdmEuaW8uT3V0cHV0U3RyZWFtI3dyaXRlKGJ5dGVbXSkKKwkgKi8KKwlAT3ZlcnJpZGUKKwlwdWJsaWMgdm9pZCB3cml0ZShieXRlW10gYikgdGhyb3dzIElPRXhjZXB0aW9uIHsKKwkJcG9ydGxldE91dHB1dFN0cmVhbS53cml0ZShiKTsKKwl9CisKKwkvKiAobm9uLUphdmFkb2MpCisJICogQHNlZSBqYXZhLmlvLk91dHB1dFN0cmVhbSN3cml0ZShieXRlW10sIGludCwgaW50KQorCSAqLworCUBPdmVycmlkZQorCXB1YmxpYyB2b2lkIHdyaXRlKGJ5dGVbXSBiLCBpbnQgb2ZmLCBpbnQgbGVuKSB0aHJvd3MgSU9FeGNlcHRpb24geworCQlwb3J0bGV0T3V0cHV0U3RyZWFtLndyaXRlKGIsIG9mZiwgbGVuKTsKKwl9CisJCisJLyoqCisJICogR2V0IHRoZSB3cmFwcGVkIHtAbGluayBPdXRwdXRTdHJlYW19IGluc3RhbmNlLgorCSAqIEByZXR1cm4gVGhlIHdyYXBwZWQge0BsaW5rIE91dHB1dFN0cmVhbX0gaW5zdGFuY2UuCisJICovCisJcHVibGljIE91dHB1dFN0cmVhbSBnZXRPdXRwdXRTdHJlYW0oKSB7CisJCXJldHVybiBwb3J0bGV0T3V0cHV0U3RyZWFtOworCX0KK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3NlcnZsZXQvUG9ydGxldFNlcnZsZXRSZXF1ZXN0LmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9zZXJ2bGV0L1BvcnRsZXRTZXJ2bGV0UmVxdWVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwYTczMDMKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9zZXJ2bGV0L1BvcnRsZXRTZXJ2bGV0UmVxdWVzdC5qYXZhCkBAIC0wLDAgKzEsNjc5IEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LnNlcnZsZXQ7CisKK2ltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLlVuc3VwcG9ydGVkRW5jb2RpbmdFeGNlcHRpb247CitpbXBvcnQgamF2YS5zZWN1cml0eS5QcmluY2lwYWw7CitpbXBvcnQgamF2YS51dGlsLkVudW1lcmF0aW9uOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworaW1wb3J0IGphdmF4LnBvcnRsZXQuQWN0aW9uUmVxdWVzdDsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRDb250ZXh0OworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0UmVxdWVzdERpc3BhdGNoZXI7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0U2Vzc2lvbjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlJlcXVlc3REaXNwYXRjaGVyOworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldElucHV0U3RyZWFtOworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkNvb2tpZTsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vzc2lvbjsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5TdHJ1dHNDb25zdGFudHM7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIubWFwcGVyLkFjdGlvbk1hcHBpbmc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuUG9ydGxldEFjdGlvbkNvbnN0YW50czsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5jb250ZXh0LlBvcnRsZXRBY3Rpb25Db250ZXh0OworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuaW5qZWN0LkluamVjdDsKKworLyoqCisgKiBXcmFwcGVyIG9iamVjdCBleHBvc2luZyBhIHtAbGluayBQb3J0bGV0UmVxdWVzdH0gYXMgYQorICoge0BsaW5rIEh0dHBTZXJ2bGV0UmVxdWVzdH0gaW5zdGFuY2UuIENsaWVudHMgYWNjZXNzaW5nIHRoaXMgcmVxdWVzdCBvYmplY3QKKyAqIHdpbGwgaW4gZmFjdCBvcGVyYXRlIG9uIHRoZSB7QGxpbmsgUG9ydGxldFJlcXVlc3R9IG9iamVjdCB3cmFwcGVkIGJ5IHRoaXMKKyAqIHJlcXVlc3Qgb2JqZWN0LgorICovCitwdWJsaWMgY2xhc3MgUG9ydGxldFNlcnZsZXRSZXF1ZXN0IGltcGxlbWVudHMgSHR0cFNlcnZsZXRSZXF1ZXN0LCBQb3J0bGV0QWN0aW9uQ29uc3RhbnRzIHsKKworCXByaXZhdGUgUG9ydGxldFJlcXVlc3QgcG9ydGxldFJlcXVlc3Q7CisKKwlwcml2YXRlIFBvcnRsZXRDb250ZXh0IHBvcnRsZXRDb250ZXh0OworCisJcHJpdmF0ZSBTdHJpbmcgZXh0ZW5zaW9uOworCisJcHVibGljIFBvcnRsZXRTZXJ2bGV0UmVxdWVzdChQb3J0bGV0UmVxdWVzdCBwb3J0bGV0UmVxdWVzdCwgUG9ydGxldENvbnRleHQgcG9ydGxldENvbnRleHQpIHsKKwkJdGhpcy5wb3J0bGV0UmVxdWVzdCA9IHBvcnRsZXRSZXF1ZXN0OworCQl0aGlzLnBvcnRsZXRDb250ZXh0ID0gcG9ydGxldENvbnRleHQ7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0I2dldEF1dGhUeXBlKCkKKwkgKi8KKwlwdWJsaWMgU3RyaW5nIGdldEF1dGhUeXBlKCkgeworCQlyZXR1cm4gcG9ydGxldFJlcXVlc3QuZ2V0QXV0aFR5cGUoKTsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QjZ2V0Q29udGV4dFBhdGgoKQorCSAqLworCXB1YmxpYyBTdHJpbmcgZ2V0Q29udGV4dFBhdGgoKSB7CisJCXJldHVybiBwb3J0bGV0UmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpOworCX0KKworCS8qKgorCSAqIE5vdCBhbGxvd2VkIGluIGEgcG9ydGxldC4KKwkgKiAKKwkgKiBAdGhyb3dzIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbgorCSAqICAgICAgICAgICAgIE5vdCBhbGxvd2VkIGluIGEgcG9ydGxldC4KKwkgKi8KKwlwdWJsaWMgQ29va2llW10gZ2V0Q29va2llcygpIHsKKwkJaWYgKHBvcnRsZXRSZXF1ZXN0IGluc3RhbmNlb2YgSHR0cFNlcnZsZXRSZXF1ZXN0KSB7CisJCQlyZXR1cm4gKChIdHRwU2VydmxldFJlcXVlc3QpIHBvcnRsZXRSZXF1ZXN0KS5nZXRDb29raWVzKCk7CisJCX0KKwkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0Iik7CisJfQorCisJLyoqCisJICogTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0LgorCSAqIAorCSAqIEB0aHJvd3MgSWxsZWdhbFN0YXRlRXhjZXB0aW9uCisJICogICAgICAgICAgICAgTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0LgorCSAqLworCXB1YmxpYyBsb25nIGdldERhdGVIZWFkZXIoU3RyaW5nIG5hbWUpIHsKKwkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0Iik7CisJfQorCisJLyoqCisJICogR2V0cyBhIHByb3BlcnR5IGZyb20gdGhlIHtAbGluayBQb3J0bGV0UmVxdWVzdH0uIE5vdGUgdGhhdCBhCisJICoge0BsaW5rIFBvcnRsZXRSZXF1ZXN0fSBpcyBub3QgZ3VhcmFudGVlZCB0byBtYXAgcHJvcGVydGllcyB0byBoZWFkZXJzLgorCSAqIAorCSAqIEBzZWUgUG9ydGxldFJlcXVlc3QjZ2V0UHJvcGVydHkoU3RyaW5nKQorCSAqIEBzZWUgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCNnZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykKKwkgKi8KKwlwdWJsaWMgU3RyaW5nIGdldEhlYWRlcihTdHJpbmcgbmFtZSkgeworCQlyZXR1cm4gcG9ydGxldFJlcXVlc3QuZ2V0UHJvcGVydHkobmFtZSk7CisJfQorCisJLyoqCisJICogR2V0cyB0aGUgcHJvcGVydHkgbmFtZXMgZnJvbSB0aGUge0BsaW5rIFBvcnRsZXRSZXF1ZXN0fS4gTm90ZSB0aGF0IGEKKwkgKiB7QGxpbmsgUG9ydGxldFJlcXVlc3R9IGlzIG5vdCBndWFyYW50ZWVkIHRvIG1hcCBwcm9wZXJ0aWVzIHRvIGhlYWRlcnMuCisJICogCisJICogQHNlZSBQb3J0bGV0UmVxdWVzdCNnZXRQcm9wZXJ0eU5hbWVzKCkKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QjZ2V0SGVhZGVyTmFtZXMoKQorCSAqLworCXB1YmxpYyBFbnVtZXJhdGlvbiBnZXRIZWFkZXJOYW1lcygpIHsKKwkJcmV0dXJuIHBvcnRsZXRSZXF1ZXN0LmdldFByb3BlcnR5TmFtZXMoKTsKKwl9CisKKwkvKioKKwkgKiBHZXRzIHRoZSB2YWx1ZXMgZm9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgZnJvbSB0aGUKKwkgKiB7QGxpbmsgUG9ydGxldFJlcXVlc3R9LiBOb3RlIHRoYXQgYSB7QGxpbmsgUG9ydGxldFJlcXVlc3R9IGlzIG5vdAorCSAqIGd1YXJhbnRlZWQgdG8gbWFwIHByb3BlcnRpZXMgdG8gaGVhZGVycy4KKwkgKiAKKwkgKiBAc2VlIFBvcnRsZXRSZXF1ZXN0I2dldFByb3BlcnRpZXMoU3RyaW5nKQorCSAqIEBzZWUgSHR0cFNlcnZsZXRSZXF1ZXN0I2dldEhlYWRlcnMoU3RyaW5nKQorCSAqLworCXB1YmxpYyBFbnVtZXJhdGlvbiBnZXRIZWFkZXJzKFN0cmluZyBuYW1lKSB7CisJCXJldHVybiBwb3J0bGV0UmVxdWVzdC5nZXRQcm9wZXJ0aWVzKG5hbWUpOworCX0KKworCS8qKgorCSAqIE5vdCBhbGxvd2VkIGluIGEgcG9ydGxldC4KKwkgKiAKKwkgKiBAdGhyb3dzIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbgorCSAqICAgICAgICAgICAgIE5vdCBhbGxvd2VkIGluIGEgcG9ydGxldC4KKwkgKi8KKwlwdWJsaWMgaW50IGdldEludEhlYWRlcihTdHJpbmcgbmFtZSkgeworCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QjZ2V0TWV0aG9kKCkKKwkgKi8KKwlwdWJsaWMgU3RyaW5nIGdldE1ldGhvZCgpIHsKKwkJcmV0dXJuIG51bGw7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0I2dldFBhdGhJbmZvKCkKKwkgKi8KKwlwdWJsaWMgU3RyaW5nIGdldFBhdGhJbmZvKCkgeworCQlyZXR1cm4gbnVsbDsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QjZ2V0UGF0aFRyYW5zbGF0ZWQoKQorCSAqLworCXB1YmxpYyBTdHJpbmcgZ2V0UGF0aFRyYW5zbGF0ZWQoKSB7CisJCXJldHVybiBudWxsOworCX0KKworCS8qCisJICogKG5vbi1KYXZhZG9jKQorCSAqIAorCSAqIEBzZWUgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCNnZXRRdWVyeVN0cmluZygpCisJICovCisJcHVibGljIFN0cmluZyBnZXRRdWVyeVN0cmluZygpIHsKKwkJcmV0dXJuIG51bGw7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0I2dldFJlbW90ZVVzZXIoKQorCSAqLworCXB1YmxpYyBTdHJpbmcgZ2V0UmVtb3RlVXNlcigpIHsKKwkJcmV0dXJuIHBvcnRsZXRSZXF1ZXN0LmdldFJlbW90ZVVzZXIoKTsKKwl9CisKKwkvKioKKwkgKiBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICogCisJICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24KKwkgKiAgICAgICAgICAgICBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICovCisJcHVibGljIFN0cmluZyBnZXRSZXF1ZXN0VVJJKCkgeworCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwkvKioKKwkgKiBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICogCisJICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24KKwkgKiAgICAgICAgICAgICBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICovCisJcHVibGljIFN0cmluZ0J1ZmZlciBnZXRSZXF1ZXN0VVJMKCkgeworCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QjZ2V0UmVxdWVzdGVkU2Vzc2lvbklkKCkKKwkgKi8KKwlwdWJsaWMgU3RyaW5nIGdldFJlcXVlc3RlZFNlc3Npb25JZCgpIHsKKwkJcmV0dXJuIHBvcnRsZXRSZXF1ZXN0LmdldFJlcXVlc3RlZFNlc3Npb25JZCgpOworCX0KKworCS8qKgorCSAqIEEge0BsaW5rIFBvcnRsZXRSZXF1ZXN0fSBoYXMgbm8gc2VydmxldCBwYXRoLiBCdXQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aAorCSAqIFN0cnV0cyAyIGNvbXBvbmVudHMgYW5kIGludGVyY2VwdG9ycywgdGhlIGFjdGlvbiBwYXJhbWV0ZXIgb24gdGhlIHJlcXVlc3QKKwkgKiBpcyBtYXBwZWQgdG8gdGhlIHNlcnZsZXQgcGF0aC4KKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QjZ2V0U2VydmxldFBhdGgoKQorCSAqLworCXB1YmxpYyBTdHJpbmcgZ2V0U2VydmxldFBhdGgoKSB7CisJCVN0cmluZyBhY3Rpb25QYXRoID0gZ2V0UGFyYW1ldGVyKEFDVElPTl9QQVJBTSk7CisJCWlmICghaGFzRXh0ZW5zaW9uKGFjdGlvblBhdGgpKSB7CisJCQlhY3Rpb25QYXRoICs9ICIuIiArIGV4dGVuc2lvbjsKKwkJfQorCQlyZXR1cm4gYWN0aW9uUGF0aDsKKwl9CisKKwlwcml2YXRlIGJvb2xlYW4gaGFzRXh0ZW5zaW9uKFN0cmluZyBhY3Rpb25QYXRoKSB7CisJCXJldHVybiBleHRlbnNpb24gPT0gbnVsbCB8fCAiIi5lcXVhbHMoZXh0ZW5zaW9uKQorCQkJCXx8IChhY3Rpb25QYXRoICE9IG51bGwgJiYgYWN0aW9uUGF0aC5lbmRzV2l0aCgiLiIgKyBleHRlbnNpb24pKTsKKwl9CisKKwkvKioKKwkgKiBHZXQgdGhlIHtAbGluayBQb3J0bGV0U2Vzc2lvbn0gYXMgYSB7QGxpbmsgUG9ydGxldEh0dHBTZXNzaW9ufSBpbnN0YW5jZS4KKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QjZ2V0U2Vzc2lvbigpCisJICovCisJcHVibGljIEh0dHBTZXNzaW9uIGdldFNlc3Npb24oKSB7CisJCXJldHVybiBuZXcgUG9ydGxldEh0dHBTZXNzaW9uKHBvcnRsZXRSZXF1ZXN0LmdldFBvcnRsZXRTZXNzaW9uKCkpOworCX0KKworCS8qKgorCSAqIEdldCB0aGUge0BsaW5rIFBvcnRsZXRTZXNzaW9ufSBhcyBhIHtAbGluayBQb3J0bGV0SHR0cFNlc3Npb259IGluc3RhbmNlLgorCSAqIAorCSAqIEBzZWUgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCNnZXRTZXNzaW9uKGJvb2xlYW4pCisJICovCisJcHVibGljIEh0dHBTZXNzaW9uIGdldFNlc3Npb24oYm9vbGVhbiBjcmVhdGUpIHsKKwkJcmV0dXJuIG5ldyBQb3J0bGV0SHR0cFNlc3Npb24ocG9ydGxldFJlcXVlc3QuZ2V0UG9ydGxldFNlc3Npb24oY3JlYXRlKSk7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0I2dldFVzZXJQcmluY2lwYWwoKQorCSAqLworCXB1YmxpYyBQcmluY2lwYWwgZ2V0VXNlclByaW5jaXBhbCgpIHsKKwkJcmV0dXJuIHBvcnRsZXRSZXF1ZXN0LmdldFVzZXJQcmluY2lwYWwoKTsKKwl9CisKKwkvKioKKwkgKiBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICogCisJICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24KKwkgKiAgICAgICAgICAgICBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICovCisJcHVibGljIGJvb2xlYW4gaXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tQ29va2llKCkgeworCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwkvKioKKwkgKiBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICogCisJICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24KKwkgKiAgICAgICAgICAgICBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICovCisJcHVibGljIGJvb2xlYW4gaXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tVVJMKCkgeworCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwkvKioKKwkgKiBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICogCisJICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24KKwkgKiAgICAgICAgICAgICBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICovCisJcHVibGljIGJvb2xlYW4gaXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tVXJsKCkgeworCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QjaXNSZXF1ZXN0ZWRTZXNzaW9uSWRWYWxpZCgpCisJICovCisJcHVibGljIGJvb2xlYW4gaXNSZXF1ZXN0ZWRTZXNzaW9uSWRWYWxpZCgpIHsKKwkJcmV0dXJuIHBvcnRsZXRSZXF1ZXN0LmlzUmVxdWVzdGVkU2Vzc2lvbklkVmFsaWQoKTsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QjaXNVc2VySW5Sb2xlKGphdmEubGFuZy5TdHJpbmcpCisJICovCisJcHVibGljIGJvb2xlYW4gaXNVc2VySW5Sb2xlKFN0cmluZyByb2xlKSB7CisJCXJldHVybiBwb3J0bGV0UmVxdWVzdC5pc1VzZXJJblJvbGUocm9sZSk7CisJfQorCisJLyoqCisJICogR2V0cyBhbiBhdHRyaWJ1dGUgdmFsdWUgb24gdGhlIHtAbGluayBQb3J0bGV0UmVxdWVzdH0uIElmIHRoZSBhdHRyaWJ1dGUKKwkgKiBuYW1lIGlzIDx0dD5qYXZheC5zZXJ2bGV0LmluY2x1ZGUuc2VydmxldF9wYXRoPC90dD4sIGl0IHJldHVybnMgdGhlCisJICogc2FtZSBhcyB7QGxpbmsgUG9ydGxldFNlcnZsZXRSZXF1ZXN0I2dldFNlcnZsZXRQYXRoKCl9CisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0I2dldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKQorCSAqLworCXB1YmxpYyBPYmplY3QgZ2V0QXR0cmlidXRlKFN0cmluZyBuYW1lKSB7CisJCWlmICgiamF2YXguc2VydmxldC5pbmNsdWRlLnNlcnZsZXRfcGF0aCIuZXF1YWxzKG5hbWUpKSB7CisJCQlyZXR1cm4gZ2V0U2VydmxldFBhdGgoKTsKKwkJfSBlbHNlIHsKKwkJCXJldHVybiBwb3J0bGV0UmVxdWVzdC5nZXRBdHRyaWJ1dGUobmFtZSk7CisJCX0KKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QjZ2V0QXR0cmlidXRlTmFtZXMoKQorCSAqLworCXB1YmxpYyBFbnVtZXJhdGlvbiBnZXRBdHRyaWJ1dGVOYW1lcygpIHsKKwkJcmV0dXJuIHBvcnRsZXRSZXF1ZXN0LmdldEF0dHJpYnV0ZU5hbWVzKCk7CisJfQorCisJLyoqCisJICogQ2FuIG9ubHkgYmUgaW52b2tlZCBpbiB0aGUgZXZlbnQgcGhhc2UuCisJICogCisJICogQHNlZSBTZXJ2bGV0UmVxdWVzdCNnZXRDaGFyYWN0ZXJFbmNvZGluZygpCisJICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24KKwkgKiAgICAgICAgICAgICBJZiB0aGUgcG9ydGxldCBpcyBub3QgaW4gdGhlIGV2ZW50IHBoYXNlLgorCSAqLworCXB1YmxpYyBTdHJpbmcgZ2V0Q2hhcmFjdGVyRW5jb2RpbmcoKSB7CisJCWlmIChwb3J0bGV0UmVxdWVzdCBpbnN0YW5jZW9mIEFjdGlvblJlcXVlc3QpIHsKKwkJCXJldHVybiAoKEFjdGlvblJlcXVlc3QpIHBvcnRsZXRSZXF1ZXN0KS5nZXRDaGFyYWN0ZXJFbmNvZGluZygpOworCQl9IGVsc2UgeworCQkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gcmVuZGVyIHBoYXNlIik7CisJCX0KKwl9CisKKwkvKioKKwkgKiBDYW4gb25seSBiZSBpbnZva2VkIGluIHRoZSBldmVudCBwaGFzZS4KKwkgKiAKKwkgKiBAc2VlIFNlcnZsZXRSZXF1ZXN0I2dldENvbnRlbnRMZW5ndGgoKQorCSAqIEB0aHJvd3MgSWxsZWdhbFN0YXRlRXhjZXB0aW9uCisJICogICAgICAgICAgICAgSWYgdGhlIHBvcnRsZXQgaXMgbm90IGluIHRoZSBldmVudCBwaGFzZS4KKwkgKi8KKwlwdWJsaWMgaW50IGdldENvbnRlbnRMZW5ndGgoKSB7CisJCWlmIChwb3J0bGV0UmVxdWVzdCBpbnN0YW5jZW9mIEFjdGlvblJlcXVlc3QpIHsKKwkJCXJldHVybiAoKEFjdGlvblJlcXVlc3QpIHBvcnRsZXRSZXF1ZXN0KS5nZXRDb250ZW50TGVuZ3RoKCk7CisJCX0gZWxzZSB7CisJCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiByZW5kZXIgcGhhc2UiKTsKKwkJfQorCX0KKworCS8qKgorCSAqIENhbiBvbmx5IGJlIGludm9rZWQgaW4gdGhlIGV2ZW50IHBoYXNlLgorCSAqIAorCSAqIEBzZWUgU2VydmxldFJlcXVlc3QjZ2V0Q29udGVudFR5cGUoKQorCSAqIEB0aHJvd3MgSWxsZWdhbFN0YXRlRXhjZXB0aW9uCisJICogICAgICAgICAgICAgSWYgdGhlIHBvcnRsZXQgaXMgbm90IGluIHRoZSBldmVudCBwaGFzZS4KKwkgKi8KKwlwdWJsaWMgU3RyaW5nIGdldENvbnRlbnRUeXBlKCkgeworCQlpZiAocG9ydGxldFJlcXVlc3QgaW5zdGFuY2VvZiBBY3Rpb25SZXF1ZXN0KSB7CisJCQlyZXR1cm4gKChBY3Rpb25SZXF1ZXN0KSBwb3J0bGV0UmVxdWVzdCkuZ2V0Q29udGVudFR5cGUoKTsKKwkJfSBlbHNlIHsKKwkJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIHJlbmRlciBwaGFzZSIpOworCQl9CisJfQorCisJLyoqCisJICogQ2FuIG9ubHkgYmUgaW52b2tlZCBpbiB0aGUgZXZlbnQgcGhhc2UuIFdoZW4gaW52b2tlZCBpbiB0aGUgZXZlbnQgcGhhc2UsCisJICogaXQgd2lsbCB3cmFwIHRoZSBwb3J0bGV0J3Mge0BsaW5rIElucHV0U3RyZWFtfSBhcyBhCisJICoge0BsaW5rIFBvcnRsZXRTZXJ2bGV0SW5wdXRTdHJlYW19LgorCSAqIAorCSAqIEBzZWUgU2VydmxldFJlcXVlc3QjZ2V0SW5wdXRTdHJlYW0oKQorCSAqIEB0aHJvd3MgSWxsZWdhbFN0YXRlRXhjZXB0aW9uCisJICogICAgICAgICAgICAgSWYgdGhlIHBvcnRsZXQgaXMgbm90IGluIHRoZSBldmVudCBwaGFzZS4KKwkgKi8KKwlwdWJsaWMgU2VydmxldElucHV0U3RyZWFtIGdldElucHV0U3RyZWFtKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKKwkJaWYgKHBvcnRsZXRSZXF1ZXN0IGluc3RhbmNlb2YgQWN0aW9uUmVxdWVzdCkgeworCQkJcmV0dXJuIG5ldyBQb3J0bGV0U2VydmxldElucHV0U3RyZWFtKCgoQWN0aW9uUmVxdWVzdCkgcG9ydGxldFJlcXVlc3QpLmdldFBvcnRsZXRJbnB1dFN0cmVhbSgpKTsKKwkJfSBlbHNlIHsKKwkJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIHJlbmRlciBwaGFzZSIpOworCQl9CisJfQorCisJLyoqCisJICogTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0LgorCSAqIAorCSAqIEB0aHJvd3MgSWxsZWdhbFN0YXRlRXhjZXB0aW9uCisJICogICAgICAgICAgICAgTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0LgorCSAqLworCXB1YmxpYyBTdHJpbmcgZ2V0TG9jYWxBZGRyKCkgeworCQlpZiAocG9ydGxldFJlcXVlc3QgaW5zdGFuY2VvZiBIdHRwU2VydmxldFJlcXVlc3QpIHsKKwkJCXJldHVybiAoKEh0dHBTZXJ2bGV0UmVxdWVzdCkgcG9ydGxldFJlcXVlc3QpLmdldExvY2FsQWRkcigpOworCQl9CisJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGEgcG9ydGxldCIpOworCX0KKworCS8qKgorCSAqIE5vdCBhbGxvd2VkIGluIGEgcG9ydGxldC4KKwkgKiAKKwkgKiBAdGhyb3dzIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbgorCSAqICAgICAgICAgICAgIE5vdCBhbGxvd2VkIGluIGEgcG9ydGxldC4KKwkgKi8KKwlwdWJsaWMgU3RyaW5nIGdldExvY2FsTmFtZSgpIHsKKwkJaWYgKHBvcnRsZXRSZXF1ZXN0IGluc3RhbmNlb2YgSHR0cFNlcnZsZXRSZXF1ZXN0KSB7CisJCQlyZXR1cm4gKChIdHRwU2VydmxldFJlcXVlc3QpIHBvcnRsZXRSZXF1ZXN0KS5nZXRMb2NhbE5hbWUoKTsKKwkJfQorCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwkvKioKKwkgKiBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICogCisJICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24KKwkgKiAgICAgICAgICAgICBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICovCisJcHVibGljIGludCBnZXRMb2NhbFBvcnQoKSB7CisJCWlmIChwb3J0bGV0UmVxdWVzdCBpbnN0YW5jZW9mIEh0dHBTZXJ2bGV0UmVxdWVzdCkgeworCQkJcmV0dXJuICgoSHR0cFNlcnZsZXRSZXF1ZXN0KSBwb3J0bGV0UmVxdWVzdCkuZ2V0TG9jYWxQb3J0KCk7CisJCX0KKwkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0Iik7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0I2dldExvY2FsZSgpCisJICovCisJcHVibGljIExvY2FsZSBnZXRMb2NhbGUoKSB7CisJCXJldHVybiBwb3J0bGV0UmVxdWVzdC5nZXRMb2NhbGUoKTsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QjZ2V0TG9jYWxlcygpCisJICovCisJcHVibGljIEVudW1lcmF0aW9uIGdldExvY2FsZXMoKSB7CisJCXJldHVybiBwb3J0bGV0UmVxdWVzdC5nZXRMb2NhbGVzKCk7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0I2dldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKQorCSAqLworCXB1YmxpYyBTdHJpbmcgZ2V0UGFyYW1ldGVyKFN0cmluZyBuYW1lKSB7CisJCXJldHVybiBwb3J0bGV0UmVxdWVzdC5nZXRQYXJhbWV0ZXIobmFtZSk7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0I2dldFBhcmFtZXRlck1hcCgpCisJICovCisJcHVibGljIE1hcCBnZXRQYXJhbWV0ZXJNYXAoKSB7CisJCXJldHVybiBwb3J0bGV0UmVxdWVzdC5nZXRQYXJhbWV0ZXJNYXAoKTsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QjZ2V0UGFyYW1ldGVyTmFtZXMoKQorCSAqLworCXB1YmxpYyBFbnVtZXJhdGlvbiBnZXRQYXJhbWV0ZXJOYW1lcygpIHsKKwkJcmV0dXJuIHBvcnRsZXRSZXF1ZXN0LmdldFBhcmFtZXRlck5hbWVzKCk7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0I2dldFBhcmFtZXRlclZhbHVlcyhqYXZhLmxhbmcuU3RyaW5nKQorCSAqLworCXB1YmxpYyBTdHJpbmdbXSBnZXRQYXJhbWV0ZXJWYWx1ZXMoU3RyaW5nIG5hbWUpIHsKKwkJcmV0dXJuIHBvcnRsZXRSZXF1ZXN0LmdldFBhcmFtZXRlclZhbHVlcyhuYW1lKTsKKwl9CisKKwkvKioKKwkgKiBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICogCisJICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24KKwkgKiAgICAgICAgICAgICBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICovCisJcHVibGljIFN0cmluZyBnZXRQcm90b2NvbCgpIHsKKwkJaWYgKHBvcnRsZXRSZXF1ZXN0IGluc3RhbmNlb2YgSHR0cFNlcnZsZXRSZXF1ZXN0KSB7CisJCQlyZXR1cm4gKChIdHRwU2VydmxldFJlcXVlc3QpIHBvcnRsZXRSZXF1ZXN0KS5nZXRQcm90b2NvbCgpOworCQl9CisJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGEgcG9ydGxldCIpOworCX0KKworCS8qKgorCSAqIENhbiBvbmx5IGJlIGludm9rZWQgaW4gdGhlIGV2ZW50IHBoYXNlLgorCSAqIAorCSAqIEBzZWUgU2VydmxldFJlcXVlc3QjZ2V0UmVhZGVyKCkKKwkgKiBAdGhyb3dzIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbgorCSAqICAgICAgICAgICAgIElmIHRoZSBwb3J0bGV0IGlzIG5vdCBpbiB0aGUgZXZlbnQgcGhhc2UuCisJICovCisJcHVibGljIEJ1ZmZlcmVkUmVhZGVyIGdldFJlYWRlcigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisJCWlmIChwb3J0bGV0UmVxdWVzdCBpbnN0YW5jZW9mIEFjdGlvblJlcXVlc3QpIHsKKwkJCXJldHVybiAoKEFjdGlvblJlcXVlc3QpIHBvcnRsZXRSZXF1ZXN0KS5nZXRSZWFkZXIoKTsKKwkJfSBlbHNlIHsKKwkJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIHJlbmRlciBwaGFzZSIpOworCQl9CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0I2dldFJlYWxQYXRoKGphdmEubGFuZy5TdHJpbmcpCisJICovCisJcHVibGljIFN0cmluZyBnZXRSZWFsUGF0aChTdHJpbmcgcGF0aCkgeworCQlyZXR1cm4gcG9ydGxldENvbnRleHQuZ2V0UmVhbFBhdGgocGF0aCk7CisJfQorCisJLyoqCisJICogTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0LgorCSAqIAorCSAqIEB0aHJvd3MgSWxsZWdhbFN0YXRlRXhjZXB0aW9uCisJICogICAgICAgICAgICAgTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0LgorCSAqLworCXB1YmxpYyBTdHJpbmcgZ2V0UmVtb3RlQWRkcigpIHsKKwkJaWYgKHBvcnRsZXRSZXF1ZXN0IGluc3RhbmNlb2YgSHR0cFNlcnZsZXRSZXF1ZXN0KSB7CisJCQlyZXR1cm4gKChIdHRwU2VydmxldFJlcXVlc3QpIHBvcnRsZXRSZXF1ZXN0KS5nZXRSZW1vdGVBZGRyKCk7CisJCX0KKwkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0Iik7CisJfQorCisJLyoqCisJICogTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0LgorCSAqIAorCSAqIEB0aHJvd3MgSWxsZWdhbFN0YXRlRXhjZXB0aW9uCisJICogICAgICAgICAgICAgTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0LgorCSAqLworCXB1YmxpYyBTdHJpbmcgZ2V0UmVtb3RlSG9zdCgpIHsKKwkJaWYgKHBvcnRsZXRSZXF1ZXN0IGluc3RhbmNlb2YgSHR0cFNlcnZsZXRSZXF1ZXN0KSB7CisJCQlyZXR1cm4gKChIdHRwU2VydmxldFJlcXVlc3QpIHBvcnRsZXRSZXF1ZXN0KS5nZXRSZW1vdGVIb3N0KCk7CisJCX0KKwkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0Iik7CisJfQorCisJLyoqCisJICogTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0LgorCSAqIAorCSAqIEB0aHJvd3MgSWxsZWdhbFN0YXRlRXhjZXB0aW9uCisJICogICAgICAgICAgICAgTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0LgorCSAqLworCXB1YmxpYyBpbnQgZ2V0UmVtb3RlUG9ydCgpIHsKKwkJaWYgKHBvcnRsZXRSZXF1ZXN0IGluc3RhbmNlb2YgSHR0cFNlcnZsZXRSZXF1ZXN0KSB7CisJCQlyZXR1cm4gKChIdHRwU2VydmxldFJlcXVlc3QpIHBvcnRsZXRSZXF1ZXN0KS5nZXRSZW1vdGVQb3J0KCk7CisJCX0KKwkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0Iik7CisJfQorCisJLyoqCisJICogR2V0IHRoZSB7QGxpbmsgUG9ydGxldFJlcXVlc3REaXNwYXRjaGVyfSBhcyBhCisJICoge0BsaW5rIFBvcnRsZXRTZXJ2bGV0UmVxdWVzdERpc3BhdGNoZXJ9IGluc3RhbmNlLgorCSAqIAorCSAqIEBzZWUgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCNnZXRSZXF1ZXN0RGlzcGF0Y2hlcihqYXZhLmxhbmcuU3RyaW5nKQorCSAqLworCXB1YmxpYyBSZXF1ZXN0RGlzcGF0Y2hlciBnZXRSZXF1ZXN0RGlzcGF0Y2hlcihTdHJpbmcgcGF0aCkgeworCQlyZXR1cm4gbmV3IFBvcnRsZXRTZXJ2bGV0UmVxdWVzdERpc3BhdGNoZXIocG9ydGxldENvbnRleHQuZ2V0UmVxdWVzdERpc3BhdGNoZXIocGF0aCkpOworCX0KKworCS8qCisJICogKG5vbi1KYXZhZG9jKQorCSAqIAorCSAqIEBzZWUgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCNnZXRTY2hlbWUoKQorCSAqLworCXB1YmxpYyBTdHJpbmcgZ2V0U2NoZW1lKCkgeworCQlyZXR1cm4gcG9ydGxldFJlcXVlc3QuZ2V0U2NoZW1lKCk7CisJfQorCisJLyoKKwkgKiAobm9uLUphdmFkb2MpCisJICogCisJICogQHNlZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0I2dldFNlcnZlck5hbWUoKQorCSAqLworCXB1YmxpYyBTdHJpbmcgZ2V0U2VydmVyTmFtZSgpIHsKKwkJcmV0dXJuIHBvcnRsZXRSZXF1ZXN0LmdldFNlcnZlck5hbWUoKTsKKwl9CisKKwkvKioKKwkgKiBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICogCisJICogQHRocm93cyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24KKwkgKiAgICAgICAgICAgICBOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQuCisJICovCisJcHVibGljIGludCBnZXRTZXJ2ZXJQb3J0KCkgeworCQlpZiAocG9ydGxldFJlcXVlc3QgaW5zdGFuY2VvZiBIdHRwU2VydmxldFJlcXVlc3QpIHsKKwkJCXJldHVybiAoKEh0dHBTZXJ2bGV0UmVxdWVzdCkgcG9ydGxldFJlcXVlc3QpLmdldFNlcnZlclBvcnQoKTsKKwkJfQorCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QjaXNTZWN1cmUoKQorCSAqLworCXB1YmxpYyBib29sZWFuIGlzU2VjdXJlKCkgeworCQlyZXR1cm4gcG9ydGxldFJlcXVlc3QuaXNTZWN1cmUoKTsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QjcmVtb3ZlQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpCisJICovCisJcHVibGljIHZvaWQgcmVtb3ZlQXR0cmlidXRlKFN0cmluZyBuYW1lKSB7CisJCXBvcnRsZXRSZXF1ZXN0LnJlbW92ZUF0dHJpYnV0ZShuYW1lKTsKKwl9CisKKwkvKgorCSAqIChub24tSmF2YWRvYykKKwkgKiAKKwkgKiBAc2VlIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Qjc2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsCisJICogICAgICBqYXZhLmxhbmcuT2JqZWN0KQorCSAqLworCXB1YmxpYyB2b2lkIHNldEF0dHJpYnV0ZShTdHJpbmcgbmFtZSwgT2JqZWN0IG8pIHsKKwkJcG9ydGxldFJlcXVlc3Quc2V0QXR0cmlidXRlKG5hbWUsIG8pOworCX0KKworCS8qKgorCSAqIENhbiBvbmx5IGJlIGludm9rZWQgaW4gdGhlIGV2ZW50IHBoYXNlLgorCSAqIAorCSAqIEBzZWUgU2VydmxldFJlcXVlc3Qjc2V0Q2hhcmFjdGVyRW5jb2RpbmcoU3RyaW5nKQorCSAqIEB0aHJvd3MgSWxsZWdhbFN0YXRlRXhjZXB0aW9uCisJICogICAgICAgICAgICAgSWYgdGhlIHBvcnRsZXQgaXMgbm90IGluIHRoZSBldmVudCBwaGFzZS4KKwkgKi8KKwlwdWJsaWMgdm9pZCBzZXRDaGFyYWN0ZXJFbmNvZGluZyhTdHJpbmcgZW52KSB0aHJvd3MgVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbiB7CisJCWlmIChwb3J0bGV0UmVxdWVzdCBpbnN0YW5jZW9mIEFjdGlvblJlcXVlc3QpIHsKKwkJCSgoQWN0aW9uUmVxdWVzdCkgcG9ydGxldFJlcXVlc3QpLnNldENoYXJhY3RlckVuY29kaW5nKGVudik7CisJCX0gZWxzZSB7CisJCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiByZW5kZXIgcGhhc2UiKTsKKwkJfQorCX0KKworCS8qKgorCSAqIEdldCB0aGUgd3JhcHBlZCB7QGxpbmsgUG9ydGxldFJlcXVlc3R9IGluc3RhbmNlLgorCSAqIAorCSAqIEByZXR1cm4gVGhlIHdyYXBwZWQge0BsaW5rIFBvcnRsZXRSZXF1ZXN0fSBpbnN0YW5jZS4KKwkgKi8KKwlwdWJsaWMgUG9ydGxldFJlcXVlc3QgZ2V0UG9ydGxldFJlcXVlc3QoKSB7CisJCXJldHVybiBwb3J0bGV0UmVxdWVzdDsKKwl9CisKKwlASW5qZWN0KFN0cnV0c0NvbnN0YW50cy5TVFJVVFNfQUNUSU9OX0VYVEVOU0lPTikKKwlwdWJsaWMgdm9pZCBzZXRFeHRlbnNpb24oU3RyaW5nIGV4dGVuc2lvbikgeworCQlpZiAoZXh0ZW5zaW9uICE9IG51bGwpIHsKKwkJCXRoaXMuZXh0ZW5zaW9uID0gZXh0ZW5zaW9uLnNwbGl0KCIsIilbMF07CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9zZXJ2bGV0L1BvcnRsZXRTZXJ2bGV0UmVxdWVzdERpc3BhdGNoZXIuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3NlcnZsZXQvUG9ydGxldFNlcnZsZXRSZXF1ZXN0RGlzcGF0Y2hlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0MjM4ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9zZXJ2bGV0L1BvcnRsZXRTZXJ2bGV0UmVxdWVzdERpc3BhdGNoZXIuamF2YQpAQCAtMCwwICsxLDcxIEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LnNlcnZsZXQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0RXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0UmVxdWVzdERpc3BhdGNoZXI7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0UmVzcG9uc2U7CitpbXBvcnQgamF2YXgucG9ydGxldC5SZW5kZXJSZXF1ZXN0OworaW1wb3J0IGphdmF4LnBvcnRsZXQuUmVuZGVyUmVzcG9uc2U7CitpbXBvcnQgamF2YXguc2VydmxldC5SZXF1ZXN0RGlzcGF0Y2hlcjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb247CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZTsKKworcHVibGljIGNsYXNzIFBvcnRsZXRTZXJ2bGV0UmVxdWVzdERpc3BhdGNoZXIgaW1wbGVtZW50cyBSZXF1ZXN0RGlzcGF0Y2hlciB7CisKKwlwcml2YXRlIFBvcnRsZXRSZXF1ZXN0RGlzcGF0Y2hlciBwb3J0bGV0UmVxdWVzdERpc3BhdGNoZXI7CisJCisJcHVibGljIFBvcnRsZXRTZXJ2bGV0UmVxdWVzdERpc3BhdGNoZXIoUG9ydGxldFJlcXVlc3REaXNwYXRjaGVyIHBvcnRsZXRSZXF1ZXN0RGlzcGF0Y2hlcikgeworCQl0aGlzLnBvcnRsZXRSZXF1ZXN0RGlzcGF0Y2hlciA9IHBvcnRsZXRSZXF1ZXN0RGlzcGF0Y2hlcjsKKwl9CisKKwlwdWJsaWMgdm9pZCBmb3J3YXJkKFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsIFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkgdGhyb3dzIFNlcnZsZXRFeGNlcHRpb24sIElPRXhjZXB0aW9uIHsKKwkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0Iik7CisJCQorCX0KKworCXB1YmxpYyB2b2lkIGluY2x1ZGUoU2VydmxldFJlcXVlc3QgcmVxdWVzdCwgU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKSB0aHJvd3MgU2VydmxldEV4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworCQlpZihyZXF1ZXN0IGluc3RhbmNlb2YgUG9ydGxldFNlcnZsZXRSZXF1ZXN0ICYmIHJlc3BvbnNlIGluc3RhbmNlb2YgUG9ydGxldFNlcnZsZXRSZXNwb25zZSkgeworCQkJUG9ydGxldFJlcXVlc3QgcmVxID0gKChQb3J0bGV0U2VydmxldFJlcXVlc3QpcmVxdWVzdCkuZ2V0UG9ydGxldFJlcXVlc3QoKTsKKwkJCVBvcnRsZXRSZXNwb25zZSByZXNwID0gKChQb3J0bGV0U2VydmxldFJlc3BvbnNlKXJlc3BvbnNlKS5nZXRQb3J0bGV0UmVzcG9uc2UoKTsKKwkJCWlmKHJlcSBpbnN0YW5jZW9mIFJlbmRlclJlcXVlc3QgJiYgcmVzcCBpbnN0YW5jZW9mIFJlbmRlclJlc3BvbnNlKSB7CisJCQkJdHJ5IHsKKwkJCQkJcG9ydGxldFJlcXVlc3REaXNwYXRjaGVyLmluY2x1ZGUoKFJlbmRlclJlcXVlc3QpcmVxLCAoUmVuZGVyUmVzcG9uc2UpcmVzcCk7CisJCQkJfQorCQkJCWNhdGNoKFBvcnRsZXRFeGNlcHRpb24gZSkgeworCQkJCQl0aHJvdyBuZXcgU2VydmxldEV4Y2VwdGlvbihlKTsKKwkJCQl9CisJCQl9CisJCQllbHNlIHsKKwkJCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJDYW4gb25seSBiZSBpbnZva2VkIGluIHRoZSByZW5kZXIgcGhhc2UiKTsKKwkJCX0KKwkJfQorCQllbHNlIHsKKwkJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkNhbiBvbmx5IGJlIGludm9rZWQgaW4gYSBwb3J0bGV0Iik7CisJCX0KKwl9CisKK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3NlcnZsZXQvUG9ydGxldFNlcnZsZXRSZXNwb25zZS5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvc2VydmxldC9Qb3J0bGV0U2VydmxldFJlc3BvbnNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U0YzEyYgotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3NlcnZsZXQvUG9ydGxldFNlcnZsZXRSZXNwb25zZS5qYXZhCkBAIC0wLDAgKzEsMjM0IEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LnNlcnZsZXQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldFJlc3BvbnNlOworaW1wb3J0IGphdmF4LnBvcnRsZXQuUmVuZGVyUmVzcG9uc2U7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0T3V0cHV0U3RyZWFtOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5Db29raWU7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CisKK3B1YmxpYyBjbGFzcyBQb3J0bGV0U2VydmxldFJlc3BvbnNlIGltcGxlbWVudHMgSHR0cFNlcnZsZXRSZXNwb25zZSB7CisKKwlwcml2YXRlIFBvcnRsZXRSZXNwb25zZSBwb3J0bGV0UmVzcG9uc2U7CisJCisJcHVibGljIFBvcnRsZXRTZXJ2bGV0UmVzcG9uc2UoUG9ydGxldFJlc3BvbnNlIHBvcnRsZXRSZXNwb25zZSkgeworCQl0aGlzLnBvcnRsZXRSZXNwb25zZSA9IHBvcnRsZXRSZXNwb25zZTsKKwl9CisJCisJcHVibGljIHZvaWQgYWRkQ29va2llKENvb2tpZSBjb29raWUpIHsKKwkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0Iik7CisJfQorCisJcHVibGljIHZvaWQgYWRkRGF0ZUhlYWRlcihTdHJpbmcgbmFtZSwgbG9uZyBkYXRlKSB7CisJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGEgcG9ydGxldCIpOworCX0KKworCXB1YmxpYyB2b2lkIGFkZEhlYWRlcihTdHJpbmcgbmFtZSwgU3RyaW5nIHZhbHVlKSB7CisJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGEgcG9ydGxldCIpOworCX0KKworCXB1YmxpYyB2b2lkIGFkZEludEhlYWRlcihTdHJpbmcgbmFtZSwgaW50IHZhbHVlKSB7CisJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGEgcG9ydGxldCIpOworCX0KKworCXB1YmxpYyBib29sZWFuIGNvbnRhaW5zSGVhZGVyKFN0cmluZyBuYW1lKSB7CisJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGEgcG9ydGxldCIpOworCX0KKworCXB1YmxpYyBTdHJpbmcgZW5jb2RlUmVkaXJlY3RVUkwoU3RyaW5nIHVybCkgeworCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwlwdWJsaWMgU3RyaW5nIGVuY29kZVJlZGlyZWN0VXJsKFN0cmluZyB1cmwpIHsKKwkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0Iik7CisJfQorCisJcHVibGljIFN0cmluZyBlbmNvZGVVUkwoU3RyaW5nIHVybCkgeworCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwlwdWJsaWMgU3RyaW5nIGVuY29kZVVybChTdHJpbmcgdXJsKSB7CisJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGEgcG9ydGxldCIpOworCX0KKworCXB1YmxpYyB2b2lkIHNlbmRFcnJvcihpbnQgc2MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGEgcG9ydGxldCIpOworCX0KKworCXB1YmxpYyB2b2lkIHNlbmRFcnJvcihpbnQgc2MsIFN0cmluZyBtc2cpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGEgcG9ydGxldCIpOworCX0KKworCXB1YmxpYyB2b2lkIHNlbmRSZWRpcmVjdChTdHJpbmcgbG9jYXRpb24pIHRocm93cyBJT0V4Y2VwdGlvbiB7CisJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGEgcG9ydGxldCIpOworCX0KKworCXB1YmxpYyB2b2lkIHNldERhdGVIZWFkZXIoU3RyaW5nIG5hbWUsIGxvbmcgZGF0ZSkgeworCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwlwdWJsaWMgdm9pZCBzZXRIZWFkZXIoU3RyaW5nIG5hbWUsIFN0cmluZyB2YWx1ZSkgeworCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwlwdWJsaWMgdm9pZCBzZXRJbnRIZWFkZXIoU3RyaW5nIG5hbWUsIGludCB2YWx1ZSkgeworCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwlwdWJsaWMgdm9pZCBzZXRTdGF0dXMoaW50IHNjKSB7CisJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGEgcG9ydGxldCIpOworCX0KKworCXB1YmxpYyB2b2lkIHNldFN0YXR1cyhpbnQgc2MsIFN0cmluZyBzbSkgeworCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBhIHBvcnRsZXQiKTsKKwl9CisKKwlwdWJsaWMgdm9pZCBmbHVzaEJ1ZmZlcigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisJCWlmKHBvcnRsZXRSZXNwb25zZSBpbnN0YW5jZW9mIFJlbmRlclJlc3BvbnNlKSB7CisJCQkoKFJlbmRlclJlc3BvbnNlKXBvcnRsZXRSZXNwb25zZSkuZmx1c2hCdWZmZXIoKTsKKwkJfQorCQllbHNlIHsKKwkJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGV2ZW50IHBoYXNlIik7CisJCX0KKwl9CisKKwlwdWJsaWMgaW50IGdldEJ1ZmZlclNpemUoKSB7CisJCWlmKHBvcnRsZXRSZXNwb25zZSBpbnN0YW5jZW9mIFJlbmRlclJlc3BvbnNlKSB7CisJCQlyZXR1cm4gKChSZW5kZXJSZXNwb25zZSlwb3J0bGV0UmVzcG9uc2UpLmdldEJ1ZmZlclNpemUoKTsKKwkJfQorCQllbHNlIHsKKwkJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGV2ZW50IHBoYXNlIik7CisJCX0KKwl9CisKKwlwdWJsaWMgU3RyaW5nIGdldENoYXJhY3RlckVuY29kaW5nKCkgeworCQlpZihwb3J0bGV0UmVzcG9uc2UgaW5zdGFuY2VvZiBSZW5kZXJSZXNwb25zZSkgeworCQkJcmV0dXJuICgoUmVuZGVyUmVzcG9uc2UpcG9ydGxldFJlc3BvbnNlKS5nZXRDaGFyYWN0ZXJFbmNvZGluZygpOworCQl9CisJCWVsc2UgeworCQkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gZXZlbnQgcGhhc2UiKTsKKwkJfQorCX0KKworCXB1YmxpYyBTdHJpbmcgZ2V0Q29udGVudFR5cGUoKSB7CisJCWlmKHBvcnRsZXRSZXNwb25zZSBpbnN0YW5jZW9mIFJlbmRlclJlc3BvbnNlKSB7CisJCQlyZXR1cm4gKChSZW5kZXJSZXNwb25zZSlwb3J0bGV0UmVzcG9uc2UpLmdldENvbnRlbnRUeXBlKCk7CisJCX0KKwkJZWxzZSB7CisJCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBldmVudCBwaGFzZSIpOworCQl9CisJfQorCisJcHVibGljIExvY2FsZSBnZXRMb2NhbGUoKSB7CisJCWlmKHBvcnRsZXRSZXNwb25zZSBpbnN0YW5jZW9mIFJlbmRlclJlc3BvbnNlKSB7CisJCQlyZXR1cm4gKChSZW5kZXJSZXNwb25zZSlwb3J0bGV0UmVzcG9uc2UpLmdldExvY2FsZSgpOworCQl9CisJCWVsc2UgeworCQkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gZXZlbnQgcGhhc2UiKTsKKwkJfQorCX0KKworCXB1YmxpYyBTZXJ2bGV0T3V0cHV0U3RyZWFtIGdldE91dHB1dFN0cmVhbSgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisJCWlmKHBvcnRsZXRSZXNwb25zZSBpbnN0YW5jZW9mIFJlbmRlclJlc3BvbnNlKSB7CisJCQlyZXR1cm4gbmV3IFBvcnRsZXRTZXJ2bGV0T3V0cHV0U3RyZWFtKCgoUmVuZGVyUmVzcG9uc2UpcG9ydGxldFJlc3BvbnNlKS5nZXRQb3J0bGV0T3V0cHV0U3RyZWFtKCkpOworCQl9CisJCWVsc2UgeworCQkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gZXZlbnQgcGhhc2UiKTsKKwkJfQorCX0KKworCXB1YmxpYyBQcmludFdyaXRlciBnZXRXcml0ZXIoKSB0aHJvd3MgSU9FeGNlcHRpb24geworCQlpZihwb3J0bGV0UmVzcG9uc2UgaW5zdGFuY2VvZiBSZW5kZXJSZXNwb25zZSkgeworCQkJcmV0dXJuICgoUmVuZGVyUmVzcG9uc2UpcG9ydGxldFJlc3BvbnNlKS5nZXRXcml0ZXIoKTsKKwkJfQorCQllbHNlIHsKKwkJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGV2ZW50IHBoYXNlIik7CisJCX0KKwl9CisKKwlwdWJsaWMgYm9vbGVhbiBpc0NvbW1pdHRlZCgpIHsKKwkJaWYocG9ydGxldFJlc3BvbnNlIGluc3RhbmNlb2YgUmVuZGVyUmVzcG9uc2UpIHsKKwkJCXJldHVybiAoKFJlbmRlclJlc3BvbnNlKXBvcnRsZXRSZXNwb25zZSkuaXNDb21taXR0ZWQoKTsKKwkJfQorCQllbHNlIHsKKwkJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGV2ZW50IHBoYXNlIik7CisJCX0KKwl9CisKKwlwdWJsaWMgdm9pZCByZXNldCgpIHsKKwkJaWYocG9ydGxldFJlc3BvbnNlIGluc3RhbmNlb2YgUmVuZGVyUmVzcG9uc2UpIHsKKwkJCSgoUmVuZGVyUmVzcG9uc2UpcG9ydGxldFJlc3BvbnNlKS5yZXNldCgpOworCQl9CisJCWVsc2UgeworCQkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gZXZlbnQgcGhhc2UiKTsKKwkJfQorCX0KKworCXB1YmxpYyB2b2lkIHJlc2V0QnVmZmVyKCkgeworCQlpZihwb3J0bGV0UmVzcG9uc2UgaW5zdGFuY2VvZiBSZW5kZXJSZXNwb25zZSkgeworCQkJKChSZW5kZXJSZXNwb25zZSlwb3J0bGV0UmVzcG9uc2UpLnJlc2V0QnVmZmVyKCk7CisJCX0KKwkJZWxzZSB7CisJCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBldmVudCBwaGFzZSIpOworCQl9CisJfQorCisJcHVibGljIHZvaWQgc2V0QnVmZmVyU2l6ZShpbnQgc2l6ZSkgeworCQlpZihwb3J0bGV0UmVzcG9uc2UgaW5zdGFuY2VvZiBSZW5kZXJSZXNwb25zZSkgeworCQkJKChSZW5kZXJSZXNwb25zZSlwb3J0bGV0UmVzcG9uc2UpLnNldEJ1ZmZlclNpemUoc2l6ZSk7CisJCX0KKwkJZWxzZSB7CisJCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBldmVudCBwaGFzZSIpOworCQl9CisJfQorCisJcHVibGljIHZvaWQgc2V0Q2hhcmFjdGVyRW5jb2RpbmcoU3RyaW5nIGNoYXJzZXQpIHsKKwkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0Iik7CisJfQorCisJcHVibGljIHZvaWQgc2V0Q29udGVudExlbmd0aChpbnQgbGVuKSB7CisJCXRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIk5vdCBhbGxvd2VkIGluIGEgcG9ydGxldCIpOworCX0KKworCXB1YmxpYyB2b2lkIHNldENvbnRlbnRUeXBlKFN0cmluZyB0eXBlKSB7CisJCWlmKHBvcnRsZXRSZXNwb25zZSBpbnN0YW5jZW9mIFJlbmRlclJlc3BvbnNlKSB7CisJCQkoKFJlbmRlclJlc3BvbnNlKXBvcnRsZXRSZXNwb25zZSkuc2V0Q29udGVudFR5cGUodHlwZSk7CisJCX0KKwkJZWxzZSB7CisJCQl0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJOb3QgYWxsb3dlZCBpbiBldmVudCBwaGFzZSIpOworCQl9CisJfQorCisJcHVibGljIHZvaWQgc2V0TG9jYWxlKExvY2FsZSBsb2MpIHsKKwkJdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiTm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0Iik7CisJfQorCisJcHVibGljIFBvcnRsZXRSZXNwb25zZSBnZXRQb3J0bGV0UmVzcG9uc2UoKSB7CisJCXJldHVybiBwb3J0bGV0UmVzcG9uc2U7CisJfQorCit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9zZXJ2bGV0L3BhY2thZ2UuaHRtbCBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3NlcnZsZXQvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxOTgxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9zZXJ2bGV0L3BhY2thZ2UuaHRtbApAQCAtMCwwICsxLDI3IEBACis8IS0tCisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworLS0+Cis8Ym9keT4KKwlQb3J0bGV0IHdyYXBwZXIgb2JqZWN0cyBmb3Igc29tZSBvZiB0aGUgc2VydmxldCBhcGkgb2JqZWN0cy4gVGhlIHdyYXBwZXJzIHNpbXBseSBkZWxlZ2F0ZSB0byB0aGUgCisJdW5kZXJseWluZywgY29ycmVzcG9uZGluZyBwb3J0bGV0IG9iamVjdHMuIFRoZSBwb3J0bGV0IHdyYXBwZXIgb2JqZWN0cyBtYWtlcyBpdCBlYXNpZXIgdG8gcmV1c2UgCisJaW50ZXJjZXB0b3JzIGFuZCBjb21wb25lbnRzIGZyb20gc3RydXRzMiBjb3JlLgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3V0aWwvUG9ydGxldFVybEhlbHBlci5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvdXRpbC9Qb3J0bGV0VXJsSGVscGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM4MDc3OAotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3V0aWwvUG9ydGxldFVybEhlbHBlci5qYXZhCkBAIC0wLDAgKzEsMzAwIEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LnV0aWw7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi51dGlsLmxvZ2dpbmcuTG9nZ2VyOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnV0aWwubG9nZ2luZy5Mb2dnZXJGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sYW5nLlN0cmluZ1V0aWxzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5TdHJ1dHNFeGNlcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuUG9ydGxldEFjdGlvbkNvbnN0YW50czsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5jb250ZXh0LlBvcnRsZXRBY3Rpb25Db250ZXh0OworCitpbXBvcnQgamF2YXgucG9ydGxldC4qOworaW1wb3J0IGphdmEuaW8uVW5zdXBwb3J0ZWRFbmNvZGluZ0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLm5ldC5VUkxFbmNvZGVyOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TdHJpbmdUb2tlbml6ZXI7CisKKy8qKgorICogSGVscGVyIGNsYXNzIGZvciBjcmVhdGluZyBQb3J0bGV0IFVSTHMuIFBvcnRsZXQgVVJMcyBhcmUgZnVuZGFtZW50YWxseSBkaWZmZXJlbnQgZnJvbSByZWd1bGFyCisgKiBzZXJ2bGV0IFVSTHMgc2luY2UgdGhleSBuZXZlciB0YXJnZXQgdGhlIGFwcGxpY2F0aW9uIGl0c2VsZjsgYWxsIHJlcXVlc3RzIGdvIHRocm91Z2ggdGhlIHBvcnRsZXQKKyAqIGNvbnRhaW5lciBhbmQgbXVzdCB0aGVyZWZvcmUgYmUgcHJvZ3JhbWF0aWNhbGx5IGNvbnN0cnVjdGVkIHVzaW5nIHRoZQorICoge0BsaW5rIGphdmF4LnBvcnRsZXQuUmVuZGVyUmVzcG9uc2UjY3JlYXRlQWN0aW9uVVJMKCl9IGFuZAorICoge0BsaW5rIGphdmF4LnBvcnRsZXQuUmVuZGVyUmVzcG9uc2UjY3JlYXRlUmVuZGVyVVJMKCl9IEFQSXMuCisgKgorICovCitwdWJsaWMgY2xhc3MgUG9ydGxldFVybEhlbHBlciB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRU5DT0RJTkcgPSAiVVRGLTgiOworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9nZ2VyIExPRyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKFBvcnRsZXRVcmxIZWxwZXIuY2xhc3MpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgcG9ydGxldCBVUkwgd2l0aCBmb3IgdGhlIHNwZWNpZmllZCBhY3Rpb24gYW5kIG5hbWVzcGFjZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhY3Rpb24gVGhlIGFjdGlvbiB0aGUgVVJMIHNob3VsZCBpbnZva2UuCisgICAgICogQHBhcmFtIG5hbWVzcGFjZSBUaGUgbmFtZXNwYWNlIG9mIHRoZSBhY3Rpb24gdG8gaW52b2tlLgorICAgICAqIEBwYXJhbSBtZXRob2QgVGhlIG1ldGhvZCBvZiB0aGUgYWN0aW9uIHRvIGludm9rZS4KKyAgICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSBVUkwuCisgICAgICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgdGhlIHVybCwgZWl0aGVyIDx0dD5hY3Rpb248L3R0PiBvciA8dHQ+cmVuZGVyPC90dD4KKyAgICAgKiBAcGFyYW0gbW9kZSBUaGUgUG9ydGxldE1vZGUgb2YgdGhlIFVSTC4KKyAgICAgKiBAcGFyYW0gc3RhdGUgVGhlIFdpbmRvd1N0YXRlIG9mIHRoZSBVUkwuCisgICAgICogQHJldHVybiBUaGUgVVJMIFN0cmluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBidWlsZFVybChTdHJpbmcgYWN0aW9uLCBTdHJpbmcgbmFtZXNwYWNlLCBTdHJpbmcgbWV0aG9kLCBNYXAgcGFyYW1zLAorICAgICAgICAgICAgU3RyaW5nIHR5cGUsIFN0cmluZyBtb2RlLCBTdHJpbmcgc3RhdGUpIHsKKyAgICAgICAgcmV0dXJuIGJ1aWxkVXJsKGFjdGlvbiwgbmFtZXNwYWNlLCBtZXRob2QsIHBhcmFtcywgbnVsbCwgdHlwZSwgbW9kZSwgc3RhdGUsCisgICAgICAgICAgICAgICAgdHJ1ZSwgdHJ1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgcG9ydGxldCBVUkwgd2l0aCBmb3IgdGhlIHNwZWNpZmllZCBhY3Rpb24gYW5kIG5hbWVzcGFjZS4KKyAgICAgKgorICAgICAqIEBzZWUgI2J1aWxkVXJsKFN0cmluZywgU3RyaW5nLCBNYXAsIFN0cmluZywgU3RyaW5nLCBTdHJpbmcpCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgYnVpbGRVcmwoU3RyaW5nIGFjdGlvbiwgU3RyaW5nIG5hbWVzcGFjZSwgU3RyaW5nIG1ldGhvZCwgTWFwIHBhcmFtcywKKyAgICAgICAgICAgIFN0cmluZyBzY2hlbWUsIFN0cmluZyB0eXBlLCBTdHJpbmcgcG9ydGxldE1vZGUsIFN0cmluZyB3aW5kb3dTdGF0ZSwKKyAgICAgICAgICAgIGJvb2xlYW4gaW5jbHVkZUNvbnRleHQsIGJvb2xlYW4gZW5jb2RlUmVzdWx0KSB7CisgICAgCVN0cmluZ0J1ZmZlciByZXN1bHRpbmdBY3Rpb24gPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisgICAgICAgIFJlbmRlclJlcXVlc3QgcmVxdWVzdCA9IFBvcnRsZXRBY3Rpb25Db250ZXh0LmdldFJlbmRlclJlcXVlc3QoKTsKKyAgICAgICAgUmVuZGVyUmVzcG9uc2UgcmVzcG9uc2UgPSBQb3J0bGV0QWN0aW9uQ29udGV4dC5nZXRSZW5kZXJSZXNwb25zZSgpOworICAgICAgICBpZiAoTE9HLmlzRGVidWdFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIExPRy5kZWJ1ZygiQ3JlYXRpbmcgdXJsLiBBY3Rpb24gPSAiICsgYWN0aW9uICsgIiwgTmFtZXNwYWNlID0gIgorICAgICAgICAgICAgICAgICsgbmFtZXNwYWNlICsgIiwgVHlwZSA9ICIgKyB0eXBlKTsKKyAgICAgICAgfQorICAgICAgICBuYW1lc3BhY2UgPSBwcmVwZW5kTmFtZXNwYWNlKG5hbWVzcGFjZSwgcG9ydGxldE1vZGUpOworICAgICAgICBpZiAoU3RyaW5nVXRpbHMuaXNFbXB0eShwb3J0bGV0TW9kZSkpIHsKKyAgICAgICAgICAgIHBvcnRsZXRNb2RlID0gUG9ydGxldEFjdGlvbkNvbnRleHQuZ2V0UmVuZGVyUmVxdWVzdCgpLmdldFBvcnRsZXRNb2RlKCkudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcmVzdWx0ID0gbnVsbDsKKyAgICAgICAgaW50IHBhcmFtU3RhcnRJbmRleCA9IGFjdGlvbi5pbmRleE9mKCc/Jyk7CisgICAgICAgIGlmIChwYXJhbVN0YXJ0SW5kZXggPiAwKSB7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBhY3Rpb247CisgICAgICAgICAgICBhY3Rpb24gPSB2YWx1ZS5zdWJzdHJpbmcoMCwgdmFsdWUuaW5kZXhPZignPycpKTsKKyAgICAgICAgICAgIFN0cmluZyBxdWVyeVN0ciA9IHZhbHVlLnN1YnN0cmluZyhwYXJhbVN0YXJ0SW5kZXggKyAxKTsKKyAgICAgICAgICAgIFN0cmluZ1Rva2VuaXplciB0b2sgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHF1ZXJ5U3RyLCAiJiIpOworICAgICAgICAgICAgd2hpbGUgKHRvay5oYXNNb3JlVG9rZW5zKCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgcGFyYW1WYWwgPSB0b2submV4dFRva2VuKCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IHBhcmFtVmFsLnN1YnN0cmluZygwLCBwYXJhbVZhbC5pbmRleE9mKCc9JykpOworICAgICAgICAgICAgICAgIFN0cmluZyB2YWwgPSBwYXJhbVZhbC5zdWJzdHJpbmcocGFyYW1WYWwuaW5kZXhPZignPScpICsgMSk7CisgICAgICAgICAgICAgICAgcGFyYW1zLnB1dChrZXksIG5ldyBTdHJpbmdbXSB7IHZhbCB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoU3RyaW5nVXRpbHMuaXNOb3RFbXB0eShuYW1lc3BhY2UpKSB7CisgICAgICAgICAgICByZXN1bHRpbmdBY3Rpb24uYXBwZW5kKG5hbWVzcGFjZSk7CisgICAgICAgICAgICBpZighYWN0aW9uLnN0YXJ0c1dpdGgoIi8iKSAmJiAhbmFtZXNwYWNlLmVuZHNXaXRoKCIvIikpIHsKKyAgICAgICAgICAgICAgICByZXN1bHRpbmdBY3Rpb24uYXBwZW5kKCIvIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0aW5nQWN0aW9uLmFwcGVuZChhY3Rpb24pOworICAgICAgICBpZihTdHJpbmdVdGlscy5pc05vdEVtcHR5KG1ldGhvZCkpIHsKKyAgICAgICAgCXJlc3VsdGluZ0FjdGlvbi5hcHBlbmQoIiEiKS5hcHBlbmQobWV0aG9kKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoTE9HLmlzRGVidWdFbmFibGVkKCkpIExPRy5kZWJ1ZygiUmVzdWx0aW5nIGFjdGlvblBhdGg6ICIgKyByZXN1bHRpbmdBY3Rpb24pOworICAgICAgICBwYXJhbXMucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuQUNUSU9OX1BBUkFNLCBuZXcgU3RyaW5nW10geyByZXN1bHRpbmdBY3Rpb24udG9TdHJpbmcoKSB9KTsKKworICAgICAgICBQb3J0bGV0VVJMIHVybCA9IG51bGw7CisgICAgICAgIGlmICgiYWN0aW9uIi5lcXVhbHNJZ25vcmVDYXNlKHR5cGUpKSB7CisgICAgICAgICAgICBpZiAoTE9HLmlzRGVidWdFbmFibGVkKCkpIExPRy5kZWJ1ZygiQ3JlYXRpbmcgYWN0aW9uIHVybCIpOworICAgICAgICAgICAgdXJsID0gcmVzcG9uc2UuY3JlYXRlQWN0aW9uVVJMKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoTE9HLmlzRGVidWdFbmFibGVkKCkpIExPRy5kZWJ1ZygiQ3JlYXRpbmcgcmVuZGVyIHVybCIpOworICAgICAgICAgICAgdXJsID0gcmVzcG9uc2UuY3JlYXRlUmVuZGVyVVJMKCk7CisgICAgICAgIH0KKworICAgICAgICBwYXJhbXMucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuTU9ERV9QQVJBTSwgcG9ydGxldE1vZGUpOworICAgICAgICB1cmwuc2V0UGFyYW1ldGVycyhlbnN1cmVQYXJhbXNBcmVTdHJpbmdBcnJheXMocGFyYW1zKSk7CisKKyAgICAgICAgaWYgKCJIVFRQUyIuZXF1YWxzSWdub3JlQ2FzZShzY2hlbWUpKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHVybC5zZXRTZWN1cmUodHJ1ZSk7CisgICAgICAgICAgICB9IGNhdGNoIChQb3J0bGV0U2VjdXJpdHlFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIExPRy5lcnJvcigiQ2Fubm90IHNldCBzY2hlbWUgdG8gaHR0cHMiLCBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgdXJsLnNldFBvcnRsZXRNb2RlKGdldFBvcnRsZXRNb2RlKHJlcXVlc3QsIHBvcnRsZXRNb2RlKSk7CisgICAgICAgICAgICB1cmwuc2V0V2luZG93U3RhdGUoZ2V0V2luZG93U3RhdGUocmVxdWVzdCwgd2luZG93U3RhdGUpKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIExPRy5lcnJvcigiVW5hYmxlIHRvIHNldCBtb2RlIG9yIHN0YXRlOiIgKyBlLmdldE1lc3NhZ2UoKSwgZSk7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gdXJsLnRvU3RyaW5nKCk7CisgICAgICAgIC8vIFRFTVAgQlVHLVdPUktBUk9VTkQgRk9SIERPVUJMRSBFU0NBUElORyBPRiBBTVBFUlNBTkQKKyAgICAgICAgaWYocmVzdWx0LmluZGV4T2YoIiZhbXA7IikgPj0gMCkgeworICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UoIiZhbXA7IiwgIiYiKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworCisgICAgfQorCisgICAgLyoqCisgICAgICoKKyAgICAgKiBQcmVwZW5kIHRoZSBuYW1lc3BhY2UgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBuYW1lc3BhY2UgYW5kIFBvcnRsZXRNb2RlLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWVzcGFjZSBUaGUgYmFzZSBuYW1lc3BhY2UuCisgICAgICogQHBhcmFtIHBvcnRsZXRNb2RlIFRoZSBQb3J0bGV0TW9kZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcHJlcGVuZGVkIG5hbWVzcGFjZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgcHJlcGVuZE5hbWVzcGFjZShTdHJpbmcgbmFtZXNwYWNlLCBTdHJpbmcgcG9ydGxldE1vZGUpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBQb3J0bGV0TW9kZSBtb2RlID0gUG9ydGxldEFjdGlvbkNvbnRleHQuZ2V0UmVuZGVyUmVxdWVzdCgpLmdldFBvcnRsZXRNb2RlKCk7CisgICAgICAgIGlmKFN0cmluZ1V0aWxzLmlzTm90RW1wdHkocG9ydGxldE1vZGUpKSB7CisgICAgICAgICAgICBtb2RlID0gbmV3IFBvcnRsZXRNb2RlKHBvcnRsZXRNb2RlKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgcG9ydGxldE5hbWVzcGFjZSA9IFBvcnRsZXRBY3Rpb25Db250ZXh0LmdldFBvcnRsZXROYW1lc3BhY2UoKTsKKyAgICAgICAgU3RyaW5nIG1vZGVOYW1lc3BhY2UgPSAoU3RyaW5nKVBvcnRsZXRBY3Rpb25Db250ZXh0LmdldE1vZGVOYW1lc3BhY2VNYXAoKS5nZXQobW9kZSk7CisgICAgICAgIGlmIChMT0cuaXNEZWJ1Z0VuYWJsZWQoKSkgTE9HLmRlYnVnKCJQb3J0bGV0TmFtZXNwYWNlOiAiICsgcG9ydGxldE5hbWVzcGFjZSArICIsIG1vZGVOYW1lc3BhY2U6ICIgKyBtb2RlTmFtZXNwYWNlKTsKKyAgICAgICAgaWYoU3RyaW5nVXRpbHMuaXNOb3RFbXB0eShwb3J0bGV0TmFtZXNwYWNlKSkgeworICAgICAgICAgICAgc2IuYXBwZW5kKHBvcnRsZXROYW1lc3BhY2UpOworICAgICAgICB9CisgICAgICAgIGlmKFN0cmluZ1V0aWxzLmlzTm90RW1wdHkobW9kZU5hbWVzcGFjZSkpIHsKKyAgICAgICAgICAgIGlmKCFtb2RlTmFtZXNwYWNlLnN0YXJ0c1dpdGgoIi8iKSkgeworICAgICAgICAgICAgICAgIHNiLmFwcGVuZCgiLyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2IuYXBwZW5kKG1vZGVOYW1lc3BhY2UpOworICAgICAgICB9CisgICAgICAgIGlmKFN0cmluZ1V0aWxzLmlzTm90RW1wdHkobmFtZXNwYWNlKSkgeworICAgICAgICAgICAgaWYoIW5hbWVzcGFjZS5zdGFydHNXaXRoKCIvIikpIHsKKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQoIi8iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNiLmFwcGVuZChuYW1lc3BhY2UpOworICAgICAgICB9CisgICAgICAgIGlmIChMT0cuaXNEZWJ1Z0VuYWJsZWQoKSkgTE9HLmRlYnVnKCJSZXN1bHRpbmcgbmFtZXNwYWNlOiAiICsgc2IpOworICAgICAgICByZXR1cm4gc2IudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbmNvZGUgYW4gdXJsIHRvIGEgbm9uIFN0cnV0cyBhY3Rpb24gcmVzb3VyY2UsIGxpa2Ugc3R5bGVzaGVldCwgaW1hZ2Ugb3IKKyAgICAgKiBzZXJ2bGV0LgorICAgICAqCisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICogQHJldHVybiBlbmNvZGVkIHVybCB0byBub24gU3RydXRzIGFjdGlvbiByZXNvdXJjZXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgYnVpbGRSZXNvdXJjZVVybChTdHJpbmcgdmFsdWUsIE1hcDxTdHJpbmcsIE9iamVjdD4gcGFyYW1zKSB7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKyAgICAgICAgLy8gUmVsYXRpdmUgVVJMcyBhcmUgbm90IGFsbG93ZWQgaW4gYSBwb3J0bGV0CisgICAgICAgIGlmICghdmFsdWUuc3RhcnRzV2l0aCgiLyIpKSB7CisgICAgICAgICAgICBzYi5hcHBlbmQoIi8iKTsKKyAgICAgICAgfQorICAgICAgICBzYi5hcHBlbmQodmFsdWUpOworICAgICAgICBpZihwYXJhbXMgIT0gbnVsbCAmJiBwYXJhbXMuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgc2IuYXBwZW5kKCI/Iik7CisgICAgICAgICAgICBJdGVyYXRvcjxNYXAuRW50cnk8U3RyaW5nLCBPYmplY3Q+PiBpdCA9IHBhcmFtcy5lbnRyeVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgd2hpbGUoaXQuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAJTWFwLkVudHJ5PFN0cmluZywgT2JqZWN0PiBlbnRyeSA9IGl0Lm5leHQoKTsKKworICAgICAgICAgICAgICAgIHNiLmFwcGVuZChVUkxFbmNvZGVyLmVuY29kZShlbnRyeS5nZXRLZXkoKSwgRU5DT0RJTkcpKS5hcHBlbmQoIj0iKTsKKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQoVVJMRW5jb2Rlci5lbmNvZGUoZW50cnkuZ2V0VmFsdWUoKS50b1N0cmluZygpLCBFTkNPRElORykpOworICAgICAgICAgICAgICAgIGlmKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgICAgICBzYi5hcHBlbmQoIiYiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGNhdGNoIChVbnN1cHBvcnRlZEVuY29kaW5nRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU3RydXRzRXhjZXB0aW9uKCJFbmNvZGluZyAiK0VOQ09ESU5HKyIgbm90IGZvdW5kIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgUmVuZGVyUmVzcG9uc2UgcmVzcCA9IFBvcnRsZXRBY3Rpb25Db250ZXh0LmdldFJlbmRlclJlc3BvbnNlKCk7CisgICAgICAgIFJlbmRlclJlcXVlc3QgcmVxID0gUG9ydGxldEFjdGlvbkNvbnRleHQuZ2V0UmVuZGVyUmVxdWVzdCgpOworICAgICAgICByZXR1cm4gcmVzcC5lbmNvZGVVUkwocmVxLmdldENvbnRleHRQYXRoKCkgKyBzYi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBXaWxsIGVuc3VyZSB0aGF0IGFsbCBlbnRyaWVzIGluIDxjb2RlPnBhcmFtczwvY29kZT4gYXJlIFN0cmluZyBhcnJheXMsCisgICAgICogYXMgcmVxdXJpZWQgYnkgdGhlIHNldFBhcmFtZXRlcnMgb24gdGhlIFBvcnRsZXRVUkwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBwYXJhbWV0ZXJzIHRvIHRoZSBVUkwuCisgICAgICogQHJldHVybiBBIE1hcCB3aXRoIGFsbCBwYXJhbWV0ZXJzIGFzIFN0cmluZyBhcnJheXMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBNYXAgZW5zdXJlUGFyYW1zQXJlU3RyaW5nQXJyYXlzKE1hcDxTdHJpbmcsIE9iamVjdD4gcGFyYW1zKSB7CisgICAgICAgIE1hcDxTdHJpbmcsIFN0cmluZ1tdPiByZXN1bHQgPSBudWxsOworICAgICAgICBpZiAocGFyYW1zICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBMaW5rZWRIYXNoTWFwPFN0cmluZywgU3RyaW5nW10+KHBhcmFtcy5zaXplKCkpOworICAgICAgICAgICAgSXRlcmF0b3I8TWFwLkVudHJ5PFN0cmluZywgT2JqZWN0Pj4gaXQgPSBwYXJhbXMuZW50cnlTZXQoKS5pdGVyYXRvcigpOworICAgICAgICAgICAgd2hpbGUgKGl0Lmhhc05leHQoKSkgeworICAgICAgICAgICAgCU1hcC5FbnRyeTxTdHJpbmcsIE9iamVjdD4gZW50cnkgPSBpdC5uZXh0KCk7CisgICAgICAgICAgICAJT2JqZWN0IHZhbCA9IGVudHJ5LmdldFZhbHVlKCk7CisgICAgICAgICAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIFN0cmluZ1tdKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXQoZW50cnkuZ2V0S2V5KCksIChTdHJpbmdbXSl2YWwpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXQoZW50cnkuZ2V0S2V5KCksIG5ldyBTdHJpbmdbXSB7IHZhbC50b1N0cmluZygpIH0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnZlcnQgdGhlIGdpdmVuIFN0cmluZyB0byBhIFdpbmRvd1N0YXRlIG9iamVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwb3J0bGV0UmVxIFRoZSBSZW5kZXJSZXF1ZXN0LgorICAgICAqIEBwYXJhbSB3aW5kb3dTdGF0ZSBUaGUgV2luZG93U3RhdGUgYXMgYSBTdHJpbmcuCisgICAgICogQHJldHVybiBUaGUgV2luZG93U3RhdGUgdGhhdCBtYXRoY2VzIHRoZSA8dHQ+d2luZG93U3RhdGU8L3R0PiBTdHJpbmcsIG9yIGlmCisgICAgICogdGhlIFN0cmluZyBpcyBibGFuaywgdGhlIGN1cnJlbnQgV2luZG93U3RhdGUuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgV2luZG93U3RhdGUgZ2V0V2luZG93U3RhdGUoUmVuZGVyUmVxdWVzdCBwb3J0bGV0UmVxLAorICAgICAgICAgICAgU3RyaW5nIHdpbmRvd1N0YXRlKSB7CisgICAgICAgIFdpbmRvd1N0YXRlIHN0YXRlID0gcG9ydGxldFJlcS5nZXRXaW5kb3dTdGF0ZSgpOworICAgICAgICBpZiAoU3RyaW5nVXRpbHMuaXNOb3RFbXB0eSh3aW5kb3dTdGF0ZSkpIHsKKyAgICAgICAgICAgIGlmICgibWF4aW1pemVkIi5lcXVhbHNJZ25vcmVDYXNlKHdpbmRvd1N0YXRlKSkgeworICAgICAgICAgICAgICAgIHN0YXRlID0gV2luZG93U3RhdGUuTUFYSU1JWkVEOworICAgICAgICAgICAgfSBlbHNlIGlmICgibm9ybWFsIi5lcXVhbHNJZ25vcmVDYXNlKHdpbmRvd1N0YXRlKSkgeworICAgICAgICAgICAgICAgIHN0YXRlID0gV2luZG93U3RhdGUuTk9STUFMOworICAgICAgICAgICAgfSBlbHNlIGlmICgibWluaW1pemVkIi5lcXVhbHNJZ25vcmVDYXNlKHdpbmRvd1N0YXRlKSkgeworICAgICAgICAgICAgICAgIHN0YXRlID0gV2luZG93U3RhdGUuTUlOSU1JWkVEOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmKHN0YXRlID09IG51bGwpIHsKKyAgICAgICAgICAgIHN0YXRlID0gV2luZG93U3RhdGUuTk9STUFMOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdGF0ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb252ZXJ0IHRoZSBnaXZlbiBTdHJpbmcgdG8gYSBQb3J0bGV0TW9kZSBvYmplY3QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydGxldFJlcSBUaGUgUmVuZGVyUmVxdWVzdC4KKyAgICAgKiBAcGFyYW0gcG9ydGxldE1vZGUgVGhlIFBvcnRsZXRNb2RlIGFzIGEgU3RyaW5nLgorICAgICAqIEByZXR1cm4gVGhlIFBvcnRsZXRNb2RlIHRoYXQgbWF0aGNlcyB0aGUgPHR0PnBvcnRsZXRNb2RlPC90dD4gU3RyaW5nLCBvciBpZgorICAgICAqIHRoZSBTdHJpbmcgaXMgYmxhbmssIHRoZSBjdXJyZW50IFBvcnRsZXRNb2RlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIFBvcnRsZXRNb2RlIGdldFBvcnRsZXRNb2RlKFJlbmRlclJlcXVlc3QgcG9ydGxldFJlcSwKKyAgICAgICAgICAgIFN0cmluZyBwb3J0bGV0TW9kZSkgeworICAgICAgICBQb3J0bGV0TW9kZSBtb2RlID0gcG9ydGxldFJlcS5nZXRQb3J0bGV0TW9kZSgpOworCisgICAgICAgIGlmIChTdHJpbmdVdGlscy5pc05vdEVtcHR5KHBvcnRsZXRNb2RlKSkgeworICAgICAgICAgICAgaWYgKCJlZGl0Ii5lcXVhbHNJZ25vcmVDYXNlKHBvcnRsZXRNb2RlKSkgeworICAgICAgICAgICAgICAgIG1vZGUgPSBQb3J0bGV0TW9kZS5FRElUOworICAgICAgICAgICAgfSBlbHNlIGlmICgidmlldyIuZXF1YWxzSWdub3JlQ2FzZShwb3J0bGV0TW9kZSkpIHsKKyAgICAgICAgICAgICAgICBtb2RlID0gUG9ydGxldE1vZGUuVklFVzsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoImhlbHAiLmVxdWFsc0lnbm9yZUNhc2UocG9ydGxldE1vZGUpKSB7CisgICAgICAgICAgICAgICAgbW9kZSA9IFBvcnRsZXRNb2RlLkhFTFA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYobW9kZSA9PSBudWxsKSB7CisgICAgICAgICAgICBtb2RlID0gUG9ydGxldE1vZGUuVklFVzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbW9kZTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvdmlld3MvZnJlZW1hcmtlci9Qb3J0bGV0RnJlZW1hcmtlclJlc3VsdC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3ZpZXdzL2ZyZWVtYXJrZXIvUG9ydGxldEZyZWVtYXJrZXJSZXN1bHQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDI3Zjc5Ci0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3ZpZXdzL2ZyZWVtYXJrZXIvUG9ydGxldEZyZWVtYXJrZXJSZXN1bHQuamF2YQpAQCAtMCwwICsxLDI4MiBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIudmlld3MuZnJlZW1hcmtlcjsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5Xcml0ZXI7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IGphdmF4LnBvcnRsZXQuQWN0aW9uUmVzcG9uc2U7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0RXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldFJlcXVlc3REaXNwYXRjaGVyOworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5TZXJ2bGV0QWN0aW9uQ29udGV4dDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5TdHJ1dHNSZXN1bHRTdXBwb3J0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LlBvcnRsZXRBY3Rpb25Db25zdGFudHM7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuY29udGV4dC5Qb3J0bGV0QWN0aW9uQ29udGV4dDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIudmlld3MudXRpbC5SZXNvdXJjZVV0aWw7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25JbnZvY2F0aW9uOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmluamVjdC5JbmplY3Q7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIudXRpbC5WYWx1ZVN0YWNrOworCitpbXBvcnQgZnJlZW1hcmtlci50ZW1wbGF0ZS5Db25maWd1cmF0aW9uOworaW1wb3J0IGZyZWVtYXJrZXIudGVtcGxhdGUuT2JqZWN0V3JhcHBlcjsKK2ltcG9ydCBmcmVlbWFya2VyLnRlbXBsYXRlLlRlbXBsYXRlOworaW1wb3J0IGZyZWVtYXJrZXIudGVtcGxhdGUuVGVtcGxhdGVFeGNlcHRpb247CitpbXBvcnQgZnJlZW1hcmtlci50ZW1wbGF0ZS5UZW1wbGF0ZU1vZGVsOworaW1wb3J0IGZyZWVtYXJrZXIudGVtcGxhdGUuVGVtcGxhdGVNb2RlbEV4Y2VwdGlvbjsKKworLyoqCisgKi8KK3B1YmxpYyBjbGFzcyBQb3J0bGV0RnJlZW1hcmtlclJlc3VsdCBleHRlbmRzIFN0cnV0c1Jlc3VsdFN1cHBvcnQgaW1wbGVtZW50cyBQb3J0bGV0QWN0aW9uQ29uc3RhbnRzeworCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTU1NzA2MTIzODkyODk4ODc1NDNMOworCisgICAgcHJvdGVjdGVkIEFjdGlvbkludm9jYXRpb24gaW52b2NhdGlvbjsKKworICAgIHByb3RlY3RlZCBDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb247CisKKyAgICBwcm90ZWN0ZWQgT2JqZWN0V3JhcHBlciB3cmFwcGVyOworICAgIHByb3RlY3RlZCBGcmVlbWFya2VyTWFuYWdlciBmcmVlbWFya2VyTWFuYWdlcjsKKworICAgIC8qCisgICAgICogU3RydXRzIHJlc3VsdHMgYXJlIGNvbnN0cnVjdGVkIGZvciBlYWNoIHJlc3VsdCBleGVjZXV0aW9uCisgICAgICoKKyAgICAgKiB0aGUgY3VycmVudCBjb250ZXh0IGlzIGF2YWlsaWJsZSB0byBzdWJjbGFzc2VzIHZpYSB0aGVzZSBwcm90ZWN0ZWQgZmllbGRzCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBsb2NhdGlvbjsKKworICAgIHByaXZhdGUgU3RyaW5nIHBDb250ZW50VHlwZSA9ICJ0ZXh0L2h0bWwiOworCisgICAgcHVibGljIFBvcnRsZXRGcmVlbWFya2VyUmVzdWx0KCkgeworICAgICAgICBzdXBlcigpOworICAgIH0KKworICAgIHB1YmxpYyBQb3J0bGV0RnJlZW1hcmtlclJlc3VsdChTdHJpbmcgbG9jYXRpb24pIHsKKyAgICAgICAgc3VwZXIobG9jYXRpb24pOworICAgIH0KKyAgICAKKyAgICBASW5qZWN0CisgICAgcHVibGljIHZvaWQgc2V0RnJlZW1hcmtlck1hbmFnZXIoRnJlZW1hcmtlck1hbmFnZXIgbWdyKSB7CisgICAgICAgIHRoaXMuZnJlZW1hcmtlck1hbmFnZXIgPSBtZ3I7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Q29udGVudFR5cGUoU3RyaW5nIGFDb250ZW50VHlwZSkgeworICAgICAgICBwQ29udGVudFR5cGUgPSBhQ29udGVudFR5cGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogYWxsb3cgcGFyYW1ldGVyaXphdGlvbiBvZiB0aGUgY29udGVudFR5cGUgdGhlIGRlZmF1bHQgYmVpbmcgdGV4dC9odG1sCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRDb250ZW50VHlwZSgpIHsKKyAgICAgICAgcmV0dXJuIHBDb250ZW50VHlwZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFeGVjdXRlIHRoaXMgcmVzdWx0LCB1c2luZyB0aGUgc3BlY2lmaWVkIHRlbXBsYXRlIGxvY2F0aW9uLiA8cC8+VGhlCisgICAgICogdGVtcGxhdGUgbG9jYXRpb24gaGFzIGFscmVhZHkgYmVlbiBpbnRlcm9wbGF0ZWQgZm9yIGFueSB2YXJpYWJsZQorICAgICAqIHN1YnN0aXR1dGlvbnMgPHAvPnRoaXMgbWV0aG9kIG9idGFpbnMgdGhlIGZyZWVtYXJrZXIgY29uZmlndXJhdGlvbiBhbmQKKyAgICAgKiB0aGUgb2JqZWN0IHdyYXBwZXIgZnJvbSB0aGUgcHJvdmlkZWQgaG9va3MuIEl0IHRoZW0gaW1wbGVtZW50cyB0aGUKKyAgICAgKiB0ZW1wbGF0ZSBwcm9jZXNzaW5nIHdvcmtmbG93IGJ5IGNhbGxpbmcgdGhlIGhvb2tzIGZvciBwcmVUZW1wbGF0ZVByb2Nlc3MKKyAgICAgKiBhbmQgcG9zdFRlbXBsYXRlUHJvY2VzcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvRXhlY3V0ZShTdHJpbmcgbG9jYXRpb24sIEFjdGlvbkludm9jYXRpb24gaW52b2NhdGlvbikKKyAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgVGVtcGxhdGVFeGNlcHRpb24sIFBvcnRsZXRFeGNlcHRpb24geworICAgICAgICBpZiAoUG9ydGxldEFjdGlvbkNvbnRleHQuaXNFdmVudCgpKSB7CisgICAgICAgICAgICBleGVjdXRlQWN0aW9uUmVzdWx0KGxvY2F0aW9uLCBpbnZvY2F0aW9uKTsKKyAgICAgICAgfSBlbHNlIGlmIChQb3J0bGV0QWN0aW9uQ29udGV4dC5pc1JlbmRlcigpKSB7CisgICAgICAgICAgICBleGVjdXRlUmVuZGVyUmVzdWx0KGxvY2F0aW9uLCBpbnZvY2F0aW9uKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEBwYXJhbSBsb2NhdGlvbgorICAgICAqIEBwYXJhbSBpbnZvY2F0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGV4ZWN1dGVBY3Rpb25SZXN1bHQoU3RyaW5nIGxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbkludm9jYXRpb24gaW52b2NhdGlvbikgeworICAgICAgICBBY3Rpb25SZXNwb25zZSByZXMgPSBQb3J0bGV0QWN0aW9uQ29udGV4dC5nZXRBY3Rpb25SZXNwb25zZSgpOworICAgICAgICAvLyBWaWV3IGlzIHJlbmRlcmVkIG91dHNpZGUgYW4gYWN0aW9uLi4udWggb2guLi4KKwkJaW52b2NhdGlvbi5nZXRJbnZvY2F0aW9uQ29udGV4dCgpLmdldFNlc3Npb24oKS5wdXQoUkVOREVSX0RJUkVDVF9MT0NBVElPTiwgbG9jYXRpb24pOworICAgICAgICByZXMuc2V0UmVuZGVyUGFyYW1ldGVyKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuQUNUSU9OX1BBUkFNLCAiZnJlZW1hcmtlckRpcmVjdCIpOworICAgICAgICByZXMuc2V0UmVuZGVyUGFyYW1ldGVyKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuTU9ERV9QQVJBTSwgUG9ydGxldEFjdGlvbkNvbnRleHQKKyAgICAgICAgICAgICAgICAuZ2V0UmVxdWVzdCgpLmdldFBvcnRsZXRNb2RlKCkudG9TdHJpbmcoKSk7CisKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gbG9jYXRpb24KKyAgICAgKiBAcGFyYW0gaW52b2NhdGlvbgorICAgICAqIEB0aHJvd3MgVGVtcGxhdGVFeGNlcHRpb24KKyAgICAgKiBAdGhyb3dzIElPRXhjZXB0aW9uCisgICAgICogQHRocm93cyBUZW1wbGF0ZU1vZGVsRXhjZXB0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGV4ZWN1dGVSZW5kZXJSZXN1bHQoU3RyaW5nIGxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbkludm9jYXRpb24gaW52b2NhdGlvbikgdGhyb3dzIFRlbXBsYXRlRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgIFRlbXBsYXRlTW9kZWxFeGNlcHRpb24sIFBvcnRsZXRFeGNlcHRpb24geworICAgICAgICB0aGlzLmxvY2F0aW9uID0gbG9jYXRpb247CisgICAgICAgIHRoaXMuaW52b2NhdGlvbiA9IGludm9jYXRpb247CisgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGdldENvbmZpZ3VyYXRpb24oKTsKKyAgICAgICAgdGhpcy53cmFwcGVyID0gZ2V0T2JqZWN0V3JhcHBlcigpOworCisgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXEgPSBTZXJ2bGV0QWN0aW9uQ29udGV4dC5nZXRSZXF1ZXN0KCk7CisKKyAgICAgICAgaWYgKCFsb2NhdGlvbi5zdGFydHNXaXRoKCIvIikpIHsKKyAgICAgICAgICAgIFN0cmluZyBiYXNlID0gUmVzb3VyY2VVdGlsLmdldFJlc291cmNlQmFzZShyZXEpOworICAgICAgICAgICAgbG9jYXRpb24gPSBiYXNlICsgIi8iICsgbG9jYXRpb247CisgICAgICAgIH0KKworICAgICAgICBUZW1wbGF0ZSB0ZW1wbGF0ZSA9IGNvbmZpZ3VyYXRpb24uZ2V0VGVtcGxhdGUobG9jYXRpb24sIGRlZHVjZUxvY2FsZSgpKTsKKyAgICAgICAgVGVtcGxhdGVNb2RlbCBtb2RlbCA9IGNyZWF0ZU1vZGVsKCk7CisgICAgICAgIC8vIEdpdmUgc3ViY2xhc3NlcyBhIGNoYW5jZSB0byBob29rIGludG8gcHJlcHJvY2Vzc2luZworICAgICAgICBpZiAocHJlVGVtcGxhdGVQcm9jZXNzKHRlbXBsYXRlLCBtb2RlbCkpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgLy8gUHJvY2VzcyB0aGUgdGVtcGxhdGUKKyAgICAgICAgICAgICAgICBQb3J0bGV0QWN0aW9uQ29udGV4dC5nZXRSZW5kZXJSZXNwb25zZSgpLnNldENvbnRlbnRUeXBlKHBDb250ZW50VHlwZSk7CisgICAgICAgICAgICAgICAgdGVtcGxhdGUucHJvY2Vzcyhtb2RlbCwgZ2V0V3JpdGVyKCkpOworICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICAvLyBHaXZlIHN1YmNsYXNzZXMgYSBjaGFuY2UgdG8gaG9vayBpbnRvIHBvc3Rwcm9jZXNzaW5nCisgICAgICAgICAgICAgICAgcG9zdFRlbXBsYXRlUHJvY2Vzcyh0ZW1wbGF0ZSwgbW9kZWwpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGZyb20ge0BsaW5rICNkb0V4ZWN1dGUoU3RyaW5nLCBBY3Rpb25JbnZvY2F0aW9uKX0KKyAgICAgKiB0byBvYnRhaW4gdGhlIEZyZWVNYXJrZXIgY29uZmlndXJhdGlvbiBvYmplY3QgdGhhdCB0aGlzIHJlc3VsdCB3aWxsIHVzZQorICAgICAqIGZvciB0ZW1wbGF0ZSBsb2FkaW5nLiBUaGlzIGlzIGEgaG9vayB0aGF0IGFsbG93cyB5b3UgdG8gY3VzdG9tLWNvbmZpZ3VyZQorICAgICAqIHRoZSBjb25maWd1cmF0aW9uIG9iamVjdCBpbiBhIHN1YmNsYXNzLCBvciB0byBmZXRjaCBpdCBmcm9tIGFuIElvQworICAgICAqIGNvbnRhaW5lci4gPHAvPjxiPlRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9idGFpbnMgdGhlIGNvbmZpZ3VyYXRpb24KKyAgICAgKiBmcm9tIHRoZSBDb25maWd1cmF0aW9uTWFuYWdlciBpbnN0YW5jZS4gPC9iPgorICAgICAqLworICAgIHByb3RlY3RlZCBDb25maWd1cmF0aW9uIGdldENvbmZpZ3VyYXRpb24oKSB0aHJvd3MgVGVtcGxhdGVFeGNlcHRpb24geworICAgICAgICByZXR1cm4gZnJlZW1hcmtlck1hbmFnZXIuZ2V0Q29uZmlndXJhdGlvbigKKyAgICAgICAgICAgICAgICBTZXJ2bGV0QWN0aW9uQ29udGV4dC5nZXRTZXJ2bGV0Q29udGV4dCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgZnJvbSB7QGxpbmsgI2RvRXhlY3V0ZShTdHJpbmcsIEFjdGlvbkludm9jYXRpb24pfQorICAgICAqIHRvIG9idGFpbiB0aGUgRnJlZU1hcmtlciBvYmplY3Qgd3JhcHBlciBvYmplY3QgdGhhdCB0aGlzIHJlc3VsdCB3aWxsIHVzZQorICAgICAqIGZvciBhZGFwdGluZyBvYmplY3RzIGludG8gdGVtcGxhdGUgbW9kZWxzLiBUaGlzIGlzIGEgaG9vayB0aGF0IGFsbG93cyB5b3UKKyAgICAgKiB0byBjdXN0b20tY29uZmlndXJlIHRoZSB3cmFwcGVyIG9iamVjdCBpbiBhIHN1YmNsYXNzLiA8cC8+PGI+VGhlIGRlZmF1bHQKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIHtAbGluayBDb25maWd1cmF0aW9uI2dldE9iamVjdFdyYXBwZXIoKX08L2I+CisgICAgICovCisgICAgcHJvdGVjdGVkIE9iamVjdFdyYXBwZXIgZ2V0T2JqZWN0V3JhcHBlcigpIHsKKyAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb24uZ2V0T2JqZWN0V3JhcHBlcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBkZWZhdWx0IHdyaXRlciB3cml0ZXMgZGlyZWN0bHkgdG8gdGhlIHJlc3BvbnNlIHdyaXRlci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgV3JpdGVyIGdldFdyaXRlcigpIHRocm93cyBJT0V4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBQb3J0bGV0QWN0aW9uQ29udGV4dC5nZXRSZW5kZXJSZXNwb25zZSgpLmdldFdyaXRlcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEJ1aWxkIHRoZSBpbnN0YW5jZSBvZiB0aGUgU2NvcGVzSGFzaE1vZGVsLCBpbmNsdWRpbmcgSnNwVGFnTGliIHN1cHBvcnQKKyAgICAgKiA8cC8+T2JqZWN0cyBhZGRlZCB0byB0aGUgbW9kZWwgYXJlIDxwLz4KKyAgICAgKiA8dWw+CisgICAgICogPGxpPkFwcGxpY2F0aW9uIC0gc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMgaGFzaCBtb2RlbAorICAgICAqIDxsaT5Kc3BUYWdsaWJzIC0ganNwIHRhZyBsaWIgZmFjdG9yeSBtb2RlbAorICAgICAqIDxsaT5SZXF1ZXN0IC0gcmVxdWVzdCBhdHRyaWJ1dGVzIGhhc2ggbW9kZWwKKyAgICAgKiA8bGk+U2Vzc2lvbiAtIHNlc3Npb24gYXR0cmlidXRlcyBoYXNoIG1vZGVsCisgICAgICogPGxpPnJlcXVlc3QgLSB0aGUgSHR0cFNlcnZsZXRSZXF1c3Qgb2JqZWN0IGZvciBkaXJlY3QgYWNjZXNzCisgICAgICogPGxpPnJlc3BvbnNlIC0gdGhlIEh0dHBTZXJ2bGV0UmVzcG9uc2Ugb2JqZWN0IGZvciBkaXJlY3QgYWNjZXNzCisgICAgICogPGxpPnN0YWNrIC0gdGhlIE9nbkxWYWx1ZVN0YWNrIGluc3RhbmNlIGZvciBkaXJlY3QgYWNjZXNzCisgICAgICogPGxpPm9nbmwgLSB0aGUgaW5zdGFuY2Ugb2YgdGhlIE9nbmxUb29sCisgICAgICogPGxpPmFjdGlvbiAtIHRoZSBhY3Rpb24gaXRzZWxmCisgICAgICogPGxpPmV4Y2VwdGlvbiAtIG9wdGlvbmFsIDogdGhlIEpTUCBvciBTZXJ2bGV0IGV4Y2VwdGlvbiBhcyBwZXIgdGhlCisgICAgICogc2VydmxldCBzcGVjIChmb3IgSlNQIEV4Y2VwdGlvbiBwYWdlcykKKyAgICAgKiA8bGk+c3RydXRzIC0gaW5zdGFuY2Ugb2YgdGhlIFN0cnV0c1V0aWwgY2xhc3MKKyAgICAgKiA8L3VsPgorICAgICAqLworICAgIHByb3RlY3RlZCBUZW1wbGF0ZU1vZGVsIGNyZWF0ZU1vZGVsKCkgdGhyb3dzIFRlbXBsYXRlTW9kZWxFeGNlcHRpb24geworICAgICAgICBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCA9IFNlcnZsZXRBY3Rpb25Db250ZXh0CisgICAgICAgICAgICAgICAgLmdldFNlcnZsZXRDb250ZXh0KCk7CisgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0ID0gU2VydmxldEFjdGlvbkNvbnRleHQuZ2V0UmVxdWVzdCgpOworICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlID0gU2VydmxldEFjdGlvbkNvbnRleHQuZ2V0UmVzcG9uc2UoKTsKKyAgICAgICAgVmFsdWVTdGFjayBzdGFjayA9IFNlcnZsZXRBY3Rpb25Db250ZXh0LmdldENvbnRleHQoKQorICAgICAgICAgICAgICAgIC5nZXRWYWx1ZVN0YWNrKCk7CisgICAgICAgIHJldHVybiBmcmVlbWFya2VyTWFuYWdlci5idWlsZFRlbXBsYXRlTW9kZWwoc3RhY2ssCisgICAgICAgICAgICAgICAgaW52b2NhdGlvbi5nZXRBY3Rpb24oKSwgc2VydmxldENvbnRleHQsIHJlcXVlc3QsIHJlc3BvbnNlLAorICAgICAgICAgICAgICAgIHdyYXBwZXIpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxvY2FsZSB1c2VkIGZvciB0aGUKKyAgICAgKiB7QGxpbmsgQ29uZmlndXJhdGlvbiNnZXRUZW1wbGF0ZShTdHJpbmcsIExvY2FsZSl9Y2FsbC4gVGhlIGJhc2UKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiBzaW1wbHkgcmV0dXJucyB0aGUgbG9jYWxlIHNldHRpbmcgb2YgdGhlIGNvbmZpZ3VyYXRpb24uCisgICAgICogT3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcHJvdmlkZSBkaWZmZXJlbnQgYmVoYXZpb3VyLAorICAgICAqLworICAgIHByb3RlY3RlZCBMb2NhbGUgZGVkdWNlTG9jYWxlKCkgeworICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbi5nZXRMb2NhbGUoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBwb3N0VGVtcGxhdGVQcm9jZXNzIGFwcGxpZXMgdGhlIGNvbnRlbnRUeXBlCisgICAgICogcGFyYW1ldGVyCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgcG9zdFRlbXBsYXRlUHJvY2VzcyhUZW1wbGF0ZSB0ZW1wbGF0ZSwgVGVtcGxhdGVNb2RlbCBkYXRhKQorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uIHsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgYmVmb3JlIHRoZSBleGVjdXRpb24gaXMgcGFzc2VkIHRvIHRlbXBsYXRlLnByb2Nlc3MoKS4gVGhpcyBpcyBhCisgICAgICogZ2VuZXJpYyBob29rIHlvdSBtaWdodCB1c2UgaW4gc3ViY2xhc3NlcyB0byBwZXJmb3JtIGEgc3BlY2lmaWMgYWN0aW9uCisgICAgICogYmVmb3JlIHRoZSB0ZW1wbGF0ZSBpcyBwcm9jZXNzZWQuIEJ5IGRlZmF1bHQgZG9lcyBub3RoaW5nLiBBIHR5cGljYWwKKyAgICAgKiBhY3Rpb24gdG8gcGVyZm9ybSBoZXJlIGlzIHRvIGluamVjdCBhcHBsaWNhdGlvbi1zcGVjaWZpYyBvYmplY3RzIGludG8gdGhlCisgICAgICogbW9kZWwgcm9vdAorICAgICAqCisgICAgICogQHJldHVybiB0cnVlIHRvIHByb2Nlc3MgdGhlIHRlbXBsYXRlLCBmYWxzZSB0byBzdXBwcmVzcyB0ZW1wbGF0ZQorICAgICAqICAgICAgICAgcHJvY2Vzc2luZy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBwcmVUZW1wbGF0ZVByb2Nlc3MoVGVtcGxhdGUgdGVtcGxhdGUsIFRlbXBsYXRlTW9kZWwgbW9kZWwpCisgICAgICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24geworICAgICAgICBPYmplY3QgYXR0ckNvbnRlbnRUeXBlID0gdGVtcGxhdGUuZ2V0Q3VzdG9tQXR0cmlidXRlKCJjb250ZW50X3R5cGUiKTsKKworICAgICAgICBpZiAoYXR0ckNvbnRlbnRUeXBlICE9IG51bGwpIHsKKyAgICAgICAgICAgIFNlcnZsZXRBY3Rpb25Db250ZXh0LmdldFJlc3BvbnNlKCkuc2V0Q29udGVudFR5cGUoCisgICAgICAgICAgICAgICAgICAgIGF0dHJDb250ZW50VHlwZS50b1N0cmluZygpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZyBjb250ZW50VHlwZSA9IGdldENvbnRlbnRUeXBlKCk7CisKKyAgICAgICAgICAgIGlmIChjb250ZW50VHlwZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgY29udGVudFR5cGUgPSAidGV4dC9odG1sIjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RyaW5nIGVuY29kaW5nID0gdGVtcGxhdGUuZ2V0RW5jb2RpbmcoKTsKKworICAgICAgICAgICAgaWYgKGVuY29kaW5nICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBjb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlICsgIjsgY2hhcnNldD0iICsgZW5jb2Rpbmc7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFNlcnZsZXRBY3Rpb25Db250ZXh0LmdldFJlc3BvbnNlKCkuc2V0Q29udGVudFR5cGUoY29udGVudFR5cGUpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL0xJQ0VOU0UudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9MSUNFTlNFLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDViM2E1Ci0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9MSUNFTlNFLnR4dApAQCAtMCwwICsxLDE3NCBAQAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKKyAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KKworICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCisKKyAgIDEuIERlZmluaXRpb25zLgorCisgICAgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisKKyAgICAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5CisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCisKKyAgICAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKKyAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKyAgICAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCisgICAgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUKKyAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCisgICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKKyAgICAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCisKKyAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKyAgICAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCisKKyAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAorICAgICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKworICAgICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKKyAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKyAgICAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKKyAgICAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKworICAgICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKKyAgICAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKKyAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yaworICAgICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KKworICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAorICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKKyAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgorICAgICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAorICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKworICAgICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKKyAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKKyAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQorICAgICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgorICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKKyAgICAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKKyAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCisgICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAorICAgICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKyAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAorICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKKyAgICAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgorCisgICAgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICAgICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCisgICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KKworICAgMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCisgICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKKyAgICAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCisKKyAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKyAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAorICAgICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCisgICAgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQorICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKKyAgICAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKKyAgICAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91CisgICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yaworICAgICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKKyAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKKyAgICAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQorICAgICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgorCisgICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQorICAgICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CisgICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorICAgICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKyAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCisgICAgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKKworICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICAgICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAorCisgICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKKyAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCisgICAgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKKyAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCisgICAgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAorCisgICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKKyAgICAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CisgICAgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCisgICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisgICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCisgICAgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKKyAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCisgICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCisgICAgICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAorICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cworICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKKyAgICAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgorICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCisgICAgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCisgICAgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCisgICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgorCisgICAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKKyAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKyAgICAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKKyAgICAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAorICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCisgICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgorCisgICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCisgICAgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKKyAgICAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKyAgICAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKKyAgICAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCisgICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCisKKyAgIDYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKKyAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKKyAgICAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQorICAgICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCisKKyAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgorICAgICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAorICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyAgICAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCisgICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCisgICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKKyAgICAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQorICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorCisgICA4LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKKyAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAorICAgICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKKyAgICAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCisgICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCisgICAgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKKyAgICAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKKyAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKKyAgICAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCisgICAgICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCisgICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCisKKyAgIDkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKKyAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCisgICAgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAorICAgICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKKyAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CisgICAgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgorICAgICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAorICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CisgICAgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCisgICAgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvTk9USUNFLnR4dCBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvTk9USUNFLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmJhOTBjCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9OT1RJQ0UudHh0CkBAIC0wLDAgKzEsNSBAQAorQXBhY2hlIFN0cnV0cworQ29weXJpZ2h0IDIwMDAtMjAxMSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKworVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieQorVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChodHRwOi8vd3d3LmFwYWNoZS5vcmcvKS4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0cnV0cy1wbHVnaW4ueG1sIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9zdHJ1dHMtcGx1Z2luLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWI5OWJjCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9zdHJ1dHMtcGx1Z2luLnhtbApAQCAtMCwwICsxLDc4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4KKzwhLS0KKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCistLT4KKzwhRE9DVFlQRSBzdHJ1dHMgUFVCTElDCisgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMi4wLy9FTiIKKyAgICAiaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL2R0ZHMvc3RydXRzLTIuMC5kdGQiPgorICAgIAorPHN0cnV0cz4KKwkKKwk8YmVhbiB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0czIuY29tcG9uZW50cy5VcmxSZW5kZXJlciIgbmFtZT0icG9ydGxldCIgY2xhc3M9Im9yZy5hcGFjaGUuc3RydXRzMi5jb21wb25lbnRzLlBvcnRsZXRVcmxSZW5kZXJlciIvPgorCQorCTxjb25zdGFudCBuYW1lPSJzdHJ1dHMudXJsUmVuZGVyZXIiIHZhbHVlPSJwb3J0bGV0IiAvPgorCTxjb25zdGFudCBuYW1lPSJzdHJ1dHMucG9ydGxldC51c2VEaXNwYXRjaGVyU2VydmxldCIgdmFsdWU9ImZhbHNlIiAvPgorCTxjb25zdGFudCBuYW1lPSJzdHJ1dHMucG9ydGxldC5kaXNwYXRjaGVyU2VydmxldE5hbWUiIHZhbHVlPSJTdHJ1dHMyUG9ydGxldERpc3BhdGNoZXJTZXJ2bGV0IiAvPgorCTxjb25zdGFudCBuYW1lPSJzdHJ1dHMub2JqZWN0RmFjdG9yeS5zcHJpbmcuYXV0b1dpcmUuYWx3YXlzUmVzcGVjdCIgdmFsdWU9ImZhbHNlIiAvPgorCisgICAgPHBhY2thZ2UgbmFtZT0ic3RydXRzLXBvcnRsZXQtZGVmYXVsdCIgZXh0ZW5kcz0ic3RydXRzLWRlZmF1bHQiPgorCisJICAgPHJlc3VsdC10eXBlcz4KKwkJCTxyZXN1bHQtdHlwZSBuYW1lPSJkaXNwYXRjaGVyIiBjbGFzcz0ib3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQucmVzdWx0LlBvcnRsZXRSZXN1bHQiIGRlZmF1bHQ9InRydWUiLz4KKyAgICAgICAgICAgIDxyZXN1bHQtdHlwZSBuYW1lPSJyZWRpcmVjdCIgY2xhc3M9Im9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LnJlc3VsdC5Qb3J0bGV0UmVzdWx0Ii8+CisJCSAgICA8cmVzdWx0LXR5cGUgbmFtZT0icmVkaXJlY3RBY3Rpb24iIGNsYXNzPSJvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5yZXN1bHQuUG9ydGxldEFjdGlvblJlZGlyZWN0UmVzdWx0Ii8+CisJCQk8cmVzdWx0LXR5cGUgbmFtZT0iZnJlZW1hcmtlciIgY2xhc3M9Im9yZy5hcGFjaGUuc3RydXRzMi52aWV3cy5mcmVlbWFya2VyLlBvcnRsZXRGcmVlbWFya2VyUmVzdWx0Ii8+CisJCQk8cmVzdWx0LXR5cGUgbmFtZT0idmVsb2NpdHkiIGNsYXNzPSJvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5yZXN1bHQuUG9ydGxldFZlbG9jaXR5UmVzdWx0Ii8+CisJICAgPC9yZXN1bHQtdHlwZXM+CisgICAgICAgCisgICAgICAgPGludGVyY2VwdG9ycz4KKyAgICAgICAgPGludGVyY2VwdG9yIG5hbWU9InBvcnRsZXRBd2FyZSIgY2xhc3M9Im9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LmludGVyY2VwdG9yLlBvcnRsZXRBd2FyZUludGVyY2VwdG9yIi8+CisJCTxpbnRlcmNlcHRvciBuYW1lPSJwb3J0bGV0U3RhdGUiIGNsYXNzPSJvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5pbnRlcmNlcHRvci5Qb3J0bGV0U3RhdGVJbnRlcmNlcHRvciIvPgorCQk8IS0tIERlZmF1bHQgc3RhY2sgZm9yIG9wZXJhdGluZyBpbiBwb3J0bGV0IGVudmlyb25tZW50IC0tPgorICAgICAgICA8aW50ZXJjZXB0b3Itc3RhY2sgbmFtZT0icG9ydGxldERlZmF1bHRTdGFjayI+CisJCQk8aW50ZXJjZXB0b3ItcmVmIG5hbWU9InBvcnRsZXRTdGF0ZSIvPgorICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJwb3J0bGV0QXdhcmUiLz4KKyAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0iZGVmYXVsdFN0YWNrIi8+CisgICAgICAgIDwvaW50ZXJjZXB0b3Itc3RhY2s+CisgICAgICAgIDwhLS0gRXh0ZW5zaW9uIG9mIHRoZSBkZWZhdWx0IHBvcnRsZXQgc3RhY2sgd2hpY2ggYWxzbyBpbmNsdWRlcyB0aGUgdG9rZW4gaW50ZXJjZXB0b3IgLS0+IAorCQk8aW50ZXJjZXB0b3Itc3RhY2sgbmFtZT0icG9ydGxldERlZmF1bHRTdGFja1dpdGhUb2tlbiI+CisJCQk8aW50ZXJjZXB0b3ItcmVmIG5hbWU9InBvcnRsZXRTdGF0ZSIvPgorCQkJPGludGVyY2VwdG9yLXJlZiBuYW1lPSJwb3J0bGV0QXdhcmUiLz4KKwkJCTxpbnRlcmNlcHRvci1yZWYgbmFtZT0idG9rZW4iLz4KKwkJCTxpbnRlcmNlcHRvci1yZWYgbmFtZT0iZGVmYXVsdFN0YWNrIi8+CisJCTwvaW50ZXJjZXB0b3Itc3RhY2s+CisJCSAgIAorICAgICAgIDwvaW50ZXJjZXB0b3JzPgorICAgICAgIAorICAgICAgIDxkZWZhdWx0LWludGVyY2VwdG9yLXJlZiBuYW1lPSJwb3J0bGV0RGVmYXVsdFN0YWNrIi8+CisJCQorCSAgIDxhY3Rpb24gbmFtZT0icmVuZGVyRGlyZWN0IiBjbGFzcz0ib3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuZGlzcGF0Y2hlci5EaXJlY3RSZW5kZXJGcm9tRXZlbnRBY3Rpb24iPgorCSAgIAkJPHJlc3VsdCBuYW1lPSJzdWNjZXNzIj4ke2xvY2F0aW9ufTwvcmVzdWx0PgorCSAgIDwvYWN0aW9uPgorCSAgIDxhY3Rpb24gbmFtZT0iZnJlZW1hcmtlckRpcmVjdCIgY2xhc3M9Im9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LmRpc3BhdGNoZXIuRGlyZWN0UmVuZGVyRnJvbUV2ZW50QWN0aW9uIj4KKwkgICAJCTxyZXN1bHQgdHlwZT0iZnJlZW1hcmtlciIgbmFtZT0ic3VjY2VzcyI+JHtsb2NhdGlvbn08L3Jlc3VsdD4KKwkgICA8L2FjdGlvbj4KKwkgICA8YWN0aW9uIG5hbWU9InZlbG9jaXR5RGlyZWN0IiBjbGFzcz0ib3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuZGlzcGF0Y2hlci5EaXJlY3RSZW5kZXJGcm9tRXZlbnRBY3Rpb24iPgorCSAgIAkJPHJlc3VsdCB0eXBlPSJ2ZWxvY2l0eSIgbmFtZT0ic3VjY2VzcyI+JHtsb2NhdGlvbn08L3Jlc3VsdD4KKwkgICA8L2FjdGlvbj4KKwk8L3BhY2thZ2U+Cis8L3N0cnV0cz4KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9jb21wb25lbnRzL1BvcnRsZXRVcmxSZW5kZXJlclRlc3QuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9jb21wb25lbnRzL1BvcnRsZXRVcmxSZW5kZXJlclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMThkYzE1Ci0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2NvbXBvbmVudHMvUG9ydGxldFVybFJlbmRlcmVyVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjM3IEBACisvKg0KKyAqICRJZCQNCisgKg0KKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUNCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUNCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbg0KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUNCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlDQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQ0KKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKg0KKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKg0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywNCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbg0KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQ0KKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQ0KKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMNCisgKiB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8NCisNCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5jb21wb25lbnRzOw0KKw0KK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOw0KK2ltcG9ydCBqYXZhLmlvLlN0cmluZ1dyaXRlcjsNCitpbXBvcnQgamF2YS5pby5Xcml0ZXI7DQoraW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOw0KK2ltcG9ydCBqYXZhLnV0aWwuTWFwOw0KKw0KK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRNb2RlOw0KK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRVUkw7DQorDQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5TdHJ1dHNTdGF0aWNzOw0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuU3RydXRzVGVzdENhc2U7DQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LlBvcnRsZXRBY3Rpb25Db25zdGFudHM7DQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LmNvbnRleHQuUG9ydGxldEFjdGlvbkNvbnRleHQ7DQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LnNlcnZsZXQuUG9ydGxldFNlcnZsZXRSZXF1ZXN0Ow0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5zZXJ2bGV0LlBvcnRsZXRTZXJ2bGV0UmVzcG9uc2U7DQoraW1wb3J0IG9yZy5lYXN5bW9jay5FYXN5TW9jazsNCitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5tb2NrLndlYi5wb3J0bGV0Lk1vY2tQb3J0YWxDb250ZXh0Ow0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLm1vY2sud2ViLnBvcnRsZXQuTW9ja1BvcnRsZXRDb250ZXh0Ow0KK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLm1vY2sud2ViLnBvcnRsZXQuTW9ja1BvcnRsZXRVUkw7DQoraW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsubW9jay53ZWIucG9ydGxldC5Nb2NrUmVuZGVyUmVxdWVzdDsNCitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5tb2NrLndlYi5wb3J0bGV0Lk1vY2tSZW5kZXJSZXNwb25zZTsNCisNCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uQ29udGV4dDsNCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIubW9jay5Nb2NrQWN0aW9uSW52b2NhdGlvbjsNCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIubW9jay5Nb2NrQWN0aW9uUHJveHk7DQoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnV0aWwuVmFsdWVTdGFjazsNCisNCitwdWJsaWMgY2xhc3MgUG9ydGxldFVybFJlbmRlcmVyVGVzdCBleHRlbmRzIFN0cnV0c1Rlc3RDYXNlIHsNCisNCisJUG9ydGxldFVybFJlbmRlcmVyIHJlbmRlcmVyOw0KKwlNb2NrUG9ydGxldFVSTCByZW5kZXJVcmw7DQorCU1vY2tQb3J0bGV0VVJMIGFjdGlvblVybDsNCisJTW9ja1JlbmRlclJlcXVlc3QgcmVxdWVzdDsNCisJTW9ja1JlbmRlclJlc3BvbnNlIHJlc3BvbnNlOw0KKwlNb2NrUG9ydGxldENvbnRleHQgY29udGV4dDsNCisJQWN0aW9uQ29udGV4dCBjdHg7DQorCVZhbHVlU3RhY2sgc3RhY2s7DQorDQorCXB1YmxpYyB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorCQlzdXBlci5zZXRVcCgpOw0KKwkJcmVuZGVyZXIgPSBuZXcgUG9ydGxldFVybFJlbmRlcmVyKCk7DQorCQljb250ZXh0ID0gbmV3IE1vY2tQb3J0bGV0Q29udGV4dCgpOw0KKwkJcmVuZGVyVXJsID0gbmV3IE1vY2tQb3J0bGV0VVJMKA0KKwkJCQluZXcgTW9ja1BvcnRhbENvbnRleHQoKSwgInJlbmRlciIpOw0KKwkJYWN0aW9uVXJsID0gbmV3IE1vY2tQb3J0bGV0VVJMKA0KKwkJCQluZXcgTW9ja1BvcnRhbENvbnRleHQoKSwgImFjdGlvbiIpOw0KKwkJcmVxdWVzdCA9IG5ldyBNb2NrUmVuZGVyUmVxdWVzdCgpOw0KKwkJcmVzcG9uc2UgPSBuZXcgTW9ja1JlbmRlclJlc3BvbnNlKCkgew0KKwkJCUBPdmVycmlkZQ0KKwkJCXB1YmxpYyBQb3J0bGV0VVJMIGNyZWF0ZUFjdGlvblVSTCgpIHsNCisJCQkJcmV0dXJuIGFjdGlvblVybDsNCisJCQl9DQorCQkJQE92ZXJyaWRlDQorCQkJcHVibGljIFBvcnRsZXRVUkwgY3JlYXRlUmVuZGVyVVJMKCkgew0KKwkJCQlyZXR1cm4gcmVuZGVyVXJsOw0KKwkJCX0NCisJCX07DQorDQorCQljdHggPSBBY3Rpb25Db250ZXh0LmdldENvbnRleHQoKTsNCisJCWN0eC5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5QSEFTRSwNCisJCQkJUG9ydGxldEFjdGlvbkNvbnN0YW50cy5SRU5ERVJfUEhBU0UpOw0KKwkJY3R4LnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlJFUVVFU1QsIHJlcXVlc3QpOw0KKwkJY3R4LnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlJFU1BPTlNFLCByZXNwb25zZSk7DQorCQljdHgucHV0KFN0cnV0c1N0YXRpY3MuU1RSVVRTX1BPUlRMRVRfQ09OVEVYVCwgY29udGV4dCk7DQorDQorCQlNYXA8UG9ydGxldE1vZGUsIFN0cmluZz4gbW9kZU1hcCA9IG5ldyBIYXNoTWFwPFBvcnRsZXRNb2RlLCBTdHJpbmc+KCk7DQorCQltb2RlTWFwLnB1dChQb3J0bGV0TW9kZS5WSUVXLCAiL3ZpZXciKTsNCisJCWN0eC5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5NT0RFX05BTUVTUEFDRV9NQVAsIG1vZGVNYXApOw0KKwkJc3RhY2sgPSBjdHguZ2V0VmFsdWVTdGFjaygpOw0KKwl9DQorDQorCS8qKg0KKwkgKiBFbnN1cmUgdGhhdCB0aGUgbmFtZXNwYWNlIG9mIHRoZSBjdXJyZW50IGV4ZWN1dGluZyBhY3Rpb24gaXMgdXNlZCB3aGVuIG5vDQorCSAqIG5hbWVzcGFjZSBpcyBzcGVjaWZpZWQuIChXVy0xODc1KQ0KKwkgKi8NCisJcHVibGljIHZvaWQgdGVzdFNob3VsZEluY2x1ZGVDdXJyZW50TmFtZXNwYWNlSWZOb05hbWVzcGFjZVNwZWNpZmllZEZvclJlbmRlclVybCgpDQorCQkJdGhyb3dzIEV4Y2VwdGlvbiB7DQorCQkNCisJCVVSTCB1cmwgPSBuZXcgVVJMKHN0YWNrLCBuZXcgUG9ydGxldFNlcnZsZXRSZXF1ZXN0KHJlcXVlc3QsIG51bGwpLA0KKwkJCQluZXcgUG9ydGxldFNlcnZsZXRSZXNwb25zZShyZXNwb25zZSkpOw0KKw0KKwkJTW9ja0FjdGlvbkludm9jYXRpb24gYWkgPSBuZXcgTW9ja0FjdGlvbkludm9jYXRpb24oKTsNCisJCU1vY2tBY3Rpb25Qcm94eSBhcCA9IG5ldyBNb2NrQWN0aW9uUHJveHkoKTsNCisJCWFwLnNldEFjdGlvbk5hbWUoInRlc3RBY3Rpb24iKTsNCisJCWFwLnNldE5hbWVzcGFjZSgiL2N1cnJlbnRfbmFtZXNwYWNlIik7DQorCQlhaS5zZXRQcm94eShhcCk7DQorCQlhaS5zZXRTdGFjayhzdGFjayk7DQorCQlhaS5zZXRBY3Rpb24obmV3IE9iamVjdCgpKTsNCisJCWN0eC5zZXRBY3Rpb25JbnZvY2F0aW9uKGFpKTsNCisNCisJCVN0cmluZ1dyaXRlciByZW5kZXJPdXRwdXQgPSBuZXcgU3RyaW5nV3JpdGVyKCk7DQorCQlyZW5kZXJlci5yZW5kZXJVcmwocmVuZGVyT3V0cHV0LCB1cmwuZ2V0VXJsUHJvdmlkZXIoKSk7DQorDQorCQlTdHJpbmcgYWN0aW9uID0gcmVuZGVyVXJsDQorCQkJCS5nZXRQYXJhbWV0ZXIoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5BQ1RJT05fUEFSQU0pOw0KKwkJYXNzZXJ0RXF1YWxzKCIvdmlldy9jdXJyZW50X25hbWVzcGFjZS90ZXN0QWN0aW9uIiwgYWN0aW9uKTsNCisJfQ0KKw0KKwkvKioNCisJICogRW5zdXJlIHRoYXQgdGhlIG5hbWVzcGFjZSBvZiB0aGUgY3VycmVudCBleGVjdXRpbmcgYWN0aW9uIGlzIHVzZWQgd2hlbiBubw0KKwkgKiBuYW1lc3BhY2UgaXMgc3BlY2lmaWVkLiAoV1ctMTg3NSkNCisJICovDQorCXB1YmxpYyB2b2lkIHRlc3RTaG91bGRJbmNsdWRlQ3VycmVudE5hbWVzcGFjZUlmTm9OYW1lc3BhY2VTcGVjaWZpZWRGb3JSZW5kZXJGb3JtVXJsKCkNCisJCQl0aHJvd3MgRXhjZXB0aW9uIHsNCisNCisJCUZvcm0gZm9ybSA9IG5ldyBGb3JtKHN0YWNrLCBuZXcgUG9ydGxldFNlcnZsZXRSZXF1ZXN0KHJlcXVlc3QsIG51bGwpLA0KKwkJCQluZXcgUG9ydGxldFNlcnZsZXRSZXNwb25zZShyZXNwb25zZSkpOw0KKw0KKwkJTW9ja0FjdGlvbkludm9jYXRpb24gYWkgPSBuZXcgTW9ja0FjdGlvbkludm9jYXRpb24oKTsNCisJCU1vY2tBY3Rpb25Qcm94eSBhcCA9IG5ldyBNb2NrQWN0aW9uUHJveHkoKTsNCisJCWFwLnNldEFjdGlvbk5hbWUoInRlc3RBY3Rpb24iKTsNCisJCWFwLnNldE5hbWVzcGFjZSgiL2N1cnJlbnRfbmFtZXNwYWNlIik7DQorCQlhaS5zZXRQcm94eShhcCk7DQorCQlhaS5zZXRTdGFjayhzdGFjayk7DQorCQlhaS5zZXRBY3Rpb24obmV3IE9iamVjdCgpKTsNCisJCWN0eC5zZXRBY3Rpb25JbnZvY2F0aW9uKGFpKTsNCisNCisJCXJlbmRlcmVyLnJlbmRlckZvcm1VcmwoZm9ybSk7DQorDQorCQlTdHJpbmcgYWN0aW9uID0gYWN0aW9uVXJsDQorCQkJCS5nZXRQYXJhbWV0ZXIoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5BQ1RJT05fUEFSQU0pOw0KKwkJYXNzZXJ0RXF1YWxzKCIvdmlldy9jdXJyZW50X25hbWVzcGFjZS90ZXN0QWN0aW9uIiwgYWN0aW9uKTsNCisJfQ0KKwkNCisJcHVibGljIHZvaWQgdGVzdFNob3VsZEV2YWx1YXRlQWN0aW9uQXNPR05MRXhwcmVzc2lvbigpIHRocm93cyBFeGNlcHRpb24gew0KKwkJDQorCQlUZXN0T2JqZWN0IG9iaiA9IG5ldyBUZXN0T2JqZWN0KCk7DQorCQlvYmouc29tZVByb3BlcnR5ID0gIkV2YWx1YXRlZFByb3BlcnR5IjsNCisJCXN0YWNrLnB1c2gob2JqKTsNCisJCU1vY2tBY3Rpb25JbnZvY2F0aW9uIGFpID0gbmV3IE1vY2tBY3Rpb25JbnZvY2F0aW9uKCk7DQorCQlNb2NrQWN0aW9uUHJveHkgYXAgPSBuZXcgTW9ja0FjdGlvblByb3h5KCk7DQorCQlhcC5zZXRBY3Rpb25OYW1lKCJ0ZXN0QWN0aW9uIik7DQorCQlhcC5zZXROYW1lc3BhY2UoIiIpOw0KKwkJYWkuc2V0UHJveHkoYXApOw0KKwkJYWkuc2V0U3RhY2soc3RhY2spOw0KKwkJY3R4LnNldEFjdGlvbkludm9jYXRpb24oYWkpOw0KKwkJDQorCQlVUkwgdXJsID0gbmV3IFVSTChzdGFjaywgbmV3IFBvcnRsZXRTZXJ2bGV0UmVxdWVzdChyZXF1ZXN0LCBudWxsKSwNCisJCQkJbmV3IFBvcnRsZXRTZXJ2bGV0UmVzcG9uc2UocmVzcG9uc2UpKTsNCisJCXVybC5zZXRBY3Rpb24oIiV7c29tZVByb3BlcnR5fSIpOw0KKwkJDQorCQlTdHJpbmdXcml0ZXIgcmVuZGVyT3V0cHV0ID0gbmV3IFN0cmluZ1dyaXRlcigpOw0KKwkJcmVuZGVyZXIucmVuZGVyVXJsKHJlbmRlck91dHB1dCwgdXJsLmdldFVybFByb3ZpZGVyKCkpOw0KKw0KKwkJU3RyaW5nIGFjdGlvbiA9IHJlbmRlclVybA0KKwkJCQkuZ2V0UGFyYW1ldGVyKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuQUNUSU9OX1BBUkFNKTsNCisJCWFzc2VydEVxdWFscygiL3ZpZXcvRXZhbHVhdGVkUHJvcGVydHkiLCBhY3Rpb24pOw0KKwkJDQorCX0NCisJDQorCXB1YmxpYyB2b2lkIHRlc3RTaG91bGRFdmFsdWF0ZUFuY2hvckFzT0dOTEV4cHJlc3Npb24oKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisJCQ0KKwkJVGVzdE9iamVjdCBvYmogPSBuZXcgVGVzdE9iamVjdCgpOw0KKwkJb2JqLnNvbWVQcm9wZXJ0eSA9ICJFdmFsdWF0ZWRQcm9wZXJ0eSI7DQorCQlzdGFjay5wdXNoKG9iaik7DQorCQlNb2NrQWN0aW9uSW52b2NhdGlvbiBhaSA9IG5ldyBNb2NrQWN0aW9uSW52b2NhdGlvbigpOw0KKwkJTW9ja0FjdGlvblByb3h5IGFwID0gbmV3IE1vY2tBY3Rpb25Qcm94eSgpOw0KKwkJYXAuc2V0QWN0aW9uTmFtZSgidGVzdEFjdGlvbiIpOw0KKwkJYXAuc2V0TmFtZXNwYWNlKCIiKTsNCisJCWFpLnNldFByb3h5KGFwKTsNCisJCWFpLnNldFN0YWNrKHN0YWNrKTsNCisJCWN0eC5zZXRBY3Rpb25JbnZvY2F0aW9uKGFpKTsNCisJCQ0KKwkJVVJMIHVybCA9IG5ldyBVUkwoc3RhY2ssIG5ldyBQb3J0bGV0U2VydmxldFJlcXVlc3QocmVxdWVzdCwgbnVsbCksDQorCQkJCW5ldyBQb3J0bGV0U2VydmxldFJlc3BvbnNlKHJlc3BvbnNlKSk7DQorCQl1cmwuc2V0QW5jaG9yKCIle3NvbWVQcm9wZXJ0eX0iKTsNCisJCQ0KKwkJU3RyaW5nV3JpdGVyIHJlbmRlck91dHB1dCA9IG5ldyBTdHJpbmdXcml0ZXIoKTsNCisJCXJlbmRlcmVyLnJlbmRlclVybChyZW5kZXJPdXRwdXQsIHVybC5nZXRVcmxQcm92aWRlcigpKTsNCisJCWFzc2VydFRydWUocmVuZGVyT3V0cHV0LnRvU3RyaW5nKCkuaW5kZXhPZigiI0V2YWx1YXRlZFByb3BlcnR5IikgIT0gLTEpOw0KKwkJDQorCX0NCisJDQorCXB1YmxpYyB2b2lkIHRlc3RTaG91bGRQYXNzVGhyb3VnaFJlbmRlclVybFRvU2VydmxldFVybFJlbmRlcmVySWZOb3RQb3J0bGV0UmVxdWVzdCgpIHRocm93cyBFeGNlcHRpb24gew0KKwkJVXJsUmVuZGVyZXIgbW9ja1JlbmRlcmVyID0gRWFzeU1vY2suY3JlYXRlTW9jayhVcmxSZW5kZXJlci5jbGFzcyk7DQorCQlBY3Rpb25Db250ZXh0LmdldENvbnRleHQoKS5wdXQoU3RydXRzU3RhdGljcy5TVFJVVFNfUE9SVExFVF9DT05URVhULCBudWxsKTsNCisJCXJlbmRlcmVyLnNldFNlcnZsZXRSZW5kZXJlcihtb2NrUmVuZGVyZXIpOw0KKwkJVVJMIHVybCA9IG5ldyBVUkwoc3RhY2ssIG5ldyBQb3J0bGV0U2VydmxldFJlcXVlc3QocmVxdWVzdCwgbnVsbCksIG5ldyBQb3J0bGV0U2VydmxldFJlc3BvbnNlKHJlc3BvbnNlKSk7DQorCQlTdHJpbmdXcml0ZXIgcmVuZGVyT3V0cHV0ID0gbmV3IFN0cmluZ1dyaXRlcigpOw0KKwkJbW9ja1JlbmRlcmVyLnJlbmRlclVybChyZW5kZXJPdXRwdXQsIHVybC5nZXRVcmxQcm92aWRlcigpKTsNCisJCUVhc3lNb2NrLnJlcGxheShtb2NrUmVuZGVyZXIpOw0KKwkJcmVuZGVyZXIucmVuZGVyVXJsKHJlbmRlck91dHB1dCwgdXJsLmdldFVybFByb3ZpZGVyKCkpOw0KKwkJRWFzeU1vY2sudmVyaWZ5KG1vY2tSZW5kZXJlcik7DQorCX0NCisJDQorCXB1YmxpYyB2b2lkIHRlc3RTaG91bGRQYXNzVGhyb3VnaFJlbmRlckZvcm1VcmxUb1NlcnZsZXRVcmxSZW5kZXJlcklmTm90UG9ydGxldFJlcXVlc3QoKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisJCVVybFJlbmRlcmVyIG1vY2tSZW5kZXJlciA9IEVhc3lNb2NrLmNyZWF0ZU1vY2soVXJsUmVuZGVyZXIuY2xhc3MpOw0KKwkJQWN0aW9uQ29udGV4dC5nZXRDb250ZXh0KCkucHV0KFN0cnV0c1N0YXRpY3MuU1RSVVRTX1BPUlRMRVRfQ09OVEVYVCwgbnVsbCk7DQorCQlyZW5kZXJlci5zZXRTZXJ2bGV0UmVuZGVyZXIobW9ja1JlbmRlcmVyKTsNCisJCUZvcm0gZm9ybSA9IG5ldyBGb3JtKHN0YWNrLCBuZXcgUG9ydGxldFNlcnZsZXRSZXF1ZXN0KHJlcXVlc3QsIG51bGwpLCBuZXcgUG9ydGxldFNlcnZsZXRSZXNwb25zZShyZXNwb25zZSkpOw0KKwkJbW9ja1JlbmRlcmVyLnJlbmRlckZvcm1VcmwoZm9ybSk7DQorCQlFYXN5TW9jay5yZXBsYXkobW9ja1JlbmRlcmVyKTsNCisJCXJlbmRlcmVyLnJlbmRlckZvcm1VcmwoZm9ybSk7DQorCQlFYXN5TW9jay52ZXJpZnkobW9ja1JlbmRlcmVyKTsNCisJfQ0KKwkNCisJcHVibGljIHZvaWQgdGVzdFNob3VsZFBhc3NUaHJvdWdoUmVuZGVyVXJsVG9TZXJ2bGV0VXJsUmVuZGVyZXJXaGVuUG9ydGxldFVybFR5cGVJc05vbmUoKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisJCVVybFJlbmRlcmVyIG1vY2tSZW5kZXJlciA9IEVhc3lNb2NrLmNyZWF0ZU1vY2soVXJsUmVuZGVyZXIuY2xhc3MpOw0KKwkJcmVuZGVyZXIuc2V0U2VydmxldFJlbmRlcmVyKG1vY2tSZW5kZXJlcik7DQorCQlVUkwgdXJsID0gbmV3IFVSTChzdGFjaywgbmV3IFBvcnRsZXRTZXJ2bGV0UmVxdWVzdChyZXF1ZXN0LCBudWxsKSwgbmV3IFBvcnRsZXRTZXJ2bGV0UmVzcG9uc2UocmVzcG9uc2UpKTsNCisJCXVybC5zZXRQb3J0bGV0VXJsVHlwZSgibm9uZSIpOw0KKwkJU3RyaW5nV3JpdGVyIHJlbmRlck91dHB1dCA9IG5ldyBTdHJpbmdXcml0ZXIoKTsNCisJCW1vY2tSZW5kZXJlci5yZW5kZXJVcmwocmVuZGVyT3V0cHV0LCB1cmwuZ2V0VXJsUHJvdmlkZXIoKSk7DQorCQlFYXN5TW9jay5yZXBsYXkobW9ja1JlbmRlcmVyKTsNCisJCXJlbmRlcmVyLnJlbmRlclVybChyZW5kZXJPdXRwdXQsIHVybC5nZXRVcmxQcm92aWRlcigpKTsNCisJCUVhc3lNb2NrLnZlcmlmeShtb2NrUmVuZGVyZXIpOw0KKwl9DQorCQ0KKwlwcml2YXRlIGZpbmFsIHN0YXRpYyBjbGFzcyBUZXN0T2JqZWN0IHsNCisJCXB1YmxpYyBTdHJpbmcgc29tZVByb3BlcnR5Ow0KKwl9DQorCQ0KKwkNCit9DQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvUG9ydGxldEFwcGxpY2F0aW9uTWFwVGVzdC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvUG9ydGxldEFwcGxpY2F0aW9uTWFwVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlN2EzMjAKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9Qb3J0bGV0QXBwbGljYXRpb25NYXBUZXN0LmphdmEKQEAgLTAsMCArMSwxNzAgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworCitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0Q29udGV4dDsKKworaW1wb3J0IG9yZy5qbW9jay5Nb2NrOworaW1wb3J0IG9yZy5qbW9jay5Nb2NrT2JqZWN0VGVzdENhc2U7CitpbXBvcnQgb3JnLmptb2NrLmNvcmUuQ29uc3RyYWludDsKKworLyoqCisgKi8KK3B1YmxpYyBjbGFzcyBQb3J0bGV0QXBwbGljYXRpb25NYXBUZXN0IGV4dGVuZHMgTW9ja09iamVjdFRlc3RDYXNlIHsKKworICAgIE1vY2sgbW9ja1BvcnRsZXRDb250ZXh0OworCisgICAgUG9ydGxldENvbnRleHQgcG9ydGxldENvbnRleHQ7CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci5zZXRVcCgpOworICAgICAgICBtb2NrUG9ydGxldENvbnRleHQgPSBtb2NrKFBvcnRsZXRDb250ZXh0LmNsYXNzKTsKKyAgICAgICAgcG9ydGxldENvbnRleHQgPSAoUG9ydGxldENvbnRleHQpIG1vY2tQb3J0bGV0Q29udGV4dC5wcm94eSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRGcm9tQXR0cmlidXRlcygpIHsKKyAgICAgICAgbW9ja1BvcnRsZXRDb250ZXh0LnN0dWJzKCkubWV0aG9kKCJnZXRBdHRyaWJ1dGUiKS53aXRoKGVxKCJkdW1teUtleSIpKQorICAgICAgICAgICAgICAgIC53aWxsKHJldHVyblZhbHVlKCJkdW1teVZhbHVlIikpOworCisgICAgICAgIFBvcnRsZXRBcHBsaWNhdGlvbk1hcCBtYXAgPSBuZXcgUG9ydGxldEFwcGxpY2F0aW9uTWFwKAorICAgICAgICAgICAgICAgIChQb3J0bGV0Q29udGV4dCkgbW9ja1BvcnRsZXRDb250ZXh0LnByb3h5KCkpOworCisgICAgICAgIGFzc2VydEVxdWFscygiZHVtbXlWYWx1ZSIsIG1hcC5nZXQoImR1bW15S2V5IikpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRGcm9tSW5pdFBhcmFtZXRlcnMoKSB7CisgICAgICAgIG1vY2tQb3J0bGV0Q29udGV4dC5zdHVicygpLm1ldGhvZCgiZ2V0QXR0cmlidXRlIikud2l0aChlcSgiZHVtbXlLZXkiKSk7CisgICAgICAgIG1vY2tQb3J0bGV0Q29udGV4dC5zdHVicygpLm1ldGhvZCgiZ2V0SW5pdFBhcmFtZXRlciIpLndpdGgoCisgICAgICAgICAgICAgICAgZXEoImR1bW15S2V5IikpLndpbGwocmV0dXJuVmFsdWUoImR1bW15VmFsdWUiKSk7CisKKyAgICAgICAgUG9ydGxldEFwcGxpY2F0aW9uTWFwIG1hcCA9IG5ldyBQb3J0bGV0QXBwbGljYXRpb25NYXAoCisgICAgICAgICAgICAgICAgKFBvcnRsZXRDb250ZXh0KSBtb2NrUG9ydGxldENvbnRleHQucHJveHkoKSk7CisKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJkdW1teVZhbHVlIiwgbWFwLmdldCgiZHVtbXlLZXkiKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFB1dCgpIHsKKyAgICAgICAgbW9ja1BvcnRsZXRDb250ZXh0LmV4cGVjdHMob25jZSgpKS5tZXRob2QoInNldEF0dHJpYnV0ZSIpLndpdGgoCisgICAgICAgICAgICAgICAgbmV3IENvbnN0cmFpbnRbXSB7IGVxKCJkdW1teUtleSIpLCBlcSgiZHVtbXlWYWx1ZSIpIH0pOworICAgICAgICBtb2NrUG9ydGxldENvbnRleHQuZXhwZWN0cyhvbmNlKCkpLm1ldGhvZCgiZ2V0QXR0cmlidXRlIikud2l0aCgKKyAgICAgICAgICAgICAgICBlcSgiZHVtbXlLZXkiKSkud2lsbChyZXR1cm5WYWx1ZSgiZHVtbXlWYWx1ZSIpKTsKKyAgICAgICAgUG9ydGxldEFwcGxpY2F0aW9uTWFwIG1hcCA9IG5ldyBQb3J0bGV0QXBwbGljYXRpb25NYXAocG9ydGxldENvbnRleHQpOworICAgICAgICBPYmplY3QgdmFsID0gbWFwLnB1dCgiZHVtbXlLZXkiLCAiZHVtbXlWYWx1ZSIpOworICAgICAgICBhc3NlcnRFcXVhbHMoImR1bW15VmFsdWUiLCB2YWwpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RSZW1vdmUoKSB7CisgICAgICAgIG1vY2tQb3J0bGV0Q29udGV4dC5leHBlY3RzKG9uY2UoKSkubWV0aG9kKCJnZXRBdHRyaWJ1dGUiKS53aXRoKAorICAgICAgICAgICAgICAgIGVxKCJkdW1teUtleSIpKS53aWxsKHJldHVyblZhbHVlKCJkdW1teVZhbHVlIikpOworICAgICAgICBtb2NrUG9ydGxldENvbnRleHQuZXhwZWN0cyhvbmNlKCkpLm1ldGhvZCgicmVtb3ZlQXR0cmlidXRlIikud2l0aCgKKyAgICAgICAgICAgICAgICBlcSgiZHVtbXlLZXkiKSk7CisgICAgICAgIFBvcnRsZXRBcHBsaWNhdGlvbk1hcCBtYXAgPSBuZXcgUG9ydGxldEFwcGxpY2F0aW9uTWFwKHBvcnRsZXRDb250ZXh0KTsKKyAgICAgICAgT2JqZWN0IHZhbCA9IG1hcC5yZW1vdmUoImR1bW15S2V5Iik7CisgICAgICAgIGFzc2VydEVxdWFscygiZHVtbXlWYWx1ZSIsIHZhbCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEVudHJ5U2V0KCkgeworCisgICAgICAgIEVudW1lcmF0aW9uIG5hbWVzID0gbmV3IEVudW1lcmF0aW9uKCkgeworCisgICAgICAgICAgICBMaXN0IGtleXMgPSBBcnJheXMuYXNMaXN0KG5ldyBPYmplY3RbXSB7ICJrZXkxIiwgImtleTIiIH0pOworCisgICAgICAgICAgICBJdGVyYXRvciBpdCA9IGtleXMuaXRlcmF0b3IoKTsKKworICAgICAgICAgICAgcHVibGljIGJvb2xlYW4gaGFzTW9yZUVsZW1lbnRzKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpdC5oYXNOZXh0KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyBPYmplY3QgbmV4dEVsZW1lbnQoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGl0Lm5leHQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9OworICAgICAgICBFbnVtZXJhdGlvbiBpbml0UGFyYW1OYW1lcyA9IG5ldyBFbnVtZXJhdGlvbigpIHsKKworICAgICAgICAgICAgTGlzdCBrZXlzID0gQXJyYXlzLmFzTGlzdChuZXcgT2JqZWN0W10geyAia2V5MyIgfSk7CisKKyAgICAgICAgICAgIEl0ZXJhdG9yIGl0ID0ga2V5cy5pdGVyYXRvcigpOworCisgICAgICAgICAgICBwdWJsaWMgYm9vbGVhbiBoYXNNb3JlRWxlbWVudHMoKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGl0Lmhhc05leHQoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIE9iamVjdCBuZXh0RWxlbWVudCgpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gaXQubmV4dCgpOworICAgICAgICAgICAgfQorCisgICAgICAgIH07CisKKyAgICAgICAgbW9ja1BvcnRsZXRDb250ZXh0LnN0dWJzKCkubWV0aG9kKCJnZXRBdHRyaWJ1dGVOYW1lcyIpLndpbGwoCisgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUobmFtZXMpKTsKKyAgICAgICAgbW9ja1BvcnRsZXRDb250ZXh0LnN0dWJzKCkubWV0aG9kKCJnZXRJbml0UGFyYW1ldGVyTmFtZXMiKS53aWxsKAorICAgICAgICAgICAgICAgIHJldHVyblZhbHVlKGluaXRQYXJhbU5hbWVzKSk7CisgICAgICAgIG1vY2tQb3J0bGV0Q29udGV4dC5zdHVicygpLm1ldGhvZCgiZ2V0QXR0cmlidXRlIikud2l0aChlcSgia2V5MSIpKQorICAgICAgICAgICAgICAgIC53aWxsKHJldHVyblZhbHVlKCJ2YWx1ZTEiKSk7CisgICAgICAgIG1vY2tQb3J0bGV0Q29udGV4dC5zdHVicygpLm1ldGhvZCgiZ2V0QXR0cmlidXRlIikud2l0aChlcSgia2V5MiIpKQorICAgICAgICAgICAgICAgIC53aWxsKHJldHVyblZhbHVlKCJ2YWx1ZTIiKSk7CisgICAgICAgIG1vY2tQb3J0bGV0Q29udGV4dC5zdHVicygpLm1ldGhvZCgiZ2V0SW5pdFBhcmFtZXRlciIpLndpdGgoZXEoImtleTMiKSkKKyAgICAgICAgICAgICAgICAud2lsbChyZXR1cm5WYWx1ZSgidmFsdWUzIikpOworCisgICAgICAgIFBvcnRsZXRBcHBsaWNhdGlvbk1hcCBtYXAgPSBuZXcgUG9ydGxldEFwcGxpY2F0aW9uTWFwKHBvcnRsZXRDb250ZXh0KTsKKyAgICAgICAgU2V0IGVudHJpZXMgPSBtYXAuZW50cnlTZXQoKTsKKworICAgICAgICBhc3NlcnRFcXVhbHMoMywgZW50cmllcy5zaXplKCkpOworICAgICAgICBJdGVyYXRvciBpdCA9IGVudHJpZXMuaXRlcmF0b3IoKTsKKyAgICAgICAgTWFwLkVudHJ5IGVudHJ5ID0gKE1hcC5FbnRyeSkgaXQubmV4dCgpOworICAgICAgICBhc3NlcnRFcXVhbHMoImtleTIiLCBlbnRyeS5nZXRLZXkoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygidmFsdWUyIiwgZW50cnkuZ2V0VmFsdWUoKSk7CisgICAgICAgIGVudHJ5ID0gKE1hcC5FbnRyeSkgaXQubmV4dCgpOworICAgICAgICBhc3NlcnRFcXVhbHMoImtleTEiLCBlbnRyeS5nZXRLZXkoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygidmFsdWUxIiwgZW50cnkuZ2V0VmFsdWUoKSk7CisgICAgICAgIGVudHJ5ID0gKE1hcC5FbnRyeSkgaXQubmV4dCgpOworICAgICAgICBhc3NlcnRFcXVhbHMoImtleTMiLCBlbnRyeS5nZXRLZXkoKSk7CisgICAgICAgIGFzc2VydEVxdWFscygidmFsdWUzIiwgZW50cnkuZ2V0VmFsdWUoKSk7CisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q2xlYXIoKSB7CisKKyAgICAgICAgbW9ja1BvcnRsZXRDb250ZXh0LmV4cGVjdHMob25jZSgpKS5tZXRob2QoInJlbW92ZUF0dHJpYnV0ZSIpLndpdGgoZXEoImtleTEiKSk7CisgICAgICAgIG1vY2tQb3J0bGV0Q29udGV4dC5leHBlY3RzKG9uY2UoKSkubWV0aG9kKCJyZW1vdmVBdHRyaWJ1dGUiKS53aXRoKGVxKCJrZXkyIikpOworCisgICAgICAgIEFycmF5TGlzdCBkdW1teSA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgZHVtbXkuYWRkKCJrZXkxIik7CisgICAgICAgIGR1bW15LmFkZCgia2V5MiIpOworCisgICAgICAgIG1vY2tQb3J0bGV0Q29udGV4dC5leHBlY3RzKG9uY2UoKSkubWV0aG9kKCJnZXRBdHRyaWJ1dGVOYW1lcyIpLndpbGwoCisgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUoQ29sbGVjdGlvbnMuZW51bWVyYXRpb24oZHVtbXkpKSk7CisKKyAgICAgICAgUG9ydGxldEFwcGxpY2F0aW9uTWFwIG1hcCA9IG5ldyBQb3J0bGV0QXBwbGljYXRpb25NYXAocG9ydGxldENvbnRleHQpOworICAgICAgICBtYXAuY2xlYXIoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9Qb3J0bGV0UmVxdWVzdE1hcFRlc3QuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L1BvcnRsZXRSZXF1ZXN0TWFwVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNzI1NDMKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9Qb3J0bGV0UmVxdWVzdE1hcFRlc3QuamF2YQpAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldDsKKworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRSZXF1ZXN0OworCitpbXBvcnQgb3JnLmptb2NrLk1vY2tPYmplY3RUZXN0Q2FzZTsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLm1vY2sud2ViLnBvcnRsZXQuTW9ja1BvcnRsZXRSZXF1ZXN0OworCisKKy8qKgorICogUG9ydGxldFJlcXVlc3RNYXBUZXN0LiBJbnNlcnQgZGVzY3JpcHRpb24uCisgKgorICovCitwdWJsaWMgY2xhc3MgUG9ydGxldFJlcXVlc3RNYXBUZXN0IGV4dGVuZHMgTW9ja09iamVjdFRlc3RDYXNlIHsKKworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXQoKSB7CisgICAgCVBvcnRsZXRSZXF1ZXN0IHJlcXVlc3QgPSBuZXcgTW9ja1BvcnRsZXRSZXF1ZXN0KCk7CisgICAgCXJlcXVlc3Quc2V0QXR0cmlidXRlKCJ0ZXN0QXR0cmlidXRlIiwgInRlc3RWYWx1ZSIpOworCisgICAgCVBvcnRsZXRSZXF1ZXN0TWFwIG1hcCA9IG5ldyBQb3J0bGV0UmVxdWVzdE1hcChyZXF1ZXN0KTsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0gKFN0cmluZyltYXAuZ2V0KCJ0ZXN0QXR0cmlidXRlIik7CisgICAgICAgIGFzc2VydEVxdWFscygidGVzdFZhbHVlIiwgdmFsdWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RQdXQoKSB7CisgICAgCVBvcnRsZXRSZXF1ZXN0IHJlcXVlc3QgPSBuZXcgTW9ja1BvcnRsZXRSZXF1ZXN0KCk7CisgICAgCVBvcnRsZXRSZXF1ZXN0TWFwIG1hcCA9IG5ldyBQb3J0bGV0UmVxdWVzdE1hcChyZXF1ZXN0KTsKKyAgICAgICAgT2JqZWN0IG9iaiA9IG1hcC5wdXQoInRlc3RBdHRyaWJ1dGUiLCAidGVzdFZhbHVlMSIpOworICAgICAgICAKKyAgICAgICAgYXNzZXJ0RXF1YWxzKG9iaiwgInRlc3RWYWx1ZTEiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJ0ZXN0VmFsdWUxIiwgcmVxdWVzdC5nZXRBdHRyaWJ1dGUoInRlc3RBdHRyaWJ1dGUiKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdENsZWFyKCkgeworICAgIAlNb2NrUG9ydGxldFJlcXVlc3QgcmVxdWVzdCA9IG5ldyBNb2NrUG9ydGxldFJlcXVlc3QoKTsKKyAgICAJcmVxdWVzdC5zZXRBdHRyaWJ1dGUoInRlc3RBdHRyaWJ1dGUxIiwgInRlc3RWYWx1ZTEiKTsKKyAgICAJcmVxdWVzdC5zZXRBdHRyaWJ1dGUoInRlc3RBdHRyaWJ1dGUyIiwgInRlc3RWYWx1ZTIiKTsKKworCisgICAgICAgIFBvcnRsZXRSZXF1ZXN0TWFwIG1hcCA9IG5ldyBQb3J0bGV0UmVxdWVzdE1hcChyZXF1ZXN0KTsKKyAgICAgICAgbWFwLmNsZWFyKCk7CisKKyAgICAgICAgYXNzZXJ0RmFsc2UocmVxdWVzdC5nZXRBdHRyaWJ1dGVOYW1lcygpLmhhc01vcmVFbGVtZW50cygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0UmVtb3ZlKCkgeworICAgICAgICBNb2NrUG9ydGxldFJlcXVlc3QgcmVxdWVzdCA9IG5ldyBNb2NrUG9ydGxldFJlcXVlc3QoKTsKKyAgICAgICAgcmVxdWVzdC5zZXRBdHRyaWJ1dGUoInRlc3RBdHRyaWJ1dGUxIiwgInRlc3RWYWx1ZTEiKTsKKyAgICAgICAgCisgICAgICAgIFBvcnRsZXRSZXF1ZXN0TWFwIG1hcCA9IG5ldyBQb3J0bGV0UmVxdWVzdE1hcChyZXF1ZXN0KTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJ0ZXN0VmFsdWUxIiwgbWFwLnJlbW92ZSgidGVzdEF0dHJpYnV0ZTEiKSk7CisgICAgICAgIGFzc2VydE51bGwocmVxdWVzdC5nZXRBdHRyaWJ1dGUoInRlc3RBdHRyaWJ1dGUxIikpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RFbnRyeVNldCgpIHsKKyAgICAJTW9ja1BvcnRsZXRSZXF1ZXN0IHJlcXVlc3QgPSBuZXcgTW9ja1BvcnRsZXRSZXF1ZXN0KCk7CisgICAgCXJlcXVlc3Quc2V0QXR0cmlidXRlKCJ0ZXN0QXR0cmlidXRlMSIsICJ0ZXN0VmFsdWUxIik7CisgICAgCXJlcXVlc3Quc2V0QXR0cmlidXRlKCJ0ZXN0QXR0cmlidXRlMiIsICJ0ZXN0VmFsdWUyIik7CisKKyAgICAgICAgUG9ydGxldFJlcXVlc3RNYXAgbWFwID0gbmV3IFBvcnRsZXRSZXF1ZXN0TWFwKHJlcXVlc3QpOworICAgICAgICBTZXQgZW50cmllcyA9IG1hcC5lbnRyeVNldCgpOworCisgICAgICAgIGFzc2VydEVxdWFscygyLCBlbnRyaWVzLnNpemUoKSk7CisgICAgICAgIEl0ZXJhdG9yIGl0ID0gZW50cmllcy5pdGVyYXRvcigpOworICAgICAgICBNYXAuRW50cnkgZW50cnkgPSAoTWFwLkVudHJ5KWl0Lm5leHQoKTsKKyAgICAgICAgY2hlY2tFbnRyeShlbnRyeSk7CisgICAgICAgIGVudHJ5ID0gKE1hcC5FbnRyeSlpdC5uZXh0KCk7CisgICAgICAgIGNoZWNrRW50cnkoZW50cnkpOworCisgICAgfQorICAgIAorCXByaXZhdGUgdm9pZCBjaGVja0VudHJ5KE1hcC5FbnRyeSBlbnRyeSkgeworCQlpZihlbnRyeS5nZXRLZXkoKS5lcXVhbHMoInRlc3RBdHRyaWJ1dGUxIikpIHsKKyAgICAgICAgCWFzc2VydEVxdWFscygidGVzdFZhbHVlMSIsIGVudHJ5LmdldFZhbHVlKCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYoZW50cnkuZ2V0S2V5KCkuZXF1YWxzKCJ0ZXN0QXR0cmlidXRlMiIpKSB7CisgICAgICAgIAlhc3NlcnRFcXVhbHMoInRlc3RWYWx1ZTIiLCBlbnRyeS5nZXRWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgCWZhaWwoIlVuZXhwZWN0ZWQgZW50cnkgaW4gZXRyeSBzZXQ6ICIgKyBlbnRyeSk7CisgICAgICAgIH0KKwl9CisKK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L1BvcnRsZXRTZXNzaW9uTWFwVGVzdC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvUG9ydGxldFNlc3Npb25NYXBUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM4ODI1NgotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L1BvcnRsZXRTZXNzaW9uTWFwVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0OworCitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldFNlc3Npb247CisKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CisKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLm1vY2sud2ViLnBvcnRsZXQuTW9ja1BvcnRsZXRSZXF1ZXN0OworCisKKy8qKgorICogUG9ydGxldFNlc3Npb25NYXBUZXN0LiBJbnNlcnQgZGVzY3JpcHRpb24uCisgKgorICovCitwdWJsaWMgY2xhc3MgUG9ydGxldFNlc3Npb25NYXBUZXN0IGV4dGVuZHMgVGVzdENhc2UgeworCisgICAgcHVibGljIHZvaWQgdGVzdFB1dCgpIHsKKworICAgIAlNb2NrUG9ydGxldFJlcXVlc3QgcmVxdWVzdCA9IG5ldyBNb2NrUG9ydGxldFJlcXVlc3QoKTsKKworICAgICAgICBQb3J0bGV0U2Vzc2lvbk1hcCBtYXAgPSBuZXcgUG9ydGxldFNlc3Npb25NYXAocmVxdWVzdCk7CisgICAgICAgIGFzc2VydEVxdWFscygidGVzdFZhbHVlMSIsIG1hcC5wdXQoInRlc3RBdHRyaWJ1dGUxIiwgInRlc3RWYWx1ZTEiKSk7CisgICAgICAgIGFzc2VydEVxdWFscygidGVzdFZhbHVlMiIsIG1hcC5wdXQoInRlc3RBdHRyaWJ1dGUyIiwgInRlc3RWYWx1ZTIiKSk7CisKKyAgICAgICAgUG9ydGxldFNlc3Npb24gc2Vzc2lvbiA9IHJlcXVlc3QuZ2V0UG9ydGxldFNlc3Npb24oKTsKKyAgICAgICAgLy8gQXNzZXJ0IHRoYXQgdGhlIHZhbHVlcyBoYXMgYmVlbiBwcm9wYWdhdGVkIHRvIHRoZSBzZXNzaW9uCisgICAgICAgIGFzc2VydEVxdWFscygidGVzdFZhbHVlMSIsIHNlc3Npb24uZ2V0QXR0cmlidXRlKCJ0ZXN0QXR0cmlidXRlMSIpKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJ0ZXN0VmFsdWUyIiwgc2Vzc2lvbi5nZXRBdHRyaWJ1dGUoInRlc3RBdHRyaWJ1dGUyIikpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXQoKSB7CisgICAgCU1vY2tQb3J0bGV0UmVxdWVzdCByZXF1ZXN0ID0gbmV3IE1vY2tQb3J0bGV0UmVxdWVzdCgpOworICAgIAlQb3J0bGV0U2Vzc2lvbiBzZXNzaW9uID0gcmVxdWVzdC5nZXRQb3J0bGV0U2Vzc2lvbigpOworICAgIAlzZXNzaW9uLnNldEF0dHJpYnV0ZSgidGVzdEF0dHJpYnV0ZTEiLCAidGVzdFZhbHVlMSIpOworICAgIAlzZXNzaW9uLnNldEF0dHJpYnV0ZSgidGVzdEF0dHJpYnV0ZTIiLCAidGVzdFZhbHVlMiIpOworICAgICAgICBQb3J0bGV0U2Vzc2lvbk1hcCBtYXAgPSBuZXcgUG9ydGxldFNlc3Npb25NYXAocmVxdWVzdCk7CisgICAgICAgIE9iamVjdCB2YWwxID0gbWFwLmdldCgidGVzdEF0dHJpYnV0ZTEiKTsKKyAgICAgICAgT2JqZWN0IHZhbDIgPSBtYXAuZ2V0KCJ0ZXN0QXR0cmlidXRlMiIpOworICAgICAgICAvLyBBc3NlcnQgdGhhdCB0aGUgdmFsdWVzIGZyb20gdGhlIHNlc3Npb24gaXMgaW4gdGhlIG1hcAorICAgICAgICBhc3NlcnRFcXVhbHMoInRlc3RWYWx1ZTEiLCB2YWwxKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJ0ZXN0VmFsdWUyIiwgdmFsMik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdENsZWFyKCkgeworICAgICAgICBNb2NrUG9ydGxldFJlcXVlc3QgcmVxID0gbmV3IE1vY2tQb3J0bGV0UmVxdWVzdCgpOworICAgICAgICBQb3J0bGV0U2Vzc2lvbiBzZXNzaW9uID0gcmVxLmdldFBvcnRsZXRTZXNzaW9uKCk7CisgICAgCXNlc3Npb24uc2V0QXR0cmlidXRlKCJ0ZXN0QXR0cmlidXRlMSIsICJ0ZXN0VmFsdWUxIik7CisgICAgCXNlc3Npb24uc2V0QXR0cmlidXRlKCJ0ZXN0QXR0cmlidXRlMiIsICJ0ZXN0VmFsdWUyIik7CisgICAgICAgIAorICAgICAgICBQb3J0bGV0U2Vzc2lvbk1hcCBtYXAgPSBuZXcgUG9ydGxldFNlc3Npb25NYXAocmVxKTsKKyAgICAgICAgbWFwLmNsZWFyKCk7CisgICAgICAgIAorICAgICAgICAvLyBBc3NlcnQgdGhhdCB0aGVyZSBhcmUgbm8gZWxlbWVudHMgaW4gdGhlIHBvcnRsZXQgc2Vzc2lvbgorICAgICAgICBhc3NlcnRGYWxzZShyZXEuZ2V0UG9ydGxldFNlc3Npb24oKS5nZXRBdHRyaWJ1dGVOYW1lcygpLmhhc01vcmVFbGVtZW50cygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0UmVtb3ZlKCkgeworICAgIAlNb2NrUG9ydGxldFJlcXVlc3QgcmVxdWVzdCA9IG5ldyBNb2NrUG9ydGxldFJlcXVlc3QoKTsKKyAgICAJUG9ydGxldFNlc3Npb24gc2Vzc2lvbiA9IHJlcXVlc3QuZ2V0UG9ydGxldFNlc3Npb24oKTsKKyAgICAJc2Vzc2lvbi5zZXRBdHRyaWJ1dGUoInRlc3RBdHRyaWJ1dGUxIiwgInRlc3RWYWx1ZTEiKTsKKworICAgICAgICBQb3J0bGV0U2Vzc2lvbk1hcCBtYXAgPSBuZXcgUG9ydGxldFNlc3Npb25NYXAocmVxdWVzdCk7CisgICAgICAgIE9iamVjdCByZXQgPSBtYXAucmVtb3ZlKCJ0ZXN0QXR0cmlidXRlMSIpOworICAgICAgICAvLyBBc3NlcnQgdGhhdCB0aGUgZWxlbWVudCB0aGF0IHdhcyByZW1vdmVkIHdhcyByZXR1cm5lZCBhbmQgdGhlIGtleSBpcyBubyBsb25nZXIgaW4gdGhlCisgICAgICAgIC8vIHBvcnRsZXQgc2Vzc2lvbgorICAgICAgICBhc3NlcnRFcXVhbHMoInRlc3RWYWx1ZTEiLCByZXQpOworICAgICAgICBhc3NlcnROdWxsKHNlc3Npb24uZ2V0QXR0cmlidXRlKCJ0ZXN0QXR0cmlidXRlMSIpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RW50cnlTZXQoKSB7CisgICAgCU1vY2tQb3J0bGV0UmVxdWVzdCByZXF1ZXN0ID0gbmV3IE1vY2tQb3J0bGV0UmVxdWVzdCgpOworICAgIAlQb3J0bGV0U2Vzc2lvbiBzZXNzaW9uID0gcmVxdWVzdC5nZXRQb3J0bGV0U2Vzc2lvbigpOworICAgIAlzZXNzaW9uLnNldEF0dHJpYnV0ZSgidGVzdEF0dHJpYnV0ZTEiLCAidGVzdFZhbHVlMSIpOworICAgIAlzZXNzaW9uLnNldEF0dHJpYnV0ZSgidGVzdEF0dHJpYnV0ZTIiLCAidGVzdFZhbHVlMiIpOworCisgICAgICAgIFBvcnRsZXRTZXNzaW9uTWFwIG1hcCA9IG5ldyBQb3J0bGV0U2Vzc2lvbk1hcChyZXF1ZXN0KTsKKyAgICAgICAgU2V0IGVudHJpZXMgPSBtYXAuZW50cnlTZXQoKTsKKworICAgICAgICBhc3NlcnRFcXVhbHMoMiwgZW50cmllcy5zaXplKCkpOworICAgICAgICBJdGVyYXRvciBpdCA9IGVudHJpZXMuaXRlcmF0b3IoKTsKKyAgICAgICAgTWFwLkVudHJ5IGVudHJ5ID0gKE1hcC5FbnRyeSlpdC5uZXh0KCk7CisgICAgICAgIGNoZWNrRW50cnkoZW50cnkpOworICAgICAgICBlbnRyeSA9IChNYXAuRW50cnkpaXQubmV4dCgpOworICAgICAgICBjaGVja0VudHJ5KGVudHJ5KTsKKworICAgIH0KKworCXByaXZhdGUgdm9pZCBjaGVja0VudHJ5KE1hcC5FbnRyeSBlbnRyeSkgeworCQlpZihlbnRyeS5nZXRLZXkoKS5lcXVhbHMoInRlc3RBdHRyaWJ1dGUxIikpIHsKKyAgICAgICAgCWFzc2VydEVxdWFscygidGVzdFZhbHVlMSIsIGVudHJ5LmdldFZhbHVlKCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYoZW50cnkuZ2V0S2V5KCkuZXF1YWxzKCJ0ZXN0QXR0cmlidXRlMiIpKSB7CisgICAgICAgIAlhc3NlcnRFcXVhbHMoInRlc3RWYWx1ZTIiLCBlbnRyeS5nZXRWYWx1ZSgpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgCWZhaWwoIlVuZXhwZWN0ZWQgZW50cnkgaW4gZXRyeSBzZXQ6ICIgKyBlbnRyeSk7CisgICAgICAgIH0KKwl9CisKKworfQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvY29udGV4dC9Qb3J0bGV0QWN0aW9uQ29udGV4dFRlc3QuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2NvbnRleHQvUG9ydGxldEFjdGlvbkNvbnRleHRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjVjOTU1MwotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2NvbnRleHQvUG9ydGxldEFjdGlvbkNvbnRleHRUZXN0LmphdmEKQEAgLTAsMCArMSwxODQgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuY29udGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK2ltcG9ydCBqYXZheC5wb3J0bGV0LkFjdGlvblJlcXVlc3Q7CitpbXBvcnQgamF2YXgucG9ydGxldC5BY3Rpb25SZXNwb25zZTsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRDb25maWc7CitpbXBvcnQgamF2YXgucG9ydGxldC5SZW5kZXJSZXF1ZXN0OworaW1wb3J0IGphdmF4LnBvcnRsZXQuUmVuZGVyUmVzcG9uc2U7CisKK2ltcG9ydCBqdW5pdC50ZXh0dWkuVGVzdFJ1bm5lcjsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5kaXNwYXRjaGVyLm1hcHBlci5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LlBvcnRsZXRBY3Rpb25Db25zdGFudHM7CitpbXBvcnQgb3JnLmptb2NrLk1vY2s7CitpbXBvcnQgb3JnLmptb2NrLk1vY2tPYmplY3RUZXN0Q2FzZTsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbkNvbnRleHQ7CisKKy8qKgorICovCitwdWJsaWMgY2xhc3MgUG9ydGxldEFjdGlvbkNvbnRleHRUZXN0IGV4dGVuZHMgTW9ja09iamVjdFRlc3RDYXNlIHsKKworICAgIE1vY2sgbW9ja1JlbmRlclJlcXVlc3Q7CisgICAgTW9jayBtb2NrUmVuZGVyUmVzcG9uc2U7CisgICAgTW9jayBtb2NrUG9ydGxldENvbmZpZzsKKyAgICBNb2NrIG1vY2tBY3Rpb25SZXF1ZXN0OworICAgIE1vY2sgbW9ja0FjdGlvblJlc3BvbnNlOworCisgICAgUmVuZGVyUmVxdWVzdCByZW5kZXJSZXF1ZXN0OworICAgIFJlbmRlclJlc3BvbnNlIHJlbmRlclJlc3BvbnNlOworCisgICAgQWN0aW9uUmVxdWVzdCBhY3Rpb25SZXF1ZXN0OworICAgIEFjdGlvblJlc3BvbnNlIGFjdGlvblJlc3BvbnNlOworCisgICAgUG9ydGxldENvbmZpZyBwb3J0bGV0Q29uZmlnOworCisgICAgTWFwIGNvbnRleHQgPSBuZXcgSGFzaE1hcCgpOworCisgICAgcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgc3VwZXIuc2V0VXAoKTsKKyAgICAgICAgbW9ja1JlbmRlclJlcXVlc3QgPSBtb2NrKFJlbmRlclJlcXVlc3QuY2xhc3MpOworICAgICAgICBtb2NrUmVuZGVyUmVzcG9uc2UgPSBtb2NrKFJlbmRlclJlc3BvbnNlLmNsYXNzKTsKKyAgICAgICAgbW9ja0FjdGlvblJlcXVlc3QgPSBtb2NrKEFjdGlvblJlcXVlc3QuY2xhc3MpOworICAgICAgICBtb2NrQWN0aW9uUmVzcG9uc2UgPSBtb2NrKEFjdGlvblJlc3BvbnNlLmNsYXNzKTsKKyAgICAgICAgbW9ja1BvcnRsZXRDb25maWcgPSBtb2NrKFBvcnRsZXRDb25maWcuY2xhc3MpOworCisgICAgICAgIHJlbmRlclJlcXVlc3QgPSAoUmVuZGVyUmVxdWVzdCltb2NrUmVuZGVyUmVxdWVzdC5wcm94eSgpOworICAgICAgICByZW5kZXJSZXNwb25zZSA9IChSZW5kZXJSZXNwb25zZSltb2NrUmVuZGVyUmVzcG9uc2UucHJveHkoKTsKKyAgICAgICAgYWN0aW9uUmVxdWVzdCA9IChBY3Rpb25SZXF1ZXN0KW1vY2tBY3Rpb25SZXF1ZXN0LnByb3h5KCk7CisgICAgICAgIGFjdGlvblJlc3BvbnNlID0gKEFjdGlvblJlc3BvbnNlKW1vY2tBY3Rpb25SZXNwb25zZS5wcm94eSgpOworICAgICAgICBwb3J0bGV0Q29uZmlnID0gKFBvcnRsZXRDb25maWcpbW9ja1BvcnRsZXRDb25maWcucHJveHkoKTsKKworCisgICAgICAgIEFjdGlvbkNvbnRleHQuc2V0Q29udGV4dChuZXcgQWN0aW9uQ29udGV4dChjb250ZXh0KSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEdldFBoYXNlKCkgeworICAgICAgICBjb250ZXh0LnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlBIQVNFLCBQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlJFTkRFUl9QSEFTRSk7CisKKyAgICAgICAgYXNzZXJ0RXF1YWxzKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVOREVSX1BIQVNFLCBQb3J0bGV0QWN0aW9uQ29udGV4dC5nZXRQaGFzZSgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0SXNSZW5kZXIoKSB7CisgICAgICAgIGNvbnRleHQucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUEhBU0UsIFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVOREVSX1BIQVNFKTsKKworICAgICAgICBhc3NlcnRUcnVlKFBvcnRsZXRBY3Rpb25Db250ZXh0LmlzUmVuZGVyKCkpOworICAgICAgICBhc3NlcnRGYWxzZShQb3J0bGV0QWN0aW9uQ29udGV4dC5pc0V2ZW50KCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RJc0V2ZW50KCkgeworICAgICAgICBjb250ZXh0LnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlBIQVNFLCBQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLkVWRU5UX1BIQVNFKTsKKworICAgICAgICBhc3NlcnRUcnVlKFBvcnRsZXRBY3Rpb25Db250ZXh0LmlzRXZlbnQoKSk7CisgICAgICAgIGFzc2VydEZhbHNlKFBvcnRsZXRBY3Rpb25Db250ZXh0LmlzUmVuZGVyKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRQb3J0bGV0Q29uZmlnKCkgeworICAgICAgICBjb250ZXh0LnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlBPUlRMRVRfQ09ORklHLCBwb3J0bGV0Q29uZmlnKTsKKyAgICAgICAgYXNzZXJ0U2FtZShwb3J0bGV0Q29uZmlnLCBQb3J0bGV0QWN0aW9uQ29udGV4dC5nZXRQb3J0bGV0Q29uZmlnKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRSZW5kZXJSZXF1ZXN0QW5kUmVzcG9uc2UoKSB7CisgICAgICAgIGNvbnRleHQucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVRVUVTVCwgcmVuZGVyUmVxdWVzdCk7CisgICAgICAgIGNvbnRleHQucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVTUE9OU0UsIHJlbmRlclJlc3BvbnNlKTsKKyAgICAgICAgY29udGV4dC5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5QSEFTRSwgUG9ydGxldEFjdGlvbkNvbnN0YW50cy5SRU5ERVJfUEhBU0UpOworICAgICAgICBhc3NlcnRTYW1lKHJlbmRlclJlcXVlc3QsIFBvcnRsZXRBY3Rpb25Db250ZXh0LmdldFJlbmRlclJlcXVlc3QoKSk7CisgICAgICAgIGFzc2VydFNhbWUocmVuZGVyUmVzcG9uc2UsIFBvcnRsZXRBY3Rpb25Db250ZXh0LmdldFJlbmRlclJlc3BvbnNlKCkpOworICAgICAgICBhc3NlcnRTYW1lKHJlbmRlclJlcXVlc3QsIFBvcnRsZXRBY3Rpb25Db250ZXh0LmdldFJlcXVlc3QoKSk7CisgICAgICAgIGFzc2VydFNhbWUocmVuZGVyUmVzcG9uc2UsIFBvcnRsZXRBY3Rpb25Db250ZXh0LmdldFJlc3BvbnNlKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRSZW5kZXJSZXF1ZXN0QW5kUmVzcG9uc2VJbkV2ZW50UGhhc2UoKSB7CisgICAgICAgIGNvbnRleHQucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVRVUVTVCwgcmVuZGVyUmVxdWVzdCk7CisgICAgICAgIGNvbnRleHQucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVTUE9OU0UsIHJlbmRlclJlc3BvbnNlKTsKKyAgICAgICAgY29udGV4dC5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5QSEFTRSwgUG9ydGxldEFjdGlvbkNvbnN0YW50cy5FVkVOVF9QSEFTRSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBQb3J0bGV0QWN0aW9uQ29udGV4dC5nZXRSZW5kZXJSZXF1ZXN0KCk7CisgICAgICAgICAgICBmYWlsKCJTaG91bGQgdGhyb3cgSWxsZWdhbFN0YXRlRXhjZXB0aW9uISIpOworICAgICAgICB9CisgICAgICAgIGNhdGNoKElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBhc3NlcnRUcnVlKHRydWUpOworICAgICAgICB9CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBQb3J0bGV0QWN0aW9uQ29udGV4dC5nZXRSZW5kZXJSZXNwb25zZSgpOworICAgICAgICAgICAgZmFpbCgiU2hvdWxkIHRocm93IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJbGxlZ2FsU3RhdGVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgYXNzZXJ0VHJ1ZSh0cnVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRBY3Rpb25SZXF1ZXN0QW5kUmVzcG9uc2UoKSB7CisgICAgICAgIGNvbnRleHQucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVRVUVTVCwgYWN0aW9uUmVxdWVzdCk7CisgICAgICAgIGNvbnRleHQucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVTUE9OU0UsIGFjdGlvblJlc3BvbnNlKTsKKyAgICAgICAgY29udGV4dC5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5QSEFTRSwgUG9ydGxldEFjdGlvbkNvbnN0YW50cy5FVkVOVF9QSEFTRSk7CisgICAgICAgIGFzc2VydFNhbWUoYWN0aW9uUmVxdWVzdCwgUG9ydGxldEFjdGlvbkNvbnRleHQuZ2V0QWN0aW9uUmVxdWVzdCgpKTsKKyAgICAgICAgYXNzZXJ0U2FtZShhY3Rpb25SZXNwb25zZSwgUG9ydGxldEFjdGlvbkNvbnRleHQuZ2V0QWN0aW9uUmVzcG9uc2UoKSk7CisgICAgICAgIGFzc2VydFNhbWUoYWN0aW9uUmVxdWVzdCwgUG9ydGxldEFjdGlvbkNvbnRleHQuZ2V0UmVxdWVzdCgpKTsKKyAgICAgICAgYXNzZXJ0U2FtZShhY3Rpb25SZXNwb25zZSwgUG9ydGxldEFjdGlvbkNvbnRleHQuZ2V0UmVzcG9uc2UoKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEdldEFjdGlvblJlcXVlc3RBbmRSZXNwb25zZUluUmVuZGVyUGhhc2UoKSB7CisgICAgICAgIGNvbnRleHQucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVRVUVTVCwgYWN0aW9uUmVxdWVzdCk7CisgICAgICAgIGNvbnRleHQucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVTUE9OU0UsIGFjdGlvblJlc3BvbnNlKTsKKyAgICAgICAgY29udGV4dC5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5QSEFTRSwgUG9ydGxldEFjdGlvbkNvbnN0YW50cy5SRU5ERVJfUEhBU0UpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgUG9ydGxldEFjdGlvbkNvbnRleHQuZ2V0QWN0aW9uUmVxdWVzdCgpOworICAgICAgICAgICAgZmFpbCgiU2hvdWxkIHRocm93IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbiEiKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChJbGxlZ2FsU3RhdGVFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgYXNzZXJ0VHJ1ZSh0cnVlKTsKKyAgICAgICAgfQorICAgICAgICB0cnkgeworICAgICAgICAgICAgUG9ydGxldEFjdGlvbkNvbnRleHQuZ2V0QWN0aW9uUmVzcG9uc2UoKTsKKyAgICAgICAgICAgIGZhaWwoIlNob3VsZCB0aHJvdyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24hIik7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goSWxsZWdhbFN0YXRlRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGFzc2VydFRydWUodHJ1ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0R2V0TmFtZXNwYWNlKCkgeworICAgICAgICBjb250ZXh0LnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlBPUlRMRVRfTkFNRVNQQUNFLCAidGVzdE5hbWVzcGFjZSIpOworICAgICAgICBhc3NlcnRFcXVhbHMoInRlc3ROYW1lc3BhY2UiLCBQb3J0bGV0QWN0aW9uQ29udGV4dC5nZXRQb3J0bGV0TmFtZXNwYWNlKCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXREZWZhdWx0QWN0aW9uRm9yTW9kZSgpIHsKKyAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nID0gbmV3IEFjdGlvbk1hcHBpbmcoKTsKKyAgICAgICAgY29udGV4dC5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5ERUZBVUxUX0FDVElPTl9GT1JfTU9ERSwgbWFwcGluZyk7CisgICAgICAgIGFzc2VydEVxdWFscyhtYXBwaW5nLCBQb3J0bGV0QWN0aW9uQ29udGV4dC5nZXREZWZhdWx0QWN0aW9uRm9yTW9kZSgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZWFyRG93bigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBBY3Rpb25Db250ZXh0LnNldENvbnRleHQobnVsbCk7CisgICAgICAgIHN1cGVyLnRlYXJEb3duKCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBUZXN0UnVubmVyLnJ1bihQb3J0bGV0QWN0aW9uQ29udGV4dFRlc3QuY2xhc3MpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2Rpc3BhdGNoZXIvSnNyMTY4RGlzcGF0Y2hlclRlc3QuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2Rpc3BhdGNoZXIvSnNyMTY4RGlzcGF0Y2hlclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzU5NTczCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvZGlzcGF0Y2hlci9Kc3IxNjhEaXNwYXRjaGVyVGVzdC5qYXZhCkBAIC0wLDAgKzEsMjk5IEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LmRpc3BhdGNoZXI7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb247CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uSW52b2NhdGlvbjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25Qcm94eTsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25Qcm94eUZhY3Rvcnk7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIudXRpbC5WYWx1ZVN0YWNrOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5TdHJ1dHNDb25zdGFudHM7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIubWFwcGVyLkFjdGlvbk1hcHBpbmc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuUG9ydGxldEFjdGlvbkNvbnN0YW50czsKK2ltcG9ydCBvcmcuZWFzeW1vY2suRWFzeU1vY2s7CitpbXBvcnQgb3JnLmptb2NrLk1vY2s7CitpbXBvcnQgb3JnLmptb2NrLmNnbGliLk1vY2tPYmplY3RUZXN0Q2FzZTsKK2ltcG9ydCBvcmcuam1vY2suY29yZS5Db25zdHJhaW50OworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsubW9jay53ZWIucG9ydGxldC5Nb2NrUG9ydGxldENvbmZpZzsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLm1vY2sud2ViLnBvcnRsZXQuTW9ja1BvcnRsZXRDb250ZXh0OworCitpbXBvcnQgamF2YXgucG9ydGxldC4qOworaW1wb3J0IGphdmEudXRpbC4qOworCisvKioKKyAqIEpzcjE2OERpc3BhdGNoZXJUZXN0LiBJbnNlcnQgZGVzY3JpcHRpb24uCisgKiAKKyAqLworcHVibGljIGNsYXNzIEpzcjE2OERpc3BhdGNoZXJUZXN0IGV4dGVuZHMgTW9ja09iamVjdFRlc3RDYXNlIGltcGxlbWVudHMgUG9ydGxldEFjdGlvbkNvbnN0YW50cyB7CisKKwlwcml2YXRlIGZpbmFsIFN0cmluZyBNVUxUSVBBUlRfUkVRVUVTVCA9ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTQ4Mjc1NDM2MzIzOTFcclxuIgorCQkJKyAiQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPVwidXBsb2FkXCI7IGZpbGVuYW1lPVwidGVzdC50eHRcIlxyXG4iCisJCQkrICJDb250ZW50LVR5cGU6IHRleHQvcGxhaW5cclxuIiAKKwkJCSsgIlxyXG4iIAorCQkJKyAiVGhpcyBpcyBhIHRlc3QgZmlsZVxyXG4iCisJCQkrICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTQ4Mjc1NDM2MzIzOTFcclxuIiAKKwkJCSsgIkNvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT1cImNhcHRpb25cIlxyXG4iCisJCQkrICJcclxuIiAKKwkJCSsgIlRlc3RDYXB0aW9uXHJcbiIgKyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS00ODI3NTQzNjMyMzkxLS0iOworCisJSnNyMTY4RGlzcGF0Y2hlciBkaXNwYXRjaGVyID0gbnVsbDsKKworCU1vY2sgbW9ja0NvbmZpZyA9IG51bGw7CisKKwlNb2NrIG1vY2tDdHggPSBudWxsOworCisJTW9jayBtb2NrUmVxdWVzdCA9IG51bGw7CisKKwlNb2NrIG1vY2tTZXNzaW9uID0gbnVsbDsKKworCU1vY2sgbW9ja0FjdGlvbkZhY3RvcnkgPSBudWxsOworCisJTW9jayBtb2NrQWN0aW9uUHJveHkgPSBudWxsOworCisJTW9jayBtb2NrQWN0aW9uID0gbnVsbDsKKworCU1vY2sgbW9ja0ludm9jYXRpb24gPSBudWxsOworCisJcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwkJc3VwZXIuc2V0VXAoKTsKKwkJZGlzcGF0Y2hlciA9IG5ldyBKc3IxNjhEaXNwYXRjaGVyKCk7CisJfQorCisJcHJpdmF0ZSB2b2lkIGluaXRQb3J0bGV0Q29uZmlnKGZpbmFsIE1hcDxTdHJpbmcsIFN0cmluZz4gaW5pdFBhcmFtcywgZmluYWwgTWFwPFN0cmluZywgT2JqZWN0PiBhdHRyaWJ1dGVzKSB7CisJCW1vY2tDb25maWcgPSBtb2NrKFBvcnRsZXRDb25maWcuY2xhc3MpOworCQltb2NrQ3R4ID0gbW9jayhQb3J0bGV0Q29udGV4dC5jbGFzcyk7CisJCW1vY2tDb25maWcuc3R1YnMoKS5tZXRob2QoQU5ZVEhJTkcpOworCQltb2NrQ3R4LnN0dWJzKCkubWV0aG9kKEFOWVRISU5HKTsKKwkJc2V0dXBTdHViKGluaXRQYXJhbXMsIG1vY2tDb25maWcsICJnZXRJbml0UGFyYW1ldGVyIik7CisJCW1vY2tDdHguc3R1YnMoKS5tZXRob2QoImdldEF0dHJpYnV0ZU5hbWVzIikud2lsbChyZXR1cm5WYWx1ZShDb2xsZWN0aW9ucy5lbnVtZXJhdGlvbihhdHRyaWJ1dGVzLmtleVNldCgpKSkpOworCQlzZXR1cFN0dWIoYXR0cmlidXRlcywgbW9ja0N0eCwgImdldEF0dHJpYnV0ZSIpOworCQltb2NrQ29uZmlnLnN0dWJzKCkubWV0aG9kKCJnZXRQb3J0bGV0Q29udGV4dCIpLndpbGwocmV0dXJuVmFsdWUobW9ja0N0eC5wcm94eSgpKSk7CisJCW1vY2tDdHguc3R1YnMoKS5tZXRob2QoImdldEluaXRQYXJhbWV0ZXJOYW1lcyIpLndpbGwocmV0dXJuVmFsdWUoQ29sbGVjdGlvbnMuZW51bWVyYXRpb24oaW5pdFBhcmFtcy5rZXlTZXQoKSkpKTsKKwkJc2V0dXBTdHViKGluaXRQYXJhbXMsIG1vY2tDdHgsICJnZXRJbml0UGFyYW1ldGVyIik7CisJCW1vY2tDb25maWcuc3R1YnMoKS5tZXRob2QoImdldEluaXRQYXJhbWV0ZXJOYW1lcyIpLndpbGwoCisJCQkJcmV0dXJuVmFsdWUoQ29sbGVjdGlvbnMuZW51bWVyYXRpb24oaW5pdFBhcmFtcy5rZXlTZXQoKSkpKTsKKwkJc2V0dXBTdHViKGluaXRQYXJhbXMsIG1vY2tDb25maWcsICJnZXRJbml0UGFyYW1ldGVyIik7CisJCW1vY2tDb25maWcuc3R1YnMoKS5tZXRob2QoImdldFJlc291cmNlQnVuZGxlIikud2lsbChyZXR1cm5WYWx1ZShuZXcgTGlzdFJlc291cmNlQnVuZGxlKCkgeworCQkJcHJvdGVjdGVkIE9iamVjdFtdW10gZ2V0Q29udGVudHMoKSB7CisJCQkJcmV0dXJuIG5ldyBTdHJpbmdbXVtdIHsgeyAiamF2YXgucG9ydGxldC50aXRsZSIsICJNeVRpdGxlIiB9IH07CisJCQl9CisJCX0pKTsKKwl9CisKKwlwcml2YXRlIHZvaWQgc2V0dXBBY3Rpb25GYWN0b3J5KFN0cmluZyBuYW1lc3BhY2UsIFN0cmluZyBhY3Rpb25OYW1lLCBTdHJpbmcgcmVzdWx0LCBWYWx1ZVN0YWNrIHN0YWNrKSB7CisJCWlmIChtb2NrQWN0aW9uRmFjdG9yeSA9PSBudWxsKSB7CisJCQltb2NrQWN0aW9uRmFjdG9yeSA9IG1vY2soQWN0aW9uUHJveHlGYWN0b3J5LmNsYXNzKTsKKwkJfQorCQltb2NrQWN0aW9uID0gbW9jayhBY3Rpb24uY2xhc3MpOworCQltb2NrQWN0aW9uUHJveHkgPSBtb2NrKEFjdGlvblByb3h5LmNsYXNzKTsKKwkJbW9ja0ludm9jYXRpb24gPSBtb2NrKEFjdGlvbkludm9jYXRpb24uY2xhc3MpOworCisJCW1vY2tBY3Rpb25GYWN0b3J5LmV4cGVjdHMob25jZSgpKS5tZXRob2QoImNyZWF0ZUFjdGlvblByb3h5Iikud2l0aCgKKwkJCQluZXcgQ29uc3RyYWludFtdIHsgZXEobmFtZXNwYWNlKSwgZXEoYWN0aW9uTmFtZSksIE5VTEwsIGlzQShNYXAuY2xhc3MpIH0pLndpbGwoCisJCQkJcmV0dXJuVmFsdWUobW9ja0FjdGlvblByb3h5LnByb3h5KCkpKTsKKwkJbW9ja0FjdGlvblByb3h5LnN0dWJzKCkubWV0aG9kKCJnZXRBY3Rpb24iKS53aWxsKHJldHVyblZhbHVlKG1vY2tBY3Rpb24ucHJveHkoKSkpOworCQltb2NrQWN0aW9uUHJveHkuZXhwZWN0cyhvbmNlKCkpLm1ldGhvZCgiZXhlY3V0ZSIpLndpbGwocmV0dXJuVmFsdWUocmVzdWx0KSk7CisJCW1vY2tBY3Rpb25Qcm94eS5leHBlY3RzKG9uY2UoKSkubWV0aG9kKCJnZXRJbnZvY2F0aW9uIikud2lsbChyZXR1cm5WYWx1ZShtb2NrSW52b2NhdGlvbi5wcm94eSgpKSk7CisJCW1vY2tJbnZvY2F0aW9uLnN0dWJzKCkubWV0aG9kKCJnZXRTdGFjayIpLndpbGwocmV0dXJuVmFsdWUoc3RhY2spKTsKKworCX0KKworCXB1YmxpYyB2b2lkIHRlc3RQYXJzZUNvbmZpZ1dpdGhCYW5nKCkgeworCQlNb2NrUG9ydGxldENvbnRleHQgcG9ydGxldENvbnRleHQgPSBuZXcgTW9ja1BvcnRsZXRDb250ZXh0KCk7CisJCU1vY2tQb3J0bGV0Q29uZmlnIHBvcnRsZXRDb25maWcgPSBuZXcgTW9ja1BvcnRsZXRDb25maWcocG9ydGxldENvbnRleHQpOworCisJCXBvcnRsZXRDb25maWcuYWRkSW5pdFBhcmFtZXRlcigidmlld05hbWVzcGFjZSIsICIvdmlldyIpOworCQlwb3J0bGV0Q29uZmlnLmFkZEluaXRQYXJhbWV0ZXIoImRlZmF1bHRWaWV3QWN0aW9uIiwgImluZGV4IWlucHV0Iik7CisKKwkJTWFwPFBvcnRsZXRNb2RlLCBBY3Rpb25NYXBwaW5nPiBhY3Rpb25NYXAgPSBuZXcgSGFzaE1hcDxQb3J0bGV0TW9kZSwgQWN0aW9uTWFwcGluZz4oKTsKKworCQlkaXNwYXRjaGVyLnBhcnNlTW9kZUNvbmZpZyhhY3Rpb25NYXAsIHBvcnRsZXRDb25maWcsIFBvcnRsZXRNb2RlLlZJRVcsICJ2aWV3TmFtZXNwYWNlIiwgImRlZmF1bHRWaWV3QWN0aW9uIik7CisKKwkJQWN0aW9uTWFwcGluZyBtYXBwaW5nID0gYWN0aW9uTWFwLmdldChQb3J0bGV0TW9kZS5WSUVXKTsKKwkJYXNzZXJ0RXF1YWxzKCJpbmRleCIsIG1hcHBpbmcuZ2V0TmFtZSgpKTsKKwkJYXNzZXJ0RXF1YWxzKCIvdmlldyIsIG1hcHBpbmcuZ2V0TmFtZXNwYWNlKCkpOworCQlhc3NlcnRFcXVhbHMoImlucHV0IiwgbWFwcGluZy5nZXRNZXRob2QoKSk7CisJfQorCisJcHVibGljIHZvaWQgdGVzdFJlbmRlcl9vaygpIHRocm93cyBFeGNlcHRpb24geworCQlmaW5hbCBNb2NrIG1vY2tSZXNwb25zZSA9IG1vY2soUmVuZGVyUmVzcG9uc2UuY2xhc3MpOworCQltb2NrUmVzcG9uc2Uuc3R1YnMoKS5tZXRob2QoQU5ZVEhJTkcpOworCisJCVBvcnRsZXRNb2RlIG1vZGUgPSBQb3J0bGV0TW9kZS5WSUVXOworCisJCU1hcDxTdHJpbmcsIFN0cmluZ1tdPiByZXF1ZXN0UGFyYW1zID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmdbXT4oKTsKKwkJcmVxdWVzdFBhcmFtcy5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5BQ1RJT05fUEFSQU0sIG5ldyBTdHJpbmdbXSB7ICIvdmlldy90ZXN0QWN0aW9uIiB9KTsKKwkJcmVxdWVzdFBhcmFtcy5wdXQoRVZFTlRfQUNUSU9OLCBuZXcgU3RyaW5nW10geyAidHJ1ZSIgfSk7CisJCXJlcXVlc3RQYXJhbXMucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuTU9ERV9QQVJBTSwgbmV3IFN0cmluZ1tdIHsgbW9kZS50b1N0cmluZygpIH0pOworCisJCU1hcDxTdHJpbmcsIE9iamVjdD4gc2Vzc2lvbk1hcCA9IG5ldyBIYXNoTWFwPFN0cmluZywgT2JqZWN0PigpOworCisJCU1hcDxTdHJpbmcsIFN0cmluZz4gaW5pdFBhcmFtcyA9IG5ldyBIYXNoTWFwPFN0cmluZywgU3RyaW5nPigpOworCQlpbml0UGFyYW1zLnB1dCgidmlld05hbWVzcGFjZSIsICIvdmlldyIpOworCQlpbml0UGFyYW1zLnB1dChTdHJ1dHNDb25zdGFudHMuU1RSVVRTX0FMV0FZU19TRUxFQ1RfRlVMTF9OQU1FU1BBQ0UsICJ0cnVlIik7CisKKwkJaW5pdFBvcnRsZXRDb25maWcoaW5pdFBhcmFtcywgbmV3IEhhc2hNYXA8U3RyaW5nLCBPYmplY3Q+KCkpOworCQlpbml0UmVxdWVzdChyZXF1ZXN0UGFyYW1zLCBuZXcgSGFzaE1hcDxTdHJpbmcsIE9iamVjdD4oKSwgc2Vzc2lvbk1hcCwgbmV3IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmdbXT4oKSwgUG9ydGxldE1vZGUuVklFVywgV2luZG93U3RhdGUuTk9STUFMLAorCQkJCWZhbHNlLCBudWxsKTsKKwkJc2V0dXBBY3Rpb25GYWN0b3J5KCIvdmlldyIsICJ0ZXN0QWN0aW9uIiwgInN1Y2Nlc3MiLCBFYXN5TW9jay5jcmVhdGVOaWNlTW9jayhWYWx1ZVN0YWNrLmNsYXNzKSk7CisKKwkJbW9ja0ludm9jYXRpb24uZXhwZWN0cyhvbmNlKCkpLm1ldGhvZCgiZ2V0U3RhY2siKS53aWxsKHJldHVyblZhbHVlKG51bGwpKTsKKwkJLy8gbW9ja1Nlc3Npb24uZXhwZWN0cyhvbmNlKCkpLm1ldGhvZCgic2V0QXR0cmlidXRlIikud2l0aChuZXcKKwkJLy8gQ29uc3RyYWludFtde2VxKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuTEFTVF9NT0RFKSwKKwkJLy8gZXEoUG9ydGxldE1vZGUuVklFVyl9KTsKKwkJZGlzcGF0Y2hlci5zZXRBY3Rpb25Qcm94eUZhY3RvcnkoKEFjdGlvblByb3h5RmFjdG9yeSkgbW9ja0FjdGlvbkZhY3RvcnkucHJveHkoKSk7CisJCWRpc3BhdGNoZXIuaW5pdCgoUG9ydGxldENvbmZpZykgbW9ja0NvbmZpZy5wcm94eSgpKTsKKwkJZGlzcGF0Y2hlci5yZW5kZXIoKFJlbmRlclJlcXVlc3QpIG1vY2tSZXF1ZXN0LnByb3h5KCksIChSZW5kZXJSZXNwb25zZSkgbW9ja1Jlc3BvbnNlLnByb3h5KCkpOworCX0KKworCXB1YmxpYyB2b2lkIHRlc3RQcm9jZXNzQWN0aW9uX29rKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisJCWZpbmFsIE1vY2sgbW9ja1Jlc3BvbnNlID0gbW9jayhBY3Rpb25SZXNwb25zZS5jbGFzcyk7CisKKwkJUG9ydGxldE1vZGUgbW9kZSA9IFBvcnRsZXRNb2RlLlZJRVc7CisJCU1hcDxTdHJpbmcsIFN0cmluZz4gaW5pdFBhcmFtcyA9IG5ldyBIYXNoTWFwPFN0cmluZywgU3RyaW5nPigpOworCQlpbml0UGFyYW1zLnB1dCgidmlld05hbWVzcGFjZSIsICIvdmlldyIpOworCisJCU1hcDxTdHJpbmcsIFN0cmluZ1tdPiByZXF1ZXN0UGFyYW1zID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmdbXT4oKTsKKwkJcmVxdWVzdFBhcmFtcy5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5BQ1RJT05fUEFSQU0sIG5ldyBTdHJpbmdbXSB7ICIvdmlldy90ZXN0QWN0aW9uIiB9KTsKKwkJcmVxdWVzdFBhcmFtcy5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5NT0RFX1BBUkFNLCBuZXcgU3RyaW5nW10geyBtb2RlLnRvU3RyaW5nKCkgfSk7CisKKwkJaW5pdFBhcmFtcy5wdXQoU3RydXRzQ29uc3RhbnRzLlNUUlVUU19BTFdBWVNfU0VMRUNUX0ZVTExfTkFNRVNQQUNFLCAidHJ1ZSIpOworCQlpbml0UG9ydGxldENvbmZpZyhpbml0UGFyYW1zLCBuZXcgSGFzaE1hcDxTdHJpbmcsIE9iamVjdD4oKSk7CisJCWluaXRSZXF1ZXN0KHJlcXVlc3RQYXJhbXMsIG5ldyBIYXNoTWFwPFN0cmluZywgT2JqZWN0PigpLCBuZXcgSGFzaE1hcDxTdHJpbmcsIE9iamVjdD4oKSwgbmV3IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmdbXT4oKSwgUG9ydGxldE1vZGUuVklFVywgV2luZG93U3RhdGUuTk9STUFMLAorCQkJCXRydWUsIG51bGwpOworCQlzZXR1cEFjdGlvbkZhY3RvcnkoIi92aWV3IiwgInRlc3RBY3Rpb24iLCAic3VjY2VzcyIsIEVhc3lNb2NrLmNyZWF0ZU5pY2VNb2NrKFZhbHVlU3RhY2suY2xhc3MpKTsKKwkJLy8gbW9ja1Nlc3Npb24uZXhwZWN0cyhvbmNlKCkpLm1ldGhvZCgic2V0QXR0cmlidXRlIikud2l0aChuZXcKKwkJLy8gQ29uc3RyYWludFtde2VxKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuTEFTVF9NT0RFKSwKKwkJLy8gZXEoUG9ydGxldE1vZGUuVklFVyl9KTsKKwkJZGlzcGF0Y2hlci5zZXRBY3Rpb25Qcm94eUZhY3RvcnkoKEFjdGlvblByb3h5RmFjdG9yeSkgbW9ja0FjdGlvbkZhY3RvcnkucHJveHkoKSk7CisJCWRpc3BhdGNoZXIuaW5pdCgoUG9ydGxldENvbmZpZykgbW9ja0NvbmZpZy5wcm94eSgpKTsKKwkJZGlzcGF0Y2hlci5wcm9jZXNzQWN0aW9uKChBY3Rpb25SZXF1ZXN0KSBtb2NrUmVxdWVzdC5wcm94eSgpLCAoQWN0aW9uUmVzcG9uc2UpIG1vY2tSZXNwb25zZS5wcm94eSgpKTsKKwl9CisKKwkvKioKKwkgKiBJbml0aWFsaXplIHRoZSBtb2NrIHJlcXVlc3QgKGFuZCBhcyBhIHJlc3VsdCwgdGhlIG1vY2sgc2Vzc2lvbikKKwkgKiAKKwkgKiBAcGFyYW0gcmVxdWVzdFBhcmFtcworCSAqICAgICAgICAgICAgVGhlIHJlcXVlc3QgcGFyYW1ldGVycworCSAqIEBwYXJhbSByZXF1ZXN0QXR0cmlidXRlcworCSAqICAgICAgICAgICAgVGhlIHJlcXVlc3QgYXR0cmlidXRlcworCSAqIEBwYXJhbSBzZXNzaW9uUGFyYW1zCisJICogICAgICAgICAgICBUaGUgc2Vzc2lvbiBhdHRyaWJ1dGVzCisJICogQHBhcmFtIHJlbmRlclBhcmFtcworCSAqICAgICAgICAgICAgVGhlIHJlbmRlciBwYXJhbWV0ZXJzLiBXaWxsIG9ubHkgYmUgc2V0IGlmCisJICogICAgICAgICAgICA8Y29kZT5pc0V2ZW50PC9jb2RlPiBpcyA8Y29kZT50cnVlPC9jb2RlPgorCSAqIEBwYXJhbSBtb2RlCisJICogICAgICAgICAgICBUaGUgcG9ydGxldCBtb2RlCisJICogQHBhcmFtIHN0YXRlCisJICogICAgICAgICAgICBUaGUgcG9ydGxldCB3aW5kb3cgc3RhdGUKKwkgKiBAcGFyYW0gaXNFdmVudAorCSAqICAgICAgICAgICAgPGNvZGU+dHJ1ZTwvY29kZT4gd2hlbiB0aGUgcmVxdWVzdCBpcyBhbiBBY3Rpb25SZXF1ZXN0LgorCSAqIEBwYXJhbSBsb2NhbGUKKwkgKiAgICAgICAgICAgIFRoZSBsb2NhbGUuIElmIDxjb2RlPm51bGw8L2NvZGU+LCB0aGUgcmVxdWVzdCB3aWxsIHJldHVybgorCSAqICAgICAgICAgICAgPGNvZGU+TG9jYWxlLmdldERlZmF1bHQoKTwvY29kZT4KKwkgKi8KKwlwcml2YXRlIHZvaWQgaW5pdFJlcXVlc3QoTWFwPFN0cmluZywgU3RyaW5nW10+IHJlcXVlc3RQYXJhbXMsIE1hcDxTdHJpbmcsIE9iamVjdD4gcmVxdWVzdEF0dHJpYnV0ZXMsIE1hcDxTdHJpbmcsIE9iamVjdD4gc2Vzc2lvblBhcmFtcywgTWFwPFN0cmluZywgU3RyaW5nW10+IHJlbmRlclBhcmFtcywKKwkJCVBvcnRsZXRNb2RlIG1vZGUsIFdpbmRvd1N0YXRlIHN0YXRlLCBib29sZWFuIGlzRXZlbnQsIExvY2FsZSBsb2NhbGUpIHsKKwkJbW9ja1JlcXVlc3QgPSBpc0V2ZW50ID8gbW9jayhBY3Rpb25SZXF1ZXN0LmNsYXNzKSA6IG1vY2soUmVuZGVyUmVxdWVzdC5jbGFzcyk7CisJCW1vY2tTZXNzaW9uID0gbW9jayhQb3J0bGV0U2Vzc2lvbi5jbGFzcyk7CisJCW1vY2tTZXNzaW9uLnN0dWJzKCkubWV0aG9kKEFOWVRISU5HKTsKKwkJbW9ja1JlcXVlc3Quc3R1YnMoKS5tZXRob2QoQU5ZVEhJTkcpOworCQlzZXR1cFN0dWIoc2Vzc2lvblBhcmFtcywgbW9ja1Nlc3Npb24sICJnZXRBdHRyaWJ1dGUiKTsKKwkJbW9ja1Nlc3Npb24uc3R1YnMoKS5tZXRob2QoImdldEF0dHJpYnV0ZU5hbWVzIikud2lsbCgKKwkJCQlyZXR1cm5WYWx1ZShDb2xsZWN0aW9ucy5lbnVtZXJhdGlvbihzZXNzaW9uUGFyYW1zLmtleVNldCgpKSkpOworCQlzZXR1cFBhcmFtU3R1YihyZXF1ZXN0UGFyYW1zLCBtb2NrUmVxdWVzdCwgImdldFBhcmFtZXRlciIpOworCQlzZXR1cFN0dWIocmVxdWVzdEF0dHJpYnV0ZXMsIG1vY2tSZXF1ZXN0LCAiZ2V0QXR0cmlidXRlIik7CisJCW1vY2tSZXF1ZXN0LnN0dWJzKCkubWV0aG9kKCJnZXRBdHRyaWJ1dGVOYW1lcyIpLndpbGwoCisJCQkJcmV0dXJuVmFsdWUoQ29sbGVjdGlvbnMuZW51bWVyYXRpb24ocmVxdWVzdEF0dHJpYnV0ZXMua2V5U2V0KCkpKSk7CisJCW1vY2tSZXF1ZXN0LnN0dWJzKCkubWV0aG9kKCJnZXRQYXJhbWV0ZXJNYXAiKS53aWxsKHJldHVyblZhbHVlKHJlcXVlc3RQYXJhbXMpKTsKKwkJbW9ja1JlcXVlc3Quc3R1YnMoKS5tZXRob2QoImdldFBhcmFtZXRlck5hbWVzIikud2lsbCgKKwkJCQlyZXR1cm5WYWx1ZShDb2xsZWN0aW9ucy5lbnVtZXJhdGlvbihyZXF1ZXN0UGFyYW1zLmtleVNldCgpKSkpOworCQltb2NrUmVxdWVzdC5zdHVicygpLm1ldGhvZCgiZ2V0UG9ydGxldFNlc3Npb24iKS53aWxsKHJldHVyblZhbHVlKG1vY2tTZXNzaW9uLnByb3h5KCkpKTsKKwkJaWYgKGxvY2FsZSAhPSBudWxsKSB7CisJCQltb2NrUmVxdWVzdC5zdHVicygpLm1ldGhvZCgiZ2V0TG9jYWxlIikud2lsbChyZXR1cm5WYWx1ZShsb2NhbGUpKTsKKwkJfSBlbHNlIHsKKwkJCW1vY2tSZXF1ZXN0LnN0dWJzKCkubWV0aG9kKCJnZXRMb2NhbGUiKS53aWxsKHJldHVyblZhbHVlKExvY2FsZS5nZXREZWZhdWx0KCkpKTsKKwkJfQorCQltb2NrUmVxdWVzdC5zdHVicygpLm1ldGhvZCgiZ2V0UG9ydGxldE1vZGUiKS53aWxsKHJldHVyblZhbHVlKG1vZGUpKTsKKwkJbW9ja1JlcXVlc3Quc3R1YnMoKS5tZXRob2QoImdldFdpbmRvd1N0YXRlIikud2lsbChyZXR1cm5WYWx1ZShzdGF0ZSkpOworCX0KKworCXByaXZhdGUgdm9pZCBzZXR1cFBhcmFtU3R1YihNYXA8U3RyaW5nLCBTdHJpbmdbXT4gcmVxdWVzdFBhcmFtcywgTW9jayBtb2NrUmVxdWVzdCwgU3RyaW5nIG1ldGhvZCkgeworCQlNYXA8U3RyaW5nLCBTdHJpbmc+IG5ld01hcCA9IG5ldyBIYXNoTWFwPFN0cmluZywgU3RyaW5nPigpOworICAgICAgICBmb3IgKCBTdHJpbmcga2V5IDogcmVxdWVzdFBhcmFtcy5rZXlTZXQoKSApIHsKKyAgICAgICAgICAgIFN0cmluZ1tdIHZhbCA9IHJlcXVlc3RQYXJhbXMuZ2V0KGtleSk7CisgICAgICAgICAgICBuZXdNYXAucHV0KGtleSwgdmFsWzBdKTsKKyAgICAgICAgfQorCQlzZXR1cFN0dWIobmV3TWFwLCBtb2NrUmVxdWVzdCwgbWV0aG9kKTsKKworCX0KKworCS8qKgorCSAqIFNldCB1cCBzdHVicyBmb3IgdGhlIG1vY2suCisJICogCisJICogQHBhcmFtIG1hcAorCSAqICAgICAgICAgICAgVGhlIG1hcCBjb250YWluaW5nIHRoZSA8Y29kZT5rZXk8L2NvZGU+IGFuZAorCSAqICAgICAgICAgICAgPGNvZGU+dmFsdWVzPC9jb2RlPi4gVGhlIGtleSBpcyB0aGUgZXhwZWN0ZWQgcGFyYW1ldGVyIHRvCisJICogICAgICAgICAgICA8Y29kZT5tZXRob2Q8L2NvZGU+LCBhbmQgdmFsdWUgaXMgdGhlIHZhbHVlIHRoYXQgc2hvdWxkIGJlCisJICogICAgICAgICAgICByZXR1cm5lZCBmcm9tIHRoZSBzdHViLgorCSAqIEBwYXJhbSBtb2NrCisJICogICAgICAgICAgICBUaGUgbW9jayB0byBpbml0aWFsaXplLgorCSAqIEBwYXJhbSBtZXRob2QKKwkgKiAgICAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBtZXRob2QgdG8gc3R1Yi4KKwkgKi8KKwlwcml2YXRlIHZvaWQgc2V0dXBTdHViKE1hcCBtYXAsIE1vY2sgbW9jaywgU3RyaW5nIG1ldGhvZCkgeworICAgICAgICBmb3IgKCBPYmplY3Qga2V5IDogbWFwLmtleVNldCgpICkgeworICAgICAgICAgICAgT2JqZWN0IHZhbCA9IG1hcC5nZXQoa2V5KTsKKyAgICAgICAgICAgIG1vY2suc3R1YnMoKS5tZXRob2QobWV0aG9kKS53aXRoKGVxKGtleSkpLndpbGwocmV0dXJuVmFsdWUodmFsKSk7CisgICAgICAgIH0KKwl9CisKKwlwdWJsaWMgdm9pZCB0ZXN0TW9kZUNoYW5nZVVzaW5nUG9ydGxldFdpZGdldHMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwkJZmluYWwgTW9jayBtb2NrUmVzcG9uc2UgPSBtb2NrKFJlbmRlclJlc3BvbnNlLmNsYXNzKTsKKwkJbW9ja1Jlc3BvbnNlLnN0dWJzKCkubWV0aG9kKEFOWVRISU5HKTsKKwkJUG9ydGxldE1vZGUgbW9kZSA9IFBvcnRsZXRNb2RlLkVESVQ7CisKKwkJTWFwPFN0cmluZywgU3RyaW5nW10+IHJlcXVlc3RQYXJhbXMgPSBuZXcgSGFzaE1hcDxTdHJpbmcsIFN0cmluZ1tdPigpOworCQlyZXF1ZXN0UGFyYW1zLnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLkFDVElPTl9QQVJBTSwgbmV3IFN0cmluZ1tdIHsgIi92aWV3L3Rlc3RBY3Rpb24iIH0pOworCQlyZXF1ZXN0UGFyYW1zLnB1dChFVkVOVF9BQ1RJT04sIG5ldyBTdHJpbmdbXSB7ICJmYWxzZSIgfSk7CisJCXJlcXVlc3RQYXJhbXMucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuTU9ERV9QQVJBTSwgbmV3IFN0cmluZ1tdIHsgUG9ydGxldE1vZGUuVklFVy50b1N0cmluZygpIH0pOworCisJCU1hcDxTdHJpbmcsIE9iamVjdD4gc2Vzc2lvbk1hcCA9IG5ldyBIYXNoTWFwPFN0cmluZywgT2JqZWN0PigpOworCisJCU1hcDxTdHJpbmcsIFN0cmluZz4gaW5pdFBhcmFtcyA9IG5ldyBIYXNoTWFwPFN0cmluZywgU3RyaW5nPigpOworCQlpbml0UGFyYW1zLnB1dCgidmlld05hbWVzcGFjZSIsICIvdmlldyIpOworCQlpbml0UGFyYW1zLnB1dCgiZWRpdE5hbWVzcGFjZSIsICIvZWRpdCIpOworCisJCWluaXRQb3J0bGV0Q29uZmlnKGluaXRQYXJhbXMsIG5ldyBIYXNoTWFwPFN0cmluZywgT2JqZWN0PigpKTsKKwkJaW5pdFJlcXVlc3QocmVxdWVzdFBhcmFtcywgbmV3IEhhc2hNYXA8U3RyaW5nLCBPYmplY3Q+KCksIHNlc3Npb25NYXAsIG5ldyBIYXNoTWFwPFN0cmluZywgU3RyaW5nW10+KCksIG1vZGUsIFdpbmRvd1N0YXRlLk5PUk1BTCwgZmFsc2UsIG51bGwpOworCQlzZXR1cEFjdGlvbkZhY3RvcnkoIi9lZGl0IiwgImRlZmF1bHQiLCAic3VjY2VzcyIsIEVhc3lNb2NrLmNyZWF0ZU5pY2VNb2NrKFZhbHVlU3RhY2suY2xhc3MpKTsKKworCQltb2NrSW52b2NhdGlvbi5leHBlY3RzKG9uY2UoKSkubWV0aG9kKCJnZXRTdGFjayIpLndpbGwocmV0dXJuVmFsdWUobnVsbCkpOworCQkvLyBtb2NrU2Vzc2lvbi5leHBlY3RzKG9uY2UoKSkubWV0aG9kKCJzZXRBdHRyaWJ1dGUiKS53aXRoKG5ldworCQkvLyBDb25zdHJhaW50W117ZXEoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5MQVNUX01PREUpLAorCQkvLyBlcShQb3J0bGV0TW9kZS5WSUVXKX0pOworCQlkaXNwYXRjaGVyLnNldEFjdGlvblByb3h5RmFjdG9yeSgoQWN0aW9uUHJveHlGYWN0b3J5KSBtb2NrQWN0aW9uRmFjdG9yeS5wcm94eSgpKTsKKwkJZGlzcGF0Y2hlci5pbml0KChQb3J0bGV0Q29uZmlnKSBtb2NrQ29uZmlnLnByb3h5KCkpOworCQlkaXNwYXRjaGVyLnJlbmRlcigoUmVuZGVyUmVxdWVzdCkgbW9ja1JlcXVlc3QucHJveHkoKSwgKFJlbmRlclJlc3BvbnNlKSBtb2NrUmVzcG9uc2UucHJveHkoKSk7CisJfQorCit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9pbnRlcmNlcHRvci9Qb3J0bGV0QXdhcmVJbnRlcmNlcHRvclRlc3QuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L2ludGVyY2VwdG9yL1BvcnRsZXRBd2FyZUludGVyY2VwdG9yVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwNTk5MjIKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9pbnRlcmNlcHRvci9Qb3J0bGV0QXdhcmVJbnRlcmNlcHRvclRlc3QuamF2YQpAQCAtMCwwICsxLDk5IEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LmludGVyY2VwdG9yOworCitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldENvbmZpZzsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRSZXF1ZXN0OworCitpbXBvcnQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuUG9ydGxldEFjdGlvbkNvbnN0YW50czsKK2ltcG9ydCBvcmcuZWFzeW1vY2suRWFzeU1vY2s7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25Db250ZXh0OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbkludm9jYXRpb247CisKK3B1YmxpYyBjbGFzcyBQb3J0bGV0QXdhcmVJbnRlcmNlcHRvclRlc3QgZXh0ZW5kcyBUZXN0Q2FzZSBpbXBsZW1lbnRzIFBvcnRsZXRBY3Rpb25Db25zdGFudHMgeworCisJcHJpdmF0ZSBQb3J0bGV0QXdhcmVJbnRlcmNlcHRvciBpbnRlcmNlcHRvcjsKKwlwcml2YXRlIFRlc3RBY3Rpb24gYWN0aW9uOworCXByaXZhdGUgUG9ydGxldFJlcXVlc3QgcG9ydGxldFJlcXVlc3Q7CisJcHJpdmF0ZSBQb3J0bGV0Q29uZmlnIHBvcnRsZXRDb25maWc7CisJcHJpdmF0ZSBNYXA8U3RyaW5nLCBPYmplY3Q+IGNvbnRleHRNYXA7CisJcHJpdmF0ZSBBY3Rpb25JbnZvY2F0aW9uIGludm9jYXRpb247CisJCisJcHJvdGVjdGVkIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwkJc3VwZXIuc2V0VXAoKTsKKwkJaW50ZXJjZXB0b3IgPSBuZXcgUG9ydGxldEF3YXJlSW50ZXJjZXB0b3IoKTsKKwkJYWN0aW9uID0gbmV3IFRlc3RBY3Rpb24oKTsKKwkJcG9ydGxldFJlcXVlc3QgPSBFYXN5TW9jay5jcmVhdGVOaWNlTW9jayhQb3J0bGV0UmVxdWVzdC5jbGFzcyk7CisJCXBvcnRsZXRDb25maWcgPSBFYXN5TW9jay5jcmVhdGVOaWNlTW9jayhQb3J0bGV0Q29uZmlnLmNsYXNzKTsKKwkJY29udGV4dE1hcCA9IG5ldyBIYXNoTWFwPFN0cmluZywgT2JqZWN0PigpOworCQlpbnZvY2F0aW9uID0gRWFzeU1vY2suY3JlYXRlTmljZU1vY2soQWN0aW9uSW52b2NhdGlvbi5jbGFzcyk7CisJCUVhc3lNb2NrLmV4cGVjdChpbnZvY2F0aW9uLmdldEFjdGlvbigpKS5hbmRSZXR1cm4oYWN0aW9uKTsKKwkJRWFzeU1vY2suZXhwZWN0KGludm9jYXRpb24uZ2V0SW52b2NhdGlvbkNvbnRleHQoKSkuYW5kUmV0dXJuKG5ldyBBY3Rpb25Db250ZXh0KGNvbnRleHRNYXApKTsKKwl9CisJCisJcHJvdGVjdGVkIHZvaWQgdGVhckRvd24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwkJc3VwZXIudGVhckRvd24oKTsKKwl9CisJCisJcHVibGljIHZvaWQgdGVzdFBvcnRsZXRSZXF1ZXN0SXNTZXQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwkJY29udGV4dE1hcC5wdXQoUkVRVUVTVCwgcG9ydGxldFJlcXVlc3QpOworCQlFYXN5TW9jay5yZXBsYXkoaW52b2NhdGlvbik7CisJCWludGVyY2VwdG9yLmludGVyY2VwdChpbnZvY2F0aW9uKTsKKwkJYXNzZXJ0RXF1YWxzKHBvcnRsZXRSZXF1ZXN0LCBhY3Rpb24uZ2V0UG9ydGxldFJlcXVlc3QoKSk7CisJfQorCQorCXB1YmxpYyB2b2lkIHRlc3RQb3J0bGV0Q29uZmlnSXNTZXQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwkJY29udGV4dE1hcC5wdXQoUE9SVExFVF9DT05GSUcsIHBvcnRsZXRDb25maWcpOworCQlFYXN5TW9jay5yZXBsYXkoaW52b2NhdGlvbik7CisJCWludGVyY2VwdG9yLmludGVyY2VwdChpbnZvY2F0aW9uKTsKKwkJYXNzZXJ0RXF1YWxzKHBvcnRsZXRDb25maWcsIGFjdGlvbi5nZXRQb3J0bGV0Q29uZmlnKCkpOworCX0KKwkKKwlwdWJsaWMgc3RhdGljIGNsYXNzIFRlc3RBY3Rpb24gaW1wbGVtZW50cyBQb3J0bGV0UmVxdWVzdEF3YXJlLCBQb3J0bGV0Q29uZmlnQXdhcmUgeworCisJCXByaXZhdGUgUG9ydGxldFJlcXVlc3QgcmVxdWVzdDsKKwkJcHJpdmF0ZSBQb3J0bGV0Q29uZmlnIGNvbmZpZzsKKworCQlwdWJsaWMgdm9pZCBzZXRQb3J0bGV0UmVxdWVzdChQb3J0bGV0UmVxdWVzdCByZXF1ZXN0KSB7CisJCQl0aGlzLnJlcXVlc3QgPSByZXF1ZXN0OworCQl9CisKKwkJcHVibGljIHZvaWQgc2V0UG9ydGxldENvbmZpZyhQb3J0bGV0Q29uZmlnIHBvcnRsZXRDb25maWcpIHsKKwkJCXRoaXMuY29uZmlnID0gcG9ydGxldENvbmZpZzsKKwkJfQorCisJCXB1YmxpYyBQb3J0bGV0Q29uZmlnIGdldFBvcnRsZXRDb25maWcoKSB7CisJCQlyZXR1cm4gY29uZmlnOworCQl9CisKKwkJcHVibGljIFBvcnRsZXRSZXF1ZXN0IGdldFBvcnRsZXRSZXF1ZXN0KCkgeworCQkJcmV0dXJuIHJlcXVlc3Q7CisJCX0KKwkJCisJfQorfQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvaW50ZXJjZXB0b3IvUG9ydGxldFN0YXRlSW50ZXJjZXB0b3JUZXN0LmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9pbnRlcmNlcHRvci9Qb3J0bGV0U3RhdGVJbnRlcmNlcHRvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTg0ZjhhCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvaW50ZXJjZXB0b3IvUG9ydGxldFN0YXRlSW50ZXJjZXB0b3JUZXN0LmphdmEKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuaW50ZXJjZXB0b3I7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitpbXBvcnQgamF2YXgucG9ydGxldC5BY3Rpb25SZXNwb25zZTsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlJlbmRlclJlcXVlc3Q7CisKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuU3RydXRzVGVzdENhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuRGVmYXVsdEFjdGlvblN1cHBvcnQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuUG9ydGxldEFjdGlvbkNvbnN0YW50czsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5kaXNwYXRjaGVyLkRpcmVjdFJlbmRlckZyb21FdmVudEFjdGlvbjsKK2ltcG9ydCBvcmcuZWFzeW1vY2suRWFzeU1vY2s7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25Db250ZXh0OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbkludm9jYXRpb247CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIudXRpbC5WYWx1ZVN0YWNrOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnV0aWwuVmFsdWVTdGFja0ZhY3Rvcnk7CisKK3B1YmxpYyBjbGFzcyBQb3J0bGV0U3RhdGVJbnRlcmNlcHRvclRlc3QgZXh0ZW5kcyBTdHJ1dHNUZXN0Q2FzZSBpbXBsZW1lbnRzIFBvcnRsZXRBY3Rpb25Db25zdGFudHMgeworCisJcHJpdmF0ZSBQb3J0bGV0U3RhdGVJbnRlcmNlcHRvciBpbnRlcmNlcHRvcjsKKwkKKwlwdWJsaWMgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworCSAgICBzdXBlci5zZXRVcCgpOworCQlpbnRlcmNlcHRvciA9IG5ldyBQb3J0bGV0U3RhdGVJbnRlcmNlcHRvcigpOworCX0KKwkKKwlwdWJsaWMgdm9pZCB0ZXN0Q29weVZhbHVlU3RhY2tGcm9tRXZlbnRUb1JlbmRlclBoYXNlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisJCUFjdGlvblJlc3BvbnNlIGFjdGlvblJlc3BvbnNlID0gRWFzeU1vY2suY3JlYXRlTmljZU1vY2soQWN0aW9uUmVzcG9uc2UuY2xhc3MpOworCQlBY3Rpb25JbnZvY2F0aW9uIGludm9jYXRpb24gPSBFYXN5TW9jay5jcmVhdGVOaWNlTW9jayhBY3Rpb25JbnZvY2F0aW9uLmNsYXNzKTsKKwkJCisJCU1hcDxTdHJpbmcsIE9iamVjdD4gY3R4TWFwID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBPYmplY3Q+KCk7CisJCWN0eE1hcC5wdXQoUEhBU0UsIEVWRU5UX1BIQVNFKTsKKwkJY3R4TWFwLnB1dChSRVNQT05TRSwgYWN0aW9uUmVzcG9uc2UpOworCQlNYXA8U3RyaW5nLCBPYmplY3Q+IHNlc3Npb24gPSBuZXcgSGFzaE1hcDxTdHJpbmcsIE9iamVjdD4oKTsKKwkJCisJCUFjdGlvbkNvbnRleHQgY3R4ID0gbmV3IEFjdGlvbkNvbnRleHQoY3R4TWFwKTsKKwkJY3R4LnNldFNlc3Npb24oc2Vzc2lvbik7CisJCUVhc3lNb2NrLmV4cGVjdChpbnZvY2F0aW9uLmdldEludm9jYXRpb25Db250ZXh0KCkpLmFuZFN0dWJSZXR1cm4oY3R4KTsKKwkJYWN0aW9uUmVzcG9uc2Uuc2V0UmVuZGVyUGFyYW1ldGVyKEVWRU5UX0FDVElPTiwgInRydWUiKTsKKwkJCisJCVZhbHVlU3RhY2sgc3RhY2sgPSBjb250YWluZXIuZ2V0SW5zdGFuY2UoVmFsdWVTdGFja0ZhY3RvcnkuY2xhc3MpLmNyZWF0ZVZhbHVlU3RhY2soKTsKKwkJRWFzeU1vY2suZXhwZWN0KGludm9jYXRpb24uZ2V0U3RhY2soKSkuYW5kU3R1YlJldHVybihzdGFjayk7CisJCQorCQlFYXN5TW9jay5yZXBsYXkoYWN0aW9uUmVzcG9uc2UpOworCQlFYXN5TW9jay5yZXBsYXkoaW52b2NhdGlvbik7CisJCQorCQlpbnRlcmNlcHRvci5pbnRlcmNlcHQoaW52b2NhdGlvbik7CisJCQorCQlFYXN5TW9jay52ZXJpZnkoYWN0aW9uUmVzcG9uc2UpOworCQlFYXN5TW9jay52ZXJpZnkoaW52b2NhdGlvbik7CisJCQorCQlhc3NlcnRTYW1lKHN0YWNrLCBzZXNzaW9uLmdldChTVEFDS19GUk9NX0VWRU5UX1BIQVNFKSk7CisJCQorCX0KKwkKKwlwdWJsaWMgdm9pZCB0ZXN0RG9Ob3RSZXN0b3JlVmFsdWVTdGFja0luUmVuZGVyUGhhc2VXaGVuUHJvcGVyUHJnKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisJCVJlbmRlclJlcXVlc3QgcmVuZGVyUmVxdWVzdCA9IEVhc3lNb2NrLmNyZWF0ZU5pY2VNb2NrKFJlbmRlclJlcXVlc3QuY2xhc3MpOworCQlBY3Rpb25JbnZvY2F0aW9uIGludm9jYXRpb24gPSBFYXN5TW9jay5jcmVhdGVOaWNlTW9jayhBY3Rpb25JbnZvY2F0aW9uLmNsYXNzKTsKKwkJCisJCQorCQlWYWx1ZVN0YWNrIGV2ZW50UGhhc2VTdGFjayA9IGNvbnRhaW5lci5nZXRJbnN0YW5jZShWYWx1ZVN0YWNrRmFjdG9yeS5jbGFzcykuY3JlYXRlVmFsdWVTdGFjaygpOworCQlldmVudFBoYXNlU3RhY2suc2V0KCJ0ZXN0S2V5IiwgInRlc3RWYWx1ZSIpOworCQkKKwkJVmFsdWVTdGFjayBjdXJyZW50U3RhY2sgPSBjb250YWluZXIuZ2V0SW5zdGFuY2UoVmFsdWVTdGFja0ZhY3RvcnkuY2xhc3MpLmNyZWF0ZVZhbHVlU3RhY2soKTsKKwkJY3VycmVudFN0YWNrLnNldCgiYW5vdGhlclRlc3RLZXkiLCAiYW5vdGhlclRlc3RWYWx1ZSIpOworCQkKKwkJTWFwPFN0cmluZywgT2JqZWN0PiBjdHhNYXAgPSBuZXcgSGFzaE1hcDxTdHJpbmcsIE9iamVjdD4oKTsKKwkJTWFwPFN0cmluZywgT2JqZWN0PiBzZXNzaW9uID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBPYmplY3Q+KCk7CisJCQorCQlzZXNzaW9uLnB1dChTVEFDS19GUk9NX0VWRU5UX1BIQVNFLCBldmVudFBoYXNlU3RhY2spOworCQkKKwkJY3R4TWFwLnB1dChQSEFTRSwgUkVOREVSX1BIQVNFKTsKKwkJY3R4TWFwLnB1dChSRVFVRVNULCByZW5kZXJSZXF1ZXN0KTsKKwkJCisJCUFjdGlvbkNvbnRleHQgY3R4ID0gbmV3IEFjdGlvbkNvbnRleHQoY3R4TWFwKTsKKwkJY3R4LnNldFNlc3Npb24oc2Vzc2lvbik7CisJCQorCQlFYXN5TW9jay5leHBlY3QoaW52b2NhdGlvbi5nZXRJbnZvY2F0aW9uQ29udGV4dCgpKS5hbmRTdHViUmV0dXJuKGN0eCk7CisJCUVhc3lNb2NrLmV4cGVjdChpbnZvY2F0aW9uLmdldFN0YWNrKCkpLmFuZFN0dWJSZXR1cm4oY3VycmVudFN0YWNrKTsKKwkJRWFzeU1vY2suZXhwZWN0KGludm9jYXRpb24uZ2V0QWN0aW9uKCkpLmFuZFN0dWJSZXR1cm4obmV3IERlZmF1bHRBY3Rpb25TdXBwb3J0KCkpOworCQlFYXN5TW9jay5leHBlY3QocmVuZGVyUmVxdWVzdC5nZXRQYXJhbWV0ZXIoRVZFTlRfQUNUSU9OKSkuYW5kU3R1YlJldHVybigidHJ1ZSIpOworCQkKKwkJRWFzeU1vY2sucmVwbGF5KHJlbmRlclJlcXVlc3QpOworCQlFYXN5TW9jay5yZXBsYXkoaW52b2NhdGlvbik7CisJCQorCQlpbnRlcmNlcHRvci5pbnRlcmNlcHQoaW52b2NhdGlvbik7CisJCQorCQlWYWx1ZVN0YWNrIHJlc3VsdGluZ1N0YWNrID0gaW52b2NhdGlvbi5nZXRTdGFjaygpOworCQkKKwkJYXNzZXJ0TnVsbChyZXN1bHRpbmdTdGFjay5maW5kVmFsdWUoInRlc3RLZXkiKSk7CisJCWFzc2VydEVxdWFscygiYW5vdGhlclRlc3RWYWx1ZSIsIHJlc3VsdGluZ1N0YWNrLmZpbmRWYWx1ZSgiYW5vdGhlclRlc3RLZXkiKSk7CisJCQorCQkKKwl9CisJCisJcHVibGljIHZvaWQgdGVzdFJlc3RvcmVWYWx1ZVN0YWNrSW5SZW5kZXJQaGFzZVdoZW5Ob3RQcm9wZXJQcmcoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwkJUmVuZGVyUmVxdWVzdCByZW5kZXJSZXF1ZXN0ID0gRWFzeU1vY2suY3JlYXRlTmljZU1vY2soUmVuZGVyUmVxdWVzdC5jbGFzcyk7CisJCUFjdGlvbkludm9jYXRpb24gaW52b2NhdGlvbiA9IEVhc3lNb2NrLmNyZWF0ZU5pY2VNb2NrKEFjdGlvbkludm9jYXRpb24uY2xhc3MpOworCQkKKwkJVmFsdWVTdGFjayBldmVudFBoYXNlU3RhY2sgPSBjb250YWluZXIuZ2V0SW5zdGFuY2UoVmFsdWVTdGFja0ZhY3RvcnkuY2xhc3MpLmNyZWF0ZVZhbHVlU3RhY2soKTsKKwkJZXZlbnRQaGFzZVN0YWNrLnNldCgidGVzdEtleSIsICJ0ZXN0VmFsdWUiKTsKKwkJCisJCVZhbHVlU3RhY2sgY3VycmVudFN0YWNrID0gY29udGFpbmVyLmdldEluc3RhbmNlKFZhbHVlU3RhY2tGYWN0b3J5LmNsYXNzKS5jcmVhdGVWYWx1ZVN0YWNrKCk7CisJCWN1cnJlbnRTdGFjay5zZXQoImFub3RoZXJUZXN0S2V5IiwgImFub3RoZXJUZXN0VmFsdWUiKTsKKwkJCisJCUVhc3lNb2NrLmV4cGVjdChpbnZvY2F0aW9uLmdldFN0YWNrKCkpLmFuZFN0dWJSZXR1cm4oY3VycmVudFN0YWNrKTsKKwkJCisJCU1hcDxTdHJpbmcsIE9iamVjdD4gY3R4TWFwID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBPYmplY3Q+KCk7CisJCU1hcDxTdHJpbmcsIE9iamVjdD4gc2Vzc2lvbiA9IG5ldyBIYXNoTWFwPFN0cmluZywgT2JqZWN0PigpOworCQkKKwkJc2Vzc2lvbi5wdXQoU1RBQ0tfRlJPTV9FVkVOVF9QSEFTRSwgZXZlbnRQaGFzZVN0YWNrKTsKKwkJCisJCWN0eE1hcC5wdXQoUEhBU0UsIFJFTkRFUl9QSEFTRSk7CisJCWN0eE1hcC5wdXQoUkVRVUVTVCwgcmVuZGVyUmVxdWVzdCk7CisJCQorCQlBY3Rpb25Db250ZXh0IGN0eCA9IG5ldyBBY3Rpb25Db250ZXh0KGN0eE1hcCk7CisJCWN0eC5zZXRTZXNzaW9uKHNlc3Npb24pOworCQkKKwkJRWFzeU1vY2suZXhwZWN0KGludm9jYXRpb24uZ2V0SW52b2NhdGlvbkNvbnRleHQoKSkuYW5kU3R1YlJldHVybihjdHgpOworCQlFYXN5TW9jay5leHBlY3QoaW52b2NhdGlvbi5nZXRTdGFjaygpKS5hbmRTdHViUmV0dXJuKGN1cnJlbnRTdGFjayk7CisJCUVhc3lNb2NrLmV4cGVjdChpbnZvY2F0aW9uLmdldEFjdGlvbigpKS5hbmRTdHViUmV0dXJuKG5ldyBEaXJlY3RSZW5kZXJGcm9tRXZlbnRBY3Rpb24oKSk7CisJCUVhc3lNb2NrLmV4cGVjdChyZW5kZXJSZXF1ZXN0LmdldFBhcmFtZXRlcihFVkVOVF9BQ1RJT04pKS5hbmRTdHViUmV0dXJuKCJ0cnVlIik7CisJCQorCQlFYXN5TW9jay5yZXBsYXkocmVuZGVyUmVxdWVzdCk7CisJCUVhc3lNb2NrLnJlcGxheShpbnZvY2F0aW9uKTsKKwkJCisJCWludGVyY2VwdG9yLmludGVyY2VwdChpbnZvY2F0aW9uKTsKKwkJCisJCVZhbHVlU3RhY2sgcmVzdWx0aW5nU3RhY2sgPSBpbnZvY2F0aW9uLmdldFN0YWNrKCk7CisJCWFzc2VydEVxdWFscygidGVzdFZhbHVlIiwgcmVzdWx0aW5nU3RhY2suZmluZFZhbHVlKCJ0ZXN0S2V5IikpOworCQlhc3NlcnRFcXVhbHMoImFub3RoZXJUZXN0VmFsdWUiLCByZXN1bHRpbmdTdGFjay5maW5kVmFsdWUoImFub3RoZXJUZXN0S2V5IikpOworCQkKKwkJCisJfQorfQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvcmVzdWx0L1BvcnRsZXRSZXN1bHRUZXN0LmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9yZXN1bHQvUG9ydGxldFJlc3VsdFRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNWZmZjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvcmVzdWx0L1BvcnRsZXRSZXN1bHRUZXN0LmphdmEKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQucmVzdWx0OworCitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworaW1wb3J0IGphdmF4LnBvcnRsZXQuQWN0aW9uUmVxdWVzdDsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LkFjdGlvblJlc3BvbnNlOworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldENvbmZpZzsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRDb250ZXh0OworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldE1vZGU7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0UmVxdWVzdERpc3BhdGNoZXI7CitpbXBvcnQgamF2YXgucG9ydGxldC5SZW5kZXJSZXF1ZXN0OworaW1wb3J0IGphdmF4LnBvcnRsZXQuUmVuZGVyUmVzcG9uc2U7CisKK2ltcG9ydCBqdW5pdC50ZXh0dWkuVGVzdFJ1bm5lcjsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5TdHJ1dHNDb25zdGFudHM7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLlN0cnV0c1N0YXRpY3M7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuUG9ydGxldEFjdGlvbkNvbnN0YW50czsKK2ltcG9ydCBvcmcuam1vY2suTW9jazsKK2ltcG9ydCBvcmcuam1vY2suY2dsaWIuTW9ja09iamVjdFRlc3RDYXNlOworaW1wb3J0IG9yZy5qbW9jay5jb3JlLkNvbnN0cmFpbnQ7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25Db250ZXh0OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbkludm9jYXRpb247CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uUHJveHk7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIubW9jay5Nb2NrQWN0aW9uUHJveHk7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIubW9jay5Nb2NrQWN0aW9uSW52b2NhdGlvbjsKKworLyoqCisgKiBQb3J0bGV0UmVzdWx0VGVzdC4gSW5zZXJ0IGRlc2NyaXB0aW9uLgorICoKKyAqLworcHVibGljIGNsYXNzIFBvcnRsZXRSZXN1bHRUZXN0IGV4dGVuZHMgTW9ja09iamVjdFRlc3RDYXNlIGltcGxlbWVudHMgUG9ydGxldEFjdGlvbkNvbnN0YW50cyB7CisKKyAgICBNb2NrIG1vY2tJbnZvY2F0aW9uID0gbnVsbDsKKyAgICBNb2NrIG1vY2tDb25maWcgPSBudWxsOworICAgIE1vY2sgbW9ja0N0eCA9IG51bGw7CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci5zZXRVcCgpOworICAgICAgICBtb2NrSW52b2NhdGlvbiA9IG1vY2soQWN0aW9uSW52b2NhdGlvbi5jbGFzcyk7CisgICAgICAgIG1vY2tDdHggPSBtb2NrKFBvcnRsZXRDb250ZXh0LmNsYXNzKTsKKworICAgICAgICBNYXAgcGFyYW1NYXAgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBNYXAgc2Vzc2lvbk1hcCA9IG5ldyBIYXNoTWFwKCk7CisKKyAgICAgICAgTWFwIGNvbnRleHQgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBjb250ZXh0LnB1dChBY3Rpb25Db250ZXh0LlNFU1NJT04sIHNlc3Npb25NYXApOworICAgICAgICBjb250ZXh0LnB1dChBY3Rpb25Db250ZXh0LlBBUkFNRVRFUlMsIHBhcmFtTWFwKTsKKyAgICAgICAgY29udGV4dC5wdXQoU3RydXRzU3RhdGljcy5TVFJVVFNfUE9SVExFVF9DT05URVhULCBtb2NrQ3R4LnByb3h5KCkpOworCisgICAgICAgIEFjdGlvbkNvbnRleHQuc2V0Q29udGV4dChuZXcgQWN0aW9uQ29udGV4dChjb250ZXh0KSk7CisKKyAgICAgICAgbW9ja0ludm9jYXRpb24uc3R1YnMoKS5tZXRob2QoImdldEludm9jYXRpb25Db250ZXh0Iikud2lsbChyZXR1cm5WYWx1ZShBY3Rpb25Db250ZXh0LmdldENvbnRleHQoKSkpOworCisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdERvRXhlY3V0ZV9yZW5kZXIoKSB7CisgICAgICAgIE1vY2sgbW9ja1JlcXVlc3QgPSBtb2NrKFJlbmRlclJlcXVlc3QuY2xhc3MpOworICAgICAgICBNb2NrIG1vY2tSZXNwb25zZSA9IG1vY2soUmVuZGVyUmVzcG9uc2UuY2xhc3MpOworICAgICAgICBNb2NrIG1vY2tSZCA9IG1vY2soUG9ydGxldFJlcXVlc3REaXNwYXRjaGVyLmNsYXNzKTsKKworICAgICAgICBSZW5kZXJSZXF1ZXN0IHJlcSA9IChSZW5kZXJSZXF1ZXN0KW1vY2tSZXF1ZXN0LnByb3h5KCk7CisgICAgICAgIFJlbmRlclJlc3BvbnNlIHJlcyA9IChSZW5kZXJSZXNwb25zZSltb2NrUmVzcG9uc2UucHJveHkoKTsKKyAgICAgICAgUG9ydGxldFJlcXVlc3REaXNwYXRjaGVyIHJkID0gKFBvcnRsZXRSZXF1ZXN0RGlzcGF0Y2hlciltb2NrUmQucHJveHkoKTsKKyAgICAgICAgUG9ydGxldENvbnRleHQgY3R4ID0gKFBvcnRsZXRDb250ZXh0KW1vY2tDdHgucHJveHkoKTsKKyAgICAgICAgQWN0aW9uSW52b2NhdGlvbiBpbnYgPSAoQWN0aW9uSW52b2NhdGlvbiltb2NrSW52b2NhdGlvbi5wcm94eSgpOworCisgICAgICAgIENvbnN0cmFpbnRbXSBwYXJhbXMgPSBuZXcgQ29uc3RyYWludFtde3NhbWUocmVxKSwgc2FtZShyZXMpfTsKKyAgICAgICAgbW9ja1JkLmV4cGVjdHMob25jZSgpKS5tZXRob2QoImluY2x1ZGUiKS53aXRoKHBhcmFtcyk7CisgICAgICAgIG1vY2tDdHguZXhwZWN0cyhvbmNlKCkpLm1ldGhvZCgiZ2V0UmVxdWVzdERpc3BhdGNoZXIiKS53aXRoKGVxKCIvV0VCLUlORi9wYWdlcy90ZXN0UGFnZS5qc3AiKSkud2lsbChyZXR1cm5WYWx1ZShyZCkpOworICAgICAgICBtb2NrUmVzcG9uc2UuZXhwZWN0cyhvbmNlKCkpLm1ldGhvZCgic2V0Q29udGVudFR5cGUiKS53aXRoKGVxKCJ0ZXh0L2h0bWwiKSk7CisKKyAgICAgICAgbW9ja1JlcXVlc3Quc3R1YnMoKS5tZXRob2QoImdldFBvcnRsZXRNb2RlIikud2lsbChyZXR1cm5WYWx1ZShQb3J0bGV0TW9kZS5WSUVXKSk7CisKKyAgICAgICAgQWN0aW9uQ29udGV4dCBjdHhNYXAgPSBBY3Rpb25Db250ZXh0LmdldENvbnRleHQoKTsKKyAgICAgICAgY3R4TWFwLnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlJFU1BPTlNFLCByZXMpOworICAgICAgICBjdHhNYXAucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVRVUVTVCwgcmVxKTsKKyAgICAgICAgY3R4TWFwLnB1dChTdHJ1dHNTdGF0aWNzLlNFUlZMRVRfQ09OVEVYVCwgY3R4KTsKKyAgICAgICAgY3R4TWFwLnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlBIQVNFLCBQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlJFTkRFUl9QSEFTRSk7CisKKyAgICAgICAgUG9ydGxldFJlc3VsdCByZXN1bHQgPSBuZXcgUG9ydGxldFJlc3VsdCgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmVzdWx0LmRvRXhlY3V0ZSgiL1dFQi1JTkYvcGFnZXMvdGVzdFBhZ2UuanNwIiwgaW52KTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIGZhaWwoIkVycm9yIG9jY3VyZWQhIik7CisgICAgICAgIH0KKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3REb0V4ZWN1dGVfZXZlbnRfbG9jYXRpb25Jc0FjdGlvbigpIHsKKworICAgICAgICBNb2NrIG1vY2tSZXF1ZXN0ID0gbW9jayhBY3Rpb25SZXF1ZXN0LmNsYXNzKTsKKyAgICAgICAgTW9jayBtb2NrUmVzcG9uc2UgPSBtb2NrKEFjdGlvblJlc3BvbnNlLmNsYXNzKTsKKworICAgICAgICBDb25zdHJhaW50W10gcGFyYW1zID0gbmV3IENvbnN0cmFpbnRbXXtlcShQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLkFDVElPTl9QQVJBTSksIGVxKCJ0ZXN0VmlldyIpfTsKKyAgICAgICAgbW9ja1Jlc3BvbnNlLmV4cGVjdHMob25jZSgpKS5tZXRob2QoInNldFJlbmRlclBhcmFtZXRlciIpLndpdGgocGFyYW1zKTsKKyAgICAgICAgcGFyYW1zID0gbmV3IENvbnN0cmFpbnRbXXtlcShQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLk1PREVfUEFSQU0pLCBlcShQb3J0bGV0TW9kZS5WSUVXLnRvU3RyaW5nKCkpfTsKKyAgICAgICAgbW9ja1Jlc3BvbnNlLmV4cGVjdHMob25jZSgpKS5tZXRob2QoInNldFJlbmRlclBhcmFtZXRlciIpLndpdGgocGFyYW1zKTsKKyAgICAgICAgbW9ja1JlcXVlc3Quc3R1YnMoKS5tZXRob2QoImdldFBvcnRsZXRNb2RlIikud2lsbChyZXR1cm5WYWx1ZShQb3J0bGV0TW9kZS5WSUVXKSk7CisgICAgICAgIEFjdGlvbkNvbnRleHQgY3R4ID0gQWN0aW9uQ29udGV4dC5nZXRDb250ZXh0KCk7CisKKyAgICAgICAgY3R4LnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlJFUVVFU1QsIG1vY2tSZXF1ZXN0LnByb3h5KCkpOworICAgICAgICBjdHgucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVTUE9OU0UsIG1vY2tSZXNwb25zZS5wcm94eSgpKTsKKyAgICAgICAgY3R4LnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlBIQVNFLCBQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLkVWRU5UX1BIQVNFKTsKKworICAgICAgICBQb3J0bGV0UmVzdWx0IHJlc3VsdCA9IG5ldyBQb3J0bGV0UmVzdWx0KCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXN1bHQuZG9FeGVjdXRlKCJ0ZXN0Vmlldy5hY3Rpb24iLCAoQWN0aW9uSW52b2NhdGlvbiltb2NrSW52b2NhdGlvbi5wcm94eSgpKTsKKyAgICAgICAgfQorICAgICAgICBjYXRjaChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIGZhaWwoIkVycm9yIG9jY3VyZWQhIik7CisgICAgICAgIH0KKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3REb0V4ZWN1dGVfZXZlbnRfbG9jYXRpb25Jc0pzcCgpIHsKKyAgICAgICAgTW9jayBtb2NrUmVxdWVzdCA9IG1vY2soQWN0aW9uUmVxdWVzdC5jbGFzcyk7CisgICAgICAgIE1vY2sgbW9ja1Jlc3BvbnNlID0gbW9jayhBY3Rpb25SZXNwb25zZS5jbGFzcyk7CisgICAgICAgIE1vY2sgbW9ja1Byb3h5ID0gbW9jayhBY3Rpb25Qcm94eS5jbGFzcyk7CisKKyAgICAgICAgQ29uc3RyYWludFtdIHBhcmFtcyA9IG5ldyBDb25zdHJhaW50W117ZXEoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5BQ1RJT05fUEFSQU0pLCBlcSgicmVuZGVyRGlyZWN0Iil9OworICAgICAgICBtb2NrUmVzcG9uc2UuZXhwZWN0cyhvbmNlKCkpLm1ldGhvZCgic2V0UmVuZGVyUGFyYW1ldGVyIikud2l0aChwYXJhbXMpOworICAgICAgICBwYXJhbXMgPSBuZXcgQ29uc3RyYWludFtde2VxKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuTU9ERV9QQVJBTSksIGVxKFBvcnRsZXRNb2RlLlZJRVcudG9TdHJpbmcoKSl9OworICAgICAgICBtb2NrUmVzcG9uc2UuZXhwZWN0cyhvbmNlKCkpLm1ldGhvZCgic2V0UmVuZGVyUGFyYW1ldGVyIikud2l0aChwYXJhbXMpOworICAgICAgICBtb2NrUmVxdWVzdC5zdHVicygpLm1ldGhvZCgiZ2V0UG9ydGxldE1vZGUiKS53aWxsKHJldHVyblZhbHVlKFBvcnRsZXRNb2RlLlZJRVcpKTsKKyAgICAgICAgbW9ja1Byb3h5LnN0dWJzKCkubWV0aG9kKCJnZXROYW1lc3BhY2UiKS53aWxsKHJldHVyblZhbHVlKCIiKSk7CisKKyAgICAgICAgbW9ja0ludm9jYXRpb24uc3R1YnMoKS5tZXRob2QoImdldFByb3h5Iikud2lsbChyZXR1cm5WYWx1ZShtb2NrUHJveHkucHJveHkoKSkpOworCisgICAgICAgIEFjdGlvbkNvbnRleHQgY3R4ID0gQWN0aW9uQ29udGV4dC5nZXRDb250ZXh0KCk7CisKKyAgICAgICAgTWFwIHNlc3Npb24gPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAKKyAgICAgICAgY3R4LnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlJFUVVFU1QsIG1vY2tSZXF1ZXN0LnByb3h5KCkpOworICAgICAgICBjdHgucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVTUE9OU0UsIG1vY2tSZXNwb25zZS5wcm94eSgpKTsKKyAgICAgICAgY3R4LnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlBIQVNFLCBQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLkVWRU5UX1BIQVNFKTsKKyAgICAgICAgY3R4LnB1dChBY3Rpb25Db250ZXh0LlNFU1NJT04sIHNlc3Npb24pOworCisgICAgICAgIFBvcnRsZXRSZXN1bHQgcmVzdWx0ID0gbmV3IFBvcnRsZXRSZXN1bHQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdC5kb0V4ZWN1dGUoIi9XRUItSU5GL3BhZ2VzL3Rlc3RKc3AuanNwIiwgKEFjdGlvbkludm9jYXRpb24pbW9ja0ludm9jYXRpb24ucHJveHkoKSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICBmYWlsKCJFcnJvciBvY2N1cmVkISIpOworICAgICAgICB9CisgICAgICAgIGFzc2VydEVxdWFscygiL1dFQi1JTkYvcGFnZXMvdGVzdEpzcC5qc3AiLCBzZXNzaW9uLmdldChSRU5ERVJfRElSRUNUX0xPQ0FUSU9OKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdERvRXhlY3V0ZV9ldmVudF9sb2NhdGlvbkhhc1F1ZXJ5UGFyYW1zKCkgeworICAgICAgICBNb2NrIG1vY2tSZXF1ZXN0ID0gbW9jayhBY3Rpb25SZXF1ZXN0LmNsYXNzKTsKKyAgICAgICAgTW9jayBtb2NrUmVzcG9uc2UgPSBtb2NrKEFjdGlvblJlc3BvbnNlLmNsYXNzKTsKKworICAgICAgICBDb25zdHJhaW50W10gcGFyYW1zID0gbmV3IENvbnN0cmFpbnRbXXtlcShQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLkFDVElPTl9QQVJBTSksIGVxKCJ0ZXN0VmlldyIpfTsKKyAgICAgICAgbW9ja1Jlc3BvbnNlLmV4cGVjdHMob25jZSgpKS5tZXRob2QoInNldFJlbmRlclBhcmFtZXRlciIpLndpdGgocGFyYW1zKTsKKyAgICAgICAgcGFyYW1zID0gbmV3IENvbnN0cmFpbnRbXXtlcSgidGVzdFBhcmFtMSIpLCBlcSgidGVzdFZhbHVlMSIpfTsKKyAgICAgICAgbW9ja1Jlc3BvbnNlLmV4cGVjdHMob25jZSgpKS5tZXRob2QoInNldFJlbmRlclBhcmFtZXRlciIpLndpdGgocGFyYW1zKTsKKyAgICAgICAgcGFyYW1zID0gbmV3IENvbnN0cmFpbnRbXXtlcSgidGVzdFBhcmFtMiIpLCBlcSgidGVzdFZhbHVlMiIpfTsKKyAgICAgICAgbW9ja1Jlc3BvbnNlLmV4cGVjdHMob25jZSgpKS5tZXRob2QoInNldFJlbmRlclBhcmFtZXRlciIpLndpdGgocGFyYW1zKTsKKyAgICAgICAgcGFyYW1zID0gbmV3IENvbnN0cmFpbnRbXXtlcShQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLk1PREVfUEFSQU0pLCBlcShQb3J0bGV0TW9kZS5WSUVXLnRvU3RyaW5nKCkpfTsKKyAgICAgICAgbW9ja1Jlc3BvbnNlLmV4cGVjdHMob25jZSgpKS5tZXRob2QoInNldFJlbmRlclBhcmFtZXRlciIpLndpdGgocGFyYW1zKTsKKyAgICAgICAgbW9ja1JlcXVlc3Quc3R1YnMoKS5tZXRob2QoImdldFBvcnRsZXRNb2RlIikud2lsbChyZXR1cm5WYWx1ZShQb3J0bGV0TW9kZS5WSUVXKSk7CisKKyAgICAgICAgQWN0aW9uQ29udGV4dCBjdHggPSBBY3Rpb25Db250ZXh0LmdldENvbnRleHQoKTsKKworICAgICAgICBjdHgucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVRVUVTVCwgbW9ja1JlcXVlc3QucHJveHkoKSk7CisgICAgICAgIGN0eC5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5SRVNQT05TRSwgbW9ja1Jlc3BvbnNlLnByb3h5KCkpOworICAgICAgICBjdHgucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUEhBU0UsIFBvcnRsZXRBY3Rpb25Db25zdGFudHMuRVZFTlRfUEhBU0UpOworCisgICAgICAgIFBvcnRsZXRSZXN1bHQgcmVzdWx0ID0gbmV3IFBvcnRsZXRSZXN1bHQoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJlc3VsdC5kb0V4ZWN1dGUoInRlc3RWaWV3LmFjdGlvbj90ZXN0UGFyYW0xPXRlc3RWYWx1ZTEmdGVzdFBhcmFtMj10ZXN0VmFsdWUyIiwgKEFjdGlvbkludm9jYXRpb24pbW9ja0ludm9jYXRpb24ucHJveHkoKSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICBmYWlsKCJFcnJvciBvY2N1cmVkISIpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFRpdGxlQW5kQ29udGVudFR5cGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgTW9jayBtb2NrUmVxdWVzdCA9IG1vY2soUmVuZGVyUmVxdWVzdC5jbGFzcyk7CisgICAgICAgIE1vY2sgbW9ja1Jlc3BvbnNlID0gbW9jayhSZW5kZXJSZXNwb25zZS5jbGFzcyk7CisgICAgICAgIE1vY2sgbW9ja1JkID0gbW9jayhQb3J0bGV0UmVxdWVzdERpc3BhdGNoZXIuY2xhc3MpOworCisgICAgICAgIFJlbmRlclJlcXVlc3QgcmVxID0gKFJlbmRlclJlcXVlc3QpbW9ja1JlcXVlc3QucHJveHkoKTsKKyAgICAgICAgUmVuZGVyUmVzcG9uc2UgcmVzID0gKFJlbmRlclJlc3BvbnNlKW1vY2tSZXNwb25zZS5wcm94eSgpOworICAgICAgICBQb3J0bGV0UmVxdWVzdERpc3BhdGNoZXIgcmQgPSAoUG9ydGxldFJlcXVlc3REaXNwYXRjaGVyKW1vY2tSZC5wcm94eSgpOworICAgICAgICBQb3J0bGV0Q29udGV4dCBjdHggPSAoUG9ydGxldENvbnRleHQpbW9ja0N0eC5wcm94eSgpOworCisgICAgICAgIENvbnN0cmFpbnRbXSBwYXJhbXMgPSBuZXcgQ29uc3RyYWludFtde3NhbWUocmVxKSwgc2FtZShyZXMpfTsKKyAgICAgICAgbW9ja1JkLmV4cGVjdHMob25jZSgpKS5tZXRob2QoImluY2x1ZGUiKS53aXRoKHBhcmFtcyk7CisgICAgICAgIG1vY2tDdHguZXhwZWN0cyhvbmNlKCkpLm1ldGhvZCgiZ2V0UmVxdWVzdERpc3BhdGNoZXIiKS53aXRoKGVxKCIvV0VCLUlORi9wYWdlcy90ZXN0UGFnZS5qc3AiKSkud2lsbChyZXR1cm5WYWx1ZShyZCkpOworCisgICAgICAgIG1vY2tSZXF1ZXN0LnN0dWJzKCkubWV0aG9kKCJnZXRQb3J0bGV0TW9kZSIpLndpbGwocmV0dXJuVmFsdWUoUG9ydGxldE1vZGUuVklFVykpOworCisgICAgICAgIEFjdGlvbkNvbnRleHQgY3R4TWFwID0gQWN0aW9uQ29udGV4dC5nZXRDb250ZXh0KCk7CisgICAgICAgIGN0eE1hcC5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5SRVNQT05TRSwgcmVzKTsKKyAgICAgICAgY3R4TWFwLnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLlJFUVVFU1QsIHJlcSk7CisgICAgICAgIGN0eE1hcC5wdXQoU3RydXRzU3RhdGljcy5TRVJWTEVUX0NPTlRFWFQsIGN0eCk7CisgICAgICAgIGN0eE1hcC5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5QSEFTRSwgUG9ydGxldEFjdGlvbkNvbnN0YW50cy5SRU5ERVJfUEhBU0UpOworCisgICAgICAgIG1vY2tSZXNwb25zZS5leHBlY3RzKGF0TGVhc3RPbmNlKCkpLm1ldGhvZCgic2V0VGl0bGUiKS53aXRoKGVxKCJ0ZXN0VGl0bGUiKSk7CisgICAgICAgIG1vY2tSZXNwb25zZS5leHBlY3RzKGF0TGVhc3RPbmNlKCkpLm1ldGhvZCgic2V0Q29udGVudFR5cGUiKS53aXRoKGVxKCJ0ZXN0Q29udGVudFR5cGUiKSk7CisKKyAgICAgICAgUG9ydGxldFJlc3VsdCByZXN1bHQgPSBuZXcgUG9ydGxldFJlc3VsdCgpOworICAgICAgICByZXN1bHQuc2V0VGl0bGUoInRlc3RUaXRsZSIpOworICAgICAgICByZXN1bHQuc2V0Q29udGVudFR5cGUoInRlc3RDb250ZW50VHlwZSIpOworICAgICAgICByZXN1bHQuZG9FeGVjdXRlKCIvV0VCLUlORi9wYWdlcy90ZXN0UGFnZS5qc3AiLCAoQWN0aW9uSW52b2NhdGlvbiltb2NrSW52b2NhdGlvbi5wcm94eSgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZWFyRG93bigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci50ZWFyRG93bigpOworICAgICAgICBBY3Rpb25Db250ZXh0LnNldENvbnRleHQobnVsbCk7CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeworICAgICAgICBUZXN0UnVubmVyLnJ1bihQb3J0bGV0UmVzdWx0VGVzdC5jbGFzcyk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9zZXJ2bGV0L1BvcnRsZXRTZXJ2bGV0UmVxdWVzdFRlc3QuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3NlcnZsZXQvUG9ydGxldFNlcnZsZXRSZXF1ZXN0VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMjZiODYKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvcG9ydGxldC9zZXJ2bGV0L1BvcnRsZXRTZXJ2bGV0UmVxdWVzdFRlc3QuamF2YQpAQCAtMCwwICsxLDQ5IEBACitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LnNlcnZsZXQ7DQorDQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5TZXJ2bGV0QWN0aW9uQ29udGV4dDsNCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLlN0cnV0c1Rlc3RDYXNlOw0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5tYXBwZXIuQWN0aW9uTWFwcGluZzsNCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuUG9ydGxldEFjdGlvbkNvbnN0YW50czsNCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuY29udGV4dC5Qb3J0bGV0QWN0aW9uQ29udGV4dDsNCitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5tb2NrLndlYi5wb3J0bGV0Lk1vY2tQb3J0bGV0Q29udGV4dDsNCitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5tb2NrLndlYi5wb3J0bGV0Lk1vY2tQb3J0bGV0UmVxdWVzdDsNCisNCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uQ29udGV4dDsNCisNCitwdWJsaWMgY2xhc3MgUG9ydGxldFNlcnZsZXRSZXF1ZXN0VGVzdCBleHRlbmRzIFN0cnV0c1Rlc3RDYXNlIHsNCisJDQorCXByaXZhdGUgTW9ja1BvcnRsZXRSZXF1ZXN0IHBvcnRsZXRSZXF1ZXN0Ow0KKwlwcml2YXRlIE1vY2tQb3J0bGV0Q29udGV4dCBwb3J0bGV0Q29udGV4dDsNCisJcHJpdmF0ZSBQb3J0bGV0U2VydmxldFJlcXVlc3QgcmVxdWVzdDsNCisJDQorCXByb3RlY3RlZCB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorCQlzdXBlci5zZXRVcCgpOw0KKwkJcG9ydGxldFJlcXVlc3QgPSBuZXcgTW9ja1BvcnRsZXRSZXF1ZXN0KCk7DQorCQlwb3J0bGV0Q29udGV4dCA9IG5ldyBNb2NrUG9ydGxldENvbnRleHQoKTsNCisJCXJlcXVlc3QgPSBuZXcgUG9ydGxldFNlcnZsZXRSZXF1ZXN0KHBvcnRsZXRSZXF1ZXN0LCBwb3J0bGV0Q29udGV4dCk7DQorCX0NCisJDQorCXB1YmxpYyB2b2lkIHRlc3RHZXRTZXJ2bGV0UGF0aFNob3VsZEhhbmRsZURlZmF1bHRBY3Rpb25FeHRlbnNpb24oKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisJCXBvcnRsZXRSZXF1ZXN0LnNldFBhcmFtZXRlcihQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLkFDVElPTl9QQVJBTSwgImFjdGlvbk5hbWUiKTsNCisJCXJlcXVlc3Quc2V0RXh0ZW5zaW9uKCJhY3Rpb24iKTsNCisJCWFzc2VydEVxdWFscygiYWN0aW9uTmFtZS5hY3Rpb24iLCByZXF1ZXN0LmdldFNlcnZsZXRQYXRoKCkpOw0KKwl9DQorCQ0KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0U2VydmxldFBhdGhTaG91bGRIYW5kbGVDdXN0b21BY3Rpb25FeHRlbnNpb24oKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisJCXBvcnRsZXRSZXF1ZXN0LnNldFBhcmFtZXRlcihQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLkFDVElPTl9QQVJBTSwgImFjdGlvbk5hbWUiKTsNCisJCXJlcXVlc3Quc2V0RXh0ZW5zaW9uKCJjdXN0b20iKTsNCisJCWFzc2VydEVxdWFscygiYWN0aW9uTmFtZS5jdXN0b20iLCByZXF1ZXN0LmdldFNlcnZsZXRQYXRoKCkpOw0KKwl9DQorCQ0KKwlwdWJsaWMgdm9pZCB0ZXN0R2V0U2VydmxldFBhdGhTaG91bGRIYW5kbGVOb0V4dGVuc2lvbigpIHRocm93cyBFeGNlcHRpb24gew0KKwkJcG9ydGxldFJlcXVlc3Quc2V0UGFyYW1ldGVyKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuQUNUSU9OX1BBUkFNLCAiYWN0aW9uTmFtZSIpOw0KKwkJcmVxdWVzdC5zZXRFeHRlbnNpb24oIiIpOw0KKwkJYXNzZXJ0RXF1YWxzKCJhY3Rpb25OYW1lIiwgcmVxdWVzdC5nZXRTZXJ2bGV0UGF0aCgpKTsNCisJfQ0KKwkNCisJcHVibGljIHZvaWQgdGVzdEdldFNlcnZsZXRQYXRoU2hvdWxkSGFuZGxlTXVsdGlwbGVFeHRlbnNpb25zQnlVc2luZ1RoZUZpcnN0KCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorCQlwb3J0bGV0UmVxdWVzdC5zZXRQYXJhbWV0ZXIoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5BQ1RJT05fUEFSQU0sICJhY3Rpb25OYW1lIik7DQorCQlyZXF1ZXN0LnNldEV4dGVuc2lvbigiYWN0aW9uLCwiKTsNCisJCWFzc2VydEVxdWFscygiYWN0aW9uTmFtZS5hY3Rpb24iLCByZXF1ZXN0LmdldFNlcnZsZXRQYXRoKCkpOw0KKwl9DQorfQ0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3V0aWwvUG9ydGxldFVybEhlbHBlclRlc3QuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9wb3J0bGV0L3V0aWwvUG9ydGxldFVybEhlbHBlclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTUyNjZhCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3BvcnRsZXQvdXRpbC9Qb3J0bGV0VXJsSGVscGVyVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTYwIEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LnV0aWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0TW9kZTsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRVUkw7CitpbXBvcnQgamF2YXgucG9ydGxldC5SZW5kZXJSZXF1ZXN0OworaW1wb3J0IGphdmF4LnBvcnRsZXQuUmVuZGVyUmVzcG9uc2U7CitpbXBvcnQgamF2YXgucG9ydGxldC5XaW5kb3dTdGF0ZTsKKworaW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5wb3J0bGV0LmNvbnRleHQuUG9ydGxldEFjdGlvbkNvbnRleHQ7CitpbXBvcnQgb3JnLmVhc3ltb2NrLk1vY2tDb250cm9sOworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uQ29udGV4dDsKKworLyoqCisgKi8KK3B1YmxpYyBjbGFzcyBQb3J0bGV0VXJsSGVscGVyVGVzdCBleHRlbmRzIFRlc3RDYXNlIHsKKworICAgIFJlbmRlclJlc3BvbnNlIHJlbmRlclJlc3BvbnNlOworCisgICAgUmVuZGVyUmVxdWVzdCByZW5kZXJSZXF1ZXN0OworCisgICAgUG9ydGxldFVSTCB1cmw7CisKKyAgICBNb2NrQ29udHJvbCByZW5kZXJSZXNwb25zZUNvbnRyb2w7CisKKyAgICBNb2NrQ29udHJvbCByZW5kZXJSZXF1ZXN0Q29udHJvbDsKKworICAgIE1vY2tDb250cm9sIHBvcnRsZXRVcmxDb250cm9sOworCisgICAgcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgc3VwZXIuc2V0VXAoKTsKKworICAgICAgICByZW5kZXJSZXF1ZXN0Q29udHJvbCA9IE1vY2tDb250cm9sLmNyZWF0ZUNvbnRyb2woUmVuZGVyUmVxdWVzdC5jbGFzcyk7CisgICAgICAgIHJlbmRlclJlc3BvbnNlQ29udHJvbCA9IE1vY2tDb250cm9sLmNyZWF0ZUNvbnRyb2woUmVuZGVyUmVzcG9uc2UuY2xhc3MpOworICAgICAgICBwb3J0bGV0VXJsQ29udHJvbCA9IE1vY2tDb250cm9sLmNyZWF0ZUNvbnRyb2woUG9ydGxldFVSTC5jbGFzcyk7CisKKyAgICAgICAgcmVuZGVyUmVxdWVzdCA9IChSZW5kZXJSZXF1ZXN0KSByZW5kZXJSZXF1ZXN0Q29udHJvbC5nZXRNb2NrKCk7CisgICAgICAgIHJlbmRlclJlc3BvbnNlID0gKFJlbmRlclJlc3BvbnNlKSByZW5kZXJSZXNwb25zZUNvbnRyb2wuZ2V0TW9jaygpOworICAgICAgICB1cmwgPSAoUG9ydGxldFVSTCkgcG9ydGxldFVybENvbnRyb2wuZ2V0TW9jaygpOworCisgICAgICAgIHJlbmRlclJlcXVlc3RDb250cm9sLmV4cGVjdEFuZERlZmF1bHRSZXR1cm4ocmVuZGVyUmVxdWVzdAorICAgICAgICAgICAgICAgIC5nZXRQb3J0bGV0TW9kZSgpLCBQb3J0bGV0TW9kZS5WSUVXKTsKKyAgICAgICAgcmVuZGVyUmVxdWVzdENvbnRyb2wuZXhwZWN0QW5kRGVmYXVsdFJldHVybihyZW5kZXJSZXF1ZXN0CisgICAgICAgICAgICAgICAgLmdldFdpbmRvd1N0YXRlKCksIFdpbmRvd1N0YXRlLk5PUk1BTCk7CisKKyAgICAgICAgTWFwIG1vZGVOYW1lc3BhY2VNYXAgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBtb2RlTmFtZXNwYWNlTWFwLnB1dCgidmlldyIsICIvdmlldyIpOworICAgICAgICBtb2RlTmFtZXNwYWNlTWFwLnB1dCgiZWRpdCIsICIvZWRpdCIpOworICAgICAgICBtb2RlTmFtZXNwYWNlTWFwLnB1dCgiaGVscCIsICIvaGVscCIpOworCisgICAgICAgIE1hcCBjb250ZXh0ID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgY29udGV4dC5wdXQoUG9ydGxldEFjdGlvbkNvbnRleHQuUkVRVUVTVCwgcmVuZGVyUmVxdWVzdCk7CisgICAgICAgIGNvbnRleHQucHV0KFBvcnRsZXRBY3Rpb25Db250ZXh0LlJFU1BPTlNFLCByZW5kZXJSZXNwb25zZSk7CisgICAgICAgIGNvbnRleHQucHV0KFBvcnRsZXRBY3Rpb25Db250ZXh0LlBIQVNFLAorICAgICAgICAgICAgICAgIFBvcnRsZXRBY3Rpb25Db250ZXh0LlJFTkRFUl9QSEFTRSk7CisgICAgICAgIGNvbnRleHQucHV0KFBvcnRsZXRBY3Rpb25Db250ZXh0Lk1PREVfTkFNRVNQQUNFX01BUCwgbW9kZU5hbWVzcGFjZU1hcCk7CisKKyAgICAgICAgQWN0aW9uQ29udGV4dC5zZXRDb250ZXh0KG5ldyBBY3Rpb25Db250ZXh0KGNvbnRleHQpKTsKKworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RDcmVhdGVSZW5kZXJVcmxXaXRoTm9Nb2RlT3JTdGF0ZSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICByZW5kZXJSZXNwb25zZUNvbnRyb2wuZXhwZWN0QW5kUmV0dXJuKHJlbmRlclJlc3BvbnNlLmNyZWF0ZVJlbmRlclVSTCgpLAorICAgICAgICAgICAgICAgIHVybCk7CisKKyAgICAgICAgdXJsLnNldFBvcnRsZXRNb2RlKFBvcnRsZXRNb2RlLlZJRVcpOworICAgICAgICB1cmwuc2V0V2luZG93U3RhdGUoV2luZG93U3RhdGUuTk9STUFMKTsKKyAgICAgICAgdXJsLnNldFBhcmFtZXRlcnMobnVsbCk7CisgICAgICAgIHBvcnRsZXRVcmxDb250cm9sLnNldE1hdGNoZXIoTW9ja0NvbnRyb2wuQUxXQVlTX01BVENIRVIpOworICAgICAgICByZW5kZXJSZXF1ZXN0Q29udHJvbC5yZXBsYXkoKTsKKyAgICAgICAgcmVuZGVyUmVzcG9uc2VDb250cm9sLnJlcGxheSgpOworICAgICAgICBwb3J0bGV0VXJsQ29udHJvbC5yZXBsYXkoKTsKKyAgICAgICAgUG9ydGxldFVybEhlbHBlci5idWlsZFVybCgidGVzdEFjdGlvbiIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAgICAgbmV3IEhhc2hNYXAoKSwgbnVsbCwgbnVsbCwgbnVsbCk7CisgICAgICAgIHBvcnRsZXRVcmxDb250cm9sLnZlcmlmeSgpOworICAgICAgICByZW5kZXJSZXF1ZXN0Q29udHJvbC52ZXJpZnkoKTsKKyAgICAgICAgcmVuZGVyUmVzcG9uc2VDb250cm9sLnZlcmlmeSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RDcmVhdGVSZW5kZXJVcmxXaXRoRGlmZmVyZW50UG9ydGxldE1vZGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcmVuZGVyUmVzcG9uc2VDb250cm9sLmV4cGVjdEFuZFJldHVybihyZW5kZXJSZXNwb25zZS5jcmVhdGVSZW5kZXJVUkwoKSwKKyAgICAgICAgICAgICAgICB1cmwpOworCisgICAgICAgIHVybC5zZXRQb3J0bGV0TW9kZShQb3J0bGV0TW9kZS5FRElUKTsKKyAgICAgICAgdXJsLnNldFdpbmRvd1N0YXRlKFdpbmRvd1N0YXRlLk5PUk1BTCk7CisgICAgICAgIHVybC5zZXRQYXJhbWV0ZXJzKG51bGwpOworICAgICAgICBwb3J0bGV0VXJsQ29udHJvbC5zZXRNYXRjaGVyKE1vY2tDb250cm9sLkFMV0FZU19NQVRDSEVSKTsKKyAgICAgICAgcmVuZGVyUmVxdWVzdENvbnRyb2wucmVwbGF5KCk7CisgICAgICAgIHJlbmRlclJlc3BvbnNlQ29udHJvbC5yZXBsYXkoKTsKKyAgICAgICAgcG9ydGxldFVybENvbnRyb2wucmVwbGF5KCk7CisgICAgICAgIFBvcnRsZXRVcmxIZWxwZXIuYnVpbGRVcmwoInRlc3RBY3Rpb24iLCBudWxsLCBudWxsLAorICAgICAgICAgICAgICAgIG5ldyBIYXNoTWFwKCksIG51bGwsICJlZGl0IiwgbnVsbCk7CisgICAgICAgIHBvcnRsZXRVcmxDb250cm9sLnZlcmlmeSgpOworICAgICAgICByZW5kZXJSZXF1ZXN0Q29udHJvbC52ZXJpZnkoKTsKKyAgICAgICAgcmVuZGVyUmVzcG9uc2VDb250cm9sLnZlcmlmeSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RDcmVhdGVSZW5kZXJVcmxXaXRoRGlmZmVyZW50V2luZG93U3RhdGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcmVuZGVyUmVzcG9uc2VDb250cm9sLmV4cGVjdEFuZFJldHVybihyZW5kZXJSZXNwb25zZS5jcmVhdGVSZW5kZXJVUkwoKSwKKyAgICAgICAgICAgICAgICB1cmwpOworCisgICAgICAgIHVybC5zZXRQb3J0bGV0TW9kZShQb3J0bGV0TW9kZS5WSUVXKTsKKyAgICAgICAgdXJsLnNldFdpbmRvd1N0YXRlKFdpbmRvd1N0YXRlLk1BWElNSVpFRCk7CisgICAgICAgIHVybC5zZXRQYXJhbWV0ZXJzKG51bGwpOworICAgICAgICBwb3J0bGV0VXJsQ29udHJvbC5zZXRNYXRjaGVyKE1vY2tDb250cm9sLkFMV0FZU19NQVRDSEVSKTsKKyAgICAgICAgcmVuZGVyUmVxdWVzdENvbnRyb2wucmVwbGF5KCk7CisgICAgICAgIHJlbmRlclJlc3BvbnNlQ29udHJvbC5yZXBsYXkoKTsKKyAgICAgICAgcG9ydGxldFVybENvbnRyb2wucmVwbGF5KCk7CisgICAgICAgIFBvcnRsZXRVcmxIZWxwZXIuYnVpbGRVcmwoInRlc3RBY3Rpb24iLCBudWxsLCBudWxsLAorICAgICAgICAgICAgICAgIG5ldyBIYXNoTWFwKCksIG51bGwsIG51bGwsICJtYXhpbWl6ZWQiKTsKKyAgICAgICAgcG9ydGxldFVybENvbnRyb2wudmVyaWZ5KCk7CisgICAgICAgIHJlbmRlclJlcXVlc3RDb250cm9sLnZlcmlmeSgpOworICAgICAgICByZW5kZXJSZXNwb25zZUNvbnRyb2wudmVyaWZ5KCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdENyZWF0ZUFjdGlvblVybCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICByZW5kZXJSZXNwb25zZUNvbnRyb2wuZXhwZWN0QW5kUmV0dXJuKHJlbmRlclJlc3BvbnNlLmNyZWF0ZUFjdGlvblVSTCgpLAorICAgICAgICAgICAgICAgIHVybCk7CisKKyAgICAgICAgdXJsLnNldFBvcnRsZXRNb2RlKFBvcnRsZXRNb2RlLlZJRVcpOworICAgICAgICB1cmwuc2V0V2luZG93U3RhdGUoV2luZG93U3RhdGUuTk9STUFMKTsKKyAgICAgICAgdXJsLnNldFBhcmFtZXRlcnMobnVsbCk7CisgICAgICAgIHBvcnRsZXRVcmxDb250cm9sLnNldE1hdGNoZXIoTW9ja0NvbnRyb2wuQUxXQVlTX01BVENIRVIpOworICAgICAgICByZW5kZXJSZXF1ZXN0Q29udHJvbC5yZXBsYXkoKTsKKyAgICAgICAgcmVuZGVyUmVzcG9uc2VDb250cm9sLnJlcGxheSgpOworICAgICAgICBwb3J0bGV0VXJsQ29udHJvbC5yZXBsYXkoKTsKKyAgICAgICAgUG9ydGxldFVybEhlbHBlci5idWlsZFVybCgidGVzdEFjdGlvbiIsIG51bGwsIG51bGwsCisgICAgICAgICAgICAgICAgbmV3IEhhc2hNYXAoKSwgImFjdGlvbiIsIG51bGwsIG51bGwpOworICAgICAgICBwb3J0bGV0VXJsQ29udHJvbC52ZXJpZnkoKTsKKyAgICAgICAgcmVuZGVyUmVxdWVzdENvbnRyb2wudmVyaWZ5KCk7CisgICAgICAgIHJlbmRlclJlc3BvbnNlQ29udHJvbC52ZXJpZnkoKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi92aWV3cy9mcmVlbWFya2VyL1BvcnRsZXRGcmVlbWFya2VyUmVzdWx0VGVzdC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXBvcnRsZXQtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3ZpZXdzL2ZyZWVtYXJrZXIvUG9ydGxldEZyZWVtYXJrZXJSZXN1bHRUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFlNzJhNgotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi92aWV3cy9mcmVlbWFya2VyL1BvcnRsZXRGcmVlbWFya2VyUmVzdWx0VGVzdC5qYXZhCkBAIC0wLDAgKzEsMTA1IEBACisvKg0KKyAqICRJZDogJA0KKyAqDQorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQ0KKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQ0KKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uDQorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQ0KKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUNCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlDQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqDQorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLA0KKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuDQorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZDQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlDQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucw0KKyAqIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnZpZXdzLmZyZWVtYXJrZXI7DQorDQoraW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOw0KK2ltcG9ydCBqYXZhLnV0aWwuTWFwOw0KKw0KK2ltcG9ydCBqYXZheC5wb3J0bGV0LkFjdGlvblJlcXVlc3Q7DQoraW1wb3J0IGphdmF4LnBvcnRsZXQuQWN0aW9uUmVzcG9uc2U7DQoraW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldENvbnRleHQ7DQoraW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldE1vZGU7DQorDQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5TdHJ1dHNTdGF0aWNzOw0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5Qb3J0bGV0QWN0aW9uQ29uc3RhbnRzOw0KK2ltcG9ydCBvcmcuam1vY2suTW9jazsNCitpbXBvcnQgb3JnLmptb2NrLmNnbGliLk1vY2tPYmplY3RUZXN0Q2FzZTsNCitpbXBvcnQgb3JnLmptb2NrLmNvcmUuQ29uc3RyYWludDsNCisNCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uQ29udGV4dDsNCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uSW52b2NhdGlvbjsNCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uUHJveHk7DQorDQorcHVibGljIGNsYXNzIFBvcnRsZXRGcmVlbWFya2VyUmVzdWx0VGVzdCBleHRlbmRzIE1vY2tPYmplY3RUZXN0Q2FzZSBpbXBsZW1lbnRzIFBvcnRsZXRBY3Rpb25Db25zdGFudHMgew0KKw0KKyAgICBNb2NrIG1vY2tJbnZvY2F0aW9uID0gbnVsbDsNCisgICAgTW9jayBtb2NrQ29uZmlnID0gbnVsbDsNCisgICAgTW9jayBtb2NrQ3R4ID0gbnVsbDsNCisNCisgICAgcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisgICAgICAgIHN1cGVyLnNldFVwKCk7DQorICAgICAgICBtb2NrSW52b2NhdGlvbiA9IG1vY2soQWN0aW9uSW52b2NhdGlvbi5jbGFzcyk7DQorICAgICAgICBtb2NrQ3R4ID0gbW9jayhQb3J0bGV0Q29udGV4dC5jbGFzcyk7DQorDQorICAgICAgICBNYXAgcGFyYW1NYXAgPSBuZXcgSGFzaE1hcCgpOw0KKyAgICAgICAgTWFwIHNlc3Npb25NYXAgPSBuZXcgSGFzaE1hcCgpOw0KKw0KKyAgICAgICAgTWFwIGNvbnRleHQgPSBuZXcgSGFzaE1hcCgpOw0KKyAgICAgICAgY29udGV4dC5wdXQoQWN0aW9uQ29udGV4dC5TRVNTSU9OLCBzZXNzaW9uTWFwKTsNCisgICAgICAgIGNvbnRleHQucHV0KEFjdGlvbkNvbnRleHQuUEFSQU1FVEVSUywgcGFyYW1NYXApOw0KKyAgICAgICAgY29udGV4dC5wdXQoU3RydXRzU3RhdGljcy5TVFJVVFNfUE9SVExFVF9DT05URVhULCBtb2NrQ3R4LnByb3h5KCkpOw0KKw0KKyAgICAgICAgQWN0aW9uQ29udGV4dC5zZXRDb250ZXh0KG5ldyBBY3Rpb25Db250ZXh0KGNvbnRleHQpKTsNCisNCisgICAgICAgIG1vY2tJbnZvY2F0aW9uLnN0dWJzKCkubWV0aG9kKCJnZXRJbnZvY2F0aW9uQ29udGV4dCIpLndpbGwocmV0dXJuVmFsdWUoQWN0aW9uQ29udGV4dC5nZXRDb250ZXh0KCkpKTsNCisNCisgICAgfQ0KKw0KKyAgICBwdWJsaWMgdm9pZCB0ZXN0RG9FeGVjdXRlX2V2ZW50X2xvY2F0aW9uSXNKc3AoKSB7DQorICAgICAgICBNb2NrIG1vY2tSZXF1ZXN0ID0gbW9jayhBY3Rpb25SZXF1ZXN0LmNsYXNzKTsNCisgICAgICAgIE1vY2sgbW9ja1Jlc3BvbnNlID0gbW9jayhBY3Rpb25SZXNwb25zZS5jbGFzcyk7DQorICAgICAgICBNb2NrIG1vY2tQcm94eSA9IG1vY2soQWN0aW9uUHJveHkuY2xhc3MpOw0KKw0KKyAgICAgICAgQ29uc3RyYWludFtdIHBhcmFtcyA9IG5ldyBDb25zdHJhaW50W117ZXEoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5BQ1RJT05fUEFSQU0pLCBlcSgiZnJlZW1hcmtlckRpcmVjdCIpfTsNCisgICAgICAgIG1vY2tSZXNwb25zZS5leHBlY3RzKG9uY2UoKSkubWV0aG9kKCJzZXRSZW5kZXJQYXJhbWV0ZXIiKS53aXRoKHBhcmFtcyk7DQorICAgICAgICBwYXJhbXMgPSBuZXcgQ29uc3RyYWludFtde2VxKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuTU9ERV9QQVJBTSksIGVxKFBvcnRsZXRNb2RlLlZJRVcudG9TdHJpbmcoKSl9Ow0KKyAgICAgICAgbW9ja1Jlc3BvbnNlLmV4cGVjdHMob25jZSgpKS5tZXRob2QoInNldFJlbmRlclBhcmFtZXRlciIpLndpdGgocGFyYW1zKTsNCisgICAgICAgIG1vY2tSZXF1ZXN0LnN0dWJzKCkubWV0aG9kKCJnZXRQb3J0bGV0TW9kZSIpLndpbGwocmV0dXJuVmFsdWUoUG9ydGxldE1vZGUuVklFVykpOw0KKyAgICAgICAgbW9ja1Byb3h5LnN0dWJzKCkubWV0aG9kKCJnZXROYW1lc3BhY2UiKS53aWxsKHJldHVyblZhbHVlKCIiKSk7DQorDQorICAgICAgICBtb2NrSW52b2NhdGlvbi5zdHVicygpLm1ldGhvZCgiZ2V0UHJveHkiKS53aWxsKHJldHVyblZhbHVlKG1vY2tQcm94eS5wcm94eSgpKSk7DQorDQorICAgICAgICBBY3Rpb25Db250ZXh0IGN0eCA9IEFjdGlvbkNvbnRleHQuZ2V0Q29udGV4dCgpOw0KKw0KKyAgICAgICAgTWFwIHNlc3Npb24gPSBuZXcgSGFzaE1hcCgpOw0KKyAgICAgICAgDQorICAgICAgICBjdHgucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVRVUVTVCwgbW9ja1JlcXVlc3QucHJveHkoKSk7DQorICAgICAgICBjdHgucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVTUE9OU0UsIG1vY2tSZXNwb25zZS5wcm94eSgpKTsNCisgICAgICAgIGN0eC5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5QSEFTRSwgUG9ydGxldEFjdGlvbkNvbnN0YW50cy5FVkVOVF9QSEFTRSk7DQorICAgICAgICBjdHgucHV0KEFjdGlvbkNvbnRleHQuU0VTU0lPTiwgc2Vzc2lvbik7DQorDQorICAgICAgICBQb3J0bGV0RnJlZW1hcmtlclJlc3VsdCByZXN1bHQgPSBuZXcgUG9ydGxldEZyZWVtYXJrZXJSZXN1bHQoKTsNCisgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgcmVzdWx0LmRvRXhlY3V0ZSgiL1dFQi1JTkYvcGFnZXMvdGVzdEpzcC5mdGwiLCAoQWN0aW9uSW52b2NhdGlvbiltb2NrSW52b2NhdGlvbi5wcm94eSgpKTsNCisgICAgICAgIH0NCisgICAgICAgIGNhdGNoKEV4Y2VwdGlvbiBlKSB7DQorICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsNCisgICAgICAgICAgICBmYWlsKCJFcnJvciBvY2N1cmVkISIpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIvV0VCLUlORi9wYWdlcy90ZXN0SnNwLmZ0bCIsIHNlc3Npb24uZ2V0KFJFTkRFUl9ESVJFQ1RfTE9DQVRJT04pKTsNCisgICAgfQ0KKw0KKw0KKyAgICBwdWJsaWMgdm9pZCB0ZWFyRG93bigpIHRocm93cyBFeGNlcHRpb24gew0KKyAgICAgICAgc3VwZXIudGVhckRvd24oKTsNCisgICAgICAgIEFjdGlvbkNvbnRleHQuc2V0Q29udGV4dChudWxsKTsNCisgICAgfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvdmlld3MvanNwL1BvcnRsZXRVcmxUYWdUZXN0LmphdmEgYi9wbHVnaW5zL3N0cnV0czItcG9ydGxldC1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvdmlld3MvanNwL1BvcnRsZXRVcmxUYWdUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ4N2JjYwotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1wb3J0bGV0LXBsdWdpbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi92aWV3cy9qc3AvUG9ydGxldFVybFRhZ1Rlc3QuamF2YQpAQCAtMCwwICsxLDM5OSBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIudmlld3MuanNwOworCitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldENvbnRleHQ7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0TW9kZTsKK2ltcG9ydCBqYXZheC5wb3J0bGV0LlBvcnRsZXRNb2RlRXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnBvcnRsZXQuUG9ydGxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXgucG9ydGxldC5Qb3J0bGV0VVJMOworaW1wb3J0IGphdmF4LnBvcnRsZXQuV2luZG93U3RhdGU7CitpbXBvcnQgamF2YXgucG9ydGxldC5XaW5kb3dTdGF0ZUV4Y2VwdGlvbjsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5TZXJ2bGV0QWN0aW9uQ29udGV4dDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuU3RydXRzU3RhdGljczsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuU3RydXRzVGVzdENhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLnBvcnRsZXQuUG9ydGxldEFjdGlvbkNvbnN0YW50czsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC5zZXJ2bGV0LlBvcnRsZXRTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIucG9ydGxldC51dGlsLlBvcnRsZXRVcmxIZWxwZXI7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5tb2NrLndlYi5wb3J0bGV0Lk1vY2tQb3J0YWxDb250ZXh0OworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsubW9jay53ZWIucG9ydGxldC5Nb2NrUG9ydGxldENvbnRleHQ7CitpbXBvcnQgb3JnLnNwcmluZ2ZyYW1ld29yay5tb2NrLndlYi5wb3J0bGV0Lk1vY2tQb3J0bGV0VVJMOworaW1wb3J0IG9yZy5zcHJpbmdmcmFtZXdvcmsubW9jay53ZWIucG9ydGxldC5Nb2NrUmVuZGVyUmVxdWVzdDsKK2ltcG9ydCBvcmcuc3ByaW5nZnJhbWV3b3JrLm1vY2sud2ViLnBvcnRsZXQuTW9ja1JlbmRlclJlc3BvbnNlOworCitpbXBvcnQgY29tLm1vY2tvYmplY3RzLnNlcnZsZXQuTW9ja0pzcFdyaXRlcjsKK2ltcG9ydCBjb20ubW9ja29iamVjdHMuc2VydmxldC5Nb2NrUGFnZUNvbnRleHQ7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uQ29udGV4dDsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5tb2NrLk1vY2tBY3Rpb25JbnZvY2F0aW9uOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLm1vY2suTW9ja0FjdGlvblByb3h5OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnV0aWwuVmFsdWVTdGFjazsKKworLyoqCisgKi8KK0BTdXBwcmVzc1dhcm5pbmdzKCJ1bmNoZWNrZWQiKQorcHVibGljIGNsYXNzIFBvcnRsZXRVcmxUYWdUZXN0IGV4dGVuZHMgU3RydXRzVGVzdENhc2UgeworCisJcHJpdmF0ZSBVUkxUYWcgdGFnID0gbmV3IFVSTFRhZygpOworCisJcHJpdmF0ZSBWYWx1ZVN0YWNrIHN0YWNrID0gbnVsbDsKKworCXByaXZhdGUgQWN0aW9uQ29udGV4dCBjb250ZXh0ID0gbnVsbDsKKworCXByaXZhdGUgTW9ja1JlbmRlclJlcXVlc3QgcmVuZGVyUmVxdWVzdDsKKworCXByaXZhdGUgTW9ja1BvcnRsZXRVcmwgcmVuZGVyVXJsOworCisJcHJpdmF0ZSBNb2NrUG9ydGxldFVybCBhY3Rpb25Vcmw7CisKKwlwcml2YXRlIE1vY2tSZW5kZXJSZXNwb25zZSByZW5kZXJSZXNwb25zZTsKKworCXByaXZhdGUgTW9ja1BhZ2VDb250ZXh0IHBhZ2VDb250ZXh0OworCisJcHJpdmF0ZSBNb2NrQWN0aW9uSW52b2NhdGlvbiBhY3Rpb25JbnZvY2F0aW9uOworCisJcHJpdmF0ZSBNb2NrQWN0aW9uUHJveHkgYWN0aW9uUHJveHk7CisKKwlwcml2YXRlIE1vY2tKc3BXcml0ZXIganNwV3JpdGVyOworCQorCXByaXZhdGUgTW9ja1BvcnRsZXRDb250ZXh0IHBvcnRsZXRDb250ZXh0OworCisJcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwkJc3VwZXIuc2V0VXAoKTsKKworCQljb250ZXh0ID0gQWN0aW9uQ29udGV4dC5nZXRDb250ZXh0KCk7CisJCXN0YWNrID0gY29udGV4dC5nZXRWYWx1ZVN0YWNrKCk7CisKKwkJcG9ydGxldENvbnRleHQgPSBuZXcgTW9ja1BvcnRsZXRDb250ZXh0KCk7CisJCXJlbmRlclJlcXVlc3QgPSBuZXcgTW9ja1JlbmRlclJlcXVlc3QoKTsKKwkJcmVuZGVyUmVxdWVzdC5zZXRBdHRyaWJ1dGUoU2VydmxldEFjdGlvbkNvbnRleHQuU1RSVVRTX1ZBTFVFU1RBQ0tfS0VZLCBzdGFjayk7CisJCXJlbmRlclVybCA9IG5ldyBNb2NrUG9ydGxldFVybCgicmVuZGVyIik7CisJCWFjdGlvblVybCA9IG5ldyBNb2NrUG9ydGxldFVybCgiYWN0aW9uIik7CisJCXJlbmRlclJlc3BvbnNlID0gbmV3IE1vY2tSZW5kZXJSZXNwb25zZSgpIHsKKwkJCUBPdmVycmlkZQorCQkJcHVibGljIFBvcnRsZXRVUkwgY3JlYXRlUmVuZGVyVVJMKCkgeworCQkJCXJldHVybiByZW5kZXJVcmw7CisJCQl9CisKKwkJCUBPdmVycmlkZQorCQkJcHVibGljIFBvcnRsZXRVUkwgY3JlYXRlQWN0aW9uVVJMKCkgeworCQkJCXJldHVybiBhY3Rpb25Vcmw7CisJCQl9CisJCX07CisKKwkJTWFwIG1vZGVNYXAgPSBuZXcgSGFzaE1hcCgpOworCQltb2RlTWFwLnB1dChQb3J0bGV0TW9kZS5WSUVXLCAiL3ZpZXciKTsKKwkJbW9kZU1hcC5wdXQoUG9ydGxldE1vZGUuSEVMUCwgIi9oZWxwIik7CisJCW1vZGVNYXAucHV0KFBvcnRsZXRNb2RlLkVESVQsICIvZWRpdCIpOworCisJCWNvbnRleHQucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVRVUVTVCwgcmVuZGVyUmVxdWVzdCk7CisJCWNvbnRleHQucHV0KFBvcnRsZXRBY3Rpb25Db25zdGFudHMuUkVTUE9OU0UsIHJlbmRlclJlc3BvbnNlKTsKKwkJY29udGV4dC5wdXQoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5QSEFTRSwgUG9ydGxldEFjdGlvbkNvbnN0YW50cy5SRU5ERVJfUEhBU0UpOworCQljb250ZXh0LnB1dChQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLk1PREVfTkFNRVNQQUNFX01BUCwgbW9kZU1hcCk7CisJCWNvbnRleHQucHV0KFN0cnV0c1N0YXRpY3MuU1RSVVRTX1BPUlRMRVRfQ09OVEVYVCwgcG9ydGxldENvbnRleHQpOworCisJCWFjdGlvbkludm9jYXRpb24gPSBuZXcgTW9ja0FjdGlvbkludm9jYXRpb24oKTsKKwkJYWN0aW9uUHJveHkgPSBuZXcgTW9ja0FjdGlvblByb3h5KCk7CisKKwkJYWN0aW9uSW52b2NhdGlvbi5zZXRBY3Rpb24obmV3IE9iamVjdCgpKTsKKwkJYWN0aW9uSW52b2NhdGlvbi5zZXRQcm94eShhY3Rpb25Qcm94eSk7CisJCWFjdGlvbkludm9jYXRpb24uc2V0U3RhY2soc3RhY2spOworCisJCWNvbnRleHQuc2V0QWN0aW9uSW52b2NhdGlvbihhY3Rpb25JbnZvY2F0aW9uKTsKKworCQlwYWdlQ29udGV4dCA9IG5ldyBNb2NrUGFnZUNvbnRleHQoKTsKKwkJcGFnZUNvbnRleHQuc2V0UmVxdWVzdChuZXcgUG9ydGxldFNlcnZsZXRSZXF1ZXN0KHJlbmRlclJlcXVlc3QsIG51bGwpKTsKKwkJanNwV3JpdGVyID0gbmV3IE1vY2tKc3BXcml0ZXIoKTsKKwkJcGFnZUNvbnRleHQuc2V0SnNwV3JpdGVyKGpzcFdyaXRlcik7CisKKwkJdGFnLnNldFBhZ2VDb250ZXh0KHBhZ2VDb250ZXh0KTsKKworCX0KKworCXB1YmxpYyB2b2lkIHRlc3RFbnN1cmVQYXJhbXNBcmVTdHJpbmdBcnJheXMoKSB7CisJCU1hcCBwYXJhbXMgPSBuZXcgSGFzaE1hcCgpOworCQlwYXJhbXMucHV0KCJwYXJhbTEiLCAiVGVzdDEiKTsKKwkJcGFyYW1zLnB1dCgicGFyYW0yIiwgbmV3IFN0cmluZ1tdIHsgIlRlc3QyIiB9KTsKKworCQlNYXAgcmVzdWx0ID0gUG9ydGxldFVybEhlbHBlci5lbnN1cmVQYXJhbXNBcmVTdHJpbmdBcnJheXMocGFyYW1zKTsKKwkJYXNzZXJ0RXF1YWxzKDIsIHJlc3VsdC5zaXplKCkpOworCQlhc3NlcnRUcnVlKHJlc3VsdC5nZXQoInBhcmFtMSIpIGluc3RhbmNlb2YgU3RyaW5nW10pOworCX0KKworCXB1YmxpYyB2b2lkIHRlc3RTZXRXaW5kb3dTdGF0ZSgpIHRocm93cyBFeGNlcHRpb24geworCisJCXRhZy5zZXRBY3Rpb24oInRlc3RBY3Rpb24iKTsKKwkJdGFnLnNldFdpbmRvd1N0YXRlKCJtYXhpbWl6ZWQiKTsKKwkJdGFnLmRvU3RhcnRUYWcoKTsKKwkJdGFnLmRvRW5kVGFnKCk7CisKKwkJYXNzZXJ0RXF1YWxzKCIvdmlldy90ZXN0QWN0aW9uIiwgcmVuZGVyVXJsLmdldFBhcmFtZXRlcihQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLkFDVElPTl9QQVJBTSkpOworCQlhc3NlcnRFcXVhbHMoUG9ydGxldE1vZGUuVklFVy50b1N0cmluZygpLCByZW5kZXJVcmwuZ2V0UGFyYW1ldGVyKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuTU9ERV9QQVJBTSkpOworCQlhc3NlcnRFcXVhbHMoUG9ydGxldE1vZGUuVklFVywgcmVuZGVyVXJsLmdldFBvcnRsZXRNb2RlKCkpOworCQlhc3NlcnRFcXVhbHMoV2luZG93U3RhdGUuTUFYSU1JWkVELCByZW5kZXJVcmwuZ2V0V2luZG93U3RhdGUoKSk7CisKKwl9CisKKwlwdWJsaWMgdm9pZCB0ZXN0U2V0UG9ydGxldE1vZGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworCQl0YWcuc2V0QWN0aW9uKCJ0ZXN0QWN0aW9uIik7CisJCXRhZy5zZXRQb3J0bGV0TW9kZSgiaGVscCIpOworCQl0YWcuZG9TdGFydFRhZygpOworCQl0YWcuZG9FbmRUYWcoKTsKKworCQlhc3NlcnRFcXVhbHMoIi9oZWxwL3Rlc3RBY3Rpb24iLCByZW5kZXJVcmwuZ2V0UGFyYW1ldGVyKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuQUNUSU9OX1BBUkFNKSk7CisJCWFzc2VydEVxdWFscyhQb3J0bGV0TW9kZS5IRUxQLnRvU3RyaW5nKCksIHJlbmRlclVybC5nZXRQYXJhbWV0ZXIoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5NT0RFX1BBUkFNKSk7CisJCWFzc2VydEVxdWFscyhQb3J0bGV0TW9kZS5IRUxQLCByZW5kZXJVcmwuZ2V0UG9ydGxldE1vZGUoKSk7CisJCWFzc2VydEVxdWFscyhXaW5kb3dTdGF0ZS5OT1JNQUwsIHJlbmRlclVybC5nZXRXaW5kb3dTdGF0ZSgpKTsKKwl9CisKKwlwdWJsaWMgdm9pZCB0ZXN0VXJsV2l0aFF1ZXJ5UGFyYW1zKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKwkJdGFnLnNldEFjdGlvbigidGVzdEFjdGlvbj90ZXN0UGFyYW0xPXRlc3RWYWx1ZTEiKTsKKwkJdGFnLmRvU3RhcnRUYWcoKTsKKwkJdGFnLmRvRW5kVGFnKCk7CisKKwkJYXNzZXJ0RXF1YWxzKCIvdmlldy90ZXN0QWN0aW9uIiwgcmVuZGVyVXJsLmdldFBhcmFtZXRlcihQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLkFDVElPTl9QQVJBTSkpOworCQlhc3NlcnRFcXVhbHMoInRlc3RWYWx1ZTEiLCByZW5kZXJVcmwuZ2V0UGFyYW1ldGVyKCJ0ZXN0UGFyYW0xIikpOworCQlhc3NlcnRFcXVhbHMoUG9ydGxldE1vZGUuVklFVy50b1N0cmluZygpLCByZW5kZXJVcmwuZ2V0UGFyYW1ldGVyKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuTU9ERV9QQVJBTSkpOworCQlhc3NlcnRFcXVhbHMoUG9ydGxldE1vZGUuVklFVywgcmVuZGVyVXJsLmdldFBvcnRsZXRNb2RlKCkpOworCQlhc3NlcnRFcXVhbHMoV2luZG93U3RhdGUuTk9STUFMLCByZW5kZXJVcmwuZ2V0V2luZG93U3RhdGUoKSk7CisJfQorCisJcHVibGljIHZvaWQgdGVzdEFjdGlvblVybCgpIHRocm93cyBFeGNlcHRpb24geworCisJCXRhZy5zZXRBY3Rpb24oInRlc3RBY3Rpb24iKTsKKwkJdGFnLnNldFBvcnRsZXRVcmxUeXBlKCJhY3Rpb24iKTsKKwkJdGFnLmRvU3RhcnRUYWcoKTsKKwkJdGFnLmRvRW5kVGFnKCk7CisKKwkJYXNzZXJ0RXF1YWxzKCIvdmlldy90ZXN0QWN0aW9uIiwgYWN0aW9uVXJsLmdldFBhcmFtZXRlcihQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLkFDVElPTl9QQVJBTSkpOworCQlhc3NlcnRFcXVhbHMoUG9ydGxldE1vZGUuVklFVywgYWN0aW9uVXJsLmdldFBvcnRsZXRNb2RlKCkpOworCQlhc3NlcnRFcXVhbHMoV2luZG93U3RhdGUuTk9STUFMLCBhY3Rpb25VcmwuZ2V0V2luZG93U3RhdGUoKSk7CisJfQorCisJcHVibGljIHZvaWQgdGVzdFJlc291cmNlVXJsKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisJCXJlbmRlclJlcXVlc3Quc2V0Q29udGV4dFBhdGgoIi9teVBvcnRsZXQiKTsKKwkJanNwV3JpdGVyLnNldEV4cGVjdGVkRGF0YSgiL215UG9ydGxldC9pbWFnZS5naWYiKTsKKwkJdGFnLnNldFZhbHVlKCJpbWFnZS5naWYiKTsKKwkJdGFnLmRvU3RhcnRUYWcoKTsKKwkJdGFnLmRvRW5kVGFnKCk7CisJCWpzcFdyaXRlci52ZXJpZnkoKTsKKwl9CisKKwlwdWJsaWMgdm9pZCB0ZXN0UmVzb3VyY2VVcmxXaXRoTmVzdGVkUGFyYW0oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwkJcmVuZGVyUmVxdWVzdC5zZXRDb250ZXh0UGF0aCgiL215UG9ydGxldCIpOworCQlqc3BXcml0ZXIuc2V0RXhwZWN0ZWREYXRhKCIvbXlQb3J0bGV0L2ltYWdlLmdpZj90ZXN0UGFyYW0xPXRlc3RWYWx1ZTEiKTsKKworCQlQYXJhbVRhZyBwYXJhbVRhZyA9IG5ldyBQYXJhbVRhZygpOworCQlwYXJhbVRhZy5zZXRQYWdlQ29udGV4dChwYWdlQ29udGV4dCk7CisJCXBhcmFtVGFnLnNldFBhcmVudCh0YWcpOworCQlwYXJhbVRhZy5zZXROYW1lKCJ0ZXN0UGFyYW0xIik7CisJCXBhcmFtVGFnLnNldFZhbHVlKCIndGVzdFZhbHVlMSciKTsKKwkJdGFnLnNldFZhbHVlKCJpbWFnZS5naWYiKTsKKwkJdGFnLmRvU3RhcnRUYWcoKTsKKwkJcGFyYW1UYWcuZG9TdGFydFRhZygpOworCQlwYXJhbVRhZy5kb0VuZFRhZygpOworCQl0YWcuZG9FbmRUYWcoKTsKKwkJanNwV3JpdGVyLnZlcmlmeSgpOworCX0KKworCXB1YmxpYyB2b2lkIHRlc3RSZXNvdXJjZVVybFdpdGhUd29OZXN0ZWRQYXJhbSgpIHRocm93cyBFeGNlcHRpb24geworCQlyZW5kZXJSZXF1ZXN0LnNldENvbnRleHRQYXRoKCIvbXlQb3J0bGV0Iik7CisJCWpzcFdyaXRlci5zZXRFeHBlY3RlZERhdGEoIi9teVBvcnRsZXQvaW1hZ2UuZ2lmP3Rlc3RQYXJhbTE9dGVzdFZhbHVlMSZ0ZXN0UGFyYW0yPXRlc3RWYWx1ZTIiKTsKKworCQlQYXJhbVRhZyBwYXJhbVRhZyA9IG5ldyBQYXJhbVRhZygpOworCQlwYXJhbVRhZy5zZXRQYWdlQ29udGV4dChwYWdlQ29udGV4dCk7CisJCXBhcmFtVGFnLnNldFBhcmVudCh0YWcpOworCQlwYXJhbVRhZy5zZXROYW1lKCJ0ZXN0UGFyYW0xIik7CisJCXBhcmFtVGFnLnNldFZhbHVlKCIndGVzdFZhbHVlMSciKTsKKwkJUGFyYW1UYWcgcGFyYW1UYWcyID0gbmV3IFBhcmFtVGFnKCk7CisJCXBhcmFtVGFnMi5zZXRQYWdlQ29udGV4dChwYWdlQ29udGV4dCk7CisJCXBhcmFtVGFnMi5zZXRQYXJlbnQodGFnKTsKKwkJcGFyYW1UYWcyLnNldE5hbWUoInRlc3RQYXJhbTIiKTsKKwkJcGFyYW1UYWcyLnNldFZhbHVlKCIndGVzdFZhbHVlMiciKTsKKwkJdGFnLnNldFZhbHVlKCJpbWFnZS5naWYiKTsKKwkJdGFnLmRvU3RhcnRUYWcoKTsKKwkJcGFyYW1UYWcuZG9TdGFydFRhZygpOworCQlwYXJhbVRhZy5kb0VuZFRhZygpOworCQlwYXJhbVRhZzIuZG9TdGFydFRhZygpOworCQlwYXJhbVRhZzIuZG9FbmRUYWcoKTsKKwkJdGFnLmRvRW5kVGFnKCk7CisJCWpzcFdyaXRlci52ZXJpZnkoKTsKKwl9CisJCisJcHVibGljIHZvaWQgdGVzdFJlc291cmNlVXJsV2l0aE5lc3RlZFBhcmFtVGhhdElzTm90U3RyaW5nKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisJCXJlbmRlclJlcXVlc3Quc2V0Q29udGV4dFBhdGgoIi9teVBvcnRsZXQiKTsKKwkJanNwV3JpdGVyLnNldEV4cGVjdGVkRGF0YSgiL215UG9ydGxldC9pbWFnZS5naWY/aWQ9NSIpOworCQkKKwkJUGFyYW1UYWcgcGFyYW1UYWcgPSBuZXcgUGFyYW1UYWcoKTsKKwkJcGFyYW1UYWcuc2V0UGFnZUNvbnRleHQocGFnZUNvbnRleHQpOworCQlwYXJhbVRhZy5zZXRQYXJlbnQodGFnKTsKKwkJcGFyYW1UYWcuc2V0TmFtZSgiaWQiKTsKKwkJcGFyYW1UYWcuc2V0VmFsdWUoIjUiKTsKKwkJCisJCXRhZy5zZXRWYWx1ZSgiaW1hZ2UuZ2lmIik7CisJCXRhZy5kb1N0YXJ0VGFnKCk7CisJCXBhcmFtVGFnLmRvU3RhcnRUYWcoKTsKKwkJcGFyYW1UYWcuZG9FbmRUYWcoKTsKKwkJdGFnLmRvRW5kVGFnKCk7CisJCWpzcFdyaXRlci52ZXJpZnkoKTsKKwl9CisJCisJcHVibGljIHZvaWQgdGVzdFJlc291cmNlVXJsV2l0aE5lc3RlZE9nbmxFeHByZXNzaW9uUGFyYW1UaGF0SXNOb3RTdHJpbmcoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwkJcmVuZGVyUmVxdWVzdC5zZXRDb250ZXh0UGF0aCgiL215UG9ydGxldCIpOworCQlqc3BXcml0ZXIuc2V0RXhwZWN0ZWREYXRhKCIvbXlQb3J0bGV0L2ltYWdlLmdpZj9pZD01Iik7CisJCQorCQlPYmplY3QgbyA9IG5ldyBPYmplY3QoKSB7CisJCQlwdWJsaWMgSW50ZWdlciBnZXRJZCgpIHsKKwkJCQlyZXR1cm4gNTsKKwkJCX0KKwkJfTsKKwkJdGFnLmdldFN0YWNrKCkucHVzaChvKTsKKwkJCisJCVBhcmFtVGFnIHBhcmFtVGFnID0gbmV3IFBhcmFtVGFnKCk7CisJCXBhcmFtVGFnLnNldFBhZ2VDb250ZXh0KHBhZ2VDb250ZXh0KTsKKwkJcGFyYW1UYWcuc2V0UGFyZW50KHRhZyk7CisJCXBhcmFtVGFnLnNldE5hbWUoImlkIik7CisJCXBhcmFtVGFnLnNldFZhbHVlKCJpZCIpOworCQkKKwkJdGFnLnNldFZhbHVlKCJpbWFnZS5naWYiKTsKKwkJdGFnLmRvU3RhcnRUYWcoKTsKKwkJcGFyYW1UYWcuZG9TdGFydFRhZygpOworCQlwYXJhbVRhZy5kb0VuZFRhZygpOworCQl0YWcuZG9FbmRUYWcoKTsKKwkJanNwV3JpdGVyLnZlcmlmeSgpOworCX0KKworCXB1YmxpYyB2b2lkIHRlc3RVcmxXaXRoTWV0aG9kKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisJCXRhZy5zZXRBY3Rpb24oInRlc3RBY3Rpb24iKTsKKwkJdGFnLnNldE1ldGhvZCgiaW5wdXQiKTsKKwkJdGFnLmRvU3RhcnRUYWcoKTsKKwkJdGFnLmRvRW5kVGFnKCk7CisKKwkJYXNzZXJ0RXF1YWxzKCIvdmlldy90ZXN0QWN0aW9uIWlucHV0IiwgcmVuZGVyVXJsLmdldFBhcmFtZXRlcihQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLkFDVElPTl9QQVJBTSkpOworCQlhc3NlcnRFcXVhbHMoUG9ydGxldE1vZGUuVklFVy50b1N0cmluZygpLCByZW5kZXJVcmwuZ2V0UGFyYW1ldGVyKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuTU9ERV9QQVJBTSkpOworCQlhc3NlcnRFcXVhbHMoUG9ydGxldE1vZGUuVklFVywgcmVuZGVyVXJsLmdldFBvcnRsZXRNb2RlKCkpOworCQlhc3NlcnRFcXVhbHMoV2luZG93U3RhdGUuTk9STUFMLCByZW5kZXJVcmwuZ2V0V2luZG93U3RhdGUoKSk7CisJfQorCisJcHVibGljIHZvaWQgdGVzdFVybFdpdGhOb0FjdGlvbk9yTWV0aG9kKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisJCWFjdGlvblByb3h5LnNldEFjdGlvbk5hbWUoImN1cnJlbnRFeGVjdXRpbmdBY3Rpb24iKTsKKwkJYWN0aW9uUHJveHkuc2V0TmFtZXNwYWNlKCIvY3VycmVudE5hbWVzcGFjZSIpOworCQl0YWcuZG9TdGFydFRhZygpOworCQl0YWcuZG9FbmRUYWcoKTsKKworCQlhc3NlcnRFcXVhbHMoIi92aWV3L2N1cnJlbnROYW1lc3BhY2UvY3VycmVudEV4ZWN1dGluZ0FjdGlvbiIsIHJlbmRlclVybAorCQkJCS5nZXRQYXJhbWV0ZXIoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5BQ1RJT05fUEFSQU0pKTsKKwkJYXNzZXJ0RXF1YWxzKFBvcnRsZXRNb2RlLlZJRVcudG9TdHJpbmcoKSwgcmVuZGVyVXJsLmdldFBhcmFtZXRlcihQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLk1PREVfUEFSQU0pKTsKKwkJYXNzZXJ0RXF1YWxzKFBvcnRsZXRNb2RlLlZJRVcsIHJlbmRlclVybC5nZXRQb3J0bGV0TW9kZSgpKTsKKwkJYXNzZXJ0RXF1YWxzKFdpbmRvd1N0YXRlLk5PUk1BTCwgcmVuZGVyVXJsLmdldFdpbmRvd1N0YXRlKCkpOworCX0KKworCXB1YmxpYyB2b2lkIHRlc3RVcmxTaG91bGROb3RJbmNsdWRlUGFyYW1zRnJvbUh0dHBRdWVyeVN0cmluZygpIHRocm93cyBFeGNlcHRpb24geworCisJCVBvcnRsZXRTZXJ2bGV0UmVxdWVzdFdpdGhRdWVyeVN0cmluZyByZXEgPSBuZXcgUG9ydGxldFNlcnZsZXRSZXF1ZXN0V2l0aFF1ZXJ5U3RyaW5nKHJlbmRlclJlcXVlc3QsIG51bGwpOworCQlyZXEuc2V0UXVlcnlTdHJpbmcoInRoaXNQYXJhbVNob3VsZE5vdEJlSW5jbHVkZWQ9dGhpc1ZhbHVlU2hvdWxkTm90QmVJbmNsdWRlZCIpOworCQlwYWdlQ29udGV4dC5zZXRSZXF1ZXN0KHJlcSk7CisJCXRhZy5zZXRBY3Rpb24oInRlc3RBY3Rpb24/dGVzdFBhcmFtMT10ZXN0VmFsdWUxIik7CisJCXRhZy5kb1N0YXJ0VGFnKCk7CisJCXRhZy5kb0VuZFRhZygpOworCisJCWFzc2VydEVxdWFscygiL3ZpZXcvdGVzdEFjdGlvbiIsIHJlbmRlclVybC5nZXRQYXJhbWV0ZXIoUG9ydGxldEFjdGlvbkNvbnN0YW50cy5BQ1RJT05fUEFSQU0pKTsKKwkJYXNzZXJ0RXF1YWxzKCJ0ZXN0VmFsdWUxIiwgcmVuZGVyVXJsLmdldFBhcmFtZXRlcigidGVzdFBhcmFtMSIpKTsKKwkJYXNzZXJ0TnVsbChyZW5kZXJVcmwuZ2V0UGFyYW1ldGVyKCJ0aGlzUGFyYW1TaG91bGROb3RCZUluY2x1ZGVkIikpOworCQlhc3NlcnRFcXVhbHMoUG9ydGxldE1vZGUuVklFVy50b1N0cmluZygpLCByZW5kZXJVcmwuZ2V0UGFyYW1ldGVyKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuTU9ERV9QQVJBTSkpOworCQlhc3NlcnRFcXVhbHMoUG9ydGxldE1vZGUuVklFVywgcmVuZGVyVXJsLmdldFBvcnRsZXRNb2RlKCkpOworCQlhc3NlcnRFcXVhbHMoV2luZG93U3RhdGUuTk9STUFMLCByZW5kZXJVcmwuZ2V0V2luZG93U3RhdGUoKSk7CisJfQorCisJcHVibGljIHZvaWQgdGVzdFVybFNob3VsZElnbm9yZUluY2x1ZGVQYXJhbXMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwkJUG9ydGxldFNlcnZsZXRSZXF1ZXN0V2l0aFF1ZXJ5U3RyaW5nIHJlcSA9IG5ldyBQb3J0bGV0U2VydmxldFJlcXVlc3RXaXRoUXVlcnlTdHJpbmcocmVuZGVyUmVxdWVzdCwgbnVsbCk7CisJCXJlcS5zZXRRdWVyeVN0cmluZygidGhpc1BhcmFtU2hvdWxkTm90QmVJbmNsdWRlZD10aGlzVmFsdWVTaG91bGROb3RCZUluY2x1ZGVkIik7CisJCXBhZ2VDb250ZXh0LnNldFJlcXVlc3QocmVxKTsKKwkJdGFnLnNldEFjdGlvbigidGVzdEFjdGlvbj90ZXN0UGFyYW0xPXRlc3RWYWx1ZTEiKTsKKwkJdGFnLnNldEluY2x1ZGVQYXJhbXMoIkdFVCIpOworCQl0YWcuZG9TdGFydFRhZygpOworCQl0YWcuZG9FbmRUYWcoKTsKKworCQlhc3NlcnRFcXVhbHMoIi92aWV3L3Rlc3RBY3Rpb24iLCByZW5kZXJVcmwuZ2V0UGFyYW1ldGVyKFBvcnRsZXRBY3Rpb25Db25zdGFudHMuQUNUSU9OX1BBUkFNKSk7CisJCWFzc2VydEVxdWFscygidGVzdFZhbHVlMSIsIHJlbmRlclVybC5nZXRQYXJhbWV0ZXIoInRlc3RQYXJhbTEiKSk7CisJCWFzc2VydE51bGwocmVuZGVyVXJsLmdldFBhcmFtZXRlcigidGhpc1BhcmFtU2hvdWxkTm90QmVJbmNsdWRlZCIpKTsKKwkJYXNzZXJ0RXF1YWxzKFBvcnRsZXRNb2RlLlZJRVcudG9TdHJpbmcoKSwgcmVuZGVyVXJsLmdldFBhcmFtZXRlcihQb3J0bGV0QWN0aW9uQ29uc3RhbnRzLk1PREVfUEFSQU0pKTsKKwkJYXNzZXJ0RXF1YWxzKFBvcnRsZXRNb2RlLlZJRVcsIHJlbmRlclVybC5nZXRQb3J0bGV0TW9kZSgpKTsKKwkJYXNzZXJ0RXF1YWxzKFdpbmRvd1N0YXRlLk5PUk1BTCwgcmVuZGVyVXJsLmdldFdpbmRvd1N0YXRlKCkpOworCX0KKworCXByaXZhdGUgc3RhdGljIGNsYXNzIFBvcnRsZXRTZXJ2bGV0UmVxdWVzdFdpdGhRdWVyeVN0cmluZyBleHRlbmRzIFBvcnRsZXRTZXJ2bGV0UmVxdWVzdCB7CisKKwkJcHJpdmF0ZSBTdHJpbmcgcXVlcnlTdHJpbmc7CisKKwkJcHVibGljIFBvcnRsZXRTZXJ2bGV0UmVxdWVzdFdpdGhRdWVyeVN0cmluZyhQb3J0bGV0UmVxdWVzdCBwb3J0bGV0UmVxdWVzdCwgUG9ydGxldENvbnRleHQgcG9ydGxldENvbnRleHQpIHsKKwkJCXN1cGVyKHBvcnRsZXRSZXF1ZXN0LCBwb3J0bGV0Q29udGV4dCk7CisJCX0KKworCQlwdWJsaWMgdm9pZCBzZXRRdWVyeVN0cmluZyhTdHJpbmcgcXVlcnlTdHJpbmcpIHsKKwkJCXRoaXMucXVlcnlTdHJpbmcgPSBxdWVyeVN0cmluZzsKKwkJfQorCisJCUBPdmVycmlkZQorCQlwdWJsaWMgU3RyaW5nIGdldFF1ZXJ5U3RyaW5nKCkgeworCQkJcmV0dXJuIHF1ZXJ5U3RyaW5nOworCQl9CisKKwl9CisKKwlwcml2YXRlIHN0YXRpYyBjbGFzcyBNb2NrUG9ydGxldFVybCBleHRlbmRzIE1vY2tQb3J0bGV0VVJMIHsKKworCQlwcml2YXRlIFBvcnRsZXRNb2RlIHBvcnRsZXRNb2RlOworCisJCXByaXZhdGUgV2luZG93U3RhdGUgd2luZG93U3RhdGU7CisKKwkJcHVibGljIE1vY2tQb3J0bGV0VXJsKFN0cmluZyB1cmxUeXBlKSB7CisJCQlzdXBlcihuZXcgTW9ja1BvcnRhbENvbnRleHQoKSwgdXJsVHlwZSk7CisJCX0KKworCQlAT3ZlcnJpZGUKKwkJcHVibGljIHZvaWQgc2V0UG9ydGxldE1vZGUoUG9ydGxldE1vZGUgcG9ydGxldE1vZGUpIHRocm93cyBQb3J0bGV0TW9kZUV4Y2VwdGlvbiB7CisJCQlzdXBlci5zZXRQb3J0bGV0TW9kZShwb3J0bGV0TW9kZSk7CisJCQl0aGlzLnBvcnRsZXRNb2RlID0gcG9ydGxldE1vZGU7CisJCX0KKworCQlwdWJsaWMgUG9ydGxldE1vZGUgZ2V0UG9ydGxldE1vZGUoKSB7CisJCQlyZXR1cm4gcG9ydGxldE1vZGU7CisJCX0KKworCQlAT3ZlcnJpZGUKKwkJcHVibGljIHZvaWQgc2V0V2luZG93U3RhdGUoV2luZG93U3RhdGUgd2luZG93U3RhdGUpIHRocm93cyBXaW5kb3dTdGF0ZUV4Y2VwdGlvbiB7CisJCQlzdXBlci5zZXRXaW5kb3dTdGF0ZSh3aW5kb3dTdGF0ZSk7CisJCQl0aGlzLndpbmRvd1N0YXRlID0gd2luZG93U3RhdGU7CisJCX0KKworCQlwdWJsaWMgV2luZG93U3RhdGUgZ2V0V2luZG93U3RhdGUoKSB7CisJCQlyZXR1cm4gd2luZG93U3RhdGU7CisJCX0KKworCX0KK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9wb20ueG1sIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3BvbS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNlZWRkNwotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9wb20ueG1sCkBAIC0wLDAgKzEsNzcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tCisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworLS0+Cis8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9tYXZlbi12NF8wXzAueHNkIj4KKyAgICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisgICAgPHBhcmVudD4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5zdHJ1dHM8L2dyb3VwSWQ+CisgICAgICAgIDxhcnRpZmFjdElkPnN0cnV0czItcGx1Z2luczwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPHZlcnNpb24+Mi41LVNOQVBTSE9UPC92ZXJzaW9uPgorICAgIDwvcGFyZW50PgorCisgICAgPGFydGlmYWN0SWQ+c3RydXRzMi1zdHJ1dHMxLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICA8cGFja2FnaW5nPmphcjwvcGFja2FnaW5nPgorICAgIDxuYW1lPlN0cnV0cyAyIFN0cnV0cyAxIFBsdWdpbjwvbmFtZT4KKworICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5zdHJ1dHM8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zdHJ1dHMtY29yZTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuMy4xMDwvdmVyc2lvbj4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPiR7cHJvamVjdC5ncm91cElkfTwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPnN0cnV0czItanVuaXQtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisKKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5tb2Nrb2JqZWN0czwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPm1vY2tvYmplY3RzLWNvcmU8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKworICAgICAgICA8IS0tIE1vY2tzIGZvciB1bml0IHRlc3RpbmcgKGJ5IFNwcmluZykgLS0+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yazwvZ3JvdXBJZD4KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy10ZXN0PC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisKKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWNvcmU8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKworICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgIDxncm91cElkPmphdmF4LnNlcnZsZXQ8L2dyb3VwSWQ+CisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5qc3AtYXBpPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHNjb3BlPnByb3ZpZGVkPC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorCisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPHByb3BlcnRpZXM+CisgICAgCTxwcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPlVURi04PC9wcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nPgorICAgIDwvcHJvcGVydGllcz4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9zMS9BY3Rpb25Gb3JtUmVzZXRJbnRlcmNlcHRvci5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL0FjdGlvbkZvcm1SZXNldEludGVyY2VwdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA5NTcxYgotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9zMS9BY3Rpb25Gb3JtUmVzZXRJbnRlcmNlcHRvci5qYXZhCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnMxOworCitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5TZXJ2bGV0QWN0aW9uQ29udGV4dDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5EaXNwYXRjaGVyOworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uSW52b2NhdGlvbjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5jb25maWcuQ29uZmlndXJhdGlvbjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5pbmplY3QuSW5qZWN0OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmludGVyY2VwdG9yLkFic3RyYWN0SW50ZXJjZXB0b3I7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuaW50ZXJjZXB0b3IuU2NvcGVkTW9kZWxEcml2ZW47CisKKy8qKgorICogIENhbGxzIHRoZSByZXNldCgpIG1ldGhvZCBvbiB0aGUgQWN0aW9uRm9ybSwgaWYgaXQgZXhpc3RzLgorICovCitwdWJsaWMgY2xhc3MgQWN0aW9uRm9ybVJlc2V0SW50ZXJjZXB0b3IgZXh0ZW5kcyBBYnN0cmFjdEludGVyY2VwdG9yIHsKKworICAgIHByb3RlY3RlZCBDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb247CisKKyAgICBASW5qZWN0CisgICAgcHVibGljIHZvaWQgc2V0Q29uZmlndXJhdGlvbihDb25maWd1cmF0aW9uIGNvbmZpZykgeworICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWc7CisgICAgfQorICAgIAorICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyBTdHJpbmcgaW50ZXJjZXB0KEFjdGlvbkludm9jYXRpb24gaW52b2NhdGlvbikgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIE9iamVjdCBhY3Rpb24gPSBpbnZvY2F0aW9uLmdldEFjdGlvbigpOworCisgICAgICAgIGlmIChhY3Rpb24gaW5zdGFuY2VvZiBTY29wZWRNb2RlbERyaXZlbikgeworICAgICAgICAgICAgU2NvcGVkTW9kZWxEcml2ZW4gbW9kZWxEcml2ZW4gPSAoU2NvcGVkTW9kZWxEcml2ZW4pIGFjdGlvbjsKKyAgICAgICAgICAgIE9iamVjdCBtb2RlbCA9IG1vZGVsRHJpdmVuLmdldE1vZGVsKCk7CisgICAgICAgICAgICBpZiAobW9kZWwgIT0gbnVsbCAmJiBtb2RlbCBpbnN0YW5jZW9mIEFjdGlvbkZvcm0pIHsKKyAgICAgICAgICAgICAgICBTdHJ1dHMxRmFjdG9yeSBmYWN0b3J5ID0gbmV3IFN0cnV0czFGYWN0b3J5KGNvbmZpZ3VyYXRpb24pOworICAgICAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZyA9IGZhY3RvcnkuY3JlYXRlQWN0aW9uTWFwcGluZyhpbnZvY2F0aW9uLmdldFByb3h5KCkuZ2V0Q29uZmlnKCkpOworICAgICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXEgPSBTZXJ2bGV0QWN0aW9uQ29udGV4dC5nZXRSZXF1ZXN0KCk7CisgICAgICAgICAgICAgICAgKChBY3Rpb25Gb3JtKW1vZGVsKS5yZXNldChtYXBwaW5nLCByZXEpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBpbnZvY2F0aW9uLmludm9rZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9zMS9BY3Rpb25Gb3JtVmFsaWRhdGlvbkludGVyY2VwdG9yLmphdmEgYi9wbHVnaW5zL3N0cnV0czItc3RydXRzMS1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvczEvQWN0aW9uRm9ybVZhbGlkYXRpb25JbnRlcmNlcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxYmUzMzUKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItc3RydXRzMS1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvczEvQWN0aW9uRm9ybVZhbGlkYXRpb25JbnRlcmNlcHRvci5qYXZhCkBAIC0wLDAgKzEsMjM0IEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5zMTsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5uZXQuVVJMOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLlN0cmluZ1Rva2VuaXplcjsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvclJlc291cmNlczsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnM7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuVmFsaWRhdG9yUGx1Z0luOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5TZXJ2bGV0QWN0aW9uQ29udGV4dDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuU3RydXRzRXhjZXB0aW9uOworaW1wb3J0IG9yZy54bWwuc2F4LlNBWEV4Y2VwdGlvbjsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbkNvbnRleHQ7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uSW52b2NhdGlvbjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5UZXh0UHJvdmlkZXI7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuY29uZmlnLkNvbmZpZ3VyYXRpb247CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuaW5qZWN0LkluamVjdDsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5pbnRlcmNlcHRvci5BYnN0cmFjdEludGVyY2VwdG9yOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmludGVyY2VwdG9yLlNjb3BlZE1vZGVsRHJpdmVuOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnV0aWwubG9nZ2luZy5Mb2dnZXI7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIudXRpbC5sb2dnaW5nLkxvZ2dlckZhY3Rvcnk7CisKKy8qKgorICogIENhbGxzIHRoZSB2YWxpZGF0ZSgpIG1ldGhvZCBvbiB0aGUgQWN0aW9uRm9ybSwgaWYgaXQgZXhpc3RzLiAgVGhlIGVycm9ycyBhcmUgaGFuZGxlZAorICogIGxpa2UgcmVndWxhciBYV29yayB2YWxpZGF0aW9uIGVycm9ycy4gIEFjdGlvbi1sZXZlbCB2YWxpZGF0aW9uIGZsYWcgc3VwcG9ydGVkIGlmIHRoZQorICogIGFjdGlvbiBpcyBhIHN1YmNsYXNzIG9mIFN0cnV0czFBY3Rpb24uCisgKi8KK3B1YmxpYyBjbGFzcyBBY3Rpb25Gb3JtVmFsaWRhdGlvbkludGVyY2VwdG9yIGV4dGVuZHMgQWJzdHJhY3RJbnRlcmNlcHRvciB7CisKKyAgICBwcml2YXRlIFN0cmluZyBwYXRobmFtZXM7CisgICAgcHJpdmF0ZSBib29sZWFuIHN0b3BPbkZpcnN0RXJyb3I7CisgICAgcHJpdmF0ZSBib29sZWFuIGluaXRpYWxpemVkID0gZmFsc2U7CisgICAgCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9nZ2VyIExPRyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKEFjdGlvbkZvcm1WYWxpZGF0aW9uSW50ZXJjZXB0b3IuY2xhc3MpOworICAgIAorICAgIC8qKgorICAgICAqIERlbGltaXR0ZXIgZm9yIFZhbGlkYXRvciByZXNvdXJjZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBmaW5hbCBzdGF0aWMgU3RyaW5nIFJFU09VUkNFX0RFTElNID0gIiwiOworICAgIAorICAgIHByb3RlY3RlZCBDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb247CisKKyAgICBASW5qZWN0CisgICAgcHVibGljIHZvaWQgc2V0Q29uZmlndXJhdGlvbihDb25maWd1cmF0aW9uIGNvbmZpZykgeworICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWc7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSB2YWxpZGF0aW9uIHJlc291cmNlcworICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0UmVzb3VyY2VzKFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0KSB7CisgICAgICAgIGlmIChwYXRobmFtZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgQWN0aW9uQ29udGV4dCBjdHggPSBBY3Rpb25Db250ZXh0LmdldENvbnRleHQoKTsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVmFsaWRhdG9yUmVzb3VyY2VzIHJlc291cmNlcyA9IHRoaXMubG9hZFJlc291cmNlcyhzZXJ2bGV0Q29udGV4dCk7CisgICAgCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgU3RyaW5nIHByZWZpeCA9IGN0eC5nZXRBY3Rpb25JbnZvY2F0aW9uKCkuZ2V0UHJveHkoKS5nZXROYW1lc3BhY2UoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzZXJ2bGV0Q29udGV4dC5zZXRBdHRyaWJ1dGUoVmFsaWRhdG9yUGx1Z0luLlZBTElEQVRPUl9LRVkgKyBwcmVmaXgsIHJlc291cmNlcyk7CisgICAgCisgICAgICAgICAgICAgICAgc2VydmxldENvbnRleHQuc2V0QXR0cmlidXRlKFZhbGlkYXRvclBsdWdJbi5TVE9QX09OX0VSUk9SX0tFWSArICcuJworICAgICAgICAgICAgICAgICAgICArIHByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgKHRoaXMuc3RvcE9uRmlyc3RFcnJvciA/IEJvb2xlYW4uVFJVRSA6IEJvb2xlYW4uRkFMU0UpKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN0cnV0c0V4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCBsb2FkIGEgdmFsaWRhdG9yIHJlc291cmNlIGZyb20gJyIgKyBwYXRobmFtZXMgKyAiJyIsIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgQE92ZXJyaWRlCisgICAgcHVibGljIFN0cmluZyBpbnRlcmNlcHQoQWN0aW9uSW52b2NhdGlvbiBpbnZvY2F0aW9uKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgLy8gTGF6eSBsb2FkIHRoZSByZXNvdXJjZXMgYmVjYXVzZSB0aGUgc2VydmxldCBjb250ZXh0IGlzbid0IGF2YWlsYWJsZSBhdCBpbml0KCkgdGltZQorICAgICAgICBzeW5jaHJvbml6ZWQgKHRoaXMpIHsKKyAgICAgICAgICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgICAgICAgICBpbml0UmVzb3VyY2VzKFNlcnZsZXRBY3Rpb25Db250ZXh0LmdldFNlcnZsZXRDb250ZXh0KCkpOworICAgICAgICAgICAgICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBPYmplY3QgYWN0aW9uID0gaW52b2NhdGlvbi5nZXRBY3Rpb24oKTsKKworICAgICAgICAKKyAgICAgICAgaWYgKChhY3Rpb24gaW5zdGFuY2VvZiBTY29wZWRNb2RlbERyaXZlbikgJiYKKyAgICAgICAgICAgICghKGFjdGlvbiBpbnN0YW5jZW9mIFN0cnV0czFBY3Rpb24pIHx8ICgoU3RydXRzMUFjdGlvbilhY3Rpb24pLmlzVmFsaWRhdGUoKSkpIHsKKyAgICAgICAgICAgIFNjb3BlZE1vZGVsRHJpdmVuIG1vZGVsRHJpdmVuID0gKFNjb3BlZE1vZGVsRHJpdmVuKSBhY3Rpb247CisgICAgICAgICAgICBPYmplY3QgbW9kZWwgPSBtb2RlbERyaXZlbi5nZXRNb2RlbCgpOworICAgICAgICAgICAgaWYgKG1vZGVsICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxID0gU2VydmxldEFjdGlvbkNvbnRleHQuZ2V0UmVxdWVzdCgpOworICAgICAgICAgICAgICAgIFN0cnV0czFGYWN0b3J5IHN0cnV0c0ZhY3RvcnkgPSBuZXcgU3RydXRzMUZhY3RvcnkoY29uZmlndXJhdGlvbik7CisgICAgICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nID0gc3RydXRzRmFjdG9yeS5jcmVhdGVBY3Rpb25NYXBwaW5nKGludm9jYXRpb24uZ2V0UHJveHkoKS5nZXRDb25maWcoKSk7CisgICAgICAgICAgICAgICAgTW9kdWxlQ29uZmlnIG1vZHVsZUNvbmZpZyA9IHN0cnV0c0ZhY3RvcnkuY3JlYXRlTW9kdWxlQ29uZmlnKGludm9jYXRpb24uZ2V0UHJveHkoKS5nZXRDb25maWcoKS5nZXRQYWNrYWdlTmFtZSgpKTsKKyAgICAgICAgICAgICAgICByZXEuc2V0QXR0cmlidXRlKEdsb2JhbHMuTU9EVUxFX0tFWSwgbW9kdWxlQ29uZmlnKTsKKyAgICAgICAgICAgICAgICByZXEuc2V0QXR0cmlidXRlKEdsb2JhbHMuTUVTU0FHRVNfS0VZLCBuZXcgV3JhcHBlck1lc3NhZ2VSZXNvdXJjZXMoKFRleHRQcm92aWRlcilpbnZvY2F0aW9uLmdldEFjdGlvbigpKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbWFwcGluZy5zZXRBdHRyaWJ1dGUobW9kZWxEcml2ZW4uZ2V0U2NvcGVLZXkoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtID0gKEFjdGlvbkZvcm0pIG1vZGVsOworICAgICAgICAgICAgICAgIGZvcm0uc2V0U2VydmxldChuZXcgQWN0aW9uU2VydmxldCgpeworICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU2VydmxldENvbnRleHQgZ2V0U2VydmxldENvbnRleHQoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gU2VydmxldEFjdGlvbkNvbnRleHQuZ2V0U2VydmxldENvbnRleHQoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIEFjdGlvbkVycm9ycyBlcnJvcnMgPSBmb3JtLnZhbGlkYXRlKG1hcHBpbmcsIHJlcSk7CisgICAgICAgICAgICAgICAgc3RydXRzRmFjdG9yeS5jb252ZXJ0RXJyb3JzKGVycm9ycywgYWN0aW9uKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGludm9jYXRpb24uaW52b2tlKCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgdGhlIHZhbGlkYXRvciByZXNvdXJjZXMgZm9yIHRoaXMgbW9kdWxlLgorICAgICAqCisgICAgICogQHRocm93cyBJT0V4Y2VwdGlvbiAgICAgIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBpcyBlbmNvdW50ZXJlZAorICAgICAqIEB0aHJvd3MgU2VydmxldEV4Y2VwdGlvbiBpZiB3ZSBjYW5ub3QgaW5pdGlhbGl6ZSB0aGVzZSByZXNvdXJjZXMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVmFsaWRhdG9yUmVzb3VyY2VzIGxvYWRSZXNvdXJjZXMoU2VydmxldENvbnRleHQgY3R4KQorICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIFNlcnZsZXRFeGNlcHRpb24geworICAgICAgICBpZiAoKHBhdGhuYW1lcyA9PSBudWxsKSB8fCAocGF0aG5hbWVzLmxlbmd0aCgpIDw9IDApKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZ1Rva2VuaXplciBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIocGF0aG5hbWVzLCBSRVNPVVJDRV9ERUxJTSk7CisKKyAgICAgICAgTGlzdCB1cmxMaXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBWYWxpZGF0b3JSZXNvdXJjZXMgcmVzb3VyY2VzID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHdoaWxlIChzdC5oYXNNb3JlVG9rZW5zKCkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdmFsaWRhdG9yUnVsZXMgPSBzdC5uZXh0VG9rZW4oKS50cmltKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoTE9HLmlzSW5mb0VuYWJsZWQoKSkgeworICAgICAgICAgICAgICAgICAgICBMT0cuaW5mbygiTG9hZGluZyB2YWxpZGF0aW9uIHJ1bGVzIGZpbGUgZnJvbSAnIgorICAgICAgICAgICAgICAgICAgICAgICAgKyB2YWxpZGF0b3JSdWxlcyArICInIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgVVJMIGlucHV0ID0KKyAgICAgICAgICAgICAgICAgICAgY3R4LmdldFJlc291cmNlKHZhbGlkYXRvclJ1bGVzKTsKKworICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjb25maWcgaXNuJ3QgaW4gdGhlIHNlcnZsZXQgY29udGV4dCwgdHJ5IHRoZSBjbGFzcworICAgICAgICAgICAgICAgIC8vIGxvYWRlciB3aGljaCBhbGxvd3MgdGhlIGNvbmZpZyBmaWxlcyB0byBiZSBzdG9yZWQgaW4gYSBqYXIKKyAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBpbnB1dCA9IGdldENsYXNzKCkuZ2V0UmVzb3VyY2UodmFsaWRhdG9yUnVsZXMpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIHVybExpc3QuYWRkKGlucHV0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgU2VydmxldEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICJTa2lwcGluZyB2YWxpZGF0aW9uIHJ1bGVzIGZpbGUgZnJvbSAnIgorICAgICAgICAgICAgICAgICAgICAgICAgKyB2YWxpZGF0b3JSdWxlcyArICInLiAgTm8gdXJsIGNvdWxkIGJlIGxvY2F0ZWQuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQgdXJsU2l6ZSA9IHVybExpc3Quc2l6ZSgpOworICAgICAgICAgICAgU3RyaW5nW10gdXJsQXJyYXkgPSBuZXcgU3RyaW5nW3VybFNpemVdOworCisgICAgICAgICAgICBmb3IgKGludCB1cmxJbmRleCA9IDA7IHVybEluZGV4IDwgdXJsU2l6ZTsgdXJsSW5kZXgrKykgeworICAgICAgICAgICAgICAgIFVSTCB1cmwgPSAoVVJMKSB1cmxMaXN0LmdldCh1cmxJbmRleCk7CisKKyAgICAgICAgICAgICAgICB1cmxBcnJheVt1cmxJbmRleF0gPSB1cmwudG9FeHRlcm5hbEZvcm0oKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzb3VyY2VzID0gIG5ldyBWYWxpZGF0b3JSZXNvdXJjZXModXJsQXJyYXkpOworICAgICAgICB9IGNhdGNoIChTQVhFeGNlcHRpb24gc2V4KSB7CisgICAgICAgICAgICBMT0cuZXJyb3IoIlNraXBwaW5nIGFsbCB2YWxpZGF0aW9uIiwgc2V4KTsKKyAgICAgICAgICAgIHRocm93IG5ldyBTdHJ1dHNFeGNlcHRpb24oIlNraXBwaW5nIGFsbCB2YWxpZGF0aW9uIGJlY2F1c2UgdGhlIHZhbGlkYXRpb24gZmlsZXMgY2Fubm90IGJlIGxvYWRlZCIsIHNleCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlc291cmNlczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHRoZSBwYXRobmFtZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhdGhuYW1lcygpIHsKKyAgICAgICAgcmV0dXJuIHBhdGhuYW1lczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gcGF0aE5hbWVzIHRoZSBwYXRobmFtZXMgdG8gc2V0CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGF0aG5hbWVzKFN0cmluZyBwYXRoTmFtZXMpIHsKKyAgICAgICAgdGhpcy5wYXRobmFtZXMgPSBwYXRoTmFtZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHJldHVybiB0aGUgc3RvcE9uRmlyc3RFcnJvcgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzU3RvcE9uRmlyc3RFcnJvcigpIHsKKyAgICAgICAgcmV0dXJuIHN0b3BPbkZpcnN0RXJyb3I7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHN0b3BPbkZpcnN0RXJyb3IgdGhlIHN0b3BPbkZpcnN0RXJyb3IgdG8gc2V0CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U3RvcE9uRmlyc3RFcnJvcihib29sZWFuIHN0b3BPbkZpcnN0RXJyb3IpIHsKKyAgICAgICAgdGhpcy5zdG9wT25GaXJzdEVycm9yID0gc3RvcE9uRmlyc3RFcnJvcjsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9zMS9EeW5hQmVhblByb3BlcnR5QWNjZXNzb3IuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9zMS9EeW5hQmVhblByb3BlcnR5QWNjZXNzb3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjQ0M2QzCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL0R5bmFCZWFuUHJvcGVydHlBY2Nlc3Nvci5qYXZhCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnMxOworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5EeW5hQmVhbjsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFDbGFzczsKK2ltcG9ydCBvZ25sLk9nbmxFeGNlcHRpb247CitpbXBvcnQgb2dubC5Qcm9wZXJ0eUFjY2Vzc29yOworaW1wb3J0IG9nbmwuT2dubENvbnRleHQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCisvKioKKyAqIFByb3ZpZGVzIGFjY2VzcyB0byBEeW5hQmVhbiBwcm9wZXJ0aWVzIGluIE9HTkwKKyAqLworcHVibGljIGNsYXNzIER5bmFCZWFuUHJvcGVydHlBY2Nlc3NvciBpbXBsZW1lbnRzIFByb3BlcnR5QWNjZXNzb3IgeworICAgIC8qKgorICAgICAqIFVzZWQgYnkgT0dOTCB0byBnZW5lcmF0ZSBieXRlY29kZQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U291cmNlQWNjZXNzb3IoT2dubENvbnRleHQgb2dubENvbnRleHQsIE9iamVjdCBvLCBPYmplY3QgbzEpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogVXNlZCBieSBPR05MIHRvIGdlbmVyYXRlIGJ5dGVjb2RlCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRTb3VyY2VTZXR0ZXIoT2dubENvbnRleHQgb2dubENvbnRleHQsIE9iamVjdCBvLCBPYmplY3QgbzEpIHsKKyAgICAgICAgcmV0dXJuIG51bGw7ICAKKyAgICB9CisKKyAgICBwdWJsaWMgT2JqZWN0IGdldFByb3BlcnR5KE1hcCBjb250ZXh0LCBPYmplY3QgdGFyZ2V0LCBPYmplY3QgbmFtZSkgdGhyb3dzIE9nbmxFeGNlcHRpb24geworICAgICAgICAKKyAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIER5bmFCZWFuICYmIG5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgRHluYUJlYW4gYmVhbiA9IChEeW5hQmVhbil0YXJnZXQ7CisgICAgICAgICAgICBEeW5hQ2xhc3MgY2xzID0gYmVhbi5nZXREeW5hQ2xhc3MoKTsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSBuYW1lLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoY2xzLmdldER5bmFQcm9wZXJ0eShrZXkpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYmVhbi5nZXQoa2V5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9ICAgIAorCisgICAgcHVibGljIHZvaWQgc2V0UHJvcGVydHkoTWFwIGNvbnRleHQsIE9iamVjdCB0YXJnZXQsIE9iamVjdCBuYW1lLCBPYmplY3QgdmFsdWUpIHRocm93cyBPZ25sRXhjZXB0aW9uIHsKKyAgICAgICAgCisgICAgICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBEeW5hQmVhbiAmJiBuYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIER5bmFCZWFuIGJlYW4gPSAoRHluYUJlYW4pdGFyZ2V0OworICAgICAgICAgICAgU3RyaW5nIGtleSA9IG5hbWUudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGJlYW4uc2V0KGtleSwgdmFsdWUpOworICAgICAgICB9CisgICAgfSAgICAKKworfQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL1N0cnV0czFBY3Rpb24uamF2YSBiL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9zMS9TdHJ1dHMxQWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk0MjJmOQotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9zMS9TdHJ1dHMxQWN0aW9uLmphdmEKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnMxOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFsczsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlczsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuU2VydmxldEFjdGlvbkNvbnRleHQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLlN0cnV0c0V4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5EZWZhdWx0QWN0aW9uU3VwcG9ydDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5EaXNwYXRjaGVyOworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uQ29udGV4dDsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5PYmplY3RGYWN0b3J5OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmNvbmZpZy5Db25maWd1cmF0aW9uOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmNvbmZpZy5lbnRpdGllcy5BY3Rpb25Db25maWc7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuaW5qZWN0LkluamVjdDsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5pbnRlcmNlcHRvci5TY29wZWRNb2RlbERyaXZlbjsKKworLyoqCisgKiBXcmFwcyBsZWdhY3kgU3RydXRzIDEuMyBBY3Rpb25zLiAgU3VwcG9ydHMgdGhlIGZvbGxvd2luZyBmZWF0dXJlczoKKyAqIDx1bD4KKyAqICA8bGk+QWN0aW9uRm9ybXM8L2xpPgorICogIDxsaT5BY3Rpb25Gb3J3YXJkcyB0aGF0IGhhdmUgdGhlIHNhbWUgbmFtZSBhcyBhIHJlc3VsdDwvbGk+CisgKiAgPGxpPkFjdGlvbk1lc3NhZ2VzIHN0b3JlZCBpbiB0aGUgcmVxdWVzdCwgY29udmVydGVkIHRvIFN0cnV0cyAyIG1lc3NhZ2VzPC9saT4KKyAqICA8bGk+QWN0aW9uLWxldmVsIHZhbGlkYXRpb24gZmxhZzwvbGk+CisgKiA8L3VsPgorICogU3RpbGwgdG8gZG86CisgKiA8dWw+CisgKiAgPGxpPkN1c3RvbSBBY3Rpb25Gb3J3YXJkIGluc3RhbmNlcyB0aGF0IGRvbid0IGhhdmUgYW4gYXNzb2NpYXRlZCByZXN1bHQgY29uZmlnPC9saT4KKyAqICA8bGk+c2V0U2VydmxldCgpIGNhbGxzIGZvciB0aGUgQWN0aW9uPC9saT4KKyAqICA8bGk+TW9zdCBldmVyeXRoaW5nIGVsc2UuLi48L2xpPgorICogPC91bD4KKyAqLworcHVibGljIGNsYXNzIFN0cnV0czFBY3Rpb24gZXh0ZW5kcyBEZWZhdWx0QWN0aW9uU3VwcG9ydCBpbXBsZW1lbnRzIFNjb3BlZE1vZGVsRHJpdmVuPEFjdGlvbkZvcm0+IHsKKworICAgIHByaXZhdGUgQWN0aW9uRm9ybSBhY3Rpb25Gb3JtOworICAgIHByaXZhdGUgU3RyaW5nIGNsYXNzTmFtZTsKKyAgICBwcml2YXRlIGJvb2xlYW4gdmFsaWRhdGU7CisgICAgcHJpdmF0ZSBTdHJpbmcgc2NvcGVLZXk7CisgICAgcHJpdmF0ZSBPYmplY3RGYWN0b3J5IG9iamVjdEZhY3Rvcnk7CisgICAgcHJpdmF0ZSBDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb247CisgICAgCisgICAgQEluamVjdAorICAgIHB1YmxpYyB2b2lkIHNldE9iamVjdEZhY3RvcnkoT2JqZWN0RmFjdG9yeSBmYWMpIHsKKyAgICAgICAgdGhpcy5vYmplY3RGYWN0b3J5ID0gZmFjOworICAgIH0KKyAgICAKKyAgICBASW5qZWN0CisgICAgcHVibGljIHZvaWQgc2V0Q29uZmlndXJhdGlvbihDb25maWd1cmF0aW9uIGNvbmZpZykgeworICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWc7CisgICAgfQorICAgIAorICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBBY3Rpb25Db250ZXh0IGN0eCA9IEFjdGlvbkNvbnRleHQuZ2V0Q29udGV4dCgpOworICAgICAgICBBY3Rpb25Db25maWcgYWN0aW9uQ29uZmlnID0gY3R4LmdldEFjdGlvbkludm9jYXRpb24oKS5nZXRQcm94eSgpLmdldENvbmZpZygpOworICAgICAgICBBY3Rpb24gYWN0aW9uID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGFjdGlvbiA9IChBY3Rpb24pIG9iamVjdEZhY3RvcnkuYnVpbGRCZWFuKGNsYXNzTmFtZSwgbnVsbCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RydXRzRXhjZXB0aW9uKCJVbmFibGUgdG8gY3JlYXRlIHRoZSBsZWdhY3kgU3RydXRzIEFjdGlvbiIsIGUsIGFjdGlvbkNvbmZpZyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFdlIHNob3VsZCBjYWxsIHNldFNlcnZsZXQoKSBoZXJlLCBidXQgbGV0J3Mgc3R1YiB0aGF0IG91dCBsYXRlcgorICAgICAgICAKKyAgICAgICAgU3RydXRzMUZhY3Rvcnkgc3RydXRzRmFjdG9yeSA9IG5ldyBTdHJ1dHMxRmFjdG9yeShEaXNwYXRjaGVyLmdldEluc3RhbmNlKCkuZ2V0Q29uZmlndXJhdGlvbk1hbmFnZXIoKS5nZXRDb25maWd1cmF0aW9uKCkpOworICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcgPSBzdHJ1dHNGYWN0b3J5LmNyZWF0ZUFjdGlvbk1hcHBpbmcoYWN0aW9uQ29uZmlnKTsKKyAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QgPSBTZXJ2bGV0QWN0aW9uQ29udGV4dC5nZXRSZXF1ZXN0KCk7CisgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UgPSBTZXJ2bGV0QWN0aW9uQ29udGV4dC5nZXRSZXNwb25zZSgpOworICAgICAgICBBY3Rpb25Gb3J3YXJkIGZvcndhcmQgPSBhY3Rpb24uZXhlY3V0ZShtYXBwaW5nLCBhY3Rpb25Gb3JtLCByZXF1ZXN0LCByZXNwb25zZSk7CisgICAgICAgIAorICAgICAgICBBY3Rpb25NZXNzYWdlcyBtZXNzYWdlcyA9IChBY3Rpb25NZXNzYWdlcykgcmVxdWVzdC5nZXRBdHRyaWJ1dGUoR2xvYmFscy5NRVNTQUdFX0tFWSk7CisgICAgICAgIGlmIChtZXNzYWdlcyAhPSBudWxsKSB7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGkgPSBtZXNzYWdlcy5nZXQoKTsgaS5oYXNOZXh0KCk7ICkgeworICAgICAgICAgICAgICAgIEFjdGlvbk1lc3NhZ2UgbXNnID0gKEFjdGlvbk1lc3NhZ2UpIGkubmV4dCgpOworICAgICAgICAgICAgICAgIGlmIChtc2cuZ2V0VmFsdWVzKCkgIT0gbnVsbCAmJiBtc2cuZ2V0VmFsdWVzKCkubGVuZ3RoID4gMCkgeworICAgICAgICAgICAgICAgICAgICBhZGRBY3Rpb25NZXNzYWdlKGdldFRleHQobXNnLmdldEtleSgpLCBBcnJheXMuYXNMaXN0KG1zZy5nZXRWYWx1ZXMoKSkpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhZGRBY3Rpb25NZXNzYWdlKGdldFRleHQobXNnLmdldEtleSgpKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoZm9yd2FyZCBpbnN0YW5jZW9mIFdyYXBwZXJBY3Rpb25Gb3J3YXJkIHx8IGFjdGlvbkNvbmZpZy5nZXRSZXN1bHRzKCkuY29udGFpbnNLZXkoZm9yd2FyZC5nZXROYW1lKCkpKSB7CisgICAgICAgICAgICByZXR1cm4gZm9yd2FyZC5nZXROYW1lKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU3RydXRzRXhjZXB0aW9uKCJVbmFibGUgdG8gaGFuZGxlIGFjdGlvbiBmb3J3YXJkcyB0aGF0IGRvbid0IGhhdmUgYW4gYXNzb2NpYXRlZCByZXN1bHQiLCBhY3Rpb25Db25maWcpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIHNldE1vZGVsKEFjdGlvbkZvcm0gbW9kZWwpIHsKKyAgICAgICAgYWN0aW9uRm9ybSA9IG1vZGVsOworICAgIH0KKworICAgIHB1YmxpYyBBY3Rpb25Gb3JtIGdldE1vZGVsKCkgeworICAgICAgICByZXR1cm4gYWN0aW9uRm9ybTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogQHJldHVybiB0aGUgdmFsaWRhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1ZhbGlkYXRlKCkgeworICAgICAgICByZXR1cm4gdmFsaWRhdGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQHBhcmFtIHZhbGlkYXRlIHRoZSB2YWxpZGF0ZSB0byBzZXQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRWYWxpZGF0ZShib29sZWFuIHZhbGlkYXRlKSB7CisgICAgICAgIHRoaXMudmFsaWRhdGUgPSB2YWxpZGF0ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0gY2xhc3NOYW1lIHRoZSBjbGFzc05hbWUgdG8gc2V0CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2xhc3NOYW1lKFN0cmluZyBjbGFzc05hbWUpIHsKKyAgICAgICAgdGhpcy5jbGFzc05hbWUgPSBjbGFzc05hbWU7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRTY29wZUtleSgpIHsKKyAgICAgICAgcmV0dXJuIHNjb3BlS2V5OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFNjb3BlS2V5KFN0cmluZyBrZXkpIHsKKyAgICAgICAgdGhpcy5zY29wZUtleSA9IGtleTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItc3RydXRzMS1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvczEvU3RydXRzMUZhY3RvcnkuamF2YSBiL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9zMS9TdHJ1dHMxRmFjdG9yeS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3ZDFjNjUKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItc3RydXRzMS1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvczEvU3RydXRzMUZhY3RvcnkuamF2YQpAQCAtMCwwICsxLDE1MCBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIuczE7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5UZXh0UHJvdmlkZXI7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuVmFsaWRhdGlvbkF3YXJlOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmNvbmZpZy5Db25maWd1cmF0aW9uOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmNvbmZpZy5lbnRpdGllcy5BY3Rpb25Db25maWc7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuY29uZmlnLmVudGl0aWVzLkV4Y2VwdGlvbk1hcHBpbmdDb25maWc7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuY29uZmlnLmVudGl0aWVzLlJlc3VsdENvbmZpZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlczsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWc7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKKworCisvKioKKyAqICBQcm92aWRlcyBjb252ZXJzaW9uIG1ldGhvZHMgYmV0d2VlbiB0aGUgU3RydXRzIEFjdGlvbiAxLnggYW5kIFhXb3JrCisgKiAgY2xhc3Nlcy4KKyAqLworcHVibGljIGNsYXNzIFN0cnV0czFGYWN0b3J5IHsKKyAgICAKKyAgICBwcml2YXRlIENvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKKworICAgIHB1YmxpYyBTdHJ1dHMxRmFjdG9yeShDb25maWd1cmF0aW9uIGNvbmZpZykgeworICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWc7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFN0cnV0cyAxLnggTW9kdWxlQ29uZmlnIGJhc2VkIG9uIGFuIFhXb3JrIHBhY2thZ2UgY29uZmlndXJhdGlvbi4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gcGFja2FnZU5hbWUgdGhlIG5hbWUgb2YgdGhlIFhXb3JrIHBhY2thZ2UgY29uZmlndXJhdGlvbiB0byB3cmFwLiAgVGhpcyBiZWNvbWVzIHRoZSBtb2R1bGUgcHJlZml4IGZvciB0aGUKKyAgICAgKiAgICAgbmV3bHktY3JlYXRlZCBNb2R1bGVDb25maWcuCisgICAgICogQHJldHVybiBhIHdyYXBwZXIgU3RydXRzIDEueCBNb2R1bGVDb25maWcuCisgICAgICovCisgICAgcHVibGljIE1vZHVsZUNvbmZpZyBjcmVhdGVNb2R1bGVDb25maWcoU3RyaW5nIHBhY2thZ2VOYW1lKSB7CisgICAgICAgIGFzc2VydCBwYWNrYWdlTmFtZSAhPSBudWxsOworICAgICAgICByZXR1cm4gbmV3IFdyYXBwZXJNb2R1bGVDb25maWcodGhpcywgY29uZmlndXJhdGlvbi5nZXRQYWNrYWdlQ29uZmlnKHBhY2thZ2VOYW1lKSk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFN0cnV0cyAxLnggQWN0aW9uTWFwcGluZyBmcm9tIGFuIFhXb3JrIEFjdGlvbkNvbmZpZy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gY2ZnIHRoZSBYV29yayBBY3Rpb25Db25maWcuCisgICAgICogQHJldHVybiBhIHdyYXBwZXIgU3RydXRzIDEueCBBY3Rpb25NYXBwaW5nLgorICAgICAqLworICAgIHB1YmxpYyBBY3Rpb25NYXBwaW5nIGNyZWF0ZUFjdGlvbk1hcHBpbmcoQWN0aW9uQ29uZmlnIGNmZykgeworICAgICAgICBhc3NlcnQgY2ZnICE9IG51bGw7CisgICAgICAgIHJldHVybiBuZXcgV3JhcHBlckFjdGlvbk1hcHBpbmcodGhpcywgY2ZnKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdHJ1dHMgMS54IEFjdGlvbk1hcHBpbmcgZnJvbSBhbiBYV29yayBBY3Rpb25Db25maWcuICBUaGlzIHZlcnNpb24gcHJvdmlkZXMgYW4gZXhpc3RpbmcgYWN0aW9uIHBhdGgKKyAgICAgKiBhbmQgTW9kdWxlQ29uZmlnLiAgUGFja2FnZS1wcm90ZWN0ZWQgZm9yIG5vdzsgbWF5IG5vdCBuZWVkIHRvIGJlIGV4cG9zZWQgcHVibGljbHkuCisgICAgICogCisgICAgICogQHBhcmFtIGNmZyB0aGUgWFdvcmsgQWN0aW9uQ29uZmlnLgorICAgICAqIEBwYXJhbSBhY3Rpb25QYXRoIHRoZSBTdHJ1dHMgMS54LXN0eWxlIGFjdGlvbiBwYXRoICgnLycgKyBhY3Rpb24tbmFtZSkuCisgICAgICogQHBhcmFtIG1vZHVsZUNvbmZpZyB0aGUgU3RydXRzIDEueCBNb2R1bGVDb25maWcgdGhhdCBjb250YWlucyB0aGUgQWN0aW9uTWFwcGluZy4KKyAgICAgKiBAcmV0dXJuIGEgd3JhcHBlciBTdHJ1dHMgMS54IEFjdGlvbk1hcHBpbmcuCisgICAgICovCisgICAgQWN0aW9uTWFwcGluZyBjcmVhdGVBY3Rpb25NYXBwaW5nKEFjdGlvbkNvbmZpZyBjZmcsIFN0cmluZyBhY3Rpb25QYXRoLCBNb2R1bGVDb25maWcgbW9kdWxlQ29uZmlnKSB7CisgICAgICAgIGFzc2VydCBjZmcgIT0gbnVsbDsKKyAgICAgICAgYXNzZXJ0IG1vZHVsZUNvbmZpZyAhPSBudWxsOworICAgICAgICByZXR1cm4gbmV3IFdyYXBwZXJBY3Rpb25NYXBwaW5nKHRoaXMsIGNmZywgYWN0aW9uUGF0aCwgbW9kdWxlQ29uZmlnKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdHJ1dHMgMS54IEFjdGlvbkZvcndhcmQgZnJvbSBhbiBYV29yayBSZXN1bHRDb25maWcuCisgICAgICogCisgICAgICogQHBhcmFtIGNmZyB0aGUgWFdvcmsgUmVzdWx0Q29uZmlnLgorICAgICAqIEByZXR1cm4gYSB3cmFwcGVyIFN0cnV0cyAxLnggQWN0aW9uTWFwcGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgQWN0aW9uRm9yd2FyZCBjcmVhdGVBY3Rpb25Gb3J3YXJkKFJlc3VsdENvbmZpZyBjZmcpIHsKKyAgICAgICAgYXNzZXJ0IGNmZyAhPSBudWxsOworICAgICAgICByZXR1cm4gbmV3IFdyYXBwZXJBY3Rpb25Gb3J3YXJkKGNmZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgU3RydXRzIDEueCBFeGNlcHRpb25Db25maWcgZnJvbSBhbiBYV29yayBFeGNlcHRpb25NYXBwaW5nQ29uZmlnLgorICAgICAqIAorICAgICAqIEBwYXJhbSBjZmcgdGhlIFhXb3JrIEV4Y2VwdGlvbk1hcHBpbmdDb25maWcuCisgICAgICogQHJldHVybiBhIHdyYXBwZXIgU3RydXRzIDEueCBFeGNlcHRpb25Db25maWcuCisgICAgICovCisgICAgcHVibGljIEV4Y2VwdGlvbkNvbmZpZyBjcmVhdGVFeGNlcHRpb25Db25maWcoRXhjZXB0aW9uTWFwcGluZ0NvbmZpZyBjZmcpIHsKKyAgICAgICAgYXNzZXJ0IGNmZyAhPSBudWxsOworICAgICAgICByZXR1cm4gbmV3IFdyYXBwZXJFeGNlcHRpb25Db25maWcoY2ZnKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb252ZXJ0RXJyb3JzKEFjdGlvbkVycm9ycyBlcnJvcnMsIE9iamVjdCBhY3Rpb24pIHsKKyAgICAgICAgVmFsaWRhdGlvbkF3YXJlIHZhY3Rpb24gPSBudWxsOworICAgICAgICBUZXh0UHJvdmlkZXIgdGV4dCA9IG51bGw7CisKKyAgICAgICAgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIFZhbGlkYXRpb25Bd2FyZSkgeworICAgICAgICAgICAgdmFjdGlvbiA9IChWYWxpZGF0aW9uQXdhcmUpYWN0aW9uOworICAgICAgICB9CisgICAgICAgIGlmIChhY3Rpb24gaW5zdGFuY2VvZiBUZXh0UHJvdmlkZXIpIHsKKyAgICAgICAgICAgIHRleHQgPSAoVGV4dFByb3ZpZGVyKWFjdGlvbjsKKyAgICAgICAgfQorICAgICAgICAvLyBpZiB0aGVyZSBpcyBubyBWYWxpZGF0aW9uQXdhcmUsIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBwcm9jZXNzIG1lc3NhZ2VzCisgICAgICAgIC8vIGFzIHRoZXJlIGJlIG5vIHBsYWNlIHRvIHB1dCBtZXNzYWdlIGluCisgICAgICAgIGlmICh2YWN0aW9uID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBmb3IgKEl0ZXJhdG9yIGkgPSBlcnJvcnMucHJvcGVydGllcygpOyBpLmhhc05leHQoKTsgKSB7CisgICAgICAgICAgICBTdHJpbmcgZmllbGQgPSAoU3RyaW5nKSBpLm5leHQoKTsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaXQgPSBlcnJvcnMuZ2V0KGZpZWxkKTsgaXQuaGFzTmV4dCgpOyApIHsKKyAgICAgICAgICAgICAgICBBY3Rpb25NZXNzYWdlIGVycm9yID0gKEFjdGlvbk1lc3NhZ2UpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbXNnID0gZXJyb3IuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgaWYgKGVycm9yLmlzUmVzb3VyY2UoKSAmJiB0ZXh0ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0W10gdmFsdWVzID0gZXJyb3IuZ2V0VmFsdWVzKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gdGV4dC5nZXRUZXh0KGVycm9yLmdldEtleSgpLCBBcnJheXMuYXNMaXN0KHZhbHVlcykpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gdGV4dC5nZXRUZXh0KGVycm9yLmdldEtleSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoQWN0aW9uTWVzc2FnZXMuR0xPQkFMX01FU1NBR0UuZXF1YWxzKGZpZWxkKSkgeworICAgICAgICAgICAgICAgICAgICB2YWN0aW9uLmFkZEFjdGlvbkVycm9yKG1zZyk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgdmFjdGlvbi5hZGRGaWVsZEVycm9yKGZpZWxkLCBtc2cpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9zMS9XcmFwcGVyQWN0aW9uRm9yd2FyZC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL1dyYXBwZXJBY3Rpb25Gb3J3YXJkLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDRjMjJmYgotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9zMS9XcmFwcGVyQWN0aW9uRm9yd2FyZC5qYXZhCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnMxOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuY29uZmlnLmVudGl0aWVzLlJlc3VsdENvbmZpZzsKKworLyoqCisgKiBXcmFwcGVyIGZvciBhIFN0cnV0cyAxLnggQWN0aW9uRm9yd2FyZCBiYXNlZCBvbiBhbiBYV29yayBSZXN1bHRDb25maWcuICBVc2luZyBhIHdyYXBwZXIgb2JqZWN0CisgKiBhbGxvd3MgdXMgdG8gYmUgZXhwbGljaXQgYWJvdXQgd2hhdCBpcyBhbmQgaXNuJ3QgaW1wbGVtZW50ZWQuCisgKi8KK2NsYXNzIFdyYXBwZXJBY3Rpb25Gb3J3YXJkIGV4dGVuZHMgQWN0aW9uRm9yd2FyZCB7CisKKyAgICBwcml2YXRlIFJlc3VsdENvbmZpZyBkZWxlZ2F0ZTsKKyAgICAKKyAgICBwdWJsaWMgV3JhcHBlckFjdGlvbkZvcndhcmQoUmVzdWx0Q29uZmlnIGRlbGVnYXRlKSB7CisgICAgICAgIHN1cGVyKGRlbGVnYXRlLmdldE5hbWUoKSk7CisgICAgICAgIHRoaXMuZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKKyAgICAgICAgZnJlZXplKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICByZXR1cm4gZGVsZWdhdGUuZ2V0TmFtZSgpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGF0aCgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE1vZHVsZSgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRSZWRpcmVjdCgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gIndyYXBwZXIgLT4gIiArIGRlbGVnYXRlLnRvU3RyaW5nKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL1dyYXBwZXJBY3Rpb25NYXBwaW5nLmphdmEgYi9wbHVnaW5zL3N0cnV0czItc3RydXRzMS1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvczEvV3JhcHBlckFjdGlvbk1hcHBpbmcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTc1ODAzCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL1dyYXBwZXJBY3Rpb25NYXBwaW5nLmphdmEKQEAgLTAsMCArMSwyODYgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnMxOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmNvbmZpZy5lbnRpdGllcy5BY3Rpb25Db25maWc7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuY29uZmlnLmVudGl0aWVzLlJlc3VsdENvbmZpZzsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5jb25maWcuZW50aXRpZXMuRXhjZXB0aW9uTWFwcGluZ0NvbmZpZzsKKworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworCisvKioKKyAqIFdyYXBwZXIgZm9yIGEgU3RydXRzIDEueCBBY3Rpb25NYXBwaW5nIGJhc2VkIG9uIGFuIFhXb3JrIEFjdGlvbkNvbmZpZy4gIFVzaW5nIGEgd3JhcHBlciBvYmplY3QKKyAqIGFsbG93cyB1cyB0byBiZSBleHBsaWNpdCBhYm91dCB3aGF0IGlzIGFuZCBpc24ndCBpbXBsZW1lbnRlZC4KKyAqLworY2xhc3MgV3JhcHBlckFjdGlvbk1hcHBpbmcgZXh0ZW5kcyBBY3Rpb25NYXBwaW5nIHsKKworICAgIHByaXZhdGUgQWN0aW9uQ29uZmlnIGRlbGVnYXRlOworICAgIHByaXZhdGUgU3RyaW5nIGFjdGlvblBhdGg7CisgICAgcHJpdmF0ZSBTdHJpbmcgYXR0cmlidXRlOworICAgIHByaXZhdGUgU3RydXRzMUZhY3Rvcnkgc3RydXRzRmFjdG9yeTsKKworICAgIHB1YmxpYyBXcmFwcGVyQWN0aW9uTWFwcGluZyhTdHJ1dHMxRmFjdG9yeSBmYWN0b3J5LCBBY3Rpb25Db25maWcgZGVsZWdhdGUpIHsKKyAgICAgICAgdGhpcy5kZWxlZ2F0ZSA9IGRlbGVnYXRlOworICAgICAgICB0aGlzLnN0cnV0c0ZhY3RvcnkgPSBmYWN0b3J5OworICAgICAgICBmb3J3YXJkcyA9IG51bGw7CisgICAgICAgIGV4Y2VwdGlvbnMgPSBudWxsOworICAgIH0KKworICAgIHB1YmxpYyBXcmFwcGVyQWN0aW9uTWFwcGluZyhTdHJ1dHMxRmFjdG9yeSBmYWN0b3J5LCBBY3Rpb25Db25maWcgZGVsZWdhdGUsIFN0cmluZyBhY3Rpb25QYXRoLCBNb2R1bGVDb25maWcgbW9kdWxlQ29uZmlnKSB7CisgICAgICAgIHRoaXMoZmFjdG9yeSwgZGVsZWdhdGUpOworICAgICAgICB0aGlzLm1vZHVsZUNvbmZpZyA9IG1vZHVsZUNvbmZpZzsKKyAgICAgICAgdGhpcy5hY3Rpb25QYXRoID0gYWN0aW9uUGF0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgU3RydXRzIEZvcndhcmRDb25maWdzIChmcm9tIFhXb3JrIFJlc3VsdENvbmZpZ3MpLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0QWN0aW9uRm9yd2FyZHMoKSB7CisgICAgICAgIGlmIChmb3J3YXJkcyA9PSBudWxsKSB7CisgICAgICAgICAgICBmb3J3YXJkcyA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgICAgICBNYXAgcmVzdWx0cyA9IGRlbGVnYXRlLmdldFJlc3VsdHMoKTsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaSA9IHJlc3VsdHMuZW50cnlTZXQoKS5pdGVyYXRvcigpOyBpLmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBNYXAuRW50cnkgZW50cnkgPSAoTWFwLkVudHJ5KSBpLm5leHQoKTsKKyAgICAgICAgICAgICAgICBBY3Rpb25Gb3J3YXJkIHdyYXBwZXIgPSBzdHJ1dHNGYWN0b3J5LmNyZWF0ZUFjdGlvbkZvcndhcmQoKFJlc3VsdENvbmZpZykgZW50cnkuZ2V0VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZm9yd2FyZHMucHV0KHdyYXBwZXIuZ2V0TmFtZSgpLCB3cmFwcGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAvKioKKyAgICAgKiBBZGQgWFdvcmsgRXhjZXB0aW9uQ29uZmlncyAoZnJvbSBYV29yayBFeGNlcHRpb25NYXBwaW5nQ29uZmlncykKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaW5pdEV4Y2VwdGlvbkNvbmZpZ3MoKSB7CisgICAgICAgIGlmIChleGNlcHRpb25zID09IG51bGwpIHsKKyAgICAgICAgICAgIGV4Y2VwdGlvbnMgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgTGlzdCBleGNlcHRpb25NYXBwaW5ncyA9IGRlbGVnYXRlLmdldEV4Y2VwdGlvbk1hcHBpbmdzKCk7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGkgPSBleGNlcHRpb25NYXBwaW5ncy5pdGVyYXRvcigpOyBpLmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBFeGNlcHRpb25Db25maWcgd3JhcHBlciA9IHN0cnV0c0ZhY3RvcnkuY3JlYXRlRXhjZXB0aW9uQ29uZmlnKChFeGNlcHRpb25NYXBwaW5nQ29uZmlnKSBpLm5leHQoKSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5wdXQod3JhcHBlci5nZXRUeXBlKCksIHdyYXBwZXIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIEFjdGlvbkZvcndhcmQgZmluZEZvcndhcmQoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgaW5pdEFjdGlvbkZvcndhcmRzKCk7CisgICAgICAgIHJldHVybiBzdXBlci5maW5kRm9yd2FyZChuYW1lKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nW10gZmluZEZvcndhcmRzKCkgeworICAgICAgICBpbml0QWN0aW9uRm9yd2FyZHMoKTsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmZpbmRGb3J3YXJkcygpOworICAgIH0KKworICAgIHB1YmxpYyBGb3J3YXJkQ29uZmlnIGZpbmRGb3J3YXJkQ29uZmlnKFN0cmluZyBuYW1lKSB7CisgICAgICAgIGluaXRBY3Rpb25Gb3J3YXJkcygpOworICAgICAgICByZXR1cm4gc3VwZXIuZmluZEZvcndhcmRDb25maWcobmFtZSk7CisgICAgfQorCisgICAgcHVibGljIEZvcndhcmRDb25maWdbXSBmaW5kRm9yd2FyZENvbmZpZ3MoKSB7CisgICAgICAgIGluaXRBY3Rpb25Gb3J3YXJkcygpOworICAgICAgICByZXR1cm4gc3VwZXIuZmluZEZvcndhcmRDb25maWdzKCk7CisgICAgfQorCisgICAgcHVibGljIEV4Y2VwdGlvbkNvbmZpZyBmaW5kRXhjZXB0aW9uQ29uZmlnKFN0cmluZyB0eXBlKSB7CisgICAgICAgIGluaXRFeGNlcHRpb25Db25maWdzKCk7CisgICAgICAgIHJldHVybiBzdXBlci5maW5kRXhjZXB0aW9uQ29uZmlnKHR5cGUpOworICAgIH0KKworICAgIHB1YmxpYyBFeGNlcHRpb25Db25maWdbXSBmaW5kRXhjZXB0aW9uQ29uZmlncygpIHsKKyAgICAgICAgaW5pdEV4Y2VwdGlvbkNvbmZpZ3MoKTsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmZpbmRFeGNlcHRpb25Db25maWdzKCk7CisgICAgfQorCisgICAgcHVibGljIEV4Y2VwdGlvbkNvbmZpZyBmaW5kRXhjZXB0aW9uKENsYXNzIHR5cGUpIHsKKyAgICAgICAgaW5pdEV4Y2VwdGlvbkNvbmZpZ3MoKTsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmZpbmRFeGNlcHRpb24odHlwZSk7CisgICAgfQorCisgICAgcHVibGljIEFjdGlvbkZvcndhcmQgZ2V0SW5wdXRGb3J3YXJkKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyBNb2R1bGVDb25maWcgZ2V0TW9kdWxlQ29uZmlnKCkgeworICAgICAgICBpZiAobW9kdWxlQ29uZmlnID09IG51bGwpIHsKKyAgICAgICAgICAgIG1vZHVsZUNvbmZpZyA9IHN0cnV0c0ZhY3RvcnkuY3JlYXRlTW9kdWxlQ29uZmlnKGRlbGVnYXRlLmdldFBhY2thZ2VOYW1lKCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG1vZHVsZUNvbmZpZzsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRNb2R1bGVDb25maWcoTW9kdWxlQ29uZmlnIG1vZHVsZUNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0QXR0cmlidXRlKCkgeworICAgICAgICByZXR1cm4gYXR0cmlidXRlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEF0dHJpYnV0ZShTdHJpbmcgYXR0cmlidXRlKSB7CisgICAgICAgIHRoaXMuYXR0cmlidXRlID0gYXR0cmlidXRlOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0Rm9yd2FyZCgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRGb3J3YXJkKFN0cmluZyBmb3J3YXJkKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRJbmNsdWRlKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEluY2x1ZGUoU3RyaW5nIGluY2x1ZGUpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldElucHV0KCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldElucHV0KFN0cmluZyBpbnB1dCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TXVsdGlwYXJ0Q2xhc3MoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0TXVsdGlwYXJ0Q2xhc3MoU3RyaW5nIG11bHRpcGFydENsYXNzKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICAvLyBOb3RlOiBpbiBTdHJ1dHMsIHRoaXMgaXMgYSBuYW1lIHJlZmVyZW5jZSB0byBhIGZvcm0gYmVhbiBkZWZpbmVkIGluIHRoZSBjb25maWcgZmlsZS4KKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXROYW1lKFN0cmluZyBuYW1lKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRQYXJhbWV0ZXIoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UGFyYW1ldGVyKFN0cmluZyBwYXJhbWV0ZXIpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhdGgoKSB7CisgICAgICAgIHJldHVybiBhY3Rpb25QYXRoOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFBhdGgoU3RyaW5nIHBhdGgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFByZWZpeCgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRQcmVmaXgoU3RyaW5nIHByZWZpeCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0Um9sZXMoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Um9sZXMoU3RyaW5nIHJvbGVzKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZ1tdIGdldFJvbGVOYW1lcygpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFNjb3BlKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFNjb3BlKFN0cmluZyBzY29wZSkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3VmZml4KCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFN1ZmZpeChTdHJpbmcgc3VmZml4KSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRUeXBlKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFR5cGUoU3RyaW5nIHR5cGUpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRVbmtub3duKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFVua25vd24oYm9vbGVhbiB1bmtub3duKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZ2V0VmFsaWRhdGUoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VmFsaWRhdGUoYm9vbGVhbiB2YWxpZGF0ZSkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUV4Y2VwdGlvbkNvbmZpZyhFeGNlcHRpb25Db25maWcgY29uZmlnKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlRm9yd2FyZENvbmZpZyhGb3J3YXJkQ29uZmlnIGNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEV4Y2VwdGlvbkNvbmZpZyhFeGNlcHRpb25Db25maWcgY29uZmlnKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkRm9yd2FyZENvbmZpZyhGb3J3YXJkQ29uZmlnIGNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiAid3JhcHBlciAtPiAiICsgZGVsZWdhdGUudG9TdHJpbmcoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItc3RydXRzMS1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvczEvV3JhcHBlckV4Y2VwdGlvbkNvbmZpZy5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL1dyYXBwZXJFeGNlcHRpb25Db25maWcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMGYwZGM1Ci0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL1dyYXBwZXJFeGNlcHRpb25Db25maWcuamF2YQpAQCAtMCwwICsxLDY3IEBACisvKgorICogJElkJAorICoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5zMTsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmNvbmZpZy5lbnRpdGllcy5FeGNlcHRpb25NYXBwaW5nQ29uZmlnOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWc7CisKKy8qKgorICogV3JhcHBlciBmb3IgYSBTdHJ1dHMgMS54IEV4Y2VwdGlvbkNvbmZpZyBiYXNlZCBvbiBhbiBYV29yayBFeGNlcHRpb25NYXBwaW5nQ29uZmlnLiAgVXNpbmcgYQorICogd3JhcHBlciBvYmplY3QgYWxsb3dzIHVzIHRvIGJlIGV4cGxpY2l0IGFib3V0IHdoYXQgaXMgYW5kIGlzbid0IGltcGxlbWVudGVkLgorICovCitjbGFzcyBXcmFwcGVyRXhjZXB0aW9uQ29uZmlnIGV4dGVuZHMgRXhjZXB0aW9uQ29uZmlnIHsKKworICAgIHByaXZhdGUgRXhjZXB0aW9uTWFwcGluZ0NvbmZpZyBkZWxlZ2F0ZTsKKworICAgIHB1YmxpYyBXcmFwcGVyRXhjZXB0aW9uQ29uZmlnKEV4Y2VwdGlvbk1hcHBpbmdDb25maWcgZGVsZWdhdGUpIHsKKyAgICAgICAgdGhpcy5kZWxlZ2F0ZSA9IGRlbGVnYXRlOworICAgICAgICBmcmVlemUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEJ1bmRsZSgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEhhbmRsZXIoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRLZXkoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRQYXRoKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U2NvcGUoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gZGVsZWdhdGUuZ2V0RXhjZXB0aW9uQ2xhc3NOYW1lKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuICJ3cmFwcGVyIC0+ICIgKyBkZWxlZ2F0ZS50b1N0cmluZygpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9zMS9XcmFwcGVyTWVzc2FnZVJlc291cmNlcy5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL1dyYXBwZXJNZXNzYWdlUmVzb3VyY2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM5ZmE4MgotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9zMS9XcmFwcGVyTWVzc2FnZVJlc291cmNlcy5qYXZhCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnMxOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlczsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLlRleHRQcm92aWRlcjsKKworLyoqCisgKiBXcmFwcyB0aGUgU3RydXRzIDEgbWVzc2FnZSByZXNvdXJjZXMsIGRlbGVnYXRpbmcgdG8gU3RydXRzIDIgcmVzb3VyY2VzCisgKi8KK3B1YmxpYyBjbGFzcyBXcmFwcGVyTWVzc2FnZVJlc291cmNlcyBleHRlbmRzIE1lc3NhZ2VSZXNvdXJjZXMgeworCisgICAgcHJpdmF0ZSBUZXh0UHJvdmlkZXIgdGV4dFByb3ZpZGVyOworCisgICAgcHVibGljIFdyYXBwZXJNZXNzYWdlUmVzb3VyY2VzKFRleHRQcm92aWRlciBwcm92aWRlcikgeworICAgICAgICBzdXBlcihudWxsLCBudWxsLCB0cnVlKTsKKyAgICAgICAgdGhpcy50ZXh0UHJvdmlkZXIgPSBwcm92aWRlcjsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgU3RyaW5nIGdldE1lc3NhZ2UoTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGtleSkgeworICAgICAgICBTdHJpbmcgbXNnID0gdGV4dFByb3ZpZGVyLmdldFRleHQoa2V5KTsKKyAgICAgICAgcmV0dXJuIG1zZzsgCisgICAgfQorCit9CmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItc3RydXRzMS1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvczEvV3JhcHBlck1vZHVsZUNvbmZpZy5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL1dyYXBwZXJNb2R1bGVDb25maWcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2NhNjM1Ci0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL1dyYXBwZXJNb2R1bGVDb25maWcuamF2YQpAQCAtMCwwICsxLDI1MiBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIuczE7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkNvbnRyb2xsZXJDb25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1lc3NhZ2VSZXNvdXJjZXNDb25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuUGx1Z0luQ29uZmlnOworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuY29uZmlnLmVudGl0aWVzLkV4Y2VwdGlvbk1hcHBpbmdDb25maWc7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuY29uZmlnLmVudGl0aWVzLlBhY2thZ2VDb25maWc7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuY29uZmlnLmVudGl0aWVzLlJlc3VsdENvbmZpZzsKKworLyoqCisgKiBXcmFwcGVyIGZvciBhIFN0cnV0cyAxLnggTW9kdWxlQ29uZmlnIGJhc2VkIG9uIGFuIFhXb3JrIFBhY2thZ2VDb25maWcuICBVc2luZyBhIHdyYXBwZXIgb2JqZWN0CisgKiBhbGxvd3MgdXMgdG8gYmUgZXhwbGljaXQgYWJvdXQgd2hhdCBpcyBhbmQgaXNuJ3QgaW1wbGVtZW50ZWQuCisgKi8KK2NsYXNzIFdyYXBwZXJNb2R1bGVDb25maWcgaW1wbGVtZW50cyBNb2R1bGVDb25maWcgeworCisgICAgcHJpdmF0ZSBTdHJ1dHMxRmFjdG9yeSBzdHJ1dHNGYWN0b3J5OworICAgIHByaXZhdGUgUGFja2FnZUNvbmZpZyBkZWxlZ2F0ZTsKKyAgICBwcml2YXRlIE1hcCBfYWN0aW9uTWFwcGluZ3M7CisgICAgcHJpdmF0ZSBNYXAgX2V4Y2VwdGlvbkNvbmZpZ3M7CisgICAgcHJpdmF0ZSBNYXAgX2FjdGlvbkZvcndhcmRzOworCisgICAgcHVibGljIFdyYXBwZXJNb2R1bGVDb25maWcoU3RydXRzMUZhY3RvcnkgZmFjdG9yeSwgUGFja2FnZUNvbmZpZyBjb25maWcpIHsKKyAgICAgICAgZGVsZWdhdGUgPSBjb25maWc7CisgICAgICAgIHRoaXMuc3RydXRzRmFjdG9yeSA9IGZhY3Rvcnk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIFN0cnV0cyBBY3Rpb25NYXBwaW5ncyAoZnJvbSBYV29yayBFeGNlcHRpb25Db25maWdzKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaW5pdEFjdGlvbk1hcHBpbmdzKCkgeworCisgICAgICAgIGlmIChfYWN0aW9uTWFwcGluZ3MgPT0gbnVsbCkgeworICAgICAgICAgICAgX2FjdGlvbk1hcHBpbmdzID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaSA9IGRlbGVnYXRlLmdldEFjdGlvbkNvbmZpZ3MoKS5lbnRyeVNldCgpLml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgIE1hcC5FbnRyeSBlbnRyeSA9IChNYXAuRW50cnkpIGkubmV4dCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBhY3Rpb25QYXRoID0gJy8nICsgKFN0cmluZykgZW50cnkuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgY29tLm9wZW5zeW1waG9ueS54d29yazIuY29uZmlnLmVudGl0aWVzLkFjdGlvbkNvbmZpZyBhY3Rpb25Db25maWcgPQorICAgICAgICAgICAgICAgICAgICAgICAgKGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmNvbmZpZy5lbnRpdGllcy5BY3Rpb25Db25maWcpIGVudHJ5LmdldFZhbHVlKCk7CisgICAgICAgICAgICAgICAgX2FjdGlvbk1hcHBpbmdzLnB1dChhY3Rpb25QYXRoLCBzdHJ1dHNGYWN0b3J5LmNyZWF0ZUFjdGlvbk1hcHBpbmcoYWN0aW9uQ29uZmlnLCBhY3Rpb25QYXRoLCB0aGlzKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgU3RydXRzIEV4Y2VwdGlvbkNvbmZpZ3MgKGZyb20gWFdvcmsgRXhjZXB0aW9uTWFwcGluZ0NvbmZpZ3MpLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0RXhjZXB0aW9uQ29uZmlncygpIHsKKyAgICAgICAgaWYgKF9leGNlcHRpb25Db25maWdzID09IG51bGwpIHsKKyAgICAgICAgICAgIF9leGNlcHRpb25Db25maWdzID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaSA9IGRlbGVnYXRlLmdldEdsb2JhbEV4Y2VwdGlvbk1hcHBpbmdDb25maWdzKCkuaXRlcmF0b3IoKTsgaS5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgRXhjZXB0aW9uTWFwcGluZ0NvbmZpZyBjb25maWcgPSAoRXhjZXB0aW9uTWFwcGluZ0NvbmZpZykgaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgX2V4Y2VwdGlvbkNvbmZpZ3MucHV0KGNvbmZpZy5nZXRFeGNlcHRpb25DbGFzc05hbWUoKSwgc3RydXRzRmFjdG9yeS5jcmVhdGVFeGNlcHRpb25Db25maWcoY29uZmlnKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgU3RydXRzIEFjdGlvbkZvcndhcmRzIChmcm9tIFhXb3JrIFJlc3VsdENvbmZpZ3MpLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0QWN0aW9uRm9yd2FyZHMoKSB7CisgICAgICAgIGlmIChfYWN0aW9uRm9yd2FyZHMgPT0gbnVsbCkgeworICAgICAgICAgICAgX2FjdGlvbkZvcndhcmRzID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIGZvciAoSXRlcmF0b3IgaSA9IGRlbGVnYXRlLmdldEdsb2JhbFJlc3VsdENvbmZpZ3MoKS5lbnRyeVNldCgpLml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOykgeworICAgICAgICAgICAgICAgIE1hcC5FbnRyeSBlbnRyeSA9IChNYXAuRW50cnkpIGkubmV4dCgpOworICAgICAgICAgICAgICAgIFN0cmluZyBuYW1lID0gKFN0cmluZykgZW50cnkuZ2V0S2V5KCk7CisgICAgICAgICAgICAgICAgUmVzdWx0Q29uZmlnIGNvbmZpZyA9IChSZXN1bHRDb25maWcpIGVudHJ5LmdldFZhbHVlKCk7CisgICAgICAgICAgICAgICAgX2FjdGlvbkZvcndhcmRzLnB1dChuYW1lLCBzdHJ1dHNGYWN0b3J5LmNyZWF0ZUFjdGlvbkZvcndhcmQoY29uZmlnKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFByZWZpeCgpIHsKKyAgICAgICAgcmV0dXJuIGRlbGVnYXRlLmdldE5hbWVzcGFjZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFByZWZpeChTdHJpbmcgcHJlZml4KSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZ2V0Q29uZmlndXJlZCgpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcHVibGljIENvbnRyb2xsZXJDb25maWcgZ2V0Q29udHJvbGxlckNvbmZpZygpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRDb250cm9sbGVyQ29uZmlnKENvbnRyb2xsZXJDb25maWcgY2MpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEFjdGlvbkZvcm1CZWFuQ2xhc3MoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0QWN0aW9uRm9ybUJlYW5DbGFzcyhTdHJpbmcgYWN0aW9uRm9ybUJlYW5DbGFzcykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0QWN0aW9uTWFwcGluZ0NsYXNzKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEFjdGlvbk1hcHBpbmdDbGFzcyhTdHJpbmcgYWN0aW9uTWFwcGluZ0NsYXNzKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkQWN0aW9uQ29uZmlnKEFjdGlvbkNvbmZpZyBjb25maWcpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRFeGNlcHRpb25Db25maWcoRXhjZXB0aW9uQ29uZmlnIGNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEZvcm1CZWFuQ29uZmlnKEZvcm1CZWFuQ29uZmlnIGNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0QWN0aW9uRm9yd2FyZENsYXNzKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEFjdGlvbkZvcndhcmRDbGFzcyhTdHJpbmcgYWN0aW9uRm9yd2FyZENsYXNzKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkRm9yd2FyZENvbmZpZyhGb3J3YXJkQ29uZmlnIGNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZE1lc3NhZ2VSZXNvdXJjZXNDb25maWcoTWVzc2FnZVJlc291cmNlc0NvbmZpZyBjb25maWcpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRQbHVnSW5Db25maWcoUGx1Z0luQ29uZmlnIHBsdWdJbkNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyBBY3Rpb25Db25maWcgZmluZEFjdGlvbkNvbmZpZyhTdHJpbmcgcGF0aCkgeworICAgICAgICBpbml0QWN0aW9uTWFwcGluZ3MoKTsKKyAgICAgICAgcmV0dXJuIChBY3Rpb25Db25maWcpIF9hY3Rpb25NYXBwaW5ncy5nZXQocGF0aCk7CisgICAgfQorCisgICAgcHVibGljIEFjdGlvbkNvbmZpZ1tdIGZpbmRBY3Rpb25Db25maWdzKCkgeworICAgICAgICBpbml0QWN0aW9uTWFwcGluZ3MoKTsKKyAgICAgICAgcmV0dXJuIChBY3Rpb25Db25maWdbXSkgX2FjdGlvbk1hcHBpbmdzLnZhbHVlcygpLnRvQXJyYXkobmV3IEFjdGlvbkNvbmZpZ1tfYWN0aW9uTWFwcGluZ3Muc2l6ZSgpXSk7CisgICAgfQorCisgICAgcHVibGljIEV4Y2VwdGlvbkNvbmZpZyBmaW5kRXhjZXB0aW9uQ29uZmlnKFN0cmluZyB0eXBlKSB7CisgICAgICAgIGluaXRFeGNlcHRpb25Db25maWdzKCk7CisgICAgICAgIHJldHVybiAoRXhjZXB0aW9uQ29uZmlnKSBfZXhjZXB0aW9uQ29uZmlncy5nZXQodHlwZSk7CisgICAgfQorCisgICAgcHVibGljIEV4Y2VwdGlvbkNvbmZpZ1tdIGZpbmRFeGNlcHRpb25Db25maWdzKCkgeworICAgICAgICBpbml0RXhjZXB0aW9uQ29uZmlncygpOworICAgICAgICByZXR1cm4gKEV4Y2VwdGlvbkNvbmZpZ1tdKSBfZXhjZXB0aW9uQ29uZmlncy52YWx1ZXMoKS50b0FycmF5KG5ldyBFeGNlcHRpb25Db25maWdbX2V4Y2VwdGlvbkNvbmZpZ3Muc2l6ZSgpXSk7CisgICAgfQorCisgICAgcHVibGljIEZvcm1CZWFuQ29uZmlnIGZpbmRGb3JtQmVhbkNvbmZpZyhTdHJpbmcgbmFtZSkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyBGb3JtQmVhbkNvbmZpZ1tdIGZpbmRGb3JtQmVhbkNvbmZpZ3MoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIEZvcndhcmRDb25maWcgZmluZEZvcndhcmRDb25maWcoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgaW5pdEFjdGlvbkZvcndhcmRzKCk7CisgICAgICAgIHJldHVybiAoRm9yd2FyZENvbmZpZykgX2FjdGlvbkZvcndhcmRzLmdldChuYW1lKTsKKyAgICB9CisKKyAgICBwdWJsaWMgRm9yd2FyZENvbmZpZ1tdIGZpbmRGb3J3YXJkQ29uZmlncygpIHsKKyAgICAgICAgaW5pdEFjdGlvbkZvcndhcmRzKCk7CisgICAgICAgIHJldHVybiAoRm9yd2FyZENvbmZpZ1tdKSBfYWN0aW9uRm9yd2FyZHMudmFsdWVzKCkudG9BcnJheShuZXcgRm9yd2FyZENvbmZpZ1tfYWN0aW9uRm9yd2FyZHMuc2l6ZSgpXSk7CisgICAgfQorCisgICAgcHVibGljIEFjdGlvbkNvbmZpZyBmaW5kQWN0aW9uQ29uZmlnSWQoU3RyaW5nIHMpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgTWVzc2FnZVJlc291cmNlc0NvbmZpZyBmaW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZyhTdHJpbmcga2V5KSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIE1lc3NhZ2VSZXNvdXJjZXNDb25maWdbXSBmaW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZ3MoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIFBsdWdJbkNvbmZpZ1tdIGZpbmRQbHVnSW5Db25maWdzKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGZyZWV6ZSgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVBY3Rpb25Db25maWcoQWN0aW9uQ29uZmlnIGNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUV4Y2VwdGlvbkNvbmZpZyhFeGNlcHRpb25Db25maWcgY29uZmlnKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlRm9ybUJlYW5Db25maWcoRm9ybUJlYW5Db25maWcgY29uZmlnKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlRm9yd2FyZENvbmZpZyhGb3J3YXJkQ29uZmlnIGNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlbW92ZU1lc3NhZ2VSZXNvdXJjZXNDb25maWcoTWVzc2FnZVJlc291cmNlc0NvbmZpZyBjb25maWcpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgRXhjZXB0aW9uQ29uZmlnIGZpbmRFeGNlcHRpb24oQ2xhc3MgYXJnMCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvQU5UTFItTElDRU5TRS50eHQgYi9wbHVnaW5zL3N0cnV0czItc3RydXRzMS1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL0FOVExSLUxJQ0VOU0UudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMWQ1ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItc3RydXRzMS1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL0FOVExSLUxJQ0VOU0UudHh0CkBAIC0wLDAgKzEsMjYgQEAKK1tUaGUgIkJTRCBsaWNlbmNlIl0KK0NvcHlyaWdodCAoYykgMjAwMy0yMDA2IFRlcmVuY2UgUGFycgorQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKK2FyZSBtZXQ6CisKKyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorCitUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUgorSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4KK0lOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKK0lOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVAorTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCitUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKK1RISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItc3RydXRzMS1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL0xJQ0VOU0UudHh0IGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9MSUNFTlNFLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDViM2E1Ci0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9MSUNFTlNFLnR4dApAQCAtMCwwICsxLDE3NCBAQAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKKyAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KKworICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCisKKyAgIDEuIERlZmluaXRpb25zLgorCisgICAgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisKKyAgICAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5CisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCisKKyAgICAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKKyAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKyAgICAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCisgICAgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUKKyAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCisgICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKKyAgICAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCisKKyAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKyAgICAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCisKKyAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAorICAgICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKworICAgICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKKyAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKyAgICAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKKyAgICAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKworICAgICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKKyAgICAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKKyAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yaworICAgICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KKworICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAorICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKKyAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgorICAgICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAorICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKworICAgICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKKyAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKKyAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQorICAgICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgorICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKKyAgICAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKKyAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCisgICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAorICAgICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKyAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAorICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKKyAgICAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgorCisgICAgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICAgICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCisgICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KKworICAgMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCisgICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKKyAgICAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCisKKyAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKyAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAorICAgICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCisgICAgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQorICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKKyAgICAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKKyAgICAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91CisgICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yaworICAgICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKKyAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKKyAgICAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQorICAgICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgorCisgICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQorICAgICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CisgICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorICAgICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKyAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCisgICAgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKKworICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICAgICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAorCisgICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKKyAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCisgICAgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKKyAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCisgICAgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAorCisgICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKKyAgICAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CisgICAgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCisgICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisgICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCisgICAgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKKyAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCisgICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCisgICAgICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAorICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cworICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKKyAgICAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgorICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCisgICAgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCisgICAgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCisgICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgorCisgICAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKKyAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKyAgICAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKKyAgICAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAorICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCisgICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgorCisgICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCisgICAgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKKyAgICAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKyAgICAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKKyAgICAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCisgICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCisKKyAgIDYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKKyAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKKyAgICAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQorICAgICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCisKKyAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgorICAgICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAorICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyAgICAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCisgICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCisgICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKKyAgICAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQorICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorCisgICA4LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKKyAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAorICAgICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKKyAgICAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCisgICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCisgICAgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKKyAgICAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKKyAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKKyAgICAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCisgICAgICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCisgICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCisKKyAgIDkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKKyAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCisgICAgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAorICAgICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKKyAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CisgICAgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgorICAgICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAorICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CisgICAgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCisgICAgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvTk9USUNFLnR4dCBiL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvTk9USUNFLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZmNlNWMwCi0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9tYWluL3Jlc291cmNlcy9OT1RJQ0UudHh0CkBAIC0wLDAgKzEsOCBAQAorQXBhY2hlIFN0cnV0cworQ29weXJpZ2h0IDIwMDAtMjAxMSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKworVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieQorVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChodHRwOi8vd3d3LmFwYWNoZS5vcmcvKS4KKworVGhlIGJpbmFyeSBkaXN0cmlidXRpb25zIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgdGhpcmQgcGFydHkgc29mdHdhcmU6CitBTlRMUiAoaHR0cDovL3d3dy5hbnRsci5vcmcvKS4KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvbWFpbi9yZXNvdXJjZXMvc3RydXRzLXBsdWdpbi54bWwgYi9wbHVnaW5zL3N0cnV0czItc3RydXRzMS1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0cnV0cy1wbHVnaW4ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlMzlhYWYKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItc3RydXRzMS1wbHVnaW4vc3JjL21haW4vcmVzb3VyY2VzL3N0cnV0cy1wbHVnaW4ueG1sCkBAIC0wLDAgKzEsNTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/PgorPCEtLQorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKy0tPgorPCFET0NUWVBFIHN0cnV0cyBQVUJMSUMKKwkiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAyLjMvL0VOIgorCSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtMi4zLmR0ZCI+CisKKzxzdHJ1dHM+CisgICAgPHBhY2thZ2UgbmFtZT0ic3RydXRzMS1kZWZhdWx0IiBleHRlbmRzPSJzdHJ1dHMtZGVmYXVsdCI+CisKKyAgICAgICAgPGludGVyY2VwdG9ycz4KKyAgICAgICAgICAgIDxpbnRlcmNlcHRvciBuYW1lPSJhY3Rpb25Gb3JtLXJlc2V0IiBjbGFzcz0ib3JnLmFwYWNoZS5zdHJ1dHMyLnMxLkFjdGlvbkZvcm1SZXNldEludGVyY2VwdG9yIi8+CisgICAgICAgICAgICA8aW50ZXJjZXB0b3IgbmFtZT0iYWN0aW9uRm9ybS12YWxpZGF0aW9uIiBjbGFzcz0ib3JnLmFwYWNoZS5zdHJ1dHMyLnMxLkFjdGlvbkZvcm1WYWxpZGF0aW9uSW50ZXJjZXB0b3IiLz4KKyAgICAgICAgICAgIDxpbnRlcmNlcHRvciBuYW1lPSJhY3Rpb25Gb3JtLWNvbW1vbnNWYWxpZGF0aW9uIiBjbGFzcz0ib3JnLmFwYWNoZS5zdHJ1dHMyLnMxLkFjdGlvbkZvcm1WYWxpZGF0aW9uSW50ZXJjZXB0b3IiPgorICAgICAgICAgICAgICA8cGFyYW0gbmFtZT0icGF0aG5hbWVzIj4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3ZhbGlkYXRvci1ydWxlcy54bWwsL1dFQi1JTkYvdmFsaWRhdGlvbi54bWw8L3BhcmFtPgorICAgICAgICAgICAgPC9pbnRlcmNlcHRvcj4KKyAgICAgICAgICAgIDxpbnRlcmNlcHRvci1zdGFjayBuYW1lPSJzdHJ1dHMxU3RhY2siPgorICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0ic3RhdGljUGFyYW1zIi8+CisgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJzY29wZWRNb2RlbERyaXZlbiIvPgorICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0ibW9kZWxEcml2ZW4iLz4KKyAgICAgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9ImFjdGlvbkZvcm0tcmVzZXQiLz4KKyAgICAgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9ImJhc2ljU3RhY2siLz4KKyAgICAgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9ImFjdGlvbkZvcm0tdmFsaWRhdGlvbiIvPgorICAgICAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0id29ya2Zsb3ciLz4KKyAgICAgICAgPC9pbnRlcmNlcHRvci1zdGFjaz4KKyAgICAgICAgPC9pbnRlcmNlcHRvcnM+CisKKyAgICAgICAgPGRlZmF1bHQtaW50ZXJjZXB0b3ItcmVmIG5hbWU9InN0cnV0czFTdGFjayIvPgorICAgIDwvcGFja2FnZT4KKworPC9zdHJ1dHM+CmRpZmYgLS1naXQgYS9zcmMvc2l0ZS9zaXRlLnhtbCBiL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvc2l0ZS9zaXRlLnhtbApzaW1pbGFyaXR5IGluZGV4IDEwMCUKY29weSBmcm9tIHNyYy9zaXRlL3NpdGUueG1sCmNvcHkgdG8gcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy9zaXRlL3NpdGUueG1sCmRpZmYgLS1naXQgYS9wbHVnaW5zL3N0cnV0czItc3RydXRzMS1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvczEvRHluYUJlYW5Qcm9wZXJ0eUFjY2Vzc29yVGVzdC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL0R5bmFCZWFuUHJvcGVydHlBY2Nlc3NvclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZWZmMDc0Ci0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL0R5bmFCZWFuUHJvcGVydHlBY2Nlc3NvclRlc3QuamF2YQpAQCAtMCwwICsxLDE1NSBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIuczE7CisKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuKjsKK2ltcG9ydCBqYXZhLmlvLio7CitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy4qOworCitpbXBvcnQgb2dubC4qOworCisvKiogIERlc2NyaXB0aW9uIG9mIHRoZSBDbGFzcyAqLworcHVibGljIGNsYXNzIER5bmFCZWFuUHJvcGVydHlBY2Nlc3NvclRlc3QgZXh0ZW5kcyBUZXN0Q2FzZSB7CisKKyAgICBwcm90ZWN0ZWQgRHluYUJlYW4gYmVhbiA9IG51bGw7CisgICAgCisgICAgcHVibGljIER5bmFCZWFuUHJvcGVydHlBY2Nlc3NvclRlc3QoU3RyaW5nIG5hbWUpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlcihuYW1lKTsKKyAgICB9CisKKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZyBhcmdzW10pIHsKKyAgICAgICAganVuaXQudGV4dHVpLlRlc3RSdW5uZXIucnVuKER5bmFCZWFuUHJvcGVydHlBY2Nlc3NvclRlc3QuY2xhc3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB1cCBpbnN0YW5jZSB2YXJpYWJsZXMgcmVxdWlyZWQgYnkgdGhpcyB0ZXN0IGNhc2UuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICAvLyBJbnN0YW50aWF0ZSBhIG5ldyBEeW5hQmVhbiBpbnN0YW5jZQorICAgICAgICBEeW5hQ2xhc3MgZHluYUNsYXNzID0gY3JlYXRlRHluYUNsYXNzKCk7CisgICAgICAgIGJlYW4gPSBkeW5hQ2xhc3MubmV3SW5zdGFuY2UoKTsKKworICAgICAgICAvLyBJbml0aWFsaXplIHRoZSBEeW5hQmVhbidzIHByb3BlcnR5IHZhbHVlcyAobGlrZSBUZXN0QmVhbikKKyAgICAgICAgYmVhbi5zZXQoImJvb2xlYW5Qcm9wZXJ0eSIsIG5ldyBCb29sZWFuKHRydWUpKTsKKyAgICAgICAgYmVhbi5zZXQoImJvb2xlYW5TZWNvbmQiLCBuZXcgQm9vbGVhbih0cnVlKSk7CisgICAgICAgIGJlYW4uc2V0KCJkb3VibGVQcm9wZXJ0eSIsIG5ldyBEb3VibGUoMzIxLjApKTsKKyAgICAgICAgYmVhbi5zZXQoImZsb2F0UHJvcGVydHkiLCBuZXcgRmxvYXQoKGZsb2F0KSAxMjMuMCkpOworICAgICAgICBpbnQgaW50QXJyYXlbXSA9IHsgMCwgMTAsIDIwLCAzMCwgNDAgfTsKKyAgICAgICAgYmVhbi5zZXQoImludEFycmF5IiwgaW50QXJyYXkpOworICAgICAgICBpbnQgaW50SW5kZXhlZFtdID0geyAwLCAxMCwgMjAsIDMwLCA0MCB9OworICAgICAgICBiZWFuLnNldCgiaW50SW5kZXhlZCIsIGludEluZGV4ZWQpOworICAgICAgICBiZWFuLnNldCgiaW50UHJvcGVydHkiLCBuZXcgSW50ZWdlcigxMjMpKTsKKyAgICAgICAgTGlzdCBsaXN0SW5kZXhlZCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAgbGlzdEluZGV4ZWQuYWRkKCJTdHJpbmcgMCIpOworICAgICAgICBsaXN0SW5kZXhlZC5hZGQoIlN0cmluZyAxIik7CisgICAgICAgIGxpc3RJbmRleGVkLmFkZCgiU3RyaW5nIDIiKTsKKyAgICAgICAgbGlzdEluZGV4ZWQuYWRkKCJTdHJpbmcgMyIpOworICAgICAgICBsaXN0SW5kZXhlZC5hZGQoIlN0cmluZyA0Iik7CisgICAgICAgIGJlYW4uc2V0KCJsaXN0SW5kZXhlZCIsIGxpc3RJbmRleGVkKTsKKyAgICAgICAgYmVhbi5zZXQoImxvbmdQcm9wZXJ0eSIsIG5ldyBMb25nKChsb25nKSAzMjEpKTsKKyAgICAgICAgSGFzaE1hcCBtYXBwZWRQcm9wZXJ0eSA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIG1hcHBlZFByb3BlcnR5LnB1dCgiRmlyc3QgS2V5IiwgIkZpcnN0IFZhbHVlIik7CisgICAgICAgIG1hcHBlZFByb3BlcnR5LnB1dCgiU2Vjb25kIEtleSIsICJTZWNvbmQgVmFsdWUiKTsKKyAgICAgICAgYmVhbi5zZXQoIm1hcHBlZFByb3BlcnR5IiwgbWFwcGVkUHJvcGVydHkpOworICAgICAgICBIYXNoTWFwIG1hcHBlZEludFByb3BlcnR5ID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgbWFwcGVkSW50UHJvcGVydHkucHV0KCJPbmUiLCBuZXcgSW50ZWdlcigxKSk7CisgICAgICAgIG1hcHBlZEludFByb3BlcnR5LnB1dCgiVHdvIiwgbmV3IEludGVnZXIoMikpOworICAgICAgICBiZWFuLnNldCgibWFwcGVkSW50UHJvcGVydHkiLCBtYXBwZWRJbnRQcm9wZXJ0eSk7CisgICAgICAgIC8vIFByb3BlcnR5ICJudWxsUHJvcGVydHkiIGlzIG5vdCBpbml0aWFsaXplZCwgc28gaXQgc2hvdWxkIHJldHVybiBudWxsCisgICAgICAgIGJlYW4uc2V0KCJzaG9ydFByb3BlcnR5IiwgbmV3IFNob3J0KChzaG9ydCkgOTg3KSk7CisgICAgICAgIFN0cmluZyBzdHJpbmdBcnJheVtdID0KKyAgICAgICAgICAgICAgICB7ICJTdHJpbmcgMCIsICJTdHJpbmcgMSIsICJTdHJpbmcgMiIsICJTdHJpbmcgMyIsICJTdHJpbmcgNCIgfTsKKyAgICAgICAgYmVhbi5zZXQoInN0cmluZ0FycmF5Iiwgc3RyaW5nQXJyYXkpOworICAgICAgICBTdHJpbmcgc3RyaW5nSW5kZXhlZFtdID0KKyAgICAgICAgICAgICAgICB7ICJTdHJpbmcgMCIsICJTdHJpbmcgMSIsICJTdHJpbmcgMiIsICJTdHJpbmcgMyIsICJTdHJpbmcgNCIgfTsKKyAgICAgICAgYmVhbi5zZXQoInN0cmluZ0luZGV4ZWQiLCBzdHJpbmdJbmRleGVkKTsKKyAgICAgICAgYmVhbi5zZXQoInN0cmluZ1Byb3BlcnR5IiwgIlRoaXMgaXMgYSBzdHJpbmciKTsKKworICAgIH0KKworCisKKworICAgIHB1YmxpYyB2b2lkIHRlc3RHZXRQcm9wZXJ0eSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAKKyAgICAgICAgRHluYUJlYW5Qcm9wZXJ0eUFjY2Vzc29yIHRyYW5zID0gbmV3IER5bmFCZWFuUHJvcGVydHlBY2Nlc3NvcigpOworICAgICAgICBhc3NlcnRUcnVlKCJUaGlzIGlzIGEgc3RyaW5nIi5lcXVhbHModHJhbnMuZ2V0UHJvcGVydHkobnVsbCwgYmVhbiwgInN0cmluZ1Byb3BlcnR5IikpKTsgCisgICAgICAgIGFzc2VydFRydWUodHJhbnMuZ2V0UHJvcGVydHkobnVsbCwgYmVhbiwgImxpc3RJbmRleGVkIikgaW5zdGFuY2VvZiBMaXN0KTsgCisgICAgICAgIAorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RTZXRQcm9wZXJ0eSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAKKyAgICAgICAgRHluYUJlYW5Qcm9wZXJ0eUFjY2Vzc29yIHRyYW5zID0gbmV3IER5bmFCZWFuUHJvcGVydHlBY2Nlc3NvcigpOworICAgICAgICB0cmFucy5zZXRQcm9wZXJ0eShudWxsLCBiZWFuLCAic3RyaW5nUHJvcGVydHkiLCAiYm9iIik7CisgICAgICAgIGFzc2VydFRydWUoImJvYiIuZXF1YWxzKHRyYW5zLmdldFByb3BlcnR5KG51bGwsIGJlYW4sICJzdHJpbmdQcm9wZXJ0eSIpKSk7IAorICAgICAgICAKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0T0dOTCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICAKKyAgICAgICAgT2dubFJ1bnRpbWUuc2V0UHJvcGVydHlBY2Nlc3NvcihEeW5hQmVhbi5jbGFzcywgbmV3IER5bmFCZWFuUHJvcGVydHlBY2Nlc3NvcigpKTsKKworICAgICAgICBhc3NlcnRUcnVlKCJUaGlzIGlzIGEgc3RyaW5nIi5lcXVhbHMoT2dubC5nZXRWYWx1ZSgic3RyaW5nUHJvcGVydHkiLCBiZWFuKSkpOworCisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW5kIHJldHVybiBhIDxjb2RlPkR5bmFDbGFzczwvY29kZT4gaW5zdGFuY2UgZm9yIG91ciB0ZXN0CisgICAgICogPGNvZGU+RHluYUJlYW48L2NvZGU+LgorICAgICAqLworICAgIHByb3RlY3RlZCBEeW5hQ2xhc3MgY3JlYXRlRHluYUNsYXNzKCkgeworCisgICAgICAgIGludCBpbnRBcnJheVtdID0gbmV3IGludFswXTsKKyAgICAgICAgU3RyaW5nIHN0cmluZ0FycmF5W10gPSBuZXcgU3RyaW5nWzBdOworCisgICAgICAgIER5bmFDbGFzcyBkeW5hQ2xhc3MgPSBuZXcgQmFzaWNEeW5hQ2xhc3MKKyAgICAgICAgICAgICAgICAoIlRlc3REeW5hQ2xhc3MiLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IER5bmFQcm9wZXJ0eVtdeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEeW5hUHJvcGVydHkoImJvb2xlYW5Qcm9wZXJ0eSIsIEJvb2xlYW4uVFlQRSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IER5bmFQcm9wZXJ0eSgiYm9vbGVhblNlY29uZCIsIEJvb2xlYW4uVFlQRSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IER5bmFQcm9wZXJ0eSgiZG91YmxlUHJvcGVydHkiLCBEb3VibGUuVFlQRSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IER5bmFQcm9wZXJ0eSgiZmxvYXRQcm9wZXJ0eSIsIEZsb2F0LlRZUEUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEeW5hUHJvcGVydHkoImludEFycmF5IiwgaW50QXJyYXkuZ2V0Q2xhc3MoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IER5bmFQcm9wZXJ0eSgiaW50SW5kZXhlZCIsIGludEFycmF5LmdldENsYXNzKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEeW5hUHJvcGVydHkoImludFByb3BlcnR5IiwgSW50ZWdlci5UWVBFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRHluYVByb3BlcnR5KCJsaXN0SW5kZXhlZCIsIExpc3QuY2xhc3MpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEeW5hUHJvcGVydHkoImxvbmdQcm9wZXJ0eSIsIExvbmcuVFlQRSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IER5bmFQcm9wZXJ0eSgibWFwcGVkUHJvcGVydHkiLCBNYXAuY2xhc3MpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEeW5hUHJvcGVydHkoIm1hcHBlZEludFByb3BlcnR5IiwgTWFwLmNsYXNzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRHluYVByb3BlcnR5KCJudWxsUHJvcGVydHkiLCBTdHJpbmcuY2xhc3MpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEeW5hUHJvcGVydHkoInNob3J0UHJvcGVydHkiLCBTaG9ydC5UWVBFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRHluYVByb3BlcnR5KCJzdHJpbmdBcnJheSIsIHN0cmluZ0FycmF5LmdldENsYXNzKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEeW5hUHJvcGVydHkoInN0cmluZ0luZGV4ZWQiLCBzdHJpbmdBcnJheS5nZXRDbGFzcygpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRHluYVByb3BlcnR5KCJzdHJpbmdQcm9wZXJ0eSIsIFN0cmluZy5jbGFzcyksCisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuIChkeW5hQ2xhc3MpOworCisgICAgfQorCisKK30KKwpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL1N0cnV0czFGYWN0b3J5VGVzdC5qYXZhIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL1N0cnV0czFGYWN0b3J5VGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliOGM2MjYKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL3N0cnV0czItc3RydXRzMS1wbHVnaW4vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvczEvU3RydXRzMUZhY3RvcnlUZXN0LmphdmEKQEAgLTAsMCArMSwyNDEgQEAKKy8qCisgKiAkSWQkCisgKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLnMxOworCitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnM7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLlN0cnV0c1Rlc3RDYXNlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5jb25maWcuU3RydXRzWG1sQ29uZmlndXJhdGlvblByb3ZpZGVyOworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uU3VwcG9ydDsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5jb25maWcuZW50aXRpZXMuRXhjZXB0aW9uTWFwcGluZ0NvbmZpZzsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5jb25maWcuZW50aXRpZXMuUGFja2FnZUNvbmZpZzsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5jb25maWcuZW50aXRpZXMuUmVzdWx0Q29uZmlnOworCisvKioKKyAqIFRlc3Qgb2YgU3RydXRzMUZhY3RvcnksIHdoaWNoIGNyZWF0ZXMgU3RydXRzIDEueCB3cmFwcGVycyBhcm91bmQgWFdvcmsgY29uZmlnIG9iamVjdHMuCisgKi8KK3B1YmxpYyBjbGFzcyBTdHJ1dHMxRmFjdG9yeVRlc3QgZXh0ZW5kcyBTdHJ1dHNUZXN0Q2FzZSB7CisKKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUEFDS0FHRV9OQU1FID0gIm9yZy9hcGFjaGUvc3RydXRzMi9zMSI7CisgICAgCisgICAgcHJvdGVjdGVkIFN0cnV0czFGYWN0b3J5IGZhY3RvcnkgPSBudWxsOworCisgICAgLyoqCisgICAgICogU2V0IHVwIGluc3RhbmNlIHZhcmlhYmxlcyByZXF1aXJlZCBieSB0aGlzIHRlc3QgY2FzZS4KKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiAKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci5zZXRVcCgpOworICAgICAgICBsb2FkQ29uZmlndXJhdGlvblByb3ZpZGVycyhuZXcgU3RydXRzWG1sQ29uZmlndXJhdGlvblByb3ZpZGVyKFBBQ0tBR0VfTkFNRSArICIvdGVzdC1zdHJ1dHMtZmFjdG9yeS54bWwiLCB0cnVlLCBudWxsKSk7CisgICAgICAgIGZhY3RvcnkgPSBuZXcgU3RydXRzMUZhY3RvcnkoY29uZmlndXJhdGlvbik7CisgICAgICAgIAorICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGNyZWF0aW9uIG9mIGEgU3RydXRzIDEueCBNb2R1bGVDb25maWcgd3JhcHBlciBhcm91bmQgYW4gWFdvcmsgUGFja2FnZUNvbmZpZy4KKyAgICAgKiBUaGUgUGFja2FnZUNvbmZpZyBpcyBsb2FkZWQgZnJvbSB0ZXN0LXN0cnV0cy1mYWN0b3J5LnhtbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q3JlYXRlTW9kdWxlQ29uZmlnKCkgeworICAgICAgICBNb2R1bGVDb25maWcgbW9kdWxlQ29uZmlnID0gZmFjdG9yeS5jcmVhdGVNb2R1bGVDb25maWcoUEFDS0FHRV9OQU1FKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChtb2R1bGVDb25maWcpOworICAgICAgICAKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIvIitQQUNLQUdFX05BTUUsIG1vZHVsZUNvbmZpZy5nZXRQcmVmaXgoKSk7CisgICAgICAgIAorICAgICAgICBBY3Rpb25Db25maWcgYWN0aW9uQ29uZmlnID0gbW9kdWxlQ29uZmlnLmZpbmRBY3Rpb25Db25maWcoIi9hY3Rpb24xIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoYWN0aW9uQ29uZmlnKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIvYWN0aW9uMSIsIGFjdGlvbkNvbmZpZy5nZXRQYXRoKCkpOworICAgICAgICAKKyAgICAgICAgQWN0aW9uQ29uZmlnW10gYWN0aW9uQ29uZmlncyA9IG1vZHVsZUNvbmZpZy5maW5kQWN0aW9uQ29uZmlncygpOworICAgICAgICBhc3NlcnROb3ROdWxsKGFjdGlvbkNvbmZpZ3MpOworICAgICAgICBhc3NlcnRFcXVhbHMoMiwgYWN0aW9uQ29uZmlncy5sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgRXhjZXB0aW9uQ29uZmlnIGV4Y2VwdGlvbkNvbmZpZyA9IG1vZHVsZUNvbmZpZy5maW5kRXhjZXB0aW9uQ29uZmlnKEV4Y2VwdGlvbi5jbGFzcy5nZXROYW1lKCkpOworICAgICAgICBhc3NlcnROb3ROdWxsKGV4Y2VwdGlvbkNvbmZpZyk7CisgICAgICAgIGFzc2VydEVxdWFscyhFeGNlcHRpb24uY2xhc3MuZ2V0TmFtZSgpLCBleGNlcHRpb25Db25maWcuZ2V0VHlwZSgpKTsKKyAgICAgICAgCisgICAgICAgIEV4Y2VwdGlvbkNvbmZpZ1tdIGV4Y2VwdGlvbkNvbmZpZ3MgPSBtb2R1bGVDb25maWcuZmluZEV4Y2VwdGlvbkNvbmZpZ3MoKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChleGNlcHRpb25Db25maWdzKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDEsIGV4Y2VwdGlvbkNvbmZpZ3MubGVuZ3RoKTsKKyAgICAgICAgCisgICAgICAgIEZvcndhcmRDb25maWcgZndkQ29uZmlnID0gbW9kdWxlQ29uZmlnLmZpbmRGb3J3YXJkQ29uZmlnKCJnbG9iYWxSZXN1bHQiKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChmd2RDb25maWcpOworICAgICAgICBhc3NlcnRFcXVhbHMoImdsb2JhbFJlc3VsdCIsIGZ3ZENvbmZpZy5nZXROYW1lKCkpOworICAgICAgICAKKyAgICAgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZCAtLSByZXBsYWNlIGFzIGZ1bmN0aW9uYWxpdHkgaXMgYWRkZWQuCisgICAgICAgIGFzc2VydE5ZSShtb2R1bGVDb25maWcsICJnZXRDb250cm9sbGVyQ29uZmlnIiwgbnVsbCk7CisgICAgICAgIGFzc2VydE5ZSShtb2R1bGVDb25maWcsICJnZXRBY3Rpb25Gb3JtQmVhbkNsYXNzIiwgbnVsbCk7CisgICAgICAgIGFzc2VydE5ZSShtb2R1bGVDb25maWcsICJnZXRBY3Rpb25NYXBwaW5nQ2xhc3MiLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0TllJKG1vZHVsZUNvbmZpZywgImdldEFjdGlvbkZvcndhcmRDbGFzcyIsIG51bGwpOworICAgICAgICBhc3NlcnROWUkobW9kdWxlQ29uZmlnLCAiZmluZEV4Y2VwdGlvbiIsIENsYXNzLmNsYXNzKTsKKyAgICAgICAgYXNzZXJ0TllJKG1vZHVsZUNvbmZpZywgImZpbmRGb3JtQmVhbkNvbmZpZyIsIFN0cmluZy5jbGFzcyk7CisgICAgICAgIGFzc2VydE5ZSShtb2R1bGVDb25maWcsICJmaW5kRm9ybUJlYW5Db25maWdzIiwgbnVsbCk7CisgICAgICAgIGFzc2VydE5ZSShtb2R1bGVDb25maWcsICJmaW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZyIsIFN0cmluZy5jbGFzcyk7CisgICAgICAgIGFzc2VydE5ZSShtb2R1bGVDb25maWcsICJmaW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZ3MiLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0TllJKG1vZHVsZUNvbmZpZywgImZpbmRQbHVnSW5Db25maWdzIiwgbnVsbCk7CisgICAgfQorICAgIAorICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGNyZWF0aW9uIG9mIGEgU3RydXRzIDEueCBBY3Rpb25NYXBwaW5nIHdyYXBwZXIgYXJvdW5kIGFuIFhXb3JrIEFjdGlvbkNvbmZpZy4KKyAgICAgKiBUaGUgQWN0aW9uQ29uZmlnIGlzIGxvYWRlZCBmcm9tIHRlc3Qtc3RydXRzLWZhY3RvcnkueG1sLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RDcmVhdGVBY3Rpb25NYXBwaW5nKCkgeworICAgICAgICBQYWNrYWdlQ29uZmlnIHBhY2thZ2VDb25maWcgPSBjb25maWd1cmF0aW9uLmdldFBhY2thZ2VDb25maWcoUEFDS0FHRV9OQU1FKTsKKyAgICAgICAgY29tLm9wZW5zeW1waG9ueS54d29yazIuY29uZmlnLmVudGl0aWVzLkFjdGlvbkNvbmZpZyBhY3Rpb25Db25maWcgPQorICAgICAgICAgICAgICAgIChjb20ub3BlbnN5bXBob255Lnh3b3JrMi5jb25maWcuZW50aXRpZXMuQWN0aW9uQ29uZmlnKSBwYWNrYWdlQ29uZmlnLmdldEFjdGlvbkNvbmZpZ3MoKS5nZXQoImFjdGlvbjEiKTsKKyAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nID0gZmFjdG9yeS5jcmVhdGVBY3Rpb25NYXBwaW5nKGFjdGlvbkNvbmZpZyk7CisgICAgICAgIGFzc2VydE5vdE51bGwobWFwcGluZyk7CisKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChtYXBwaW5nLmZpbmRGb3J3YXJkKCJyZXN1bHQxIikpOworICAgICAgICBhc3NlcnROb3ROdWxsKG1hcHBpbmcuZmluZEZvcndhcmRDb25maWcoInJlc3VsdDIiKSk7CisKKyAgICAgICAgRm9yd2FyZENvbmZpZ1tdIGNvbmZpZ3MgPSBtYXBwaW5nLmZpbmRGb3J3YXJkQ29uZmlncygpOworICAgICAgICBhc3NlcnROb3ROdWxsKGNvbmZpZ3MpOworICAgICAgICBhc3NlcnRFcXVhbHMoMiwgY29uZmlncy5sZW5ndGgpOworCisgICAgICAgIFN0cmluZ1tdIGZvcndhcmRzID0gbWFwcGluZy5maW5kRm9yd2FyZHMoKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChmb3J3YXJkcyk7CisgICAgICAgIGFzc2VydEVxdWFscygyLCBmb3J3YXJkcy5sZW5ndGgpOworICAgICAgICAKKyAgICAgICAgQWN0aW9uRm9yd2FyZCBmd2QgPSBtYXBwaW5nLmZpbmRGb3J3YXJkKCJyZXN1bHQxIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoZndkKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJyZXN1bHQxIiwgZndkLmdldE5hbWUoKSk7CisKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChtYXBwaW5nLmZpbmRFeGNlcHRpb24oTnVsbFBvaW50ZXJFeGNlcHRpb24uY2xhc3MpKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChtYXBwaW5nLmZpbmRFeGNlcHRpb25Db25maWcoImphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb24iKSk7CisKKyAgICAgICAgRXhjZXB0aW9uQ29uZmlnW10gZXhjZXB0aW9uQ29uZmlncyA9IG1hcHBpbmcuZmluZEV4Y2VwdGlvbkNvbmZpZ3MoKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChleGNlcHRpb25Db25maWdzKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKDIsIGV4Y2VwdGlvbkNvbmZpZ3MubGVuZ3RoKTsKKyAgICAgICAgCisgICAgICAgIE1vZHVsZUNvbmZpZyBtb2R1bGVDb25maWcgPSBtYXBwaW5nLmdldE1vZHVsZUNvbmZpZygpOworICAgICAgICBhc3NlcnROb3ROdWxsKG1vZHVsZUNvbmZpZyk7CisgICAgICAgIAorICAgICAgICAvLyBGb3Igbm93LCB0aGUgcGF0aCB3aWxsIGJlIG51bGwgaWYgdGhlIEFjdGlvbk1hcHBpbmcgd2FzIGNyZWF0ZWQgb24gaXRzIG93biAoYXMgb3Bwb3NlZCB0byBmcm9tIGEKKyAgICAgICAgLy8gV3JhcHBlck1vZHVsZUNvbmZpZywgd2hpY2gga25vd3MgdGhlIHBhdGgpLgorICAgICAgICBhc3NlcnROdWxsKG1hcHBpbmcuZ2V0UGF0aCgpKTsKKyAgICAgICAgCisgICAgICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQgLS0gcmVwbGFjZSBhcyBmdW5jdGlvbmFsaXR5IGlzIGFkZGVkLgorICAgICAgICBhc3NlcnROWUkobWFwcGluZywgImdldElucHV0Rm9yd2FyZCIsIG51bGwpOworICAgICAgICBhc3NlcnROWUkobWFwcGluZywgImdldEZvcndhcmQiLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0TllJKG1hcHBpbmcsICJnZXRJbmNsdWRlIiwgbnVsbCk7CisgICAgICAgIGFzc2VydE5ZSShtYXBwaW5nLCAiZ2V0SW5wdXQiLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0TllJKG1hcHBpbmcsICJnZXRNdWx0aXBhcnRDbGFzcyIsIG51bGwpOworICAgICAgICBhc3NlcnROWUkobWFwcGluZywgImdldE5hbWUiLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0TllJKG1hcHBpbmcsICJnZXRQYXJhbWV0ZXIiLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0TllJKG1hcHBpbmcsICJnZXRQcmVmaXgiLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0TllJKG1hcHBpbmcsICJnZXRSb2xlcyIsIG51bGwpOworICAgICAgICBhc3NlcnROWUkobWFwcGluZywgImdldFJvbGVOYW1lcyIsIG51bGwpOworICAgICAgICBhc3NlcnROWUkobWFwcGluZywgImdldFNjb3BlIiwgbnVsbCk7CisgICAgICAgIGFzc2VydE5ZSShtYXBwaW5nLCAiZ2V0U3VmZml4IiwgbnVsbCk7CisgICAgICAgIGFzc2VydE5ZSShtYXBwaW5nLCAiZ2V0VHlwZSIsIG51bGwpOworICAgICAgICBhc3NlcnROWUkobWFwcGluZywgImdldFVua25vd24iLCBudWxsKTsKKyAgICAgICAgYXNzZXJ0TllJKG1hcHBpbmcsICJnZXRWYWxpZGF0ZSIsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGNyZWF0aW9uIG9mIGEgU3RydXRzIDEueCBBY3Rpb25Gb3J3YXJkIHdyYXBwZXIgYXJvdW5kIGFuIFhXb3JrIFJlc3VsdENvbmZpZy4KKyAgICAgKiBUaGUgUmVzdWx0Q29uZmlnIGlzIGxvYWRlZCBmcm9tIHRlc3Qtc3RydXRzLWZhY3RvcnkueG1sLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RDcmVhdGVBY3Rpb25Gb3J3YXJkKCkgeworICAgICAgICBQYWNrYWdlQ29uZmlnIHBhY2thZ2VDb25maWcgPSBjb25maWd1cmF0aW9uLmdldFBhY2thZ2VDb25maWcoUEFDS0FHRV9OQU1FKTsKKyAgICAgICAgUmVzdWx0Q29uZmlnIHJlc3VsdENvbmZpZyA9IChSZXN1bHRDb25maWcpIHBhY2thZ2VDb25maWcuZ2V0R2xvYmFsUmVzdWx0Q29uZmlncygpLmdldCgiZ2xvYmFsUmVzdWx0Iik7CisgICAgICAgIEFjdGlvbkZvcndhcmQgZndkID0gZmFjdG9yeS5jcmVhdGVBY3Rpb25Gb3J3YXJkKHJlc3VsdENvbmZpZyk7CisgICAgICAgIGFzc2VydE5vdE51bGwoZndkKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCJnbG9iYWxSZXN1bHQiLCBmd2QuZ2V0TmFtZSgpKTsKKyAgICAgICAgCisgICAgICAgIC8vIFRoZXNlIG1ldGhvZHMgYXJlIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQgLS0gcmVwbGFjZSBhcyBmdW5jdGlvbmFsaXR5IGlzIGFkZGVkLgorICAgICAgICBhc3NlcnROWUkoZndkLCAiZ2V0UGF0aCIsIG51bGwpOworICAgICAgICBhc3NlcnROWUkoZndkLCAiZ2V0TW9kdWxlIiwgbnVsbCk7CisgICAgICAgIGFzc2VydE5ZSShmd2QsICJnZXRSZWRpcmVjdCIsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRlc3QgdGhlIGNyZWF0aW9uIG9mIGEgU3RydXRzIDEueCBFeGNlcHRpb25Db25maWcgd3JhcHBlciBhcm91bmQgYW4gWFdvcmsgRXhjZXB0aW9uSGFuZGxlckNvbmZpZy4KKyAgICAgKiBUaGUgRXhjZXB0aW9uQ29uZmlnIGlzIGxvYWRlZCBmcm9tIHRlc3Qtc3RydXRzLWZhY3RvcnkueG1sLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RDcmVhdGVFeGNlcHRpb25Db25maWcoKSB7CisgICAgICAgIFBhY2thZ2VDb25maWcgcGFja2FnZUNvbmZpZyA9IGNvbmZpZ3VyYXRpb24uZ2V0UGFja2FnZUNvbmZpZyhQQUNLQUdFX05BTUUpOworICAgICAgICBFeGNlcHRpb25NYXBwaW5nQ29uZmlnIGNmZyA9IChFeGNlcHRpb25NYXBwaW5nQ29uZmlnKSBwYWNrYWdlQ29uZmlnLmdldEdsb2JhbEV4Y2VwdGlvbk1hcHBpbmdDb25maWdzKCkuZ2V0KDApOworICAgICAgICBFeGNlcHRpb25Db25maWcgZXhjZXB0aW9uQ29uZmlnID0gZmFjdG9yeS5jcmVhdGVFeGNlcHRpb25Db25maWcoY2ZnKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChleGNlcHRpb25Db25maWcpOworICAgICAgICBhc3NlcnRFcXVhbHMoRXhjZXB0aW9uLmNsYXNzLmdldE5hbWUoKSwgZXhjZXB0aW9uQ29uZmlnLmdldFR5cGUoKSk7CisKKyAgICAgICAgYXNzZXJ0TllJKGV4Y2VwdGlvbkNvbmZpZywgImdldEJ1bmRsZSIsIG51bGwpOworICAgICAgICBhc3NlcnROWUkoZXhjZXB0aW9uQ29uZmlnLCAiZ2V0SGFuZGxlciIsIG51bGwpOworICAgICAgICBhc3NlcnROWUkoZXhjZXB0aW9uQ29uZmlnLCAiZ2V0S2V5IiwgbnVsbCk7CisgICAgICAgIGFzc2VydE5ZSShleGNlcHRpb25Db25maWcsICJnZXRQYXRoIiwgbnVsbCk7CisgICAgICAgIGFzc2VydE5ZSShleGNlcHRpb25Db25maWcsICJnZXRTY29wZSIsIG51bGwpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RDb252ZXJ0RXJyb3JzKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgQWN0aW9uTWVzc2FnZSBlcnIxID0gbmV3IEFjdGlvbk1lc3NhZ2UoImVycm9yMSIpOworICAgICAgICBBY3Rpb25NZXNzYWdlIGVycjIgPSBuZXcgQWN0aW9uTWVzc2FnZSgiZXJyb3IyIiwgbmV3IEludGVnZXIoMSkpOworICAgICAgICBBY3Rpb25FcnJvcnMgZXJyb3JzID0gbmV3IEFjdGlvbkVycm9ycygpOworICAgICAgICBlcnJvcnMuYWRkKGVycm9ycy5HTE9CQUxfTUVTU0FHRSwgZXJyMSk7CisgICAgICAgIGVycm9ycy5hZGQoImZvbyIsIGVycjIpOworCisgICAgICAgIEFjdGlvblN1cHBvcnQgYWN0aW9uID0gbmV3IEFjdGlvblN1cHBvcnQoKTsKKyAgICAgICAgZmFjdG9yeS5jb252ZXJ0RXJyb3JzKGVycm9ycywgYWN0aW9uKTsKKworICAgICAgICBhc3NlcnRUcnVlKDEgPT0gYWN0aW9uLmdldEFjdGlvbkVycm9ycygpLnNpemUoKSk7CisgICAgICAgIGFzc2VydFRydWUoMSA9PSBhY3Rpb24uZ2V0RmllbGRFcnJvcnMoKS5zaXplKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFzc2VydCB0aGF0IHRoZSBnaXZlbiBtZXRob2QgdGhyb3dzIFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBhc3NlcnROWUkoT2JqZWN0IG8sIFN0cmluZyBtZXRob2ROYW1lLCBDbGFzcyBhcmdUeXBlKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDbGFzc1tdIGFyZ1R5cGVzID0gYXJnVHlwZSAhPSBudWxsID8gbmV3IENsYXNzW117YXJnVHlwZX0gOiBudWxsOworICAgICAgICAgICAgCisgICAgICAgICAgICBPYmplY3RbXSBhcmdzID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChhcmdUeXBlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoQ2xhc3MuY2xhc3MgPT0gYXJnVHlwZSkgeworICAgICAgICAgICAgICAgICAgICBhcmdzID0gbmV3IE9iamVjdFtde2FyZ1R5cGV9OworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBuZXcgT2JqZWN0W117YXJnVHlwZS5uZXdJbnN0YW5jZSgpfTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvLmdldENsYXNzKCkuZ2V0TWV0aG9kKG1ldGhvZE5hbWUsIGFyZ1R5cGVzKS5pbnZva2UobywgYXJncyk7CisgICAgICAgIH0gY2F0Y2ggKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgVGhyb3dhYmxlIGNhdXNlID0gZS5nZXRDYXVzZSgpOworICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKGNhdXNlLmdldE1lc3NhZ2UoKSwgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uY2xhc3MsIGNhdXNlLmdldENsYXNzKCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBPSyAtLSBpdCdzIHdoYXQgd2UgZXhwZWN0ZWQKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGZhaWwoZS5nZXRDbGFzcygpLmdldE5hbWUoKSArICI6ICIgKyBlLmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKworICAgICAgICBmYWlsKCJFeHBlY3RlZCBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbiBmb3IgIiArIG1ldGhvZE5hbWUgKyAiKCkgb24gIiArIG8uZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL3Rlc3Qtc3RydXRzLWZhY3RvcnkueG1sIGIvcGx1Z2lucy9zdHJ1dHMyLXN0cnV0czEtcGx1Z2luL3NyYy90ZXN0L3Jlc291cmNlcy9vcmcvYXBhY2hlL3N0cnV0czIvczEvdGVzdC1zdHJ1dHMtZmFjdG9yeS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzJjY2Q5ZgotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvc3RydXRzMi1zdHJ1dHMxLXBsdWdpbi9zcmMvdGVzdC9yZXNvdXJjZXMvb3JnL2FwYWNoZS9zdHJ1dHMyL3MxL3Rlc3Qtc3RydXRzLWZhY3RvcnkueG1sCkBAIC0wLDAgKzEsNjcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/PgorPCEtLQorLyoKKyAqICRJZCQKKyAqCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKy0tPgorPCFET0NUWVBFIHN0cnV0cyBQVUJMSUMKKyAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAyLjAvL0VOIgorICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtMi4wLmR0ZCI+CisgICAgICAgIAorPCEtLSBVc2VkIGJ5IHRoZSBUZXN0U3RydXRzRmFjdG9yeSBUZXN0Q2FzZS4gLS0+Cis8c3RydXRzPgorICAgIDxiZWFuIGNsYXNzPSJjb20ub3BlbnN5bXBob255Lnh3b3JrMi5PYmplY3RGYWN0b3J5IiBuYW1lPSJkZWZhdWx0IiAvPgorCTxiZWFuIHR5cGU9ImNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvblByb3h5RmFjdG9yeSIgbmFtZT0iZGVmYXVsdCIgY2xhc3M9ImNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkRlZmF1bHRBY3Rpb25Qcm94eUZhY3RvcnkiLz4KKwk8Y29uc3RhbnQgbmFtZT0iZGV2TW9kZSIgdmFsdWU9ImZhbHNlIiAvPgorICA8cGFja2FnZSBuYW1lPSJvcmcvYXBhY2hlL3N0cnV0czIvczEiIG5hbWVzcGFjZT0iL29yZy9hcGFjaGUvc3RydXRzMi9zMSI+CisgICAgPHJlc3VsdC10eXBlcz4KKyAgICAgIDxyZXN1bHQtdHlwZSBjbGFzcz0ib3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuU2VydmxldERpc3BhdGNoZXJSZXN1bHQiIG5hbWU9InNlcnZsZXREaXNwYXRjaGVyUmVzdWx0Ii8+CisgICAgPC9yZXN1bHQtdHlwZXM+CisgICAgPGdsb2JhbC1yZXN1bHRzPgorICAgICAgPHJlc3VsdCBuYW1lPSJnbG9iYWxSZXN1bHQiIHR5cGU9InNlcnZsZXREaXNwYXRjaGVyUmVzdWx0Ij4KKyAgICAgICAgPHBhcmFtIG5hbWU9ImxvY2F0aW9uIj5ub2V4aXN0LmpzcDwvcGFyYW0+CisgICAgICA8L3Jlc3VsdD4KKyAgICA8L2dsb2JhbC1yZXN1bHRzPgorICAgIDxnbG9iYWwtZXhjZXB0aW9uLW1hcHBpbmdzPgorICAgICAgPGV4Y2VwdGlvbi1tYXBwaW5nCisgICAgICAgIG5hbWU9Imdsb2JhbEV4Y2VwdGlvbiIKKyAgICAgICAgZXhjZXB0aW9uPSJqYXZhLmxhbmcuRXhjZXB0aW9uIgorICAgICAgICByZXN1bHQ9Imdsb2JhbFJlc3VsdCIvPgorICAgIDwvZ2xvYmFsLWV4Y2VwdGlvbi1tYXBwaW5ncz4KKyAgICA8YWN0aW9uIGNsYXNzPSJjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25TdXBwb3J0IiBuYW1lPSJhY3Rpb24xIj4KKyAgICAgIDxyZXN1bHQgbmFtZT0icmVzdWx0MSIgdHlwZT0ic2VydmxldERpc3BhdGNoZXJSZXN1bHQiPgorICAgICAgICA8cGFyYW0gbmFtZT0ibG9jYXRpb24iPnJlc3VsdDEuanNwPC9wYXJhbT4KKyAgICAgIDwvcmVzdWx0PgorICAgICAgPHJlc3VsdCBuYW1lPSJyZXN1bHQyIiB0eXBlPSJzZXJ2bGV0RGlzcGF0Y2hlclJlc3VsdCI+CisgICAgICAgIDxwYXJhbSBuYW1lPSJsb2NhdGlvbiI+cmVzdWx0MS5qc3A8L3BhcmFtPgorICAgICAgPC9yZXN1bHQ+CisgICAgICA8ZXhjZXB0aW9uLW1hcHBpbmcKKyAgICAgICAgbmFtZT0iZXhjZXB0aW9uMSIKKyAgICAgICAgZXhjZXB0aW9uPSJqYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb24iCisgICAgICAgIHJlc3VsdD0ic29tZVJlc3VsdCIvPgorICAgICAgPGV4Y2VwdGlvbi1tYXBwaW5nCisgICAgICAgIG5hbWU9ImV4Y2VwdGlvbjIiCisgICAgICAgIGV4Y2VwdGlvbj0iamF2YS5sYW5nLklsbGVnYWxTdGF0ZUV4Y2VwdGlvbiIKKyAgICAgICAgcmVzdWx0PSJhbm90aGVyUmVzdWx0Ii8+CisgICAgPC9hY3Rpb24+CisgICAgPGFjdGlvbiBjbGFzcz0iY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uU3VwcG9ydCIgbmFtZT0iYWN0aW9uMiIvPgorICA8L3BhY2thZ2U+Cis8L3N0cnV0cz4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvYWxsY2xhc3Nlcy1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvYWxsY2xhc3Nlcy1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjYjU4YTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9hbGxjbGFzc2VzLWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzOTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FsbCBDbGFzc2VzCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9InN0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KKzxCPkFsbCBDbGFzc2VzPC9CPjwvRk9OVD4KKzxCUj4KKworPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25CYXNlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uQmFzZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkVycm9yPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkVycm9yczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uRm9ybTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkZvcm1CZWFuPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkZvcm1CZWFuczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uRm9yd2FyZDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkZvcndhcmRzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25NYXBwaW5nPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdCYXNlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uTWFwcGluZ0Jhc2U8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25NYXBwaW5nczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uU2VydmxldDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BZGREYXRhU291cmNlUnVsZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFkZERhdGFTb3VyY2VSdWxlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3JtQmVhbkFjdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFkZEZvcm1CZWFuQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3J3YXJkQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWRkRm9yd2FyZEFjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkTWFwcGluZ0FjdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFkZE1hcHBpbmdBY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FycmF5U3RhY2suaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BcnJheVN0YWNrPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VBdHRyaWJ1dGVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5CYXNlQXR0cmlidXRlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VGaWVsZFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkJhc2VGaWVsZFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkJhc2VGaWVsZFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5CYXNlSW5wdXRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5CYXNlSW5wdXRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkJhc2VUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QmFzZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QmVhblV0aWxzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0J1dHRvblRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkJ1dHRvblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkJ1dHRvblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q2FsbE1ldGhvZFJ1bGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsUGFyYW1SdWxlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q2FsbFBhcmFtUnVsZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DYW5jZWxUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5DYW5jZWxUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5DYW5jZWxUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2hlY2tib3hUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5DaGVja2JveFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q2hlY2tib3hUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db21wYXJlVGFnQmFzZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ29uc3RhbnRzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29uc3RhbnRzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29uc3RhbnRzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbnRlbnQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbnRlbnRNYXA8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db250ZW50TWFwU3RhY2s8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbnZlcnRVdGlsczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvb2tpZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvb2tpZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRlZmluZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRlZmluZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGlnZXN0ZXI8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EaXNrRmlsZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGlzcGF0Y2hBY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW5jb2RlUmVkaXJlY3RVUkxUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5FbmNvZGVSZWRpcmVjdFVSTFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbmNvZGVVUkxUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5FbmNvZGVVUkxUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RW51bWVyYXRlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkVudW1lcmF0ZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkVxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RXJyb3JNZXNzYWdlczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FcnJvcnNUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5FcnJvcnNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5FcnJvcnNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5GYXN0QXJyYXlMaXN0PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkZhc3RIYXNoTWFwPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkZhc3RUcmVlTWFwPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0ZpbGVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5GaWxlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkZpbGVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5Gb3JtRmlsZTwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkZvcm1UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Rm9ybVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkZvcndhcmRBY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3J3YXJkVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Rm9yd2FyZFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Rm9yd2FyZFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9HZXRQcm9wZXJ0eVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkdldFByb3BlcnR5VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0dldFByb3BlcnR5VGVpLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+R2V0UHJvcGVydHlUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+R2V0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkdyZWF0ZXJFcXVhbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkdyZWF0ZXJUaGFuVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SGVhZGVyVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGVpLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SGVhZGVyVGVpPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0hpZGRlblRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkhpZGRlblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkhpZGRlblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9IdG1sUHJvcGVydHlUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5IdG1sUHJvcGVydHlUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SHRtbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZkF0dHJpYnV0ZUV4aXN0c1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPklmQXR0cmlidXRlRXhpc3RzVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmQXR0cmlidXRlTWlzc2luZ1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPklmQXR0cmlidXRlTWlzc2luZ1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlckVxdWFsc1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPklmUGFyYW1ldGVyRXF1YWxzVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTm90RXF1YWxzVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3ROdWxsVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SWZQYXJhbWV0ZXJOb3ROdWxsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTnVsbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPklmUGFyYW1ldGVyTnVsbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlByb3BlcnR5RXF1YWxzVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SWZQcm9wZXJ0eUVxdWFsc1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlByb3BlcnR5Tm90RXF1YWxzVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SWZQcm9wZXJ0eU5vdEVxdWFsc1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SW1hZ2VUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JbWdUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JbmNsdWRlQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0luY2x1ZGVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JbmNsdWRlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkluY2x1ZGVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGVpLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SW5jbHVkZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JbnNlcnRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkl0ZXJhdGVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkl0ZXJhdGVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkl0ZXJhdGVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkl0ZXJhdGVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkl0ZXJhdG9yQWRhcHRlcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzRXF1YWxUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5MZXNzRXF1YWxUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5MZXNzVGhhblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkxpbmsxVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5MaW5rVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkxpbmtUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NYXRjaFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TWVzc2FnZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NZXNzYWdlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL011bHRpYm94VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TXVsdGlib3hUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk11bHRpYm94VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NdWx0aXBhcnRFbGVtZW50PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk11bHRpcGFydFZhbHVlU3RyZWFtPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Tm90RXF1YWxUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Ob3RNYXRjaFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Tm90UHJlc2VudFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5PYmplY3RDcmVhdGVSdWxlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+T3B0aW9uczFUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk9wdGlvbnNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+T3B0aW9uc1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5PcHRpb25UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5PcHRpb25UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UGFnZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QYWdlVGVpPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1BhcmFtZXRlclRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlBhcmFtZXRlclRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlBhcmFtZXRlclRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlBhcmFtZXRlclRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9QYXNzd29yZFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlBhc3N3b3JkVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUGFzc3dvcmRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QYXNzd29yZFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UHJlc2VudFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Qcm9wZXJ0eVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlByb3BlcnR5VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UHJvcGVydHlVdGlsczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QdXRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmFkaW9UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SYWRpb1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmFkaW9UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JlZGlyZWN0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVkaXJlY3RUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZWRpcmVjdFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVsb2FkQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVsb2FkQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVGb3JtQmVhbkFjdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlbW92ZUZvcm1CZWFuQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVGb3J3YXJkQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVtb3ZlRm9yd2FyZEFjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlTWFwcGluZ0FjdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlbW92ZU1hcHBpbmdBY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVxdWVzdFV0aWxzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Jlc2V0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVzZXRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlc2V0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZXNvdXJjZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVzb3VyY2VUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZXNwb25zZVV0aWxzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJld3JpdGVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UnVsZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TZWxlY3RUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TZWxlY3RUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TZWxlY3RUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TZXNzaW9uQWN0aW9uTWFwcGluZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldE5leHRSdWxlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+U2V0TmV4dFJ1bGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0aWVzUnVsZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlNldFByb3BlcnRpZXNSdWxlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydHlSdWxlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+U2V0UHJvcGVydHlSdWxlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0VG9wUnVsZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlNldFRvcFJ1bGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+U2l6ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TaXplVGVpPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+U3RydXRzVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGVpLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+U3RydXRzVGVpPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1N1Ym1pdFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlN1Ym1pdFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlN1Ym1pdFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9UZXh0YXJlYVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlRleHRhcmVhVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UZXh0YXJlYVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9UZXh0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VGV4dFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UZXh0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1ZhbGlkYXRpbmdBY3Rpb25Gb3JtLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VmFsaWRhdGluZ0FjdGlvbkZvcm08L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPldyaXRlVGFnPC9BPgorPEJSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvZGVwcmVjYXRlZC1saXN0Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9kZXByZWNhdGVkLWxpc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzczNjc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvZGVwcmVjYXRlZC1saXN0Lmh0bWwKQEAgLTAsMCArMSwzMDggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IERlcHJlY2F0ZWQgTGlzdAorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSJzdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlBhY2thZ2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImluZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImhlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJkZXByZWNhdGVkLWxpc3QuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5EZXByZWNhdGVkIEFQSTwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkRlcHJlY2F0ZWQgQ2xhc3NlczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uQmFzZTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPkFwcGxpY2F0aW9uIGFjdGlvbiBjbGFzc2VzIHNob3VsZCBub3cgZXh0ZW5kIEFjdGlvbgorIGRpcmVjdGx5LCByYXRoZXIgdGhhbiB0aGlzIGNsYXNzLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZ0Jhc2U8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Ob3cgdGhhdCBBY3Rpb25NYXBwaW5nIGlzIGEgY2xhc3MsIHlvdSBzaG91bGQgdXNlIGl0IGludGVhZDwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuQmVhblV0aWxzPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+QXQgc29tZSBwb2ludCBhZnRlciBTdHJ1dHMgMS4wIGZpbmFsLCB3aWxsIGJlIHJlcGxhY2VkIGJ5CisgIGFuIGVxdWl2YWxlbnQgY2xhc3MgaW4gdGhlIEpha2FydGEgQ29tbW9ucyBCZWFudXRpbHMgcGFja2FnZS48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkNvbnZlcnRVdGlsczwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPkF0IHNvbWUgcG9pbnQgYWZ0ZXIgU3RydXRzIDEuMCBmaW5hbCwgd2lsbCBiZSByZXBsYWNlZCBieQorICBhbiBlcXVpdmFsZW50IGNsYXNzIGluIHRoZSBKYWthcnRhIENvbW1vbnMgQmVhbnV0aWxzIHBhY2thZ2UuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRXJyb3JNZXNzYWdlczwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzIGluc3RlYWQ8L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0QXJyYXlMaXN0PC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+QXQgc29tZSBwb2ludCBhZnRlciBTdHJ1dHMgMS4wIGZpbmFsLCB3aWxsIGJlIHJlcGxhY2VkIGJ5CisgIGFuIGVxdWl2YWxlbnQgY2xhc3MgaW4gdGhlIEpha2FydGEgQ29tbW9ucyBDb2xsZWN0aW9ucyBwYWNrYWdlLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0SGFzaE1hcDwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPkF0IHNvbWUgcG9pbnQgYWZ0ZXIgU3RydXRzIDEuMCBmaW5hbCwgd2lsbCBiZSByZXBsYWNlZCBieQorICBhbiBlcXVpdmFsZW50IGNsYXNzIGluIHRoZSBKYWthcnRhIENvbW1vbnMgQ29sbGVjdGlvbnMgcGFja2FnZS48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdFRyZWVNYXA8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BdCBzb21lIHBvaW50IGFmdGVyIFN0cnV0cyAxLjAgZmluYWwsIHdpbGwgYmUgcmVwbGFjZWQgYnkKKyAgYW4gZXF1aXZhbGVudCBjbGFzcyBpbiB0aGUgSmFrYXJ0YSBDb21tb25zIENvbGxlY3Rpb25zIHBhY2thZ2UuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUHJvcGVydHlVdGlsczwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPkF0IHNvbWUgcG9pbnQgYWZ0ZXIgU3RydXRzIDEuMCBmaW5hbCwgd2lsbCBiZSByZXBsYWNlZCBieQorICBhbiBlcXVpdmFsZW50IGNsYXNzIGluIHRoZSBKYWthcnRhIENvbW1vbnMgQmVhbnV0aWxzIHBhY2thZ2UuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1ZhbGlkYXRpbmdBY3Rpb25Gb3JtLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5WYWxpZGF0aW5nQWN0aW9uRm9ybTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPkFwcGxpY2F0aW9uIEFjdGlvbkZvcm0gYmVhbnMgc2hvdWxkIG5vdyBleHRlbmQgQWN0aW9uRm9ybQorICBkaXJlY3RseSwgYW5kIG92ZXJyaWRlIHRoZSB2YWxpZGF0ZSgpIG1ldGhvZCBpZiB0aGV5IHdpc2ggdG8gcHJvdmlkZQorICBzdWNoIHNlcnZpY2VzPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkRlcHJlY2F0ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjZGF0YSI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEVsZW1lbnQuZGF0YTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlRoaXMgc2hvdWxkIG5ldmVyIGJlIHVzZWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkRlcHJlY2F0ZWQgTWV0aG9kczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2NyZWF0ZUZvcm1JbnN0YW5jZSgpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZy5jcmVhdGVGb3JtSW5zdGFuY2UoKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPkNyZWF0aW9uIG9mIEFjdGlvbkZvcm0gaW5zdGFuY2VzIGlzIG5vdyB0aGUgcmVzcG9uc2liaWxpdHkKKyAgb2YgdGhlIGNvbnRyb2xsZXIgc2VydmxldDwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0QWN0aW9uQ2xhc3MoKSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcuZ2V0QWN0aW9uQ2xhc3MoKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBnZXRUeXBlKCkgaW5zdGVhZDwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjZ2V0RGF0YSgpIj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0RWxlbWVudC5nZXREYXRhKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgdGhlIGdldEZpbGUgbWV0aG9kIHRvIGdldCBhIEZpbGUgcmVwcmVzZW50aW5nIHRoZQorICAgICAgICAgICAgIGRhdGEgZm9yIHRoaXMgZWxlbWVudDwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0Rm9ybUF0dHJpYnV0ZSgpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZy5nZXRGb3JtQXR0cmlidXRlKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgZ2V0QXR0cmlidXRlKCkgaW5zdGVhZDwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0Rm9ybUNsYXNzKCkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLmdldEZvcm1DbGFzcygpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIHRoZSBiZWFuIG5hbWUgdG8gbG9vayB1cCB0aGUgY29ycmVzcG9uZGluZworICBBY3Rpb25Gb3JtQmVhbiBpbnN0ZWFkPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRGb3JtUHJlZml4KCkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLmdldEZvcm1QcmVmaXgoKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBnZXRQcmVmaXgoKSBpbnN0ZWFkPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRGb3JtU2NvcGUoKSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcuZ2V0Rm9ybVNjb3BlKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgZ2V0U2NvcGUoKSBpbnN0ZWFkPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRGb3JtU3VmZml4KCkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLmdldEZvcm1TdWZmaXgoKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBnZXRTdWZmaXgoKSBpbnN0ZWFkPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRJbnB1dEZvcm0oKSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcuZ2V0SW5wdXRGb3JtKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgZ2V0SW5wdXQoKSBpbnN0ZWFkPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLnBlcmZvcm0oQWN0aW9uU2VydmxldCwgQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSB0aGUgbmV3IHBlcmZvcm0oKSBtZXRob2Qgd2l0aG91dCBhIHNlcnZsZXQgYXJndW1lbnQ8L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24ucGVyZm9ybShBY3Rpb25TZXJ2bGV0LCBBY3Rpb25NYXBwaW5nLCBBY3Rpb25Gb3JtLCBTZXJ2bGV0UmVxdWVzdCwgU2VydmxldFJlc3BvbnNlKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSB0aGUgbmV3IHBlcmZvcm0oKSBtZXRob2Qgd2l0aG91dCBhIHNlcnZsZXQgYXJndW1lbnQ8L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEFjdGlvbkNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZy5zZXRBY3Rpb25DbGFzcyhTdHJpbmcpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIHNldFR5cGUoU3RyaW5nKSBpbnN0ZWFkPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNzZXREYXRhKGJ5dGVbXSkiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRFbGVtZW50LnNldERhdGEoYnl0ZVtdKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSB0aGUgc2V0RmlsZSBtZXRob2QgdG8gc2V0IHRoZSBmaWxlCisgICAgICAgICAgICAgdGhhdCByZXByZXNlbnRzIHRoZSBkYXRhIG9mIHRoaXMgZWxlbWVudDwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0Rm9ybUF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcuc2V0Rm9ybUF0dHJpYnV0ZShTdHJpbmcpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIHNldEF0dHJpYnV0ZShTdHJpbmcpIGluc3RlYWQ8L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEZvcm1DbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcuc2V0Rm9ybUNsYXNzKFN0cmluZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Nb2RpZnkgdGhlIGNvcnJlc3BvbmRpbmcgQWN0aW9uRm9ybUJlYW4gaW5zdGVhZDwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0Rm9ybVByZWZpeChqYXZhLmxhbmcuU3RyaW5nKSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcuc2V0Rm9ybVByZWZpeChTdHJpbmcpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIHNldFByZWZpeChTdHJpbmcpIGluc3RlYWQ8L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEZvcm1TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcuc2V0Rm9ybVNjb3BlKFN0cmluZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2Ugc2V0U2NvcGUoU3RyaW5nKSBpbnN0ZWFkPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRGb3JtU3VmZml4KGphdmEubGFuZy5TdHJpbmcpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZy5zZXRGb3JtU3VmZml4KFN0cmluZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2Ugc2V0U3VmZml4KFN0cmluZykgaW5zdGVhZDwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0SW5wdXRGb3JtKGphdmEubGFuZy5TdHJpbmcpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZy5zZXRJbnB1dEZvcm0oU3RyaW5nKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBzZXRJbnB1dChTdHJpbmcpIGluc3RlYWQ8L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSW5jbHVkZVRhZy5zZXROYW1lKFN0cmluZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST51c2Ugc2V0UGFnZShTdHJpbmcpIGluc3RlYWQ8L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3ZhbGlkYXRlKCkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLnZhbGlkYXRlKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5UaGlzIGlzIHRoZSBTdHJ1dHMgMC41IHZlcnNpb24gb2YgdmFsaWRhdGlvbiAtLSB1c2UgdGhlCisgIHZhbGlkYXRlKEFjdGlvbk1hcHBpbmcsSHR0cFNlcnZsZXRSZXF1ZXN0KSBtZXRob2QgaW5zdGVhZDwvST4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5EZXByZWNhdGVkIENvbnN0cnVjdG9yczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI011bHRpcGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgYnl0ZVtdKSI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEVsZW1lbnQoU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgYnl0ZVtdKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSB0aGUgY29uc3RydWN0b3IgdGhhdCB0YWtlcyBhbiBGaWxlIGFzIGFuIGFyZ3VtZW50CisgICAgICAgICAgICAgYXMgb3Bwb3NlZCB0byBhIGJ5dGUgYXJyYXkgYXJndW1lbnQsIHdoaWNoIGNhbiBjYXVzZQorICAgICAgICAgICAgIG1lbW9yeSBwcm9ibGVtczwvST4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+UGFja2FnZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSJpbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL2hlbHAtZG9jLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9oZWxwLWRvYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0YmRiMjQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9oZWxwLWRvYy5odG1sCkBAIC0wLDAgKzEsMTQ2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzcgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBBUEkgSGVscAorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSJzdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlBhY2thZ2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5IZWxwPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9ImluZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iaGVscC1kb2MuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDE+CitIb3cgVGhpcyBBUEkgRG9jdW1lbnQgSXMgT3JnYW5pemVkPC9IMT4KKzwvQ0VOVEVSPgorVGhpcyBBUEkgKEFwcGxpY2F0aW9uIFByb2dyYW1taW5nIEludGVyZmFjZSkgZG9jdW1lbnQgaGFzIHBhZ2VzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGl0ZW1zIGluIHRoZSBuYXZpZ2F0aW9uIGJhciwgZGVzY3JpYmVkIGFzIGZvbGxvd3MuPEgzPgorT3ZlcnZpZXc8L0gzPgorPEJMT0NLUVVPVEU+CisKKzxQPgorVGhlIDxBIEhSRUY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+T3ZlcnZpZXc8L0E+IHBhZ2UgaXMgdGhlIGZyb250IHBhZ2Ugb2YgdGhpcyBBUEkgZG9jdW1lbnQgYW5kIHByb3ZpZGVzIGEgbGlzdCBvZiBhbGwgcGFja2FnZXMgd2l0aCBhIHN1bW1hcnkgZm9yIGVhY2guICBUaGlzIHBhZ2UgY2FuIGFsc28gY29udGFpbiBhbiBvdmVyYWxsIGRlc2NyaXB0aW9uIG9mIHRoZSBzZXQgb2YgcGFja2FnZXMuPC9CTE9DS1FVT1RFPgorPEgzPgorUGFja2FnZTwvSDM+Cis8QkxPQ0tRVU9URT4KKworPFA+CitFYWNoIHBhY2thZ2UgaGFzIGEgcGFnZSB0aGF0IGNvbnRhaW5zIGEgbGlzdCBvZiBpdHMgY2xhc3NlcyBhbmQgaW50ZXJmYWNlcywgd2l0aCBhIHN1bW1hcnkgZm9yIGVhY2guIFRoaXMgcGFnZSBjYW4gY29udGFpbiBmb3VyIGNhdGVnb3JpZXM6PFVMPgorPExJPkludGVyZmFjZXMgKGl0YWxpYyk8TEk+Q2xhc3NlczxMST5FeGNlcHRpb25zPExJPkVycm9yczwvVUw+Cis8L0JMT0NLUVVPVEU+Cis8SDM+CitDbGFzcy9JbnRlcmZhY2U8L0gzPgorPEJMT0NLUVVPVEU+CisKKzxQPgorRWFjaCBjbGFzcywgaW50ZXJmYWNlLCBpbm5lciBjbGFzcyBhbmQgaW5uZXIgaW50ZXJmYWNlIGhhcyBpdHMgb3duIHNlcGFyYXRlIHBhZ2UuIEVhY2ggb2YgdGhlc2UgcGFnZXMgaGFzIHRocmVlIHNlY3Rpb25zIGNvbnNpc3Rpbmcgb2YgYSBjbGFzcy9pbnRlcmZhY2UgZGVzY3JpcHRpb24sIHN1bW1hcnkgdGFibGVzLCBhbmQgZGV0YWlsZWQgbWVtYmVyIGRlc2NyaXB0aW9uczo8VUw+Cis8TEk+Q2xhc3MgaW5oZXJpdGFuY2UgZGlhZ3JhbTxMST5EaXJlY3QgU3ViY2xhc3NlczxMST5BbGwgS25vd24gU3ViaW50ZXJmYWNlczxMST5BbGwgS25vd24gSW1wbGVtZW50aW5nIENsYXNzZXM8TEk+Q2xhc3MvaW50ZXJmYWNlIGRlY2xhcmF0aW9uPExJPkNsYXNzL2ludGVyZmFjZSBkZXNjcmlwdGlvbgorPFA+Cis8TEk+SW5uZXIgQ2xhc3MgU3VtbWFyeTxMST5GaWVsZCBTdW1tYXJ5PExJPkNvbnN0cnVjdG9yIFN1bW1hcnk8TEk+TWV0aG9kIFN1bW1hcnkKKzxQPgorPExJPkZpZWxkIERldGFpbDxMST5Db25zdHJ1Y3RvciBEZXRhaWw8TEk+TWV0aG9kIERldGFpbDwvVUw+CitFYWNoIHN1bW1hcnkgZW50cnkgY29udGFpbnMgdGhlIGZpcnN0IHNlbnRlbmNlIGZyb20gdGhlIGRldGFpbGVkIGRlc2NyaXB0aW9uIGZvciB0aGF0IGl0ZW0uIFRoZSBzdW1tYXJ5IGVudHJpZXMgYXJlIGFscGhhYmV0aWNhbCwgd2hpbGUgdGhlIGRldGFpbGVkIGRlc2NyaXB0aW9ucyBhcmUgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyIGluIHRoZSBzb3VyY2UgY29kZS4gVGhpcyBwcmVzZXJ2ZXMgdGhlIGxvZ2ljYWwgZ3JvdXBpbmdzIGVzdGFibGlzaGVkIGJ5IHRoZSBwcm9ncmFtbWVyLjwvQkxPQ0tRVU9URT4KKzxIMz4KK1RyZWUgKENsYXNzIEhpZXJhcmNoeSk8L0gzPgorPEJMT0NLUVVPVEU+CitUaGVyZSBpcyBhIDxBIEhSRUY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+Q2xhc3MgSGllcmFyY2h5PC9BPiBwYWdlIGZvciBhbGwgcGFja2FnZXMsIHBsdXMgYSBoaWVyYXJjaHkgZm9yIGVhY2ggcGFja2FnZS4gRWFjaCBoaWVyYXJjaHkgcGFnZSBjb250YWlucyBhIGxpc3Qgb2YgY2xhc3NlcyBhbmQgYSBsaXN0IG9mIGludGVyZmFjZXMuIFRoZSBjbGFzc2VzIGFyZSBvcmdhbml6ZWQgYnkgaW5oZXJpdGFuY2Ugc3RydWN0dXJlIHN0YXJ0aW5nIHdpdGggPGNvZGU+amF2YS5sYW5nLk9iamVjdDwvY29kZT4uIFRoZSBpbnRlcmZhY2VzIGRvIG5vdCBpbmhlcml0IGZyb20gPGNvZGU+amF2YS5sYW5nLk9iamVjdDwvY29kZT4uPFVMPgorPExJPldoZW4gdmlld2luZyB0aGUgT3ZlcnZpZXcgcGFnZSwgY2xpY2tpbmcgb24gIlRyZWUiIGRpc3BsYXlzIHRoZSBoaWVyYXJjaHkgZm9yIGFsbCBwYWNrYWdlcy48TEk+V2hlbiB2aWV3aW5nIGEgcGFydGljdWxhciBwYWNrYWdlLCBjbGFzcyBvciBpbnRlcmZhY2UgcGFnZSwgY2xpY2tpbmcgIlRyZWUiIGRpc3BsYXlzIHRoZSBoaWVyYXJjaHkgZm9yIG9ubHkgdGhhdCBwYWNrYWdlLjwvVUw+Cis8L0JMT0NLUVVPVEU+Cis8SDM+CitEZXByZWNhdGVkIEFQSTwvSDM+Cis8QkxPQ0tRVU9URT4KK1RoZSA8QSBIUkVGPSJkZXByZWNhdGVkLWxpc3QuaHRtbCI+RGVwcmVjYXRlZCBBUEk8L0E+IHBhZ2UgbGlzdHMgYWxsIG9mIHRoZSBBUEkgdGhhdCBoYXZlIGJlZW4gZGVwcmVjYXRlZC4gQSBkZXByZWNhdGVkIEFQSSBpcyBub3QgcmVjb21tZW5kZWQgZm9yIHVzZSwgZ2VuZXJhbGx5IGR1ZSB0byBpbXByb3ZlbWVudHMsIGFuZCBhIHJlcGxhY2VtZW50IEFQSSBpcyB1c3VhbGx5IGdpdmVuLiBEZXByZWNhdGVkIEFQSXMgbWF5IGJlIHJlbW92ZWQgaW4gZnV0dXJlIGltcGxlbWVudGF0aW9ucy48L0JMT0NLUVVPVEU+Cis8SDM+CitJbmRleDwvSDM+Cis8QkxPQ0tRVU9URT4KK1RoZSA8QSBIUkVGPSJpbmRleC1hbGwuaHRtbCI+SW5kZXg8L0E+IGNvbnRhaW5zIGFuIGFscGhhYmV0aWMgbGlzdCBvZiBhbGwgY2xhc3NlcywgaW50ZXJmYWNlcywgY29uc3RydWN0b3JzLCBtZXRob2RzLCBhbmQgZmllbGRzLjwvQkxPQ0tRVU9URT4KKzxIMz4KK1ByZXYvTmV4dDwvSDM+CitUaGVzZSBsaW5rcyB0YWtlIHlvdSB0byB0aGUgbmV4dCBvciBwcmV2aW91cyBjbGFzcywgaW50ZXJmYWNlLCBwYWNrYWdlLCBvciByZWxhdGVkIHBhZ2UuPEgzPgorRnJhbWVzL05vIEZyYW1lczwvSDM+CitUaGVzZSBsaW5rcyBzaG93IGFuZCBoaWRlIHRoZSBIVE1MIGZyYW1lcy4gIEFsbCBwYWdlcyBhcmUgYXZhaWxhYmxlIHdpdGggb3Igd2l0aG91dCBmcmFtZXMuCis8UD4KKzxIMz4KK1NlcmlhbGl6ZWQgRm9ybTwvSDM+CitFYWNoIHNlcmlhbGl6YWJsZSBvciBleHRlcm5hbGl6YWJsZSBjbGFzcyBoYXMgYSBkZXNjcmlwdGlvbiBvZiBpdHMgc2VyaWFsaXphdGlvbiBmaWVsZHMgYW5kIG1ldGhvZHMuIFRoaXMgaW5mb3JtYXRpb24gaXMgb2YgaW50ZXJlc3QgdG8gcmUtaW1wbGVtZW50b3JzLCBub3QgdG8gZGV2ZWxvcGVycyB1c2luZyB0aGUgQVBJLiBXaGlsZSB0aGVyZSBpcyBubyBsaW5rIGluIHRoZSBuYXZpZ2F0aW9uIGJhciwgeW91IGNhbiBnZXQgdG8gdGhpcyBpbmZvcm1hdGlvbiBieSBnb2luZyB0byBhbnkgc2VyaWFsaXplZCBjbGFzcyBhbmQgY2xpY2tpbmcgIlNlcmlhbGl6ZWQgRm9ybSIgaW4gdGhlICJTZWUgYWxzbyIgc2VjdGlvbiBvZiB0aGUgY2xhc3MgZGVzY3JpcHRpb24uCis8UD4KKzxGT05UIFNJWkU9Ii0xIj4KKzxFTT4KK1RoaXMgaGVscCBmaWxlIGFwcGxpZXMgdG8gQVBJIGRvY3VtZW50YXRpb24gZ2VuZXJhdGVkIHVzaW5nIHRoZSBzdGFuZGFyZCBkb2NsZXQuIDwvRU0+Cis8L0ZPTlQ+Cis8QlI+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5QYWNrYWdlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJvdmVydmlldy10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJkZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImluZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+SGVscDwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSJpbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9ImhlbHAtZG9jLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvaW5kZXgtYWxsLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9pbmRleC1hbGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZmFmZTJlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvaW5kZXgtYWxsLmh0bWwKQEAgLTAsMCArMSw4NjY2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzQgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBJbmRleAorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSJzdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlBhY2thZ2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5JbmRleDwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImhlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJpbmRleC1hbGwuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxBIEhSRUY9IiNfPF8iPjw8L0E+IDxBIEhSRUY9IiNfQV8iPkE8L0E+IDxBIEhSRUY9IiNfQl8iPkI8L0E+IDxBIEhSRUY9IiNfQ18iPkM8L0E+IDxBIEhSRUY9IiNfRF8iPkQ8L0E+IDxBIEhSRUY9IiNfRV8iPkU8L0E+IDxBIEhSRUY9IiNfRl8iPkY8L0E+IDxBIEhSRUY9IiNfR18iPkc8L0E+IDxBIEhSRUY9IiNfSF8iPkg8L0E+IDxBIEhSRUY9IiNfSV8iPkk8L0E+IDxBIEhSRUY9IiNfS18iPks8L0E+IDxBIEhSRUY9IiNfTF8iPkw8L0E+IDxBIEhSRUY9IiNfTV8iPk08L0E+IDxBIEhSRUY9IiNfTl8iPk48L0E+IDxBIEhSRUY9IiNfT18iPk88L0E+IDxBIEhSRUY9IiNfUF8iPlA8L0E+IDxBIEhSRUY9IiNfUl8iPlI8L0E+IDxBIEhSRUY9IiNfU18iPlM8L0E+IDxBIEhSRUY9IiNfVF8iPlQ8L0E+IDxBIEhSRUY9IiNfVV8iPlU8L0E+IDxBIEhSRUY9IiNfVl8iPlY8L0E+IDxBIEhSRUY9IiNfV18iPlc8L0E+IDxBIEhSRUY9IiNfWF8iPlg8L0E+IDxIUj4KKzxBIE5BTUU9Il88XyI+PCEtLSAtLT48L0E+PEgyPgorPEI+PDwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIzxjbGluaXQ+KCkiPjxCPjxjbGluaXQ+KCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPC9ETD4KKzxIUj4KKzxBIE5BTUU9Il9BXyI+PCEtLSAtLT48L0E+PEgyPgorPEI+QTwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjYWJzb2x1dGVVUkwoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPjxCPmFic29sdXRlVVJMKEh0dHBTZXJ2bGV0UmVxdWVzdCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPkNyZWF0ZSBhbmQgcmV0dXJuIGFuIGFic29sdXRlIFVSTCBmb3IgdGhlIHNwZWNpZmllZCBjb250ZXh0LXJlbGF0aXZlCisgcGF0aCwgYmFzZWQgb24gdGhlIHNlcnZlciBhbmQgY29udGV4dCBpbmZvcm1hdGlvbiBpbiB0aGUgc3BlY2lmaWVkCisgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUZpZWxkVGFnLmh0bWwjYWNjZXB0Ij48Qj5hY2NlcHQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPkNvbW1hLWRlbGltaXRlZCBsaXN0IG9mIGNvbnRlbnQgdHlwZXMgdGhhdCBhIHNlcnZlciBwcm9jZXNzaW5nIHRoaXMgZm9ybQorIHdpbGwgaGFuZGxlIGNvcnJlY3RseS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNhY2NlcHQiPjxCPmFjY2VwdDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPkNvbW1hLWRlbGltaXRlZCBsaXN0IG9mIGNvbnRlbnQgdHlwZXMgdGhhdCBhIHNlcnZlciBwcm9jZXNzaW5nIHRoaXMgZm9ybQorIHdpbGwgaGFuZGxlIGNvcnJlY3RseS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+PEI+YWNjZXNza2V5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPkFjY2VzcyBrZXkgY2hhcmFjdGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc0tleSI+PEI+YWNjZXNzS2V5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+QWNjZXNzIGtleSBjaGFyYWN0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNhY3Rpb24iPjxCPmFjdGlvbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5UaGUgYWN0aW9uIFVSTCB0byB3aGljaCB0aGlzIGZvcm0gc2hvdWxkIGJlIHN1Ym1pdHRlZCwgaWYgYW55LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNhY3Rpb24iPjxCPmFjdGlvbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIGFjdGlvbiBVUkwgdG8gd2hpY2ggdGhpcyBmb3JtIHNob3VsZCBiZSBzdWJtaXR0ZWQsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPjxCPkFjdGlvbjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPi48REQ+QW4gPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gaXMgYW4gYWRhcHRlciBiZXR3ZWVuIHRoZSBjb250ZW50cyBvZiBhbiBpbmNvbWluZworIEhUVFAgcmVxdWVzdCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYnVzaW5lc3MgbG9naWMgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQgdG8KKyBwcm9jZXNzIHRoaXMgcmVxdWVzdC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0FjdGlvbigpIj48Qj5BY3Rpb24oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25CYXNlLmh0bWwiPjxCPkFjdGlvbkJhc2U8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uQmFzZS5odG1sIj5BY3Rpb25CYXNlPC9BPi48REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXBwbGljYXRpb24gYWN0aW9uIGNsYXNzZXMgc2hvdWxkIG5vdyBleHRlbmQgQWN0aW9uCisgZGlyZWN0bHksIHJhdGhlciB0aGFuIHRoaXMgY2xhc3MuPC9JPjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uQmFzZS5odG1sI0FjdGlvbkJhc2UoKSI+PEI+QWN0aW9uQmFzZSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkJhc2UuaHRtbCI+QWN0aW9uQmFzZTwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+PEI+QWN0aW9uRXJyb3I8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+LjxERD5BbiBlbmNhcHN1bGF0aW9uIG9mIGFuIGluZGl2aWR1YWwgZXJyb3IgbWVzc2FnZSByZXR1cm5lZCBieSB0aGUKKyA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2Qgb2YgYW4gPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4sIGNvbnNpc3RpbmcKKyBvZiBhIG1lc3NhZ2Uga2V5ICh0byBiZSB1c2VkIHRvIGxvb2sgdXAgbWVzc2FnZSB0ZXh0IGluIGFuIGFwcHJvcHJpYXRlCisgbWVzc2FnZSByZXNvdXJjZXMgZGF0YWJhc2UpIHBsdXMgdXAgdG8gZm91ciBwbGFjZWhvbGRlciBvYmplY3RzIHRoYXQgY2FuCisgYmUgdXNlZCBmb3IgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBpbiB0aGUgbWVzc2FnZSB0ZXh0LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCNBY3Rpb25FcnJvcihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+QWN0aW9uRXJyb3IoU3RyaW5nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT4KKzxERD5Db25zdHJ1Y3QgYW4gYWN0aW9uIGVycm9yIHdpdGggbm8gcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sI0FjdGlvbkVycm9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48Qj5BY3Rpb25FcnJvcihTdHJpbmcsIE9iamVjdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sI0FjdGlvbkVycm9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48Qj5BY3Rpb25FcnJvcihTdHJpbmcsIE9iamVjdCwgT2JqZWN0KTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT4KKzxERD5Db25zdHJ1Y3QgYW4gYWN0aW9uIGVycm9yIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwjQWN0aW9uRXJyb3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjxCPkFjdGlvbkVycm9yKFN0cmluZywgT2JqZWN0LCBPYmplY3QsIE9iamVjdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sI0FjdGlvbkVycm9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48Qj5BY3Rpb25FcnJvcihTdHJpbmcsIE9iamVjdCwgT2JqZWN0LCBPYmplY3QsIE9iamVjdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+PEI+QWN0aW9uRXJyb3JzPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+LjxERD5BIGNsYXNzIHRoYXQgZW5jYXBzdWxhdGVzIHRoZSBlcnJvciBtZXNzYWdlcyBiZWluZyByZXBvcnRlZCBieQorIHRoZSA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2Qgb2YgYW4gPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCNBY3Rpb25FcnJvcnMoKSI+PEI+QWN0aW9uRXJyb3JzKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj48Qj5BY3Rpb25Gb3JtPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4uPEREPkFuIDxzdHJvbmc+QWN0aW9uRm9ybTwvc3Ryb25nPiBpcyBhIEphdmFCZWFuIG9wdGlvbmFsbHkgYXNzb2NpYXRlZCB3aXRoCisgb25lIG9yIG1vcmUgPGNvZGU+QWN0aW9uTWFwcGluZ3M8L2NvZGU+LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI0FjdGlvbkZvcm0oKSI+PEI+QWN0aW9uRm9ybSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+PEI+QWN0aW9uRm9ybUJlYW48L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+LjxERD5BbiA8c3Ryb25nPkFjdGlvbkZvcm1CZWFuPC9zdHJvbmc+IGlzIHRoZSBkZWZpbml0aW9uIG9mIGEgZm9ybSBiZWFuIHRoYXQKKyBpcyBsb2FkZWQgZnJvbSBhIDxjb2RlPiZsdDtmb3JtLWJlYW4mZ3Q7PC9jb2RlPiBlbGVtZW50IGluIHRoZSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sI0FjdGlvbkZvcm1CZWFuKCkiPjxCPkFjdGlvbkZvcm1CZWFuKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj48Qj5BY3Rpb25Gb3JtQmVhbnM8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPkFjdGlvbkZvcm1CZWFuczwvQT4uPEREPkVuY2Fwc3VsYXRlIGEgY29sbGVjdGlvbiBvZiBBY3Rpb25Gb3JtQmVhbiBvYmplY3RzIHRoYXQgY2FuIGJlCisgYWRtaW5pc3RlcmVkIGFuZCBzZWFyY2hlZCwgd2hpbGUgaGlkaW5nIHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sI0FjdGlvbkZvcm1CZWFucygpIj48Qj5BY3Rpb25Gb3JtQmVhbnMoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCI+QWN0aW9uRm9ybUJlYW5zPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPkFjdGlvbkZvcndhcmQ8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPi48REQ+QW4gPHN0cm9uZz5BY3Rpb25Gb3J3YXJkPC9zdHJvbmc+IHJlcHJlc2VudHMgYSBkZXN0aW5hdGlvbiB0byB3aGljaCB0aGUKKyBjb250cm9sbGVyIHNlcnZsZXQsIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCBtaWdodCBiZSBkaXJlY3RlZCB0bworIHBlcmZvcm0gYSA8Y29kZT5SZXF1ZXN0RGlzcGF0Y2hlci5mb3J3YXJkKCk8L2NvZGU+IG9yCisgPGNvZGU+SHR0cFNlcnZsZXRSZXNwb25zZS5zZW5kUmVkaXJlY3QoKTwvY29kZT4gdG8sIGFzIGEgcmVzdWx0IG9mCisgcHJvY2Vzc2luZyBhY3Rpdml0aWVzIG9mIGFuIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjQWN0aW9uRm9yd2FyZCgpIj48Qj5BY3Rpb25Gb3J3YXJkKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjQWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+QWN0aW9uRm9yd2FyZChTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhdGguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCNBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48Qj5BY3Rpb25Gb3J3YXJkKFN0cmluZywgYm9vbGVhbik8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgcGF0aCBhbmQgcmVkaXJlY3QgZmxhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+PEI+QWN0aW9uRm9yd2FyZHM8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+QWN0aW9uRm9yd2FyZHM8L0E+LjxERD5FbmNhcHN1bGF0ZSBhIGNvbGxlY3Rpb24gb2YgQWN0aW9uRm9yd2FyZCBvYmplY3RzIHRoYXQgY2FuIGJlCisgYWRtaW5pc3RlcmVkIGFuZCBzZWFyY2hlZCwgd2hpbGUgaGlkaW5nIHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwjQWN0aW9uRm9yd2FyZHMoKSI+PEI+QWN0aW9uRm9yd2FyZHMoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj48Qj5BY3Rpb25NYXBwaW5nPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4uPEREPkFuIDxzdHJvbmc+QWN0aW9uTWFwcGluZzwvc3Ryb25nPiByZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHRoZQorIGNvbnRyb2xsZXIgc2VydmxldCwgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4sIGtub3dzIGFib3V0IHRoZSBtYXBwaW5nCisgb2YgYSBwYXJ0aWN1bGFyIHJlcXVlc3QgdG8gYW4gaW5zdGFuY2Ugb2YgYSBwYXJ0aWN1bGFyIGFjdGlvbiBjbGFzcy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNBY3Rpb25NYXBwaW5nKCkiPjxCPkFjdGlvbk1hcHBpbmcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdCYXNlLmh0bWwiPjxCPkFjdGlvbk1hcHBpbmdCYXNlPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdCYXNlLmh0bWwiPkFjdGlvbk1hcHBpbmdCYXNlPC9BPi48REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+Tm93IHRoYXQgQWN0aW9uTWFwcGluZyBpcyBhIGNsYXNzLCB5b3Ugc2hvdWxkIHVzZSBpdCBpbnRlYWQ8L0k+PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nQmFzZS5odG1sI0FjdGlvbk1hcHBpbmdCYXNlKCkiPjxCPkFjdGlvbk1hcHBpbmdCYXNlKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ0Jhc2UuaHRtbCI+QWN0aW9uTWFwcGluZ0Jhc2U8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPjxCPkFjdGlvbk1hcHBpbmdzPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPi48REQ+RW5jYXBzdWxhdGUgYSBjb2xsZWN0aW9uIG9mIEFjdGlvbk1hcHBpbmcgb2JqZWN0cyB0aGF0IGNhbiBiZQorIGFkbWluaXN0ZXJlZCBhbmQgc2VhcmNoZWQsIHdoaWxlIGhpZGluZyB0aGUgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI0FjdGlvbk1hcHBpbmdzKCkiPjxCPkFjdGlvbk1hcHBpbmdzKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNhY3Rpb25zIj48Qj5hY3Rpb25zPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSBzZXQgb2YgQWN0aW9uIGluc3RhbmNlcyB0aGF0IGhhdmUgYmVlbiBjcmVhdGVkIGFuZCBpbml0aWFsaXplZCwKKyBrZXllZCBieSB0aGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Qj5BY3Rpb25TZXJ2bGV0PC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4uPEREPjxzdHJvbmc+QWN0aW9uU2VydmxldDwvc3Ryb25nPiByZXByZXNlbnRzIHRoZSAiY29udHJvbGxlciIgaW4gdGhlCisgTW9kZWwtVmlldy1Db250cm9sbGVyIChNVkMpIGRlc2lnbiBwYXR0ZXJuIGZvciB3ZWIgYXBwbGljYXRpb25zIHRoYXQgaXMKKyBjb21tb25seSBrbm93biBhcyAiTW9kZWwgMiIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjQWN0aW9uU2VydmxldCgpIj48Qj5BY3Rpb25TZXJ2bGV0KCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNhY3RpdmVDb3VudCI+PEI+YWN0aXZlQ291bnQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPlRoZSBudW1iZXIgb2YgY29ubmVjdGlvbnMgdGhhdCBoYXZlIGJlZW4gY3JlYXRlZCBieSB0aGlzIGRhdGEgc291cmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2FkZChpbnQsIGphdmEubGFuZy5PYmplY3QpIj48Qj5hZGQoaW50LCBPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sIj5GYXN0QXJyYXlMaXN0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0luc2VydCB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBpbiB0aGlzIGxpc3QsCisgYW5kIHNoaWZ0IGFsbCByZW1haW5pbmcgZWxlbWVudHMgdXAgb25lIHBvc2l0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2FkZChqYXZhLmxhbmcuT2JqZWN0KSI+PEI+YWRkKE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7QXBwZW5kcyB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgdG8gdGhlIGVuZCBvZiB0aGlzIGxpc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sI2FkZChqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3IpIj48Qj5hZGQoU3RyaW5nLCBBY3Rpb25FcnJvcik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4KKzxERD5BZGQgYW4gZXJyb3IgbWVzc2FnZSB0byB0aGUgc2V0IG9mIGVycm9ycyBmb3IgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNhZGRBbGwoamF2YS51dGlsLkNvbGxlY3Rpb24pIj48Qj5hZGRBbGwoQ29sbGVjdGlvbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7QXBwZW5kIGFsbCBvZiB0aGUgZWxlbWVudHMgaW4gdGhlIHNwZWNpZmllZCBDb2xsZWN0aW9uIHRvIHRoZSBlbmQKKyBvZiB0aGlzIGxpc3QsIGluIHRoZSBvcmRlciB0aGF0IHRoZXkgYXJlIHJldHVybmVkIGJ5IHRoZSBzcGVjaWZpZWQKKyBDb2xsZWN0aW9uJ3MgSXRlcmF0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjYWRkQWxsKGludCwgamF2YS51dGlsLkNvbGxlY3Rpb24pIj48Qj5hZGRBbGwoaW50LCBDb2xsZWN0aW9uKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCI+RmFzdEFycmF5TGlzdDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtJbnNlcnQgYWxsIG9mIHRoZSBlbGVtZW50cyBpbiB0aGUgc3BlY2lmaWVkIENvbGxlY3Rpb24gYXQgdGhlIHNwZWNpZmllZAorIHBvc2l0aW9uIGluIHRoaXMgbGlzdCwgYW5kIHNoaWZ0IGFueSBwcmV2aW91cyBlbGVtZW50cyB1cHdhcmRzIGFzCisgbmVlZGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjYWRkQ2FsbE1ldGhvZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj48Qj5hZGRDYWxsTWV0aG9kKFN0cmluZywgU3RyaW5nLCBpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5BZGQgYW4gImNhbGwgbWV0aG9kIiBydWxlIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNhZGRDYWxsTWV0aG9kKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGludCwgamF2YS5sYW5nLkNsYXNzW10pIj48Qj5hZGRDYWxsTWV0aG9kKFN0cmluZywgU3RyaW5nLCBpbnQsIENsYXNzW10pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5BZGQgYW4gImNhbGwgbWV0aG9kIiBydWxlIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNhZGRDYWxsTWV0aG9kKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGludCwgamF2YS5sYW5nLlN0cmluZ1tdKSI+PEI+YWRkQ2FsbE1ldGhvZChTdHJpbmcsIFN0cmluZywgaW50LCBTdHJpbmdbXSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPkFkZCBhbiAiY2FsbCBtZXRob2QiIHJ1bGUgZm9yIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2FkZENhbGxQYXJhbShqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj48Qj5hZGRDYWxsUGFyYW0oU3RyaW5nLCBpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5BZGQgYSAiY2FsbCBwYXJhbWV0ZXIiIHJ1bGUgZm9yIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2FkZENhbGxQYXJhbShqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5hZGRDYWxsUGFyYW0oU3RyaW5nLCBpbnQsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPkFkZCBhICJjYWxsIHBhcmFtZXRlciIgcnVsZSBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjYWRkRGF0YVNvdXJjZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zcWwuRGF0YVNvdXJjZSkiPjxCPmFkZERhdGFTb3VyY2UoU3RyaW5nLCBEYXRhU291cmNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+QWRkIGEgZGF0YSBzb3VyY2Ugb2JqZWN0IHRvIGJlIHVzZWQgYnkgdGhpcyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWRkRGF0YVNvdXJjZVJ1bGUuaHRtbCI+PEI+QWRkRGF0YVNvdXJjZVJ1bGU8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWRkRGF0YVNvdXJjZVJ1bGUuaHRtbCI+QWRkRGF0YVNvdXJjZVJ1bGU8L0E+LjxERD5Qcml2YXRlIGRpZ2VzdGVyIDxjb2RlPlJ1bGU8L2NvZGU+IHRoYXQgYWRkcyBhIGRhdGEgc291cmNlIHRvIHRoZSB1bmRlcmx5aW5nCisgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4gaW5zdGFuY2UuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BZGREYXRhU291cmNlUnVsZS5odG1sI0FkZERhdGFTb3VyY2VSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyKSI+PEI+QWRkRGF0YVNvdXJjZVJ1bGUoRGlnZXN0ZXIpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FkZERhdGFTb3VyY2VSdWxlLmh0bWwiPkFkZERhdGFTb3VyY2VSdWxlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sI2FkZEVycm9yKGphdmEubGFuZy5TdHJpbmcpIj48Qj5hZGRFcnJvcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sIj5FcnJvck1lc3NhZ2VzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0FkZCBhbiBlcnJvciBtZXNzYWdlIGtleSB0byB0aGUgYWNjdW11bGF0ZWQgc2V0IG9mIGVycm9ycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2FkZEZvcm1CZWFuKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbikiPjxCPmFkZEZvcm1CZWFuKEFjdGlvbkZvcm1CZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+UmVnaXN0ZXIgYSBmb3JtIGJlYW4gZGVmaW5pdGlvbiB0byB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwjYWRkRm9ybUJlYW4ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuKSI+PEI+YWRkRm9ybUJlYW4oQWN0aW9uRm9ybUJlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj5BY3Rpb25Gb3JtQmVhbnM8L0E+Cis8REQ+UmVnaXN0ZXIgYSBmb3JtIGJlYW4gdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3JtQmVhbkFjdGlvbi5odG1sIj48Qj5BZGRGb3JtQmVhbkFjdGlvbjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZEZvcm1CZWFuQWN0aW9uLmh0bWwiPkFkZEZvcm1CZWFuQWN0aW9uPC9BPi48REQ+QSBzdGFuZGFyZCA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGNhbGxzIHRoZQorIDxjb2RlPmFkZEZvcm1CZWFuKCk8L2NvZGU+IG1ldGhvZCBvZiBvdXIgY29udHJvbGxlciBzZXJ2bGV0IHRvIGFkZCBhIG5ldworIGFjdGlvbiBmb3JtIGRlZmluaXRpb24gZHluYW1pY2FsbHkuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkRm9ybUJlYW5BY3Rpb24uaHRtbCNBZGRGb3JtQmVhbkFjdGlvbigpIj48Qj5BZGRGb3JtQmVhbkFjdGlvbigpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkRm9ybUJlYW5BY3Rpb24uaHRtbCI+QWRkRm9ybUJlYW5BY3Rpb248L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNhZGRGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+PEI+YWRkRm9yd2FyZChBY3Rpb25Gb3J3YXJkKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+QWRkIGEgbmV3IDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hcHBpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNhZGRGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+PEI+YWRkRm9yd2FyZChBY3Rpb25Gb3J3YXJkKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+UmVnaXN0ZXIgYSBsb2dpY2FsIGZvcndhcmRpbmcgdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwjYWRkRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCkiPjxCPmFkZEZvcndhcmQoQWN0aW9uRm9yd2FyZCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+QWN0aW9uRm9yd2FyZHM8L0E+Cis8REQ+UmVnaXN0ZXIgYSBsb2dpY2FsIGZvcndhcmRpbmcgdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3J3YXJkQWN0aW9uLmh0bWwiPjxCPkFkZEZvcndhcmRBY3Rpb248L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3J3YXJkQWN0aW9uLmh0bWwiPkFkZEZvcndhcmRBY3Rpb248L0E+LjxERD5BIHN0YW5kYXJkIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgY2FsbHMgdGhlCisgPGNvZGU+YWRkRm9yd2FyZCgpPC9jb2RlPiBtZXRob2Qgb2Ygb3VyIGNvbnRyb2xsZXIgc2VydmxldCB0byBhZGQgYSBuZXcKKyBhY3Rpb24gZm9yd2FyZCBkZWZpbml0aW9uIGR5bmFtaWNhbGx5LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZEZvcndhcmRBY3Rpb24uaHRtbCNBZGRGb3J3YXJkQWN0aW9uKCkiPjxCPkFkZEZvcndhcmRBY3Rpb24oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZEZvcndhcmRBY3Rpb24uaHRtbCI+QWRkRm9yd2FyZEFjdGlvbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2FkZE1hcHBpbmcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48Qj5hZGRNYXBwaW5nKEFjdGlvbk1hcHBpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5SZWdpc3RlciBhIG1hcHBpbmcgdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjYWRkTWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPjxCPmFkZE1hcHBpbmcoQWN0aW9uTWFwcGluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+Cis8REQ+UmVnaXN0ZXIgYSBsb2dpY2FsIG1hcHBpbmcgdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRNYXBwaW5nQWN0aW9uLmh0bWwiPjxCPkFkZE1hcHBpbmdBY3Rpb248L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRNYXBwaW5nQWN0aW9uLmh0bWwiPkFkZE1hcHBpbmdBY3Rpb248L0E+LjxERD5BIHN0YW5kYXJkIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgY2FsbHMgdGhlCisgPGNvZGU+YWRkTWFwcGluZygpPC9jb2RlPiBtZXRob2Qgb2Ygb3VyIGNvbnRyb2xsZXIgc2VydmxldCB0byBhZGQgYSBuZXcKKyBhY3Rpb24gbWFwcGluZyBkZWZpbml0aW9uIGR5bmFtaWNhbGx5LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZE1hcHBpbmdBY3Rpb24uaHRtbCNBZGRNYXBwaW5nQWN0aW9uKCkiPjxCPkFkZE1hcHBpbmdBY3Rpb24oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZE1hcHBpbmdBY3Rpb24uaHRtbCI+QWRkTWFwcGluZ0FjdGlvbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2FkZE9iamVjdENyZWF0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+YWRkT2JqZWN0Q3JlYXRlKFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+QWRkIGFuICJvYmplY3QgY3JlYXRlIiBydWxlIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNhZGRPYmplY3RDcmVhdGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPmFkZE9iamVjdENyZWF0ZShTdHJpbmcsIFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+QWRkIGFuICJvYmplY3QgY3JlYXRlIiBydWxlIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2FkZE9wdGlvbihqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PEI+YWRkT3B0aW9uKFN0cmluZ0J1ZmZlciwgU3RyaW5nLCBTdHJpbmcsIGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+QWRkIGFuIG9wdGlvbiBlbGVtZW50IHRvIHRoZSBzcGVjaWZpZWQgU3RyaW5nQnVmZmVyIGJhc2VkIG9uIHRoZQorIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNhZGRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+YWRkUHJvcGVydHkoU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+QWRkIGEgZ2VuZXJpYyBwcm9wZXJ0eSB0byB0aGUgbGlzdCBvZiBjb25uZWN0aW9uIHByb3BlcnRpZXMgdG8gYmUgdXNlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2FkZFJ1bGUoamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuUnVsZSkiPjxCPmFkZFJ1bGUoU3RyaW5nLCBSdWxlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+UmVnaXN0ZXIgYSBuZXcgUnVsZSBtYXRjaGluZyB0aGUgc3BlY2lmaWVkIHBhdHRlcm4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNhZGRTZXJ2bGV0TWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+YWRkU2VydmxldE1hcHBpbmcoU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5SZW1lbWJlciBhIHNlcnZsZXQgbWFwcGluZyBmcm9tIG91ciB3ZWIgYXBwbGljYXRpb24gZGVwbG95bWVudAorIGRlc2NyaXB0b3IsIGlmIGl0IGlzIGZvciB0aGlzIHNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNhZGRTZXROZXh0KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5hZGRTZXROZXh0KFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+QWRkIGEgInNldCBuZXh0IiBydWxlIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNhZGRTZXROZXh0KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5hZGRTZXROZXh0KFN0cmluZywgU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5BZGQgYSAic2V0IG5leHQiIHJ1bGUgZm9yIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2FkZFNldFByb3BlcnRpZXMoamF2YS5sYW5nLlN0cmluZykiPjxCPmFkZFNldFByb3BlcnRpZXMoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+QWRkIGEgInNldCBwcm9wZXJ0aWVzIiBydWxlIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNhZGRTZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+YWRkU2V0UHJvcGVydHkoU3RyaW5nLCBTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPkFkZCBhICJzZXQgcHJvcGVydHkiIHJ1bGUgZm9yIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2FkZFNldFRvcChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+YWRkU2V0VG9wKFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+QWRkIGEgInNldCB0b3AiIHJ1bGUgZm9yIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2FkZFNldFRvcChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+YWRkU2V0VG9wKFN0cmluZywgU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5BZGQgYSAic2V0IHRvcCIgcnVsZSBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2FsaWduIj48Qj5hbGlnbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBwcm9wZXJ0eSB0byBzcGVjaWZ5IHdoZXJlIHRvIGFsaWduIHRoZSBpbWFnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjYWxsRWxlbWVudHMiPjxCPmFsbEVsZW1lbnRzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5BIEhhc2h0YWJsZSByZXByZXNlbnRpbmcgYWxsIGVsZW1uZW50cworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2FsdCI+PEI+YWx0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+VGhlIGFsdGVybmF0ZSB0ZXh0IHRvIGRpc3BsYXkgZm9yIHRoZSBpbWFnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2FsdCI+PEI+YWx0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBpbWFnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNhbHQoKSI+PEI+YWx0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBhbHRlcm5hdGUgdGV4dCB0byBiZSBpbmNsdWRlZCBvbiB0aGlzIGdlbmVyYXRlZCBlbGVtZW50LAorIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZXJlIGlzIG5vIHN1Y2ggdGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2FsdCgpIj48Qj5hbHQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBhbHRlcm5hdGUgdGV4dCB0byBiZSBpbmNsdWRlZCBvbiB0aGlzIGdlbmVyYXRlZCBlbGVtZW50LAorIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZXJlIGlzIG5vIHN1Y2ggdGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNhbHRLZXkiPjxCPmFsdEtleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIGxvb2t1cCBrZXkgdXNlZCB0byBsb29rIHVwIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjYWx0S2V5Ij48Qj5hbHRLZXk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGltYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNhbmNob3IiPjxCPmFuY2hvcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+Cis8REQ+VGhlIGFuY2hvciB0byBiZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNhbmNob3IiPjxCPmFuY2hvcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+VGhlIGFuY2hvciB0byBiZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2FuY2hvciI+PEI+YW5jaG9yPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+VGhlIGFuY2hvciB0byBiZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjYXBwbGljYXRpb24iPjxCPmFwcGxpY2F0aW9uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSByZXNvdXJjZXMgb2JqZWN0IGZvciBvdXIgYXBwbGljYXRpb24gcmVzb3VyY2VzIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwjYXJnMCI+PEI+YXJnMDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5UaGUgZmlyc3Qgb3B0aW9uYWwgYXJndW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2FyZzAiPjxCPmFyZzA8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPlRoZSBmaXJzdCBvcHRpb25hbCBhcmd1bWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sI2FyZzEiPjxCPmFyZzE8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+VGhlIHNlY29uZCBvcHRpb25hbCBhcmd1bWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjYXJnMSI+PEI+YXJnMTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+VGhlIHNlY29uZCBvcHRpb25hbCBhcmd1bWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sI2FyZzIiPjxCPmFyZzI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+VGhlIHRoaXJkIG9wdGlvbmFsIGFyZ3VtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNhcmcyIj48Qj5hcmcyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5UaGUgdGhpcmQgb3B0aW9uYWwgYXJndW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCNhcmczIj48Qj5hcmczPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPlRoZSBmb3VydGggb3B0aW9uYWwgYXJndW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2FyZzMiPjxCPmFyZzM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPlRoZSBmb3VydGggb3B0aW9uYWwgYXJndW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCNhcmc0Ij48Qj5hcmc0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPlRoZSBmaWZ0aCBvcHRpb25hbCBhcmd1bWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjYXJnNCI+PEI+YXJnNDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+VGhlIGZpZnRoIG9wdGlvbmFsIGFyZ3VtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sIj48Qj5BcnJheVN0YWNrPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sIj5BcnJheVN0YWNrPC9BPi48REQ+SW1wbGVtZW50YXRpb24gb2YgdGhlIDxjb2RlPmphdmEudXRpbC5TdGFjazwvY29kZT4gQVBJIHRoYXQgaXMgYmFzZWQgb24KKyBhbiA8Y29kZT5BcnJheUxpc3Q8L2NvZGU+IHJhdGhlciB0aGFuIGEgPGNvZGU+VmVjdG9yPC9jb2RlPi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwjQXJyYXlTdGFjaygpIj48Qj5BcnJheVN0YWNrKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwiPkFycmF5U3RhY2s8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNhdHRyaWJ1dGUiPjxCPmF0dHJpYnV0ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcmVxdWVzdC1zY29wZSBvciBzZXNzaW9uLXNjb3BlIGF0dHJpYnV0ZSB1bmRlciB3aGljaAorIG91ciBmb3JtIGJlYW4sIGlmIGFueSwgd2lsbCBiZSBjcmVhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbCNhdHRyaWJ1dGVOYW1lIj48Qj5hdHRyaWJ1dGVOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbCI+T2JqZWN0Q3JlYXRlUnVsZTwvQT4KKzxERD5UaGUgYXR0cmlidXRlIGNvbnRhaW5pbmcgYW4gb3ZlcnJpZGUgY2xhc3MgbmFtZSBpZiBpdCBpcyBwcmVzZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxQYXJhbVJ1bGUuaHRtbCNhdHRyaWJ1dGVOYW1lIj48Qj5hdHRyaWJ1dGVOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxQYXJhbVJ1bGUuaHRtbCI+Q2FsbFBhcmFtUnVsZTwvQT4KKzxERD5UaGUgYXR0cmlidXRlIGZyb20gd2hpY2ggdG8gc2F2ZSB0aGUgcGFyYW1ldGVyIHZhbHVlCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI2F1dG9Db21taXQiPjxCPmF1dG9Db21taXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPgorPEREPlRoZSBpbml0aWFsIGF1dG8tY29tbWl0IHN0YXRlIHRvIHdoaWNoIHdlIHNob3VsZCByZXR1cm4gYWZ0ZXIgcmVsZWFzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjYXV0b0NvbW1pdCI+PEI+YXV0b0NvbW1pdDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+VGhlIGRlZmF1bHQgYXV0by1jb21taXQgc3RhdGUgZm9yIG5ld2x5IGNyZWF0ZWQgY29ubmVjdGlvbnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNhdmFpbGFibGUoKSI+PEI+YXZhaWxhYmxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgYnl0ZXMgbGVmdCB0byByZWFkCisgaW4gdGhlIGJ1ZmZlciBiZWZvcmUgaXQgaGFzIHRvIGJlIHJlZmlsbGVkCis8L0RMPgorPEhSPgorPEEgTkFNRT0iX0JfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5CPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VBdHRyaWJ1dGVUYWcuaHRtbCI+PEI+QmFzZUF0dHJpYnV0ZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlQXR0cmlidXRlVGFnLmh0bWwiPkJhc2VBdHRyaWJ1dGVUYWc8L0E+LjxERD5CYXNlIGNsYXNzIGZvciBjb25kaXRpb25hbHMgYmFzZWQgb24gdGhlIHByZXNlbmNlIG9yIGFic2VuY2Ugb2YKKyBhdHRyaWJ1dGVzIGluIHNvbWUgYXBwcm9wcmlhdGUgc2NvcGUgKGRlZmF1bHQ9c2Vzc2lvbikuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlQXR0cmlidXRlVGFnLmh0bWwjQmFzZUF0dHJpYnV0ZVRhZygpIj48Qj5CYXNlQXR0cmlidXRlVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUF0dHJpYnV0ZVRhZy5odG1sIj5CYXNlQXR0cmlidXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlRmllbGRUYWcuaHRtbCI+PEI+QmFzZUZpZWxkVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+LjxERD5Db252ZW5pZW5jZSBiYXNlIGNsYXNzIGZvciB0aGUgdmFyaW91cyBpbnB1dCB0YWdzIGZvciB0ZXh0IGZpZWxkcy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPjxCPkJhc2VGaWVsZFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4uPEREPkNvbnZlbmllbmNlIGJhc2UgY2xhc3MgZm9yIHRoZSB2YXJpb3VzIGlucHV0IHRhZ3MgZm9yIHRleHQgZmllbGRzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUZpZWxkVGFnLmh0bWwjQmFzZUZpZWxkVGFnKCkiPjxCPkJhc2VGaWVsZFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjQmFzZUZpZWxkVGFnKCkiPjxCPkJhc2VGaWVsZFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj48Qj5CYXNlSGFuZGxlclRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4uPEREPkJhc2UgY2xhc3MgZm9yIHRhZ3MgdGhhdCByZW5kZXIgZm9ybSBlbGVtZW50cyBjYXBhYmxlIG9mIGluY2x1ZGluZyBKYXZhU2NyaXB0CisgZXZlbnQgaGFuZGxlcnMgYW5kL29yIENTUyBTdHlsZSBhdHRyaWJ1dGVzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj48Qj5CYXNlSGFuZGxlclRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+LjxERD5CYXNlIGNsYXNzIGZvciB0YWdzIHRoYXQgcmVuZGVyIGZvcm0gZWxlbWVudHMgY2FwYWJsZSBvZiBpbmNsdWRpbmcgSmF2YVNjcmlwdAorIGV2ZW50IGhhbmRsZXJzIGFuZC9vciBDU1MgU3R5bGUgYXR0cmlidXRlcy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjQmFzZUhhbmRsZXJUYWcoKSI+PEI+QmFzZUhhbmRsZXJUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI0Jhc2VIYW5kbGVyVGFnKCkiPjxCPkJhc2VIYW5kbGVyVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCI+PEI+QmFzZUlucHV0VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+LjxERD5BYnN0cmFjdCBiYXNlIGNsYXNzIGZvciB0aGUgdmFyaW91cyBpbnB1dCB0YWdzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+PEI+QmFzZUlucHV0VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPi48REQ+QWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgdGhlIHZhcmlvdXMgaW5wdXQgdGFncy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VJbnB1dFRhZy5odG1sI0Jhc2VJbnB1dFRhZygpIj48Qj5CYXNlSW5wdXRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI0Jhc2VJbnB1dFRhZygpIj48Qj5CYXNlSW5wdXRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZVRhZy5odG1sIj48Qj5CYXNlVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4uPEREPlJlbmRlcnMgYW4gSFRNTCA8YmFzZT4gZWxlbWVudCB3aXRoIGFuIGhyZWYgCisgYXR0cmlidXRlIHBvaW50aW5nIHRvIHRoZSBhYnNvbHV0ZSBsb2NhdGlvbiBvZiB0aGUgZW5jbG9zaW5nIEpTUCBwYWdlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwiPjxCPkJhc2VUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4uPEREPlJlbmRlcnMgYW4gSFRNTCA8YmFzZT4gZWxlbWVudCB3aXRoIGFuIGhyZWYgCisgYXR0cmlidXRlIHBvaW50aW5nIHRvIHRoZSBhYnNvbHV0ZSBsb2NhdGlvbiBvZiB0aGUgZW5jbG9zaW5nIEpTUCBwYWdlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZVRhZy5odG1sI0Jhc2VUYWcoKSI+PEI+QmFzZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjQmFzZVRhZygpIj48Qj5CYXNlVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ29uc3RhbnRzLmh0bWwjQkVBTl9LRVkiPjxCPkJFQU5fS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NvbnN0YW50cy5odG1sIj5Db25zdGFudHM8L0E+Cis8REQ+VGhlIGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBiZWFuIG91ciBmb3JtIGlzIHJlbGF0ZWQgdG8uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwjQkVBTl9LRVkiPjxCPkJFQU5fS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCI+Q29uc3RhbnRzPC9BPgorPEREPlRoZSBhdHRyaWJ1dGUga2V5IGZvciB0aGUgYmVhbiBvdXIgZm9ybSBpcyByZWxhdGVkIHRvLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwiPjxCPkJlYW5VdGlsczwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sIj5CZWFuVXRpbHM8L0E+LjxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BdCBzb21lIHBvaW50IGFmdGVyIFN0cnV0cyAxLjAgZmluYWwsIHdpbGwgYmUgcmVwbGFjZWQgYnkKKyAgYW4gZXF1aXZhbGVudCBjbGFzcyBpbiB0aGUgSmFrYXJ0YSBDb21tb25zIEJlYW51dGlscyBwYWNrYWdlLjwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCNCZWFuVXRpbHMoKSI+PEI+QmVhblV0aWxzKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCI+QmVhblV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BZGREYXRhU291cmNlUnVsZS5odG1sI2JlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QpIj48Qj5iZWdpbihBdHRyaWJ1dGVMaXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BZGREYXRhU291cmNlUnVsZS5odG1sIj5BZGREYXRhU291cmNlUnVsZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjYmVnaW4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCkiPjxCPmJlZ2luKEF0dHJpYnV0ZUxpc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+Cis8REQ+VGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIGJlZ2lubmluZyBvZiBhIG1hdGNoaW5nIFhNTCBlbGVtZW50CisgaXMgZW5jb3VudGVyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydGllc1J1bGUuaHRtbCNiZWdpbihvcmcueG1sLnNheC5BdHRyaWJ1dGVMaXN0KSI+PEI+YmVnaW4oQXR0cmlidXRlTGlzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFByb3BlcnRpZXNSdWxlLmh0bWwiPlNldFByb3BlcnRpZXNSdWxlPC9BPgorPEREPlByb2Nlc3MgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvT2JqZWN0Q3JlYXRlUnVsZS5odG1sI2JlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QpIj48Qj5iZWdpbihBdHRyaWJ1dGVMaXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvT2JqZWN0Q3JlYXRlUnVsZS5odG1sIj5PYmplY3RDcmVhdGVSdWxlPC9BPgorPEREPlByb2Nlc3MgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydHlSdWxlLmh0bWwjYmVnaW4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCkiPjxCPmJlZ2luKEF0dHJpYnV0ZUxpc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0eVJ1bGUuaHRtbCI+U2V0UHJvcGVydHlSdWxlPC9BPgorPEREPlByb2Nlc3MgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sI2JlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QpIj48Qj5iZWdpbihBdHRyaWJ1dGVMaXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sIj5DYWxsUGFyYW1SdWxlPC9BPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgZWxlbWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsTWV0aG9kUnVsZS5odG1sI2JlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QpIj48Qj5iZWdpbihBdHRyaWJ1dGVMaXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbE1ldGhvZFJ1bGUuaHRtbCI+Q2FsbE1ldGhvZFJ1bGU8L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCNib2R5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5ib2R5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT4KKzxERD5UaGlzIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGUgYm9keSBvZiBhIG1hdGNoaW5nIFhNTCBlbGVtZW50CisgaXMgZW5jb3VudGVyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sI2JvZHkoamF2YS5sYW5nLlN0cmluZykiPjxCPmJvZHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sIj5DYWxsUGFyYW1SdWxlPC9BPgorPEREPlByb2Nlc3MgdGhlIGJvZHkgdGV4dCBvZiB0aGlzIGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbE1ldGhvZFJ1bGUuaHRtbCNib2R5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5ib2R5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwiPkNhbGxNZXRob2RSdWxlPC9BPgorPEREPlByb2Nlc3MgdGhlIGJvZHkgdGV4dCBvZiB0aGlzIGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNib2R5VGV4dCI+PEI+Ym9keVRleHQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+VGhlIGJvZHkgdGV4dCBvZiB0aGUgY3VycmVudCBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxQYXJhbVJ1bGUuaHRtbCNib2R5VGV4dCI+PEI+Ym9keVRleHQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sIj5DYWxsUGFyYW1SdWxlPC9BPgorPEREPlRoZSBib2R5IHRleHQgY29sbGVjdGVkIGZyb20gdGhpcyBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwjYm9keVRleHQiPjxCPmJvZHlUZXh0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwiPkNhbGxNZXRob2RSdWxlPC9BPgorPEREPlRoZSBib2R5IHRleHQgY29sbGVjdGVkIGZyb20gdGhpcyBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjYm9keVRleHRzIj48Qj5ib2R5VGV4dHM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+VGhlIHN0YWNrIG9mIGJvZHkgdGV4dCBzdHJpbmcgYnVmZmVycyBmb3Igc3Vycm91bmRpbmcgZWxlbWVudHMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjYm9yZGVyIj48Qj5ib3JkZXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5UaGUgYm9yZGVyIHNpemUgYXJvdW5kIHRoZSBpbWFnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2JvcmRlciI+PEI+Ym9yZGVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPlRoZSBib3JkZXIgc2l6ZSBhcm91bmQgdGhlIGltYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2JvdW5kYXJ5Ij48Qj5ib3VuZGFyeTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPlRoZSBib3VuZGFyeSBmb3IgdGhpcyBtdWx0aXBhcnQgcmVxdWVzdAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI2JvdW5kYXJ5Qnl0ZXMiPjxCPmJvdW5kYXJ5Qnl0ZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQT4KKzxERD5ieXRlIGJ1ZmZlciB3aXRoIHRoZSBib3VuZGFyeQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2JvdW5kYXJ5Qnl0ZXMiPjxCPmJvdW5kYXJ5Qnl0ZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5UaGUgYnl0ZSBhcnJheSByZXByZXNlbnRpbmcgdGhlIGJvdW5kYXJ5IGZvciB0aGlzIG11bHRpcGFydCByZXF1ZXN0Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjYm91bmRhcnlSZWFjaGVkIj48Qj5ib3VuZGFyeVJlYWNoZWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQT4KKzxERD5oYXZlIHdlIHJlYWNoZWQgdGhlIGJvdW5kYXJ5PworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjYnVmZmVyIj48Qj5idWZmZXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+Cis8REQ+VGhlIGJ5dGUgYXJyYXkgdXNlZCB0byBob2xkIGJ1ZmZlcmVkIGRhdGEKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjYnVmZmVyIj48Qj5idWZmZXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPlRoZSBidWZmZXIgaW50byB3aGljaCB3ZSBhY2N1bXVsYXRlIGxpbmVzIHRvIGJlIGxvZ2dlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI0JVRkZFUl9TSVpFIj48Qj5CVUZGRVJfU0laRTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+UmVzb3VyY2VUYWc8L0E+Cis8REQ+QnVmZmVyIHNpemUgdG8gdXNlIHdoZW4gcmVhZGluZyB0aGUgaW5wdXQgc3RyZWFtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNCVUZGRVJfU0laRSI+PEI+QlVGRkVSX1NJWkU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD5CdWZmZXIgc2l6ZSB0byB1c2Ugd2hlbiByZWFkaW5nIHRoZSBpbnB1dCBzdHJlYW0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+PEI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+LjxERD5UaGlzIGNsYXNzIGltcGxlbWVudHMgYnVmZmVyaW5nIGZvciBhbiBJbnB1dFN0cmVhbSBhcyB3ZWxsIGFzIGEKKyByZWFkTGluZSBtZXRob2QuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbShqYXZhLmlvLklucHV0U3RyZWFtLCBpbnQsIGxvbmcsIGxvbmcpIj48Qj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtKElucHV0U3RyZWFtLCBpbnQsIGxvbmcsIGxvbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5QdWJsaWMgY29uc3RydWN0b3IgZm9yIHRoaXMgY2xhc3MsIGp1c3Qgd3JhcHMgdGhlIElucHV0U3RyZWFtCisgZ2l2ZW4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2J1ZmZlckxlbmd0aCI+PEI+YnVmZmVyTGVuZ3RoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPlRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCBmcm9tIHRoZSB1bmRlcmx5aW5nIElucHV0U3RyZWFtIHRoYXQgYXJlCisgaW4gdGhlIGJ1ZmZlcgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjYnVmZmVyT2Zmc2V0Ij48Qj5idWZmZXJPZmZzZXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+Cis8REQ+VGhlIGN1cnJlbnQgb2Zmc2V0IHdlJ3JlIGF0IGluIHRoZSBidWZmZXIncyBieXRlIGFycmF5Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNidWZmZXJTaXplIj48Qj5idWZmZXJTaXplPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBidWZmZXIgdXNlZCB0byByZWFkIGZpbGVzIGZyb20gYSBjbGllbnQgdXBsb2FkCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNidWZmZXJTaXplIj48Qj5idWZmZXJTaXplPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPlRoZSBzaXplIG9mIHRoZSBieXRlIGFycmF5IGJ1ZmZlcgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2J1ZmZlclNpemUiPjxCPmJ1ZmZlclNpemU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5UaGUgYW1vdW50IG9mIGRhdGEgcmVhZCBmcm9tIGEgcmVxdWVzdCBhdCBhIHRpbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCNidW5kbGUiPjxCPmJ1bmRsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2J1bmRsZSI+PEI+YnVuZGxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjYnVuZGxlIj48Qj5idW5kbGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBjb250YWluaW5nIG91ciBtZXNzYWdlCisgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2J1bmRsZSI+PEI+YnVuZGxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciBvdXIgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjYnVuZGxlIj48Qj5idW5kbGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciBvdXIgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2J1bmRsZSI+PEI+YnVuZGxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUgY29udGFpbmluZyBvdXIgbWVzc2FnZQorIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQnV0dG9uVGFnLmh0bWwiPjxCPkJ1dHRvblRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPi48REQ+UmVuZGVycyBhbiBIVE1MIEJVVFRPTiB0YWcgd2l0aGluIHRoZSBTdHJ1dHMgZnJhbWV3b3JrLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+PEI+QnV0dG9uVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPi48REQ+UmVuZGVycyBhbiBIVE1MIEJVVFRPTiB0YWcgd2l0aGluIHRoZSBTdHJ1dHMgZnJhbWV3b3JrLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQnV0dG9uVGFnLmh0bWwjQnV0dG9uVGFnKCkiPjxCPkJ1dHRvblRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjQnV0dG9uVGFnKCkiPjxCPkJ1dHRvblRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPgorPEREPiZuYnNwOworPC9ETD4KKzxIUj4KKzxBIE5BTUU9Il9DXyI+PCEtLSAtLT48L0E+PEgyPgorPEI+QzwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwiPjxCPkNhbGxNZXRob2RSdWxlPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsTWV0aG9kUnVsZS5odG1sIj5DYWxsTWV0aG9kUnVsZTwvQT4uPEREPlJ1bGUgaW1wbGVtZW50YXRpb24gdGhhdCBjYWxscyBhIG1ldGhvZCBvbiB0aGUgdG9wIChwYXJlbnQpCisgb2JqZWN0LCBwYXNzaW5nIGFyZ3VtZW50cyBjb2xsZWN0ZWQgZnJvbSBzdWJzZXF1ZW50CisgPGNvZGU+Q2FsbFBhcmFtUnVsZTwvY29kZT4gcnVsZXMgb3IgZnJvbSB0aGUgYm9keSBvZiB0aGlzCisgZWxlbWVudC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbE1ldGhvZFJ1bGUuaHRtbCNDYWxsTWV0aG9kUnVsZShvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5EaWdlc3RlciwgamF2YS5sYW5nLlN0cmluZywgaW50KSI+PEI+Q2FsbE1ldGhvZFJ1bGUoRGlnZXN0ZXIsIFN0cmluZywgaW50KTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbE1ldGhvZFJ1bGUuaHRtbCI+Q2FsbE1ldGhvZFJ1bGU8L0E+Cis8REQ+Q29uc3RydWN0IGEgImNhbGwgbWV0aG9kIiBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBtZXRob2QgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsTWV0aG9kUnVsZS5odG1sI0NhbGxNZXRob2RSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyLCBqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGphdmEubGFuZy5DbGFzc1tdKSI+PEI+Q2FsbE1ldGhvZFJ1bGUoRGlnZXN0ZXIsIFN0cmluZywgaW50LCBDbGFzc1tdKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbE1ldGhvZFJ1bGUuaHRtbCI+Q2FsbE1ldGhvZFJ1bGU8L0E+Cis8REQ+Q29uc3RydWN0IGEgImNhbGwgbWV0aG9kIiBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBtZXRob2QgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsTWV0aG9kUnVsZS5odG1sI0NhbGxNZXRob2RSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyLCBqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGphdmEubGFuZy5TdHJpbmdbXSkiPjxCPkNhbGxNZXRob2RSdWxlKERpZ2VzdGVyLCBTdHJpbmcsIGludCwgU3RyaW5nW10pPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsTWV0aG9kUnVsZS5odG1sIj5DYWxsTWV0aG9kUnVsZTwvQT4KKzxERD5Db25zdHJ1Y3QgYSAiY2FsbCBtZXRob2QiIHJ1bGUgd2l0aCB0aGUgc3BlY2lmaWVkIG1ldGhvZCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxQYXJhbVJ1bGUuaHRtbCI+PEI+Q2FsbFBhcmFtUnVsZTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sIj5DYWxsUGFyYW1SdWxlPC9BPi48REQ+UnVsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IHNhdmVzIGEgcGFyYW1ldGVyIGZyb20gZWl0aGVyIGFuIGF0dHJpYnV0ZSBvZgorIHRoaXMgZWxlbWVudCwgb3IgZnJvbSB0aGUgZWxlbWVudCBib2R5LCB0byBiZSB1c2VkIGluIGEgY2FsbCBnZW5lcmF0ZWQKKyBieSBhIHN1cnJvdW5kaW5nIENhbGxNZXRob2RSdWxlIHJ1bGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxQYXJhbVJ1bGUuaHRtbCNDYWxsUGFyYW1SdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyLCBpbnQpIj48Qj5DYWxsUGFyYW1SdWxlKERpZ2VzdGVyLCBpbnQpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsUGFyYW1SdWxlLmh0bWwiPkNhbGxQYXJhbVJ1bGU8L0E+Cis8REQ+Q29uc3RydWN0IGEgImNhbGwgcGFyYW1ldGVyIiBydWxlIHRoYXQgd2lsbCBzYXZlIHRoZSBib2R5IHRleHQgb2YgdGhpcworIGVsZW1lbnQgYXMgdGhlIHBhcmFtZXRlciB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsUGFyYW1SdWxlLmh0bWwjQ2FsbFBhcmFtUnVsZShvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5EaWdlc3RlciwgaW50LCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Q2FsbFBhcmFtUnVsZShEaWdlc3RlciwgaW50LCBTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsUGFyYW1SdWxlLmh0bWwiPkNhbGxQYXJhbVJ1bGU8L0E+Cis8REQ+Q29uc3RydWN0IGEgImNhbGwgcGFyYW1ldGVyIiBydWxlIHRoYXQgd2lsbCBzYXZlIHRoZSB2YWx1ZSBvZiB0aGUKKyBzcGVjaWZpZWQgYXR0cmlidXRlIGFzIHRoZSBwYXJhbWV0ZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NvbnN0YW50cy5odG1sI0NBTkNFTF9QUk9QRVJUWSI+PEI+Q0FOQ0VMX1BST1BFUlRZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NvbnN0YW50cy5odG1sIj5Db25zdGFudHM8L0E+Cis8REQ+VGhlIHByb3BlcnR5IHVuZGVyIHdoaWNoIGEgQ2FuY2VsIGJ1dHRvbiBwcmVzcyBpcyByZXBvcnRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCNDQU5DRUxfUFJPUEVSVFkiPjxCPkNBTkNFTF9QUk9QRVJUWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwiPkNvbnN0YW50czwvQT4KKzxERD5UaGUgcHJvcGVydHkgdW5kZXIgd2hpY2ggYSBDYW5jZWwgYnV0dG9uIHByZXNzIGlzIHJlcG9ydGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sI0NBTkNFTF9QUk9QRVJUWV9YIj48Qj5DQU5DRUxfUFJPUEVSVFlfWDwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwiPkNvbnN0YW50czwvQT4KKzxERD5UaGUgcHJvcGVydHkgdW5kZXIgd2hpY2ggYSBDYW5jZWwgYnV0dG9uIHByZXNzIGlzIHJlcG9ydGVkLCBpZiB0aGUKKyBDYW5jZWwgYnV0dG9uIGlzIHJlbmRlcmVkIGFzIGFuIGltYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DYW5jZWxUYWcuaHRtbCI+PEI+Q2FuY2VsVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NhbmNlbFRhZy5odG1sIj5DYW5jZWxUYWc8L0E+LjxERD5UYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJjYW5jZWwiLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+PEI+Q2FuY2VsVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPi48REQ+VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiY2FuY2VsIi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NhbmNlbFRhZy5odG1sI0NhbmNlbFRhZygpIj48Qj5DYW5jZWxUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI0NhbmNlbFRhZygpIj48Qj5DYW5jZWxUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjY2F0YWxvZyI+PEI+Y2F0YWxvZzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+R2VuZXJpY0Nvbm5lY3Rpb248L0E+Cis8REQ+VGhlIGluaXRpYWwgY2F0YWxvZyB0byB3aGljaCB3ZSBzaG91bGQgcmV0dXJuIGFmdGVyIHJlbGVhc2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNjaGFyYWN0ZXJzKGNoYXJbXSwgaW50LCBpbnQpIj48Qj5jaGFyYWN0ZXJzKGNoYXJbXSwgaW50LCBpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5Qcm9jZXNzIG5vdGlmaWNhdGlvbiBvZiBjaGFyYWN0ZXIgZGF0YSByZWNlaXZlZCBmcm9tIHRoZSBib2R5IG9mCisgYW4gWE1MIGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NoZWNrYm94VGFnLmh0bWwiPjxCPkNoZWNrYm94VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPi48REQ+VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiY2hlY2tib3giLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj48Qj5DaGVja2JveFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+LjxERD5UYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJjaGVja2JveCIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DaGVja2JveFRhZy5odG1sI0NoZWNrYm94VGFnKCkiPjxCPkNoZWNrYm94VGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNDaGVja2JveFRhZygpIj48Qj5DaGVja2JveFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj5DaGVja2JveFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjY2hlY2tFcnJvcigpIj48Qj5jaGVja0Vycm9yKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5GbHVzaCB0aGUgc3RyZWFtIGFuZCBjaGVjayBmb3IgaXRzIGVycm9yIHN0YXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbCNjbGFzc05hbWUiPjxCPmNsYXNzTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9PYmplY3RDcmVhdGVSdWxlLmh0bWwiPk9iamVjdENyZWF0ZVJ1bGU8L0E+Cis8REQ+VGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgb2JqZWN0IHRvIGJlIGNyZWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI2NsYXp6Ij48Qj5jbGF6ejwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCI+RGlzcGF0Y2hBY3Rpb248L0E+Cis8REQ+VGhlIENsYXNzIGluc3RhbmNlIG9mIHRoaXMgPGNvZGU+RGlzcGF0Y2hBY3Rpb248L2NvZGU+IGNsYXNzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNjbGF6eiI+PEI+Y2xheno8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4KKzxERD5UaGUgSmF2YSBjbGFzcyB0byBiZSB1c2VkIGZvcgorIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sI2NsZWFyKCkiPjxCPmNsZWFyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4KKzxERD5DbGVhciBhbGwgZXJyb3IgbWVzc2FnZXMgcmVjb3JkZWQgYnkgdGhpcyBvYmplY3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNjbGVhcigpIj48Qj5jbGVhcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5DbGVhciB0aGUgY3VycmVudCBjb250ZW50cyBvZiB0aGUgb2JqZWN0IHN0YWNrLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCNjbGVhcigpIj48Qj5jbGVhcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+RmFzdEhhc2hNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVtb3ZlIGFsbCBtYXBwaW5ncyBmcm9tIHRoaXMgbWFwLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sI2NsZWFyKCkiPjxCPmNsZWFyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwiPkFycmF5U3RhY2s8L0E+Cis8REQ+UmVtb3ZlIGFsbCBlbGVtZW50cyBmcm9tIHRoaXMgc3RhY2suCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjY2xlYXIoKSI+PEI+Y2xlYXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCI+RmFzdEFycmF5TGlzdDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZW1vdmUgYWxsIG9mIHRoZSBlbGVtZW50cyBmcm9tIHRoaXMgbGlzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjY2xlYXIoKSI+PEI+Y2xlYXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwiPkZhc3RUcmVlTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JlbW92ZSBhbGwgbWFwcGluZ3MgZnJvbSB0aGlzIG1hcC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjY2xlYXJXYXJuaW5ncygpIj48Qj5jbGVhcldhcm5pbmdzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4KKzxERD5DbGVhciBhbGwgd2FybmluZ3MgcmVwb3J0ZWQgZm9yIHRoaXMgQ29ubmVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjY2xvbmUoKSI+PEI+Y2xvbmUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhIHNoYWxsb3cgY29weSBvZiB0aGlzIDxjb2RlPkZhc3RIYXNoTWFwPC9jb2RlPiBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNjbG9uZSgpIj48Qj5jbG9uZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sIj5GYXN0QXJyYXlMaXN0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhIHNoYWxsb3cgY29weSBvZiB0aGlzIDxjb2RlPkZhc3RBcnJheUxpc3Q8L2NvZGU+IGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCNjbG9uZSgpIj48Qj5jbG9uZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCI+RmFzdFRyZWVNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGEgc2hhbGxvdyBjb3B5IG9mIHRoaXMgPGNvZGU+RmFzdFRyZWVNYXA8L2NvZGU+IGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwjY2xvbmVCZWFuKGphdmEubGFuZy5PYmplY3QpIj48Qj5jbG9uZUJlYW4oT2JqZWN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCI+QmVhblV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0Nsb25lIGEgYmVhbiBiYXNlZCBvbiB0aGUgYXZhaWxhYmxlIHByb3BlcnR5IGdldHRlcnMgYW5kIHNldHRlcnMsCisgZXZlbiBpZiB0aGUgYmVhbiBjbGFzcyBpdHNlbGYgZG9lcyBub3QgaW1wbGVtZW50IENsb25lYWJsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2Nsb3NlKCkiPjxCPmNsb3NlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPlRoaXMgbWV0aG9kIGF0dGVtcHRzIHRvIGNsb3NlIHRoZSB1bmRlcmx5aW5nIElucHV0U3RyZWFtCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI2Nsb3NlKCkiPjxCPmNsb3NlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5DbG9zZSB0aGUgc3RyZWFtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNjbG9zZSgpIj48Qj5jbG9zZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+R2VuZXJpY0Nvbm5lY3Rpb248L0E+Cis8REQ+UmV0dXJuIHRoaXMgd3JhcHBlZCBDb25uZWN0aW9uIHRvIG91ciBkYXRhIHNvdXJjZSBjb25uZWN0aW9uIHBvb2wuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2Nsb3NlKCkiPjxCPmNsb3NlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD5DbG9zZSBhbGwgY29ubmVjdGlvbnMgdGhhdCBoYXZlIGJlZW4gY3JlYXRlZCBieSB0aGlzIGRhdGEgc291cmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNjbG9zZWQiPjxCPmNsb3NlZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+R2VuZXJpY0Nvbm5lY3Rpb248L0E+Cis8REQ+VGhlIGNsb3NlZCBmbGFnIGZvciB0aGlzIHdyYXBwZWQgY29ubmVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjY2xvc2VkIj48Qj5jbG9zZWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPkhhcyB0aGlzIGRhdGEgc291cmNlIGJlZW4gY2xvc2VkPworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCNjb2xsZWN0aW9uIj48Qj5jb2xsZWN0aW9uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwiPkVudW1lcmF0ZVRhZzwvQT4KKzxERD5UaGUgY29sbGVjdGlvbiBvdmVyIHdoaWNoIHdlIHdpbGwgYmUgaXRlcmF0aW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwjY29sbGVjdGlvbiI+PEI+Y29sbGVjdGlvbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5UaGUgY29sbGVjdGlvbiBvdmVyIHdoaWNoIHdlIHdpbGwgYmUgaXRlcmF0aW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNjb2xsZWN0aW9uIj48Qj5jb2xsZWN0aW9uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+U2l6ZVRhZzwvQT4KKzxERD5UaGUgYWN0dWFsIGNvbGxlY3Rpb24gdG8gYmUgY291bnRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjY29sbGVjdGlvbiI+PEI+Y29sbGVjdGlvbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGNvbGxlY3Rpb24gY29udGFpbmluZyBiZWFucyB0aGF0IGhhdmUgcHJvcGVydGllcyB0bworIHByb3ZpZGUgYm90aCB0aGUgdmFsdWVzIGFuZCB0aGUgbGFiZWxzIChpZGVudGlmaWVkIGJ5IHRoZQorIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhbmQgPGNvZGU+bGFiZWxQcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlcykuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNjb2xsZWN0aW9uIj48Qj5jb2xsZWN0aW9uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBjb2xsZWN0aW9uIG92ZXIgd2hpY2ggd2Ugd2lsbCBiZSBpdGVyYXRpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VJbnB1dFRhZy5odG1sI2NvbHMiPjxCPmNvbHM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlRoZSBudW1iZXIgb2YgY2hhcmFjdGVyIGNvbHVtbnMgZm9yIHRoaXMgZmllbGQsIG9yIG5lZ2F0aXZlCisgZm9yIG5vIGxpbWl0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2NvbHMiPjxCPmNvbHM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5UaGUgbnVtYmVyIG9mIGNoYXJhY3RlciBjb2x1bW5zIGZvciB0aGlzIGZpZWxkLCBvciBuZWdhdGl2ZQorIGZvciBubyBsaW1pdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjY29tbWl0KCkiPjxCPmNvbW1pdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+R2VuZXJpY0Nvbm5lY3Rpb248L0E+Cis8REQ+TWFrZSBhbGwgY2hhbmdlcyBtYWRlIHNpbmNlIHRoZSBwcmV2aW91cyBjb21taXQgb3Igcm9sbGJhY2sKKyBwZXJtYW5lbnQsIGFuZCByZWxlYXNlcyBhbnkgZGF0YWJhc2UgbG9ja3MgY3VycmVudGx5IGhlbGQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2NvbXBhcmF0b3IoKSI+PEI+Y29tcGFyYXRvcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCI+RmFzdFRyZWVNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBjb21wYXJhdG9yIHVzZWQgdG8gb3JkZXIgdGhpcyBtYXAsIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgaWYgdGhpcyBtYXAgdXNlcyBpdHMga2V5cycgbmF0dXJhbCBvcmRlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+PEI+Q29tcGFyZVRhZ0Jhc2U8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+LjxERD5BYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBjb21wYXJpc29uIHRhZ3MuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0NvbXBhcmVUYWdCYXNlKCkiPjxCPkNvbXBhcmVUYWdCYXNlKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNjb21wdXRlUGFyYW1ldGVycyhqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPjxCPmNvbXB1dGVQYXJhbWV0ZXJzKFBhZ2VDb250ZXh0LCBTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBTdHJpbmcsIGJvb2xlYW4pPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+Q29tcHV0ZSBhIHNldCBvZiBxdWVyeSBwYXJhbWV0ZXJzIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseSBhZGRlZCB0bworIGEgZ2VuZXJhdGVkIFVSTC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2NvbXB1dGVVUkwoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEudXRpbC5NYXAsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48Qj5jb21wdXRlVVJMKFBhZ2VDb250ZXh0LCBTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBNYXAsIFN0cmluZywgYm9vbGVhbik8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5Db21wdXRlIGEgaHlwZXJsaW5rIFVSTCBiYXNlZCBvbiB0aGUgPGNvZGU+Zm9yd2FyZDwvY29kZT4sCisgPGNvZGU+aHJlZjwvY29kZT4sIG9yIDxjb2RlPnBhZ2U8L2NvZGU+IHBhcmFtZXRlciB0aGF0IGlzIG5vdCBudWxsLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oKSI+PEI+Y29uZGl0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sI2NvbmRpdGlvbigpIj48Qj5jb25kaXRpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPlByZXNlbnRUYWc8L0E+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjY29uZGl0aW9uKCkiPjxCPmNvbmRpdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPk1hdGNoVGFnPC9BPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sI2NvbmRpdGlvbigpIj48Qj5jb25kaXRpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sIj5Ob3RNYXRjaFRhZzwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oKSI+PEI+Y29uZGl0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwjY29uZGl0aW9uKCkiPjxCPmNvbmRpdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwiPkVxdWFsVGFnPC9BPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbCNjb25kaXRpb24oKSI+PEI+Y29uZGl0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwiPkdyZWF0ZXJFcXVhbFRhZzwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCNjb25kaXRpb24oKSI+PEI+Y29uZGl0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCI+Tm90RXF1YWxUYWc8L0E+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbCNjb25kaXRpb24oKSI+PEI+Y29uZGl0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sIj5Ob3RQcmVzZW50VGFnPC9BPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzRXF1YWxUYWcuaHRtbCNjb25kaXRpb24oKSI+PEI+Y29uZGl0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiPkxlc3NFcXVhbFRhZzwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCNjb25kaXRpb24oKSI+PEI+Y29uZGl0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCI+R3JlYXRlclRoYW5UYWc8L0E+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwjY29uZGl0aW9uKCkiPjxCPmNvbmRpdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwiPkxlc3NUaGFuVGFnPC9BPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwjY29uZGl0aW9uKGJvb2xlYW4pIj48Qj5jb25kaXRpb24oYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj5QcmVzZW50VGFnPC9BPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2NvbmRpdGlvbihib29sZWFuKSI+PEI+Y29uZGl0aW9uKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPk1hdGNoVGFnPC9BPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2NvbmRpdGlvbihpbnQsIGludCkiPjxCPmNvbmRpdGlvbihpbnQsIGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj48Qj5Db25kaXRpb25hbFRhZ0Jhc2U8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4uPEREPkFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIHRoZSB2YXJpb3VzIGNvbmRpdGlvbmFsIGV2YWx1YXRpb24gdGFncy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI0NvbmRpdGlvbmFsVGFnQmFzZSgpIj48Qj5Db25kaXRpb25hbFRhZ0Jhc2UoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjY29uZmlnIj48Qj5jb25maWc8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+VGhlIGNvbnRleHQtcmVsYXRpdmUgcGF0aCB0byBvdXIgY29uZmlndXJhdGlvbiByZXNvdXJjZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNjb25maWciPjxCPmNvbmZpZzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciB1c2VkIHRvIGluaXRpYWxpemUgdGhpcyBNZXNzYWdlUmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNjb25uIj48Qj5jb25uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4KKzxERD5UaGUgQ29ubmVjdGlvbiB0aGF0IGlzIGJlaW5nIHdyYXBwZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2Nvbm5lY3Rpb25zIj48Qj5jb25uZWN0aW9uczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+VGhlIGxpc3Qgb2YgQ29ubmVjdGlvbnMgKHdyYXBwZWQgaW4gb3VyIGFzc29jaWF0ZWQgd3JhcHBlciBjbGFzcykgdGhhdAorIGhhdmUgYmVlbiBjcmVhdGVkIGJ1dCBhcmUgbm90IGN1cnJlbnRseSBpbiB1c2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNjb25zdGFudCI+PEI+Y29uc3RhbnQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+VGhlIGNvbnN0YW50IFN0cmluZyB2YWx1ZSB0byBiZSByZXR1cm5lZCB3aGVuIHRoaXMgY2hlY2tib3ggaXMKKyBzZWxlY3RlZCBhbmQgdGhlIGZvcm0gaXMgc3VibWl0dGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Db25zdGFudHMuaHRtbCI+PEI+Q29uc3RhbnRzPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NvbnN0YW50cy5odG1sIj5Db25zdGFudHM8L0E+LjxERD5NYW5pZmVzdCBjb25zdGFudHMgZm9yIHRoaXMgcGFja2FnZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwiPjxCPkNvbnN0YW50czwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwiPkNvbnN0YW50czwvQT4uPEREPk1hbmlmZXN0IGNvbnN0YW50cyBmb3IgdGhpcyBwYWNrYWdlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ29uc3RhbnRzLmh0bWwjQ29uc3RhbnRzKCkiPjxCPkNvbnN0YW50cygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NvbnN0YW50cy5odG1sIj5Db25zdGFudHM8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwjQ29uc3RhbnRzKCkiPjxCPkNvbnN0YW50cygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCI+Q29uc3RhbnRzPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2NvbnRhaW5zKGphdmEubGFuZy5PYmplY3QpIj48Qj5jb250YWlucyhPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sIj5GYXN0QXJyYXlMaXN0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGxpc3QgY29udGFpbnMgdGhlIHNwZWNpZmllZCBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2NvbnRhaW5zQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uKSI+PEI+Y29udGFpbnNBbGwoQ29sbGVjdGlvbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgbGlzdCBjb250YWlucyBhbGwgb2YgdGhlIGVsZW1lbnRzCisgaW4gdGhlIHNwZWNpZmllZCBDb2xsZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCNjb250YWluc0tleShqYXZhLmxhbmcuT2JqZWN0KSI+PEI+Y29udGFpbnNLZXkoT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIG1hcCBjb250YWlucyBhIG1hcHBpbmcgZm9yIHRoZQorIHNwZWNpZmllZCBrZXkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2NvbnRhaW5zS2V5KGphdmEubGFuZy5PYmplY3QpIj48Qj5jb250YWluc0tleShPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCI+RmFzdFRyZWVNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgbWFwIGNvbnRhaW5zIGEgbWFwcGluZyBmb3IgdGhlCisgc3BlY2lmaWVkIGtleS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjY29udGFpbnNWYWx1ZShqYXZhLmxhbmcuT2JqZWN0KSI+PEI+Y29udGFpbnNWYWx1ZShPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+RmFzdEhhc2hNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgbWFwIGNvbnRhaW5zIG9uZSBvciBtb3JlIGtleXMgbWFwcGluZworIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2NvbnRhaW5zVmFsdWUoamF2YS5sYW5nLk9iamVjdCkiPjxCPmNvbnRhaW5zVmFsdWUoT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwiPkZhc3RUcmVlTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIG1hcCBjb250YWlucyBvbmUgb3IgbW9yZSBrZXlzIG1hcHBpbmcKKyB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjY29udGVudCI+PEI+Y29udGVudDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5UaGUgZGVmYXVsdCBjb250ZW50IHR5cGUgYW5kIGNoYXJhY3RlciBlbmNvZGluZyB0byBiZSBzZXQgb24gZWFjaAorIHJlc3BvbnNlIChtYXkgYmUgb3ZlcnJpZGRlbiBieSBmb3J3YXJkZWQtdG8gcmVzb3VyY2VzKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjY29udGVudCI+PEI+Y29udGVudDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+VGhlIGNvbnRlbnQncyBVUkkgKG9yIHRleHQpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCNjb250ZW50Ij48Qj5jb250ZW50PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+Q29udGVudDwvQT4KKzxERD5UZW1wbGF0ZXMgcmVnYXJkIHRoaXMgYXMgY29udGVudCB0byBiZSBlaXRoZXIgaW5jbHVkZWQgb3IgCisgIHByaW50ZWQgZGlyZWN0bHkuPGJyPiBUaGlzIGlzIGEgYmxhbmsgZmluYWwgdGhhdCBpcworICBzZXQgYXQgY29uc3RydWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+PEI+Q29udGVudDwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj5Db250ZW50PC9BPi48REQ+QSB1dGlsaXR5IGZpbGUgZm9yIHRlbXBsYXRlcy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sI0NvbnRlbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPkNvbnRlbnQoU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPkNvbnRlbnQ8L0E+Cis8REQ+VGhlIG9ubHkgY29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNjb250ZW50TGVuZ3RoIj48Qj5jb250ZW50TGVuZ3RoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPlRoZSBjb250ZW50IGxlbmd0aCBvZiB0aGUgbXVsdGlwYXJ0IGRhdGEKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNjb250ZW50TGVuZ3RoIj48Qj5jb250ZW50TGVuZ3RoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+VGhlIGNvbnRlbnQgbGVuZ3RoIG9mIHRoaXMgcmVxdWVzdAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+PEI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9CPjwvQT4gLSBleGNlcHRpb24gb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPi48REQ+VGhpcyBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gbXVsdGlwYXJ0IHBvc3QgZGF0YSBleGNlZWRzIHRoZSB2YWx1ZQorIGdpdmVuIGJ5IHRoZSBDb250ZW50LUxlbmd0aCBoZWFkZXI8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sI0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbigpIj48Qj5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCNDb250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24obG9uZykiPjxCPkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbihsb25nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjY29udGVudExlbmd0aE1ldCI+PEI+Y29udGVudExlbmd0aE1ldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5XaGV0aGVyIG9yIG5vdCBieXRlcyB1cCB0byB0aGUgQ29udGVudC1MZW5ndGggaGF2ZSBiZWVuIHJlYWQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2NvbnRlbnRMZW5ndGhNZXQoKSI+PEI+Y29udGVudExlbmd0aE1ldCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPjxCPkNvbnRlbnRNYXA8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT4uPEREPkEgc2ltcGxlIGZhY2FkZSBmb3IgYSBoYXNoIG1hcC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sI0NvbnRlbnRNYXAoKSI+PEI+Q29udGVudE1hcCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+Cis8REQ+RXhwbGljaXRseSBkZWNsYXJlIGEgZG8tbm90aGluZywgbm8tYXJnIGNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sIj48Qj5Db250ZW50TWFwU3RhY2s8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sIj5Db250ZW50TWFwU3RhY2s8L0E+LjxERD5UaGlzIGNsYXNzIHByb3ZpZGVzIGFjY2VzcyB0byBhIHN0YWNrIG9mIENvbnRlbnRNYXBzIGluIHJlcXVlc3Qgc2NvcGUKKyB0aHJvdWdoIHN0YXRpYyBtZXRob2RzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCNDb250ZW50TWFwU3RhY2soKSI+PEI+Q29udGVudE1hcFN0YWNrKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sIj5Db250ZW50TWFwU3RhY2s8L0E+Cis8REQ+Tm8gaW5zdGFudGlhdGlvbnMgb2YgdGhpcyBjbGFzcyBhcmUgYWxsb3dlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNjb250ZW50UmVhZCI+PEI+Y29udGVudFJlYWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5XaGV0aGVyIG9yIG5vdCB0aGUgaW5wdXQgc3RyZWFtIGlzIGZpbmlzaGVkCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjY29udGVudFR5cGUiPjxCPmNvbnRlbnRUeXBlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+VGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgZmlsZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjY29udGVudFR5cGUiPjxCPmNvbnRlbnRUeXBlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPgorPEREPlRoZSBjb250ZW50IHR5cGUgb2YgdGhpcyBlbGVtZW50Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI2NvbnRleHQiPjxCPmNvbnRleHQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPlRoZSBzZXJ2bGV0IGNvbnRleHQgd2l0aCB3aGljaCB3ZSBhcmUgYXNzb2NpYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2NvbnZlcnQoamF2YS5sYW5nLk9iamVjdCkiPjxCPmNvbnZlcnQoT2JqZWN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnZlcnQgdGhlIHNwZWNpZmllZCB2YWx1ZSBpbnRvIGEgU3RyaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjY29udmVydChqYXZhLmxhbmcuU3RyaW5nW10sIGphdmEubGFuZy5DbGFzcykiPjxCPmNvbnZlcnQoU3RyaW5nW10sIENsYXNzKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnZlcnQgYW4gYXJyYXkgb2Ygc3BlY2lmaWVkIHZhbHVlcyB0byBhbiBhcnJheSBvZiBvYmplY3RzIG9mIHRoZQorIHNwZWNpZmllZCBjbGFzcyAoaWYgcG9zc2libGUpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjY29udmVydChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuQ2xhc3MpIj48Qj5jb252ZXJ0KFN0cmluZywgQ2xhc3MpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sIj5Db252ZXJ0VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29udmVydCB0aGUgc3BlY2lmaWVkIHZhbHVlIHRvIGFuIG9iamVjdCBvZiB0aGUgc3BlY2lmaWVkIGNsYXNzIChpZgorIHBvc3NpYmxlKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2NvbnZlcnRCb29sZWFuKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5Cb29sZWFuKSI+PEI+Y29udmVydEJvb2xlYW4oU3RyaW5nLCBCb29sZWFuKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnZlcnQgYSBTdHJpbmcgdmFsdWUgdG8gYSBjb3JyZXNwb25kaW5nIEJvb2xlYW4gdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNjb252ZXJ0Qnl0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuQnl0ZSkiPjxCPmNvbnZlcnRCeXRlKFN0cmluZywgQnl0ZSk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb252ZXJ0IGEgU3RyaW5nIHZhbHVlIHRvIGEgY29ycmVzcG9uZGluZyBCeXRlIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjY29udmVydENoYXJhY3RlcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuQ2hhcmFjdGVyKSI+PEI+Y29udmVydENoYXJhY3RlcihTdHJpbmcsIENoYXJhY3Rlcik8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb252ZXJ0IGEgU3RyaW5nIHZhbHVlIHRvIGEgY29ycmVzcG9uZGluZyBDaGFyYWN0ZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNjb252ZXJ0RG91YmxlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5Eb3VibGUpIj48Qj5jb252ZXJ0RG91YmxlKFN0cmluZywgRG91YmxlKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnZlcnQgYSBTdHJpbmcgdmFsdWUgdG8gYSBjb3JyZXNwb25kaW5nIERvdWJsZSB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2NvbnZlcnRGbG9hdChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuRmxvYXQpIj48Qj5jb252ZXJ0RmxvYXQoU3RyaW5nLCBGbG9hdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb252ZXJ0IGEgU3RyaW5nIHZhbHVlIHRvIGEgY29ycmVzcG9uZGluZyBGbG9hdCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2NvbnZlcnRJbnRlZ2VyKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5JbnRlZ2VyKSI+PEI+Y29udmVydEludGVnZXIoU3RyaW5nLCBJbnRlZ2VyKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnZlcnQgYSBTdHJpbmcgdmFsdWUgdG8gYSBjb3JyZXNwb25kaW5nIEludGVnZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNjb252ZXJ0TG9uZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuTG9uZykiPjxCPmNvbnZlcnRMb25nKFN0cmluZywgTG9uZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb252ZXJ0IGEgU3RyaW5nIHZhbHVlIHRvIGEgY29ycmVzcG9uZGluZyBMb25nIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjY29udmVydFNob3J0KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TaG9ydCkiPjxCPmNvbnZlcnRTaG9ydChTdHJpbmcsIFNob3J0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnZlcnQgYSBTdHJpbmcgdmFsdWUgdG8gYSBjb3JyZXNwb25kaW5nIFNob3J0IHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPjxCPkNvbnZlcnRVdGlsczwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sIj5Db252ZXJ0VXRpbHM8L0E+LjxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BdCBzb21lIHBvaW50IGFmdGVyIFN0cnV0cyAxLjAgZmluYWwsIHdpbGwgYmUgcmVwbGFjZWQgYnkKKyAgYW4gZXF1aXZhbGVudCBjbGFzcyBpbiB0aGUgSmFrYXJ0YSBDb21tb25zIEJlYW51dGlscyBwYWNrYWdlLjwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNDb252ZXJ0VXRpbHMoKSI+PEI+Q29udmVydFV0aWxzKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPjxCPmNvb2tpZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGNvb2tpZSB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPjxCPkNvb2tpZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPkNvb2tpZVRhZzwvQT4uPEREPkRlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSBiYXNlZCBvbiB0aGUgdmFsdWUocykgb2YgdGhlIHNwZWNpZmllZAorIGNvb2tpZSByZWNlaXZlZCB3aXRoIHRoaXMgcmVxdWVzdC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjQ29va2llVGFnKCkiPjxCPkNvb2tpZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+Q29va2llVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj48Qj5Db29raWVUZWk8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj5Db29raWVUZWk8L0E+LjxERD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+Y29va2llPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUZWkuaHRtbCNDb29raWVUZWkoKSI+PEI+Q29va2llVGVpKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj5Db29raWVUZWk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjY29weVByb3BlcnRpZXMoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjxCPmNvcHlQcm9wZXJ0aWVzKE9iamVjdCwgT2JqZWN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwiPlByb3BlcnR5VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29weSBwcm9wZXJ0eSB2YWx1ZXMgZnJvbSB0aGUgIm9yaWdpbiIgYmVhbiB0byB0aGUgImRlc3RpbmF0aW9uIiBiZWFuCisgZm9yIGFsbCBjYXNlcyB3aGVyZSB0aGUgcHJvcGVydHkgbmFtZXMgYXJlIHRoZSBzYW1lIChldmVuIHRob3VnaCB0aGUKKyBhY3R1YWwgZ2V0dGVyIGFuZCBzZXR0ZXIgbWV0aG9kcyBtaWdodCBoYXZlIGJlZW4gY3VzdG9taXplZCB2aWEKKyA8Y29kZT5CZWFuSW5mbzwvY29kZT4gY2xhc3NlcykuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2NyZWF0ZUNvbm5lY3Rpb24oKSI+PEI+Y3JlYXRlQ29ubmVjdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Q3JlYXRlLCBjb25maWd1cmUsIGFuZCByZXR1cm4gYSBuZXcgSkRCQyBDb25uZWN0aW9uIHRoYXQgaGFzIGJlZW4KKyB3cmFwcGVkIGluIG91ciBjb3JyZXNwb25kaW5nIHdyYXBwZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2NyZWF0ZUZhY3RvcnkoKSI+PEI+Y3JlYXRlRmFjdG9yeSgpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPgorPEREPkNyZWF0ZSBhbmQgcmV0dXJuIGEgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlIG9mIHRoZQorIGFwcHJvcHJpYXRlIGNsYXNzLCB3aGljaCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgY3VzdG9taXplZAorIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGluc3RhbmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2NyZWF0ZUZvcm1JbnN0YW5jZSgpIj48Qj5jcmVhdGVGb3JtSW5zdGFuY2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+Q3JlYXRpb24gb2YgQWN0aW9uRm9ybSBpbnN0YW5jZXMgaXMgbm93IHRoZSByZXNwb25zaWJpbGl0eQorICBvZiB0aGUgY29udHJvbGxlciBzZXJ2bGV0PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2NyZWF0ZUxvY2FsRmlsZSgpIj48Qj5jcmVhdGVMb2NhbEZpbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5DcmVhdGVzIGEgZmlsZSBvbiBkaXNrIGZyb20gdGhlIGN1cnJlbnQgbXVsaXRwYXJ0IGVsZW1lbnQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjY3JlYXRlUmVzb3VyY2VzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5jcmVhdGVSZXNvdXJjZXMoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPgorPEREPkNyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3bHkgaW5zdGFuc2lhdGVkIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2NyZWF0ZVJlc291cmNlcyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Y3JlYXRlUmVzb3VyY2VzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Cis8REQ+Q3JlYXRlIGFuZCByZXR1cm4gYSBuZXdseSBpbnN0YW5zaWF0ZWQgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI2NyZWF0ZVN0YXRlbWVudCgpIj48Qj5jcmVhdGVTdGF0ZW1lbnQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPgorPEREPkNyZWF0ZSBhIDxjb2RlPlN0YXRlbWVudDwvY29kZT4gZm9yIHNlbmRpbmcgU1FMIHN0YXRlbWVudHMgdG8gdGhlCisgZGF0YWJhc2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI2NyZWF0ZVN0YXRlbWVudChpbnQsIGludCkiPjxCPmNyZWF0ZVN0YXRlbWVudChpbnQsIGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4KKzxERD4oSkRCQyAyLjApIENyZWF0ZSBhIFN0YXRlbWVudCB0aGF0IHdpbGwgY3JlYXRlIGEgUmVzdWx0U2V0IG9mIHRoZQorIHNwZWNpZmllZCB0eXBlIGFuZCBjb25jdXJyZW5jeS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjY3VycmVudExvY2FsZSgpIj48Qj5jdXJyZW50TG9jYWxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCI+SHRtbFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGN1cnJlbnQgTG9jYWxlIGZvciB0aGlzIHJlcXVlc3QsIGNyZWF0aW5nIGEgbmV3IG9uZSBpZgorIG5lY2Vzc2FyeS4KKzwvREw+Cis8SFI+Cis8QSBOQU1FPSJfRF8iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPkQ8L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2RhdGEiPjxCPmRhdGE8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBzaG91bGQgbmV2ZXIgYmUgdXNlZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0RBVEFfU09VUkNFX0tFWSI+PEI+REFUQV9TT1VSQ0VfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyIDxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPgorIGNvbmZpZ3VyZWQgZGF0YSBzb3VyY2UgKHdoaWNoIG11c3QgaW1wbGVtZW50CisgPGNvZGU+amF2YXguc3FsLkRhdGFTb3VyY2U8L2NvZGU+KSBpcyBzdG9yZWQsCisgaWYgb25lIGlzIGNvbmZpZ3VyZWQgZm9yIHRoaXMgYXBwbGljYXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkYXRhU291cmNlcyI+PEI+ZGF0YVNvdXJjZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+VGhlIEpEQkMgZGF0YSBzb3VyY2VzIHRoYXQgaGFzIGJlZW4gY29uZmlndXJlZCBmb3IgdGhpcyBhcHBsaWNhdGlvbiwKKyBpZiBhbnksIGtleWVkIGJ5IHRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZXkgYXJlCisgc3RvcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVidWciPjxCPmRlYnVnPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIGZvciB0aGlzIHNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNkZWJ1ZyI+PEI+ZGVidWc8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+VGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgb2YgdGhpcyBjb21wb25lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjZGVidWciPjxCPmRlYnVnPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIGZvciB0aGlzIGNvbXBvbmVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sI2RlYnVnIj48Qj5kZWJ1ZzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sIj5CZWFuVXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgZm9yIHRoaXMgY29tcG9uZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNkZWJ1ZyI+PEI+ZGVidWc8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPlRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIGZvciB0aGlzIGRhdGEgc291cmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjZGVmYXVsdEJvb2xlYW4iPjxCPmRlZmF1bHRCb29sZWFuPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgQm9vbGVhbiBjb252ZXJzaW9ucy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2RlZmF1bHRCeXRlIj48Qj5kZWZhdWx0Qnl0ZTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sIj5Db252ZXJ0VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIGRlZmF1bHQgdmFsdWUgZm9yIEJ5dGUgY29udmVyc2lvbnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNkZWZhdWx0Q2hhcmFjdGVyIj48Qj5kZWZhdWx0Q2hhcmFjdGVyPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgQ2hhcmFjdGVyIGNvbnZlcnNpb25zLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjZGVmYXVsdERvdWJsZSI+PEI+ZGVmYXVsdERvdWJsZTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sIj5Db252ZXJ0VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIGRlZmF1bHQgdmFsdWUgZm9yIERvdWJsZSBjb252ZXJzaW9ucy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNkZWZhdWx0RmFjdG9yeSI+PEI+ZGVmYXVsdEZhY3Rvcnk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+VGhlIGRlZmF1bHQgTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgdXNlZCB0byBjcmVhdGUgTWVzc2FnZVJlc291cmNlcworIGluc3RhbmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2RlZmF1bHRGbG9hdCI+PEI+ZGVmYXVsdEZsb2F0PC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgRmxvYXQgY29udmVyc2lvbnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNkZWZhdWx0SW50ZWdlciI+PEI+ZGVmYXVsdEludGVnZXI8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBkZWZhdWx0IHZhbHVlIGZvciBJbnRlZ2VyIGNvbnZlcnNpb25zLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNkZWZhdWx0TG9jYWxlIj48Qj5kZWZhdWx0TG9jYWxlPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+VGhlIHN5c3RlbSBkZWZhdWx0IExvY2FsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2RlZmF1bHRMb2NhbGUiPjxCPmRlZmF1bHRMb2NhbGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+VGhlIGRlZmF1bHQgTG9jYWxlIGZvciB0aGlzIHNlcnZlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sI2RlZmF1bHRMb2NhbGUiPjxCPmRlZmF1bHRMb2NhbGU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPlRoZSBkZWZhdWx0IExvY2FsZSBmb3Igb3VyIHNlcnZlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRXJyb3JzVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+PEI+ZGVmYXVsdExvY2FsZTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPgorPEREPlRoZSBkZWZhdWx0IGxvY2FsZSBvbiBvdXIgc2VydmVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj48Qj5kZWZhdWx0TG9jYWxlPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+VGhlIGRlZmF1bHQgTG9jYWxlIGZvciBvdXIgc2VydmVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2RlZmF1bHRMb2NhbGUiPjxCPmRlZmF1bHRMb2NhbGU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+VGhlIGRlZmF1bHQgTG9jYWxlIGZvciBvdXIgc2VydmVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2RlZmF1bHRMb2NhbGUiPjxCPmRlZmF1bHRMb2NhbGU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+VGhlIGRlZmF1bHQgbG9jYWxlIG9uIG91ciBzZXJ2ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj48Qj5kZWZhdWx0TG9jYWxlPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD5UaGUgZGVmYXVsdCBMb2NhbGUgZm9yIG91ciBzZXJ2ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+PEI+ZGVmYXVsdExvY2FsZTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5UaGUgZGVmYXVsdCBsb2NhbGUgZm9yIG91ciBzZXJ2ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZGVmYXVsdExvY2FsZSI+PEI+ZGVmYXVsdExvY2FsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlRoZSBkZWZhdWx0IExvY2FsZSBmb3Igb3VyIGVudmlyb25tZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjZGVmYXVsdExvY2FsZSI+PEI+ZGVmYXVsdExvY2FsZTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+VGhlIGRlZmF1bHQgTG9jYWxlIGZvciBvdXIgc2VydmVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjZGVmYXVsdExvbmciPjxCPmRlZmF1bHRMb25nPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgTG9uZyBjb252ZXJzaW9ucy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2RlZmF1bHRTaG9ydCI+PEI+ZGVmYXVsdFNob3J0PC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgU2hvcnQgY29udmVyc2lvbnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPjxCPkRlZmluZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4uPEREPkRlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSBiYXNlZCBvbiB0aGUgdmFsdWUocykgb2YgdGhlIHNwZWNpZmllZAorIGJlYW4gcHJvcGVydHkuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI0RlZmluZVRhZygpIj48Qj5EZWZpbmVUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUZWkuaHRtbCI+PEI+RGVmaW5lVGVpPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUZWkuaHRtbCI+RGVmaW5lVGVpPC9BPi48REQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPmRlZmluZTwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGVpLmh0bWwjRGVmaW5lVGVpKCkiPjxCPkRlZmluZVRlaSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUZWkuaHRtbCI+RGVmaW5lVGVpPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI2Rlc2NyaWJlKGphdmEubGFuZy5PYmplY3QpIj48Qj5kZXNjcmliZShPYmplY3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCI+UHJvcGVydHlVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIGVudGlyZSBzZXQgb2YgcHJvcGVydGllcyBmb3Igd2hpY2ggdGhlIHNwZWNpZmllZCBiZWFuCisgcHJvdmlkZXMgYSByZWFkIG1ldGhvZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sI2Rlc2NyaWJlKGphdmEubGFuZy5PYmplY3QpIj48Qj5kZXNjcmliZShPYmplY3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sIj5CZWFuVXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBlbnRpcmUgc2V0IG9mIHByb3BlcnRpZXMgZm9yIHdoaWNoIHRoZSBzcGVjaWZpZWQgYmVhbgorIHByb3ZpZGVzIGEgcmVhZCBtZXRob2QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2Rlc2NyaXB0aW9uIj48Qj5kZXNjcmlwdGlvbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+VGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgZGF0YSBzb3VyY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjZGVzY3JpcHRvcnNDYWNoZSI+PEI+ZGVzY3JpcHRvcnNDYWNoZTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCI+UHJvcGVydHlVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgY2FjaGUgb2YgUHJvcGVydHlEZXNjcmlwdG9yIGFycmF5cyBmb3IgYmVhbnMgd2UgaGF2ZSBhbHJlYWR5CisgaW50cm9zcGVjdGVkLCBrZXllZCBieSB0aGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgb2YgdGhpcyBvYmplY3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZXN0cm95KCkiPjxCPmRlc3Ryb3koKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+R3JhY2VmdWxseSBzaHV0IGRvd24gdGhpcyBjb250cm9sbGVyIHNlcnZsZXQsIHJlbGVhc2luZyBhbnkgcmVzb3VyY2VzCisgdGhhdCB3ZXJlIGFsbG9jYXRlZCBhdCBpbml0aWFsaXphdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNkZXN0cm95KCkiPjxCPmRlc3Ryb3koKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj5EaXNrRmlsZTwvQT4KKzxERD5EZWxldGUgdGhlIHRlbXBvcmFyeSBmaWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2Rlc3Ryb3koKSI+PEI+ZGVzdHJveSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT4KKzxERD5EZXN0cm95IGFsbCBjb250ZW50IGZvciB0aGlzIGZvcm0gZmlsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2Rlc3Ryb3lBY3Rpb25zKCkiPjxCPmRlc3Ryb3lBY3Rpb25zKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkdyYWNlZnVsbHkgc2h1dCBkb3duIGFueSBhY3Rpb24gaW5zdGFuY2VzIHdlIGhhdmUgY3JlYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2Rlc3Ryb3lBcHBsaWNhdGlvbigpIj48Qj5kZXN0cm95QXBwbGljYXRpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+R3JhY2VmdWxseSB0ZXJtaW5hdGUgdXNlIG9mIHRoZSBhcHBsaWNhdGlvbiBNZXNzYWdlUmVzb3VyY2VzIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVzdHJveURhdGFTb3VyY2VzKCkiPjxCPmRlc3Ryb3lEYXRhU291cmNlcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5HcmFjZWZ1bGx5IHRlcm1pbmF0ZSB1c2Ugb2YgdGhlIGRhdGEgc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGlzCisgYXBwbGljYXRpb24gKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZXN0cm95SW50ZXJuYWwoKSI+PEI+ZGVzdHJveUludGVybmFsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkdyYWNlZnVsbHkgdGVybWluYXRlIHVzZSBvZiB0aGUgaW50ZXJuYWwgTWVzc2FnZVJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjZGlnZXN0ZXIiPjxCPmRpZ2VzdGVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT4KKzxERD5UaGUgRGlnZXN0ZXIgd2l0aCB3aGljaCB0aGlzIFJ1bGUgaXMgYXNzb2NpYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj48Qj5EaWdlc3RlcjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+LjxERD5BIDxzdHJvbmc+RGlnZXN0ZXI8L3N0cm9uZz4gcHJvY2Vzc2VzIGFuIFhNTCBpbnB1dCBzdHJlYW0gYnkgbWF0Y2hpbmcgYQorIHNlcmllcyBvZiBlbGVtZW50IG5lc3RpbmcgcGF0dGVybnMgdG8gZXhlY3V0ZSBSdWxlcyB0aGF0IGhhdmUgYmVlbiBhZGRlZAorIHByaW9yIHRvIHRoZSBzdGFydCBvZiBwYXJzaW5nLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI0RpZ2VzdGVyKCkiPjxCPkRpZ2VzdGVyKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPkNvbnN0cnVjdCBhIG5ldyBEaWdlc3RlciB3aXRoIGRlZmF1bHQgcHJvcGVydGllcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjZGlyZWN0Ij48Qj5kaXJlY3Q8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPkRldGVybWluZXMgd2hldGhlciBjb250ZW50IGlzIGluY2x1ZGVkIChmYWxzZSkgb3IgcHJpbnRlZCAodHJ1ZSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sI2RpcmVjdCI+PEI+ZGlyZWN0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+Q29udGVudDwvQT4KKzxERD5SZXByZXNlbnRzIGEgYm9vbGVhbjsgaWYgdHJ1ZSwgY29udGVudCBpcyBpbmNsdWRlZCwgb3RoZXJ3aXNlCisgICBjb250ZW50IGlzIHByaW50ZWQuPGJyPlRoaXMgaXMgYSBibGFuayBmaW5hbCB0aGF0IGlzIHNldCBhdCAKKyAgY29uc3RydWN0aW9uLjxicj5UaGlzIGlzIGEgc3RyaW5nIGluc3RlYWQgb2YgYSBib29sZWFuIGFzCisgIGEgY29udmVuaWVuY2UgZm9yIHRoZSB0YWdzLCB3aG9zZSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZQorICBpcyBhIHN0cmluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2Rpc2FibGVkIj48Qj5kaXNhYmxlZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5Db21wb25lbnQgaXMgZGlzYWJsZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZGlzYWJsZWQiPjxCPmRpc2FibGVkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+SXMgdGhpcyBvcHRpb24gZGlzYWJsZWQ/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjZGlza0J1ZmZlclNpemUiPjxCPmRpc2tCdWZmZXJTaXplPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+VGhlIHNpemUgaW4gYnl0ZXMgd3JpdHRlbiB0byB0aGUgZmlsZXN5c3RlbSBhdCBhIHRpbWUgWzIwS10KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+PEI+RGlza0ZpbGU8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+LjxERD4mbmJzcDs8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjRGlza0ZpbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPkRpc2tGaWxlKFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48Qj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4uPEREPlRoaXMgaXMgYSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciB0aGF0IHdyaXRlcyBmaWxlIGRhdGEgZGlyZWN0bHkgdG8KKyB0byB0ZW1wb3JhcnkgZmlsZXMgb24gZGlzay48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcigpIj48Qj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCI+PEI+RGlzcGF0Y2hBY3Rpb248L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj5EaXNwYXRjaEFjdGlvbjwvQT4uPEREPkFuIGFic3RyYWN0IDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgZGlzcGF0Y2hlcyB0byBhIHB1YmxpYworIG1ldGhvZCB0aGF0IGlzIG5hbWVkIGJ5IHRoZSByZXF1ZXN0IHBhcmFtZXRlciB3aG9zZSBuYW1lIGlzIHNwZWNpZmllZAorIGJ5IHRoZSA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+IHByb3BlcnR5IG9mIHRoZSBjb3JyZXNwb25kaW5nCisgQWN0aW9uTWFwcGluZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI0Rpc3BhdGNoQWN0aW9uKCkiPjxCPkRpc3BhdGNoQWN0aW9uKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj5EaXNwYXRjaEFjdGlvbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+PEI+ZG9BZnRlckJvZHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCI+RW51bWVyYXRlVGFnPC9BPgorPEREPk1ha2UgdGhlIG5leHQgY29sbGVjdGlvbiBlbGVtZW50IGF2YWlsYWJsZSBhbmQgbG9vcCwgb3IKKyBmaW5pc2ggdGhlIGl0ZXJhdGlvbnMgaWYgdGhlcmUgYXJlIG5vIG1vcmUgZWxlbWVudHMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj48Qj5kb0FmdGVyQm9keSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5NYWtlIHRoZSBuZXh0IGNvbGxlY3Rpb24gZWxlbWVudCBhdmFpbGFibGUgYW5kIGxvb3AsIG9yCisgZmluaXNoIHRoZSBpdGVyYXRpb25zIGlmIHRoZXJlIGFyZSBubyBtb3JlIGVsZW1lbnRzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+PEI+ZG9BZnRlckJvZHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+PEI+ZG9BZnRlckJvZHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD5TYXZlIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGZyb20gdGhlIGJvZHkgY29udGVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPjxCPmRvQWZ0ZXJCb2R5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPk11bHRpYm94VGFnPC9BPgorPEREPlNhdmUgdGhlIGJvZHkgY29udGVudHMgb2YgdGhpcyB0YWcgYXMgdGhlIGNvbnN0YW50IHRoYXQgd2Ugd2lsbAorIGJlIHJldHVybmluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPjxCPmRvQWZ0ZXJCb2R5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPlNhdmUgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPjxCPmRvQWZ0ZXJCb2R5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQgKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+PEI+ZG9BZnRlckJvZHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT4KKzxERD5TYXZlIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGZyb20gdGhlIGJvZHkgY29udGVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+PEI+ZG9BZnRlckJvZHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlNhdmUgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPjxCPmRvQWZ0ZXJCb2R5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+U2F2ZSBhbnkgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnLCB3aGljaCB3aWxsIGdlbmVyYWxseSBiZSB0aGUKKyBvcHRpb24ocykgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPjxCPmRvQWZ0ZXJCb2R5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgYm9keSB0ZXh0IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+PEI+ZG9BZnRlckJvZHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj48Qj5kb0FmdGVyQm9keSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5NYWtlIHRoZSBuZXh0IGNvbGxlY3Rpb24gZWxlbWVudCBhdmFpbGFibGUgYW5kIGxvb3AsIG9yCisgZmluaXNoIHRoZSBpdGVyYXRpb25zIGlmIHRoZXJlIGFyZSBubyBtb3JlIGVsZW1lbnRzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+UmVuZGVyIHRoZSBlbmQgb2YgdGhlIGh5cGVybGluay4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJlbmRlciB0aGUgZW5kIG9mIHRoaXMgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTXVsdGlib3hUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL011bHRpYm94VGFnLmh0bWwiPk11bHRpYm94VGFnPC9BPgorPEREPk9wdGlvbmFsbHkgcmVuZGVyIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGZyb20gdGhlIGJvZHkgY29udGVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uczFUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwiPk9wdGlvbnMxVGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCI+RW51bWVyYXRlVGFnPC9BPgorPEREPkNsZWFuIHVwIGFmdGVyIHByb2Nlc3NpbmcgdGhpcyBlbnVtZXJhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmFkaW9UYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPk9wdGlvbmFsbHkgcmVuZGVyIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGZyb20gdGhlIGJvZHkgY29udGVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVzZXRUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSW5jbHVkZVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPkxvb2sgdXAgdGhlIEFjdGlvbkZvcndhcmQgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSwKKyBhbmQgcGVyZm9ybSBhbiBpbmNsdWRlIG9mIHRoZSBjb3JyZXNwb25kaW5nIGFjdHVhbCBwYXRoLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3J3YXJkVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3J3YXJkVGFnLmh0bWwiPkZvcndhcmRUYWc8L0E+Cis8REQ+TG9vayB1cCB0aGUgQWN0aW9uRm9yd2FyZCBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLAorIGFuZCBwZXJmb3JtIGEgZm9yd2FyZCBvciByZWRpcmVjdCB0byB0aGF0IHBhdGggYXMgaW5kaWNhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SZWRpcmVjdFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+UmVuZGVyIGEgcmVkaXJlY3QgdG8gdGhlIHNwZWNpZmllZCBoeXBlcmxpbmssIGFuZCBza2lwIHRoZQorIHJlbWFpbmRlciBvZiB0aGUgY3VycmVudCBwYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TdWJtaXRUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DaGVja2JveFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+T3B0aW9uYWxseSByZW5kZXIgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CdXR0b25UYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DYW5jZWxUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NhbmNlbFRhZy5odG1sIj5DYW5jZWxUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25UYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCI+TGluazFUYWc8L0E+Cis8REQ+UmVuZGVyIHRoZSBlbmQgb2YgdGhlIGh5cGVybGluay4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPkNsZWFuIHVwIGFmdGVyIHByb2Nlc3NpbmcgdGhpcyBlbnVtZXJhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlJlbmRlciB0aGUgZW5kIG9mIHRoaXMgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sIj5IdG1sVGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlJlbmRlciB0aGUgZW5kIG9mIHRoZSBJTUcgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+T3B0aW9uYWxseSByZW5kZXIgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIj5DYW5jZWxUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+UmVuZGVyIGFuIGlucHV0IGVsZW1lbnQgZm9yIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+UmVuZGVyIHRoZSBlbmQgb2YgdGhlIGh5cGVybGluay4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIj5SZXdyaXRlVGFnPC9BPgorPEREPklnbm9yZSB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+UmVuZGVyIHRoZSBlbmQgb2YgdGhpcyBmb3JtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgcmVtYWluZGVyIG9mIHRoaXMgcGFnZSBub3JtYWxseS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJlbmRlciB0aGUgZW5kIG9mIHRoaXMgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPkV2YWx1YXRlIHRoZSByZW1haW5kZXIgb2YgdGhlIGN1cnJlbnQgcGFnZSBub3JtYWxseS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPkNsZWFuIHVwIGFmdGVyIHByb2Nlc3NpbmcgdGhpcyBlbnVtZXJhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sIj5Gb3J3YXJkVGFnPC9BPgorPEREPkxvb2sgdXAgdGhlIEFjdGlvbkZvcndhcmQgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSwKKyBhbmQgcGVyZm9ybSBhIGZvcndhcmQgb3IgcmVkaXJlY3QgdG8gdGhhdCBwYXRoIGFzIGluZGljYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPlJlbmRlciB0aGUgcmVkaXJlY3QgYW5kIHNraXAgdGhlIHJlbWFpbmRlciBvZiB0aGlzIHBhZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgdGFnIGJ5IHB1dHRpbmcgY29udGVudCBpbnRvIHRoZSBlbmNsb3NpbmcKKyBpbnNlcnQgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIHRhZyBieSBpbmNsdWRpbmcgdGhlIHRlbXBsYXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZG9HZXQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5kb0dldChIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5Qcm9jZXNzIGFuIEhUVFAgIkdFVCIgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2RvUG9zdChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPmRvUG9zdChIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5Qcm9jZXNzIGFuIEhUVFAgIlBPU1QiIHJlcXVlc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+UmVuZGVyIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGh5cGVybGluay4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSHRtbFByb3BlcnR5VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSHRtbFByb3BlcnR5VGFnLmh0bWwiPkh0bWxQcm9wZXJ0eVRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyRXF1YWxzVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJFcXVhbHNUYWcuaHRtbCI+SWZQYXJhbWV0ZXJFcXVhbHNUYWc8L0E+Cis8REQ+Q29tcGFyZSB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlciB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLCBhbmQgZGVjaWRlIHdoZXRoZXIKKyBvciBub3QgdG8gaW5jbHVkZSB0aGUgYm9keSBjb250ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJlbmRlciB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTXVsdGlib3hUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT4KKzxERD5HZW5lcmF0ZSB0aGUgcmVxdWlyZWQgaW5wdXQgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9QYXJhbWV0ZXJUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9QYXJhbWV0ZXJUYWcuaHRtbCI+UGFyYW1ldGVyVGFnPC9BPgorPEREPkdlbmVyYXRlIHRoZSByZXF1aXJlZCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uczFUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zMVRhZy5odG1sIj5PcHRpb25zMVRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Vycm9yc1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+UmVuZGVyIHRoZSBzcGVjaWZpZWQgZXJyb3IgbWVzc2FnZXMgaWYgdGhlcmUgYXJlIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwiPkVudW1lcmF0ZVRhZzwvQT4KKzxERD5Db25zdHJ1Y3QgYW4gZW51bWVyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgY29sbGVjdGlvbiwgYW5kIGJlZ2luCisgbG9vcGluZyB0aHJvdWdoIHRoZSBib2R5IG9uY2UgcGVyIGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0dldFByb3BlcnR5VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvR2V0UHJvcGVydHlUYWcuaHRtbCI+R2V0UHJvcGVydHlUYWc8L0E+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTnVsbFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTnVsbFRhZy5odG1sIj5JZlBhcmFtZXRlck51bGxUYWc8L0E+Cis8REQ+UmV0cmlldmUgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXIsIGFuZCBkZWNpZGUgd2hldGhlcgorIG9yIG5vdCB0byBpbmNsdWRlIHRoZSBib2R5IGNvbnRlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JhZGlvVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+R2VuZXJhdGUgdGhlIHJlcXVpcmVkIGlucHV0IHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVzZXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SZXNldFRhZy5odG1sIj5SZXNldFRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW5jb2RlUmVkaXJlY3RVUkxUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbmNvZGVSZWRpcmVjdFVSTFRhZy5odG1sIj5FbmNvZGVSZWRpcmVjdFVSTFRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0luY2x1ZGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+Cis8REQ+RGVmZXIgZ2VuZXJhdGlvbiB1bnRpbCB0aGUgZW5kIG9mIHRoaXMgdGFnIGlzIGVuY291bnRlcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlRmllbGRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPkdlbmVyYXRlIHRoZSByZXF1aXJlZCBpbnB1dCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmQXR0cmlidXRlTWlzc2luZ1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmQXR0cmlidXRlTWlzc2luZ1RhZy5odG1sIj5JZkF0dHJpYnV0ZU1pc3NpbmdUYWc8L0E+Cis8REQ+Q29uZGl0aW9uYWxseSBldmFsdWF0ZSB0aGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3J3YXJkVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9yd2FyZFRhZy5odG1sIj5Gb3J3YXJkVGFnPC9BPgorPEREPkRlZmVyIGdlbmVyYXRpb24gdW50aWwgdGhlIGVuZCBvZiB0aGlzIHRhZyBpcyBlbmNvdW50ZXJlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck5vdEVxdWFsc1RhZy5odG1sIj5JZlBhcmFtZXRlck5vdEVxdWFsc1RhZzwvQT4KKzxERD5Db21wYXJlIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVyIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUsIGFuZCBkZWNpZGUgd2hldGhlcgorIG9yIG5vdCB0byBpbmNsdWRlIHRoZSBib2R5IGNvbnRlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JlZGlyZWN0VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+RGVmZXIgZ2VuZXJhdGlvbiB1bnRpbCB0aGUgZW5kIG9mIHRoaXMgdGFnIGlzIGVuY291bnRlcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TdWJtaXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9UZXh0YXJlYVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1RleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPgorPEREPkdlbmVyYXRlIHRoZSByZXF1aXJlZCBpbnB1dCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NoZWNrYm94VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+R2VuZXJhdGUgdGhlIHJlcXVpcmVkIGlucHV0IHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQnV0dG9uVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQnV0dG9uVGFnLmh0bWwiPkJ1dHRvblRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3ROdWxsVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3ROdWxsVGFnLmh0bWwiPklmUGFyYW1ldGVyTm90TnVsbFRhZzwvQT4KKzxERD5SZXRyaWV2ZSB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlciwgYW5kIGRlY2lkZSB3aGV0aGVyCisgb3Igbm90IHRvIGluY2x1ZGUgdGhlIGJvZHkgY29udGVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2FuY2VsVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sIj5MaW5rMVRhZzwvQT4KKzxERD5SZW5kZXIgdGhlIGJlZ2lubmluZyBvZiB0aGUgaHlwZXJsaW5rLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Qcm9wZXJ0eVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Byb3BlcnR5VGFnLmh0bWwiPlByb3BlcnR5VGFnPC9BPgorPEREPkdlbmVyYXRlIHRoZSByZXF1aXJlZCBpbnB1dCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlFcXVhbHNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlByb3BlcnR5RXF1YWxzVGFnLmh0bWwiPklmUHJvcGVydHlFcXVhbHNUYWc8L0E+Cis8REQ+Q29uZGl0aW9uYWxseSBldmFsdWF0ZSB0aGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZkF0dHJpYnV0ZUV4aXN0c1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmQXR0cmlidXRlRXhpc3RzVGFnLmh0bWwiPklmQXR0cmlidXRlRXhpc3RzVGFnPC9BPgorPEREPkNvbmRpdGlvbmFsbHkgZXZhbHVhdGUgdGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5Db25zdHJ1Y3QgYW4gaXRlcmF0b3IgZm9yIHRoZSBzcGVjaWZpZWQgY29sbGVjdGlvbiwgYW5kIGJlZ2luCisgbG9vcGluZyB0aHJvdWdoIHRoZSBib2R5IG9uY2UgcGVyIGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlOb3RFcXVhbHNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlByb3BlcnR5Tm90RXF1YWxzVGFnLmh0bWwiPklmUHJvcGVydHlOb3RFcXVhbHNUYWc8L0E+Cis8REQ+Q29uZGl0aW9uYWxseSBldmFsdWF0ZSB0aGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TZWxlY3RUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlJlbmRlciB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW5jb2RlVVJMVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW5jb2RlVVJMVGFnLmh0bWwiPkVuY29kZVVSTFRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj5IZWFkZXJUYWc8L0E+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPlJldHJpZXZlIHRoZSByZXF1aXJlZCBwcm9wZXJ0eSBhbmQgZXhwb3NlIGl0IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPlJldHJpZXZlIHRoZSByZXF1aXJlZCBwcm9wZXJ0eSBhbmQgZXhwb3NlIGl0IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+Q29va2llVGFnPC9BPgorPEREPlJldHJpZXZlIHRoZSByZXF1aXJlZCBwcm9wZXJ0eSBhbmQgZXhwb3NlIGl0IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+UGFyYW1ldGVyVGFnPC9BPgorPEREPlJldHJpZXZlIHRoZSByZXF1aXJlZCBwcm9wZXJ0eSBhbmQgZXhwb3NlIGl0IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPlJlc291cmNlVGFnPC9BPgorPEREPlJldHJpZXZlIHRoZSByZXF1aXJlZCBwcm9wZXJ0eSBhbmQgZXhwb3NlIGl0IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPkRlZmluZSB0aGUgY29udGVudHMgcmV0dXJuZWQgZm9yIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UgYXMgYQorIHBhZ2Ugc2NvcGUgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+U3RydXRzVGFnPC9BPgorPEREPlJldHJpZXZlIHRoZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIG9iamVjdCBhbmQgZXhwb3NlIGl0IGFzIGEKKyBzY3JpcHRpbmcgdmFyaWFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPlBhZ2VUYWc8L0E+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGFuZCBleHBvc2UgaXQgYXMgYQorIHNjcmlwdGluZyB2YXJpYWJsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPkh0bWxUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+UmVuZGVyIHRoZSBiZWdpbm5pbmcgb2YgdGhlIElNRyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+Cis8REQ+R2VuZXJhdGUgdGhlIHJlcXVpcmVkIGlucHV0IHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD5HZW5lcmF0ZSB0aGUgcmVxdWlyZWQgaW5wdXQgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPgorPEREPlJlbmRlciB0aGUgc3BlY2lmaWVkIGVycm9yIG1lc3NhZ2VzIGlmIHRoZXJlIGFyZSBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlJlbmRlciB0aGUgYmVnaW5uaW5nIG9mIHRoZSBoeXBlcmxpbmsuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwiPlJld3JpdGVUYWc8L0E+Cis8REQ+UmVuZGVyIHRoZSBhcHByb3ByaWF0ZWx5IGVuY29kZWQgVVJJLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlJlbmRlciB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj5DaGVja2JveFRhZzwvQT4KKzxERD5HZW5lcmF0ZSB0aGUgcmVxdWlyZWQgaW5wdXQgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJlbmRlciB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj5UZXh0YXJlYVRhZzwvQT4KKzxERD5HZW5lcmF0ZSB0aGUgcmVxdWlyZWQgaW5wdXQgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPlBlcmZvcm0gdGhlIHRlc3QgcmVxdWlyZWQgZm9yIHRoaXMgcGFydGljdWxhciB0YWcsIGFuZCBlaXRoZXIgZXZhbHVhdGUKKyBvciBza2lwIHRoZSBib2R5IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPkNvbnN0cnVjdCBhbiBpdGVyYXRvciBmb3IgdGhlIHNwZWNpZmllZCBjb2xsZWN0aW9uLCBhbmQgYmVnaW4KKyBsb29waW5nIHRocm91Z2ggdGhlIGJvZHkgb25jZSBwZXIgZWxlbWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCI+Rm9yd2FyZFRhZzwvQT4KKzxERD5EZWZlciBwcm9jZXNzaW5nIHVudGlsIHRoZSBlbmQgb2YgdGhpcyB0YWcgaXMgZW5jb3VudGVyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+RGVmZXIgZ2VuZXJhdGlvbiB1bnRpbCB0aGUgZW5kIG9mIHRoaXMgdGFnIGlzIGVuY291bnRlcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCI+R2V0VGFnPC9BPgorPEREPlByaW50IGNvbnRlbnQgbmFtZWQgYnkgc2V0TmFtZSgpIG9yIGluY2x1ZGUgaXQsIGRlcGVuZGluZworIG9uIHRoZSBjb250ZW50J3MgZGlyZWN0IGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCB0YWcgYnkgcHVzaGluZyB0aGlzIHRhZydzIG1hcCBvbnRvIHRoZQorIGNvbnRlbnQgbWFwIHN0YWNrLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0RPVUJMRV9DT01QQVJFIj48Qj5ET1VCTEVfQ09NUEFSRTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT4KKzxERD5XZSB3aWxsIGRvIGEgZG91YmxlL2Zsb2F0IGNvbXBhcmlzb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2RyaXZlciI+PEI+ZHJpdmVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD5UaGUgSkRCQyBkcml2ZXIgdGhhdCB3ZSB1c2UgYXMgYSBjb25uZWN0aW9uIGZhY3RvcnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2RyaXZlckNsYXNzIj48Qj5kcml2ZXJDbGFzczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+VGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgSkRCQyBkcml2ZXIgdG8gdXNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjZHRkcyI+PEI+ZHRkczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5UaGUgVVJMcyBvZiBEVERzIHRoYXQgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQsIGtleWVkIGJ5IHRoZSBwdWJsaWMKKyBpZGVudGlmaWVyIHRoYXQgY29ycmVzcG9uZHMuCis8L0RMPgorPEhSPgorPEEgTkFNRT0iX0VfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5FPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sI2VtcHR5KCkiPjxCPmVtcHR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4KKzxERD5SZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgYXJlIG5vIGVycm9yIG1lc3NhZ2VzIHJlY29yZGVkCisgaW4gdGhpcyBjb2xsZWN0aW9uLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gb3RoZXJ3aXNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sI2VtcHR5KCkiPjxCPmVtcHR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwiPkFycmF5U3RhY2s8L0E+Cis8REQ+UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgc3RhY2sgaXMgY3VycmVudGx5IGVtcHR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbmNvZGVSZWRpcmVjdFVSTFRhZy5odG1sIj48Qj5FbmNvZGVSZWRpcmVjdFVSTFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbmNvZGVSZWRpcmVjdFVSTFRhZy5odG1sIj5FbmNvZGVSZWRpcmVjdFVSTFRhZzwvQT4uPEREPkN1c3RvbSB0YWcgaW1wbGVtZW50YXRpb24gdGhhdCBhY3RzIGxpa2UKKyA8Y29kZT4mbHQ7anNwOmdldFByb3BlcnR5Jmd0OzwvY29kZT4gYnV0IGVuY29kZXMgdGhlIG91dHB1dCBzdHJlYW0gc28gdGhhdAorIEhUTUwtcmVsYXRlZCBjaGFyYWN0ZXJzIGRvIG5vdCBjYXVzZSBkaWZmaWN1bHRpZXMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbmNvZGVSZWRpcmVjdFVSTFRhZy5odG1sI0VuY29kZVJlZGlyZWN0VVJMVGFnKCkiPjxCPkVuY29kZVJlZGlyZWN0VVJMVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW5jb2RlUmVkaXJlY3RVUkxUYWcuaHRtbCI+RW5jb2RlUmVkaXJlY3RVUkxUYWc8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbmNvZGVVUkxUYWcuaHRtbCI+PEI+RW5jb2RlVVJMVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VuY29kZVVSTFRhZy5odG1sIj5FbmNvZGVVUkxUYWc8L0E+LjxERD5DdXN0b20gdGFnIGltcGxlbWVudGF0aW9uIHRoYXQgYWN0cyBsaWtlCisgPGNvZGU+Jmx0O2pzcDpnZXRQcm9wZXJ0eSZndDs8L2NvZGU+IGJ1dCBlbmNvZGVzIHRoZSBvdXRwdXQgc3RyZWFtIHNvIHRoYXQKKyBIVE1MLXJlbGF0ZWQgY2hhcmFjdGVycyBkbyBub3QgY2F1c2UgZGlmZmljdWx0aWVzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW5jb2RlVVJMVGFnLmh0bWwjRW5jb2RlVVJMVGFnKCkiPjxCPkVuY29kZVVSTFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VuY29kZVVSTFRhZy5odG1sIj5FbmNvZGVVUkxUYWc8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI2VuY291bnRlcmVkRmluYWxCb3VuZGFyeSgpIj48Qj5lbmNvdW50ZXJlZEZpbmFsQm91bmRhcnkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sI2VuY3R5cGUiPjxCPmVuY3R5cGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIGNvbnRlbnQgZW5jb2RpbmcgdG8gYmUgdXNlZCBvbiBhIFBPU1Qgc3VibWl0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNlbmN0eXBlIj48Qj5lbmN0eXBlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5UaGUgY29udGVudCBlbmNvZGluZyB0byBiZSB1c2VkIG9uIGEgUE9TVCBzdWJtaXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2VuZCgpIj48Qj5lbmQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj5SdWxlPC9BPgorPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIHRoZSBlbmQgb2YgYSBtYXRjaGluZyBYTUwgZWxlbWVudAorIGlzIGVuY291bnRlcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbCNlbmQoKSI+PEI+ZW5kKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbCI+T2JqZWN0Q3JlYXRlUnVsZTwvQT4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFRvcFJ1bGUuaHRtbCNlbmQoKSI+PEI+ZW5kKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFRvcFJ1bGUuaHRtbCI+U2V0VG9wUnVsZTwvQT4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldE5leHRSdWxlLmh0bWwjZW5kKCkiPjxCPmVuZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXROZXh0UnVsZS5odG1sIj5TZXROZXh0UnVsZTwvQT4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxQYXJhbVJ1bGUuaHRtbCNlbmQoKSI+PEI+ZW5kKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxQYXJhbVJ1bGUuaHRtbCI+Q2FsbFBhcmFtUnVsZTwvQT4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwjZW5kKCkiPjxCPmVuZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsTWV0aG9kUnVsZS5odG1sIj5DYWxsTWV0aG9kUnVsZTwvQT4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjZW5kRG9jdW1lbnQoKSI+PEI+ZW5kRG9jdW1lbnQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+UHJvY2VzcyBub3RpZmljYXRpb24gb2YgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgYmVpbmcgcmVhY2hlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2VuZEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZykiPjxCPmVuZEVsZW1lbnQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+UHJvY2VzcyBub3RpZmljYXRpb24gb2YgdGhlIGVuZCBvZiBhbiBYTUwgZWxlbWVudCBiZWluZyByZWFjaGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2Vuc3VyZUNhcGFjaXR5KGludCkiPjxCPmVuc3VyZUNhcGFjaXR5KGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7SW5jcmVhc2UgdGhlIGNhcGFjaXR5IG9mIHRoaXMgPGNvZGU+QXJyYXlMaXN0PC9jb2RlPiBpbnN0YW5jZSwgaWYKKyBuZWNlc3NhcnksIHRvIGVuc3VyZSB0aGF0IGl0IGNhbiBob2xkIGF0IGxlYXN0IHRoZSBudW1iZXIgb2YgZWxlbWVudHMKKyBzcGVjaWZpZWQgYnkgdGhlIG1pbmltdW0gY2FwYWNpdHkgYXJndW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sI2VudHJ5U2V0KCkiPjxCPmVudHJ5U2V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sIj5GYXN0SGFzaE1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gYSBjb2xsZWN0aW9uIHZpZXcgb2YgdGhlIG1hcHBpbmdzIGNvbnRhaW5lZCBpbiB0aGlzIG1hcC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjZW50cnlTZXQoKSI+PEI+ZW50cnlTZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwiPkZhc3RUcmVlTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhIGNvbGxlY3Rpb24gdmlldyBvZiB0aGUgbWFwcGluZ3MgY29udGFpbmVkIGluIHRoaXMgbWFwLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwjZW51bSI+PEI+ZW51bTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwiPkl0ZXJhdG9yQWRhcHRlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwiPjxCPkVudW1lcmF0ZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCI+RW51bWVyYXRlVGFnPC9BPi48REQ+Q3VzdG9tIHRhZyB0aGF0IGVudW1lcmF0ZXMgdGhlIGVsZW1lbnRzIG9mIGEgY29sbGVjdGlvbiwgd2hpY2ggY2FuIGJlCisgZWl0aGVyIGFuIGF0dHJpYnV0ZSBvciB0aGUgcHJvcGVydHkgb2YgYW4gYXR0cmlidXRlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwjRW51bWVyYXRlVGFnKCkiPjxCPkVudW1lcmF0ZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sIj5FbnVtZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRlaS5odG1sIj48Qj5FbnVtZXJhdGVUZWk8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGVpLmh0bWwiPkVudW1lcmF0ZVRlaTwvQT4uPEREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5lbnVtZXJhdGU8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUZWkuaHRtbCNFbnVtZXJhdGVUZWkoKSI+PEI+RW51bWVyYXRlVGVpKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGVpLmh0bWwiPkVudW1lcmF0ZVRlaTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwjZW51bWVyYXRpb24iPjxCPmVudW1lcmF0aW9uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwiPkVudW1lcmF0ZVRhZzwvQT4KKzxERD5FbnVtZXJhdGlvbiBvZiB0aGUgZWxlbWVudHMgb2YgdGhpcyBjb2xsZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2VxdWFscyhieXRlW10sIGludCwgaW50LCBieXRlW10pIj48Qj5lcXVhbHMoYnl0ZVtdLCBpbnQsIGludCwgYnl0ZVtdKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+Q2hlY2tzIGJ5dGVzIGZvciBlcXVhbGl0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjZXF1YWxzKGphdmEubGFuZy5PYmplY3QpIj48Qj5lcXVhbHMoT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbXBhcmUgdGhlIHNwZWNpZmllZCBvYmplY3Qgd2l0aCB0aGlzIGxpc3QgZm9yIGVxdWFsaXR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2VxdWFscyhqYXZhLmxhbmcuT2JqZWN0KSI+PEI+ZXF1YWxzKE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29tcGFyZSB0aGUgc3BlY2lmaWVkIG9iamVjdCB3aXRoIHRoaXMgbGlzdCBmb3IgZXF1YWxpdHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2VxdWFscyhqYXZhLmxhbmcuT2JqZWN0KSI+PEI+ZXF1YWxzKE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIj5GYXN0VHJlZU1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb21wYXJlIHRoZSBzcGVjaWZpZWQgb2JqZWN0IHdpdGggdGhpcyBsaXN0IGZvciBlcXVhbGl0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbCI+PEI+RXF1YWxUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbCI+RXF1YWxUYWc8L0E+LjxERD5FdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgYW5kIHZhbHVlIGFyZSBlcXVhbC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwjRXF1YWxUYWcoKSI+PEI+RXF1YWxUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIj5FcXVhbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjZXJyb3IiPjxCPmVycm9yPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5UaGUgZXJyb3Igc3RhdGUgZm9yIHRoaXMgc3RyZWFtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFUlJPUl9LRVkiPjxCPkVSUk9SX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHlvdXIgYWN0aW9uIHNob3VsZCBzdG9yZSBhbgorIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCwgaWYgeW91CisgYXJlIHVzaW5nIHRoZSBjb3JyZXNwb25kaW5nIGN1c3RvbSB0YWcgbGlicmFyeSBlbGVtZW50cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2Vycm9yKG9yZy54bWwuc2F4LlNBWFBhcnNlRXhjZXB0aW9uKSI+PEI+ZXJyb3IoU0FYUGFyc2VFeGNlcHRpb24pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5Gb3J3YXJkIG5vdGlmaWNhdGlvbiBvZiBhIHBhcnNpbmcgZXJyb3IgdG8gdGhlIGFwcGxpY2F0aW9uIHN1cHBsaWVkCisgZXJyb3IgaGFuZGxlciAoaWYgYW55KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2Vycm9ySGFuZGxlciI+PEI+ZXJyb3JIYW5kbGVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPlRoZSBhcHBsaWNhdGlvbi1zdXBwbGllZCBlcnJvciBoYW5kbGVyIHRoYXQgaXMgbm90aWZpZWQgd2hlbiBwYXJzaW5nCisgd2FybmluZ3MsIGVycm9ycywgb3IgZmF0YWwgZXJyb3JzIG9jY3VyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sIj48Qj5FcnJvck1lc3NhZ2VzPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sIj5FcnJvck1lc3NhZ2VzPC9BPi48REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMgaW5zdGVhZDwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwjRXJyb3JNZXNzYWdlcygpIj48Qj5FcnJvck1lc3NhZ2VzKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwiPkVycm9yTWVzc2FnZXM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sI2Vycm9ycyI+PEI+ZXJyb3JzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4KKzxERD5UaGUgYWNjdW11bGF0ZWQgc2V0IG9mIDxjb2RlPkFjdGlvbkVycm9yPC9jb2RlPiBvYmplY3RzIChyZXByZXNlbnRlZAorIGFzIGFuIEFycmF5TGlzdCkgZm9yIGVhY2ggcHJvcGVydHksIGtleWVkIGJ5IHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwjZXJyb3JzIj48Qj5lcnJvcnM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbCI+RXJyb3JNZXNzYWdlczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgYWNjdW11bGF0ZWQgc2V0IG9mIGVycm9yIG1lc3NhZ2Uga2V5cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRXJyb3JzVGFnLmh0bWwiPjxCPkVycm9yc1RhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPi48REQ+Q3VzdG9tIHRhZyB0aGF0IHJlbmRlcnMgZXJyb3IgbWVzc2FnZXMgaWYgYW4gYXBwcm9wcmlhdGUgcmVxdWVzdCBhdHRyaWJ1dGUKKyBoYXMgYmVlbiBjcmVhdGVkLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+PEI+RXJyb3JzVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPi48REQ+Q3VzdG9tIHRhZyB0aGF0IHJlbmRlcnMgZXJyb3IgbWVzc2FnZXMgaWYgYW4gYXBwcm9wcmlhdGUgcmVxdWVzdCBhdHRyaWJ1dGUKKyBoYXMgYmVlbiBjcmVhdGVkLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRXJyb3JzVGFnLmh0bWwjRXJyb3JzVGFnKCkiPjxCPkVycm9yc1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjRXJyb3JzVGFnKCkiPjxCPkVycm9yc1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFWENFUFRJT05fS0VZIj48Qj5FWENFUFRJT05fS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+VGhlIHJlcXVlc3QgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggU3RydXRzIGN1c3RvbSB0YWdzIG1pZ2h0IHN0b3JlIGEKKyA8Y29kZT5UaHJvd2FibGU8L2NvZGU+IHRoYXQgY2F1c2VkIHRoZW0gdG8gcmVwb3J0IGEgSnNwRXhjZXB0aW9uIGF0CisgcnVudGltZS4KKzwvREw+Cis8SFI+Cis8QSBOQU1FPSJfRl8iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPkY8L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNmYWN0b3J5Ij48Qj5mYWN0b3J5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+VGhlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiB0aGF0IGNyZWF0ZWQgdGhpcyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ZhY3RvcnlDbGFzcyI+PEI+ZmFjdG9yeUNsYXNzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPgorIGNsYXNzIGZvciB0aGUgYXBwbGljYXRpb24gbWVzc2FnZSByZXNvdXJjZXMgYnVuZGxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNmYWN0b3J5Q2xhc3MiPjxCPmZhY3RvcnlDbGFzczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPgorPEREPlRoZSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSB0byBiZSB1c2VkIGZvcgorIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sI2Zhc3QiPjxCPmZhc3Q8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0FyZSB3ZSBvcGVyYXRpbmcgaW4gImZhc3QiIG1vZGU/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjZmFzdCI+PEI+ZmFzdDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sIj5GYXN0QXJyYXlMaXN0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0FyZSB3ZSBvcGVyYXRpbmcgaW4gImZhc3QiIG1vZGU/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2Zhc3QiPjxCPmZhc3Q8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwiPkZhc3RUcmVlTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0FyZSB3ZSBvcGVyYXRpbmcgaW4gImZhc3QiIG1vZGU/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPjxCPkZhc3RBcnJheUxpc3Q8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+LjxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BdCBzb21lIHBvaW50IGFmdGVyIFN0cnV0cyAxLjAgZmluYWwsIHdpbGwgYmUgcmVwbGFjZWQgYnkKKyAgYW4gZXF1aXZhbGVudCBjbGFzcyBpbiB0aGUgSmFrYXJ0YSBDb21tb25zIENvbGxlY3Rpb25zIHBhY2thZ2UuPC9JPjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNGYXN0QXJyYXlMaXN0KCkiPjxCPkZhc3RBcnJheUxpc3QoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCI+RmFzdEFycmF5TGlzdDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb25zdHJ1Y3QgYSBhbiBlbXB0eSBsaXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI0Zhc3RBcnJheUxpc3QoamF2YS51dGlsLkNvbGxlY3Rpb24pIj48Qj5GYXN0QXJyYXlMaXN0KENvbGxlY3Rpb24pPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sIj5GYXN0QXJyYXlMaXN0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhIGxpc3QgY29udGFpbmluZyB0aGUgZWxlbWVudHMgb2YgdGhlIHNwZWNpZmllZCBjb2xsZWN0aW9uLAorIGluIHRoZSBvcmRlciB0aGV5IGFyZSByZXR1cm5lZCBieSB0aGUgY29sbGVjdGlvbidzIGl0ZXJhdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI0Zhc3RBcnJheUxpc3QoaW50KSI+PEI+RmFzdEFycmF5TGlzdChpbnQpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sIj5GYXN0QXJyYXlMaXN0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhbiBlbXB0eSBsaXN0IHdpdGggdGhlIHNwZWNpZmllZCBjYXBhY2l0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPjxCPkZhc3RIYXNoTWFwPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+RmFzdEhhc2hNYXA8L0E+LjxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BdCBzb21lIHBvaW50IGFmdGVyIFN0cnV0cyAxLjAgZmluYWwsIHdpbGwgYmUgcmVwbGFjZWQgYnkKKyAgYW4gZXF1aXZhbGVudCBjbGFzcyBpbiB0aGUgSmFrYXJ0YSBDb21tb25zIENvbGxlY3Rpb25zIHBhY2thZ2UuPC9JPjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjRmFzdEhhc2hNYXAoKSI+PEI+RmFzdEhhc2hNYXAoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhIGFuIGVtcHR5IG1hcC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjRmFzdEhhc2hNYXAoaW50KSI+PEI+RmFzdEhhc2hNYXAoaW50KTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhbiBlbXB0eSBtYXAgd2l0aCB0aGUgc3BlY2lmaWVkIGNhcGFjaXR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCNGYXN0SGFzaE1hcChpbnQsIGZsb2F0KSI+PEI+RmFzdEhhc2hNYXAoaW50LCBmbG9hdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sIj5GYXN0SGFzaE1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb25zdHJ1Y3QgYW4gZW1wdHkgbWFwIHdpdGggdGhlIHNwZWNpZmllZCBjYXBhY2l0eSBhbmQgbG9hZCBmYWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sI0Zhc3RIYXNoTWFwKGphdmEudXRpbC5NYXApIj48Qj5GYXN0SGFzaE1hcChNYXApPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+RmFzdEhhc2hNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29uc3RydWN0IGEgbmV3IG1hcCB3aXRoIHRoZSBzYW1lIG1hcHBpbmdzIGFzIHRoZSBzcGVjaWZpZWQgbWFwLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCI+PEI+RmFzdFRyZWVNYXA8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIj5GYXN0VHJlZU1hcDwvQT4uPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkF0IHNvbWUgcG9pbnQgYWZ0ZXIgU3RydXRzIDEuMCBmaW5hbCwgd2lsbCBiZSByZXBsYWNlZCBieQorICBhbiBlcXVpdmFsZW50IGNsYXNzIGluIHRoZSBKYWthcnRhIENvbW1vbnMgQ29sbGVjdGlvbnMgcGFja2FnZS48L0k+PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCNGYXN0VHJlZU1hcCgpIj48Qj5GYXN0VHJlZU1hcCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCI+RmFzdFRyZWVNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29uc3RydWN0IGEgYW4gZW1wdHkgbWFwLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCNGYXN0VHJlZU1hcChqYXZhLnV0aWwuQ29tcGFyYXRvcikiPjxCPkZhc3RUcmVlTWFwKENvbXBhcmF0b3IpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCI+RmFzdFRyZWVNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29uc3RydWN0IGFuIGVtcHR5IG1hcCB3aXRoIHRoZSBzcGVjaWZpZWQgY29tcGFyYXRvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjRmFzdFRyZWVNYXAoamF2YS51dGlsLk1hcCkiPjxCPkZhc3RUcmVlTWFwKE1hcCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIj5GYXN0VHJlZU1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb25zdHJ1Y3QgYSBuZXcgbWFwIHdpdGggdGhlIHNhbWUgbWFwcGluZ3MgYXMgdGhlIHNwZWNpZmllZCBtYXAsCisgc29ydGVkIGFjY29yZGluZyB0byB0aGUga2V5cydzIG5hdHVyYWwgb3JkZXIKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjRmFzdFRyZWVNYXAoamF2YS51dGlsLlNvcnRlZE1hcCkiPjxCPkZhc3RUcmVlTWFwKFNvcnRlZE1hcCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIj5GYXN0VHJlZU1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb25zdHJ1Y3QgYSBuZXcgbWFwIHdpdGggdGhlIHNhbWUgbWFwcGluZ3MgYXMgdGhlIHNwZWNpZmllZCBtYXAsCisgc29ydGVkIGFjY29yZGluZyB0byB0aGUgc2FtZSBvcmRlcmluZworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjZmF0YWxFcnJvcihvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbikiPjxCPmZhdGFsRXJyb3IoU0FYUGFyc2VFeGNlcHRpb24pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5Gb3J3YXJkIG5vdGlmaWNhdGlvbiBvZiBhIGZhdGFsIHBhcnNpbmcgZXJyb3IgdG8gdGhlIGFwcGxpY2F0aW9uCisgc3VwcGxpZWQgZXJyb3IgaGFuZGxlciAoaWYgYW55KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2ZpbGUiPjxCPmZpbGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+VGhlIGVsZW1lbnQncyBkYXRhIHJlcHJlc2VudGVkIGluIGEgKHBvc3NpYmx5IHRlbXBvcmFyeSkgZmlsZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNmaWxlRWxlbWVudHMiPjxCPmZpbGVFbGVtZW50czwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+QSBIYXNodGFibGUgcmVwcmVzZW50aW5nIHRoZSBmb3JtIGZpbGVzIHVwbG9hZGVkCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjZmlsZU5hbWUiPjxCPmZpbGVOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGZpbGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2ZpbGVOYW1lIj48Qj5maWxlTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD5UaGUgZWxlbWVudCdzIGZpbGVuYW1lLCBudWxsIGZvciB0ZXh0IGVsZW1lbnRzCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjZmlsZVBhdGgiPjxCPmZpbGVQYXRoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+VGhlIGZpbGVwYXRoIHRvIHRoZSB0ZW1wb3JhcnkgZmlsZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2ZpbGVTaXplIj48Qj5maWxlU2l6ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPkRpc2tGaWxlPC9BPgorPEREPlRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBmaWxlCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0ZpbGVUYWcuaHRtbCI+PEI+RmlsZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9GaWxlVGFnLmh0bWwiPkZpbGVUYWc8L0E+LjxERD5DdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiZmlsZSIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZpbGVUYWcuaHRtbCI+PEI+RmlsZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sIj5GaWxlVGFnPC9BPi48REQ+Q3VzdG9tIHRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImZpbGUiLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRmlsZVRhZy5odG1sI0ZpbGVUYWcoKSI+PEI+RmlsZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0ZpbGVUYWcuaHRtbCI+RmlsZVRhZzwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sI0ZpbGVUYWcoKSI+PEI+RmlsZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwiPkZpbGVUYWc8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjZmlsbCgpIj48Qj5maWxsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPkZpbGxzIHRoZSBidWZmZXIgd2l0aCBkYXRhIGZyb20gdGhlIHVuZGVybHlpbmcgaW5wdXRTdHJlYW0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNmaWx0ZXIiPjxCPmZpbHRlcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD5GaWx0ZXIgdGhlIHJlbmRlcmVkIG91dHB1dCBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBzZW5zaXRpdmUgaW4gSFRNTD8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCNmaWx0ZXIoamF2YS5sYW5nLlN0cmluZykiPjxCPmZpbHRlcihTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCI+UmVzcG9uc2VVdGlsczwvQT4KKzxERD5GaWx0ZXIgdGhlIHNwZWNpZmllZCBzdHJpbmcgZm9yIGNoYXJhY3RlcnMgdGhhdCBhcmUgc2Vuc3RpdmUgdG8KKyBIVE1MIGludGVycHJldGVycywgcmV0dXJuaW5nIHRoZSBzdHJpbmcgd2l0aCB0aGVzZSBjaGFyYWN0ZXJzIHJlcGxhY2VkCisgYnkgdGhlIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVyIGVudGl0aWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI2ZpbmFsQm91bmRhcnlSZWFjaGVkIj48Qj5maW5hbEJvdW5kYXJ5UmVhY2hlZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwiPk11bHRpcGFydFZhbHVlU3RyZWFtPC9BPgorPEREPmlzIHRoZSBib3VuZGFyeSBmb3VuZCBhIGZpbmFsIGJvdW5kYXJ5PworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZmluZERhdGFTb3VyY2UoamF2YS5sYW5nLlN0cmluZykiPjxCPmZpbmREYXRhU291cmNlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlJldHVybiBhIEpEQkMgZGF0YSBzb3VyY2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYXBwbGljYXRpb24sIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ZpbmRGb3JtQmVhbihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+ZmluZEZvcm1CZWFuKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlJldHVybiB0aGUgZm9ybSBiZWFuIGRlZmluaXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQKKyBsb2dpY2FsIG5hbWUsIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwjZmluZEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kRm9ybUJlYW4oU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCI+QWN0aW9uRm9ybUJlYW5zPC9BPgorPEREPlJldHVybiB0aGUgZm9ybUJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwjZmluZEZvcm1CZWFucygpIj48Qj5maW5kRm9ybUJlYW5zKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPkFjdGlvbkZvcm1CZWFuczwvQT4KKzxERD5SZXR1cm4gdGhlIHNldCBvZiBuYW1lcyBmb3IgZm9ybSBiZWFucyBkZWZpbmVkIGluIHRoaXMgY29sbGVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2ZpbmRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kRm9yd2FyZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5SZXR1cm4gdGhlIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ZpbmRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kRm9yd2FyZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5SZXR1cm4gdGhlIGZvcndhcmRpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNmaW5kRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+ZmluZEZvcndhcmQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT4KKzxERD5SZXR1cm4gdGhlIGZvcndhcmRpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2ZpbmRGb3J3YXJkcygpIj48Qj5maW5kRm9yd2FyZHMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+UmV0dXJuIHRoZSBsb2dpY2FsIG5hbWVzIG9mIGFsbCBsb2NhbGx5IGRlZmluZWQgZm9yd2FyZHMgZm9yIHRoaXMKKyBtYXBwaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sI2ZpbmRGb3J3YXJkcygpIj48Qj5maW5kRm9yd2FyZHMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT4KKzxERD5SZXR1cm4gdGhlIHNldCBvZiBsb2dpY2FsIG5hbWVzIGZvciBmb3J3YXJkcyBkZWZpbmVkIGluIHRoaXMgY29sbGVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ZpbmRNYXBwaW5nKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kTWFwcGluZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5SZXR1cm4gdGhlIG1hcHBpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXRoLCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNmaW5kTWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+ZmluZE1hcHBpbmcoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5BY3Rpb25NYXBwaW5nczwvQT4KKzxERD5SZXR1cm4gdGhlIG1hcHBpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNmaW5kTWFwcGluZ3MoKSI+PEI+ZmluZE1hcHBpbmdzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+Cis8REQ+UmV0dXJuIHRoZSBzZXQgb2YgcGF0aHMgZm9yIG1hcHBpbmdzIGRlZmluZWQgaW4gdGhpcyBjb2xsZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCNmaW5pc2goKSI+PEI+ZmluaXNoKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT4KKzxERD5UaGlzIG1ldGhvZCBpcyBjYWxsZWQgYWZ0ZXIgYWxsIHBhcnNpbmcgbWV0aG9kcyBoYXZlIGJlZW4KKyBjYWxsZWQsIHRvIGFsbG93IFJ1bGVzIHRvIHJlbW92ZSB0ZW1wb3JhcnkgZGF0YS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9PYmplY3RDcmVhdGVSdWxlLmh0bWwjZmluaXNoKCkiPjxCPmZpbmlzaCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9PYmplY3RDcmVhdGVSdWxlLmh0bWwiPk9iamVjdENyZWF0ZVJ1bGU8L0E+Cis8REQ+Q2xlYW4gdXAgYWZ0ZXIgcGFyc2luZyBpcyBjb21wbGV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRUb3BSdWxlLmh0bWwjZmluaXNoKCkiPjxCPmZpbmlzaCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRUb3BSdWxlLmh0bWwiPlNldFRvcFJ1bGU8L0E+Cis8REQ+Q2xlYW4gdXAgYWZ0ZXIgcGFyc2luZyBpcyBjb21wbGV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXROZXh0UnVsZS5odG1sI2ZpbmlzaCgpIj48Qj5maW5pc2goKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0TmV4dFJ1bGUuaHRtbCI+U2V0TmV4dFJ1bGU8L0E+Cis8REQ+Q2xlYW4gdXAgYWZ0ZXIgcGFyc2luZyBpcyBjb21wbGV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsUGFyYW1SdWxlLmh0bWwjZmluaXNoKCkiPjxCPmZpbmlzaCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsUGFyYW1SdWxlLmh0bWwiPkNhbGxQYXJhbVJ1bGU8L0E+Cis8REQ+Q2xlYW4gdXAgYWZ0ZXIgcGFyc2luZyBpcyBjb21wbGV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsTWV0aG9kUnVsZS5odG1sI2ZpbmlzaCgpIj48Qj5maW5pc2goKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbE1ldGhvZFJ1bGUuaHRtbCI+Q2FsbE1ldGhvZFJ1bGU8L0E+Cis8REQ+Q2xlYW4gdXAgYWZ0ZXIgcGFyc2luZyBpcyBjb21wbGV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNmaW5pc2goKSI+PEI+ZmluaXNoKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB3aGVuIGEgc3VjY2Vzc2Z1bCBmb3JtIHBvc3QKKyBoYXMgYmVlbiBtYWRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNmaW5pc2goKSI+PEI+ZmluaXNoKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5DYWxscyBvbiA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjcm9sbGJhY2soKSI+PENPREU+cm9sbGJhY2soKTwvQ09ERT48L0E+IHRvIGRlbGV0ZQorIHRlbXBvcmFyeSBmaWxlcworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCNmaXJzdEtleSgpIj48Qj5maXJzdEtleSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCI+RmFzdFRyZWVNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBmaXJzdCAobG93ZXN0KSBrZXkgY3VycmVudGx5IGluIHRoaXMgc29ydGVkIG1hcC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjZmx1c2giPjxCPmZsdXNoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwiPkdldFRhZzwvQT4KKzxERD5TaG91bGQgd2UgZmx1c2ggYmVmb3JlIGluY2x1ZGluZyB0aGlzIHRleHQ/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI2ZsdXNoKCkiPjxCPmZsdXNoKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5GbHVzaCB0aGUgc3RyZWFtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjZm9jdXMiPjxCPmZvY3VzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBmaWVsZCB0byByZWNlaXZlIGZvY3VzLCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2ZvY3VzIj48Qj5mb2N1czwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGZpZWxkIHRvIHJlY2VpdmUgZm9jdXMsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9STV9CRUFOU19LRVkiPjxCPkZPUk1fQkVBTlNfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuczwvY29kZT4gY29sbGVjdGlvbgorIGlzIG5vcm1hbGx5IHN0b3JlZCwgdW5sZXNzIG92ZXJyaWRkZW4gd2hlbiBpbml0aWFsaXppbmcgb3VyCisgQWN0aW9uU2VydmxldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ29uc3RhbnRzLmh0bWwjRk9STV9LRVkiPjxCPkZPUk1fS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NvbnN0YW50cy5odG1sIj5Db25zdGFudHM8L0E+Cis8REQ+VGhlIGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBmb3JtIHRhZyBpdHNlbGYuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwjRk9STV9LRVkiPjxCPkZPUk1fS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCI+Q29uc3RhbnRzPC9BPgorPEREPlRoZSBhdHRyaWJ1dGUga2V5IGZvciB0aGUgZm9ybSB0YWcgaXRzZWxmLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2Zvcm1hdHMiPjxCPmZvcm1hdHM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5UaGUgc2V0IG9mIHByZXZpb3VzbHkgY3JlYXRlZCBNZXNzYWdlRm9ybWF0IG9iamVjdHMsIGtleWVkIGJ5IHRoZQorIGtleSBjb21wdXRlZCBpbiA8Y29kZT5tZXNzYWdlS2V5KCk8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2Zvcm1CZWFuIj48Qj5mb3JtQmVhbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+U3RydXRzVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb25Gb3JtQmVhbjwvY29kZT4gb2JqZWN0IHRvIGJlIGV4cG9zZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNmb3JtQmVhbkNsYXNzIj48Qj5mb3JtQmVhbkNsYXNzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIEFjdGlvbkZvcm1CZWFuIGltcGxlbWVudGF0aW9uIGNsYXNzIHRvIHVzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2Zvcm1CZWFucyI+PEI+Zm9ybUJlYW5zPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSBnbG9iYWwgQWN0aW9uRm9ybUJlYW4gY29sbGVjdGlvbiBmb3IgdGhpcyBjb250cm9sbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCNmb3JtQmVhbnMiPjxCPmZvcm1CZWFuczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj5BY3Rpb25Gb3JtQmVhbnM8L0E+Cis8REQ+VGhlIGNvbGxlY3Rpb24gb2YgQWN0aW9uRm9ybUJlYW4gaW5zdGFuY2VzLCBrZXllZCBieSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj48Qj5Gb3JtRmlsZTwvQj48L0E+IC0gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+LjxERD5UaGlzIGludGVyZmFjZSBpcyB1c2VkIHRvIGRlZmluZSBhIGZpbGUgdXBsb2FkZWQgYnkgYSBjbGllbnQuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPjxCPkZvcm1UYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPi48REQ+Q3VzdG9tIHRhZyB0aGF0IHJlcHJlc2VudHMgYW4gaW5wdXQgZm9ybSwgYXNzb2NpYXRlZCB3aXRoIGEgYmVhbiB3aG9zZQorIHByb3BlcnRpZXMgY29ycmVzcG9uZCB0byB0aGUgdmFyaW91cyBmaWVsZHMgb2YgdGhlIGZvcm0uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+PEI+Rm9ybVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPi48REQ+Q3VzdG9tIHRhZyB0aGF0IHJlcHJlc2VudHMgYW4gaW5wdXQgZm9ybSwgYXNzb2NpYXRlZCB3aXRoIGEgYmVhbiB3aG9zZQorIHByb3BlcnRpZXMgY29ycmVzcG9uZCB0byB0aGUgdmFyaW91cyBmaWVsZHMgb2YgdGhlIGZvcm0uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjRm9ybVRhZygpIj48Qj5Gb3JtVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNGb3JtVGFnKCkiPjxCPkZvcm1UYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZm9yd2FyZCI+PEI+Zm9yd2FyZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5UaGUgY29udGV4dCByZWxhdGl2ZSBwYXRoIG9mIHRoZSBzZXJ2bGV0IG9yIEpTUCByZXNvdXJjZSAodG8gYmUgY2FsbGVkCisgdmlhIDxjb2RlPlJlcXVlc3REaXNwYXRjaGVyLmZvcndhcmQoKTwvY29kZT4pIHRoYXQgd2lsbCBwcm9jZXNzIHRoaXMKKyByZXF1ZXN0LCByYXRoZXIgdGhhbiBpbnN0YW50aWF0aW5nIGFuZCBjYWxsaW5nIHRoZSBBY3Rpb24gY2xhc3MgdGhhdCBpcworIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+dHlwZTwvY29kZT4gYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwjZm9yd2FyZCI+PEI+Zm9yd2FyZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD5UaGUgbG9naWNhbCBmb3J3YXJkIG5hbWUgZnJvbSB3aGljaCB0byByZXRyaWV2ZSB0aGUgaHlwZXJsaW5rIFVSSS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCNmb3J3YXJkIj48Qj5mb3J3YXJkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCI+TGluazFUYWc8L0E+Cis8REQ+VGhlIGxvZ2ljYWwgZm9yd2FyZCBuYW1lIGZyb20gd2hpY2ggdG8gcmV0cmlldmUgdGhlIGh5cGVybGluayBVUkkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2ZvcndhcmQiPjxCPmZvcndhcmQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBnbG9iYWwgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gdGhhdCBjb250YWlucyBhCisgcGF0aCB0byBvdXIgcmVxdWVzdGVkIHJlc291cmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2ZvcndhcmQiPjxCPmZvcndhcmQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPlN0cnV0c1RhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gb2JqZWN0IHRvIGJlIGV4cG9zZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2ZvcndhcmQiPjxCPmZvcndhcmQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBsb2dpY2FsIGZvcndhcmQgbmFtZSBmcm9tIHdoaWNoIHRvIHJldHJpZXZlIHRoZSBoeXBlcmxpbmsgVVJJLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2ZvcndhcmQiPjxCPmZvcndhcmQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD5UaGUgbG9naWNhbCBmb3J3YXJkIG5hbWUgZnJvbSB3aGljaCB0byByZXRyaWV2ZSB0aGUgcmVkaXJlY3QgVVJJLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sIj48Qj5Gb3J3YXJkQWN0aW9uPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sIj5Gb3J3YXJkQWN0aW9uPC9BPi48REQ+QW4gPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBmb3J3YXJkcyB0byB0aGUgY29udGV4dC1yZWxhdGl2ZQorIFVSSSBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPnBhcmFtZXRlcjwvY29kZT4gcHJvcGVydHkgb2Ygb3VyIGFzc29jaWF0ZWQKKyA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Gb3J3YXJkQWN0aW9uLmh0bWwjRm9yd2FyZEFjdGlvbigpIj48Qj5Gb3J3YXJkQWN0aW9uKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Gb3J3YXJkQWN0aW9uLmh0bWwiPkZvcndhcmRBY3Rpb248L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNmb3J3YXJkQ2xhc3MiPjxCPmZvcndhcmRDbGFzczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5UaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBBY3Rpb25Gb3J3YXJkIGltcGxlbWVudGF0aW9uIGNsYXNzIHRvIHVzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+PEI+Rm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+Rm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0E+LjxERD5BIHN1YmNsYXNzIG9mIDxzdHJvbmc+QWN0aW9uRm9yd2FyZDwvc3Ryb25nPiB0aGF0IGRlZmF1bHRzIHRoZQorIDxjb2RlPnJlZGlyZWN0PC9jb2RlPiBhdHRyaWJ1dGUgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCNGb3J3YXJkaW5nQWN0aW9uRm9yd2FyZCgpIj48Qj5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkPC9BPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sI0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZChTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkPC9BPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgcGF0aC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2ZvcndhcmRzIj48Qj5mb3J3YXJkczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5UaGUgc2V0IG9mIEFjdGlvbkZvcndhcmQgb2JqZWN0cyBhc3NvY2lhdGVkIHdpdGggdGhpcyBtYXBwaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZm9yd2FyZHMiPjxCPmZvcndhcmRzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSBnbG9iYWwgQWN0aW9uRm9yd2FyZCBjb2xsZWN0aW9uIGZvciB0aGlzIGNvbnRyb2xsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwjZm9yd2FyZHMiPjxCPmZvcndhcmRzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+QWN0aW9uRm9yd2FyZHM8L0E+Cis8REQ+VGhlIGNvbGxlY3Rpb24gb2YgQWN0aW9uRm9yd2FyZCBpbnN0YW5jZXMsIGtleWVkIGJ5IGxvZ2ljYWwgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9SV0FSRFNfS0VZIj48Qj5GT1JXQVJEU19LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD5UaGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIKKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZHM8L2NvZGU+IGNvbGxlY3Rpb24KKyBpcyBub3JtYWxseSBzdG9yZWQsIHVubGVzcyBvdmVycmlkZGVuIHdoZW4gaW5pdGlhbGl6aW5nIG91cgorIEFjdGlvblNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0ZvcndhcmRUYWcuaHRtbCI+PEI+Rm9yd2FyZFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3J3YXJkVGFnLmh0bWwiPkZvcndhcmRUYWc8L0E+LjxERD5QZXJmb3JtIGEgZm9yd2FyZCBvciByZWRpcmVjdCB0byBhIHBhZ2UgdGhhdCBpcyBsb29rZWQgdXAgaW4gdGhlIGdsb2JhbAorIEFjdGlvbkZvcndhcmRzIGNvbGxlY3Rpb24gYXNzb2NpYXRlZCB3aXRoIG91ciBhcHBsaWNhdGlvbi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCI+PEI+Rm9yd2FyZFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwiPkZvcndhcmRUYWc8L0E+LjxERD5QZXJmb3JtIGEgZm9yd2FyZCBvciByZWRpcmVjdCB0byBhIHBhZ2UgdGhhdCBpcyBsb29rZWQgdXAgaW4gdGhlIGdsb2JhbAorIEFjdGlvbkZvcndhcmRzIGNvbGxlY3Rpb24gYXNzb2NpYXRlZCB3aXRoIG91ciBhcHBsaWNhdGlvbi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0ZvcndhcmRUYWcuaHRtbCNGb3J3YXJkVGFnKCkiPjxCPkZvcndhcmRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3J3YXJkVGFnLmh0bWwiPkZvcndhcmRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCNGb3J3YXJkVGFnKCkiPjxCPkZvcndhcmRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwiPkZvcndhcmRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8L0RMPgorPEhSPgorPEEgTkFNRT0iX0dfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5HPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dlbmVyYXRlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPmdlbmVyYXRlVG9rZW4oSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPkdlbmVyYXRlIGEgbmV3IHRyYW5zYWN0aW9uIHRva2VuLCB0byBiZSB1c2VkIGZvciBlbmZvcmNpbmcgYSBzaW5nbGUKKyByZXF1ZXN0IGZvciBhIHBhcnRpY3VsYXIgdHJhbnNhY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj48Qj5HZW5lcmljQ29ubmVjdGlvbjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPi48REQ+R2VuZXJpYyB3cmFwcGVyIGltcGxlbWVudGF0aW9uIG9mIGEgPHN0cm9uZz5Db25uZWN0aW9uPC9zdHJvbmc+IHRoYXQKKyB3b3JrcyB3aXRoIDxjb2RlPkdlbmVyaWNEYXRhU291cmNlPC9jb2RlPiB0byB3cmFwIGNvbm5lY3Rpb25zIGZvciBhbnkKKyBKREJDIGRyaXZlci48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI0dlbmVyaWNDb25uZWN0aW9uKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuR2VuZXJpY0RhdGFTb3VyY2UsIGphdmEuc3FsLkNvbm5lY3Rpb24sIGJvb2xlYW4sIGJvb2xlYW4pIj48Qj5HZW5lcmljQ29ubmVjdGlvbihHZW5lcmljRGF0YVNvdXJjZSwgQ29ubmVjdGlvbiwgYm9vbGVhbiwgYm9vbGVhbik8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgR2VuZXJpY0Nvbm5lY3Rpb24gd3JhcHBpbmcgdGhlIHNwZWNpZmllZCBjb25uZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+PEI+R2VuZXJpY0RhdGFTb3VyY2U8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4uPEREPkdlbmVyaWMgZGF0YSBzb3VyY2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIDxjb2RlPkRhdGFTb3VyY2U8L2NvZGU+CisgaW50ZXJmYWNlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjR2VuZXJpY0RhdGFTb3VyY2UoKSI+PEI+R2VuZXJpY0RhdGFTb3VyY2UoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCNnZXQoKSI+PEI+Z2V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4KKzxERD5SZXR1cm4gdGhlIHNldCBvZiBhbGwgcmVjb3JkZWQgZXJyb3IgbWVzc2FnZXMsIHdpdGhvdXQgZGlzdGluY3Rpb24KKyBieSB3aGljaCBwcm9wZXJ0eSB0aGUgbWVzc2FnZXMgYXJlIGFzc29jaWF0ZWQgd2l0aC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNnZXQoaW50KSI+PEI+Z2V0KGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBlbGVtZW50IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhlIGxpc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sI2dldChqYXZhLmxhbmcuT2JqZWN0KSI+PEI+Z2V0KE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sIj5GYXN0SGFzaE1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHZhbHVlIHRvIHdoaWNoIHRoaXMgbWFwIG1hcHMgdGhlIHNwZWNpZmllZCBrZXkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2dldChqYXZhLmxhbmcuT2JqZWN0KSI+PEI+Z2V0KE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIj5GYXN0VHJlZU1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHZhbHVlIHRvIHdoaWNoIHRoaXMgbWFwIG1hcHMgdGhlIHNwZWNpZmllZCBrZXkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sI2dldChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4KKzxERD5SZXR1cm4gdGhlIHNldCBvZiBlcnJvciBtZXNzYWdlcyByZWxhdGVkIHRvIGEgc3BlY2lmaWMgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sI2dldChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT4KKzxERD5SZXR1cm5zIHRoZSBjb250ZW50IGFzc29jaWF0ZWQgd2l0aCBuYW1lCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VGaWVsZFRhZy5odG1sI2dldEFjY2VwdCgpIj48Qj5nZXRBY2NlcHQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2dldEFjY2VwdCgpIj48Qj5nZXRBY2NlcHQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNnZXRBY2Nlc3NpYmxlTWV0aG9kKGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZCkiPjxCPmdldEFjY2Vzc2libGVNZXRob2QoTWV0aG9kKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwiPlByb3BlcnR5VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGFuIGFjY2Vzc2libGUgbWV0aG9kICh0aGF0IGlzLCBvbmUgdGhhdCBjYW4gYmUgaW52b2tlZCB2aWEKKyByZWZsZWN0aW9uKSB0aGF0IGltcGxlbWVudHMgdGhlIHNwZWNpZmllZCBNZXRob2QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjZ2V0QWNjZXNzaWJsZU1ldGhvZEZyb21JbnRlcmZhY2VOZXN0KGphdmEubGFuZy5DbGFzcywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLkNsYXNzW10pIj48Qj5nZXRBY2Nlc3NpYmxlTWV0aG9kRnJvbUludGVyZmFjZU5lc3QoQ2xhc3MsIFN0cmluZywgQ2xhc3NbXSk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhbiBhY2Nlc3NpYmxlIG1ldGhvZCAodGhhdCBpcywgb25lIHRoYXQgY2FuIGJlIGludm9rZWQgdmlhCisgcmVmbGVjdGlvbikgdGhhdCBpbXBsZW1lbnRzIHRoZSBzcGVjaWZpZWQgbWV0aG9kLCBieSBzY2FubmluZyB0aHJvdWdoCisgYWxsIGltcGxlbWVudGVkIGludGVyZmFjZXMgYW5kIHN1YmludGVyZmFjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+PEI+Z2V0QWNjZXNza2V5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIGFjY2Vzc0tleSBjaGFyYWN0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNzS2V5KCkiPjxCPmdldEFjY2Vzc0tleSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIGFjY2Vzc0tleSBjaGFyYWN0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNnZXRBY3Rpb24oKSI+PEI+Z2V0QWN0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybiB0aGUgYWN0aW9uIFVSTCB0byB3aGljaCB0aGlzIGZvcm0gc2hvdWxkIGJlIHN1Ym1pdHRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0QWN0aW9uKCkiPjxCPmdldEFjdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBhY3Rpb24gVVJMIHRvIHdoaWNoIHRoaXMgZm9ybSBzaG91bGQgYmUgc3VibWl0dGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0QWN0aW9uQ2xhc3MoKSI+PEI+Z2V0QWN0aW9uQ2xhc3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGdldFR5cGUoKSBpbnN0ZWFkPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRBY3Rpb25NYXBwaW5nTmFtZSgpIj48Qj5nZXRBY3Rpb25NYXBwaW5nTmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIGFjdGlvbiBjb252ZXJ0ZWQgaW50byBhbiBhY3Rpb24gbWFwcGluZyBwYXRoLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRBY3Rpb25NYXBwaW5nVVJMKCkiPjxCPmdldEFjdGlvbk1hcHBpbmdVUkwoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybiB0aGUgZm9ybSBhY3Rpb24gY29udmVydGVkIGludG8gYSBzZXJ2ZXItcmVsYXRpdmUgVVJMLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRBY3RpdmVDb3VudCgpIj48Qj5nZXRBY3RpdmVDb3VudCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2dldEFjdHVhbENvbnRlbnQoKSI+PEI+Z2V0QWN0dWFsQ29udGVudCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgY29udGVudCBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0QWxpZ24oKSI+PEI+Z2V0QWxpZ24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRBbGxFbGVtZW50cygpIj48Qj5nZXRBbGxFbGVtZW50cygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5UaGlzIG1ldGhvZCByZXR1cm5zIGFsbCBlbGVtZW50cyBvZiBhIG11bHRpcGFydCByZXF1ZXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRBbGxFbGVtZW50cygpIj48Qj5nZXRBbGxFbGVtZW50cygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0QWx0KCkiPjxCPmdldEFsdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZ2V0QWx0KCkiPjxCPmdldEFsdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRBbHRLZXkoKSI+PEI+Z2V0QWx0S2V5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNnZXRBbHRLZXkoKSI+PEI+Z2V0QWx0S2V5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNnZXRBbmNlc3RvcihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0QW5jZXN0b3IoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPkNvbnZlbmllbmNlIG1ldGhvZCBmb3IgbG9jYXRpbmcgYW5jZXN0b3IgdGFncyBieSBjbGFzcyBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNnZXRBbmNob3IoKSI+PEI+Z2V0QW5jaG9yKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0QW5jaG9yKCkiPjxCPmdldEFuY2hvcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjZ2V0QW5jaG9yKCkiPjxCPmdldEFuY2hvcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwjZ2V0QXJnMCgpIj48Qj5nZXRBcmcwKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPlJldHVybiB0aGUgZmlyc3Qgb3B0aW9uYWwgYXJndW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2dldEFyZzAoKSI+PEI+Z2V0QXJnMCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCNnZXRBcmcxKCkiPjxCPmdldEFyZzEoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBzZWNvbmQgb3B0aW9uYWwgYXJndW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2dldEFyZzEoKSI+PEI+Z2V0QXJnMSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCNnZXRBcmcyKCkiPjxCPmdldEFyZzIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSB0aGlyZCBvcHRpb25hbCBhcmd1bWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0QXJnMigpIj48Qj5nZXRBcmcyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sI2dldEFyZzMoKSI+PEI+Z2V0QXJnMygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGZvdXJ0aCBvcHRpb25hbCBhcmd1bWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0QXJnMygpIj48Qj5nZXRBcmczKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sI2dldEFyZzQoKSI+PEI+Z2V0QXJnNCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGZpZnRoIG9wdGlvbmFsIGFyZ3VtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNnZXRBcmc0KCkiPjxCPmdldEFyZzQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwjZ2V0QXJyYXlQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0QXJyYXlQcm9wZXJ0eShPYmplY3QsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwiPkJlYW5VdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgYXJyYXkgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZAorIGJlYW4sIGFzIGEgU3RyaW5nIGFycmF5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0QXR0cmlidXRlKCkiPjxCPmdldEF0dHJpYnV0ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5SZXR1cm4gdGhlIGF0dHJpYnV0ZSBuYW1lIGZvciBvdXIgZm9ybSBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0QXR0cmlidXRlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0QXR0cmlidXRlTmFtZXMoKSI+PEI+Z2V0QXR0cmlidXRlTmFtZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRBdXRoVHlwZSgpIj48Qj5nZXRBdXRoVHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNnZXRBdXRvQ29tbWl0KCkiPjxCPmdldEF1dG9Db21taXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPgorPEREPlJldHVybiB0aGUgY3VycmVudCBhdXRvLWNvbW1pdCBzdGF0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjZ2V0QXV0b0NvbW1pdCgpIj48Qj5nZXRBdXRvQ29tbWl0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRCb3JkZXIoKSI+PEI+Z2V0Qm9yZGVyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNnZXRCb3JkZXIoKSI+PEI+Z2V0Qm9yZGVyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZ2V0QnVmZmVyU2l6ZSgpIj48Qj5nZXRCdWZmZXJTaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkdldCB0aGUgYnVmZmVyIHNpemUgKGhvdyBsYXJnZSBvZiBhIGNodW5rIG9mIGRhdGEgaXMKKyByZWNpZXZlZCBieSB0aGUgaW5wdXQgc3RyZWFtIGF0IG9uY2UpIHVzZWQgZm9yIGZpbGUKKyB1cGxvYWRpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjZ2V0QnVmZmVyU2l6ZSgpIj48Qj5nZXRCdWZmZXJTaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+R2V0IHRoZSBtYXhpbXVtIGFtb3VudCBvZiBieXRlcyByZWFkIGZyb20gYSBsaW5lIGF0IG9uZSB0aW1lCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCNnZXRCdW5kbGUoKSI+PEI+Z2V0QnVuZGxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPlJldHVybiB0aGUgYnVuZGxlIGtleS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPjxCPmdldEJ1bmRsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPjxCPmdldEJ1bmRsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2dldEJ1bmRsZSgpIj48Qj5nZXRCdW5kbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldEJ1bmRsZSgpIj48Qj5nZXRCdW5kbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPjxCPmdldEJ1bmRsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNnZXRDYXRhbG9nKCkiPjxCPmdldENhdGFsb2coKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPgorPEREPlJldHVybiB0aGUgY3VycmVudCBjYXRhbG9nIG5hbWUgZm9yIHRoaXMgQ29ubmVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRDaGFyYWN0ZXJFbmNvZGluZygpIj48Qj5nZXRDaGFyYWN0ZXJFbmNvZGluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCNnZXRDb2xsZWN0aW9uKCkiPjxCPmdldENvbGxlY3Rpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCI+RW51bWVyYXRlVGFnPC9BPgorPEREPlJldHVybiB0aGUgY29sbGVjdGlvbiBvdmVyIHdoaWNoIHdlIHdpbGwgYmUgZW51bWVyYXRpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCNnZXRDb2xsZWN0aW9uKCkiPjxCPmdldENvbGxlY3Rpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBjb2xsZWN0aW9uIG92ZXIgd2hpY2ggd2Ugd2lsbCBiZSBpdGVyYXRpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2dldENvbGxlY3Rpb24oKSI+PEI+Z2V0Q29sbGVjdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldENvbGxlY3Rpb24oKSI+PEI+Z2V0Q29sbGVjdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNnZXRDb2xsZWN0aW9uKCkiPjxCPmdldENvbGxlY3Rpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VJbnB1dFRhZy5odG1sI2dldENvbHMoKSI+PEI+Z2V0Q29scygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBudW1iZXIgb2YgY29sdW1ucyBmb3IgdGhpcyBmaWVsZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRDb2xzKCkiPjxCPmdldENvbHMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIG51bWJlciBvZiBjb2x1bW5zIGZvciB0aGlzIGZpZWxkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldENvbmZpZygpIj48Qj5nZXRDb25maWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjZ2V0Q29ubmVjdGlvbigpIj48Qj5nZXRDb25uZWN0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4KKzxERD5SZXR1cm4gdGhlIGFjdHVhbCBjb25uZWN0aW9uIHRoYXQgd2UgYXJlIHdyYXBwaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRDb25uZWN0aW9uKCkiPjxCPmdldENvbm5lY3Rpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPkF0dGVtcHQgdG8gZXN0YWJsaXNoIGEgZGF0YWJhc2UgY29ubmVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjZ2V0Q29ubmVjdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0Q29ubmVjdGlvbihTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD5BdHRlbXB0IHRvIGVzdGFibGlzaCBhIGRhdGFiYXNlIGNvbm5lY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2dldENvbnRlbnQoKSI+PEI+Z2V0Q29udGVudCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+R2V0IHRoZSBjb250ZW50IGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwjZ2V0Q29udGVudCgpIj48Qj5nZXRDb250ZW50KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+Q29udGVudDwvQT4KKzxERD5SZXR1cm4gY29udGVudAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldENvbnRlbnRMZW5ndGgoKSI+PEI+Z2V0Q29udGVudExlbmd0aCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNnZXRDb250ZW50TWFwKCkiPjxCPmdldENvbnRlbnRNYXAoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPkdldCB0aGUgbWFwIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNnZXRDb250ZW50VHlwZSgpIj48Qj5nZXRDb250ZW50VHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPkRpc2tGaWxlPC9BPgorPEREPkdldCB0aGUgY29udGVudCB0eXBlCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0Q29udGVudFR5cGUoKSI+PEI+Z2V0Q29udGVudFR5cGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNnZXRDb250ZW50VHlwZSgpIj48Qj5nZXRDb250ZW50VHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT4KKzxERD5HZXQgdGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhpcyBmaWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjZ2V0Q29udGVudFR5cGUoKSI+PEI+Z2V0Q29udGVudFR5cGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+UmV0cmlldmUgdGhlIGNvbnRlbnQgdHlwZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldENvbnRleHRQYXRoKCkiPjxCPmdldENvbnRleHRQYXRoKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj48Qj5nZXRDb29raWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldENvb2tpZXMoKSI+PEI+Z2V0Q29va2llcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjZ2V0Q291bnQoKSI+PEI+Z2V0Q291bnQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+UmV0dXJuIHRoZSBjdXJyZW50IGRlcHRoIG9mIHRoZSBlbGVtZW50IHN0YWNrLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjZ2V0RGF0YSgpIj48Qj5nZXREYXRhKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSB0aGUgZ2V0RmlsZSBtZXRob2QgdG8gZ2V0IGEgRmlsZSByZXByZXNlbnRpbmcgdGhlCisgICAgICAgICAgICAgZGF0YSBmb3IgdGhpcyBlbGVtZW50PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNnZXREYXRhU291cmNlKCkiPjxCPmdldERhdGFTb3VyY2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPgorPEREPlJldHVybiB0aGUgZGF0YSBzb3VyY2UgdGhhdCBvd25zIHRoaXMgY29ubmVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXREYXRlSGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXREYXRlSGVhZGVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXREZWJ1ZygpIj48Qj5nZXREZWJ1ZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5SZXR1cm4gdGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgZm9yIHRoaXMgc2VydmxldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2dldERlYnVnKCkiPjxCPmdldERlYnVnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPlJldHVybiB0aGUgZGVidWdnaW5nIGRldGFpbCBsZXZlbCBvZiB0aGlzIERpZ2VzdGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI2dldERlYnVnKCkiPjxCPmdldERlYnVnKCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwjZ2V0RGVidWcoKSI+PEI+Z2V0RGVidWcoKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCI+QmVhblV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXREZWJ1ZygpIj48Qj5nZXREZWJ1ZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNnZXREZWZhdWx0Qm9vbGVhbigpIj48Qj5nZXREZWZhdWx0Qm9vbGVhbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2dldERlZmF1bHRCeXRlKCkiPjxCPmdldERlZmF1bHRCeXRlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjZ2V0RGVmYXVsdENoYXJhY3RlcigpIj48Qj5nZXREZWZhdWx0Q2hhcmFjdGVyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjZ2V0RGVmYXVsdERvdWJsZSgpIj48Qj5nZXREZWZhdWx0RG91YmxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjZ2V0RGVmYXVsdEZsb2F0KCkiPjxCPmdldERlZmF1bHRGbG9hdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2dldERlZmF1bHRJbnRlZ2VyKCkiPjxCPmdldERlZmF1bHRJbnRlZ2VyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjZ2V0RGVmYXVsdExvbmcoKSI+PEI+Z2V0RGVmYXVsdExvbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sIj5Db252ZXJ0VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNnZXREZWZhdWx0U2hvcnQoKSI+PEI+Z2V0RGVmYXVsdFNob3J0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXREZXNjcmlwdGlvbigpIj48Qj5nZXREZXNjcmlwdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2dldERpcmVjdCgpIj48Qj5nZXREaXJlY3QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPlJldHVybnMgdGhlIGRpcmVjdCBhdHRyaWJ1dGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+PEI+Z2V0RGlzYWJsZWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgZGlzYWJsZWQgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNnZXREaXNhYmxlZCgpIj48Qj5nZXREaXNhYmxlZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXREcml2ZXJDbGFzcygpIj48Qj5nZXREcml2ZXJDbGFzcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNnZXRFbmN0eXBlKCkiPjxCPmdldEVuY3R5cGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldEVuY3R5cGUoKSI+PEI+Z2V0RW5jdHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwjZ2V0RW51bWVyYXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPmdldEVudW1lcmF0aW9uKFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zMVRhZy5odG1sIj5PcHRpb25zMVRhZzwvQT4KKzxERD5SZXR1cm4gYW4gZW51bWVyYXRpb24gZm9yIHRoZSBvcHRpb24gbGFiZWxzIG9yIHZhbHVlcywgYmFzZWQgb24gb3VyCisgY29uZmlndXJlZCBwcm9wZXJ0aWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sI2dldEVycm9yKGludCkiPjxCPmdldEVycm9yKGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwiPkVycm9yTWVzc2FnZXM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBlcnJvciBtZXNzYWdlIGtleSBhdCB0aGUgc3BlY2lmaWVkIHplcm8tcmVsYXRpdmUgaW5kZXguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNnZXRFcnJvckhhbmRsZXIoKSI+PEI+Z2V0RXJyb3JIYW5kbGVyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPlJldHVybiB0aGUgZXJyb3IgaGFuZGxlciBmb3IgdGhpcyBEaWdlc3Rlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbCNnZXRFcnJvcnMoKSI+PEI+Z2V0RXJyb3JzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwiPkVycm9yTWVzc2FnZXM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBzZXQgb2YgZXJyb3IgbWVzc2FnZSBrZXlzIHdlIGhhdmUgYWNjdW11bGF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0RmFjdG9yeSgpIj48Qj5nZXRGYWN0b3J5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2dldEZhY3RvcnlDbGFzcygpIj48Qj5nZXRGYWN0b3J5Q2xhc3MoKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNnZXRGYXN0KCkiPjxCPmdldEZhc3QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT4KKzxERD5SZXR1cm4gdGhlICJmYXN0IiBtb2RlIGZsYWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sI2dldEZhc3QoKSI+PEI+Z2V0RmFzdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj5BY3Rpb25Gb3JtQmVhbnM8L0E+Cis8REQ+UmV0dXJuIHRoZSAiZmFzdCIgbW9kZSBmbGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI2dldEZhc3QoKSI+PEI+Z2V0RmFzdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPgorPEREPlJldHVybiB0aGUgImZhc3QiIG1vZGUgZmxhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjZ2V0RmFzdCgpIj48Qj5nZXRGYXN0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sIj5GYXN0SGFzaE1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNnZXRGYXN0KCkiPjxCPmdldEZhc3QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCI+RmFzdEFycmF5TGlzdDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjZ2V0RmFzdCgpIj48Qj5nZXRGYXN0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIj5GYXN0VHJlZU1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2dldEZpbGUoKSI+PEI+Z2V0RmlsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD5HZXQgdGhlIEZpbGUgdGhhdCBob2xkcyB0aGUgZGF0YSBmb3IgdGhpcyBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldEZpbGVEYXRhKCkiPjxCPmdldEZpbGVEYXRhKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+QXR0ZW1wdCB0byByZWFkIHRoZSB0ZW1wb3JhcnkgZmlsZSBhbmQgZ2V0IGl0J3MgZGF0YSBpbiBieXRlCisgYXJyYXkgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNnZXRGaWxlRGF0YSgpIj48Qj5nZXRGaWxlRGF0YSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT4KKzxERD5HZXQgdGhlIGRhdGEgaW4gYnl0ZSBhcnJheSBmb3IgZm9yIHRoaXMgZmlsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNnZXRGaWxlRGF0YShpbnQpIj48Qj5nZXRGaWxlRGF0YShpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPkRpc2tGaWxlPC9BPgorPEREPkF0dGVtcHRzIHRvIHJlYWQgYSBmaWxlIG4gYnl0ZXMgYXQgYSB0aW1lLCBuIGJlaW5nIGVxdWFsIHRvICJidWZmZXJTaXplIi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRGaWxlRWxlbWVudHMoKSI+PEI+Z2V0RmlsZUVsZW1lbnRzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0byByZXRyaWV2ZSBhbGwgdGhlIEZvcm1GaWxlCisgaW5wdXQgZWxlbWVudHMgb2YgdGhlIHJlcXVlc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldEZpbGVFbGVtZW50cygpIj48Qj5nZXRGaWxlRWxlbWVudHMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldEZpbGVOYW1lKCkiPjxCPmdldEZpbGVOYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+R2V0IHRoZSBmaWxlIG5hbWUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNnZXRGaWxlTmFtZSgpIj48Qj5nZXRGaWxlTmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT4KKzxERD5HZXQgdGhlIGZpbGUgbmFtZSBvZiB0aGlzIGZpbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNnZXRGaWxlTmFtZSgpIj48Qj5nZXRGaWxlTmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD5SZXRyaWV2ZSB0aGUgZmlsZW5hbWUsIGNhbiByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4KKyBmb3IgdGV4dCBlbGVtZW50cworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldEZpbGVQYXRoKCkiPjxCPmdldEZpbGVQYXRoKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+R2V0IHRoZSB0ZW1wb3JhcnkgZmlsZSBwYXRoIGZvciB0aGlzIGZvcm0gZmlsZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldEZpbGVTaXplKCkiPjxCPmdldEZpbGVTaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+R2V0IHRoZSBmaWxlIHNpemUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNnZXRGaWxlU2l6ZSgpIj48Qj5nZXRGaWxlU2l6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT4KKzxERD5HZXQgdGhlIHNpemUgb2YgdGhpcyBmaWxlCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNnZXRGaWx0ZXIoKSI+PEI+Z2V0RmlsdGVyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNnZXRGbHVzaCgpIj48Qj5nZXRGbHVzaCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+Cis8REQ+R2V0IHRoZSBmbHVzaC1iZWZvcmUtaW5jbHVkZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNnZXRGb2N1cygpIj48Qj5nZXRGb2N1cygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGZvY3VzIGZpZWxkIG5hbWUgZm9yIHRoaXMgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0Rm9jdXMoKSI+PEI+Z2V0Rm9jdXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybiB0aGUgZm9jdXMgZmllbGQgbmFtZSBmb3IgdGhpcyBmb3JtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0Rm9ybUF0dHJpYnV0ZSgpIj48Qj5nZXRGb3JtQXR0cmlidXRlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBnZXRBdHRyaWJ1dGUoKSBpbnN0ZWFkPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2dldEZvcm1CZWFuKCkiPjxCPmdldEZvcm1CZWFuKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj5TdHJ1dHNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRGb3JtQmVhbkNsYXNzKCkiPjxCPmdldEZvcm1CZWFuQ2xhc3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+UmV0dXJuIHRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGNsYXNzIHVzZWQgdG8gaW5zdGFudGlhdGUKKyA8Y29kZT5BY3Rpb25Gb3JtQmVhbjwvY29kZT4gb2JqZWN0cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldEZvcm1DbGFzcygpIj48Qj5nZXRGb3JtQ2xhc3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSBiZWFuIG5hbWUgdG8gbG9vayB1cCB0aGUgY29ycmVzcG9uZGluZworICBBY3Rpb25Gb3JtQmVhbiBpbnN0ZWFkPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0Rm9ybVByZWZpeCgpIj48Qj5nZXRGb3JtUHJlZml4KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBnZXRQcmVmaXgoKSBpbnN0ZWFkPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0Rm9ybVNjb3BlKCkiPjxCPmdldEZvcm1TY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgZ2V0U2NvcGUoKSBpbnN0ZWFkPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0Rm9ybVN1ZmZpeCgpIj48Qj5nZXRGb3JtU3VmZml4KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBnZXRTdWZmaXgoKSBpbnN0ZWFkPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0Rm9yd2FyZCgpIj48Qj5nZXRGb3J3YXJkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlJldHVybiB0aGUgZm9yd2FyZCBwYXRoIGZvciB0aGlzIG1hcHBpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCNnZXRGb3J3YXJkKCkiPjxCPmdldEZvcndhcmQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBsb2dpY2FsIGZvcndhcmQgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCNnZXRGb3J3YXJkKCkiPjxCPmdldEZvcndhcmQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sIj5MaW5rMVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGxvZ2ljYWwgZm9yd2FyZCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNnZXRGb3J3YXJkKCkiPjxCPmdldEZvcndhcmQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2dldEZvcndhcmQoKSI+PEI+Z2V0Rm9yd2FyZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+U3RydXRzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRGb3J3YXJkKCkiPjxCPmdldEZvcndhcmQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldEZvcndhcmQoKSI+PEI+Z2V0Rm9yd2FyZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZ2V0Rm9yd2FyZENsYXNzKCkiPjxCPmdldEZvcndhcmRDbGFzcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5SZXR1cm4gdGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgY2xhc3MgdXNlZCB0byBpbnN0YW50aWF0ZQorIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IG9iamVjdHMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj48Qj5nZXRIZWFkZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0SGVhZGVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0SGVhZGVyTmFtZXMoKSI+PEI+Z2V0SGVhZGVyTmFtZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRIZWFkZXJzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRIZWFkZXJzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0SGVpZ2h0KCkiPjxCPmdldEhlaWdodCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwjZ2V0SHJlZigpIj48Qj5nZXRIcmVmKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlJldHVybiB0aGUgaHlwZXJsaW5rIFVSSS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVkaXJlY3RUYWcuaHRtbCNnZXRIcmVmKCkiPjxCPmdldEhyZWYoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGh5cGVybGluayBVUkkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmsxVGFnLmh0bWwjZ2V0SHJlZigpIj48Qj5nZXRIcmVmKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCI+TGluazFUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBoeXBlcmxpbmsgVVJJLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNnZXRIcmVmKCkiPjxCPmdldEhyZWYoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRIcmVmKCkiPjxCPmdldEhyZWYoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldEhyZWYoKSI+PEI+Z2V0SHJlZigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldEhzcGFjZSgpIj48Qj5nZXRIc3BhY2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwjZ2V0SWQoKSI+PEI+Z2V0SWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCI+RW51bWVyYXRlVGFnPC9BPgorPEREPlJldHVybiB0aGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9HZXRQcm9wZXJ0eVRhZy5odG1sI2dldElkKCkiPjxCPmdldElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvR2V0UHJvcGVydHlUYWcuaHRtbCI+R2V0UHJvcGVydHlUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCNnZXRJZCgpIj48Qj5nZXRJZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNnZXRJZCgpIj48Qj5nZXRJZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2dldElkKCkiPjxCPmdldElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2dldElkKCkiPjxCPmdldElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+U2l6ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNnZXRJZCgpIj48Qj5nZXRJZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+Q29va2llVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI2dldElkKCkiPjxCPmdldElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNnZXRJZCgpIj48Qj5nZXRJZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIj5SZXNvdXJjZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjZ2V0SWQoKSI+PEI+Z2V0SWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2dldElkKCkiPjxCPmdldElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj5TdHJ1dHNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI2dldElkKCkiPjxCPmdldElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCI+UGFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldElkKCkiPjxCPmdldElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjZ2V0SWdub3JlKCkiPjxCPmdldElnbm9yZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRJbWFnZU5hbWUoKSI+PEI+Z2V0SW1hZ2VOYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRJbmNsdWRlKCkiPjxCPmdldEluY2x1ZGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+UmV0dXJuIHRoZSBpbmNsdWRlIHBhdGggZm9yIHRoaXMgbWFwcGluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldEluZGV4KCkiPjxCPmdldEluZGV4KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlJldHVybiB0aGUgemVyby1yZWxhdGl2ZSBpbmRleCBvZiB0aGUgY3VycmVudCBpdGVyYXRpb24gdGhyb3VnaCB0aGUKKyBsb29wLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI2dldEluZGV4ZWRQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0SW5kZXhlZFByb3BlcnR5KE9iamVjdCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwiPlByb3BlcnR5VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGluZGV4ZWQgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZAorIGJlYW4sIHdpdGggbm8gdHlwZSBjb252ZXJzaW9ucy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sI2dldEluZGV4ZWRQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0SW5kZXhlZFByb3BlcnR5KE9iamVjdCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCI+QmVhblV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBpbmRleGVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQKKyBiZWFuLCBhcyBhIFN0cmluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNnZXRJbmRleGVkUHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgaW50KSI+PEI+Z2V0SW5kZXhlZFByb3BlcnR5KE9iamVjdCwgU3RyaW5nLCBpbnQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCI+UHJvcGVydHlVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgaW5kZXhlZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkCisgYmVhbiwgd2l0aCBubyB0eXBlIGNvbnZlcnNpb25zLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwjZ2V0SW5kZXhlZFByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcsIGludCkiPjxCPmdldEluZGV4ZWRQcm9wZXJ0eShPYmplY3QsIFN0cmluZywgaW50KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCI+QmVhblV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBpbmRleGVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQKKyBiZWFuLCBhcyBhIFN0cmluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldEluZGV4SWQoKSI+PEI+Z2V0SW5kZXhJZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldElucHV0KCkiPjxCPmdldElucHV0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlJldHVybiB0aGUgaW5wdXQgZm9ybSBwYXRoIGZvciB0aGlzIG1hcHBpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNnZXRJbnB1dCgpIj48Qj5nZXRJbnB1dCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIj5SZXNvdXJjZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldElucHV0Rm9ybSgpIj48Qj5nZXRJbnB1dEZvcm0oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGdldElucHV0KCkgaW5zdGVhZDwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNnZXRJbnB1dFN0cmVhbSgpIj48Qj5nZXRJbnB1dFN0cmVhbSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPkRpc2tGaWxlPC9BPgorPEREPlJldHVybnMgYSBGaWxlSW5wdXRTdHJlYW0gdG8gdGhlIGZpbGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRJbnB1dFN0cmVhbSgpIj48Qj5nZXRJbnB1dFN0cmVhbSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2dldElucHV0U3RyZWFtKCkiPjxCPmdldElucHV0U3RyZWFtKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPgorPEREPkdldCBhbiBJbnB1dFN0cmVhbSB0aGF0IHJlcHJlc2VudHMgdGhpcyBmaWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldEludEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0SW50SGVhZGVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0SXNtYXAoKSI+PEI+Z2V0SXNtYXAoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sI2dldEl0ZXJhdG9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRJdGVyYXRvcihTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPlJldHVybiBhbiBpdGVyYXRvciBmb3IgdGhlIG9wdGlvbiBsYWJlbHMgb3IgdmFsdWVzLCBiYXNlZCBvbiBvdXIKKyBjb25maWd1cmVkIHByb3BlcnRpZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldEl0ZXJhdG9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRJdGVyYXRvcihTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD5SZXR1cm4gYW4gaXRlcmF0b3IgZm9yIHRoZSBvcHRpb24gbGFiZWxzIG9yIHZhbHVlcywgYmFzZWQgb24gb3VyCisgY29uZmlndXJlZCBwcm9wZXJ0aWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sI2dldEtleSgpIj48Qj5nZXRLZXkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT4KKzxERD5HZXQgdGhlIG1lc3NhZ2Uga2V5IGZvciB0aGlzIGVycm9yIG1lc3NhZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCNnZXRLZXkoKSI+PEI+Z2V0S2V5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPlJldHVybiB0aGUgbWVzc2FnZSBrZXkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2dldEtleSgpIj48Qj5nZXRLZXkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2dldEtleSgpIj48Qj5nZXRLZXkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uczFUYWcuaHRtbCNnZXRMYWJlbE5hbWUoKSI+PEI+Z2V0TGFiZWxOYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uczFUYWcuaHRtbCI+T3B0aW9uczFUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnNUYWcuaHRtbCNnZXRMYWJlbE5hbWUoKSI+PEI+Z2V0TGFiZWxOYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXRMYWJlbE5hbWUoKSI+PEI+Z2V0TGFiZWxOYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uczFUYWcuaHRtbCNnZXRMYWJlbFByb3BlcnR5KCkiPjxCPmdldExhYmVsUHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zMVRhZy5odG1sIj5PcHRpb25zMVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sI2dldExhYmVsUHJvcGVydHkoKSI+PEI+Z2V0TGFiZWxQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjZ2V0TGFiZWxQcm9wZXJ0eSgpIj48Qj5nZXRMYWJlbFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwjZ2V0TGVuZ3RoKCkiPjxCPmdldExlbmd0aCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sIj5FbnVtZXJhdGVUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBsZW5ndGguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCNnZXRMZW5ndGgoKSI+PEI+Z2V0TGVuZ3RoKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlJldHVybiB0aGUgbGVuZ3RoLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0TGVuZ3RoKCkiPjxCPmdldExlbmd0aCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0TGlua05hbWUoKSI+PEI+Z2V0TGlua05hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPjxCPmdldExvY2FsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGxvY2FsZSBrZXkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2dldExvY2FsZSgpIj48Qj5nZXRMb2NhbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNnZXRMb2NhbGUoKSI+PEI+Z2V0TG9jYWxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCI+SHRtbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRMb2NhbGUoKSI+PEI+Z2V0TG9jYWxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPjxCPmdldExvY2FsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPjxCPmdldExvY2FsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNnZXRMb2NhbGUoKSI+PEI+Z2V0TG9jYWxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0TG9jYWxlKCkiPjxCPmdldExvY2FsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPmdldExvY2FsZShIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+UmV0dXJuIHRoZSB1c2VyJ3MgY3VycmVudGx5IHNlbGVjdGVkIExvY2FsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRMb2NhbGVzKCkiPjxCPmdldExvY2FsZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNnZXRMb2NhdGlvbigpIj48Qj5nZXRMb2NhdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPk1hdGNoVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRMb2dpblRpbWVvdXQoKSI+PEI+Z2V0TG9naW5UaW1lb3V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD5SZXR1cm4gdGhlIGxvZ2luIHRpbWVvdXQgZm9yIHRoaXMgZGF0YSBzb3VyY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2dldExvZ1dyaXRlcigpIj48Qj5nZXRMb2dXcml0ZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPlJldHVybiB0aGUgbG9nIHdyaXRlciBmb3IgdGhpcyBkYXRhIHNvdXJjZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRMb3dzcmMoKSI+PEI+Z2V0TG93c3JjKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjZ2V0TWFwcGluZygpIj48Qj5nZXRNYXBwaW5nKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj5TdHJ1dHNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0TWFwcGluZygpIj48Qj5nZXRNYXBwaW5nKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPkdldCB0aGUgQWN0aW9uTWFwcGluZyBpbnN0YW5jZSBmb3IgdGhpcyByZXF1ZXN0Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldE1hcHBpbmcoKSI+PEI+Z2V0TWFwcGluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRNYXBwaW5nQ2xhc3MoKSI+PEI+Z2V0TWFwcGluZ0NsYXNzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlJldHVybiB0aGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBjbGFzcyB1c2VkIHRvIGluc3RhbnRpYXRlCisgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gb2JqZWN0cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldE1hcHBpbmdzKCkiPjxCPmdldE1hcHBpbmdzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlJldHVybiB0aGUgPGNvZGU+QWN0aW9uTWFwcGluZ3M8L2NvZGU+IGNvbGxlY3Rpb24gb2Ygd2hpY2gKKyB3ZSBhcmUgYSBwYXJ0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TZWxlY3RUYWcuaHRtbCNnZXRNYXRjaCgpIj48Qj5nZXRNYXRjaCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBhY3R1YWwgbWF0Y2ggdmFsdWUgKG9ubHkgdmFsaWQgZnJvbSBuZXN0ZWQgdGFncykuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2dldE1heENvdW50KCkiPjxCPmdldE1heENvdW50KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldE1heEZpbGVTaXplKCkiPjxCPmdldE1heEZpbGVTaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkdldCB0aGUgbWF4aW11bSBmaWxlIHNpemUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VJbnB1dFRhZy5odG1sI2dldE1heGxlbmd0aCgpIj48Qj5nZXRNYXhsZW5ndGgoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlJldHVybiB0aGUgbWF4aW11bSBsZW5ndGggYWxsb3dlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRNYXhsZW5ndGgoKSI+PEI+Z2V0TWF4bGVuZ3RoKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBtYXhpbXVtIGxlbmd0aCBhbGxvd2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2dldE1heFNpemUoKSI+PEI+Z2V0TWF4U2l6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPkdldCB0aGUgbWF4aW11bSBwb3N0IGRhdGEgc2l6ZSBhbGxvd2VkIGZvciBhIG11bHRpcGFydCByZXF1ZXN0Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldE1heFNpemVGcm9tU2VydmxldCgpIj48Qj5nZXRNYXhTaXplRnJvbVNlcnZsZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPkdldHMgdGhlIG1heGltdW0gcG9zdCBkYXRhIHNpemUgaW4gYnl0ZXMgZnJvbSB0aGUgc3RyaW5nCisgcmVwcmVzZW50YXRpb24gaW4gQWN0aW9uU2VydmxldAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sI2dldE1lc3NhZ2UoKSI+PEI+Z2V0TWVzc2FnZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCNnZXRNZXNzYWdlKCkiPjxCPmdldE1lc3NhZ2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZykiPjxCPmdldE1lc3NhZ2UoTG9jYWxlLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBmb3IgdGhlIGRlZmF1bHQgTG9jYWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0TWVzc2FnZShMb2NhbGUsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBmb3IgdGhlIGRlZmF1bHQgTG9jYWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjxCPmdldE1lc3NhZ2UoTG9jYWxlLCBTdHJpbmcsIE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+PEI+Z2V0TWVzc2FnZShMb2NhbGUsIFN0cmluZywgT2JqZWN0W10pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48Qj5nZXRNZXNzYWdlKExvY2FsZSwgU3RyaW5nLCBPYmplY3QsIE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjxCPmdldE1lc3NhZ2UoTG9jYWxlLCBTdHJpbmcsIE9iamVjdCwgT2JqZWN0LCBPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48Qj5nZXRNZXNzYWdlKExvY2FsZSwgU3RyaW5nLCBPYmplY3QsIE9iamVjdCwgT2JqZWN0LCBPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRNZXNzYWdlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGZvciB0aGUgZGVmYXVsdCBMb2NhbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+Z2V0TWVzc2FnZShTdHJpbmcsIE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+PEI+Z2V0TWVzc2FnZShTdHJpbmcsIE9iamVjdFtdKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+Z2V0TWVzc2FnZShTdHJpbmcsIE9iamVjdCwgT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+Z2V0TWVzc2FnZShTdHJpbmcsIE9iamVjdCwgT2JqZWN0LCBPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48Qj5nZXRNZXNzYWdlKFN0cmluZywgT2JqZWN0LCBPYmplY3QsIE9iamVjdCwgT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZVJlc291cmNlcyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0TWVzc2FnZVJlc291cmNlcyhTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5DcmVhdGUgYW5kIHJldHVybiBhbiBpbnN0YW5jZSBvZiA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBmb3IgdGhlCisgY3JlYXRlZCBieSB0aGUgZGVmYXVsdCA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI2dldE1ldGFEYXRhKCkiPjxCPmdldE1ldGFEYXRhKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4KKzxERD5HZXQgdGhlIG1ldGFkYXRhIHJlZ2FyZGluZyB0aGlzIGNvbm5lY3Rpb24ncyBkYXRhYmFzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sI2dldE1ldGhvZCgpIj48Qj5nZXRNZXRob2QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSByZXF1ZXN0IG1ldGhvZCB1c2VkIHdoZW4gc3VibWl0dGluZyB0aGlzIGZvcm0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldE1ldGhvZCgpIj48Qj5nZXRNZXRob2QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybiB0aGUgcmVxdWVzdCBtZXRob2QgdXNlZCB3aGVuIHN1Ym1pdHRpbmcgdGhpcyBmb3JtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldE1ldGhvZCgpIj48Qj5nZXRNZXRob2QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjZ2V0TWV0aG9kKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRNZXRob2QoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPkRpc3BhdGNoQWN0aW9uPC9BPgorPEREPkludHJvc3BlY3QgdGhlIGN1cnJlbnQgY2xhc3MgdG8gaWRlbnRpZnkgYSBtZXRob2Qgb2YgdGhlIHNwZWNpZmllZAorIG5hbWUgdGhhdCBhY2NlcHRzIHRoZSBzYW1lIHBhcmFtZXRlciB0eXBlcyBhcyB0aGUgPGNvZGU+cGVyZm9ybSgpPC9jb2RlPgorIG1ldGhvZCBkb2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRNaW5Db3VudCgpIj48Qj5nZXRNaW5Db3VudCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRNdWx0aXBhcnRDbGFzcygpIj48Qj5nZXRNdWx0aXBhcnRDbGFzcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5HZXQgdGhlIG5hbWUgb2YgdGhlIGNsYXNzIHVzZWQgdG8gaGFuZGxlIG11bHRpcGFydCByZXF1ZXN0IGRhdGEKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldE11bHRpcGFydENsYXNzKCkiPjxCPmdldE11bHRpcGFydENsYXNzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkdldCB0aGUgY2xhc3MgbmFtZSBvZiB0aGUgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgaW1wbGVtZW50YXRpb24KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI2dldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyKCkiPjxCPmdldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPgorPEREPlJldHVybiB0aGUgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgZm9yIHRoaXMgZm9ybQorIFRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMgaXMgdG8gZ2l2ZSBmb3JtIGJlYW4gZGV2ZWxvcGVycworIGNvbnRyb2wgb3ZlciB0aGUgbGlmZWN5Y2xlIG9mIHRoZWlyIG11bHRpcGFydCByZXF1ZXN0cworIHRocm91Z2ggdGhlIHVzZSBvZiB0aGUgZmluaXNoKCkgYW5kL29yIHJvbGxiYWNrKCkgbWV0aG9kcworIG9mIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TZWxlY3RUYWcuaHRtbCNnZXRNdWx0aXBsZSgpIj48Qj5nZXRNdWx0aXBsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjZ2V0TXVsdGlwbGUoKSI+PEI+Z2V0TXVsdGlwbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPkhlYWRlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNnZXRNdWx0aXBsZSgpIj48Qj5nZXRNdWx0aXBsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+Q29va2llVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI2dldE11bHRpcGxlKCkiPjxCPmdldE11bHRpcGxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjZ2V0TXVsdGlwbGUoKSI+PEI+Z2V0TXVsdGlwbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5SZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGZvcm0gYmVhbiBmb3IgdGhpcyBtYXBwaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPgorPEREPlJldHVybiB0aGUgYmVhbiBuYW1lIG9mIHRoaXMgYWN0aW9uIGZvcm0gYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4KKzxERD5SZXR1cm4gdGhlIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBiZWFuIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0h0bWxQcm9wZXJ0eVRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0h0bWxQcm9wZXJ0eVRhZy5odG1sIj5IdG1sUHJvcGVydHlUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBvYmplY3QgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJFcXVhbHNUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlckVxdWFsc1RhZy5odG1sIj5JZlBhcmFtZXRlckVxdWFsc1RhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHBhcmFtZXRlciBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybiB0aGUgYXR0cmlidXRlIGtleSBuYW1lIG9mIG91ciBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NdWx0aWJveFRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL011bHRpYm94VGFnLmh0bWwiPk11bHRpYm94VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9QYXJhbWV0ZXJUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9QYXJhbWV0ZXJUYWcuaHRtbCI+UGFyYW1ldGVyVGFnPC9BPgorPEREPlJldHVybiB0aGUgcGFyYW1ldGVyIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uczFUYWcuaHRtbCI+T3B0aW9uczFUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Vycm9yc1RhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBlcnJvcnMgYXR0cmlidXRlIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sIj5FbnVtZXJhdGVUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBjb2xsZWN0aW9uIG9yIG93bmluZyBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9HZXRQcm9wZXJ0eVRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0dldFByb3BlcnR5VGFnLmh0bWwiPkdldFByb3BlcnR5VGFnPC9BPgorPEREPlJldHVybiB0aGUgbmFtZSBvZiB0aGUgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOdWxsVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOdWxsVGFnLmh0bWwiPklmUGFyYW1ldGVyTnVsbFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHBhcmFtZXRlciBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SYWRpb1RhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SZXNldFRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPlJldHVybiB0aGUgZmllbGQgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSW5jbHVkZVRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGxvZ2ljYWwgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUF0dHJpYnV0ZVRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VBdHRyaWJ1dGVUYWcuaHRtbCI+QmFzZUF0dHJpYnV0ZVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGF0dHJpYnV0ZSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3J3YXJkVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9yd2FyZFRhZy5odG1sIj5Gb3J3YXJkVGFnPC9BPgorPEREPlJldHVybiB0aGUgbG9naWNhbCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck5vdEVxdWFsc1RhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTm90RXF1YWxzVGFnLmh0bWwiPklmUGFyYW1ldGVyTm90RXF1YWxzVGFnPC9BPgorPEREPlJldHVybiB0aGUgcGFyYW1ldGVyIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1RleHRhcmVhVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvVGV4dGFyZWFUYWcuaHRtbCI+VGV4dGFyZWFUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NoZWNrYm94VGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTm90TnVsbFRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTm90TnVsbFRhZy5odG1sIj5JZlBhcmFtZXRlck5vdE51bGxUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBwYXJhbWV0ZXIgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sIj5MaW5rMVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGJlYW4gbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUHJvcGVydHlUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Qcm9wZXJ0eVRhZy5odG1sIj5Qcm9wZXJ0eVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGNvbGxlY3Rpb24gb3Igb3duaW5nIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj5IZWFkZXJUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIj5Db29raWVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+UmVzb3VyY2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBmaWVsZCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybiB0aGUgYXR0cmlidXRlIGtleSBuYW1lIG9mIG91ciBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sIj5Gb3J3YXJkVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPkdldCB0aGUgbmFtZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+Cis8REQ+R2V0IHRoZSBuYW1lIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD5SZXRyaWV2ZSB0aGUgbmFtZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI2dldE5lc3RlZFByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXROZXN0ZWRQcm9wZXJ0eShPYmplY3QsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgdmFsdWUgb2YgdGhlIChwb3NzaWJseSBuZXN0ZWQpIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQKKyBuYW1lLCBmb3IgdGhlIHNwZWNpZmllZCBiZWFuLCB3aXRoIG5vIHR5cGUgY29udmVyc2lvbnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCNnZXROZXN0ZWRQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0TmVzdGVkUHJvcGVydHkoT2JqZWN0LCBTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sIj5CZWFuVXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgKHBvc3NpYmx5IG5lc3RlZCkgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZAorIG5hbWUsIGZvciB0aGUgc3BlY2lmaWVkIGJlYW4sIGFzIGEgU3RyaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2dldE5leHRFbGVtZW50KCkiPjxCPmdldE5leHRFbGVtZW50KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+UmV0cmlldmVzIHRoZSBuZXh0IGVsZW1lbnQgaW4gdGhlIGl0ZXJhdG9yIGlmIG9uZSBleGlzdHMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sI2dldE9mZnNldCgpIj48Qj5nZXRPZmZzZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCI+RW51bWVyYXRlVGFnPC9BPgorPEREPlJldHVybiB0aGUgb2Zmc2V0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwjZ2V0T2Zmc2V0KCkiPjxCPmdldE9mZnNldCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIG9mZnNldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldE9mZnNldCgpIj48Qj5nZXRPZmZzZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmJsdXIoKSI+PEI+Z2V0T25ibHVyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uQmx1ciBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uQmx1cigpIj48Qj5nZXRPbkJsdXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBvbkJsdXIgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPjxCPmdldE9uY2hhbmdlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uQ2hhbmdlIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25DaGFuZ2UoKSI+PEI+Z2V0T25DaGFuZ2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBvbkNoYW5nZSBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jbGljaygpIj48Qj5nZXRPbmNsaWNrKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uQ2xpY2sgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbkNsaWNrKCkiPjxCPmdldE9uQ2xpY2soKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBvbkNsaWNrIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmRibGNsaWNrKCkiPjxCPmdldE9uZGJsY2xpY2soKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgb25EYmxDbGljayBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uRGJsQ2xpY2soKSI+PEI+Z2V0T25EYmxDbGljaygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uRGJsQ2xpY2sgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZm9jdXMoKSI+PEI+Z2V0T25mb2N1cygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBvbkZvY3VzIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25Gb2N1cygpIj48Qj5nZXRPbkZvY3VzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgb25Gb2N1cyBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlkb3duKCkiPjxCPmdldE9ua2V5ZG93bigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBvbktleURvd24gZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbktleURvd24oKSI+PEI+Z2V0T25LZXlEb3duKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgb25LZXlEb3duIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPjxCPmdldE9ua2V5cHJlc3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgb25LZXlQcmVzcyBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uS2V5UHJlc3MoKSI+PEI+Z2V0T25LZXlQcmVzcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uS2V5UHJlc3MgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+PEI+Z2V0T25rZXl1cCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBvbktleVVwIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25LZXlVcCgpIj48Qj5nZXRPbktleVVwKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgb25LZXlVcCBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+PEI+Z2V0T25tb3VzZWRvd24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgb25Nb3VzZURvd24gZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbk1vdXNlRG93bigpIj48Qj5nZXRPbk1vdXNlRG93bigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uTW91c2VEb3duIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlbW92ZSgpIj48Qj5nZXRPbm1vdXNlbW92ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBvbk1vdXNlTW92ZSBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uTW91c2VNb3ZlKCkiPjxCPmdldE9uTW91c2VNb3ZlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgb25Nb3VzZU1vdmUgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+PEI+Z2V0T25tb3VzZW91dCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBvbk1vdXNlT3V0IGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25Nb3VzZU91dCgpIj48Qj5nZXRPbk1vdXNlT3V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgb25Nb3VzZU91dCBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+PEI+Z2V0T25tb3VzZW92ZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgb25Nb3VzZU92ZXIgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbk1vdXNlT3ZlcigpIj48Qj5nZXRPbk1vdXNlT3ZlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uTW91c2VPdmVyIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+PEI+Z2V0T25tb3VzZXVwKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uTW91c2VVcCBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uTW91c2VVcCgpIj48Qj5nZXRPbk1vdXNlVXAoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBvbk1vdXNlVXAgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0T25yZXNldCgpIj48Qj5nZXRPbnJlc2V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIG9uUmVzZXQgZXZlbnQgc2NyaXB0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjZ2V0T25SZXNldCgpIj48Qj5nZXRPblJlc2V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybiB0aGUgb25SZXNldCBldmVudCBzY3JpcHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj48Qj5nZXRPbnNlbGVjdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBvblNlbGVjdCBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uU2VsZWN0KCkiPjxCPmdldE9uU2VsZWN0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgb25TZWxlY3QgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0T25zdWJtaXQoKSI+PEI+Z2V0T25zdWJtaXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybiB0aGUgb25TdWJtaXQgZXZlbnQgc2NyaXB0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjZ2V0T25TdWJtaXQoKSI+PEI+Z2V0T25TdWJtaXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBvblN1Ym1pdCBldmVudCBzY3JpcHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2dldFBhZ2UoKSI+PEI+Z2V0UGFnZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0UGFnZSgpIj48Qj5nZXRQYWdlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNnZXRQYWdlKCkiPjxCPmdldFBhZ2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFBhZ2UoKSI+PEI+Z2V0UGFnZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjZ2V0UGFnZSgpIj48Qj5nZXRQYWdlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0UGFnZUtleSgpIj48Qj5nZXRQYWdlS2V5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNnZXRQYWdlS2V5KCkiPjxCPmdldFBhZ2VLZXkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRQYXJhbWV0ZXIoKSI+PEI+Z2V0UGFyYW1ldGVyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlJldHVybiB0aGUgZ2VuZXJhbCBwdXJwb3NlIGNvbmZpZ3VhdGlvbiBwYXJhbWV0ZXIgZm9yIHRoaXMgbWFwcGluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPjxCPmdldFBhcmFtZXRlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRQYXJhbWV0ZXIoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD5BdHRlbXB0cyB0byBnZXQgYSBwYXJhbWV0ZXIgZm9yIHRoaXMgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRQYXJhbWV0ZXJNYXAoKSI+PEI+Z2V0UGFyYW1ldGVyTWFwKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+VGhpcyBtZXRob2QgcmV0dXJucyBudWxsLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFBhcmFtZXRlck5hbWVzKCkiPjxCPmdldFBhcmFtZXRlck5hbWVzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+UmV0dXJucyB0aGUgbmFtZXMgb2YgdGhlIHBhcmFtZXRlcnMgZm9yIHRoaXMgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRQYXJhbWV0ZXJWYWx1ZXMoamF2YS5sYW5nLlN0cmluZykiPjxCPmdldFBhcmFtZXRlclZhbHVlcyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFBhcmFtSWQoKSI+PEI+Z2V0UGFyYW1JZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYXJhbUlkKCkiPjxCPmdldFBhcmFtSWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldFBhcmFtSWQoKSI+PEI+Z2V0UGFyYW1JZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFBhcmFtTmFtZSgpIj48Qj5nZXRQYXJhbU5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UGFyYW1OYW1lKCkiPjxCPmdldFBhcmFtTmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjZ2V0UGFyYW1OYW1lKCkiPjxCPmdldFBhcmFtTmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFBhcmFtUHJvcGVydHkoKSI+PEI+Z2V0UGFyYW1Qcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYXJhbVByb3BlcnR5KCkiPjxCPmdldFBhcmFtUHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldFBhcmFtUHJvcGVydHkoKSI+PEI+Z2V0UGFyYW1Qcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFBhcmFtU2NvcGUoKSI+PEI+Z2V0UGFyYW1TY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYXJhbVNjb3BlKCkiPjxCPmdldFBhcmFtU2NvcGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldFBhcmFtU2NvcGUoKSI+PEI+Z2V0UGFyYW1TY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjZ2V0UGFyc2VyKCkiPjxCPmdldFBhcnNlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5SZXR1cm4gdGhlIFNBWFBhcnNlciB3ZSB3aWxsIHVzZSB0byBwYXJzZSB0aGUgaW5wdXQgc3RyZWFtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRQYXNzd29yZCgpIj48Qj5nZXRQYXNzd29yZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRQYXRoKCkiPjxCPmdldFBhdGgoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+UmV0dXJuIHRoZSByZXF1ZXN0IFVSSSBwYXRoIHVzZWQgdG8gc2VsZWN0IHRoaXMgbWFwcGluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI2dldFBhdGgoKSI+PEI+Z2V0UGF0aCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4KKzxERD5SZXR1cm4gdGhlIHBhdGguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UGF0aEluZm8oKSI+PEI+Z2V0UGF0aEluZm8oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRQYXRoVHJhbnNsYXRlZCgpIj48Qj5nZXRQYXRoVHJhbnNsYXRlZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRQaW5nQ29tbWFuZCgpIj48Qj5nZXRQaW5nQ29tbWFuZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2dldFBpbmdRdWVyeSgpIj48Qj5nZXRQaW5nUXVlcnkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0UHJlZml4KCkiPjxCPmdldFByZWZpeCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5SZXR1cm4gdGhlIHBhcmFtZXRlciBuYW1lIHByZWZpeCBmb3IgdGhpcyBtYXBwaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9IdG1sUHJvcGVydHlUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0h0bWxQcm9wZXJ0eVRhZy5odG1sIj5IdG1sUHJvcGVydHlUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NdWx0aWJveFRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zMVRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uczFUYWcuaHRtbCI+T3B0aW9uczFUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwiPkVudW1lcmF0ZVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnNUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvR2V0UHJvcGVydHlUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0dldFByb3BlcnR5VGFnLmh0bWwiPkdldFByb3BlcnR5VGFnPC9BPgorPEREPlJldHVybiB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmFkaW9UYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPlJldHVybiB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlJldHVybiB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU3VibWl0VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlJldHVybiB0aGUgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NoZWNrYm94VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DaGVja2JveFRhZy5odG1sIj5DaGVja2JveFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0J1dHRvblRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQnV0dG9uVGFnLmh0bWwiPkJ1dHRvblRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NhbmNlbFRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmsxVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sIj5MaW5rMVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlFcXVhbHNUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlFcXVhbHNUYWcuaHRtbCI+SWZQcm9wZXJ0eUVxdWFsc1RhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlOb3RFcXVhbHNUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlOb3RFcXVhbHNUYWcuaHRtbCI+SWZQcm9wZXJ0eU5vdEVxdWFsc1RhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCI+UGFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPk11bHRpYm94VGFnPC9BPgorPEREPlJldHVybiB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPgorPEREPlJldHVybiB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlJldHVybiB0aGUgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI2dldFByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRQcm9wZXJ0eShPYmplY3QsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sCisgbm8gbWF0dGVyIHdoaWNoIHByb3BlcnR5IHJlZmVyZW5jZSBmb3JtYXQgaXMgdXNlZCwgd2l0aCBubworIHR5cGUgY29udmVyc2lvbnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCNnZXRQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0UHJvcGVydHkoT2JqZWN0LCBTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sIj5CZWFuVXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQgYmVhbiwKKyBubyBtYXR0ZXIgd2hpY2ggcHJvcGVydHkgcmVmZXJlbmNlIGZvcm1hdCBpcyB1c2VkLCBhcyBhIFN0cmluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNnZXRQcm9wZXJ0eURlc2NyaXB0b3IoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPjxCPmdldFByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHJpZXZlIHRoZSBwcm9wZXJ0eSBkZXNjcmlwdG9yIGZvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZQorIHNwZWNpZmllZCBiZWFuLCBvciByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlcmUgaXMgbm8gc3VjaAorIGRlc2NyaXB0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjZ2V0UHJvcGVydHlEZXNjcmlwdG9ycyhqYXZhLmxhbmcuT2JqZWN0KSI+PEI+Z2V0UHJvcGVydHlEZXNjcmlwdG9ycyhPYmplY3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCI+UHJvcGVydHlVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXRyaWV2ZSB0aGUgcHJvcGVydHkgZGVzY3JpcHRvcnMgZm9yIHRoZSBzcGVjaWZpZWQgYmVhbiwgaW50cm9zcGVjdGluZworIGFuZCBjYWNoaW5nIHRoZW0gdGhlIGZpcnN0IHRpbWUgYSBwYXJ0aWN1bGFyIGJlYW4gY2xhc3MgaXMgZW5jb3VudGVyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjZ2V0UHJvcGVydHlFZGl0b3JDbGFzcyhqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0UHJvcGVydHlFZGl0b3JDbGFzcyhPYmplY3QsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgSmF2YSBDbGFzcyByZXBlc2VudGluZyB0aGUgcHJvcGVydHkgZWRpdG9yIGNsYXNzIHRoYXQgaGFzCisgYmVlbiByZWdpc3RlcmVkIGZvciB0aGlzIHByb3BlcnR5IChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9HZXRQcm9wZXJ0eVRhZy5odG1sIj48Qj5HZXRQcm9wZXJ0eVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9HZXRQcm9wZXJ0eVRhZy5odG1sIj5HZXRQcm9wZXJ0eVRhZzwvQT4uPEREPkV4cG9zZSB0aGUgdmFsdWUgb2YgYSBiZWFuIHByb3BlcnR5IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvR2V0UHJvcGVydHlUYWcuaHRtbCNHZXRQcm9wZXJ0eVRhZygpIj48Qj5HZXRQcm9wZXJ0eVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0dldFByb3BlcnR5VGFnLmh0bWwiPkdldFByb3BlcnR5VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9HZXRQcm9wZXJ0eVRlaS5odG1sIj48Qj5HZXRQcm9wZXJ0eVRlaTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9HZXRQcm9wZXJ0eVRlaS5odG1sIj5HZXRQcm9wZXJ0eVRlaTwvQT4uPEREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5nZXRQcm9wZXJ0eTwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0dldFByb3BlcnR5VGVpLmh0bWwjR2V0UHJvcGVydHlUZWkoKSI+PEI+R2V0UHJvcGVydHlUZWkoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9HZXRQcm9wZXJ0eVRlaS5odG1sIj5HZXRQcm9wZXJ0eVRlaTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNnZXRQcm9wZXJ0eVR5cGUoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPjxCPmdldFByb3BlcnR5VHlwZShPYmplY3QsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgSmF2YSBDbGFzcyByZXByZXNlbnRpbmcgdGhlIHByb3BlcnR5IHR5cGUgb2YgdGhlIHNwZWNpZmllZAorIHByb3BlcnR5LCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGVyZSBpcyBubyBzdWNoIHByb3BlcnR5IGZvciB0aGUKKyBzcGVjaWZpZWQgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRQcm90b2NvbCgpIj48Qj5nZXRQcm90b2NvbCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFF1ZXJ5U3RyaW5nKCkiPjxCPmdldFF1ZXJ5U3RyaW5nKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UmVhZGVyKCkiPjxCPmdldFJlYWRlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI2dldFJlYWRNZXRob2QoamF2YS5iZWFucy5Qcm9wZXJ0eURlc2NyaXB0b3IpIj48Qj5nZXRSZWFkTWV0aG9kKFByb3BlcnR5RGVzY3JpcHRvcik8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhbiBhY2Nlc3NpYmxlIHByb3BlcnR5IGdldHRlciBtZXRob2QgZm9yIHRoaXMgcHJvcGVydHksCisgaWYgdGhlcmUgaXMgb25lOyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+PEI+Z2V0UmVhZG9ubHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgcmVhZG9ubHkgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjZ2V0UmVhZE9ubHkoKSI+PEI+Z2V0UmVhZE9ubHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlYWxQYXRoKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRSZWFsUGF0aChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjZ2V0UmVkaXJlY3QoKSI+PEI+Z2V0UmVkaXJlY3QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Cis8REQ+UmV0dXJuIHRoZSByZWRpcmVjdCBmbGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2dldFJlZGlzcGxheSgpIj48Qj5nZXRSZWRpc3BsYXkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRSZW1vdGVBZGRyKCkiPjxCPmdldFJlbW90ZUFkZHIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRSZW1vdGVIb3N0KCkiPjxCPmdldFJlbW90ZUhvc3QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRSZW1vdGVVc2VyKCkiPjxCPmdldFJlbW90ZVVzZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRSZXF1ZXN0KCkiPjxCPmdldFJlcXVlc3QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD5SZXR1cm5zIHRoZSB1bmRlcmx5aW5nIEh0dHBTZXJ2bGV0UmVxdWVzdCBmb3IgdGhpcyB3cmFwcGVyCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UmVxdWVzdERpc3BhdGNoZXIoamF2YS5sYW5nLlN0cmluZykiPjxCPmdldFJlcXVlc3REaXNwYXRjaGVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UmVxdWVzdGVkU2Vzc2lvbklkKCkiPjxCPmdldFJlcXVlc3RlZFNlc3Npb25JZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlcXVlc3RVUkkoKSI+PEI+Z2V0UmVxdWVzdFVSSSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlcXVlc3RVUkwoKSI+PEI+Z2V0UmVxdWVzdFVSTCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgbnVsbC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKCkiPjxCPmdldFJlc291cmNlcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+UmV0dXJuIHRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldFJlc291cmNlcygpIj48Qj5nZXRSZXNvdXJjZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+UmV0dXJuIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZXMgZm9yIHRoaXMgd2ViIGFwcGxpY2F0aW9uLCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0UmV0dXJuTnVsbCgpIj48Qj5nZXRSZXR1cm5OdWxsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2dldFJldHVybk51bGwoKSI+PEI+Z2V0UmV0dXJuTnVsbCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFJvbGUoKSI+PEI+Z2V0Um9sZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2dldFJvbGUoKSI+PEI+Z2V0Um9sZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+R2V0IHRoZSByb2xlIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjZ2V0Um9sZSgpIj48Qj5nZXRSb2xlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwiPkdldFRhZzwvQT4KKzxERD5HZXQgdGhlIHJvbGUgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCNnZXRSb3dzKCkiPjxCPmdldFJvd3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlJldHVybiB0aGUgbnVtYmVyIG9mIHJvd3MgZm9yIHRoaXMgZmllbGQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0Um93cygpIj48Qj5nZXRSb3dzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBudW1iZXIgb2Ygcm93cyBmb3IgdGhpcyBmaWVsZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2dldFJ1bGVzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRSdWxlcyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5SZXR1cm4gdGhlIHNldCBvZiBydWxlcyB0aGF0IGFwcGx5IHRvIHRoZSBzcGVjaWZpZWQgbWF0Y2ggcG9zaXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0U2NoZW1lKCkiPjxCPmdldFNjaGVtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0U2NvcGUoKSI+PEI+Z2V0U2NvcGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+UmV0dXJuIHRoZSBhdHRyaWJ1dGUgc2NvcGUgZm9yIHRoaXMgbWFwcGluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sI2dldFNjb3BlKCkiPjxCPmdldFNjb3BlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybiB0aGUgYXR0cmlidXRlIHNjb3BlIG9mIG91ciBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlQXR0cmlidXRlVGFnLmh0bWwjZ2V0U2NvcGUoKSI+PEI+Z2V0U2NvcGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlQXR0cmlidXRlVGFnLmh0bWwiPkJhc2VBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBhdHRyaWJ1dGUgc2NvcGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNnZXRTY29wZSgpIj48Qj5nZXRTY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNnZXRTY29wZSgpIj48Qj5nZXRTY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNnZXRTY29wZSgpIj48Qj5nZXRTY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0U2NvcGUoKSI+PEI+Z2V0U2NvcGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0U2NvcGUoKSI+PEI+Z2V0U2NvcGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRTY29wZSgpIj48Qj5nZXRTY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBhdHRyaWJ1dGUgc2NvcGUgb2Ygb3VyIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPjxCPmdldFNjb3BlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldFNjb3BlKCkiPjxCPmdldFNjb3BlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldFNjb3BlKCkiPjxCPmdldFNjb3BlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VBdHRyaWJ1dGVUYWcuaHRtbCNnZXRTY29wZUlkKCkiPjxCPmdldFNjb3BlSWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlQXR0cmlidXRlVGFnLmh0bWwiPkJhc2VBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBzY29wZSBpZGVudGlmaWVyIG9mIHRoZSBzY29wZSB3ZSBhcmUgcmVxdWVzdGluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRTZXJ2ZXJOYW1lKCkiPjxCPmdldFNlcnZlck5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRTZXJ2ZXJQb3J0KCkiPjxCPmdldFNlcnZlclBvcnQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0U2VydmxldCgpIj48Qj5nZXRTZXJ2bGV0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD5SZXR1cm4gdGhlIGNvbnRyb2xsZXIgc2VydmxldCBpbnN0YW5jZSB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNnZXRTZXJ2bGV0KCkiPjxCPmdldFNlcnZsZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Cis8REQ+UmV0dXJuIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI2dldFNlcnZsZXQoKSI+PEI+Z2V0U2VydmxldCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPgorPEREPlJldHVybiB0aGUgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4gaW5zdGFuY2Ugb2Ygb3VyIG93bmluZworIGFwcGxpY2F0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldFNlcnZsZXQoKSI+PEI+Z2V0U2VydmxldCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5HZXQgdGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2UKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0U2VydmxldCgpIj48Qj5nZXRTZXJ2bGV0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRTZXJ2bGV0UGF0aCgpIj48Qj5nZXRTZXJ2bGV0UGF0aCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFNlc3Npb24oKSI+PEI+Z2V0U2Vzc2lvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFNlc3Npb24oYm9vbGVhbikiPjxCPmdldFNlc3Npb24oYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjZ2V0U2ltcGxlUHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPjxCPmdldFNpbXBsZVByb3BlcnR5KE9iamVjdCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwiPlByb3BlcnR5VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHNpbXBsZSBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkCisgYmVhbiwgd2l0aCBubyB0eXBlIGNvbnZlcnNpb25zLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwjZ2V0U2ltcGxlUHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPjxCPmdldFNpbXBsZVByb3BlcnR5KE9iamVjdCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCI+QmVhblV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBzaW1wbGUgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZAorIGJlYW4sIGNvbnZlcnRlZCB0byBhIFN0cmluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwjZ2V0U2l6ZSgpIj48Qj5nZXRTaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHNpemUgb2YgdGhpcyBmaWVsZCAoc3lub255bSBmb3IgPGNvZGU+Z2V0Q29scygpPC9jb2RlPikuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sI2dldFNpemUoKSI+PEI+Z2V0U2l6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0U2l6ZSgpIj48Qj5nZXRTaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBzaXplIG9mIHRoaXMgZmllbGQgKHN5bm9ueW0gZm9yIDxjb2RlPmdldENvbHMoKTwvY29kZT4pLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2dldFNpemUoKSI+PEI+Z2V0U2l6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sI2dldFNpemUoKSI+PEI+Z2V0U2l6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sIj5FcnJvck1lc3NhZ2VzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgbnVtYmVyIG9mIGVycm9yIG1lc3NhZ2Uga2V5cyB3ZSBoYXZlIGFjY3VtdWxhdGVkIHNvIGZhci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRTcmMoKSI+PEI+Z2V0U3JjKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNnZXRTcmMoKSI+PEI+Z2V0U3JjKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFNyY0tleSgpIj48Qj5nZXRTcmNLZXkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldFNyY0tleSgpIj48Qj5nZXRTcmNLZXkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcFN0YWNrLmh0bWwjZ2V0U3RhY2soamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj48Qj5nZXRTdGFjayhQYWdlQ29udGV4dCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCI+Q29udGVudE1hcFN0YWNrPC9BPgorPEREPlJldHVybiBhIHJlZmVyZW5jZSB0byB0aGUgc3RhY2suCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNnZXRTdHlsZSgpIj48Qj5nZXRTdHlsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHN0eWxlIGF0dHJpYnV0ZSBmb3IgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+PEI+Z2V0U3R5bGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBzdHlsZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZSgpIj48Qj5nZXRTdHlsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBzdHlsZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldFN0eWxlKCkiPjxCPmdldFN0eWxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHN0eWxlIGF0dHJpYnV0ZSBmb3IgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPjxCPmdldFN0eWxlQ2xhc3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBzdHlsZSBjbGFzcyBmb3IgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj48Qj5nZXRTdHlsZUNsYXNzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgc3R5bGUgY2xhc3MgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj48Qj5nZXRTdHlsZUNsYXNzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIHN0eWxlIGNsYXNzIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj48Qj5nZXRTdHlsZUNsYXNzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHN0eWxlIGNsYXNzIGZvciB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sI2dldFN0eWxlSWQoKSI+PEI+Z2V0U3R5bGVJZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHN0eWxlIGlkIGZvciB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUlkKCkiPjxCPmdldFN0eWxlSWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBzdHlsZSBpZCBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUlkKCkiPjxCPmdldFN0eWxlSWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgc3R5bGUgaWQgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRTdHlsZUlkKCkiPjxCPmdldFN0eWxlSWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybiB0aGUgc3R5bGUgaWRlbnRpZmllciBmb3IgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRTdWZmaXgoKSI+PEI+Z2V0U3VmZml4KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlJldHVybiB0aGUgcGFyYW1ldGVyIG5hbWUgc3VmZml4IGZvciB0aGlzIG1hcHBpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj48Qj5nZXRUYWJpbmRleCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSB0YWJJbmRleCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJJbmRleCgpIj48Qj5nZXRUYWJJbmRleCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIHRhYkluZGV4IHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCI+PEI+R2V0VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+LjxERD5UaGlzIGlzIHRoZSB0YWcgaGFuZGxlciBmb3IgJmx0O3RlbXBsYXRlOmdldCZndDssIHdoaWNoIGdldHMgCisgY29udGVudCBmcm9tIHRoZSByZXF1ZXN0IHNjb3BlIGFuZCBlaXRoZXIgaW5jbHVkZXMgdGhlIGNvbnRlbnQgb3IgcHJpbnRzIAorIGl0LCBkZXBlbmRpbmcgdXBvbiB0aGUgdmFsdWUgb2YgdGhlIGNvbnRlbnQncyBkaXJlY3QgYXR0cmlidXRlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjR2V0VGFnKCkiPjxCPkdldFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCNnZXRUYXJnZXQoKSI+PEI+Z2V0VGFyZ2V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlJldHVybiB0aGUgd2luZG93IHRhcmdldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sI2dldFRhcmdldCgpIj48Qj5nZXRUYXJnZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSB3aW5kb3cgdGFyZ2V0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sI2dldFRhcmdldCgpIj48Qj5nZXRUYXJnZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sIj5MaW5rMVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHdpbmRvdyB0YXJnZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sI2dldFRhcmdldCgpIj48Qj5nZXRUYXJnZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sIj5CYXNlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRUYXJnZXQoKSI+PEI+Z2V0VGFyZ2V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0VGFyZ2V0KCkiPjxCPmdldFRhcmdldCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSB3aW5kb3cgdGFyZ2V0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZ2V0VGVtcERpcigpIj48Qj5nZXRUZW1wRGlyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkdldCB0aGUgZGlyZWN0b3J5IHVzZWQgdG8gdGVtcG9yYXJpbHkgc3RvcmUgZm9ybSBmaWxlcworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNnZXRUZW1wbGF0ZSgpIj48Qj5nZXRUZW1wbGF0ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+R2V0IHRoZSB0ZW1wbGF0ZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0VGV4dEVsZW1lbnRzKCkiPjxCPmdldFRleHRFbGVtZW50cygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5UaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdG8gcmV0cmlldmUgYWxsIHRoZSB0ZXh0CisgaW5wdXQgZWxlbWVudHMgb2YgdGhlIHJlcXVlc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldFRleHRFbGVtZW50cygpIj48Qj5nZXRUZXh0RWxlbWVudHMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+PEI+Z2V0VGl0bGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgYWR2aXNvcnkgdGl0bGUgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2dldFRvU2NvcGUoKSI+PEI+Z2V0VG9TY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNnZXRUcmFuc2FjdGlvbigpIj48Qj5nZXRUcmFuc2FjdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFRyYW5zYWN0aW9uKCkiPjxCPmdldFRyYW5zYWN0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXRUcmFuc2FjdGlvbigpIj48Qj5nZXRUcmFuc2FjdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNnZXRUcmFuc2FjdGlvbklzb2xhdGlvbigpIj48Qj5nZXRUcmFuc2FjdGlvbklzb2xhdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+R2VuZXJpY0Nvbm5lY3Rpb248L0E+Cis8REQ+UmV0dXJuIHRoaXMgQ29ubmVjdGlvbidzIGN1cnJlbnQgdHJhbnNhY3Rpb24gaXNvbGF0aW9uIGxldmVsLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0VHlwZSgpIj48Qj5nZXRUeXBlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlJldHVybiB0aGUgZnVsbHkgcXVhbGlmaWVkIEFjdGlvbiBjbGFzcyBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sI2dldFR5cGUoKSI+PEI+Z2V0VHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPgorPEREPlJldHVybiB0aGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoaXMgYWN0aW9uIGZvcm0gYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sI2dldFR5cGUoKSI+PEI+Z2V0VHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIEphdmEgY2xhc3Mgb2Ygb3VyIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZ2V0VHlwZSgpIj48Qj5nZXRUeXBlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldFR5cGUoKSI+PEI+Z2V0VHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBKYXZhIGNsYXNzIG9mIG91ciBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0VHlwZSgpIj48Qj5nZXRUeXBlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNnZXRUeXBlTWFwKCkiPjxCPmdldFR5cGVNYXAoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPgorPEREPihKREJDIDIuMCkgUmV0dXJuIHRoZSB0eXBlIG1hcCBmb3IgdGhpcyBjb25uZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0VW5rbm93bigpIj48Qj5nZXRVbmtub3duKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlJldHVybiB0aGUgdW5rbm93biBmbGFnIGZvciB0aGlzIG1hcHBpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjZ2V0VW5rbm93bihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+Z2V0VW5rbm93bihIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPgorPEREPlJldHVybiB0aGUgQWN0aW9uIHRoYXQgc2hvdWxkIGhhbmRsZSB1bmtub3duIHJlcXVlc3QgcGF0aHMsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNnZXRVbmtub3duKGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj48Qj5nZXRVbmtub3duKFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5BY3Rpb25NYXBwaW5nczwvQT4KKzxERD5SZXR1cm4gdGhlIEFjdGlvbiB0aGF0IHNob3VsZCBoYW5kbGUgdW5rbm93biByZXF1ZXN0IHBhdGhzLCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VuY29kZVJlZGlyZWN0VVJMVGFnLmh0bWwjZ2V0VXJsKCkiPjxCPmdldFVybCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VuY29kZVJlZGlyZWN0VVJMVGFnLmh0bWwiPkVuY29kZVJlZGlyZWN0VVJMVGFnPC9BPgorPEREPlJldHVybiB0aGUgVVJMIHRvIGJlIGVuY29kZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VuY29kZVVSTFRhZy5odG1sI2dldFVybCgpIj48Qj5nZXRVcmwoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbmNvZGVVUkxUYWcuaHRtbCI+RW5jb2RlVVJMVGFnPC9BPgorPEREPlJldHVybiB0aGUgVVJMIHRvIGJlIGVuY29kZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2dldFVybCgpIj48Qj5nZXRVcmwoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRVc2VDb3VudCgpIj48Qj5nZXRVc2VDb3VudCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0VXNlbWFwKCkiPjxCPmdldFVzZW1hcCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRVc2VyKCkiPjxCPmdldFVzZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRVc2VyKCkiPjxCPmdldFVzZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFVzZXJQcmluY2lwYWwoKSI+PEI+Z2V0VXNlclByaW5jaXBhbCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0VmFsaWRhdGUoKSI+PEI+Z2V0VmFsaWRhdGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+UmV0dXJuIHRoZSB2YWxpZGF0ZSBmbGFnIGZvciB0aGlzIG1hcHBpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNnZXRWYWxpZGF0aW5nKCkiPjxCPmdldFZhbGlkYXRpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+UmV0dXJuIHRoZSB2YWxpZGF0aW5nIHBhcnNlciBmbGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlckVxdWFsc1RhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJFcXVhbHNUYWcuaHRtbCI+SWZQYXJhbWV0ZXJFcXVhbHNUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBjb21wYXJpc29uIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NdWx0aWJveFRhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBzZXJ2ZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JhZGlvVGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHNlcnZlciB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVzZXRUYWcuaHRtbCNnZXRWYWx1ZSgpIj48Qj5nZXRWYWx1ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPlJldHVybiB0aGUgbGFiZWwgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VJbnB1dFRhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGZpZWxkIHZhbHVlIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck5vdEVxdWFsc1RhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWcuaHRtbCI+SWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBjb21wYXJpc29uIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TdWJtaXRUYWcuaHRtbCNnZXRWYWx1ZSgpIj48Qj5nZXRWYWx1ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBsYWJlbCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2hlY2tib3hUYWcuaHRtbCNnZXRWYWx1ZSgpIj48Qj5nZXRWYWx1ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPlJldHVybiB0aGUgc2VydmVyIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CdXR0b25UYWcuaHRtbCNnZXRWYWx1ZSgpIj48Qj5nZXRWYWx1ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBsYWJlbCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2FuY2VsVGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPgorPEREPlJldHVybiB0aGUgbGFiZWwgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvblRhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHNlcnZlciB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eUVxdWFsc1RhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eUVxdWFsc1RhZy5odG1sIj5JZlByb3BlcnR5RXF1YWxzVGFnPC9BPgorPEREPlJldHVybiB0aGUgbWF0Y2hpbmcgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlOb3RFcXVhbHNUYWcuaHRtbCNnZXRWYWx1ZSgpIj48Qj5nZXRWYWx1ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlOb3RFcXVhbHNUYWcuaHRtbCI+SWZQcm9wZXJ0eU5vdEVxdWFsc1RhZzwvQT4KKzxERD5SZXR1cm4gdGhlIG1hdGNoaW5nIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TZWxlY3RUYWcuaHRtbCNnZXRWYWx1ZSgpIj48Qj5nZXRWYWx1ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBjb21wYXJpc29uIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj5IZWFkZXJUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNnZXRWYWx1ZSgpIj48Qj5nZXRWYWx1ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+Q29va2llVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGZpZWxkIHZhbHVlIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBzZXJ2ZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGxhYmVsIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBzZXJ2ZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNnZXRWYWx1ZSgpIj48Qj5nZXRWYWx1ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIj5SZXNldFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGxhYmVsIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBsYWJlbCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNnZXRWYWx1ZSgpIj48Qj5nZXRWYWx1ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlJldHVybiB0aGUgbGFiZWwgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGNvbXBhcmlzb24gdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPlJldHVybiB0aGUgc2VydmVyIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPgorPEREPlJldHVybnMgdGhlIHZhbHVlIG9mIHRoaXMgbXVsdGlwYXJ0IGVsZW1lbnQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCNnZXRWYWx1ZXMoKSI+PEI+Z2V0VmFsdWVzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+Cis8REQ+R2V0IHRoZSByZXBsYWNlbWVudCB2YWx1ZXMgZm9yIHRoaXMgZXJyb3IgbWVzc2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PEI+Z2V0VmFyaWFibGVJbmZvKFRhZ0RhdGEpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRlaS5odG1sIj5FbnVtZXJhdGVUZWk8L0E+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0dldFByb3BlcnR5VGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PEI+Z2V0VmFyaWFibGVJbmZvKFRhZ0RhdGEpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0dldFByb3BlcnR5VGVpLmh0bWwiPkdldFByb3BlcnR5VGVpPC9BPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PEI+Z2V0VmFyaWFibGVJbmZvKFRhZ0RhdGEpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUZWkuaHRtbCI+SXRlcmF0ZVRlaTwvQT4KKzxERD5SZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PEI+Z2V0VmFyaWFibGVJbmZvKFRhZ0RhdGEpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwiPlNpemVUZWk8L0E+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PEI+Z2V0VmFyaWFibGVJbmZvKFRhZ0RhdGEpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUZWkuaHRtbCI+Q29va2llVGVpPC9BPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPjxCPmdldFZhcmlhYmxlSW5mbyhUYWdEYXRhKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwiPlBhcmFtZXRlclRlaTwvQT4KKzxERD5SZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PEI+Z2V0VmFyaWFibGVJbmZvKFRhZ0RhdGEpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGVpLmh0bWwiPlBhZ2VUZWk8L0E+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUZWkuaHRtbCNnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48Qj5nZXRWYXJpYWJsZUluZm8oVGFnRGF0YSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwiPlJlc291cmNlVGVpPC9BPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCNnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48Qj5nZXRWYXJpYWJsZUluZm8oVGFnRGF0YSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCI+SW5jbHVkZVRlaTwvQT4KKzxERD5SZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUZWkuaHRtbCNnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48Qj5nZXRWYXJpYWJsZUluZm8oVGFnRGF0YSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRlaS5odG1sIj5EZWZpbmVUZWk8L0E+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PEI+Z2V0VmFyaWFibGVJbmZvKFRhZ0RhdGEpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUZWkuaHRtbCI+U3RydXRzVGVpPC9BPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPjxCPmdldFZhcmlhYmxlSW5mbyhUYWdEYXRhKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGVpLmh0bWwiPkhlYWRlclRlaTwvQT4KKzxERD5SZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPjxCPmdldFZhcmlhYmxlSW5mbyhUYWdEYXRhKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPkl0ZXJhdGVUZWk8L0E+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0VnNwYWNlKCkiPjxCPmdldFZzcGFjZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNnZXRXYXJuaW5ncygpIj48Qj5nZXRXYXJuaW5ncygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+R2VuZXJpY0Nvbm5lY3Rpb248L0E+Cis8REQ+UmV0dXJuIHRoZSBmaXJzdCB3YXJuaW5nIHJlcG9ydGVkIGJ5IGNhbGxzIHRvIHRoaXMgQ29ubmVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRXaWR0aCgpIj48Qj5nZXRXaWR0aCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI2dldFdyaXRlTWV0aG9kKGphdmEuYmVhbnMuUHJvcGVydHlEZXNjcmlwdG9yKSI+PEI+Z2V0V3JpdGVNZXRob2QoUHJvcGVydHlEZXNjcmlwdG9yKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwiPlByb3BlcnR5VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGFuIGFjY2Vzc2libGUgcHJvcGVydHkgc2V0dGVyIG1ldGhvZCBmb3IgdGhpcyBwcm9wZXJ0eSwKKyBpZiB0aGVyZSBpcyBvbmU7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sI2dldFhodG1sKCkiPjxCPmdldFhodG1sKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCI+SHRtbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwjR0xPQkFMX0VSUk9SIj48Qj5HTE9CQUxfRVJST1I8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4KKzxERD5UaGUgInByb3BlcnR5IG5hbWUiIG1hcmtlciB0byB1c2UgZm9yIGdsb2JhbCBlcnJvcnMsIGFzIG9wcG9zZWQgdG8KKyB0aG9zZSByZWxhdGVkIHRvIGEgc3BlY2lmaWMgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIj48Qj5HcmVhdGVyRXF1YWxUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwiPkdyZWF0ZXJFcXVhbFRhZzwvQT4uPEREPkV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sI0dyZWF0ZXJFcXVhbFRhZygpIj48Qj5HcmVhdGVyRXF1YWxUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbCI+R3JlYXRlckVxdWFsVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIj48Qj5HcmVhdGVyVGhhblRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIj5HcmVhdGVyVGhhblRhZzwvQT4uPEREPkV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBncmVhdGVyIHRoYW4gdGhlIHNwZWNpZmllZCB2YWx1ZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwjR3JlYXRlclRoYW5UYWcoKSI+PEI+R3JlYXRlclRoYW5UYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIj5HcmVhdGVyVGhhblRhZzwvQT4KKzxERD4mbmJzcDsKKzwvREw+Cis8SFI+Cis8QSBOQU1FPSJfSF8iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPkg8L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNoYW5kbGVSZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5oYW5kbGVSZXF1ZXN0KEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPkFmdGVyIGNvbnN0cnVjdGVkLCB0aGlzIGlzIHRoZSBmaXJzdCBtZXRob2QgY2FsbGVkIG9uCisgYnkgQWN0aW9uU2VydmxldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjaGFuZGxlUmVxdWVzdChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+aGFuZGxlUmVxdWVzdChIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+VGhpcyBtZXRob2QgcG9wdWxhdGVzIHRoZSBpbnRlcm5hbCBoYXNodGFibGVzIHdpdGggbXVsdGlwYXJ0IHJlcXVlc3QgZGF0YS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjaGFzQm9keSgpIj48Qj5oYXNCb2R5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5SZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhpcyB0YWcgaGFzIGEgYm9keS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjaGFzaENvZGUoKSI+PEI+aGFzaENvZGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgaGFzaCBjb2RlIHZhbHVlIGZvciB0aGlzIG1hcC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNoYXNoQ29kZSgpIj48Qj5oYXNoQ29kZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sIj5GYXN0QXJyYXlMaXN0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgaGFzaCBjb2RlIHZhbHVlIGZvciB0aGlzIGxpc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2hhc2hDb2RlKCkiPjxCPmhhc2hDb2RlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIj5GYXN0VHJlZU1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIGhhc2ggY29kZSB2YWx1ZSBmb3IgdGhpcyBtYXAuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCNoYXNOZXh0KCkiPjxCPmhhc05leHQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sIj5JdGVyYXRvckFkYXB0ZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2hlYWRlciI+PEI+aGVhZGVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgSFRUUCByZXF1ZXN0IGhlYWRlciB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjSEVBREVSX0VOQ09ESU5HIj48Qj5IRUFERVJfRU5DT0RJTkc8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPjxCPkhlYWRlclRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPkhlYWRlclRhZzwvQT4uPEREPkRlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSBiYXNlZCBvbiB0aGUgdmFsdWUocykgb2YgdGhlIHNwZWNpZmllZAorIGhlYWRlciByZWNlaXZlZCB3aXRoIHRoaXMgcmVxdWVzdC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjSGVhZGVyVGFnKCkiPjxCPkhlYWRlclRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sIj48Qj5IZWFkZXJUZWk8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sIj5IZWFkZXJUZWk8L0E+LjxERD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+aGVhZGVyPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUZWkuaHRtbCNIZWFkZXJUZWkoKSI+PEI+SGVhZGVyVGVpKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sIj5IZWFkZXJUZWk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2hlYWRNYXAoamF2YS5sYW5nLk9iamVjdCkiPjxCPmhlYWRNYXAoT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwiPkZhc3RUcmVlTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhIHZpZXcgb2YgdGhlIHBvcnRpb24gb2YgdGhpcyBtYXAgd2hvc2Uga2V5cyBhcmUgc3RyaWN0bHkKKyBsZXNzIHRoYW4gdGhlIHNwZWNpZmllZCBrZXkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjaGVpZ2h0Ij48Qj5oZWlnaHQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5UaGUgaW1hZ2UgaGVpZ2h0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9IaWRkZW5UYWcuaHRtbCI+PEI+SGlkZGVuVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0hpZGRlblRhZy5odG1sIj5IaWRkZW5UYWc8L0E+LjxERD5DdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAidGV4dCIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj48Qj5IaWRkZW5UYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj5IaWRkZW5UYWc8L0E+LjxERD5DdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAidGV4dCIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9IaWRkZW5UYWcuaHRtbCNIaWRkZW5UYWcoKSI+PEI+SGlkZGVuVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSGlkZGVuVGFnLmh0bWwiPkhpZGRlblRhZzwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwjSGlkZGVuVGFnKCkiPjxCPkhpZGRlblRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+SGlkZGVuVGFnPC9BPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sI2hyZWYiPjxCPmhyZWY8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+VGhlIGh5cGVybGluayBVUkkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JlZGlyZWN0VGFnLmh0bWwjaHJlZiI+PEI+aHJlZjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPlRoZSBoeXBlcmxpbmsgVVJJLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sI2hyZWYiPjxCPmhyZWY8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sIj5MaW5rMVRhZzwvQT4KKzxERD5UaGUgaHlwZXJsaW5rIFVSSS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjaHJlZiI+PEI+aHJlZjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+Cis8REQ+VGhlIGFic29sdXRlIFVSTCB0byB0aGUgcmVzb3VyY2UgdG8gYmUgaW5jbHVkZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2hyZWYiPjxCPmhyZWY8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBoeXBlcmxpbmsgVVJJLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2hyZWYiPjxCPmhyZWY8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD5UaGUgcmVkaXJlY3QgVVJJLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2hzcGFjZSI+PEI+aHNwYWNlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+VGhlIGhvcml6b250YWwgc3BhY2luZyBhcm91bmQgdGhlIGltYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9IdG1sUHJvcGVydHlUYWcuaHRtbCI+PEI+SHRtbFByb3BlcnR5VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0h0bWxQcm9wZXJ0eVRhZy5odG1sIj5IdG1sUHJvcGVydHlUYWc8L0E+LjxERD5DdXN0b20gdGFnIGltcGxlbWVudGF0aW9uIHRoYXQgYWN0cyBsaWtlCisgPGNvZGU+Jmx0O2pzcDpnZXRQcm9wZXJ0eSZndDs8L2NvZGU+IGJ1dCBlbmNvZGVzIHRoZSBvdXRwdXQgc3RyZWFtIHNvIHRoYXQKKyBIVE1MLXJlbGF0ZWQgY2hhcmFjdGVycyBkbyBub3QgY2F1c2UgZGlmZmljdWx0aWVzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSHRtbFByb3BlcnR5VGFnLmh0bWwjSHRtbFByb3BlcnR5VGFnKCkiPjxCPkh0bWxQcm9wZXJ0eVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0h0bWxQcm9wZXJ0eVRhZy5odG1sIj5IdG1sUHJvcGVydHlUYWc8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCI+PEI+SHRtbFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sIj5IdG1sVGFnPC9BPi48REQ+UmVuZGVycyBhbiBIVE1MIDxodG1sPiBlbGVtZW50IHdpdGggYXBwcm9wcmlhdGUgbGFuZ3VhZ2UgYXR0cmlidXRlcyBpZgorIHRoZXJlIGlzIGEgY3VycmVudCBMb2NhbGUgYXZhaWxhYmxlIGluIHRoZSB1c2VyJ3Mgc2Vzc2lvbi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sI0h0bWxUYWcoKSI+PEI+SHRtbFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPkh0bWxUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCNoeXBlcmxpbmsoKSI+PEI+aHlwZXJsaW5rKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlJldHVybiB0aGUgc3BlY2lmaWVkIGh5cGVybGluaywgbW9kaWZpZWQgYXMgbmVjZXNzYXJ5IHdpdGggb3B0aW9uYWwKKyByZXF1ZXN0IHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmsxVGFnLmh0bWwjaHlwZXJsaW5rKCkiPjxCPmh5cGVybGluaygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmsxVGFnLmh0bWwiPkxpbmsxVGFnPC9BPgorPEREPlJldHVybiB0aGUgc3BlY2lmaWVkIGh5cGVybGluaywgbW9kaWZpZWQgYXMgbmVjZXNzYXJ5IHdpdGggb3B0aW9uYWwKKyByZXF1ZXN0IHBhcmFtZXRlcnMuCis8L0RMPgorPEhSPgorPEEgTkFNRT0iX0lfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5JPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sI2lkIj48Qj5pZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sIj5FbnVtZXJhdGVUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0byBiZSBleHBvc2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9HZXRQcm9wZXJ0eVRhZy5odG1sI2lkIj48Qj5pZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0dldFByb3BlcnR5VGFnLmh0bWwiPkdldFByb3BlcnR5VGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdG8gYmUgZXhwb3NlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sI2lkIj48Qj5pZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRvIGJlIGV4cG9zZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjaWQiPjxCPmlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj5IZWFkZXJUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjaWQiPjxCPmlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2lkIj48Qj5pZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjaWQiPjxCPmlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIj5Db29raWVUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjaWQiPjxCPmlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNpZCI+PEI+aWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+UmVzb3VyY2VUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2lkIj48Qj5pZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjaWQiPjxCPmlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj5TdHJ1dHNUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI2lkIj48Qj5pZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPlBhZ2VUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNpZCI+PEI+aWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0byBiZSBleHBvc2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZkF0dHJpYnV0ZUV4aXN0c1RhZy5odG1sIj48Qj5JZkF0dHJpYnV0ZUV4aXN0c1RhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZkF0dHJpYnV0ZUV4aXN0c1RhZy5odG1sIj5JZkF0dHJpYnV0ZUV4aXN0c1RhZzwvQT4uPEREPkNvbmRpdGlvbmFsbHkgaW5jbHVkZSB0aGUgYm9keSBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZQorIGV4aXN0cyBpbiB0aGUgc3BlY2lmaWVkIHNjb3BlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZBdHRyaWJ1dGVFeGlzdHNUYWcuaHRtbCNJZkF0dHJpYnV0ZUV4aXN0c1RhZygpIj48Qj5JZkF0dHJpYnV0ZUV4aXN0c1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmQXR0cmlidXRlRXhpc3RzVGFnLmh0bWwiPklmQXR0cmlidXRlRXhpc3RzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZkF0dHJpYnV0ZU1pc3NpbmdUYWcuaHRtbCI+PEI+SWZBdHRyaWJ1dGVNaXNzaW5nVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmQXR0cmlidXRlTWlzc2luZ1RhZy5odG1sIj5JZkF0dHJpYnV0ZU1pc3NpbmdUYWc8L0E+LjxERD5Db25kaXRpb25hbGx5IGluY2x1ZGUgdGhlIGJvZHkgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGUKKyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgc3BlY2lmaWVkIHNjb3BlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZBdHRyaWJ1dGVNaXNzaW5nVGFnLmh0bWwjSWZBdHRyaWJ1dGVNaXNzaW5nVGFnKCkiPjxCPklmQXR0cmlidXRlTWlzc2luZ1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmQXR0cmlidXRlTWlzc2luZ1RhZy5odG1sIj5JZkF0dHJpYnV0ZU1pc3NpbmdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyRXF1YWxzVGFnLmh0bWwiPjxCPklmUGFyYW1ldGVyRXF1YWxzVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyRXF1YWxzVGFnLmh0bWwiPklmUGFyYW1ldGVyRXF1YWxzVGFnPC9BPi48REQ+Q29uZGl0aW9uYWxseSBpbmNsdWRlIHRoZSBib2R5IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVyCisgbWF0Y2hlcyB0aGUgc3BlY2lmaWVkIHZhbHVlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJFcXVhbHNUYWcuaHRtbCNJZlBhcmFtZXRlckVxdWFsc1RhZygpIj48Qj5JZlBhcmFtZXRlckVxdWFsc1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyRXF1YWxzVGFnLmh0bWwiPklmUGFyYW1ldGVyRXF1YWxzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck5vdEVxdWFsc1RhZy5odG1sIj48Qj5JZlBhcmFtZXRlck5vdEVxdWFsc1RhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck5vdEVxdWFsc1RhZy5odG1sIj5JZlBhcmFtZXRlck5vdEVxdWFsc1RhZzwvQT4uPEREPkNvbmRpdGlvbmFsbHkgaW5jbHVkZSB0aGUgYm9keSBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcgorIGRvZXMgbm90IG1hdGNoIHRoZSBzcGVjaWZpZWQgdmFsdWUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck5vdEVxdWFsc1RhZy5odG1sI0lmUGFyYW1ldGVyTm90RXF1YWxzVGFnKCkiPjxCPklmUGFyYW1ldGVyTm90RXF1YWxzVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWcuaHRtbCI+SWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTm90TnVsbFRhZy5odG1sIj48Qj5JZlBhcmFtZXRlck5vdE51bGxUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3ROdWxsVGFnLmh0bWwiPklmUGFyYW1ldGVyTm90TnVsbFRhZzwvQT4uPEREPkNvbmRpdGlvbmFsbHkgaW5jbHVkZSB0aGUgYm9keSBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcgorIGlzIHByZXNlbnQgaW4gdGhlIGN1cnJlbnQgcmVxdWVzdCwgYW5kIGhhcyBhIGxlbmd0aCBncmVhdGhlciB0aGFuIHplcm8uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck5vdE51bGxUYWcuaHRtbCNJZlBhcmFtZXRlck5vdE51bGxUYWcoKSI+PEI+SWZQYXJhbWV0ZXJOb3ROdWxsVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3ROdWxsVGFnLmh0bWwiPklmUGFyYW1ldGVyTm90TnVsbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOdWxsVGFnLmh0bWwiPjxCPklmUGFyYW1ldGVyTnVsbFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck51bGxUYWcuaHRtbCI+SWZQYXJhbWV0ZXJOdWxsVGFnPC9BPi48REQ+Q29uZGl0aW9uYWxseSBpbmNsdWRlIHRoZSBib2R5IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVyCisgaXMgbm90IHByZXNlbnQgaW4gdGhlIGN1cnJlbnQgcmVxdWVzdCwgb3IgaXQgaXMgcHJlc2VudCBhcyBhIHplcm8gbGVuZ3RoCisgc3RyaW5nLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOdWxsVGFnLmh0bWwjSWZQYXJhbWV0ZXJOdWxsVGFnKCkiPjxCPklmUGFyYW1ldGVyTnVsbFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTnVsbFRhZy5odG1sIj5JZlBhcmFtZXRlck51bGxUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlFcXVhbHNUYWcuaHRtbCI+PEI+SWZQcm9wZXJ0eUVxdWFsc1RhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlByb3BlcnR5RXF1YWxzVGFnLmh0bWwiPklmUHJvcGVydHlFcXVhbHNUYWc8L0E+LjxERD5Db25kaXRpb25hbGx5IGluY2x1ZGUgdGhlIGJvZHkgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eQorIG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlIChpbiBhbnkgc2NvcGUpIGhhcyB0aGUgc3BlY2lmaWVkIHZhbHVlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eUVxdWFsc1RhZy5odG1sI0lmUHJvcGVydHlFcXVhbHNUYWcoKSI+PEI+SWZQcm9wZXJ0eUVxdWFsc1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlFcXVhbHNUYWcuaHRtbCI+SWZQcm9wZXJ0eUVxdWFsc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eU5vdEVxdWFsc1RhZy5odG1sIj48Qj5JZlByb3BlcnR5Tm90RXF1YWxzVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlOb3RFcXVhbHNUYWcuaHRtbCI+SWZQcm9wZXJ0eU5vdEVxdWFsc1RhZzwvQT4uPEREPkNvbmRpdGlvbmFsbHkgaW5jbHVkZSB0aGUgYm9keSBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5Cisgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGUgKGluIGFueSBzY29wZSkgaGFzIHRoZSBzcGVjaWZpZWQgdmFsdWUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlByb3BlcnR5Tm90RXF1YWxzVGFnLmh0bWwjSWZQcm9wZXJ0eU5vdEVxdWFsc1RhZygpIj48Qj5JZlByb3BlcnR5Tm90RXF1YWxzVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eU5vdEVxdWFsc1RhZy5odG1sIj5JZlByb3BlcnR5Tm90RXF1YWxzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjaWdub3JhYmxlV2hpdGVzcGFjZShjaGFyW10sIGludCwgaW50KSI+PEI+aWdub3JhYmxlV2hpdGVzcGFjZShjaGFyW10sIGludCwgaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+UHJvY2VzcyBub3RpZmljYXRpb24gb2YgaWdub3JhYmxlIHdoaXRlc3BhY2UgcmVjZWl2ZWQgZnJvbSB0aGUgYm9keSBvZgorIGFuIFhNTCBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjaWdub3JlIj48Qj5pZ25vcmU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+U2hvdWxkIHdlIGlnbm9yZSBtaXNzaW5nIGJlYW5zIGFuZCBzaW1wbHkgb3V0cHV0IG5vdGhpbmc/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjaW1hZ2VOYW1lIj48Qj5pbWFnZU5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5UaGUgaW1hZ2UgbmFtZSBmb3IgbmFtZWQgaW1hZ2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPjxCPkltYWdlVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4uPEREPlRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImltYWdlIi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNJbWFnZVRhZygpIj48Qj5JbWFnZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+PEI+SW1nVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPi48REQ+R2VuZXJhdGUgYW4gSU1HIHRhZyB0byB0aGUgc3BlY2lmaWVkIGltYWdlIFVSSS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjSW1nVGFnKCkiPjxCPkltZ1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI2luIj48Qj5pbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwiPk11bHRpcGFydFZhbHVlU3RyZWFtPC9BPgorPEREPnRoZSB1bmRlcmx5aW5nIHN0cmVhbQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjaW5jbHVkZSI+PEI+aW5jbHVkZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5UaGUgY29udGV4dCByZWxhdGl2ZSBwYXRoIG9mIHRoZSBzZXJ2bGV0IG9yIEpTUCByZXNvdXJjZSAodG8gYmUgY2FsbGVkCisgdmlhIDxjb2RlPlJlcXVlc3REaXNwYXRjaGVyLmluY2x1ZGUoKTwvY29kZT4pIHRoYXQgd2lsbCBwcm9jZXNzIHRoaXMKKyByZXF1ZXN0LCByYXRoZXIgdGhhbiBpbnN0YW50aWF0aW5nIGFuZCBjYWxsaW5nIHRoZSBBY3Rpb24gY2xhc3MgdGhhdCBpcworIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+dHlwZTwvY29kZT4gYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sIj48Qj5JbmNsdWRlQWN0aW9uPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sIj5JbmNsdWRlQWN0aW9uPC9BPi48REQ+QW4gPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBpbmNsdWRlcyB0aGUgY29udGV4dC1yZWxhdGl2ZQorIFVSSSBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPnBhcmFtZXRlcjwvY29kZT4gcHJvcGVydHkgb2Ygb3VyIGFzc29jaWF0ZWQKKyA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9JbmNsdWRlQWN0aW9uLmh0bWwjSW5jbHVkZUFjdGlvbigpIj48Qj5JbmNsdWRlQWN0aW9uKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9JbmNsdWRlQWN0aW9uLmh0bWwiPkluY2x1ZGVBY3Rpb248L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0luY2x1ZGVUYWcuaHRtbCI+PEI+SW5jbHVkZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+LjxERD5QZXJmb3JtIGFuIGluY2x1ZGUgb2YgYSBwYWdlIHRoYXQgaXMgbG9va2VkIHVwIGluIHRoZSBnbG9iYWwKKyBBY3Rpb25Gb3J3YXJkcyBjb2xsZWN0aW9uIGFzc29jaWF0ZWQgd2l0aCBvdXIgYXBwbGljYXRpb24uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+PEI+SW5jbHVkZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPi48REQ+RGVmaW5lIHRoZSBjb250ZW50cyBvZiBhIHNwZWNpZmllZCBpbnRyYS1hcHBsaWNhdGlvbiByZXF1ZXN0IGFzIGEKKyBwYWdlIHNjb3BlIGF0dHJpYnV0ZSBvZiB0eXBlIDxjb2RlPmphdmEubGFuZy5TdHJpbmc8L2NvZGU+LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSW5jbHVkZVRhZy5odG1sI0luY2x1ZGVUYWcoKSI+PEI+SW5jbHVkZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjSW5jbHVkZVRhZygpIj48Qj5JbmNsdWRlVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGVpLmh0bWwiPjxCPkluY2x1ZGVUZWk8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCI+SW5jbHVkZVRlaTwvQT4uPEREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5pbmNsdWRlPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGVpLmh0bWwjSW5jbHVkZVRlaSgpIj48Qj5JbmNsdWRlVGVpKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCI+SW5jbHVkZVRlaTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNJTkRFWEVEX0RFTElNIj48Qj5JTkRFWEVEX0RFTElNPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBkZWxpbWl0ZXIgdGhhdCBwcmVjZWVkcyB0aGUgemVyby1yZWxhdGl2ZSBzdWJzY3JpcHQgZm9yIGFuCisgaW5kZXhlZCByZWZlcmVuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjSU5ERVhFRF9ERUxJTTIiPjxCPklOREVYRURfREVMSU0yPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBkZWxpbWl0ZXIgdGhhdCBmb2xsb3dzIHRoZSB6ZXJvLXJlbGF0aXZlIHN1YnNjcmlwdCBmb3IgYW4KKyBpbmRleGVkIHJlZmVyZW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2luZGV4SWQiPjxCPmluZGV4SWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0byBiZSBleHBvc2VkIGFzIHRoZSBjdXJyZW50IGluZGV4LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2luZGV4T2YoamF2YS5sYW5nLk9iamVjdCkiPjxCPmluZGV4T2YoT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCI+RmFzdEFycmF5TGlzdDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtTZWFyY2ggZm9yIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBnaXZlbiBhcmd1bWVudCwgdGVzdGluZworIGZvciBlcXVhbGl0eSB1c2luZyB0aGUgPGNvZGU+ZXF1YWxzKCk8L2NvZGU+IG1ldGhvZCwgYW5kIHJldHVybgorIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4LCBvciAtMSBpZiB0aGUgb2JqZWN0IGlzIG5vdCBmb3VuZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXQoKSI+PEI+aW5pdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5Jbml0aWFsaXplIHRoaXMgc2VydmxldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRBY3Rpb25zKCkiPjxCPmluaXRBY3Rpb25zKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkluaXRpYWxpemUgdGhlIGNvbGxlY3Rpb24gb2YgcHJldmlvdXNseSBpbnN0YW50aWF0ZWQgQWN0aW9uIGluc3RhbmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRBcHBsaWNhdGlvbigpIj48Qj5pbml0QXBwbGljYXRpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+SW5pdGlhbGl6ZSB0aGUgTWVzc2FnZVJlc291cmNlcyBidW5kbGUgZm9yIHRoaXMgYXBwbGljYXRpb24sIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXREYXRhU291cmNlcygpIj48Qj5pbml0RGF0YVNvdXJjZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+SW5pdGlhbGl6ZSB1c2Ugb2YgdGhlIGRhdGEgc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhpcworIGFwcGxpY2F0aW9uIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdERlYnVnKCkiPjxCPmluaXREZWJ1ZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5Jbml0aWFsaXplIHRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIGZvciB0aGlzIGFwcGxpY2F0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdERpZ2VzdGVyKGludCkiPjxCPmluaXREaWdlc3RlcihpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5Db25zdHJ1Y3QgYW5kIHJldHVybiBhIGRpZ2VzdGVyIHRoYXQgdXNlcyB0aGUgbmV3IGNvbmZpZ3VyYXRpb24KKyBmaWxlIGZvcm1hdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXREaWdlc3Rlck9sZChpbnQpIj48Qj5pbml0RGlnZXN0ZXJPbGQoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+Q29uc3RydWN0IGFuZCByZXR1cm4gYSBkaWdlc3RlciB0aGF0IHVzZXMgdGhlIG9sZCBjb25maWd1cmF0aW9uCisgZmlsZSBmb3JtYXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0SW50ZXJuYWwoKSI+PEI+aW5pdEludGVybmFsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkluaXRpYWxpemUgb3VyIGludGVybmFsIE1lc3NhZ2VSZXNvdXJjZXMgYnVuZGxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdE1hcHBpbmcoKSI+PEI+aW5pdE1hcHBpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+SW5pdGlhbGl6ZSB0aGUgbWFwcGluZyBpbmZvcm1hdGlvbiBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRPdGhlcigpIj48Qj5pbml0T3RoZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+SW5pdGlhbGl6ZSBvdGhlciBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgdGhhdCBoYXZlIG5vdCB5ZXQKKyBiZWVuIHByb2Nlc3NlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRTZXJ2bGV0KCkiPjxCPmluaXRTZXJ2bGV0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkluaXRpYWxpemUgdGhlIHNlcnZsZXQgbWFwcGluZyB1bmRlciB3aGljaCBvdXIgY29udHJvbGxlciBzZXJ2bGV0CisgaXMgYmVpbmcgYWNjZXNzZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0VXBsb2FkKCkiPjxCPmluaXRVcGxvYWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+SW5pdGlhbGl6ZSB1cGxvYWQgcGFyYW1ldGVycyBhbmQgImJ1ZmZlclNpemUiLCAibXVsdGlwYXJ0Q2xhc3MiLAorICJtYXhGaWxlU2l6ZSIsICJ0ZW1wRGlyIgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjaW5wdXQiPjxCPmlucHV0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlRoZSBjb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGlucHV0IGZvcm0gdG8gd2hpY2ggY29udHJvbCBzaG91bGQKKyBiZSByZXR1cm5lZCBpZiBhIHZhbGlkYXRpb24gZXJyb3IgaXMgZW5jb3VudGVyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNpbnB1dCI+PEI+aW5wdXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+UmVzb3VyY2VUYWc8L0E+Cis8REQ+UmV0dXJuIGFuIElucHV0U3RyZWFtIHRvIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UgaWYgdGhpcyBpcyBub24tbnVsbC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2lucHV0U3RyZWFtIj48Qj5pbnB1dFN0cmVhbTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbSB1c2VkIGJ5IHRoaXMgY2xhc3MKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNpbnB1dFN0cmVhbSI+PEI+aW5wdXRTdHJlYW08L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5UaGUgaW5wdXQgc3RyZWFtIGluc3RhbmNlIGZvciB0aGlzIGNsYXNzCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj48Qj5JbnNlcnRUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4uPEREPlRoaXMgaXMgdGhlIHRhZyBoYW5kbGVyIGZvciAmbHQ7dGVtcGxhdGU6aW5zZXJ0Jmd0Oywgd2hpY2ggaW5jbHVkZXMgCisgYSB0ZW1wbGF0ZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI0luc2VydFRhZygpIj48Qj5JbnNlcnRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjaW5zdGFuY2UiPjxCPmluc3RhbmNlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlRoZSBpbml0aWFsaXplZCA8Y29kZT5BY3Rpb248L2NvZGU+IGluc3RhbmNlIGZvciB0aGlzIG1hcHBpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbnRlcm5hbCI+PEI+aW50ZXJuYWw8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+VGhlIHJlc291cmNlcyBvYmplY3QgZm9yIG91ciBpbnRlcm5hbCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbnRlcm5hbE5hbWUiPjxCPmludGVybmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5UaGUgSmF2YSBiYXNlIG5hbWUgb2Ygb3VyIGludGVybmFsIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNDYW5jZWxsZWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPmlzQ2FuY2VsbGVkKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD5SZXR1cm5zIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBjdXJyZW50IGZvcm0ncyBjYW5jZWwgYnV0dG9uIHdhcworIHByZXNzZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI2lzQ2xvc2VkKCkiPjxCPmlzQ2xvc2VkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4KKzxERD5SZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBDb25uZWN0aW9uIGlzIGNsb3NlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwjaXNEaXJlY3QoKSI+PEI+aXNEaXJlY3QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj5Db250ZW50PC9BPgorPEREPklzIGNvbnRlbnQgdG8gYmUgcHJpbnRlZCBkaXJlY3RseSAoaXNEaXJlY3QoKSA9PSB0cnVlKSA8YnI+CisgaW5zdGVhZCBvZiBpbmNsdWRlZCAoaXNEaXJlY3QoKSA9PSBmYWxzZSk/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sI2lzRW1wdHkoKSI+PEI+aXNFbXB0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+RmFzdEhhc2hNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgbWFwIGNvbnRhaW5zIG5vIG1hcHBpbmdzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2lzRW1wdHkoKSI+PEI+aXNFbXB0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sIj5GYXN0QXJyYXlMaXN0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1Rlc3QgaWYgdGhpcyBsaXN0IGhhcyBubyBlbGVtZW50cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjaXNFbXB0eSgpIj48Qj5pc0VtcHR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIj5GYXN0VHJlZU1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUZXN0IGlmIHRoaXMgbGlzdCBoYXMgbm8gZWxlbWVudHMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNpc0ZpbGUiPjxCPmlzRmlsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD5XaGV0aGVyIG9yIG5vdCB0aGlzIGVsZW1lbnQgaXMgYSBmaWxlCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNpc0ZpbGUoKSI+PEI+aXNGaWxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPgorPEREPklzIHRoaXMgZWxlbWVudCBhIGZpbGU/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjaXNtYXAiPjxCPmlzbWFwPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+U2VydmVyLXNpZGUgaW1hZ2UgbWFwIGRlY2xhcmF0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2lzTWF0Y2hlZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+aXNNYXRjaGVkKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+RG9lcyB0aGUgc3BlY2lmaWVkIHZhbHVlIG1hdGNoIG9uZSBvZiB0aG9zZSB3ZSBhcmUgbG9va2luZyBmb3I/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjaXNQcmVzZW50KGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5pc1ByZXNlbnQoTG9jYWxlLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBpcyBhIGRlZmluZWQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZAorIGtleSBpbiB0aGUgc3BlY2lmaWVkIExvY2FsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNpc1ByZXNlbnQoamF2YS5sYW5nLlN0cmluZykiPjxCPmlzUHJlc2VudChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBpcyBhIGRlZmluZWQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZAorIGtleSBpbiB0aGUgc3lzdGVtIGRlZmF1bHQgbG9jYWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNpc1JlYWRPbmx5KCkiPjxCPmlzUmVhZE9ubHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPgorPEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIENvbm5lY3Rpb24gaXMgaW4gcmVhZC1vbmx5IG1vZGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjaXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tQ29va2llKCkiPjxCPmlzUmVxdWVzdGVkU2Vzc2lvbklkRnJvbUNvb2tpZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgZmFsc2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjaXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tVXJsKCkiPjxCPmlzUmVxdWVzdGVkU2Vzc2lvbklkRnJvbVVybCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2lzUmVxdWVzdGVkU2Vzc2lvbklkRnJvbVVSTCgpIj48Qj5pc1JlcXVlc3RlZFNlc3Npb25JZEZyb21VUkwoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNpc1JlcXVlc3RlZFNlc3Npb25JZFZhbGlkKCkiPjxCPmlzUmVxdWVzdGVkU2Vzc2lvbklkVmFsaWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNpc1NlY3VyZSgpIj48Qj5pc1NlY3VyZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPmlzVG9rZW5WYWxpZChIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGlzIGEgdHJhbnNhY3Rpb24gdG9rZW4gc3RvcmVkIGluCisgdGhlIHVzZXIncyBjdXJyZW50IHNlc3Npb24sIGFuZCB0aGUgdmFsdWUgc3VibWl0dGVkIGFzIGEgcmVxdWVzdAorIHBhcmFtZXRlciB3aXRoIHRoaXMgYWN0aW9uIG1hdGNoZXMgaXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjaXNVc2VySW5Sb2xlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5pc1VzZXJJblJvbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sIj48Qj5JdGVyYXRlVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4uPEREPkN1c3RvbSB0YWcgdGhhdCBpdGVyYXRlcyB0aGUgZWxlbWVudHMgb2YgYSBjb2xsZWN0aW9uLCB3aGljaCBjYW4gYmUKKyBlaXRoZXIgYW4gYXR0cmlidXRlIG9yIHRoZSBwcm9wZXJ0eSBvZiBhbiBhdHRyaWJ1dGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPjxCPkl0ZXJhdGVUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPi48REQ+Q3VzdG9tIHRhZyB0aGF0IGl0ZXJhdGVzIHRoZSBlbGVtZW50cyBvZiBhIGNvbGxlY3Rpb24sIHdoaWNoIGNhbiBiZQorIGVpdGhlciBhbiBhdHRyaWJ1dGUgb3IgdGhlIHByb3BlcnR5IG9mIGFuIGF0dHJpYnV0ZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCNJdGVyYXRlVGFnKCkiPjxCPkl0ZXJhdGVUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNJdGVyYXRlVGFnKCkiPjxCPkl0ZXJhdGVUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUZWkuaHRtbCI+PEI+SXRlcmF0ZVRlaTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGVpLmh0bWwiPkl0ZXJhdGVUZWk8L0E+LjxERD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+aXRlcmF0ZTwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCI+PEI+SXRlcmF0ZVRlaTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPkl0ZXJhdGVUZWk8L0E+LjxERD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+aXRlcmF0ZTwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUZWkuaHRtbCNJdGVyYXRlVGVpKCkiPjxCPkl0ZXJhdGVUZWkoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGVpLmh0bWwiPkl0ZXJhdGVUZWk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCNJdGVyYXRlVGVpKCkiPjxCPkl0ZXJhdGVUZWkoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPkl0ZXJhdGVUZWk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCNpdGVyYXRvciI+PEI+aXRlcmF0b3I8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+SXRlcmF0b3Igb2YgdGhlIGVsZW1lbnRzIG9mIHRoaXMgY29sbGVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2l0ZXJhdG9yIj48Qj5pdGVyYXRvcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5JdGVyYXRvciBvZiB0aGUgZWxlbWVudHMgb2YgdGhpcyBjb2xsZWN0aW9uLCB3aGlsZSB3ZSBhcmUgYWN0dWFsbHkKKyBydW5uaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2l0ZXJhdG9yKCkiPjxCPml0ZXJhdG9yKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGVsZW1lbnRzIGluIHRoaXMgbGlzdCBpbiBwcm9wZXIgc2VxdWVuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCI+PEI+SXRlcmF0b3JBZGFwdGVyPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwiPkl0ZXJhdG9yQWRhcHRlcjwvQT4uPEREPlV0aWxpdHkgbWV0aG9kIGZvciBjb252ZXJ0aW5nIEVudW1lcmF0aW9uIHRvIGFuIEl0ZXJhdG9yCisgY2xhc3MuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwjSXRlcmF0b3JBZGFwdGVyKGphdmEudXRpbC5FbnVtZXJhdGlvbikiPjxCPkl0ZXJhdG9yQWRhcHRlcihFbnVtZXJhdGlvbik8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCI+SXRlcmF0b3JBZGFwdGVyPC9BPgorPEREPiZuYnNwOworPC9ETD4KKzxIUj4KKzxBIE5BTUU9Il9LXyI+PCEtLSAtLT48L0E+PEgyPgorPEI+SzwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sI2tleSI+PEI+a2V5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+Cis8REQ+VGhlIG1lc3NhZ2Uga2V5IGZvciB0aGlzIGVycm9yIG1lc3NhZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCNrZXkiPjxCPmtleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSBrZXkgb2YgdGhlIG1lc3NhZ2UgdG8gYmUgcmV0cmlldmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNrZXkiPjxCPmtleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2Uga2V5IG9mIHRoZSBtZXNzYWdlIHRvIGJlIHJldHJpZXZlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNrZXkiPjxCPmtleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPlRoZSBrZXkgdXNlZCB0byBsb29rIHVwIHRoZSB0ZXh0IGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgdGhpcworIG9wdGlvbiwgaWYgYW55LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCNrZXlTZXQoKSI+PEI+a2V5U2V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sIj5GYXN0SGFzaE1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gYSBzZXQgdmlldyBvZiB0aGUga2V5cyBjb250YWluZWQgaW4gdGhpcyBtYXAuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2tleVNldCgpIj48Qj5rZXlTZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwiPkZhc3RUcmVlTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhIHNldCB2aWV3IG9mIHRoZSBrZXlzIGNvbnRhaW5lZCBpbiB0aGlzIG1hcC4KKzwvREw+Cis8SFI+Cis8QSBOQU1FPSJfTF8iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPkw8L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uczFUYWcuaHRtbCNsYWJlbE5hbWUiPjxCPmxhYmVsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwiPk9wdGlvbnMxVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgdGhlIGxhYmVscyBjb2xsZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zVGFnLmh0bWwjbGFiZWxOYW1lIj48Qj5sYWJlbE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyB0aGUgbGFiZWxzIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2xhYmVsTmFtZSI+PEI+bGFiZWxOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIHRoZSBsYWJlbHMgY29sbGVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uczFUYWcuaHRtbCNsYWJlbFByb3BlcnR5Ij48Qj5sYWJlbFByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uczFUYWcuaHRtbCI+T3B0aW9uczFUYWc8L0E+Cis8REQ+VGhlIGJlYW4gcHJvcGVydHkgY29udGFpbmluZyB0aGUgbGFiZWxzIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnNUYWcuaHRtbCNsYWJlbFByb3BlcnR5Ij48Qj5sYWJlbFByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPlRoZSBiZWFuIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIGxhYmVscyBjb2xsZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNsYWJlbFByb3BlcnR5Ij48Qj5sYWJlbFByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD5UaGUgYmVhbiBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSBsYWJlbHMgY29sbGVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNsYXN0SW5kZXhPZihqYXZhLmxhbmcuT2JqZWN0KSI+PEI+bGFzdEluZGV4T2YoT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCI+RmFzdEFycmF5TGlzdDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtTZWFyY2ggZm9yIHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgdGhlIGdpdmVuIGFyZ3VtZW50LCB0ZXN0aW5nCisgZm9yIGVxdWFsaXR5IHVzaW5nIHRoZSA8Y29kZT5lcXVhbHMoKTwvY29kZT4gbWV0aG9kLCBhbmQgcmV0dXJuCisgdGhlIGNvcnJlc3BvbmRpbmcgaW5kZXgsIG9yIC0xIGlmIHRoZSBvYmplY3QgaXMgbm90IGZvdW5kLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCNsYXN0S2V5KCkiPjxCPmxhc3RLZXkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwiPkZhc3RUcmVlTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgbGFzdCAoaGlnaGVzdCkga2V5IGN1cnJlbnRseSBpbiB0aGlzIHNvcnRlZCBtYXAuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sI2xlbmd0aCI+PEI+bGVuZ3RoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwiPkVudW1lcmF0ZVRhZzwvQT4KKzxERD5UaGUgbGVuZ3RoIHZhbHVlIG9yIGF0dHJpYnV0ZSBuYW1lICg8PTAgbWVhbnMgbm8gbGltaXQpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwjbGVuZ3RoIj48Qj5sZW5ndGg8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+VGhlIGxlbmd0aCB2YWx1ZSBvciBhdHRyaWJ1dGUgbmFtZSAoPD0wIG1lYW5zIG5vIGxpbWl0KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2xlbmd0aCI+PEI+bGVuZ3RoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBsZW5ndGggdmFsdWUgb3IgYXR0cmlidXRlIG5hbWUgKDw9MCBtZWFucyBubyBsaW1pdCkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sI2xlbmd0aENvdW50Ij48Qj5sZW5ndGhDb3VudDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sIj5FbnVtZXJhdGVUYWc8L0E+Cis8REQ+VGhlIG51bWJlciBvZiBlbGVtZW50cyB3ZSBoYXZlIGFscmVhZHkgcmVuZGVyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCNsZW5ndGhDb3VudCI+PEI+bGVuZ3RoQ291bnQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+VGhlIG51bWJlciBvZiBlbGVtZW50cyB3ZSBoYXZlIGFscmVhZHkgcmVuZGVyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNsZW5ndGhDb3VudCI+PEI+bGVuZ3RoQ291bnQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+VGhlIG51bWJlciBvZiBlbGVtZW50cyB3ZSBoYXZlIGFscmVhZHkgcmVuZGVyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sI2xlbmd0aFZhbHVlIj48Qj5sZW5ndGhWYWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sIj5FbnVtZXJhdGVUYWc8L0E+Cis8REQ+VGhlIGFjdHVhbCBsZW5ndGggdmFsdWUgKGNhbGN1bGF0ZWQgaW4gdGhlIHN0YXJ0IHRhZykuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCNsZW5ndGhWYWx1ZSI+PEI+bGVuZ3RoVmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+VGhlIGFjdHVhbCBsZW5ndGggdmFsdWUgKGNhbGN1bGF0ZWQgaW4gdGhlIHN0YXJ0IHRhZykuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNsZW5ndGhWYWx1ZSI+PEI+bGVuZ3RoVmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+VGhlIGFjdHVhbCBsZW5ndGggdmFsdWUgKGNhbGN1bGF0ZWQgaW4gdGhlIHN0YXJ0IHRhZykuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sIj48Qj5MZXNzRXF1YWxUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiPkxlc3NFcXVhbFRhZzwvQT4uPEREPkV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sI0xlc3NFcXVhbFRhZygpIj48Qj5MZXNzRXF1YWxUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzRXF1YWxUYWcuaHRtbCI+TGVzc0VxdWFsVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sIj48Qj5MZXNzVGhhblRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sIj5MZXNzVGhhblRhZzwvQT4uPEREPkV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBsZXNzIHRoYW4gdGhlIHNwZWNpZmllZCB2YWx1ZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwjTGVzc1RoYW5UYWcoKSI+PEI+TGVzc1RoYW5UYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sIj5MZXNzVGhhblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjbGV2ZWwiPjxCPmxldmVsPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4KKzxERD5UaGUgaW5pdGlhbCB0cmFuc2FjdGlvbiBpc29sYXRpb24gbGV2ZWwgdG8gd2hpY2ggd2Ugc2hvdWxkIHJldHVybgorIGFmdGVyIHJlbGVhc2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmsxVGFnLmh0bWwiPjxCPkxpbmsxVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmsxVGFnLmh0bWwiPkxpbmsxVGFnPC9BPi48REQ+R2VuZXJhdGUgYSBVUkwtZW5jb2RlZCBoeXBlcmxpbmsgdG8gdGhlIHNwZWNpZmllZCBVUkkuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sI0xpbmsxVGFnKCkiPjxCPkxpbmsxVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCI+TGluazFUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2xpbmtOYW1lIj48Qj5saW5rTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+VGhlIGxpbmsgbmFtZSBmb3IgbmFtZWQgbGlua3MuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCI+PEI+TGlua1RhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+LjxERD5HZW5lcmF0ZSBhIFVSTC1lbmNvZGVkIGh5cGVybGluayB0byB0aGUgc3BlY2lmaWVkIFVSSS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj48Qj5MaW5rVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+LjxERD5HZW5lcmF0ZSBhIFVSTC1lbmNvZGVkIGh5cGVybGluayB0byB0aGUgc3BlY2lmaWVkIFVSSS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCNMaW5rVGFnKCkiPjxCPkxpbmtUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI0xpbmtUYWcoKSI+PEI+TGlua1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwjbGlzdCI+PEI+bGlzdDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sIj5BcnJheVN0YWNrPC9BPgorPEREPlRoZSB1bmRlcmx5aW5nIGNvbGxlY3Rpb24gY2xhc3MuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjbGlzdCI+PEI+bGlzdDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sIj5GYXN0QXJyYXlMaXN0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSB1bmRlcmx5aW5nIGxpc3Qgd2UgYXJlIG1hbmFnaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2xpc3RJdGVyYXRvcigpIj48Qj5saXN0SXRlcmF0b3IoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCI+RmFzdEFycmF5TGlzdDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gYW4gaXRlcmF0b3Igb2YgdGhlIGVsZW1lbnRzIG9mIHRoaXMgbGlzdCwgaW4gcHJvcGVyIHNlcXVlbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2xpc3RJdGVyYXRvcihpbnQpIj48Qj5saXN0SXRlcmF0b3IoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCI+RmFzdEFycmF5TGlzdDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gYW4gaXRlcmF0b3Igb2YgdGhlIGVsZW1lbnRzIG9mIHRoaXMgbGlzdCwgaW4gcHJvcGVyIHNlcXVlbmNlLAorIHN0YXJ0aW5nIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCNsb2FkTG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5sb2FkTG9jYWxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPkxvYWQgdGhlIG1lc3NhZ2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIExvY2FsZSBrZXkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNsb2NhbGUiPjxCPmxvY2FsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5TaG91bGQgd2UgY3JlYXRlIGEgPGNvZGU+amF2YS51dGlsLkxvY2FsZTwvY29kZT4gZm9yIHRoaXMgdXNlciwKKyBiYXNlZCBvbiB0aGUgSFRUUCBoZWFkZXJzIG9mIHRoZSByZXF1ZXN0LCBpZiBvbmUgaXMgbm90IHByZXNlbnQ/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sI2xvY2FsZSI+PEI+bG9jYWxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCI+SHRtbFRhZzwvQT4KKzxERD5TaG91bGQgd2Ugc2V0IHRoZSBjdXJyZW50IExvY2FsZSBmb3IgdGhpcyB1c2VyIGlmIG5lZWRlZD8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNsb2NhbGUiPjxCPmxvY2FsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgTG9jYWxlIHRvIGJlIHVzZWQgZm9yCisgbG9va2luZyB1cCBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNsb2NhbGUiPjxCPmxvY2FsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPgorPEREPlRoZSBzZXNzaW9uIGF0dHJpYnV0ZSBrZXkgZm9yIG91ciBsb2NhbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNsb2NhbGUiPjxCPmxvY2FsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD5UaGUgc2Vzc2lvbiBhdHRyaWJ1dGUga2V5IGZvciBvdXIgbG9jYWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2xvY2FsZSI+PEI+bG9jYWxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZSBMb2NhbGUgdG8gYmUgdXNlZCBmb3IKKyBsb29raW5nIHVwIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNMT0NBTEVfS0VZIj48Qj5MT0NBTEVfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+VGhlIHNlc3Npb24gYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggdGhlIHVzZXIncyBzZWxlY3RlZAorIDxjb2RlPmphdmEudXRpbC5Mb2NhbGU8L2NvZGU+IGlzIHN0b3JlZCwgaWYgYW55LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwjbG9jYWxlS2V5Ij48Qj5sb2NhbGVLZXk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+VGhlIHNlc3Npb24gc2NvcGUga2V5IHVuZGVyIHdoaWNoIG91ciBMb2NhbGUgaXMgc3RvcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNsb2NhbGVLZXkiPjxCPmxvY2FsZUtleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+VGhlIHNlc3Npb24gc2NvcGUga2V5IHVuZGVyIHdoaWNoIG91ciBMb2NhbGUgaXMgc3RvcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2xvY2FsZUtleShqYXZhLnV0aWwuTG9jYWxlKSI+PEI+bG9jYWxlS2V5KExvY2FsZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+Q29tcHV0ZSBhbmQgcmV0dXJuIGEga2V5IHRvIGJlIHVzZWQgaW4gY2FjaGluZyBpbmZvcm1hdGlvbiBieSBhIExvY2FsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sI2xvY2FsZXMiPjxCPmxvY2FsZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+VGhlIHNldCBvZiBsb2NhbGUga2V5cyBmb3Igd2hpY2ggd2UgaGF2ZSBhbHJlYWR5IGxvYWRlZCBtZXNzYWdlcywga2V5ZWQKKyBieSB0aGUgdmFsdWUgY2FsY3VsYXRlZCBpbiA8Y29kZT5sb2NhbGVLZXkoKTwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjbG9jYXRpb24iPjxCPmxvY2F0aW9uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+Cis8REQ+VGhlIGxvY2F0aW9uIHdoZXJlIHRoZSBtYXRjaCBtdXN0IGV4aXN0ICg8Y29kZT5zdGFydDwvY29kZT4gb3IKKyA8Y29kZT5lbmQ8L2NvZGU+KSwgb3IgPGNvZGU+bnVsbDwvY29kZT4gZm9yIGFueXdoZXJlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjbG9jYXRvciI+PEI+bG9jYXRvcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5UaGUgTG9jYXRvciBhc3NvY2lhdGVkIHdpdGggb3VyIHBhcnNlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+bG9nKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPkxvZyBhIG1lc3NhZ2UgdG8gdGhlIGxvZyB3cml0ZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZykiPjxCPmxvZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPkxvZyBhIG1lc3NhZ2UgdG8gdGhlIFdyaXRlciB0aGF0IGhhcyBiZWVuIGNvbmZpZ3VyZWQgZm9yIG91ciB1c2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+bG9nKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD5Mb2cgdGhlIHNwZWNpZmllZCBtZXNzYWdlIHRvIG91ciBsb2cgd3JpdGVyLCBpZiB3ZSBoYXZlIG9uZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj48Qj5sb2coU3RyaW5nLCBpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5Mb2cgdGhlIHNwZWNpZmllZCBtZXNzYWdlIGlmIHRoZSBjdXJyZW50IGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgZm9yCisgdGhpcyBzZXJ2bGV0IGhhcyBiZWVuIHNldCB0byBhbiBlcXVhbCBvciBoaWdoZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlRocm93YWJsZSkiPjxCPmxvZyhTdHJpbmcsIFRocm93YWJsZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPkxvZyBhIG1lc3NhZ2UgYW5kIGFzc29jaWF0ZWQgZXhjZXB0aW9uIHRvIHRoZSBsb2cgd3JpdGVyCisgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlRocm93YWJsZSkiPjxCPmxvZyhTdHJpbmcsIFRocm93YWJsZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+TG9nIGEgbWVzc2FnZSBhbmQgZXhjZXB0aW9uIHRvIHRoZSBXcml0ZXIgdGhhdCBoYXMgYmVlbiBjb25maWd1cmVkCisgZm9yIG91ciB1c2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+PEI+bG9nKFN0cmluZywgVGhyb3dhYmxlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPkxvZyB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UgYW5kIGV4Y2VwdGlvbiB0byBvdXIgbG9nIHdyaXRlciwgaWYgd2UKKyBoYXZlIG9uZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjbG9naW5UaW1lb3V0Ij48Qj5sb2dpblRpbWVvdXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPlRoZSBsb2dpbiB0aW1lb3V0IGZvciB0aGlzIGRhdGEgc291cmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNsb2dXcml0ZXIiPjxCPmxvZ1dyaXRlcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+VGhlIGxvZyB3cml0ZXIgZm9yIHRoaXMgZGF0YSBzb3VyY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjTE9OR19DT01QQVJFIj48Qj5MT05HX0NPTVBBUkU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+Cis8REQ+V2Ugd2lsbCBkbyBhIGxvbmcvaW50IGNvbXBhcmlzb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2xvb2t1cCgpIj48Qj5sb29rdXAoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPkxvb2sgdXAgdmFsdWVzIGZvciB0aGUgPGNvZGU+bmFtZTwvY29kZT4sIDxjb2RlPnNjb3BlPC9jb2RlPiwgYW5kCisgPGNvZGU+dHlwZTwvY29kZT4gcHJvcGVydGllcyBpZiBuZWNlc3NhcnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNsb29rdXAoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5sb29rdXAoUGFnZUNvbnRleHQsIFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPkxvY2F0ZSBhbmQgcmV0dXJuIHRoZSBzcGVjaWZpZWQgYmVhbiwgZnJvbSBhbiBvcHRpb25hbGx5IHNwZWNpZmllZAorIHNjb3BlLCBpbiB0aGUgc3BlY2lmaWVkIHBhZ2UgY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2xvb2t1cChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPmxvb2t1cChQYWdlQ29udGV4dCwgU3RyaW5nLCBTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5Mb2NhdGUgYW5kIHJldHVybiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQgYmVhbiwgZnJvbQorIGFuIG9wdGlvbmFsbHkgc3BlY2lmaWVkIHNjb3BlLCBpbiB0aGUgc3BlY2lmaWVkIHBhZ2UgY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNsb3dzcmMiPjxCPmxvd3NyYzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBsb3cgcmVzb2x1dGlvbiBpbWFnZSBzb3VyY2UgVVJJLgorPC9ETD4KKzxIUj4KKzxBIE5BTUU9Il9NXyI+PCEtLSAtLT48L0E+PEgyPgorPEI+TTwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNtYXAiPjxCPm1hcDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+RWFjaCBpbnNlcnQgdGFnIGhhcyBhIG1hcCBvZiBjb250ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCNtYXAiPjxCPm1hcDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+Cis8REQ+VGhlIG1hcC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjbWFwIj48Qj5tYXA8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSB1bmRlcmx5aW5nIG1hcCB3ZSBhcmUgbWFuYWdpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI21hcCI+PEI+bWFwPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIj5GYXN0VHJlZU1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgdW5kZXJseWluZyBtYXAgd2UgYXJlIG1hbmFnaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNtYXAiPjxCPm1hcDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+R2VuZXJpY0Nvbm5lY3Rpb248L0E+Cis8REQ+VGhlIGluaXRpYWwgdHlwZSBtYXAgdG8gd2hpY2ggd2Ugc2hvdWxkIHJldHVybiBhZnRlciByZWxlYXNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI21hcHBpbmciPjxCPm1hcHBpbmc8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPlN0cnV0c1RhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gb2JqZWN0IHRvIGJlIGV4cG9zZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI21hcHBpbmciPjxCPm1hcHBpbmc8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPlRoZSBBY3Rpb25NYXBwaW5nIGluc3RhbmNlIHVzZWQgZm9yIHRoaXMgY2xhc3MKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR19LRVkiPjxCPk1BUFBJTkdfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+VGhlIHJlcXVlc3QgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuQWN0aW9uTWFwcGluZzwvY29kZT4gaW5zdGFuY2UKKyBpcyBwYXNzZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNtYXBwaW5nQ2xhc3MiPjxCPm1hcHBpbmdDbGFzczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5UaGUgSmF2YSBjbGFzcyBuYW1lIG9mIG91ciBBY3Rpb25NYXBwaW5nIGltcGxlbWVudGF0aW9uIGNsYXNzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjbWFwcGluZ3MiPjxCPm1hcHBpbmdzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlRoZSA8Y29kZT5BY3Rpb25NYXBwaW5nczwvY29kZT4gY29sbGVjdGlvbiBvZiB3aGljaCB3ZSBhcmUgYSBwYXJ0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjbWFwcGluZ3MiPjxCPm1hcHBpbmdzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSBjb25maWd1cmVkIG1hcHBpbmdzIGZvciB0aGlzIHdlYiBhcHBsaWNhdGlvbiwga2V5ZWQgYnkgcGF0aC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNtYXBwaW5ncyI+PEI+bWFwcGluZ3M8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5BY3Rpb25NYXBwaW5nczwvQT4KKzxERD5UaGUgY29sbGVjdGlvbiBvZiBBY3Rpb25NYXBwaW5nIGluc3RhbmNlcywga2V5ZWQgYnkgcmVxdWVzdCBwYXRoLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HU19LRVkiPjxCPk1BUFBJTkdTX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPlRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91cgorIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nczwvY29kZT4gY29sbGVjdGlvbgorIGlzIG5vcm1hbGx5IHN0b3JlZCwgdW5sZXNzIG92ZXJyaWRkZW4gd2hlbiBpbml0aWFsaXppbmcgb3VyCisgQWN0aW9uU2VydmxldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI21hcmsoaW50KSI+PEI+bWFyayhpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGlzIG1ldGhvZCBjYWxscyBvbiB0aGUgbWFyaygpIG1ldGhvZCBvZiB0aGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjbWFya1N1cHBvcnRlZCgpIj48Qj5tYXJrU3VwcG9ydGVkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPlRoaXMgbWV0aG9kIGNhbGxzIG9uIHRoZSBtYXJrU3VwcG9ydGVkKCkgbWV0aG9kIG9mIHRoZSB1bmRlcmx5aW5nIElucHV0U3RyZWFtCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNtYXRjaCI+PEI+bWF0Y2g8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+VGhlIGN1cnJlbnQgbWF0Y2ggcGF0dGVybiBmb3IgbmVzdGVkIGVsZW1lbnQgcHJvY2Vzc2luZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwjbWF0Y2giPjxCPm1hdGNoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5UaGUgYWN0dWFsIHZhbHVlIHdlIHdpbGwgbWF0Y2ggYWdhaW5zdCwgY2FsY3VsYXRlZCBpbiBkb1N0YXJ0VGFnKCkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjbWF0Y2giPjxCPm1hdGNoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+VGhlIGFjdHVhbCB2YWx1ZXMgd2Ugd2lsbCBtYXRjaCBhZ2FpbnN0LCBjYWxjdWxhdGVkIGluIGRvU3RhcnRUYWcoKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNtYXRjaGVkQm91bmRhcnlCeXRlcyI+PEI+bWF0Y2hlZEJvdW5kYXJ5Qnl0ZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQT4KKzxERD5ob3cgbWFueSBjdXJyZXRseSBtYXRjaGVkIGJvdW5kYXJ5IGJ5dGVzPworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj48Qj5NYXRjaFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT4uPEREPkV2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIGEgc3Vic3RyaW5nIG9mIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI01hdGNoVGFnKCkiPjxCPk1hdGNoVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjTUFYX0xJTkVfU0laRSI+PEI+TUFYX0xJTkVfU0laRTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5UaGUgbWF4aW11bSBzaXplIGluIGJ5dGVzIG9mIHRoZSBidWZmZXIgdXNlZCB0byByZWFkIGxpbmVzIFs0S10KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjbWF4Q291bnQiPjxCPm1heENvdW50PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD5UaGUgbWF4aW11bSBudW1iZXIgb2YgY29ubmVjdGlvbnMgdG8gYmUgY3JlYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI21heEZpbGVTaXplIj48Qj5tYXhGaWxlU2l6ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5UaGUgbWF4aW11bSBzaXplIGFsbG93ZWQgZm9yIGEgY2xpZW50IHVwbG9hZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwjbWF4bGVuZ3RoIj48Qj5tYXhsZW5ndGg8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIGFsbG93ZWQsIG9yIG5lZ2F0aXZlIGZvciBubyBsaW1pdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtYXhsZW5ndGgiPjxCPm1heGxlbmd0aDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIGFsbG93ZWQsIG9yIG5lZ2F0aXZlIGZvciBubyBsaW1pdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+PEI+TWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0I+PC9BPiAtIGV4Y2VwdGlvbiBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPi48REQ+VGhpcyBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gbXVsdGlwYXJ0IHBvc3QgZGF0YSBleGNlZWRzIHRoZSBtYXhpbXVtCisgdmFsdWUgc2V0PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sI01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKCkiPjxCPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+TWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24obG9uZykiPjxCPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKGxvbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjbWF4TGVuZ3RoTWV0Ij48Qj5tYXhMZW5ndGhNZXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+Cis8REQ+V2hldGhlciBvciBub3QgYnl0ZXMgdXAgdG8gdGhlIG1heGltdW0gbGVuZ3RoIGhhdmUgYmVlbiByZWFkCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNtYXhMZW5ndGhNZXQoKSI+PEI+bWF4TGVuZ3RoTWV0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjbWF4U2l6ZSI+PEI+bWF4U2l6ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGUgbWF4aW11bSBhbGxvd2VkIHNpemUgZm9yIHRoZSBtdWx0aXBhcnQgZGF0YSwgb3IgLTEgZm9yIGFuIHVubGltaXRlZAorIG1heGltdW0gZmlsZSBsZW5ndGgKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNtYXhTaXplIj48Qj5tYXhTaXplPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+VGhlIG1heGltdW0gZmlsZSBzaXplIGluIGJ5dGVzIGFsbG93ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjbWVzc2FnZSI+PEI+bWVzc2FnZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCNtZXNzYWdlIj48Qj5tZXNzYWdlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI21lc3NhZ2UoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5tZXNzYWdlKFBhZ2VDb250ZXh0LCBTdHJpbmcsIFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPkxvb2sgdXAgYW5kIHJldHVybiBhIG1lc3NhZ2Ugc3RyaW5nLCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNtZXNzYWdlKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj48Qj5tZXNzYWdlKFBhZ2VDb250ZXh0LCBTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBPYmplY3RbXSk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5Mb29rIHVwIGFuZCByZXR1cm4gYSBtZXNzYWdlIHN0cmluZywgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI21lc3NhZ2VLZXkoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZykiPjxCPm1lc3NhZ2VLZXkoTG9jYWxlLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPkNvbXB1dGUgYW5kIHJldHVybiBhIGtleSB0byBiZSB1c2VkIGluIGNhY2hpbmcgaW5mb3JtYXRpb24KKyBieSBMb2NhbGUgYW5kIG1lc3NhZ2Uga2V5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI21lc3NhZ2VLZXkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPm1lc3NhZ2VLZXkoU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPkNvbXB1dGUgYW5kIHJldHVybiBhIGtleSB0byBiZSB1c2VkIGluIGNhY2hpbmcgaW5mb3JtYXRpb24KKyBieSBsb2NhbGUga2V5IGFuZCBtZXNzYWdlIGtleS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+PEI+TWVzc2FnZVJlc291cmNlczwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4uPEREPkdlbmVyYWwgcHVycG9zZSBhYnN0cmFjdCBjbGFzcyB0aGF0IGRlc2NyaWJlcyBhbiBBUEkgZm9yIHJldHJpZXZpbmcKKyBMb2NhbGUtc2Vuc2l0aXZlIG1lc3NhZ2VzIGZyb20gdW5kZXJseWluZyByZXNvdXJjZSBsb2NhdGlvbnMgb2YgYW4KKyB1bnNwZWNpZmllZCBkZXNpZ24sIGFuZCBvcHRpb25hbGx5IHV0aWxpemluZyB0aGUgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4KKyBjbGFzcyB0byBwcm9kdWNlIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzIHdpdGggcGFyYW1ldHJpYyByZXBsYWNlbWVudC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjTWVzc2FnZVJlc291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+TWVzc2FnZVJlc291cmNlcyhNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSwgU3RyaW5nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgTWVzc2FnZVJlc291cmNlcyBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI01lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSwgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPjxCPk1lc3NhZ2VSZXNvdXJjZXMoTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIFN0cmluZywgYm9vbGVhbik8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IE1lc3NhZ2VSZXNvdXJjZXMgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPjxCPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+LjxERD5GYWN0b3J5IGZvciA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBpbnN0YW5jZXMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSgpIj48Qj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPkRpc3BhdGNoQWN0aW9uPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCI+Rm9yd2FyZEFjdGlvbjwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9JbmNsdWRlQWN0aW9uLmh0bWwiPkluY2x1ZGVBY3Rpb248L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9IdG1sUHJvcGVydHlUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSHRtbFByb3BlcnR5VGFnLmh0bWwiPkh0bWxQcm9wZXJ0eVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NdWx0aWJveFRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUGFyYW1ldGVyVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwiPk9wdGlvbnMxVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sIj5FbnVtZXJhdGVUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnNUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9HZXRQcm9wZXJ0eVRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9HZXRQcm9wZXJ0eVRhZy5odG1sIj5HZXRQcm9wZXJ0eVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmFkaW9UYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Jlc2V0VGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbmNvZGVSZWRpcmVjdFVSTFRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbmNvZGVSZWRpcmVjdFVSTFRhZy5odG1sIj5FbmNvZGVSZWRpcmVjdFVSTFRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSW5jbHVkZVRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VJbnB1dFRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3J3YXJkVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0ZvcndhcmRUYWcuaHRtbCI+Rm9yd2FyZFRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVkaXJlY3RUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1N1Ym1pdFRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DaGVja2JveFRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DaGVja2JveFRhZy5odG1sIj5DaGVja2JveFRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZVRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlVGFnLmh0bWwiPkJhc2VUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NhbmNlbFRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25UYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCI+TGluazFUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlFcXVhbHNUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eUVxdWFsc1RhZy5odG1sIj5JZlByb3BlcnR5RXF1YWxzVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eU5vdEVxdWFsc1RhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlByb3BlcnR5Tm90RXF1YWxzVGFnLmh0bWwiPklmUHJvcGVydHlOb3RFcXVhbHNUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbmNvZGVVUkxUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW5jb2RlVVJMVGFnLmh0bWwiPkVuY29kZVVSTFRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj5IZWFkZXJUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPkNvb2tpZVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPlJlc291cmNlVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj5TdHJ1dHNUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sIj5QYWdlVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPkh0bWxUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCI+Rm9yd2FyZFRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+VGhlIGNhY2hlIG9mIG1lc3NhZ2VzIHdlIGhhdmUgYWNjdW11bGF0ZWQgb3ZlciB0aW1lLCBrZXllZCBieSB0aGUKKyB2YWx1ZSBjYWxjdWxhdGVkIGluIDxjb2RlPm1lc3NhZ2VLZXkoKTwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sIj5SZXNwb25zZVV0aWxzPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUVTU0FHRVNfS0VZIj48Qj5NRVNTQUdFU19LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD5UaGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIgYXBwbGljYXRpb24gcmVzb3VyY2VzIGFyZQorIG5vcm1hbGx5IHN0b3JlZCwgdW5sZXNzIG92ZXJyaWRkZW4gd2hlbiBpbml0aWFsaXppbmcgb3VyIEFjdGlvblNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+PEI+TWVzc2FnZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+LjxERD5DdXN0b20gdGFnIHRoYXQgcmV0cmlldmVzIGFuIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzIHN0cmluZyAod2l0aAorIG9wdGlvbmFsIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQpIGZyb20gdGhlIDxjb2RlPkFjdGlvblJlc291cmNlczwvY29kZT4KKyBvYmplY3Qgc3RvcmVkIGFzIGEgY29udGV4dCBhdHRyaWJ1dGUgYnkgb3VyIGFzc29jaWF0ZWQKKyA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiBpbXBsZW1lbnRhdGlvbi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj48Qj5NZXNzYWdlVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+LjxERD5DdXN0b20gdGFnIHRoYXQgcmV0cmlldmVzIGFuIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzIHN0cmluZyAod2l0aAorIG9wdGlvbmFsIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQpIGZyb20gdGhlIDxjb2RlPkFjdGlvblJlc291cmNlczwvY29kZT4KKyBvYmplY3Qgc3RvcmVkIGFzIGEgY29udGV4dCBhdHRyaWJ1dGUgYnkgb3VyIGFzc29jaWF0ZWQKKyA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiBpbXBsZW1lbnRhdGlvbi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCNNZXNzYWdlVGFnKCkiPjxCPk1lc3NhZ2VUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNNZXNzYWdlVGFnKCkiPjxCPk1lc3NhZ2VUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjbWV0aG9kIj48Qj5tZXRob2Q8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIHJlcXVlc3QgbWV0aG9kIHVzZWQgd2hlbiBzdWJtaXR0aW5nIHRoaXMgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjbWV0aG9kIj48Qj5tZXRob2Q8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSByZXF1ZXN0IG1ldGhvZCB1c2VkIHdoZW4gc3VibWl0dGluZyB0aGlzIGZvcm0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0VG9wUnVsZS5odG1sI21ldGhvZE5hbWUiPjxCPm1ldGhvZE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0VG9wUnVsZS5odG1sIj5TZXRUb3BSdWxlPC9BPgorPEREPlRoZSBtZXRob2QgbmFtZSB0byBjYWxsIG9uIHRoZSBwYXJlbnQgb2JqZWN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldE5leHRSdWxlLmh0bWwjbWV0aG9kTmFtZSI+PEI+bWV0aG9kTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXROZXh0UnVsZS5odG1sIj5TZXROZXh0UnVsZTwvQT4KKzxERD5UaGUgbWV0aG9kIG5hbWUgdG8gY2FsbCBvbiB0aGUgcGFyZW50IG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsTWV0aG9kUnVsZS5odG1sI21ldGhvZE5hbWUiPjxCPm1ldGhvZE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbE1ldGhvZFJ1bGUuaHRtbCI+Q2FsbE1ldGhvZFJ1bGU8L0E+Cis8REQ+VGhlIG1ldGhvZCBuYW1lIHRvIGNhbGwgb24gdGhlIHBhcmVudCBvYmplY3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI21ldGhvZHMiPjxCPm1ldGhvZHM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPkRpc3BhdGNoQWN0aW9uPC9BPgorPEREPlRoZSBzZXQgb2YgTWV0aG9kIG9iamVjdHMgd2UgaGF2ZSBpbnRyb3NwZWN0ZWQgZm9yIHRoaXMgY2xhc3MsCisga2V5ZWQgYnkgbWV0aG9kIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI21pbkNvdW50Ij48Qj5taW5Db3VudDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+VGhlIG1pbmltdW0gbnVtYmVyIG9mIGNvbm5lY3Rpb25zIHRvIGJlIGNyZWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL011bHRpYm94VGFnLmh0bWwiPjxCPk11bHRpYm94VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL011bHRpYm94VGFnLmh0bWwiPk11bHRpYm94VGFnPC9BPi48REQ+VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiY2hlY2tib3giLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj48Qj5NdWx0aWJveFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+LjxERD5UYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJjaGVja2JveCIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NdWx0aWJveFRhZy5odG1sI011bHRpYm94VGFnKCkiPjxCPk11bHRpYm94VGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNNdWx0aWJveFRhZygpIj48Qj5NdWx0aWJveFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTVVMVElQQVJUX0tFWSI+PEI+TVVMVElQQVJUX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91ciBtdWx0aXBhcnQgY2xhc3MgaXMgc3RvcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjbXVsdGlwYXJ0Q2xhc3MiPjxCPm11bHRpcGFydENsYXNzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlRoZSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSBvZiB0aGUgPGNvZGU+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L2NvZGU+CisgaW1wbGVtZW50YXRpb24gY2xhc3MgdXNlZCB0byBwcm9jZXNzIG11bHRpcGFydCByZXF1ZXN0IGRhdGEgZm9yIHRoaXMgbWFwcGluZworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjbXVsdGlwYXJ0Q2xhc3MiPjxCPm11bHRpcGFydENsYXNzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciBjbGFzcyBuYW1lIHVzZWQgZm9yIGhhbmRsaW5nCisgbXVsdGlwYXJ0IGZvcm0gcmVxdWVzdHMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+PEI+TXVsdGlwYXJ0RWxlbWVudDwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+LjxERD5UaGlzIGNsYXNzIHJlcHJlc2VudHMgYW4gZWxlbWVudCBpbiBhIG11bHRpcGFydCByZXF1ZXN0LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI011bHRpcGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPk11bHRpcGFydEVsZW1lbnQoU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD5Db25zdHJ1Y3RvciBmb3IgYSB0ZXh0IGVsZW1lbnQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI011bHRpcGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgYnl0ZVtdKSI+PEI+TXVsdGlwYXJ0RWxlbWVudChTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBieXRlW10pPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIGNvbnN0cnVjdG9yIHRoYXQgdGFrZXMgYW4gRmlsZSBhcyBhbiBhcmd1bWVudAorICAgICAgICAgICAgIGFzIG9wcG9zZWQgdG8gYSBieXRlIGFycmF5IGFyZ3VtZW50LCB3aGljaCBjYW4gY2F1c2UKKyAgICAgICAgICAgICBtZW1vcnkgcHJvYmxlbXM8L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNNdWx0aXBhcnRFbGVtZW50KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEuaW8uRmlsZSkiPjxCPk11bHRpcGFydEVsZW1lbnQoU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgRmlsZSk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPgorPEREPkNvbnN0cnVjdG9yIGZvciBhIGZpbGUgZWxlbWVudAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj48Qj5NdWx0aXBhcnRJdGVyYXRvcjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4uPEREPlRoZSBNdWx0aXBhcnRJdGVyYXRvciBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgcmVhZGluZyB0aGUKKyBpbnB1dCBkYXRhIG9mIGEgbXVsdGlwYXJ0IHJlcXVlc3QgYW5kIHNwbGl0dGluZyBpdCB1cCBpbnRvCisgaW5wdXQgZWxlbWVudHMsIHdyYXBwZWQgaW5zaWRlIG9mIGEKKyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Q09ERT5NdWx0aXBhcnRFbGVtZW50PC9DT0RFPjwvQT4KKyBmb3IgZWFzeSBkZWZpbml0aW9uLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNNdWx0aXBhcnRJdGVyYXRvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+TXVsdGlwYXJ0SXRlcmF0b3IoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5Db25zdHJ1Y3RzIGEgTXVsdGlwYXJ0SXRlcmF0b3Igd2l0aCBhIGRlZmF1bHQgYnVmZmVyIHNpemUgYW5kIG5vIGZpbGUgc2l6ZQorIGxpbWl0Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjTXVsdGlwYXJ0SXRlcmF0b3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgaW50KSI+PEI+TXVsdGlwYXJ0SXRlcmF0b3IoSHR0cFNlcnZsZXRSZXF1ZXN0LCBpbnQpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPkNvbnN0cnVjdHMgYSBNdWx0aXBhcnRJdGVyYXRvciB3aXRoIHRoZSBzcGVjaWZpZWQgYnVmZmVyIHNpemUgYW5kCisgbm8gZmlsZSBzaXplIGxpbWl0Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjTXVsdGlwYXJ0SXRlcmF0b3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgaW50LCBsb25nKSI+PEI+TXVsdGlwYXJ0SXRlcmF0b3IoSHR0cFNlcnZsZXRSZXF1ZXN0LCBpbnQsIGxvbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPkNvbnN0cnVjdHMgYSBNdWx0aXBhcnRJdGVyYXRvciB3aXRoIHRoZSBzcGVjaWZpZWQgYnVmZmVyIHNpemUgYW5kCisgdGhlIHNwZWNpZmllZCBmaWxlIHNpemUgbGltaXQgaW4gYnl0ZXMKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNNdWx0aXBhcnRJdGVyYXRvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBpbnQsIGxvbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5NdWx0aXBhcnRJdGVyYXRvcihIdHRwU2VydmxldFJlcXVlc3QsIGludCwgbG9uZywgU3RyaW5nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI211bHRpcGFydFJlcXVlc3RIYW5kbGVyIj48Qj5tdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4KKzxERD5UaGUgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgZm9yIHRoaXMgZm9ybSwgY2FuIGJlCisgPGNvZGU+bnVsbDwvY29kZT4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0I+PC9BPiAtIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPi48REQ+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgcHJvdmlkZXMgYW4gc3RhbmRhcmQgaW50ZXJmYWNlIGZvciBzdHJ1dHMgdG8KKyBkZWFsIHdpdGggZmlsZSB1cGxvYWRzIGZyb20gZm9ybXMgd2l0aCBlbmN0eXBlcyBvZiAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj48Qj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4uPEREPlRoaXMgY2xhc3MgZnVuY3Rpb25zIGFzIGEgd3JhcHBlciBhcm91bmQgSHR0cFNlcnZsZXRSZXF1ZXN0IHRvCisgcHJvdmlkZSB3b3JraW5nIGdldFBhcmFtZXRlciBtZXRob2RzIGZvciBtdWx0aXBhcnQgcmVxdWVzdHMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI011bHRpcGFydFJlcXVlc3RXcmFwcGVyKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcihIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj48Qj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQT4uPEREPlRoaXMgY2xhc3MgaW1wbGVtZW50cyBhbiBpbnB1dFN0cmVhbSB0aGF0IHJlYWRzIGFub3RoZXIgc3RyZWFtIHVudGlsIAorIGEgbXVsdGlwYXJ0IGJvdW5kYXJ5IGlzIGZvdW5kLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNNdWx0aXBhcnRWYWx1ZVN0cmVhbShqYXZhLmlvLklucHV0U3RyZWFtLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+TXVsdGlwYXJ0VmFsdWVTdHJlYW0oSW5wdXRTdHJlYW0sIFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0E+Cis8REQ+Q3JlYXRlIGEgc3RyZWFtIHRoYXQgc3RvcHMgcmVhZGluZyBhdCB0aGUgYm91bmRhcnkKKworIE5PVEU6IHRoZSBib3VuZGFyeSBwYXJhbWV0ZXIgaXMgd2l0aG91dCB0aGUgdHJhaWxpbmcgZGFzaGVzICItLSIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sI211bHRpcGxlIj48Qj5tdWx0aXBsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+U2hvdWxkIG11bHRpcGxlIHNlbGVjdGlvbnMgYmUgYWxsb3dlZD8gIEFueSBub24tbnVsbCB2YWx1ZSB3aWxsCisgdHJpZ2dlciByZW5kZXJpbmcgdGhpcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNtdWx0aXBsZSI+PEI+bXVsdGlwbGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPkhlYWRlclRhZzwvQT4KKzxERD5SZXR1cm4gYW4gYXJyYXkgb2YgaGVhZGVyIHZhbHVlcyBpZiA8Y29kZT5tdWx0aXBsZTwvY29kZT4gaXMgbm9uLW51bGwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjbXVsdGlwbGUiPjxCPm11bHRpcGxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIj5Db29raWVUYWc8L0E+Cis8REQ+UmV0dXJuIGFuIGFycmF5IG9mIENvb2tpZXMgaWYgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGlzIG5vbi1udWxsLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI211bHRpcGxlIj48Qj5tdWx0aXBsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+UGFyYW1ldGVyVGFnPC9BPgorPEREPlJldHVybiBhbiBhcnJheSBvZiBwYXJhbWV0ZXIgdmFsdWVzIGlmIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcworIG5vbi1udWxsLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI211bHRpcGxlIj48Qj5tdWx0aXBsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlNob3VsZCBtdWx0aXBsZSBzZWxlY3Rpb25zIGJlIGFsbG93ZWQ/ICBBbnkgbm9uLW51bGwgdmFsdWUgd2lsbAorIHRyaWdnZXIgcmVuZGVyaW5nIHRoaXMuCis8L0RMPgorPEhSPgorPEEgTkFNRT0iX05fIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5OPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBmb3JtIGJlYW4sIGlmIGFueSwgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT4KKzxERD5UaGUgYmVhbiBuYW1lIG9mIHRoaXMgYWN0aW9uIGZvcm0gYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Cis8REQ+VGhlIGxvZ2ljYWwgbmFtZSBvZiB0aGlzIGZvcndhcmQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydHlSdWxlLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0eVJ1bGUuaHRtbCI+U2V0UHJvcGVydHlSdWxlPC9BPgorPEREPlRoZSBhdHRyaWJ1dGUgdGhhdCB3aWxsIGNvbnRhaW4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBKU1AgYmVhbiBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9IdG1sUHJvcGVydHlUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSHRtbFByb3BlcnR5VGFnLmh0bWwiPkh0bWxQcm9wZXJ0eVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgb2JqZWN0IGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIHByb3BlcnR5IGlzIG9idGFpbmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlckVxdWFsc1RhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlckVxdWFsc1RhZy5odG1sIj5JZlBhcmFtZXRlckVxdWFsc1RhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIGJlaW5nIGNvbXBhcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5UaGUgYXR0cmlidXRlIGtleSB1bmRlciB3aGljaCBvdXIgYXNzb2NpYXRlZCBiZWFuIGlzIHN0b3JlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTXVsdGlib3hUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUGFyYW1ldGVyVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGRlc2lyZWQgcGFyYW1ldGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zMVRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zMVRhZy5odG1sIj5PcHRpb25zMVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIHRoZSB2YWx1ZXMgY29sbGVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRXJyb3JzVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+TmFtZSBvZiB0aGUgcmVxdWVzdCBzY29wZSBhdHRyaWJ1dGUgY29udGFpbmluZyBvdXIgZXJyb3IgbWVzc2FnZXMsCisgaWYgYW55LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwiPkVudW1lcmF0ZVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgY29sbGVjdGlvbiBvciBvd25pbmcgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyB0aGUgdmFsdWVzIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0dldFByb3BlcnR5VGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0dldFByb3BlcnR5VGFnLmh0bWwiPkdldFByb3BlcnR5VGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIG93bmluZyB0aGUgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTnVsbFRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck51bGxUYWcuaHRtbCI+SWZQYXJhbWV0ZXJOdWxsVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgYmVpbmcgY29tcGFyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JhZGlvVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Jlc2V0VGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgaW5wdXQgZmllbGQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0luY2x1ZGVUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPlRoZSBsb2dpY2FsIG5hbWUgb2YgdGhlIGdsb2JhbCBBY3Rpb25Gb3J3YXJkIHdlIHdpbGwgbG9vayB1cAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlRmllbGRUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlQXR0cmlidXRlVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VBdHRyaWJ1dGVUYWcuaHRtbCI+QmFzZUF0dHJpYnV0ZVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIGJlaW5nIHRlc3RlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9yd2FyZFRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3J3YXJkVGFnLmh0bWwiPkZvcndhcmRUYWc8L0E+Cis8REQ+VGhlIGxvZ2ljYWwgbmFtZSBvZiB0aGUgZ2xvYmFsIEFjdGlvbkZvcndhcmQgd2Ugd2lsbCBsb29rIHVwCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTm90RXF1YWxzVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTm90RXF1YWxzVGFnLmh0bWwiPklmUGFyYW1ldGVyTm90RXF1YWxzVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgYmVpbmcgY29tcGFyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1RleHRhcmVhVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1RleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NoZWNrYm94VGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTm90TnVsbFRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck5vdE51bGxUYWcuaHRtbCI+SWZQYXJhbWV0ZXJOb3ROdWxsVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgYmVpbmcgY29tcGFyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmsxVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmsxVGFnLmh0bWwiPkxpbmsxVGFnPC9BPgorPEREPlRoZSBKU1AgYmVhbiBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Qcm9wZXJ0eVRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Qcm9wZXJ0eVRhZy5odG1sIj5Qcm9wZXJ0eVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgY29sbGVjdGlvbiBvciBvd25pbmcgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj5IZWFkZXJUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGhlYWRlciB3aG9zZSB2YWx1ZSBpcyB0byBiZSBleHBvc2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD5OYW1lIG9mIHRoZSBiZWFuIHRoYXQgY29udGFpbnMgdGhlIGRhdGEgd2Ugd2lsbCBiZSByZW5kZXJpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIG93bmluZyB0aGUgcHJvcGVydHkgdG8gYmUgZXhwb3NlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gb3duaW5nIHRoZSBwcm9wZXJ0eSB0byBiZSBjb3VudGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPkNvb2tpZVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgY29va2llIHdob3NlIHZhbHVlIGlzIHRvIGJlIGV4cG9zZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+UGFyYW1ldGVyVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZXhwb3NlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+UmVzb3VyY2VUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIHdob3NlIGNvbnRlbnRzIGFyZSB0byBiZSBleHBvc2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5UaGUgSlNQIGJlYW4gbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyB0aGUgdmFsdWVzIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciBlcnJvciBtZXNzYWdlcyAoaWYgYW55KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBpbnB1dCBmaWVsZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+VGhlIEpTUCBiZWFuIG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSBhdHRyaWJ1dGUga2V5IHVuZGVyIHdoaWNoIG91ciBhc3NvY2lhdGVkIGJlYW4gaXMgc3RvcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj5UZXh0YXJlYVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgSlNQIGJlYW4gdG8gYmUgdXNlZCBhcyBhIHZhcmlhYmxlIChpZgorIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkKSwgb3Igd2hvc2UgcHJvcGVydHkgaXMgdG8gYmUKKyBhY2Nlc3NlZCAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZCkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBjb2xsZWN0aW9uIG9yIG93bmluZyBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCI+Rm9yd2FyZFRhZzwvQT4KKzxERD5UaGUgbG9naWNhbCBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBlbnRyeSB0byBiZQorIGxvb2tlZCB1cC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+VGhlIEpTUCBiZWFuIG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPlRoZSBjb250ZW50J3MgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgdGhhdCB0aGlzIHRhZyBpbmNsdWRlcyAob3IgcHJpbnRzKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+VGhlIGVsZW1lbnQgbmFtZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNuYXRpdmVTUUwoamF2YS5sYW5nLlN0cmluZykiPjxCPm5hdGl2ZVNRTChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+R2VuZXJpY0Nvbm5lY3Rpb248L0E+Cis8REQ+Q29udmVydCB0aGUgZ2l2ZW4gU1FMIHN0YXRlbWVudCBpbnRvIHRoZSBzeXN0ZW0ncyBuYXRpdmUgU1FMIGdyYW1tZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjTkVTVEVEX0RFTElNIj48Qj5ORVNURURfREVMSU08L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwiPlByb3BlcnR5VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIGRlbGltaXRlciB0aGF0IHNlcGFyYXRlcyB0aGUgY29tcG9uZW50cyBvZiBhIG5lc3RlZCByZWZlcmVuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCNuZXh0KCkiPjxCPm5leHQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sIj5JdGVyYXRvckFkYXB0ZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNub2NhY2hlIj48Qj5ub2NhY2hlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkluY2x1ZGUgdGhlIG5vLWNhY2hpbmcgaGVhZGVycyBpbiBvdXIgcmVzcG9uc2U/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNub3RhdGlvbkRlY2woamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPm5vdGF0aW9uRGVjbChTdHJpbmcsIFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+UmVjZWl2ZSBub3RpZmljYXRpb24gb2YgYSBub3RhdGlvbiBkZWNsYXJhdGlvbiBldmVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCI+PEI+Tm90RXF1YWxUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCI+Tm90RXF1YWxUYWc8L0E+LjxERD5FdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgYW5kIHZhbHVlIGFyZSBub3QgZXF1YWwuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sI05vdEVxdWFsVGFnKCkiPjxCPk5vdEVxdWFsVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCI+Tm90RXF1YWxUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPjxCPk5vdE1hdGNoVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPk5vdE1hdGNoVGFnPC9BPi48REQ+RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgbm90IGEgc3Vic3RyaW5nIG9mIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sI05vdE1hdGNoVGFnKCkiPjxCPk5vdE1hdGNoVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCI+Tm90TWF0Y2hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbCI+PEI+Tm90UHJlc2VudFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwiPk5vdFByZXNlbnRUYWc8L0E+LjxERD5FdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBub3QgcHJlc2VudCBmb3IgdGhpcyByZXF1ZXN0LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sI05vdFByZXNlbnRUYWcoKSI+PEI+Tm90UHJlc2VudFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbCI+Tm90UHJlc2VudFRhZzwvQT4KKzxERD4mbmJzcDsKKzwvREw+Cis8SFI+Cis8QSBOQU1FPSJfT18iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPk88L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9PYmplY3RDcmVhdGVSdWxlLmh0bWwiPjxCPk9iamVjdENyZWF0ZVJ1bGU8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbCI+T2JqZWN0Q3JlYXRlUnVsZTwvQT4uPEREPlJ1bGUgaW1wbGVtZW50YXRpb24gdGhhdCBjcmVhdGVzIGEgbmV3IG9iamVjdCBhbmQgcHVzaGVzIGl0Cisgb250byB0aGUgb2JqZWN0IHN0YWNrLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9PYmplY3RDcmVhdGVSdWxlLmh0bWwjT2JqZWN0Q3JlYXRlUnVsZShvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5EaWdlc3RlciwgamF2YS5sYW5nLlN0cmluZykiPjxCPk9iamVjdENyZWF0ZVJ1bGUoRGlnZXN0ZXIsIFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbCI+T2JqZWN0Q3JlYXRlUnVsZTwvQT4KKzxERD5Db25zdHJ1Y3QgYW4gb2JqZWN0IGNyZWF0ZSBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBjbGFzcyBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbCNPYmplY3RDcmVhdGVSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+T2JqZWN0Q3JlYXRlUnVsZShEaWdlc3RlciwgU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9PYmplY3RDcmVhdGVSdWxlLmh0bWwiPk9iamVjdENyZWF0ZVJ1bGU8L0E+Cis8REQ+Q29uc3RydWN0IGFuIG9iamVjdCBjcmVhdGUgcnVsZSB3aXRoIHRoZSBzcGVjaWZpZWQgY2xhc3MgbmFtZSBhbmQgYW4KKyBvcHRpb25hbCBhdHRyaWJ1dGUgbmFtZSBjb250YWluaW5nIGFuIG92ZXJyaWRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCNvZmZzZXQiPjxCPm9mZnNldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sIj5FbnVtZXJhdGVUYWc8L0E+Cis8REQ+VGhlIHN0YXJ0aW5nIG9mZnNldCAoemVybyByZWxhdGl2ZSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCNvZmZzZXQiPjxCPm9mZnNldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5UaGUgc3RhcnRpbmcgb2Zmc2V0ICh6ZXJvIHJlbGF0aXZlKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI29mZnNldCI+PEI+b2Zmc2V0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBzdGFydGluZyBvZmZzZXQgKHplcm8gcmVsYXRpdmUpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCNvZmZzZXRWYWx1ZSI+PEI+b2Zmc2V0VmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCI+RW51bWVyYXRlVGFnPC9BPgorPEREPlRoZSBhY3R1YWwgb2Zmc2V0IHZhbHVlIChjYWxjdWxhdGVkIGluIHRoZSBzdGFydCB0YWcpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwjb2Zmc2V0VmFsdWUiPjxCPm9mZnNldFZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBhY3R1YWwgb2Zmc2V0IHZhbHVlIChjYWxjdWxhdGVkIGluIHRoZSBzdGFydCB0YWcpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjb2Zmc2V0VmFsdWUiPjxCPm9mZnNldFZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBhY3R1YWwgb2Zmc2V0IHZhbHVlIChjYWxjdWxhdGVkIGluIHRoZSBzdGFydCB0YWcpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25ibHVyIj48Qj5vbmJsdXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+Q29tcG9uZW50IGxvc3QgZm9jdXMgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25CbHVyIj48Qj5vbkJsdXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5Db21wb25lbnQgbG9zdCBmb2N1cyBldmVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uY2hhbmdlIj48Qj5vbmNoYW5nZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5Db250ZW50IGNoYW5nZWQgYWZ0ZXIgY29tcG9uZW50IGxvc3QgZm9jdXMgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25DaGFuZ2UiPjxCPm9uQ2hhbmdlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+Q29udGVudCBjaGFuZ2VkIGFmdGVyIGNvbXBvbmVudCBsb3N0IGZvY3VzIGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25jbGljayI+PEI+b25jbGljazwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5Nb3VzZSBjbGljayBldmVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbkNsaWNrIj48Qj5vbkNsaWNrPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+TW91c2UgY2xpY2sgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmRibGNsaWNrIj48Qj5vbmRibGNsaWNrPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPk1vdXNlIGRvdWJsZSBjbGljayBldmVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbkRibENsaWNrIj48Qj5vbkRibENsaWNrPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+TW91c2UgZG91YmxlIGNsaWNrIGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25mb2N1cyI+PEI+b25mb2N1czwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5Db21wb25lbnQgaGFzIHJlY2VpdmVkIGZvY3VzIGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI29uRm9jdXMiPjxCPm9uRm9jdXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5Db21wb25lbnQgaGFzIHJlY2VpdmVkIGZvY3VzIGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlkb3duIj48Qj5vbmtleWRvd248L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+S2V5IGRvd24gaW4gY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI29uS2V5RG93biI+PEI+b25LZXlEb3duPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+S2V5IGRvd24gaW4gY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlwcmVzcyI+PEI+b25rZXlwcmVzczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5LZXkgZG93biBhbmQgdXAgdG9nZXRoZXIgaW4gY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI29uS2V5UHJlc3MiPjxCPm9uS2V5UHJlc3M8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5LZXkgZG93biBhbmQgdXAgdG9nZXRoZXIgaW4gY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXl1cCI+PEI+b25rZXl1cDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5LZXkgcmVsZWFzZWQgaW4gY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI29uS2V5VXAiPjxCPm9uS2V5VXA8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5LZXkgcmVsZWFzZWQgaW4gY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZWRvd24iPjxCPm9ubW91c2Vkb3duPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPk1vdXNlIHByZXNzZWQgb24gY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI29uTW91c2VEb3duIj48Qj5vbk1vdXNlRG93bjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPk1vdXNlIHByZXNzZWQgb24gY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW1vdmUiPjxCPm9ubW91c2Vtb3ZlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPk1vdXNlIG1vdmVkIG92ZXIgY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI29uTW91c2VNb3ZlIj48Qj5vbk1vdXNlTW92ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPk1vdXNlIG1vdmVkIG92ZXIgY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW91dCI+PEI+b25tb3VzZW91dDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5Nb3VzZSBleGl0IGNvbXBvbmVudCBldmVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbk1vdXNlT3V0Ij48Qj5vbk1vdXNlT3V0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+TW91c2UgZXhpdCBjb21wb25lbnQgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlb3ZlciI+PEI+b25tb3VzZW92ZXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+TW91c2Ugb3ZlciBjb21wb25lbnQgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25Nb3VzZU92ZXIiPjxCPm9uTW91c2VPdmVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+TW91c2Ugb3ZlciBjb21wb25lbnQgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNldXAiPjxCPm9ubW91c2V1cDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5Nb3VzZSByZWxlYXNlZCBvbiBjb21wb25lbnQgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25Nb3VzZVVwIj48Qj5vbk1vdXNlVXA8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5Nb3VzZSByZWxlYXNlZCBvbiBjb21wb25lbnQgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI29ucmVzZXQiPjxCPm9ucmVzZXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSBvblJlc2V0IGV2ZW50IHNjcmlwdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sI29uUmVzZXQiPjxCPm9uUmVzZXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIG9uUmVzZXQgZXZlbnQgc2NyaXB0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25zZWxlY3QiPjxCPm9uc2VsZWN0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlRleHQgc2VsZWN0ZWQgaW4gY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI29uU2VsZWN0Ij48Qj5vblNlbGVjdDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlRleHQgc2VsZWN0ZWQgaW4gY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNvbnN1Ym1pdCI+PEI+b25zdWJtaXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSBvblN1Ym1pdCBldmVudCBzY3JpcHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNvblN1Ym1pdCI+PEI+b25TdWJtaXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIG9uU3VibWl0IGV2ZW50IHNjcmlwdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjb3BlbigpIj48Qj5vcGVuKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD5PcGVuIHRoZSBpbml0aWFsIGNvbm5lY3Rpb25zIHRoYXQgYXJlIGFwcHJvcHJpYXRlIGZvciB0aGlzIGRhdGEgc291cmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zMVRhZy5odG1sIj48Qj5PcHRpb25zMVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zMVRhZy5odG1sIj5PcHRpb25zMVRhZzwvQT4uPEREPlRhZyBmb3IgY3JlYXRpbmcgbXVsdGlwbGUgJmx0O3NlbGVjdCZndDsgb3B0aW9ucyBmcm9tIGEgY29sbGVjdGlvbi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwjT3B0aW9uczFUYWcoKSI+PEI+T3B0aW9uczFUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zMVRhZy5odG1sIj5PcHRpb25zMVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sIj48Qj5PcHRpb25zVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4uPEREPlRhZyBmb3IgY3JlYXRpbmcgbXVsdGlwbGUgJmx0O3NlbGVjdCZndDsgb3B0aW9ucyBmcm9tIGEgY29sbGVjdGlvbi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj48Qj5PcHRpb25zVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+LjxERD5UYWcgZm9yIGNyZWF0aW5nIG11bHRpcGxlICZsdDtzZWxlY3QmZ3Q7IG9wdGlvbnMgZnJvbSBhIGNvbGxlY3Rpb24uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zVGFnLmh0bWwjT3B0aW9uc1RhZygpIj48Qj5PcHRpb25zVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNPcHRpb25zVGFnKCkiPjxCPk9wdGlvbnNUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25UYWcuaHRtbCI+PEI+T3B0aW9uVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+LjxERD5UYWcgZm9yIHNlbGVjdCBvcHRpb25zLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+PEI+T3B0aW9uVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPi48REQ+VGFnIGZvciBzZWxlY3Qgb3B0aW9ucy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvblRhZy5odG1sI09wdGlvblRhZygpIj48Qj5PcHRpb25UYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI09wdGlvblRhZygpIj48Qj5PcHRpb25UYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQj48L0E+IC0gcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248REQ+Jm5ic3A7PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0I+PC9BPiAtIHBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczxERD4mbmJzcDs8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyPC9CPjwvQT4gLSBwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyPEREPlRoZSBEaWdlc3RlciBwYWNrYWdlIHByb3ZpZGVzIGZvciBydWxlcy1iYXNlZCBwcm9jZXNzaW5nIG9mIGFyYml0cmFyeQorWE1MIGRvY3VtZW50cy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWI8L0I+PC9BPiAtIHBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliPEREPiZuYnNwOzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0I+PC9BPiAtIHBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48REQ+VGhlICJzdHJ1dHMtYmVhbiIgdGFnIGxpYnJhcnkgY29udGFpbnMgSlNQIGN1c3RvbSB0YWdzIHVzZWZ1bCBpbiBkZWZpbmluZyBuZXcKK2JlYW5zIChpbiBhbnkgZGVzaXJlZCBzY29wZSkgZnJvbSBhIHZhcmlldHkgb2YgcG9zc2libGUgc291cmNlcywgYXMgd2VsbCBhcyBhCit0YWcgdG8gcmVuZGVyIGEgcGFydGljdWxhciBiZWFuIChvciBiZWFuIHByb3BlcnR5KSB0byB0aGUgb3V0cHV0IHJlc3BvbnNlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0I+PC9BPiAtIHBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8REQ+PGEgbmFtZT0iZG9jLkRlc2NyaXB0aW9uIj5UaGUgInN0cnV0cy1odG1sIiB0YWcgbGlicmFyeTwvYT4gY29udGFpbnMgSlNQCitjdXN0b20gdGFncyB1c2VmdWwgaW4gY3JlYXRpbmcgZHluYW1pYyBIVE1MIHVzZXIgaW50ZXJmYWNlcywgaW5jbHVkaW5nIGlucHV0Citmb3Jtcy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0I+PC9BPiAtIHBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPEREPgorICAgIFRoZSAic3RydXRzLWxvZ2ljIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbiBtYW5hZ2luZyBjb25kaXRpb25hbAorICAgIGdlbmVyYXRpb24gb2Ygb3V0cHV0IHRleHQsIGxvb3Bpbmcgb3ZlciBvYmplY3QgY29sbGVjdGlvbnMgZm9yIHJlcGV0aXRpdmUgZ2VuZXJhdGlvbgorICAgIG9mIG91dHB1dCB0ZXh0LCBhbmQgYXBwbGljYXRpb24gZmxvdyBtYW5hZ2VtZW50CisgIDxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvQj48L0E+IC0gcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGU8REQ+CisgICAgVGhlICJzdHJ1dHMtdGVtcGxhdGUiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluIGNyZWF0aW5nIGR5bmFtaWMKKyAgICBKU1AgdGVtcGxhdGVzIGZvciBwYWdlcyB3aGljaCBzaGFyZSBhIGNvbW1vbiBmb3JtYXQuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbDwvQj48L0E+IC0gcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbDxERD4mbmJzcDs8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0I+PC9BPiAtIHBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPEREPiZuYnNwOzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9CPjwvQT4gLSBwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnV0aWw8REQ+VGhlIFV0aWxpdGllcyBwYWNrYWdlIHByb3ZpZGVzIGEgdmFyaWV0eSBvZiBmYW1pbGllcyBvZiBjbGFzc2VzLAordG8gc29sdmUgcHJvYmxlbXMgdGhhdCBhcmUgY29tbW9ubHkgZW5jb3VudGVyZWQgaW4gYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucy48L0RMPgorPEhSPgorPEEgTkFNRT0iX1BfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5QPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NvbnN0YW50cy5odG1sI1BhY2thZ2UiPjxCPlBhY2thZ2U8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ29uc3RhbnRzLmh0bWwiPkNvbnN0YW50czwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwjUGFja2FnZSI+PEI+UGFja2FnZTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwiPkNvbnN0YW50czwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3BhZ2UiPjxCPnBhZ2U8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPlRoZSBjb250ZXh0LXJlbGF0aXZlIFVSSSBvZiB0aGUgcGFnZSBvciBzZXJ2bGV0IHRvIGJlIGluY2x1ZGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3BhZ2UiPjxCPnBhZ2U8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5UaGUgY29udGV4dC1yZWxhdGl2ZSBwYXRoLCBzdGFydGluZyB3aXRoIGEgc2xhc2ggY2hhcmFjdGVyLCBvZiB0aGUKKyBpbWFnZSB0byBiZSBkaXNwbGF5ZWQgYnkgdGhpcyByZW5kZXJlZCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNwYWdlIj48Qj5wYWdlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPlRoZSBjb250ZXh0LXJlbGF0aXZlIFVSSSBvZiB0aGUgaW1hZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3BhZ2UiPjxCPnBhZ2U8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBjb250ZXh0LXJlbGF0aXZlIHBhZ2UgVVJMIChiZWdpbm5pbmcgd2l0aCBhIHNsYXNoKSB0byB3aGljaAorIHRoaXMgaHlwZXJsaW5rIHdpbGwgYmUgcmVuZGVyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjcGFnZSI+PEI+cGFnZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPlRoZSBjb250ZXh0LXJlbGF0aXZlIHBhZ2UgVVJMIChiZWdpbm5pbmcgd2l0aCBhIHNsYXNoKSB0byB3aGljaAorIHRoaXMgcmVkaXJlY3Qgd2lsbCBiZSByZW5kZXJlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNwYWdlS2V5Ij48Qj5wYWdlS2V5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSB1bmRlciB3aGljaCB3ZSBzaG91bGQgbG9vayB1cCB0aGUKKyA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUgZm9yIHRoaXMgZ2VuZXJhdGVkIHRhZywgaWYgYW55LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjcGFnZUtleSI+PEI+cGFnZUtleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBjb250ZXh0LXJlbGF0aXZlIFVSSSBvZiB0aGUgaW1hZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sIj48Qj5QYWdlVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPlBhZ2VUYWc8L0E+LjxERD5EZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCBleHBvc2VzIHRoZSByZXF1ZXN0ZWQgcGFnZSBjb250ZXh0CisgaXRlbSBhcyBhIHNjcmlwdGluZyB2YXJpYWJsZSBhbmQgYSBwYWdlIHNjb3BlIGJlYW4uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCNQYWdlVGFnKCkiPjxCPlBhZ2VUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sIj5QYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUZWkuaHRtbCI+PEI+UGFnZVRlaTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRlaS5odG1sIj5QYWdlVGVpPC9BPi48REQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPnBhZ2U8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUZWkuaHRtbCNQYWdlVGVpKCkiPjxCPlBhZ2VUZWkoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRlaS5odG1sIj5QYWdlVGVpPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwjcGFyYW1Db3VudCI+PEI+cGFyYW1Db3VudDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsTWV0aG9kUnVsZS5odG1sIj5DYWxsTWV0aG9kUnVsZTwvQT4KKzxERD5UaGUgbnVtYmVyIG9mIHBhcmFtZXRlcnMgdG8gY29sbGVjdCBmcm9tIDxjb2RlPk1ldGhvZFBhcmFtPC9jb2RlPiBydWxlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3BhcmFtZXRlciI+PEI+cGFyYW1ldGVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPkdlbmVyYWwgcHVycG9zZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBmb3IgdGhpcyBtYXBwaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPjxCPnBhcmFtZXRlcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIEhUVFAgcmVxdWVzdCBwYXJhbWV0ZXIgdG8gYmUgdXNlZCBhcyBhIHZhcmlhYmxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI3BhcmFtZXRlcnMiPjxCPnBhcmFtZXRlcnM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD5UaGUgcGFyYW1ldGVycyBmb3IgdGhpcyBtdWx0aXBhcnQgcmVxdWVzdAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9QYXJhbWV0ZXJUYWcuaHRtbCI+PEI+UGFyYW1ldGVyVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+LjxERD5EaXNwbGF5IHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHF1ZXJ5IHBhcmFtZXRlciBhcyByZWFkLW9ubHkgSFRNTCB0ZXh0LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+PEI+UGFyYW1ldGVyVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+UGFyYW1ldGVyVGFnPC9BPi48REQ+RGVmaW5lIGEgc2NyaXB0aW5nIHZhcmlhYmxlIGJhc2VkIG9uIHRoZSB2YWx1ZShzKSBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHJlY2VpdmVkIHdpdGggdGhpcyByZXF1ZXN0LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUGFyYW1ldGVyVGFnLmh0bWwjUGFyYW1ldGVyVGFnKCkiPjxCPlBhcmFtZXRlclRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjUGFyYW1ldGVyVGFnKCkiPjxCPlBhcmFtZXRlclRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+UGFyYW1ldGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRlaS5odG1sIj48Qj5QYXJhbWV0ZXJUZWk8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRlaS5odG1sIj5QYXJhbWV0ZXJUZWk8L0E+LjxERD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+cGFyYW1ldGVyPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUZWkuaHRtbCNQYXJhbWV0ZXJUZWkoKSI+PEI+UGFyYW1ldGVyVGVpKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRlaS5odG1sIj5QYXJhbWV0ZXJUZWk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcGFyYW1JZCI+PEI+cGFyYW1JZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPkluIHNpdHVhdGlvbnMgd2hlcmUgYW4gaW1hZ2UgaXMgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIChzdWNoIGFzIHRvIGNyZWF0ZQorIGEgY2hhcnQgZ3JhcGgpLCB0aGlzIHNwZWNpZmllcyB0aGUgc2luZ2xlLXBhcmFtZXRlciByZXF1ZXN0IHBhcmFtZXRlcgorIG5hbWUgdG8gZ2VuZXJhdGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3BhcmFtSWQiPjxCPnBhcmFtSWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWUgdG8gZ2VuZXJhdGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjcGFyYW1JZCI+PEI+cGFyYW1JZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWUgdG8gZ2VuZXJhdGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sI3BhcmFtSW5kZXgiPjxCPnBhcmFtSW5kZXg8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sIj5DYWxsUGFyYW1SdWxlPC9BPgorPEREPlRoZSB6ZXJvLXJlbGF0aXZlIGluZGV4IG9mIHRoZSBwYXJhbWV0ZXIgd2UgYXJlIHNhdmluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNwYXJhbU5hbWUiPjxCPnBhcmFtTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3BhcmFtTmFtZSI+PEI+cGFyYW1OYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3BhcmFtTmFtZSI+PEI+cGFyYW1OYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNwYXJhbVByb3BlcnR5Ij48Qj5wYXJhbVByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3BhcmFtUHJvcGVydHkiPjxCPnBhcmFtUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3BhcmFtUHJvcGVydHkiPjxCPnBhcmFtUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNwYXJhbVNjb3BlIj48Qj5wYXJhbVNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gc2NvcGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3BhcmFtU2NvcGUiPjxCPnBhcmFtU2NvcGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHNjb3BlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3BhcmFtU2NvcGUiPjxCPnBhcmFtU2NvcGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBzY29wZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRUb3BSdWxlLmh0bWwjcGFyYW1UeXBlIj48Qj5wYXJhbVR5cGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0VG9wUnVsZS5odG1sIj5TZXRUb3BSdWxlPC9BPgorPEREPlRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIHBhcmFtZXRlciB0eXBlIGV4cGVjdGVkIGJ5IHRoZSBtZXRob2QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0TmV4dFJ1bGUuaHRtbCNwYXJhbVR5cGUiPjxCPnBhcmFtVHlwZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXROZXh0UnVsZS5odG1sIj5TZXROZXh0UnVsZTwvQT4KKzxERD5UaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgdHlwZSBleHBlY3RlZCBieSB0aGUgbWV0aG9kLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwjcGFyYW1UeXBlcyI+PEI+cGFyYW1UeXBlczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsTWV0aG9kUnVsZS5odG1sIj5DYWxsTWV0aG9kUnVsZTwvQT4KKzxERD5UaGUgcGFyYW1ldGVyIHR5cGVzIG9mIHRoZSBwYXJhbWV0ZXJzIHRvIGJlIGNvbGxlY3RlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3BhcnNlKGphdmEuaW8uRmlsZSkiPjxCPnBhcnNlKEZpbGUpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5QYXJzZSB0aGUgY29udGVudCBvZiB0aGUgc3BlY2lmaWVkIGZpbGUgdXNpbmcgdGhpcyBEaWdlc3Rlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3BhcnNlKG9yZy54bWwuc2F4LklucHV0U291cmNlKSI+PEI+cGFyc2UoSW5wdXRTb3VyY2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5QYXJzZSB0aGUgY29udGVudCBvZiB0aGUgc3BlY2lmaWVkIGlucHV0IHNvdXJjZSB1c2luZyB0aGlzIERpZ2VzdGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjcGFyc2UoamF2YS5pby5JbnB1dFN0cmVhbSkiPjxCPnBhcnNlKElucHV0U3RyZWFtKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+UGFyc2UgdGhlIGNvbnRlbnQgb2YgdGhlIHNwZWNpZmllZCBpbnB1dCBzdHJlYW0gdXNpbmcgdGhpcyBEaWdlc3Rlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3BhcnNlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5wYXJzZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5QYXJzZSB0aGUgY29udGVudCBvZiB0aGUgc3BlY2lmaWVkIFVSSSB1c2luZyB0aGlzIERpZ2VzdGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI3BhcnNlQm91bmRhcnkoamF2YS5sYW5nLlN0cmluZykiPjxCPnBhcnNlQm91bmRhcnkoU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+UGFyc2VzIGEgY29udGVudC10eXBlIFN0cmluZyBmb3IgdGhlIGJvdW5kYXJ5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI3BhcnNlQ29udGVudFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnBhcnNlQ29udGVudFR5cGUoU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+UGFyc2VzIHRoZSAiQ29udGVudC1UeXBlIiBsaW5lIG9mIGEgbXVsdGlwYXJ0IGZvcm0gZm9yIGEgY29udGVudCB0eXBlCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjcGFyc2VEaXNwb3NpdGlvbkZpbGVuYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5wYXJzZURpc3Bvc2l0aW9uRmlsZW5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+UmV0cmlldmVzIHRoZSAiZmlsZW5hbWUiIGF0dHJpYnV0ZSBmcm9tIGEgY29udGVudCBkaXNwb3NpdGlvbiBsaW5lCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjcGFyc2VEaXNwb3NpdGlvbk5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnBhcnNlRGlzcG9zaXRpb25OYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPlJldHJpZXZlcyB0aGUgIm5hbWUiIGF0dHJpYnV0ZSBmcm9tIGEgY29udGVudCBkaXNwb3NpdGlvbiBsaW5lCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjcGFyc2VGb3JBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPnBhcnNlRm9yQXR0cmlidXRlKFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+UGFyc2VzIGEgc3RyaW5nIGxvb2tpbmcgZm9yIGEgYXR0cmlidXRlLXZhbHVlIHBhaXIsIGFuZCByZXR1cm5zIHRoZSB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3BhcnNlciI+PEI+cGFyc2VyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPlRoZSBTQVhQYXJzZXIgd2Ugd2lsbCB1c2UgdG8gcGFyc2UgdGhlIGlucHV0IHN0cmVhbS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNwYXJzZVJlcXVlc3QoKSI+PEI+cGFyc2VSZXF1ZXN0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+SGFuZGxlcyByZXRyaWV2aW5nIHRoZSBib3VuZGFyeSBhbmQgc2V0dGluZyB0aGUgaW5wdXQgc3RyZWFtCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3Bhc3N3b3JkIj48Qj5wYXNzd29yZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+VGhlIGRhdGFiYXNlIHBhc3N3b3JkIGZvciB1c2UgaW4gZXN0YWJsaXNoaW5nIGEgY29ubmVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUGFzc3dvcmRUYWcuaHRtbCI+PEI+UGFzc3dvcmRUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUGFzc3dvcmRUYWcuaHRtbCI+UGFzc3dvcmRUYWc8L0E+LjxERD5DdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAidGV4dCIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Bhc3N3b3JkVGFnLmh0bWwiPjxCPlBhc3N3b3JkVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj5QYXNzd29yZFRhZzwvQT4uPEREPkN1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJ0ZXh0Ii48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Bhc3N3b3JkVGFnLmh0bWwjUGFzc3dvcmRUYWcoKSI+PEI+UGFzc3dvcmRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9QYXNzd29yZFRhZy5odG1sIj5QYXNzd29yZFRhZzwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUGFzc3dvcmRUYWcuaHRtbCNQYXNzd29yZFRhZygpIj48Qj5QYXNzd29yZFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj5QYXNzd29yZFRhZzwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNwYXRoIj48Qj5wYXRoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlRoZSBjb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHN1Ym1pdHRlZCByZXF1ZXN0LCBzdGFydGluZyB3aXRoIGEKKyAiLyIgY2hhcmFjdGVyLCBhbmQgd2l0aG91dCB0aGUgZmlsZW5hbWUgZXh0ZW5zaW9uIChpZiBhbnkpLCB0aGF0IGlzCisgbWFwcGVkIHRvIHRoaXMgYWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjcGF0aCI+PEI+cGF0aDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4KKzxERD5UaGUgY29udGV4dC1yZWxhdGl2ZSAoZm9yIGEgZm9yd2FyZCkgb3IgcmVsYXRpdmUgb3IgYWJzb2x1dGUgKGZvciBhCisgcmVkaXJlY3QpIFVSSSBwYXRoIHRvIGJlIGZvcndhcmRlZCB0by4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3BlZWsoKSI+PEI+cGVlaygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5SZXR1cm4gdGhlIHRvcCBvYmplY3Qgb24gdGhlIHN0YWNrIHdpdGhvdXQgcmVtb3ZpbmcgaXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwjcGVlaygpIj48Qj5wZWVrKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwiPkFycmF5U3RhY2s8L0E+Cis8REQ+UmV0dXJuIHRoZSB0b3AgaXRlbSBvZmYgb2YgdGhpcyBzdGFjayB3aXRob3V0IHJlbW92aW5nIGl0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjcGVlayhpbnQpIj48Qj5wZWVrKGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPlJldHVybiB0aGUgbid0aCBvYmplY3QgZG93biB0aGUgc3RhY2ssIHdoZXJlIDAgaXMgdGhlIHRvcCBlbGVtZW50CisgYW5kIFtnZXRDb3VudCgpLTFdIGlzIHRoZSBib3R0b20gZWxlbWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FycmF5U3RhY2suaHRtbCNwZWVrKGludCkiPjxCPnBlZWsoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FycmF5U3RhY2suaHRtbCI+QXJyYXlTdGFjazwvQT4KKzxERD5SZXR1cm4gdGhlIG4ndGggaXRlbSBkb3duICh6ZXJvLXJlbGF0aXZlKSBmcm9tIHRoZSB0b3Agb2YgdGhpcworIHN0YWNrIHdpdGhvdXQgcmVtb3ZpbmcgaXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcFN0YWNrLmh0bWwjcGVlayhqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjxCPnBlZWsoUGFnZUNvbnRleHQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcFN0YWNrLmh0bWwiPkNvbnRlbnRNYXBTdGFjazwvQT4KKzxERD5QZWVrIGF0IHRoZSBtYXAgb24gdG9wIG9mIHRoZSBzdGFjay4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+cGVyZm9ybShBY3Rpb25NYXBwaW5nLCBBY3Rpb25Gb3JtLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5wZXJmb3JtKEFjdGlvbk1hcHBpbmcsIEFjdGlvbkZvcm0sIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj5EaXNwYXRjaEFjdGlvbjwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3J3YXJkQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+cGVyZm9ybShBY3Rpb25NYXBwaW5nLCBBY3Rpb25Gb3JtLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkRm9yd2FyZEFjdGlvbi5odG1sIj5BZGRGb3J3YXJkQWN0aW9uPC9BPgorPEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZU1hcHBpbmdBY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5wZXJmb3JtKEFjdGlvbk1hcHBpbmcsIEFjdGlvbkZvcm0sIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVNYXBwaW5nQWN0aW9uLmh0bWwiPlJlbW92ZU1hcHBpbmdBY3Rpb248L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVsb2FkQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+cGVyZm9ybShBY3Rpb25NYXBwaW5nLCBBY3Rpb25Gb3JtLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVsb2FkQWN0aW9uLmh0bWwiPlJlbG9hZEFjdGlvbjwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Gb3J3YXJkQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+cGVyZm9ybShBY3Rpb25NYXBwaW5nLCBBY3Rpb25Gb3JtLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sIj5Gb3J3YXJkQWN0aW9uPC9BPgorPEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZE1hcHBpbmdBY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5wZXJmb3JtKEFjdGlvbk1hcHBpbmcsIEFjdGlvbkZvcm0sIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRNYXBwaW5nQWN0aW9uLmh0bWwiPkFkZE1hcHBpbmdBY3Rpb248L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlRm9yd2FyZEFjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPnBlcmZvcm0oQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZUZvcndhcmRBY3Rpb24uaHRtbCI+UmVtb3ZlRm9yd2FyZEFjdGlvbjwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVGb3JtQmVhbkFjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPnBlcmZvcm0oQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZUZvcm1CZWFuQWN0aW9uLmh0bWwiPlJlbW92ZUZvcm1CZWFuQWN0aW9uPC9BPgorPEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5wZXJmb3JtKEFjdGlvbk1hcHBpbmcsIEFjdGlvbkZvcm0sIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9JbmNsdWRlQWN0aW9uLmh0bWwiPkluY2x1ZGVBY3Rpb248L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkRm9ybUJlYW5BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5wZXJmb3JtKEFjdGlvbk1hcHBpbmcsIEFjdGlvbkZvcm0sIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3JtQmVhbkFjdGlvbi5odG1sIj5BZGRGb3JtQmVhbkFjdGlvbjwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPjxCPnBlcmZvcm0oQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgU2VydmxldFJlcXVlc3QsIFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgbm9uLUhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZworIG5vbi1IVFRQIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlCisgaXQpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+cGVyZm9ybShBY3Rpb25TZXJ2bGV0LCBBY3Rpb25NYXBwaW5nLCBBY3Rpb25Gb3JtLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSBuZXcgcGVyZm9ybSgpIG1ldGhvZCB3aXRob3V0IGEgc2VydmxldCBhcmd1bWVudDwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPjxCPnBlcmZvcm0oQWN0aW9uU2VydmxldCwgQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgU2VydmxldFJlcXVlc3QsIFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIG5ldyBwZXJmb3JtKCkgbWV0aG9kIHdpdGhvdXQgYSBzZXJ2bGV0IGFyZ3VtZW50PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNwaW5nKGphdmEuc3FsLkNvbm5lY3Rpb24pIj48Qj5waW5nKENvbm5lY3Rpb24pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+UGVyZm9ybSBhbnkgY29uZmlndXJlZCA8Y29kZT5waW5nQ29tbWFuZDwvY29kZT4gYW5kL29yCisgPGNvZGU+cGluZ1F1ZXJ5PC9jb2RlPiBvbiB0aGUgc3BlY2lmaWVkIGNvbm5lY3Rpb24sIHJldHVybmluZyBhbnkKKyBTUUxFeGNlcHRpb24gdGhhdCBpcyBlbmNvdW50ZXJlZCBhbG9uZyB0aGUgd2F5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNwaW5nQ29tbWFuZCI+PEI+cGluZ0NvbW1hbmQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPlRoZSBub24tcXVlcnkgU1FMIGNvbW1hbmQgdXNlZCB0byBwaW5nIGFuIGFsbG9jYXRlZCBjb25uZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNwaW5nUXVlcnkiPjxCPnBpbmdRdWVyeTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+VGhlIHF1ZXJ5IFNRTCBjb21tYW5kIHVzZWQgdG8gcGluZyBhbiBhbGxvY2F0ZWQgY29ubmVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3BvcCgpIj48Qj5wb3AoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+UG9wIHRoZSB0b3Agb2JqZWN0IG9mZiBvZiB0aGUgc3RhY2ssIGFuZCByZXR1cm4gaXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwjcG9wKCkiPjxCPnBvcCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sIj5BcnJheVN0YWNrPC9BPgorPEREPlBvcCB0aGUgdG9wIGl0ZW0gb2ZmIG9mIHRoaXMgc3RhY2sgYW5kIHJldHVybiBpdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCNwb3AoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj48Qj5wb3AoUGFnZUNvbnRleHQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcFN0YWNrLmh0bWwiPkNvbnRlbnRNYXBTdGFjazwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3BvcHVsYXRlKGphdmEubGFuZy5PYmplY3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5wb3B1bGF0ZShPYmplY3QsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5Qb3B1bGF0ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgc3BlY2lmaWVkIEphdmFCZWFuIGZyb20gdGhlIHNwZWNpZmllZAorIEhUVFAgcmVxdWVzdCwgYmFzZWQgb24gbWF0Y2hpbmcgZWFjaCBwYXJhbWV0ZXIgbmFtZSBhZ2FpbnN0IHRoZQorIGNvcnJlc3BvbmRpbmcgSmF2YUJlYW5zICJwcm9wZXJ0eSBzZXR0ZXIiIG1ldGhvZHMgaW4gdGhlIGJlYW4ncyBjbGFzcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sI3BvcHVsYXRlKGphdmEubGFuZy5PYmplY3QsIGphdmEudXRpbC5NYXApIj48Qj5wb3B1bGF0ZShPYmplY3QsIE1hcCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwiPkJlYW5VdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtQb3B1bGF0ZSB0aGUgSmF2YUJlYW5zIHByb3BlcnRpZXMgb2YgdGhlIHNwZWNpZmllZCBiZWFuLCBiYXNlZCBvbgorIHRoZSBzcGVjaWZpZWQgbmFtZS92YWx1ZSBwYWlycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3BvcHVsYXRlKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5wb3B1bGF0ZShPYmplY3QsIFN0cmluZywgU3RyaW5nLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+UG9wdWxhdGUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNwZWNpZmllZCBKYXZhQmVhbiBmcm9tIHRoZSBzcGVjaWZpZWQKKyBIVFRQIHJlcXVlc3QsIGJhc2VkIG9uIG1hdGNoaW5nIGVhY2ggcGFyYW1ldGVyIG5hbWUgKHBsdXMgYW4gb3B0aW9uYWwKKyBwcmVmaXggYW5kL29yIHN1ZmZpeCkgYWdhaW5zdCB0aGUgY29ycmVzcG9uZGluZyBKYXZhQmVhbnMgInByb3BlcnR5Cisgc2V0dGVyIiBtZXRob2RzIGluIHRoZSBiZWFuJ3MgY2xhc3MuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNwcmVmaXgiPjxCPnByZWZpeDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5UaGUgcGFyYW1ldGVyIG5hbWUgcHJlZml4IHVzZWQgdG8gc2VsZWN0IHBhcmFtZXRlcnMgZm9yIHRoaXMgYWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNwcmVwYXJlQ2FsbChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+cHJlcGFyZUNhbGwoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPgorPEREPkNyZWF0ZSBhIDxjb2RlPkNhbGxhYmxlU3RhdGVtZW50PC9jb2RlPiBvYmplY3QgZm9yIGNhbGxpbmcgZGF0YWJhc2UKKyBzdG9yZWQgcHJvY2VkdXJlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjcHJlcGFyZUNhbGwoamF2YS5sYW5nLlN0cmluZywgaW50LCBpbnQpIj48Qj5wcmVwYXJlQ2FsbChTdHJpbmcsIGludCwgaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPgorPEREPihKREJDIDIuMCkgQ3JlYXRlIGEgQ2FsbGFibGVTdGF0ZW1lbnQgb2JqZWN0IHRoYXQgd2lsbCBnZW5lcmF0ZQorIFJlc3VsdFNldCBvYmplY3RzIHdpdGggdGhlIGdpdmVuIHR5cGUgYW5kIGNvbmN1cnJlbmN5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPjxCPnByZXBhcmVFdmVudEhhbmRsZXJzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UHJlcGFyZXMgdGhlIGV2ZW50IGhhbmRsZXJzIGZvciBpbmNsdXNpb24gaW4gdGhlIGNvbXBvbmVudCdzIEhUTUwgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+PEI+cHJlcGFyZUV2ZW50SGFuZGxlcnMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UHJlcGFyZXMgdGhlIGV2ZW50IGhhbmRsZXJzIGZvciBpbmNsdXNpb24gaW4gdGhlIGNvbXBvbmVudCdzIEhUTUwgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+PEI+cHJlcGFyZUZvY3VzRXZlbnRzKFN0cmluZ0J1ZmZlcik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UHJlcGFyZXMgdGhlIGZvY3VzIGV2ZW50IGhhbmRsZXJzLCBhcHBlbmRpbmcgdGhlbSB0byB0aGUgdGhlIGdpdmVuCisgU3RyaW5nQnVmZmVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUZvY3VzRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj48Qj5wcmVwYXJlRm9jdXNFdmVudHMoU3RyaW5nQnVmZmVyKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UHJlcGFyZXMgdGhlIGZvY3VzIGV2ZW50IGhhbmRsZXJzLCBhcHBlbmRpbmcgdGhlbSB0byB0aGUgdGhlIGdpdmVuCisgU3RyaW5nQnVmZmVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPjxCPnByZXBhcmVLZXlFdmVudHMoU3RyaW5nQnVmZmVyKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5QcmVwYXJlcyB0aGUga2V5Ym9hcmQgZXZlbnQgaGFuZGxlcnMsIGFwcGVuZGluZyB0aGVtIHRvIHRoZSB0aGUgZ2l2ZW4KKyBTdHJpbmdCdWZmZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlS2V5RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj48Qj5wcmVwYXJlS2V5RXZlbnRzKFN0cmluZ0J1ZmZlcik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlByZXBhcmVzIHRoZSBrZXlib2FyZCBldmVudCBoYW5kbGVycywgYXBwZW5kaW5nIHRoZW0gdG8gdGhlIHRoZSBnaXZlbgorIFN0cmluZ0J1ZmZlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlTW91c2VFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPjxCPnByZXBhcmVNb3VzZUV2ZW50cyhTdHJpbmdCdWZmZXIpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlByZXBhcmVzIHRoZSBtb3VzZSBldmVudCBoYW5kbGVycywgYXBwZW5kaW5nIHRoZW0gdG8gdGhlIHRoZSBnaXZlbgorIFN0cmluZ0J1ZmZlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+PEI+cHJlcGFyZU1vdXNlRXZlbnRzKFN0cmluZ0J1ZmZlcik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlByZXBhcmVzIHRoZSBtb3VzZSBldmVudCBoYW5kbGVycywgYXBwZW5kaW5nIHRoZW0gdG8gdGhlIHRoZSBnaXZlbgorIFN0cmluZ0J1ZmZlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjcHJlcGFyZVN0YXRlbWVudChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+cHJlcGFyZVN0YXRlbWVudChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+R2VuZXJpY0Nvbm5lY3Rpb248L0E+Cis8REQ+Q3JlYXRlIGEgPGNvZGU+UHJlcGFyZWRTdGF0ZW1lbnQ8L2NvZGU+IG9iamVjdCBmb3Igc2VuZGluZworIHBhcmFtZXRlcml6ZWQgU1FMIHN0YXRlbWVudHMgdG8gdGhlIGRhdGFiYXNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNwcmVwYXJlU3RhdGVtZW50KGphdmEubGFuZy5TdHJpbmcsIGludCwgaW50KSI+PEI+cHJlcGFyZVN0YXRlbWVudChTdHJpbmcsIGludCwgaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPgorPEREPihKREJDIDIuMCkgQ3JlYXRlIGEgUHJlcGFyZWRTdGF0ZW1lbnQgb2JqZWN0IHRoYXQgd2lsbCBnZW5lcmF0ZQorIFJlc3VsdFNldCBvYmplY3RzIHdpdGggdGhlIGdpdmVuIHR5cGUgYW5kIGNvbmN1cnJlbmN5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+PEI+cHJlcGFyZVN0eWxlcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlByZXBhcmVzIHRoZSBzdHlsZSBhdHRyaWJ1dGVzIGZvciBpbmNsdXNpb24gaW4gdGhlIGNvbXBvbmVudCdzIEhUTUwgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVN0eWxlcygpIj48Qj5wcmVwYXJlU3R5bGVzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlByZXBhcmVzIHRoZSBzdHlsZSBhdHRyaWJ1dGVzIGZvciBpbmNsdXNpb24gaW4gdGhlIGNvbXBvbmVudCdzIEhUTUwgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj48Qj5wcmVwYXJlVGV4dEV2ZW50cyhTdHJpbmdCdWZmZXIpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlByZXBhcmVzIHRoZSB0ZXh0IGV2ZW50IGhhbmRsZXJzLCBhcHBlbmRpbmcgdGhlbSB0byB0aGUgdGhlIGdpdmVuCisgU3RyaW5nQnVmZmVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPjxCPnByZXBhcmVUZXh0RXZlbnRzKFN0cmluZ0J1ZmZlcik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlByZXBhcmVzIHRoZSB0ZXh0IGV2ZW50IGhhbmRsZXJzLCBhcHBlbmRpbmcgdGhlbSB0byB0aGUgdGhlIGdpdmVuCisgU3RyaW5nQnVmZmVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjcHJlc2VudChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPnByZXNlbnQoUGFnZUNvbnRleHQsIFN0cmluZywgU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+UmV0dXJuIHRydWUgaWYgYSBtZXNzYWdlIHN0cmluZyBmb3IgdGhlIHNwZWNpZmllZCBtZXNzYWdlIGtleQorIGlzIHByZXNlbnQgZm9yIHRoZSBzcGVjaWZpZWQgTG9jYWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPjxCPlByZXNlbnRUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj5QcmVzZW50VGFnPC9BPi48REQ+RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgcHJlc2VudCBmb3IgdGhpcyByZXF1ZXN0LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sI1ByZXNlbnRUYWcoKSI+PEI+UHJlc2VudFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+UHJlc2VudFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQoYm9vbGVhbikiPjxCPnByaW50KGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+UHJpbnQgYSBib29sZWFuIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludChjaGFyKSI+PEI+cHJpbnQoY2hhcik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5QcmludCBhIGNoYXJhY3RlciB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQoY2hhcltdKSI+PEI+cHJpbnQoY2hhcltdKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPlByaW50IGEgY2hhcmFjdGVyIGFycmF5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludChkb3VibGUpIj48Qj5wcmludChkb3VibGUpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+UHJpbnQgYSBkb3VibGUgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50KGZsb2F0KSI+PEI+cHJpbnQoZmxvYXQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+UHJpbnQgYSBmbG9hdCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQoaW50KSI+PEI+cHJpbnQoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPlByaW50IGFuIGludGVnZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50KGxvbmcpIj48Qj5wcmludChsb25nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPlByaW50IGEgbG9uZyB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQoamF2YS5sYW5nLk9iamVjdCkiPjxCPnByaW50KE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5QcmludCBhbiBvYmplY3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50KGphdmEubGFuZy5TdHJpbmcpIj48Qj5wcmludChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+UHJpbnQgYSBTdHJpbmcgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNwcmludGFibGVVUkwoamF2YS5uZXQuVVJMKSI+PEI+cHJpbnRhYmxlVVJMKFVSTCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5Db21wdXRlIHRoZSBwcmludGFibGUgcmVwcmVzZW50YXRpb24gb2YgYSBVUkwsIGxlYXZpbmcgb2ZmIHRoZQorIHNjaGVtZS9ob3N0L3BvcnQgcGFydCBpZiBubyBob3N0IGlzIHNwZWNpZmllZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnRsbigpIj48Qj5wcmludGxuKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5UZXJtaW5hdGUgdGhlIGN1cnJlbnQgbGluZSBhbmQgZmx1c2ggdGhlIGJ1ZmZlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnRsbihib29sZWFuKSI+PEI+cHJpbnRsbihib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPlByaW50IGEgYm9vbGVhbiB2YWx1ZSBhbmQgdGVybWluYXRlIHRoZSBsaW5lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludGxuKGNoYXIpIj48Qj5wcmludGxuKGNoYXIpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+UHJpbnQgYSBjaGFyYWN0ZXIgdmFsdWUgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnRsbihjaGFyW10pIj48Qj5wcmludGxuKGNoYXJbXSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5QcmludCBhIGNoYXJhY3RlciBhcnJheSBhbmQgdGVybWluYXRlIHRoZSBsaW5lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludGxuKGRvdWJsZSkiPjxCPnByaW50bG4oZG91YmxlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPlByaW50IGEgZG91YmxlIHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4oZmxvYXQpIj48Qj5wcmludGxuKGZsb2F0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPlByaW50IGEgZmxvYXQgdmFsdWUgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnRsbihpbnQpIj48Qj5wcmludGxuKGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5QcmludCBhbiBpbnRlZ2VyIHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4obG9uZykiPjxCPnByaW50bG4obG9uZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5QcmludCBhIGxvbmcgdmFsdWUgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnRsbihqYXZhLmxhbmcuT2JqZWN0KSI+PEI+cHJpbnRsbihPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+UHJpbnQgYW4gb2JqZWN0IGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4oamF2YS5sYW5nLlN0cmluZykiPjxCPnByaW50bG4oU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPlByaW50IGEgU3RyaW5nIHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNwcm9jZXNzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+cHJvY2VzcyhIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5Qcm9jZXNzIGFuIEhUVFAgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3Byb2Nlc3NBY3Rpb25DcmVhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5wcm9jZXNzQWN0aW9uQ3JlYXRlKEFjdGlvbk1hcHBpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkNyZWF0ZSBvciByZXRyaWV2ZSB0aGUgQWN0aW9uIGluc3RhbmNlIHRoYXQgd2lsbCBwcm9jZXNzIHRoaXMgcmVxdWVzdCwKKyBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiBubyBzdWNoIEFjdGlvbiBpbnN0YW5jZSBjYW4gYmUgY3JlYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3Byb2Nlc3NBY3Rpb25Gb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+cHJvY2Vzc0FjdGlvbkZvcm0oQWN0aW9uTWFwcGluZywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+UmV0cmlldmUgYW5kIHJldHVybiB0aGUgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gYmVhbiBhc3NvY2lhdGVkIHdpdGgKKyB0aGlzIG1hcHBpbmcsIGNyZWF0aW5nIGFuZCBzdGFzaGluZyBvbmUgaWYgbmVjZXNzYXJ5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjcHJvY2Vzc0FjdGlvbkZvcndhcmQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5wcm9jZXNzQWN0aW9uRm9yd2FyZChBY3Rpb25Gb3J3YXJkLCBBY3Rpb25NYXBwaW5nLCBBY3Rpb25Gb3JtLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5Gb3J3YXJkIHRvIHRoZSBzcGVjaWZpZWQgZGVzdGluYXRpb24sIGJ5IHRoZSBzcGVjaWZpZWQgbWVjaGFuaXNtLAorIGlmIGFuIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIHdhcyByZXR1cm5lZCBieSB0aGUKKyA8Y29kZT5BY3Rpb248L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjcHJvY2Vzc0FjdGlvblBlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPnByb2Nlc3NBY3Rpb25QZXJmb3JtKEFjdGlvbiwgQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+QXNrIHRoZSBzcGVjaWZpZWQgQWN0aW9uIGluc3RhbmNlIHRvIGhhbmRsZSB0aGlzIHJlcXVlc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNwcm9jZXNzQ29udGVudChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPnByb2Nlc3NDb250ZW50KEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5TZXQgdGhlIGRlZmF1bHQgY29udGVudCB0eXBlICh3aXRoIG9wdGlvbmFsIGNoYXJhY3RlciBlbmNvZGluZykgZm9yCisgYWxsIHJlc3BvbnNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3Byb2Nlc3NGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPnByb2Nlc3NGb3J3YXJkKEFjdGlvbk1hcHBpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlByb2Nlc3MgYSBmb3J3YXJkIHJlcXVlc3RlZCBieSB0aGlzIG1hcHBpbmcsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3Byb2Nlc3NJbmNsdWRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPnByb2Nlc3NJbmNsdWRlKEFjdGlvbk1hcHBpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlByb2Nlc3MgYW4gaW5jbHVkZSByZXF1ZXN0ZWQgYnkgdGhpcyBtYXBwaW5nLCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPnByb2Nlc3NpbmdJbnN0cnVjdGlvbihTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPlByb2Nlc3Mgbm90aWZpY2F0aW9uIG9mIGEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiB0aGF0IHdhcyBlbmNvdW50ZXJlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3Byb2Nlc3NMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnByb2Nlc3NMb2NhbGUoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+QXV0b21hdGljYWxseSBjYWxjdWxhdGUgYW4gYXBwcm9wcmlhdGUgPGNvZGU+amF2YS51dGlsLkxvY2FsZTwvY29kZT4KKyBmb3IgdGhpcyB1c2VyLCBhbmQgc3RvcmUgaXQgaW4gdGhlaXIgc2Vzc2lvbiwgaWYgdGhlcmUgaXMgbm8gc3VjaAorIExvY2FsZSBvYmplY3QgcHJlc2VudCBhbHJlYWR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjcHJvY2Vzc01hcHBpbmcoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnByb2Nlc3NNYXBwaW5nKFN0cmluZywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+SWRlbnRpZnkgYW5kIHJldHVybiBhbiBhcHByb3ByaWF0ZSBBY3Rpb25NYXBwaW5nIGZvciB0aGUgc3BlY2lmaWVkCisgcGF0aC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3Byb2Nlc3NOb0NhY2hlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+cHJvY2Vzc05vQ2FjaGUoSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlJlbmRlciB0aGUgSFRUUCBoZWFkZXJzIHRvIGRlZmVhdCBicm93c2VyIGNhY2hpbmcgaWYgcmVxdWVzdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjcHJvY2Vzc1BhdGgoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnByb2Nlc3NQYXRoKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPklkZW50aWZ5IGFuZCByZXR1cm4gdGhlIHBhdGggY29tcG9uZW50IChmcm9tIHRoZSByZXF1ZXN0IFVSSSkgdGhhdAorIHdlIHdpbGwgdXNlIHRvIHNlbGVjdCBhbiBBY3Rpb25NYXBwaW5nIHRvIGRpc3BhdGNoIHdpdGguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNwcm9jZXNzUG9wdWxhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+cHJvY2Vzc1BvcHVsYXRlKEFjdGlvbkZvcm0sIEFjdGlvbk1hcHBpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlBvcHVsYXRlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBzcGVjaWZpZWQgQWN0aW9uRm9ybSBmcm9tIHRoZSByZXF1ZXN0CisgcGFyYW1ldGVycyBpbmNsdWRlZCB3aXRoIHRoaXMgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3Byb2Nlc3NQcmVwcm9jZXNzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+cHJvY2Vzc1ByZXByb2Nlc3MoSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+R2VuZXJhbCBwdXJwb3NlIHByZXByb2Nlc3NpbmcgaG9vayB0aGF0IGNhbiBiZSBvdmVycmlkZGVuIHRvIHN1cHBvcnQKKyBhcHBsaWNhdGlvbiBzcGVjaWZpYyBwcmVwcm9jZXNzaW5nIGFjdGl2aXR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjcHJvY2Vzc1ZhbGlkYXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5wcm9jZXNzVmFsaWRhdGUoQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+Q2FsbCB0aGUgPGNvZGU+dmFsaWRhdGUoKTwvY29kZT4gbWV0aG9kIG9mIHRoZSBzcGVjaWZpZWQgQWN0aW9uRm9ybSwKKyBhbmQgZm9yd2FyZCBiYWNrIHRvIHRoZSBpbnB1dCBmb3JtIGlmIHRoZXJlIGFyZSBhbnkgZXJyb3JzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNwcm9wZXJ0aWVzIj48Qj5wcm9wZXJ0aWVzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD5UaGUgY29ubmVjdGlvbiBwcm9wZXJ0aWVzIGZvciB1c2UgaW4gZXN0YWJsaXNoaW5nIGNvbm5lY3Rpb25zLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCNwcm9wZXJ0aWVzKCkiPjxCPnByb3BlcnRpZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPgorPEREPlJldHVybiB0aGUgc2V0IG9mIHByb3BlcnR5IG5hbWVzIGZvciB3aGljaCBhdCBsZWFzdCBvbmUgZXJyb3IgaGFzCisgYmVlbiByZWNvcmRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD5UaGUgSlNQIGJlYW4gcHJvcGVydHkgbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSHRtbFByb3BlcnR5VGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSHRtbFByb3BlcnR5VGFnLmh0bWwiPkh0bWxQcm9wZXJ0eVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NdWx0aWJveFRhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL011bHRpYm94VGFnLmh0bWwiPk11bHRpYm94VGFnPC9BPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGZvciB0aGlzIGZpZWxkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zMVRhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwiPk9wdGlvbnMxVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byB1c2UgdG8gYnVpbGQgdGhlIHZhbHVlcyBjb2xsZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCI+RW51bWVyYXRlVGFnPC9BPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGNvbnRhaW5pbmcgdGhlIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnNUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHVzZSB0byBidWlsZCB0aGUgdmFsdWVzIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0dldFByb3BlcnR5VGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvR2V0UHJvcGVydHlUYWcuaHRtbCI+R2V0UHJvcGVydHlUYWc8L0E+Cis8REQ+VGhlIHByb3BlcnR5IG5hbWUgdG8gYmUgZXhwb3NlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmFkaW9UYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBmb3IgdGhpcyBmaWVsZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZmllbGQgKGFuZCBhc3NvY2lhdGVkIHByb3BlcnR5KSBiZWluZyBwcm9jZXNzZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1N1Ym1pdFRhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBpbnB1dCBmaWVsZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2hlY2tib3hUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DaGVja2JveFRhZy5odG1sIj5DaGVja2JveFRhZzwvQT4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBmb3IgdGhpcyBmaWVsZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQnV0dG9uVGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQnV0dG9uVGFnLmh0bWwiPkJ1dHRvblRhZzwvQT4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGJ1dHRvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2FuY2VsVGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGJ1dHRvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sIj5MaW5rMVRhZzwvQT4KKzxERD5UaGUgSlNQIGJlYW4gcHJvcGVydHkgbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eUVxdWFsc1RhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlFcXVhbHNUYWcuaHRtbCI+SWZQcm9wZXJ0eUVxdWFsc1RhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gZ2V0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGNvbnRhaW5pbmcgdGhlIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlOb3RFcXVhbHNUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlByb3BlcnR5Tm90RXF1YWxzVGFnLmh0bWwiPklmUHJvcGVydHlOb3RFcXVhbHNUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGdldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPgorPEREPk5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIGFjY2Vzc2VkIG9uIHRoZSBzcGVjaWZpZWQgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYmUgcmV0cmlldmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBiZSByZXRyaWV2ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPlBhZ2VUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHBhZ2UgY29udGV4dCBwcm9wZXJ0eSB0byBiZSByZXRyaWV2ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+VGhlIEpTUCBiZWFuIHByb3BlcnR5IG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHVzZSB0byBidWlsZCB0aGUgdmFsdWVzIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGZpZWxkIChhbmQgYXNzb2NpYXRlZCBwcm9wZXJ0eSkgYmVpbmcgcHJvY2Vzc2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGZvciB0aGlzIGZpZWxkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgYnV0dG9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBmb3Igd2hpY2ggZXJyb3IgbWVzc2FnZXMgc2hvdWxkIGJlIHJldHVybmVkLAorIG9yIDxjb2RlPm51bGw8L2NvZGU+IHRvIHJldHVybiBhbGwgZXJyb3JzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPk11bHRpYm94VGFnPC9BPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGZvciB0aGlzIGZpZWxkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgYnV0dG9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgaW5wdXQgZmllbGQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+VGhlIG5hbWUgYXR0cmlidXRlIGZvciB0aGUgaW1hZ2UgYnV0dG9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBKU1AgYmVhbiBwcm9wZXJ0eSBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIHdlIGFyZSBhc3NvY2lhdGVkIHdpdGguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+VGhlIHByb3BlcnR5IG5hbWUgZm9yIHRoaXMgZmllbGQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gcHJvcGVydHkgdG8gYmUgdXNlZCBhcyBhIHZhcmlhYmxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGNvbnRhaW5pbmcgdGhlIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+VGhlIEpTUCBiZWFuIHByb3BlcnR5IG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+PEI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvQT4uPEREPkNvbmNyZXRlIHN1YmNsYXNzIG9mIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IHRoYXQgcmVhZHMgbWVzc2FnZSBrZXlzCisgYW5kIGNvcnJlc3BvbmRpbmcgc3RyaW5ncyBmcm9tIG5hbWVkIHByb3BlcnR5IHJlc291cmNlcyBpbiB0aGUgc2FtZSBtYW5uZXIKKyB0aGF0IDxjb2RlPmphdmEudXRpbC5Qcm9wZXJ0eVJlc291cmNlQnVuZGxlPC9jb2RlPiBkb2VzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sI1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzKE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LCBTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzIGFjY29yZGluZyB0byB0aGUKKyBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sI1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PEI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzKE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LCBTdHJpbmcsIGJvb2xlYW4pPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzIGFjY29yZGluZyB0byB0aGUKKyBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+PEI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4uPEREPkZhY3RvcnkgZm9yIDxjb2RlPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW5zdGFuY2VzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5KCkiPjxCPlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUHJvcGVydHlUYWcuaHRtbCI+PEI+UHJvcGVydHlUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUHJvcGVydHlUYWcuaHRtbCI+UHJvcGVydHlUYWc8L0E+LjxERD5EaXNwbGF5IHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4gcHJvcGVydHkgYXMgcmVhZC1vbmx5IEhUTUwgdGV4dC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Byb3BlcnR5VGFnLmh0bWwjUHJvcGVydHlUYWcoKSI+PEI+UHJvcGVydHlUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Qcm9wZXJ0eVRhZy5odG1sIj5Qcm9wZXJ0eVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCI+PEI+UHJvcGVydHlVdGlsczwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCI+UHJvcGVydHlVdGlsczwvQT4uPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkF0IHNvbWUgcG9pbnQgYWZ0ZXIgU3RydXRzIDEuMCBmaW5hbCwgd2lsbCBiZSByZXBsYWNlZCBieQorICBhbiBlcXVpdmFsZW50IGNsYXNzIGluIHRoZSBKYWthcnRhIENvbW1vbnMgQmVhbnV0aWxzIHBhY2thZ2UuPC9JPjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNQcm9wZXJ0eVV0aWxzKCkiPjxCPlByb3BlcnR5VXRpbHMoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCI+UHJvcGVydHlVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3B1c2goamF2YS5sYW5nLk9iamVjdCkiPjxCPnB1c2goT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+UHVzaCBhIG5ldyBvYmplY3Qgb250byB0aGUgdG9wIG9mIHRoZSBvYmplY3Qgc3RhY2suCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwjcHVzaChqYXZhLmxhbmcuT2JqZWN0KSI+PEI+cHVzaChPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sIj5BcnJheVN0YWNrPC9BPgorPEREPlB1c2ggYSBuZXcgaXRlbSBvbnRvIHRoZSB0b3Agb2YgdGhpcyBzdGFjay4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCNwdXNoKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwKSI+PEI+cHVzaChQYWdlQ29udGV4dCwgQ29udGVudE1hcCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCI+Q29udGVudE1hcFN0YWNrPC9BPgorPEREPlB1c2ggYSBjb250ZW50IG1hcCBvbnRvIHRoZSBzdGFjay4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjcHV0KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48Qj5wdXQoT2JqZWN0LCBPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+RmFzdEhhc2hNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7QXNzb2NpYXRlIHRoZSBzcGVjaWZpZWQgdmFsdWUgd2l0aCB0aGUgc3BlY2lmaWVkIGtleSBpbiB0aGlzIG1hcC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjcHV0KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48Qj5wdXQoT2JqZWN0LCBPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCI+RmFzdFRyZWVNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7QXNzb2NpYXRlIHRoZSBzcGVjaWZpZWQgdmFsdWUgd2l0aCB0aGUgc3BlY2lmaWVkIGtleSBpbiB0aGlzIG1hcC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjcHV0KGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnQpIj48Qj5wdXQoU3RyaW5nLCBDb250ZW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPlRoaXMgbWV0aG9kIGlzIGEgY29udmVuaWVuY2UgZm9yICZsdDt0ZW1wbGF0ZTpwdXQmZ3Q7IHRhZ3MgZm9yCisgcHV0dGluZyBjb250ZW50IGludG8gdGhlIG1hcC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwjcHV0KGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnQpIj48Qj5wdXQoU3RyaW5nLCBDb250ZW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj5Db250ZW50TWFwPC9BPgorPEREPlB1dCBuYW1lZCBjb250ZW50IGludG8gbWFwLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCNwdXRBbGwoamF2YS51dGlsLk1hcCkiPjxCPnB1dEFsbChNYXApPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+RmFzdEhhc2hNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29weSBhbGwgb2YgdGhlIG1hcHBpbmdzIGZyb20gdGhlIHNwZWNpZmllZCBtYXAgdG8gdGhpcyBvbmUsIHJlcGxhY2luZworIGFueSBtYXBwaW5ncyB3aXRoIHRoZSBzYW1lIGtleXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI3B1dEFsbChqYXZhLnV0aWwuTWFwKSI+PEI+cHV0QWxsKE1hcCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIj5GYXN0VHJlZU1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb3B5IGFsbCBvZiB0aGUgbWFwcGluZ3MgZnJvbSB0aGUgc3BlY2lmaWVkIG1hcCB0byB0aGlzIG9uZSwgcmVwbGFjaW5nCisgYW55IG1hcHBpbmdzIHdpdGggdGhlIHNhbWUga2V5cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPjxCPlB1dFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPi48REQ+VGFnIGhhbmRsZXIgZm9yICZsdDt0ZW1wbGF0ZTpwdXQmZ3Q7LCB3aGljaCBwdXRzIGNvbnRlbnQgaW50byByZXF1ZXN0IHNjb3BlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjUHV0VGFnKCkiPjxCPlB1dFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8L0RMPgorPEhSPgorPEEgTkFNRT0iX1JfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5SPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JhZGlvVGFnLmh0bWwiPjxCPlJhZGlvVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPi48REQ+VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAicmFkaW8iLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj48Qj5SYWRpb1RhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+LjxERD5UYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJyYWRpbyIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SYWRpb1RhZy5odG1sI1JhZGlvVGFnKCkiPjxCPlJhZGlvVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNSYWRpb1RhZygpIj48Qj5SYWRpb1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNyZWFkKCkiPjxCPnJlYWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQT4KKzxERD5SZWFkIHRoZSBuZXh0IGJ5dGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI3JlYWQoKSI+PEI+cmVhZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBuZXh0IGJ5dGUgaW4gdGhlIGJ1ZmZlciwgYW5kIHJlZmlsbHMgaXQgaWYgbmVjZXNzYXJ5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjcmVhZChieXRlW10pIj48Qj5yZWFkKGJ5dGVbXSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPlRoaXMgbWV0aG9kIHBvcHVsYXRlcyB0aGUgYnl0ZSBhcnJheSA8Y29kZT5iPC9jb2RlPiB3aXRoIGRhdGEgdXAgdG8KKyA8Y29kZT5iLmxlbmd0aDwvY29kZT4gYnl0ZXMKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI3JlYWQoYnl0ZVtdLCBpbnQsIGludCkiPjxCPnJlYWQoYnl0ZVtdLCBpbnQsIGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPlRoaXMgbWV0aG9kIHBvcHVsYXRlcyB0aGUgYnl0ZSBhcnJheSA8Y29kZT5iPC9jb2RlPiB3aXRoIGRhdGEgdXAgdG8gCisgPGNvZGU+bGVuZ3RoPC9jb2RlPiBzdGFydGluZyBhdCBiW29mZnNldF0KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNyZWFkQWhlYWRCdWZmZXJFbmRJIj48Qj5yZWFkQWhlYWRCdWZmZXJFbmRJPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0E+Cis8REQ+VGhlIGVuZCBpbmRleCBmb3IgdGhlIHJlYWQgYWhlYWQgY3ljbGljIGJ1ZmZlciAocG9pbnRzIHRvIHRoZSBsYXN0IGJ5dGUpCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjcmVhZEFoZWFkQnVmZmVyU3RhcnRJIj48Qj5yZWFkQWhlYWRCdWZmZXJTdGFydEk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQT4KKzxERD5UaGUgc3RhcnQgaW5kZXggZm9yIHRoZSByZWFkIGFoZWFkIGN5Y2xpYyBidWZmZXIgKHBvaW50cyB0byB0aGUgZmlyc3QgYnl0ZSkKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNyZWFkQWhlYWRCeXRlcyI+PEI+cmVhZEFoZWFkQnl0ZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQT4KKzxERD50aGUgcmVhZCBhaGVhZCBidWZmZXIgKGN5Y2xpYykKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNyZWFkTGluZSgpIj48Qj5yZWFkTGluZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPlJlYWRzIHRoZSBpbnB1dCBzdHJlYW0gdW50aWwgaXQgcmVhY2hlcyBhIG5ldyBsaW5lCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNyZWFkTGluZShieXRlW10sIGludCwgaW50KSI+PEI+cmVhZExpbmUoYnl0ZVtdLCBpbnQsIGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPlRoaXMgbWV0aG9kIHJlYWRzIGludG8gdGhlIGJ5dGUgYXJyYXkgPGNvZGU+YjwvY29kZT4gdW50aWwKKyBhIG5ld2xpbmUgKCdcbicpIGNoYXJhY3RlciBpcyBlbmNvdW50ZXJlZCBvciB0aGUgbnVtYmVyIG9mIGJ5dGVzCisgc3BlY2lmaWVkIGJ5IDxjb2RlPmxlbmd0aDwvY29kZT4gaGF2ZSBiZWVuIHJlYWQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3JlYWRvbmx5Ij48Qj5yZWFkb25seTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5Db21wb25lbnQgaXMgcmVhZG9ubHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI3JlYWRPbmx5Ij48Qj5yZWFkT25seTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+R2VuZXJpY0Nvbm5lY3Rpb248L0E+Cis8REQ+VGhlIGluaXRpYWwgcmVhZC1vbmx5IHN0YXRlIHRvIHdoaWNoIHdlIHNob3VsZCByZXR1cm4gYWZ0ZXIgcmVsZWFzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjcmVhZE9ubHkiPjxCPnJlYWRPbmx5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD5UaGUgZGVmYXVsdCByZWFkLW9ubHkgc3RhdGUgZm9yIG5ld2x5IGNyZWF0ZWQgY29ubmVjdGlvbnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCNyZWRpcmVjdCI+PEI+cmVkaXJlY3Q8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Cis8REQ+U2hvdWxkIHRoaXMgYmUgYSByZWRpcmVjdCBpbnN0ZWFkIG9mIGEgZm9yd2FyZD8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+UmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9BPi48REQ+QSBzdWJjbGFzcyBvZiA8c3Ryb25nPkFjdGlvbkZvcndhcmQ8L3N0cm9uZz4gdGhhdCBkZWZhdWx0cyB0aGUKKyA8Y29kZT5yZWRpcmVjdDwvY29kZT4gYXR0cmlidXRlIHRvIDxjb2RlPnRydWU8L2NvZGU+LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwjUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkKCkiPjxCPlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIj5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQ8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggZGVmYXVsdCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sI1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+UmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkKFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhdGguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JlZGlyZWN0VGFnLmh0bWwiPjxCPlJlZGlyZWN0VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPi48REQ+UGVyZm9ybSBhIHNlbmRSZWRpcmVjdCgpIHRvIHRoZSBzcGVjaWZpZWQgVVJMLCBhbmQgc2tpcCBldmFsdWF0aW5nCisgdGhlIHJlbWFpbmRlciBvZiB0aGUgY3VycmVudCBwYWdlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+PEI+UmVkaXJlY3RUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+LjxERD5HZW5lcmF0ZSBhIFVSTC1lbmNvZGVkIHJlZGlyZWN0IHRvIHRoZSBzcGVjaWZpZWQgVVJJLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVkaXJlY3RUYWcuaHRtbCNSZWRpcmVjdFRhZygpIj48Qj5SZWRpcmVjdFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI1JlZGlyZWN0VGFnKCkiPjxCPlJlZGlyZWN0VGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjcmVkaXNwbGF5Ij48Qj5yZWRpc3BsYXk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4KKzxERD5UaGUgInJlZGlzcGxheSBjb250ZW50cyIgZmxhZyAodXNlZCBvbmx5IG9uIDxjb2RlPnBhc3N3b3JkPC9jb2RlPikuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNyZWdpc3RlcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+cmVnaXN0ZXIoU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5SZWdpc3RlciB0aGUgc3BlY2lmaWVkIERURCBVUkwgZm9yIHRoZSBzcGVjaWZpZWQgcHVibGljIGlkZW50aWZpZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNyZWdpc3RyYXRpb25zIj48Qj5yZWdpc3RyYXRpb25zPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSBzZXQgb2YgcHVibGljIGlkZW50aWZpZXJzLCBhbmQgY29ycmVzcG9uZGluZyByZXNvdXJjZSBuYW1lcywgZm9yCisgdGhlIHZlcnNpb25zIG9mIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRFREcyB0aGF0IHdlIGtub3cgYWJvdXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9IdG1sUHJvcGVydHlUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9IdG1sUHJvcGVydHlUYWcuaHRtbCI+SHRtbFByb3BlcnR5VGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJFcXVhbHNUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlckVxdWFsc1RhZy5odG1sIj5JZlBhcmFtZXRlckVxdWFsc1RhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTXVsdGlib3hUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1BhcmFtZXRlclRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zMVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwiPk9wdGlvbnMxVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Vycm9yc1RhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCI+RW51bWVyYXRlVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0dldFByb3BlcnR5VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvR2V0UHJvcGVydHlUYWcuaHRtbCI+R2V0UHJvcGVydHlUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SYWRpb1RhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVzZXRUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SZXNldFRhZy5odG1sIj5SZXNldFRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VuY29kZVJlZGlyZWN0VVJMVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW5jb2RlUmVkaXJlY3RVUkxUYWcuaHRtbCI+RW5jb2RlUmVkaXJlY3RVUkxUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JbmNsdWRlVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VGaWVsZFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlQXR0cmlidXRlVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUF0dHJpYnV0ZVRhZy5odG1sIj5CYXNlQXR0cmlidXRlVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9yd2FyZFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0ZvcndhcmRUYWcuaHRtbCI+Rm9yd2FyZFRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTm90RXF1YWxzVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWcuaHRtbCI+SWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SZWRpcmVjdFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU3VibWl0VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1RleHRhcmVhVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvVGV4dGFyZWFUYWcuaHRtbCI+VGV4dGFyZWFUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DaGVja2JveFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQnV0dG9uVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQnV0dG9uVGFnLmh0bWwiPkJ1dHRvblRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTm90TnVsbFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTm90TnVsbFRhZy5odG1sIj5JZlBhcmFtZXRlck5vdE51bGxUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DYW5jZWxUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmsxVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCI+TGluazFUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Qcm9wZXJ0eVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Byb3BlcnR5VGFnLmh0bWwiPlByb3BlcnR5VGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eUVxdWFsc1RhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlFcXVhbHNUYWcuaHRtbCI+SWZQcm9wZXJ0eUVxdWFsc1RhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlByb3BlcnR5Tm90RXF1YWxzVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eU5vdEVxdWFsc1RhZy5odG1sIj5JZlByb3BlcnR5Tm90RXF1YWxzVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VuY29kZVVSTFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VuY29kZVVSTFRhZy5odG1sIj5FbmNvZGVVUkxUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIj5Db29raWVUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPlBhcmFtZXRlclRhZzwvQT4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPlJlc291cmNlVGFnPC9BPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPlN0cnV0c1RhZzwvQT4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sIj5QYWdlVGFnPC9BPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sIj5IdG1sVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPk11bHRpYm94VGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIj5SZXNldFRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj5UZXh0YXJlYVRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCI+Rm9yd2FyZFRhZzwvQT4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5SZXNldCBtZW1iZXIgdmFsdWVzIGZvciByZXVzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwiPkdldFRhZzwvQT4KKzxERD5SZXNldCBtZW1iZXIgdmFsdWVzIGZvciByZXVzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5SZXNldCBtZW1iZXIgdmFsdWVzIGZvciByZXVzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3JlbG9hZCgpIj48Qj5yZWxvYWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+UmVsb2FkIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoaXMgY29udHJvbGxlciBzZXJ2bGV0IGZyb20gb3VyCisgdW5kZXJseWluZyBjb25maWd1cmF0aW9uIGZpbGVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVsb2FkQWN0aW9uLmh0bWwiPjxCPlJlbG9hZEFjdGlvbjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbG9hZEFjdGlvbi5odG1sIj5SZWxvYWRBY3Rpb248L0E+LjxERD5BIHN0YW5kYXJkIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgY2FsbHMgdGhlCisgPGNvZGU+cmVsb2FkKCk8L2NvZGU+IG1ldGhvZCBvZiBvdXIgY29udHJvbGxlciBzZXJ2bGV0IHRvCisgcmVsb2FkIGl0cyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24KKyBmaWxlcyAod2hpY2ggaGF2ZSBwcmVzdW1hYmx5IGJlZW4gdXBkYXRlZCkgZHluYW1pY2FsbHkuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVsb2FkQWN0aW9uLmh0bWwjUmVsb2FkQWN0aW9uKCkiPjxCPlJlbG9hZEFjdGlvbigpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVsb2FkQWN0aW9uLmh0bWwiPlJlbG9hZEFjdGlvbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sI3JlbW92ZSgpIj48Qj5yZW1vdmUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sIj5JdGVyYXRvckFkYXB0ZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjcmVtb3ZlKGludCkiPjxCPnJlbW92ZShpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sIj5GYXN0QXJyYXlMaXN0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JlbW92ZSB0aGUgZWxlbWVudCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGluIHRoZSBsaXN0LCBhbmQgc2hpZnQKKyBhbnkgc3Vic2VxdWVudCBlbGVtZW50cyBkb3duIG9uZSBwb3NpdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjcmVtb3ZlKGphdmEubGFuZy5PYmplY3QpIj48Qj5yZW1vdmUoT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JlbW92ZSBhbnkgbWFwcGluZyBmb3IgdGhpcyBrZXksIGFuZCByZXR1cm4gYW55IHByZXZpb3VzbHkKKyBtYXBwZWQgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjcmVtb3ZlKGphdmEubGFuZy5PYmplY3QpIj48Qj5yZW1vdmUoT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCI+RmFzdEFycmF5TGlzdDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZW1vdmUgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIHNwZWNpZmllZCBlbGVtZW50IGZyb20gdGhlIGxpc3QsCisgYW5kIHNoaWZ0IGFueSBzdWJzZXF1ZW50IGVsZW1lbnRzIGRvd24gb25lIHBvc2l0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCNyZW1vdmUoamF2YS5sYW5nLk9iamVjdCkiPjxCPnJlbW92ZShPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCI+RmFzdFRyZWVNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVtb3ZlIGFueSBtYXBwaW5nIGZvciB0aGlzIGtleSwgYW5kIHJldHVybiBhbnkgcHJldmlvdXNseQorIG1hcHBlZCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNyZW1vdmVBbGwoamF2YS51dGlsLkNvbGxlY3Rpb24pIj48Qj5yZW1vdmVBbGwoQ29sbGVjdGlvbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVtb3ZlIGZyb20gdGhpcyBjb2xsZWN0aW9uIGFsbCBvZiBpdHMgZWxlbWVudHMgdGhhdCBhcmUgY29udGFpbmVkCisgaW4gdGhlIHNwZWNpZmllZCBjb2xsZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI3JlbW92ZUF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+cmVtb3ZlQXR0cmlidXRlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNyZW1vdmVGb3JtQmVhbihvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW4pIj48Qj5yZW1vdmVGb3JtQmVhbihBY3Rpb25Gb3JtQmVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkRlcmVnaXN0ZXIgYSBmb3JtIGJlYW4gZGVmaW5pdGlvbiBmcm9tIHRoZSBzZXQgY29uZmlndXJlZCBmb3IKKyB0aGlzIHNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sI3JlbW92ZUZvcm1CZWFuKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbikiPjxCPnJlbW92ZUZvcm1CZWFuKEFjdGlvbkZvcm1CZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCI+QWN0aW9uRm9ybUJlYW5zPC9BPgorPEREPkRlcmVnaXN0ZXIgYSBmb3JtQmVhbiBmcm9tIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlRm9ybUJlYW5BY3Rpb24uaHRtbCI+PEI+UmVtb3ZlRm9ybUJlYW5BY3Rpb248L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVGb3JtQmVhbkFjdGlvbi5odG1sIj5SZW1vdmVGb3JtQmVhbkFjdGlvbjwvQT4uPEREPkEgc3RhbmRhcmQgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBjYWxscyB0aGUKKyA8Y29kZT5yZW1vdmVGb3JtQmVhbigpPC9jb2RlPiBtZXRob2Qgb2Ygb3VyIGNvbnRyb2xsZXIgc2VydmxldCB0byByZW1vdmUgYW4KKyBhY3Rpb24gZm9ybSBkZWZpbml0aW9uIGR5bmFtaWNhbGx5LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZUZvcm1CZWFuQWN0aW9uLmh0bWwjUmVtb3ZlRm9ybUJlYW5BY3Rpb24oKSI+PEI+UmVtb3ZlRm9ybUJlYW5BY3Rpb24oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZUZvcm1CZWFuQWN0aW9uLmh0bWwiPlJlbW92ZUZvcm1CZWFuQWN0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjcmVtb3ZlRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCkiPjxCPnJlbW92ZUZvcndhcmQoQWN0aW9uRm9yd2FyZCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlJlbW92ZSBhIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hcHBpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNyZW1vdmVGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+PEI+cmVtb3ZlRm9yd2FyZChBY3Rpb25Gb3J3YXJkKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+RGVyZWdpc3RlciBhIGZvcndhcmRpbmcgZnJvbSB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNyZW1vdmVGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+PEI+cmVtb3ZlRm9yd2FyZChBY3Rpb25Gb3J3YXJkKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT4KKzxERD5EZXJlZ2lzdGVyIGEgZm9yd2FyZGluZyBmcm9tIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlRm9yd2FyZEFjdGlvbi5odG1sIj48Qj5SZW1vdmVGb3J3YXJkQWN0aW9uPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlRm9yd2FyZEFjdGlvbi5odG1sIj5SZW1vdmVGb3J3YXJkQWN0aW9uPC9BPi48REQ+QSBzdGFuZGFyZCA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGNhbGxzIHRoZQorIDxjb2RlPnJlbW92ZUZvcndhcmQoKTwvY29kZT4gbWV0aG9kIG9mIG91ciBjb250cm9sbGVyIHNlcnZsZXQgdG8gcmVtb3ZlIGFuCisgYWN0aW9uIGZvcndhcmQgZGVmaW5pdGlvbiBkeW5hbWljYWxseS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVGb3J3YXJkQWN0aW9uLmh0bWwjUmVtb3ZlRm9yd2FyZEFjdGlvbigpIj48Qj5SZW1vdmVGb3J3YXJkQWN0aW9uKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVGb3J3YXJkQWN0aW9uLmh0bWwiPlJlbW92ZUZvcndhcmRBY3Rpb248L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNyZW1vdmVNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+PEI+cmVtb3ZlTWFwcGluZyhBY3Rpb25NYXBwaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+RGVyZWdpc3RlciBhIG1hcHBpbmcgZnJvbSB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNyZW1vdmVNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+PEI+cmVtb3ZlTWFwcGluZyhBY3Rpb25NYXBwaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5BY3Rpb25NYXBwaW5nczwvQT4KKzxERD5EZXJlZ2lzdGVyIGEgbWFwcGluZyBmcm9tIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlTWFwcGluZ0FjdGlvbi5odG1sIj48Qj5SZW1vdmVNYXBwaW5nQWN0aW9uPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlTWFwcGluZ0FjdGlvbi5odG1sIj5SZW1vdmVNYXBwaW5nQWN0aW9uPC9BPi48REQ+QSBzdGFuZGFyZCA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGNhbGxzIHRoZQorIDxjb2RlPnJlbW92ZU1hcHBpbmcoKTwvY29kZT4gbWV0aG9kIG9mIG91ciBjb250cm9sbGVyIHNlcnZsZXQgdG8gcmVtb3ZlIGFuCisgYWN0aW9uIG1hcHBpbmcgZGVmaW5pdGlvbiBkeW5hbWljYWxseS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVNYXBwaW5nQWN0aW9uLmh0bWwjUmVtb3ZlTWFwcGluZ0FjdGlvbigpIj48Qj5SZW1vdmVNYXBwaW5nQWN0aW9uKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVNYXBwaW5nQWN0aW9uLmh0bWwiPlJlbW92ZU1hcHBpbmdBY3Rpb248L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjcmVxdWVzdCI+PEI+cmVxdWVzdDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPlRoZSByZXF1ZXN0IGluc3RhbmNlIGZvciB0aGlzIGNsYXNzCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjcmVxdWVzdCI+PEI+cmVxdWVzdDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPlRoZSB1bmRlcmx5aW5nIEh0dHBTZXJ2bGV0UmVxdWVzdAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sIj48Qj5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sIj5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQT4uPEREPlN1YmNsYXNzIG9mIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IHRoYXQgZGVmYXVsdHMgdGhlIGZvcm0gYmVhbgorIHNjb3BlIHRvIDxjb2RlPnJlcXVlc3Q8L2NvZGU+LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCNSZXF1ZXN0QWN0aW9uTWFwcGluZygpIj48Qj5SZXF1ZXN0QWN0aW9uTWFwcGluZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiPlJlcXVlc3RBY3Rpb25NYXBwaW5nPC9BPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIHdpdGggdGhlIGRlc2lyZWQgZGVmYXVsdAorIGZvcm0gYmVhbiBzY29wZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3JlcXVlc3RVUkwoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnJlcXVlc3RVUkwoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPlJldHVybiB0aGUgVVJMIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCByZXF1ZXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPjxCPlJlcXVlc3RVdGlsczwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+LjxERD5HZW5lcmFsIHB1cnBvc2UgdXRpbGl0eSBtZXRob2RzIHJlbGF0ZWQgdG8gcHJvY2Vzc2luZyBhIHNlcnZsZXQgcmVxdWVzdAorIGluIHRoZSBTdHJ1dHMgY29udHJvbGxlciBmcmFtZXdvcmsuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjUmVxdWVzdFV0aWxzKCkiPjxCPlJlcXVlc3RVdGlscygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI3Jlc2V0KCkiPjxCPnJlc2V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPlRoaXMgbWV0aG9kIG1ha2VzIGEgY2FsbCB0byB0aGUgcmVzZXQoKSBtZXRob2Qgb2YgdGhlIHVuZGVybHlpbmcKKyBJbnB1dFN0cmVhbQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjcmVzZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5yZXNldChBY3Rpb25NYXBwaW5nLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4KKzxERD5SZXNldCBhbGwgYmVhbiBwcm9wZXJ0aWVzIHRvIHRoZWlyIGRlZmF1bHQgc3RhdGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPjxCPnJlc2V0KEFjdGlvbk1hcHBpbmcsIFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Cis8REQ+UmVzZXQgYWxsIGJlYW4gcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHN0YXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SZXNldFRhZy5odG1sIj48Qj5SZXNldFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SZXNldFRhZy5odG1sIj5SZXNldFRhZzwvQT4uPEREPlRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInJlc2V0Ii48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+PEI+UmVzZXRUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPi48REQ+VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAicmVzZXQiLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVzZXRUYWcuaHRtbCNSZXNldFRhZygpIj48Qj5SZXNldFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjUmVzZXRUYWcoKSI+PEI+UmVzZXRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3Jlc2V0VG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnJlc2V0VG9rZW4oSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPlJlc2V0IHRoZSBzYXZlZCB0cmFuc2FjdGlvbiB0b2tlbiBpbiB0aGUgdXNlcidzIHNlc3Npb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNyZXNvbHZlRW50aXR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5yZXNvbHZlRW50aXR5KFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+UmVzb2x2ZSB0aGUgcmVxdWVzdGVkIGV4dGVybmFsIGVudGl0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIj48Qj5SZXNvdXJjZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+UmVzb3VyY2VUYWc8L0E+LjxERD5EZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQKKyB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjUmVzb3VyY2VUYWcoKSI+PEI+UmVzb3VyY2VUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+UmVzb3VyY2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUZWkuaHRtbCI+PEI+UmVzb3VyY2VUZWk8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwiPlJlc291cmNlVGVpPC9BPi48REQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPnJlc291cmNlPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRlaS5odG1sI1Jlc291cmNlVGVpKCkiPjxCPlJlc291cmNlVGVpKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwiPlJlc291cmNlVGVpPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sIj48Qj5SZXNwb25zZVV0aWxzPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sIj5SZXNwb25zZVV0aWxzPC9BPi48REQ+R2VuZXJhbCBwdXJwb3NlIHV0aWxpdHkgbWV0aG9kcyByZWxhdGVkIHRvIGdlbmVyYXRpbmcgYSBzZXJ2bGV0IHJlc3BvbnNlCisgaW4gdGhlIFN0cnV0cyBjb250cm9sbGVyIGZyYW1ld29yay48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwjUmVzcG9uc2VVdGlscygpIj48Qj5SZXNwb25zZVV0aWxzKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwiPlJlc3BvbnNlVXRpbHM8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjcmV0YWluQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uKSI+PEI+cmV0YWluQWxsKENvbGxlY3Rpb24pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sIj5GYXN0QXJyYXlMaXN0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JlbW92ZSBmcm9tIHRoaXMgY29sbGVjdGlvbiBhbGwgb2YgaXRzIGVsZW1lbnRzIGV4Y2VwdCB0aG9zZSB0aGF0IGFyZQorIGNvbnRhaW5lZCBpbiB0aGUgc3BlY2lmaWVkIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3JldHJpZXZlVGVtcERpcigpIj48Qj5yZXRyaWV2ZVRlbXBEaXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPlJldHJpZXZlcyB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmcm9tIGVpdGhlciBBY3Rpb25TZXJ2bGV0LCBhIGNvbnRleHQKKyBwcm9wZXJ0eSwgb3IgYSBzeXN0ZW0gcHJvcGVydHksIGluIHRoYXQgb3JkZXIKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjcmV0dXJuQ29ubmVjdGlvbihvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkdlbmVyaWNDb25uZWN0aW9uKSI+PEI+cmV0dXJuQ29ubmVjdGlvbihHZW5lcmljQ29ubmVjdGlvbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD5SZXR1cm4gdGhpcyBjb25uZWN0aW9uIHRvIHRoZSBhdmFpbGFibGUgY29ubmVjdGlvbiBwb29sLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI3JldHVybk51bGwiPjxCPnJldHVybk51bGw8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5TaG91bGQgd2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+IGluc3RlYWQgb2YgYW4gZXJyb3IgbWVzc2FnZSBzdHJpbmcKKyBpZiBhbiB1bmtub3duIExvY2FsZSBvciBrZXkgaXMgcmVxdWVzdGVkPworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNyZXR1cm5OdWxsIj48Qj5yZXR1cm5OdWxsPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4KKzxERD5UaGUgInJldHVybiBudWxsIiBwcm9wZXJ0eSB2YWx1ZSB0byB3aGljaCBuZXdseSBjcmVhdGVkCisgTWVzc2FnZVJlc291cmNlc3Mgc2hvdWxkIGJlIGluaXRpYWxpemVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jld3JpdGVUYWcuaHRtbCI+PEI+UmV3cml0ZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIj5SZXdyaXRlVGFnPC9BPi48REQ+R2VuZXJhdGUgYSBVUkwtZW5jb2RlZCBVUkkgYXMgYSBzdHJpbmcuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jld3JpdGVUYWcuaHRtbCNSZXdyaXRlVGFnKCkiPjxCPlJld3JpdGVUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIj5SZXdyaXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj48Qj5yb2xlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2VjdXJpdHkgcm9sZSB0byBiZSBjaGVja2VkIGZvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjcm9sZSI+PEI+cm9sZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+VGhlIHJvbGUgdGhhdCB0aGUgdXNlciBtdXN0IGJlIGluIHRvIHN0b3JlIGNvbnRlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI3JvbGUiPjxCPnJvbGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCI+R2V0VGFnPC9BPgorPEREPlRoZSByb2xlIHRoYXQgdGhlIHVzZXIgbXVzdCBiZSBpbiB0byByZXRyaWV2ZSBjb250ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3JvbGxiYWNrKCkiPjxCPnJvbGxiYWNrKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB3aGVuIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIHByb2JsZW0KKyBhbmQgdGhlIGZvcm0gcG9zdCBuZWVkcyB0byBiZSByb2xsZWQgYmFjay4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjcm9sbGJhY2soKSI+PEI+cm9sbGJhY2soKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPkRlbGV0ZSBhbGwgdGhlIGZpbGVzIHVwbG9hZGVkCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI3JvbGxiYWNrKCkiPjxCPnJvbGxiYWNrKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4KKzxERD5Ecm9wIGFsbCBjaGFuZ2VzIG1hZGUgc2luY2UgdGhlIHByZXZpb3VzIGNvbW1pdCBvciByb2xsYmFjay4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3Jvb3QiPjxCPnJvb3Q8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+VGhlICJyb290IiBlbGVtZW50IG9mIHRoZSBzdGFjayAoaW4gb3RoZXIgd29yZHMsIHRoZSBsYXN0IG9iamVjdAorIHRoYXQgd2FzIHBvcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwjcm93cyI+PEI+cm93czwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+VGhlIG51bWJlciBvZiByb3dzIGZvciB0aGlzIGZpZWxkLCBvciBuZWdhdGl2ZSBmb3Igbm8gbGltaXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcm93cyI+PEI+cm93czwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlRoZSBudW1iZXIgb2Ygcm93cyBmb3IgdGhpcyBmaWVsZCwgb3IgbmVnYXRpdmUgZm9yIG5vIGxpbWl0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+PEI+UnVsZTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj5SdWxlPC9BPi48REQ+Q29uY3JldGUgaW1wbGVtZW50YXRpb25zIG9mIHRoaXMgY2xhc3MgaW1wbGVtZW50IGFjdGlvbnMgdG8gYmUgdGFrZW4gd2hlbgorIGEgY29ycmVzcG9uZGluZyBuZXN0ZWQgcGF0dGVybiBvZiBYTUwgZWxlbWVudHMgaGFzIGJlZW4gbWF0Y2hlZC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI1J1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIpIj48Qj5SdWxlKERpZ2VzdGVyKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj5SdWxlPC9BPgorPEREPkRlZmF1bHQgY29uc3RydWN0b3Igc2V0cyBvbmx5IHRoZSB0aGUgYXNzb2NpYXRlZCBEaWdlc3Rlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3J1bGVzIj48Qj5ydWxlczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5UaGUgc2V0IG9mIFJ1bGVzIHRoYXQgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQgd2l0aCB0aGlzIERpZ2VzdGVyLgorPC9ETD4KKzxIUj4KKzxBIE5BTUU9Il9TXyI+PCEtLSAtLT48L0E+PEgyPgorPEI+UzwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3NhdmVCb2R5Ij48Qj5zYXZlQm9keTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlRoZSBzYXZlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVFcnJvcnMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycykiPjxCPnNhdmVFcnJvcnMoSHR0cFNlcnZsZXRSZXF1ZXN0LCBBY3Rpb25FcnJvcnMpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+U2F2ZSB0aGUgc3BlY2lmaWVkIGVycm9yIG1lc3NhZ2VzIGtleXMgaW50byB0aGUgYXBwcm9wcmlhdGUgcmVxdWVzdAorIGF0dHJpYnV0ZSBmb3IgdXNlIGJ5IHRoZSAmbHQ7c3RydXRzOmVycm9ycyZndDsgdGFnLCBpZiBhbnkgbWVzc2FnZXMKKyBhcmUgcmVxdWlyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNzYXZlRXhjZXB0aW9uKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+PEI+c2F2ZUV4Y2VwdGlvbihQYWdlQ29udGV4dCwgVGhyb3dhYmxlKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPlNhdmUgdGhlIHNwZWNpZmllZCBleGNlcHRpb24gYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZSBmb3IgbGF0ZXIgdXNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNzYXZlRXhjZXB0aW9uKGphdmEubGFuZy5UaHJvd2FibGUpIj48Qj5zYXZlRXhjZXB0aW9uKFRocm93YWJsZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwiPkdldFRhZzwvQT4KKzxERD5TYXZlIHRoZSBzcGVjaWZpZWQgZXhjZXB0aW9uIGluIHJlcXVlc3Qgc2NvcGUgaWYgdGhlcmUgaXMgbm90IGFscmVhZHkKKyBvbmUgcHJlc2VudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjc2F2ZUV4Y2VwdGlvbihqYXZhLmxhbmcuVGhyb3dhYmxlKSI+PEI+c2F2ZUV4Y2VwdGlvbihUaHJvd2FibGUpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+U2F2ZSB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBpbiByZXF1ZXN0IHNjb3BlIGlmIHRoZXJlIGlzIG5vdCBhbHJlYWR5Cisgb25lIHByZXNlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+c2F2ZVRva2VuKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD5TYXZlIGEgbmV3IHRyYW5zYWN0aW9uIHRva2VuIGluIHRoZSB1c2VyJ3MgY3VycmVudCBzZXNzaW9uLCBjcmVhdGluZworIGEgbmV3IHNlc3Npb24gaWYgbmVjZXNzYXJ5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2NvcGUiPjxCPnNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlRoZSBpZGVudGlmaWVyIG9mIHRoZSBzY29wZSAoInJlcXVlc3QiIG9yICJzZXNzaW9uIikgdW5kZXIgd2hpY2ggdGhlCisgZm9ybSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hcHBpbmcsIGlmIGFueSwgc2hvdWxkIGJlIGNyZWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNzY29wZSI+PEI+c2NvcGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIHNjb3BlIChyZXF1ZXN0IG9yIHNlc3Npb24pIHVuZGVyIHdoaWNoIG91ciBhc3NvY2lhdGVkIGJlYW4KKyBpcyBzdG9yZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VBdHRyaWJ1dGVUYWcuaHRtbCNzY29wZSI+PEI+c2NvcGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlQXR0cmlidXRlVGFnLmh0bWwiPkJhc2VBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+VGhlIHNjb3BlIG9mIHRoZSBhdHRyaWJ1dGUgYmVpbmcgdGVzdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2NvcGUiPjxCPnNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPgorPEREPlRoZSBzY29wZSB0byBiZSBzZWFyY2hlZCB0byByZXRyaWV2ZSB0aGUgc3BlY2lmaWVkIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2NvcGUiPjxCPnNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBzcGVjaWZpZWQgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjc2NvcGUiPjxCPnNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+U2l6ZVRhZzwvQT4KKzxERD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIHNwZWNpZmllZCBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3Njb3BlIj48Qj5zY29wZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBzY29wZSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIG5hbWUgcHJvcGVydHksIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2NvcGUiPjxCPnNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD5UaGUgc2NvcGUgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3Njb3BlIj48Qj5zY29wZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIHNjb3BlIChyZXF1ZXN0IG9yIHNlc3Npb24pIHVuZGVyIHdoaWNoIG91ciBhc3NvY2lhdGVkIGJlYW4KKyBpcyBzdG9yZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj48Qj5zY29wZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+VGhlIHNjb3BlIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gbmFtZWQgYnkgdGhlIG5hbWUgcHJvcGVydHksIG9yCisgImFueSBzY29wZSIgaWYgbnVsbC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3Njb3BlIj48Qj5zY29wZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5UaGUgc2NvcGUgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2NvcGUiPjxCPnNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+VGhlIHNjb3BlIG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZSBwcm9wZXJ0eSwgaWYgYW55LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Db25zdGFudHMuaHRtbCNTRUxFQ1RfS0VZIj48Qj5TRUxFQ1RfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NvbnN0YW50cy5odG1sIj5Db25zdGFudHM8L0E+Cis8REQ+VGhlIGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBzZWxlY3QgdGFnIGl0c2VsZi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCNTRUxFQ1RfS0VZIj48Qj5TRUxFQ1RfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCI+Q29uc3RhbnRzPC9BPgorPEREPlRoZSBhdHRyaWJ1dGUga2V5IGZvciB0aGUgc2VsZWN0IHRhZyBpdHNlbGYuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sIj48Qj5TZWxlY3RUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4uPEREPkN1c3RvbSB0YWcgdGhhdCByZXByZXNlbnRzIGFuIEhUTUwgc2VsZWN0IGVsZW1lbnQsIGFzc29jaWF0ZWQgd2l0aCBhCisgYmVhbiBwcm9wZXJ0eSBzcGVjaWZpZWQgYnkgb3VyIGF0dHJpYnV0ZXMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj48Qj5TZWxlY3RUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+LjxERD5DdXN0b20gdGFnIHRoYXQgcmVwcmVzZW50cyBhbiBIVE1MIHNlbGVjdCBlbGVtZW50LCBhc3NvY2lhdGVkIHdpdGggYQorIGJlYW4gcHJvcGVydHkgc3BlY2lmaWVkIGJ5IG91ciBhdHRyaWJ1dGVzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwjU2VsZWN0VGFnKCkiPjxCPlNlbGVjdFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjU2VsZWN0VGFnKCkiPjxCPlNlbGVjdFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjc2VydmVyVVJMKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5zZXJ2ZXJVUkwoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPlJldHVybiB0aGUgVVJMIHJlcHJlc2VudGluZyB0aGUgc2NoZW1lLCBzZXJ2ZXIsIGFuZCBwb3J0IG51bWJlciBvZgorIHRoZSBjdXJyZW50IHJlcXVlc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NlcnZsZXQiPjxCPnNlcnZsZXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPlRoZSBjb250cm9sbGVyIHNlcnZsZXQgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjc2VydmxldCI+PEI+c2VydmxldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4KKzxERD5UaGUgY29udHJvbGxlciBzZXJ2bGV0IGluc3RhbmNlIHRvIHdoaWNoIHdlIGFyZSBhdHRhY2hlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNzZXJ2bGV0Ij48Qj5zZXJ2bGV0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+Cis8REQ+VGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2Ugb2Ygb3VyIG93bmluZyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2VydmxldCI+PEI+c2VydmxldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2Ugd2UgYXJlIGFzc29jaWF0ZWQgd2l0aCAoc28gdGhhdCB3ZSBjYW4KKyBpbml0aWFsaXplIHRoZSA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBwcm9wZXJ0eSBvbiBhbnkgZm9ybSBiZWFuIHRoYXQKKyB3ZSBjcmVhdGUpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXJ2bGV0Ij48Qj5zZXJ2bGV0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5UaGUgQWN0aW9uU2VydmxldCBpbnN0YW5jZSB1c2VkIGZvciB0aGlzIGNsYXNzCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1NFUlZMRVRfS0VZIj48Qj5TRVJWTEVUX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPlRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHdlIHN0b3JlIHRoZSBtYXBwaW5nIGRlZmluZWQKKyBmb3Igb3VyIGNvbnRyb2xsZXIgc2VybGV0LCB3aGljaCB3aWxsIGJlIGVpdGhlciBhIHBhdGgtbWFwcGVkIHBhdHRlcm4KKyAoPGNvZGU+L2FjdGlvbi8qPC9jb2RlPikgb3IgYW4gZXh0ZW5zaW9uIG1hcHBlZCBwYXR0ZXJuCisgKDxjb2RlPiouZG88L2NvZGU+KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPjxCPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+LjxERD5BIFByaW50V3JpdGVyIGltcGxlbWVudGF0aW9uIHRoYXQgdXNlcyB0aGUgbG9nZ2luZyBmYWNpbGl0aWVzIG9mIGEKKyA8Y29kZT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0PC9jb2RlPiB0byBvdXRwdXQgaXRzIHJlc3VsdHMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNTZXJ2bGV0Q29udGV4dFdyaXRlcihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+U2VydmxldENvbnRleHRXcml0ZXIoU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+Q29uc3RydWN0IGEgU2VydmxldENvbnRleHRXcml0ZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQKKyBTZXJ2bGV0Q29udGV4dCBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3NlcnZsZXRNYXBwaW5nIj48Qj5zZXJ2bGV0TWFwcGluZzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5UaGUgVVJMIHBhdHRlcm4gdG8gd2hpY2ggd2UgYXJlIG1hcHBlZCBpbiBvdXIgd2ViIGFwcGxpY2F0aW9uCisgZGVwbG95bWVudCBkZXNjcmlwdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjc2VydmxldE5hbWUiPjxCPnNlcnZsZXROYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSBzZXJ2bGV0IG5hbWUgdW5kZXIgd2hpY2ggd2UgYXJlIHJlZ2lzdGVyZWQgaW4gb3VyIHdlYiBhcHBsaWNhdGlvbgorIGRlcGxveW1lbnQgZGVzY3JpcHRvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCI+PEI+U2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCI+U2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0E+LjxERD5TdWJjbGFzcyBvZiA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPiB0aGF0IGRlZmF1bHRzIHRoZSBmb3JtIGJlYW4KKyBzY29wZSB0byA8Y29kZT5zZXNzaW9uPC9jb2RlPi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1Nlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwjU2Vzc2lvbkFjdGlvbk1hcHBpbmcoKSI+PEI+U2Vzc2lvbkFjdGlvbk1hcHBpbmcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9TZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sIj5TZXNzaW9uQWN0aW9uTWFwcGluZzwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyB3aXRoIHRoZSBkZXNpcmVkIGRlZmF1bHQKKyBmb3JtIGJlYW4gc2NvcGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjc2V0KGludCwgamF2YS5sYW5nLk9iamVjdCkiPjxCPnNldChpbnQsIE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVwbGFjZSB0aGUgZWxlbWVudCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGluIHRoaXMgbGlzdCB3aXRoCisgdGhlIHNwZWNpZmllZCBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlRmllbGRUYWcuaHRtbCNzZXRBY2NlcHQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEFjY2VwdChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0QWNjZXB0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBY2NlcHQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFjY2Vzc2tleShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QWNjZXNza2V5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIGFjY2Vzc0tleSBjaGFyYWN0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNzS2V5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBY2Nlc3NLZXkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSBhY2Nlc3NLZXkgY2hhcmFjdGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjc2V0QWN0aW9uKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBY3Rpb24oU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+U2V0IHRoZSBhY3Rpb24gVVJMIHRvIHdoaWNoIHRoaXMgZm9ybSBzaG91bGQgYmUgc3VibWl0dGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRBY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEFjdGlvbihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+U2V0IHRoZSBhY3Rpb24gVVJMIHRvIHdoaWNoIHRoaXMgZm9ybSBzaG91bGQgYmUgc3VibWl0dGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0QWN0aW9uQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEFjdGlvbkNsYXNzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBzZXRUeXBlKFN0cmluZykgaW5zdGVhZDwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRBbGlnbihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QWxpZ24oU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRBbHQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEFsdChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBbHQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0QWx0S2V5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBbHRLZXkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QWx0S2V5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNzZXRBbmNob3IoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEFuY2hvcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldEFuY2hvcihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QW5jaG9yKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNzZXRBbmNob3IoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEFuY2hvcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwjc2V0QXJnMChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QXJnMChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5TZXQgdGhlIGZpcnN0IG9wdGlvbmFsIGFyZ3VtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRBcmcwKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBcmcwKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sI3NldEFyZzEoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEFyZzEoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+U2V0IHRoZSBzZWNvbmQgb3B0aW9uYWwgYXJndW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldEFyZzEoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEFyZzEoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwjc2V0QXJnMihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QXJnMihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5TZXQgdGhlIHRoaXJkIG9wdGlvbmFsIGFyZ3VtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRBcmcyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBcmcyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sI3NldEFyZzMoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEFyZzMoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+U2V0IHRoZSBmb3VydGggb3B0aW9uYWwgYXJndW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldEFyZzMoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEFyZzMoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9NZXNzYWdlVGFnLmh0bWwjc2V0QXJnNChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QXJnNChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5TZXQgdGhlIGZpZnRoIG9wdGlvbmFsIGFyZ3VtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRBcmc0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBcmc0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QXR0cmlidXRlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlNldCB0aGUgYXR0cmlidXRlIG5hbWUgZm9yIG91ciBmb3JtIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjc2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48Qj5zZXRBdHRyaWJ1dGUoU3RyaW5nLCBPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNzZXRBdXRvQ29tbWl0KGJvb2xlYW4pIj48Qj5zZXRBdXRvQ29tbWl0KGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+R2VuZXJpY0Nvbm5lY3Rpb248L0E+Cis8REQ+U2V0cyB0aGlzIGNvbm5lY3Rpb24ncyBhdXRvLWNvbW1pdCBtb2RlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNzZXRBdXRvQ29tbWl0KGJvb2xlYW4pIj48Qj5zZXRBdXRvQ29tbWl0KGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0Qm9yZGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRCb3JkZXIoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldEJvcmRlcihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Qm9yZGVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjc2V0QnVmZmVyU2l6ZShpbnQpIj48Qj5zZXRCdWZmZXJTaXplKGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlNldCB0aGUgYnVmZmVyIHNpemUgKGhvdyBsYXJnZSBvZiBhIGNodW5rIG9mIGRhdGEgaXMKKyByZWNpZXZlZCBieSB0aGUgaW5wdXQgc3RyZWFtIGF0IG9uY2UpIHVzZWQgZm9yIGZpbGUKKyB1cGxvYWRpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjc2V0QnVmZmVyU2l6ZShpbnQpIj48Qj5zZXRCdWZmZXJTaXplKGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+U2V0IHRoZSBtYXhpbXVtIGFtb3VudCBvZiBieXRlcyByZWFkIGZyb20gYSBsaW5lIGF0IG9uZSB0aW1lCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEJ1bmRsZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5TZXQgdGhlIGJ1bmRsZSBrZXkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QnVuZGxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEJ1bmRsZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QnVuZGxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEJ1bmRsZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEJ1bmRsZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNzZXRDYXRhbG9nKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDYXRhbG9nKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4KKzxERD5TZXQgdGhlIGNhdGFsb2cgbmFtZSBmb3IgdGhpcyBDb25uZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI3NldENoYXJhY3RlckVuY29kaW5nKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDaGFyYWN0ZXJFbmNvZGluZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPlRoaXMgbWV0aG9kIGRvZXMgbm90aGluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjc2V0Q2xvc2VkKGJvb2xlYW4pIj48Qj5zZXRDbG9zZWQoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4KKzxERD5TZXQgdGhlIGNsb3NlZCBzdGF0dXMgb2YgdGhpcyBjb25uZWN0aW9uIHdyYXBwZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sI3NldENvbGxlY3Rpb24oamF2YS5sYW5nLk9iamVjdCkiPjxCPnNldENvbGxlY3Rpb24oT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCI+RW51bWVyYXRlVGFnPC9BPgorPEREPlNldCB0aGUgY29sbGVjdGlvbiBvdmVyIHdoaWNoIHdlIHdpbGwgYmUgZW51bWVyYXRpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCNzZXRDb2xsZWN0aW9uKGphdmEubGFuZy5PYmplY3QpIj48Qj5zZXRDb2xsZWN0aW9uKE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlNldCB0aGUgY29sbGVjdGlvbiBvdmVyIHdoaWNoIHdlIHdpbGwgYmUgaXRlcmF0aW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNzZXRDb2xsZWN0aW9uKGphdmEubGFuZy5PYmplY3QpIj48Qj5zZXRDb2xsZWN0aW9uKE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+U2l6ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldENvbGxlY3Rpb24oamF2YS5sYW5nLk9iamVjdCkiPjxCPnNldENvbGxlY3Rpb24oT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3NldENvbGxlY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPjxCPnNldENvbGxlY3Rpb24oU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCNzZXRDb2xzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb2xzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5TZXQgdGhlIG51bWJlciBvZiBjb2x1bW5zIGZvciB0aGlzIGZpZWxkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldENvbHMoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldENvbHMoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5TZXQgdGhlIG51bWJlciBvZiBjb2x1bW5zIGZvciB0aGlzIGZpZWxkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNzZXRDb250ZW50KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb250ZW50KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5TZXQgdGhlIGNvbnRlbnQncyBVUkkgKGlmIGl0J3MgdG8gYmUgaW5jbHVkZWQpIG9yIHRleHQgKGlmIGl0J3MgdG8KKyBiZSBwcmludGVkKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNzZXRDb250ZW50VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Q29udGVudFR5cGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj5EaXNrRmlsZTwvQT4KKzxERD5TZXQgdGhlIGNvbnRlbnQgdHlwZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI3NldENvbnRlbnRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb250ZW50VHlwZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT4KKzxERD5TZXQgdGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhpcyBmaWxlCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNzZXRDb250ZW50VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Q29udGVudFR5cGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+U2V0IHRoZSBjb250ZW50IHR5cGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb29raWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjc2V0RGF0YShieXRlW10pIj48Qj5zZXREYXRhKGJ5dGVbXSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSB0aGUgc2V0RmlsZSBtZXRob2QgdG8gc2V0IHRoZSBmaWxlCisgICAgICAgICAgICAgdGhhdCByZXByZXNlbnRzIHRoZSBkYXRhIG9mIHRoaXMgZWxlbWVudDwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3NldERlYnVnKGludCkiPjxCPnNldERlYnVnKGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPlNldCB0aGUgZGVidWdnaW5nIGRldGFpbCBsZXZlbCBvZiB0aGlzIERpZ2VzdGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI3NldERlYnVnKGludCkiPjxCPnNldERlYnVnKGludCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwjc2V0RGVidWcoaW50KSI+PEI+c2V0RGVidWcoaW50KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCI+QmVhblV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNzZXREZWJ1ZyhpbnQpIj48Qj5zZXREZWJ1ZyhpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNzZXREZWZhdWx0Qm9vbGVhbihib29sZWFuKSI+PEI+c2V0RGVmYXVsdEJvb2xlYW4oYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjc2V0RGVmYXVsdEJ5dGUoYnl0ZSkiPjxCPnNldERlZmF1bHRCeXRlKGJ5dGUpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI3NldERlZmF1bHRDaGFyYWN0ZXIoY2hhcikiPjxCPnNldERlZmF1bHRDaGFyYWN0ZXIoY2hhcik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjc2V0RGVmYXVsdERvdWJsZShkb3VibGUpIj48Qj5zZXREZWZhdWx0RG91YmxlKGRvdWJsZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCI+Q29udmVydFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjc2V0RGVmYXVsdEZsb2F0KGZsb2F0KSI+PEI+c2V0RGVmYXVsdEZsb2F0KGZsb2F0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sIj5Db252ZXJ0VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNzZXREZWZhdWx0SW50ZWdlcihpbnQpIj48Qj5zZXREZWZhdWx0SW50ZWdlcihpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI3NldERlZmF1bHRMb25nKGxvbmcpIj48Qj5zZXREZWZhdWx0TG9uZyhsb25nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sIj5Db252ZXJ0VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNzZXREZWZhdWx0U2hvcnQoc2hvcnQpIj48Qj5zZXREZWZhdWx0U2hvcnQoc2hvcnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjc2V0RGVzY3JpcHRpb24oamF2YS5sYW5nLlN0cmluZykiPjxCPnNldERlc2NyaXB0aW9uKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjc2V0RGlyZWN0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXREaXJlY3QoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPlNldCBkaXJlY3QgdG8gdHJ1ZSwgYW5kIGNvbnRlbnQgd2lsbCBiZSBwcmludGVkIGRpcmVjdGx5LCBpbnN0ZWFkCisgb2YgaW5jbHVkZWQgKGRpcmVjdCA9PSBmYWxzZSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXREaXNhYmxlZChib29sZWFuKSI+PEI+c2V0RGlzYWJsZWQoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIGRpc2FibGVkIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPjxCPnNldERpc2FibGVkKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjc2V0RG9jdW1lbnRMb2NhdG9yKG9yZy54bWwuc2F4LkxvY2F0b3IpIj48Qj5zZXREb2N1bWVudExvY2F0b3IoTG9jYXRvcik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPlNldCB0aGUgZG9jdW1lbnQgbG9jYXRvciBhc3NvY2lhdGVkIHdpdGggb3VyIHBhcnNlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjc2V0RHJpdmVyQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldERyaXZlckNsYXNzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sI3NldEVuY3R5cGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEVuY3R5cGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldEVuY3R5cGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEVuY3R5cGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNzZXRFcnJvcigpIj48Qj5zZXRFcnJvcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+U2V0IHRoZSBlcnJvciBzdGF0ZSBmb3IgdGhpcyBzdHJlYW0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNzZXRFcnJvckhhbmRsZXIob3JnLnhtbC5zYXguRXJyb3JIYW5kbGVyKSI+PEI+c2V0RXJyb3JIYW5kbGVyKEVycm9ySGFuZGxlcik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPlNldCB0aGUgZXJyb3IgaGFuZGxlciBmb3IgdGhpcyBEaWdlc3Rlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjc2V0RmFjdG9yeUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRGYWN0b3J5Q2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNzZXRGYXN0KGJvb2xlYW4pIj48Qj5zZXRGYXN0KGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPkFjdGlvbkZvcndhcmRzPC9BPgorPEREPlNldCB0aGUgImZhc3QiIG1vZGUgZmxhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwjc2V0RmFzdChib29sZWFuKSI+PEI+c2V0RmFzdChib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCI+QWN0aW9uRm9ybUJlYW5zPC9BPgorPEREPlNldCB0aGUgImZhc3QiIG1vZGUgZmxhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNzZXRGYXN0KGJvb2xlYW4pIj48Qj5zZXRGYXN0KGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPgorPEREPlNldCB0aGUgImZhc3QiIG1vZGUgZmxhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjc2V0RmFzdChib29sZWFuKSI+PEI+c2V0RmFzdChib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI3NldEZhc3QoYm9vbGVhbikiPjxCPnNldEZhc3QoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI3NldEZhc3QoYm9vbGVhbikiPjxCPnNldEZhc3QoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIj5GYXN0VHJlZU1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI3NldEZpbGUoamF2YS5pby5GaWxlKSI+PEI+c2V0RmlsZShGaWxlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+U2V0IHRoZSBmaWxlIHRoYXQgcmVwcmVzZW50cyB0aGlzIGVsZW1lbnQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNzZXRGaWxlTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0RmlsZU5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj5EaXNrRmlsZTwvQT4KKzxERD5TZXQgdGhlIGZpbGUgbmFtZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI3NldEZpbGVOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRGaWxlTmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT4KKzxERD5TZXQgdGhlIGZpbGVuYW1lIG9mIHRoaXMgZmlsZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjc2V0RmlsZU5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZpbGVOYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPgorPEREPlNldCB0aGUgZmlsZSBuYW1lIGZvciB0aGlzIGVsZW1lbnQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNzZXRGaWxlU2l6ZShpbnQpIj48Qj5zZXRGaWxlU2l6ZShpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPkRpc2tGaWxlPC9BPgorPEREPlNldCB0aGUgZmlsZSBzaXplCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjc2V0RmlsZVNpemUoaW50KSI+PEI+c2V0RmlsZVNpemUoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+Cis8REQ+U2V0IHRoZSBmaWxlIHNpemUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3NldEZpbHRlcihib29sZWFuKSI+PEI+c2V0RmlsdGVyKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjc2V0Rmx1c2goYm9vbGVhbikiPjxCPnNldEZsdXNoKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+Cis8REQ+U2V0IHRoZSBmbHVzaC1iZWZvcmUtaW5jbHVkZSBwcm9wZXJ0eQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjc2V0Rm9jdXMoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZvY3VzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgZm9jdXMgZmllbGQgbmFtZSBmb3IgdGhpcyBmb3JtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRGb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Rm9jdXMoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgZm9jdXMgZmllbGQgbmFtZSBmb3IgdGhpcyBmb3JtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0Rm9ybUF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Rm9ybUF0dHJpYnV0ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2Ugc2V0QXR0cmlidXRlKFN0cmluZykgaW5zdGVhZDwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNzZXRGb3JtQmVhbihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Rm9ybUJlYW4oU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPlN0cnV0c1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3NldEZvcm1CZWFuQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZvcm1CZWFuQ2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+U2V0IHRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGNsYXNzIHVzZWQgdG8gaW5zdGFudGlhdGUKKyA8Y29kZT5BY3Rpb25Gb3JtQmVhbjwvY29kZT4gb2JqZWN0cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEZvcm1DbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Rm9ybUNsYXNzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPk1vZGlmeSB0aGUgY29ycmVzcG9uZGluZyBBY3Rpb25Gb3JtQmVhbiBpbnN0ZWFkPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0Rm9ybVByZWZpeChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Rm9ybVByZWZpeChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2Ugc2V0UHJlZml4KFN0cmluZykgaW5zdGVhZDwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEZvcm1TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Rm9ybVNjb3BlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBzZXRTY29wZShTdHJpbmcpIGluc3RlYWQ8L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRGb3JtU3VmZml4KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRGb3JtU3VmZml4KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBzZXRTdWZmaXgoU3RyaW5nKSBpbnN0ZWFkPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0Rm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Rm9yd2FyZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5TZXQgdGhlIGZvcndhcmQgcGF0aCBmb3IgdGhpcyBtYXBwaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwjc2V0Rm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Rm9yd2FyZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD5TZXQgdGhlIGxvZ2ljYWwgZm9yd2FyZCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sI3NldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZvcndhcmQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sIj5MaW5rMVRhZzwvQT4KKzxERD5TZXQgdGhlIGxvZ2ljYWwgZm9yd2FyZCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNzZXRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRGb3J3YXJkKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNzZXRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRGb3J3YXJkKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj5TdHJ1dHNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZvcndhcmQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZvcndhcmQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3NldEZvcndhcmRDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Rm9yd2FyZENsYXNzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlNldCB0aGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBjbGFzcyB1c2VkIHRvIGluc3RhbnRpYXRlCisgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gb2JqZWN0cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRIZWFkZXIoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldEhlaWdodChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SGVpZ2h0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCNzZXRIcmVmKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRIcmVmKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlNldCB0aGUgaHlwZXJsaW5rIFVSSS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVkaXJlY3RUYWcuaHRtbCNzZXRIcmVmKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRIcmVmKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+U2V0IHRoZSBoeXBlcmxpbmsgVVJJLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sI3NldEhyZWYoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEhyZWYoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sIj5MaW5rMVRhZzwvQT4KKzxERD5TZXQgdGhlIGh5cGVybGluayBVUkkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3NldEhyZWYoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEhyZWYoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRIcmVmKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRIcmVmKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNzZXRIcmVmKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRIcmVmKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0SHNwYWNlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRIc3BhY2UoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldElkKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwiPkVudW1lcmF0ZVRhZzwvQT4KKzxERD5TZXQgdGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvR2V0UHJvcGVydHlUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9HZXRQcm9wZXJ0eVRhZy5odG1sIj5HZXRQcm9wZXJ0eVRhZzwvQT4KKzxERD5TZXQgdGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5TZXQgdGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPkhlYWRlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldElkKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+U2l6ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPkNvb2tpZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPlBhcmFtZXRlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIj5SZXNvdXJjZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldElkKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPlN0cnV0c1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldElkKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCI+UGFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3NldElnbm9yZShib29sZWFuKSI+PEI+c2V0SWdub3JlKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRJbWFnZU5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEltYWdlTmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0SW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SW5jbHVkZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5TZXQgdGhlIGluY2x1ZGUgcGF0aCBmb3IgdGhpcyBtYXBwaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI3NldEluZGV4ZWRQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGphdmEubGFuZy5PYmplY3QpIj48Qj5zZXRJbmRleGVkUHJvcGVydHkoT2JqZWN0LCBTdHJpbmcsIGludCwgT2JqZWN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwiPlByb3BlcnR5VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7U2V0IHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGluZGV4ZWQgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZAorIGJlYW4sIHdpdGggbm8gdHlwZSBjb252ZXJzaW9ucy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNzZXRJbmRleGVkUHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjxCPnNldEluZGV4ZWRQcm9wZXJ0eShPYmplY3QsIFN0cmluZywgT2JqZWN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwiPlByb3BlcnR5VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7U2V0IHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGluZGV4ZWQgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZAorIGJlYW4sIHdpdGggbm8gdHlwZSBjb252ZXJzaW9ucy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldEluZGV4SWQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEluZGV4SWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRJbnB1dChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SW5wdXQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+U2V0IHRoZSBpbnB1dCBmb3JtIHBhdGggZm9yIHRoaXMgbWFwcGluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI3NldElucHV0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJbnB1dChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIj5SZXNvdXJjZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldElucHV0Rm9ybShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SW5wdXRGb3JtKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBzZXRJbnB1dChTdHJpbmcpIGluc3RlYWQ8L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0SXNtYXAoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldElzbWFwKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCNzZXRLZXkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEtleShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5TZXQgdGhlIG1lc3NhZ2Uga2V5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRLZXkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEtleShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc2V0S2V5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRLZXkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uczFUYWcuaHRtbCNzZXRMYWJlbE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldExhYmVsTmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwiPk9wdGlvbnMxVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zVGFnLmh0bWwjc2V0TGFiZWxOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMYWJlbE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3NldExhYmVsTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TGFiZWxOYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uczFUYWcuaHRtbCNzZXRMYWJlbFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMYWJlbFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uczFUYWcuaHRtbCI+T3B0aW9uczFUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnNUYWcuaHRtbCNzZXRMYWJlbFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMYWJlbFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXRMYWJlbFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMYWJlbFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwjc2V0TGVuZ3RoKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMZW5ndGgoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCI+RW51bWVyYXRlVGFnPC9BPgorPEREPlNldCB0aGUgbGVuZ3RoLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwjc2V0TGVuZ3RoKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMZW5ndGgoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+U2V0IHRoZSBsZW5ndGguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzZXRMZW5ndGgoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldExlbmd0aChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0TGlua05hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldExpbmtOYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjc2V0TG9jYWxlKGJvb2xlYW4pIj48Qj5zZXRMb2NhbGUoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCI+SHRtbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEudXRpbC5Mb2NhbGUpIj48Qj5zZXRMb2NhbGUoSHR0cFNlcnZsZXRSZXF1ZXN0LCBMb2NhbGUpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+U2V0IHRoZSB1c2VyJ3MgY3VycmVudGx5IHNlbGVjdGVkIExvY2FsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TG9jYWxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPlNldCB0aGUgbG9jYWxlIGtleS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMb2NhbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TG9jYWxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMb2NhbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TG9jYWxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TG9jYWxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjc2V0TG9jYXRpb24oamF2YS5sYW5nLlN0cmluZykiPjxCPnNldExvY2F0aW9uKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3NldExvZ2luVGltZW91dChpbnQpIj48Qj5zZXRMb2dpblRpbWVvdXQoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPlNldCB0aGUgbG9naW4gdGltZW91dCBmb3IgdGhpcyBkYXRhIHNvdXJjZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjc2V0TG9nV3JpdGVyKGphdmEuaW8uUHJpbnRXcml0ZXIpIj48Qj5zZXRMb2dXcml0ZXIoUHJpbnRXcml0ZXIpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+U2V0IHRoZSBsb2cgd3JpdGVyIGZvciB0aGlzIGRhdGEgc291cmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldExvd3NyYyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TG93c3JjKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2V0TWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPjxCPnNldE1hcHBpbmcoQWN0aW9uTWFwcGluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPkNvbnZpZW5pZW5jZSBtZXRob2QgdG8gc2V0IGEgcmVmZXJlbmNlIHRvIGEgd29ya2luZworIEFjdGlvbk1hcHBpbmcgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3NldE1hcHBpbmcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48Qj5zZXRNYXBwaW5nKEFjdGlvbk1hcHBpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjc2V0TWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TWFwcGluZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+U3RydXRzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjc2V0TWFwcGluZ0NsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRNYXBwaW5nQ2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+U2V0IHRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGNsYXNzIHVzZWQgdG8gaW5zdGFudGlhdGUKKyA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPiBvYmplY3RzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0TWFwcGluZ3Mob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzKSI+PEI+c2V0TWFwcGluZ3MoQWN0aW9uTWFwcGluZ3MpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5TZXQgdGhlIDxjb2RlPkFjdGlvbk1hcHBpbmdzPC9jb2RlPiBjb2xsZWN0aW9uIG9mIHdoaWNoCisgd2UgYXJlIGEgcGFydC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjc2V0TWF4Q291bnQoaW50KSI+PEI+c2V0TWF4Q291bnQoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjc2V0TWF4RmlsZVNpemUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE1heEZpbGVTaXplKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlNldCB0aGUgbWF4aW11bSBmaWxlIHNpemUgdGhhdCBhIGNsaWVudCBjYW4gdXBsb2FkLCAgbnVtYmVyIFN0cmluZyB3aXRoIGEgdHJhaWxpbmcKKyBsZXR0ZXIgaW5kaWNhdGluZyB0aGUgc2l6ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwjc2V0TWF4bGVuZ3RoKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRNYXhsZW5ndGgoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlNldCB0aGUgbWF4aW11bSBsZW5ndGggYWxsb3dlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRNYXhsZW5ndGgoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE1heGxlbmd0aChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlNldCB0aGUgbWF4aW11bSBsZW5ndGggYWxsb3dlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNzZXRNYXhTaXplKGxvbmcpIj48Qj5zZXRNYXhTaXplKGxvbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPlNldCB0aGUgbWF4aW11bSBwb3N0IGRhdGEgc2l6ZSBhbGxvd2VkIGZvciBhIG11bHRpcGFydCByZXF1ZXN0Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNzZXRNZXRob2QoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE1ldGhvZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5TZXQgdGhlIHJlcXVlc3QgbWV0aG9kIHVzZWQgd2hlbiBzdWJtaXR0aW5nIHRoaXMgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0TWV0aG9kKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRNZXRob2QoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgcmVxdWVzdCBtZXRob2QgdXNlZCB3aGVuIHN1Ym1pdHRpbmcgdGhpcyBmb3JtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNzZXRNaW5Db3VudChpbnQpIj48Qj5zZXRNaW5Db3VudChpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRNdWx0aXBhcnRDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TXVsdGlwYXJ0Q2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+U2V0IHRoZSBuYW1lIG9mIHRoZSBjbGFzcyB1c2VkIHRvIGhhbmRsZSBtdWx0aXBhcnQgcmVxdWVzdCBkYXRhCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNzZXRNdWx0aXBhcnRDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TXVsdGlwYXJ0Q2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+U2V0IHRoZSBjbGFzcyBuYW1lIG9mIHRoZSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciBpbXBsZW1lbnRhdGlvbgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjc2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIob3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RIYW5kbGVyKSI+PEI+c2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIoTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwjc2V0TXVsdGlwbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE11bHRpcGxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNzZXRNdWx0aXBsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TXVsdGlwbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPkhlYWRlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNzZXRNdWx0aXBsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TXVsdGlwbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPkNvb2tpZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNzZXRNdWx0aXBsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TXVsdGlwbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPlBhcmFtZXRlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNzZXRNdWx0aXBsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TXVsdGlwbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+U2V0IHRoZSBuYW1lIG9mIHRoZSBmb3JtIGJlYW4gZm9yIHRoaXMgbWFwcGluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+Cis8REQ+U2V0IHRoZSBiZWFuIG5hbWUgb2YgdGhpcyBhY3Rpb24gZm9ybSBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4KKzxERD5TZXQgdGhlIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmtUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlNldCB0aGUgYmVhbiBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9IdG1sUHJvcGVydHlUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSHRtbFByb3BlcnR5VGFnLmh0bWwiPkh0bWxQcm9wZXJ0eVRhZzwvQT4KKzxERD5TZXQgdGhlIG9iamVjdCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlckVxdWFsc1RhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlckVxdWFsc1RhZy5odG1sIj5JZlBhcmFtZXRlckVxdWFsc1RhZzwvQT4KKzxERD5TZXQgdGhlIHBhcmFtZXRlciBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5TZXQgdGhlIGF0dHJpYnV0ZSBrZXkgbmFtZSBvZiBvdXIgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTXVsdGlib3hUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1BhcmFtZXRlclRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9QYXJhbWV0ZXJUYWcuaHRtbCI+UGFyYW1ldGVyVGFnPC9BPgorPEREPlNldCB0aGUgcGFyYW1ldGVyIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwiPk9wdGlvbnMxVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FcnJvcnNUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4KKzxERD5TZXQgdGhlIGVycm9ycyBhdHRyaWJ1dGUgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sIj5FbnVtZXJhdGVUYWc8L0E+Cis8REQ+U2V0IHRoZSBuYW1lIG9mIHRoZSBjb2xsZWN0aW9uIG9yIG93bmluZyBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvR2V0UHJvcGVydHlUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvR2V0UHJvcGVydHlUYWcuaHRtbCI+R2V0UHJvcGVydHlUYWc8L0E+Cis8REQ+U2V0IHRoZSBuYW1lIG9mIHRoZSBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck51bGxUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOdWxsVGFnLmh0bWwiPklmUGFyYW1ldGVyTnVsbFRhZzwvQT4KKzxERD5TZXQgdGhlIHBhcmFtZXRlciBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SYWRpb1RhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVzZXRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+Cis8REQ+U2V0IHRoZSBmaWVsZCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JbmNsdWRlVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD5TZXQgdGhlIGxvZ2ljbCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlRmllbGRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUF0dHJpYnV0ZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlQXR0cmlidXRlVGFnLmh0bWwiPkJhc2VBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+U2V0IHRoZSBhdHRyaWJ1dGUgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9yd2FyZFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3J3YXJkVGFnLmh0bWwiPkZvcndhcmRUYWc8L0E+Cis8REQ+U2V0IHRoZSBsb2dpY2wgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWcuaHRtbCI+SWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWc8L0E+Cis8REQ+U2V0IHRoZSBwYXJhbWV0ZXIgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvVGV4dGFyZWFUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvVGV4dGFyZWFUYWcuaHRtbCI+VGV4dGFyZWFUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NoZWNrYm94VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck5vdE51bGxUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3ROdWxsVGFnLmh0bWwiPklmUGFyYW1ldGVyTm90TnVsbFRhZzwvQT4KKzxERD5TZXQgdGhlIHBhcmFtZXRlciBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sIj5MaW5rMVRhZzwvQT4KKzxERD5TZXQgdGhlIGJlYW4gbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUHJvcGVydHlUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUHJvcGVydHlUYWcuaHRtbCI+UHJvcGVydHlUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlNldCB0aGUgbmFtZSBvZiB0aGUgY29sbGVjdGlvbiBvciBvd25pbmcgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPkNvb2tpZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPlJlc291cmNlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2Ugc2V0UGFnZShTdHJpbmcpIGluc3RlYWQ8L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPlNldCB0aGUgZmllbGQgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj5DaGVja2JveFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+U2V0IHRoZSBhdHRyaWJ1dGUga2V5IG5hbWUgb2Ygb3VyIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sIj5Gb3J3YXJkVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+U2V0IHRoZSBjb250ZW50IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCI+R2V0VGFnPC9BPgorPEREPlNldCB0aGUgbmFtZSBhdHRyaWJ1dGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+U2V0IHRoZSBuYW1lIGZvciB0aGlzIGVsZW1lbnQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNzZXROZXN0ZWRQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+c2V0TmVzdGVkUHJvcGVydHkoT2JqZWN0LCBTdHJpbmcsIE9iamVjdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1NldCB0aGUgdmFsdWUgb2YgdGhlIChwb3NzaWJseSBuZXN0ZWQpIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQKKyBuYW1lLCBmb3IgdGhlIHNwZWNpZmllZCBiZWFuLCB3aXRoIG5vIHR5cGUgY29udmVyc2lvbnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0TmV4dFJ1bGUuaHRtbCI+PEI+U2V0TmV4dFJ1bGU8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldE5leHRSdWxlLmh0bWwiPlNldE5leHRSdWxlPC9BPi48REQ+UnVsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGNhbGxzIGEgbWV0aG9kIG9uIHRoZSAodG9wLTEpIChwYXJlbnQpCisgb2JqZWN0LCBwYXNzaW5nIHRoZSB0b3Agb2JqZWN0IChjaGlsZCkgYXMgYW4gYXJndW1lbnQuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldE5leHRSdWxlLmh0bWwjU2V0TmV4dFJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5TZXROZXh0UnVsZShEaWdlc3RlciwgU3RyaW5nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0TmV4dFJ1bGUuaHRtbCI+U2V0TmV4dFJ1bGU8L0E+Cis8REQ+Q29uc3RydWN0IGEgInNldCBuZXh0IiBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBtZXRob2QgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXROZXh0UnVsZS5odG1sI1NldE5leHRSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+U2V0TmV4dFJ1bGUoRGlnZXN0ZXIsIFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0TmV4dFJ1bGUuaHRtbCI+U2V0TmV4dFJ1bGU8L0E+Cis8REQ+Q29uc3RydWN0IGEgInNldCBuZXh0IiBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBtZXRob2QgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwjc2V0T2Zmc2V0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPZmZzZXQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCI+RW51bWVyYXRlVGFnPC9BPgorPEREPlNldCB0aGUgb2Zmc2V0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwjc2V0T2Zmc2V0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPZmZzZXQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+U2V0IHRoZSBvZmZzZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzZXRPZmZzZXQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9mZnNldChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25ibHVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG9uQmx1ciBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uQmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25CbHVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25CbHVyIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25jaGFuZ2UoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25DaGFuZ2UgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbkNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25DaGFuZ2UoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSBvbkNoYW5nZSBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25jbGljayhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSBvbkNsaWNrIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25DbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25DbGljayhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG9uQ2xpY2sgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9uZGJsY2xpY2soU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25EYmxDbGljayBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uRGJsQ2xpY2soamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9uRGJsQ2xpY2soU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSBvbkRibENsaWNrIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbmZvY3VzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG9uRm9jdXMgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbkZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbkZvY3VzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25Gb2N1cyBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbmtleWRvd24oU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25LZXlEb3duIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25LZXlEb3duKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbktleURvd24oU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSBvbktleURvd24gZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9ua2V5cHJlc3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25LZXlQcmVzcyBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uS2V5UHJlc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9uS2V5UHJlc3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSBvbktleVByZXNzIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbmtleXVwKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG9uS2V5VXAgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbktleVVwKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbktleVVwKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25LZXlVcCBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9ubW91c2Vkb3duKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG9uTW91c2VEb3duIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25Nb3VzZURvd24oamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9uTW91c2VEb3duKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25Nb3VzZURvd24gZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbm1vdXNlbW92ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSBvbk1vdXNlTW92ZSBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uTW91c2VNb3ZlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbk1vdXNlTW92ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG9uTW91c2VNb3ZlIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbm1vdXNlb3V0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG9uTW91c2VPdXQgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbk1vdXNlT3V0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbk1vdXNlT3V0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25Nb3VzZU91dCBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9ubW91c2VvdmVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG9uTW91c2VPdmVyIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25Nb3VzZU92ZXIoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9uTW91c2VPdmVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25Nb3VzZU92ZXIgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25tb3VzZXVwKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG9uTW91c2VVcCBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uTW91c2VVcChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25Nb3VzZVVwKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25Nb3VzZVVwIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldE9ucmVzZXQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9ucmVzZXQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgb25SZXNldCBldmVudCBzY3JpcHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNzZXRPblJlc2V0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPblJlc2V0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgb25SZXNldCBldmVudCBzY3JpcHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25zZWxlY3QoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25TZWxlY3QgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPblNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25TZWxlY3QoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSBvblNlbGVjdCBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRPbnN1Ym1pdChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25zdWJtaXQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgb25TdWJtaXQgZXZlbnQgc2NyaXB0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjc2V0T25TdWJtaXQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9uU3VibWl0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgb25TdWJtaXQgZXZlbnQgc2NyaXB0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQYWdlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQYWdlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQYWdlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQYWdlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQYWdlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0UGFnZUtleShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFnZUtleShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc2V0UGFnZUtleShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFnZUtleShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1ldGVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlNldCB0aGUgZ2VuZXJhbCBwdXJwb3NlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGZvciB0aGlzIG1hcHBpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1ldGVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhcmFtZXRlcihTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+U2V0cyBhIHBhcmFtZXRlciBmb3IgdGhpcyByZXF1ZXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFBhcmFtSWQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhcmFtSWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1JZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1JZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0UGFyYW1JZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1JZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFBhcmFtTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1OYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFBhcmFtTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1OYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNzZXRQYXJhbU5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhcmFtTmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFBhcmFtUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhcmFtUHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1Qcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1Qcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0UGFyYW1Qcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1Qcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFBhcmFtU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhcmFtU2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1TY29wZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0UGFyYW1TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1TY29wZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNzZXRQYXNzd29yZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFzc3dvcmQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0UGF0aChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGF0aChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5TZXQgdGhlIHJlcXVlc3QgVVJJIHBhdGggdXNlZCB0byBzZWxlY3QgdGhpcyBtYXBwaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjc2V0UGF0aChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGF0aChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4KKzxERD5TZXQgdGhlIHBhdGguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3NldFBpbmdDb21tYW5kKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQaW5nQ29tbWFuZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3NldFBpbmdRdWVyeShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGluZ1F1ZXJ5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldFByZWZpeChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJlZml4KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlNldCB0aGUgcGFyYW1ldGVyIG5hbWUgcHJlZml4IGZvciB0aGlzIG1hcHBpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydGllc1J1bGUuaHRtbCI+PEI+U2V0UHJvcGVydGllc1J1bGU8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFByb3BlcnRpZXNSdWxlLmh0bWwiPlNldFByb3BlcnRpZXNSdWxlPC9BPi48REQ+UnVsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IHNldHMgcHJvcGVydGllcyBvbiB0aGUgb2JqZWN0IGF0IHRoZSB0b3Agb2YgdGhlCisgc3RhY2ssIGJhc2VkIG9uIGF0dHJpYnV0ZXMgd2l0aCBjb3JyZXNwb25kaW5nIG5hbWVzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0aWVzUnVsZS5odG1sI1NldFByb3BlcnRpZXNSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyKSI+PEI+U2V0UHJvcGVydGllc1J1bGUoRGlnZXN0ZXIpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0aWVzUnVsZS5odG1sIj5TZXRQcm9wZXJ0aWVzUnVsZTwvQT4KKzxERD5EZWZhdWx0IGNvbnN0cnVjdG9yIHNldHMgb25seSB0aGUgdGhlIGFzc29jaWF0ZWQgRGlnZXN0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjxCPnNldFByb3BlcnR5KE9iamVjdCwgU3RyaW5nLCBPYmplY3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCI+UHJvcGVydHlVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtTZXQgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZCBiZWFuLAorIG5vIG1hdHRlciB3aGljaCBwcm9wZXJ0eSByZWZlcmVuY2UgZm9ybWF0IGlzIHVzZWQsIHdpdGggbm8KKyB0eXBlIGNvbnZlcnNpb25zLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSHRtbFByb3BlcnR5VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSHRtbFByb3BlcnR5VGFnLmh0bWwiPkh0bWxQcm9wZXJ0eVRhZzwvQT4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL011bHRpYm94VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zMVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwiPk9wdGlvbnMxVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbnVtZXJhdGVUYWcuaHRtbCI+RW51bWVyYXRlVGFnPC9BPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uc1RhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvR2V0UHJvcGVydHlUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9HZXRQcm9wZXJ0eVRhZy5odG1sIj5HZXRQcm9wZXJ0eVRhZzwvQT4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JhZGlvVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU3VibWl0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NoZWNrYm94VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CdXR0b25UYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2FuY2VsVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmsxVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCI+TGluazFUYWc8L0E+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlByb3BlcnR5RXF1YWxzVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eUVxdWFsc1RhZy5odG1sIj5JZlByb3BlcnR5RXF1YWxzVGFnPC9BPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlOb3RFcXVhbHNUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlByb3BlcnR5Tm90RXF1YWxzVGFnLmh0bWwiPklmUHJvcGVydHlOb3RFcXVhbHNUYWc8L0E+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TZWxlY3RUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+U2l6ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCI+UGFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFByb3BlcnR5UnVsZS5odG1sIj48Qj5TZXRQcm9wZXJ0eVJ1bGU8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFByb3BlcnR5UnVsZS5odG1sIj5TZXRQcm9wZXJ0eVJ1bGU8L0E+LjxERD5SdWxlIGltcGxlbWVudGF0aW9uIHRoYXQgc2V0cyBhbiBpbmRpdmlkdWFsIHByb3BlcnR5IG9uIHRoZSBvYmplY3QgYXQgdGhlCisgdG9wIG9mIHRoZSBzdGFjaywgYmFzZWQgb24gYXR0cmlidXRlcyB3aXRoIHNwZWNpZmllZCBuYW1lcy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydHlSdWxlLmh0bWwjU2V0UHJvcGVydHlSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+U2V0UHJvcGVydHlSdWxlKERpZ2VzdGVyLCBTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFByb3BlcnR5UnVsZS5odG1sIj5TZXRQcm9wZXJ0eVJ1bGU8L0E+Cis8REQ+Q29uc3RydWN0IGEgInNldCBwcm9wZXJ0eSIgcnVsZSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSBhbmQgdmFsdWUKKyBhdHRyaWJ1dGVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPjxCPnNldFJlYWRvbmx5KGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSByZWFkb25seSBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNzZXRSZWFkT25seShib29sZWFuKSI+PEI+c2V0UmVhZE9ubHkoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4KKzxERD5TZXQgdGhlIHJlYWQtb25seSBtb2RlIG9mIHRoaXMgY29ubmVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjc2V0UmVhZE9ubHkoYm9vbGVhbikiPjxCPnNldFJlYWRPbmx5KGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCNzZXRSZWRpcmVjdChib29sZWFuKSI+PEI+c2V0UmVkaXJlY3QoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPgorPEREPlNldCB0aGUgcmVkaXJlY3QgZmxhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNzZXRSZWRpc3BsYXkoYm9vbGVhbikiPjxCPnNldFJlZGlzcGxheShib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNzZXRSZXR1cm5OdWxsKGJvb2xlYW4pIj48Qj5zZXRSZXR1cm5OdWxsKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNzZXRSZXR1cm5OdWxsKGJvb2xlYW4pIj48Qj5zZXRSZXR1cm5OdWxsKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFJvbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRSb2xlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Um9sZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+Cis8REQ+U2V0IHRoZSByb2xlIGF0dHJpYnV0ZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCNzZXRSb3dzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRSb3dzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5TZXQgdGhlIG51bWJlciBvZiByb3dzIGZvciB0aGlzIGZpZWxkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFJvd3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFJvd3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5TZXQgdGhlIG51bWJlciBvZiByb3dzIGZvciB0aGlzIGZpZWxkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFNjb3BlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlNldCB0aGUgYXR0cmlidXRlIHNjb3BlIGZvciB0aGlzIG1hcHBpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+U2V0IHRoZSBhdHRyaWJ1dGUgc2NvcGUgb2Ygb3VyIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VBdHRyaWJ1dGVUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlQXR0cmlidXRlVGFnLmh0bWwiPkJhc2VBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+U2V0IHRoZSBhdHRyaWJ1dGUgc2NvcGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFNjb3BlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTY29wZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFNjb3BlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTY29wZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTY29wZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+U2V0IHRoZSBhdHRyaWJ1dGUgc2NvcGUgb2Ygb3VyIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTY29wZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFNjb3BlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj48Qj5zZXRTZXJ2bGV0KEFjdGlvblNlcnZsZXQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+U2V0IHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkIChpZgorIDxjb2RlPnNlcnZsZXQ8L2NvZGU+IGlzIG5vbi1udWxsKSwgb3IgcmVsZWFzZSBhbnkgYWxsb2NhdGVkIHJlc291cmNlcworIChpZiA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBpcyBudWxsKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj48Qj5zZXRTZXJ2bGV0KEFjdGlvblNlcnZsZXQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4KKzxERD5TZXQgdGhlIGNvbnRyb2xsZXIgc2VydmxldCBpbnN0YW5jZSB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQgKGlmCisgPGNvZGU+c2VydmxldDwvY29kZT4gaXMgbm9uLW51bGwpLCBvciByZWxlYXNlIGFueSBhbGxvY2F0ZWQgcmVzb3VyY2VzCisgKGlmIDxjb2RlPnNlcnZsZXQ8L2NvZGU+IGlzIG51bGwpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj48Qj5zZXRTZXJ2bGV0KEFjdGlvblNlcnZsZXQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPgorPEREPlNldCB0aGUgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4gaW5zdGFuY2Ugb2Ygb3VyIG93bmluZyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+PEI+c2V0U2VydmxldChBY3Rpb25TZXJ2bGV0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+Q29udmllbmllbmNlIG1ldGhvZCB0byBzZXQgYSByZWZlcmVuY2UgdG8gYSB3b3JraW5nCisgQWN0aW9uU2VydmxldCBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPjxCPnNldFNlcnZsZXQoQWN0aW9uU2VydmxldCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNzZXRTaW1wbGVQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+c2V0U2ltcGxlUHJvcGVydHkoT2JqZWN0LCBTdHJpbmcsIE9iamVjdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1NldCB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBzaW1wbGUgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZCBiZWFuLAorIHdpdGggbm8gdHlwZSBjb252ZXJzaW9ucy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwjc2V0U2l6ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2l6ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+U2V0IHRoZSBzaXplIG9mIHRoaXMgZmllbGQgKHN5bm9ueW0gZm9yIDxjb2RlPnNldENvbHMoKTwvY29kZT4pLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TZWxlY3RUYWcuaHRtbCNzZXRTaXplKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTaXplKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRTaXplKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTaXplKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+U2V0IHRoZSBzaXplIG9mIHRoaXMgZmllbGQgKHN5bm9ueW0gZm9yIDxjb2RlPnNldENvbHMoKTwvY29kZT4pLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3NldFNpemUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFNpemUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRTcmMoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFNyYyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc2V0U3JjKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTcmMoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0U3JjS2V5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTcmNLZXkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldFNyY0tleShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U3JjS2V5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFN0eWxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgc3R5bGUgYXR0cmlidXRlIGZvciB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U3R5bGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSBzdHlsZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U3R5bGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgc3R5bGUgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U3R5bGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgc3R5bGUgYXR0cmlidXRlIGZvciB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFN0eWxlQ2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+U2V0IHRoZSBzdHlsZSBjbGFzcyBmb3IgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U3R5bGVDbGFzcyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIHN0eWxlIGNsYXNzIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFN0eWxlQ2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgc3R5bGUgY2xhc3MgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTdHlsZUNsYXNzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5TZXQgdGhlIHN0eWxlIGNsYXNzIGZvciB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFN0eWxlSWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+U2V0IHRoZSBzdHlsZSBpZCBmb3IgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U3R5bGVJZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIHN0eWxlIGlkIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFN0eWxlSWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgc3R5bGUgaWQgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTdHlsZUlkKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5TZXQgdGhlIHN0eWxlIGlkZW50aWZpZXIgZm9yIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0U3VmZml4KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTdWZmaXgoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+U2V0IHRoZSBwYXJhbWV0ZXIgbmFtZSBzdWZmaXggZm9yIHRoaXMgbWFwcGluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUYWJpbmRleChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSB0YWJJbmRleCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJJbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VGFiSW5kZXgoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSB0YWJJbmRleCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sI3NldFRhcmdldChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VGFyZ2V0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlNldCB0aGUgd2luZG93IHRhcmdldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sI3NldFRhcmdldChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VGFyZ2V0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgd2luZG93IHRhcmdldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCNzZXRUYXJnZXQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFRhcmdldChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmsxVGFnLmh0bWwiPkxpbmsxVGFnPC9BPgorPEREPlNldCB0aGUgd2luZG93IHRhcmdldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjc2V0VGFyZ2V0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUYXJnZXQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sIj5CYXNlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRUYXJnZXQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFRhcmdldChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldFRhcmdldChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VGFyZ2V0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5TZXQgdGhlIHdpbmRvdyB0YXJnZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNzZXRUZW1wRGlyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUZW1wRGlyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlNldCB0aGUgZGlyZWN0b3J5IHVzZWQgdG8gdGVtcG9yYXJpbHkgc3RvcmUgZmlsZXMgZm9yIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyCisgaW1wbGVtZW50YXRpb25zIHRoYXQgd3JpdGUgdG8gdGhlIGRpc2sKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjc2V0VGVtcGxhdGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFRlbXBsYXRlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5TZXQgdGhlIHRlbXBsYXRlIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUaXRsZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSBhZHZpc29yeSB0aXRsZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0VG9wUnVsZS5odG1sIj48Qj5TZXRUb3BSdWxlPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRUb3BSdWxlLmh0bWwiPlNldFRvcFJ1bGU8L0E+LjxERD5SdWxlIGltcGxlbWVudGF0aW9uIHRoYXQgY2FsbHMgYSBtZXRob2Qgb24gdGhlIHRvcCAocGFyZW50KQorIG9iamVjdCwgcGFzc2luZyB0aGUgKHRvcC0xKSAoY2hpbGQpIG9iamVjdCBhcyBhbiBhcmd1bWVudC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0VG9wUnVsZS5odG1sI1NldFRvcFJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5TZXRUb3BSdWxlKERpZ2VzdGVyLCBTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRUb3BSdWxlLmh0bWwiPlNldFRvcFJ1bGU8L0E+Cis8REQ+Q29uc3RydWN0IGEgInNldCBwYXJlbnQiIHJ1bGUgd2l0aCB0aGUgc3BlY2lmaWVkIG1ldGhvZCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFRvcFJ1bGUuaHRtbCNTZXRUb3BSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+U2V0VG9wUnVsZShEaWdlc3RlciwgU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRUb3BSdWxlLmh0bWwiPlNldFRvcFJ1bGU8L0E+Cis8REQ+Q29uc3RydWN0IGEgInNldCBwYXJlbnQiIHJ1bGUgd2l0aCB0aGUgc3BlY2lmaWVkIG1ldGhvZCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldFRvU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFRvU2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjc2V0VHJhbnNhY3Rpb24oYm9vbGVhbikiPjxCPnNldFRyYW5zYWN0aW9uKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFRyYW5zYWN0aW9uKGJvb2xlYW4pIj48Qj5zZXRUcmFuc2FjdGlvbihib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFRyYW5zYWN0aW9uKGJvb2xlYW4pIj48Qj5zZXRUcmFuc2FjdGlvbihib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjc2V0VHJhbnNhY3Rpb25Jc29sYXRpb24oaW50KSI+PEI+c2V0VHJhbnNhY3Rpb25Jc29sYXRpb24oaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPgorPEREPlNldCB0aGUgdHJhbnNhY3Rpb24gaXNvbGF0aW9uIGxldmVsIGZvciB0aGlzIENvbm5lY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUeXBlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlNldCB0aGUgZnVsbHkgcXVhbGlmaWVkIEFjdGlvbiBjbGFzcyBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFR5cGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT4KKzxERD5TZXQgdGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGlzIGFjdGlvbiBmb3JtIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUeXBlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgSmF2YSBjbGFzcyBvZiBvdXIgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUeXBlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFR5cGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgSmF2YSBjbGFzcyBvZiBvdXIgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFR5cGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI3NldFR5cGVNYXAoamF2YS51dGlsLk1hcCkiPjxCPnNldFR5cGVNYXAoTWFwKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPgorPEREPihKREJDIDIuMCkgU2V0IHRoZSB0eXBlIG1hcCBmb3IgdGhpcyBjb25uZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0VW5rbm93bihib29sZWFuKSI+PEI+c2V0VW5rbm93bihib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+U2V0IHRoZSB1bmtub3duIGZsYWcgZm9yIHRoaXMgbWFwcGluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW5jb2RlUmVkaXJlY3RVUkxUYWcuaHRtbCNzZXRVcmwoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFVybChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VuY29kZVJlZGlyZWN0VVJMVGFnLmh0bWwiPkVuY29kZVJlZGlyZWN0VVJMVGFnPC9BPgorPEREPlNldCB0aGUgVVJMIHRvIGJlIGVuY29kZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VuY29kZVVSTFRhZy5odG1sI3NldFVybChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VXJsKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW5jb2RlVVJMVGFnLmh0bWwiPkVuY29kZVVSTFRhZzwvQT4KKzxERD5TZXQgdGhlIFVSTCB0byBiZSBlbmNvZGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNzZXRVcmwoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFVybChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0VXNlbWFwKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRVc2VtYXAoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VXNlcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3NldFVzZXIoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFVzZXIoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0VmFsaWRhdGUoYm9vbGVhbikiPjxCPnNldFZhbGlkYXRlKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5TZXQgdGhlIHZhbGlkYXRlIGZsYWcgZm9yIHRoaXMgbWFwcGluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3NldFZhbGlkYXRpbmcoYm9vbGVhbikiPjxCPnNldFZhbGlkYXRpbmcoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPlNldCB0aGUgdmFsaWRhdGluZyBwYXJzZXIgZmxhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJFcXVhbHNUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlckVxdWFsc1RhZy5odG1sIj5JZlBhcmFtZXRlckVxdWFsc1RhZzwvQT4KKzxERD5TZXQgdGhlIGNvbXBhcmlzb24gdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL011bHRpYm94VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+U2V0IHRoZSBzZXJ2ZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JhZGlvVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+U2V0IHRoZSBzZXJ2ZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Jlc2V0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+Cis8REQ+U2V0IHRoZSBsYWJlbCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5TZXQgdGhlIGZpZWxkIHZhbHVlIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck5vdEVxdWFsc1RhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTm90RXF1YWxzVGFnLmh0bWwiPklmUGFyYW1ldGVyTm90RXF1YWxzVGFnPC9BPgorPEREPlNldCB0aGUgY29tcGFyaXNvbiB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU3VibWl0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT4KKzxERD5TZXQgdGhlIGxhYmVsIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DaGVja2JveFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPlNldCB0aGUgc2VydmVyIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CdXR0b25UYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPgorPEREPlNldCB0aGUgbGFiZWwgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NhbmNlbFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NhbmNlbFRhZy5odG1sIj5DYW5jZWxUYWc8L0E+Cis8REQ+U2V0IHRoZSBsYWJlbCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5TZXQgdGhlIHNlcnZlciB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eUVxdWFsc1RhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlFcXVhbHNUYWcuaHRtbCI+SWZQcm9wZXJ0eUVxdWFsc1RhZzwvQT4KKzxERD5TZXQgdGhlIG1hdGNoaW5nIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlByb3BlcnR5Tm90RXF1YWxzVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eU5vdEVxdWFsc1RhZy5odG1sIj5JZlByb3BlcnR5Tm90RXF1YWxzVGFnPC9BPgorPEREPlNldCB0aGUgbWF0Y2hpbmcgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+U2V0IHRoZSBjb21wYXJpc29uIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+Q29va2llVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+UGFyYW1ldGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlNldCB0aGUgZmllbGQgdmFsdWUgKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+U2V0IHRoZSBzZXJ2ZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIj5DYW5jZWxUYWc8L0E+Cis8REQ+U2V0IHRoZSBsYWJlbCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT4KKzxERD5TZXQgdGhlIHNlcnZlciB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIj5SZXNldFRhZzwvQT4KKzxERD5TZXQgdGhlIGxhYmVsIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPgorPEREPlNldCB0aGUgbGFiZWwgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+Cis8REQ+U2V0IHRoZSBsYWJlbCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5TZXQgdGhlIGNvbXBhcmlzb24gdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+U2V0IHRoZSBzZXJ2ZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0VnNwYWNlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWc3BhY2UoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRXaWR0aChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0V2lkdGgoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjc2V0WGh0bWwoYm9vbGVhbikiPjxCPnNldFhodG1sKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPkh0bWxUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sI3NpemUiPjxCPnNpemU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPkhvdyBtYW55IGF2YWlsYWJsZSBvcHRpb25zIHNob3VsZCBiZSBkaXNwbGF5ZWQgd2hlbiB0aGlzIGVsZW1lbnQKKyBpcyByZW5kZXJlZD8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNzaXplIj48Qj5zaXplPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+SG93IG1hbnkgYXZhaWxhYmxlIG9wdGlvbnMgc2hvdWxkIGJlIGRpc3BsYXllZCB3aGVuIHRoaXMgZWxlbWVudAorIGlzIHJlbmRlcmVkPworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCNzaXplKCkiPjxCPnNpemUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPgorPEREPlJldHVybiB0aGUgbnVtYmVyIG9mIGVycm9ycyByZWNvcmRlZCBmb3IgYWxsIHByb3BlcnRpZXMgKGluY2x1ZGluZworIGdsb2JhbCBlcnJvcnMpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCNzaXplKCkiPjxCPnNpemUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgbnVtYmVyIG9mIGtleS12YWx1ZSBtYXBwaW5ncyBpbiB0aGlzIG1hcC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FycmF5U3RhY2suaHRtbCNzaXplKCkiPjxCPnNpemUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FycmF5U3RhY2suaHRtbCI+QXJyYXlTdGFjazwvQT4KKzxERD5SZXR1cm4gdGhlIG51bWJlciBvZiBpdGVtcyBvbiB0aGlzIHN0YWNrLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI3NpemUoKSI+PEI+c2l6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sIj5GYXN0QXJyYXlMaXN0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIHRoaXMgbGlzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjc2l6ZSgpIj48Qj5zaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIj5GYXN0VHJlZU1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIG51bWJlciBvZiBrZXktdmFsdWUgbWFwcGluZ3MgaW4gdGhpcyBtYXAuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sI3NpemUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNpemUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPgorPEREPlJldHVybiB0aGUgbnVtYmVyIG9mIGVycm9ycyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPjxCPlNpemVUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+U2l6ZVRhZzwvQT4uPEREPkRlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgY29udGFpbiB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzCisgZm91bmQgaW4gYSBzcGVjaWZpZWQgYXJyYXksIENvbGxlY3Rpb24sIG9yIE1hcC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI1NpemVUYWcoKSI+PEI+U2l6ZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sIj48Qj5TaXplVGVpPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwiPlNpemVUZWk8L0E+LjxERD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+c2l6ZTwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sI1NpemVUZWkoKSI+PEI+U2l6ZVRlaSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwiPlNpemVUZWk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI3NvdXJjZSI+PEI+c291cmNlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4KKzxERD5UaGUgR2VuZXJpY0RhdGFTb3VyY2UgdGhhdCBvd25zIHRoaXMgY29ubmVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjU1FMRVhDRVBUSU9OX0NMT1NFRCI+PEI+U1FMRVhDRVBUSU9OX0NMT1NFRDwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNTUUxFWENFUFRJT05fR0VUQ09OTkVDVElPTiI+PEI+U1FMRVhDRVBUSU9OX0dFVENPTk5FQ1RJT048L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzcmMiPjxCPnNyYzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBpbWFnZSBzb3VyY2UgVVJJLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc3JjIj48Qj5zcmM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+VGhlIFVSTCBvZiB0aGlzIGltYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NyYygpIj48Qj5zcmMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGJhc2Ugc291cmNlIFVSTCB0aGF0IHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIDxjb2RlPnNyYzwvY29kZT4KKyBwcm9wZXJ0eSBmb3IgdGhpcyBnZW5lcmF0ZWQgZWxlbWVudCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlcmUgaXMKKyBubyBzdWNoIFVSTC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NyYygpIj48Qj5zcmMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBiYXNlIHNvdXJjZSBVUkwgdGhhdCB3aWxsIGJlIHJlbmRlcmVkIGluIHRoZSA8Y29kZT5zcmM8L2NvZGU+CisgcHJvcGVydHkgZm9yIHRoaXMgZ2VuZXJhdGVkIGVsZW1lbnQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZXJlIGlzCisgbm8gc3VjaCBVUkwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc3JjS2V5Ij48Qj5zcmNLZXk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IHVuZGVyIHdoaWNoIHdlIHNob3VsZCBsb29rIHVwIHRoZQorIDxjb2RlPnNyYzwvY29kZT4gYXR0cmlidXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0YWcsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NyY0tleSI+PEI+c3JjS2V5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBVUkwgb2YgdGhpcyBpbWFnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3N0YWNrIj48Qj5zdGFjazwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5UaGUgb2JqZWN0IHN0YWNrIGJlaW5nIGNvbnN0cnVjdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjc3RhcnREb2N1bWVudCgpIj48Qj5zdGFydERvY3VtZW50KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPlByb2Nlc3Mgbm90aWZpY2F0aW9uIG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50IGJlaW5nIHJlYWNoZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzdGFydGVkIj48Qj5zdGFydGVkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPkhhcyB0aGlzIHRhZyBpbnN0YW5jZSBiZWVuIHN0YXJ0ZWQ/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNzdGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgb3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCkiPjxCPnN0YXJ0RWxlbWVudChTdHJpbmcsIEF0dHJpYnV0ZUxpc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4KKzxERD5Qcm9jZXNzIG5vdGlmaWNhdGlvbiBvZiB0aGUgc3RhcnQgb2YgYW4gWE1MIGVsZW1lbnQgYmVpbmcgcmVhY2hlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNTVFJJTkdfQ09NUEFSRSI+PEI+U1RSSU5HX0NPTVBBUkU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+Cis8REQ+V2Ugd2lsbCBkbyBhIFN0cmluZyBjb21wYXJpc29uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjc3RyaW5nQ2xhc3MiPjxCPnN0cmluZ0NsYXNzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgQ2xhc3Mgb2JqZWN0IGZvciBqYXZhLmxhbmcuU3RyaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj48Qj5TdHJ1dHNUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj5TdHJ1dHNUYWc8L0E+LjxERD5EZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCBleHBvc2VzIHRoZSByZXF1ZXN0ZWQgU3RydXRzCisgaW50ZXJuYWwgY29uZmlndXJhdG9uIG9iamVjdC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjU3RydXRzVGFnKCkiPjxCPlN0cnV0c1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+U3RydXRzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sIj48Qj5TdHJ1dHNUZWk8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sIj5TdHJ1dHNUZWk8L0E+LjxERD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+c3RydXRzPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUZWkuaHRtbCNTdHJ1dHNUZWkoKSI+PEI+U3RydXRzVGVpKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sIj5TdHJ1dHNUZWk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNzdHlsZSI+PEI+c3R5bGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIHN0eWxlIGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGUiPjxCPnN0eWxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U3R5bGUgYXR0cmlidXRlIGFzc29jaWF0ZWQgd2l0aCBjb21wb25lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZSI+PEI+c3R5bGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U3R5bGUgYXR0cmlidXRlIGFzc29jaWF0ZWQgd2l0aCBjb21wb25lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3N0eWxlIj48Qj5zdHlsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIHN0eWxlIGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNzdHlsZUNsYXNzIj48Qj5zdHlsZUNsYXNzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSBzdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGVDbGFzcyI+PEI+c3R5bGVDbGFzczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPk5hbWVkIFN0eWxlIGNsYXNzIGFzc29jaWF0ZWQgd2l0aCBjb21wb25lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUNsYXNzIj48Qj5zdHlsZUNsYXNzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPk5hbWVkIFN0eWxlIGNsYXNzIGFzc29jaWF0ZWQgd2l0aCBjb21wb25lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3N0eWxlQ2xhc3MiPjxCPnN0eWxlQ2xhc3M8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSBzdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCNzdHlsZUlkIj48Qj5zdHlsZUlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSBpZGVudGlmaWVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUlkIj48Qj5zdHlsZUlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+SWRlbnRpZmllciBhc3NvY2lhdGVkIHdpdGggY29tcG9uZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGVJZCI+PEI+c3R5bGVJZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5JZGVudGlmaWVyIGFzc29jaWF0ZWQgd2l0aCBjb21wb25lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3N0eWxlSWQiPjxCPnN0eWxlSWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSBpZGVudGlmaWVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNzdWJMaXN0KGludCwgaW50KSI+PEI+c3ViTGlzdChpbnQsIGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGEgdmlldyBvZiB0aGUgcG9ydGlvbiBvZiB0aGlzIGxpc3QgYmV0d2VlbiBmcm9tSW5kZXgKKyAoaW5jbHVzaXZlKSBhbmQgdG9JbmRleCAoZXhjbHVzaXZlKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjc3ViTWFwKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48Qj5zdWJNYXAoT2JqZWN0LCBPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCI+RmFzdFRyZWVNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGEgdmlldyBvZiB0aGUgcG9ydGlvbiBvZiB0aGlzIG1hcCB3aG9zZSBrZXlzIGFyZSBpbiB0aGUKKyByYW5nZSBmcm9tS2V5IChpbmNsdXNpdmUpIHRvIHRvS2V5IChleGNsdXNpdmUpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TdWJtaXRUYWcuaHRtbCI+PEI+U3VibWl0VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+LjxERD5UYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJzdWJtaXQiLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+PEI+U3VibWl0VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPi48REQ+VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAic3VibWl0Ii48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1N1Ym1pdFRhZy5odG1sI1N1Ym1pdFRhZygpIj48Qj5TdWJtaXRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI1N1Ym1pdFRhZygpIj48Qj5TdWJtaXRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3N1ZmZpeCI+PEI+c3VmZml4PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlRoZSBwYXJhbWV0ZXIgbmFtZSBzdWZmaXggdXNlZCB0byBzZWxlY3QgcGFyYW1ldGVycyBmb3IgdGhpcyBhY3Rpb24uCis8L0RMPgorPEhSPgorPEEgTkFNRT0iX1RfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5UPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+PEI+dGFiaW5kZXg8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+VGFiIGluZGV4IHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sI3RhYkluZGV4Ij48Qj50YWJJbmRleDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlRhYiBpbmRleCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjdGFpbE1hcChqYXZhLmxhbmcuT2JqZWN0KSI+PEI+dGFpbE1hcChPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCI+RmFzdFRyZWVNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGEgdmlldyBvZiB0aGUgcG9ydGlvbiBvZiB0aGlzIG1hcCB3aG9zZSBrZXlzIGFyZSBncmVhdGVyIHRoYW4KKyBvciBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIGtleS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sI3RhcmdldCI+PEI+dGFyZ2V0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSB3aW5kb3cgdGFyZ2V0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjdGFyZ2V0Ij48Qj50YXJnZXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIHdpbmRvdyB0YXJnZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0xpbmsxVGFnLmh0bWwjdGFyZ2V0Ij48Qj50YXJnZXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sIj5MaW5rMVRhZzwvQT4KKzxERD5UaGUgd2luZG93IHRhcmdldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjdGFyZ2V0Ij48Qj50YXJnZXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sIj5CYXNlVGFnPC9BPgorPEREPlRoZSB0YXJnZXQgd2luZG93IGZvciB0aGlzIGJhc2UgcmVmZXJlbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCN0YXJnZXQiPjxCPnRhcmdldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+VGhlIHdpbmRvdyB0YXJnZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3RhcmdldCI+PEI+dGFyZ2V0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5UaGUgd2luZG93IHRhcmdldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3RlbXBEaXIiPjxCPnRlbXBEaXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+VGhlIGRpcmVjdG9yeSB1c2VkIHRvIHN0b3JlIHRlbXBvcmFyeSBmaWxlcyBmb3IgdGhlIERpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcgorIG11bHRpcGFydCBpbXBsZW1lbnRhdGlvbgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI3RlbXBEaXIiPjxCPnRlbXBEaXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5UaGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byBzdG9yZSBmaWxlcworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCN0ZW1wRGlyIj48Qj50ZW1wRGlyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5UaGUgdGVtcG9yYXJ5IGRpcmVjdG9yeQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCN0ZW1wbGF0ZSI+PEI+dGVtcGxhdGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPlRoZSBVUkkgb2YgdGhlIHRlbXBsYXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjdGV4dCI+PEI+dGV4dDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI3RleHQiPjxCPnRleHQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjdGV4dCI+PEI+dGV4dDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIj5SZXNldFRhZzwvQT4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI3RleHQiPjxCPnRleHQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwiPkJ1dHRvblRhZzwvQT4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3RleHQiPjxCPnRleHQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCN0ZXh0Ij48Qj50ZXh0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3RleHQiPjxCPnRleHQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSB0ZXh0IHRvIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgdGhpcyB0YWcgKGlmIGFueSkKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI3RleHQiPjxCPnRleHQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+VGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCN0ZXh0KCkiPjxCPnRleHQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHRleHQgdG8gYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGlzIG9wdGlvbiAoaWYgYW55KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvVGV4dGFyZWFUYWcuaHRtbCI+PEI+VGV4dGFyZWFUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvVGV4dGFyZWFUYWcuaHRtbCI+VGV4dGFyZWFUYWc8L0E+LjxERD5DdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAidGV4dGFyZWEiLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj48Qj5UZXh0YXJlYVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+VGV4dGFyZWFUYWc8L0E+LjxERD5DdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAidGV4dGFyZWEiLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvVGV4dGFyZWFUYWcuaHRtbCNUZXh0YXJlYVRhZygpIj48Qj5UZXh0YXJlYVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1RleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjVGV4dGFyZWFUYWcoKSI+PEI+VGV4dGFyZWFUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+VGV4dGFyZWFUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3RleHRFbGVtZW50cyI+PEI+dGV4dEVsZW1lbnRzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5BIEhhc2h0YWJsZSByZXByZXNlbnRpbmcgdGhlIGZvcm0gdGV4dCBpbnB1dCBuYW1lcyBhbmQgdmFsdWVzCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1RleHRUYWcuaHRtbCI+PEI+VGV4dFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9UZXh0VGFnLmh0bWwiPlRleHRUYWc8L0E+LjxERD5DdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAidGV4dCIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbCI+PEI+VGV4dFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sIj5UZXh0VGFnPC9BPi48REQ+Q3VzdG9tIHRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInRleHQiLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvVGV4dFRhZy5odG1sI1RleHRUYWcoKSI+PEI+VGV4dFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1RleHRUYWcuaHRtbCI+VGV4dFRhZzwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sI1RleHRUYWcoKSI+PEI+VGV4dFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0VGFnLmh0bWwiPlRleHRUYWc8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGl0bGUiPjxCPnRpdGxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlRoZSBhZHZpc29yeSB0aXRsZSBvZiB0aGlzIGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjdG9BcnJheSgpIj48Qj50b0FycmF5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGFuIGFycmF5IGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBlbGVtZW50cyBpbiB0aGlzIGxpc3QgaW4gdGhlCisgY29ycmVjdCBvcmRlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCN0b0FycmF5KGphdmEubGFuZy5PYmplY3RbXSkiPjxCPnRvQXJyYXkoT2JqZWN0W10pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sIj5GYXN0QXJyYXlMaXN0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhbiBhcnJheSBjb250YWluaW5nIGFsbCBvZiB0aGUgZWxlbWVudHMgaW4gdGhpcyBsaXN0IGluIHRoZQorIGNvcnJlY3Qgb3JkZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3RvSGV4KGJ5dGVbXSkiPjxCPnRvSGV4KGJ5dGVbXSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD5Db252ZXJ0IGEgYnl0ZSBhcnJheSB0byBhIFN0cmluZyBvZiBoZXhhZGVjaW1hbCBkaWdpdHMgYW5kIHJldHVybiBpdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCNUT0tFTl9LRVkiPjxCPlRPS0VOX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwiPkNvbnN0YW50czwvQT4KKzxERD5UaGUgcHJvcGVydHkgdW5kZXIgd2hpY2ggYSB0cmFuc2FjdGlvbiB0b2tlbiBpcyByZXBvcnRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCN0b1Njb3BlIj48Qj50b1Njb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0aGUgbmV3bHkgZGVmaW5lZCBiZWFuIHdpbGwgYmUgY3JlYXRkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjdG9TdHJpbmcoKSI+PEI+dG9TdHJpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+UmV0dXJuIGEgU3RyaW5nIHZlcnNpb24gb2YgdGhpcyBtYXBwaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sI3RvU3RyaW5nKCkiPjxCPnRvU3RyaW5nKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+Cis8REQ+UmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjdG9TdHJpbmcoKSI+PEI+dG9TdHJpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Cis8REQ+UmV0dXJuIGEgU3RyaW5nIHZlcnNpb24gb2YgdGhpcyBtYXBwaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCN0b1N0cmluZygpIj48Qj50b1N0cmluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPkNvbnRlbnQ8L0E+Cis8REQ+UmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29udGVudAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI3RvU3RyaW5nKCkiPjxCPnRvU3RyaW5nKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCN0b1N0cmluZygpIj48Qj50b1N0cmluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+UmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgY29tcG9uZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjdG90YWxMZW5ndGgiPjxCPnRvdGFsTGVuZ3RoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPlRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgcmVhZCBzbyBmYXIKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCN0b3RhbExlbmd0aCI+PEI+dG90YWxMZW5ndGg8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5UaGUgdG90YWwgYnl0ZXMgcmVhZCBmcm9tIHRoaXMgcmVxdWVzdAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCN0cmFuc2FjdGlvbiI+PEI+dHJhbnNhY3Rpb248L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPkluY2x1ZGUgdHJhbnNhY3Rpb24gdG9rZW4gKGlmIGFueSkgaW4gdGhlIGh5cGVybGluaz8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjdHJhbnNhY3Rpb24iPjxCPnRyYW5zYWN0aW9uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD5JbmNsdWRlIHRyYW5zYWN0aW9uIHRva2VuIChpZiBhbnkpIGluIHRoZSBoeXBlcmxpbms/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjdHJhbnNhY3Rpb24iPjxCPnRyYW5zYWN0aW9uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+SW5jbHVkZSBvdXIgdHJhbnNhY3Rpb24gY29udHJvbCB0b2tlbj8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjVFJBTlNBQ1RJT05fVE9LRU5fS0VZIj48Qj5UUkFOU0FDVElPTl9UT0tFTl9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD5UaGUgc2Vzc2lvbiBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIgdHJhbnNhY3Rpb24gdG9rZW4gaXMKKyBzdG9yZWQsIGlmIGl0IGlzIHVzZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjdHJpbVRvU2l6ZSgpIj48Qj50cmltVG9TaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPkZhc3RBcnJheUxpc3Q8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VHJpbSB0aGUgY2FwYWNpdHkgb2YgdGhpcyA8Y29kZT5BcnJheUxpc3Q8L2NvZGU+IGluc3RhbmNlIHRvIGJlIHRoZQorIGxpc3QncyBjdXJyZW50IHNpemUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCN0eXBlIj48Qj50eXBlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPgorPEREPlRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb248L2NvZGU+CisgaW1wbGVtZW50YXRpb24gY2xhc3MgdG8gYmUgdXNlZCB0byBwcm9jZXNzIHJlcXVlc3RzIGZvciB0aGlzIG1hcHBpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwjdHlwZSI+PEI+dHlwZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPgorPEREPlRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhpcyBhY3Rpb24gZm9ybSBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwjdHlwZSI+PEI+dHlwZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5UaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBiZWFuIHRvIGJlIGNyZWF0ZWQsIGlmIG5lY2Vzc2FyeS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUZpZWxkVGFnLmh0bWwjdHlwZSI+PEI+dHlwZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+Cis8REQ+VGhlIHR5cGUgb2YgaW5wdXQgZmllbGQgcmVwcmVzZW50ZWQgYnkgdGhpcyB0YWcgKHRleHQsIHBhc3N3b3JkLCBvcgorIGhpZGRlbikuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjdHlwZSI+PEI+dHlwZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPlRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSB2YWx1ZSB0byBiZSBleHBvc2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3R5cGUiPjxCPnR5cGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4KKzxERD5UaGUgdHlwZSBvZiBpbnB1dCBmaWVsZCByZXByZXNlbnRlZCBieSB0aGlzIHRhZyAodGV4dCwgcGFzc3dvcmQsIG9yCisgaGlkZGVuKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjdHlwZSI+PEI+dHlwZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgYmVhbiB0byBiZSBjcmVhdGVkLCBpZiBuZWNlc3NhcnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCN0eXBlIj48Qj50eXBlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBKYXZhIGNsYXNzIG9mIGVhY2ggZXhwb3NlZCBlbGVtZW50IG9mIHRoZSBjb2xsZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCN0eXBlcyI+PEI+dHlwZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPkRpc3BhdGNoQWN0aW9uPC9BPgorPEREPlRoZSBzZXQgb2YgYXJndW1lbnQgdHlwZSBjbGFzc2VzIGZvciB0aGUgcmVmbGVjdGVkIG1ldGhvZCBjYWxsLgorPC9ETD4KKzxIUj4KKzxBIE5BTUU9Il9VXyI+PCEtLSAtLT48L0E+PEgyPgorPEI+VTwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjdW5rbm93biI+PEI+dW5rbm93bjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5TaG91bGQgdGhpcyBhY3Rpb24gYmUgdGhlIGRlZmF1bHQgZm9yIHRoaXMgYXBwbGljYXRpb24/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjdW5rbm93biI+PEI+dW5rbm93bjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPgorPEREPlRoZSBBY3Rpb25NYXBwaW5nIHRoYXQgc2hvdWxkIGhhbmRsZSB1bmtub3duIHJlcXVlc3QgcGF0aHMsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3VucGFyc2VkRW50aXR5RGVjbChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+dW5wYXJzZWRFbnRpdHlEZWNsKFN0cmluZywgU3RyaW5nLCBTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPlJlY2VpdmUgbm90aWZpY2F0aW9uIG9mIGFuIHVucGFyc2VkIGVudGl0eSBkZWNsYXJhdGlvbiBldmVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW5jb2RlUmVkaXJlY3RVUkxUYWcuaHRtbCN1cmwiPjxCPnVybDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VuY29kZVJlZGlyZWN0VVJMVGFnLmh0bWwiPkVuY29kZVJlZGlyZWN0VVJMVGFnPC9BPgorPEREPlRoZSBVUkwgdG8gYmUgZW5jb2RlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW5jb2RlVVJMVGFnLmh0bWwjdXJsIj48Qj51cmw8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbmNvZGVVUkxUYWcuaHRtbCI+RW5jb2RlVVJMVGFnPC9BPgorPEREPlRoZSBVUkwgdG8gYmUgZW5jb2RlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjdXJsIj48Qj51cmw8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEREPlRoZSBKREJDIFVSTCBmb3IgdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24gdG8gYmUgb3BlbmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3VybChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+dXJsKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBzcGVjaWZpZWQgc3JjIFVSTCwgbW9kaWZpZWQgYXMgbmVjZXNzYXJ5IHdpdGggb3B0aW9uYWwKKyByZXF1ZXN0IHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3VzZUNvdW50Ij48Qj51c2VDb3VudDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+VGhlIG51bWJlciBvZiBjb25uZWN0aW9ucyBjcmVhdGVkIGJ5IHRoaXMgZGF0YSBzb3VyY2UgdGhhdCBhcmUKKyBjdXJyZW50bHkgaW4gdXNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3VzZW1hcCI+PEI+dXNlbWFwPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Q2xpZW50LXNpZGUgaW1hZ2UgbWFwIGRlY2xhcmF0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj48Qj51c2VyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD5UaGUgdXNlciBwcmluY2lwYWwgbmFtZSB0byBiZSBjaGVja2VkIGZvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjdXNlciI+PEI+dXNlcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Cis8REQ+VGhlIGRhdGFiYXNlIHVzZXJuYW1lIGZvciB1c2UgaW4gZXN0YWJsaXNoaW5nIGEgY29ubmVjdGlvbi4KKzwvREw+Cis8SFI+Cis8QSBOQU1FPSJfVl8iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPlY8L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3ZhbGlkYXRlIj48Qj52YWxpZGF0ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5TaG91bGQgdGhlIHZhbGlkYXRlKCkgbWV0aG9kIG9mIG91ciBmb3JtIGJlYW4gYmUgY2FsbGVkPworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjdmFsaWRhdGUiPjxCPnZhbGlkYXRlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkFyZSB3ZSB1c2luZyB0aGUgbmV3IGNvbmZpZ3VyYXRpb24gZmlsZSBmb3JtYXQ/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZSgpIj48Qj52YWxpZGF0ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5UaGlzIGlzIHRoZSBTdHJ1dHMgMC41IHZlcnNpb24gb2YgdmFsaWRhdGlvbiAtLSB1c2UgdGhlCisgIHZhbGlkYXRlKEFjdGlvbk1hcHBpbmcsSHR0cFNlcnZsZXRSZXF1ZXN0KSBtZXRob2QgaW5zdGVhZDwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vVmFsaWRhdGluZ0FjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZSgpIj48Qj52YWxpZGF0ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1ZhbGlkYXRpbmdBY3Rpb25Gb3JtLmh0bWwiPlZhbGlkYXRpbmdBY3Rpb25Gb3JtPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1BlcmZvcm0gdmFsaWRhdGlvbnMgb24gdGhlIGZvcm0gaW5wdXQgdmFsdWVzIGluY2x1ZGVkIGluIHRoaXMgZm9ybSBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZShBY3Rpb25NYXBwaW5nLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4KKzxERD5WYWxpZGF0ZSB0aGUgcHJvcGVydGllcyB0aGF0IGhhdmUgYmVlbiBzZXQgZm9yIHRoaXMgSFRUUCByZXF1ZXN0LAorIGFuZCByZXR1cm4gYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgYW55CisgdmFsaWRhdGlvbiBlcnJvcnMgdGhhdCBoYXZlIGJlZW4gZm91bmQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPjxCPnZhbGlkYXRlKEFjdGlvbk1hcHBpbmcsIFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Cis8REQ+VmFsaWRhdGUgdGhlIHByb3BlcnRpZXMgdGhhdCBoYXZlIGJlZW4gc2V0IGZvciB0aGlzIG5vbi1IVFRQIHJlcXVlc3QsCisgYW5kIHJldHVybiBhbiA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyBhbnkKKyB2YWxpZGF0aW9uIGVycm9ycyB0aGF0IGhhdmUgYmVlbiBmb3VuZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3ZhbGlkYXRpbmciPjxCPnZhbGlkYXRpbmc8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+U2hvdWxkIHdlIHVzZSBhIHZhbGlkYXRpbmcgWE1MIHBhcnNlciB0byByZWFkIHRoZSBjb25maWd1cmF0aW9uIGZpbGU/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCN2YWxpZGF0aW5nIj48Qj52YWxpZGF0aW5nPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPgorPEREPkRvIHdlIHdhbnQgdG8gdXNlIGEgdmFsaWRhdGluZyBwYXJzZXI/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1ZhbGlkYXRpbmdBY3Rpb25Gb3JtLmh0bWwiPjxCPlZhbGlkYXRpbmdBY3Rpb25Gb3JtPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1ZhbGlkYXRpbmdBY3Rpb25Gb3JtLmh0bWwiPlZhbGlkYXRpbmdBY3Rpb25Gb3JtPC9BPi48REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXBwbGljYXRpb24gQWN0aW9uRm9ybSBiZWFucyBzaG91bGQgbm93IGV4dGVuZCBBY3Rpb25Gb3JtCisgIGRpcmVjdGx5LCBhbmQgb3ZlcnJpZGUgdGhlIHZhbGlkYXRlKCkgbWV0aG9kIGlmIHRoZXkgd2lzaCB0byBwcm92aWRlCisgIHN1Y2ggc2VydmljZXM8L0k+PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9WYWxpZGF0aW5nQWN0aW9uRm9ybS5odG1sI1ZhbGlkYXRpbmdBY3Rpb25Gb3JtKCkiPjxCPlZhbGlkYXRpbmdBY3Rpb25Gb3JtKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vVmFsaWRhdGluZ0FjdGlvbkZvcm0uaHRtbCI+VmFsaWRhdGluZ0FjdGlvbkZvcm08L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydHlSdWxlLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFByb3BlcnR5UnVsZS5odG1sIj5TZXRQcm9wZXJ0eVJ1bGU8L0E+Cis8REQ+VGhlIGF0dHJpYnV0ZSB0aGF0IHdpbGwgY29udGFpbiB0aGUgcHJvcGVydHkgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyRXF1YWxzVGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJFcXVhbHNUYWcuaHRtbCI+SWZQYXJhbWV0ZXJFcXVhbHNUYWc8L0E+Cis8REQ+VGhlIHZhbHVlIHRvIGNvbXBhcmUgdGhpcyBwYXJhbWV0ZXIgdG8uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL011bHRpYm94VGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+VGhlIHZhbHVlIHdoaWNoIHdpbGwgbWFyayB0aGlzIGNoZWNrYm94IGFzICJjaGVja2VkIiBpZiBwcmVzZW50CisgaW4gdGhlIGFycmF5IHJldHVybmVkIGJ5IG91ciBwcm9wZXJ0eSBnZXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JhZGlvVGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+VGhlIHNlcnZlciB2YWx1ZSBmb3IgdGhpcyBvcHRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Jlc2V0VGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+Cis8REQ+VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VJbnB1dFRhZy5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+VGhlIHZhbHVlIGZvciB0aGlzIGZpZWxkLCBvciA8Y29kZT5udWxsPC9jb2RlPiB0byByZXRyaWV2ZSB0aGUKKyBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGZyb20gb3VyIGFzc29jaWF0ZWQgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWcuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck5vdEVxdWFsc1RhZy5odG1sIj5JZlBhcmFtZXRlck5vdEVxdWFsc1RhZzwvQT4KKzxERD5UaGUgdmFsdWUgdG8gY29tcGFyZSB0aGlzIHBhcmFtZXRlciB0by4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU3VibWl0VGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT4KKzxERD5UaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2hlY2tib3hUYWcuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DaGVja2JveFRhZy5odG1sIj5DaGVja2JveFRhZzwvQT4KKzxERD5UaGUgc2VydmVyIHZhbHVlIGZvciB0aGlzIG9wdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQnV0dG9uVGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQnV0dG9uVGFnLmh0bWwiPkJ1dHRvblRhZzwvQT4KKzxERD5UaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2FuY2VsVGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD5UaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uVGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5UaGUgc2VydmVyIHZhbHVlIGZvciB0aGlzIG9wdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eUVxdWFsc1RhZy5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlFcXVhbHNUYWcuaHRtbCI+SWZQcm9wZXJ0eUVxdWFsc1RhZzwvQT4KKzxERD5UaGUgdmFsdWUgdG8gY29tcGFyZSB0by4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eU5vdEVxdWFsc1RhZy5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlOb3RFcXVhbHNUYWcuaHRtbCI+SWZQcm9wZXJ0eU5vdEVxdWFsc1RhZzwvQT4KKzxERD5UaGUgdmFsdWUgdG8gY29tcGFyZSB0by4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5UaGUgdmFsdWUgdG8gY29tcGFyZSB3aXRoIGZvciBtYXJraW5nIGFuIG9wdGlvbiBzZWxlY3RlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPkhlYWRlclRhZzwvQT4KKzxERD5UaGUgZGVmYXVsdCB2YWx1ZSB0byByZXR1cm4gaWYgbm8gaGVhZGVyIG9mIHRoZSBzcGVjaWZpZWQgbmFtZSBpcyBmb3VuZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD5UaGUgKFN0cmluZykgdmFsdWUgdG8gd2hpY2ggdGhlIGRlZmluZWQgYmVhbiB3aWxsIGJlIHNldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPkNvb2tpZVRhZzwvQT4KKzxERD5UaGUgZGVmYXVsdCB2YWx1ZSB0byByZXR1cm4gaWYgbm8gY29va2llIG9mIHRoZSBzcGVjaWZpZWQgbmFtZSBpcyBmb3VuZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPlBhcmFtZXRlclRhZzwvQT4KKzxERD5UaGUgZGVmYXVsdCB2YWx1ZSB0byByZXR1cm4gaWYgbm8gcGFyYW1ldGVyIG9mIHRoZSBzcGVjaWZpZWQgbmFtZSBpcworIGZvdW5kLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlRoZSB2YWx1ZSBmb3IgdGhpcyBmaWVsZCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gdG8gcmV0cmlldmUgdGhlCisgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBmcm9tIG91ciBhc3NvY2lhdGVkIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+VGhlIHNlcnZlciB2YWx1ZSBmb3IgdGhpcyBvcHRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIj5DYW5jZWxUYWc8L0E+Cis8REQ+VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+VGhlIHZhbHVlIHdoaWNoIHdpbGwgbWFyayB0aGlzIGNoZWNrYm94IGFzICJjaGVja2VkIiBpZiBwcmVzZW50CisgaW4gdGhlIGFycmF5IHJldHVybmVkIGJ5IG91ciBwcm9wZXJ0eSBnZXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+Cis8REQ+VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+Cis8REQ+VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+VGhlIHZhbHVlIHRvIGNvbXBhcmUgd2l0aCBmb3IgbWFya2luZyBhbiBvcHRpb24gc2VsZWN0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+VGhlIHNlcnZlciB2YWx1ZSBmb3IgdGhpcyBvcHRpb24sIGFsc28gdXNlZCB0byBtYXRjaCBhZ2FpbnN0IHRoZQorIGN1cnJlbnQgcHJvcGVydHkgdmFsdWUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyBvcHRpb24gc2hvdWxkIGJlCisgbWFya2VkIGFzIHNlbGVjdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPlRoZSBzZXJ2ZXIgdmFsdWUgZm9yIHRoaXMgb3B0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPk1hdGNoVGFnPC9BPgorPEREPlRoZSB2YWx1ZSB0byB3aGljaCB0aGUgdmFyaWFibGUgc3BlY2lmaWVkIGJ5IG90aGVyIGF0dHJpYnV0ZXMgb2YgdGhpcworIHRhZyB3aWxsIGJlIG1hdGNoZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+Cis8REQ+VGhlIHZhbHVlIHRvIHdoaWNoIHRoZSB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgb3RoZXIgYXR0cmlidXRlcyBvZiB0aGlzCisgdGFnIHdpbGwgYmUgY29tcGFyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+VGhlIGVsZW1lbnQncyB0ZXh0IHZhbHVlLCBudWxsIGZvciBmaWxlIGVsZW1lbnRzCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwjdmFsdWVzIj48Qj52YWx1ZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT4KKzxERD5UaGUgcmVwbGFjZW1lbnQgdmFsdWVzIGZvciB0aGlzIGVycm9yIG1lc2FzZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sI3ZhbHVlcygpIj48Qj52YWx1ZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhIGNvbGxlY3Rpb24gdmlldyBvZiB0aGUgdmFsdWVzIGNvbnRhaW5lZCBpbiB0aGlzIG1hcC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjdmFsdWVzKCkiPjxCPnZhbHVlcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCI+RmFzdFRyZWVNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGEgY29sbGVjdGlvbiB2aWV3IG9mIHRoZSB2YWx1ZXMgY29udGFpbmVkIGluIHRoaXMgbWFwLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3ZzcGFjZSI+PEI+dnNwYWNlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+VGhlIHZlcnRpY2FsIHNwYWNpbmcgYXJvdW5kIHRoZSBpbWFnZS4KKzwvREw+Cis8SFI+Cis8QSBOQU1FPSJfV18iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPlc8L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3dhcm5pbmcob3JnLnhtbC5zYXguU0FYUGFyc2VFeGNlcHRpb24pIj48Qj53YXJuaW5nKFNBWFBhcnNlRXhjZXB0aW9uKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Cis8REQ+Rm9yd2FyZCBub3RpZmljYXRpb24gb2YgYSBwYXJzZSB3YXJuaW5nIHRvIHRoZSBhcHBsaWNhdGlvbiBzdXBwbGllZAorIGVycm9yIGhhbmRsZXIgKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjd2lkdGgiPjxCPndpZHRoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+VGhlIGltYWdlIHdpZHRoLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCN3cml0ZShjaGFyKSI+PEI+d3JpdGUoY2hhcik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5Xcml0ZSBhIHNpbmdsZSBjaGFyYWN0ZXIgdG8gdGhpcyBzdHJlYW0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3dyaXRlKGNoYXJbXSkiPjxCPndyaXRlKGNoYXJbXSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5Xcml0ZSBhbiBhcnJheSBvZiBjaGFyYXRlcnMgdG8gdGhpcyBzdHJlYW0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3dyaXRlKGNoYXJbXSwgaW50LCBpbnQpIj48Qj53cml0ZShjaGFyW10sIGludCwgaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPldyaXRlIHRoZSBzcGVjaWZpZWQgc3Vic2V0IG9mIGFuIGFycmF5IG9mIGNoYXJhY3RlcnMgdG8gdGhpcyBzdHJlYW0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3dyaXRlKGludCkiPjxCPndyaXRlKGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5Xcml0ZSBhIHNpbmdsZSBjaGFyYWN0ZXIgdG8gdGhpcyBzdHJlYW0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwjd3JpdGUoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcpIj48Qj53cml0ZShQYWdlQ29udGV4dCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwiPlJlc3BvbnNlVXRpbHM8L0E+Cis8REQ+V3JpdGUgdGhlIHNwZWNpZmllZCB0ZXh0IGFzIHRoZSByZXNwb25zZSB0byB0aGUgd3JpdGVyIGFzc29jaWF0ZWQgd2l0aAorIHRoaXMgcGFnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjd3JpdGUoamF2YS5sYW5nLlN0cmluZykiPjxCPndyaXRlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5Xcml0ZSBhIFN0cmluZyB0byB0aGlzIHN0cmVhbS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjd3JpdGUoamF2YS5sYW5nLlN0cmluZywgaW50LCBpbnQpIj48Qj53cml0ZShTdHJpbmcsIGludCwgaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPldyaXRlIHRoZSBzcGVjaWZpZWQgcG9ydGlvbiBvZiBhIFN0cmluZyB0byB0aGlzIHN0cmVhbS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCN3cml0ZVByZXZpb3VzKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+d3JpdGVQcmV2aW91cyhQYWdlQ29udGV4dCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwiPlJlc3BvbnNlVXRpbHM8L0E+Cis8REQ+V3JpdGUgdGhlIHNwZWNpZmllZCB0ZXh0IGFzIHRoZSByZXNwb25zZSB0byB0aGUgd3JpdGVyIGFzc29jaWF0ZWQgd2l0aAorIHRoZSBib2R5IGNvbnRlbnQgZm9yIHRoZSB0YWcgd2l0aGluIHdoaWNoIHdlIGFyZSBjdXJyZW50bHkgbmVzdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPjxCPldyaXRlVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4uPEREPlRhZyB0aGF0IHJldHJpZXZlcyB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQgYmVhbiwgY29udmVydHMKKyBpdCB0byBhIFN0cmluZyByZXByZXNlbnRhdGlvbiAoaWYgbmVjZXNzYXJ5KSwgYW5kIHdyaXRlcyBpdCB0byB0aGUgY3VycmVudAorIG91dHB1dCBzdHJlYW0sIG9wdGlvbmFsbHkgZmlsdGVyaW5nIGNoYXJhY3RlcnMgdGhhdCBhcmUgc2Vuc2l0aXZlIGluIEhUTUwuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjV3JpdGVUYWcoKSI+PEI+V3JpdGVUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8L0RMPgorPEhSPgorPEEgTkFNRT0iX1hfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5YPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sI3hodG1sIj48Qj54aHRtbDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPkh0bWxUYWc8L0E+Cis8REQ+QXJlIHdlIHJlbmRlcmluZyBhbiB4aHRtbCBwYWdlPworPC9ETD4KKzxIUj4KKzxBIEhSRUY9IiNfPF8iPjw8L0E+IDxBIEhSRUY9IiNfQV8iPkE8L0E+IDxBIEhSRUY9IiNfQl8iPkI8L0E+IDxBIEhSRUY9IiNfQ18iPkM8L0E+IDxBIEhSRUY9IiNfRF8iPkQ8L0E+IDxBIEhSRUY9IiNfRV8iPkU8L0E+IDxBIEhSRUY9IiNfRl8iPkY8L0E+IDxBIEhSRUY9IiNfR18iPkc8L0E+IDxBIEhSRUY9IiNfSF8iPkg8L0E+IDxBIEhSRUY9IiNfSV8iPkk8L0E+IDxBIEhSRUY9IiNfS18iPks8L0E+IDxBIEhSRUY9IiNfTF8iPkw8L0E+IDxBIEhSRUY9IiNfTV8iPk08L0E+IDxBIEhSRUY9IiNfTl8iPk48L0E+IDxBIEhSRUY9IiNfT18iPk88L0E+IDxBIEhSRUY9IiNfUF8iPlA8L0E+IDxBIEhSRUY9IiNfUl8iPlI8L0E+IDxBIEhSRUY9IiNfU18iPlM8L0E+IDxBIEhSRUY9IiNfVF8iPlQ8L0E+IDxBIEhSRUY9IiNfVV8iPlU8L0E+IDxBIEhSRUY9IiNfVl8iPlY8L0E+IDxBIEhSRUY9IiNfV18iPlc8L0E+IDxBIEhSRUY9IiNfWF8iPlg8L0E+IAorPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlBhY2thZ2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5JbmRleDwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImhlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJpbmRleC1hbGwuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9pbmRleC5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41N2U1MDIxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvaW5kZXguaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24KKzwvVElUTEU+Cis8L0hFQUQ+Cis8RlJBTUVTRVQgY29scz0iMjAlLDgwJSI+Cis8RlJBTUVTRVQgcm93cz0iMzAlLDcwJSI+Cis8RlJBTUUgc3JjPSJvdmVydmlldy1mcmFtZS5odG1sIiBuYW1lPSJwYWNrYWdlTGlzdEZyYW1lIj4KKzxGUkFNRSBzcmM9ImFsbGNsYXNzZXMtZnJhbWUuaHRtbCIgbmFtZT0icGFja2FnZUZyYW1lIj4KKzwvRlJBTUVTRVQ+Cis8RlJBTUUgc3JjPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiIG5hbWU9ImNsYXNzRnJhbWUiPgorPC9GUkFNRVNFVD4KKzxOT0ZSQU1FUz4KKzxIMj4KK0ZyYW1lIEFsZXJ0PC9IMj4KKworPFA+CitUaGlzIGRvY3VtZW50IGlzIGRlc2lnbmVkIHRvIGJlIHZpZXdlZCB1c2luZyB0aGUgZnJhbWVzIGZlYXR1cmUuIElmIHlvdSBzZWUgdGhpcyBtZXNzYWdlLCB5b3UgYXJlIHVzaW5nIGEgbm9uLWZyYW1lLWNhcGFibGUgd2ViIGNsaWVudC4KKzxCUj4KK0xpbmsgdG8gPEEgSFJFRj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIj5Ob24tZnJhbWUgdmVyc2lvbi48L0E+PC9OT0ZSQU1FUz4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTIzMjZhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sCkBAIC0wLDAgKzEsOTEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgQWN0aW9uCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25CYXNlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBBY3Rpb248L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkJhc2UuaHRtbCI+QWN0aW9uQmFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkRm9ybUJlYW5BY3Rpb24uaHRtbCI+QWRkRm9ybUJlYW5BY3Rpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZEZvcndhcmRBY3Rpb24uaHRtbCI+QWRkRm9yd2FyZEFjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkTWFwcGluZ0FjdGlvbi5odG1sIj5BZGRNYXBwaW5nQWN0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj5EaXNwYXRjaEFjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sIj5Gb3J3YXJkQWN0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9JbmNsdWRlQWN0aW9uLmh0bWwiPkluY2x1ZGVBY3Rpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbG9hZEFjdGlvbi5odG1sIj5SZWxvYWRBY3Rpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZUZvcm1CZWFuQWN0aW9uLmh0bWwiPlJlbW92ZUZvcm1CZWFuQWN0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVGb3J3YXJkQWN0aW9uLmh0bWwiPlJlbW92ZUZvcndhcmRBY3Rpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZU1hcHBpbmdBY3Rpb24uaHRtbCI+UmVtb3ZlTWFwcGluZ0FjdGlvbjwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWN0aW9uPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8L0RMPgorCis8UD4KK0FuIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IGlzIGFuIGFkYXB0ZXIgYmV0d2VlbiB0aGUgY29udGVudHMgb2YgYW4gaW5jb21pbmcKKyBIVFRQIHJlcXVlc3QgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGJ1c2luZXNzIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkIHRvCisgcHJvY2VzcyB0aGlzIHJlcXVlc3QuICBUaGUgY29udHJvbGxlciAoQWN0aW9uU2VydmxldCkgd2lsbCBzZWxlY3QgYW4KKyBhcHByb3ByaWF0ZSBBY3Rpb24gZm9yIGVhY2ggcmVxdWVzdCwgY3JlYXRlIGFuIGluc3RhbmNlIChpZiBuZWNlc3NhcnkpLAorIGFuZCBjYWxsIHRoZSA8Y29kZT5wZXJmb3JtPC9jb2RlPiBtZXRob2QuCisgPHA+CisgQWN0aW9ucyBtdXN0IGJlIHByb2dyYW1tZWQgaW4gYSB0aHJlYWQtc2FmZSBtYW5uZXIsIGJlY2F1c2UgdGhlIGNvbnRyb2xsZXIKKyB3aWxsIHNoYXJlIHRoZSBzYW1lIGluc3RhbmNlIGZvciBtdWx0aXBsZSBzaW11bHRhbmVvdXMgcmVxdWVzdHMuICBJbgorIHRoaXMgbWVhbnMgeW91IHNob3VsZCBkZXNpZ24gd2l0aCB0aGUgZm9sbG93aW5nIGl0ZW1zIGluIG1pbmQ6CisgPHVsPgorIDxsaT5JbnN0YW5jZSBhbmQgc3RhdGljIHZhcmlhYmxlcyBNVVNUIE5PVCBiZSB1c2VkIHRvIHN0b3JlIGluZm9ybWF0aW9uCisgICAgIHJlbGF0ZWQgdG8gdGhlIHN0YXRlIG9mIGEgcGFydGljdWxhciByZXF1ZXN0LiAgVGhleSBNQVkgYmUgdXNlZCB0bworICAgICBzaGFyZSBnbG9iYWwgcmVzb3VyY2VzIGFjcm9zcyByZXF1ZXN0cyBmb3IgdGhlIHNhbWUgYWN0aW9uLjwvbGk+CisgPGxpPkFjY2VzcyB0byBvdGhlciByZXNvdXJjZXMgKEphdmFCZWFucywgc2Vzc2lvbiB2YXJpYWJsZXMsIGV0Yy4pIE1VU1QKKyAgICAgYmUgc3luY2hyb25pemVkIGlmIHRob3NlIHJlc291cmNlcyByZXF1aXJlIHByb3RlY3Rpb24uICAoR2VuZXJhbGx5LAorICAgICBob3dldmVyLCByZXNvdXJjZSBjbGFzc2VzIHNob3VsZCBiZSBkZXNpZ25lZCB0byBwcm92aWRlIHRoZWlyIG93bgorICAgICBwcm90ZWN0aW9uIHdoZXJlIG5lY2Vzc2FyeS48L2xpPgorIDwvdWw+CisgPHA+CisgV2hlbiBhbiA8Y29kZT5BY3Rpb248L2NvZGU+IGluc3RhbmNlIGlzIGZpcnN0IGNyZWF0ZWQsIHRoZSBjb250cm9sbGVyCisgc2VydmxldCB3aWxsIGNhbGwgPGNvZGU+c2V0U2VydmxldCgpPC9jb2RlPiB3aXRoIGEgbm9uLW51bGwgYXJndW1lbnQgdG8KKyBpZGVudGlmeSB0aGUgY29udHJvbGxlciBzZXJ2bGV0IGluc3RhbmNlIHRvIHdoaWNoIHRoaXMgQWN0aW9uIGlzIGF0dGFjaGVkLgorIFdoZW4gdGhlIGNvbnRyb2xsZXIgc2VydmxldCBpcyB0byBiZSBzaHV0IGRvd24gKG9yIHJlc3RhcnRlZCksIHRoZQorIDxjb2RlPnNldFNlcnZsZXQoKTwvY29kZT4gbWV0aG9kIHdpbGwgYmUgY2FsbGVkIHdpdGggYSA8Y29kZT5udWxsPC9jb2RlPgorIGFyZ3VtZW50LCB3aGljaCBjYW4gYmUgdXNlZCB0byBjbGVhbiB1cCBhbnkgYWxsb2NhdGVkIHJlc291cmNlcyBpbiB1c2UKKyBieSB0aGlzIEFjdGlvbi4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjREFUQV9TT1VSQ0VfS0VZIj5EQVRBX1NPVVJDRV9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyIDxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPgorIGNvbmZpZ3VyZWQgZGF0YSBzb3VyY2UgKHdoaWNoIG11c3QgaW1wbGVtZW50CisgPGNvZGU+amF2YXguc3FsLkRhdGFTb3VyY2U8L2NvZGU+KSBpcyBzdG9yZWQsCisgaWYgb25lIGlzIGNvbmZpZ3VyZWQgZm9yIHRoaXMgYXBwbGljYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtqYXZhLnV0aWwuTG9jYWxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzeXN0ZW0gZGVmYXVsdCBMb2NhbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VSUk9SX0tFWSI+RVJST1JfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHlvdXIgYWN0aW9uIHNob3VsZCBzdG9yZSBhbgorIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCwgaWYgeW91CisgYXJlIHVzaW5nIHRoZSBjb3JyZXNwb25kaW5nIGN1c3RvbSB0YWcgbGlicmFyeSBlbGVtZW50cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRVhDRVBUSU9OX0tFWSI+RVhDRVBUSU9OX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBTdHJ1dHMgY3VzdG9tIHRhZ3MgbWlnaHQgc3RvcmUgYQorIDxjb2RlPlRocm93YWJsZTwvY29kZT4gdGhhdCBjYXVzZWQgdGhlbSB0byByZXBvcnQgYSBKc3BFeGNlcHRpb24gYXQKKyBydW50aW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JNX0JFQU5TX0tFWSI+Rk9STV9CRUFOU19LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuczwvY29kZT4gY29sbGVjdGlvbgorIGlzIG5vcm1hbGx5IHN0b3JlZCwgdW5sZXNzIG92ZXJyaWRkZW4gd2hlbiBpbml0aWFsaXppbmcgb3VyCisgQWN0aW9uU2VydmxldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9SV0FSRFNfS0VZIj5GT1JXQVJEU19LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmRzPC9jb2RlPiBjb2xsZWN0aW9uCisgaXMgbm9ybWFsbHkgc3RvcmVkLCB1bmxlc3Mgb3ZlcnJpZGRlbiB3aGVuIGluaXRpYWxpemluZyBvdXIKKyBBY3Rpb25TZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXNzaW9uIGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHRoZSB1c2VyJ3Mgc2VsZWN0ZWQKKyA8Y29kZT5qYXZhLnV0aWwuTG9jYWxlPC9jb2RlPiBpcyBzdG9yZWQsIGlmIGFueS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR19LRVkiPk1BUFBJTkdfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91cgorIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLkFjdGlvbk1hcHBpbmc8L2NvZGU+IGluc3RhbmNlCisgaXMgcGFzc2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HU19LRVkiPk1BUFBJTkdTX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIKKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZ3M8L2NvZGU+IGNvbGxlY3Rpb24KKyBpcyBub3JtYWxseSBzdG9yZWQsIHVubGVzcyBvdmVycmlkZGVuIHdoZW4gaW5pdGlhbGl6aW5nIG91cgorIEFjdGlvblNlcnZsZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01FU1NBR0VTX0tFWSI+TUVTU0FHRVNfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91ciBhcHBsaWNhdGlvbiByZXNvdXJjZXMgYXJlCisgbm9ybWFsbHkgc3RvcmVkLCB1bmxlc3Mgb3ZlcnJpZGRlbiB3aGVuIGluaXRpYWxpemluZyBvdXIgQWN0aW9uU2VydmxldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTVVMVElQQVJUX0tFWSI+TVVMVElQQVJUX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIgbXVsdGlwYXJ0IGNsYXNzIGlzIHN0b3JlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250cm9sbGVyIHNlcnZsZXQgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNTRVJWTEVUX0tFWSI+U0VSVkxFVF9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggd2Ugc3RvcmUgdGhlIG1hcHBpbmcgZGVmaW5lZAorIGZvciBvdXIgY29udHJvbGxlciBzZXJsZXQsIHdoaWNoIHdpbGwgYmUgZWl0aGVyIGEgcGF0aC1tYXBwZWQgcGF0dGVybgorICg8Y29kZT4vYWN0aW9uLyo8L2NvZGU+KSBvciBhbiBleHRlbnNpb24gbWFwcGVkIHBhdHRlcm4KKyAoPGNvZGU+Ki5kbzwvY29kZT4pLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNUUkFOU0FDVElPTl9UT0tFTl9LRVkiPlRSQU5TQUNUSU9OX1RPS0VOX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2Vzc2lvbiBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIgdHJhbnNhY3Rpb24gdG9rZW4gaXMKKyBzdG9yZWQsIGlmIGl0IGlzIHVzZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjQWN0aW9uKCkiPkFjdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZW5lcmF0ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZW5lcmF0ZVRva2VuPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmF0ZSBhIG5ldyB0cmFuc2FjdGlvbiB0b2tlbiwgdG8gYmUgdXNlZCBmb3IgZW5mb3JjaW5nIGEgc2luZ2xlCisgcmVxdWVzdCBmb3IgYSBwYXJ0aWN1bGFyIHRyYW5zYWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkxvY2FsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRMb2NhbGU8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgdXNlcidzIGN1cnJlbnRseSBzZWxlY3RlZCBMb2NhbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcygpIj5nZXRSZXNvdXJjZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNDYW5jZWxsZWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzQ2FuY2VsbGVkPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBjdXJyZW50IGZvcm0ncyBjYW5jZWwgYnV0dG9uIHdhcworIHByZXNzZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzVG9rZW5WYWxpZDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGlzIGEgdHJhbnNhY3Rpb24gdG9rZW4gc3RvcmVkIGluCisgdGhlIHVzZXIncyBjdXJyZW50IHNlc3Npb24sIGFuZCB0aGUgdmFsdWUgc3VibWl0dGVkIGFzIGEgcmVxdWVzdAorIHBhcmFtZXRlciB3aXRoIHRoaXMgYWN0aW9uIG1hdGNoZXMgaXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBub24tSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nCisgbm9uLUhUVFAgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUKKyBpdCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCwKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSBuZXcgcGVyZm9ybSgpIG1ldGhvZCB3aXRob3V0IGEgc2VydmxldCBhcmd1bWVudDwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0LAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIG5ldyBwZXJmb3JtKCkgbWV0aG9kIHdpdGhvdXQgYSBzZXJ2bGV0IGFyZ3VtZW50PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcmVzZXRUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVzZXRUb2tlbjwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVzZXQgdGhlIHNhdmVkIHRyYW5zYWN0aW9uIHRva2VuIGluIHRoZSB1c2VyJ3Mgc2Vzc2lvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVFcnJvcnMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycykiPnNhdmVFcnJvcnM8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2F2ZSB0aGUgc3BlY2lmaWVkIGVycm9yIG1lc3NhZ2VzIGtleXMgaW50byB0aGUgYXBwcm9wcmlhdGUgcmVxdWVzdAorIGF0dHJpYnV0ZSBmb3IgdXNlIGJ5IHRoZSAmbHQ7c3RydXRzOmVycm9ycyZndDsgdGFnLCBpZiBhbnkgbWVzc2FnZXMKKyBhcmUgcmVxdWlyZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnNhdmVUb2tlbjwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2F2ZSBhIG5ldyB0cmFuc2FjdGlvbiB0b2tlbiBpbiB0aGUgdXNlcidzIGN1cnJlbnQgc2Vzc2lvbiwgY3JlYXRpbmcKKyBhIG5ldyBzZXNzaW9uIGlmIG5lY2Vzc2FyeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLnV0aWwuTG9jYWxlKSI+c2V0TG9jYWxlPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgdXNlcidzIGN1cnJlbnRseSBzZWxlY3RlZCBMb2NhbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkIChpZgorIDxjb2RlPnNlcnZsZXQ8L2NvZGU+IGlzIG5vbi1udWxsKSwgb3IgcmVsZWFzZSBhbnkgYWxsb2NhdGVkIHJlc291cmNlcworIChpZiA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBpcyBudWxsKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3RvSGV4KGJ5dGVbXSkiPnRvSGV4PC9BPjwvQj4oYnl0ZVtdJm5ic3A7YnVmZmVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udmVydCBhIGJ5dGUgYXJyYXkgdG8gYSBTdHJpbmcgb2YgaGV4YWRlY2ltYWwgZGlnaXRzIGFuZCByZXR1cm4gaXQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJEQVRBX1NPVVJDRV9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK0RBVEFfU09VUkNFX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkRBVEFfU09VUkNFX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIgPHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+CisgY29uZmlndXJlZCBkYXRhIHNvdXJjZSAod2hpY2ggbXVzdCBpbXBsZW1lbnQKKyA8Y29kZT5qYXZheC5zcWwuRGF0YVNvdXJjZTwvY29kZT4pIGlzIHN0b3JlZCwKKyBpZiBvbmUgaXMgY29uZmlndXJlZCBmb3IgdGhpcyBhcHBsaWNhdGlvbi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJFUlJPUl9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK0VSUk9SX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkVSUk9SX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCB5b3VyIGFjdGlvbiBzaG91bGQgc3RvcmUgYW4KKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QsIGlmIHlvdQorIGFyZSB1c2luZyB0aGUgY29ycmVzcG9uZGluZyBjdXN0b20gdGFnIGxpYnJhcnkgZWxlbWVudHMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRVhDRVBUSU9OX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorRVhDRVBUSU9OX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkVYQ0VQVElPTl9LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlcXVlc3QgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggU3RydXRzIGN1c3RvbSB0YWdzIG1pZ2h0IHN0b3JlIGEKKyA8Y29kZT5UaHJvd2FibGU8L2NvZGU+IHRoYXQgY2F1c2VkIHRoZW0gdG8gcmVwb3J0IGEgSnNwRXhjZXB0aW9uIGF0CisgcnVudGltZS4gIFRoaXMgdmFsdWUgY2FuIGJlIHVzZWQgb24gYW4gZXJyb3IgcGFnZSB0byBwcm92aWRlIG1vcmUKKyBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IHJlYWxseSB3ZW50IHdyb25nLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkZPUk1fQkVBTlNfS0VZIj48IS0tIC0tPjwvQT48SDM+CitGT1JNX0JFQU5TX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkZPUk1fQkVBTlNfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91cgorIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbnM8L2NvZGU+IGNvbGxlY3Rpb24KKyBpcyBub3JtYWxseSBzdG9yZWQsIHVubGVzcyBvdmVycmlkZGVuIHdoZW4gaW5pdGlhbGl6aW5nIG91cgorIEFjdGlvblNlcnZsZXQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRk9SV0FSRFNfS0VZIj48IS0tIC0tPjwvQT48SDM+CitGT1JXQVJEU19LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5GT1JXQVJEU19LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmRzPC9jb2RlPiBjb2xsZWN0aW9uCisgaXMgbm9ybWFsbHkgc3RvcmVkLCB1bmxlc3Mgb3ZlcnJpZGRlbiB3aGVuIGluaXRpYWxpemluZyBvdXIKKyBBY3Rpb25TZXJ2bGV0LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkxPQ0FMRV9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK0xPQ0FMRV9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5MT0NBTEVfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXNzaW9uIGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHRoZSB1c2VyJ3Mgc2VsZWN0ZWQKKyA8Y29kZT5qYXZhLnV0aWwuTG9jYWxlPC9jb2RlPiBpcyBzdG9yZWQsIGlmIGFueS4gIElmIG5vIHN1Y2gKKyBhdHRyaWJ1dGUgaXMgZm91bmQsIHRoZSBzeXN0ZW0gZGVmYXVsdCBsb2NhbGUKKyB3aWxsIGJlIHVzZWQgd2hlbiByZXRyaWV2aW5nIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzLiAgSWYgdXNlZCwgdGhpcworIGF0dHJpYnV0ZSBpcyB0eXBpY2FsbHkgc2V0IGR1cmluZyB1c2VyIGxvZ2luIHByb2Nlc3NpbmcuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTUFQUElOR19LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK01BUFBJTkdfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+TUFQUElOR19LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlcXVlc3QgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuQWN0aW9uTWFwcGluZzwvY29kZT4gaW5zdGFuY2UKKyBpcyBwYXNzZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTUFQUElOR1NfS0VZIj48IS0tIC0tPjwvQT48SDM+CitNQVBQSU5HU19LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5NQVBQSU5HU19LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzPC9jb2RlPiBjb2xsZWN0aW9uCisgaXMgbm9ybWFsbHkgc3RvcmVkLCB1bmxlc3Mgb3ZlcnJpZGRlbiB3aGVuIGluaXRpYWxpemluZyBvdXIKKyBBY3Rpb25TZXJ2bGV0LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Ik1FU1NBR0VTX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorTUVTU0FHRVNfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+TUVTU0FHRVNfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91ciBhcHBsaWNhdGlvbiByZXNvdXJjZXMgYXJlCisgbm9ybWFsbHkgc3RvcmVkLCB1bmxlc3Mgb3ZlcnJpZGRlbiB3aGVuIGluaXRpYWxpemluZyBvdXIgQWN0aW9uU2VydmxldC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJNVUxUSVBBUlRfS0VZIj48IS0tIC0tPjwvQT48SDM+CitNVUxUSVBBUlRfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+TVVMVElQQVJUX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIgbXVsdGlwYXJ0IGNsYXNzIGlzIHN0b3JlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJTRVJWTEVUX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorU0VSVkxFVF9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5TRVJWTEVUX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCB3ZSBzdG9yZSB0aGUgbWFwcGluZyBkZWZpbmVkCisgZm9yIG91ciBjb250cm9sbGVyIHNlcmxldCwgd2hpY2ggd2lsbCBiZSBlaXRoZXIgYSBwYXRoLW1hcHBlZCBwYXR0ZXJuCisgKDxjb2RlPi9hY3Rpb24vKjwvY29kZT4pIG9yIGFuIGV4dGVuc2lvbiBtYXBwZWQgcGF0dGVybgorICg8Y29kZT4qLmRvPC9jb2RlPikuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iVFJBTlNBQ1RJT05fVE9LRU5fS0VZIj48IS0tIC0tPjwvQT48SDM+CitUUkFOU0FDVElPTl9UT0tFTl9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5UUkFOU0FDVElPTl9UT0tFTl9LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlc3Npb24gYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyIHRyYW5zYWN0aW9uIHRva2VuIGlzCisgc3RvcmVkLCBpZiBpdCBpcyB1c2VkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRlZmF1bHRMb2NhbGUiPjwhLS0gLS0+PC9BPjxIMz4KK2RlZmF1bHRMb2NhbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgamF2YS51dGlsLkxvY2FsZSA8Qj5kZWZhdWx0TG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzeXN0ZW0gZGVmYXVsdCBMb2NhbGUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2VydmxldCI+PCEtLSAtLT48L0E+PEgzPgorc2VydmxldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPnNlcnZsZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRyb2xsZXIgc2VydmxldCB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb248L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFNlcnZsZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2VydmxldDwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPmdldFNlcnZsZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGNvbnRyb2xsZXIgc2VydmxldCBpbnN0YW5jZSB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNlcnZsZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNlcnZsZXQ8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGNvbnRyb2xsZXIgc2VydmxldCBpbnN0YW5jZSB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQgKGlmCisgPGNvZGU+c2VydmxldDwvY29kZT4gaXMgbm9uLW51bGwpLCBvciByZWxlYXNlIGFueSBhbGxvY2F0ZWQgcmVzb3VyY2VzCisgKGlmIDxjb2RlPnNlcnZsZXQ8L2NvZGU+IGlzIG51bGwpLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNlcnZsZXQ8L0NPREU+IC0gVGhlIG5ldyBjb250cm9sbGVyIHNlcnZsZXQsIGlmIGFueTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3BlcmZvcm08L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiA8Qj5wZXJmb3JtPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSBuZXcgcGVyZm9ybSgpIG1ldGhvZCB3aXRob3V0IGEgc2VydmxldCBhcmd1bWVudDwvST4KKzxQPgorPEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBub24tSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nCisgbm9uLUhUVFAgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUKKyBpdCkuICBSZXR1cm4gYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2UgZGVzY3JpYmluZyB3aGVyZQorIGFuZCBob3cgY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUKKyByZXNwb25zZSBoYXMgYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0PC9DT0RFPiAtIFRoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlIG93bmluZyB0aGlzIEFjdGlvbjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+YWN0aW9uRm9ybTwvQ09ERT4gLSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSk8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlc3BvbnNlIHdlIGFyZSBwcm9jZXNzaW5nPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VyczxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3BlcmZvcm08L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiA8Qj5wZXJmb3JtPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBub24tSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nCisgbm9uLUhUVFAgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUKKyBpdCkuICBSZXR1cm4gYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2UgZGVzY3JpYmluZyB3aGVyZQorIGFuZCBob3cgY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUKKyByZXNwb25zZSBoYXMgYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC4KKyA8cD4KKyBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBhdHRlbXB0cyB0byBmb3J3YXJkIHRvIHRoZSBIVFRQIHZlcnNpb24gb2YKKyB0aGlzIG1ldGhvZC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+YWN0aW9uRm9ybTwvQ09ERT4gLSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSk8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgbm9uLUhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgbm9uLUhUVFAgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VyczxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitwZXJmb3JtPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+cGVyZm9ybTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSB0aGUgbmV3IHBlcmZvcm0oKSBtZXRob2Qgd2l0aG91dCBhIHNlcnZsZXQgYXJndW1lbnQ8L0k+Cis8UD4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nCisgSFRUUCByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZQorIGl0KS4gIFJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlCisgYW5kIGhvdyBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZQorIHJlc3BvbnNlIGhhcyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNlcnZsZXQ8L0NPREU+IC0gVGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2Ugb3duaW5nIHRoaXMgQWN0aW9uPEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZTxERD48Q09ERT5hY3Rpb25Gb3JtPC9DT0RFPiAtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KTxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVzcG9uc2Ugd2UgYXJlIHByb2Nlc3Npbmc8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorcGVyZm9ybTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPnBlcmZvcm08L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorIFJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlIGFuZCBob3cKKyBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSByZXNwb25zZSBoYXMKKyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZTxERD48Q09ERT5hY3Rpb25Gb3JtPC9DT0RFPiAtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KTxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIEhUVFAgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VyczxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdlbmVyYXRlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dlbmVyYXRlVG9rZW48L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmdlbmVyYXRlVG9rZW48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPkdlbmVyYXRlIGEgbmV3IHRyYW5zYWN0aW9uIHRva2VuLCB0byBiZSB1c2VkIGZvciBlbmZvcmNpbmcgYSBzaW5nbGUKKyByZXF1ZXN0IGZvciBhIHBhcnRpY3VsYXIgdHJhbnNhY3Rpb24uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMb2NhbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuTG9jYWxlIDxCPmdldExvY2FsZTwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSB1c2VyJ3MgY3VycmVudGx5IHNlbGVjdGVkIExvY2FsZS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZXNvdXJjZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVzb3VyY2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPmdldFJlc291cmNlczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgYXBwbGljYXRpb24uPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNDYW5jZWxsZWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzQ2FuY2VsbGVkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5pc0NhbmNlbGxlZDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgY3VycmVudCBmb3JtJ3MgY2FuY2VsIGJ1dHRvbiB3YXMKKyBwcmVzc2VkLiAgVGhpcyBtZXRob2Qgd2lsbCBjaGVjayBpZiB0aGUgY2FuY2VsIGJ1dHRvbiBnZW5lcmF0ZWQgYnkKKyA8c3Ryb25nPkNhbmNlbFRhZzwvc3Ryb25nPiB3YXMgcHJlc3NlZCBieSB0aGUgdXNlciBpbiB0aGUKKyBjdXJyZW50IHJlcXVlc3QuICBJZiB0cnVlLCB2YWxpZGF0aW9uIHBlcmZvcm1lZCBieSBhbgorIDxzdHJvbmc+QWN0aW9uRm9ybTwvc3Ryb25nPiB2YWxpZGF0ZSgpIG1ldGhvZCB3aWxsIGhhdmUgYmVlbgorIHNraXBwZWQgYnkgdGhlIGNvbnRyb2xsZXIgc2VydmxldC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NhbmNlbFRhZy5odG1sIj48Q09ERT5DYW5jZWxUYWc8L0NPREU+PC9BPiwgCis8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vVmFsaWRhdGluZ0FjdGlvbkZvcm0uaHRtbCI+PENPREU+VmFsaWRhdGluZ0FjdGlvbkZvcm08L0NPREU+PC9BPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Citpc1Rva2VuVmFsaWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmlzVG9rZW5WYWxpZDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGlzIGEgdHJhbnNhY3Rpb24gdG9rZW4gc3RvcmVkIGluCisgdGhlIHVzZXIncyBjdXJyZW50IHNlc3Npb24sIGFuZCB0aGUgdmFsdWUgc3VibWl0dGVkIGFzIGEgcmVxdWVzdAorIHBhcmFtZXRlciB3aXRoIHRoaXMgYWN0aW9uIG1hdGNoZXMgaXQuICBSZXR1cm5zIDxjb2RlPmZhbHNlPC9jb2RlPgorIHVuZGVyIGFueSBvZiB0aGUgZm9sbG93aW5nIGNpcmN1bXN0YW5jZXM6CisgPHVsPgorIDxsaT5ObyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3Q8L2xpPgorIDxsaT5ObyB0cmFuc2FjdGlvbiB0b2tlbiBzYXZlZCBpbiB0aGUgc2Vzc2lvbjwvbGk+CisgPGxpPk5vIHRyYW5zYWN0aW9uIHRva2VuIGluY2x1ZGVkIGFzIGEgcmVxdWVzdCBwYXJhbWV0ZXI8L2xpPgorIDxsaT5UaGUgaW5jbHVkZWQgdHJhbnNhY3Rpb24gdG9rZW4gdmFsdWUgZG9lcyBub3QgbWF0Y2ggdGhlCisgICAgIHRyYW5zYWN0aW9uIHRva2VuIGluIHRoZSB1c2VyJ3Mgc2Vzc2lvbjwvbGk+CisgPC91bD48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlc2V0VG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3Jlc2V0VG9rZW48L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPnJlc2V0VG9rZW48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPlJlc2V0IHRoZSBzYXZlZCB0cmFuc2FjdGlvbiB0b2tlbiBpbiB0aGUgdXNlcidzIHNlc3Npb24uICBUaGlzCisgaW5kaWNhdGVzIHRoYXQgdHJhbnNhY3Rpb25hbCB0b2tlbiBjaGVja2luZyB3aWxsIG5vdCBiZSBuZWVkZWQKKyBvbiB0aGUgbmV4dCByZXF1ZXN0IHRoYXQgaXMgc3VibWl0dGVkLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2F2ZUVycm9ycyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzKSI+PCEtLSAtLT48L0E+PEgzPgorc2F2ZUVycm9yczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+c2F2ZUVycm9yczwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycyk8L1BSRT4KKzxETD4KKzxERD5TYXZlIHRoZSBzcGVjaWZpZWQgZXJyb3IgbWVzc2FnZXMga2V5cyBpbnRvIHRoZSBhcHByb3ByaWF0ZSByZXF1ZXN0CisgYXR0cmlidXRlIGZvciB1c2UgYnkgdGhlICZsdDtzdHJ1dHM6ZXJyb3JzJmd0OyB0YWcsIGlmIGFueSBtZXNzYWdlcworIGFyZSByZXF1aXJlZC4gIE90aGVyd2lzZSwgZW5zdXJlIHRoYXQgdGhlIHJlcXVlc3QgYXR0cmlidXRlIGlzIG5vdAorIGNyZWF0ZWQuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBFcnJvciBtZXNzYWdlcyBvYmplY3Q8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNhdmVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorc2F2ZVRva2VuPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5zYXZlVG9rZW48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPlNhdmUgYSBuZXcgdHJhbnNhY3Rpb24gdG9rZW4gaW4gdGhlIHVzZXIncyBjdXJyZW50IHNlc3Npb24sIGNyZWF0aW5nCisgYSBuZXcgc2Vzc2lvbiBpZiBuZWNlc3NhcnkuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS51dGlsLkxvY2FsZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+c2V0TG9jYWxlPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgdXNlcidzIGN1cnJlbnRseSBzZWxlY3RlZCBMb2NhbGUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5sb2NhbGU8L0NPREU+IC0gVGhlIHVzZXIncyBzZWxlY3RlZCBMb2NhbGUgdG8gYmUgc2V0LCBvciBudWxsCisgIHRvIHNlbGVjdCB0aGUgc2VydmVyJ3MgZGVmYXVsdCBMb2NhbGU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRvSGV4KGJ5dGVbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK3RvSGV4PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj50b0hleDwvQj4oYnl0ZVtdJm5ic3A7YnVmZmVyKTwvUFJFPgorPERMPgorPEREPkNvbnZlcnQgYSBieXRlIGFycmF5IHRvIGEgU3RyaW5nIG9mIGhleGFkZWNpbWFsIGRpZ2l0cyBhbmQgcmV0dXJuIGl0LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJ1ZmZlcjwvQ09ERT4gLSBUaGUgYnl0ZSBhcnJheSB0byBiZSBjb252ZXJ0ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkJhc2UuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25CYXNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uQmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1NzM1MTUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uQmFzZS5odG1sCkBAIC0wLDAgKzEsMjA3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgQWN0aW9uQmFzZQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25CYXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBBY3Rpb25CYXNlPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25CYXNlPC9CPgorPC9QUkU+Cis8SFI+Cis8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcHBsaWNhdGlvbiBhY3Rpb24gY2xhc3NlcyBzaG91bGQgbm93IGV4dGVuZCBBY3Rpb24KKyBkaXJlY3RseSwgcmF0aGVyIHRoYW4gdGhpcyBjbGFzcy48L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWN0aW9uQmFzZTwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0RMPgorCis8UD4KK0Fic3RyYWN0IGJhc2ljIGltcGxlbWVudGF0aW9uIG9mIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgcHJvdmlkZXMKKyB1c2VmdWwgdXRpbGl0eSBtZXRob2RzIGZvciB1c2UgYnkgQWN0aW9uIGNsYXNzZXMuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjREFUQV9TT1VSQ0VfS0VZIj5EQVRBX1NPVVJDRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFUlJPUl9LRVkiPkVSUk9SX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFWENFUFRJT05fS0VZIj5FWENFUFRJT05fS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUk1fQkVBTlNfS0VZIj5GT1JNX0JFQU5TX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JXQVJEU19LRVkiPkZPUldBUkRTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdfS0VZIj5NQVBQSU5HX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HU19LRVkiPk1BUFBJTkdTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFU19LRVkiPk1FU1NBR0VTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNVUxUSVBBUlRfS0VZIj5NVUxUSVBBUlRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjU0VSVkxFVF9LRVkiPlNFUlZMRVRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1RSQU5TQUNUSU9OX1RPS0VOX0tFWSI+VFJBTlNBQ1RJT05fVE9LRU5fS0VZPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25CYXNlLmh0bWwjQWN0aW9uQmFzZSgpIj5BY3Rpb25CYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZW5lcmF0ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZW5lcmF0ZVRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcygpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzQ2FuY2VsbGVkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc0NhbmNlbGxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzVG9rZW5WYWxpZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcmVzZXRUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVzZXRUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlRXJyb3JzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMpIj5zYXZlRXJyb3JzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+c2F2ZVRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLnV0aWwuTG9jYWxlKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3RvSGV4KGJ5dGVbXSkiPnRvSGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJBY3Rpb25CYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbkJhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25CYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uQmFzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjRjMDU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwKQEAgLTAsMCArMSwzNzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBBY3Rpb25FcnJvcgorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uQmFzZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkVycm9yLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyAgQWN0aW9uRXJyb3I8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3I8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5BY3Rpb25FcnJvcjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0FuIGVuY2Fwc3VsYXRpb24gb2YgYW4gaW5kaXZpZHVhbCBlcnJvciBtZXNzYWdlIHJldHVybmVkIGJ5IHRoZQorIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiBhbiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiwgY29uc2lzdGluZworIG9mIGEgbWVzc2FnZSBrZXkgKHRvIGJlIHVzZWQgdG8gbG9vayB1cCBtZXNzYWdlIHRleHQgaW4gYW4gYXBwcm9wcmlhdGUKKyBtZXNzYWdlIHJlc291cmNlcyBkYXRhYmFzZSkgcGx1cyB1cCB0byBmb3VyIHBsYWNlaG9sZGVyIG9iamVjdHMgdGhhdCBjYW4KKyBiZSB1c2VkIGZvciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IGluIHRoZSBtZXNzYWdlIHRleHQuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9yIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwja2V5Ij5rZXk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2Uga2V5IGZvciB0aGlzIGVycm9yIG1lc3NhZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLk9iamVjdFtdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sI3ZhbHVlcyI+dmFsdWVzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSByZXBsYWNlbWVudCB2YWx1ZXMgZm9yIHRoaXMgZXJyb3IgbWVzYXNnZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sI0FjdGlvbkVycm9yKGphdmEubGFuZy5TdHJpbmcpIj5BY3Rpb25FcnJvcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYW4gYWN0aW9uIGVycm9yIHdpdGggbm8gcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwjQWN0aW9uRXJyb3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPkFjdGlvbkVycm9yPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTApPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYW4gYWN0aW9uIGVycm9yIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCNBY3Rpb25FcnJvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+QWN0aW9uRXJyb3I8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMCwKKyAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTEpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYW4gYWN0aW9uIGVycm9yIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCNBY3Rpb25FcnJvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+QWN0aW9uRXJyb3I8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMCwKKyAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTEsCisgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwjQWN0aW9uRXJyb3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPkFjdGlvbkVycm9yPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTAsCisgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUxLAorICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMiwKKyAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYW4gYWN0aW9uIGVycm9yIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCNnZXRLZXkoKSI+Z2V0S2V5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBtZXNzYWdlIGtleSBmb3IgdGhpcyBlcnJvciBtZXNzYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwjZ2V0VmFsdWVzKCkiPmdldFZhbHVlczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgcmVwbGFjZW1lbnQgdmFsdWVzIGZvciB0aGlzIGVycm9yIG1lc3NhZ2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJrZXkiPjwhLS0gLS0+PC9BPjxIMz4KK2tleTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPmtleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSBrZXkgZm9yIHRoaXMgZXJyb3IgbWVzc2FnZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZXMiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlczwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuT2JqZWN0W10gPEI+dmFsdWVzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSByZXBsYWNlbWVudCB2YWx1ZXMgZm9yIHRoaXMgZXJyb3IgbWVzYXNnZS48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQWN0aW9uRXJyb3IoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbkVycm9yPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uRXJyb3I8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIG5vIHJlcGxhY2VtZW50IHZhbHVlcy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSBrZXkgZm9yIHRoaXMgZXJyb3IgbWVzc2FnZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQWN0aW9uRXJyb3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbkVycm9yPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uRXJyb3I8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYW4gYWN0aW9uIGVycm9yIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIE1lc3NhZ2Uga2V5IGZvciB0aGlzIGVycm9yIG1lc3NhZ2U8REQ+PENPREU+dmFsdWUwPC9DT0RFPiAtIEZpcnN0IHJlcGxhY2VtZW50IHZhbHVlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJBY3Rpb25FcnJvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uRXJyb3I8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25FcnJvcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwLAorICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTEpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleSBmb3IgdGhpcyBlcnJvciBtZXNzYWdlPEREPjxDT0RFPnZhbHVlMDwvQ09ERT4gLSBGaXJzdCByZXBsYWNlbWVudCB2YWx1ZTxERD48Q09ERT52YWx1ZTE8L0NPREU+IC0gU2Vjb25kIHJlcGxhY2VtZW50IHZhbHVlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJBY3Rpb25FcnJvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uRXJyb3I8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25FcnJvcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwLAorICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTEsCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMik8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYW4gYWN0aW9uIGVycm9yIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIE1lc3NhZ2Uga2V5IGZvciB0aGlzIGVycm9yIG1lc3NhZ2U8REQ+PENPREU+dmFsdWUwPC9DT0RFPiAtIEZpcnN0IHJlcGxhY2VtZW50IHZhbHVlPEREPjxDT0RFPnZhbHVlMTwvQ09ERT4gLSBTZWNvbmQgcmVwbGFjZW1lbnQgdmFsdWU8REQ+PENPREU+dmFsdWUyPC9DT0RFPiAtIFRoaXJkIHJlcGxhY2VtZW50IHZhbHVlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJBY3Rpb25FcnJvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uRXJyb3I8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25FcnJvcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwLAorICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTEsCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMiwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUzKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhbiBhY3Rpb24gZXJyb3Igd2l0aCB0aGUgc3BlY2lmaWVkIHJlcGxhY2VtZW50IHZhbHVlcy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSBrZXkgZm9yIHRoaXMgZXJyb3IgbWVzc2FnZTxERD48Q09ERT52YWx1ZTA8L0NPREU+IC0gRmlyc3QgcmVwbGFjZW1lbnQgdmFsdWU8REQ+PENPREU+dmFsdWUxPC9DT0RFPiAtIFNlY29uZCByZXBsYWNlbWVudCB2YWx1ZTxERD48Q09ERT52YWx1ZTI8L0NPREU+IC0gVGhpcmQgcmVwbGFjZW1lbnQgdmFsdWU8REQ+PENPREU+dmFsdWUzPC9DT0RFPiAtIEZvdXJ0aCByZXBsYWNlbWVudCB2YWx1ZTwvREw+Cis8L0REPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0S2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEtleTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0S2V5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBtZXNzYWdlIGtleSBmb3IgdGhpcyBlcnJvciBtZXNzYWdlLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWx1ZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuT2JqZWN0W10gPEI+Z2V0VmFsdWVzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSByZXBsYWNlbWVudCB2YWx1ZXMgZm9yIHRoaXMgZXJyb3IgbWVzc2FnZS48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25CYXNlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRXJyb3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRkYmNhYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbApAQCAtMCwwICsxLDQ0MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEFjdGlvbkVycm9ycworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRXJyb3JzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyAgQWN0aW9uRXJyb3JzPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9yczwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkFjdGlvbkVycm9yczwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KKzxwPkEgY2xhc3MgdGhhdCBlbmNhcHN1bGF0ZXMgdGhlIGVycm9yIG1lc3NhZ2VzIGJlaW5nIHJlcG9ydGVkIGJ5CisgdGhlIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiBhbiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPi4KKyBWYWxpZGF0aW9uIGVycm9ycyBhcmUgZWl0aGVyIGdsb2JhbCB0byB0aGUgZW50aXJlIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+CisgYmVhbiB0aGV5IGFyZSBhc3NvY2lhdGVkIHdpdGgsIG9yIHRoZXkgYXJlIHNwZWNpZmljIHRvIGEgcGFydGljdWxhcgorIGJlYW4gcHJvcGVydHkgKGFuZCwgdGhlcmVmb3JlLCBhIHBhcnRpY3VsYXIgaW5wdXQgZmllbGQgb24gdGhlIGNvcnJlc3BvbmRpbmcKKyBmb3JtKS48L3A+CisKKyA8cD5FYWNoIGluZGl2aWR1YWwgZXJyb3IgaXMgZGVzY3JpYmVkIGJ5IGFuIDxjb2RlPkFjdGlvbkVycm9yPC9jb2RlPgorIG9iamVjdCwgd2hpY2ggY29udGFpbnMgYSBtZXNzYWdlIGtleSAodG8gYmUgbG9va2VkIHVwIGluIGFuIGFwcHJvcHJpYXRlCisgbWVzc2FnZSByZXNvdXJjZXMgZGF0YWJhc2UpLCBhbmQgdXAgdG8gZm91ciBwbGFjZWhvbGRlciBhcmd1bWVudHMgdXNlZCBmb3IKKyBwYXJhbWV0cmljIHN1YnN0aXR1dGlvbiBpbiB0aGUgcmVzdWx0aW5nIG1lc3NhZ2UuPC9wPgorCisgPHA+PHN0cm9uZz5JTVBMRU1FTlRBVElPTiBOT1RFPC9zdHJvbmc+IC0gSXQgaXMgYXNzdW1lZCB0aGF0IHRoZXNlIG9iamVjdHMKKyBhcmUgY3JlYXRlZCBhbmQgbWFuaXB1bGF0ZWQgb25seSB3aXRoaW4gdGhlIGNvbnRleHQgb2YgYSBzaW5nbGUgdGhyZWFkLgorIFRoZXJlZm9yZSwgbm8gc3luY2hyb25pemF0aW9uIGlzIHJlcXVpcmVkIGZvciBhY2Nlc3MgdG8gaW50ZXJuYWwKKyBjb2xsZWN0aW9ucy48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+RGF2aWQgR2VhcnksIENyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwjZXJyb3JzIj5lcnJvcnM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGFjY3VtdWxhdGVkIHNldCBvZiA8Y29kZT5BY3Rpb25FcnJvcjwvY29kZT4gb2JqZWN0cyAocmVwcmVzZW50ZWQKKyBhcyBhbiBBcnJheUxpc3QpIGZvciBlYWNoIHByb3BlcnR5LCBrZXllZCBieSBwcm9wZXJ0eSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCNHTE9CQUxfRVJST1IiPkdMT0JBTF9FUlJPUjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgInByb3BlcnR5IG5hbWUiIG1hcmtlciB0byB1c2UgZm9yIGdsb2JhbCBlcnJvcnMsIGFzIG9wcG9zZWQgdG8KKyB0aG9zZSByZWxhdGVkIHRvIGEgc3BlY2lmaWMgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwjQWN0aW9uRXJyb3JzKCkiPkFjdGlvbkVycm9yczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sI2FkZChqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3IpIj5hZGQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHksCisgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPiZuYnNwO2Vycm9yKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGFuIGVycm9yIG1lc3NhZ2UgdG8gdGhlIHNldCBvZiBlcnJvcnMgZm9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sI2NsZWFyKCkiPmNsZWFyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xlYXIgYWxsIGVycm9yIG1lc3NhZ2VzIHJlY29yZGVkIGJ5IHRoaXMgb2JqZWN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCNlbXB0eSgpIj5lbXB0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBhcmUgbm8gZXJyb3IgbWVzc2FnZXMgcmVjb3JkZWQKKyBpbiB0aGlzIGNvbGxlY3Rpb24sIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBvdGhlcndpc2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5JdGVyYXRvcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwjZ2V0KCkiPmdldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc2V0IG9mIGFsbCByZWNvcmRlZCBlcnJvciBtZXNzYWdlcywgd2l0aG91dCBkaXN0aW5jdGlvbgorIGJ5IHdoaWNoIHByb3BlcnR5IHRoZSBtZXNzYWdlcyBhcmUgYXNzb2NpYXRlZCB3aXRoLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSXRlcmF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sI2dldChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBzZXQgb2YgZXJyb3IgbWVzc2FnZXMgcmVsYXRlZCB0byBhIHNwZWNpZmljIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSXRlcmF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sI3Byb3BlcnRpZXMoKSI+cHJvcGVydGllczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc2V0IG9mIHByb3BlcnR5IG5hbWVzIGZvciB3aGljaCBhdCBsZWFzdCBvbmUgZXJyb3IgaGFzCisgYmVlbiByZWNvcmRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCNzaXplKCkiPnNpemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG51bWJlciBvZiBlcnJvcnMgcmVjb3JkZWQgZm9yIGFsbCBwcm9wZXJ0aWVzIChpbmNsdWRpbmcKKyBnbG9iYWwgZXJyb3JzKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCNzaXplKGphdmEubGFuZy5TdHJpbmcpIj5zaXplPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBudW1iZXIgb2YgZXJyb3JzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iR0xPQkFMX0VSUk9SIj48IS0tIC0tPjwvQT48SDM+CitHTE9CQUxfRVJST1I8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5HTE9CQUxfRVJST1I8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlICJwcm9wZXJ0eSBuYW1lIiBtYXJrZXIgdG8gdXNlIGZvciBnbG9iYWwgZXJyb3JzLCBhcyBvcHBvc2VkIHRvCisgdGhvc2UgcmVsYXRlZCB0byBhIHNwZWNpZmljIHByb3BlcnR5LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVycm9ycyI+PCEtLSAtLT48L0E+PEgzPgorZXJyb3JzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2hNYXAgPEI+ZXJyb3JzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhY2N1bXVsYXRlZCBzZXQgb2YgPGNvZGU+QWN0aW9uRXJyb3I8L2NvZGU+IG9iamVjdHMgKHJlcHJlc2VudGVkCisgYXMgYW4gQXJyYXlMaXN0KSBmb3IgZWFjaCBwcm9wZXJ0eSwga2V5ZWQgYnkgcHJvcGVydHkgbmFtZS48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQWN0aW9uRXJyb3JzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbkVycm9yczwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFjdGlvbkVycm9yczwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYWRkKGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcikiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHksCisgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPiZuYnNwO2Vycm9yKTwvUFJFPgorPERMPgorPEREPkFkZCBhbiBlcnJvciBtZXNzYWdlIHRvIHRoZSBzZXQgb2YgZXJyb3JzIGZvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5LjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIFByb3BlcnR5IG5hbWUgKG9yIEFjdGlvbkVycm9ycy5HTE9CQUxfRVJST1IpPEREPjxDT0RFPmVycm9yPC9DT0RFPiAtIFRoZSBlcnJvciBtZXNzYWdlIHRvIGJlIGFkZGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjbGVhcigpIj48IS0tIC0tPjwvQT48SDM+CitjbGVhcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+Y2xlYXI8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5DbGVhciBhbGwgZXJyb3IgbWVzc2FnZXMgcmVjb3JkZWQgYnkgdGhpcyBvYmplY3QuPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZW1wdHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZW1wdHk8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmVtcHR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGFyZSBubyBlcnJvciBtZXNzYWdlcyByZWNvcmRlZAorIGluIHRoaXMgY29sbGVjdGlvbiwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IG90aGVyd2lzZS48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkl0ZXJhdG9yIDxCPmdldDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgc2V0IG9mIGFsbCByZWNvcmRlZCBlcnJvciBtZXNzYWdlcywgd2l0aG91dCBkaXN0aW5jdGlvbgorIGJ5IHdoaWNoIHByb3BlcnR5IHRoZSBtZXNzYWdlcyBhcmUgYXNzb2NpYXRlZCB3aXRoLiAgSWYgdGhlcmUgYXJlCisgbm8gZXJyb3IgbWVzc2FnZXMgcmVjb3JkZWQsIGFuIGVtcHR5IGVudW1lcmF0aW9uIGlzIHJldHVybmVkLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkl0ZXJhdG9yIDxCPmdldDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgc2V0IG9mIGVycm9yIG1lc3NhZ2VzIHJlbGF0ZWQgdG8gYSBzcGVjaWZpYyBwcm9wZXJ0eS4KKyBJZiB0aGVyZSBhcmUgbm8gc3VjaCBlcnJvcnMsIGFuIGVtcHR5IGVudW1lcmF0aW9uIGlzIHJldHVybmVkLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIFByb3BlcnR5IG5hbWUgKG9yIEFjdGlvbkVycm9ycy5HTE9CQUxfRVJST1IpPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0aWVzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnRpZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuSXRlcmF0b3IgPEI+cHJvcGVydGllczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgc2V0IG9mIHByb3BlcnR5IG5hbWVzIGZvciB3aGljaCBhdCBsZWFzdCBvbmUgZXJyb3IgaGFzCisgYmVlbiByZWNvcmRlZC4gIElmIHRoZXJlIGFyZSBubyBlcnJvcnMsIGFuIGVtcHR5IEl0ZXJhdG9yIGlzIHJldHVybmVkLgorIElmIHlvdSBoYXZlIHJlY29yZGVkIGdsb2JhbCBlcnJvcnMsIHRoZSBTdHJpbmcgdmFsdWUgb2YKKyA8Y29kZT5BY3Rpb25FcnJvcnMuR0xPQkFMX0VSUk9SPC9jb2RlPiB3aWxsIGJlIG9uZSBvZiB0aGUgcmV0dXJuZWQKKyBwcm9wZXJ0eSBuYW1lcy48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+c2l6ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbnVtYmVyIG9mIGVycm9ycyByZWNvcmRlZCBmb3IgYWxsIHByb3BlcnRpZXMgKGluY2x1ZGluZworIGdsb2JhbCBlcnJvcnMpLiAgPHN0cm9uZz5OT1RFPC9zdHJvbmc+IC0gaXQgaXMgbW9yZSBlZmZpY2llbnQgdG8gY2FsbAorIDxjb2RlPmVtcHR5KCk8L2NvZGU+IGlmIGFsbCB5b3UgY2FyZSBhYm91dCBpcyB3aGV0aGVyIG9yIG5vdCB0aGVyZSBhcmUKKyBhbnkgZXJyb3IgbWVzc2FnZXMgYXQgYWxsLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNpemUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+c2l6ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbnVtYmVyIG9mIGVycm9ycyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBwcm9wZXJ0eS48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBQcm9wZXJ0eSBuYW1lIChvciBBY3Rpb25FcnJvcnMuR0xPQkFMX0VSUk9SKTwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRXJyb3JzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM0OWY3ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwKQEAgLTAsMCArMSw1MTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBBY3Rpb25Gb3JtCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkZvcm0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBBY3Rpb25Gb3JtPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm08L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9WYWxpZGF0aW5nQWN0aW9uRm9ybS5odG1sIj5WYWxpZGF0aW5nQWN0aW9uRm9ybTwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgYWJzdHJhY3QgY2xhc3MgPEI+QWN0aW9uRm9ybTwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KKzxwPkFuIDxzdHJvbmc+QWN0aW9uRm9ybTwvc3Ryb25nPiBpcyBhIEphdmFCZWFuIG9wdGlvbmFsbHkgYXNzb2NpYXRlZCB3aXRoCisgb25lIG9yIG1vcmUgPGNvZGU+QWN0aW9uTWFwcGluZ3M8L2NvZGU+LiAgU3VjaCBhIGJlYW4gd2lsbCBoYXZlIGhhZCBpdHMKKyBwcm9wZXJ0aWVzIGluaXRpYWxpemVkIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgcmVxdWVzdCBwYXJhbWV0ZXJzIGJlZm9yZQorIHRoZSBjb3JyZXNvbmRpbmcgYWN0aW9uJ3MgPGNvZGU+cGVyZm9ybSgpPC9jb2RlPiBtZXRob2QgaXMgY2FsbGVkLjwvcD4KKworIDxwPldoZW4gdGhlIHByb3BlcnRpZXMgb2YgdGhpcyBiZWFuIGhhdmUgYmVlbiBwb3B1bGF0ZWQsIGJ1dCBiZWZvcmUgdGhlCisgPGNvZGU+cGVyZm9ybSgpPC9jb2RlPiBtZXRob2Qgb2YgdGhlIGFjdGlvbiBpcyBjYWxsZWQsIHRoaXMgYmVhbidzCisgPGNvZGU+dmFsaWRhdGUoKTwvY29kZT4gbWV0aG9kIHdpbGwgYmUgY2FsbGVkLCB3aGljaCBnaXZlcyB0aGUgYmVhbiBhIGNoYW5jZQorIHRvIHZlcmlmeSB0aGF0IHRoZSBwcm9wZXJ0aWVzIHN1Ym1pdHRlZCBieSB0aGUgdXNlciBhcmUgY29ycmVjdCBhbmQgdmFsaWQuCisgSWYgdGhpcyBtZXRob2QgZmluZHMgcHJvYmxlbXMsIGl0IHJldHVybnMgYW4gZXJyb3IgbWVzc2FnZXMgb2JqZWN0IHRoYXQKKyBlbmNhcHN1bGF0ZXMgdGhvc2UgcHJvYmxlbXMsIGFuZCB0aGUgY29udHJvbGxlciBzZXJ2bGV0IHdpbGwgcmV0dXJuIGNvbnRyb2wKKyB0byB0aGUgY29ycmVzcG9uZGluZyBpbnB1dCBmb3JtLiAgT3RoZXJ3aXNlLCB0aGUgPGNvZGU+dmFsaWRhdGUoKTwvY29kZT4KKyBtZXRob2QgcmV0dXJucyA8Y29kZT5udWxsKCk8L2NvZGU+LCBpbmRpY2F0aW5nIHRoYXQgZXZlcnl0aGluZyBpcyBhY2NlcHRhYmxlCisgYW5kIHRoZSBjb3JyZXNwb25kaW5nIEFjdGlvbidzIDxjb2RlPnBlcmZvcm0oKTwvY29kZT4gbWV0aG9kIHNob3VsZCBiZQorIGNhbGxlZC48L3A+CisKKyA8cD5UaGlzIGNsYXNzIG11c3QgYmUgc3ViY2xhc3NlZCBpbiBvcmRlciB0byBiZSBpbnN0YW50aWF0ZWQuICBTdWJjbGFzc2VzCisgc2hvdWxkIHByb3ZpZGUgcHJvcGVydHkgZ2V0dGVyIGFuZCBzZXR0ZXIgbWV0aG9kcyBmb3IgYWxsIG9mIHRoZSBiZWFuCisgcHJvcGVydGllcyB0aGV5IHdpc2ggdG8gZXhwb3NlLCBwbHVzIG92ZXJyaWRlIGFueSBvZiB0aGUgcHVibGljIG9yCisgcHJvdGVjdGVkIG1ldGhvZHMgZm9yIHdoaWNoIHRoZXkgd2lzaCB0byBwcm92aWRlIG1vZGlmaWVkIGZ1bmN0aW9uYWxpdHkuCisgPC9wPgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI211bHRpcGFydFJlcXVlc3RIYW5kbGVyIj5tdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgZm9yIHRoaXMgZm9ybSwgY2FuIGJlCisgPGNvZGU+bnVsbDwvY29kZT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udHJvbGxlciBzZXJ2bGV0IGluc3RhbmNlIHRvIHdoaWNoIHdlIGFyZSBhdHRhY2hlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjQWN0aW9uRm9ybSgpIj5BY3Rpb25Gb3JtPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI2dldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyKCkiPmdldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciBmb3IgdGhpcyBmb3JtCisgVGhlIHJlYXNvbmluZyBiZWhpbmQgdGhpcyBpcyB0byBnaXZlIGZvcm0gYmVhbiBkZXZlbG9wZXJzCisgY29udHJvbCBvdmVyIHRoZSBsaWZlY3ljbGUgb2YgdGhlaXIgbXVsdGlwYXJ0IHJlcXVlc3RzCisgdGhyb3VnaCB0aGUgdXNlIG9mIHRoZSBmaW5pc2goKSBhbmQvb3Igcm9sbGJhY2soKSBtZXRob2RzCisgb2YgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjcmVzZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5yZXNldDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVzZXQgYWxsIGJlYW4gcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHN0YXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjcmVzZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj5yZXNldDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVzZXQgYWxsIGJlYW4gcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHN0YXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjc2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIob3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RIYW5kbGVyKSI+c2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Jm5ic3A7bXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkIChpZgorIDxjb2RlPnNlcnZsZXQ8L2NvZGU+IGlzIG5vbi1udWxsKSwgb3IgcmVsZWFzZSBhbnkgYWxsb2NhdGVkIHJlc291cmNlcworIChpZiA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBpcyBudWxsKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZ1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjdmFsaWRhdGUoKSI+dmFsaWRhdGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5UaGlzIGlzIHRoZSBTdHJ1dHMgMC41IHZlcnNpb24gb2YgdmFsaWRhdGlvbiAtLSB1c2UgdGhlCisgIHZhbGlkYXRlKEFjdGlvbk1hcHBpbmcsSHR0cFNlcnZsZXRSZXF1ZXN0KSBtZXRob2QgaW5zdGVhZDwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VmFsaWRhdGUgdGhlIHByb3BlcnRpZXMgdGhhdCBoYXZlIGJlZW4gc2V0IGZvciB0aGlzIEhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtWYWxpZGF0ZSB0aGUgcHJvcGVydGllcyB0aGF0IGhhdmUgYmVlbiBzZXQgZm9yIHRoaXMgbm9uLUhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ic2VydmxldCI+PCEtLSAtLT48L0E+PEgzPgorc2VydmxldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHRyYW5zaWVudCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiA8Qj5zZXJ2bGV0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im11bHRpcGFydFJlcXVlc3RIYW5kbGVyIj48IS0tIC0tPjwvQT48SDM+CittdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHRyYW5zaWVudCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+IDxCPm11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciBmb3IgdGhpcyBmb3JtLCBjYW4gYmUKKyA8Y29kZT5udWxsPC9jb2RlPjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJBY3Rpb25Gb3JtKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbkZvcm08L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25Gb3JtPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRTZXJ2bGV0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNlcnZsZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiA8Qj5nZXRTZXJ2bGV0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPiA8Qj5nZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgZm9yIHRoaXMgZm9ybQorIFRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMgaXMgdG8gZ2l2ZSBmb3JtIGJlYW4gZGV2ZWxvcGVycworIGNvbnRyb2wgb3ZlciB0aGUgbGlmZWN5Y2xlIG9mIHRoZWlyIG11bHRpcGFydCByZXF1ZXN0cworIHRocm91Z2ggdGhlIHVzZSBvZiB0aGUgZmluaXNoKCkgYW5kL29yIHJvbGxiYWNrKCkgbWV0aG9kcworIG9mIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyLiAgVGhpcyBtZXRob2Qgd2lsbCByZXR1cm4KKyA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGlzIGZvcm0ncyBlbmN0eXBlIGlzIG5vdAorICJtdWx0aXBhcnQvcmVxdWVzdC1kYXRhIi48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48Q09ERT5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQ09ERT48L0E+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U2VydmxldDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2VydmxldDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0KTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgY29udHJvbGxlciBzZXJ2bGV0IGluc3RhbmNlIHRvIHdoaWNoIHdlIGFyZSBhdHRhY2hlZCAoaWYKKyA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBpcyBub24tbnVsbCksIG9yIHJlbGVhc2UgYW55IGFsbG9jYXRlZCByZXNvdXJjZXMKKyAoaWYgPGNvZGU+c2VydmxldDwvY29kZT4gaXMgbnVsbCkuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldDwvQ09ERT4gLSBUaGUgbmV3IGNvbnRyb2xsZXIgc2VydmxldCwgaWYgYW55PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcihvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4mbmJzcDttdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlc2V0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorcmVzZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlc2V0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5SZXNldCBhbGwgYmVhbiBwcm9wZXJ0aWVzIHRvIHRoZWlyIGRlZmF1bHQgc3RhdGUuICBUaGlzIG1ldGhvZCBpcworIGNhbGxlZCBiZWZvcmUgdGhlIHByb3BlcnRpZXMgYXJlIHJlcG9wdWxhdGVkIGJ5IHRoZSBjb250cm9sbGVyIHNlcnZsZXQuCisgPHA+CisgVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gYXR0ZW1wdHMgdG8gZm9yd2FyZCB0byB0aGUgSFRUUAorIHZlcnNpb24gb2YgdGhpcyBtZXRob2QuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgbWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVzZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CityZXNldDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVzZXQ8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPlJlc2V0IGFsbCBiZWFuIHByb3BlcnRpZXMgdG8gdGhlaXIgZGVmYXVsdCBzdGF0ZS4gIFRoaXMgbWV0aG9kIGlzCisgY2FsbGVkIGJlZm9yZSB0aGUgcHJvcGVydGllcyBhcmUgcmVwb3B1bGF0ZWQgYnkgdGhlIGNvbnRyb2xsZXIgc2VydmxldC4KKyA8cD4KKyBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdGhpbmcuICBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZQorIHRoaXMgbWV0aG9kIHRvIHJlc2V0IGFsbCBiZWFuIHByb3BlcnRpZXMgdG8gZGVmYXVsdCB2YWx1ZXMuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgbWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0ZTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiA8Qj52YWxpZGF0ZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5WYWxpZGF0ZSB0aGUgcHJvcGVydGllcyB0aGF0IGhhdmUgYmVlbiBzZXQgZm9yIHRoaXMgbm9uLUhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLiAgSWYgbm8gZXJyb3JzIGFyZSBmb3VuZCwgcmV0dXJuCisgPGNvZGU+bnVsbDwvY29kZT4gb3IgYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3Qgd2l0aCBubworIHJlY29yZGVkIGVycm9yIG1lc3NhZ2VzLgorIDxwPgorIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGF0dGVtcHRzIHRvIGZvcndhcmQgdG8gdGhlIEhUVFAgdmVyc2lvbiBvZgorIHRoaXMgbWV0aG9kLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIG1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZTxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbGlkYXRlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZ1tdIDxCPnZhbGlkYXRlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBpcyB0aGUgU3RydXRzIDAuNSB2ZXJzaW9uIG9mIHZhbGlkYXRpb24gLS0gdXNlIHRoZQorICB2YWxpZGF0ZShBY3Rpb25NYXBwaW5nLEh0dHBTZXJ2bGV0UmVxdWVzdCkgbWV0aG9kIGluc3RlYWQ8L0k+Cis8UD4KKzxERD5QZXJmb3JtIHZhbGlkYXRpb25zIG9uIHRoZSBmb3JtIGlucHV0IHZhbHVlcyBpbmNsdWRlZCBpbiB0aGlzIGZvcm0gYmVhbi4KKyBJZiB2YWxpZGF0aW9uIGVycm9ycyBvY2N1ciwgcmV0dXJuIGEgU3RyaW5nIGFycmF5IGNvbnRhaW5pbmcgdGhlIG1lc3NhZ2UKKyBrZXlzIG9mIGNvcnJlc3BvbmRpbmcgZXJyb3IgbWVzc2FnZXMgKGluIG91ciBhcHBsaWNhdGlvbgorIE1lc3NhZ2VSZXNvdXJjZXMpIHRvIGJlIGRpc3BsYXllZC4gIElmIG5vIHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLAorIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+IDxCPnZhbGlkYXRlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPlZhbGlkYXRlIHRoZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBiZWVuIHNldCBmb3IgdGhpcyBIVFRQIHJlcXVlc3QsCisgYW5kIHJldHVybiBhbiA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyBhbnkKKyB2YWxpZGF0aW9uIGVycm9ycyB0aGF0IGhhdmUgYmVlbiBmb3VuZC4gIElmIG5vIGVycm9ycyBhcmUgZm91bmQsCisgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+IG9yIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHdpdGgKKyBubyByZWNvcmRlZCBlcnJvciBtZXNzYWdlcy4KKyA8cD4KKyBUaGUgZGVmYXVsdCBpcG1sZW1lbnRhdGlvbiBwZXJmb3JtcyBubyB2YWxpZGF0aW9uIGFuZCByZXR1cm5zCisgPGNvZGU+bnVsbDwvY29kZT4uICBTdWJjbGFzc2VzIG11c3Qgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcHJvdmlkZQorIGFueSB2YWxpZGF0aW9uIHRoZXkgd2lzaCB0byBwZXJmb3JtLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIG1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZTxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE5ZTJmYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sCkBAIC0wLDAgKzEsMzQ4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgQWN0aW9uRm9ybUJlYW4KKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25Gb3JtQmVhbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9GT05UPgorPEJSPgorQ2xhc3MgIEFjdGlvbkZvcm1CZWFuPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWN0aW9uRm9ybUJlYW48L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ETD4KKworPFA+CitBbiA8c3Ryb25nPkFjdGlvbkZvcm1CZWFuPC9zdHJvbmc+IGlzIHRoZSBkZWZpbml0aW9uIG9mIGEgZm9ybSBiZWFuIHRoYXQKKyBpcyBsb2FkZWQgZnJvbSBhIDxjb2RlPiZsdDtmb3JtLWJlYW4mZ3Q7PC9jb2RlPiBlbGVtZW50IGluIHRoZSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuICBJdCBjYW4gYmUgc3ViY2xhc3NlZCBhcyBuZWNlc3NhcnkgdG8gYWRkIGFkZGl0aW9uYWwKKyBwcm9wZXJ0aWVzLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbiI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGJlYW4gbmFtZSBvZiB0aGlzIGFjdGlvbiBmb3JtIGJlYW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCN0eXBlIj50eXBlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhpcyBhY3Rpb24gZm9ybSBiZWFuLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwjQWN0aW9uRm9ybUJlYW4oKSI+QWN0aW9uRm9ybUJlYW48L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgYmVhbiBuYW1lIG9mIHRoaXMgYWN0aW9uIGZvcm0gYmVhbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCNnZXRUeXBlKCkiPmdldFR5cGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGlzIGFjdGlvbiBmb3JtIGJlYW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBiZWFuIG5hbWUgb2YgdGhpcyBhY3Rpb24gZm9ybSBiZWFuLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldFR5cGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoaXMgYWN0aW9uIGZvcm0gYmVhbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJlYW4gbmFtZSBvZiB0aGlzIGFjdGlvbiBmb3JtIGJlYW4uPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idHlwZSI+PCEtLSAtLT48L0E+PEgzPgordHlwZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGlzIGFjdGlvbiBmb3JtIGJlYW4uPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvbkZvcm1CZWFuKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbkZvcm1CZWFuPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uRm9ybUJlYW48L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgYmVhbiBuYW1lIG9mIHRoaXMgYWN0aW9uIGZvcm0gYmVhbi48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGJlYW4gbmFtZSBvZiB0aGlzIGFjdGlvbiBmb3JtIGJlYW4uPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBUaGUgbmV3IGJlYW4gbmFtZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VHlwZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRUeXBlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhpcyBhY3Rpb24gZm9ybSBiZWFuLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFR5cGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoaXMgYWN0aW9uIGZvcm0gYmVhbi48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT50eXBlPC9DT0RFPiAtIFRoZSBuZXcgSmF2YSBjbGFzcyBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0b1N0cmluZygpIj48IS0tIC0tPjwvQT48SDM+Cit0b1N0cmluZzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+dG9TdHJpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT50b1N0cmluZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25Gb3JtQmVhbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODZmNjZiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sCkBAIC0wLDAgKzEsMzU4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgQWN0aW9uRm9ybUJlYW5zCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25Gb3JtQmVhbnMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBBY3Rpb25Gb3JtQmVhbnM8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW5zPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWN0aW9uRm9ybUJlYW5zPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorRW5jYXBzdWxhdGUgYSBjb2xsZWN0aW9uIG9mIEFjdGlvbkZvcm1CZWFuIG9iamVjdHMgdGhhdCBjYW4gYmUKKyBhZG1pbmlzdGVyZWQgYW5kIHNlYXJjaGVkLCB3aGlsZSBoaWRpbmcgdGhlIGludGVybmFsIGltcGxlbWVudGF0aW9uLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbnMiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwjZm9ybUJlYW5zIj5mb3JtQmVhbnM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbGxlY3Rpb24gb2YgQWN0aW9uRm9ybUJlYW4gaW5zdGFuY2VzLCBrZXllZCBieSBuYW1lLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sI0FjdGlvbkZvcm1CZWFucygpIj5BY3Rpb25Gb3JtQmVhbnM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCNhZGRGb3JtQmVhbihvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW4pIj5hZGRGb3JtQmVhbjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT4mbmJzcDtmb3JtQmVhbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlZ2lzdGVyIGEgZm9ybSBiZWFuIHRvIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCNmaW5kRm9ybUJlYW4oamF2YS5sYW5nLlN0cmluZykiPmZpbmRGb3JtQmVhbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3JtQmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBsb2dpY2FsIG5hbWUsCisgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sI2ZpbmRGb3JtQmVhbnMoKSI+ZmluZEZvcm1CZWFuczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc2V0IG9mIG5hbWVzIGZvciBmb3JtIGJlYW5zIGRlZmluZWQgaW4gdGhpcyBjb2xsZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCNnZXRGYXN0KCkiPmdldEZhc3Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlICJmYXN0IiBtb2RlIGZsYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sI3JlbW92ZUZvcm1CZWFuKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbikiPnJlbW92ZUZvcm1CZWFuPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPiZuYnNwO2Zvcm1CZWFuKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGVyZWdpc3RlciBhIGZvcm1CZWFuIGZyb20gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sI3NldEZhc3QoYm9vbGVhbikiPnNldEZhc3Q8L0E+PC9CPihib29sZWFuJm5ic3A7ZmFzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgImZhc3QiIG1vZGUgZmxhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImZvcm1CZWFucyI+PCEtLSAtLT48L0E+PEgzPgorZm9ybUJlYW5zPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sIj5GYXN0SGFzaE1hcDwvQT4gPEI+Zm9ybUJlYW5zPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb2xsZWN0aW9uIG9mIEFjdGlvbkZvcm1CZWFuIGluc3RhbmNlcywga2V5ZWQgYnkgbmFtZS48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQWN0aW9uRm9ybUJlYW5zKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbkZvcm1CZWFuczwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFjdGlvbkZvcm1CZWFuczwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0RmFzdCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGYXN0PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRGYXN0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSAiZmFzdCIgbW9kZSBmbGFnLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZhc3QoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZhc3Q8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZhc3Q8L0I+KGJvb2xlYW4mbmJzcDtmYXN0KTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgImZhc3QiIG1vZGUgZmxhZy48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mYXN0PC9DT0RFPiAtIFRoZSBuZXcgZmFzdCBtb2RlIGZsYWc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZEZvcm1CZWFuKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZEZvcm1CZWFuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRGb3JtQmVhbjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPiZuYnNwO2Zvcm1CZWFuKTwvUFJFPgorPERMPgorPEREPlJlZ2lzdGVyIGEgZm9ybSBiZWFuIHRvIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZvcm1CZWFuPC9DT0RFPiAtIFRoZSBmb3JtQmVhbiB0byBiZSBhZGRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRm9ybUJlYW48L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+IDxCPmZpbmRGb3JtQmVhbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmb3JtQmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBsb2dpY2FsIG5hbWUsCisgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTG9naWNhbCBuYW1lIG9mIHRoZSBkZXNpcmVkIGZvcm0gYmVhbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZEZvcm1CZWFucygpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRm9ybUJlYW5zPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZ1tdIDxCPmZpbmRGb3JtQmVhbnM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHNldCBvZiBuYW1lcyBmb3IgZm9ybSBiZWFucyBkZWZpbmVkIGluIHRoaXMgY29sbGVjdGlvbi4KKyBJZiB0aGVyZSBhcmUgbm8gc3VjaCBmb3JtQmVhbnMsIGEgemVyby1sZW5ndGggYXJyYXkgaXMgcmV0dXJuZWQuPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlRm9ybUJlYW4ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorcmVtb3ZlRm9ybUJlYW48L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbW92ZUZvcm1CZWFuPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+Jm5ic3A7Zm9ybUJlYW4pPC9QUkU+Cis8REw+Cis8REQ+RGVyZWdpc3RlciBhIGZvcm1CZWFuIGZyb20gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Zm9ybUJlYW48L0NPREU+IC0gVGhlIGZvcm1CZWFuIHRvIGJlIGRlcmVnaXN0ZXJlZDwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRm9ybUJlYW5zLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQwMmQ4YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwKQEAgLTAsMCArMSw0NjMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBBY3Rpb25Gb3J3YXJkCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkZvcndhcmQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBBY3Rpb25Gb3J3YXJkPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sIj5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+UmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5BY3Rpb25Gb3J3YXJkPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorQW4gPHN0cm9uZz5BY3Rpb25Gb3J3YXJkPC9zdHJvbmc+IHJlcHJlc2VudHMgYSBkZXN0aW5hdGlvbiB0byB3aGljaCB0aGUKKyBjb250cm9sbGVyIHNlcnZsZXQsIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCBtaWdodCBiZSBkaXJlY3RlZCB0bworIHBlcmZvcm0gYSA8Y29kZT5SZXF1ZXN0RGlzcGF0Y2hlci5mb3J3YXJkKCk8L2NvZGU+IG9yCisgPGNvZGU+SHR0cFNlcnZsZXRSZXNwb25zZS5zZW5kUmVkaXJlY3QoKTwvY29kZT4gdG8sIGFzIGEgcmVzdWx0IG9mCisgcHJvY2Vzc2luZyBhY3Rpdml0aWVzIG9mIGFuIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MuICBJbnN0YW5jZXMgb2YgdGhpcworIGNsYXNzIG1heSBiZSBjcmVhdGVkIGR5bmFtaWNhbGx5IGFzIG5lY2Vzc2FyeSwgb3IgY29uZmlndXJlZCBpbiBhc3NvY2lhdGlvbgorIHdpdGggYW4gPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gaW5zdGFuY2UgZm9yIG5hbWVkIGxvb2t1cCBvZiBwb3RlbnRpYWxseQorIG11bHRpcGxlIGRlc3RpbmF0aW9ucyBmb3IgYSBwYXJ0aWN1bGFyIG1hcHBpbmcgaW5zdGFuY2UuCisgPHA+CisgQW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaGFzIHRoZSBmb2xsb3dpbmcgbWluaW1hbCBzZXQgb2YgcHJvcGVydGllcy4KKyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgY2FuIGJlIHByb3ZpZGVkIGFzIG5lZWRlZCBieSBzdWJjbGFzc3Nlcy4KKyA8dWw+CisgPGxpPjxzdHJvbmc+bmFtZTwvc3Ryb25nPiAtIExvZ2ljYWwgbmFtZSBieSB3aGljaCB0aGlzIGluc3RhbmNlIG1heSBiZQorICAgICBsb29rZWQgdXAgaW4gcmVsYXRpb25zaGlwIHRvIGEgcGFydGljdWxhciA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPi4KKyA8bGk+PHN0cm9uZz5wYXRoPC9zdHJvbmc+IC0gQ29udGV4dC1yZWxhdGl2ZSBVUkkgdG8gd2hpY2ggY29udHJvbCBzaG91bGQKKyAgICAgYmUgZm9yd2FyZGVkLCBvciBhbiBhYnNvbHV0ZSBvciByZWxhdGl2ZSBVUkkgdG8gd2hpY2ggY29udHJvbCBzaG91bGQKKyAgICAgYmUgcmVkaXJlY3RlZC4KKyA8bGk+PHN0cm9uZz5yZWRpcmVjdDwvc3Ryb25nPiAtIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgY29udHJvbGxlcgorICAgICBzZXJ2bGV0IHNob3VsZCBjYWxsIDxjb2RlPkh0dHBTZXJ2bGV0UmVzcG9uc2Uuc2VuZFJlZGlyZWN0KCk8L2NvZGU+CisgICAgIG9uIHRoZSBhc3NvY2lhdGVkIHBhdGg7IG90aGVyd2lzZSA8Y29kZT5mYWxzZTwvY29kZT4uICBbZmFsc2VdCisgPC91bD4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBsb2dpY2FsIG5hbWUgb2YgdGhpcyBmb3J3YXJkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI3BhdGgiPnBhdGg8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRleHQtcmVsYXRpdmUgKGZvciBhIGZvcndhcmQpIG9yIHJlbGF0aXZlIG9yIGFic29sdXRlIChmb3IgYQorIHJlZGlyZWN0KSBVUkkgcGF0aCB0byBiZSBmb3J3YXJkZWQgdG8uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjcmVkaXJlY3QiPnJlZGlyZWN0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Nob3VsZCB0aGlzIGJlIGEgcmVkaXJlY3QgaW5zdGVhZCBvZiBhIGZvcndhcmQ/PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI0FjdGlvbkZvcndhcmQoKSI+QWN0aW9uRm9yd2FyZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCNBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhdGguPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI0FjdGlvbkZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPkFjdGlvbkZvcndhcmQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCwKKyAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO3JlZGlyZWN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBwYXRoIGFuZCByZWRpcmVjdCBmbGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCNnZXRQYXRoKCkiPmdldFBhdGg8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHBhdGguPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCNnZXRSZWRpcmVjdCgpIj5nZXRSZWRpcmVjdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgcmVkaXJlY3QgZmxhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI3NldFBhdGgoamF2YS5sYW5nLlN0cmluZykiPnNldFBhdGg8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgcGF0aC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI3NldFJlZGlyZWN0KGJvb2xlYW4pIj5zZXRSZWRpcmVjdDwvQT48L0I+KGJvb2xlYW4mbmJzcDtyZWRpcmVjdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgcmVkaXJlY3QgZmxhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGEgU3RyaW5nIHZlcnNpb24gb2YgdGhpcyBtYXBwaW5nLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsb2dpY2FsIG5hbWUgb2YgdGhpcyBmb3J3YXJkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhdGgiPjwhLS0gLS0+PC9BPjxIMz4KK3BhdGg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhdGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQtcmVsYXRpdmUgKGZvciBhIGZvcndhcmQpIG9yIHJlbGF0aXZlIG9yIGFic29sdXRlIChmb3IgYQorIHJlZGlyZWN0KSBVUkkgcGF0aCB0byBiZSBmb3J3YXJkZWQgdG8uPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVkaXJlY3QiPjwhLS0gLS0+PC9BPjxIMz4KK3JlZGlyZWN0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5yZWRpcmVjdDwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgdGhpcyBiZSBhIHJlZGlyZWN0IGluc3RlYWQgb2YgYSBmb3J3YXJkPzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJBY3Rpb25Gb3J3YXJkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbkZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25Gb3J3YXJkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggZGVmYXVsdCB2YWx1ZXMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uRm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFjdGlvbkZvcndhcmQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgcGF0aC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYXRoPC9DT0RFPiAtIFBhdGggZm9yIHRoaXMgaW5zdGFuY2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkFjdGlvbkZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbkZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25Gb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtyZWRpcmVjdCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhdGggYW5kIHJlZGlyZWN0IGZsYWcuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0aDwvQ09ERT4gLSBQYXRoIGZvciB0aGlzIGluc3RhbmNlPEREPjxDT0RFPnJlZGlyZWN0PC9DT0RFPiAtIFJlZGlyZWN0IGZsYWcgZm9yIHRoaXMgaW5zdGFuY2U8L0RMPgorPC9ERD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbmFtZS48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIG5hbWUuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBUaGUgbmV3IG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhdGgoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGF0aDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGF0aDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgcGF0aC48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYXRoKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXRoPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYXRoPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHBhdGguPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0aDwvQ09ERT4gLSBUaGUgbmV3IHBhdGg8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJlZGlyZWN0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJlZGlyZWN0PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRSZWRpcmVjdDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgcmVkaXJlY3QgZmxhZy48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRSZWRpcmVjdChib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UmVkaXJlY3Q8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFJlZGlyZWN0PC9CPihib29sZWFuJm5ic3A7cmVkaXJlY3QpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSByZWRpcmVjdCBmbGFnLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlZGlyZWN0PC9DT0RFPiAtIFRoZSBuZXcgcmVkaXJlY3QgZmxhZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9TdHJpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgordG9TdHJpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU3RyaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGEgU3RyaW5nIHZlcnNpb24gb2YgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+dG9TdHJpbmc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEubGFuZy5PYmplY3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkZvcndhcmQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhOThjNDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbApAQCAtMCwwICsxLDM1OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEFjdGlvbkZvcndhcmRzCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkZvcndhcmRzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyAgQWN0aW9uRm9yd2FyZHM8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZHM8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5BY3Rpb25Gb3J3YXJkczwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0VuY2Fwc3VsYXRlIGEgY29sbGVjdGlvbiBvZiBBY3Rpb25Gb3J3YXJkIG9iamVjdHMgdGhhdCBjYW4gYmUKKyBhZG1pbmlzdGVyZWQgYW5kIHNlYXJjaGVkLCB3aGlsZSBoaWRpbmcgdGhlIGludGVybmFsIGltcGxlbWVudGF0aW9uLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkcyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNmb3J3YXJkcyI+Zm9yd2FyZHM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbGxlY3Rpb24gb2YgQWN0aW9uRm9yd2FyZCBpbnN0YW5jZXMsIGtleWVkIGJ5IGxvZ2ljYWwgbmFtZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sI0FjdGlvbkZvcndhcmRzKCkiPkFjdGlvbkZvcndhcmRzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNhZGRGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+YWRkRm9yd2FyZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlZ2lzdGVyIGEgbG9naWNhbCBmb3J3YXJkaW5nIHRvIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNmaW5kRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcndhcmQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9yd2FyZGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBsb2dpY2FsIG5hbWUsCisgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwjZmluZEZvcndhcmRzKCkiPmZpbmRGb3J3YXJkczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc2V0IG9mIGxvZ2ljYWwgbmFtZXMgZm9yIGZvcndhcmRzIGRlZmluZWQgaW4gdGhpcyBjb2xsZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sI2dldEZhc3QoKSI+Z2V0RmFzdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgImZhc3QiIG1vZGUgZmxhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNyZW1vdmVGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+cmVtb3ZlRm9yd2FyZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlcmVnaXN0ZXIgYSBmb3J3YXJkaW5nIGZyb20gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwjc2V0RmFzdChib29sZWFuKSI+c2V0RmFzdDwvQT48L0I+KGJvb2xlYW4mbmJzcDtmYXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSAiZmFzdCIgbW9kZSBmbGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZm9yd2FyZHMiPjwhLS0gLS0+PC9BPjxIMz4KK2ZvcndhcmRzPC9IMz4KKzxQUkU+Citwcml2YXRlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+RmFzdEhhc2hNYXA8L0E+IDxCPmZvcndhcmRzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb2xsZWN0aW9uIG9mIEFjdGlvbkZvcndhcmQgaW5zdGFuY2VzLCBrZXllZCBieSBsb2dpY2FsIG5hbWUuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvbkZvcndhcmRzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbkZvcndhcmRzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uRm9yd2FyZHM8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEZhc3QoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmFzdDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0RmFzdDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgImZhc3QiIG1vZGUgZmxhZy48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGYXN0KGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRGYXN0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGYXN0PC9CPihib29sZWFuJm5ic3A7ZmFzdCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlICJmYXN0IiBtb2RlIGZsYWcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmFzdDwvQ09ERT4gLSBUaGUgbmV3IGZhc3QgbW9kZSBmbGFnPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGRGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkRm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkRm9yd2FyZDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4mbmJzcDtmb3J3YXJkKTwvUFJFPgorPERMPgorPEREPlJlZ2lzdGVyIGEgbG9naWNhbCBmb3J3YXJkaW5nIHRvIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZvcndhcmQ8L0NPREU+IC0gVGhlIGZvcndhcmRpbmcgdG8gYmUgYWRkZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPmZpbmRGb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGZvcndhcmRpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIExvZ2ljYWwgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIGZvcndhcmRpbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRGb3J3YXJkcygpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRm9yd2FyZHM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nW10gPEI+ZmluZEZvcndhcmRzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBzZXQgb2YgbG9naWNhbCBuYW1lcyBmb3IgZm9yd2FyZHMgZGVmaW5lZCBpbiB0aGlzIGNvbGxlY3Rpb24uCisgSWYgdGhlcmUgYXJlIG5vIHN1Y2ggZm9yd2FyZHMsIGEgemVyby1sZW5ndGggYXJyYXkgaXMgcmV0dXJuZWQuPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbW92ZUZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbW92ZUZvcndhcmQ8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCk8L1BSRT4KKzxETD4KKzxERD5EZXJlZ2lzdGVyIGEgZm9yd2FyZGluZyBmcm9tIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZvcndhcmQ8L0NPREU+IC0gVGhlIGZvcndhcmRpbmcgdG8gYmUgZGVyZWdpc3RlcmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkZvcndhcmRzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQ5ZjI3YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwKQEAgLTAsMCArMSwxNjgyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgQWN0aW9uTWFwcGluZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ0Jhc2UuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBBY3Rpb25NYXBwaW5nPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nQmFzZS5odG1sIj5BY3Rpb25NYXBwaW5nQmFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sIj5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9TZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sIj5TZXNzaW9uQWN0aW9uTWFwcGluZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWN0aW9uTWFwcGluZzwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0FuIDxzdHJvbmc+QWN0aW9uTWFwcGluZzwvc3Ryb25nPiByZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHRoZQorIGNvbnRyb2xsZXIgc2VydmxldCwgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4sIGtub3dzIGFib3V0IHRoZSBtYXBwaW5nCisgb2YgYSBwYXJ0aWN1bGFyIHJlcXVlc3QgdG8gYW4gaW5zdGFuY2Ugb2YgYSBwYXJ0aWN1bGFyIGFjdGlvbiBjbGFzcy4KKyBUaGUgbWFwcGluZyBpcyBwYXNzZWQgdG8gdGhlIDxjb2RlPnBlcmZvcm0oKTwvY29kZT4gbWV0aG9kIG9mIHRoZSBhY3Rpb24KKyBjbGFzcyBpdHNlbGYsIGVuYWJsaW5nIGFjY2VzcyB0byB0aGlzIGluZm9ybWF0aW9uIGRpcmVjdGx5LgorIDxwPgorIEFuIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IGhhcyB0aGUgZm9sbG93aW5nIG1pbmltYWwgc2V0IG9mIHByb3BlcnRpZXMuCisgQWRkaXRpb25hbCBwcm9wZXJ0aWVzIGNhbiBiZSBhZGRlZCBieSBhIHN1YmNsYXNzLCBzaW1wbHkgYnkKKyBwcm92aWRpbmcgYXBwcm9wcmlhdGUgcHVibGljICJnZXR0ZXIiIGFuZCAic2V0dGVyIiBtZXRob2RzLgorIDx1bD4KKyA8bGk+PGVtPmFjdGlvbkNsYXNzPC9lbT4gLSBGdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZQorICAgICA8Y29kZT5BY3Rpb248L2NvZGU+IGltcGxlbWVudGF0aW9uIGNsYXNzIHVzZWQgYnkgdGhpcyBtYXBwaW5nLiAgVGhpcworICAgICBwcm9wZXJ0eSBpcyByZXF1aXJlZC4gIDxlbT5ERVBSRUNBVEVEIC0gdXNlIDxjb2RlPnR5cGU8L2NvZGU+CisgICAgIGluc3RlYWQ8L2VtPi4KKyA8bGk+PHN0cm9uZz5hdHRyaWJ1dGU8L3N0cm9uZz4gLSBOYW1lIG9mIHRoZSByZXF1ZXN0LXNjb3BlIG9yCisgICAgIHNlc3Npb24tc2NvcGUgYXR0cmlidXRlIHVuZGVyIHdoaWNoIG91ciBmb3JtIGJlYW4gaXMgYWNjZXNzZWQsIGlmIGl0CisgICAgIGlzIG90aGVyIHRoYW4gdGhlIGJlYW4ncyBzcGVjaWZpZWQgbmFtZS4gIFJlcGxhY2VzIHRoZSBvbGQKKyAgICAgPGNvZGU+Zm9ybUF0dHJpYnV0ZTwvY29kZT4gcHJvcGVydHkuCisgPGxpPjxlbT5mb3JtQXR0cmlidXRlPC9lbT4gLSBOYW1lIG9mIHRoZSBzZXNzaW9uIGF0dHJpYnV0ZSB1bmRlcgorICAgICB3aGljaCBhbiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBiZWFuIGlzIGNyZWF0ZWQgYW5kL29yIHVwZGF0ZWQgZm9yCisgICAgIHRoaXMgbWFwcGluZy4gIElmIG5vdCBwcmVzZW50LCBubyA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBiZWFuIHdpbGwKKyAgICAgYmUgbWFpbnRhaW5lZCBhdXRvbWF0aWNhbGx5LiAgPGVtPkRFUFJFQ0FURUQgLSB1c2UKKyAgICAgPGNvZGU+YXR0cmlidXRlPC9jb2RlPiBpbnN0ZWFkLjwvZW0+CisgPGxpPjxlbT5mb3JtQ2xhc3M8L2VtPiAtIEZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlCisgICAgIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGltcGxlbWVudGF0aW9uIGNsYXNzIHVzZWQgYnkgdGhpcyBtYXBwaW5nCisgICAgIChpZiBhbnkpLiAgPGVtPkRFUFJFQ0FURUQgLSB1c2UgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZQorICAgICB0byBsb29rIHVwIHRoZSBjb3JyZXNwb25kaW5nIEFjdGlvbkZvcm1CZWFuIGluZm9ybWF0aW9uPC9lbT4uCisgPGxpPjxlbT5mb3JtUHJlZml4PC9lbT4gLSBQcmVmaXggdXNlZCB0byBtYXRjaCByZXF1ZXN0IHBhcmFtZXRlcgorICAgICBuYW1lcyB3aGVuIHBvcHVsYXRpbmcgdGhlIHByb3BlcnRpZXMgb2Ygb3VyIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+CisgICAgIGJlYW4gKGlmIGFueSkuICA8ZW0+REVQUkVDQVRFRCAtIHVzZSA8Y29kZT5wcmVmaXg8L2NvZGU+CisgICAgIGluc3RlYWQ8L2VtPi4KKyA8bGk+PGVtPmZvcm1TY29wZTwvZW0+IC0gU2NvcGUgd2l0aGluIHdoaWNoIHRoZSBmb3JtIGJlYW4gYXNzb2NpYXRlZAorICAgICB3aXRoIHRoaXMgbWFwcGluZyB3aWxsIGJlIGNyZWF0ZWQgb3IgbG9va2VkIGZvci4gIFZhbGlkIHZhbHVlcyBhcmUKKyAgICAgInJlcXVlc3QiIG9yICJzZXNzaW9uIi4gIDxlbT5ERVBSRUNBVEVEIC0gdXNlIDxjb2RlPnNjb3BlPC9jb2RlPgorICAgICBpbnN0ZWFkPC9lbT4uCisgPGxpPjxlbT5mb3JtU3VmZml4PC9lbT4gLSBTdWZmaXggdXNlZCB0byBtYXRjaCByZXF1ZXN0IHBhcmFtZXRlcgorICAgICBuYW1lcyB3aGVuIHBvcHVsYXRpbmcgdGhlIHByb3BlcnRpZXMgb2Ygb3VyIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+CisgICAgIGJlYW4gKGlmIGFueSkuICA8ZW0+REVQUkVDQVRFRCAtIHVzZSA8Y29kZT5zdWZmaXg8L2NvZGU+CisgICAgIGluc3RlYWQ8L2VtPi4KKyA8bGk+PHN0cm9uZz5mb3J3YXJkPC9zdHJvbmc+IC0gQ29udGV4dC1yZWxhdGl2ZSBwYXRoIG9mIHRoZSByZXNvdXJjZSB0aGF0CisgICAgIHNob3VsZCBzZXJ2ZSB0aGlzIHJlcXVlc3QgKHZpYSBhIGNhbGwgdG8KKyAgICAgPGNvZGU+UmVxdWVzdERpc3BhdGNoZXIuZm9yd2FyZCgpPC9jb2RlPikgaW5zdGVhZCBvZiBpbnN0YW50aWF0aW5nIHRoZQorICAgICBBY3Rpb24gY2xhc3Mgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT50eXBlPC9jb2RlPiBwcm9wZXJ0eS4KKyAgICAgRXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmZvcndhcmQ8L2NvZGU+LCA8Y29kZT5pbmNsdWRlPC9jb2RlPiwgb3IKKyAgICAgPGNvZGU+dHlwZTwvY29kZT4gcHJvcGVydGllcyBtdXN0IGJlIHNwZWNpZmllZC4KKyA8bGk+PHN0cm9uZz5mb3J3YXJkczwvc3Ryb25nPiAtIFRoZSBzZXQgb2YgQWN0aW9uRm9yd2FyZHMgbG9jYWxseQorICAgICBhc3NvY2lhdGVkIHdpdGggdGhpcyBtYXBwaW5nLgorIDxsaT48c3Ryb25nPmluY2x1ZGU8L3N0cm9uZz4gLSBDb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHJlc291cmNlIHRoYXQKKyAgICAgc2hvdWxkIHNlcnZlIHRoaXMgcmVxdWVzdCAodmlhIGEgY2FsbCB0bworICAgICA8Y29kZT5SZXF1ZXN0RGlzcGF0Y2hlci5pbmNsdWRlKCk8L2NvZGU+KSBpbnN0ZWFkIG9mIGluc3RhbnRpYXRpbmcgdGhlCisgICAgIEFjdGlvbiBjbGFzcyBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPnR5cGU8L2NvZGU+IHByb3BlcnR5LgorICAgICBFeGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+Zm9yd2FyZDwvY29kZT4sIDxjb2RlPmluY2x1ZGU8L2NvZGU+LCBvcgorICAgICA8Y29kZT50eXBlPC9jb2RlPiBwcm9wZXJ0aWVzIG11c3QgYmUgc3BlY2lmaWVkLjwvbGk+CisgPGxpPjxzdHJvbmc+aW5wdXQ8L3N0cm9uZz4gLSBDb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGlucHV0IGZvcm0KKyAgICAgdG8gd2hpY2ggY29udHJvbCBzaG91bGQgYmUgcmV0dXJuZWQgaWYgYSB2YWxpZGF0aW9uIGVycm9yIGlzCisgICAgIGVuY291bnRlcmVkLiAgUmVwbGFjZXMgdGhlIG9sZCA8Y29kZT5pbnB1dEZvcm08L2NvZGU+IHByb3BlcnR5LgorIDxsaT48ZW0+aW5wdXRGb3JtPC9lbT4gLSBDb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGlucHV0IGZvcm0KKyAgICAgdG8gd2hpY2ggY29udHJvbCBzaG91bGQgYmUgcmV0dXJuZWQgaWYgYSB2YWxpZGF0aW9uIGVycm9yIGlzCisgICAgIGVuY291bnRlcmVkLiAgPGVtPkRFUFJFQ0FURUQgLSB1c2UgPGNvZGU+aW5wdXQ8L2NvZGU+IGluc3RlYWQ8L2VtPi4KKyA8bGk+PHN0cm9uZz5tYXBwaW5nczwvc3Ryb25nPiAtIFRoZSA8Y29kZT5BY3Rpb25NYXBwaW5nczwvY29kZT4KKyAgICAgY29sbGVjdGlvbiBvZiB3aGljaCB3ZSBhcmUgYSBwYXJ0LgorIDxsaT48c3Ryb25nPm5hbWU8L3N0cm9uZz4gLSBOYW1lIG9mIHRoZSBmb3JtIGJlYW4sIGlmIGFueSwgYXNzb2NpYXRlZAorICAgICB3aXRoIHRoaXMgYWN0aW9uLgorIDxsaT48c3Ryb25nPnBhcmFtZXRlcjwvc3Ryb25nPiAtIEdlbmVyYWwgcHVycG9zZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcgorICAgICB0aGF0IGNhbiBiZSB1c2VkIHRvIHBhc3MgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIDxjb2RlPkFjdGlvbjwvY29kZT4KKyAgICAgc2VsZWN0ZWQgYnkgdGhpcyA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPi4KKyA8bGk+PHN0cm9uZz5wYXRoPC9zdHJvbmc+IC0gUmVxdWVzdCBVUkkgcGF0aCB1c2VkIHRvIHNlbGVjdCB0aGlzIG1hcHBpbmcuCisgICAgIElmIGV4dGVuc2lvbiBtYXBwaW5nIGlzIHVzZWQgZm9yIHRoZSBjb250cm9sbGVyIHNlcnZsZXQsIHRoZSBleHRlbnNpb24KKyAgICAgd2lsbCBiZSBzdHJpcHBlZCBiZWZvcmUgY29tcGFyaXNvbnMgYWdhaW5zdCB0aGlzIHZhbHVlIGFyZSBtYWRlLgorIDxsaT48c3Ryb25nPnByZWZpeDwvc3Ryb25nPiAtIFByZWZpeCB1c2VkIHRvIG1hdGNoIHJlcXVlc3QgcGFyYW1ldGVyCisgICAgIG5hbWVzIHRvIGZvcm0gYmVhbiBwcm9wZXJ0eSBuYW1lcywgaWYgYW55LiAgUmVwbGFjZXMgdGhlIG9sZAorICAgICA8Y29kZT5mb3JtUHJlZml4PC9jb2RlPiBwcm9wZXJ0eS4KKyA8bGk+PHN0cm9uZz5zY29wZTwvc3Ryb25nPiAtIElkZW50aWZpZXIgb2YgdGhlIHNjb3BlICgicmVxdWVzdCIgb3IKKyAgICAgInNlc3Npb24iIHdpdGhpbiB3aGljaCB0aGUgZm9ybSBiZWFuLCBpZiBhbnksIGFzc29jaWF0ZWQgd2l0aCB0aGlzCisgICAgIGFjdGlvbiB3aWxsIGJlIGNyZWF0ZWQuICBSZXBsYWNlcyB0aGUgb2xkIDxjb2RlPmZvcm1TY29wZTwvY29kZT4KKyAgICAgYXR0cmlidXRlLgorIDxsaT48c3Ryb25nPnN1ZmZpeDwvc3Ryb25nPiAtIFN1ZmZpeCB1c2VkIHRvIG1hdGNoIHJlcXVlc3QgcGFyYW1ldGVyCisgICAgIG5hbWVzIHdoZW4gcG9wdWxhdGluZyB0aGUgcHJvcGVydGllcyBvZiBvdXIgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4KKyAgICAgYmVhbiAoaWYgYW55KS4gIFJlcGxhY2VzIHRoZSBvbGQgPGNvZGU+Zm9ybVN1ZmZpeDwvY29kZT4gcHJvcGVydHkuCisgPGxpPjxzdHJvbmc+dHlwZTwvc3Ryb25nPiAtIEZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlCisgICAgIDxjb2RlPkFjdGlvbjwvY29kZT4gaW1wbGVtZW50YXRpb24gY2xhc3MgdXNlZCBieSB0aGlzIG1hcHBpbmcuCisgICAgIFJlcGxhY2VzIHRoZSBvbGQgPGNvZGU+YWN0aW9uQ2xhc3M8L2NvZGU+IHByb3BlcnR5LiAgRXhhY3RseSBvbmUgb2YKKyAgICAgdGhlIDxjb2RlPmZvcndhcmQ8L2NvZGU+LCA8Y29kZT5pbmNsdWRlPC9jb2RlPiwgb3IgPGNvZGU+dHlwZTwvY29kZT4KKyAgICAgcHJvcGVydGllcyBtdXN0IGJlIHNwZWNpZmllZC4KKyA8bGk+PHN0cm9uZz51bmtub3duPC9zdHJvbmc+IC0gU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgYWN0aW9uCisgICAgIHNob3VsZCBiZSBjb25maWd1cmVkIGFzIHRoZSBkZWZhdWx0IGZvciB0aGlzIGFwcGxpY2F0aW9uLCB0byBoYW5kbGUKKyAgICAgYWxsIHJlcXVlc3RzIG5vdCBoYW5kbGVkIGJ5IGFub3RoZXIgYWN0aW9uLiAgT25seSBvbmUgYWN0aW9uIGNhbiBiZQorICAgICBkZWZpbmVkIGFzIGEgZGVmYXVsdCB3aXRoaW4gYSBzaW5nbGUgYXBwbGljYXRpb24uCisgPGxpPjxzdHJvbmc+dmFsaWRhdGU8L3N0cm9uZz4gLSBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlCisgICAgIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiB0aGUgZm9ybSBiZWFuIChpZiBhbnkpIGFzc29jaWF0ZWQKKyAgICAgd2l0aCB0aGlzIG1hcHBpbmcgc2hvdWxkIGJlIGNhbGxlZC4KKyA8L3VsPgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMiAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSByZXF1ZXN0LXNjb3BlIG9yIHNlc3Npb24tc2NvcGUgYXR0cmlidXRlIHVuZGVyIHdoaWNoCisgb3VyIGZvcm0gYmVhbiwgaWYgYW55LCB3aWxsIGJlIGNyZWF0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZm9yd2FyZCI+Zm9yd2FyZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udGV4dCByZWxhdGl2ZSBwYXRoIG9mIHRoZSBzZXJ2bGV0IG9yIEpTUCByZXNvdXJjZSAodG8gYmUgY2FsbGVkCisgdmlhIDxjb2RlPlJlcXVlc3REaXNwYXRjaGVyLmZvcndhcmQoKTwvY29kZT4pIHRoYXQgd2lsbCBwcm9jZXNzIHRoaXMKKyByZXF1ZXN0LCByYXRoZXIgdGhhbiBpbnN0YW50aWF0aW5nIGFuZCBjYWxsaW5nIHRoZSBBY3Rpb24gY2xhc3MgdGhhdCBpcworIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+dHlwZTwvY29kZT4gYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPkFjdGlvbkZvcndhcmRzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2ZvcndhcmRzIj5mb3J3YXJkczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2V0IG9mIEFjdGlvbkZvcndhcmQgb2JqZWN0cyBhc3NvY2lhdGVkIHdpdGggdGhpcyBtYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2luY2x1ZGUiPmluY2x1ZGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRleHQgcmVsYXRpdmUgcGF0aCBvZiB0aGUgc2VydmxldCBvciBKU1AgcmVzb3VyY2UgKHRvIGJlIGNhbGxlZAorIHZpYSA8Y29kZT5SZXF1ZXN0RGlzcGF0Y2hlci5pbmNsdWRlKCk8L2NvZGU+KSB0aGF0IHdpbGwgcHJvY2VzcyB0aGlzCisgcmVxdWVzdCwgcmF0aGVyIHRoYW4gaW5zdGFudGlhdGluZyBhbmQgY2FsbGluZyB0aGUgQWN0aW9uIGNsYXNzIHRoYXQgaXMKKyBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPnR5cGU8L2NvZGU+IGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNpbnB1dCI+aW5wdXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgaW5wdXQgZm9ybSB0byB3aGljaCBjb250cm9sIHNob3VsZAorIGJlIHJldHVybmVkIGlmIGEgdmFsaWRhdGlvbiBlcnJvciBpcyBlbmNvdW50ZXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2luc3RhbmNlIj5pbnN0YW5jZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgaW5pdGlhbGl6ZWQgPGNvZGU+QWN0aW9uPC9jb2RlPiBpbnN0YW5jZSBmb3IgdGhpcyBtYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI21hcHBpbmdzIj5tYXBwaW5nczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgPGNvZGU+QWN0aW9uTWFwcGluZ3M8L2NvZGU+IGNvbGxlY3Rpb24gb2Ygd2hpY2ggd2UgYXJlIGEgcGFydC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNtdWx0aXBhcnRDbGFzcyI+bXVsdGlwYXJ0Q2xhc3M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIG9mIHRoZSA8Y29kZT5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvY29kZT4KKyBpbXBsZW1lbnRhdGlvbiBjbGFzcyB1c2VkIHRvIHByb2Nlc3MgbXVsdGlwYXJ0IHJlcXVlc3QgZGF0YSBmb3IgdGhpcyBtYXBwaW5nPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgZm9ybSBiZWFuLCBpZiBhbnksIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGFjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmFsIHB1cnBvc2UgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgZm9yIHRoaXMgbWFwcGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNwYXRoIj5wYXRoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHN1Ym1pdHRlZCByZXF1ZXN0LCBzdGFydGluZyB3aXRoIGEKKyAiLyIgY2hhcmFjdGVyLCBhbmQgd2l0aG91dCB0aGUgZmlsZW5hbWUgZXh0ZW5zaW9uIChpZiBhbnkpLCB0aGF0IGlzCisgbWFwcGVkIHRvIHRoaXMgYWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3ByZWZpeCI+cHJlZml4PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBwYXJhbWV0ZXIgbmFtZSBwcmVmaXggdXNlZCB0byBzZWxlY3QgcGFyYW1ldGVycyBmb3IgdGhpcyBhY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2NvcGUiPnNjb3BlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBpZGVudGlmaWVyIG9mIHRoZSBzY29wZSAoInJlcXVlc3QiIG9yICJzZXNzaW9uIikgdW5kZXIgd2hpY2ggdGhlCisgZm9ybSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hcHBpbmcsIGlmIGFueSwgc2hvdWxkIGJlIGNyZWF0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc3VmZml4Ij5zdWZmaXg8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHBhcmFtZXRlciBuYW1lIHN1ZmZpeCB1c2VkIHRvIHNlbGVjdCBwYXJhbWV0ZXJzIGZvciB0aGlzIGFjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCN0eXBlIj50eXBlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb248L2NvZGU+CisgaW1wbGVtZW50YXRpb24gY2xhc3MgdG8gYmUgdXNlZCB0byBwcm9jZXNzIHJlcXVlc3RzIGZvciB0aGlzIG1hcHBpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjdW5rbm93biI+dW5rbm93bjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTaG91bGQgdGhpcyBhY3Rpb24gYmUgdGhlIGRlZmF1bHQgZm9yIHRoaXMgYXBwbGljYXRpb24/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjdmFsaWRhdGUiPnZhbGlkYXRlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Nob3VsZCB0aGUgdmFsaWRhdGUoKSBtZXRob2Qgb2Ygb3VyIGZvcm0gYmVhbiBiZSBjYWxsZWQ/PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI0FjdGlvbk1hcHBpbmcoKSI+QWN0aW9uTWFwcGluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNhZGRGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+YWRkRm9yd2FyZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ldyA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBhc3NvY2lhdGVkIHdpdGggdGhpcyBtYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2NyZWF0ZUZvcm1JbnN0YW5jZSgpIj5jcmVhdGVGb3JtSW5zdGFuY2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5DcmVhdGlvbiBvZiBBY3Rpb25Gb3JtIGluc3RhbmNlcyBpcyBub3cgdGhlIHJlc3BvbnNpYmlsaXR5CisgIG9mIHRoZSBjb250cm9sbGVyIHNlcnZsZXQ8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZmluZEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPmZpbmRGb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZ1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZmluZEZvcndhcmRzKCkiPmZpbmRGb3J3YXJkczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbG9naWNhbCBuYW1lcyBvZiBhbGwgbG9jYWxseSBkZWZpbmVkIGZvcndhcmRzIGZvciB0aGlzCisgbWFwcGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldEFjdGlvbkNsYXNzKCkiPmdldEFjdGlvbkNsYXNzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGdldFR5cGUoKSBpbnN0ZWFkPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0QXR0cmlidXRlKCkiPmdldEF0dHJpYnV0ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgYXR0cmlidXRlIG5hbWUgZm9yIG91ciBmb3JtIGJlYW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRGb3JtQXR0cmlidXRlKCkiPmdldEZvcm1BdHRyaWJ1dGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgZ2V0QXR0cmlidXRlKCkgaW5zdGVhZDwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldEZvcm1DbGFzcygpIj5nZXRGb3JtQ2xhc3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIGJlYW4gbmFtZSB0byBsb29rIHVwIHRoZSBjb3JyZXNwb25kaW5nCisgIEFjdGlvbkZvcm1CZWFuIGluc3RlYWQ8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRGb3JtUHJlZml4KCkiPmdldEZvcm1QcmVmaXg8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgZ2V0UHJlZml4KCkgaW5zdGVhZDwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldEZvcm1TY29wZSgpIj5nZXRGb3JtU2NvcGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgZ2V0U2NvcGUoKSBpbnN0ZWFkPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0Rm9ybVN1ZmZpeCgpIj5nZXRGb3JtU3VmZml4PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGdldFN1ZmZpeCgpIGluc3RlYWQ8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRGb3J3YXJkKCkiPmdldEZvcndhcmQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcndhcmQgcGF0aCBmb3IgdGhpcyBtYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0SW5jbHVkZSgpIj5nZXRJbmNsdWRlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBpbmNsdWRlIHBhdGggZm9yIHRoaXMgbWFwcGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldElucHV0KCkiPmdldElucHV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBpbnB1dCBmb3JtIHBhdGggZm9yIHRoaXMgbWFwcGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldElucHV0Rm9ybSgpIj5nZXRJbnB1dEZvcm08L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgZ2V0SW5wdXQoKSBpbnN0ZWFkPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0TWFwcGluZ3MoKSI+Z2V0TWFwcGluZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIDxjb2RlPkFjdGlvbk1hcHBpbmdzPC9jb2RlPiBjb2xsZWN0aW9uIG9mIHdoaWNoCisgd2UgYXJlIGEgcGFydC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldE11bHRpcGFydENsYXNzKCkiPmdldE11bHRpcGFydENsYXNzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBuYW1lIG9mIHRoZSBjbGFzcyB1c2VkIHRvIGhhbmRsZSBtdWx0aXBhcnQgcmVxdWVzdCBkYXRhPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGZvcm0gYmVhbiBmb3IgdGhpcyBtYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZ2VuZXJhbCBwdXJwb3NlIGNvbmZpZ3VhdGlvbiBwYXJhbWV0ZXIgZm9yIHRoaXMgbWFwcGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldFBhdGgoKSI+Z2V0UGF0aDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgcmVxdWVzdCBVUkkgcGF0aCB1c2VkIHRvIHNlbGVjdCB0aGlzIG1hcHBpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRQcmVmaXgoKSI+Z2V0UHJlZml4PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBwYXJhbWV0ZXIgbmFtZSBwcmVmaXggZm9yIHRoaXMgbWFwcGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBhdHRyaWJ1dGUgc2NvcGUgZm9yIHRoaXMgbWFwcGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldFN1ZmZpeCgpIj5nZXRTdWZmaXg8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHBhcmFtZXRlciBuYW1lIHN1ZmZpeCBmb3IgdGhpcyBtYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0VHlwZSgpIj5nZXRUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmdWxseSBxdWFsaWZpZWQgQWN0aW9uIGNsYXNzIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRVbmtub3duKCkiPmdldFVua25vd248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHVua25vd24gZmxhZyBmb3IgdGhpcyBtYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0VmFsaWRhdGUoKSI+Z2V0VmFsaWRhdGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHZhbGlkYXRlIGZsYWcgZm9yIHRoaXMgbWFwcGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3JlbW92ZUZvcndhcmQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQpIj5yZW1vdmVGb3J3YXJkPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4mbmJzcDtmb3J3YXJkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIGEgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFwcGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEFjdGlvbkNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY3Rpb25DbGFzczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb25DbGFzcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBzZXRUeXBlKFN0cmluZykgaW5zdGVhZDwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2F0dHJpYnV0ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgYXR0cmlidXRlIG5hbWUgZm9yIG91ciBmb3JtIGJlYW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRGb3JtQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3JtQXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2Zvcm1BdHRyaWJ1dGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2Ugc2V0QXR0cmlidXRlKFN0cmluZykgaW5zdGVhZDwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEZvcm1DbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9ybUNsYXNzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2Zvcm1DbGFzcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPk1vZGlmeSB0aGUgY29ycmVzcG9uZGluZyBBY3Rpb25Gb3JtQmVhbiBpbnN0ZWFkPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0Rm9ybVByZWZpeChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9ybVByZWZpeDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3JtUHJlZml4KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHNldFByZWZpeChTdHJpbmcpIGluc3RlYWQ8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRGb3JtU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcm1TY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3JtU2NvcGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2Ugc2V0U2NvcGUoU3RyaW5nKSBpbnN0ZWFkPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0Rm9ybVN1ZmZpeChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9ybVN1ZmZpeDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3JtU3VmZml4KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHNldFN1ZmZpeChTdHJpbmcpIGluc3RlYWQ8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZvcndhcmQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGZvcndhcmQgcGF0aCBmb3IgdGhpcyBtYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0SW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW5jbHVkZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpbmNsdWRlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBpbmNsdWRlIHBhdGggZm9yIHRoaXMgbWFwcGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldElucHV0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRJbnB1dDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpbnB1dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgaW5wdXQgZm9ybSBwYXRoIGZvciB0aGlzIG1hcHBpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRJbnB1dEZvcm0oamF2YS5sYW5nLlN0cmluZykiPnNldElucHV0Rm9ybTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpbnB1dEZvcm0pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2Ugc2V0SW5wdXQoU3RyaW5nKSBpbnN0ZWFkPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0TWFwcGluZ3Mob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzKSI+c2V0TWFwcGluZ3M8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+Jm5ic3A7bWFwcGluZ3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIDxjb2RlPkFjdGlvbk1hcHBpbmdzPC9jb2RlPiBjb2xsZWN0aW9uIG9mIHdoaWNoCisgd2UgYXJlIGEgcGFydC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldE11bHRpcGFydENsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNdWx0aXBhcnRDbGFzczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttdWx0aXBhcnRDbGFzcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgbmFtZSBvZiB0aGUgY2xhc3MgdXNlZCB0byBoYW5kbGUgbXVsdGlwYXJ0IHJlcXVlc3QgZGF0YTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBuYW1lIG9mIHRoZSBmb3JtIGJlYW4gZm9yIHRoaXMgbWFwcGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtZXRlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgZ2VuZXJhbCBwdXJwb3NlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGZvciB0aGlzIG1hcHBpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRQYXRoKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXRoPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHJlcXVlc3QgVVJJIHBhdGggdXNlZCB0byBzZWxlY3QgdGhpcyBtYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0UHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcmVmaXg8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBwYXJhbWV0ZXIgbmFtZSBwcmVmaXggZm9yIHRoaXMgbWFwcGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgYXR0cmlidXRlIHNjb3BlIGZvciB0aGlzIG1hcHBpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRTdWZmaXgoamF2YS5sYW5nLlN0cmluZykiPnNldFN1ZmZpeDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdWZmaXgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHBhcmFtZXRlciBuYW1lIHN1ZmZpeCBmb3IgdGhpcyBtYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VHlwZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBmdWxseSBxdWFsaWZpZWQgQWN0aW9uIGNsYXNzIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRVbmtub3duKGJvb2xlYW4pIj5zZXRVbmtub3duPC9BPjwvQj4oYm9vbGVhbiZuYnNwO3Vua25vd24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHVua25vd24gZmxhZyBmb3IgdGhpcyBtYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0VmFsaWRhdGUoYm9vbGVhbikiPnNldFZhbGlkYXRlPC9BPjwvQj4oYm9vbGVhbiZuYnNwO3ZhbGlkYXRlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSB2YWxpZGF0ZSBmbGFnIGZvciB0aGlzIG1hcHBpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBhIFN0cmluZyB2ZXJzaW9uIG9mIHRoaXMgbWFwcGluZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYXR0cmlidXRlIj48IS0tIC0tPjwvQT48SDM+CithdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmF0dHJpYnV0ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcmVxdWVzdC1zY29wZSBvciBzZXNzaW9uLXNjb3BlIGF0dHJpYnV0ZSB1bmRlciB3aGljaAorIG91ciBmb3JtIGJlYW4sIGlmIGFueSwgd2lsbCBiZSBjcmVhdGVkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvcndhcmQiPjwhLS0gLS0+PC9BPjxIMz4KK2ZvcndhcmQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmZvcndhcmQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQgcmVsYXRpdmUgcGF0aCBvZiB0aGUgc2VydmxldCBvciBKU1AgcmVzb3VyY2UgKHRvIGJlIGNhbGxlZAorIHZpYSA8Y29kZT5SZXF1ZXN0RGlzcGF0Y2hlci5mb3J3YXJkKCk8L2NvZGU+KSB0aGF0IHdpbGwgcHJvY2VzcyB0aGlzCisgcmVxdWVzdCwgcmF0aGVyIHRoYW4gaW5zdGFudGlhdGluZyBhbmQgY2FsbGluZyB0aGUgQWN0aW9uIGNsYXNzIHRoYXQgaXMKKyBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPnR5cGU8L2NvZGU+IGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJmb3J3YXJkcyI+PCEtLSAtLT48L0E+PEgzPgorZm9yd2FyZHM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+QWN0aW9uRm9yd2FyZHM8L0E+IDxCPmZvcndhcmRzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgQWN0aW9uRm9yd2FyZCBvYmplY3RzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hcHBpbmcuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5jbHVkZSI+PCEtLSAtLT48L0E+PEgzPgoraW5jbHVkZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aW5jbHVkZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29udGV4dCByZWxhdGl2ZSBwYXRoIG9mIHRoZSBzZXJ2bGV0IG9yIEpTUCByZXNvdXJjZSAodG8gYmUgY2FsbGVkCisgdmlhIDxjb2RlPlJlcXVlc3REaXNwYXRjaGVyLmluY2x1ZGUoKTwvY29kZT4pIHRoYXQgd2lsbCBwcm9jZXNzIHRoaXMKKyByZXF1ZXN0LCByYXRoZXIgdGhhbiBpbnN0YW50aWF0aW5nIGFuZCBjYWxsaW5nIHRoZSBBY3Rpb24gY2xhc3MgdGhhdCBpcworIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+dHlwZTwvY29kZT4gYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlucHV0Ij48IS0tIC0tPjwvQT48SDM+CitpbnB1dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aW5wdXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgaW5wdXQgZm9ybSB0byB3aGljaCBjb250cm9sIHNob3VsZAorIGJlIHJldHVybmVkIGlmIGEgdmFsaWRhdGlvbiBlcnJvciBpcyBlbmNvdW50ZXJlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbnN0YW5jZSI+PCEtLSAtLT48L0E+PEgzPgoraW5zdGFuY2U8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4gPEI+aW5zdGFuY2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGluaXRpYWxpemVkIDxjb2RlPkFjdGlvbjwvY29kZT4gaW5zdGFuY2UgZm9yIHRoaXMgbWFwcGluZy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXBwaW5ncyI+PCEtLSAtLT48L0E+PEgzPgorbWFwcGluZ3M8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+IDxCPm1hcHBpbmdzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSA8Y29kZT5BY3Rpb25NYXBwaW5nczwvY29kZT4gY29sbGVjdGlvbiBvZiB3aGljaCB3ZSBhcmUgYSBwYXJ0LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im11bHRpcGFydENsYXNzIj48IS0tIC0tPjwvQT48SDM+CittdWx0aXBhcnRDbGFzczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bXVsdGlwYXJ0Q2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIG9mIHRoZSA8Y29kZT5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvY29kZT4KKyBpbXBsZW1lbnRhdGlvbiBjbGFzcyB1c2VkIHRvIHByb2Nlc3MgbXVsdGlwYXJ0IHJlcXVlc3QgZGF0YSBmb3IgdGhpcyBtYXBwaW5nPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZm9ybSBiZWFuLCBpZiBhbnksIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGFjdGlvbi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJhbWV0ZXIiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcmFtZXRlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1ldGVyPC9CPjwvUFJFPgorPERMPgorPEREPkdlbmVyYWwgcHVycG9zZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBmb3IgdGhpcyBtYXBwaW5nLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhdGgiPjwhLS0gLS0+PC9BPjxIMz4KK3BhdGg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhdGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgc3VibWl0dGVkIHJlcXVlc3QsIHN0YXJ0aW5nIHdpdGggYQorICIvIiBjaGFyYWN0ZXIsIGFuZCB3aXRob3V0IHRoZSBmaWxlbmFtZSBleHRlbnNpb24gKGlmIGFueSksIHRoYXQgaXMKKyBtYXBwZWQgdG8gdGhpcyBhY3Rpb24uPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJlZml4Ij48IS0tIC0tPjwvQT48SDM+CitwcmVmaXg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByZWZpeDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcGFyYW1ldGVyIG5hbWUgcHJlZml4IHVzZWQgdG8gc2VsZWN0IHBhcmFtZXRlcnMgZm9yIHRoaXMgYWN0aW9uLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNjb3BlIj48IS0tIC0tPjwvQT48SDM+CitzY29wZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGlkZW50aWZpZXIgb2YgdGhlIHNjb3BlICgicmVxdWVzdCIgb3IgInNlc3Npb24iKSB1bmRlciB3aGljaCB0aGUKKyBmb3JtIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFwcGluZywgaWYgYW55LCBzaG91bGQgYmUgY3JlYXRlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzdWZmaXgiPjwhLS0gLS0+PC9BPjxIMz4KK3N1ZmZpeDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c3VmZml4PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwYXJhbWV0ZXIgbmFtZSBzdWZmaXggdXNlZCB0byBzZWxlY3QgcGFyYW1ldGVycyBmb3IgdGhpcyBhY3Rpb24uPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idHlwZSI+PCEtLSAtLT48L0E+PEgzPgordHlwZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPgorIGltcGxlbWVudGF0aW9uIGNsYXNzIHRvIGJlIHVzZWQgdG8gcHJvY2VzcyByZXF1ZXN0cyBmb3IgdGhpcyBtYXBwaW5nLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InVua25vd24iPjwhLS0gLS0+PC9BPjxIMz4KK3Vua25vd248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnVua25vd248L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHRoaXMgYWN0aW9uIGJlIHRoZSBkZWZhdWx0IGZvciB0aGlzIGFwcGxpY2F0aW9uPzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbGlkYXRlIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+dmFsaWRhdGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHRoZSB2YWxpZGF0ZSgpIG1ldGhvZCBvZiBvdXIgZm9ybSBiZWFuIGJlIGNhbGxlZD88L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQWN0aW9uTWFwcGluZygpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25NYXBwaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uTWFwcGluZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0QWN0aW9uQ2xhc3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWN0aW9uQ2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFjdGlvbkNsYXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGdldFR5cGUoKSBpbnN0ZWFkPC9JPgorPFA+Cis8REQ+UmV0dXJuIHRoZSBhY3Rpb24gY2xhc3MgbmFtZSBmb3IgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEFjdGlvbkNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRBY3Rpb25DbGFzczwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QWN0aW9uQ2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb25DbGFzcyk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2Ugc2V0VHlwZShTdHJpbmcpIGluc3RlYWQ8L0k+Cis8UD4KKzxERD5TZXQgdGhlIGFjdGlvbiBjbGFzcyBuYW1lIGZvciB0aGlzIG1hcHBpbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YWN0aW9uQ2xhc3M8L0NPREU+IC0gVGhlIG5ldyBhY3Rpb24gY2xhc3MgbmFtZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QXR0cmlidXRlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QXR0cmlidXRlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBhdHRyaWJ1dGUgbmFtZSBmb3Igb3VyIGZvcm0gYmVhbi48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QXR0cmlidXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YXR0cmlidXRlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgYXR0cmlidXRlIG5hbWUgZm9yIG91ciBmb3JtIGJlYW4uPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YXR0cmlidXRlPC9DT0RFPiAtIFRoZSBuZXcgYXR0cmlidXRlIG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZvcm1BdHRyaWJ1dGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Rm9ybUF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Rm9ybUF0dHJpYnV0ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBnZXRBdHRyaWJ1dGUoKSBpbnN0ZWFkPC9JPgorPFA+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3IgdGhpcyBtYXBwaW5nLCBpZiBhbnkuPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Rm9ybUF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Rm9ybUF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Rm9ybUF0dHJpYnV0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2Zvcm1BdHRyaWJ1dGUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHNldEF0dHJpYnV0ZShTdHJpbmcpIGluc3RlYWQ8L0k+Cis8UD4KKzxERD5TZXQgdGhlIGZvcm0gc2Vzc2lvbiBhdHRyaWJ1dGUga2V5IGZvciB0aGlzIG1hcHBpbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Zm9ybUF0dHJpYnV0ZTwvQ09ERT4gLSBUaGUgbmV3IGZvcm0gc2Vzc2lvbiBhdHRyaWJ1dGUga2V5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGb3JtQ2xhc3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Rm9ybUNsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGb3JtQ2xhc3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIGJlYW4gbmFtZSB0byBsb29rIHVwIHRoZSBjb3JyZXNwb25kaW5nCisgIEFjdGlvbkZvcm1CZWFuIGluc3RlYWQ8L0k+Cis8UD4KKzxERD5SZXR1cm4gdGhlIGZvcm0gY2xhc3MgbmFtZSBmb3IgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZvcm1DbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Rm9ybUNsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGb3JtQ2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3JtQ2xhc3MpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+TW9kaWZ5IHRoZSBjb3JyZXNwb25kaW5nIEFjdGlvbkZvcm1CZWFuIGluc3RlYWQ8L0k+Cis8UD4KKzxERD5TZXQgdGhlIGZvcm0gY2xhc3MgbmFtZSBmb3IgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZvcm1DbGFzczwvQ09ERT4gLSBUaGUgbmV3IGZvcm0gY2xhc3MgbmFtZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Rm9ybVByZWZpeCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGb3JtUHJlZml4PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGb3JtUHJlZml4PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGdldFByZWZpeCgpIGluc3RlYWQ8L0k+Cis8UD4KKzxERD5SZXR1cm4gdGhlIGZvcm0gcGFyYW1ldGVyIG5hbWUgcHJlZml4IGZvciB0aGlzIG1hcHBpbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Rm9ybVByZWZpeChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Rm9ybVByZWZpeDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Rm9ybVByZWZpeDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2Zvcm1QcmVmaXgpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHNldFByZWZpeChTdHJpbmcpIGluc3RlYWQ8L0k+Cis8UD4KKzxERD5TZXQgdGhlIGZvcm0gcGFyYW1ldGVyIG5hbWUgcHJlZml4IGZvciB0aGlzIG1hcHBpbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Zm9ybVByZWZpeDwvQ09ERT4gLSBUaGUgbmV3IGZvcm0gcHJlZml4PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGb3JtU2NvcGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Rm9ybVNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGb3JtU2NvcGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgZ2V0U2NvcGUoKSBpbnN0ZWFkPC9JPgorPFA+Cis8REQ+UmV0dXJuIHRoZSBzY29wZSB3aXRoaW4gd2hpY2ggb3VyIGZvcm0gYmVhbiB3aWxsIGJlIGFjY2Vzc2VkLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZvcm1TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Rm9ybVNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGb3JtU2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3JtU2NvcGUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHNldFNjb3BlKFN0cmluZykgaW5zdGVhZDwvST4KKzxQPgorPEREPlNldCB0aGUgc2NvcGUgd2l0aGluIHdoaWNoIG91ciBmb3JtIGJlYW4gd2lsbCBiZSBhY2Nlc3NlZC48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mb3JtU2NvcGU8L0NPREU+IC0gVGhlIG5ldyBzY29wZSAoInJlcXVlc3QiIG9yICJzZXNzaW9uIik8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZvcm1TdWZmaXgoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Rm9ybVN1ZmZpeDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Rm9ybVN1ZmZpeDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBnZXRTdWZmaXgoKSBpbnN0ZWFkPC9JPgorPFA+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIHBhcmFtZXRlciBuYW1lIHN1ZmZpeCBmb3IgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZvcm1TdWZmaXgoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZvcm1TdWZmaXg8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZvcm1TdWZmaXg8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3JtU3VmZml4KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBzZXRTdWZmaXgoU3RyaW5nKSBpbnN0ZWFkPC9JPgorPFA+Cis8REQ+U2V0IHRoZSBmb3JtIHBhcmFtZXRlciBuYW1lIHN1ZmZpeCBmb3IgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZvcm1TdWZmaXg8L0NPREU+IC0gVGhlIG5ldyBmb3JtIHN1ZmZpeDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Rm9yd2FyZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGb3J3YXJkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmb3J3YXJkIHBhdGggZm9yIHRoaXMgbWFwcGluZy48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9yd2FyZCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGZvcndhcmQgcGF0aCBmb3IgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZvcndhcmQ8L0NPREU+IC0gVGhlIGZvcndhcmQgcGF0aCBmb3IgdGhpcyBtYXBwaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJbmNsdWRlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEluY2x1ZGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEluY2x1ZGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGluY2x1ZGUgcGF0aCBmb3IgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEluY2x1ZGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEluY2x1ZGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEluY2x1ZGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpbmNsdWRlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgaW5jbHVkZSBwYXRoIGZvciB0aGlzIG1hcHBpbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aW5jbHVkZTwvQ09ERT4gLSBUaGUgaW5jbHVkZSBwYXRoIGZvciB0aGlzIG1hcHBpbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldElucHV0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElucHV0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRJbnB1dDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgaW5wdXQgZm9ybSBwYXRoIGZvciB0aGlzIG1hcHBpbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SW5wdXQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElucHV0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRJbnB1dDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lucHV0KTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgaW5wdXQgZm9ybSBwYXRoIGZvciB0aGlzIG1hcHBpbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aW5wdXQ8L0NPREU+IC0gVGhlIG5ldyBpbnB1dCBmb3JtIHBhdGg8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldElucHV0Rm9ybSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJbnB1dEZvcm08L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldElucHV0Rm9ybTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBnZXRJbnB1dCgpIGluc3RlYWQ8L0k+Cis8UD4KKzxERD5SZXR1cm4gdGhlIGlucHV0IGZvcm0gVVJJIGZvciB0aGlzIG1hcHBpbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SW5wdXRGb3JtKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRJbnB1dEZvcm08L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldElucHV0Rm9ybTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lucHV0Rm9ybSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2Ugc2V0SW5wdXQoU3RyaW5nKSBpbnN0ZWFkPC9JPgorPFA+Cis8REQ+U2V0IHRoZSBpbnB1dCBmb3JtIFVSSSBmb3IgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmlucHV0Rm9ybTwvQ09ERT4gLSBUaGUgbmV3IGlucHV0IGZvcm0gVVJJPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNYXBwaW5ncygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNYXBwaW5nczwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5BY3Rpb25NYXBwaW5nczwvQT4gPEI+Z2V0TWFwcGluZ3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIDxjb2RlPkFjdGlvbk1hcHBpbmdzPC9jb2RlPiBjb2xsZWN0aW9uIG9mIHdoaWNoCisgd2UgYXJlIGEgcGFydC48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNdWx0aXBhcnRDbGFzcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNdWx0aXBhcnRDbGFzczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TXVsdGlwYXJ0Q2xhc3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIG5hbWUgb2YgdGhlIGNsYXNzIHVzZWQgdG8gaGFuZGxlIG11bHRpcGFydCByZXF1ZXN0IGRhdGE8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlJldHVybnM6PC9CPjxERD5BIGZ1bGx5IHF1YWxpZmllZCBqYXZhIGNsYXNzIG5hbWUgcmVwcmVzZW50aW5nIHRoZSBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAgICAgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgdG8gdXNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TWFwcGluZ3Mob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TWFwcGluZ3M8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE1hcHBpbmdzPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+Jm5ic3A7bWFwcGluZ3MpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSA8Y29kZT5BY3Rpb25NYXBwaW5nczwvY29kZT4gY29sbGVjdGlvbiBvZiB3aGljaAorIHdlIGFyZSBhIHBhcnQuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZ3M8L0NPREU+IC0gVGhlIG5ldyBBY3Rpb25NYXBwaW5ncyBjb2xsZWN0aW9uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNdWx0aXBhcnRDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TXVsdGlwYXJ0Q2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE11bHRpcGFydENsYXNzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bXVsdGlwYXJ0Q2xhc3MpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBuYW1lIG9mIHRoZSBjbGFzcyB1c2VkIHRvIGhhbmRsZSBtdWx0aXBhcnQgcmVxdWVzdCBkYXRhPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bXVsdGlwYXJ0Q2xhc3M8L0NPREU+IC0gVGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIHJlcHJlc2VudGluZyB0aGUKKyAgICAgICAgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgY2xhc3MgdG8gdXNlLiAgSWYgPGNvZGU+bnVsbDwvY29kZT4sIAorICAgICAgICB0aGUgZ2xvYmFsIGNsYXNzIHNwZWNpZmllZCBpbiAid2ViLnhtbCIgd2lsbCBiZSB1c2VkLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBmb3JtIGJlYW4gZm9yIHRoaXMgbWFwcGluZy48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIG5hbWUgb2YgdGhlIGZvcm0gYmVhbiBmb3IgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gVGhlIG5ldyBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXJhbWV0ZXIoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFyYW1ldGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYXJhbWV0ZXI8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGdlbmVyYWwgcHVycG9zZSBjb25maWd1YXRpb24gcGFyYW1ldGVyIGZvciB0aGlzIG1hcHBpbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbWV0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtZXRlcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtZXRlcik8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGdlbmVyYWwgcHVycG9zZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBmb3IgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhcmFtZXRlcjwvQ09ERT4gLSBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXRoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhdGg8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhdGg8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHJlcXVlc3QgVVJJIHBhdGggdXNlZCB0byBzZWxlY3QgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhdGgoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhdGg8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhdGg8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgcmVxdWVzdCBVUkkgcGF0aCB1c2VkIHRvIHNlbGVjdCB0aGlzIG1hcHBpbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0aDwvQ09ERT4gLSBUaGUgbmV3IHJlcXVlc3QgVVJJIHBhdGg8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByZWZpeCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcmVmaXg8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByZWZpeDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgcGFyYW1ldGVyIG5hbWUgcHJlZml4IGZvciB0aGlzIG1hcHBpbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcmVmaXg8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByZWZpeDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ByZWZpeCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHBhcmFtZXRlciBuYW1lIHByZWZpeCBmb3IgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByZWZpeDwvQ09ERT4gLSBUaGUgbmV3IHBhcmFtZXRlciBuYW1lIHByZWZpeDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2NvcGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFNjb3BlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBhdHRyaWJ1dGUgc2NvcGUgZm9yIHRoaXMgbWFwcGluZy48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNjb3BlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBhdHRyaWJ1dGUgc2NvcGUgZm9yIHRoaXMgbWFwcGluZy48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zY29wZTwvQ09ERT4gLSBUaGUgbmV3IGF0dHJpYnV0ZSBzY29wZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U3VmZml4KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFN1ZmZpeDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U3VmZml4PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBwYXJhbWV0ZXIgbmFtZSBzdWZmaXggZm9yIHRoaXMgbWFwcGluZy48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTdWZmaXgoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFN1ZmZpeDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U3VmZml4PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3VmZml4KTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgcGFyYW1ldGVyIG5hbWUgc3VmZml4IGZvciB0aGlzIG1hcHBpbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c3VmZml4PC9DT0RFPiAtIFRoZSBuZXcgcGFyYW1ldGVyIG5hbWUgc3VmZml4PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUeXBlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFR5cGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGZ1bGx5IHF1YWxpZmllZCBBY3Rpb24gY2xhc3MgbmFtZS48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRUeXBlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGZ1bGx5IHF1YWxpZmllZCBBY3Rpb24gY2xhc3MgbmFtZS48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT50eXBlPC9DT0RFPiAtIFRoZSBuZXcgY2xhc3MgbmFtZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VW5rbm93bigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRVbmtub3duPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRVbmtub3duPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSB1bmtub3duIGZsYWcgZm9yIHRoaXMgbWFwcGluZy48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRVbmtub3duKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRVbmtub3duPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRVbmtub3duPC9CPihib29sZWFuJm5ic3A7dW5rbm93bik8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHVua25vd24gZmxhZyBmb3IgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnVua25vd248L0NPREU+IC0gVGhlIG5ldyB1bmtub3duIGZsYWc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbGlkYXRlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbGlkYXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRWYWxpZGF0ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgdmFsaWRhdGUgZmxhZyBmb3IgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFZhbGlkYXRlKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRWYWxpZGF0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VmFsaWRhdGU8L0I+KGJvb2xlYW4mbmJzcDt2YWxpZGF0ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHZhbGlkYXRlIGZsYWcgZm9yIHRoaXMgbWFwcGluZy48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWxpZGF0ZTwvQ09ERT4gLSBUaGUgbmV3IHZhbGlkYXRlIGZsYWc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZEZvcndhcmQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQpIj48IS0tIC0tPjwvQT48SDM+CithZGRGb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRGb3J3YXJkPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiZuYnNwO2ZvcndhcmQpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGEgbmV3IDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hcHBpbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Zm9yd2FyZDwvQ09ERT4gLSBUaGUgQWN0aW9uRm9yd2FyZCB0byBiZSBhZGRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlRm9ybUluc3RhbmNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NyZWF0ZUZvcm1JbnN0YW5jZTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+IDxCPmNyZWF0ZUZvcm1JbnN0YW5jZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkNyZWF0aW9uIG9mIEFjdGlvbkZvcm0gaW5zdGFuY2VzIGlzIG5vdyB0aGUgcmVzcG9uc2liaWxpdHkKKyAgb2YgdGhlIGNvbnRyb2xsZXIgc2VydmxldDwvST4KKzxQPgorPEREPkNyZWF0ZSBhbmQgcmV0dXJuIGFuIGluaXRpYWxpemVkIGluc3RhbmNlIG9mIG91ciBmb3JtIGNsYXNzLiAgSWYKKyBpbnN0YW50aWF0aW9uIGZhaWxzIGZvciBhbnkgcmVhc29uLCA8Y29kZT5udWxsPC9jb2RlPiBpcyByZXR1cm5lZC48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZEZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiA8Qj5maW5kRm9yd2FyZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSwKKyBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uICBJZiB0aGVyZSBpcyBubyBsb2NhbGx5CisgZGVmaW5lZCBmb3J3YXJkaW5nIGZvciB0aGUgc3BlY2lmaWVkIG5hbWUsIGJ1dCBhIGdsb2JhbCBmb3J3YXJkcworIGNvbGxlY3Rpb24gaGFzIGJlZW4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFwcGluZywgdGhlIGdsb2JhbAorIGNvbGxlY3Rpb24gd2lsbCBhbHNvIGJlIHNlYXJjaGVkIGJlZm9yZSByZXR1cm5pbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBmb3J3YXJkIGVudHJ5IHRvIGJlIHJldHVybmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRm9yd2FyZHMoKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZEZvcndhcmRzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZ1tdIDxCPmZpbmRGb3J3YXJkczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbG9naWNhbCBuYW1lcyBvZiBhbGwgbG9jYWxseSBkZWZpbmVkIGZvcndhcmRzIGZvciB0aGlzCisgbWFwcGluZy4gIElmIHRoZXJlIGFyZSBubyBzdWNoIGZvcndhcmRzLCBhIHplcm8tbGVuZ3RoIGFycmF5CisgaXMgcmV0dXJuZWQuPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbW92ZUZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbW92ZUZvcndhcmQ8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCk8L1BSRT4KKzxETD4KKzxERD5SZW1vdmUgYSA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBhc3NvY2lhdGVkIHdpdGggdGhpcyBtYXBwaW5nLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZvcndhcmQ8L0NPREU+IC0gVGhlIEFjdGlvbkZvcndhcmQgdG8gYmUgcmVtb3ZlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9TdHJpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgordG9TdHJpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU3RyaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGEgU3RyaW5nIHZlcnNpb24gb2YgdGhpcyBtYXBwaW5nLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+dG9TdHJpbmc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEubGFuZy5PYmplY3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nQmFzZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uTWFwcGluZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nQmFzZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdCYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODUzNTFjYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nQmFzZS5odG1sCkBAIC0wLDAgKzEsMjEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgQWN0aW9uTWFwcGluZ0Jhc2UKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbk1hcHBpbmdCYXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmciPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9GT05UPgorPEJSPgorQ2xhc3MgIEFjdGlvbk1hcHBpbmdCYXNlPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdCYXNlPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPk5vdyB0aGF0IEFjdGlvbk1hcHBpbmcgaXMgYSBjbGFzcywgeW91IHNob3VsZCB1c2UgaXQgaW50ZWFkPC9JPgorPFA+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkFjdGlvbk1hcHBpbmdCYXNlPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9ETD4KKworPFA+CitBIG1pbmltYWwgaW1wbGVtZW50YXRpb24gb2YgPHN0cm9uZz5BY3Rpb25NYXBwaW5nPC9zdHJvbmc+IHRoYXQgY29udGFpbnMKKyBvbmx5IHRoZSByZXF1aXJlZCBwcm9wZXJ0aWVzLiAgQWRkaXRpb25hbCBwcm9wZXJ0aWVzIGNhbiBiZSBwcm92aWRlZCBieQorIHN1YmNsYXNzaW5nIHRoaXMgY2xhc3MgYW5kIGFkZGluZyBuZXcgImdldHRlciIgYW5kICJzZXR0ZXIiIG1ldGhvZHMuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdCYXNlIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZm9yd2FyZCI+Zm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZm9yd2FyZHMiPmZvcndhcmRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNpbmNsdWRlIj5pbmNsdWRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNpbnB1dCI+aW5wdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2luc3RhbmNlIj5pbnN0YW5jZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjbWFwcGluZ3MiPm1hcHBpbmdzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNtdWx0aXBhcnRDbGFzcyI+bXVsdGlwYXJ0Q2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNwYXRoIj5wYXRoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNwcmVmaXgiPnByZWZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzdWZmaXgiPnN1ZmZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjdHlwZSI+dHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjdW5rbm93biI+dW5rbm93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjdmFsaWRhdGUiPnZhbGlkYXRlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nQmFzZS5odG1sI0FjdGlvbk1hcHBpbmdCYXNlKCkiPkFjdGlvbk1hcHBpbmdCYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjYWRkRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCkiPmFkZEZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2NyZWF0ZUZvcm1JbnN0YW5jZSgpIj5jcmVhdGVGb3JtSW5zdGFuY2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2ZpbmRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZmluZEZvcndhcmRzKCkiPmZpbmRGb3J3YXJkczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0QWN0aW9uQ2xhc3MoKSI+Z2V0QWN0aW9uQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldEF0dHJpYnV0ZSgpIj5nZXRBdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldEZvcm1BdHRyaWJ1dGUoKSI+Z2V0Rm9ybUF0dHJpYnV0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0Rm9ybUNsYXNzKCkiPmdldEZvcm1DbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0Rm9ybVByZWZpeCgpIj5nZXRGb3JtUHJlZml4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRGb3JtU2NvcGUoKSI+Z2V0Rm9ybVNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRGb3JtU3VmZml4KCkiPmdldEZvcm1TdWZmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldEZvcndhcmQoKSI+Z2V0Rm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0SW5jbHVkZSgpIj5nZXRJbmNsdWRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRJbnB1dCgpIj5nZXRJbnB1dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0SW5wdXRGb3JtKCkiPmdldElucHV0Rm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0TWFwcGluZ3MoKSI+Z2V0TWFwcGluZ3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldE11bHRpcGFydENsYXNzKCkiPmdldE11bHRpcGFydENsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldFBhdGgoKSI+Z2V0UGF0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0UHJlZml4KCkiPmdldFByZWZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldFN1ZmZpeCgpIj5nZXRTdWZmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldFR5cGUoKSI+Z2V0VHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0VW5rbm93bigpIj5nZXRVbmtub3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRWYWxpZGF0ZSgpIj5nZXRWYWxpZGF0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjcmVtb3ZlRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCkiPnJlbW92ZUZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEFjdGlvbkNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY3Rpb25DbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEZvcm1BdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcm1BdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEZvcm1DbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9ybUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRGb3JtUHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3JtUHJlZml4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRGb3JtU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcm1TY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0Rm9ybVN1ZmZpeChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9ybVN1ZmZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0Rm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0SW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW5jbHVkZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0SW5wdXQoamF2YS5sYW5nLlN0cmluZykiPnNldElucHV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRJbnB1dEZvcm0oamF2YS5sYW5nLlN0cmluZykiPnNldElucHV0Rm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0TWFwcGluZ3Mob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzKSI+c2V0TWFwcGluZ3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldE11bHRpcGFydENsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNdWx0aXBhcnRDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldFBhdGgoamF2YS5sYW5nLlN0cmluZykiPnNldFBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldFByZWZpeChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJlZml4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldFN1ZmZpeChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3VmZml4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUeXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRVbmtub3duKGJvb2xlYW4pIj5zZXRVbmtub3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRWYWxpZGF0ZShib29sZWFuKSI+c2V0VmFsaWRhdGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvbk1hcHBpbmdCYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbk1hcHBpbmdCYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uTWFwcGluZ0Jhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uTWFwcGluZ0Jhc2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZyI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMmJjYjhmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwKQEAgLTAsMCArMSw0NzkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBBY3Rpb25NYXBwaW5ncworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ0Jhc2UuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uTWFwcGluZ3MuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBBY3Rpb25NYXBwaW5nczwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nczwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkFjdGlvbk1hcHBpbmdzPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorRW5jYXBzdWxhdGUgYSBjb2xsZWN0aW9uIG9mIEFjdGlvbk1hcHBpbmcgb2JqZWN0cyB0aGF0IGNhbiBiZQorIGFkbWluaXN0ZXJlZCBhbmQgc2VhcmNoZWQsIHdoaWxlIGhpZGluZyB0aGUgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24uCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sIj5GYXN0SGFzaE1hcDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjbWFwcGluZ3MiPm1hcHBpbmdzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb2xsZWN0aW9uIG9mIEFjdGlvbk1hcHBpbmcgaW5zdGFuY2VzLCBrZXllZCBieSByZXF1ZXN0IHBhdGguPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlIG9mIG91ciBvd25pbmcgYXBwbGljYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCN1bmtub3duIj51bmtub3duPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBBY3Rpb25NYXBwaW5nIHRoYXQgc2hvdWxkIGhhbmRsZSB1bmtub3duIHJlcXVlc3QgcGF0aHMsIGlmIGFueS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI0FjdGlvbk1hcHBpbmdzKCkiPkFjdGlvbk1hcHBpbmdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNhZGRNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+YWRkTWFwcGluZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlZ2lzdGVyIGEgbG9naWNhbCBtYXBwaW5nIHRvIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNmaW5kTWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZE1hcHBpbmc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbWFwcGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBsb2dpY2FsIG5hbWUsCisgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjZmluZE1hcHBpbmdzKCkiPmZpbmRNYXBwaW5nczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc2V0IG9mIHBhdGhzIGZvciBtYXBwaW5ncyBkZWZpbmVkIGluIHRoaXMgY29sbGVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNnZXRGYXN0KCkiPmdldEZhc3Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlICJmYXN0IiBtb2RlIGZsYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI2dldFNlcnZsZXQoKSI+Z2V0U2VydmxldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4gaW5zdGFuY2Ugb2Ygb3VyIG93bmluZworIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNnZXRVbmtub3duKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRVbmtub3duPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIEFjdGlvbiB0aGF0IHNob3VsZCBoYW5kbGUgdW5rbm93biByZXF1ZXN0IHBhdGhzLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI2dldFVua25vd24oamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPmdldFVua25vd248L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgQWN0aW9uIHRoYXQgc2hvdWxkIGhhbmRsZSB1bmtub3duIHJlcXVlc3QgcGF0aHMsIGlmIGFueS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNyZW1vdmVNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+cmVtb3ZlTWFwcGluZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlcmVnaXN0ZXIgYSBtYXBwaW5nIGZyb20gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjc2V0RmFzdChib29sZWFuKSI+c2V0RmFzdDwvQT48L0I+KGJvb2xlYW4mbmJzcDtmYXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSAiZmFzdCIgbW9kZSBmbGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiBpbnN0YW5jZSBvZiBvdXIgb3duaW5nIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWFwcGluZ3MiPjwhLS0gLS0+PC9BPjxIMz4KK21hcHBpbmdzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sIj5GYXN0SGFzaE1hcDwvQT4gPEI+bWFwcGluZ3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbGxlY3Rpb24gb2YgQWN0aW9uTWFwcGluZyBpbnN0YW5jZXMsIGtleWVkIGJ5IHJlcXVlc3QgcGF0aC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXJ2bGV0Ij48IS0tIC0tPjwvQT48SDM+CitzZXJ2bGV0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdHJhbnNpZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPnNlcnZsZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2Ugb2Ygb3VyIG93bmluZyBhcHBsaWNhdGlvbi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ1bmtub3duIj48IS0tIC0tPjwvQT48SDM+Cit1bmtub3duPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4gPEI+dW5rbm93bjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgQWN0aW9uTWFwcGluZyB0aGF0IHNob3VsZCBoYW5kbGUgdW5rbm93biByZXF1ZXN0IHBhdGhzLCBpZiBhbnkuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvbk1hcHBpbmdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbk1hcHBpbmdzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uTWFwcGluZ3M8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEZhc3QoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmFzdDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0RmFzdDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgImZhc3QiIG1vZGUgZmxhZy48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGYXN0KGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRGYXN0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGYXN0PC9CPihib29sZWFuJm5ic3A7ZmFzdCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlICJmYXN0IiBtb2RlIGZsYWcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmFzdDwvQ09ERT4gLSBUaGUgbmV3IGZhc3QgbW9kZSBmbGFnPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRVbmtub3duKGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRVbmtub3duPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4gPEI+Z2V0VW5rbm93bjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBBY3Rpb24gdGhhdCBzaG91bGQgaGFuZGxlIHVua25vd24gcmVxdWVzdCBwYXRocywgaWYgYW55LgorIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGNhc3RzIHRoZSByZXF1ZXN0IHRvIEh0dHBTZXJ2bGV0UmVxdWVzdAorIGFuZCBjYWxscyB0aGUgY29ycmVzcG9uZGluZyB2ZXJzaW9uIG9mIHRoaXMgbWV0aG9kLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VW5rbm93bihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VW5rbm93bjwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IDxCPmdldFVua25vd248L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgQWN0aW9uIHRoYXQgc2hvdWxkIGhhbmRsZSB1bmtub3duIHJlcXVlc3QgcGF0aHMsIGlmIGFueS48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNlcnZsZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2VydmxldDwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPmdldFNlcnZsZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+IGluc3RhbmNlIG9mIG91ciBvd25pbmcKKyBhcHBsaWNhdGlvbi48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U2VydmxldDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2VydmxldDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0KTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4gaW5zdGFuY2Ugb2Ygb3VyIG93bmluZyBhcHBsaWNhdGlvbi48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0PC9DT0RFPiAtIFRoZSBuZXcgc2VydmxldCBpbnN0YW5jZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkTWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZE1hcHBpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZE1hcHBpbmc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L1BSRT4KKzxETD4KKzxERD5SZWdpc3RlciBhIGxvZ2ljYWwgbWFwcGluZyB0byB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBtYXBwaW5nIHRvIGJlIGFkZGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kTWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZE1hcHBpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiA8Qj5maW5kTWFwcGluZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBtYXBwaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGxvZ2ljYWwgbmFtZSwKKyBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0aDwvQ09ERT4gLSBUaGUgcmVxdWVzdCBwYXRoIGZvciB3aGljaCB0byByZXRyaWV2ZSBhIG1hcHBpbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRNYXBwaW5ncygpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kTWFwcGluZ3M8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nW10gPEI+ZmluZE1hcHBpbmdzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBzZXQgb2YgcGF0aHMgZm9yIG1hcHBpbmdzIGRlZmluZWQgaW4gdGhpcyBjb2xsZWN0aW9uLgorIElmIHRoZXJlIGFyZSBubyBzdWNoIG1hcHBpbmdzLCBhIHplcm8tbGVuZ3RoIGFycmF5IGlzIHJldHVybmVkLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbW92ZU1hcHBpbmcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmVNYXBwaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZW1vdmVNYXBwaW5nPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9QUkU+Cis8REw+Cis8REQ+RGVyZWdpc3RlciBhIG1hcHBpbmcgZnJvbSB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBtYXBwaW5nIHRvIGJlIGRlcmVnaXN0ZXJlZDwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ0Jhc2UuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uTWFwcGluZ3MuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDk5YTRmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbApAQCAtMCwwICsxLDIyMTkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBBY3Rpb25TZXJ2bGV0Cis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BZGREYXRhU291cmNlUnVsZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uU2VydmxldC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9GT05UPgorPEJSPgorQ2xhc3MgIEFjdGlvblNlcnZsZXQ8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LkdlbmVyaWNTZXJ2bGV0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQ8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5TZXJ2bGV0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWN0aW9uU2VydmxldDwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQ8L0RMPgorCis8UD4KKzxwPjxzdHJvbmc+QWN0aW9uU2VydmxldDwvc3Ryb25nPiByZXByZXNlbnRzIHRoZSAiY29udHJvbGxlciIgaW4gdGhlCisgTW9kZWwtVmlldy1Db250cm9sbGVyIChNVkMpIGRlc2lnbiBwYXR0ZXJuIGZvciB3ZWIgYXBwbGljYXRpb25zIHRoYXQgaXMKKyBjb21tb25seSBrbm93biBhcyAiTW9kZWwgMiIuICBUaGlzIG5vbWVuY2xhdHVyZSBvcmlnaW5hdGVkIHdpdGggYQorIGRlc2NyaXB0aW9uIGluIHRoZSBKYXZhU2VydmVyUGFnZXMgU3BlY2lmaWNhdGlvbiwgdmVyc2lvbiAwLjkyLCBhbmQgaGFzCisgcGVyc2lzdGVkIGV2ZXIgc2luY2UgKGluIHRoZSBhYnNlbmNlIG9mIGEgYmV0dGVyIG5hbWUpLjwvcD4KKworIDxwPkdlbmVyYWxseSwgYSAiTW9kZWwgMiIgYXBwbGljYXRpb24gaXMgYXJjaGl0ZWN0ZWQgYXMgZm9sbG93czo8L3A+CisgPHVsPgorIDxsaT5UaGUgdXNlciBpbnRlcmZhY2Ugd2lsbCBnZW5lcmFsbHkgYmUgY3JlYXRlZCB3aXRoIEpTUCBwYWdlcywgd2hpY2gKKyAgICAgd2lsbCBub3QgdGhlbXNlbHZlcyBjb250YWluIGFueSBidXNpbmVzcyBsb2dpYy4gIFRoZXNlIHBhZ2VzIHJlcHJlc2VudAorICAgICB0aGUgInZpZXciIGNvbXBvbmVudCBvZiBhbiBNVkMgYXJjaGl0ZWN0dXJlLjwvbGk+CisgPGxpPkZvcm1zIGFuZCBoeXBlcmxpbmtzIGluIHRoZSB1c2VyIGludGVyZmFjZSB0aGF0IHJlcXVpcmUgYnVzaW5lc3MgbG9naWMKKyAgICAgdG8gYmUgZXhlY3V0ZWQgd2lsbCBiZSBzdWJtaXR0ZWQgdG8gYSByZXF1ZXN0IFVSSSB0aGF0IGlzIG1hcHBlZCB0byB0aGUKKyAgICAgY29udHJvbGxlciBzZXJ2bGV0LjwvbGk+CisgPGxpPlRoZXJlIHdpbGwgYmUgb25lIGluc3RhbmNlIG9mIHRoaXMgc2VydmxldCBjbGFzcywKKyAgICAgd2hpY2ggcmVjZWl2ZXMgYW5kIHByb2Nlc3NlcyBhbGwgcmVxdWVzdHMgdGhhdCBjaGFuZ2UgdGhlIHN0YXRlIG9mCisgICAgIGEgdXNlcidzIGludGVyYWN0aW9uIHdpdGggdGhlIGFwcGxpY2F0aW9uLiAgVGhpcyBjb21wb25lbnQgcmVwcmVzZW50cworICAgICB0aGUgImNvbnRyb2xsZXIiIGNvbXBvbmVudCBvZiBhbiBNVkMgYXJjaGl0ZWN0dXJlLjwvbGk+CisgPGxpPlRoZSBjb250cm9sbGVyIHNlcnZsZXQgd2lsbCBzZWxlY3QgYW5kIGludm9rZSBhbiBhY3Rpb24gY2xhc3MgdG8gcGVyZm9ybQorICAgICB0aGUgcmVxdWVzdGVkIGJ1c2luZXNzIGxvZ2ljLjwvbGk+CisgPGxpPlRoZSBhY3Rpb24gY2xhc3NlcyB3aWxsIG1hbmlwdWxhdGUgdGhlIHN0YXRlIG9mIHRoZSBhcHBsaWNhdGlvbidzCisgICAgIGludGVyYWN0aW9uIHdpdGggdGhlIHVzZXIsIHR5cGljYWxseSBieSBjcmVhdGluZyBvciBtb2RpZnlpbmcgSmF2YUJlYW5zCisgICAgIHRoYXQgYXJlIHN0b3JlZCBhcyByZXF1ZXN0IG9yIHNlc3Npb24gYXR0cmlidXRlcyAoZGVwZW5kaW5nIG9uIGhvdyBsb25nCisgICAgIHRoZXkgbmVlZCB0byBiZSBhdmFpbGFibGUpLiAgU3VjaCBKYXZhQmVhbnMgcmVwcmVzZW50IHRoZSAibW9kZWwiCisgICAgIGNvbXBvbmVudCBvZiBhbiBNVkMgYXJjaGl0ZWN0dXJlLjwvbGk+CisgPGxpPkluc3RlYWQgb2YgcHJvZHVjaW5nIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHVzZXIgaW50ZXJmYWNlIGRpcmVjdGx5LAorICAgICBhY3Rpb24gY2xhc3NlcyB3aWxsIGdlbmVyYWxseSB1c2UgdGhlCisgICAgIDxjb2RlPlJlcXVlc3REaXNwYXRjaGVyLmZvcndhcmQoKTwvY29kZT4gZmFjaWxpdHkgb2YgdGhlIHNlcnZsZXQgQVBJCisgICAgIHRvIHBhc3MgY29udHJvbCB0byBhbiBhcHByb3ByaWF0ZSBKU1AgcGFnZSB0byBwcm9kdWNlIHRoZSBuZXh0IHBhZ2UKKyAgICAgb2YgdGhlIHVzZXIgaW50ZXJmYWNlLjwvbGk+CisgPC91bD4KKworIDxwPlRoZSBzdGFuZGFyZCB2ZXJzaW9uIG9mIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+IGltcGxlbWVudHMgdGhlCisgICAgZm9sbG93aW5nIGxvZ2ljIGZvciBlYWNoIGluY29taW5nIEhUVFAgcmVxdWVzdC4gIFlvdSBjYW4gb3ZlcnJpZGUKKyAgICBzb21lIG9yIGFsbCBvZiB0aGlzIGZ1bmN0aW9uYWxpdHkgYnkgc3ViY2xhc3NpbmcgdGhpcyBzZXJ2bGV0IGFuZAorICAgIGltcGxlbWVudGluZyB5b3VyIG93biB2ZXJzaW9uIG9mIHRoZSBwcm9jZXNzaW5nLjwvcD4KKyA8dWw+CisgPGxpPklkZW50aWZ5LCBmcm9tIHRoZSBpbmNvbWluZyByZXF1ZXN0IFVSSSwgdGhlIHN1YnN0cmluZyB0aGF0IHdpbGwgYmUKKyAgICAgdXNlZCB0byBzZWxlY3QgYW4gYWN0aW9uIHByb2NlZHVyZS48L2xpPgorIDxsaT5Vc2UgdGhpcyBzdWJzdHJpbmcgdG8gbWFwIHRvIHRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgYWN0aW9uIGNsYXNzIChhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPiBpbnRlcmZhY2UpLgorICAgICA8L2xpPgorIDxsaT5JZiB0aGlzIGlzIHRoZSBmaXJzdCByZXF1ZXN0IGZvciBhIHBhcnRpY3VsYXIgYWN0aW9uIGNsYXNzLCBpbnN0YW50aWF0ZQorICAgICBhbiBpbnN0YW5jZSBvZiB0aGF0IGNsYXNzIGFuZCBjYWNoZSBpdCBmb3IgZnV0dXJlIHVzZS48L2xpPgorIDxsaT5PcHRpb25hbGx5IHBvcHVsYXRlIHRoZSBwcm9wZXJ0aWVzIG9mIGFuIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4KKyAgICAgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFwcGluZy48L2xpPgorIDxsaT5DYWxsIHRoZSA8Y29kZT5wZXJmb3JtKCk8L2NvZGU+IG1ldGhvZCBvZiB0aGlzIGFjdGlvbiBjbGFzcywgcGFzc2luZworICAgICBvbiBhIHJlZmVyZW5jZSB0byB0aGUgbWFwcGluZyB0aGF0IHdhcyB1c2VkICh0aGVyZWJ5IHByb3ZpZGluZyBhY2Nlc3MKKyAgICAgdG8gdGhlIHVuZGVybHlpbmcgQWN0aW9uU2VydmxldCBhbmQgU2VydmxldENvbnRleHQsIGFzIHdlbGwgYXMgYW55CisgICAgIHNwZWNpYWxpemVkIHByb3BlcnRpZXMgb2YgdGhlIG1hcHBpbmcgaXRzZWxmKSwgYW5kIHRoZSByZXF1ZXN0IGFuZAorICAgICByZXNwb25zZSB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoZSBjb250cm9sbGVyIGJ5IHRoZSBzZXJ2bGV0IGNvbnRhaW5lci4KKyAgICAgPC9saT4KKyA8L3VsPgorCisgPHA+VGhlIHN0YW5kYXJkIHZlcnNpb24gb2YgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4gaXMgY29uZmlndXJlZCBiYXNlZAorIG9uIHRoZSBmb2xsb3dpbmcgc2VydmxldCBpbml0aWFsaXphdGlvbiBwYXJhbWV0ZXJzLCB3aGljaCB5b3Ugd2lsbCBzcGVjaWZ5CisgaW4gdGhlIHdlYiBhcHBsaWNhdGlvbiBkZXBsb3ltZW50IGRlc2NyaXB0b3IgKDxjb2RlPi9XRUItSU5GL3dlYi54bWw8L2NvZGU+KQorIGZvciB5b3VyIGFwcGxpY2F0aW9uLiAgU3ViY2xhc3NlcyB0aGF0IHNwZWNpYWxpemUgdGhpcyBzZXJ2bGV0IGFyZSBmcmVlIHRvCisgZGVmaW5lIGFkZGl0aW9uYWwgaW5pdGlhbGl6YXRpb24gcGFyYW1ldGVycy48L3A+CisgPHVsPgorIDxsaT48c3Ryb25nPmFwcGxpY2F0aW9uPC9zdHJvbmc+IC0gSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbgorICAgICByZXNvdXJjZXMgYnVuZGxlIGJhc2UgY2xhc3MuICBbTk9ORV08L2xpPgorIDxsaT48c3Ryb25nPmJ1ZmZlclNpemU8L3N0cm9uZz4gLSBUaGUgc2l6ZSBvZiB0aGUgaW5wdXQgYnVmZmVyIHVzZWQgd2hlbgorICAgICBwcm9jZXNzaW5nIGZpbGUgdXBsb2Fkcy4gIFs0MDk2XTwvbGk+CisgPGxpPjxzdHJvbmc+Y29uZmlnPC9zdHJvbmc+IC0gQ29udGV4dC1yZWxhdGl2ZSBwYXRoIHRvIHRoZSBYTUwgcmVzb3VyY2UKKyAgICAgY29udGFpbmluZyBvdXIgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbi4KKyAgICAgWy9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sXTwvbGk+CisgPGxpPjxzdHJvbmc+Y29udGVudDwvc3Ryb25nPiAtIERlZmF1bHQgY29udGVudCB0eXBlIGFuZCBjaGFyYWN0ZXIgZW5jb2RpbmcKKyAgICAgdG8gYmUgc2V0IG9uIGVhY2ggcmVzcG9uc2U7IG1heSBiZSBvdmVycmlkZGVuIGJ5IGEgZm9yd2FyZGVkLXRvCisgICAgIHNlcnZsZXQgb3IgSlNQIHBhZ2UuICBbdGV4dC9odG1sXTwvbGk+CisgPGxpPjxzdHJvbmc+ZGVidWc8L3N0cm9uZz4gLSBUaGUgZGVidWdnaW5nIGRldGFpbCBsZXZlbCBmb3IgdGhpcworICAgICBzZXJ2bGV0LCB3aGljaCBjb250cm9scyBob3cgbXVjaCBpbmZvcm1hdGlvbiBpcyBsb2dnZWQuICBbMF08L2xpPgorIDxsaT48c3Ryb25nPmRldGFpbDwvc3Ryb25nPiAtIFRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIGZvciB0aGUgRGlnZXN0ZXIKKyAgICAgd2UgdXRpbGl6ZSBpbiA8Y29kZT5pbml0TWFwcGluZygpPC9jb2RlPiwgd2hpY2ggbG9ncyB0byBTeXN0ZW0ub3V0CisgICAgIGluc3RlYWQgb2YgdGhlIHNlcnZsZXQgbG9nLiAgWzBdPC9saT4KKyA8bGk+PHN0cm9uZz5mYWN0b3J5PC9zdHJvbmc+IC0gVGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUKKyAgICAgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IHVzZWQgdG8gY3JlYXRlIHRoZSBhcHBsaWNhdGlvbgorICAgICA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBvYmplY3QuPC9saT4KKyA8bGk+PHN0cm9uZz5mb3JtQmVhbjwvc3Ryb25nPiAtIFRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIEFjdGlvbkZvcm1CZWFuCisgICAgIGltcGxlbWVudGF0aW9uIHRvIHVzZSBbb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuXS4KKyA8bGk+PHN0cm9uZz5mb3J3YXJkPC9zdHJvbmc+IC0gVGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgQWN0aW9uRm9yd2FyZAorICAgICBpbXBsZW1lbnRhdGlvbiB0byB1c2UgW29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkXS4KKyAgICAgVHdvIGNvbnZlbmllbnQgY2xhc3NlcyB5b3UgbWF5IHdpc2ggdG8gdXNlIGFyZToKKyAgICAgPHVsPgorICAgICA8bGk+PGVtPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvZW0+IC0KKyAgICAgICAgIFN1YmNsYXNzIG9mIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkPC9jb2RlPgorICAgICAgICAgdGhhdCBkZWZhdWx0cyB0aGUgPGNvZGU+cmVkaXJlY3Q8L2NvZGU+IHByb3BlcnR5IHRvCisgICAgICAgICA8Y29kZT5mYWxzZTwvY29kZT4gKHNhbWUgYXMgdGhlIEFjdGlvbkZvcndhcmQgZGVmYXVsdCB2YWx1ZSkuCisgICAgIDxsaT48ZW0+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvZW0+IC0KKyAgICAgICAgIFN1YmNsYXNzIG9mIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkPC9jb2RlPgorICAgICAgICAgdGhhdCBkZWZhdWx0cyB0aGUgPGNvZGU+cmVkaXJlY3Q8L2NvZGU+IHByb3BlcnR5IHRvCisgICAgICAgICA8Y29kZT50cnVlPC9jb2RlPi4KKyAgICAgPC91bD48L2xpPgorIDxsaT48c3Ryb25nPmxvY2FsZTwvc3Ryb25nPiAtIElmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgYW5kIHRoZXJlIGlzIGEKKyAgICAgdXNlciBzZXNzaW9uLCBpZGVudGlmeSBhbmQgc3RvcmUgYW4gYXBwcm9wcmlhdGUKKyAgICAgPGNvZGU+amF2YS51dGlsLkxvY2FsZTwvY29kZT4gb2JqZWN0ICh1bmRlciB0aGUgc3RhbmRhcmQga2V5CisgICAgIGlkZW50aWZpZWQgYnkgPGNvZGU+QWN0aW9uLkxPQ0FMRV9LRVk8L2NvZGU+KSBpbiB0aGUgdXNlcidzIHNlc3Npb24KKyAgICAgaWYgdGhlcmUgaXMgbm90IGEgTG9jYWxlIG9iamVjdCB0aGVyZSBhbHJlYWR5LjwvbGk+CisgPGxpPjxzdHJvbmc+bWFwcGluZzwvc3Ryb25nPiAtIFRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIEFjdGlvbk1hcHBpbmcKKyAgICAgaW1wbGVtZW50YXRpb24gdG8gdXNlIFtvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZ10uCisgICAgIFR3byBjb252ZW5pZW50IGNsYXNzZXMgeW91IG1heSB3aXNoIHRvIHVzZSBhcmU6CisgICAgIDx1bD4KKyAgICAgPGxpPjxlbT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdEFjdGlvbk1hcHBpbmc8L2VtPiAtIFN1YmNsYXNzCisgICAgICAgICBvZiA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzwvY29kZT4gdGhhdAorICAgICAgICAgZGVmYXVsdHMgdGhlIDxjb2RlPnNjb3BlPC9jb2RlPiBwcm9wZXJ0eSB0byAicmVxdWVzdCIuCisgICAgIDxsaT48ZW0+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlNlc3Npb25BY3Rpb25NYXBwaW5nPC9lbT4gLSBTdWJjbGFzcworICAgICAgICAgb2YgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc8L2NvZGU+IHRoYXQKKyAgICAgICAgIGRlZmF1bHRzIHRoZSA8Y29kZT5zY29wZTwvY29kZT4gcHJvcGVydHkgdG8gInNlc3Npb24iLiAgKFNhbWUKKyAgICAgICAgIGFzIHRoZSBBY3Rpb25NYXBwaW5nIGRlZmF1bHQgdmFsdWUpLgorICAgICA8L3VsPjwvbGk+CisgPGxpPjxzdHJvbmc+bWF4RmlsZVNpemU8L3N0cm9uZz4gLSBUaGUgbWF4aW11bSBzaXplIChpbiBieXRlcykgb2YgYSBmaWxlCisgICAgIHRvIGJlIGFjY2VwdGVkIGFzIGEgZmlsZSB1cGxvYWQuICBDYW4gYmUgZXhwcmVzc2VkIGFzIGEgbnVtYmVyIGZvbGxvd2VkCisgICAgIGJ5IGEgIksiICJNIiwgb3IgIkciLCB3aGljaCBhcmUgaW50ZXJwcmV0ZWQgdG8gbWVhbiBraWxvYnl0ZXMsCisgICAgIG1lZ2FieXRlcywgb3IgZ2lnYWJ5dGVzLCByZXNwZWN0aXZlbHkuICBbMjUwTV08L2xpPgorIDxsaT48c3Ryb25nPm11bHRpcGFydENsYXNzPC9zdHJvbmc+IC0gVGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIHRoZQorICAgICBNdWx0aXBsYXJ0UmVxdWVzdEhhbmRsZXIgaW1wbGVtZW50YXRpb24gY2xhc3MgdG8gYmUgdXNlZCBmb3IgcHJvY2Vzc2luZworICAgICBmaWxlIHVwbG9hZHMuICBbb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcl0KKyAgICAgPC9saT4KKyA8bGk+PHN0cm9uZz5ub2NhY2hlPC9zdHJvbmc+IC0gSWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBhZGQgSFRUUCBoZWFkZXJzCisgICAgIHRvIGV2ZXJ5IHJlc3BvbnNlIGludGVuZGVkIHRvIGRlZmVhdCBicm93c2VyIGNhY2hpbmcgb2YgYW55IHJlc3BvbnNlIHdlCisgICAgIGdlbmVyYXRlIG9yIGZvcndhcmQgdG8uICBbZmFsc2VdPC9saT4KKyA8bGk+PHN0cm9uZz5udWxsPC9zdHJvbmc+IC0gSWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBzZXQgb3VyIGFwcGxpY2F0aW9uCisgICAgIHJlc291cmNlcyB0byByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4gaWYgYW4gdW5rbm93biBtZXNzYWdlIGtleSBpcyB1c2VkLgorICAgICBPdGhlcndpc2UsIGFuIGVycm9yIG1lc3NhZ2UgaW5jbHVkaW5nIHRoZSBvZmZlbmRpbmcgbWVzc2FnZSBrZXkgd2lsbAorICAgICBiZSByZXR1cm5lZC4gIFt0cnVlXTwvbGk+CisgPGxpPjxzdHJvbmc+dGVtcERpcjwvc3Ryb25nPiAtIFRoZSB0ZW1wb3Jhcnkgd29ya2luZyBkaXJlY3RvcnkgdG8gdXNlIHdoZW4KKyAgICAgcHJvY2Vzc2luZyBmaWxlIHVwbG9hZHMuICBbVGhlIHdvcmtpbmcgZGlyZWN0b3J5IHByb3ZpZGVkIHRvIHRoaXMgd2ViCisgICAgIGFwcGxpY2F0aW9uIGFzIGEgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZV08L2xpPgorIDxsaT48c3Ryb25nPnZhbGlkYXRlPC9zdHJvbmc+IC0gQXJlIHdlIHVzaW5nIHRoZSBuZXcgY29uZmlndXJhdGlvbiBmaWxlCisgICAgIGZvcm1hdD8gIFt0cnVlXTwvbGk+CisgPGxpPjxzdHJvbmc+dmFsaWRhdGluZzwvc3Ryb25nPiAtIFNob3VsZCB3ZSB1c2UgYSB2YWxpZGF0aW5nIFhNTCBwYXJzZSB0bworICAgICBwcm9jZXNzIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgKHN0cm9uZ2x5IHJlY29tbWVuZGVkKT8gW3RydWVdPC9saT4KKyA8L3VsPgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0Ij5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sIj5GYXN0SGFzaE1hcDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNhY3Rpb25zIj5hY3Rpb25zPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXQgb2YgQWN0aW9uIGluc3RhbmNlcyB0aGF0IGhhdmUgYmVlbiBjcmVhdGVkIGFuZCBpbml0aWFsaXplZCwKKyBrZXllZCBieSB0aGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2FwcGxpY2F0aW9uIj5hcHBsaWNhdGlvbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVzb3VyY2VzIG9iamVjdCBmb3Igb3VyIGFwcGxpY2F0aW9uIHJlc291cmNlcyAoaWYgYW55KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2J1ZmZlclNpemUiPmJ1ZmZlclNpemU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIGJ1ZmZlciB1c2VkIHRvIHJlYWQgZmlsZXMgZnJvbSBhIGNsaWVudCB1cGxvYWQ8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNjb25maWciPmNvbmZpZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udGV4dC1yZWxhdGl2ZSBwYXRoIHRvIG91ciBjb25maWd1cmF0aW9uIHJlc291cmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2NvbnRlbnQiPmNvbnRlbnQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGRlZmF1bHQgY29udGVudCB0eXBlIGFuZCBjaGFyYWN0ZXIgZW5jb2RpbmcgdG8gYmUgc2V0IG9uIGVhY2gKKyByZXNwb25zZSAobWF5IGJlIG92ZXJyaWRkZW4gYnkgZm9yd2FyZGVkLXRvIHJlc291cmNlcykuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2RhdGFTb3VyY2VzIj5kYXRhU291cmNlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSkRCQyBkYXRhIHNvdXJjZXMgdGhhdCBoYXMgYmVlbiBjb25maWd1cmVkIGZvciB0aGlzIGFwcGxpY2F0aW9uLAorIGlmIGFueSwga2V5ZWQgYnkgdGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUgdW5kZXIgd2hpY2ggdGhleSBhcmUKKyBzdG9yZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZWJ1ZyI+ZGVidWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgZm9yIHRoaXMgc2VydmxldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5Mb2NhbGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWZhdWx0IExvY2FsZSBmb3IgdGhpcyBzZXJ2ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZmFjdG9yeUNsYXNzIj5mYWN0b3J5Q2xhc3M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+CisgY2xhc3MgZm9yIHRoZSBhcHBsaWNhdGlvbiBtZXNzYWdlIHJlc291cmNlcyBidW5kbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZm9ybUJlYW5DbGFzcyI+Zm9ybUJlYW5DbGFzczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBBY3Rpb25Gb3JtQmVhbiBpbXBsZW1lbnRhdGlvbiBjbGFzcyB0byB1c2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPkFjdGlvbkZvcm1CZWFuczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNmb3JtQmVhbnMiPmZvcm1CZWFuczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZ2xvYmFsIEFjdGlvbkZvcm1CZWFuIGNvbGxlY3Rpb24gZm9yIHRoaXMgY29udHJvbGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNmb3J3YXJkQ2xhc3MiPmZvcndhcmRDbGFzczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBBY3Rpb25Gb3J3YXJkIGltcGxlbWVudGF0aW9uIGNsYXNzIHRvIHVzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNmb3J3YXJkcyI+Zm9yd2FyZHM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGdsb2JhbCBBY3Rpb25Gb3J3YXJkIGNvbGxlY3Rpb24gZm9yIHRoaXMgY29udHJvbGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ludGVybmFsIj5pbnRlcm5hbDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVzb3VyY2VzIG9iamVjdCBmb3Igb3VyIGludGVybmFsIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbnRlcm5hbE5hbWUiPmludGVybmFsTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSmF2YSBiYXNlIG5hbWUgb2Ygb3VyIGludGVybmFsIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNsb2NhbGUiPmxvY2FsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTaG91bGQgd2UgY3JlYXRlIGEgPGNvZGU+amF2YS51dGlsLkxvY2FsZTwvY29kZT4gZm9yIHRoaXMgdXNlciwKKyBiYXNlZCBvbiB0aGUgSFRUUCBoZWFkZXJzIG9mIHRoZSByZXF1ZXN0LCBpZiBvbmUgaXMgbm90IHByZXNlbnQ/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjbWFwcGluZ0NsYXNzIj5tYXBwaW5nQ2xhc3M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEphdmEgY2xhc3MgbmFtZSBvZiBvdXIgQWN0aW9uTWFwcGluZyBpbXBsZW1lbnRhdGlvbiBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5BY3Rpb25NYXBwaW5nczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNtYXBwaW5ncyI+bWFwcGluZ3M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbmZpZ3VyZWQgbWFwcGluZ3MgZm9yIHRoaXMgd2ViIGFwcGxpY2F0aW9uLCBrZXllZCBieSBwYXRoLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI21heEZpbGVTaXplIj5tYXhGaWxlU2l6ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWF4aW11bSBzaXplIGFsbG93ZWQgZm9yIGEgY2xpZW50IHVwbG9hZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNtdWx0aXBhcnRDbGFzcyI+bXVsdGlwYXJ0Q2xhc3M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyIGNsYXNzIG5hbWUgdXNlZCBmb3IgaGFuZGxpbmcKKyBtdWx0aXBhcnQgZm9ybSByZXF1ZXN0cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNub2NhY2hlIj5ub2NhY2hlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luY2x1ZGUgdGhlIG5vLWNhY2hpbmcgaGVhZGVycyBpbiBvdXIgcmVzcG9uc2U/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNyZWdpc3RyYXRpb25zIj5yZWdpc3RyYXRpb25zPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXQgb2YgcHVibGljIGlkZW50aWZpZXJzLCBhbmQgY29ycmVzcG9uZGluZyByZXNvdXJjZSBuYW1lcywgZm9yCisgdGhlIHZlcnNpb25zIG9mIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRFREcyB0aGF0IHdlIGtub3cgYWJvdXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjc2VydmxldE1hcHBpbmciPnNlcnZsZXRNYXBwaW5nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBVUkwgcGF0dGVybiB0byB3aGljaCB3ZSBhcmUgbWFwcGVkIGluIG91ciB3ZWIgYXBwbGljYXRpb24KKyBkZXBsb3ltZW50IGRlc2NyaXB0b3IuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjc2VydmxldE5hbWUiPnNlcnZsZXROYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXJ2bGV0IG5hbWUgdW5kZXIgd2hpY2ggd2UgYXJlIHJlZ2lzdGVyZWQgaW4gb3VyIHdlYiBhcHBsaWNhdGlvbgorIGRlcGxveW1lbnQgZGVzY3JpcHRvci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCN0ZW1wRGlyIj50ZW1wRGlyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkaXJlY3RvcnkgdXNlZCB0byBzdG9yZSB0ZW1wb3JhcnkgZmlsZXMgZm9yIHRoZSBEaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIKKyBtdWx0aXBhcnQgaW1wbGVtZW50YXRpb248L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCN2YWxpZGF0ZSI+dmFsaWRhdGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXJlIHdlIHVzaW5nIHRoZSBuZXcgY29uZmlndXJhdGlvbiBmaWxlIGZvcm1hdD88L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCN2YWxpZGF0aW5nIj52YWxpZGF0aW5nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Nob3VsZCB3ZSB1c2UgYSB2YWxpZGF0aW5nIFhNTCBwYXJzZXIgdG8gcmVhZCB0aGUgY29uZmlndXJhdGlvbiBmaWxlPzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+SEVBREVSX0lGTU9EU0lOQ0UsIEhFQURFUl9MQVNUTU9ELCBMU1RSSU5HX0ZJTEUsIGxTdHJpbmdzLCBNRVRIT0RfREVMRVRFLCBNRVRIT0RfR0VULCBNRVRIT0RfSEVBRCwgTUVUSE9EX09QVElPTlMsIE1FVEhPRF9QT1NULCBNRVRIT0RfUFVULCBNRVRIT0RfVFJBQ0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI0FjdGlvblNlcnZsZXQoKSI+QWN0aW9uU2VydmxldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNhZGREYXRhU291cmNlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNxbC5EYXRhU291cmNlKSI+YWRkRGF0YVNvdXJjZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgIGphdmF4LnNxbC5EYXRhU291cmNlJm5ic3A7ZGF0YVNvdXJjZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIGRhdGEgc291cmNlIG9iamVjdCB0byBiZSB1c2VkIGJ5IHRoaXMgYXBwbGljYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNhZGRGb3JtQmVhbihvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW4pIj5hZGRGb3JtQmVhbjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT4mbmJzcDtmb3JtQmVhbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlZ2lzdGVyIGEgZm9ybSBiZWFuIGRlZmluaXRpb24gdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNhZGRGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+YWRkRm9yd2FyZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlZ2lzdGVyIGEgbG9naWNhbCBmb3J3YXJkaW5nIHRvIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjYWRkTWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPmFkZE1hcHBpbmc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWdpc3RlciBhIG1hcHBpbmcgdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNhZGRTZXJ2bGV0TWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+YWRkU2VydmxldE1hcHBpbmc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2VydmxldE5hbWUsCisgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJsUGF0dGVybik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbWVtYmVyIGEgc2VydmxldCBtYXBwaW5nIGZyb20gb3VyIHdlYiBhcHBsaWNhdGlvbiBkZXBsb3ltZW50CisgZGVzY3JpcHRvciwgaWYgaXQgaXMgZm9yIHRoaXMgc2VydmxldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2Rlc3Ryb3koKSI+ZGVzdHJveTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dyYWNlZnVsbHkgc2h1dCBkb3duIHRoaXMgY29udHJvbGxlciBzZXJ2bGV0LCByZWxlYXNpbmcgYW55IHJlc291cmNlcworIHRoYXQgd2VyZSBhbGxvY2F0ZWQgYXQgaW5pdGlhbGl6YXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVzdHJveUFjdGlvbnMoKSI+ZGVzdHJveUFjdGlvbnM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHcmFjZWZ1bGx5IHNodXQgZG93biBhbnkgYWN0aW9uIGluc3RhbmNlcyB3ZSBoYXZlIGNyZWF0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVzdHJveUFwcGxpY2F0aW9uKCkiPmRlc3Ryb3lBcHBsaWNhdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dyYWNlZnVsbHkgdGVybWluYXRlIHVzZSBvZiB0aGUgYXBwbGljYXRpb24gTWVzc2FnZVJlc291cmNlcyAoaWYgYW55KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZXN0cm95RGF0YVNvdXJjZXMoKSI+ZGVzdHJveURhdGFTb3VyY2VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R3JhY2VmdWxseSB0ZXJtaW5hdGUgdXNlIG9mIHRoZSBkYXRhIHNvdXJjZSBhc3NvY2lhdGVkIHdpdGggdGhpcworIGFwcGxpY2F0aW9uIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2Rlc3Ryb3lJbnRlcm5hbCgpIj5kZXN0cm95SW50ZXJuYWw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHcmFjZWZ1bGx5IHRlcm1pbmF0ZSB1c2Ugb2YgdGhlIGludGVybmFsIE1lc3NhZ2VSZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkb0dldChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmRvR2V0PC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyBhbiBIVFRQICJHRVQiIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkb1Bvc3QoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5kb1Bvc3Q8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyBhbiBIVFRQICJQT1NUIiByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zcWwuRGF0YVNvdXJjZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ZpbmREYXRhU291cmNlKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRGF0YVNvdXJjZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYSBKREJDIGRhdGEgc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGFwcGxpY2F0aW9uLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNmaW5kRm9ybUJlYW4oamF2YS5sYW5nLlN0cmluZykiPmZpbmRGb3JtQmVhbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3JtIGJlYW4gZGVmaW5pdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZAorIGxvZ2ljYWwgbmFtZSwgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ZpbmRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9yd2FyZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3J3YXJkaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGxvZ2ljYWwgbmFtZSwKKyBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZmluZE1hcHBpbmcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRNYXBwaW5nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG1hcHBpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXRoLCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZ2V0QnVmZmVyU2l6ZSgpIj5nZXRCdWZmZXJTaXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBidWZmZXIgc2l6ZSAoaG93IGxhcmdlIG9mIGEgY2h1bmsgb2YgZGF0YSBpcworIHJlY2lldmVkIGJ5IHRoZSBpbnB1dCBzdHJlYW0gYXQgb25jZSkgdXNlZCBmb3IgZmlsZQorIHVwbG9hZGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZ2V0RGVidWcoKSI+Z2V0RGVidWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgZm9yIHRoaXMgc2VydmxldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldEZvcm1CZWFuQ2xhc3MoKSI+Z2V0Rm9ybUJlYW5DbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBjbGFzcyB1c2VkIHRvIGluc3RhbnRpYXRlCisgPGNvZGU+QWN0aW9uRm9ybUJlYW48L2NvZGU+IG9iamVjdHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRGb3J3YXJkQ2xhc3MoKSI+Z2V0Rm9yd2FyZENsYXNzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGNsYXNzIHVzZWQgdG8gaW5zdGFudGlhdGUKKyA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBvYmplY3RzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZ2V0TWFwcGluZ0NsYXNzKCkiPmdldE1hcHBpbmdDbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBjbGFzcyB1c2VkIHRvIGluc3RhbnRpYXRlCisgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gb2JqZWN0cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldE1heEZpbGVTaXplKCkiPmdldE1heEZpbGVTaXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBtYXhpbXVtIGZpbGUgc2l6ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldE11bHRpcGFydENsYXNzKCkiPmdldE11bHRpcGFydENsYXNzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBjbGFzcyBuYW1lIG9mIHRoZSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciBpbXBsZW1lbnRhdGlvbjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRSZXNvdXJjZXMoKSI+Z2V0UmVzb3VyY2VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZXMgZm9yIHRoaXMgd2ViIGFwcGxpY2F0aW9uLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRUZW1wRGlyKCkiPmdldFRlbXBEaXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIGRpcmVjdG9yeSB1c2VkIHRvIHRlbXBvcmFyaWx5IHN0b3JlIGZvcm0gZmlsZXM8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXQoKSI+aW5pdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgdGhpcyBzZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRBY3Rpb25zKCkiPmluaXRBY3Rpb25zPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSB0aGUgY29sbGVjdGlvbiBvZiBwcmV2aW91c2x5IGluc3RhbnRpYXRlZCBBY3Rpb24gaW5zdGFuY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRBcHBsaWNhdGlvbigpIj5pbml0QXBwbGljYXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0aWFsaXplIHRoZSBNZXNzYWdlUmVzb3VyY2VzIGJ1bmRsZSBmb3IgdGhpcyBhcHBsaWNhdGlvbiwgaWYgYW55LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXREYXRhU291cmNlcygpIj5pbml0RGF0YVNvdXJjZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0aWFsaXplIHVzZSBvZiB0aGUgZGF0YSBzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGlzCisgYXBwbGljYXRpb24gKGlmIGFueSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdERlYnVnKCkiPmluaXREZWJ1ZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgdGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgZm9yIHRoaXMgYXBwbGljYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0RGlnZXN0ZXIoaW50KSI+aW5pdERpZ2VzdGVyPC9BPjwvQj4oaW50Jm5ic3A7ZGV0YWlsKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGFuZCByZXR1cm4gYSBkaWdlc3RlciB0aGF0IHVzZXMgdGhlIG5ldyBjb25maWd1cmF0aW9uCisgZmlsZSBmb3JtYXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0RGlnZXN0ZXJPbGQoaW50KSI+aW5pdERpZ2VzdGVyT2xkPC9BPjwvQj4oaW50Jm5ic3A7ZGV0YWlsKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGFuZCByZXR1cm4gYSBkaWdlc3RlciB0aGF0IHVzZXMgdGhlIG9sZCBjb25maWd1cmF0aW9uCisgZmlsZSBmb3JtYXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdEludGVybmFsKCkiPmluaXRJbnRlcm5hbDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgb3VyIGludGVybmFsIE1lc3NhZ2VSZXNvdXJjZXMgYnVuZGxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRNYXBwaW5nKCkiPmluaXRNYXBwaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSB0aGUgbWFwcGluZyBpbmZvcm1hdGlvbiBmb3IgdGhpcyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0T3RoZXIoKSI+aW5pdE90aGVyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSBvdGhlciBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgdGhhdCBoYXZlIG5vdCB5ZXQKKyBiZWVuIHByb2Nlc3NlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0U2VydmxldCgpIj5pbml0U2VydmxldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgdGhlIHNlcnZsZXQgbWFwcGluZyB1bmRlciB3aGljaCBvdXIgY29udHJvbGxlciBzZXJ2bGV0CisgaXMgYmVpbmcgYWNjZXNzZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdFVwbG9hZCgpIj5pbml0VXBsb2FkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSB1cGxvYWQgcGFyYW1ldGVycyBhbmQgImJ1ZmZlclNpemUiLCAibXVsdGlwYXJ0Q2xhc3MiLAorICJtYXhGaWxlU2l6ZSIsICJ0ZW1wRGlyIjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjbG9nKGphdmEubGFuZy5TdHJpbmcsIGludCkiPmxvZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXNzYWdlLAorICAgIGludCZuYnNwO2xldmVsKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TG9nIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSBpZiB0aGUgY3VycmVudCBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIGZvcgorIHRoaXMgc2VydmxldCBoYXMgYmVlbiBzZXQgdG8gYW4gZXF1YWwgb3IgaGlnaGVyIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3Byb2Nlc3MoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIGFuIEhUVFAgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3Byb2Nlc3NBY3Rpb25DcmVhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5wcm9jZXNzQWN0aW9uQ3JlYXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBvciByZXRyaWV2ZSB0aGUgQWN0aW9uIGluc3RhbmNlIHRoYXQgd2lsbCBwcm9jZXNzIHRoaXMgcmVxdWVzdCwKKyBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiBubyBzdWNoIEFjdGlvbiBpbnN0YW5jZSBjYW4gYmUgY3JlYXRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjcHJvY2Vzc0FjdGlvbkZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5wcm9jZXNzQWN0aW9uRm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmUgYW5kIHJldHVybiB0aGUgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gYmVhbiBhc3NvY2lhdGVkIHdpdGgKKyB0aGlzIG1hcHBpbmcsIGNyZWF0aW5nIGFuZCBzdGFzaGluZyBvbmUgaWYgbmVjZXNzYXJ5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3Byb2Nlc3NBY3Rpb25Gb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cHJvY2Vzc0FjdGlvbkZvcndhcmQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiZuYnNwO2ZvcndhcmQsCisgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm1JbnN0YW5jZSwKKyAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZvcndhcmQgdG8gdGhlIHNwZWNpZmllZCBkZXN0aW5hdGlvbiwgYnkgdGhlIHNwZWNpZmllZCBtZWNoYW5pc20sCisgaWYgYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2Ugd2FzIHJldHVybmVkIGJ5IHRoZQorIDxjb2RlPkFjdGlvbjwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3Byb2Nlc3NBY3Rpb25QZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzQWN0aW9uUGVyZm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPiZuYnNwO2FjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybUluc3RhbmNlLAorICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXNrIHRoZSBzcGVjaWZpZWQgQWN0aW9uIGluc3RhbmNlIHRvIGhhbmRsZSB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjcHJvY2Vzc0NvbnRlbnQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzQ29udGVudDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGRlZmF1bHQgY29udGVudCB0eXBlICh3aXRoIG9wdGlvbmFsIGNoYXJhY3RlciBlbmNvZGluZykgZm9yCisgYWxsIHJlc3BvbnNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNwcm9jZXNzRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzRm9yd2FyZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgYSBmb3J3YXJkIHJlcXVlc3RlZCBieSB0aGlzIG1hcHBpbmcsIGlmIGFueS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNwcm9jZXNzSW5jbHVkZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzSW5jbHVkZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgYW4gaW5jbHVkZSByZXF1ZXN0ZWQgYnkgdGhpcyBtYXBwaW5nLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjcHJvY2Vzc0xvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cHJvY2Vzc0xvY2FsZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXV0b21hdGljYWxseSBjYWxjdWxhdGUgYW4gYXBwcm9wcmlhdGUgPGNvZGU+amF2YS51dGlsLkxvY2FsZTwvY29kZT4KKyBmb3IgdGhpcyB1c2VyLCBhbmQgc3RvcmUgaXQgaW4gdGhlaXIgc2Vzc2lvbiwgaWYgdGhlcmUgaXMgbm8gc3VjaAorIExvY2FsZSBvYmplY3QgcHJlc2VudCBhbHJlYWR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNwcm9jZXNzTWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cHJvY2Vzc01hcHBpbmc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCwKKyAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SWRlbnRpZnkgYW5kIHJldHVybiBhbiBhcHByb3ByaWF0ZSBBY3Rpb25NYXBwaW5nIGZvciB0aGUgc3BlY2lmaWVkCisgcGF0aC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNwcm9jZXNzTm9DYWNoZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NOb0NhY2hlPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlciB0aGUgSFRUUCBoZWFkZXJzIHRvIGRlZmVhdCBicm93c2VyIGNhY2hpbmcgaWYgcmVxdWVzdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3Byb2Nlc3NQYXRoKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5wcm9jZXNzUGF0aDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SWRlbnRpZnkgYW5kIHJldHVybiB0aGUgcGF0aCBjb21wb25lbnQgKGZyb20gdGhlIHJlcXVlc3QgVVJJKSB0aGF0Cisgd2Ugd2lsbCB1c2UgdG8gc2VsZWN0IGFuIEFjdGlvbk1hcHBpbmcgdG8gZGlzcGF0Y2ggd2l0aC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNwcm9jZXNzUG9wdWxhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cHJvY2Vzc1BvcHVsYXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtSW5zdGFuY2UsCisgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UG9wdWxhdGUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNwZWNpZmllZCBBY3Rpb25Gb3JtIGZyb20gdGhlIHJlcXVlc3QKKyBwYXJhbWV0ZXJzIGluY2x1ZGVkIHdpdGggdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3Byb2Nlc3NQcmVwcm9jZXNzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cHJvY2Vzc1ByZXByb2Nlc3M8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmFsIHB1cnBvc2UgcHJlcHJvY2Vzc2luZyBob29rIHRoYXQgY2FuIGJlIG92ZXJyaWRkZW4gdG8gc3VwcG9ydAorIGFwcGxpY2F0aW9uIHNwZWNpZmljIHByZXByb2Nlc3NpbmcgYWN0aXZpdHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjcHJvY2Vzc1ZhbGlkYXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzVmFsaWRhdGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtSW5zdGFuY2UsCisgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NhbGwgdGhlIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiB0aGUgc3BlY2lmaWVkIEFjdGlvbkZvcm0sCisgYW5kIGZvcndhcmQgYmFjayB0byB0aGUgaW5wdXQgZm9ybSBpZiB0aGVyZSBhcmUgYW55IGVycm9ycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3JlbG9hZCgpIj5yZWxvYWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxvYWQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBjb250cm9sbGVyIHNlcnZsZXQgZnJvbSBvdXIKKyB1bmRlcmx5aW5nIGNvbmZpZ3VyYXRpb24gZmlsZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNyZW1vdmVGb3JtQmVhbihvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW4pIj5yZW1vdmVGb3JtQmVhbjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT4mbmJzcDtmb3JtQmVhbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlcmVnaXN0ZXIgYSBmb3JtIGJlYW4gZGVmaW5pdGlvbiBmcm9tIHRoZSBzZXQgY29uZmlndXJlZCBmb3IKKyB0aGlzIHNlcnZsZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNyZW1vdmVGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+cmVtb3ZlRm9yd2FyZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlcmVnaXN0ZXIgYSBmb3J3YXJkaW5nIGZyb20gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNyZW1vdmVNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+cmVtb3ZlTWFwcGluZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlcmVnaXN0ZXIgYSBtYXBwaW5nIGZyb20gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNzZXRCdWZmZXJTaXplKGludCkiPnNldEJ1ZmZlclNpemU8L0E+PC9CPihpbnQmbmJzcDtidWZmZXJTaXplKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBidWZmZXIgc2l6ZSAoaG93IGxhcmdlIG9mIGEgY2h1bmsgb2YgZGF0YSBpcworIHJlY2lldmVkIGJ5IHRoZSBpbnB1dCBzdHJlYW0gYXQgb25jZSkgdXNlZCBmb3IgZmlsZQorIHVwbG9hZGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3NldEZvcm1CZWFuQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcm1CZWFuQ2xhc3M8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9ybUJlYW5DbGFzcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBjbGFzcyB1c2VkIHRvIGluc3RhbnRpYXRlCisgPGNvZGU+QWN0aW9uRm9ybUJlYW48L2NvZGU+IG9iamVjdHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNzZXRGb3J3YXJkQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcndhcmRDbGFzczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3J3YXJkQ2xhc3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgY2xhc3MgdXNlZCB0byBpbnN0YW50aWF0ZQorIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IG9iamVjdHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNzZXRNYXBwaW5nQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE1hcHBpbmdDbGFzczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttYXBwaW5nQ2xhc3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgY2xhc3MgdXNlZCB0byBpbnN0YW50aWF0ZQorIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IG9iamVjdHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNzZXRNYXhGaWxlU2l6ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWF4RmlsZVNpemU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWF4RmlsZVNpemUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIG1heGltdW0gZmlsZSBzaXplIHRoYXQgYSBjbGllbnQgY2FuIHVwbG9hZCwgIG51bWJlciBTdHJpbmcgd2l0aCBhIHRyYWlsaW5nCisgbGV0dGVyIGluZGljYXRpbmcgdGhlIHNpemUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNzZXRNdWx0aXBhcnRDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TXVsdGlwYXJ0Q2xhc3M8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bXVsdGlwYXJ0Q2xhc3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGNsYXNzIG5hbWUgb2YgdGhlIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyIGltcGxlbWVudGF0aW9uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNzZXRUZW1wRGlyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUZW1wRGlyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RlbXBEaXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGRpcmVjdG9yeSB1c2VkIHRvIHRlbXBvcmFyaWx5IHN0b3JlIGZpbGVzIGZvciBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcgorIGltcGxlbWVudGF0aW9ucyB0aGF0IHdyaXRlIHRvIHRoZSBkaXNrPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBkb0RlbGV0ZSwgZG9IZWFkLCBkb09wdGlvbnMsIGRvUHV0LCBkb1RyYWNlLCBnZXRBbGxEZWNsYXJlZE1ldGhvZHMsIGdldExhc3RNb2RpZmllZCwgbWF5YmVTZXRMYXN0TW9kaWZpZWQsIHNlcnZpY2UsIHNlcnZpY2U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LkdlbmVyaWNTZXJ2bGV0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LkdlbmVyaWNTZXJ2bGV0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0SW5pdFBhcmFtZXRlciwgZ2V0SW5pdFBhcmFtZXRlck5hbWVzLCBnZXRTZXJ2bGV0Q29uZmlnLCBnZXRTZXJ2bGV0Q29udGV4dCwgZ2V0U2VydmxldEluZm8sIGdldFNlcnZsZXROYW1lLCBpbml0LCBsb2csIGxvZzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYWN0aW9ucyI+PCEtLSAtLT48L0E+PEgzPgorYWN0aW9uczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+RmFzdEhhc2hNYXA8L0E+IDxCPmFjdGlvbnM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBBY3Rpb24gaW5zdGFuY2VzIHRoYXQgaGF2ZSBiZWVuIGNyZWF0ZWQgYW5kIGluaXRpYWxpemVkLAorIGtleWVkIGJ5IHRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFwcGxpY2F0aW9uIj48IS0tIC0tPjwvQT48SDM+CithcHBsaWNhdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5hcHBsaWNhdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVzb3VyY2VzIG9iamVjdCBmb3Igb3VyIGFwcGxpY2F0aW9uIHJlc291cmNlcyAoaWYgYW55KS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb25maWciPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmZpZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Y29uZmlnPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZXh0LXJlbGF0aXZlIHBhdGggdG8gb3VyIGNvbmZpZ3VyYXRpb24gcmVzb3VyY2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udGVudCI+PCEtLSAtLT48L0E+PEgzPgorY29udGVudDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Y29udGVudDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCBjb250ZW50IHR5cGUgYW5kIGNoYXJhY3RlciBlbmNvZGluZyB0byBiZSBzZXQgb24gZWFjaAorIHJlc3BvbnNlIChtYXkgYmUgb3ZlcnJpZGRlbiBieSBmb3J3YXJkZWQtdG8gcmVzb3VyY2VzKS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJkYXRhU291cmNlcyI+PCEtLSAtLT48L0E+PEgzPgorZGF0YVNvdXJjZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPiA8Qj5kYXRhU291cmNlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSkRCQyBkYXRhIHNvdXJjZXMgdGhhdCBoYXMgYmVlbiBjb25maWd1cmVkIGZvciB0aGlzIGFwcGxpY2F0aW9uLAorIGlmIGFueSwga2V5ZWQgYnkgdGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUgdW5kZXIgd2hpY2ggdGhleSBhcmUKKyBzdG9yZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVidWciPjwhLS0gLS0+PC9BPjxIMz4KK2RlYnVnPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPmRlYnVnPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIGZvciB0aGlzIHNlcnZsZXQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmYXVsdExvY2FsZSI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdExvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGZpbmFsIGphdmEudXRpbC5Mb2NhbGUgPEI+ZGVmYXVsdExvY2FsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCBMb2NhbGUgZm9yIHRoaXMgc2VydmVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZhY3RvcnlDbGFzcyI+PCEtLSAtLT48L0E+PEgzPgorZmFjdG9yeUNsYXNzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5mYWN0b3J5Q2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+CisgY2xhc3MgZm9yIHRoZSBhcHBsaWNhdGlvbiBtZXNzYWdlIHJlc291cmNlcyBidW5kbGUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZm9ybUJlYW5DbGFzcyI+PCEtLSAtLT48L0E+PEgzPgorZm9ybUJlYW5DbGFzczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Zm9ybUJlYW5DbGFzczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBBY3Rpb25Gb3JtQmVhbiBpbXBsZW1lbnRhdGlvbiBjbGFzcyB0byB1c2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZm9ybUJlYW5zIj48IS0tIC0tPjwvQT48SDM+Citmb3JtQmVhbnM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPkFjdGlvbkZvcm1CZWFuczwvQT4gPEI+Zm9ybUJlYW5zPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBnbG9iYWwgQWN0aW9uRm9ybUJlYW4gY29sbGVjdGlvbiBmb3IgdGhpcyBjb250cm9sbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvcndhcmRDbGFzcyI+PCEtLSAtLT48L0E+PEgzPgorZm9yd2FyZENsYXNzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5mb3J3YXJkQ2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgQWN0aW9uRm9yd2FyZCBpbXBsZW1lbnRhdGlvbiBjbGFzcyB0byB1c2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZm9yd2FyZHMiPjwhLS0gLS0+PC9BPjxIMz4KK2ZvcndhcmRzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPkFjdGlvbkZvcndhcmRzPC9BPiA8Qj5mb3J3YXJkczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZ2xvYmFsIEFjdGlvbkZvcndhcmQgY29sbGVjdGlvbiBmb3IgdGhpcyBjb250cm9sbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImludGVybmFsIj48IS0tIC0tPjwvQT48SDM+CitpbnRlcm5hbDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5pbnRlcm5hbDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVzb3VyY2VzIG9iamVjdCBmb3Igb3VyIGludGVybmFsIHJlc291cmNlcy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbnRlcm5hbE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK2ludGVybmFsTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aW50ZXJuYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKYXZhIGJhc2UgbmFtZSBvZiBvdXIgaW50ZXJuYWwgcmVzb3VyY2VzLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvY2FsZSI+PCEtLSAtLT48L0E+PEgzPgorbG9jYWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5sb2NhbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHdlIGNyZWF0ZSBhIDxjb2RlPmphdmEudXRpbC5Mb2NhbGU8L2NvZGU+IGZvciB0aGlzIHVzZXIsCisgYmFzZWQgb24gdGhlIEhUVFAgaGVhZGVycyBvZiB0aGUgcmVxdWVzdCwgaWYgb25lIGlzIG5vdCBwcmVzZW50PzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1hcHBpbmdDbGFzcyI+PCEtLSAtLT48L0E+PEgzPgorbWFwcGluZ0NsYXNzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5tYXBwaW5nQ2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmEgY2xhc3MgbmFtZSBvZiBvdXIgQWN0aW9uTWFwcGluZyBpbXBsZW1lbnRhdGlvbiBjbGFzcy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXBwaW5ncyI+PCEtLSAtLT48L0E+PEgzPgorbWFwcGluZ3M8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+IDxCPm1hcHBpbmdzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb25maWd1cmVkIG1hcHBpbmdzIGZvciB0aGlzIHdlYiBhcHBsaWNhdGlvbiwga2V5ZWQgYnkgcGF0aC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJub2NhY2hlIj48IS0tIC0tPjwvQT48SDM+Citub2NhY2hlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5ub2NhY2hlPC9CPjwvUFJFPgorPERMPgorPEREPkluY2x1ZGUgdGhlIG5vLWNhY2hpbmcgaGVhZGVycyBpbiBvdXIgcmVzcG9uc2U/PC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVnaXN0cmF0aW9ucyI+PCEtLSAtLT48L0E+PEgzPgorcmVnaXN0cmF0aW9uczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmdbXSA8Qj5yZWdpc3RyYXRpb25zPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgcHVibGljIGlkZW50aWZpZXJzLCBhbmQgY29ycmVzcG9uZGluZyByZXNvdXJjZSBuYW1lcywgZm9yCisgdGhlIHZlcnNpb25zIG9mIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRFREcyB0aGF0IHdlIGtub3cgYWJvdXQuICBUaGVyZQorIDxzdHJvbmc+TVVTVDwvc3Ryb25nPiBiZSBhbiBldmVuIG51bWJlciBvZiBTdHJpbmdzIGluIHRoaXMgbGlzdCE8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXJ2bGV0TWFwcGluZyI+PCEtLSAtLT48L0E+PEgzPgorc2VydmxldE1hcHBpbmc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNlcnZsZXRNYXBwaW5nPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBVUkwgcGF0dGVybiB0byB3aGljaCB3ZSBhcmUgbWFwcGVkIGluIG91ciB3ZWIgYXBwbGljYXRpb24KKyBkZXBsb3ltZW50IGRlc2NyaXB0b3IuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2VydmxldE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK3NlcnZsZXROYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zZXJ2bGV0TmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmxldCBuYW1lIHVuZGVyIHdoaWNoIHdlIGFyZSByZWdpc3RlcmVkIGluIG91ciB3ZWIgYXBwbGljYXRpb24KKyBkZXBsb3ltZW50IGRlc2NyaXB0b3IuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj52YWxpZGF0ZTwvQj48L1BSRT4KKzxETD4KKzxERD5BcmUgd2UgdXNpbmcgdGhlIG5ldyBjb25maWd1cmF0aW9uIGZpbGUgZm9ybWF0PzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbGlkYXRpbmciPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRpbmc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnZhbGlkYXRpbmc8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHdlIHVzZSBhIHZhbGlkYXRpbmcgWE1MIHBhcnNlciB0byByZWFkIHRoZSBjb25maWd1cmF0aW9uIGZpbGU/PC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYnVmZmVyU2l6ZSI+PCEtLSAtLT48L0E+PEgzPgorYnVmZmVyU2l6ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGludCA8Qj5idWZmZXJTaXplPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBidWZmZXIgdXNlZCB0byByZWFkIGZpbGVzIGZyb20gYSBjbGllbnQgdXBsb2FkPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWF4RmlsZVNpemUiPjwhLS0gLS0+PC9BPjxIMz4KK21heEZpbGVTaXplPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5tYXhGaWxlU2l6ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWF4aW11bSBzaXplIGFsbG93ZWQgZm9yIGEgY2xpZW50IHVwbG9hZC4gIEEgc3VmZml4IG9mICJLIgorIHJlcHJlc2VudHMgS2lsb2J5dGVzLCBhIHN1ZmZpeCBvZiAiTSIgcmVwcmVzZW50cyAiTWVnYWJ5dGVzIiwgCisgYSBzdWZmaXggb2YgIkciIHJlcHJlc2VudHMgR2lnYWJ5dGVzLCBhbmQgbm8gc3VmZml4IGlzIHRha2VuCisgYXMgYnl0ZXMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibXVsdGlwYXJ0Q2xhc3MiPjwhLS0gLS0+PC9BPjxIMz4KK211bHRpcGFydENsYXNzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5tdWx0aXBhcnRDbGFzczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgY2xhc3MgbmFtZSB1c2VkIGZvciBoYW5kbGluZworIG11bHRpcGFydCBmb3JtIHJlcXVlc3RzLiAgVGhpcyBpcyB0aGUgZ2xvYmFsIGRlZmF1bHQgdmFsdWUsCisgdGhlIGhhbmRsZXIgY2FuIGFsc28gYmUgc2V0IGluIGluZGl2aWR1YWwgbWFwcGluZyBlbnRyaWVzPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGVtcERpciI+PCEtLSAtLT48L0E+PEgzPgordGVtcERpcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dGVtcERpcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGlyZWN0b3J5IHVzZWQgdG8gc3RvcmUgdGVtcG9yYXJ5IGZpbGVzIGZvciB0aGUgRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyCisgbXVsdGlwYXJ0IGltcGxlbWVudGF0aW9uPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvblNlcnZsZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uU2VydmxldDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFjdGlvblNlcnZsZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRlc3Ryb3koKSI+PCEtLSAtLT48L0E+PEgzPgorZGVzdHJveTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZGVzdHJveTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdyYWNlZnVsbHkgc2h1dCBkb3duIHRoaXMgY29udHJvbGxlciBzZXJ2bGV0LCByZWxlYXNpbmcgYW55IHJlc291cmNlcworIHRoYXQgd2VyZSBhbGxvY2F0ZWQgYXQgaW5pdGlhbGl6YXRpb24uPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kZXN0cm95PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LkdlbmVyaWNTZXJ2bGV0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdCgpIj48IS0tIC0tPjwvQT48SDM+Citpbml0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5pbml0PC9CPigpCisgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkluaXRpYWxpemUgdGhpcyBzZXJ2bGV0LiAgTW9zdCBvZiB0aGUgcHJvY2Vzc2luZyBoYXMgYmVlbiBmYWN0b3JlZCBpbnRvCisgc3VwcG9ydCBtZXRob2RzIHNvIHRoYXQgeW91IGNhbiBvdmVycmlkZSBwYXJ0aWN1bGFyIGZ1bmN0aW9uYWxpdHkgYXQgYQorIGZhaXJseSBncmFudWxhciBsZXZlbC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmluaXQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuR2VuZXJpY1NlcnZsZXQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB3ZSBjYW5ub3QgY29uZmlndXJlIG91cnNlbHZlcyBjb3JyZWN0bHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvR2V0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorZG9HZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmRvR2V0PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyBhbiBIVFRQICJHRVQiIHJlcXVlc3QuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0dldDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnM8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1Bvc3QoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+Citkb1Bvc3Q8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmRvUG9zdDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgYW4gSFRUUCAiUE9TVCIgcmVxdWVzdC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvUG9zdDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnM8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGREYXRhU291cmNlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNxbC5EYXRhU291cmNlKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkRGF0YVNvdXJjZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkRGF0YVNvdXJjZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc3FsLkRhdGFTb3VyY2UmbmJzcDtkYXRhU291cmNlKTwvUFJFPgorPERMPgorPEREPkFkZCBhIGRhdGEgc291cmNlIG9iamVjdCB0byBiZSB1c2VkIGJ5IHRoaXMgYXBwbGljYXRpb24uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSB1bmRlciB3aGljaCB0byBzdG9yZQorICB0aGlzIGRhdGEgc291cmNlLCBvciA8Y29kZT5udWxsPC9jb2RlPiBmb3IgdGhlIGRlZmF1bHQ8REQ+PENPREU+ZGF0YVNvdXJjZTwvQ09ERT4gLSBUaGUgZGF0YSBzb3VyY2UgdG8gYmUgdXNlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkRm9ybUJlYW4ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkRm9ybUJlYW48L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZEZvcm1CZWFuPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+Jm5ic3A7Zm9ybUJlYW4pPC9QUkU+Cis8REw+Cis8REQ+UmVnaXN0ZXIgYSBmb3JtIGJlYW4gZGVmaW5pdGlvbiB0byB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mb3JtQmVhbjwvQ09ERT4gLSBUaGUgZm9ybSBiZWFuIGRlZmluaXRpb24gdG8gYmUgYWRkZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZEZvcndhcmQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQpIj48IS0tIC0tPjwvQT48SDM+CithZGRGb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRGb3J3YXJkPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiZuYnNwO2ZvcndhcmQpPC9QUkU+Cis8REw+Cis8REQ+UmVnaXN0ZXIgYSBsb2dpY2FsIGZvcndhcmRpbmcgdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Zm9yd2FyZDwvQ09ERT4gLSBUaGUgZm9yd2FyZGluZyB0byBiZSBhZGRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkTWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZE1hcHBpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZE1hcHBpbmc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L1BSRT4KKzxETD4KKzxERD5SZWdpc3RlciBhIG1hcHBpbmcgdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgbWFwcGluZyB0byBiZSBhZGRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkU2VydmxldE1hcHBpbmcoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZFNlcnZsZXRNYXBwaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRTZXJ2bGV0TWFwcGluZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NlcnZsZXROYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3VybFBhdHRlcm4pPC9QUkU+Cis8REw+Cis8REQ+UmVtZW1iZXIgYSBzZXJ2bGV0IG1hcHBpbmcgZnJvbSBvdXIgd2ViIGFwcGxpY2F0aW9uIGRlcGxveW1lbnQKKyBkZXNjcmlwdG9yLCBpZiBpdCBpcyBmb3IgdGhpcyBzZXJ2bGV0LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNlcnZsZXROYW1lPC9DT0RFPiAtIFRoZSBuYW1lIG9mIHRoZSBzZXJ2bGV0IGJlaW5nIG1hcHBlZDxERD48Q09ERT51cmxQYXR0ZXJuPC9DT0RFPiAtIFRoZSBVUkwgcGF0dGVybiB0byB3aGljaCB0aGlzIHNlcnZsZXQgaXMgbWFwcGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRGF0YVNvdXJjZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZERhdGFTb3VyY2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC5zcWwuRGF0YVNvdXJjZSA8Qj5maW5kRGF0YVNvdXJjZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gYSBKREJDIGRhdGEgc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGFwcGxpY2F0aW9uLCBpZiBhbnkuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSB1bmRlciB3aGljaCB0aGlzIGRhdGEKKyAgc291cmNlIGlzIHN0b3JlZCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gZm9yIHRoZSBkZWZhdWx0LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRm9ybUJlYW48L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+IDxCPmZpbmRGb3JtQmVhbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIGJlYW4gZGVmaW5pdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZAorIGxvZ2ljYWwgbmFtZSwgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTG9naWNhbCBuYW1lIG9mIHRoZSByZXF1ZXN0ZWQgZm9ybSBiZWFuIGRlZmluaXRpb248L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPmZpbmRGb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGZvcndhcmRpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIExvZ2ljYWwgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIGZvcndhcmRpbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRNYXBwaW5nKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kTWFwcGluZzwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IDxCPmZpbmRNYXBwaW5nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG1hcHBpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXRoLCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYXRoPC9DT0RFPiAtIFJlcXVlc3QgcGF0aCBmb3Igd2hpY2ggYSBtYXBwaW5nIGlzIHJlcXVlc3RlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QnVmZmVyU2l6ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRCdWZmZXJTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldEJ1ZmZlclNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIGJ1ZmZlciBzaXplIChob3cgbGFyZ2Ugb2YgYSBjaHVuayBvZiBkYXRhIGlzCisgcmVjaWV2ZWQgYnkgdGhlIGlucHV0IHN0cmVhbSBhdCBvbmNlKSB1c2VkIGZvciBmaWxlCisgdXBsb2FkaW5nLjxERD48REw+Cis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBidWZmZXI8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldERlYnVnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERlYnVnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldERlYnVnPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIGZvciB0aGlzIHNlcnZsZXQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Rm9ybUJlYW5DbGFzcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGb3JtQmVhbkNsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGb3JtQmVhbkNsYXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGNsYXNzIHVzZWQgdG8gaW5zdGFudGlhdGUKKyA8Y29kZT5BY3Rpb25Gb3JtQmVhbjwvY29kZT4gb2JqZWN0cy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGb3J3YXJkQ2xhc3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Rm9yd2FyZENsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGb3J3YXJkQ2xhc3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgY2xhc3MgdXNlZCB0byBpbnN0YW50aWF0ZQorIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IG9iamVjdHMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWFwcGluZ0NsYXNzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1hcHBpbmdDbGFzczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TWFwcGluZ0NsYXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGNsYXNzIHVzZWQgdG8gaW5zdGFudGlhdGUKKyA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPiBvYmplY3RzLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1heEZpbGVTaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1heEZpbGVTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNYXhGaWxlU2l6ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgbWF4aW11bSBmaWxlIHNpemUuICBTZWUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNzZXRNYXhGaWxlU2l6ZShqYXZhLmxhbmcuU3RyaW5nKSI+PENPREU+c2V0TWF4RmlsZVNpemU8L0NPREU+PC9BPgorIGZvciBpbmZvcm1hdGlvbiBvbiB0aGUgbnVtYmVyIGZvcm1hdCB1c2VkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE11bHRpcGFydENsYXNzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE11bHRpcGFydENsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNdWx0aXBhcnRDbGFzczwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgY2xhc3MgbmFtZSBvZiB0aGUgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgaW1wbGVtZW50YXRpb248REQ+PERMPgorPERUPjxCPlJldHVybnM6PC9CPjxERD5BIHF1YWxpZmllZCBjbGFzc25hbWUgb2YgdGhlIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyIGltcGxlbWVudGF0aW9uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZXNvdXJjZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPmdldFJlc291cmNlczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2VzIGZvciB0aGlzIHdlYiBhcHBsaWNhdGlvbiwgaWYgYW55LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFRlbXBEaXIoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VGVtcERpcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VGVtcERpcjwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgZGlyZWN0b3J5IHVzZWQgdG8gdGVtcG9yYXJpbHkgc3RvcmUgZm9ybSBmaWxlczxERD48REw+Cis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgcGxhdGZvcm0tZGVwZW5kYW50IFN0cmluZyByZXByZXNlbnRpbmcgdGhlIHBhdGggdG8gdGhlIHRlbXBvcmFyeSBkaXJlY3Rvcnk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvZyhqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmxvZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UsCisgICAgICAgICAgICAgICAgaW50Jm5ic3A7bGV2ZWwpPC9QUkU+Cis8REw+Cis8REQ+TG9nIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSBpZiB0aGUgY3VycmVudCBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIGZvcgorIHRoaXMgc2VydmxldCBoYXMgYmVlbiBzZXQgdG8gYW4gZXF1YWwgb3IgaGlnaGVyIHZhbHVlLiAgT3RoZXJ3aXNlLAorIGlnbm9yZSB0aGlzIG1lc3NhZ2UuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWVzc2FnZTwvQ09ERT4gLSBNZXNzYWdlIHRvIGJlIGxvZ2dlZDxERD48Q09ERT5sZXZlbDwvQ09ERT4gLSBEZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIG9mIHRoaXMgbWVzc2FnZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsb2FkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbG9hZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsb2FkPC9CPigpCisgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZWxvYWQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBjb250cm9sbGVyIHNlcnZsZXQgZnJvbSBvdXIKKyB1bmRlcmx5aW5nIGNvbmZpZ3VyYXRpb24gZmlsZXMuPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnM8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW1vdmVGb3JtQmVhbihvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW4pIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmVGb3JtQmVhbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVtb3ZlRm9ybUJlYW48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT4mbmJzcDtmb3JtQmVhbik8L1BSRT4KKzxETD4KKzxERD5EZXJlZ2lzdGVyIGEgZm9ybSBiZWFuIGRlZmluaXRpb24gZnJvbSB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yCisgdGhpcyBzZXJ2bGV0LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZvcm1CZWFuPC9DT0RFPiAtIFRoZSBmb3JtIGJlYW4gZGVmaW5pdGlvbiB0byBiZSBkZXJlZ2lzdGVyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbW92ZUZvcndhcmQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQpIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmVGb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZW1vdmVGb3J3YXJkPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiZuYnNwO2ZvcndhcmQpPC9QUkU+Cis8REw+Cis8REQ+RGVyZWdpc3RlciBhIGZvcndhcmRpbmcgZnJvbSB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mb3J3YXJkPC9DT0RFPiAtIFRoZSBmb3J3YXJkaW5nIHRvIGJlIGRlcmVnaXN0ZXJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlTWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbW92ZU1hcHBpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbW92ZU1hcHBpbmc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L1BSRT4KKzxETD4KKzxERD5EZXJlZ2lzdGVyIGEgbWFwcGluZyBmcm9tIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIG1hcHBpbmcgdG8gYmUgZGVyZWdpc3RlcmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRCdWZmZXJTaXplKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJ1ZmZlclNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEJ1ZmZlclNpemU8L0I+KGludCZuYnNwO2J1ZmZlclNpemUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBidWZmZXIgc2l6ZSAoaG93IGxhcmdlIG9mIGEgY2h1bmsgb2YgZGF0YSBpcworIHJlY2lldmVkIGJ5IHRoZSBpbnB1dCBzdHJlYW0gYXQgb25jZSkgdXNlZCBmb3IgZmlsZQorIHVwbG9hZGluZy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5idWZmZXJTaXplPC9DT0RFPiAtIFRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBidWZmZXI8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZvcm1CZWFuQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZvcm1CZWFuQ2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZvcm1CZWFuQ2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3JtQmVhbkNsYXNzKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBjbGFzcyB1c2VkIHRvIGluc3RhbnRpYXRlCisgPGNvZGU+QWN0aW9uRm9ybUJlYW48L2NvZGU+IG9iamVjdHMuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Zm9ybUJlYW5DbGFzczwvQ09ERT4gLSBUaGUgbmV3IGNsYXNzIG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZvcndhcmRDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Rm9yd2FyZENsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGb3J3YXJkQ2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3J3YXJkQ2xhc3MpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGNsYXNzIHVzZWQgdG8gaW5zdGFudGlhdGUKKyA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBvYmplY3RzLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZvcndhcmRDbGFzczwvQ09ERT4gLSBUaGUgbmV3IGNsYXNzIG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE1hcHBpbmdDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TWFwcGluZ0NsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRNYXBwaW5nQ2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttYXBwaW5nQ2xhc3MpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGNsYXNzIHVzZWQgdG8gaW5zdGFudGlhdGUKKyA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPiBvYmplY3RzLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmdDbGFzczwvQ09ERT4gLSBUaGUgbmV3IGNsYXNzIG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE1heEZpbGVTaXplKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNYXhGaWxlU2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TWF4RmlsZVNpemU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttYXhGaWxlU2l6ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIG1heGltdW0gZmlsZSBzaXplIHRoYXQgYSBjbGllbnQgY2FuIHVwbG9hZCwgIG51bWJlciBTdHJpbmcgd2l0aCBhIHRyYWlsaW5nCisgbGV0dGVyIGluZGljYXRpbmcgdGhlIHNpemUuICAiSyIgaW5kaWNhdGVzICJraWxvYnl0ZXMiLCAiTSIgaW5kaWNhdGVzICJtZWdhYnl0ZXMiLAorICJHIiBpbmRpY2F0ZXMgImdpZ2FieXRlcyIuICBJZiB0aGVyZSdzIG5vIHRyYWlsaW5nIGxldHRlciB0aGUgc3VmZml4IGlzIGFzc3VtZWQgdG8KKyBpbmRpY2F0ZSB0aGUgbnVtYmVyIGlzIGluIGJ5dGVzLiAgRm9yIGV4YW1wbGUsIHRvIHNldCBhIG1heGltdW0gZmlsZSBzaXplIG9mCisgNTAwIG1lZ2FieXRlcywgeW91J2QgY2FsbCA8Y29kZT5zZXRNYXhGaWxlU2l6ZTwvY29kZT4oIjxpPjUwME08L2k+IikuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWF4RmlsZVNpemU8L0NPREU+IC0gQSBTdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBtYXhpbXVtIGZpbGUgc2l6ZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE11bHRpcGFydENsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNdWx0aXBhcnRDbGFzczwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TXVsdGlwYXJ0Q2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttdWx0aXBhcnRDbGFzcyk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGNsYXNzIG5hbWUgb2YgdGhlIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyIGltcGxlbWVudGF0aW9uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bXVsdGlwYXJ0Q2xhc3M8L0NPREU+IC0gQSBxdWFsaWZpZWQgY2xhc3NuYW1lIG9mIHRoZSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciBpbXBsZW1lbnRhdGlvbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VGVtcERpcihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VGVtcERpcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VGVtcERpcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RlbXBEaXIpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBkaXJlY3RvcnkgdXNlZCB0byB0ZW1wb3JhcmlseSBzdG9yZSBmaWxlcyBmb3IgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIKKyBpbXBsZW1lbnRhdGlvbnMgdGhhdCB3cml0ZSB0byB0aGUgZGlzazxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnRlbXBEaXI8L0NPREU+IC0gQSBwbGF0Zm9ybS1kZXBlbmRhbnQgU3RyaW5nIHJlcHJlc2VudGluZyB0aGUgcGF0aCB0byB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVzdHJveUFjdGlvbnMoKSI+PCEtLSAtLT48L0E+PEgzPgorZGVzdHJveUFjdGlvbnM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmRlc3Ryb3lBY3Rpb25zPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R3JhY2VmdWxseSBzaHV0IGRvd24gYW55IGFjdGlvbiBpbnN0YW5jZXMgd2UgaGF2ZSBjcmVhdGVkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRlc3Ryb3lBcHBsaWNhdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitkZXN0cm95QXBwbGljYXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmRlc3Ryb3lBcHBsaWNhdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPkdyYWNlZnVsbHkgdGVybWluYXRlIHVzZSBvZiB0aGUgYXBwbGljYXRpb24gTWVzc2FnZVJlc291cmNlcyAoaWYgYW55KS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZXN0cm95RGF0YVNvdXJjZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZGVzdHJveURhdGFTb3VyY2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5kZXN0cm95RGF0YVNvdXJjZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HcmFjZWZ1bGx5IHRlcm1pbmF0ZSB1c2Ugb2YgdGhlIGRhdGEgc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGlzCisgYXBwbGljYXRpb24gKGlmIGFueSkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVzdHJveUludGVybmFsKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2Rlc3Ryb3lJbnRlcm5hbDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+ZGVzdHJveUludGVybmFsPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R3JhY2VmdWxseSB0ZXJtaW5hdGUgdXNlIG9mIHRoZSBpbnRlcm5hbCBNZXNzYWdlUmVzb3VyY2VzLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXRBY3Rpb25zKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXRBY3Rpb25zPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5pbml0QWN0aW9uczwvQj4oKTwvUFJFPgorPERMPgorPEREPkluaXRpYWxpemUgdGhlIGNvbGxlY3Rpb24gb2YgcHJldmlvdXNseSBpbnN0YW50aWF0ZWQgQWN0aW9uIGluc3RhbmNlcy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0QXBwbGljYXRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdEFwcGxpY2F0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5pbml0QXBwbGljYXRpb248L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Jbml0aWFsaXplIHRoZSBNZXNzYWdlUmVzb3VyY2VzIGJ1bmRsZSBmb3IgdGhpcyBhcHBsaWNhdGlvbiwgaWYgYW55LjxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHdlIGNhbm5vdCBpbml0aWFsaXplIHRoZXNlIHJlc291cmNlczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdERhdGFTb3VyY2VzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXREYXRhU291cmNlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+aW5pdERhdGFTb3VyY2VzPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+SW5pdGlhbGl6ZSB1c2Ugb2YgdGhlIGRhdGEgc291cmNlcyBhc3NvY2lhdGVkIHdpdGggdGhpcworIGFwcGxpY2F0aW9uIChpZiBhbnkpLjxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgZmF0YWwgaW5pdGlhbGl6YXRpb24gZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0RGVidWcoKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdERlYnVnPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5pbml0RGVidWc8L0I+KCkKKyAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Jbml0aWFsaXplIHRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIGZvciB0aGlzIGFwcGxpY2F0aW9uLjxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHdlIGNhbm5vdCBpbml0aWFsaXplIHRoZXNlIHJlc291cmNlczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdERpZ2VzdGVyKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXREaWdlc3RlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPiA8Qj5pbml0RGlnZXN0ZXI8L0I+KGludCZuYnNwO2RldGFpbCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYW5kIHJldHVybiBhIGRpZ2VzdGVyIHRoYXQgdXNlcyB0aGUgbmV3IGNvbmZpZ3VyYXRpb24KKyBmaWxlIGZvcm1hdC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0RGlnZXN0ZXJPbGQoaW50KSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdERpZ2VzdGVyT2xkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+IDxCPmluaXREaWdlc3Rlck9sZDwvQj4oaW50Jm5ic3A7ZGV0YWlsKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhbmQgcmV0dXJuIGEgZGlnZXN0ZXIgdGhhdCB1c2VzIHRoZSBvbGQgY29uZmlndXJhdGlvbgorIGZpbGUgZm9ybWF0LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXRJbnRlcm5hbCgpIj48IS0tIC0tPjwvQT48SDM+Citpbml0SW50ZXJuYWw8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmluaXRJbnRlcm5hbDwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkluaXRpYWxpemUgb3VyIGludGVybmFsIE1lc3NhZ2VSZXNvdXJjZXMgYnVuZGxlLjxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHdlIGNhbm5vdCBpbml0aWFsaXplIHRoZXNlIHJlc291cmNlczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdE1hcHBpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdE1hcHBpbmc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmluaXRNYXBwaW5nPC9CPigpCisgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+SW5pdGlhbGl6ZSB0aGUgbWFwcGluZyBpbmZvcm1hdGlvbiBmb3IgdGhpcyBhcHBsaWNhdGlvbi48REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIGlzIGVuY291bnRlcmVkPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB3ZSBjYW5ub3QgaW5pdGlhbGl6ZSB0aGVzZSByZXNvdXJjZXM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXRPdGhlcigpIj48IS0tIC0tPjwvQT48SDM+Citpbml0T3RoZXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmluaXRPdGhlcjwvQj4oKQorICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkluaXRpYWxpemUgb3RoZXIgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIHRoYXQgaGF2ZSBub3QgeWV0CisgYmVlbiBwcm9jZXNzZWQuPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgd2UgY2Fubm90IGluaXRpYWxpemUgdGhlc2UgcmVzb3VyY2VzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0U2VydmxldCgpIj48IS0tIC0tPjwvQT48SDM+Citpbml0U2VydmxldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+aW5pdFNlcnZsZXQ8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkluaXRpYWxpemUgdGhlIHNlcnZsZXQgbWFwcGluZyB1bmRlciB3aGljaCBvdXIgY29udHJvbGxlciBzZXJ2bGV0CisgaXMgYmVpbmcgYWNjZXNzZWQuICBUaGlzIHdpbGwgYmUgdXNlZCBpbiB0aGUgPGNvZGU+Jmh0bWw6Zm9ybSZndDs8L2NvZGU+CisgdGFnIHRvIGdlbmVyYXRlIGNvcnJlY3QgZGVzdGluYXRpb24gVVJMcyBmb3IgZm9ybSBzdWJtaXNzaW9ucy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0VXBsb2FkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXRVcGxvYWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmluaXRVcGxvYWQ8L0I+KCkKKyAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+SW5pdGlhbGl6ZSB1cGxvYWQgcGFyYW1ldGVycyBhbmQgImJ1ZmZlclNpemUiLCAibXVsdGlwYXJ0Q2xhc3MiLAorICJtYXhGaWxlU2l6ZSIsICJ0ZW1wRGlyIjxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZXJlIGFyZSBpbnZhbGlkIHBhcmFtZXRlcnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3MoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5wcm9jZXNzPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyBhbiBIVFRQIHJlcXVlc3QuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnM8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzQWN0aW9uQ3JlYXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc0FjdGlvbkNyZWF0ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPiA8Qj5wcm9jZXNzQWN0aW9uQ3JlYXRlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIG9yIHJldHJpZXZlIHRoZSBBY3Rpb24gaW5zdGFuY2UgdGhhdCB3aWxsIHByb2Nlc3MgdGhpcyByZXF1ZXN0LAorIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIG5vIHN1Y2ggQWN0aW9uIGluc3RhbmNlIGNhbiBiZSBjcmVhdGVkLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzQWN0aW9uRm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NBY3Rpb25Gb3JtPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4gPEI+cHJvY2Vzc0FjdGlvbkZvcm08L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPlJldHJpZXZlIGFuZCByZXR1cm4gdGhlIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4gYXNzb2NpYXRlZCB3aXRoCisgdGhpcyBtYXBwaW5nLCBjcmVhdGluZyBhbmQgc3Rhc2hpbmcgb25lIGlmIG5lY2Vzc2FyeS4gIElmIHRoZXJlIGlzIG5vCisgZm9ybSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hcHBpbmcsIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0FjdGlvbkZvcndhcmQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzQWN0aW9uRm9yd2FyZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJvY2Vzc0FjdGlvbkZvcndhcmQ8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybUluc3RhbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkZvcndhcmQgdG8gdGhlIHNwZWNpZmllZCBkZXN0aW5hdGlvbiwgYnkgdGhlIHNwZWNpZmllZCBtZWNoYW5pc20sCisgaWYgYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2Ugd2FzIHJldHVybmVkIGJ5IHRoZQorIDxjb2RlPkFjdGlvbjwvY29kZT4uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Zm9yd2FyZDwvQ09ERT4gLSBUaGUgQWN0aW9uRm9yd2FyZCByZXR1cm5lZCBieSBvdXIgYWN0aW9uPEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+Zm9ybUluc3RhbmNlPC9DT0RFPiAtIFRoZSBBY3Rpb25Gb3JtIHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgc2VydmxldCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmc8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0FjdGlvblBlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NBY3Rpb25QZXJmb3JtPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+cHJvY2Vzc0FjdGlvblBlcmZvcm08L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPiZuYnNwO2FjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybUluc3RhbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkFzayB0aGUgc3BlY2lmaWVkIEFjdGlvbiBpbnN0YW5jZSB0byBoYW5kbGUgdGhpcyByZXF1ZXN0LiAgUmV0dXJuCisgdGhlIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIChpZiBhbnkpIHJldHVybmVkIGJ5CisgdGhlIGNhbGxlZCA8Y29kZT5BY3Rpb248L2NvZGU+LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmFjdGlvbjwvQ09ERT4gLSBUaGUgQWN0aW9uIHRvIHByb2Nlc3MgdGhpcyByZXF1ZXN0PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+Zm9ybUluc3RhbmNlPC9DT0RFPiAtIFRoZSBBY3Rpb25Gb3JtIHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgc2VydmxldCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmc8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0NvbnRlbnQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzQ29udGVudDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJvY2Vzc0NvbnRlbnQ8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBkZWZhdWx0IGNvbnRlbnQgdHlwZSAod2l0aCBvcHRpb25hbCBjaGFyYWN0ZXIgZW5jb2RpbmcpIGZvcgorIGFsbCByZXNwb25zZXMuICBUaGlzIHZhbHVlIG1heSBiZSBvdmVycmlkZGVuIGJ5IGZvcndhcmRlZC10byBzZXJ2bGV0cworIG9yIEpTUCBwYWdlcy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgcmVzcG9uc2Ugd2UgYXJlIHByb2Nlc3Npbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NGb3J3YXJkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5wcm9jZXNzRm9yd2FyZDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgYSBmb3J3YXJkIHJlcXVlc3RlZCBieSB0aGlzIG1hcHBpbmcsIGlmIGFueS4gIFJldHVybgorIDxjb2RlPnRydWU8L2NvZGU+IGlmIHByb2Nlc3Npbmcgb2YgdGhpcyByZXF1ZXN0IHNob3VsZCBjb250aW51ZSAoaS5lLgorIGJlIHByb2Nlc3NlZCBieSBhbiBBY3Rpb24gY2xhc3MpLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgd2UgaGF2ZQorIGFscmVhZHkgaGFuZGxlZCB0aGlzIHJlcXVlc3QuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSByZXNwb25zZSB3ZSBhcmUgcHJvY2Vzc2luZzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBpbmNsdWRlZCByZXNvdXJjZSB0aHJvd3MgYW4gZXhjZXB0aW9uPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgaW5jbHVkZWQgcmVzb3VyY2UgdGhyb3dzIGFuCisgIGV4Y2VwdGlvbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0luY2x1ZGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc0luY2x1ZGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnByb2Nlc3NJbmNsdWRlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyBhbiBpbmNsdWRlIHJlcXVlc3RlZCBieSB0aGlzIG1hcHBpbmcsIGlmIGFueS4gIFJldHVybgorIDxjb2RlPnRydWU8L2NvZGU+IGlmIHByb2Nlc3Npbmcgb2YgdGhpcyByZXF1ZXN0IHNob3VsZCBjb250aW51ZSAoaS5lLgorIGJlIHByb2Nlc3NlZCBieSBhbiBBY3Rpb24gY2xhc3MpLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgd2UgaGF2ZQorIGFscmVhZHkgaGFuZGxlZCB0aGlzIHJlcXVlc3QuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSByZXNwb25zZSB3ZSBhcmUgcHJvY2Vzc2luZzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBpbmNsdWRlZCByZXNvdXJjZSB0aHJvd3MgYW4gZXhjZXB0aW9uPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgaW5jbHVkZWQgcmVzb3VyY2UgdGhyb3dzIGFuCisgIGV4Y2VwdGlvbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0xvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc0xvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJvY2Vzc0xvY2FsZTwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+QXV0b21hdGljYWxseSBjYWxjdWxhdGUgYW4gYXBwcm9wcmlhdGUgPGNvZGU+amF2YS51dGlsLkxvY2FsZTwvY29kZT4KKyBmb3IgdGhpcyB1c2VyLCBhbmQgc3RvcmUgaXQgaW4gdGhlaXIgc2Vzc2lvbiwgaWYgdGhlcmUgaXMgbm8gc3VjaAorIExvY2FsZSBvYmplY3QgcHJlc2VudCBhbHJlYWR5LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NNYXBwaW5nKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzTWFwcGluZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IDxCPnByb2Nlc3NNYXBwaW5nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPklkZW50aWZ5IGFuZCByZXR1cm4gYW4gYXBwcm9wcmlhdGUgQWN0aW9uTWFwcGluZyBmb3IgdGhlIHNwZWNpZmllZAorIHBhdGguICBJZiBubyBzdWNoIG1hcHBpbmcgY2FuIGJlIGlkZW50aWZpZWQsIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKyBUaGUgPGNvZGU+cmVxdWVzdDwvY29kZT4gcGFyYW1ldGVyIGlzIGF2YWlsYWJsZSBpZiB5b3UgbmVlZCB0byBtYWtlCisgZGVjaXNpb25zIG9uIGF2YWlsYWJsZSBtYXBwaW5ncyAoc3VjaCBhcyBjaGVja2luZyBwZXJtaXNzaW9ucykgYmFzZWQKKyBvbiByZXF1ZXN0IHBhcmFtZXRlcnMgb3Igb3RoZXIgcHJvcGVydGllcywgYnV0IGl0IGlzIG5vdCB1c2VkIGluIHRoZQorIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0aDwvQ09ERT4gLSBQYXRoIGNvbXBvbmVudCB1c2VkIHRvIHNlbGVjdCBhIG1hcHBpbmc8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc05vQ2FjaGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzTm9DYWNoZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJvY2Vzc05vQ2FjaGU8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVyIHRoZSBIVFRQIGhlYWRlcnMgdG8gZGVmZWF0IGJyb3dzZXIgY2FjaGluZyBpZiByZXF1ZXN0ZWQuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VyczxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NQYXRoKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzUGF0aDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvY2Vzc1BhdGg8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPklkZW50aWZ5IGFuZCByZXR1cm4gdGhlIHBhdGggY29tcG9uZW50IChmcm9tIHRoZSByZXF1ZXN0IFVSSSkgdGhhdAorIHdlIHdpbGwgdXNlIHRvIHNlbGVjdCBhbiBBY3Rpb25NYXBwaW5nIHRvIGRpc3BhdGNoIHdpdGguICBJZiBubyBzdWNoCisgcGF0aCBjYW4gYmUgaWRlbnRpZmllZCwgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc1ByZXByb2Nlc3MoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzUHJlcHJvY2VzczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+cHJvY2Vzc1ByZXByb2Nlc3M8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5HZW5lcmFsIHB1cnBvc2UgcHJlcHJvY2Vzc2luZyBob29rIHRoYXQgY2FuIGJlIG92ZXJyaWRkZW4gdG8gc3VwcG9ydAorIGFwcGxpY2F0aW9uIHNwZWNpZmljIHByZXByb2Nlc3NpbmcgYWN0aXZpdHkuICBUaGlzIGhvb2sgY2FuIGV4YW1pbmUKKyBhbmQvb3IgbW9kaWZ5IHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSBvYmplY3RzLCBhbmQKKyBvcHRpb25hbGx5IGNvbXBsZXRlIHRoZSByZXNwb25zZSBpZiBpdCB3aXNoZXMuCisgPHA+CisgVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZG9lcyBub3RoaW5nLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgc2VydmxldCByZXNwb25zZSB3ZSBhcmUgZ2VuZXJhdGluZzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+PGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIHJlbWFpbmRlciBvZiB0aGUgc3RhbmRhcmQgcHJvY2Vzc2luZworICBzaG91bGQgYmUgcGVyZm9ybWVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgdGhlIHJlc3BvbnNlIGhhcyBhbHJlYWR5CisgIGJlZW4gY3JlYXRlZCBzbyB0aGUgY2FsbGluZyBtZXRob2Qgc2hvdWxkIGltbWVkaWF0ZWx5IGV4aXQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc1BvcHVsYXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NQb3B1bGF0ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJvY2Vzc1BvcHVsYXRlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm1JbnN0YW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UG9wdWxhdGUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNwZWNpZmllZCBBY3Rpb25Gb3JtIGZyb20gdGhlIHJlcXVlc3QKKyBwYXJhbWV0ZXJzIGluY2x1ZGVkIHdpdGggdGhpcyByZXF1ZXN0LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZvcm1JbnN0YW5jZTwvQ09ERT4gLSBUaGUgQWN0aW9uRm9ybSB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhyb3duIGJ5IFJlcXVlc3RVdGlscy5wb3B1bGF0ZSgpPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzVmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NWYWxpZGF0ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+cHJvY2Vzc1ZhbGlkYXRlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtSW5zdGFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNhbGwgdGhlIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiB0aGUgc3BlY2lmaWVkIEFjdGlvbkZvcm0sCisgYW5kIGZvcndhcmQgYmFjayB0byB0aGUgaW5wdXQgZm9ybSBpZiB0aGVyZSBhcmUgYW55IGVycm9ycy4gIFJldHVybgorIDxjb2RlPnRydWU8L2NvZGU+IGlmIHdlIHNob3VsZCBjb250aW51ZSBwcm9jZXNzaW5nIChhbmQgY2FsbCB0aGUKKyA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzIDxjb2RlPnBlcmZvcm0oKTwvY29kZT4gbWV0aG9kKSwgb3IgcmV0dXJuCisgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIHdlIGhhdmUgYWxyZWFkeSBmb3J3YXJkZWQgY29udHJvbCBiYWNrIHRvIHRoZQorIGlucHV0IGZvcm0uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5mb3JtSW5zdGFuY2U8L0NPREU+IC0gVGhlIEFjdGlvbkZvcm0gd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlc3BvbnNlIHdlIGFyZSBwcm9jZXNzaW5nPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VyczxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FkZERhdGFTb3VyY2VSdWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25TZXJ2bGV0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FkZERhdGFTb3VyY2VSdWxlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWRkRGF0YVNvdXJjZVJ1bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Y2JjNzBjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FkZERhdGFTb3VyY2VSdWxlLmh0bWwKQEAgLTAsMCArMSwyNDIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBBZGREYXRhU291cmNlUnVsZQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWRkRGF0YVNvdXJjZVJ1bGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuUnVsZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBBZGREYXRhU291cmNlUnVsZTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuUnVsZTwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWRkRGF0YVNvdXJjZVJ1bGU8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5maW5hbCBjbGFzcyA8Qj5BZGREYXRhU291cmNlUnVsZTwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9ETD4KKworPFA+CitQcml2YXRlIGRpZ2VzdGVyIDxjb2RlPlJ1bGU8L2NvZGU+IHRoYXQgYWRkcyBhIGRhdGEgc291cmNlIHRvIHRoZSB1bmRlcmx5aW5nCisgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4gaW5zdGFuY2UuICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5CisgaXMgc3BlY2lmaWVkIGJ5IHRoZSAia2V5IiBhdHRyaWJ1dGUgb24gdGhlIGRhdGEgc291cmNlIGVsZW1lbnQsIGFuZCBkZWZhdWx0cworIHRvIHRoZSB2YWx1ZSBvZiA8Y29kZT5BY3Rpb24uREFUQV9TT1VSQ0VfS0VZPC9jb2RlPiBpZiBub3Qgc3BlY2lmaWVkLgorPFA+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLlJ1bGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj5SdWxlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCNkaWdlc3RlciI+ZGlnZXN0ZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FkZERhdGFTb3VyY2VSdWxlLmh0bWwjQWRkRGF0YVNvdXJjZVJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIpIj5BZGREYXRhU291cmNlUnVsZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPiZuYnNwO2RpZ2VzdGVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWRkRGF0YVNvdXJjZVJ1bGUuaHRtbCNiZWdpbihvcmcueG1sLnNheC5BdHRyaWJ1dGVMaXN0KSI+YmVnaW48L0E+PC9CPihvcmcueG1sLnNheC5BdHRyaWJ1dGVMaXN0Jm5ic3A7YXR0cmlidXRlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIHRoZSBiZWdpbm5pbmcgb2YgYSBtYXRjaGluZyBYTUwgZWxlbWVudAorIGlzIGVuY291bnRlcmVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuUnVsZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj5SdWxlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCNib2R5KGphdmEubGFuZy5TdHJpbmcpIj5ib2R5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2VuZCgpIj5lbmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjZmluaXNoKCkiPmZpbmlzaDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQWRkRGF0YVNvdXJjZVJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIpIj48IS0tIC0tPjwvQT48SDM+CitBZGREYXRhU291cmNlUnVsZTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFkZERhdGFTb3VyY2VSdWxlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4mbmJzcDtkaWdlc3Rlcik8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImJlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QpIj48IS0tIC0tPjwvQT48SDM+CitiZWdpbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YmVnaW48L0I+KG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QmbmJzcDthdHRyaWJ1dGVzKQorICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGNsYXNzOiA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9DT0RFPjwvQj48L0REPgorPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIHRoZSBiZWdpbm5pbmcgb2YgYSBtYXRjaGluZyBYTUwgZWxlbWVudAorIGlzIGVuY291bnRlcmVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2JlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QpIj5iZWdpbjwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+Rm9sbG93aW5nIGNvcGllZCBmcm9tIGNsYXNzOiA8Q09ERT5vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5SdWxlPC9DT0RFPjwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5hdHRyaWJ1dGVzPC9DT0RFPiAtIFRoZSBhdHRyaWJ1dGUgbGlzdCBvZiB0aGlzIGVsZW1lbnQ8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFkZERhdGFTb3VyY2VSdWxlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLlJ1bGUiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTIwYjA4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwKQEAgLTAsMCArMSwyMjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBGb3J3YXJkaW5nQWN0aW9uRm9yd2FyZAorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWRkRGF0YVNvdXJjZVJ1bGUuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBGb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9ETD4KKworPFA+CitBIHN1YmNsYXNzIG9mIDxzdHJvbmc+QWN0aW9uRm9yd2FyZDwvc3Ryb25nPiB0aGF0IGRlZmF1bHRzIHRoZQorIDxjb2RlPnJlZGlyZWN0PC9jb2RlPiBhdHRyaWJ1dGUgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZCI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjcGF0aCI+cGF0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjcmVkaXJlY3QiPnJlZGlyZWN0PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sI0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkKCkiPkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggZGVmYXVsdCB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCNGb3J3YXJkaW5nQWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+Rm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgcGF0aC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI2dldFBhdGgoKSI+Z2V0UGF0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjZ2V0UmVkaXJlY3QoKSI+Z2V0UmVkaXJlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI3NldFBhdGgoamF2YS5sYW5nLlN0cmluZykiPnNldFBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI3NldFJlZGlyZWN0KGJvb2xlYW4pIj5zZXRSZWRpcmVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQoKSI+PCEtLSAtLT48L0E+PEgzPgorRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvQj4oKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgdmFsdWVzLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitGb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhdGguPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0aDwvQ09ERT4gLSBQYXRoIGZvciB0aGlzIGluc3RhbmNlPC9ETD4KKzwvREQ+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWRkRGF0YVNvdXJjZVJ1bGUuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVmNmIxMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQuaHRtbApAQCAtMCwwICsxLDIyNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZAorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBSZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQ8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9ETD4KKworPFA+CitBIHN1YmNsYXNzIG9mIDxzdHJvbmc+QWN0aW9uRm9yd2FyZDwvc3Ryb25nPiB0aGF0IGRlZmF1bHRzIHRoZQorIDxjb2RlPnJlZGlyZWN0PC9jb2RlPiBhdHRyaWJ1dGUgdG8gPGNvZGU+dHJ1ZTwvY29kZT4uCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZCI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjcGF0aCI+cGF0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjcmVkaXJlY3QiPnJlZGlyZWN0PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQuaHRtbCNSZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQoKSI+UmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggZGVmYXVsdCB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwjUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgcGF0aC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI2dldFBhdGgoKSI+Z2V0UGF0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjZ2V0UmVkaXJlY3QoKSI+Z2V0UmVkaXJlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI3NldFBhdGgoamF2YS5sYW5nLlN0cmluZykiPnNldFBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI3NldFJlZGlyZWN0KGJvb2xlYW4pIj5zZXRSZWRpcmVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvQj4oKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgdmFsdWVzLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhdGguPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0aDwvQ09ERT4gLSBQYXRoIGZvciB0aGlzIGluc3RhbmNlPC9ETD4KKzwvREQ+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjZjBiMmMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbApAQCAtMCwwICsxLDIwOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFJlcXVlc3RBY3Rpb25NYXBwaW5nCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmciPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9GT05UPgorPEJSPgorQ2xhc3MgIFJlcXVlc3RBY3Rpb25NYXBwaW5nPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJlcXVlc3RBY3Rpb25NYXBwaW5nPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UmVxdWVzdEFjdGlvbk1hcHBpbmc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0RMPgorCis8UD4KK1N1YmNsYXNzIG9mIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IHRoYXQgZGVmYXVsdHMgdGhlIGZvcm0gYmVhbgorIHNjb3BlIHRvIDxjb2RlPnJlcXVlc3Q8L2NvZGU+LgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0QWN0aW9uTWFwcGluZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2ZvcndhcmQiPmZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2ZvcndhcmRzIj5mb3J3YXJkczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjaW5jbHVkZSI+aW5jbHVkZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjaW5wdXQiPmlucHV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNpbnN0YW5jZSI+aW5zdGFuY2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI21hcHBpbmdzIj5tYXBwaW5nczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjbXVsdGlwYXJ0Q2xhc3MiPm11bHRpcGFydENsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjcGF0aCI+cGF0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjcHJlZml4Ij5wcmVmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc3VmZml4Ij5zdWZmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3R5cGUiPnR5cGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3Vua25vd24iPnVua25vd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3ZhbGlkYXRlIj52YWxpZGF0ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCNSZXF1ZXN0QWN0aW9uTWFwcGluZygpIj5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIHdpdGggdGhlIGRlc2lyZWQgZGVmYXVsdAorIGZvcm0gYmVhbiBzY29wZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNhZGRGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+YWRkRm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjY3JlYXRlRm9ybUluc3RhbmNlKCkiPmNyZWF0ZUZvcm1JbnN0YW5jZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZmluZEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPmZpbmRGb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNmaW5kRm9yd2FyZHMoKSI+ZmluZEZvcndhcmRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRBY3Rpb25DbGFzcygpIj5nZXRBY3Rpb25DbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0QXR0cmlidXRlKCkiPmdldEF0dHJpYnV0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0Rm9ybUF0dHJpYnV0ZSgpIj5nZXRGb3JtQXR0cmlidXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRGb3JtQ2xhc3MoKSI+Z2V0Rm9ybUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRGb3JtUHJlZml4KCkiPmdldEZvcm1QcmVmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldEZvcm1TY29wZSgpIj5nZXRGb3JtU2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldEZvcm1TdWZmaXgoKSI+Z2V0Rm9ybVN1ZmZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0Rm9yd2FyZCgpIj5nZXRGb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRJbmNsdWRlKCkiPmdldEluY2x1ZGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldElucHV0KCkiPmdldElucHV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRJbnB1dEZvcm0oKSI+Z2V0SW5wdXRGb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRNYXBwaW5ncygpIj5nZXRNYXBwaW5nczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0TXVsdGlwYXJ0Q2xhc3MoKSI+Z2V0TXVsdGlwYXJ0Q2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0UGF0aCgpIj5nZXRQYXRoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRQcmVmaXgoKSI+Z2V0UHJlZml4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0U3VmZml4KCkiPmdldFN1ZmZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0VHlwZSgpIj5nZXRUeXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRVbmtub3duKCkiPmdldFVua25vd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldFZhbGlkYXRlKCkiPmdldFZhbGlkYXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNyZW1vdmVGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+cmVtb3ZlRm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0QWN0aW9uQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldEFjdGlvbkNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPnNldEF0dHJpYnV0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0Rm9ybUF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9ybUF0dHJpYnV0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0Rm9ybUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3JtQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEZvcm1QcmVmaXgoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcm1QcmVmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEZvcm1TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9ybVNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRGb3JtU3VmZml4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3JtU3VmZml4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRJbmNsdWRlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJbmNsdWRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRJbnB1dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW5wdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldElucHV0Rm9ybShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW5wdXRGb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRNYXBwaW5ncyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZ3MpIj5zZXRNYXBwaW5nczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0TXVsdGlwYXJ0Q2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE11bHRpcGFydENsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0UGF0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGF0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0UHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcmVmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0U3VmZml4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdWZmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldFR5cGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldFVua25vd24oYm9vbGVhbikiPnNldFVua25vd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldFZhbGlkYXRlKGJvb2xlYW4pIj5zZXRWYWxpZGF0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUmVxdWVzdEFjdGlvbk1hcHBpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgorUmVxdWVzdEFjdGlvbk1hcHBpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQj4oKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIHdpdGggdGhlIGRlc2lyZWQgZGVmYXVsdAorIGZvcm0gYmVhbiBzY29wZS48L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1Nlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9TZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3MTcwNmUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbApAQCAtMCwwICsxLDIwOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFNlc3Npb25BY3Rpb25NYXBwaW5nCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9WYWxpZGF0aW5nQWN0aW9uRm9ybS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZyI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyAgU2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uU2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5TZXNzaW9uQWN0aW9uTWFwcGluZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvREw+CisKKzxQPgorU3ViY2xhc3Mgb2YgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gdGhhdCBkZWZhdWx0cyB0aGUgZm9ybSBiZWFuCisgc2NvcGUgdG8gPGNvZGU+c2Vzc2lvbjwvY29kZT4uCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlNlc3Npb25BY3Rpb25NYXBwaW5nIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNhdHRyaWJ1dGUiPmF0dHJpYnV0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZm9yd2FyZCI+Zm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZm9yd2FyZHMiPmZvcndhcmRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNpbmNsdWRlIj5pbmNsdWRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNpbnB1dCI+aW5wdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2luc3RhbmNlIj5pbnN0YW5jZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjbWFwcGluZ3MiPm1hcHBpbmdzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNtdWx0aXBhcnRDbGFzcyI+bXVsdGlwYXJ0Q2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNwYXRoIj5wYXRoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNwcmVmaXgiPnByZWZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzdWZmaXgiPnN1ZmZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjdHlwZSI+dHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjdW5rbm93biI+dW5rbm93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjdmFsaWRhdGUiPnZhbGlkYXRlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9TZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sI1Nlc3Npb25BY3Rpb25NYXBwaW5nKCkiPlNlc3Npb25BY3Rpb25NYXBwaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2l0aCB0aGUgZGVzaXJlZCBkZWZhdWx0CisgZm9ybSBiZWFuIHNjb3BlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2FkZEZvcndhcmQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQpIj5hZGRGb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNjcmVhdGVGb3JtSW5zdGFuY2UoKSI+Y3JlYXRlRm9ybUluc3RhbmNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNmaW5kRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2ZpbmRGb3J3YXJkcygpIj5maW5kRm9yd2FyZHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldEFjdGlvbkNsYXNzKCkiPmdldEFjdGlvbkNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRBdHRyaWJ1dGUoKSI+Z2V0QXR0cmlidXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRGb3JtQXR0cmlidXRlKCkiPmdldEZvcm1BdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldEZvcm1DbGFzcygpIj5nZXRGb3JtQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldEZvcm1QcmVmaXgoKSI+Z2V0Rm9ybVByZWZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0Rm9ybVNjb3BlKCkiPmdldEZvcm1TY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0Rm9ybVN1ZmZpeCgpIj5nZXRGb3JtU3VmZml4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRGb3J3YXJkKCkiPmdldEZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldEluY2x1ZGUoKSI+Z2V0SW5jbHVkZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0SW5wdXQoKSI+Z2V0SW5wdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldElucHV0Rm9ybSgpIj5nZXRJbnB1dEZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldE1hcHBpbmdzKCkiPmdldE1hcHBpbmdzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRNdWx0aXBhcnRDbGFzcygpIj5nZXRNdWx0aXBhcnRDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRQYXJhbWV0ZXIoKSI+Z2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRQYXRoKCkiPmdldFBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldFByZWZpeCgpIj5nZXRQcmVmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRTdWZmaXgoKSI+Z2V0U3VmZml4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRUeXBlKCkiPmdldFR5cGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldFVua25vd24oKSI+Z2V0VW5rbm93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0VmFsaWRhdGUoKSI+Z2V0VmFsaWRhdGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3JlbW92ZUZvcndhcmQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQpIj5yZW1vdmVGb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRBY3Rpb25DbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWN0aW9uQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QXR0cmlidXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRGb3JtQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3JtQXR0cmlidXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRGb3JtQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcm1DbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0Rm9ybVByZWZpeChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9ybVByZWZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0Rm9ybVNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3JtU2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEZvcm1TdWZmaXgoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcm1TdWZmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldEluY2x1ZGUoamF2YS5sYW5nLlN0cmluZykiPnNldEluY2x1ZGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldElucHV0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRJbnB1dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0SW5wdXRGb3JtKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJbnB1dEZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldE1hcHBpbmdzKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5ncykiPnNldE1hcHBpbmdzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRNdWx0aXBhcnRDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TXVsdGlwYXJ0Q2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRQYXRoKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXRoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRQcmVmaXgoamF2YS5sYW5nLlN0cmluZykiPnNldFByZWZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNzZXRTdWZmaXgoamF2YS5sYW5nLlN0cmluZykiPnNldFN1ZmZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0VW5rbm93bihib29sZWFuKSI+c2V0VW5rbm93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjc2V0VmFsaWRhdGUoYm9vbGVhbikiPnNldFZhbGlkYXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJTZXNzaW9uQWN0aW9uTWFwcGluZygpIj48IS0tIC0tPjwvQT48SDM+CitTZXNzaW9uQWN0aW9uTWFwcGluZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlNlc3Npb25BY3Rpb25NYXBwaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2l0aCB0aGUgZGVzaXJlZCBkZWZhdWx0CisgZm9ybSBiZWFuIHNjb3BlLjwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9WYWxpZGF0aW5nQWN0aW9uRm9ybS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZyI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1ZhbGlkYXRpbmdBY3Rpb25Gb3JtLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vVmFsaWRhdGluZ0FjdGlvbkZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2UzYzJjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1ZhbGlkYXRpbmdBY3Rpb25Gb3JtLmh0bWwKQEAgLTAsMCArMSwyNDkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBWYWxpZGF0aW5nQWN0aW9uRm9ybQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlZhbGlkYXRpbmdBY3Rpb25Gb3JtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9GT05UPgorPEJSPgorQ2xhc3MgIFZhbGlkYXRpbmdBY3Rpb25Gb3JtPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm08L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlZhbGlkYXRpbmdBY3Rpb25Gb3JtPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFwcGxpY2F0aW9uIEFjdGlvbkZvcm0gYmVhbnMgc2hvdWxkIG5vdyBleHRlbmQgQWN0aW9uRm9ybQorICBkaXJlY3RseSwgYW5kIG92ZXJyaWRlIHRoZSB2YWxpZGF0ZSgpIG1ldGhvZCBpZiB0aGV5IHdpc2ggdG8gcHJvdmlkZQorICBzdWNoIHNlcnZpY2VzPC9JPgorPFA+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlZhbGlkYXRpbmdBY3Rpb25Gb3JtPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9ETD4KKworPFA+Cis8cD5BbiA8c3Ryb25nPlZhbGlkYXRpbmdBY3Rpb25Gb3JtPC9zdHJvbmc+IGlzIGEgSmF2YUJlYW4gb3B0aW9uYWxseQorIGFzc29jaWF0ZWQgd2l0aCBvbmUgb3IgbW9yZSA8Y29kZT5BY3Rpb25NYXBwaW5nczwvY29kZT4uICBTdWNoIGEgYmVhbiB3aWxsCisgaGF2ZSBoYWQgaXRzIHByb3BlcnRpZXMgaW5pdGlhbGl6ZWQgZnJvbSB0aGUgY29ycmVzcG9uZGluZyByZXF1ZXN0CisgcGFyYW1ldGVycyBiZWZvcmUgdGhlIGFjdGlvbidzIDxjb2RlPnBlcmZvcm0oKTwvY29kZT4gbWV0aG9kIGlzIGNhbGxlZC48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+SmVmZiBIdXRjaGlzb248L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5WYWxpZGF0aW5nQWN0aW9uRm9ybSI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjbXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIiPm11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9WYWxpZGF0aW5nQWN0aW9uRm9ybS5odG1sI1ZhbGlkYXRpbmdBY3Rpb25Gb3JtKCkiPlZhbGlkYXRpbmdBY3Rpb25Gb3JtPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZ1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9WYWxpZGF0aW5nQWN0aW9uRm9ybS5odG1sI3ZhbGlkYXRlKCkiPnZhbGlkYXRlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UGVyZm9ybSB2YWxpZGF0aW9ucyBvbiB0aGUgZm9ybSBpbnB1dCB2YWx1ZXMgaW5jbHVkZWQgaW4gdGhpcyBmb3JtIGJlYW4uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNnZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcigpIj5nZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNzZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcihvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpIj5zZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3ZhbGlkYXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3ZhbGlkYXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlZhbGlkYXRpbmdBY3Rpb25Gb3JtKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1ZhbGlkYXRpbmdBY3Rpb25Gb3JtPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+VmFsaWRhdGluZ0FjdGlvbkZvcm08L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJ2YWxpZGF0ZSgpIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmdbXSA8Qj52YWxpZGF0ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5QZXJmb3JtIHZhbGlkYXRpb25zIG9uIHRoZSBmb3JtIGlucHV0IHZhbHVlcyBpbmNsdWRlZCBpbiB0aGlzIGZvcm0gYmVhbi4KKyBJZiB2YWxpZGF0aW9uIGVycm9ycyBvY2N1ciwgcmV0dXJuIGEgU3RyaW5nIGFycmF5IGNvbnRhaW5pbmcgdGhlIG1lc3NhZ2UKKyBrZXlzIG9mIGNvcnJlc3BvbmRpbmcgZXJyb3IgbWVzc2FnZXMgKGluIG91ciBhcHBsaWNhdGlvbgorIE1lc3NhZ2VSZXNvdXJjZXMpIHRvIGJlIGRpc3BsYXllZC4gIElmIG5vIHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLAorIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjdmFsaWRhdGUoKSI+dmFsaWRhdGU8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1Nlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJWYWxpZGF0aW5nQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2UtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGEwYjgxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2UtZnJhbWUuaHRtbApAQCAtMCwwICsxLDYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbgorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT48L0ZPTlQ+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitDbGFzc2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uQmFzZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkJhc2U8L0E+Cis8QlI+Cis8QSBIUkVGPSJBY3Rpb25FcnJvci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkVycm9yPC9BPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uRXJyb3JzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uRXJyb3JzPC9BPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkZvcm08L0E+Cis8QlI+Cis8QSBIUkVGPSJBY3Rpb25Gb3JtQmVhbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkZvcm1CZWFuPC9BPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uRm9ybUJlYW5zLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uRm9ybUJlYW5zPC9BPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uRm9yd2FyZC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkZvcndhcmQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJBY3Rpb25Gb3J3YXJkcy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkZvcndhcmRzPC9BPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uTWFwcGluZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbk1hcHBpbmc8L0E+Cis8QlI+Cis8QSBIUkVGPSJBY3Rpb25NYXBwaW5nQmFzZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbk1hcHBpbmdCYXNlPC9BPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uTWFwcGluZ3MuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25NYXBwaW5nczwvQT4KKzxCUj4KKzxBIEhSRUY9IkFjdGlvblNlcnZsZXQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEJSPgorPEEgSFJFRj0iQWRkRGF0YVNvdXJjZVJ1bGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BZGREYXRhU291cmNlUnVsZTwvQT4KKzxCUj4KKzxBIEhSRUY9IkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Rm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJSZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJSZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlcXVlc3RBY3Rpb25NYXBwaW5nPC9BPgorPEJSPgorPEEgSFJFRj0iU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TZXNzaW9uQWN0aW9uTWFwcGluZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlZhbGlkYXRpbmdBY3Rpb25Gb3JtLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VmFsaWRhdGluZ0FjdGlvbkZvcm08L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDk0OGMxZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbApAQCAtMCwwICsxLDIwNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24KKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBQQUNLQUdFJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uCis8L0gyPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9CPjwvVEQ+Cis8VEQ+QW4gPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gaXMgYW4gYWRhcHRlciBiZXR3ZWVuIHRoZSBjb250ZW50cyBvZiBhbiBpbmNvbWluZworIEhUVFAgcmVxdWVzdCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYnVzaW5lc3MgbG9naWMgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQgdG8KKyBwcm9jZXNzIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbkJhc2UuaHRtbCI+QWN0aW9uQmFzZTwvQT48L0I+PC9URD4KKzxURD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcHBsaWNhdGlvbiBhY3Rpb24gY2xhc3NlcyBzaG91bGQgbm93IGV4dGVuZCBBY3Rpb24KKyBkaXJlY3RseSwgcmF0aGVyIHRoYW4gdGhpcyBjbGFzcy48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJBY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT48L0I+PC9URD4KKzxURD5BbiBlbmNhcHN1bGF0aW9uIG9mIGFuIGluZGl2aWR1YWwgZXJyb3IgbWVzc2FnZSByZXR1cm5lZCBieSB0aGUKKyA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2Qgb2YgYW4gPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4sIGNvbnNpc3RpbmcKKyBvZiBhIG1lc3NhZ2Uga2V5ICh0byBiZSB1c2VkIHRvIGxvb2sgdXAgbWVzc2FnZSB0ZXh0IGluIGFuIGFwcHJvcHJpYXRlCisgbWVzc2FnZSByZXNvdXJjZXMgZGF0YWJhc2UpIHBsdXMgdXAgdG8gZm91ciBwbGFjZWhvbGRlciBvYmplY3RzIHRoYXQgY2FuCisgYmUgdXNlZCBmb3IgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBpbiB0aGUgbWVzc2FnZSB0ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0I+PC9URD4KKzxURD5BIGNsYXNzIHRoYXQgZW5jYXBzdWxhdGVzIHRoZSBlcnJvciBtZXNzYWdlcyBiZWluZyByZXBvcnRlZCBieQorIHRoZSA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2Qgb2YgYW4gPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJBY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9CPjwvVEQ+Cis8VEQ+QW4gPHN0cm9uZz5BY3Rpb25Gb3JtPC9zdHJvbmc+IGlzIGEgSmF2YUJlYW4gb3B0aW9uYWxseSBhc3NvY2lhdGVkIHdpdGgKKyBvbmUgb3IgbW9yZSA8Y29kZT5BY3Rpb25NYXBwaW5nczwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJBY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT48L0I+PC9URD4KKzxURD5BbiA8c3Ryb25nPkFjdGlvbkZvcm1CZWFuPC9zdHJvbmc+IGlzIHRoZSBkZWZpbml0aW9uIG9mIGEgZm9ybSBiZWFuIHRoYXQKKyBpcyBsb2FkZWQgZnJvbSBhIDxjb2RlPiZsdDtmb3JtLWJlYW4mZ3Q7PC9jb2RlPiBlbGVtZW50IGluIHRoZSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJBY3Rpb25Gb3JtQmVhbnMuaHRtbCI+QWN0aW9uRm9ybUJlYW5zPC9BPjwvQj48L1REPgorPFREPkVuY2Fwc3VsYXRlIGEgY29sbGVjdGlvbiBvZiBBY3Rpb25Gb3JtQmVhbiBvYmplY3RzIHRoYXQgY2FuIGJlCisgYWRtaW5pc3RlcmVkIGFuZCBzZWFyY2hlZCwgd2hpbGUgaGlkaW5nIHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0I+PC9URD4KKzxURD5BbiA8c3Ryb25nPkFjdGlvbkZvcndhcmQ8L3N0cm9uZz4gcmVwcmVzZW50cyBhIGRlc3RpbmF0aW9uIHRvIHdoaWNoIHRoZQorIGNvbnRyb2xsZXIgc2VydmxldCwgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4sIG1pZ2h0IGJlIGRpcmVjdGVkIHRvCisgcGVyZm9ybSBhIDxjb2RlPlJlcXVlc3REaXNwYXRjaGVyLmZvcndhcmQoKTwvY29kZT4gb3IKKyA8Y29kZT5IdHRwU2VydmxldFJlc3BvbnNlLnNlbmRSZWRpcmVjdCgpPC9jb2RlPiB0bywgYXMgYSByZXN1bHQgb2YKKyBwcm9jZXNzaW5nIGFjdGl2aXRpZXMgb2YgYW4gPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbkZvcndhcmRzLmh0bWwiPkFjdGlvbkZvcndhcmRzPC9BPjwvQj48L1REPgorPFREPkVuY2Fwc3VsYXRlIGEgY29sbGVjdGlvbiBvZiBBY3Rpb25Gb3J3YXJkIG9iamVjdHMgdGhhdCBjYW4gYmUKKyBhZG1pbmlzdGVyZWQgYW5kIHNlYXJjaGVkLCB3aGlsZSBoaWRpbmcgdGhlIGludGVybmFsIGltcGxlbWVudGF0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvQj48L1REPgorPFREPkFuIDxzdHJvbmc+QWN0aW9uTWFwcGluZzwvc3Ryb25nPiByZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHRoZQorIGNvbnRyb2xsZXIgc2VydmxldCwgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4sIGtub3dzIGFib3V0IHRoZSBtYXBwaW5nCisgb2YgYSBwYXJ0aWN1bGFyIHJlcXVlc3QgdG8gYW4gaW5zdGFuY2Ugb2YgYSBwYXJ0aWN1bGFyIGFjdGlvbiBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbk1hcHBpbmdCYXNlLmh0bWwiPkFjdGlvbk1hcHBpbmdCYXNlPC9BPjwvQj48L1REPgorPFREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPk5vdyB0aGF0IEFjdGlvbk1hcHBpbmcgaXMgYSBjbGFzcywgeW91IHNob3VsZCB1c2UgaXQgaW50ZWFkPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+PC9CPjwvVEQ+Cis8VEQ+RW5jYXBzdWxhdGUgYSBjb2xsZWN0aW9uIG9mIEFjdGlvbk1hcHBpbmcgb2JqZWN0cyB0aGF0IGNhbiBiZQorIGFkbWluaXN0ZXJlZCBhbmQgc2VhcmNoZWQsIHdoaWxlIGhpZGluZyB0aGUgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJBY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9CPjwvVEQ+Cis8VEQ+PHN0cm9uZz5BY3Rpb25TZXJ2bGV0PC9zdHJvbmc+IHJlcHJlc2VudHMgdGhlICJjb250cm9sbGVyIiBpbiB0aGUKKyBNb2RlbC1WaWV3LUNvbnRyb2xsZXIgKE1WQykgZGVzaWduIHBhdHRlcm4gZm9yIHdlYiBhcHBsaWNhdGlvbnMgdGhhdCBpcworIGNvbW1vbmx5IGtub3duIGFzICJNb2RlbCAyIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFkZERhdGFTb3VyY2VSdWxlLmh0bWwiPkFkZERhdGFTb3VyY2VSdWxlPC9BPjwvQj48L1REPgorPFREPlByaXZhdGUgZGlnZXN0ZXIgPGNvZGU+UnVsZTwvY29kZT4gdGhhdCBhZGRzIGEgZGF0YSBzb3VyY2UgdG8gdGhlIHVuZGVybHlpbmcKKyA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkPC9BPjwvQj48L1REPgorPFREPkEgc3ViY2xhc3Mgb2YgPHN0cm9uZz5BY3Rpb25Gb3J3YXJkPC9zdHJvbmc+IHRoYXQgZGVmYXVsdHMgdGhlCisgPGNvZGU+cmVkaXJlY3Q8L2NvZGU+IGF0dHJpYnV0ZSB0byA8Y29kZT5mYWxzZTwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+UmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9BPjwvQj48L1REPgorPFREPkEgc3ViY2xhc3Mgb2YgPHN0cm9uZz5BY3Rpb25Gb3J3YXJkPC9zdHJvbmc+IHRoYXQgZGVmYXVsdHMgdGhlCisgPGNvZGU+cmVkaXJlY3Q8L2NvZGU+IGF0dHJpYnV0ZSB0byA8Y29kZT50cnVlPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlJlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiPlJlcXVlc3RBY3Rpb25NYXBwaW5nPC9BPjwvQj48L1REPgorPFREPlN1YmNsYXNzIG9mIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IHRoYXQgZGVmYXVsdHMgdGhlIGZvcm0gYmVhbgorIHNjb3BlIHRvIDxjb2RlPnJlcXVlc3Q8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCI+U2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0E+PC9CPjwvVEQ+Cis8VEQ+U3ViY2xhc3Mgb2YgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gdGhhdCBkZWZhdWx0cyB0aGUgZm9ybSBiZWFuCisgc2NvcGUgdG8gPGNvZGU+c2Vzc2lvbjwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJWYWxpZGF0aW5nQWN0aW9uRm9ybS5odG1sIj5WYWxpZGF0aW5nQWN0aW9uRm9ybTwvQT48L0I+PC9URD4KKzxURD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcHBsaWNhdGlvbiBBY3Rpb25Gb3JtIGJlYW5zIHNob3VsZCBub3cgZXh0ZW5kIEFjdGlvbkZvcm0KKyAgZGlyZWN0bHksIGFuZCBvdmVycmlkZSB0aGUgdmFsaWRhdGUoKSBtZXRob2QgaWYgdGhleSB3aXNoIHRvIHByb3ZpZGUKKyAgc3VjaCBzZXJ2aWNlczwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBQQUNLQUdFJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS10cmVlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNhNDc5MQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXRyZWUuaHRtbApAQCAtMCwwICsxLDEyNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIENsYXNzIEhpZXJhcmNoeQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorSGllcmFyY2h5IEZvciBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbgorPC9IMj4KKzwvQ0VOVEVSPgorPERMPgorPERUPjxCPlBhY2thZ2UgSGllcmFyY2hpZXM6IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctdHJlZS5odG1sIj5BbGwgUGFja2FnZXM8L0E+PC9ETD4KKzxIUj4KKzxIMj4KK0NsYXNzIEhpZXJhcmNoeQorPC9IMj4KKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEubGFuZy5PYmplY3Q8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj48Qj5BY3Rpb248L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uQmFzZS5odG1sIj48Qj5BY3Rpb25CYXNlPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj48Qj5BY3Rpb25FcnJvcjwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+PEI+QWN0aW9uRXJyb3JzPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+PEI+QWN0aW9uRm9ybTwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9WYWxpZGF0aW5nQWN0aW9uRm9ybS5odG1sIj48Qj5WYWxpZGF0aW5nQWN0aW9uRm9ybTwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+PEI+QWN0aW9uRm9ybUJlYW48L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPjxCPkFjdGlvbkZvcm1CZWFuczwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPkFjdGlvbkZvcndhcmQ8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+PEI+Rm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+PEI+QWN0aW9uRm9yd2FyZHM8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj48Qj5BY3Rpb25NYXBwaW5nPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdCYXNlLmh0bWwiPjxCPkFjdGlvbk1hcHBpbmdCYXNlPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiPjxCPlJlcXVlc3RBY3Rpb25NYXBwaW5nPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1Nlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwiPjxCPlNlc3Npb25BY3Rpb25NYXBwaW5nPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj48Qj5BY3Rpb25NYXBwaW5nczwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5HZW5lcmljU2VydmxldCAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5TZXJ2bGV0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQgKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+PEI+QWN0aW9uU2VydmxldDwvQj48L0E+PC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPjxCPlJ1bGU8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWRkRGF0YVNvdXJjZVJ1bGUuaHRtbCI+PEI+QWRkRGF0YVNvdXJjZVJ1bGU8L0I+PC9BPjwvVUw+Cis8L1VMPgorPC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3JtQmVhbkFjdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3JtQmVhbkFjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzODk2MzIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZEZvcm1CZWFuQWN0aW9uLmh0bWwKQEAgLTAsMCArMSwyNTYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBBZGRGb3JtQmVhbkFjdGlvbgorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZEZvcndhcmRBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFkZEZvcm1CZWFuQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9GT05UPgorPEJSPgorQ2xhc3MgIEFkZEZvcm1CZWFuQWN0aW9uPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuQWRkRm9ybUJlYW5BY3Rpb248L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWRkRm9ybUJlYW5BY3Rpb248L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9ETD4KKworPFA+Cis8cD5BIHN0YW5kYXJkIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgY2FsbHMgdGhlCisgPGNvZGU+YWRkRm9ybUJlYW4oKTwvY29kZT4gbWV0aG9kIG9mIG91ciBjb250cm9sbGVyIHNlcnZsZXQgdG8gYWRkIGEgbmV3CisgYWN0aW9uIGZvcm0gZGVmaW5pdGlvbiBkeW5hbWljYWxseS4gIFRoZSBuZXcgZGVmaW5pdGlvbiByZXBsYWNlcyBhbnkKKyBleGlzdGluZyBkZWZpbml0aW9uIGZvciB0aGUgc2FtZSBiZWFuIG5hbWUuICBUaGlzIGFjdGlvbiBleHBlY3RzIHJlcXVlc3QKKyBwYXJhbWV0ZXJzIHdob3NlIG5hbWVzIG1hdGNoIHRoZSBwcm9wZXJ0aWVzIG9mIDxjb2RlPkFjdGlvbkZvcm1CZWFuPC9jb2RlPi4KKyA8L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjREFUQV9TT1VSQ0VfS0VZIj5EQVRBX1NPVVJDRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFUlJPUl9LRVkiPkVSUk9SX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFWENFUFRJT05fS0VZIj5FWENFUFRJT05fS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUk1fQkVBTlNfS0VZIj5GT1JNX0JFQU5TX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JXQVJEU19LRVkiPkZPUldBUkRTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdfS0VZIj5NQVBQSU5HX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HU19LRVkiPk1BUFBJTkdTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFU19LRVkiPk1FU1NBR0VTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNVUxUSVBBUlRfS0VZIj5NVUxUSVBBUlRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjU0VSVkxFVF9LRVkiPlNFUlZMRVRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1RSQU5TQUNUSU9OX1RPS0VOX0tFWSI+VFJBTlNBQ1RJT05fVE9LRU5fS0VZPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkRm9ybUJlYW5BY3Rpb24uaHRtbCNBZGRGb3JtQmVhbkFjdGlvbigpIj5BZGRGb3JtQmVhbkFjdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkRm9ybUJlYW5BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZW5lcmF0ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZW5lcmF0ZVRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcygpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzQ2FuY2VsbGVkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc0NhbmNlbGxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzVG9rZW5WYWxpZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3Jlc2V0VG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0VG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZUVycm9ycyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzKSI+c2F2ZUVycm9yczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnNhdmVUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS51dGlsLkxvY2FsZSkiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+c2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCN0b0hleChieXRlW10pIj50b0hleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQWRkRm9ybUJlYW5BY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorQWRkRm9ybUJlYW5BY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BZGRGb3JtQmVhbkFjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorcGVyZm9ybTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPnBlcmZvcm08L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorIFJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlIGFuZCBob3cKKyBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSByZXNwb25zZSBoYXMKKyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+YWN0aW9uRm9ybTwvQ09ERT4gLSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSk8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnM8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkRm9yd2FyZEFjdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWRkRm9ybUJlYW5BY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZEZvcndhcmRBY3Rpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkRm9yd2FyZEFjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhM2I4OWUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZEZvcndhcmRBY3Rpb24uaHRtbApAQCAtMCwwICsxLDI1NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEFkZEZvcndhcmRBY3Rpb24KKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3JtQmVhbkFjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkTWFwcGluZ0FjdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWRkRm9yd2FyZEFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvRk9OVD4KKzxCUj4KK0NsYXNzICBBZGRGb3J3YXJkQWN0aW9uPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuQWRkRm9yd2FyZEFjdGlvbjwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5BZGRGb3J3YXJkQWN0aW9uPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvREw+CisKKzxQPgorPHA+QSBzdGFuZGFyZCA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGNhbGxzIHRoZQorIDxjb2RlPmFkZEZvcndhcmQoKTwvY29kZT4gbWV0aG9kIG9mIG91ciBjb250cm9sbGVyIHNlcnZsZXQgdG8gYWRkIGEgbmV3CisgYWN0aW9uIGZvcndhcmQgZGVmaW5pdGlvbiBkeW5hbWljYWxseS4gIFRoZSBuZXcgZGVmaW5pdGlvbiByZXBsYWNlcyBhbnkKKyBleGlzdGluZyBkZWZpbml0aW9uIGZvciB0aGUgc2FtZSBuYW1lLiAgVGhpcyBhY3Rpb24gZXhwZWN0cyByZXF1ZXN0CisgcGFyYW1ldGVycyB3aG9zZSBuYW1lcyBtYXRjaCB0aGUgcHJvcGVydGllcyBvZiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPi4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNEQVRBX1NPVVJDRV9LRVkiPkRBVEFfU09VUkNFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VSUk9SX0tFWSI+RVJST1JfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VYQ0VQVElPTl9LRVkiPkVYQ0VQVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9STV9CRUFOU19LRVkiPkZPUk1fQkVBTlNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUldBUkRTX0tFWSI+Rk9SV0FSRFNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0xPQ0FMRV9LRVkiPkxPQ0FMRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR19LRVkiPk1BUFBJTkdfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdTX0tFWSI+TUFQUElOR1NfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01FU1NBR0VTX0tFWSI+TUVTU0FHRVNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01VTFRJUEFSVF9LRVkiPk1VTFRJUEFSVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNTRVJWTEVUX0tFWSI+U0VSVkxFVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjVFJBTlNBQ1RJT05fVE9LRU5fS0VZIj5UUkFOU0FDVElPTl9UT0tFTl9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3J3YXJkQWN0aW9uLmh0bWwjQWRkRm9yd2FyZEFjdGlvbigpIj5BZGRGb3J3YXJkQWN0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3J3YXJkQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2VuZXJhdGVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2VuZXJhdGVUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoKSI+Z2V0UmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFNlcnZsZXQoKSI+Z2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc0NhbmNlbGxlZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aXNDYW5jZWxsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc1Rva2VuVmFsaWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNyZXNldFRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5yZXNldFRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVFcnJvcnMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycykiPnNhdmVFcnJvcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5zYXZlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEudXRpbC5Mb2NhbGUpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjdG9IZXgoYnl0ZVtdKSI+dG9IZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFkZEZvcndhcmRBY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorQWRkRm9yd2FyZEFjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFkZEZvcndhcmRBY3Rpb248L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InBlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3BlcmZvcm08L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiA8Qj5wZXJmb3JtPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKyBSZXR1cm4gYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2UgZGVzY3JpYmluZyB3aGVyZSBhbmQgaG93CisgY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgcmVzcG9uc2UgaGFzCisgYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlPEREPjxDT0RFPmFjdGlvbkZvcm08L0NPREU+IC0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmc8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZEZvcm1CZWFuQWN0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRNYXBwaW5nQWN0aW9uLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBZGRGb3J3YXJkQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRNYXBwaW5nQWN0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZE1hcHBpbmdBY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWY5NmY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRNYXBwaW5nQWN0aW9uLmh0bWwKQEAgLTAsMCArMSwyNTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBBZGRNYXBwaW5nQWN0aW9uCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkRm9yd2FyZEFjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFkZE1hcHBpbmdBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgQWRkTWFwcGluZ0FjdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbjwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkFkZE1hcHBpbmdBY3Rpb248L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWRkTWFwcGluZ0FjdGlvbjwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0RMPgorCis8UD4KKzxwPkEgc3RhbmRhcmQgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBjYWxscyB0aGUKKyA8Y29kZT5hZGRNYXBwaW5nKCk8L2NvZGU+IG1ldGhvZCBvZiBvdXIgY29udHJvbGxlciBzZXJ2bGV0IHRvIGFkZCBhIG5ldworIGFjdGlvbiBtYXBwaW5nIGRlZmluaXRpb24gZHluYW1pY2FsbHkuICBUaGUgbmV3IGRlZmluaXRpb24gcmVwbGFjZXMgYW55CisgZXhpc3RpbmcgZGVmaW5pdGlvbiBmb3IgdGhlIHNhbWUgbmFtZS4gIFRoaXMgYWN0aW9uIGV4cGVjdHMgcmVxdWVzdAorIHBhcmFtZXRlcnMgd2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHByb3BlcnRpZXMgb2YgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4uCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjREFUQV9TT1VSQ0VfS0VZIj5EQVRBX1NPVVJDRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFUlJPUl9LRVkiPkVSUk9SX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFWENFUFRJT05fS0VZIj5FWENFUFRJT05fS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUk1fQkVBTlNfS0VZIj5GT1JNX0JFQU5TX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JXQVJEU19LRVkiPkZPUldBUkRTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdfS0VZIj5NQVBQSU5HX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HU19LRVkiPk1BUFBJTkdTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFU19LRVkiPk1FU1NBR0VTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNVUxUSVBBUlRfS0VZIj5NVUxUSVBBUlRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjU0VSVkxFVF9LRVkiPlNFUlZMRVRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1RSQU5TQUNUSU9OX1RPS0VOX0tFWSI+VFJBTlNBQ1RJT05fVE9LRU5fS0VZPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkTWFwcGluZ0FjdGlvbi5odG1sI0FkZE1hcHBpbmdBY3Rpb24oKSI+QWRkTWFwcGluZ0FjdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkTWFwcGluZ0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dlbmVyYXRlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdlbmVyYXRlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKCkiPmdldFJlc291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRTZXJ2bGV0KCkiPmdldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNDYW5jZWxsZWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzQ2FuY2VsbGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzVG9rZW5WYWxpZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aXNUb2tlblZhbGlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcmVzZXRUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVzZXRUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlRXJyb3JzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMpIj5zYXZlRXJyb3JzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+c2F2ZVRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLnV0aWwuTG9jYWxlKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3RvSGV4KGJ5dGVbXSkiPnRvSGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJBZGRNYXBwaW5nQWN0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FkZE1hcHBpbmdBY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BZGRNYXBwaW5nQWN0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitwZXJmb3JtPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+cGVyZm9ybTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCisgUmV0dXJuIGFuIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIGRlc2NyaWJpbmcgd2hlcmUgYW5kIGhvdworIGNvbnRyb2wgc2hvdWxkIGJlIGZvcndhcmRlZCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlIHJlc3BvbnNlIGhhcworIGFscmVhZHkgYmVlbiBjb21wbGV0ZWQuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZTxERD48Q09ERT5hY3Rpb25Gb3JtPC9DT0RFPiAtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KTxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIEhUVFAgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VyczxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3J3YXJkQWN0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWRkTWFwcGluZ0FjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWJlMDY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sCkBAIC0wLDAgKzEsNDAwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgRGlzcGF0Y2hBY3Rpb24KKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRNYXBwaW5nQWN0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Gb3J3YXJkQWN0aW9uLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEaXNwYXRjaEFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvRk9OVD4KKzxCUj4KK0NsYXNzICBEaXNwYXRjaEFjdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbjwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkRpc3BhdGNoQWN0aW9uPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGFic3RyYWN0IGNsYXNzIDxCPkRpc3BhdGNoQWN0aW9uPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvREw+CisKKzxQPgorPHA+QW4gYWJzdHJhY3QgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBkaXNwYXRjaGVzIHRvIGEgcHVibGljCisgbWV0aG9kIHRoYXQgaXMgbmFtZWQgYnkgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHdob3NlIG5hbWUgaXMgc3BlY2lmaWVkCisgYnkgdGhlIDxjb2RlPnBhcmFtZXRlcjwvY29kZT4gcHJvcGVydHkgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyBBY3Rpb25NYXBwaW5nLiAgVGhpcyBBY3Rpb24gaXMgdXNlZnVsIGZvciBkZXZlbG9wZXJzIHdobyBwcmVmZXIgdG8KKyBjb21iaW5lIG1hbnkgc2ltaWxhciBhY3Rpb25zIGludG8gYSBzaW5nbGUgQWN0aW9uIGNsYXNzLCBpbiBvcmRlciB0bworIHNpbXBsaWZ5IHRoZWlyIGFwcGxpY2F0aW9uIGRlc2lnbi48L3A+CisKKyA8cD5UbyBjb25maWd1cmUgdGhlIHVzZSBvZiB0aGlzIGFjdGlvbiBpbiB5b3VyCisgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+IGZpbGUsIGNyZWF0ZSBhbiBlbnRyeSBsaWtlIHRoaXM6PC9wPgorCisgPGNvZGU+CisgICAmbHQ7YWN0aW9uIHBhdGg9Ii9zYXZlU3Vic2NyaXB0aW9uIgorICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkRpc3BhdGNoQWN0aW9uIgorICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb25Gb3JtIgorICAgICAgICAgIHNjb3BlPSJyZXF1ZXN0IgorICAgICAgICAgIGlucHV0PSIvc3Vic2NyaXB0aW9uLmpzcCIKKyAgICAgIHBhcmFtZXRlcj0ibWV0aG9kIi8mZ3Q7CisgPC9jb2RlPgorCisgPHA+d2hpY2ggd2lsbCB1c2UgdGhlIHZhbHVlIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciBuYW1lZCAibWV0aG9kIgorIHRvIHBpY2sgdGhlIGFwcHJvcHJpYXRlICJwZXJmb3JtIiBtZXRob2QsIHdoaWNoIG11c3QgaGF2ZSB0aGUgc2FtZQorIHNpZ25hdHVyZSAob3RoZXIgdGhhbiBtZXRob2QgbmFtZSkgb2YgdGhlIHN0YW5kYXJkIEFjdGlvbi5wZXJmb3JtKCkKKyBtZXRob2QuICBGb3IgZXhhbXBsZSwgeW91IG1pZ2h0IGhhdmUgdGhlIGZvbGxvd2luZyB0aHJlZSBtZXRob2RzIGluIHRoZQorIHNhbWUgYWN0aW9uOjwvcD4KKyA8dWw+CisgPGxpPnB1YmxpYyBBY3Rpb25Gb3J3YXJkIGRlbGV0ZShBY3Rpb25NYXBwaW5nIG1hcHBpbmcsIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgU2VydmxldEV4Y2VwdGlvbjwvbGk+CisgPGxpPnB1YmxpYyBBY3Rpb25Gb3J3YXJkIGluc2VydChBY3Rpb25NYXBwaW5nIG1hcHBpbmcsIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgU2VydmxldEV4Y2VwdGlvbjwvbGk+CisgPGxpPnB1YmxpYyBBY3Rpb25Gb3J3YXJkIHVwZGF0ZShBY3Rpb25NYXBwaW5nIG1hcHBpbmcsIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgU2VydmxldEV4Y2VwdGlvbjwvbGk+CisgPC91bD4KKyA8cD5hbmQgY2FsbCBvbmUgb2YgdGhlIG1ldGhvZHMgd2l0aCBhIFVSTCBsaWtlIHRoaXM6PC9wPgorIDxjb2RlPgorICAgaHR0cDovL2xvY2FsaG9zdDo4MDgwL215YXBwL3NhdmVTdWJzY3JpcHRpb24uZG8/bWV0aG9kPXVwZGF0ZQorIDwvY29kZT4KKworIDxwPjxzdHJvbmc+Tk9URTwvc3Ryb25nPiAtIEFsbCBvZiB0aGUgb3RoZXIgbWFwcGluZyBjaGFyYWN0ZXJpc3RpY3Mgb2YKKyB0aGlzIGFjdGlvbiBtdXN0IGJlIHNoYXJlZCBieSB0aGUgdmFyaW91cyBoYW5kbGVycy4gIFRoaXMgcGxhY2VzIHNvbWUKKyBjb25zdHJhaW50cyBvdmVyIHdoYXQgdHlwZXMgb2YgaGFuZGxlcnMgbWF5IHJlYXNvbmFibHkgYmUgcGFja2FnZWQgaW50bworIHRoZSBzYW1lIDxjb2RlPkRpc3BhdGNoQWN0aW9uPC9jb2RlPiBzdWJjbGFzcy48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+TmlhbGwgUGVtYmVydG9uIDxuaWFsbC5wZW1iZXJ0b25AYnRJbnRlcm5ldC5jb20+LCBDcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5DbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjY2xhenoiPmNsYXp6PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBDbGFzcyBpbnN0YW5jZSBvZiB0aGlzIDxjb2RlPkRpc3BhdGNoQWN0aW9uPC9jb2RlPiBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkhhc2hNYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI21ldGhvZHMiPm1ldGhvZHM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBNZXRob2Qgb2JqZWN0cyB3ZSBoYXZlIGludHJvc3BlY3RlZCBmb3IgdGhpcyBjbGFzcywKKyBrZXllZCBieSBtZXRob2QgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5DbGFzc1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCN0eXBlcyI+dHlwZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBhcmd1bWVudCB0eXBlIGNsYXNzZXMgZm9yIHRoZSByZWZsZWN0ZWQgbWV0aG9kIGNhbGwuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNEQVRBX1NPVVJDRV9LRVkiPkRBVEFfU09VUkNFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VSUk9SX0tFWSI+RVJST1JfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VYQ0VQVElPTl9LRVkiPkVYQ0VQVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9STV9CRUFOU19LRVkiPkZPUk1fQkVBTlNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUldBUkRTX0tFWSI+Rk9SV0FSRFNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0xPQ0FMRV9LRVkiPkxPQ0FMRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR19LRVkiPk1BUFBJTkdfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdTX0tFWSI+TUFQUElOR1NfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01FU1NBR0VTX0tFWSI+TUVTU0FHRVNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01VTFRJUEFSVF9LRVkiPk1VTFRJUEFSVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNTRVJWTEVUX0tFWSI+U0VSVkxFVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjVFJBTlNBQ1RJT05fVE9LRU5fS0VZIj5UUkFOU0FDVElPTl9UT0tFTl9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI0Rpc3BhdGNoQWN0aW9uKCkiPkRpc3BhdGNoQWN0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjZ2V0TWV0aG9kKGphdmEubGFuZy5TdHJpbmcpIj5nZXRNZXRob2Q8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ludHJvc3BlY3QgdGhlIGN1cnJlbnQgY2xhc3MgdG8gaWRlbnRpZnkgYSBtZXRob2Qgb2YgdGhlIHNwZWNpZmllZAorIG5hbWUgdGhhdCBhY2NlcHRzIHRoZSBzYW1lIHBhcmFtZXRlciB0eXBlcyBhcyB0aGUgPGNvZGU+cGVyZm9ybSgpPC9jb2RlPgorIG1ldGhvZCBkb2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2VuZXJhdGVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2VuZXJhdGVUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoKSI+Z2V0UmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFNlcnZsZXQoKSI+Z2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc0NhbmNlbGxlZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aXNDYW5jZWxsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc1Rva2VuVmFsaWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNyZXNldFRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5yZXNldFRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVFcnJvcnMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycykiPnNhdmVFcnJvcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5zYXZlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEudXRpbC5Mb2NhbGUpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjdG9IZXgoYnl0ZVtdKSI+dG9IZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY2xhenoiPjwhLS0gLS0+PC9BPjxIMz4KK2NsYXp6PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLkNsYXNzIDxCPmNsYXp6PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBDbGFzcyBpbnN0YW5jZSBvZiB0aGlzIDxjb2RlPkRpc3BhdGNoQWN0aW9uPC9jb2RlPiBjbGFzcy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1ldGhvZHMiPjwhLS0gLS0+PC9BPjxIMz4KK21ldGhvZHM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuSGFzaE1hcCA8Qj5tZXRob2RzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgTWV0aG9kIG9iamVjdHMgd2UgaGF2ZSBpbnRyb3NwZWN0ZWQgZm9yIHRoaXMgY2xhc3MsCisga2V5ZWQgYnkgbWV0aG9kIG5hbWUuICBUaGlzIGNvbGxlY3Rpb24gaXMgcG9wdWxhdGVkIGFzIGRpZmZlcmVudAorIG1ldGhvZHMgYXJlIGNhbGxlZCwgc28gdGhhdCBpbnRyb3NwZWN0aW9uIG5lZWRzIHRvIG9jY3VyIG9ubHkKKyBvbmNlIHBlciBtZXRob2QgbmFtZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0eXBlcyI+PCEtLSAtLT48L0E+PEgzPgordHlwZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuQ2xhc3NbXSA8Qj50eXBlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIGFyZ3VtZW50IHR5cGUgY2xhc3NlcyBmb3IgdGhlIHJlZmxlY3RlZCBtZXRob2QgY2FsbC4gIFRoZXNlCisgYXJlIHRoZSBzYW1lIGZvciBhbGwgY2FsbHMsIHNvIGNhbGN1bGF0ZSB0aGVtIG9ubHkgb25jZS48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRGlzcGF0Y2hBY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorRGlzcGF0Y2hBY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5EaXNwYXRjaEFjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorcGVyZm9ybTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPnBlcmZvcm08L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorIFJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlIGFuZCBob3cKKyBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSByZXNwb25zZSBoYXMKKyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+YWN0aW9uRm9ybTwvQ09ERT4gLSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSk8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnM8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXRob2QoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1ldGhvZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZCA8Qj5nZXRNZXRob2Q8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkludHJvc3BlY3QgdGhlIGN1cnJlbnQgY2xhc3MgdG8gaWRlbnRpZnkgYSBtZXRob2Qgb2YgdGhlIHNwZWNpZmllZAorIG5hbWUgdGhhdCBhY2NlcHRzIHRoZSBzYW1lIHBhcmFtZXRlciB0eXBlcyBhcyB0aGUgPGNvZGU+cGVyZm9ybSgpPC9jb2RlPgorIG1ldGhvZCBkb2VzLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgbWV0aG9kIHRvIGJlIGludHJvc3BlY3RlZDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIG5vIHN1Y2ggbWV0aG9kIGNhbiBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZE1hcHBpbmdBY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRpc3BhdGNoQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Gb3J3YXJkQWN0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjI2M2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Gb3J3YXJkQWN0aW9uLmh0bWwKQEAgLTAsMCArMSwzMDAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBGb3J3YXJkQWN0aW9uCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcndhcmRBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgRm9yd2FyZEFjdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbjwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkZvcndhcmRBY3Rpb248L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+Rm9yd2FyZEFjdGlvbjwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0RMPgorCis8UD4KKzxwPkFuIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgZm9yd2FyZHMgdG8gdGhlIGNvbnRleHQtcmVsYXRpdmUKKyBVUkkgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+IHByb3BlcnR5IG9mIG91ciBhc3NvY2lhdGVkCisgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4uICBUaGlzIGNhbiBiZSB1c2VkIHRvIGludGVncmF0ZSBTdHJ1dHMgd2l0aAorIG90aGVyIGJ1c2luZXNzIGxvZ2ljIGNvbXBvbmVudHMgdGhhdCBhcmUgaW1wbGVtZW50ZWQgYXMgc2VydmxldHMgKG9yIEpTUAorIHBhZ2VzKSwgYnV0IHN0aWxsIHRha2UgYWR2YW50YWdlIG9mIHRoZSBTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0J3MKKyBmdW5jdGlvbmFsaXR5IChzdWNoIGFzIHByb2Nlc3Npbmcgb2YgZm9ybSBiZWFucykuPC9wPgorCisgPHA+VG8gY29uZmlndXJlIHRoZSB1c2Ugb2YgdGhpcyBBY3Rpb24gaW4geW91cgorIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPiBmaWxlLCBjcmVhdGUgYW4gZW50cnkgbGlrZSB0aGlzOjwvcD4KKworIDxjb2RlPgorICAgJmx0O2FjdGlvbiBwYXRoPSIvc2F2ZVN1YnNjcmlwdGlvbiIKKyAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5Gb3J3YXJkQWN0aW9uIgorICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb25Gb3JtIgorICAgICAgICAgIHNjb3BlPSJyZXF1ZXN0IgorICAgICAgICAgIGlucHV0PSIvc3Vic2NyaXB0aW9uLmpzcCIKKyAgICAgIHBhcmFtZXRlcj0iL3BhdGgvdG8vcHJvY2Vzc2luZy9zZXJ2bGV0IiZndDsKKyA8L2NvZGU+CisKKyA8cD53aGljaCB3aWxsIGZvcndhcmQgY29udHJvbCB0byB0aGUgY29udGV4dC1yZWxhdGl2ZSBVUkkgc3BlY2lmaWVkIGJ5IHRoZQorIDxjb2RlPnBhcmFtZXRlcjwvY29kZT4gYXR0cmlidXRlLjwvcD4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNEQVRBX1NPVVJDRV9LRVkiPkRBVEFfU09VUkNFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VSUk9SX0tFWSI+RVJST1JfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VYQ0VQVElPTl9LRVkiPkVYQ0VQVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9STV9CRUFOU19LRVkiPkZPUk1fQkVBTlNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUldBUkRTX0tFWSI+Rk9SV0FSRFNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0xPQ0FMRV9LRVkiPkxPQ0FMRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR19LRVkiPk1BUFBJTkdfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdTX0tFWSI+TUFQUElOR1NfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01FU1NBR0VTX0tFWSI+TUVTU0FHRVNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01VTFRJUEFSVF9LRVkiPk1VTFRJUEFSVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNTRVJWTEVUX0tFWSI+U0VSVkxFVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjVFJBTlNBQ1RJT05fVE9LRU5fS0VZIj5UUkFOU0FDVElPTl9UT0tFTl9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Gb3J3YXJkQWN0aW9uLmh0bWwjRm9yd2FyZEFjdGlvbigpIj5Gb3J3YXJkQWN0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Gb3J3YXJkQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2VuZXJhdGVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2VuZXJhdGVUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoKSI+Z2V0UmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFNlcnZsZXQoKSI+Z2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc0NhbmNlbGxlZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aXNDYW5jZWxsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc1Rva2VuVmFsaWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNyZXNldFRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5yZXNldFRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVFcnJvcnMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycykiPnNhdmVFcnJvcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5zYXZlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEudXRpbC5Mb2NhbGUpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjdG9IZXgoYnl0ZVtdKSI+dG9IZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRm9yd2FyZEFjdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitGb3J3YXJkQWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Rm9yd2FyZEFjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorcGVyZm9ybTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPnBlcmZvcm08L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorIFJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlIGFuZCBob3cKKyBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSByZXNwb25zZSBoYXMKKyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+YWN0aW9uRm9ybTwvQ09ERT4gLSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSk8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnM8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcndhcmRBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwYmZmOGYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbApAQCAtMCwwICsxLDMwMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEluY2x1ZGVBY3Rpb24KKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Gb3J3YXJkQWN0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZWxvYWRBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkluY2x1ZGVBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgSW5jbHVkZUFjdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbjwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkluY2x1ZGVBY3Rpb248L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+SW5jbHVkZUFjdGlvbjwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0RMPgorCis8UD4KKzxwPkFuIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgaW5jbHVkZXMgdGhlIGNvbnRleHQtcmVsYXRpdmUKKyBVUkkgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+IHByb3BlcnR5IG9mIG91ciBhc3NvY2lhdGVkCisgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4uICBUaGlzIGNhbiBiZSB1c2VkIHRvIGludGVncmF0ZSBTdHJ1dHMgd2l0aAorIG90aGVyIGJ1c2luZXNzIGxvZ2ljIGNvbXBvbmVudHMgdGhhdCBhcmUgaW1wbGVtZW50ZWQgYXMgc2VydmxldHMgKG9yIEpTUAorIHBhZ2VzKSwgYnV0IHN0aWxsIHRha2UgYWR2YW50YWdlIG9mIHRoZSBTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0J3MKKyBmdW5jdGlvbmFsaXR5IChzdWNoIGFzIHByb2Nlc3Npbmcgb2YgZm9ybSBiZWFucykuPC9wPgorCisgPHA+VG8gY29uZmlndXJlIHRoZSB1c2Ugb2YgdGhpcyBBY3Rpb24gaW4geW91cgorIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPiBmaWxlLCBjcmVhdGUgYW4gZW50cnkgbGlrZSB0aGlzOjwvcD4KKworIDxjb2RlPgorICAgJmx0O2FjdGlvbiBwYXRoPSIvc2F2ZVN1YnNjcmlwdGlvbiIKKyAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5JbmNsdWRlQWN0aW9uIgorICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb25Gb3JtIgorICAgICAgICAgIHNjb3BlPSJyZXF1ZXN0IgorICAgICAgICAgIGlucHV0PSIvc3Vic2NyaXB0aW9uLmpzcCIKKyAgICAgIHBhcmFtZXRlcj0iL3BhdGgvdG8vcHJvY2Vzc2luZy9zZXJ2bGV0IiZndDsKKyA8L2NvZGU+CisKKyA8cD53aGljaCB3aWxsIGluY2x1ZGUgdGhlIGNvbnRleHQtcmVsYXRpdmUgVVJJIHNwZWNpZmllZCBieSB0aGUKKyA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+IGF0dHJpYnV0ZS48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9JbmNsdWRlQWN0aW9uLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjREFUQV9TT1VSQ0VfS0VZIj5EQVRBX1NPVVJDRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFUlJPUl9LRVkiPkVSUk9SX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFWENFUFRJT05fS0VZIj5FWENFUFRJT05fS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUk1fQkVBTlNfS0VZIj5GT1JNX0JFQU5TX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JXQVJEU19LRVkiPkZPUldBUkRTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdfS0VZIj5NQVBQSU5HX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HU19LRVkiPk1BUFBJTkdTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFU19LRVkiPk1FU1NBR0VTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNVUxUSVBBUlRfS0VZIj5NVUxUSVBBUlRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjU0VSVkxFVF9LRVkiPlNFUlZMRVRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1RSQU5TQUNUSU9OX1RPS0VOX0tFWSI+VFJBTlNBQ1RJT05fVE9LRU5fS0VZPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sI0luY2x1ZGVBY3Rpb24oKSI+SW5jbHVkZUFjdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dlbmVyYXRlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdlbmVyYXRlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKCkiPmdldFJlc291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRTZXJ2bGV0KCkiPmdldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNDYW5jZWxsZWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzQ2FuY2VsbGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzVG9rZW5WYWxpZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aXNUb2tlblZhbGlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcmVzZXRUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVzZXRUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlRXJyb3JzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMpIj5zYXZlRXJyb3JzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+c2F2ZVRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLnV0aWwuTG9jYWxlKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3RvSGV4KGJ5dGVbXSkiPnRvSGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkluY2x1ZGVBY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorSW5jbHVkZUFjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkluY2x1ZGVBY3Rpb248L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InBlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3BlcmZvcm08L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiA8Qj5wZXJmb3JtPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKyBSZXR1cm4gYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2UgZGVzY3JpYmluZyB3aGVyZSBhbmQgaG93CisgY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgcmVzcG9uc2UgaGFzCisgYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlPEREPjxDT0RFPmFjdGlvbkZvcm08L0NPREU+IC0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmc8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbG9hZEFjdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW5jbHVkZUFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVsb2FkQWN0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbG9hZEFjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyZWM3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbG9hZEFjdGlvbi5odG1sCkBAIC0wLDAgKzEsMjU0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgUmVsb2FkQWN0aW9uCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlRm9ybUJlYW5BY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlbG9hZEFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvRk9OVD4KKzxCUj4KK0NsYXNzICBSZWxvYWRBY3Rpb248L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb248L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5SZWxvYWRBY3Rpb248L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UmVsb2FkQWN0aW9uPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvREw+CisKKzxQPgorPHA+QSBzdGFuZGFyZCA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGNhbGxzIHRoZQorIDxjb2RlPnJlbG9hZCgpPC9jb2RlPiBtZXRob2Qgb2Ygb3VyIGNvbnRyb2xsZXIgc2VydmxldCB0bworIHJlbG9hZCBpdHMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjb25maWd1cmF0aW9uCisgZmlsZXMgKHdoaWNoIGhhdmUgcHJlc3VtYWJseSBiZWVuIHVwZGF0ZWQpIGR5bmFtaWNhbGx5LjwvcD4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNEQVRBX1NPVVJDRV9LRVkiPkRBVEFfU09VUkNFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VSUk9SX0tFWSI+RVJST1JfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VYQ0VQVElPTl9LRVkiPkVYQ0VQVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9STV9CRUFOU19LRVkiPkZPUk1fQkVBTlNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUldBUkRTX0tFWSI+Rk9SV0FSRFNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0xPQ0FMRV9LRVkiPkxPQ0FMRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR19LRVkiPk1BUFBJTkdfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdTX0tFWSI+TUFQUElOR1NfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01FU1NBR0VTX0tFWSI+TUVTU0FHRVNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01VTFRJUEFSVF9LRVkiPk1VTFRJUEFSVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNTRVJWTEVUX0tFWSI+U0VSVkxFVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjVFJBTlNBQ1RJT05fVE9LRU5fS0VZIj5UUkFOU0FDVElPTl9UT0tFTl9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZWxvYWRBY3Rpb24uaHRtbCNSZWxvYWRBY3Rpb24oKSI+UmVsb2FkQWN0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZWxvYWRBY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZW5lcmF0ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZW5lcmF0ZVRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcygpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzQ2FuY2VsbGVkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc0NhbmNlbGxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzVG9rZW5WYWxpZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3Jlc2V0VG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0VG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZUVycm9ycyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzKSI+c2F2ZUVycm9yczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnNhdmVUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS51dGlsLkxvY2FsZSkiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+c2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCN0b0hleChieXRlW10pIj50b0hleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUmVsb2FkQWN0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1JlbG9hZEFjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJlbG9hZEFjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorcGVyZm9ybTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPnBlcmZvcm08L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorIFJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlIGFuZCBob3cKKyBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSByZXNwb25zZSBoYXMKKyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+YWN0aW9uRm9ybTwvQ09ERT4gLSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSk8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnM8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlRm9ybUJlYW5BY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlbG9hZEFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlRm9ybUJlYW5BY3Rpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlRm9ybUJlYW5BY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGIzMjZhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVGb3JtQmVhbkFjdGlvbi5odG1sCkBAIC0wLDAgKzEsMjU0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgUmVtb3ZlRm9ybUJlYW5BY3Rpb24KKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZWxvYWRBY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZUZvcndhcmRBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlbW92ZUZvcm1CZWFuQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9GT05UPgorPEJSPgorQ2xhc3MgIFJlbW92ZUZvcm1CZWFuQWN0aW9uPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuUmVtb3ZlRm9ybUJlYW5BY3Rpb248L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UmVtb3ZlRm9ybUJlYW5BY3Rpb248L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9ETD4KKworPFA+Cis8cD5BIHN0YW5kYXJkIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgY2FsbHMgdGhlCisgPGNvZGU+cmVtb3ZlRm9ybUJlYW4oKTwvY29kZT4gbWV0aG9kIG9mIG91ciBjb250cm9sbGVyIHNlcnZsZXQgdG8gcmVtb3ZlIGFuCisgYWN0aW9uIGZvcm0gZGVmaW5pdGlvbiBkeW5hbWljYWxseS4gIFRoZSBkZWZpbml0aW9uIHRvIGJlIHJlbW92ZWQgaXMKKyBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IHJlcXVlc3RwYXJhbWV0ZXIuPC9wPgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0RBVEFfU09VUkNFX0tFWSI+REFUQV9TT1VSQ0VfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRVJST1JfS0VZIj5FUlJPUl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRVhDRVBUSU9OX0tFWSI+RVhDRVBUSU9OX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JNX0JFQU5TX0tFWSI+Rk9STV9CRUFOU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9SV0FSRFNfS0VZIj5GT1JXQVJEU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTE9DQUxFX0tFWSI+TE9DQUxFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HX0tFWSI+TUFQUElOR19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR1NfS0VZIj5NQVBQSU5HU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUVTU0FHRVNfS0VZIj5NRVNTQUdFU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTVVMVElQQVJUX0tFWSI+TVVMVElQQVJUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1NFUlZMRVRfS0VZIj5TRVJWTEVUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNUUkFOU0FDVElPTl9UT0tFTl9LRVkiPlRSQU5TQUNUSU9OX1RPS0VOX0tFWTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZUZvcm1CZWFuQWN0aW9uLmh0bWwjUmVtb3ZlRm9ybUJlYW5BY3Rpb24oKSI+UmVtb3ZlRm9ybUJlYW5BY3Rpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZUZvcm1CZWFuQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2VuZXJhdGVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2VuZXJhdGVUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoKSI+Z2V0UmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFNlcnZsZXQoKSI+Z2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc0NhbmNlbGxlZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aXNDYW5jZWxsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc1Rva2VuVmFsaWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNyZXNldFRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5yZXNldFRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVFcnJvcnMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycykiPnNhdmVFcnJvcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5zYXZlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEudXRpbC5Mb2NhbGUpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjdG9IZXgoYnl0ZVtdKSI+dG9IZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlJlbW92ZUZvcm1CZWFuQWN0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1JlbW92ZUZvcm1CZWFuQWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UmVtb3ZlRm9ybUJlYW5BY3Rpb248L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InBlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3BlcmZvcm08L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiA8Qj5wZXJmb3JtPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKyBSZXR1cm4gYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2UgZGVzY3JpYmluZyB3aGVyZSBhbmQgaG93CisgY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgcmVzcG9uc2UgaGFzCisgYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlPEREPjxDT0RFPmFjdGlvbkZvcm08L0NPREU+IC0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmc8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbG9hZEFjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlRm9yd2FyZEFjdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVtb3ZlRm9ybUJlYW5BY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZUZvcndhcmRBY3Rpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlRm9yd2FyZEFjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhZjVjYTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZUZvcndhcmRBY3Rpb24uaHRtbApAQCAtMCwwICsxLDI1NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFJlbW92ZUZvcndhcmRBY3Rpb24KKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVGb3JtQmVhbkFjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlTWFwcGluZ0FjdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVtb3ZlRm9yd2FyZEFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvRk9OVD4KKzxCUj4KK0NsYXNzICBSZW1vdmVGb3J3YXJkQWN0aW9uPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuUmVtb3ZlRm9yd2FyZEFjdGlvbjwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5SZW1vdmVGb3J3YXJkQWN0aW9uPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvREw+CisKKzxQPgorPHA+QSBzdGFuZGFyZCA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGNhbGxzIHRoZQorIDxjb2RlPnJlbW92ZUZvcndhcmQoKTwvY29kZT4gbWV0aG9kIG9mIG91ciBjb250cm9sbGVyIHNlcnZsZXQgdG8gcmVtb3ZlIGFuCisgYWN0aW9uIGZvcndhcmQgZGVmaW5pdGlvbiBkeW5hbWljYWxseS4gIFRoZSBkZWZpbml0aW9uIHRvIGJlIHJlbW92ZWQgaXMKKyBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IHJlcXVlc3RwYXJhbWV0ZXIuPC9wPgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0RBVEFfU09VUkNFX0tFWSI+REFUQV9TT1VSQ0VfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRVJST1JfS0VZIj5FUlJPUl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRVhDRVBUSU9OX0tFWSI+RVhDRVBUSU9OX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JNX0JFQU5TX0tFWSI+Rk9STV9CRUFOU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9SV0FSRFNfS0VZIj5GT1JXQVJEU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTE9DQUxFX0tFWSI+TE9DQUxFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HX0tFWSI+TUFQUElOR19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR1NfS0VZIj5NQVBQSU5HU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUVTU0FHRVNfS0VZIj5NRVNTQUdFU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTVVMVElQQVJUX0tFWSI+TVVMVElQQVJUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1NFUlZMRVRfS0VZIj5TRVJWTEVUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNUUkFOU0FDVElPTl9UT0tFTl9LRVkiPlRSQU5TQUNUSU9OX1RPS0VOX0tFWTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZUZvcndhcmRBY3Rpb24uaHRtbCNSZW1vdmVGb3J3YXJkQWN0aW9uKCkiPlJlbW92ZUZvcndhcmRBY3Rpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZUZvcndhcmRBY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZW5lcmF0ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZW5lcmF0ZVRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcygpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzQ2FuY2VsbGVkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc0NhbmNlbGxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzVG9rZW5WYWxpZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3Jlc2V0VG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0VG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZUVycm9ycyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzKSI+c2F2ZUVycm9yczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnNhdmVUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS51dGlsLkxvY2FsZSkiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+c2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCN0b0hleChieXRlW10pIj50b0hleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUmVtb3ZlRm9yd2FyZEFjdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitSZW1vdmVGb3J3YXJkQWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UmVtb3ZlRm9yd2FyZEFjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorcGVyZm9ybTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPnBlcmZvcm08L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorIFJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlIGFuZCBob3cKKyBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSByZXNwb25zZSBoYXMKKyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+YWN0aW9uRm9ybTwvQ09ERT4gLSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSk8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnM8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlRm9ybUJlYW5BY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZU1hcHBpbmdBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlbW92ZUZvcndhcmRBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZU1hcHBpbmdBY3Rpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlTWFwcGluZ0FjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMWFhZmIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZU1hcHBpbmdBY3Rpb24uaHRtbApAQCAtMCwwICsxLDI1NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFJlbW92ZU1hcHBpbmdBY3Rpb24KKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVGb3J3YXJkQWN0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZW1vdmVNYXBwaW5nQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9GT05UPgorPEJSPgorQ2xhc3MgIFJlbW92ZU1hcHBpbmdBY3Rpb248L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb248L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5SZW1vdmVNYXBwaW5nQWN0aW9uPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlJlbW92ZU1hcHBpbmdBY3Rpb248L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9ETD4KKworPFA+Cis8cD5BIHN0YW5kYXJkIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgY2FsbHMgdGhlCisgPGNvZGU+cmVtb3ZlTWFwcGluZygpPC9jb2RlPiBtZXRob2Qgb2Ygb3VyIGNvbnRyb2xsZXIgc2VydmxldCB0byByZW1vdmUgYW4KKyBhY3Rpb24gbWFwcGluZyBkZWZpbml0aW9uIGR5bmFtaWNhbGx5LiAgVGhlIGRlZmluaXRpb24gdG8gYmUgcmVtb3ZlZCBpcworIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+cGF0aDwvY29kZT4gcmVxdWVzdHBhcmFtZXRlci48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjREFUQV9TT1VSQ0VfS0VZIj5EQVRBX1NPVVJDRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFUlJPUl9LRVkiPkVSUk9SX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFWENFUFRJT05fS0VZIj5FWENFUFRJT05fS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUk1fQkVBTlNfS0VZIj5GT1JNX0JFQU5TX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JXQVJEU19LRVkiPkZPUldBUkRTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdfS0VZIj5NQVBQSU5HX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HU19LRVkiPk1BUFBJTkdTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFU19LRVkiPk1FU1NBR0VTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNVUxUSVBBUlRfS0VZIj5NVUxUSVBBUlRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjU0VSVkxFVF9LRVkiPlNFUlZMRVRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1RSQU5TQUNUSU9OX1RPS0VOX0tFWSI+VFJBTlNBQ1RJT05fVE9LRU5fS0VZPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlTWFwcGluZ0FjdGlvbi5odG1sI1JlbW92ZU1hcHBpbmdBY3Rpb24oKSI+UmVtb3ZlTWFwcGluZ0FjdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlTWFwcGluZ0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dlbmVyYXRlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdlbmVyYXRlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKCkiPmdldFJlc291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRTZXJ2bGV0KCkiPmdldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNDYW5jZWxsZWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzQ2FuY2VsbGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzVG9rZW5WYWxpZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aXNUb2tlblZhbGlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcmVzZXRUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVzZXRUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlRXJyb3JzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMpIj5zYXZlRXJyb3JzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+c2F2ZVRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLnV0aWwuTG9jYWxlKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3RvSGV4KGJ5dGVbXSkiPnRvSGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJSZW1vdmVNYXBwaW5nQWN0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1JlbW92ZU1hcHBpbmdBY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5SZW1vdmVNYXBwaW5nQWN0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitwZXJmb3JtPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+cGVyZm9ybTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCisgUmV0dXJuIGFuIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIGRlc2NyaWJpbmcgd2hlcmUgYW5kIGhvdworIGNvbnRyb2wgc2hvdWxkIGJlIGZvcndhcmRlZCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlIHJlc3BvbnNlIGhhcworIGFscmVhZHkgYmVlbiBjb21wbGV0ZWQuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZTxERD48Q09ERT5hY3Rpb25Gb3JtPC9DT0RFPiAtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KTxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIEhUVFAgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VyczxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVGb3J3YXJkQWN0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZW1vdmVNYXBwaW5nQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLWZyYW1lLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2UtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDYwMWQzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0E+PC9GT05UPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorQ2xhc3NlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9IkFkZEZvcm1CZWFuQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWRkRm9ybUJlYW5BY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJBZGRGb3J3YXJkQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWRkRm9yd2FyZEFjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9IkFkZE1hcHBpbmdBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BZGRNYXBwaW5nQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0iRGlzcGF0Y2hBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EaXNwYXRjaEFjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9IkZvcndhcmRBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Gb3J3YXJkQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0iSW5jbHVkZUFjdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkluY2x1ZGVBY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJSZWxvYWRBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZWxvYWRBY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJSZW1vdmVGb3JtQmVhbkFjdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlbW92ZUZvcm1CZWFuQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0iUmVtb3ZlRm9yd2FyZEFjdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlbW92ZUZvcndhcmRBY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJSZW1vdmVNYXBwaW5nQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVtb3ZlTWFwcGluZ0FjdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjYjFhZjgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zCis8L0gyPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFkZEZvcm1CZWFuQWN0aW9uLmh0bWwiPkFkZEZvcm1CZWFuQWN0aW9uPC9BPjwvQj48L1REPgorPFREPkEgc3RhbmRhcmQgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBjYWxscyB0aGUKKyA8Y29kZT5hZGRGb3JtQmVhbigpPC9jb2RlPiBtZXRob2Qgb2Ygb3VyIGNvbnRyb2xsZXIgc2VydmxldCB0byBhZGQgYSBuZXcKKyBhY3Rpb24gZm9ybSBkZWZpbml0aW9uIGR5bmFtaWNhbGx5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQWRkRm9yd2FyZEFjdGlvbi5odG1sIj5BZGRGb3J3YXJkQWN0aW9uPC9BPjwvQj48L1REPgorPFREPkEgc3RhbmRhcmQgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBjYWxscyB0aGUKKyA8Y29kZT5hZGRGb3J3YXJkKCk8L2NvZGU+IG1ldGhvZCBvZiBvdXIgY29udHJvbGxlciBzZXJ2bGV0IHRvIGFkZCBhIG5ldworIGFjdGlvbiBmb3J3YXJkIGRlZmluaXRpb24gZHluYW1pY2FsbHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJBZGRNYXBwaW5nQWN0aW9uLmh0bWwiPkFkZE1hcHBpbmdBY3Rpb248L0E+PC9CPjwvVEQ+Cis8VEQ+QSBzdGFuZGFyZCA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGNhbGxzIHRoZQorIDxjb2RlPmFkZE1hcHBpbmcoKTwvY29kZT4gbWV0aG9kIG9mIG91ciBjb250cm9sbGVyIHNlcnZsZXQgdG8gYWRkIGEgbmV3CisgYWN0aW9uIG1hcHBpbmcgZGVmaW5pdGlvbiBkeW5hbWljYWxseS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkRpc3BhdGNoQWN0aW9uLmh0bWwiPkRpc3BhdGNoQWN0aW9uPC9BPjwvQj48L1REPgorPFREPkFuIGFic3RyYWN0IDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgZGlzcGF0Y2hlcyB0byBhIHB1YmxpYworIG1ldGhvZCB0aGF0IGlzIG5hbWVkIGJ5IHRoZSByZXF1ZXN0IHBhcmFtZXRlciB3aG9zZSBuYW1lIGlzIHNwZWNpZmllZAorIGJ5IHRoZSA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+IHByb3BlcnR5IG9mIHRoZSBjb3JyZXNwb25kaW5nCisgQWN0aW9uTWFwcGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkZvcndhcmRBY3Rpb24uaHRtbCI+Rm9yd2FyZEFjdGlvbjwvQT48L0I+PC9URD4KKzxURD5BbiA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGZvcndhcmRzIHRvIHRoZSBjb250ZXh0LXJlbGF0aXZlCisgVVJJIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+cGFyYW1ldGVyPC9jb2RlPiBwcm9wZXJ0eSBvZiBvdXIgYXNzb2NpYXRlZAorIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iSW5jbHVkZUFjdGlvbi5odG1sIj5JbmNsdWRlQWN0aW9uPC9BPjwvQj48L1REPgorPFREPkFuIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgaW5jbHVkZXMgdGhlIGNvbnRleHQtcmVsYXRpdmUKKyBVUkkgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+IHByb3BlcnR5IG9mIG91ciBhc3NvY2lhdGVkCisgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSZWxvYWRBY3Rpb24uaHRtbCI+UmVsb2FkQWN0aW9uPC9BPjwvQj48L1REPgorPFREPkEgc3RhbmRhcmQgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBjYWxscyB0aGUKKyA8Y29kZT5yZWxvYWQoKTwvY29kZT4gbWV0aG9kIG9mIG91ciBjb250cm9sbGVyIHNlcnZsZXQgdG8KKyByZWxvYWQgaXRzIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gZnJvbSB0aGUgY29uZmlndXJhdGlvbgorIGZpbGVzICh3aGljaCBoYXZlIHByZXN1bWFibHkgYmVlbiB1cGRhdGVkKSBkeW5hbWljYWxseS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlJlbW92ZUZvcm1CZWFuQWN0aW9uLmh0bWwiPlJlbW92ZUZvcm1CZWFuQWN0aW9uPC9BPjwvQj48L1REPgorPFREPkEgc3RhbmRhcmQgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBjYWxscyB0aGUKKyA8Y29kZT5yZW1vdmVGb3JtQmVhbigpPC9jb2RlPiBtZXRob2Qgb2Ygb3VyIGNvbnRyb2xsZXIgc2VydmxldCB0byByZW1vdmUgYW4KKyBhY3Rpb24gZm9ybSBkZWZpbml0aW9uIGR5bmFtaWNhbGx5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUmVtb3ZlRm9yd2FyZEFjdGlvbi5odG1sIj5SZW1vdmVGb3J3YXJkQWN0aW9uPC9BPjwvQj48L1REPgorPFREPkEgc3RhbmRhcmQgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBjYWxscyB0aGUKKyA8Y29kZT5yZW1vdmVGb3J3YXJkKCk8L2NvZGU+IG1ldGhvZCBvZiBvdXIgY29udHJvbGxlciBzZXJ2bGV0IHRvIHJlbW92ZSBhbgorIGFjdGlvbiBmb3J3YXJkIGRlZmluaXRpb24gZHluYW1pY2FsbHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSZW1vdmVNYXBwaW5nQWN0aW9uLmh0bWwiPlJlbW92ZU1hcHBpbmdBY3Rpb248L0E+PC9CPjwvVEQ+Cis8VEQ+QSBzdGFuZGFyZCA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGNhbGxzIHRoZQorIDxjb2RlPnJlbW92ZU1hcHBpbmcoKTwvY29kZT4gbWV0aG9kIG9mIG91ciBjb250cm9sbGVyIHNlcnZsZXQgdG8gcmVtb3ZlIGFuCisgYWN0aW9uIG1hcHBpbmcgZGVmaW5pdGlvbiBkeW5hbWljYWxseS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS10cmVlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzMDgzNjUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTA0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zIENsYXNzIEhpZXJhcmNoeQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+CitIaWVyYXJjaHkgRm9yIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucworPC9IMj4KKzwvQ0VOVEVSPgorPERMPgorPERUPjxCPlBhY2thZ2UgSGllcmFyY2hpZXM6IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctdHJlZS5odG1sIj5BbGwgUGFja2FnZXM8L0E+PC9ETD4KKzxIUj4KKzxIMj4KK0NsYXNzIEhpZXJhcmNoeQorPC9IMj4KKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEubGFuZy5PYmplY3Q8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj48Qj5BY3Rpb248L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3JtQmVhbkFjdGlvbi5odG1sIj48Qj5BZGRGb3JtQmVhbkFjdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZEZvcndhcmRBY3Rpb24uaHRtbCI+PEI+QWRkRm9yd2FyZEFjdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0FkZE1hcHBpbmdBY3Rpb24uaHRtbCI+PEI+QWRkTWFwcGluZ0FjdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPjxCPkRpc3BhdGNoQWN0aW9uPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sIj48Qj5Gb3J3YXJkQWN0aW9uPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sIj48Qj5JbmNsdWRlQWN0aW9uPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVsb2FkQWN0aW9uLmh0bWwiPjxCPlJlbG9hZEFjdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZUZvcm1CZWFuQWN0aW9uLmh0bWwiPjxCPlJlbW92ZUZvcm1CZWFuQWN0aW9uPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlRm9yd2FyZEFjdGlvbi5odG1sIj48Qj5SZW1vdmVGb3J3YXJkQWN0aW9uPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvUmVtb3ZlTWFwcGluZ0FjdGlvbi5odG1sIj48Qj5SZW1vdmVNYXBwaW5nQWN0aW9uPC9CPjwvQT48L1VMPgorPC9VTD4KKzwvVUw+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbE1ldGhvZFJ1bGUuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVmODZhYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwKQEAgLTAsMCArMSw0MzkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBDYWxsTWV0aG9kUnVsZQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsUGFyYW1SdWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDYWxsTWV0aG9kUnVsZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXI8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgQ2FsbE1ldGhvZFJ1bGU8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLlJ1bGU8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuQ2FsbE1ldGhvZFJ1bGU8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+Q2FsbE1ldGhvZFJ1bGU8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj5SdWxlPC9BPjwvREw+CisKKzxQPgorUnVsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGNhbGxzIGEgbWV0aG9kIG9uIHRoZSB0b3AgKHBhcmVudCkKKyBvYmplY3QsIHBhc3NpbmcgYXJndW1lbnRzIGNvbGxlY3RlZCBmcm9tIHN1YnNlcXVlbnQKKyA8Y29kZT5DYWxsUGFyYW1SdWxlPC9jb2RlPiBydWxlcyBvciBmcm9tIHRoZSBib2R5IG9mIHRoaXMKKyBlbGVtZW50LgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsTWV0aG9kUnVsZS5odG1sI2JvZHlUZXh0Ij5ib2R5VGV4dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYm9keSB0ZXh0IGNvbGxlY3RlZCBmcm9tIHRoaXMgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbE1ldGhvZFJ1bGUuaHRtbCNtZXRob2ROYW1lIj5tZXRob2ROYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXRob2QgbmFtZSB0byBjYWxsIG9uIHRoZSBwYXJlbnQgb2JqZWN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwjcGFyYW1Db3VudCI+cGFyYW1Db3VudDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbnVtYmVyIG9mIHBhcmFtZXRlcnMgdG8gY29sbGVjdCBmcm9tIDxjb2RlPk1ldGhvZFBhcmFtPC9jb2RlPiBydWxlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5DbGFzc1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwjcGFyYW1UeXBlcyI+cGFyYW1UeXBlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcGFyYW1ldGVyIHR5cGVzIG9mIHRoZSBwYXJhbWV0ZXJzIHRvIGJlIGNvbGxlY3RlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuUnVsZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2RpZ2VzdGVyIj5kaWdlc3RlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsTWV0aG9kUnVsZS5odG1sI0NhbGxNZXRob2RSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyLCBqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj5DYWxsTWV0aG9kUnVsZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPiZuYnNwO2RpZ2VzdGVyLAorICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZE5hbWUsCisgICAgICAgICAgICAgICBpbnQmbmJzcDtwYXJhbUNvdW50KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgImNhbGwgbWV0aG9kIiBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBtZXRob2QgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwjQ2FsbE1ldGhvZFJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcsIGludCwgamF2YS5sYW5nLkNsYXNzW10pIj5DYWxsTWV0aG9kUnVsZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPiZuYnNwO2RpZ2VzdGVyLAorICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZE5hbWUsCisgICAgICAgICAgICAgICBpbnQmbmJzcDtwYXJhbUNvdW50LAorICAgICAgICAgICAgICAgamF2YS5sYW5nLkNsYXNzW10mbmJzcDtwYXJhbVR5cGVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgImNhbGwgbWV0aG9kIiBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBtZXRob2QgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwjQ2FsbE1ldGhvZFJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcsIGludCwgamF2YS5sYW5nLlN0cmluZ1tdKSI+Q2FsbE1ldGhvZFJ1bGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4mbmJzcDtkaWdlc3RlciwKKyAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXRob2ROYW1lLAorICAgICAgICAgICAgICAgaW50Jm5ic3A7cGFyYW1Db3VudCwKKyAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmdbXSZuYnNwO3BhcmFtVHlwZXMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSAiY2FsbCBtZXRob2QiIHJ1bGUgd2l0aCB0aGUgc3BlY2lmaWVkIG1ldGhvZCBuYW1lLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbE1ldGhvZFJ1bGUuaHRtbCNiZWdpbihvcmcueG1sLnNheC5BdHRyaWJ1dGVMaXN0KSI+YmVnaW48L0E+PC9CPihvcmcueG1sLnNheC5BdHRyaWJ1dGVMaXN0Jm5ic3A7YXR0cmlidXRlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsTWV0aG9kUnVsZS5odG1sI2JvZHkoamF2YS5sYW5nLlN0cmluZykiPmJvZHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Ym9keVRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBib2R5IHRleHQgb2YgdGhpcyBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwjZW5kKCkiPmVuZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbE1ldGhvZFJ1bGUuaHRtbCNmaW5pc2goKSI+ZmluaXNoPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xlYW4gdXAgYWZ0ZXIgcGFyc2luZyBpcyBjb21wbGV0ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImJvZHlUZXh0Ij48IS0tIC0tPjwvQT48SDM+Citib2R5VGV4dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Ym9keVRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvZHkgdGV4dCBjb2xsZWN0ZWQgZnJvbSB0aGlzIGVsZW1lbnQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWV0aG9kTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbWV0aG9kTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bWV0aG9kTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWV0aG9kIG5hbWUgdG8gY2FsbCBvbiB0aGUgcGFyZW50IG9iamVjdC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJhbUNvdW50Ij48IS0tIC0tPjwvQT48SDM+CitwYXJhbUNvdW50PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPnBhcmFtQ291bnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG51bWJlciBvZiBwYXJhbWV0ZXJzIHRvIGNvbGxlY3QgZnJvbSA8Y29kZT5NZXRob2RQYXJhbTwvY29kZT4gcnVsZXMuCisgSWYgdGhpcyB2YWx1ZSBpcyB6ZXJvLCBhIHNpbmdsZSBwYXJhbWV0ZXIgd2lsbCBiZSBjb2xsZWN0ZWQgZnJvbSB0aGUKKyBib2R5IG9mIHRoaXMgZWxlbWVudC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJhbVR5cGVzIj48IS0tIC0tPjwvQT48SDM+CitwYXJhbVR5cGVzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLkNsYXNzW10gPEI+cGFyYW1UeXBlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcGFyYW1ldGVyIHR5cGVzIG9mIHRoZSBwYXJhbWV0ZXJzIHRvIGJlIGNvbGxlY3RlZC48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ2FsbE1ldGhvZFJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK0NhbGxNZXRob2RSdWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Q2FsbE1ldGhvZFJ1bGU8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPiZuYnNwO2RpZ2VzdGVyLAorICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXRob2ROYW1lLAorICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3BhcmFtQ291bnQpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgImNhbGwgbWV0aG9kIiBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBtZXRob2QgbmFtZS4gIFRoZQorIHBhcmFtZXRlciB0eXBlcyAoaWYgYW55KSBkZWZhdWx0IHRvIGphdmEubGFuZy5TdHJpbmcuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZGlnZXN0ZXI8L0NPREU+IC0gVGhlIGFzc29jaWF0ZWQgRGlnZXN0ZXI8REQ+PENPREU+bWV0aG9kTmFtZTwvQ09ERT4gLSBNZXRob2QgbmFtZSBvZiB0aGUgcGFyZW50IG1ldGhvZCB0byBjYWxsPEREPjxDT0RFPnBhcmFtQ291bnQ8L0NPREU+IC0gVGhlIG51bWJlciBvZiBwYXJhbWV0ZXJzIHRvIGNvbGxlY3QsIG9yCisgIHplcm8gZm9yIGEgc2luZ2xlIGFyZ3VtZW50IGZyb20gdGhlIGJvZHkgb2YgdGhpcyBlbGVtZW50LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQ2FsbE1ldGhvZFJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcsIGludCwgamF2YS5sYW5nLlN0cmluZ1tdKSI+PCEtLSAtLT48L0E+PEgzPgorQ2FsbE1ldGhvZFJ1bGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5DYWxsTWV0aG9kUnVsZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Jm5ic3A7ZGlnZXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7cGFyYW1Db3VudCwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nW10mbmJzcDtwYXJhbVR5cGVzKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhICJjYWxsIG1ldGhvZCIgcnVsZSB3aXRoIHRoZSBzcGVjaWZpZWQgbWV0aG9kIG5hbWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZGlnZXN0ZXI8L0NPREU+IC0gVGhlIGFzc29jaWF0ZWQgRGlnZXN0ZXI8REQ+PENPREU+bWV0aG9kTmFtZTwvQ09ERT4gLSBNZXRob2QgbmFtZSBvZiB0aGUgcGFyZW50IG1ldGhvZCB0byBjYWxsPEREPjxDT0RFPnBhcmFtQ291bnQ8L0NPREU+IC0gVGhlIG51bWJlciBvZiBwYXJhbWV0ZXJzIHRvIGNvbGxlY3QsIG9yCisgIHplcm8gZm9yIGEgc2luZ2xlIGFyZ3VtZW50IGZyb20gdGhlIGJvZHkgb2YgdGhzIGVsZW1lbnQ8REQ+PENPREU+cGFyYW1UeXBlczwvQ09ERT4gLSBUaGUgSmF2YSBjbGFzcyBuYW1lcyBvZiB0aGUgYXJndW1lbnRzCisgIChpZiB5b3Ugd2lzaCB0byB1c2UgYSBwcmltaXRpdmUgdHlwZSwgc3BlY2lmeSB0aGUgY29ycmVzb25kaW5nCisgIEphdmEgd3JhcHBlciBjbGFzcyBpbnN0ZWFkLCBzdWNoIGFzIDxjb2RlPmphdmEubGFuZy5Cb29sZWFuPC9jb2RlPgorICBmb3IgYSA8Y29kZT5ib29sZWFuPC9jb2RlPiBwYXJhbWV0ZXIpPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJDYWxsTWV0aG9kUnVsZShvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5EaWdlc3RlciwgamF2YS5sYW5nLlN0cmluZywgaW50LCBqYXZhLmxhbmcuQ2xhc3NbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK0NhbGxNZXRob2RSdWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Q2FsbE1ldGhvZFJ1bGU8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPiZuYnNwO2RpZ2VzdGVyLAorICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXRob2ROYW1lLAorICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3BhcmFtQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLkNsYXNzW10mbmJzcDtwYXJhbVR5cGVzKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhICJjYWxsIG1ldGhvZCIgcnVsZSB3aXRoIHRoZSBzcGVjaWZpZWQgbWV0aG9kIG5hbWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZGlnZXN0ZXI8L0NPREU+IC0gVGhlIGFzc29jaWF0ZWQgRGlnZXN0ZXI8REQ+PENPREU+bWV0aG9kTmFtZTwvQ09ERT4gLSBNZXRob2QgbmFtZSBvZiB0aGUgcGFyZW50IG1ldGhvZCB0byBjYWxsPEREPjxDT0RFPnBhcmFtQ291bnQ8L0NPREU+IC0gVGhlIG51bWJlciBvZiBwYXJhbWV0ZXJzIHRvIGNvbGxlY3QsIG9yCisgIHplcm8gZm9yIGEgc2luZ2xlIGFyZ3VtZW50IGZyb20gdGhlIGJvZHkgb2YgdGhzIGVsZW1lbnQ8REQ+PENPREU+cGFyYW1UeXBlczwvQ09ERT4gLSBUaGUgSmF2YSBjbGFzc2VzIHRoYXQgcmVwcmVzZW50IHRoZQorICBwYXJhbWV0ZXIgdHlwZXMgb2YgdGhlIG1ldGhvZCBhcmd1bWVudHMKKyAgKGlmIHlvdSB3aXNoIHRvIHVzZSBhIHByaW1pdGl2ZSB0eXBlLCBzcGVjaWZ5IHRoZSBjb3JyZXNvbmRpbmcKKyAgSmF2YSB3cmFwcGVyIGNsYXNzIGluc3RlYWQsIHN1Y2ggYXMgPGNvZGU+amF2YS5sYW5nLkJvb2xlYW4uVFlQRTwvY29kZT4KKyAgZm9yIGEgPGNvZGU+Ym9vbGVhbjwvY29kZT4gcGFyYW1ldGVyKTwvREw+Cis8L0REPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYmVnaW4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2JlZ2luPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5iZWdpbjwvQj4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCZuYnNwO2F0dHJpYnV0ZXMpCisgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyBlbGVtZW50LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2JlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QpIj5iZWdpbjwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5hdHRyaWJ1dGVzPC9DT0RFPiAtIFRoZSBhdHRyaWJ1dGUgbGlzdCBmb3IgdGhpcyBlbGVtZW50PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJib2R5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Citib2R5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5ib2R5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Ym9keVRleHQpCisgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBib2R5IHRleHQgb2YgdGhpcyBlbGVtZW50LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2JvZHkoamF2YS5sYW5nLlN0cmluZykiPmJvZHk8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Ym9keVRleHQ8L0NPREU+IC0gVGhlIGJvZHkgdGV4dCBvZiB0aGlzIGVsZW1lbnQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVuZCgpIj48IS0tIC0tPjwvQT48SDM+CitlbmQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmVuZDwvQj4oKQorICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyBlbGVtZW50LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2VuZCgpIj5lbmQ8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluaXNoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmlzaDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZmluaXNoPC9CPigpCisgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNsZWFuIHVwIGFmdGVyIHBhcnNpbmcgaXMgY29tcGxldGUuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjZmluaXNoKCkiPmZpbmlzaDwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxQYXJhbVJ1bGUuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNhbGxNZXRob2RSdWxlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiYjM3MWUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsUGFyYW1SdWxlLmh0bWwKQEAgLTAsMCArMSwzODYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBDYWxsUGFyYW1SdWxlCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNhbGxQYXJhbVJ1bGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyPC9GT05UPgorPEJSPgorQ2xhc3MgIENhbGxQYXJhbVJ1bGU8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLlJ1bGU8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuQ2FsbFBhcmFtUnVsZTwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5DYWxsUGFyYW1SdWxlPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT48L0RMPgorCis8UD4KK1J1bGUgaW1wbGVtZW50YXRpb24gdGhhdCBzYXZlcyBhIHBhcmFtZXRlciBmcm9tIGVpdGhlciBhbiBhdHRyaWJ1dGUgb2YKKyB0aGlzIGVsZW1lbnQsIG9yIGZyb20gdGhlIGVsZW1lbnQgYm9keSwgdG8gYmUgdXNlZCBpbiBhIGNhbGwgZ2VuZXJhdGVkCisgYnkgYSBzdXJyb3VuZGluZyBDYWxsTWV0aG9kUnVsZSBydWxlLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsUGFyYW1SdWxlLmh0bWwjYXR0cmlidXRlTmFtZSI+YXR0cmlidXRlTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYXR0cmlidXRlIGZyb20gd2hpY2ggdG8gc2F2ZSB0aGUgcGFyYW1ldGVyIHZhbHVlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxQYXJhbVJ1bGUuaHRtbCNib2R5VGV4dCI+Ym9keVRleHQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGJvZHkgdGV4dCBjb2xsZWN0ZWQgZnJvbSB0aGlzIGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sI3BhcmFtSW5kZXgiPnBhcmFtSW5kZXg8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHplcm8tcmVsYXRpdmUgaW5kZXggb2YgdGhlIHBhcmFtZXRlciB3ZSBhcmUgc2F2aW5nLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5SdWxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjZGlnZXN0ZXIiPmRpZ2VzdGVyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxQYXJhbVJ1bGUuaHRtbCNDYWxsUGFyYW1SdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyLCBpbnQpIj5DYWxsUGFyYW1SdWxlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Jm5ic3A7ZGlnZXN0ZXIsCisgICAgICAgICAgICAgIGludCZuYnNwO3BhcmFtSW5kZXgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSAiY2FsbCBwYXJhbWV0ZXIiIHJ1bGUgdGhhdCB3aWxsIHNhdmUgdGhlIGJvZHkgdGV4dCBvZiB0aGlzCisgZWxlbWVudCBhcyB0aGUgcGFyYW1ldGVyIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sI0NhbGxQYXJhbVJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGludCwgamF2YS5sYW5nLlN0cmluZykiPkNhbGxQYXJhbVJ1bGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4mbmJzcDtkaWdlc3RlciwKKyAgICAgICAgICAgICAgaW50Jm5ic3A7cGFyYW1JbmRleCwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2F0dHJpYnV0ZU5hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSAiY2FsbCBwYXJhbWV0ZXIiIHJ1bGUgdGhhdCB3aWxsIHNhdmUgdGhlIHZhbHVlIG9mIHRoZQorIHNwZWNpZmllZCBhdHRyaWJ1dGUgYXMgdGhlIHBhcmFtZXRlciB2YWx1ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxQYXJhbVJ1bGUuaHRtbCNiZWdpbihvcmcueG1sLnNheC5BdHRyaWJ1dGVMaXN0KSI+YmVnaW48L0E+PC9CPihvcmcueG1sLnNheC5BdHRyaWJ1dGVMaXN0Jm5ic3A7YXR0cmlidXRlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsUGFyYW1SdWxlLmh0bWwjYm9keShqYXZhLmxhbmcuU3RyaW5nKSI+Ym9keTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtib2R5VGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIGJvZHkgdGV4dCBvZiB0aGlzIGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sI2VuZCgpIj5lbmQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxQYXJhbVJ1bGUuaHRtbCNmaW5pc2goKSI+ZmluaXNoPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xlYW4gdXAgYWZ0ZXIgcGFyc2luZyBpcyBjb21wbGV0ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImF0dHJpYnV0ZU5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK2F0dHJpYnV0ZU5hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmF0dHJpYnV0ZU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGF0dHJpYnV0ZSBmcm9tIHdoaWNoIHRvIHNhdmUgdGhlIHBhcmFtZXRlciB2YWx1ZTwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJvZHlUZXh0Ij48IS0tIC0tPjwvQT48SDM+Citib2R5VGV4dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Ym9keVRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvZHkgdGV4dCBjb2xsZWN0ZWQgZnJvbSB0aGlzIGVsZW1lbnQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyYW1JbmRleCI+PCEtLSAtLT48L0E+PEgzPgorcGFyYW1JbmRleDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGludCA8Qj5wYXJhbUluZGV4PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB6ZXJvLXJlbGF0aXZlIGluZGV4IG9mIHRoZSBwYXJhbWV0ZXIgd2UgYXJlIHNhdmluZy48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ2FsbFBhcmFtUnVsZShvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5EaWdlc3RlciwgaW50KSI+PCEtLSAtLT48L0E+PEgzPgorQ2FsbFBhcmFtUnVsZTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNhbGxQYXJhbVJ1bGU8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPiZuYnNwO2RpZ2VzdGVyLAorICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7cGFyYW1JbmRleCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSAiY2FsbCBwYXJhbWV0ZXIiIHJ1bGUgdGhhdCB3aWxsIHNhdmUgdGhlIGJvZHkgdGV4dCBvZiB0aGlzCisgZWxlbWVudCBhcyB0aGUgcGFyYW1ldGVyIHZhbHVlLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRpZ2VzdGVyPC9DT0RFPiAtIFRoZSBhc3NvY2lhdGVkIERpZ2VzdGVyPEREPjxDT0RFPnBhcmFtSW5kZXg8L0NPREU+IC0gVGhlIHplcm8tcmVsYXRpdmUgcGFyYW1ldGVyIG51bWJlcjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQ2FsbFBhcmFtUnVsZShvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5EaWdlc3RlciwgaW50LCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorQ2FsbFBhcmFtUnVsZTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNhbGxQYXJhbVJ1bGU8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPiZuYnNwO2RpZ2VzdGVyLAorICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7cGFyYW1JbmRleCwKKyAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDthdHRyaWJ1dGVOYW1lKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhICJjYWxsIHBhcmFtZXRlciIgcnVsZSB0aGF0IHdpbGwgc2F2ZSB0aGUgdmFsdWUgb2YgdGhlCisgc3BlY2lmaWVkIGF0dHJpYnV0ZSBhcyB0aGUgcGFyYW1ldGVyIHZhbHVlLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRpZ2VzdGVyPC9DT0RFPiAtIFRoZSBhc3NvY2lhdGVkIERpZ2VzdGVyPEREPjxDT0RFPnBhcmFtSW5kZXg8L0NPREU+IC0gVGhlIHplcm8tcmVsYXRpdmUgcGFyYW1ldGVyIG51bWJlcjxERD48Q09ERT5hdHRyaWJ1dGVOYW1lPC9DT0RFPiAtIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgdG8gc2F2ZTwvREw+Cis8L0REPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYmVnaW4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2JlZ2luPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5iZWdpbjwvQj4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCZuYnNwO2F0dHJpYnV0ZXMpCisgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyBlbGVtZW50LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2JlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QpIj5iZWdpbjwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5hdHRyaWJ1dGVzPC9DT0RFPiAtIFRoZSBhdHRyaWJ1dGUgbGlzdCBmb3IgdGhpcyBlbGVtZW50PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJib2R5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Citib2R5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5ib2R5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Ym9keVRleHQpCisgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBib2R5IHRleHQgb2YgdGhpcyBlbGVtZW50LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2JvZHkoamF2YS5sYW5nLlN0cmluZykiPmJvZHk8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Ym9keVRleHQ8L0NPREU+IC0gVGhlIGJvZHkgdGV4dCBvZiB0aGlzIGVsZW1lbnQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVuZCgpIj48IS0tIC0tPjwvQT48SDM+CitlbmQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmVuZDwvQj4oKQorICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyBlbGVtZW50LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2VuZCgpIj5lbmQ8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluaXNoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmlzaDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZmluaXNoPC9CPigpCisgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNsZWFuIHVwIGFmdGVyIHBhcnNpbmcgaXMgY29tcGxldGUuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjZmluaXNoKCkiPmZpbmlzaDwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNhbGxQYXJhbVJ1bGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjIyMTBkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbApAQCAtMCwwICsxLDE0NjEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBEaWdlc3RlcgorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsUGFyYW1SdWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvT2JqZWN0Q3JlYXRlUnVsZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGlnZXN0ZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyPC9GT05UPgorPEJSPgorQ2xhc3MgIERpZ2VzdGVyPC9IMj4KKzxQUkU+Cis8Qj5vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5EaWdlc3RlcjwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5EaWdlc3RlcjwvQj48L0RMPgorCis8UD4KKzxwPkEgPHN0cm9uZz5EaWdlc3Rlcjwvc3Ryb25nPiBwcm9jZXNzZXMgYW4gWE1MIGlucHV0IHN0cmVhbSBieSBtYXRjaGluZyBhCisgc2VyaWVzIG9mIGVsZW1lbnQgbmVzdGluZyBwYXR0ZXJucyB0byBleGVjdXRlIFJ1bGVzIHRoYXQgaGF2ZSBiZWVuIGFkZGVkCisgcHJpb3IgdG8gdGhlIHN0YXJ0IG9mIHBhcnNpbmcuICBUaGlzIHBhY2thZ2Ugd2FzIGluc3BpcmVkIGJ5IHRoZQorIDxjb2RlPlhtbE1hcHBlcjwvY29kZT4gY2xhc3MgdGhhdCB3YXMgcGFydCBvZiBUb21jYXQgMy4wIGFuZCAzLjEsCisgYnV0IGlzIG9yZ2FuaXplZCBzb21ld2hhdCBkaWZmZXJlbnRseS48L3A+CisKKyA8cD5TZWUgdGhlIDxhIGhyZWY9InBhY2thZ2Utc3VtbWFyeS5odG1sI3BhY2thZ2VfZGVzY3JpcHRpb24iPkRpZ2VzdGVyCisgRGV2ZWxvcGVyIEd1aWRlPC9hPiBmb3IgbW9yZSBpbmZvcm1hdGlvbi48L3A+CisKKyA8cD48c3Ryb25nPklNUExFTUVOVEFUSU9OIE5PVEU8L3N0cm9uZz4gLSBBIHNpbmdsZSBEaWdlc3RlciBpbnN0YW5jZSBtYXkKKyBvbmx5IGJlIHVzZWQgd2l0aGluIHRoZSBjb250ZXh0IG9mIGEgc2luZ2xlIHRocmVhZCBhdCBhIHRpbWUsIGFuZCBhIGNhbGwKKyB0byA8Y29kZT5wYXJzZSgpPC9jb2RlPiBtdXN0IGJlIGNvbXBsZXRlZCBiZWZvcmUgYW5vdGhlciBjYW4gYmUgaW5pdGlhdGVkCisgZXZlbiBmcm9tIHRoZSBzYW1lIHRocmVhZC48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nQnVmZmVyPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjYm9keVRleHQiPmJvZHlUZXh0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBib2R5IHRleHQgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sIj5BcnJheVN0YWNrPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2JvZHlUZXh0cyI+Ym9keVRleHRzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzdGFjayBvZiBib2R5IHRleHQgc3RyaW5nIGJ1ZmZlcnMgZm9yIHN1cnJvdW5kaW5nIGVsZW1lbnRzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjZGVidWciPmRlYnVnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIG9mIHRoaXMgY29tcG9uZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkhhc2hNYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNkdGRzIj5kdGRzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBVUkxzIG9mIERURHMgdGhhdCBoYXZlIGJlZW4gcmVnaXN0ZXJlZCwga2V5ZWQgYnkgdGhlIHB1YmxpYworIGlkZW50aWZpZXIgdGhhdCBjb3JyZXNwb25kcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO29yZy54bWwuc2F4LkVycm9ySGFuZGxlcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2Vycm9ySGFuZGxlciI+ZXJyb3JIYW5kbGVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhcHBsaWNhdGlvbi1zdXBwbGllZCBlcnJvciBoYW5kbGVyIHRoYXQgaXMgbm90aWZpZWQgd2hlbiBwYXJzaW5nCisgd2FybmluZ3MsIGVycm9ycywgb3IgZmF0YWwgZXJyb3JzIG9jY3VyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7b3JnLnhtbC5zYXguTG9jYXRvcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2xvY2F0b3IiPmxvY2F0b3I8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIExvY2F0b3IgYXNzb2NpYXRlZCB3aXRoIG91ciBwYXJzZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjbWF0Y2giPm1hdGNoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjdXJyZW50IG1hdGNoIHBhdHRlcm4gZm9yIG5lc3RlZCBlbGVtZW50IHByb2Nlc3NpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZheC54bWwucGFyc2Vycy5TQVhQYXJzZXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNwYXJzZXIiPnBhcnNlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgU0FYUGFyc2VyIHdlIHdpbGwgdXNlIHRvIHBhcnNlIHRoZSBpbnB1dCBzdHJlYW0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjcm9vdCI+cm9vdDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgInJvb3QiIGVsZW1lbnQgb2YgdGhlIHN0YWNrIChpbiBvdGhlciB3b3JkcywgdGhlIGxhc3Qgb2JqZWN0CisgdGhhdCB3YXMgcG9wcGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkhhc2hNYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNydWxlcyI+cnVsZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBSdWxlcyB0aGF0IGhhdmUgYmVlbiByZWdpc3RlcmVkIHdpdGggdGhpcyBEaWdlc3Rlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sIj5BcnJheVN0YWNrPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3N0YWNrIj5zdGFjazwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgb2JqZWN0IHN0YWNrIGJlaW5nIGNvbnN0cnVjdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3ZhbGlkYXRpbmciPnZhbGlkYXRpbmc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RG8gd2Ugd2FudCB0byB1c2UgYSB2YWxpZGF0aW5nIHBhcnNlcj88L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjRGlnZXN0ZXIoKSI+RGlnZXN0ZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSBuZXcgRGlnZXN0ZXIgd2l0aCBkZWZhdWx0IHByb3BlcnRpZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2FkZENhbGxNZXRob2QoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgaW50KSI+YWRkQ2FsbE1ldGhvZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXR0ZXJuLAorICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWV0aG9kTmFtZSwKKyAgICAgICAgICAgICAgaW50Jm5ic3A7cGFyYW1Db3VudCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhbiAiY2FsbCBtZXRob2QiIHJ1bGUgZm9yIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2FkZENhbGxNZXRob2QoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgaW50LCBqYXZhLmxhbmcuQ2xhc3NbXSkiPmFkZENhbGxNZXRob2Q8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0dGVybiwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZE5hbWUsCisgICAgICAgICAgICAgIGludCZuYnNwO3BhcmFtQ291bnQsCisgICAgICAgICAgICAgIGphdmEubGFuZy5DbGFzc1tdJm5ic3A7cGFyYW1UeXBlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhbiAiY2FsbCBtZXRob2QiIHJ1bGUgZm9yIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2FkZENhbGxNZXRob2QoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgaW50LCBqYXZhLmxhbmcuU3RyaW5nW10pIj5hZGRDYWxsTWV0aG9kPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdHRlcm4sCisgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXRob2ROYW1lLAorICAgICAgICAgICAgICBpbnQmbmJzcDtwYXJhbUNvdW50LAorICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nW10mbmJzcDtwYXJhbVR5cGVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGFuICJjYWxsIG1ldGhvZCIgcnVsZSBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjYWRkQ2FsbFBhcmFtKGphdmEubGFuZy5TdHJpbmcsIGludCkiPmFkZENhbGxQYXJhbTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXR0ZXJuLAorICAgICAgICAgICAgIGludCZuYnNwO3BhcmFtSW5kZXgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYSAiY2FsbCBwYXJhbWV0ZXIiIHJ1bGUgZm9yIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2FkZENhbGxQYXJhbShqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGphdmEubGFuZy5TdHJpbmcpIj5hZGRDYWxsUGFyYW08L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0dGVybiwKKyAgICAgICAgICAgICBpbnQmbmJzcDtwYXJhbUluZGV4LAorICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDthdHRyaWJ1dGVOYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgImNhbGwgcGFyYW1ldGVyIiBydWxlIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNhZGRPYmplY3RDcmVhdGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmFkZE9iamVjdENyZWF0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXR0ZXJuLAorICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc05hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYW4gIm9iamVjdCBjcmVhdGUiIHJ1bGUgZm9yIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2FkZE9iamVjdENyZWF0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+YWRkT2JqZWN0Q3JlYXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdHRlcm4sCisgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzTmFtZSwKKyAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YXR0cmlidXRlTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhbiAib2JqZWN0IGNyZWF0ZSIgcnVsZSBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjYWRkUnVsZShqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5SdWxlKSI+YWRkUnVsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXR0ZXJuLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+Jm5ic3A7cnVsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlZ2lzdGVyIGEgbmV3IFJ1bGUgbWF0Y2hpbmcgdGhlIHNwZWNpZmllZCBwYXR0ZXJuLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjYWRkU2V0TmV4dChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+YWRkU2V0TmV4dDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXR0ZXJuLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWV0aG9kTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhICJzZXQgbmV4dCIgcnVsZSBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjYWRkU2V0TmV4dChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+YWRkU2V0TmV4dDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXR0ZXJuLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWV0aG9kTmFtZSwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtVHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhICJzZXQgbmV4dCIgcnVsZSBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjYWRkU2V0UHJvcGVydGllcyhqYXZhLmxhbmcuU3RyaW5nKSI+YWRkU2V0UHJvcGVydGllczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXR0ZXJuKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgInNldCBwcm9wZXJ0aWVzIiBydWxlIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNhZGRTZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+YWRkU2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0dGVybiwKKyAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgInNldCBwcm9wZXJ0eSIgcnVsZSBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjYWRkU2V0VG9wKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5hZGRTZXRUb3A8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0dGVybiwKKyAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWV0aG9kTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhICJzZXQgdG9wIiBydWxlIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNhZGRTZXRUb3AoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmFkZFNldFRvcDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXR0ZXJuLAorICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXRob2ROYW1lLAorICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbVR5cGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYSAic2V0IHRvcCIgcnVsZSBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjY2hhcmFjdGVycyhjaGFyW10sIGludCwgaW50KSI+Y2hhcmFjdGVyczwvQT48L0I+KGNoYXJbXSZuYnNwO2J1ZmZlciwKKyAgICAgICAgICAgaW50Jm5ic3A7c3RhcnQsCisgICAgICAgICAgIGludCZuYnNwO2xlbmd0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3Mgbm90aWZpY2F0aW9uIG9mIGNoYXJhY3RlciBkYXRhIHJlY2VpdmVkIGZyb20gdGhlIGJvZHkgb2YKKyBhbiBYTUwgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2NsZWFyKCkiPmNsZWFyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xlYXIgdGhlIGN1cnJlbnQgY29udGVudHMgb2YgdGhlIG9iamVjdCBzdGFjay48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2VuZERvY3VtZW50KCkiPmVuZERvY3VtZW50PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyBub3RpZmljYXRpb24gb2YgdGhlIGVuZCBvZiB0aGUgZG9jdW1lbnQgYmVpbmcgcmVhY2hlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2VuZEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZykiPmVuZEVsZW1lbnQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3Mgbm90aWZpY2F0aW9uIG9mIHRoZSBlbmQgb2YgYW4gWE1MIGVsZW1lbnQgYmVpbmcgcmVhY2hlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2Vycm9yKG9yZy54bWwuc2F4LlNBWFBhcnNlRXhjZXB0aW9uKSI+ZXJyb3I8L0E+PC9CPihvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbiZuYnNwO2V4Y2VwdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZvcndhcmQgbm90aWZpY2F0aW9uIG9mIGEgcGFyc2luZyBlcnJvciB0byB0aGUgYXBwbGljYXRpb24gc3VwcGxpZWQKKyBlcnJvciBoYW5kbGVyIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjZmF0YWxFcnJvcihvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbikiPmZhdGFsRXJyb3I8L0E+PC9CPihvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbiZuYnNwO2V4Y2VwdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZvcndhcmQgbm90aWZpY2F0aW9uIG9mIGEgZmF0YWwgcGFyc2luZyBlcnJvciB0byB0aGUgYXBwbGljYXRpb24KKyBzdXBwbGllZCBlcnJvciBoYW5kbGVyIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNnZXRDb3VudCgpIj5nZXRDb3VudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgY3VycmVudCBkZXB0aCBvZiB0aGUgZWxlbWVudCBzdGFjay48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjZ2V0RGVidWcoKSI+Z2V0RGVidWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgb2YgdGhpcyBEaWdlc3Rlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7b3JnLnhtbC5zYXguRXJyb3JIYW5kbGVyPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjZ2V0RXJyb3JIYW5kbGVyKCkiPmdldEVycm9ySGFuZGxlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZXJyb3IgaGFuZGxlciBmb3IgdGhpcyBEaWdlc3Rlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YXgueG1sLnBhcnNlcnMuU0FYUGFyc2VyPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjZ2V0UGFyc2VyKCkiPmdldFBhcnNlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgU0FYUGFyc2VyIHdlIHdpbGwgdXNlIHRvIHBhcnNlIHRoZSBpbnB1dCBzdHJlYW0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuTGlzdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2dldFJ1bGVzKGphdmEubGFuZy5TdHJpbmcpIj5nZXRSdWxlczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttYXRjaCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc2V0IG9mIHJ1bGVzIHRoYXQgYXBwbHkgdG8gdGhlIHNwZWNpZmllZCBtYXRjaCBwb3NpdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2dldFZhbGlkYXRpbmcoKSI+Z2V0VmFsaWRhdGluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgdmFsaWRhdGluZyBwYXJzZXIgZmxhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI2lnbm9yYWJsZVdoaXRlc3BhY2UoY2hhcltdLCBpbnQsIGludCkiPmlnbm9yYWJsZVdoaXRlc3BhY2U8L0E+PC9CPihjaGFyW10mbmJzcDtidWZmZXIsCisgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0LAorICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtsZW4pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIG5vdGlmaWNhdGlvbiBvZiBpZ25vcmFibGUgd2hpdGVzcGFjZSByZWNlaXZlZCBmcm9tIHRoZSBib2R5IG9mCisgYW4gWE1MIGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZykiPmxvZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXNzYWdlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TG9nIGEgbWVzc2FnZSB0byB0aGUgbG9nIHdyaXRlciBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjbG9nKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5UaHJvd2FibGUpIj5sb2c8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSwKKyAgICBqYXZhLmxhbmcuVGhyb3dhYmxlJm5ic3A7ZXhjZXB0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TG9nIGEgbWVzc2FnZSBhbmQgYXNzb2NpYXRlZCBleGNlcHRpb24gdG8gdGhlIGxvZyB3cml0ZXIKKyBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjbm90YXRpb25EZWNsKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5ub3RhdGlvbkRlY2w8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHVibGljSWQsCisgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3N5c3RlbUlkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVjZWl2ZSBub3RpZmljYXRpb24gb2YgYSBub3RhdGlvbiBkZWNsYXJhdGlvbiBldmVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3BhcnNlKGphdmEuaW8uRmlsZSkiPnBhcnNlPC9BPjwvQj4oamF2YS5pby5GaWxlJm5ic3A7ZmlsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BhcnNlIHRoZSBjb250ZW50IG9mIHRoZSBzcGVjaWZpZWQgZmlsZSB1c2luZyB0aGlzIERpZ2VzdGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjcGFyc2Uob3JnLnhtbC5zYXguSW5wdXRTb3VyY2UpIj5wYXJzZTwvQT48L0I+KG9yZy54bWwuc2F4LklucHV0U291cmNlJm5ic3A7aW5wdXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQYXJzZSB0aGUgY29udGVudCBvZiB0aGUgc3BlY2lmaWVkIGlucHV0IHNvdXJjZSB1c2luZyB0aGlzIERpZ2VzdGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjcGFyc2UoamF2YS5pby5JbnB1dFN0cmVhbSkiPnBhcnNlPC9BPjwvQj4oamF2YS5pby5JbnB1dFN0cmVhbSZuYnNwO2lucHV0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGFyc2UgdGhlIGNvbnRlbnQgb2YgdGhlIHNwZWNpZmllZCBpbnB1dCBzdHJlYW0gdXNpbmcgdGhpcyBEaWdlc3Rlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3BhcnNlKGphdmEubGFuZy5TdHJpbmcpIj5wYXJzZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQYXJzZSB0aGUgY29udGVudCBvZiB0aGUgc3BlY2lmaWVkIFVSSSB1c2luZyB0aGlzIERpZ2VzdGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjcGVlaygpIj5wZWVrPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSB0b3Agb2JqZWN0IG9uIHRoZSBzdGFjayB3aXRob3V0IHJlbW92aW5nIGl0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjcGVlayhpbnQpIj5wZWVrPC9BPjwvQj4oaW50Jm5ic3A7bik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbid0aCBvYmplY3QgZG93biB0aGUgc3RhY2ssIHdoZXJlIDAgaXMgdGhlIHRvcCBlbGVtZW50CisgYW5kIFtnZXRDb3VudCgpLTFdIGlzIHRoZSBib3R0b20gZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3BvcCgpIj5wb3A8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQb3AgdGhlIHRvcCBvYmplY3Qgb2ZmIG9mIHRoZSBzdGFjaywgYW5kIHJldHVybiBpdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3Byb2Nlc3NpbmdJbnN0cnVjdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+cHJvY2Vzc2luZ0luc3RydWN0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZGF0YSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3Mgbm90aWZpY2F0aW9uIG9mIGEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiB0aGF0IHdhcyBlbmNvdW50ZXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3B1c2goamF2YS5sYW5nLk9iamVjdCkiPnB1c2g8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7b2JqZWN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHVzaCBhIG5ldyBvYmplY3Qgb250byB0aGUgdG9wIG9mIHRoZSBvYmplY3Qgc3RhY2suPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNyZWdpc3RlcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+cmVnaXN0ZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHVibGljSWQsCisgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZHRkVVJMKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVnaXN0ZXIgdGhlIHNwZWNpZmllZCBEVEQgVVJMIGZvciB0aGUgc3BlY2lmaWVkIHB1YmxpYyBpZGVudGlmaWVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtvcmcueG1sLnNheC5JbnB1dFNvdXJjZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3Jlc29sdmVFbnRpdHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPnJlc29sdmVFbnRpdHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHVibGljSWQsCisgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtzeXN0ZW1JZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Jlc29sdmUgdGhlIHJlcXVlc3RlZCBleHRlcm5hbCBlbnRpdHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNzZXREZWJ1ZyhpbnQpIj5zZXREZWJ1ZzwvQT48L0I+KGludCZuYnNwO2RlYnVnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIG9mIHRoaXMgRGlnZXN0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNzZXREb2N1bWVudExvY2F0b3Iob3JnLnhtbC5zYXguTG9jYXRvcikiPnNldERvY3VtZW50TG9jYXRvcjwvQT48L0I+KG9yZy54bWwuc2F4LkxvY2F0b3ImbmJzcDtsb2NhdG9yKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBkb2N1bWVudCBsb2NhdG9yIGFzc29jaWF0ZWQgd2l0aCBvdXIgcGFyc2VyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjc2V0RXJyb3JIYW5kbGVyKG9yZy54bWwuc2F4LkVycm9ySGFuZGxlcikiPnNldEVycm9ySGFuZGxlcjwvQT48L0I+KG9yZy54bWwuc2F4LkVycm9ySGFuZGxlciZuYnNwO2Vycm9ySGFuZGxlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgZXJyb3IgaGFuZGxlciBmb3IgdGhpcyBEaWdlc3Rlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3NldFZhbGlkYXRpbmcoYm9vbGVhbikiPnNldFZhbGlkYXRpbmc8L0E+PC9CPihib29sZWFuJm5ic3A7dmFsaWRhdGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgdmFsaWRhdGluZyBwYXJzZXIgZmxhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sI3N0YXJ0RG9jdW1lbnQoKSI+c3RhcnREb2N1bWVudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3Mgbm90aWZpY2F0aW9uIG9mIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50IGJlaW5nIHJlYWNoZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCNzdGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgb3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCkiPnN0YXJ0RWxlbWVudDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgIG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QmbmJzcDtsaXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyBub3RpZmljYXRpb24gb2YgdGhlIHN0YXJ0IG9mIGFuIFhNTCBlbGVtZW50IGJlaW5nIHJlYWNoZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCN1bnBhcnNlZEVudGl0eURlY2woamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPnVucGFyc2VkRW50aXR5RGVjbDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwdWJsaWNJZCwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3lzdGVtSWQsCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25vdGF0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVjZWl2ZSBub3RpZmljYXRpb24gb2YgYW4gdW5wYXJzZWQgZW50aXR5IGRlY2xhcmF0aW9uIGV2ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwjd2FybmluZyhvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbikiPndhcm5pbmc8L0E+PC9CPihvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbiZuYnNwO2V4Y2VwdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZvcndhcmQgbm90aWZpY2F0aW9uIG9mIGEgcGFyc2Ugd2FybmluZyB0byB0aGUgYXBwbGljYXRpb24gc3VwcGxpZWQKKyBlcnJvciBoYW5kbGVyIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJib2R5VGV4dCI+PCEtLSAtLT48L0E+PEgzPgorYm9keVRleHQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyIDxCPmJvZHlUZXh0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib2R5IHRleHQgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJib2R5VGV4dHMiPjwhLS0gLS0+PC9BPjxIMz4KK2JvZHlUZXh0czwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sIj5BcnJheVN0YWNrPC9BPiA8Qj5ib2R5VGV4dHM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHN0YWNrIG9mIGJvZHkgdGV4dCBzdHJpbmcgYnVmZmVycyBmb3Igc3Vycm91bmRpbmcgZWxlbWVudHMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVidWciPjwhLS0gLS0+PC9BPjxIMz4KK2RlYnVnPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPmRlYnVnPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIG9mIHRoaXMgY29tcG9uZW50LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImR0ZHMiPjwhLS0gLS0+PC9BPjxIMz4KK2R0ZHM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuSGFzaE1hcCA8Qj5kdGRzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBVUkxzIG9mIERURHMgdGhhdCBoYXZlIGJlZW4gcmVnaXN0ZXJlZCwga2V5ZWQgYnkgdGhlIHB1YmxpYworIGlkZW50aWZpZXIgdGhhdCBjb3JyZXNwb25kcy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJlcnJvckhhbmRsZXIiPjwhLS0gLS0+PC9BPjxIMz4KK2Vycm9ySGFuZGxlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIG9yZy54bWwuc2F4LkVycm9ySGFuZGxlciA8Qj5lcnJvckhhbmRsZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFwcGxpY2F0aW9uLXN1cHBsaWVkIGVycm9yIGhhbmRsZXIgdGhhdCBpcyBub3RpZmllZCB3aGVuIHBhcnNpbmcKKyB3YXJuaW5ncywgZXJyb3JzLCBvciBmYXRhbCBlcnJvcnMgb2NjdXIuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9jYXRvciI+PCEtLSAtLT48L0E+PEgzPgorbG9jYXRvcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIG9yZy54bWwuc2F4LkxvY2F0b3IgPEI+bG9jYXRvcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgTG9jYXRvciBhc3NvY2lhdGVkIHdpdGggb3VyIHBhcnNlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXRjaCI+PCEtLSAtLT48L0E+PEgzPgorbWF0Y2g8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm1hdGNoPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjdXJyZW50IG1hdGNoIHBhdHRlcm4gZm9yIG5lc3RlZCBlbGVtZW50IHByb2Nlc3NpbmcuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyc2VyIj48IS0tIC0tPjwvQT48SDM+CitwYXJzZXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZheC54bWwucGFyc2Vycy5TQVhQYXJzZXIgPEI+cGFyc2VyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBTQVhQYXJzZXIgd2Ugd2lsbCB1c2UgdG8gcGFyc2UgdGhlIGlucHV0IHN0cmVhbS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJyb290Ij48IS0tIC0tPjwvQT48SDM+Cityb290PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLk9iamVjdCA8Qj5yb290PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSAicm9vdCIgZWxlbWVudCBvZiB0aGUgc3RhY2sgKGluIG90aGVyIHdvcmRzLCB0aGUgbGFzdCBvYmplY3QKKyB0aGF0IHdhcyBwb3BwZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icnVsZXMiPjwhLS0gLS0+PC9BPjxIMz4KK3J1bGVzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2hNYXAgPEI+cnVsZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBSdWxlcyB0aGF0IGhhdmUgYmVlbiByZWdpc3RlcmVkIHdpdGggdGhpcyBEaWdlc3Rlci4gIFRoZQorIGtleSBpcyB0aGUgbWF0Y2hpbmcgcGF0dGVybiBhZ2FpbnN0IHRoZSBjdXJyZW50IGVsZW1lbnQgc3RhY2ssIGFuZAorIHRoZSB2YWx1ZSBpcyBhIExpc3QgY29udGFpbmluZyB0aGUgUnVsZXMgZm9yIHRoYXQgcGF0dGVybiwgaW4gdGhlCisgb3JkZXIgdGhhdCB0aGV5IHdlcmUgcmVnaXN0ZXJlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzdGFjayI+PCEtLSAtLT48L0E+PEgzPgorc3RhY2s8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FycmF5U3RhY2suaHRtbCI+QXJyYXlTdGFjazwvQT4gPEI+c3RhY2s8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG9iamVjdCBzdGFjayBiZWluZyBjb25zdHJ1Y3RlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWxpZGF0aW5nIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0aW5nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj52YWxpZGF0aW5nPC9CPjwvUFJFPgorPERMPgorPEREPkRvIHdlIHdhbnQgdG8gdXNlIGEgdmFsaWRhdGluZyBwYXJzZXI/PC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkRpZ2VzdGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0RpZ2VzdGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RGlnZXN0ZXI8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgRGlnZXN0ZXIgd2l0aCBkZWZhdWx0IHByb3BlcnRpZXMuPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0Q291bnQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q291bnQ8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0Q291bnQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGN1cnJlbnQgZGVwdGggb2YgdGhlIGVsZW1lbnQgc3RhY2suPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVidWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RGVidWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0RGVidWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgb2YgdGhpcyBEaWdlc3Rlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXREZWJ1ZyhpbnQpIj48IS0tIC0tPjwvQT48SDM+CitzZXREZWJ1ZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RGVidWc8L0I+KGludCZuYnNwO2RlYnVnKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgZGVidWdnaW5nIGRldGFpbCBsZXZlbCBvZiB0aGlzIERpZ2VzdGVyLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRlYnVnPC9DT0RFPiAtIFRoZSBuZXcgZGVidWdnaW5nIGRldGFpbCBsZXZlbDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RXJyb3JIYW5kbGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEVycm9ySGFuZGxlcjwvSDM+Cis8UFJFPgorcHVibGljIG9yZy54bWwuc2F4LkVycm9ySGFuZGxlciA8Qj5nZXRFcnJvckhhbmRsZXI8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGVycm9yIGhhbmRsZXIgZm9yIHRoaXMgRGlnZXN0ZXIuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RXJyb3JIYW5kbGVyKG9yZy54bWwuc2F4LkVycm9ySGFuZGxlcikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEVycm9ySGFuZGxlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RXJyb3JIYW5kbGVyPC9CPihvcmcueG1sLnNheC5FcnJvckhhbmRsZXImbmJzcDtlcnJvckhhbmRsZXIpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBlcnJvciBoYW5kbGVyIGZvciB0aGlzIERpZ2VzdGVyLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmVycm9ySGFuZGxlcjwvQ09ERT4gLSBUaGUgbmV3IGVycm9yIGhhbmRsZXI8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcnNlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJzZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC54bWwucGFyc2Vycy5TQVhQYXJzZXIgPEI+Z2V0UGFyc2VyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBTQVhQYXJzZXIgd2Ugd2lsbCB1c2UgdG8gcGFyc2UgdGhlIGlucHV0IHN0cmVhbS4gIElmIHRoZXJlCisgaXMgYSBwcm9ibGVtIGNyZWF0aW5nIHRoZSBwYXJzZXIsIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWxpZGF0aW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbGlkYXRpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldFZhbGlkYXRpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHZhbGlkYXRpbmcgcGFyc2VyIGZsYWcuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsaWRhdGluZyhib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsaWRhdGluZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VmFsaWRhdGluZzwvQj4oYm9vbGVhbiZuYnNwO3ZhbGlkYXRpbmcpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSB2YWxpZGF0aW5nIHBhcnNlciBmbGFnLiAgVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUKKyA8Y29kZT5wYXJzZSgpPC9jb2RlPiBpcyBjYWxsZWQgdGhlIGZpcnN0IHRpbWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsaWRhdGluZzwvQ09ERT4gLSBUaGUgbmV3IHZhbGlkYXRpbmcgcGFyc2VyIGZsYWcuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjaGFyYWN0ZXJzKGNoYXJbXSwgaW50LCBpbnQpIj48IS0tIC0tPjwvQT48SDM+CitjaGFyYWN0ZXJzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5jaGFyYWN0ZXJzPC9CPihjaGFyW10mbmJzcDtidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtsZW5ndGgpCisgICAgICAgICAgICAgICAgdGhyb3dzIG9yZy54bWwuc2F4LlNBWEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3Mgbm90aWZpY2F0aW9uIG9mIGNoYXJhY3RlciBkYXRhIHJlY2VpdmVkIGZyb20gdGhlIGJvZHkgb2YKKyBhbiBYTUwgZWxlbWVudC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5idWZmZXI8L0NPREU+IC0gVGhlIGNoYXJhY3RlcnMgZnJvbSB0aGUgWE1MIGRvY3VtZW50PEREPjxDT0RFPnN0YXJ0PC9DT0RFPiAtIFN0YXJ0aW5nIG9mZnNldCBpbnRvIHRoZSBidWZmZXI8REQ+PENPREU+bGVuZ3RoPC9DT0RFPiAtIE51bWJlciBvZiBjaGFyYWN0ZXJzIGZyb20gdGhlIGJ1ZmZlcjxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5TQVhFeGNlcHRpb248L0NPREU+IC0gaWYgYSBwYXJzaW5nIGVycm9yIGlzIHRvIGJlIHJlcG9ydGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbmREb2N1bWVudCgpIj48IS0tIC0tPjwvQT48SDM+CitlbmREb2N1bWVudDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZW5kRG9jdW1lbnQ8L0I+KCkKKyAgICAgICAgICAgICAgICAgdGhyb3dzIG9yZy54bWwuc2F4LlNBWEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3Mgbm90aWZpY2F0aW9uIG9mIHRoZSBlbmQgb2YgdGhlIGRvY3VtZW50IGJlaW5nIHJlYWNoZWQuPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5TQVhFeGNlcHRpb248L0NPREU+IC0gaWYgYSBwYXJzaW5nIGVycm9yIGlzIHRvIGJlIHJlcG9ydGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbmRFbGVtZW50KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitlbmRFbGVtZW50PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5lbmRFbGVtZW50PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSkKKyAgICAgICAgICAgICAgICB0aHJvd3Mgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyBub3RpZmljYXRpb24gb2YgdGhlIGVuZCBvZiBhbiBYTUwgZWxlbWVudCBiZWluZyByZWFjaGVkLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgZWxlbWVudCB0aGF0IGlzIGVuZGluZzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5TQVhFeGNlcHRpb248L0NPREU+IC0gaWYgYSBwYXJzaW5nIGVycm9yIGlzIHRvIGJlIHJlcG9ydGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpZ25vcmFibGVXaGl0ZXNwYWNlKGNoYXJbXSwgaW50LCBpbnQpIj48IS0tIC0tPjwvQT48SDM+CitpZ25vcmFibGVXaGl0ZXNwYWNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5pZ25vcmFibGVXaGl0ZXNwYWNlPC9CPihjaGFyW10mbmJzcDtidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtsZW4pCisgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIG9yZy54bWwuc2F4LlNBWEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3Mgbm90aWZpY2F0aW9uIG9mIGlnbm9yYWJsZSB3aGl0ZXNwYWNlIHJlY2VpdmVkIGZyb20gdGhlIGJvZHkgb2YKKyBhbiBYTUwgZWxlbWVudC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5idWZmZXI8L0NPREU+IC0gVGhlIGNoYXJhY3RlcnMgZnJvbSB0aGUgWE1MIGRvY3VtZW50PEREPjxDT0RFPnN0YXJ0PC9DT0RFPiAtIFN0YXJ0aW5nIG9mZnNldCBpbnRvIHRoZSBidWZmZXI8REQ+PENPREU+bGVuZ3RoPC9DT0RFPiAtIE51bWJlciBvZiBjaGFyYWN0ZXJzIGZyb20gdGhlIGJ1ZmZlcjxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5TQVhFeGNlcHRpb248L0NPREU+IC0gaWYgYSBwYXJzaW5nIGVycm9yIGlzIHRvIGJlIHJlcG9ydGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NpbmdJbnN0cnVjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJvY2Vzc2luZ0luc3RydWN0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtkYXRhKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIG9yZy54bWwuc2F4LlNBWEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3Mgbm90aWZpY2F0aW9uIG9mIGEgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiB0aGF0IHdhcyBlbmNvdW50ZXJlZC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT50YXJnZXQ8L0NPREU+IC0gVGhlIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gdGFyZ2V0PEREPjxDT0RFPmRhdGE8L0NPREU+IC0gVGhlIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gZGF0YSAoaWYgYW55KTxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5TQVhFeGNlcHRpb248L0NPREU+IC0gaWYgYSBwYXJzaW5nIGVycm9yIGlzIHRvIGJlIHJlcG9ydGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXREb2N1bWVudExvY2F0b3Iob3JnLnhtbC5zYXguTG9jYXRvcikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldERvY3VtZW50TG9jYXRvcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RG9jdW1lbnRMb2NhdG9yPC9CPihvcmcueG1sLnNheC5Mb2NhdG9yJm5ic3A7bG9jYXRvcik8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGRvY3VtZW50IGxvY2F0b3IgYXNzb2NpYXRlZCB3aXRoIG91ciBwYXJzZXIuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bG9jYXRvcjwvQ09ERT4gLSBUaGUgbmV3IGxvY2F0b3I8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InN0YXJ0RG9jdW1lbnQoKSI+PCEtLSAtLT48L0E+PEgzPgorc3RhcnREb2N1bWVudDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c3RhcnREb2N1bWVudDwvQj4oKQorICAgICAgICAgICAgICAgICAgIHRocm93cyBvcmcueG1sLnNheC5TQVhFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIG5vdGlmaWNhdGlvbiBvZiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkb2N1bWVudCBiZWluZyByZWFjaGVkLjxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+U0FYRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgcGFyc2luZyBlcnJvciBpcyB0byBiZSByZXBvcnRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3RhcnRFbGVtZW50KGphdmEubGFuZy5TdHJpbmcsIG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QpIj48IS0tIC0tPjwvQT48SDM+CitzdGFydEVsZW1lbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnN0YXJ0RWxlbWVudDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCZuYnNwO2xpc3QpCisgICAgICAgICAgICAgICAgICB0aHJvd3Mgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyBub3RpZmljYXRpb24gb2YgdGhlIHN0YXJ0IG9mIGFuIFhNTCBlbGVtZW50IGJlaW5nIHJlYWNoZWQuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBlbGVtZW50IHRoYXQgaXMgc3RhcnRpbmc8REQ+PENPREU+bGlzdDwvQ09ERT4gLSBUaGUgYXR0cmlidXRlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBlbGVtZW50PERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPlNBWEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHBhcnNpbmcgZXJyb3IgaXMgdG8gYmUgcmVwb3J0ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5vdGF0aW9uRGVjbChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorbm90YXRpb25EZWNsPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5ub3RhdGlvbkRlY2w8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwdWJsaWNJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3lzdGVtSWQpPC9QUkU+Cis8REw+Cis8REQ+UmVjZWl2ZSBub3RpZmljYXRpb24gb2YgYSBub3RhdGlvbiBkZWNsYXJhdGlvbiBldmVudC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIFRoZSBub3RhdGlvbiBuYW1lPEREPjxDT0RFPnB1YmxpY0lkPC9DT0RFPiAtIFRoZSBwdWJsaWMgaWRlbnRpZmllciAoaWYgYW55KTxERD48Q09ERT5zeXN0ZW1JZDwvQ09ERT4gLSBUaGUgc3lzdGVtIGlkZW50aWZpZXIgKGlmIGFueSk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InVucGFyc2VkRW50aXR5RGVjbChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgordW5wYXJzZWRFbnRpdHlEZWNsPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj51bnBhcnNlZEVudGl0eURlY2w8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwdWJsaWNJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3lzdGVtSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25vdGF0aW9uKTwvUFJFPgorPERMPgorPEREPlJlY2VpdmUgbm90aWZpY2F0aW9uIG9mIGFuIHVucGFyc2VkIGVudGl0eSBkZWNsYXJhdGlvbiBldmVudC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIFRoZSB1bnBhcnNlZCBlbnRpdHkgbmFtZTxERD48Q09ERT5wdWJsaWNJZDwvQ09ERT4gLSBUaGUgcHVibGljIGlkZW50aWZpZXIgKGlmIGFueSk8REQ+PENPREU+c3lzdGVtSWQ8L0NPREU+IC0gVGhlIHN5c3RlbSBpZGVudGlmaWVyIChpZiBhbnkpPEREPjxDT0RFPm5vdGF0aW9uPC9DT0RFPiAtIFRoZSBuYW1lIG9mIHRoZSBhc3NvY2lhdGVkIG5vdGF0aW9uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXNvbHZlRW50aXR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CityZXNvbHZlRW50aXR5PC9IMz4KKzxQUkU+CitwdWJsaWMgb3JnLnhtbC5zYXguSW5wdXRTb3VyY2UgPEI+cmVzb2x2ZUVudGl0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3B1YmxpY0lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3N5c3RlbUlkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3Mgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVzb2x2ZSB0aGUgcmVxdWVzdGVkIGV4dGVybmFsIGVudGl0eS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wdWJsaWNJZDwvQ09ERT4gLSBUaGUgcHVibGljIGlkZW50aWZpZXIgb2YgdGhlIGVudGl0eSBiZWluZyByZWZlcmVuY2VkPEREPjxDT0RFPnN5c3RlbUlkPC9DT0RFPiAtIFRoZSBzeXN0ZW0gaWRlbnRpZmllciBvZiB0aGUgZW50aXR5IGJlaW5nIHJlZmVyZW5jZWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+U0FYRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgcGFyc2luZyBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlcnJvcihvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbikiPjwhLS0gLS0+PC9BPjxIMz4KK2Vycm9yPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5lcnJvcjwvQj4ob3JnLnhtbC5zYXguU0FYUGFyc2VFeGNlcHRpb24mbmJzcDtleGNlcHRpb24pCisgICAgICAgICAgIHRocm93cyBvcmcueG1sLnNheC5TQVhFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Gb3J3YXJkIG5vdGlmaWNhdGlvbiBvZiBhIHBhcnNpbmcgZXJyb3IgdG8gdGhlIGFwcGxpY2F0aW9uIHN1cHBsaWVkCisgZXJyb3IgaGFuZGxlciAoaWYgYW55KS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5leGNlcHRpb248L0NPREU+IC0gVGhlIGVycm9yIGluZm9ybWF0aW9uPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPlNBWEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHBhcnNpbmcgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmF0YWxFcnJvcihvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbikiPjwhLS0gLS0+PC9BPjxIMz4KK2ZhdGFsRXJyb3I8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmZhdGFsRXJyb3I8L0I+KG9yZy54bWwuc2F4LlNBWFBhcnNlRXhjZXB0aW9uJm5ic3A7ZXhjZXB0aW9uKQorICAgICAgICAgICAgICAgIHRocm93cyBvcmcueG1sLnNheC5TQVhFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Gb3J3YXJkIG5vdGlmaWNhdGlvbiBvZiBhIGZhdGFsIHBhcnNpbmcgZXJyb3IgdG8gdGhlIGFwcGxpY2F0aW9uCisgc3VwcGxpZWQgZXJyb3IgaGFuZGxlciAoaWYgYW55KS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5leGNlcHRpb248L0NPREU+IC0gVGhlIGZhdGFsIGVycm9yIGluZm9ybWF0aW9uPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPlNBWEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHBhcnNpbmcgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0id2FybmluZyhvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbikiPjwhLS0gLS0+PC9BPjxIMz4KK3dhcm5pbmc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPndhcm5pbmc8L0I+KG9yZy54bWwuc2F4LlNBWFBhcnNlRXhjZXB0aW9uJm5ic3A7ZXhjZXB0aW9uKQorICAgICAgICAgICAgIHRocm93cyBvcmcueG1sLnNheC5TQVhFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Gb3J3YXJkIG5vdGlmaWNhdGlvbiBvZiBhIHBhcnNlIHdhcm5pbmcgdG8gdGhlIGFwcGxpY2F0aW9uIHN1cHBsaWVkCisgZXJyb3IgaGFuZGxlciAoaWYgYW55KS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5leGNlcHRpb248L0NPREU+IC0gVGhlIHdhcm5pbmcgaW5mb3JtYXRpb248RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+U0FYRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgcGFyc2luZyBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2coamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+bG9nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSk8L1BSRT4KKzxETD4KKzxERD5Mb2cgYSBtZXNzYWdlIHRvIHRoZSBsb2cgd3JpdGVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbnRleHQuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWVzc2FnZTwvQ09ERT4gLSBUaGUgbWVzc2FnZSB0byBiZSBsb2dnZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+PCEtLSAtLT48L0E+PEgzPgorbG9nPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5sb2c8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXNzYWdlLAorICAgICAgICAgICAgICAgIGphdmEubGFuZy5UaHJvd2FibGUmbmJzcDtleGNlcHRpb24pPC9QUkU+Cis8REw+Cis8REQ+TG9nIGEgbWVzc2FnZSBhbmQgYXNzb2NpYXRlZCBleGNlcHRpb24gdG8gdGhlIGxvZyB3cml0ZXIKKyBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb250ZXh0LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1lc3NhZ2U8L0NPREU+IC0gVGhlIG1lc3NhZ2UgdG8gYmUgbG9nZ2VkPEREPjxDT0RFPmV4Y2VwdGlvbjwvQ09ERT4gLSBUaGUgYXNzb2NpYXRlZCBleGNlcHRpb24gdG8gYmUgbG9nZ2VkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJzZShqYXZhLmlvLkZpbGUpIj48IS0tIC0tPjwvQT48SDM+CitwYXJzZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+cGFyc2U8L0I+KGphdmEuaW8uRmlsZSZuYnNwO2ZpbGUpCisgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UGFyc2UgdGhlIGNvbnRlbnQgb2YgdGhlIHNwZWNpZmllZCBmaWxlIHVzaW5nIHRoaXMgRGlnZXN0ZXIuICBSZXR1cm5zCisgdGhlIHJvb3QgZWxlbWVudCBmcm9tIHRoZSBvYmplY3Qgc3RhY2sgKGlmIGFueSkuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmlsZTwvQ09ERT4gLSBGaWxlIGNvbnRhaW5pbmcgdGhlIFhNTCBkYXRhIHRvIGJlIHBhcnNlZDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnM8REQ+PENPREU+U0FYRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgcGFyc2luZyBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJzZShvcmcueG1sLnNheC5JbnB1dFNvdXJjZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcnNlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5wYXJzZTwvQj4ob3JnLnhtbC5zYXguSW5wdXRTb3VyY2UmbmJzcDtpbnB1dCkKKyAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcueG1sLnNheC5TQVhFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5QYXJzZSB0aGUgY29udGVudCBvZiB0aGUgc3BlY2lmaWVkIGlucHV0IHNvdXJjZSB1c2luZyB0aGlzIERpZ2VzdGVyLgorIFJldHVybnMgdGhlIHJvb3QgZWxlbWVudCBmcm9tIHRoZSBvYmplY3Qgc3RhY2sgKGlmIGFueSkuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aW5wdXQ8L0NPREU+IC0gSW5wdXQgc291cmNlIGNvbnRhaW5pbmcgdGhlIFhNTCBkYXRhIHRvIGJlIHBhcnNlZDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnM8REQ+PENPREU+U0FYRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgcGFyc2luZyBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJzZShqYXZhLmlvLklucHV0U3RyZWFtKSI+PCEtLSAtLT48L0E+PEgzPgorcGFyc2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPnBhcnNlPC9CPihqYXZhLmlvLklucHV0U3RyZWFtJm5ic3A7aW5wdXQpCisgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UGFyc2UgdGhlIGNvbnRlbnQgb2YgdGhlIHNwZWNpZmllZCBpbnB1dCBzdHJlYW0gdXNpbmcgdGhpcyBEaWdlc3Rlci4KKyBSZXR1cm5zIHRoZSByb290IGVsZW1lbnQgZnJvbSB0aGUgb2JqZWN0IHN0YWNrIChpZiBhbnkpLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmlucHV0PC9DT0RFPiAtIElucHV0IHN0cmVhbSBjb250YWluaW5nIHRoZSBYTUwgZGF0YSB0byBiZSBwYXJzZWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzPEREPjxDT0RFPlNBWEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHBhcnNpbmcgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyc2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcnNlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5wYXJzZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSkKKyAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcueG1sLnNheC5TQVhFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5QYXJzZSB0aGUgY29udGVudCBvZiB0aGUgc3BlY2lmaWVkIFVSSSB1c2luZyB0aGlzIERpZ2VzdGVyLgorIFJldHVybnMgdGhlIHJvb3QgZWxlbWVudCBmcm9tIHRoZSBvYmplY3Qgc3RhY2sgKGlmIGFueSkuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dXJpPC9DT0RFPiAtIFVSSSBjb250YWluaW5nIHRoZSBYTUwgZGF0YSB0byBiZSBwYXJzZWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzPEREPjxDT0RFPlNBWEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHBhcnNpbmcgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVnaXN0ZXIoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3JlZ2lzdGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWdpc3RlcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3B1YmxpY0lkLAorICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2R0ZFVSTCk8L1BSRT4KKzxETD4KKzxERD5SZWdpc3RlciB0aGUgc3BlY2lmaWVkIERURCBVUkwgZm9yIHRoZSBzcGVjaWZpZWQgcHVibGljIGlkZW50aWZpZXIuCisgVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgdGhlIGZpcnN0IGNhbGwgdG8gPGNvZGU+cGFyc2UoKTwvY29kZT4uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHVibGljSWQ8L0NPREU+IC0gUHVibGljIGlkZW50aWZpZXIgb2YgdGhlIERURCB0byBiZSByZXNvbHZlZDxERD48Q09ERT5kdGRVUkw8L0NPREU+IC0gVGhlIFVSTCB0byB1c2UgZm9yIHJlYWRpbmcgdGhpcyBEVEQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZFJ1bGUoamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuUnVsZSkiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZFJ1bGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZFJ1bGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+Jm5ic3A7cnVsZSk8L1BSRT4KKzxETD4KKzxERD5SZWdpc3RlciBhIG5ldyBSdWxlIG1hdGNoaW5nIHRoZSBzcGVjaWZpZWQgcGF0dGVybi48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYXR0ZXJuPC9DT0RFPiAtIEVsZW1lbnQgbWF0Y2hpbmcgcGF0dGVybjxERD48Q09ERT5ydWxlPC9DT0RFPiAtIFJ1bGUgdG8gYmUgcmVnaXN0ZXJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkQ2FsbE1ldGhvZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj48IS0tIC0tPjwvQT48SDM+CithZGRDYWxsTWV0aG9kPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRDYWxsTWV0aG9kPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3BhcmFtQ291bnQpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGFuICJjYWxsIG1ldGhvZCIgcnVsZSBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhdHRlcm48L0NPREU+IC0gRWxlbWVudCBtYXRjaGluZyBwYXR0ZXJuPEREPjxDT0RFPm1ldGhvZE5hbWU8L0NPREU+IC0gTWV0aG9kIG5hbWUgdG8gYmUgY2FsbGVkPEREPjxDT0RFPnBhcmFtQ291bnQ8L0NPREU+IC0gTnVtYmVyIG9mIGV4cGVjdGVkIHBhcmFtZXRlcnMgKG9yIHplcm8KKyAgZm9yIGEgc2luZ2xlIHBhcmFtZXRlciBmcm9tIHRoZSBib2R5IG9mIHRoaXMgZWxlbWVudCk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZENhbGxNZXRob2QoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgaW50LCBqYXZhLmxhbmcuU3RyaW5nW10pIj48IS0tIC0tPjwvQT48SDM+CithZGRDYWxsTWV0aG9kPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRDYWxsTWV0aG9kPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3BhcmFtQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmdbXSZuYnNwO3BhcmFtVHlwZXMpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGFuICJjYWxsIG1ldGhvZCIgcnVsZSBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhdHRlcm48L0NPREU+IC0gRWxlbWVudCBtYXRjaGluZyBwYXR0ZXJuPEREPjxDT0RFPm1ldGhvZE5hbWU8L0NPREU+IC0gTWV0aG9kIG5hbWUgdG8gYmUgY2FsbGVkPEREPjxDT0RFPnBhcmFtQ291bnQ8L0NPREU+IC0gTnVtYmVyIG9mIGV4cGVjdGVkIHBhcmFtZXRlcnMgKG9yIHplcm8KKyAgZm9yIGEgc2luZ2xlIHBhcmFtZXRlciBmcm9tIHRoZSBib2R5IG9mIHRoaXMgZWxlbWVudCk8REQ+PENPREU+cGFyYW1UeXBlczwvQ09ERT4gLSBTZXQgb2YgSmF2YSBjbGFzcyBuYW1lcyBmb3IgdGhlIHR5cGVzCisgIG9mIHRoZSBleHBlY3RlZCBwYXJhbWV0ZXJzCisgIChpZiB5b3Ugd2lzaCB0byB1c2UgYSBwcmltaXRpdmUgdHlwZSwgc3BlY2lmeSB0aGUgY29ycmVzb25kaW5nCisgIEphdmEgd3JhcHBlciBjbGFzcyBpbnN0ZWFkLCBzdWNoIGFzIDxjb2RlPmphdmEubGFuZy5Cb29sZWFuPC9jb2RlPgorICBmb3IgYSA8Y29kZT5ib29sZWFuPC9jb2RlPiBwYXJhbWV0ZXIpPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGRDYWxsTWV0aG9kKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGludCwgamF2YS5sYW5nLkNsYXNzW10pIj48IS0tIC0tPjwvQT48SDM+CithZGRDYWxsTWV0aG9kPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRDYWxsTWV0aG9kPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3BhcmFtQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5DbGFzc1tdJm5ic3A7cGFyYW1UeXBlcyk8L1BSRT4KKzxETD4KKzxERD5BZGQgYW4gImNhbGwgbWV0aG9kIiBydWxlIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0dGVybjwvQ09ERT4gLSBFbGVtZW50IG1hdGNoaW5nIHBhdHRlcm48REQ+PENPREU+bWV0aG9kTmFtZTwvQ09ERT4gLSBNZXRob2QgbmFtZSB0byBiZSBjYWxsZWQ8REQ+PENPREU+cGFyYW1Db3VudDwvQ09ERT4gLSBOdW1iZXIgb2YgZXhwZWN0ZWQgcGFyYW1ldGVycyAob3IgemVybworICBmb3IgYSBzaW5nbGUgcGFyYW1ldGVyIGZyb20gdGhlIGJvZHkgb2YgdGhpcyBlbGVtZW50KTxERD48Q09ERT5wYXJhbVR5cGVzPC9DT0RFPiAtIFRoZSBKYXZhIGNsYXNzIG5hbWVzIG9mIHRoZSBhcmd1bWVudHMKKyAgKGlmIHlvdSB3aXNoIHRvIHVzZSBhIHByaW1pdGl2ZSB0eXBlLCBzcGVjaWZ5IHRoZSBjb3JyZXNvbmRpbmcKKyAgSmF2YSB3cmFwcGVyIGNsYXNzIGluc3RlYWQsIHN1Y2ggYXMgPGNvZGU+amF2YS5sYW5nLkJvb2xlYW48L2NvZGU+CisgIGZvciBhIDxjb2RlPmJvb2xlYW48L2NvZGU+IHBhcmFtZXRlcik8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZENhbGxQYXJhbShqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj48IS0tIC0tPjwvQT48SDM+CithZGRDYWxsUGFyYW08L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZENhbGxQYXJhbTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7cGFyYW1JbmRleCk8L1BSRT4KKzxETD4KKzxERD5BZGQgYSAiY2FsbCBwYXJhbWV0ZXIiIHJ1bGUgZm9yIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYXR0ZXJuPC9DT0RFPiAtIEVsZW1lbnQgbWF0Y2hpbmcgcGF0dGVybjxERD48Q09ERT5wYXJhbUluZGV4PC9DT0RFPiAtIFplcm8tcmVsYXRpdmUgcGFyYW1ldGVyIGluZGV4IHRvIHNldAorICAoZnJvbSB0aGUgYm9keSBvZiB0aGlzIGVsZW1lbnQpPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGRDYWxsUGFyYW0oamF2YS5sYW5nLlN0cmluZywgaW50LCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkQ2FsbFBhcmFtPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRDYWxsUGFyYW08L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3BhcmFtSW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2F0dHJpYnV0ZU5hbWUpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGEgImNhbGwgcGFyYW1ldGVyIiBydWxlIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0dGVybjwvQ09ERT4gLSBFbGVtZW50IG1hdGNoaW5nIHBhdHRlcm48REQ+PENPREU+cGFyYW1JbmRleDwvQ09ERT4gLSBaZXJvLXJlbGF0aXZlIHBhcmFtZXRlciBpbmRleCB0byBzZXQKKyAgKGZyb20gdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGUpPEREPjxDT0RFPmF0dHJpYnV0ZU5hbWU8L0NPREU+IC0gQXR0cmlidXRlIHdob3NlIHZhbHVlIGlzIHVzZWQgYXMgdGhlCisgIHBhcmFtZXRlciB2YWx1ZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkT2JqZWN0Q3JlYXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CithZGRPYmplY3RDcmVhdGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZE9iamVjdENyZWF0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzTmFtZSk8L1BSRT4KKzxETD4KKzxERD5BZGQgYW4gIm9iamVjdCBjcmVhdGUiIHJ1bGUgZm9yIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYXR0ZXJuPC9DT0RFPiAtIEVsZW1lbnQgbWF0Y2hpbmcgcGF0dGVybjxERD48Q09ERT5jbGFzc05hbWU8L0NPREU+IC0gSmF2YSBjbGFzcyBuYW1lIHRvIGJlIGNyZWF0ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZE9iamVjdENyZWF0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkT2JqZWN0Q3JlYXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRPYmplY3RDcmVhdGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXR0ZXJuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc05hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2F0dHJpYnV0ZU5hbWUpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGFuICJvYmplY3QgY3JlYXRlIiBydWxlIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0dGVybjwvQ09ERT4gLSBFbGVtZW50IG1hdGNoaW5nIHBhdHRlcm48REQ+PENPREU+Y2xhc3NOYW1lPC9DT0RFPiAtIERlZmF1bHQgSmF2YSBjbGFzcyBuYW1lIHRvIGJlIGNyZWF0ZWQ8REQ+PENPREU+YXR0cmlidXRlTmFtZTwvQ09ERT4gLSBBdHRyaWJ1dGUgbmFtZSB0aGF0IG9wdGlvbmFsbHkgb3ZlcnJpZGVzCisgIHRoZSBkZWZhdWx0IEphdmEgY2xhc3MgbmFtZSB0byBiZSBjcmVhdGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGRTZXROZXh0KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CithZGRTZXROZXh0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRTZXROZXh0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZE5hbWUpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGEgInNldCBuZXh0IiBydWxlIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0dGVybjwvQ09ERT4gLSBFbGVtZW50IG1hdGNoaW5nIHBhdHRlcm48REQ+PENPREU+bWV0aG9kTmFtZTwvQ09ERT4gLSBNZXRob2QgbmFtZSB0byBjYWxsIG9uIHRoZSBwYXJlbnQgZWxlbWVudDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkU2V0TmV4dChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkU2V0TmV4dDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkU2V0TmV4dDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXRob2ROYW1lLAorICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1UeXBlKTwvUFJFPgorPERMPgorPEREPkFkZCBhICJzZXQgbmV4dCIgcnVsZSBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhdHRlcm48L0NPREU+IC0gRWxlbWVudCBtYXRjaGluZyBwYXR0ZXJuPEREPjxDT0RFPm1ldGhvZE5hbWU8L0NPREU+IC0gTWV0aG9kIG5hbWUgdG8gY2FsbCBvbiB0aGUgcGFyZW50IGVsZW1lbnQ8REQ+PENPREU+cGFyYW1UeXBlPC9DT0RFPiAtIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgZXhwZWN0ZWQgcGFyYW1ldGVyIHR5cGUKKyAgKGlmIHlvdSB3aXNoIHRvIHVzZSBhIHByaW1pdGl2ZSB0eXBlLCBzcGVjaWZ5IHRoZSBjb3JyZXNvbmRpbmcKKyAgSmF2YSB3cmFwcGVyIGNsYXNzIGluc3RlYWQsIHN1Y2ggYXMgPGNvZGU+amF2YS5sYW5nLkJvb2xlYW48L2NvZGU+CisgIGZvciBhIDxjb2RlPmJvb2xlYW48L2NvZGU+IHBhcmFtZXRlcik8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZFNldFByb3BlcnRpZXMoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZFNldFByb3BlcnRpZXM8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZFNldFByb3BlcnRpZXM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXR0ZXJuKTwvUFJFPgorPERMPgorPEREPkFkZCBhICJzZXQgcHJvcGVydGllcyIgcnVsZSBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhdHRlcm48L0NPREU+IC0gRWxlbWVudCBtYXRjaGluZyBwYXR0ZXJuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGRTZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkU2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZFNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPkFkZCBhICJzZXQgcHJvcGVydHkiIHJ1bGUgZm9yIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYXR0ZXJuPC9DT0RFPiAtIEVsZW1lbnQgbWF0Y2hpbmcgcGF0dGVybjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIEF0dHJpYnV0ZSBuYW1lIGNvbnRhaW5pbmcgdGhlIHByb3BlcnR5IG5hbWUgdG8gYmUgc2V0PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIEF0dHJpYnV0ZSBuYW1lIGNvbnRhaW5pbmcgdGhlIHByb3BlcnR5IHZhbHVlIHRvIHNldDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkU2V0VG9wKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CithZGRTZXRUb3A8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZFNldFRvcDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZE5hbWUpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGEgInNldCB0b3AiIHJ1bGUgZm9yIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYXR0ZXJuPC9DT0RFPiAtIEVsZW1lbnQgbWF0Y2hpbmcgcGF0dGVybjxERD48Q09ERT5tZXRob2ROYW1lPC9DT0RFPiAtIE1ldGhvZCBuYW1lIHRvIGNhbGwgb24gdGhlIHBhcmVudCBlbGVtZW50PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGRTZXRUb3AoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZFNldFRvcDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkU2V0VG9wPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWV0aG9kTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1UeXBlKTwvUFJFPgorPERMPgorPEREPkFkZCBhICJzZXQgdG9wIiBydWxlIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0dGVybjwvQ09ERT4gLSBFbGVtZW50IG1hdGNoaW5nIHBhdHRlcm48REQ+PENPREU+bWV0aG9kTmFtZTwvQ09ERT4gLSBNZXRob2QgbmFtZSB0byBjYWxsIG9uIHRoZSBwYXJlbnQgZWxlbWVudDxERD48Q09ERT5wYXJhbVR5cGU8L0NPREU+IC0gSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBleHBlY3RlZCBwYXJhbWV0ZXIgdHlwZQorICAoaWYgeW91IHdpc2ggdG8gdXNlIGEgcHJpbWl0aXZlIHR5cGUsIHNwZWNpZnkgdGhlIGNvcnJlc29uZGluZworICBKYXZhIHdyYXBwZXIgY2xhc3MgaW5zdGVhZCwgc3VjaCBhcyA8Y29kZT5qYXZhLmxhbmcuQm9vbGVhbjwvY29kZT4KKyAgZm9yIGEgPGNvZGU+Ym9vbGVhbjwvY29kZT4gcGFyYW1ldGVyKTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2xlYXIoKSI+PCEtLSAtLT48L0E+PEgzPgorY2xlYXI8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmNsZWFyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q2xlYXIgdGhlIGN1cnJlbnQgY29udGVudHMgb2YgdGhlIG9iamVjdCBzdGFjay48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwZWVrKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3BlZWs8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPnBlZWs8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHRvcCBvYmplY3Qgb24gdGhlIHN0YWNrIHdpdGhvdXQgcmVtb3ZpbmcgaXQuICBJZiB0aGVyZSBhcmUKKyBubyBvYmplY3RzIG9uIHRoZSBzdGFjaywgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBlZWsoaW50KSI+PCEtLSAtLT48L0E+PEgzPgorcGVlazwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+cGVlazwvQj4oaW50Jm5ic3A7bik8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG4ndGggb2JqZWN0IGRvd24gdGhlIHN0YWNrLCB3aGVyZSAwIGlzIHRoZSB0b3AgZWxlbWVudAorIGFuZCBbZ2V0Q291bnQoKS0xXSBpcyB0aGUgYm90dG9tIGVsZW1lbnQuICBJZiB0aGUgc3BlY2lmaWVkIGluZGV4CisgaXMgb3V0IG9mIHJhbmdlLCByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bjwvQ09ERT4gLSBJbmRleCBvZiB0aGUgZGVzaXJlZCBlbGVtZW50LCB3aGVyZSAwIGlzIHRoZSB0b3Agb2YgdGhlIHN0YWNrLAorICAxIGlzIHRoZSBuZXh0IGVsZW1lbnQgZG93biwgYW5kIHNvIG9uLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icG9wKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3BvcDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+cG9wPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UG9wIHRoZSB0b3Agb2JqZWN0IG9mZiBvZiB0aGUgc3RhY2ssIGFuZCByZXR1cm4gaXQuICBJZiB0aGVyZSBhcmUKKyBubyBvYmplY3RzIG9uIHRoZSBzdGFjaywgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InB1c2goamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3B1c2g8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnB1c2g8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtvYmplY3QpPC9QUkU+Cis8REw+Cis8REQ+UHVzaCBhIG5ldyBvYmplY3Qgb250byB0aGUgdG9wIG9mIHRoZSBvYmplY3Qgc3RhY2suPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+b2JqZWN0PC9DT0RFPiAtIFRoZSBuZXcgb2JqZWN0PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSdWxlcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UnVsZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuTGlzdCA8Qj5nZXRSdWxlczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21hdGNoKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgc2V0IG9mIHJ1bGVzIHRoYXQgYXBwbHkgdG8gdGhlIHNwZWNpZmllZCBtYXRjaCBwb3NpdGlvbi4KKyBUaGUgc2VsZWN0ZWQgcnVsZXMgYXJlIHRob3NlIHRoYXQgbWF0Y2ggZXhhY3RseSwgb3IgdGhvc2UgcnVsZXMKKyB0aGF0IHNwZWNpZnkgYSBzdWZmaXggbWF0Y2ggYW5kIHRoZSB0YWlsIG9mIHRoZSBydWxlIG1hdGNoZXMgdGhlCisgY3VycmVudCBtYXRjaCBwb3NpdGlvbi4gIEV4YWN0IG1hdGNoZXMgaGF2ZSBwcmVjZWRlbmNlIG92ZXIKKyBzdWZmaXggbWF0Y2hlcywgdGhlbiAoYW1vbmcgc3VmZml4IG1hdGNoZXMpIHRoZSBsb25nZXN0IG1hdGNoCisgaXMgcHJlZmVycmVkLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hdGNoPC9DT0RFPiAtIFRoZSBjdXJyZW50IG1hdGNoIHBvc2l0aW9uPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxQYXJhbVJ1bGUuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9PYmplY3RDcmVhdGVSdWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEaWdlc3Rlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDNiZWViCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvT2JqZWN0Q3JlYXRlUnVsZS5odG1sCkBAIC0wLDAgKzEsMzU1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgT2JqZWN0Q3JlYXRlUnVsZQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik9iamVjdENyZWF0ZVJ1bGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyPC9GT05UPgorPEJSPgorQ2xhc3MgIE9iamVjdENyZWF0ZVJ1bGU8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLlJ1bGU8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuT2JqZWN0Q3JlYXRlUnVsZTwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5PYmplY3RDcmVhdGVSdWxlPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT48L0RMPgorCis8UD4KK1J1bGUgaW1wbGVtZW50YXRpb24gdGhhdCBjcmVhdGVzIGEgbmV3IG9iamVjdCBhbmQgcHVzaGVzIGl0Cisgb250byB0aGUgb2JqZWN0IHN0YWNrLiAgV2hlbiB0aGUgZWxlbWVudCBpcyBjb21wbGV0ZSwgdGhlCisgb2JqZWN0IHdpbGwgYmUgcG9wcGVkCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbCNhdHRyaWJ1dGVOYW1lIj5hdHRyaWJ1dGVOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhdHRyaWJ1dGUgY29udGFpbmluZyBhbiBvdmVycmlkZSBjbGFzcyBuYW1lIGlmIGl0IGlzIHByZXNlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbCNjbGFzc05hbWUiPmNsYXNzTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBvYmplY3QgdG8gYmUgY3JlYXRlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuUnVsZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2RpZ2VzdGVyIj5kaWdlc3RlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9PYmplY3RDcmVhdGVSdWxlLmh0bWwjT2JqZWN0Q3JlYXRlUnVsZShvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5EaWdlc3RlciwgamF2YS5sYW5nLlN0cmluZykiPk9iamVjdENyZWF0ZVJ1bGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4mbmJzcDtkaWdlc3RlciwKKyAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhbiBvYmplY3QgY3JlYXRlIHJ1bGUgd2l0aCB0aGUgc3BlY2lmaWVkIGNsYXNzIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9PYmplY3RDcmVhdGVSdWxlLmh0bWwjT2JqZWN0Q3JlYXRlUnVsZShvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5EaWdlc3RlciwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPk9iamVjdENyZWF0ZVJ1bGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4mbmJzcDtkaWdlc3RlciwKKyAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzTmFtZSwKKyAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2F0dHJpYnV0ZU5hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYW4gb2JqZWN0IGNyZWF0ZSBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBjbGFzcyBuYW1lIGFuZCBhbgorIG9wdGlvbmFsIGF0dHJpYnV0ZSBuYW1lIGNvbnRhaW5pbmcgYW4gb3ZlcnJpZGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9PYmplY3RDcmVhdGVSdWxlLmh0bWwjYmVnaW4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCkiPmJlZ2luPC9BPjwvQj4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCZuYnNwO2F0dHJpYnV0ZXMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbCNlbmQoKSI+ZW5kPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9PYmplY3RDcmVhdGVSdWxlLmh0bWwjZmluaXNoKCkiPmZpbmlzaDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NsZWFuIHVwIGFmdGVyIHBhcnNpbmcgaXMgY29tcGxldGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5SdWxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2JvZHkoamF2YS5sYW5nLlN0cmluZykiPmJvZHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYXR0cmlidXRlTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorYXR0cmlidXRlTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+YXR0cmlidXRlTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYXR0cmlidXRlIGNvbnRhaW5pbmcgYW4gb3ZlcnJpZGUgY2xhc3MgbmFtZSBpZiBpdCBpcyBwcmVzZW50LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNsYXNzTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorY2xhc3NOYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jbGFzc05hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgb2JqZWN0IHRvIGJlIGNyZWF0ZWQuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik9iamVjdENyZWF0ZVJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitPYmplY3RDcmVhdGVSdWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+T2JqZWN0Q3JlYXRlUnVsZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Jm5ic3A7ZGlnZXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NOYW1lKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhbiBvYmplY3QgY3JlYXRlIHJ1bGUgd2l0aCB0aGUgc3BlY2lmaWVkIGNsYXNzIG5hbWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZGlnZXN0ZXI8L0NPREU+IC0gVGhlIGFzc29jaWF0ZWQgRGlnZXN0ZXI8REQ+PENPREU+Y2xhc3NOYW1lPC9DT0RFPiAtIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgb2JqZWN0IHRvIGJlIGNyZWF0ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Ik9iamVjdENyZWF0ZVJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitPYmplY3RDcmVhdGVSdWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+T2JqZWN0Q3JlYXRlUnVsZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Jm5ic3A7ZGlnZXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2F0dHJpYnV0ZU5hbWUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIG9iamVjdCBjcmVhdGUgcnVsZSB3aXRoIHRoZSBzcGVjaWZpZWQgY2xhc3MgbmFtZSBhbmQgYW4KKyBvcHRpb25hbCBhdHRyaWJ1dGUgbmFtZSBjb250YWluaW5nIGFuIG92ZXJyaWRlLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRpZ2VzdGVyPC9DT0RFPiAtIFRoZSBhc3NvY2lhdGVkIERpZ2VzdGVyPEREPjxDT0RFPmNsYXNzTmFtZTwvQ09ERT4gLSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIG9iamVjdCB0byBiZSBjcmVhdGVkPEREPjxDT0RFPmF0dHJpYnV0ZU5hbWU8L0NPREU+IC0gQXR0cmlidXRlIG5hbWUgd2hpY2gsIGlmIHByZXNlbnQsIGNvbnRhaW5zIGFuCisgIG92ZXJyaWRlIG9mIHRoZSBjbGFzcyBuYW1lIHRvIGNyZWF0ZTwvREw+Cis8L0REPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYmVnaW4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2JlZ2luPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5iZWdpbjwvQj4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCZuYnNwO2F0dHJpYnV0ZXMpCisgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgZWxlbWVudC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCNiZWdpbihvcmcueG1sLnNheC5BdHRyaWJ1dGVMaXN0KSI+YmVnaW48L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YXR0cmlidXRlczwvQ09ERT4gLSBUaGUgYXR0cmlidXRlIGxpc3Qgb2YgdGhpcyBlbGVtZW50PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbmQoKSI+PCEtLSAtLT48L0E+PEgzPgorZW5kPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5lbmQ8L0I+KCkKKyAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgZWxlbWVudC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCNlbmQoKSI+ZW5kPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj5SdWxlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmlzaCgpIj48IS0tIC0tPjwvQT48SDM+CitmaW5pc2g8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmZpbmlzaDwvQj4oKQorICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5DbGVhbiB1cCBhZnRlciBwYXJzaW5nIGlzIGNvbXBsZXRlLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2ZpbmlzaCgpIj5maW5pc2g8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik9iamVjdENyZWF0ZVJ1bGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmMwNTI1ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbApAQCAtMCwwICsxLDMxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFJ1bGUKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvT2JqZWN0Q3JlYXRlUnVsZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldE5leHRSdWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSdWxlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3RlcjwvRk9OVD4KKzxCUj4KK0NsYXNzICBSdWxlPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuUnVsZTwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BZGREYXRhU291cmNlUnVsZS5odG1sIj5BZGREYXRhU291cmNlUnVsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxNZXRob2RSdWxlLmh0bWwiPkNhbGxNZXRob2RSdWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sIj5DYWxsUGFyYW1SdWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvT2JqZWN0Q3JlYXRlUnVsZS5odG1sIj5PYmplY3RDcmVhdGVSdWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0TmV4dFJ1bGUuaHRtbCI+U2V0TmV4dFJ1bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0aWVzUnVsZS5odG1sIj5TZXRQcm9wZXJ0aWVzUnVsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFByb3BlcnR5UnVsZS5odG1sIj5TZXRQcm9wZXJ0eVJ1bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRUb3BSdWxlLmh0bWwiPlNldFRvcFJ1bGU8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGFic3RyYWN0IGNsYXNzIDxCPlJ1bGU8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDwvREw+CisKKzxQPgorQ29uY3JldGUgaW1wbGVtZW50YXRpb25zIG9mIHRoaXMgY2xhc3MgaW1wbGVtZW50IGFjdGlvbnMgdG8gYmUgdGFrZW4gd2hlbgorIGEgY29ycmVzcG9uZGluZyBuZXN0ZWQgcGF0dGVybiBvZiBYTUwgZWxlbWVudHMgaGFzIGJlZW4gbWF0Y2hlZC4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjZGlnZXN0ZXIiPmRpZ2VzdGVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBEaWdlc3RlciB3aXRoIHdoaWNoIHRoaXMgUnVsZSBpcyBhc3NvY2lhdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI1J1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIpIj5SdWxlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Jm5ic3A7ZGlnZXN0ZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWZhdWx0IGNvbnN0cnVjdG9yIHNldHMgb25seSB0aGUgdGhlIGFzc29jaWF0ZWQgRGlnZXN0ZXIuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjYmVnaW4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCkiPmJlZ2luPC9BPjwvQj4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCZuYnNwO2F0dHJpYnV0ZXMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGUgYmVnaW5uaW5nIG9mIGEgbWF0Y2hpbmcgWE1MIGVsZW1lbnQKKyBpcyBlbmNvdW50ZXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjYm9keShqYXZhLmxhbmcuU3RyaW5nKSI+Ym9keTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIGJvZHkgb2YgYSBtYXRjaGluZyBYTUwgZWxlbWVudAorIGlzIGVuY291bnRlcmVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCNlbmQoKSI+ZW5kPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIGVuZCBvZiBhIG1hdGNoaW5nIFhNTCBlbGVtZW50CisgaXMgZW5jb3VudGVyZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2ZpbmlzaCgpIj5maW5pc2g8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYWZ0ZXIgYWxsIHBhcnNpbmcgbWV0aG9kcyBoYXZlIGJlZW4KKyBjYWxsZWQsIHRvIGFsbG93IFJ1bGVzIHRvIHJlbW92ZSB0ZW1wb3JhcnkgZGF0YS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRpZ2VzdGVyIj48IS0tIC0tPjwvQT48SDM+CitkaWdlc3RlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPiA8Qj5kaWdlc3RlcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgRGlnZXN0ZXIgd2l0aCB3aGljaCB0aGlzIFJ1bGUgaXMgYXNzb2NpYXRlZC48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUnVsZShvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5EaWdlc3RlcikiPjwhLS0gLS0+PC9BPjxIMz4KK1J1bGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5SdWxlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4mbmJzcDtkaWdlc3Rlcik8L1BSRT4KKzxETD4KKzxERD5EZWZhdWx0IGNvbnN0cnVjdG9yIHNldHMgb25seSB0aGUgdGhlIGFzc29jaWF0ZWQgRGlnZXN0ZXIuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZGlnZXN0ZXI8L0NPREU+IC0gVGhlIGRpZ2VzdGVyIHdpdGggd2hpY2ggdGhpcyBydWxlIGlzIGFzc29jaWF0ZWQ8L0RMPgorPC9ERD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImJlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QpIj48IS0tIC0tPjwvQT48SDM+CitiZWdpbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YmVnaW48L0I+KG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QmbmJzcDthdHRyaWJ1dGVzKQorICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIHRoZSBiZWdpbm5pbmcgb2YgYSBtYXRjaGluZyBYTUwgZWxlbWVudAorIGlzIGVuY291bnRlcmVkLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmF0dHJpYnV0ZXM8L0NPREU+IC0gVGhlIGF0dHJpYnV0ZSBsaXN0IG9mIHRoaXMgZWxlbWVudDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYm9keShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorYm9keTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+Ym9keTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RleHQpCisgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGUgYm9keSBvZiBhIG1hdGNoaW5nIFhNTCBlbGVtZW50CisgaXMgZW5jb3VudGVyZWQuICBJZiB0aGUgZWxlbWVudCBoYXMgbm8gYm9keSwgdGhpcyBtZXRob2QgaXMKKyBub3QgY2FsbGVkIGF0IGFsbC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT50ZXh0PC9DT0RFPiAtIFRoZSB0ZXh0IG9mIHRoZSBib2R5IG9mIHRoaXMgZWxlbWVudDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZW5kKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2VuZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZW5kPC9CPigpCisgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIHRoZSBlbmQgb2YgYSBtYXRjaGluZyBYTUwgZWxlbWVudAorIGlzIGVuY291bnRlcmVkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmlzaCgpIj48IS0tIC0tPjwvQT48SDM+CitmaW5pc2g8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmZpbmlzaDwvQj4oKQorICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBpcyBjYWxsZWQgYWZ0ZXIgYWxsIHBhcnNpbmcgbWV0aG9kcyBoYXZlIGJlZW4KKyBjYWxsZWQsIHRvIGFsbG93IFJ1bGVzIHRvIHJlbW92ZSB0ZW1wb3JhcnkgZGF0YS48L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL09iamVjdENyZWF0ZVJ1bGUuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXROZXh0UnVsZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUnVsZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldE5leHRSdWxlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXROZXh0UnVsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmYmZjMDgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXROZXh0UnVsZS5odG1sCkBAIC0wLDAgKzEsMzM0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgU2V0TmV4dFJ1bGUKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFByb3BlcnRpZXNSdWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZXROZXh0UnVsZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXI8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgU2V0TmV4dFJ1bGU8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLlJ1bGU8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuU2V0TmV4dFJ1bGU8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+U2V0TmV4dFJ1bGU8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj5SdWxlPC9BPjwvREw+CisKKzxQPgorUnVsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGNhbGxzIGEgbWV0aG9kIG9uIHRoZSAodG9wLTEpIChwYXJlbnQpCisgb2JqZWN0LCBwYXNzaW5nIHRoZSB0b3Agb2JqZWN0IChjaGlsZCkgYXMgYW4gYXJndW1lbnQuICBJdCBpcworIGNvbW1vbmx5IHVzZWQgdG8gZXN0YWJsaXNoIHBhcmVudC1jaGlsZCByZWxhdGlvbnNoaXBzLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXROZXh0UnVsZS5odG1sI21ldGhvZE5hbWUiPm1ldGhvZE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1ldGhvZCBuYW1lIHRvIGNhbGwgb24gdGhlIHBhcmVudCBvYmplY3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldE5leHRSdWxlLmh0bWwjcGFyYW1UeXBlIj5wYXJhbVR5cGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHR5cGUgZXhwZWN0ZWQgYnkgdGhlIG1ldGhvZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuUnVsZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2RpZ2VzdGVyIj5kaWdlc3RlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXROZXh0UnVsZS5odG1sI1NldE5leHRSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyLCBqYXZhLmxhbmcuU3RyaW5nKSI+U2V0TmV4dFJ1bGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4mbmJzcDtkaWdlc3RlciwKKyAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXRob2ROYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgInNldCBuZXh0IiBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBtZXRob2QgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldE5leHRSdWxlLmh0bWwjU2V0TmV4dFJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5TZXROZXh0UnVsZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPiZuYnNwO2RpZ2VzdGVyLAorICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZE5hbWUsCisgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1UeXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgInNldCBuZXh0IiBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBtZXRob2QgbmFtZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldE5leHRSdWxlLmh0bWwjZW5kKCkiPmVuZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0TmV4dFJ1bGUuaHRtbCNmaW5pc2goKSI+ZmluaXNoPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xlYW4gdXAgYWZ0ZXIgcGFyc2luZyBpcyBjb21wbGV0ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLlJ1bGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjYmVnaW4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCkiPmJlZ2luPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2JvZHkoamF2YS5sYW5nLlN0cmluZykiPmJvZHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWV0aG9kTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbWV0aG9kTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bWV0aG9kTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWV0aG9kIG5hbWUgdG8gY2FsbCBvbiB0aGUgcGFyZW50IG9iamVjdC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJhbVR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcmFtVHlwZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1UeXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIHBhcmFtZXRlciB0eXBlIGV4cGVjdGVkIGJ5IHRoZSBtZXRob2QuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlNldE5leHRSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorU2V0TmV4dFJ1bGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5TZXROZXh0UnVsZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+RGlnZXN0ZXI8L0E+Jm5ic3A7ZGlnZXN0ZXIsCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZE5hbWUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgInNldCBuZXh0IiBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBtZXRob2QgbmFtZS4gIFRoZQorIG1ldGhvZCdzIGFyZ3VtZW50IHR5cGUgaXMgYXNzdW1lZCB0byBiZSB0aGUgY2xhc3Mgb2YgdGhlCisgY2hpbGQgb2JqZWN0LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRpZ2VzdGVyPC9DT0RFPiAtIFRoZSBhc3NvY2lhdGVkIERpZ2VzdGVyPEREPjxDT0RFPm1ldGhvZE5hbWU8L0NPREU+IC0gTWV0aG9kIG5hbWUgb2YgdGhlIHBhcmVudCBtZXRob2QgdG8gY2FsbDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iU2V0TmV4dFJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitTZXROZXh0UnVsZTwvSDM+Cis8UFJFPgorcHVibGljIDxCPlNldE5leHRSdWxlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4mbmJzcDtkaWdlc3RlciwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWV0aG9kTmFtZSwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1UeXBlKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhICJzZXQgbmV4dCIgcnVsZSB3aXRoIHRoZSBzcGVjaWZpZWQgbWV0aG9kIG5hbWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZGlnZXN0ZXI8L0NPREU+IC0gVGhlIGFzc29jaWF0ZWQgRGlnZXN0ZXI8REQ+PENPREU+bWV0aG9kTmFtZTwvQ09ERT4gLSBNZXRob2QgbmFtZSBvZiB0aGUgcGFyZW50IG1ldGhvZCB0byBjYWxsPEREPjxDT0RFPnBhcmFtVHlwZTwvQ09ERT4gLSBKYXZhIGNsYXNzIG9mIHRoZSBwYXJlbnQgbWV0aG9kJ3MgYXJndW1lbnQKKyAgKGlmIHlvdSB3aXNoIHRvIHVzZSBhIHByaW1pdGl2ZSB0eXBlLCBzcGVjaWZ5IHRoZSBjb3JyZXNvbmRpbmcKKyAgSmF2YSB3cmFwcGVyIGNsYXNzIGluc3RlYWQsIHN1Y2ggYXMgPGNvZGU+amF2YS5sYW5nLkJvb2xlYW48L2NvZGU+CisgIGZvciBhIDxjb2RlPmJvb2xlYW48L2NvZGU+IHBhcmFtZXRlcik8L0RMPgorPC9ERD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImVuZCgpIj48IS0tIC0tPjwvQT48SDM+CitlbmQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmVuZDwvQj4oKQorICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyBlbGVtZW50LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2VuZCgpIj5lbmQ8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluaXNoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmlzaDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZmluaXNoPC9CPigpCisgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNsZWFuIHVwIGFmdGVyIHBhcnNpbmcgaXMgY29tcGxldGUuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjZmluaXNoKCkiPmZpbmlzaDwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0aWVzUnVsZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU2V0TmV4dFJ1bGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0aWVzUnVsZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydGllc1J1bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzcxZTkzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydGllc1J1bGUuaHRtbApAQCAtMCwwICsxLDI0MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFNldFByb3BlcnRpZXNSdWxlCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldE5leHRSdWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydHlSdWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZXRQcm9wZXJ0aWVzUnVsZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5SdWxlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXI8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgU2V0UHJvcGVydGllc1J1bGU8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLlJ1bGU8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuU2V0UHJvcGVydGllc1J1bGU8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+U2V0UHJvcGVydGllc1J1bGU8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj5SdWxlPC9BPjwvREw+CisKKzxQPgorUnVsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IHNldHMgcHJvcGVydGllcyBvbiB0aGUgb2JqZWN0IGF0IHRoZSB0b3Agb2YgdGhlCisgc3RhY2ssIGJhc2VkIG9uIGF0dHJpYnV0ZXMgd2l0aCBjb3JyZXNwb25kaW5nIG5hbWVzLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuUnVsZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2RpZ2VzdGVyIj5kaWdlc3RlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0aWVzUnVsZS5odG1sI1NldFByb3BlcnRpZXNSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyKSI+U2V0UHJvcGVydGllc1J1bGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4mbmJzcDtkaWdlc3Rlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlZmF1bHQgY29uc3RydWN0b3Igc2V0cyBvbmx5IHRoZSB0aGUgYXNzb2NpYXRlZCBEaWdlc3Rlci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFByb3BlcnRpZXNSdWxlLmh0bWwjYmVnaW4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCkiPmJlZ2luPC9BPjwvQj4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCZuYnNwO2F0dHJpYnV0ZXMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuUnVsZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj5SdWxlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCNib2R5KGphdmEubGFuZy5TdHJpbmcpIj5ib2R5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2VuZCgpIj5lbmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjZmluaXNoKCkiPmZpbmlzaDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iU2V0UHJvcGVydGllc1J1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIpIj48IS0tIC0tPjwvQT48SDM+CitTZXRQcm9wZXJ0aWVzUnVsZTwvSDM+Cis8UFJFPgorcHVibGljIDxCPlNldFByb3BlcnRpZXNSdWxlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4mbmJzcDtkaWdlc3Rlcik8L1BSRT4KKzxETD4KKzxERD5EZWZhdWx0IGNvbnN0cnVjdG9yIHNldHMgb25seSB0aGUgdGhlIGFzc29jaWF0ZWQgRGlnZXN0ZXIuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZGlnZXN0ZXI8L0NPREU+IC0gVGhlIGRpZ2VzdGVyIHdpdGggd2hpY2ggdGhpcyBydWxlIGlzIGFzc29jaWF0ZWQ8L0RMPgorPC9ERD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImJlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QpIj48IS0tIC0tPjwvQT48SDM+CitiZWdpbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YmVnaW48L0I+KG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QmbmJzcDthdHRyaWJ1dGVzKQorICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGVsZW1lbnQuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjYmVnaW4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCkiPmJlZ2luPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj5SdWxlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbnRleHQ8L0NPREU+IC0gVGhlIGFzc29jaWF0ZWQgY29udGV4dDxERD48Q09ERT5hdHRyaWJ1dGVzPC9DT0RFPiAtIFRoZSBhdHRyaWJ1dGUgbGlzdCBvZiB0aGlzIGVsZW1lbnQ8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0TmV4dFJ1bGUuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0eVJ1bGUuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlNldFByb3BlcnRpZXNSdWxlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLlJ1bGUiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydHlSdWxlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0eVJ1bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTgzMTU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydHlSdWxlLmh0bWwKQEAgLTAsMCArMSwyOTYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBTZXRQcm9wZXJ0eVJ1bGUKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydGllc1J1bGUuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRUb3BSdWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZXRQcm9wZXJ0eVJ1bGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyPC9GT05UPgorPEJSPgorQ2xhc3MgIFNldFByb3BlcnR5UnVsZTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuUnVsZTwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5TZXRQcm9wZXJ0eVJ1bGU8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+U2V0UHJvcGVydHlSdWxlPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT48L0RMPgorCis8UD4KK1J1bGUgaW1wbGVtZW50YXRpb24gdGhhdCBzZXRzIGFuIGluZGl2aWR1YWwgcHJvcGVydHkgb24gdGhlIG9iamVjdCBhdCB0aGUKKyB0b3Agb2YgdGhlIHN0YWNrLCBiYXNlZCBvbiBhdHRyaWJ1dGVzIHdpdGggc3BlY2lmaWVkIG5hbWVzLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0eVJ1bGUuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhdHRyaWJ1dGUgdGhhdCB3aWxsIGNvbnRhaW4gdGhlIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFByb3BlcnR5UnVsZS5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYXR0cmlidXRlIHRoYXQgd2lsbCBjb250YWluIHRoZSBwcm9wZXJ0eSB2YWx1ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuUnVsZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2RpZ2VzdGVyIj5kaWdlc3RlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0eVJ1bGUuaHRtbCNTZXRQcm9wZXJ0eVJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5TZXRQcm9wZXJ0eVJ1bGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4mbmJzcDtkaWdlc3RlciwKKyAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSAic2V0IHByb3BlcnR5IiBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lIGFuZCB2YWx1ZQorIGF0dHJpYnV0ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0eVJ1bGUuaHRtbCNiZWdpbihvcmcueG1sLnNheC5BdHRyaWJ1dGVMaXN0KSI+YmVnaW48L0E+PC9CPihvcmcueG1sLnNheC5BdHRyaWJ1dGVMaXN0Jm5ic3A7YXR0cmlidXRlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5SdWxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2JvZHkoamF2YS5sYW5nLlN0cmluZykiPmJvZHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjZW5kKCkiPmVuZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCNmaW5pc2goKSI+ZmluaXNoPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGF0dHJpYnV0ZSB0aGF0IHdpbGwgY29udGFpbiB0aGUgcHJvcGVydHkgbmFtZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhdHRyaWJ1dGUgdGhhdCB3aWxsIGNvbnRhaW4gdGhlIHByb3BlcnR5IHZhbHVlLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJTZXRQcm9wZXJ0eVJ1bGUob3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitTZXRQcm9wZXJ0eVJ1bGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5TZXRQcm9wZXJ0eVJ1bGU8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPiZuYnNwO2RpZ2VzdGVyLAorICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhICJzZXQgcHJvcGVydHkiIHJ1bGUgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgYW5kIHZhbHVlCisgYXR0cmlidXRlcy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kaWdlc3RlcjwvQ09ERT4gLSBUaGUgZGlnZXN0ZXIgd2l0aCB3aGljaCB0aGlzIHJ1bGUgaXMgYXNzb2NpYXRlZDxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZSB0aGF0IHdpbGwgY29udGFpbiB0aGUgbmFtZSBvZiB0aGUKKyAgcHJvcGVydHkgdG8gYmUgc2V0PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZSB0aGF0IHdpbGwgY29udGFpbiB0aGUgdmFsdWUgdG8gd2hpY2gKKyAgdGhlIHByb3BlcnR5IHNob3VsZCBiZSBzZXQ8L0RMPgorPC9ERD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImJlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QpIj48IS0tIC0tPjwvQT48SDM+CitiZWdpbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YmVnaW48L0I+KG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QmbmJzcDthdHRyaWJ1dGVzKQorICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGVsZW1lbnQuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjYmVnaW4ob3JnLnhtbC5zYXguQXR0cmlidXRlTGlzdCkiPmJlZ2luPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj5SdWxlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbnRleHQ8L0NPREU+IC0gVGhlIGFzc29jaWF0ZWQgY29udGV4dDxERD48Q09ERT5hdHRyaWJ1dGVzPC9DT0RFPiAtIFRoZSBhdHRyaWJ1dGUgbGlzdCBvZiB0aGlzIGVsZW1lbnQ8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydGllc1J1bGUuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRUb3BSdWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZXRQcm9wZXJ0eVJ1bGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRUb3BSdWxlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRUb3BSdWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2E1MDdmYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFRvcFJ1bGUuaHRtbApAQCAtMCwwICsxLDMzMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFNldFRvcFJ1bGUKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydHlSdWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZXRUb3BSdWxlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3RlcjwvRk9OVD4KKzxCUj4KK0NsYXNzICBTZXRUb3BSdWxlPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5SdWxlPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLlNldFRvcFJ1bGU8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+U2V0VG9wUnVsZTwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9ETD4KKworPFA+CitSdWxlIGltcGxlbWVudGF0aW9uIHRoYXQgY2FsbHMgYSBtZXRob2Qgb24gdGhlIHRvcCAocGFyZW50KQorIG9iamVjdCwgcGFzc2luZyB0aGUgKHRvcC0xKSAoY2hpbGQpIG9iamVjdCBhcyBhbiBhcmd1bWVudC4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0VG9wUnVsZS5odG1sI21ldGhvZE5hbWUiPm1ldGhvZE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1ldGhvZCBuYW1lIHRvIGNhbGwgb24gdGhlIHBhcmVudCBvYmplY3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFRvcFJ1bGUuaHRtbCNwYXJhbVR5cGUiPnBhcmFtVHlwZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgdHlwZSBleHBlY3RlZCBieSB0aGUgbWV0aG9kLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5SdWxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjZGlnZXN0ZXIiPmRpZ2VzdGVyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFRvcFJ1bGUuaHRtbCNTZXRUb3BSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyLCBqYXZhLmxhbmcuU3RyaW5nKSI+U2V0VG9wUnVsZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPiZuYnNwO2RpZ2VzdGVyLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWV0aG9kTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhICJzZXQgcGFyZW50IiBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBtZXRob2QgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFRvcFJ1bGUuaHRtbCNTZXRUb3BSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+U2V0VG9wUnVsZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPiZuYnNwO2RpZ2VzdGVyLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWV0aG9kTmFtZSwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtVHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhICJzZXQgcGFyZW50IiBydWxlIHdpdGggdGhlIHNwZWNpZmllZCBtZXRob2QgbmFtZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFRvcFJ1bGUuaHRtbCNlbmQoKSI+ZW5kPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRUb3BSdWxlLmh0bWwjZmluaXNoKCkiPmZpbmlzaDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NsZWFuIHVwIGFmdGVyIHBhcnNpbmcgaXMgY29tcGxldGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5SdWxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2JlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZUxpc3QpIj5iZWdpbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCNib2R5KGphdmEubGFuZy5TdHJpbmcpIj5ib2R5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1ldGhvZE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK21ldGhvZE5hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm1ldGhvZE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1ldGhvZCBuYW1lIHRvIGNhbGwgb24gdGhlIHBhcmVudCBvYmplY3QuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyYW1UeXBlIj48IS0tIC0tPjwvQT48SDM+CitwYXJhbVR5cGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtVHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgdHlwZSBleHBlY3RlZCBieSB0aGUgbWV0aG9kLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJTZXRUb3BSdWxlKG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorU2V0VG9wUnVsZTwvSDM+Cis8UFJFPgorcHVibGljIDxCPlNldFRvcFJ1bGU8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0RpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPiZuYnNwO2RpZ2VzdGVyLAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZE5hbWUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgInNldCBwYXJlbnQiIHJ1bGUgd2l0aCB0aGUgc3BlY2lmaWVkIG1ldGhvZCBuYW1lLiAgVGhlCisgcGFyZW50IG1ldGhvZCdzIGFyZ3VtZW50IHR5cGUgaXMgYXNzdW1lZCB0byBiZSB0aGUgY2xhc3Mgb2YgdGhlCisgY2hpbGQgb2JqZWN0LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRpZ2VzdGVyPC9DT0RFPiAtIFRoZSBhc3NvY2lhdGVkIERpZ2VzdGVyPEREPjxDT0RFPm1ldGhvZE5hbWU8L0NPREU+IC0gTWV0aG9kIG5hbWUgb2YgdGhlIHBhcmVudCBtZXRob2QgdG8gY2FsbDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iU2V0VG9wUnVsZShvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5EaWdlc3RlciwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK1NldFRvcFJ1bGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5TZXRUb3BSdWxlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj5EaWdlc3RlcjwvQT4mbmJzcDtkaWdlc3RlciwKKyAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXRob2ROYW1lLAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtVHlwZSk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSAic2V0IHBhcmVudCIgcnVsZSB3aXRoIHRoZSBzcGVjaWZpZWQgbWV0aG9kIG5hbWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZGlnZXN0ZXI8L0NPREU+IC0gVGhlIGFzc29jaWF0ZWQgRGlnZXN0ZXI8REQ+PENPREU+bWV0aG9kTmFtZTwvQ09ERT4gLSBNZXRob2QgbmFtZSBvZiB0aGUgcGFyZW50IG1ldGhvZCB0byBjYWxsPEREPjxDT0RFPnBhcmFtVHlwZTwvQ09ERT4gLSBKYXZhIGNsYXNzIG9mIHRoZSBwYXJlbnQgbWV0aG9kJ3MgYXJndW1lbnQKKyAgKGlmIHlvdSB3aXNoIHRvIHVzZSBhIHByaW1pdGl2ZSB0eXBlLCBzcGVjaWZ5IHRoZSBjb3JyZXNvbmRpbmcKKyAgSmF2YSB3cmFwcGVyIGNsYXNzIGluc3RlYWQsIHN1Y2ggYXMgPGNvZGU+amF2YS5sYW5nLkJvb2xlYW48L2NvZGU+CisgIGZvciBhIDxjb2RlPmJvb2xlYW48L2NvZGU+IHBhcmFtZXRlcik8L0RMPgorPC9ERD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImVuZCgpIj48IS0tIC0tPjwvQT48SDM+CitlbmQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmVuZDwvQj4oKQorICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyBlbGVtZW50LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sI2VuZCgpIj5lbmQ8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwiPlJ1bGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluaXNoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmlzaDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZmluaXNoPC9CPigpCisgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNsZWFuIHVwIGFmdGVyIHBhcnNpbmcgaXMgY29tcGxldGUuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9SdWxlLmh0bWwjZmluaXNoKCkiPmZpbmlzaDwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+UnVsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFByb3BlcnR5UnVsZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU2V0VG9wUnVsZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL3BhY2thZ2UtZnJhbWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL3BhY2thZ2UtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWRkMWUyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvcGFja2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+Cis8Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lVGl0bGVGb250Ij4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyPC9BPjwvRk9OVD4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0NsYXNzZXM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJDYWxsTWV0aG9kUnVsZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNhbGxNZXRob2RSdWxlPC9BPgorPEJSPgorPEEgSFJFRj0iQ2FsbFBhcmFtUnVsZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNhbGxQYXJhbVJ1bGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJEaWdlc3Rlci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRpZ2VzdGVyPC9BPgorPEJSPgorPEEgSFJFRj0iT2JqZWN0Q3JlYXRlUnVsZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk9iamVjdENyZWF0ZVJ1bGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJSdWxlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UnVsZTwvQT4KKzxCUj4KKzxBIEhSRUY9IlNldE5leHRSdWxlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+U2V0TmV4dFJ1bGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJTZXRQcm9wZXJ0aWVzUnVsZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlNldFByb3BlcnRpZXNSdWxlPC9BPgorPEJSPgorPEEgSFJFRj0iU2V0UHJvcGVydHlSdWxlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+U2V0UHJvcGVydHlSdWxlPC9BPgorPEJSPgorPEEgSFJFRj0iU2V0VG9wUnVsZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlNldFRvcFJ1bGU8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9wYWNrYWdlLXN1bW1hcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL3BhY2thZ2Utc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwNjRjNjQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9wYWNrYWdlLXN1bW1hcnkuaHRtbApAQCAtMCwwICsxLDY4MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3RlcgorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIKKzwvSDI+CitUaGUgRGlnZXN0ZXIgcGFja2FnZSBwcm92aWRlcyBmb3IgcnVsZXMtYmFzZWQgcHJvY2Vzc2luZyBvZiBhcmJpdHJhcnkKK1hNTCBkb2N1bWVudHMuCis8UD4KKzxCPlNlZTogPC9CPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEEgSFJFRj0iI3BhY2thZ2VfZGVzY3JpcHRpb24iPjxCPkRlc2NyaXB0aW9uPC9CPjwvQT4KKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNhbGxNZXRob2RSdWxlLmh0bWwiPkNhbGxNZXRob2RSdWxlPC9BPjwvQj48L1REPgorPFREPlJ1bGUgaW1wbGVtZW50YXRpb24gdGhhdCBjYWxscyBhIG1ldGhvZCBvbiB0aGUgdG9wIChwYXJlbnQpCisgb2JqZWN0LCBwYXNzaW5nIGFyZ3VtZW50cyBjb2xsZWN0ZWQgZnJvbSBzdWJzZXF1ZW50CisgPGNvZGU+Q2FsbFBhcmFtUnVsZTwvY29kZT4gcnVsZXMgb3IgZnJvbSB0aGUgYm9keSBvZiB0aGlzCisgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNhbGxQYXJhbVJ1bGUuaHRtbCI+Q2FsbFBhcmFtUnVsZTwvQT48L0I+PC9URD4KKzxURD5SdWxlIGltcGxlbWVudGF0aW9uIHRoYXQgc2F2ZXMgYSBwYXJhbWV0ZXIgZnJvbSBlaXRoZXIgYW4gYXR0cmlidXRlIG9mCisgdGhpcyBlbGVtZW50LCBvciBmcm9tIHRoZSBlbGVtZW50IGJvZHksIHRvIGJlIHVzZWQgaW4gYSBjYWxsIGdlbmVyYXRlZAorIGJ5IGEgc3Vycm91bmRpbmcgQ2FsbE1ldGhvZFJ1bGUgcnVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkRpZ2VzdGVyLmh0bWwiPkRpZ2VzdGVyPC9BPjwvQj48L1REPgorPFREPkEgPHN0cm9uZz5EaWdlc3Rlcjwvc3Ryb25nPiBwcm9jZXNzZXMgYW4gWE1MIGlucHV0IHN0cmVhbSBieSBtYXRjaGluZyBhCisgc2VyaWVzIG9mIGVsZW1lbnQgbmVzdGluZyBwYXR0ZXJucyB0byBleGVjdXRlIFJ1bGVzIHRoYXQgaGF2ZSBiZWVuIGFkZGVkCisgcHJpb3IgdG8gdGhlIHN0YXJ0IG9mIHBhcnNpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJPYmplY3RDcmVhdGVSdWxlLmh0bWwiPk9iamVjdENyZWF0ZVJ1bGU8L0E+PC9CPjwvVEQ+Cis8VEQ+UnVsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGNyZWF0ZXMgYSBuZXcgb2JqZWN0IGFuZCBwdXNoZXMgaXQKKyBvbnRvIHRoZSBvYmplY3Qgc3RhY2suPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSdWxlLmh0bWwiPlJ1bGU8L0E+PC9CPjwvVEQ+Cis8VEQ+Q29uY3JldGUgaW1wbGVtZW50YXRpb25zIG9mIHRoaXMgY2xhc3MgaW1wbGVtZW50IGFjdGlvbnMgdG8gYmUgdGFrZW4gd2hlbgorIGEgY29ycmVzcG9uZGluZyBuZXN0ZWQgcGF0dGVybiBvZiBYTUwgZWxlbWVudHMgaGFzIGJlZW4gbWF0Y2hlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlNldE5leHRSdWxlLmh0bWwiPlNldE5leHRSdWxlPC9BPjwvQj48L1REPgorPFREPlJ1bGUgaW1wbGVtZW50YXRpb24gdGhhdCBjYWxscyBhIG1ldGhvZCBvbiB0aGUgKHRvcC0xKSAocGFyZW50KQorIG9iamVjdCwgcGFzc2luZyB0aGUgdG9wIG9iamVjdCAoY2hpbGQpIGFzIGFuIGFyZ3VtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iU2V0UHJvcGVydGllc1J1bGUuaHRtbCI+U2V0UHJvcGVydGllc1J1bGU8L0E+PC9CPjwvVEQ+Cis8VEQ+UnVsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IHNldHMgcHJvcGVydGllcyBvbiB0aGUgb2JqZWN0IGF0IHRoZSB0b3Agb2YgdGhlCisgc3RhY2ssIGJhc2VkIG9uIGF0dHJpYnV0ZXMgd2l0aCBjb3JyZXNwb25kaW5nIG5hbWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iU2V0UHJvcGVydHlSdWxlLmh0bWwiPlNldFByb3BlcnR5UnVsZTwvQT48L0I+PC9URD4KKzxURD5SdWxlIGltcGxlbWVudGF0aW9uIHRoYXQgc2V0cyBhbiBpbmRpdmlkdWFsIHByb3BlcnR5IG9uIHRoZSBvYmplY3QgYXQgdGhlCisgdG9wIG9mIHRoZSBzdGFjaywgYmFzZWQgb24gYXR0cmlidXRlcyB3aXRoIHNwZWNpZmllZCBuYW1lcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlNldFRvcFJ1bGUuaHRtbCI+U2V0VG9wUnVsZTwvQT48L0I+PC9URD4KKzxURD5SdWxlIGltcGxlbWVudGF0aW9uIHRoYXQgY2FsbHMgYSBtZXRob2Qgb24gdGhlIHRvcCAocGFyZW50KQorIG9iamVjdCwgcGFzc2luZyB0aGUgKHRvcC0xKSAoY2hpbGQpIG9iamVjdCBhcyBhbiBhcmd1bWVudC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+Cis8QSBOQU1FPSJwYWNrYWdlX2Rlc2NyaXB0aW9uIj48IS0tIC0tPjwvQT48SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyIERlc2NyaXB0aW9uCis8L0gyPgorCis8UD4KK1RoZSBEaWdlc3RlciBwYWNrYWdlIHByb3ZpZGVzIGZvciBydWxlcy1iYXNlZCBwcm9jZXNzaW5nIG9mIGFyYml0cmFyeQorWE1MIGRvY3VtZW50cy4KKzxicj48YnI+Cis8YSBuYW1lPSJkb2MuRGVzY3JpcHRpb24iPjwvYT4KKzxkaXYgYWxpZ249ImNlbnRlciI+Cis8YSBocmVmPSIjZG9jLkludHJvIj5bSW50cm9kdWN0aW9uXTwvYT4KKzxhIGhyZWY9IiNkb2MuUHJvcGVydGllcyI+W0NvbmZpZ3VyYXRpb24gUHJvcGVydGllc108L2E+Cis8YSBocmVmPSIjZG9jLlN0YWNrIj5bVGhlIE9iamVjdCBTdGFja108L2E+Cis8YSBocmVmPSIjZG9jLlBhdHRlcm5zIj5bRWxlbWVudCBNYXRjaGluZyBQYXR0ZXJuc108L2E+Cis8YSBocmVmPSIjZG9jLlJ1bGVzIj5bUHJvY2Vzc2luZyBSdWxlc108L2E+Cis8YSBocmVmPSIjZG9jLlVzYWdlIj5bVXNhZ2UgRXhhbXBsZV08L2E+Cis8L2Rpdj4KKworPGEgbmFtZT0iZG9jLkludHJvIj48L2E+Cis8aDM+SW50cm9kdWN0aW9uPC9oMz4KKworPHA+SW4gbWFueSBhcHBsaWNhdGlvbiBlbnZpcm9ubWVudHMgdGhhdCBkZWFsIHdpdGggWE1MLWZvcm1hdHRlZCBkYXRhLCBpdCBpcwordXNlZnVsIHRvIGJlIGFibGUgdG8gcHJvY2VzcyBhbiBYTUwgZG9jdW1lbnQgaW4gYW4gImV2ZW50IGRyaXZlbiIgbWFubmVyLAord2hlcmUgcGFydGljdWxhciBKYXZhIG9iamVjdHMgYXJlIGNyZWF0ZWQgKG9yIG1ldGhvZHMgb2YgZXhpc3Rpbmcgb2JqZWN0cworYXJlIGludm9rZWQpIHdoZW4gcGFydGljdWxhciBwYXR0ZXJucyBvZiBuZXN0ZWQgWE1MIGVsZW1lbnRzIGhhdmUgYmVlbgorcmVjb2duaXplZC4gIERldmVsb3BlcnMgZmFtaWxpYXIgd2l0aCB0aGUgU2ltcGxlIEFQSSBmb3IgWE1MIFBhcnNpbmcgKFNBWCkKK2FwcHJvYWNoIHRvIHByb2Nlc3NpbmcgWE1MIGRvY3VtZW50cyB3aWxsIHJlY29nbml6ZSB0aGF0IHRoZSBEaWdlc3RlciBwcm92aWRlcworYSBoaWdoZXIgbGV2ZWwsIG1vcmUgZGV2ZWxvcGVyLWZyaWVuZGx5IGludGVyZmFjZSB0byBTQVggZXZlbnRzLCBiZWNhdXNlIG1vc3QKK29mIHRoZSBkZXRhaWxzIG9mIG5hdmlnYXRpbmcgdGhlIFhNTCBlbGVtZW50IGhpZXJhcmNoeSBhcmUgaGlkZGVuIC0tIGFsbG93aW5nCit0aGUgZGV2ZWxvcGVyIHRvIGZvY3VzIG9uIHRoZSBwcm9jZXNzaW5nIHRvIGJlIHBlcmZvcm1lZC48L3A+CisKKzxwPkluIG9yZGVyIHRvIHVzZSBhIERpZ2VzdGVyLCB0aGUgZm9sbG93aW5nIGJhc2ljIHN0ZXBzIGFyZSByZXF1aXJlZDo8L3A+Cis8dWw+Cis8bGk+Q3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIHRoZQorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLkRpZ2VzdGVyPC9jb2RlPiBjbGFzcy4gIFByZXZpb3VzbHkKKyAgICBjcmVhdGVkIERpZ2VzdGVyIGluc3RhbmNlcyBtYXkgYmUgc2FmZWx5IHJldXNlZCwgYXMgbG9uZyBhcyB5b3UgaGF2ZQorICAgIGNvbXBsZXRlZCBhbnkgcHJldmlvdXNseSByZXF1ZXN0ZWQgcGFyc2UsIGFuZCB5b3UgZG8gbm90IHRyeSB0byB1dGlsaXplCisgICAgYSBwYXJ0aWN1bGFyIERpZ2VzdGVyIGluc3RhbmNlIGZyb20gbW9yZSB0aGFuIG9uZSB0aHJlYWQgYXQgYSB0aW1lLjwvbGk+Cis8bGk+U2V0IGFueSBkZXNpcmVkIDxhIGhyZWY9IiNkb2MuUHJvcGVydGllcyI+Y29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzPC9hPgorICAgIHRoYXQgd2lsbCBjdXN0b21pemUgdGhlIG9wZXJhdGlvbiBvZiB0aGUgRGlnZXN0ZXIgd2hlbiB5b3UgbmV4dCBpbml0aWF0ZQorICAgIGEgcGFyc2Ugb3BlcmF0aW9uLjwvbGk+Cis8bGk+UHVzaCBhbnkgZGVzaXJlZCBpbml0aWFsIG9iamVjdChzKSBvbnRvIHRoZSBEaWdlc3RlcidzCisgICAgPGEgaHJlZj0iI2RvYy5TdGFjayI+b2JqZWN0IHN0YWNrPC9hPi48L2xpPgorPGxpPlJlZ2lzdGVyIGFsbCBvZiB0aGUgPGEgaHJlZj0iI2RvYy5QYXR0ZXJucyI+ZWxlbWVudCBtYXRjaGluZyBwYXR0ZXJuczwvYT4KKyAgICBmb3Igd2hpY2ggeW91IHdpc2ggdG8gaGF2ZSA8YSBocmVmPSIjZG9jLlJ1bGVzIj5wcm9jZXNzaW5nIHJ1bGVzPC9hPgorICAgIGZpcmVkIHdoZW4gdGhpcyBwYXR0ZXJuIGlzIHJlY29nbml6ZWQgaW4gYW4gaW5wdXQgZG9jdW1lbnQuICBZb3UgbWF5CisgICAgcmVnaXN0ZXIgYXMgbWFueSBydWxlcyBhcyB5b3UgbGlrZSBmb3IgYW55IHBhcnRpY3VsYXIgcGF0dGVybi4gIElmIHRoZXJlCisgICAgaXMgbW9yZSB0aGFuIG9uZSBydWxlIGZvciBhIGdpdmVuIHBhdHRlcm4sIHRoZSBydWxlcyB3aWxsIGJlIGV4ZWN1dGVkIGluCisgICAgdGhlIG9yZGVyIHRoYXQgdGhleSB3ZXJlIGxpc3RlZC48L2xpPgorPGxpPkNhbGwgdGhlIDxjb2RlPmRpZ2VzdGVyLnBhcnNlKCk8L2NvZGU+IG1ldGhvZCwgcGFzc2luZyBhIHJlZmVyZW5jZSB0byB0aGUKKyAgICBYTUwgZG9jdW1lbnQgdG8gYmUgcGFyc2VkIGluIG9uZSBvZiBhIHZhcmlldHkgb2YgZm9ybXMuICBTZWUgdGhlCisgICAgPGEgaHJlZj0iRGlnZXN0ZXIuaHRtbCNwYXJzZShqYXZhLmlvLkZpbGUpIj5EaWdlc3Rlci5wYXJzZSgpPC9hPgorICAgIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuICBOb3RlIHRoYXQgeW91IHdpbGwgbmVlZCB0byBiZSBwcmVwYXJlZCB0bworICAgIGNhdGNoIGFueSA8Y29kZT5JT0V4Y2VwdGlvbjwvY29kZT4gb3IgPGNvZGU+U0FYRXhjZXB0aW9uPC9jb2RlPiB0aGF0IGlzCisgICAgdGhyb3duIGJ5IHRoZSBwYXJzZXIsIG9yIGFueSBydW50aW1lIGV4cHJlc3Npb24gdGhhdCBpcyB0aHJvd24gYnkgb25lIG9mCisgICAgdGhlIHByb2Nlc3NpbmcgcnVsZXMuPC9saT4KKzwvdWw+CisKKzxhIG5hbWU9ImRvYy5Qcm9wZXJ0aWVzIj48L2E+Cis8aDM+RGlnZXN0ZXIgQ29uZmlndXJhdGlvbiBQcm9wZXJ0aWVzPC9oMz4KKworPHA+QSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5EaWdlc3RlcjwvY29kZT4gaW5zdGFuY2UgY29udGFpbnMgc2V2ZXJhbAorY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIHRoYXQgY2FuIGJlIHVzZWQgdG8gY3VzdG9taXplIGl0cyBvcGVyYXRpb24uICBUaGVzZQorcHJvcGVydGllcyA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gYmUgY29uZmlndXJlZCBiZWZvcmUgeW91IGNhbGwgb25lIG9mIHRoZQorPGNvZGU+cGFyc2UoKTwvY29kZT4gdmFyaWFudHMsIGluIG9yZGVyIGZvciB0aGVtIHRvIHRha2UgZWZmZWN0IG9uIHRoYXQKK3BhcnNlLjwvcD4KKworPGJsb2NrcXVvdGU+CisgIDx0YWJsZSBib3JkZXI9IjEiPgorICAgIDx0cj4KKyAgICAgIDx0aCB3aWR0aD0iMTUlIj5Qcm9wZXJ0eTwvdGg+CisgICAgICA8dGggd2lkdGg9Ijg1JSI+RGVzY3JpcHRpb248L3RoPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPmRlYnVnPC90ZD4KKyAgICAgIDx0ZD5BbiBpbnRlZ2VyIGRlZmluaW5nIHRoZSBhbW91bnQgb2YgZGVidWdnaW5nIG91dHB1dCB0aGF0IHdpbGwgYmUKKyAgICAgICAgICB3cml0dGVuIHRvIDxjb2RlPlN5c3RlbS5vdXQoKTwvY29kZT4gYXMgdGhlIHBhcnNlIHByb2dyZXNzZXMuICBUaGlzCisgICAgICAgICAgaXMgdXNlZnVsIHdoZW4gdHJhY2tpbmcgZG93biB3aGVyZSBwYXJzaW5nIHByb2JsZW1zIGFyZSBvY2N1cnJpbmcuCisgICAgICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgb2YgemVybyBtZWFucyBubyBkZWJ1Z2dpbmcgb3V0cHV0IHdpbGwgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgLS0gaW5jcmVhc2luZyB2YWx1ZXMgZ2VuZXJhbGx5IGNhdXNlIHRoZSBnZW5lcmF0aW9uIG9mIG1vcmUgdmVyYm9zZQorICAgICAgICAgIGFuZCBkZXRhaWxlZCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj52YWxpZGF0aW5nPC90ZD4KKyAgICAgIDx0ZD5BIGJvb2xlYW4gdGhhdCBpcyBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgeW91IHdpc2ggdG8gdmFsaWRhdGUKKyAgICAgICAgICB0aGUgWE1MIGRvY3VtZW50IGFnYWluc3QgYSBEb2N1bWVudCBUeXBlIERlZmluaXRpb24gKERURCkgdGhhdCBpcworICAgICAgICAgIHNwZWNpZmllZCBpbiBpdHMgPGNvZGU+RE9DVFlQRTwvY29kZT4gZGVjbGFyYXRpb24uICBUaGUgZGVmYXVsdAorICAgICAgICAgIHZhbHVlIG9mIDxjb2RlPmZhbHNlPC9jb2RlPiByZXF1ZXN0cyBhIHBhcnNlIHRoYXQgb25seSBkZXRlY3RzCisgICAgICAgICAgIndlbGwgZm9ybWVkIiBYTUwgZG9jdW1lbnRzLCByYXRoZXIgdGhhbiAidmFsaWQiIG9uZXMuPC90ZD4KKyAgICA8L3RyPgorICA8L3RhYmxlPgorPC9ibG9ja3F1b3RlPgorCis8cD5JbiBhZGRpdGlvbiB0byB0aGUgc2NhbGFyIHByb3BlcnRpZXMgZGVmaW5lZCBhYm92ZSwgeW91IGNhbiBhbHNvIHJlZ2lzdGVyCithIGxvY2FsIGNvcHkgb2YgYSBEb2N1bWVudCBUeXBlIERlZmluaXRpb24gKERURCkgdGhhdCBpcyByZWZlcmVuY2VkIGluIGEKKzxjb2RlPkRPQ1RZUEU8L2NvZGU+IGRlY2xhcmF0aW9uLiAgU3VjaCBhIHJlZ2lzdHJhdGlvbiB0ZWxscyB0aGUgWE1MIHBhcnNlcgordGhhdCwgd2hlbmV2ZXIgaXQgZW5jb3VudGVycyBhIDxjb2RlPkRPQ1RZUEU8L2NvZGU+IGRlY2xhcmF0aW9uIHdpdGggdGhlCitzcGVjaWZpZWQgcHVibGljIGlkZW50aWZpZXIsIGl0IHNob3VsZCB1dGlsaXplIHRoZSBhY3R1YWwgRFREIGNvbnRlbnQgYXQgdGhlCityZWdpc3RlcmVkIHN5c3RlbSBpZGVudGlmaWVyIChhIFVSTCksIHJhdGhlciB0aGFuIHRoZSBvbmUgaW4gdGhlCis8Y29kZT5ET0NUWVBFPC9jb2RlPiBkZWNsYXJhdGlvbi48L3A+CisKKzxwPkZvciBleGFtcGxlLCB0aGUgU3RydXRzIGZyYW1ld29yayBjb250cm9sbGVyIHNlcnZsZXQgdXNlcyB0aGUgZm9sbG93aW5nCityZWdpc3RyYXRpb24gaW4gb3JkZXIgdG8gdGVsbCBTdHJ1dHMgdG8gdXNlIGEgbG9jYWwgY29weSBvZiB0aGUgRFREIGZvciB0aGUKK1N0cnV0cyBjb25maWd1cmF0aW9uIGZpbGUuICBUaGlzIGFsbG93cyB1c2FnZSBvZiBTdHJ1dHMgaW4gZW52aXJvbm1lbnRzIHRoYXQKK2FyZSBub3QgY29ubmVjdGVkIHRvIHRoZSBJbnRlcm5ldCwgYW5kIHNwZWVkcyB1cCBwcm9jZXNzaW5nIGV2ZW4gYXQgSW50ZXJuZXQKK2Nvbm5lY3RlZCBzaXRlcyAoYmVjYXVzZSBpdCBhdm9pZHMgdGhlIG5lZWQgdG8gZ28gYWNyb3NzIHRoZSBuZXR3b3JrKS48L3A+CisKKzxwcmU+CisgICAgZGlnZXN0ZXIucmVnaXN0ZXIKKyAgICAgICgiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAxLjAvL0VOIiwKKyAgICAgICAiL29yZy9hcGFjaGUvc3RydXRzL3Jlc291cmNlcy9zdHJ1dHMtY29uZmlnXzFfMC5kdGQiKTsKKzwvcHJlPgorCis8cD5BcyBhIHNpZGUgbm90ZSwgdGhlIHN5c3RlbSBpZGVudGlmaWVyIHVzZWQgaW4gdGhpcyBleGFtcGxlIGlzIHRoZSBwYXRoCit0aGF0IHdvdWxkIGJlIHBhc3NlZCB0byA8Y29kZT5qYXZhLmxhbmcuQ2xhc3NMb2FkZXIuZ2V0UmVzb3VyY2UoKTwvY29kZT4KK29yIDxjb2RlPmphdmEubGFuZy5DbGFzc0xvYWRlci5nZXRSZXNvdXJjZUFzU3RyZWFtKCk8L2NvZGU+LiAgVGhlIGFjdHVhbCBEVEQKK3Jlc291cmNlIGlzIGxvYWRlZCB0aHJvdWdoIHRoZSBzYW1lIGNsYXNzIGxvYWRlciB0aGF0IGxvYWRzIGFsbCBvZiB0aGUgU3RydXRzCitjbGFzc2VzIC0tIHR5cGljYWxseSBmcm9tIHRoZSA8Y29kZT5zdHJ1dHMuamFyPC9jb2RlPiBmaWxlLjwvcD4KKworPGEgbmFtZT0iZG9jLlN0YWNrIj48L2E+Cis8aDM+VGhlIE9iamVjdCBTdGFjazwvaDM+CisKKzxwPk9uZSB2ZXJ5IGNvbW1vbiB1c2Ugb2YgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXI8L2NvZGU+Cit0ZWNobm9sb2d5IGlzIHRvIGR5bmFtaWNhbGx5IGNvbnN0cnVjdCBhIHRyZWUgb2YgSmF2YSBvYmplY3RzLCB3aG9zZSBpbnRlcm5hbAorb3JnYW5pemF0aW9uLCBhcyB3ZWxsIGFzIHRoZSBkZXRhaWxzIG9mIHByb3BlcnR5IHNldHRpbmdzIG9uIHRoZXNlIG9iamVjdHMsCithcmUgY29uZmlndXJlZCBiYXNlZCBvbiB0aGUgY29udGVudHMgb2YgdGhlIFhNTCBkb2N1bWVudC4gIEluIGZhY3QsIHRoZQorcHJpbWFyeSByZWFzb24gdGhhdCB0aGUgRGlnZXN0ZXIgcGFja2FnZSB3YXMgY3JlYXRlZCB3YXMgdG8gZmFjaWxpdGF0ZSB0aGUKK3dheSB0aGF0IHRoZSBTdHJ1dHMgPGEgaHJlZj0iLi4vYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+Y29udHJvbGxlcgorc2VydmxldDwvYT4gY29uZmlndXJlcyBpdHNlbGYgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHlvdXIgYXBwbGljYXRpb24ncworPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+IGZpbGUuPC9wPgorCis8cD5UbyBmYWNpbGl0YXRlIHRoaXMgdXNhZ2UsIHRoZSBEaWdlc3RlciBleHBvc2VzIGEgc3RhY2sgdGhhdCBjYW4gYmUKK21hbmlwdWxhdGVkIGJ5IHByb2Nlc3NpbmcgcnVsZXMgdGhhdCBhcmUgZmlyZWQgd2hlbiBlbGVtZW50IG1hdGNoaW5nIHBhdHRlcm5zCithcmUgc2F0aXNmaWVkLiAgVGhlIHVzdWFsIHN0YWNrLXJlbGF0ZWQgb3BlcmF0aW9ucyBhcmUgbWFkZSBhdmFpbGFibGUsCitpbmNsdWRpbmcgdGhlIGZvbGxvd2luZzo8L3A+Cis8dWw+Cis8bGk+PGEgaHJlZj0iRGlnZXN0ZXIuaHRtbCNjbGVhcigpIj5jbGVhcigpPC9hPiAtIENsZWFyIHRoZSBjdXJyZW50IGNvbnRlbnRzCisgICAgb2YgdGhlIG9iamVjdCBzdGFjay48L2xpPgorPGxpPjxhIGhyZWY9IkRpZ2VzdGVyLmh0bWwjcGVlaygpIj5wZWVrKCk8L2E+IC0gUmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSB0b3AKKyAgICBvYmplY3Qgb24gdGhlIHN0YWNrLCB3aXRob3V0IHJlbW92aW5nIGl0LjwvbGk+Cis8bGk+PGEgaHJlZj0iRGlnZXN0ZXIuaHRtbCNwb3AoKSI+cG9wKCk8L2E+IC0gUmVtb3ZlIHRoZSB0b3Agb2JqZWN0IGZyb20gdGhlCisgICAgc3RhY2sgYW5kIHJldHVybiBpdC48L2xpPgorPGxpPjxhIGhyZWY9IkRpZ2VzdGVyLmh0bWwjcHVzaChqYXZhLmxhbmcuT2JqZWN0KSI+cHVzaCgpPC9hPiAtIFB1c2ggYSBuZXcKKyAgICBvYmplY3Qgb250byB0aGUgdG9wIG9mIHRoZSBzdGFjay48L2xpPgorPC91bD4KKworPHA+QSB0eXBpY2FsIGRlc2lnbiBwYXR0ZXJuLCB0aGVuLCBpcyB0byBmaXJlIGEgcnVsZSB0aGF0IGNyZWF0ZXMgYSBuZXcgb2JqZWN0CithbmQgcHVzaGVzIGl0IG9uIHRoZSBzdGFjayB3aGVuIHRoZSBiZWdpbm5pbmcgb2YgYSBwYXJ0aWN1bGFyIFhNTCBlbGVtZW50IGlzCitlbmNvdW50ZXJlZC4gVGhlIG9iamVjdCB3aWxsIHJlbWFpbiB0aGVyZSB3aGlsZSB0aGUgbmVzdGVkIGNvbnRlbnQgb2YgdGhpcworZWxlbWVudCBpcyBwcm9jZXNzZWQsIGFuZCBpdCB3aWxsIGJlIHBvcHBlZCBvZmYgd2hlbiB0aGUgZW5kIG9mIHRoZSBlbGVtZW50CitpcyBlbmNvdW50ZXJlZC4gIEFzIHdlIHdpbGwgc2VlLCB0aGUgc3RhbmRhcmQgIm9iamVjdCBjcmVhdGUiIHByb2Nlc3NpbmcgcnVsZQorc3VwcG9ydHMgZXhhY3RseSB0aGlzIGZ1bmN0aW9uYWxpbGl0eSBpbiBhIHZlcnkgY29udmVuaWVudCB3YXkuPC9wPgorCis8cD5TZXZlcmFsIHBvdGVudGlhbCBpc3N1ZXMgd2l0aCB0aGlzIGRlc2lnbiBwYXR0ZXJuIGFyZSBhZGRyZXNzZWQgYnkgb3RoZXIKK2ZlYXR1cmVzIG9mIHRoZSBEaWdlc3RlciBmdW5jdGlvbmFsaXR5OjwvcD4KKzx1bD4KKzxsaT48ZW0+SG93IGRvIEkgcmVsYXRlIHRoZSBvYmplY3RzIGJlaW5nIGNyZWF0ZWQgdG8gZWFjaCBvdGhlcj88L2VtPiAtIFRoZQorICAgIERpZ2VzdGVyIHN1cHBvcnRzIHN0YW5kYXJkIHByb2Nlc3NpbmcgcnVsZXMgdGhhdCBwYXNzIHRoZSB0b3Agb2JqZWN0IG9uCisgICAgdGhlIHN0YWNrIGFzIGFuIGFyZ3VtZW50IHRvIGEgbmFtZWQgbWV0aG9kIG9uIHRoZSBuZXh0LXRvLXRvcCBvYmplY3Qgb24KKyAgICB0aGUgc3RhY2sgKG9yIHZpY2UgdmVyc2EpLiAgVGhpcyBydWxlIG1ha2VzIGl0IGVhc3kgdG8gZXN0YWJsaXNoCisgICAgcGFyZW50LWNoaWxkIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGVzZSBvYmplY3RzLiAgT25lLXRvLW9uZSBhbmQKKyAgICBvbmUtdG8tbWFueSByZWxhdGlvbnNoaXBzIGFyZSBib3RoIGVhc3kgdG8gY29uc3RydWN0LjwvbGk+Cis8bGk+PGVtPkhvdyBkbyBJIHJldGFpbiBhIHJlZmVyZW5jZSB0byB0aGUgZmlyc3Qgb2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQ/PC9lbT4KKyAgICBBcyB5b3UgcmV2aWV3IHRoZSBkZXNjcmlwdGlvbiBvZiB3aGF0IHRoZSAib2JqZWN0IGNyZWF0ZSIgcHJvY2Vzc2luZyBydWxlCisgICAgZG9lcywgaXQgd291bGQgYXBwZWFyIHRoYXQgdGhlIGZpcnN0IG9iamVjdCB5b3UgY3JlYXRlIChpLmUuIHRoZSBvYmplY3QKKyAgICBjcmVhdGVkIGJ5IHRoZSBvdXRlcm1vc3QgWE1MIGVsZW1lbnQgeW91IHByb2Nlc3MpIHdpbGwgZGlzYXBwZWFyIGZyb20gdGhlCisgICAgc3RhY2sgYnkgdGhlIHRpbWUgdGhhdCBYTUwgcGFyc2luZyBpcyBjb21wbGV0ZWQsIGJlY2F1c2UgdGhlIGVuZCBvZiB0aGUKKyAgICBlbGVtZW50IHdvdWxkIGhhdmUgYmVlbiBlbmNvdW50ZXJlZC4gIFRvIGRlYWwgd2l0aCB0aGlzLCB0aGUgbm9ybWFsCisgICAgYXBwcm9hY2ggaXMgdG8gcHVzaCBhIHJlZmVyZW5jZSB0byBzb21lIGFwcGxpY2F0aW9uIGdsb2JhbCBvYmplY3Qgb250byB0aGUKKyAgICBzdGFjayBiZWZvcmUgdGhlIHBhcnNlIGJlZ2lucywgYW5kIGFycmFuZ2UgdGhhdCBhIHBhcmVudC1jaGlsZAorICAgIHJlbGF0aW9uc2hpcCBiZSBjcmVhdGVkIChieSBhcHByb3ByaWF0ZSBwcm9jZXNzaW5nIHJ1bGVzKSBiZXR3ZWVuIHRoaXMKKyAgICBtYW51YWxseSBwdXNoZWQgb2JqZWN0IGFuZCB0aGUgb25lIHRoYXQgaXMgZHluYW1pY2FsbHkgY3JlYXRlZC4gIEluIHRoaXMKKyAgICB3YXksIHRoZSBwdXNoZWQgb2JqZWN0IHdpbGwgcmV0YWluIGEgcmVmZXJlbmNlIHRvIHRoZSBkeW5hbWljYWxseSBjcmVhdGVkCisgICAgb2JqZWN0IChhbmQgdGhlcmVmb3JlIGFsbCBvZiBpdHMgY2hpbGRyZW4pIGFmdGVyIHRoZSBwYXJzZSBmaW5pc2hlcy48L2xpPgorPC91bD4KKworPGEgbmFtZT0iZG9jLlBhdHRlcm5zIj48L2E+Cis8aDM+RWxlbWVudCBNYXRjaGluZyBQYXR0ZXJuczwvaDM+CisKKzxwPkEgcHJpbWFyeSBmZWF0dXJlIG9mIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci5EaWdlc3RlcjwvY29kZT4KK3BhcnNlciBpcyB0aGF0IHRoZSBEaWdlc3RlciBhdXRvbWF0aWNhbGx5IG5hdmlnYXRlcyB0aGUgZWxlbWVudCBoaWVyYXJjaHkgb2YKK3RoZSBYTUwgZG9jdW1lbnQgeW91IGFyZSBwYXJzaW5nIGZvciB5b3UsIHdpdGhvdXQgcmVxdWlyaW5nIGFueSBkZXZlbG9wZXIKK2F0dGVudGlvbiB0byB0aGlzIHByb2Nlc3MuICBJbnN0ZWFkLCB5b3UgZm9jdXMgb24gZGVjaWRpbmcgd2hhdCBmdW5jdGlvbnMgeW91Cit3b3VsZCBsaWtlIHRvIGhhdmUgcGVyZm9ybWVkIHdoZW52ZXIgYSBjZXJ0YWluIGFycmFuZ2VtZW50IG9mIG5lc3RlZCBlbGVtZW50cworaXMgZW5jb3VudGVyZWQgaW4gdGhlIFhNTCBkb2N1bWVudCBiZWluZyBwYXJzZWQuICBUaGUgbWVjaGFuaXNtIGZvciBzcGVjaWZ5aW5nCitzdWNoIGFycmFuZ2VtZW50cyBhcmUgY2FsbGVkIDxlbT5lbGVtZW50IG1hdGNoaW5nIHBhdHRlcm5zPC9lbT4uCisKKzxwPkEgdmVyeSBzaW1wbGUgZWxlbWVudCBtYXRjaGluZyBwYXR0ZXJuIGlzIGEgc2ltcGxlIHN0cmluZyBsaWtlICJhIi4gIFRoaXMKK3BhdHRlcm4gaXMgbWF0Y2hlZCB3aGVuZXZlciBhbiA8Y29kZT4mbHQ7YSZndDs8L2NvZGU+IHRvcC1sZXZlbCBlbGVtZW50IGlzCitlbmNvdW50ZXJlZCBpbiB0aGUgWE1MIGRvY3VtZW50LCBubyBtYXR0ZXIgaG93IG1hbnkgdGltZXMgaXQgb2NjdXJzLiAgTm90ZSB0aGF0CituZXN0ZWQgPGNvZGU+Jmx0O2EmZ3Q7PC9jb2RlPiBlbGVtZW50cyB3aWxsIDxzdHJvbmc+bm90PC9zdHJvbmc+IG1hdGNoIHRoaXMKK3BhdHRlcm4gLS0gd2Ugd2lsbCBkZXNjcmliZSBtZWFucyB0byBzdXBwb3J0IHRoaXMga2luZCBvZiBtYXRjaGluZyBsYXRlci48L2xpPgorCis8cD5UaGUgbmV4dCBzdGVwIHVwIGluIG1hdGNoaW5nIHBhdHRlcm4gY29tcGxleGl0eSBpcyAiYS9iIi4gIFRoaXMgcGF0dGVybiB3aWxsCitiZSBtYXRjaGVkIHdoZW4gYSA8Y29kZT4mbHQ7YiZndDs8L2NvZGU+IGVsZW1lbnQgaXMgZm91bmQgbmVzdGVkIGluc2lkZSBhCit0b3AtbGV2ZWwgPGNvZGU+Jmx0O2EmZ3Q7PC9jb2RlPiBlbGVtZW50LiAgQWdhaW4sIHRoaXMgbWF0Y2ggY2FuIG9jY3VyIGFzIG1hbnkKK3RpbWVzIGFzIGRlc2lyZWQsIGRlcGVuZGluZyBvbiB0aGUgY29udGVudCBvZiB0aGUgWE1MIGRvY3VtZW50IGJlaW5nIHBhcnNlZC4KK1lvdSBjYW4gdXNlIG11bHRpcGxlIHNsYXNoZXMgdG8gZGVmaW5lIGEgaGllcmFyY2h5IG9mIGFueSBkZXNpcmVkIGRlcHRoIHRoYXQKK3dpbGwgYmUgbWF0Y2hlZCBhcHByb3ByaWF0ZWx5LjwvcD4KKworPHA+Rm9yIGV4YW1wbGUsIGFzc3VtZSB5b3UgaGF2ZSByZWdpc3RlcmVkIHByb2Nlc3NpbmcgcnVsZXMgdGhhdCBtYXRjaCBwYXR0ZXJucworImEiLCAiYS9iIiwgYW5kICJhL2IvYyIuICBGb3IgYW4gaW5wdXQgWE1MIGRvY3VtZW50IHdpdGggdGhlIGZvbGxvd2luZworY29udGVudHMsIHRoZSBpbmRpY2F0ZWQgcGF0dGVybnMgd2lsbCBiZSBtYXRjaGVkIHdoZW4gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudAoraXMgcGFyc2VkOjwvcD4KKzxwcmU+CisgICZsdDthJmd0OyAgICAgICAgIC0tIE1hdGNoZXMgcGF0dGVybiAiYSIKKyAgICAmbHQ7YiZndDsgICAgICAgLS0gTWF0Y2hlcyBwYXR0ZXJuICJhL2IiCisgICAgICAmbHQ7Yy8mZ3Q7ICAgIC0tIE1hdGNoZXMgcGF0dGVybiAiYS9iL2MiCisgICAgICAmbHQ7Yy8mZ3Q7ICAgIC0tIE1hdGNoZXMgcGF0dGVybiAiYS9iL2MiCisgICAgJmx0Oy9iJmd0OworICAgICZsdDtiJmd0OyAgICAgICAtLSBNYXRjaGVzIHBhdHRlcm4gImEvYiIKKyAgICAgICZsdDtjLyZndDsgICAgLS0gTWF0Y2hlcyBwYXR0ZXJuICJhL2IvYyIKKyAgICAgICZsdDtjLyZndDsgICAgLS0gTWF0Y2hlcyBwYXR0ZXJuICJhL2IvYyIKKyAgICAgICZsdDtjLyZndDsgICAgLS0gTWF0Y2hlcyBwYXR0ZXJuICJhL2IvYyIKKyAgICAmbHQ7L2ImZ3Q7CisgICZsdDsvYSZndDsKKzwvcHJlPgorCis8cD5JdCBpcyBhbHNvIHBvc3NpYmxlIHRvIG1hdGNoIGEgcGFydGljdWxhciBYTUwgZWxlbWVudCwgbm8gbWF0dGVyIGhvdyBpdCBpcworbmVzdGVkIChvciBub3QgbmVzdGVkKSBpbiB0aGUgWE1MIGRvY3VtZW50LCBieSB1c2luZyB0aGUgIioiIHdpbGRjYXJkIGNoYXJhY3RlcgoraW4geW91ciBtYXRjaGluZyBwYXR0ZXJuIHN0cmluZ3MuICBGb3IgZXhhbXBsZSwgYW4gZWxlbWVudCBtYXRjaGluZyBwYXR0ZXJuCitvZiAiKi9hIiB3aWxsIG1hdGNoIGFuIDxjb2RlPiZsdDthJmd0OzwvY29kZT4gZWxlbWVudCBhdCBhbnkgbmVzdGluZyBwb3NpdGlvbgord2l0aGluIHRoZSBkb2N1bWVudC48L3A+CisKKzxwPkl0IGlzIHF1aXRlIHBvc3NpYmxlIHRoYXQsIHdoZW4gYSBwYXJ0aWN1bGFyIFhNTCBlbGVtZW50IGlzIGJlaW5nIHBhcnNlZCwKK3RoZSBwYXR0ZXJuIGZvciBtb3JlIHRoYW4gb25lIHJlZ2lzdGVyZWQgcHJvY2Vzc2luZyBydWxlIHdpbGwgYmUgbWF0Y2hlZAorKGVpdGhlciBiZWNhdXNlIHlvdSByZWdpc3RlcmVkIG1vcmUgdGhhbiBvbmUgcHJvY2Vzc2luZyBydWxlIHdpdGggdGhlIHNhbWUKK21hdGNoaW5nIHBhdHRlcm4sIG9yIGJlY2F1c2Ugb25lIG1vcmUgbW9yZSBleGFjdCBwYXR0ZXJuIG1hdGNoZXMgYW5kIHdpbGRjYXJkCitwYXR0ZXJuIG1hdGNoZXMgYXJlIHNhdGlzZmllZCBieSB0aGUgc2FtZSBlbGVtZW50LiAgV2hlbiB0aGlzIG9jY3VycywgdGhlCitjb3JyZXNwb25kaW5nIHByb2Nlc3NpbmcgcnVsZXMgd2lsbCBhbGwgYmUgZmlyZWQsIGluIHRoZSBvcmRlciB0aGF0IHRoZXkgd2VyZQoraW5pdGlhbGx5IHJlZ2lzdGVyZWQgd2l0aCB0aGUgRGlnZXN0ZXIuPC9wPgorCis8YSBuYW1lPSJkb2MuUnVsZXMiPjwvYT4KKzxoMz5Qcm9jZXNzaW5nIFJ1bGVzPC9oMz4KKworPHA+VGhlIDxhIGhyZWY9IiNkb2MuUGF0dGVybnMiPnByZXZpb3VzIHNlY3Rpb248L2E+IGRvY3VtZW50ZWQgaG93IHlvdSBpZGVudGlmeQorPHN0cm9uZz53aGVuPC9zdHJvbmc+IHlvdSB3aXNoIHRvIGhhdmUgY2VydGFpbiBhY3Rpb25zIHRha2UgcGxhY2UuICBUaGUgcHVycG9zZQorb2YgcHJvY2Vzc2luZyBydWxlcyBpcyB0byBkZWZpbmUgPHN0cm9uZz53aGF0PC9zdHJvbmc+IHNob3VsZCBoYXBwZW4gd2hlbiB0aGUKK3BhdHRlcm5zIGFyZSBtYXRjaGVkLjwvcD4KKworPHA+Rm9ybWFsbHksIGEgcHJvY2Vzc2luZyBydWxlIGlzIGEgSmF2YSBjbGFzcyB0aGF0IHN1YmNsYXNzZXMgdGhlCis8YSBocmVmPSJSdWxlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLlJ1bGU8L2E+IGludGVyZmFjZS4gIEVhY2ggUnVsZQoraW1wbGVtZW50cyBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nIGV2ZW50IG1ldGhvZHMgdGhhdCBhcmUgY2FsbGVkIGF0Cit3ZWxsLWRlZmluZWQgdGltZXMgd2hlbiB0aGUgbWF0Y2hpbmcgcGF0dGVybnMgY29ycmVzcG9uZGluZyB0byB0aGlzIHJ1bGUKK3RyaWdnZXIgaXQ6PC9wPgorPHVsPgorPGxpPjxhIGhyZWY9IlJ1bGUuaHRtbCNiZWdpbihvcmcueG1sLnNheC5BdHRyaWJ1dGVMaXN0KSI+YmVnaW4oKTwvYT4gLQorICAgIENhbGxlZCB3aGVuIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG1hdGNoZWQgWE1MIGVsZW1lbnQgaXMgZW5jb3VudGVyZWQuICBBCisgICAgZGF0YSBzdHJ1Y3R1cmUgY29udGFpbmluZyBhbGwgb2YgdGhlIGF0dHJpYnV0ZXMgY29ycmVzcG9uZGluZyB0byB0aGlzCisgICAgZWxlbWVudCBhcmUgcGFzc2VkIGFzIHdlbGwuPC9saT4KKzxsaT48YSBocmVmPSJSdWxlLmh0bWwjYm9keShqYXZhLmxhbmcuU3RyaW5nKSI+Ym9keSgpPC9hPiAtCisgICAgQ2FsbGVkIHdoZW4gbmVzdGVkIGNvbnRlbnQgKHRoYXQgaXMgbm90IGl0c2VsZiBYTUwgZWxlbWVudHMpIG9mIHRoZQorICAgIG1hdGNoZWQgZWxlbWVudCBpcyBlbmNvdW50ZXJlZC4gIEFueSBsZWFkaW5nIG9yIHRyYWlsaW5nIHdoaXRlc3BhY2Ugd2lsbAorICAgIGhhdmUgYmVlbiByZW1vdmVkIGFzIHBhcnQgb2YgdGhlIHBhcnNpbmcgcHJvY2Vzcy48L2xpPgorPGxpPjxhIGhyZWY9IlJ1bGUuaHRtbCNlbmQoKSI+ZW5kKCk8L2E+IC0gQ2FsbGVkIHdoZW4gdGhlIGVuZGluZyBvZiB0aGUgbWF0Y2hlZAorICAgIFhNTCBlbGVtZW50IGlzIGVuY291bnRlcmVkLiAgSWYgbmVzdGVkIFhNTCBlbGVtZW50cyB0aGF0IG1hdGNoZWQgb3RoZXIKKyAgICBwcm9jZXNzaW5nIHJ1bGVzIHdhcyBpbmNsdWRlZCBpbiB0aGUgYm9keSBvZiB0aGlzIGVsZW1lbnQsIHRoZSBhcHByb3ByaWF0ZQorICAgIHByb2Nlc3NpbmcgcnVsZXMgZm9yIHRoZSBtYXRjaGVkIHJ1bGVzIHdpbGwgaGF2ZSBhbHJlYWR5IGJlZW4gY29tcGxldGVkCisgICAgYmVmb3JlIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC48L2xpPgorPGxpPjxhIGhyZWY9IlJ1bGUuaHRtbCNmaW5pc2goKSI+ZmluaXNoKCk8L2E+IC0gQ2FsbGVkIHdoZW4gdGhlIHBhcnNlIGhhcworICAgIGJlZW4gY29tcGxldGVkLCB0byBnaXZlIGVhY2ggcnVsZSBhIGNoYW5jZSB0byBjbGVhbiB1cCBhbnkgdGVtcG9yYXJ5IGRhdGEKKyAgICB0aGV5IG1pZ2h0IGhhdmUgY3JlYXRlZCBhbmQgY2FjaGVkLjwvbGk+Cis8L3VsPgorCis8cD5BcyB5b3UgYXJlIGNvbmZpZ3VyaW5nIHlvdXIgZGlnZXN0ZXIsIHlvdSBjYW4gY2FsbCB0aGUKKzxjb2RlPmFkZFJ1bGUoKTwvY29kZT4gbWV0aG9kIHRvIHJlZ2lzdGVyIGEgc3BlY2lmaWMgZWxlbWVudCBtYXRjaGluZyBwYXR0ZXJuLAorYWxvbmcgd2l0aCBhbiBpbnN0YW5jZSBvZiBhIDxjb2RlPlJ1bGU8L2NvZGU+IGNsYXNzIHRoYXQgd2lsbCBoYXZlIGl0cyBldmVudAoraGFuZGxpbmcgbWV0aG9kcyBjYWxsZWQgYXQgdGhlIGFwcHJvcHJpYXRlIHRpbWVzLCBhcyBkZXNjcmliZWQgYWJvdmUuICBUaGlzCittZWNoYW5pc20gYWxsb3dzIHlvdSB0byBjcmVhdGUgPGNvZGU+UnVsZTwvY29kZT4gaW1wbGVtZW50YXRpb24gY2xhc3NlcworZHluYW1pY2FsbHksIHRvIGltcGxlbWVudCBhbnkgZGVzaXJlZCBhcHBsaWNhdGlvbiBzcGVjaWZpYyBmdW5jdGlvbmFsaXR5LjwvcD4KKworPHA+SW4gYWRkaXRpb24sIGEgc2V0IG9mIHByb2Nlc3NpbmcgcnVsZSBpbXBsZW1lbnRhdGlvbiBjbGFzc2VzIGFyZSBwcm92aWRlZCwKK3doaWNoIGRlYWwgd2l0aCBtYW55IGNvbW1vbiBwcm9ncmFtbWluZyBzY2VuYXJpb3MuICBUaGVzZSBjbGFzc2VzIGluY2x1ZGUgdGhlCitmb2xsb3dpbmc6PC9wPgorPHVsPgorPGxpPjxhIGhyZWY9Ik9iamVjdENyZWF0ZVJ1bGUuaHRtbCI+T2JqZWN0Q3JlYXRlUnVsZTwvYT4gLSBXaGVuIHRoZQorICAgIDxjb2RlPmJlZ2luKCk8L2NvZGU+IG1ldGhvZCBpcyBjYWxsZWQsIHRoaXMgcnVsZSBpbnN0YW50aWF0ZXMgYSBuZXcKKyAgICBpbnN0YW5jZSBvZiBhIHNwZWNpZmllZCBKYXZhIGNsYXNzLCBhbmQgcHVzaGVzIGl0IG9uIHRoZSBzdGFjay4gIFRoZQorICAgIGNsYXNzIG5hbWUgdG8gYmUgdXNlZCBpcyBkZWZhdWx0ZWQgYWNjb3JkaW5nIHRvIGEgcGFyYW1ldGVyIHBhc3NlZCB0bworICAgIHRoaXMgcnVsZSdzIGNvbnN0cnVjdG9yLCBidXQgY2FuIG9wdGlvbmFsbHkgYmUgb3ZlcnJpZGRlbiBieSBhIGNsYXNzbmFtZQorICAgIHBhc3NlZCB2aWEgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGUgdG8gdGhlIFhNTCBlbGVtZW50IGJlaW5nIHByb2Nlc3NlZC4KKyAgICBXaGVuIHRoZSA8Y29kZT5lbmQoKTwvY29kZT4gbWV0aG9kIGlzIGNhbGxlZCwgdGhlIHRvcCBvYmplY3Qgb24gdGhlIHN0YWNrCisgICAgKHByZXN1bWFibHksIHRoZSBvbmUgd2UgYWRkZWQgaW4gdGhlIDxjb2RlPmJlZ2luKCk8L2NvZGU+IG1ldGhvZCkgd2lsbAorICAgIGJlIHBvcHBlZCwgYW5kIGFueSByZWZlcmVuY2UgdG8gaXQgKHdpdGhpbiB0aGUgRGlnZXN0ZXIpIHdpbGwgYmUKKyAgICBkaXNjYXJkZWQuPC9saT4KKzxsaT48YSBocmVmPSJTZXRQcm9wZXJ0aWVzUnVsZS5odG1sIj5TZXRQcm9wZXJ0aWVzUnVsZTwvYT4gLSBXaGVuIHRoZQorICAgIDxjb2RlPmJlZ2luKCk8L2NvZGU+IG1ldGhvZCBpcyBjYWxsZWQsIHRoZSBkaWdlc3RlciB1c2VzIHRoZSBzdGFuZGFyZAorICAgIEphdmEgUmVmbGVjdGlvbiBBUEkgdG8gaWRlbnRpZnkgYW55IEphdmFCZWFucyBwcm9wZXJ0eSBzZXR0ZXIgbWV0aG9kcworICAgIChvbiB0aGUgb2JqZWN0IGF0IHRoZSB0b3Agb2YgdGhlIGRpZ2VzdGVyJ3Mgc3RhY2spCisgICAgd2hvIGhhdmUgcHJvcGVydHkgbmFtZXMgdGhhdCBtYXRjaCB0aGUgYXR0cmlidXRlcyBzcGVjaWZpZWQgb24gdGhpcyBYTUwKKyAgICBlbGVtZW50LCBhbmQgdGhlbiBjYWxsIHRoZW0gaW5kaXZpZHVhbGx5LCBwYXNzaW5nIHRoZSBjb3JyZXNwb25kaW5nCisgICAgYXR0cmlidXRlIHZhbHVlcy4gIEEgdmVyeSBjb21tb24gaWRpb20gaXMgdG8gZGVmaW5lIGFuIG9iamVjdCBjcmVhdGUKKyAgICBydWxlLCBmb2xsb3dlZCBieSBhIHNldCBwcm9wZXJ0aWVzIHJ1bGUsIHdpdGggdGhlIHNhbWUgZWxlbWVudCBtYXRjaGluZworICAgIHBhdHRlcm4uICBUaGlzIGNhdXNlcyB0aGUgY3JlYXRpb24gb2YgYSBuZXcgSmF2YSBvYmplY3QsIGZvbGxvd2VkIGJ5CisgICAgImNvbmZpZ3VyYXRpb24iIG9mIHRoYXQgb2JqZWN0J3MgcHJvcGVydGllcyBiYXNlZCBvbiB0aGUgYXR0cmlidXRlcworICAgIG9mIHRoZSBzYW1lIFhNTCBlbGVtZW50IHRoYXQgY3JlYXRlZCB0aGlzIG9iamVjdC48L2xpPgorPGxpPjxhIGhyZWY9IlNldFByb3BlcnR5UnVsZS5odG1sIj5TZXRQcm9wZXJ0eVJ1bGU8L2E+IC0gV2hlbiB0aGUKKyAgICA8Y29kZT5iZWdpbigpPC9jb2RlPiBtZXRob2QgaXMgY2FsbGVkLCB0aGUgZGlnZXN0ZXIgY2FsbHMgYSBzcGVjaWZpZWQKKyAgICBwcm9wZXJ0eSBzZXR0ZXIgKHdoZXJlIHRoZSBwcm9wZXJ0eSBpdHNlbGYgaXMgbmFtZWQgYnkgYW4gYXR0cmlidXRlKQorICAgIHdpdGggYSBzcGVjaWZpZWQgdmFsdWUgKHdoZXJlIHRoZSB2YWx1ZSBpcyBuYW1lZCBieSBhbm90aGVyIGF0dHJpYnV0ZSksCisgICAgb24gdGhlIG9iamVjdCBhdCB0aGUgdG9wIG9mIHRoZSBkaWdlc3RlcidzIHN0YWNrLgorICAgIFRoaXMgaXMgdXNlZnVsIHdoZW4geW91ciBYTUwgZmlsZSBjb25mb3JtcyB0byBhIHBhcnRpY3VsYXIgRFRELCBhbmQKKyAgICB5b3Ugd2lzaCB0byBjb25maWd1cmUgYSBwYXJ0aWN1bGFyIHByb3BlcnR5IHRoYXQgZG9lcyBub3QgaGF2ZSBhCisgICAgY29ycmVzcG9uZGluZyBhdHRyaWJ1dGUgaW4gdGhlIERURC48L2xpPgorPGxpPjxhIGhyZWY9IlNldE5leHRSdWxlLmh0bWwiPlNldE5leHRSdWxlPC9hPiAtIFdoZW4gdGhlCisgICAgPGNvZGU+YmVnaW4oKTwvY29kZT4gbWV0aG9kIGlzIGNhbGxlZCwgdGhlIGRpZ2VzdGVyIGFuYWx5emVzIHRoZQorICAgIG5leHQtdG8tdG9wIGVsZW1lbnQgb24gdGhlIHN0YWNrLCBsb29raW5nIGZvciBhIHByb3BlcnR5IHNldHRlciBtZXRob2QKKyAgICBmb3IgYSBzcGVjaWZpZWQgcHJvcGVydHkuICBJdCB0aGVuIGNhbGxzIHRoaXMgbWV0aG9kLCBwYXNzaW5nIHRoZSBvYmplY3QKKyAgICBhdCB0aGUgdG9wIG9mIHRoZSBzdGFjayBhcyBhbiBhcmd1bWVudC4gIFRoaXMgcnVsZSBpcyBjb21tb25seSB1c2VkIHRvCisgICAgZXN0YWJsaXNoIG9uZS10by1tYW55IHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB0aGUgdHdvIG9iamVjdHMsIHdpdGggdGhlCisgICAgbWV0aG9kIG5hbWUgY29tbW9ubHkgYmVpbmcgc29tZXRoaW5nIGxpa2UgImFkZENoaWxkIi48L2xpPgorPGxpPjxhIGhyZWY9IlNldFRvcFJ1bGUuaHRtbCI+U2V0VG9wUnVsZTwvYT4gLSBXaGVuIHRoZQorICAgIDxjb2RlPmJlZ2luKCk8L2NvZGU+IG1ldGhvZCBpcyBjYWxsZWQsIHRoZSBkaWdlc3RlciBhbmFseXplcyB0aGUKKyAgICB0b3AgZWxlbWVudCBvbiB0aGUgc3RhY2ssIGxvb2tpbmcgZm9yIGEgcHJvcGVydHkgc2V0dGVyIG1ldGhvZCBmb3IgYQorICAgIHNwZWNpZmllZCBwcm9wZXJ0eS4gIEl0IHRoZW4gY2FsbHMgdGhpcyBtZXRob2QsIHBhc3NpbmcgdGhlIG5leHQtdG8tdG9wCisgICAgb2JqZWN0IG9uIHRoZSBzdGFjayBhcyBhbiBhcmd1bWVudC4gIFRoaXMgcnVsZSB3b3VsZCBiZSB1c2VkIGFzIGFuCisgICAgYWx0ZXJuYXRpdmUgdG8gYSBTZXROZXh0UnVsZSwgd2l0aCBhIHR5cGljYWwgbWV0aG9kIG5hbWUgInNldFBhcmVudCIsCisgICAgaWYgdGhlIEFQSSBzdXBwb3J0ZWQgYnkgeW91ciBvYmplY3QgY2xhc3NlcyBwcmVmZXJzIHRoaXMgYXBwcm9hY2guPC9saT4KKzxsaT48YSBocmVmPSJDYWxsTWV0aG9kUnVsZS5odG1sIj5DYWxsTWV0aG9kUnVsZTwvYT4gLSBUaGlzIHJ1bGUgc2V0cyB1cCBhCisgICAgbWV0aG9kIGNhbGwgdG8gYSBuYW1lZCBtZXRob2Qgb2YgdGhlIHRvcCBvYmplY3Qgb24gdGhlIGRpZ2VzdGVyJ3Mgc3RhY2ssCisgICAgd2hpY2ggd2lsbCBhY3R1YWxseSB0YWtlIHBsYWNlIHdoZW4gdGhlIDxjb2RlPmVuZCgpPC9jb2RlPiBtZXRob2QgaXMKKyAgICBjYWxsZWQuICBZb3UgY29uZmlndXJlIHRoaXMgcnVsZSBieSBzcGVjaWZ5aW5nIHRoZSBuYW1lIG9mIHRoZSBtZXRob2QKKyAgICB0byBiZSBjYWxsZWQsIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzIGl0IHRha2VzLCBhbmQgKG9wdGlvbmFsbHkpIHRoZQorICAgIEphdmEgY2xhc3MgbmFtZShzKSBkZWZpbmluZyB0aGUgdHlwZShzKSBvZiB0aGUgbWV0aG9kJ3MgYXJndW1lbnRzLgorICAgIFRoZSBhY3R1YWwgcGFyYW1ldGVyIHZhbHVlcywgaWYgYW55LCB3aWxsIHR5cGljYWxseSBiZSBhY2N1bXVsYXRlZCBmcm9tCisgICAgdGhlIGJvZHkgY29udGVudCBvZiBuZXN0ZWQgZWxlbWVudHMgd2l0aGluIHRoZSBlbGVtZW50IHRoYXQgdHJpZ2dlcmVkCisgICAgdGhpcyBydWxlLCB1c2luZyB0aGUgQ2FsbFBhcmFtUnVsZSBkaXNjdXNzZWQgbmV4dC48L2xpPgorPGxpPjxhIGhyZWY9IkNhbGxQYXJhbVJ1bGUuaHRtbCI+Q2FsbFBhcmFtUnVsZTwvYT4gLSBUaGlzIHJ1bGUgaWRlbnRpZmllcworICAgIHRoZSBzb3VyY2Ugb2YgYSBwYXJ0aWN1bGFyIG51bWJlcmVkICh6ZXJvLXJlbGF0aXZlKSBwYXJhbWV0ZXIgZm9yIGEKKyAgICBDYWxsTWV0aG9kUnVsZSB3aXRoaW4gd2hpY2ggd2UgYXJlIG5lc3RlZC4gIFlvdSBjYW4gc3BlY2lmeSB0aGF0IHRoZQorICAgIHBhcmFtZXRlciB2YWx1ZSBiZSB0YWtlbiBmcm9tIGEgcGFydGljdWxhciBuYW1lZCBhdHRyaWJ1dGUsIG9yIGZyb20gdGhlCisgICAgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIGVsZW1lbnQuPC9saT4KKzwvdWw+CisKKzxwPllvdSBjYW4gY3JlYXRlIGluc3RhbmNlcyBvZiB0aGUgc3RhbmRhcmQgPGNvZGU+UnVsZTwvY29kZT4gY2xhc3NlcyBhbmQKK3JlZ2lzdGVyIHRoZW0gYnkgY2FsbGluZyA8Y29kZT5kaWdlc3Rlci5hZGRSdWxlKCk8L2NvZGU+LCBhcyBkZXNjcmliZWQgYWJvdmUuCitIb3dldmVyLCBiZWNhdXNlIHRoZWlyIHVzYWdlIGlzIHNvIGNvbW1vbiwgc2hvcnRoYW5kIHJlZ2lzdHJhdGlvbiBtZXRob2RzIGFyZQorZGVmaW5lZCBmb3IgZWFjaCBvZiB0aGUgc3RhbmRhcmQgcnVsZXMsIGRpcmVjdGx5IG9uIHRoZSA8Y29kZT5EaWdlc3RlcjwvY29kZT4KK2NsYXNzLiAgRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgY29kZSBzZXF1ZW5jZTo8L3A+Cis8cHJlPgorICAgIFJ1bGUgcnVsZSA9IG5ldyBTZXROZXh0UnVsZShkaWdlc3RlciwgImFkZENoaWxkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbS5teWNvbXBhbnkubXlwYWNrYWdlLk15Q2hpbGRDbGFzcyIpOworICAgIGRpZ2VzdGVyLmFkZFJ1bGUoImEvYi9jIiwgcnVsZSk7Cis8L3ByZT4KKzxwPmNhbiBiZSByZXBsYWNlZCBieTo8L3A+Cis8cHJlPgorICAgIGRpZ2VzdGVyLmFkZFNldE5leHQoImEvYi9jIiwgImFkZENoaWxkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJjb20ubXljb21wYW55Lm15cGFja2FnZS5NeUNoaWxkQ2xhc3MiKTsKKzwvcHJlPgorCis8YSBuYW1lPSJkb2MuVXNhZ2UiPjwvYT4KKzxoMz5Vc2FnZSBFeGFtcGxlczwvaDM+CisKKzxoNT5Qcm9jZXNzaW5nIFRoZSBTdHJ1dHMgQ29uZmlndXJhdGlvbiBGaWxlPC9oNT4KKworPHA+QXMgc3RhdGVkIGVhcmxpZXIsIHRoZSBwcmltYXJ5IHJlYXNvbiB0aGF0IHRoZQorPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuRGlnZXN0ZXI8L2NvZGU+IHBhY2thZ2UgZXhpc3RzIGlzIGJlY2F1c2UgdGhlCitTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0IGl0c2VsZiBuZWVkZWQgYSByb2J1c3QsIGZsZXhpYmxlLCBlYXN5IHRvIGV4dGVuZAorbWVjaGFuaXNtIGZvciBwcm9jZXNzaW5nIHRoZSBjb250ZW50cyBvZiB0aGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+Citjb25maWd1cmF0aW9uIHRoYXQgZGVzY3JpYmVzIG5lYXJseSBldmVyeSBhc3BlY3Qgb2YgYSBTdHJ1dHMtYmFzZWQgYXBwbGljYXRpb24uCitCZWNhdXNlIG9mIHRoaXMsIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgY29udGFpbnMgYSBjb21wcmVoZW5zaXZlLCByZWFsIHdvcmxkLAorZXhhbXBsZSBvZiBob3cgdGhlIERpZ2VzdGVyIGNhbiBiZSBlbXBsb3llZCBmb3IgdGhpcyB0eXBlIG9mIGEgdXNlIGNhc2UuCitTZWUgdGhlIDxjb2RlPmluaXREaWdlc3RlcigpPC9jb2RlPiBtZXRob2Qgb2YgY2xhc3MKKzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0PC9jb2RlPiBmb3IgdGhlIGNvZGUgdGhhdCBjcmVhdGVzCithbmQgY29uZmlndXJlcyB0aGUgRGlnZXN0ZXIgdG8gYmUgdXNlZCwgYW5kIHRoZSA8Y29kZT5pbml0TWFwcGluZygpPC9jb2RlPgorbWV0aG9kIGZvciB3aGVyZSB0aGUgcGFyc2luZyBhY3R1YWxseSB0YWtlcyBwbGFjZS48L3A+CisKKzxwPlRoZSBmb2xsb3dpbmcgZGlzY3Vzc2lvbiBoaWdobGlnaHRzIGEgZmV3IG9mIHRoZSBtYXRjaGluZyBwYXR0ZXJucyBhbmQKK3Byb2Nlc3NpbmcgcnVsZXMgdGhhdCBhcmUgY29uZmlndXJlZCwgdG8gaWxsdXN0cmF0ZSB0aGUgdXNlIG9mIHNvbWUgb2YgdGhlCitEaWdlc3RlciBmZWF0dXJlcy4gIEZpcnN0LCBsZXQncyBsb29rIGF0IGhvdyB0aGUgRGlnZXN0ZXIgaW5zdGFuY2UgaXMKK2NyZWF0ZWQgYW5kIGluaXRpYWxpemVkOjwvcD4KKzxwcmU+CisgICAgRGlnZXN0ZXIgZGlnZXN0ZXIgPSBuZXcgRGlnZXN0ZXIoKTsKKyAgICBkaWdlc3Rlci5wdXNoKHRoaXMpOworICAgIGRpZ2VzdGVyLnNldERlYnVnKGRldGFpbCk7CisgICAgZGlnZXN0ZXIuc2V0VmFsaWRhdGluZyh0cnVlKTsKKzwvcHJlPgorCis8cD5XZSBzZWUgdGhhdCBhIG5ldyBEaWdlc3RlciBpbnN0YW5jZSBpcyBjcmVhdGVkLCBhbmQgaXMgY29uZmlndXJlZCB0byB1c2UKK2EgdmFsaWRhdGluZyBwYXJzZXIuICBWYWxpZGF0aW9uIHdpbGwgb2NjdXIgYWdhaW5zdCB0aGUgc3RydXRzLWNvbmZpZ18xXzAuZHRkCitEVEQgdGhhdCBpcyBpbmNsdWRlZCB3aXRoIFN0cnV0cyAoYXMgZGlzY3Vzc2VkIGVhcmxpZXIpLiAgSW4gb3JkZXIgdG8gcHJvdmlkZQorYSBtZWFucyBvZiB0cmFja2luZyB0aGUgY29uZmlndXJlZCBvYmplY3RzLCB0aGUgY29udHJvbGxlciBzZXJ2bGV0IGluc3RhbmNlCitpdHNlbGYgd2lsbCBiZSBhZGRlZCB0byB0aGUgZGlnZXN0ZXIncyBzdGFjay48L3A+CisKKzxwcmU+CisgICAgZGlnZXN0ZXIuYWRkT2JqZWN0Q3JlYXRlKCJzdHJ1dHMtY29uZmlnL2dsb2JhbC1mb3J3YXJkcy9mb3J3YXJkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yd2FyZENsYXNzLCAiY2xhc3NOYW1lIik7CisgICAgZGlnZXN0ZXIuYWRkU2V0UHJvcGVydGllcygic3RydXRzLWNvbmZpZy9nbG9iYWwtZm9yd2FyZHMvZm9yd2FyZCIpOworICAgIGRpZ2VzdGVyLmFkZFNldE5leHQoInN0cnV0cy1jb25maWcvZ2xvYmFsLWZvcndhcmRzL2ZvcndhcmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgImFkZEZvcndhcmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgIm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkIik7CisgICAgZGlnZXN0ZXIuYWRkU2V0UHJvcGVydHkKKyAgICAgICgic3RydXRzLWNvbmZpZy9nbG9iYWwtZm9yd2FyZHMvZm9yd2FyZC9zZXQtcHJvcGVydHkiLAorICAgICAgICJwcm9wZXJ0eSIsICJ2YWx1ZSIpOworPC9wcmU+CisKKzxwPlRoZSBydWxlcyBjcmVhdGVkIGJ5IHRoZXNlIGxpbmVzIGFyZSB1c2VkIHRvIHByb2Nlc3MgdGhlIGdsb2JhbCBmb3J3YXJkCitkZWNsYXJhdGlvbnMuICBXaGVuIGEgPGNvZGU+Jmx0O2ZvcndhcmQmZ3Q7PC9jb2RlPiBlbGVtZW50IGlzIGVuY291bnRlcmVkLAordGhlIGZvbGxvd2luZyBhY3Rpb25zIHRha2UgcGxhY2U6PC9wPgorPHVsPgorPGxpPkEgbmV3IG9iamVjdCBpbnN0YW5jZSBpcyBjcmVhdGVkIC0tIHRoZSA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPgorICAgIGluc3RhbmNlIHRoYXQgd2lsbCByZXByZXNlbnQgdGhpcyBkZWZpbml0aW9uLiAgVGhlIEphdmEgY2xhc3MgbmFtZQorICAgIGRlZmF1bHRzIHRvIHRoYXQgc3BlY2lmaWVkIGFzIGFuIGluaXRpYWxpemF0aW9uIHBhcmFtZXRlciAod2hpY2gKKyAgICB3ZSBoYXZlIHN0b3JlZCBpbiB0aGUgU3RyaW5nIHZhcmlhYmxlIDxjb2RlPmZvcndhcmRDbGFzczwvY29kZT4pLCBidXQgY2FuCisgICAgYmUgb3ZlcnJpZGRlbiBieSB1c2luZyB0aGUgImNsYXNzTmFtZSIgYXR0cmlidXRlIChpZiBpdCBpcyBwcmVzZW50IGluIHRoZQorICAgIFhNTCBlbGVtZW50IHdlIGFyZSBjdXJyZW50bHkgcGFyc2luZykuICBUaGUgbmV3IDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+CisgICAgaW5zdGFuY2UgaXMgcHVzaGVkIG9udG8gdGhlIHN0YWNrLjwvbGk+Cis8bGk+VGhlIHByb3BlcnRpZXMgb2YgdGhlIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIChhdCB0aGUgdG9wIG9mCisgICAgdGhlIHN0YWNrKSBhcmUgY29uZmlndXJlZCBiYXNlZCBvbiB0aGUgYXR0cmlidXRlcyBvZiB0aGUKKyAgICA8Y29kZT4mbHQ7Zm9yd2FyZCZndDs8L2NvZGU+IGVsZW1lbnQuPC9saT4KKzxsaT5OZXN0ZWQgb2NjdXJyZW5jZXMgb2YgdGhlIDxjb2RlPiZsdDtzZXQtcHJvcGVydHkmZ3Q7PC9jb2RlPiBlbGVtZW50CisgICAgY2F1c2UgY2FsbHMgdG8gYWRkaXRpb25hbCBwcm9wZXJ0eSBzZXR0ZXIgbWV0aG9kcyB0byBvY2N1ci4gIFRoaXMgaXMKKyAgICByZXF1aXJlZCBvbmx5IGlmIHlvdSBoYXZlIHByb3ZpZGVkIGEgY3VzdG9tIGltcGxlbWVudGF0aW9uIG9mIHRoZQorICAgIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGNsYXNzIHdpdGggYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRoYXQgYXJlCisgICAgbm90IGluY2x1ZGVkIGluIHRoZSBEVEQuPC9saT4KKzxsaT5UaGUgPGNvZGU+YWRkRm9yd2FyZCgpPC9jb2RlPiBtZXRob2Qgb2YgdGhlIG5leHQtdG8tdG9wIG9iamVjdCBvbgorICAgIHRoZSBzdGFjayAoaS5lLiB0aGUgY29udHJvbGxlciBzZXJ2bGV0IGl0c2VsZikgd2lsbCBiZSBjYWxsZWQsIHBhc3NpbmcKKyAgICB0aGUgb2JqZWN0IGF0IHRoZSB0b3Agb2YgdGhlIHN0YWNrIChpLmUuIHRoZSA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPgorICAgIGluc3RhbmNlKSBhcyBhbiBhcmd1bWVudC4gIFRoaXMgY2F1c2VzIHRoZSBnbG9iYWwgZm9yd2FyZCB0byBiZQorICAgIHJlZ2lzdGVyZWQsIGFuZCBhcyBhIHJlc3VsdCBvZiB0aGlzIGl0IHdpbGwgYmUgcmVtZW1iZXJlZCBldmVuIGFmdGVyCisgICAgdGhlIHN0YWNrIGlzIHBvcHBlZC48L2xpPgorPGxpPkF0IHRoZSBlbmQgb2YgdGhlIDxjb2RlPiZsdDtmb3J3YXJkJmd0OzwvY29kZT4gZWxlbWVudCwgdGhlIHRvcCBlbGVtZW50CisgICAgKGkuZS4gdGhlIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlKSB3aWxsIGJlIHBvcHBlZCBvZmYgdGhlCisgICAgc3RhY2suPC9saT4KKzwvdWw+CisKKzxwPkxhdGVyIG9uLCB0aGUgZGlnZXN0ZXIgaXMgYWN0dWFsbHkgZXhlY3V0ZWQgYXMgZm9sbG93czo8L3A+Cis8cHJlPgorICAgIElucHV0U3RyZWFtIGlucHV0ID0KKyAgICAgIGdldFNlcnZsZXRDb250ZXh0KCkuZ2V0UmVzb3VyY2VBc1N0cmVhbShjb25maWcpOworICAgIC4uLgorICAgIHRyeSB7CisgICAgICAgIGRpZ2VzdGVyLnBhcnNlKGlucHV0KTsKKyAgICAgICAgaW5wdXQuY2xvc2UoKTsKKyAgICB9IGNhdGNoIChTQVhFeGNlcHRpb24gZSkgeworICAgICAgICAuLi4gZGVhbCB3aXRoIHRoZSBwcm9ibGVtIC4uLgorICAgIH0KKzwvcHJlPgorCis8cD5BcyBhIHJlc3VsdCBvZiB0aGUgY2FsbCB0byA8Y29kZT5wYXJzZSgpPC9jb2RlPiwgYWxsIG9mIHRoZSBjb25maWd1cmF0aW9uCitpbmZvcm1hdGlvbiB0aGF0IHdhcyBkZWZpbmVkIGluIHRoZSA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4gZmlsZSBpcworbm93IHJlcHJlc2VudGVkIGFzIGNvbGxlY3Rpb25zIG9mIG9iamVjdHMgY2FjaGVkIHdpdGhpbiB0aGUgU3RydXRzIGNvbnRyb2xsZXIKK3NlcnZsZXQsIGFzIHdlbGwgYXMgYmVpbmcgZXhwb3NlZCBhcyBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcy48L3A+CisKKzxoNT5QYXJzaW5nIEJvZHkgVGV4dCBJbiBYTUwgRmlsZXM8L2g1PgorCis8cD5UaGUgRGlnZXN0ZXIgbW9kdWxlIGFsc28gYWxsb3dzIHlvdSB0byBwcm9jZXNzIHRoZSBuZXN0ZWQgYm9keSB0ZXh0IGluIGFuCitYTUwgZmlsZSwgbm90IGp1c3QgdGhlIGVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzIHRoYXQgYXJlIGVuY291bnRlcmVkLiAgVGhlCitmb2xsb3dpbmcgZXhhbXBsZSBpcyBiYXNlZCBvbiBhbiBhc3N1bWVkIG5lZWQgdG8gcGFyc2UgdGhlIHdlYiBhcHBsaWNhdGlvbgorZGVwbG95bWVudCBkZXNjcmlwdG9yICg8Y29kZT4vV0VCLUlORi93ZWIueG1sPC9jb2RlPikgZm9yIHRoZSBjdXJyZW50IHdlYgorYXBwbGljYXRpb24sIGFuZCByZWNvcmQgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gZm9yIGEgcGFydGljdWxhcgorc2VydmxldC4gIFRvIHJlY29yZCB0aGlzIGluZm9ybWF0aW9uLCBhc3N1bWUgdGhlIGV4aXN0ZW5jZSBvZiBhIGJlYW4gY2xhc3MKK3dpdGggdGhlIGZvbGxvd2luZyBtZXRob2Qgc2lnbmF0dXJlcyAoYW1vbmcgb3RoZXJzKTo8L3A+Cis8cHJlPgorICBwYWNrYWdlIGNvbS5teWNvbXBhbnk7CisgIHB1YmxpYyBjbGFzcyBTZXJ2bGV0QmVhbiB7CisgICAgcHVibGljIHZvaWQgc2V0U2VydmxldE5hbWUoU3RyaW5nIHNlcnZsZXROYW1lKTsKKyAgICBwdWJsaWMgdm9pZCBzZXRTZXJ2bGV0Q2xhc3MoU3RyaW5nIHNlcnZsZXRDbGFzcyk7CisgICAgcHVibGljIHZvaWQgYWRkSW5pdFBhcmFtKFN0cmluZyBuYW1lLCBTdHJpbmcgdmFsdWUpOworICB9Cis8L3ByZT4KKworPHA+V2UgYXJlIGdvaW5nIHRvIHByb2Nlc3MgdGhlIDxjb2RlPndlYi54bWw8L2NvZGU+IGZpbGUgdGhhdCBkZWNsYXJlcyB0aGUKK2NvbnRyb2xsZXIgc2VydmxldCBpbiBhIHR5cGljYWwgU3RydXRzLWJhc2VkIGFwcGxpY2F0aW9uIChhYnJpZGdlZCBmb3IKK2JyZXZpdHkgaW4gdGhpcyBleGFtcGxlKTo8L3A+Cis8cHJlPgorICAmbHQ7d2ViLWFwcCZndDsKKyAgICAuLi4KKyAgICAmbHQ7c2VydmxldCZndDsKKyAgICAgICZsdDtzZXJ2bGV0LW5hbWUmZ3Q7YWN0aW9uJmx0Oy9zZXJ2bGV0LW5hbWUmZ3Q7CisgICAgICAmbHQ7c2VydmxldC1jbGFzcyZndDtvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCZsdDtzZXJ2bGV0LWNsYXNzJmd0OworICAgICAgJmx0O2luaXQtcGFyYW0mZ3Q7CisgICAgICAgICZsdDtwYXJhbS1uYW1lJmd0O2FwcGxpY2F0aW9uJmx0Oy9wYXJhbS1uYW1lJmd0OworICAgICAgICAmbHQ7cGFyYW0tdmFsdWUmZ3Q7b3JnLmFwYWNoZS5zdHJ1dHMuZXhhbXBsZS5BcHBsaWNhdGlvblJlc291cmNlcyZsdDtwYXJhbS12YWx1ZSZndDsKKyAgICAgICZsdDsvaW5pdC1wYXJhbSZndDsKKyAgICAgICZsdDtpbml0LXBhcmFtJmd0OworICAgICAgICAmbHQ7cGFyYW0tbmFtZSZndDtjb25maWcmbHQ7L3BhcmFtLW5hbWUmZ3Q7CisgICAgICAgICZsdDtwYXJhbS12YWx1ZSZndDsvV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbCZsdDtwYXJhbS12YWx1ZSZndDsKKyAgICAgICZsdDsvaW5pdC1wYXJhbSZndDsKKyAgICAmbHQ7L3NlcnZsZXQmZ3Q7CisgICAgLi4uCisgICZsdDsvd2ViLWFwcCZndDsKKzwvcHJlPgorCis8cD5OZXh0LCBsZXRzIGRlZmluZSBzb21lIERpZ2VzdGVyIHByb2Nlc3NpbmcgcnVsZXMgZm9yIHRoaXMgaW5wdXQgZmlsZTo8L3A+Cis8cHJlPgorICBkaWdlc3Rlci5hZGRPYmplY3RDcmVhdGUoIndlYi1hcHAvc2VydmxldCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tLm15Y29tcGFueS5TZXJ2bGV0QmVhbiIpOworICBkaWdlc3Rlci5hZGRDYWxsTWV0aG9kKCJ3ZWItYXBwL3NlcnZsZXQvc2VydmxldC1uYW1lIiwgInNldFNlcnZsZXROYW1lIiwgMCk7CisgIGRpZ2VzdGVyLmFkZENhbGxNZXRob2QoIndlYi1hcHAvc2VydmxldC9zZXJ2bGV0LWNsYXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAic2V0U2VydmxldENsYXNzIiwgMCk7CisgIGRpZ2VzdGVyLmFkZENhbGxNZXRob2QoIndlYi1hcHAvc2VydmxldC9pbml0LXBhcmFtIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiYWRkSW5pdFBhcmFtIiwgMik7CisgIGRpZ2VzdGVyLmFkZENhbGxQYXJhbSgid2ViLWFwcC9zZXJ2bGV0L2luaXQtcGFyYW0vcGFyYW0tbmFtZSIsIDApOworICBkaWdlc3Rlci5hZGRDYWxsUGFyYW0oIndlYi1hcHAvc2VydmxldC9pbml0LXBhcmFtL3BhcmFtLXZhbHVlIiwgMSk7Cis8L3ByZT4KKworPHA+Tm93LCBhcyBlbGVtZW50cyBhcmUgcGFyc2VkLCB0aGUgZm9sbG93aW5nIHByb2Nlc3Npbmcgb2NjdXJzOjwvcD4KKzx1bD4KKzxsaT48ZW0+Jmx0O3NlcnZsZXQmZ3Q7PC9lbT4gLSBBIG5ldyA8Y29kZT5jb20ubXljb21wYW55LlNlcnZsZXRCZWFuPC9jb2RlPgorICAgIG9iamVjdCBpcyBjcmVhdGVkLCBhbmQgcHVzaGVkIG9uIHRvIHRoZSBvYmplY3Qgc3RhY2suPC9saT4KKzxsaT48ZW0+Jmx0O3NlcnZsZXQtbmFtZSZndDs8L2VtPiAtIFRoZSA8Y29kZT5zZXRTZXJ2bGV0TmFtZSgpPC9jb2RlPiBtZXRob2QKKyAgICBvZiB0aGUgdG9wIG9iamVjdCBvbiB0aGUgc3RhY2sgKG91ciA8Y29kZT5TZXJ2bGV0QmVhbjwvY29kZT4pIGlzIGNhbGxlZCwKKyAgICBwYXNzaW5nIHRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyBlbGVtZW50IGFzIGEgc2luZ2xlIHBhcmFtZXRlci48L2xpPgorPGxpPjxlbT4mbHQ7c2VydmxldC1jbGFzcyZndDs8L2VtPiAtIFRoZSA8Y29kZT5zZXRTZXJ2bGV0Q2xhc3MoKTwvY29kZT4gbWV0aG9kCisgICAgb2YgdGhlIHRvcCBvYmplY3Qgb24gdGhlIHN0YWNrIChvdXIgPGNvZGU+U2VydmxldEJlYW48L2NvZGU+KSBpcyBjYWxsZWQsCisgICAgcGFzc2luZyB0aGUgYm9keSBjb250ZW50IG9mIHRoaXMgZWxlbWVudCBhcyBhIHNpbmdsZSBwYXJhbWV0ZXIuPC9saT4KKzxsaT48ZW0+Jmx0O2luaXQtcGFyYW0mZ3Q7PC9lbT4gLSBBIGNhbGwgdG8gdGhlIDxjb2RlPmFkZEluaXRQYXJhbTwvY29kZT4KKyAgICBtZXRob2Qgb2YgdGhlIHRvcCBvYmplY3Qgb24gdGhlIHN0YWNrIChvdXIgPGNvZGU+U2VydmxldEJlYW48L2NvZGU+KSBpcworICAgIHNldCB1cCwgYnV0IGl0IGlzIDxzdHJvbmc+bm90PC9zdHJvbmc+IGNhbGxlZCB5ZXQuICBUaGUgY2FsbCB3aWxsIGJlCisgICAgZXhwZWN0aW5nIHR3byA8Y29kZT5TdHJpbmc8L2NvZGU+IHBhcmFtZXRlcnMsIHdoaWNoIG11c3QgYmUgc2V0IHVwIGJ5CisgICAgc3Vic2VxdWVudCBjYWxsIHBhcmFtZXRlciBydWxlcy48L2xpPgorPGxpPjxlbT4mbHQ7cGFyYW0tbmFtZSZndDs8L2VtPiAtIFRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyBlbGVtZW50IGlzIGFzc2lnbmVkCisgICAgYXMgdGhlIGZpcnN0ICh6ZXJvLXJlbGF0aXZlKSBhcmd1bWVudCB0byB0aGUgY2FsbCB3ZSBhcmUgc2V0dGluZyB1cC48L2xpPgorPGxpPjxlbT4mbHQ7cGFyYW0tdmFsdWUmZ3Q7PC9lbT4gLSBUaGUgYm9keSBjb250ZW50IG9mIHRoaXMgZWxlbWVudCBpcyBhc3NpZ25lZAorICAgIGFzIHRoZSBzZWNvbmQgKHplcm8tcmVsYXRpdmUpIGFyZ3VtZW50IHRvIHRoZSBjYWxsIHdlIGFyZSBzZXR0aW5nIHVwLjwvbGk+Cis8bGk+PGVtPiZsdDsvaW5pdC1wYXJhbSZndDs8L2VtPiAtIFRoZSBjYWxsIHRvIDxjb2RlPmFkZEluaXRQYXJhbSgpPC9jb2RlPgorICAgIHRoYXQgd2UgaGF2ZSBzZXQgdXAgaXMgbm93IGV4ZWN1dGVkLCB3aGljaCB3aWxsIGNhdXNlIGEgbmV3IG5hbWUtdmFsdWUKKyAgICBjb21iaW5hdGlvbiB0byBiZSByZWNvcmRlZCBpbiBvdXIgYmVhbi48L2xpPgorPGxpPjxlbT4mbHQ7aW5pdC1wYXJhbSZndDs8L2VtPiAtIFRoZSBzYW1lIHNldCBvZiBwcm9jZXNzaW5nIHJ1bGVzIGFyZSBmaXJlZAorICAgIGFnYWluLCBjYXVzaW5nIGEgc2Vjb25kIGNhbGwgdG8gPGNvZGU+YWRkSW5pdFBhcmFtKCk8L2NvZGU+IHdpdGggdGhlCisgICAgc2Vjb25kIHBhcmFtZXRlcidzIG5hbWUgYW5kIHZhbHVlLjwvbGk+Cis8bGk+PGVtPiZsdDsvc2VydmxldCZndDs8L2VtPiAtIFRoZSBlbGVtZW50IG9uIHRoZSB0b3Agb2YgdGhlIG9iamVjdCBzdGFjaworICAgICh3aGljaCBzaG91bGQgYmUgdGhlIDxjb2RlPlNlcnZsZXRCZWFuPC9jb2RlPiB3ZSBwdXNoZWQgZWFybGllcikgaXMKKyAgICBwb3BwZWQgb2ZmIHRoZSBvYmplY3Qgc3RhY2suPC9saT4KKzwvdWw+Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9wYWNrYWdlLXRyZWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyZTBiZjQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9wYWNrYWdlLXRyZWUuaHRtbApAQCAtMCwwICsxLDEwNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIgQ2xhc3MgSGllcmFyY2h5Cis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorSGllcmFyY2h5IEZvciBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy10cmVlLmh0bWwiPkFsbCBQYWNrYWdlczwvQT48L0RMPgorPEhSPgorPEgyPgorQ2xhc3MgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLk9iamVjdDxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1J1bGUuaHRtbCI+PEI+UnVsZTwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbE1ldGhvZFJ1bGUuaHRtbCI+PEI+Q2FsbE1ldGhvZFJ1bGU8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL0NhbGxQYXJhbVJ1bGUuaHRtbCI+PEI+Q2FsbFBhcmFtUnVsZTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvT2JqZWN0Q3JlYXRlUnVsZS5odG1sIj48Qj5PYmplY3RDcmVhdGVSdWxlPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXROZXh0UnVsZS5odG1sIj48Qj5TZXROZXh0UnVsZTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydGllc1J1bGUuaHRtbCI+PEI+U2V0UHJvcGVydGllc1J1bGU8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFByb3BlcnR5UnVsZS5odG1sIj48Qj5TZXRQcm9wZXJ0eVJ1bGU8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldFRvcFJ1bGUuaHRtbCI+PEI+U2V0VG9wUnVsZTwvQj48L0E+PC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9EaWdlc3Rlci5odG1sIj48Qj5EaWdlc3RlcjwvQj48L0E+PC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDg4YTEwNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sCkBAIC0wLDAgKzEsNTA5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgQ29va2llVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29va2llVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBDb29raWVUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkNvb2tpZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkNvb2tpZVRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvREw+CisKKzxQPgorRGVmaW5lIGEgc2NyaXB0aW5nIHZhcmlhYmxlIGJhc2VkIG9uIHRoZSB2YWx1ZShzKSBvZiB0aGUgc3BlY2lmaWVkCisgY29va2llIHJlY2VpdmVkIHdpdGggdGhpcyByZXF1ZXN0LgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkNvb2tpZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjaWQiPmlkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjbXVsdGlwbGUiPm11bHRpcGxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBhbiBhcnJheSBvZiBDb29raWVzIGlmIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcyBub24tbnVsbC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgY29va2llIHdob3NlIHZhbHVlIGlzIHRvIGJlIGV4cG9zZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCB2YWx1ZSB0byByZXR1cm4gaWYgbm8gY29va2llIG9mIHRoZSBzcGVjaWZpZWQgbmFtZSBpcyBmb3VuZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5wYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQUdBSU48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI0Nvb2tpZVRhZygpIj5Db29raWVUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjZ2V0SWQoKSI+Z2V0SWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNnZXRNdWx0aXBsZSgpIj5nZXRNdWx0aXBsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNzZXRNdWx0aXBsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TXVsdGlwbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bXVsdGlwbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0VuZFRhZywgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImlkIj48IS0tIC0tPjwvQT48SDM+CitpZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtdWx0aXBsZSI+PCEtLSAtLT48L0E+PEgzPgorbXVsdGlwbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm11bHRpcGxlPC9CPjwvUFJFPgorPERMPgorPEREPlJldHVybiBhbiBhcnJheSBvZiBDb29raWVzIGlmIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcyBub24tbnVsbC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBjb29raWUgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZXhwb3NlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiBubyBjb29raWUgb2YgdGhlIHNwZWNpZmllZCBuYW1lIGlzIGZvdW5kLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJDb29raWVUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorQ29va2llVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Q29va2llVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRJZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRJZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lkKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5zZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNdWx0aXBsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNdWx0aXBsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TXVsdGlwbGU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE11bHRpcGxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNdWx0aXBsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TXVsdGlwbGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttdWx0aXBsZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VmFsdWU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VmFsdWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb29raWVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUZWkuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmNGU3ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUZWkuaHRtbApAQCAtMCwwICsxLDIzNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIENvb2tpZVRlaQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvb2tpZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0ZPTlQ+Cis8QlI+CitDbGFzcyAgQ29va2llVGVpPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbworICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkNvb2tpZVRlaTwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Db29raWVUZWk8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvREw+CisKKzxQPgorSW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPmNvb2tpZTwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPnRhZ0luZm88L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUZWkuaHRtbCNDb29raWVUZWkoKSI+Q29va2llVGVpPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPmdldFZhcmlhYmxlSW5mbzwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFRhZ0luZm8sIGlzVmFsaWQsIHNldFRhZ0luZm88L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29va2llVGVpKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0Nvb2tpZVRlaTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvb2tpZVRlaTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFyaWFibGVJbmZvPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdIDxCPmdldFZhcmlhYmxlSW5mbzwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvUFJFPgorPERMPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0VmFyaWFibGVJbmZvPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvb2tpZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVhZGI4MAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sCkBAIC0wLDAgKzEsNjM3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgRGVmaW5lVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGVmaW5lVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBEZWZpbmVUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkRlZmluZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkRlZmluZVRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvREw+CisKKzxQPgorRGVmaW5lIGEgc2NyaXB0aW5nIHZhcmlhYmxlIGJhc2VkIG9uIHRoZSB2YWx1ZShzKSBvZiB0aGUgc3BlY2lmaWVkCisgYmVhbiBwcm9wZXJ0eS4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5EZWZpbmVUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2lkIj5pZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgYmVhbiBvd25pbmcgdGhlIHByb3BlcnR5IHRvIGJlIGV4cG9zZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYmUgcmV0cmlldmVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNzY29wZSI+c2NvcGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBzcGVjaWZpZWQgYmVhbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjdG9TY29wZSI+dG9TY29wZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRoZSBuZXdseSBkZWZpbmVkIGJlYW4gd2lsbCBiZSBjcmVhdGQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3R5cGUiPnR5cGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIHZhbHVlIHRvIGJlIGV4cG9zZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgKFN0cmluZykgdmFsdWUgdG8gd2hpY2ggdGhlIGRlZmluZWQgYmVhbiB3aWxsIGJlIHNldC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5wYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQUdBSU48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI0RlZmluZVRhZygpIj5EZWZpbmVUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZ2V0SWQoKSI+Z2V0SWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZ2V0VG9TY29wZSgpIj5nZXRUb1Njb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZ2V0VHlwZSgpIj5nZXRUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldFRvU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRvU2NvcGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dG9TY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldFR5cGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvRW5kVGFnLCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iaWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIG93bmluZyB0aGUgcHJvcGVydHkgdG8gYmUgZXhwb3NlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBiZSByZXRyaWV2ZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2NvcGUiPjwhLS0gLS0+PC9BPjxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIHNwZWNpZmllZCBiZWFuLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRvU2NvcGUiPjwhLS0gLS0+PC9BPjxIMz4KK3RvU2NvcGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0aGUgbmV3bHkgZGVmaW5lZCBiZWFuIHdpbGwgYmUgY3JlYXRkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KK3R5cGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIHZhbHVlIHRvIGJlIGV4cG9zZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgKFN0cmluZykgdmFsdWUgdG8gd2hpY2ggdGhlIGRlZmluZWQgYmVhbiB3aWxsIGJlIHNldC48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRGVmaW5lVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0RlZmluZVRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkRlZmluZVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0SWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldElkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldElkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldElkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRJZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SWQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpZCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+c2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2NvcGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFNjb3BlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNjb3BlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUb1Njb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFRvU2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFRvU2NvcGU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFRvU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFRvU2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFRvU2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0b1Njb3BlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VHlwZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRUeXBlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRUeXBlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWx1ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXRyaWV2ZSB0aGUgcmVxdWlyZWQgcHJvcGVydHkgYW5kIGV4cG9zZSBpdCBhcyBhIHNjcmlwdGluZyB2YXJpYWJsZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUZWkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRlaS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGVpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY3YjQ2NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRlaS5odG1sCkBAIC0wLDAgKzEsMjM2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgRGVmaW5lVGVpCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGVmaW5lVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBEZWZpbmVUZWk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uRGVmaW5lVGVpPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkRlZmluZVRlaTwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9ETD4KKworPFA+CitJbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+ZGVmaW5lPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+dGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRlaS5odG1sI0RlZmluZVRlaSgpIj5EZWZpbmVUZWk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+Z2V0VmFyaWFibGVJbmZvPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0VGFnSW5mbywgaXNWYWxpZCwgc2V0VGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJEZWZpbmVUZWkoKSI+PCEtLSAtLT48L0E+PEgzPgorRGVmaW5lVGVpPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RGVmaW5lVGVpPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYXJpYWJsZUluZm88L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW10gPEI+Z2V0VmFyaWFibGVJbmZvPC9CPihqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSZuYnNwO2RhdGEpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXRWYXJpYWJsZUluZm88L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGVmaW5lVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzJiMjc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwKQEAgLTAsMCArMSw1MDkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBIZWFkZXJUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJIZWFkZXJUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgIEhlYWRlclRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSGVhZGVyVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+SGVhZGVyVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitEZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIHZhbHVlKHMpIG9mIHRoZSBzcGVjaWZpZWQKKyBoZWFkZXIgcmVjZWl2ZWQgd2l0aCB0aGlzIHJlcXVlc3QuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSGVhZGVyVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNpZCI+aWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNtdWx0aXBsZSI+bXVsdGlwbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGFuIGFycmF5IG9mIGhlYWRlciB2YWx1ZXMgaWYgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGlzIG5vbi1udWxsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBoZWFkZXIgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZXhwb3NlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiBubyBoZWFkZXIgb2YgdGhlIHNwZWNpZmllZCBuYW1lIGlzIGZvdW5kLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPnBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjSGVhZGVyVGFnKCkiPkhlYWRlclRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZSB0aGUgcmVxdWlyZWQgcHJvcGVydHkgYW5kIGV4cG9zZSBpdCBhcyBhIHNjcmlwdGluZyB2YXJpYWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNnZXRJZCgpIj5nZXRJZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI2dldE11bHRpcGxlKCkiPmdldE11bHRpcGxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI3NldE11bHRpcGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNdWx0aXBsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttdWx0aXBsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvRW5kVGFnLCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iaWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im11bHRpcGxlIj48IS0tIC0tPjwvQT48SDM+CittdWx0aXBsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bXVsdGlwbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGFuIGFycmF5IG9mIGhlYWRlciB2YWx1ZXMgaWYgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGlzIG5vbi1udWxsLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGhlYWRlciB3aG9zZSB2YWx1ZSBpcyB0byBiZSBleHBvc2VkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbHVlIj48IS0tIC0tPjwvQT48SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIG5vIGhlYWRlciBvZiB0aGUgc3BlY2lmaWVkIG5hbWUgaXMgZm91bmQuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkhlYWRlclRhZygpIj48IS0tIC0tPjwvQT48SDM+CitIZWFkZXJUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5IZWFkZXJUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldElkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRJZDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldElkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnNldElkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE11bHRpcGxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE11bHRpcGxlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNdWx0aXBsZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TXVsdGlwbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE11bHRpcGxlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRNdWx0aXBsZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO211bHRpcGxlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWx1ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXRyaWV2ZSB0aGUgcmVxdWlyZWQgcHJvcGVydHkgYW5kIGV4cG9zZSBpdCBhcyBhIHNjcmlwdGluZyB2YXJpYWJsZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUZWkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkhlYWRlclRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGVpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRjZTdmMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sCkBAIC0wLDAgKzEsMjM2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgSGVhZGVyVGVpCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkhlYWRlclRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0ZPTlQ+Cis8QlI+CitDbGFzcyAgSGVhZGVyVGVpPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbworICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkhlYWRlclRlaTwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5IZWFkZXJUZWk8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvREw+CisKKzxQPgorSW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPmhlYWRlcjwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPnRhZ0luZm88L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUZWkuaHRtbCNIZWFkZXJUZWkoKSI+SGVhZGVyVGVpPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPmdldFZhcmlhYmxlSW5mbzwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFRhZ0luZm8sIGlzVmFsaWQsIHNldFRhZ0luZm88L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iSGVhZGVyVGVpKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0hlYWRlclRlaTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkhlYWRlclRlaTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFyaWFibGVJbmZvPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdIDxCPmdldFZhcmlhYmxlSW5mbzwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvUFJFPgorPERMPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0VmFyaWFibGVJbmZvPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJIZWFkZXJUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ0NWRmZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbApAQCAtMCwwICsxLDY1MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEluY2x1ZGVUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW5jbHVkZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0ZPTlQ+Cis8QlI+CitDbGFzcyAgSW5jbHVkZVRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSW5jbHVkZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkluY2x1ZGVUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK0RlZmluZSB0aGUgY29udGVudHMgb2YgYSBzcGVjaWZpZWQgaW50cmEtYXBwbGljYXRpb24gcmVxdWVzdCBhcyBhCisgcGFnZSBzY29wZSBhdHRyaWJ1dGUgb2YgdHlwZSA8Y29kZT5qYXZhLmxhbmcuU3RyaW5nPC9jb2RlPi4gIElmIHRoZQorIGN1cnJlbnQgcmVxdWVzdCBpcyBwYXJ0IG9mIGEgc2Vzc2lvbiwgdGhlIHNlc3Npb24gaWRlbnRpZmllciB3aWxsIGJlCisgaW5jbHVkZWQgaW4gdGhlIGdlbmVyYXRlZCByZXF1ZXN0LCBzbyBpdCB3aWxsIGJlIHBhcnQgb2YgdGhlIHNhbWUKKyBzZXNzaW9uLgorIDxwPgorIDxzdHJvbmc+RklYTUU8L3N0cm9uZz46ICBJbiBhIHNlcnZsZXQgMi4zIGVudmlyb25tZW50LCB3ZSBjYW4gdXNlIGEKKyB3cmFwcGVkIHJlc3BvbnNlIHBhc3NlZCB0byBSZXF1ZXN0RGlzcGF0Y2hlci5pbmNsdWRlKCkuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSW5jbHVkZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2FuY2hvciI+YW5jaG9yPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhbmNob3IgdG8gYmUgYWRkZWQgdG8gdGhlIGVuZCBvZiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluay48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjQlVGRkVSX1NJWkUiPkJVRkZFUl9TSVpFPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0J1ZmZlciBzaXplIHRvIHVzZSB3aGVuIHJlYWRpbmcgdGhlIGlucHV0IHN0cmVhbS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2ZvcndhcmQiPmZvcndhcmQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGdsb2JhbCA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiB0aGF0IGNvbnRhaW5zIGEKKyBwYXRoIHRvIG91ciByZXF1ZXN0ZWQgcmVzb3VyY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNocmVmIj5ocmVmPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhYnNvbHV0ZSBVUkwgdG8gdGhlIHJlc291cmNlIHRvIGJlIGluY2x1ZGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjaWQiPmlkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNwYWdlIj5wYWdlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250ZXh0LXJlbGF0aXZlIFVSSSBvZiB0aGUgcGFnZSBvciBzZXJ2bGV0IHRvIGJlIGluY2x1ZGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjdHJhbnNhY3Rpb24iPnRyYW5zYWN0aW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luY2x1ZGUgdHJhbnNhY3Rpb24gdG9rZW4gKGlmIGFueSkgaW4gdGhlIGh5cGVybGluaz88L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5wYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQUdBSU48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNJbmNsdWRlVGFnKCkiPkluY2x1ZGVUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlZmluZSB0aGUgY29udGVudHMgcmV0dXJuZWQgZm9yIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UgYXMgYQorIHBhZ2Ugc2NvcGUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNnZXRBbmNob3IoKSI+Z2V0QW5jaG9yPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2dldEZvcndhcmQoKSI+Z2V0Rm9yd2FyZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNnZXRIcmVmKCkiPmdldEhyZWY8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjZ2V0SWQoKSI+Z2V0SWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjZ2V0UGFnZSgpIj5nZXRQYWdlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2dldFRyYW5zYWN0aW9uKCkiPmdldFRyYW5zYWN0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3NldEFuY2hvcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QW5jaG9yPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FuY2hvcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNzZXRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZvcndhcmQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjc2V0SHJlZihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SHJlZjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtocmVmKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2Ugc2V0UGFnZShTdHJpbmcpIGluc3RlYWQ8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3NldFBhZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldFBhZ2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNzZXRUcmFuc2FjdGlvbihib29sZWFuKSI+c2V0VHJhbnNhY3Rpb248L0E+PC9CPihib29sZWFuJm5ic3A7dHJhbnNhY3Rpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0VuZFRhZywgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkJVRkZFUl9TSVpFIj48IS0tIC0tPjwvQT48SDM+CitCVUZGRVJfU0laRTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgPEI+QlVGRkVSX1NJWkU8L0I+PC9QUkU+Cis8REw+Cis8REQ+QnVmZmVyIHNpemUgdG8gdXNlIHdoZW4gcmVhZGluZyB0aGUgaW5wdXQgc3RyZWFtLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFuY2hvciI+PCEtLSAtLT48L0E+PEgzPgorYW5jaG9yPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5hbmNob3I8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFuY2hvciB0byBiZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvcndhcmQiPjwhLS0gLS0+PC9BPjxIMz4KK2ZvcndhcmQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmZvcndhcmQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGdsb2JhbCA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiB0aGF0IGNvbnRhaW5zIGEKKyBwYXRoIHRvIG91ciByZXF1ZXN0ZWQgcmVzb3VyY2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaHJlZiI+PCEtLSAtLT48L0E+PEgzPgoraHJlZjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aHJlZjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWJzb2x1dGUgVVJMIHRvIHRoZSByZXNvdXJjZSB0byBiZSBpbmNsdWRlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJpZCI+PCEtLSAtLT48L0E+PEgzPgoraWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFnZSI+PCEtLSAtLT48L0E+PEgzPgorcGFnZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGFnZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29udGV4dC1yZWxhdGl2ZSBVUkkgb2YgdGhlIHBhZ2Ugb3Igc2VydmxldCB0byBiZSBpbmNsdWRlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0cmFuc2FjdGlvbiI+PCEtLSAtLT48L0E+PEgzPgordHJhbnNhY3Rpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnRyYW5zYWN0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPkluY2x1ZGUgdHJhbnNhY3Rpb24gdG9rZW4gKGlmIGFueSkgaW4gdGhlIGh5cGVybGluaz88L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iSW5jbHVkZVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitJbmNsdWRlVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+SW5jbHVkZVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0QW5jaG9yKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFuY2hvcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QW5jaG9yPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBbmNob3IoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFuY2hvcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QW5jaG9yPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YW5jaG9yKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Rm9yd2FyZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGb3J3YXJkPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9yd2FyZCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEhyZWYoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SHJlZjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SHJlZjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SHJlZihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SHJlZjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SHJlZjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2hyZWYpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRJZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lkKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5zZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2Ugc2V0UGFnZShTdHJpbmcpIGluc3RlYWQ8L0k+Cis8UD4KKzxERD5EZXByZWNhdGVkIG1ldGhvZCB0byBzZXQgdGhlICJuYW1lIiBhdHRyaWJ1dGUsIHdoaWNoIGhhcyBiZWVuCisgcmVwbGFjZWQgYnkgdGhlICJwYWdlIiBhdHRyaWJ1dGUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFnZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYWdlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYWdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFRyYW5zYWN0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFRyYW5zYWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRUcmFuc2FjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VHJhbnNhY3Rpb24oYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFRyYW5zYWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRUcmFuc2FjdGlvbjwvQj4oYm9vbGVhbiZuYnNwO3RyYW5zYWN0aW9uKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5EZWZpbmUgdGhlIGNvbnRlbnRzIHJldHVybmVkIGZvciB0aGUgc3BlY2lmaWVkIHJlc291cmNlIGFzIGEKKyBwYWdlIHNjb3BlIGF0dHJpYnV0ZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkluY2x1ZGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGVpLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGVpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTY2NmY2MgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbApAQCAtMCwwICsxLDIzNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEluY2x1ZGVUZWkKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkluY2x1ZGVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgIEluY2x1ZGVUZWk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSW5jbHVkZVRlaTwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5JbmNsdWRlVGVpPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0RMPgorCis8UD4KK0ltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5pbmNsdWRlPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+dGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCNJbmNsdWRlVGVpKCkiPkluY2x1ZGVUZWk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPmdldFZhcmlhYmxlSW5mbzwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFRhZ0luZm8sIGlzVmFsaWQsIHNldFRhZ0luZm88L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iSW5jbHVkZVRlaSgpIj48IS0tIC0tPjwvQT48SDM+CitJbmNsdWRlVGVpPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+SW5jbHVkZVRlaTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFyaWFibGVJbmZvPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdIDxCPmdldFZhcmlhYmxlSW5mbzwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvUFJFPgorPERMPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0VmFyaWFibGVJbmZvPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW5jbHVkZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Mjk0MzYzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sCkBAIC0wLDAgKzEsNzExIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgTWVzc2FnZVRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWVzc2FnZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0ZPTlQ+Cis8QlI+CitDbGFzcyAgTWVzc2FnZVRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uTWVzc2FnZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk1lc3NhZ2VUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK0N1c3RvbSB0YWcgdGhhdCByZXRyaWV2ZXMgYW4gaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMgc3RyaW5nICh3aXRoCisgb3B0aW9uYWwgcGFyYW1ldHJpYyByZXBsYWNlbWVudCkgZnJvbSB0aGUgPGNvZGU+QWN0aW9uUmVzb3VyY2VzPC9jb2RlPgorIG9iamVjdCBzdG9yZWQgYXMgYSBjb250ZXh0IGF0dHJpYnV0ZSBieSBvdXIgYXNzb2NpYXRlZAorIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+IGltcGxlbWVudGF0aW9uLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLk1lc3NhZ2VUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNhcmcwIj5hcmcwPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBmaXJzdCBvcHRpb25hbCBhcmd1bWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2FyZzEiPmFyZzE8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNlY29uZCBvcHRpb25hbCBhcmd1bWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2FyZzIiPmFyZzI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHRoaXJkIG9wdGlvbmFsIGFyZ3VtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjYXJnMyI+YXJnMzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZm91cnRoIG9wdGlvbmFsIGFyZ3VtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjYXJnNCI+YXJnNDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZmlmdGggb3B0aW9uYWwgYXJndW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNidW5kbGUiPmJ1bmRsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtqYXZhLnV0aWwuTG9jYWxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWZhdWx0IExvY2FsZSBmb3Igb3VyIHNlcnZlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2tleSI+a2V5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIGtleSBvZiB0aGUgbWVzc2FnZSB0byBiZSByZXRyaWV2ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNsb2NhbGVLZXkiPmxvY2FsZUtleTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2Vzc2lvbiBzY29wZSBrZXkgdW5kZXIgd2hpY2ggb3VyIExvY2FsZSBpcyBzdG9yZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjTWVzc2FnZVRhZygpIj5NZXNzYWdlVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzdGFydCB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2dldEFyZzAoKSI+Z2V0QXJnMDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNnZXRBcmcxKCkiPmdldEFyZzE8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0QXJnMigpIj5nZXRBcmcyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2dldEFyZzMoKSI+Z2V0QXJnMzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNnZXRBcmc0KCkiPmdldEFyZzQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNnZXRLZXkoKSI+Z2V0S2V5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRBcmcwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBcmcwPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FyZzApPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjc2V0QXJnMShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QXJnMTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthcmcxKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldEFyZzIoamF2YS5sYW5nLlN0cmluZykiPnNldEFyZzI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YXJnMik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRBcmczKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBcmczPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FyZzMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjc2V0QXJnNChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QXJnNDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthcmc0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QnVuZGxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEtleTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlS2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZG9FbmRUYWcsIGZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImFyZzAiPjwhLS0gLS0+PC9BPjxIMz4KK2FyZzA8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFyZzA8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZpcnN0IG9wdGlvbmFsIGFyZ3VtZW50LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFyZzEiPjwhLS0gLS0+PC9BPjxIMz4KK2FyZzE8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFyZzE8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlY29uZCBvcHRpb25hbCBhcmd1bWVudC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJhcmcyIj48IS0tIC0tPjwvQT48SDM+CithcmcyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5hcmcyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB0aGlyZCBvcHRpb25hbCBhcmd1bWVudC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJhcmczIj48IS0tIC0tPjwvQT48SDM+CithcmczPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5hcmczPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBmb3VydGggb3B0aW9uYWwgYXJndW1lbnQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYXJnNCI+PCEtLSAtLT48L0E+PEgzPgorYXJnNDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+YXJnNDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZmlmdGggb3B0aW9uYWwgYXJndW1lbnQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYnVuZGxlIj48IS0tIC0tPjwvQT48SDM+CitidW5kbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmJ1bmRsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciByZXNvdXJjZXMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmYXVsdExvY2FsZSI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdExvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBqYXZhLnV0aWwuTG9jYWxlIDxCPmRlZmF1bHRMb2NhbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgTG9jYWxlIGZvciBvdXIgc2VydmVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImtleSI+PCEtLSAtLT48L0E+PEgzPgora2V5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5rZXk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2Uga2V5IG9mIHRoZSBtZXNzYWdlIHRvIGJlIHJldHJpZXZlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2NhbGVLZXkiPjwhLS0gLS0+PC9BPjxIMz4KK2xvY2FsZUtleTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bG9jYWxlS2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXNzaW9uIHNjb3BlIGtleSB1bmRlciB3aGljaCBvdXIgTG9jYWxlIGlzIHN0b3JlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNZXNzYWdlVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK01lc3NhZ2VUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NZXNzYWdlVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRBcmcwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFyZzA8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFyZzA8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEFyZzAoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFyZzA8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEFyZzA8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthcmcwKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QXJnMSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBcmcxPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBcmcxPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBcmcxKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRBcmcxPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBcmcxPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YXJnMSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFyZzIoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QXJnMjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QXJnMjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QXJnMihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QXJnMjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QXJnMjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FyZzIpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBcmczKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFyZzM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFyZzM8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEFyZzMoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFyZzM8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEFyZzM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthcmczKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QXJnNCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBcmc0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBcmc0PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBcmc0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRBcmc0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBcmc0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YXJnNCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEJ1bmRsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRCdW5kbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEJ1bmRsZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRCdW5kbGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEJ1bmRsZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEtleSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRLZXk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEtleTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0S2V5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRLZXk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEtleTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExvY2FsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMb2NhbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldExvY2FsZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRMb2NhbGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldExvY2FsZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsZUtleSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgdGFnLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFjNGNjYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbApAQCAtMCwwICsxLDQxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFBhZ2VUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBhZ2VUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgIFBhZ2VUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlBhZ2VUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5QYWdlVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitEZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCBleHBvc2VzIHRoZSByZXF1ZXN0ZWQgcGFnZSBjb250ZXh0CisgaXRlbSBhcyBhIHNjcmlwdGluZyB2YXJpYWJsZSBhbmQgYSBwYWdlIHNjb3BlIGJlYW4uCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFnZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI2lkIj5pZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBwYWdlIGNvbnRleHQgcHJvcGVydHkgdG8gYmUgcmV0cmlldmVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPnBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI1BhZ2VUYWcoKSI+UGFnZVRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmUgdGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGFuZCBleHBvc2UgaXQgYXMgYQorIHNjcmlwdGluZyB2YXJpYWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjZ2V0SWQoKSI+Z2V0SWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPnNldElkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvRW5kVGFnLCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iaWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHBhZ2UgY29udGV4dCBwcm9wZXJ0eSB0byBiZSByZXRyaWV2ZWQuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlBhZ2VUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorUGFnZVRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlBhZ2VUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldElkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRJZDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldElkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnNldElkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXRyaWV2ZSB0aGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiBvYmplY3QgYW5kIGV4cG9zZSBpdCBhcyBhCisgc2NyaXB0aW5nIHZhcmlhYmxlLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQYWdlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRlaS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlYjU5NDIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGVpLmh0bWwKQEAgLTAsMCArMSwyMzYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBQYWdlVGVpCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBhZ2VUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgIFBhZ2VUZWk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFnZVRlaTwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5QYWdlVGVpPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0RMPgorCis8UD4KK0ltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5wYWdlPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+dGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUZWkuaHRtbCNQYWdlVGVpKCkiPlBhZ2VUZWk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPmdldFZhcmlhYmxlSW5mbzwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFRhZ0luZm8sIGlzVmFsaWQsIHNldFRhZ0luZm88L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUGFnZVRlaSgpIj48IS0tIC0tPjwvQT48SDM+CitQYWdlVGVpPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UGFnZVRlaTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFyaWFibGVJbmZvPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdIDxCPmdldFZhcmlhYmxlSW5mbzwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvUFJFPgorPERMPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0VmFyaWFibGVJbmZvPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQYWdlVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTg1YjYwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwKQEAgLTAsMCArMSw1MTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBQYXJhbWV0ZXJUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUGFyYW1ldGVyVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBQYXJhbWV0ZXJUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlBhcmFtZXRlclRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlBhcmFtZXRlclRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvREw+CisKKzxQPgorRGVmaW5lIGEgc2NyaXB0aW5nIHZhcmlhYmxlIGJhc2VkIG9uIHRoZSB2YWx1ZShzKSBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHJlY2VpdmVkIHdpdGggdGhpcyByZXF1ZXN0LgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlBhcmFtZXRlclRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjaWQiPmlkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjbXVsdGlwbGUiPm11bHRpcGxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBhbiBhcnJheSBvZiBwYXJhbWV0ZXIgdmFsdWVzIGlmIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcworIG5vbi1udWxsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZXhwb3NlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiBubyBwYXJhbWV0ZXIgb2YgdGhlIHNwZWNpZmllZCBuYW1lIGlzCisgZm91bmQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+cGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNQYXJhbWV0ZXJUYWcoKSI+UGFyYW1ldGVyVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlIHRoZSByZXF1aXJlZCBwcm9wZXJ0eSBhbmQgZXhwb3NlIGl0IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI2dldElkKCkiPmdldElkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjZ2V0TXVsdGlwbGUoKSI+Z2V0TXVsdGlwbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPnNldElkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjc2V0TXVsdGlwbGUoamF2YS5sYW5nLlN0cmluZykiPnNldE11bHRpcGxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO211bHRpcGxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZG9FbmRUYWcsIGZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJpZCI+PCEtLSAtLT48L0E+PEgzPgoraWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibXVsdGlwbGUiPjwhLS0gLS0+PC9BPjxIMz4KK211bHRpcGxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5tdWx0aXBsZTwvQj48L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gYW4gYXJyYXkgb2YgcGFyYW1ldGVyIHZhbHVlcyBpZiA8Y29kZT5tdWx0aXBsZTwvY29kZT4gaXMKKyBub24tbnVsbC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZXhwb3NlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiBubyBwYXJhbWV0ZXIgb2YgdGhlIHNwZWNpZmllZCBuYW1lIGlzCisgZm91bmQuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlBhcmFtZXRlclRhZygpIj48IS0tIC0tPjwvQT48SDM+CitQYXJhbWV0ZXJUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5QYXJhbWV0ZXJUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldElkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRJZDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldElkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnNldElkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE11bHRpcGxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE11bHRpcGxlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNdWx0aXBsZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TXVsdGlwbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE11bHRpcGxlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRNdWx0aXBsZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO211bHRpcGxlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWx1ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXRyaWV2ZSB0aGUgcmVxdWlyZWQgcHJvcGVydHkgYW5kIGV4cG9zZSBpdCBhcyBhIHNjcmlwdGluZyB2YXJpYWJsZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQYXJhbWV0ZXJUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUZWkuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjNTUzNzUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUZWkuaHRtbApAQCAtMCwwICsxLDIzNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFBhcmFtZXRlclRlaQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUGFyYW1ldGVyVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBQYXJhbWV0ZXJUZWk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFyYW1ldGVyVGVpPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlBhcmFtZXRlclRlaTwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9ETD4KKworPFA+CitJbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+cGFyYW1ldGVyPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+dGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRlaS5odG1sI1BhcmFtZXRlclRlaSgpIj5QYXJhbWV0ZXJUZWk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+Z2V0VmFyaWFibGVJbmZvPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0VGFnSW5mbywgaXNWYWxpZCwgc2V0VGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJQYXJhbWV0ZXJUZWkoKSI+PCEtLSAtLT48L0E+PEgzPgorUGFyYW1ldGVyVGVpPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UGFyYW1ldGVyVGVpPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYXJpYWJsZUluZm88L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW10gPEI+Z2V0VmFyaWFibGVJbmZvPC9CPihqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSZuYnNwO2RhdGEpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXRWYXJpYWJsZUluZm88L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQYXJhbWV0ZXJUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWUyODBjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbApAQCAtMCwwICsxLDQ3NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFJlc291cmNlVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXNvdXJjZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0ZPTlQ+Cis8QlI+CitDbGFzcyAgUmVzb3VyY2VUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlJlc291cmNlVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UmVzb3VyY2VUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK0RlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSBiYXNlZCBvbiB0aGUgY29udGVudHMgb2YgdGhlIHNwZWNpZmllZAorIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZS4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5SZXNvdXJjZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI0JVRkZFUl9TSVpFIj5CVUZGRVJfU0laRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtCdWZmZXIgc2l6ZSB0byB1c2Ugd2hlbiByZWFkaW5nIHRoZSBpbnB1dCBzdHJlYW0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjaWQiPmlkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI2lucHV0Ij5pbnB1dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYW4gSW5wdXRTdHJlYW0gdG8gdGhlIHNwZWNpZmllZCByZXNvdXJjZSBpZiB0aGlzIGlzIG5vbi1udWxsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIHdob3NlIGNvbnRlbnRzIGFyZSB0byBiZSBleHBvc2VkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPnBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNSZXNvdXJjZVRhZygpIj5SZXNvdXJjZVRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlIHRoZSByZXF1aXJlZCBwcm9wZXJ0eSBhbmQgZXhwb3NlIGl0IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjZ2V0SWQoKSI+Z2V0SWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI2dldElucHV0KCkiPmdldElucHV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI3NldElucHV0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRJbnB1dDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpbnB1dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZG9FbmRUYWcsIGZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJCVUZGRVJfU0laRSI+PCEtLSAtLT48L0E+PEgzPgorQlVGRkVSX1NJWkU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IDxCPkJVRkZFUl9TSVpFPC9CPjwvUFJFPgorPERMPgorPEREPkJ1ZmZlciBzaXplIHRvIHVzZSB3aGVuIHJlYWRpbmcgdGhlIGlucHV0IHN0cmVhbS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJpZCI+PCEtLSAtLT48L0E+PEgzPgoraWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlucHV0Ij48IS0tIC0tPjwvQT48SDM+CitpbnB1dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aW5wdXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGFuIElucHV0U3RyZWFtIHRvIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UgaWYgdGhpcyBpcyBub24tbnVsbC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIHdob3NlIGNvbnRlbnRzIGFyZSB0byBiZSBleHBvc2VkLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJSZXNvdXJjZVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitSZXNvdXJjZVRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJlc291cmNlVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRJZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRJZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lkKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5zZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJbnB1dCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJbnB1dDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SW5wdXQ8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldElucHV0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRJbnB1dDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SW5wdXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpbnB1dCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHJpZXZlIHRoZSByZXF1aXJlZCBwcm9wZXJ0eSBhbmQgZXhwb3NlIGl0IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXNvdXJjZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmYjViMmUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRlaS5odG1sCkBAIC0wLDAgKzEsMjM2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgUmVzb3VyY2VUZWkKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXNvdXJjZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0ZPTlQ+Cis8QlI+CitDbGFzcyAgUmVzb3VyY2VUZWk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUmVzb3VyY2VUZWk8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UmVzb3VyY2VUZWk8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvREw+CisKKzxQPgorSW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPnJlc291cmNlPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+dGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwjUmVzb3VyY2VUZWkoKSI+UmVzb3VyY2VUZWk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUZWkuaHRtbCNnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj5nZXRWYXJpYWJsZUluZm88L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSZuYnNwO2RhdGEpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRUYWdJbmZvLCBpc1ZhbGlkLCBzZXRUYWdJbmZvPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlJlc291cmNlVGVpKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1Jlc291cmNlVGVpPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UmVzb3VyY2VUZWk8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhcmlhYmxlSW5mbzwvSDM+Cis8UFJFPgorcHVibGljIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5WYXJpYWJsZUluZm9bXSA8Qj5nZXRWYXJpYWJsZUluZm88L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldFZhcmlhYmxlSW5mbzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXNvdXJjZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjQ3MDVjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sCkBAIC0wLDAgKzEsNTU3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgU2l6ZVRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlNpemVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgIFNpemVUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlNpemVUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5TaXplVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitEZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGNvbnRhaW4gdGhlIG51bWJlciBvZiBlbGVtZW50cworIGZvdW5kIGluIGEgc3BlY2lmaWVkIGFycmF5LCBDb2xsZWN0aW9uLCBvciBNYXAuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU2l6ZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2NvbGxlY3Rpb24iPmNvbGxlY3Rpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGFjdHVhbCBjb2xsZWN0aW9uIHRvIGJlIGNvdW50ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNpZCI+aWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGJlYW4gb3duaW5nIHRoZSBwcm9wZXJ0eSB0byBiZSBjb3VudGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBiZSByZXRyaWV2ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNzY29wZSI+c2NvcGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBzcGVjaWZpZWQgYmVhbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5wYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQUdBSU48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNTaXplVGFnKCkiPlNpemVUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlIHRoZSByZXF1aXJlZCBwcm9wZXJ0eSBhbmQgZXhwb3NlIGl0IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNnZXRDb2xsZWN0aW9uKCkiPmdldENvbGxlY3Rpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjZ2V0SWQoKSI+Z2V0SWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3NldENvbGxlY3Rpb24oamF2YS5sYW5nLk9iamVjdCkiPnNldENvbGxlY3Rpb248L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7Y29sbGVjdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0VuZFRhZywgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbGxlY3Rpb24iPjwhLS0gLS0+PC9BPjxIMz4KK2NvbGxlY3Rpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuT2JqZWN0IDxCPmNvbGxlY3Rpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFjdHVhbCBjb2xsZWN0aW9uIHRvIGJlIGNvdW50ZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gb3duaW5nIHRoZSBwcm9wZXJ0eSB0byBiZSBjb3VudGVkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIHJldHJpZXZlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzY29wZSI+PCEtLSAtLT48L0E+PEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgc3BlY2lmaWVkIGJlYW4uPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlNpemVUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorU2l6ZVRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlNpemVUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldENvbGxlY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29sbGVjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Z2V0Q29sbGVjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Q29sbGVjdGlvbihqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Q29sbGVjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Q29sbGVjdGlvbjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2NvbGxlY3Rpb24pPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRJZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lkKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5zZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTY29wZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U2NvcGU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUZWkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTaXplVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMTg2N2YKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwKQEAgLTAsMCArMSwyMzYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBTaXplVGVpCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlNpemVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgIFNpemVUZWk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU2l6ZVRlaTwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5TaXplVGVpPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0RMPgorCis8UD4KK0ltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5zaXplPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+dGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUZWkuaHRtbCNTaXplVGVpKCkiPlNpemVUZWk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPmdldFZhcmlhYmxlSW5mbzwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFRhZ0luZm8sIGlzVmFsaWQsIHNldFRhZ0luZm88L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iU2l6ZVRlaSgpIj48IS0tIC0tPjwvQT48SDM+CitTaXplVGVpPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+U2l6ZVRlaTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFyaWFibGVJbmZvPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdIDxCPmdldFZhcmlhYmxlSW5mbzwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvUFJFPgorPERMPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0VmFyaWFibGVJbmZvPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTaXplVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzhjMDAyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwKQEAgLTAsMCArMSw1MTEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBTdHJ1dHNUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU3RydXRzVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBTdHJ1dHNUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlN0cnV0c1RhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlN0cnV0c1RhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvREw+CisKKzxQPgorRGVmaW5lIGEgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgZXhwb3NlcyB0aGUgcmVxdWVzdGVkIFN0cnV0cworIGludGVybmFsIGNvbmZpZ3VyYXRvbiBvYmplY3QuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU3RydXRzVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNmb3JtQmVhbiI+Zm9ybUJlYW48L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbkZvcm1CZWFuPC9jb2RlPiBvYmplY3QgdG8gYmUgZXhwb3NlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjZm9yd2FyZCI+Zm9yd2FyZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gb2JqZWN0IHRvIGJlIGV4cG9zZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2lkIj5pZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjbWFwcGluZyI+bWFwcGluZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gb2JqZWN0IHRvIGJlIGV4cG9zZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPnBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjU3RydXRzVGFnKCkiPlN0cnV0c1RhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZSB0aGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiBvYmplY3QgYW5kIGV4cG9zZSBpdCBhcyBhCisgc2NyaXB0aW5nIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2dldEZvcm1CZWFuKCkiPmdldEZvcm1CZWFuPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjZ2V0Rm9yd2FyZCgpIj5nZXRGb3J3YXJkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjZ2V0SWQoKSI+Z2V0SWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNnZXRNYXBwaW5nKCkiPmdldE1hcHBpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI3NldEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3JtQmVhbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3JtQmVhbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI3NldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcndhcmQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9yd2FyZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI3NldE1hcHBpbmcoamF2YS5sYW5nLlN0cmluZykiPnNldE1hcHBpbmc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvRW5kVGFnLCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iaWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvcm1CZWFuIj48IS0tIC0tPjwvQT48SDM+Citmb3JtQmVhbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Zm9ybUJlYW48L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbkZvcm1CZWFuPC9jb2RlPiBvYmplY3QgdG8gYmUgZXhwb3NlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJmb3J3YXJkIj48IS0tIC0tPjwvQT48SDM+Citmb3J3YXJkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5mb3J3YXJkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBvYmplY3QgdG8gYmUgZXhwb3NlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXBwaW5nIj48IS0tIC0tPjwvQT48SDM+CittYXBwaW5nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5tYXBwaW5nPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPiBvYmplY3QgdG8gYmUgZXhwb3NlZC48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iU3RydXRzVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1N0cnV0c1RhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlN0cnV0c1RhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0SWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldElkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldElkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldElkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRJZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SWQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpZCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+c2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Rm9ybUJlYW4oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Rm9ybUJlYW48L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEZvcm1CZWFuPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGb3JtQmVhbihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Rm9ybUJlYW48L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZvcm1CZWFuPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9ybUJlYW4pPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGb3J3YXJkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEZvcndhcmQ8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZvcndhcmQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3J3YXJkKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWFwcGluZygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNYXBwaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNYXBwaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNYXBwaW5nKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNYXBwaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRNYXBwaW5nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWFwcGluZyk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGFuZCBleHBvc2UgaXQgYXMgYQorIHNjcmlwdGluZyB2YXJpYWJsZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdHJ1dHNUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUZWkuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjOTExMzQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUZWkuaHRtbApAQCAtMCwwICsxLDIzNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFN0cnV0c1RlaQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU3RydXRzVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzICBTdHJ1dHNUZWk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU3RydXRzVGVpPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlN0cnV0c1RlaTwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9ETD4KKworPFA+CitJbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+c3RydXRzPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+dGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sI1N0cnV0c1RlaSgpIj5TdHJ1dHNUZWk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+Z2V0VmFyaWFibGVJbmZvPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0VGFnSW5mbywgaXNWYWxpZCwgc2V0VGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJTdHJ1dHNUZWkoKSI+PCEtLSAtLT48L0E+PEgzPgorU3RydXRzVGVpPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+U3RydXRzVGVpPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYXJpYWJsZUluZm88L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW10gPEI+Z2V0VmFyaWFibGVJbmZvPC9CPihqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSZuYnNwO2RhdGEpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXRWYXJpYWJsZUluZm88L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdHJ1dHNUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2RiMTUyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbApAQCAtMCwwICsxLDUzNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFdyaXRlVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iV3JpdGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgIFdyaXRlVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5Xcml0ZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPldyaXRlVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitUYWcgdGhhdCByZXRyaWV2ZXMgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sIGNvbnZlcnRzCisgaXQgdG8gYSBTdHJpbmcgcmVwcmVzZW50YXRpb24gKGlmIG5lY2Vzc2FyeSksIGFuZCB3cml0ZXMgaXQgdG8gdGhlIGN1cnJlbnQKKyBvdXRwdXQgc3RyZWFtLCBvcHRpb25hbGx5IGZpbHRlcmluZyBjaGFyYWN0ZXJzIHRoYXQgYXJlIHNlbnNpdGl2ZSBpbiBIVE1MLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLldyaXRlVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2ZpbHRlciI+ZmlsdGVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZpbHRlciB0aGUgcmVuZGVyZWQgb3V0cHV0IGZvciBjaGFyYWN0ZXJzIHRoYXQgYXJlIHNlbnNpdGl2ZSBpbiBIVE1MPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2lnbm9yZSI+aWdub3JlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Nob3VsZCB3ZSBpZ25vcmUgbWlzc2luZyBiZWFucyBhbmQgc2ltcGx5IG91dHB1dCBub3RoaW5nPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmFtZSBvZiB0aGUgYmVhbiB0aGF0IGNvbnRhaW5zIHRoZSBkYXRhIHdlIHdpbGwgYmUgcmVuZGVyaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBiZSBhY2Nlc3NlZCBvbiB0aGUgc3BlY2lmaWVkIGJlYW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2NvcGUiPnNjb3BlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzY29wZSB0byBiZSBzZWFyY2hlZCB0byByZXRyaWV2ZSB0aGUgc3BlY2lmaWVkIGJlYW4uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNXcml0ZVRhZygpIj5Xcml0ZVRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHN0YXJ0IHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldEZpbHRlcigpIj5nZXRGaWx0ZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldElnbm9yZSgpIj5nZXRJZ25vcmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2V0RmlsdGVyKGJvb2xlYW4pIj5zZXRGaWx0ZXI8L0E+PC9CPihib29sZWFuJm5ic3A7ZmlsdGVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNzZXRJZ25vcmUoYm9vbGVhbikiPnNldElnbm9yZTwvQT48L0I+KGJvb2xlYW4mbmJzcDtpZ25vcmUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0VuZFRhZywgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZmlsdGVyIj48IS0tIC0tPjwvQT48SDM+CitmaWx0ZXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmZpbHRlcjwvQj48L1BSRT4KKzxETD4KKzxERD5GaWx0ZXIgdGhlIHJlbmRlcmVkIG91dHB1dCBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBzZW5zaXRpdmUgaW4gSFRNTD88L0RMPgorPEhSPgorCis8QSBOQU1FPSJpZ25vcmUiPjwhLS0gLS0+PC9BPjxIMz4KK2lnbm9yZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+aWdub3JlPC9CPjwvUFJFPgorPERMPgorPEREPlNob3VsZCB3ZSBpZ25vcmUgbWlzc2luZyBiZWFucyBhbmQgc2ltcGx5IG91dHB1dCBub3RoaW5nPzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+TmFtZSBvZiB0aGUgYmVhbiB0aGF0IGNvbnRhaW5zIHRoZSBkYXRhIHdlIHdpbGwgYmUgcmVuZGVyaW5nLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+TmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYmUgYWNjZXNzZWQgb24gdGhlIHNwZWNpZmllZCBiZWFuLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNjb3BlIj48IS0tIC0tPjwvQT48SDM+CitzY29wZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIHRvIGJlIHNlYXJjaGVkIHRvIHJldHJpZXZlIHRoZSBzcGVjaWZpZWQgYmVhbi48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iV3JpdGVUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorV3JpdGVUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Xcml0ZVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0RmlsdGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZpbHRlcjwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0RmlsdGVyPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGaWx0ZXIoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZpbHRlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RmlsdGVyPC9CPihib29sZWFuJm5ic3A7ZmlsdGVyKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SWdub3JlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElnbm9yZTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0SWdub3JlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJZ25vcmUoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElnbm9yZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SWdub3JlPC9CPihib29sZWFuJm5ic3A7aWdub3JlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2NvcGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFNjb3BlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNjb3BlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IHRhZy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUZWkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IldyaXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiY2ZhMWUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbgorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0E+PC9GT05UPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorQ2xhc3NlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9IkNvb2tpZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvb2tpZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkNvb2tpZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvb2tpZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9IkRlZmluZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRlZmluZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkRlZmluZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRlZmluZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9IkhlYWRlclRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkhlYWRlclRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkhlYWRlclRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkhlYWRlclRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9IkluY2x1ZGVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JbmNsdWRlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iSW5jbHVkZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkluY2x1ZGVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJNZXNzYWdlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TWVzc2FnZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlBhZ2VUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QYWdlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iUGFnZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlBhZ2VUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJQYXJhbWV0ZXJUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QYXJhbWV0ZXJUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJQYXJhbWV0ZXJUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QYXJhbWV0ZXJUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJSZXNvdXJjZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlc291cmNlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iUmVzb3VyY2VUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZXNvdXJjZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9IlNpemVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TaXplVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iU2l6ZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlNpemVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJTdHJ1dHNUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TdHJ1dHNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJTdHJ1dHNUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TdHJ1dHNUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJXcml0ZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPldyaXRlVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9wYWNrYWdlLXN1bW1hcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmI5NzRlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwKQEAgLTAsMCArMSw2NzggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4KKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbgorPC9IMj4KK1RoZSAic3RydXRzLWJlYW4iIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIEpTUCBjdXN0b20gdGFncyB1c2VmdWwgaW4gZGVmaW5pbmcgbmV3CitiZWFucyAoaW4gYW55IGRlc2lyZWQgc2NvcGUpIGZyb20gYSB2YXJpZXR5IG9mIHBvc3NpYmxlIHNvdXJjZXMsIGFzIHdlbGwgYXMgYQordGFnIHRvIHJlbmRlciBhIHBhcnRpY3VsYXIgYmVhbiAob3IgYmVhbiBwcm9wZXJ0eSkgdG8gdGhlIG91dHB1dCByZXNwb25zZS4KKzxQPgorPEI+U2VlOiA8L0I+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8QSBIUkVGPSIjcGFja2FnZV9kZXNjcmlwdGlvbiI+PEI+RGVzY3JpcHRpb248L0I+PC9BPgorPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQ29va2llVGFnLmh0bWwiPkNvb2tpZVRhZzwvQT48L0I+PC9URD4KKzxURD5EZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIHZhbHVlKHMpIG9mIHRoZSBzcGVjaWZpZWQKKyBjb29raWUgcmVjZWl2ZWQgd2l0aCB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJDb29raWVUZWkuaHRtbCI+Q29va2llVGVpPC9BPjwvQj48L1REPgorPFREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5jb29raWU8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJEZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPjwvQj48L1REPgorPFREPkRlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSBiYXNlZCBvbiB0aGUgdmFsdWUocykgb2YgdGhlIHNwZWNpZmllZAorIGJlYW4gcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJEZWZpbmVUZWkuaHRtbCI+RGVmaW5lVGVpPC9BPjwvQj48L1REPgorPFREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5kZWZpbmU8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJIZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPjwvQj48L1REPgorPFREPkRlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSBiYXNlZCBvbiB0aGUgdmFsdWUocykgb2YgdGhlIHNwZWNpZmllZAorIGhlYWRlciByZWNlaXZlZCB3aXRoIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkhlYWRlclRlaS5odG1sIj5IZWFkZXJUZWk8L0E+PC9CPjwvVEQ+Cis8VEQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPmhlYWRlcjwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkluY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT48L0I+PC9URD4KKzxURD5EZWZpbmUgdGhlIGNvbnRlbnRzIG9mIGEgc3BlY2lmaWVkIGludHJhLWFwcGxpY2F0aW9uIHJlcXVlc3QgYXMgYQorIHBhZ2Ugc2NvcGUgYXR0cmlidXRlIG9mIHR5cGUgPGNvZGU+amF2YS5sYW5nLlN0cmluZzwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJJbmNsdWRlVGVpLmh0bWwiPkluY2x1ZGVUZWk8L0E+PC9CPjwvVEQ+Cis8VEQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPmluY2x1ZGU8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJNZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+Q3VzdG9tIHRhZyB0aGF0IHJldHJpZXZlcyBhbiBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcyBzdHJpbmcgKHdpdGgKKyBvcHRpb25hbCBwYXJhbWV0cmljIHJlcGxhY2VtZW50KSBmcm9tIHRoZSA8Y29kZT5BY3Rpb25SZXNvdXJjZXM8L2NvZGU+Cisgb2JqZWN0IHN0b3JlZCBhcyBhIGNvbnRleHQgYXR0cmlidXRlIGJ5IG91ciBhc3NvY2lhdGVkCisgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4gaW1wbGVtZW50YXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJQYWdlVGFnLmh0bWwiPlBhZ2VUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RGVmaW5lIGEgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgZXhwb3NlcyB0aGUgcmVxdWVzdGVkIHBhZ2UgY29udGV4dAorIGl0ZW0gYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUgYW5kIGEgcGFnZSBzY29wZSBiZWFuLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUGFnZVRlaS5odG1sIj5QYWdlVGVpPC9BPjwvQj48L1REPgorPFREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5wYWdlPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUGFyYW1ldGVyVGFnLmh0bWwiPlBhcmFtZXRlclRhZzwvQT48L0I+PC9URD4KKzxURD5EZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIHZhbHVlKHMpIG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcmVjZWl2ZWQgd2l0aCB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJQYXJhbWV0ZXJUZWkuaHRtbCI+UGFyYW1ldGVyVGVpPC9BPjwvQj48L1REPgorPFREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5wYXJhbWV0ZXI8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSZXNvdXJjZVRhZy5odG1sIj5SZXNvdXJjZVRhZzwvQT48L0I+PC9URD4KKzxURD5EZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQKKyB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSZXNvdXJjZVRlaS5odG1sIj5SZXNvdXJjZVRlaTwvQT48L0I+PC9URD4KKzxURD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+cmVzb3VyY2U8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJTaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RGVmaW5lIGEgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBjb250YWluIHRoZSBudW1iZXIgb2YgZWxlbWVudHMKKyBmb3VuZCBpbiBhIHNwZWNpZmllZCBhcnJheSwgQ29sbGVjdGlvbiwgb3IgTWFwLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iU2l6ZVRlaS5odG1sIj5TaXplVGVpPC9BPjwvQj48L1REPgorPFREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5zaXplPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iU3RydXRzVGFnLmh0bWwiPlN0cnV0c1RhZzwvQT48L0I+PC9URD4KKzxURD5EZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCBleHBvc2VzIHRoZSByZXF1ZXN0ZWQgU3RydXRzCisgaW50ZXJuYWwgY29uZmlndXJhdG9uIG9iamVjdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlN0cnV0c1RlaS5odG1sIj5TdHJ1dHNUZWk8L0E+PC9CPjwvVEQ+Cis8VEQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPnN0cnV0czwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IldyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPjwvQj48L1REPgorPFREPlRhZyB0aGF0IHJldHJpZXZlcyB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQgYmVhbiwgY29udmVydHMKKyBpdCB0byBhIFN0cmluZyByZXByZXNlbnRhdGlvbiAoaWYgbmVjZXNzYXJ5KSwgYW5kIHdyaXRlcyBpdCB0byB0aGUgY3VycmVudAorIG91dHB1dCBzdHJlYW0sIG9wdGlvbmFsbHkgZmlsdGVyaW5nIGNoYXJhY3RlcnMgdGhhdCBhcmUgc2Vuc2l0aXZlIGluIEhUTUwuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEEgTkFNRT0icGFja2FnZV9kZXNjcmlwdGlvbiI+PCEtLSAtLT48L0E+PEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbiBEZXNjcmlwdGlvbgorPC9IMj4KKworPFA+CitUaGUgInN0cnV0cy1iZWFuIiB0YWcgbGlicmFyeSBjb250YWlucyBKU1AgY3VzdG9tIHRhZ3MgdXNlZnVsIGluIGRlZmluaW5nIG5ldworYmVhbnMgKGluIGFueSBkZXNpcmVkIHNjb3BlKSBmcm9tIGEgdmFyaWV0eSBvZiBwb3NzaWJsZSBzb3VyY2VzLCBhcyB3ZWxsIGFzIGEKK3RhZyB0byByZW5kZXIgYSBwYXJ0aWN1bGFyIGJlYW4gKG9yIGJlYW4gcHJvcGVydHkpIHRvIHRoZSBvdXRwdXQgcmVzcG9uc2UuCis8YnI+PGJyPgorPGEgbmFtZT0iZG9jLkRlc2NyaXB0aW9uIj48L2E+Cis8ZGl2IGFsaWduPSJjZW50ZXIiPgorPGEgaHJlZj0iI2RvYy5JbnRybyI+W0ludHJvZHVjdGlvbl08L2E+Cis8YSBocmVmPSIjZG9jLlByb3BlcnRpZXMiPltCZWFuIFByb3BlcnRpZXNdPC9hPgorPGEgaHJlZj0iI2RvYy5DcmVhdGlvbiI+W0JlYW4gQ3JlYXRpb25dPC9hPgorPGEgaHJlZj0iI2RvYy5PdXRwdXQiPltCZWFuIE91dHB1dF08L2E+Cis8L2Rpdj4KKworPGhyPgorCis8YSBuYW1lPSJkb2MuSW50cm8iPjwvYT4KKzxoMz5JbnRyb2R1Y3Rpb248L2gzPgorCis8cD5NdWNoIG9mIHRoZSBwb3dlciBvZiBKYXZhU2VydmVyIFBhZ2VzIChKU1ApIHRlY2hub2xvZ3kgY29tZXMgZnJvbSB0aGUgc2ltcGxlCithbmQgcG93ZXJmdWwgbWVjaGFuaXNtcyBieSB3aGljaCB0aGUgc2VydmxldCB0aGF0IGlzIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5Citmcm9tIHlvdXIgSlNQIHNvdXJjZSBwYWdlIGNhbiBpbnRlcmFjdCB3aXRoIEphdmFCZWFucyB0aGF0IHJlcHJlc2VudCB0aGUKK2NvbXB1dGF0aW9uYWwgc3RhdGUgb2YgeW91ciBhcHBsaWNhdGlvbi4gIEluIHN0YW5kYXJkIEpTUCBwYWdlcywgdGhlCis8Y29kZT4mbHQ7anNwOnVzZUJlYW4mZ3Q7PC9jb2RlPiB0YWcgaXMgdXNlZCBjcmVhdGUgYSBiZWFuIChpZiBuZWNlc3NhcnkpLAorYXMgd2VsbCBhcyBhICJzY3JpcHRpbmcgdmFyaWFibGUiIHRoYXQgY2FuIGJlIHVzZWQgd2l0aGluIHNjcmlwdGxldHMgdG8gcmVmZXIKK3RvIHRoZXNlIGJlYW5zLjwvcD4KKworPHA+VGhlICJzdHJ1dHMtYmVhbiIgdGFnIGxpYnJhcnkgcHJvdmlkZXMgc3Vic3RhbnRpYWwgZW5oYW5jZW1lbnRzIHRvIHRoZQorYmFzaWMgY2FwYWJpbGl0eSBwcm92aWRlZCBieSA8Y29kZT4mbHQ7anNwOnVzZUJlYW4mZ3Q7PC9jb2RlPiwgYXMgZGlzY3Vzc2VkCitpbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zOjwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjZG9jLlByb3BlcnRpZXMiPkJlYW4gUHJvcGVydGllczwvYT4gLSBFeHRlbmRlZCBzeW50YXggdG8gcmVmZXIgdG8KKyAgICBKYXZhQmVhbiBwcm9wZXJ0aWVzIHdpdGggc2ltcGxlIG5hbWVzIChzYW1lIGFzIHRoZSBzdGFuZGFyZCBKU1AgdGFncworICAgIDxjb2RlPiZsdDtqc3A6Z2V0UHJvcGVydHkmZ3Q7PC9jb2RlPiBhbmQKKyAgICA8Y29kZT4mbHQ7anNwOnNldFByb3BlcnR5Jmd0OzwvY29kZT4pLCBuZXN0ZWQgbmFtZXMgKGEgcHJvcGVydHkgbmFtZWQKKyAgICA8Y29kZT5hZGRyZXNzLmNpdHk8L2NvZGU+IHJldHVybnMgdGhlIHZhbHVlIHJldHJpZXZlZCBieSB0aGUgSmF2YQorICAgIGV4cHJlc3Npb24gPGNvZGU+Z2V0QWRkcmVzcygpLmdldENpdHkoKTwvY29kZT4pLCBhbmQgaW5kZXhlZCBuYW1lcworICAgIChhIHByb3BlcnR5IG5hbWVkIDxjb2RlPmFkZHJlc3NbM108L2NvZGU+IHJldHJpZXZlcyB0aGUgZm91cnRoIGFkZHJlc3MKKyAgICBmcm9tIHRoZSBpbmRleGVkICJhZGRyZXNzIiBwcm9wZXJ0eSBvZiBhIGJlYW4pLjwvbGk+Cis8bGk+PGEgaHJlZj0iI2RvYy5DcmVhdGlvbiI+QmVhbiBDcmVhdGlvbjwvYT4gLSBOZXcgSlNQIGJlYW5zLCBpbiBhbnkgc2NvcGUsCisgICAgY2FuIGJlIGNyZWF0ZWQgZnJvbSBhIHZhcmlldHkgb2Ygb2JqZWN0cyBhbmQgQVBJcyBhc3NvY2lhdGVkIHdpdGggdGhlCisgICAgY3VycmVudCByZXF1ZXN0LCBvciB3aXRoIHRoZSBzZXJ2bGV0IGNvbnRhaW5lciBpbiB3aGljaCB0aGlzIHBhZ2UgaXMKKyAgICBydW5uaW5nLjwvbGk+Cis8bGk+PGEgaHJlZj0iI2RvYy5PdXRwdXQiPkJlYW4gT3V0cHV0PC9hPiAtIFN1cHBvcnRzIHRoZSByZW5kZXJpbmcgb2YgdGV4dHVhbAorICAgIG91dHB1dCBmcm9tIGEgYmVhbiAob3IgYmVhbiBwcm9wZXJ0eSksIHdoaWNoIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlCisgICAgcmVzcG9uc2UgYmVpbmcgY3JlYXRlZCBieSB5b3VyIEpTUCBwYWdlLjwvbGk+Cis8L3VsPgorCis8cD5TZWUgdGhlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1iZWFuLmh0bWwiPkJlYW4gVGFncworUmVmZXJlbmNlPC9hPiBmb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGF2YWlsYWJsZSB0YWdzIGluIHRoaXMKK3RhZyBsaWJyYXJ5LCBhbmQgdGhlIHZhbGlkIGF0dHJpYnV0ZXMgZm9yIGVhY2ggdGFnLjwvcD4KKworCis8YSBuYW1lPSJkb2MuUHJvcGVydGllcyI+PC9hPgorPGgzPkJlYW4gUHJvcGVydGllczwvaDM+CisKKzxoNT5Db21tb24gVGFnIEF0dHJpYnV0ZXM8L2g1PgorCis8cD5UaGUgdGFncyBpbiB0aGUgInN0cnV0cy1iZWFuIiB0YWcgbGlicmFyeSAoYW5kLCBnZW5lcmFsbHksIGluIGFsbCB0YWcKK2xpYnJhcmllcyBpbmNsdWRlZCB3aXRoIHRoZSBTdHJ1dHMgZnJhbWV3b3JrKSBzaGFyZSBhIGNvbW1vbiBzZXQgb2YgdGFnCithdHRyaWJ1dGVzIHRoYXQgaGF2ZSB0aGUgc2FtZSBtZWFuaW5nLCBubyBtYXR0ZXIgd2hhdCB0YWcgdGhleSBhcmUgdXNlZCBvbi4KK1RoZXNlIGNvbW1vbiBhdHRyaWJ1dGVzIGluY2x1ZGU6PC9wPgorPHVsPgorPGxpPjxlbT5pZDwvZW0+IC0gTmFtZXMgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUKKyAgICBjcmVhdGVkIGJ5IHRoaXMgY3VzdG9tIHRhZywgYXMgd2VsbCBhcyB0aGUga2V5IHZhbHVlIHVzZWQgdG8gbG9jYXRlIHRoaXMKKyAgICBiZWFuIGluIHRoZSBzY29wZSBkZWZpbmVkIGJ5IHRoZSA8Y29kZT5zY29wZTwvY29kZT4gYXR0cmlidXRlLjwvbGk+Cis8bGk+PGVtPm5hbWU8L2VtPiAtIERlZmluZXMgdGhlIGtleSB2YWx1ZSBieSB3aGljaCBhbiBleGlzdGluZyBiZWFuIHdpbGwgYmUKKyAgICBsb29rZWQgdXAgaW4gdGhlIHNjb3BlIGRlZmluZWQgYnkgdGhlIDxjb2RlPnNjb3BlPC9jb2RlPiBhdHRyaWJ1dGUKKyAgICAoaWYgYW55KSwgb3IgYnkgc2VhcmNoaW5nIHRocm91Z2ggdGhlIHZhcmlvdXMgc2NvcGVzIGluIHRoZSBzdGFuZGFyZAorICAgIG9yZGVyIChwYWdlLCByZXF1ZXN0LCBzZXNzaW9uLCBhcHBsaWNhdGlvbikuPC9saT4KKzxsaT48ZW0+cHJvcGVydHk8L2VtPiAtIERlZmluZXMgdGhlIG5hbWUgb2YgYSBKYXZhQmVhbnMgcHJvcGVydHksIG9mIHRoZSBKU1AKKyAgICBiZWFuIGlkZW50aWZpZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGFuZCAob3B0aW9uYWwpIDxjb2RlPnNjb3BlPC9jb2RlPgorICAgIGF0dHJpYnV0ZXMsIHdob3NlIHZhbHVlIGlzIHRvIGJlIHVzZWQgYnkgdGhpcyBjdXN0b20gdGFnLiAgSWYgbm90CisgICAgc3BlY2lmaWVkLCB0aGUgYmVhbiBpZGVudGlmaWVkIGJ5IDxjb2RlPm5hbWU8L2NvZGU+IGlzIGl0c2VsZiB1c2VkCisgICAgYXMgdGhlIHZhbHVlIG9mIGludGVyZXN0LiAgU2VlIGJlbG93IGZvciBtb3JlIGRpc2N1c3Npb24gYWJvdXQgaG93IGEKKyAgICBwcm9wZXJ0eSBjYW4gYmUgcmVmZXJlbmNlZC48L2xpPgorPGxpPjxlbT5zY29wZTwvZW0+IC0gSWRlbnRpZmllcyB0aGUgSlNQIHNjb3BlICgicGFnZSIsICJyZXF1ZXN0IiwgInNlc3Npb24iLAorICAgIG9yICJhcHBsaWNhdGlvbiIgd2l0aGluIHdoaWNoIGEgcGFydGljdWxhciBiZWFuIHdpbGwgYmUgc2VhcmNoZWQgZm9yCisgICAgKHVuZGVyIHRoZSBrZXkgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUpIG9yIGNyZWF0ZWQKKyAgICAodW5kZXIgdGhlIGtleSBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPmlkPC9jb2RlPiBhdHRyaWJ1dGUpLiAgSWYgbm90CisgICAgc3BlY2lmaWVkLCBiZWFucyB3aWxsIGdlbmVyYWxseSBiZSBzZWFyY2hlZCBmb3IgaW4gdGhlIG9yZGVyIGxpc3RlZCBhYm92ZSwKKyAgICBvciBjcmVhdGVkIGluIHBhZ2Ugc2NvcGUuPC9saT4KKzwvdWw+CisKKzxhIG5hbWU9ImRvYy5Qcm9wZXJ0aWVzLlJlZmVyZW5jZXMiPjwvYT4KKzxoNT5Qcm9wZXJ0eSBSZWZlcmVuY2VzPC9oNT4KKworPHA+U3RydXRzIHRhZ3MgdGhhdCBzdXBwb3J0IHRoZSA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gdGFnIGdlbmVyYWxseSBhbHNvCityZWNvZ25pemUgYSByaWNoIHN5bnRheCBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZyBwcm9wZXJ0aWVzLiAgVGhlcmUgYXJlIHRocmVlCit0eXBlcyBvZiByZWZlcmVuY2VzIHN1cHBvcnRlZDogIHNpbXBsZSwgbmVzdGVkLCBhbmQgaW5kZXhlZC48L3A+CisKKzxwPjxlbT5TaW1wbGUgUmVmZXJlbmNlczwvZW0+IC0gVGhlc2UgYXJlIGVxdWl2YWxlbnQgdG8gdGhlIHN5bnRheCB5b3UgdXNlIHdpdGgKK3RoZSBzdGFuZGFyZCA8Y29kZT4mbHQ7anNwOmdldFByb3BlcnR5Jmd0OzwvY29kZT4gYW5kCis8Y29kZT4mbHQ7anNwOnNldFByb3BlcnR5Jmd0OzwvY29kZT4gdGFncy4gIEEgcmVmZXJlbmNlIHRvIGEgcHJvcGVydHkgbmFtZWQKKyJmb28iIGlzIGNvbnZlcnRlZCBpbnRvIGEgbWV0aG9kIGNhbGwgdG8gPGNvZGU+Z2V0Rm9vKCk8L2NvZGU+IG9yCis8Y29kZT5zZXRGb28odmFsdWUpPC9jb2RlPiAoYXMgYXBwcm9wcmlhdGUpLCB1c2luZyB0aGUgc3RhbmRhcmQgSmF2YUJlYW5zCitTcGVjaWZpY2F0aW9uIG5hbWluZyBjb252ZW50aW9ucyBmb3IgYmVhbiBwcm9wZXJ0aWVzLiAgU3RydXRzIHVzZXMgdGhlCitzdGFuZGFyZCBKYXZhIGludHJvc3BlY3Rpb24gQVBJcyB0byBpZGVudGlmeSB0aGUgbmFtZXMgb2YgdGhlIGFjdHVhbCBwcm9wZXJ0eQorZ2V0dGVyIGFuZCBzZXR0ZXIgbWV0aG9kcywgc28geW91ciBiZWFucyBjYW4gcHJvdmlkZWQgY3VzdG9taXplZCBtZXRob2QgbmFtZXMKK3Rocm91Z2ggdGhlIHVzZSBvZiBhIDxjb2RlPkJlYW5JbmZvPC9jb2RlPiBjbGFzcy4gIFNlZSB0aGUgSmF2YUJlYW5zCitTcGVjaWZpY2F0aW9uLCBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9qYXZhYmVhbnMvIj4KK2h0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvamF2YWJlYW5zLzwvYT4sIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4KKworPHA+PGVtPk5lc3RlZCBSZWZlcmVuY2VzPC9lbT4gLSBOZXN0ZWQgcmVmZXJlbmNlcyBhcmUgdXNlZCB0byBhY2Nlc3MgYQorcHJvcGVydHkgdGhyb3VnaCBhIGhpZXJhcmNoeSBvZiBwcm9wZXJ0eSBuYW1lcyBzZXBhcmF0ZWQgYnkgcGVyaW9kcyAoIi4iKSwKK3NpbWlsYXIgdG8gdGhlIHdheSB0aGF0IG5lc3RlZCBwcm9wZXJ0aWVzIGFyZSBhY2Nlc3NlZCBpbiBKYXZhU2NyaXB0LiAgRm9yCitleGFtcGxlLCB0aGUgZm9sbG93aW5nIHByb3BlcnR5IHJlZmVyZW5jZSBpbiBhIGdldHRlciAoc3VjaCBhcyB0aGUKKzxjb2RlPiZsdDtiZWFuOmRlZmluZSZndDs8L2NvZGU+IHRhZyBkaXNjdXNzZWQgYmVsb3cpOjwvcD4KKzxwcmU+CisgICAgcHJvcGVydHk9ImZvby5iYXIuYmF6IgorPC9wcmU+Cis8cD5pcyB0cmFuc2xhdGVkIGludG8gdGhlIGVxdWl2YWxlbnQgdGhlIEphdmEgZXhwcmVzc2lvbjo8L3A+Cis8cHJlPgorICAgIGdldEZvbygpLmdldEJhcigpLmdldEJheigpCis8L3ByZT4KKzxwPklmIGEgbmVzdGVkIHJlZmVyZW5jZSBpcyB1c2VkIGluIGEgc2V0dGVyIChzdWNoIGFzIHdoZW4gYW4gaW5wdXQgZm9ybSBpcworcHJvY2Vzc2VkKSwgdGhlIHByb3BlcnR5IHNldHRlciBpcyBjYWxsZWQgb24gdGhlIDxzdHJvbmc+bGFzdDwvc3Ryb25nPiBwcm9wZXJ0eQoraW4gdGhlIGNoYWluLiAgRm9yIHRoZSBhYm92ZSBwcm9wZXJ0eSByZWZlcmVuY2UsIHRoZSBlcXVpdmFsZW50IEphdmEKK2V4cHJlc3Npb24gd291bGQgYmU6PC9wPgorPHByZT4KKyAgICBnZXRGb28oKS5nZXRCYXIoKS5zZXRCYXoodmFsdWUpCis8L3ByZT4KKworPHA+PGVtPkluZGV4ZWQgUmVmZXJlbmNlczwvZW0+IC0gU3Vic2NyaXB0cyBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgaW5kaXZpZHVhbAorZWxlbWVudHMgb2YgcHJvcGVydGllcyB3aG9zZSB2YWx1ZSBpcyBhY3R1YWxseSBhbiBhcnJheSwgb3Igd2hvc2UgdW5kZXJseWluZworSmF2YUJlYW4gb2ZmZXJzIGluZGV4ZWQgZ2V0dGVyIGFuZCBzZXR0ZXIgbWV0aG9kcy4gIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nCitwcm9wZXJ0eSByZWZlcmVuY2UgaW4gYSBnZXR0ZXIgKHN1Y2ggYXMgdGhlIDxjb2RlPiZsdDtiZWFuOmRlZmluZSZndDs8L2NvZGU+Cit0YWcgZGlzY3Vzc2VkIGJlbG93KTo8L3A+Cis8cHJlPgorICAgIHByb3BlcnR5PSJmb29bMl0iCis8L3ByZT4KKzxwPmlzIHRyYW5zbGF0ZWQgaW50byB0aGUgZXF1aXZhbGVudCBvZiB0aGUgSmF2YSBleHByZXNzaW9uOjwvcD4KKzxwcmU+CisgICAgZ2V0Rm9vKDIpOworPC9wcmU+Cis8cD53aGlsZSB0aGUgc2FtZSBwcm9wZXJ0eSByZWZlcmVuY2UgaW4gYSBzZXR0ZXIgd291bGQgY2FsbCB0aGUKK2VxdWl2YWxlbnQgb2Y6PC9wPgorPHByZT4KKyAgICBzZXRGb28oMiwgdmFsdWUpCis8L3ByZT4KKzxwPkFzIHlvdSBjYW4gc2VlIGZyb20gdGhlIGFib3ZlIHRyYW5zbGF0aW9ucywgdGhlIHN1YnNjcmlwdHMgdXNlZCBpbiBpbmRleGVkCityZWZlcmVuY2VzIGFyZSA8c3Ryb25nPnplcm8gcmVsYXRpdmU8L3N0cm9uZz4gKHRoYXQgaXMsIHRoZSBmaXJzdCBlbGVtZW50IGluCithbiBhcnJheSBpcyA8Y29kZT5mb29bMF08L2NvZGU+KSwganVzdCBhcyBpcyB0cnVlIGluIHRoZSBKYXZhIGxhbmd1YWdlLjwvcD4KKworPHA+PGVtPkNvbWJpbmVkIFJlZmVyZW5jZXM8L2VtPiAtIE5lc3RpbmcgYW5kIGluZGV4aW5nIGNhbiBiZSBjb21iaW5lZCBpbgorYXJiaXRyYXJ5IHdheXMsIHNvIHRoYXQgZXhwcmVzc2lvbnMgbGlrZSA8Y29kZT5mb28uYmFyWzBdLmJhelsyXTwvY29kZT4gYXJlCitsZWdhbC4gIFlvdSBtdXN0IGJlIGNhcmVmdWwsIG9mIGNvdXJzZSwgdG8gZW5zdXJlIHRoYXQgdGhlIGFjdHVhbCBiZWFucyBiZWluZworYWNjZXNzZWQgYnkgdGhlc2UgcmVmZXJlbmNlcyBoYXZlIHByb3BlcnRpZXMgb2YgdGhlIGFwcHJvcHJpYXRlIG5hbWVzIGFuZAordHlwZXMuICBPdGhlcndpc2UsIEpTUCBydW50aW1lIGV4Y2VwdGlvbnMgd2lsbCBiZSB0aHJvd24uPC9wPgorCis8cD5TZWUgdGhlIEphdmFEb2NzIGZvcgorPGEgaHJlZj0iLi4vLi4vdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwiPlByb3BlcnR5VXRpbHM8L2E+IGZvciBtb3JlIGRldGFpbGVkCitpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWVjaGFuaXNtcyB0aGF0IFN0cnV0cyB1c2VzIHRvIGFjY2VzcworcHJvcGVydGllcyBpbiBhIGdlbmVyYWwgd2F5LCB0aHJvdWdoIEphdmEgcmVmbGVjdGlvbiBBUElzLjwvcD4KKworPGhyPgorCis8YSBuYW1lPSJkb2MuQ3JlYXRpb24iPjwvYT4KKzxoMz5CZWFuIENyZWF0aW9uPC9oMz4KKworPGg1PkludHJvZHVjdGlvbjwvaDU+CisKKzxwPk5ldyBiZWFucyBjYW4gYmUgY3JlYXRlZCwgYW5kIGludHJvZHVjZWQgaW50byBvbmUgb2YgdGhlIGZvdXIgc3RhbmRhcmQKK0pTUCBzY29wZXMgKHBhZ2UsIHJlcXVlc3QsIHNlc3Npb24sIGFuZCBhcHBsaWNhdGlvbikgdGhyb3VnaCBhIHZhcmlldHkgb2YKK3RlY2huaXF1ZXMuICBUaGUgZm9sbG93aW5nIHN1YnNlY3Rpb25zIGRlc2NyaWJlIHRoZSB1c2Ugb2YgdGhlIGZvbGxvd2luZworYXBwcm9hY2hlczo8L3A+Cis8dWw+Cis8bGk+SmF2YSBDb2RlIGluIEFjdGlvbiBDbGFzc2VzPC9saT4KKzxsaT5KYXZhIENvZGUgaW4gU2NyaXB0bGV0czwvbGk+Cis8bGk+VGhlIFN0YW5kYXJkIDxjb2RlPiZsdDtqc3A6dXNlQmVhbiZndDs8L2NvZGU+IFRhZzwvbGk+Cis8bGk+VGhlIFN0cnV0cyA8Y29kZT4mbHQ7YmVhbjpkZWZpbmUmZ3Q7PC9jb2RlPiBUYWc8L2xpPgorPGxpPk90aGVyIFN0cnV0cyBDb3B5aW5nIFRhZ3M8L2xpPgorPC91bD4KKworPGg1PkphdmEgQ29kZSBpbiBBY3Rpb24gQ2xhc3NlczwvaDU+CisKKzxwPkJlY2F1c2UgdGhlIEpTUCBwYWdlcyBhcmUgY29tcGlsZWQgaW50byBTZXJ2bGV0cywgeW91ciA8Y29kZT5BY3Rpb248L2NvZGU+CitjbGFzc2VzIHRoYXQgYXJlIGludm9rZWQgYnkgdGhlIFN0cnV0cyBjb250cm9sbGVyIHNlcnZsZXQgaGF2ZSBjb252ZW5pZW50CithY2Nlc3MgdG8gdGhyZWUgb2YgdGhlIGZvdXIgc3RhbmRhcmQgSlNQIHNjb3BlcyAocmVxdWVzdCwgc2Vzc2lvbiwgYW5kCithcHBsaWNhdGlvbikuICBJdCBpcyB2ZXJ5IGNvbW1vbiBwcmFjdGljZSBmb3IgdGhlIGJ1c2luZXNzIGxvZ2ljIGNvbnRhaW5lZCBpbgoreW91ciA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzIHRvIGNyZWF0ZSByZXN1bHRzIHRoYXQgYXJlIHN0b3JlZCBpbiByZXF1ZXN0CitvciBzZXNzaW9uIHNjb3BlLCB3aGljaCB3aWxsIGJlIHVzZWQgYnkgYSBKU1AgcGFnZSB5b3UgZm9yd2FyZCBjb250cm9sIHRvIGluCityZW5kZXJpbmcgdGhlIG5leHQgcGFnZSBvZiB0aGUgdXNlciBpbnRlcmZhY2UuPC9wPgorCis8cD48ZW0+UmVxdWVzdCBTY29wZTwvZW0+IC0gVG8gc3RvcmUgYSBiZWFuIGluIHJlcXVlc3Qgc2NvcGUgdW5kZXIgbmFtZSAiY3VzdCIsCit5b3VyIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3Mgd291bGQgZXhlY3V0ZSBjb2RlIHNpbWlsYXIgdG8gdGhpczo8L3A+Cis8cHJlPgorICAgIEN1c3RvbWVyIGN1c3RvbWVyID0gLi4uIGNyZWF0ZSBvciBhY3F1aXJlIGEgY3VzdG9tZXIgcmVmZXJlbmNlIC4uLjsKKyAgICByZXF1ZXN0LnNldEF0dHJpYnV0ZSgiY3VzdCIsIGN1c3RvbWVyKTsKKzwvcHJlPgorCis8cD48ZW0+U2Vzc2lvbiBTY29wZTwvZW0+IC0gVG8gc3RvcmUgYSBiZWFuIGluIHNlc3Npb24gc2NvcGUgdW5kZXIgbmFtZSAidXNlciIKKyhwZXJoYXBzIGluIGEgbG9nb24gYWN0aW9uKSwgeW91ciA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzIHdvdWxkIGV4ZWN1dGUgY29kZQorc2ltaWxhciB0byB0aGlzOjwvcD4KKzxwcmU+CisgICAgVXNlciB1c2VyID0gLi4uIGxvb2sgdXAgdmFsaWQgdXNlciBpbiB0aGUgZGF0YWJhc2UgLi4uOworICAgIEh0dHBTZXNzaW9uIHNlc3Npb24gPSByZXF1ZXN0LmdldFNlc3Npb24oKTsKKyAgICBzZXNzaW9uLnNldEF0dHJpYnV0ZSgidXNlciIsIHVzZXIpOworPC9wcmU+CisKKzxwPjxlbT5BcHBsaWNhdGlvbiBTY29wZTwvZW0+IC0gR2VuZXJhbGx5LCBhcHBsaWNhdGlvbiBzY29wZSBiZWFucyBhcmUKK2luaXRpYWxpemVkIGluIHRoZSA8Y29kZT5pbml0KCk8L2NvZGU+IG1ldGhvZCBvZiBhIHN0YXJ0dXAgc2VydmxldC4gIEhvd2V2ZXIsCitpdCBpcyBsZWdhbCBmb3IgYW4gPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcyB0byBjcmVhdGUgc3VjaCBiZWFucywgaWYgdGhpcyBpcworYXBwcm9wcmlhdGUsIGxpa2UgdGhpczo8L3A+Cis8cHJlPgorICAgIEZvbyBmb28gPSAuLi4gY3JlYXRlIGEgRm9vIC4uLjsKKyAgICBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkuc2V0QXR0cmlidXRlKCJmb28iLCBmb28pOworPC9wcmU+CisKKzxoNT5KYXZhIENvZGUgaW4gU2NyaXB0bGV0czwvaDU+CisKKzxwPldoaWxlIGl0IGlzIG5vdCBhIHJlY29tbWVuZGVkIHByYWN0aWNlIGluIFN0cnV0cy1iYXNlZCBhcHBsaWNhdGlvbnMKKyhiZWNhdXNlIGRldmVsb3BlcnMgd2lsbCBiZSB0ZW1wdGVkIHRvIG1peCBidXNpbmVzcyBsb2dpYyBhbmQgcHJlc2VudGF0aW9uCitsb2dpYyBpbiB0aGVpciBKU1AgcGFnZXMpLCBpdCBpcyBsZWdhbCBmb3Igc2NyaXB0bGV0IGNvZGUgaW4gYSBKU1AgcGFnZSB0bworY3JlYXRlIG5ldyBKYXZhQmVhbnMgZHluYW1pY2FsbHksIGFuZCBhZGQgdGhlbSB0byBhbnkgb2YgdGhlIGZvdXIgcG9zc2libGUKK3Njb3BlcywgYXMgZGVtb25zdHJhdGVkIGluIHRoZSBjb2RlIGV4YW1wbGVzIGJlbG93OjwvcD4KKworPHA+PGVtPlBhZ2UgU2NvcGU8L2VtPiAtIFRvIHN0b3JlIGEgYmVhbiBpbiBwYWdlIHNjb3BlIHVuZGVyIG5hbWUgImZvbyIsCit5b3VyIHNjcmlwdGxldCBtdXN0IGV4ZWN1dGUgY29kZSBsaWtlIHRoaXM6PC9wPgorPHByZT4KKyZsdDslCisgICAgRm9vIGZvbyA9IC4uLiBjcmVhdGUgYSBmb28gLi4uOworICAgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZSgiZm9vIiwgZm9vLCBQYWdlQ29udGV4dC5QQUdFX1NDT1BFKTsKKyUmZ3Q7Cis8L3ByZT4KKworPHA+PGVtPlJlcXVlc3QgU2NvcGU8L2VtPiAtIFRvIHN0b3JlIGEgYmVhbiBpbiByZXF1ZXN0IHNjb3BlIHVuZGVyIG5hbWUgImN1c3QiLAoreW91ciBzY3JpcGxldCBtdXN0IGV4ZWN1dGUgY29kZSBsaWtlIHRoaXM6PC9wPgorPHByZT4KKyZsdDslCisgICAgQ3VzdG9tZXIgY3VzdG9tZXIgPSAuLi4gY3JlYXRlIG9yIGFjcXVpcmUgYSBjdXN0b21lciByZWZlcmVuY2UgLi4uOworICAgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZSgiY3VzdCIsIGN1c3RvbWVyLCBQYWdlQ29udGV4dC5SRVFVRVNUX1NDT1BFKTsKKyUmZ3Q7Cis8L3ByZT4KKworPHA+PGVtPlNlc3Npb24gU2NvcGU8L2VtPiAtIFRvIHN0b3JlIGEgYmVhbiBpbiBzZXNzaW9uIHNjb3BlIHVuZGVyIG5hbWUgInVzZXIiLAorKHBlcmhhcHMgYXMgYSByZXN1bHQgb2YgYSB2YWxpZGF0ZWQgbG9naW4pLCB5b3VyIHNjcmlwbGV0IG11c3QgZXhlY3V0ZSBjb2RlCitsaWtlIHRoaXM6PC9wPgorPHByZT4KKyZsdDslCisgICAgVXNlciB1c2VyID0gLi4uIGxvb2sgdXAgdmFsaWQgdXNlciBpbiB0aGUgZGF0YWJhc2UgLi4uOworICAgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZSgidXNlciIsIHVzZXIsIFBhZ2VDb250ZXh0LlNFU1NJT05fU0NPUEUpOworJSZndDsKKzwvcHJlPgorCis8cD48ZW0+QXBwbGljYXRpb24gU2NvcGU8L2VtPiAtIEdlbmVyYWxseSwgYXBwbGljYXRpb24gc2NvcGUgYmVhbnMgYXJlCitpbml0aWFsaXplZCBpbiB0aGUgPGNvZGU+aW5pdCgpPC9jb2RlPiBtZXRob2Qgb2YgYSBzdGFydHVwIHNlcnZsZXQuICBIb3dldmVyLAorYSBzY3JpcHRsZXQgY2FuIGNyZWF0ZSBzdWNoIGJlYW5zLCBpZiBhcHByb3ByaWF0ZSwgbGlrZSB0aGlzOjwvcD4KKzxwcmU+CismbHQ7JQorICAgIEZvbyBmb28gPSAuLi4gY3JlYXRlIGEgRm9vIC4uLjsKKyAgICBwYWdlQ29udGV4dC5zZXRBdHRyaWJ1dGUoImZvbyIsIGZvbywgUGFnZUNvbnRleHQuQVBQTElDQVRJT05fU0NPUEUpOworJSZndDsKKzwvcHJlPgorCis8cD48c3Ryb25nPk5PVEU8L3N0cm9uZz4gLSBBcyBtZW50aW9uZWQgYWJvdmUsIHVzaW5nIHNjcmlwdGxldHMgaW4geW91ciBKU1AKK3BhZ2VzIGlzIHN0cm9uZ2x5IGRpc2NvdXJhZ2VkIGluIGEgU3RydXRzIGJhc2VkIGFwcGxpY2F0aW9uLCB1bmxlc3MgeW91IGFyZQorZXhlY3V0aW5nIGNvZGUgdGhhdCBpcyA8c3Ryb25nPm9ubHk8L3N0cm9uZz4gcmVsYXRlZCB0byBwcmVzZW50YXRpb24gb2YKK2V4aXN0aW5nIGRhdGEuICBJbiBnZW5lcmFsLCB5b3VyIGFwcGxpY2F0aW9uJ3MgcHJvY2Vzc2luZyBsb2dpYyBzaG91bGQgYmUKK2VuY2Fwc3VsYXRlZCBpbiA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzZXMgKG9yIGluIGJlYW5zIG9yIEVKQnMgY2FsbGVkIGJ5Cit0aG9zZSBjbGFzc2VzKSwgcmF0aGVyIHRoYW4gYmVpbmcgaW50ZXJtaXhlZCBpbiB5b3VyIEpTUCBwYWdlcy48L3A+CisKKzxoNT5UaGUgU3RhbmRhcmQgPGNvZGU+Jmx0O2pzcDp1c2VCZWFuJmd0OzwvY29kZT4gVGFnPC9oNT4KKworPHA+SmF2YVNlcnZlciBQYWdlcyAoSlNQKSBvZmZlcnMgYSBzdGFuZGFyZCB0YWcsCis8Y29kZT4mbHQ7anNwOnVzZUJlYW4mZ3Q7PC9jb2RlPiB0aGF0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5ldyBiZWFuLCBvcgoraW50cm9kdWNlIGEgcmVmZXJlbmNlIHRvIGFuIGV4aXN0aW5nIGJlYW4sIGludG8gYSBKU1AgcGFnZS4gIEJlYW5zIChvciBiZWFuCityZWZlcmVuY2VzKSBpbnRyb2R1Y2VkIHRocm91Z2ggdGhpcyBtZWNoYW5pc20gYXJlIGNvbXBsZXRlbHkgaW50ZXJvcGVyYWJsZQord2l0aCBiZWFucyBjcmVhdGVkIGJ5IGFueSBvZiB0aGUgU3RydXRzIGNyZWF0aW9uIHRlY2huaXF1ZXMgZGVzY3JpYmVkIGluIHRoaXMKK3NlY3Rpb24uPC9wPgorCis8cD5Zb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHVzZSA8Y29kZT4mbHQ7anNwOnVzZUJlYW4mZ3Q7PC9jb2RlPiB0byBpbnRyb2R1Y2UKK2EgcmVmZXJlbmNlIHRvIGFuIGV4aXN0aW5nIGJlYW4sIGlmIHlvdSB3aXNoIHRvIHJlZmVyZW5jZSB0aGF0IGJlYW4gd2l0aCBvdGhlcgorc3RhbmRhcmQgSlNQIHRhZ3MgKHN1Y2ggYXMgPGNvZGU+Jmx0O2pzcDpnZXRQcm9wZXJ0eSZndDs8L2NvZGU+IG9yCis8Y29kZT4mbHQ7anNwOnNldFByb3BlcnR5Jmd0OzwvY29kZT4pLiAgSWYgeW91IG9ubHkgd2lzaCB0byByZWZlcmVuY2Ugc3VjaAorYmVhbnMgd2l0aCBvdGhlciBTdHJ1dHMgdGFncywgdXNlIG9mIDxjb2RlPiZsdDtqc3A6dXNlQmVhbiZndDs8L2NvZGU+IGlzIG5vdAorcmVxdWlyZWQuPC9wPgorCis8cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgPGNvZGU+Jmx0O2pzcDp1c2VCZWFuJmd0OzwvY29kZT4gdGFnLCBzZWUKK3RoZSBKYXZhU2VydmVyIFBhZ2VzIFNwZWNpZmljYXRpb24sIGF2YWlsYWJsZSBhdAorPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9qc3AvZG93bmxvYWQuaHRtbCI+CitodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2pzcC9kb3dubG9hZC5odG1sPC9hPi48L3A+CisKKzxoNT5UaGUgU3RydXRzIDxjb2RlPiZsdDtiZWFuOmRlZmluZSZndDs8L2NvZGU+IFRhZzwvaDU+CisKKzxwPlN0cnV0cyBwcm92aWRlcyBhIHBvd2VyZnVsLCBnZW5lcmFsIHB1cnBvc2UsIHRhZworKDxjb2RlPiZsdDtiZWFuOmRlZmluZSZndDs8L2NvZGU+KSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIG5ldyBiZWFuLAoraW4gYW55IHNjb3BlLCBieSBjb3B5aW5nIGFub3RoZXIgYmVhbiAob3IgdGhlIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBvZgorYW5vdGhlciBiZWFuKS4gIFRoaXMgdGFnIHN1cHBvcnRzIHRoZSAicHJvcGVydHkiIGF0dHJpYnV0ZSwgYW5kIHRoZXJlZm9yZQorYWxsIHRoZSBwb3dlciBvZiBwcm9wZXJ0eSByZWZlcmVuY2VzLCBhcyBkaXNjdXNlZAorPGEgaHJlZj0iI2RvYy5Qcm9wZXJ0aWVzLlJlZmVyZW5jZXMiPmFib3ZlPC9hPi4gIEl0IGNhbiBiZSB1c2VkIGluIGEKK3ZhcmlldHkgb2YgZGlmZmVyZW50IHdheXMsIGRlc2NyaWJlZCBmdXJ0aGVyIGJlbG93LiAgVW5sZXNzIHlvdSBzcGVjaWZ5Cit0aGUgInRvU2NvcGUiIGF0dHJpYnV0ZSwgYWxsIGRlZmluZWQgYmVhbnMgd2lsbCBiZSBjcmVhdGVkIGluIHBhZ2Ugc2NvcGUuPC9wPgorCis8cD48ZW0+SW50cm9kdWNlIEEgU3RyaW5nIENvbnN0YW50PC9lbT4gLSBZb3UgY2FuIGNyZWF0ZSBhIG5ldyBiZWFuIHRoYXQgaGFzCithIGNvbnN0YW50IFN0cmluZyB2YWx1ZSAob3IgdGhlIHJlc3VsdCBvZiBjYWxjdWxhdGluZyBhIHJ1bnRpbWUgZXhwcmVzc2lvbik6Cis8L3A+Cis8cHJlPgorICAgICZsdDtiZWFuOmRlZmluZSBpZD0iZm9vIiB2YWx1ZT0iVGhpcyBpcyBhIG5ldyBTdHJpbmciLyZndDsKKyAgICAmbHQ7YmVhbjpkZWZpbmUgaWQ9ImJhciIgdmFsdWU9JzwlPSAiSGVsbG8sICIgKyB1c2VyLmdldE5hbWUoKSAlPicvJmd0OworICAgICZsdDtiZWFuOmRlZmluZSBpZD0ibGFzdCIgc2NvcGU9InNlc3Npb24iCisgICAgICAgICAgICAgICAgIHZhbHVlPSc8JT0gcmVxdWVzdC5nZXRSZXF1ZXN0VVJJKCkgJT4nLyZndDsKKzwvcHJlPgorCis8cD48ZW0+Q29weSBBbiBFeGlzdGluZyBCZWFuPC9lbT4gLSBZb3UgY2FuIGNyZWF0ZSBhIG5ldyByZWZlcmVuY2UgdG8gYW4KK2V4aXN0aW5nIGJlYW4gb2JqZWN0LiAgWW91IGNhbiBzcGVjaWZ5IHRoZSBKYXZhIGNsYXNzIG9yIGludGVyZmFjZSB0aGUgbmV3CitiZWFuIGlzIGV4cGVjdGVkIHRvIGNvbmZvcm0gdG8gd2l0aCB0aGUgInR5cGUiIGF0dHJpYnV0ZSwgb3IgYWNjZXB0IHRoZQorZGVmYXVsdCB0eXBlIG9mIDxjb2RlPmphdmEubGFuZy5PYmplY3Q8L2NvZGU+ICh0aGlzIG9ubHkgYWZmZWN0cyB0aGUgc2NyaXB0aW5nCit2YXJpYWJsZSB0aGF0IGlzIGV4cG9zZWQgdG8gc2NyaXB0bGV0cywgc28gaXQgaXMgbm90IGdlbmVyYWxseSBtZWFuaW5nZnVsIGluCitTdHJ1dHMtYmFzZWQgYXBwbGljYXRpb25zKS48L3A+Cis8cHJlPgorICAgICZsdDtiZWFuOmRlZmluZSBpZD0iZm9vIiBuYW1lPSJiYXIiLyZndDsKKyAgICAmbHQ7YmVhbjpkZWZpbmUgaWQ9ImJheiIgbmFtZT0iYm9wIiB0eXBlPSJjb20ubXljb21wYW55Lk15Qm9wQ2xhc3MiLyZndDsKKzwvcHJlPgorCis8cD48ZW0+Q29weSBBbiBFeGlzdGluZyBCZWFuIFByb3BlcnR5PC9lbT4gLSBZb3UgY2FuIGNyZWF0ZSBhIG5ldyBiZWFuIHRoYXQKK2lzIGluaXRpYWxpemVkIHRvIHRoZSB2YWx1ZSByZXR1cm5lZCBieSBhIHByb3BlcnR5IGdldHRlci4gIFRoZSB2YWx1ZSBvZiB0aGUKKyJwcm9wZXJ0eSIgYXR0cmlidXRlIGNhbiBiZSBhbnkgc2ltcGxlLCBuZXN0ZWQsIG9yIGluZGV4ZWQgcHJvcGVydHkgcmVmZXJlbmNlCit0aGF0IGZvbGxvd3MgdGhlIHJ1bGVzIGRlc2NyaWJlZCBlYXJsaWVyLiAgSW4gdGhlIGZpcnN0IGV4YW1wbGUgYmVsb3csIHdlCithbHNvIGlsbHVzdHJhdGUgYWNjZXNzaW5nIHRoZSBwcm9wZXJ0eSBvZiBhIHJlcXVlc3Qgc2NvcGUgYmVhbiwgYW5kIGNyZWF0aW5nCit0aGUgbmV3IGJlYW4gaW4gc2Vzc2lvbiBzY29wZSAocmF0aGVyIHRoYW4gdGhlIGRlZmF1bHQgcGFnZSBzY29wZSkuPC9wPgorPHByZT4KKyAgICAmbHQ7YmVhbjpkZWZpbmUgaWQ9ImZvbyIgbmFtZT0iYmFyIiBwcm9wZXJ0eT0iYmF6IiBzY29wZT0icmVxdWVzdCIKKyAgICAgdG9TY29wZT0ic2Vzc2lvbiIvJmd0OworICAgICZsdDtiZWFuOmRlZmluZSBpZD0iYm9wIiBuYW1lPSJ1c2VyIiBwcm9wZXJ0eT0icm9sZVszXS5uYW1lIi8mZ3Q7Cis8L3ByZT4KKworPGg1Pk90aGVyIFN0cnV0cyBDb3B5aW5nIFRhZ3M8L2g1PgorCis8cD5TdHJ1dHMgb2ZmZXJzIGEgdmFyaWV0eSBvZiBiZWFuIGNyZWF0aW9uIHRhZ3MgdGhhdCBjb3B5IGV4aXN0aW5nIGJlYW5zIChvcgorYmVhbiBwcm9wZXJ0aWVzKSBmcm9tIHRoZSBlbnZpcm9ubWVudCB3aXRoaW4gd2hpY2ggdGhpcyBwYWdlIGlzIHJ1bm5pbmcsIGFuZAordGhlIHJlcXVlc3QgdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgcHJvY2Vzc2VkLiAgTm90IGFsbCBvZiB0aGUgYXR0cmlidXRlcworZm9yIGVhY2ggdGFnIGFyZSBpbGx1c3RyYXRlZCBpbiB0aGUgZXhhbXBsZXMgYmVsb3cgLSBzZWUgdGhlCis8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHJ1dHMtYmVhbi5odG1sIj5CZWFuIFRhZ3MgUmVmZXJlbmNlPC9hPiBmb3IKK21vcmUgaW5mb3JtYXRpb24uICBBbnkgYmVhbiBjcmVhdGVkIGJ5IHRoZXNlIHRhZ3MgZXhpc3RzIG9ubHkgaW4gcGFnZQorc2NvcGUsIGZvciB0aGUgcmVtYWluZGVyIG9mIHRoZSBjdXJyZW50IHBhZ2UuPC9wPgorCis8cD48ZW0+Q29weSBBIENvb2tpZTwvZW0+IC0gWW91IGNhbiBjcmVhdGUgYSBuZXcgYmVhbiBjb250YWluaW5nIGEKKzxjb2RlPmphdmF4LnNlcnZsZXQuaHR0cC5Db29raWU8L2NvZGU+IHRoYXQgd2FzIGluY2x1ZGVkIGluIHRoZSBjdXJyZW50CityZXF1ZXN0LiAgSWYgbm8gY29va2llIG9mIHRoZSBzcGVjaWZpZWQgbmFtZSB3YXMgaW5jbHVkZWQsIGEgcmVxdWVzdCB0aW1lCitleHByZXNzaW9uIHdpbGwgYmUgdGhyb3duIC0gdGhlcmVmb3JlLCBpdCBpcyBjb21tb24gdG8gbmVzdCB0aGUgdXNlIG9mIHRoaXMKK3RhZyBpbnNpZGUgYSA8Y29kZT4mbHQ7bG9naWM6cHJlc2VudCBjb29raWU9Inh4eCImZ3Q7PC9jb2RlPiB0YWcgdG8gZW5zdXJlCit0aGF0IHRoZSBjb29raWUgd2FzIHJlYWxseSBpbmNsdWRlZC4gIElmIHRoZXJlIGlzIHRoZSBwb3NzaWJpbGl0eSB0aGF0IG1vcmUKK3RoYW4gb25lIGNvb2tpZSBvZiB0aGUgc2FtZSBuYW1lIHdhcyBpbmNsdWRlZCwgc3BlY2lmeSB0aGUgIm11bHRpcGxlIgorYXR0cmlidXRlIChhbmQgdGhlIHJlc3VsdGluZyBiZWFuIHdpbGwgYmUgYW4gYXJyYXkgb2YgQ29va2llcywgaW5zdGVhZCBvZgorYSBzaW5nbGUgQ29va2llKS48L3A+Cis8cHJlPgorICAgICZsdDtiZWFuOmNvb2tpZSBpZD0iZm9vIiBuYW1lPSJjb29raWVuYW1lIi8mZ3Q7CisgICAgJmx0O2JlYW46Y29va2llIGlkPSJhbGwiIG5hbWU9IkpTRVNTSU9OSUQiIG11bHRpcGxlPSJ0cnVlIi8mZ3Q7Cis8L3ByZT4KKworPHA+PGVtPkNvcHkgQSBSZXF1ZXN0IEhlYWRlcjwvZW0+IC0gWW91IGNhbiBjcmVhdGUgYSBuZXcgYmVhbiBjb250YWluaW5nIHRoZQordmFsdWUgb2YgYW4gSFRUUCBoZWFkZXIgaW5jbHVkZWQgaW4gdGhpcyByZXF1ZXN0LiAgSWYgbm8gaGVhZGVyIG9mIHRoZQorc3BlY2lmaWVkIG5hbWUgd2FzIGluY2x1ZGVkLCBhIHJlcXVlc3QgdGltZSBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gLQordGhlcmVmb3JlLCBpdCBpcyBjb21tb24gdG8gbmVzdCB0aGUgdXNlIG9mIHRoaXMgdGFnIGluc2lkZSBhCis8Y29kZT4mbHQ7bG9naWM6cHJlc2VudCBoZWFkZXI9Inh4eCImZ3Q7PC9jb2RlPiB0YWcgdG8gZW5zdXJlIHRoYXQgdGhlIGhlYWRlcgord2FzIHJlYWxseSBpbmNsdWRlZC4gIElmIHRoZXJlIGlzIHRoZSBwb3NzaWJpbGl0eSB0aGF0IG1vcmUgdGhhbiBvbmUgaGVhZGVyCitvZiB0aGUgc2FtZSBuYW1lIHdhcyBpbmNsdWRlZCwgc3BlY2lmeSB0aGUgIm11bHRpcGxlIiBhdHRyaWJ1dGUgKGFuZCB0aGUKK3Jlc3VsdGluZyB2YWx1ZSBiZWFuIHdpbGwgYmUgYW4gYXJyYXkgb2YgU3RyaW5nIHZhbHVlcywgaW5zdGVhZCBvZiBhCitzaW5nbGUgU3RyaW5nKS48L3A+Cis8cHJlPgorICAgICZsdDtiZWFuOmhlYWRlciBpZD0iYWdlbnQiIG5hbWU9IlVzZXItQWdlbnQiLyZndDsKKyAgICAmbHQ7YmVhbjpoZWFkZXIgaWQ9Imxhbmd1YWdlcyIgbmFtZT0iQWNjZXB0LUxhbmd1YWdlIiBtdWx0aXBsZT0idHJ1ZSIvJmd0OworPC9wcmU+CisKKzxwPjxlbT5Db3B5IEEgRHluYW1pY2FsbHkgQ3JlYXRlZCBSZXNwb25zZTwvZW0+IC0gWW91IGNhbiBnZW5lcmF0ZSBhbiBpbnRlcm5hbAorcmVxdWVzdCB0byB0aGUgYXBwbGljYXRpb24geW91IGFyZSBydW5uaW5nLCBhbmQgdHVybiB0aGUgcmVzcG9uc2UgZGF0YSB0aGF0IGlzCityZXR1cm5lZCBmcm9tIHRoYXQgcmVxdWVzdCBpbnRvIGEgYmVhbiAob2YgdHlwZSBTdHJpbmcpLiAgT25lIHBvc3NpYmxlIHVzZQorZm9yIHRoaXMgdGVjaG5pcXVlIGlzIHRvIGFjcXVpcmUgZHluYW1pY2FsbHkgY3JlYXRlZCBYTUwgZm9ybWF0dGVkIGRhdGEgdGhhdAord2lsbCBiZSBzdG9yZWQgaW4gYSBiZWFuIGFuZCBsYXRlciBtYW5pcHVsYXRlZCAoc3VjaCBhcyBieSBhcHBseWluZyBhbiBYU0xUCitzdHlsZXNoZWV0KS4gIElmIHRoZSBjdXJyZW50IHJlcXVlc3QgaXMgcGFydCBvZiBhIHNlc3Npb24sIHRoZSBnZW5lcmF0ZWQKK3JlcXVlc3QgZm9yIHRoZSBpbmNsdWRlIHdpbGwgYWxzbyBpbmNsdWRlIHRoZSBzZXNzaW9uIGlkZW50aWZpZXIgKGFuZCB0aHVzIGJlCitjb25zaWRlcmVkIHBhcnQgb2YgdGhlIHNhbWUgc2Vzc2lvbikuPC9wPgorPHByZT4KKyAgICAmbHQ7YmVhbjppbmNsdWRlIGlkPSJ0ZXh0IiBuYW1lPSIvZ2VuZXJhdGVYbWw/cGFyYW0xPWEmcGFyYW0yPWIiLyZndDsKKzwvcHJlPgorCis8cD48ZW0+Q29weSBBIEpTUCBJbXBsaWNpdGx5IERlZmluZWQgT2JqZWN0PC9lbT4gLSBZb3UgY2FuIGNyZWF0ZSBhIGJlYW4gdGhhdAoraXMgb25lIG9mIHRoZSBKU1AgaW1wbGljaXRseSBkZWZpbmVkIG9iamVjdHMgKHNlZSB0aGUgSlNQIHNwZWMgZm9yIG1vcmUKK2RldGFpbHMpLiAgVGhpcyBpcyB1c2VmdWwgaWYgeW91IHdpc2ggdG8gcGVyZm9ybSBwcm9wZXJ0eSBnZXR0ZXIgYWN0aW9ucworYWdhaW5zdCB0aGUgaW1wbGljaXQgb2JqZWN0IHdpdGggYSBjdXN0b20gdGFnIGluc3RlYWQgb2YgYSBzY3JpcHRsZXQuPC9wPgorPHByZT4KKyAgICAmbHQ7YmVhbjpwYWdlIGlkPSJhcHAiIHByb3BlcnR5PSJhcHBsaWNhdGlvbiIvPgorICAgICZsdDtiZWFuOnBhZ2UgaWQ9InNlc3MiIHByb3BlcnR5PSJzZXNzaW9uIi8+Cis8L3ByZT4KKworPHA+PGVtPkNvcHkgQSBSZXF1ZXN0IFBhcmFtZXRlcjwvZW0+IC0gWW91IGNhbiBjcmVhdGUgYSBuZXcgYmVhbiBjb250YWluaW5nIHRoZQordmFsdWUgb2YgYSBwYXJhbWV0ZXIgaW5jbHVkZWQgaW4gdGhpcyByZXF1ZXN0LiAgSWYgbm8gcGFyYW1ldGVyIG9mIHRoZQorc3BlY2lmaWVkIG5hbWUgd2FzIGluY2x1ZGVkLCBhIHJlcXVlc3QgdGltZSBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gLQordGhlcmVmb3JlLCBpdCBpcyBjb21tb24gdG8gbmVzdCB0aGUgdXNlIG9mIHRoaXMgdGFnIGluc2lkZSBhCis8Y29kZT4mbHQ7bG9naWM6cHJlc2VudCBwYXJhbWV0ZXI9Inh4eCImZ3Q7PC9jb2RlPiB0YWcgdG8gZW5zdXJlIHRoYXQgdGhlCitwYXJhbWV0ZXIgd2FzIHJlYWxseSBpbmNsdWRlZC4gIElmIHRoZXJlIGlzIHRoZSBwb3NzaWJpbGl0eSB0aGF0IG1vcmUgdGhhbgorb25lIHBhcmFtZXRlciBvZiB0aGUgc2FtZSBuYW1lIHdhcyBpbmNsdWRlZCwgc3BlY2lmeSB0aGUgIm11bHRpcGxlIiBhdHRyaWJ1dGUKKyhhbmQgdGhlIHJlc3VsdGluZyB2YWx1ZSBiZWFuIHdpbGwgYmUgYW4gYXJyYXkgb2YgU3RyaW5nIHZhbHVlcywgaW5zdGVhZCBvZiBhCitzaW5nbGUgU3RyaW5nKS48L3A+Cis8cHJlPgorICAgICZsdDtiZWFuOnBhcmFtZXRlciBpZD0ibmFtZSIgbmFtZT0ibmFtZSIvJmd0OworICAgICZsdDtiZWFuOmhlYWRlciBpZD0ib3B0aW9ucyIgbmFtZT0ib3B0aW9uIiBtdWx0aXBsZT0idHJ1ZSIvJmd0OworPC9wcmU+CisKKzxwPjxlbT5Db3B5IGEgV2ViIEFwcGxpY2F0aW9uIFJlc291cmNlPC9lbT4gLSBZb3UgY2FuIGNyZWF0ZSBhIG5ldyBiZWFuCitjb250YWluaW5nIGVpdGhlciB0aGUgdmFsdWUgb2YgYSB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgYXMgYSBTdHJpbmcsIG9yCithIDxjb2RlPmphdmEuaW8uSW5wdXRTdHJlYW08L2NvZGU+IGZvciByZWFkaW5nIHRoZSBjb250ZW50IG9mIHRoYXQgcmVzb3VyY2UuCitUaGUgcmVzb3VyY2UgaXMgYWNjZXNzZWQgd2l0aCBhIGNvbnRleHQtcmVsYXRpdmUgcGF0aCAoYmVnaW5uaW5nIHdpdGggIi8iKSwKK3VzaW5nIHRoZSA8Y29kZT5TZXJ2bGV0Q29udGV4dC5nZXRSZXNvdXJjZSgpPC9jb2RlPiBvcgorPGNvZGU+U2VydmxldENvbnRleHQuZ2V0UmVzb3VyY2VBc1N0cmVhbSgpPC9jb2RlPiBtZXRob2RzIG9uIHRoZSB1bmRlcmx5aW5nCithcHBsaWNhdGlvbiBvYmplY3QuPC9wPgorPHByZT4KKyAgICAmbHQ7YmVhbjpyZXNvdXJjZSBpZD0iZGVwbG95bWVudCIgbmFtZT0iL1dFQi1JTkYvd2ViLnhtbCIvJmd0OworICAgICZsdDtiZWFuOnJlc291cmNlIGlkPSJzdHJlYW0iIG5hbWU9Ii9XRUItSU5GL3dlYi54bWwiCisgICAgICAgICAgICAgICAgICAgaW5wdXQ9InRydWUiLyZndDsKKzwvcHJlPgorCis8cD48ZW0+Q29weSBBIFN0cnV0cyBDb25maWd1cmF0aW9uIE9iamVjdDwvZW0+IC0gWW91IGNhbiBjcmVhdGUgYSBuZXcgYmVhbgorY29udGFpbmluZyBvbmUgb2YgdGhlIHN0YW5kYXJkIFN0cnV0cyBmcmFtZXdvcmsgY29uZmlndXJhdGlvbiBvYmplY3RzLiAgRG9pbmcKK3RoaXMgZ2l2ZXMgeW91IGFjY2VzcyB0byB0aGUgcHJvcGVydGllcyBvZiB0aGUgY29uZmlndXJhdGlvbiBvYmplY3QsIGlmIG5lZWRlZC4KKzwvcD4KKzxwcmU+CisgICAgJmx0O2JlYW46c3RydXRzIGlkPSJmb3JtIiBmb3JtQmVhbj0iQ3VzdG9tZXJGb3JtIi8mZ3Q7CisgICAgJmx0O2JlYW46c3RydXRzIGlkPSJmd2QiIGZvcndhcmQ9InN1Y2Nlc3MiLyZndDsKKyAgICAmbHQ7YmVhbjpzdHJ1dHMgaWQ9Im1hcCIgbWFwcGluZz0iL3NhdmVDdXN0b21lciIvJmd0OworPC9wcmU+CisKKworPGhyPgorCis8YSBuYW1lPSJkb2MuT3V0cHV0Ij48L2E+Cis8aDM+QmVhbiBPdXRwdXQ8L2gzPgorCis8cD5Ob25lIG9mIHRoZSBTdHJ1dHMgQmVhbiB0YWdzIGRpc2N1c3NlZCBzbyBmYXIgcmVuZGVyIGFueSBvdXRwdXQgdG8gdGhlCityZXNwb25zZSBwYWdlIHRoYXQgaXMgYmVpbmcgZ2VuZXJhdGVkIGZyb20gdGhpcyBKU1AgcGFnZS4gIFRoZXkgYXJlIGV4ZWN1dGVkCitpbiBvcmRlciB0byBtYWtlIHJlbGV2YW50IEphdmEgb2JqZWN0cyB2aXNpYmxlIGFzIGJlYW5zIGZvciBmdXJ0aGVyCittYW5pcHVsYXRpb24uICBUaGUgZm9sbG93aW5nIHRhZ3MgY2F1c2Ugb3V0cHV0IHRvIGJlIHdyaXR0ZW4gdG8gdGhlIHJlc3BvbnNlLAorYW5kIHRoZXJlZm9yZSBtYWRlIHZpc2libGUgdG8gdGhlIHVsdGltYXRlIHJlcXVlc3Rlci48L3A+CisKKzxwPjxlbT5SZW5kZXIgQW4gSW50ZXJuYXRpb25hbGl6ZWQgTWVzc2FnZTwvZW0+IC0gWW91IGNhbiBzcGVjaWZ5IGEgbWVzc2FnZQora2V5ICh3aXRoIG9wdGlvbmFsIHBhcmFtZXRlciByZXBsYWNlbWVudCBvYmplY3RzKSB0aGF0IGFyZSBwYXNzZWQgdG8gYQorPGEgaHJlZj0iLi4vLi4vdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L2E+IG9iamVjdCB0aGF0CityZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIG1lc3NhZ2UgdGV4dC4gIFRoZSBtZXNzYWdlIHRleHQgd2lsbCBiZSBjb3BpZWQgdG8KK3RoZSByZXNwb25zZSBjdXJyZW50bHkgYmVpbmcgY3JlYXRlZC4gIEJ5IGRlZmF1bHQsIG1lc3NhZ2VzIGFyZSBsb29rZWQgdXAgaW4KK3RoZSBhcHBsaWNhdGlvbiByZXNvdXJjZXMgYnVuZGxlIHRoYXQgaXMgaW5pdGlhbGl6ZWQgZm9yIHlvdSAoYXMgYW4KK2FwcGxpY2F0aW9uIHNjb3BlIGJlYW4pIGJ5IHRoZSBTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0LCB1c2luZyB0aGUgTG9jYWxlCittdXN0IHJlY2VudGx5IHN0b3JlZCBpbiB0aGUgdXNlcidzIHNlc3Npb24uICBUaGVzZSBkZWZhdWx0cyBjYW4gYmUgb3ZlcnJpZGRlbgorYnkgc2V0dGluZyB2YWx1ZXMgZm9yIHRoZSAiYnVuZGxlIiBhbmQgImxvY2FsZSIgYXR0cmlidXRlcywgYXMgZGVzY3JpYmVkIGluIHRoZQorPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWJlYW4uaHRtbCNtZXNzYWdlIj5CZWFuIFRhZ3MgUmVmZXJlbmNlPC9hPi4KKzxwcmU+CisgICAgJmx0O2JlYW46bWVzc2FnZSBrZXk9ImxhYmVsLkNhbmNlbCIvJmd0OworICAgICZsdDtiZWFuOm1lc3NhZ2Uga2V5PSJtZXNzYWdlLmhlbGxvIiBhcmcwPSc8JT0gdXNlci5nZXRGdWxsTmFtZSgpICU+Jy8mZ3Q7Cis8L3ByZT4KKworPHA+PGVtPlJlbmRlciBBIEJlYW4gb3IgQmVhbiBQcm9wZXJ0eTwvZW0+IC0gVGhlIGNvbnRlbnRzIG9mIGEgYmVhbiwgb3IgYmVhbgorcHJvcGVydHksIGFyZSBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcgYW5kIHRoZW4gY29waWVkIHRvIHRoZSByZXNwb25zZSBjdXJyZW50bHkKK2JlaW5nIGNyZWF0ZWQuICBUaGlzIHRhZyB1bmRlcnN0YW5kcyB0aGUgc3ludGF4IGZvciBzaW1wbGUsIG5lc3RlZCwgYW5kCitpbmRleGVkIHByb3BlcnR5IHJlZmVyZW5jZXMgZGVzY3JpYmVkIDxhIGhyZWY9IiNkb2MuUHJvcGVydGllcy5SZWZlcmVuY2UiPgorYWJvdmU8L2E+LiAgQmVhbnMgZnJvbSBhbnkgc2NvcGUgY2FuIGJlIHJlcXVlc3RlZCAtIGJ5IGRlZmF1bHQsIHRoZSBzY29wZXMKK2FyZSBzZWFyY2hlZCBpbiBleHBhbmRpbmcgdmlzaWJpbGl0eSBvcmRlciAocGFnZSwgcmVxdWVzdCwgc2Vzc2lvbiwgYW5kCithcHBsaWNhdGlvbikgdG8gbG9jYXRlIHRoZSByZXF1ZXN0ZWQgYmVhbi48L3A+Cis8cHJlPgorICAgICZsdDtiZWFuOndyaXRlIG5hbWU9InVzZXJuYW1lIi8mZ3Q7CisgICAgJmx0O2JlYW46d3JpdGUgbmFtZT0idXNlciIgcHJvcGVydHk9ImZ1bGxOYW1lIi8mZ3Q7CisgICAgJmx0O2JlYW46d3JpdGUgbmFtZT0iY3VzdG9tZXIiIHByb3BlcnR5PSJvcmRlcnNbMl0ucGFydE51bWJlciIKKyAgICAgICAgICAgICAgICBzY29wZT0ic2Vzc2lvbiIvJmd0OworPC9wcmU+Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS10cmVlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9wYWNrYWdlLXRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmI1NTUzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS10cmVlLmh0bWwKQEAgLTAsMCArMSwxMDcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuIENsYXNzIEhpZXJhcmNoeQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+CitIaWVyYXJjaHkgRm9yIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4KKzwvSDI+Cis8L0NFTlRFUj4KKzxETD4KKzxEVD48Qj5QYWNrYWdlIEhpZXJhcmNoaWVzOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXRyZWUuaHRtbCI+QWxsIFBhY2thZ2VzPC9BPjwvREw+Cis8SFI+Cis8SDI+CitDbGFzcyBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuT2JqZWN0PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj48Qj5Db29raWVUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRlaS5odG1sIj48Qj5EZWZpbmVUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sIj48Qj5IZWFkZXJUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCI+PEI+SW5jbHVkZVRlaTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRlaS5odG1sIj48Qj5QYWdlVGVpPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUZWkuaHRtbCI+PEI+UGFyYW1ldGVyVGVpPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRlaS5odG1sIj48Qj5SZXNvdXJjZVRlaTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sIj48Qj5TaXplVGVpPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUZWkuaHRtbCI+PEI+U3RydXRzVGVpPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQgKGltcGxlbWVudHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+PEI+Q29va2llVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+PEI+RGVmaW5lVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+PEI+SGVhZGVyVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPjxCPkluY2x1ZGVUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+PEI+TWVzc2FnZVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sIj48Qj5QYWdlVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+PEI+UGFyYW1ldGVyVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIj48Qj5SZXNvdXJjZVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj48Qj5TaXplVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+PEI+U3RydXRzVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj48Qj5Xcml0ZVRhZzwvQj48L0E+PC9VTD4KKzwvVUw+Cis8L1VMPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+UFJFVjwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdjMWJhOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sCkBAIC0wLDAgKzEsNTM5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgQmFzZUZpZWxkVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJCYXNlRmllbGRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgIEJhc2VGaWVsZFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwiPkZpbGVUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+SGlkZGVuVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUGFzc3dvcmRUYWcuaHRtbCI+UGFzc3dvcmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0VGFnLmh0bWwiPlRleHRUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGFic3RyYWN0IGNsYXNzIDxCPkJhc2VGaWVsZFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvREw+CisKKzxQPgorQ29udmVuaWVuY2UgYmFzZSBjbGFzcyBmb3IgdGhlIHZhcmlvdXMgaW5wdXQgdGFncyBmb3IgdGV4dCBmaWVsZHMuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNhY2NlcHQiPmFjY2VwdDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21tYS1kZWxpbWl0ZWQgbGlzdCBvZiBjb250ZW50IHR5cGVzIHRoYXQgYSBzZXJ2ZXIgcHJvY2Vzc2luZyB0aGlzIGZvcm0KKyB3aWxsIGhhbmRsZSBjb3JyZWN0bHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjcmVkaXNwbGF5Ij5yZWRpc3BsYXk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlICJyZWRpc3BsYXkgY29udGVudHMiIGZsYWcgKHVzZWQgb25seSBvbiA8Y29kZT5wYXNzd29yZDwvY29kZT4pLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCN0eXBlIj50eXBlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB0eXBlIG9mIGlucHV0IGZpZWxkIHJlcHJlc2VudGVkIGJ5IHRoaXMgdGFnICh0ZXh0LCBwYXNzd29yZCwgb3IKKyBoaWRkZW4pLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNjb2xzIj5jb2xzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWF4bGVuZ3RoIj5tYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNyb3dzIj5yb3dzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGlzYWJsZWQiPmRpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmJsdXIiPm9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25jaGFuZ2UiPm9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNsaWNrIj5vbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmRibGNsaWNrIj5vbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmZvY3VzIj5vbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleWRvd24iPm9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlwcmVzcyI+b25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXl1cCI+b25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZWRvd24iPm9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlbW92ZSI+b25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdXQiPm9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdmVyIj5vbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZXVwIj5vbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uc2VsZWN0Ij5vbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVhZG9ubHkiPnJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZSI+c3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlQ2xhc3MiPnN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlSWQiPnN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGl0bGUiPnRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9CVUZGRVJFRCwgRVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjQmFzZUZpZWxkVGFnKCkiPkJhc2VGaWVsZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmF0ZSB0aGUgcmVxdWlyZWQgaW5wdXQgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2dldEFjY2VwdCgpIj5nZXRBY2NlcHQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXRSZWRpc3BsYXkoKSI+Z2V0UmVkaXNwbGF5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldEFjY2VwdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXB0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FjY2VwdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldFJlZGlzcGxheShib29sZWFuKSI+c2V0UmVkaXNwbGF5PC9BPjwvQj4oYm9vbGVhbiZuYnNwO3JlZGlzcGxheSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0Q29scygpIj5nZXRDb2xzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0TWF4bGVuZ3RoKCkiPmdldE1heGxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0Um93cygpIj5nZXRSb3dzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0U2l6ZSgpIj5nZXRTaXplPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRDb2xzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb2xzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0TWF4bGVuZ3RoKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRSb3dzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb3dzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0U2l6ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2l6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+Z2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmJsdXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImFjY2VwdCI+PCEtLSAtLT48L0E+PEgzPgorYWNjZXB0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5hY2NlcHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tbWEtZGVsaW1pdGVkIGxpc3Qgb2YgY29udGVudCB0eXBlcyB0aGF0IGEgc2VydmVyIHByb2Nlc3NpbmcgdGhpcyBmb3JtCisgd2lsbCBoYW5kbGUgY29ycmVjdGx5LiAgVGhpcyBwcm9wZXJ0eSBpcyBkZWZpbmVkIG9ubHkgZm9yIHRoZQorIDxjb2RlPmZpbGU8L2NvZGU+IHRhZywgYnV0IGlzIGltcGxlbWVudGVkIGhlcmUgYmVjYXVzZSBpdCBhZmZlY3RzIHRoZQorIHJlbmRlcmVkIEhUTUwgb2YgdGhlIGNvcnJlc3BvbmRpbmcgJmx0O2lucHV0Jmd0OyB0YWcuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlZGlzcGxheSI+PCEtLSAtLT48L0E+PEgzPgorcmVkaXNwbGF5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5yZWRpc3BsYXk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlICJyZWRpc3BsYXkgY29udGVudHMiIGZsYWcgKHVzZWQgb25seSBvbiA8Y29kZT5wYXNzd29yZDwvY29kZT4pLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KK3R5cGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHR5cGUgb2YgaW5wdXQgZmllbGQgcmVwcmVzZW50ZWQgYnkgdGhpcyB0YWcgKHRleHQsIHBhc3N3b3JkLCBvcgorIGhpZGRlbikuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkJhc2VGaWVsZFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitCYXNlRmllbGRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5CYXNlRmllbGRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEFjY2VwdCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBY2NlcHQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFjY2VwdDwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QWNjZXB0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRBY2NlcHQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEFjY2VwdDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FjY2VwdCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZWRpc3BsYXkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVkaXNwbGF5PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRSZWRpc3BsYXk8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFJlZGlzcGxheShib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UmVkaXNwbGF5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRSZWRpc3BsYXk8L0I+KGJvb2xlYW4mbmJzcDtyZWRpc3BsYXkpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkdlbmVyYXRlIHRoZSByZXF1aXJlZCBpbnB1dCB0YWcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQmFzZUZpZWxkVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU4YTBjYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwKQEAgLTAsMCArMSwxNTA3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgQmFzZUhhbmRsZXJUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJCYXNlSGFuZGxlclRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgQmFzZUhhbmRsZXJUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGFic3RyYWN0IGNsYXNzIDxCPkJhc2VIYW5kbGVyVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvREw+CisKKzxQPgorQmFzZSBjbGFzcyBmb3IgdGFncyB0aGF0IHJlbmRlciBmb3JtIGVsZW1lbnRzIGNhcGFibGUgb2YgaW5jbHVkaW5nIEphdmFTY3JpcHQKKyBldmVudCBoYW5kbGVycyBhbmQvb3IgQ1NTIFN0eWxlIGF0dHJpYnV0ZXMuIFRoaXMgY2xhc3MgZG9lcyBub3QgaW1wbGVtZW50CisgdGhlIGRvU3RhcnRUYWcoKSBvciBkb0VuZFRhZygpIG1ldGhvZHMuIFN1YmNsYXNzZXMgc2hvdWxkIHByb3ZpZGUKKyBhcHByb3ByaWF0ZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlc2UuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+RG9uIENsYXNlbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWNjZXNzIGtleSBjaGFyYWN0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2Rpc2FibGVkIj5kaXNhYmxlZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wb25lbnQgaXMgZGlzYWJsZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uYmx1ciI+b25ibHVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBvbmVudCBsb3N0IGZvY3VzIGV2ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNoYW5nZSI+b25jaGFuZ2U8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udGVudCBjaGFuZ2VkIGFmdGVyIGNvbXBvbmVudCBsb3N0IGZvY3VzIGV2ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNsaWNrIj5vbmNsaWNrPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01vdXNlIGNsaWNrIGV2ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmRibGNsaWNrIj5vbmRibGNsaWNrPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01vdXNlIGRvdWJsZSBjbGljayBldmVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25mb2N1cyI+b25mb2N1czwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wb25lbnQgaGFzIHJlY2VpdmVkIGZvY3VzIGV2ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleWRvd24iPm9ua2V5ZG93bjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtLZXkgZG93biBpbiBjb21wb25lbnQgZXZlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5cHJlc3MiPm9ua2V5cHJlc3M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7S2V5IGRvd24gYW5kIHVwIHRvZ2V0aGVyIGluIGNvbXBvbmVudCBldmVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXl1cCI+b25rZXl1cDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtLZXkgcmVsZWFzZWQgaW4gY29tcG9uZW50IGV2ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlZG93biI+b25tb3VzZWRvd248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TW91c2UgcHJlc3NlZCBvbiBjb21wb25lbnQgZXZlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2Vtb3ZlIj5vbm1vdXNlbW92ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNb3VzZSBtb3ZlZCBvdmVyIGNvbXBvbmVudCBldmVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW91dCI+b25tb3VzZW91dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNb3VzZSBleGl0IGNvbXBvbmVudCBldmVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW92ZXIiPm9ubW91c2VvdmVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01vdXNlIG92ZXIgY29tcG9uZW50IGV2ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNldXAiPm9ubW91c2V1cDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNb3VzZSByZWxlYXNlZCBvbiBjb21wb25lbnQgZXZlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uc2VsZWN0Ij5vbnNlbGVjdDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUZXh0IHNlbGVjdGVkIGluIGNvbXBvbmVudCBldmVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVhZG9ubHkiPnJlYWRvbmx5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBvbmVudCBpcyByZWFkb25seS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGUiPnN0eWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1N0eWxlIGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHdpdGggY29tcG9uZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUNsYXNzIj5zdHlsZUNsYXNzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05hbWVkIFN0eWxlIGNsYXNzIGFzc29jaWF0ZWQgd2l0aCBjb21wb25lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlSWQiPnN0eWxlSWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SWRlbnRpZmllciBhc3NvY2lhdGVkIHdpdGggY29tcG9uZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUYWIgaW5kZXggdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RpdGxlIj50aXRsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYWR2aXNvcnkgdGl0bGUgb2YgdGhpcyBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0JVRkZFUkVELCBFVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI0Jhc2VIYW5kbGVyVGFnKCkiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBhY2Nlc3NLZXkgY2hhcmFjdGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBkaXNhYmxlZCBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIG9uQmx1ciBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBvbkNoYW5nZSBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jbGljaygpIj5nZXRPbmNsaWNrPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgb25DbGljayBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgb25EYmxDbGljayBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgb25Gb2N1cyBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlkb3duKCkiPmdldE9ua2V5ZG93bjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIG9uS2V5RG93biBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlwcmVzcygpIj5nZXRPbmtleXByZXNzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgb25LZXlQcmVzcyBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgb25LZXlVcCBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBvbk1vdXNlRG93biBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBvbk1vdXNlTW92ZSBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW91dCgpIj5nZXRPbm1vdXNlb3V0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgb25Nb3VzZU91dCBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBvbk1vdXNlT3ZlciBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZXVwKCkiPmdldE9ubW91c2V1cDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIG9uTW91c2VVcCBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25zZWxlY3QoKSI+Z2V0T25zZWxlY3Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBvblNlbGVjdCBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSByZWFkb25seSBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBzdHlsZSBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBzdHlsZSBjbGFzcyBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUlkKCkiPmdldFN0eWxlSWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBzdHlsZSBpZCBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIHRhYkluZGV4IHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBhZHZpc29yeSB0aXRsZSBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmVwYXJlcyB0aGUgZXZlbnQgaGFuZGxlcnMgZm9yIGluY2x1c2lvbiBpbiB0aGUgY29tcG9uZW50J3MgSFRNTCB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO2hhbmRsZXJzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJlcGFyZXMgdGhlIGZvY3VzIGV2ZW50IGhhbmRsZXJzLCBhcHBlbmRpbmcgdGhlbSB0byB0aGUgdGhlIGdpdmVuCisgU3RyaW5nQnVmZmVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlS2V5RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlS2V5RXZlbnRzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO2hhbmRsZXJzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJlcGFyZXMgdGhlIGtleWJvYXJkIGV2ZW50IGhhbmRsZXJzLCBhcHBlbmRpbmcgdGhlbSB0byB0aGUgdGhlIGdpdmVuCisgU3RyaW5nQnVmZmVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlTW91c2VFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVNb3VzZUV2ZW50czwvQT48L0I+KGphdmEubGFuZy5TdHJpbmdCdWZmZXImbmJzcDtoYW5kbGVycyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByZXBhcmVzIHRoZSBtb3VzZSBldmVudCBoYW5kbGVycywgYXBwZW5kaW5nIHRoZW0gdG8gdGhlIHRoZSBnaXZlbgorIFN0cmluZ0J1ZmZlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmVwYXJlcyB0aGUgc3R5bGUgYXR0cmlidXRlcyBmb3IgaW5jbHVzaW9uIGluIHRoZSBjb21wb25lbnQncyBIVE1MIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO2hhbmRsZXJzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJlcGFyZXMgdGhlIHRleHQgZXZlbnQgaGFuZGxlcnMsIGFwcGVuZGluZyB0aGVtIHRvIHRoZSB0aGUgZ2l2ZW4KKyBTdHJpbmdCdWZmZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY2Nlc3NLZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBhY2Nlc3NLZXkgY2hhcmFjdGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPjwvQj4oYm9vbGVhbiZuYnNwO2Rpc2FibGVkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgZGlzYWJsZWQgZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uQmx1cik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIG9uQmx1ciBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uQ2hhbmdlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgb25DaGFuZ2UgZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25DbGljayk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIG9uQ2xpY2sgZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25EYmxDbGljayk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIG9uRGJsQ2xpY2sgZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25Gb2N1cyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIG9uRm9jdXMgZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uS2V5RG93bik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIG9uS2V5RG93biBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvbktleVByZXNzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgb25LZXlQcmVzcyBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvbktleVVwKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgb25LZXlVcCBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uTW91c2VEb3duKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgb25Nb3VzZURvd24gZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvbk1vdXNlTW92ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIG9uTW91c2VNb3ZlIGV2ZW50IGhhbmRsZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uTW91c2VPdXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBvbk1vdXNlT3V0IGV2ZW50IGhhbmRsZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25Nb3VzZU92ZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBvbk1vdXNlT3ZlciBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25Nb3VzZVVwKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgb25Nb3VzZVVwIGV2ZW50IGhhbmRsZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25TZWxlY3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBvblNlbGVjdCBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPjwvQj4oYm9vbGVhbiZuYnNwO3JlYWRvbmx5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgcmVhZG9ubHkgZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHlsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHN0eWxlIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGVDbGFzcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHN0eWxlIGNsYXNzIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGVJZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHN0eWxlIGlkIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0YWJJbmRleCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHRhYkluZGV4IHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RpdGxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgYWR2aXNvcnkgdGl0bGUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZG9FbmRUYWcsIGRvSW5pdEJvZHksIGRvU3RhcnRUYWcsIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWNjZXNza2V5Ij48IS0tIC0tPjwvQT48SDM+CithY2Nlc3NrZXk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFjY2Vzc2tleTwvQj48L1BSRT4KKzxETD4KKzxERD5BY2Nlc3Mga2V5IGNoYXJhY3Rlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0YWJpbmRleCI+PCEtLSAtLT48L0E+PEgzPgordGFiaW5kZXg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRhYmluZGV4PC9CPjwvUFJFPgorPERMPgorPEREPlRhYiBpbmRleCB2YWx1ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJvbmNsaWNrIj48IS0tIC0tPjwvQT48SDM+CitvbmNsaWNrPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25jbGljazwvQj48L1BSRT4KKzxETD4KKzxERD5Nb3VzZSBjbGljayBldmVudC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJvbmRibGNsaWNrIj48IS0tIC0tPjwvQT48SDM+CitvbmRibGNsaWNrPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25kYmxjbGljazwvQj48L1BSRT4KKzxETD4KKzxERD5Nb3VzZSBkb3VibGUgY2xpY2sgZXZlbnQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib25tb3VzZW92ZXIiPjwhLS0gLS0+PC9BPjxIMz4KK29ubW91c2VvdmVyPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25tb3VzZW92ZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2Ugb3ZlciBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib25tb3VzZW91dCI+PCEtLSAtLT48L0E+PEgzPgorb25tb3VzZW91dDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9ubW91c2VvdXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2UgZXhpdCBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib25tb3VzZW1vdmUiPjwhLS0gLS0+PC9BPjxIMz4KK29ubW91c2Vtb3ZlPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25tb3VzZW1vdmU8L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2UgbW92ZWQgb3ZlciBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib25tb3VzZWRvd24iPjwhLS0gLS0+PC9BPjxIMz4KK29ubW91c2Vkb3duPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25tb3VzZWRvd248L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2UgcHJlc3NlZCBvbiBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib25tb3VzZXVwIj48IS0tIC0tPjwvQT48SDM+Citvbm1vdXNldXA8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vbm1vdXNldXA8L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2UgcmVsZWFzZWQgb24gY29tcG9uZW50IGV2ZW50LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9ua2V5ZG93biI+PCEtLSAtLT48L0E+PEgzPgorb25rZXlkb3duPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25rZXlkb3duPC9CPjwvUFJFPgorPERMPgorPEREPktleSBkb3duIGluIGNvbXBvbmVudCBldmVudC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJvbmtleXVwIj48IS0tIC0tPjwvQT48SDM+CitvbmtleXVwPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25rZXl1cDwvQj48L1BSRT4KKzxETD4KKzxERD5LZXkgcmVsZWFzZWQgaW4gY29tcG9uZW50IGV2ZW50LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9ua2V5cHJlc3MiPjwhLS0gLS0+PC9BPjxIMz4KK29ua2V5cHJlc3M8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vbmtleXByZXNzPC9CPjwvUFJFPgorPERMPgorPEREPktleSBkb3duIGFuZCB1cCB0b2dldGhlciBpbiBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib25zZWxlY3QiPjwhLS0gLS0+PC9BPjxIMz4KK29uc2VsZWN0PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25zZWxlY3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGV4dCBzZWxlY3RlZCBpbiBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib25jaGFuZ2UiPjwhLS0gLS0+PC9BPjxIMz4KK29uY2hhbmdlPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25jaGFuZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29udGVudCBjaGFuZ2VkIGFmdGVyIGNvbXBvbmVudCBsb3N0IGZvY3VzIGV2ZW50LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9uYmx1ciI+PCEtLSAtLT48L0E+PEgzPgorb25ibHVyPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25ibHVyPC9CPjwvUFJFPgorPERMPgorPEREPkNvbXBvbmVudCBsb3N0IGZvY3VzIGV2ZW50LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9uZm9jdXMiPjwhLS0gLS0+PC9BPjxIMz4KK29uZm9jdXM8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vbmZvY3VzPC9CPjwvUFJFPgorPERMPgorPEREPkNvbXBvbmVudCBoYXMgcmVjZWl2ZWQgZm9jdXMgZXZlbnQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGlzYWJsZWQiPjwhLS0gLS0+PC9BPjxIMz4KK2Rpc2FibGVkPC9IMz4KKzxQUkU+Citwcml2YXRlIGJvb2xlYW4gPEI+ZGlzYWJsZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tcG9uZW50IGlzIGRpc2FibGVkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWRvbmx5Ij48IS0tIC0tPjwvQT48SDM+CityZWFkb25seTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBib29sZWFuIDxCPnJlYWRvbmx5PC9CPjwvUFJFPgorPERMPgorPEREPkNvbXBvbmVudCBpcyByZWFkb25seS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzdHlsZSI+PCEtLSAtLT48L0E+PEgzPgorc3R5bGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZTwvQj48L1BSRT4KKzxETD4KKzxERD5TdHlsZSBhdHRyaWJ1dGUgYXNzb2NpYXRlZCB3aXRoIGNvbXBvbmVudC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzdHlsZUNsYXNzIj48IS0tIC0tPjwvQT48SDM+CitzdHlsZUNsYXNzPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+c3R5bGVDbGFzczwvQj48L1BSRT4KKzxETD4KKzxERD5OYW1lZCBTdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggY29tcG9uZW50LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InN0eWxlSWQiPjwhLS0gLS0+PC9BPjxIMz4KK3N0eWxlSWQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZUlkPC9CPjwvUFJFPgorPERMPgorPEREPklkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIGNvbXBvbmVudC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0aXRsZSI+PCEtLSAtLT48L0E+PEgzPgordGl0bGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj50aXRsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWR2aXNvcnkgdGl0bGUgb2YgdGhpcyBlbGVtZW50LjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJCYXNlSGFuZGxlclRhZygpIj48IS0tIC0tPjwvQT48SDM+CitCYXNlSGFuZGxlclRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkJhc2VIYW5kbGVyVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFjY2Vzc2tleTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QWNjZXNza2V5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWNjZXNzS2V5KTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIGFjY2Vzc0tleSBjaGFyYWN0ZXIuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWNjZXNza2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjY2Vzc2tleTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWNjZXNza2V5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgYWNjZXNzS2V5IGNoYXJhY3Rlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VGFiaW5kZXg8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFRhYmluZGV4PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGFiSW5kZXgpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgdGFiSW5kZXggdmFsdWUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VGFiaW5kZXgoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VGFiaW5kZXg8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFRhYmluZGV4PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgdGFiSW5kZXggdmFsdWUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0T25jbGljazwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0T25jbGljazwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uQ2xpY2spPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgb25DbGljayBldmVudCBoYW5kbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9uY2xpY2soKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0T25jbGljazwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0T25jbGljazwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9uQ2xpY2sgZXZlbnQgaGFuZGxlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRPbmRibGNsaWNrPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRPbmRibGNsaWNrPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25EYmxDbGljayk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBvbkRibENsaWNrIGV2ZW50IGhhbmRsZXIuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0T25kYmxjbGljaygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRPbmRibGNsaWNrPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbmRibGNsaWNrPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgb25EYmxDbGljayBldmVudCBoYW5kbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRPbm1vdXNlZG93bjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0T25tb3VzZWRvd248L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvbk1vdXNlRG93bik8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBvbk1vdXNlRG93biBldmVudCBoYW5kbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9ubW91c2Vkb3duKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE9ubW91c2Vkb3duPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbm1vdXNlZG93bjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9uTW91c2VEb3duIGV2ZW50IGhhbmRsZXIuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRPbm1vdXNldXA8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE9ubW91c2V1cDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uTW91c2VVcCk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBvbk1vdXNlVXAgZXZlbnQgaGFuZGxlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRPbm1vdXNldXAoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0T25tb3VzZXVwPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbm1vdXNldXA8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBvbk1vdXNlVXAgZXZlbnQgaGFuZGxlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0T25tb3VzZW1vdmU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE9ubW91c2Vtb3ZlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25Nb3VzZU1vdmUpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgb25Nb3VzZU1vdmUgZXZlbnQgaGFuZGxlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRPbm1vdXNlbW92ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRPbm1vdXNlbW92ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0T25tb3VzZW1vdmU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBvbk1vdXNlTW92ZSBldmVudCBoYW5kbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRPbm1vdXNlb3ZlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0T25tb3VzZW92ZXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvbk1vdXNlT3Zlcik8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBvbk1vdXNlT3ZlciBldmVudCBoYW5kbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9ubW91c2VvdmVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE9ubW91c2VvdmVyPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbm1vdXNlb3ZlcjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9uTW91c2VPdmVyIGV2ZW50IGhhbmRsZXIuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0T25tb3VzZW91dDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0T25tb3VzZW91dDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uTW91c2VPdXQpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgb25Nb3VzZU91dCBldmVudCBoYW5kbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9ubW91c2VvdXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0T25tb3VzZW91dDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0T25tb3VzZW91dDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9uTW91c2VPdXQgZXZlbnQgaGFuZGxlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE9ua2V5ZG93bjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0T25rZXlkb3duPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25LZXlEb3duKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIG9uS2V5RG93biBldmVudCBoYW5kbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9ua2V5ZG93bigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRPbmtleWRvd248L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE9ua2V5ZG93bjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9uS2V5RG93biBldmVudCBoYW5kbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE9ua2V5dXA8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE9ua2V5dXA8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvbktleVVwKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIG9uS2V5VXAgZXZlbnQgaGFuZGxlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRPbmtleXVwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE9ua2V5dXA8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE9ua2V5dXA8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBvbktleVVwIGV2ZW50IGhhbmRsZXIuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0T25rZXlwcmVzczwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0T25rZXlwcmVzczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uS2V5UHJlc3MpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgb25LZXlQcmVzcyBldmVudCBoYW5kbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9ua2V5cHJlc3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0T25rZXlwcmVzczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0T25rZXlwcmVzczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9uS2V5UHJlc3MgZXZlbnQgaGFuZGxlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0T25jaGFuZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE9uY2hhbmdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25DaGFuZ2UpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgb25DaGFuZ2UgZXZlbnQgaGFuZGxlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRPbmNoYW5nZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRPbmNoYW5nZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0T25jaGFuZ2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBvbkNoYW5nZSBldmVudCBoYW5kbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRPbnNlbGVjdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0T25zZWxlY3Q8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvblNlbGVjdCk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBvblNlbGVjdCBldmVudCBoYW5kbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9uc2VsZWN0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE9uc2VsZWN0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbnNlbGVjdDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9uU2VsZWN0IGV2ZW50IGhhbmRsZXIuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRPbmJsdXI8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE9uYmx1cjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uQmx1cik8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBvbkJsdXIgZXZlbnQgaGFuZGxlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRPbmJsdXIoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0T25ibHVyPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbmJsdXI8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBvbkJsdXIgZXZlbnQgaGFuZGxlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRPbmZvY3VzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRPbmZvY3VzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25Gb2N1cyk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBvbkZvY3VzIGV2ZW50IGhhbmRsZXIuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0T25mb2N1cygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRPbmZvY3VzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbmZvY3VzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgb25Gb2N1cyBldmVudCBoYW5kbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldERpc2FibGVkKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXREaXNhYmxlZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RGlzYWJsZWQ8L0I+KGJvb2xlYW4mbmJzcDtkaXNhYmxlZCk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBkaXNhYmxlZCBldmVudCBoYW5kbGVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldERpc2FibGVkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERpc2FibGVkPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXREaXNhYmxlZDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIGRpc2FibGVkIGV2ZW50IGhhbmRsZXIuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UmVhZG9ubHkoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFJlYWRvbmx5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRSZWFkb25seTwvQj4oYm9vbGVhbiZuYnNwO3JlYWRvbmx5KTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIHJlYWRvbmx5IGV2ZW50IGhhbmRsZXIuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UmVhZG9ubHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVhZG9ubHk8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldFJlYWRvbmx5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgcmVhZG9ubHkgZXZlbnQgaGFuZGxlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U3R5bGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFN0eWxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgc3R5bGUgYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFN0eWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFN0eWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTdHlsZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIHN0eWxlIGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTdHlsZUNsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTdHlsZUNsYXNzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGVDbGFzcyk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBzdHlsZSBjbGFzcyBhdHRyaWJ1dGUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U3R5bGVDbGFzcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTdHlsZUNsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTdHlsZUNsYXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgc3R5bGUgY2xhc3MgYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFN0eWxlSWQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFN0eWxlSWQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHlsZUlkKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIHN0eWxlIGlkIGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTdHlsZUlkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFN0eWxlSWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFN0eWxlSWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBzdHlsZSBpZCBhdHRyaWJ1dGUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VGl0bGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VGl0bGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFRpdGxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgYWR2aXNvcnkgdGl0bGUgYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRUaXRsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VGl0bGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0aXRsZSk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBhZHZpc29yeSB0aXRsZSBhdHRyaWJ1dGUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJlcGFyZVN0eWxlcygpIj48IS0tIC0tPjwvQT48SDM+CitwcmVwYXJlU3R5bGVzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcmVwYXJlU3R5bGVzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UHJlcGFyZXMgdGhlIHN0eWxlIGF0dHJpYnV0ZXMgZm9yIGluY2x1c2lvbiBpbiB0aGUgY29tcG9uZW50J3MgSFRNTCB0YWcuPEREPjxETD4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VGhlIHByZXBhcmVkIFN0cmluZyBmb3IgaW5jbHVzaW9uIGluIHRoZSBIVE1MIHRhZy48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByZXBhcmVFdmVudEhhbmRsZXJzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ByZXBhcmVFdmVudEhhbmRsZXJzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcmVwYXJlRXZlbnRIYW5kbGVyczwvQj4oKTwvUFJFPgorPERMPgorPEREPlByZXBhcmVzIHRoZSBldmVudCBoYW5kbGVycyBmb3IgaW5jbHVzaW9uIGluIHRoZSBjb21wb25lbnQncyBIVE1MIHRhZy48REQ+PERMPgorPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgcHJlcGFyZWQgU3RyaW5nIGZvciBpbmNsdXNpb24gaW4gdGhlIEhUTUwgdGFnLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj48IS0tIC0tPjwvQT48SDM+CitwcmVwYXJlTW91c2VFdmVudHM8L0gzPgorPFBSRT4KK3ByaXZhdGUgdm9pZCA8Qj5wcmVwYXJlTW91c2VFdmVudHM8L0I+KGphdmEubGFuZy5TdHJpbmdCdWZmZXImbmJzcDtoYW5kbGVycyk8L1BSRT4KKzxETD4KKzxERD5QcmVwYXJlcyB0aGUgbW91c2UgZXZlbnQgaGFuZGxlcnMsIGFwcGVuZGluZyB0aGVtIHRvIHRoZSB0aGUgZ2l2ZW4KKyBTdHJpbmdCdWZmZXIuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aGFuZGxlcnM8L0NPREU+IC0gVGhlIFN0cmluZ0J1ZmZlciB0aGF0IG91dHB1dCB3aWxsIGJlIGFwcGVuZGVkIHRvLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+PCEtLSAtLT48L0E+PEgzPgorcHJlcGFyZUtleUV2ZW50czwvSDM+Cis8UFJFPgorcHJpdmF0ZSB2b2lkIDxCPnByZXBhcmVLZXlFdmVudHM8L0I+KGphdmEubGFuZy5TdHJpbmdCdWZmZXImbmJzcDtoYW5kbGVycyk8L1BSRT4KKzxETD4KKzxERD5QcmVwYXJlcyB0aGUga2V5Ym9hcmQgZXZlbnQgaGFuZGxlcnMsIGFwcGVuZGluZyB0aGVtIHRvIHRoZSB0aGUgZ2l2ZW4KKyBTdHJpbmdCdWZmZXIuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aGFuZGxlcnM8L0NPREU+IC0gVGhlIFN0cmluZ0J1ZmZlciB0aGF0IG91dHB1dCB3aWxsIGJlIGFwcGVuZGVkIHRvLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPjwhLS0gLS0+PC9BPjxIMz4KK3ByZXBhcmVUZXh0RXZlbnRzPC9IMz4KKzxQUkU+Citwcml2YXRlIHZvaWQgPEI+cHJlcGFyZVRleHRFdmVudHM8L0I+KGphdmEubGFuZy5TdHJpbmdCdWZmZXImbmJzcDtoYW5kbGVycyk8L1BSRT4KKzxETD4KKzxERD5QcmVwYXJlcyB0aGUgdGV4dCBldmVudCBoYW5kbGVycywgYXBwZW5kaW5nIHRoZW0gdG8gdGhlIHRoZSBnaXZlbgorIFN0cmluZ0J1ZmZlci48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5oYW5kbGVyczwvQ09ERT4gLSBUaGUgU3RyaW5nQnVmZmVyIHRoYXQgb3V0cHV0IHdpbGwgYmUgYXBwZW5kZWQgdG8uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPjwhLS0gLS0+PC9BPjxIMz4KK3ByZXBhcmVGb2N1c0V2ZW50czwvSDM+Cis8UFJFPgorcHJpdmF0ZSB2b2lkIDxCPnByZXBhcmVGb2N1c0V2ZW50czwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO2hhbmRsZXJzKTwvUFJFPgorPERMPgorPEREPlByZXBhcmVzIHRoZSBmb2N1cyBldmVudCBoYW5kbGVycywgYXBwZW5kaW5nIHRoZW0gdG8gdGhlIHRoZSBnaXZlbgorIFN0cmluZ0J1ZmZlci48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5oYW5kbGVyczwvQ09ERT4gLSBUaGUgU3RyaW5nQnVmZmVyIHRoYXQgb3V0cHV0IHdpbGwgYmUgYXBwZW5kZWQgdG8uPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQmFzZUhhbmRsZXJUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwZDBmYmIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbApAQCAtMCwwICsxLDY4NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEJhc2VJbnB1dFRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkJhc2VJbnB1dFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgQmFzZUlucHV0VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+VGV4dGFyZWFUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGFic3RyYWN0IGNsYXNzIDxCPkJhc2VJbnB1dFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0RMPgorCis8UD4KK0Fic3RyYWN0IGJhc2UgY2xhc3MgZm9yIHRoZSB2YXJpb3VzIGlucHV0IHRhZ3MuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNjb2xzIj5jb2xzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBudW1iZXIgb2YgY2hhcmFjdGVyIGNvbHVtbnMgZm9yIHRoaXMgZmllbGQsIG9yIG5lZ2F0aXZlCisgZm9yIG5vIGxpbWl0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtYXhsZW5ndGgiPm1heGxlbmd0aDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyBhbGxvd2VkLCBvciBuZWdhdGl2ZSBmb3Igbm8gbGltaXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGZpZWxkIChhbmQgYXNzb2NpYXRlZCBwcm9wZXJ0eSkgYmVpbmcgcHJvY2Vzc2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNyb3dzIj5yb3dzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBudW1iZXIgb2Ygcm93cyBmb3IgdGhpcyBmaWVsZCwgb3IgbmVnYXRpdmUgZm9yIG5vIGxpbWl0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHZhbHVlIGZvciB0aGlzIGZpZWxkLCBvciA8Y29kZT5udWxsPC9jb2RlPiB0byByZXRyaWV2ZSB0aGUKKyBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGZyb20gb3VyIGFzc29jaWF0ZWQgYmVhbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGlzYWJsZWQiPmRpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmJsdXIiPm9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25jaGFuZ2UiPm9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNsaWNrIj5vbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmRibGNsaWNrIj5vbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmZvY3VzIj5vbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleWRvd24iPm9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlwcmVzcyI+b25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXl1cCI+b25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZWRvd24iPm9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlbW92ZSI+b25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdXQiPm9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdmVyIj5vbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZXVwIj5vbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uc2VsZWN0Ij5vbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVhZG9ubHkiPnJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZSI+c3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlQ2xhc3MiPnN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlSWQiPnN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGl0bGUiPnRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9CVUZGRVJFRCwgRVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjQmFzZUlucHV0VGFnKCkiPkJhc2VJbnB1dFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldENvbHMoKSI+Z2V0Q29sczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgZm9yIHRoaXMgZmllbGQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0TWF4bGVuZ3RoKCkiPmdldE1heGxlbmd0aDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbWF4aW11bSBsZW5ndGggYWxsb3dlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgcHJvcGVydHkgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRSb3dzKCkiPmdldFJvd3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG51bWJlciBvZiByb3dzIGZvciB0aGlzIGZpZWxkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFNpemUoKSI+Z2V0U2l6ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc2l6ZSBvZiB0aGlzIGZpZWxkIChzeW5vbnltIGZvciA8Y29kZT5nZXRDb2xzKCk8L2NvZGU+KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZmllbGQgdmFsdWUgKGlmIGFueSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldENvbHMoamF2YS5sYW5nLlN0cmluZykiPnNldENvbHM8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29scyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgZm9yIHRoaXMgZmllbGQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0TWF4bGVuZ3RoKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNYXhsZW5ndGg8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWF4bGVuZ3RoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBtYXhpbXVtIGxlbmd0aCBhbGxvd2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgcHJvcGVydHkgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRSb3dzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb3dzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Jvd3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIG51bWJlciBvZiByb3dzIGZvciB0aGlzIGZpZWxkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFNpemUoamF2YS5sYW5nLlN0cmluZykiPnNldFNpemU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2l6ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgc2l6ZSBvZiB0aGlzIGZpZWxkIChzeW5vbnltIGZvciA8Y29kZT5zZXRDb2xzKCk8L2NvZGU+KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGZpZWxkIHZhbHVlIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRXZlbnRIYW5kbGVycygpIj5wcmVwYXJlRXZlbnRIYW5kbGVyczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUZvY3VzRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlRm9jdXNFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb2xzIj48IS0tIC0tPjwvQT48SDM+Citjb2xzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jb2xzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBudW1iZXIgb2YgY2hhcmFjdGVyIGNvbHVtbnMgZm9yIHRoaXMgZmllbGQsIG9yIG5lZ2F0aXZlCisgZm9yIG5vIGxpbWl0LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1heGxlbmd0aCI+PCEtLSAtLT48L0E+PEgzPgorbWF4bGVuZ3RoPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5tYXhsZW5ndGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgYWxsb3dlZCwgb3IgbmVnYXRpdmUgZm9yIG5vIGxpbWl0LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZmllbGQgKGFuZCBhc3NvY2lhdGVkIHByb3BlcnR5KSBiZWluZyBwcm9jZXNzZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icm93cyI+PCEtLSAtLT48L0E+PEgzPgorcm93czwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cm93czwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbnVtYmVyIG9mIHJvd3MgZm9yIHRoaXMgZmllbGQsIG9yIG5lZ2F0aXZlIGZvciBubyBsaW1pdC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB2YWx1ZSBmb3IgdGhpcyBmaWVsZCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gdG8gcmV0cmlldmUgdGhlCisgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBmcm9tIG91ciBhc3NvY2lhdGVkIGJlYW4uPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkJhc2VJbnB1dFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitCYXNlSW5wdXRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5CYXNlSW5wdXRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldENvbHMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29sczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Q29sczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgZm9yIHRoaXMgZmllbGQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Q29scyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Q29sczwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Q29sczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbHMpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBudW1iZXIgb2YgY29sdW1ucyBmb3IgdGhpcyBmaWVsZC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb2xzPC9DT0RFPiAtIFRoZSBuZXcgbnVtYmVyIG9mIGNvbHVtbnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1heGxlbmd0aCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNYXhsZW5ndGg8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1heGxlbmd0aDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbWF4aW11bSBsZW5ndGggYWxsb3dlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNYXhsZW5ndGgoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE1heGxlbmd0aDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TWF4bGVuZ3RoPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWF4bGVuZ3RoKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgbWF4aW11bSBsZW5ndGggYWxsb3dlZC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXhsZW5ndGg8L0NPREU+IC0gVGhlIG5ldyBtYXhpbXVtIGxlbmd0aDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJvcGVydHk8L0NPREU+IC0gVGhlIG5ldyBwcm9wZXJ0eSBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSb3dzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJvd3M8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFJvd3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG51bWJlciBvZiByb3dzIGZvciB0aGlzIGZpZWxkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFJvd3MoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFJvd3M8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFJvd3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb3dzKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgbnVtYmVyIG9mIHJvd3MgZm9yIHRoaXMgZmllbGQuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cm93czwvQ09ERT4gLSBUaGUgbmV3IG51bWJlciBvZiByb3dzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHNpemUgb2YgdGhpcyBmaWVsZCAoc3lub255bSBmb3IgPGNvZGU+Z2V0Q29scygpPC9jb2RlPikuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2l6ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2l6ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NpemUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBzaXplIG9mIHRoaXMgZmllbGQgKHN5bm9ueW0gZm9yIDxjb2RlPnNldENvbHMoKTwvY29kZT4pLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNpemU8L0NPREU+IC0gVGhlIG5ldyBzaXplPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VmFsdWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGZpZWxkIHZhbHVlIChpZiBhbnkpLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VmFsdWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGZpZWxkIHZhbHVlIChpZiBhbnkpLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFRoZSBuZXcgZmllbGQgdmFsdWUsIG9yIDxjb2RlPm51bGw8L2NvZGU+IHRvIHJldHJpZXZlIHRoZQorICBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGZyb20gdGhlIGJlYW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdGhpbmcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdGhpbmcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQmFzZUlucHV0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNmFhNDMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwKQEAgLTAsMCArMSwzNDMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBCYXNlVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQmFzZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgQmFzZVRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkJhc2VUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK1JlbmRlcnMgYW4gSFRNTCA8YmFzZT4gZWxlbWVudCB3aXRoIGFuIGhyZWYgCisgYXR0cmlidXRlIHBvaW50aW5nIHRvIHRoZSBhYnNvbHV0ZSBsb2NhdGlvbiBvZiB0aGUgZW5jbG9zaW5nIEpTUCBwYWdlLiBUaGlzIAorIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4gbmVzdGVkIGluc2lkZSBhIGhlYWQgdGFnIGJvZHkuIFRoZSBwcmVzZW5jZSAKKyBvZiB0aGlzIHRhZyBhbGxvd3MgdGhlIGJyb3dzZXIgdG8gcmVzb2x2ZSByZWxhdGl2ZSBVUkwncyB0byBpbWFnZXMsCisgQ1NTIHN0eWxlc2hlZXRzICBhbmQgb3RoZXIgcmVzb3VyY2VzIGluIGEgbWFubmVyIGluZGVwZW5kZW50IG9mIHRoZSBVUkwKKyB1c2VkIHRvIGNhbGwgdGhlIEFjdGlvblNlcnZsZXQuICBUaGVyZSBhcmUgbm8gYXR0cmlidXRlcyBhc3NvY2lhdGVkIHdpdGgKKyB0aGlzIHRhZy4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5MdWlzIEFyaWFzIDxsdWlzQGVseXNpYS5jb20+PC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCN0YXJnZXQiPnRhcmdldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdGFyZ2V0IHdpbmRvdyBmb3IgdGhpcyBiYXNlIHJlZmVyZW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjQmFzZVRhZygpIj5CYXNlVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjZ2V0VGFyZ2V0KCkiPmdldFRhcmdldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCNzZXRUYXJnZXQoamF2YS5sYW5nLlN0cmluZykiPnNldFRhcmdldDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0YXJnZXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0VuZFRhZywgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZWxlYXNlLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0YXJnZXQiPjwhLS0gLS0+PC9BPjxIMz4KK3RhcmdldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dGFyZ2V0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB0YXJnZXQgd2luZG93IGZvciB0aGlzIGJhc2UgcmVmZXJlbmNlLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJCYXNlVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0Jhc2VUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5CYXNlVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRUYXJnZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VGFyZ2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRUYXJnZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFRhcmdldChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VGFyZ2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRUYXJnZXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0YXJnZXQpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQmFzZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U4MjhhYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sCkBAIC0wLDAgKzEsNTE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgQnV0dG9uVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkJ1dHRvblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgQnV0dG9uVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CdXR0b25UYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QnV0dG9uVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvREw+CisKKzxQPgorUmVuZGVycyBhbiBIVE1MIEJVVFRPTiB0YWcgd2l0aGluIHRoZSBTdHJ1dHMgZnJhbWV3b3JrLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkRvbiBDbGFzZW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJ1dHRvblRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgYnV0dG9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCN0ZXh0Ij50ZXh0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGlzYWJsZWQiPmRpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uYmx1ciI+b25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNoYW5nZSI+b25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uY2xpY2siPm9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uZGJsY2xpY2siPm9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uZm9jdXMiPm9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5ZG93biI+b25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleXByZXNzIj5vbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleXVwIj5vbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlZG93biI+b25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2Vtb3ZlIj5vbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW91dCI+b25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW92ZXIiPm9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNldXAiPm9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25zZWxlY3QiPm9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWFkb25seSI+cmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlIj5zdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGVDbGFzcyI+c3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGVJZCI+c3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0aXRsZSI+dGl0bGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0JVRkZFUkVELCBFVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCNCdXR0b25UYWcoKSI+QnV0dG9uVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPmRvQWZ0ZXJCb2R5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQgKGlmIGFueSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBsYWJlbCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgbGFiZWwgdmFsdWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+Z2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmJsdXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGJ1dHRvbi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0ZXh0Ij48IS0tIC0tPjwvQT48SDM+Cit0ZXh0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj50ZXh0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQnV0dG9uVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0J1dHRvblRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkJ1dHRvblRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBUaGUgcHJvcGVydHkgbmFtZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBsYWJlbCB2YWx1ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBsYWJlbCB2YWx1ZS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBUaGUgbGFiZWwgdmFsdWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0FmdGVyQm9keSgpIj48IS0tIC0tPjwvQT48SDM+Citkb0FmdGVyQm9keTwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0FmdGVyQm9keTwvQj4oKQorICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5TYXZlIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGZyb20gdGhlIGJvZHkgY29udGVudCAoaWYgYW55KS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvQWZ0ZXJCb2R5PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkJ1dHRvblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDUxNWJjYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sCkBAIC0wLDAgKzEsNTMwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgQ2FuY2VsVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDYW5jZWxUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgIENhbmNlbFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2FuY2VsVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkNhbmNlbFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0RMPgorCis8UD4KK1RhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImNhbmNlbCIuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+SmVmZiBIdXRjaGluc29uPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DYW5jZWxUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBidXR0b24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI3RleHQiPnRleHQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB2YWx1ZSBvZiB0aGUgYnV0dG9uIGxhYmVsLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkaXNhYmxlZCI+ZGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uYmx1ciI+b25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNoYW5nZSI+b25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uY2xpY2siPm9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uZGJsY2xpY2siPm9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uZm9jdXMiPm9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5ZG93biI+b25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleXByZXNzIj5vbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleXVwIj5vbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlZG93biI+b25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2Vtb3ZlIj5vbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW91dCI+b25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW92ZXIiPm9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNldXAiPm9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25zZWxlY3QiPm9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWFkb25seSI+cmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlIj5zdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGVDbGFzcyI+c3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGVJZCI+c3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0aXRsZSI+dGl0bGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0JVRkZFUkVELCBFVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCNDYW5jZWxUYWcoKSI+Q2FuY2VsVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPmRvQWZ0ZXJCb2R5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBsYWJlbCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgbGFiZWwgdmFsdWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+Z2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmJsdXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgYnV0dG9uLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRleHQiPjwhLS0gLS0+PC9BPjxIMz4KK3RleHQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB2YWx1ZSBvZiB0aGUgYnV0dG9uIGxhYmVsLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJDYW5jZWxUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorQ2FuY2VsVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Q2FuY2VsVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIFRoZSBwcm9wZXJ0eSBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VmFsdWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGxhYmVsIHZhbHVlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VmFsdWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGxhYmVsIHZhbHVlLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFRoZSBsYWJlbCB2YWx1ZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvQWZ0ZXJCb2R5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvQWZ0ZXJCb2R5PC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvQWZ0ZXJCb2R5PC9CPigpCisgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlNhdmUgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9BZnRlckJvZHk8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNhbmNlbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzNmJmNGEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sCkBAIC0wLDAgKzEsNTc4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgQ2hlY2tib3hUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDaGVja2JveFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgQ2hlY2tib3hUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNoZWNrYm94VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkNoZWNrYm94VGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvREw+CisKKzxQPgorVGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiY2hlY2tib3giLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNoZWNrYm94VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHByb3BlcnR5IG5hbWUgZm9yIHRoaXMgZmllbGQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjdGV4dCI+dGV4dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2VydmVyIHZhbHVlIGZvciB0aGlzIG9wdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGlzYWJsZWQiPmRpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmJsdXIiPm9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25jaGFuZ2UiPm9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNsaWNrIj5vbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmRibGNsaWNrIj5vbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmZvY3VzIj5vbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleWRvd24iPm9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlwcmVzcyI+b25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXl1cCI+b25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZWRvd24iPm9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlbW92ZSI+b25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdXQiPm9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdmVyIj5vbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZXVwIj5vbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uc2VsZWN0Ij5vbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVhZG9ubHkiPnJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZSI+c3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlQ2xhc3MiPnN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlSWQiPnN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGl0bGUiPnRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9CVUZGRVJFRCwgRVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNDaGVja2JveFRhZygpIj5DaGVja2JveFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPmRvQWZ0ZXJCb2R5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgcmVtYWluZGVyIG9mIHRoaXMgcGFnZSBub3JtYWxseS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2VuZXJhdGUgdGhlIHJlcXVpcmVkIGlucHV0IHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc2VydmVyIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHNlcnZlciB2YWx1ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmJsdXIoKSI+Z2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNoYW5nZSgpIj5nZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jbGljaygpIj5nZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmRibGNsaWNrKCkiPmdldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZm9jdXMoKSI+Z2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlkb3duKCkiPmdldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlwcmVzcygpIj5nZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXVwKCkiPmdldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vkb3duKCkiPmdldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlbW92ZSgpIj5nZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW91dCgpIj5nZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3ZlcigpIj5nZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZXVwKCkiPmdldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25zZWxlY3QoKSI+Z2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFJlYWRvbmx5KCkiPmdldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZSgpIj5nZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj5nZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUlkKCkiPmdldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRhYmluZGV4KCkiPmdldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZSgpIj5nZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlS2V5RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlS2V5RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlTW91c2VFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVNb3VzZUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVN0eWxlcygpIj5wcmVwYXJlU3R5bGVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlVGV4dEV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZVRleHRFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFjY2Vzc2tleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXREaXNhYmxlZChib29sZWFuKSI+c2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGZvciB0aGlzIGZpZWxkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRleHQiPjwhLS0gLS0+PC9BPjxIMz4KK3RleHQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXJ2ZXIgdmFsdWUgZm9yIHRoaXMgb3B0aW9uLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJDaGVja2JveFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitDaGVja2JveFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNoZWNrYm94VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJvcGVydHk8L0NPREU+IC0gVGhlIG5ldyBwcm9wZXJ0eSBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VmFsdWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHNlcnZlciB2YWx1ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBzZXJ2ZXIgdmFsdWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gVGhlIG5ldyBzZXJ2ZXIgdmFsdWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+R2VuZXJhdGUgdGhlIHJlcXVpcmVkIGlucHV0IHRhZy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvQWZ0ZXJCb2R5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvQWZ0ZXJCb2R5PC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvQWZ0ZXJCb2R5PC9CPigpCisgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlNhdmUgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9BZnRlckJvZHk8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHJlbWFpbmRlciBvZiB0aGlzIHBhZ2Ugbm9ybWFsbHkuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ2hlY2tib3hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlYTk5NTcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbApAQCAtMCwwICsxLDMwNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIENvbnN0YW50cworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29uc3RhbnRzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgIENvbnN0YW50czwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNvbnN0YW50czwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Db25zdGFudHM8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDwvREw+CisKKzxQPgorTWFuaWZlc3QgY29uc3RhbnRzIGZvciB0aGlzIHBhY2thZ2UuCis8UD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sI0JFQU5fS0VZIj5CRUFOX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYXR0cmlidXRlIGtleSBmb3IgdGhlIGJlYW4gb3VyIGZvcm0gaXMgcmVsYXRlZCB0by48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCNDQU5DRUxfUFJPUEVSVFkiPkNBTkNFTF9QUk9QRVJUWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcHJvcGVydHkgdW5kZXIgd2hpY2ggYSBDYW5jZWwgYnV0dG9uIHByZXNzIGlzIHJlcG9ydGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sI0NBTkNFTF9QUk9QRVJUWV9YIj5DQU5DRUxfUFJPUEVSVFlfWDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcHJvcGVydHkgdW5kZXIgd2hpY2ggYSBDYW5jZWwgYnV0dG9uIHByZXNzIGlzIHJlcG9ydGVkLCBpZiB0aGUKKyBDYW5jZWwgYnV0dG9uIGlzIHJlbmRlcmVkIGFzIGFuIGltYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sI0ZPUk1fS0VZIj5GT1JNX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYXR0cmlidXRlIGtleSBmb3IgdGhlIGZvcm0gdGFnIGl0c2VsZi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCNQYWNrYWdlIj5QYWNrYWdlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCNTRUxFQ1RfS0VZIj5TRUxFQ1RfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhdHRyaWJ1dGUga2V5IGZvciB0aGUgc2VsZWN0IHRhZyBpdHNlbGYuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwjVE9LRU5fS0VZIj5UT0tFTl9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHByb3BlcnR5IHVuZGVyIHdoaWNoIGEgdHJhbnNhY3Rpb24gdG9rZW4gaXMgcmVwb3J0ZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCNDb25zdGFudHMoKSI+Q29uc3RhbnRzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUGFja2FnZSI+PCEtLSAtLT48L0E+PEgzPgorUGFja2FnZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPlBhY2thZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhpcyBwYWNrYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkJFQU5fS0VZIj48IS0tIC0tPjwvQT48SDM+CitCRUFOX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkJFQU5fS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhdHRyaWJ1dGUga2V5IGZvciB0aGUgYmVhbiBvdXIgZm9ybSBpcyByZWxhdGVkIHRvLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkNBTkNFTF9QUk9QRVJUWSI+PCEtLSAtLT48L0E+PEgzPgorQ0FOQ0VMX1BST1BFUlRZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+Q0FOQ0VMX1BST1BFUlRZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSB1bmRlciB3aGljaCBhIENhbmNlbCBidXR0b24gcHJlc3MgaXMgcmVwb3J0ZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQ0FOQ0VMX1BST1BFUlRZX1giPjwhLS0gLS0+PC9BPjxIMz4KK0NBTkNFTF9QUk9QRVJUWV9YPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+Q0FOQ0VMX1BST1BFUlRZX1g8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHByb3BlcnR5IHVuZGVyIHdoaWNoIGEgQ2FuY2VsIGJ1dHRvbiBwcmVzcyBpcyByZXBvcnRlZCwgaWYgdGhlCisgQ2FuY2VsIGJ1dHRvbiBpcyByZW5kZXJlZCBhcyBhbiBpbWFnZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJGT1JNX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorRk9STV9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5GT1JNX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYXR0cmlidXRlIGtleSBmb3IgdGhlIGZvcm0gdGFnIGl0c2VsZi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJTRUxFQ1RfS0VZIj48IS0tIC0tPjwvQT48SDM+CitTRUxFQ1RfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+U0VMRUNUX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYXR0cmlidXRlIGtleSBmb3IgdGhlIHNlbGVjdCB0YWcgaXRzZWxmLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlRPS0VOX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorVE9LRU5fS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+VE9LRU5fS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSB1bmRlciB3aGljaCBhIHRyYW5zYWN0aW9uIHRva2VuIGlzIHJlcG9ydGVkLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJDb25zdGFudHMoKSI+PCEtLSAtLT48L0E+PEgzPgorQ29uc3RhbnRzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Q29uc3RhbnRzPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29uc3RhbnRzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkMDBiOTcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbApAQCAtMCwwICsxLDUzMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEVycm9yc1RhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJFcnJvcnNUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgIEVycm9yc1RhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRXJyb3JzVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+RXJyb3JzVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitDdXN0b20gdGFnIHRoYXQgcmVuZGVycyBlcnJvciBtZXNzYWdlcyBpZiBhbiBhcHByb3ByaWF0ZSByZXF1ZXN0IGF0dHJpYnV0ZQorIGhhcyBiZWVuIGNyZWF0ZWQuICBUaGUgdGFnIGxvb2tzIGZvciBhIHJlcXVlc3QgYXR0cmlidXRlIHdpdGggYSByZXNlcnZlZAorIGtleSwgYW5kIGFzc3VtZXMgdGhhdCBpdCBpcyBlaXRoZXIgYSBTdHJpbmcsIGEgU3RyaW5nIGFycmF5LCBjb250YWluaW5nCisgbWVzc2FnZSBrZXlzIHRvIGJlIGxvb2tlZCB1cCBpbiB0aGUgYXBwbGljYXRpb24ncyBNZXNzYWdlUmVzb3VyY2VzLCBvcgorIGFuIG9iamVjdCBvZiB0eXBlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnM8L2NvZGU+LgorIDxwPgorIFRoZSBmb2xsb3dpbmcgb3B0aW9uYWwgbWVzc2FnZSBrZXlzIHdpbGwgYmUgdXRpbGl6ZWQgaWYgY29ycmVzcG9uZGluZworIG1lc3NhZ2VzIGV4aXN0IGZvciB0aGVtIGluIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZXM6CisgPHVsPgorIDxsaT48Yj5lcnJvcnMuaGVhZGVyPC9iPiAtIElmIHByZXNlbnQsIHRoZSBjb3JyZXNwb25kaW5nIG1lc3NhZ2Ugd2lsbCBiZQorICAgICByZW5kZXJlZCBwcmlvciB0byB0aGUgaW5kaXZpZHVhbCBsaXN0IG9mIGVycm9yIG1lc3NhZ2VzLgorIDxsaT48Yj5lcnJvcnMuZm9vdGVyPC9iPiAtIElmIHByZXNlbnQsIHRoZSBjb3JyZXNwb25kaW5nIG1lc3NhZ2Ugd2lsbCBiZQorICAgICByZW5kZXJlZCBmb2xsb3dpbmcgdGhlIGluZGl2aWR1YWwgbGlzdCBvZiBlcnJvciBtZXNzYWdlcy4KKyA8bGk+PGI+CisgPC91bD4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5FcnJvcnNUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2J1bmRsZSI+YnVuZGxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3Igb3VyIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO2phdmEudXRpbC5Mb2NhbGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCBsb2NhbGUgb24gb3VyIHNlcnZlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjbG9jYWxlIj5sb2NhbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3Igb3VyIGxvY2FsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlcXVlc3QgYXR0cmlidXRlIGtleSBmb3Igb3VyIGVycm9yIG1lc3NhZ2VzIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGZvciB3aGljaCBlcnJvciBtZXNzYWdlcyBzaG91bGQgYmUgcmV0dXJuZWQsCisgb3IgPGNvZGU+bnVsbDwvY29kZT4gdG8gcmV0dXJuIGFsbCBlcnJvcnMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjRXJyb3JzVGFnKCkiPkVycm9yc1RhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW5kZXIgdGhlIHNwZWNpZmllZCBlcnJvciBtZXNzYWdlcyBpZiB0aGVyZSBhcmUgYW55LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNnZXRMb2NhbGUoKSI+Z2V0TG9jYWxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZG9FbmRUYWcsIGZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImJ1bmRsZSI+PCEtLSAtLT48L0E+PEgzPgorYnVuZGxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5idW5kbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciBvdXIgcmVzb3VyY2VzLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRlZmF1bHRMb2NhbGUiPjwhLS0gLS0+PC9BPjxIMz4KK2RlZmF1bHRMb2NhbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgamF2YS51dGlsLkxvY2FsZSA8Qj5kZWZhdWx0TG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBkZWZhdWx0IGxvY2FsZSBvbiBvdXIgc2VydmVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvY2FsZSI+PCEtLSAtLT48L0E+PEgzPgorbG9jYWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5sb2NhbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3Igb3VyIGxvY2FsZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlcXVlc3QgYXR0cmlidXRlIGtleSBmb3Igb3VyIGVycm9yIG1lc3NhZ2VzIChpZiBhbnkpLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGZvciB3aGljaCBlcnJvciBtZXNzYWdlcyBzaG91bGQgYmUgcmV0dXJuZWQsCisgb3IgPGNvZGU+bnVsbDwvY29kZT4gdG8gcmV0dXJuIGFsbCBlcnJvcnMuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkVycm9yc1RhZygpIj48IS0tIC0tPjwvQT48SDM+CitFcnJvcnNUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5FcnJvcnNUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEJ1bmRsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRCdW5kbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEJ1bmRsZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRCdW5kbGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEJ1bmRsZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExvY2FsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMb2NhbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldExvY2FsZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRMb2NhbGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldExvY2FsZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVyIHRoZSBzcGVjaWZpZWQgZXJyb3IgbWVzc2FnZXMgaWYgdGhlcmUgYXJlIGFueS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZpbGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkVycm9yc1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZpbGVUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZpbGVUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hN2FmM2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sCkBAIC0wLDAgKzEsMzIyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgRmlsZVRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGaWxlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzICBGaWxlVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRmlsZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5GaWxlVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9ETD4KKworPFA+CitDdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiZmlsZSIuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRmlsZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2FjY2VwdCI+YWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3JlZGlzcGxheSI+cmVkaXNwbGF5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjdHlwZSI+dHlwZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2NvbHMiPmNvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtYXhsZW5ndGgiPm1heGxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3Jvd3MiPnJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkaXNhYmxlZCI+ZGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uYmx1ciI+b25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNoYW5nZSI+b25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uY2xpY2siPm9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uZGJsY2xpY2siPm9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uZm9jdXMiPm9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5ZG93biI+b25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleXByZXNzIj5vbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleXVwIj5vbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlZG93biI+b25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2Vtb3ZlIj5vbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW91dCI+b25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW92ZXIiPm9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNldXAiPm9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25zZWxlY3QiPm9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWFkb25seSI+cmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlIj5zdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGVDbGFzcyI+c3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGVJZCI+c3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0aXRsZSI+dGl0bGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0JVRkZFUkVELCBFVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwjRmlsZVRhZygpIj5GaWxlVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXRBY2NlcHQoKSI+Z2V0QWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0UmVkaXNwbGF5KCkiPmdldFJlZGlzcGxheTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldEFjY2VwdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldFJlZGlzcGxheShib29sZWFuKSI+c2V0UmVkaXNwbGF5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldENvbHMoKSI+Z2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldE1heGxlbmd0aCgpIj5nZXRNYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFJvd3MoKSI+Z2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFNpemUoKSI+Z2V0U2l6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Q29scyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldE1heGxlbmd0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Um93cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFNpemUoamF2YS5sYW5nLlN0cmluZykiPnNldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRXZlbnRIYW5kbGVycygpIj5wcmVwYXJlRXZlbnRIYW5kbGVyczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUZvY3VzRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlRm9jdXNFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRmlsZVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitGaWxlVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RmlsZVRhZzwvQj4oKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIHRhZy48L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGaWxlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmZjNlNzgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwKQEAgLTAsMCArMSwxMDc2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgRm9ybVRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGb3JtVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzICBGb3JtVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5Gb3JtVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+Rm9ybVRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvREw+CisKKzxQPgorQ3VzdG9tIHRhZyB0aGF0IHJlcHJlc2VudHMgYW4gaW5wdXQgZm9ybSwgYXNzb2NpYXRlZCB3aXRoIGEgYmVhbiB3aG9zZQorIHByb3BlcnRpZXMgY29ycmVzcG9uZCB0byB0aGUgdmFyaW91cyBmaWVsZHMgb2YgdGhlIGZvcm0uCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRm9ybVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2FjdGlvbiI+YWN0aW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhY3Rpb24gVVJMIHRvIHdoaWNoIHRoaXMgZm9ybSBzaG91bGQgYmUgc3VibWl0dGVkLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNlbmN0eXBlIj5lbmN0eXBlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250ZW50IGVuY29kaW5nIHRvIGJlIHVzZWQgb24gYSBQT1NUIHN1Ym1pdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2ZvY3VzIj5mb2N1czwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgZmllbGQgdG8gcmVjZWl2ZSBmb2N1cywgaWYgYW55LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNtZXRob2QiPm1ldGhvZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVxdWVzdCBtZXRob2QgdXNlZCB3aGVuIHN1Ym1pdHRpbmcgdGhpcyBmb3JtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYXR0cmlidXRlIGtleSB1bmRlciB3aGljaCBvdXIgYXNzb2NpYXRlZCBiZWFuIGlzIHN0b3JlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI29ucmVzZXQiPm9ucmVzZXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG9uUmVzZXQgZXZlbnQgc2NyaXB0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjb25zdWJtaXQiPm9uc3VibWl0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBvblN1Ym1pdCBldmVudCBzY3JpcHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzY29wZSI+c2NvcGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNjb3BlIChyZXF1ZXN0IG9yIHNlc3Npb24pIHVuZGVyIHdoaWNoIG91ciBhc3NvY2lhdGVkIGJlYW4KKyBpcyBzdG9yZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgQWN0aW9uU2VydmxldCBpbnN0YW5jZSB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoIChzbyB0aGF0IHdlIGNhbgorIGluaXRpYWxpemUgdGhlIDxjb2RlPnNlcnZsZXQ8L2NvZGU+IHByb3BlcnR5IG9uIGFueSBmb3JtIGJlYW4gdGhhdAorIHdlIGNyZWF0ZSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzdHlsZSI+c3R5bGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHN0eWxlIGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzdHlsZUNsYXNzIj5zdHlsZUNsYXNzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzdHlsZUlkIj5zdHlsZUlkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBpZGVudGlmaWVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3RhcmdldCI+dGFyZ2V0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB3aW5kb3cgdGFyZ2V0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjdHlwZSI+dHlwZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBiZWFuIHRvIGJlIGNyZWF0ZWQsIGlmIG5lY2Vzc2FyeS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjRm9ybVRhZygpIj5Gb3JtVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlciB0aGUgZW5kIG9mIHRoaXMgZm9ybS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW5kZXIgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGZvcm0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldEFjdGlvbigpIj5nZXRBY3Rpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGFjdGlvbiBVUkwgdG8gd2hpY2ggdGhpcyBmb3JtIHNob3VsZCBiZSBzdWJtaXR0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRBY3Rpb25NYXBwaW5nTmFtZSgpIj5nZXRBY3Rpb25NYXBwaW5nTmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9ybSBhY3Rpb24gY29udmVydGVkIGludG8gYW4gYWN0aW9uIG1hcHBpbmcgcGF0aC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldEFjdGlvbk1hcHBpbmdVUkwoKSI+Z2V0QWN0aW9uTWFwcGluZ1VSTDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9ybSBhY3Rpb24gY29udmVydGVkIGludG8gYSBzZXJ2ZXItcmVsYXRpdmUgVVJMLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRFbmN0eXBlKCkiPmdldEVuY3R5cGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0Rm9jdXMoKSI+Z2V0Rm9jdXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvY3VzIGZpZWxkIG5hbWUgZm9yIHRoaXMgZm9ybS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0TWV0aG9kKCkiPmdldE1ldGhvZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgcmVxdWVzdCBtZXRob2QgdXNlZCB3aGVuIHN1Ym1pdHRpbmcgdGhpcyBmb3JtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGF0dHJpYnV0ZSBrZXkgbmFtZSBvZiBvdXIgYmVhbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0T25yZXNldCgpIj5nZXRPbnJlc2V0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBvblJlc2V0IGV2ZW50IHNjcmlwdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0T25zdWJtaXQoKSI+Z2V0T25zdWJtaXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG9uU3VibWl0IGV2ZW50IHNjcmlwdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGF0dHJpYnV0ZSBzY29wZSBvZiBvdXIgYmVhbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHN0eWxlIGF0dHJpYnV0ZSBmb3IgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc3R5bGUgY2xhc3MgZm9yIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRTdHlsZUlkKCkiPmdldFN0eWxlSWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHN0eWxlIGlkZW50aWZpZXIgZm9yIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRUYXJnZXQoKSI+Z2V0VGFyZ2V0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSB3aW5kb3cgdGFyZ2V0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRUeXBlKCkiPmdldFR5cGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIEphdmEgY2xhc3Mgb2Ygb3VyIGJlYW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNsb29rdXAoKSI+bG9va3VwPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TG9vayB1cCB2YWx1ZXMgZm9yIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiwgPGNvZGU+c2NvcGU8L2NvZGU+LCBhbmQKKyA8Y29kZT50eXBlPC9jb2RlPiBwcm9wZXJ0aWVzIGlmIG5lY2Vzc2FyeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRBY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPnNldEFjdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGFjdGlvbiBVUkwgdG8gd2hpY2ggdGhpcyBmb3JtIHNob3VsZCBiZSBzdWJtaXR0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldEVuY3R5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldEVuY3R5cGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZW5jdHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRGb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9jdXM8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9jdXMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGZvY3VzIGZpZWxkIG5hbWUgZm9yIHRoaXMgZm9ybS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0TWV0aG9kKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNZXRob2Q8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWV0aG9kKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSByZXF1ZXN0IG1ldGhvZCB1c2VkIHdoZW4gc3VibWl0dGluZyB0aGlzIGZvcm0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgYXR0cmlidXRlIGtleSBuYW1lIG9mIG91ciBiZWFuLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRPbnJlc2V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnJlc2V0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uUmVzZXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIG9uUmVzZXQgZXZlbnQgc2NyaXB0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRPbnN1Ym1pdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zdWJtaXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25TdWJtaXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIG9uU3VibWl0IGV2ZW50IHNjcmlwdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBhdHRyaWJ1dGUgc2NvcGUgb2Ygb3VyIGJlYW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHlsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgc3R5bGUgYXR0cmlidXRlIGZvciB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHlsZUNsYXNzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBzdHlsZSBjbGFzcyBmb3IgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGVJZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgc3R5bGUgaWRlbnRpZmllciBmb3IgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldFRhcmdldChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFyZ2V0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RhcmdldCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgd2luZG93IHRhcmdldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VHlwZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBKYXZhIGNsYXNzIG9mIG91ciBiZWFuLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImFjdGlvbiI+PCEtLSAtLT48L0E+PEgzPgorYWN0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5hY3Rpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFjdGlvbiBVUkwgdG8gd2hpY2ggdGhpcyBmb3JtIHNob3VsZCBiZSBzdWJtaXR0ZWQsIGlmIGFueS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbmN0eXBlIj48IS0tIC0tPjwvQT48SDM+CitlbmN0eXBlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5lbmN0eXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZW50IGVuY29kaW5nIHRvIGJlIHVzZWQgb24gYSBQT1NUIHN1Ym1pdC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJmb2N1cyI+PCEtLSAtLT48L0E+PEgzPgorZm9jdXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmZvY3VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBmaWVsZCB0byByZWNlaXZlIGZvY3VzLCBpZiBhbnkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXRob2QiPjwhLS0gLS0+PC9BPjxIMz4KK21ldGhvZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bWV0aG9kPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSByZXF1ZXN0IG1ldGhvZCB1c2VkIHdoZW4gc3VibWl0dGluZyB0aGlzIGZvcm0uPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYXR0cmlidXRlIGtleSB1bmRlciB3aGljaCBvdXIgYXNzb2NpYXRlZCBiZWFuIGlzIHN0b3JlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJvbnJlc2V0Ij48IS0tIC0tPjwvQT48SDM+CitvbnJlc2V0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5vbnJlc2V0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBvblJlc2V0IGV2ZW50IHNjcmlwdC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJvbnN1Ym1pdCI+PCEtLSAtLT48L0E+PEgzPgorb25zdWJtaXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm9uc3VibWl0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBvblN1Ym1pdCBldmVudCBzY3JpcHQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2NvcGUiPjwhLS0gLS0+PC9BPjxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgKHJlcXVlc3Qgb3Igc2Vzc2lvbikgdW5kZXIgd2hpY2ggb3VyIGFzc29jaWF0ZWQgYmVhbgorIGlzIHN0b3JlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXJ2bGV0Ij48IS0tIC0tPjwvQT48SDM+CitzZXJ2bGV0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4gPEI+c2VydmxldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgQWN0aW9uU2VydmxldCBpbnN0YW5jZSB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoIChzbyB0aGF0IHdlIGNhbgorIGluaXRpYWxpemUgdGhlIDxjb2RlPnNlcnZsZXQ8L2NvZGU+IHByb3BlcnR5IG9uIGFueSBmb3JtIGJlYW4gdGhhdAorIHdlIGNyZWF0ZSkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3R5bGUiPjwhLS0gLS0+PC9BPjxIMz4KK3N0eWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3R5bGUgYXR0cmlidXRlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzdHlsZUNsYXNzIj48IS0tIC0tPjwvQT48SDM+CitzdHlsZUNsYXNzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZUNsYXNzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3R5bGVJZCI+PCEtLSAtLT48L0E+PEgzPgorc3R5bGVJZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c3R5bGVJZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgaWRlbnRpZmllciBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGFyZ2V0Ij48IS0tIC0tPjwvQT48SDM+Cit0YXJnZXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRhcmdldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgd2luZG93IHRhcmdldC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0eXBlIj48IS0tIC0tPjwvQT48SDM+Cit0eXBlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj50eXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGJlYW4gdG8gYmUgY3JlYXRlZCwgaWYgbmVjZXNzYXJ5LjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJGb3JtVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0Zvcm1UYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Gb3JtVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRFbmN0eXBlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEVuY3R5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEVuY3R5cGU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEVuY3R5cGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEVuY3R5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEVuY3R5cGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtlbmN0eXBlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWN0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWN0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBhY3Rpb24gVVJMIHRvIHdoaWNoIHRoaXMgZm9ybSBzaG91bGQgYmUgc3VibWl0dGVkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEFjdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBY3Rpb248L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb24pPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBhY3Rpb24gVVJMIHRvIHdoaWNoIHRoaXMgZm9ybSBzaG91bGQgYmUgc3VibWl0dGVkLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmFjdGlvbjwvQ09ERT4gLSBUaGUgbmV3IGFjdGlvbiBVUkw8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZvY3VzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZvY3VzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGb2N1czwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgZm9jdXMgZmllbGQgbmFtZSBmb3IgdGhpcyBmb3JtLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGb2N1czwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Rm9jdXM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb2N1cyk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGZvY3VzIGZpZWxkIG5hbWUgZm9yIHRoaXMgZm9ybS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mb2N1czwvQ09ERT4gLSBUaGUgbmV3IGZvY3VzIGZpZWxkIG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1ldGhvZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXRob2Q8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1ldGhvZDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgcmVxdWVzdCBtZXRob2QgdXNlZCB3aGVuIHN1Ym1pdHRpbmcgdGhpcyBmb3JtLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE1ldGhvZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TWV0aG9kPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRNZXRob2Q8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXRob2QpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSByZXF1ZXN0IG1ldGhvZCB1c2VkIHdoZW4gc3VibWl0dGluZyB0aGlzIGZvcm0uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWV0aG9kPC9DT0RFPiAtIFRoZSBuZXcgcmVxdWVzdCBtZXRob2Q8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgYXR0cmlidXRlIGtleSBuYW1lIG9mIG91ciBiZWFuLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgYXR0cmlidXRlIGtleSBuYW1lIG9mIG91ciBiZWFuLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gVGhlIG5ldyBhdHRyaWJ1dGUga2V5IG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9ucmVzZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0T25yZXNldDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0T25yZXNldDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgb25SZXNldCBldmVudCBzY3JpcHQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0T25yZXNldChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0T25yZXNldDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0T25yZXNldDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uUmVzZXQpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBvblJlc2V0IGV2ZW50IHNjcmlwdC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5vblJlc2V0PC9DT0RFPiAtIFRoZSBuZXcgZXZlbnQgc2NyaXB0PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRPbnN1Ym1pdCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRPbnN1Ym1pdDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0T25zdWJtaXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG9uU3VibWl0IGV2ZW50IHNjcmlwdC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRPbnN1Ym1pdChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0T25zdWJtaXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE9uc3VibWl0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25TdWJtaXQpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBvblN1Ym1pdCBldmVudCBzY3JpcHQuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+b25TdWJtaXQ8L0NPREU+IC0gVGhlIG5ldyBldmVudCBzY3JpcHQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNjb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTY29wZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgYXR0cmlidXRlIHNjb3BlIG9mIG91ciBiZWFuLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGF0dHJpYnV0ZSBzY29wZSBvZiBvdXIgYmVhbi48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zY29wZTwvQ09ERT4gLSBUaGUgbmV3IGF0dHJpYnV0ZSBzY29wZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U3R5bGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U3R5bGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFN0eWxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBzdHlsZSBhdHRyaWJ1dGUgZm9yIHRoaXMgdGFnLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTdHlsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U3R5bGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHlsZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHN0eWxlIGF0dHJpYnV0ZSBmb3IgdGhpcyB0YWcuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c3R5bGU8L0NPREU+IC0gVGhlIG5ldyBzdHlsZSBhdHRyaWJ1dGU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFN0eWxlQ2xhc3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U3R5bGVDbGFzczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U3R5bGVDbGFzczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgc3R5bGUgY2xhc3MgZm9yIHRoaXMgdGFnLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFN0eWxlQ2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFN0eWxlQ2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHlsZUNsYXNzKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgc3R5bGUgY2xhc3MgZm9yIHRoaXMgdGFnLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnN0eWxlQ2xhc3M8L0NPREU+IC0gVGhlIG5ldyBzdHlsZSBjbGFzczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U3R5bGVJZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTdHlsZUlkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTdHlsZUlkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBzdHlsZSBpZGVudGlmaWVyIGZvciB0aGlzIHRhZy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTdHlsZUlkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTdHlsZUlkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGVJZCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHN0eWxlIGlkZW50aWZpZXIgZm9yIHRoaXMgdGFnLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnN0eWxlSWQ8L0NPREU+IC0gVGhlIG5ldyBzdHlsZSBpZGVudGlmaWVyPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUYXJnZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VGFyZ2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRUYXJnZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHdpbmRvdyB0YXJnZXQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VGFyZ2V0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRUYXJnZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFRhcmdldDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RhcmdldCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHdpbmRvdyB0YXJnZXQuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dGFyZ2V0PC9DT0RFPiAtIFRoZSBuZXcgd2luZG93IHRhcmdldDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VHlwZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRUeXBlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBKYXZhIGNsYXNzIG9mIG91ciBiZWFuLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFR5cGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgSmF2YSBjbGFzcyBvZiBvdXIgYmVhbi48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT50eXBlPC9DT0RFPiAtIFRoZSBuZXcgSmF2YSBjbGFzczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZW5kZXIgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGZvcm0uPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlbmRlciB0aGUgZW5kIG9mIHRoaXMgZm9ybS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWN0aW9uTWFwcGluZ05hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWN0aW9uTWFwcGluZ05hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFjdGlvbk1hcHBpbmdOYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIGFjdGlvbiBjb252ZXJ0ZWQgaW50byBhbiBhY3Rpb24gbWFwcGluZyBwYXRoLiAgVGhlCisgdmFsdWUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gcHJvcGVydHkgaXMgbWFuaXB1bGF0ZWQgYXMgZm9sbG93cyBpbgorIGNvbXB1dGluZyB0aGUgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIG1hcHBpbmc6CisgPHVsPgorIDxsaT5BbnkgZmlsZW5hbWUgZXh0ZW5zaW9uIGlzIHJlbW92ZWQgKG9uIHRoZSB0aGVvcnkgdGhhdCBleHRlbnNpb24KKyAgICAgbWFwcGluZyBpcyBiZWluZyB1c2VkIHRvIHNlbGVjdCB0aGUgY29udHJvbGxlciBzZXJ2bGV0KS48L2xpPgorIDxsaT5JZiB0aGUgcmVzdWx0aW5nIHZhbHVlIGRvZXMgbm90IHN0YXJ0IHdpdGggYSBzbGFzaCwgdGhlbiBhCisgICAgIHNsYXNoIGlzIHByZXBlbmRlZC48L2xpPgorIDwvdWw+PC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWN0aW9uTWFwcGluZ1VSTCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBY3Rpb25NYXBwaW5nVVJMPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBY3Rpb25NYXBwaW5nVVJMPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIGFjdGlvbiBjb252ZXJ0ZWQgaW50byBhIHNlcnZlci1yZWxhdGl2ZSBVUkwuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9va3VwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2xvb2t1cDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+bG9va3VwPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+TG9vayB1cCB2YWx1ZXMgZm9yIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiwgPGNvZGU+c2NvcGU8L2NvZGU+LCBhbmQKKyA8Y29kZT50eXBlPC9jb2RlPiBwcm9wZXJ0aWVzIGlmIG5lY2Vzc2FyeS48REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHJlcXVpcmVkIHZhbHVlIGNhbm5vdCBiZSBsb29rZWQgdXA8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRm9ybVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRlNGFkNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sCkBAIC0wLDAgKzEsMzIyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgSGlkZGVuVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJIaWRkZW5UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgIEhpZGRlblRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkhpZGRlblRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5IaWRkZW5UYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0RMPgorCis8UD4KK0N1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJ0ZXh0Ii4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5IaWRkZW5UYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNhY2NlcHQiPmFjY2VwdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNyZWRpc3BsYXkiPnJlZGlzcGxheTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3R5cGUiPnR5cGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNjb2xzIj5jb2xzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWF4bGVuZ3RoIj5tYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNyb3dzIj5yb3dzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGlzYWJsZWQiPmRpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmJsdXIiPm9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25jaGFuZ2UiPm9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNsaWNrIj5vbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmRibGNsaWNrIj5vbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmZvY3VzIj5vbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleWRvd24iPm9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlwcmVzcyI+b25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXl1cCI+b25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZWRvd24iPm9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlbW92ZSI+b25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdXQiPm9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdmVyIj5vbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZXVwIj5vbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uc2VsZWN0Ij5vbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVhZG9ubHkiPnJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZSI+c3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlQ2xhc3MiPnN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlSWQiPnN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGl0bGUiPnRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9CVUZGRVJFRCwgRVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwjSGlkZGVuVGFnKCkiPkhpZGRlblRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0QWNjZXB0KCkiPmdldEFjY2VwdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2dldFJlZGlzcGxheSgpIj5nZXRSZWRpc3BsYXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNzZXRBY2NlcHQoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2VwdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNzZXRSZWRpc3BsYXkoYm9vbGVhbikiPnNldFJlZGlzcGxheTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRDb2xzKCkiPmdldENvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRNYXhsZW5ndGgoKSI+Z2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRSb3dzKCkiPmdldFJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRTaXplKCkiPmdldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldENvbHMoamF2YS5sYW5nLlN0cmluZykiPnNldENvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRNYXhsZW5ndGgoamF2YS5sYW5nLlN0cmluZykiPnNldE1heGxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFJvd3MoamF2YS5sYW5nLlN0cmluZykiPnNldFJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRTaXplKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTaXplPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmJsdXIoKSI+Z2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNoYW5nZSgpIj5nZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jbGljaygpIj5nZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmRibGNsaWNrKCkiPmdldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZm9jdXMoKSI+Z2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlkb3duKCkiPmdldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlwcmVzcygpIj5nZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXVwKCkiPmdldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vkb3duKCkiPmdldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlbW92ZSgpIj5nZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW91dCgpIj5nZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3ZlcigpIj5nZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZXVwKCkiPmdldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25zZWxlY3QoKSI+Z2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFJlYWRvbmx5KCkiPmdldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZSgpIj5nZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj5nZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUlkKCkiPmdldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRhYmluZGV4KCkiPmdldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZSgpIj5nZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlS2V5RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlS2V5RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlTW91c2VFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVNb3VzZUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVN0eWxlcygpIj5wcmVwYXJlU3R5bGVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlVGV4dEV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZVRleHRFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFjY2Vzc2tleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXREaXNhYmxlZChib29sZWFuKSI+c2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkhpZGRlblRhZygpIj48IS0tIC0tPjwvQT48SDM+CitIaWRkZW5UYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5IaWRkZW5UYWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyB0YWcuPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkhpZGRlblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWciPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTM4ODQzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sCkBAIC0wLDAgKzEsNDQ3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgSHRtbFRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSHRtbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgSHRtbFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSHRtbFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkh0bWxUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK1JlbmRlcnMgYW4gSFRNTCA8aHRtbD4gZWxlbWVudCB3aXRoIGFwcHJvcHJpYXRlIGxhbmd1YWdlIGF0dHJpYnV0ZXMgaWYKKyB0aGVyZSBpcyBhIGN1cnJlbnQgTG9jYWxlIGF2YWlsYWJsZSBpbiB0aGUgdXNlcidzIHNlc3Npb24uCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSHRtbFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sI2xvY2FsZSI+bG9jYWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Nob3VsZCB3ZSBzZXQgdGhlIGN1cnJlbnQgTG9jYWxlIGZvciB0aGlzIHVzZXIgaWYgbmVlZGVkPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCN4aHRtbCI+eGh0bWw8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXJlIHdlIHJlbmRlcmluZyBhbiB4aHRtbCBwYWdlPzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQUdBSU48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNIdG1sVGFnKCkiPkh0bWxUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkxvY2FsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjY3VycmVudExvY2FsZSgpIj5jdXJyZW50TG9jYWxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBjdXJyZW50IExvY2FsZSBmb3IgdGhpcyByZXF1ZXN0LCBjcmVhdGluZyBhIG5ldyBvbmUgaWYKKyBuZWNlc3NhcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjZ2V0WGh0bWwoKSI+Z2V0WGh0bWw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNzZXRMb2NhbGUoYm9vbGVhbikiPnNldExvY2FsZTwvQT48L0I+KGJvb2xlYW4mbmJzcDtsb2NhbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjc2V0WGh0bWwoYm9vbGVhbikiPnNldFhodG1sPC9BPjwvQj4oYm9vbGVhbiZuYnNwO3hodG1sKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2NhbGUiPjwhLS0gLS0+PC9BPjxIMz4KK2xvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+bG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPlNob3VsZCB3ZSBzZXQgdGhlIGN1cnJlbnQgTG9jYWxlIGZvciB0aGlzIHVzZXIgaWYgbmVlZGVkPzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InhodG1sIj48IS0tIC0tPjwvQT48SDM+Cit4aHRtbDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+eGh0bWw8L0I+PC9QUkU+Cis8REw+Cis8REQ+QXJlIHdlIHJlbmRlcmluZyBhbiB4aHRtbCBwYWdlPzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJIdG1sVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0h0bWxUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5IdG1sVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRMb2NhbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TG9jYWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRMb2NhbGU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldExvY2FsZShib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TG9jYWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRMb2NhbGU8L0I+KGJvb2xlYW4mbmJzcDtsb2NhbGUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRYaHRtbCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRYaHRtbDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0WGh0bWw8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFhodG1sKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRYaHRtbDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0WGh0bWw8L0I+KGJvb2xlYW4mbmJzcDt4aHRtbCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3VycmVudExvY2FsZSgpIj48IS0tIC0tPjwvQT48SDM+CitjdXJyZW50TG9jYWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkxvY2FsZSA8Qj5jdXJyZW50TG9jYWxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBjdXJyZW50IExvY2FsZSBmb3IgdGhpcyByZXF1ZXN0LCBjcmVhdGluZyBhIG5ldyBvbmUgaWYKKyBuZWNlc3NhcnkuICBJZiB0aGVyZSBpcyBubyBjdXJyZW50IExvY2FsZSwgYW5kIGxvY2FsZSBzdXBwb3J0IGlzIG5vdAorIHJlcXVlc3RlZCwgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikh0bWxUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDZiMDBmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbApAQCAtMCwwICsxLDk0NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEltYWdlVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkltYWdlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzICBJbWFnZVRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlN1Ym1pdFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWFnZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5JbWFnZVRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPjwvREw+CisKKzxQPgorVGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiaW1hZ2UiLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPk9sZWcgViBBbGV4ZWV2PC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWFnZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNhbHQiPmFsdDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgaW1hZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjYWx0S2V5Ij5hbHRLZXk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGltYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2JvcmRlciI+Ym9yZGVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBib3JkZXIgc2l6ZSBhcm91bmQgdGhlIGltYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2J1bmRsZSI+YnVuZGxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3Igb3VyIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO2phdmEudXRpbC5Mb2NhbGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWZhdWx0IExvY2FsZSBmb3Igb3VyIHNlcnZlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNsb2NhbGUiPmxvY2FsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2Vzc2lvbiBhdHRyaWJ1dGUga2V5IGZvciBvdXIgbG9jYWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3BhZ2UiPnBhZ2U8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRleHQtcmVsYXRpdmUgVVJJIG9mIHRoZSBpbWFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNwYWdlS2V5Ij5wYWdlS2V5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGNvbnRleHQtcmVsYXRpdmUgVVJJIG9mIHRoZSBpbWFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgYXR0cmlidXRlIGZvciB0aGUgaW1hZ2UgYnV0dG9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NyYyI+c3JjPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBVUkwgb2YgdGhpcyBpbWFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzcmNLZXkiPnNyY0tleTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgVVJMIG9mIHRoaXMgaW1hZ2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlN1Ym1pdFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3RleHQiPnRleHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkaXNhYmxlZCI+ZGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uYmx1ciI+b25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNoYW5nZSI+b25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uY2xpY2siPm9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uZGJsY2xpY2siPm9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uZm9jdXMiPm9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5ZG93biI+b25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleXByZXNzIj5vbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleXVwIj5vbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlZG93biI+b25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2Vtb3ZlIj5vbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW91dCI+b25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW92ZXIiPm9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNldXAiPm9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25zZWxlY3QiPm9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWFkb25seSI+cmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlIj5zdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGVDbGFzcyI+c3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGVJZCI+c3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0aXRsZSI+dGl0bGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0JVRkZFUkVELCBFVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI0ltYWdlVGFnKCkiPkltYWdlVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNhbHQoKSI+YWx0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBhbHRlcm5hdGUgdGV4dCB0byBiZSBpbmNsdWRlZCBvbiB0aGlzIGdlbmVyYXRlZCBlbGVtZW50LAorIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZXJlIGlzIG5vIHN1Y2ggdGV4dC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZ2V0Qm9yZGVyKCkiPmdldEJvcmRlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZ2V0UGFnZSgpIj5nZXRQYWdlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNnZXRQYWdlS2V5KCkiPmdldFBhZ2VLZXk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldFNyYygpIj5nZXRTcmM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldFNyY0tleSgpIj5nZXRTcmNLZXk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FsdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc2V0QWx0S2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHRLZXk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWx0S2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzZXRCb3JkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEJvcmRlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtib3JkZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QnVuZGxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldFBhZ2VLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFBhZ2VLZXk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZUtleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc2V0U3JjKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTcmM8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3JjKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzZXRTcmNLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFNyY0tleTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzcmNLZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzcmMoKSI+c3JjPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBiYXNlIHNvdXJjZSBVUkwgdGhhdCB3aWxsIGJlIHJlbmRlcmVkIGluIHRoZSA8Y29kZT5zcmM8L2NvZGU+CisgcHJvcGVydHkgZm9yIHRoaXMgZ2VuZXJhdGVkIGVsZW1lbnQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZXJlIGlzCisgbm8gc3VjaCBVUkwuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TdWJtaXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+ZG9BZnRlckJvZHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+Z2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmJsdXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZGVmYXVsdExvY2FsZSI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdExvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBqYXZhLnV0aWwuTG9jYWxlIDxCPmRlZmF1bHRMb2NhbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgTG9jYWxlIGZvciBvdXIgc2VydmVyLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFsdCI+PCEtLSAtLT48L0E+PEgzPgorYWx0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5hbHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGltYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFsdEtleSI+PCEtLSAtLT48L0E+PEgzPgorYWx0S2V5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5hbHRLZXk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGltYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJvcmRlciI+PCEtLSAtLT48L0E+PEgzPgorYm9yZGVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5ib3JkZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvcmRlciBzaXplIGFyb3VuZCB0aGUgaW1hZ2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYnVuZGxlIj48IS0tIC0tPjwvQT48SDM+CitidW5kbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmJ1bmRsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciByZXNvdXJjZXMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9jYWxlIj48IS0tIC0tPjwvQT48SDM+Citsb2NhbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmxvY2FsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2Vzc2lvbiBhdHRyaWJ1dGUga2V5IGZvciBvdXIgbG9jYWxlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhZ2UiPjwhLS0gLS0+PC9BPjxIMz4KK3BhZ2U8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQtcmVsYXRpdmUgVVJJIG9mIHRoZSBpbWFnZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYWdlS2V5Ij48IS0tIC0tPjwvQT48SDM+CitwYWdlS2V5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlS2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGNvbnRleHQtcmVsYXRpdmUgVVJJIG9mIHRoZSBpbWFnZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIGF0dHJpYnV0ZSBmb3IgdGhlIGltYWdlIGJ1dHRvbi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzcmMiPjwhLS0gLS0+PC9BPjxIMz4KK3NyYzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c3JjPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBVUkwgb2YgdGhpcyBpbWFnZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzcmNLZXkiPjwhLS0gLS0+PC9BPjxIMz4KK3NyY0tleTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c3JjS2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBVUkwgb2YgdGhpcyBpbWFnZS48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iSW1hZ2VUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorSW1hZ2VUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5JbWFnZVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0QWx0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFsdDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWx0PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBbHQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFsdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QWx0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWx0KTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWx0S2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFsdEtleTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWx0S2V5PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFsdEtleTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QWx0S2V5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWx0S2V5KTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Qm9yZGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEJvcmRlcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Qm9yZGVyPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRCb3JkZXIoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJvcmRlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Qm9yZGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Ym9yZGVyKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QnVuZGxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QnVuZGxlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QnVuZGxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TG9jYWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TG9jYWxlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TG9jYWxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFnZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYWdlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYWdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhZ2VLZXkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFnZUtleTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFnZUtleTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFnZUtleShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGFnZUtleTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGFnZUtleTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2VLZXkpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBjbGFzczogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT48L0NPREU+PC9CPjwvREQ+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVzY3JpcHRpb24gY29waWVkIGZyb20gY2xhc3M6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+PC9DT0RFPjwvQj48L0REPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPkZvbGxvd2luZyBjb3BpZWQgZnJvbSBjbGFzczogPENPREU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU3VibWl0VGFnPC9DT0RFPjwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBUaGUgcHJvcGVydHkgbmFtZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U3JjKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNyYzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U3JjPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTcmMoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNyYzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U3JjPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3JjKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U3JjS2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNyY0tleTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U3JjS2V5PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTcmNLZXkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNyY0tleTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U3JjS2V5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3JjS2V5KTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWx0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2FsdDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+YWx0PC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBhbHRlcm5hdGUgdGV4dCB0byBiZSBpbmNsdWRlZCBvbiB0aGlzIGdlbmVyYXRlZCBlbGVtZW50LAorIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZXJlIGlzIG5vIHN1Y2ggdGV4dC48REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNyYygpIj48IS0tIC0tPjwvQT48SDM+CitzcmM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNyYzwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgYmFzZSBzb3VyY2UgVVJMIHRoYXQgd2lsbCBiZSByZW5kZXJlZCBpbiB0aGUgPGNvZGU+c3JjPC9jb2RlPgorIHByb3BlcnR5IGZvciB0aGlzIGdlbmVyYXRlZCBlbGVtZW50LCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGVyZSBpcworIG5vIHN1Y2ggVVJMLjxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbWFnZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVmNjZiNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sCkBAIC0wLDAgKzEsMTcwMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEltZ1RhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkltZ1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgSW1nVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWdUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+SW1nVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvREw+CisKKzxQPgorR2VuZXJhdGUgYW4gSU1HIHRhZyB0byB0aGUgc3BlY2lmaWVkIGltYWdlIFVSSS4KKyA8cD4KKyBUT0RPOgorIDx1bD4KKyAgIDxsaT5tYWtlIHRoZSA8c3Ryb25nPmFsdDwvc3Ryb25nPiwgPHN0cm9uZz5zcmM8L3N0cm9uZz4sIGFuZAorICAgICAgIDxzdHJvbmc+bG93c3JjPC9zdHJvbmc+IHNldHRhYmxlIGZyb20gcHJvcGVydGllcyAoZm9yIGkxOG4pPC9saT4KKyAgIDxsaT5oYW5kbGUgPHN0cm9uZz5vbkxvYWQ8L3N0cm9uZz4sIDxzdHJvbmc+b25BYm9ydDwvc3Ryb25nPiwgYW5kCisgICAgICAgPHN0cm9uZz5vbkVycm9yPC9zdHJvbmc+IGV2ZW50cyAobXkgSmF2YVNjcmlwdCBib29rIGlzIHZlcnkgb2xkLAorICAgICAgIHRoZXJlIG1heSBiZSBtb3JlIHVuc3VwcG9ydGVkIGV2ZW50cyBpbiB0aGUgcGFzdCBjb3VwbGUgb2YgSUUKKyAgICAgICB2ZXJzaW9ucykKKyA8L3VsPgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+TWljaGFlbCBXZXN0YmF5LCBDcmFpZyBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWdUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2FsaWduIj5hbGlnbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcHJvcGVydHkgdG8gc3BlY2lmeSB3aGVyZSB0byBhbGlnbiB0aGUgaW1hZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2FsdCI+YWx0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhbHRlcm5hdGUgdGV4dCB0byBkaXNwbGF5IGZvciB0aGUgaW1hZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2FsdEtleSI+YWx0S2V5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIGxvb2t1cCBrZXkgdXNlZCB0byBsb29rIHVwIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNib3JkZXIiPmJvcmRlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYm9yZGVyIHNpemUgYXJvdW5kIHRoZSBpbWFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjYnVuZGxlIj5idW5kbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUgY29udGFpbmluZyBvdXIgbWVzc2FnZQorIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO2phdmEudXRpbC5Mb2NhbGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCBMb2NhbGUgZm9yIG91ciBzZXJ2ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2hlaWdodCI+aGVpZ2h0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBpbWFnZSBoZWlnaHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2hzcGFjZSI+aHNwYWNlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBob3Jpem9udGFsIHNwYWNpbmcgYXJvdW5kIHRoZSBpbWFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjaW1hZ2VOYW1lIj5pbWFnZU5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGltYWdlIG5hbWUgZm9yIG5hbWVkIGltYWdlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjaXNtYXAiPmlzbWFwPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NlcnZlci1zaWRlIGltYWdlIG1hcCBkZWNsYXJhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjbG9jYWxlIj5sb2NhbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZSBMb2NhbGUgdG8gYmUgdXNlZCBmb3IKKyBsb29raW5nIHVwIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNsb3dzcmMiPmxvd3NyYzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbG93IHJlc29sdXRpb24gaW1hZ2Ugc291cmNlIFVSSS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEpTUCBiZWFuIG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3BhZ2UiPnBhZ2U8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRleHQtcmVsYXRpdmUgcGF0aCwgc3RhcnRpbmcgd2l0aCBhIHNsYXNoIGNoYXJhY3Rlciwgb2YgdGhlCisgaW1hZ2UgdG8gYmUgZGlzcGxheWVkIGJ5IHRoaXMgcmVuZGVyZWQgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNwYWdlS2V5Ij5wYWdlS2V5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgdW5kZXIgd2hpY2ggd2Ugc2hvdWxkIGxvb2sgdXAgdGhlCisgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0YWcsIGlmIGFueS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcGFyYW1JZCI+cGFyYW1JZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbiBzaXR1YXRpb25zIHdoZXJlIGFuIGltYWdlIGlzIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCAoc3VjaCBhcyB0byBjcmVhdGUKKyBhIGNoYXJ0IGdyYXBoKSwgdGhpcyBzcGVjaWZpZXMgdGhlIHNpbmdsZS1wYXJhbWV0ZXIgcmVxdWVzdCBwYXJhbWV0ZXIKKyBuYW1lIHRvIGdlbmVyYXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNwYXJhbU5hbWUiPnBhcmFtTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNwYXJhbVByb3BlcnR5Ij5wYXJhbVByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNwYXJhbVNjb3BlIj5wYXJhbVNjb3BlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHNjb3BlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEpTUCBiZWFuIHByb3BlcnR5IG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3Njb3BlIj5zY29wZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2NvcGUgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NyYyI+c3JjPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBpbWFnZSBzb3VyY2UgVVJJLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzcmNLZXkiPnNyY0tleTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IHVuZGVyIHdoaWNoIHdlIHNob3VsZCBsb29rIHVwIHRoZQorIDxjb2RlPnNyYzwvY29kZT4gYXR0cmlidXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0YWcsIGlmIGFueS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjdXNlbWFwIj51c2VtYXA8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xpZW50LXNpZGUgaW1hZ2UgbWFwIGRlY2xhcmF0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCN2c3BhY2UiPnZzcGFjZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdmVydGljYWwgc3BhY2luZyBhcm91bmQgdGhlIGltYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCN3aWR0aCI+d2lkdGg8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGltYWdlIHdpZHRoLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkaXNhYmxlZCI+ZGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uYmx1ciI+b25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNoYW5nZSI+b25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uY2xpY2siPm9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uZGJsY2xpY2siPm9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uZm9jdXMiPm9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5ZG93biI+b25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleXByZXNzIj5vbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleXVwIj5vbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlZG93biI+b25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2Vtb3ZlIj5vbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW91dCI+b25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW92ZXIiPm9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNldXAiPm9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25zZWxlY3QiPm9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWFkb25seSI+cmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlIj5zdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGVDbGFzcyI+c3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGVJZCI+c3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0aXRsZSI+dGl0bGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0JVRkZFUkVELCBFVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNJbWdUYWcoKSI+SW1nVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjYWx0KCkiPmFsdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgYWx0ZXJuYXRlIHRleHQgdG8gYmUgaW5jbHVkZWQgb24gdGhpcyBnZW5lcmF0ZWQgZWxlbWVudCwKKyBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGVyZSBpcyBubyBzdWNoIHRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlciB0aGUgZW5kIG9mIHRoZSBJTUcgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVuZGVyIHRoZSBiZWdpbm5pbmcgb2YgdGhlIElNRyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0QWxpZ24oKSI+Z2V0QWxpZ248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRBbHQoKSI+Z2V0QWx0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldEJvcmRlcigpIj5nZXRCb3JkZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRCdW5kbGUoKSI+Z2V0QnVuZGxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0SGVpZ2h0KCkiPmdldEhlaWdodDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldEhzcGFjZSgpIj5nZXRIc3BhY2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRJbWFnZU5hbWUoKSI+Z2V0SW1hZ2VOYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0SXNtYXAoKSI+Z2V0SXNtYXA8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRMb2NhbGUoKSI+Z2V0TG9jYWxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0TG93c3JjKCkiPmdldExvd3NyYzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFBhZ2UoKSI+Z2V0UGFnZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFBhZ2VLZXkoKSI+Z2V0UGFnZUtleTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFBhcmFtSWQoKSI+Z2V0UGFyYW1JZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFBhcmFtTmFtZSgpIj5nZXRQYXJhbU5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRQYXJhbVByb3BlcnR5KCkiPmdldFBhcmFtUHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRQYXJhbVNjb3BlKCkiPmdldFBhcmFtU2NvcGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0U3JjKCkiPmdldFNyYzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFNyY0tleSgpIj5nZXRTcmNLZXk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRVc2VtYXAoKSI+Z2V0VXNlbWFwPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0VnNwYWNlKCkiPmdldFZzcGFjZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFdpZHRoKCkiPmdldFdpZHRoPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldEFsaWduKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbGlnbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthbGlnbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FsdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FsdEtleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldEJvcmRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Qm9yZGVyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2JvcmRlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QnVuZGxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldEhlaWdodChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGVpZ2h0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2hlaWdodCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldEhzcGFjZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SHNwYWNlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2hzcGFjZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldEltYWdlTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW1hZ2VOYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ltYWdlTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldElzbWFwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJc21hcDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpc21hcCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG9jYWxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldExvd3NyYyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG93c3JjPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvd3NyYyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFBhZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldFBhZ2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFBhZ2VLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFBhZ2VLZXk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZUtleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFBhcmFtSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtSWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1JZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFBhcmFtTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1OYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFBhcmFtUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtUHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1Qcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFBhcmFtU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtU2NvcGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1TY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFNyYyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3JjPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NyYyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFNyY0tleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3JjS2V5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NyY0tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFVzZW1hcChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlbWFwPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VzZW1hcCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFZzcGFjZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VnNwYWNlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZzcGFjZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFdpZHRoKGphdmEubGFuZy5TdHJpbmcpIj5zZXRXaWR0aDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt3aWR0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzcmMoKSI+c3JjPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBiYXNlIHNvdXJjZSBVUkwgdGhhdCB3aWxsIGJlIHJlbmRlcmVkIGluIHRoZSA8Y29kZT5zcmM8L2NvZGU+CisgcHJvcGVydHkgZm9yIHRoaXMgZ2VuZXJhdGVkIGVsZW1lbnQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZXJlIGlzCisgbm8gc3VjaCBVUkwuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3VybChqYXZhLmxhbmcuU3RyaW5nKSI+dXJsPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VybCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc3BlY2lmaWVkIHNyYyBVUkwsIG1vZGlmaWVkIGFzIG5lY2Vzc2FyeSB3aXRoIG9wdGlvbmFsCisgcmVxdWVzdCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRXZlbnRIYW5kbGVycygpIj5wcmVwYXJlRXZlbnRIYW5kbGVyczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUZvY3VzRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlRm9jdXNFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJhbGlnbiI+PCEtLSAtLT48L0E+PEgzPgorYWxpZ248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFsaWduPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSB0byBzcGVjaWZ5IHdoZXJlIHRvIGFsaWduIHRoZSBpbWFnZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJhbHQiPjwhLS0gLS0+PC9BPjxIMz4KK2FsdDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+YWx0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhbHRlcm5hdGUgdGV4dCB0byBkaXNwbGF5IGZvciB0aGUgaW1hZ2UuICBUaGlzIGlzIHVzZWQgZm9yCisgdGV4dCBiYXNlZCBicm93c2VycyBhbmQvb3IgYXMgYSAidG9vbC10aXAiIGZvciB0aGUgaW1hZ2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWx0S2V5Ij48IS0tIC0tPjwvQT48SDM+CithbHRLZXk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFsdEtleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSBsb29rdXAga2V5IHVzZWQgdG8gbG9vayB1cCBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJib3JkZXIiPjwhLS0gLS0+PC9BPjxIMz4KK2JvcmRlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Ym9yZGVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib3JkZXIgc2l6ZSBhcm91bmQgdGhlIGltYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJ1bmRsZSI+PCEtLSAtLT48L0E+PEgzPgorYnVuZGxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5idW5kbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUgY29udGFpbmluZyBvdXIgbWVzc2FnZQorIHJlc291cmNlcy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZWZhdWx0TG9jYWxlIj48IS0tIC0tPjwvQT48SDM+CitkZWZhdWx0TG9jYWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGphdmEudXRpbC5Mb2NhbGUgPEI+ZGVmYXVsdExvY2FsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCBMb2NhbGUgZm9yIG91ciBzZXJ2ZXIuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaGVpZ2h0Ij48IS0tIC0tPjwvQT48SDM+CitoZWlnaHQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmhlaWdodDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgaW1hZ2UgaGVpZ2h0LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImhzcGFjZSI+PCEtLSAtLT48L0E+PEgzPgoraHNwYWNlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5oc3BhY2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGhvcml6b250YWwgc3BhY2luZyBhcm91bmQgdGhlIGltYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImltYWdlTmFtZSI+PCEtLSAtLT48L0E+PEgzPgoraW1hZ2VOYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pbWFnZU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGltYWdlIG5hbWUgZm9yIG5hbWVkIGltYWdlcy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc21hcCI+PCEtLSAtLT48L0E+PEgzPgoraXNtYXA8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmlzbWFwPC9CPjwvUFJFPgorPERMPgorPEREPlNlcnZlci1zaWRlIGltYWdlIG1hcCBkZWNsYXJhdGlvbi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2NhbGUiPjwhLS0gLS0+PC9BPjxIMz4KK2xvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgTG9jYWxlIHRvIGJlIHVzZWQgZm9yCisgbG9va2luZyB1cCBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb3dzcmMiPjwhLS0gLS0+PC9BPjxIMz4KK2xvd3NyYzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bG93c3JjPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsb3cgcmVzb2x1dGlvbiBpbWFnZSBzb3VyY2UgVVJJLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSlNQIGJlYW4gbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYWdlIj48IS0tIC0tPjwvQT48SDM+CitwYWdlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZXh0LXJlbGF0aXZlIHBhdGgsIHN0YXJ0aW5nIHdpdGggYSBzbGFzaCBjaGFyYWN0ZXIsIG9mIHRoZQorIGltYWdlIHRvIGJlIGRpc3BsYXllZCBieSB0aGlzIHJlbmRlcmVkIHRhZy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYWdlS2V5Ij48IS0tIC0tPjwvQT48SDM+CitwYWdlS2V5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlS2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgdW5kZXIgd2hpY2ggd2Ugc2hvdWxkIGxvb2sgdXAgdGhlCisgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0YWcsIGlmIGFueS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJhbUlkIj48IS0tIC0tPjwvQT48SDM+CitwYXJhbUlkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbUlkPC9CPjwvUFJFPgorPERMPgorPEREPkluIHNpdHVhdGlvbnMgd2hlcmUgYW4gaW1hZ2UgaXMgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIChzdWNoIGFzIHRvIGNyZWF0ZQorIGEgY2hhcnQgZ3JhcGgpLCB0aGlzIHNwZWNpZmllcyB0aGUgc2luZ2xlLXBhcmFtZXRlciByZXF1ZXN0IHBhcmFtZXRlcgorIG5hbWUgdG8gZ2VuZXJhdGUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyYW1OYW1lIj48IS0tIC0tPjwvQT48SDM+CitwYXJhbU5hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBuYW1lLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcmFtUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcmFtUHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gcHJvcGVydHkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyYW1TY29wZSI+PCEtLSAtLT48L0E+PEgzPgorcGFyYW1TY29wZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1TY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBzY29wZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKU1AgYmVhbiBwcm9wZXJ0eSBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNjb3BlIj48IS0tIC0tPjwvQT48SDM+CitzY29wZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZSBwcm9wZXJ0eSwgaWYgYW55LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNyYyI+PCEtLSAtLT48L0E+PEgzPgorc3JjPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zcmM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGltYWdlIHNvdXJjZSBVUkkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3JjS2V5Ij48IS0tIC0tPjwvQT48SDM+CitzcmNLZXk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNyY0tleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IHVuZGVyIHdoaWNoIHdlIHNob3VsZCBsb29rIHVwIHRoZQorIDxjb2RlPnNyYzwvY29kZT4gYXR0cmlidXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0YWcsIGlmIGFueS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ1c2VtYXAiPjwhLS0gLS0+PC9BPjxIMz4KK3VzZW1hcDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dXNlbWFwPC9CPjwvUFJFPgorPERMPgorPEREPkNsaWVudC1zaWRlIGltYWdlIG1hcCBkZWNsYXJhdGlvbi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2c3BhY2UiPjwhLS0gLS0+PC9BPjxIMz4KK3ZzcGFjZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dnNwYWNlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB2ZXJ0aWNhbCBzcGFjaW5nIGFyb3VuZCB0aGUgaW1hZ2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0id2lkdGgiPjwhLS0gLS0+PC9BPjxIMz4KK3dpZHRoPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj53aWR0aDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgaW1hZ2Ugd2lkdGguPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkltZ1RhZygpIj48IS0tIC0tPjwvQT48SDM+CitJbWdUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5JbWdUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEFsaWduKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFsaWduPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBbGlnbjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QWxpZ24oamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFsaWduPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBbGlnbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FsaWduKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWx0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFsdDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWx0PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBbHQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFsdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QWx0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWx0KTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWx0S2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFsdEtleTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWx0S2V5PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFsdEtleTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QWx0S2V5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWx0S2V5KTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Qm9yZGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEJvcmRlcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Qm9yZGVyPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRCb3JkZXIoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJvcmRlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Qm9yZGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Ym9yZGVyKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QnVuZGxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QnVuZGxlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QnVuZGxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SGVpZ2h0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEhlaWdodDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SGVpZ2h0PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRIZWlnaHQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEhlaWdodDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SGVpZ2h0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aGVpZ2h0KTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SHNwYWNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEhzcGFjZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SHNwYWNlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRIc3BhY2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEhzcGFjZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SHNwYWNlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aHNwYWNlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SW1hZ2VOYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEltYWdlTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SW1hZ2VOYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJbWFnZU5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEltYWdlTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SW1hZ2VOYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aW1hZ2VOYW1lKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SXNtYXAoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SXNtYXA8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldElzbWFwPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJc21hcChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SXNtYXA8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldElzbWFwPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aXNtYXApPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRMb2NhbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TG9jYWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRMb2NhbGU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TG9jYWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRMb2NhbGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRMb3dzcmMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TG93c3JjPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRMb3dzcmM8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldExvd3NyYyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TG93c3JjPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRMb3dzcmM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb3dzcmMpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFnZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYWdlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYWdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhZ2VLZXkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFnZUtleTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFnZUtleTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFnZUtleShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGFnZUtleTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGFnZUtleTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2VLZXkpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXJhbUlkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhcmFtSWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhcmFtSWQ8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhcmFtSWQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhcmFtSWQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtSWQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbUlkKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFyYW1OYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhcmFtTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFyYW1OYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYXJhbU5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhcmFtTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGFyYW1OYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1OYW1lKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFyYW1Qcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJhbVByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYXJhbVByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYXJhbVByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbVByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYXJhbVByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1Qcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtU2NvcGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFyYW1TY29wZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFyYW1TY29wZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFyYW1TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGFyYW1TY29wZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGFyYW1TY29wZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtU2NvcGUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNjb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTY29wZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTY29wZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U3JjKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNyYzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U3JjPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTcmMoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNyYzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U3JjPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3JjKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U3JjS2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNyY0tleTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U3JjS2V5PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTcmNLZXkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNyY0tleTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U3JjS2V5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3JjS2V5KTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VXNlbWFwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFVzZW1hcDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VXNlbWFwPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRVc2VtYXAoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFVzZW1hcDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VXNlbWFwPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXNlbWFwKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VnNwYWNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZzcGFjZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VnNwYWNlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWc3BhY2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZzcGFjZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VnNwYWNlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dnNwYWNlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0V2lkdGgoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0V2lkdGg8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFdpZHRoPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRXaWR0aChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0V2lkdGg8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFdpZHRoPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7d2lkdGgpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlbmRlciB0aGUgYmVnaW5uaW5nIG9mIHRoZSBJTUcgdGFnLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVyIHRoZSBlbmQgb2YgdGhlIElNRyB0YWcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhbHQoKSI+PCEtLSAtLT48L0E+PEgzPgorYWx0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5hbHQ8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGFsdGVybmF0ZSB0ZXh0IHRvIGJlIGluY2x1ZGVkIG9uIHRoaXMgZ2VuZXJhdGVkIGVsZW1lbnQsCisgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlcmUgaXMgbm8gc3VjaCB0ZXh0LjxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3JjKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NyYzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c3JjPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBiYXNlIHNvdXJjZSBVUkwgdGhhdCB3aWxsIGJlIHJlbmRlcmVkIGluIHRoZSA8Y29kZT5zcmM8L2NvZGU+CisgcHJvcGVydHkgZm9yIHRoaXMgZ2VuZXJhdGVkIGVsZW1lbnQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZXJlIGlzCisgbm8gc3VjaCBVUkwuPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ1cmwoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3VybDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dXJsPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgc3BlY2lmaWVkIHNyYyBVUkwsIG1vZGlmaWVkIGFzIG5lY2Vzc2FyeSB3aXRoIG9wdGlvbmFsCisgcmVxdWVzdCBwYXJhbWV0ZXJzLgorIDxwPgorIFRoaXMgaXMgYmFzZWQgb24gdGhlIHdheSBhCisgPGEgaHJlZj0iTGlua1RhZy5odG1sI2h5cGVybGluayI+aHlwZXJsaW5rPC9hPgorIGlzIGdlbmVyYXRlZCBmb3IgdGhlIDxhIGhyZWY9IkxpbmtUYWcuaHRtbCI+TGlua1RhZzwvYT4uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dXJsPC9DT0RFPiAtIFRoZSBVUkwgdG8gYmUgbW9kaWZpZWQgKG9yIG51bGwgaWYgdGhpcyB1cmwgd2lsbCBub3QgYmUgdXNlZCk8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGVycm9yIG9jY3VycyBwcmVwYXJpbmcgdGhlIFVSTDxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48Q09ERT5MaW5rVGFnI2h5cGVybGluazwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbWdUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTdlODY2ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbApAQCAtMCwwICsxLDExMDUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBMaW5rVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJMaW5rVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzICBMaW5rVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5MaW5rVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIj5SZXdyaXRlVGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5MaW5rVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvREw+CisKKzxQPgorR2VuZXJhdGUgYSBVUkwtZW5jb2RlZCBoeXBlcmxpbmsgdG8gdGhlIHNwZWNpZmllZCBVUkkuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTGlua1RhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2FuY2hvciI+YW5jaG9yPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhbmNob3IgdG8gYmUgYWRkZWQgdG8gdGhlIGVuZCBvZiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluay48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2ZvcndhcmQiPmZvcndhcmQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGxvZ2ljYWwgZm9yd2FyZCBuYW1lIGZyb20gd2hpY2ggdG8gcmV0cmlldmUgdGhlIGh5cGVybGluayBVUkkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNocmVmIj5ocmVmPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBoeXBlcmxpbmsgVVJJLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjbGlua05hbWUiPmxpbmtOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBsaW5rIG5hbWUgZm9yIG5hbWVkIGxpbmtzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBKU1AgYmVhbiBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFnZSI+cGFnZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udGV4dC1yZWxhdGl2ZSBwYWdlIFVSTCAoYmVnaW5uaW5nIHdpdGggYSBzbGFzaCkgdG8gd2hpY2gKKyB0aGlzIGh5cGVybGluayB3aWxsIGJlIHJlbmRlcmVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFyYW1JZCI+cGFyYW1JZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2luZ2xlLXBhcmFtZXRlciByZXF1ZXN0IHBhcmFtZXRlciBuYW1lIHRvIGdlbmVyYXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFyYW1OYW1lIj5wYXJhbU5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3BhcmFtUHJvcGVydHkiPnBhcmFtUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNwYXJhbVNjb3BlIj5wYXJhbVNjb3BlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHNjb3BlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBKU1AgYmVhbiBwcm9wZXJ0eSBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2NvcGUiPnNjb3BlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzY29wZSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIG5hbWUgcHJvcGVydHksIGlmIGFueS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3RhcmdldCI+dGFyZ2V0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB3aW5kb3cgdGFyZ2V0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjdGV4dCI+dGV4dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjdHJhbnNhY3Rpb24iPnRyYW5zYWN0aW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luY2x1ZGUgdHJhbnNhY3Rpb24gdG9rZW4gKGlmIGFueSkgaW4gdGhlIGh5cGVybGluaz88L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGlzYWJsZWQiPmRpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmJsdXIiPm9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25jaGFuZ2UiPm9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNsaWNrIj5vbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmRibGNsaWNrIj5vbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmZvY3VzIj5vbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleWRvd24iPm9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlwcmVzcyI+b25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXl1cCI+b25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZWRvd24iPm9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlbW92ZSI+b25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdXQiPm9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdmVyIj5vbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZXVwIj5vbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uc2VsZWN0Ij5vbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVhZG9ubHkiPnJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZSI+c3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlQ2xhc3MiPnN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlSWQiPnN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGl0bGUiPnRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9CVUZGRVJFRCwgRVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI0xpbmtUYWcoKSI+TGlua1RhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+ZG9BZnRlckJvZHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTYXZlIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGZyb20gdGhlIGJvZHkgY29udGVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlciB0aGUgZW5kIG9mIHRoZSBoeXBlcmxpbmsuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVuZGVyIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGh5cGVybGluay48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0QW5jaG9yKCkiPmdldEFuY2hvcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRGb3J3YXJkKCkiPmdldEZvcndhcmQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0SHJlZigpIj5nZXRIcmVmPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldExpbmtOYW1lKCkiPmdldExpbmtOYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYWdlKCkiPmdldFBhZ2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UGFyYW1JZCgpIj5nZXRQYXJhbUlkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFBhcmFtTmFtZSgpIj5nZXRQYXJhbU5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UGFyYW1Qcm9wZXJ0eSgpIj5nZXRQYXJhbVByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFBhcmFtU2NvcGUoKSI+Z2V0UGFyYW1TY29wZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRUYXJnZXQoKSI+Z2V0VGFyZ2V0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFRyYW5zYWN0aW9uKCkiPmdldFRyYW5zYWN0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0QW5jaG9yKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbmNob3I8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YW5jaG9yKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcndhcmQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9yd2FyZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRIcmVmKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIcmVmPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2hyZWYpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0TGlua05hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldExpbmtOYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xpbmtOYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1JZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1JZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbUlkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFBhcmFtTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1OYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRQYXJhbVByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbVByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtUHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1TY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbVNjb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0VGFyZ2V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYXJnZXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGFyZ2V0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFRyYW5zYWN0aW9uKGJvb2xlYW4pIj5zZXRUcmFuc2FjdGlvbjwvQT48L0I+KGJvb2xlYW4mbmJzcDt0cmFuc2FjdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRXZlbnRIYW5kbGVycygpIj5wcmVwYXJlRXZlbnRIYW5kbGVyczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUZvY3VzRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlRm9jdXNFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InRleHQiPjwhLS0gLS0+PC9BPjxIMz4KK3RleHQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJhbmNob3IiPjwhLS0gLS0+PC9BPjxIMz4KK2FuY2hvcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+YW5jaG9yPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhbmNob3IgdG8gYmUgYWRkZWQgdG8gdGhlIGVuZCBvZiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluay48L0RMPgorPEhSPgorCis8QSBOQU1FPSJmb3J3YXJkIj48IS0tIC0tPjwvQT48SDM+Citmb3J3YXJkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5mb3J3YXJkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsb2dpY2FsIGZvcndhcmQgbmFtZSBmcm9tIHdoaWNoIHRvIHJldHJpZXZlIHRoZSBoeXBlcmxpbmsgVVJJLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImhyZWYiPjwhLS0gLS0+PC9BPjxIMz4KK2hyZWY8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmhyZWY8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGh5cGVybGluayBVUkkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGlua05hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK2xpbmtOYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5saW5rTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbGluayBuYW1lIGZvciBuYW1lZCBsaW5rcy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEpTUCBiZWFuIG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFnZSI+PCEtLSAtLT48L0E+PEgzPgorcGFnZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGFnZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29udGV4dC1yZWxhdGl2ZSBwYWdlIFVSTCAoYmVnaW5uaW5nIHdpdGggYSBzbGFzaCkgdG8gd2hpY2gKKyB0aGlzIGh5cGVybGluayB3aWxsIGJlIHJlbmRlcmVkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcmFtSWQiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcmFtSWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtSWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZSB0byBnZW5lcmF0ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJhbU5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcmFtTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1OYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIG5hbWUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyYW1Qcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcGFyYW1Qcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1Qcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBwcm9wZXJ0eS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJhbVNjb3BlIj48IS0tIC0tPjwvQT48SDM+CitwYXJhbVNjb3BlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbVNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHNjb3BlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEpTUCBiZWFuIHByb3BlcnR5IG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2NvcGUiPjwhLS0gLS0+PC9BPjxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBpZiBhbnkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGFyZ2V0Ij48IS0tIC0tPjwvQT48SDM+Cit0YXJnZXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRhcmdldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgd2luZG93IHRhcmdldC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0cmFuc2FjdGlvbiI+PCEtLSAtLT48L0E+PEgzPgordHJhbnNhY3Rpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnRyYW5zYWN0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPkluY2x1ZGUgdHJhbnNhY3Rpb24gdG9rZW4gKGlmIGFueSkgaW4gdGhlIGh5cGVybGluaz88L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTGlua1RhZygpIj48IS0tIC0tPjwvQT48SDM+CitMaW5rVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TGlua1RhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0QW5jaG9yKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFuY2hvcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QW5jaG9yPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBbmNob3IoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFuY2hvcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QW5jaG9yPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YW5jaG9yKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Rm9yd2FyZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGb3J3YXJkPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9yd2FyZCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEhyZWYoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SHJlZjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SHJlZjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SHJlZihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SHJlZjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SHJlZjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2hyZWYpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRMaW5rTmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMaW5rTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TGlua05hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldExpbmtOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRMaW5rTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TGlua05hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsaW5rTmFtZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYWdlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhZ2U8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhZ2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFyYW1JZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJhbUlkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYXJhbUlkPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYXJhbUlkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbUlkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYXJhbUlkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1JZCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtTmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJhbU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhcmFtTmFtZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFyYW1OYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtTmFtZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtUHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFyYW1Qcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFyYW1Qcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFyYW1Qcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGFyYW1Qcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGFyYW1Qcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtUHJvcGVydHkpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXJhbVNjb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhcmFtU2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhcmFtU2NvcGU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhcmFtU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhcmFtU2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtU2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbVNjb3BlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTY29wZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U2NvcGU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFRhcmdldCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUYXJnZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFRhcmdldDwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VGFyZ2V0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRUYXJnZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFRhcmdldDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RhcmdldCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFRyYW5zYWN0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFRyYW5zYWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRUcmFuc2FjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VHJhbnNhY3Rpb24oYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFRyYW5zYWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRUcmFuc2FjdGlvbjwvQj4oYm9vbGVhbiZuYnNwO3RyYW5zYWN0aW9uKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZW5kZXIgdGhlIGJlZ2lubmluZyBvZiB0aGUgaHlwZXJsaW5rLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9BZnRlckJvZHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9BZnRlckJvZHk8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9BZnRlckJvZHk8L0I+KCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVyIHRoZSBlbmQgb2YgdGhlIGh5cGVybGluay48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkxpbmtUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWUwODA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbApAQCAtMCwwICsxLDU4OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIE11bHRpYm94VGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aWJveFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgTXVsdGlib3hUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk11bHRpYm94VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk11bHRpYm94VGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvREw+CisKKzxQPgorVGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiY2hlY2tib3giLiAgVGhpcyBkaWZmZXJzIGZyb20gQ2hlY2tib3hUYWcKKyBiZWNhdXNlIGl0IGFzc3VtZXMgdGhhdCB0aGUgdW5kZXJseWluZyBwcm9wZXJ0eSBpcyBhbiBhcnJheSBnZXR0ZXIgKG9mIGFueQorIHN1cHBvcnRlZCBwcmltaXRpdmUgdHlwZSwgb3IgU3RyaW5nKSwgYW5kIHRoZSBjaGVja2JveCBpcyBpbml0aWFsaXplZCB0bworICJjaGVja2VkIiBpZiB0aGUgdmFsdWUgbGlzdGVkIGZvciB0aGUgInZhbHVlIiBhdHRyaWJ1dGUgaXMgcHJlc2VudCBpbiB0aGUKKyB2YWx1ZXMgcmV0dXJuZWQgYnkgdGhlIHByb3BlcnR5IGdldHRlci4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5SYWxwaCBTY2hhZXIsIENyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk11bHRpYm94VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI2NvbnN0YW50Ij5jb25zdGFudDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29uc3RhbnQgU3RyaW5nIHZhbHVlIHRvIGJlIHJldHVybmVkIHdoZW4gdGhpcyBjaGVja2JveCBpcworIHNlbGVjdGVkIGFuZCB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcHJvcGVydHkgbmFtZSBmb3IgdGhpcyBmaWVsZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHZhbHVlIHdoaWNoIHdpbGwgbWFyayB0aGlzIGNoZWNrYm94IGFzICJjaGVja2VkIiBpZiBwcmVzZW50CisgaW4gdGhlIGFycmF5IHJldHVybmVkIGJ5IG91ciBwcm9wZXJ0eSBnZXR0ZXIuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2Rpc2FibGVkIj5kaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25ibHVyIj5vbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uY2hhbmdlIj5vbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25jbGljayI+b25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25kYmxjbGljayI+b25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25mb2N1cyI+b25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlkb3duIj5vbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5cHJlc3MiPm9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5dXAiPm9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2Vkb3duIj5vbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW1vdmUiPm9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlb3V0Ij5vbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlb3ZlciI+b25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2V1cCI+b25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbnNlbGVjdCI+b25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3JlYWRvbmx5Ij5yZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGUiPnN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUNsYXNzIj5zdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUlkIj5zdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RpdGxlIj50aXRsZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQlVGRkVSRUQsIEVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQUdBSU48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjTXVsdGlib3hUYWcoKSI+TXVsdGlib3hUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NhdmUgdGhlIGJvZHkgY29udGVudHMgb2YgdGhpcyB0YWcgYXMgdGhlIGNvbnN0YW50IHRoYXQgd2Ugd2lsbAorIGJlIHJldHVybmluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW5kZXIgYW4gaW5wdXQgZWxlbWVudCBmb3IgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIGJlZ2lubmluZyBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc2VydmVyIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHNlcnZlciB2YWx1ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmJsdXIoKSI+Z2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNoYW5nZSgpIj5nZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jbGljaygpIj5nZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmRibGNsaWNrKCkiPmdldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZm9jdXMoKSI+Z2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlkb3duKCkiPmdldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlwcmVzcygpIj5nZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXVwKCkiPmdldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vkb3duKCkiPmdldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlbW92ZSgpIj5nZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW91dCgpIj5nZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3ZlcigpIj5nZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZXVwKCkiPmdldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25zZWxlY3QoKSI+Z2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFJlYWRvbmx5KCkiPmdldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZSgpIj5nZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj5nZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUlkKCkiPmdldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRhYmluZGV4KCkiPmdldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZSgpIj5nZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlS2V5RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlS2V5RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlTW91c2VFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVNb3VzZUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVN0eWxlcygpIj5wcmVwYXJlU3R5bGVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlVGV4dEV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZVRleHRFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFjY2Vzc2tleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXREaXNhYmxlZChib29sZWFuKSI+c2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb25zdGFudCI+PCEtLSAtLT48L0E+PEgzPgorY29uc3RhbnQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbnN0YW50PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb25zdGFudCBTdHJpbmcgdmFsdWUgdG8gYmUgcmV0dXJuZWQgd2hlbiB0aGlzIGNoZWNrYm94IGlzCisgc2VsZWN0ZWQgYW5kIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGZvciB0aGlzIGZpZWxkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbHVlIj48IS0tIC0tPjwvQT48SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIHdoaWNoIHdpbGwgbWFyayB0aGlzIGNoZWNrYm94IGFzICJjaGVja2VkIiBpZiBwcmVzZW50CisgaW4gdGhlIGFycmF5IHJldHVybmVkIGJ5IG91ciBwcm9wZXJ0eSBnZXR0ZXIuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik11bHRpYm94VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK011bHRpYm94VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TXVsdGlib3hUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBUaGUgbmV3IHByb3BlcnR5IG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgc2VydmVyIHZhbHVlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VmFsdWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHNlcnZlciB2YWx1ZS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBUaGUgbmV3IHNlcnZlciB2YWx1ZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyB0YWcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0FmdGVyQm9keSgpIj48IS0tIC0tPjwvQT48SDM+Citkb0FmdGVyQm9keTwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0FmdGVyQm9keTwvQj4oKQorICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5TYXZlIHRoZSBib2R5IGNvbnRlbnRzIG9mIHRoaXMgdGFnIGFzIHRoZSBjb25zdGFudCB0aGF0IHdlIHdpbGwKKyBiZSByZXR1cm5pbmcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVyIGFuIGlucHV0IGVsZW1lbnQgZm9yIHRoaXMgdGFnLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTXVsdGlib3hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2MzYwOGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbApAQCAtMCwwICsxLDY5NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIE9wdGlvblRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUGFzc3dvcmRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik9wdGlvblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgT3B0aW9uVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25UYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+T3B0aW9uVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvREw+CisKKzxQPgorVGFnIGZvciBzZWxlY3Qgb3B0aW9ucy4gIFRoZSBib2R5IG9mIHRoaXMgdGFnIGlzIHByZXNlbnRlZCB0byB0aGUgdXNlcgorIGluIHRoZSBvcHRpb24gbGlzdCwgd2hpbGUgdGhlIHZhbHVlIGF0dHJpYnV0ZSBpcyB0aGUgdmFsdWUgcmV0dXJuZWQgdG8KKyB0aGUgc2VydmVyIGlmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvblRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjYnVuZGxlIj5idW5kbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUgY29udGFpbmluZyBvdXIgbWVzc2FnZQorIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO2phdmEudXRpbC5Mb2NhbGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCBsb2NhbGUgZm9yIG91ciBzZXJ2ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2Rpc2FibGVkIj5kaXNhYmxlZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJcyB0aGlzIG9wdGlvbiBkaXNhYmxlZD88L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwja2V5Ij5rZXk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGtleSB1c2VkIHRvIGxvb2sgdXAgdGhlIHRleHQgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGlzCisgb3B0aW9uLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2xvY2FsZSI+bG9jYWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgTG9jYWxlIHRvIGJlIHVzZWQgZm9yCisgbG9va2luZyB1cCBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3RleHQiPnRleHQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgdGV4dCB0byBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgZm9yIHRoaXMgdGFnIChpZiBhbnkpPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2VydmVyIHZhbHVlIGZvciB0aGlzIG9wdGlvbiwgYWxzbyB1c2VkIHRvIG1hdGNoIGFnYWluc3QgdGhlCisgY3VycmVudCBwcm9wZXJ0eSB2YWx1ZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGlzIG9wdGlvbiBzaG91bGQgYmUKKyBtYXJrZWQgYXMgc2VsZWN0ZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQlVGRkVSRUQsIEVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQUdBSU48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI09wdGlvblRhZygpIj5PcHRpb25UYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+ZG9BZnRlckJvZHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBib2R5IHRleHQgb2YgdGhpcyB0YWcgKGlmIGFueSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2dldEtleSgpIj5nZXRLZXk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNnZXRMb2NhbGUoKSI+Z2V0TG9jYWxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPjwvQj4oYm9vbGVhbiZuYnNwO2Rpc2FibGVkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc2V0S2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRLZXk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3RleHQoKSI+dGV4dDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgdGV4dCB0byBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgZm9yIHRoaXMgb3B0aW9uIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkZWZhdWx0TG9jYWxlIj48IS0tIC0tPjwvQT48SDM+CitkZWZhdWx0TG9jYWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGphdmEudXRpbC5Mb2NhbGUgPEI+ZGVmYXVsdExvY2FsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCBsb2NhbGUgZm9yIG91ciBzZXJ2ZXIuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0ZXh0Ij48IS0tIC0tPjwvQT48SDM+Cit0ZXh0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj50ZXh0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHRleHQgdG8gYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGlzIHRhZyAoaWYgYW55KTwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJ1bmRsZSI+PCEtLSAtLT48L0E+PEgzPgorYnVuZGxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5idW5kbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUgY29udGFpbmluZyBvdXIgbWVzc2FnZQorIHJlc291cmNlcy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJkaXNhYmxlZCI+PCEtLSAtLT48L0E+PEgzPgorZGlzYWJsZWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmRpc2FibGVkPC9CPjwvUFJFPgorPERMPgorPEREPklzIHRoaXMgb3B0aW9uIGRpc2FibGVkPzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImtleSI+PCEtLSAtLT48L0E+PEgzPgora2V5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5rZXk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGtleSB1c2VkIHRvIGxvb2sgdXAgdGhlIHRleHQgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGlzCisgb3B0aW9uLCBpZiBhbnkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9jYWxlIj48IS0tIC0tPjwvQT48SDM+Citsb2NhbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmxvY2FsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIGNvbnRhaW5pbmcgdGhlIExvY2FsZSB0byBiZSB1c2VkIGZvcgorIGxvb2tpbmcgdXAgaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmVyIHZhbHVlIGZvciB0aGlzIG9wdGlvbiwgYWxzbyB1c2VkIHRvIG1hdGNoIGFnYWluc3QgdGhlCisgY3VycmVudCBwcm9wZXJ0eSB2YWx1ZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGlzIG9wdGlvbiBzaG91bGQgYmUKKyBtYXJrZWQgYXMgc2VsZWN0ZWQuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik9wdGlvblRhZygpIj48IS0tIC0tPjwvQT48SDM+CitPcHRpb25UYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5PcHRpb25UYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEJ1bmRsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRCdW5kbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEJ1bmRsZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRCdW5kbGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEJ1bmRsZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldERpc2FibGVkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERpc2FibGVkPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXREaXNhYmxlZDwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RGlzYWJsZWQoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldERpc2FibGVkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXREaXNhYmxlZDwvQj4oYm9vbGVhbiZuYnNwO2Rpc2FibGVkKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0S2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEtleTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0S2V5PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRLZXkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEtleTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0S2V5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TG9jYWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TG9jYWxlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TG9jYWxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9BZnRlckJvZHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9BZnRlckJvZHk8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9BZnRlckJvZHk8L0I+KCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgYm9keSB0ZXh0IG9mIHRoaXMgdGFnIChpZiBhbnkpLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9BZnRlckJvZHk8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0ZXh0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK3RleHQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRleHQ8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSB0ZXh0IHRvIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgdGhpcyBvcHRpb24gKGlmIGFueSkuPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iT3B0aW9uVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2YzlmNzMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwKQEAgLTAsMCArMSw2MzAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBPcHRpb25zVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJPcHRpb25zVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzICBPcHRpb25zVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25zVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+T3B0aW9uc1RhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvREw+CisKKzxQPgorVGFnIGZvciBjcmVhdGluZyBtdWx0aXBsZSAmbHQ7c2VsZWN0Jmd0OyBvcHRpb25zIGZyb20gYSBjb2xsZWN0aW9uLiAgVGhlCisgYXNzb2NpYXRlZCB2YWx1ZXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyIG1heSBvcHRpb25hbGx5IGJlIHNwZWNpZmllZCBieSBhCisgc2Vjb25kIGNvbGxlY3Rpb24sIG9yIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlIHZhbHVlcyB0aGVtc2VsdmVzLiAgRWFjaAorIGNvbGxlY3Rpb24gbWF5IGJlIGFuIGFycmF5IG9mIG9iamVjdHMsIGEgQ29sbGVjdGlvbiwgYW4gRW51bWVyYXRpb24sCisgYW4gSXRlcmF0b3IsIG9yIGEgTWFwLgorIDxiPk5PVEU8L2I+IC0gVGhpcyB0YWcgcmVxdWlyZXMgYSBKYXZhMiAoSkRLIDEuMiBvciBsYXRlcikgcGxhdGZvcm0uCis8UD4KKzxETD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+RmxvcmVudCBDYXJwZW50aWVyLCBDcmFpZyBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25zVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjY29sbGVjdGlvbiI+Y29sbGVjdGlvbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgY29sbGVjdGlvbiBjb250YWluaW5nIGJlYW5zIHRoYXQgaGF2ZSBwcm9wZXJ0aWVzIHRvCisgcHJvdmlkZSBib3RoIHRoZSB2YWx1ZXMgYW5kIHRoZSBsYWJlbHMgKGlkZW50aWZpZWQgYnkgdGhlCisgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGFuZCA8Y29kZT5sYWJlbFByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2xhYmVsTmFtZSI+bGFiZWxOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgdGhlIGxhYmVscyBjb2xsZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjbGFiZWxQcm9wZXJ0eSI+bGFiZWxQcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYmVhbiBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSBsYWJlbHMgY29sbGVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIHRoZSB2YWx1ZXMgY29sbGVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gdXNlIHRvIGJ1aWxkIHRoZSB2YWx1ZXMgY29sbGVjdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjT3B0aW9uc1RhZygpIj5PcHRpb25zVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2FkZE9wdGlvbihqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+YWRkT3B0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO3NiLAorICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSwKKyAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bGFiZWwsCisgICAgICAgICAgYm9vbGVhbiZuYnNwO21hdGNoZWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYW4gb3B0aW9uIGVsZW1lbnQgdG8gdGhlIHNwZWNpZmllZCBTdHJpbmdCdWZmZXIgYmFzZWQgb24gdGhlCisgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldENvbGxlY3Rpb24oKSI+Z2V0Q29sbGVjdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkl0ZXJhdG9yPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXRJdGVyYXRvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0SXRlcmF0b3I8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBhbiBpdGVyYXRvciBmb3IgdGhlIG9wdGlvbiBsYWJlbHMgb3IgdmFsdWVzLCBiYXNlZCBvbiBvdXIKKyBjb25maWd1cmVkIHByb3BlcnRpZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldExhYmVsTmFtZSgpIj5nZXRMYWJlbE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjZ2V0TGFiZWxQcm9wZXJ0eSgpIj5nZXRMYWJlbFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3NldENvbGxlY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPnNldENvbGxlY3Rpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29sbGVjdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXRMYWJlbE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldExhYmVsTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsYWJlbE5hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjc2V0TGFiZWxQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TGFiZWxQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsYWJlbFByb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbGxlY3Rpb24iPjwhLS0gLS0+PC9BPjxIMz4KK2NvbGxlY3Rpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbGxlY3Rpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGNvbGxlY3Rpb24gY29udGFpbmluZyBiZWFucyB0aGF0IGhhdmUgcHJvcGVydGllcyB0bworIHByb3ZpZGUgYm90aCB0aGUgdmFsdWVzIGFuZCB0aGUgbGFiZWxzIChpZGVudGlmaWVkIGJ5IHRoZQorIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhbmQgPGNvZGU+bGFiZWxQcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlcykuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGFiZWxOYW1lIj48IS0tIC0tPjwvQT48SDM+CitsYWJlbE5hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmxhYmVsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIHRoZSBsYWJlbHMgY29sbGVjdGlvbi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJsYWJlbFByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitsYWJlbFByb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5sYWJlbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBiZWFuIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIGxhYmVscyBjb2xsZWN0aW9uLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyB0aGUgdmFsdWVzIGNvbGxlY3Rpb24uPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gdXNlIHRvIGJ1aWxkIHRoZSB2YWx1ZXMgY29sbGVjdGlvbi48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iT3B0aW9uc1RhZygpIj48IS0tIC0tPjwvQT48SDM+CitPcHRpb25zVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+T3B0aW9uc1RhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0Q29sbGVjdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDb2xsZWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRDb2xsZWN0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb2xsZWN0aW9uKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb2xsZWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDb2xsZWN0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29sbGVjdGlvbik8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExhYmVsTmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMYWJlbE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldExhYmVsTmFtZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TGFiZWxOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRMYWJlbE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldExhYmVsTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xhYmVsTmFtZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExhYmVsUHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TGFiZWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TGFiZWxQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TGFiZWxQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TGFiZWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TGFiZWxQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xhYmVsUHJvcGVydHkpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZE9wdGlvbihqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkT3B0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5hZGRPcHRpb248L0I+KGphdmEubGFuZy5TdHJpbmdCdWZmZXImbmJzcDtzYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2xhYmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDttYXRjaGVkKTwvUFJFPgorPERMPgorPEREPkFkZCBhbiBvcHRpb24gZWxlbWVudCB0byB0aGUgc3BlY2lmaWVkIFN0cmluZ0J1ZmZlciBiYXNlZCBvbiB0aGUKKyBzcGVjaWZpZWQgcGFyYW1ldGVycy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zYjwvQ09ERT4gLSBTdHJpbmdCdWZmZXIgYWNjdW11bGF0aW5nIG91ciByZXN1bHRzPEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFZhbHVlIHRvIGJlIHJldHVybmVkIHRvIHRoZSBzZXJ2ZXIgZm9yIHRoaXMgb3B0aW9uPEREPjxDT0RFPmxhYmVsPC9DT0RFPiAtIFZhbHVlIHRvIGJlIHNob3duIHRvIHRoZSB1c2VyIGZvciB0aGlzIG9wdGlvbjxERD48Q09ERT5tYXRjaGVkPC9DT0RFPiAtIFNob3VsZCB0aGlzIHZhbHVlIGJlIG1hcmtlZCBhcyBzZWxlY3RlZD88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEl0ZXJhdG9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJdGVyYXRvcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5JdGVyYXRvciA8Qj5nZXRJdGVyYXRvcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGFuIGl0ZXJhdG9yIGZvciB0aGUgb3B0aW9uIGxhYmVscyBvciB2YWx1ZXMsIGJhc2VkIG9uIG91cgorIGNvbmZpZ3VyZWQgcHJvcGVydGllcy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIGJlYW4gYXR0cmlidXRlIChpZiBhbnkpPEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIE5hbWUgb2YgdGhlIGJlYW4gcHJvcGVydHkgKGlmIGFueSk8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iT3B0aW9uc1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Bhc3N3b3JkVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlODg2ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sCkBAIC0wLDAgKzEsMzIyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgUGFzc3dvcmRUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBhc3N3b3JkVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzICBQYXNzd29yZFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlBhc3N3b3JkVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlBhc3N3b3JkVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9ETD4KKworPFA+CitDdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAidGV4dCIuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUGFzc3dvcmRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNhY2NlcHQiPmFjY2VwdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNyZWRpc3BsYXkiPnJlZGlzcGxheTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3R5cGUiPnR5cGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNjb2xzIj5jb2xzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWF4bGVuZ3RoIj5tYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNyb3dzIj5yb3dzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGlzYWJsZWQiPmRpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmJsdXIiPm9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25jaGFuZ2UiPm9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNsaWNrIj5vbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmRibGNsaWNrIj5vbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmZvY3VzIj5vbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleWRvd24iPm9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlwcmVzcyI+b25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXl1cCI+b25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZWRvd24iPm9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlbW92ZSI+b25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdXQiPm9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdmVyIj5vbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZXVwIj5vbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uc2VsZWN0Ij5vbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVhZG9ubHkiPnJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZSI+c3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlQ2xhc3MiPnN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlSWQiPnN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGl0bGUiPnRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9CVUZGRVJFRCwgRVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUGFzc3dvcmRUYWcuaHRtbCNQYXNzd29yZFRhZygpIj5QYXNzd29yZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0QWNjZXB0KCkiPmdldEFjY2VwdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2dldFJlZGlzcGxheSgpIj5nZXRSZWRpc3BsYXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNzZXRBY2NlcHQoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2VwdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNzZXRSZWRpc3BsYXkoYm9vbGVhbikiPnNldFJlZGlzcGxheTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRDb2xzKCkiPmdldENvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRNYXhsZW5ndGgoKSI+Z2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRSb3dzKCkiPmdldFJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRTaXplKCkiPmdldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldENvbHMoamF2YS5sYW5nLlN0cmluZykiPnNldENvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRNYXhsZW5ndGgoamF2YS5sYW5nLlN0cmluZykiPnNldE1heGxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFJvd3MoamF2YS5sYW5nLlN0cmluZykiPnNldFJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRTaXplKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTaXplPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmJsdXIoKSI+Z2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNoYW5nZSgpIj5nZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jbGljaygpIj5nZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmRibGNsaWNrKCkiPmdldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZm9jdXMoKSI+Z2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlkb3duKCkiPmdldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlwcmVzcygpIj5nZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXVwKCkiPmdldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vkb3duKCkiPmdldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlbW92ZSgpIj5nZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW91dCgpIj5nZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3ZlcigpIj5nZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZXVwKCkiPmdldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25zZWxlY3QoKSI+Z2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFJlYWRvbmx5KCkiPmdldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZSgpIj5nZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj5nZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUlkKCkiPmdldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRhYmluZGV4KCkiPmdldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZSgpIj5nZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlS2V5RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlS2V5RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlTW91c2VFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVNb3VzZUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVN0eWxlcygpIj5wcmVwYXJlU3R5bGVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlVGV4dEV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZVRleHRFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFjY2Vzc2tleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXREaXNhYmxlZChib29sZWFuKSI+c2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlBhc3N3b3JkVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1Bhc3N3b3JkVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UGFzc3dvcmRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyB0YWcuPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBhc3N3b3JkVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDU2NTQyOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwKQEAgLTAsMCArMSw1NzggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBSYWRpb1RhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSYWRpb1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgUmFkaW9UYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJhZGlvVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlJhZGlvVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvREw+CisKKzxQPgorVGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAicmFkaW8iLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJhZGlvVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHByb3BlcnR5IG5hbWUgZm9yIHRoaXMgZmllbGQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjdGV4dCI+dGV4dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2VydmVyIHZhbHVlIGZvciB0aGlzIG9wdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGlzYWJsZWQiPmRpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmJsdXIiPm9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25jaGFuZ2UiPm9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNsaWNrIj5vbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmRibGNsaWNrIj5vbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmZvY3VzIj5vbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleWRvd24iPm9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlwcmVzcyI+b25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXl1cCI+b25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZWRvd24iPm9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlbW92ZSI+b25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdXQiPm9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdmVyIj5vbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZXVwIj5vbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uc2VsZWN0Ij5vbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVhZG9ubHkiPnJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZSI+c3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlQ2xhc3MiPnN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlSWQiPnN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGl0bGUiPnRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9CVUZGRVJFRCwgRVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNSYWRpb1RhZygpIj5SYWRpb1RhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPmRvQWZ0ZXJCb2R5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3B0aW9uYWxseSByZW5kZXIgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmF0ZSB0aGUgcmVxdWlyZWQgaW5wdXQgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgcHJvcGVydHkgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBzZXJ2ZXIgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgcHJvcGVydHkgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgc2VydmVyIHZhbHVlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRXZlbnRIYW5kbGVycygpIj5wcmVwYXJlRXZlbnRIYW5kbGVyczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUZvY3VzRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlRm9jdXNFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHByb3BlcnR5IG5hbWUgZm9yIHRoaXMgZmllbGQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGV4dCI+PCEtLSAtLT48L0E+PEgzPgordGV4dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbHVlIj48IS0tIC0tPjwvQT48SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZlciB2YWx1ZSBmb3IgdGhpcyBvcHRpb24uPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlJhZGlvVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1JhZGlvVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UmFkaW9UYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIFRoZSBuZXcgcHJvcGVydHkgbmFtZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBzZXJ2ZXIgdmFsdWUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWx1ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgc2VydmVyIHZhbHVlLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFRoZSBuZXcgc2VydmVyIHZhbHVlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkdlbmVyYXRlIHRoZSByZXF1aXJlZCBpbnB1dCB0YWcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0FmdGVyQm9keSgpIj48IS0tIC0tPjwvQT48SDM+Citkb0FmdGVyQm9keTwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0FmdGVyQm9keTwvQj4oKQorICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5TYXZlIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGZyb20gdGhlIGJvZHkgY29udGVudC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvQWZ0ZXJCb2R5PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5PcHRpb25hbGx5IHJlbmRlciB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Bhc3N3b3JkVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJhZGlvVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzA2ZmJiZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwKQEAgLTAsMCArMSw1MzAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBSZXNldFRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jld3JpdGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlc2V0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzICBSZXNldFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmVzZXRUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UmVzZXRUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9ETD4KKworPFA+CitUYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJyZXNldCIuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmVzZXRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGlucHV0IGZpZWxkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sI3RleHQiPnRleHQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2Rpc2FibGVkIj5kaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25ibHVyIj5vbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uY2hhbmdlIj5vbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25jbGljayI+b25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25kYmxjbGljayI+b25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25mb2N1cyI+b25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlkb3duIj5vbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5cHJlc3MiPm9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5dXAiPm9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2Vkb3duIj5vbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW1vdmUiPm9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlb3V0Ij5vbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlb3ZlciI+b25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2V1cCI+b25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbnNlbGVjdCI+b25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3JlYWRvbmx5Ij5yZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGUiPnN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUNsYXNzIj5zdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUlkIj5zdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RpdGxlIj50aXRsZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQlVGRkVSRUQsIEVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQUdBSU48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjUmVzZXRUYWcoKSI+UmVzZXRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NhdmUgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZpZWxkIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbGFiZWwgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGZpZWxkIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGxhYmVsIHZhbHVlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRXZlbnRIYW5kbGVycygpIj5wcmVwYXJlRXZlbnRIYW5kbGVyczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUZvY3VzRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlRm9jdXNFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGlucHV0IGZpZWxkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRleHQiPjwhLS0gLS0+PC9BPjxIMz4KK3RleHQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB2YWx1ZSBvZiB0aGUgYnV0dG9uIGxhYmVsLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJSZXNldFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitSZXNldFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJlc2V0VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGZpZWxkIG5hbWUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBmaWVsZCBuYW1lLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gVGhlIGZpZWxkIG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbGFiZWwgdmFsdWUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWx1ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgbGFiZWwgdmFsdWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gVGhlIGxhYmVsIHZhbHVlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9BZnRlckJvZHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9BZnRlckJvZHk8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9BZnRlckJvZHk8L0I+KCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jld3JpdGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlc2V0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1N2E4ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwKQEAgLTAsMCArMSwzNjEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBSZXdyaXRlVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXdyaXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzICBSZXdyaXRlVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmV3cml0ZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5SZXdyaXRlVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT48L0RMPgorCis8UD4KK0dlbmVyYXRlIGEgVVJMLWVuY29kZWQgVVJJIGFzIGEgc3RyaW5nLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJld3JpdGVUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5MaW5rVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjYW5jaG9yIj5hbmNob3I8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZm9yd2FyZCI+Zm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNocmVmIj5ocmVmPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2xpbmtOYW1lIj5saW5rTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNwYWdlIj5wYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3BhcmFtSWQiPnBhcmFtSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFyYW1OYW1lIj5wYXJhbU5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFyYW1Qcm9wZXJ0eSI+cGFyYW1Qcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNwYXJhbVNjb3BlIj5wYXJhbVNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjdGFyZ2V0Ij50YXJnZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjdGV4dCI+dGV4dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCN0cmFuc2FjdGlvbiI+dHJhbnNhY3Rpb248L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkaXNhYmxlZCI+ZGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uYmx1ciI+b25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNoYW5nZSI+b25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uY2xpY2siPm9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uZGJsY2xpY2siPm9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uZm9jdXMiPm9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5ZG93biI+b25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleXByZXNzIj5vbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleXVwIj5vbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlZG93biI+b25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2Vtb3ZlIj5vbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW91dCI+b25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW92ZXIiPm9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNldXAiPm9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25zZWxlY3QiPm9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWFkb25seSI+cmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlIj5zdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGVDbGFzcyI+c3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGVJZCI+c3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0aXRsZSI+dGl0bGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0JVRkZFUkVELCBFVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwjUmV3cml0ZVRhZygpIj5SZXdyaXRlVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jld3JpdGVUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0lnbm9yZSB0aGUgZW5kIG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlciB0aGUgYXBwcm9wcmlhdGVseSBlbmNvZGVkIFVSSS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+ZG9BZnRlckJvZHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0QW5jaG9yKCkiPmdldEFuY2hvcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRGb3J3YXJkKCkiPmdldEZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0SHJlZigpIj5nZXRIcmVmPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldExpbmtOYW1lKCkiPmdldExpbmtOYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYWdlKCkiPmdldFBhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UGFyYW1JZCgpIj5nZXRQYXJhbUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFBhcmFtTmFtZSgpIj5nZXRQYXJhbU5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UGFyYW1Qcm9wZXJ0eSgpIj5nZXRQYXJhbVByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFBhcmFtU2NvcGUoKSI+Z2V0UGFyYW1TY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRUYXJnZXQoKSI+Z2V0VGFyZ2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFRyYW5zYWN0aW9uKCkiPmdldFRyYW5zYWN0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRBbmNob3IoamF2YS5sYW5nLlN0cmluZykiPnNldEFuY2hvcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldEhyZWYoamF2YS5sYW5nLlN0cmluZykiPnNldEhyZWY8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0TGlua05hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldExpbmtOYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFnZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRQYXJhbUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFBhcmFtTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1OYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFBhcmFtUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1TY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFRhcmdldChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFyZ2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFRyYW5zYWN0aW9uKGJvb2xlYW4pIj5zZXRUcmFuc2FjdGlvbjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+Z2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmJsdXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlJld3JpdGVUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorUmV3cml0ZVRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJld3JpdGVUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVyIHRoZSBhcHByb3ByaWF0ZWx5IGVuY29kZWQgVVJJLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5JZ25vcmUgdGhlIGVuZCBvZiB0aGlzIHRhZy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXdyaXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjQxNzg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwKQEAgLTAsMCArMSw3MTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBTZWxlY3RUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU2VsZWN0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzICBTZWxlY3RUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlNlbGVjdFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5TZWxlY3RUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9ETD4KKworPFA+CitDdXN0b20gdGFnIHRoYXQgcmVwcmVzZW50cyBhbiBIVE1MIHNlbGVjdCBlbGVtZW50LCBhc3NvY2lhdGVkIHdpdGggYQorIGJlYW4gcHJvcGVydHkgc3BlY2lmaWVkIGJ5IG91ciBhdHRyaWJ1dGVzLiAgVGhpcyB0YWcgbXVzdCBiZSBuZXN0ZWQKKyBpbnNpZGUgYSBmb3JtIHRhZy4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TZWxlY3RUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjbWF0Y2giPm1hdGNoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhY3R1YWwgdmFsdWVzIHdlIHdpbGwgbWF0Y2ggYWdhaW5zdCwgY2FsY3VsYXRlZCBpbiBkb1N0YXJ0VGFnKCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNtdWx0aXBsZSI+bXVsdGlwbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2hvdWxkIG11bHRpcGxlIHNlbGVjdGlvbnMgYmUgYWxsb3dlZD8gIEFueSBub24tbnVsbCB2YWx1ZSB3aWxsCisgdHJpZ2dlciByZW5kZXJpbmcgdGhpcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHByb3BlcnR5IG5hbWUgd2UgYXJlIGFzc29jaWF0ZWQgd2l0aC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjc2F2ZUJvZHkiPnNhdmVCb2R5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzYXZlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3NpemUiPnNpemU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SG93IG1hbnkgYXZhaWxhYmxlIG9wdGlvbnMgc2hvdWxkIGJlIGRpc3BsYXllZCB3aGVuIHRoaXMgZWxlbWVudAorIGlzIHJlbmRlcmVkPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHZhbHVlIHRvIGNvbXBhcmUgd2l0aCBmb3IgbWFya2luZyBhbiBvcHRpb24gc2VsZWN0ZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2Rpc2FibGVkIj5kaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25ibHVyIj5vbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uY2hhbmdlIj5vbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25jbGljayI+b25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25kYmxjbGljayI+b25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25mb2N1cyI+b25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlkb3duIj5vbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5cHJlc3MiPm9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5dXAiPm9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2Vkb3duIj5vbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW1vdmUiPm9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlb3V0Ij5vbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlb3ZlciI+b25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2V1cCI+b25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbnNlbGVjdCI+b25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3JlYWRvbmx5Ij5yZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGUiPnN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUNsYXNzIj5zdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUlkIj5zdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RpdGxlIj50aXRsZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQlVGRkVSRUQsIEVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQUdBSU48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI1NlbGVjdFRhZygpIj5TZWxlY3RUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+ZG9BZnRlckJvZHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTYXZlIGFueSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcsIHdoaWNoIHdpbGwgZ2VuZXJhbGx5IGJlIHRoZQorIG9wdGlvbihzKSByZXByZXNlbnRpbmcgdGhlIHZhbHVlcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlciB0aGUgZW5kIG9mIHRoaXMgZm9ybS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlciB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgZm9ybS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNnZXRNdWx0aXBsZSgpIj5nZXRNdWx0aXBsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2dldFNpemUoKSI+Z2V0U2l6ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBjb21wYXJpc29uIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2lzTWF0Y2hlZChqYXZhLmxhbmcuU3RyaW5nKSI+aXNNYXRjaGVkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RG9lcyB0aGUgc3BlY2lmaWVkIHZhbHVlIG1hdGNoIG9uZSBvZiB0aG9zZSB3ZSBhcmUgbG9va2luZyBmb3I/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3NldE11bHRpcGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNdWx0aXBsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttdWx0aXBsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgcHJvcGVydHkgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNzZXRTaXplKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTaXplPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NpemUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGNvbXBhcmlzb24gdmFsdWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+Z2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmJsdXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWF0Y2giPjwhLS0gLS0+PC9BPjxIMz4KK21hdGNoPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZ1tdIDxCPm1hdGNoPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhY3R1YWwgdmFsdWVzIHdlIHdpbGwgbWF0Y2ggYWdhaW5zdCwgY2FsY3VsYXRlZCBpbiBkb1N0YXJ0VGFnKCkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtdWx0aXBsZSI+PCEtLSAtLT48L0E+PEgzPgorbXVsdGlwbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm11bHRpcGxlPC9CPjwvUFJFPgorPERMPgorPEREPlNob3VsZCBtdWx0aXBsZSBzZWxlY3Rpb25zIGJlIGFsbG93ZWQ/ICBBbnkgbm9uLW51bGwgdmFsdWUgd2lsbAorIHRyaWdnZXIgcmVuZGVyaW5nIHRoaXMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHByb3BlcnR5IG5hbWUgd2UgYXJlIGFzc29jaWF0ZWQgd2l0aC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzYXZlQm9keSI+PCEtLSAtLT48L0E+PEgzPgorc2F2ZUJvZHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNhdmVCb2R5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzYXZlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2l6ZSI+PCEtLSAtLT48L0E+PEgzPgorc2l6ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c2l6ZTwvQj48L1BSRT4KKzxETD4KKzxERD5Ib3cgbWFueSBhdmFpbGFibGUgb3B0aW9ucyBzaG91bGQgYmUgZGlzcGxheWVkIHdoZW4gdGhpcyBlbGVtZW50CisgaXMgcmVuZGVyZWQ/PC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgdG8gY29tcGFyZSB3aXRoIGZvciBtYXJraW5nIGFuIG9wdGlvbiBzZWxlY3RlZC48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iU2VsZWN0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1NlbGVjdFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlNlbGVjdFRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TXVsdGlwbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TXVsdGlwbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE11bHRpcGxlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNdWx0aXBsZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TXVsdGlwbGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE11bHRpcGxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bXVsdGlwbGUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2l6ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTaXplPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTaXplKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTaXplPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2l6ZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzTWF0Y2hlZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgoraXNNYXRjaGVkPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc01hdGNoZWQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5Eb2VzIHRoZSBzcGVjaWZpZWQgdmFsdWUgbWF0Y2ggb25lIG9mIHRob3NlIHdlIGFyZSBsb29raW5nIGZvcj88REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBWYWx1ZSB0byBiZSBjb21wYXJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJvcGVydHk8L0NPREU+IC0gVGhlIG5ldyBwcm9wZXJ0eSBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VmFsdWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGNvbXBhcmlzb24gdmFsdWUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWx1ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgY29tcGFyaXNvbiB2YWx1ZS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBUaGUgbmV3IGNvbXBhcmlzb24gdmFsdWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVyIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBmb3JtLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9BZnRlckJvZHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9BZnRlckJvZHk8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9BZnRlckJvZHk8L0I+KCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+U2F2ZSBhbnkgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnLCB3aGljaCB3aWxsIGdlbmVyYWxseSBiZSB0aGUKKyBvcHRpb24ocykgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZXMgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9BZnRlckJvZHk8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlbmRlciB0aGUgZW5kIG9mIHRoaXMgZm9ybS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU2VsZWN0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTM5OWMxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwKQEAgLTAsMCArMSw1MzMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBTdWJtaXRUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlN1Ym1pdFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgU3VibWl0VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TdWJtaXRUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+U3VibWl0VGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvREw+CisKKzxQPgorVGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAic3VibWl0Ii4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TdWJtaXRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBpbnB1dCBmaWVsZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjdGV4dCI+dGV4dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2Rpc2FibGVkIj5kaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25ibHVyIj5vbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uY2hhbmdlIj5vbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25jbGljayI+b25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25kYmxjbGljayI+b25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25mb2N1cyI+b25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlkb3duIj5vbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5cHJlc3MiPm9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5dXAiPm9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2Vkb3duIj5vbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW1vdmUiPm9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlb3V0Ij5vbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlb3ZlciI+b25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2V1cCI+b25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbnNlbGVjdCI+b25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3JlYWRvbmx5Ij5yZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGUiPnN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUNsYXNzIj5zdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUlkIj5zdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RpdGxlIj50aXRsZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQlVGRkVSRUQsIEVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQUdBSU48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI1N1Ym1pdFRhZygpIj5TdWJtaXRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+ZG9BZnRlckJvZHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTYXZlIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGZyb20gdGhlIGJvZHkgY29udGVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBsYWJlbCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgbGFiZWwgdmFsdWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+Z2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmJsdXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgaW5wdXQgZmllbGQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGV4dCI+PCEtLSAtLT48L0E+PEgzPgordGV4dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbHVlIj48IS0tIC0tPjwvQT48SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlN1Ym1pdFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitTdWJtaXRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5TdWJtaXRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgcHJvcGVydHkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBUaGUgcHJvcGVydHkgbmFtZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBsYWJlbCB2YWx1ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBsYWJlbCB2YWx1ZS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBUaGUgbGFiZWwgdmFsdWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0FmdGVyQm9keSgpIj48IS0tIC0tPjwvQT48SDM+Citkb0FmdGVyQm9keTwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0FmdGVyQm9keTwvQj4oKQorICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5TYXZlIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGZyb20gdGhlIGJvZHkgY29udGVudC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvQWZ0ZXJCb2R5PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdWJtaXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA5NDQ4YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbApAQCAtMCwwICsxLDMyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFRleHRUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRleHRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgIFRleHRUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlRleHRUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0RMPgorCis8UD4KK0N1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJ0ZXh0Ii4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjYWNjZXB0Ij5hY2NlcHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjcmVkaXNwbGF5Ij5yZWRpc3BsYXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCN0eXBlIj50eXBlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjY29scyI+Y29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI21heGxlbmd0aCI+bWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcm93cyI+cm93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2Rpc2FibGVkIj5kaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25ibHVyIj5vbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uY2hhbmdlIj5vbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25jbGljayI+b25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25kYmxjbGljayI+b25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25mb2N1cyI+b25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlkb3duIj5vbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5cHJlc3MiPm9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5dXAiPm9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2Vkb3duIj5vbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW1vdmUiPm9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlb3V0Ij5vbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlb3ZlciI+b25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2V1cCI+b25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbnNlbGVjdCI+b25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3JlYWRvbmx5Ij5yZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGUiPnN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUNsYXNzIj5zdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUlkIj5zdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RpdGxlIj50aXRsZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQlVGRkVSRUQsIEVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQUdBSU48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbCNUZXh0VGFnKCkiPlRleHRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2dldEFjY2VwdCgpIj5nZXRBY2NlcHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXRSZWRpc3BsYXkoKSI+Z2V0UmVkaXNwbGF5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0QWNjZXB0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2NlcHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0UmVkaXNwbGF5KGJvb2xlYW4pIj5zZXRSZWRpc3BsYXk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0Q29scygpIj5nZXRDb2xzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0TWF4bGVuZ3RoKCkiPmdldE1heGxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0Um93cygpIj5nZXRSb3dzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0U2l6ZSgpIj5nZXRTaXplPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRDb2xzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb2xzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0TWF4bGVuZ3RoKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRSb3dzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb3dzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0U2l6ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2l6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+Z2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmJsdXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJUZXh0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1RleHRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5UZXh0VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLjwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUZXh0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M5NjJhMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwKQEAgLTAsMCArMSw0MTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBUZXh0YXJlYVRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUZXh0YXJlYVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgVGV4dGFyZWFUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVGV4dGFyZWFUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+VGV4dGFyZWFUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0RMPgorCis8UD4KK0N1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJ0ZXh0YXJlYSIuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVGV4dGFyZWFUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNjb2xzIj5jb2xzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWF4bGVuZ3RoIj5tYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNyb3dzIj5yb3dzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGlzYWJsZWQiPmRpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmJsdXIiPm9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25jaGFuZ2UiPm9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNsaWNrIj5vbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmRibGNsaWNrIj5vbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmZvY3VzIj5vbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleWRvd24iPm9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXlwcmVzcyI+b25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXl1cCI+b25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZWRvd24iPm9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlbW92ZSI+b25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdXQiPm9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2VvdmVyIj5vbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZXVwIj5vbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uc2VsZWN0Ij5vbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVhZG9ubHkiPnJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZSI+c3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlQ2xhc3MiPnN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlSWQiPnN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGl0bGUiPnRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9CVUZGRVJFRCwgRVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCNUZXh0YXJlYVRhZygpIj5UZXh0YXJlYVRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dlbmVyYXRlIHRoZSByZXF1aXJlZCBpbnB1dCB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0Q29scygpIj5nZXRDb2xzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0TWF4bGVuZ3RoKCkiPmdldE1heGxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0Um93cygpIj5nZXRSb3dzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0U2l6ZSgpIj5nZXRTaXplPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRDb2xzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb2xzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0TWF4bGVuZ3RoKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRSb3dzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb3dzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0U2l6ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2l6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+Z2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmJsdXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iVGV4dGFyZWFUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorVGV4dGFyZWFUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5UZXh0YXJlYVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+R2VuZXJhdGUgdGhlIHJlcXVpcmVkIGlucHV0IHRhZy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRleHRhcmVhVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkYTQ5YWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw3OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbAorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0E+PC9GT05UPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorQ2xhc3NlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9IkJhc2VGaWVsZFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkJhc2VGaWVsZFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkJhc2VIYW5kbGVyVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJCYXNlSW5wdXRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5CYXNlSW5wdXRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJCYXNlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QmFzZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkJ1dHRvblRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkJ1dHRvblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkNhbmNlbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNhbmNlbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkNoZWNrYm94VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q2hlY2tib3hUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJDb25zdGFudHMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db25zdGFudHM8L0E+Cis8QlI+Cis8QSBIUkVGPSJFcnJvcnNUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5FcnJvcnNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJGaWxlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RmlsZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkZvcm1UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Gb3JtVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iSGlkZGVuVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SGlkZGVuVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iSHRtbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkh0bWxUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJJbWFnZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkltYWdlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iSW1nVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SW1nVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTGlua1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkxpbmtUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJNdWx0aWJveFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk11bHRpYm94VGFnPC9BPgorPEJSPgorPEEgSFJFRj0iT3B0aW9uc1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk9wdGlvbnNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJPcHRpb25UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5PcHRpb25UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJQYXNzd29yZFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlBhc3N3b3JkVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iUmFkaW9UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SYWRpb1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlJlc2V0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVzZXRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJSZXdyaXRlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmV3cml0ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlNlbGVjdFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlNlbGVjdFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlN1Ym1pdFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlN1Ym1pdFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlRleHRhcmVhVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VGV4dGFyZWFUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJUZXh0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VGV4dFRhZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmUxZWQ0NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sCkBAIC0wLDAgKzEsNzY4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwKKzwvSDI+Cis8YSBuYW1lPSJkb2MuRGVzY3JpcHRpb24iPlRoZSAic3RydXRzLWh0bWwiIHRhZyBsaWJyYXJ5PC9hPiBjb250YWlucyBKU1AKK2N1c3RvbSB0YWdzIHVzZWZ1bCBpbiBjcmVhdGluZyBkeW5hbWljIEhUTUwgdXNlciBpbnRlcmZhY2VzLCBpbmNsdWRpbmcgaW5wdXQKK2Zvcm1zLgorPFA+Cis8Qj5TZWU6IDwvQj4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxBIEhSRUY9IiNwYWNrYWdlX2Rlc2NyaXB0aW9uIj48Qj5EZXNjcmlwdGlvbjwvQj48L0E+Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJCYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQj48L1REPgorPFREPkNvbnZlbmllbmNlIGJhc2UgY2xhc3MgZm9yIHRoZSB2YXJpb3VzIGlucHV0IHRhZ3MgZm9yIHRleHQgZmllbGRzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+QmFzZSBjbGFzcyBmb3IgdGFncyB0aGF0IHJlbmRlciBmb3JtIGVsZW1lbnRzIGNhcGFibGUgb2YgaW5jbHVkaW5nIEphdmFTY3JpcHQKKyBldmVudCBoYW5kbGVycyBhbmQvb3IgQ1NTIFN0eWxlIGF0dHJpYnV0ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJCYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQj48L1REPgorPFREPkFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIHRoZSB2YXJpb3VzIGlucHV0IHRhZ3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJCYXNlVGFnLmh0bWwiPkJhc2VUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+UmVuZGVycyBhbiBIVE1MIDxiYXNlPiBlbGVtZW50IHdpdGggYW4gaHJlZiAKKyBhdHRyaWJ1dGUgcG9pbnRpbmcgdG8gdGhlIGFic29sdXRlIGxvY2F0aW9uIG9mIHRoZSBlbmNsb3NpbmcgSlNQIHBhZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJCdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPjwvQj48L1REPgorPFREPlJlbmRlcnMgYW4gSFRNTCBCVVRUT04gdGFnIHdpdGhpbiB0aGUgU3RydXRzIGZyYW1ld29yay48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNhbmNlbFRhZy5odG1sIj5DYW5jZWxUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiY2FuY2VsIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPjwvQj48L1REPgorPFREPlRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImNoZWNrYm94Ii48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNvbnN0YW50cy5odG1sIj5Db25zdGFudHM8L0E+PC9CPjwvVEQ+Cis8VEQ+TWFuaWZlc3QgY29uc3RhbnRzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJFcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPjwvQj48L1REPgorPFREPkN1c3RvbSB0YWcgdGhhdCByZW5kZXJzIGVycm9yIG1lc3NhZ2VzIGlmIGFuIGFwcHJvcHJpYXRlIHJlcXVlc3QgYXR0cmlidXRlCisgaGFzIGJlZW4gY3JlYXRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkZpbGVUYWcuaHRtbCI+RmlsZVRhZzwvQT48L0I+PC9URD4KKzxURD5DdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiZmlsZSIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJGb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+Q3VzdG9tIHRhZyB0aGF0IHJlcHJlc2VudHMgYW4gaW5wdXQgZm9ybSwgYXNzb2NpYXRlZCB3aXRoIGEgYmVhbiB3aG9zZQorIHByb3BlcnRpZXMgY29ycmVzcG9uZCB0byB0aGUgdmFyaW91cyBmaWVsZHMgb2YgdGhlIGZvcm0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJIaWRkZW5UYWcuaHRtbCI+SGlkZGVuVGFnPC9BPjwvQj48L1REPgorPFREPkN1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJ0ZXh0Ii48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ikh0bWxUYWcuaHRtbCI+SHRtbFRhZzwvQT48L0I+PC9URD4KKzxURD5SZW5kZXJzIGFuIEhUTUwgPGh0bWw+IGVsZW1lbnQgd2l0aCBhcHByb3ByaWF0ZSBsYW5ndWFnZSBhdHRyaWJ1dGVzIGlmCisgdGhlcmUgaXMgYSBjdXJyZW50IExvY2FsZSBhdmFpbGFibGUgaW4gdGhlIHVzZXIncyBzZXNzaW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiaW1hZ2UiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT48L0I+PC9URD4KKzxURD5HZW5lcmF0ZSBhbiBJTUcgdGFnIHRvIHRoZSBzcGVjaWZpZWQgaW1hZ2UgVVJJLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPjwvQj48L1REPgorPFREPkdlbmVyYXRlIGEgVVJMLWVuY29kZWQgaHlwZXJsaW5rIHRvIHRoZSBzcGVjaWZpZWQgVVJJLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiY2hlY2tib3giLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPjwvQj48L1REPgorPFREPlRhZyBmb3IgY3JlYXRpbmcgbXVsdGlwbGUgJmx0O3NlbGVjdCZndDsgb3B0aW9ucyBmcm9tIGEgY29sbGVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik9wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+VGFnIGZvciBzZWxlY3Qgb3B0aW9ucy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlBhc3N3b3JkVGFnLmh0bWwiPlBhc3N3b3JkVGFnPC9BPjwvQj48L1REPgorPFREPkN1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJ0ZXh0Ii48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlJhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPjwvQj48L1REPgorPFREPlRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInJhZGlvIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlJlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPjwvQj48L1REPgorPFREPlRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInJlc2V0Ii48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlJld3JpdGVUYWcuaHRtbCI+UmV3cml0ZVRhZzwvQT48L0I+PC9URD4KKzxURD5HZW5lcmF0ZSBhIFVSTC1lbmNvZGVkIFVSSSBhcyBhIHN0cmluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlNlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+Q3VzdG9tIHRhZyB0aGF0IHJlcHJlc2VudHMgYW4gSFRNTCBzZWxlY3QgZWxlbWVudCwgYXNzb2NpYXRlZCB3aXRoIGEKKyBiZWFuIHByb3BlcnR5IHNwZWNpZmllZCBieSBvdXIgYXR0cmlidXRlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlN1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAic3VibWl0Ii48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlRleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPjwvQj48L1REPgorPFREPkN1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJ0ZXh0YXJlYSIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJUZXh0VGFnLmh0bWwiPlRleHRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+Q3VzdG9tIHRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInRleHQiLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworCis8UD4KKzxBIE5BTUU9InBhY2thZ2VfZGVzY3JpcHRpb24iPjwhLS0gLS0+PC9BPjxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwgRGVzY3JpcHRpb24KKzwvSDI+CisKKzxQPgorPHA+PGEgbmFtZT0iZG9jLkRlc2NyaXB0aW9uIj5UaGUgInN0cnV0cy1odG1sIiB0YWcgbGlicmFyeTwvYT4gY29udGFpbnMgSlNQCitjdXN0b20gdGFncyB1c2VmdWwgaW4gY3JlYXRpbmcgZHluYW1pYyBIVE1MIHVzZXIgaW50ZXJmYWNlcywgaW5jbHVkaW5nIGlucHV0Citmb3Jtcy48L3A+Cis8ZGl2IGFsaWduPSJjZW50ZXIiPgorICA8cD4gPGEgaHJlZj0iI2RvYy5JbnRybyI+W0ludHJvZHVjdGlvbl08L2E+IDxhIGhyZWY9IiNkb2MuRm9ybSI+W0hUTUwgRm9ybSBUYWdzXTwvYT4KKyAgICA8YSBocmVmPSIjZG9jLk90aGVyIj5bT3RoZXIgSFRNTCBUYWdzXTwvYT4gPC9wPgorPC9kaXY+CisKKzxocj4KKworPGgzPjxhIG5hbWU9ImRvYy5JbnRybyI+SW50cm9kdWN0aW9uPC9hPjwvaDM+CisKKzxwPlRoZSB0YWdzIGluIHRoZSBTdHJ1dHMgSFRNTCBsaWJyYXJ5IGZvcm0gYSBicmlkZ2UgYmV0d2VlbiBhIEpTUCB2aWV3IGFuZCB0aGUKKyAgb3RoZXIgY29tcG9uZW50cyBvZiBhIFdlYiBhcHBsaWNhdGlvbi4gU2luY2UgYSBkeW5hbWljIFdlYiBhcHBsaWNhdGlvbiBvZnRlbgorICBkZXBlbmRzIG9uIGdhdGhlcmluZyBkYXRhIGZyb20gYSB1c2VyLCBpbnB1dCBmb3JtcyBwbGF5IGFuIGltcG9ydGFudCByb2xlIGluCisgIHRoZSBTdHJ1dHMgZnJhbWV3b3JrLiBDb25zZXF1ZW50bHksIHRoZSBtYWpvcml0eSBvZiB0aGUgSFRNTCB0YWdzIGludm9sdmUgPGEgaHJlZj0iI2RvYy5Gb3JtIj5IVE1MPC9hPgorICBmb3Jtcy4gT3RoZXIgaW1wb3J0YW50IGlzc3VlcyBhZGRyZXNzZWQgYnkgdGhlIFN0cnV0cy1IVE1MIHRhZ3MgYXJlIDxhIGhyZWY9IiNkb2MuT3RoZXIuZXJyb3JzIj5lcnJvcgorICBtZXNzYWdlczwvYT4sIDxhIGhyZWY9IiNkb2MuT3RoZXIuaHlwZXJsaW5raW5nIj5oeXBlcmxpbmtpbmc8L2E+IGFuZCA8YSBocmVmPSIjZG9jLk90aGVyLmkxOG4iPmludGVybmF0aW9uYWxpemF0aW9uPC9hPi48L3A+CisKKzxocj4KKzxoMz48YSBuYW1lPSJkb2MuRm9ybSI+SFRNTCAiZm9ybSIgdGFnczwvYT48L2gzPgorCis8dWw+CisgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1odG1sLmh0bWwjYnV0dG9uIj5idXR0b248L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWh0bWwuaHRtbCNjYW5jZWwiPmNhbmNlbDwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHJ1dHMtaHRtbC5odG1sI2NoZWNrYm94Ij5jaGVja2JveGVzPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1odG1sLmh0bWwjZmlsZSI+ZmlsZTwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHJ1dHMtaHRtbC5odG1sI2hpZGRlbiI+aGlkZGVuPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1odG1sLmh0bWwjaW1hZ2UiPmltYWdlPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1odG1sLmh0bWwjbXVsdGlib3giPm11bHRpYm94PC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1odG1sLmh0bWwjcGFzc3dvcmQiPnBhc3N3b3JkPC9hPiBpbnB1dCBmaWVsZHM8L2xpPgorICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHJ1dHMtaHRtbC5odG1sI3JhZGlvIj5yYWRpbzwvYT4gYnV0dG9uczwvbGk+CisgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1odG1sLmh0bWwjcmVzZXQiPnJlc2V0PC9hPiBidXR0b25zPC9saT4KKyAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWh0bWwuaHRtbCNzZWxlY3QiPnNlbGVjdDwvYT4gbGlzdHMgd2l0aCBlbWJlZGRlZDwvbGk+CisgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1odG1sLmh0bWwjb3B0aW9uIj5vcHRpb248L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWh0bWwuaHRtbCNvcHRpb25zIj5vcHRpb25zPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1odG1sLmh0bWwjc3VibWl0Ij5zdWJtaXQ8L2E+IGJ1dHRvbnM8L2xpPgorICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHJ1dHMtaHRtbC5odG1sI3RleHQiPnRleHQ8L2E+IGlucHV0IGZpZWxkczwvbGk+CisgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1odG1sLmh0bWwjdGV4dGFyZWEiPnRleHRhcmVhczwvYT48L2xpPgorPC91bD4KKworPHA+RWFjaCBvZiB0aGVzZSB0YWdzIG11c3QgYmUgbmVzdGVkIHdpdGhpbiBhICZsdDtodG1sOmZvcm0mZ3Q7IHRhZy48L3A+CisKKzxoND48YSBuYW1lPSJkb2MuRm9ybS5mb3JtVGFnIj5BYm91dCB0aGUgZm9ybSB0YWc8L2E+PC9oND4KKworPHA+VGhlIFN0cnV0cyA8Y29kZT5mb3JtPC9jb2RlPiB0YWcgb3V0cHV0cyBhIHN0YW5kYXJkIEhUTUwgZm9ybSB0YWcsIGFuZCBhbHNvCisgIGxpbmtzIHRoZSBpbnB1dCBmb3JtIHdpdGggYSBKYXZhQmVhbiBzdWJjbGFzc2VkIGZyb20gdGhlIFN0cnV0cyBBY3Rpb25Gb3JtIG9iamVjdAorICAoc2VlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FwaS9pbmRleC5odG1sIj5KYXZhZG9jPC9hPikuIEVhY2ggZmllbGQgaW4KKyAgdGhlIGZvcm0gc2hvdWxkIGNvcnJlc3BvbmQgdG8gYSBwcm9wZXJ0eSBvZiB0aGUgZm9ybSdzIGJlYW4uIFdoZW4gYSBmaWVsZCBhbmQKKyAgcHJvcGVydHkgY29ycmVzcG9uZCwgdGhlIGJlYW4gaXMgZmlyc3QgdXNlZCB0byBwb3B1bGF0ZSB0aGUgZm9ybSwgYW5kIHRoZW4gdG8KKyAgc3RvcmUgdGhlIHVzZXIncyBpbnB1dCB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCB0byB0aGUgY29udHJvbGxlciBzZXJ2bGV0LjwvcD4KKworPHA+VGhlIG5hbWUgb2YgdGhlIGJlYW4gYW5kIGl0cyBjbGFzcyBjYW4gYmUgc3BlY2lmaWVkIGFzIGEgcHJvcGVydHkgdG8gdGhlIGZvcm0gdGFnLCBidXQKK21heSBhbHNvIGJlIG9taXR0ZWQuIElmIG9taXR0ZWQsIHRoZSA8Y29kZT5BY3Rpb25NYXBwaW5nczwvY29kZT4gZGF0YWJhc2UgKGxvYWRlZCBmcm9tIHRoZQorPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+IGZpbGUpIGlzIGNvbnN1bHRlZC4gSWYgdGhlIGN1cnJlbnQgcGFnZSBpcyBzcGVjaWZpZWQgYXMKK3RoZSA8Y29kZT5pbnB1dDwvY29kZT4gcHJvcGVydHkgZm9yIGFuIDxjb2RlPmFjdGlvbjwvY29kZT4sIHRoZSBuYW1lIG9mIHRoZQorPGNvZGU+YWN0aW9uPC9jb2RlPiBpcyB1c2VkLiBUaGUgPGNvZGU+dHlwZTwvY29kZT4gcHJvcGVydHkgZm9yIHRoZSBiZWFuIGlzIGFsc28gdGhlbiB0YWtlbgorZnJvbSB0aGUgY29uZmlndXJhdGlvbiwgdmlhIGEgRm9ybSBCZWFuIGRlZmluaXRpb24uPC9wPgorCis8cD5IZXJlJ3MgYSBjbGlwIGZyb20gdGhlIFN0cnV0cyBFeGFtcGxlIGNvbmZpZ3VyYXRpb246PC9wPgorCis8cHJlPgorJmx0O2FjdGlvbi1tYXBwaW5ncyZndDsKKyAgJmx0OyEtLSBQcm9jZXNzIGEgdXNlciBsb2dvbiAtLSZndDsKKyAgJmx0O2FjdGlvbiBwYXRoPSZxdW90Oy9sb2dvbiZxdW90OworICAgIHR5cGU9JnF1b3Q7b3JnLmFwYWNoZS5zdHJ1dHMuZXhhbXBsZS5Mb2dvbkFjdGlvbiZxdW90OworICAgIG5hbWU9JnF1b3Q7bG9nb25Gb3JtJnF1b3Q7CisgICAgc2NvcGU9JnF1b3Q7cmVxdWVzdCZxdW90OworICAgIGlucHV0PSZxdW90Oy9sb2dvbi5qc3AmcXVvdDsmZ3Q7CisgICZsdDsvYWN0aW9uJmd0OworICAmbHQ7IC4uLiAvJmd0OworJmx0Oy9hY3Rpb24tbWFwcGluZ3MmZ3Q7CismbHQ7Zm9ybS1iZWFucyZndDsKKyAgJmx0OyEtLSBMb2dvbiBmb3JtIGJlYW4gLS0mZ3Q7CisgICZsdDtmb3JtLWJlYW4gbmFtZT0mcXVvdDtsb2dvbkZvcm0mcXVvdDsKKyAgICB0eXBlPSZxdW90O29yZy5hcGFjaGUuc3RydXRzLmV4YW1wbGUuTG9nb25Gb3JtJnF1b3Q7LyZndDsKKyAgJmx0OyAuLi4gLyZndDsKKyAgJmx0Oy9mb3JtLWJlYW5zJmd0OworJmx0Oy9wcmUmZ3Q7Cis8L3ByZT4KKworPHA+R2l2ZW4gdGhpcyBjb25maWd1cmF0aW9uLCB0aGUgSFRNTCBmb3JtIHRhZyBmb3IgPGNvZGU+bG9nb24uanNwPC9jb2RlPiB3aWxsIGRlZmF1bHQKK3RvIHVzaW5nICI8Y29kZT5sb2dvbkZvcm08L2NvZGU+IiBhcyBpdHMgbmFtZSBwcm9wZXJ0eSBhbmQKKyI8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5leGFtcGxlLkxvZ29uRm9ybTwvY29kZT4iIGFzIHRoZSBhdHRyaWJ1dGUncyB0eXBlLiBUaGlzIHdheSB5b3UKK2NhbiBtYW5hZ2UgdGhlIG5hbWVzcGFjZSBmb3IgeW91ciBmcmFtZXdvcmsgY29tcG9uZW50cyBmcm9tIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuPC9wPgorCis8cD5JZiB0aGUgZm9ybSB0YWcgZG9lcyBub3QgZmluZCB0aGUgZm9ybSBiZWFuIGluIGFueSBvZiB0aGUgc2NvcGVzIChwYWdlLCByZXF1ZXN0LAorc2Vzc2lvbiwgYXBwbGljYXRpb24pLCBpdCBjcmVhdGVzIG9uZSB1c2luZyB0aGUgc3BlY2lmaWVkIHR5cGUuPC9wPgorCis8cD5UaGUgU3RydXRzIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGNsYXNzIGlzIGVxdWlwcGVkIHdpdGggc3RhbmRhcmQgPGNvZGU+cmVzZXQoKTwvY29kZT4KKyAgYW5kIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZHMsIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlIGNvbnRyb2xsZXIgdG8gZW5hYmxlCisgIGF1dG9tYXRpYyBkYXRhIHZhbGlkYXRpb24uIFNlZSB0aGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL2J1aWxkaW5nX3ZpZXcuaHRtbCNmb3JtX3ZhbGlkYXRpb24iPgorICBVc2VycyBHdWlkZTwvYT4gZm9yIG1vcmUgYWJvdXQgRm9ybSBWYWxpZGF0aW9uLiBBbiBpbXBvcnRhbnQgYXNwZWN0IG9mIHZhbGlkYXRpb24KKyAgaXMgcmVwb3J0aW5nIGVycm9ycyB0byB0aGUgdXNlci4gVGhpcyBjYW4gYmUgaGFuZGxlZCBieSB0aGUgU3RydXRzIDxjb2RlPmVycm9yczwvY29kZT4KKyAgdGFnLCB3aGljaCBpcyBkaXNjdXNzZWQgPGEgaHJlZj0iI2RvYy5PdGhlci5lcnJvcnMiPmxhdGVyIGluIHRoaXMgZG9jdW1lbnQ8L2E+LjwvcD4KKworPGhyPgorPGg0PjxhIG5hbWU9ImRvYy5Gb3JtLmF0dHJpYnV0ZXMiPkNvbW1vbiBGb3JtIFRhZyBBdHRyaWJ1dGVzPC9hPjwvaDQ+CisKKzxwPlRoZSBmb3JtICJmaWVsZCIgdGFncyBpbiB0aGUgU3RydXRzLUhUTUwgdGFnIGxpYnJhcnkgc2hhcmUgYSBjb21tb24gc2V0IG9mCisgIHRhZyBhdHRyaWJ1dGVzIHRoYXQgaGF2ZSB0aGUgc2FtZSBtZWFuaW5nLCBubyBtYXR0ZXIgd2hhdCBmaWVsZCB0YWcgdGhleSBhcmUKKyAgdXNlZCB3aXRoLiBUaGVzZSBwcm9wZXJ0aWVzIGFsc28gYWNjZXB0IFJ1bnRpbWUgRXhwcmVzc2lvbnMsIG1lYW5pbmcgeW91IGNhbgorICBzZXQgdGhlbSB3aXRoIGEgc2NyaXB0bGV0LiBUaGUgY29tbW9uIGF0dHJpYnV0ZXMgZmFsbCBpbnRvIGZvdXIgY2F0ZWdvcmllczoKKyAgPGEgaHJlZj0iI2RvYy5Gb3JtLmF0dHJpYnV0ZXMuc3RydXRzIj5TdHJ1dHMgQ29tbW9uLDwvYT4gPGEgaHJlZj0iI2RvYy5Gb3JtLmF0dHJpYnV0ZXMubmF2aWdhdGlvbiI+SFRNTAorICBOYXZpZ2F0aW9uPC9hPiwgPGEgaHJlZj0iI2RvYy5Gb3JtLmF0dHJpYnV0ZXMuamF2YXNjcmlwdCI+SmF2YXNjcmlwdDwvYT4sIGFuZAorICA8YSBocmVmPSIjZG9jLkZvcm0uYXR0cmlidXRlcy5jc3MiPkNTUzwvYT4uPC9wPgorPGg1PjxhIG5hbWU9ImRvYy5Gb3JtLmF0dHJpYnV0ZXMuc3RydXRzIj5TdHJ1dHMgQ29tbW9uPC9hPjwvaDU+Cis8ZGl2IGFsaWduPSJjZW50ZXIiPgorICA8Y2VudGVyPgorICAgIDx0YWJsZSB3aWR0aD05MCUgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iNCI+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD4gbmFtZSA8L3RkPgorICAgICAgICA8dGQ+IFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gYmVhbiB3aG9zZSBwcm9wZXJ0aWVzCisgICAgICAgICAgYXJlIGNvbnN1bHRlZCB3aGVuIHJlbmRlcmluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIGlucHV0IGZpZWxkLgorICAgICAgICAgIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybSB0YWcgd2UgYXJlIG5lc3RlZAorICAgICAgICAgIHdpdGhpbiBpcyB1dGlsaXplZC4gPC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD4gcHJvcGVydHkgPC90ZD4KKyAgICAgICAgPHRkPiBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzIHN1Ym1pc3Npb24sCisgICAgICAgICAgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuIDwvdGQ+CisgICAgICA8L3RyPgorICAgICAgPHRyPgorICAgICAgICA8dGQ+IHZhbHVlIDwvdGQ+CisgICAgICAgIDx0ZD4gVmFsdWUgb2YgdGhlIGxhYmVsIHRvIGJlIHVzZWQgd2l0aCB0aGlzIGVsZW1lbnQuIFRoaXMgdmFsdWUgd2lsbAorICAgICAgICAgIGFsc28gYmUgc3VibWl0dGVkIGFzIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHJlcXVlc3QgcGFyYW1ldGVyLiBbQm9keQorICAgICAgICAgIG9mIHRoaXMgdGFnIChpZiBhbnkpLCBvciAiQ2xpY2siXSZuYnNwOyA8L3RkPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICA8L2NlbnRlcj4KKzwvZGl2PgorPHA+Jm5ic3A7PC9wPgorPHA+TGlrZSA8YSBocmVmPSIuLi9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sI2RvYy5Qcm9wZXJ0aWVzIj5TdHJ1dHMtQmVhbjwvYT4KKyAgdGFncywgdGhlIHByb3BlcnR5IGF0dHJpYnV0ZSBmb3IgdGhlIFN0cnV0cy1IVE1MIHRhZ3MgYWNjZXB0IHNpbXBsZSwgbmVzdGVkLAorICBhbmQgaW5kZXhlZCBleHByZXNzaW9ucy4gRm9yIGV4YW1wbGUsIHRoaXMgdGFnOjwvcD4KKzxwcmU+CisgICZsdDtodG1sOnRleHQgcHJvcGVydHk9Im1haWxpbmdBZGRyZXNzLnN0cmVldCIvJmd0OworPC9wcmU+Cis8cD5jb3JyZXNwb25kcyB0bzo8L3A+Cis8cHJlPgorICBnZXRNYWlsaW5nQWRkcmVzcygpLmdldFN0cmVldCgpCis8L3ByZT4KKzxwPkZvciBtb3JlIGFib3V0IHVzaW5nIHNpbXBsZSwgbmVzdGVkLCBhbmQgaW5kZXhlZCBleHByZXNzaW9ucyB3aXRoIFN0cnV0cywgc2VlCisgIHRoZSA8YSBocmVmPSIuLi9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sI2RvYy5Qcm9wZXJ0aWVzIj5TdHJ1dHMtQmVhbiBEZXZlbG9wZXJzCisgIEd1aWRlLjwvYT4gPC9wPgorPGg1PjxhIG5hbWU9ImRvYy5Gb3JtLmF0dHJpYnV0ZXMuamF2YXNjcmlwdCI+SmF2YXNjcmlwdCBFdmVudCBIYW5kbGVyczwvYT48L2g1PgorPGRpdiBhbGlnbj0iY2VudGVyIj4KKyAgPGNlbnRlcj4KKyAgICA8dGFibGUgd2lkdGg9OTAlIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjQiPgorICAgICAgPHRyPgorICAgICAgICA8dGQ+IG9uYmx1ciA8L3RkPgorICAgICAgICA8dGQ+IEV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0IGZvY3VzLiA8L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPiBvbmNoYW5nZSA8L3RkPgorICAgICAgICA8dGQ+IEV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0IGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgIDwvdGQ+CisgICAgICA8L3RyPgorICAgICAgPHRyPgorICAgICAgICA8dGQ+IG9uY2xpY2sgPC90ZD4KKyAgICAgICAgPHRkPiBFeGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIG1vdXNlIGNsaWNrLiA8L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPiBvbmRibGNsaWNrIDwvdGQ+CisgICAgICAgIDx0ZD4gRXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBtb3VzZSAtIGRvdWJsZSBjbGljay4gPC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD4gb25mb2N1cyA8L3RkPgorICAgICAgICA8dGQ+IEV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0IGZvY3VzLiA8L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPiBvbmtleWRvd24gPC90ZD4KKyAgICAgICAgPHRkPiBFeGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEga2V5IGlzIGRlcHJlc3NlZC4mbmJzcDsKKyAgICAgICAgPC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD4gb25rZXlwcmVzcyA8L3RkPgorICAgICAgICA8dGQ+IEV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYSBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZAorICAgICAgICA8L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPiBvbmtleXVwIDwvdGQ+CisgICAgICAgIDx0ZD4gRXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhIGtleSBpcyByZWxlYXNlZCA8L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPiBvbm1vdXNlZG93biA8L3RkPgorICAgICAgICA8dGQ+IEV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlCisgICAgICAgICAgYnV0dG9uIGlzIGRlcHJlc3NlZC4gPC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD4gb25tb3VzZW1vdmUgPC90ZD4KKyAgICAgICAgPHRkPiBFeGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIKKyAgICAgICAgICBpcyBtb3ZlZC4gPC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD4gb25tb3VzZW91dCA8L3RkPgorICAgICAgICA8dGQ+IEV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIKKyAgICAgICAgICB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4gPC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD4gb25tb3VzZW92ZXIgPC90ZD4KKyAgICAgICAgPHRkPiBFeGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUKKyAgICAgICAgICBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4gPC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD4gb25tb3VzZXVwIDwvdGQ+CisgICAgICAgIDx0ZD4gRXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UKKyAgICAgICAgICBidXR0b24gaXMgcmVsZWFzZWQuJm5ic3A7IDwvdGQ+CisgICAgICA8L3RyPgorICAgICAgPHRyPgorICAgICAgICA8dGQ+Jm5ic3A7IDwvdGQ+CisgICAgICAgIDx0ZD4gPGI+JnF1b3Q7cGFyZW50JnF1b3Q7IGZvcm0gdGFnIG9ubHk8L2I+IDwvdGQ+CisgICAgICA8L3RyPgorICAgICAgPHRyPgorICAgICAgICA8dGQ+IG9ucmVzZXQgPC90ZD4KKyAgICAgICAgPHRkPiBFeGVjdXRlZCBpZiB0aGUgZm9ybSBpcyByZXNldC4gPC90ZD4KKyAgICAgIDwvdHI+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD4gb25zdWJtaXQgPC90ZD4KKyAgICAgICAgPHRkPiBFeGVjdXRlZCBpZiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuJm5ic3A7IDwvdGQ+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgIDwvY2VudGVyPgorPC9kaXY+Cis8aDU+Jm5ic3A7PC9oNT4KKzxoNT48YSBuYW1lPSJkb2MuRm9ybS5hdHRyaWJ1dGVzLm5hdmlnYXRpb24iPkhUTUwgTmF2aWdhdGlvbiBBdHRyaWJ1dGVzPC9hPjwvaDU+Cis8ZGl2IGFsaWduPSJjZW50ZXIiPgorICA8Y2VudGVyPgorICAgIDx0YWJsZSB3aWR0aD05MCUgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iNCI+CisgICAgICA8dHI+CisgICAgICAgIDx0ZD4gYWNjZXNza2V5IDwvdGQ+CisgICAgICAgIDx0ZD4gVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcyBlbGVtZW50LgorICAgICAgICA8L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPiB0YWJpbmRleCA8L3RkPgorICAgICAgICA8dGQ+IFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4gPC90ZD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgPC9jZW50ZXI+Cis8L2Rpdj4KKzxoNT4mbmJzcDs8L2g1PgorPGg1PjxhIG5hbWU9ImRvYy5Gb3JtLmF0dHJpYnV0ZXMuY3NzIj5DU1MgQXR0cmlidXRlczwvYT48L2g1PgorPGRpdiBhbGlnbj0iY2VudGVyIj4KKyAgPGNlbnRlcj4KKyAgICA8dGFibGUgd2lkdGg9OTAlIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjQiPgorICAgICAgPHRyPgorICAgICAgICA8dGQ+IHN0eWxlIDwvdGQ+CisgICAgICAgIDx0ZD4gQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LiA8L3RkPgorICAgICAgPC90cj4KKyAgICAgIDx0cj4KKyAgICAgICAgPHRkPiBzdHlsZUNsYXNzIDwvdGQ+CisgICAgICAgIDx0ZD4gQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4gPC90ZD4KKyAgICAgIDwvdHI+CisgICAgPC90YWJsZT4KKyAgPC9jZW50ZXI+Cis8L2Rpdj4KKzxwPiZuYnNwOzwvcD4KKzxwPlNlZSB0aGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWh0bWwuaHRtbCI+SFRNTCBUYWdzIFJlZmVyZW5jZTwvYT4KKyAgZm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhdmFpbGFibGUgdGFncyBpbiB0aGlzIHRhZyBsaWJyYXJ5LCBhbmQgdGhlCisgIGNvbXBsZXRlIGxpc3Qgb2YgdmFsaWQgYXR0cmlidXRlcyBmb3IgZWFjaCB0YWcuPC9wPgorPGhyPgorPGgzPjxhIG5hbWU9ImRvYy5PdGhlciI+T3RoZXIgSFRNTCB0YWdzPC9hPjwvaDM+Cis8cD5Bc2lkZSBmcm9tIGZvcm0gcHJvY2Vzc2luZywgdGhlIFN0cnV0cy1IVE1MIG9mZmVycyBzZXZlcmFsIG90aGVyIHRhZ3Mgb3IgdGFnCisgIHByb3BlcnRpZXMgdG8gaGVscCB3aXRoIGRpc3BsYXlpbmcgZXJyb3IgbWVzc2FnZXMsIG1haW50YWluaW5nIGh5cGVybGlua3MsIGFuZAorICB3aXRoIGludGVybmF0aW9uYWxpemluZyB5b3VyIGFwcGxpY2F0aW9uLjwvcD4KKzxoND48YSBuYW1lPSJkb2MuT3RoZXIuZXJyb3JzIj5EaXNwbGF5aW5nIEVycm9yIE1lc3NhZ2VzPC9hPjwvaDQ+Cis8cD5FcnJvciBoYW5kbGluZyBpcyBhbiBpbXBvcnRhbnQgcGFydCBvZiBhbnkgYXBwbGljYXRpb24sIGFuZCBjdXJpbmcgYW4gZXJyb3IKKyAgb2Z0ZW4gaW52b2x2ZXMgZ2V0dGluZyB0aGUgdXNlcidzIGhlbHAuIFN0cnV0cyBwcm92aWRlcyBhIGdlbmVyYWxpemVkIG1ldGhvZAorICBmb3IgY29tbXVuaWNhdGluZyBydW50aW1lIG1lc3NhZ2VzIHRvIHVzZXJzLCBiYXNlZCBvbiB0aGUgc2FtZSB0ZWNobm9sb2d5IHVzZWQKKyAgdG8gcHJvdmlkZSBpbnRlcm5hdGlvbmFsaXphdGlvbi4gPC9wPgorPHA+SW4gYSBXZWIgYXBwbGljYXRpb24sIGl0IGlzIGNvbW1vbiB0byByZXVzZSB0aGUgaW5wdXQgcGFnZSB0byBkaXNwbGF5IGVycm9yCisgIG1lc3NhZ2VzLiBUaGUgU3RydXRzIGVycm9yIG1lc3NhZ2UgdGFnIGNhbiBiZSBwbGFjZWQgd2hlcmV2ZXIgeW91IHdvdWxkIGxpa2UKKyAgdGhlIG1lc3NhZ2VzIHRvIGRpc3BsYXkuIElmIG5vIG1lc3NhZ2VzIGFyZSBwZW5kaW5nLCBub3RoaW5nIGlzIHByaW50ZWQuPC9wPgorPHA+QnkgZGVmYXVsdCwgdGhlIGVycm9ycyB0YWcgd2lsbCBwcmludCBhbGwgcGVuZGluZyBtZXNzYWdlcy4gWW91IGNhbiBhbHNvIHNwZWNpZnkKKyAgYSBwcm9wZXJ0eSB3aGVuIHF1ZXVpbmcgYSBtZXNzYWdlLCBhbmQgdGhlbiByZWZlciB0byB0aGF0IHByb3BlcnR5IGluIHRoZSBlcnJvcnMKKyAgdGFnLiBJbiB0aGF0IGNhc2UsIG9ubHkgdGhlIG1lc3NhZ2UgZm9yIHRoYXQgcHJvcGVydHkgd2lsbCBiZSBkaXNwbGF5ZWQuIFRoaXMKKyAgaXMgaGVscGZ1bCB3aGVuIHlvdSB3b3VsZCBsaWtlIHRvIHBsYWNlIHRoZSBtZXNzYWdlIGZvciBhIGZpZWxkIG5leHQgdG8gdGhlCisgIGFjdHVhbCBmaWVsZC48L3A+Cis8cD5FcnJvciBtZXNzYWdlcyBhcmUgb2Z0ZW4gcXVldWVkIGluIHRoZSBBY3Rpb25Gb3JtIHZhbGlkYXRlIG1ldGhvZC4gSGVyZSdzIGEKKyAgc25pcHBldCBmcm9tIHRoZSBTdHJ1dHMgRXhhbXBsZSBhcHBsaWNhdGlvbjo8L3A+Cis8cHJlPiAgQWN0aW9uRXJyb3JzIGVycm9ycyA9IG5ldyBBY3Rpb25FcnJvcnMoKTsKKyAgaWYgKCh1c2VybmFtZSA9PSBudWxsKSB8fCAodXNlcm5hbWUubGVuZ3RoKCkgJmx0IDEpKQorICAgICAgZXJyb3JzLmFkZCgidXNlcm5hbWUiLCBuZXcgQWN0aW9uRXJyb3IoImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIikpOworICBpZiAoKHBhc3N3b3JkID09IG51bGwpIHx8IChwYXNzd29yZC5sZW5ndGgoKSAmbHQgMSkpCisgICAgICBlcnJvcnMuYWRkKCJwYXNzd29yZCIsCisgICAgICAgIG5ldyBBY3Rpb25FcnJvcigiZXJyb3IucGFzc3dvcmQucmVxdWlyZWQiKSk7Cis8L3ByZT4KKzxwPlRoaXMgcXVldWVzIHR3byBlcnJvciBtZXNzYWdlcywgb25lIGZvciB0aGUgInVzZXJuYW1lIiBmaWVsZCBhbmQgYW5vdGhlciBmb3IKKyAgdGhlICJwYXNzd29yZCIgZmllbGQuIFRvIHByaW50IGFsbCB0aGUgbWVzc2FnZXMgdG9nZXRoZXIsIHNpbXBseSBwbGFjZSB0aGUgZXJyb3IKKyAgdGFnIGFueXdoZXJlIGluIHlvdXIgSlNQLjwvcD4KKzxwcmU+CisgICZsdDtib2R5IGJnY29sb3I9IndoaXRlIiZndDsKKyAgJmx0O2h0bWw6ZXJyb3JzLyZndDsKKzwvcHJlPgorPHA+T3IsIHlvdSBjYW4gcGxhY2Ugc3BlY2lmaWMgZXJyb3IgbWVzc2FnZXMgYXQgZGlmZmVyZW50IGxvY2F0aW9uczwvcD4KKzxwcmU+CisgICZsdDt0ZCBhbGlnbj0ibGVmdCImZ3Q7CisgICAgJmx0O2h0bWw6dGV4dCBwcm9wZXJ0eT0idXNlcm5hbWUiIHNpemU9IjE2IiBtYXhsZW5ndGg9IjE2Ii8mZ3Q7CisgICAgJmx0O2h0bWw6ZXJyb3JzIHByb3BlcnR5PSJ1c2VybmFtZSIvJmd0OworICAmbHQ7L3RkJmd0OworICAmbHQ7L3RyJmd0OyZsdDt0ciZndDsKKyAgJmx0O3RkIGFsaWduPSJsZWZ0IiZndDsKKyAgICAmbHQ7aHRtbDp0ZXh0IHByb3BlcnR5PSJwYXNzd29yZCIgc2l6ZT0iMTYiIG1heGxlbmd0aD0iMTYiLyZndDsKKyAgICAmbHQ7aHRtbDplcnJvcnMgcHJvcGVydHk9InBhc3N3b3JkIi8mZ3Q7CisgICZsdDsvdGQmZ3Q7Cis8L3ByZT4KKzxwPkJ5IGRlZmF1bHQsIHRoZSBhY3R1YWwgZXJyb3IgbWVzc2FnZSBpcyByZXRyaWV2ZWQgZnJvbSB0aGUgYXBwbGljYXRpb24ncyBzdGFuZGFyZAorICBtZXNzYWdlIHJlc291cmNlLiBUaGlzIGdpdmVzIHlvdSBhIG1hc3RlciBsaXN0IG9mIHRoZSBlcnJvciBtZXNzYWdlcyB1c2VkIGJ5CisgIHlvdXIgYXBwbGljYXRpb24sIGFuZCBwcm92aWRlcyBmb3IgaW50ZXJuYXRpb25hbGl6YXRpb24uIEluIHRoZSBjb2RlIHNuaXBwZXQsCisgIHRoZSBtZXNzYWdlIGNvcnJlc3BvbmRpbmcgdG8gImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIiB3b3VsZCBiZSByZXRyaWV2ZWQgYW5kCisgIGRpc3BsYXllZCB0byB0aGUgdXNlciBhdCBydW50aW1lLiA8L3A+Cis8cHJlPgorICBlcnJvci51c2VybmFtZS5yZXF1aXJlZD0mbHQ7bGkmZ3Q7VXNlcm5hbWUgaXMgcmVxdWlyZWQmbHQ7L2xpJmd0OworPC9wcmU+Cis8cD5Nb3N0IG9mdGVuLCBlcnJvciBtZXNzYWdlcyBhcmUgZGlzcGxheWVkIGluIGEgcGFydGljdWxhciB3YXkuIFRvIG1ha2UgaXQgZWFzeQorICB0byBmb3JtYXQgeW91ciBtZXNzYWdlcywgeW91IGNhbiBhbHNvIHNwZWNpZmljIGFuIDxjb2RlPmVycm9ycy5oZWFkZXI8L2NvZGU+CisgIGFuZCA8Y29kZT5lcnJvcnMuZm9vdGVyPC9jb2RlPiBzdHJpbmcgaW4geW91ciBtZXNzYWdlIHJlc291cmNlLiBUeXBpY2FsbHksIHlvdQorICBtaWdodCB3YW50IHRvIHJlbmRlciB0aGUgbWVzc2FnZXMgaW4gYSBkaWZmZXJlbnQgY29sb3IsIG9yIHNldCB0aGVtIHVwCisgIHRvIGFwcGVhciBpbiBhbiB1bm9yZGVyZWQgbGlzdC4gVXNpbmcgdGhlIDxjb2RlPmVycm9ycy5oZWFkZXI8L2NvZGU+IGFuZCA8Y29kZT5lcnJvcnMuZm9vdGVyPC9jb2RlPgorICBzdHJpbmdzIGtlZXBzIHRoZSBzZXR1cCBjb2RlcyBvdXQgb2YgeW91ciBKU1AgdW50aWwgYSBtZXNzYWdlIGFjdHVhbGx5IHByaW50cy48L3A+Cis8cHJlPgorICBlcnJvcnMuaGVhZGVyPSZsdDtoMyZndDsmbHQ7Zm9udCBjb2xvcj0icmVkIiZndDtWYWxpZGF0aW9uIEVycm9yJmx0Oy9mb250Jmd0OyZsdDsvaDMmZ3Q7CisgICAgWW91IG11c3QgY29ycmVjdCB0aGUgZm9sbG93aW5nIGVycm9yKHMpIGJlZm9yZSBwcm9jZWVkaW5nOiZsdDtVTCZndDsKKyAgZXJyb3JzLmZvb3Rlcj0mbHQ7L3VsJmd0OyZsdDtociZndDsKKzwvcHJlPgorPGg0PjxhIG5hbWU9ImRvYy5PdGhlci5oeXBlcmxpbmtpbmciPk1haW50YWluaW5nIEh5cGVybGlua3M8L2E+PC9oND4KKzx1bD4KKyAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1odG1sLmh0bWwjYmFzZSI+YmFzZTwvYT48L2xpPgorPC91bD4KKzxwPldoZW4gaW1wbGVtZW50aW5nIGEgV2ViIGFwcGxpY2F0aW9uLCBpdCBpcyB1c3VhbGx5IGEgZ29vZCBpZGVhIHRvIHVzZSByZWxhdGl2ZQorICByZWZlcmVuY2VzIHRvIG90aGVyIGZpbGVzIGluIHRoZSBzYW1lIGFwcGxpY2F0aW9uLiBCdXQgaW4gYSBkeW5hbWljIGFwcGxpY2F0aW9uLAorICB0aGUgY29udHJvbGxlciBzZXJ2bGV0IG9mdGVuIHJldHVybnMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBmaWxlIHRoYW4gdGhlIG9uZQorICByZXF1ZXN0ZWQuIChPZnRlbiwgdGhlIHJlcXVlc3RlZCAiZmlsZSIgZG9lc24ndCBhY3R1YWxseSBleGlzdCwgYnV0IHJlcHJlc2VudHMKKyAgYW4gYWN0aW9uIGZvciB0aGUgY29udHJvbGxlciB0byBpbnRlcnByZXQuKSBTaW5jZSByZWxhdGl2ZSByZWZlcmVuY2VzIGFyZSByZXNvbHZlZAorICBieSB0aGUgYnJvd3NlciwgdGhleSBvZnRlbiB3b24ndCB3b3JrIGluIGEgZHluYW1pYyBhcHBsaWNhdGlvbi48L3A+Cis8cD5UbyBhY2NvbW1vZGF0ZSB0aGlzLCB0aGUgU3RydXRzLUhUTUwgdGFnbGliIHByb3ZpZGVzIGEgPGNvZGU+Jmx0O2Jhc2UmZ3Q7PC9jb2RlPgorICB0YWcgdGhhdCByZW5kZXJzIGFuIEhUTUwKKyAgPGJhc2U+CisgIGVsZW1lbnQgd2l0aCBhbiBocmVmIGF0dHJpYnV0ZSBwb2ludGluZyB0byB0aGUgYWJzb2x1dGUgbG9jYXRpb24gb2YgaXRzIHBhZ2UuCis8L3A+Cis8cD5BcyBhIHJ1bGUsIHlvdSBzaG91bGQgcGxhY2UgdGhlIFN0cnV0cy1IVE1MIGJhc2UgdGFnIGluIHRoZSAmbHQ7aGVhZCZndDsgc2VjdGlvbgorICBvZiBhbnkgSlNQIHRoYXQgdXNlcyByZWxhdGl2ZSByZWZlcmVuY2VzIHRvIG90aGVyIGZpbGVzLjwvcD4KKzxwcmU+CisgICZsdDtoZWFkJmd0OworICAgICZsdDtodG1sOmJhc2UvJmd0OworICAmbHQ7L2hlYWQmZ3Q7Cis8L3ByZT4KKzxoND48YSBuYW1lPSJkb2MuT3RoZXIuc2Vzc2lvbnMiPlNlc3Npb24gVHJhY2tpbmc8L2E+PC9oND4KKzxwPlRoZSBKYXZhIFNlcnZsZXQgZnJhbWV3b3JrIGhhcyBidWlsdC1pbiBzdXBwb3J0IGZvciB0cmFja2luZyBhIGNsaWVudCB0aHJvdWdoCisgIGEgc2Vzc2lvbi4gU2Vzc2lvbnMgYXJlIGEgdXNlZnVsIHdheSB0byBjb21wZW5zYXRlIGZvciB0aGUgc3RhdGVsZXNzIG5hdHVyZQorICBvZiBIVFRQLiBUcmFja2luZyBhIGNsaWVudCBjYW4gYmUgZG9uZSB3aXRoIGVpdGhlciBjb29raWVzIG9yIFVSTCByZXdyaXRpbmcsCisgIGNvb2tpZXMgYmVpbmcgcHJlZmVycmVkIHdoZW4gYXZhaWxhYmxlLiBTdHJ1dHMgb2ZmZXJzIHRocmVlIHRhZ3MgdGhhdCBtYWtlIGl0CisgIGVhc3kgdG8gd3JpdGUgInNlc3Npb24tYXdhcmUiIGh5cGVybGluayByZWZlcmVuY2VzOjwvcD4KKzx1bD4KKyAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1odG1sLmh0bWwjbGluayI+bGluazwvYT4gLSBSZW5kZXJzIGFuCisgICAgSFRNTCBhbmNob3Igb3IgaHlwZXJsaW5rLjwvbGk+CisgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHJ1dHMtaHRtbC5odG1sI3Jld3JpdGUiPnJld3JpdGU8L2E+IC0gUmVuZGVycworICAgIGEgcmVxdWVzdCBVUkksIGJ1dCB3aXRob3V0IGNyZWF0aW5nIHRoZSAmbHQ7YSZndDsgaHlwZXJsaW5rLiBUaGlzIHRhZyBpcyB1c2VmdWwKKyAgICB3aGVuIHlvdSB3YW50IHRvIGdlbmVyYXRlIGEgc3RyaW5nIGNvbnN0YW50IGZvciB1c2UgYnkgYSBKYXZhU2NyaXB0IHByb2NlZHVyZS48L2xpPgorICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWh0bWwuaHRtbCNpbWciPmltZzwvYT4gLSBSZW5kZXJzIGFuIEhUTUwKKyAgICAmbHQ7aW1nJmd0OyBlbGVtZW50IHdpdGggdGhlIGltYWdlIGF0IHRoZSBzcGVjaWZpZWQgVVJMLjwvbGk+Cis8L3VsPgorPHA+RWFjaCBvZiB0aGVzZSB0YWdzIHdpbGwgYXV0b21hdGljYWxseSBhcHBseSBVUkwgcmV3cml0aW5nLCB0byBtYWludGFpbiBzZXNzaW9uCisgIHN0YXRlIGluIHRoZSBhYnNlbmNlIG9mIGNvb2tpZXMuIFRoZSBjb250ZW50IGRpc3BsYXllZCBmb3IgdGhlIGh5cGVybGluayB3aWxsCisgIGJlIHRha2VuIGZyb20gdGhlIGJvZHkgb2YgdGhlIHRhZy4gVGhlIGJhc2UgVVJMIGZvciB0aGUgaHlwZXJsaW5rIGlzIGNhbGN1bGF0ZWQKKyAgYmFzZWQgb24gcHJvcGVydGllcyBnaXZlbiB3aXRoIHRoZSB0YWcuPC9wPgorPHA+Tm9ybWFsbHksIHRoZSBoeXBlcmxpbmsgb3IgVVJJIHlvdSBzcGVjaWZ5IGlzIGxlZnQgdW5jaGFuZ2VkLiBJZiB5b3Ugd291bGQKKyAgbGlrZSB0byBpbmNsdWRlIGR5bmFtaWMgcGFyYW1ldGVycyB0byB0aGUgaHlwZXJsaW5rIG9yIFVSSSwgeW91IGNhbiBwYXNzIHRob3NlCisgIHRvIHRoZSB0YWdzIHZpYSBhIEphdmFCZWFuLiBJZiB0aGVyZSBtYXkgYmUgbmFtaW5nIGNvbmZsaWN0cywgeW91IGNhbiBhbHNvIHNwZWNpZnkKKyAgdGhlIHNjb3BlIHRoYXQgdGhlIHRhZyBzZWFyY2hlcyAocmVxdWVzdCwgcGFnZSwgc2Vzc2lvbiwgYXBwbGljYXRpb24pLiA8L3A+Cis8cD5UbyBwYXNzIGEgc2luZ2xlIGR5bmFtaWMgcGFyYW1ldGVyLCBzcGVjaWZ5IHRoZSBwYXJhbWV0ZXIncyBuYW1lIHVzaW5nIHRoZQorICA8Y29kZT5wYXJhbUlkPC9jb2RlPiBhdHRyaWJ1dGUuIFlvdSBjYW4gdGhlbiBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBKYXZhQmVhbgorICBob2xkaW5nIHRoZSB2YWx1ZSB1c2luZyB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIGFuZCBhIHBhcnRpY3VsYXIKKyAgcHJvcGVydHkgdXNpbmcgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4uIDwvcD4KKzxwPlNvLCBhIHRhZyBsaWtlPC9wPgorPHByZT4gICAmbHQ7aHRtbDpsaW5rIHBhcmFtSWQ9JnF1b3Q7dGFyZ2V0JnF1b3Q7CisgICAgIHBhcmFtTmFtZT0mcXVvdDtsaW5rUGFyYW1zJnF1b3Q7IDxicj4gICAgIHBhcmFtUHJvcGVydHk9JnF1b3Q7dGFyZ2V0JnF1b3Q7CisgICAgIHBhcmFtU2NvcGU9JnF1b3Q7cmVxdWVzdCZxdW90Ozxicj4gICAmZ3Q7ZGV0YWlsLmh0bWwmbHQ7L2h0bWw6bGluayZndDs8L3ByZT4KKzxwPndvdWxkIGNvcnJlc3BvbmQgdG8gc29tZXRoaW5nIGxpa2U8L3A+Cis8cHJlPiAgJmx0O0EgSFJFRj0mcXVvdDtkZXRhaWwuaHRtbD8mbHQ7JT0gPGJyPiAgICByZXF1ZXN0LmdldFBhcmFtZXRlcigmcXVvdDtsaW5rUGFyYW1zJnF1b3Q7KS5nZXRUYXJnZXQoKQorICAlJmd0OyZxdW90OyZndDsmbHQ7L0EmZ3Q7Cis8L3ByZT4KKzxwPlRvIHNlYXJjaCBhbGwgc2NvcGVzIChyZXF1ZXN0LCBwYWdlLCBzZXNzaW9uLCBhbmQgYXBwbGljYXRpb24pLCBvbWl0IDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+LgorPC9wPgorPHA+VGhlIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZSBtYXkgYWxzbyBiZSBvbWl0dGVkLCBzbyBsb25nIGFzIHRoZQorICBuYW1lZCBiZWFuIGlkZW50aWZpZXMgYSB2YWx1ZSB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuCis8cD5UbyBwYXNzIG11bHRpcGxlIGR5bmFtaWMgcGFyYW1ldGVycywgeW91IGNhbiBzdG9yZSB0aGVtIGluIGEgPGNvZGU+PGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9qMnNlLzEuMy9kb2NzL2FwaS9qYXZhL3V0aWwvTWFwLmh0bWwiPmphdmEudXRpbC5NYXA8L2E+PC9jb2RlPiwKKyAgYW5kIHVzZSB0aGUgbmFtZSBvZiB0aGUgbWFwIGZvciB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPi4gVGhlIG1hcCBtdXN0IHRoZW4KKyAgY29udGFpbiBvbmUgb3IgbW9yZSA8Y29kZT5wYXJhbUlkczwvY29kZT4gYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgdmFsdWVzLiBBcworICB0aGUgTWFwIGlzIHByb2Nlc3NlZCwgdGhlIGtleXMgYXJlIGFzc3VtZWQgdG8gYmUgdGhlIG5hbWVzIG9mIHF1ZXJ5IHBhcmFtZXRlcnMKKyAgdG8gYmUgYXBwZW5kZWQuIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBrZXkgbXVzdCBiZSBlaXRoZXIgYSBTdHJpbmcgb3IKKyAgYSBTdHJpbmcgYXJyYXkgcmVwcmVzZW50aW5nIHRoZSBwYXJhbWV0ZXIgdmFsdWUocykuIElmIGEgU3RyaW5nIGFycmF5IGlzIHNwZWNpZmllZCwKKyAgbW9yZSB0aGFuIG9uZSB2YWx1ZSBmb3IgdGhlIHNhbWUgcXVlcnkgcGFyYW1ldGVyIG5hbWUgd2lsbCBiZSBjcmVhdGVkLgorPHA+VGhlIEhUTUwgc2Vzc2lvbiB0cmFja2luZyB0YWdzIHVzZSBzZXZlcmFsIGNvbW1vbiBhdHRyaWJ1dGVzLCB0aGF0IGNhbiBiZSBvcmdhbml6ZWQKKyAgaW50byB0aHJlZSBncm91cHMsIGFzIGZvbGxvd3MuIEFsbCBvZiB0aGVzZSBhdHRyaWJ1dGVzIGFyZSBub3QgdXNlZCBieSBhbGwgdGhyZWUKKyAgdGFncyAoPGNvZGU+bGluazwvY29kZT4sIDxjb2RlPnJld3JpdGU8L2NvZGU+LCBhbmQgPGNvZGU+aW1nPC9jb2RlPiksIGFuZCBzbworICB0aGUgdGFncyB1c2luZyBlYWNoIGF0dHJpYnV0ZSBpcyBnaXZlbi4KKzxwPiZuYnNwOworPHRhYmxlIHdpZHRoPTkwJSBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSI0Ij4KKyAgPHRyPgorICAgIDx0aCBjb2xzcGFuPSIyIj5mb3J3YXJkLCBocmVmLCBhbmQgcGFnZTwvdGg+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+IGZvcndhcmQgPC90ZD4KKyAgICA8dGQ+IFsgbGluayByZXdyaXRlIF0gLSBMb2dpY2FsIG5hbWUgb2YgYSBnbG9iYWwgQWN0aW9uRm9yd2FyZCB0aGF0IGNvbnRhaW5zCisgICAgICB0aGUgYWN0dWFsIGNvbnRlbnQtcmVsYXRpdmUgVVJJIG9mIHRoZSBkZXN0aW5hdGlvbiBvZiB0aGlzIHRyYW5zZmVyLiBUaGlzCisgICAgICBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5IG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywKKyAgICAgIGFzIGRlc2NyaWJlZCBpbiB0aGUgdGFnIGRlc2NyaXB0aW9uLiBZb3UgbXVzdCBzcGVjaWZ5IGV4YWN0bHkgb25lIG9mIHRoZQorICAgICAgZm9yd2FyZCBhdHRyaWJ1dGUsIHRoZSBocmVmIGF0dHJpYnV0ZSwgdGhlIGxpbmtOYW1lIGF0dHJpYnV0ZSwgb3IgdGhlIHBhZ2UKKyAgICAgIGF0dHJpYnV0ZSA8L3RkPgorICA8L3RyPgorICA8dHI+CisgICAgPHRkPiBocmVmIDwvdGQ+CisgICAgPHRkPiBbIGxpbmsgcmV3cml0ZSBdIC0gVGhlIFVSTCB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wKKyAgICAgIGlmIGFjdGl2YXRlZC4gVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5IG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24KKyAgICAgIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUgdGFnIGRlc2NyaXB0aW9uLiBZb3UgbXVzdCBzcGVjaWZ5CisgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgZm9yd2FyZCBhdHRyaWJ1dGUsIHRoZSBocmVmIGF0dHJpYnV0ZSwgdGhlIGxpbmtOYW1lIGF0dHJpYnV0ZSwKKyAgICAgIG9yIHRoZSBwYWdlIGF0dHJpYnV0ZS4gPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD4gcGFnZSA8L3RkPgorICAgIDx0ZD4gWyBsaW5rIHJld3JpdGUgXSAtIFRoZSBjb250ZXh0LXJlbGF0aXZlIHBhdGgsIHN0YXJ0aW5nIHdpdGggYSBzbGFzaCwKKyAgICAgIG9mIHRoZSBpbWFnZSB0byBiZSBkaXNwbGF5ZWQgYnkgdGhpcyB0YWcuIFRoZSByZW5kZXJlZCBVUkwgZm9yIHRoaXMgaW1hZ2UKKyAgICAgIHdpbGwgYXV0b21hdGljYWxseSBwcmVwZW5kIHRoZSBjb250ZXh0IHBhdGggb2YgdGhpcyB3ZWIgYXBwbGljYXRpb24gKGluCisgICAgICB0aGUgc2FtZSBtYW5uZXIgYXMgdGhlIHBhZ2UgYXR0cmlidXRlIG9uIHRoZSBsaW5rIHRhZyB3b3JrcyksIGluIGFkZGl0aW9uCisgICAgICB0byBhbnkgbmVjZXNzYXJ5IFVSTCByZXdyaXRpbmcuIFlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIHRoZSBwYWdlIGF0dHJpYnV0ZQorICAgICAgb3IgdGhlIHNyYyBhdHRyaWJ1dGUuIDwvdGQ+CisgIDwvdHI+Cis8L3RhYmxlPgorPHA+Jm5ic3A7Cis8dGFibGUgd2lkdGg9OTAlIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjQiPgorICA8dHI+CisgICAgPHRoIGNvbHNwYW49IjIiPmxpbmtOYW1lLCBUYXJnZXQgLCBhbmQgc3JjPC90aD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD4gbGlua05hbWUgPC90ZD4KKyAgICA8dGQ+CisgICAgICA8cD5bIGxpbmsgXSAtIFRoZSBhbmNob3IgbmFtZSB0byBiZSBkZWZpbmVkIHdpdGhpbiB0aGlzIHBhZ2UsIHNvIHRoYXQgeW91CisgICAgICAgIGNhbiByZWZlcmVuY2UgaXQgd2l0aCBpbnRyYS1wYWdlIGh5cGVybGlua3MuIEluIG90aGVyIHdvcmRzLCB0aGUgdmFsdWUKKyAgICAgICAgc3BlY2lmaWVkIGhlcmUgd2lsbCByZW5kZXIgYSAibmFtZSIgZWxlbWVudCBpbiB0aGUgZ2VuZXJhdGVkIGFuY2hvciB0YWcuCisgICAgICA8L3A+CisgICAgPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD4gdGFyZ2V0IDwvdGQ+CisgICAgPHRkPiBbIGxpbmsgaW1nIF0gLSBUaGUgd2luZG93IHRhcmdldCBpbiB3aGljaCB0aGUgcmVzb3VyY2UgcmVxdWVzdGVkIGJ5IHRoaXMKKyAgICAgIGh5cGVybGluayB3aWxsIGJlIGRpc3BsYXllZCwgZm9yIGV4YW1wbGUgaW4gYSBmcmFtZWQgcHJlc2VudGF0aW9uLiA8L3RkPgorICA8L3RyPgorICA8dHI+CisgICAgPHRkPiBzcmMgPC90ZD4KKyAgICA8dGQ+IFsgaW1nIF0gLSBUaGUgVVJMIHRvIHdoaWNoIHRoaXMgaW1hZ2Ugd2lsbCBiZSB0cmFuc2ZlcnJlZCBmcm9tIFRoaXMgaW1hZ2UKKyAgICAgIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZCBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZAorICAgICAgaW4gdGhlIHRhZyBkZXNjcmlwdGlvbi4gVGhpcyB2YWx1ZSB3aWxsIGJlIHVzZWQgdW5tb2RpZmllZCAob3RoZXIgdGhhbiBwb3RlbnRpYWwKKyAgICAgIFVSTCByZXdyaXRpbmcpIGFzIHRoZSB2YWx1ZSBvZiB0aGUgInNyYyIgYXR0cmlidXRlIGluIHRoZSByZW5kZXJlZCB0YWcuCisgICAgICBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciB0aGUgcGFnZSBhdHRyaWJ1dGUgb3IgdGhlIHRoZSBzcmMgYXR0cmlidXRlLiA8L3RkPgorICA8L3RyPgorPC90YWJsZT4KKzxwPiZuYnNwOworPHRhYmxlIHdpZHRoPTkwJSBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSI0Ij4KKyAgPHRyPgorICAgIDx0aCBjb2xzcGFuPSIyIj5wYXJhbUlkLCBwYXJhbU5hbWUsIHBhcmFtUHJvcGVydHksIHBhcmFtU2NvcGUgPC90aD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD4gcGFyYW1JZCA8L3RkPgorICAgIDx0ZD4gWyBsaW5rIGltZyBdIC0gVGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseQorICAgICAgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBzcmMgVVJMLiBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcyBkZWZpbmVkIGJ5IHRoZQorICAgICAgcGFyYW1OYW1lIGFuZCAob3B0aW9uYWwpIHBhcmFtUHJvcGVydHkgYXR0cmlidXRlcywgb3B0aW9uYWxseSBzY29wZWQgYnkKKyAgICAgIHRoZSBwYXJhbVNjb3BlIGF0dHJpYnV0ZTwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+IHBhcmFtTmFtZSA8L3RkPgorICAgIDx0ZD4gWyBsaW5rIGltZyBdIC0gVGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGlzIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlCisgICAgICB2YWx1ZSBmb3IgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVkIGJ5IHBhcmFtSWQgKGlmIHBhcmFtUHJvcGVydHkgaXMgbm90CisgICAgICBzcGVjaWZpZWQpLCBvciBhIEpTUCBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcyBjYWxsZWQgdG8gcmV0dXJuIGEgU3RyaW5nCisgICAgICAoaWYgcGFyYW1Qcm9wZXJ0eSBpcyBzcGVjaWZpZWQpLiBUaGUgSlNQIGJlYW4gaXMgY29uc3RyYWluZWQgdG8gdGhlIGJlYW4KKyAgICAgIHNjb3BlIHNwZWNpZmllZCBieSB0aGUgcGFyYW1TY29wZSBwcm9wZXJ0eSwgaWYgaXQgaXMgc3BlY2lmaWVkLiA8L3RkPgorICA8L3RyPgorICA8dHI+CisgICAgPHRkPiBwYXJhbVByb3BlcnR5IDwvdGQ+CisgICAgPHRkPiBbIGxpbmsgaW1nIF0gLSBUaGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgcGFyYW1OYW1lCisgICAgICBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0IGJlIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlIHZhbHVlIG9mIHRoZQorICAgICAgcmVxdWVzdCBwYXJhbWV0ZXIgKG5hbWVkIGJ5IHRoZSBwYXJhbUlkIGF0dHJpYnV0ZSkgdGhhdCB3aWxsIGJlIGR5bmFtaWNhbGx5CisgICAgICBhZGRlZCB0byB0aGlzIGh5cGVybGluayBvciBzcmMgVVJMPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD4gcGFyYW1TY29wZSA8L3RkPgorICAgIDx0ZD4gWyBsaW5rIGltZyBdIC0gVGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgYnkgdGhlIHBhcmFtTmFtZSBhdHRyaWJ1dGUuIElmIG5vdCBzcGVjaWZpZWQsIGFsbCBzY29wZXMgYXJlIHNlYXJjaGVkLiA8L3RkPgorICA8L3RyPgorPC90YWJsZT4KKzxwPiZuYnNwOworPHRhYmxlIHdpZHRoPTkwJSBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSI0Ij4KKyAgPHRyPgorICAgIDx0aCBjb2xzcGFuPSIyIj4KKyAgICAgIDxwPm5hbWUsIHByb3BlcnR5LCBzY29wZQorICAgIDwvdGg+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+IG5hbWUgPC90ZD4KKyAgICA8dGQ+IFsgbGluayByZXdyaXRlIGltZyBdIC0gVGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGNvbnRhaW5zIGEgPGNvZGU+PGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9qMnNlLzEuMy9kb2NzL2FwaS9qYXZhL3V0aWwvTWFwLmh0bWwiPk1hcDwvYT48L2NvZGU+CisgICAgICByZXByZXNlbnRpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkKSwKKyAgICAgIG9yIGEgSlNQIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzIGNhbGxlZCB0byByZXR1cm4gYSA8Y29kZT5NYXA8L2NvZGU+CisgICAgICAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZCkuIDwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQ+IHByb3BlcnR5IDwvdGQ+CisgICAgPHRkPlsgbGluayByZXdyaXRlIGltZyBdIC0gVGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkKKyAgICAgIHRoZSBuYW1lIGF0dHJpYnV0ZSwgd2hvc2UgcmV0dXJuIHZhbHVlIG11c3QgYmUgYSA8Y29kZT48YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS4zL2RvY3MvYXBpL2phdmEvdXRpbC9NYXAuaHRtbCI+TWFwPC9hPjwvY29kZT4KKyAgICAgIGNvbnRhaW5pbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gYmUgYWRkZWQgdG8gdGhlIHNyYyBVUkwuIFlvdSA8Yj5tdXN0PC9iPgorICAgICAgc3BlY2lmeSB0aGUgbmFtZSBhdHRyaWJ1dGUgaWYgeW91IHNwZWNpZnkgdGhpcyBhdHRyaWJ1dGUgPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZD4gc2NvcGUgPC90ZD4KKyAgICA8dGQ+IFsgbGluayByZXdyaXRlIGltZyBdIC0gVGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuCisgICAgICBzcGVjaWZpZWQgYnkgdGhlIG5hbWUgYXR0cmlidXRlLiBJZiBub3Qgc3BlY2lmaWVkLCBhbGwgc2NvcGVzIGFyZSBzZWFyY2hlZC4KKyAgICA8L3RkPgorICA8L3RyPgorPC90YWJsZT4KKzxwPlNlZSB0aGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWh0bWwuaHRtbCI+SFRNTCBUYWdzIFJlZmVyZW5jZTwvYT4KKyAgZm9yIHRoZSBjb21wbGV0ZSBsaXN0IG9mIHZhbGlkIGF0dHJpYnV0ZXMgZm9yIGVhY2ggdGFnLi4KKzxoND48YSBuYW1lPSJkb2MuT3RoZXIuaTE4biI+SW50ZXJuYXRpb25hbGl6YXRpb248L2E+PC9oND4KKzxwPkludGVybmF0aW9uYWxpemF0aW9uIGlzIGF1dG9tYXRpY2FsbHkgc3VwcG9ydGVkIGJ5IHRoZSBIVE1MIHRhZ3Mgd2hlcmUgYXBwcm9wcmlhdGUuCis8L3A+Cis8cD48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHJ1dHMtaHRtbC5odG1sI2Vycm9ycyI+RXJyb3JzPC9hPiAtIEJ5IGRlZmF1bHQsCisgIHRoZSB0ZXh0IGZvciB5b3VyIG1lc3NhZ2VzIHdpbGwgYmUgcmV0dXJuZWQgYnkgdGhlIGRlZmF1bHQgbWVzc2FnZSByZXNvdXJjZSwKKyAgd2hpY2ggd2lsbCBzZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGxhbmd1YWdlIGZvciB0aGUgdXNlci4gWW91IG1heSBhbHNvIHNwZWNpZnkKKyAgYW5vdGhlciBtZXNzYWdlIHJlc291cmNlIHVzaW5nIHRoZSA8Y29kZT5idW5kbGU8L2NvZGU+IGF0dHJpYnV0ZS48L3A+Cis8cD48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHJ1dHMtaHRtbC5odG1sI2h0bWwiPkhUTUw8L2E+IC0gUmVuZGVycyBhbiBIVE1MCisgIGVsZW1lbnQgd2l0aCBsYW5ndWFnZSBhdHRyaWJ1dGVzIGV4dHJhY3RlZCBmcm9tIHRoZSB1c2VyJ3MgY3VycmVudCBMb2NhbGUgb2JqZWN0LAorICBpZiB0aGVyZSBpcyBvbmUuIDwvcD4KKzxwPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1odG1sLmh0bWwjaW1hZ2UiPmltYWdlPC9hPiBhbmQgPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWh0bWwuaHRtbCNpbWciPmltZzwvYT4KKyAgLSBDYW4gb3B0aW9uYWxseSByZXRyaWV2ZSB0aGUgdmFsdWUgZm9yIGl0cyBiaW5hcnkgc291cmNlIGFuZCBhbHQgdGV4dCBmcm9tCisgIHRoZSBtZXNzYWdlIHJlc291cmNlLCBzbyB0aGF0IGRpZmZlcmVudCBpbWFnZXMgYW5kL29yIHRleHQgY2FuIGJlIHByb3ZpZGVkIGZvcgorICBkaWZmZXJlbnQgbG9jYWxlcy4gU2VlIHRoZSB0YWcncyA8Y29kZT5hbHRLZXk8L2NvZGU+LCA8Y29kZT5zcmNLZXk8L2NvZGU+LCBhbmQKKyAgPGNvZGU+YnVuZGxlPC9jb2RlPiBhdHRyaWJ1dGVzIGluIHRoZSA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHJ1dHMtaHRtbC5odG1sIj5IVE1MCisgIFRhZ3MgUmVmZXJlbmNlPC9hPi48L3A+Cis8cD5TZWUgdGhlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9idWlsZGluZ192aWV3Lmh0bWwjaTE4biI+VXNlcnMKKyAgR3VpZGU8L2E+IGZvciBtb3JlIG9uIGhvdyBTdHJ1dHMgaGVscHMgeW91IGludGVybmF0aW9uYWxpemUgeW91ciBhcHBsaWNhdGlvbnMuPC9wPgorPHA+Jm5ic3A7PC9wPgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2UtdHJlZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGRlN2ZmNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTE4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCBDbGFzcyBIaWVyYXJjaHkKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorSGllcmFyY2h5IEZvciBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy10cmVlLmh0bWwiPkFsbCBQYWNrYWdlczwvQT48L0RMPgorPEhSPgorPEgyPgorQ2xhc3MgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLk9iamVjdDxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sIj48Qj5Db25zdGFudHM8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sIj48Qj5CYXNlVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQgKGltcGxlbWVudHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj48Qj5CYXNlSGFuZGxlclRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPjxCPkJhc2VJbnB1dFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPjxCPkJhc2VGaWVsZFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sIj48Qj5GaWxlVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+PEI+SGlkZGVuVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj48Qj5QYXNzd29yZFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sIj48Qj5UZXh0VGFnPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+PEI+VGV4dGFyZWFUYWc8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+PEI+QnV0dG9uVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+PEI+Q2FuY2VsVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj48Qj5DaGVja2JveFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPjxCPkltZ1RhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj48Qj5MaW5rVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwiPjxCPlJld3JpdGVUYWc8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj48Qj5NdWx0aWJveFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+PEI+UmFkaW9UYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPjxCPlJlc2V0VGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+PEI+U2VsZWN0VGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+PEI+U3VibWl0VGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj48Qj5JbWFnZVRhZzwvQj48L0E+PC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+PEI+T3B0aW9uVGFnPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPjxCPkVycm9yc1RhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj48Qj5Gb3JtVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPjxCPkh0bWxUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+PEI+T3B0aW9uc1RhZzwvQj48L0E+PC9VTD4KKzwvVUw+Cis8L1VMPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk1MTdiNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sCkBAIC0wLDAgKzEsNDYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgQ29tcGFyZVRhZ0Jhc2UKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29tcGFyZVRhZ0Jhc2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzICBDb21wYXJlVGFnQmFzZTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZTwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwiPkVxdWFsVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIj5HcmVhdGVyRXF1YWxUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCI+R3JlYXRlclRoYW5UYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiPkxlc3NFcXVhbFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sIj5MZXNzVGhhblRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIj5Ob3RFcXVhbFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgYWJzdHJhY3QgY2xhc3MgPEI+Q29tcGFyZVRhZ0Jhc2U8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9ETD4KKworPFA+CitBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBjb21wYXJpc29uIHRhZ3MuICBDb25jcmV0ZSBzdWJjbGFzc2VzIG5lZWQgb25seQorIGRlZmluZSB2YWx1ZXMgZm9yIGRlc2lyZWQxIGFuZCBkZXNpcmVkMi4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjRE9VQkxFX0NPTVBBUkUiPkRPVUJMRV9DT01QQVJFPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1dlIHdpbGwgZG8gYSBkb3VibGUvZmxvYXQgY29tcGFyaXNvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNMT05HX0NPTVBBUkUiPkxPTkdfQ09NUEFSRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXZSB3aWxsIGRvIGEgbG9uZy9pbnQgY29tcGFyaXNvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjU1RSSU5HX0NPTVBBUkUiPlNUUklOR19DT01QQVJFPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1dlIHdpbGwgZG8gYSBTdHJpbmcgY29tcGFyaXNvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHZhbHVlIHRvIHdoaWNoIHRoZSB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgb3RoZXIgYXR0cmlidXRlcyBvZiB0aGlzCisgdGFnIHdpbGwgYmUgY29tcGFyZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPmNvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNoZWFkZXIiPmhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNDb21wYXJlVGFnQmFzZSgpIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBhYnN0cmFjdCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjY29uZGl0aW9uKGludCwgaW50KSI+Y29uZGl0aW9uPC9BPjwvQj4oaW50Jm5ic3A7ZGVzaXJlZDEsCisgICAgICAgICAgaW50Jm5ic3A7ZGVzaXJlZDIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJET1VCTEVfQ09NUEFSRSI+PCEtLSAtLT48L0E+PEgzPgorRE9VQkxFX0NPTVBBUkU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IDxCPkRPVUJMRV9DT01QQVJFPC9CPjwvUFJFPgorPERMPgorPEREPldlIHdpbGwgZG8gYSBkb3VibGUvZmxvYXQgY29tcGFyaXNvbi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJMT05HX0NPTVBBUkUiPjwhLS0gLS0+PC9BPjxIMz4KK0xPTkdfQ09NUEFSRTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgPEI+TE9OR19DT01QQVJFPC9CPjwvUFJFPgorPERMPgorPEREPldlIHdpbGwgZG8gYSBsb25nL2ludCBjb21wYXJpc29uLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlNUUklOR19DT01QQVJFIj48IS0tIC0tPjwvQT48SDM+CitTVFJJTkdfQ09NUEFSRTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgPEI+U1RSSU5HX0NPTVBBUkU8L0I+PC9QUkU+Cis8REw+Cis8REQ+V2Ugd2lsbCBkbyBhIFN0cmluZyBjb21wYXJpc29uLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgdG8gd2hpY2ggdGhlIHZhcmlhYmxlIHNwZWNpZmllZCBieSBvdGhlciBhdHRyaWJ1dGVzIG9mIHRoaXMKKyB0YWcgd2lsbCBiZSBjb21wYXJlZC48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29tcGFyZVRhZ0Jhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorQ29tcGFyZVRhZ0Jhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Db21wYXJlVGFnQmFzZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0VmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbmRpdGlvbigpIj48IS0tIC0tPjwvQT48SDM+Citjb25kaXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBhYnN0cmFjdCBib29sZWFuIDxCPmNvbmRpdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29uZGl0aW9uKGludCwgaW50KSI+PCEtLSAtLT48L0E+PEgzPgorY29uZGl0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25kaXRpb248L0I+KGludCZuYnNwO2Rlc2lyZWQxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO2Rlc2lyZWQyKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kZXNpcmVkMTwvQ09ERT4gLSBGaXJzdCBkZXNpcmVkIHZhbHVlIGZvciBhIHRydWUgcmVzdWx0ICgtMSwgMCwgKzEpPEREPjxDT0RFPmRlc2lyZWQyPC9DT0RFPiAtIFNlY29uZCBkZXNpcmVkIHZhbHVlIGZvciBhIHRydWUgcmVzdWx0ICgtMSwgMCwgKzEpPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbXBhcmVUYWdCYXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhYWY0M2UKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwKQEAgLTAsMCArMSw3NTEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBDb25kaXRpb25hbFRhZ0Jhc2UKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb25kaXRpb25hbFRhZ0Jhc2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzICBDb25kaXRpb25hbFRhZ0Jhc2U8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPlByZXNlbnRUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGFic3RyYWN0IGNsYXNzIDxCPkNvbmRpdGlvbmFsVGFnQmFzZTwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvREw+CisKKzxQPgorQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgdGhlIHZhcmlvdXMgY29uZGl0aW9uYWwgZXZhbHVhdGlvbiB0YWdzLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPmNvb2tpZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgY29va2llIHRvIGJlIHVzZWQgYXMgYSB2YXJpYWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2hlYWRlciI+aGVhZGVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBIVFRQIHJlcXVlc3QgaGVhZGVyIHRvIGJlIHVzZWQgYXMgYSB2YXJpYWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgSlNQIGJlYW4gdG8gYmUgdXNlZCBhcyBhIHZhcmlhYmxlIChpZgorIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkKSwgb3Igd2hvc2UgcHJvcGVydHkgaXMgdG8gYmUKKyBhY2Nlc3NlZCAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgSFRUUCByZXF1ZXN0IHBhcmFtZXRlciB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGJlYW4gcHJvcGVydHkgdG8gYmUgdXNlZCBhcyBhIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcm9sZSI+cm9sZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgc2VjdXJpdHkgcm9sZSB0byBiZSBjaGVja2VkIGZvci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj5zY29wZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2NvcGUgdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBuYW1lZCBieSB0aGUgbmFtZSBwcm9wZXJ0eSwgb3IKKyAiYW55IHNjb3BlIiBpZiBudWxsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+dXNlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdXNlciBwcmluY2lwYWwgbmFtZSB0byBiZSBjaGVja2VkIGZvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjQ29uZGl0aW9uYWxUYWdCYXNlKCkiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBhYnN0cmFjdCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgcmVtYWluZGVyIG9mIHRoZSBjdXJyZW50IHBhZ2Ugbm9ybWFsbHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGVyZm9ybSB0aGUgdGVzdCByZXF1aXJlZCBmb3IgdGhpcyBwYXJ0aWN1bGFyIHRhZywgYW5kIGVpdGhlciBldmFsdWF0ZQorIG9yIHNraXAgdGhlIGJvZHkgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj5nZXRDb29raWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0VXNlcigpIj5nZXRVc2VyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldENvb2tpZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29va2llPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2Nvb2tpZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtoZWFkZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtZXRlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VzZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb29raWUiPjwhLS0gLS0+PC9BPjxIMz4KK2Nvb2tpZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Y29va2llPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBjb29raWUgdG8gYmUgdXNlZCBhcyBhIHZhcmlhYmxlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImhlYWRlciI+PCEtLSAtLT48L0E+PEgzPgoraGVhZGVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5oZWFkZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIEhUVFAgcmVxdWVzdCBoZWFkZXIgdG8gYmUgdXNlZCBhcyBhIHZhcmlhYmxlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgSlNQIGJlYW4gdG8gYmUgdXNlZCBhcyBhIHZhcmlhYmxlIChpZgorIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkKSwgb3Igd2hvc2UgcHJvcGVydHkgaXMgdG8gYmUKKyBhY2Nlc3NlZCAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZCkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyYW1ldGVyIj48IS0tIC0tPjwvQT48SDM+CitwYXJhbWV0ZXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtZXRlcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgSFRUUCByZXF1ZXN0IHBhcmFtZXRlciB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBwcm9wZXJ0eSB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icm9sZSI+PCEtLSAtLT48L0E+PEgzPgorcm9sZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cm9sZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2VjdXJpdHkgcm9sZSB0byBiZSBjaGVja2VkIGZvci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzY29wZSI+PCEtLSAtLT48L0E+PEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIG5hbWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBvcgorICJhbnkgc2NvcGUiIGlmIG51bGwuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idXNlciI+PCEtLSAtLT48L0E+PEgzPgordXNlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dXNlcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdXNlciBwcmluY2lwYWwgbmFtZSB0byBiZSBjaGVja2VkIGZvci48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29uZGl0aW9uYWxUYWdCYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0NvbmRpdGlvbmFsVGFnQmFzZTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbmRpdGlvbmFsVGFnQmFzZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0Q29va2llKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvb2tpZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Q29va2llPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENvb2tpZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Q29va2llPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29va2llKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SGVhZGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEhlYWRlcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SGVhZGVyPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEhlYWRlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SGVhZGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aGVhZGVyKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtZXRlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJhbWV0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhcmFtZXRlcjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbWV0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtZXRlcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtZXRlcik8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Um9sZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSb2xlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRSb2xlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRSb2xlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRSb2xlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cm9sZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNjb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTY29wZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTY29wZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VXNlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRVc2VyPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRVc2VyPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRVc2VyPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRVc2VyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXNlcik8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UGVyZm9ybSB0aGUgdGVzdCByZXF1aXJlZCBmb3IgdGhpcyBwYXJ0aWN1bGFyIHRhZywgYW5kIGVpdGhlciBldmFsdWF0ZQorIG9yIHNraXAgdGhlIGJvZHkgb2YgdGhpcyB0YWcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSByZW1haW5kZXIgb2YgdGhlIGN1cnJlbnQgcGFnZSBub3JtYWxseS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbmRpdGlvbigpIj48IS0tIC0tPjwvQT48SDM+Citjb25kaXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBhYnN0cmFjdCBib29sZWFuIDxCPmNvbmRpdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy48REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDZjMjAxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwKQEAgLTAsMCArMSwzMDYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBFcXVhbFRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzICBFcXVhbFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkVxdWFsVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+RXF1YWxUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvREw+CisKKzxQPgorRXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGFuZCB2YWx1ZSBhcmUgZXF1YWwuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkVxdWFsVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjRE9VQkxFX0NPTVBBUkUiPkRPVUJMRV9DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjTE9OR19DT01QQVJFIj5MT05HX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNTVFJJTkdfQ09NUEFSRSI+U1RSSU5HX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcm9sZSI+cm9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+dXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwjRXF1YWxUYWcoKSI+RXF1YWxUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjY29uZGl0aW9uKGludCwgaW50KSI+Y29uZGl0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Q29va2llKCkiPmdldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRIZWFkZXIoKSI+Z2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQYXJhbWV0ZXIoKSI+Z2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRVc2VyKCkiPmdldFVzZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkVxdWFsVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0VxdWFsVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RXF1YWxUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbmRpdGlvbigpIj48IS0tIC0tPjwvQT48SDM+Citjb25kaXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmRpdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzhiMDJiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbApAQCAtMCwwICsxLDM4NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEZvcndhcmRUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRm9yd2FyZFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgIEZvcndhcmRUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Gb3J3YXJkVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+Rm9yd2FyZFRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvREw+CisKKzxQPgorUGVyZm9ybSBhIGZvcndhcmQgb3IgcmVkaXJlY3QgdG8gYSBwYWdlIHRoYXQgaXMgbG9va2VkIHVwIGluIHRoZSBnbG9iYWwKKyBBY3Rpb25Gb3J3YXJkcyBjb2xsZWN0aW9uIGFzc29jaWF0ZWQgd2l0aCBvdXIgYXBwbGljYXRpb24uCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkZvcndhcmRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbG9naWNhbCBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBlbnRyeSB0byBiZQorIGxvb2tlZCB1cC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sI0ZvcndhcmRUYWcoKSI+Rm9yd2FyZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TG9vayB1cCB0aGUgQWN0aW9uRm9yd2FyZCBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLAorIGFuZCBwZXJmb3JtIGEgZm9yd2FyZCBvciByZWRpcmVjdCB0byB0aGF0IHBhdGggYXMgaW5kaWNhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWZlciBwcm9jZXNzaW5nIHVudGlsIHRoZSBlbmQgb2YgdGhpcyB0YWcgaXMgZW5jb3VudGVyZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGxvZ2ljYWwgbmFtZSBvZiB0aGUgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gZW50cnkgdG8gYmUKKyBsb29rZWQgdXAuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkZvcndhcmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorRm9yd2FyZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkZvcndhcmRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkRlZmVyIHByb2Nlc3NpbmcgdW50aWwgdGhlIGVuZCBvZiB0aGlzIHRhZyBpcyBlbmNvdW50ZXJlZC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+TG9vayB1cCB0aGUgQWN0aW9uRm9yd2FyZCBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLAorIGFuZCBwZXJmb3JtIGEgZm9yd2FyZCBvciByZWRpcmVjdCB0byB0aGF0IHBhdGggYXMgaW5kaWNhdGVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGb3J3YXJkVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkYjE2ODMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwKQEAgLTAsMCArMSwzMDYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBHcmVhdGVyRXF1YWxUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkdyZWF0ZXJFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgR3JlYXRlckVxdWFsVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuR3JlYXRlckVxdWFsVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+R3JlYXRlckVxdWFsVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0RMPgorCis8UD4KK0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuR3JlYXRlckVxdWFsVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjRE9VQkxFX0NPTVBBUkUiPkRPVUJMRV9DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjTE9OR19DT01QQVJFIj5MT05HX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNTVFJJTkdfQ09NUEFSRSI+U1RSSU5HX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcm9sZSI+cm9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+dXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sI0dyZWF0ZXJFcXVhbFRhZygpIj5HcmVhdGVyRXF1YWxUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2NvbmRpdGlvbihpbnQsIGludCkiPmNvbmRpdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj5nZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0VXNlcigpIj5nZXRVc2VyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldENvb2tpZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFVzZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJHcmVhdGVyRXF1YWxUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorR3JlYXRlckVxdWFsVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+R3JlYXRlckVxdWFsVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb25kaXRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorY29uZGl0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25kaXRpb248L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKyBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGNvbmNyZXRlIHN1YmNsYXNzZXMuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkdyZWF0ZXJFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDdlNDg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwKQEAgLTAsMCArMSwzMDYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBHcmVhdGVyVGhhblRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkdyZWF0ZXJUaGFuVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzICBHcmVhdGVyVGhhblRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkdyZWF0ZXJUaGFuVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+R3JlYXRlclRoYW5UYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvREw+CisKKzxQPgorRXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGlzIGdyZWF0ZXIgdGhhbiB0aGUgc3BlY2lmaWVkIHZhbHVlLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5HcmVhdGVyVGhhblRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0RPVUJMRV9DT01QQVJFIj5ET1VCTEVfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0xPTkdfQ09NUEFSRSI+TE9OR19DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjU1RSSU5HX0NPTVBBUkUiPlNUUklOR19DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2Nvb2tpZSI+Y29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2hlYWRlciI+aGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcGFyYW1ldGVyIj5wYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3VzZXIiPnVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQUdBSU48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sI0dyZWF0ZXJUaGFuVGFnKCkiPkdyZWF0ZXJUaGFuVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2NvbmRpdGlvbihpbnQsIGludCkiPmNvbmRpdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj5nZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0VXNlcigpIj5nZXRVc2VyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldENvb2tpZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFVzZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJHcmVhdGVyVGhhblRhZygpIj48IS0tIC0tPjwvQT48SDM+CitHcmVhdGVyVGhhblRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkdyZWF0ZXJUaGFuVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb25kaXRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorY29uZGl0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25kaXRpb248L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKyBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGNvbmNyZXRlIHN1YmNsYXNzZXMuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJHcmVhdGVyVGhhblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDYyZjYxOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwKQEAgLTAsMCArMSw5NDUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBJdGVyYXRlVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJdGVyYXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgSXRlcmF0ZVRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkl0ZXJhdGVUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+SXRlcmF0ZVRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK0N1c3RvbSB0YWcgdGhhdCBpdGVyYXRlcyB0aGUgZWxlbWVudHMgb2YgYSBjb2xsZWN0aW9uLCB3aGljaCBjYW4gYmUKKyBlaXRoZXIgYW4gYXR0cmlidXRlIG9yIHRoZSBwcm9wZXJ0eSBvZiBhbiBhdHRyaWJ1dGUuICBUaGUgY29sbGVjdGlvbgorIGNhbiBiZSBhbnkgb2YgdGhlIGZvbGxvd2luZzogIGFuIGFycmF5IG9mIG9iamVjdHMsIGFuIEVudW1lcmF0aW9uLAorIGFuIEl0ZXJhdG9yLCBhIENvbGxlY3Rpb24gKHdoaWNoIGluY2x1ZGVzIExpc3RzLCBTZXRzIGFuZCBWZWN0b3JzKSwKKyBvciBhIE1hcCAod2hpY2ggaW5jbHVkZXMgSGFzaHRhYmxlcykgd2hvc2UgZWxlbWVudHMgd2lsbCBiZSBpdGVyYXRlZCBvdmVyLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5JdGVyYXRlVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2NvbGxlY3Rpb24iPmNvbGxlY3Rpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbGxlY3Rpb24gb3ZlciB3aGljaCB3ZSB3aWxsIGJlIGl0ZXJhdGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNpZCI+aWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0byBiZSBleHBvc2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2luZGV4SWQiPmluZGV4SWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0byBiZSBleHBvc2VkIGFzIHRoZSBjdXJyZW50IGluZGV4LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkl0ZXJhdG9yPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjaXRlcmF0b3IiPml0ZXJhdG9yPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0l0ZXJhdG9yIG9mIHRoZSBlbGVtZW50cyBvZiB0aGlzIGNvbGxlY3Rpb24sIHdoaWxlIHdlIGFyZSBhY3R1YWxseQorIHJ1bm5pbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjbGVuZ3RoIj5sZW5ndGg8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGxlbmd0aCB2YWx1ZSBvciBhdHRyaWJ1dGUgbmFtZSAoPD0wIG1lYW5zIG5vIGxpbWl0KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2xlbmd0aENvdW50Ij5sZW5ndGhDb3VudDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbnVtYmVyIG9mIGVsZW1lbnRzIHdlIGhhdmUgYWxyZWFkeSByZW5kZXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2xlbmd0aFZhbHVlIj5sZW5ndGhWYWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYWN0dWFsIGxlbmd0aCB2YWx1ZSAoY2FsY3VsYXRlZCBpbiB0aGUgc3RhcnQgdGFnKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBjb2xsZWN0aW9uIG9yIG93bmluZyBiZWFuLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI29mZnNldCI+b2Zmc2V0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzdGFydGluZyBvZmZzZXQgKHplcm8gcmVsYXRpdmUpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjb2Zmc2V0VmFsdWUiPm9mZnNldFZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhY3R1YWwgb2Zmc2V0IHZhbHVlIChjYWxjdWxhdGVkIGluIHRoZSBzdGFydCB0YWcpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcHJvcGVydHkgbmFtZSBjb250YWluaW5nIHRoZSBjb2xsZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3Njb3BlIj5zY29wZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2NvcGUgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc3RhcnRlZCI+c3RhcnRlZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtIYXMgdGhpcyB0YWcgaW5zdGFuY2UgYmVlbiBzdGFydGVkPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3R5cGUiPnR5cGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEphdmEgY2xhc3Mgb2YgZWFjaCBleHBvc2VkIGVsZW1lbnQgb2YgdGhlIGNvbGxlY3Rpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5wYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9CVUZGRVJFRCwgRVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNJdGVyYXRlVGFnKCkiPkl0ZXJhdGVUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01ha2UgdGhlIG5leHQgY29sbGVjdGlvbiBlbGVtZW50IGF2YWlsYWJsZSBhbmQgbG9vcCwgb3IKKyBmaW5pc2ggdGhlIGl0ZXJhdGlvbnMgaWYgdGhlcmUgYXJlIG5vIG1vcmUgZWxlbWVudHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xlYW4gdXAgYWZ0ZXIgcHJvY2Vzc2luZyB0aGlzIGVudW1lcmF0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYW4gaXRlcmF0b3IgZm9yIHRoZSBzcGVjaWZpZWQgY29sbGVjdGlvbiwgYW5kIGJlZ2luCisgbG9vcGluZyB0aHJvdWdoIHRoZSBib2R5IG9uY2UgcGVyIGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNnZXRDb2xsZWN0aW9uKCkiPmdldENvbGxlY3Rpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldElkKCkiPmdldElkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldEluZGV4KCkiPmdldEluZGV4PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSB6ZXJvLXJlbGF0aXZlIGluZGV4IG9mIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiB0aHJvdWdoIHRoZQorIGxvb3AuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNnZXRJbmRleElkKCkiPmdldEluZGV4SWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldExlbmd0aCgpIj5nZXRMZW5ndGg8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0T2Zmc2V0KCkiPmdldE9mZnNldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNnZXRUeXBlKCkiPmdldFR5cGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzZXRDb2xsZWN0aW9uKGphdmEubGFuZy5PYmplY3QpIj5zZXRDb2xsZWN0aW9uPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2NvbGxlY3Rpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0SW5kZXhJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW5kZXhJZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpbmRleElkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzZXRMZW5ndGgoamF2YS5sYW5nLlN0cmluZykiPnNldExlbmd0aDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsZW5ndGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0T2Zmc2V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPZmZzZXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b2Zmc2V0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VHlwZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJpdGVyYXRvciI+PCEtLSAtLT48L0E+PEgzPgoraXRlcmF0b3I8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuSXRlcmF0b3IgPEI+aXRlcmF0b3I8L0I+PC9QUkU+Cis8REw+Cis8REQ+SXRlcmF0b3Igb2YgdGhlIGVsZW1lbnRzIG9mIHRoaXMgY29sbGVjdGlvbiwgd2hpbGUgd2UgYXJlIGFjdHVhbGx5CisgcnVubmluZy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJsZW5ndGhDb3VudCI+PCEtLSAtLT48L0E+PEgzPgorbGVuZ3RoQ291bnQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+bGVuZ3RoQ291bnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG51bWJlciBvZiBlbGVtZW50cyB3ZSBoYXZlIGFscmVhZHkgcmVuZGVyZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGVuZ3RoVmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK2xlbmd0aFZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPmxlbmd0aFZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhY3R1YWwgbGVuZ3RoIHZhbHVlIChjYWxjdWxhdGVkIGluIHRoZSBzdGFydCB0YWcpLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib2Zmc2V0VmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK29mZnNldFZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPm9mZnNldFZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhY3R1YWwgb2Zmc2V0IHZhbHVlIChjYWxjdWxhdGVkIGluIHRoZSBzdGFydCB0YWcpLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InN0YXJ0ZWQiPjwhLS0gLS0+PC9BPjxIMz4KK3N0YXJ0ZWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnN0YXJ0ZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SGFzIHRoaXMgdGFnIGluc3RhbmNlIGJlZW4gc3RhcnRlZD88L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb2xsZWN0aW9uIj48IS0tIC0tPjwvQT48SDM+Citjb2xsZWN0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLk9iamVjdCA8Qj5jb2xsZWN0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb2xsZWN0aW9uIG92ZXIgd2hpY2ggd2Ugd2lsbCBiZSBpdGVyYXRpbmcuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRvIGJlIGV4cG9zZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5kZXhJZCI+PCEtLSAtLT48L0E+PEgzPgoraW5kZXhJZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aW5kZXhJZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRvIGJlIGV4cG9zZWQgYXMgdGhlIGN1cnJlbnQgaW5kZXguPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGVuZ3RoIj48IS0tIC0tPjwvQT48SDM+CitsZW5ndGg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmxlbmd0aDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbGVuZ3RoIHZhbHVlIG9yIGF0dHJpYnV0ZSBuYW1lICg8PTAgbWVhbnMgbm8gbGltaXQpLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGNvbGxlY3Rpb24gb3Igb3duaW5nIGJlYW4uPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib2Zmc2V0Ij48IS0tIC0tPjwvQT48SDM+CitvZmZzZXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm9mZnNldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3RhcnRpbmcgb2Zmc2V0ICh6ZXJvIHJlbGF0aXZlKS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGNvbnRhaW5pbmcgdGhlIGNvbGxlY3Rpb24uPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2NvcGUiPjwhLS0gLS0+PC9BPjxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBpZiBhbnkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idHlwZSI+PCEtLSAtLT48L0E+PEgzPgordHlwZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSmF2YSBjbGFzcyBvZiBlYWNoIGV4cG9zZWQgZWxlbWVudCBvZiB0aGUgY29sbGVjdGlvbi48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iSXRlcmF0ZVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitJdGVyYXRlVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+SXRlcmF0ZVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0Q29sbGVjdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDb2xsZWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5nZXRDb2xsZWN0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb2xsZWN0aW9uKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb2xsZWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDb2xsZWN0aW9uPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7Y29sbGVjdGlvbik8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldElkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRJZDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldElkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnNldElkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEluZGV4KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEluZGV4PC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldEluZGV4PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PHA+UmV0dXJuIHRoZSB6ZXJvLXJlbGF0aXZlIGluZGV4IG9mIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiB0aHJvdWdoIHRoZQorIGxvb3AuICBJZiB5b3Ugc3BlY2lmeSBhbiA8Y29kZT5vZmZzZXQ8L2NvZGU+LCB0aGUgZmlyc3QgaXRlcmF0aW9uCisgdGhyb3VnaCB0aGUgbG9vcCB3aWxsIGhhdmUgdGhhdCB2YWx1ZTsgb3RoZXJ3aXNlLCB0aGUgZmlyc3QgaXRlcmF0aW9uCisgd2lsbCByZXR1cm4gemVyby48L3A+CisKKyA8cD5UaGlzIHByb3BlcnR5IGlzIHJlYWQtb25seSwgYW5kIGdpdmVzIG5lc3RlZCBjdXN0b20gdGFncyBhY2Nlc3MgdG8KKyB0aGlzIGluZm9ybWF0aW9uLiAgVGhlcmVmb3JlLCBpdCBpcyA8c3Ryb25nPm9ubHk8L3N0cm9uZz4gdmFsaWQgaW4KKyBiZXR3ZWVuIGNhbGxzIHRvIDxjb2RlPmRvU3RhcnRUYWcoKTwvY29kZT4gYW5kIDxjb2RlPmRvRW5kVGFnKCk8L2NvZGU+LgorIDwvcD48L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJbmRleElkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEluZGV4SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEluZGV4SWQ8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEluZGV4SWQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEluZGV4SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEluZGV4SWQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpbmRleElkKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TGVuZ3RoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExlbmd0aDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TGVuZ3RoPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMZW5ndGgoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExlbmd0aDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TGVuZ3RoPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bGVuZ3RoKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9mZnNldCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRPZmZzZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE9mZnNldDwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0T2Zmc2V0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRPZmZzZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE9mZnNldDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29mZnNldCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2NvcGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFNjb3BlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNjb3BlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUeXBlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFR5cGU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFR5cGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYW4gaXRlcmF0b3IgZm9yIHRoZSBzcGVjaWZpZWQgY29sbGVjdGlvbiwgYW5kIGJlZ2luCisgbG9vcGluZyB0aHJvdWdoIHRoZSBib2R5IG9uY2UgcGVyIGVsZW1lbnQuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0FmdGVyQm9keSgpIj48IS0tIC0tPjwvQT48SDM+Citkb0FmdGVyQm9keTwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0FmdGVyQm9keTwvQj4oKQorICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5NYWtlIHRoZSBuZXh0IGNvbGxlY3Rpb24gZWxlbWVudCBhdmFpbGFibGUgYW5kIGxvb3AsIG9yCisgZmluaXNoIHRoZSBpdGVyYXRpb25zIGlmIHRoZXJlIGFyZSBubyBtb3JlIGVsZW1lbnRzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9BZnRlckJvZHk8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNsZWFuIHVwIGFmdGVyIHByb2Nlc3NpbmcgdGhpcyBlbnVtZXJhdGlvbi48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSXRlcmF0ZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5ZDQ1MjAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sCkBAIC0wLDAgKzEsMjM2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgSXRlcmF0ZVRlaQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzRXF1YWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikl0ZXJhdGVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzICBJdGVyYXRlVGVpPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbworICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5JdGVyYXRlVGVpPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkl0ZXJhdGVUZWk8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvREw+CisKKzxQPgorSW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPml0ZXJhdGU8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT50YWdJbmZvPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCNJdGVyYXRlVGVpKCkiPkl0ZXJhdGVUZWk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCNnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj5nZXRWYXJpYWJsZUluZm88L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSZuYnNwO2RhdGEpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRUYWdJbmZvLCBpc1ZhbGlkLCBzZXRUYWdJbmZvPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ikl0ZXJhdGVUZWkoKSI+PCEtLSAtLT48L0E+PEgzPgorSXRlcmF0ZVRlaTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkl0ZXJhdGVUZWk8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhcmlhYmxlSW5mbzwvSDM+Cis8UFJFPgorcHVibGljIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5WYXJpYWJsZUluZm9bXSA8Qj5nZXRWYXJpYWJsZUluZm88L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldFZhcmlhYmxlSW5mbzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJdGVyYXRlVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlNmQxNWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwKQEAgLTAsMCArMSwzMDYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBMZXNzRXF1YWxUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikxlc3NFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgTGVzc0VxdWFsVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTGVzc0VxdWFsVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TGVzc0VxdWFsVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0RMPgorCis8UD4KK0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTGVzc0VxdWFsVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjRE9VQkxFX0NPTVBBUkUiPkRPVUJMRV9DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjTE9OR19DT01QQVJFIj5MT05HX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNTVFJJTkdfQ09NUEFSRSI+U1RSSU5HX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcm9sZSI+cm9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+dXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sI0xlc3NFcXVhbFRhZygpIj5MZXNzRXF1YWxUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2NvbmRpdGlvbihpbnQsIGludCkiPmNvbmRpdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj5nZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0VXNlcigpIj5nZXRVc2VyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldENvb2tpZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFVzZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJMZXNzRXF1YWxUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTGVzc0VxdWFsVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TGVzc0VxdWFsVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb25kaXRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorY29uZGl0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25kaXRpb248L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKyBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGNvbmNyZXRlIHN1YmNsYXNzZXMuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikxlc3NFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjA0YmE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwKQEAgLTAsMCArMSwzMDYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBMZXNzVGhhblRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJMZXNzVGhhblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgTGVzc1RoYW5UYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5MZXNzVGhhblRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkxlc3NUaGFuVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0RMPgorCis8UD4KK0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBsZXNzIHRoYW4gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTGVzc1RoYW5UYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNET1VCTEVfQ09NUEFSRSI+RE9VQkxFX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNMT05HX0NPTVBBUkUiPkxPTkdfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI1NUUklOR19DT01QQVJFIj5TVFJJTkdfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPmNvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNoZWFkZXIiPmhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbCNMZXNzVGhhblRhZygpIj5MZXNzVGhhblRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oaW50LCBpbnQpIj5jb25kaXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTGVzc1RoYW5UYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTGVzc1RoYW5UYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5MZXNzVGhhblRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY29uZGl0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmRpdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+Y29uZGl0aW9uPC9CPigpCisgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCisgVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBjb25jcmV0ZSBzdWJjbGFzc2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzRXF1YWxUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikxlc3NUaGFuVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4MGY1ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbApAQCAtMCwwICsxLDQ0NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIE1hdGNoVGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzICBNYXRjaFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NYXRjaFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPk5vdE1hdGNoVGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5NYXRjaFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0RMPgorCis8UD4KK0V2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIGEgc3Vic3RyaW5nIG9mIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1hdGNoVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNsb2NhdGlvbiI+bG9jYXRpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGxvY2F0aW9uIHdoZXJlIHRoZSBtYXRjaCBtdXN0IGV4aXN0ICg8Y29kZT5zdGFydDwvY29kZT4gb3IKKyA8Y29kZT5lbmQ8L2NvZGU+KSwgb3IgPGNvZGU+bnVsbDwvY29kZT4gZm9yIGFueXdoZXJlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHZhbHVlIHRvIHdoaWNoIHRoZSB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgb3RoZXIgYXR0cmlidXRlcyBvZiB0aGlzCisgdGFnIHdpbGwgYmUgbWF0Y2hlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2Nvb2tpZSI+Y29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2hlYWRlciI+aGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNNYXRjaFRhZygpIj5NYXRjaFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjY29uZGl0aW9uKGJvb2xlYW4pIj5jb25kaXRpb248L0E+PC9CPihib29sZWFuJm5ic3A7ZGVzaXJlZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2dldExvY2F0aW9uKCkiPmdldExvY2F0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI3NldExvY2F0aW9uKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Q29va2llKCkiPmdldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRIZWFkZXIoKSI+Z2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQYXJhbWV0ZXIoKSI+Z2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRVc2VyKCkiPmdldFVzZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibG9jYXRpb24iPjwhLS0gLS0+PC9BPjxIMz4KK2xvY2F0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5sb2NhdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbG9jYXRpb24gd2hlcmUgdGhlIG1hdGNoIG11c3QgZXhpc3QgKDxjb2RlPnN0YXJ0PC9jb2RlPiBvcgorIDxjb2RlPmVuZDwvY29kZT4pLCBvciA8Y29kZT5udWxsPC9jb2RlPiBmb3IgYW55d2hlcmUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgdG8gd2hpY2ggdGhlIHZhcmlhYmxlIHNwZWNpZmllZCBieSBvdGhlciBhdHRyaWJ1dGVzIG9mIHRoaXMKKyB0YWcgd2lsbCBiZSBtYXRjaGVkLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNYXRjaFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitNYXRjaFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk1hdGNoVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRMb2NhdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMb2NhdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TG9jYXRpb248L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldExvY2F0aW9uKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRMb2NhdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TG9jYXRpb248L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhdGlvbik8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWx1ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb25kaXRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorY29uZGl0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25kaXRpb248L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKyBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGNvbmNyZXRlIHN1YmNsYXNzZXMuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbmRpdGlvbihib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorY29uZGl0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25kaXRpb248L0I+KGJvb2xlYW4mbmJzcDtkZXNpcmVkKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kZXNpcmVkPC9DT0RFPiAtIERlc2lyZWQgdmFsdWUgZm9yIGEgdHJ1ZSByZXN1bHQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVxdWFsVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNYXRjaFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVxdWFsVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNlZTg2OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sCkBAIC0wLDAgKzEsMzA2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgTm90RXF1YWxUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOb3RFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgTm90RXF1YWxUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RFcXVhbFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5vdEVxdWFsVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0RMPgorCis8UD4KK0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBhbmQgdmFsdWUgYXJlIG5vdCBlcXVhbC4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90RXF1YWxUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNET1VCTEVfQ09NUEFSRSI+RE9VQkxFX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNMT05HX0NPTVBBUkUiPkxPTkdfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI1NUUklOR19DT01QQVJFIj5TVFJJTkdfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPmNvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNoZWFkZXIiPmhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCNOb3RFcXVhbFRhZygpIj5Ob3RFcXVhbFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oaW50LCBpbnQpIj5jb25kaXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTm90RXF1YWxUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTm90RXF1YWxUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Ob3RFcXVhbFRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY29uZGl0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmRpdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+Y29uZGl0aW9uPC9CPigpCisgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCisgVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBjb25jcmV0ZSBzdWJjbGFzc2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTm90RXF1YWxUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRkZDdhNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sCkBAIC0wLDAgKzEsMzA2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgTm90TWF0Y2hUYWcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVxdWFsVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5vdE1hdGNoVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NYXRjaFRhZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzICBOb3RNYXRjaFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWF0Y2hUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdE1hdGNoVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+Tm90TWF0Y2hUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPk1hdGNoVGFnPC9BPjwvREw+CisKKzxQPgorRXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgbm90IGEgc3Vic3RyaW5nIG9mIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdE1hdGNoVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1hdGNoVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjbG9jYXRpb24iPmxvY2F0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2Nvb2tpZSI+Y29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2hlYWRlciI+aGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCNOb3RNYXRjaFRhZygpIj5Ob3RNYXRjaFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NYXRjaFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNjb25kaXRpb24oYm9vbGVhbikiPmNvbmRpdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2dldExvY2F0aW9uKCkiPmdldExvY2F0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNzZXRMb2NhdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG9jYXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Q29va2llKCkiPmdldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRIZWFkZXIoKSI+Z2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQYXJhbWV0ZXIoKSI+Z2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRVc2VyKCkiPmdldFVzZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5vdE1hdGNoVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05vdE1hdGNoVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Tm90TWF0Y2hUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbmRpdGlvbigpIj48IS0tIC0tPjwvQT48SDM+Citjb25kaXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmRpdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTm90TWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1hdGNoVGFnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5YTcwYjUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sCkBAIC0wLDAgKzEsMjk3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgTm90UHJlc2VudFRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTm90UHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgIE5vdFByZXNlbnRUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUHJlc2VudFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90UHJlc2VudFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5vdFByZXNlbnRUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+UHJlc2VudFRhZzwvQT48L0RMPgorCis8UD4KK0V2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIG5vdCBwcmVzZW50IGZvciB0aGlzIHJlcXVlc3QuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdFByZXNlbnRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcGFyYW1ldGVyIj5wYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3VzZXIiPnVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dCwgcGFyZW50LCB2YWx1ZXM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfQUdBSU48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwjTm90UHJlc2VudFRhZygpIj5Ob3RQcmVzZW50VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUHJlc2VudFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPlByZXNlbnRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCNjb25kaXRpb24oYm9vbGVhbikiPmNvbmRpdGlvbjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5vdFByZXNlbnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTm90UHJlc2VudFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk5vdFByZXNlbnRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbmRpdGlvbigpIj48IS0tIC0tPjwvQT48SDM+Citjb25kaXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmRpdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPlByZXNlbnRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTm90UHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2MTQ0NWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sCkBAIC0wLDAgKzEsMzE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgUHJlc2VudFRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgIFByZXNlbnRUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUHJlc2VudFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbCI+Tm90UHJlc2VudFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UHJlc2VudFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0RMPgorCis8UD4KK0V2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIHByZXNlbnQgZm9yIHRoaXMgcmVxdWVzdC4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUHJlc2VudFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPmNvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNoZWFkZXIiPmhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcm9sZSI+cm9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+dXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9BR0FJTjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCNQcmVzZW50VGFnKCkiPlByZXNlbnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCNjb25kaXRpb24oYm9vbGVhbikiPmNvbmRpdGlvbjwvQT48L0I+KGJvb2xlYW4mbmJzcDtkZXNpcmVkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlByZXNlbnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorUHJlc2VudFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlByZXNlbnRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbmRpdGlvbigpIj48IS0tIC0tPjwvQT48SDM+Citjb25kaXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmRpdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29uZGl0aW9uKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+Citjb25kaXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmRpdGlvbjwvQj4oYm9vbGVhbiZuYnNwO2Rlc2lyZWQpCisgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCisgVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBjb25jcmV0ZSBzdWJjbGFzc2VzLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRlc2lyZWQ8L0NPREU+IC0gRGVzaXJlZCBvdXRjb21lIGZvciBhIHRydWUgcmVzdWx0PERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGY4MjEzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwKQEAgLTAsMCArMSw5MDkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNiBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBSZWRpcmVjdFRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVkaXJlY3RUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzICBSZWRpcmVjdFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlJlZGlyZWN0VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0Lkl0ZXJhdGlvblRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UmVkaXJlY3RUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK0dlbmVyYXRlIGEgVVJMLWVuY29kZWQgcmVkaXJlY3QgdG8gdGhlIHNwZWNpZmllZCBVUkkuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlJlZGlyZWN0VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNhbmNob3IiPmFuY2hvcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYW5jaG9yIHRvIGJlIGFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2ZvcndhcmQiPmZvcndhcmQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGxvZ2ljYWwgZm9yd2FyZCBuYW1lIGZyb20gd2hpY2ggdG8gcmV0cmlldmUgdGhlIHJlZGlyZWN0IFVSSS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjaHJlZiI+aHJlZjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVkaXJlY3QgVVJJLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSlNQIGJlYW4gbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjcGFnZSI+cGFnZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udGV4dC1yZWxhdGl2ZSBwYWdlIFVSTCAoYmVnaW5uaW5nIHdpdGggYSBzbGFzaCkgdG8gd2hpY2gKKyB0aGlzIHJlZGlyZWN0IHdpbGwgYmUgcmVuZGVyZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3BhcmFtSWQiPnBhcmFtSWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNpbmdsZS1wYXJhbWV0ZXIgcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZSB0byBnZW5lcmF0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjcGFyYW1OYW1lIj5wYXJhbU5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjcGFyYW1Qcm9wZXJ0eSI+cGFyYW1Qcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjcGFyYW1TY29wZSI+cGFyYW1TY29wZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBzY29wZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBKU1AgYmVhbiBwcm9wZXJ0eSBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNzY29wZSI+c2NvcGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNjb3BlIG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZSBwcm9wZXJ0eSwgaWYgYW55LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCN0cmFuc2FjdGlvbiI+dHJhbnNhY3Rpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5jbHVkZSBvdXIgdHJhbnNhY3Rpb24gY29udHJvbCB0b2tlbj88L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNSZWRpcmVjdFRhZygpIj5SZWRpcmVjdFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlciB0aGUgcmVkaXJlY3QgYW5kIHNraXAgdGhlIHJlbWFpbmRlciBvZiB0aGlzIHBhZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWZlciBnZW5lcmF0aW9uIHVudGlsIHRoZSBlbmQgb2YgdGhpcyB0YWcgaXMgZW5jb3VudGVyZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjZ2V0QW5jaG9yKCkiPmdldEFuY2hvcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldEZvcndhcmQoKSI+Z2V0Rm9yd2FyZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldEhyZWYoKSI+Z2V0SHJlZjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldFBhZ2UoKSI+Z2V0UGFnZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldFBhcmFtSWQoKSI+Z2V0UGFyYW1JZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldFBhcmFtTmFtZSgpIj5nZXRQYXJhbU5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXRQYXJhbVByb3BlcnR5KCkiPmdldFBhcmFtUHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXRQYXJhbVNjb3BlKCkiPmdldFBhcmFtU2NvcGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjZ2V0VHJhbnNhY3Rpb24oKSI+Z2V0VHJhbnNhY3Rpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0QW5jaG9yKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbmNob3I8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YW5jaG9yKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0Rm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9yd2FyZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3J3YXJkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0SHJlZihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SHJlZjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtocmVmKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0UGFnZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFnZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0UGFyYW1JZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1JZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbUlkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0UGFyYW1OYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbU5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1OYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0UGFyYW1Qcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1Qcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbVByb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0UGFyYW1TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1TY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbVNjb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0VHJhbnNhY3Rpb24oYm9vbGVhbikiPnNldFRyYW5zYWN0aW9uPC9BPjwvQj4oYm9vbGVhbiZuYnNwO3RyYW5zYWN0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYW5jaG9yIj48IS0tIC0tPjwvQT48SDM+CithbmNob3I8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFuY2hvcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYW5jaG9yIHRvIGJlIGFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZm9yd2FyZCI+PCEtLSAtLT48L0E+PEgzPgorZm9yd2FyZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Zm9yd2FyZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbG9naWNhbCBmb3J3YXJkIG5hbWUgZnJvbSB3aGljaCB0byByZXRyaWV2ZSB0aGUgcmVkaXJlY3QgVVJJLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImhyZWYiPjwhLS0gLS0+PC9BPjxIMz4KK2hyZWY8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmhyZWY8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlZGlyZWN0IFVSSS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEpTUCBiZWFuIG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFnZSI+PCEtLSAtLT48L0E+PEgzPgorcGFnZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGFnZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29udGV4dC1yZWxhdGl2ZSBwYWdlIFVSTCAoYmVnaW5uaW5nIHdpdGggYSBzbGFzaCkgdG8gd2hpY2gKKyB0aGlzIHJlZGlyZWN0IHdpbGwgYmUgcmVuZGVyZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyYW1JZCI+PCEtLSAtLT48L0E+PEgzPgorcGFyYW1JZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1JZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciByZXF1ZXN0IHBhcmFtZXRlciBuYW1lIHRvIGdlbmVyYXRlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcmFtTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorcGFyYW1OYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gbmFtZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJhbVByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitwYXJhbVByb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbVByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHByb3BlcnR5LjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcmFtU2NvcGUiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcmFtU2NvcGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtU2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gc2NvcGUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSlNQIGJlYW4gcHJvcGVydHkgbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzY29wZSI+PCEtLSAtLT48L0E+PEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIG5hbWUgcHJvcGVydHksIGlmIGFueS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0cmFuc2FjdGlvbiI+PCEtLSAtLT48L0E+PEgzPgordHJhbnNhY3Rpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnRyYW5zYWN0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPkluY2x1ZGUgb3VyIHRyYW5zYWN0aW9uIGNvbnRyb2wgdG9rZW4/PC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlJlZGlyZWN0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1JlZGlyZWN0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UmVkaXJlY3RUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEFuY2hvcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBbmNob3I8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFuY2hvcjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QW5jaG9yKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRBbmNob3I8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEFuY2hvcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FuY2hvcik8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZvcndhcmQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Rm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Rm9yd2FyZDwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Rm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Rm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Rm9yd2FyZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZvcndhcmQpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRIcmVmKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEhyZWY8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEhyZWY8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEhyZWYoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEhyZWY8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEhyZWY8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtocmVmKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhZ2UoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFnZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFnZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFnZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGFnZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGFnZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2UpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXJhbUlkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhcmFtSWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhcmFtSWQ8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhcmFtSWQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhcmFtSWQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtSWQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbUlkKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFyYW1OYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhcmFtTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFyYW1OYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYXJhbU5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhcmFtTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGFyYW1OYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1OYW1lKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFyYW1Qcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJhbVByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYXJhbVByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYXJhbVByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbVByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYXJhbVByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1Qcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtU2NvcGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFyYW1TY29wZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFyYW1TY29wZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFyYW1TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGFyYW1TY29wZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGFyYW1TY29wZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtU2NvcGUpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNjb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTY29wZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTY29wZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VHJhbnNhY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VHJhbnNhY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldFRyYW5zYWN0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRUcmFuc2FjdGlvbihib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VHJhbnNhY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFRyYW5zYWN0aW9uPC9CPihib29sZWFuJm5ic3A7dHJhbnNhY3Rpb24pPC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkRlZmVyIGdlbmVyYXRpb24gdW50aWwgdGhlIGVuZCBvZiB0aGlzIHRhZyBpcyBlbmNvdW50ZXJlZC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVyIHRoZSByZWRpcmVjdCBhbmQgc2tpcCB0aGUgcmVtYWluZGVyIG9mIHRoaXMgcGFnZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVkaXJlY3RUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2UtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWViMmY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2UtZnJhbWUuaHRtbApAQCAtMCwwICsxLDU2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvQT48L0ZPTlQ+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitDbGFzc2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iQ29tcGFyZVRhZ0Jhc2UuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db21wYXJlVGFnQmFzZTwvQT4KKzxCUj4KKzxBIEhSRUY9IkNvbmRpdGlvbmFsVGFnQmFzZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxCUj4KKzxBIEhSRUY9IkVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RXF1YWxUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJGb3J3YXJkVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Rm9yd2FyZFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkdyZWF0ZXJFcXVhbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkdyZWF0ZXJFcXVhbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkdyZWF0ZXJUaGFuVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+R3JlYXRlclRoYW5UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJJdGVyYXRlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SXRlcmF0ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ikl0ZXJhdGVUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JdGVyYXRlVGVpPC9BPgorPEJSPgorPEEgSFJFRj0iTGVzc0VxdWFsVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TGVzc0VxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTGVzc1RoYW5UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5MZXNzVGhhblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik1hdGNoVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TWF0Y2hUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJOb3RFcXVhbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5vdEVxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTm90TWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Ob3RNYXRjaFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5vdFByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Ob3RQcmVzZW50VGFnPC9BPgorPEJSPgorPEEgSFJFRj0iUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlByZXNlbnRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJSZWRpcmVjdFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlZGlyZWN0VGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzZmY4MGUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKQEAgLTAsMCArMSw1OTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljCis8L0gyPgorCisgICAgVGhlICJzdHJ1dHMtbG9naWMiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluIG1hbmFnaW5nIGNvbmRpdGlvbmFsCisgICAgZ2VuZXJhdGlvbiBvZiBvdXRwdXQgdGV4dCwgbG9vcGluZyBvdmVyIG9iamVjdCBjb2xsZWN0aW9ucyBmb3IgcmVwZXRpdGl2ZSBnZW5lcmF0aW9uCisgICAgb2Ygb3V0cHV0IHRleHQsIGFuZCBhcHBsaWNhdGlvbiBmbG93IG1hbmFnZW1lbnQKKyAgCis8UD4KKzxCPlNlZTogPC9CPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEEgSFJFRj0iI3BhY2thZ2VfZGVzY3JpcHRpb24iPjxCPkRlc2NyaXB0aW9uPC9CPjwvQT4KKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQj48L1REPgorPFREPkFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGNvbXBhcmlzb24gdGFncy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8VEQ+QWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgdGhlIHZhcmlvdXMgY29uZGl0aW9uYWwgZXZhbHVhdGlvbiB0YWdzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRXF1YWxUYWcuaHRtbCI+RXF1YWxUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGFuZCB2YWx1ZSBhcmUgZXF1YWwuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJGb3J3YXJkVGFnLmh0bWwiPkZvcndhcmRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+UGVyZm9ybSBhIGZvcndhcmQgb3IgcmVkaXJlY3QgdG8gYSBwYWdlIHRoYXQgaXMgbG9va2VkIHVwIGluIHRoZSBnbG9iYWwKKyBBY3Rpb25Gb3J3YXJkcyBjb2xsZWN0aW9uIGFzc29jaWF0ZWQgd2l0aCBvdXIgYXBwbGljYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJHcmVhdGVyRXF1YWxUYWcuaHRtbCI+R3JlYXRlckVxdWFsVGFnPC9BPjwvQj48L1REPgorPFREPkV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkdyZWF0ZXJUaGFuVGFnLmh0bWwiPkdyZWF0ZXJUaGFuVGFnPC9BPjwvQj48L1REPgorPFREPkV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBncmVhdGVyIHRoYW4gdGhlIHNwZWNpZmllZCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ikl0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT48L0I+PC9URD4KKzxURD5DdXN0b20gdGFnIHRoYXQgaXRlcmF0ZXMgdGhlIGVsZW1lbnRzIG9mIGEgY29sbGVjdGlvbiwgd2hpY2ggY2FuIGJlCisgZWl0aGVyIGFuIGF0dHJpYnV0ZSBvciB0aGUgcHJvcGVydHkgb2YgYW4gYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iSXRlcmF0ZVRlaS5odG1sIj5JdGVyYXRlVGVpPC9BPjwvQj48L1REPgorPFREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5pdGVyYXRlPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTGVzc0VxdWFsVGFnLmh0bWwiPkxlc3NFcXVhbFRhZzwvQT48L0I+PC9URD4KKzxURD5FdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJMZXNzVGhhblRhZy5odG1sIj5MZXNzVGhhblRhZzwvQT48L0I+PC9URD4KKzxURD5FdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgaXMgbGVzcyB0aGFuIHRoZSBzcGVjaWZpZWQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJNYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT48L0I+PC9URD4KKzxURD5FdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBhIHN1YnN0cmluZyBvZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTm90RXF1YWxUYWcuaHRtbCI+Tm90RXF1YWxUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGFuZCB2YWx1ZSBhcmUgbm90IGVxdWFsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTm90TWF0Y2hUYWcuaHRtbCI+Tm90TWF0Y2hUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgbm90IGEgc3Vic3RyaW5nIG9mIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOb3RQcmVzZW50VGFnLmh0bWwiPk5vdFByZXNlbnRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgbm90IHByZXNlbnQgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlByZXNlbnRUYWcuaHRtbCI+UHJlc2VudFRhZzwvQT48L0I+PC9URD4KKzxURD5FdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBwcmVzZW50IGZvciB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT48L0I+PC9URD4KKzxURD5HZW5lcmF0ZSBhIFVSTC1lbmNvZGVkIHJlZGlyZWN0IHRvIHRoZSBzcGVjaWZpZWQgVVJJLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworCis8UD4KKzxBIE5BTUU9InBhY2thZ2VfZGVzY3JpcHRpb24iPjwhLS0gLS0+PC9BPjxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIERlc2NyaXB0aW9uCis8L0gyPgorCis8UD4KKzxwPgorICAgIFRoZSAic3RydXRzLWxvZ2ljIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbiBtYW5hZ2luZyBjb25kaXRpb25hbAorICAgIGdlbmVyYXRpb24gb2Ygb3V0cHV0IHRleHQsIGxvb3Bpbmcgb3ZlciBvYmplY3QgY29sbGVjdGlvbnMgZm9yIHJlcGV0aXRpdmUgZ2VuZXJhdGlvbgorICAgIG9mIG91dHB1dCB0ZXh0LCBhbmQgYXBwbGljYXRpb24gZmxvdyBtYW5hZ2VtZW50CisgIDwvcD4KKyAgPGEgbmFtZT0iZG9jLkRlc2NyaXB0aW9uIj48L2E+CisKKyAgPHA+CisKKzxkaXYgYWxpZ249ImNlbnRlciI+IDxhIGhyZWY9IiNkb2MuSW50cm9kdWN0aW9uIj5bSW50cm9kdWN0aW9uXTwvYT4gPGEgaHJlZj0iI2RvYy5GdW5jdGlvbmFsaXR5Ij5bTG9naWMKKyAgRnVuY3Rpb25hbGl0eV08L2E+IDxhIGhyZWY9IiNkb2MuUHJvcGVydGllcyI+W0xvZ2ljIFByb3BlcnRpZXNdPC9hPiA8YSBocmVmPSIjZG9jLkV4YW1wbGVzIj5bTG9naWMKKyAgRXhhbXBsZXNdPC9hPiA8L2Rpdj4KKyAgPHA+PC9wPgorCisgIDxociAvPgorPGEgbmFtZT0iZG9jLkludHJvIj48L2E+Cis8aDM+SW50cm9kdWN0aW9uPGEgbmFtZT0iZG9jLkludHJvZHVjdGlvbiI+PC9hPjwvaDM+CisKKyAgPHA+CisgICAgVGhlIExvZ2ljIGxpYnJhcnkgc3VwcGxpZXMgdGFncyB0aGF0IGFyZSB1c2VmdWwgZm9yIG1hbmlwdWxhdGluZyBwcmVzZW50YXRpb24gbG9naWMKKyAgICB3aXRob3V0IHRoZSB1c2Ugb2Ygc2NyaXB0bGV0cy4KKyAgPC9wPgorCisKKzxhIG5hbWU9ImRvYy5GdW5jdGlvbmFsaXR5Ij48L2E+Cis8aDM+TG9naWMgVGFnIEZ1bmN0aW9uYWxpdHk8YSBuYW1lPSJkb2MuRnVuY3Rpb25hbGl0eSI+PC9hPjwvaDM+Cis8cD4gVGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGxvZ2ljIHRhZ3MgY2FuIGJlIGRpdmlkZWQgaW50byBmb3VyIGdyb3Vwczo8L3A+Cis8cD48Yj5WYWx1ZSBDb21wYXJpc29ucyAtPC9iPiBUaGUgcHVycG9zZSBvZiB0aGVzZSB0YWdzIGlzIHRvIHByaW50IG91dCB0aGUgYm9keQorICBvZiB0aGUgdGFnIGlmIHRoZSBjb21wYXJpc29uIGV2YWx1YXRlcyB0byA8aT50cnVlLiA8L2k+PC9wPgorPHVsPgorICA8bGk+PGI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWxvZ2ljLmh0bWwjZXF1YWwiPmVxdWFsLDwvYT4gPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWxvZ2ljLmh0bWwjbm90RXF1YWwiPm5vdEVxdWFsPC9hPjwvYj4KKyAgPC9saT4KKyAgPGxpPjxiPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1sb2dpYy5odG1sI2dyZWF0ZXJFcXVhbCI+Z3JlYXRlckVxdWFsPC9hPiwgPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWxvZ2ljLmh0bWwjbGVzc0VxdWFsIj5sZXNzRXF1YWw8L2E+PC9iPjwvbGk+CisgIDxsaT48Yj48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHJ1dHMtbG9naWMuaHRtbCNncmVhdGVyVGhhbiI+Z3JlYXRlclRoYW48L2E+LDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1sb2dpYy5odG1sI2xlc3NUaGFuIj4KKyAgICBsZXNzVGhhbjwvYT48L2I+PC9saT4KKzwvdWw+Cis8cD48Yj5TdWJzdHJpbmcgTWF0Y2hpbmcgLTwvYj4gVGhlIHB1cnBvc2Ugb2YgdGhlc2UgdGFncyBpcyB0byBtYXRjaCBzdWJzdHJpbmdzCisgIGluc2lkZSBvZiBvdGhlciBTdHJpbmdzPC9wPgorPHVsPgorICA8bGk+PGI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWxvZ2ljLmh0bWwjbWF0Y2giPm1hdGNoPC9hPiwgPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWxvZ2ljLmh0bWwjbm90TWF0Y2giPm5vdE1hdGNoPC9hPjwvYj48L2xpPgorPC91bD4KKzxwPjxiPlByZXNlbnRhdGlvbiBMb2NhdGlvbiAtPC9iPiBUaGUgcHVycG9zZSBvZiB0aGVzZSB0YWdzIGlzIHRvIGNoYW5nZSB0aGUgbG9jYXRpb24KKyAgb2YgdGhlIHByZXNlbnRhdGlvbiBwYWdlPC9wPgorPHVsPgorICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWxvZ2ljLmh0bWwjZm9yd2FyZCI+PGI+Zm9yd2FyZDwvYj48L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1sb2dpYy5odG1sI3JlZGlyZWN0Ij48Yj5yZWRpcmVjdDwvYj48L2E+PC9saT4KKzwvdWw+Cis8cD48Yj5Db2xsZWN0aW9uIFV0aWxpdGllcyAtPC9iPlRoZSBwdXJwb3NlIG9mIHRoZXNlIHRhZ3MgaXMgdG8gaGFuZGxlIENvbGxlY3Rpb25zPC9wPgorPHVsPgorICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vc3RydXRzLWxvZ2ljLmh0bWwjaXRlcmF0ZSI+PGI+aXRlcmF0ZTwvYj48L2E+IDwvbGk+Cis8L3VsPgorPGgzPkxvZ2ljIFRhZyBQcm9wZXJ0aWVzPGEgbmFtZT0iZG9jLlByb3BlcnRpZXMiPjwvYT48L2gzPgorPHA+RWFjaCBvZiB0aGUgZm91ciBncm91cHMgb2YgbG9naWMgdGFncyBoYXZlIGEgY29tbW9uIHNldCBvZiBhdHRyaWJ1dGVzIGFzc29jaWF0ZWQKKyAgd2l0aCB0aGVtLiA6PC9wPgorPGJsb2NrcXVvdGU+CisgIDxwPjxiPlZhbHVlIENvbXBhcmlzb25zPC9iPiAoZXF1YWwsIG5vdEVxdWFsLCBncmVhdGVyRXF1YWwsIGxlc3NFcXVhbCwgZ3JlYXRlclRoYW4sCisgICAgbGVzc1RoYW4sIHByZXNlbnQsIG5vdFByZXNlbnQpPC9wPgorICA8cD5FYWNoIG9mIHRoZSB2YWx1ZSBjb21wYXJpc29uIHRhZ3MgdGFrZXMgYSA8aT52YWx1ZTwvaT4gYW5kIGNvbXBhcmVzIGl0IHRvCisgICAgdGhlIHZhbHVlIG9mIGEgY29tcGFyaXNvbiBhdHRyaWJ1dGUuIElmIHRoZSB2YWx1ZSBnaXZlbiBjYW4gYmUgc3VjY2Vzc2Z1bGx5CisgICAgY29udmVydGVkIHRvIGEgPGk+ZmxvYXQ8L2k+IG9yIDxpPmRvdWJsZTwvaT4sIHRoZW4gYSBudW1iZXIgY29tcGFyaXNvbiBpcworICAgIHBlcmZvcm1lZCBvbiB0aGUgdmFsdWUgZ2l2ZW4gYW5kIHRoZSB2YWx1ZSBvZiB0aGUgY29tcGFyaXNvbiBhdHRyaWJ1dGUuIE90aGVyd2lzZQorICAgIGEgU3RyaW5nIGNvbXBhcmlzb24gaXMgcGVyZm9ybWVkLiBZb3UgaGF2ZSB0byBzcGVjaWZ5IG9uZSBvZiB0aGUgY29tcGFyaXNvbgorICAgIGF0dHJpYnV0ZXM6IDxpPmNvb2tpZTwvaT4sIDxpPmhlYWRlcjwvaT4sIDxpPnBhcmFtZXRlcjwvaT4sIDxpPnByb3BlcnR5PC9pPgorICAgIG9yIDxpPm5hbWUuIDwvaT5Gb3IgZWFjaCBvZiB0aGUgZXhhbXBsZXMsIHRoZSB0YWcgJnF1b3Q7PGk+c29tZUNvbXBhcmlzb25UYWcmcXVvdDs8L2k+Y2FuCisgICAgYmUgcmVwbGFjZWQgYnkgYW55IG9mIHRoZSB2YWx1ZSBjb21wYXJpc29uIHRhZ3MuPC9wPgorICA8dWw+CisgICAgPGxpPnZhbHVlIC0gdGhlIHZhbHVlIHRvIHdoaWNoIHRoaXMgdGFnIGlzIGdvaW5nIHRvIGNvbXBhcmUsIHVzZWQgaW4gY29uanVuY3Rpb24KKyAgICAgIHdpdGggb25lIG9mIHRoZSBjb21wYXJpc29uIGF0dHJpYnV0ZXM6IDxpPmNvb2tpZTwvaT4sIDxpPmhlYWRlcjwvaT4sIDxpPnBhcmFtZXRlcjwvaT4sCisgICAgICA8aT5hbmQgcHJvcGVydHk8L2k+IGFuZC9vciA8aT5uYW1lLiA8L2k+PC9saT4KKyAgICA8bGk+Y29va2llIC0gdGhlIG5hbWUgb2YgdGhlIGNvb2tpZSB0byBjb21wYXJlIHRvIDxpPnZhbHVlPC9pPgorICAgICAgPHVsPgorICAgICAgICA8bGk+ZXhhbXBsZToKKyAgICAgICAgICA8cHJlPiZsdDtsb2dpYzo8aT5zb21lQ29tcGFyaXNvblRhZzwvaT4gdmFsdWU9JnF1b3Q7c29tZVVzZXJOYW1lJnF1b3Q7IGNvb2tpZT0mcXVvdDt1c2VyTmFtZSZxdW90OyZndDsKKyAgVXNlciBMb2dnZWQgSW4KKyZsdDsvbG9naWM6PGk+c29tZUNvbXBhcmlzb25UYWc8L2k+Jmd0OworPC9wcmU+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPgorICAgIDwvbGk+CisgICAgPGxpPmhlYWRlciAtIHRoZSBuYW1lIG9mIHRoZSBIVFRQIGhlYWRlciB0byBjb21wYXJlIHRvIDxpPnZhbHVlPC9pPgorICAgICAgPHVsPgorICAgICAgICA8bGk+ZXhhbXBsZToKKyAgICAgICAgICA8cHJlPiZsdDtsb2dpYzo8aT5zb21lQ29tcGFyaXNvblRhZzwvaT4gdmFsdWU9JnF1b3Q7ZW5fVVMmcXVvdDsgaGVhZGVyPSZxdW90O0FjY2VwdC1MYW5ndWFnZSZxdW90OyZndDsKKyAgV2VsY29tZSBFbmdsaXNoLXNwZWFraW5nIFVzZXIqCismbHQ7L2xvZ2ljOjxpPnNvbWVDb21wYXJpc29uVGFnPC9pPiZndDsKKzwvcHJlPgorICAgICAgICA8L2xpPgorICAgICAgICA8bGk+CisgICAgICAgICAgPHA+Kk5vdGU6IFNlZSB0aGUgc2VjdGlvbiBpbiB0aGUgdXNlcidzIGd1aWRlIG9uIDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9idWlsZGluZ192aWV3Lmh0bWwjaTE4biI+SW50ZXJuYXRpb25hbGl6ZWQKKyAgICAgICAgICAgIE1lc3NhZ2VzPC9hPiB0byBkbyB0aGluZ3MgbGlrZSB0aGlzIGJldHRlci48L3A+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPgorICAgIDwvbGk+CisgICAgPGxpPm5hbWUgLSB0aGUgdmFyaWFibGUgdG8gYmUgY29tcGFyZWQgdG8gPGk+dmFsdWU8L2k+IGlzIHRoZSBKU1AgYmVhbiBzcGVjaWZpZWQKKyAgICAgIGJ5IHRoaXMgYXR0cmlidXRlLCBpZiBwcm9wZXJ0eSBpcyBub3Qgc3BlY2lmaWVkLCBvciB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZAorICAgICAgcHJvcGVydHkgb2YgdGhpcyBiZWFuLCBpZiBwcm9wZXJ0eSBpcyBzcGVjaWZpZWQuCisgICAgICA8dWw+CisgICAgICAgIDxsaT5leGFtcGxlOgorICAgICAgICAgIDxwcmU+Jmx0OyUKKyAgU3RyaW5nIHRlc3RTdHJpbmcgPSAmcXVvdDtwYW50YWxvbmVzJnF1b3Q7OworICBwYWdlQ29udGV4dC5zZXRBdHRyaWJ1dGUoJnF1b3Q7dGVzdFN0cmluZyZxdW90OywgdGVzdFN0cmluZywgUGFnZUNvbnRleHQuUEFHRV9TQ09QRSk7CislJmd0OworJmx0O2pzcDp1c2VCZWFuIGlkPSZxdW90O3Rlc3RTdHJpbmcmcXVvdDsgc2NvcGU9JnF1b3Q7cGFnZSZxdW90OyB0eXBlPSZxdW90O2phdmEubGFuZy5TdHJpbmcmcXVvdDsgLyZndDsKKyZsdDtsb2dpYzo8aT5zb21lQ29tcGFyaXNvblRhZzwvaT4gbmFtZT0mcXVvdDt0ZXN0U3RyaW5nJnF1b3Q7IHZhbHVlPSZxdW90O3BhbnRhbG9uZXMmcXVvdDsmZ3Q7CisgIFVzdGVkIHRpZW5lIHBhbnRhbG9uZXMhCismbHQ7L2xvZ2ljOjxpPnNvbWVDb21wYXJpc29uPC9pPiZndDsKKzwvcHJlPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4KKyAgICA8L2xpPgorICAgIDxsaT5wYXJhbWV0ZXIgLSB0aGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdG8gY29tcGFyZSB0byA8aT52YWx1ZTwvaT4KKyAgICAgIDx1bD4KKyAgICAgICAgPGxpPmV4YW1wbGU6CisgICAgICAgICAgPHByZT4mbHQ7bG9naWM6PGk+c29tZUNvbXBhcmlzb25UYWc8L2k+IHZhbHVlPSZxdW90OyZxdW90OyBwYXJhbWV0ZXI9JnF1b3Q7dXNlcm5hbWUmcXVvdDsmZ3Q7CisgIEVycm9yOiBhIHVzZXJuYW1lIG11c3QgYmUgc3BlY2lmaWVkCismbHQ7L2xvZ2ljOjxpPnNvbWVDb21wYXJpc29uVGFnPC9pPiZndDsKKzwvcHJlPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4KKyAgICA8L2xpPgorICAgIDxsaT5wcm9wZXJ0eSAtIHRoZSB2YXJpYWJsZSB0byBiZSBjb21wYXJlZCB3aXRoIDxpPnZhbHVlPC9pPiBpcyB0aGUgcHJvcGVydHkKKyAgICAgIChvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIG5hbWUgYXR0cmlidXRlKSBzcGVjaWZpZWQgYnkgdGhpcyBhdHRyaWJ1dGUuCisgICAgICBUaGUgcHJvcGVydHkgcmVmZXJlbmNlIGNhbiBiZSBzaW1wbGUsIG5lc3RlZCwgYW5kL29yIGluZGV4ZWQuIDxpPnByb3BlcnR5PC9pPgorICAgICAgaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIDxpPm5hbWU8L2k+IHRvIHNwZWNpZnkgYSBwcm9wZXJ0eSBpbiB0aGUgYmVhbgorICAgICAgc3BlY2lmaWVkIGJ5IDxpPm5hbWU8L2k+LiBGb3IgdGhlIHR5cGUgb2Ygc3ludGF4IHVzZWQgZm9yIHByb3BlcnR5LCBzZWUKKyAgICAgIHRoZSB1c2VycyBndWlkZSBvbiB0aGUgQmVhbiBUYWdzLjwvbGk+CisgICAgPGxpPnNjb3BlIC0gdGhlIGJlYW4gc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gbmFtZWQgYnkgdGhlCisgICAgICBuYW1lIHByb3BlcnR5LCBvciAiYW55IHNjb3BlIiBpZiBub3Qgc3BlY2lmaWVkLiBQb3NzaWJsZSB2YWx1ZXMgYXJlICZxdW90O3BhZ2UmcXVvdDssCisgICAgICAmcXVvdDtyZXF1ZXN0JnF1b3Q7LCAmcXVvdDtzZXNzaW9uJnF1b3Q7LCAmcXVvdDthcHBsaWNhdGlvbiZxdW90Oywgb3IgJnF1b3Q7YW55CisgICAgICBzY29wZSZxdW90OyA8L2xpPgorICA8L3VsPgorICA8cD48Yj5TdWJzdHJpbmcgTWF0Y2hpbmc8L2I+IChtYXRjaCwgbm90TWF0Y2gpPC9wPgorICA8cD5UaGUgc3Vic3RyaW5nIG1hdGNoaW5nIHRhZ3MgdGFrZSBhbGwgdGhlIHNhbWUgYXJndW1lbnRzIGFzIHRoZSB2YWx1ZSBjb21wYXJpc29uCisgICAgdGFncy4gWW91IGNvbXBhcmUgdGhlIFN0cmluZyBzcGVjaWZpZWQgYnkgPGk+dmFsdWU8L2k+IHRvIGFueSBvZiB0aGUgY29tcGFyaXNvbgorICAgIHZhbHVlcyB5b3UgZ2l2ZSBpdCwgc3BlY2lmaWVkIGJ5IDxpPmNvb2tpZTwvaT4sIDxpPmhlYWRlcjwvaT4sIDxpPnBhcmFtZXRlcjwvaT4sCisgICAgPGk+cHJvcGVydHk8L2k+IG9yIDxpPm5hbWUuPC9pPiBOb3RlIHRoYXQgaW4gdGhlIGV4YW1wbGVzLCA8aT5tYXRjaFRhZzwvaT4KKyAgICBjb3JyZXNwb25kcyBlaXRoZXIgdGhlIDxpPm1hdGNoIDwvaT5vciA8aT5ub3RNYXRjaDwvaT4gdGFnLiBNYXRjaGluZyB0YWdzCisgICAgYWxzbyBoYXZlIGFuIGFkZGl0aW9uYWwgPGk+bG9jYXRpb248L2k+IGF0dHJpYnV0ZSBhZGRlZDo8L3A+CisgIDx1bD4KKyAgICA8bGk+bG9jYXRpb24gLSBoYXMgdHdvIHBvc3NpYmxlIHZhbHVlcywgJnF1b3Q7c3RhcnQmcXVvdDsgYW5kICZxdW90O2VuZCZxdW90Oy4KKyAgICAgIElmICZxdW90O3N0YXJ0JnF1b3Q7LCB0aGUgc3Vic3RyaW5nIGlzIGF0dGVtcHRlZCB0byBiZSBtYXRjaGVkIGF0IHRoZSBiZWdpbm5pbmcKKyAgICAgIG9mIHRoZSBTdHJpbmcsIGlmICZxdW90O2VuZCZxdW90OywgdGhlbiB0aGUgc3Vic3RyaW5nIGlzIGF0dGVtcHRlZCB0byBiZQorICAgICAgbWF0Y2hlZCB0byB0aGUgZW5kIG9mIHRoZSBTdHJpbmcuCisgICAgICA8dWw+CisgICAgICAgIDxsaT5leGFtcGxlOgorICAgICAgICAgIDxwcmU+Jmx0O2xvZ2ljOjxpPm1hdGNoVGFnPC9pPiBwYXJhbWV0ZXI9JnF1b3Q7YWN0aW9uJnF1b3Q7IHZhbHVlPSZxdW90O3Byb2Nlc3NMb2dpbiZxdW90OyBsb2NhdGlvbj0mcXVvdDtzdGFydCZxdW90OyZndDsKKyAgUHJvY2Vzc2luZyBMb2dpbi4uLi4KKyZsdDsvbG9naWM6PGk+bWF0Y2hUYWc8L2k+Jmd0OworCitJbiB0aGlzIGV4YW1wbGUsIGEgcmVxdWVzdCBwYXJhbWV0ZXIgJnF1b3Q7YWN0aW9uJnF1b3Q7IHdhcyBjb21wYXJlZCB0byBzZWUgaWYKK2l0cyB2YWx1ZSBzdGFydGVkIHdpdGggdGhlIFN0cmluZyAmcXVvdDtwcm9jZXNzTG9naW4mcXVvdDsuIEluIHRoaXMgY2FzZSwKKzxpPm1hdGNoVGFnPC9pPiB3b3VsZCBoYXZlIHRvIGJlICZsdDtsb2dpYzptYXRjaCZndDsuCis8L3ByZT4KKyAgICAgICAgPC9saT4KKyAgICAgIDwvdWw+CisgICAgPC9saT4KKyAgPC91bD4KKyAgPHA+PGI+UHJlc2VudGF0aW9uIExvY2F0aW9uPC9iPiAoZm9yd2FyZCwgcmVkaXJlY3QpPC9wPgorICA8cD5UaGUgPGk+cmVkaXJlY3Q8L2k+IHRhZyBpcyByZXNwb3NpYmxlIGZvciBzZW5kaW5nIGEgcmUtZGlyZWN0IHRvIHRoZSBjbGllbnQncworICAgIGJyb3dzZXIsIGNvbXBsZXRlIHdpdGggVVJMLXJld3JpdGluZyBpZiBpdCdzIHN1cHBvcnRlZCBieSB0aGUgY29udGFpbmVyLiBJdHMKKyAgICBhdHRyaWJ1dGVzIGFyZSBjb25zaXN0ZW50IHdpdGggdGhlIFN0cnV0cyBIVE1MIDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1odG1sLmh0bWwjbGluayI+PGNvZGU+bGluazwvY29kZT48L2E+CisgICAgdGFnLiBUaGUgYmFzZSBVUkwgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB3aGljaCBvZiB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMKKyAgICB5b3Ugc3BlY2lmeSAoeW91IG11c3Qgc3BlY2lmeSBleGFjdGx5IG9uZSBvZiB0aGVtKTo8L3A+CisgIDx1bD4KKyAgICA8bGk+IGZvcndhcmQgLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIHRoZSBuYW1lIG9mIGEgZ2xvYmFsIEFjdGlvbkZvcndhcmQKKyAgICAgIHRvIGJlIGxvb2tlZCB1cCwgYW5kIHVzZSB0aGUgY29udGV4dC1yZWxhdGl2ZSBVUkkgZm91bmQgdGhlcmUuIDwvbGk+CisgICAgPGxpPmhyZWYgLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIHVuY2hhbmdlZC4gPC9saT4KKyAgICA8bGk+cGFnZSAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgYXMgYSBjb250ZXh0LXJlbGF0aXZlIFVSSSwgYW5kCisgICAgICBnZW5lcmF0ZSBhIHNlcnZlci1yZWxhdGl2ZSBVUkkgYnkgaW5jbHVkaW5nIHRoZSBjb250ZXh0IHBhdGguIDwvbGk+CisgIDwvdWw+CisgIDxwPlRoZSA8aT5mb3J3YXJkPC9pPiB0YWcgaXMgcmVzcG9uc2libGUgZm9yIGVpdGhlciByZWRpcmVjdGluZyBvciBmb3J3YXJkaW5nCisgICAgdG8gYSBzcGVjaWZpZWQgZ2xvYmFsIGFjdGlvbiBmb3J3YXJkLiBUbyBkZWZpbmUgYSBnbG9iYWwgQWN0aW9uRm9yd2FyZCwgc2VlCisgICAgVGhlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9idWlsZGluZ19jb250cm9sbGVyLmh0bWwjY29uZmlnIj5BY3Rpb24KKyAgICBNYXBwaW5ncyBDb25maWd1cmF0aW9uIEZpbGU8L2E+LiBZb3UgY2FuIHNwZWNpZnkgd2hldGhlciB0aGUgZm9yd2FyZCByZS1kaXJlY3RzCisgICAgb3IgZm9yd2FyZHMgd2hlbiBleGVjdXRlZCBpbiB0aGUgY29uZmlnIGZpbGUuIFRoZSBmb3J3YXJkIHRhZyBoYXMgb25lIGF0dHJpYnV0ZTo8L3A+CisgIDx1bD4KKyAgICA8bGk+bmFtZSAtIFRoZSBsb2dpY2FsIG5hbWUgb2YgdGhlIEFjdGlvbkZvcndhcmQgdG8gdXNlPC9saT4KKyAgPC91bD4KKyAgPHA+PGI+Q29sbGVjdGlvbiBVdGlsaXRpZXM8L2I+IChpdGVyYXRlKTwvcD4KKyAgPHA+VGhlIDxpPml0ZXJhdGU8L2k+IHRhZyBpcyByZXNwb25zaWJsZSBmb3IgZXhlY3V0aW5nIGl0cyBib2R5IGNvbnRlbnQgb25jZQorICAgIGZvciBldmVyeSBlbGVtZW50IGluc2lkZSBvZiB0aGUgc3BlY2lmaWVkIENvbGxlY3Rpb24uIFRoZXJlIGlzIG9uZSByZXF1aXJlZAorICAgIGF0dHJpYnV0ZTo8L3A+CisgIDx1bD4KKyAgICA8bGk+aWQgLSBUaGUgbmFtZSBvZiBhIHBhZ2Ugc2NvcGUgSlNQIGJlYW4gdGhhdCB3aWxsIGNvbnRhaW4gdGhlIGN1cnJlbnQgZWxlbWVudAorICAgICAgb2YgdGhlIGNvbGxlY3Rpb24gb24gZWFjaCBpdGVyYXRpb248L2xpPgorICA8L3VsPgorICA8cD5UaGUgb3RoZXIgYXR0cmlidXRlcyBhbGxvdyBmb3IgbW9yZSBmbGV4aWJpbGl0eSBvbiB3aGljaCBDb2xsZWN0aW9uIHRvIGl0ZXJhdGUKKyAgICBhbmQgaG93IHRvIGRvIGl0OjwvcD4KKyAgPHVsPgorICAgIDxsaT5jb2xsZWN0aW9uIC0gYSBydW50aW1lIGV4cHJlc3Npb24gdGhhdCBldmFsdWF0ZXMgdG8gYSBDb2xsZWN0aW9uIHRvIGJlCisgICAgICBpdGVyYXRlZAorICAgICAgPHVsPgorICAgICAgICA8bGk+ZXhhbXBsZToKKyAgICAgICAgICA8cHJlPiZsdDslCisgIGphdmEudXRpbC5WZWN0b3IgdmVjdG9yID0gbmV3IGphdmEudXRpbC5WZWN0b3IoKTsKKyAgdmVjdG9yLmFkZChuZXcgSW50ZWdlcigxMikpOworICB2ZWN0b3IuYWRkKG5ldyBJbnRlZ2VyKDUpKTsKKyAlJmd0OworPC9wcmU+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPgorICAgIDwvbGk+CisgIDwvdWw+CisgIDxibG9ja3F1b3RlPgorICAgIDxibG9ja3F1b3RlPgorICAgICAgPHByZT4mbHQ7bG9naWM6aXRlcmF0ZSBpZD0mcXVvdDtteUNvbGxlY3Rpb25FbGVtZW50JnF1b3Q7IGNvbGxlY3Rpb249JnF1b3Q7Jmx0OyU9IHZlY3RvciAlJmd0OyZxdW90OyZndDsKKzxpPiBEbyBzb21ldGhpbmcgd2l0aCBteUNvbGxlY3Rpb25FbGVtZW50PC9pPgorJmx0Oy9sb2dpYzppdGVyYXRlJmd0OworPC9wcmU+CisgICAgPC9ibG9ja3F1b3RlPgorICA8L2Jsb2NrcXVvdGU+CisgIDx1bD4KKyAgICA8bGk+bGVuZ3RoIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgKGZyb20gdGhlIHVuZGVybHlpbmcgY29sbGVjdGlvbikKKyAgICAgIHRvIGJlIGl0ZXJhdGVkIHRocm91Z2ggb24gdGhpcyBwYWdlLiBUaGlzIGNhbiBiZSBlaXRoZXIgYW4gaW50ZWdlciB0aGF0CisgICAgICBkaXJlY3RseSBleHByZXNzZXMgdGhlIGRlc2lyZWQgdmFsdWUsIG9yIHRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gKGluIGFueQorICAgICAgc2NvcGUpIG9mIHR5cGUgamF2YS5sYW5nLkludGVnZXIgdGhhdCBkZWZpbmVzIHRoZSBkZXNpcmVkIHZhbHVlLiBJZiBub3QKKyAgICAgIHByZXNlbnQsIHRoZXJlIHdpbGwgYmUgbm8gbGltaXQgb24gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIHBlcmZvcm1lZDwvbGk+CisgICAgPGxpPm5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgSlNQIGJlYW4gY29udGFpbmluZyB0aGUgY29sbGVjdGlvbiB0byBiZSBpdGVyYXRlZAorICAgICAgKGlmIHByb3BlcnR5IGlzIG5vdCBzcGVjaWZpZWQpLCBvciB0aGUgSlNQIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIHJldHVybnMKKyAgICAgIHRoZSBjb2xsZWN0aW9uIHRvIGJlIGl0ZXJhdGVkIChpZiBwcm9wZXJ0eSBpcyBzcGVjaWZpZWQpLgorICAgICAgPHVsPgorICAgICAgICA8bGk+ZXhhbXBsZToKKyAgICAgICAgICA8cHJlPiZsdDslPGJyPgorICAgIGphdmEudXRpbC5BcnJheUxpc3QgbGlzdCA9IG5ldyBqYXZhLnV0aWwuQXJyYXlMaXN0KCk7CisgICAgbGlzdC5hZGQoJnF1b3Q7Rmlyc3QmcXVvdDspOworICAgIGxpc3QuYWRkKCZxdW90O1NlY29uZCZxdW90Oyk7CisgICAgbGlzdC5hZGQoJnF1b3Q7VGhpcmQmcXVvdDspOworICAgIGxpc3QuYWRkKCZxdW90O0ZvdXJ0aCZxdW90Oyk7CisgICAgbGlzdC5hZGQoJnF1b3Q7RmlmdGgmcXVvdDspOworICAgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZSgmcXVvdDtsaXN0JnF1b3Q7LCBsaXN0LCBQYWdlQ29udGV4dC5QQUdFX1NDT1BFKTsKKyUmZ3Q7CisKKyZsdDtsb2dpYzppdGVyYXRlIGlkPSZxdW90O215Q29sbGVjdGlvbkVsZW1lbnQmcXVvdDsgbmFtZT0mcXVvdDtsaXN0JnF1b3Q7Jmd0OworICA8aT5EbyBzb21ldGhpbmcgd2l0aCBteUNvbGxlY3Rpb25FbGVtZW50PC9pPgorJmx0Oy9sb2dpYzppdGVyYXRlJmd0OzwvcHJlPgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4KKyAgICA8L2xpPgorICAgIDxsaT5vZmZzZXQgLSBUaGUgemVyby1yZWxhdGl2ZSBpbmRleCBvZiB0aGUgc3RhcnRpbmcgcG9pbnQgYXQgd2hpY2ggZW50cmllcworICAgICAgZnJvbSB0aGUgdW5kZXJseWluZyBjb2xsZWN0aW9uIHdpbGwgYmUgaXRlcmF0ZWQgdGhyb3VnaC4gVGhpcyBjYW4gYmUgZWl0aGVyCisgICAgICBhbiBpbnRlZ2VyIHRoYXQgZGlyZWN0bHkgZXhwcmVzc2VzIHRoZSBkZXNpcmVkIHZhbHVlLCBvciB0aGUgbmFtZSBvZiBhIEpTUAorICAgICAgYmVhbiAoaW4gYW55IHNjb3BlKSBvZiB0eXBlIGphdmEubGFuZy5JbnRlZ2VyIHRoYXQgZGVmaW5lcyB0aGUgZGVzaXJlZCB2YWx1ZS4KKyAgICAgIElmIG5vdCBwcmVzZW50LCB6ZXJvIGlzIGFzc3VtZWQgKG1lYW5pbmcgdGhhdCB0aGUgY29sbGVjdGlvbiB3aWxsIGJlIGl0ZXJhdGVkCisgICAgICBmcm9tIHRoZSBiZWdpbm5pbmcuIDwvbGk+CisgICAgPGxpPnByb3BlcnR5IC0gTmFtZSBvZiB0aGUgcHJvcGVydHksIG9mIHRoZSBKU1AgYmVhbiBzcGVjaWZpZWQgYnkgbmFtZSwgd2hvc2UKKyAgICAgIGdldHRlciByZXR1cm5zIHRoZSBjb2xsZWN0aW9uIHRvIGJlIGl0ZXJhdGVkLiBTZWUgdGhlIHVzZXIncyBndWlkZSBmb3IgdGhlCisgICAgICBiZWFuIHRhZyBsaWJyYXJ5IGZvciB0aGUgc3ludGF4IG9mIHRoZSBwcm9wZXJ0eSBhdHRyaWJ1dGU8L2xpPgorICAgIDxsaT5zY29wZSAtIFRoZSBiZWFuIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIG5hbWVkIGJ5IHRoZQorICAgICAgbmFtZSBwcm9wZXJ0eSwgb3IgImFueSBzY29wZSIgaWYgbm90IHNwZWNpZmllZC4gUG9zc2libGUgdmFsdWVzIGFyZSAmcXVvdDtwYWdlJnF1b3Q7LAorICAgICAgJnF1b3Q7cmVxdWVzdCZxdW90OywgJnF1b3Q7c2Vzc2lvbiZxdW90OywgJnF1b3Q7YXBwbGljYXRpb24mcXVvdDssIG9yICZxdW90O2FueQorICAgICAgc2NvcGUmcXVvdDsgPC9saT4KKyAgICA8bGk+dHlwZSAtIEZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGVsZW1lbnQgdG8gYmUgZXhwb3NlZCB0aHJvdWdoCisgICAgICB0aGUgSlNQIGJlYW4gbmFtZWQgZnJvbSB0aGUgaWQgYXR0cmlidXRlLiBJZiBub3QgcHJlc2VudCwgbm8gdHlwZSBjb252ZXJzaW9ucworICAgICAgd2lsbCBiZSBwZXJmb3JtZWQuIE5PVEU6IFRoZSBhY3R1YWwgZWxlbWVudHMgb2YgdGhlIGNvbGxlY3Rpb24gbXVzdCBiZSBhc3NpZ25tZW50LWNvbXBhdGlibGUKKyAgICAgIHdpdGggdGhpcyBjbGFzcywgb3IgYSByZXF1ZXN0IHRpbWUgQ2xhc3NDYXN0RXhjZXB0aW9uIHdpbGwgb2NjdXIuCisgICAgICA8dWw+CisgICAgICAgIDxsaT5leGFtcGxlOgorICAgICAgICAgIDxwcmU+Jmx0OyUgICAgamF2YS51dGlsLkFycmF5TGlzdCBsaXN0ID0gbmV3IGphdmEudXRpbC5BcnJheUxpc3QoKTsKK2xpc3QuYWRkKCZxdW90O0ZpcnN0JnF1b3Q7KTsKK2xpc3QuYWRkKCZxdW90O1NlY29uZCZxdW90Oyk7CitsaXN0LmFkZCgmcXVvdDtUaGlyZCZxdW90Oyk7CitsaXN0LmFkZCgmcXVvdDtGb3VydGgmcXVvdDspOworbGlzdC5hZGQoJnF1b3Q7RmlmdGgmcXVvdDspOworICAgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZSgmcXVvdDtsaXN0JnF1b3Q7LCBsaXN0LCBQYWdlQ29udGV4dC5QQUdFX1NDT1BFKTsKKyAlJmd0OworCismbHQ7bG9naWM6aXRlcmF0ZSBpZD0mcXVvdDtteUNvbGxlY3Rpb25FbGVtZW50JnF1b3Q7IG5hbWU9JnF1b3Q7bGlzdCZxdW90OyB0eXBlPSZxdW90O2phdmEubGFuZy5TdHJpbmcmcXVvdDsmZ3Q7CisgIDxpPkRvIHNvbWV0aGluZyB3aXRoIG15Q29sbGVjdGlvbkVsZW1lbnQ8L2k+CismbHQ7L2xvZ2ljOml0ZXJhdGUmZ3Q7PC9wcmU+CisgICAgICAgIDwvbGk+CisgICAgICA8L3VsPgorICAgIDwvbGk+CisgIDwvdWw+Cis8L2Jsb2NrcXVvdGU+Cis8aDM+TG9naWMgRXhhbXBsZXM8L2gzPgorPGJsb2NrcXVvdGU+CisgIDxwPjxiPlZhbHVlIENvbXBhcmlzb25zPC9iPjwvcD4KKyAgPGJsb2NrcXVvdGU+CisgICAgPHA+PHU+PC91Pjx1PjwvdT48dT5Mb2dpYyBFcXVpdmFsZW5jZSBUYWdzIChlcXVhbCwgbm90RXF1YWwsIGdyZWF0ZXJFcXVhbCwKKyAgICAgIGxlc3NFcXVhbCwgbGVzc1RoYW4sIGdyZWF0ZXJUaGFuKTwvdT48L3A+CisgICAgPGJsb2NrcXVvdGU+CisgICAgICA8cD5Zb3UgY2FuIGNvbXBhcmUgdGhlc2UgdGFncyB0byB0aGUgJnF1b3Q7PT0mcXVvdDssICZxdW90OyE9JnF1b3Q7ICwmcXVvdDsmZ3Q7PSZxdW90OywKKyAgICAgICAgJnF1b3Q7Jmx0Oz0mcXVvdDssICZxdW90OyZsdDsmcXVvdDssIGFuZCAmcXVvdDsmZ3Q7JnF1b3Q7bG9naWMgb3BlcmF0b3JzCisgICAgICAgIGluIG1vc3QgbGFuZ3VhZ2VzLiBUaGVpciB1c2FnZSBpcyBmYWlybHkgc3RyYWlnaHRmb3J3YXJkIGZvciBudW1iZXJzLgorICAgICAgICBGb3IgYW4gZXhhbXBsZSwgd2UnbGwgY3JlYXRlIGEgc21hbGwgJnF1b3Q7R3Vlc3MgVGhhdCBOdW1iZXImcXVvdDsgZ2FtZQorICAgICAgICB0aGF0IHVzZXMgcmVxdWVzdCBwYXJhbWV0ZXJzIGZyb20gYSBmb3JtIGlucHV0IHRvIHBsYXkuIFRoZSBudW1iZXIgd2lsbAorICAgICAgICBiZSBoYXJkY29kZWQgYXMgJnF1b3Q7NyZxdW90OywgYmVjYXVzZSB0aGlzIGlzIGp1c3QgYW4gZXhhbXBsZS4gTm90ZSB0aGF0CisgICAgICAgIHRoaXMgaXMgYWN0dWFsbHkgcHV0dGluZyBhcHBsaWNhdGlvbiBsb2dpYyBpbnNpZGUgb2YganNwIHBhZ2VzLCBhbmQgaXNuJ3QKKyAgICAgICAgdGhlIHJlY29tbWVuZGVkIGRldmVsb3BtZW50IG1ldGhvZCBmb3IgU3RydXRzLiBJdCdzIGp1c3QgYW4gZWFzeSB3YXkgdG8KKyAgICAgICAgc2hvdyBob3cgdGhlc2UgdGFncyBhcmUgdXNlZDo8L3A+CisgICAgICA8cD5UaGUgZmlyc3Qgc3RlcCBpcyB0byBkZXZlbG9wIHRoZSBmb3JtIHRoYXQgd2lsbCBjYWxsIG9uIHRoZSBwcm9jZXNzaW5nCisgICAgICAgIGpzcCBwYWdlLiBUaGlzIGZvcm0gd2lsbCB1c2UgdGhlICZxdW90O0dFVCZxdW90OyBtZXRob2Qgc28gdGhhdCB5b3UgY2FuCisgICAgICAgIHNlZSB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgaW4gdGhlIFVSTC4gVGhlIFBPU1QgbWV0aG9kIGNhbiBhbHNvIGJlIHVzZWQKKyAgICAgICAgd2l0aCBubyBwcm9ibGVtIG9yIGNoYW5nZXMuPC9wPgorICAgICAgPHA+W251bWJlckd1ZXNzLmpzcF08L3A+Cis8cHJlPiZsdDtmb3JtIGFjdGlvbj0mcXVvdDtudW1iZXJQcm9jZXNzLmpzcCZxdW90OyBtZXRob2Q9JnF1b3Q7R0VUJnF1b3Q7Jmd0OworUGxlYXNlIEVudGVyIGEgTnVtYmVyIEZyb20gMS0xMDogJmx0O2lucHV0IHR5cGU9JnF1b3Q7dGV4dCZxdW90OyBuYW1lPSZxdW90O251bWJlciZxdW90OyAvJmd0OyZsdDticiAvJmd0OworICAmbHQ7Y2VudGVyJmd0OworICAgICZsdDtpbnB1dCB0eXBlPSZxdW90O3N1Ym1pdCZxdW90OyBuYW1lPSZxdW90O0d1ZXNzIE51bWJlciZxdW90OyAvJmd0OworICAmbHQ7L2NlbnRlciZndDsKKyZsdDsvZm9ybSZndDsKKzwvcHJlPgorICAgICAgVGhlIG5leHQgc3RlcCBpcyB0byBjcmVhdGUgdGhlIHByb2Nlc3NpbmcgcGFnZS4gSXQgdXNlcyB0aGUgc3RydXRzLWxvZ2ljCisgICAgICB0YWdsaWIuIEZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gc2V0IHRoaXMgdGFnIGxpYnJhcnkgdXAgaW4geW91ciBhcHBsaWNhdGlvbgorICAgICAgdG8gdXNlLCBzZWUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL2J1aWxkaW5nX2NvbnRyb2xsZXIuaHRtbCNkZF9jb25maWciPlRoZQorICAgICAgV2ViIEFwcGxpY2F0aW9uIERlcGxveW1lbnQgRGVzY3JpcHRvcjwvYT4KKworICAgICAgPHA+W251bWJlclByb2Nlc3MuanNwXTwvcD4KKzxwcmU+Jmx0OyVAIHBhZ2UgbGFuZ3VhZ2U9JnF1b3Q7amF2YSZxdW90OyAlJmd0OworJmx0OyVAIHRhZ2xpYiB1cmk9JnF1b3Q7L1dFQi1JTkYvc3RydXRzLWxvZ2ljLnRsZCZxdW90OyBwcmVmaXg9JnF1b3Q7bG9naWMmcXVvdDsgJSZndDsKKzwvcHJlPgorPHByZT4mbHQ7IS0tIElzIHRoZSBudW1iZXIgZ3Vlc3MgcmlnaHQ/IC0tJmd0OworJmx0O2xvZ2ljOmVxdWFsIHBhcmFtZXRlcj0mcXVvdDtudW1iZXImcXVvdDsgdmFsdWU9JnF1b3Q7NyZxdW90OyZndDsKKyAgWW91IGd1ZXNzZWQgcmlnaHQhIFlvdSB3aW4gYSBoaWdoIHNwZWVkIGJsZW5kZXIhCismbHQ7L2xvZ2ljOmVxdWFsJmd0OworPC9wcmU+Cis8cHJlPiZsdDshLS0gSWYgdGhlIG51bWJlciBndWVzc2VkIHdhcyB3cm9uZyAtLSZndDsKKyZsdDtsb2dpYzpub3RFcXVhbCBwYXJhbWV0ZXI9JnF1b3Q7bnVtYmVyJnF1b3Q7IHZhbHVlPSZxdW90OzcmcXVvdDsmZ3Q7CisgICZsdDshLS0gTGVzcyBUaGFuIC0tJmd0OworICAmbHQ7bG9naWM6bGVzc1RoYW4gcGFyYW1ldGVyPSZxdW90O251bWJlciZxdW90OyB2YWx1ZT0mcXVvdDs3JnF1b3Q7Jmd0OworICAgICAgICAgQSBsaXR0bGUgaGlnaGVyLi4uCisgICZsdDsvbG9naWM6bGVzc1RoYW4mZ3Q7CisgICZsdDshLS0gR3JlYXRlciBUaGFuIC0tJmd0OworICAmbHQ7bG9naWM6Z3JlYXRlclRoYW4gcGFyYW1ldGVyPSZxdW90O251bWJlciZxdW90OyB2YWx1ZT0mcXVvdDs3JnF1b3Q7Jmd0OworICAgICAgICAgQSBsaXR0bGUgbG93ZXIuLi4KKyAgJmx0Oy9sb2dpYzpncmVhdGVyVGhhbiZndDsKKyZsdDsvbG9naWM6bm90RXF1YWwmZ3Q7Cis8L3ByZT4KKyAgICAgIDxwPkJhc2ljYWxseSwgdGhlIG51bWJlclByb2Nlc3MuanNwIHBhZ2UgdXNlcyB0aGUgZXF1YWwgdGFnIHRvIGNoZWNrIGlmCisgICAgICAgIHRoZSBndWVzcyBpcyA3LCBhbmQgaWYgc28sIHByaW50cyBvdXQgYSBjb25ncmF0dWxhdG9yeSBtZXNzYWdlLiBJZiB0aGUKKyAgICAgICAgbnVtYmVyIGlzbid0IGVxdWFsLCBzcGVjaWZpZWQgYnkgdGhlIHVzZSBvZiB0aGUgJmx0O2xvZ2ljOm5vdEVxdWFsJmd0OworICAgICAgICB0YWcsIGl0IHVzZXMgdGhlIGdyZWF0ZXJUaGFuIGFuZCBsZXNzVGhhbiB0YWdzIHRvIGNoZWNrIGlmIHRoZSBudW1iZXIKKyAgICAgICAgaXMgaGlnaGVyIG9yIGxvd2VyIHRoYW4gNywgYW5kIHByaW50cyBvdXQgYSBoaW50LiBBcyBzYWlkIGJlZm9yZSwgdGhpcworICAgICAgICBpcyBhIGhvcnJpYmx5IGRlc2lnbmVkIHNtYWxsIGFwcGxpY2F0aW9uLCB3aXRoIG5vIHZhbGlkaXR5IGNoZWNrcyBvbiB0aGUKKyAgICAgICAgbnVtYmVyIGlucHV0LCBidXQgc2hvd3MgdGhlIGJhc2ljIHVzYWdlIG9mIHRoZSBsb2dpYyBlcXVhbCB0YWdzPC9wPgorICAgICAgPHA+Rm9yIFN0cmluZyBjb21wYXJpc29ucywgdGhlIGVxdWFsIHRhZ3MgdXNlIHRoZSBqYXZhLmxhbmcuU3RyaW5nLmNvbXBhcmVUbygpCisgICAgICAgIG1ldGhvZC4gU2VlIHRoZSBqYXZhZG9jcyBvbiB0aGUgY29tcGFyZVRvKCkgbWV0aG9kIGZvciBtb3JlIGluZm9ybWF0aW9uLAorICAgICAgICBsb2NhdGVkIDxhIGhyZWY9Imh0dHA6Ly93d3cuamF2YXNvZnQuY29tL3Byb2R1Y3RzL2pkay8xLjIvZG9jcy9hcGkvamF2YS9sYW5nL1N0cmluZy5odG1sI2NvbXBhcmVUbyhqYXZhLmxhbmcuT2JqZWN0KSI+aGVyZTwvYT4uPC9wPgorICAgIDwvYmxvY2txdW90ZT4KKyAgICA8cD48dT5NYXRjaCBhbmQgUHJlc2VudCBUYWdzIChtYXRjaCwgbm90TWF0Y2gsIHByZXNlbnQsIG5vdFByZXNlbnQpPC91PjwvcD4KKyAgICA8YmxvY2txdW90ZT4KKyAgICAgIDxwPllvdSB1c2UgdGhlIG1hdGNoIHRhZ3MgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgcHJlc2VudCB0YWdzIGluIG9yZGVyCisgICAgICAgIHRvIGRvIHN1YnN0cmluZyBtYXRjaGVzLiBGb3IgYW4gZXhhbXBsZSB1c2luZyB0aGlzIHdlJ2xsIHVzZSBoZWFkZXJzLAorICAgICAgICBzcGVjaWZpY2FsbHkgdGhlICZxdW90O1JlZmVyZXImcXVvdDsgaGVhZGVyLiBUaGUgSFRUUCByZWZlcmVyIGhlYWRlciBnaXZlcworICAgICAgICB0aGUgVVJMIG9mIHRoZSBkb2N1bWVudCB0aGF0IHJlZmVycyB0byB0aGUgcmVxdWVzdGVkIFVSTC4gV2UnbGwgdXNlIHRoaXMKKyAgICAgICAgdG8gY2hlY2sgaWYgdGhlIHVzZXIgaXMgY29taW5nIGZyb20gYSBsaW5rIHNwZWNpZmllZCBieSBhIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbSI+R29vZ2xlPC9hPgorICAgICAgICBzZWFyY2gsIGFuZCBvZmZlciBhIHBlcnNvbmFsaXplZCBncmVldGluZywgZnJpZ2h0ZW5pbmcgdXNlcnMgdGhhdCBmaW5kCisgICAgICAgIG91ciBzaXRlIHRocm91Z2ggdGhlIHNlYXJjaCBlbmdpbmUgd2l0aCBvdXIgYW1hemluZyBpbnRpbWF0ZSBrbm93bGVkZ2UKKyAgICAgICAgb2YgdGhlaXIgYnJvd3NpbmcgaGFiaXRzOjwvcD4KKyAgICAgIDxwPltzbmVha3kuanNwXTwvcD4KKyAgICAgIDxwcmU+Jmx0OyVAIHBhZ2UgbGFuZ3VhZ2U9JnF1b3Q7amF2YSZxdW90OyAlJmd0OworJmx0OyVAIHRhZ2xpYiB1cmk9JnF1b3Q7L1dFQi1JTkYvc3RydXRzLWxvZ2ljLnRsZCZxdW90OyBwcmVmaXg9JnF1b3Q7bG9naWMmcXVvdDsgJSZndDsKKworCismbHQ7IS0tIENoZWNrIHRvIHNlZSBpZiB0aGUgJnF1b3Q7UmVmZXJlciZxdW90OyBoZWFkZXIgaXMgcHJlc2VudCAtLSZndDsKKyZsdDtsb2dpYzpwcmVzZW50IGhlYWRlcj0mcXVvdDtSZWZlcmVyJnF1b3Q7Jmd0OworICAmbHQ7bG9naWM6bWF0Y2ggaGVhZGVyPSZxdW90O1JlZmVyZXImcXVvdDsgdmFsdWU9JnF1b3Q7Z29vZ2xlLmNvbSZxdW90OyZndDsKKyAgICBJIHNlZSB5b3UgZm91bmQgb3VyIHNpdGUgdGhyb3VnaCBHb29nbGUuLi4gaW50ZXJlc3RpbmcuCisgICZsdDsvbG9naWM6bWF0Y2gmZ3Q7CisgICZsdDtsb2dpYzpub3RNYXRjaCBoZWFkZXI9JnF1b3Q7UmVmZXJlciZxdW90OyB2YWx1ZT0mcXVvdDtnb29nbGUuY29tJnF1b3Q7Jmd0OworICAgIFdlbGNvbWUgdG8gdGhlIHNpdGUsIHdlJ3JlIHNlY3JldGx5IGxvZ2dpbmcgd2hhdCBzaXRlIHlvdSBjYW1lIGZyb20sCisgICAgYmVjYXVzZSB3ZSdyZSBzaGFkeS4uLgorICAmbHQ7L2xvZ2ljOm5vdE1hdGNoJmd0OworJmx0Oy9sb2dpYzpwcmVzZW50Jmd0OworCismbHQ7IS0tIElmIHRoZSBoZWFkZXIgaXMgbm90IHByZXNlbnQgLS0mZ3Q7CismbHQ7bG9naWM6bm90UHJlc2VudCBoZWFkZXI9JnF1b3Q7UmVmZXJlciZxdW90OyZndDsKKyAgSGksIHdlbGNvbWUgdG8gb3VyIHNpdGUuICBQbGVhc2UgZmlsbCBvdXQgb3VyCisgICZsdDthIGhyZWY9JnF1b3Q7bm9uRXhpc3RhbnRGb3JtLmpzcCZxdW90OyZndDtGb3JtJmx0Oy9hJmd0OyBhbmQKKyAgdGVsbCB1cyB3aGVyZSB5b3UncmUgY29taW5nIGZyb20uCismbHQ7L2xvZ2ljOm5vdFByZXNlbnQmZ3Q7PC9wcmU+CisgICAgICA8cD5Ob3RlOiBBbm90aGVyIGludGVyZXN0aW5nIHVzYWdlIG9mIHRoZXNlIHRhZ3MgYW5kIGhlYWRlcnMgd291bGQgYmUgdG8KKyAgICAgICAgdXNlIHRoZSAmcXVvdDtVc2VyLUFnZW50JnF1b3Q7IGhlYWRlciB0byBkaXNwbGF5IGJyb3dzZXItc3BlY2lmaWMgamF2YXNjcmlwdC48L3A+CisgICAgPC9ibG9ja3F1b3RlPgorICA8L2Jsb2NrcXVvdGU+CisgIDxwPjxiPkNvbGxlY3Rpb24gVXRpbGl0aWVzIChpdGVyYXRlKTwvYj48L3A+CisgIDxibG9ja3F1b3RlPgorICAgIDxwPkZvciBhbiBleGFtcGxlIG9mIHVzaW5nIHRoZSAmbHQ7bG9naWM6aXRlcmF0ZSZndDsgdGFnLCB3ZSdsbCB1c2Ugb25lIG9mCisgICAgICB0aGUgcHJldmlvdXMgZXhhbXBsZXMgZ2l2ZW4sIGluIGl0J3MgZW50aXJldHkuIFRoaXMgZXhhbXBsZSB1c2VzIHRoZSAmbHQ7YmVhbjp3cml0ZSZndDsKKyAgICAgIHRhZyBmcm9tIHRoZSBCZWFuIFRhZyBMaWJyYXJ5LCBzZWUgdGhlIFVzZXIncyBHdWlkZSBvbiB0aGUgYmVhbiB0YWcgbGlicmFyeQorICAgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaXQncyB1c2FnZTo8L3A+CisgICAgPHA+W2l0ZXJhdGUuanNwXTwvcD4KKzxwcmU+Jmx0OyVAIHBhZ2UgbGFuZ3VhZ2U9JnF1b3Q7amF2YSZxdW90OyAlJmd0OworJmx0OyVAIHRhZ2xpYiB1cmk9JnF1b3Q7L1dFQi1JTkYvc3RydXRzLWJlYW4udGxkJnF1b3Q7IHByZWZpeD0mcXVvdDtiZWFuJnF1b3Q7ICUmZ3Q7CismbHQ7JUAgdGFnbGliIHVyaT0mcXVvdDsvV0VCLUlORi9zdHJ1dHMtbG9naWMudGxkJnF1b3Q7IHByZWZpeD0mcXVvdDtsb2dpYyZxdW90OyAlJmd0OworPC9wcmU+Cis8cHJlPiZsdDslCitqYXZhLnV0aWwuQXJyYXlMaXN0IGxpc3QgPSBuZXcgamF2YS51dGlsLkFycmF5TGlzdCgpOworICBsaXN0LmFkZCgmcXVvdDtGaXJzdCZxdW90Oyk7CisgIGxpc3QuYWRkKCZxdW90O1NlY29uZCZxdW90Oyk7CisgIGxpc3QuYWRkKCZxdW90O1RoaXJkJnF1b3Q7KTsKKyAgbGlzdC5hZGQoJnF1b3Q7Rm91cnRoJnF1b3Q7KTsKKyAgbGlzdC5hZGQoJnF1b3Q7RmlmdGgmcXVvdDspOworICBwYWdlQ29udGV4dC5zZXRBdHRyaWJ1dGUoJnF1b3Q7bGlzdCZxdW90OywgbGlzdCwgUGFnZUNvbnRleHQuUEFHRV9TQ09QRSk7CislJmd0OworCismbHQ7bG9naWM6aXRlcmF0ZSBpZD0mcXVvdDtteUNvbGxlY3Rpb25FbGVtZW50JnF1b3Q7IG5hbWU9JnF1b3Q7bGlzdCZxdW90OyZndDsKKyAgRWxlbWVudCBWYWx1ZTogJmx0O2JlYW46d3JpdGUgbmFtZT0mcXVvdDtteUNvbGxlY3Rpb25FbGVtZW50JnF1b3Q7IC8mZ3Q7Jmx0O2JyIC8mZ3Q7CismbHQ7L2xvZ2ljOml0ZXJhdGUmZ3Q7PC9wcmU+Cis8L2Jsb2NrcXVvdGU+Cis8L2Jsb2NrcXVvdGU+Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2UtdHJlZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMzFkZmYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS10cmVlLmh0bWwKQEAgLTAsMCArMSwxMTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYyBDbGFzcyBIaWVyYXJjaHkKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorSGllcmFyY2h5IEZvciBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYworPC9IMj4KKzwvQ0VOVEVSPgorPERMPgorPERUPjxCPlBhY2thZ2UgSGllcmFyY2hpZXM6IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctdHJlZS5odG1sIj5BbGwgUGFja2FnZXM8L0E+PC9ETD4KKzxIUj4KKzxIMj4KK0NsYXNzIEhpZXJhcmNoeQorPC9IMj4KKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEubGFuZy5PYmplY3Q8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPjxCPkl0ZXJhdGVUZWk8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCAoaW1wbGVtZW50cyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCAoaW1wbGVtZW50cyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZykKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj48Qj5JdGVyYXRlVGFnPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+PEI+Q29uZGl0aW9uYWxUYWdCYXNlPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPjxCPkNvbXBhcmVUYWdCYXNlPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwiPjxCPkVxdWFsVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIj48Qj5HcmVhdGVyRXF1YWxUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCI+PEI+R3JlYXRlclRoYW5UYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiPjxCPkxlc3NFcXVhbFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sIj48Qj5MZXNzVGhhblRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIj48Qj5Ob3RFcXVhbFRhZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+PEI+TWF0Y2hUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCI+PEI+Tm90TWF0Y2hUYWc8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+PEI+UHJlc2VudFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwiPjxCPk5vdFByZXNlbnRUYWc8L0I+PC9BPjwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwiPjxCPkZvcndhcmRUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+PEI+UmVkaXJlY3RUYWc8L0I+PC9BPjwvVUw+Cis8L1VMPgorPC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+UFJFVjwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTYxODU0YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbApAQCAtMCwwICsxLDQ2OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEdldFRhZworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJHZXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvRk9OVD4KKzxCUj4KK0NsYXNzICBHZXRUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5HZXRUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5HZXRUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK1RoaXMgaXMgdGhlIHRhZyBoYW5kbGVyIGZvciAmbHQ7dGVtcGxhdGU6Z2V0Jmd0Oywgd2hpY2ggZ2V0cyAKKyBjb250ZW50IGZyb20gdGhlIHJlcXVlc3Qgc2NvcGUgYW5kIGVpdGhlciBpbmNsdWRlcyB0aGUgY29udGVudCBvciBwcmludHMgCisgaXQsIGRlcGVuZGluZyB1cG9uIHRoZSB2YWx1ZSBvZiB0aGUgY29udGVudCdzIGRpcmVjdCBhdHRyaWJ1dGUuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+RGF2aWQgR2Vhcnk8L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5HZXRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjZmx1c2giPmZsdXNoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Nob3VsZCB3ZSBmbHVzaCBiZWZvcmUgaW5jbHVkaW5nIHRoaXMgdGV4dD88L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBjb250ZW50IHRoYXQgdGhpcyB0YWcgaW5jbHVkZXMgKG9yIHByaW50cykuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjcm9sZSI+cm9sZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcm9sZSB0aGF0IHRoZSB1c2VyIG11c3QgYmUgaW4gdG8gcmV0cmlldmUgY29udGVudC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjR2V0VGFnKCkiPkdldFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgY29udGVudCBuYW1lZCBieSBzZXROYW1lKCkgb3IgaW5jbHVkZSBpdCwgZGVwZW5kaW5nCisgb24gdGhlIGNvbnRlbnQncyBkaXJlY3QgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNnZXRGbHVzaCgpIj5nZXRGbHVzaDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgZmx1c2gtYmVmb3JlLWluY2x1ZGUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIG5hbWUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIHJvbGUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldCBtZW1iZXIgdmFsdWVzIGZvciByZXVzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNzYXZlRXhjZXB0aW9uKGphdmEubGFuZy5UaHJvd2FibGUpIj5zYXZlRXhjZXB0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO2V4Y2VwdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NhdmUgdGhlIHNwZWNpZmllZCBleGNlcHRpb24gaW4gcmVxdWVzdCBzY29wZSBpZiB0aGVyZSBpcyBub3QgYWxyZWFkeQorIG9uZSBwcmVzZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNzZXRGbHVzaChib29sZWFuKSI+c2V0Rmx1c2g8L0E+PC9CPihib29sZWFuJm5ic3A7Zmx1c2gpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGZsdXNoLWJlZm9yZS1pbmNsdWRlIHByb3BlcnR5PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgbmFtZSBhdHRyaWJ1dGU8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSByb2xlIGF0dHJpYnV0ZTwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvRW5kVGFnLCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJmbHVzaCI+PCEtLSAtLT48L0E+PEgzPgorZmx1c2g8L0gzPgorPFBSRT4KK3ByaXZhdGUgYm9vbGVhbiA8Qj5mbHVzaDwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgd2UgZmx1c2ggYmVmb3JlIGluY2x1ZGluZyB0aGlzIHRleHQ/PC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgdGhhdCB0aGlzIHRhZyBpbmNsdWRlcyAob3IgcHJpbnRzKS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJyb2xlIj48IS0tIC0tPjwvQT48SDM+Cityb2xlPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+cm9sZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcm9sZSB0aGF0IHRoZSB1c2VyIG11c3QgYmUgaW4gdG8gcmV0cmlldmUgY29udGVudC48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iR2V0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0dldFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkdldFRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ic2V0Rmx1c2goYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZsdXNoPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGbHVzaDwvQj4oYm9vbGVhbiZuYnNwO2ZsdXNoKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgZmx1c2gtYmVmb3JlLWluY2x1ZGUgcHJvcGVydHk8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mbHVzaDwvQ09ERT4gLSBUaGUgbmV3IGZsdXNoIHByb3BlcnR5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIG5hbWUgYXR0cmlidXRlPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBUaGUgbmFtZSBvZiB0aGUgY29udGVudCB0byBnZXQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRSb2xlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRSb2xlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cm9sZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHJvbGUgYXR0cmlidXRlPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBUaGUgcm9sZSB0aGUgdXNlciBtdXN0IGJlIGluIHRvIHJldHJpZXZlIGNvbnRlbnQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGbHVzaCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGbHVzaDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0Rmx1c2g8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIGZsdXNoLWJlZm9yZS1pbmNsdWRlIGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIG5hbWUgYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJvbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Um9sZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Um9sZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgcm9sZSBhdHRyaWJ1dGUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5QcmludCBjb250ZW50IG5hbWVkIGJ5IHNldE5hbWUoKSBvciBpbmNsdWRlIGl0LCBkZXBlbmRpbmcKKyBvbiB0aGUgY29udGVudCdzIGRpcmVjdCBhdHRyaWJ1dGUuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlc2V0IG1lbWJlciB2YWx1ZXMgZm9yIHJldXNlLiBUaGlzIG1ldGhvZCBjYWxscyBzdXBlci5yZWxlYXNlKCksCisgd2hpY2ggaW52b2tlcyBUYWdTdXBwb3J0LnJlbGVhc2UoKSwgd2hpY2ggdHlwaWNhbGx5IGRvZXMgbm90aGluZy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2F2ZUV4Y2VwdGlvbihqYXZhLmxhbmcuVGhyb3dhYmxlKSI+PCEtLSAtLT48L0E+PEgzPgorc2F2ZUV4Y2VwdGlvbjwvSDM+Cis8UFJFPgorcHJpdmF0ZSB2b2lkIDxCPnNhdmVFeGNlcHRpb248L0I+KGphdmEubGFuZy5UaHJvd2FibGUmbmJzcDtleGNlcHRpb24pPC9QUkU+Cis8REw+Cis8REQ+U2F2ZSB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBpbiByZXF1ZXN0IHNjb3BlIGlmIHRoZXJlIGlzIG5vdCBhbHJlYWR5Cisgb25lIHByZXNlbnQuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZXhjZXB0aW9uPC9DT0RFPiAtIEV4Y2VwdGlvbiB0byBiZSBjb25kaXRpb25hbGx5IHNhdmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkdldFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTRjYWVjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sCkBAIC0wLDAgKzEsNDM2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgSW5zZXJ0VGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbnNlcnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvRk9OVD4KKzxCUj4KK0NsYXNzICBJbnNlcnRUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5JbnNlcnRUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5JbnNlcnRUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK1RoaXMgaXMgdGhlIHRhZyBoYW5kbGVyIGZvciAmbHQ7dGVtcGxhdGU6aW5zZXJ0Jmd0Oywgd2hpY2ggaW5jbHVkZXMgCisgYSB0ZW1wbGF0ZS4gVGhlIHRhZydzIGJvZHkgY29udGVudCBjb25zaXN0cyBvZiAmbHQ7dGVtcGxhdGU6cHV0Jmd0OworIHRhZ3MsIHdoaWNoIGFyZSBhY2Nlc3NlZCBieSAmbHQ7dGVtcGxhdGU6Z2V0Jmd0OyBpbiB0aGUgdGVtcGxhdGUuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+RGF2aWQgR2Vhcnk8L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5JbnNlcnRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj5Db250ZW50TWFwPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjbWFwIj5tYXA8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RWFjaCBpbnNlcnQgdGFnIGhhcyBhIG1hcCBvZiBjb250ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI3RlbXBsYXRlIj50ZW1wbGF0ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgVVJJIG9mIHRoZSB0ZW1wbGF0ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQsIHBhcmVudCwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjSW5zZXJ0VGFnKCkiPkluc2VydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBlbmQgdGFnIGJ5IGluY2x1ZGluZyB0aGUgdGVtcGxhdGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3RhcnQgdGFnIGJ5IHB1c2hpbmcgdGhpcyB0YWcncyBtYXAgb250byB0aGUKKyBjb250ZW50IG1hcCBzdGFjay48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj5Db250ZW50TWFwPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjZ2V0Q29udGVudE1hcCgpIj5nZXRDb250ZW50TWFwPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBtYXAgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNnZXRUZW1wbGF0ZSgpIj5nZXRUZW1wbGF0ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgdGVtcGxhdGUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNwdXQoamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudCkiPnB1dDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+Q29udGVudDwvQT4mbmJzcDtjb250ZW50KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgaXMgYSBjb252ZW5pZW5jZSBmb3IgJmx0O3RlbXBsYXRlOnB1dCZndDsgdGFncyBmb3IKKyBwdXR0aW5nIGNvbnRlbnQgaW50byB0aGUgbWFwLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldCBtZW1iZXIgdmFsdWVzIGZvciByZXVzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNzYXZlRXhjZXB0aW9uKGphdmEubGFuZy5UaHJvd2FibGUpIj5zYXZlRXhjZXB0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO2V4Y2VwdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NhdmUgdGhlIHNwZWNpZmllZCBleGNlcHRpb24gaW4gcmVxdWVzdCBzY29wZSBpZiB0aGVyZSBpcyBub3QgYWxyZWFkeQorIG9uZSBwcmVzZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNzZXRUZW1wbGF0ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGVtcGxhdGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGVtcGxhdGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHRlbXBsYXRlIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJtYXAiPjwhLS0gLS0+PC9BPjxIMz4KK21hcDwvSDM+Cis8UFJFPgorcHJpdmF0ZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+IDxCPm1hcDwvQj48L1BSRT4KKzxETD4KKzxERD5FYWNoIGluc2VydCB0YWcgaGFzIGEgbWFwIG9mIGNvbnRlbnQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGVtcGxhdGUiPjwhLS0gLS0+PC9BPjxIMz4KK3RlbXBsYXRlPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+dGVtcGxhdGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIFVSSSBvZiB0aGUgdGVtcGxhdGUuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ikluc2VydFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitJbnNlcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5JbnNlcnRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InNldFRlbXBsYXRlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRUZW1wbGF0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VGVtcGxhdGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0ZW1wbGF0ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHRlbXBsYXRlIGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUZW1wbGF0ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUZW1wbGF0ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VGVtcGxhdGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIHRlbXBsYXRlIGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDb250ZW50TWFwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbnRlbnRNYXA8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+IDxCPmdldENvbnRlbnRNYXA8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIG1hcCBhdHRyaWJ1dGUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCB0YWcgYnkgcHVzaGluZyB0aGlzIHRhZydzIG1hcCBvbnRvIHRoZQorIGNvbnRlbnQgbWFwIHN0YWNrLiAKKyBTZWUgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudE1hcFN0YWNrLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgdGFnIGJ5IGluY2x1ZGluZyB0aGUgdGVtcGxhdGUuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwdXQoamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudCkiPjwhLS0gLS0+PC9BPjxIMz4KK3B1dDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHV0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPkNvbnRlbnQ8L0E+Jm5ic3A7Y29udGVudCk8L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBpcyBhIGNvbnZlbmllbmNlIGZvciAmbHQ7dGVtcGxhdGU6cHV0Jmd0OyB0YWdzIGZvcgorIHB1dHRpbmcgY29udGVudCBpbnRvIHRoZSBtYXAuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVzZXQgbWVtYmVyIHZhbHVlcyBmb3IgcmV1c2UuIFRoaXMgbWV0aG9kIGNhbGxzIHN1cGVyLnJlbGVhc2UoKSwKKyB3aGljaCBpbnZva2VzIFRhZ1N1cHBvcnQucmVsZWFzZSgpLCB3aGljaCB0eXBpY2FsbHkgZG9lcyBub3RoaW5nLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzYXZlRXhjZXB0aW9uKGphdmEubGFuZy5UaHJvd2FibGUpIj48IS0tIC0tPjwvQT48SDM+CitzYXZlRXhjZXB0aW9uPC9IMz4KKzxQUkU+Citwcml2YXRlIHZvaWQgPEI+c2F2ZUV4Y2VwdGlvbjwvQj4oamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO2V4Y2VwdGlvbik8L1BSRT4KKzxETD4KKzxERD5TYXZlIHRoZSBzcGVjaWZpZWQgZXhjZXB0aW9uIGluIHJlcXVlc3Qgc2NvcGUgaWYgdGhlcmUgaXMgbm90IGFscmVhZHkKKyBvbmUgcHJlc2VudC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5leGNlcHRpb248L0NPREU+IC0gRXhjZXB0aW9uIHRvIGJlIGNvbmRpdGlvbmFsbHkgc2F2ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikluc2VydFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNWIwOTM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sCkBAIC0wLDAgKzEsNTg3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzYgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgUHV0VGFnCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlB1dFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlPC9GT05UPgorPEJSPgorQ2xhc3MgIFB1dFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLlB1dFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5QdXRUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9ETD4KKworPFA+CitUYWcgaGFuZGxlciBmb3IgJmx0O3RlbXBsYXRlOnB1dCZndDssIHdoaWNoIHB1dHMgY29udGVudCBpbnRvIHJlcXVlc3Qgc2NvcGUuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+RGF2aWQgR2Vhcnk8L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5QdXRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjY29udGVudCI+Y29udGVudDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udGVudCdzIFVSSSAob3IgdGV4dCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjZGlyZWN0Ij5kaXJlY3Q8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGV0ZXJtaW5lcyB3aGV0aGVyIGNvbnRlbnQgaXMgaW5jbHVkZWQgKGZhbHNlKSBvciBwcmludGVkICh0cnVlKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250ZW50J3MgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNyb2xlIj5yb2xlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSByb2xlIHRoYXQgdGhlIHVzZXIgbXVzdCBiZSBpbiB0byBzdG9yZSBjb250ZW50LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0LCBwYXJlbnQsIHZhbHVlczwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0JVRkZFUkVELCBFVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuSXRlcmF0aW9uVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0FHQUlOPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjUHV0VGFnKCkiPlB1dFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBlbmQgdGFnIGJ5IHB1dHRpbmcgY29udGVudCBpbnRvIHRoZSBlbmNsb3NpbmcKKyBpbnNlcnQgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2dldEFjdHVhbENvbnRlbnQoKSI+Z2V0QWN0dWFsQ29udGVudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIGNvbnRlbnQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNnZXRBbmNlc3RvcihqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QW5jZXN0b3I8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NOYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udmVuaWVuY2UgbWV0aG9kIGZvciBsb2NhdGluZyBhbmNlc3RvciB0YWdzIGJ5IGNsYXNzIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2dldENvbnRlbnQoKSI+Z2V0Q29udGVudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgY29udGVudCBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2dldERpcmVjdCgpIj5nZXREaXJlY3Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBkaXJlY3QgYXR0cmlidXRlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBuYW1lIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSByb2xlIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNoYXNCb2R5KCkiPmhhc0JvZHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhpcyB0YWcgaGFzIGEgYm9keS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVzZXQgbWVtYmVyIHZhbHVlcyBmb3IgcmV1c2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI3NldENvbnRlbnQoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRlbnQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udGVudCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgY29udGVudCdzIFVSSSAoaWYgaXQncyB0byBiZSBpbmNsdWRlZCkgb3IgdGV4dCAoaWYgaXQncyB0bworIGJlIHByaW50ZWQpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNzZXREaXJlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldERpcmVjdDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtkaXJlY3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgZGlyZWN0IHRvIHRydWUsIGFuZCBjb250ZW50IHdpbGwgYmUgcHJpbnRlZCBkaXJlY3RseSwgaW5zdGVhZAorIG9mIGluY2x1ZGVkIChkaXJlY3QgPT0gZmFsc2UpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGNvbnRlbnQgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0luaXRCb2R5LCBkb1N0YXJ0VGFnLCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29udGVudCdzIG5hbWUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icm9sZSI+PCEtLSAtLT48L0E+PEgzPgorcm9sZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPnJvbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJvbGUgdGhhdCB0aGUgdXNlciBtdXN0IGJlIGluIHRvIHN0b3JlIGNvbnRlbnQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udGVudCI+PCEtLSAtLT48L0E+PEgzPgorY29udGVudDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbnRlbnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRlbnQncyBVUkkgKG9yIHRleHQpLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRpcmVjdCI+PCEtLSAtLT48L0E+PEgzPgorZGlyZWN0PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+ZGlyZWN0PC9CPjwvUFJFPgorPERMPgorPEREPkRldGVybWluZXMgd2hldGhlciBjb250ZW50IGlzIGluY2x1ZGVkIChmYWxzZSkgb3IgcHJpbnRlZCAodHJ1ZSkuCisgQ29udGVudCBpcyBpbmNsdWRlZCAoZmFsc2UpIGJ5IGRlZmF1bHQuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlB1dFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitQdXRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5QdXRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgY29udGVudCBuYW1lLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFJvbGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFJvbGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBUaGUgcm9sZSB0aGUgdXNlciBtdXN0IGJlIGluIHRvIHN0b3JlIGNvbnRlbnQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb250ZW50KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb250ZW50PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDb250ZW50PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udGVudCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGNvbnRlbnQncyBVUkkgKGlmIGl0J3MgdG8gYmUgaW5jbHVkZWQpIG9yIHRleHQgKGlmIGl0J3MgdG8KKyBiZSBwcmludGVkKS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXREaXJlY3QoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldERpcmVjdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RGlyZWN0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZGlyZWN0KTwvUFJFPgorPERMPgorPEREPlNldCBkaXJlY3QgdG8gdHJ1ZSwgYW5kIGNvbnRlbnQgd2lsbCBiZSBwcmludGVkIGRpcmVjdGx5LCBpbnN0ZWFkCisgb2YgaW5jbHVkZWQgKGRpcmVjdCA9PSBmYWxzZSkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBuYW1lIGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSb2xlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJvbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFJvbGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIHJvbGUgYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldENvbnRlbnQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29udGVudDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Q29udGVudDwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgY29udGVudCBhdHRyaWJ1dGUuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGlyZWN0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERpcmVjdDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RGlyZWN0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgZGlyZWN0IGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIHRhZyBieSBwdXR0aW5nIGNvbnRlbnQgaW50byB0aGUgZW5jbG9zaW5nCisgaW5zZXJ0IHRhZy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIHRhZyBpcyBub3QgZW5jbG9zZWQgYnkgCisgJmx0O3RlbXBsYXRlOmluc2VydCZndDsuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXNldCBtZW1iZXIgdmFsdWVzIGZvciByZXVzZS4gVGhpcyBtZXRob2QgY2FsbHMgc3VwZXIucmVsZWFzZSgpLAorIHdoaWNoIGludm9rZXMgVGFnU3VwcG9ydC5yZWxlYXNlKCksIHdoaWNoIHR5cGljYWxseSBkb2VzIG5vdGhpbmcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBY3R1YWxDb250ZW50KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdHVhbENvbnRlbnQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBY3R1YWxDb250ZW50PC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBjb250ZW50IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJoYXNCb2R5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2hhc0JvZHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgYm9vbGVhbiA8Qj5oYXNCb2R5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoaXMgdGFnIGhhcyBhIGJvZHkuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QW5jZXN0b3IoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFuY2VzdG9yPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0IDxCPmdldEFuY2VzdG9yPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NOYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db252ZW5pZW5jZSBtZXRob2QgZm9yIGxvY2F0aW5nIGFuY2VzdG9yIHRhZ3MgYnkgY2xhc3MgbmFtZS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jbGFzc05hbWU8L0NPREU+IC0gVGhlIG5hbWUgb2YgdGhlIGFuY2VzdG9yIGNsYXNzLjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQdXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2UtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzc4ZmM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2UtZnJhbWUuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvQT48L0ZPTlQ+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitDbGFzc2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iR2V0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+R2V0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0iSW5zZXJ0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SW5zZXJ0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0iUHV0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UHV0VGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2Utc3VtbWFyeS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2Utc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4MzRkOTYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKQEAgLTAsMCArMSwyMzYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlCis8L0gyPgorCisgICAgVGhlICJzdHJ1dHMtdGVtcGxhdGUiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluIGNyZWF0aW5nIGR5bmFtaWMKKyAgICBKU1AgdGVtcGxhdGVzIGZvciBwYWdlcyB3aGljaCBzaGFyZSBhIGNvbW1vbiBmb3JtYXQuCis8UD4KKzxCPlNlZTogPC9CPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEEgSFJFRj0iI3BhY2thZ2VfZGVzY3JpcHRpb24iPjxCPkRlc2NyaXB0aW9uPC9CPjwvQT4KKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkdldFRhZy5odG1sIj5HZXRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+VGhpcyBpcyB0aGUgdGFnIGhhbmRsZXIgZm9yICZsdDt0ZW1wbGF0ZTpnZXQmZ3Q7LCB3aGljaCBnZXRzIAorIGNvbnRlbnQgZnJvbSB0aGUgcmVxdWVzdCBzY29wZSBhbmQgZWl0aGVyIGluY2x1ZGVzIHRoZSBjb250ZW50IG9yIHByaW50cyAKKyBpdCwgZGVwZW5kaW5nIHVwb24gdGhlIHZhbHVlIG9mIHRoZSBjb250ZW50J3MgZGlyZWN0IGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ikluc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+VGhpcyBpcyB0aGUgdGFnIGhhbmRsZXIgZm9yICZsdDt0ZW1wbGF0ZTppbnNlcnQmZ3Q7LCB3aGljaCBpbmNsdWRlcyAKKyBhIHRlbXBsYXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT48L0I+PC9URD4KKzxURD5UYWcgaGFuZGxlciBmb3IgJmx0O3RlbXBsYXRlOnB1dCZndDssIHdoaWNoIHB1dHMgY29udGVudCBpbnRvIHJlcXVlc3Qgc2NvcGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEEgTkFNRT0icGFja2FnZV9kZXNjcmlwdGlvbiI+PCEtLSAtLT48L0E+PEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUgRGVzY3JpcHRpb24KKzwvSDI+CisKKzxQPgorPHA+CisgICAgVGhlICJzdHJ1dHMtdGVtcGxhdGUiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluIGNyZWF0aW5nIGR5bmFtaWMKKyAgICBKU1AgdGVtcGxhdGVzIGZvciBwYWdlcyB3aGljaCBzaGFyZSBhIGNvbW1vbiBmb3JtYXQuIFRoZXNlIHRlbXBsYXRlcyBhcmUgYmVzdCB1c2VkCisgICAgd2hlbiBpdCBpcyBsaWtlbHkgdGhhdCBhIGxheW91dCBzaGFyZWQgYnkgc2V2ZXJhbCBwYWdlcyBpbiB5b3VyIGFwcGxpY2F0aW9uIHdpbGwKKyAgICBjaGFuZ2UuIFRoZSBmdW5jdGlvbmFsaXR5IHByb3ZpZGVkIGJ5IHRoZXNlIHRhZ3MgaXMgc2ltaWxhciB0byB3aGF0IGNhbiBiZQorICAgIGFjaGlldmVkIHVzaW5nIHN0YW5kYXJkIEpTUCBpbmNsdWRlIGRpcmVjdGl2ZSwgYnV0IGFyZSBkeW5hbWljIHJhdGhlciB0aGFuIHN0YXRpYy4KKyAgPC9wPgorICA8YSBuYW1lPSJkb2MuRGVzY3JpcHRpb24iPjwvYT4KKworICA8cD4KKworPGRpdiBhbGlnbj0iY2VudGVyIj4gPGEgaHJlZj0iI2RvYy5JbnRyb2R1Y3Rpb24iPltJbnRyb2R1Y3Rpb25dPC9hPiA8YSBocmVmPSIjZG9jLkZ1bmN0aW9uYWxpdHkiPltUZW1wbGF0ZQorICBGdW5jdGlvbmFsaXR5XTwvYT4gPGEgaHJlZj0iI2RvYy5Qcm9wZXJ0aWVzIj5bVGVtcGxhdGUgUHJvcGVydGllc108L2E+IDxhIGhyZWY9IiNkb2MuRXhhbXBsZXMiPltUZW1wbGF0ZQorICBFeGFtcGxlc108L2E+IDwvZGl2PgorICA8cD48L3A+CisKKyAgPGhyIC8+Cis8YSBuYW1lPSJkb2MuSW50cm8iPjwvYT4KKzxoMz5JbnRyb2R1Y3Rpb248YSBuYW1lPSJkb2MuSW50cm9kdWN0aW9uIj48L2E+PC9oMz4KKworICA8cD4KKyAgICBUaGUgVGVtcGxhdGUgbGlicmFyeSBzdXBwbGllcyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBmb3IgY3JlYXRpbmcgZHluYW1pYyBKU1AgdGVtcGxhdGVzCisgICAgZm9yIHBhZ2VzIHdoaWNoIHNoYXJlIGEgY29tbW9uIGZvcm1hdC4KKyAgPC9wPgorCisKKzxhIG5hbWU9ImRvYy5GdW5jdGlvbmFsaXR5Ij48L2E+Cis8aDM+VGVtcGxhdGUgVGFnIEZ1bmN0aW9uYWxpdHk8YSBuYW1lPSJkb2MuRnVuY3Rpb25hbGl0eSI+PC9hPjwvaDM+Cis8cD5FYWNoIG9mIHRoZSB0aHJlZSB0ZW1wbGF0ZSB0YWdzIGhhcyBhIHNwZWNpZmljLCBpbnRlcmVsYXRlZCBmdW5jdGlvbjo8L3A+Cis8cD4KKzx1bD4KKyAgPGxpPjxiPjxhIGhyZWY9Ii9zdHJ1dHMtdGVtcGxhdGUuaHRtbCNnZXQiPmdldDwvYT48L2I+IC0gUmV0cmlldmVzIGNvbnRlbnQgZnJvbSBhIHJlcXVlc3Qgc2NvcGUgYmVhbiwgZm9yIHVzZSBpbiB0aGUgdGVtcGxhdGUgbGF5b3V0LjwvbGk+CisgIDxsaT48Yj48YSBocmVmPSIvc3RydXRzLXRlbXBsYXRlLmh0bWwjaW5zZXJ0Ij5pbnNlcnQ8L2E+PC9iPiAtIFJldHJpZXZlcyAob3IgaW5jbHVkZXMpIHRoZSBzcGVjaWZpZWQgdGVtcGxhdGUgZmlsZSwgYW5kIHRoZW4gaW5zZXJ0cyB0aGUgc3BlY2lmaWVkIGNvbnRlbnQgaW50byB0aGUgdGVtcGxhdGUncyBsYXlvdXQuIEJ5IGNoYW5naW5nIHRoZSBsYXlvdXQgZGVmaW5lZCBpbiB0aGUgdGVtcGxhdGUgZmlsZSwgYW55IG90aGVyIGZpbGUgdGhhdCBpbnNlcnRzIHRoZSB0ZW1wbGF0ZSB3aWxsIGF1dG9tYXRpY2FsbHkgdXNlIHRoZSBuZXcgbGF5b3V0LjwvbGk+CisgIDxsaT48Yj48YSBocmVmPSIvc3RydXRzLXRlbXBsYXRlLmh0bWwjcHV0Ij5wdXQ8L2E+PC9iPiAtIENyZWF0ZXMgYSByZXF1ZXN0IHNjb3BlIGJlYW4gdGhhdCBzcGVjaWZpZXMgdGhlIGNvbnRlbnQgdG8gYmUgdXNlZCBieSB0aGUgZ2V0IHRhZy4gQ29udGVudCBjYW4gYmUgcHJpbnRlZCBkaXJlY3RseSBvciBpbmNsdWRlZCBmcm9tIGEgSlNQIG9yIEhUTUwgZmlsZS48L2xpPgorPC91bD4KKzwvcD4KKworPGgzPlRlbXBsYXRlIFRhZyBQcm9wZXJ0aWVzPGEgbmFtZT0iZG9jLlByb3BlcnRpZXMiPjwvYT48L2gzPgorCis8cD5UaGUgdGhyZWUgdGVtcGxhdGUgdGFncyB1c2UgdmVyeSBzaW1wbGUgYXR0cmlidXRlcyA6PC9wPgorPGJsb2NrcXVvdGU+CisgIDxwPjxiPmdldDwvYj4gLSBSZXF1aXJlcyBhIHNpbmdsZSBwcm9wZXJ0eSwgdGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgdG8gYmUgaW5zZXJ0ZWQuIFRoaXMgdGFnIGlzIHVzZWQgaW4gdGhlIHRlbXBsYXRlIGZpbGUgdG8gaW5kaWNhdGUgd2hlcmUgaW4gdGhlIGxheW91dCB0byBpbnNlcnQgdGhlIGNvbnRlbnQuIFRoaXMgbmFtZSBtYXRjaGVzIHRoZSBuYW1lIHByb3BlcnR5IHVzZWQgYnkgYSBwdXQgdGFnLjwvcD4KKyAgPHA+PGI+aW5zZXJ0PC9iPiAtIFJlcXVpcmVzIGEgc2luZ2xlIHByb3BlcnR5LCB0aGUgbmFtZSBvZiB0aGUgdGVtcGxhdGUuIFRoaXMgdGFnIGlzIHRoZSBwYXJlbnQgdG8gb25lIG9yIG1vcmUgcHV0IHRhZ3MuIFRoZSBwdXQgdGFncyBpbmRpY2F0ZSB0aGUgY29udGVudCB0byBiZSBpbnNlcnRlZCBpbnRvIHRoZSB0ZW1wbGF0ZS4gVGhlIGxheW91dCBvZiB0aGUgY29udGVudCBpcyBkZXRlcm1pbmVkIGJ5IGdldCB0YWdzIHBsYWNlZCBpbiB0aGUgdGVtcGxhdGUuPC9wPgorICA8cD48Yj5wdXQ8L2I+IC0gUmVxdWlyZXMgYSBuYW1lIHByb3BlcnR5LCB3aGljaCBzaG91bGQgbWF0Y2ggYSBuYW1lIHVzZWQgaW4gdGhlIHRlbXBsYXRlIGZpbGUuIFRoZSBjb250ZW50IHByb3BlcnR5IGluZGljYXRlcyB0aGUgc291cmNlIG9mIHRoZSBjb250ZW50LiBUaGUgb3B0aW9uYWwgZGlyZWN0IGF0dHJpYnV0ZSBpbmRpY2F0ZXMgd2hldGhlciB0aGUgY29udGVudCBzaG91bGQgYmUgaW5jbHVkZWQgb3IgcHJpbnRlZCBkaXJlY3RseSAoYXMgYSBsaXRlcmFsIHN0cmluZykuIFRoZSBkZWZhdWx0IGlzIGZhbHNlLCBtZWFuaW5nIGNvbnRlbnQgaXMgaW5jbHVkZWQuPC9wPgorCisKKzxhIG5hbWU9ImRvYy5FeGFtcGxlcyI+PC9hPgorPGgzPlRlbXBsYXRlIFRhZyBFeGFtcGxlczwvaDM+CisKKzxwIGFsaWduPSJjZW50ZXIiPjxiPkEgc2FtcGxlIHRlbXBsYXRlIGZpbGU8L2I+PC9wPgorPGJsb2NrcXVvdGU+Cis8aHI+Cis8cHJlPgorJmx0OyVAIHRhZ2xpYiB1cmk9Jy9XRUItSU5GL3RsZHMvc3RydXRzLXRlbXBsYXRlLnRsZCcgcHJlZml4PSd0ZW1wbGF0ZScgJT4KKyZsdDtodG1sPiZsdDtoZWFkPiZsdDt0aXRsZT4mbHQ7dGVtcGxhdGU6Z2V0IG5hbWU9J3RpdGxlJy8+Jmx0Oy90aXRsZT4mbHQ7L2hlYWQ+PGJyPiZsdDtib2R5IGJhY2tncm91bmQ9J2dyYXBoaWNzL2JsdWVBbmRXaGl0ZUJhY2tncm91bmQuZ2lmJz4KKyZsdDt0YWJsZT48YnI+ICAmbHQ7dHIgdmFsaWduPSd0b3AnPiZsdDt0ZD4mbHQ7dGVtcGxhdGU6Z2V0IG5hbWU9J3NpZGViYXInLz4mbHQ7L3RkPjxicj4gICAgICAmbHQ7dGQ+Jmx0O3RhYmxlPjxicj4gICAgICAgICAgICAmbHQ7dHI+Jmx0O3RkPiZsdDt0ZW1wbGF0ZTpnZXQgbmFtZT0naGVhZGVyJy8+Jmx0Oy90ZD4mbHQ7L3RyPjxicj4gICAgICAgICAgICAmbHQ7dHI+Jmx0O3RkPiZsdDt0ZW1wbGF0ZTpnZXQgbmFtZT0nY29udGVudCcvPiZsdDsvdGQ+Jmx0Oy90cj48YnI+ICAgICAgICAgICAgJmx0O3RyPiZsdDt0ZD4mbHQ7dGVtcGxhdGU6Z2V0IG5hbWU9J2Zvb3RlcicvPiZsdDsvdGQ+Jmx0Oy90cj48YnI+ICAgICAgICAgICZsdDsvdGFibGU+PGJyPiAgICAgICZsdDsvdGQ+PGJyPiAgICZsdDsvdHI+CismbHQ7L3RhYmxlPjxicj4mbHQ7L2JvZHk+Jmx0Oy9odG1sPgorJmx0OyU8YnI+Lyo8YnI+ImNoYXB0ZXJUZW1wbGF0ZS5qc3AiCitEaXNwbGF5IGEgInNpZGViYXIiIGluIGEgY29sdW1uIGFsb25nIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIHBhZ2UuPGJyPkRpc3BsYXkgYSAiaGVhZGVyIiBvdmVyIHRoZSByaWdodCBjb2x1bW4uPGJyPkRpc3BsYXkgdGhlIHBhZ2UgImNvbnRlbnQiIGJlbG93IHRoZSBoZWFkZXIuPGJyPkRpc3BsYXkgYSAiZm9vdGVyIiBhdCBiZWxvdyB0aGUgY29udGVudC48YnI+SWYgd2UgY2hhbmdlIHRoZSBsYXlvdXQgb2YgdGhlIGVsZW1lbnRzIG9uIHRoaXMgcGFnZSwgYWxsIHBhZ2VzPGJyPmluc2VydGluZyB0aGlzIHBhZ2Ugd2lsbCBhbHNvIGNoYW5nZSB0byB1c2UgdGhlIG5ldyBsYXlvdXQuPGJyPiovPGJyPiU+Cis8L3ByZT4KKzxocj4KKzwvYmxvY2txdW90ZT4KKzxwIGFsaWduPSJjZW50ZXIiPjxiPkEgc2FtcGxlIEpTUCB1c2luZyB0aGUgdGVtcGxhdGU8L2I+PC9wPgorPGJsb2NrcXVvdGU+Cis8aHI+Cis8cHJlPgorJmx0OyVAIHRhZ2xpYiB1cmk9Jy9XRUItSU5GL3RsZHMvc3RydXRzLXRlbXBsYXRlLnRsZCcgcHJlZml4PSd0ZW1wbGF0ZScgJT4KKyZsdDt0ZW1wbGF0ZTppbnNlcnQgdGVtcGxhdGU9Jy9jaGFwdGVyVGVtcGxhdGUuanNwJz48YnI+ICAmbHQ7dGVtcGxhdGU6cHV0IG5hbWU9J3RpdGxlJyBjb250ZW50PSdUZW1wbGF0ZXMnIGRpcmVjdD0ndHJ1ZScvPjxicj4gICZsdDt0ZW1wbGF0ZTpwdXQgbmFtZT0naGVhZGVyJyBjb250ZW50PScvaGVhZGVyLmh0bWwnIC8+PGJyPiAgJmx0O3RlbXBsYXRlOnB1dCBuYW1lPSdzaWRlYmFyJyBjb250ZW50PScvc2lkZWJhci5qc3AnIC8+PGJyPiAgJmx0O3RlbXBsYXRlOnB1dCBuYW1lPSdjb250ZW50JyBjb250ZW50PScvaW50cm9kdWN0aW9uLmh0bWwnLz48YnI+ICAmbHQ7dGVtcGxhdGU6cHV0IG5hbWU9J2Zvb3RlcicgY29udGVudD0nL2Zvb3Rlci5odG1sJyAvPgorJmx0Oy90ZW1wbGF0ZTppbnNlcnQ+CismbHQ7JTxicj4vKjxicj4iaW50cm9kdWN0aW9uLmpzcCIKK1NwZWNpZnkgdGVtcGxhdGUgZm9yIHRoaXMgcGFnZSAoY2hhcHRlclRlbXBsYXRlLmpzcCkuPGJyPlRoZSBjaGFwdGVyVGVtcGxhdGUuanNwIGRlZmluZXMgdGhlIGxheW91dCBwb3NpdGlvbnMgZm9yIGZpdmU8YnI+ZWxlbWVudHM6IHRpdGxlLCBoZWFkZXIsIHNpZGViYXIsIGNvbnRlbnQsIGFuZCBmb290ZXIuPGJyPlNwZWNpZnkgdGhlIHNvdXJjZSBmaWxlIChodG1sIG9yIGpzcCkgZm9yIGVhY2ggZWxlbWVudC48YnI+Ki88YnI+JT4KKzwvcHJlPgorPGhyPgorPC9ibG9ja3F1b3RlPgorPHAgYWxpZ249ImNlbnRlciI+PGI+QSBzYW1wbGUgSFRNTCBjb250ZW50IGZpbGUgKCJoZWFkZXIuaHRtbCIpIHVzZWQgYnkgImludHJvZHVjdGlvbi5qc3AiLCBhbmQgb3RoZXJzLjwvYj48L3A+Cis8YmxvY2txdW90ZT4KKzxocj4KKzxwcmU+CismbHQ7dGFibGU+PGJyPiZsdDt0cj48YnI+Jmx0O3RkPiZsdDtpbWcgc3JjPSdncmFwaGljcy9qYXZhLmdpZicvPiZsdDsvdGQ+PGJyPiZsdDt0ZD4mbHQ7aW1nIHNyYz0nZ3JhcGhpY3MvdGVtcGxhdGVzLmdpZicvPiZsdDsvdGQ+PGJyPiZsdDsvdHI+PGJyPiZsdDsvdGFibGU+Cis8L3ByZT4KKzxocj4KKzwvYmxvY2txdW90ZT4KKzxwIGFsaWduPSJjZW50ZXIiPjxiPkEgc2FtcGxlIEpTUCBjb250ZW50IGZpbGUgKCJzaWRlYmFyLmpzcCIpIHVzZWQgYnkgImludHJvZHVjdGlvbi5qc3AiLCBhbmQgb3RoZXJzLjwvYj48L3A+Cis8YmxvY2txdW90ZT4KKzxocj4KKzxwcmU+CismbHQ7Zm9udCBzaXplPSc1Jz4mbHQ7YSBuYW1lPSJ0b3AiPlRvcGljcyZsdDsvYT4mbHQ7L2ZvbnQ+Jmx0O3A+PGJyPiZsdDt0YWJsZSB3aWR0aD0nMTQ1Jz48YnI+ICAgICZsdDt0cj4mbHQ7dGQ+Jmx0O2EgaHJlZj0naW50cm9kdWN0aW9uLmpzcCc+PGJyPiAgICAgICAgSW50cm9kdWN0aW9uICZsdDsvYT4mbHQ7L3RkPiZsdDsvdHI+PGJyPgorICAgICZsdDt0cj4mbHQ7dGQ+Jmx0O2EgaHJlZj0ndXNpbmcuanNwJz48YnI+ICAgICAgICBVc2luZyBUZW1wbGF0ZXMgJmx0Oy9hPiZsdDsvdGQ+Jmx0Oy90cj48YnI+CisgICAgJmx0O3RyPiZsdDt0ZD4mbHQ7YSBocmVmPSdvcHRpb25hbC5qc3AnPjxicj4gICAgICAgIE9wdGlvbmFsIENvbnRlbnQgJmx0Oy9hPiZsdDsvdGQ+Jmx0Oy90cj48YnI+ICAgICZsdDt0cj4mbHQ7dGQ+Jmx0O2EgaHJlZj0nbW9yZS5qc3AnPjxicj4gICAgICAgIC4uLiBhbmQgbW9yZSAuLi4mbHQ7L2E+Jmx0Oy90ZD4mbHQ7L3RyPjxicj4gICZsdDsvdGFibGU+Jmx0Oy9wPjxicj4KKyZsdDslPGJyPi8qPGJyPlNwZWNpZnkgbmF2aWdhdGlvbmFsIGxpbmtzIGZvciB0aGlzIGFwcGxpY2F0aW9uLjxicj4qLzxicj4lPgorPC9wcmU+Cis8aHI+Cis8L2Jsb2NrcXVvdGU+Cis8cCBhbGlnbj0iY2VudGVyIj48Yj5BIHNhbXBsZSBIVE1MIGNvbnRlbnQgZmlsZSB1c2VkIGJ5ICJpbnRyb2R1Y3Rpb24uanNwIiBvbmx5LjwvYj48L3A+Cis8YmxvY2txdW90ZT4KKzxocj4KKzxwcmU+CismbHQ7aHRtbD48YnI+Jmx0O2hlYWQ+PGJyPiZsdDtsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iY3NzL3RlbXBsYXRlcy5jc3MiIDxicj5jaGFyc2V0PSJJU08tODg1OS0xIiB0eXBlPSJ0ZXh0L2NzcyI+PGJyPiZsdDsvaGVhZD48YnI+Jmx0O2JvZHk+CismbHQ7aDMgY2xhc3M9IkNoYXBUaXRsZSI+SW50cm9kdWN0aW9uJmx0Oy9oMz48YnI+Jmx0O3AgY2xhc3M9IlBhcmFncmFwaCI+V2luZG93IHRvb2xraXRzIHR5cGljYWxseSBwcm92aWRlIGEgbGF5b3V0IG1lY2hhbmlzbQorJmx0IC4uLiAvPgorPGhyPgorPC9wcmU+Cis8L2Jsb2NrcXVvdGU+Cis8IS0tCis8aDM+T3B0aW9uYWwgQ29udGVudDwvaDM+Cis8cD5BbGwgY29udGVudCBpcyBvcHRpb25hbC4gSWYgYSBzb3VyY2UgcGFnZSBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBjb250ZW50IGZvciBhbiBlbGVtZW50IGluIHRoZSB0ZW1wbGF0ZSwgdGhhdCBlbGVtZW50IGlzIHNpbXBseSBpZ25vcmVkLiBUaGlzIGNhbiBtYWtlIHVzaW5nIHRlbXBsYXRlcyBtb3JlIGZsZXhpYmxlLCBzaW5jZSB5b3UgY2FuIHVzZSB0aGUgc2FtZSB0ZW1wbGF0ZSBmb3IgbW9yZSB0aGFuIG9uZSBwYWdlLCBzaW1wbHkgYnkgb21taXR0aW5nIG9yIHNwZWNpZnlpbmcgYSBjb250ZW50IGVsZW1lbnQuIEhvd2V2ZXIsIHRoaXMgZmVhdHVyZSBhbHNvIG1lYW5zIHRoYXQgYSBtaXNzcGVsbGVkIG5hbWUgY291bGQgbGVhZCB0aGUgdGVtcGxhdGUgdG8gcXVpZXRseSBpZ25vcmUgY29udGVudCB5b3UgbWVhbnQgdG8gaW5jbHVkZS48L3A+CistLT4KKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvcGFja2FnZS10cmVlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvcGFja2FnZS10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVhZmZmNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLXRyZWUuaHRtbApAQCAtMCwwICsxLDEwOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlIENsYXNzIEhpZXJhcmNoeQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+CitIaWVyYXJjaHkgRm9yIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy10cmVlLmh0bWwiPkFsbCBQYWNrYWdlczwvQT48L0RMPgorPEhSPgorPEgyPgorQ2xhc3MgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLk9iamVjdDxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+PEI+UHV0VGFnPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCI+PEI+R2V0VGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj48Qj5JbnNlcnRUYWc8L0I+PC9BPjwvVUw+Cis8L1VMPgorPC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYwMDZlNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbApAQCAtMCwwICsxLDMzMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIENvbnRlbnQKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29udGVudC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgQ29udGVudDwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnQ8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Db250ZW50PC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorQSB1dGlsaXR5IGZpbGUgZm9yIHRlbXBsYXRlcy4KKyAgPHA+CisgIFRoaXMgcmVwcmVzZW50cyB0ZW1wbGF0ZSBjb250ZW50LCB3aGljaCBpcyBpbmNsdWRlZCBieSB0ZW1wbGF0ZXMuIAorICBUZW1wbGF0ZXMgY2FuIGFsc28gdHJlYXQgY29udGVudCBhcyBwbGFpbiB0ZXh0IGFuZCBwcmludCBpdCB0byB0aGUKKyAgaW1wbGljaXQgb3V0IHZhcmlhYmxlLgorIAorICBUaGlzIHNpbXBsZSBjbGFzcyBtYWludGFpbiB0d28gcHJvcGVydGllczoKKyAgPHVsPgorICA8bGk+PGk+Y29udGVudDwvaT46IEEgc3RyaW5nIHJlcHJlc2VudGluZyBlaXRoZXIgYSBVUkkgb3IgdGV4dC48L2xpPgorICA8bGk+PGk+ZGlyZWN0PC9pPjogSWYgdHJ1ZSwgY29udGVudCBpcyBwcmludGVkOyBvdGhlcndpc2UgY29udGVudCBpcyAKKyAgaW5jbHVkZWQgKGRlZmF1bHQgaXMgZmFsc2UpLjwvbGk+CisgIDwvdWw+CisgIDwvcD4KKzxQPgorPERMPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5EYXZpZCBHZWFyeTwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudCI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCNjb250ZW50Ij5jb250ZW50PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RlbXBsYXRlcyByZWdhcmQgdGhpcyBhcyBjb250ZW50IHRvIGJlIGVpdGhlciBpbmNsdWRlZCBvciAKKyAgcHJpbnRlZCBkaXJlY3RseS48YnI+IFRoaXMgaXMgYSBibGFuayBmaW5hbCB0aGF0IGlzCisgIHNldCBhdCBjb25zdHJ1Y3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwjZGlyZWN0Ij5kaXJlY3Q8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVwcmVzZW50cyBhIGJvb2xlYW47IGlmIHRydWUsIGNvbnRlbnQgaXMgaW5jbHVkZWQsIG90aGVyd2lzZQorICAgY29udGVudCBpcyBwcmludGVkLjxicj5UaGlzIGlzIGEgYmxhbmsgZmluYWwgdGhhdCBpcyBzZXQgYXQgCisgIGNvbnN0cnVjdGlvbi48YnI+VGhpcyBpcyBhIHN0cmluZyBpbnN0ZWFkIG9mIGEgYm9vbGVhbiBhcworICBhIGNvbnZlbmllbmNlIGZvciB0aGUgdGFncywgd2hvc2UgY29ycmVzcG9uZGluZyBhdHRyaWJ1dGUKKyAgaXMgYSBzdHJpbmcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwjQ29udGVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+Q29udGVudDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250ZW50LAorICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZGlyZWN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG9ubHkgY29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwjZ2V0Q29udGVudCgpIj5nZXRDb250ZW50PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGNvbnRlbnQ8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwjaXNEaXJlY3QoKSI+aXNEaXJlY3Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJcyBjb250ZW50IHRvIGJlIHByaW50ZWQgZGlyZWN0bHkgKGlzRGlyZWN0KCkgPT0gdHJ1ZSkgPGJyPgorIGluc3RlYWQgb2YgaW5jbHVkZWQgKGlzRGlyZWN0KCkgPT0gZmFsc2UpPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvbnRlbnQ8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY29udGVudCI+PCEtLSAtLT48L0E+PEgzPgorY29udGVudDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbnRlbnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGVtcGxhdGVzIHJlZ2FyZCB0aGlzIGFzIGNvbnRlbnQgdG8gYmUgZWl0aGVyIGluY2x1ZGVkIG9yIAorICBwcmludGVkIGRpcmVjdGx5Ljxicj4gVGhpcyBpcyBhIGJsYW5rIGZpbmFsIHRoYXQgaXMKKyAgc2V0IGF0IGNvbnN0cnVjdGlvbi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJkaXJlY3QiPjwhLS0gLS0+PC9BPjxIMz4KK2RpcmVjdDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPmRpcmVjdDwvQj48L1BSRT4KKzxETD4KKzxERD5SZXByZXNlbnRzIGEgYm9vbGVhbjsgaWYgdHJ1ZSwgY29udGVudCBpcyBpbmNsdWRlZCwgb3RoZXJ3aXNlCisgICBjb250ZW50IGlzIHByaW50ZWQuPGJyPlRoaXMgaXMgYSBibGFuayBmaW5hbCB0aGF0IGlzIHNldCBhdCAKKyAgY29uc3RydWN0aW9uLjxicj5UaGlzIGlzIGEgc3RyaW5nIGluc3RlYWQgb2YgYSBib29sZWFuIGFzCisgIGEgY29udmVuaWVuY2UgZm9yIHRoZSB0YWdzLCB3aG9zZSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZQorICBpcyBhIHN0cmluZy48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29udGVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorQ29udGVudDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbnRlbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250ZW50LAorICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2RpcmVjdCk8L1BSRT4KKzxETD4KKzxERD5UaGUgb25seSBjb25zdHJ1Y3Rvci48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb250ZW50PC9DT0RFPiAtIFRoZSBjb250ZW50J3MgVVJJPEREPjxDT0RFPmRpcmVjdDwvQ09ERT4gLSBJcyBjb250ZW50IHByaW50ZWQgZGlyZWN0bHkgKHRydWUpIG9yIGluY2x1ZGVkIChmYWxzZSk/PC9ETD4KKzwvREQ+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRDb250ZW50KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbnRlbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldENvbnRlbnQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gY29udGVudDxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzRGlyZWN0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzRGlyZWN0PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc0RpcmVjdDwvQj4oKTwvUFJFPgorPERMPgorPEREPklzIGNvbnRlbnQgdG8gYmUgcHJpbnRlZCBkaXJlY3RseSAoaXNEaXJlY3QoKSA9PSB0cnVlKSA8YnI+CisgaW5zdGVhZCBvZiBpbmNsdWRlZCAoaXNEaXJlY3QoKSA9PSBmYWxzZSk/PEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9TdHJpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgordG9TdHJpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU3RyaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29udGVudDxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+dG9TdHJpbmc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEubGFuZy5PYmplY3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbnRlbnQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJhZWViMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbApAQCAtMCwwICsxLDI3MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIENvbnRlbnRNYXAKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29udGVudE1hcC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgQ29udGVudE1hcDwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnRNYXA8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Db250ZW50TWFwPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorQSBzaW1wbGUgZmFjYWRlIGZvciBhIGhhc2ggbWFwLiBUaGlzIGNsYXNzIHJlc3RyaWN0cyBvcGVyYXRpb25zCisgdGhhdCBjYW4gYmUgcGVyZm9ybWVkIG9uIGEgaGFzaCBtYXAgb2YgY29udGVudHMuCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+RGF2aWQgR2Vhcnk8L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnRNYXAiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS51dGlsLkhhc2hNYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sI21hcCI+bWFwPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtYXAuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwjQ29udGVudE1hcCgpIj5Db250ZW50TWFwPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXhwbGljaXRseSBkZWNsYXJlIGEgZG8tbm90aGluZywgbm8tYXJnIGNvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+Q29udGVudDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sI2dldChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBjb250ZW50IGFzc29jaWF0ZWQgd2l0aCBuYW1lPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sI3B1dChqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50KSI+cHV0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj5Db250ZW50PC9BPiZuYnNwO2NvbnRlbnQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQdXQgbmFtZWQgY29udGVudCBpbnRvIG1hcC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1hcCI+PCEtLSAtLT48L0E+PEgzPgorbWFwPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEudXRpbC5IYXNoTWFwIDxCPm1hcDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWFwLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJDb250ZW50TWFwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0NvbnRlbnRNYXA8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Db250ZW50TWFwPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+RXhwbGljaXRseSBkZWNsYXJlIGEgZG8tbm90aGluZywgbm8tYXJnIGNvbnN0cnVjdG9yLjwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InB1dChqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50KSI+PCEtLSAtLT48L0E+PEgzPgorcHV0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wdXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+Q29udGVudDwvQT4mbmJzcDtjb250ZW50KTwvUFJFPgorPERMPgorPEREPlB1dCBuYW1lZCBjb250ZW50IGludG8gbWFwLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gVGhlIGNvbnRlbnQncyBuYW1lPEREPjxDT0RFPmNvbnRlbnQ8L0NPREU+IC0gVGhlIGNvbnRlbnQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj5Db250ZW50PC9BPiA8Qj5nZXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIGNvbnRlbnQgYXNzb2NpYXRlZCB3aXRoIG5hbWU8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbnRlbnRNYXAuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZmNiOGUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbApAQCAtMCwwICsxLDI3OSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM2IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIENvbnRlbnRNYXBTdGFjaworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb250ZW50TWFwU3RhY2suaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsPC9GT05UPgorPEJSPgorQ2xhc3MgIENvbnRlbnRNYXBTdGFjazwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnRNYXBTdGFjazwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Db250ZW50TWFwU3RhY2s8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDwvREw+CisKKzxQPgorVGhpcyBjbGFzcyBwcm92aWRlcyBhY2Nlc3MgdG8gYSBzdGFjayBvZiBDb250ZW50TWFwcyBpbiByZXF1ZXN0IHNjb3BlCisgdGhyb3VnaCBzdGF0aWMgbWV0aG9kcy4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5EYXZpZCBHZWFyeTwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCNDb250ZW50TWFwU3RhY2soKSI+Q29udGVudE1hcFN0YWNrPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Tm8gaW5zdGFudGlhdGlvbnMgb2YgdGhpcyBjbGFzcyBhcmUgYWxsb3dlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLnV0aWwuU3RhY2s8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcFN0YWNrLmh0bWwjZ2V0U3RhY2soamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj5nZXRTdGFjazwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhlIHN0YWNrLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sI3BlZWsoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj5wZWVrPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BlZWsgYXQgdGhlIG1hcCBvbiB0b3Agb2YgdGhlIHN0YWNrLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sI3BvcChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPnBvcDwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCNwdXNoKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwKSI+cHVzaDwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGMsCisgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT4mbmJzcDttYXApPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQdXNoIGEgY29udGVudCBtYXAgb250byB0aGUgc3RhY2suPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29udGVudE1hcFN0YWNrKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0NvbnRlbnRNYXBTdGFjazwvSDM+Cis8UFJFPgorcHJpdmF0ZSA8Qj5Db250ZW50TWFwU3RhY2s8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5ObyBpbnN0YW50aWF0aW9ucyBvZiB0aGlzIGNsYXNzIGFyZSBhbGxvd2VkLjwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFN0YWNrKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U3RhY2s8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS51dGlsLlN0YWNrIDxCPmdldFN0YWNrPC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BjKTwvUFJFPgorPERMPgorPEREPlJldHVybiBhIHJlZmVyZW5jZSB0byB0aGUgc3RhY2suIElmIHRoZXJlIGlzIG5vIHN0YWNrLCBvbmUgaXMKKyBjcmVhdGVkIGFuZCBwbGFjZWQgaW50byByZXF1ZXN0IHNjb3BlIGFzc29jaWF0ZWQgd2l0aCB0aGUKKyBwYWdlIGNvbnRleHQuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGM8L0NPREU+IC0gVGhlIHBhZ2UgY29udGV4dCBhc3NvY2lhdGVkIHdpdGggYSBjdXN0b20gdGFnLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGVlayhqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK3BlZWs8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj5Db250ZW50TWFwPC9BPiA8Qj5wZWVrPC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BjKTwvUFJFPgorPERMPgorPEREPlBlZWsgYXQgdGhlIG1hcCBvbiB0b3Agb2YgdGhlIHN0YWNrLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBjPC9DT0RFPiAtIFRoZSBwYWdlIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIGEgY3VzdG9tIHRhZy48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InB1c2goamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnRNYXApIj48IS0tIC0tPjwvQT48SDM+CitwdXNoPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+cHVzaDwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYywKKyAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT4mbmJzcDttYXApPC9QUkU+Cis8REw+Cis8REQ+UHVzaCBhIGNvbnRlbnQgbWFwIG9udG8gdGhlIHN0YWNrLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBjPC9DT0RFPiAtIFRoZSBwYWdlIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIGEgY3VzdG9tIHRhZy48REQ+PENPREU+bWFwPC9DT0RFPiAtIEEgY29udGVudCBtYXAgdGhhdCBnZXRzIHB1c2hlZCBvbnRvIHRoZSBzdGFjay48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBvcChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK3BvcDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+IDxCPnBvcDwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYyk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBjPC9DT0RFPiAtIFRoZSBwYWdlIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIGEgY3VzdG9tIHRhZy48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29udGVudE1hcFN0YWNrLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyZmJjMWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbAorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0E+PC9GT05UPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorQ2xhc3NlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9IkNvbnRlbnQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db250ZW50PC9BPgorPEJSPgorPEEgSFJFRj0iQ29udGVudE1hcC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbnRlbnRNYXA8L0E+Cis8QlI+Cis8QSBIUkVGPSJDb250ZW50TWFwU3RhY2suaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db250ZW50TWFwU3RhY2s8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4OTVmZmUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbApAQCAtMCwwICsxLDExMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbAorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbAorPC9IMj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJDb250ZW50Lmh0bWwiPkNvbnRlbnQ8L0E+PC9CPjwvVEQ+Cis8VEQ+QSB1dGlsaXR5IGZpbGUgZm9yIHRlbXBsYXRlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT48L0I+PC9URD4KKzxURD5BIHNpbXBsZSBmYWNhZGUgZm9yIGEgaGFzaCBtYXAuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJDb250ZW50TWFwU3RhY2suaHRtbCI+Q29udGVudE1hcFN0YWNrPC9BPjwvQj48L1REPgorPFREPlRoaXMgY2xhc3MgcHJvdmlkZXMgYWNjZXNzIHRvIGEgc3RhY2sgb2YgQ29udGVudE1hcHMgaW4gcmVxdWVzdCBzY29wZQorIHRocm91Z2ggc3RhdGljIG1ldGhvZHMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS10cmVlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODcxZjc0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS10cmVlLmh0bWwKQEAgLTAsMCArMSwxMDQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsIENsYXNzIEhpZXJhcmNoeQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorSGllcmFyY2h5IEZvciBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy10cmVlLmh0bWwiPkFsbCBQYWNrYWdlczwvQT48L0RMPgorPEhSPgorPEgyPgorQ2xhc3MgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLk9iamVjdDxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+PEI+Q29udGVudDwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj48Qj5Db250ZW50TWFwPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCI+PEI+Q29udGVudE1hcFN0YWNrPC9CPjwvQT48L1VMPgorPC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjIyZGMxYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwKQEAgLTAsMCArMSw4MTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFN1biBBcHIgMjAgMjM6NTA6MTMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitCdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbSxCdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJCdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJCdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0ZPTlQ+Cis8QlI+CitDbGFzcyBCdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YS5pby5JbnB1dFN0cmVhbQorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0I+PERUPmV4dGVuZHMgamF2YS5pby5JbnB1dFN0cmVhbTwvREw+CisKKzxQPgorVGhpcyBjbGFzcyBpbXBsZW1lbnRzIGJ1ZmZlcmluZyBmb3IgYW4gSW5wdXRTdHJlYW0gYXMgd2VsbCBhcyBhCisgcmVhZExpbmUgbWV0aG9kLiAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBpcyB0byBwcm92aWRlIGEgcmVsaWFibGUKKyByZWFkTGluZSgpIG1ldGhvZC4KKzxQPgorCis8UD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2J5dGVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2J1ZmZlciI+YnVmZmVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBieXRlIGFycmF5IHVzZWQgdG8gaG9sZCBidWZmZXJlZCBkYXRhPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNidWZmZXJMZW5ndGgiPmJ1ZmZlckxlbmd0aDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWQgZnJvbSB0aGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbSB0aGF0IGFyZQorIGluIHRoZSBidWZmZXI8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2J1ZmZlck9mZnNldCI+YnVmZmVyT2Zmc2V0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjdXJyZW50IG9mZnNldCB3ZSdyZSBhdCBpbiB0aGUgYnVmZmVyJ3MgYnl0ZSBhcnJheTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjYnVmZmVyU2l6ZSI+YnVmZmVyU2l6ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2l6ZSBvZiB0aGUgYnl0ZSBhcnJheSBidWZmZXI8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2xvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNjb250ZW50TGVuZ3RoIj5jb250ZW50TGVuZ3RoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250ZW50IGxlbmd0aCBvZiB0aGUgbXVsdGlwYXJ0IGRhdGE8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNjb250ZW50TGVuZ3RoTWV0Ij5jb250ZW50TGVuZ3RoTWV0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1doZXRoZXIgb3Igbm90IGJ5dGVzIHVwIHRvIHRoZSBDb250ZW50LUxlbmd0aCBoYXZlIGJlZW4gcmVhZDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2lucHV0U3RyZWFtIj5pbnB1dFN0cmVhbTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbSB1c2VkIGJ5IHRoaXMgY2xhc3M8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNtYXhMZW5ndGhNZXQiPm1heExlbmd0aE1ldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXaGV0aGVyIG9yIG5vdCBieXRlcyB1cCB0byB0aGUgbWF4aW11bSBsZW5ndGggaGF2ZSBiZWVuIHJlYWQ8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2xvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNtYXhTaXplIj5tYXhTaXplPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtYXhpbXVtIGFsbG93ZWQgc2l6ZSBmb3IgdGhlIG11bHRpcGFydCBkYXRhLCBvciAtMSBmb3IgYW4gdW5saW1pdGVkCisgbWF4aW11bSBmaWxlIGxlbmd0aDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjdG90YWxMZW5ndGgiPnRvdGFsTGVuZ3RoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgcmVhZCBzbyBmYXI8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5pby5JbnB1dFN0cmVhbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmlvLklucHV0U3RyZWFtPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNCdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtKGphdmEuaW8uSW5wdXRTdHJlYW0sIGludCwgbG9uZywgbG9uZykiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+PC9CPihqYXZhLmlvLklucHV0U3RyZWFtJm5ic3A7aW5wdXRTdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO2J1ZmZlclNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcmbmJzcDtjb250ZW50TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nJm5ic3A7bWF4U2l6ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1B1YmxpYyBjb25zdHJ1Y3RvciBmb3IgdGhpcyBjbGFzcywganVzdCB3cmFwcyB0aGUgSW5wdXRTdHJlYW0KKyBnaXZlbjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2F2YWlsYWJsZSgpIj5hdmFpbGFibGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIGJ5dGVzIGxlZnQgdG8gcmVhZAorIGluIHRoZSBidWZmZXIgYmVmb3JlIGl0IGhhcyB0byBiZSByZWZpbGxlZDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjY2xvc2UoKSI+Y2xvc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBhdHRlbXB0cyB0byBjbG9zZSB0aGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjY29udGVudExlbmd0aE1ldCgpIj5jb250ZW50TGVuZ3RoTWV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjZmlsbCgpIj5maWxsPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RmlsbHMgdGhlIGJ1ZmZlciB3aXRoIGRhdGEgZnJvbSB0aGUgdW5kZXJseWluZyBpbnB1dFN0cmVhbS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI21hcmsoaW50KSI+bWFyazwvQT48L0I+KGludCZuYnNwO3Bvc2l0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgY2FsbHMgb24gdGhlIG1hcmsoKSBtZXRob2Qgb2YgdGhlIHVuZGVybHlpbmcgSW5wdXRTdHJlYW08L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI21hcmtTdXBwb3J0ZWQoKSI+bWFya1N1cHBvcnRlZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIGNhbGxzIG9uIHRoZSBtYXJrU3VwcG9ydGVkKCkgbWV0aG9kIG9mIHRoZSB1bmRlcmx5aW5nIElucHV0U3RyZWFtPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNtYXhMZW5ndGhNZXQoKSI+bWF4TGVuZ3RoTWV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI3JlYWQoKSI+cmVhZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIHJldHVybnMgdGhlIG5leHQgYnl0ZSBpbiB0aGUgYnVmZmVyLCBhbmQgcmVmaWxscyBpdCBpZiBuZWNlc3NhcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI3JlYWQoYnl0ZVtdKSI+cmVhZDwvQT48L0I+KGJ5dGVbXSZuYnNwO2IpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBwb3B1bGF0ZXMgdGhlIGJ5dGUgYXJyYXkgPGNvZGU+YjwvY29kZT4gd2l0aCBkYXRhIHVwIHRvCisgPGNvZGU+Yi5sZW5ndGg8L2NvZGU+IGJ5dGVzPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI3JlYWQoYnl0ZVtdLCBpbnQsIGludCkiPnJlYWQ8L0E+PC9CPihieXRlW10mbmJzcDtiLAorICAgICBpbnQmbmJzcDtvZmZzZXQsCisgICAgIGludCZuYnNwO2xlbmd0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIHBvcHVsYXRlcyB0aGUgYnl0ZSBhcnJheSA8Y29kZT5iPC9jb2RlPiB3aXRoIGRhdGEgdXAgdG8gCisgPGNvZGU+bGVuZ3RoPC9jb2RlPiBzdGFydGluZyBhdCBiW29mZnNldF08L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ynl0ZVtdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjcmVhZExpbmUoKSI+cmVhZExpbmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCByZWFkcyBhIGxpbmUsIHJlZ2FyZGxlc3Mgb2YgbGVuZ3RoLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNyZWFkTGluZShieXRlW10sIGludCwgaW50KSI+cmVhZExpbmU8L0E+PC9CPihieXRlW10mbmJzcDtiLAorICAgICAgICAgaW50Jm5ic3A7b2Zmc2V0LAorICAgICAgICAgaW50Jm5ic3A7bGVuZ3RoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgcmVhZHMgaW50byB0aGUgYnl0ZSBhcnJheSA8Y29kZT5iPC9jb2RlPiB1bnRpbAorIGEgbmV3bGluZSAoJ1xuJykgY2hhcmFjdGVyIGlzIGVuY291bnRlcmVkIG9yIHRoZSBudW1iZXIgb2YgYnl0ZXMKKyBzcGVjaWZpZWQgYnkgPGNvZGU+bGVuZ3RoPC9jb2RlPiBoYXZlIGJlZW4gcmVhZDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjcmVzZXQoKSI+cmVzZXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBtYWtlcyBhIGNhbGwgdG8gdGhlIHJlc2V0KCkgbWV0aG9kIG9mIHRoZSB1bmRlcmx5aW5nCisgSW5wdXRTdHJlYW08L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEuaW8uSW5wdXRTdHJlYW0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEuaW8uSW5wdXRTdHJlYW08L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5za2lwPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iaW5wdXRTdHJlYW0iPjwhLS0gLS0+PC9BPjxIMz4KK2lucHV0U3RyZWFtPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5pby5JbnB1dFN0cmVhbSA8Qj5pbnB1dFN0cmVhbTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbSB1c2VkIGJ5IHRoaXMgY2xhc3MKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJ1ZmZlciI+PCEtLSAtLT48L0E+PEgzPgorYnVmZmVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYnl0ZVtdIDxCPmJ1ZmZlcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYnl0ZSBhcnJheSB1c2VkIHRvIGhvbGQgYnVmZmVyZWQgZGF0YQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYnVmZmVyT2Zmc2V0Ij48IS0tIC0tPjwvQT48SDM+CitidWZmZXJPZmZzZXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+YnVmZmVyT2Zmc2V0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjdXJyZW50IG9mZnNldCB3ZSdyZSBhdCBpbiB0aGUgYnVmZmVyJ3MgYnl0ZSBhcnJheQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYnVmZmVyU2l6ZSI+PCEtLSAtLT48L0E+PEgzPgorYnVmZmVyU2l6ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGludCA8Qj5idWZmZXJTaXplPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaXplIG9mIHRoZSBieXRlIGFycmF5IGJ1ZmZlcgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYnVmZmVyTGVuZ3RoIj48IS0tIC0tPjwvQT48SDM+CitidWZmZXJMZW5ndGg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+YnVmZmVyTGVuZ3RoPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCBmcm9tIHRoZSB1bmRlcmx5aW5nIElucHV0U3RyZWFtIHRoYXQgYXJlCisgaW4gdGhlIGJ1ZmZlcgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG90YWxMZW5ndGgiPjwhLS0gLS0+PC9BPjxIMz4KK3RvdGFsTGVuZ3RoPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPnRvdGFsTGVuZ3RoPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgcmVhZCBzbyBmYXIKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbnRlbnRMZW5ndGgiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRlbnRMZW5ndGg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBsb25nIDxCPmNvbnRlbnRMZW5ndGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRlbnQgbGVuZ3RoIG9mIHRoZSBtdWx0aXBhcnQgZGF0YQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWF4U2l6ZSI+PCEtLSAtLT48L0E+PEgzPgorbWF4U2l6ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGxvbmcgPEI+bWF4U2l6ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWF4aW11bSBhbGxvd2VkIHNpemUgZm9yIHRoZSBtdWx0aXBhcnQgZGF0YSwgb3IgLTEgZm9yIGFuIHVubGltaXRlZAorIG1heGltdW0gZmlsZSBsZW5ndGgKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbnRlbnRMZW5ndGhNZXQiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRlbnRMZW5ndGhNZXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbnRlbnRMZW5ndGhNZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+V2hldGhlciBvciBub3QgYnl0ZXMgdXAgdG8gdGhlIENvbnRlbnQtTGVuZ3RoIGhhdmUgYmVlbiByZWFkCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXhMZW5ndGhNZXQiPjwhLS0gLS0+PC9BPjxIMz4KK21heExlbmd0aE1ldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+bWF4TGVuZ3RoTWV0PC9CPjwvUFJFPgorPERMPgorPEREPldoZXRoZXIgb3Igbm90IGJ5dGVzIHVwIHRvIHRoZSBtYXhpbXVtIGxlbmd0aCBoYXZlIGJlZW4gcmVhZAorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0oamF2YS5pby5JbnB1dFN0cmVhbSwgaW50LCBsb25nLCBsb25nKSI+PCEtLSAtLT48L0E+PEgzPgorQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0I+KGphdmEuaW8uSW5wdXRTdHJlYW0mbmJzcDtpbnB1dFN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO2J1ZmZlclNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nJm5ic3A7Y29udGVudExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcmbmJzcDttYXhTaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlB1YmxpYyBjb25zdHJ1Y3RvciBmb3IgdGhpcyBjbGFzcywganVzdCB3cmFwcyB0aGUgSW5wdXRTdHJlYW0KKyBnaXZlbgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmlucHV0U3RyZWFtPC9DT0RFPiAtIFRoZSB1bmRlcmx5aW5nIHN0cmVhbSB0byByZWFkIGZyb208REQ+PENPREU+YnVmZmVyU2l6ZTwvQ09ERT4gLSBUaGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgaW50ZXJuYWwgYnVmZmVyPEREPjxDT0RFPmNvbnRlbnRMZW5ndGg8L0NPREU+IC0gVGhlIGNvbnRlbnQgbGVuZ3RoIGZvciB0aGlzIHJlcXVlc3Q8REQ+PENPREU+bWF4U2l6ZTwvQ09ERT4gLSBUaGUgbWF4aW11bSBzaXplIGluIGJ5dGVzIHRoYXQgdGhpcyBtdWx0aXBhcnQKKyAgICAgICAgICAgICAgICByZXF1ZXN0IGNhbiBiZSwgb3IgLTEgZm9yIGFuIHVubGltaXRlZCBsZW5ndGg8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJhdmFpbGFibGUoKSI+PCEtLSAtLT48L0E+PEgzPgorYXZhaWxhYmxlPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmF2YWlsYWJsZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgYnl0ZXMgbGVmdCB0byByZWFkCisgaW4gdGhlIGJ1ZmZlciBiZWZvcmUgaXQgaGFzIHRvIGJlIHJlZmlsbGVkCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+YXZhaWxhYmxlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLklucHV0U3RyZWFtPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2xvc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorY2xvc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmNsb3NlPC9CPigpCisgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+VGhpcyBtZXRob2QgYXR0ZW1wdHMgdG8gY2xvc2UgdGhlIHVuZGVybHlpbmcgSW5wdXRTdHJlYW0KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5jbG9zZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWFyayhpbnQpIj48IS0tIC0tPjwvQT48SDM+CittYXJrPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5tYXJrPC9CPihpbnQmbmJzcDtwb3NpdGlvbik8L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBjYWxscyBvbiB0aGUgbWFyaygpIG1ldGhvZCBvZiB0aGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbQorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPm1hcms8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uSW5wdXRTdHJlYW08L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXJrU3VwcG9ydGVkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK21hcmtTdXBwb3J0ZWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPm1hcmtTdXBwb3J0ZWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBjYWxscyBvbiB0aGUgbWFya1N1cHBvcnRlZCgpIG1ldGhvZCBvZiB0aGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbQorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPm1hcmtTdXBwb3J0ZWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uSW5wdXRTdHJlYW08L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPldoZXRoZXIgb3Igbm90IHRoZSB1bmRlcmx5aW5nIElucHV0U3RyZWFtIHN1cHBvcnRzIG1hcmtpbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1heExlbmd0aE1ldCgpIj48IS0tIC0tPjwvQT48SDM+CittYXhMZW5ndGhNZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPm1heExlbmd0aE1ldDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD50cnVlIGlmIHRoZSBtYXhpbXVtIGxlbmd0aCBoYXMgYmVlbiByZWFjaGVkLCBmYWxzZSBvdGhlcndpc2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbnRlbnRMZW5ndGhNZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorY29udGVudExlbmd0aE1ldDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Y29udGVudExlbmd0aE1ldDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD50cnVlIGlmIHRoZSBjb250ZW50IGxlbmd0aCBoYXMgYmVlbiByZWFjaGVkLCBmYWxzZSBvdGhlcndpc2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWQoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVhZDwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5yZWFkPC9CPigpCisgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgdGhlIG5leHQgYnl0ZSBpbiB0aGUgYnVmZmVyLCBhbmQgcmVmaWxscyBpdCBpZiBuZWNlc3NhcnkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVhZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VGhlIG5leHQgYnl0ZSByZWFkIGluIHRoZSBidWZmZXIsIG9yIC0xIGlmIHRoZSBlbmQgb2YgdGhlIHN0cmVhbSBoYXMKKyAgICAgICAgIGJlZW4gcmVhY2hlZAorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWFkKGJ5dGVbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+cmVhZDwvQj4oYnl0ZVtdJm5ic3A7YikKKyAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+VGhpcyBtZXRob2QgcG9wdWxhdGVzIHRoZSBieXRlIGFycmF5IDxjb2RlPmI8L2NvZGU+IHdpdGggZGF0YSB1cCB0bworIDxjb2RlPmIubGVuZ3RoPC9jb2RlPiBieXRlcworPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlYWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uSW5wdXRTdHJlYW08L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWQoYnl0ZVtdLCBpbnQsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+cmVhZDwvQj4oYnl0ZVtdJm5ic3A7YiwKKyAgICAgICAgICAgICAgICBpbnQmbmJzcDtvZmZzZXQsCisgICAgICAgICAgICAgICAgaW50Jm5ic3A7bGVuZ3RoKQorICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBwb3B1bGF0ZXMgdGhlIGJ5dGUgYXJyYXkgPGNvZGU+YjwvY29kZT4gd2l0aCBkYXRhIHVwIHRvIAorIDxjb2RlPmxlbmd0aDwvY29kZT4gc3RhcnRpbmcgYXQgYltvZmZzZXRdCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVhZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVhZExpbmUoYnl0ZVtdLCBpbnQsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWRMaW5lPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPnJlYWRMaW5lPC9CPihieXRlW10mbmJzcDtiLAorICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO2xlbmd0aCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIHJlYWRzIGludG8gdGhlIGJ5dGUgYXJyYXkgPGNvZGU+YjwvY29kZT4gdW50aWwKKyBhIG5ld2xpbmUgKCdcbicpIGNoYXJhY3RlciBpcyBlbmNvdW50ZXJlZCBvciB0aGUgbnVtYmVyIG9mIGJ5dGVzCisgc3BlY2lmaWVkIGJ5IDxjb2RlPmxlbmd0aDwvY29kZT4gaGF2ZSBiZWVuIHJlYWQKKzxQPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWFkTGluZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWFkTGluZTwvSDM+Cis8UFJFPgorcHVibGljIGJ5dGVbXSA8Qj5yZWFkTGluZTwvQj4oKQorICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+VGhpcyBtZXRob2QgcmVhZHMgYSBsaW5lLCByZWdhcmRsZXNzIG9mIGxlbmd0aC4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5BIGJ5dGUgYXJyYXkgcmVwcmVzZW50aW5nIHRoZSBsaW5lLgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXNldCgpIj48IS0tIC0tPjwvQT48SDM+CityZXNldDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVzZXQ8L0I+KCkKKyAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBtYWtlcyBhIGNhbGwgdG8gdGhlIHJlc2V0KCkgbWV0aG9kIG9mIHRoZSB1bmRlcmx5aW5nCisgSW5wdXRTdHJlYW0KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZXNldDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmlsbCgpIj48IS0tIC0tPjwvQT48SDM+CitmaWxsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5maWxsPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5GaWxscyB0aGUgYnVmZmVyIHdpdGggZGF0YSBmcm9tIHRoZSB1bmRlcmx5aW5nIGlucHV0U3RyZWFtLiAgSWYgaXQgY2FuJ3QKKyBmaWxsIHRoZSBlbnRpcmUgYnVmZmVyIGluIG9uZSByZWFkLCBpdCB3aWxsIHJlYWQgYXMgbWFueSB0aW1lcyBhcyBuZWNlc3NhcnkKKyB0byBmaWxsIHRoZSBidWZmZXIKKzxQPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAyIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDVkZGRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sCkBAIC0wLDAgKzEsMzMxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBTdW4gQXByIDIwIDIzOjUwOjE0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLENvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbiBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvRk9OVD4KKzxCUj4KK0NsYXNzIENvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmEubGFuZy5UaHJvd2FibGUKKyAgICAgICAgfAorICAgICAgICArLS1qYXZhLmxhbmcuRXhjZXB0aW9uCisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tamF2YS5pby5JT0V4Y2VwdGlvbgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0I+PERUPmV4dGVuZHMgamF2YS5pby5JT0V4Y2VwdGlvbjwvREw+CisKKzxQPgorVGhpcyBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gbXVsdGlwYXJ0IHBvc3QgZGF0YSBleGNlZWRzIHRoZSB2YWx1ZQorIGdpdmVuIGJ5IHRoZSBDb250ZW50LUxlbmd0aCBoZWFkZXIKKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24iPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjbWVzc2FnZSI+bWVzc2FnZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLkV4Y2VwdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuVGhyb3dhYmxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5UaHJvd2FibGU8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKCkiPkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sI0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbihsb25nKSI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPjwvQj4obG9uZyZuYnNwO2NvbnRlbnRMZW5ndGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCNnZXRNZXNzYWdlKCkiPmdldE1lc3NhZ2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5UaHJvd2FibGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5UaHJvd2FibGU8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maWxsSW5TdGFja1RyYWNlLCBnZXRDYXVzZSwgZ2V0TG9jYWxpemVkTWVzc2FnZSwgZ2V0U3RhY2tUcmFjZSwgaW5pdENhdXNlLCBwcmludFN0YWNrVHJhY2UsIHByaW50U3RhY2tUcmFjZSwgcHJpbnRTdGFja1RyYWNlLCBzZXRTdGFja1RyYWNlLCB0b1N0cmluZzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWVzc2FnZSI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bWVzc2FnZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKGxvbmcpIj48IS0tIC0tPjwvQT48SDM+CitDb250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0I+KGxvbmcmbmJzcDtjb250ZW50TGVuZ3RoKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldE1lc3NhZ2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEubGFuZy5UaHJvd2FibGU8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDIgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGZiNzRjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwKQEAgLTAsMCArMSw2MTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFN1biBBcHIgMjAgMjM6NTA6MTMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitEaXNrRmlsZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkRpc2tGaWxlLERpc2tGaWxlIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJEaXNrRmlsZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGlza0ZpbGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvRk9OVD4KKzxCUj4KK0NsYXNzIERpc2tGaWxlPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkRpc2tGaWxlPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5EaXNrRmlsZTwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPjwvREw+CisKKzxQPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNjb250ZW50VHlwZSI+Y29udGVudFR5cGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgZmlsZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNmaWxlTmFtZSI+ZmlsZU5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGZpbGU8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjZmlsZVBhdGgiPmZpbGVQYXRoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBmaWxlcGF0aCB0byB0aGUgdGVtcG9yYXJ5IGZpbGU8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNmaWxlU2l6ZSI+ZmlsZVNpemU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIGZpbGU8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI0Rpc2tGaWxlKGphdmEubGFuZy5TdHJpbmcpIj5EaXNrRmlsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlUGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjZGVzdHJveSgpIj5kZXN0cm95PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGVsZXRlIHRoZSB0ZW1wb3JhcnkgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNnZXRDb250ZW50VHlwZSgpIj5nZXRDb250ZW50VHlwZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgY29udGVudCB0eXBlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2J5dGVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNnZXRGaWxlRGF0YSgpIj5nZXRGaWxlRGF0YTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0F0dGVtcHQgdG8gcmVhZCB0aGUgdGVtcG9yYXJ5IGZpbGUgYW5kIGdldCBpdCdzIGRhdGEgaW4gYnl0ZQorIGFycmF5IGZvcm0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2J5dGVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNnZXRGaWxlRGF0YShpbnQpIj5nZXRGaWxlRGF0YTwvQT48L0I+KGludCZuYnNwO2J1ZmZlclNpemUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdHRlbXB0cyB0byByZWFkIGEgZmlsZSBuIGJ5dGVzIGF0IGEgdGltZSwgbiBiZWluZyBlcXVhbCB0byAiYnVmZmVyU2l6ZSIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjZ2V0RmlsZU5hbWUoKSI+Z2V0RmlsZU5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIGZpbGUgbmFtZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldEZpbGVQYXRoKCkiPmdldEZpbGVQYXRoPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSB0ZW1wb3JhcnkgZmlsZSBwYXRoIGZvciB0aGlzIGZvcm0gZmlsZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjZ2V0RmlsZVNpemUoKSI+Z2V0RmlsZVNpemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIGZpbGUgc2l6ZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmlvLklucHV0U3RyZWFtPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldElucHV0U3RyZWFtKCkiPmdldElucHV0U3RyZWFtPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIEZpbGVJbnB1dFN0cmVhbSB0byB0aGUgZmlsZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI3NldENvbnRlbnRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb250ZW50VHlwZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250ZW50VHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgY29udGVudCB0eXBlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjc2V0RmlsZU5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldEZpbGVOYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZpbGVuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBmaWxlIG5hbWU8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNzZXRGaWxlU2l6ZShpbnQpIj5zZXRGaWxlU2l6ZTwvQT48L0I+KGludCZuYnNwO2ZpbGVTaXplKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBmaWxlIHNpemU8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImZpbGVQYXRoIj48IS0tIC0tPjwvQT48SDM+CitmaWxlUGF0aDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+ZmlsZVBhdGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZpbGVwYXRoIHRvIHRoZSB0ZW1wb3JhcnkgZmlsZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udGVudFR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRlbnRUeXBlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jb250ZW50VHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29udGVudCB0eXBlIG9mIHRoZSBmaWxlCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaWxlU2l6ZSI+PCEtLSAtLT48L0E+PEgzPgorZmlsZVNpemU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+ZmlsZVNpemU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIGZpbGUKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbGVOYW1lIj48IS0tIC0tPjwvQT48SDM+CitmaWxlTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+ZmlsZU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGZpbGUKKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJEaXNrRmlsZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorRGlza0ZpbGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5EaXNrRmlsZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZpbGVQYXRoKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0RmlsZURhdGEoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmlsZURhdGE8L0gzPgorPFBSRT4KK3B1YmxpYyBieXRlW10gPEI+Z2V0RmlsZURhdGE8L0I+KCkKKyAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5BdHRlbXB0IHRvIHJlYWQgdGhlIHRlbXBvcmFyeSBmaWxlIGFuZCBnZXQgaXQncyBkYXRhIGluIGJ5dGUKKyBhcnJheSBmb3JtLiAgVHJpZXMgdG8gcmVhZCB0aGUgZW50aXJlIGZpbGUgKHVzaW5nIGEgYnl0ZSBhcnJheQorIHRoZSBzaXplIG9mIGdldEZpbGVTaXplKCkpIGF0IG9uY2UsIGluIG9uZSBjYWxsIHRvIEZpbGVJbnB1dFN0cmVhbS5yZWFkKGJ5dGVbXSkuCisgRm9yIGJ1ZmZlcmVkIHJlYWRpbmcsIHNlZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNnZXRGaWxlRGF0YShpbnQpIj48Q09ERT5nZXRGaWxlRGF0YShpbnQpPC9DT0RFPjwvQT4uCisgTm90ZSB0aGF0IHRoaXMgbWV0aG9kIGNhbiBiZSBkYW5nZXJvdXMsIGFuZCB0aGF0IHRoZSBzaXplIG9mIGEgZmlsZQorIGNhbiBjYXVzZSBhbiBPdXRPZk1lbW9yeUVycm9yIHF1aXRlIGVhc2lseS4gIFlvdSBzaG91bGQgdXNlIAorIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldElucHV0U3RyZWFtKCkiPjxDT0RFPmdldElucHV0U3RyZWFtPC9DT0RFPjwvQT4gYW5kIGRvIHlvdXIgb3duIHRoaW5nLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2dldEZpbGVEYXRhKCkiPmdldEZpbGVEYXRhPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBmaWxlIGRhdGEgYXMgYSBieXRlIGFycmF5LgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb248L0NPREU+IC0gSWYgdGhlIHRlbXAgZmlsZSBubyBsb25nZXIgZXhpc3RzCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGVyZSBpcyBzb21lIHNvcnQgb2YgSU8gcHJvYmxlbS48RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNnZXRGaWxlRGF0YShpbnQpIj48Q09ERT5nZXRGaWxlRGF0YShpbnQpPC9DT0RFPjwvQT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZpbGVEYXRhKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZpbGVEYXRhPC9IMz4KKzxQUkU+CitwdWJsaWMgYnl0ZVtdIDxCPmdldEZpbGVEYXRhPC9CPihpbnQmbmJzcDtidWZmZXJTaXplKQorICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkF0dGVtcHRzIHRvIHJlYWQgYSBmaWxlIG4gYnl0ZXMgYXQgYSB0aW1lLCBuIGJlaW5nIGVxdWFsIHRvICJidWZmZXJTaXplIi4KKyBOb3RlIHRoYXQgdGhpcyBtZXRob2QgY2FuIGJlIGRhbmdlcm91cywgYW5kIHRoYXQgdGhlIHNpemUgb2YgYSBmaWxlCisgY2FuIGNhdXNlIGFuIE91dE9mTWVtb3J5RXJyb3IgcXVpdGUgZWFzaWx5LiAgWW91IHNob3VsZCB1c2UgCisgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjZ2V0SW5wdXRTdHJlYW0oKSI+PENPREU+Z2V0SW5wdXRTdHJlYW08L0NPREU+PC9BPiBhbmQgZG8geW91ciBvd24gdGhpbmcuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJ1ZmZlclNpemU8L0NPREU+IC0gVGhlIHNpemUgaW4gYnl0ZXMgdGhhdCBhcmUgcmVhZCBmcm9tIHRoZSBmaWxlIGF0IGEgdGltZQorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb248L0NPREU+IC0gSWYgdGhlIHRlbXAgZmlsZSBubyBsb25nZXIgZXhpc3RzCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRlc3Ryb3koKSI+PCEtLSAtLT48L0E+PEgzPgorZGVzdHJveTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZGVzdHJveTwvQj4oKTwvUFJFPgorPERMPgorPEREPkRlbGV0ZSB0aGUgdGVtcG9yYXJ5IGZpbGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjZGVzdHJveSgpIj5kZXN0cm95PC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGaWxlUGF0aCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGaWxlUGF0aDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RmlsZVBhdGg8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIHRlbXBvcmFyeSBmaWxlIHBhdGggZm9yIHRoaXMgZm9ybSBmaWxlCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSBmaWxlcGF0aCB0byB0aGUgdGVtcG9yYXJ5IGZpbGU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZpbGVOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGaWxlTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RmlsZU5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlbmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGZpbGUgbmFtZQorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI3NldEZpbGVOYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGaWxlTmFtZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmlsZW5hbWU8L0NPREU+IC0gVGhlIGJhc2UgZmlsZSBuYW1lLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Q29udGVudFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENvbnRlbnRUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDb250ZW50VHlwZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRlbnRUeXBlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgY29udGVudCB0eXBlCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjc2V0Q29udGVudFR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRlbnRUeXBlPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb250ZW50VHlwZTwvQ09ERT4gLSBUaGUgY29udGVudCB0eXBlIGZvciB0aGUgZmlsZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZpbGVTaXplKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZpbGVTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGaWxlU2l6ZTwvQj4oaW50Jm5ic3A7ZmlsZVNpemUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBmaWxlIHNpemUKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNzZXRGaWxlU2l6ZShpbnQpIj5zZXRGaWxlU2l6ZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmlsZVNpemU8L0NPREU+IC0gVGhlIHNpemUgb2YgdGhlIGZpbGUgaW4gYnl0ZXM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZpbGVOYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZpbGVOYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGaWxlTmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgZmlsZSBuYW1lCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjZ2V0RmlsZU5hbWUoKSI+Z2V0RmlsZU5hbWU8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VGhlIGJhc2UgZmlsZSBuYW1lLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Q29udGVudFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29udGVudFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldENvbnRlbnRUeXBlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBjb250ZW50IHR5cGUKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNnZXRDb250ZW50VHlwZSgpIj5nZXRDb250ZW50VHlwZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5BIFN0cmluZyByZXByZXNlbnRpbmcgY29udGVudCB0eXBlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmlsZVNpemUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmlsZVNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0RmlsZVNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIGZpbGUgc2l6ZQorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2dldEZpbGVTaXplKCkiPmdldEZpbGVTaXplPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBzaXplIG9mIHRoaXMgZmlsZSBpbiBieXRlczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SW5wdXRTdHJlYW0oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SW5wdXRTdHJlYW08L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmlvLklucHV0U3RyZWFtIDxCPmdldElucHV0U3RyZWFtPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgRmlsZUlucHV0U3RyZWFtIHRvIHRoZSBmaWxlCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjZ2V0SW5wdXRTdHJlYW0oKSI+Z2V0SW5wdXRTdHJlYW08L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcmVhZGluZyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLgorPEREPjxDT0RFPmphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSB1cGxvYWRlZCBmaWxlIGlzIG5vdCBmb3VuZC48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEaXNrRmlsZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAyIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzNiOTYyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sCkBAIC0wLDAgKzEsNzQzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBTdW4gQXByIDIwIDIzOjUwOjEzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLERpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9GT05UPgorPEJSPgorQ2xhc3MgRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9ETD4KKworPFA+CitUaGlzIGlzIGEgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgdGhhdCB3cml0ZXMgZmlsZSBkYXRhIGRpcmVjdGx5IHRvCisgdG8gdGVtcG9yYXJ5IGZpbGVzIG9uIGRpc2suCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+TWlrZSBTY2hhY2h0ZXI8L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNodGFibGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2FsbEVsZW1lbnRzIj5hbGxFbGVtZW50czwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIEhhc2h0YWJsZSByZXByZXNlbnRpbmcgYWxsIGVsZW1uZW50cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNodGFibGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2ZpbGVFbGVtZW50cyI+ZmlsZUVsZW1lbnRzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgSGFzaHRhYmxlIHJlcHJlc2VudGluZyB0aGUgZm9ybSBmaWxlcyB1cGxvYWRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNtYXBwaW5nIj5tYXBwaW5nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBBY3Rpb25NYXBwaW5nIGluc3RhbmNlIHVzZWQgZm9yIHRoaXMgY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgQWN0aW9uU2VydmxldCBpbnN0YW5jZSB1c2VkIGZvciB0aGlzIGNsYXNzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjdGVtcERpciI+dGVtcERpcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdGVtcG9yYXJ5IGRpcmVjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNodGFibGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3RleHRFbGVtZW50cyI+dGV4dEVsZW1lbnRzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgSGFzaHRhYmxlIHJlcHJlc2VudGluZyB0aGUgZm9ybSB0ZXh0IGlucHV0IG5hbWVzIGFuZCB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNBVFRSSUJVVEVfTUFYX0xFTkdUSF9FWENFRURFRCI+QVRUUklCVVRFX01BWF9MRU5HVEhfRVhDRUVERUQ8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcigpIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjY3JlYXRlRGlza0ZpbGUob3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEVsZW1lbnQpIj5jcmVhdGVEaXNrRmlsZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Jm5ic3A7ZWxlbWVudCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjY3JlYXRlVGV4dEVsZW1lbnQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEVsZW1lbnQpIj5jcmVhdGVUZXh0RWxlbWVudDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4mbmJzcDtlbGVtZW50KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2ZpbmlzaCgpIj5maW5pc2g8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDYWxscyBvbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjcm9sbGJhY2soKSI+PENPREU+cm9sbGJhY2soKTwvQ09ERT48L0E+IHRvIGRlbGV0ZQorIHRlbXBvcmFyeSBmaWxlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLkhhc2h0YWJsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0QWxsRWxlbWVudHMoKSI+Z2V0QWxsRWxlbWVudHM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCByZXR1cm5zIGFsbCBlbGVtZW50cyBvZiBhIG11bHRpcGFydCByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSGFzaHRhYmxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRGaWxlRWxlbWVudHMoKSI+Z2V0RmlsZUVsZW1lbnRzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRvIHJldHJpZXZlIGFsbCB0aGUgRm9ybUZpbGUKKyBpbnB1dCBlbGVtZW50cyBvZiB0aGUgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldE1hcHBpbmcoKSI+Z2V0TWFwcGluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgQWN0aW9uTWFwcGluZyBpbnN0YW5jZSBmb3IgdGhpcyByZXF1ZXN0PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtsb25nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRNYXhTaXplKCkiPmdldE1heFNpemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHRoZSBtYXhpbXVtIHBvc3QgZGF0YSBzaXplIGluIGJ5dGVzIGZyb20gdGhlIHN0cmluZworIHJlcHJlc2VudGF0aW9uIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRTZXJ2bGV0KCkiPmdldFNlcnZsZXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2U8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLkhhc2h0YWJsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0VGV4dEVsZW1lbnRzKCkiPmdldFRleHRFbGVtZW50czwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0byByZXRyaWV2ZSBhbGwgdGhlIHRleHQKKyBpbnB1dCBlbGVtZW50cyBvZiB0aGUgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjaGFuZGxlUmVxdWVzdChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aGFuZGxlUmVxdWVzdDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgcG9wdWxhdGVzIHRoZSBpbnRlcm5hbCBoYXNodGFibGVzIHdpdGggbXVsdGlwYXJ0IHJlcXVlc3QgZGF0YS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3JldHJpZXZlVGVtcERpcigpIj5yZXRyaWV2ZVRlbXBEaXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZXMgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgZnJvbSBlaXRoZXIgQWN0aW9uU2VydmxldCwgYSBjb250ZXh0CisgcHJvcGVydHksIG9yIGEgc3lzdGVtIHByb3BlcnR5LCBpbiB0aGF0IG9yZGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNyb2xsYmFjaygpIj5yb2xsYmFjazwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlbGV0ZSBhbGwgdGhlIGZpbGVzIHVwbG9hZGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXRNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+c2V0TWFwcGluZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnZpZW5pZW5jZSBtZXRob2QgdG8gc2V0IGEgcmVmZXJlbmNlIHRvIGEgd29ya2luZworIEFjdGlvbk1hcHBpbmcgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udmllbmllbmNlIG1ldGhvZCB0byBzZXQgYSByZWZlcmVuY2UgdG8gYSB3b3JraW5nCisgQWN0aW9uU2VydmxldCBpbnN0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InNlcnZsZXQiPjwhLS0gLS0+PC9BPjxIMz4KK3NlcnZsZXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiA8Qj5zZXJ2bGV0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlIHVzZWQgZm9yIHRoaXMgY2xhc3MuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXBwaW5nIj48IS0tIC0tPjwvQT48SDM+CittYXBwaW5nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4gPEI+bWFwcGluZzwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgQWN0aW9uTWFwcGluZyBpbnN0YW5jZSB1c2VkIGZvciB0aGlzIGNsYXNzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmlsZUVsZW1lbnRzIj48IS0tIC0tPjwvQT48SDM+CitmaWxlRWxlbWVudHM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuSGFzaHRhYmxlIDxCPmZpbGVFbGVtZW50czwvQj48L1BSRT4KKzxETD4KKzxERD5BIEhhc2h0YWJsZSByZXByZXNlbnRpbmcgdGhlIGZvcm0gZmlsZXMgdXBsb2FkZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0ZXh0RWxlbWVudHMiPjwhLS0gLS0+PC9BPjxIMz4KK3RleHRFbGVtZW50czwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5IYXNodGFibGUgPEI+dGV4dEVsZW1lbnRzPC9CPjwvUFJFPgorPERMPgorPEREPkEgSGFzaHRhYmxlIHJlcHJlc2VudGluZyB0aGUgZm9ybSB0ZXh0IGlucHV0IG5hbWVzIGFuZCB2YWx1ZXMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhbGxFbGVtZW50cyI+PCEtLSAtLT48L0E+PEgzPgorYWxsRWxlbWVudHM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuSGFzaHRhYmxlIDxCPmFsbEVsZW1lbnRzPC9CPjwvUFJFPgorPERMPgorPEREPkEgSGFzaHRhYmxlIHJlcHJlc2VudGluZyBhbGwgZWxlbW5lbnRzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGVtcERpciI+PCEtLSAtLT48L0E+PEgzPgordGVtcERpcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dGVtcERpcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdGVtcG9yYXJ5IGRpcmVjdG9yeS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJEaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIoKSI+PCEtLSAtLT48L0E+PEgzPgorRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJoYW5kbGVSZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitoYW5kbGVSZXF1ZXN0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5oYW5kbGVSZXF1ZXN0PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCkKKyAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+VGhpcyBtZXRob2QgcG9wdWxhdGVzIHRoZSBpbnRlcm5hbCBoYXNodGFibGVzIHdpdGggbXVsdGlwYXJ0IHJlcXVlc3QgZGF0YS4KKyBJZiB0aGUgcmVxdWVzdCBhcmd1bWVudCBpcyBhbiBpbnN0YW5jZSBvZiBNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlciwKKyB0aGUgcmVxdWVzdCB3cmFwcGVyIHdpbGwgYmUgcG9wdWxhdGVkIGFzIHdlbGwuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjaGFuZGxlUmVxdWVzdChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aGFuZGxlUmVxdWVzdDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIHRocm93biBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlVGV4dEVsZW1lbnQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEVsZW1lbnQpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVUZXh0RWxlbWVudDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+Y3JlYXRlVGV4dEVsZW1lbnQ8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4mbmJzcDtlbGVtZW50KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlRGlza0ZpbGUob3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEVsZW1lbnQpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVEaXNrRmlsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+Y3JlYXRlRGlza0ZpbGU8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Jm5ic3A7ZWxlbWVudCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFsbEVsZW1lbnRzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFsbEVsZW1lbnRzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj5nZXRBbGxFbGVtZW50czwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0I+PC9ERD4KKzxERD5UaGlzIG1ldGhvZCByZXR1cm5zIGFsbCBlbGVtZW50cyBvZiBhIG11bHRpcGFydCByZXF1ZXN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldEFsbEVsZW1lbnRzKCkiPmdldEFsbEVsZW1lbnRzPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgSGFzaHRhYmxlIHdoZXJlIHRoZSBrZXlzIGFyZSBpbnB1dCBuYW1lcyBhbmQgdmFsdWVzCisgICBhcmUgZWl0aGVyIFN0cmluZ3Mgb3IgRm9ybUZpbGVzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUZXh0RWxlbWVudHMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VGV4dEVsZW1lbnRzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj5nZXRUZXh0RWxlbWVudHM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBpbnRlcmZhY2U6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9CPjwvREQ+Cis8REQ+VGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRvIHJldHJpZXZlIGFsbCB0aGUgdGV4dAorIGlucHV0IGVsZW1lbnRzIG9mIHRoZSByZXF1ZXN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldFRleHRFbGVtZW50cygpIj5nZXRUZXh0RWxlbWVudHM8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSBIYXNodGFibGUgd2hlcmUgdGhlIGtleXMgYW5kIHZhbHVlcyBhcmUgdGhlIG5hbWVzIGFuZAorICB2YWx1ZXMgb2YgdGhlIHJlcXVlc3QgaW5wdXQgcGFyYW1ldGVyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmlsZUVsZW1lbnRzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZpbGVFbGVtZW50czwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5IYXNodGFibGUgPEI+Z2V0RmlsZUVsZW1lbnRzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVzY3JpcHRpb24gY29waWVkIGZyb20gaW50ZXJmYWNlOiA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvQj48L0REPgorPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0byByZXRyaWV2ZSBhbGwgdGhlIEZvcm1GaWxlCisgaW5wdXQgZWxlbWVudHMgb2YgdGhlIHJlcXVlc3QuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0RmlsZUVsZW1lbnRzKCkiPmdldEZpbGVFbGVtZW50czwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5BIEhhc2h0YWJsZSB3aGVyZSB0aGUga2V5cyBhcmUgdGhlIGlucHV0IG5hbWVzIG9mIHRoZQorICBmaWxlcyBhbmQgdGhlIHZhbHVlcyBhcmUgRm9ybUZpbGUgb2JqZWN0czxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj48Q09ERT5Gb3JtRmlsZTwvQ09ERT48L0E+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyb2xsYmFjaygpIj48IS0tIC0tPjwvQT48SDM+Cityb2xsYmFjazwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cm9sbGJhY2s8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5EZWxldGUgYWxsIHRoZSBmaWxlcyB1cGxvYWRlZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNyb2xsYmFjaygpIj5yb2xsYmFjazwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluaXNoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmlzaDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZmluaXNoPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q2FsbHMgb24gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3JvbGxiYWNrKCkiPjxDT0RFPnJvbGxiYWNrKCk8L0NPREU+PC9BPiB0byBkZWxldGUKKyB0ZW1wb3JhcnkgZmlsZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZmluaXNoKCkiPmZpbmlzaDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNlcnZsZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNlcnZsZXQ8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBpbnRlcmZhY2U6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9CPjwvREQ+Cis8REQ+Q29udmllbmllbmNlIG1ldGhvZCB0byBzZXQgYSByZWZlcmVuY2UgdG8gYSB3b3JraW5nCisgQWN0aW9uU2VydmxldCBpbnN0YW5jZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+c2V0U2VydmxldDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE1hcHBpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE1hcHBpbmc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBpbnRlcmZhY2U6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9CPjwvREQ+Cis8REQ+Q29udmllbmllbmNlIG1ldGhvZCB0byBzZXQgYSByZWZlcmVuY2UgdG8gYSB3b3JraW5nCisgQWN0aW9uTWFwcGluZyBpbnN0YW5jZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXRNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+c2V0TWFwcGluZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2VydmxldCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTZXJ2bGV0PC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4gPEI+Z2V0U2VydmxldDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0I+PC9ERD4KKzxERD5HZXQgdGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2UKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRTZXJ2bGV0KCkiPmdldFNlcnZsZXQ8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1hcHBpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWFwcGluZzwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IDxCPmdldE1hcHBpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBpbnRlcmZhY2U6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9CPjwvREQ+Cis8REQ+R2V0IHRoZSBBY3Rpb25NYXBwaW5nIGluc3RhbmNlIGZvciB0aGlzIHJlcXVlc3QKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRNYXBwaW5nKCkiPmdldE1hcHBpbmc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1heFNpemUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWF4U2l6ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGxvbmcgPEI+Z2V0TWF4U2l6ZTwvQj4oKQorICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5HZXRzIHRoZSBtYXhpbXVtIHBvc3QgZGF0YSBzaXplIGluIGJ5dGVzIGZyb20gdGhlIHN0cmluZworIHJlcHJlc2VudGF0aW9uIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXRyaWV2ZVRlbXBEaXIoKSI+PCEtLSAtLT48L0E+PEgzPgorcmV0cmlldmVUZW1wRGlyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5yZXRyaWV2ZVRlbXBEaXI8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXRyaWV2ZXMgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgZnJvbSBlaXRoZXIgQWN0aW9uU2VydmxldCwgYSBjb250ZXh0CisgcHJvcGVydHksIG9yIGEgc3lzdGVtIHByb3BlcnR5LCBpbiB0aGF0IG9yZGVyLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMiAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmYTc1NDMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbApAQCAtMCwwICsxLDQwMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gU3VuIEFwciAyMCAyMzo1MDoxMyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0Zvcm1GaWxlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuRm9ybUZpbGUsRm9ybUZpbGUgaW50ZXJmYWNlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJGb3JtRmlsZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRm9ybUZpbGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvRk9OVD4KKzxCUj4KK0ludGVyZmFjZSBGb3JtRmlsZTwvSDI+Cis8REw+Cis8RFQ+PEI+QWxsIEtub3duIEltcGxlbWVudGluZyBDbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj5EaXNrRmlsZTwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgaW50ZXJmYWNlIDxCPkZvcm1GaWxlPC9CPjwvREw+CisKKzxQPgorVGhpcyBpbnRlcmZhY2UgcmVwcmVzZW50cyBhIGZpbGUgdGhhdCBoYXMgYmVlbiB1cGxvYWRlZCBieSBhIGNsaWVudC4gSXQgaXMKKyB0aGUgb25seSBpbnRlcmZhY2Ugb3IgY2xhc3MgaW4gdXBsb2FkIHBhY2thZ2Ugd2hpY2ggaXMgdHlwaWNhbGx5IHJlZmVyZW5jZWQKKyBkaXJlY3RseSBieSBhIFN0cnV0cyBhcHBsaWNhdGlvbi4KKzxQPgorCis8UD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjZGVzdHJveSgpIj5kZXN0cm95PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGVzdHJveXMgYWxsIGNvbnRlbnQgZm9yIHRoZSB1cGxvYWRlZCBmaWxlLCBpbmNsdWRpbmcgYW55IHVuZGVybHlpbmcKKyBkYXRhIGZpbGVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2dldENvbnRlbnRUeXBlKCkiPmdldENvbnRlbnRUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgY29udGVudCB0eXBlIGZvciB0aGlzIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2J5dGVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNnZXRGaWxlRGF0YSgpIj5nZXRGaWxlRGF0YTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIGRhdGEgZm9yIHRoZSBlbnRpcmUgZmlsZSBhcyBieXRlIGFycmF5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2dldEZpbGVOYW1lKCkiPmdldEZpbGVOYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgZmlsZSBuYW1lIG9mIHRoaXMgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2dldEZpbGVTaXplKCkiPmdldEZpbGVTaXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgc2l6ZSBvZiB0aGlzIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEuaW8uSW5wdXRTdHJlYW08L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjZ2V0SW5wdXRTdHJlYW0oKSI+Z2V0SW5wdXRTdHJlYW08L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGFuIGlucHV0IHN0cmVhbSBmb3IgdGhpcyBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI3NldENvbnRlbnRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb250ZW50VHlwZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250ZW50VHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhpcyBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI3NldEZpbGVOYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGaWxlTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIGZpbGUgbmFtZSBvZiB0aGlzIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjc2V0RmlsZVNpemUoaW50KSI+c2V0RmlsZVNpemU8L0E+PC9CPihpbnQmbmJzcDtmaWxlU2l6ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIGZpbGUgc2l6ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldENvbnRlbnRUeXBlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbnRlbnRUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRDb250ZW50VHlwZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhpcyBmaWxlLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgU3RyaW5nIHJlcHJlc2VudGluZyBjb250ZW50IHR5cGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb250ZW50VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Q29udGVudFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbnRlbnRUeXBlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udGVudFR5cGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgY29udGVudCB0eXBlIGZvciB0aGlzIGZpbGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbnRlbnRUeXBlPC9DT0RFPiAtIFRoZSBjb250ZW50IHR5cGUgZm9yIHRoZSBmaWxlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmlsZVNpemUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmlsZVNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0RmlsZVNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBzaXplIG9mIHRoaXMgZmlsZS4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgc2l6ZSBvZiB0aGUgZmlsZSwgaW4gYnl0ZXMuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGaWxlU2l6ZShpbnQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGaWxlU2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RmlsZVNpemU8L0I+KGludCZuYnNwO2ZpbGVTaXplKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIGZpbGUgc2l6ZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmlsZVNpemU8L0NPREU+IC0gVGhlIHNpemUgb2YgdGhlIGZpbGUsIGluIGJ5dGVzLDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmlsZU5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmlsZU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEZpbGVOYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgZmlsZSBuYW1lIG9mIHRoaXMgZmlsZS4gVGhpcyBpcyB0aGUgYmFzZSBuYW1lIG9mIHRoZSBmaWxlLAorIGFzIHN1cHBsaWVkIGJ5IHRoZSB1c2VyIHdoZW4gdGhlIGZpbGUgd2FzIHVwbG9hZGVkLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBiYXNlIGZpbGUgbmFtZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZpbGVOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGaWxlTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RmlsZU5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlTmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBmaWxlIG5hbWUgb2YgdGhpcyBmaWxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5maWxlTmFtZTwvQ09ERT4gLSBUaGUgYmFzZSBmaWxlIG5hbWUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGaWxlRGF0YSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGaWxlRGF0YTwvSDM+Cis8UFJFPgorcHVibGljIGJ5dGVbXSA8Qj5nZXRGaWxlRGF0YTwvQj4oKQorICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIGRhdGEgZm9yIHRoZSBlbnRpcmUgZmlsZSBhcyBieXRlIGFycmF5LiBDYXJlIGlzIG5lZWRlZCB3aGVuCisgdXNpbmcgdGhpcyBtZXRob2QsIHNpbmNlIGEgbGFyZ2UgdXBsb2FkIGNvdWxkIGVhc2lseSBleGhhdXN0IGF2YWlsYWJsZQorIG1lbW9yeS4gVGhlIHByZWZlcnJlZCBtZXRob2QgZm9yIGFjY2Vzc2luZyB0aGUgZmlsZSBkYXRhIGlzCisgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjZ2V0SW5wdXRTdHJlYW0oKSI+PENPREU+Z2V0SW5wdXRTdHJlYW08L0NPREU+PC9BPi4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgZmlsZSBkYXRhIGFzIGEgYnl0ZSBhcnJheS4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSB1cGxvYWRlZCBmaWxlIGlzIG5vdCBmb3VuZC4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHJlYWRpbmcgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldElucHV0U3RyZWFtKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElucHV0U3RyZWFtPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5pby5JbnB1dFN0cmVhbSA8Qj5nZXRJbnB1dFN0cmVhbTwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyBhbiBpbnB1dCBzdHJlYW0gZm9yIHRoaXMgZmlsZS4gVGhlIGNhbGxlciBtdXN0IGNsb3NlIHRoZQorIHN0cmVhbSB3aGVuIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSB1cGxvYWRlZCBmaWxlIGlzIG5vdCBmb3VuZC4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHJlYWRpbmcgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRlc3Ryb3koKSI+PCEtLSAtLT48L0E+PEgzPgorZGVzdHJveTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZGVzdHJveTwvQj4oKTwvUFJFPgorPERMPgorPEREPkRlc3Ryb3lzIGFsbCBjb250ZW50IGZvciB0aGUgdXBsb2FkZWQgZmlsZSwgaW5jbHVkaW5nIGFueSB1bmRlcmx5aW5nCisgZGF0YSBmaWxlcy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcm1GaWxlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDIgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGQxYjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwKQEAgLTAsMCArMSwzMzEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFN1biBBcHIgMjAgMjM6NTA6MTQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitNYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLE1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJNYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0ZPTlQ+Cis8QlI+CitDbGFzcyBNYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmEubGFuZy5UaHJvd2FibGUKKyAgICAgICAgfAorICAgICAgICArLS1qYXZhLmxhbmcuRXhjZXB0aW9uCisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tamF2YS5pby5JT0V4Y2VwdGlvbgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9CPjxEVD5leHRlbmRzIGphdmEuaW8uSU9FeGNlcHRpb248L0RMPgorCis8UD4KK1RoaXMgZXhjZXB0aW9uIGlzIHRocm93biB3aGVuIG11bHRpcGFydCBwb3N0IGRhdGEgZXhjZWVkcyB0aGUgbWF4aW11bQorIHZhbHVlIHNldAorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjbWVzc2FnZSI+bWVzc2FnZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLkV4Y2VwdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuVGhyb3dhYmxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5UaHJvd2FibGU8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCNNYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbigpIj5NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24obG9uZykiPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPjwvQj4obG9uZyZuYnNwO21heExlbmd0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjZ2V0TWVzc2FnZSgpIj5nZXRNZXNzYWdlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuVGhyb3dhYmxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuVGhyb3dhYmxlPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmlsbEluU3RhY2tUcmFjZSwgZ2V0Q2F1c2UsIGdldExvY2FsaXplZE1lc3NhZ2UsIGdldFN0YWNrVHJhY2UsIGluaXRDYXVzZSwgcHJpbnRTdGFja1RyYWNlLCBwcmludFN0YWNrVHJhY2UsIHByaW50U3RhY2tUcmFjZSwgc2V0U3RhY2tUcmFjZSwgdG9TdHJpbmc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1lc3NhZ2UiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2U8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm1lc3NhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Ik1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKGxvbmcpIj48IS0tIC0tPjwvQT48SDM+CitNYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9CPihsb25nJm5ic3A7bWF4TGVuZ3RoKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldE1lc3NhZ2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEubGFuZy5UaHJvd2FibGU8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDIgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGI4YTNjYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwKQEAgLTAsMCArMSwxODU5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBTdW4gQXByIDIwIDIzOjUwOjEzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0sTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9GT05UPgorPEJSPgorQ2xhc3MgTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmEuaW8uSW5wdXRTdHJlYW0KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9CPjxEVD5leHRlbmRzIGphdmEuaW8uSW5wdXRTdHJlYW08L0RMPgorCis8UD4KK1RoaXMgY2xhc3MgZW5jYXBzdWxhdGVzIHBhcnNpbmcgZnVuY3Rpb25hbGl0eSBmb3IgUkZDMTg2NywgbXVsdGlwYXJ0L2Zvcm0tZGF0YS4gU2VlIE11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW1UZXN0CisgYW5kIE11bHRpcGFydEl0ZXJhdG9yIGZvciB1c2FnZSBleGFtcGxlcy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5NaWtlIFNjaGFjaHRlcjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2JvdW5kYXJ5Ij5ib3VuZGFyeTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYm91bmRhcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ynl0ZVtdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjYm91bmRhcnlCeXRlcyI+Ym91bmRhcnlCeXRlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNib3VuZGFyeUVuY291bnRlcmVkIj5ib3VuZGFyeUVuY291bnRlcmVkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1doZXRoZXIgb3Igbm90IHRoZSBib3VuZGFyeSBoYXMgYmVlbiBlbmNvdW50ZXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2xvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNieXRlc1JlYWQiPmJ5dGVzUmVhZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHJlYWQgc28gZmFyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2J5dGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNDQVJSSUFHRV9SRVRVUk4iPkNBUlJJQUdFX1JFVFVSTjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjQ09OVEVOVF9UWVBFX0FQUExJQ0FUSU9OX09DVEVUX1NUUkVBTSI+Q09OVEVOVF9UWVBFX0FQUExJQ0FUSU9OX09DVEVUX1NUUkVBTTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjQ09OVEVOVF9UWVBFX1RFWFRfUExBSU4iPkNPTlRFTlRfVFlQRV9URVhUX1BMQUlOPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2J5dGVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI0NSTEYiPkNSTEY8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI0RFRkFVTFRfQ09OVEVOVF9ESVNQT1NJVElPTiI+REVGQVVMVF9DT05URU5UX0RJU1BPU0lUSU9OPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI0RFRkFVTFRfTElORV9TSVpFIj5ERUZBVUxUX0xJTkVfU0laRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjRE9VQkxFX0RBU0hfU1RSSU5HIj5ET1VCTEVfREFTSF9TVFJJTkc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZWxlbWVudENoYXJzZXQiPmVsZW1lbnRDaGFyc2V0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgdGhlIGVsZW1lbnQsIHNwZWNpZmllZCBpbiB0aGUgZWxlbWVudCdzIENvbnRlbnQtVHlwZSBoZWFkZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZWxlbWVudENvbnRlbnREaXNwb3NpdGlvbiI+ZWxlbWVudENvbnRlbnREaXNwb3NpdGlvbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgQ29udGVudC1EaXNwb3NpdGlvbiBmb3IgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50IGJlaW5nIHJlYWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZWxlbWVudENvbnRlbnRUeXBlIj5lbGVtZW50Q29udGVudFR5cGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIENvbnRlbnQtVHlwZSBvZiB0aGUgY3VycmVudCBmb3JtIGVsZW1lbnQgYmVpbmcgcmVhZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNlbGVtZW50RmlsZU5hbWUiPmVsZW1lbnRGaWxlTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZmlsZW5hbWUgb2YgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50IGJlaW5nIHJlYWQsIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSBjdXJyZW50IGZvcm0gZWxlbWVudCBpcworIHRleHQgZGF0YS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNlbGVtZW50TmFtZSI+ZWxlbWVudE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50IGJlaW5nIHJlYWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZW5kT2ZTdHJlYW0iPmVuZE9mU3RyZWFtPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1doZXRoZXIgb3Igbm90IHRoZSBlbmQgb2YgdGhlIHN0cmVhbSBoYXMgYmVlbiByZWFkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2J5dGVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2ZpbmFsQm91bmRhcnlCeXRlcyI+ZmluYWxCb3VuZGFyeUJ5dGVzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2ZpbmFsQm91bmRhcnlFbmNvdW50ZXJlZCI+ZmluYWxCb3VuZGFyeUVuY291bnRlcmVkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1doZXRoZXIgb3Igbm90IHRoZSBmaW5hbCBib3VuZGFyeSBoYXMgYmVlbiBlbmNvdW50ZXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEuaW8uSW5wdXRTdHJlYW08L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNpbnB1dFN0cmVhbSI+aW5wdXRTdHJlYW08L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIElucHV0U3RyZWFtIHRvIHJlYWQgZnJvbS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtieXRlW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNsaW5lIj5saW5lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNsaW5lSGFzQ2FycmlhZ2UiPmxpbmVIYXNDYXJyaWFnZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjbGluZUhhc05ld2xpbmUiPmxpbmVIYXNOZXdsaW5lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2xpbmVJbmRleCI+bGluZUluZGV4PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2xpbmVMZW5ndGgiPmxpbmVMZW5ndGg8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjbGluZVNpemUiPmxpbmVTaXplPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7bG9uZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI21heExlbmd0aCI+bWF4TGVuZ3RoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtYXhpbXVtIGxlbmd0aCBpbiBieXRlcyB0byByZWFkIGZyb20gdGhlIHN0cmVhbSBhdCBhIHRpbWUsIG9yIC0xIGZvciB1bmxpbWl0ZWQgbGVuZ3RoLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI21heExlbmd0aE1ldCI+bWF4TGVuZ3RoTWV0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1doZXRoZXIgb3Igbm90IHRoZSBtYXhpbXVtIGxlbmd0aCBoYXMgYmVlbiBtZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI01FU1NBR0VfSU5WQUxJRF9TVEFSVCI+TUVTU0FHRV9JTlZBTElEX1NUQVJUPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2J5dGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNORVdMSU5FX0JZVEUiPk5FV0xJTkVfQllURTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjUEFSQU1FVEVSX0NIQVJTRVQiPlBBUkFNRVRFUl9DSEFSU0VUPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNQQVJBTUVURVJfRklMRU5BTUUiPlBBUkFNRVRFUl9GSUxFTkFNRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjUEFSQU1FVEVSX05BTUUiPlBBUkFNRVRFUl9OQU1FPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2NoYXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNUT0tFTl9DT0xPTiI+VE9LRU5fQ09MT048L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI1RPS0VOX0VRVUFMUyI+VE9LRU5fRVFVQUxTPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2NoYXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNUT0tFTl9RVU9URSI+VE9LRU5fUVVPVEU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7Y2hhcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI1RPS0VOX1NFTUlfQ09MT04iPlRPS0VOX1NFTUlfQ09MT048L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7Y2hhcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI1RPS0VOX1NQQUNFIj5UT0tFTl9TUEFDRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5pby5JbnB1dFN0cmVhbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmlvLklucHV0U3RyZWFtPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNNdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtKCkiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2F2YWlsYWJsZUluTGluZSgpIj5hdmFpbGFibGVJbkxpbmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjYnl0ZVJlYWQoKSI+Ynl0ZVJlYWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjY2hlY2tBbmRGaXhGaWxlbmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+Y2hlY2tBbmRGaXhGaWxlbmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlbmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNjaGVja0ZvckJvdW5kYXJ5KCkiPmNoZWNrRm9yQm91bmRhcnk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZXF1YWxzKGJ5dGVbXSwgaW50LCBpbnQsIGJ5dGVbXSkiPmVxdWFsczwvQT48L0I+KGJ5dGVbXSZuYnNwO2NvbXAsCisgICAgICAgaW50Jm5ic3A7b2Zmc2V0LAorICAgICAgIGludCZuYnNwO2xlbmd0aCwKKyAgICAgICBieXRlW10mbmJzcDtzb3VyY2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDaGVja3MgYnl0ZXMgZm9yIGVxdWFsaXR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNmaWxsTGluZSgpIj5maWxsTGluZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNmaWxsTGluZUJ1ZmZlcigpIj5maWxsTGluZUJ1ZmZlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtsb25nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZ2V0Qnl0ZXNSZWFkKCkiPmdldEJ5dGVzUmVhZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZ2V0RWxlbWVudENoYXJzZXQoKSI+Z2V0RWxlbWVudENoYXJzZXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2dldEVsZW1lbnRDb250ZW50RGlzcG9zaXRpb24oKSI+Z2V0RWxlbWVudENvbnRlbnREaXNwb3NpdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHMgdGhlIHZhbHVlIGZvciB0aGUgIkNvbnRlbnQtRGlzcG9zaXRpbyIgaGVhZGVyIGZvciB0aGUgY3VycmVudCBtdWx0aXBhcnQgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2dldEVsZW1lbnRDb250ZW50VHlwZSgpIj5nZXRFbGVtZW50Q29udGVudFR5cGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHRoZSAiQ29udGVudC1UeXBlIiBvZiB0aGUgY3VycmVudCBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZ2V0RWxlbWVudEZpbGVOYW1lKCkiPmdldEVsZW1lbnRGaWxlTmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHMgdGhlIGZpbGVuYW1lIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgbnVsbCBpZiB0aGUgY3VycmVudCBlbGVtZW50CisgaXNuJ3QgYSBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZ2V0RWxlbWVudE5hbWUoKSI+Z2V0RWxlbWVudE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2xvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNnZXRNYXhMZW5ndGgoKSI+Z2V0TWF4TGVuZ3RoPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNpc0JvdW5kYXJ5RW5jb3VudGVyZWQoKSI+aXNCb3VuZGFyeUVuY291bnRlcmVkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgYm91bmRhcnkgaGFzIGJlZW4gZW5jb3VudGVyZWQgd2hpbGUgcmVhZGluZyBkYXRhLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjaXNFbGVtZW50RmlsZSgpIj5pc0VsZW1lbnRGaWxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0cyB3aGV0aGVyIG9yIG5vdCB0aGUgY3VycmVudCBmb3JtIGVsZW1lbnQgYmVpbmcgcmVhZCBpcyBhIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNpc0VuZE9mU3RyZWFtKCkiPmlzRW5kT2ZTdHJlYW08L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXaGV0aGVyIG9yIG5vdCBhbiBFT0YgaGFzIGJlZW4gcmVhZCBvbiB0aGUgc3RyZWFtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjaXNGaW5hbEJvdW5kYXJ5RW5jb3VudGVyZWQoKSI+aXNGaW5hbEJvdW5kYXJ5RW5jb3VudGVyZWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBmaW5hbCBib3VuZGFyeSBoYXMgYmVlbiBlbmNvdW50ZXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2lzTWF4TGVuZ3RoTWV0KCkiPmlzTWF4TGVuZ3RoTWV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V2hldGhlciBvciBub3QgdGhlIG1heGltdW0gbGVuZ3RoIGhhcyBiZWVuIG1ldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI21hcmsoaW50KSI+bWFyazwvQT48L0I+KGludCZuYnNwO2kpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNYXJrcyB0aGUgdW5kZXJseWluZyBzdHJlYW0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3BhcnNlRm9yUGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5wYXJzZUZvclBhcmFtZXRlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbWV0ZXIsCisgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyc2VTdHJpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjcGFyc2VIZWFkZXJWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+cGFyc2VIZWFkZXJWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtoZWFkZXJMaW5lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3JlYWQoKSI+cmVhZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlYWRzIGZyb20gdGhlIHN0cmVhbS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjcmVhZChieXRlW10pIj5yZWFkPC9BPjwvQj4oYnl0ZVtdJm5ic3A7YnVmZmVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3JlYWQoYnl0ZVtdLCBpbnQsIGludCkiPnJlYWQ8L0E+PC9CPihieXRlW10mbmJzcDtidWZmZXIsCisgICAgIGludCZuYnNwO29mZnNldCwKKyAgICAgaW50Jm5ic3A7bGVuZ3RoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3JlYWRDb250ZW50RGlzcG9zaXRpb24oKSI+cmVhZENvbnRlbnREaXNwb3NpdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZWFkQ29udGVudFR5cGUoKSI+cmVhZENvbnRlbnRUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3JlYWRFbGVtZW50SGVhZGVycygpIj5yZWFkRWxlbWVudEhlYWRlcnM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjcmVhZEZpcnN0RWxlbWVudCgpIj5yZWFkRmlyc3RFbGVtZW50PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjcmVhZEZyb21MaW5lKCkiPnJlYWRGcm9tTGluZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZWFkTGluZSgpIj5yZWFkTGluZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjcmVzZXQoKSI+cmVzZXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldHMgdGhlIHVuZGVybHlpbmcgaW5wdXQgc3RyZWFtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZXNldENybGYoKSI+cmVzZXRDcmxmPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZXNldEZvck5leHRCb3VuZGFyeSgpIj5yZXNldEZvck5leHRCb3VuZGFyeTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Jlc2V0cyB0aGlzIHN0cmVhbSBmb3IgdXNlIHdpdGggdGhlIG5leHQgZWxlbWVudCwgdG8gYmUgdXNlZCBhZnRlciBhIGJvdW5kYXJ5IGlzIGVuY291bnRlcmVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZXNldExpbmUoKSI+cmVzZXRMaW5lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3Jlc2V0U3RyZWFtKCkiPnJlc2V0U3RyZWFtPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNzZXRCb3VuZGFyeShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Qm91bmRhcnk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Ym91bmRhcnkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBib3VuZGFyeSB0aGF0IHRlcm1pbmF0ZXMgdGhlIGRhdGEgZm9yIHRoZSBzdHJlYW0sIGFmdGVyIGFkZGluZyB0aGUgcHJlZml4ICItLSI8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3NldElucHV0U3RyZWFtKGphdmEuaW8uSW5wdXRTdHJlYW0pIj5zZXRJbnB1dFN0cmVhbTwvQT48L0I+KGphdmEuaW8uSW5wdXRTdHJlYW0mbmJzcDtzdHJlYW0pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBpbnB1dCBzdHJlYW0gdXNlZCB0byByZWFkIG11bHRpcGFydCBkYXRhLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjc2V0TGluZVNpemUoaW50KSI+c2V0TGluZVNpemU8L0E+PC9CPihpbnQmbmJzcDtzaXplKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNzZXRNYXhMZW5ndGgobG9uZykiPnNldE1heExlbmd0aDwvQT48L0I+KGxvbmcmbmJzcDttYXhMZW5ndGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIG1heGltdW0gbGVuZ3RoIGluIGJ5dGVzIHRvIHJlYWQsIG9yIC0xIGZvciBhbiB1bmxpbWl0ZWQgbGVuZ3RoLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNza2lwQ3VycmVudExpbmVJZkJsYW5rKCkiPnNraXBDdXJyZW50TGluZUlmQmxhbms8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEuaW8uSW5wdXRTdHJlYW0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEuaW8uSW5wdXRTdHJlYW08L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5hdmFpbGFibGUsIGNsb3NlLCBtYXJrU3VwcG9ydGVkLCBza2lwPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTkVXTElORV9CWVRFIj48IS0tIC0tPjwvQT48SDM+CitORVdMSU5FX0JZVEU8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGJ5dGUgPEI+TkVXTElORV9CWVRFPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uTkVXTElORV9CWVRFIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkNBUlJJQUdFX1JFVFVSTiI+PCEtLSAtLT48L0E+PEgzPgorQ0FSUklBR0VfUkVUVVJOPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIDxCPkNBUlJJQUdFX1JFVFVSTjwvQj48L1BSRT4KKzxETD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLkNBUlJJQUdFX1JFVFVSTiI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJDUkxGIj48IS0tIC0tPjwvQT48SDM+CitDUkxGPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlW10gPEI+Q1JMRjwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJET1VCTEVfREFTSF9TVFJJTkciPjwhLS0gLS0+PC9BPjxIMz4KK0RPVUJMRV9EQVNIX1NUUklORzwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5ET1VCTEVfREFTSF9TVFJJTkc8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5ET1VCTEVfREFTSF9TVFJJTkciPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iREVGQVVMVF9MSU5FX1NJWkUiPjwhLS0gLS0+PC9BPjxIMz4KK0RFRkFVTFRfTElORV9TSVpFPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgPEI+REVGQVVMVF9MSU5FX1NJWkU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5ERUZBVUxUX0xJTkVfU0laRSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJUT0tFTl9FUVVBTFMiPjwhLS0gLS0+PC9BPjxIMz4KK1RPS0VOX0VRVUFMUzwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5UT0tFTl9FUVVBTFM8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5UT0tFTl9FUVVBTFMiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iVE9LRU5fUVVPVEUiPjwhLS0gLS0+PC9BPjxIMz4KK1RPS0VOX1FVT1RFPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIDxCPlRPS0VOX1FVT1RFPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uVE9LRU5fUVVPVEUiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iVE9LRU5fQ09MT04iPjwhLS0gLS0+PC9BPjxIMz4KK1RPS0VOX0NPTE9OPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIDxCPlRPS0VOX0NPTE9OPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uVE9LRU5fQ09MT04iPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iVE9LRU5fU0VNSV9DT0xPTiI+PCEtLSAtLT48L0E+PEgzPgorVE9LRU5fU0VNSV9DT0xPTjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciA8Qj5UT0tFTl9TRU1JX0NPTE9OPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uVE9LRU5fU0VNSV9DT0xPTiI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJUT0tFTl9TUEFDRSI+PCEtLSAtLT48L0E+PEgzPgorVE9LRU5fU1BBQ0U8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgPEI+VE9LRU5fU1BBQ0U8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5UT0tFTl9TUEFDRSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJERUZBVUxUX0NPTlRFTlRfRElTUE9TSVRJT04iPjwhLS0gLS0+PC9BPjxIMz4KK0RFRkFVTFRfQ09OVEVOVF9ESVNQT1NJVElPTjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5ERUZBVUxUX0NPTlRFTlRfRElTUE9TSVRJT048L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5ERUZBVUxUX0NPTlRFTlRfRElTUE9TSVRJT04iPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iUEFSQU1FVEVSX05BTUUiPjwhLS0gLS0+PC9BPjxIMz4KK1BBUkFNRVRFUl9OQU1FPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPlBBUkFNRVRFUl9OQU1FPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uUEFSQU1FVEVSX05BTUUiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iUEFSQU1FVEVSX0ZJTEVOQU1FIj48IS0tIC0tPjwvQT48SDM+CitQQVJBTUVURVJfRklMRU5BTUU8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+UEFSQU1FVEVSX0ZJTEVOQU1FPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uUEFSQU1FVEVSX0ZJTEVOQU1FIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlBBUkFNRVRFUl9DSEFSU0VUIj48IS0tIC0tPjwvQT48SDM+CitQQVJBTUVURVJfQ0hBUlNFVDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5QQVJBTUVURVJfQ0hBUlNFVDwvQj48L1BSRT4KKzxETD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLlBBUkFNRVRFUl9DSEFSU0VUIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkNPTlRFTlRfVFlQRV9URVhUX1BMQUlOIj48IS0tIC0tPjwvQT48SDM+CitDT05URU5UX1RZUEVfVEVYVF9QTEFJTjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5DT05URU5UX1RZUEVfVEVYVF9QTEFJTjwvQj48L1BSRT4KKzxETD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLkNPTlRFTlRfVFlQRV9URVhUX1BMQUlOIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkNPTlRFTlRfVFlQRV9BUFBMSUNBVElPTl9PQ1RFVF9TVFJFQU0iPjwhLS0gLS0+PC9BPjxIMz4KK0NPTlRFTlRfVFlQRV9BUFBMSUNBVElPTl9PQ1RFVF9TVFJFQU08L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+Q09OVEVOVF9UWVBFX0FQUExJQ0FUSU9OX09DVEVUX1NUUkVBTTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLkNPTlRFTlRfVFlQRV9BUFBMSUNBVElPTl9PQ1RFVF9TVFJFQU0iPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTUVTU0FHRV9JTlZBTElEX1NUQVJUIj48IS0tIC0tPjwvQT48SDM+CitNRVNTQUdFX0lOVkFMSURfU1RBUlQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+TUVTU0FHRV9JTlZBTElEX1NUQVJUPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uTUVTU0FHRV9JTlZBTElEX1NUQVJUIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlucHV0U3RyZWFtIj48IS0tIC0tPjwvQT48SDM+CitpbnB1dFN0cmVhbTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEuaW8uSW5wdXRTdHJlYW0gPEI+aW5wdXRTdHJlYW08L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIElucHV0U3RyZWFtIHRvIHJlYWQgZnJvbS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJvdW5kYXJ5Ij48IS0tIC0tPjwvQT48SDM+Citib3VuZGFyeTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Ym91bmRhcnk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvdW5kYXJ5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYm91bmRhcnlFbmNvdW50ZXJlZCI+PCEtLSAtLT48L0E+PEgzPgorYm91bmRhcnlFbmNvdW50ZXJlZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+Ym91bmRhcnlFbmNvdW50ZXJlZDwvQj48L1BSRT4KKzxETD4KKzxERD5XaGV0aGVyIG9yIG5vdCB0aGUgYm91bmRhcnkgaGFzIGJlZW4gZW5jb3VudGVyZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5hbEJvdW5kYXJ5RW5jb3VudGVyZWQiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmFsQm91bmRhcnlFbmNvdW50ZXJlZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+ZmluYWxCb3VuZGFyeUVuY291bnRlcmVkPC9CPjwvUFJFPgorPERMPgorPEREPldoZXRoZXIgb3Igbm90IHRoZSBmaW5hbCBib3VuZGFyeSBoYXMgYmVlbiBlbmNvdW50ZXJlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVuZE9mU3RyZWFtIj48IS0tIC0tPjwvQT48SDM+CitlbmRPZlN0cmVhbTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+ZW5kT2ZTdHJlYW08L0I+PC9QUkU+Cis8REw+Cis8REQ+V2hldGhlciBvciBub3QgdGhlIGVuZCBvZiB0aGUgc3RyZWFtIGhhcyBiZWVuIHJlYWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbGVtZW50Q29udGVudERpc3Bvc2l0aW9uIj48IS0tIC0tPjwvQT48SDM+CitlbGVtZW50Q29udGVudERpc3Bvc2l0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5lbGVtZW50Q29udGVudERpc3Bvc2l0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBDb250ZW50LURpc3Bvc2l0aW9uIGZvciB0aGUgY3VycmVudCBmb3JtIGVsZW1lbnQgYmVpbmcgcmVhZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVsZW1lbnROYW1lIj48IS0tIC0tPjwvQT48SDM+CitlbGVtZW50TmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+ZWxlbWVudE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50IGJlaW5nIHJlYWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbGVtZW50Q29udGVudFR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KK2VsZW1lbnRDb250ZW50VHlwZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+ZWxlbWVudENvbnRlbnRUeXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBDb250ZW50LVR5cGUgb2YgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50IGJlaW5nIHJlYWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbGVtZW50RmlsZU5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK2VsZW1lbnRGaWxlTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+ZWxlbWVudEZpbGVOYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBmaWxlbmFtZSBvZiB0aGUgY3VycmVudCBmb3JtIGVsZW1lbnQgYmVpbmcgcmVhZCwgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50IGlzCisgdGV4dCBkYXRhLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZWxlbWVudENoYXJzZXQiPjwhLS0gLS0+PC9BPjxIMz4KK2VsZW1lbnRDaGFyc2V0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5lbGVtZW50Q2hhcnNldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY2hhcmFjdGVyIGVuY29kaW5nIG9mIHRoZSBlbGVtZW50LCBzcGVjaWZpZWQgaW4gdGhlIGVsZW1lbnQncyBDb250ZW50LVR5cGUgaGVhZGVyLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWF4TGVuZ3RoIj48IS0tIC0tPjwvQT48SDM+CittYXhMZW5ndGg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBsb25nIDxCPm1heExlbmd0aDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWF4aW11bSBsZW5ndGggaW4gYnl0ZXMgdG8gcmVhZCBmcm9tIHRoZSBzdHJlYW0gYXQgYSB0aW1lLCBvciAtMSBmb3IgdW5saW1pdGVkIGxlbmd0aC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1heExlbmd0aE1ldCI+PCEtLSAtLT48L0E+PEgzPgorbWF4TGVuZ3RoTWV0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5tYXhMZW5ndGhNZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+V2hldGhlciBvciBub3QgdGhlIG1heGltdW0gbGVuZ3RoIGhhcyBiZWVuIG1ldC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJ5dGVzUmVhZCI+PCEtLSAtLT48L0E+PEgzPgorYnl0ZXNSZWFkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgbG9uZyA8Qj5ieXRlc1JlYWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHRvdGFsIG51bWJlciBvZiBieXRlcyByZWFkIHNvIGZhci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJvdW5kYXJ5Qnl0ZXMiPjwhLS0gLS0+PC9BPjxIMz4KK2JvdW5kYXJ5Qnl0ZXM8L0gzPgorPFBSRT4KK3ByaXZhdGUgYnl0ZVtdIDxCPmJvdW5kYXJ5Qnl0ZXM8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluYWxCb3VuZGFyeUJ5dGVzIj48IS0tIC0tPjwvQT48SDM+CitmaW5hbEJvdW5kYXJ5Qnl0ZXM8L0gzPgorPFBSRT4KK3ByaXZhdGUgYnl0ZVtdIDxCPmZpbmFsQm91bmRhcnlCeXRlczwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsaW5lIj48IS0tIC0tPjwvQT48SDM+CitsaW5lPC9IMz4KKzxQUkU+Citwcml2YXRlIGJ5dGVbXSA8Qj5saW5lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxpbmVTaXplIj48IS0tIC0tPjwvQT48SDM+CitsaW5lU2l6ZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBpbnQgPEI+bGluZVNpemU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGluZUxlbmd0aCI+PCEtLSAtLT48L0E+PEgzPgorbGluZUxlbmd0aDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBpbnQgPEI+bGluZUxlbmd0aDwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsaW5lSGFzTmV3bGluZSI+PCEtLSAtLT48L0E+PEgzPgorbGluZUhhc05ld2xpbmU8L0gzPgorPFBSRT4KK3ByaXZhdGUgYm9vbGVhbiA8Qj5saW5lSGFzTmV3bGluZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsaW5lSGFzQ2FycmlhZ2UiPjwhLS0gLS0+PC9BPjxIMz4KK2xpbmVIYXNDYXJyaWFnZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBib29sZWFuIDxCPmxpbmVIYXNDYXJyaWFnZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsaW5lSW5kZXgiPjwhLS0gLS0+PC9BPjxIMz4KK2xpbmVJbmRleDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBpbnQgPEI+bGluZUluZGV4PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtKCkiPjwhLS0gLS0+PC9BPjxIMz4KK011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJzZXRCb3VuZGFyeShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Qm91bmRhcnk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEJvdW5kYXJ5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Ym91bmRhcnkpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgYm91bmRhcnkgdGhhdCB0ZXJtaW5hdGVzIHRoZSBkYXRhIGZvciB0aGUgc3RyZWFtLCBhZnRlciBhZGRpbmcgdGhlIHByZWZpeCAiLS0iCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlc2V0Rm9yTmV4dEJvdW5kYXJ5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK3Jlc2V0Rm9yTmV4dEJvdW5kYXJ5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZXNldEZvck5leHRCb3VuZGFyeTwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlc2V0cyB0aGlzIHN0cmVhbSBmb3IgdXNlIHdpdGggdGhlIG5leHQgZWxlbWVudCwgdG8gYmUgdXNlZCBhZnRlciBhIGJvdW5kYXJ5IGlzIGVuY291bnRlcmVkLgorPFA+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldElucHV0U3RyZWFtKGphdmEuaW8uSW5wdXRTdHJlYW0pIj48IS0tIC0tPjwvQT48SDM+CitzZXRJbnB1dFN0cmVhbTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SW5wdXRTdHJlYW08L0I+KGphdmEuaW8uSW5wdXRTdHJlYW0mbmJzcDtzdHJlYW0pCisgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgaW5wdXQgc3RyZWFtIHVzZWQgdG8gcmVhZCBtdWx0aXBhcnQgZGF0YS4gRm9yIGVmZmljaWVuY3kgcHVycG9zZXMsIG1ha2Ugc3VyZSB0aGF0IHRoZSBzdHJlYW0KKyB5b3Ugc2V0IG9uIHRoaXMgY2xhc3MgaXMgYnVmZmVyZWQuIFRoZSB3YXkgdGhpcyBjbGFzcyByZWFkcyBsaW5lcyBpcyB0aGF0IGl0IGNvbnRpbnVhbGx5IGNhbGxzIHRoZSByZWFkKCkKKyBtZXRob2QgdW50aWwgaXQgcmVhY2hlcyBhIG5ld2xpbmUgY2hhcmFjdGVyLiBUaGF0IHdvdWxkIGJlIHRlcnJpYmxlIGlmIHlvdSB3ZXJlIHRvIHNldCBhIHNvY2tldCdzIGlucHV0IHN0cmVhbQorIGhlcmUsIGJ1dCBub3QgYXMgYmFkIG9uIGEgYnVmZmVyZWQgc3RyZWFtLgorPFA+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWQoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVhZDwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5yZWFkPC9CPigpCisgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlYWRzIGZyb20gdGhlIHN0cmVhbS4gUmV0dXJucyAtMSBpZiBpdCdzIHRoZSBlbmQgb2YgdGhlIHN0cmVhbSBvciBpZiBhIGJvdW5kYXJ5IGlzIGVuY291bnRlcmVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlYWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uSW5wdXRTdHJlYW08L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWQoYnl0ZVtdKSI+PCEtLSAtLT48L0E+PEgzPgorcmVhZDwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5yZWFkPC9CPihieXRlW10mbmJzcDtidWZmZXIpCisgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWFkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLklucHV0U3RyZWFtPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWFkKGJ5dGVbXSwgaW50LCBpbnQpIj48IS0tIC0tPjwvQT48SDM+CityZWFkPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPnJlYWQ8L0I+KGJ5dGVbXSZuYnNwO2J1ZmZlciwKKyAgICAgICAgICAgICAgICBpbnQmbmJzcDtvZmZzZXQsCisgICAgICAgICAgICAgICAgaW50Jm5ic3A7bGVuZ3RoKQorICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVhZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWFyayhpbnQpIj48IS0tIC0tPjwvQT48SDM+CittYXJrPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5tYXJrPC9CPihpbnQmbmJzcDtpKTwvUFJFPgorPERMPgorPEREPk1hcmtzIHRoZSB1bmRlcmx5aW5nIHN0cmVhbS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5tYXJrPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLklucHV0U3RyZWFtPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVzZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVzZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlc2V0PC9CPigpCisgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVzZXRzIHRoZSB1bmRlcmx5aW5nIGlucHV0IHN0cmVhbS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZXNldDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TWF4TGVuZ3RoKGxvbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNYXhMZW5ndGg8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE1heExlbmd0aDwvQj4obG9uZyZuYnNwO21heExlbmd0aCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIG1heGltdW0gbGVuZ3RoIGluIGJ5dGVzIHRvIHJlYWQsIG9yIC0xIGZvciBhbiB1bmxpbWl0ZWQgbGVuZ3RoLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNYXhMZW5ndGgoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWF4TGVuZ3RoPC9IMz4KKzxQUkU+CitwdWJsaWMgbG9uZyA8Qj5nZXRNYXhMZW5ndGg8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzTWF4TGVuZ3RoTWV0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzTWF4TGVuZ3RoTWV0PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc01heExlbmd0aE1ldDwvQj4oKTwvUFJFPgorPERMPgorPEREPldoZXRoZXIgb3Igbm90IHRoZSBtYXhpbXVtIGxlbmd0aCBoYXMgYmVlbiBtZXQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEVsZW1lbnRDb250ZW50RGlzcG9zaXRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RWxlbWVudENvbnRlbnREaXNwb3NpdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RWxlbWVudENvbnRlbnREaXNwb3NpdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldHMgdGhlIHZhbHVlIGZvciB0aGUgIkNvbnRlbnQtRGlzcG9zaXRpbyIgaGVhZGVyIGZvciB0aGUgY3VycmVudCBtdWx0aXBhcnQgZWxlbWVudC4KKyBVc3VhbGx5ICJmb3JtLWRhdGEiLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRFbGVtZW50TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFbGVtZW50TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RWxlbWVudE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXRzIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuIFRoZSBuYW1lIGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBvZgorIHRoZSAibmFtZSIgYXR0cmlidXRlIG9mIHRoZSBmb3JtIGVsZW1lbnQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEVsZW1lbnRDaGFyc2V0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEVsZW1lbnRDaGFyc2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRFbGVtZW50Q2hhcnNldDwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldHMgdGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiB0aGUgY3VycmVudCBlbGVtZW50LiBUaGUgY2hhcmFjdGVyIGVuY29kaW5nIHdvdWxkIGhhdmUgYmVlbiBzcGVjaWZpZWQKKyBpbiB0aGUgQ29udGVudC1UeXBlIGhlYWRlciBmb3IgdGhpcyBlbGVtZW50LCBpZiBpdCB3YXNuJ3QgdGhpcyBpcyBudWxsLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRFbGVtZW50Q29udGVudFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RWxlbWVudENvbnRlbnRUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRFbGVtZW50Q29udGVudFR5cGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXRzIHRoZSAiQ29udGVudC1UeXBlIiBvZiB0aGUgY3VycmVudCBlbGVtZW50LiBJZiB0aGlzIGlzIGEgdGV4dCBlbGVtZW50LAorIHRoZSBjb250ZW50IHR5cGUgd2lsbCBwcm9iYWJseSBiZSAidGV4dC9wbGFpbiIsIG90aGVyd2lzZSBpdCB3aWxsIGJlIHRoZQorIGNvbnRlbnQgdHlwZSBvZiB0aGUgZmlsZSBlbGVtZW50LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRFbGVtZW50RmlsZU5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RWxlbWVudEZpbGVOYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRFbGVtZW50RmlsZU5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXRzIHRoZSBmaWxlbmFtZSBvZiB0aGUgY3VycmVudCBlbGVtZW50LCB3aGljaCB3aWxsIGJlIG51bGwgaWYgdGhlIGN1cnJlbnQgZWxlbWVudAorIGlzbid0IGEgZmlsZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNFbGVtZW50RmlsZSgpIj48IS0tIC0tPjwvQT48SDM+Citpc0VsZW1lbnRGaWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc0VsZW1lbnRGaWxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0cyB3aGV0aGVyIG9yIG5vdCB0aGUgY3VycmVudCBmb3JtIGVsZW1lbnQgYmVpbmcgcmVhZCBpcyBhIGZpbGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzQm91bmRhcnlFbmNvdW50ZXJlZCgpIj48IS0tIC0tPjwvQT48SDM+Citpc0JvdW5kYXJ5RW5jb3VudGVyZWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzQm91bmRhcnlFbmNvdW50ZXJlZDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgd2hldGhlciBvciBub3QgdGhlIGJvdW5kYXJ5IGhhcyBiZWVuIGVuY291bnRlcmVkIHdoaWxlIHJlYWRpbmcgZGF0YS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNGaW5hbEJvdW5kYXJ5RW5jb3VudGVyZWQoKSI+PCEtLSAtLT48L0E+PEgzPgoraXNGaW5hbEJvdW5kYXJ5RW5jb3VudGVyZWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzRmluYWxCb3VuZGFyeUVuY291bnRlcmVkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgZmluYWwgYm91bmRhcnkgaGFzIGJlZW4gZW5jb3VudGVyZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzRW5kT2ZTdHJlYW0oKSI+PCEtLSAtLT48L0E+PEgzPgoraXNFbmRPZlN0cmVhbTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+aXNFbmRPZlN0cmVhbTwvQj4oKTwvUFJFPgorPERMPgorPEREPldoZXRoZXIgb3Igbm90IGFuIEVPRiBoYXMgYmVlbiByZWFkIG9uIHRoZSBzdHJlYW0uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldExpbmVTaXplKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExpbmVTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRMaW5lU2l6ZTwvQj4oaW50Jm5ic3A7c2l6ZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEJ5dGVzUmVhZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRCeXRlc1JlYWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBsb25nIDxCPmdldEJ5dGVzUmVhZDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVhZEZpcnN0RWxlbWVudCgpIj48IS0tIC0tPjwvQT48SDM+CityZWFkRmlyc3RFbGVtZW50PC9IMz4KKzxQUkU+Citwcml2YXRlIGZpbmFsIHZvaWQgPEI+cmVhZEZpcnN0RWxlbWVudDwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWFkRWxlbWVudEhlYWRlcnMoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVhZEVsZW1lbnRIZWFkZXJzPC9IMz4KKzxQUkU+Citwcml2YXRlIGZpbmFsIHZvaWQgPEI+cmVhZEVsZW1lbnRIZWFkZXJzPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVhZENvbnRlbnREaXNwb3NpdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CityZWFkQ29udGVudERpc3Bvc2l0aW9uPC9IMz4KKzxQUkU+Citwcml2YXRlIGZpbmFsIHZvaWQgPEI+cmVhZENvbnRlbnREaXNwb3NpdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjaGVja0FuZEZpeEZpbGVuYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitjaGVja0FuZEZpeEZpbGVuYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+Y2hlY2tBbmRGaXhGaWxlbmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZpbGVuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyc2VGb3JQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcnNlRm9yUGFyYW1ldGVyPC9IMz4KKzxQUkU+Citwcml2YXRlIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+cGFyc2VGb3JQYXJhbWV0ZXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbWV0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcnNlU3RyaW5nKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVhZENvbnRlbnRUeXBlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWRDb250ZW50VHlwZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCBib29sZWFuIDxCPnJlYWRDb250ZW50VHlwZTwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcnNlSGVhZGVyVmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcnNlSGVhZGVyVmFsdWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5wYXJzZUhlYWRlclZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aGVhZGVyTGluZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNraXBDdXJyZW50TGluZUlmQmxhbmsoKSI+PCEtLSAtLT48L0E+PEgzPgorc2tpcEN1cnJlbnRMaW5lSWZCbGFuazwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCB2b2lkIDxCPnNraXBDdXJyZW50TGluZUlmQmxhbms8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVzZXRDcmxmKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3Jlc2V0Q3JsZjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCB2b2lkIDxCPnJlc2V0Q3JsZjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVzZXRTdHJlYW0oKSI+PCEtLSAtLT48L0E+PEgzPgorcmVzZXRTdHJlYW08L0gzPgorPFBSRT4KK3ByaXZhdGUgZmluYWwgdm9pZCA8Qj5yZXNldFN0cmVhbTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVhZExpbmUoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVhZExpbmU8L0gzPgorPFBSRT4KK3ByaXZhdGUgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5yZWFkTGluZTwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVhZEZyb21MaW5lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWRGcm9tTGluZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCBpbnQgPEI+cmVhZEZyb21MaW5lPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhdmFpbGFibGVJbkxpbmUoKSI+PCEtLSAtLT48L0E+PEgzPgorYXZhaWxhYmxlSW5MaW5lPC9IMz4KKzxQUkU+Citwcml2YXRlIGZpbmFsIGludCA8Qj5hdmFpbGFibGVJbkxpbmU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbGxMaW5lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbGxMaW5lPC9IMz4KKzxQUkU+Citwcml2YXRlIGZpbmFsIHZvaWQgPEI+ZmlsbExpbmU8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlc2V0TGluZSgpIj48IS0tIC0tPjwvQT48SDM+CityZXNldExpbmU8L0gzPgorPFBSRT4KK3ByaXZhdGUgZmluYWwgdm9pZCA8Qj5yZXNldExpbmU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbGxMaW5lQnVmZmVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbGxMaW5lQnVmZmVyPC9IMz4KKzxQUkU+Citwcml2YXRlIGZpbmFsIHZvaWQgPEI+ZmlsbExpbmVCdWZmZXI8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJ5dGVSZWFkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2J5dGVSZWFkPC9IMz4KKzxQUkU+Citwcml2YXRlIGZpbmFsIHZvaWQgPEI+Ynl0ZVJlYWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNoZWNrRm9yQm91bmRhcnkoKSI+PCEtLSAtLT48L0E+PEgzPgorY2hlY2tGb3JCb3VuZGFyeTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCB2b2lkIDxCPmNoZWNrRm9yQm91bmRhcnk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVxdWFscyhieXRlW10sIGludCwgaW50LCBieXRlW10pIj48IS0tIC0tPjwvQT48SDM+CitlcXVhbHM8L0gzPgorPFBSRT4KK3ByaXZhdGUgZmluYWwgYm9vbGVhbiA8Qj5lcXVhbHM8L0I+KGJ5dGVbXSZuYnNwO2NvbXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO29mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7bGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlW10mbmJzcDtzb3VyY2UpPC9QUkU+Cis8REw+Cis8REQ+Q2hlY2tzIGJ5dGVzIGZvciBlcXVhbGl0eS4gIFR3byBieXRlIGFycmF5cyBhcmUgZXF1YWwgaWYgZWFjaCBvZiB0aGVpciBlbGVtZW50cyBhcmUKKyB0aGUgc2FtZS4gIFRoaXMgbWV0aG9kIGNoZWNrcyBjb21wW29mZnNldF0gd2l0aCBzb3VyY2VbMF0gdG8gc291cmNlW2xlbmd0aC0xXSB3aXRoCisgY29tcFtvZmZzZXQgKyBsZW5ndGggLSAxXQorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb21wPC9DT0RFPiAtIFRoZSBieXRlIHRvIGNvbXBhcmUgdG8gPGNvZGU+c291cmNlPC9jb2RlPjxERD48Q09ERT5vZmZzZXQ8L0NPREU+IC0gVGhlIG9mZnNldCB0byBzdGFydCBhdCBpbiA8Y29kZT5jb21wPC9jb2RlPjxERD48Q09ERT5sZW5ndGg8L0NPREU+IC0gVGhlIGxlbmd0aCBvZiA8Y29kZT5jb21wPC9jb2RlPiB0byBjb21wYXJlIHRvPEREPjxDT0RFPnNvdXJjZTwvQ09ERT4gLSBUaGUgcmVmZXJlbmNlIGJ5dGUgYXJyYXkgdG8gdGVzdCBmb3IgZXF1YWxpdHk8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDIgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDljMjUyMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwKQEAgLTAsMCArMSw3MjQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFN1biBBcHIgMjAgMjM6NTA6MTMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitNdWx0aXBhcnRFbGVtZW50IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0RWxlbWVudCxNdWx0aXBhcnRFbGVtZW50IGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJNdWx0aXBhcnRFbGVtZW50IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik11bHRpcGFydEVsZW1lbnQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvRk9OVD4KKzxCUj4KK0NsYXNzIE11bHRpcGFydEVsZW1lbnQ8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0RWxlbWVudDwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5NdWx0aXBhcnRFbGVtZW50PC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8L0RMPgorCis8UD4KK1RoaXMgY2xhc3MgcmVwcmVzZW50cyBhbiBlbGVtZW50IGluIGEgbXVsdGlwYXJ0IHJlcXVlc3QuCisgSXQgaGFzIGEgZmV3IG1ldGhvZHMgZm9yIGRldGVybWluaW5nICogd2hldGhlciBvciBub3QgdGhlIGVsZW1lbnQgaXMgYQorIFN0cmluZyBvciBhIGZpbGUsIGFuZCBtZXRob2RzIHRvIHJldHJpZXZlIHRoZSBkYXRhIG9mIHRoZSBhZm9yZW1lbnRpb25lZAorIGVsZW1lbnQuICBUZXh0IGlucHV0IGVsZW1lbnRzIGhhdmUgYSA8Y29kZT5udWxsPC9jb2RlPiBjb250ZW50IHR5cGUsCisgZmlsZXMgaGF2ZSBhIG5vbi1udWxsIGNvbnRlbnQgdHlwZS4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5NaWtlIFNjaGFjaHRlcjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2NvbnRlbnRUeXBlIj5jb250ZW50VHlwZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udGVudCB0eXBlIG9mIHRoaXMgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2J5dGVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2RhdGEiPmRhdGE8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBzaG91bGQgbmV2ZXIgYmUgdXNlZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmlvLkZpbGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNmaWxlIj5maWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBlbGVtZW50J3MgZGF0YSByZXByZXNlbnRlZCBpbiBhIChwb3NzaWJseSB0ZW1wb3JhcnkpIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjZmlsZU5hbWUiPmZpbGVOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBlbGVtZW50J3MgZmlsZW5hbWUsIG51bGwgZm9yIHRleHQgZWxlbWVudHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjaXNGaWxlIj5pc0ZpbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V2hldGhlciBvciBub3QgdGhpcyBlbGVtZW50IGlzIGEgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBlbGVtZW50IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBlbGVtZW50J3MgdGV4dCB2YWx1ZSwgbnVsbCBmb3IgZmlsZSBlbGVtZW50czwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNNdWx0aXBhcnRFbGVtZW50KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5NdWx0aXBhcnRFbGVtZW50PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yIGZvciBhIHRleHQgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjTXVsdGlwYXJ0RWxlbWVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBieXRlW10pIj5NdWx0aXBhcnRFbGVtZW50PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlTmFtZSwKKyAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRlbnRUeXBlLAorICAgICAgICAgICAgICAgICBieXRlW10mbmJzcDtkYXRhKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSBjb25zdHJ1Y3RvciB0aGF0IHRha2VzIGFuIEZpbGUgYXMgYW4gYXJndW1lbnQKKyAgICAgICAgICAgICBhcyBvcHBvc2VkIHRvIGEgYnl0ZSBhcnJheSBhcmd1bWVudCwgd2hpY2ggY2FuIGNhdXNlCisgICAgICAgICAgICAgbWVtb3J5IHByb2JsZW1zLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjTXVsdGlwYXJ0RWxlbWVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmlvLkZpbGUpIj5NdWx0aXBhcnRFbGVtZW50PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlTmFtZSwKKyAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRlbnRUeXBlLAorICAgICAgICAgICAgICAgICBqYXZhLmlvLkZpbGUmbmJzcDtmaWxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IgZm9yIGEgZmlsZSBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNnZXRDb250ZW50VHlwZSgpIj5nZXRDb250ZW50VHlwZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlIHRoZSBjb250ZW50IHR5cGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2J5dGVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2dldERhdGEoKSI+Z2V0RGF0YTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSB0aGUgZ2V0RmlsZSBtZXRob2QgdG8gZ2V0IGEgRmlsZSByZXByZXNlbnRpbmcgdGhlCisgICAgICAgICAgICAgZGF0YSBmb3IgdGhpcyBlbGVtZW50PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmlvLkZpbGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNnZXRGaWxlKCkiPmdldEZpbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIEZpbGUgdGhhdCBob2xkcyB0aGUgZGF0YSBmb3IgdGhpcyBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjZ2V0RmlsZU5hbWUoKSI+Z2V0RmlsZU5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZSB0aGUgZmlsZW5hbWUsIGNhbiByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4KKyBmb3IgdGV4dCBlbGVtZW50cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlIHRoZSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGlzIG11bHRpcGFydCBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjaXNGaWxlKCkiPmlzRmlsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0lzIHRoaXMgZWxlbWVudCBhIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNzZXRDb250ZW50VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29udGVudFR5cGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udGVudFR5cGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGNvbnRlbnQgdHlwZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI3NldERhdGEoYnl0ZVtdKSI+c2V0RGF0YTwvQT48L0I+KGJ5dGVbXSZuYnNwO2RhdGEpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIHNldEZpbGUgbWV0aG9kIHRvIHNldCB0aGUgZmlsZQorICAgICAgICAgICAgIHRoYXQgcmVwcmVzZW50cyB0aGUgZGF0YSBvZiB0aGlzIGVsZW1lbnQ8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNzZXRGaWxlKGphdmEuaW8uRmlsZSkiPnNldEZpbGU8L0E+PC9CPihqYXZhLmlvLkZpbGUmbmJzcDtmaWxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBmaWxlIHRoYXQgcmVwcmVzZW50cyB0aGlzIGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNzZXRGaWxlTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0RmlsZU5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZmlsZU5hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGZpbGUgbmFtZSBmb3IgdGhpcyBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBuYW1lIGZvciB0aGlzIGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbnRlbnRUeXBlIj48IS0tIC0tPjwvQT48SDM+Citjb250ZW50VHlwZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Y29udGVudFR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRlbnQgdHlwZSBvZiB0aGlzIGVsZW1lbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkYXRhIj48IS0tIC0tPjwvQT48SDM+CitkYXRhPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYnl0ZVtdIDxCPmRhdGE8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBzaG91bGQgbmV2ZXIgYmUgdXNlZC48L0k+Cis8UD4KKzxERD5UaGUgZWxlbWVudCBkYXRhLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmlsZSI+PCEtLSAtLT48L0E+PEgzPgorZmlsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEuaW8uRmlsZSA8Qj5maWxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBlbGVtZW50J3MgZGF0YSByZXByZXNlbnRlZCBpbiBhIChwb3NzaWJseSB0ZW1wb3JhcnkpIGZpbGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBlbGVtZW50IG5hbWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaWxlTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorZmlsZU5hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmZpbGVOYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBlbGVtZW50J3MgZmlsZW5hbWUsIG51bGwgZm9yIHRleHQgZWxlbWVudHMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBlbGVtZW50J3MgdGV4dCB2YWx1ZSwgbnVsbCBmb3IgZmlsZSBlbGVtZW50cworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNGaWxlIj48IS0tIC0tPjwvQT48SDM+Citpc0ZpbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmlzRmlsZTwvQj48L1BSRT4KKzxETD4KKzxERD5XaGV0aGVyIG9yIG5vdCB0aGlzIGVsZW1lbnQgaXMgYSBmaWxlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik11bHRpcGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgYnl0ZVtdKSI+PCEtLSAtLT48L0E+PEgzPgorTXVsdGlwYXJ0RWxlbWVudDwvSDM+Cis8UFJFPgorcHVibGljIDxCPk11bHRpcGFydEVsZW1lbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZpbGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRlbnRUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdJm5ic3A7ZGF0YSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIGNvbnN0cnVjdG9yIHRoYXQgdGFrZXMgYW4gRmlsZSBhcyBhbiBhcmd1bWVudAorICAgICAgICAgICAgIGFzIG9wcG9zZWQgdG8gYSBieXRlIGFycmF5IGFyZ3VtZW50LCB3aGljaCBjYW4gY2F1c2UKKyAgICAgICAgICAgICBtZW1vcnkgcHJvYmxlbXMuPC9JPgorPFA+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJNdWx0aXBhcnRFbGVtZW50KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEuaW8uRmlsZSkiPjwhLS0gLS0+PC9BPjxIMz4KK011bHRpcGFydEVsZW1lbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NdWx0aXBhcnRFbGVtZW50PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250ZW50VHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmEuaW8uRmlsZSZuYnNwO2ZpbGUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IgZm9yIGEgZmlsZSBlbGVtZW50LgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gVGhlIGZvcm0gbmFtZSBvZiB0aGUgZWxlbWVudDxERD48Q09ERT5maWxlTmFtZTwvQ09ERT4gLSBUaGUgZmlsZSBuYW1lIG9mIHRoZSBlbGVtZW50IGlmIHRoaXMgZWxlbWVudCBpcyBhIGZpbGU8REQ+PENPREU+Y29udGVudFR5cGU8L0NPREU+IC0gVGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgZWxlbWVudCBpZiBhIGZpbGU8REQ+PENPREU+ZmlsZTwvQ09ERT4gLSBUaGUgKHBvc3NpYmx5IHRlbXBvcmFyeSkgZmlsZSByZXByZXNlbnRpbmcgdGhpcyBlbGVtZW50IGlmCisgICAgICAgICAgICAgaXQncyBhIGZpbGU8L0RMPgorPEhSPgorCis8QSBOQU1FPSJNdWx0aXBhcnRFbGVtZW50KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitNdWx0aXBhcnRFbGVtZW50PC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TXVsdGlwYXJ0RWxlbWVudDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IgZm9yIGEgdGV4dCBlbGVtZW50LgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gVGhlIG5hbWUgb2YgdGhlIGVsZW1lbnQ8REQ+PENPREU+dmFsdWU8L0NPREU+IC0gVGhlIHZhbHVlIG9mIHRoZSBlbGVtZW50PC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0Q29udGVudFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29udGVudFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldENvbnRlbnRUeXBlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0cmlldmUgdGhlIGNvbnRlbnQgdHlwZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGF0YSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXREYXRhPC9IMz4KKzxQUkU+CitwdWJsaWMgYnl0ZVtdIDxCPmdldERhdGE8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIGdldEZpbGUgbWV0aG9kIHRvIGdldCBhIEZpbGUgcmVwcmVzZW50aW5nIHRoZQorICAgICAgICAgICAgIGRhdGEgZm9yIHRoaXMgZWxlbWVudDwvST4KKzxQPgorPEREPlJldHJpZXZlIHRoZSBkYXRhLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGaWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZpbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmlvLkZpbGUgPEI+Z2V0RmlsZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgRmlsZSB0aGF0IGhvbGRzIHRoZSBkYXRhIGZvciB0aGlzIGVsZW1lbnQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHJpZXZlIHRoZSBuYW1lLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGaWxlTmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGaWxlTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RmlsZU5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXRyaWV2ZSB0aGUgZmlsZW5hbWUsIGNhbiByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4KKyBmb3IgdGV4dCBlbGVtZW50cy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgdmFsdWUgb2YgdGhpcyBtdWx0aXBhcnQgZWxlbWVudC4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5BIFN0cmluZyBpZiB0aGUgZWxlbWVudCBpcyBhIHRleHQgZWxlbWVudCwgPGNvZGU+bnVsbDwvY29kZT4KKyAgICAgICAgIG90aGVyd2lzZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RmlsZShqYXZhLmlvLkZpbGUpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGaWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGaWxlPC9CPihqYXZhLmlvLkZpbGUmbmJzcDtmaWxlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgZmlsZSB0aGF0IHJlcHJlc2VudHMgdGhpcyBlbGVtZW50LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGaWxlTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RmlsZU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZpbGVOYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZmlsZU5hbWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBmaWxlIG5hbWUgZm9yIHRoaXMgZWxlbWVudC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBuYW1lIGZvciB0aGlzIGVsZW1lbnQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENvbnRlbnRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb250ZW50VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Q29udGVudFR5cGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250ZW50VHlwZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGNvbnRlbnQgdHlwZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNGaWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzRmlsZTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+aXNGaWxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+SXMgdGhpcyBlbGVtZW50IGEgZmlsZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWx1ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RGF0YShieXRlW10pIj48IS0tIC0tPjwvQT48SDM+CitzZXREYXRhPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXREYXRhPC9CPihieXRlW10mbmJzcDtkYXRhKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSB0aGUgc2V0RmlsZSBtZXRob2QgdG8gc2V0IHRoZSBmaWxlCisgICAgICAgICAgICAgdGhhdCByZXByZXNlbnRzIHRoZSBkYXRhIG9mIHRoaXMgZWxlbWVudDwvST4KKzxQPgorPEREPlNldCB0aGUgZGF0YS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTXVsdGlwYXJ0RWxlbWVudC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAyIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDU0OTIwZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sCkBAIC0wLDAgKzEsOTU4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBTdW4gQXByIDIwIDIzOjUwOjEzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorTXVsdGlwYXJ0SXRlcmF0b3IgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRJdGVyYXRvcixNdWx0aXBhcnRJdGVyYXRvciBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTXVsdGlwYXJ0SXRlcmF0b3IgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvRk9OVD4KKzxCUj4KK0NsYXNzIE11bHRpcGFydEl0ZXJhdG9yPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEl0ZXJhdG9yPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk11bHRpcGFydEl0ZXJhdG9yPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8L0RMPgorCis8UD4KK1RoZSBNdWx0aXBhcnRJdGVyYXRvciBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgcmVhZGluZyB0aGUKKyBpbnB1dCBkYXRhIG9mIGEgbXVsdGlwYXJ0IHJlcXVlc3QgYW5kIHNwbGl0dGluZyBpdCB1cCBpbnRvCisgaW5wdXQgZWxlbWVudHMsIHdyYXBwZWQgaW5zaWRlIG9mIGEKKyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Q09ERT5NdWx0aXBhcnRFbGVtZW50PC9DT0RFPjwvQT4KKyBmb3IgZWFzeSBkZWZpbml0aW9uLiAgVG8gdXNlIHRoaXMgY2xhc3MsIGNyZWF0ZSBhIG5ldyBpbnN0YW5jZQorIG9mIE11bHRpcGFydEl0ZXJhdG9yIHBhc3NpbmcgaXQgYSBIdHRwU2VydmxldFJlcXVlc3QgaW4gdGhlCisgY29uc3RydWN0b3IuICBUaGVuIHVzZSB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjZ2V0TmV4dEVsZW1lbnQoKSI+PENPREU+Z2V0TmV4dEVsZW1lbnQ8L0NPREU+PC9BPgorIG1ldGhvZCB1bnRpbCBpdCByZXR1cm5zIG51bGwsIHRoZW4geW91J3JlIGZpbmlzaGVkLiAgRXhhbXBsZTogPGJyPgorIDxwcmU+CisgICAgICBNdWx0aXBhcnRJdGVyYXRvciBpdGVyYXRvciA9IG5ldyBNdWx0aXBhcnRJdGVyYXRvcihyZXF1ZXN0KTsKKyAgICAgIE11bHRpcGFydEVsZW1lbnQgZWxlbWVudDsKKworICAgICAgd2hpbGUgKChlbGVtZW50ID0gaXRlcmF0b3IuZ2V0TmV4dEVsZW1lbnQoKSkgIT0gbnVsbCkgeworICAgICAgICAgICAvL2RvIHNvbWV0aGluZyB3aXRoIGVsZW1lbnQKKyAgICAgIH0KKyA8L3ByZT4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5NaWtlIFNjaGFjaHRlcjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Q09ERT5NdWx0aXBhcnRFbGVtZW50PC9DT0RFPjwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNib3VuZGFyeSI+Ym91bmRhcnk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGJvdW5kYXJ5IGZvciB0aGlzIG11bHRpcGFydCByZXF1ZXN0PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjYnVmZmVyU2l6ZSI+YnVmZmVyU2l6ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYW1vdW50IG9mIGRhdGEgcmVhZCBmcm9tIGEgcmVxdWVzdCBhdCBhIHRpbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjY29udGVudExlbmd0aCI+Y29udGVudExlbmd0aDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udGVudCBsZW5ndGggb2YgdGhpcyByZXF1ZXN0PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2NvbnRlbnRUeXBlIj5jb250ZW50VHlwZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udGVudC10eXBlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjREVGQVVMVF9FTkNPRElORyI+REVGQVVMVF9FTkNPRElORzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCBlbmNvZGluZyBvZiBhIHRleHQgZWxlbWVudCBpZiBub25lIGlzIHNwZWNpZmllZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNkaXNrQnVmZmVyU2l6ZSI+ZGlza0J1ZmZlclNpemU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNpemUgaW4gYnl0ZXMgd3JpdHRlbiB0byB0aGUgZmlsZXN5c3RlbSBhdCBhIHRpbWUgWzIwS108L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI0ZJTEVfUFJFRklYIj5GSUxFX1BSRUZJWDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNIRUFERVJfQ09OVEVOVF9ESVNQT1NJVElPTiI+SEVBREVSX0NPTlRFTlRfRElTUE9TSVRJT048L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIENvbnRlbnQtRGlzcG9zaXRpb24gaGVhZGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI0hFQURFUl9DT05URU5UX1RZUEUiPkhFQURFUl9DT05URU5UX1RZUEU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNpbnB1dFN0cmVhbSI+aW5wdXRTdHJlYW08L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIElucHV0U3RyZWFtIHRvIHVzZSB0byByZWFkIHRoZSBtdWx0aXBhcnQgZGF0YS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjbWF4TGVuZ3RoRXhjZWVkZWQiPm1heExlbmd0aEV4Y2VlZGVkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1doZXRoZXIgdGhlIG1heGltdW0gbGVuZ3RoIGhhcyBiZWVuIGV4Y2VlZGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7bG9uZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNtYXhTaXplIj5tYXhTaXplPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtYXhpbXVtIGZpbGUgc2l6ZSBpbiBieXRlcyBhbGxvd2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI01FU1NBR0VfQ0FOTk9UX1JFVFJJRVZFX0JPVU5EQVJZIj5NRVNTQUdFX0NBTk5PVF9SRVRSSUVWRV9CT1VOREFSWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZXhjZXB0aW9uIG1lc3NhZ2UgZm9yIHdoZW4gdGhlIGJvdW5kYXJ5IG9mIGEgbXVsdGlwYXJ0IHJlcXVlc3QgY2FuJ3QgYmUgZGV0ZXJtaW5lZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI1BBUkFNRVRFUl9CT1VOREFSWSI+UEFSQU1FVEVSX0JPVU5EQVJZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNyZXF1ZXN0Ij5yZXF1ZXN0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSByZXF1ZXN0IGluc3RhbmNlIGZvciB0aGlzIGNsYXNzPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI3RlbXBEaXIiPnRlbXBEaXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gc3RvcmUgZmlsZXM8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjVEVYVF9CVUZGRVJfU0laRSI+VEVYVF9CVUZGRVJfU0laRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2l6ZSBpbiBieXRlcyB0byBjb3B5IG9mIHRleHQgZGF0YSBhdCBhIHRpbWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNNdWx0aXBhcnRJdGVyYXRvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdHMgYSBNdWx0aXBhcnRJdGVyYXRvciB3aXRoIGEgZGVmYXVsdCBidWZmZXIgc2l6ZSBhbmQgbm8gZmlsZSBzaXplCisgbGltaXQ8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI011bHRpcGFydEl0ZXJhdG9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGludCkiPk11bHRpcGFydEl0ZXJhdG9yPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtidWZmZXJTaXplKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0cyBhIE11bHRpcGFydEl0ZXJhdG9yIHdpdGggdGhlIHNwZWNpZmllZCBidWZmZXIgc2l6ZSBhbmQKKyBubyBmaWxlIHNpemUgbGltaXQ8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI011bHRpcGFydEl0ZXJhdG9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGludCwgbG9uZykiPk11bHRpcGFydEl0ZXJhdG9yPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtidWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgbG9uZyZuYnNwO21heFNpemUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3RzIGEgTXVsdGlwYXJ0SXRlcmF0b3Igd2l0aCB0aGUgc3BlY2lmaWVkIGJ1ZmZlciBzaXplIGFuZAorIHRoZSBzcGVjaWZpZWQgZmlsZSBzaXplIGxpbWl0IGluIGJ5dGVzPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNNdWx0aXBhcnRJdGVyYXRvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBpbnQsIGxvbmcsIGphdmEubGFuZy5TdHJpbmcpIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7YnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgIGxvbmcmbmJzcDttYXhTaXplLAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3RlbXBEaXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjY3JlYXRlRmlsZU11bHRpcGFydEVsZW1lbnQoKSI+Y3JlYXRlRmlsZU11bHRpcGFydEVsZW1lbnQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYSBtdWx0aXBhcnQgZWxlbWVudCBpbnN0YW5jZSByZXByZXNlbnRpbmcgdGhlIGZpbGUgaW4gdGhlIHN0cmVhbS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEuaW8uRmlsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNjcmVhdGVMb2NhbEZpbGUoKSI+Y3JlYXRlTG9jYWxGaWxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlcyBhIGZpbGUgb24gZGlzayBmcm9tIHRoZSBjdXJyZW50IG11bGl0cGFydCBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjY3JlYXRlVGV4dE11bHRpcGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZykiPmNyZWF0ZVRleHRNdWx0aXBhcnRFbGVtZW50PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2VuY29kaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGEgdGV4dCBlbGVtZW50IGZyb20gdGhlIGRhdGEgaW4gdGhlIGJvZHkgb2YgdGhlIGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNnZXRCb3VuZGFyeUZyb21Db250ZW50VHlwZSgpIj5nZXRCb3VuZGFyeUZyb21Db250ZW50VHlwZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BhcnNlcyBhIGNvbnRlbnQtdHlwZSBTdHJpbmcgZm9yIHRoZSBib3VuZGFyeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2dldEJ1ZmZlclNpemUoKSI+Z2V0QnVmZmVyU2l6ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgbWF4aW11bSBhbW91bnQgb2YgYnl0ZXMgcmVhZCBmcm9tIGEgbGluZSBhdCBvbmUgdGltZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjZ2V0Q29udGVudFR5cGVPZlJlcXVlc3QoKSI+Z2V0Q29udGVudFR5cGVPZlJlcXVlc3Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHRoZSB2YWx1ZSBvZiB0aGUgQ29udGVudC1UeXBlIGhlYWRlciBvZiB0aGUgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjZ2V0RWxlbWVudEVuY29kaW5nKCkiPmdldEVsZW1lbnRFbmNvZGluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHVzZWQgZm9yIHRoaXMgY3VycmVudCBtdWx0aXBhcnQgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7bG9uZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNnZXRNYXhTaXplKCkiPmdldE1heFNpemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIG1heGltdW0gcG9zdCBkYXRhIHNpemUgYWxsb3dlZCBmb3IgYSBtdWx0aXBhcnQgcmVxdWVzdDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNnZXROZXh0RWxlbWVudCgpIj5nZXROZXh0RWxlbWVudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlcyB0aGUgbmV4dCBlbGVtZW50IGluIHRoZSBpdGVyYXRvciBpZiBvbmUgZXhpc3RzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2lzTWF4TGVuZ3RoRXhjZWVkZWQoKSI+aXNNYXhMZW5ndGhFeGNlZWRlZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1doZXRoZXIgb3Igbm90IHRoZSBtYXhpbXVtIGxlbmd0aCBoYXMgYmVlbiBleGNlZWRlZCBieSB0aGUgY2xpZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNwYXJzZVJlcXVlc3QoKSI+cGFyc2VSZXF1ZXN0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFuZGxlcyByZXRyaWV2aW5nIHRoZSBib3VuZGFyeSBhbmQgc2V0dGluZyB0aGUgaW5wdXQgc3RyZWFtPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjc2V0QnVmZmVyU2l6ZShpbnQpIj5zZXRCdWZmZXJTaXplPC9BPjwvQj4oaW50Jm5ic3A7YnVmZmVyU2l6ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgbWF4aW11bSBhbW91bnQgb2YgYnl0ZXMgcmVhZCBmcm9tIGEgbGluZSBhdCBvbmUgdGltZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI3NldE1heFNpemUobG9uZykiPnNldE1heFNpemU8L0E+PC9CPihsb25nJm5ic3A7bWF4U2l6ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgbWF4aW11bSBwb3N0IGRhdGEgc2l6ZSBhbGxvd2VkIGZvciBhIG11bHRpcGFydCByZXF1ZXN0PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJERUZBVUxUX0VOQ09ESU5HIj48IS0tIC0tPjwvQT48SDM+CitERUZBVUxUX0VOQ09ESU5HPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkRFRkFVTFRfRU5DT0RJTkc8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgZW5jb2Rpbmcgb2YgYSB0ZXh0IGVsZW1lbnQgaWYgbm9uZSBpcyBzcGVjaWZpZWQuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRJdGVyYXRvci5ERUZBVUxUX0VOQ09ESU5HIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlRFWFRfQlVGRkVSX1NJWkUiPjwhLS0gLS0+PC9BPjxIMz4KK1RFWFRfQlVGRkVSX1NJWkU8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGludCA8Qj5URVhUX0JVRkZFUl9TSVpFPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaXplIGluIGJ5dGVzIHRvIGNvcHkgb2YgdGV4dCBkYXRhIGF0IGEgdGltZS4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEl0ZXJhdG9yLlRFWFRfQlVGRkVSX1NJWkUiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iSEVBREVSX0NPTlRFTlRfVFlQRSI+PCEtLSAtLT48L0E+PEgzPgorSEVBREVSX0NPTlRFTlRfVFlQRTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPkhFQURFUl9DT05URU5UX1RZUEU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJIRUFERVJfQ09OVEVOVF9ESVNQT1NJVElPTiI+PCEtLSAtLT48L0E+PEgzPgorSEVBREVSX0NPTlRFTlRfRElTUE9TSVRJT048L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5IRUFERVJfQ09OVEVOVF9ESVNQT1NJVElPTjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgQ29udGVudC1EaXNwb3NpdGlvbiBoZWFkZXIuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRJdGVyYXRvci5IRUFERVJfQ09OVEVOVF9ESVNQT1NJVElPTiI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJNRVNTQUdFX0NBTk5PVF9SRVRSSUVWRV9CT1VOREFSWSI+PCEtLSAtLT48L0E+PEgzPgorTUVTU0FHRV9DQU5OT1RfUkVUUklFVkVfQk9VTkRBUlk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5NRVNTQUdFX0NBTk5PVF9SRVRSSUVWRV9CT1VOREFSWTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZXhjZXB0aW9uIG1lc3NhZ2UgZm9yIHdoZW4gdGhlIGJvdW5kYXJ5IG9mIGEgbXVsdGlwYXJ0IHJlcXVlc3QgY2FuJ3QgYmUgZGV0ZXJtaW5lZC4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEl0ZXJhdG9yLk1FU1NBR0VfQ0FOTk9UX1JFVFJJRVZFX0JPVU5EQVJZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlBBUkFNRVRFUl9CT1VOREFSWSI+PCEtLSAtLT48L0E+PEgzPgorUEFSQU1FVEVSX0JPVU5EQVJZPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPlBBUkFNRVRFUl9CT1VOREFSWTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRJdGVyYXRvci5QQVJBTUVURVJfQk9VTkRBUlkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRklMRV9QUkVGSVgiPjwhLS0gLS0+PC9BPjxIMz4KK0ZJTEVfUFJFRklYPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkZJTEVfUFJFRklYPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEl0ZXJhdG9yLkZJTEVfUFJFRklYIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlcXVlc3QiPjwhLS0gLS0+PC9BPjxIMz4KK3JlcXVlc3Q8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0IDxCPnJlcXVlc3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlcXVlc3QgaW5zdGFuY2UgZm9yIHRoaXMgY2xhc3MKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlucHV0U3RyZWFtIj48IS0tIC0tPjwvQT48SDM+CitpbnB1dFN0cmVhbTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+IDxCPmlucHV0U3RyZWFtPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBJbnB1dFN0cmVhbSB0byB1c2UgdG8gcmVhZCB0aGUgbXVsdGlwYXJ0IGRhdGEuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJib3VuZGFyeSI+PCEtLSAtLT48L0E+PEgzPgorYm91bmRhcnk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmJvdW5kYXJ5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib3VuZGFyeSBmb3IgdGhpcyBtdWx0aXBhcnQgcmVxdWVzdAorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWF4U2l6ZSI+PCEtLSAtLT48L0E+PEgzPgorbWF4U2l6ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGxvbmcgPEI+bWF4U2l6ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWF4aW11bSBmaWxlIHNpemUgaW4gYnl0ZXMgYWxsb3dlZC4gSWdub3JlZCBpZiAtMQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udGVudExlbmd0aCI+PCEtLSAtLT48L0E+PEgzPgorY29udGVudExlbmd0aDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGludCA8Qj5jb250ZW50TGVuZ3RoPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZW50IGxlbmd0aCBvZiB0aGlzIHJlcXVlc3QKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRpc2tCdWZmZXJTaXplIj48IS0tIC0tPjwvQT48SDM+CitkaXNrQnVmZmVyU2l6ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGludCA8Qj5kaXNrQnVmZmVyU2l6ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2l6ZSBpbiBieXRlcyB3cml0dGVuIHRvIHRoZSBmaWxlc3lzdGVtIGF0IGEgdGltZSBbMjBLXQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYnVmZmVyU2l6ZSI+PCEtLSAtLT48L0E+PEgzPgorYnVmZmVyU2l6ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGludCA8Qj5idWZmZXJTaXplPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhbW91bnQgb2YgZGF0YSByZWFkIGZyb20gYSByZXF1ZXN0IGF0IGEgdGltZS4KKyBUaGlzIGFsc28gcmVwcmVzZW50cyB0aGUgbWF4aW11bSBzaXplIGluIGJ5dGVzIG9mCisgYSBsaW5lIHJlYWQgZnJvbSB0aGUgcmVxdWVzdCBbNEtCXQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGVtcERpciI+PCEtLSAtLT48L0E+PEgzPgordGVtcERpcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dGVtcERpcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byBzdG9yZSBmaWxlcworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udGVudFR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRlbnRUeXBlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jb250ZW50VHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29udGVudC10eXBlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWF4TGVuZ3RoRXhjZWVkZWQiPjwhLS0gLS0+PC9BPjxIMz4KK21heExlbmd0aEV4Y2VlZGVkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5tYXhMZW5ndGhFeGNlZWRlZDwvQj48L1BSRT4KKzxETD4KKzxERD5XaGV0aGVyIHRoZSBtYXhpbXVtIGxlbmd0aCBoYXMgYmVlbiBleGNlZWRlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNdWx0aXBhcnRJdGVyYXRvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorTXVsdGlwYXJ0SXRlcmF0b3I8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NdWx0aXBhcnRJdGVyYXRvcjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpCisgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdHMgYSBNdWx0aXBhcnRJdGVyYXRvciB3aXRoIGEgZGVmYXVsdCBidWZmZXIgc2l6ZSBhbmQgbm8gZmlsZSBzaXplCisgbGltaXQKKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBtdWx0aXBhcnQgcmVxdWVzdCB0byBpdGVyYXRlPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTXVsdGlwYXJ0SXRlcmF0b3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgaW50KSI+PCEtLSAtLT48L0E+PEgzPgorTXVsdGlwYXJ0SXRlcmF0b3I8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NdWx0aXBhcnRJdGVyYXRvcjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7YnVmZmVyU2l6ZSkKKyAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0cyBhIE11bHRpcGFydEl0ZXJhdG9yIHdpdGggdGhlIHNwZWNpZmllZCBidWZmZXIgc2l6ZSBhbmQKKyBubyBmaWxlIHNpemUgbGltaXQKKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBtdWx0aXBhcnQgcmVxdWVzdCB0byBpdGVyYXRlPEREPjxDT0RFPmJ1ZmZlclNpemU8L0NPREU+IC0gVGhlIHNpemUgaW4gYnl0ZXMgdGhhdCBzaG91bGQgYmUgcmVhZCBmcm9tIHRoZSBpbnB1dAorICAgICAgICAgICAgICAgICAgIHN0cmVhbSBhdCBhIHRpbWVzPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTXVsdGlwYXJ0SXRlcmF0b3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgaW50LCBsb25nKSI+PCEtLSAtLT48L0E+PEgzPgorTXVsdGlwYXJ0SXRlcmF0b3I8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NdWx0aXBhcnRJdGVyYXRvcjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7YnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsb25nJm5ic3A7bWF4U2l6ZSkKKyAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0cyBhIE11bHRpcGFydEl0ZXJhdG9yIHdpdGggdGhlIHNwZWNpZmllZCBidWZmZXIgc2l6ZSBhbmQKKyB0aGUgc3BlY2lmaWVkIGZpbGUgc2l6ZSBsaW1pdCBpbiBieXRlcworPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIG11bHRpcGFydCByZXF1ZXN0IHRvIGl0ZXJhdGU8REQ+PENPREU+YnVmZmVyU2l6ZTwvQ09ERT4gLSBUaGUgc2l6ZSBpbiBieXRlcyB0aGF0IHNob3VsZCBiZSByZWFkIGZyb20gdGhlIGlucHV0CisgICAgICAgICAgICAgICAgICAgc3RyZWFtIGF0IGEgdGltZXM8REQ+PENPREU+bWF4U2l6ZTwvQ09ERT4gLSBUaGUgbWF4aW11bSBzaXplIGluIGJ5dGVzIGFsbG93ZWQgZm9yIGEgbXVsdGlwYXJ0IGVsZW1lbnQncyBkYXRhPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTXVsdGlwYXJ0SXRlcmF0b3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgaW50LCBsb25nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorTXVsdGlwYXJ0SXRlcmF0b3I8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NdWx0aXBhcnRJdGVyYXRvcjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7YnVmZmVyU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsb25nJm5ic3A7bWF4U2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGVtcERpcikKKyAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJwYXJzZVJlcXVlc3QoKSI+PCEtLSAtLT48L0E+PEgzPgorcGFyc2VSZXF1ZXN0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5wYXJzZVJlcXVlc3Q8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+SGFuZGxlcyByZXRyaWV2aW5nIHRoZSBib3VuZGFyeSBhbmQgc2V0dGluZyB0aGUgaW5wdXQgc3RyZWFtCis8UD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmV4dEVsZW1lbnQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmV4dEVsZW1lbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPiA8Qj5nZXROZXh0RWxlbWVudDwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHJpZXZlcyB0aGUgbmV4dCBlbGVtZW50IGluIHRoZSBpdGVyYXRvciBpZiBvbmUgZXhpc3RzLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmEgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+PENPREU+TXVsdGlwYXJ0RWxlbWVudDwvQ09ERT48L0E+CisgICAgICAgICByZXByZXNlbnRpbmcgdGhlIG5leHQgZWxlbWVudCBpbiB0aGUgcmVxdWVzdCBkYXRhCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwb3N0IHNpemUgZXhjZWVkcyB0aGUgbWF4aW11bSBmaWxlIHNpemUKKyAgICAgICAgIHBhc3NlZCBpbiB0aGUgMyBhcmd1bWVudCBjb25zdHJ1Y3RvciBvciBpZiB0aGUgIklTTy04ODU5LTEiIGVuY29kaW5nIGlzbid0IGZvdW5kPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRFbGVtZW50RW5jb2RpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RWxlbWVudEVuY29kaW5nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRFbGVtZW50RW5jb2Rpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIGNoYXJhY3RlciBlbmNvZGluZyB1c2VkIGZvciB0aGlzIGN1cnJlbnQgbXVsdGlwYXJ0IGVsZW1lbnQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNyZWF0ZVRleHRNdWx0aXBhcnRFbGVtZW50KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVUZXh0TXVsdGlwYXJ0RWxlbWVudDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+IDxCPmNyZWF0ZVRleHRNdWx0aXBhcnRFbGVtZW50PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZW5jb2RpbmcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIGEgdGV4dCBlbGVtZW50IGZyb20gdGhlIGRhdGEgaW4gdGhlIGJvZHkgb2YgdGhlIGVsZW1lbnQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmVuY29kaW5nPC9DT0RFPiAtIFRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgdGhlIHN0cmluZy4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlRmlsZU11bHRpcGFydEVsZW1lbnQoKSI+PCEtLSAtLT48L0E+PEgzPgorY3JlYXRlRmlsZU11bHRpcGFydEVsZW1lbnQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPiA8Qj5jcmVhdGVGaWxlTXVsdGlwYXJ0RWxlbWVudDwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNyZWF0ZSBhIG11bHRpcGFydCBlbGVtZW50IGluc3RhbmNlIHJlcHJlc2VudGluZyB0aGUgZmlsZSBpbiB0aGUgc3RyZWFtLgorPFA+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEJ1ZmZlclNpemUoaW50KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QnVmZmVyU2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QnVmZmVyU2l6ZTwvQj4oaW50Jm5ic3A7YnVmZmVyU2l6ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIG1heGltdW0gYW1vdW50IG9mIGJ5dGVzIHJlYWQgZnJvbSBhIGxpbmUgYXQgb25lIHRpbWUKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxDT0RFPlNlcnZsZXRJbnB1dFN0cmVhbS5yZWFkTGluZShieXRlW10sIGludCwgaW50KTwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEJ1ZmZlclNpemUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QnVmZmVyU2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5nZXRCdWZmZXJTaXplPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBtYXhpbXVtIGFtb3VudCBvZiBieXRlcyByZWFkIGZyb20gYSBsaW5lIGF0IG9uZSB0aW1lCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48Q09ERT5TZXJ2bGV0SW5wdXRTdHJlYW0ucmVhZExpbmUoYnl0ZVtdLCBpbnQsIGludCk8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNYXhTaXplKGxvbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNYXhTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRNYXhTaXplPC9CPihsb25nJm5ic3A7bWF4U2l6ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIG1heGltdW0gcG9zdCBkYXRhIHNpemUgYWxsb3dlZCBmb3IgYSBtdWx0aXBhcnQgcmVxdWVzdAorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXhTaXplPC9DT0RFPiAtIFRoZSBtYXhpbXVtIHBvc3QgZGF0YSBzaXplIGluIGJ5dGVzLCBzZXQgdG8gPGNvZGU+LTE8L2NvZGU+CisgICAgICAgICAgICAgICAgZm9yIG5vIGxpbWl0PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNYXhTaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1heFNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBsb25nIDxCPmdldE1heFNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIG1heGltdW0gcG9zdCBkYXRhIHNpemUgYWxsb3dlZCBmb3IgYSBtdWx0aXBhcnQgcmVxdWVzdAorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBtYXhpbXVtIHBvc3QgZGF0YSBzaXplIGluIGJ5dGVzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc01heExlbmd0aEV4Y2VlZGVkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzTWF4TGVuZ3RoRXhjZWVkZWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzTWF4TGVuZ3RoRXhjZWVkZWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5XaGV0aGVyIG9yIG5vdCB0aGUgbWF4aW11bSBsZW5ndGggaGFzIGJlZW4gZXhjZWVkZWQgYnkgdGhlIGNsaWVudC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Qm91bmRhcnlGcm9tQ29udGVudFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Qm91bmRhcnlGcm9tQ29udGVudFR5cGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgZmluYWwgdm9pZCA8Qj5nZXRCb3VuZGFyeUZyb21Db250ZW50VHlwZTwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5QYXJzZXMgYSBjb250ZW50LXR5cGUgU3RyaW5nIGZvciB0aGUgYm91bmRhcnkuCis8UD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Q29udGVudFR5cGVPZlJlcXVlc3QoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29udGVudFR5cGVPZlJlcXVlc3Q8L0gzPgorPFBSRT4KK3ByaXZhdGUgZmluYWwgdm9pZCA8Qj5nZXRDb250ZW50VHlwZU9mUmVxdWVzdDwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldHMgdGhlIHZhbHVlIG9mIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyIG9mIHRoZSByZXF1ZXN0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjcmVhdGVMb2NhbEZpbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorY3JlYXRlTG9jYWxGaWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5pby5GaWxlIDxCPmNyZWF0ZUxvY2FsRmlsZTwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNyZWF0ZXMgYSBmaWxlIG9uIGRpc2sgZnJvbSB0aGUgY3VycmVudCBtdWxpdHBhcnQgZWxlbWVudC4KKzxQPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRJdGVyYXRvci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAyIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQxZjE0NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sCkBAIC0wLDAgKzEsNDczIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBTdW4gQXByIDIwIDIzOjUwOjEzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcixNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciBpbnRlcmZhY2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik11bHRpcGFydFJlcXVlc3RIYW5kbGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9GT05UPgorPEJSPgorSW50ZXJmYWNlIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9IMj4KKzxETD4KKzxEVD48Qj5BbGwgS25vd24gSW1wbGVtZW50aW5nIENsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGludGVyZmFjZSA8Qj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj48L0RMPgorCis8UD4KK011bHRpcGFydFJlcXVlc3RIYW5kbGVyIHByb3ZpZGVzIGFuIHN0YW5kYXJkIGludGVyZmFjZSBmb3Igc3RydXRzIHRvCisgZGVhbCB3aXRoIGZpbGUgdXBsb2FkcyBmcm9tIGZvcm1zIHdpdGggZW5jdHlwZXMgb2YgIm11bHRpcGFydC9mb3JtLWRhdGEiLgorIFByb3ZpZGVycyBtdXN0IHByb3ZpZGUgYSBuby1hcmd1bWVudCBjb25zdHJ1Y3RvciBmb3IgaW5pdGlhbGl6YXRpb24uCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+TWlrZSBTY2hhY2h0ZXI8L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNBVFRSSUJVVEVfTUFYX0xFTkdUSF9FWENFRURFRCI+QVRUUklCVVRFX01BWF9MRU5HVEhfRVhDRUVERUQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyB0aGUgU2VydmxldFJlcXVlc3QgYXR0cmlidXRlIHRoYXQgc2hvdWxkIGJlIHNldCB3aGVuIGEgbXVsdGlwYXJ0IHJlcXVlc3QgaXMgYmVpbmcgcmVhZAorIGFuZCB0aGUgbWF4aW11bSBsZW5ndGggaXMgZXhjZWVkZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZmluaXNoKCkiPmZpbmlzaDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB3aGVuIGEgc3VjY2Vzc2Z1bCBmb3JtIHBvc3QKKyBoYXMgYmVlbiBtYWRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSGFzaHRhYmxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldEFsbEVsZW1lbnRzKCkiPmdldEFsbEVsZW1lbnRzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgcmV0dXJucyBhbGwgZWxlbWVudHMgb2YgYSBtdWx0aXBhcnQgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLkhhc2h0YWJsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRGaWxlRWxlbWVudHMoKSI+Z2V0RmlsZUVsZW1lbnRzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRvIHJldHJpZXZlIGFsbCB0aGUgRm9ybUZpbGUKKyBpbnB1dCBlbGVtZW50cyBvZiB0aGUgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0TWFwcGluZygpIj5nZXRNYXBwaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBBY3Rpb25NYXBwaW5nIGluc3RhbmNlIGZvciB0aGlzIHJlcXVlc3Q8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5IYXNodGFibGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0VGV4dEVsZW1lbnRzKCkiPmdldFRleHRFbGVtZW50czwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0byByZXRyaWV2ZSBhbGwgdGhlIHRleHQKKyBpbnB1dCBlbGVtZW50cyBvZiB0aGUgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNoYW5kbGVSZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5oYW5kbGVSZXF1ZXN0PC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZnRlciBjb25zdHJ1Y3RlZCwgdGhpcyBpcyB0aGUgZmlyc3QgbWV0aG9kIGNhbGxlZCBvbgorIGJ5IEFjdGlvblNlcnZsZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjcm9sbGJhY2soKSI+cm9sbGJhY2s8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gd2hlbiB0aGVyZSdzIHNvbWUgc29ydCBvZiBwcm9ibGVtCisgYW5kIHRoZSBmb3JtIHBvc3QgbmVlZHMgdG8gYmUgcm9sbGVkIGJhY2suPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2V0TWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnNldE1hcHBpbmc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb252aWVuaWVuY2UgbWV0aG9kIHRvIHNldCBhIHJlZmVyZW5jZSB0byBhIHdvcmtpbmcKKyBBY3Rpb25NYXBwaW5nIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udmllbmllbmNlIG1ldGhvZCB0byBzZXQgYSByZWZlcmVuY2UgdG8gYSB3b3JraW5nCisgQWN0aW9uU2VydmxldCBpbnN0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQVRUUklCVVRFX01BWF9MRU5HVEhfRVhDRUVERUQiPjwhLS0gLS0+PC9BPjxIMz4KK0FUVFJJQlVURV9NQVhfTEVOR1RIX0VYQ0VFREVEPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+QVRUUklCVVRFX01BWF9MRU5HVEhfRVhDRUVERUQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhpcyBpcyB0aGUgU2VydmxldFJlcXVlc3QgYXR0cmlidXRlIHRoYXQgc2hvdWxkIGJlIHNldCB3aGVuIGEgbXVsdGlwYXJ0IHJlcXVlc3QgaXMgYmVpbmcgcmVhZAorIGFuZCB0aGUgbWF4aW11bSBsZW5ndGggaXMgZXhjZWVkZWQuIFRoZSB2YWx1ZSBpcyBhIEJvb2xlYW4uIElmIHRoZSBtYXhpbXVtIGxlbmd0aCBpc24ndCBleGNlZWRlZCwKKyB0aGlzIGF0dHJpYnV0ZSBzaG91bGRuJ3QgYmUgcHV0IGluIHRoZSBTZXJ2bGV0UmVxdWVzdC4gSXQncyB0aGUgam9iIG9mIHRoZSBpbXBsZW1lbnRhdGlvbiB0byBwdXQgdGhpcworIGF0dHJpYnV0ZSBpbiB0aGUgcmVxdWVzdCBpZiB0aGUgbWF4aW11bSBsZW5ndGggaXMgZXhjZWVkZWQ7IGluIHRoZSBoYW5kbGVSZXF1ZXN0KEh0dHBTZXJ2bGV0UmVxdWVzdCkgbWV0aG9kLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQVRUUklCVVRFX01BWF9MRU5HVEhfRVhDRUVERUQiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InNldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTZXJ2bGV0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTZXJ2bGV0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9QUkU+Cis8REw+Cis8REQ+Q29udmllbmllbmNlIG1ldGhvZCB0byBzZXQgYSByZWZlcmVuY2UgdG8gYSB3b3JraW5nCisgQWN0aW9uU2VydmxldCBpbnN0YW5jZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE1hcHBpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE1hcHBpbmc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L1BSRT4KKzxETD4KKzxERD5Db252aWVuaWVuY2UgbWV0aG9kIHRvIHNldCBhIHJlZmVyZW5jZSB0byBhIHdvcmtpbmcKKyBBY3Rpb25NYXBwaW5nIGluc3RhbmNlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTZXJ2bGV0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNlcnZsZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiA8Qj5nZXRTZXJ2bGV0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1hcHBpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWFwcGluZzwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IDxCPmdldE1hcHBpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIEFjdGlvbk1hcHBpbmcgaW5zdGFuY2UgZm9yIHRoaXMgcmVxdWVzdAorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJoYW5kbGVSZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitoYW5kbGVSZXF1ZXN0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5oYW5kbGVSZXF1ZXN0PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCkKKyAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+QWZ0ZXIgY29uc3RydWN0ZWQsIHRoaXMgaXMgdGhlIGZpcnN0IG1ldGhvZCBjYWxsZWQgb24KKyBieSBBY3Rpb25TZXJ2bGV0LiAgVXNlIHRoaXMgbWV0aG9kIGZvciBhbGwgeW91cgorIGRhdGEtcGFyc2luZyBvZiB0aGUgU2VydmxldElucHV0U3RyZWFtIGluIHRoZSByZXF1ZXN0Cis8UD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSB0aHJvd24gaWYgc29tZXRoaW5nIGdvZXMgd3Jvbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFRleHRFbGVtZW50cygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUZXh0RWxlbWVudHM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuSGFzaHRhYmxlIDxCPmdldFRleHRFbGVtZW50czwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0byByZXRyaWV2ZSBhbGwgdGhlIHRleHQKKyBpbnB1dCBlbGVtZW50cyBvZiB0aGUgcmVxdWVzdC4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5BIEhhc2h0YWJsZSB3aGVyZSB0aGUga2V5cyBhbmQgdmFsdWVzIGFyZSB0aGUgbmFtZXMgYW5kCisgIHZhbHVlcyBvZiB0aGUgcmVxdWVzdCBpbnB1dCBwYXJhbWV0ZXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGaWxlRWxlbWVudHMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmlsZUVsZW1lbnRzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj5nZXRGaWxlRWxlbWVudHM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdG8gcmV0cmlldmUgYWxsIHRoZSBGb3JtRmlsZQorIGlucHV0IGVsZW1lbnRzIG9mIHRoZSByZXF1ZXN0LgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgSGFzaHRhYmxlIHdoZXJlIHRoZSBrZXlzIGFyZSB0aGUgaW5wdXQgbmFtZXMgb2YgdGhlCisgIGZpbGVzIGFuZCB0aGUgdmFsdWVzIGFyZSBGb3JtRmlsZSBvYmplY3RzPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPjxDT0RFPkZvcm1GaWxlPC9DT0RFPjwvQT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFsbEVsZW1lbnRzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFsbEVsZW1lbnRzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj5nZXRBbGxFbGVtZW50czwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgYWxsIGVsZW1lbnRzIG9mIGEgbXVsdGlwYXJ0IHJlcXVlc3QuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSBIYXNodGFibGUgd2hlcmUgdGhlIGtleXMgYXJlIGlucHV0IG5hbWVzIGFuZCB2YWx1ZXMKKyAgIGFyZSBlaXRoZXIgU3RyaW5ncyBvciBGb3JtRmlsZXM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJvbGxiYWNrKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JvbGxiYWNrPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yb2xsYmFjazwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB3aGVuIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIHByb2JsZW0KKyBhbmQgdGhlIGZvcm0gcG9zdCBuZWVkcyB0byBiZSByb2xsZWQgYmFjay4gIFByb3ZpZGVycworIHNob3VsZCByZW1vdmUgYW55IEZvcm1GaWxlcyB1c2VkIHRvIGhvbGQgaW5mb3JtYXRpb24KKyBieSBzZXR0aW5nIHRoZW0gdG8gbnVsbCBhbmQgYWxzbyBwaHlzaWNhbGx5IGRlbGV0ZQorIHRoZW0gaWYgdGhlIGltcGxlbWVudGF0aW9uIGNhbGxzIGZvciB3cml0aW5nIGRpcmVjdGx5CisgdG8gZGlzay4KKyBOT1RFOiBDdXJyZW50bHkgaW1wbGVtZW50ZWQgYnV0IG5vdCBhdXRvbWF0aWNhbGx5Cisgc3VwcG9ydGVkLCBBY3Rpb25Gb3JtIGltcGxlbWVudG9ycyBtdXN0IGNhbGwgcm9sbGJhY2soKQorIG1hbnVhbGx5IGZvciByb2xsaW5nIGJhY2sgZmlsZSB1cGxvYWRzLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5pc2goKSI+PCEtLSAtLT48L0E+PEgzPgorZmluaXNoPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5maW5pc2g8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gd2hlbiBhIHN1Y2Nlc3NmdWwgZm9ybSBwb3N0CisgaGFzIGJlZW4gbWFkZS4gIFNvbWUgaW1wbGVtZW50YXRpb25zIHdpbGwgdXNlIHRoaXMKKyB0byBkZXN0cm95IHRlbXBvcmFyeSBmaWxlcyBvciB3cml0ZSB0byBhIGRhdGFiYXNlCisgb3Igc29tZXRoaW5nIG9mIHRoYXQgbmF0dXJlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMiAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2MTk0YmIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbApAQCAtMCwwICsxLDE0NzUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFN1biBBcHIgMjAgMjM6NTA6MTMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RXcmFwcGVyLE11bHRpcGFydFJlcXVlc3RXcmFwcGVyIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvRk9OVD4KKzxCUj4KK0NsYXNzIE11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvREw+CisKKzxQPgorVGhpcyBjbGFzcyBmdW5jdGlvbnMgYXMgYSB3cmFwcGVyIGFyb3VuZCBIdHRwU2VydmxldFJlcXVlc3QgdG8KKyBwcm92aWRlIHdvcmtpbmcgZ2V0UGFyYW1ldGVyIG1ldGhvZHMgZm9yIG11bHRpcGFydCByZXF1ZXN0cy4gIE9uY2UKKyBTdHJ1dHMgcmVxdWlyZXMgU2VydmxldCAyLjMsIHRoaXMgY2xhc3Mgd2lsbCBkZWZpbmF0ZWx5IGJlIGNoYW5nZWQgdG8KKyBleHRlbmQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdFdyYXBwZXIgaW5zdGVhZCBvZgorIGltcGxlbWVudGluZyBIdHRwU2VydmxldFJlcXVlc3QuICBTZXJ2bGV0IDIuMyBtZXRob2RzIGFyZSBpbXBsZW1lbnRlZAorIHRvIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPiBvciBkbyBub3RoaW5nIGlmIGNhbGxlZCBvbi4gIFVzZQorIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlcXVlc3QoKSI+PENPREU+Z2V0UmVxdWVzdDwvQ09ERT48L0E+IHRvIHJldHJpZXZlIHRoZSB1bmRlcmx5aW5nIEh0dHBTZXJ2bGV0UmVxdWVzdAorIG9iamVjdCBhbmQgY2FsbCBvbiB0aGUgMi4zIG1ldGhvZCB0aGVyZSwgdGhlIGVtcHR5IG1ldGhvZHMgYXJlIGhlcmUgb25seQorIHNvIHRoYXQgdGhpcyB3aWxsIGNvbXBpbGUgd2l0aCB0aGUgU2VydmxldCAyLjMgamFyLiAgVGhpcyBjbGFzcyBleGlzdHMgdGVtcG9yYXJpbHkKKyBpbiB0aGUgcHJvY2VzcygpIG1ldGhvZCBvZiBBY3Rpb25TZXJ2bGV0LCBqdXN0IGJlZm9yZSB0aGUgQWN0aW9uRm9yd2FyZCBpcyBwcm9jZXNzZWQKKyBhbmQganVzdCBhZnRlciB0aGUgQWN0aW9uIGlzIHBlcmZvcm1lZCwgdGhlIHJlcXVlc3QgaXMgc2V0IGJhY2sgdG8gdGhlIG9yaWdpbmFsCisgSHR0cFNlcnZsZXRSZXF1ZXN0IG9iamVjdC4KKzxQPgorCis8UD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5NYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjcGFyYW1ldGVycyI+cGFyYW1ldGVyczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcGFyYW1ldGVycyBmb3IgdGhpcyBtdWx0aXBhcnQgcmVxdWVzdDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNyZXF1ZXN0Ij5yZXF1ZXN0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB1bmRlcmx5aW5nIEh0dHBTZXJ2bGV0UmVxdWVzdDwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLkVudW1lcmF0aW9uPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldEF0dHJpYnV0ZU5hbWVzKCkiPmdldEF0dHJpYnV0ZU5hbWVzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0QXV0aFR5cGUoKSI+Z2V0QXV0aFR5cGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRDaGFyYWN0ZXJFbmNvZGluZygpIj5nZXRDaGFyYWN0ZXJFbmNvZGluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0Q29udGVudExlbmd0aCgpIj5nZXRDb250ZW50TGVuZ3RoPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0Q29udGVudFR5cGUoKSI+Z2V0Q29udGVudFR5cGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRDb250ZXh0UGF0aCgpIj5nZXRDb250ZXh0UGF0aDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0Lmh0dHAuQ29va2llW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0Q29va2llcygpIj5nZXRDb29raWVzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2xvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0RGF0ZUhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0RGF0ZUhlYWRlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5nZXRIZWFkZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuRW51bWVyYXRpb248L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0SGVhZGVyTmFtZXMoKSI+Z2V0SGVhZGVyTmFtZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLkVudW1lcmF0aW9uPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldEhlYWRlcnMoamF2YS5sYW5nLlN0cmluZykiPmdldEhlYWRlcnM8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0LlNlcnZsZXRJbnB1dFN0cmVhbTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRJbnB1dFN0cmVhbSgpIj5nZXRJbnB1dFN0cmVhbTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0SW50SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5nZXRJbnRIZWFkZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuTG9jYWxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLkVudW1lcmF0aW9uPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldExvY2FsZXMoKSI+Z2V0TG9jYWxlczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldE1ldGhvZCgpIj5nZXRNZXRob2Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPmdldFBhcmFtZXRlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXR0ZW1wdHMgdG8gZ2V0IGEgcGFyYW1ldGVyIGZvciB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5NYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UGFyYW1ldGVyTWFwKCkiPmdldFBhcmFtZXRlck1hcDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIHJldHVybnMgbnVsbC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLkVudW1lcmF0aW9uPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFBhcmFtZXRlck5hbWVzKCkiPmdldFBhcmFtZXRlck5hbWVzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgbmFtZXMgb2YgdGhlIHBhcmFtZXRlcnMgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZ1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFBhcmFtZXRlclZhbHVlcyhqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0UGFyYW1ldGVyVmFsdWVzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRQYXRoSW5mbygpIj5nZXRQYXRoSW5mbzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFBhdGhUcmFuc2xhdGVkKCkiPmdldFBhdGhUcmFuc2xhdGVkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UHJvdG9jb2woKSI+Z2V0UHJvdG9jb2w8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRRdWVyeVN0cmluZygpIj5nZXRRdWVyeVN0cmluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlYWRlcigpIj5nZXRSZWFkZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRSZWFsUGF0aChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0UmVhbFBhdGg8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlbW90ZUFkZHIoKSI+Z2V0UmVtb3RlQWRkcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlbW90ZUhvc3QoKSI+Z2V0UmVtb3RlSG9zdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlbW90ZVVzZXIoKSI+Z2V0UmVtb3RlVXNlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlcXVlc3QoKSI+Z2V0UmVxdWVzdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIHVuZGVybHlpbmcgSHR0cFNlcnZsZXRSZXF1ZXN0IGZvciB0aGlzIHdyYXBwZXI8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YXguc2VydmxldC5SZXF1ZXN0RGlzcGF0Y2hlcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRSZXF1ZXN0RGlzcGF0Y2hlcihqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0UmVxdWVzdERpc3BhdGNoZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlcXVlc3RlZFNlc3Npb25JZCgpIj5nZXRSZXF1ZXN0ZWRTZXNzaW9uSWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRSZXF1ZXN0VVJJKCkiPmdldFJlcXVlc3RVUkk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZ0J1ZmZlcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRSZXF1ZXN0VVJMKCkiPmdldFJlcXVlc3RVUkw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCByZXR1cm5zIG51bGwuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0U2NoZW1lKCkiPmdldFNjaGVtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFNlcnZlck5hbWUoKSI+Z2V0U2VydmVyTmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0U2VydmVyUG9ydCgpIj5nZXRTZXJ2ZXJQb3J0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0U2VydmxldFBhdGgoKSI+Z2V0U2VydmxldFBhdGg8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFNlc3Npb24oKSI+Z2V0U2Vzc2lvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb248L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0U2Vzc2lvbihib29sZWFuKSI+Z2V0U2Vzc2lvbjwvQT48L0I+KGJvb2xlYW4mbmJzcDtjcmVhdGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5zZWN1cml0eS5QcmluY2lwYWw8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0VXNlclByaW5jaXBhbCgpIj5nZXRVc2VyUHJpbmNpcGFsPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjaXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tQ29va2llKCkiPmlzUmVxdWVzdGVkU2Vzc2lvbklkRnJvbUNvb2tpZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIHJldHVybnMgZmFsc2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjaXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tVXJsKCkiPmlzUmVxdWVzdGVkU2Vzc2lvbklkRnJvbVVybDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2lzUmVxdWVzdGVkU2Vzc2lvbklkRnJvbVVSTCgpIj5pc1JlcXVlc3RlZFNlc3Npb25JZEZyb21VUkw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNpc1JlcXVlc3RlZFNlc3Npb25JZFZhbGlkKCkiPmlzUmVxdWVzdGVkU2Vzc2lvbklkVmFsaWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNpc1NlY3VyZSgpIj5pc1NlY3VyZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2lzVXNlckluUm9sZShqYXZhLmxhbmcuU3RyaW5nKSI+aXNVc2VySW5Sb2xlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VzZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNyZW1vdmVBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPnJlbW92ZUF0dHJpYnV0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjc2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj5zZXRBdHRyaWJ1dGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7byk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI3NldENoYXJhY3RlckVuY29kaW5nKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDaGFyYWN0ZXJFbmNvZGluZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtlbmNvZGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIGRvZXMgbm90aGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgYSBwYXJhbWV0ZXIgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InBhcmFtZXRlcnMiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcmFtZXRlcnM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuTWFwIDxCPnBhcmFtZXRlcnM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHBhcmFtZXRlcnMgZm9yIHRoaXMgbXVsdGlwYXJ0IHJlcXVlc3QKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlcXVlc3QiPjwhLS0gLS0+PC9BPjxIMz4KK3JlcXVlc3Q8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0IDxCPnJlcXVlc3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHVuZGVybHlpbmcgSHR0cFNlcnZsZXRSZXF1ZXN0Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK011bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ic2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbWV0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtZXRlcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldHMgYSBwYXJhbWV0ZXIgZm9yIHRoaXMgcmVxdWVzdC4gIFRoZSBwYXJhbWV0ZXIgaXMgYWN0dWFsbHkKKyBzZXBhcmF0ZSBmcm9tIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMsIGJ1dCBjYWxsaW5nIG9uIHRoZQorIGdldFBhcmFtZXRlcigpIG1ldGhvZHMgb2YgdGhpcyBjbGFzcyB3aWxsIHdvcmsgYXMgaWYgdGhleSB3ZXJlbid0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhcmFtZXRlcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFyYW1ldGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5BdHRlbXB0cyB0byBnZXQgYSBwYXJhbWV0ZXIgZm9yIHRoaXMgcmVxdWVzdC4gIEl0IGZpcnN0IGxvb2tzIGluIHRoZQorIHVuZGVybHlpbmcgSHR0cFNlcnZsZXRSZXF1ZXN0IG9iamVjdCBmb3IgdGhlIHBhcmFtZXRlciwgYW5kIGlmIHRoYXQKKyBkb2Vzbid0IGV4aXN0IGl0IGxvb2tzIGZvciB0aGUgcGFyYW1ldGVycyByZXRyaWV2ZWQgZnJvbSB0aGUgbXVsdGlwYXJ0CisgcmVxdWVzdAorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldFBhcmFtZXRlcjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXJhbWV0ZXJOYW1lcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJhbWV0ZXJOYW1lczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5FbnVtZXJhdGlvbiA8Qj5nZXRQYXJhbWV0ZXJOYW1lczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG5hbWVzIG9mIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGlzIHJlcXVlc3QuCisgVGhlIGVudW1lcmF0aW9uIGNvbnNpc3RzIG9mIHRoZSBub3JtYWwgcmVxdWVzdCBwYXJhbWV0ZXIKKyBuYW1lcyBwbHVzIHRoZSBwYXJhbWV0ZXJzIHJlYWQgZnJvbSB0aGUgbXVsdGlwYXJ0IHJlcXVlc3QKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRQYXJhbWV0ZXJOYW1lczwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXJhbWV0ZXJWYWx1ZXMoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhcmFtZXRlclZhbHVlczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmdbXSA8Qj5nZXRQYXJhbWV0ZXJWYWx1ZXM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRQYXJhbWV0ZXJWYWx1ZXM8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UmVxdWVzdCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSZXF1ZXN0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCA8Qj5nZXRSZXF1ZXN0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgdW5kZXJseWluZyBIdHRwU2VydmxldFJlcXVlc3QgZm9yIHRoaXMgd3JhcHBlcgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Z2V0QXR0cmlidXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0QXR0cmlidXRlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEF0dHJpYnV0ZU5hbWVzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEF0dHJpYnV0ZU5hbWVzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkVudW1lcmF0aW9uIDxCPmdldEF0dHJpYnV0ZU5hbWVzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldEF0dHJpYnV0ZU5hbWVzPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldENoYXJhY3RlckVuY29kaW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENoYXJhY3RlckVuY29kaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRDaGFyYWN0ZXJFbmNvZGluZzwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRDaGFyYWN0ZXJFbmNvZGluZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDb250ZW50TGVuZ3RoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbnRlbnRMZW5ndGg8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0Q29udGVudExlbmd0aDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRDb250ZW50TGVuZ3RoPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldENvbnRlbnRUeXBlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbnRlbnRUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRDb250ZW50VHlwZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRDb250ZW50VHlwZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJbnB1dFN0cmVhbSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJbnB1dFN0cmVhbTwvSDM+Cis8UFJFPgorcHVibGljIGphdmF4LnNlcnZsZXQuU2VydmxldElucHV0U3RyZWFtIDxCPmdldElucHV0U3RyZWFtPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRJbnB1dFN0cmVhbTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3RvY29sKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3RvY29sPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm90b2NvbDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRQcm90b2NvbDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTY2hlbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2NoZW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTY2hlbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0U2NoZW1lPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNlcnZlck5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2VydmVyTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U2VydmVyTmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRTZXJ2ZXJOYW1lPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNlcnZlclBvcnQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2VydmVyUG9ydDwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5nZXRTZXJ2ZXJQb3J0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldFNlcnZlclBvcnQ8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UmVhZGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJlYWRlcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEuaW8uQnVmZmVyZWRSZWFkZXIgPEI+Z2V0UmVhZGVyPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRSZWFkZXI8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZW1vdGVBZGRyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJlbW90ZUFkZHI8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFJlbW90ZUFkZHI8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0UmVtb3RlQWRkcjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZW1vdGVIb3N0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJlbW90ZUhvc3Q8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFJlbW90ZUhvc3Q8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0UmVtb3RlSG9zdDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QXR0cmlidXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7byk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+c2V0QXR0cmlidXRlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbW92ZUF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorcmVtb3ZlQXR0cmlidXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZW1vdmVBdHRyaWJ1dGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZW1vdmVBdHRyaWJ1dGU8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TG9jYWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5Mb2NhbGUgPEI+Z2V0TG9jYWxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldExvY2FsZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRMb2NhbGVzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExvY2FsZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuRW51bWVyYXRpb24gPEI+Z2V0TG9jYWxlczwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRMb2NhbGVzPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzU2VjdXJlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzU2VjdXJlPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc1NlY3VyZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5pc1NlY3VyZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZXF1ZXN0RGlzcGF0Y2hlcihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVxdWVzdERpc3BhdGNoZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC5zZXJ2bGV0LlJlcXVlc3REaXNwYXRjaGVyIDxCPmdldFJlcXVlc3REaXNwYXRjaGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0UmVxdWVzdERpc3BhdGNoZXI8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UmVhbFBhdGgoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJlYWxQYXRoPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRSZWFsUGF0aDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldFJlYWxQYXRoPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEF1dGhUeXBlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEF1dGhUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBdXRoVHlwZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRBdXRoVHlwZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDb29raWVzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvb2tpZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC5zZXJ2bGV0Lmh0dHAuQ29va2llW10gPEI+Z2V0Q29va2llczwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRDb29raWVzPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldERhdGVIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERhdGVIZWFkZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBsb25nIDxCPmdldERhdGVIZWFkZXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXREYXRlSGVhZGVyPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SGVhZGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRIZWFkZXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRIZWFkZXI8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SGVhZGVycyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SGVhZGVyczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5FbnVtZXJhdGlvbiA8Qj5nZXRIZWFkZXJzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0SGVhZGVyczwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRIZWFkZXJOYW1lcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRIZWFkZXJOYW1lczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5FbnVtZXJhdGlvbiA8Qj5nZXRIZWFkZXJOYW1lczwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRIZWFkZXJOYW1lczwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJbnRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEludEhlYWRlcjwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5nZXRJbnRIZWFkZXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRJbnRIZWFkZXI8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWV0aG9kKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1ldGhvZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TWV0aG9kPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldE1ldGhvZDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXRoSW5mbygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXRoSW5mbzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGF0aEluZm88L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0UGF0aEluZm88L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGF0aFRyYW5zbGF0ZWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGF0aFRyYW5zbGF0ZWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhdGhUcmFuc2xhdGVkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldFBhdGhUcmFuc2xhdGVkPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldENvbnRleHRQYXRoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbnRleHRQYXRoPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRDb250ZXh0UGF0aDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRDb250ZXh0UGF0aDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRRdWVyeVN0cmluZygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRRdWVyeVN0cmluZzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UXVlcnlTdHJpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0UXVlcnlTdHJpbmc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UmVtb3RlVXNlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSZW1vdGVVc2VyPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRSZW1vdGVVc2VyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldFJlbW90ZVVzZXI8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNVc2VySW5Sb2xlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Citpc1VzZXJJblJvbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzVXNlckluUm9sZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VzZXIpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmlzVXNlckluUm9sZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRVc2VyUHJpbmNpcGFsKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFVzZXJQcmluY2lwYWw8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnNlY3VyaXR5LlByaW5jaXBhbCA8Qj5nZXRVc2VyUHJpbmNpcGFsPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldFVzZXJQcmluY2lwYWw8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UmVxdWVzdGVkU2Vzc2lvbklkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJlcXVlc3RlZFNlc3Npb25JZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UmVxdWVzdGVkU2Vzc2lvbklkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldFJlcXVlc3RlZFNlc3Npb25JZDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZXF1ZXN0VVJJKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJlcXVlc3RVUkk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFJlcXVlc3RVUkk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0UmVxdWVzdFVSSTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTZXJ2bGV0UGF0aCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTZXJ2bGV0UGF0aDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U2VydmxldFBhdGg8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0U2VydmxldFBhdGg8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2Vzc2lvbihib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2Vzc2lvbjwvSDM+Cis8UFJFPgorcHVibGljIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vzc2lvbiA8Qj5nZXRTZXNzaW9uPC9CPihib29sZWFuJm5ic3A7Y3JlYXRlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRTZXNzaW9uPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNlc3Npb24oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2Vzc2lvbjwvSDM+Cis8UFJFPgorcHVibGljIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vzc2lvbiA8Qj5nZXRTZXNzaW9uPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldFNlc3Npb248L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNSZXF1ZXN0ZWRTZXNzaW9uSWRWYWxpZCgpIj48IS0tIC0tPjwvQT48SDM+Citpc1JlcXVlc3RlZFNlc3Npb25JZFZhbGlkPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc1JlcXVlc3RlZFNlc3Npb25JZFZhbGlkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmlzUmVxdWVzdGVkU2Vzc2lvbklkVmFsaWQ8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tVVJMKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzUmVxdWVzdGVkU2Vzc2lvbklkRnJvbVVSTDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+aXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tVVJMPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmlzUmVxdWVzdGVkU2Vzc2lvbklkRnJvbVVSTDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1JlcXVlc3RlZFNlc3Npb25JZEZyb21VcmwoKSI+PCEtLSAtLT48L0E+PEgzPgoraXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tVXJsPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc1JlcXVlc3RlZFNlc3Npb25JZEZyb21Vcmw8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+aXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tVXJsPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtZXRlck1hcCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJhbWV0ZXJNYXA8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuTWFwIDxCPmdldFBhcmFtZXRlck1hcDwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgbnVsbC4gIFRvIHVzZSBhbnkgU2VydmxldCAyLjMgbWV0aG9kcywKKyBjYWxsIG9uIGdldFJlcXVlc3QoKSBhbmQgdXNlIHRoYXQgcmVxdWVzdCBvYmplY3QuICBPbmNlIFNlcnZsZXQgMi4zCisgaXMgcmVxdWlyZWQgdG8gYnVpbGQgU3RydXRzLCB0aGlzIHdpbGwgbm8gbG9uZ2VyIGJlIGFuIGlzc3VlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDaGFyYWN0ZXJFbmNvZGluZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Q2hhcmFjdGVyRW5jb2Rpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENoYXJhY3RlckVuY29kaW5nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZW5jb2RpbmcpPC9QUkU+Cis8REw+Cis8REQ+VGhpcyBtZXRob2QgZG9lcyBub3RoaW5nLiAgVG8gdXNlIGFueSBTZXJ2bGV0IDIuMyBtZXRob2RzLAorIGNhbGwgb24gZ2V0UmVxdWVzdCgpIGFuZCB1c2UgdGhhdCByZXF1ZXN0IG9iamVjdC4gIE9uY2UgU2VydmxldCAyLjMKKyBpcyByZXF1aXJlZCB0byBidWlsZCBTdHJ1dHMsIHRoaXMgd2lsbCBubyBsb25nZXIgYmUgYW4gaXNzdWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJlcXVlc3RVUkwoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVxdWVzdFVSTDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgPEI+Z2V0UmVxdWVzdFVSTDwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgbnVsbC4gIFRvIHVzZSBhbnkgU2VydmxldCAyLjMgbWV0aG9kcywKKyBjYWxsIG9uIGdldFJlcXVlc3QoKSBhbmQgdXNlIHRoYXQgcmVxdWVzdCBvYmplY3QuICBPbmNlIFNlcnZsZXQgMi4zCisgaXMgcmVxdWlyZWQgdG8gYnVpbGQgU3RydXRzLCB0aGlzIHdpbGwgbm8gbG9uZ2VyIGJlIGFuIGlzc3VlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1JlcXVlc3RlZFNlc3Npb25JZEZyb21Db29raWUoKSI+PCEtLSAtLT48L0E+PEgzPgoraXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tQ29va2llPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc1JlcXVlc3RlZFNlc3Npb25JZEZyb21Db29raWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCByZXR1cm5zIGZhbHNlLiAgVG8gdXNlIGFueSBTZXJ2bGV0IDIuMyBtZXRob2RzLAorIGNhbGwgb24gZ2V0UmVxdWVzdCgpIGFuZCB1c2UgdGhhdCByZXF1ZXN0IG9iamVjdC4gIE9uY2UgU2VydmxldCAyLjMKKyBpcyByZXF1aXJlZCB0byBidWlsZCBTdHJ1dHMsIHRoaXMgd2lsbCBubyBsb25nZXIgYmUgYW4gaXNzdWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+aXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tQ29va2llPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAyIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI3YTgzNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sCkBAIC0wLDAgKzEsNTA3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBTdW4gQXByIDIwIDIzOjUwOjE0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTXVsdGlwYXJ0VmFsdWVTdHJlYW0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRWYWx1ZVN0cmVhbSxNdWx0aXBhcnRWYWx1ZVN0cmVhbSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTXVsdGlwYXJ0VmFsdWVTdHJlYW0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik11bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0ZPTlQ+Cis8QlI+CitDbGFzcyBNdWx0aXBhcnRWYWx1ZVN0cmVhbTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmEuaW8uSW5wdXRTdHJlYW0KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0VmFsdWVTdHJlYW08L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD4gY2xhc3MgPEI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0I+PERUPmV4dGVuZHMgamF2YS5pby5JbnB1dFN0cmVhbTwvREw+CisKKzxQPgorVGhpcyBjbGFzcyBpbXBsZW1lbnRzIGFuIGlucHV0U3RyZWFtIHRoYXQgcmVhZHMgYW5vdGhlciBzdHJlYW0gdW50aWwgCisgYSBtdWx0aXBhcnQgYm91bmRhcnkgaXMgZm91bmQuIFRoZSBjbGFzcyByZXBvcnRzIGVvZiB3aGVuIGJvdW5kYXJ5IGZvdW5kLgorIFRoZSB1bmRlbHlpbmcgc3RyZWFtIGlzIG5vdCBjbG9zZWQuCisKKyA8cD4KKyBTZWUgUkZDIDE4NjcgKGh0dHA6Ly9pbmZvLmludGVybmV0LmlzaS5lZHU6ODAvaW4tbm90ZXMvcmZjL2ZpbGVzL3JmYzE4NjcudHh0KQorIGZvciBkZXRhaWxzIGFib3V0IHRoZSBwcm90b2NvbC4KKyA8cD4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5KaW1teSBMYXJzc29uPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ynl0ZVtdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI2JvdW5kYXJ5Qnl0ZXMiPmJvdW5kYXJ5Qnl0ZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ynl0ZSBidWZmZXIgd2l0aCB0aGUgYm91bmRhcnk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI2JvdW5kYXJ5UmVhY2hlZCI+Ym91bmRhcnlSZWFjaGVkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2hhdmUgd2UgcmVhY2hlZCB0aGUgYm91bmRhcnk/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNmaW5hbEJvdW5kYXJ5UmVhY2hlZCI+ZmluYWxCb3VuZGFyeVJlYWNoZWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aXMgdGhlIGJvdW5kYXJ5IGZvdW5kIGEgZmluYWwgYm91bmRhcnk/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjSEVBREVSX0VOQ09ESU5HIj5IRUFERVJfRU5DT0RJTkc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNpbiI+aW48L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dGhlIHVuZGVybHlpbmcgc3RyZWFtPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI21hdGNoZWRCb3VuZGFyeUJ5dGVzIj5tYXRjaGVkQm91bmRhcnlCeXRlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtob3cgbWFueSBjdXJyZXRseSBtYXRjaGVkIGJvdW5kYXJ5IGJ5dGVzPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNyZWFkQWhlYWRCdWZmZXJFbmRJIj5yZWFkQWhlYWRCdWZmZXJFbmRJPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBlbmQgaW5kZXggZm9yIHRoZSByZWFkIGFoZWFkIGN5Y2xpYyBidWZmZXIgKHBvaW50cyB0byB0aGUgbGFzdCBieXRlKTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNyZWFkQWhlYWRCdWZmZXJTdGFydEkiPnJlYWRBaGVhZEJ1ZmZlclN0YXJ0STwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc3RhcnQgaW5kZXggZm9yIHRoZSByZWFkIGFoZWFkIGN5Y2xpYyBidWZmZXIgKHBvaW50cyB0byB0aGUgZmlyc3QgYnl0ZSk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtieXRlW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjcmVhZEFoZWFkQnl0ZXMiPnJlYWRBaGVhZEJ5dGVzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3RoZSByZWFkIGFoZWFkIGJ1ZmZlciAoY3ljbGljKTwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmlvLklucHV0U3RyZWFtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEuaW8uSW5wdXRTdHJlYW08L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNNdWx0aXBhcnRWYWx1ZVN0cmVhbShqYXZhLmlvLklucHV0U3RyZWFtLCBqYXZhLmxhbmcuU3RyaW5nKSI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0E+PC9CPihqYXZhLmlvLklucHV0U3RyZWFtJm5ic3A7aW4sCisgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Ym91bmRhcnkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYSBzdHJlYW0gdGhhdCBzdG9wcyByZWFkaW5nIGF0IHRoZSBib3VuZGFyeQorCisgTk9URTogdGhlIGJvdW5kYXJ5IHBhcmFtZXRlciBpcyB3aXRob3V0IHRoZSB0cmFpbGluZyBkYXNoZXMgIi0tIi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI2VuY291bnRlcmVkRmluYWxCb3VuZGFyeSgpIj5lbmNvdW50ZXJlZEZpbmFsQm91bmRhcnk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI3JlYWQoKSI+cmVhZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlYWQgdGhlIG5leHQgYnl0ZTwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5pby5JbnB1dFN0cmVhbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5pby5JbnB1dFN0cmVhbTwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmF2YWlsYWJsZSwgY2xvc2UsIG1hcmssIG1hcmtTdXBwb3J0ZWQsIHJlYWQsIHJlYWQsIHJlc2V0LCBza2lwPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iSEVBREVSX0VOQ09ESU5HIj48IS0tIC0tPjwvQT48SDM+CitIRUFERVJfRU5DT0RJTkc8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5IRUFERVJfRU5DT0RJTkc8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0VmFsdWVTdHJlYW0uSEVBREVSX0VOQ09ESU5HIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluIj48IS0tIC0tPjwvQT48SDM+CitpbjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmlvLklucHV0U3RyZWFtIDxCPmluPC9CPjwvUFJFPgorPERMPgorPEREPnRoZSB1bmRlcmx5aW5nIHN0cmVhbQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYm91bmRhcnlCeXRlcyI+PCEtLSAtLT48L0E+PEgzPgorYm91bmRhcnlCeXRlczwvSDM+Cis8UFJFPgorcHJpdmF0ZSBieXRlW10gPEI+Ym91bmRhcnlCeXRlczwvQj48L1BSRT4KKzxETD4KKzxERD5ieXRlIGJ1ZmZlciB3aXRoIHRoZSBib3VuZGFyeQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWF0Y2hlZEJvdW5kYXJ5Qnl0ZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21hdGNoZWRCb3VuZGFyeUJ5dGVzPC9IMz4KKzxQUkU+Citwcml2YXRlIGludCA8Qj5tYXRjaGVkQm91bmRhcnlCeXRlczwvQj48L1BSRT4KKzxETD4KKzxERD5ob3cgbWFueSBjdXJyZXRseSBtYXRjaGVkIGJvdW5kYXJ5IGJ5dGVzPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVhZEFoZWFkQnl0ZXMiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWRBaGVhZEJ5dGVzPC9IMz4KKzxQUkU+Citwcml2YXRlIGJ5dGVbXSA8Qj5yZWFkQWhlYWRCeXRlczwvQj48L1BSRT4KKzxETD4KKzxERD50aGUgcmVhZCBhaGVhZCBidWZmZXIgKGN5Y2xpYykKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWRBaGVhZEJ1ZmZlclN0YXJ0SSI+PCEtLSAtLT48L0E+PEgzPgorcmVhZEFoZWFkQnVmZmVyU3RhcnRJPC9IMz4KKzxQUkU+Citwcml2YXRlIGludCA8Qj5yZWFkQWhlYWRCdWZmZXJTdGFydEk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHN0YXJ0IGluZGV4IGZvciB0aGUgcmVhZCBhaGVhZCBjeWNsaWMgYnVmZmVyIChwb2ludHMgdG8gdGhlIGZpcnN0IGJ5dGUpCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWFkQWhlYWRCdWZmZXJFbmRJIj48IS0tIC0tPjwvQT48SDM+CityZWFkQWhlYWRCdWZmZXJFbmRJPC9IMz4KKzxQUkU+Citwcml2YXRlIGludCA8Qj5yZWFkQWhlYWRCdWZmZXJFbmRJPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBlbmQgaW5kZXggZm9yIHRoZSByZWFkIGFoZWFkIGN5Y2xpYyBidWZmZXIgKHBvaW50cyB0byB0aGUgbGFzdCBieXRlKQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYm91bmRhcnlSZWFjaGVkIj48IS0tIC0tPjwvQT48SDM+Citib3VuZGFyeVJlYWNoZWQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgYm9vbGVhbiA8Qj5ib3VuZGFyeVJlYWNoZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+aGF2ZSB3ZSByZWFjaGVkIHRoZSBib3VuZGFyeT8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmFsQm91bmRhcnlSZWFjaGVkIj48IS0tIC0tPjwvQT48SDM+CitmaW5hbEJvdW5kYXJ5UmVhY2hlZDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBib29sZWFuIDxCPmZpbmFsQm91bmRhcnlSZWFjaGVkPC9CPjwvUFJFPgorPERMPgorPEREPmlzIHRoZSBib3VuZGFyeSBmb3VuZCBhIGZpbmFsIGJvdW5kYXJ5PworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik11bHRpcGFydFZhbHVlU3RyZWFtKGphdmEuaW8uSW5wdXRTdHJlYW0sIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitNdWx0aXBhcnRWYWx1ZVN0cmVhbTwvSDM+Cis8UFJFPgorcHVibGljIDxCPk11bHRpcGFydFZhbHVlU3RyZWFtPC9CPihqYXZhLmlvLklucHV0U3RyZWFtJm5ic3A7aW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2JvdW5kYXJ5KQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgYSBzdHJlYW0gdGhhdCBzdG9wcyByZWFkaW5nIGF0IHRoZSBib3VuZGFyeQorCisgTk9URTogdGhlIGJvdW5kYXJ5IHBhcmFtZXRlciBpcyB3aXRob3V0IHRoZSB0cmFpbGluZyBkYXNoZXMgIi0tIi4KKzxQPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icmVhZCgpIj48IS0tIC0tPjwvQT48SDM+CityZWFkPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPnJlYWQ8L0I+KCkKKyAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVhZCB0aGUgbmV4dCBieXRlCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVhZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+LTEgb24gYm91bmRhcnkgcmVhY2hlZAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgZW5kaW5nIGJvdW5kYXJ5IGlzIG5ldmVyIGZvdW5kPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbmNvdW50ZXJlZEZpbmFsQm91bmRhcnkoKSI+PCEtLSAtLT48L0E+PEgzPgorZW5jb3VudGVyZWRGaW5hbEJvdW5kYXJ5PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5lbmNvdW50ZXJlZEZpbmFsQm91bmRhcnk8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dHJ1ZSBpZiB3ZSBhcmUgdGhlIGxhc3Qgc3RyZWFtLCBpZS4gd2UgZW5jb3VudGVyZWQgYSBmaW5hbCBib3VuZGFyeQorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBib3VuZGFyeSBoYXMgbm90IHlldCBiZWVuIHJlYWNoZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAyIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLWZyYW1lLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5Mzk3NDEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNzMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFN1biBBcHIgMjAgMjM6NTA6MDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZCBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT48L0ZPTlQ+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitJbnRlcmZhY2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iRm9ybUZpbGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5Gb3JtRmlsZTwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPjxJPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9JPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0NsYXNzZXM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJCdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxCUj4KKzxBIEhSRUY9IkRpc2tGaWxlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGlza0ZpbGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJEaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8QlI+Cis8QSBIUkVGPSJNdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxCUj4KKzxBIEhSRUY9Ik11bHRpcGFydEVsZW1lbnQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NdWx0aXBhcnRFbGVtZW50PC9BPgorPEJSPgorPEEgSFJFRj0iTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxCUj4KKzxBIEhSRUY9Ik11bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8QlI+Cis8QSBIUkVGPSJNdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk11bHRpcGFydFZhbHVlU3RyZWFtPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKworPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorRXhjZXB0aW9uczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9IkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Ik1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1NWIxMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXN1bW1hcnkuaHRtbApAQCAtMCwwICsxLDI0OSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gU3VuIEFwciAyMCAyMzo1MDowMiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQKKzwvSDI+CisgVGhlIHVwbG9hZCBwYWNrYWdlIGZhY2lsaXRpZXMgdG8gdXBsb2FkIGZpbGVzIHVzaW5nCisgbXVsdGktcGFydCByZXF1ZXN0cy4KKzxQPgorPEI+U2VlOjwvQj4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxBIEhSRUY9IiNwYWNrYWdlX2Rlc2NyaXB0aW9uIj48Qj5EZXNjcmlwdGlvbjwvQj48L0E+Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+SW50ZXJmYWNlIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRm9ybUZpbGUuaHRtbCI+PEk+Rm9ybUZpbGU8L0k+PC9BPjwvQj48L1REPgorPFREPlRoaXMgaW50ZXJmYWNlIHJlcHJlc2VudHMgYSBmaWxlIHRoYXQgaGFzIGJlZW4gdXBsb2FkZWQgYnkgYSBjbGllbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48ST5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvST48L0E+PC9CPjwvVEQ+Cis8VEQ+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgcHJvdmlkZXMgYW4gc3RhbmRhcmQgaW50ZXJmYWNlIGZvciBzdHJ1dHMgdG8KKyBkZWFsIHdpdGggZmlsZSB1cGxvYWRzIGZyb20gZm9ybXMgd2l0aCBlbmN0eXBlcyBvZiAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT48L0I+PC9URD4KKzxURD5UaGlzIGNsYXNzIGltcGxlbWVudHMgYnVmZmVyaW5nIGZvciBhbiBJbnB1dFN0cmVhbSBhcyB3ZWxsIGFzIGEKKyByZWFkTGluZSBtZXRob2QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJEaXNrRmlsZS5odG1sIj5EaXNrRmlsZTwvQT48L0I+PC9URD4KKzxURD4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9CPjwvVEQ+Cis8VEQ+VGhpcyBpcyBhIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyIHRoYXQgd3JpdGVzIGZpbGUgZGF0YSBkaXJlY3RseSB0bworIHRvIHRlbXBvcmFyeSBmaWxlcyBvbiBkaXNrLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPjwvQj48L1REPgorPFREPlRoaXMgY2xhc3MgZW5jYXBzdWxhdGVzIHBhcnNpbmcgZnVuY3Rpb25hbGl0eSBmb3IgUkZDMTg2NywgbXVsdGlwYXJ0L2Zvcm0tZGF0YS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik11bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT48L0I+PC9URD4KKzxURD5UaGlzIGNsYXNzIHJlcHJlc2VudHMgYW4gZWxlbWVudCBpbiBhIG11bHRpcGFydCByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+PC9CPjwvVEQ+Cis8VEQ+VGhlIE11bHRpcGFydEl0ZXJhdG9yIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciByZWFkaW5nIHRoZQorIGlucHV0IGRhdGEgb2YgYSBtdWx0aXBhcnQgcmVxdWVzdCBhbmQgc3BsaXR0aW5nIGl0IHVwIGludG8KKyBpbnB1dCBlbGVtZW50cywgd3JhcHBlZCBpbnNpZGUgb2YgYQorIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPjxDT0RFPk11bHRpcGFydEVsZW1lbnQ8L0NPREU+PC9BPgorIGZvciBlYXN5IGRlZmluaXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT48L0I+PC9URD4KKzxURD5UaGlzIGNsYXNzIGZ1bmN0aW9ucyBhcyBhIHdyYXBwZXIgYXJvdW5kIEh0dHBTZXJ2bGV0UmVxdWVzdCB0bworIHByb3ZpZGUgd29ya2luZyBnZXRQYXJhbWV0ZXIgbWV0aG9kcyBmb3IgbXVsdGlwYXJ0IHJlcXVlc3RzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0E+PC9CPjwvVEQ+Cis8VEQ+VGhpcyBjbGFzcyBpbXBsZW1lbnRzIGFuIGlucHV0U3RyZWFtIHRoYXQgcmVhZHMgYW5vdGhlciBzdHJlYW0gdW50aWwgCisgYSBtdWx0aXBhcnQgYm91bmRhcnkgaXMgZm91bmQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5FeGNlcHRpb24gU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJDb250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPjwvQj48L1REPgorPFREPlRoaXMgZXhjZXB0aW9uIGlzIHRocm93biB3aGVuIG11bHRpcGFydCBwb3N0IGRhdGEgZXhjZWVkcyB0aGUgdmFsdWUKKyBnaXZlbiBieSB0aGUgQ29udGVudC1MZW5ndGggaGVhZGVyPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJNYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIj5NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT48L0I+PC9URD4KKzxURD5UaGlzIGV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiBtdWx0aXBhcnQgcG9zdCBkYXRhIGV4Y2VlZHMgdGhlIG1heGltdW0KKyB2YWx1ZSBzZXQ8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+Cis8QSBOQU1FPSJwYWNrYWdlX2Rlc2NyaXB0aW9uIj48IS0tIC0tPjwvQT48SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZCBEZXNjcmlwdGlvbgorPC9IMj4KKworPFA+Cis8cD4gVGhlIHVwbG9hZCBwYWNrYWdlIGZhY2lsaXRpZXMgdG8gdXBsb2FkIGZpbGVzIHVzaW5nCisgbXVsdGktcGFydCByZXF1ZXN0cy48L3A+CisgPGJyPgorIDxicj4KKyA8aW1nIHNyYz0iZG9jLWZpbGVzL3VwbG9hZFVNTC5qcGciIGFsdD0iVXBsb2FkIFBhY2thZ2UgVU1MIiA+CisgPGJyPgorIAorPGgyPlBhY2thZ2UgU3BlY2lmaWNhdGlvbjwvaDI+CisgICAgICAjIyMjIyBGSUxMIElOIEFOWSBTUEVDUyBORUVERUQgQlkgSkFWQSBDT01QQVRJQklMSVRZIEtJVCAjIyMjIyAgICAgCis8dWw+CisgICA8bGk+PGEgaHJlZj0iIj4jIyMjIyBSRUZFUiBUTyBBTlkgRlJBTUVNQUtFUiBTUEVDSUZJQ0FUSU9OIEhFUkUgIyMjIyM8L2E+CisgICA8L2xpPgorIAorPC91bD4KKyAKKzxoMj5SZWxhdGVkIERvY3VtZW50YXRpb248L2gyPgorICAgICAgRm9yIG92ZXJ2aWV3cywgdHV0b3JpYWxzLCBleGFtcGxlcywgZ3VpZGVzLCBhbmQgdG9vbCBkb2N1bWVudGF0aW9uLCAKK3BsZWFzZSAgc2VlOiAgICAgCis8dWw+CisgICA8bGk+PGEgaHJlZj0iIj4jIyMjIyBSRUZFUiBUTyBOT04tU1BFQyBET0NVTUVOVEFUSU9OIEhFUkUgIyMjIyM8L2E+CisgICA8L2xpPgorIAorPC91bD4KKyA8IS0tIFB1dCBAc2VlIGFuZCBAc2luY2UgdGFncyBkb3duIGhlcmUuIC0tPgorPFA+CisKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAyIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXRyZWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzg5OTA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTQ5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBTdW4gQXByIDIwIDIzOjUwOjAyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorSGllcmFyY2h5IEZvciBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZAorPC9IMj4KKzwvQ0VOVEVSPgorPERMPgorPERUPjxCPlBhY2thZ2UgSGllcmFyY2hpZXM6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy10cmVlLmh0bWwiPkFsbCBQYWNrYWdlczwvQT48L0RMPgorPEhSPgorPEgyPgorQ2xhc3MgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLk9iamVjdDxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+PEI+RGlza0ZpbGU8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxCPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5pby5JbnB1dFN0cmVhbTxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj48Qj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+PEI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj48Qj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Qj5NdWx0aXBhcnRFbGVtZW50PC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPjxCPk11bHRpcGFydEl0ZXJhdG9yPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPjxCPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEubGFuZy5UaHJvd2FibGUgKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuRXhjZXB0aW9uPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5pby5JT0V4Y2VwdGlvbjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPjxCPkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIj48Qj5NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQj48L0E+PC9VTD4KKzwvVUw+Cis8L1VMPgorPC9VTD4KKzwvVUw+Cis8SDI+CitJbnRlcmZhY2UgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+PEI+Rm9ybUZpbGU8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxCPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPjwvQT48L1VMPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDIgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FycmF5U3RhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTRhNWIwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwKQEAgLTAsMCArMSwzODQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNyBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBBcnJheVN0YWNrCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBcnJheVN0YWNrLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9GT05UPgorPEJSPgorQ2xhc3MgIEFycmF5U3RhY2s8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkFycmF5U3RhY2s8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5BcnJheVN0YWNrPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorSW1wbGVtZW50YXRpb24gb2YgdGhlIDxjb2RlPmphdmEudXRpbC5TdGFjazwvY29kZT4gQVBJIHRoYXQgaXMgYmFzZWQgb24KKyBhbiA8Y29kZT5BcnJheUxpc3Q8L2NvZGU+IHJhdGhlciB0aGFuIGEgPGNvZGU+VmVjdG9yPC9jb2RlPi4gIFRoaXMgbWVhbnMKKyBubyBzeW5jaHJvbml6YXRpb24gbG9ja3MgYXJlIHV0aWxpemVkIGludGVybmFsbHksIHNvIHlvdSBtdXN0IHN5bmNocm9uaXplCisgZXh0ZXJuYWxseSBpZiBhbiBpbnN0YW5jZSBpcyByZWZlcmVuY2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkFycmF5U3RhY2siPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuQXJyYXlMaXN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sI2xpc3QiPmxpc3Q8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHVuZGVybHlpbmcgY29sbGVjdGlvbiBjbGFzcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sI0FycmF5U3RhY2soKSI+QXJyYXlTdGFjazwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwjY2xlYXIoKSI+Y2xlYXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW1vdmUgYWxsIGVsZW1lbnRzIGZyb20gdGhpcyBzdGFjay48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FycmF5U3RhY2suaHRtbCNlbXB0eSgpIj5lbXB0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIHN0YWNrIGlzIGN1cnJlbnRseSBlbXB0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FycmF5U3RhY2suaHRtbCNwZWVrKCkiPnBlZWs8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHRvcCBpdGVtIG9mZiBvZiB0aGlzIHN0YWNrIHdpdGhvdXQgcmVtb3ZpbmcgaXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwjcGVlayhpbnQpIj5wZWVrPC9BPjwvQj4oaW50Jm5ic3A7bik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbid0aCBpdGVtIGRvd24gKHplcm8tcmVsYXRpdmUpIGZyb20gdGhlIHRvcCBvZiB0aGlzCisgc3RhY2sgd2l0aG91dCByZW1vdmluZyBpdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FycmF5U3RhY2suaHRtbCNwb3AoKSI+cG9wPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UG9wIHRoZSB0b3AgaXRlbSBvZmYgb2YgdGhpcyBzdGFjayBhbmQgcmV0dXJuIGl0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sI3B1c2goamF2YS5sYW5nLk9iamVjdCkiPnB1c2g8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7aXRlbSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1B1c2ggYSBuZXcgaXRlbSBvbnRvIHRoZSB0b3Agb2YgdGhpcyBzdGFjay48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sI3NpemUoKSI+c2l6ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbnVtYmVyIG9mIGl0ZW1zIG9uIHRoaXMgc3RhY2suPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJsaXN0Ij48IS0tIC0tPjwvQT48SDM+CitsaXN0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkFycmF5TGlzdCA8Qj5saXN0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB1bmRlcmx5aW5nIGNvbGxlY3Rpb24gY2xhc3MuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFycmF5U3RhY2soKSI+PCEtLSAtLT48L0E+PEgzPgorQXJyYXlTdGFjazwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFycmF5U3RhY2s8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNsZWFyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NsZWFyPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5jbGVhcjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbW92ZSBhbGwgZWxlbWVudHMgZnJvbSB0aGlzIHN0YWNrLiAgQWZ0ZXIgdGhpcyBjYWxsLCB0aGUgc3RhY2sgd2lsbAorIGJlIGVtcHR5LjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVtcHR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2VtcHR5PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5lbXB0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIHN0YWNrIGlzIGN1cnJlbnRseSBlbXB0eS48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwZWVrKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3BlZWs8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPnBlZWs8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS51dGlsLkVtcHR5U3RhY2tFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHRvcCBpdGVtIG9mZiBvZiB0aGlzIHN0YWNrIHdpdGhvdXQgcmVtb3ZpbmcgaXQuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5FbXB0eVN0YWNrRXhjZXB0aW5vPC9DT0RFPiAtIGlmIHRoZSBzdGFjayBpcyBlbXB0eTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGVlayhpbnQpIj48IS0tIC0tPjwvQT48SDM+CitwZWVrPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5wZWVrPC9CPihpbnQmbmJzcDtuKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLnV0aWwuRW1wdHlTdGFja0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbid0aCBpdGVtIGRvd24gKHplcm8tcmVsYXRpdmUpIGZyb20gdGhlIHRvcCBvZiB0aGlzCisgc3RhY2sgd2l0aG91dCByZW1vdmluZyBpdC48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uPC9DT0RFPiAtIE51bWJlciBvZiBpdGVtcyBkb3duIHRvIGdvPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEudXRpbC5FbXB0eVN0YWNrRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZXJlIGFyZSBub3QgZW5vdWdoIGl0ZW1zIG9uIHRoZQorICBzdGFjayB0byBzYXRpc2Z5IHRoaXMgcmVxdWVzdDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icG9wKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3BvcDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+cG9wPC9CPigpCisgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS51dGlsLkVtcHR5U3RhY2tFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qb3AgdGhlIHRvcCBpdGVtIG9mZiBvZiB0aGlzIHN0YWNrIGFuZCByZXR1cm4gaXQuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLnV0aWwuRW1wdHlTdGFja0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgc3RhY2sgaXMgZW1wdHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InB1c2goamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3B1c2g8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPnB1c2g8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtpdGVtKTwvUFJFPgorPERMPgorPEREPlB1c2ggYSBuZXcgaXRlbSBvbnRvIHRoZSB0b3Agb2YgdGhpcyBzdGFjay4gIFRoZSBwdXNoZWQgaXRlbSBpcyBhbHNvCisgcmV0dXJuZWQuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aXRlbTwvQ09ERT4gLSBJdGVtIHRvIGJlIGFkZGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+c2l6ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbnVtYmVyIG9mIGl0ZW1zIG9uIHRoaXMgc3RhY2suPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQXJyYXlTdGFjay5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxZjRiZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sCkBAIC0wLDAgKzEsNTQ2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzcgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgQmVhblV0aWxzCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXJyYXlTdGFjay5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJCZWFuVXRpbHMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgQmVhblV0aWxzPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5CZWFuVXRpbHM8L0I+Cis8L1BSRT4KKzxIUj4KKzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkF0IHNvbWUgcG9pbnQgYWZ0ZXIgU3RydXRzIDEuMCBmaW5hbCwgd2lsbCBiZSByZXBsYWNlZCBieQorICBhbiBlcXVpdmFsZW50IGNsYXNzIGluIHRoZSBKYWthcnRhIENvbW1vbnMgQmVhbnV0aWxzIHBhY2thZ2UuPC9JPgorPFA+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkJlYW5VdGlsczwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4KKworPFA+CitVdGlsaXR5IG1ldGhvZHMgZm9yIHBvcHVsYXRpbmcgSmF2YUJlYW5zIHByb3BlcnRpZXMgdmlhIHJlZmxlY3Rpb24uCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbiwgUmFscGggU2NoYWVyLCBDaHJpcyBBdWRsZXk8L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sI2RlYnVnIj5kZWJ1ZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgZGVidWdnaW5nIGRldGFpbCBsZXZlbCBmb3IgdGhpcyBjb21wb25lbnQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sI0JlYW5VdGlscygpIj5CZWFuVXRpbHM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwjY2xvbmVCZWFuKGphdmEubGFuZy5PYmplY3QpIj5jbG9uZUJlYW48L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0Nsb25lIGEgYmVhbiBiYXNlZCBvbiB0aGUgYXZhaWxhYmxlIHByb3BlcnR5IGdldHRlcnMgYW5kIHNldHRlcnMsCisgZXZlbiBpZiB0aGUgYmVhbiBjbGFzcyBpdHNlbGYgZG9lcyBub3QgaW1wbGVtZW50IENsb25lYWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS51dGlsLk1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sI2Rlc2NyaWJlKGphdmEubGFuZy5PYmplY3QpIj5kZXNjcmliZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBlbnRpcmUgc2V0IG9mIHByb3BlcnRpZXMgZm9yIHdoaWNoIHRoZSBzcGVjaWZpZWQgYmVhbgorIHByb3ZpZGVzIGEgcmVhZCBtZXRob2QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmdbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sI2dldEFycmF5UHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPmdldEFycmF5UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgYXJyYXkgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZAorIGJlYW4sIGFzIGEgU3RyaW5nIGFycmF5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCNnZXREZWJ1ZygpIj5nZXREZWJ1ZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQmVhblV0aWxzLmh0bWwjZ2V0SW5kZXhlZFByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRJbmRleGVkUHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBpbmRleGVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQKKyBiZWFuLCBhcyBhIFN0cmluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sI2dldEluZGV4ZWRQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj5nZXRJbmRleGVkUHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtpbmRleCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBpbmRleGVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQKKyBiZWFuLCBhcyBhIFN0cmluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sI2dldE5lc3RlZFByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXROZXN0ZWRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSAocG9zc2libHkgbmVzdGVkKSBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkCisgbmFtZSwgZm9yIHRoZSBzcGVjaWZpZWQgYmVhbiwgYXMgYSBTdHJpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCNnZXRQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQgYmVhbiwKKyBubyBtYXR0ZXIgd2hpY2ggcHJvcGVydHkgcmVmZXJlbmNlIGZvcm1hdCBpcyB1c2VkLCBhcyBhIFN0cmluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sI2dldFNpbXBsZVByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRTaW1wbGVQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgc2ltcGxlIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQKKyBiZWFuLCBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCNwb3B1bGF0ZShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLnV0aWwuTWFwKSI+cG9wdWxhdGU8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UG9wdWxhdGUgdGhlIEphdmFCZWFucyBwcm9wZXJ0aWVzIG9mIHRoZSBzcGVjaWZpZWQgYmVhbiwgYmFzZWQgb24KKyB0aGUgc3BlY2lmaWVkIG5hbWUvdmFsdWUgcGFpcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCNzZXREZWJ1ZyhpbnQpIj5zZXREZWJ1ZzwvQT48L0I+KGludCZuYnNwO25ld0RlYnVnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkZWJ1ZyI+PCEtLSAtLT48L0E+PEgzPgorZGVidWc8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGludCA8Qj5kZWJ1ZzwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgZm9yIHRoaXMgY29tcG9uZW50LjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJCZWFuVXRpbHMoKSI+PCEtLSAtLT48L0E+PEgzPgorQmVhblV0aWxzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QmVhblV0aWxzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0RGVidWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RGVidWc8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgaW50IDxCPmdldERlYnVnPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RGVidWcoaW50KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RGVidWc8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5zZXREZWJ1ZzwvQj4oaW50Jm5ic3A7bmV3RGVidWcpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2xvbmVCZWFuKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitjbG9uZUJlYW48L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLk9iamVjdCA8Qj5jbG9uZUJlYW48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLkluc3RhbnRpYXRpb25FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+Q2xvbmUgYSBiZWFuIGJhc2VkIG9uIHRoZSBhdmFpbGFibGUgcHJvcGVydHkgZ2V0dGVycyBhbmQgc2V0dGVycywKKyBldmVuIGlmIHRoZSBiZWFuIGNsYXNzIGl0c2VsZiBkb2VzIG5vdCBpbXBsZW1lbnQgQ2xvbmVhYmxlLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gQmVhbiB0byBiZSBjbG9uZWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlCisgIGFjY2VzcyB0byB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kPEREPjxDT0RFPmphdmEubGFuZy5JbnN0YW50aWF0aW9uRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBiZWFuJ3MKKyAgY2xhc3MgY2Fubm90IGJlIGluc3RhbnRpYXRlZDxERD48Q09ERT5qYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QKKyAgdGhyb3dzIGFuIGV4Y2VwdGlvbjxERD48Q09ERT5qYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGFjY2Vzc29yIG1ldGhvZCBmb3IgdGhpcworICBwcm9wZXR5IGNhbm5vdCBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVzY3JpYmUoamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2Rlc2NyaWJlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEudXRpbC5NYXAgPEI+ZGVzY3JpYmU8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlIGVudGlyZSBzZXQgb2YgcHJvcGVydGllcyBmb3Igd2hpY2ggdGhlIHNwZWNpZmllZCBiZWFuCisgcHJvdmlkZXMgYSByZWFkIG1ldGhvZC4gIFRoaXMgbWFwIGNhbiBiZSBmZWQgYmFjayB0byBhIGNhbGwgdG8KKyA8Y29kZT5CZWFuVXRpbHMucG9wdWxhdGUoKTwvY29kZT4gdG8gcmVjb25zaXR1dGUgdGhlIHNhbWUgc2V0IG9mCisgcHJvcGVydGllcywgbW9kdWxvIGRpZmZlcmVuY2VzIGZvciByZWFkLW9ubHkgYW5kIHdyaXRlLW9ubHkKKyBwcm9wZXJ0aWVzLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gQmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSB0byBiZSBleHRyYWN0ZWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlCisgIGFjY2VzcyB0byB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kPEREPjxDT0RFPmphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZAorICB0aHJvd3MgYW4gZXhjZXB0aW9uPEREPjxDT0RFPmphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gYWNjZXNzb3IgbWV0aG9kIGZvciB0aGlzCisgIHByb3BldHkgY2Fubm90IGJlIGZvdW5kPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBcnJheVByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBcnJheVByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmdbXSA8Qj5nZXRBcnJheVByb3BlcnR5PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBhcnJheSBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkCisgYmVhbiwgYXMgYSBTdHJpbmcgYXJyYXkuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBCZWFuIHdob3NlIHByb3BlcnR5IGlzIHRvIGJlIGV4dHJhY3RlZDxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIGV4dHJhY3RlZDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgY2FsbGVyIGRvZXMgbm90IGhhdmUKKyAgYWNjZXNzIHRvIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2Q8REQ+PENPREU+amF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kCisgIHRocm93cyBhbiBleGNlcHRpb248REQ+PENPREU+amF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBhY2Nlc3NvciBtZXRob2QgZm9yIHRoaXMKKyAgcHJvcGV0eSBjYW5ub3QgYmUgZm91bmQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEluZGV4ZWRQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SW5kZXhlZFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SW5kZXhlZFByb3BlcnR5PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBpbmRleGVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQKKyBiZWFuLCBhcyBhIFN0cmluZy4gIFRoZSB6ZXJvLXJlbGF0aXZlIGluZGV4IG9mIHRoZQorIHJlcXVpcmVkIHZhbHVlIG11c3QgYmUgaW5jbHVkZWQgKGluIHNxdWFyZSBicmFja2V0cykgYXMgYSBzdWZmaXggdG8KKyB0aGUgcHJvcGVydHkgbmFtZSwgb3IgPGNvZGU+SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9jb2RlPiB3aWxsIGJlCisgdGhyb3duLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gQmVhbiB3aG9zZSBwcm9wZXJ0eSBpcyB0byBiZSBleHRyYWN0ZWQ8REQ+PENPREU+bmFtZTwvQ09ERT4gLSA8Y29kZT5wcm9wZXJ0eW5hbWVbaW5kZXhdPC9jb2RlPiBvZiB0aGUgcHJvcGVydHkgdmFsdWUKKyAgdG8gYmUgZXh0cmFjdGVkPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZQorICBhY2Nlc3MgdG8gdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZDxERD48Q09ERT5qYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QKKyAgdGhyb3dzIGFuIGV4Y2VwdGlvbjxERD48Q09ERT5qYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGFjY2Vzc29yIG1ldGhvZCBmb3IgdGhpcworICBwcm9wZXR5IGNhbm5vdCBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SW5kZXhlZFByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEluZGV4ZWRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEluZGV4ZWRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtpbmRleCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGluZGV4ZWQgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZAorIGJlYW4sIGFzIGEgU3RyaW5nLiAgVGhlIGluZGV4IGlzIHNwZWNpZmllZCBhcyBhIG1ldGhvZCBwYXJhbWV0ZXIgYW5kCisgbXVzdCAqbm90KiBiZSBpbmNsdWRlZCBpbiB0aGUgcHJvcGVydHkgbmFtZSBleHByZXNzaW9uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBCZWFuIHdob3NlIHByb3BlcnR5IGlzIHRvIGJlIGV4dHJhY3RlZDxERD48Q09ERT5uYW1lPC9DT0RFPiAtIFNpbXBsZSBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB2YWx1ZSB0byBiZSBleHRyYWN0ZWQ8REQ+PENPREU+aW5kZXg8L0NPREU+IC0gSW5kZXggb2YgdGhlIHByb3BlcnR5IHZhbHVlIHRvIGJlIGV4dHJhY3RlZDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgY2FsbGVyIGRvZXMgbm90IGhhdmUKKyAgYWNjZXNzIHRvIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2Q8REQ+PENPREU+amF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kCisgIHRocm93cyBhbiBleGNlcHRpb248REQ+PENPREU+amF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBhY2Nlc3NvciBtZXRob2QgZm9yIHRoaXMKKyAgcHJvcGV0eSBjYW5ub3QgYmUgZm91bmQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5lc3RlZFByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXROZXN0ZWRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5lc3RlZFByb3BlcnR5PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgKHBvc3NpYmx5IG5lc3RlZCkgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZAorIG5hbWUsIGZvciB0aGUgc3BlY2lmaWVkIGJlYW4sIGFzIGEgU3RyaW5nLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gQmVhbiB3aG9zZSBwcm9wZXJ0eSBpcyB0byBiZSBleHRyYWN0ZWQ8REQ+PENPREU+bmFtZTwvQ09ERT4gLSBQb3NzaWJseSBuZXN0ZWQgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYmUgZXh0cmFjdGVkPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZQorICBhY2Nlc3MgdG8gdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZDxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgbmVzdGVkIHJlZmVyZW5jZSB0byBhCisgIHByb3BlcnR5IHJldHVybnMgbnVsbDxERD48Q09ERT5qYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QKKyAgdGhyb3dzIGFuIGV4Y2VwdGlvbjxERD48Q09ERT5qYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGFjY2Vzc29yIG1ldGhvZCBmb3IgdGhpcworICBwcm9wZXR5IGNhbm5vdCBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZCBiZWFuLAorIG5vIG1hdHRlciB3aGljaCBwcm9wZXJ0eSByZWZlcmVuY2UgZm9ybWF0IGlzIHVzZWQsIGFzIGEgU3RyaW5nLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gQmVhbiB3aG9zZSBwcm9wZXJ0eSBpcyB0byBiZSBleHRyYWN0ZWQ8REQ+PENPREU+bmFtZTwvQ09ERT4gLSBQb3NzaWJseSBpbmRleGVkIGFuZC9vciBuZXN0ZWQgbmFtZSBvZiB0aGUgcHJvcGVydHkKKyAgdG8gYmUgZXh0cmFjdGVkPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZQorICBhY2Nlc3MgdG8gdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZDxERD48Q09ERT5qYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QKKyAgdGhyb3dzIGFuIGV4Y2VwdGlvbjxERD48Q09ERT5qYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGFjY2Vzc29yIG1ldGhvZCBmb3IgdGhpcworICBwcm9wZXR5IGNhbm5vdCBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2ltcGxlUHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNpbXBsZVByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U2ltcGxlUHJvcGVydHk8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgc2ltcGxlIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQKKyBiZWFuLCBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBCZWFuIHdob3NlIHByb3BlcnR5IGlzIHRvIGJlIGV4dHJhY3RlZDxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIGV4dHJhY3RlZDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgY2FsbGVyIGRvZXMgbm90IGhhdmUKKyAgYWNjZXNzIHRvIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2Q8REQ+PENPREU+amF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kCisgIHRocm93cyBhbiBleGNlcHRpb248REQ+PENPREU+amF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBhY2Nlc3NvciBtZXRob2QgZm9yIHRoaXMKKyAgcHJvcGV0eSBjYW5ub3QgYmUgZm91bmQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBvcHVsYXRlKGphdmEubGFuZy5PYmplY3QsIGphdmEudXRpbC5NYXApIj48IS0tIC0tPjwvQT48SDM+Citwb3B1bGF0ZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyB2b2lkIDxCPnBvcHVsYXRlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcykKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlBvcHVsYXRlIHRoZSBKYXZhQmVhbnMgcHJvcGVydGllcyBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sIGJhc2VkIG9uCisgdGhlIHNwZWNpZmllZCBuYW1lL3ZhbHVlIHBhaXJzLiAgVGhpcyBtZXRob2QgdXNlcyBKYXZhIHJlZmxlY3Rpb24gQVBJcworIHRvIGlkZW50aWZ5IGNvcnJlc3BvbmRpbmcgInByb3BlcnR5IHNldHRlciIgbWV0aG9kIG5hbWVzLCBhbmQgZGVhbHMKKyB3aXRoIHNldHRlciBhcmd1bWVudHMgb2YgdHlwZSA8Y29kZT5TdHJpbmc8L2NvZGU+LCA8Y29kZT5ib29sZWFuPC9jb2RlPiwKKyA8Y29kZT5pbnQ8L2NvZGU+LCA8Y29kZT5sb25nPC9jb2RlPiwgPGNvZGU+ZmxvYXQ8L2NvZGU+LCBhbmQKKyA8Y29kZT5kb3VibGU8L2NvZGU+LiAgSW4gYWRkaXRpb24sIGFycmF5IHNldHRlcnMgZm9yIHRoZXNlIHR5cGVzIChvciB0aGUKKyBjb3JyZXNwb25kaW5nIHByaW1pdGl2ZSB0eXBlcykgY2FuIGFsc28gYmUgaWRlbnRpZmllZC4KKyA8cD4KKyBUaGUgcGFydGljdWxhciBzZXR0ZXIgbWV0aG9kIHRvIGJlIGNhbGxlZCBmb3IgZWFjaCBwcm9wZXJ0eSBpcworIGRldGVybWluZWQgdXNpbmcgdGhlIHVzdWFsIEphdmFCZWFucyBpbnRyb3NwZWN0aW9uIG1lY2hhbmlzbXMuICBUaHVzLAorIHlvdSBtYXkgaWRlbnRpZnkgY3VzdG9tIHNldHRlciBtZXRob2RzIHVzaW5nIGEgQmVhbkluZm8gY2xhc3MgdGhhdCBpcworIGFzc29jaWF0ZWQgd2l0aCB0aGUgY2xhc3Mgb2YgdGhlIGJlYW4gaXRzZWxmLiAgSWYgbm8gc3VjaCBCZWFuSW5mbworIGNsYXNzIGlzIGF2YWlsYWJsZSwgdGhlIHN0YW5kYXJkIG1ldGhvZCBuYW1lIGNvbnZlcnNpb24gKCJzZXQiIHBsdXMKKyB0aGUgY2FwaXRhbGl6ZWQgbmFtZSBvZiB0aGUgcHJvcGVydHkgaW4gcXVlc3Rpb24pIGlzIHVzZWQuCisgPHA+CisgPHN0cm9uZz5OT1RFPC9zdHJvbmc+OiAgSXQgaXMgY29udHJhcnkgdG8gdGhlIEphdmFCZWFucyBTcGVjaWZpY2F0aW9uCisgdG8gaGF2ZSBtb3JlIHRoYW4gb25lIHNldHRlciBtZXRob2QgKHdpdGggZGlmZmVyZW50IGFyZ3VtZW50Cisgc2lnbmF0dXJlcykgZm9yIHRoZSBzYW1lIHByb3BlcnR5LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gSmF2YUJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgYmVpbmcgcG9wdWxhdGVkPEREPjxDT0RFPnByb3BlcnRpZXM8L0NPREU+IC0gTWFwIGtleWVkIGJ5IHByb3BlcnR5IG5hbWUsIHdpdGggdGhlCisgIGNvcnJlc3BvbmRpbmcgKFN0cmluZyBvciBTdHJpbmdbXSkgdmFsdWUocykgdG8gYmUgc2V0PERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZQorICBhY2Nlc3MgdG8gdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZDxERD48Q09ERT5qYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QKKyAgdGhyb3dzIGFuIGV4Y2VwdGlvbjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FycmF5U3RhY2suaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQmVhblV0aWxzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNjY2I3ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwKQEAgLTAsMCArMSw4NjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNyBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBDb252ZXJ0VXRpbHMKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbnZlcnRVdGlscy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzICBDb252ZXJ0VXRpbHM8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkNvbnZlcnRVdGlsczwvQj4KKzwvUFJFPgorPEhSPgorPEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXQgc29tZSBwb2ludCBhZnRlciBTdHJ1dHMgMS4wIGZpbmFsLCB3aWxsIGJlIHJlcGxhY2VkIGJ5CisgIGFuIGVxdWl2YWxlbnQgY2xhc3MgaW4gdGhlIEpha2FydGEgQ29tbW9ucyBCZWFudXRpbHMgcGFja2FnZS48L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+Q29udmVydFV0aWxzPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8L0RMPgorCis8UD4KK1V0aWxpdHkgbWV0aG9kcyBmb3IgY29udmVydGluZyBTdHJpbmcgdmFsdWVzIHRvIG9iamVjdHMgb2YgdGhlIHNwZWNpZmllZAorIGNsYXNzLiAgSWYgeW91IHNwZWNpZnkgYSBKYXZhIHByaW1pdGl2ZSB0eXBlLCBvciBhbiBhcnJheSBvZiBhIEphdmEKKyBwcmltaXRpdmUgdHlwZSwgYXMgYSBkZXN0aW5hdGlvbiB0eXBlLCBhIHNjYWxhciBvciBhcnJheSBvZiB0aGUgY29yZXNwb25kaW5nCisgSmF2YSB3cmFwcGVyIGNsYXNzIHdpbGwgYmUgY3JlYXRlZCBpbnN0ZWFkLiAgSWYgeW91IGF0dGVtcHQgdG8gY29udmVydCBhbgorIE9iamVjdCBvciBPYmplY3QgYXJyYXkgb2YgYSBub24tU3RyaW5nIGFuZCBub24tcHJpbWl0aXZlIHR5cGUsIGl0IHdpbGwgYmUKKyBjb252ZXJ0ZWQgdG8gYSBzY2FsYXIgU3RyaW5nIG9yIGFycmF5IG9mIFN0cmluZ3MsIGFzIGFwcHJvcHJpYXRlLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW4sIFJhbHBoIFNjaGFlciwgQ2hyaXMgQXVkbGV5PC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuQm9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2RlZmF1bHRCb29sZWFuIj5kZWZhdWx0Qm9vbGVhbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgQm9vbGVhbiBjb252ZXJzaW9ucy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuQnl0ZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2RlZmF1bHRCeXRlIj5kZWZhdWx0Qnl0ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgQnl0ZSBjb252ZXJzaW9ucy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuQ2hhcmFjdGVyPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjZGVmYXVsdENoYXJhY3RlciI+ZGVmYXVsdENoYXJhY3RlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgQ2hhcmFjdGVyIGNvbnZlcnNpb25zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5Eb3VibGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNkZWZhdWx0RG91YmxlIj5kZWZhdWx0RG91YmxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBkZWZhdWx0IHZhbHVlIGZvciBEb3VibGUgY29udmVyc2lvbnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLkZsb2F0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjZGVmYXVsdEZsb2F0Ij5kZWZhdWx0RmxvYXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIGRlZmF1bHQgdmFsdWUgZm9yIEZsb2F0IGNvbnZlcnNpb25zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5JbnRlZ2VyPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjZGVmYXVsdEludGVnZXIiPmRlZmF1bHRJbnRlZ2VyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBkZWZhdWx0IHZhbHVlIGZvciBJbnRlZ2VyIGNvbnZlcnNpb25zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5Mb25nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjZGVmYXVsdExvbmciPmRlZmF1bHRMb25nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBkZWZhdWx0IHZhbHVlIGZvciBMb25nIGNvbnZlcnNpb25zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5TaG9ydDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2RlZmF1bHRTaG9ydCI+ZGVmYXVsdFNob3J0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBkZWZhdWx0IHZhbHVlIGZvciBTaG9ydCBjb252ZXJzaW9ucy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuQ2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNzdHJpbmdDbGFzcyI+c3RyaW5nQ2xhc3M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIENsYXNzIG9iamVjdCBmb3IgamF2YS5sYW5nLlN0cmluZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjQ29udmVydFV0aWxzKCkiPkNvbnZlcnRVdGlsczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNjb252ZXJ0KGphdmEubGFuZy5PYmplY3QpIj5jb252ZXJ0PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29udmVydCB0aGUgc3BlY2lmaWVkIHZhbHVlIGludG8gYSBTdHJpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNjb252ZXJ0KGphdmEubGFuZy5TdHJpbmdbXSwgamF2YS5sYW5nLkNsYXNzKSI+Y29udmVydDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmdbXSZuYnNwO3ZhbHVlcywKKyAgICAgICAgamF2YS5sYW5nLkNsYXNzJm5ic3A7Y2xhenopPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb252ZXJ0IGFuIGFycmF5IG9mIHNwZWNpZmllZCB2YWx1ZXMgdG8gYW4gYXJyYXkgb2Ygb2JqZWN0cyBvZiB0aGUKKyBzcGVjaWZpZWQgY2xhc3MgKGlmIHBvc3NpYmxlKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2NvbnZlcnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLkNsYXNzKSI+Y29udmVydDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSwKKyAgICAgICAgamF2YS5sYW5nLkNsYXNzJm5ic3A7Y2xhenopPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb252ZXJ0IHRoZSBzcGVjaWZpZWQgdmFsdWUgdG8gYW4gb2JqZWN0IG9mIHRoZSBzcGVjaWZpZWQgY2xhc3MgKGlmCisgcG9zc2libGUpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5Cb29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjY29udmVydEJvb2xlYW4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLkJvb2xlYW4pIj5jb252ZXJ0Qm9vbGVhbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSwKKyAgICAgICAgICAgICAgIGphdmEubGFuZy5Cb29sZWFuJm5ic3A7ZGVmYXVsdFZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29udmVydCBhIFN0cmluZyB2YWx1ZSB0byBhIGNvcnJlc3BvbmRpbmcgQm9vbGVhbiB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuQnl0ZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2NvbnZlcnRCeXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5CeXRlKSI+Y29udmVydEJ5dGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUsCisgICAgICAgICAgICBqYXZhLmxhbmcuQnl0ZSZuYnNwO2RlZmF1bHRWYWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnZlcnQgYSBTdHJpbmcgdmFsdWUgdG8gYSBjb3JyZXNwb25kaW5nIEJ5dGUgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLkNoYXJhY3RlcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2NvbnZlcnRDaGFyYWN0ZXIoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLkNoYXJhY3RlcikiPmNvbnZlcnRDaGFyYWN0ZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUsCisgICAgICAgICAgICAgICAgIGphdmEubGFuZy5DaGFyYWN0ZXImbmJzcDtkZWZhdWx0VmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb252ZXJ0IGEgU3RyaW5nIHZhbHVlIHRvIGEgY29ycmVzcG9uZGluZyBDaGFyYWN0ZXIgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLkRvdWJsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2NvbnZlcnREb3VibGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLkRvdWJsZSkiPmNvbnZlcnREb3VibGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUsCisgICAgICAgICAgICAgIGphdmEubGFuZy5Eb3VibGUmbmJzcDtkZWZhdWx0VmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb252ZXJ0IGEgU3RyaW5nIHZhbHVlIHRvIGEgY29ycmVzcG9uZGluZyBEb3VibGUgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLkZsb2F0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjY29udmVydEZsb2F0KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5GbG9hdCkiPmNvbnZlcnRGbG9hdDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSwKKyAgICAgICAgICAgICBqYXZhLmxhbmcuRmxvYXQmbmJzcDtkZWZhdWx0VmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb252ZXJ0IGEgU3RyaW5nIHZhbHVlIHRvIGEgY29ycmVzcG9uZGluZyBGbG9hdCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuSW50ZWdlcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2NvbnZlcnRJbnRlZ2VyKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5JbnRlZ2VyKSI+Y29udmVydEludGVnZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUsCisgICAgICAgICAgICAgICBqYXZhLmxhbmcuSW50ZWdlciZuYnNwO2RlZmF1bHRWYWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnZlcnQgYSBTdHJpbmcgdmFsdWUgdG8gYSBjb3JyZXNwb25kaW5nIEludGVnZXIgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLkxvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNjb252ZXJ0TG9uZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuTG9uZykiPmNvbnZlcnRMb25nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlLAorICAgICAgICAgICAgamF2YS5sYW5nLkxvbmcmbmJzcDtkZWZhdWx0VmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb252ZXJ0IGEgU3RyaW5nIHZhbHVlIHRvIGEgY29ycmVzcG9uZGluZyBMb25nIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5TaG9ydDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2NvbnZlcnRTaG9ydChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU2hvcnQpIj5jb252ZXJ0U2hvcnQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUsCisgICAgICAgICAgICAgamF2YS5sYW5nLlNob3J0Jm5ic3A7ZGVmYXVsdFZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29udmVydCBhIFN0cmluZyB2YWx1ZSB0byBhIGNvcnJlc3BvbmRpbmcgU2hvcnQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNnZXREZWZhdWx0Qm9vbGVhbigpIj5nZXREZWZhdWx0Qm9vbGVhbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtieXRlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjZ2V0RGVmYXVsdEJ5dGUoKSI+Z2V0RGVmYXVsdEJ5dGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2hhcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2dldERlZmF1bHRDaGFyYWN0ZXIoKSI+Z2V0RGVmYXVsdENoYXJhY3RlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtkb3VibGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNnZXREZWZhdWx0RG91YmxlKCkiPmdldERlZmF1bHREb3VibGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7ZmxvYXQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNnZXREZWZhdWx0RmxvYXQoKSI+Z2V0RGVmYXVsdEZsb2F0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2dldERlZmF1bHRJbnRlZ2VyKCkiPmdldERlZmF1bHRJbnRlZ2VyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2xvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNnZXREZWZhdWx0TG9uZygpIj5nZXREZWZhdWx0TG9uZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtzaG9ydDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI2dldERlZmF1bHRTaG9ydCgpIj5nZXREZWZhdWx0U2hvcnQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI3NldERlZmF1bHRCb29sZWFuKGJvb2xlYW4pIj5zZXREZWZhdWx0Qm9vbGVhbjwvQT48L0I+KGJvb2xlYW4mbmJzcDtkZWZhdWx0Qm9vbGVhbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwjc2V0RGVmYXVsdEJ5dGUoYnl0ZSkiPnNldERlZmF1bHRCeXRlPC9BPjwvQj4oYnl0ZSZuYnNwO2RlZmF1bHRCeXRlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNzZXREZWZhdWx0Q2hhcmFjdGVyKGNoYXIpIj5zZXREZWZhdWx0Q2hhcmFjdGVyPC9BPjwvQj4oY2hhciZuYnNwO2RlZmF1bHRDaGFyYWN0ZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI3NldERlZmF1bHREb3VibGUoZG91YmxlKSI+c2V0RGVmYXVsdERvdWJsZTwvQT48L0I+KGRvdWJsZSZuYnNwO2RlZmF1bHREb3VibGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI3NldERlZmF1bHRGbG9hdChmbG9hdCkiPnNldERlZmF1bHRGbG9hdDwvQT48L0I+KGZsb2F0Jm5ic3A7ZGVmYXVsdEZsb2F0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNzZXREZWZhdWx0SW50ZWdlcihpbnQpIj5zZXREZWZhdWx0SW50ZWdlcjwvQT48L0I+KGludCZuYnNwO2RlZmF1bHRJbnRlZ2VyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Db252ZXJ0VXRpbHMuaHRtbCNzZXREZWZhdWx0TG9uZyhsb25nKSI+c2V0RGVmYXVsdExvbmc8L0E+PC9CPihsb25nJm5ic3A7ZGVmYXVsdExvbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0NvbnZlcnRVdGlscy5odG1sI3NldERlZmF1bHRTaG9ydChzaG9ydCkiPnNldERlZmF1bHRTaG9ydDwvQT48L0I+KHNob3J0Jm5ic3A7ZGVmYXVsdFNob3J0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkZWZhdWx0Qm9vbGVhbiI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdEJvb2xlYW48L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGphdmEubGFuZy5Cb29sZWFuIDxCPmRlZmF1bHRCb29sZWFuPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgZGVmYXVsdCB2YWx1ZSBmb3IgQm9vbGVhbiBjb252ZXJzaW9ucy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZWZhdWx0Qnl0ZSI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdEJ5dGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGphdmEubGFuZy5CeXRlIDxCPmRlZmF1bHRCeXRlPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgZGVmYXVsdCB2YWx1ZSBmb3IgQnl0ZSBjb252ZXJzaW9ucy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZWZhdWx0Q2hhcmFjdGVyIj48IS0tIC0tPjwvQT48SDM+CitkZWZhdWx0Q2hhcmFjdGVyPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcuQ2hhcmFjdGVyIDxCPmRlZmF1bHRDaGFyYWN0ZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBkZWZhdWx0IHZhbHVlIGZvciBDaGFyYWN0ZXIgY29udmVyc2lvbnMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmYXVsdERvdWJsZSI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdERvdWJsZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgamF2YS5sYW5nLkRvdWJsZSA8Qj5kZWZhdWx0RG91YmxlPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgZGVmYXVsdCB2YWx1ZSBmb3IgRG91YmxlIGNvbnZlcnNpb25zLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRlZmF1bHRGbG9hdCI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdEZsb2F0PC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcuRmxvYXQgPEI+ZGVmYXVsdEZsb2F0PC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgZGVmYXVsdCB2YWx1ZSBmb3IgRmxvYXQgY29udmVyc2lvbnMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmYXVsdEludGVnZXIiPjwhLS0gLS0+PC9BPjxIMz4KK2RlZmF1bHRJbnRlZ2VyPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcuSW50ZWdlciA8Qj5kZWZhdWx0SW50ZWdlcjwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIGRlZmF1bHQgdmFsdWUgZm9yIEludGVnZXIgY29udmVyc2lvbnMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmYXVsdExvbmciPjwhLS0gLS0+PC9BPjxIMz4KK2RlZmF1bHRMb25nPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcuTG9uZyA8Qj5kZWZhdWx0TG9uZzwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIGRlZmF1bHQgdmFsdWUgZm9yIExvbmcgY29udmVyc2lvbnMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmYXVsdFNob3J0Ij48IS0tIC0tPjwvQT48SDM+CitkZWZhdWx0U2hvcnQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGphdmEubGFuZy5TaG9ydCA8Qj5kZWZhdWx0U2hvcnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBkZWZhdWx0IHZhbHVlIGZvciBTaG9ydCBjb252ZXJzaW9ucy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJzdHJpbmdDbGFzcyI+PCEtLSAtLT48L0E+PEgzPgorc3RyaW5nQ2xhc3M8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGphdmEubGFuZy5DbGFzcyA8Qj5zdHJpbmdDbGFzczwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIENsYXNzIG9iamVjdCBmb3IgamF2YS5sYW5nLlN0cmluZy48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29udmVydFV0aWxzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0NvbnZlcnRVdGlsczwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbnZlcnRVdGlsczwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldERlZmF1bHRCb29sZWFuKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERlZmF1bHRCb29sZWFuPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXREZWZhdWx0Qm9vbGVhbjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldERlZmF1bHRCb29sZWFuKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXREZWZhdWx0Qm9vbGVhbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RGVmYXVsdEJvb2xlYW48L0I+KGJvb2xlYW4mbmJzcDtkZWZhdWx0Qm9vbGVhbik8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXREZWZhdWx0Qnl0ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZhdWx0Qnl0ZTwvSDM+Cis8UFJFPgorcHVibGljIGJ5dGUgPEI+Z2V0RGVmYXVsdEJ5dGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXREZWZhdWx0Qnl0ZShieXRlKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RGVmYXVsdEJ5dGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldERlZmF1bHRCeXRlPC9CPihieXRlJm5ic3A7ZGVmYXVsdEJ5dGUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVmYXVsdENoYXJhY3RlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZhdWx0Q2hhcmFjdGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgY2hhciA8Qj5nZXREZWZhdWx0Q2hhcmFjdGVyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RGVmYXVsdENoYXJhY3RlcihjaGFyKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RGVmYXVsdENoYXJhY3RlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RGVmYXVsdENoYXJhY3RlcjwvQj4oY2hhciZuYnNwO2RlZmF1bHRDaGFyYWN0ZXIpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVmYXVsdERvdWJsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZhdWx0RG91YmxlPC9IMz4KKzxQUkU+CitwdWJsaWMgZG91YmxlIDxCPmdldERlZmF1bHREb3VibGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXREZWZhdWx0RG91YmxlKGRvdWJsZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldERlZmF1bHREb3VibGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldERlZmF1bHREb3VibGU8L0I+KGRvdWJsZSZuYnNwO2RlZmF1bHREb3VibGUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVmYXVsdEZsb2F0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERlZmF1bHRGbG9hdDwvSDM+Cis8UFJFPgorcHVibGljIGZsb2F0IDxCPmdldERlZmF1bHRGbG9hdDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldERlZmF1bHRGbG9hdChmbG9hdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldERlZmF1bHRGbG9hdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RGVmYXVsdEZsb2F0PC9CPihmbG9hdCZuYnNwO2RlZmF1bHRGbG9hdCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXREZWZhdWx0SW50ZWdlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZhdWx0SW50ZWdlcjwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5nZXREZWZhdWx0SW50ZWdlcjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldERlZmF1bHRJbnRlZ2VyKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldERlZmF1bHRJbnRlZ2VyPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXREZWZhdWx0SW50ZWdlcjwvQj4oaW50Jm5ic3A7ZGVmYXVsdEludGVnZXIpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVmYXVsdExvbmcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RGVmYXVsdExvbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBsb25nIDxCPmdldERlZmF1bHRMb25nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RGVmYXVsdExvbmcobG9uZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldERlZmF1bHRMb25nPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXREZWZhdWx0TG9uZzwvQj4obG9uZyZuYnNwO2RlZmF1bHRMb25nKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldERlZmF1bHRTaG9ydCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZhdWx0U2hvcnQ8L0gzPgorPFBSRT4KK3B1YmxpYyBzaG9ydCA8Qj5nZXREZWZhdWx0U2hvcnQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXREZWZhdWx0U2hvcnQoc2hvcnQpIj48IS0tIC0tPjwvQT48SDM+CitzZXREZWZhdWx0U2hvcnQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldERlZmF1bHRTaG9ydDwvQj4oc2hvcnQmbmJzcDtkZWZhdWx0U2hvcnQpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udmVydChqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorY29udmVydDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbnZlcnQ8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+Q29udmVydCB0aGUgc3BlY2lmaWVkIHZhbHVlIGludG8gYSBTdHJpbmcuICBJZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgYW4gYXJyYXksIHRoZSBmaXJzdCBlbGVtZW50IChjb252ZXJ0ZWQgdG8gYSBTdHJpbmcpIHdpbGwgYmUKKyByZXR1cm5lZC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBWYWx1ZSB0byBiZSBjb252ZXJ0ZWQgKG1heSBiZSBudWxsKTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udmVydChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuQ2xhc3MpIj48IS0tIC0tPjwvQT48SDM+Citjb252ZXJ0PC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5PYmplY3QgPEI+Y29udmVydDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLkNsYXNzJm5ic3A7Y2xhenopPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNvbnZlcnQgdGhlIHNwZWNpZmllZCB2YWx1ZSB0byBhbiBvYmplY3Qgb2YgdGhlIHNwZWNpZmllZCBjbGFzcyAoaWYKKyBwb3NzaWJsZSkuICBPdGhlcndpc2UsIHJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFsdWUuCisgSWYgeW91IHNwZWNpZnkgPGNvZGU+dHlwZTwvY29kZT4gYXMgdGhlIG5hbWUgb2YgYSBKYXZhIHByaW1pdGl2ZQorIHR5cGUsIGFuIGluc3RhbmNlIG9mIHRoZSBjb3JyZXNwb25kaW5nIHdyYXBwZXIgY2xhc3MgKGluaXRpYWxpemVkCisgdG8gdGhlIGNvcnJlY3QgdmFsdWUpIGlzIHJldHVybmVkIGluc3RlYWQuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gVmFsdWUgdG8gYmUgY29udmVydGVkIChtYXkgYmUgbnVsbCk8REQ+PENPREU+Y2xheno8L0NPREU+IC0gSmF2YSBjbGFzcyB0byBiZSBjb252ZXJ0ZWQgdG8gKG11c3QgYmUgamF2YS5sYW5nLlN0cmluZworICBvciBvbmUgb2YgdGhlIHByaW1pdGl2ZSB0eXBlIHdyYXBwZXJzKTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udmVydChqYXZhLmxhbmcuU3RyaW5nW10sIGphdmEubGFuZy5DbGFzcykiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnZlcnQ8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLk9iamVjdCA8Qj5jb252ZXJ0PC9CPihqYXZhLmxhbmcuU3RyaW5nW10mbmJzcDt2YWx1ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuQ2xhc3MmbmJzcDtjbGF6eik8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+Q29udmVydCBhbiBhcnJheSBvZiBzcGVjaWZpZWQgdmFsdWVzIHRvIGFuIGFycmF5IG9mIG9iamVjdHMgb2YgdGhlCisgc3BlY2lmaWVkIGNsYXNzIChpZiBwb3NzaWJsZSkuICBJZiB5b3Ugc3BlY2lmeSA8Y29kZT50eXBlPC9jb2RlPgorIGFzIG9uZSBvZiB0aGUgSmF2YSBwcmltaXRpdmUgdHlwZXMsIGFuIGFycmF5IG9mIHRoYXQgdHlwZSB3aWxsIGJlCisgcmV0dXJuZWQ7IG90aGVyd2lzZSBhbiBhcnJheSBvZiB0aGUgcmVxdWVzdGVkIHR5cGUgKG11c3QgYmUgU3RyaW5nCisgb3IgYSBKYXZhIHdyYXBwZXIgY2xhc3MgZm9yIHRoZSBwcmltaXRpdmUgdHlwZXMpIHdpbGwgYmUgcmV0dXJuZWQuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gVmFsdWUgdG8gYmUgY29udmVydGVkIChtYXkgYmUgbnVsbCk8REQ+PENPREU+Y2xheno8L0NPREU+IC0gSmF2YSBhcnJheSBjbGFzcyB0byBiZSBjb252ZXJ0ZWQgdG8gKG11c3QgYmUgU3RyaW5nW10sCisgIG9yIGFuIGFycmF5IG9mIG9uZSBvZiB0aGUgSmF2YSBwcmltaXRpdmUgdHlwZXMpPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb252ZXJ0Qm9vbGVhbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuQm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnZlcnRCb29sZWFuPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcuQm9vbGVhbiA8Qj5jb252ZXJ0Qm9vbGVhbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLkJvb2xlYW4mbmJzcDtkZWZhdWx0VmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNvbnZlcnQgYSBTdHJpbmcgdmFsdWUgdG8gYSBjb3JyZXNwb25kaW5nIEJvb2xlYW4gdmFsdWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gVGhlIHN0cmluZyB2YWx1ZSB0byBjb252ZXJ0PEREPjxDT0RFPmRlZmF1bHRWYWx1ZTwvQ09ERT4gLSBEZWZhdWx0IHZhbHVlIHRvIHJldHVybiBvbiBhIGNvbnZlcnNpb24gZXJyb3I8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbnZlcnRCeXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5CeXRlKSI+PCEtLSAtLT48L0E+PEgzPgorY29udmVydEJ5dGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGphdmEubGFuZy5CeXRlIDxCPmNvbnZlcnRCeXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuQnl0ZSZuYnNwO2RlZmF1bHRWYWx1ZSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+Q29udmVydCBhIFN0cmluZyB2YWx1ZSB0byBhIGNvcnJlc3BvbmRpbmcgQnl0ZSB2YWx1ZS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBUaGUgc3RyaW5nIHZhbHVlIHRvIGNvbnZlcnQ8REQ+PENPREU+ZGVmYXVsdFZhbHVlPC9DT0RFPiAtIERlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIG9uIGEgY29udmVyc2lvbiBlcnJvcjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udmVydENoYXJhY3RlcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuQ2hhcmFjdGVyKSI+PCEtLSAtLT48L0E+PEgzPgorY29udmVydENoYXJhY3RlcjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgamF2YS5sYW5nLkNoYXJhY3RlciA8Qj5jb252ZXJ0Q2hhcmFjdGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLkNoYXJhY3RlciZuYnNwO2RlZmF1bHRWYWx1ZSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+Q29udmVydCBhIFN0cmluZyB2YWx1ZSB0byBhIGNvcnJlc3BvbmRpbmcgQ2hhcmFjdGVyIHZhbHVlLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFRoZSBzdHJpbmcgdmFsdWUgdG8gY29udmVydDxERD48Q09ERT5kZWZhdWx0VmFsdWU8L0NPREU+IC0gRGVmYXVsdCB2YWx1ZSB0byByZXR1cm4gb24gYSBjb252ZXJzaW9uIGVycm9yPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb252ZXJ0RG91YmxlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5Eb3VibGUpIj48IS0tIC0tPjwvQT48SDM+Citjb252ZXJ0RG91YmxlPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcuRG91YmxlIDxCPmNvbnZlcnREb3VibGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuRG91YmxlJm5ic3A7ZGVmYXVsdFZhbHVlKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db252ZXJ0IGEgU3RyaW5nIHZhbHVlIHRvIGEgY29ycmVzcG9uZGluZyBEb3VibGUgdmFsdWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gVGhlIHN0cmluZyB2YWx1ZSB0byBjb252ZXJ0PEREPjxDT0RFPmRlZmF1bHRWYWx1ZTwvQ09ERT4gLSBEZWZhdWx0IHZhbHVlIHRvIHJldHVybiBvbiBhIGNvbnZlcnNpb24gZXJyb3I8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbnZlcnRGbG9hdChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuRmxvYXQpIj48IS0tIC0tPjwvQT48SDM+Citjb252ZXJ0RmxvYXQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGphdmEubGFuZy5GbG9hdCA8Qj5jb252ZXJ0RmxvYXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLkZsb2F0Jm5ic3A7ZGVmYXVsdFZhbHVlKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db252ZXJ0IGEgU3RyaW5nIHZhbHVlIHRvIGEgY29ycmVzcG9uZGluZyBGbG9hdCB2YWx1ZS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBUaGUgc3RyaW5nIHZhbHVlIHRvIGNvbnZlcnQ8REQ+PENPREU+ZGVmYXVsdFZhbHVlPC9DT0RFPiAtIERlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIG9uIGEgY29udmVyc2lvbiBlcnJvcjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udmVydEludGVnZXIoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLkludGVnZXIpIj48IS0tIC0tPjwvQT48SDM+Citjb252ZXJ0SW50ZWdlcjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgamF2YS5sYW5nLkludGVnZXIgPEI+Y29udmVydEludGVnZXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5JbnRlZ2VyJm5ic3A7ZGVmYXVsdFZhbHVlKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db252ZXJ0IGEgU3RyaW5nIHZhbHVlIHRvIGEgY29ycmVzcG9uZGluZyBJbnRlZ2VyIHZhbHVlLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFRoZSBzdHJpbmcgdmFsdWUgdG8gY29udmVydDxERD48Q09ERT5kZWZhdWx0VmFsdWU8L0NPREU+IC0gRGVmYXVsdCB2YWx1ZSB0byByZXR1cm4gb24gYSBjb252ZXJzaW9uIGVycm9yPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb252ZXJ0TG9uZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuTG9uZykiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnZlcnRMb25nPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcuTG9uZyA8Qj5jb252ZXJ0TG9uZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLkxvbmcmbmJzcDtkZWZhdWx0VmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNvbnZlcnQgYSBTdHJpbmcgdmFsdWUgdG8gYSBjb3JyZXNwb25kaW5nIExvbmcgdmFsdWUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gVGhlIHN0cmluZyB2YWx1ZSB0byBjb252ZXJ0PEREPjxDT0RFPmRlZmF1bHRWYWx1ZTwvQ09ERT4gLSBEZWZhdWx0IHZhbHVlIHRvIHJldHVybiBvbiBhIGNvbnZlcnNpb24gZXJyb3I8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbnZlcnRTaG9ydChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU2hvcnQpIj48IS0tIC0tPjwvQT48SDM+Citjb252ZXJ0U2hvcnQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGphdmEubGFuZy5TaG9ydCA8Qj5jb252ZXJ0U2hvcnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlNob3J0Jm5ic3A7ZGVmYXVsdFZhbHVlKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db252ZXJ0IGEgU3RyaW5nIHZhbHVlIHRvIGEgY29ycmVzcG9uZGluZyBTaG9ydCB2YWx1ZS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBUaGUgc3RyaW5nIHZhbHVlIHRvIGNvbnZlcnQ8REQ+PENPREU+ZGVmYXVsdFZhbHVlPC9DT0RFPiAtIERlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIG9uIGEgY29udmVyc2lvbiBlcnJvcjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0JlYW5VdGlscy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29udmVydFV0aWxzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjQ4NmRhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwKQEAgLTAsMCArMSwzMDUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNyBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBFcnJvck1lc3NhZ2VzCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJFcnJvck1lc3NhZ2VzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9GT05UPgorPEJSPgorQ2xhc3MgIEVycm9yTWVzc2FnZXM8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkVycm9yTWVzc2FnZXM8L0I+Cis8L1BSRT4KKzxIUj4KKzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzIGluc3RlYWQ8L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+RXJyb3JNZXNzYWdlczwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4KKworPFA+CitVdGlsaXR5IGNsYXNzIHRoYXQgaXMgdXNlZnVsIGZvciBhY2N1bXVsYXRpbmcgZXJyb3IgbWVzc2FnZSBrZXlzIGluCisgYWN0aW9uIGNsYXNzZXMgb3IgdmFsaWRhdGlvbiBtZXRob2RzLiAgVXNlIHRoaXMgY2xhc3MgYXMgZm9sbG93czoKKyA8dWw+CisgPGxpPkF0IHRoZSBiZWdpbm5pbmcgb2YgeW91ciBhY3Rpb24gY2xhc3Mgb3IgdmFsaWRhdGlvbiBtZXRob2QsCisgICAgIGluc3RhbnRpYXRlIGFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgaW4gYSBsb2NhbCB2YXJpYWJsZS48L2xpPgorIDxsaT5XaGVuZXZlciB5b3Ugd2lzaCB0byBhZGQgYSBuZXcgZXJyb3IgbWVzc2FnZSBrZXksIGNhbGwgdGhlCisgICAgIDxjb2RlPmFkZEVycm9yKCk8L2NvZGU+IG1ldGhvZCB0byBhZGQgaXQuPC9saT4KKyA8bGk+VG8gcmV0dXJuIHRoZSBTdHJpbmcgYXJyYXkgb2YgZXJyb3IgbWVzc2FnZSBrZXlzIHJlcXVpcmVkIGJ5CisgICAgIG90aGVyIFN0cnV0cyBjb21wb25lbnRzLCBjYWxsIDxjb2RlPmdldEVycm9ycygpPC9jb2RlPi4KKyA8L3VsPgorPFA+Cis8REw+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkRhdmlkIEdlYXJ5PC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLnV0aWwuVmVjdG9yPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sI2Vycm9ycyI+ZXJyb3JzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBhY2N1bXVsYXRlZCBzZXQgb2YgZXJyb3IgbWVzc2FnZSBrZXlzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwjRXJyb3JNZXNzYWdlcygpIj5FcnJvck1lc3NhZ2VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbCNhZGRFcnJvcihqYXZhLmxhbmcuU3RyaW5nKSI+YWRkRXJyb3I8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7QWRkIGFuIGVycm9yIG1lc3NhZ2Uga2V5IHRvIHRoZSBhY2N1bXVsYXRlZCBzZXQgb2YgZXJyb3JzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sI2dldEVycm9yKGludCkiPmdldEVycm9yPC9BPjwvQj4oaW50Jm5ic3A7aW5kZXgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIGVycm9yIG1lc3NhZ2Uga2V5IGF0IHRoZSBzcGVjaWZpZWQgemVyby1yZWxhdGl2ZSBpbmRleC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZ1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sI2dldEVycm9ycygpIj5nZXRFcnJvcnM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHNldCBvZiBlcnJvciBtZXNzYWdlIGtleXMgd2UgaGF2ZSBhY2N1bXVsYXRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sI2dldFNpemUoKSI+Z2V0U2l6ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgbnVtYmVyIG9mIGVycm9yIG1lc3NhZ2Uga2V5cyB3ZSBoYXZlIGFjY3VtdWxhdGVkIHNvIGZhci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImVycm9ycyI+PCEtLSAtLT48L0E+PEgzPgorZXJyb3JzPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEudXRpbC5WZWN0b3IgPEI+ZXJyb3JzPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgYWNjdW11bGF0ZWQgc2V0IG9mIGVycm9yIG1lc3NhZ2Uga2V5cy48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRXJyb3JNZXNzYWdlcygpIj48IS0tIC0tPjwvQT48SDM+CitFcnJvck1lc3NhZ2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RXJyb3JNZXNzYWdlczwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImFkZEVycm9yKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CithZGRFcnJvcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkRXJyb3I8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkFkZCBhbiBlcnJvciBtZXNzYWdlIGtleSB0byB0aGUgYWNjdW11bGF0ZWQgc2V0IG9mIGVycm9ycy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIGVycm9yIG1lc3NhZ2Uga2V5IHRvIGJlIGFkZGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRFcnJvcihpbnQpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFcnJvcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RXJyb3I8L0I+KGludCZuYnNwO2luZGV4KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlIGVycm9yIG1lc3NhZ2Uga2V5IGF0IHRoZSBzcGVjaWZpZWQgemVyby1yZWxhdGl2ZSBpbmRleC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5pbmRleDwvQ09ERT4gLSBaZXJvLXJlbGF0aXZlIGluZGV4IG9mIHRoZSBlcnJvciBtZXNzYWdlIGtleSB0byByZXR1cm48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEVycm9ycygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFcnJvcnM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nW10gPEI+Z2V0RXJyb3JzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiB0aGUgc2V0IG9mIGVycm9yIG1lc3NhZ2Uga2V5cyB3ZSBoYXZlIGFjY3VtdWxhdGVkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNpemUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5nZXRTaXplPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiB0aGUgbnVtYmVyIG9mIGVycm9yIG1lc3NhZ2Uga2V5cyB3ZSBoYXZlIGFjY3VtdWxhdGVkIHNvIGZhci48L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJFcnJvck1lc3NhZ2VzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZmMxODhhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwKQEAgLTAsMCArMSwxMDYxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzcgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgRmFzdEFycmF5TGlzdAorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGYXN0QXJyYXlMaXN0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9GT05UPgorPEJSPgorQ2xhc3MgIEZhc3RBcnJheUxpc3Q8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZhLnV0aWwuQWJzdHJhY3RDb2xsZWN0aW9uCisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YS51dGlsLkFic3RyYWN0TGlzdAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLWphdmEudXRpbC5BcnJheUxpc3QKKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RBcnJheUxpc3Q8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmxhbmcuQ2xvbmVhYmxlLCBqYXZhLnV0aWwuQ29sbGVjdGlvbiwgamF2YS51dGlsLkxpc3QsIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BdCBzb21lIHBvaW50IGFmdGVyIFN0cnV0cyAxLjAgZmluYWwsIHdpbGwgYmUgcmVwbGFjZWQgYnkKKyAgYW4gZXF1aXZhbGVudCBjbGFzcyBpbiB0aGUgSmFrYXJ0YSBDb21tb25zIENvbGxlY3Rpb25zIHBhY2thZ2UuPC9JPgorPFA+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkZhc3RBcnJheUxpc3Q8L0I+PERUPmV4dGVuZHMgamF2YS51dGlsLkFycmF5TGlzdDwvREw+CisKKzxQPgorPHA+QSBjdXN0b21pemVkIGltcGxlbWVudGF0aW9uIG9mIDxjb2RlPmphdmEudXRpbC5BcnJheUxpc3Q8L2NvZGU+IGRlc2lnbmVkCisgdG8gb3BlcmF0ZSBpbiBhIG11bHRpdGhyZWFkZWQgZW52aXJvbm1lbnQgd2hlcmUgdGhlIGxhcmdlIG1ham9yaXR5IG9mCisgbWV0aG9kIGNhbGxzIGFyZSByZWFkLW9ubHksIGluc3RlYWQgb2Ygc3RydWN0dXJhbCBjaGFuZ2VzLiAgV2hlbiBvcGVyYXRpbmcKKyBpbiAiZmFzdCIgbW9kZSwgcmVhZCBjYWxscyBhcmUgbm9uLXN5bmNocm9uaXplZCBhbmQgd3JpdGUgY2FsbHMgcGVyZm9ybSB0aGUKKyBmb2xsb3dpbmcgc3RlcHM6PC9wPgorIDx1bD4KKyA8bGk+Q2xvbmUgdGhlIGV4aXN0aW5nIGNvbGxlY3Rpb24KKyA8bGk+UGVyZm9ybSB0aGUgbW9kaWZpY2F0aW9uIG9uIHRoZSBjbG9uZQorIDxsaT5SZXBsYWNlIHRoZSBleGlzdGluZyBjb2xsZWN0aW9uIHdpdGggdGhlIChtb2RpZmllZCkgY2xvbmUKKyA8L3VsPgorIDxwPldoZW4gZmlyc3QgY3JlYXRlZCwgb2JqZWN0cyBvZiB0aGlzIGNsYXNzIGRlZmF1bHQgdG8gInNsb3ciIG1vZGUsIHdoZXJlCisgYWxsIGFjY2Vzc2VzIG9mIGFueSB0eXBlIGFyZSBzeW5jaHJvbml6ZWQgYnV0IG5vIGNsb25pbmcgdGFrZXMgcGxhY2UuICBUaGlzCisgaXMgYXBwcm9wcmlhdGUgZm9yIGluaXRpYWxseSBwb3B1bGF0aW5nIHRoZSBjb2xsZWN0aW9uLCBmb2xsb3dlZCBieSBhIHN3aXRjaAorIHRvICJmYXN0IiBtb2RlIChieSBjYWxsaW5nIDxjb2RlPnNldEZhc3QodHJ1ZSk8L2NvZGU+KSBhZnRlciBpbml0aWFsaXphdGlvbgorIGlzIGNvbXBsZXRlLjwvcD4KKworIDxwPjxzdHJvbmc+Tk9URTwvc3Ryb25nPjogSWYgeW91IGFyZSBjcmVhdGluZyBhbmQgYWNjZXNzaW5nIGFuCisgPGNvZGU+QXJyYXlMaXN0PC9jb2RlPiBvbmx5IHdpdGhpbiBhIHNpbmdsZSB0aHJlYWQsIHlvdSBzaG91bGQgdXNlCisgPGNvZGU+amF2YS51dGlsLkFycmF5TGlzdDwvY29kZT4gZGlyZWN0bHkgKHdpdGggbm8gc3luY2hyb25pemF0aW9uKSwgZm9yCisgbWF4aW11bSBwZXJmb3JtYW5jZS48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0QXJyYXlMaXN0Ij5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNmYXN0Ij5mYXN0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0FyZSB3ZSBvcGVyYXRpbmcgaW4gImZhc3QiIG1vZGU/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuQXJyYXlMaXN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2xpc3QiPmxpc3Q8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIHVuZGVybHlpbmcgbGlzdCB3ZSBhcmUgbWFuYWdpbmcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEudXRpbC5BcnJheUxpc3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS51dGlsLkFycmF5TGlzdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmVsZW1lbnREYXRhLCBzaXplPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLnV0aWwuQWJzdHJhY3RMaXN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEudXRpbC5BYnN0cmFjdExpc3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5tb2RDb3VudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI0Zhc3RBcnJheUxpc3QoKSI+RmFzdEFycmF5TGlzdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhIGFuIGVtcHR5IGxpc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNGYXN0QXJyYXlMaXN0KGphdmEudXRpbC5Db2xsZWN0aW9uKSI+RmFzdEFycmF5TGlzdDwvQT48L0I+KGphdmEudXRpbC5Db2xsZWN0aW9uJm5ic3A7Y29sbGVjdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhIGxpc3QgY29udGFpbmluZyB0aGUgZWxlbWVudHMgb2YgdGhlIHNwZWNpZmllZCBjb2xsZWN0aW9uLAorIGluIHRoZSBvcmRlciB0aGV5IGFyZSByZXR1cm5lZCBieSB0aGUgY29sbGVjdGlvbidzIGl0ZXJhdG9yLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjRmFzdEFycmF5TGlzdChpbnQpIj5GYXN0QXJyYXlMaXN0PC9BPjwvQj4oaW50Jm5ic3A7Y2FwYWNpdHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb25zdHJ1Y3QgYW4gZW1wdHkgbGlzdCB3aXRoIHRoZSBzcGVjaWZpZWQgY2FwYWNpdHkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNhZGQoaW50LCBqYXZhLmxhbmcuT2JqZWN0KSI+YWRkPC9BPjwvQj4oaW50Jm5ic3A7aW5kZXgsCisgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2VsZW1lbnQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtJbnNlcnQgdGhlIHNwZWNpZmllZCBlbGVtZW50IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhpcyBsaXN0LAorIGFuZCBzaGlmdCBhbGwgcmVtYWluaW5nIGVsZW1lbnRzIHVwIG9uZSBwb3NpdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNhZGQoamF2YS5sYW5nLk9iamVjdCkiPmFkZDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtlbGVtZW50KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7QXBwZW5kcyB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgdG8gdGhlIGVuZCBvZiB0aGlzIGxpc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjYWRkQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uKSI+YWRkQWxsPC9BPjwvQj4oamF2YS51dGlsLkNvbGxlY3Rpb24mbmJzcDtjb2xsZWN0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7QXBwZW5kIGFsbCBvZiB0aGUgZWxlbWVudHMgaW4gdGhlIHNwZWNpZmllZCBDb2xsZWN0aW9uIHRvIHRoZSBlbmQKKyBvZiB0aGlzIGxpc3QsIGluIHRoZSBvcmRlciB0aGF0IHRoZXkgYXJlIHJldHVybmVkIGJ5IHRoZSBzcGVjaWZpZWQKKyBDb2xsZWN0aW9uJ3MgSXRlcmF0b3IuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjYWRkQWxsKGludCwgamF2YS51dGlsLkNvbGxlY3Rpb24pIj5hZGRBbGw8L0E+PC9CPihpbnQmbmJzcDtpbmRleCwKKyAgICAgICBqYXZhLnV0aWwuQ29sbGVjdGlvbiZuYnNwO2NvbGxlY3Rpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtJbnNlcnQgYWxsIG9mIHRoZSBlbGVtZW50cyBpbiB0aGUgc3BlY2lmaWVkIENvbGxlY3Rpb24gYXQgdGhlIHNwZWNpZmllZAorIHBvc2l0aW9uIGluIHRoaXMgbGlzdCwgYW5kIHNoaWZ0IGFueSBwcmV2aW91cyBlbGVtZW50cyB1cHdhcmRzIGFzCisgbmVlZGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2NsZWFyKCkiPmNsZWFyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVtb3ZlIGFsbCBvZiB0aGUgZWxlbWVudHMgZnJvbSB0aGlzIGxpc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjY2xvbmUoKSI+Y2xvbmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gYSBzaGFsbG93IGNvcHkgb2YgdGhpcyA8Y29kZT5GYXN0QXJyYXlMaXN0PC9jb2RlPiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNjb250YWlucyhqYXZhLmxhbmcuT2JqZWN0KSI+Y29udGFpbnM8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7ZWxlbWVudCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGxpc3QgY29udGFpbnMgdGhlIHNwZWNpZmllZCBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2NvbnRhaW5zQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uKSI+Y29udGFpbnNBbGw8L0E+PC9CPihqYXZhLnV0aWwuQ29sbGVjdGlvbiZuYnNwO2NvbGxlY3Rpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBsaXN0IGNvbnRhaW5zIGFsbCBvZiB0aGUgZWxlbWVudHMKKyBpbiB0aGUgc3BlY2lmaWVkIENvbGxlY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjZW5zdXJlQ2FwYWNpdHkoaW50KSI+ZW5zdXJlQ2FwYWNpdHk8L0E+PC9CPihpbnQmbmJzcDtjYXBhY2l0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0luY3JlYXNlIHRoZSBjYXBhY2l0eSBvZiB0aGlzIDxjb2RlPkFycmF5TGlzdDwvY29kZT4gaW5zdGFuY2UsIGlmCisgbmVjZXNzYXJ5LCB0byBlbnN1cmUgdGhhdCBpdCBjYW4gaG9sZCBhdCBsZWFzdCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzCisgc3BlY2lmaWVkIGJ5IHRoZSBtaW5pbXVtIGNhcGFjaXR5IGFyZ3VtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2VxdWFscyhqYXZhLmxhbmcuT2JqZWN0KSI+ZXF1YWxzPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO28pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb21wYXJlIHRoZSBzcGVjaWZpZWQgb2JqZWN0IHdpdGggdGhpcyBsaXN0IGZvciBlcXVhbGl0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNnZXQoaW50KSI+Z2V0PC9BPjwvQj4oaW50Jm5ic3A7aW5kZXgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIGVsZW1lbnQgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBpbiB0aGUgbGlzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNnZXRGYXN0KCkiPmdldEZhc3Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2hhc2hDb2RlKCkiPmhhc2hDb2RlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBoYXNoIGNvZGUgdmFsdWUgZm9yIHRoaXMgbGlzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2luZGV4T2YoamF2YS5sYW5nLk9iamVjdCkiPmluZGV4T2Y8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7ZWxlbWVudCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1NlYXJjaCBmb3IgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdGhlIGdpdmVuIGFyZ3VtZW50LCB0ZXN0aW5nCisgZm9yIGVxdWFsaXR5IHVzaW5nIHRoZSA8Y29kZT5lcXVhbHMoKTwvY29kZT4gbWV0aG9kLCBhbmQgcmV0dXJuCisgdGhlIGNvcnJlc3BvbmRpbmcgaW5kZXgsIG9yIC0xIGlmIHRoZSBvYmplY3QgaXMgbm90IGZvdW5kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2lzRW1wdHkoKSI+aXNFbXB0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1Rlc3QgaWYgdGhpcyBsaXN0IGhhcyBubyBlbGVtZW50cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLkl0ZXJhdG9yPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI2l0ZXJhdG9yKCkiPml0ZXJhdG9yPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGVsZW1lbnRzIGluIHRoaXMgbGlzdCBpbiBwcm9wZXIgc2VxdWVuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNsYXN0SW5kZXhPZihqYXZhLmxhbmcuT2JqZWN0KSI+bGFzdEluZGV4T2Y8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7ZWxlbWVudCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1NlYXJjaCBmb3IgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiB0aGUgZ2l2ZW4gYXJndW1lbnQsIHRlc3RpbmcKKyBmb3IgZXF1YWxpdHkgdXNpbmcgdGhlIDxjb2RlPmVxdWFscygpPC9jb2RlPiBtZXRob2QsIGFuZCByZXR1cm4KKyB0aGUgY29ycmVzcG9uZGluZyBpbmRleCwgb3IgLTEgaWYgdGhlIG9iamVjdCBpcyBub3QgZm91bmQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5MaXN0SXRlcmF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjbGlzdEl0ZXJhdG9yKCkiPmxpc3RJdGVyYXRvcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhbiBpdGVyYXRvciBvZiB0aGUgZWxlbWVudHMgb2YgdGhpcyBsaXN0LCBpbiBwcm9wZXIgc2VxdWVuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5MaXN0SXRlcmF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjbGlzdEl0ZXJhdG9yKGludCkiPmxpc3RJdGVyYXRvcjwvQT48L0I+KGludCZuYnNwO2luZGV4KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGFuIGl0ZXJhdG9yIG9mIHRoZSBlbGVtZW50cyBvZiB0aGlzIGxpc3QsIGluIHByb3BlciBzZXF1ZW5jZSwKKyBzdGFydGluZyBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI3JlbW92ZShpbnQpIj5yZW1vdmU8L0E+PC9CPihpbnQmbmJzcDtpbmRleCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JlbW92ZSB0aGUgZWxlbWVudCBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uIGluIHRoZSBsaXN0LCBhbmQgc2hpZnQKKyBhbnkgc3Vic2VxdWVudCBlbGVtZW50cyBkb3duIG9uZSBwb3NpdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNyZW1vdmUoamF2YS5sYW5nLk9iamVjdCkiPnJlbW92ZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtlbGVtZW50KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVtb3ZlIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBzcGVjaWZpZWQgZWxlbWVudCBmcm9tIHRoZSBsaXN0LAorIGFuZCBzaGlmdCBhbnkgc3Vic2VxdWVudCBlbGVtZW50cyBkb3duIG9uZSBwb3NpdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNyZW1vdmVBbGwoamF2YS51dGlsLkNvbGxlY3Rpb24pIj5yZW1vdmVBbGw8L0E+PC9CPihqYXZhLnV0aWwuQ29sbGVjdGlvbiZuYnNwO2NvbGxlY3Rpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZW1vdmUgZnJvbSB0aGlzIGNvbGxlY3Rpb24gYWxsIG9mIGl0cyBlbGVtZW50cyB0aGF0IGFyZSBjb250YWluZWQKKyBpbiB0aGUgc3BlY2lmaWVkIGNvbGxlY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjcmV0YWluQWxsKGphdmEudXRpbC5Db2xsZWN0aW9uKSI+cmV0YWluQWxsPC9BPjwvQj4oamF2YS51dGlsLkNvbGxlY3Rpb24mbmJzcDtjb2xsZWN0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVtb3ZlIGZyb20gdGhpcyBjb2xsZWN0aW9uIGFsbCBvZiBpdHMgZWxlbWVudHMgZXhjZXB0IHRob3NlIHRoYXQgYXJlCisgY29udGFpbmVkIGluIHRoZSBzcGVjaWZpZWQgY29sbGVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNzZXQoaW50LCBqYXZhLmxhbmcuT2JqZWN0KSI+c2V0PC9BPjwvQj4oaW50Jm5ic3A7aW5kZXgsCisgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2VsZW1lbnQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXBsYWNlIHRoZSBlbGVtZW50IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhpcyBsaXN0IHdpdGgKKyB0aGUgc3BlY2lmaWVkIGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjc2V0RmFzdChib29sZWFuKSI+c2V0RmFzdDwvQT48L0I+KGJvb2xlYW4mbmJzcDtmYXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCNzaXplKCkiPnNpemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGlzIGxpc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5MaXN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI3N1Ykxpc3QoaW50LCBpbnQpIj5zdWJMaXN0PC9BPjwvQj4oaW50Jm5ic3A7ZnJvbUluZGV4LAorICAgICAgICBpbnQmbmJzcDt0b0luZGV4KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGEgdmlldyBvZiB0aGUgcG9ydGlvbiBvZiB0aGlzIGxpc3QgYmV0d2VlbiBmcm9tSW5kZXgKKyAoaW5jbHVzaXZlKSBhbmQgdG9JbmRleCAoZXhjbHVzaXZlKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdFtdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sI3RvQXJyYXkoKSI+dG9BcnJheTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhbiBhcnJheSBjb250YWluaW5nIGFsbCBvZiB0aGUgZWxlbWVudHMgaW4gdGhpcyBsaXN0IGluIHRoZQorIGNvcnJlY3Qgb3JkZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5PYmplY3RbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCN0b0FycmF5KGphdmEubGFuZy5PYmplY3RbXSkiPnRvQXJyYXk8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0W10mbmJzcDthcnJheSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhbiBhcnJheSBjb250YWluaW5nIGFsbCBvZiB0aGUgZWxlbWVudHMgaW4gdGhpcyBsaXN0IGluIHRoZQorIGNvcnJlY3Qgb3JkZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gYSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwjdHJpbVRvU2l6ZSgpIj50cmltVG9TaXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VHJpbSB0aGUgY2FwYWNpdHkgb2YgdGhpcyA8Y29kZT5BcnJheUxpc3Q8L2NvZGU+IGluc3RhbmNlIHRvIGJlIHRoZQorIGxpc3QncyBjdXJyZW50IHNpemUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLnV0aWwuQXJyYXlMaXN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLnV0aWwuQXJyYXlMaXN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+UmFuZ2VDaGVjaywgcmVhZE9iamVjdCwgcmVtb3ZlUmFuZ2UsIHdyaXRlT2JqZWN0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Imxpc3QiPjwhLS0gLS0+PC9BPjxIMz4KK2xpc3Q8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuQXJyYXlMaXN0IDxCPmxpc3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSB1bmRlcmx5aW5nIGxpc3Qgd2UgYXJlIG1hbmFnaW5nLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZhc3QiPjwhLS0gLS0+PC9BPjxIMz4KK2Zhc3Q8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmZhc3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkFyZSB3ZSBvcGVyYXRpbmcgaW4gImZhc3QiIG1vZGU/PC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkZhc3RBcnJheUxpc3QoKSI+PCEtLSAtLT48L0E+PEgzPgorRmFzdEFycmF5TGlzdDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkZhc3RBcnJheUxpc3Q8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+Q29uc3RydWN0IGEgYW4gZW1wdHkgbGlzdC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJGYXN0QXJyYXlMaXN0KGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK0Zhc3RBcnJheUxpc3Q8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5GYXN0QXJyYXlMaXN0PC9CPihpbnQmbmJzcDtjYXBhY2l0eSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+Q29uc3RydWN0IGFuIGVtcHR5IGxpc3Qgd2l0aCB0aGUgc3BlY2lmaWVkIGNhcGFjaXR5LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNhcGFjaXR5PC9DT0RFPiAtIFRoZSBpbml0aWFsIGNhcGFjaXR5IG9mIHRoZSBlbXB0eSBsaXN0PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJGYXN0QXJyYXlMaXN0KGphdmEudXRpbC5Db2xsZWN0aW9uKSI+PCEtLSAtLT48L0E+PEgzPgorRmFzdEFycmF5TGlzdDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkZhc3RBcnJheUxpc3Q8L0I+KGphdmEudXRpbC5Db2xsZWN0aW9uJm5ic3A7Y29sbGVjdGlvbik8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+Q29uc3RydWN0IGEgbGlzdCBjb250YWluaW5nIHRoZSBlbGVtZW50cyBvZiB0aGUgc3BlY2lmaWVkIGNvbGxlY3Rpb24sCisgaW4gdGhlIG9yZGVyIHRoZXkgYXJlIHJldHVybmVkIGJ5IHRoZSBjb2xsZWN0aW9uJ3MgaXRlcmF0b3IuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29sbGVjdGlvbjwvQ09ERT4gLSBUaGUgY29sbGVjdGlvbiB3aG9zZSBlbGVtZW50cyBpbml0aWFsaXplIHRoZSBjb250ZW50cworICBvZiB0aGlzIGxpc3Q8L0RMPgorPC9ERD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEZhc3QoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmFzdDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0RmFzdDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZhc3QoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZhc3Q8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZhc3Q8L0I+KGJvb2xlYW4mbmJzcDtmYXN0KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZChqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorYWRkPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5hZGQ8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtlbGVtZW50KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5BcHBlbmRzIHRoZSBzcGVjaWZpZWQgZWxlbWVudCB0byB0aGUgZW5kIG9mIHRoaXMgbGlzdC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmFkZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLkFycmF5TGlzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmVsZW1lbnQ8L0NPREU+IC0gVGhlIGVsZW1lbnQgdG8gYmUgYXBwZW5kZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZChpbnQsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CithZGQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZDwvQj4oaW50Jm5ic3A7aW5kZXgsCisgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2VsZW1lbnQpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkluc2VydCB0aGUgc3BlY2lmaWVkIGVsZW1lbnQgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBpbiB0aGlzIGxpc3QsCisgYW5kIHNoaWZ0IGFsbCByZW1haW5pbmcgZWxlbWVudHMgdXAgb25lIHBvc2l0aW9uLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+YWRkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQXJyYXlMaXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aW5kZXg8L0NPREU+IC0gSW5kZXggYXQgd2hpY2ggdG8gaW5zZXJ0IHRoaXMgZWxlbWVudDxERD48Q09ERT5lbGVtZW50PC9DT0RFPiAtIFRoZSBlbGVtZW50IHRvIGJlIGluc2VydGVkPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEubGFuZy5JbmRleE91dE9mQm91bmRzRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBpbmRleCBpcyBvdXQgb2YgcmFuZ2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZEFsbChqYXZhLnV0aWwuQ29sbGVjdGlvbikiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZEFsbDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+YWRkQWxsPC9CPihqYXZhLnV0aWwuQ29sbGVjdGlvbiZuYnNwO2NvbGxlY3Rpb24pPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkFwcGVuZCBhbGwgb2YgdGhlIGVsZW1lbnRzIGluIHRoZSBzcGVjaWZpZWQgQ29sbGVjdGlvbiB0byB0aGUgZW5kCisgb2YgdGhpcyBsaXN0LCBpbiB0aGUgb3JkZXIgdGhhdCB0aGV5IGFyZSByZXR1cm5lZCBieSB0aGUgc3BlY2lmaWVkCisgQ29sbGVjdGlvbidzIEl0ZXJhdG9yLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+YWRkQWxsPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQXJyYXlMaXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29sbGVjdGlvbjwvQ09ERT4gLSBUaGUgY29sbGVjdGlvbiB0byBiZSBhcHBlbmRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkQWxsKGludCwgamF2YS51dGlsLkNvbGxlY3Rpb24pIj48IS0tIC0tPjwvQT48SDM+CithZGRBbGw8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmFkZEFsbDwvQj4oaW50Jm5ic3A7aW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgamF2YS51dGlsLkNvbGxlY3Rpb24mbmJzcDtjb2xsZWN0aW9uKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5JbnNlcnQgYWxsIG9mIHRoZSBlbGVtZW50cyBpbiB0aGUgc3BlY2lmaWVkIENvbGxlY3Rpb24gYXQgdGhlIHNwZWNpZmllZAorIHBvc2l0aW9uIGluIHRoaXMgbGlzdCwgYW5kIHNoaWZ0IGFueSBwcmV2aW91cyBlbGVtZW50cyB1cHdhcmRzIGFzCisgbmVlZGVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+YWRkQWxsPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQXJyYXlMaXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aW5kZXg8L0NPREU+IC0gSW5kZXggYXQgd2hpY2ggaW5zZXJ0aW9uIHRha2VzIHBsYWNlPEREPjxDT0RFPmNvbGxlY3Rpb248L0NPREU+IC0gVGhlIGNvbGxlY3Rpb24gdG8gYmUgYWRkZWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5sYW5nLkluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGluZGV4IGlzIG91dCBvZiByYW5nZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2xlYXIoKSI+PCEtLSAtLT48L0E+PEgzPgorY2xlYXI8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmNsZWFyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJlbW92ZSBhbGwgb2YgdGhlIGVsZW1lbnRzIGZyb20gdGhpcyBsaXN0LiAgVGhlIGxpc3Qgd2lsbCBiZSBlbXB0eQorIGFmdGVyIHRoaXMgY2FsbCByZXR1cm5zLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Y2xlYXI8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5BcnJheUxpc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPlVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uPC9DT0RFPiAtIGlmIDxjb2RlPmNsZWFyKCk8L2NvZGU+CisgIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBsaXN0PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjbG9uZSgpIj48IS0tIC0tPjwvQT48SDM+CitjbG9uZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Y2xvbmU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIGEgc2hhbGxvdyBjb3B5IG9mIHRoaXMgPGNvZGU+RmFzdEFycmF5TGlzdDwvY29kZT4gaW5zdGFuY2UuCisgVGhlIGVsZW1lbnRzIHRoZW1zZWx2ZXMgYXJlIG5vdCBjb3BpZWQuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5jbG9uZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLkFycmF5TGlzdDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbnRhaW5zKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+Citjb250YWluczwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Y29udGFpbnM8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtlbGVtZW50KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBsaXN0IGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgZWxlbWVudC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmNvbnRhaW5zPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQXJyYXlMaXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZWxlbWVudDwvQ09ERT4gLSBUaGUgZWxlbWVudCB0byB0ZXN0IGZvcjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udGFpbnNBbGwoamF2YS51dGlsLkNvbGxlY3Rpb24pIj48IS0tIC0tPjwvQT48SDM+Citjb250YWluc0FsbDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Y29udGFpbnNBbGw8L0I+KGphdmEudXRpbC5Db2xsZWN0aW9uJm5ic3A7Y29sbGVjdGlvbik8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgbGlzdCBjb250YWlucyBhbGwgb2YgdGhlIGVsZW1lbnRzCisgaW4gdGhlIHNwZWNpZmllZCBDb2xsZWN0aW9uLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Y29udGFpbnNBbGw8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5BYnN0cmFjdENvbGxlY3Rpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb2xsZWN0aW9uPC9DT0RFPiAtIENvbGxlY3Rpb24gd2hvc2UgZWxlbWVudHMgYXJlIHRvIGJlIGNoZWNrZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVuc3VyZUNhcGFjaXR5KGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK2Vuc3VyZUNhcGFjaXR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5lbnN1cmVDYXBhY2l0eTwvQj4oaW50Jm5ic3A7Y2FwYWNpdHkpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkluY3JlYXNlIHRoZSBjYXBhY2l0eSBvZiB0aGlzIDxjb2RlPkFycmF5TGlzdDwvY29kZT4gaW5zdGFuY2UsIGlmCisgbmVjZXNzYXJ5LCB0byBlbnN1cmUgdGhhdCBpdCBjYW4gaG9sZCBhdCBsZWFzdCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzCisgc3BlY2lmaWVkIGJ5IHRoZSBtaW5pbXVtIGNhcGFjaXR5IGFyZ3VtZW50LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZW5zdXJlQ2FwYWNpdHk8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5BcnJheUxpc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jYXBhY2l0eTwvQ09ERT4gLSBUaGUgbmV3IG1pbmltdW0gY2FwYWNpdHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVxdWFscyhqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorZXF1YWxzPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5lcXVhbHM8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtvKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db21wYXJlIHRoZSBzcGVjaWZpZWQgb2JqZWN0IHdpdGggdGhpcyBsaXN0IGZvciBlcXVhbGl0eS4gIFRoaXMKKyBpbXBsZW1lbnRhdGlvbiB1c2VzIGV4YWN0bHkgdGhlIGNvZGUgdGhhdCBpcyB1c2VkIHRvIGRlZmluZSB0aGUKKyBsaXN0IGVxdWFscyBmdW5jdGlvbiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlCisgPGNvZGU+TGlzdC5lcXVhbHM8L2NvZGU+IG1ldGhvZC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmVxdWFsczwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLkFic3RyYWN0TGlzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm88L0NPREU+IC0gT2JqZWN0IHRvIGJlIGNvbXBhcmVkIHRvIHRoaXMgbGlzdDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0KGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Z2V0PC9CPihpbnQmbmJzcDtpbmRleCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSBlbGVtZW50IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhlIGxpc3QuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5BcnJheUxpc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5pbmRleDwvQ09ERT4gLSBUaGUgaW5kZXggb2YgdGhlIGVsZW1lbnQgdG8gcmV0dXJuPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEubGFuZy5JbmRleE91dE9mQm91bmRzRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBpbmRleCBpcyBvdXQgb2YgcmFuZ2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Imhhc2hDb2RlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2hhc2hDb2RlPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmhhc2hDb2RlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiB0aGUgaGFzaCBjb2RlIHZhbHVlIGZvciB0aGlzIGxpc3QuICBUaGlzIGltcGxlbWVudGF0aW9uIHVzZXMKKyBleGFjdGx5IHRoZSBjb2RlIHRoYXQgaXMgdXNlZCB0byBkZWZpbmUgdGhlIGxpc3QgaGFzaCBmdW5jdGlvbiBpbiB0aGUKKyBkb2N1bWVudGF0aW9uIGZvciB0aGUgPGNvZGU+TGlzdC5oYXNoQ29kZTwvY29kZT4gbWV0aG9kLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+aGFzaENvZGU8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5BYnN0cmFjdExpc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbmRleE9mKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitpbmRleE9mPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmluZGV4T2Y8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtlbGVtZW50KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5TZWFyY2ggZm9yIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBnaXZlbiBhcmd1bWVudCwgdGVzdGluZworIGZvciBlcXVhbGl0eSB1c2luZyB0aGUgPGNvZGU+ZXF1YWxzKCk8L2NvZGU+IG1ldGhvZCwgYW5kIHJldHVybgorIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4LCBvciAtMSBpZiB0aGUgb2JqZWN0IGlzIG5vdCBmb3VuZC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmluZGV4T2Y8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5BcnJheUxpc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5lbGVtZW50PC9DT0RFPiAtIFRoZSBlbGVtZW50IHRvIHNlYXJjaCBmb3I8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzRW1wdHkoKSI+PCEtLSAtLT48L0E+PEgzPgoraXNFbXB0eTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+aXNFbXB0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UZXN0IGlmIHRoaXMgbGlzdCBoYXMgbm8gZWxlbWVudHMuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5pc0VtcHR5PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQXJyYXlMaXN0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXRlcmF0b3IoKSI+PCEtLSAtLT48L0E+PEgzPgoraXRlcmF0b3I8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuSXRlcmF0b3IgPEI+aXRlcmF0b3I8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGVsZW1lbnRzIGluIHRoaXMgbGlzdCBpbiBwcm9wZXIgc2VxdWVuY2UuCisgPGJyPjxicj4KKyA8c3Ryb25nPklNUExFTUVOVEFUSU9OIE5PVEU8L3N0cm9uZz4gLSBJZiB0aGUgbGlzdCBpcyBvcGVyYXRpbmcgaW4gZmFzdAorIG1vZGUsIGFuIEl0ZXJhdG9yIGlzIHJldHVybmVkLCBhbmQgYSBzdHJ1Y3R1cmFsIG1vZGlmaWNhdGlvbiB0byB0aGUKKyBsaXN0IGlzIG1hZGUsIHRoZW4gdGhlIEl0ZXJhdG9yIHdpbGwgY29udGludWUgb3ZlciB0aGUgcHJldmlvdXMgY29udGVudHMKKyBvZiB0aGUgbGlzdCAoYXQgdGhlIHRpbWUgdGhhdCB0aGUgSXRlcmF0b3Igd2FzIGNyZWF0ZWQpLCByYXRoZXIgdGhhbgorIGZhaWxpbmcgZHVlIHRvIGNvbmN1cnJlbnQgbW9kaWZpY2F0aW9ucy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPml0ZXJhdG9yPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQWJzdHJhY3RMaXN0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGFzdEluZGV4T2YoamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2xhc3RJbmRleE9mPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmxhc3RJbmRleE9mPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7ZWxlbWVudCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+U2VhcmNoIGZvciB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mIHRoZSBnaXZlbiBhcmd1bWVudCwgdGVzdGluZworIGZvciBlcXVhbGl0eSB1c2luZyB0aGUgPGNvZGU+ZXF1YWxzKCk8L2NvZGU+IG1ldGhvZCwgYW5kIHJldHVybgorIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4LCBvciAtMSBpZiB0aGUgb2JqZWN0IGlzIG5vdCBmb3VuZC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmxhc3RJbmRleE9mPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQXJyYXlMaXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZWxlbWVudDwvQ09ERT4gLSBUaGUgZWxlbWVudCB0byBzZWFyY2ggZm9yPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsaXN0SXRlcmF0b3IoKSI+PCEtLSAtLT48L0E+PEgzPgorbGlzdEl0ZXJhdG9yPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkxpc3RJdGVyYXRvciA8Qj5saXN0SXRlcmF0b3I8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIGFuIGl0ZXJhdG9yIG9mIHRoZSBlbGVtZW50cyBvZiB0aGlzIGxpc3QsIGluIHByb3BlciBzZXF1ZW5jZS4KKyBTZWUgdGhlIGltcGxlbWVudGF0aW9uIG5vdGUgb24gPGNvZGU+aXRlcmF0b3IoKTwvY29kZT4uPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5saXN0SXRlcmF0b3I8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5BYnN0cmFjdExpc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsaXN0SXRlcmF0b3IoaW50KSI+PCEtLSAtLT48L0E+PEgzPgorbGlzdEl0ZXJhdG9yPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkxpc3RJdGVyYXRvciA8Qj5saXN0SXRlcmF0b3I8L0I+KGludCZuYnNwO2luZGV4KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gYW4gaXRlcmF0b3Igb2YgdGhlIGVsZW1lbnRzIG9mIHRoaXMgbGlzdCwgaW4gcHJvcGVyIHNlcXVlbmNlLAorIHN0YXJ0aW5nIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uCisgU2VlIHRoZSBpbXBsZW1lbnRhdGlvbiBub3RlIG9uIDxjb2RlPml0ZXJhdG9yKCk8L2NvZGU+LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+bGlzdEl0ZXJhdG9yPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQWJzdHJhY3RMaXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aW5kZXg8L0NPREU+IC0gVGhlIHN0YXJ0aW5nIHBvc2l0aW9uIG9mIHRoZSBpdGVyYXRvciB0byByZXR1cm48RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5sYW5nLkluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGluZGV4IGlzIG91dCBvZiByYW5nZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbW92ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+cmVtb3ZlPC9CPihpbnQmbmJzcDtpbmRleCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmVtb3ZlIHRoZSBlbGVtZW50IGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24gaW4gdGhlIGxpc3QsIGFuZCBzaGlmdAorIGFueSBzdWJzZXF1ZW50IGVsZW1lbnRzIGRvd24gb25lIHBvc2l0aW9uLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVtb3ZlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQXJyYXlMaXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aW5kZXg8L0NPREU+IC0gSW5kZXggb2YgdGhlIGVsZW1lbnQgdG8gYmUgcmVtb3ZlZDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmxhbmcuSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgaW5kZXggaXMgb3V0IG9mIHJhbmdlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW1vdmUoamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbW92ZTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+cmVtb3ZlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7ZWxlbWVudCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmVtb3ZlIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoZSBzcGVjaWZpZWQgZWxlbWVudCBmcm9tIHRoZSBsaXN0LAorIGFuZCBzaGlmdCBhbnkgc3Vic2VxdWVudCBlbGVtZW50cyBkb3duIG9uZSBwb3NpdGlvbi48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbW92ZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLkFic3RyYWN0Q29sbGVjdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmVsZW1lbnQ8L0NPREU+IC0gRWxlbWVudCB0byBiZSByZW1vdmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW1vdmVBbGwoamF2YS51dGlsLkNvbGxlY3Rpb24pIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmVBbGw8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPnJlbW92ZUFsbDwvQj4oamF2YS51dGlsLkNvbGxlY3Rpb24mbmJzcDtjb2xsZWN0aW9uKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZW1vdmUgZnJvbSB0aGlzIGNvbGxlY3Rpb24gYWxsIG9mIGl0cyBlbGVtZW50cyB0aGF0IGFyZSBjb250YWluZWQKKyBpbiB0aGUgc3BlY2lmaWVkIGNvbGxlY3Rpb24uPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZW1vdmVBbGw8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5BYnN0cmFjdENvbGxlY3Rpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb2xsZWN0aW9uPC9DT0RFPiAtIENvbGxlY3Rpb24gY29udGFpbmluZyBlbGVtZW50cyB0byBiZSByZW1vdmVkPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPlVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgb3B0aW9uYWwgb3BlcmF0aW9uCisgIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBsaXN0PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXRhaW5BbGwoamF2YS51dGlsLkNvbGxlY3Rpb24pIj48IS0tIC0tPjwvQT48SDM+CityZXRhaW5BbGw8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPnJldGFpbkFsbDwvQj4oamF2YS51dGlsLkNvbGxlY3Rpb24mbmJzcDtjb2xsZWN0aW9uKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZW1vdmUgZnJvbSB0aGlzIGNvbGxlY3Rpb24gYWxsIG9mIGl0cyBlbGVtZW50cyBleGNlcHQgdGhvc2UgdGhhdCBhcmUKKyBjb250YWluZWQgaW4gdGhlIHNwZWNpZmllZCBjb2xsZWN0aW9uLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmV0YWluQWxsPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQWJzdHJhY3RDb2xsZWN0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29sbGVjdGlvbjwvQ09ERT4gLSBDb2xsZWN0aW9uIGNvbnRhaW5pbmcgZWxlbWVudHMgdG8gYmUgcmV0YWluZWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+VW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBvcHRpb25hbCBvcGVyYXRpb24KKyAgaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGxpc3Q8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldChpbnQsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitzZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPnNldDwvQj4oaW50Jm5ic3A7aW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2VsZW1lbnQpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJlcGxhY2UgdGhlIGVsZW1lbnQgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbiBpbiB0aGlzIGxpc3Qgd2l0aAorIHRoZSBzcGVjaWZpZWQgZWxlbWVudC4gIFJldHVybnMgdGhlIHByZXZpb3VzIG9iamVjdCBhdCB0aGF0IHBvc2l0aW9uLgorIDxicj48YnI+CisgPHN0cm9uZz5JTVBMRU1FTlRBVElPTiBOT1RFPC9zdHJvbmc+IC0gVGhpcyBvcGVyYXRpb24gaXMgc3BlY2lmaWNhbGx5CisgZG9jdW1lbnRlZCB0byBub3QgYmUgYSBzdHJ1Y3R1cmFsIGNoYW5nZSwgc28gaXQgaXMgc2FmZSB0byBiZSBwZXJmb3JtZWQKKyB3aXRob3V0IGNsb25pbmcuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5zZXQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5BcnJheUxpc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5pbmRleDwvQ09ERT4gLSBJbmRleCBvZiB0aGUgZWxlbWVudCB0byByZXBsYWNlPEREPjxDT0RFPmVsZW1lbnQ8L0NPREU+IC0gVGhlIG5ldyBlbGVtZW50IHRvIGJlIHN0b3JlZDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmxhbmcuSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgaW5kZXggaXMgb3V0IG9mIHJhbmdlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+c2l6ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGlzIGxpc3QuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5zaXplPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQXJyYXlMaXN0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3ViTGlzdChpbnQsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3N1Ykxpc3Q8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuTGlzdCA8Qj5zdWJMaXN0PC9CPihpbnQmbmJzcDtmcm9tSW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDt0b0luZGV4KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gYSB2aWV3IG9mIHRoZSBwb3J0aW9uIG9mIHRoaXMgbGlzdCBiZXR3ZWVuIGZyb21JbmRleAorIChpbmNsdXNpdmUpIGFuZCB0b0luZGV4IChleGNsdXNpdmUpLiAgVGhlIHJldHVybmVkIGxpc3QgaXMgYmFja2VkCisgYnkgdGhpcyBsaXN0LCBzbyBub24tc3RydWN0dXJhbCBjaGFuZ2VzIGluIHRoZSByZXR1cm5lZCBsaXN0IGFyZQorIHJlZmxlY3RlZCBpbiB0aGlzIGxpc3QuICBUaGUgcmV0dXJuZWQgbGlzdCBzdXBwb3J0cworIGFsbCBvZiB0aGUgb3B0aW9uYWwgbGlzdCBvcGVyYXRpb25zIHN1cHBvcnRlZCBieSB0aGlzIGxpc3QuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5zdWJMaXN0PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQWJzdHJhY3RMaXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZnJvbUluZGV4PC9DT0RFPiAtIFRoZSBzdGFydGluZyBpbmRleCBvZiB0aGUgc3VibGlzdCB2aWV3PEREPjxDT0RFPnRvSW5kZXg8L0NPREU+IC0gVGhlIGluZGV4IGFmdGVyIHRoZSBlbmQgb2YgdGhlIHN1Ymxpc3QgdmlldzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmxhbmcuSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbmRleCBpcyBvdXQgb2YgcmFuZ2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRvQXJyYXkoKSI+PCEtLSAtLT48L0E+PEgzPgordG9BcnJheTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3RbXSA8Qj50b0FycmF5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiBhbiBhcnJheSBjb250YWluaW5nIGFsbCBvZiB0aGUgZWxlbWVudHMgaW4gdGhpcyBsaXN0IGluIHRoZQorIGNvcnJlY3Qgb3JkZXIuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT50b0FycmF5PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQXJyYXlMaXN0PC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9BcnJheShqYXZhLmxhbmcuT2JqZWN0W10pIj48IS0tIC0tPjwvQT48SDM+Cit0b0FycmF5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdFtdIDxCPnRvQXJyYXk8L0I+KGphdmEubGFuZy5PYmplY3RbXSZuYnNwO2FycmF5KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gYW4gYXJyYXkgY29udGFpbmluZyBhbGwgb2YgdGhlIGVsZW1lbnRzIGluIHRoaXMgbGlzdCBpbiB0aGUKKyBjb3JyZWN0IG9yZGVyLiAgVGhlIHJ1bnRpbWUgdHlwZSBvZiB0aGUgcmV0dXJuZWQgYXJyYXkgaXMgdGhhdCBvZgorIHRoZSBzcGVjaWZpZWQgYXJyYXkuICBJZiB0aGUgbGlzdCBmaXRzIGluIHRoZSBzcGVjaWZpZWQgYXJyYXksIGl0IGlzCisgcmV0dXJuZWQgdGhlcmVpbi4gIE90aGVyd2lzZSwgYSBuZXcgYXJyYXkgaXMgYWxsb2NhdGVkIHdpdGggdGhlCisgcnVudGltZSB0eXBlIG9mIHRoZSBzcGVjaWZpZWQgYXJyYXksIGFuZCB0aGUgc2l6ZSBvZiB0aGlzIGxpc3QuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT50b0FycmF5PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQXJyYXlMaXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YXJyYXk8L0NPREU+IC0gQXJyYXkgZGVmaW5pbmcgdGhlIGVsZW1lbnQgdHlwZSBvZiB0aGUgcmV0dXJuZWQgbGlzdDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5BcnJheVN0b3JlRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBydW50aW1lIHR5cGUgb2YgPGNvZGU+YXJyYXk8L2NvZGU+CisgIGlzIG5vdCBhIHN1cGVydHlwZSBvZiB0aGUgcnVudGltZSB0eXBlIG9mIGV2ZXJ5IGVsZW1lbnQgaW4gdGhpcyBsaXN0PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0b1N0cmluZygpIj48IS0tIC0tPjwvQT48SDM+Cit0b1N0cmluZzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+dG9TdHJpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+dG9TdHJpbmc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5BYnN0cmFjdENvbGxlY3Rpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0cmltVG9TaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3RyaW1Ub1NpemU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnRyaW1Ub1NpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VHJpbSB0aGUgY2FwYWNpdHkgb2YgdGhpcyA8Y29kZT5BcnJheUxpc3Q8L2NvZGU+IGluc3RhbmNlIHRvIGJlIHRoZQorIGxpc3QncyBjdXJyZW50IHNpemUuICBBbiBhcHBsaWNhdGlvbiBjYW4gdXNlIHRoaXMgb3BlcmF0aW9uIHRvIG1pbmltaXplCisgdGhlIHN0b3JhZ2Ugb2YgYW4gPGNvZGU+QXJyYXlMaXN0PC9jb2RlPiBpbnN0YW5jZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnRyaW1Ub1NpemU8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5BcnJheUxpc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZhc3RBcnJheUxpc3QuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTY4NmY4MgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbApAQCAtMCwwICsxLDcxOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM3IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEZhc3RIYXNoTWFwCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEFycmF5TGlzdC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZhc3RIYXNoTWFwLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9GT05UPgorPEJSPgorQ2xhc3MgIEZhc3RIYXNoTWFwPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YS51dGlsLkFic3RyYWN0TWFwCisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YS51dGlsLkhhc2hNYXAKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RIYXNoTWFwPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5sYW5nLkNsb25lYWJsZSwgamF2YS51dGlsLk1hcCwgamF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkF0IHNvbWUgcG9pbnQgYWZ0ZXIgU3RydXRzIDEuMCBmaW5hbCwgd2lsbCBiZSByZXBsYWNlZCBieQorICBhbiBlcXVpdmFsZW50IGNsYXNzIGluIHRoZSBKYWthcnRhIENvbW1vbnMgQ29sbGVjdGlvbnMgcGFja2FnZS48L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+RmFzdEhhc2hNYXA8L0I+PERUPmV4dGVuZHMgamF2YS51dGlsLkhhc2hNYXA8L0RMPgorCis8UD4KKzxwPkEgY3VzdG9taXplZCBpbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5qYXZhLnV0aWwuSGFzaE1hcDwvY29kZT4gZGVzaWduZWQKKyB0byBvcGVyYXRlIGluIGEgbXVsdGl0aHJlYWRlZCBlbnZpcm9ubWVudCB3aGVyZSB0aGUgbGFyZ2UgbWFqb3JpdHkgb2YKKyBtZXRob2QgY2FsbHMgYXJlIHJlYWQtb25seSwgaW5zdGVhZCBvZiBzdHJ1Y3R1cmFsIGNoYW5nZXMuICBXaGVuIG9wZXJhdGluZworIGluICJmYXN0IiBtb2RlLCByZWFkIGNhbGxzIGFyZSBub24tc3luY2hyb25pemVkIGFuZCB3cml0ZSBjYWxscyBwZXJmb3JtIHRoZQorIGZvbGxvd2luZyBzdGVwczo8L3A+CisgPHVsPgorIDxsaT5DbG9uZSB0aGUgZXhpc3RpbmcgY29sbGVjdGlvbgorIDxsaT5QZXJmb3JtIHRoZSBtb2RpZmljYXRpb24gb24gdGhlIGNsb25lCisgPGxpPlJlcGxhY2UgdGhlIGV4aXN0aW5nIGNvbGxlY3Rpb24gd2l0aCB0aGUgKG1vZGlmaWVkKSBjbG9uZQorIDwvdWw+CisgPHA+V2hlbiBmaXJzdCBjcmVhdGVkLCBvYmplY3RzIG9mIHRoaXMgY2xhc3MgZGVmYXVsdCB0byAic2xvdyIgbW9kZSwgd2hlcmUKKyBhbGwgYWNjZXNzZXMgb2YgYW55IHR5cGUgYXJlIHN5bmNocm9uaXplZCBidXQgbm8gY2xvbmluZyB0YWtlcyBwbGFjZS4gIFRoaXMKKyBpcyBhcHByb3ByaWF0ZSBmb3IgaW5pdGlhbGx5IHBvcHVsYXRpbmcgdGhlIGNvbGxlY3Rpb24sIGZvbGxvd2VkIGJ5IGEgc3dpdGNoCisgdG8gImZhc3QiIG1vZGUgKGJ5IGNhbGxpbmcgPGNvZGU+c2V0RmFzdCh0cnVlKTwvY29kZT4pIGFmdGVyIGluaXRpYWxpemF0aW9uCisgaXMgY29tcGxldGUuPC9wPgorCisgPHA+PHN0cm9uZz5OT1RFPC9zdHJvbmc+OiBJZiB5b3UgYXJlIGNyZWF0aW5nIGFuZCBhY2Nlc3NpbmcgYQorIDxjb2RlPkhhc2hNYXA8L2NvZGU+IG9ubHkgd2l0aGluIGEgc2luZ2xlIHRocmVhZCwgeW91IHNob3VsZCB1c2UKKyA8Y29kZT5qYXZhLnV0aWwuSGFzaE1hcDwvY29kZT4gZGlyZWN0bHkgKHdpdGggbm8gc3luY2hyb25pemF0aW9uKSwgZm9yCisgbWF4aW11bSBwZXJmb3JtYW5jZS48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0SGFzaE1hcCI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJpbm5lcl9jbGFzc2VzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEudXRpbC5NYXAiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5Jbm5lciBjbGFzc2VzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEudXRpbC5NYXA8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5qYXZhLnV0aWwuTWFwLkVudHJ5PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjZmFzdCI+ZmFzdDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtBcmUgd2Ugb3BlcmF0aW5nIGluICJmYXN0IiBtb2RlPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkhhc2hNYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sI21hcCI+bWFwPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSB1bmRlcmx5aW5nIG1hcCB3ZSBhcmUgbWFuYWdpbmcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEudXRpbC5IYXNoTWFwIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEudXRpbC5IYXNoTWFwPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y291bnQsIGVtcHR5SGFzaEl0ZXJhdG9yLCBFTlRSSUVTLCBlbnRyeVNldCwgS0VZUywga2V5U2V0LCBsb2FkRmFjdG9yLCBtb2RDb3VudCwgc2VyaWFsVmVyc2lvblVJRCwgdGFibGUsIHRocmVzaG9sZCwgdmFsdWVzLCBWQUxVRVM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjRmFzdEhhc2hNYXAoKSI+RmFzdEhhc2hNYXA8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb25zdHJ1Y3QgYSBhbiBlbXB0eSBtYXAuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjRmFzdEhhc2hNYXAoaW50KSI+RmFzdEhhc2hNYXA8L0E+PC9CPihpbnQmbmJzcDtjYXBhY2l0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhbiBlbXB0eSBtYXAgd2l0aCB0aGUgc3BlY2lmaWVkIGNhcGFjaXR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sI0Zhc3RIYXNoTWFwKGludCwgZmxvYXQpIj5GYXN0SGFzaE1hcDwvQT48L0I+KGludCZuYnNwO2NhcGFjaXR5LAorICAgICAgICAgICAgZmxvYXQmbmJzcDtmYWN0b3IpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb25zdHJ1Y3QgYW4gZW1wdHkgbWFwIHdpdGggdGhlIHNwZWNpZmllZCBjYXBhY2l0eSBhbmQgbG9hZCBmYWN0b3IuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjRmFzdEhhc2hNYXAoamF2YS51dGlsLk1hcCkiPkZhc3RIYXNoTWFwPC9BPjwvQj4oamF2YS51dGlsLk1hcCZuYnNwO21hcCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhIG5ldyBtYXAgd2l0aCB0aGUgc2FtZSBtYXBwaW5ncyBhcyB0aGUgc3BlY2lmaWVkIG1hcC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCNjbGVhcigpIj5jbGVhcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JlbW92ZSBhbGwgbWFwcGluZ3MgZnJvbSB0aGlzIG1hcC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjY2xvbmUoKSI+Y2xvbmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gYSBzaGFsbG93IGNvcHkgb2YgdGhpcyA8Y29kZT5GYXN0SGFzaE1hcDwvY29kZT4gaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sI2NvbnRhaW5zS2V5KGphdmEubGFuZy5PYmplY3QpIj5jb250YWluc0tleTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBtYXAgY29udGFpbnMgYSBtYXBwaW5nIGZvciB0aGUKKyBzcGVjaWZpZWQga2V5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCNjb250YWluc1ZhbHVlKGphdmEubGFuZy5PYmplY3QpIj5jb250YWluc1ZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgbWFwIGNvbnRhaW5zIG9uZSBvciBtb3JlIGtleXMgbWFwcGluZworIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5TZXQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sI2VudHJ5U2V0KCkiPmVudHJ5U2V0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGEgY29sbGVjdGlvbiB2aWV3IG9mIHRoZSBtYXBwaW5ncyBjb250YWluZWQgaW4gdGhpcyBtYXAuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sI2VxdWFscyhqYXZhLmxhbmcuT2JqZWN0KSI+ZXF1YWxzPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO28pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb21wYXJlIHRoZSBzcGVjaWZpZWQgb2JqZWN0IHdpdGggdGhpcyBsaXN0IGZvciBlcXVhbGl0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjZ2V0KGphdmEubGFuZy5PYmplY3QpIj5nZXQ8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSB2YWx1ZSB0byB3aGljaCB0aGlzIG1hcCBtYXBzIHRoZSBzcGVjaWZpZWQga2V5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCNnZXRGYXN0KCkiPmdldEZhc3Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCNoYXNoQ29kZSgpIj5oYXNoQ29kZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgaGFzaCBjb2RlIHZhbHVlIGZvciB0aGlzIG1hcC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjaXNFbXB0eSgpIj5pc0VtcHR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgbWFwIGNvbnRhaW5zIG5vIG1hcHBpbmdzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuU2V0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCNrZXlTZXQoKSI+a2V5U2V0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGEgc2V0IHZpZXcgb2YgdGhlIGtleXMgY29udGFpbmVkIGluIHRoaXMgbWFwLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCNwdXQoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPnB1dDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtrZXksCisgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7QXNzb2NpYXRlIHRoZSBzcGVjaWZpZWQgdmFsdWUgd2l0aCB0aGUgc3BlY2lmaWVkIGtleSBpbiB0aGlzIG1hcC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjcHV0QWxsKGphdmEudXRpbC5NYXApIj5wdXRBbGw8L0E+PC9CPihqYXZhLnV0aWwuTWFwJm5ic3A7aW4pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb3B5IGFsbCBvZiB0aGUgbWFwcGluZ3MgZnJvbSB0aGUgc3BlY2lmaWVkIG1hcCB0byB0aGlzIG9uZSwgcmVwbGFjaW5nCisgYW55IG1hcHBpbmdzIHdpdGggdGhlIHNhbWUga2V5cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjcmVtb3ZlKGphdmEubGFuZy5PYmplY3QpIj5yZW1vdmU8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVtb3ZlIGFueSBtYXBwaW5nIGZvciB0aGlzIGtleSwgYW5kIHJldHVybiBhbnkgcHJldmlvdXNseQorIG1hcHBlZCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjc2V0RmFzdChib29sZWFuKSI+c2V0RmFzdDwvQT48L0I+KGJvb2xlYW4mbmJzcDtmYXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjc2l6ZSgpIj5zaXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBudW1iZXIgb2Yga2V5LXZhbHVlIG1hcHBpbmdzIGluIHRoaXMgbWFwLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuQ29sbGVjdGlvbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwjdmFsdWVzKCkiPnZhbHVlczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhIGNvbGxlY3Rpb24gdmlldyBvZiB0aGUgdmFsdWVzIGNvbnRhaW5lZCBpbiB0aGlzIG1hcC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEudXRpbC5IYXNoTWFwIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLnV0aWwuSGFzaE1hcDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjYXBhY2l0eSwgZ2V0SGFzaEl0ZXJhdG9yLCBsb2FkRmFjdG9yLCByZWFkT2JqZWN0LCByZWhhc2gsIHdyaXRlT2JqZWN0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLkFic3RyYWN0TWFwIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLnV0aWwuQWJzdHJhY3RNYXA8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT50b1N0cmluZzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5hbGl6ZSwgZ2V0Q2xhc3MsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1hcCI+PCEtLSAtLT48L0E+PEgzPgorbWFwPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2hNYXAgPEI+bWFwPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgdW5kZXJseWluZyBtYXAgd2UgYXJlIG1hbmFnaW5nLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZhc3QiPjwhLS0gLS0+PC9BPjxIMz4KK2Zhc3Q8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmZhc3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkFyZSB3ZSBvcGVyYXRpbmcgaW4gImZhc3QiIG1vZGU/PC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkZhc3RIYXNoTWFwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0Zhc3RIYXNoTWFwPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RmFzdEhhc2hNYXA8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+Q29uc3RydWN0IGEgYW4gZW1wdHkgbWFwLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkZhc3RIYXNoTWFwKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK0Zhc3RIYXNoTWFwPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RmFzdEhhc2hNYXA8L0I+KGludCZuYnNwO2NhcGFjaXR5KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db25zdHJ1Y3QgYW4gZW1wdHkgbWFwIHdpdGggdGhlIHNwZWNpZmllZCBjYXBhY2l0eS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jYXBhY2l0eTwvQ09ERT4gLSBUaGUgaW5pdGlhbCBjYXBhY2l0eSBvZiB0aGUgZW1wdHkgbWFwPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJGYXN0SGFzaE1hcChpbnQsIGZsb2F0KSI+PCEtLSAtLT48L0E+PEgzPgorRmFzdEhhc2hNYXA8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5GYXN0SGFzaE1hcDwvQj4oaW50Jm5ic3A7Y2FwYWNpdHksCisgICAgICAgICAgICAgICAgICAgZmxvYXQmbmJzcDtmYWN0b3IpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNvbnN0cnVjdCBhbiBlbXB0eSBtYXAgd2l0aCB0aGUgc3BlY2lmaWVkIGNhcGFjaXR5IGFuZCBsb2FkIGZhY3Rvci48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jYXBhY2l0eTwvQ09ERT4gLSBUaGUgaW5pdGlhbCBjYXBhY2l0eSBvZiB0aGUgZW1wdHkgbWFwPEREPjxDT0RFPmZhY3RvcjwvQ09ERT4gLSBUaGUgbG9hZCBmYWN0b3Igb2YgdGhlIG5ldyBtYXA8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkZhc3RIYXNoTWFwKGphdmEudXRpbC5NYXApIj48IS0tIC0tPjwvQT48SDM+CitGYXN0SGFzaE1hcDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkZhc3RIYXNoTWFwPC9CPihqYXZhLnV0aWwuTWFwJm5ic3A7bWFwKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db25zdHJ1Y3QgYSBuZXcgbWFwIHdpdGggdGhlIHNhbWUgbWFwcGluZ3MgYXMgdGhlIHNwZWNpZmllZCBtYXAuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwPC9DT0RFPiAtIFRoZSBtYXAgd2hvc2UgbWFwcGluZ3MgYXJlIHRvIGJlIGNvcGllZDwvREw+Cis8L0REPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0RmFzdCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGYXN0PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRGYXN0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RmFzdChib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RmFzdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RmFzdDwvQj4oYm9vbGVhbiZuYnNwO2Zhc3QpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2xlYXIoKSI+PCEtLSAtLT48L0E+PEgzPgorY2xlYXI8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmNsZWFyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJlbW92ZSBhbGwgbWFwcGluZ3MgZnJvbSB0aGlzIG1hcC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmNsZWFyPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNsb25lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2Nsb25lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5jbG9uZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gYSBzaGFsbG93IGNvcHkgb2YgdGhpcyA8Y29kZT5GYXN0SGFzaE1hcDwvY29kZT4gaW5zdGFuY2UuCisgVGhlIGtleXMgYW5kIHZhbHVlcyB0aGVtc2VsdmVzIGFyZSBub3QgY29waWVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Y2xvbmU8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5IYXNoTWFwPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udGFpbnNLZXkoamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRhaW5zS2V5PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5jb250YWluc0tleTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgbWFwIGNvbnRhaW5zIGEgbWFwcGluZyBmb3IgdGhlCisgc3BlY2lmaWVkIGtleS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmNvbnRhaW5zS2V5PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBLZXkgdG8gYmUgc2VhcmNoZWQgZm9yPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb250YWluc1ZhbHVlKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+Citjb250YWluc1ZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5jb250YWluc1ZhbHVlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIG1hcCBjb250YWlucyBvbmUgb3IgbW9yZSBrZXlzIG1hcHBpbmcKKyB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Y29udGFpbnNWYWx1ZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLkhhc2hNYXA8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBWYWx1ZSB0byBiZSBzZWFyY2hlZCBmb3I8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVudHJ5U2V0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2VudHJ5U2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLlNldCA8Qj5lbnRyeVNldDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gYSBjb2xsZWN0aW9uIHZpZXcgb2YgdGhlIG1hcHBpbmdzIGNvbnRhaW5lZCBpbiB0aGlzIG1hcC4gIEVhY2gKKyBlbGVtZW50IGluIHRoZSByZXR1cm5lZCBjb2xsZWN0aW9uIGlzIGEgPGNvZGU+TWFwLkVudHJ5PC9jb2RlPi48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmVudHJ5U2V0PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVxdWFscyhqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorZXF1YWxzPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5lcXVhbHM8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtvKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db21wYXJlIHRoZSBzcGVjaWZpZWQgb2JqZWN0IHdpdGggdGhpcyBsaXN0IGZvciBlcXVhbGl0eS4gIFRoaXMKKyBpbXBsZW1lbnRhdGlvbiB1c2VzIGV4YWN0bHkgdGhlIGNvZGUgdGhhdCBpcyB1c2VkIHRvIGRlZmluZSB0aGUKKyBsaXN0IGVxdWFscyBmdW5jdGlvbiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlCisgPGNvZGU+TWFwLmVxdWFsczwvY29kZT4gbWV0aG9kLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZXF1YWxzPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQWJzdHJhY3RNYXA8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5vPC9DT0RFPiAtIE9iamVjdCB0byBiZSBjb21wYXJlZCB0byB0aGlzIGxpc3Q8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldChqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5nZXQ8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiB0aGUgdmFsdWUgdG8gd2hpY2ggdGhpcyBtYXAgbWFwcyB0aGUgc3BlY2lmaWVkIGtleS4gIFJldHVybnMKKyA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgbWFwIGNvbnRhaW5zIG5vIG1hcHBpbmcgZm9yIHRoaXMga2V5LCBvciBpZgorIHRoZXJlIGlzIGEgbWFwcGluZyB3aXRoIGEgdmFsdWUgb2YgPGNvZGU+bnVsbDwvY29kZT4uICBVc2UgdGhlCisgPGNvZGU+Y29udGFpbnNLZXkoKTwvY29kZT4gbWV0aG9kIHRvIGRpc2FtYmlndWF0ZSB0aGVzZSBjYXNlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLkhhc2hNYXA8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gS2V5IHdob3NlIHZhbHVlIGlzIHRvIGJlIHJldHVybmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJoYXNoQ29kZSgpIj48IS0tIC0tPjwvQT48SDM+CitoYXNoQ29kZTwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5oYXNoQ29kZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlIGhhc2ggY29kZSB2YWx1ZSBmb3IgdGhpcyBtYXAuICBUaGlzIGltcGxlbWVudGF0aW9uIHVzZXMKKyBleGFjdGx5IHRoZSBjb2RlIHRoYXQgaXMgdXNlZCB0byBkZWZpbmUgdGhlIGxpc3QgaGFzaCBmdW5jdGlvbiBpbiB0aGUKKyBkb2N1bWVudGF0aW9uIGZvciB0aGUgPGNvZGU+TWFwLmhhc2hDb2RlPC9jb2RlPiBtZXRob2QuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5oYXNoQ29kZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLkFic3RyYWN0TWFwPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNFbXB0eSgpIj48IS0tIC0tPjwvQT48SDM+Citpc0VtcHR5PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc0VtcHR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIG1hcCBjb250YWlucyBubyBtYXBwaW5ncy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmlzRW1wdHk8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5IYXNoTWFwPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ia2V5U2V0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2tleVNldDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5TZXQgPEI+a2V5U2V0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiBhIHNldCB2aWV3IG9mIHRoZSBrZXlzIGNvbnRhaW5lZCBpbiB0aGlzIG1hcC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmtleVNldDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLkhhc2hNYXA8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwdXQoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3B1dDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+cHV0PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+QXNzb2NpYXRlIHRoZSBzcGVjaWZpZWQgdmFsdWUgd2l0aCB0aGUgc3BlY2lmaWVkIGtleSBpbiB0aGlzIG1hcC4KKyBJZiB0aGUgbWFwIHByZXZpb3VzbHkgY29udGFpbmVkIGEgbWFwcGluZyBmb3IgdGhpcyBrZXksIHRoZSBvbGQKKyB2YWx1ZSBpcyByZXBsYWNlZCBhbmQgcmV0dXJuZWQuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wdXQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5IYXNoTWFwPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBrZXkgd2l0aCB3aGljaCB0aGUgdmFsdWUgaXMgdG8gYmUgYXNzb2NpYXRlZDxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBUaGUgdmFsdWUgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMga2V5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwdXRBbGwoamF2YS51dGlsLk1hcCkiPjwhLS0gLS0+PC9BPjxIMz4KK3B1dEFsbDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHV0QWxsPC9CPihqYXZhLnV0aWwuTWFwJm5ic3A7aW4pPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNvcHkgYWxsIG9mIHRoZSBtYXBwaW5ncyBmcm9tIHRoZSBzcGVjaWZpZWQgbWFwIHRvIHRoaXMgb25lLCByZXBsYWNpbmcKKyBhbnkgbWFwcGluZ3Mgd2l0aCB0aGUgc2FtZSBrZXlzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cHV0QWxsPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmluPC9DT0RFPiAtIE1hcCB3aG9zZSBtYXBwaW5ncyBhcmUgdG8gYmUgY29waWVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW1vdmUoamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbW92ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+cmVtb3ZlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZW1vdmUgYW55IG1hcHBpbmcgZm9yIHRoaXMga2V5LCBhbmQgcmV0dXJuIGFueSBwcmV2aW91c2x5CisgbWFwcGVkIHZhbHVlLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVtb3ZlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBLZXkgd2hvc2UgbWFwcGluZyBpcyB0byBiZSByZW1vdmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+c2l6ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlIG51bWJlciBvZiBrZXktdmFsdWUgbWFwcGluZ3MgaW4gdGhpcyBtYXAuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5zaXplPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbHVlcygpIj48IS0tIC0tPjwvQT48SDM+Cit2YWx1ZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuQ29sbGVjdGlvbiA8Qj52YWx1ZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIGEgY29sbGVjdGlvbiB2aWV3IG9mIHRoZSB2YWx1ZXMgY29udGFpbmVkIGluIHRoaXMgbWFwLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+dmFsdWVzPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRmFzdEhhc2hNYXAuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUyNzYwNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbApAQCAtMCwwICsxLDg2MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM3IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEZhc3RUcmVlTWFwCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGYXN0VHJlZU1hcC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7PEEgSFJFRj0iI2lubmVyX2NsYXNzZXNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLlRyZWVNYXAiPklOTkVSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9GT05UPgorPEJSPgorQ2xhc3MgIEZhc3RUcmVlTWFwPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YS51dGlsLkFic3RyYWN0TWFwCisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YS51dGlsLlRyZWVNYXAKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RUcmVlTWFwPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5sYW5nLkNsb25lYWJsZSwgamF2YS51dGlsLk1hcCwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmEudXRpbC5Tb3J0ZWRNYXA8L0REPgorPC9ETD4KKzxIUj4KKzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkF0IHNvbWUgcG9pbnQgYWZ0ZXIgU3RydXRzIDEuMCBmaW5hbCwgd2lsbCBiZSByZXBsYWNlZCBieQorICBhbiBlcXVpdmFsZW50IGNsYXNzIGluIHRoZSBKYWthcnRhIENvbW1vbnMgQ29sbGVjdGlvbnMgcGFja2FnZS48L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+RmFzdFRyZWVNYXA8L0I+PERUPmV4dGVuZHMgamF2YS51dGlsLlRyZWVNYXA8L0RMPgorCis8UD4KKzxwPkEgY3VzdG9taXplZCBpbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5qYXZhLnV0aWwuVHJlZU1hcDwvY29kZT4gZGVzaWduZWQKKyB0byBvcGVyYXRlIGluIGEgbXVsdGl0aHJlYWRlZCBlbnZpcm9ubWVudCB3aGVyZSB0aGUgbGFyZ2UgbWFqb3JpdHkgb2YKKyBtZXRob2QgY2FsbHMgYXJlIHJlYWQtb25seSwgaW5zdGVhZCBvZiBzdHJ1Y3R1cmFsIGNoYW5nZXMuICBXaGVuIG9wZXJhdGluZworIGluICJmYXN0IiBtb2RlLCByZWFkIGNhbGxzIGFyZSBub24tc3luY2hyb25pemVkIGFuZCB3cml0ZSBjYWxscyBwZXJmb3JtIHRoZQorIGZvbGxvd2luZyBzdGVwczo8L3A+CisgPHVsPgorIDxsaT5DbG9uZSB0aGUgZXhpc3RpbmcgY29sbGVjdGlvbgorIDxsaT5QZXJmb3JtIHRoZSBtb2RpZmljYXRpb24gb24gdGhlIGNsb25lCisgPGxpPlJlcGxhY2UgdGhlIGV4aXN0aW5nIGNvbGxlY3Rpb24gd2l0aCB0aGUgKG1vZGlmaWVkKSBjbG9uZQorIDwvdWw+CisgPHA+V2hlbiBmaXJzdCBjcmVhdGVkLCBvYmplY3RzIG9mIHRoaXMgY2xhc3MgZGVmYXVsdCB0byAic2xvdyIgbW9kZSwgd2hlcmUKKyBhbGwgYWNjZXNzZXMgb2YgYW55IHR5cGUgYXJlIHN5bmNocm9uaXplZCBidXQgbm8gY2xvbmluZyB0YWtlcyBwbGFjZS4gIFRoaXMKKyBpcyBhcHByb3ByaWF0ZSBmb3IgaW5pdGlhbGx5IHBvcHVsYXRpbmcgdGhlIGNvbGxlY3Rpb24sIGZvbGxvd2VkIGJ5IGEgc3dpdGNoCisgdG8gImZhc3QiIG1vZGUgKGJ5IGNhbGxpbmcgPGNvZGU+c2V0RmFzdCh0cnVlKTwvY29kZT4pIGFmdGVyIGluaXRpYWxpemF0aW9uCisgaXMgY29tcGxldGUuPC9wPgorCisgPHA+PHN0cm9uZz5OT1RFPC9zdHJvbmc+OiBJZiB5b3UgYXJlIGNyZWF0aW5nIGFuZCBhY2Nlc3NpbmcgYQorIDxjb2RlPlRyZWVNYXA8L2NvZGU+IG9ubHkgd2l0aGluIGEgc2luZ2xlIHRocmVhZCwgeW91IHNob3VsZCB1c2UKKyA8Y29kZT5qYXZhLnV0aWwuVHJlZU1hcDwvY29kZT4gZGlyZWN0bHkgKHdpdGggbm8gc3luY2hyb25pemF0aW9uKSwgZm9yCisgbWF4aW11bSBwZXJmb3JtYW5jZS48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0VHJlZU1hcCI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJpbm5lcl9jbGFzc2VzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEudXRpbC5UcmVlTWFwIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+SW5uZXIgY2xhc3NlcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLnV0aWwuVHJlZU1hcDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmphdmEudXRpbC5UcmVlTWFwLkVudHJ5PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImlubmVyX2NsYXNzZXNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLk1hcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPklubmVyIGNsYXNzZXMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS51dGlsLk1hcDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmphdmEudXRpbC5NYXAuRW50cnk8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCNmYXN0Ij5mYXN0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0FyZSB3ZSBvcGVyYXRpbmcgaW4gImZhc3QiIG1vZGU/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuVHJlZU1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjbWFwIj5tYXA8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIHVuZGVybHlpbmcgbWFwIHdlIGFyZSBtYW5hZ2luZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLlRyZWVNYXAiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS51dGlsLlRyZWVNYXA8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5CTEFDSywgY29tcGFyYXRvciwgRU5UUklFUywgZW50cnlTZXQsIEtFWVMsIGtleVNldCwgbW9kQ291bnQsIFJFRCwgcm9vdCwgc2VyaWFsVmVyc2lvblVJRCwgc2l6ZSwgdmFsdWVzLCBWQUxVRVM8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjRmFzdFRyZWVNYXAoKSI+RmFzdFRyZWVNYXA8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb25zdHJ1Y3QgYSBhbiBlbXB0eSBtYXAuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjRmFzdFRyZWVNYXAoamF2YS51dGlsLkNvbXBhcmF0b3IpIj5GYXN0VHJlZU1hcDwvQT48L0I+KGphdmEudXRpbC5Db21wYXJhdG9yJm5ic3A7Y29tcGFyYXRvcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhbiBlbXB0eSBtYXAgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbXBhcmF0b3IuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjRmFzdFRyZWVNYXAoamF2YS51dGlsLk1hcCkiPkZhc3RUcmVlTWFwPC9BPjwvQj4oamF2YS51dGlsLk1hcCZuYnNwO21hcCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhIG5ldyBtYXAgd2l0aCB0aGUgc2FtZSBtYXBwaW5ncyBhcyB0aGUgc3BlY2lmaWVkIG1hcCwKKyBzb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBrZXlzJ3MgbmF0dXJhbCBvcmRlcjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI0Zhc3RUcmVlTWFwKGphdmEudXRpbC5Tb3J0ZWRNYXApIj5GYXN0VHJlZU1hcDwvQT48L0I+KGphdmEudXRpbC5Tb3J0ZWRNYXAmbmJzcDttYXApPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb25zdHJ1Y3QgYSBuZXcgbWFwIHdpdGggdGhlIHNhbWUgbWFwcGluZ3MgYXMgdGhlIHNwZWNpZmllZCBtYXAsCisgc29ydGVkIGFjY29yZGluZyB0byB0aGUgc2FtZSBvcmRlcmluZzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2NsZWFyKCkiPmNsZWFyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVtb3ZlIGFsbCBtYXBwaW5ncyBmcm9tIHRoaXMgbWFwLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCNjbG9uZSgpIj5jbG9uZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhIHNoYWxsb3cgY29weSBvZiB0aGlzIDxjb2RlPkZhc3RUcmVlTWFwPC9jb2RlPiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLkNvbXBhcmF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2NvbXBhcmF0b3IoKSI+Y29tcGFyYXRvcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgY29tcGFyYXRvciB1c2VkIHRvIG9yZGVyIHRoaXMgbWFwLCBvciA8Y29kZT5udWxsPC9jb2RlPgorIGlmIHRoaXMgbWFwIHVzZXMgaXRzIGtleXMnIG5hdHVyYWwgb3JkZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2NvbnRhaW5zS2V5KGphdmEubGFuZy5PYmplY3QpIj5jb250YWluc0tleTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBtYXAgY29udGFpbnMgYSBtYXBwaW5nIGZvciB0aGUKKyBzcGVjaWZpZWQga2V5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCNjb250YWluc1ZhbHVlKGphdmEubGFuZy5PYmplY3QpIj5jb250YWluc1ZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgbWFwIGNvbnRhaW5zIG9uZSBvciBtb3JlIGtleXMgbWFwcGluZworIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5TZXQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2VudHJ5U2V0KCkiPmVudHJ5U2V0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGEgY29sbGVjdGlvbiB2aWV3IG9mIHRoZSBtYXBwaW5ncyBjb250YWluZWQgaW4gdGhpcyBtYXAuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2VxdWFscyhqYXZhLmxhbmcuT2JqZWN0KSI+ZXF1YWxzPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO28pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb21wYXJlIHRoZSBzcGVjaWZpZWQgb2JqZWN0IHdpdGggdGhpcyBsaXN0IGZvciBlcXVhbGl0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjZmlyc3RLZXkoKSI+Zmlyc3RLZXk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIGZpcnN0IChsb3dlc3QpIGtleSBjdXJyZW50bHkgaW4gdGhpcyBzb3J0ZWQgbWFwLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCNnZXQoamF2YS5sYW5nLk9iamVjdCkiPmdldDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHZhbHVlIHRvIHdoaWNoIHRoaXMgbWFwIG1hcHMgdGhlIHNwZWNpZmllZCBrZXkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2dldEZhc3QoKSI+Z2V0RmFzdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2hhc2hDb2RlKCkiPmhhc2hDb2RlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBoYXNoIGNvZGUgdmFsdWUgZm9yIHRoaXMgbWFwLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuU29ydGVkTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCNoZWFkTWFwKGphdmEubGFuZy5PYmplY3QpIj5oZWFkTWFwPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhIHZpZXcgb2YgdGhlIHBvcnRpb24gb2YgdGhpcyBtYXAgd2hvc2Uga2V5cyBhcmUgc3RyaWN0bHkKKyBsZXNzIHRoYW4gdGhlIHNwZWNpZmllZCBrZXkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI2lzRW1wdHkoKSI+aXNFbXB0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1Rlc3QgaWYgdGhpcyBsaXN0IGhhcyBubyBlbGVtZW50cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLlNldDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwja2V5U2V0KCkiPmtleVNldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhIHNldCB2aWV3IG9mIHRoZSBrZXlzIGNvbnRhaW5lZCBpbiB0aGlzIG1hcC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjbGFzdEtleSgpIj5sYXN0S2V5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBsYXN0IChoaWdoZXN0KSBrZXkgY3VycmVudGx5IGluIHRoaXMgc29ydGVkIG1hcC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjcHV0KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5wdXQ8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5LAorICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0Fzc29jaWF0ZSB0aGUgc3BlY2lmaWVkIHZhbHVlIHdpdGggdGhlIHNwZWNpZmllZCBrZXkgaW4gdGhpcyBtYXAuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI3B1dEFsbChqYXZhLnV0aWwuTWFwKSI+cHV0QWxsPC9BPjwvQj4oamF2YS51dGlsLk1hcCZuYnNwO2luKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29weSBhbGwgb2YgdGhlIG1hcHBpbmdzIGZyb20gdGhlIHNwZWNpZmllZCBtYXAgdG8gdGhpcyBvbmUsIHJlcGxhY2luZworIGFueSBtYXBwaW5ncyB3aXRoIHRoZSBzYW1lIGtleXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI3JlbW92ZShqYXZhLmxhbmcuT2JqZWN0KSI+cmVtb3ZlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JlbW92ZSBhbnkgbWFwcGluZyBmb3IgdGhpcyBrZXksIGFuZCByZXR1cm4gYW55IHByZXZpb3VzbHkKKyBtYXBwZWQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI3NldEZhc3QoYm9vbGVhbikiPnNldEZhc3Q8L0E+PC9CPihib29sZWFuJm5ic3A7ZmFzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI3NpemUoKSI+c2l6ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgbnVtYmVyIG9mIGtleS12YWx1ZSBtYXBwaW5ncyBpbiB0aGlzIG1hcC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLlNvcnRlZE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwjc3ViTWFwKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5zdWJNYXA8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7ZnJvbUtleSwKKyAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dG9LZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gYSB2aWV3IG9mIHRoZSBwb3J0aW9uIG9mIHRoaXMgbWFwIHdob3NlIGtleXMgYXJlIGluIHRoZQorIHJhbmdlIGZyb21LZXkgKGluY2x1c2l2ZSkgdG8gdG9LZXkgKGV4Y2x1c2l2ZSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5Tb3J0ZWRNYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI3RhaWxNYXAoamF2YS5sYW5nLk9iamVjdCkiPnRhaWxNYXA8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIGEgdmlldyBvZiB0aGUgcG9ydGlvbiBvZiB0aGlzIG1hcCB3aG9zZSBrZXlzIGFyZSBncmVhdGVyIHRoYW4KKyBvciBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIGtleS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLkNvbGxlY3Rpb248L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sI3ZhbHVlcygpIj52YWx1ZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gYSBjb2xsZWN0aW9uIHZpZXcgb2YgdGhlIHZhbHVlcyBjb250YWluZWQgaW4gdGhpcyBtYXAuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLnV0aWwuVHJlZU1hcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS51dGlsLlRyZWVNYXA8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5hZGRBbGxGb3JUcmVlU2V0LCBidWlsZEZyb21Tb3J0ZWQsIGJ1aWxkRnJvbVNvcnRlZCwgY29sb3JPZiwgY29tcGFyZSwgY29tcHV0ZVJlZExldmVsLCBkZWNyZW1lbnRTaXplLCBkZWxldGVFbnRyeSwgZmlyc3RFbnRyeSwgZml4QWZ0ZXJEZWxldGlvbiwgZml4QWZ0ZXJJbnNlcnRpb24sIGdldENlaWxFbnRyeSwgZ2V0RW50cnksIGdldFByZWNlZGluZ0VudHJ5LCBpbmNyZW1lbnRTaXplLCBrZXksIGxhc3RFbnRyeSwgbGVmdE9mLCBwYXJlbnRPZiwgcmVhZE9iamVjdCwgcmVhZFRyZWVTZXQsIHJpZ2h0T2YsIHJvdGF0ZUxlZnQsIHJvdGF0ZVJpZ2h0LCBzZXRDb2xvciwgc3VjY2Vzc29yLCBzd2FwUG9zaXRpb24sIHZhbEVxdWFscywgdmFsdWVTZWFyY2hOb25OdWxsLCB2YWx1ZVNlYXJjaE51bGwsIHdyaXRlT2JqZWN0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLkFic3RyYWN0TWFwIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLnV0aWwuQWJzdHJhY3RNYXA8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT50b1N0cmluZzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgZmluYWxpemUsIGdldENsYXNzLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJtYXAiPjwhLS0gLS0+PC9BPjxIMz4KK21hcDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5UcmVlTWFwIDxCPm1hcDwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIHVuZGVybHlpbmcgbWFwIHdlIGFyZSBtYW5hZ2luZy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJmYXN0Ij48IS0tIC0tPjwvQT48SDM+CitmYXN0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5mYXN0PC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5BcmUgd2Ugb3BlcmF0aW5nIGluICJmYXN0IiBtb2RlPzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJGYXN0VHJlZU1hcCgpIj48IS0tIC0tPjwvQT48SDM+CitGYXN0VHJlZU1hcDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkZhc3RUcmVlTWFwPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNvbnN0cnVjdCBhIGFuIGVtcHR5IG1hcC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJGYXN0VHJlZU1hcChqYXZhLnV0aWwuQ29tcGFyYXRvcikiPjwhLS0gLS0+PC9BPjxIMz4KK0Zhc3RUcmVlTWFwPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RmFzdFRyZWVNYXA8L0I+KGphdmEudXRpbC5Db21wYXJhdG9yJm5ic3A7Y29tcGFyYXRvcik8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+Q29uc3RydWN0IGFuIGVtcHR5IG1hcCB3aXRoIHRoZSBzcGVjaWZpZWQgY29tcGFyYXRvci48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb21wYXJhdG9yPC9DT0RFPiAtIFRoZSBjb21wYXJhdG9yIHRvIHVzZSBmb3Igb3JkZXJpbmcgdHJlZSBlbGVtZW50czwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRmFzdFRyZWVNYXAoamF2YS51dGlsLk1hcCkiPjwhLS0gLS0+PC9BPjxIMz4KK0Zhc3RUcmVlTWFwPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RmFzdFRyZWVNYXA8L0I+KGphdmEudXRpbC5NYXAmbmJzcDttYXApPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNvbnN0cnVjdCBhIG5ldyBtYXAgd2l0aCB0aGUgc2FtZSBtYXBwaW5ncyBhcyB0aGUgc3BlY2lmaWVkIG1hcCwKKyBzb3J0ZWQgYWNjb3JkaW5nIHRvIHRoZSBrZXlzJ3MgbmF0dXJhbCBvcmRlcjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcDwvQ09ERT4gLSBUaGUgbWFwIHdob3NlIG1hcHBpbmdzIGFyZSB0byBiZSBjb3BpZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkZhc3RUcmVlTWFwKGphdmEudXRpbC5Tb3J0ZWRNYXApIj48IS0tIC0tPjwvQT48SDM+CitGYXN0VHJlZU1hcDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkZhc3RUcmVlTWFwPC9CPihqYXZhLnV0aWwuU29ydGVkTWFwJm5ic3A7bWFwKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db25zdHJ1Y3QgYSBuZXcgbWFwIHdpdGggdGhlIHNhbWUgbWFwcGluZ3MgYXMgdGhlIHNwZWNpZmllZCBtYXAsCisgc29ydGVkIGFjY29yZGluZyB0byB0aGUgc2FtZSBvcmRlcmluZzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcDwvQ09ERT4gLSBUaGUgbWFwIHdob3NlIG1hcHBpbmdzIGFyZSB0byBiZSBjb3BpZWQ8L0RMPgorPC9ERD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEZhc3QoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmFzdDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0RmFzdDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZhc3QoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZhc3Q8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZhc3Q8L0I+KGJvb2xlYW4mbmJzcDtmYXN0KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNsZWFyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NsZWFyPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5jbGVhcjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZW1vdmUgYWxsIG1hcHBpbmdzIGZyb20gdGhpcyBtYXAuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5jbGVhcjwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLlRyZWVNYXA8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjbG9uZSgpIj48IS0tIC0tPjwvQT48SDM+CitjbG9uZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Y2xvbmU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIGEgc2hhbGxvdyBjb3B5IG9mIHRoaXMgPGNvZGU+RmFzdFRyZWVNYXA8L2NvZGU+IGluc3RhbmNlLgorIFRoZSBrZXlzIGFuZCB2YWx1ZXMgdGhlbXNlbHZlcyBhcmUgbm90IGNvcGllZC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmNsb25lPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuVHJlZU1hcDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbXBhcmF0b3IoKSI+PCEtLSAtLT48L0E+PEgzPgorY29tcGFyYXRvcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5Db21wYXJhdG9yIDxCPmNvbXBhcmF0b3I8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSBjb21wYXJhdG9yIHVzZWQgdG8gb3JkZXIgdGhpcyBtYXAsIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgaWYgdGhpcyBtYXAgdXNlcyBpdHMga2V5cycgbmF0dXJhbCBvcmRlci48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmNvbXBhcmF0b3I8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5UcmVlTWFwPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udGFpbnNLZXkoamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRhaW5zS2V5PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5jb250YWluc0tleTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgbWFwIGNvbnRhaW5zIGEgbWFwcGluZyBmb3IgdGhlCisgc3BlY2lmaWVkIGtleS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmNvbnRhaW5zS2V5PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuVHJlZU1hcDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBLZXkgdG8gYmUgc2VhcmNoZWQgZm9yPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb250YWluc1ZhbHVlKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+Citjb250YWluc1ZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5jb250YWluc1ZhbHVlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIG1hcCBjb250YWlucyBvbmUgb3IgbW9yZSBrZXlzIG1hcHBpbmcKKyB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Y29udGFpbnNWYWx1ZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLlRyZWVNYXA8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBWYWx1ZSB0byBiZSBzZWFyY2hlZCBmb3I8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVudHJ5U2V0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2VudHJ5U2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLlNldCA8Qj5lbnRyeVNldDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gYSBjb2xsZWN0aW9uIHZpZXcgb2YgdGhlIG1hcHBpbmdzIGNvbnRhaW5lZCBpbiB0aGlzIG1hcC4gIEVhY2gKKyBlbGVtZW50IGluIHRoZSByZXR1cm5lZCBjb2xsZWN0aW9uIGlzIGEgPGNvZGU+TWFwLkVudHJ5PC9jb2RlPi48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmVudHJ5U2V0PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuVHJlZU1hcDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVxdWFscyhqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorZXF1YWxzPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5lcXVhbHM8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtvKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db21wYXJlIHRoZSBzcGVjaWZpZWQgb2JqZWN0IHdpdGggdGhpcyBsaXN0IGZvciBlcXVhbGl0eS4gIFRoaXMKKyBpbXBsZW1lbnRhdGlvbiB1c2VzIGV4YWN0bHkgdGhlIGNvZGUgdGhhdCBpcyB1c2VkIHRvIGRlZmluZSB0aGUKKyBsaXN0IGVxdWFscyBmdW5jdGlvbiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlCisgPGNvZGU+TWFwLmVxdWFsczwvY29kZT4gbWV0aG9kLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZXF1YWxzPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQWJzdHJhY3RNYXA8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5vPC9DT0RFPiAtIE9iamVjdCB0byBiZSBjb21wYXJlZCB0byB0aGlzIGxpc3Q8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpcnN0S2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpcnN0S2V5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5maXJzdEtleTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlIGZpcnN0IChsb3dlc3QpIGtleSBjdXJyZW50bHkgaW4gdGhpcyBzb3J0ZWQgbWFwLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Zmlyc3RLZXk8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5UcmVlTWFwPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0KGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPmdldDwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSB2YWx1ZSB0byB3aGljaCB0aGlzIG1hcCBtYXBzIHRoZSBzcGVjaWZpZWQga2V5LiAgUmV0dXJucworIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSBtYXAgY29udGFpbnMgbm8gbWFwcGluZyBmb3IgdGhpcyBrZXksIG9yIGlmCisgdGhlcmUgaXMgYSBtYXBwaW5nIHdpdGggYSB2YWx1ZSBvZiA8Y29kZT5udWxsPC9jb2RlPi4gIFVzZSB0aGUKKyA8Y29kZT5jb250YWluc0tleSgpPC9jb2RlPiBtZXRob2QgdG8gZGlzYW1iaWd1YXRlIHRoZXNlIGNhc2VzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuVHJlZU1hcDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBLZXkgd2hvc2UgdmFsdWUgaXMgdG8gYmUgcmV0dXJuZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Imhhc2hDb2RlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2hhc2hDb2RlPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmhhc2hDb2RlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiB0aGUgaGFzaCBjb2RlIHZhbHVlIGZvciB0aGlzIG1hcC4gIFRoaXMgaW1wbGVtZW50YXRpb24gdXNlcworIGV4YWN0bHkgdGhlIGNvZGUgdGhhdCBpcyB1c2VkIHRvIGRlZmluZSB0aGUgbGlzdCBoYXNoIGZ1bmN0aW9uIGluIHRoZQorIGRvY3VtZW50YXRpb24gZm9yIHRoZSA8Y29kZT5NYXAuaGFzaENvZGU8L2NvZGU+IG1ldGhvZC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmhhc2hDb2RlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuQWJzdHJhY3RNYXA8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJoZWFkTWFwKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitoZWFkTWFwPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLlNvcnRlZE1hcCA8Qj5oZWFkTWFwPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gYSB2aWV3IG9mIHRoZSBwb3J0aW9uIG9mIHRoaXMgbWFwIHdob3NlIGtleXMgYXJlIHN0cmljdGx5CisgbGVzcyB0aGFuIHRoZSBzcGVjaWZpZWQga2V5LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+aGVhZE1hcDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLlRyZWVNYXA8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gS2V5IGhpZ2hlciB0aGFuIGFueSBpbiB0aGUgcmV0dXJuZWQgbWFwPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc0VtcHR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzRW1wdHk8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzRW1wdHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGVzdCBpZiB0aGlzIGxpc3QgaGFzIG5vIGVsZW1lbnRzLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+aXNFbXB0eTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLkFic3RyYWN0TWFwPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ia2V5U2V0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2tleVNldDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5TZXQgPEI+a2V5U2V0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiBhIHNldCB2aWV3IG9mIHRoZSBrZXlzIGNvbnRhaW5lZCBpbiB0aGlzIG1hcC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmtleVNldDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLlRyZWVNYXA8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsYXN0S2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2xhc3RLZXk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPmxhc3RLZXk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSBsYXN0IChoaWdoZXN0KSBrZXkgY3VycmVudGx5IGluIHRoaXMgc29ydGVkIG1hcC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmxhc3RLZXk8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5UcmVlTWFwPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHV0KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitwdXQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPnB1dDwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkFzc29jaWF0ZSB0aGUgc3BlY2lmaWVkIHZhbHVlIHdpdGggdGhlIHNwZWNpZmllZCBrZXkgaW4gdGhpcyBtYXAuCisgSWYgdGhlIG1hcCBwcmV2aW91c2x5IGNvbnRhaW5lZCBhIG1hcHBpbmcgZm9yIHRoaXMga2V5LCB0aGUgb2xkCisgdmFsdWUgaXMgcmVwbGFjZWQgYW5kIHJldHVybmVkLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cHV0PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuVHJlZU1hcDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBUaGUga2V5IHdpdGggd2hpY2ggdGhlIHZhbHVlIGlzIHRvIGJlIGFzc29jaWF0ZWQ8REQ+PENPREU+dmFsdWU8L0NPREU+IC0gVGhlIHZhbHVlIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGtleTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHV0QWxsKGphdmEudXRpbC5NYXApIj48IS0tIC0tPjwvQT48SDM+CitwdXRBbGw8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnB1dEFsbDwvQj4oamF2YS51dGlsLk1hcCZuYnNwO2luKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db3B5IGFsbCBvZiB0aGUgbWFwcGluZ3MgZnJvbSB0aGUgc3BlY2lmaWVkIG1hcCB0byB0aGlzIG9uZSwgcmVwbGFjaW5nCisgYW55IG1hcHBpbmdzIHdpdGggdGhlIHNhbWUga2V5cy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnB1dEFsbDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLlRyZWVNYXA8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5pbjwvQ09ERT4gLSBNYXAgd2hvc2UgbWFwcGluZ3MgYXJlIHRvIGJlIGNvcGllZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPnJlbW92ZTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmVtb3ZlIGFueSBtYXBwaW5nIGZvciB0aGlzIGtleSwgYW5kIHJldHVybiBhbnkgcHJldmlvdXNseQorIG1hcHBlZCB2YWx1ZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbW92ZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLlRyZWVNYXA8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gS2V5IHdob3NlIG1hcHBpbmcgaXMgdG8gYmUgcmVtb3ZlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2l6ZSgpIj48IS0tIC0tPjwvQT48SDM+CitzaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPnNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSBudW1iZXIgb2Yga2V5LXZhbHVlIG1hcHBpbmdzIGluIHRoaXMgbWFwLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+c2l6ZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLlRyZWVNYXA8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzdWJNYXAoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3N1Yk1hcDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5Tb3J0ZWRNYXAgPEI+c3ViTWFwPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7ZnJvbUtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dG9LZXkpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiBhIHZpZXcgb2YgdGhlIHBvcnRpb24gb2YgdGhpcyBtYXAgd2hvc2Uga2V5cyBhcmUgaW4gdGhlCisgcmFuZ2UgZnJvbUtleSAoaW5jbHVzaXZlKSB0byB0b0tleSAoZXhjbHVzaXZlKS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnN1Yk1hcDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS51dGlsLlRyZWVNYXA8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mcm9tS2V5PC9DT0RFPiAtIExvd2VyIGxpbWl0IG9mIGtleXMgZm9yIHRoZSByZXR1cm5lZCBtYXA8REQ+PENPREU+dG9LZXk8L0NPREU+IC0gVXBwZXIgbGltaXQgb2Yga2V5cyBmb3IgdGhlIHJldHVybmVkIG1hcDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGFpbE1hcChqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgordGFpbE1hcDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5Tb3J0ZWRNYXAgPEI+dGFpbE1hcDwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIGEgdmlldyBvZiB0aGUgcG9ydGlvbiBvZiB0aGlzIG1hcCB3aG9zZSBrZXlzIGFyZSBncmVhdGVyIHRoYW4KKyBvciBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIGtleS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnRhaWxNYXA8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEudXRpbC5UcmVlTWFwPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIEtleSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYW55IGluIHRoZSByZXR1cm5lZCBtYXA8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbHVlcygpIj48IS0tIC0tPjwvQT48SDM+Cit2YWx1ZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuQ29sbGVjdGlvbiA8Qj52YWx1ZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIGEgY29sbGVjdGlvbiB2aWV3IG9mIHRoZSB2YWx1ZXMgY29udGFpbmVkIGluIHRoaXMgbWFwLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+dmFsdWVzPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLnV0aWwuVHJlZU1hcDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZhc3RUcmVlTWFwLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDs8QSBIUkVGPSIjaW5uZXJfY2xhc3Nlc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLnV0aWwuVHJlZU1hcCI+SU5ORVI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhjN2NkYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbApAQCAtMCwwICsxLDEwMjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNyBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBHZW5lcmljQ29ubmVjdGlvbgorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgR2VuZXJpY0Nvbm5lY3Rpb248L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkdlbmVyaWNDb25uZWN0aW9uPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5zcWwuQ29ubmVjdGlvbjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5HZW5lcmljQ29ubmVjdGlvbjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5zcWwuQ29ubmVjdGlvbjwvREw+CisKKzxQPgorR2VuZXJpYyB3cmFwcGVyIGltcGxlbWVudGF0aW9uIG9mIGEgPHN0cm9uZz5Db25uZWN0aW9uPC9zdHJvbmc+IHRoYXQKKyB3b3JrcyB3aXRoIDxjb2RlPkdlbmVyaWNEYXRhU291cmNlPC9jb2RlPiB0byB3cmFwIGNvbm5lY3Rpb25zIGZvciBhbnkKKyBKREJDIGRyaXZlci4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuLCBUZWQgSHVzdGVkPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI2F1dG9Db21taXQiPmF1dG9Db21taXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGluaXRpYWwgYXV0by1jb21taXQgc3RhdGUgdG8gd2hpY2ggd2Ugc2hvdWxkIHJldHVybiBhZnRlciByZWxlYXNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjY2F0YWxvZyI+Y2F0YWxvZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgaW5pdGlhbCBjYXRhbG9nIHRvIHdoaWNoIHdlIHNob3VsZCByZXR1cm4gYWZ0ZXIgcmVsZWFzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNjbG9zZWQiPmNsb3NlZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY2xvc2VkIGZsYWcgZm9yIHRoaXMgd3JhcHBlZCBjb25uZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5zcWwuQ29ubmVjdGlvbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjY29ubiI+Y29ubjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgQ29ubmVjdGlvbiB0aGF0IGlzIGJlaW5nIHdyYXBwZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI2xldmVsIj5sZXZlbDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgaW5pdGlhbCB0cmFuc2FjdGlvbiBpc29sYXRpb24gbGV2ZWwgdG8gd2hpY2ggd2Ugc2hvdWxkIHJldHVybgorIGFmdGVyIHJlbGVhc2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNtYXAiPm1hcDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgaW5pdGlhbCB0eXBlIG1hcCB0byB3aGljaCB3ZSBzaG91bGQgcmV0dXJuIGFmdGVyIHJlbGVhc2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNyZWFkT25seSI+cmVhZE9ubHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGluaXRpYWwgcmVhZC1vbmx5IHN0YXRlIHRvIHdoaWNoIHdlIHNob3VsZCByZXR1cm4gYWZ0ZXIgcmVsZWFzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNzb3VyY2UiPnNvdXJjZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgR2VuZXJpY0RhdGFTb3VyY2UgdGhhdCBvd25zIHRoaXMgY29ubmVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNTUUxFWENFUFRJT05fQ0xPU0VEIj5TUUxFWENFUFRJT05fQ0xPU0VEPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLnNxbC5Db25uZWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZhLnNxbC5Db25uZWN0aW9uPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+VFJBTlNBQ1RJT05fTk9ORSwgVFJBTlNBQ1RJT05fUkVBRF9DT01NSVRURUQsIFRSQU5TQUNUSU9OX1JFQURfVU5DT01NSVRURUQsIFRSQU5TQUNUSU9OX1JFUEVBVEFCTEVfUkVBRCwgVFJBTlNBQ1RJT05fU0VSSUFMSVpBQkxFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI0dlbmVyaWNDb25uZWN0aW9uKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuR2VuZXJpY0RhdGFTb3VyY2UsIGphdmEuc3FsLkNvbm5lY3Rpb24sIGJvb2xlYW4sIGJvb2xlYW4pIj5HZW5lcmljQ29ubmVjdGlvbjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+Jm5ic3A7c291cmNlLAorICAgICAgICAgICAgICAgICAgamF2YS5zcWwuQ29ubmVjdGlvbiZuYnNwO2Nvbm4sCisgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7YXV0b0NvbW1pdCwKKyAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtyZWFkT25seSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBHZW5lcmljQ29ubmVjdGlvbiB3cmFwcGluZyB0aGUgc3BlY2lmaWVkIGNvbm5lY3Rpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjY2xlYXJXYXJuaW5ncygpIj5jbGVhcldhcm5pbmdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xlYXIgYWxsIHdhcm5pbmdzIHJlcG9ydGVkIGZvciB0aGlzIENvbm5lY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI2Nsb3NlKCkiPmNsb3NlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoaXMgd3JhcHBlZCBDb25uZWN0aW9uIHRvIG91ciBkYXRhIHNvdXJjZSBjb25uZWN0aW9uIHBvb2wuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI2NvbW1pdCgpIj5jb21taXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNYWtlIGFsbCBjaGFuZ2VzIG1hZGUgc2luY2UgdGhlIHByZXZpb3VzIGNvbW1pdCBvciByb2xsYmFjaworIHBlcm1hbmVudCwgYW5kIHJlbGVhc2VzIGFueSBkYXRhYmFzZSBsb2NrcyBjdXJyZW50bHkgaGVsZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5zcWwuU3RhdGVtZW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNjcmVhdGVTdGF0ZW1lbnQoKSI+Y3JlYXRlU3RhdGVtZW50PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGEgPGNvZGU+U3RhdGVtZW50PC9jb2RlPiBmb3Igc2VuZGluZyBTUUwgc3RhdGVtZW50cyB0byB0aGUKKyBkYXRhYmFzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5zcWwuU3RhdGVtZW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNjcmVhdGVTdGF0ZW1lbnQoaW50LCBpbnQpIj5jcmVhdGVTdGF0ZW1lbnQ8L0E+PC9CPihpbnQmbmJzcDtyZXN1bHRTZXRUeXBlLAorICAgICAgICAgICAgICAgIGludCZuYnNwO3Jlc3VsdFNldENvbmN1cnJlbmN5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7KEpEQkMgMi4wKSBDcmVhdGUgYSBTdGF0ZW1lbnQgdGhhdCB3aWxsIGNyZWF0ZSBhIFJlc3VsdFNldCBvZiB0aGUKKyBzcGVjaWZpZWQgdHlwZSBhbmQgY29uY3VycmVuY3kuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI2dldEF1dG9Db21taXQoKSI+Z2V0QXV0b0NvbW1pdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgY3VycmVudCBhdXRvLWNvbW1pdCBzdGF0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjZ2V0Q2F0YWxvZygpIj5nZXRDYXRhbG9nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBjdXJyZW50IGNhdGFsb2cgbmFtZSBmb3IgdGhpcyBDb25uZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4ocGFja2FnZSBwcml2YXRlKSAmbmJzcDtqYXZhLnNxbC5Db25uZWN0aW9uPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNnZXRDb25uZWN0aW9uKCkiPmdldENvbm5lY3Rpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGFjdHVhbCBjb25uZWN0aW9uIHRoYXQgd2UgYXJlIHdyYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4ocGFja2FnZSBwcml2YXRlKSAmbmJzcDtqYXZheC5zcWwuRGF0YVNvdXJjZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjZ2V0RGF0YVNvdXJjZSgpIj5nZXREYXRhU291cmNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBkYXRhIHNvdXJjZSB0aGF0IG93bnMgdGhpcyBjb25uZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnNxbC5EYXRhYmFzZU1ldGFEYXRhPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNnZXRNZXRhRGF0YSgpIj5nZXRNZXRhRGF0YTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgbWV0YWRhdGEgcmVnYXJkaW5nIHRoaXMgY29ubmVjdGlvbidzIGRhdGFiYXNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI2dldFRyYW5zYWN0aW9uSXNvbGF0aW9uKCkiPmdldFRyYW5zYWN0aW9uSXNvbGF0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoaXMgQ29ubmVjdGlvbidzIGN1cnJlbnQgdHJhbnNhY3Rpb24gaXNvbGF0aW9uIGxldmVsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNnZXRUeXBlTWFwKCkiPmdldFR5cGVNYXA8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsoSkRCQyAyLjApIFJldHVybiB0aGUgdHlwZSBtYXAgZm9yIHRoaXMgY29ubmVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5zcWwuU1FMV2FybmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjZ2V0V2FybmluZ3MoKSI+Z2V0V2FybmluZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZpcnN0IHdhcm5pbmcgcmVwb3J0ZWQgYnkgY2FsbHMgdG8gdGhpcyBDb25uZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNpc0Nsb3NlZCgpIj5pc0Nsb3NlZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIENvbm5lY3Rpb24gaXMgY2xvc2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNpc1JlYWRPbmx5KCkiPmlzUmVhZE9ubHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBDb25uZWN0aW9uIGlzIGluIHJlYWQtb25seSBtb2RlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNuYXRpdmVTUUwoamF2YS5sYW5nLlN0cmluZykiPm5hdGl2ZVNRTDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzcWwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb252ZXJ0IHRoZSBnaXZlbiBTUUwgc3RhdGVtZW50IGludG8gdGhlIHN5c3RlbSdzIG5hdGl2ZSBTUUwgZ3JhbW1lci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5zcWwuQ2FsbGFibGVTdGF0ZW1lbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI3ByZXBhcmVDYWxsKGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlQ2FsbDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzcWwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYSA8Y29kZT5DYWxsYWJsZVN0YXRlbWVudDwvY29kZT4gb2JqZWN0IGZvciBjYWxsaW5nIGRhdGFiYXNlCisgc3RvcmVkIHByb2NlZHVyZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEuc3FsLkNhbGxhYmxlU3RhdGVtZW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNwcmVwYXJlQ2FsbChqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGludCkiPnByZXBhcmVDYWxsPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NxbCwKKyAgICAgICAgICAgIGludCZuYnNwO3Jlc3VsdFNldFR5cGUsCisgICAgICAgICAgICBpbnQmbmJzcDtyZXN1bHRTZXRDb25jdXJyZW5jeSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyhKREJDIDIuMCkgQ3JlYXRlIGEgQ2FsbGFibGVTdGF0ZW1lbnQgb2JqZWN0IHRoYXQgd2lsbCBnZW5lcmF0ZQorIFJlc3VsdFNldCBvYmplY3RzIHdpdGggdGhlIGdpdmVuIHR5cGUgYW5kIGNvbmN1cnJlbmN5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnNxbC5QcmVwYXJlZFN0YXRlbWVudDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjcHJlcGFyZVN0YXRlbWVudChqYXZhLmxhbmcuU3RyaW5nKSI+cHJlcGFyZVN0YXRlbWVudDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzcWwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYSA8Y29kZT5QcmVwYXJlZFN0YXRlbWVudDwvY29kZT4gb2JqZWN0IGZvciBzZW5kaW5nCisgcGFyYW1ldGVyaXplZCBTUUwgc3RhdGVtZW50cyB0byB0aGUgZGF0YWJhc2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEuc3FsLlByZXBhcmVkU3RhdGVtZW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNwcmVwYXJlU3RhdGVtZW50KGphdmEubGFuZy5TdHJpbmcsIGludCwgaW50KSI+cHJlcGFyZVN0YXRlbWVudDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzcWwsCisgICAgICAgICAgICAgICAgIGludCZuYnNwO3Jlc3VsdFNldFR5cGUsCisgICAgICAgICAgICAgICAgIGludCZuYnNwO3Jlc3VsdFNldENvbmN1cnJlbmN5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7KEpEQkMgMi4wKSBDcmVhdGUgYSBQcmVwYXJlZFN0YXRlbWVudCBvYmplY3QgdGhhdCB3aWxsIGdlbmVyYXRlCisgUmVzdWx0U2V0IG9iamVjdHMgd2l0aCB0aGUgZ2l2ZW4gdHlwZSBhbmQgY29uY3VycmVuY3kuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI3JvbGxiYWNrKCkiPnJvbGxiYWNrPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RHJvcCBhbGwgY2hhbmdlcyBtYWRlIHNpbmNlIHRoZSBwcmV2aW91cyBjb21taXQgb3Igcm9sbGJhY2suPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI3NldEF1dG9Db21taXQoYm9vbGVhbikiPnNldEF1dG9Db21taXQ8L0E+PC9CPihib29sZWFuJm5ic3A7YXV0b0NvbW1pdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhpcyBjb25uZWN0aW9uJ3MgYXV0by1jb21taXQgbW9kZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjc2V0Q2F0YWxvZyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q2F0YWxvZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjYXRhbG9nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBjYXRhbG9nIG5hbWUgZm9yIHRoaXMgQ29ubmVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+KHBhY2thZ2UgcHJpdmF0ZSkgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjc2V0Q2xvc2VkKGJvb2xlYW4pIj5zZXRDbG9zZWQ8L0E+PC9CPihib29sZWFuJm5ic3A7Y2xvc2VkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBjbG9zZWQgc3RhdHVzIG9mIHRoaXMgY29ubmVjdGlvbiB3cmFwcGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCNzZXRSZWFkT25seShib29sZWFuKSI+c2V0UmVhZE9ubHk8L0E+PC9CPihib29sZWFuJm5ic3A7cmVhZE9ubHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHJlYWQtb25seSBtb2RlIG9mIHRoaXMgY29ubmVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwjc2V0VHJhbnNhY3Rpb25Jc29sYXRpb24oaW50KSI+c2V0VHJhbnNhY3Rpb25Jc29sYXRpb248L0E+PC9CPihpbnQmbmJzcDtsZXZlbCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgdHJhbnNhY3Rpb24gaXNvbGF0aW9uIGxldmVsIGZvciB0aGlzIENvbm5lY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sI3NldFR5cGVNYXAoamF2YS51dGlsLk1hcCkiPnNldFR5cGVNYXA8L0E+PC9CPihqYXZhLnV0aWwuTWFwJm5ic3A7bWFwKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7KEpEQkMgMi4wKSBTZXQgdGhlIHR5cGUgbWFwIGZvciB0aGlzIGNvbm5lY3Rpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJTUUxFWENFUFRJT05fQ0xPU0VEIj48IS0tIC0tPjwvQT48SDM+CitTUUxFWENFUFRJT05fQ0xPU0VEPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPlNRTEVYQ0VQVElPTl9DTE9TRUQ8L0I+PC9QUkU+Cis8REw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhdXRvQ29tbWl0Ij48IS0tIC0tPjwvQT48SDM+CithdXRvQ29tbWl0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5hdXRvQ29tbWl0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBpbml0aWFsIGF1dG8tY29tbWl0IHN0YXRlIHRvIHdoaWNoIHdlIHNob3VsZCByZXR1cm4gYWZ0ZXIgcmVsZWFzZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJjYXRhbG9nIj48IS0tIC0tPjwvQT48SDM+CitjYXRhbG9nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jYXRhbG9nPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBpbml0aWFsIGNhdGFsb2cgdG8gd2hpY2ggd2Ugc2hvdWxkIHJldHVybiBhZnRlciByZWxlYXNlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNsb3NlZCI+PCEtLSAtLT48L0E+PEgzPgorY2xvc2VkPC9IMz4KKzxQUkU+Citwcml2YXRlIGJvb2xlYW4gPEI+Y2xvc2VkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjbG9zZWQgZmxhZyBmb3IgdGhpcyB3cmFwcGVkIGNvbm5lY3Rpb24uPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29ubiI+PCEtLSAtLT48L0E+PEgzPgorY29ubjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEuc3FsLkNvbm5lY3Rpb24gPEI+Y29ubjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgQ29ubmVjdGlvbiB0aGF0IGlzIGJlaW5nIHdyYXBwZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGV2ZWwiPjwhLS0gLS0+PC9BPjxIMz4KK2xldmVsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPmxldmVsPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBpbml0aWFsIHRyYW5zYWN0aW9uIGlzb2xhdGlvbiBsZXZlbCB0byB3aGljaCB3ZSBzaG91bGQgcmV0dXJuCisgYWZ0ZXIgcmVsZWFzZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXAiPjwhLS0gLS0+PC9BPjxIMz4KK21hcDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5NYXAgPEI+bWFwPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBpbml0aWFsIHR5cGUgbWFwIHRvIHdoaWNoIHdlIHNob3VsZCByZXR1cm4gYWZ0ZXIgcmVsZWFzZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWFkT25seSI+PCEtLSAtLT48L0E+PEgzPgorcmVhZE9ubHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnJlYWRPbmx5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBpbml0aWFsIHJlYWQtb25seSBzdGF0ZSB0byB3aGljaCB3ZSBzaG91bGQgcmV0dXJuIGFmdGVyIHJlbGVhc2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic291cmNlIj48IS0tIC0tPjwvQT48SDM+Citzb3VyY2U8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPiA8Qj5zb3VyY2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEdlbmVyaWNEYXRhU291cmNlIHRoYXQgb3ducyB0aGlzIGNvbm5lY3Rpb24uPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkdlbmVyaWNDb25uZWN0aW9uKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuR2VuZXJpY0RhdGFTb3VyY2UsIGphdmEuc3FsLkNvbm5lY3Rpb24sIGJvb2xlYW4sIGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitHZW5lcmljQ29ubmVjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkdlbmVyaWNDb25uZWN0aW9uPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPiZuYnNwO3NvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnNxbC5Db25uZWN0aW9uJm5ic3A7Y29ubiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7YXV0b0NvbW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7cmVhZE9ubHkpCisgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5zcWwuU1FMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IEdlbmVyaWNDb25uZWN0aW9uIHdyYXBwaW5nIHRoZSBzcGVjaWZpZWQgY29ubmVjdGlvbi48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zb3VyY2U8L0NPREU+IC0gVGhlIGRhdGEgc291cmNlIHRoYXQgb3ducyB0aGlzIGNvbm5lY3Rpb248REQ+PENPREU+Y29ubjwvQ09ERT4gLSBUaGUgY29ubmVjdGlvbiB0byB3cmFwPEREPjxDT0RFPmF1dG9Db21taXQ8L0NPREU+IC0gRGVzaXJlZCBhdXRvLWNvbW1pdCBzdGF0ZSBmb3IgdGhpcyBjb25uZWN0aW9uPEREPjxDT0RFPnJlYWRPbmx5PC9DT0RFPiAtIERlc2lyZWQgcmVhZC1vbmx5IHN0YXRlIGZvciB0aGlzIGNvbm5lY3Rpb248RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5zcWwuU1FMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIFNRTCBwcm9jZXNzaW5nIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY2xlYXJXYXJuaW5ncygpIj48IS0tIC0tPjwvQT48SDM+CitjbGVhcldhcm5pbmdzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5jbGVhcldhcm5pbmdzPC9CPigpCisgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNsZWFyIGFsbCB3YXJuaW5ncyByZXBvcnRlZCBmb3IgdGhpcyBDb25uZWN0aW9uLjxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPmNsZWFyV2FybmluZ3M8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZhLnNxbC5Db25uZWN0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLnNxbC5TUUxFeGNlcHRpb248L0NPREU+IC0gaWYgYSBkYXRhYmFzZSBhY2Nlc3MgZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjbG9zZSgpIj48IS0tIC0tPjwvQT48SDM+CitjbG9zZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+Y2xvc2U8L0I+KCkKKyAgICAgICAgICAgdGhyb3dzIGphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGlzIHdyYXBwZWQgQ29ubmVjdGlvbiB0byBvdXIgZGF0YSBzb3VyY2UgY29ubmVjdGlvbiBwb29sLjxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPmNsb3NlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YS5zcWwuQ29ubmVjdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5zcWwuU1FMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgZGF0YWJhc2UgYWNjZXNzIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29tbWl0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbW1pdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+Y29tbWl0PC9CPigpCisgICAgICAgICAgICB0aHJvd3MgamF2YS5zcWwuU1FMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+TWFrZSBhbGwgY2hhbmdlcyBtYWRlIHNpbmNlIHRoZSBwcmV2aW91cyBjb21taXQgb3Igcm9sbGJhY2sKKyBwZXJtYW5lbnQsIGFuZCByZWxlYXNlcyBhbnkgZGF0YWJhc2UgbG9ja3MgY3VycmVudGx5IGhlbGQuPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+Y29tbWl0PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YS5zcWwuQ29ubmVjdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5zcWwuU1FMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgZGF0YWJhc2UgYWNjZXNzIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlU3RhdGVtZW50KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NyZWF0ZVN0YXRlbWVudDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEuc3FsLlN0YXRlbWVudCA8Qj5jcmVhdGVTdGF0ZW1lbnQ8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNyZWF0ZSBhIDxjb2RlPlN0YXRlbWVudDwvY29kZT4gZm9yIHNlbmRpbmcgU1FMIHN0YXRlbWVudHMgdG8gdGhlCisgZGF0YWJhc2UuPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+Y3JlYXRlU3RhdGVtZW50PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YS5zcWwuQ29ubmVjdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5zcWwuU1FMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgZGF0YWJhc2UgYWNjZXNzIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlU3RhdGVtZW50KGludCwgaW50KSI+PCEtLSAtLT48L0E+PEgzPgorY3JlYXRlU3RhdGVtZW50PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5zcWwuU3RhdGVtZW50IDxCPmNyZWF0ZVN0YXRlbWVudDwvQj4oaW50Jm5ic3A7cmVzdWx0U2V0VHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3Jlc3VsdFNldENvbmN1cnJlbmN5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5zcWwuU1FMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+KEpEQkMgMi4wKSBDcmVhdGUgYSBTdGF0ZW1lbnQgdGhhdCB3aWxsIGNyZWF0ZSBhIFJlc3VsdFNldCBvZiB0aGUKKyBzcGVjaWZpZWQgdHlwZSBhbmQgY29uY3VycmVuY3kuPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+Y3JlYXRlU3RhdGVtZW50PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YS5zcWwuQ29ubmVjdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlc3VsdFNldFR5cGU8L0NPREU+IC0gQSByZXN1bHQgc2V0IHR5cGU8REQ+PENPREU+cmVzdWx0U2V0Q29uY3VycmVuY3k8L0NPREU+IC0gQSByZXN1bHQgc2V0IGNvbmN1cnJlbmN5PERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIGRhdGFiYXNlIGFjY2VzcyBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEF1dG9Db21taXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QXV0b0NvbW1pdDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0QXV0b0NvbW1pdDwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLnNxbC5TUUxFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGN1cnJlbnQgYXV0by1jb21taXQgc3RhdGUuPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+Z2V0QXV0b0NvbW1pdDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmEuc3FsLkNvbm5lY3Rpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIGRhdGFiYXNlIGFjY2VzcyBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldENhdGFsb2coKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q2F0YWxvZzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Q2F0YWxvZzwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLnNxbC5TUUxFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGN1cnJlbnQgY2F0YWxvZyBuYW1lIGZvciB0aGlzIENvbm5lY3Rpb24uPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+Z2V0Q2F0YWxvZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmEuc3FsLkNvbm5lY3Rpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIGRhdGFiYXNlIGFjY2VzcyBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1ldGFEYXRhKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1ldGFEYXRhPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5zcWwuRGF0YWJhc2VNZXRhRGF0YSA8Qj5nZXRNZXRhRGF0YTwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5zcWwuU1FMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBtZXRhZGF0YSByZWdhcmRpbmcgdGhpcyBjb25uZWN0aW9uJ3MgZGF0YWJhc2UuPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+Z2V0TWV0YURhdGE8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZhLnNxbC5Db25uZWN0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLnNxbC5TUUxFeGNlcHRpb248L0NPREU+IC0gaWYgYSBkYXRhYmFzZSBhY2Nlc3MgZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUcmFuc2FjdGlvbklzb2xhdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUcmFuc2FjdGlvbklzb2xhdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5nZXRUcmFuc2FjdGlvbklzb2xhdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLnNxbC5TUUxFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhpcyBDb25uZWN0aW9uJ3MgY3VycmVudCB0cmFuc2FjdGlvbiBpc29sYXRpb24gbGV2ZWwuPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+Z2V0VHJhbnNhY3Rpb25Jc29sYXRpb248L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZhLnNxbC5Db25uZWN0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLnNxbC5TUUxFeGNlcHRpb248L0NPREU+IC0gaWYgYSBkYXRhYmFzZSBhY2Nlc3MgZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUeXBlTWFwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFR5cGVNYXA8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuTWFwIDxCPmdldFR5cGVNYXA8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5zcWwuU1FMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+KEpEQkMgMi4wKSBSZXR1cm4gdGhlIHR5cGUgbWFwIGZvciB0aGlzIGNvbm5lY3Rpb24uPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+Z2V0VHlwZU1hcDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmEuc3FsLkNvbm5lY3Rpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIGRhdGFiYXNlIGFjY2VzcyBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFdhcm5pbmdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFdhcm5pbmdzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5zcWwuU1FMV2FybmluZyA8Qj5nZXRXYXJuaW5nczwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5zcWwuU1FMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmaXJzdCB3YXJuaW5nIHJlcG9ydGVkIGJ5IGNhbGxzIHRvIHRoaXMgQ29ubmVjdGlvbi48REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT5nZXRXYXJuaW5nczwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmEuc3FsLkNvbm5lY3Rpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIGRhdGFiYXNlIGFjY2VzcyBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzQ2xvc2VkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzQ2xvc2VkPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc0Nsb3NlZDwvQj4oKQorICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5zcWwuU1FMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgQ29ubmVjdGlvbiBpcyBjbG9zZWQuCisKKyBUaGUgR2VuZXJpY0Nvbm5lY3Rpb24uaXNDbG9zZWQoKSBtZXRob2QgaXMgb25seSBndWFyYW50ZWVkIHRvIHJldHVybiB0cnVlIGFmdGVyCisgR2VuZXJpY0Nvbm5lY3Rpb24uY2xvc2VkKCkgaGFzIGJlZW4gY2FsbGVkLiBUaGlzIG1ldGhvZCBjYW5ub3QgYmUgY2FsbGVkLCBpbgorIGdlbmVyYWwsIHRvIGRldGVybWluZSBpZiBhIGRhdGFiYXNlIGNvbm5lY3Rpb24gaXMgdmFsaWQgb3IgaW52YWxpZC4KKworIEEgdHlwaWNhbCBKREJDIGNsaWVudCBjYW4gZGV0ZXJtaW5lIHRoYXQgYSBjb25uZWN0aW9uIGlzIGludmFsaWQgYnkgY2F0Y2hpbmcgdGhlCisgZXhjZXB0aW9uIHRoYXQgaXMgdGhyb3duIHdoZW4gYSBKREJDIG9wZXJhdGlvbiBpcyBhdHRlbXB0ZWQuPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+aXNDbG9zZWQ8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZhLnNxbC5Db25uZWN0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLnNxbC5TUUxFeGNlcHRpb248L0NPREU+IC0gaWYgYSBkYXRhYmFzZSBhY2Nlc3MgZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1JlYWRPbmx5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzUmVhZE9ubHk8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzUmVhZE9ubHk8L0I+KCkKKyAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5zcWwuU1FMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgQ29ubmVjdGlvbiBpcyBpbiByZWFkLW9ubHkgbW9kZS48REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT5pc1JlYWRPbmx5PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YS5zcWwuQ29ubmVjdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5zcWwuU1FMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgZGF0YWJhc2UgYWNjZXNzIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmF0aXZlU1FMKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CituYXRpdmVTUUw8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hdGl2ZVNRTDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NxbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLnNxbC5TUUxFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db252ZXJ0IHRoZSBnaXZlbiBTUUwgc3RhdGVtZW50IGludG8gdGhlIHN5c3RlbSdzIG5hdGl2ZSBTUUwgZ3JhbW1lci48REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT5uYXRpdmVTUUw8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZhLnNxbC5Db25uZWN0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c3FsPC9DT0RFPiAtIFN0YXRlbWVudCB0byBiZSBwcm9jZXNzZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByZXBhcmVDYWxsKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitwcmVwYXJlQ2FsbDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEuc3FsLkNhbGxhYmxlU3RhdGVtZW50IDxCPnByZXBhcmVDYWxsPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3FsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNyZWF0ZSBhIDxjb2RlPkNhbGxhYmxlU3RhdGVtZW50PC9jb2RlPiBvYmplY3QgZm9yIGNhbGxpbmcgZGF0YWJhc2UKKyBzdG9yZWQgcHJvY2VkdXJlcy48REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT5wcmVwYXJlQ2FsbDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmEuc3FsLkNvbm5lY3Rpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zcWw8L0NPREU+IC0gU3RhdGVtZW50IHRvIGJlIHByb2Nlc3NlZDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLnNxbC5TUUxFeGNlcHRpb248L0NPREU+IC0gaWYgYSBkYXRhYmFzZSBhY2Nlc3MgZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmVwYXJlQ2FsbChqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ByZXBhcmVDYWxsPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5zcWwuQ2FsbGFibGVTdGF0ZW1lbnQgPEI+cHJlcGFyZUNhbGw8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzcWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7cmVzdWx0U2V0VHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtyZXN1bHRTZXRDb25jdXJyZW5jeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLnNxbC5TUUxFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD4oSkRCQyAyLjApIENyZWF0ZSBhIENhbGxhYmxlU3RhdGVtZW50IG9iamVjdCB0aGF0IHdpbGwgZ2VuZXJhdGUKKyBSZXN1bHRTZXQgb2JqZWN0cyB3aXRoIHRoZSBnaXZlbiB0eXBlIGFuZCBjb25jdXJyZW5jeS48REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT5wcmVwYXJlQ2FsbDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmEuc3FsLkNvbm5lY3Rpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zcWw8L0NPREU+IC0gU3RhdGVtZW50IHRvIGJlIHByb2Nlc3NlZDxERD48Q09ERT5yZXN1bHRTZXRUeXBlPC9DT0RFPiAtIEEgcmVzdWx0IHNldCB0eXBlPEREPjxDT0RFPnJlc3VsdFNldENvbmN1cnJlbmN5PC9DT0RFPiAtIEEgcmVzdWx0IHNldCBjb25jdXJyZW5jeTxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLnNxbC5TUUxFeGNlcHRpb248L0NPREU+IC0gaWYgYSBkYXRhYmFzZSBhY2Nlc3MgZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmVwYXJlU3RhdGVtZW50KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitwcmVwYXJlU3RhdGVtZW50PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5zcWwuUHJlcGFyZWRTdGF0ZW1lbnQgPEI+cHJlcGFyZVN0YXRlbWVudDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NxbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNyZWF0ZSBhIDxjb2RlPlByZXBhcmVkU3RhdGVtZW50PC9jb2RlPiBvYmplY3QgZm9yIHNlbmRpbmcKKyBwYXJhbWV0ZXJpemVkIFNRTCBzdGF0ZW1lbnRzIHRvIHRoZSBkYXRhYmFzZS48REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT5wcmVwYXJlU3RhdGVtZW50PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YS5zcWwuQ29ubmVjdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNxbDwvQ09ERT4gLSBTdGF0ZW1lbnQgdG8gYmUgcHJvY2Vzc2VkPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIGRhdGFiYXNlIGFjY2VzcyBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByZXBhcmVTdGF0ZW1lbnQoamF2YS5sYW5nLlN0cmluZywgaW50LCBpbnQpIj48IS0tIC0tPjwvQT48SDM+CitwcmVwYXJlU3RhdGVtZW50PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5zcWwuUHJlcGFyZWRTdGF0ZW1lbnQgPEI+cHJlcGFyZVN0YXRlbWVudDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NxbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3Jlc3VsdFNldFR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtyZXN1bHRTZXRDb25jdXJyZW5jeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPihKREJDIDIuMCkgQ3JlYXRlIGEgUHJlcGFyZWRTdGF0ZW1lbnQgb2JqZWN0IHRoYXQgd2lsbCBnZW5lcmF0ZQorIFJlc3VsdFNldCBvYmplY3RzIHdpdGggdGhlIGdpdmVuIHR5cGUgYW5kIGNvbmN1cnJlbmN5LjxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPnByZXBhcmVTdGF0ZW1lbnQ8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZhLnNxbC5Db25uZWN0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c3FsPC9DT0RFPiAtIFN0YXRlbWVudCB0byBiZSBwcm9jZXNzZWQ8REQ+PENPREU+cmVzdWx0U2V0VHlwZTwvQ09ERT4gLSBBIHJlc3VsdCBzZXQgdHlwZTxERD48Q09ERT5yZXN1bHRTZXRDb25jdXJyZW5jeTwvQ09ERT4gLSBBIHJlc3VsdCBzZXQgY29uY3VycmVuY3k8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5zcWwuU1FMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgZGF0YWJhc2UgYWNjZXNzIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icm9sbGJhY2soKSI+PCEtLSAtLT48L0E+PEgzPgorcm9sbGJhY2s8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJvbGxiYWNrPC9CPigpCisgICAgICAgICAgICAgIHRocm93cyBqYXZhLnNxbC5TUUxFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Ecm9wIGFsbCBjaGFuZ2VzIG1hZGUgc2luY2UgdGhlIHByZXZpb3VzIGNvbW1pdCBvciByb2xsYmFjay48REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT5yb2xsYmFjazwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmEuc3FsLkNvbm5lY3Rpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIGRhdGFiYXNlIGFjY2VzcyBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEF1dG9Db21taXQoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEF1dG9Db21taXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEF1dG9Db21taXQ8L0I+KGJvb2xlYW4mbmJzcDthdXRvQ29tbWl0KQorICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLnNxbC5TUUxFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoaXMgY29ubmVjdGlvbidzIGF1dG8tY29tbWl0IG1vZGUuPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+c2V0QXV0b0NvbW1pdDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmEuc3FsLkNvbm5lY3Rpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5hdXRvQ29tbWl0PC9DT0RFPiAtIFRoZSBuZXcgYXV0by1jb21taXQgbW9kZS48RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5zcWwuU1FMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgZGF0YWJhc2UgYWNjZXNzIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Q2F0YWxvZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Q2F0YWxvZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Q2F0YWxvZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NhdGFsb2cpCisgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlNldCB0aGUgY2F0YWxvZyBuYW1lIGZvciB0aGlzIENvbm5lY3Rpb24uPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+c2V0Q2F0YWxvZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmEuc3FsLkNvbm5lY3Rpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jYXRhbG9nPC9DT0RFPiAtIFRoZSBuZXcgY2F0YWxvZyBuYW1lPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIGRhdGFiYXNlIGFjY2VzcyBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFJlYWRPbmx5KGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRSZWFkT25seTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UmVhZE9ubHk8L0I+KGJvb2xlYW4mbmJzcDtyZWFkT25seSkKKyAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlNldCB0aGUgcmVhZC1vbmx5IG1vZGUgb2YgdGhpcyBjb25uZWN0aW9uLjxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPnNldFJlYWRPbmx5PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YS5zcWwuQ29ubmVjdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlYWRPbmx5PC9DT0RFPiAtIFRoZSBuZXcgcmVhZC1vbmx5IG1vZGU8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5zcWwuU1FMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgZGF0YWJhc2UgYWNjZXNzIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VHJhbnNhY3Rpb25Jc29sYXRpb24oaW50KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VHJhbnNhY3Rpb25Jc29sYXRpb248L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFRyYW5zYWN0aW9uSXNvbGF0aW9uPC9CPihpbnQmbmJzcDtsZXZlbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlNldCB0aGUgdHJhbnNhY3Rpb24gaXNvbGF0aW9uIGxldmVsIGZvciB0aGlzIENvbm5lY3Rpb24uPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+c2V0VHJhbnNhY3Rpb25Jc29sYXRpb248L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZhLnNxbC5Db25uZWN0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bGV2ZWw8L0NPREU+IC0gVGhlIG5ldyB0cmFuc2FjdGlvbiBpc29sYXRpb24gbGV2ZWw8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5zcWwuU1FMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgZGF0YWJhc2UgYWNjZXNzIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VHlwZU1hcChqYXZhLnV0aWwuTWFwKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VHlwZU1hcDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VHlwZU1hcDwvQj4oamF2YS51dGlsLk1hcCZuYnNwO21hcCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5zcWwuU1FMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+KEpEQkMgMi4wKSBTZXQgdGhlIHR5cGUgbWFwIGZvciB0aGlzIGNvbm5lY3Rpb24uPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+c2V0VHlwZU1hcDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmEuc3FsLkNvbm5lY3Rpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXA8L0NPREU+IC0gVGhlIG5ldyB0eXBlIG1hcDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLnNxbC5TUUxFeGNlcHRpb248L0NPREU+IC0gaWYgYSBkYXRhYmFzZSBhY2Nlc3MgZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDb25uZWN0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbm5lY3Rpb248L0gzPgorPFBSRT4KK2phdmEuc3FsLkNvbm5lY3Rpb24gPEI+Z2V0Q29ubmVjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgYWN0dWFsIGNvbm5lY3Rpb24gdGhhdCB3ZSBhcmUgd3JhcHBpbmcuPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGF0YVNvdXJjZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXREYXRhU291cmNlPC9IMz4KKzxQUkU+CitqYXZheC5zcWwuRGF0YVNvdXJjZSA8Qj5nZXREYXRhU291cmNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBkYXRhIHNvdXJjZSB0aGF0IG93bnMgdGhpcyBjb25uZWN0aW9uLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENsb3NlZChib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Q2xvc2VkPC9IMz4KKzxQUkU+Cit2b2lkIDxCPnNldENsb3NlZDwvQj4oYm9vbGVhbiZuYnNwO2Nsb3NlZCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGNsb3NlZCBzdGF0dXMgb2YgdGhpcyBjb25uZWN0aW9uIHdyYXBwZXIuCisKKyBXb3VsZCB1c3VhbGx5IG9ubHkgYmUgY2FsbGVkIGJ5IHRoZSBvd25pbmcgRGF0YVNvdXJjZSAoc291cmNlKSwgd2l0aAorIHNldENsb3NlZChmYWxzZSksIHdoZW4gYSBwb29sZWQgY29ubmVjdGlvbiBpcyBiZWluZyByZWN5Y2xlZC48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdFRyZWVNYXAuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJHZW5lcmljQ29ubmVjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDEzM2UwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sCkBAIC0wLDAgKzEsMTQ5OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM3IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIEdlbmVyaWNEYXRhU291cmNlCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgR2VuZXJpY0RhdGFTb3VyY2U8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkdlbmVyaWNEYXRhU291cmNlPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc3FsLkRhdGFTb3VyY2U8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+R2VuZXJpY0RhdGFTb3VyY2U8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIGphdmF4LnNxbC5EYXRhU291cmNlPC9ETD4KKworPFA+Cis8cD5HZW5lcmljIGRhdGEgc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSA8Y29kZT5EYXRhU291cmNlPC9jb2RlPgorIGludGVyZmFjZS4gIDxiPldBUk5JTkc8L2I+IC0gVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBrbm93IGhvdyB0bworIHByb3ZpZGUgY29ubmVjdGlvbnMgd2l0aCBkaWZmZXJlbnQgdXNlcm5hbWUvcGFzc3dvcmQgY29tYmluYXRpb25zLgorIENhbGxpbmcgdGhpcyB2ZXJzaW9uIG9mIHRoZSBpbXBsZW1lbnRhdGlvbiB1c2luZyB0aGUKKyBnZXRDb25uZWN0aW9uKHVzZXJuYW1lLHBhc3N3b3JkKSBzaWduYXR1cmUgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24uPC9wPgorCisgPHA+VGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIHN0YW5kYXJkCisgPGNvZGU+R2VuZXJpY0RhdGFTb3VyY2U8L2NvZGU+IGltcGxlbWVudGF0aW9uOjwvcD4KKyA8dGFibGU+CisgPHRyPgorICAgPHRoIHdpZHRoPSIxNSUiPlByb3BlcnR5PC90aD4KKyAgIDx0aCB3aWR0aD0iODUlIj5EZXNjcmlwdGlvbjwvdGg+CisgPC90cj4KKyA8dHI+CisgICA8dGQgYWxpZ249ImNlbnRlciI+YXV0b0NvbW1pdDwvdGQ+CisgICA8dGQ+U2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHlvdSB3YW50IHRoZSBjb25uZWN0aW9ucyByZXR1cm5lZCB0byB5b3UKKyAgICAgICBieSBjYWxsaW5nIDxjb2RlPmdldENvbm5lY3Rpb24oKTwvY29kZT4gdG8gYmUgY29uZmlndXJlZCBpbgorICAgICAgICJhdXRvLWNvbW1pdCBhZnRlciBldmVyeSBzdGF0ZW1lbnQiIG1vZGUuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcworICAgICAgIDxjb2RlPnRydWU8L2NvZGU+LCB0byBjb25mb3JtIHRvIEpEQkMgc3RhbmRhcmQgY29udmVudGlvbnMuPC90ZD4KKyA8L3RyPgorIDx0cj4KKyAgIDx0ZCBhbGlnbj0iY2VudGVyIj5kZXNjcmlwdGlvbjwvdGQ+CisgICA8dGQ+QSBzaG9ydCB0ZXh0dWFsIGRlc2NyaXB0aW9uIG9mIHRoaXMgZGF0YSBzb3VyY2UuICBUaGlzIHByb3BlcnR5IGlzCisgICAgICAgcmVxdWlyZWQgYnkgdGhlIDxjb2RlPmphdmF4LnNxbC5EYXRhU291cmNlPC9jb2RlPiBpbnRlcmZhY2UsIGJ1dCBpcworICAgICAgIG5vdCB1c2VkIHdpdGhpbiB0aGlzIGltcGxlbWVudGF0aW9uLjwvdGQ+CisgPC90cj4KKyA8dHI+CisgICA8dGQgYWxpZ249ImNlbnRlciI+ZHJpdmVyQ2xhc3M8L3RkPgorICAgPHRkPlRoZSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSBvZiB0aGUgSkRCQyBkcml2ZXIgdG8gYmUgdXRpbGl6ZWQgZm9yCisgICAgICAgdGhlIGNvbm5lY3Rpb25zIGNyZWF0ZWQgYnkgdGhpcyBkYXRhIHNvdXJjZS4gIENvbnN1bHQgdGhlCisgICAgICAgZG9jdW1lbnRhdGlvbiBmb3IgeW91ciBKREJDIGRyaXZlciB0byBpZGVudGlmeSB0aGUgdmFsdWUgdG8gYmUKKyAgICAgICBjb25maWd1cmVkIGZvciB0aGlzIHByb3BlcnR5LjwvdGQ+CisgPC90cj4KKyA8dHI+CisgICA8dGQgYWxpZ249ImNlbnRlciI+bWF4Q291bnQ8L3RkPgorICAgPHRkPlRoZSBtYXhpbXVtIG51bWJlciBvZiBKREJDIGNvbm5lY3Rpb25zIHRoYXQgd2lsbCBiZSBjcmVhdGVkIGJ5IHRoaXMKKyAgICAgICBkYXRhIHNvdXJjZS4gIFRoaXMgdmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHZhbHVlCisgICAgICAgc3BlY2lmaWVkIGZvciB0aGUgPGNvZGU+bWluQ291bnQ8L2NvdW50PiBwcm9wZXJ0eS48L3RkPgorIDwvdHI+CisgPHRyPgorICAgPHRkIGFsaWduPSJjZW50ZXIiPm1pbkNvdW50PC90ZD4KKyAgIDx0ZD5UaGUgbWluaW11bSBudW1iZXIgb2YgSkRCQyBjb25uZWN0aW9ucyB0byBlc3RhYmxpc2ggd2hlbiB0aGlzIGRhdGEKKyAgICAgICBzb3VyY2UgaXMgZmlyc3Qgb3BlbmVkLiAgVGhpcyB2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUKKyAgICAgICB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZSA8Y29kZT5tYXhDb3VudDwvY29kZT4gcHJvcGVydHkuPC90ZD4KKyA8L3RyPgorIDx0cj4KKyAgIDx0ZCBhbGlnbj0iY2VudGVyIj5wYXNzd29yZDwvdGQ+CisgICA8dGQ+VGhlIGRhdGFiYXNlIHBhc3N3b3JkIHVzZWQgdG8gZXN0YWJsaXNoIHRoZSBjb25uZWN0aW9ucyBjcmVhdGVkIGJ5CisgICAgICAgdGhpcyBjb25uZWN0aW9uIHBvb2wsIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHVzZXJuYW1lIHNwZWNpZmllZCBpbgorICAgICAgIHRoZSA8Y29kZT51c2VyPC9jb2RlPiBwcm9wZXJ0eS48L3RkPgorIDwvdHI+CisgPHRyPgorICAgPHRkIGFsaWduPSJjZW50ZXIiPnBpbmdDb21tYW5kPC90ZD4KKyAgIDx0ZD5BIG5vbi1xdWVyeSBTUUwgY29tbWFuZCB0aGF0LCBpZiBzcGVjaWZpZWQsIHdpbGwgYmUgZXhlY3V0ZWQgYmVmb3JlCisgICAgICAgYSBjb25uZWN0aW9uIGlzIHJldHVybmVkIGJ5IGEgY2FsbCB0byA8Y29kZT5nZXRDb25uZWN0aW9uKCk8L2NvZGU+LgorICAgICAgIElmIGFueSBTUUxFeGNlcHRpb24gaXMgdGhyb3duIGJ5IHRoZSBleGVjdXRpb24gb2YgdGhpcyBzdGF0ZW1lbnQsCisgICAgICAgaXQgaXMgYXNzdW1lZCB0aGF0IHRoaXMgY29ubmVjdGlvbiBpcyBzdGFsZSBhbmQgaXQgd2lsbCBiZSBkaXNjYXJkZWQuCisgICAgICAgQmVjYXVzZSB0aGlzIGhhcHBlbnMgb24gZXZlcnkgY29ubmVjdGlvbiBhbGxvY2F0aW9uLCB5b3Ugc2hvdWxkIGVuc3VyZQorICAgICAgIHRoYXQgdGhlIHN0YXRlbWVudCBleGVjdXRlcyB2ZXJ5IHF1aWNrbHkuPC90ZD4KKyA8L3RyPgorIDx0cj4KKyAgIDx0ZCBhbGlnbj0iY2VudGVyIj5waW5nUXVlcnk8L3RkPgorICAgPHRkPkEgcXVlcnkgU1FMIGNvbW1hbmQgKGkuZS4gYSBTRUxFQ1QpIHRoYXQsIGlmIHNwZWNpZmllZCwgd2lsbCBiZQorICAgICAgIGV4ZWN1dGVkIGJlZm9yZSBhIGNvbm5lY3Rpb24gaXMgcmV0dXJuZWQgYnkgYSBjYWxsIHRvCisgICAgICAgPGNvZGU+Z2V0Q29ubmVjdGlvbigpPC9jb2RlPi4gIElmIGFueSBTUUxFeGNlcHRpb24gaXMgdGhyb3duIGJ5IHRoZQorICAgICAgIGV4ZWN1dGlvbiBvZiB0aGlzIHF1ZXJ5IChvciBieSB0aGUgc3Vic2VxdWVudCBwcm9jZXNzaW5nIG9mIHRoZQorICAgICAgIGVudGlyZSByZXR1cm5lZCA8Y29kZT5SZXN1bHRTZXQ8L2NvZGU+KSwgaXQgaXMgYXNzdW1lZCB0aGF0IHRoaXMKKyAgICAgICBjb25uZWN0aW9uIGlzIHN0YWxlIGFuZCBpdCB3aWxsIGJlIGRpc2NhcmRlZC4gIEJlY2F1c2UgdGhpcyBoYXBwZW5zCisgICAgICAgb24gZXZlcnkgY29ubmVjdGlvbiBhbGxvY2F0aW9uLCB5b3Ugc2hvdWxkIGVuc3VyZSB0aGF0IHRoZQorICAgICAgIHN0YXRlbWVudCBleGVjdXRlcyB2ZXJ5IHF1aWNrbHkuPC90ZD4KKyA8L3RyPgorIDx0cj4KKyAgIDx0ZCBhbGlnbj0iY2VudGVyIj5yZWFkT25seTwvdGQ+CisgICA8dGQ+U2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHlvdSB3YW50IHRoZSBjb25uZWN0aW9ucyByZXR1cm5lZCB0byB5b3UKKyAgICAgICBieSBjYWxsaW5nIDxjb2RlPmdldENvbm5lY3Rpb24oKTwvY29kZT4gdG8gYmUgY29uZmlndXJlZCBmb3IgcmVhZCBvbmx5CisgICAgICAgb3BlcmF0aW9ucy4gIFRoaXMgY2FuIHJlc3VsdCBpbiBtb3JlIGVmZmljaWVudCBkYXRhYmFzZSBhY2Nlc3MsCisgICAgICAgYmVjYXVzZSB0aGUgZGF0YWJhc2Ugd2lsbCBrbm93IGl0IGRvZXMgbm90IG5lZWQgdG8gcmV0YWluIHVuZG8gbG9ncworICAgICAgIGZvciByb2xsaW5nIGJhY2sgdGhlIHRyYW5zYWN0aW9uLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMKKyAgICAgICA8Y29kZT5mYWxzZTwvY29kZT4uPC90ZD4KKyA8L3RyPgorIDx0cj4KKyAgIDx0ZCBhbGlnbj0iY2VudGVyIj51cmw8L3RkPgorICAgPHRkPlRoZSBjb25uZWN0aW9uIFVSTCB0byBiZSBwYXNzZWQgdG8gb3VyIEpEQkMgZHJpdmVyIHdoZW4gZXN0YWJsaXNoaW5nCisgICAgICAgYSBuZXcgY29ubmVjdGlvbi4gIFRoZSB2YWx1ZSBzcGVjaWZpZWQgdHlwaWNhbGx5IHN0YXJ0cyB3aXRoCisgICAgICAgPGNvZGU+amRiYzo8L2NvZGU+LCBhbmQgaW5jbHVkZXMgYSByZWZlcmVuY2UgdG8gdGhlIGhvc3QgKGFuZCwKKyAgICAgICBvcHRpb25hbGx5LCB0aGUgcG9ydCBudW1iZXIpIGF0IHdoaWNoIHRoZSBkYXRhYmFzZSBzZXJ2ZXIgaXMgbGlzdGVuaW5nCisgICAgICAgZm9yIGNvbm5lY3Rpb25zLCBwbHVzIHRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZSB0byBiZSBvcGVuZWQuICBDb25zdWx0CisgICAgICAgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgSkRCQyBkcml2ZXIgdG8gaWRlbnRpZnkgdGhlIHZhbHVlIHRvIGJlCisgICAgICAgY29uZmlndXJlZCBmb3IgdGhpcyBwcm9wZXJ0eS48L3RkPgorIDwvdHI+CisgPHRyPgorICAgPHRkIGFsaWduPSJjZW50ZXIiPnVzZXI8L3RkPgorICAgPHRkPlRoZSBkYXRhYmFzZSB1c2VybmFtZSB1c2VkIHRvIGVzdGFibGlzaCB0aGUgY29ubmVjdGlvbnMgY3JlYXRlZCBieQorICAgICAgIHRoaXMgY29ubmVjdGlvbiBwb29sLCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBwYXNzd29yZCBzcGVjaWZpZWQgaW4KKyAgICAgICB0aGUgPGNvZGU+cGFzc3dvcmQ8L2NvZGU+IHByb3BlcnR5LjwvdGQ+CisgPC90cj4KKyA8L3RhYmxlPgorCisgPHA+SW4gYWRkaXRpb24sIHlvdSBjYW4gYWRkIHRvIHRoZSBzZXQgb2YgPGNvZGU+UHJvcGVydGllczwvY29kZT4gcGFzc2VkIHRvCisgdGhlIEpEQkMgZHJpdmVyIGJ5IGNhbGxpbmcgPGNvZGU+YWRkUHJvcGVydHkoKTwvY29kZT4uPC9wPgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW4sIFRlZCBIdXN0ZWQ8L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNhY3RpdmVDb3VudCI+YWN0aXZlQ291bnQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG51bWJlciBvZiBjb25uZWN0aW9ucyB0aGF0IGhhdmUgYmVlbiBjcmVhdGVkIGJ5IHRoaXMgZGF0YSBzb3VyY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNhdXRvQ29tbWl0Ij5hdXRvQ29tbWl0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWZhdWx0IGF1dG8tY29tbWl0IHN0YXRlIGZvciBuZXdseSBjcmVhdGVkIGNvbm5lY3Rpb25zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjY2xvc2VkIj5jbG9zZWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFzIHRoaXMgZGF0YSBzb3VyY2UgYmVlbiBjbG9zZWQ/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuTGlua2VkTGlzdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjY29ubmVjdGlvbnMiPmNvbm5lY3Rpb25zPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBsaXN0IG9mIENvbm5lY3Rpb25zICh3cmFwcGVkIGluIG91ciBhc3NvY2lhdGVkIHdyYXBwZXIgY2xhc3MpIHRoYXQKKyBoYXZlIGJlZW4gY3JlYXRlZCBidXQgYXJlIG5vdCBjdXJyZW50bHkgaW4gdXNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNkZWJ1ZyI+ZGVidWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgZm9yIHRoaXMgZGF0YSBzb3VyY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNkZXNjcmlwdGlvbiI+ZGVzY3JpcHRpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgZGF0YSBzb3VyY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnNxbC5Ecml2ZXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2RyaXZlciI+ZHJpdmVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBKREJDIGRyaXZlciB0aGF0IHdlIHVzZSBhcyBhIGNvbm5lY3Rpb24gZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2RyaXZlckNsYXNzIj5kcml2ZXJDbGFzczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBKREJDIGRyaXZlciB0byB1c2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2xvZ2luVGltZW91dCI+bG9naW5UaW1lb3V0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBsb2dpbiB0aW1lb3V0IGZvciB0aGlzIGRhdGEgc291cmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjbG9nV3JpdGVyIj5sb2dXcml0ZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGxvZyB3cml0ZXIgZm9yIHRoaXMgZGF0YSBzb3VyY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI21heENvdW50Ij5tYXhDb3VudDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWF4aW11bSBudW1iZXIgb2YgY29ubmVjdGlvbnMgdG8gYmUgY3JlYXRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjbWluQ291bnQiPm1pbkNvdW50PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtaW5pbXVtIG51bWJlciBvZiBjb25uZWN0aW9ucyB0byBiZSBjcmVhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjcGFzc3dvcmQiPnBhc3N3b3JkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkYXRhYmFzZSBwYXNzd29yZCBmb3IgdXNlIGluIGVzdGFibGlzaGluZyBhIGNvbm5lY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNwaW5nQ29tbWFuZCI+cGluZ0NvbW1hbmQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5vbi1xdWVyeSBTUUwgY29tbWFuZCB1c2VkIHRvIHBpbmcgYW4gYWxsb2NhdGVkIGNvbm5lY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNwaW5nUXVlcnkiPnBpbmdRdWVyeTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcXVlcnkgU1FMIGNvbW1hbmQgdXNlZCB0byBwaW5nIGFuIGFsbG9jYXRlZCBjb25uZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLlByb3BlcnRpZXM8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3Byb3BlcnRpZXMiPnByb3BlcnRpZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbm5lY3Rpb24gcHJvcGVydGllcyBmb3IgdXNlIGluIGVzdGFibGlzaGluZyBjb25uZWN0aW9ucy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3JlYWRPbmx5Ij5yZWFkT25seTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCByZWFkLW9ubHkgc3RhdGUgZm9yIG5ld2x5IGNyZWF0ZWQgY29ubmVjdGlvbnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjU1FMRVhDRVBUSU9OX0dFVENPTk5FQ1RJT04iPlNRTEVYQ0VQVElPTl9HRVRDT05ORUNUSU9OPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjdXJsIj51cmw8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEpEQkMgVVJMIGZvciB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbiB0byBiZSBvcGVuZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3VzZUNvdW50Ij51c2VDb3VudDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbnVtYmVyIG9mIGNvbm5lY3Rpb25zIGNyZWF0ZWQgYnkgdGhpcyBkYXRhIHNvdXJjZSB0aGF0IGFyZQorIGN1cnJlbnRseSBpbiB1c2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkYXRhYmFzZSB1c2VybmFtZSBmb3IgdXNlIGluIGVzdGFibGlzaGluZyBhIGNvbm5lY3Rpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjR2VuZXJpY0RhdGFTb3VyY2UoKSI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNhZGRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+YWRkUHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIGdlbmVyaWMgcHJvcGVydHkgdG8gdGhlIGxpc3Qgb2YgY29ubmVjdGlvbiBwcm9wZXJ0aWVzIHRvIGJlIHVzZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2Nsb3NlKCkiPmNsb3NlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xvc2UgYWxsIGNvbm5lY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIGNyZWF0ZWQgYnkgdGhpcyBkYXRhIHNvdXJjZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEuc3FsLkNvbm5lY3Rpb248L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2NyZWF0ZUNvbm5lY3Rpb24oKSI+Y3JlYXRlQ29ubmVjdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSwgY29uZmlndXJlLCBhbmQgcmV0dXJuIGEgbmV3IEpEQkMgQ29ubmVjdGlvbiB0aGF0IGhhcyBiZWVuCisgd3JhcHBlZCBpbiBvdXIgY29ycmVzcG9uZGluZyB3cmFwcGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2dldEFjdGl2ZUNvdW50KCkiPmdldEFjdGl2ZUNvdW50PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2dldEF1dG9Db21taXQoKSI+Z2V0QXV0b0NvbW1pdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnNxbC5Db25uZWN0aW9uPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRDb25uZWN0aW9uKCkiPmdldENvbm5lY3Rpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdHRlbXB0IHRvIGVzdGFibGlzaCBhIGRhdGFiYXNlIGNvbm5lY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEuc3FsLkNvbm5lY3Rpb248L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2dldENvbm5lY3Rpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmdldENvbm5lY3Rpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXNlcm5hbWUsCisgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXNzd29yZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0F0dGVtcHQgdG8gZXN0YWJsaXNoIGEgZGF0YWJhc2UgY29ubmVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXREZWJ1ZygpIj5nZXREZWJ1ZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXREZXNjcmlwdGlvbigpIj5nZXREZXNjcmlwdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXREcml2ZXJDbGFzcygpIj5nZXREcml2ZXJDbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2dldExvZ2luVGltZW91dCgpIj5nZXRMb2dpblRpbWVvdXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGxvZ2luIHRpbWVvdXQgZm9yIHRoaXMgZGF0YSBzb3VyY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2dldExvZ1dyaXRlcigpIj5nZXRMb2dXcml0ZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGxvZyB3cml0ZXIgZm9yIHRoaXMgZGF0YSBzb3VyY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjZ2V0TWF4Q291bnQoKSI+Z2V0TWF4Q291bnQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRNaW5Db3VudCgpIj5nZXRNaW5Db3VudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRQYXNzd29yZCgpIj5nZXRQYXNzd29yZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRQaW5nQ29tbWFuZCgpIj5nZXRQaW5nQ29tbWFuZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRQaW5nUXVlcnkoKSI+Z2V0UGluZ1F1ZXJ5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2dldFJlYWRPbmx5KCkiPmdldFJlYWRPbmx5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2dldFVybCgpIj5nZXRVcmw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRVc2VDb3VudCgpIj5nZXRVc2VDb3VudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNnZXRVc2VyKCkiPmdldFVzZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nKSI+bG9nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb2cgdGhlIHNwZWNpZmllZCBtZXNzYWdlIHRvIG91ciBsb2cgd3JpdGVyLCBpZiB3ZSBoYXZlIG9uZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+bG9nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UsCisgICAgamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO3Rocm93YWJsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0xvZyB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UgYW5kIGV4Y2VwdGlvbiB0byBvdXIgbG9nIHdyaXRlciwgaWYgd2UKKyBoYXZlIG9uZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjb3BlbigpIj5vcGVuPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3BlbiB0aGUgaW5pdGlhbCBjb25uZWN0aW9ucyB0aGF0IGFyZSBhcHByb3ByaWF0ZSBmb3IgdGhpcyBkYXRhIHNvdXJjZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3BpbmcoamF2YS5zcWwuQ29ubmVjdGlvbikiPnBpbmc8L0E+PC9CPihqYXZhLnNxbC5Db25uZWN0aW9uJm5ic3A7Y29ubik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BlcmZvcm0gYW55IGNvbmZpZ3VyZWQgPGNvZGU+cGluZ0NvbW1hbmQ8L2NvZGU+IGFuZC9vcgorIDxjb2RlPnBpbmdRdWVyeTwvY29kZT4gb24gdGhlIHNwZWNpZmllZCBjb25uZWN0aW9uLCByZXR1cm5pbmcgYW55CisgU1FMRXhjZXB0aW9uIHRoYXQgaXMgZW5jb3VudGVyZWQgYWxvbmcgdGhlIHdheS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+KHBhY2thZ2UgcHJpdmF0ZSkgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjcmV0dXJuQ29ubmVjdGlvbihvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkdlbmVyaWNDb25uZWN0aW9uKSI+cmV0dXJuQ29ubmVjdGlvbjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+R2VuZXJpY0Nvbm5lY3Rpb248L0E+Jm5ic3A7Y29ubik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGlzIGNvbm5lY3Rpb24gdG8gdGhlIGF2YWlsYWJsZSBjb25uZWN0aW9uIHBvb2wuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3NldEF1dG9Db21taXQoYm9vbGVhbikiPnNldEF1dG9Db21taXQ8L0E+PC9CPihib29sZWFuJm5ic3A7YXV0b0NvbW1pdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNzZXREZWJ1ZyhpbnQpIj5zZXREZWJ1ZzwvQT48L0I+KGludCZuYnNwO2RlYnVnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3NldERlc2NyaXB0aW9uKGphdmEubGFuZy5TdHJpbmcpIj5zZXREZXNjcmlwdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtkZXNjcmlwdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNzZXREcml2ZXJDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0RHJpdmVyQ2xhc3M8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZHJpdmVyQ2xhc3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjc2V0TG9naW5UaW1lb3V0KGludCkiPnNldExvZ2luVGltZW91dDwvQT48L0I+KGludCZuYnNwO2xvZ2luVGltZW91dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgbG9naW4gdGltZW91dCBmb3IgdGhpcyBkYXRhIHNvdXJjZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjc2V0TG9nV3JpdGVyKGphdmEuaW8uUHJpbnRXcml0ZXIpIj5zZXRMb2dXcml0ZXI8L0E+PC9CPihqYXZhLmlvLlByaW50V3JpdGVyJm5ic3A7bG9nV3JpdGVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBsb2cgd3JpdGVyIGZvciB0aGlzIGRhdGEgc291cmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNzZXRNYXhDb3VudChpbnQpIj5zZXRNYXhDb3VudDwvQT48L0I+KGludCZuYnNwO21heENvdW50KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3NldE1pbkNvdW50KGludCkiPnNldE1pbkNvdW50PC9BPjwvQj4oaW50Jm5ic3A7bWluQ291bnQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjc2V0UGFzc3dvcmQoamF2YS5sYW5nLlN0cmluZykiPnNldFBhc3N3b3JkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Bhc3N3b3JkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3NldFBpbmdDb21tYW5kKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQaW5nQ29tbWFuZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwaW5nQ29tbWFuZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNzZXRQaW5nUXVlcnkoamF2YS5sYW5nLlN0cmluZykiPnNldFBpbmdRdWVyeTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwaW5nUXVlcnkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjc2V0UmVhZE9ubHkoYm9vbGVhbikiPnNldFJlYWRPbmx5PC9BPjwvQj4oYm9vbGVhbiZuYnNwO3JlYWRPbmx5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI3NldFVybChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXJsPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VybCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VzZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBjb21wb25lbnQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlNRTEVYQ0VQVElPTl9HRVRDT05ORUNUSU9OIj48IS0tIC0tPjwvQT48SDM+CitTUUxFWENFUFRJT05fR0VUQ09OTkVDVElPTjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5TUUxFWENFUFRJT05fR0VUQ09OTkVDVElPTjwvQj48L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNsb3NlZCI+PCEtLSAtLT48L0E+PEgzPgorY2xvc2VkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jbG9zZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SGFzIHRoaXMgZGF0YSBzb3VyY2UgYmVlbiBjbG9zZWQ/PC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29ubmVjdGlvbnMiPjwhLS0gLS0+PC9BPjxIMz4KK2Nvbm5lY3Rpb25zPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkxpbmtlZExpc3QgPEI+Y29ubmVjdGlvbnM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGxpc3Qgb2YgQ29ubmVjdGlvbnMgKHdyYXBwZWQgaW4gb3VyIGFzc29jaWF0ZWQgd3JhcHBlciBjbGFzcykgdGhhdAorIGhhdmUgYmVlbiBjcmVhdGVkIGJ1dCBhcmUgbm90IGN1cnJlbnRseSBpbiB1c2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZHJpdmVyIj48IS0tIC0tPjwvQT48SDM+Citkcml2ZXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnNxbC5Ecml2ZXIgPEI+ZHJpdmVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKREJDIGRyaXZlciB0aGF0IHdlIHVzZSBhcyBhIGNvbm5lY3Rpb24gZmFjdG9yeS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2dpblRpbWVvdXQiPjwhLS0gLS0+PC9BPjxIMz4KK2xvZ2luVGltZW91dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGludCA8Qj5sb2dpblRpbWVvdXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGxvZ2luIHRpbWVvdXQgZm9yIHRoaXMgZGF0YSBzb3VyY2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9nV3JpdGVyIj48IS0tIC0tPjwvQT48SDM+Citsb2dXcml0ZXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmlvLlByaW50V3JpdGVyIDxCPmxvZ1dyaXRlcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbG9nIHdyaXRlciBmb3IgdGhpcyBkYXRhIHNvdXJjZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJhY3RpdmVDb3VudCI+PCEtLSAtLT48L0E+PEgzPgorYWN0aXZlQ291bnQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+YWN0aXZlQ291bnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG51bWJlciBvZiBjb25uZWN0aW9ucyB0aGF0IGhhdmUgYmVlbiBjcmVhdGVkIGJ5IHRoaXMgZGF0YSBzb3VyY2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYXV0b0NvbW1pdCI+PCEtLSAtLT48L0E+PEgzPgorYXV0b0NvbW1pdDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+YXV0b0NvbW1pdDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCBhdXRvLWNvbW1pdCBzdGF0ZSBmb3IgbmV3bHkgY3JlYXRlZCBjb25uZWN0aW9ucy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZWJ1ZyI+PCEtLSAtLT48L0E+PEgzPgorZGVidWc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+ZGVidWc8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgZm9yIHRoaXMgZGF0YSBzb3VyY2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVzY3JpcHRpb24iPjwhLS0gLS0+PC9BPjxIMz4KK2Rlc2NyaXB0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5kZXNjcmlwdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVzY3JpcHRpb24gb2YgdGhpcyBkYXRhIHNvdXJjZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJkcml2ZXJDbGFzcyI+PCEtLSAtLT48L0E+PEgzPgorZHJpdmVyQ2xhc3M8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmRyaXZlckNsYXNzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIEpEQkMgZHJpdmVyIHRvIHVzZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXhDb3VudCI+PCEtLSAtLT48L0E+PEgzPgorbWF4Q291bnQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+bWF4Q291bnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbm5lY3Rpb25zIHRvIGJlIGNyZWF0ZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWluQ291bnQiPjwhLS0gLS0+PC9BPjxIMz4KK21pbkNvdW50PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPm1pbkNvdW50PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtaW5pbXVtIG51bWJlciBvZiBjb25uZWN0aW9ucyB0byBiZSBjcmVhdGVkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhc3N3b3JkIj48IS0tIC0tPjwvQT48SDM+CitwYXNzd29yZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGFzc3dvcmQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRhdGFiYXNlIHBhc3N3b3JkIGZvciB1c2UgaW4gZXN0YWJsaXNoaW5nIGEgY29ubmVjdGlvbi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwaW5nQ29tbWFuZCI+PCEtLSAtLT48L0E+PEgzPgorcGluZ0NvbW1hbmQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBpbmdDb21tYW5kPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBub24tcXVlcnkgU1FMIGNvbW1hbmQgdXNlZCB0byBwaW5nIGFuIGFsbG9jYXRlZCBjb25uZWN0aW9uLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBpbmdRdWVyeSI+PCEtLSAtLT48L0E+PEgzPgorcGluZ1F1ZXJ5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5waW5nUXVlcnk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHF1ZXJ5IFNRTCBjb21tYW5kIHVzZWQgdG8gcGluZyBhbiBhbGxvY2F0ZWQgY29ubmVjdGlvbi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0aWVzIj48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0aWVzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLlByb3BlcnRpZXMgPEI+cHJvcGVydGllczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29ubmVjdGlvbiBwcm9wZXJ0aWVzIGZvciB1c2UgaW4gZXN0YWJsaXNoaW5nIGNvbm5lY3Rpb25zLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWRPbmx5Ij48IS0tIC0tPjwvQT48SDM+CityZWFkT25seTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+cmVhZE9ubHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgcmVhZC1vbmx5IHN0YXRlIGZvciBuZXdseSBjcmVhdGVkIGNvbm5lY3Rpb25zLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9InVybCI+PCEtLSAtLT48L0E+PEgzPgordXJsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj51cmw8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEpEQkMgVVJMIGZvciB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbiB0byBiZSBvcGVuZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idXNlQ291bnQiPjwhLS0gLS0+PC9BPjxIMz4KK3VzZUNvdW50PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPnVzZUNvdW50PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBudW1iZXIgb2YgY29ubmVjdGlvbnMgY3JlYXRlZCBieSB0aGlzIGRhdGEgc291cmNlIHRoYXQgYXJlCisgY3VycmVudGx5IGluIHVzZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJ1c2VyIj48IS0tIC0tPjwvQT48SDM+Cit1c2VyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj51c2VyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBkYXRhYmFzZSB1c2VybmFtZSBmb3IgdXNlIGluIGVzdGFibGlzaGluZyBhIGNvbm5lY3Rpb24uPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkdlbmVyaWNEYXRhU291cmNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0dlbmVyaWNEYXRhU291cmNlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+R2VuZXJpY0RhdGFTb3VyY2U8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImFkZFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CithZGRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkUHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPkFkZCBhIGdlbmVyaWMgcHJvcGVydHkgdG8gdGhlIGxpc3Qgb2YgY29ubmVjdGlvbiBwcm9wZXJ0aWVzIHRvIGJlIHVzZWQuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBnZW5lcmljIHByb3BlcnR5PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIENvcnJlc3BvbmRpbmcgZ2VuZXJpYyBwcm9wZXJ0eSB2YWx1ZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWN0aXZlQ291bnQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWN0aXZlQ291bnQ8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0QWN0aXZlQ291bnQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEF1dG9Db21taXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QXV0b0NvbW1pdDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0QXV0b0NvbW1pdDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QXV0b0NvbW1pdChib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QXV0b0NvbW1pdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QXV0b0NvbW1pdDwvQj4oYm9vbGVhbiZuYnNwO2F1dG9Db21taXQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXREZWJ1ZygpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWJ1ZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5nZXREZWJ1ZzwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RGVidWcoaW50KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RGVidWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldERlYnVnPC9CPihpbnQmbmJzcDtkZWJ1Zyk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldERlc2NyaXB0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERlc2NyaXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXREZXNjcmlwdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RGVzY3JpcHRpb24oamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldERlc2NyaXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXREZXNjcmlwdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2Rlc2NyaXB0aW9uKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RHJpdmVyQ2xhc3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RHJpdmVyQ2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldERyaXZlckNsYXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXREcml2ZXJDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RHJpdmVyQ2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldERyaXZlckNsYXNzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZHJpdmVyQ2xhc3MpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNYXhDb3VudCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNYXhDb3VudDwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5nZXRNYXhDb3VudDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TWF4Q291bnQoaW50KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TWF4Q291bnQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE1heENvdW50PC9CPihpbnQmbmJzcDttYXhDb3VudCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1pbkNvdW50KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1pbkNvdW50PC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldE1pbkNvdW50PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNaW5Db3VudChpbnQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNaW5Db3VudDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TWluQ291bnQ8L0I+KGludCZuYnNwO21pbkNvdW50KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFzc3dvcmQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFzc3dvcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhc3N3b3JkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYXNzd29yZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGFzc3dvcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhc3N3b3JkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFzc3dvcmQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQaW5nQ29tbWFuZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQaW5nQ29tbWFuZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGluZ0NvbW1hbmQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBpbmdDb21tYW5kKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQaW5nQ29tbWFuZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGluZ0NvbW1hbmQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwaW5nQ29tbWFuZCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBpbmdRdWVyeSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQaW5nUXVlcnk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBpbmdRdWVyeTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGluZ1F1ZXJ5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQaW5nUXVlcnk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBpbmdRdWVyeTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BpbmdRdWVyeSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJlYWRPbmx5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJlYWRPbmx5PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRSZWFkT25seTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UmVhZE9ubHkoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFJlYWRPbmx5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRSZWFkT25seTwvQj4oYm9vbGVhbiZuYnNwO3JlYWRPbmx5KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VXJsKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFVybDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VXJsPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRVcmwoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFVybDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VXJsPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJsKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VXNlQ291bnQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VXNlQ291bnQ8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0VXNlQ291bnQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFVzZXIoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VXNlcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VXNlcjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VXNlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VXNlcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VzZXIpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDb25uZWN0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbm5lY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnNxbC5Db25uZWN0aW9uIDxCPmdldENvbm5lY3Rpb248L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5zcWwuU1FMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+QXR0ZW1wdCB0byBlc3RhYmxpc2ggYSBkYXRhYmFzZSBjb25uZWN0aW9uLjxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPmdldENvbm5lY3Rpb248L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zcWwuRGF0YVNvdXJjZTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5zcWwuU1FMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgZGF0YWJhc2UgYWNjZXNzIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Q29ubmVjdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29ubmVjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEuc3FsLkNvbm5lY3Rpb24gPEI+Z2V0Q29ubmVjdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VzZXJuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFzc3dvcmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkF0dGVtcHQgdG8gZXN0YWJsaXNoIGEgZGF0YWJhc2UgY29ubmVjdGlvbi4gIDxiPldBUk5JTkc8L2I+IC0gVGhlCisgc3BlY2lmaWVkIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcmUgbm90IHN1cHBvcnRlZCBieSB0aGlzCisgaW1wbGVtZW50YXRpb24uPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+Z2V0Q29ubmVjdGlvbjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNxbC5EYXRhU291cmNlPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dXNlcm5hbWU8L0NPREU+IC0gRGF0YWJhc2UgdXNlcm5hbWUgZm9yIHRoaXMgY29ubmVjdGlvbjxERD48Q09ERT5wYXNzd29yZDwvQ09ERT4gLSBEYXRhYmFzZSBwYXNzd29yZCBmb3IgdGhpcyBjb25uZWN0aW9uPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIGRhdGFiYXNlIGFjY2VzcyBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExvZ2luVGltZW91dCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMb2dpblRpbWVvdXQ8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0TG9naW5UaW1lb3V0PC9CPigpCisgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLnNxbC5TUUxFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGxvZ2luIHRpbWVvdXQgZm9yIHRoaXMgZGF0YSBzb3VyY2UuPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6IDwvQj48REQ+PENPREU+Z2V0TG9naW5UaW1lb3V0PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc3FsLkRhdGFTb3VyY2U8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIGRhdGFiYXNlIGFjY2VzcyBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExvZ1dyaXRlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMb2dXcml0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmlvLlByaW50V3JpdGVyIDxCPmdldExvZ1dyaXRlcjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbG9nIHdyaXRlciBmb3IgdGhpcyBkYXRhIHNvdXJjZS48REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT5nZXRMb2dXcml0ZXI8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zcWwuRGF0YVNvdXJjZTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5zcWwuU1FMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgZGF0YWJhc2UgYWNjZXNzIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TG9naW5UaW1lb3V0KGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExvZ2luVGltZW91dDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TG9naW5UaW1lb3V0PC9CPihpbnQmbmJzcDtsb2dpblRpbWVvdXQpCisgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5zcWwuU1FMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBsb2dpbiB0aW1lb3V0IGZvciB0aGlzIGRhdGEgc291cmNlLjxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPnNldExvZ2luVGltZW91dDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNxbC5EYXRhU291cmNlPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bG9naW5UaW1lb3V0PC9DT0RFPiAtIFRoZSBuZXcgbG9naW4gdGltZW91dDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLnNxbC5TUUxFeGNlcHRpb248L0NPREU+IC0gaWYgYSBkYXRhYmFzZSBhY2Nlc3MgZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMb2dXcml0ZXIoamF2YS5pby5QcmludFdyaXRlcikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExvZ1dyaXRlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TG9nV3JpdGVyPC9CPihqYXZhLmlvLlByaW50V3JpdGVyJm5ic3A7bG9nV3JpdGVyKQorICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlNldCB0aGUgbG9nIHdyaXRlciBmb3IgdGhpcyBkYXRhIHNvdXJjZS48REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTogPC9CPjxERD48Q09ERT5zZXRMb2dXcml0ZXI8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zcWwuRGF0YVNvdXJjZTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmxvZ1dyaXRlcjwvQ09ERT4gLSBUaGUgbmV3IGxvZyB3cml0ZXI8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5zcWwuU1FMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgZGF0YWJhc2UgYWNjZXNzIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2xvc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorY2xvc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmNsb3NlPC9CPigpCisgICAgICAgICAgIHRocm93cyBqYXZhLnNxbC5TUUxFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5DbG9zZSBhbGwgY29ubmVjdGlvbnMgdGhhdCBoYXZlIGJlZW4gY3JlYXRlZCBieSB0aGlzIGRhdGEgc291cmNlLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5zcWwuU1FMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgZGF0YWJhc2UgYWNjZXNzIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib3BlbigpIj48IS0tIC0tPjwvQT48SDM+CitvcGVuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5vcGVuPC9CPigpCisgICAgICAgICAgdGhyb3dzIGphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk9wZW4gdGhlIGluaXRpYWwgY29ubmVjdGlvbnMgdGhhdCBhcmUgYXBwcm9wcmlhdGUgZm9yIHRoaXMgZGF0YSBzb3VyY2UuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLnNxbC5TUUxFeGNlcHRpb248L0NPREU+IC0gaWYgYSBkYXRhYmFzZSBhY2Nlc3MgZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0b1N0cmluZygpIj48IS0tIC0tPjwvQT48SDM+Cit0b1N0cmluZzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+dG9TdHJpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBjb21wb25lbnQuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT50b1N0cmluZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNyZWF0ZUNvbm5lY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorY3JlYXRlQ29ubmVjdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEuc3FsLkNvbm5lY3Rpb24gPEI+Y3JlYXRlQ29ubmVjdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLnNxbC5TUUxFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5DcmVhdGUsIGNvbmZpZ3VyZSwgYW5kIHJldHVybiBhIG5ldyBKREJDIENvbm5lY3Rpb24gdGhhdCBoYXMgYmVlbgorIHdyYXBwZWQgaW4gb3VyIGNvcnJlc3BvbmRpbmcgd3JhcHBlci48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEuc3FsLlNRTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIGRhdGFiYXNlIGFjY2VzcyBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorbG9nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5sb2c8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXNzYWdlKTwvUFJFPgorPERMPgorPEREPkxvZyB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UgdG8gb3VyIGxvZyB3cml0ZXIsIGlmIHdlIGhhdmUgb25lLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1lc3NhZ2U8L0NPREU+IC0gVGhlIG1lc3NhZ2UgdG8gYmUgbG9nZ2VkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2coamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlRocm93YWJsZSkiPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+bG9nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuVGhyb3dhYmxlJm5ic3A7dGhyb3dhYmxlKTwvUFJFPgorPERMPgorPEREPkxvZyB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UgYW5kIGV4Y2VwdGlvbiB0byBvdXIgbG9nIHdyaXRlciwgaWYgd2UKKyBoYXZlIG9uZS48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tZXNzYWdlPC9DT0RFPiAtIFRoZSBtZXNzYWdlIHRvIGJlIGxvZ2dlZDxERD48Q09ERT50aHJvd2FibGU8L0NPREU+IC0gVGhlIGV4Y2VwdGlvbiB0byBiZSBsb2dnZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBpbmcoamF2YS5zcWwuQ29ubmVjdGlvbikiPjwhLS0gLS0+PC9BPjxIMz4KK3Bpbmc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPnBpbmc8L0I+KGphdmEuc3FsLkNvbm5lY3Rpb24mbmJzcDtjb25uKQorICAgICAgICAgICAgIHRocm93cyBqYXZhLnNxbC5TUUxFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5QZXJmb3JtIGFueSBjb25maWd1cmVkIDxjb2RlPnBpbmdDb21tYW5kPC9jb2RlPiBhbmQvb3IKKyA8Y29kZT5waW5nUXVlcnk8L2NvZGU+IG9uIHRoZSBzcGVjaWZpZWQgY29ubmVjdGlvbiwgcmV0dXJuaW5nIGFueQorIFNRTEV4Y2VwdGlvbiB0aGF0IGlzIGVuY291bnRlcmVkIGFsb25nIHRoZSB3YXkuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29ubjwvQ09ERT4gLSBUaGUgY29ubmVjdGlvbiB0byBiZSBwaW5nZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJldHVybkNvbm5lY3Rpb24ob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5HZW5lcmljQ29ubmVjdGlvbikiPjwhLS0gLS0+PC9BPjxIMz4KK3JldHVybkNvbm5lY3Rpb248L0gzPgorPFBSRT4KK3ZvaWQgPEI+cmV0dXJuQ29ubmVjdGlvbjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljQ29ubmVjdGlvbi5odG1sIj5HZW5lcmljQ29ubmVjdGlvbjwvQT4mbmJzcDtjb25uKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGlzIGNvbm5lY3Rpb24gdG8gdGhlIGF2YWlsYWJsZSBjb25uZWN0aW9uIHBvb2wuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29ubjwvQ09ERT4gLSBUaGUgY29ubmVjdGlvbiBiZWluZyByZXR1cm5lZDwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkdlbmVyaWNEYXRhU291cmNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU5MWU5MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwKQEAgLTAsMCArMSwyODggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNyBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBJdGVyYXRvckFkYXB0ZXIKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSXRlcmF0b3JBZGFwdGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9GT05UPgorPEJSPgorQ2xhc3MgIEl0ZXJhdG9yQWRhcHRlcjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuSXRlcmF0b3JBZGFwdGVyPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS51dGlsLkl0ZXJhdG9yPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkl0ZXJhdG9yQWRhcHRlcjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS51dGlsLkl0ZXJhdG9yPC9ETD4KKworPFA+CitVdGlsaXR5IG1ldGhvZCBmb3IgY29udmVydGluZyBFbnVtZXJhdGlvbiB0byBhbiBJdGVyYXRvcgorIGNsYXNzLiAgSWYgeW91IGF0dGVtcHQgdG8gcmVtb3ZlKCkgYW4gT2JqZWN0IGZyb20gdGhlIGl0ZXJhdG9yLCBpdCB3aWxsCisgdGhyb3cgYW4gVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uIEFkZGVkIGZvciB1c2UgYnkgVGFnTGliIHNvCisgRW51bWVyYXRpb24gY2FuIGJlIHN1cHBvcnRlZAorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPlNlYW4gS2VsbHksIFJvYiBMZWxhbmQ8L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IElOTkVSIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEudXRpbC5FbnVtZXJhdGlvbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sI2VudW0iPmVudW08L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sI0l0ZXJhdG9yQWRhcHRlcihqYXZhLnV0aWwuRW51bWVyYXRpb24pIj5JdGVyYXRvckFkYXB0ZXI8L0E+PC9CPihqYXZhLnV0aWwuRW51bWVyYXRpb24mbmJzcDtlbnVtKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sI2hhc05leHQoKSI+aGFzTmV4dDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwjbmV4dCgpIj5uZXh0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCNyZW1vdmUoKSI+cmVtb3ZlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJlbnVtIj48IS0tIC0tPjwvQT48SDM+CitlbnVtPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEudXRpbC5FbnVtZXJhdGlvbiA8Qj5lbnVtPC9CPjwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ikl0ZXJhdG9yQWRhcHRlcihqYXZhLnV0aWwuRW51bWVyYXRpb24pIj48IS0tIC0tPjwvQT48SDM+CitJdGVyYXRvckFkYXB0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5JdGVyYXRvckFkYXB0ZXI8L0I+KGphdmEudXRpbC5FbnVtZXJhdGlvbiZuYnNwO2VudW0pPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJoYXNOZXh0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2hhc05leHQ8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmhhc05leHQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPmhhc05leHQ8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZhLnV0aWwuSXRlcmF0b3I8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJuZXh0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK25leHQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPm5leHQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPm5leHQ8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZhLnV0aWwuSXRlcmF0b3I8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW1vdmUoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVtb3ZlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZW1vdmU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OiA8L0I+PEREPjxDT0RFPnJlbW92ZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmEudXRpbC5JdGVyYXRvcjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSXRlcmF0b3JBZGFwdGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWFiOTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwKQEAgLTAsMCArMSw5OTEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNyBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBNZXNzYWdlUmVzb3VyY2VzCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWVzc2FnZVJlc291cmNlcy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzICBNZXNzYWdlUmVzb3VyY2VzPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGFic3RyYWN0IGNsYXNzIDxCPk1lc3NhZ2VSZXNvdXJjZXM8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ETD4KKworPFA+CitHZW5lcmFsIHB1cnBvc2UgYWJzdHJhY3QgY2xhc3MgdGhhdCBkZXNjcmliZXMgYW4gQVBJIGZvciByZXRyaWV2aW5nCisgTG9jYWxlLXNlbnNpdGl2ZSBtZXNzYWdlcyBmcm9tIHVuZGVybHlpbmcgcmVzb3VyY2UgbG9jYXRpb25zIG9mIGFuCisgdW5zcGVjaWZpZWQgZGVzaWduLCBhbmQgb3B0aW9uYWxseSB1dGlsaXppbmcgdGhlIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+CisgY2xhc3MgdG8gcHJvZHVjZSBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcyB3aXRoIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQuCisgPHA+CisgQ2FsbHMgdG8gPGNvZGU+Z2V0TWVzc2FnZSgpPC9jb2RlPiB2YXJpYW50cyB3aXRob3V0IGEgPGNvZGU+TG9jYWxlPC9jb2RlPgorIGFyZ3VtZW50IGFyZSBwcmVzdW1lZCB0byBiZSByZXF1ZXN0aW5nIGEgbWVzc2FnZSBzdHJpbmcgaW4gdGhlIGRlZmF1bHQKKyA8Y29kZT5Mb2NhbGU8L2NvZGU+IGZvciB0aGlzIEpWTS4KKyA8cD4KKyBDYWxscyB0byA8Y29kZT5nZXRNZXNzYWdlKCk8L2NvZGU+IHdpdGggYW4gdW5rbm93biBrZXksIG9yIGFuIHVua25vd24KKyA8Y29kZT5Mb2NhbGU8L2NvZGU+IHdpbGwgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZQorIDxjb2RlPnJldHVybk51bGw8L2NvZGU+IHByb3BlcnR5IGlzIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPi4gIE90aGVyd2lzZSwKKyBhIHN1aXRhYmxlIGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSByZXR1cm5lZCBpbnN0ZWFkLgorIDxwPgorIDxzdHJvbmc+SU1QTEVNRU5UQVRJT04gTk9URTwvc3Ryb25nPiAtIENsYXNzZXMgdGhhdCBleHRlbmQgdGhpcyBjbGFzcworIG11c3QgYmUgU2VyaWFsaXphYmxlIHNvIHRoYXQgaW5zdGFuY2VzIG1heSBiZSB1c2VkIGluIGRpc3RyaWJ1dGFibGUKKyBhcHBsaWNhdGlvbiBzZXJ2ZXIgZW52aXJvbm1lbnRzLgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjY29uZmlnIj5jb25maWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGlzIE1lc3NhZ2VSZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNkZWZhdWx0RmFjdG9yeSI+ZGVmYXVsdEZhY3Rvcnk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGRlZmF1bHQgTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgdXNlZCB0byBjcmVhdGUgTWVzc2FnZVJlc291cmNlcworIGluc3RhbmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5Mb2NhbGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCBMb2NhbGUgZm9yIG91ciBlbnZpcm9ubWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2ZhY3RvcnkiPmZhY3Rvcnk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiB0aGF0IGNyZWF0ZWQgdGhpcyBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNoTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2Zvcm1hdHMiPmZvcm1hdHM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBwcmV2aW91c2x5IGNyZWF0ZWQgTWVzc2FnZUZvcm1hdCBvYmplY3RzLCBrZXllZCBieSB0aGUKKyBrZXkgY29tcHV0ZWQgaW4gPGNvZGU+bWVzc2FnZUtleSgpPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjcmV0dXJuTnVsbCI+cmV0dXJuTnVsbDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTaG91bGQgd2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+IGluc3RlYWQgb2YgYW4gZXJyb3IgbWVzc2FnZSBzdHJpbmcKKyBpZiBhbiB1bmtub3duIExvY2FsZSBvciBrZXkgaXMgcmVxdWVzdGVkPzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjTWVzc2FnZVJlc291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LCBqYXZhLmxhbmcuU3RyaW5nKSI+TWVzc2FnZVJlc291cmNlczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Jm5ic3A7ZmFjdG9yeSwKKyAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBNZXNzYWdlUmVzb3VyY2VzIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNNZXNzYWdlUmVzb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4mbmJzcDtmYWN0b3J5LAorICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29uZmlnLAorICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7cmV0dXJuTnVsbCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBNZXNzYWdlUmVzb3VyY2VzIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRDb25maWcoKSI+Z2V0Q29uZmlnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldEZhY3RvcnkoKSI+Z2V0RmFjdG9yeTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5hYnN0cmFjdCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZykiPmdldE1lc3NhZ2U8L0E+PC9CPihqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIHRleHQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGZvciB0aGUgZGVmYXVsdCBMb2NhbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+Z2V0TWVzc2FnZTwvQT48L0I+KGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcwKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+Z2V0TWVzc2FnZTwvQT48L0I+KGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3RbXSZuYnNwO2FyZ3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+Z2V0TWVzc2FnZTwvQT48L0I+KGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcwLAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5nZXRNZXNzYWdlPC9BPjwvQj4oamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzAsCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcxLAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5nZXRNZXNzYWdlPC9BPjwvQj4oamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzAsCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcxLAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMiwKKyAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0TWVzc2FnZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgZm9yIHRoZSBkZWZhdWx0IExvY2FsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj5nZXRNZXNzYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzApPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj5nZXRNZXNzYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdFtdJm5ic3A7YXJncyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5nZXRNZXNzYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzAsCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcxKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPmdldE1lc3NhZ2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMCwKKyAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzEsCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPmdldE1lc3NhZ2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMCwKKyAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzEsCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcyLAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2VSZXNvdXJjZXMoamF2YS5sYW5nLlN0cmluZykiPmdldE1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGFuZCByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gZm9yIHRoZQorIGNyZWF0ZWQgYnkgdGhlIGRlZmF1bHQgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldFJldHVybk51bGwoKSI+Z2V0UmV0dXJuTnVsbDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2lzUHJlc2VudChqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+aXNQcmVzZW50PC9BPjwvQj4oamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGlzIGEgZGVmaW5lZCBtZXNzYWdlIGZvciB0aGUgc3BlY2lmaWVkCisga2V5IGluIHRoZSBzcGVjaWZpZWQgTG9jYWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2lzUHJlc2VudChqYXZhLmxhbmcuU3RyaW5nKSI+aXNQcmVzZW50PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBpcyBhIGRlZmluZWQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZAorIGtleSBpbiB0aGUgc3lzdGVtIGRlZmF1bHQgbG9jYWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNsb2NhbGVLZXkoamF2YS51dGlsLkxvY2FsZSkiPmxvY2FsZUtleTwvQT48L0I+KGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wdXRlIGFuZCByZXR1cm4gYSBrZXkgdG8gYmUgdXNlZCBpbiBjYWNoaW5nIGluZm9ybWF0aW9uIGJ5IGEgTG9jYWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nKSI+bG9nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb2cgYSBtZXNzYWdlIHRvIHRoZSBXcml0ZXIgdGhhdCBoYXMgYmVlbiBjb25maWd1cmVkIGZvciBvdXIgdXNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+bG9nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UsCisgICAgamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO3Rocm93YWJsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0xvZyBhIG1lc3NhZ2UgYW5kIGV4Y2VwdGlvbiB0byB0aGUgV3JpdGVyIHRoYXQgaGFzIGJlZW4gY29uZmlndXJlZAorIGZvciBvdXIgdXNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNtZXNzYWdlS2V5KGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcpIj5tZXNzYWdlS2V5PC9BPjwvQj4oamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXB1dGUgYW5kIHJldHVybiBhIGtleSB0byBiZSB1c2VkIGluIGNhY2hpbmcgaW5mb3JtYXRpb24KKyBieSBMb2NhbGUgYW5kIG1lc3NhZ2Uga2V5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNtZXNzYWdlS2V5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5tZXNzYWdlS2V5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsZUtleSwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXB1dGUgYW5kIHJldHVybiBhIGtleSB0byBiZSB1c2VkIGluIGNhY2hpbmcgaW5mb3JtYXRpb24KKyBieSBsb2NhbGUga2V5IGFuZCBtZXNzYWdlIGtleS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNzZXRSZXR1cm5OdWxsKGJvb2xlYW4pIj5zZXRSZXR1cm5OdWxsPC9BPjwvQj4oYm9vbGVhbiZuYnNwO3JldHVybk51bGwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Y2xpbml0PiwgY2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHJlZ2lzdGVyTmF0aXZlcywgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbmZpZyI+PCEtLSAtLT48L0E+PEgzPgorY29uZmlnPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jb25maWc8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGlzIE1lc3NhZ2VSZXNvdXJjZXMuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmYXVsdExvY2FsZSI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdExvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5Mb2NhbGUgPEI+ZGVmYXVsdExvY2FsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCBMb2NhbGUgZm9yIG91ciBlbnZpcm9ubWVudC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJmYWN0b3J5Ij48IS0tIC0tPjwvQT48SDM+CitmYWN0b3J5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4gPEI+ZmFjdG9yeTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IHRoYXQgY3JlYXRlZCB0aGlzIGluc3RhbmNlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvcm1hdHMiPjwhLS0gLS0+PC9BPjxIMz4KK2Zvcm1hdHM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuSGFzaE1hcCA8Qj5mb3JtYXRzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgcHJldmlvdXNseSBjcmVhdGVkIE1lc3NhZ2VGb3JtYXQgb2JqZWN0cywga2V5ZWQgYnkgdGhlCisga2V5IGNvbXB1dGVkIGluIDxjb2RlPm1lc3NhZ2VLZXkoKTwvY29kZT4uPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmV0dXJuTnVsbCI+PCEtLSAtLT48L0E+PEgzPgorcmV0dXJuTnVsbDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+cmV0dXJuTnVsbDwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgd2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+IGluc3RlYWQgb2YgYW4gZXJyb3IgbWVzc2FnZSBzdHJpbmcKKyBpZiBhbiB1bmtub3duIExvY2FsZSBvciBrZXkgaXMgcmVxdWVzdGVkPzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRlZmF1bHRGYWN0b3J5Ij48IS0tIC0tPjwvQT48SDM+CitkZWZhdWx0RmFjdG9yeTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPiA8Qj5kZWZhdWx0RmFjdG9yeTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSB1c2VkIHRvIGNyZWF0ZSBNZXNzYWdlUmVzb3VyY2VzCisgaW5zdGFuY2VzLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNZXNzYWdlUmVzb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitNZXNzYWdlUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TWVzc2FnZVJlc291cmNlczwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4mbmJzcDtmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgTWVzc2FnZVJlc291cmNlcyBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZhY3Rvcnk8L0NPREU+IC0gVGhlIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IHRoYXQgY3JlYXRlZCB1czxERD48Q09ERT5jb25maWc8L0NPREU+IC0gVGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGZvciB0aGlzIE1lc3NhZ2VSZXNvdXJjZXM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Ik1lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSwgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK01lc3NhZ2VSZXNvdXJjZXM8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NZXNzYWdlUmVzb3VyY2VzPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPiZuYnNwO2ZhY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO3JldHVybk51bGwpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IE1lc3NhZ2VSZXNvdXJjZXMgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mYWN0b3J5PC9DT0RFPiAtIFRoZSBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSB0aGF0IGNyZWF0ZWQgdXM8REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIFRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBmb3IgdGhpcyBNZXNzYWdlUmVzb3VyY2VzPEREPjxDT0RFPnJldHVybk51bGw8L0NPREU+IC0gVGhlIHJldHVybk51bGwgcHJvcGVydHkgd2Ugc2hvdWxkIGluaXRpYWxpemUgd2l0aDwvREw+Cis8L0REPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0Q29uZmlnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Q29uZmlnPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGYWN0b3J5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZhY3Rvcnk8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPiA8Qj5nZXRGYWN0b3J5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZXR1cm5OdWxsKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJldHVybk51bGw8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldFJldHVybk51bGw8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFJldHVybk51bGwoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFJldHVybk51bGw8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFJldHVybk51bGw8L0I+KGJvb2xlYW4mbmJzcDtyZXR1cm5OdWxsKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWVzc2FnZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TWVzc2FnZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgZm9yIHRoZSBkZWZhdWx0IExvY2FsZS48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXA8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWVzc2FnZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TWVzc2FnZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdFtdJm5ic3A7YXJncyk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwPEREPjxDT0RFPmFyZ3M8L0NPREU+IC0gQW4gYXJyYXkgb2YgcmVwbGFjZW1lbnQgcGFyYW1ldGVycyBmb3IgcGxhY2Vob2xkZXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwPEREPjxDT0RFPmFyZzA8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7MH0gaW4gdGhlIG1lc3NhZ2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwPEREPjxDT0RFPmFyZzA8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7MH0gaW4gdGhlIG1lc3NhZ2U8REQ+PENPREU+YXJnMTwvQ09ERT4gLSBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHsxfSBpbiB0aGUgbWVzc2FnZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWVzc2FnZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TWVzc2FnZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMik8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwPEREPjxDT0RFPmFyZzA8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7MH0gaW4gdGhlIG1lc3NhZ2U8REQ+PENPREU+YXJnMTwvQ09ERT4gLSBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHsxfSBpbiB0aGUgbWVzc2FnZTxERD48Q09ERT5hcmcyPC9DT0RFPiAtIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezJ9IGluIHRoZSBtZXNzYWdlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMyk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwPEREPjxDT0RFPmFyZzA8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7MH0gaW4gdGhlIG1lc3NhZ2U8REQ+PENPREU+YXJnMTwvQ09ERT4gLSBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHsxfSBpbiB0aGUgbWVzc2FnZTxERD48Q09ERT5hcmcyPC9DT0RFPiAtIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezJ9IGluIHRoZSBtZXNzYWdlPEREPjxDT0RFPmFyZzM8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7M30gaW4gdGhlIG1lc3NhZ2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGZvciB0aGUgZGVmYXVsdCBMb2NhbGUuCisgQSBudWxsIHN0cmluZyByZXN1bHQgd2lsbCBiZSByZXR1cm5lZCBieSB0aGlzIG1ldGhvZCBpZiBubyByZWxldmFudAorIG1lc3NhZ2UgcmVzb3VyY2UgaXMgZm91bmQgZm9yIHRoaXMga2V5IG9yIExvY2FsZSwgaWYgdGhlCisgPGNvZGU+cmV0dXJuTnVsbDwvY29kZT4gcHJvcGVydHkgaXMgc2V0LiAgT3RoZXJ3aXNlLCBhbiBhcHByb3ByaWF0ZQorIGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSByZXR1cm5lZC4KKyA8cD4KKyBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGEgY29uY3JldGUgc3ViY2xhc3MuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bG9jYWxlPC9DT0RFPiAtIFRoZSByZXF1ZXN0ZWQgbWVzc2FnZSBMb2NhbGUsIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgIGZvciB0aGUgc3lzdGVtIGRlZmF1bHQgTG9jYWxlPEREPjxDT0RFPmtleTwvQ09ERT4gLSBUaGUgbWVzc2FnZSBrZXkgdG8gbG9vayB1cDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPihqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0W10mbmJzcDthcmdzKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4gIEEgbnVsbCBzdHJpbmcgcmVzdWx0IHdpbGwgYmUgcmV0dXJuZWQgYnkKKyB0aGlzIG1ldGhvZCBpZiBubyByZXNvdXJjZSBidW5kbGUgaGFzIGJlZW4gY29uZmlndXJlZC48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5sb2NhbGU8L0NPREU+IC0gVGhlIHJlcXVlc3RlZCBtZXNzYWdlIExvY2FsZSwgb3IgPGNvZGU+bnVsbDwvY29kZT4KKyAgZm9yIHRoZSBzeXN0ZW0gZGVmYXVsdCBMb2NhbGU8REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwPEREPjxDT0RFPmFyZ3M8L0NPREU+IC0gQW4gYXJyYXkgb2YgcmVwbGFjZW1lbnQgcGFyYW1ldGVycyBmb3IgcGxhY2Vob2xkZXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPihqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuICBBIG51bGwgc3RyaW5nIHJlc3VsdCB3aWxsIG5ldmVyIGJlIHJldHVybmVkCisgYnkgdGhpcyBtZXRob2QuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bG9jYWxlPC9DT0RFPiAtIFRoZSByZXF1ZXN0ZWQgbWVzc2FnZSBMb2NhbGUsIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgIGZvciB0aGUgc3lzdGVtIGRlZmF1bHQgTG9jYWxlPEREPjxDT0RFPmtleTwvQ09ERT4gLSBUaGUgbWVzc2FnZSBrZXkgdG8gbG9vayB1cDxERD48Q09ERT5hcmcwPC9DT0RFPiAtIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezB9IGluIHRoZSBtZXNzYWdlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPihqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzEpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLiAgQSBudWxsIHN0cmluZyByZXN1bHQgd2lsbCBuZXZlciBiZSByZXR1cm5lZAorIGJ5IHRoaXMgbWV0aG9kLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmxvY2FsZTwvQ09ERT4gLSBUaGUgcmVxdWVzdGVkIG1lc3NhZ2UgTG9jYWxlLCBvciA8Y29kZT5udWxsPC9jb2RlPgorICBmb3IgdGhlIHN5c3RlbSBkZWZhdWx0IExvY2FsZTxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXA8REQ+PENPREU+YXJnMDwvQ09ERT4gLSBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHswfSBpbiB0aGUgbWVzc2FnZTxERD48Q09ERT5hcmcxPC9DT0RFPiAtIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezF9IGluIHRoZSBtZXNzYWdlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPihqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcyKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4gIEEgbnVsbCBzdHJpbmcgcmVzdWx0IHdpbGwgbmV2ZXIgYmUgcmV0dXJuZWQKKyBieSB0aGlzIG1ldGhvZC48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5sb2NhbGU8L0NPREU+IC0gVGhlIHJlcXVlc3RlZCBtZXNzYWdlIExvY2FsZSwgb3IgPGNvZGU+bnVsbDwvY29kZT4KKyAgZm9yIHRoZSBzeXN0ZW0gZGVmYXVsdCBMb2NhbGU8REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwPEREPjxDT0RFPmFyZzA8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7MH0gaW4gdGhlIG1lc3NhZ2U8REQ+PENPREU+YXJnMTwvQ09ERT4gLSBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHsxfSBpbiB0aGUgbWVzc2FnZTxERD48Q09ERT5hcmcyPC9DT0RFPiAtIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezJ9IGluIHRoZSBtZXNzYWdlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPihqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMyk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuICBBIG51bGwgc3RyaW5nIHJlc3VsdCB3aWxsIG5ldmVyIGJlIHJldHVybmVkCisgYnkgdGhpcyBtZXRob2QuPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bG9jYWxlPC9DT0RFPiAtIFRoZSByZXF1ZXN0ZWQgbWVzc2FnZSBMb2NhbGUsIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgIGZvciB0aGUgc3lzdGVtIGRlZmF1bHQgTG9jYWxlPEREPjxDT0RFPmtleTwvQ09ERT4gLSBUaGUgbWVzc2FnZSBrZXkgdG8gbG9vayB1cDxERD48Q09ERT5hcmcwPC9DT0RFPiAtIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezB9IGluIHRoZSBtZXNzYWdlPEREPjxDT0RFPmFyZzE8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7MX0gaW4gdGhlIG1lc3NhZ2U8REQ+PENPREU+YXJnMjwvQ09ERT4gLSBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHsyfSBpbiB0aGUgbWVzc2FnZTxERD48Q09ERT5hcmczPC9DT0RFPiAtIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezN9IGluIHRoZSBtZXNzYWdlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1ByZXNlbnQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2lzUHJlc2VudDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+aXNQcmVzZW50PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBpcyBhIGRlZmluZWQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZAorIGtleSBpbiB0aGUgc3lzdGVtIGRlZmF1bHQgbG9jYWxlLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBUaGUgbWVzc2FnZSBrZXkgdG8gbG9vayB1cDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNQcmVzZW50KGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Citpc1ByZXNlbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzUHJlc2VudDwvQj4oamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBpcyBhIGRlZmluZWQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZAorIGtleSBpbiB0aGUgc3BlY2lmaWVkIExvY2FsZS48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5sb2NhbGU8L0NPREU+IC0gVGhlIHJlcXVlc3RlZCBtZXNzYWdlIExvY2FsZSwgb3IgPGNvZGU+bnVsbDwvY29kZT4KKyAgZm9yIHRoZSBzeXN0ZW0gZGVmYXVsdCBMb2NhbGU8REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2NhbGVLZXkoamF2YS51dGlsLkxvY2FsZSkiPjwhLS0gLS0+PC9BPjxIMz4KK2xvY2FsZUtleTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bG9jYWxlS2V5PC9CPihqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlKTwvUFJFPgorPERMPgorPEREPkNvbXB1dGUgYW5kIHJldHVybiBhIGtleSB0byBiZSB1c2VkIGluIGNhY2hpbmcgaW5mb3JtYXRpb24gYnkgYSBMb2NhbGUuCisgPHN0cm9uZz5OT1RFPC9zdHJvbmc+IC0gVGhlIGxvY2FsZSBrZXkgZm9yIHRoZSBkZWZhdWx0IExvY2FsZSBpbiBvdXIKKyBlbnZpcm9ubWVudCBpcyBhIHplcm8gbGVuZ3RoIFN0cmluZy48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5sb2NhbGU8L0NPREU+IC0gVGhlIGxvY2FsZSBmb3Igd2hpY2ggYSBrZXkgaXMgZGVzaXJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZUtleShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZUtleTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bWVzc2FnZUtleTwvQj4oamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD5Db21wdXRlIGFuZCByZXR1cm4gYSBrZXkgdG8gYmUgdXNlZCBpbiBjYWNoaW5nIGluZm9ybWF0aW9uCisgYnkgTG9jYWxlIGFuZCBtZXNzYWdlIGtleS48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5sb2NhbGU8L0NPREU+IC0gVGhlIExvY2FsZSBmb3Igd2hpY2ggdGhpcyBmb3JtYXQga2V5IGlzIGNhbGN1bGF0ZWQ8REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBtZXNzYWdlIGtleSBmb3Igd2hpY2ggdGhpcyBmb3JtYXQga2V5IGlzIGNhbGN1bGF0ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VLZXkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VLZXk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm1lc3NhZ2VLZXk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGVLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+Q29tcHV0ZSBhbmQgcmV0dXJuIGEga2V5IHRvIGJlIHVzZWQgaW4gY2FjaGluZyBpbmZvcm1hdGlvbgorIGJ5IGxvY2FsZSBrZXkgYW5kIG1lc3NhZ2Uga2V5LjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmxvY2FsZUtleTwvQ09ERT4gLSBUaGUgbG9jYWxlIGtleSBmb3Igd2hpY2ggdGhpcyBjYWNoZSBrZXkgaXMgY2FsY3VsYXRlZDxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIG1lc3NhZ2Uga2V5IGZvciB3aGljaCB0aGlzIGNhY2hlIGtleSBpcyBjYWxjdWxhdGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlUmVzb3VyY2VzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5nZXRNZXNzYWdlUmVzb3VyY2VzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29uZmlnKTwvUFJFPgorPERMPgorPEREPkNyZWF0ZSBhbmQgcmV0dXJuIGFuIGluc3RhbmNlIG9mIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGZvciB0aGUKKyBjcmVhdGVkIGJ5IHRoZSBkZWZhdWx0IDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPi48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgZm9yIHRoaXMgbWVzc2FnZSBidW5kbGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2coamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+bG9nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSk8L1BSRT4KKzxETD4KKzxERD5Mb2cgYSBtZXNzYWdlIHRvIHRoZSBXcml0ZXIgdGhhdCBoYXMgYmVlbiBjb25maWd1cmVkIGZvciBvdXIgdXNlLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1lc3NhZ2U8L0NPREU+IC0gVGhlIG1lc3NhZ2UgdG8gYmUgbG9nZ2VkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2coamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlRocm93YWJsZSkiPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+bG9nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSwKKyAgICAgICAgICAgICAgICBqYXZhLmxhbmcuVGhyb3dhYmxlJm5ic3A7dGhyb3dhYmxlKTwvUFJFPgorPERMPgorPEREPkxvZyBhIG1lc3NhZ2UgYW5kIGV4Y2VwdGlvbiB0byB0aGUgV3JpdGVyIHRoYXQgaGFzIGJlZW4gY29uZmlndXJlZAorIGZvciBvdXIgdXNlLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1lc3NhZ2U8L0NPREU+IC0gVGhlIG1lc3NhZ2UgdG8gYmUgbG9nZ2VkPEREPjxDT0RFPnRocm93YWJsZTwvQ09ERT4gLSBUaGUgZXhjZXB0aW9uIHRvIGJlIGxvZ2dlZDwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VSZXNvdXJjZXMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTEwYTNkZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbApAQCAtMCwwICsxLDQwMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM3IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Cis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzICBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBhYnN0cmFjdCBjbGFzcyA8Qj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0ZhY3RvcnkgZm9yIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGluc3RhbmNlcy4gIFRoZSBnZW5lcmFsIHVzYWdlCisgcGF0dGVybiBmb3IgdGhpcyBjbGFzcyBpczoKKyA8dWw+CisgPGxpPkNhbGwgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkoKS5jcmVhdGVGYWN0b3J5KCk8L2NvZGU+IHRvIHJldHJpZXZlCisgICAgIGEgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlLjwvbGk+CisgPGxpPlNldCBwcm9wZXJ0aWVzIGFzIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0aGlzIGZhY3RvcnkgaW5zdGFuY2UgdG8gY3JlYXRlCisgICAgIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGluc3RhbmNlcyB3aXRoIGRlc2lyZWQKKyAgICAgY2hhcmFjdGVyaXN0aWNzLjwvbGk+CisgPGxpPkNhbGwgdGhlIDxjb2RlPmNyZWF0ZVJlc291cmNlcygpPC9jb2RlPiBtZXRob2Qgb2YgdGhlIGZhY3RvcnkgdG8KKyAgICAgcmV0cmlldmUgYSBuZXdseSBpbnN0YW50aWF0ZWQgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4KKyAgICAgaW5zdGFuY2UuPC9saT4KKyA8L3VsPgorPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjogPC9CPjxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOiA8L0I+PEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOiA8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuQ2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2NsYXp6Ij5jbGF6ejwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSmF2YSBjbGFzcyB0byBiZSB1c2VkIGZvcgorIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNmYWN0b3J5Q2xhc3MiPmZhY3RvcnlDbGFzczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgdG8gYmUgdXNlZCBmb3IKKyA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gaW5zdGFuY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjcmV0dXJuTnVsbCI+cmV0dXJuTnVsbDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgInJldHVybiBudWxsIiBwcm9wZXJ0eSB2YWx1ZSB0byB3aGljaCBuZXdseSBjcmVhdGVkCisgTWVzc2FnZVJlc291cmNlc3Mgc2hvdWxkIGJlIGluaXRpYWxpemVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5KCkiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2NyZWF0ZUZhY3RvcnkoKSI+Y3JlYXRlRmFjdG9yeTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbmQgcmV0dXJuIGEgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlIG9mIHRoZQorIGFwcHJvcHJpYXRlIGNsYXNzLCB3aGljaCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgY3VzdG9taXplZAorIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGluc3RhbmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+YWJzdHJhY3QgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNjcmVhdGVSZXNvdXJjZXMoamF2YS5sYW5nLlN0cmluZykiPmNyZWF0ZVJlc291cmNlczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYW5kIHJldHVybiBhIG5ld2x5IGluc3RhbnNpYXRlZCA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjZ2V0RmFjdG9yeUNsYXNzKCkiPmdldEZhY3RvcnlDbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNnZXRSZXR1cm5OdWxsKCkiPmdldFJldHVybk51bGw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjc2V0RmFjdG9yeUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGYWN0b3J5Q2xhc3M8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZmFjdG9yeUNsYXNzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI3NldFJldHVybk51bGwoYm9vbGVhbikiPnNldFJldHVybk51bGw8L0E+PC9CPihib29sZWFuJm5ic3A7cmV0dXJuTnVsbCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icmV0dXJuTnVsbCI+PCEtLSAtLT48L0E+PEgzPgorcmV0dXJuTnVsbDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+cmV0dXJuTnVsbDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgInJldHVybiBudWxsIiBwcm9wZXJ0eSB2YWx1ZSB0byB3aGljaCBuZXdseSBjcmVhdGVkCisgTWVzc2FnZVJlc291cmNlc3Mgc2hvdWxkIGJlIGluaXRpYWxpemVkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNsYXp6Ij48IS0tIC0tPjwvQT48SDM+CitjbGF6ejwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyB0cmFuc2llbnQgamF2YS5sYW5nLkNsYXNzIDxCPmNsYXp6PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKYXZhIGNsYXNzIHRvIGJlIHVzZWQgZm9yCisgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlcy48L0RMPgorPEhSPgorCis8QSBOQU1FPSJmYWN0b3J5Q2xhc3MiPjwhLS0gLS0+PC9BPjxIMz4KK2ZhY3RvcnlDbGFzczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmZhY3RvcnlDbGFzczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgdG8gYmUgdXNlZCBmb3IKKyA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gaW5zdGFuY2VzLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSgpIj48IS0tIC0tPjwvQT48SDM+CitNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIDxCPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRSZXR1cm5OdWxsKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJldHVybk51bGw8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldFJldHVybk51bGw8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFJldHVybk51bGwoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFJldHVybk51bGw8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFJldHVybk51bGw8L0I+KGJvb2xlYW4mbmJzcDtyZXR1cm5OdWxsKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlUmVzb3VyY2VzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVSZXNvdXJjZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBhYnN0cmFjdCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+Y3JlYXRlUmVzb3VyY2VzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29uZmlnKTwvUFJFPgorPERMPgorPEREPkNyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3bHkgaW5zdGFuc2lhdGVkIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+LgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy48REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXIocykgZm9yIHRoZSByZXF1ZXN0ZWQgYnVuZGxlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGYWN0b3J5Q2xhc3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmFjdG9yeUNsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RmFjdG9yeUNsYXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGYWN0b3J5Q2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZhY3RvcnlDbGFzczwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyB2b2lkIDxCPnNldEZhY3RvcnlDbGFzczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZhY3RvcnlDbGFzcyk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNyZWF0ZUZhY3RvcnkoKSI+PCEtLSAtLT48L0E+PEgzPgorY3JlYXRlRmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPiA8Qj5jcmVhdGVGYWN0b3J5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIGFuZCByZXR1cm4gYSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gaW5zdGFuY2Ugb2YgdGhlCisgYXBwcm9wcmlhdGUgY2xhc3MsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBjdXN0b21pemVkCisgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW5zdGFuY2VzLiAgSWYgbm8gc3VjaCBmYWN0b3J5IGNhbiBiZQorIGNyZWF0ZWQsIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPiBpbnN0ZWFkLjxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI2YzE5NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwKQEAgLTAsMCArMSwzNjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNyBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9GT05UPgorPEJSPgorQ2xhc3MgIFByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXM8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9ETD4KKworPFA+CitDb25jcmV0ZSBzdWJjbGFzcyBvZiA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiB0aGF0IHJlYWRzIG1lc3NhZ2Uga2V5cworIGFuZCBjb3JyZXNwb25kaW5nIHN0cmluZ3MgZnJvbSBuYW1lZCBwcm9wZXJ0eSByZXNvdXJjZXMgaW4gdGhlIHNhbWUgbWFubmVyCisgdGhhdCA8Y29kZT5qYXZhLnV0aWwuUHJvcGVydHlSZXNvdXJjZUJ1bmRsZTwvY29kZT4gZG9lcy4gIFRoZQorIDxjb2RlPmJhc2U8L2NvZGU+IHByb3BlcnR5IGRlZmluZXMgdGhlIGJhc2UgcHJvcGVydHkgcmVzb3VyY2UgbmFtZSwgYW5kCisgbXVzdCBiZSBzcGVjaWZpZWQuCisgPHA+CisgPHN0cm9uZz5JTVBMRU1FTlRBVElPTiBOT1RFPC9zdHJvbmc+IC0gVGhpcyBjbGFzcyB0cmFkZXMgbWVtb3J5IGZvcgorIHNwZWVkIGJ5IGNhY2hpbmcgYWxsIG1lc3NhZ2VzIGxvY2F0ZWQgdmlhIGdlbmVyYWxpemluZyB0aGUgTG9jYWxlIHVuZGVyCisgdGhlIG9yaWdpbmFsIGxvY2FsZSBhcyB3ZWxsLgorIFRoaXMgcmVzdWx0cyBpbiBzcGVjaWZpYyBtZXNzYWdlcyBiZWluZyBzdG9yZWQgaW4gdGhlIG1lc3NhZ2UgY2FjaGUKKyBtb3JlIHRoYW4gb25jZSwgYnV0IGltcHJvdmVzIHJlc3BvbnNlIHRpbWUgb24gc3Vic2VxdWVudCByZXF1ZXN0cyBmb3IKKyB0aGUgc2FtZSBsb2NhbGUgKyBrZXkgY29tYmluYXRpb24uCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOiA8L0I+PEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6IDwvQj48REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sI2xvY2FsZXMiPmxvY2FsZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBsb2NhbGUga2V5cyBmb3Igd2hpY2ggd2UgaGF2ZSBhbHJlYWR5IGxvYWRlZCBtZXNzYWdlcywga2V5ZWQKKyBieSB0aGUgdmFsdWUgY2FsY3VsYXRlZCBpbiA8Y29kZT5sb2NhbGVLZXkoKTwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY2FjaGUgb2YgbWVzc2FnZXMgd2UgaGF2ZSBhY2N1bXVsYXRlZCBvdmVyIHRpbWUsIGtleWVkIGJ5IHRoZQorIHZhbHVlIGNhbGN1bGF0ZWQgaW4gPGNvZGU+bWVzc2FnZUtleSgpPC9jb2RlPi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjY29uZmlnIj5jb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNkZWZhdWx0RmFjdG9yeSI+ZGVmYXVsdEZhY3Rvcnk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZmFjdG9yeSI+ZmFjdG9yeTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2Zvcm1hdHMiPmZvcm1hdHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNyZXR1cm5OdWxsIj5yZXR1cm5OdWxsPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwjUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIGphdmEubGFuZy5TdHJpbmcpIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPiZuYnNwO2ZhY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMgYWNjb3JkaW5nIHRvIHRoZQorIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCNQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSwgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Jm5ic3A7ZmFjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtyZXR1cm5OdWxsKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IFByb3BlcnR5TWVzc2FnZVJlc291cmNlcyBhY2NvcmRpbmcgdG8gdGhlCisgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZykiPmdldE1lc3NhZ2U8L0E+PC9CPihqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIHRleHQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGZvciB0aGUgZGVmYXVsdCBMb2NhbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwjbG9hZExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+bG9hZExvY2FsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGVLZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb2FkIHRoZSBtZXNzYWdlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBMb2NhbGUga2V5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldENvbmZpZygpIj5nZXRDb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRGYWN0b3J5KCkiPmdldEZhY3Rvcnk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj5nZXRNZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj5nZXRNZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+Z2V0TWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPmdldE1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5nZXRNZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0TWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPmdldE1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3RbXSkiPmdldE1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5nZXRNZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+Z2V0TWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPmdldE1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlUmVzb3VyY2VzKGphdmEubGFuZy5TdHJpbmcpIj5nZXRNZXNzYWdlUmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0UmV0dXJuTnVsbCgpIj5nZXRSZXR1cm5OdWxsPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjaXNQcmVzZW50KGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcpIj5pc1ByZXNlbnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNpc1ByZXNlbnQoamF2YS5sYW5nLlN0cmluZykiPmlzUHJlc2VudDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2xvY2FsZUtleShqYXZhLnV0aWwuTG9jYWxlKSI+bG9jYWxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjbG9nKGphdmEubGFuZy5TdHJpbmcpIj5sb2c8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlRocm93YWJsZSkiPmxvZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI21lc3NhZ2VLZXkoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2VLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNtZXNzYWdlS2V5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5tZXNzYWdlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjc2V0UmV0dXJuTnVsbChib29sZWFuKSI+c2V0UmV0dXJuTnVsbDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJsb2NhbGVzIj48IS0tIC0tPjwvQT48SDM+Citsb2NhbGVzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2hNYXAgPEI+bG9jYWxlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIGxvY2FsZSBrZXlzIGZvciB3aGljaCB3ZSBoYXZlIGFscmVhZHkgbG9hZGVkIG1lc3NhZ2VzLCBrZXllZAorIGJ5IHRoZSB2YWx1ZSBjYWxjdWxhdGVkIGluIDxjb2RlPmxvY2FsZUtleSgpPC9jb2RlPi48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuSGFzaE1hcCA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY2FjaGUgb2YgbWVzc2FnZXMgd2UgaGF2ZSBhY2N1bXVsYXRlZCBvdmVyIHRpbWUsIGtleWVkIGJ5IHRoZQorIHZhbHVlIGNhbGN1bGF0ZWQgaW4gPGNvZGU+bWVzc2FnZUtleSgpPC9jb2RlPi48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Jm5ic3A7ZmFjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzIGFjY29yZGluZyB0byB0aGUKKyBzcGVjaWZpZWQgcGFyYW1ldGVycy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mYWN0b3J5PC9DT0RFPiAtIFRoZSBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSB0aGF0IGNyZWF0ZWQgdXM8REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIFRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBmb3IgdGhpcyBNZXNzYWdlUmVzb3VyY2VzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSwgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK1Byb3BlcnR5TWVzc2FnZVJlc291cmNlczwvSDM+Cis8UFJFPgorcHVibGljIDxCPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4mbmJzcDtmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7cmV0dXJuTnVsbCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzIGFjY29yZGluZyB0byB0aGUKKyBzcGVjaWZpZWQgcGFyYW1ldGVycy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mYWN0b3J5PC9DT0RFPiAtIFRoZSBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSB0aGF0IGNyZWF0ZWQgdXM8REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIFRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBmb3IgdGhpcyBNZXNzYWdlUmVzb3VyY2VzPEREPjxDT0RFPnJldHVybk51bGw8L0NPREU+IC0gVGhlIHJldHVybk51bGwgcHJvcGVydHkgd2Ugc2hvdWxkIGluaXRpYWxpemUgd2l0aDwvREw+Cis8L0REPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWVzc2FnZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TWVzc2FnZTwvQj4oamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgZm9yIHRoZSBkZWZhdWx0IExvY2FsZS4KKyBBIG51bGwgc3RyaW5nIHJlc3VsdCB3aWxsIGJlIHJldHVybmVkIGJ5IHRoaXMgbWV0aG9kIGlmIG5vIHJlbGV2YW50CisgbWVzc2FnZSByZXNvdXJjZSBpcyBmb3VuZCBmb3IgdGhpcyBrZXkgb3IgTG9jYWxlLCBpZiB0aGUKKyA8Y29kZT5yZXR1cm5OdWxsPC9jb2RlPiBwcm9wZXJ0eSBpcyBzZXQuICBPdGhlcndpc2UsIGFuIGFwcHJvcHJpYXRlCisgZXJyb3IgbWVzc2FnZSB3aWxsIGJlIHJldHVybmVkLgorIDxwPgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgYSBjb25jcmV0ZSBzdWJjbGFzcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZykiPmdldE1lc3NhZ2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5sb2NhbGU8L0NPREU+IC0gVGhlIHJlcXVlc3RlZCBtZXNzYWdlIExvY2FsZSwgb3IgPGNvZGU+bnVsbDwvY29kZT4KKyAgZm9yIHRoZSBzeXN0ZW0gZGVmYXVsdCBMb2NhbGU8REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2FkTG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Citsb2FkTG9jYWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5sb2FkTG9jYWxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlS2V5KTwvUFJFPgorPERMPgorPEREPkxvYWQgdGhlIG1lc3NhZ2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIExvY2FsZSBrZXkuICBGb3IgdGhpcworIGltcGxlbWVudGF0aW9uLCB0aGUgPGNvZGU+Y29uZmlnPC9jb2RlPiBwcm9wZXJ0eSBzaG91bGQgY29udGFpbiBhIGZ1bGx5CisgcXVhbGlmaWVkIHBhY2thZ2UgYW5kIHJlc291cmNlIG5hbWUsIHNlcGFyYXRlZCBieSBwZXJpb2RzLCBvZiBhIHNlcmllcworIG9mIHByb3BlcnR5IHJlc291cmNlcyB0byBiZSBsb2FkZWQgZnJvbSB0aGUgY2xhc3MgbG9hZGVyIHRoYXQgY3JlYXRlZAorIHRoaXMgUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzIGluc3RhbmNlLiAgVGhpcyBpcyBleGFjdGx5IHRoZSBzYW1lIG5hbWUKKyBmb3JtYXQgeW91IHdvdWxkIHVzZSB3aGVuIHV0aWxpemluZyB0aGUKKyA8Y29kZT5qYXZhLnV0aWwuUHJvcGVydHlSZXNvdXJjZUJ1bmRsZTwvY29kZT4gY2xhc3MuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bG9jYWxlS2V5PC9DT0RFPiAtIExvY2FsZSBrZXkgZm9yIHRoZSBtZXNzYWdlcyB0byBiZSByZXRyaWV2ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDk0YmM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwKQEAgLTAsMCArMSwyNDUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNyBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Cis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9GT05UPgorPEJSPgorQ2xhc3MgIFByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvREw+CisKKzxQPgorRmFjdG9yeSBmb3IgPGNvZGU+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBpbnN0YW5jZXMuICBUaGUKKyBjb25maWd1cmF0aW9uIHBhcmFtdGVyIGZvciBzdWNoIGluc3RhbmNlcyBpcyB0aGUgYmFzZSBKYXZhIHBhY2thZ2UKKyBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZW50cmllcyBmcm9tIHdoaWNoIG91ciBrZXlzIGFuZCB2YWx1ZXMgd2lsbCBiZQorIGxvYWRlZC4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzogPC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjY2xhenoiPmNsYXp6PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2ZhY3RvcnlDbGFzcyI+ZmFjdG9yeUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI3JldHVybk51bGwiPnJldHVybk51bGw8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSgpIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2NyZWF0ZVJlc291cmNlcyhqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlUmVzb3VyY2VzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3bHkgaW5zdGFuc2lhdGVkIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNjcmVhdGVGYWN0b3J5KCkiPmNyZWF0ZUZhY3Rvcnk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjZ2V0RmFjdG9yeUNsYXNzKCkiPmdldEZhY3RvcnlDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNnZXRSZXR1cm5OdWxsKCkiPmdldFJldHVybk51bGw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjc2V0RmFjdG9yeUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGYWN0b3J5Q2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjc2V0UmV0dXJuTnVsbChib29sZWFuKSI+c2V0UmV0dXJuTnVsbDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PGNsaW5pdD4sIGNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCByZWdpc3Rlck5hdGl2ZXMsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSgpIj48IS0tIC0tPjwvQT48SDM+CitQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY3JlYXRlUmVzb3VyY2VzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVSZXNvdXJjZXM8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+Y3JlYXRlUmVzb3VyY2VzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29uZmlnKTwvUFJFPgorPERMPgorPEREPkNyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3bHkgaW5zdGFuc2lhdGVkIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+LgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNjcmVhdGVSZXNvdXJjZXMoamF2YS5sYW5nLlN0cmluZykiPmNyZWF0ZVJlc291cmNlczwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIENvbmZpZ3VyYXRpb24gcGFyYW1ldGVyKHMpIGZvciB0aGUgcmVxdWVzdGVkIGJ1bmRsZTwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQzMTNjMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sCkBAIC0wLDAgKzEsMTAxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM3IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgIFByb3BlcnR5VXRpbHMKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlByb3BlcnR5VXRpbHMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgUHJvcGVydHlVdGlsczwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUHJvcGVydHlVdGlsczwvQj4KKzwvUFJFPgorPEhSPgorPEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXQgc29tZSBwb2ludCBhZnRlciBTdHJ1dHMgMS4wIGZpbmFsLCB3aWxsIGJlIHJlcGxhY2VkIGJ5CisgIGFuIGVxdWl2YWxlbnQgY2xhc3MgaW4gdGhlIEpha2FydGEgQ29tbW9ucyBCZWFudXRpbHMgcGFja2FnZS48L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UHJvcGVydHlVdGlsczwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4KKworPFA+CitVdGlsaXR5IG1ldGhvZHMgZm9yIHVzaW5nIEphdmEgUmVmbGVjdGlvbiBBUElzIHRvIGZhY2lsaXRhdGUgZ2VuZXJpYworIHByb3BlcnR5IGdldHRlciBhbmQgc2V0dGVyIG9wZXJhdGlvbnMgb24gSmF2YSBvYmplY3RzLiAgTXVjaCBvZiB0aGlzCisgY29kZSB3YXMgb3JpZ2luYWxseSBpbmNsdWRlZCBpbiA8Y29kZT5CZWFuVXRpbHM8L2NvZGU+LCBidXQgaGFzIGJlZW4KKyBzZXBhcmF0ZWQgYmVjYXVzZSBvZiB0aGUgdm9sdW1lIG9mIGNvZGUgaW52b2x2ZWQuCisgPHA+CisgSW4gZ2VuZXJhbCwgdGhlIG9iamVjdHMgdGhhdCBhcmUgZXhhbWluZWQgYW5kIG1vZGlmaWVkIHVzaW5nIHRoZXNlCisgbWV0aG9kcyBhcmUgZXhwZWN0ZWQgdG8gY29uZm9ybSB0byB0aGUgcHJvcGVydHkgZ2V0dGVyIGFuZCBzZXR0ZXIgbWV0aG9kCisgbmFtaW5nIGNvbnZlbnRpb25zIGRlc2NyaWJlZCBpbiB0aGUgSmF2YUJlYW5zIFNwZWNpZmljYXRpb24gKFZlcnNpb24gMS4wLjEpLgorIE5vIGRhdGEgdHlwZSBjb252ZXJzaW9ucyBhcmUgcGVyZm9ybWVkLCBhbmQgdGhlcmUgYXJlIG5vIHVzYWdlIG9mIGFueQorIDxjb2RlPlByb3BlcnR5RWRpdG9yPC9jb2RlPiBjbGFzc2VzIHRoYXQgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQsIGFsdGhvdWdoCisgYSBjb252ZW5pZW50IHdheSB0byBhY2Nlc3MgdGhlIHJlZ2lzdGVyZWQgY2xhc3NlcyB0aGVtc2VsdmVzIGlzIGluY2x1ZGVkLgorIDxwPgorIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBjbGFzcywgdGhyZWUgZm9ybWF0cyBmb3IgcmVmZXJlbmNpbmcgYSBwYXJ0aWN1bGFyCisgcHJvcGVydHkgdmFsdWUgb2YgYSBiZWFuIGFyZSBkZWZpbmVkLCB3aXRoIHRoZSBsYXlvdXQgb2YgYW4gaWRlbnRpZnlpbmcKKyBTdHJpbmcgaW4gcGFyZW50aGVzZXM6CisgPHVsPgorIDxsaT48c3Ryb25nPlNpbXBsZSAoPGNvZGU+bmFtZTwvY29kZT4pPC9zdHJvbmc+IC0gVGhlIHNwZWNpZmllZAorICAgICA8Y29kZT5uYW1lPC9jb2RlPiBpZGVudGlmaWVzIGFuIGluZGl2aWR1YWwgcHJvcGVydHkgb2YgYSBwYXJ0aWN1bGFyCisgICAgIEphdmFCZWFuLiAgVGhlIG5hbWUgb2YgdGhlIGFjdHVhbCBnZXR0ZXIgb3Igc2V0dGVyIG1ldGhvZCB0byBiZSB1c2VkCisgICAgIGlzIGRldGVybWluZWQgdXNpbmcgc3RhbmRhcmQgSmF2YUJlYW5zIGluc3Ryb3NwZWN0aW9uLCBzbyB0aGF0ICh1bmxlc3MKKyAgICAgb3ZlcnJpZGRlbiBieSBhIDxjb2RlPkJlYW5JbmZvPC9jb2RlPiBjbGFzcywgYSBwcm9wZXJ0eSBuYW1lZCAieHl6IgorICAgICB3aWxsIGhhdmUgYSBnZXR0ZXIgbWV0aG9kIG5hbWVkIDxjb2RlPmdldFh5eigpPC9jb2RlPiBvciAoZm9yIGJvb2xlYW4KKyAgICAgcHJvcGVydGllcyBvbmx5KSA8Y29kZT5pc1h5eigpPC9jb2RlPiwgYW5kIGEgc2V0dGVyIG1ldGhvZCBuYW1lZAorICAgICA8Y29kZT5zZXRYeXooKTwvY29kZT4uPC9saT4KKyA8bGk+PHN0cm9uZz5OZXN0ZWQgKDxjb2RlPm5hbWUxLm5hbWUyLm5hbWUzPC9jb2RlPik8L3N0cm9uZz4gVGhlIGZpcnN0CisgICAgIG5hbWUgZWxlbWVudCBpcyB1c2VkIHRvIHNlbGVjdCBhIHByb3BlcnR5IGdldHRlciwgYXMgZm9yIHNpbXBsZQorICAgICByZWZlcmVuY2VzIGFib3ZlLiAgVGhlIG9iamVjdCByZXR1cm5lZCBmb3IgdGhpcyBwcm9wZXJ0eSBpcyB0aGVuCisgICAgIGNvbnN1bHRlZCwgdXNpbmcgdGhlIHNhbWUgYXBwcm9hY2gsIGZvciBhIHByb3BlcnR5IGdldHRlciBmb3IgYQorICAgICBwcm9wZXJ0eSBuYW1lZCA8Y29kZT5uYW1lMjwvY29kZT4sIGFuZCBzbyBvbi4gIFRoZSBwcm9wZXJ0eSB2YWx1ZSB0aGF0CisgICAgIGlzIHVsdGltYXRlbHkgcmV0cmlldmVkIG9yIG1vZGlmaWVkIGlzIHRoZSBvbmUgaWRlbnRpZmllZCBieSB0aGUKKyAgICAgbGFzdCBuYW1lIGVsZW1lbnQuPC9saT4KKyA8bGk+PHN0cm9uZz5JbmRleGVkICg8Y29kZT5uYW1lW2luZGV4XTwvY29kZT4pPC9zdHJvbmc+IC0gVGhlIHVuZGVybHlpbmcKKyAgICAgcHJvcGVydHkgdmFsdWUgaXMgYXNzdW1lZCB0byBiZSBhbiBhcnJheSwgb3IgdGhpcyBKYXZhQmVhbiBpcyBhc3N1bWVkCisgICAgIHRvIGhhdmUgaW5kZXhlZCBwcm9wZXJ0eSBnZXR0ZXIgYW5kIHNldHRlciBtZXRob2RzLiAgVGhlIGFwcHJvcHJpYXRlCisgICAgICh6ZXJvLXJlbGF0aXZlKSBlbnRyeSBpbiB0aGUgYXJyYXkgaXMgc2VsZWN0ZWQuPC9saT4KKyA8bGk+PHN0cm9uZz5Db21iaW5lZCAoPGNvZGU+bmFtZTEubmFtZTJbaW5kZXhdLm5hbWUzPC9zdHJvbmc+IC0gVmFyaW91cworICAgICBmb3JtcyBjb21iaW5pbmcgbmVzdGVkIGFuZCBpbmRleGVkIHJlZmVyZW5jZXMgYXJlIGFsc28gc3VwcG9ydGVkLjwvbGk+CisgPC91bD4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuLCBSYWxwaCBTY2hhZXIsIENocmlzIEF1ZGxleTwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gSU5ORVIgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI2RlYnVnIj5kZWJ1ZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgZGVidWdnaW5nIGRldGFpbCBsZXZlbCBmb3IgdGhpcyBjb21wb25lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sIj5GYXN0SGFzaE1hcDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjZGVzY3JpcHRvcnNDYWNoZSI+ZGVzY3JpcHRvcnNDYWNoZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgY2FjaGUgb2YgUHJvcGVydHlEZXNjcmlwdG9yIGFycmF5cyBmb3IgYmVhbnMgd2UgaGF2ZSBhbHJlYWR5CisgaW50cm9zcGVjdGVkLCBrZXllZCBieSB0aGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgb2YgdGhpcyBvYmplY3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2NoYXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjSU5ERVhFRF9ERUxJTSI+SU5ERVhFRF9ERUxJTTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgZGVsaW1pdGVyIHRoYXQgcHJlY2VlZHMgdGhlIHplcm8tcmVsYXRpdmUgc3Vic2NyaXB0IGZvciBhbgorIGluZGV4ZWQgcmVmZXJlbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtjaGFyPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI0lOREVYRURfREVMSU0yIj5JTkRFWEVEX0RFTElNMjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgZGVsaW1pdGVyIHRoYXQgZm9sbG93cyB0aGUgemVyby1yZWxhdGl2ZSBzdWJzY3JpcHQgZm9yIGFuCisgaW5kZXhlZCByZWZlcmVuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2NoYXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjTkVTVEVEX0RFTElNIj5ORVNURURfREVMSU08L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIGRlbGltaXRlciB0aGF0IHNlcGFyYXRlcyB0aGUgY29tcG9uZW50cyBvZiBhIG5lc3RlZCByZWZlcmVuY2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNQcm9wZXJ0eVV0aWxzKCkiPlByb3BlcnR5VXRpbHM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4ocGFja2FnZSBwcml2YXRlKSBzdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIzxjbGluaXQ+KCkiPjxjbGluaXQ+PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjY29weVByb3BlcnRpZXMoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPmNvcHlQcm9wZXJ0aWVzPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2Rlc3QsCisgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7b3JpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvcHkgcHJvcGVydHkgdmFsdWVzIGZyb20gdGhlICJvcmlnaW4iIGJlYW4gdG8gdGhlICJkZXN0aW5hdGlvbiIgYmVhbgorIGZvciBhbGwgY2FzZXMgd2hlcmUgdGhlIHByb3BlcnR5IG5hbWVzIGFyZSB0aGUgc2FtZSAoZXZlbiB0aG91Z2ggdGhlCisgYWN0dWFsIGdldHRlciBhbmQgc2V0dGVyIG1ldGhvZHMgbWlnaHQgaGF2ZSBiZWVuIGN1c3RvbWl6ZWQgdmlhCisgPGNvZGU+QmVhbkluZm88L2NvZGU+IGNsYXNzZXMpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI2Rlc2NyaWJlKGphdmEubGFuZy5PYmplY3QpIj5kZXNjcmliZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBlbnRpcmUgc2V0IG9mIHByb3BlcnRpZXMgZm9yIHdoaWNoIHRoZSBzcGVjaWZpZWQgYmVhbgorIHByb3ZpZGVzIGEgcmVhZCBtZXRob2QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI2dldEFjY2Vzc2libGVNZXRob2QoamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kKSI+Z2V0QWNjZXNzaWJsZU1ldGhvZDwvQT48L0I+KGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZCZuYnNwO21ldGhvZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhbiBhY2Nlc3NpYmxlIG1ldGhvZCAodGhhdCBpcywgb25lIHRoYXQgY2FuIGJlIGludm9rZWQgdmlhCisgcmVmbGVjdGlvbikgdGhhdCBpbXBsZW1lbnRzIHRoZSBzcGVjaWZpZWQgTWV0aG9kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNnZXRBY2Nlc3NpYmxlTWV0aG9kRnJvbUludGVyZmFjZU5lc3QoamF2YS5sYW5nLkNsYXNzLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuQ2xhc3NbXSkiPmdldEFjY2Vzc2libGVNZXRob2RGcm9tSW50ZXJmYWNlTmVzdDwvQT48L0I+KGphdmEubGFuZy5DbGFzcyZuYnNwO2NsYXp6LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXRob2ROYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5DbGFzc1tdJm5ic3A7cGFyYW1ldGVyVHlwZXMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gYW4gYWNjZXNzaWJsZSBtZXRob2QgKHRoYXQgaXMsIG9uZSB0aGF0IGNhbiBiZSBpbnZva2VkIHZpYQorIHJlZmxlY3Rpb24pIHRoYXQgaW1wbGVtZW50cyB0aGUgc3BlY2lmaWVkIG1ldGhvZCwgYnkgc2Nhbm5pbmcgdGhyb3VnaAorIGFsbCBpbXBsZW1lbnRlZCBpbnRlcmZhY2VzIGFuZCBzdWJpbnRlcmZhY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjZ2V0RGVidWcoKSI+Z2V0RGVidWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNnZXRJbmRleGVkUHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPmdldEluZGV4ZWRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGluZGV4ZWQgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZAorIGJlYW4sIHdpdGggbm8gdHlwZSBjb252ZXJzaW9ucy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNnZXRJbmRleGVkUHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgaW50KSI+Z2V0SW5kZXhlZFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7aW5kZXgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgaW5kZXhlZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkCisgYmVhbiwgd2l0aCBubyB0eXBlIGNvbnZlcnNpb25zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI2dldE5lc3RlZFByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXROZXN0ZWRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSAocG9zc2libHkgbmVzdGVkKSBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkCisgbmFtZSwgZm9yIHRoZSBzcGVjaWZpZWQgYmVhbiwgd2l0aCBubyB0eXBlIGNvbnZlcnNpb25zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI2dldFByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZCBiZWFuLAorIG5vIG1hdHRlciB3aGljaCBwcm9wZXJ0eSByZWZlcmVuY2UgZm9ybWF0IGlzIHVzZWQsIHdpdGggbm8KKyB0eXBlIGNvbnZlcnNpb25zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmJlYW5zLlByb3BlcnR5RGVzY3JpcHRvcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNnZXRQcm9wZXJ0eURlc2NyaXB0b3IoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPmdldFByb3BlcnR5RGVzY3JpcHRvcjwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0cmlldmUgdGhlIHByb3BlcnR5IGRlc2NyaXB0b3IgZm9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlCisgc3BlY2lmaWVkIGJlYW4sIG9yIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGVyZSBpcyBubyBzdWNoCisgZGVzY3JpcHRvci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5iZWFucy5Qcm9wZXJ0eURlc2NyaXB0b3JbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNnZXRQcm9wZXJ0eURlc2NyaXB0b3JzKGphdmEubGFuZy5PYmplY3QpIj5nZXRQcm9wZXJ0eURlc2NyaXB0b3JzPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXRyaWV2ZSB0aGUgcHJvcGVydHkgZGVzY3JpcHRvcnMgZm9yIHRoZSBzcGVjaWZpZWQgYmVhbiwgaW50cm9zcGVjdGluZworIGFuZCBjYWNoaW5nIHRoZW0gdGhlIGZpcnN0IHRpbWUgYSBwYXJ0aWN1bGFyIGJlYW4gY2xhc3MgaXMgZW5jb3VudGVyZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5DbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNnZXRQcm9wZXJ0eUVkaXRvckNsYXNzKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRQcm9wZXJ0eUVkaXRvckNsYXNzPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBKYXZhIENsYXNzIHJlcGVzZW50aW5nIHRoZSBwcm9wZXJ0eSBlZGl0b3IgY2xhc3MgdGhhdCBoYXMKKyBiZWVuIHJlZ2lzdGVyZWQgZm9yIHRoaXMgcHJvcGVydHkgKGlmIGFueSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5DbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNnZXRQcm9wZXJ0eVR5cGUoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPmdldFByb3BlcnR5VHlwZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBKYXZhIENsYXNzIHJlcHJlc2VudGluZyB0aGUgcHJvcGVydHkgdHlwZSBvZiB0aGUgc3BlY2lmaWVkCisgcHJvcGVydHksIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZXJlIGlzIG5vIHN1Y2ggcHJvcGVydHkgZm9yIHRoZQorIHNwZWNpZmllZCBiZWFuLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjZ2V0UmVhZE1ldGhvZChqYXZhLmJlYW5zLlByb3BlcnR5RGVzY3JpcHRvcikiPmdldFJlYWRNZXRob2Q8L0E+PC9CPihqYXZhLmJlYW5zLlByb3BlcnR5RGVzY3JpcHRvciZuYnNwO2Rlc2NyaXB0b3IpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gYW4gYWNjZXNzaWJsZSBwcm9wZXJ0eSBnZXR0ZXIgbWV0aG9kIGZvciB0aGlzIHByb3BlcnR5LAorIGlmIHRoZXJlIGlzIG9uZTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNnZXRTaW1wbGVQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0U2ltcGxlUHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHNpbXBsZSBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkCisgYmVhbiwgd2l0aCBubyB0eXBlIGNvbnZlcnNpb25zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjZ2V0V3JpdGVNZXRob2QoamF2YS5iZWFucy5Qcm9wZXJ0eURlc2NyaXB0b3IpIj5nZXRXcml0ZU1ldGhvZDwvQT48L0I+KGphdmEuYmVhbnMuUHJvcGVydHlEZXNjcmlwdG9yJm5ic3A7ZGVzY3JpcHRvcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiBhbiBhY2Nlc3NpYmxlIHByb3BlcnR5IHNldHRlciBtZXRob2QgZm9yIHRoaXMgcHJvcGVydHksCisgaWYgdGhlcmUgaXMgb25lOyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sI3NldERlYnVnKGludCkiPnNldERlYnVnPC9BPjwvQj4oaW50Jm5ic3A7bmV3RGVidWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNzZXRJbmRleGVkUHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgaW50LCBqYXZhLmxhbmcuT2JqZWN0KSI+c2V0SW5kZXhlZFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7aW5kZXgsCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7U2V0IHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGluZGV4ZWQgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZAorIGJlYW4sIHdpdGggbm8gdHlwZSBjb252ZXJzaW9ucy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5VXRpbHMuaHRtbCNzZXRJbmRleGVkUHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPnNldEluZGV4ZWRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1NldCB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBpbmRleGVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQKKyBiZWFuLCB3aXRoIG5vIHR5cGUgY29udmVyc2lvbnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjc2V0TmVzdGVkUHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPnNldE5lc3RlZFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1NldCB0aGUgdmFsdWUgb2YgdGhlIChwb3NzaWJseSBuZXN0ZWQpIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQKKyBuYW1lLCBmb3IgdGhlIHNwZWNpZmllZCBiZWFuLCB3aXRoIG5vIHR5cGUgY29udmVyc2lvbnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1NldCB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sCisgbm8gbWF0dGVyIHdoaWNoIHByb3BlcnR5IHJlZmVyZW5jZSBmb3JtYXQgaXMgdXNlZCwgd2l0aCBubworIHR5cGUgY29udmVyc2lvbnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwjc2V0U2ltcGxlUHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPnNldFNpbXBsZVByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1NldCB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBzaW1wbGUgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZCBiZWFuLAorIHdpdGggbm8gdHlwZSBjb252ZXJzaW9ucy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iSU5ERVhFRF9ERUxJTSI+PCEtLSAtLT48L0E+PEgzPgorSU5ERVhFRF9ERUxJTTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIDxCPklOREVYRURfREVMSU08L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBkZWxpbWl0ZXIgdGhhdCBwcmVjZWVkcyB0aGUgemVyby1yZWxhdGl2ZSBzdWJzY3JpcHQgZm9yIGFuCisgaW5kZXhlZCByZWZlcmVuY2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iSU5ERVhFRF9ERUxJTTIiPjwhLS0gLS0+PC9BPjxIMz4KK0lOREVYRURfREVMSU0yPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGNoYXIgPEI+SU5ERVhFRF9ERUxJTTI8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBkZWxpbWl0ZXIgdGhhdCBmb2xsb3dzIHRoZSB6ZXJvLXJlbGF0aXZlIHN1YnNjcmlwdCBmb3IgYW4KKyBpbmRleGVkIHJlZmVyZW5jZS48L0RMPgorPEhSPgorCis8QSBOQU1FPSJORVNURURfREVMSU0iPjwhLS0gLS0+PC9BPjxIMz4KK05FU1RFRF9ERUxJTTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBjaGFyIDxCPk5FU1RFRF9ERUxJTTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIGRlbGltaXRlciB0aGF0IHNlcGFyYXRlcyB0aGUgY29tcG9uZW50cyBvZiBhIG5lc3RlZCByZWZlcmVuY2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVidWciPjwhLS0gLS0+PC9BPjxIMz4KK2RlYnVnPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBpbnQgPEI+ZGVidWc8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIGZvciB0aGlzIGNvbXBvbmVudC48L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZXNjcmlwdG9yc0NhY2hlIj48IS0tIC0tPjwvQT48SDM+CitkZXNjcmlwdG9yc0NhY2hlPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPiA8Qj5kZXNjcmlwdG9yc0NhY2hlPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgY2FjaGUgb2YgUHJvcGVydHlEZXNjcmlwdG9yIGFycmF5cyBmb3IgYmVhbnMgd2UgaGF2ZSBhbHJlYWR5CisgaW50cm9zcGVjdGVkLCBrZXllZCBieSB0aGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgb2YgdGhpcyBvYmplY3QuPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlByb3BlcnR5VXRpbHMoKSI+PCEtLSAtLT48L0E+PEgzPgorUHJvcGVydHlVdGlsczwvSDM+Cis8UFJFPgorcHVibGljIDxCPlByb3BlcnR5VXRpbHM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXREZWJ1ZygpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWJ1ZzwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBpbnQgPEI+Z2V0RGVidWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXREZWJ1ZyhpbnQpIj48IS0tIC0tPjwvQT48SDM+CitzZXREZWJ1ZzwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyB2b2lkIDxCPnNldERlYnVnPC9CPihpbnQmbmJzcDtuZXdEZWJ1Zyk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorPEhSPgorCis8QSBOQU1FPSI8Y2xpbml0PigpIj48IS0tIC0tPjwvQT48SDM+Cis8Y2xpbml0PjwvSDM+Cis8UFJFPgorc3RhdGljIHZvaWQgPEI+PGNsaW5pdD48L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb3B5UHJvcGVydGllcyhqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorY29weVByb3BlcnRpZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5jb3B5UHJvcGVydGllczwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2Rlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO29yaWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNvcHkgcHJvcGVydHkgdmFsdWVzIGZyb20gdGhlICJvcmlnaW4iIGJlYW4gdG8gdGhlICJkZXN0aW5hdGlvbiIgYmVhbgorIGZvciBhbGwgY2FzZXMgd2hlcmUgdGhlIHByb3BlcnR5IG5hbWVzIGFyZSB0aGUgc2FtZSAoZXZlbiB0aG91Z2ggdGhlCisgYWN0dWFsIGdldHRlciBhbmQgc2V0dGVyIG1ldGhvZHMgbWlnaHQgaGF2ZSBiZWVuIGN1c3RvbWl6ZWQgdmlhCisgPGNvZGU+QmVhbkluZm88L2NvZGU+IGNsYXNzZXMpLiAgTm8gY29udmVyc2lvbnMgYXJlIHBlcmZvcm1lZCBvbiB0aGUKKyBhY3R1YWwgcHJvcGVydHkgdmFsdWVzIC0tIGl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgdmFsdWVzIHJldHJpZXZlZCBmcm9tCisgdGhlIG9yaWdpbiBiZWFuIGFyZSBhc3NpZ25tZW50LWNvbXBhdGlibGUgd2l0aCB0aGUgdHlwZXMgZXhwZWN0ZWQgYnkKKyB0aGUgZGVzdGluYXRpb24gYmVhbi48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kZXN0PC9DT0RFPiAtIERlc3RpbmF0aW9uIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgbW9kaWZpZWQ8REQ+PENPREU+b3JpZzwvQ09ERT4gLSBPcmlnaW4gYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSByZXRyaWV2ZWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlCisgIGFjY2VzcyB0byB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIDxjb2RlPmRlc3Q8L2NvZGU+IG9yCisgIDxjb2RlPm9yaWc8L2NvZGU+IGFyZ3VtZW50IGlzIG51bGw8REQ+PENPREU+amF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kCisgIHRocm93cyBhbiBleGNlcHRpb248REQ+PENPREU+amF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBhY2Nlc3NvciBtZXRob2QgZm9yIHRoaXMKKyAgcHJvcGV0eSBjYW5ub3QgYmUgZm91bmQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRlc2NyaWJlKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitkZXNjcmliZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLnV0aWwuTWFwIDxCPmRlc2NyaWJlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSBlbnRpcmUgc2V0IG9mIHByb3BlcnRpZXMgZm9yIHdoaWNoIHRoZSBzcGVjaWZpZWQgYmVhbgorIHByb3ZpZGVzIGEgcmVhZCBtZXRob2QuICBUaGlzIG1hcCBjb250YWlucyB0aGUgdW5jb252ZXJ0ZWQgcHJvcGVydHkKKyB2YWx1ZXMgZm9yIGFsbCBwcm9wZXJ0aWVzIGZvciB3aGljaCBhIHJlYWQgbWV0aG9kIGlzIHByb3ZpZGVkCisgKGkuZS4gd2hlcmUgdGhlIDxjb2RlPmdldFJlYWRNZXRob2QoKTwvY29kZT4gcmV0dXJucyBub24tbnVsbCkuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBCZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIHRvIGJlIGV4dHJhY3RlZDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgY2FsbGVyIGRvZXMgbm90IGhhdmUKKyAgYWNjZXNzIHRvIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2Q8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiA8Y29kZT5iZWFuPC9jb2RlPiBpcyBudWxsPEREPjxDT0RFPmphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZAorICB0aHJvd3MgYW4gZXhjZXB0aW9uPEREPjxDT0RFPmphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gYWNjZXNzb3IgbWV0aG9kIGZvciB0aGlzCisgIHByb3BldHkgY2Fubm90IGJlIGZvdW5kPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJbmRleGVkUHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEluZGV4ZWRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPmdldEluZGV4ZWRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgaW5kZXhlZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkCisgYmVhbiwgd2l0aCBubyB0eXBlIGNvbnZlcnNpb25zLiAgVGhlIHplcm8tcmVsYXRpdmUgaW5kZXggb2YgdGhlCisgcmVxdWlyZWQgdmFsdWUgbXVzdCBiZSBpbmNsdWRlZCAoaW4gc3F1YXJlIGJyYWNrZXRzKSBhcyBhIHN1ZmZpeCB0bworIHRoZSBwcm9wZXJ0eSBuYW1lLCBvciA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IHdpbGwgYmUKKyB0aHJvd24uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBCZWFuIHdob3NlIHByb3BlcnR5IGlzIHRvIGJlIGV4dHJhY3RlZDxERD48Q09ERT5uYW1lPC9DT0RFPiAtIDxjb2RlPnByb3BlcnR5bmFtZVtpbmRleF08L2NvZGU+IG9mIHRoZSBwcm9wZXJ0eSB2YWx1ZQorICB0byBiZSBleHRyYWN0ZWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlCisgIGFjY2VzcyB0byB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgPGNvZGU+YmVhbjwvY29kZT4gb3IKKyAgPGNvZGU+bmFtZTwvY29kZT4gaXMgbnVsbDxERD48Q09ERT5qYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QKKyAgdGhyb3dzIGFuIGV4Y2VwdGlvbjxERD48Q09ERT5qYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGFjY2Vzc29yIG1ldGhvZCBmb3IgdGhpcworICBwcm9wZXR5IGNhbm5vdCBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SW5kZXhlZFByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEluZGV4ZWRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPmdldEluZGV4ZWRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtpbmRleCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGluZGV4ZWQgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZAorIGJlYW4sIHdpdGggbm8gdHlwZSBjb252ZXJzaW9ucy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIEJlYW4gd2hvc2UgcHJvcGVydHkgaXMgdG8gYmUgZXh0cmFjdGVkPEREPjxDT0RFPm5hbWU8L0NPREU+IC0gU2ltcGxlIHByb3BlcnR5IG5hbWUgb2YgdGhlIHByb3BlcnR5IHZhbHVlIHRvIGJlIGV4dHJhY3RlZDxERD48Q09ERT5pbmRleDwvQ09ERT4gLSBJbmRleCBvZiB0aGUgcHJvcGVydHkgdmFsdWUgdG8gYmUgZXh0cmFjdGVkPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZQorICBhY2Nlc3MgdG8gdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZDxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9DT0RFPiAtIGlmIDxjb2RlPmJlYW48L2NvZGU+IG9yCisgIDxjb2RlPm5hbWU8L2NvZGU+IGlzIG51bGw8REQ+PENPREU+amF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kCisgIHRocm93cyBhbiBleGNlcHRpb248REQ+PENPREU+amF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBhY2Nlc3NvciBtZXRob2QgZm9yIHRoaXMKKyAgcHJvcGV0eSBjYW5ub3QgYmUgZm91bmQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5lc3RlZFByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXROZXN0ZWRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPmdldE5lc3RlZFByb3BlcnR5PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgKHBvc3NpYmx5IG5lc3RlZCkgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZAorIG5hbWUsIGZvciB0aGUgc3BlY2lmaWVkIGJlYW4sIHdpdGggbm8gdHlwZSBjb252ZXJzaW9ucy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIEJlYW4gd2hvc2UgcHJvcGVydHkgaXMgdG8gYmUgZXh0cmFjdGVkPEREPjxDT0RFPm5hbWU8L0NPREU+IC0gUG9zc2libHkgbmVzdGVkIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIGV4dHJhY3RlZDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgY2FsbGVyIGRvZXMgbm90IGhhdmUKKyAgYWNjZXNzIHRvIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2Q8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiA8Y29kZT5iZWFuPC9jb2RlPiBvcgorICA8Y29kZT5uYW1lPC9jb2RlPiBpcyBudWxsPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBuZXN0ZWQgcmVmZXJlbmNlIHRvIGEKKyAgcHJvcGVydHkgcmV0dXJucyBudWxsPEREPjxDT0RFPmphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZAorICB0aHJvd3MgYW4gZXhjZXB0aW9uPEREPjxDT0RFPmphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gYWNjZXNzb3IgbWV0aG9kIGZvciB0aGlzCisgIHByb3BldHkgY2Fubm90IGJlIGZvdW5kPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLk9iamVjdCA8Qj5nZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sCisgbm8gbWF0dGVyIHdoaWNoIHByb3BlcnR5IHJlZmVyZW5jZSBmb3JtYXQgaXMgdXNlZCwgd2l0aCBubworIHR5cGUgY29udmVyc2lvbnMuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBCZWFuIHdob3NlIHByb3BlcnR5IGlzIHRvIGJlIGV4dHJhY3RlZDxERD48Q09ERT5uYW1lPC9DT0RFPiAtIFBvc3NpYmx5IGluZGV4ZWQgYW5kL29yIG5lc3RlZCBuYW1lIG9mIHRoZSBwcm9wZXJ0eQorICB0byBiZSBleHRyYWN0ZWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlCisgIGFjY2VzcyB0byB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgPGNvZGU+YmVhbjwvY29kZT4gb3IKKyAgPGNvZGU+bmFtZTwvY29kZT4gaXMgbnVsbDxERD48Q09ERT5qYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QKKyAgdGhyb3dzIGFuIGV4Y2VwdGlvbjxERD48Q09ERT5qYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGFjY2Vzc29yIG1ldGhvZCBmb3IgdGhpcworICBwcm9wZXR5IGNhbm5vdCBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHlEZXNjcmlwdG9yKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eURlc2NyaXB0b3I8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5iZWFucy5Qcm9wZXJ0eURlc2NyaXB0b3IgPEI+Z2V0UHJvcGVydHlEZXNjcmlwdG9yPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXRyaWV2ZSB0aGUgcHJvcGVydHkgZGVzY3JpcHRvciBmb3IgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUKKyBzcGVjaWZpZWQgYmVhbiwgb3IgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZXJlIGlzIG5vIHN1Y2gKKyBkZXNjcmlwdG9yLiAgVGhpcyBtZXRob2QgcmVzb2x2ZXMgaW5kZXhlZCBhbmQgbmVzdGVkIHByb3BlcnR5CisgcmVmZXJlbmNlcyBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgb3RoZXIgbWV0aG9kcyBpbiB0aGlzIGNsYXNzLCBleGNlcHQKKyB0aGF0IGlmIHRoZSBsYXN0IChvciBvbmx5KSBuYW1lIGVsZW1lbnQgaXMgaW5kZXhlZCwgdGhlIGRlc2NyaXB0b3IKKyBmb3IgdGhlIGxhc3QgcmVzb2x2ZWQgcHJvcGVydHkgaXRzZWxmIGlzIHJldHVybmVkLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gQmVhbiBmb3Igd2hpY2ggYSBwcm9wZXJ0eSBkZXNjcmlwdG9yIGlzIHJlcXVlc3RlZDxERD48Q09ERT5uYW1lPC9DT0RFPiAtIFBvc3NpYmx5IGluZGV4ZWQgYW5kL29yIG5lc3RlZCBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBmb3IKKyAgd2hpY2ggYSBwcm9wZXJ0eSBkZXNjcmlwdG9yIGlzIHJlcXVlc3RlZDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgY2FsbGVyIGRvZXMgbm90IGhhdmUKKyAgYWNjZXNzIHRvIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2Q8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiA8Y29kZT5iZWFuPC9jb2RlPiBvcgorICA8Y29kZT5uYW1lPC9jb2RlPiBpcyBudWxsPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBuZXN0ZWQgcmVmZXJlbmNlIHRvIGEKKyAgcHJvcGVydHkgcmV0dXJucyBudWxsPEREPjxDT0RFPmphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZAorICB0aHJvd3MgYW4gZXhjZXB0aW9uPEREPjxDT0RFPmphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gYWNjZXNzb3IgbWV0aG9kIGZvciB0aGlzCisgIHByb3BldHkgY2Fubm90IGJlIGZvdW5kPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eURlc2NyaXB0b3JzKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eURlc2NyaXB0b3JzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEuYmVhbnMuUHJvcGVydHlEZXNjcmlwdG9yW10gPEI+Z2V0UHJvcGVydHlEZXNjcmlwdG9yczwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4pPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHJpZXZlIHRoZSBwcm9wZXJ0eSBkZXNjcmlwdG9ycyBmb3IgdGhlIHNwZWNpZmllZCBiZWFuLCBpbnRyb3NwZWN0aW5nCisgYW5kIGNhY2hpbmcgdGhlbSB0aGUgZmlyc3QgdGltZSBhIHBhcnRpY3VsYXIgYmVhbiBjbGFzcyBpcyBlbmNvdW50ZXJlZC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIEJlYW4gZm9yIHdoaWNoIHByb3BlcnR5IGRlc2NyaXB0b3JzIGFyZSByZXF1ZXN0ZWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiA8Y29kZT5iZWFuPC9jb2RlPiBpcyBudWxsPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eUVkaXRvckNsYXNzKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eUVkaXRvckNsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5DbGFzcyA8Qj5nZXRQcm9wZXJ0eUVkaXRvckNsYXNzPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiB0aGUgSmF2YSBDbGFzcyByZXBlc2VudGluZyB0aGUgcHJvcGVydHkgZWRpdG9yIGNsYXNzIHRoYXQgaGFzCisgYmVlbiByZWdpc3RlcmVkIGZvciB0aGlzIHByb3BlcnR5IChpZiBhbnkpLiAgVGhpcyBtZXRob2QgZm9sbG93cyB0aGUKKyBzYW1lIG5hbWUgcmVzb2x1dGlvbiBydWxlcyB1c2VkIGJ5IDxjb2RlPmdldFByb3BlcnR5RGVzY3JpcHRvcigpPC9jb2RlPiwKKyBzbyBpZiB0aGUgbGFzdCBlbGVtZW50IG9mIGEgbmFtZSByZWZlcmVuY2UgaXMgaW5kZXhlZCwgdGhlIHByb3BlcnR5CisgZWRpdG9yIGZvciB0aGUgdW5kZXJseWluZyBwcm9wZXJ0eSdzIGNsYXNzIGlzIHJldHVybmVkLgorIDxwPgorIE5vdGUgdGhhdCA8Y29kZT5udWxsPC9jb2RlPiB3aWxsIGJlIHJldHVybmVkIGlmIHRoZXJlIGlzIG5vIHByb3BlcnR5LAorIG9yIGlmIHRoZXJlIGlzIG5vIHJlZ2lzdGVyZWQgcHJvcGVydHkgZWRpdG9yIGNsYXNzLiAgQmVjYXVzZSB0aGlzCisgcmV0dXJuIHZhbHVlIGlzIGFtYmlndW91cywgeW91IHNob3VsZCBkZXRlcm1pbmUgdGhlIGV4aXN0ZW5jZSBvZiB0aGUKKyBwcm9wZXJ0eSBpdHNlbGYgYnkgb3RoZXIgbWVhbnMuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBCZWFuIGZvciB3aGljaCBhIHByb3BlcnR5IGRlc2NyaXB0b3IgaXMgcmVxdWVzdGVkPEREPjxDT0RFPm5hbWU8L0NPREU+IC0gUG9zc2libHkgaW5kZXhlZCBhbmQvb3IgbmVzdGVkIG5hbWUgb2YgdGhlIHByb3BlcnR5IGZvcgorICB3aGljaCBhIHByb3BlcnR5IGRlc2NyaXB0b3IgaXMgcmVxdWVzdGVkPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZQorICBhY2Nlc3MgdG8gdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZDxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9DT0RFPiAtIGlmIDxjb2RlPmJlYW48L2NvZGU+IG9yCisgIDxjb2RlPm5hbWU8L2NvZGU+IGlzIG51bGw8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIG5lc3RlZCByZWZlcmVuY2UgdG8gYQorICBwcm9wZXJ0eSByZXR1cm5zIG51bGw8REQ+PENPREU+amF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kCisgIHRocm93cyBhbiBleGNlcHRpb248REQ+PENPREU+amF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBhY2Nlc3NvciBtZXRob2QgZm9yIHRoaXMKKyAgcHJvcGV0eSBjYW5ub3QgYmUgZm91bmQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5VHlwZShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHlUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5DbGFzcyA8Qj5nZXRQcm9wZXJ0eVR5cGU8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlIEphdmEgQ2xhc3MgcmVwcmVzZW50aW5nIHRoZSBwcm9wZXJ0eSB0eXBlIG9mIHRoZSBzcGVjaWZpZWQKKyBwcm9wZXJ0eSwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlcmUgaXMgbm8gc3VjaCBwcm9wZXJ0eSBmb3IgdGhlCisgc3BlY2lmaWVkIGJlYW4uICBUaGlzIG1ldGhvZCBmb2xsb3dzIHRoZSBzYW1lIG5hbWUgcmVzb2x1dGlvbiBydWxlcworIHVzZWQgYnkgPGNvZGU+Z2V0UHJvcGVydHlEZXNjcmlwdG9yKCk8L2NvZGU+LCBzbyBpZiB0aGUgbGFzdCBlbGVtZW50Cisgb2YgYSBuYW1lIHJlZmVyZW5jZSBpcyBpbmRleGVkLCB0aGUgdHlwZSBvZiB0aGUgcHJvcGVydHkgaXRzZWxmIHdpbGwKKyBiZSByZXR1cm5lZC4gIElmIHRoZSBsYXN0IChvciBvbmx5KSBlbGVtZW50IGhhcyBubyBwcm9wZXJ0eSB3aXRoIHRoZQorIHNwZWNpZmllZCBuYW1lLCA8Y29kZT5udWxsPC9jb2RlPiBpcyByZXR1cm5lZC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIEJlYW4gZm9yIHdoaWNoIGEgcHJvcGVydHkgZGVzY3JpcHRvciBpcyByZXF1ZXN0ZWQ8REQ+PENPREU+bmFtZTwvQ09ERT4gLSBQb3NzaWJseSBpbmRleGVkIGFuZC9vciBuZXN0ZWQgbmFtZSBvZiB0aGUgcHJvcGVydHkgZm9yCisgIHdoaWNoIGEgcHJvcGVydHkgZGVzY3JpcHRvciBpcyByZXF1ZXN0ZWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlCisgIGFjY2VzcyB0byB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgPGNvZGU+YmVhbjwvY29kZT4gb3IKKyAgPGNvZGU+bmFtZTwvY29kZT4gaXMgbnVsbDxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgbmVzdGVkIHJlZmVyZW5jZSB0byBhCisgIHByb3BlcnR5IHJldHVybnMgbnVsbDxERD48Q09ERT5qYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QKKyAgdGhyb3dzIGFuIGV4Y2VwdGlvbjxERD48Q09ERT5qYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGFjY2Vzc29yIG1ldGhvZCBmb3IgdGhpcworICBwcm9wZXR5IGNhbm5vdCBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UmVhZE1ldGhvZChqYXZhLmJlYW5zLlByb3BlcnR5RGVzY3JpcHRvcikiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJlYWRNZXRob2Q8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kIDxCPmdldFJlYWRNZXRob2Q8L0I+KGphdmEuYmVhbnMuUHJvcGVydHlEZXNjcmlwdG9yJm5ic3A7ZGVzY3JpcHRvcik8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIGFuIGFjY2Vzc2libGUgcHJvcGVydHkgZ2V0dGVyIG1ldGhvZCBmb3IgdGhpcyBwcm9wZXJ0eSwKKyBpZiB0aGVyZSBpcyBvbmU7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZGVzY3JpcHRvcjwvQ09ERT4gLSBQcm9wZXJ0eSBkZXNjcmlwdG9yIHRvIHJldHVybiBhIGdldHRlciBmb3I8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNpbXBsZVByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTaW1wbGVQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPmdldFNpbXBsZVByb3BlcnR5PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHNpbXBsZSBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkCisgYmVhbiwgd2l0aCBubyB0eXBlIGNvbnZlcnNpb25zLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gQmVhbiB3aG9zZSBwcm9wZXJ0eSBpcyB0byBiZSBleHRyYWN0ZWQ8REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBiZSBleHRyYWN0ZWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlCisgIGFjY2VzcyB0byB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgPGNvZGU+YmVhbjwvY29kZT4gb3IKKyAgPGNvZGU+bmFtZTwvY29kZT4gaXMgbnVsbDxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwcm9wZXJ0eSBuYW1lCisgIGlzIG5lc3RlZCBvciBpbmRleGVkPEREPjxDT0RFPmphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZAorICB0aHJvd3MgYW4gZXhjZXB0aW9uPEREPjxDT0RFPmphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gYWNjZXNzb3IgbWV0aG9kIGZvciB0aGlzCisgIHByb3BldHkgY2Fubm90IGJlIGZvdW5kPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRXcml0ZU1ldGhvZChqYXZhLmJlYW5zLlByb3BlcnR5RGVzY3JpcHRvcikiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFdyaXRlTWV0aG9kPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZCA8Qj5nZXRXcml0ZU1ldGhvZDwvQj4oamF2YS5iZWFucy5Qcm9wZXJ0eURlc2NyaXB0b3ImbmJzcDtkZXNjcmlwdG9yKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gYW4gYWNjZXNzaWJsZSBwcm9wZXJ0eSBzZXR0ZXIgbWV0aG9kIGZvciB0aGlzIHByb3BlcnR5LAorIGlmIHRoZXJlIGlzIG9uZTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kZXNjcmlwdG9yPC9DT0RFPiAtIFByb3BlcnR5IGRlc2NyaXB0b3IgdG8gcmV0dXJuIGEgc2V0dGVyIGZvcjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SW5kZXhlZFByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitzZXRJbmRleGVkUHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5zZXRJbmRleGVkUHJvcGVydHk8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5TZXQgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgaW5kZXhlZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkCisgYmVhbiwgd2l0aCBubyB0eXBlIGNvbnZlcnNpb25zLiAgVGhlIHplcm8tcmVsYXRpdmUgaW5kZXggb2YgdGhlCisgcmVxdWlyZWQgdmFsdWUgbXVzdCBiZSBpbmNsdWRlZCAoaW4gc3F1YXJlIGJyYWNrZXRzKSBhcyBhIHN1ZmZpeCB0bworIHRoZSBwcm9wZXJ0eSBuYW1lLCBvciA8Y29kZT5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L2NvZGU+IHdpbGwgYmUKKyB0aHJvd24uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBCZWFuIHdob3NlIHByb3BlcnR5IGlzIHRvIGJlIG1vZGlmaWVkPEREPjxDT0RFPm5hbWU8L0NPREU+IC0gPGNvZGU+cHJvcGVydHluYW1lW2luZGV4XTwvY29kZT4gb2YgdGhlIHByb3BlcnR5IHZhbHVlCisgIHRvIGJlIG1vZGlmaWVkPEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFZhbHVlIHRvIHdoaWNoIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgZWxlbWVudAorICBzaG91bGQgYmUgc2V0PERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZQorICBhY2Nlc3MgdG8gdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZDxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9DT0RFPiAtIGlmIDxjb2RlPmJlYW48L2NvZGU+IG9yCisgIDxjb2RlPm5hbWU8L2NvZGU+IGlzIG51bGw8REQ+PENPREU+amF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kCisgIHRocm93cyBhbiBleGNlcHRpb248REQ+PENPREU+amF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBhY2Nlc3NvciBtZXRob2QgZm9yIHRoaXMKKyAgcHJvcGV0eSBjYW5ub3QgYmUgZm91bmQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEluZGV4ZWRQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitzZXRJbmRleGVkUHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5zZXRJbmRleGVkUHJvcGVydHk8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7aW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+U2V0IHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIGluZGV4ZWQgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZAorIGJlYW4sIHdpdGggbm8gdHlwZSBjb252ZXJzaW9ucy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIEJlYW4gd2hvc2UgcHJvcGVydHkgaXMgdG8gYmUgc2V0PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gU2ltcGxlIHByb3BlcnR5IG5hbWUgb2YgdGhlIHByb3BlcnR5IHZhbHVlIHRvIGJlIHNldDxERD48Q09ERT5pbmRleDwvQ09ERT4gLSBJbmRleCBvZiB0aGUgcHJvcGVydHkgdmFsdWUgdG8gYmUgc2V0PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFZhbHVlIHRvIHdoaWNoIHRoZSBpbmRleGVkIHByb3BlcnR5IGVsZW1lbnQgaXMgdG8gYmUgc2V0PERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZQorICBhY2Nlc3MgdG8gdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZDxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9DT0RFPiAtIGlmIDxjb2RlPmJlYW48L2NvZGU+IG9yCisgIDxjb2RlPm5hbWU8L2NvZGU+IGlzIG51bGw8REQ+PENPREU+amF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kCisgIHRocm93cyBhbiBleGNlcHRpb248REQ+PENPREU+amF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBhY2Nlc3NvciBtZXRob2QgZm9yIHRoaXMKKyAgcHJvcGV0eSBjYW5ub3QgYmUgZm91bmQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5lc3RlZFByb3BlcnR5KGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitzZXROZXN0ZWRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyB2b2lkIDxCPnNldE5lc3RlZFByb3BlcnR5PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlNldCB0aGUgdmFsdWUgb2YgdGhlIChwb3NzaWJseSBuZXN0ZWQpIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQKKyBuYW1lLCBmb3IgdGhlIHNwZWNpZmllZCBiZWFuLCB3aXRoIG5vIHR5cGUgY29udmVyc2lvbnMuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBCZWFuIHdob3NlIHByb3BlcnR5IGlzIHRvIGJlIG1vZGlmaWVkPEREPjxDT0RFPm5hbWU8L0NPREU+IC0gUG9zc2libHkgbmVzdGVkIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIG1vZGlmaWVkPEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFZhbHVlIHRvIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyB0byBiZSBzZXQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlCisgIGFjY2VzcyB0byB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgPGNvZGU+YmVhbjwvY29kZT4gb3IKKyAgPGNvZGU+bmFtZTwvY29kZT4gaXMgbnVsbDxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgbmVzdGVkIHJlZmVyZW5jZSB0byBhCisgIHByb3BlcnR5IHJldHVybnMgbnVsbDxERD48Q09ERT5qYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QKKyAgdGhyb3dzIGFuIGV4Y2VwdGlvbjxERD48Q09ERT5qYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGFjY2Vzc29yIG1ldGhvZCBmb3IgdGhpcworICBwcm9wZXR5IGNhbm5vdCBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+U2V0IHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQgYmVhbiwKKyBubyBtYXR0ZXIgd2hpY2ggcHJvcGVydHkgcmVmZXJlbmNlIGZvcm1hdCBpcyB1c2VkLCB3aXRoIG5vCisgdHlwZSBjb252ZXJzaW9ucy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIEJlYW4gd2hvc2UgcHJvcGVydHkgaXMgdG8gYmUgbW9kaWZpZWQ8REQ+PENPREU+bmFtZTwvQ09ERT4gLSBQb3NzaWJseSBpbmRleGVkIGFuZC9vciBuZXN0ZWQgbmFtZSBvZiB0aGUgcHJvcGVydHkKKyAgdG8gYmUgbW9kaWZpZWQ8REQ+PENPREU+dmFsdWU8L0NPREU+IC0gVmFsdWUgdG8gd2hpY2ggdGhpcyBwcm9wZXJ0eSBpcyB0byBiZSBzZXQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlCisgIGFjY2VzcyB0byB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgPGNvZGU+YmVhbjwvY29kZT4gb3IKKyAgPGNvZGU+bmFtZTwvY29kZT4gaXMgbnVsbDxERD48Q09ERT5qYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QKKyAgdGhyb3dzIGFuIGV4Y2VwdGlvbjxERD48Q09ERT5qYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGFjY2Vzc29yIG1ldGhvZCBmb3IgdGhpcworICBwcm9wZXR5IGNhbm5vdCBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2ltcGxlUHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNpbXBsZVByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+c2V0U2ltcGxlUHJvcGVydHk8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+U2V0IHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHNpbXBsZSBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sCisgd2l0aCBubyB0eXBlIGNvbnZlcnNpb25zLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gQmVhbiB3aG9zZSBwcm9wZXJ0eSBpcyB0byBiZSBtb2RpZmllZDxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIG1vZGlmaWVkPEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFZhbHVlIHRvIHdoaWNoIHRoZSBwcm9wZXJ0eSBzaG91bGQgYmUgc2V0PERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZQorICBhY2Nlc3MgdG8gdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZDxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9DT0RFPiAtIGlmIDxjb2RlPmJlYW48L2NvZGU+IG9yCisgIDxjb2RlPm5hbWU8L2NvZGU+IGlzIG51bGw8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgcHJvcGVydHkgbmFtZSBpcworICBuZXN0ZWQgb3IgaW5kZXhlZDxERD48Q09ERT5qYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QKKyAgdGhyb3dzIGFuIGV4Y2VwdGlvbjxERD48Q09ERT5qYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGFjY2Vzc29yIG1ldGhvZCBmb3IgdGhpcworICBwcm9wZXR5IGNhbm5vdCBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWNjZXNzaWJsZU1ldGhvZChqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBY2Nlc3NpYmxlTWV0aG9kPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QgPEI+Z2V0QWNjZXNzaWJsZU1ldGhvZDwvQj4oamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kJm5ic3A7bWV0aG9kKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gYW4gYWNjZXNzaWJsZSBtZXRob2QgKHRoYXQgaXMsIG9uZSB0aGF0IGNhbiBiZSBpbnZva2VkIHZpYQorIHJlZmxlY3Rpb24pIHRoYXQgaW1wbGVtZW50cyB0aGUgc3BlY2lmaWVkIE1ldGhvZC4gIElmIG5vIHN1Y2ggbWV0aG9kCisgY2FuIGJlIGZvdW5kLCByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWV0aG9kPC9DT0RFPiAtIFRoZSBtZXRob2QgdGhhdCB3ZSB3aXNoIHRvIGNhbGw8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjY2Vzc2libGVNZXRob2RGcm9tSW50ZXJmYWNlTmVzdChqYXZhLmxhbmcuQ2xhc3MsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5DbGFzc1tdKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWNjZXNzaWJsZU1ldGhvZEZyb21JbnRlcmZhY2VOZXN0PC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QgPEI+Z2V0QWNjZXNzaWJsZU1ldGhvZEZyb21JbnRlcmZhY2VOZXN0PC9CPihqYXZhLmxhbmcuQ2xhc3MmbmJzcDtjbGF6eiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5DbGFzc1tdJm5ic3A7cGFyYW1ldGVyVHlwZXMpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiBhbiBhY2Nlc3NpYmxlIG1ldGhvZCAodGhhdCBpcywgb25lIHRoYXQgY2FuIGJlIGludm9rZWQgdmlhCisgcmVmbGVjdGlvbikgdGhhdCBpbXBsZW1lbnRzIHRoZSBzcGVjaWZpZWQgbWV0aG9kLCBieSBzY2FubmluZyB0aHJvdWdoCisgYWxsIGltcGxlbWVudGVkIGludGVyZmFjZXMgYW5kIHN1YmludGVyZmFjZXMuICBJZiBubyBzdWNoIE1ldGhvZAorIGNhbiBiZSBmb3VuZCwgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNsYXp6PC9DT0RFPiAtIFBhcmVudCBjbGFzcyBmb3IgdGhlIGludGVyZmFjZXMgdG8gYmUgY2hlY2tlZDxERD48Q09ERT5tZXRob2ROYW1lPC9DT0RFPiAtIE1ldGhvZCBuYW1lIG9mIHRoZSBtZXRob2Qgd2Ugd2lzaCB0byBjYWxsPEREPjxDT0RFPnBhcmFtZXRlclR5cGVzPC9DT0RFPiAtIFRoZSBwYXJhbWV0ZXIgdHlwZSBzaWduYXR1cmVzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQcm9wZXJ0eVV0aWxzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE3NjZmMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwKQEAgLTAsMCArMSw2NzAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNyBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBSZXF1ZXN0VXRpbHMKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXF1ZXN0VXRpbHMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyAgUmVxdWVzdFV0aWxzPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5SZXF1ZXN0VXRpbHM8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UmVxdWVzdFV0aWxzPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8L0RMPgorCis8UD4KK0dlbmVyYWwgcHVycG9zZSB1dGlsaXR5IG1ldGhvZHMgcmVsYXRlZCB0byBwcm9jZXNzaW5nIGEgc2VydmxldCByZXF1ZXN0CisgaW4gdGhlIFN0cnV0cyBjb250cm9sbGVyIGZyYW1ld29yay4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLnV0aWwuTG9jYWxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCBMb2NhbGUgZm9yIG91ciBzZXJ2ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNSZXF1ZXN0VXRpbHMoKSI+UmVxdWVzdFV0aWxzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5uZXQuVVJMPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjYWJzb2x1dGVVUkwoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPmFic29sdXRlVVJMPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbmQgcmV0dXJuIGFuIGFic29sdXRlIFVSTCBmb3IgdGhlIHNwZWNpZmllZCBjb250ZXh0LXJlbGF0aXZlCisgcGF0aCwgYmFzZWQgb24gdGhlIHNlcnZlciBhbmQgY29udGV4dCBpbmZvcm1hdGlvbiBpbiB0aGUgc3BlY2lmaWVkCisgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS51dGlsLk1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2NvbXB1dGVQYXJhbWV0ZXJzKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+Y29tcHV0ZVBhcmFtZXRlcnM8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtSWQsCisgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1OYW1lLAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtUHJvcGVydHksCisgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1TY29wZSwKKyAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5LAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlLAorICAgICAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO3RyYW5zYWN0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcHV0ZSBhIHNldCBvZiBxdWVyeSBwYXJhbWV0ZXJzIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseSBhZGRlZCB0bworIGEgZ2VuZXJhdGVkIFVSTC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2NvbXB1dGVVUkwoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEudXRpbC5NYXAsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj5jb21wdXRlVVJMPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZvcndhcmQsCisgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtocmVmLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSwKKyAgICAgICAgICAgamF2YS51dGlsLk1hcCZuYnNwO3BhcmFtcywKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2FuY2hvciwKKyAgICAgICAgICAgYm9vbGVhbiZuYnNwO3JlZGlyZWN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcHV0ZSBhIGh5cGVybGluayBVUkwgYmFzZWQgb24gdGhlIDxjb2RlPmZvcndhcmQ8L2NvZGU+LAorIDxjb2RlPmhyZWY8L2NvZGU+LCBvciA8Y29kZT5wYWdlPC9jb2RlPiBwYXJhbWV0ZXIgdGhhdCBpcyBub3QgbnVsbC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2xvb2t1cChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmxvb2t1cDwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TG9jYXRlIGFuZCByZXR1cm4gdGhlIHNwZWNpZmllZCBiZWFuLCBmcm9tIGFuIG9wdGlvbmFsbHkgc3BlY2lmaWVkCisgc2NvcGUsIGluIHRoZSBzcGVjaWZpZWQgcGFnZSBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjbG9va3VwKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHksCisgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TG9jYXRlIGFuZCByZXR1cm4gdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sIGZyb20KKyBhbiBvcHRpb25hbGx5IHNwZWNpZmllZCBzY29wZSwgaW4gdGhlIHNwZWNpZmllZCBwYWdlIGNvbnRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNtZXNzYWdlKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtidW5kbGUsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb29rIHVwIGFuZCByZXR1cm4gYSBtZXNzYWdlIHN0cmluZywgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjbWVzc2FnZShqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+bWVzc2FnZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtidW5kbGUsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgIGphdmEubGFuZy5PYmplY3RbXSZuYnNwO2FyZ3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb29rIHVwIGFuZCByZXR1cm4gYSBtZXNzYWdlIHN0cmluZywgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjcG9wdWxhdGUoamF2YS5sYW5nLk9iamVjdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnBvcHVsYXRlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BvcHVsYXRlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBzcGVjaWZpZWQgSmF2YUJlYW4gZnJvbSB0aGUgc3BlY2lmaWVkCisgSFRUUCByZXF1ZXN0LCBiYXNlZCBvbiBtYXRjaGluZyBlYWNoIHBhcmFtZXRlciBuYW1lIGFnYWluc3QgdGhlCisgY29ycmVzcG9uZGluZyBKYXZhQmVhbnMgInByb3BlcnR5IHNldHRlciIgbWV0aG9kcyBpbiB0aGUgYmVhbidzIGNsYXNzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjcG9wdWxhdGUoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnBvcHVsYXRlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4LAorICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3N1ZmZpeCwKKyAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UG9wdWxhdGUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNwZWNpZmllZCBKYXZhQmVhbiBmcm9tIHRoZSBzcGVjaWZpZWQKKyBIVFRQIHJlcXVlc3QsIGJhc2VkIG9uIG1hdGNoaW5nIGVhY2ggcGFyYW1ldGVyIG5hbWUgKHBsdXMgYW4gb3B0aW9uYWwKKyBwcmVmaXggYW5kL29yIHN1ZmZpeCkgYWdhaW5zdCB0aGUgY29ycmVzcG9uZGluZyBKYXZhQmVhbnMgInByb3BlcnR5Cisgc2V0dGVyIiBtZXRob2RzIGluIHRoZSBiZWFuJ3MgY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNwcmVzZW50KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+cHJlc2VudDwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtidW5kbGUsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdHJ1ZSBpZiBhIG1lc3NhZ2Ugc3RyaW5nIGZvciB0aGUgc3BlY2lmaWVkIG1lc3NhZ2Uga2V5CisgaXMgcHJlc2VudCBmb3IgdGhlIHNwZWNpZmllZCBMb2NhbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNwcmludGFibGVVUkwoamF2YS5uZXQuVVJMKSI+cHJpbnRhYmxlVVJMPC9BPjwvQj4oamF2YS5uZXQuVVJMJm5ic3A7dXJsKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcHV0ZSB0aGUgcHJpbnRhYmxlIHJlcHJlc2VudGF0aW9uIG9mIGEgVVJMLCBsZWF2aW5nIG9mZiB0aGUKKyBzY2hlbWUvaG9zdC9wb3J0IHBhcnQgaWYgbm8gaG9zdCBpcyBzcGVjaWZpZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubmV0LlVSTDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3JlcXVlc3RVUkwoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlcXVlc3RVUkw8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgVVJMIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjc2F2ZUV4Y2VwdGlvbihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlRocm93YWJsZSkiPnNhdmVFeGNlcHRpb248L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICBqYXZhLmxhbmcuVGhyb3dhYmxlJm5ic3A7ZXhjZXB0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2F2ZSB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBhcyBhIHJlcXVlc3QgYXR0cmlidXRlIGZvciBsYXRlciB1c2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubmV0LlVSTDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3NlcnZlclVSTChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+c2VydmVyVVJMPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIFVSTCByZXByZXNlbnRpbmcgdGhlIHNjaGVtZSwgc2VydmVyLCBhbmQgcG9ydCBudW1iZXIgb2YKKyB0aGUgY3VycmVudCByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZGVmYXVsdExvY2FsZSI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdExvY2FsZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS51dGlsLkxvY2FsZSA8Qj5kZWZhdWx0TG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBkZWZhdWx0IExvY2FsZSBmb3Igb3VyIHNlcnZlci48L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUmVxdWVzdFV0aWxzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1JlcXVlc3RVdGlsczwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJlcXVlc3RVdGlsczwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYWJzb2x1dGVVUkwoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2Fic29sdXRlVVJMPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubmV0LlVSTCA8Qj5hYnNvbHV0ZVVSTDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubmV0Lk1hbGZvcm1lZFVSTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNyZWF0ZSBhbmQgcmV0dXJuIGFuIGFic29sdXRlIFVSTCBmb3IgdGhlIHNwZWNpZmllZCBjb250ZXh0LXJlbGF0aXZlCisgcGF0aCwgYmFzZWQgb24gdGhlIHNlcnZlciBhbmQgY29udGV4dCBpbmZvcm1hdGlvbiBpbiB0aGUgc3BlY2lmaWVkCisgcmVxdWVzdC48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cGF0aDwvQ09ERT4gLSBUaGUgY29udGV4dC1yZWxhdGl2ZSBwYXRoIChtdXN0IHN0YXJ0IHdpdGggJy8nKTxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLm5ldC5NYWxmb3JtZWRVUkxFeGNlcHRpb248L0NPREU+IC0gaWYgd2UgY2Fubm90IGNyZWF0ZSBhbiBhYnNvbHV0ZSBVUkw8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbXB1dGVQYXJhbWV0ZXJzKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorY29tcHV0ZVBhcmFtZXRlcnM8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS51dGlsLk1hcCA8Qj5jb21wdXRlUGFyYW1ldGVyczwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1JZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1OYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbVByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbVNjb3BlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO3RyYW5zYWN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXB1dGUgYSBzZXQgb2YgcXVlcnkgcGFyYW1ldGVycyB0aGF0IHdpbGwgYmUgZHluYW1pY2FsbHkgYWRkZWQgdG8KKyBhIGdlbmVyYXRlZCBVUkwuICBUaGUgcmV0dXJuZWQgTWFwIGlzIGtleWVkIGJ5IHBhcmFtZXRlciBuYW1lLCBhbmQgdGhlCisgdmFsdWVzIGFyZSBlaXRoZXIgbnVsbCAobm8gdmFsdWUgc3BlY2lmaWVkKSwgYSBTdHJpbmcgKHNpbmdsZSB2YWx1ZQorIHNwZWNpZmllZCksIG9yIGEgU3RyaW5nW10gYXJyYXkgKG11bHRpcGxlIHZhbHVlcyBzcGVjaWZpZWQpLiAgUGFyYW1ldGVyCisgbmFtZXMgY29ycmVzcG9uZCB0byB0aGUgY29ycmVzcG9uZGluZyBhdHRyaWJ1dGVzIG9mIHRoZQorIDxjb2RlPiZsdDtodG1sOmxpbmsmZ3Q7PC9jb2RlPiB0YWcuICBJZiBubyBxdWVyeSBwYXJhbWV0ZXJzIGFyZQorIGlkZW50aWZpZWQsIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBQYWdlQ29udGV4dCB3ZSBhcmUgb3BlcmF0aW5nIGluPEREPjxDT0RFPnBhcmFtSWQ8L0NPREU+IC0gU2luZ2xlLXZhbHVlIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWUgKGlmIGFueSk8REQ+PENPREU+cGFyYW1OYW1lPC9DT0RFPiAtIEJlYW4gY29udGFpbmluZyBzaW5nbGUtdmFsdWUgcGFyYW1ldGVyIHZhbHVlPEREPjxDT0RFPnBhcmFtUHJvcGVydHk8L0NPREU+IC0gUHJvcGVydHkgKG9mIGJlYW4gbmFtZWQgYnkgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPgorICBjb250YWluaW5nIHNpbmdsZS12YWx1ZSBwYXJhbWV0ZXIgdmFsdWU8REQ+PENPREU+cGFyYW1TY29wZTwvQ09ERT4gLSBTY29wZSBjb250YWluaW5nIGJlYW4gbmFtZWQgYnkKKyAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBCZWFuIGNvbnRhaW5pbmcgbXVsdGktdmFsdWUgcGFyYW1ldGVycyBNYXAgKGlmIGFueSk8REQ+PENPREU+cHJvcGVydHk8L0NPREU+IC0gUHJvcGVydHkgKG9mIGJlYW4gbmFtZWQgYnkgPGNvZGU+bmFtZTwvY29kZT4KKyAgY29udGFpbmluZyBtdWx0aS12YWx1ZSBwYXJhbWV0ZXJzIE1hcDxERD48Q09ERT5zY29wZTwvQ09ERT4gLSBTY29wZSBjb250YWluaW5nIGJlYW4gbmFtZWQgYnkKKyAgPGNvZGU+bmFtZTwvY29kZT48REQ+PENPREU+dHJhbnNhY3Rpb248L0NPREU+IC0gU2hvdWxkIHdlIGFkZCBvdXIgdHJhbnNhY3Rpb24gY29udHJvbCB0b2tlbj88RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHdlIGNhbm5vdCBsb29rIHVwIHRoZSByZXF1aXJlZCBiZWFuczxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBjbGFzcyBjYXN0IGV4Y2VwdGlvbiBvY2N1cnMgb24gYQorICBsb29rZWQtdXAgYmVhbiBvciBwcm9wZXJ0eTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29tcHV0ZVVSTChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS51dGlsLk1hcCwgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbXB1dGVVUkw8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5jb21wdXRlVVJMPC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZvcndhcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aHJlZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS51dGlsLk1hcCZuYnNwO3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDthbmNob3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7cmVkaXJlY3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLm5ldC5NYWxmb3JtZWRVUkxFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db21wdXRlIGEgaHlwZXJsaW5rIFVSTCBiYXNlZCBvbiB0aGUgPGNvZGU+Zm9yd2FyZDwvY29kZT4sCisgPGNvZGU+aHJlZjwvY29kZT4sIG9yIDxjb2RlPnBhZ2U8L2NvZGU+IHBhcmFtZXRlciB0aGF0IGlzIG5vdCBudWxsLgorIFRoZSByZXR1cm5lZCBVUkwgd2lsbCBoYXZlIGFscmVhZHkgYmVlbiBwYXNzZWQgdG8KKyA8Y29kZT5yZXNwb25zZS5lbmNvZGVVUkwoKTwvY29kZT4gZm9yIGFkZGluZyBhIHNlc3Npb24gaWRlbnRpZmllci48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBQYWdlQ29udGV4dCBmb3IgdGhlIHRhZyBtYWtpbmcgdGhpcyBjYWxsPEREPjxDT0RFPmZvcndhcmQ8L0NPREU+IC0gTG9naWNhbCBmb3J3YXJkIG5hbWUgZm9yIHdoaWNoIHRvIGxvb2sgdXAKKyAgdGhlIGNvbnRleHQtcmVsYXRpdmUgVVJJIChpZiBzcGVjaWZpZWQpPEREPjxDT0RFPmhyZWY8L0NPREU+IC0gVVJMIHRvIGJlIHV0aWxpemVkIHVubW9kaWZpZWQgKGlmIHNwZWNpZmllZCk8REQ+PENPREU+cGFnZTwvQ09ERT4gLSBDb250ZXh0LXJlbGF0aXZlIHBhZ2UgZm9yIHdoaWNoIGEgVVJMIHNob3VsZAorICBiZSBjcmVhdGVkIChpZiBzcGVjaWZpZWQpPEREPjxDT0RFPnBhcmFtczwvQ09ERT4gLSBNYXAgb2YgcGFyYW1ldGVycyB0byBiZSBkeW5hbWljYWxseSBpbmNsdWRlZCAoaWYgYW55KTxERD48Q09ERT5hbmNob3I8L0NPREU+IC0gQW5jaG9yIHRvIGJlIGR5bmFtaWNhbGx5IGluY2x1ZGVkIChpZiBhbnkpPEREPjxDT0RFPnJlZGlyZWN0PC9DT0RFPiAtIElzIHRoaXMgVVJMIGZvciBhIDxjb2RlPnJlc3BvbnNlLnNlbmRSZWRpcmVjdCgpPC9jb2RlPj88RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YS5uZXQuTWFsZm9ybWVkVVJMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgVVJMIGNhbm5vdCBiZSBjcmVhdGVkCisgIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Imxvb2t1cChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2xvb2t1cDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPmxvb2t1cDwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+TG9jYXRlIGFuZCByZXR1cm4gdGhlIHNwZWNpZmllZCBiZWFuLCBmcm9tIGFuIG9wdGlvbmFsbHkgc3BlY2lmaWVkCisgc2NvcGUsIGluIHRoZSBzcGVjaWZpZWQgcGFnZSBjb250ZXh0LiAgSWYgbm8gc3VjaCBiZWFuIGlzIGZvdW5kLAorIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPiBpbnN0ZWFkLiAgSWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biwgaXQgd2lsbAorIGhhdmUgYWxyZWFkeSBiZWVuIHNhdmVkIHZpYSBhIGNhbGwgdG8gPGNvZGU+c2F2ZUV4Y2VwdGlvbigpPC9jb2RlPi48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBQYWdlIGNvbnRleHQgdG8gYmUgc2VhcmNoZWQ8REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBiZWFuIHRvIGJlIHJldHJpZXZlZDxERD48Q09ERT5zY29wZTwvQ09ERT4gLSBTY29wZSB0byBiZSBzZWFyY2hlZCAocGFnZSwgcmVxdWVzdCwgc2Vzc2lvbiwgYXBwbGljYXRpb24pCisgIG9yIDxjb2RlPm51bGw8L2NvZGU+IHRvIHVzZSA8Y29kZT5maW5kQXR0cmlidXRlKCk8L2NvZGU+IGluc3RlYWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGludmFsaWQgc2NvcGUgbmFtZQorICBpcyByZXF1ZXN0ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Imxvb2t1cChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2xvb2t1cDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPmxvb2t1cDwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Mb2NhdGUgYW5kIHJldHVybiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQgYmVhbiwgZnJvbQorIGFuIG9wdGlvbmFsbHkgc3BlY2lmaWVkIHNjb3BlLCBpbiB0aGUgc3BlY2lmaWVkIHBhZ2UgY29udGV4dC4gIElmIGFuCisgZXhjZXB0aW9uIGlzIHRocm93biwgaXQgd2lsbCBoYXZlIGFscmVhZHkgYmVlbiBzYXZlZCB2aWEgYSBjYWxsIHRvCisgPGNvZGU+c2F2ZUV4Y2VwdGlvbigpPC9jb2RlPi48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBQYWdlIGNvbnRleHQgdG8gYmUgc2VhcmNoZWQ8REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBiZWFuIHRvIGJlIHJldHJpZXZlZDxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBiZSByZXRyaWV2ZWQsIG9yCisgIDxjb2RlPm51bGw8L2NvZGU+IHRvIHJldHJpZXZlIHRoZSBiZWFuIGl0c2VsZjxERD48Q09ERT5zY29wZTwvQ09ERT4gLSBTY29wZSB0byBiZSBzZWFyY2hlZCAocGFnZSwgcmVxdWVzdCwgc2Vzc2lvbiwgYXBwbGljYXRpb24pCisgIG9yIDxjb2RlPm51bGw8L2NvZGU+IHRvIHVzZSA8Y29kZT5maW5kQXR0cmlidXRlKCk8L2NvZGU+IGluc3RlYWQ8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGludmFsaWQgc2NvcGUgbmFtZQorICBpcyByZXF1ZXN0ZWQ8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBzcGVjaWZpZWQgYmVhbiBpcyBub3QgZm91bmQ8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFjY2Vzc2luZyB0aGlzIHByb3BlcnR5IGNhdXNlcyBhbgorICBJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLCBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24sCisgIEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24sIG9yIE5vU3VjaE1ldGhvZEV4Y2VwdGlvbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZShqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5tZXNzYWdlPC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+TG9vayB1cCBhbmQgcmV0dXJuIGEgbWVzc2FnZSBzdHJpbmcsIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBUaGUgUGFnZUNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVxdWVzdDxERD48Q09ERT5idW5kbGU8L0NPREU+IC0gTmFtZSBvZiB0aGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBmb3Igb3VyCisgIG1lc3NhZ2UgcmVzb3VyY2VzIGJ1bmRsZTxERD48Q09ERT5sb2NhbGU8L0NPREU+IC0gTmFtZSBvZiB0aGUgc2Vzc2lvbiBhdHRyaWJ1dGUgZm9yIG91ciB1c2VyJ3MgTG9jYWxlPEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleSB0byBiZSBsb29rZWQgdXAgYW5kIHJldHVybmVkPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIGxvb2t1cCBlcnJvciBvY2N1cnMgKHdpbGwgaGF2ZSBiZWVuCisgIHNhdmVkIGluIHRoZSByZXF1ZXN0IGFscmVhZHkpPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPEI+bWVzc2FnZTwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtidW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3RbXSZuYnNwO2FyZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Mb29rIHVwIGFuZCByZXR1cm4gYSBtZXNzYWdlIHN0cmluZywgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPiAtIFRoZSBQYWdlQ29udGV4dCBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXF1ZXN0PEREPjxDT0RFPmJ1bmRsZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGZvciBvdXIKKyAgbWVzc2FnZSByZXNvdXJjZXMgYnVuZGxlPEREPjxDT0RFPmxvY2FsZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBzZXNzaW9uIGF0dHJpYnV0ZSBmb3Igb3VyIHVzZXIncyBMb2NhbGU8REQ+PENPREU+a2V5PC9DT0RFPiAtIE1lc3NhZ2Uga2V5IHRvIGJlIGxvb2tlZCB1cCBhbmQgcmV0dXJuZWQ8REQ+PENPREU+YXJnczwvQ09ERT4gLSBSZXBsYWNlbWVudCBwYXJhbWV0ZXJzIGZvciB0aGlzIG1lc3NhZ2U8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgbG9va3VwIGVycm9yIG9jY3VycyAod2lsbCBoYXZlIGJlZW4KKyAgc2F2ZWQgaW4gdGhlIHJlcXVlc3QgYWxyZWFkeSk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBvcHVsYXRlKGphdmEubGFuZy5PYmplY3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Citwb3B1bGF0ZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyB2b2lkIDxCPnBvcHVsYXRlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qb3B1bGF0ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgc3BlY2lmaWVkIEphdmFCZWFuIGZyb20gdGhlIHNwZWNpZmllZAorIEhUVFAgcmVxdWVzdCwgYmFzZWQgb24gbWF0Y2hpbmcgZWFjaCBwYXJhbWV0ZXIgbmFtZSBhZ2FpbnN0IHRoZQorIGNvcnJlc3BvbmRpbmcgSmF2YUJlYW5zICJwcm9wZXJ0eSBzZXR0ZXIiIG1ldGhvZHMgaW4gdGhlIGJlYW4ncyBjbGFzcy4KKyBTdWl0YWJsZSBjb252ZXJzaW9uIGlzIGRvbmUgZm9yIGFyZ3VtZW50IHR5cGVzIGFzIGRlc2NyaWJlZCB1bmRlcgorIDxjb2RlPmNvbnZlcnQoKTwvY29kZT4uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBUaGUgSmF2YUJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgdG8gYmUgc2V0PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIEhUVFAgcmVxdWVzdCB3aG9zZSBwYXJhbWV0ZXJzIGFyZSB0byBiZSB1c2VkCisgICAgICAgICAgICAgICAgdG8gcG9wdWxhdGUgYmVhbiBwcm9wZXJ0aWVzPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIHdoaWxlIHNldHRpbmcKKyAgICAgICAgICAgIHByb3BlcnR5IHZhbHVlczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icG9wdWxhdGUoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3BvcHVsYXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+cG9wdWxhdGU8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3N1ZmZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qb3B1bGF0ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgc3BlY2lmaWVkIEphdmFCZWFuIGZyb20gdGhlIHNwZWNpZmllZAorIEhUVFAgcmVxdWVzdCwgYmFzZWQgb24gbWF0Y2hpbmcgZWFjaCBwYXJhbWV0ZXIgbmFtZSAocGx1cyBhbiBvcHRpb25hbAorIHByZWZpeCBhbmQvb3Igc3VmZml4KSBhZ2FpbnN0IHRoZSBjb3JyZXNwb25kaW5nIEphdmFCZWFucyAicHJvcGVydHkKKyBzZXR0ZXIiIG1ldGhvZHMgaW4gdGhlIGJlYW4ncyBjbGFzcy4gIFN1aXRhYmxlIGNvbnZlcnNpb24gaXMgZG9uZSBmb3IKKyBhcmd1bWVudCB0eXBlcyBhcyBkZXNjcmliZWQgdW5kZXIgPGNvZGU+c2V0UHJvcGVydGllcygpPC9jb2RlPi4KKyA8cD4KKyBJZiB5b3Ugc3BlY2lmeSBhIG5vbi1udWxsIDxjb2RlPnByZWZpeDwvY29kZT4gYW5kIGEgbm9uLW51bGwKKyA8Y29kZT5zdWZmaXg8L2NvZGU+LCB0aGUgcGFyYW1ldGVyIG5hbWUgbXVzdCBtYXRjaCA8c3Ryb25nPmJvdGg8L3N0cm9uZz4KKyBjb25kaXRpb25zIGZvciBpdHMgdmFsdWUocykgdG8gYmUgdXNlZCBpbiBwb3B1bGF0aW5nIGJlYW4gcHJvcGVydGllcy4KKyBJZiB0aGUgcmVxdWVzdCdzIGNvbnRlbnQgdHlwZSBpcyAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgYW5kIHRoZQorIG1ldGhvZCBpcyAiUE9TVCIsIHRoZSBIdHRwU2VydmxldFJlcXVlc3Qgb2JqZWN0IHdpbGwgYmUgd3JhcHBlZCBpbgorIGEgTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIgb2JqZWN0LjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gVGhlIEphdmFCZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIHRvIGJlIHNldDxERD48Q09ERT5wcmVmaXg8L0NPREU+IC0gVGhlIHByZWZpeCAoaWYgYW55KSB0byBiZSBwcmVwZW5kIHRvIGJlYW4gcHJvcGVydHkKKyAgICAgICAgICAgICAgIG5hbWVzIHdoZW4gbG9va2luZyBmb3IgbWF0Y2hpbmcgcGFyYW1ldGVyczxERD48Q09ERT5zdWZmaXg8L0NPREU+IC0gVGhlIHN1ZmZpeCAoaWYgYW55KSB0byBiZSBhcHBlbmRlZCB0byBiZWFuIHByb3BlcnR5CisgICAgICAgICAgICAgICBuYW1lcyB3aGVuIGxvb2tpbmcgZm9yIG1hdGNoaW5nIHBhcmFtZXRlcnM8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdob3NlIHBhcmFtZXRlcnMgYXJlIHRvIGJlIHVzZWQKKyAgICAgICAgICAgICAgICB0byBwb3B1bGF0ZSBiZWFuIHByb3BlcnRpZXM8RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gd2hpbGUgc2V0dGluZworICAgICAgICAgICAgcHJvcGVydHkgdmFsdWVzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmVzZW50KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorcHJlc2VudDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBib29sZWFuIDxCPnByZXNlbnQ8L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpCisgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdHJ1ZSBpZiBhIG1lc3NhZ2Ugc3RyaW5nIGZvciB0aGUgc3BlY2lmaWVkIG1lc3NhZ2Uga2V5CisgaXMgcHJlc2VudCBmb3IgdGhlIHNwZWNpZmllZCBMb2NhbGUuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+IC0gVGhlIFBhZ2VDb250ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3Q8REQ+PENPREU+YnVuZGxlPC9DT0RFPiAtIE5hbWUgb2YgdGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUgZm9yIG91cgorICBtZXNzYWdlIHJlc291cmNlcyBidW5kbGU8REQ+PENPREU+bG9jYWxlPC9DT0RFPiAtIE5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIGZvciBvdXIgdXNlcidzIExvY2FsZTxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSBrZXkgdG8gYmUgbG9va2VkIHVwIGFuZCByZXR1cm5lZDxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBsb29rdXAgZXJyb3Igb2NjdXJzICh3aWxsIGhhdmUgYmVlbgorICBzYXZlZCBpbiB0aGUgcmVxdWVzdCBhbHJlYWR5KTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJpbnRhYmxlVVJMKGphdmEubmV0LlVSTCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ByaW50YWJsZVVSTDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnByaW50YWJsZVVSTDwvQj4oamF2YS5uZXQuVVJMJm5ic3A7dXJsKTwvUFJFPgorPERMPgorPEREPkNvbXB1dGUgdGhlIHByaW50YWJsZSByZXByZXNlbnRhdGlvbiBvZiBhIFVSTCwgbGVhdmluZyBvZmYgdGhlCisgc2NoZW1lL2hvc3QvcG9ydCBwYXJ0IGlmIG5vIGhvc3QgaXMgc3BlY2lmaWVkLiAgVGhpcyB3aWxsIHR5cGljYWxseQorIGJlIHRoZSBjYXNlIGZvciBVUkxzIHRoYXQgd2VyZSBvcmlnaW5hbGx5IGNyZWF0ZWQgZnJvbSByZWxhdGl2ZQorIG9yIGNvbnRleHQtcmVsYXRpdmUgVVJJcy48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT51cmw8L0NPREU+IC0gVVJMIHRvIHJlbmRlciBpbiBhIHByaW50YWJsZSByZXByZXNlbnRhdGlvbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVxdWVzdFVSTChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorcmVxdWVzdFVSTDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLm5ldC5VUkwgPEI+cmVxdWVzdFVSTDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubmV0Lk1hbGZvcm1lZFVSTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgVVJMIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCByZXF1ZXN0LiAgVGhpcyBpcyBlcXVpdmFsZW50CisgdG8gPGNvZGU+SHR0cFNlcnZsZXRSZXF1ZXN0LmdldFJlcXVlc3RVUkwoKTwvY29kZT4gaW4gU2VydmxldCAyLjMuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPERUPjxCPlRocm93czo8L0I+PEREPjxDT0RFPmphdmEubmV0Lk1hbGZvcm1lZFVSTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIFVSTCBjYW5ub3QgYmUgY3JlYXRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2VydmVyVVJMKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitzZXJ2ZXJVUkw8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5uZXQuVVJMIDxCPnNlcnZlclVSTDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5uZXQuTWFsZm9ybWVkVVJMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBVUkwgcmVwcmVzZW50aW5nIHRoZSBzY2hlbWUsIHNlcnZlciwgYW5kIHBvcnQgbnVtYmVyIG9mCisgdGhlIGN1cnJlbnQgcmVxdWVzdC4gIFNlcnZlci1yZWxhdGl2ZSBVUkxzIGNhbiBiZSBjcmVhdGVkIGJ5IHNpbXBseQorIGFwcGVuZGluZyB0aGUgc2VydmVyLXJlbGF0aXZlIHBhdGggKHN0YXJ0aW5nIHdpdGggJy8nKSB0byB0aGlzLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZhLm5ldC5NYWxmb3JtZWRVUkxFeGNlcHRpb248L0NPREU+IC0gaWYgYSBVUkwgY2Fubm90IGJlIGNyZWF0ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNhdmVFeGNlcHRpb24oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5UaHJvd2FibGUpIj48IS0tIC0tPjwvQT48SDM+CitzYXZlRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+c2F2ZUV4Y2VwdGlvbjwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5UaHJvd2FibGUmbmJzcDtleGNlcHRpb24pPC9QUkU+Cis8REw+Cis8REQ+U2F2ZSB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBhcyBhIHJlcXVlc3QgYXR0cmlidXRlIGZvciBsYXRlciB1c2UuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+IC0gVGhlIFBhZ2VDb250ZXh0IGZvciB0aGUgY3VycmVudCBwYWdlPEREPjxDT0RFPmV4Y2VwdGlvbjwvQ09ERT4gLSBUaGUgZXhjZXB0aW9uIHRvIGJlIHNhdmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVxdWVzdFV0aWxzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiAmbmJzcDtJTk5FUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTBiN2NhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwKQEAgLTAsMCArMSwzMDAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNyBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IENsYXNzICBSZXNwb25zZVV0aWxzCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVzcG9uc2VVdGlscy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzICBSZXNwb25zZVV0aWxzPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5SZXNwb25zZVV0aWxzPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlJlc3BvbnNlVXRpbHM8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDwvREw+CisKKzxQPgorR2VuZXJhbCBwdXJwb3NlIHV0aWxpdHkgbWV0aG9kcyByZWxhdGVkIHRvIGdlbmVyYXRpbmcgYSBzZXJ2bGV0IHJlc3BvbnNlCisgaW4gdGhlIFN0cnV0cyBjb250cm9sbGVyIGZyYW1ld29yay4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCNSZXNwb25zZVV0aWxzKCkiPlJlc3BvbnNlVXRpbHM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sI2ZpbHRlcihqYXZhLmxhbmcuU3RyaW5nKSI+ZmlsdGVyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RmlsdGVyIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGZvciBjaGFyYWN0ZXJzIHRoYXQgYXJlIHNlbnN0aXZlIHRvCisgSFRNTCBpbnRlcnByZXRlcnMsIHJldHVybmluZyB0aGUgc3RyaW5nIHdpdGggdGhlc2UgY2hhcmFjdGVycyByZXBsYWNlZAorIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGNoYXJhY3RlciBlbnRpdGllcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCN3cml0ZShqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZykiPndyaXRlPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt0ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V3JpdGUgdGhlIHNwZWNpZmllZCB0ZXh0IGFzIHRoZSByZXNwb25zZSB0byB0aGUgd3JpdGVyIGFzc29jaWF0ZWQgd2l0aAorIHRoaXMgcGFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCN3cml0ZVByZXZpb3VzKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nKSI+d3JpdGVQcmV2aW91czwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt0ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V3JpdGUgdGhlIHNwZWNpZmllZCB0ZXh0IGFzIHRoZSByZXNwb25zZSB0byB0aGUgd3JpdGVyIGFzc29jaWF0ZWQgd2l0aAorIHRoZSBib2R5IGNvbnRlbnQgZm9yIHRoZSB0YWcgd2l0aGluIHdoaWNoIHdlIGFyZSBjdXJyZW50bHkgbmVzdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUmVzcG9uc2VVdGlscygpIj48IS0tIC0tPjwvQT48SDM+CitSZXNwb25zZVV0aWxzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UmVzcG9uc2VVdGlsczwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZmlsdGVyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaWx0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5maWx0ZXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5GaWx0ZXIgdGhlIHNwZWNpZmllZCBzdHJpbmcgZm9yIGNoYXJhY3RlcnMgdGhhdCBhcmUgc2Vuc3RpdmUgdG8KKyBIVE1MIGludGVycHJldGVycywgcmV0dXJuaW5nIHRoZSBzdHJpbmcgd2l0aCB0aGVzZSBjaGFyYWN0ZXJzIHJlcGxhY2VkCisgYnkgdGhlIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVyIGVudGl0aWVzLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFRoZSBzdHJpbmcgdG8gYmUgZmlsdGVyZWQgYW5kIHJldHVybmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ3cml0ZShqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3dyaXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+d3JpdGU8L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3RleHQpCisgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+V3JpdGUgdGhlIHNwZWNpZmllZCB0ZXh0IGFzIHRoZSByZXNwb25zZSB0byB0aGUgd3JpdGVyIGFzc29jaWF0ZWQgd2l0aAorIHRoaXMgcGFnZS4gIDxzdHJvbmc+V0FSTklORzwvc3Ryb25nPiAtIElmIHlvdSBhcmUgd3JpdGluZyBib2R5IGNvbnRlbnQKKyBmcm9tIHRoZSA8Y29kZT5kb0FmdGVyQm9keSgpPC9jb2RlPiBtZXRob2Qgb2YgYSBjdXN0b20gdGFnIGNsYXNzIHRoYXQKKyBpbXBsZW1lbnRzIDxjb2RlPkJvZHlUYWc8L2NvZGU+LCB5b3Ugc2hvdWxkIGJlIGNhbGxpbmcKKyA8Y29kZT53cml0ZVByZXZpb3VzKCk8L2NvZGU+IGluc3RlYWQuPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+IC0gVGhlIFBhZ2VDb250ZXh0IG9iamVjdCBmb3IgdGhpcyBwYWdlPEREPjxDT0RFPnRleHQ8L0NPREU+IC0gVGhlIHRleHQgdG8gYmUgd3JpdHRlbjxEVD48Qj5UaHJvd3M6PC9CPjxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VycyAoYWxyZWFkeSBzYXZlZCk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IndyaXRlUHJldmlvdXMoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Cit3cml0ZVByZXZpb3VzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+d3JpdGVQcmV2aW91czwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt0ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+V3JpdGUgdGhlIHNwZWNpZmllZCB0ZXh0IGFzIHRoZSByZXNwb25zZSB0byB0aGUgd3JpdGVyIGFzc29jaWF0ZWQgd2l0aAorIHRoZSBib2R5IGNvbnRlbnQgZm9yIHRoZSB0YWcgd2l0aGluIHdoaWNoIHdlIGFyZSBjdXJyZW50bHkgbmVzdGVkLjxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPiAtIFRoZSBQYWdlQ29udGV4dCBvYmplY3QgZm9yIHRoaXMgcGFnZTxERD48Q09ERT50ZXh0PC9DT0RFPiAtIFRoZSB0ZXh0IHRvIGJlIHdyaXR0ZW48RFQ+PEI+VGhyb3dzOjwvQj48REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMgKGFscmVhZHkgc2F2ZWQpPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVzcG9uc2VVdGlscy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjE3Y2ExCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sCkBAIC0wLDAgKzEsOTI4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzcgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBDbGFzcyAgU2VydmxldENvbnRleHRXcml0ZXIKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzICBTZXJ2bGV0Q29udGV4dFdyaXRlcjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmEuaW8uV3JpdGVyCisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YS5pby5QcmludFdyaXRlcgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU2VydmxldENvbnRleHRXcml0ZXI8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+U2VydmxldENvbnRleHRXcml0ZXI8L0I+PERUPmV4dGVuZHMgamF2YS5pby5QcmludFdyaXRlcjwvREw+CisKKzxQPgorQSBQcmludFdyaXRlciBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMgdGhlIGxvZ2dpbmcgZmFjaWxpdGllcyBvZiBhCisgPGNvZGU+amF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDwvY29kZT4gdG8gb3V0cHV0IGl0cyByZXN1bHRzLiAgT3V0cHV0Cisgd2lsbCBiZSBidWZmZXJlZCB1bnRpbCBhIG5ld2xpbmUgY2hhcmFjdGVyIGlzIG91dHB1dCwgPGNvZGU+Zmx1c2goKTwvY29kZT4KKyBpcyBjYWxsZWQsIG9yIHVudGlsIG9uZSBvZiB0aGUgPGNvZGU+cHJpbnRsbigpPC9jb2RlPiBtZXRob2RzIGlzIGNhbGxlZC4KKyBBbG9uZyB0aGUgd2F5LCBjYXJyaWFnZSByZXR1cm4gY2hhcmFjdGVycyBhcmUgc2tpcHBlZC4KKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246IDwvQj48REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjogPC9CPjxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmdCdWZmZXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI2J1ZmZlciI+YnVmZmVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBidWZmZXIgaW50byB3aGljaCB3ZSBhY2N1bXVsYXRlIGxpbmVzIHRvIGJlIGxvZ2dlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI2NvbnRleHQiPmNvbnRleHQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNlcnZsZXQgY29udGV4dCB3aXRoIHdoaWNoIHdlIGFyZSBhc3NvY2lhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjZXJyb3IiPmVycm9yPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBlcnJvciBzdGF0ZSBmb3IgdGhpcyBzdHJlYW0uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEuaW8uUHJpbnRXcml0ZXIiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5pby5QcmludFdyaXRlcjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmF1dG9GbHVzaCwgbGluZVNlcGFyYXRvciwgb3V0LCB0cm91YmxlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmlvLldyaXRlciI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmlvLldyaXRlcjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmxvY2ssIHdyaXRlQnVmZmVyLCB3cml0ZUJ1ZmZlclNpemU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjU2VydmxldENvbnRleHRXcml0ZXIoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSBTZXJ2bGV0Q29udGV4dFdyaXRlciBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZAorIFNlcnZsZXRDb250ZXh0IGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI2NoZWNrRXJyb3IoKSI+Y2hlY2tFcnJvcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZsdXNoIHRoZSBzdHJlYW0gYW5kIGNoZWNrIGZvciBpdHMgZXJyb3Igc3RhdGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI2Nsb3NlKCkiPmNsb3NlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xvc2UgdGhlIHN0cmVhbS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjZmx1c2goKSI+Zmx1c2g8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGbHVzaCB0aGUgc3RyZWFtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludChib29sZWFuKSI+cHJpbnQ8L0E+PC9CPihib29sZWFuJm5ic3A7Yik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByaW50IGEgYm9vbGVhbiB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQoY2hhcikiPnByaW50PC9BPjwvQj4oY2hhciZuYnNwO2MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmludCBhIGNoYXJhY3RlciB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQoY2hhcltdKSI+cHJpbnQ8L0E+PC9CPihjaGFyW10mbmJzcDtjKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgYSBjaGFyYWN0ZXIgYXJyYXkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50KGRvdWJsZSkiPnByaW50PC9BPjwvQj4oZG91YmxlJm5ic3A7ZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByaW50IGEgZG91YmxlIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludChmbG9hdCkiPnByaW50PC9BPjwvQj4oZmxvYXQmbmJzcDtmKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgYSBmbG9hdCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQoaW50KSI+cHJpbnQ8L0E+PC9CPihpbnQmbmJzcDtpKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgYW4gaW50ZWdlciB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQobG9uZykiPnByaW50PC9BPjwvQj4obG9uZyZuYnNwO2wpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmludCBhIGxvbmcgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50KGphdmEubGFuZy5PYmplY3QpIj5wcmludDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtvKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgYW4gb2JqZWN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludChqYXZhLmxhbmcuU3RyaW5nKSI+cHJpbnQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByaW50IGEgU3RyaW5nIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludGxuKCkiPnByaW50bG48L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUZXJtaW5hdGUgdGhlIGN1cnJlbnQgbGluZSBhbmQgZmx1c2ggdGhlIGJ1ZmZlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnRsbihib29sZWFuKSI+cHJpbnRsbjwvQT48L0I+KGJvb2xlYW4mbmJzcDtiKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgYSBib29sZWFuIHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4oY2hhcikiPnByaW50bG48L0E+PC9CPihjaGFyJm5ic3A7Yyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByaW50IGEgY2hhcmFjdGVyIHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4oY2hhcltdKSI+cHJpbnRsbjwvQT48L0I+KGNoYXJbXSZuYnNwO2MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmludCBhIGNoYXJhY3RlciBhcnJheSBhbmQgdGVybWluYXRlIHRoZSBsaW5lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludGxuKGRvdWJsZSkiPnByaW50bG48L0E+PC9CPihkb3VibGUmbmJzcDtkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgYSBkb3VibGUgdmFsdWUgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnRsbihmbG9hdCkiPnByaW50bG48L0E+PC9CPihmbG9hdCZuYnNwO2YpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmludCBhIGZsb2F0IHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4oaW50KSI+cHJpbnRsbjwvQT48L0I+KGludCZuYnNwO2kpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmludCBhbiBpbnRlZ2VyIHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4obG9uZykiPnByaW50bG48L0E+PC9CPihsb25nJm5ic3A7bCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByaW50IGEgbG9uZyB2YWx1ZSBhbmQgdGVybWluYXRlIHRoZSBsaW5lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludGxuKGphdmEubGFuZy5PYmplY3QpIj5wcmludGxuPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO28pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmludCBhbiBvYmplY3QgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnRsbihqYXZhLmxhbmcuU3RyaW5nKSI+cHJpbnRsbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgYSBTdHJpbmcgdmFsdWUgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjc2V0RXJyb3IoKSI+c2V0RXJyb3I8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGVycm9yIHN0YXRlIGZvciB0aGlzIHN0cmVhbS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjd3JpdGUoY2hhcikiPndyaXRlPC9BPjwvQj4oY2hhciZuYnNwO2MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXcml0ZSBhIHNpbmdsZSBjaGFyYWN0ZXIgdG8gdGhpcyBzdHJlYW0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3dyaXRlKGNoYXJbXSkiPndyaXRlPC9BPjwvQj4oY2hhcltdJm5ic3A7YnVmKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V3JpdGUgYW4gYXJyYXkgb2YgY2hhcmF0ZXJzIHRvIHRoaXMgc3RyZWFtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCN3cml0ZShjaGFyW10sIGludCwgaW50KSI+d3JpdGU8L0E+PC9CPihjaGFyW10mbmJzcDtidWYsCisgICAgICBpbnQmbmJzcDtvZmYsCisgICAgICBpbnQmbmJzcDtsZW4pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXcml0ZSB0aGUgc3BlY2lmaWVkIHN1YnNldCBvZiBhbiBhcnJheSBvZiBjaGFyYWN0ZXJzIHRvIHRoaXMgc3RyZWFtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCN3cml0ZShpbnQpIj53cml0ZTwvQT48L0I+KGludCZuYnNwO2MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXcml0ZSBhIHNpbmdsZSBjaGFyYWN0ZXIgdG8gdGhpcyBzdHJlYW0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3dyaXRlKGphdmEubGFuZy5TdHJpbmcpIj53cml0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V3JpdGUgYSBTdHJpbmcgdG8gdGhpcyBzdHJlYW0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3dyaXRlKGphdmEubGFuZy5TdHJpbmcsIGludCwgaW50KSI+d3JpdGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cywKKyAgICAgIGludCZuYnNwO29mZiwKKyAgICAgIGludCZuYnNwO2xlbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1dyaXRlIHRoZSBzcGVjaWZpZWQgcG9ydGlvbiBvZiBhIFN0cmluZyB0byB0aGlzIHN0cmVhbS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEuaW8uUHJpbnRXcml0ZXIiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEuaW8uUHJpbnRXcml0ZXI8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5lbnN1cmVPcGVuLCBuZXdMaW5lPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxjbGluaXQ+LCBjbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgcmVnaXN0ZXJOYXRpdmVzLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYnVmZmVyIj48IS0tIC0tPjwvQT48SDM+CitidWZmZXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nQnVmZmVyIDxCPmJ1ZmZlcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYnVmZmVyIGludG8gd2hpY2ggd2UgYWNjdW11bGF0ZSBsaW5lcyB0byBiZSBsb2dnZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udGV4dCI+PCEtLSAtLT48L0E+PEgzPgorY29udGV4dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQgPEI+Y29udGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IHdpdGggd2hpY2ggd2UgYXJlIGFzc29jaWF0ZWQuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZXJyb3IiPjwhLS0gLS0+PC9BPjxIMz4KK2Vycm9yPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5lcnJvcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZXJyb3Igc3RhdGUgZm9yIHRoaXMgc3RyZWFtLjwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJTZXJ2bGV0Q29udGV4dFdyaXRlcihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorU2VydmxldENvbnRleHRXcml0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgU2VydmxldENvbnRleHRXcml0ZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQKKyBTZXJ2bGV0Q29udGV4dCBpbnN0YW5jZS48REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb250ZXh0PC9DT0RFPiAtIFRoZSBhc3NvY2lhdGVkIHNlcnZsZXQgY29udGV4dDwvREw+Cis8L0REPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY2hlY2tFcnJvcigpIj48IS0tIC0tPjwvQT48SDM+CitjaGVja0Vycm9yPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5jaGVja0Vycm9yPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Rmx1c2ggdGhlIHN0cmVhbSBhbmQgY2hlY2sgZm9yIGl0cyBlcnJvciBzdGF0ZS4gIDxzdHJvbmc+SU1QTEVNRU5UQVRJT04KKyBOT1RFPC9zdHJvbmc+IC0gb3VyIGFzc29jaWF0ZWQgc2VydmxldCBjb250ZXh0IGdpdmVzIG5vIGluZGljYXRpb24gb2YKKyBwcm9ibGVtcyB3aXRoIGxvZ2dpbmcsIHNvIHRoZSBvbmx5IHdheSB0aGlzIG1ldGhvZCB3aWxsIHJldHVybgorIDxjb2RlPnRydWU8L2NvZGU+IGlzIGlmIDxjb2RlPnNldEVycm9yKCk8L2NvZGU+IGlzIGNhbGxlZC48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmNoZWNrRXJyb3I8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjbG9zZSgpIj48IS0tIC0tPjwvQT48SDM+CitjbG9zZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+Y2xvc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5DbG9zZSB0aGUgc3RyZWFtLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Y2xvc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmbHVzaCgpIj48IS0tIC0tPjwvQT48SDM+CitmbHVzaDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+Zmx1c2g8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5GbHVzaCB0aGUgc3RyZWFtLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Zmx1c2g8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludChib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorcHJpbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByaW50PC9CPihib29sZWFuJm5ic3A7Yik8L1BSRT4KKzxETD4KKzxERD5QcmludCBhIGJvb2xlYW4gdmFsdWUuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmI8L0NPREU+IC0gVGhlIHZhbHVlIHRvIGJlIHByaW50ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByaW50KGNoYXIpIj48IS0tIC0tPjwvQT48SDM+CitwcmludDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJpbnQ8L0I+KGNoYXImbmJzcDtjKTwvUFJFPgorPERMPgorPEREPlByaW50IGEgY2hhcmFjdGVyIHZhbHVlLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cHJpbnQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jPC9DT0RFPiAtIFRoZSB2YWx1ZSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludChjaGFyW10pIj48IS0tIC0tPjwvQT48SDM+CitwcmludDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJpbnQ8L0I+KGNoYXJbXSZuYnNwO2MpPC9QUkU+Cis8REw+Cis8REQ+UHJpbnQgYSBjaGFyYWN0ZXIgYXJyYXkuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmM8L0NPREU+IC0gVGhlIGNoYXJhY3RlciBhcnJheSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludChkb3VibGUpIj48IS0tIC0tPjwvQT48SDM+CitwcmludDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJpbnQ8L0I+KGRvdWJsZSZuYnNwO2QpPC9QUkU+Cis8REw+Cis8REQ+UHJpbnQgYSBkb3VibGUgdmFsdWUuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmQ8L0NPREU+IC0gVGhlIHZhbHVlIHRvIGJlIHByaW50ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByaW50KGZsb2F0KSI+PCEtLSAtLT48L0E+PEgzPgorcHJpbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByaW50PC9CPihmbG9hdCZuYnNwO2YpPC9QUkU+Cis8REw+Cis8REQ+UHJpbnQgYSBmbG9hdCB2YWx1ZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnByaW50PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLlByaW50V3JpdGVyPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZjwvQ09ERT4gLSBUaGUgdmFsdWUgdG8gYmUgcHJpbnRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJpbnQoaW50KSI+PCEtLSAtLT48L0E+PEgzPgorcHJpbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByaW50PC9CPihpbnQmbmJzcDtpKTwvUFJFPgorPERMPgorPEREPlByaW50IGFuIGludGVnZXIgdmFsdWUuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmk8L0NPREU+IC0gVGhlIHZhbHVlIHRvIGJlIHByaW50ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByaW50KGxvbmcpIj48IS0tIC0tPjwvQT48SDM+CitwcmludDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJpbnQ8L0I+KGxvbmcmbmJzcDtsKTwvUFJFPgorPERMPgorPEREPlByaW50IGEgbG9uZyB2YWx1ZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnByaW50PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLlByaW50V3JpdGVyPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bDwvQ09ERT4gLSBUaGUgdmFsdWUgdG8gYmUgcHJpbnRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJpbnQoamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ByaW50PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcmludDwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO28pPC9QUkU+Cis8REw+Cis8REQ+UHJpbnQgYW4gb2JqZWN0LjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cHJpbnQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5vPC9DT0RFPiAtIFRoZSB2YWx1ZSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorcHJpbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByaW50PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cyk8L1BSRT4KKzxETD4KKzxERD5QcmludCBhIFN0cmluZyB2YWx1ZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnByaW50PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLlByaW50V3JpdGVyPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+czwvQ09ERT4gLSBUaGUgdmFsdWUgdG8gYmUgcHJpbnRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJpbnRsbigpIj48IS0tIC0tPjwvQT48SDM+CitwcmludGxuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcmludGxuPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGVybWluYXRlIHRoZSBjdXJyZW50IGxpbmUgYW5kIGZsdXNoIHRoZSBidWZmZXIuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludGxuPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLlByaW50V3JpdGVyPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJpbnRsbihib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorcHJpbnRsbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJpbnRsbjwvQj4oYm9vbGVhbiZuYnNwO2IpPC9QUkU+Cis8REw+Cis8REQ+UHJpbnQgYSBib29sZWFuIHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludGxuPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLlByaW50V3JpdGVyPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YjwvQ09ERT4gLSBUaGUgdmFsdWUgdG8gYmUgcHJpbnRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJpbnRsbihjaGFyKSI+PCEtLSAtLT48L0E+PEgzPgorcHJpbnRsbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJpbnRsbjwvQj4oY2hhciZuYnNwO2MpPC9QUkU+Cis8REw+Cis8REQ+UHJpbnQgYSBjaGFyYWN0ZXIgdmFsdWUgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnByaW50bG48L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jPC9DT0RFPiAtIFRoZSB2YWx1ZSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludGxuKGNoYXJbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK3ByaW50bG48L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByaW50bG48L0I+KGNoYXJbXSZuYnNwO2MpPC9QUkU+Cis8REw+Cis8REQ+UHJpbnQgYSBjaGFyYWN0ZXIgYXJyYXkgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnByaW50bG48L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jPC9DT0RFPiAtIFRoZSBjaGFyYWN0ZXIgYXJyYXkgdG8gYmUgcHJpbnRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJpbnRsbihkb3VibGUpIj48IS0tIC0tPjwvQT48SDM+CitwcmludGxuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcmludGxuPC9CPihkb3VibGUmbmJzcDtkKTwvUFJFPgorPERMPgorPEREPlByaW50IGEgZG91YmxlIHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludGxuPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLlByaW50V3JpdGVyPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZDwvQ09ERT4gLSBUaGUgdmFsdWUgdG8gYmUgcHJpbnRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJpbnRsbihmbG9hdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ByaW50bG48L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByaW50bG48L0I+KGZsb2F0Jm5ic3A7Zik8L1BSRT4KKzxETD4KKzxERD5QcmludCBhIGZsb2F0IHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludGxuPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLlByaW50V3JpdGVyPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZjwvQ09ERT4gLSBUaGUgdmFsdWUgdG8gYmUgcHJpbnRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJpbnRsbihpbnQpIj48IS0tIC0tPjwvQT48SDM+CitwcmludGxuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcmludGxuPC9CPihpbnQmbmJzcDtpKTwvUFJFPgorPERMPgorPEREPlByaW50IGFuIGludGVnZXIgdmFsdWUgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnByaW50bG48L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5pPC9DT0RFPiAtIFRoZSB2YWx1ZSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludGxuKGxvbmcpIj48IS0tIC0tPjwvQT48SDM+CitwcmludGxuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcmludGxuPC9CPihsb25nJm5ic3A7bCk8L1BSRT4KKzxETD4KKzxERD5QcmludCBhIGxvbmcgdmFsdWUgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnByaW50bG48L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5sPC9DT0RFPiAtIFRoZSB2YWx1ZSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludGxuKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitwcmludGxuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcmludGxuPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7byk8L1BSRT4KKzxETD4KKzxERD5QcmludCBhbiBvYmplY3QgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS48REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnByaW50bG48L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5vPC9DT0RFPiAtIFRoZSB2YWx1ZSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludGxuKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitwcmludGxuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcmludGxuPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cyk8L1BSRT4KKzxETD4KKzxERD5QcmludCBhIFN0cmluZyB2YWx1ZSBhbmQgdGVybWluYXRlIHRoZSBsaW5lLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cHJpbnRsbjwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnM8L0NPREU+IC0gVGhlIHZhbHVlIHRvIGJlIHByaW50ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEVycm9yKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEVycm9yPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRFcnJvcjwvQj4oKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgZXJyb3Igc3RhdGUgZm9yIHRoaXMgc3RyZWFtLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+c2V0RXJyb3I8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ3cml0ZShjaGFyKSI+PCEtLSAtLT48L0E+PEgzPgord3JpdGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPndyaXRlPC9CPihjaGFyJm5ic3A7Yyk8L1BSRT4KKzxETD4KKzxERD5Xcml0ZSBhIHNpbmdsZSBjaGFyYWN0ZXIgdG8gdGhpcyBzdHJlYW0uPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YzwvQ09ERT4gLSBUaGUgY2hhcmFjdGVyIHRvIGJlIHdyaXR0ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IndyaXRlKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3dyaXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj53cml0ZTwvQj4oaW50Jm5ic3A7Yyk8L1BSRT4KKzxETD4KKzxERD5Xcml0ZSBhIHNpbmdsZSBjaGFyYWN0ZXIgdG8gdGhpcyBzdHJlYW0uPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT53cml0ZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmM8L0NPREU+IC0gVGhlIGNoYXJhY3RlciB0byBiZSB3cml0dGVuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ3cml0ZShjaGFyW10pIj48IS0tIC0tPjwvQT48SDM+Cit3cml0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+d3JpdGU8L0I+KGNoYXJbXSZuYnNwO2J1Zik8L1BSRT4KKzxETD4KKzxERD5Xcml0ZSBhbiBhcnJheSBvZiBjaGFyYXRlcnMgdG8gdGhpcyBzdHJlYW0uPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT53cml0ZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJ1ZjwvQ09ERT4gLSBUaGUgY2hhcmFjdGVyIGFycmF5IHRvIGJlIHdyaXR0ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IndyaXRlKGNoYXJbXSwgaW50LCBpbnQpIj48IS0tIC0tPjwvQT48SDM+Cit3cml0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+d3JpdGU8L0I+KGNoYXJbXSZuYnNwO2J1ZiwKKyAgICAgICAgICAgICAgICAgIGludCZuYnNwO29mZiwKKyAgICAgICAgICAgICAgICAgIGludCZuYnNwO2xlbik8L1BSRT4KKzxETD4KKzxERD5Xcml0ZSB0aGUgc3BlY2lmaWVkIHN1YnNldCBvZiBhbiBhcnJheSBvZiBjaGFyYWN0ZXJzIHRvIHRoaXMgc3RyZWFtLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+d3JpdGU8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5idWY8L0NPREU+IC0gVGhlIGNoYXJhY3RlciBhcnJheSBmcm9tIHdoaWNoIHRvIHdyaXRlPEREPjxDT0RFPm9mZjwvQ09ERT4gLSBUaGUgemVyby1yZWxhdGl2ZSBzdGFydGluZyBvZmZzZXQgdG8gd3JpdGU8REQ+PENPREU+bGVuPC9DT0RFPiAtIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byB3cml0ZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0id3JpdGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3dyaXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj53cml0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3MpPC9QUkU+Cis8REw+Cis8REQ+V3JpdGUgYSBTdHJpbmcgdG8gdGhpcyBzdHJlYW0uPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT53cml0ZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnM8L0NPREU+IC0gVGhlIHN0cmluZyB0byBiZSB3cml0dGVuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ3cml0ZShqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3dyaXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj53cml0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3MsCisgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtvZmYsCisgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtsZW4pPC9QUkU+Cis8REw+Cis8REQ+V3JpdGUgdGhlIHNwZWNpZmllZCBwb3J0aW9uIG9mIGEgU3RyaW5nIHRvIHRoaXMgc3RyZWFtLjxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+d3JpdGU8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zPC9DT0RFPiAtIFRoZSBTdHJpbmcgZnJvbSB3aGljaCB0byB3cml0ZTxERD48Q09ERT5vZmY8L0NPREU+IC0gVGhlIHplcm8tcmVsYXRpdmUgc3RhcnRpbmcgb2Zmc2V0IHRvIHdyaXRlPEREPjxDT0RFPmxlbjwvQ09ERT4gLSBUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdG8gd3JpdGU8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6ICZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQwMDY1MgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgRnJhbWVzZXQvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2ZyYW1lc2V0LmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEp1biAxNSAxNjo1MzozNSBQRFQgMjAwMSAtLT4KKzxUSVRMRT4KK0FwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb246IFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXRpbAorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPjwvRk9OVD4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0NsYXNzZXM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJBcnJheVN0YWNrLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QXJyYXlTdGFjazwvQT4KKzxCUj4KKzxBIEhSRUY9IkJlYW5VdGlscy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkJlYW5VdGlsczwvQT4KKzxCUj4KKzxBIEhSRUY9IkNvbnZlcnRVdGlscy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbnZlcnRVdGlsczwvQT4KKzxCUj4KKzxBIEhSRUY9IkVycm9yTWVzc2FnZXMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5FcnJvck1lc3NhZ2VzPC9BPgorPEJSPgorPEEgSFJFRj0iRmFzdEFycmF5TGlzdC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkZhc3RBcnJheUxpc3Q8L0E+Cis8QlI+Cis8QSBIUkVGPSJGYXN0SGFzaE1hcC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkZhc3RIYXNoTWFwPC9BPgorPEJSPgorPEEgSFJFRj0iRmFzdFRyZWVNYXAuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5GYXN0VHJlZU1hcDwvQT4KKzxCUj4KKzxBIEhSRUY9IkdlbmVyaWNDb25uZWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+R2VuZXJpY0Nvbm5lY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJHZW5lcmljRGF0YVNvdXJjZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEJSPgorPEEgSFJFRj0iSXRlcmF0b3JBZGFwdGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SXRlcmF0b3JBZGFwdGVyPC9BPgorPEJSPgorPEEgSFJFRj0iTWVzc2FnZVJlc291cmNlcy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8QlI+Cis8QSBIUkVGPSJNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPgorPEJSPgorPEEgSFJFRj0iUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9BPgorPEJSPgorPEEgSFJFRj0iUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Cis8QlI+Cis8QSBIUkVGPSJQcm9wZXJ0eVV0aWxzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UHJvcGVydHlVdGlsczwvQT4KKzxCUj4KKzxBIEhSRUY9IlJlcXVlc3RVdGlscy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlcXVlc3RVdGlsczwvQT4KKzxCUj4KKzxBIEhSRUY9IlJlc3BvbnNlVXRpbHMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZXNwb25zZVV0aWxzPC9BPgorPEJSPgorPEEgSFJFRj0iU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5ZTBjZWUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sCkBAIC0wLDAgKzEsODk1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBQQUNLQUdFPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy51dGlsCis8L0gyPgorVGhlIFV0aWxpdGllcyBwYWNrYWdlIHByb3ZpZGVzIGEgdmFyaWV0eSBvZiBmYW1pbGllcyBvZiBjbGFzc2VzLAordG8gc29sdmUgcHJvYmxlbXMgdGhhdCBhcmUgY29tbW9ubHkgZW5jb3VudGVyZWQgaW4gYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucy4KKzxQPgorPEI+U2VlOiA8L0I+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8QSBIUkVGPSIjcGFja2FnZV9kZXNjcmlwdGlvbiI+PEI+RGVzY3JpcHRpb248L0I+PC9BPgorPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQXJyYXlTdGFjay5odG1sIj5BcnJheVN0YWNrPC9BPjwvQj48L1REPgorPFREPkltcGxlbWVudGF0aW9uIG9mIHRoZSA8Y29kZT5qYXZhLnV0aWwuU3RhY2s8L2NvZGU+IEFQSSB0aGF0IGlzIGJhc2VkIG9uCisgYW4gPGNvZGU+QXJyYXlMaXN0PC9jb2RlPiByYXRoZXIgdGhhbiBhIDxjb2RlPlZlY3RvcjwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJCZWFuVXRpbHMuaHRtbCI+QmVhblV0aWxzPC9BPjwvQj48L1REPgorPFREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkF0IHNvbWUgcG9pbnQgYWZ0ZXIgU3RydXRzIDEuMCBmaW5hbCwgd2lsbCBiZSByZXBsYWNlZCBieQorICBhbiBlcXVpdmFsZW50IGNsYXNzIGluIHRoZSBKYWthcnRhIENvbW1vbnMgQmVhbnV0aWxzIHBhY2thZ2UuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQ29udmVydFV0aWxzLmh0bWwiPkNvbnZlcnRVdGlsczwvQT48L0I+PC9URD4KKzxURD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BdCBzb21lIHBvaW50IGFmdGVyIFN0cnV0cyAxLjAgZmluYWwsIHdpbGwgYmUgcmVwbGFjZWQgYnkKKyAgYW4gZXF1aXZhbGVudCBjbGFzcyBpbiB0aGUgSmFrYXJ0YSBDb21tb25zIEJlYW51dGlscyBwYWNrYWdlLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkVycm9yTWVzc2FnZXMuaHRtbCI+RXJyb3JNZXNzYWdlczwvQT48L0I+PC9URD4KKzxURD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycyBpbnN0ZWFkPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRmFzdEFycmF5TGlzdC5odG1sIj5GYXN0QXJyYXlMaXN0PC9BPjwvQj48L1REPgorPFREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkF0IHNvbWUgcG9pbnQgYWZ0ZXIgU3RydXRzIDEuMCBmaW5hbCwgd2lsbCBiZSByZXBsYWNlZCBieQorICBhbiBlcXVpdmFsZW50IGNsYXNzIGluIHRoZSBKYWthcnRhIENvbW1vbnMgQ29sbGVjdGlvbnMgcGFja2FnZS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJGYXN0SGFzaE1hcC5odG1sIj5GYXN0SGFzaE1hcDwvQT48L0I+PC9URD4KKzxURD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BdCBzb21lIHBvaW50IGFmdGVyIFN0cnV0cyAxLjAgZmluYWwsIHdpbGwgYmUgcmVwbGFjZWQgYnkKKyAgYW4gZXF1aXZhbGVudCBjbGFzcyBpbiB0aGUgSmFrYXJ0YSBDb21tb25zIENvbGxlY3Rpb25zIHBhY2thZ2UuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRmFzdFRyZWVNYXAuaHRtbCI+RmFzdFRyZWVNYXA8L0E+PC9CPjwvVEQ+Cis8VEQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXQgc29tZSBwb2ludCBhZnRlciBTdHJ1dHMgMS4wIGZpbmFsLCB3aWxsIGJlIHJlcGxhY2VkIGJ5CisgIGFuIGVxdWl2YWxlbnQgY2xhc3MgaW4gdGhlIEpha2FydGEgQ29tbW9ucyBDb2xsZWN0aW9ucyBwYWNrYWdlLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkdlbmVyaWNDb25uZWN0aW9uLmh0bWwiPkdlbmVyaWNDb25uZWN0aW9uPC9BPjwvQj48L1REPgorPFREPkdlbmVyaWMgd3JhcHBlciBpbXBsZW1lbnRhdGlvbiBvZiBhIDxzdHJvbmc+Q29ubmVjdGlvbjwvc3Ryb25nPiB0aGF0Cisgd29ya3Mgd2l0aCA8Y29kZT5HZW5lcmljRGF0YVNvdXJjZTwvY29kZT4gdG8gd3JhcCBjb25uZWN0aW9ucyBmb3IgYW55CisgSkRCQyBkcml2ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJHZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT48L0I+PC9URD4KKzxURD5HZW5lcmljIGRhdGEgc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSA8Y29kZT5EYXRhU291cmNlPC9jb2RlPgorIGludGVyZmFjZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ikl0ZXJhdG9yQWRhcHRlci5odG1sIj5JdGVyYXRvckFkYXB0ZXI8L0E+PC9CPjwvVEQ+Cis8VEQ+VXRpbGl0eSBtZXRob2QgZm9yIGNvbnZlcnRpbmcgRW51bWVyYXRpb24gdG8gYW4gSXRlcmF0b3IKKyBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0I+PC9URD4KKzxURD5HZW5lcmFsIHB1cnBvc2UgYWJzdHJhY3QgY2xhc3MgdGhhdCBkZXNjcmliZXMgYW4gQVBJIGZvciByZXRyaWV2aW5nCisgTG9jYWxlLXNlbnNpdGl2ZSBtZXNzYWdlcyBmcm9tIHVuZGVybHlpbmcgcmVzb3VyY2UgbG9jYXRpb25zIG9mIGFuCisgdW5zcGVjaWZpZWQgZGVzaWduLCBhbmQgb3B0aW9uYWxseSB1dGlsaXppbmcgdGhlIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+CisgY2xhc3MgdG8gcHJvZHVjZSBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcyB3aXRoIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT48L0I+PC9URD4KKzxURD5GYWN0b3J5IGZvciA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj48L1REPgorPFREPkNvbmNyZXRlIHN1YmNsYXNzIG9mIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IHRoYXQgcmVhZHMgbWVzc2FnZSBrZXlzCisgYW5kIGNvcnJlc3BvbmRpbmcgc3RyaW5ncyBmcm9tIG5hbWVkIHByb3BlcnR5IHJlc291cmNlcyBpbiB0aGUgc2FtZSBtYW5uZXIKKyB0aGF0IDxjb2RlPmphdmEudXRpbC5Qcm9wZXJ0eVJlc291cmNlQnVuZGxlPC9jb2RlPiBkb2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvQj48L1REPgorPFREPkZhY3RvcnkgZm9yIDxjb2RlPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW5zdGFuY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUHJvcGVydHlVdGlscy5odG1sIj5Qcm9wZXJ0eVV0aWxzPC9BPjwvQj48L1REPgorPFREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkF0IHNvbWUgcG9pbnQgYWZ0ZXIgU3RydXRzIDEuMCBmaW5hbCwgd2lsbCBiZSByZXBsYWNlZCBieQorICBhbiBlcXVpdmFsZW50IGNsYXNzIGluIHRoZSBKYWthcnRhIENvbW1vbnMgQmVhbnV0aWxzIHBhY2thZ2UuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT48L0I+PC9URD4KKzxURD5HZW5lcmFsIHB1cnBvc2UgdXRpbGl0eSBtZXRob2RzIHJlbGF0ZWQgdG8gcHJvY2Vzc2luZyBhIHNlcnZsZXQgcmVxdWVzdAorIGluIHRoZSBTdHJ1dHMgY29udHJvbGxlciBmcmFtZXdvcmsuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSZXNwb25zZVV0aWxzLmh0bWwiPlJlc3BvbnNlVXRpbHM8L0E+PC9CPjwvVEQ+Cis8VEQ+R2VuZXJhbCBwdXJwb3NlIHV0aWxpdHkgbWV0aG9kcyByZWxhdGVkIHRvIGdlbmVyYXRpbmcgYSBzZXJ2bGV0IHJlc3BvbnNlCisgaW4gdGhlIFN0cnV0cyBjb250cm9sbGVyIGZyYW1ld29yay48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlNlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPjwvQj48L1REPgorPFREPkEgUHJpbnRXcml0ZXIgaW1wbGVtZW50YXRpb24gdGhhdCB1c2VzIHRoZSBsb2dnaW5nIGZhY2lsaXRpZXMgb2YgYQorIDxjb2RlPmphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ8L2NvZGU+IHRvIG91dHB1dCBpdHMgcmVzdWx0cy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+Cis8QSBOQU1FPSJwYWNrYWdlX2Rlc2NyaXB0aW9uIj48IS0tIC0tPjwvQT48SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwgRGVzY3JpcHRpb24KKzwvSDI+CisKKzxQPgorVGhlIFV0aWxpdGllcyBwYWNrYWdlIHByb3ZpZGVzIGEgdmFyaWV0eSBvZiBmYW1pbGllcyBvZiBjbGFzc2VzLAordG8gc29sdmUgcHJvYmxlbXMgdGhhdCBhcmUgY29tbW9ubHkgZW5jb3VudGVyZWQgaW4gYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucy4KKzxicj48YnI+Cis8YSBuYW1lPSJkb2MuRGVzY3JpcHRpb24iPjwvYT4KKzxkaXYgYWxpZ249ImNlbnRlciI+Cis8YSBocmVmPSIjZG9jLkludHJvIj5bSW50cm9kdWN0aW9uXTwvYT4KKzxhIGhyZWY9IiNkb2MuQmVhbnMiPltCZWFucyBhbmQgUHJvcGVydGllc108L2E+Cis8YSBocmVmPSIjZG9jLkNvbGxlY3Rpb25zIj5bQ29sbGVjdGlvbiBDbGFzc2VzXTwvYT4KKzxhIGhyZWY9IiNkb2MuSkRCQyI+W0pEQkMgQ29ubmVjdGlvbiBQb29sXTwvYT4KKzxhIGhyZWY9IiNkb2MuTWVzc2FnZXMiPltNZXNzYWdlIFJlc291cmNlc108L2E+Cis8L2Rpdj4KKworPGhyPgorCis8YSBuYW1lPSJkb2MuSW50cm8iPjwvYT4KKzxoMz5JbnRyb2R1Y3Rpb248L2gzPgorCis8cD5UaGUgU3RydXRzIFV0aWxpdGllcyBQYWNrYWdlIG9mZmVycyBzZXZlcmFsIGZhbWlsaWVzCitvZiBjbGFzc2VzIHRoYXQgYXNzaXN0IGluIHNvbHZpbmcgY29tbW9ubHkgZW5jb3VudGVyZWQgcHJvYmxlbXMgd2hlbiBidWlsZGluZword2ViIGFwcGxpY2F0aW9ucy4gIE1vc3Qgb2YgdGhlIGNsYXNzZXMgaW4gdGhpcyBwYWNrYWdlIGRvIG5vdCByZWx5IG9uIHRoZQorY29udHJvbGxlciBzZXJ2bGV0IGZyYW1ld29yaywgb3IgdGhlIGN1c3RvbSB0YWcgbGlicmFyaWVzLCBzbyB0aGV5IGFyZSBhbHNvCitzdWl0YWJsZSBmb3IgZ2VuZXJhbCBKYXZhIGFwcGxpY2F0aW9uIHByb2dyYW1taW5nLiAgVGhlIGZvbGxvd2luZyBmYW1pbGllcworYXJlIGluY2x1ZGVkOjwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjZG9jLkJlYW5zIj5CZWFucyBhbmQgUHJvcGVydGllczwvYT4gLSBBIGZhbWlseSBvZiB1dGlsaXR5CisgICAgY2xhc3NlcyBmb3IgbWFuaXB1bGF0aW5nIEphdmFCZWFucywgYXMgd2VsbCBhcyBnZXR0aW5nIGFuZCBzZXR0aW5nCisgICAgcHJvcGVydGllcywgd2l0aG91dCBoYXJkIGNvZGluZyB0aGUgbmFtZXMgb3IgZGF0YSB0eXBlcyBvZiB0aGUKKyAgICBwcm9wZXJ0eSBnZXR0ZXIgYW5kIHNldHRlciBtZXRob2RzLjwvbGk+Cis8bGk+PGEgaHJlZj0iI2RvYy5Db2xsZWN0aW9ucyI+Q29sbGVjdGlvbiBDbGFzc2VzPC9hPiAtIEEgZmFtaWx5IG9mIHNwZWNpYWxpemVkCisgICAgY2xhc3NlcyBzdXBwb3J0aW5nIHRoZSBDb2xsZWN0aW9ucyBBUEksIGRlc2lnbmVkIGZvciB1c2UgaW4gbXVsdGl0aHJlYWQKKyAgICBlbnZpcm9ubWVudHMgd2hlcmUgdGhlIHZhc3QgbWFqb3JpdHkgb2YgYWNjZXNzZXMgYXJlIHJlYWQgb25seS48L2xpPgorPGxpPjxhIGhyZWY9IiNkb2MuSkRCQyI+SkRCQyBDb25uZWN0aW9uIFBvb2w8L2E+IC0gQSB2ZXJ5IHNpbXBsZSBjb25uZWN0aW9uCisgICAgcG9vbCB0aGF0IGNhbiBiZSB1dGlsaXplZCBpbiB3ZWIgYXBwbGljYXRpb25zIG9yIG90aGVyIGVudmlyb25tZW50cyB0aGF0CisgICAgbmVlZCB0byBzaGFyZSBhIGxpbWl0ZWQgbnVtYmVyIG9mIEpEQkMgQ29ubmVjdGlvbnMgYWNyb3NzIGEgbXVjaCBsYXJnZXIKKyAgICBudW1iZXIgb2YgYWN0aXZlIHVzZXJzLjwvbGk+Cis8bGk+PGEgaHJlZj0iI2RvYy5NZXNzYWdlcyI+TWVzc2FnZSBSZXNvdXJjZXM8L2E+IC0gQSBmYW1pbHkgb2YgY2xhc3NlcyB0aGF0CisgICAgZmVhdHVyZXMgYWNjZXNzIHRvIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2Ugc3RyaW5ncyBiYXNlZCBvbiBhIG1lc3NhZ2UKKyAgICBrZXkgY291cGxlZCB3aXRoIGEgPGNvZGU+amF2YS51dGlsLkxvY2FsZTwvY29kZT4gb2JqZWN0IHJlcHJlc2VudGluZyBhCisgICAgcGFydGljdWxhciB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlLjwvbGk+Cis8L3VsPgorCis8aHI+CisKKzxhIG5hbWU9ImRvYy5CZWFucyI+PC9hPgorPGgzPkJlYW5zIGFuZCBQcm9wZXJ0aWVzPC9oMz4KKworPHA+RklYTUU8L3A+ICA8cD5GSVhNRSBzb21lIHBhcnRzIG9mIHRoaXMgbWlnaHQgbWUgbW92ZWQgdG8gVGFnbGliczwvcD4KKzxwPiBUaGUgPGNvZGU+QmVhblV0aWxzPC9jb2RlPiBhbmQgPGNvZGU+UHJvcGVydHlVdGlsczwvY29kZT4gdXRpbGl0aWVzIGFyZQorICAgIHVzZWQgdGhyb3VnaCBvdXQgc3RydXRzIGluY2x1ZGluZyB0aGUgPGNvZGU+SXRlcmF0b3JUYWcsIFdyaXRlVGFnPC9jb2RlPi4KKyAgICBNdWNoIG9mIHRoZXNlIHV0aWxpdGllcyByZWx5IG9uIGFuZCBtYWtlIHVzZSBvZiBKYXZhIHJlZmxlY3Rpb24sIHRvIG1hbmlwdWxhdGUKKyAgICA8YSBocmVmPSdodHRwOi8vZGV2ZWxvcGVyLmphdmEuc3VuLmNvbS9kZXZlbG9wZXIvb25saW5lVHJhaW5pbmcvQmVhbnMvYmVhbnMwMi8nPgorICAgIEphdmEgYmVhbnMgPC9hPi4gIENyZWF0aW5nIGEgPGI+dmFsaWQ8L2I+ICBKYXZhIGJlYW4gaXMgZXNzZW50aWFsICEKKyAgICBCcmllZmx5IHJlZmVycmluZyB0byB0aGUgZXhhbXBsZSBjbGFzcyA8Y29kZT5Qcm9kdWN0QmVhbjwvY29kZT4KKyAgICBiZWxvdyB3b3VsZCBmb2xsb3cgdGhlc2UgcnVsZXMgOgorICAgIDx1bD4KKyAgICA8bGk+IFRoZSBjbGFzcyA8Yj5tdXN0PC9iPiBhIG51bGwgY29uc3RydWN0b3IsIG9yIG5vIGNvbnN0cnVjdG9yIDwvbGk+CisgICAgPGxpPiBJdCdzIGNsYXNzIGRlY2xhcmF0aW9uIDxiPm11c3Q8L2I+IGJlIHB1YmxpYyA8L2xpPgorICAgIDxsaT4gVGhlIG5hbWUgZm9yIHRoZSBwcm9wZXJ0eSBzYXkgJ3ZhbHVlJyB3b3VsZCBoYXZlIGEgJ2dldCcgbWV0aG9kIG9mIGdldFZhbHVlKCk8L2xpPgorICAgIDxsaT4gVGhlICdnZXQnIGFuZCAnc2V0JyBtZXRob2RzIHRvIGJlIHZpc2libGUgPGI+bXVzdDwvYj4gYmUgcHVibGljLjwvbGk+CisgICAgPGxpPiBJZiBkZXNpcmVkIHRoZSAnaXMnIHByZWZpeCBjYW4gYmUgdXNlZCBpbiBwbGFjZSBpZiAnZ2V0JyBmb3IgYSBib29sZWFuLjwvbGk+CisgICAgPGxpPiBPdGhlciByZXF1aXJlbWVudHMgY2FuIGJlIGZvdW5kCisgICAgICAgICA8YSBocmVmPSdodHRwOi8vZGV2ZWxvcGVyLmphdmEuc3VuLmNvbS9kZXZlbG9wZXIvb25saW5lVHJhaW5pbmcvQmVhbnMvYmVhbnMwMi8nPgorICAgIGhlcmU8L2E+LgorICAgIDwvdWw+CisgICAgPHByZT4KKyAgICAgICAgcHVibGljIGNsYXNzIFByb2R1Y3RCZWFuKCkgeworICAgICAgICAgICBwcml2YXRlIFN0cmluZyB2YWx1ZTsKKyAgICAgICAgICAgcHVibGljIFN0cmluZyBnZXR2YWx1ZSgpIChyZXR1cm4gdGhpcy52YWx1ZX0KKyAgICAgICAgICAgcHVibGljIHZvaWQgc2V0dmFsdWUoU3RyaW5nIHZhbHVlKSAodGhpcy52YWx1ZSA9IHZhbHVlfQorICAgICAgICB9CisgICAgPC9wcmU+CisgICAgPC9wPgorICAgIDxwPiBPYnNlcnZpbmcgdGhlc2UgY29udmVudGlvbnMgd2lsbCBhdm9pZCB1bm5lY2Vzc2FyeSBlcnJvcnMgYW5kIHNhdmUgdGltZS48L3A+CisKKyAgIDxwPgorICAgICAgICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGNyZWF0ZSBhIEpTUCBwYWdlIHN1Y2ggYXM6CisgICAgPHByZT4KKyAgICAgICAgJmx0O2xvZ2ljOml0ZXJhdGUgaWQ9InByb2R1Y3QiIG5hbWU9InJlY2VpdmVkRm9ybSIgcHJvcGVydHk9InJlY2VpdmVkTGlzdCImZ3Q7CisgICAgICAgICAgICAgICZsdDtiZWFuOndyaXRlIG5hbWU9InByb2R1Y3QiIHByb3BlcnR5PSJkZXNjcmlwdGlvbiIgLyZndDsKKyAgICAgICAgICAgICAgJmx0O2JlYW46d3JpdGUgbmFtZT0icHJvZHVjdCIgcHJvcGVydHk9InZhbHVlIiAvJmd0OworICAgICAgICAmbHQ7L2xvZ2ljOml0ZXJhdGUmZ3Q7CisgICAgPC9wcmU+CisgICAgSW4gdGhpcyBjYXNlIHJlY2VpdmVGb3JtIGlzIGFuIEFjdGlvbkZvcm0sIHdpdGggYSBkZWZpbml0aW9uIHN1Y2ggYXMKKyAgICA8cHJlPgorICAgICAgICBwdWJsaWMgY2xhc3MgUmVjZWl2ZWRGb3JtIGV4dGVuZHMgQWN0aW9uRm9ybSAgeworICAgICAgICAgcHJpdmF0ZSBQcm9kdWN0TGlzdCBwcm9kdWN0TGlzdDsKKyAgICAgICAgIHB1YmxpYyB2b2lkIHNldFJlY2VpdmVkTGlzdChFbnVtZXJhdGlvbiBlbnVtKSB7CisgICAgICAgICAgICAgcHJvZHVjdExpc3QgPSBuZXcgUHJvZHVjdExpc3QoZW51bSxMaW1pdHMuQVJSQVlfU0laRV9NSU4pOworICAgICAgICAgfQorICAgICAgICAgLyoqCisgICAgICAgICAgKiBEZWZpbmVkIHNvIGphdmEuYmVhbiByZWZsZWN0aW9uIHdpbGwgc2VlIGdldFJlY2VpdmVkTGlzdAorICAgICAgICAgICogYXMgYSBnZXR0ZXIgZm9yIHJlY2VpdmVkTGlzdAorICAgICAgICAgICovCisgICAgICAgICBwdWJsaWMgdm9pZCBzZXRSZWNlaXZlZExpc3QoUHJvZHVjdExpc3QgcHJvZHVjdGxpc3QpIHsKKworICAgICAgICAgfQorCisgICAgICAgICAvKioKKyAgICAgICAgICAqIFJldHVybnMgYW4gQXJyYXkgbGlzdCBvZiBQcm9kdWN0QmVhbnMuCisgICAgICAgICAgKi8KKyAgICAgICAgIHB1YmxpYyBQcm9kdWN0TGlzdCBnZXRSZWNlaXZlZExpc3QoKSB7CisgICAgICAgICAgIHJldHVybiBwcm9kdWN0TGlzdDsKKyAgICAgICAgIH07CisgICAgICAgfSAvL1JlY2VpdmVGb3JtCis8L3ByZT4KKzxocj4KKworPGEgbmFtZT0iZG9jLkNvbGxlY3Rpb25zIj48L2E+Cis8aDM+Q29sbGVjdGlvbiBDbGFzc2VzPC9oMz4KKworPGg1PkJhY2tncm91bmQ8L2g1PgorCis8cD5WZXJzaW9uIDEuMiBvZiB0aGUgSmF2YSAyIFN0YW5kYXJkIEVkaXRpb24gKEoyU0UpIGludHJvZHVjZWQgYSBwb3dlcmZ1bAorc2V0IG9mIGNvbGxlY3Rpb24gY2xhc3NlcyB0aGF0IGFyZSBnZW5lcmFsbHkgdXNlZnVsIGluIEphdmEgcHJvZ3JhbW1pbmcsIGJhc2VkCitvbiB0aGUgZnVuZGFtZW50YWwgaW50ZXJmYWNlcyA8Y29kZT5qYXZhLnV0aWwuQ29sbGVjdGlvbjwvY29kZT4sCis8Y29kZT5qYXZhLnV0aWwuTGlzdDwvY29kZT4sIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+LCBhbmQKKzxjb2RlPmphdmEudXRpbC5TZXQ8L2NvZGU+LiAgQ29tcGFyZWQgdG8gdGhlIGNvbGxlY3Rpb24gY2xhc3NlcyBhdmFpbGFibGUgaW4KK0pESyAxLjEgKHByaW5jaXBhbGx5IDxjb2RlPmphdmEudXRpbC5IYXNodGFibGU8L2NvZGU+IGFuZAorPGNvZGU+amF2YS51dGlsLlZlY3RvcjwvY29kZT4pLCB0aGUgbmV3IGNsYXNzZXMgb2ZmZXIgbXVjaCByaWNoZXIgZnVuY3Rpb25hbGl0eQorYXMgd2VsbCBhcyB0aGUgb3Bwb3J0dW5pdHkgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZS48L3A+CisKKzxwPlRoZSBwZXJmb3JtYW5jZSBpbmNyZWFzZSBwb3RlbnRpYWwgY29tZXMgZnJvbSB0aGUgZmFjdCB0aGF0IG5vbmUgb2YgdGhlCittZXRob2RzIHVzZWQgdG8gYWNjZXNzIHRoZSBuZXcgY29sbGVjdGlvbiBjbGFzc2VzIGFyZSA8Y29kZT5zeW5jaHJvbml6ZWQ8L2NvZGU+CithcyB3ZXJlIHRoZSBtZXRob2RzIG9mIDxjb2RlPkhhc2h0YWJsZTwvY29kZT4gYW5kIDxjb2RlPlZlY3RvcjwvY29kZT4uICBJbiBhCitzaW5nbGUgdGhyZWFkIGFwcGxpY2F0aW9uLCB0aGlzIG1lYW5zIHRoYXQgbWV0aG9kIGNhbGxzIGNhbiBleGVjdXRlIG11Y2ggbW9yZQorcXVpY2tseSBiZWNhdXNlIHN5bmNocm9uaXphdGlvbiBpcyBuZXZlciBuZWNlc3NhcnkuICBJbiBhIG11bHRpcGxlIHRocmVhZAorZW52aXJvbm1lbnQsIHRob3VnaCwgaXQgaXMgdXAgdG8gdGhlIGRldmVsb3BlciB0byBlbnN1cmUgdGhhdCBhbnkgbWV0aG9kIGNhbGxzCittYWRlIHdoaWxlIGFub3RoZXIgdGhyZWFkIGlzIG1vZGlmeWluZyB0aGUgY29sbGVjdGlvbiBtdXN0IGJlIHN5bmNocm9uaXplZC4KKzwvcD4KKworPHA+VGhlcmUgYXJlIG1hbnkgY2FzZXMgaW4gbXVsdGl0aHJlYWRlZCBzZXJ2ZXIgZW52aXJvbm1lbnRzIChzdWNoIGFzIGEgd2ViCithcHBsaWNhdGlvbikgd2hlcmUgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBpbml0aWFsaXplZCBhdCBhcHBsaWNhdGlvbiBzdGFydHVwCit0aW1lLCBhbmQgYXJlIHRoZW4gcHJlZG9taW5hbnRseSBhY2Nlc3NlZCBpbiBhIHJlYWQtb25seSBtYW5uZXIuICBBbiBleGFtcGxlCitvZiB0aGlzIGlzIHRoZSBTdHJ1dHMgY29udHJvbGxlciBhcHBsaWNhdGlvbiwgd2hpY2ggaW5pdGlhbGl6ZXMgaXRzIGNvbGxlY3Rpb24KK29mIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IGluc3RhbmNlcyAoZWFjaCBjb3JyZXNwb25kaW5nIHRvIGFuCis8Y29kZT4mbHQ7YWN0aW9uJmd0OzwvY29kZT4gZWxlbWVudCBpbiB0aGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+CitmaWxlKSBhdCBzdGFydHVwIHRpbWUuICBIb3dldmVyLCBpdCBpcyBsZWdhbCBmb3IgYW4gYXBwbGljYXRpb24gdG8gZHluYW1pY2FsbHkKK2NoYW5nZSB0aGUgc2V0IG9mIGF2YWlsYWJsZSBtYXBwaW5ncyB3aGlsZSB0aGUgYXBwbGljYXRpb24gaXMgcnVubmluZyAtLSBzbywKK3RvIGJlIHNhZmUsIGl0IHdvdWxkIG5vcm1hbGx5IGJlIG5lY2Vzc2FyeSB0byBzeW5jaHJvbml6ZSBhY2Nlc3MgdG8gc3VjaAorY29sbGVjdGlvbnMsIGV2ZW4gdGhvdWdoIDk5JSBvZiB0aG9zZSBhY2Nlc3NlcyBhcmUgcmVhZCBvbmx5IGFuZCB3b3VsZCBub3QKK290aGVyd2lzZSByZXF1aXJlIHN5bmNocm9uaXphdGlvbi48L3A+CisKKzxwPlRvIGRlYWwgd2l0aCBzdWNoIHNjZW5hcmlvcywgdGhlIFN0cnV0cyB1dGlsaXR5IHBhY2thZ2UgaW5jbHVkZXMgYSBzZXJpZXMKK29mIHNwZWNpYWxpemVkIGNvbGxlY3Rpb24gY2xhc3NlcyBkZXNpZ25lZCB0byBvcGVyYXRlIGluIGEgbXVsdGl0aHJlYWQKK2Vudmlyb25tZW50IHdoZXJlIHRoZSBsYXJnZSBtYWpvcml0eSBvZiBhY2Nlc3NlcyBhcmUgcmVhZCBvbmx5LCB3aXRob3V0CityZXF1aXJpbmcgc3luY2hyb25pemF0aW9uIG9uIGV2ZXJ5IG9wZXJhdGlvbiwgYnV0IHN0aWxsIHByb3RlY3RpbmcgYWdhaW5zdAordGhlIHBvc3NpYmlsaXR5IG9mIHJ1bnRpbWUgbW9kaWZpY2F0aW9ucyB0byB0aGUgdW5kZXJseWluZyBjb2xsZWN0aW9uLjwvcD4KKworPGg1PlRoZW9yeSBvZiBPcGVyYXRpb248L2g1PgorCis8cD5FYWNoIG9mIHRoZSBhdmFpbGFibGUgY29sbGVjdGlvbiBjbGFzc2VzIG9wZXJhdGVzIGluIG9uZSBvZiB0d28gbW9kZXM6Cis8ZW0+ZmFzdDwvZW0+IG9yIDxlbT5zbG93PC9lbT4uICBXaGVuIGZpcnN0IGNyZWF0ZWQsIHRoZSBjb2xsZWN0aW9uIG9wZXJhdGVzCitpbiA8ZW0+c2xvdzwvZW0+IG1vZGUsIHdoaWNoIGlzIGFwcHJvcHJpYXRlIGZvciBpbml0aWFsbHkgcG9wdWxhdGluZyB0aGUKK2NvbnRlbnRzIG9mIHRoZSBjb2xsZWN0aW9uLiAgT25jZSB0aGUgaW5pdGlhbCBwb3B1bGF0aW9uIGlzIGNvbXBsZXRlLCBzd2l0Y2gKK3RvIDxlbT5mYXN0PC9lbT4gbW9kZSBieSBjYWxsaW5nIDxjb2RlPnNldEZhc3QodHJ1ZSk8L2NvZGU+IGZvciBtYXhpbXVtCitwZXJmb3JtYW5jZSB3aGVuIG1vc3QgYWNjZXNzZXMgYXJlIHJlYWQtb25seS48L3A+CisKKzxwPldoZW4gb3BlcmF0aW5nIGluIDxlbT5zbG93PC9lbT4gbW9kZSwgYWxsIG1ldGhvZHMgdGhhdCBhY2Nlc3MgdGhpcworY29sbGVjdGlvbiwgZXZlbiByZWFkLW9ubHkgbWV0aG9kcywgYXJlIHN5bmNocm9uaXplZCAtIHJlc3VsdGluZyBpbiBpbXBhY3RzIG9uCitwZXJmb3JtYW5jZSBzaW1pbGFyIHRvIHRoYXQgYWx3YXlzIHBlcmZvcm1lZCBieSB0aGUgPGNvZGU+SGFzaHRhYmxlPC9jb2RlPiBhbmQKKzxjb2RlPlZlY3RvcjwvY29kZT4gY2xhc3Nlcy4gIFRoaXMgbW9kZSBpcyBhcHByb3ByaWF0ZSB3aGVuIHlvdSBhcmUKK2luaXRpYWxpemluZyB0aGUgY29udGVudCBvZiB0aGUgY29sbGVjdGlvbiwgb3Igd2hlbiB5b3UgbmVlZCB0byBwZXJmb3JtIGEgbGFyZ2UKK3NlcmllcyBvZiB1cGRhdGVzLjwvcD4KKworPHA+VXNpbmcgPGVtPmZhc3Q8L2VtPiBtb2RlLCBvbiB0aGUgb3RoZXIgaGFuZCwgY2F1c2VzIG1ldGhvZCBjYWxscyB0byBvcGVyYXRlCitpbiB0aGUgZm9sbG93aW5nIG1hbm5lcjo8L3A+Cis8dWw+Cis8bGk+TWV0aG9kIGNhbGxzIHRoYXQgYWNjZXNzIGluZm9ybWF0aW9uIGZyb20gdGhlIGNvbGxlY3Rpb24sIGJ1dCBkbyBub3QKKyAgICBtb2RpZnkgaXQsIGFyZSBleGVjdXRlZCA8c3Ryb25nPndpdGhvdXQ8L3N0cm9uZz4gc3luY2hyb25pemF0aW9uLjwvbGk+Cis8bGk+TWV0aG9kIGNhbGxzIHRoYXQgbW9kaWZ5IHRoZSBzdHJ1Y3R1cmUgb2YgYSBjb2xsZWN0aW9uIGRvIHNvIGJ5CisgICAgc3luY2hyb25pemluZywgY2xvbmluZyB0aGUgZXhpc3RpbmcgY29sbGVjdGlvbiBpbnN0YW5jZSwgbW9kaWZ5aW5nIHRoZQorICAgIGNsb25lZCBpbnN0YW5jZSwgYW5kIHRoZW4gcmVwbGFjaW5nIHRoZSBjdXJyZW50IGNvbGxlY3Rpb24gaW5zdGFuY2UuPC9saT4KKzwvdWw+CisKKzxwPkFzIHlvdSBjYW4gc2VlLCBtb2RpZmljYXRpb24gb3BlcmF0aW9ucyBhcmUgPHN0cm9uZz5tdWNoPC9zdHJvbmc+IG1vcmUKK2V4cGVuc2l2ZSB3aGVuIG9wZXJhdGluZyBpbiA8ZW0+ZmFzdDwvZW0+IG1vZGUsIGJ1dCBkb2luZyB0aGluZ3MgaW4gdGhpcyB3YXkKK2FsbG93cyByZWFkIG9ubHkgb3BlcmF0aW9ucywgd2hpY2ggc2hvdWxkIGJlIHRoZSB2YXN0IG1ham9yaXR5LCB0byBvcGVyYXRlIGF0CittYXhpbXVtIHNwZWVkLjwvcD4KKworPHA+SWYgeW91ciBjb2xsZWN0aW9uIHdpbGwgPHN0cm9uZz5uZXZlcjwvc3Ryb25nPiBiZSBhY2Nlc3NlZCBpbiBhIG11bHRpdGhyZWFkCitlbnZpcm9ubWVudCwgeW91IHNob3VsZCB1c2Ugb25lIG9mIHRoZSBzdGFuZGFyZCBjb2xsZWN0aW9uIGNsYXNzZXMgaW5zdGVhZCwKK3dpdGhvdXQgc3luY2hyb25pemF0aW9uLCBmb3IgbWF4aW11bSBwZXJmb3JtYW5jZS48L3A+CisKKzxoNT5BdmFpbGFibGUgQ29sbGVjdGlvbiBDbGFzc2VzPC9oNT4KKworPHA+VGhlIGZvbGxvd2luZyBjb2xsZWN0aW9uIGNsYXNzZXMsIHdpdGggdGhlIGFiaWxpdHkgdG8gb3BlcmF0ZSBpbiBlaXRoZXIKKzxlbT5mYXN0PC9lbT4gb3IgPGVtPnNsb3c8L2VtPiBtb2RlLCBhcmUgaW5jbHVkZWQ6PC9wPgorPHVsPgorPGxpPjxhIGhyZWY9IkZhc3RBcnJheUxpc3QuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0QXJyYXlMaXN0PC9hPiAtCisgICAgU2ltaWxhciBpbiBmdW5jdGlvbmFsaXR5IHRvIDxjb2RlPmphdmEudXRpbC5BcnJheUxpc3Q8L2NvZGU+LjwvbGk+Cis8bGk+PGEgaHJlZj0iRmFzdEhhc2hNYXAuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0SGFzaE1hcDwvYT4gLQorICAgIFNpbWlsYXIgaW4gZnVuY3Rpb25hbGl0eSB0byA8Y29kZT5qYXZhLnV0aWwuSGFzaE1hcDwvY29kZT4uPC9saT4KKzxsaT48YSBocmVmPSJGYXN0VHJlZU1hcC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkZhc3RUcmVlTWFwPC9hPiAtCisgICAgU2ltaWxhciBpbiBmdW5jdGlvbmFsaXR5IHRvIDxjb2RlPmphdmEudXRpbC5UcmVlTWFwPC9jb2RlPi48L2xpPgorPC91bD4KKworCis8YSBuYW1lPSJkb2MuSkRCQyI+PC9hPgorPGgzPkpEQkMgQ29ubmVjdGlvbiBQb29sPC9oMz4KKworPGg1PkJhY2tncm91bmQ8L2g1PgorCis8cD5BIGxhcmdlIG51bWJlciBvZiB3ZWIgYXBwbGljYXRpb25zIHJlcXVpcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHJlbGF0aW9uYWwKK2RhdGFiYXNlIHRvIGFjY2VzcyBvciB1cGRhdGUgcGVyc2lzdGVudGx5IHN0b3JlZCBpbmZvcm1hdGlvbi4gIEluIGEgdHlwaWNhbAorY2xpZW50LXNlcnZlciBhcHBsaWNhdGlvbiwgZWFjaCBjb25jdXJyZW50IHVzZXIgb3BlbnMgdGhlaXIgb3duIGRhdGFiYXNlCitjb25uZWN0aW9uIGF0IHByb2dyYW0gaW5pdGlhbGl6YXRpb24sIGFuZCB1c2VzIHRoaXMgY29ubmVjdGlvbiB0aHJvdWdob3V0Cit0aGUgcGVyaW9kIG9mIHRpbWUgdGhlIGFwcGxpY2F0aW9uIGlzIG9wZW4uPC9wPgorCis8cD5XaGlsZSB0aGlzIGFwcHJvYWNoIGNhbiB3b3JrIHdlbGwgaW4gYW4gZW52aXJvbm1lbnQgd2hlcmUgdGhlIG51bWJlciBvZgorYWN0aXZlIHVzZXJzIGlzIHJlYXNvbmFibHkgZml4ZWQsIGl0IGRvZXMgbm90IHNjYWxlIHdlbGwgdG8gYSB3ZWIgYXBwbGljYXRpb24KK3doZXJlIHRoZSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIHVzZXJzIGNvdWxkIGJlIHZlcnkgbGFyZ2UuICBJbiBhZGRpdGlvbiwgb3BlbgorZGF0YWJhc2UgY29ubmVjdGlvbnMgKGV2ZW4gd2hlbiBub3QgYWN0aXZlbHkgdXNlZCkgZG8gaW1wb3NlIHNvbWUgb3ZlcmhlYWQKK2Nvc3RzLCBhbmQgbW9zdCB3ZWIgYXBwbGljYXRpb24gdXNlcnMgKGF0IGEgZ2l2ZW4gaW5zdGFudCkgYXJlIHJldmlld2luZyB0aGUKK2NvbnRlbnRzIG9mIGEgcHJldmlvdXNseSBnZW5lcmF0ZWQgcGFnZSAob3IgdHlwaW5nIGluIHRoZWlyIG5leHQgc2V0IG9mIGlucHV0CitpbmZvcm1hdGlvbiksIHJhdGhlciB0aGFuIGFjdGl2ZWx5IGFjY2Vzc2luZyB0aGUgZGF0YWJhc2UuPC9wPgorCis8cD5UbyBkZWFsIHdpdGggdGhpcyBzaXR1YXRpb24sIHNldmVyYWwgYmFzaWMgc3RyYXRlZ2llcyBhcmUgcG9zc2libGU6PC9wPgorPG9sPgorPGxpPk9wZW4gYSBjb25uZWN0aW9uIG9uIGVhY2ggcmVxdWVzdCwgZG8gd2hhdGV2ZXIgcHJvY2Vzc2luZyBpcyByZXF1aXJlZCwKKyAgICBhbmQgdGhlbiBjbG9zZSB0aGUgY29ubmVjdGlvbi48L2xpPgorPGxpPk9wZW4gYSBjb25uZWN0aW9uIGZvciBlYWNoIHVzZXIsIGFuZCBzdG9yZSBpdCBpbiB0aGUgdXNlcidzIHNlc3Npb24uPC9saT4KKzxsaT5TaGFyZSBhICJwb29sIiBvZiBvcGVuIGNvbm5lY3Rpb25zIGJldHdlZW4gYWxsIG9mIHRoZSBhcHBsaWNhdGlvbidzCisgICAgY3VycmVudCB1c2Vycy48L2xpPgorPC9vbD4KKworPHA+VGhlIGZpcnN0IHN0cmF0ZWd5IGhhcyB0aGUgdmlydHVlIG9mIHNpbXBsaWNpdHkgLSB5b3UgbWVyZWx5IG5lZWQgdG8gb3BlbgorYSBkYXRhYmFzZSBjb25uZWN0aW9uIGFueSB0aW1lIHlvdSBuZWVkIG9uZSwgcGVyZm9ybSB0aGUgYXBwcm9wcmlhdGUgZGF0YQorYWNjZXNzZXMgYW5kIHVwZGF0ZXMsIGFuZCBjbG9zZSB0aGUgY29ubmVjdGlvbi4gIEhvd2V2ZXIsIGl0IHN1ZmZlcnMgZnJvbSBhCittYWpvciBkaXNhZHZhbnRhZ2U6ICBvbiBtb3N0IGRhdGFiYXNlcywgZXN0YWJsaXNoaW5nIGEgY29ubmVjdGlvbiBjYW4gYmUgdmVyeQordGltZSBjb25zdW1pbmcgKG9mdGVuIHJlcXVpcmluZyBtdWx0aXBsZSBzZWNvbmRzIG9mIGNsb2NrIHRpbWUpLCBpbiBvcmRlciB0bworcGVyZm9ybSBhIGRhdGFiYXNlIHRyYW5zYWN0aW9uIHRoYXQgbWlnaHQgdGFrZSBtaWxsaXNlY29uZHMuPC9wPgorCis8cD5PcGVuaW5nIGEgY29ubmVjdGlvbiBwZXIgdXNlciwgYXMgdGhlIHNlY29uZCBzdHJhdGVneSBzdWdnZXN0cywgaXMgc2ltaWxhcgordG8gdGhlIGFwcHJvYWNoIHRha2VuIHdpdGggY2xpZW50LXNlcnZlciBhcHBsaWNhdGlvbnMgZGVzY3JpYmVkIGVhcmxpZXIuICBBcworbG9uZyBhcyB0aGUgbnVtYmVyIG9mIHNpbXVsdGFuZW91cyB1c2VycyBjYW4gYmUgY29udHJvbGxlZCBhdCBhIG1hbmFnZWFibGUKK251bWJlciAoc3VjaCBhcyB3aXRoIG1hbnkgaW50cmFuZXQtYmFzZWQgYXBwbGljYXRpb25zKSwgdGhpcyBhcHByb2FjaCBpcworZmVhc2libGUuICBIb3dldmVyLCBpdCBiZWNvbWVzIHVubWFuYWdlYWJsZSB3aGVuIHRoZSBudW1iZXIgb2YgdXNlcnMgY2FuIGNsaW1iCityYXBpZGx5IHRvIHZlcnkgbGFyZ2UgbnVtYmVycyAoYXMgaXMgdHlwaWNhbCBvZiBtYW55IEludGVybmV0LWhvc3RlZCBwdWJsaWMKK2FwcGxpY2F0aW9ucyksIGFuZCBzdGlsbCByZXF1aXJlcyBtb3JlIG92ZXJoZWFkIHRoYW4gYSBzdHJhdGVneSB0aGF0IHdvdWxkCitzaGFyZSBhIHNtYWxsZXIgbnVtYmVyIG9mIGNvbm5lY3Rpb25zLjwvcD4KKworPHA+Q29ubmVjdGlvbiBwb29saW5nIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSB0aGlyZCBzdHJhdGVneS4gIEl0IGlzIGJhc2VkCitvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IG1vc3QgdXNlcnMgb2YgYSB3ZWIgYXBwbGljYXRpb24gd2lsbCBiZSBpbnRlcmFjdGluZworbG9jYWxseSB3aXRoIHRoZSBsYXN0IHBhZ2UgdGhhdCB3YXMgc2VudCB0byB0aGVpciBicm93c2VyLiAgVGhlIG51bWJlciBvZiB1c2VycworYWN0dWFsbHkgcGVyZm9ybWluZyBhIHJlcXVlc3QgYXQgYW55IGdpdmVuIHRpbWUgaXMgdXN1YWxseSBhIHZlcnkgc21hbGwKK3BlcmNlbnRhZ2Ugb2YgdGhlIHRvdGFsIG51bWJlciBvZiBhY3RpdmUgdXNlcnMsIGFuZCBkdXJpbmcgcmVxdWVzdCBwcm9jZXNzaW5nCitpcyB0aGUgb25seSB0aW1lIHRoYXQgYSBkYXRhYmFzZSBjb25uZWN0aW9uIGlzIHJlcXVpcmVkLjwvcD4KKworPHA+U3RydXRzIHByb3ZpZGVzIGEgc2ltcGxlIGNvbm5lY3Rpb24gcG9vbCBjbGFzcyBjYWxsZWQKKzxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuR2VuZXJpY0RhdGFTb3VyY2U8L2NvZGU+LiAgSXQgYWxsb3dzIHlvdSB0bworY29uZmlndXJlIGEgc2V0IG9mIGNvbm5lY3Rpb25zICh3aXRoIGlkZW50aWNhbCBjb25uZWN0aW9uIHBhcmFtZXRlcnMpIHRvIGEKK3BhcnRpY3VsYXIgZGF0YWJhc2UsIHVzaW5nIGEgcGFydGljdWxhciBKREJDIGRyaXZlciwgYW5kIHRoZW4gc2hhcmUgdGhvc2UKK2Nvbm5lY3Rpb25zIGFtb25nIGEgbnVtYmVyIG9mIHNpbXVsdGFuZW91c2x5IG9wZXJhdGluZyB0aHJlYWRzIChzdWNoIGFzIHRoZQordmFyaW91cyByZXF1ZXN0IHRocmVhZHMgdGhhdCBhcmUgY29uY3VycmVudGx5IGFjdGl2ZSBpbiBhIHNlcnZsZXQgY29udGFpbmVyKS4KK1RoZSA8Y29kZT5HZW5lcmljRGF0YVNvdXJjZTwvY29kZT4gY2xhc3MgaW1wbGVtZW50cyB0aGUKKzxjb2RlPmphdmF4LnNxbC5EYXRhU291cmNlPC9jb2RlPiBpbnRlcmZhY2UgZnJvbSB0aGUgSmF2YSBEYXRhYmFzZSBDb25uZWN0aXZpdHkKKyh2ZXJzaW9uIDIuMCkgU3RhbmRhcmQgRXh0ZW5zaW9uIEFQSSwgc28gYW55IHByb2dyYW1zIHlvdSB1c2UgdG8gYWNjZXNzIGl0CitzaG91bGQgcmVmZXJlbmNlIHRoaXMgaW50ZXJmYWNlLCByYXRoZXIgdGhhbiB0aGUgY2xhc3MgbmFtZSBkaXJlY3RseS4KK1RoYXQgd2F5LCB5b3UgY2FuIG1pZ3JhdGUgdG8gYSBtb3JlIGFkdmFuY2VkIGNvbm5lY3Rpb24gcG9vbCBpbXBsZW1lbnRhdGlvbgorbGF0ZXIsIHdpdGggbGl0dGxlIG9yIG5vIGltcGFjdCBvbiB5b3VyIGFwcGxpY2F0aW9uLjwvcD4KKworPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIEpEQkMgMi4wIFN0YW5kYXJkIEV4dGVuc2lvbiBBUEksIHlvdSBjYW4KK2Rvd25sb2FkIHRoZSBzcGVjIChhbmQgdGhlIGNvcnJlc3BvbmRpbmcgQVBJIGNsYXNzZXMpLCBmcm9tCis8YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2pkYmMiPmh0dHA6Ly9qYXZhLnN1bi5jb20vcHJvZHVjdHMvamRiYzwvYT4uICBZb3UgY2FuIGFsc28gZmluZCBwb2ludGVycyB0byBhIHN1YnN0YW50aWFsIGFtb3VudCBvZiBvdGhlciBpbmZvcm1hdGlvbgorYWJvdXQgYXZhaWxhYmxlIEpEQkMgZHJpdmVycywgcHJvZ3JhbW1pbmcgdHV0b3JpYWxzLCBhbmQgc28gb24sIGF0IHRoaXMKK3dlYiBhZGRyZXNzLjwvcD4KKworPGg1PkluaXRpYWxpemluZyBhbmQgRmluYWxpemluZyB0aGUgQ29ubmVjdGlvbiBQb29sPC9oNT4KKworPHA+VGhlIGZvbGxvd2luZyBpbnN0cnVjdGlvbnMgc2hvdyB5b3UgaG93IHRvIGNvbmZpZ3VyZSB0aGUgY29ubmVjdGlvbiBwb29sCitjbGFzcyBhbmQgdXNlIGl0LCBmcm9tIGFueSBKYXZhIGFwcGxpY2F0aW9uLiAgQXMgeW91IHdpbGwgc2VlIGJlbG93LCB0aGUgU3RydXRzCitjb250cm9sbGVyIHNlcnZsZXQgb2ZmZXJzIHlvdSBjb252ZW5pZW50IG1lY2hhbmlzbXMgdG8gY29uZmlndXJlIG9uZSBvciBtb3JlCitjb25uZWN0aW9uIHBvb2xzLCBhbmQgbWFrZSB0aGVtIGF2YWlsYWJsZSB0byBBY3Rpb24gY2xhc3NlcyBhbmQgSlNQIHBhZ2VzIGJ5CitzdG9yaW5nIHRoZSBjb25uZWN0aW9uIHBvb2wgaW5zdGFuY2VzIGFzIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIChpbiBKU1AKK3Rlcm1zLCBhcHBsaWNhdGlvbi1zY29wZSBiZWFucykuPC9wPgorCis8cD5UbyBjb25maWd1cmUgYSA8Y29kZT5HZW5lcmljRGF0YVNvdXJjZTwvY29kZT4gaW5zdGFuY2UsIHlvdSBtdXN0IGZpcnN0CitjcmVhdGUgb25lOjwvcD4KKzxwcmU+CisgICAgR2VuZXJpY0RhdGFTb3VyY2UgZGF0YVNvdXJjZSA9CisgICAgICBuZXcgR2VuZXJpY0RhdGFTb3VyY2UoKTsKKzwvcHJlPgorCis8cD5OZXh0LCB5b3UgbXVzdCBzZXQgdGhlIGFwcHJvcHJpYXRlIHByb3BlcnRpZXMsIGJ5IGNhbGxpbmcgdGhlIGNvcnJlc3BvbmRpbmcKK0phdmFCZWFucyBwcm9wZXJ0eSBzZXR0ZXIgbWV0aG9kcyBwcm92aWRlZCBieSB0aGlzIGNsYXNzLiAgKFNlZSB0aGUgSmF2YWRvYworQVBJIGZvciB0aGUgPGEgaHJlZj0iR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L2E+IGNsYXNzIGZvcgorbW9yZSBkZXRhaWxzIG9uIHRoZSBhdmFpbGFibGUgcHJvcGVydGllcykuICBBbiBleGFtcGxlIG9mIGNvbmZpZ3VyaW5nIHRoZQorY29ubmVjdGlvbiBwb29sIG9iamVjdCB0byBhIFBvc3RncmVzIGRhdGFiYXNlIG1pZ2h0IGxvb2sgbGlrZSB0aGlzOjwvcD4KKzxwcmU+CisgICAgZGF0YVNvdXJjZS5zZXRBdXRvQ29tbWl0KGZhbHNlKTsKKyAgICBkYXRhU291cmNlLnNldERlc2NyaXB0aW9uKCJNeSBEYXRhYmFzZSBDb25uZWN0aW9uIFBvb2wiKTsKKyAgICBkYXRhU291cmNlLnNldERyaXZlckNsYXNzKCJvcmcucG9zdGdyZXNxbC5Ecml2ZXIiKTsKKyAgICBkYXRhU291cmNlLnNldE1heENvdW50KDQpOworICAgIGRhdGFTb3VyY2Uuc2V0TWluQ291bnQoMSk7CisgICAgZGF0YVNvdXJjZS5zZXRQYXNzd29yZCgibXlwYXNzd29yZCIpOworICAgIGRhdGFTb3VyY2Uuc2V0VXJsKCJqZGJjOnBvc3RncmVzcWw6Ly9sb2NhbGhvc3QvbXlkYXRhYmFzZSIpOworICAgIGRhdGFTb3VyY2Uuc2V0VXNlcigibXl1c2VybmFtZSIpOworPC9wcmU+CisKKzxwPkZpbmFsbHksIHlvdSBtdXN0IDxjb2RlPm9wZW4oKTwvY29kZT4gdGhlIGNvbm5lY3Rpb24gcG9vbC4gIFRoaXMgd2lsbAorZXN0YWJsaXNoIHRoZSBpbml0aWFsIGNvbm5lY3Rpb25zIHRvIHRoZSBkYXRhYmFzZSAoYmFzZWQgb24gdGhlIHZhbHVlIHlvdSBoYXZlCitjb25maWd1cmVkIGZvciB0aGUgPGNvZGU+bWluQ291bnQ8L2NvZGU+IHByb3BlcnR5KS4gIEFzIHlvdSB1c2UgY29ubmVjdGlvbnMKK2Zyb20gdGhlIHBvb2wgaW4gbXVsdGlwbGUgdGhyZWFkcywgYWRkaXRpb25hbCBjb25uZWN0aW9ucyAodXAgdG8gdGhlIG51bWJlcgoreW91IHNwZWNpZnkgd2l0aCB0aGUgPGNvZGU+bWF4Q291bnQ8L2NvZGU+IHByb3BlcnR5KSB3aWxsIGJlIGNyZWF0ZWQgYXMgbmVlZGVkLgorPC9wPgorPHByZT4KKyAgICB0cnkgeworICAgICAgICBkYXRhU291cmNlLm9wZW4oKTsKKyAgICB9IGNhdGNoIChTUUxFeGNlcHRpb24gZSkgeworICAgICAgICAuLi4gZGVhbCB3aXRoIGV4Y2VwdGlvbiAuLi4KKyAgICB9Cis8L3ByZT4KKworPHA+V2hlbiB5b3UgYXJlIGNvbXBsZXRlbHkgdGhyb3VnaCB3aXRoIHRoZSBjb25uZWN0aW9uIHBvb2wsIHlvdSBjYW4gZ3JhY2VmdWxseQorY2xvc2UgYWxsIG9mIHRoZSBjdXJyZW50bHkgb3BlbiBkYXRhYmFzZSBjb25uZWN0aW9ucyBieSBleGVjdXRpbmc8L3A+Cis8cHJlPgorICAgIHRyeSB7CisgICAgICAgIGRhdGFTb3VyY2UuY2xvc2UoKTsKKyAgICB9IGNhdGNoIChTUUxFeGNlcHRpb24gZSkgeworICAgICAgICAuLi4gZGVhbCB3aXRoIGV4Y2VwdGlvbiAuLi4KKyAgICB9Cis8L3ByZT4KKworPGg1PlVzaW5nIHRoZSBHZW5lcmljIENvbm5lY3Rpb24gUG9vbDwvaDU+CisKKzxwPlRvIGFjY2VzcyB0aGUgZGF0YWJhc2UgZnJvbSB3aXRoaW4gYW4gYXBwbGljYXRpb24gY2xhc3MsIHlvdSBtdXN0IGZvbGxvdyBhCitzaW1wbGUgZm91ci1zdGVwIHByb2NlZHVyZSBlYWNoIHRpbWUgeW91IG5lZWQgYSBjb25uZWN0aW9uOjwvcD4KKzxvbD4KKzxsaT5BY3F1aXJlIGEgY29ubmVjdGlvbiBmcm9tIHRoZSBjb25uZWN0aW9uIHBvb2wuPC9saT4KKzxsaT5QZXJmb3JtIHRoZSBkYXRhYmFzZSBvcGVyYXRpb25zIHJlcXVpcmVkIGJ5IHlvdXIgYXBwbGljYXRpb24uPC9saT4KKzxsaT5DYXVzZSB0aGUgbGFzdCBkYXRhYmFzZSB0cmFuc2FjdGlvbiB0byBiZSBjb21taXR0ZWQgb3Igcm9sbGVkIGJhY2sKKyAgICAoY29tbWl0cyBhcmUgcmVxdWlyZWQgb24gbWFueSBkYXRhYmFzZXMgdG8gZW5zdXJlIHRoYXQgdGhlIGRhdGFiYXNlCisgICAgb3BlcmF0aW9ucyB5b3UganVzdCBwZXJmb3JtZWQgYXJlIHBlcm1hbmVudGx5IHN0b3JlZCBvciBub3QpLjwvbGk+Cis8bGk+IkNsb3NlIiB0aGUgY29ubmVjdGlvbiwgd2hpY2ggcmV0dXJucyBpdCB0byB0aGUgY29ubmVjdGlvbiBwb29sIGZvcgorICAgIHJldXNlIGxhdGVyLjwvbGk+Cis8L29sPgorCis8cD5BbiBleGFtcGxlIGNvZGUgc2VxdWVuY2UgdGhhdCBwZXJmb3JtcyB0aGlzIHByb2NlZHVyZSBtaWdodCBsb29rIGxpa2UKK3RoaXM6PC9wPgorPHByZT4KKyAgICBEYXRhU291cmNlIGRhdGFTb3VyY2UgPSAuLi4gYWNxdWlyZSByZWZlcmVuY2UgdG8gZGF0YVNvdXJjZSAuLi4KKyAgICBDb25uZWN0aW9uIGNvbm4gPSBudWxsOworICAgIFByZXBhcmVkU3RhdGVtZW50IHN0bXQgPSBudWxsOworICAgIFJlc3VsdFNldCBycyA9IG51bGw7CisgICAgdHJ5IHsKKyAgICAgICAgY29ubiA9IGRhdGFTb3VyY2UuZ2V0Q29ubmVjdGlvbigpOworICAgICAgICBzdG10ID0gY29ubi5wcmVwYXJlU3RhdGVtZW50KCJTRUxFQ1QgY3VzdF9pZCwgbmFtZSBGUk9NIGN1c3RvbWVycyIgKworICAgICAgICAgICIgV0hFUkUgKGxhc3RfcHVyY2hhc2VfZGF0ZSA+PSA/KSIgKworICAgICAgICAgICIgT1JERVIgQlkgbmFtZSIpOworICAgICAgICBzdG10LnNldERhdGUoMSwgbGFzdFB1cmNoYXNlRGF0ZSk7CisgICAgICAgIHJzID0gc3RtdC5leGVjdXRlUXVlcnkoKTsKKyAgICAgICAgd2hpbGUgKChyb3cgPSBycy5uZXh0KCkpICE9IG51bGwpIHsKKyAgICAgICAgICAgIC4uLiBwcm9jZXNzIHRoaXMgcm93IC4uLgorICAgICAgICB9CisgICAgICAgIHJzLmNsb3NlKCk7CisgICAgICAgIHJzID0gbnVsbDsKKyAgICAgICAgc3RtdC5jbG9zZSgpOworICAgICAgICBzdG10ID0gbnVsbDsKKyAgICAgICAgY29ubi5jb21taXQoKTsKKyAgICAgICAgY29ubi5jbG9zZSgpOworICAgICAgICBjb25uID0gbnVsbDsKKyAgICB9IGNhdGNoIChTUUxFeGNlcHRpb24gZSkgeworICAgICAgICBpZiAocnMgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBycy5jbG9zZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoU1FMRXhjZXB0aW9uIGYpIHsKKyAgICAgICAgICAgICAgICA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBycyA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHN0bXQgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBzdG10LmNsb3NlKCk7CisgICAgICAgICAgICB9IGNhdGNoIChTUUxFeGNlcHRpb24gZikgeworICAgICAgICAgICAgICAgIDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0bXQgPSBudWxsOworICAgICAgICB9CisgICAgICAgIGlmIChjb25uICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgY29ubi5yb2xsYmFjaygpOworICAgICAgICAgICAgfSBjYXRjaCAoU1FMRXhjZXB0aW9uIGYpIHsKKyAgICAgICAgICAgICAgICAuLi4gZGVhbCB3aXRoIGV4Y2VwdGlvbiAuLi4KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAuLi4gZGVhbCB3aXRoIGV4Y2VwdGlvbiAuLi4KKyAgICB9IGZpbmFsbHkgeworICAgICAgICBpZiAoY29ubiAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNvbm4uY2xvc2UoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKFNRTEV4Y2VwdGlvbiBmKSB7CisgICAgICAgICAgICAgICAgLi4uIGRlYWwgd2l0aCBleGNlcHRpb24gLi4uCisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb25uID0gbnVsbDsKKyAgICAgICAgfQorICAgIH0KKzwvcHJlPgorCis8cD5PbmUgYXNwZWN0IG9mIHRoZSBhYm92ZSBjb2RlIGV4YW1wbGUgdGhhdCBtaWdodCBzdXJwcmlzZSBkZXZlbG9wZXJzIHdobworaGF2ZSBwcmV2aW91c2x5IHVzZWQgSkRCQyBjb25uZWN0aW9ucyBpbmRpdmlkdWFsbHkgaXMgdGhlIGlkZWEgb2YgY2FsbGluZworY2xvc2UoKSBvbiB0aGUgQ29ubmVjdGlvbi4gIE5vcm1hbGx5LCB0aGlzIGNhbGwgd2lsbCBzZXZlciB0aGUgQ29ubmVjdGlvbidzCit1bmRlcmx5aW5nIGxpbmsgdG8gdGhlIGRhdGFiYXNlLCBhbmQgcmVuZGVyIHRoYXQgQ29ubmVjdGlvbiB1bnVzZWFibGUgZm9yCithbnkgZnVydGhlciBvcGVyYXRpb25zLiAgSG93ZXZlciwgd2hlbiB1c2VkIGluIGEgY29ubmVjdGlvbiBwb29sIGVudmlyb25tZW50LAordGhlIGFjdHVhbCBDb25uZWN0aW9uIHlvdSByZWNlaXZlIGJ5IGNhbGxpbmcgPGNvZGU+Z2V0Q29ubmVjdGlvbigpPC9jb2RlPgoraXMgYSBjdXN0b21pemVkICJ3cmFwcGVyIiBhcm91bmQgYSByZWFsIEpEQkMgQ29ubmVjdGlvbiBpbnN0YW5jZS4gIENhbGxpbmcKKzxjb2RlPmNsb3NlKCk8L2NvZGU+IG9uIHRoaXMgd3JhcHBlciBzaW1wbHkgY2F1c2VzIHRoaXMgY29ubmVjdGlvbiB0byBiZQorcmV0dXJuZWQgdG8gdGhlIHBvb2wuPC9wPgorCis8cD5XaGF0IHdvdWxkIGhhcHBlbiBpZiB5b3VyIGFwcGxpY2F0aW9uIGZhaWxlZCB0byByZXR1cm4gYSBjb25uZWN0aW9uIHRvIHRoZQorcG9vbCB3aGVuIGl0IHdhcyB0aHJvdWdoPyAgQXMgeW91IG1pZ2h0IGV4cGVjdCwgdGhhdCBwYXJ0aWN1bGFyIGNvbm5lY3Rpb24KK2JlY29tZXMgImxvc3QiIHRvIHRoZSBzZXJ2ZXIsIGFuZCBjYW4gbmV2ZXIgYWdhaW4gYmUgdXNlZCAoZXZlbiB0aG91Z2ggaXQKK3JlbWFpbnMgY29ubmVjdGVkIHRvIHRoZSBkYXRhYmFzZSB0aHJvdWdob3V0IHRoZSBsaWZlIG9mIHRoZSBjb25uZWN0aW9uIHBvb2wKK2l0c2VsZikuICBJZiB0aGlzIGhhcHBlbnMgcmVwZWF0ZWRseSwgeW91IHdpbGwgZXZlbnR1YWxseSBleGhhdXN0IHRoZSBwb29sCitvZiBhdmFpbGFibGUgY29ubmVjdGlvbnMsIGFuZCBhcHBsaWNhdGlvbiBwcm9jZXNzaW5nIHdpbGwgc3RvcC48L3A+CisKKzxwPlRvIGF2b2lkIHRoaXMgcHJvYmxlbSwgeW91ciBhcHBsaWNhdGlvbiBsb2dpYyBtdXN0IGVuc3VyZSB0aGF0IGl0Cis8c3Ryb25nPkFMV0FZUzwvc3Ryb25nPiByZXR1cm5zIGFsbG9jYXRlZCBjb25uZWN0aW9ucyB0byB0aGUgcG9vbCwgbm8gbWF0dGVyCit3aGF0IHByb2JsZW1zIG1pZ2h0IGhhcHBlbiBpbiB0aGUgaW50ZXJpbS4gIFRoZSBKYXZhIGxhbmd1YWdlIHByb3ZpZGVzIG9uZQorY29udmVuaWVudCBtZWNoYW5pc20gdG8gYWNoaWV2ZSB0aGlzIC0gdXNpbmcgYSA8Y29kZT5maW5hbGx5PC9jb2RlPiBibG9jaywKK2FzIGluIHRoZSBjb2RlIGV4YW1wbGUgYWJvdmUuICBUaGlzIGlzIG5vdCB0aGUgb25seSB3YXkgdG8gZW5zdXJlIHRoYXQgYQorY29ubmVjdGlvbiBpcyBhbHdheXMgcmV0dXJuZWQsIGJ1dCBpdCBpcyB2ZXJ5IGNvbnZlbmllbnQuPC9wPgorCis8aDU+VXNpbmcgQ29ubmVjdGlvbiBQb29scyB3aXRoIHRoZSBTdHJ1dHMgQ29udHJvbGxlciBTZXJ2bGV0PC9oNT4KKworPHA+SWYgeW91ciBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIHVuZGVybmVhdGggdGhlIFN0cnV0cyBjb250cm9sbGVyIHNlcnZsZXQKKyg8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldDwvY29kZT4pLCB5b3UgY2FuIHRha2UgYWR2YW50YWdlCitvZiB0aGUgc2VydmxldCdzIGFiaWxpdHkgdG8gcHJlY29uZmlndXJlIG9uZSBvciBtb3JlIGNvbm5lY3Rpb24gcG9vbHMgZm9yIHlvdSwKK2Jhc2VkIG9uIGluZm9ybWF0aW9uIGluY2x1ZGVkIGluIHRoZSA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4gZmlsZS4KK1NpbXBseSBpbmNsdWRlIGEgc2VjdGlvbiB0aGF0IGxvb2tzIGxpa2UgdGhpczo8L3A+Cis8cHJlPgorICAgICZsdDtkYXRhLXNvdXJjZXMmZ3Q7CisgICAgICAmbHQ7ZGF0YS1zb3VyY2UmZ3Q7CisgICAgICAgICZsdDtzZXQtcHJvcGVydHkgcHJvcGVydHk9ImF1dG9Db21taXQiCisgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9ImZhbHNlIi8mZ3Q7CisgICAgICAgICZsdDtzZXQtcHJvcGVydHkgcHJvcGVydHk9ImRlc2NyaXB0aW9uIgorICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJFeGFtcGxlIERhdGEgU291cmNlIENvbmZpZ3VyYXRpb24iLyZndDsKKyAgICAgICAgJmx0O3NldC1wcm9wZXJ0eSBwcm9wZXJ0eT0iZHJpdmVyQ2xhc3MiCisgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9Im9yZy5wb3N0Z3Jlc3FsLkRyaXZlciIvJmd0OworICAgICAgICAmbHQ7c2V0LXByb3BlcnR5IHByb3BlcnR5PSJtYXhDb3VudCIKKyAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iNCIvJmd0OworICAgICAgICAmbHQ7c2V0LXByb3BlcnR5IHByb3BlcnR5PSJtaW5Db3VudCIKKyAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iMiIvJmd0OworICAgICAgICAmbHQ7c2V0LXByb3BlcnR5IHByb3BlcnR5PSJwYXNzd29yZCIKKyAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0ibXlwYXNzd29yZCIvJmd0OworICAgICAgICAmbHQ7c2V0LXByb3BlcnR5IHByb3BlcnR5PSJ1cmwiCisgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9ImpkYmM6cG9zdGdyZXNxbDovL2xvY2FsaG9zdC9teWRhdGFiYXNlIi8mZ3Q7CisgICAgICAgICZsdDtzZXQtcHJvcGVydHkgcHJvcGVydHk9InVzZXIiCisgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9Im15dXNlcm5hbWUiLyZndDsKKyAgICAgICZsdDsvZGF0YS1zb3VyY2UmZ3Q7CisgICAgJmx0Oy9kYXRhLXNvdXJjZXMmZ3Q7Cis8L3ByZT4KKworPHA+QWZ0ZXIgYmVpbmcgaW5pdGlhbGl6ZWQsIHRoZSBjb25uZWN0aW9uIHBvb2xzIHdpbGwgYmUgc3RvcmVkIGFzIHNlcnZsZXQKK2NvbnRleHQgYXR0cmlidXRlcyB1bmRlciB0aGUgYmVhbiBuYW1lIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+a2V5PC9jb2RlPgorYXR0cmlidXRlLiAgSWYgeW91IGRpZCBub3Qgc3BlY2lmeSBhIDxjb2RlPmtleTwvY29kZT4sIHRoZSBkZWZhdWx0IGtleSBpcyB0aGUKK3ZhbHVlIG9mIHRoZSBzdHJpbmcgY29uc3RhbnQgPGNvZGU+QWN0aW9uLkRBVEFfU09VUkNFX0tFWTwvY29kZT4uICBUaHVzLCB5b3UKK2NhbiBhY2Nlc3MgYW5kIHV0aWxpemUgYSBjb25uZWN0aW9uLCBmcm9tIHdpdGhpbiBhbiA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzLAorbGlrZSB0aGlzIChmb3IgdGhlIGRlZmF1bHQgZGF0YSBzb3VyY2UpOjwvcD4KKzxwcmU+CisgICAgRGF0YVNvdXJjZSBkYXRhU291cmNlID0gKERhdGFTb3VyY2UpCisgICAgICBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkuZ2V0QXR0cmlidXRlKEFjdGlvbi5EQVRBX1NPVVJDRV9LRVkpOworICAgIGNvbm4gPSBkYXRhU291cmNlLmdldENvbm5lY3Rpb24oKTsKKyAgICAuLi4gcGVyZm9ybSByZXF1aXJlZCBmdW5jdGlvbnMgYXMgaW4gdGhlIHByZXZpb3VzIGV4YW1wbGUgLi4uCisgICAgY29ubi5jbG9zZSgpOworPC9wcmU+CisKKzxocj4KKworPGEgbmFtZT0iZG9jLk1lc3NhZ2VzIj48L2E+Cis8aDM+TWVzc2FnZSBSZXNvdXJjZXM8L2gzPgorCis8aDU+QmFja2dyb3VuZDwvaDU+CisKKzxwPk1vZGVybiBhcHBsaWNhdGlvbnMgb2Z0ZW4gaW5jbHVkZSB0aGUgcmVxdWlyZW1lbnQgdG8gc3VwcG9ydCBtdWx0aXBsZQorbGFuZ3VhZ2VzLCBmb3IgdXNlcnMgd2hvIHByZWZlciB0byBpbnRlcmFjdCBpbiBhIGxhbmd1YWdlIG90aGVyIHRoYW4gdGhlCitkZWZhdWx0IGxhbmd1YWdlIGNvbmZpZ3VyZWQgb24gdGhlIHNlcnZlciBwbGF0Zm9ybS4gIEluIGFkZGl0aW9uLCBzZW50ZW5jZXMKK29mdGVuIG5lZWQgdG8gYmUgY29uc3RydWN0ZWQsIHdpdGggZHluYW1pYyBjb250ZW50IHdob3NlIHBsYWNlbWVudCBpbiB0aGUKK21lc3NhZ2UgZGVwZW5kcyBvbiB0aGUgc3RhbmRhcmQgc2VudGVuY2Ugc3RydWN0dXJlIGluIHRoYXQgcGFydGljdWxhcgorbGFuZ3VhZ2UuPC9wPgorCis8cD5UaGUgc3RhbmRhcmQgSmF2YSBwbGF0Zm9ybSBpbmNsdWRlcyBhIGZhbWlseSBvZiBjbGFzc2VzCisoPGNvZGU+amF2YS51dGlsLlJlc291cmNlQnVuZGxlPC9jb2RlPikgZGVzaWduZWQgdG8gc3VwcG9ydCBsb29raW5nIHVwIG1lc3NhZ2UKK3N0cmluZ3MgYmFzZWQgb24gYSBzdGFuZGFyZCAia2V5Ii4gIFRoZSByZXNvdXJjZSBidW5kbGUgY2xhc3NlcyBhdXRvbWF0aWNhbGx5CithY2Nlc3MgYSBKYXZhIGNsYXNzIChvciBwcm9wZXJ0aWVzIGZpbGUpIHRoYXQgaXMgbmFtZWQgd2l0aCBhIG5hbWluZworY29udmVudGlvbiB0aGF0IGluY2x1ZGVzIHRoZSBMb2NhbGUgdG8gd2hpY2ggbWVzc2FnZXMgaW4gdGhhdCBjbGFzcyAob3IgZmlsZSkKK3BlcnRhaW4uICBIb3dldmVyLCB0aGlzIHNlbGVjdGlvbiBpcyBiYXNlZCBvbmx5IG9uIHRoZSBkZWZhdWx0IExvY2FsZSBvZiB0aGUKK3NlcnZlciBwbGF0Zm9ybSwgYW5kIGNhbm5vdCBiZSBhZGp1c3RlZCBvbiBhIHBlci11c2VyIGJhc2lzIGFzIHJlcXVpcmVkIGZvciBhbgoraW50ZXJuYXRpb25hbGl6ZWQgd2ViIGFwcGxpY2F0aW9uLjwvcD4KKworPHA+U3RydXRzIGluY2x1ZGVzIGEgZmFtaWx5IG9mIGNsYXNzZXMKKyg8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+KSB0aGF0IGV4dGVuZHMgdGhlIGJhc2ljCithcHByb2FjaCB0byBsb29raW5nIHVwIG1lc3NhZ2Ugc3RyaW5ncyBieSBrZXksIGFsbG93aW5nIHlvdSB0byBvcHRpb25hbGx5CitzcGVjaWZ5IGEgTG9jYWxlIGFsb25nIHdpdGggdGhlIGtleS4gIEluIHRoaXMgd2F5LCB5b3UgY2FuIGJ1aWxkIGFwcGxpY2F0aW9ucwordGhhdCBsZXQgeW91ciB1c2VycyBzZWxlY3Qgd2hpY2ggTG9jYWxlIHRoZXkgd2lzaCB0byBvcGVyYXRlIHdpdGhpbiwgYW5kIHRoZW4KK2xvb2sgdXAgbWVzc2FnZXMgaW4gdGhhdCBsYW5ndWFnZSAtIHVzaW5nIHRoZSBzYW1lIG1lc3NhZ2Uga2V5cyBubyBtYXR0ZXIgd2hhdAorbGFuZ3VhZ2UgaXMgc2VsZWN0ZWQuPC9wPgorCis8cD5JbiBhZGRpdGlvbiB0byBzdXBwb3J0aW5nIGR5bmFtaWMgc2VsZWN0aW9uIG9mIGEgTG9jYWxlIGZvciBtZXNzYWdlIGxvb2t1cCwKK3RoZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBmYW1pbHkgb2YgY2xhc3NlcyBvcHRpb25hbGx5IGFsbG93IHlvdSB0bworc3BlY2lmeSB1cCB0byBmb3VyIHBhcmFtZXRlciByZXBsYWNlbWVudCBvYmplY3RzLCB3aGljaCBhcmUgdXNlZCB0byByZXBsYWNlIHRoZQorcGFyYW1ldGVyIHBsYWNlaG9sZGVycyAiezB9IiB0aHJvdWdoICJ7M30iIGluIHRoZSByZXRyaWV2ZWQgbWVzc2FnZS4gIFRoaXMKK3JlcGxhY2VtZW50IHVzZXMgdGhlIGZhY2lsaXRpZXMgb2YgdGhlIHN0YW5kYXJkIEphdmEKKzxjb2RlPmphdmEudGV4dC5NZXNzYWdlRm9ybWF0PC9jb2RlPiBjbGFzcywgd2hpY2ggc3VwcG9ydHMgbWFueSBleHRlbmRlZAorZm9ybWF0dGluZyBjYXBhYmlsaXRpZXMgYXMgd2VsbC48L3A+CisKKzxwPkZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzLCBjb25zdWx0IHRoZSBmb2xsb3dpbmcKK3Jlc291cmNlcyBpbiB5b3VyIEphdmEgRGV2ZWxvcG1lbnQgS2l0IGRvY3VtZW50YXRpb24gYnVuZGxlOjwvcD4KKzx1bD4KKzxsaT48ZW0+SW50ZXJuYXRpb25hbGl6YXRpb24gSW5mbzwvZW0+IC0gR2VuZXJhbCBpbmZvcm1hdGlvbiBvbiBKYXZhJ3Mgc3RhbmRhcmQKKyAgICBzdXBwb3J0IGZvciBpbnRlcm5hdGlvbmFsaXplZCBhcHBsaWNhdGlvbnMgY2FuIGJlIGZvdW5kIGF0CisgICAgPGNvZGU+Jmx0OyRKQVZBX0hPTUUvZG9jcy9ndWlkZS9pbnRlcm5hdC9pbmRleC5odG1sJmd0OzwvY29kZT4uCisgICAgVGhlICJJbnRlcm5hdGlvbmFsaXphdGlvbiBPdmVydmlldyIgc2VjdGlvbiBpbmNsdWRlcyB1c2VmdWwgaW5mb3JtYXRpb24KKyAgICBhYm91dCBMb2NhbGVzLCBsb2NhbGl6ZWQgcmVzb3VyY2VzLCBtZXNzYWdlIGZvcm1hdHRpbmcsIGFuZCBvdGhlcgorICAgIHJlbGV2YW50IHRvcGljcy48L2xpPgorPGxpPjxlbT5JbnRlcm5hdGlvbmFsaXphdGlvbiBUdXRvcmlhbDwvZW0+IC0gVGhlIEphdmEgTGFuZ3VhZ2UgVHV0b3JpYWwgaGFzIGEKKyAgICBjb21wcmVoZW5zaXZlIHRyYWlsIGNvdmVyaW5nIGludGVybmF0aW9uYWxpemF0aW9uLCBhdmFpbGFibGUgYXQ6CisgICAgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9kb2NzL2Jvb2tzL3R1dG9yaWFsL2kxOG4vaW5kZXguaHRtbCI+CisgICAgaHR0cDovL2phdmEuc3VuLmNvbS9kb2NzL2Jvb2tzL3R1dG9yaWFsL2kxOG4vaW5kZXguaHRtbDwvYT4uPC9saT4KKzxsaT48ZW0+SmF2YWRvYyBBUElzPC9lbT4gLSBZb3Ugd2lsbCB3YW50IHRvIGNvbnN1bHQgdGhlIEphdmFkb2MgQVBJCisgICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGZvbGxvd2luZyBzdGFuZGFyZCBKYXZhIGNsYXNzZXM6CisgICAgPHVsPgorICAgIDxsaT48Y29kZT5qYXZhLnRleHQuTWVzc2FnZUZvcm1hdDwvY29kZT4KKyAgICA8bGk+PGNvZGU+amF2YS51dGlsLlJlc291cmNlQnVuZGxlPC9jb2RlPgorICAgIDxsaT48Y29kZT5qYXZhLnV0aWwuUHJvcGVydHlSZXNvdXJjZUJ1bmRsZTwvY29kZT4KKyAgICA8bGk+PGNvZGU+amF2YS51dGlsLlByb3BlcnRpZXM8L2NvZGU+IC0gU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUKKyAgICAgICAgPGNvZGU+bG9hZCgpPC9jb2RlPiBtZXRob2QgZm9yIHRoZSB2YWxpZCBzeW50YXggb2YgcHJvcGVydGllcyBmaWxlcworICAgICAgICB0aGF0IHlvdSBwcmVwYXJlLjwvbGk+CisgICAgPC91bD48L2xpPgorPC91bD4KKworPGg1PlVzaW5nIHRoZSBTdGFuZGFyZCBNZXNzYWdlUmVzb3VyY2VzIEltcGxlbWVudGF0aW9uPC9oNT4KKworPHA+VGhlIHN0YW5kYXJkIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGltcGxlbWVudGF0aW9uIHByb3ZpZGVkIGJ5IHRoZQorU3RydXRzIGxpYnJhcnkgdXNlcyBKYXZhIHByb3BlcnRpZXMgZmlsZXMgdG8gaW5pdGlhbGl6ZSBtZXNzYWdlIHN0cmluZ3MsIGluIGEKK21hbm5lciB2ZXJ5IHNpbWlsYXIgdG8gdGhhdCBzdXBwb3J0ZWQgYnkgdGhlCis8Y29kZT5qYXZhLnV0aWwuUHJvcGVydHlSZXNvdXJjZUJ1bmRsZTwvY29kZT4gY2xhc3MuICBUaGUgZm9sbG93aW5nIHN0ZXBzIGFyZQorcmVxdWlyZWQgdG8gdXNlIHRoZXNlIGZhY2lsaXRpZXMgaW4geW91ciBKYXZhIGFwcGxpY2F0aW9uLjwvcD4KKworPHA+Rmlyc3QsIHByZXBhcmUgYSBKYXZhIHByb3BlcnRpZXMgZmlsZSBmb3IgZWFjaCBsYW5ndWFnZSAob3IgTG9jYWxlKSBpbiB3aGljaAoreW91IHdpc2ggdG8gc3VwcG9ydCB5b3VyIG1lc3NhZ2VzLiAgVGhlIGZpbGVuYW1lcyB5b3UgdXNlIG11c3QgY29uZm9ybSB0byB0aGUKK25hbWluZyBjb252ZW50aW9uIGZvciBwcm9wZXJ0eSByZXNvdXJjZSBidW5kbGVzLCBhcyBkZXNjcmliZWQgaW4gdGhlCitkb2N1bWVudGF0aW9uIHJlZmVyZW5jZWQgYWJvdmUuICBCZSBzdXJlIHlvdSB1c2UgdGhlIHNhbWUgbWVzc2FnZSBrZXlzIGluIGVhY2gKK2ZpbGUgdG8gaWRlbnRpZnkgdGhlIHNhbWUgbWVzc2FnZS48L3A+CisKKzxwPkZvciBleGFtcGxlLCB5b3UgbWlnaHQgcHJlcGFyZSBmaWxlcyBpbiBGcmVuY2gsIFNwYW5pc2gsIGFuZCBFbmdsaXNoIHRoYXQKK2NvbnRhaW4gbGFuZ3VhZ2Utc3BlY2lmaWMgdmVyc2lvbnMgb2YgdGhlIHdvcmQgIkhlbGxvIi4gIFRoZSBGcmVuY2ggZmlsZSB3b3VsZAorYmUgbmFtZWQgPGNvZGU+TWVzc2FnZXNfZnIucHJvcGVydGllczwvY29kZT4gYW5kIGNvbnRhaW4gdGhlIGZvbGxvd2luZzo8L3A+Cis8cHJlPgorICAgIGhpPUJvbmpvdXIKKzwvcHJlPgorPHA+d2hpbGUgdGhlIFNwYW5pc2ggYW5kIEVuZ2xpc2ggZmlsZXMgd291bGQgYmUgbmFtZWQKKzxjb2RlPk1lc3NhZ2VzX2VzLnByb3BlcnRpZXM8L2NvZGU+IGFuZCA8Y29kZT5NZXNzYWdlc19lbi5wcm9wZXJ0aWVzPC9jb2RlPgorcmVzcGVjdGl2ZWx5LiAgVGhlIGNvcnJlc3BvbmRpbmcgbWVzc2FnZSBzdHJpbmcgZGVmaW5pdGlvbnMgd291bGQgc2F5Cis8Y29kZT5oaT1Ib2xhPC9jb2RlPiBhbmQgPGNvZGU+aGk9SGVsbG88L2NvZGU+IGluIHRoZXNlIGZpbGVzLjwvcD4KKworPHA+U2Vjb25kLCBwbGFjZSB0aGVzZSBwcm9wZXJ0aWVzIGZpbGVzIGludG8gdGhlIGNsYXNzIHBhdGggZm9yIHlvdXIKK2FwcGxpY2F0aW9uLCBleGFjdGx5IGFzIHlvdSB3b3VsZCB3aXRoIGNsYXNzIGZpbGVzIHRoZW1zZWx2ZXMuICBUaGUgbmFtZQorYWN0dWFsbHkgdXNlZCB0byBsb2FkIHJlc291cmNlcyB3aWxsIGxvb2sgbGlrZSBhIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzCituYW1lICh3aXRoIGFwcHJvcHJpYXRlIHBhY2thZ2UgcHJlZml4ZXMpLCBzbyB0aGUgZmlsZSBzaG91bGQgYmUgbmVzdGVkIGluc2lkZQorYSBkaXJlY3Rvcnkgc3RydWN0dXJlIHRoYXQgbWF0Y2hlcyB0aGUgcGFja2FnaW5nIChlaXRoZXIgaW4gYW4gdW5wYWNrZWQKK2RpcmVjdG9yeSwgb3Igd2l0aGluIGEgSkFSIGZpbGUsIGFzIGFwcHJvcHJpYXRlKS4gIEZvciBleGFtcGxlLCBhc3N1bWUgeW91CitwbGFjZSBkaXJlY3RvcnkgImZvbyIgb24geW91ciBjbGFzc3BhdGgsIGFuZCBzdG9yZWQgdGhlIGFib3ZlIHByb3BlcnRpZXMgZmlsZXMKK2luIGRpcmVjdG9yeSAiZm9vL2NvbS9teWNvbXBhbnkvbXlwYWNrYWdlIi4gIChJZiB5b3Ugd2VyZSB1c2luZyBhIEpBUiBmaWxlIGxpa2UKKyJmb28uamFyIiBpbnN0ZWFkLCB0aGUgZmlsZXMgd291bGQgYmUgaW4gZGlyZWN0b3J5ICJjb20vbXljb21wYW55L215cGFja2FnZSIKK3dpdGhpbiB0aGUgSkFSIGZpbGUpLgorCis8cD5UaGlyZCwgaW5pdGlhbGl6ZSBhIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IG9iamVjdCB0aGF0IGNvcnJlc3BvbmRzCit0byB0aGUgc2V0IG9mIHByb3BlcnRpZXMgZmlsZXMgZm9yIGEgcGFydGljdWxhciBuYW1lLCB3aXRoaW4gYSBwYXJ0aWN1bGFyCitwYWNrYWdlLiAgVGhlIGVhc2llc3Qgd2F5IHRvIGRvIHRoaXMgaXMgdG8gaW5pdGlhbGl6ZSBhIHZhcmlhYmxlIGluIHlvdXIgbWFpbgorYXBwbGljYXRpb24gY2xhc3MsIGxpa2UgdGhpczo8L3A+Cis8cHJlPgorICAgIHB1YmxpYyBzdGF0aWMgTWVzc2FnZVJlc291cmNlcyBtZXNzYWdlcyA9CisgICAgIE1lc3NhZ2VSZXNvdXJjZXMuZ2V0TWVzc2FnZVJlc291cmNlcygiY29tLm15Y29tcGFueS5teXBhY2thZ2UuTWVzc2FnZXMiKTsKKzwvcHJlPgorCis8cD5Ob3RlIHRoYXQgdGhlICJjb20ubXljb21wYW55Lm15cGFja2FnZSIgcGFydCBvZiB0aGUgbmFtZSBtYXRjaGVzIHRoZSBwYWNrYWdlCitkaXJlY3RvcnkgaW50byB3aGljaCB5b3UgcGxhY2VkIHlvdXIgcHJvcGVydGllcyBmaWxlcywgYW5kICJNZXNzYWdlcyIgaXMgdGhlCitmaWxlbmFtZSBwcmVmaXggZm9yIHRoZSBwYXJ0aWN1bGFyIGZhbWlseSBvZiBwcm9wZXJ0aWVzIGZpbGVzIHN1cHBvcnRlZCBieSB0aGlzCis8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBpbnN0YW5jZS4gIERlcGVuZGluZyBvbiB5b3VyIGRldmVsb3BtZW50IHByb2Nlc3MsCit5b3UgbWlnaHQgZmluZCBpdCBjb252ZW5pZW50IHRvIHN0b3JlIGFsbCBtZXNzYWdlIHN0cmluZ3MgZm9yIGFuIGVudGlyZQorYXBwbGljYXRpb24gaW4gYSBzaW5nbGUgcHJvcGVydGllcyBmaWxlIGZhbWlseSwgb3IgdG8gaGF2ZSBzZXZlcmFsIGZhbWlsaWVzIC0KK2luIFN0cnV0cywgZm9yIGV4YW1wbGUsIHRoZXJlIGlzIGEgZmFtaWx5IG9mIHByb3BlcnRpZXMgZmlsZXMgZm9yIGVhY2ggSmF2YQorcGFja2FnZS48L3A+CisKKzxwPlRvIGFjY2VzcyBhIG1lc3NhZ2Ugc3RyaW5nIHdpdGggYSBwYXJ0aWN1bGFyIExvY2FsZSwgZXhlY3V0ZSBhIHN0YXRlbWVudAorbGlrZSB0aGlzOjwvcD4KKzxwcmU+CisgICAgTG9jYWxlIGxvY2FsZSA9IC4uLiBzZWxlY3QgdGhlIGxvY2FsZSB0byBiZSB1c2VkIC4uLgorICAgIFN0cmluZyBtZXNzYWdlID0gbWVzc2FnZXMuZ2V0TWVzc2FnZShsb2NhbGUsICJoaSIpOworPC9wcmU+CisKKzxwPkluIHRoaXMgY2FzZSwgdGhlIHZhcmlhYmxlIDxjb2RlPm1lc3NhZ2U8L2NvZGU+IHdpbGwgY29udGFpbiB0aGUgbWVzc2FnZQorc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGtleSAiaGkiLCBpbiB0aGUgbGFuZ3VhZ2UgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUKK2xvY2FsZSB0aGF0IHdhcyBzZWxlY3RlZC48L3A+CisKKzxwPkZvciBhbiBleGFtcGxlIG9mIG1lc3NhZ2UgZm9ybWF0dGluZyB3aXRoIHJlcGxhY2VhYmxlIHBhcmFtZXRlcnMsIGFzc3VtZQordGhhdCB0aGUgbWVzc2FnZSBzdHJpbmdzIGxvb2tlZCBsaWtlIHRoaXMsIGluc3RlYWQgKG9ubHkgdGhlIEVuZ2xpc2ggdmVyc2lvbgoraXMgc2hvd24gLSBjb3JyZXNwb25kaW5nIGNoYW5nZXMgd291bGQgYmUgbWFkZSBpbiB0aGUgb3RoZXIgZmlsZXMpOjwvcD4KKzxwcmU+CisgICAgaGk9SGVsbG8gezB9Cis8L3ByZT4KKworPHA+Tm93LCB5b3UgY2FuIHBlcnNvbmFsaXplIHRoZSByZXRyaWV2ZWQgbWVzc2FnZSBsaWtlIHRoaXM6PC9wPgorPHByZT4KKyAgICBMb2NhbGUgbG9jYWxlID0gLi4uIHNlbGVjdCB0aGUgbG9jYWxlIHRvIGJlIHVzZWQgLi4uCisgICAgU3RyaW5nIG5hbWUgPSAiSm9lIjsKKyAgICBTdHJpbmcgbWVzc2FnZSA9IG1lc3NhZ2VzLmdldE1lc3NhZ2UobG9jYWxlLCAiaGkiLCBuYW1lKTsKKzwvcHJlPgorCis8cD5hbmQgdGhlIG1hcmtlciAiezB9IiB3aWxsIGhhdmUgYmVlbiByZXBsYWNlZCBieSB0aGUgc3BlY2lmaWVkIG5hbWUgKEpvZSksCitubyBtYXR0ZXIgd2hpY2ggbGFuZ3VhZ2UgaXMgaW4gdXNlLiAgU2VlIHRoZSBKYXZhRG9jIEFQSSBkb2N1bWVudGF0aW9uIGZvciB0aGUKKzxjb2RlPmphdmEudGV4dC5NZXNzYWdlRm9ybWF0PC9jb2RlPiBjbGFzcyBmb3IgbW9yZSBhZHZhbmNlZCB1c2VzIG9mIHRoZQorcGFyYW1ldGVyIHJlcGxhY2VtZW50IG1lY2hhbmlzbS48L3A+CisKKzxoNT5EZXZlbG9waW5nIFlvdXIgT3duIE1lc3NhZ2VSZXNvdXJjZXMgSW1wbGVtZW50YXRpb248L2g1PgorCis8cD5JbiB0aGUgYWJvdmUgZXhhbXBsZSwgd2Ugd2VyZSB1c2luZyB0aGUgZGVmYXVsdAorPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW1wbGVtZW50YXRpb24gc3VwcGxpZWQgYnkgU3RydXRzLCB3aGljaCB1c2VzCitwcm9wZXJ0eSBmaWxlcyB0byBzdG9yZSB0aGUgbWVzc2FnZSBzdHJpbmdzLiAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBjcmVhdGUKK2N1c3RvbWl6ZWQgbWVjaGFuaXNtcyB0byByZXRyaWV2ZSBtZXNzYWdlcyAoc3VjaCBhcyBsb2FkaW5nIHRoZW0gb24gZGVtYW5kCitmcm9tIGEgZGF0YWJhc2UpLiAgVGhlIHN0ZXBzIHJlcXVpcmVkIGFyZSBhcyBmb2xsb3dzOjwvcD4KKzx1bD4KKzxsaT5DcmVhdGUgYSBjdXN0b21pemVkIHN1YmNsYXNzIG9mCisgICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiB0aGF0IGltcGxlbWVudHMKKyAgICBtZXNzYWdlIGxvb2t1cCBvcGVyYXRpb25zIGFzIHlvdSByZXF1aXJlLjwvbGk+Cis8bGk+Q3JlYXRlIGEgY3VzdG9taXplZCBzdWJjbGFzcyBvZgorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IHRoYXQgd2lsbAorICAgIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiB5b3VyIGN1c3RvbSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBjbGFzcworICAgIHdoZW4gdGhlIDxjb2RlPmNyZWF0ZVJlc291cmNlczwvY29kZT4gbWV0aG9kIGlzIGNhbGxlZC4gIE5vdGUgdGhhdCB0aGUKKyAgICAiY29uZmlnIiBhcmd1bWVudCB0byB0aGlzIG1ldGhvZCBjYW4gYmUgdXNlZCB0byBzZWxlY3QgZmFtaWxpZXMgb2YKKyAgICBtZXNzYWdlcyBpbiBhbnkgbWFubmVyIGFwcHJvcHJpYXRlIHRvIHlvdXIgbmVlZHMgLSB5b3UgYXJlIG5vdCByZXF1aXJlZAorICAgIHRvIGVtdWxhdGUgdGhlICJmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIiBhcHByb2FjaCB0aGF0IGlzIHVzZWQKKyAgICBieSB0aGUgc3RhbmRhcmQgPGNvZGU+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gY2xhc3MuPC9saT4KKzxsaT5UZWxsIHRoZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gY2xhc3MgdGhlIG5hbWUgb2YgdGhlCisgICAgY3VzdG9taXplZCA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gaW1wbGVtZW50YXRpb24gdG8gdXNlCisgICAgd2hlbiBjcmVhdGluZyBuZXcgZmFjdG9yeSBpbnN0YW5jZXMuPC9saT4KKzxsaT5DcmVhdGUgYSBuZXcgZmFjdG9yeSBpbnN0YW5jZS48L2xpPgorPGxpPkFzayB0aGUgbmV3IGZhY3RvcnkgaW5zdGFuY2UgdG8gY3JlYXRlIGEgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4KKyAgICBpbnN0YW5jZSBmb3IgeW91LjwvbGk+Cis8L3VsPgorCis8cD5BIGNvZGUgZXhhbXBsZSB0aGF0IGlsbHVzdHJhdGVzIHRoaXMgdGVjaG5pcXVlIGlzOjwvcD4KKzxwcmU+CisgICAgTWVzc2FnZVJlc291cmNlc0ZhY3Rvcnkuc2V0RmFjdG9yeUNsYXNzKCJjb20ubXljb21wYW55Lm15cGtnLk15RmFjdG9yeSIpOworICAgIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IGZhY3RvcnkgPSBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5jcmVhdGVGYWN0b3J5KCk7CisgICAgTWVzc2FnZVJlc291cmNlcyByZXNvdXJjZXMgPQorICAgICBmYWN0b3J5LmNyZWF0ZVJlc291cmNlcygiY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiIpOworPC9wcmU+CisKKzxwPk9uY2UgeW91IGhhdmUgY3JlYXRlZCB5b3VyIGN1c3RvbSBNZXNzYWdlUmVzb3VyY2VzIGluc3RhbmNlLCB5b3UgdXRpbGl6ZSBpdAordG8gYWNjZXNzIG1lc3NhZ2Ugc3RyaW5ncyAod2l0aCBvciB3aXRob3V0IHBhcmFtZXRlciByZXBsYWNlbWVudCBvYmplY3RzKSwKK2V4YWN0bHkgYXMgd2UgaWxsdXN0cmF0ZWQgd2l0aCB0aGUgc3RhbmRhcmQgaW1wbGVtZW50YXRpb24gaW4gdGhlIHByZXZpb3VzCitzZWN0aW9uLjwvcD4KKworPGg1PlVzaW5nIE1lc3NhZ2VSZXNvdXJjZXMgV2l0aCBTdHJ1dHM8L2g1PgorCis8cD5JZiB5b3VyIGFwcGxpY2F0aW9uIHVzZXMgdGhlIFN0cnV0cyBjb250cm9sbGVyIHNlcnZsZXQsIHlvdSBjYW4gb3B0aW9uYWxseQorY29uZmlndXJlIFN0cnV0cyB0byBsb2FkIGFuIGFwcGxpY2F0aW9uLXNwZWNpZmljIG1lc3NhZ2UgcmVzb3VyY2VzIGluc3RhbmNlIGZvcgoreW91LCBhbmQgbWFrZSBpdCBhdmFpbGFibGUgYXMgYSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIChpbiBKU1AgdGVybXMsIGFuCithcHBsaWNhdGlvbi1zY29wZSBiZWFuKS4gIFRoaXMgbWVjaGFuaXNtIGlzIG1hbmFnZWQgYnkgc2V0dGluZyB0aGUgZm9sbG93aW5nCitzZXJ2bGV0IGluaXRpYWxpemF0aW9uIHBhcmFtZXRlcnMgaW4gdGhlIHdlYiBhcHBsaWNhdGlvbiBkZXBsb3ltZW50IGRlc2NyaXB0b3I6Cis8L3A+Cis8dWw+Cis8bGk+PHN0cm9uZz5hcHBsaWNhdGlvbjwvc3Ryb25nPiAtIFRoZSBjb25maWd1cmF0aW9uIHN0cmluZyB0aGF0IHdpbGwgYmUKKyAgICBwYXNzZWQgdG8gdGhlIDxjb2RlPmNyZWF0ZVJlc291cmNlcygpPC9jb2RlPiBtZXRob2Qgb2YgdGhlIG1lc3NhZ2UKKyAgICByZXNvdXJjZXMgZmFjdG9yeSwgaW4gb3JkZXIgdG8gaWRlbnRpZnkgdGhlIGZhbWlseSBvZiByZXNvdXJjZXMgdG8gYmUKKyAgICBzdXBwb3J0ZWQuICBJZiB5b3UgdXNlIHRoZSBzdGFuZGFyZCBtZXNzYWdlIHJlc291cmNlcyBmYWN0b3J5LCB0aGlzIG11c3QKKyAgICBiZSB0aGUgYmFzZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgcHJvcGVydHkgcmVzb3VyY2VzIGZpbGVzIHVzZWQKKyAgICB0byBjb250YWluIHRoZXNlIG1lc3NhZ2VzLCBhcyBpbGx1c3RyYXRlZCBhYm92ZS48L2xpPgorPGxpPjxzdHJvbmc+ZmFjdG9yeTwvc3Ryb25nPiAtIEZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlCisgICAgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IHRvIGJlIHVzZWQuICBCeSBkZWZhdWx0LCB0aGUgc3RhbmRhcmQKKyAgICBpbXBsZW1lbnRhdGlvbiBwcm92aWRlZCBieSBTdHJ1dHMKKyAgICAoPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPikKKyAgICB3aWxsIGJlIHVzZWQuPC9saT4KKzwvdWw+CisKKzxwPlN0cnV0cyBwcm92aWRlcyBzZXZlcmFsIEpTUCBjdXN0b20gdGFncyB0aGF0IGFzc3VtZSB0aGUgZXhpc3RlbmNlIG9mIGEKKzxjb2RlPmphdmEudXRpbC5Mb2NhbGU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgdXNlcidzIHNlc3Npb24sIHVuZGVyIHRoZSBrZXkKK25hbWVkIGJ5IHRoZSBjb25zdGFudCBzdHJpbmcgdmFsdWUgb2YgPGNvZGU+QWN0aW9uLkxPQ0FMRV9LRVk8L2NvZGU+LiAgWW91ciBvd24KK2FwcGxpY2F0aW9uIGxvZ2ljIGNhbiBzZXQgdGhpcyBhdHRyaWJ1dGUgYXQgYW55IHRpbWUsIG9yIHlvdSBjYW4gYXNrIFN0cnV0cyB0bworc2V0IGl0IGF1dG9tYXRpY2FsbHkgKGlmIG5vdCBhbHJlYWR5IHNldCkgYmFzZWQgb24gdGhlCis8Y29kZT5BY2NlcHQtTGFuZ3VhZ2U8L2NvZGU+IEhUVFAgaGVhZGVyIGluY2x1ZGVkIHdpdGggdGhlIHJlcXVlc3QuICBUaGVyZSBhcmUKK3R3byBtZWNoYW5pc21zIGJ5IHdoaWNoIHlvdSByZXF1ZXN0IFN0cnV0cyB0byBwZXJmb3JtIHRoaXMgc2VydmljZTo8L3A+Cis8dWw+Cis8bGk+VG8gaGF2ZSB0aGlzIHNlcnZpY2UgcGVyZm9ybWVkIG9uIGV2ZXJ5IHJlcXVlc3Qgc3VibWl0dGVkIHRvIHRoZSBjb250cm9sbGVyCisgICAgc2VydmxldCwgc2V0IHRoZSBzZXJ2bGV0IGluaXRpYWxpemF0aW9uIHBhcmFtZXRlciA8Y29kZT5sb2NhbGU8L2NvZGU+IHRvCisgICAgdGhlIHZhbHVlIDxjb2RlPnRydWU8L2NvZGU+IGluIHRoZSBhcHBsaWNhdGlvbiBkZXBsb3ltZW50IGRlc2NyaXB0b3IuPC9saT4KKzxsaT5UbyBoYXZlIHRoaXMgc2VydmljZSBwZXJmb3JtZWQgYnkgYSBKU1AgcGFnZSB3aGVuIGl0IGlzIGFjY2Vzc2VkIGRpcmVjdGx5CisgICAgYnkgYSB1c2VyLCB1dGlsaXplIGEgPGNvZGU+Jmx0O2Zvcm06aHRtbCAuLi4gbG9jYWxlPSJ0cnVlIiAuLi4gLyZndDs8L2NvZGU+CisgICAgdGFnIGF0IHRoZSB0b3Agb2YgZWFjaCBwYWdlLjwvbGk+Cis8L3VsPgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBQQUNLQUdFPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS10cmVlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjN2NkZmEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTM0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBvcmcuYXBhY2hlLnN0cnV0cy51dGlsIENsYXNzIEhpZXJhcmNoeQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+CitIaWVyYXJjaHkgRm9yIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXRpbAorPC9IMj4KKzwvQ0VOVEVSPgorPERMPgorPERUPjxCPlBhY2thZ2UgSGllcmFyY2hpZXM6IDwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctdHJlZS5odG1sIj5BbGwgUGFja2FnZXM8L0E+PC9ETD4KKzxIUj4KKzxIMj4KK0NsYXNzIEhpZXJhcmNoeQorPC9IMj4KKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEubGFuZy5PYmplY3Q8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLnV0aWwuQWJzdHJhY3RDb2xsZWN0aW9uIChpbXBsZW1lbnRzIGphdmEudXRpbC5Db2xsZWN0aW9uKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS51dGlsLkFic3RyYWN0TGlzdCAoaW1wbGVtZW50cyBqYXZhLnV0aWwuTGlzdCkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEudXRpbC5BcnJheUxpc3QgKGltcGxlbWVudHMgamF2YS5sYW5nLkNsb25lYWJsZSwgamF2YS51dGlsLkxpc3QsIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCI+PEI+RmFzdEFycmF5TGlzdDwvQj48L0E+PC9VTD4KKzwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS51dGlsLkFic3RyYWN0TWFwIChpbXBsZW1lbnRzIGphdmEudXRpbC5NYXApCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLnV0aWwuSGFzaE1hcCAoaW1wbGVtZW50cyBqYXZhLmxhbmcuQ2xvbmVhYmxlLCBqYXZhLnV0aWwuTWFwLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sIj48Qj5GYXN0SGFzaE1hcDwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEudXRpbC5UcmVlTWFwIChpbXBsZW1lbnRzIGphdmEubGFuZy5DbG9uZWFibGUsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZhLnV0aWwuU29ydGVkTWFwKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwiPjxCPkZhc3RUcmVlTWFwPC9CPjwvQT48L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwiPjxCPkFycmF5U3RhY2s8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCI+PEI+QmVhblV0aWxzPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPjxCPkNvbnZlcnRVdGlsczwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbCI+PEI+RXJyb3JNZXNzYWdlczwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNDb25uZWN0aW9uLmh0bWwiPjxCPkdlbmVyaWNDb25uZWN0aW9uPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5zcWwuQ29ubmVjdGlvbikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj48Qj5HZW5lcmljRGF0YVNvdXJjZTwvQj48L0E+IChpbXBsZW1lbnRzIGphdmF4LnNxbC5EYXRhU291cmNlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sIj48Qj5JdGVyYXRvckFkYXB0ZXI8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLnV0aWwuSXRlcmF0b3IpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj48Qj5NZXNzYWdlUmVzb3VyY2VzPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiPjxCPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj48Qj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+PEI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eVV0aWxzLmh0bWwiPjxCPlByb3BlcnR5VXRpbHM8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+PEI+UmVxdWVzdFV0aWxzPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sIj48Qj5SZXNwb25zZVV0aWxzPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmlvLldyaXRlcjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEuaW8uUHJpbnRXcml0ZXI8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+PEI+U2VydmxldENvbnRleHRXcml0ZXI8L0I+PC9BPjwvVUw+Cis8L1VMPgorPC9VTD4KKzwvVUw+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3ZlcnZpZXctZnJhbWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL292ZXJ2aWV3LWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ5OTIxOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL292ZXJ2aWV3LWZyYW1lLmh0bWwKQEAgLTAsMCArMSw1NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogT3ZlcnZpZXcKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0ic3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8Qj48L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0iYWxsY2xhc3Nlcy1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+QWxsIENsYXNzZXM8L0E+PC9GT05UPgorPFA+Cis8Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorUGFja2FnZXM8L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2UtZnJhbWUuaHRtbCIgVEFSR0VUPSJwYWNrYWdlRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT48L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLWZyYW1lLmh0bWwiIFRBUkdFVD0icGFja2FnZUZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9BPjwvRk9OVD4KKzxCUj4KKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9wYWNrYWdlLWZyYW1lLmh0bWwiIFRBUkdFVD0icGFja2FnZUZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3RlcjwvQT48L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3BhY2thZ2UtZnJhbWUuaHRtbCIgVEFSR0VUPSJwYWNrYWdlRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYjwvQT48L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0E+PC9GT05UPgorPEJSPgorPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2UtZnJhbWUuaHRtbCIgVEFSR0VUPSJwYWNrYWdlRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9BPjwvRk9OVD4KKzxCUj4KKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9BPjwvRk9OVD4KKzxCUj4KKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlPC9BPjwvRk9OVD4KKzxCUj4KKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLWZyYW1lLmh0bWwiIFRBUkdFVD0icGFja2FnZUZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbDwvQT48L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2UtZnJhbWUuaHRtbCIgVEFSR0VUPSJwYWNrYWdlRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT48L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLWZyYW1lLmh0bWwiIFRBUkdFVD0icGFja2FnZUZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPjwvRk9OVD4KKzxCUj4KKzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CismbmJzcDsKKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL292ZXJ2aWV3LXN1bW1hcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2U3YWNiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvb3ZlcnZpZXctc3VtbWFyeS5odG1sCkBAIC0wLDAgKzEsMTU2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzUgUERUIDIwMDEgLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uOiBPdmVydmlldworPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSJzdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlBhY2thZ2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSJpbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8aDE+QXBhY2hlIFN0cnV0cyBGcmFtZXdvcmsgKFZlcnNpb24gMS4wKTwvaDE+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5QYWNrYWdlczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT48L0I+PC9URD4KKzxURD4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIyMCUiPjxCPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0E+PC9CPjwvVEQ+Cis8VEQ+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXI8L0E+PC9CPjwvVEQ+Cis8VEQ+VGhlIERpZ2VzdGVyIHBhY2thZ2UgcHJvdmlkZXMgZm9yIHJ1bGVzLWJhc2VkIHByb2Nlc3Npbmcgb2YgYXJiaXRyYXJ5CitYTUwgZG9jdW1lbnRzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjIwJSI+PEI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWI8L0E+PC9CPjwvVEQ+Cis8VEQ+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0E+PC9CPjwvVEQ+Cis8VEQ+VGhlICJzdHJ1dHMtYmVhbiIgdGFnIGxpYnJhcnkgY29udGFpbnMgSlNQIGN1c3RvbSB0YWdzIHVzZWZ1bCBpbiBkZWZpbmluZyBuZXcKK2JlYW5zIChpbiBhbnkgZGVzaXJlZCBzY29wZSkgZnJvbSBhIHZhcmlldHkgb2YgcG9zc2libGUgc291cmNlcywgYXMgd2VsbCBhcyBhCit0YWcgdG8gcmVuZGVyIGEgcGFydGljdWxhciBiZWFuIChvciBiZWFuIHByb3BlcnR5KSB0byB0aGUgb3V0cHV0IHJlc3BvbnNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjIwJSI+PEI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9BPjwvQj48L1REPgorPFREPjxhIG5hbWU9ImRvYy5EZXNjcmlwdGlvbiI+VGhlICJzdHJ1dHMtaHRtbCIgdGFnIGxpYnJhcnk8L2E+IGNvbnRhaW5zIEpTUAorY3VzdG9tIHRhZ3MgdXNlZnVsIGluIGNyZWF0aW5nIGR5bmFtaWMgSFRNTCB1c2VyIGludGVyZmFjZXMsIGluY2x1ZGluZyBpbnB1dAorZm9ybXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvQT48L0I+PC9URD4KKzxURD4KKyAgICBUaGUgInN0cnV0cy1sb2dpYyIgdGFnIGxpYnJhcnkgY29udGFpbnMgdGFncyB0aGF0IGFyZSB1c2VmdWwgaW4gbWFuYWdpbmcgY29uZGl0aW9uYWwKKyAgICBnZW5lcmF0aW9uIG9mIG91dHB1dCB0ZXh0LCBsb29waW5nIG92ZXIgb2JqZWN0IGNvbGxlY3Rpb25zIGZvciByZXBldGl0aXZlIGdlbmVyYXRpb24KKyAgICBvZiBvdXRwdXQgdGV4dCwgYW5kIGFwcGxpY2F0aW9uIGZsb3cgbWFuYWdlbWVudAorICA8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIyMCUiPjxCPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlPC9BPjwvQj48L1REPgorPFREPgorICAgIFRoZSAic3RydXRzLXRlbXBsYXRlIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbiBjcmVhdGluZyBkeW5hbWljCisgICAgSlNQIHRlbXBsYXRlcyBmb3IgcGFnZXMgd2hpY2ggc2hhcmUgYSBjb21tb24gZm9ybWF0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjIwJSI+PEI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsPC9BPjwvQj48L1REPgorPFREPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjIwJSI+PEI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0E+PC9CPjwvVEQ+Cis8VEQ+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPjwvQj48L1REPgorPFREPlRoZSBVdGlsaXRpZXMgcGFja2FnZSBwcm92aWRlcyBhIHZhcmlldHkgb2YgZmFtaWxpZXMgb2YgY2xhc3NlcywKK3RvIHNvbHZlIHByb2JsZW1zIHRoYXQgYXJlIGNvbW1vbmx5IGVuY291bnRlcmVkIGluIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKyZuYnNwOzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlBhY2thZ2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSJpbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMSAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vdmVydmlldy10cmVlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9vdmVydmlldy10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZiNjMxMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL292ZXJ2aWV3LXRyZWUuaHRtbApAQCAtMCwwICsxLDIxMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM0IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbjogQ2xhc3MgSGllcmFyY2h5Cis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9InN0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+UGFja2FnZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJpbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJoZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9ImluZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0ib3ZlcnZpZXctdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgQWxsIFBhY2thZ2VzPC9IMj4KKzwvQ0VOVEVSPgorPERMPgorPERUPjxCPlBhY2thZ2UgSGllcmFyY2hpZXM6IDwvQj48REQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2UtdHJlZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+LCA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2UtdHJlZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9BPiwgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvcGFja2FnZS10cmVlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyPC9BPiwgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3BhY2thZ2UtdHJlZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWI8L0E+LCA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9wYWNrYWdlLXRyZWUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0E+LCA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXRyZWUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0E+LCA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS10cmVlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvQT4sIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLXRyZWUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlPC9BPiwgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS10cmVlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsPC9BPiwgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2UtdHJlZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0E+LCA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2UtdHJlZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPjwvREw+Cis8SFI+Cis8SDI+CitDbGFzcyBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuT2JqZWN0PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS51dGlsLkFic3RyYWN0Q29sbGVjdGlvbiAoaW1wbGVtZW50cyBqYXZhLnV0aWwuQ29sbGVjdGlvbikKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEudXRpbC5BYnN0cmFjdExpc3QgKGltcGxlbWVudHMgamF2YS51dGlsLkxpc3QpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLnV0aWwuQXJyYXlMaXN0IChpbXBsZW1lbnRzIGphdmEubGFuZy5DbG9uZWFibGUsIGphdmEudXRpbC5MaXN0LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0QXJyYXlMaXN0Lmh0bWwiPjxCPkZhc3RBcnJheUxpc3Q8L0I+PC9BPjwvVUw+Cis8L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEudXRpbC5BYnN0cmFjdE1hcCAoaW1wbGVtZW50cyBqYXZhLnV0aWwuTWFwKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS51dGlsLkhhc2hNYXAgKGltcGxlbWVudHMgamF2YS5sYW5nLkNsb25lYWJsZSwgamF2YS51dGlsLk1hcCwgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+PEI+RmFzdEhhc2hNYXA8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLnV0aWwuVHJlZU1hcCAoaW1wbGVtZW50cyBqYXZhLmxhbmcuQ2xvbmVhYmxlLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YS51dGlsLlNvcnRlZE1hcCkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0VHJlZU1hcC5odG1sIj48Qj5GYXN0VHJlZU1hcDwvQj48L0E+PC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj48Qj5BY3Rpb248L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uQmFzZS5odG1sIj48Qj5BY3Rpb25CYXNlPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvQWRkRm9ybUJlYW5BY3Rpb24uaHRtbCI+PEI+QWRkRm9ybUJlYW5BY3Rpb248L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRGb3J3YXJkQWN0aW9uLmh0bWwiPjxCPkFkZEZvcndhcmRBY3Rpb248L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9BZGRNYXBwaW5nQWN0aW9uLmh0bWwiPjxCPkFkZE1hcHBpbmdBY3Rpb248L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj48Qj5EaXNwYXRjaEFjdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCI+PEI+Rm9yd2FyZEFjdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCI+PEI+SW5jbHVkZUFjdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbG9hZEFjdGlvbi5odG1sIj48Qj5SZWxvYWRBY3Rpb248L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9SZW1vdmVGb3JtQmVhbkFjdGlvbi5odG1sIj48Qj5SZW1vdmVGb3JtQmVhbkFjdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZUZvcndhcmRBY3Rpb24uaHRtbCI+PEI+UmVtb3ZlRm9yd2FyZEFjdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1JlbW92ZU1hcHBpbmdBY3Rpb24uaHRtbCI+PEI+UmVtb3ZlTWFwcGluZ0FjdGlvbjwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+PEI+QWN0aW9uRXJyb3I8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPjxCPkFjdGlvbkVycm9yczwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPjxCPkFjdGlvbkZvcm08L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vVmFsaWRhdGluZ0FjdGlvbkZvcm0uaHRtbCI+PEI+VmFsaWRhdGluZ0FjdGlvbkZvcm08L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPjxCPkFjdGlvbkZvcm1CZWFuPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj48Qj5BY3Rpb25Gb3JtQmVhbnM8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj48Qj5BY3Rpb25Gb3J3YXJkPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIj48Qj5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQ8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPjxCPkFjdGlvbkZvcndhcmRzPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+PEI+QWN0aW9uTWFwcGluZzwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nQmFzZS5odG1sIj48Qj5BY3Rpb25NYXBwaW5nQmFzZTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sIj48Qj5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9TZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sIj48Qj5TZXNzaW9uQWN0aW9uTWFwcGluZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+PEI+QWN0aW9uTWFwcGluZ3M8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwiPjxCPkFycmF5U3RhY2s8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9CZWFuVXRpbHMuaHRtbCI+PEI+QmVhblV0aWxzPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NvbnN0YW50cy5odG1sIj48Qj5Db25zdGFudHM8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sIj48Qj5Db25zdGFudHM8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+PEI+Q29udGVudDwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj48Qj5Db250ZW50TWFwPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCI+PEI+Q29udGVudE1hcFN0YWNrPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQ29udmVydFV0aWxzLmh0bWwiPjxCPkNvbnZlcnRVdGlsczwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj48Qj5EaXNrRmlsZTwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sIj48Qj5FcnJvck1lc3NhZ2VzPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0Nvbm5lY3Rpb24uaHRtbCI+PEI+R2VuZXJpY0Nvbm5lY3Rpb248L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLnNxbC5Db25uZWN0aW9uKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPjxCPkdlbmVyaWNEYXRhU291cmNlPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YXguc3FsLkRhdGFTb3VyY2UpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0LkdlbmVyaWNTZXJ2bGV0IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXQsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZykKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldCAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Qj5BY3Rpb25TZXJ2bGV0PC9CPjwvQT48L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEuaW8uSW5wdXRTdHJlYW08VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+PEI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj48Qj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCI+PEI+SXRlcmF0b3JBZGFwdGVyPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS51dGlsLkl0ZXJhdG9yKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+PEI+TWVzc2FnZVJlc291cmNlczwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sIj48Qj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+PEI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPjxCPlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+PEI+TXVsdGlwYXJ0RWxlbWVudDwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj48Qj5NdWx0aXBhcnRJdGVyYXRvcjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj48Qj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQj48L0E+IChpbXBsZW1lbnRzIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlVdGlscy5odG1sIj48Qj5Qcm9wZXJ0eVV0aWxzPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPjxCPlJlcXVlc3RVdGlsczwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCI+PEI+UmVzcG9uc2VVdGlsczwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvUnVsZS5odG1sIj48Qj5SdWxlPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FkZERhdGFTb3VyY2VSdWxlLmh0bWwiPjxCPkFkZERhdGFTb3VyY2VSdWxlPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9DYWxsTWV0aG9kUnVsZS5odG1sIj48Qj5DYWxsTWV0aG9kUnVsZTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvQ2FsbFBhcmFtUnVsZS5odG1sIj48Qj5DYWxsUGFyYW1SdWxlPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9PYmplY3RDcmVhdGVSdWxlLmh0bWwiPjxCPk9iamVjdENyZWF0ZVJ1bGU8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmRpZ2VzdGVyLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2RpZ2VzdGVyL1NldE5leHRSdWxlLmh0bWwiPjxCPlNldE5leHRSdWxlPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5kaWdlc3Rlci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9kaWdlc3Rlci9TZXRQcm9wZXJ0aWVzUnVsZS5odG1sIj48Qj5TZXRQcm9wZXJ0aWVzUnVsZTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0UHJvcGVydHlSdWxlLmh0bWwiPjxCPlNldFByb3BlcnR5UnVsZTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvU2V0VG9wUnVsZS5odG1sIj48Qj5TZXRUb3BSdWxlPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj48Qj5Db29raWVUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRlaS5odG1sIj48Qj5EZWZpbmVUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGVpLmh0bWwiPjxCPkVudW1lcmF0ZVRlaTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9HZXRQcm9wZXJ0eVRlaS5odG1sIj48Qj5HZXRQcm9wZXJ0eVRlaTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGVpLmh0bWwiPjxCPkhlYWRlclRlaTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRlaS5odG1sIj48Qj5JbmNsdWRlVGVpPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0l0ZXJhdGVUZWkuaHRtbCI+PEI+SXRlcmF0ZVRlaTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPjxCPkl0ZXJhdGVUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUZWkuaHRtbCI+PEI+UGFnZVRlaTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwiPjxCPlBhcmFtZXRlclRlaTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUZWkuaHRtbCI+PEI+UmVzb3VyY2VUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUZWkuaHRtbCI+PEI+U2l6ZVRlaTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGVpLmh0bWwiPjxCPlN0cnV0c1RlaTwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5JdGVyYXRpb25UYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlQXR0cmlidXRlVGFnLmh0bWwiPjxCPkJhc2VBdHRyaWJ1dGVUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZBdHRyaWJ1dGVFeGlzdHNUYWcuaHRtbCI+PEI+SWZBdHRyaWJ1dGVFeGlzdHNUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZBdHRyaWJ1dGVNaXNzaW5nVGFnLmh0bWwiPjxCPklmQXR0cmlidXRlTWlzc2luZ1RhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlByb3BlcnR5RXF1YWxzVGFnLmh0bWwiPjxCPklmUHJvcGVydHlFcXVhbHNUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQcm9wZXJ0eU5vdEVxdWFsc1RhZy5odG1sIj48Qj5JZlByb3BlcnR5Tm90RXF1YWxzVGFnPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlVGFnLmh0bWwiPjxCPkJhc2VUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+PEI+QmFzZVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSGFuZGxlclRhZy5odG1sIj48Qj5CYXNlSGFuZGxlclRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9CYXNlSW5wdXRUYWcuaHRtbCI+PEI+QmFzZUlucHV0VGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VGaWVsZFRhZy5odG1sIj48Qj5CYXNlRmllbGRUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRmlsZVRhZy5odG1sIj48Qj5GaWxlVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0hpZGRlblRhZy5odG1sIj48Qj5IaWRkZW5UYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUGFzc3dvcmRUYWcuaHRtbCI+PEI+UGFzc3dvcmRUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvVGV4dFRhZy5odG1sIj48Qj5UZXh0VGFnPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Qcm9wZXJ0eVRhZy5odG1sIj48Qj5Qcm9wZXJ0eVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9UZXh0YXJlYVRhZy5odG1sIj48Qj5UZXh0YXJlYVRhZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQnV0dG9uVGFnLmh0bWwiPjxCPkJ1dHRvblRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DYW5jZWxUYWcuaHRtbCI+PEI+Q2FuY2VsVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0NoZWNrYm94VGFnLmh0bWwiPjxCPkNoZWNrYm94VGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL011bHRpYm94VGFnLmh0bWwiPjxCPk11bHRpYm94VGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1JhZGlvVGFnLmh0bWwiPjxCPlJhZGlvVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Jlc2V0VGFnLmh0bWwiPjxCPlJlc2V0VGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1NlbGVjdFRhZy5odG1sIj48Qj5TZWxlY3RUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvU3VibWl0VGFnLmh0bWwiPjxCPlN1Ym1pdFRhZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPjxCPkJhc2VIYW5kbGVyVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+PEI+QmFzZUlucHV0VGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+PEI+QmFzZUZpZWxkVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwiPjxCPkZpbGVUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj48Qj5IaWRkZW5UYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Bhc3N3b3JkVGFnLmh0bWwiPjxCPlBhc3N3b3JkVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0VGFnLmh0bWwiPjxCPlRleHRUYWc8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj48Qj5UZXh0YXJlYVRhZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj48Qj5CdXR0b25UYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIj48Qj5DYW5jZWxUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPjxCPkNoZWNrYm94VGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+PEI+SW1nVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPjxCPkxpbmtUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jld3JpdGVUYWcuaHRtbCI+PEI+UmV3cml0ZVRhZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPjxCPk11bHRpYm94VGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj48Qj5SYWRpb1RhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+PEI+UmVzZXRUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj48Qj5TZWxlY3RUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj48Qj5TdWJtaXRUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPjxCPkltYWdlVGFnPC9CPjwvQT48L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW51bWVyYXRlVGFnLmh0bWwiPjxCPkVudW1lcmF0ZVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JdGVyYXRlVGFnLmh0bWwiPjxCPkl0ZXJhdGVUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj48Qj5JdGVyYXRlVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvblRhZy5odG1sIj48Qj5PcHRpb25UYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj48Qj5PcHRpb25UYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPjxCPlB1dFRhZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPjxCPkNvbmRpdGlvbmFsVGFnQmFzZTwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj48Qj5Db21wYXJlVGFnQmFzZTwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIj48Qj5FcXVhbFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbCI+PEI+R3JlYXRlckVxdWFsVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwiPjxCPkdyZWF0ZXJUaGFuVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sIj48Qj5MZXNzRXF1YWxUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbCI+PEI+TGVzc1RoYW5UYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCI+PEI+Tm90RXF1YWxUYWc8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPjxCPk1hdGNoVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPjxCPk5vdE1hdGNoVGFnPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPjxCPlByZXNlbnRUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sIj48Qj5Ob3RQcmVzZW50VGFnPC9CPjwvQT48L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIj48Qj5Db29raWVUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj48Qj5EZWZpbmVUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW5jb2RlUmVkaXJlY3RVUkxUYWcuaHRtbCI+PEI+RW5jb2RlUmVkaXJlY3RVUkxUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvRW5jb2RlVVJMVGFnLmh0bWwiPjxCPkVuY29kZVVSTFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FcnJvcnNUYWcuaHRtbCI+PEI+RXJyb3JzVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+PEI+RXJyb3JzVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Zvcm1UYWcuaHRtbCI+PEI+Rm9ybVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj48Qj5Gb3JtVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0ZvcndhcmRUYWcuaHRtbCI+PEI+Rm9yd2FyZFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwiPjxCPkZvcndhcmRUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvR2V0UHJvcGVydHlUYWcuaHRtbCI+PEI+R2V0UHJvcGVydHlUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwiPjxCPkdldFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPjxCPkhlYWRlclRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9IdG1sUHJvcGVydHlUYWcuaHRtbCI+PEI+SHRtbFByb3BlcnR5VGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPjxCPkh0bWxUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJFcXVhbHNUYWcuaHRtbCI+PEI+SWZQYXJhbWV0ZXJFcXVhbHNUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWcuaHRtbCI+PEI+SWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJOb3ROdWxsVGFnLmh0bWwiPjxCPklmUGFyYW1ldGVyTm90TnVsbFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck51bGxUYWcuaHRtbCI+PEI+SWZQYXJhbWV0ZXJOdWxsVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0luY2x1ZGVUYWcuaHRtbCI+PEI+SW5jbHVkZVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj48Qj5JbmNsdWRlVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj48Qj5JbnNlcnRUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGluazFUYWcuaHRtbCI+PEI+TGluazFUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTGlua1RhZy5odG1sIj48Qj5MaW5rVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL01lc3NhZ2VUYWcuaHRtbCI+PEI+TWVzc2FnZVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj48Qj5NZXNzYWdlVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnMxVGFnLmh0bWwiPjxCPk9wdGlvbnMxVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvbnNUYWcuaHRtbCI+PEI+T3B0aW9uc1RhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj48Qj5PcHRpb25zVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPjxCPlBhZ2VUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUGFyYW1ldGVyVGFnLmh0bWwiPjxCPlBhcmFtZXRlclRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPjxCPlBhcmFtZXRlclRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SZWRpcmVjdFRhZy5odG1sIj48Qj5SZWRpcmVjdFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj48Qj5SZWRpcmVjdFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+PEI+UmVzb3VyY2VUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+PEI+U2l6ZVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPjxCPlN0cnV0c1RhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+PEI+V3JpdGVUYWc8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuVGhyb3dhYmxlIChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLkV4Y2VwdGlvbjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEuaW8uSU9FeGNlcHRpb248VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIj48Qj5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+PEI+TWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0I+PC9BPjwvVUw+Cis8L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEuaW8uV3JpdGVyPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5pby5QcmludFdyaXRlcjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj48Qj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQj48L0E+PC9VTD4KKzwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvZGlnZXN0ZXIvRGlnZXN0ZXIuaHRtbCI+PEI+RGlnZXN0ZXI8L0I+PC9BPjwvVUw+Cis8SDI+CitJbnRlcmZhY2UgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+PEI+Rm9ybUZpbGU8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxCPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPjwvQT48L1VMPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+UGFja2FnZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJpbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJoZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9ImluZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0ib3ZlcnZpZXctdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAxIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4wLjIvYXBpL3BhY2thZ2UtbGlzdCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL3BhY2thZ2UtbGlzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTEwZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvcGFja2FnZS1saXN0CkBAIC0wLDAgKzEsMTEgQEAKK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucworb3JnLmFwYWNoZS5zdHJ1dHMuZGlnZXN0ZXIKK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sCitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMKK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZQorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwKK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZAorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbApkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvcGFja2FnZXMuaHRtbCBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL3BhY2thZ2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ1NjVmZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4wLjIvYXBpL3BhY2thZ2VzLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBGcmFtZXNldC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvZnJhbWVzZXQuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgSnVuIDE1IDE2OjUzOjM1IFBEVCAyMDAxIC0tPgorPFRJVExFPgorQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbgorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSJzdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIj4KKworPEJSPgorCis8QlI+CisKKzxCUj4KKzxDRU5URVI+CitUaGUgZnJvbnQgcGFnZSBoYXMgYmVlbiByZWxvY2F0ZWQuUGxlYXNlIHNlZToKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxBIEhSRUY9ImluZGV4Lmh0bWwiPkZyYW1lIHZlcnNpb248L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8QSBIUkVGPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiPk5vbi1mcmFtZSB2ZXJzaW9uLjwvQT48L0NFTlRFUj4KKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvc2VyaWFsaXplZC1mb3JtLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9zZXJpYWxpemVkLWZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmIzMjRlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvc2VyaWFsaXplZC1mb3JtLmh0bWwKQEAgLTAsMCArMSw1OTM2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIEZyYW1lc2V0Ly9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9mcmFtZXNldC5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBKdW4gMTUgMTY6NTM6MzcgUERUIDIwMDEgLS0+Cis8VElUTEU+CitTZXJpYWxpemVkIEZvcm0KKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0ic3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5QYWNrYWdlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJvdmVydmlldy10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJkZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImluZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImhlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJzZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDE+CitTZXJpYWxpemVkIEZvcm08L0gxPgorPC9DRU5URVI+Cis8SFIgU0laRT0iNCIgTk9TSEFERT4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBBTElHTj0iY2VudGVyIj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5QYWNrYWdlPC9CPiA8Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3IiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcjwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitrZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+a2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIGtleSBmb3IgdGhpcyBlcnJvciBtZXNzYWdlLjwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbHVlczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdFtdIDxCPnZhbHVlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVwbGFjZW1lbnQgdmFsdWVzIGZvciB0aGlzIGVycm9yIG1lc2FzZ2UuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9yczwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitlcnJvcnM8L0gzPgorPFBSRT4KK2phdmEudXRpbC5IYXNoTWFwIDxCPmVycm9yczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWNjdW11bGF0ZWQgc2V0IG9mIDxjb2RlPkFjdGlvbkVycm9yPC9jb2RlPiBvYmplY3RzIChyZXByZXNlbnRlZAorIGFzIGFuIEFycmF5TGlzdCkgZm9yIGVhY2ggcHJvcGVydHksIGtleWVkIGJ5IHByb3BlcnR5IG5hbWUuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW48L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBiZWFuIG5hbWUgb2YgdGhpcyBhY3Rpb24gZm9ybSBiZWFuLjwvREw+Cis8SFI+CisKKzxIMz4KK3R5cGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoaXMgYWN0aW9uIGZvcm0gYmVhbi48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbnMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW5zPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2Zvcm1CZWFuczwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9GYXN0SGFzaE1hcC5odG1sIj5GYXN0SGFzaE1hcDwvQT4gPEI+Zm9ybUJlYW5zPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb2xsZWN0aW9uIG9mIEFjdGlvbkZvcm1CZWFuIGluc3RhbmNlcywga2V5ZWQgYnkgbmFtZS48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbG9naWNhbCBuYW1lIG9mIHRoaXMgZm9yd2FyZC48L0RMPgorPEhSPgorCis8SDM+CitwYXRoPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhdGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQtcmVsYXRpdmUgKGZvciBhIGZvcndhcmQpIG9yIHJlbGF0aXZlIG9yIGFic29sdXRlIChmb3IgYQorIHJlZGlyZWN0KSBVUkkgcGF0aCB0byBiZSBmb3J3YXJkZWQgdG8uPC9ETD4KKzxIUj4KKworPEgzPgorcmVkaXJlY3Q8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+cmVkaXJlY3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHRoaXMgYmUgYSByZWRpcmVjdCBpbnN0ZWFkIG9mIGEgZm9yd2FyZD88L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmRzPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2ZvcndhcmRzPC9IMz4KKzxQUkU+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPiA8Qj5mb3J3YXJkczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29sbGVjdGlvbiBvZiBBY3Rpb25Gb3J3YXJkIGluc3RhbmNlcywga2V5ZWQgYnkgbG9naWNhbCBuYW1lLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorYXR0cmlidXRlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmF0dHJpYnV0ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcmVxdWVzdC1zY29wZSBvciBzZXNzaW9uLXNjb3BlIGF0dHJpYnV0ZSB1bmRlciB3aGljaAorIG91ciBmb3JtIGJlYW4sIGlmIGFueSwgd2lsbCBiZSBjcmVhdGVkLjwvREw+Cis8SFI+CisKKzxIMz4KK2ZvcndhcmQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Zm9yd2FyZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29udGV4dCByZWxhdGl2ZSBwYXRoIG9mIHRoZSBzZXJ2bGV0IG9yIEpTUCByZXNvdXJjZSAodG8gYmUgY2FsbGVkCisgdmlhIDxjb2RlPlJlcXVlc3REaXNwYXRjaGVyLmZvcndhcmQoKTwvY29kZT4pIHRoYXQgd2lsbCBwcm9jZXNzIHRoaXMKKyByZXF1ZXN0LCByYXRoZXIgdGhhbiBpbnN0YW50aWF0aW5nIGFuZCBjYWxsaW5nIHRoZSBBY3Rpb24gY2xhc3MgdGhhdCBpcworIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+dHlwZTwvY29kZT4gYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxIMz4KK2ZvcndhcmRzPC9IMz4KKzxQUkU+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+QWN0aW9uRm9yd2FyZHM8L0E+IDxCPmZvcndhcmRzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgQWN0aW9uRm9yd2FyZCBvYmplY3RzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hcHBpbmcuPC9ETD4KKzxIUj4KKworPEgzPgoraW5jbHVkZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5pbmNsdWRlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZXh0IHJlbGF0aXZlIHBhdGggb2YgdGhlIHNlcnZsZXQgb3IgSlNQIHJlc291cmNlICh0byBiZSBjYWxsZWQKKyB2aWEgPGNvZGU+UmVxdWVzdERpc3BhdGNoZXIuaW5jbHVkZSgpPC9jb2RlPikgdGhhdCB3aWxsIHByb2Nlc3MgdGhpcworIHJlcXVlc3QsIHJhdGhlciB0aGFuIGluc3RhbnRpYXRpbmcgYW5kIGNhbGxpbmcgdGhlIEFjdGlvbiBjbGFzcyB0aGF0IGlzCisgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT50eXBlPC9jb2RlPiBhdHRyaWJ1dGUuPC9ETD4KKzxIUj4KKworPEgzPgoraW5wdXQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aW5wdXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgaW5wdXQgZm9ybSB0byB3aGljaCBjb250cm9sIHNob3VsZAorIGJlIHJldHVybmVkIGlmIGEgdmFsaWRhdGlvbiBlcnJvciBpcyBlbmNvdW50ZXJlZC48L0RMPgorPEhSPgorCis8SDM+CitpbnN0YW5jZTwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+IDxCPmluc3RhbmNlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBpbml0aWFsaXplZCA8Y29kZT5BY3Rpb248L2NvZGU+IGluc3RhbmNlIGZvciB0aGlzIG1hcHBpbmcuPC9ETD4KKzxIUj4KKworPEgzPgorbWFwcGluZ3M8L0gzPgorPFBSRT4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5BY3Rpb25NYXBwaW5nczwvQT4gPEI+bWFwcGluZ3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIDxjb2RlPkFjdGlvbk1hcHBpbmdzPC9jb2RlPiBjb2xsZWN0aW9uIG9mIHdoaWNoIHdlIGFyZSBhIHBhcnQuPC9ETD4KKzxIUj4KKworPEgzPgorbXVsdGlwYXJ0Q2xhc3M8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bXVsdGlwYXJ0Q2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIG9mIHRoZSA8Y29kZT5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvY29kZT4KKyBpbXBsZW1lbnRhdGlvbiBjbGFzcyB1c2VkIHRvIHByb2Nlc3MgbXVsdGlwYXJ0IHJlcXVlc3QgZGF0YSBmb3IgdGhpcyBtYXBwaW5nPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBmb3JtIGJlYW4sIGlmIGFueSwgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYWN0aW9uLjwvREw+Cis8SFI+CisKKzxIMz4KK3BhcmFtZXRlcjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbWV0ZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+R2VuZXJhbCBwdXJwb3NlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGZvciB0aGlzIG1hcHBpbmcuPC9ETD4KKzxIUj4KKworPEgzPgorcGF0aDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYXRoPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHN1Ym1pdHRlZCByZXF1ZXN0LCBzdGFydGluZyB3aXRoIGEKKyAiLyIgY2hhcmFjdGVyLCBhbmQgd2l0aG91dCB0aGUgZmlsZW5hbWUgZXh0ZW5zaW9uIChpZiBhbnkpLCB0aGF0IGlzCisgbWFwcGVkIHRvIHRoaXMgYWN0aW9uLjwvREw+Cis8SFI+CisKKzxIMz4KK3ByZWZpeDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcmVmaXg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHBhcmFtZXRlciBuYW1lIHByZWZpeCB1c2VkIHRvIHNlbGVjdCBwYXJhbWV0ZXJzIGZvciB0aGlzIGFjdGlvbi48L0RMPgorPEhSPgorCis8SDM+CitzY29wZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgaWRlbnRpZmllciBvZiB0aGUgc2NvcGUgKCJyZXF1ZXN0IiBvciAic2Vzc2lvbiIpIHVuZGVyIHdoaWNoIHRoZQorIGZvcm0gYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhpcyBtYXBwaW5nLCBpZiBhbnksIHNob3VsZCBiZSBjcmVhdGVkLjwvREw+Cis8SFI+CisKKzxIMz4KK3N1ZmZpeDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdWZmaXg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHBhcmFtZXRlciBuYW1lIHN1ZmZpeCB1c2VkIHRvIHNlbGVjdCBwYXJhbWV0ZXJzIGZvciB0aGlzIGFjdGlvbi48L0RMPgorPEhSPgorCis8SDM+Cit0eXBlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbjwvY29kZT4KKyBpbXBsZW1lbnRhdGlvbiBjbGFzcyB0byBiZSB1c2VkIHRvIHByb2Nlc3MgcmVxdWVzdHMgZm9yIHRoaXMgbWFwcGluZy48L0RMPgorPEhSPgorCis8SDM+Cit1bmtub3duPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPnVua25vd248L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHRoaXMgYWN0aW9uIGJlIHRoZSBkZWZhdWx0IGZvciB0aGlzIGFwcGxpY2F0aW9uPzwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbGlkYXRlPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPnZhbGlkYXRlPC9CPjwvUFJFPgorPERMPgorPEREPlNob3VsZCB0aGUgdmFsaWRhdGUoKSBtZXRob2Qgb2Ygb3VyIGZvcm0gYmVhbiBiZSBjYWxsZWQ/PC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nQmFzZTwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZ3M8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbWFwcGluZ3M8L0gzPgorPFBSRT4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+RmFzdEhhc2hNYXA8L0E+IDxCPm1hcHBpbmdzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb2xsZWN0aW9uIG9mIEFjdGlvbk1hcHBpbmcgaW5zdGFuY2VzLCBrZXllZCBieSByZXF1ZXN0IHBhdGguPC9ETD4KKzxIUj4KKworPEgzPgordW5rbm93bjwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4gPEI+dW5rbm93bjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgQWN0aW9uTWFwcGluZyB0aGF0IHNob3VsZCBoYW5kbGUgdW5rbm93biByZXF1ZXN0IHBhdGhzLCBpZiBhbnkuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldDwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CithY3Rpb25zPC9IMz4KKzxQUkU+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPkZhc3RIYXNoTWFwPC9BPiA8Qj5hY3Rpb25zPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgQWN0aW9uIGluc3RhbmNlcyB0aGF0IGhhdmUgYmVlbiBjcmVhdGVkIGFuZCBpbml0aWFsaXplZCwKKyBrZXllZCBieSB0aGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZS48L0RMPgorPEhSPgorCis8SDM+CithcHBsaWNhdGlvbjwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPmFwcGxpY2F0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSByZXNvdXJjZXMgb2JqZWN0IGZvciBvdXIgYXBwbGljYXRpb24gcmVzb3VyY2VzIChpZiBhbnkpLjwvREw+Cis8SFI+CisKKzxIMz4KK2NvbmZpZzwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5jb25maWc8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQtcmVsYXRpdmUgcGF0aCB0byBvdXIgY29uZmlndXJhdGlvbiByZXNvdXJjZS48L0RMPgorPEhSPgorCis8SDM+Citjb250ZW50PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbnRlbnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgY29udGVudCB0eXBlIGFuZCBjaGFyYWN0ZXIgZW5jb2RpbmcgdG8gYmUgc2V0IG9uIGVhY2gKKyByZXNwb25zZSAobWF5IGJlIG92ZXJyaWRkZW4gYnkgZm9yd2FyZGVkLXRvIHJlc291cmNlcykuPC9ETD4KKzxIUj4KKworPEgzPgorZGF0YVNvdXJjZXM8L0gzPgorPFBSRT4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRmFzdEhhc2hNYXAuaHRtbCI+RmFzdEhhc2hNYXA8L0E+IDxCPmRhdGFTb3VyY2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKREJDIGRhdGEgc291cmNlcyB0aGF0IGhhcyBiZWVuIGNvbmZpZ3VyZWQgZm9yIHRoaXMgYXBwbGljYXRpb24sCisgaWYgYW55LCBrZXllZCBieSB0aGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSB1bmRlciB3aGljaCB0aGV5IGFyZQorIHN0b3JlZC48L0RMPgorPEhSPgorCis8SDM+CitkZWJ1ZzwvSDM+Cis8UFJFPgoraW50IDxCPmRlYnVnPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIGZvciB0aGlzIHNlcnZsZXQuPC9ETD4KKzxIUj4KKworPEgzPgorZGVmYXVsdExvY2FsZTwvSDM+Cis8UFJFPgoramF2YS51dGlsLkxvY2FsZSA8Qj5kZWZhdWx0TG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBkZWZhdWx0IExvY2FsZSBmb3IgdGhpcyBzZXJ2ZXIuPC9ETD4KKzxIUj4KKworPEgzPgorZmFjdG9yeUNsYXNzPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmZhY3RvcnlDbGFzczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4KKyBjbGFzcyBmb3IgdGhlIGFwcGxpY2F0aW9uIG1lc3NhZ2UgcmVzb3VyY2VzIGJ1bmRsZS48L0RMPgorPEhSPgorCis8SDM+Citmb3JtQmVhbkNsYXNzPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmZvcm1CZWFuQ2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgQWN0aW9uRm9ybUJlYW4gaW1wbGVtZW50YXRpb24gY2xhc3MgdG8gdXNlLjwvREw+Cis8SFI+CisKKzxIMz4KK2Zvcm1CZWFuczwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj5BY3Rpb25Gb3JtQmVhbnM8L0E+IDxCPmZvcm1CZWFuczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZ2xvYmFsIEFjdGlvbkZvcm1CZWFuIGNvbGxlY3Rpb24gZm9yIHRoaXMgY29udHJvbGxlci48L0RMPgorPEhSPgorCis8SDM+Citmb3J3YXJkQ2xhc3M8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Zm9yd2FyZENsYXNzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIEFjdGlvbkZvcndhcmQgaW1wbGVtZW50YXRpb24gY2xhc3MgdG8gdXNlLjwvREw+Cis8SFI+CisKKzxIMz4KK2ZvcndhcmRzPC9IMz4KKzxQUkU+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+QWN0aW9uRm9yd2FyZHM8L0E+IDxCPmZvcndhcmRzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBnbG9iYWwgQWN0aW9uRm9yd2FyZCBjb2xsZWN0aW9uIGZvciB0aGlzIGNvbnRyb2xsZXIuPC9ETD4KKzxIUj4KKworPEgzPgoraW50ZXJuYWw8L0gzPgorPFBSRT4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5pbnRlcm5hbDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVzb3VyY2VzIG9iamVjdCBmb3Igb3VyIGludGVybmFsIHJlc291cmNlcy48L0RMPgorPEhSPgorCis8SDM+CitpbnRlcm5hbE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aW50ZXJuYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKYXZhIGJhc2UgbmFtZSBvZiBvdXIgaW50ZXJuYWwgcmVzb3VyY2VzLjwvREw+Cis8SFI+CisKKzxIMz4KK2xvY2FsZTwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5sb2NhbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHdlIGNyZWF0ZSBhIDxjb2RlPmphdmEudXRpbC5Mb2NhbGU8L2NvZGU+IGZvciB0aGlzIHVzZXIsCisgYmFzZWQgb24gdGhlIEhUVFAgaGVhZGVycyBvZiB0aGUgcmVxdWVzdCwgaWYgb25lIGlzIG5vdCBwcmVzZW50PzwvREw+Cis8SFI+CisKKzxIMz4KK21hcHBpbmdDbGFzczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5tYXBwaW5nQ2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmEgY2xhc3MgbmFtZSBvZiBvdXIgQWN0aW9uTWFwcGluZyBpbXBsZW1lbnRhdGlvbiBjbGFzcy48L0RMPgorPEhSPgorCis8SDM+CittYXBwaW5nczwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPiA8Qj5tYXBwaW5nczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29uZmlndXJlZCBtYXBwaW5ncyBmb3IgdGhpcyB3ZWIgYXBwbGljYXRpb24sIGtleWVkIGJ5IHBhdGguPC9ETD4KKzxIUj4KKworPEgzPgorbm9jYWNoZTwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5ub2NhY2hlPC9CPjwvUFJFPgorPERMPgorPEREPkluY2x1ZGUgdGhlIG5vLWNhY2hpbmcgaGVhZGVycyBpbiBvdXIgcmVzcG9uc2U/PC9ETD4KKzxIUj4KKworPEgzPgorcmVnaXN0cmF0aW9uczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZ1tdIDxCPnJlZ2lzdHJhdGlvbnM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBwdWJsaWMgaWRlbnRpZmllcnMsIGFuZCBjb3JyZXNwb25kaW5nIHJlc291cmNlIG5hbWVzLCBmb3IKKyB0aGUgdmVyc2lvbnMgb2YgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBEVERzIHRoYXQgd2Uga25vdyBhYm91dC4gIFRoZXJlCisgPHN0cm9uZz5NVVNUPC9zdHJvbmc+IGJlIGFuIGV2ZW4gbnVtYmVyIG9mIFN0cmluZ3MgaW4gdGhpcyBsaXN0ITwvREw+Cis8SFI+CisKKzxIMz4KK3NlcnZsZXRNYXBwaW5nPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNlcnZsZXRNYXBwaW5nPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBVUkwgcGF0dGVybiB0byB3aGljaCB3ZSBhcmUgbWFwcGVkIGluIG91ciB3ZWIgYXBwbGljYXRpb24KKyBkZXBsb3ltZW50IGRlc2NyaXB0b3IuPC9ETD4KKzxIUj4KKworPEgzPgorc2VydmxldE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c2VydmxldE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZsZXQgbmFtZSB1bmRlciB3aGljaCB3ZSBhcmUgcmVnaXN0ZXJlZCBpbiBvdXIgd2ViIGFwcGxpY2F0aW9uCisgZGVwbG95bWVudCBkZXNjcmlwdG9yLjwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbGlkYXRlPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPnZhbGlkYXRlPC9CPjwvUFJFPgorPERMPgorPEREPkFyZSB3ZSB1c2luZyB0aGUgbmV3IGNvbmZpZ3VyYXRpb24gZmlsZSBmb3JtYXQ/PC9ETD4KKzxIUj4KKworPEgzPgordmFsaWRhdGluZzwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj52YWxpZGF0aW5nPC9CPjwvUFJFPgorPERMPgorPEREPlNob3VsZCB3ZSB1c2UgYSB2YWxpZGF0aW5nIFhNTCBwYXJzZXIgdG8gcmVhZCB0aGUgY29uZmlndXJhdGlvbiBmaWxlPzwvREw+Cis8SFI+CisKKzxIMz4KK2J1ZmZlclNpemU8L0gzPgorPFBSRT4KK2ludCA8Qj5idWZmZXJTaXplPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBidWZmZXIgdXNlZCB0byByZWFkIGZpbGVzIGZyb20gYSBjbGllbnQgdXBsb2FkPC9ETD4KKzxIUj4KKworPEgzPgorbWF4RmlsZVNpemU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bWF4RmlsZVNpemU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1heGltdW0gc2l6ZSBhbGxvd2VkIGZvciBhIGNsaWVudCB1cGxvYWQuICBBIHN1ZmZpeCBvZiAiSyIKKyByZXByZXNlbnRzIEtpbG9ieXRlcywgYSBzdWZmaXggb2YgIk0iIHJlcHJlc2VudHMgIk1lZ2FieXRlcyIsIAorIGEgc3VmZml4IG9mICJHIiByZXByZXNlbnRzIEdpZ2FieXRlcywgYW5kIG5vIHN1ZmZpeCBpcyB0YWtlbgorIGFzIGJ5dGVzLjwvREw+Cis8SFI+CisKKzxIMz4KK211bHRpcGFydENsYXNzPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm11bHRpcGFydENsYXNzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciBjbGFzcyBuYW1lIHVzZWQgZm9yIGhhbmRsaW5nCisgbXVsdGlwYXJ0IGZvcm0gcmVxdWVzdHMuICBUaGlzIGlzIHRoZSBnbG9iYWwgZGVmYXVsdCB2YWx1ZSwKKyB0aGUgaGFuZGxlciBjYW4gYWxzbyBiZSBzZXQgaW4gaW5kaXZpZHVhbCBtYXBwaW5nIGVudHJpZXM8L0RMPgorPEhSPgorCis8SDM+Cit0ZW1wRGlyPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnRlbXBEaXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRpcmVjdG9yeSB1c2VkIHRvIHN0b3JlIHRlbXBvcmFyeSBmaWxlcyBmb3IgdGhlIERpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcgorIG11bHRpcGFydCBpbXBsZW1lbnRhdGlvbjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdEFjdGlvbk1hcHBpbmciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlNlc3Npb25BY3Rpb25NYXBwaW5nIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9TZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uU2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5WYWxpZGF0aW5nQWN0aW9uRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vVmFsaWRhdGluZ0FjdGlvbkZvcm0uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlZhbGlkYXRpbmdBY3Rpb25Gb3JtPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8SFIgU0laRT0iNCIgTk9TSEFERT4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBBTElHTj0iY2VudGVyIj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5QYWNrYWdlPC9CPiA8Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWI8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuQmFzZUF0dHJpYnV0ZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUF0dHJpYnV0ZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuQmFzZUF0dHJpYnV0ZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSBiZWluZyB0ZXN0ZWQuPC9ETD4KKzxIUj4KKworPEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIG9mIHRoZSBhdHRyaWJ1dGUgYmVpbmcgdGVzdGVkLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZUZpZWxkVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5CYXNlRmllbGRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorYWNjZXB0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmFjY2VwdDwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tYS1kZWxpbWl0ZWQgbGlzdCBvZiBjb250ZW50IHR5cGVzIHRoYXQgYSBzZXJ2ZXIgcHJvY2Vzc2luZyB0aGlzIGZvcm0KKyB3aWxsIGhhbmRsZSBjb3JyZWN0bHkuICBUaGlzIHByb3BlcnR5IGlzIGRlZmluZWQgb25seSBmb3IgdGhlCisgPGNvZGU+ZmlsZTwvY29kZT4gdGFnLCBidXQgaXMgaW1wbGVtZW50ZWQgaGVyZSBiZWNhdXNlIGl0IGFmZmVjdHMgdGhlCisgcmVuZGVyZWQgSFRNTCBvZiB0aGUgY29ycmVzcG9uZGluZyAmbHQ7aW5wdXQmZ3Q7IHRhZy48L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS48L0RMPgorPEhSPgorCis8SDM+Cit0eXBlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHR5cGUgb2YgaW5wdXQgZmllbGQgcmVwcmVzZW50ZWQgYnkgdGhpcyB0YWcgKHRleHQsIHBhc3N3b3JkLCBvcgorIGhpZGRlbikuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5CYXNlSGFuZGxlclRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CithY2Nlc3NLZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YWNjZXNzS2V5PC9CPjwvUFJFPgorPERMPgorPEREPkFjY2VzcyBrZXkgY2hhcmFjdGVyLjwvREw+Cis8SFI+CisKKzxIMz4KK3RhYkluZGV4PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnRhYkluZGV4PC9CPjwvUFJFPgorPERMPgorPEREPlRhYiBpbmRleCB2YWx1ZS48L0RMPgorPEhSPgorCis8SDM+CitvbkNsaWNrPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9uQ2xpY2s8L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2UgY2xpY2sgZXZlbnQuPC9ETD4KKzxIUj4KKworPEgzPgorb25EYmxDbGljazwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbkRibENsaWNrPC9CPjwvUFJFPgorPERMPgorPEREPk1vdXNlIGRvdWJsZSBjbGljayBldmVudC48L0RMPgorPEhSPgorCis8SDM+Citvbk1vdXNlT3ZlcjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbk1vdXNlT3ZlcjwvQj48L1BSRT4KKzxETD4KKzxERD5Nb3VzZSBvdmVyIGNvbXBvbmVudCBldmVudC48L0RMPgorPEhSPgorCis8SDM+Citvbk1vdXNlT3V0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9uTW91c2VPdXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2UgZXhpdCBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEgzPgorb25Nb3VzZU1vdmU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25Nb3VzZU1vdmU8L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2UgbW92ZWQgb3ZlciBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEgzPgorb25Nb3VzZURvd248L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25Nb3VzZURvd248L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2UgcHJlc3NlZCBvbiBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEgzPgorb25Nb3VzZVVwPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9uTW91c2VVcDwvQj48L1BSRT4KKzxETD4KKzxERD5Nb3VzZSByZWxlYXNlZCBvbiBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEgzPgorb25LZXlEb3duPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9uS2V5RG93bjwvQj48L1BSRT4KKzxETD4KKzxERD5LZXkgZG93biBpbiBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEgzPgorb25LZXlVcDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbktleVVwPC9CPjwvUFJFPgorPERMPgorPEREPktleSByZWxlYXNlZCBpbiBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEgzPgorb25LZXlQcmVzczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbktleVByZXNzPC9CPjwvUFJFPgorPERMPgorPEREPktleSBkb3duIGFuZCB1cCB0b2dldGhlciBpbiBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEgzPgorb25TZWxlY3Q8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25TZWxlY3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGV4dCBzZWxlY3RlZCBpbiBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEgzPgorb25DaGFuZ2U8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25DaGFuZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29udGVudCBjaGFuZ2VkIGFmdGVyIGNvbXBvbmVudCBsb3N0IGZvY3VzIGV2ZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK29uQmx1cjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbkJsdXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tcG9uZW50IGxvc3QgZm9jdXMgZXZlbnQuPC9ETD4KKzxIUj4KKworPEgzPgorb25Gb2N1czwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbkZvY3VzPC9CPjwvUFJFPgorPERMPgorPEREPkNvbXBvbmVudCBoYXMgcmVjZWl2ZWQgZm9jdXMgZXZlbnQuPC9ETD4KKzxIUj4KKworPEgzPgorc3R5bGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c3R5bGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U3R5bGUgYXR0cmlidXRlIGFzc29jaWF0ZWQgd2l0aCBjb21wb25lbnQuPC9ETD4KKzxIUj4KKworPEgzPgorc3R5bGVDbGFzczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZUNsYXNzPC9CPjwvUFJFPgorPERMPgorPEREPk5hbWVkIFN0eWxlIGNsYXNzIGFzc29jaWF0ZWQgd2l0aCBjb21wb25lbnQuPC9ETD4KKzxIUj4KKworPEgzPgorc3R5bGVJZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZUlkPC9CPjwvUFJFPgorPERMPgorPEREPklkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIGNvbXBvbmVudC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5CYXNlSW5wdXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0Jhc2VJbnB1dFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuQmFzZUlucHV0VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2NvbHM8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Y29sczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbnVtYmVyIG9mIGNoYXJhY3RlciBjb2x1bW5zIGZvciB0aGlzIGZpZWxkLCBvciBuZWdhdGl2ZQorIGZvciBubyBsaW1pdC48L0RMPgorPEhSPgorCis8SDM+CittYXhsZW5ndGg8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bWF4bGVuZ3RoPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIGFsbG93ZWQsIG9yIG5lZ2F0aXZlIGZvciBubyBsaW1pdC48L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZmllbGQgKGFuZCBhc3NvY2lhdGVkIHByb3BlcnR5KSBiZWluZyBwcm9jZXNzZWQuPC9ETD4KKzxIUj4KKworPEgzPgorcm93czwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5yb3dzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBudW1iZXIgb2Ygcm93cyBmb3IgdGhpcyBmaWVsZCwgb3IgbmVnYXRpdmUgZm9yIG5vIGxpbWl0LjwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB2YWx1ZSBmb3IgdGhpcyBmaWVsZCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gdG8gcmV0cmlldmUgdGhlCisgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBmcm9tIG91ciBhc3NvY2lhdGVkIGJlYW4uPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuQmFzZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQmFzZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuQmFzZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLkJ1dHRvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQnV0dG9uVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5CdXR0b25UYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBidXR0b24uPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuQ2FuY2VsVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9DYW5jZWxUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLkNhbmNlbFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGJ1dHRvbi48L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5DaGVja2JveFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvQ2hlY2tib3hUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLkNoZWNrYm94VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LjwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGZvciB0aGlzIGZpZWxkLjwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXJ2ZXIgdmFsdWUgZm9yIHRoaXMgb3B0aW9uLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLkVuY29kZVJlZGlyZWN0VVJMVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbmNvZGVSZWRpcmVjdFVSTFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuRW5jb2RlUmVkaXJlY3RVUkxUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgordXJsPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnVybDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgVVJMIHRvIGJlIGVuY29kZWQuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuRW5jb2RlVVJMVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FbmNvZGVVUkxUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLkVuY29kZVVSTFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Cit1cmw8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dXJsPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBVUkwgdG8gYmUgZW5jb2RlZC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5FbnVtZXJhdGVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0VudW1lcmF0ZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuRW51bWVyYXRlVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2NvbGxlY3Rpb248L0gzPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QgPEI+Y29sbGVjdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29sbGVjdGlvbiBvdmVyIHdoaWNoIHdlIHdpbGwgYmUgaXRlcmF0aW5nLjwvREw+Cis8SFI+CisKKzxIMz4KK2VudW1lcmF0aW9uPC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuRW51bWVyYXRpb24gPEI+ZW51bWVyYXRpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+RW51bWVyYXRpb24gb2YgdGhlIGVsZW1lbnRzIG9mIHRoaXMgY29sbGVjdGlvbi48L0RMPgorPEhSPgorCis8SDM+CitpZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRvIGJlIGV4cG9zZWQuPC9ETD4KKzxIUj4KKworPEgzPgorbGVuZ3RoPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmxlbmd0aDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbGVuZ3RoIHZhbHVlIG9yIGF0dHJpYnV0ZSBuYW1lICg8PTAgbWVhbnMgbm8gbGltaXQpLjwvREw+Cis8SFI+CisKKzxIMz4KK2xlbmd0aENvdW50PC9IMz4KKzxQUkU+CitpbnQgPEI+bGVuZ3RoQ291bnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG51bWJlciBvZiBlbGVtZW50cyB3ZSBoYXZlIGFscmVhZHkgcmVuZGVyZWQuPC9ETD4KKzxIUj4KKworPEgzPgorbGVuZ3RoVmFsdWU8L0gzPgorPFBSRT4KK2ludCA8Qj5sZW5ndGhWYWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWN0dWFsIGxlbmd0aCB2YWx1ZSAoY2FsY3VsYXRlZCBpbiB0aGUgc3RhcnQgdGFnKS48L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGNvbGxlY3Rpb24gb3Igb3duaW5nIGJlYW4uPC9ETD4KKzxIUj4KKworPEgzPgorb2Zmc2V0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9mZnNldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3RhcnRpbmcgb2Zmc2V0ICh6ZXJvIHJlbGF0aXZlKS48L0RMPgorPEhSPgorCis8SDM+CitvZmZzZXRWYWx1ZTwvSDM+Cis8UFJFPgoraW50IDxCPm9mZnNldFZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhY3R1YWwgb2Zmc2V0IHZhbHVlIChjYWxjdWxhdGVkIGluIHRoZSBzdGFydCB0YWcpLjwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGNvbnRhaW5pbmcgdGhlIGNvbGxlY3Rpb24uPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuRXJyb3JzVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9FcnJvcnNUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLkVycm9yc1RhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+TmFtZSBvZiB0aGUgcmVxdWVzdCBzY29wZSBhdHRyaWJ1dGUgY29udGFpbmluZyBvdXIgZXJyb3IgbWVzc2FnZXMsCisgaWYgYW55LjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLkZpbGVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0ZpbGVUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLkZpbGVUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5Gb3JtVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3JtVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5Gb3JtVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2FjdGlvbjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hY3Rpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFjdGlvbiBVUkwgdG8gd2hpY2ggdGhpcyBmb3JtIHNob3VsZCBiZSBzdWJtaXR0ZWQsIGlmIGFueS48L0RMPgorPEhSPgorCis8SDM+CitlbmN0eXBlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmVuY3R5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRlbnQgZW5jb2RpbmcgdG8gYmUgdXNlZCBvbiBhIFBPU1Qgc3VibWl0LjwvREw+Cis8SFI+CisKKzxIMz4KK2ZvY3VzPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmZvY3VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBmaWVsZCB0byByZWNlaXZlIGZvY3VzLCBpZiBhbnkuPC9ETD4KKzxIUj4KKworPEgzPgorbWV0aG9kPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm1ldGhvZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVxdWVzdCBtZXRob2QgdXNlZCB3aGVuIHN1Ym1pdHRpbmcgdGhpcyBmb3JtLjwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYXR0cmlidXRlIGtleSB1bmRlciB3aGljaCBvdXIgYXNzb2NpYXRlZCBiZWFuIGlzIHN0b3JlZC48L0RMPgorPEhSPgorCis8SDM+CitvblJlc2V0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9uUmVzZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG9uUmVzZXQgZXZlbnQgc2NyaXB0LjwvREw+Cis8SFI+CisKKzxIMz4KK29uU3VibWl0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9uU3VibWl0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBvblN1Ym1pdCBldmVudCBzY3JpcHQuPC9ETD4KKzxIUj4KKworPEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIChyZXF1ZXN0IG9yIHNlc3Npb24pIHVuZGVyIHdoaWNoIG91ciBhc3NvY2lhdGVkIGJlYW4KKyBpcyBzdG9yZWQuPC9ETD4KKzxIUj4KKworPEgzPgorc3R5bGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c3R5bGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHN0eWxlIGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuPC9ETD4KKzxIUj4KKworPEgzPgorc3R5bGVDbGFzczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZUNsYXNzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuPC9ETD4KKzxIUj4KKworPEgzPgorc3R5bGVJZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZUlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBpZGVudGlmaWVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy48L0RMPgorPEhSPgorCis8SDM+Cit0YXJnZXQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dGFyZ2V0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB3aW5kb3cgdGFyZ2V0LjwvREw+Cis8SFI+CisKKzxIMz4KK3R5cGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBiZWFuIHRvIGJlIGNyZWF0ZWQsIGlmIG5lY2Vzc2FyeS48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5Gb3J3YXJkVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9Gb3J3YXJkVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5Gb3J3YXJkVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbG9naWNhbCBuYW1lIG9mIHRoZSBnbG9iYWwgQWN0aW9uRm9yd2FyZCB3ZSB3aWxsIGxvb2sgdXA8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5HZXRQcm9wZXJ0eVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvR2V0UHJvcGVydHlUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLkdldFByb3BlcnR5VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2lkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdG8gYmUgZXhwb3NlZC48L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gb3duaW5nIHRoZSBwcm9wZXJ0eS48L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSB0byBiZSBleHBvc2VkLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLkhpZGRlblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSGlkZGVuVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5IaWRkZW5UYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5IdG1sUHJvcGVydHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0h0bWxQcm9wZXJ0eVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuSHRtbFByb3BlcnR5VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgb2JqZWN0IGluc3RhbmNlIGZyb20gd2hpY2ggdGhlIHByb3BlcnR5IGlzIG9idGFpbmVkLjwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuSWZBdHRyaWJ1dGVFeGlzdHNUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmQXR0cmlidXRlRXhpc3RzVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5JZkF0dHJpYnV0ZUV4aXN0c1RhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLklmQXR0cmlidXRlTWlzc2luZ1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZBdHRyaWJ1dGVNaXNzaW5nVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5JZkF0dHJpYnV0ZU1pc3NpbmdUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5JZlBhcmFtZXRlckVxdWFsc1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSWZQYXJhbWV0ZXJFcXVhbHNUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLklmUGFyYW1ldGVyRXF1YWxzVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIGJlaW5nIGNvbXBhcmVkLjwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB2YWx1ZSB0byBjb21wYXJlIHRoaXMgcGFyYW1ldGVyIHRvLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLklmUGFyYW1ldGVyTm90RXF1YWxzVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck5vdEVxdWFsc1RhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuSWZQYXJhbWV0ZXJOb3RFcXVhbHNUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgYmVpbmcgY29tcGFyZWQuPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIHRvIGNvbXBhcmUgdGhpcyBwYXJhbWV0ZXIgdG8uPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuSWZQYXJhbWV0ZXJOb3ROdWxsVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlBhcmFtZXRlck5vdE51bGxUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLklmUGFyYW1ldGVyTm90TnVsbFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciBiZWluZyBjb21wYXJlZC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5JZlBhcmFtZXRlck51bGxUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUGFyYW1ldGVyTnVsbFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuSWZQYXJhbWV0ZXJOdWxsVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIGJlaW5nIGNvbXBhcmVkLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLklmUHJvcGVydHlFcXVhbHNUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL0lmUHJvcGVydHlFcXVhbHNUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLklmUHJvcGVydHlFcXVhbHNUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGdldC48L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgdG8gY29tcGFyZSB0by48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5JZlByb3BlcnR5Tm90RXF1YWxzVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9JZlByb3BlcnR5Tm90RXF1YWxzVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5JZlByb3BlcnR5Tm90RXF1YWxzVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIHRvIGNvbXBhcmUgdG8uPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuSW5jbHVkZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSW5jbHVkZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuSW5jbHVkZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGxvZ2ljYWwgbmFtZSBvZiB0aGUgZ2xvYmFsIEFjdGlvbkZvcndhcmQgd2Ugd2lsbCBsb29rIHVwPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuSXRlcmF0ZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvSXRlcmF0ZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuSXRlcmF0ZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Citjb2xsZWN0aW9uPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0IDxCPmNvbGxlY3Rpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbGxlY3Rpb24gb3ZlciB3aGljaCB3ZSB3aWxsIGJlIGl0ZXJhdGluZy48L0RMPgorPEhSPgorCis8SDM+CitpZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRvIGJlIGV4cG9zZWQuPC9ETD4KKzxIUj4KKworPEgzPgoraXRlcmF0b3I8L0gzPgorPFBSRT4KK2phdmEudXRpbC5JdGVyYXRvciA8Qj5pdGVyYXRvcjwvQj48L1BSRT4KKzxETD4KKzxERD5JdGVyYXRvciBvZiB0aGUgZWxlbWVudHMgb2YgdGhpcyBjb2xsZWN0aW9uLjwvREw+Cis8SFI+CisKKzxIMz4KK2xlbmd0aDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5sZW5ndGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGxlbmd0aCB2YWx1ZSBvciBhdHRyaWJ1dGUgbmFtZSAoPD0wIG1lYW5zIG5vIGxpbWl0KS48L0RMPgorPEhSPgorCis8SDM+CitsZW5ndGhDb3VudDwvSDM+Cis8UFJFPgoraW50IDxCPmxlbmd0aENvdW50PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBudW1iZXIgb2YgZWxlbWVudHMgd2UgaGF2ZSBhbHJlYWR5IHJlbmRlcmVkLjwvREw+Cis8SFI+CisKKzxIMz4KK2xlbmd0aFZhbHVlPC9IMz4KKzxQUkU+CitpbnQgPEI+bGVuZ3RoVmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFjdHVhbCBsZW5ndGggdmFsdWUgKGNhbGN1bGF0ZWQgaW4gdGhlIHN0YXJ0IHRhZykuPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBjb2xsZWN0aW9uIG9yIG93bmluZyBiZWFuLjwvREw+Cis8SFI+CisKKzxIMz4KK29mZnNldDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vZmZzZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHN0YXJ0aW5nIG9mZnNldCAoemVybyByZWxhdGl2ZSkuPC9ETD4KKzxIUj4KKworPEgzPgorb2Zmc2V0VmFsdWU8L0gzPgorPFBSRT4KK2ludCA8Qj5vZmZzZXRWYWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWN0dWFsIG9mZnNldCB2YWx1ZSAoY2FsY3VsYXRlZCBpbiB0aGUgc3RhcnQgdGFnKS48L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBjb250YWluaW5nIHRoZSBjb2xsZWN0aW9uLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLkxpbmsxVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rMVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuTGluazFUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorZm9yd2FyZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5mb3J3YXJkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsb2dpY2FsIGZvcndhcmQgbmFtZSBmcm9tIHdoaWNoIHRvIHJldHJpZXZlIHRoZSBoeXBlcmxpbmsgVVJJLjwvREw+Cis8SFI+CisKKzxIMz4KK2hyZWY8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aHJlZjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgaHlwZXJsaW5rIFVSSS48L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEpTUCBiZWFuIG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEpTUCBiZWFuIHByb3BlcnR5IG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuPC9ETD4KKzxIUj4KKworPEgzPgordGFyZ2V0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnRhcmdldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgd2luZG93IHRhcmdldC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5MaW5rVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9MaW5rVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5MaW5rVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2ZvcndhcmQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Zm9yd2FyZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbG9naWNhbCBmb3J3YXJkIG5hbWUgZnJvbSB3aGljaCB0byByZXRyaWV2ZSB0aGUgaHlwZXJsaW5rIFVSSS48L0RMPgorPEhSPgorCis8SDM+CitocmVmPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmhyZWY8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGh5cGVybGluayBVUkkuPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKU1AgYmVhbiBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLjwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKU1AgYmVhbiBwcm9wZXJ0eSBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLjwvREw+Cis8SFI+CisKKzxIMz4KK3RhcmdldDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50YXJnZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHdpbmRvdyB0YXJnZXQuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuTWVzc2FnZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvTWVzc2FnZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuTWVzc2FnZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CithcmcwPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmFyZzA8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZpcnN0IG9wdGlvbmFsIGFyZ3VtZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK2FyZzE8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YXJnMTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2Vjb25kIG9wdGlvbmFsIGFyZ3VtZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK2FyZzI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YXJnMjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdGhpcmQgb3B0aW9uYWwgYXJndW1lbnQuPC9ETD4KKzxIUj4KKworPEgzPgorYXJnMzwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hcmczPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBmb3VydGggb3B0aW9uYWwgYXJndW1lbnQuPC9ETD4KKzxIUj4KKworPEgzPgorYXJnNDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hcmc0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBmaWZ0aCBvcHRpb25hbCBhcmd1bWVudC48L0RMPgorPEhSPgorCis8SDM+CitidW5kbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YnVuZGxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3Igb3VyIHJlc291cmNlcy48L0RMPgorPEhSPgorCis8SDM+CitrZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+a2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIGtleSBvZiB0aGUgbWVzc2FnZSB0byBiZSByZXRyaWV2ZWQuPC9ETD4KKzxIUj4KKworPEgzPgorbG9jYWxlS2V5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmxvY2FsZUtleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2Vzc2lvbiBzY29wZSBrZXkgdW5kZXIgd2hpY2ggb3VyIExvY2FsZSBpcyBzdG9yZWQuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuTXVsdGlib3hUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL011bHRpYm94VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5NdWx0aWJveFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS48L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBmb3IgdGhpcyBmaWVsZC48L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgd2hpY2ggd2lsbCBtYXJrIHRoaXMgY2hlY2tib3ggYXMgImNoZWNrZWQiIGlmIHByZXNlbnQKKyBpbiB0aGUgYXJyYXkgcmV0dXJuZWQgYnkgb3VyIHByb3BlcnR5IGdldHRlci48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5PcHRpb25zMVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvT3B0aW9uczFUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLk9wdGlvbnMxVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2xhYmVsTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5sYWJlbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyB0aGUgbGFiZWxzIGNvbGxlY3Rpb24uPC9ETD4KKzxIUj4KKworPEgzPgorbGFiZWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5sYWJlbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBiZWFuIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIGxhYmVscyBjb2xsZWN0aW9uLjwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIHRoZSB2YWx1ZXMgY29sbGVjdGlvbi48L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gdXNlIHRvIGJ1aWxkIHRoZSB2YWx1ZXMgY29sbGVjdGlvbi48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5PcHRpb25zVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9PcHRpb25zVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5PcHRpb25zVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2xhYmVsTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5sYWJlbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyB0aGUgbGFiZWxzIGNvbGxlY3Rpb24uPC9ETD4KKzxIUj4KKworPEgzPgorbGFiZWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5sYWJlbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBiZWFuIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIGxhYmVscyBjb2xsZWN0aW9uLjwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIHRoZSB2YWx1ZXMgY29sbGVjdGlvbi48L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gdXNlIHRvIGJ1aWxkIHRoZSB2YWx1ZXMgY29sbGVjdGlvbi48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5PcHRpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL09wdGlvblRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuT3B0aW9uVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXJ2ZXIgdmFsdWUgZm9yIHRoaXMgb3B0aW9uLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLlBhcmFtZXRlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUGFyYW1ldGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5QYXJhbWV0ZXJUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBkZXNpcmVkIHBhcmFtZXRlci48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5QYXNzd29yZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUGFzc3dvcmRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLlBhc3N3b3JkVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuUHJvcGVydHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL1Byb3BlcnR5VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5Qcm9wZXJ0eVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5SYWRpb1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvUmFkaW9UYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLlJhZGlvVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LjwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGZvciB0aGlzIGZpZWxkLjwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXJ2ZXIgdmFsdWUgZm9yIHRoaXMgb3B0aW9uLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLlJlZGlyZWN0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SZWRpcmVjdFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuUmVkaXJlY3RUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgoraHJlZjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5ocmVmPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBoeXBlcmxpbmsgVVJJLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLlJlc2V0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9SZXNldFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuUmVzZXRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgaW5wdXQgZmllbGQuPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuU2VsZWN0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TZWxlY3RUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLlNlbGVjdFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CittYXRjaDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5tYXRjaDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWN0dWFsIHZhbHVlIHdlIHdpbGwgbWF0Y2ggYWdhaW5zdCwgY2FsY3VsYXRlZCBpbiBkb1N0YXJ0VGFnKCkuPC9ETD4KKzxIUj4KKworPEgzPgorbXVsdGlwbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bXVsdGlwbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIG11bHRpcGxlIHNlbGVjdGlvbnMgYmUgYWxsb3dlZD8gIEFueSBub24tbnVsbCB2YWx1ZSB3aWxsCisgdHJpZ2dlciByZW5kZXJpbmcgdGhpcy48L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS48L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLjwvREw+Cis8SFI+CisKKzxIMz4KK3NpemU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c2l6ZTwvQj48L1BSRT4KKzxETD4KKzxERD5Ib3cgbWFueSBhdmFpbGFibGUgb3B0aW9ucyBzaG91bGQgYmUgZGlzcGxheWVkIHdoZW4gdGhpcyBlbGVtZW50CisgaXMgcmVuZGVyZWQ/PC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIHRvIGNvbXBhcmUgd2l0aCBmb3IgbWFya2luZyBhbiBvcHRpb24gc2VsZWN0ZWQuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuU3VibWl0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9TdWJtaXRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLlN1Ym1pdFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGlucHV0IGZpZWxkLjwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB2YWx1ZSBvZiB0aGUgYnV0dG9uIGxhYmVsLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLlRleHRhcmVhVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9UZXh0YXJlYVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuVGV4dGFyZWFUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuVGV4dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvVGV4dFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuVGV4dFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEhSIFNJWkU9IjQiIE5PU0hBREU+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQUxJR049ImNlbnRlciI+PEZPTlQgU0laRT0iKzIiPgorPEI+UGFja2FnZTwvQj4gPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5Db29raWVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkNvb2tpZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitpZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8SDM+CittdWx0aXBsZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5tdWx0aXBsZTwvQj48L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gYW4gYXJyYXkgb2YgQ29va2llcyBpZiA8Y29kZT5tdWx0aXBsZTwvY29kZT4gaXMgbm9uLW51bGwuPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBjb29raWUgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZXhwb3NlZC48L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCB2YWx1ZSB0byByZXR1cm4gaWYgbm8gY29va2llIG9mIHRoZSBzcGVjaWZpZWQgbmFtZSBpcyBmb3VuZC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkRlZmluZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uRGVmaW5lVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2lkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBvd25pbmcgdGhlIHByb3BlcnR5IHRvIGJlIGV4cG9zZWQuPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIHJldHJpZXZlZC48L0RMPgorPEhSPgorCis8SDM+CitzY29wZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIHNwZWNpZmllZCBiZWFuLjwvREw+Cis8SFI+CisKKzxIMz4KK3RvU2NvcGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dG9TY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRoZSBuZXdseSBkZWZpbmVkIGJlYW4gd2lsbCBiZSBjcmVhdGQuPC9ETD4KKzxIUj4KKworPEgzPgordHlwZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50eXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSB2YWx1ZSB0byBiZSBleHBvc2VkLjwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSAoU3RyaW5nKSB2YWx1ZSB0byB3aGljaCB0aGUgZGVmaW5lZCBiZWFuIHdpbGwgYmUgc2V0LjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSGVhZGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5IZWFkZXJUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgoraWQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuPC9ETD4KKzxIUj4KKworPEgzPgorbXVsdGlwbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bXVsdGlwbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGFuIGFycmF5IG9mIGhlYWRlciB2YWx1ZXMgaWYgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGlzIG5vbi1udWxsLjwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgaGVhZGVyIHdob3NlIHZhbHVlIGlzIHRvIGJlIGV4cG9zZWQuPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIG5vIGhlYWRlciBvZiB0aGUgc3BlY2lmaWVkIG5hbWUgaXMgZm91bmQuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5JbmNsdWRlVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSW5jbHVkZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CithbmNob3I8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YW5jaG9yPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhbmNob3IgdG8gYmUgYWRkZWQgdG8gdGhlIGVuZCBvZiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluay48L0RMPgorPEhSPgorCis8SDM+Citmb3J3YXJkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmZvcndhcmQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGdsb2JhbCA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiB0aGF0IGNvbnRhaW5zIGEKKyBwYXRoIHRvIG91ciByZXF1ZXN0ZWQgcmVzb3VyY2UuPC9ETD4KKzxIUj4KKworPEgzPgoraHJlZjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5ocmVmPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhYnNvbHV0ZSBVUkwgdG8gdGhlIHJlc291cmNlIHRvIGJlIGluY2x1ZGVkLjwvREw+Cis8SFI+CisKKzxIMz4KK2lkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxIMz4KK3BhZ2U8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGFnZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29udGV4dC1yZWxhdGl2ZSBVUkkgb2YgdGhlIHBhZ2Ugb3Igc2VydmxldCB0byBiZSBpbmNsdWRlZC48L0RMPgorPEhSPgorCis8SDM+Cit0cmFuc2FjdGlvbjwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj50cmFuc2FjdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5JbmNsdWRlIHRyYW5zYWN0aW9uIHRva2VuIChpZiBhbnkpIGluIHRoZSBoeXBlcmxpbms/PC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5NZXNzYWdlVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uTWVzc2FnZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CithcmcwPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmFyZzA8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZpcnN0IG9wdGlvbmFsIGFyZ3VtZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK2FyZzE8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YXJnMTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2Vjb25kIG9wdGlvbmFsIGFyZ3VtZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK2FyZzI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YXJnMjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdGhpcmQgb3B0aW9uYWwgYXJndW1lbnQuPC9ETD4KKzxIUj4KKworPEgzPgorYXJnMzwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hcmczPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBmb3VydGggb3B0aW9uYWwgYXJndW1lbnQuPC9ETD4KKzxIUj4KKworPEgzPgorYXJnNDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hcmc0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBmaWZ0aCBvcHRpb25hbCBhcmd1bWVudC48L0RMPgorPEhSPgorCis8SDM+CitidW5kbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YnVuZGxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3Igb3VyIHJlc291cmNlcy48L0RMPgorPEhSPgorCis8SDM+CitrZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+a2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIGtleSBvZiB0aGUgbWVzc2FnZSB0byBiZSByZXRyaWV2ZWQuPC9ETD4KKzxIUj4KKworPEgzPgorbG9jYWxlS2V5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmxvY2FsZUtleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2Vzc2lvbiBzY29wZSBrZXkgdW5kZXIgd2hpY2ggb3VyIExvY2FsZSBpcyBzdG9yZWQuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYWdlVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFnZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitpZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcGFnZSBjb250ZXh0IHByb3BlcnR5IHRvIGJlIHJldHJpZXZlZC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlBhcmFtZXRlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFyYW1ldGVyVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2lkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxIMz4KK211bHRpcGxlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm11bHRpcGxlPC9CPjwvUFJFPgorPERMPgorPEREPlJldHVybiBhbiBhcnJheSBvZiBwYXJhbWV0ZXIgdmFsdWVzIGlmIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcworIG5vbi1udWxsLjwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHdob3NlIHZhbHVlIGlzIHRvIGJlIGV4cG9zZWQuPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIG5vIHBhcmFtZXRlciBvZiB0aGUgc3BlY2lmaWVkIG5hbWUgaXMKKyBmb3VuZC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlJlc291cmNlVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlJlc291cmNlVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2lkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxIMz4KK2lucHV0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmlucHV0PC9CPjwvUFJFPgorPERMPgorPEREPlJldHVybiBhbiBJbnB1dFN0cmVhbSB0byB0aGUgc3BlY2lmaWVkIHJlc291cmNlIGlmIHRoaXMgaXMgbm9uLW51bGwuPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSB3aG9zZSBjb250ZW50cyBhcmUgdG8gYmUgZXhwb3NlZC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlNpemVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5TaXplVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2NvbGxlY3Rpb248L0gzPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QgPEI+Y29sbGVjdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWN0dWFsIGNvbGxlY3Rpb24gdG8gYmUgY291bnRlZC48L0RMPgorPEhSPgorCis8SDM+CitpZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS48L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gb3duaW5nIHRoZSBwcm9wZXJ0eSB0byBiZSBjb3VudGVkLjwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBiZSByZXRyaWV2ZWQuPC9ETD4KKzxIUj4KKworPEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBzcGVjaWZpZWQgYmVhbi48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlN0cnV0c1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU3RydXRzVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2lkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvREw+Cis8SFI+CisKKzxIMz4KK2Zvcm1CZWFuPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmZvcm1CZWFuPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb25Gb3JtQmVhbjwvY29kZT4gb2JqZWN0IHRvIGJlIGV4cG9zZWQuPC9ETD4KKzxIUj4KKworPEgzPgorZm9yd2FyZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5mb3J3YXJkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBvYmplY3QgdG8gYmUgZXhwb3NlZC48L0RMPgorPEhSPgorCis8SDM+CittYXBwaW5nPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm1hcHBpbmc8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IG9iamVjdCB0byBiZSBleHBvc2VkLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uV3JpdGVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uV3JpdGVUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorZmlsdGVyPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPmZpbHRlcjwvQj48L1BSRT4KKzxETD4KKzxERD5GaWx0ZXIgdGhlIHJlbmRlcmVkIG91dHB1dCBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBzZW5zaXRpdmUgaW4gSFRNTD88L0RMPgorPEhSPgorCis8SDM+CitpZ25vcmU8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+aWdub3JlPC9CPjwvUFJFPgorPERMPgorPEREPlNob3VsZCB3ZSBpZ25vcmUgbWlzc2luZyBiZWFucyBhbmQgc2ltcGx5IG91dHB1dCBub3RoaW5nPzwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5OYW1lIG9mIHRoZSBiZWFuIHRoYXQgY29udGFpbnMgdGhlIGRhdGEgd2Ugd2lsbCBiZSByZW5kZXJpbmcuPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+TmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYmUgYWNjZXNzZWQgb24gdGhlIHNwZWNpZmllZCBiZWFuLjwvREw+Cis8SFI+CisKKzxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSB0byBiZSBzZWFyY2hlZCB0byByZXRyaWV2ZSB0aGUgc3BlY2lmaWVkIGJlYW4uPC9ETD4KKworPFA+Cis8SFIgU0laRT0iNCIgTk9TSEFERT4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBBTElHTj0iY2VudGVyIj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5QYWNrYWdlPC9CPiA8Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2FjY2VwdDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hY2NlcHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tbWEtZGVsaW1pdGVkIGxpc3Qgb2YgY29udGVudCB0eXBlcyB0aGF0IGEgc2VydmVyIHByb2Nlc3NpbmcgdGhpcyBmb3JtCisgd2lsbCBoYW5kbGUgY29ycmVjdGx5LiAgVGhpcyBwcm9wZXJ0eSBpcyBkZWZpbmVkIG9ubHkgZm9yIHRoZQorIDxjb2RlPmZpbGU8L2NvZGU+IHRhZywgYnV0IGlzIGltcGxlbWVudGVkIGhlcmUgYmVjYXVzZSBpdCBhZmZlY3RzIHRoZQorIHJlbmRlcmVkIEhUTUwgb2YgdGhlIGNvcnJlc3BvbmRpbmcgJmx0O2lucHV0Jmd0OyB0YWcuPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuPC9ETD4KKzxIUj4KKworPEgzPgorcmVkaXNwbGF5PC9IMz4KKzxQUkU+Citib29sZWFuIDxCPnJlZGlzcGxheTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgInJlZGlzcGxheSBjb250ZW50cyIgZmxhZyAodXNlZCBvbmx5IG9uIDxjb2RlPnBhc3N3b3JkPC9jb2RlPikuPC9ETD4KKzxIUj4KKworPEgzPgordHlwZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50eXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB0eXBlIG9mIGlucHV0IGZpZWxkIHJlcHJlc2VudGVkIGJ5IHRoaXMgdGFnICh0ZXh0LCBwYXNzd29yZCwgb3IKKyBoaWRkZW4pLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorYWNjZXNza2V5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmFjY2Vzc2tleTwvQj48L1BSRT4KKzxETD4KKzxERD5BY2Nlc3Mga2V5IGNoYXJhY3Rlci48L0RMPgorPEhSPgorCis8SDM+Cit0YWJpbmRleDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50YWJpbmRleDwvQj48L1BSRT4KKzxETD4KKzxERD5UYWIgaW5kZXggdmFsdWUuPC9ETD4KKzxIUj4KKworPEgzPgorb25jbGljazwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbmNsaWNrPC9CPjwvUFJFPgorPERMPgorPEREPk1vdXNlIGNsaWNrIGV2ZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK29uZGJsY2xpY2s8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25kYmxjbGljazwvQj48L1BSRT4KKzxETD4KKzxERD5Nb3VzZSBkb3VibGUgY2xpY2sgZXZlbnQuPC9ETD4KKzxIUj4KKworPEgzPgorb25tb3VzZW92ZXI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25tb3VzZW92ZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2Ugb3ZlciBjb21wb25lbnQgZXZlbnQuPC9ETD4KKzxIUj4KKworPEgzPgorb25tb3VzZW91dDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbm1vdXNlb3V0PC9CPjwvUFJFPgorPERMPgorPEREPk1vdXNlIGV4aXQgY29tcG9uZW50IGV2ZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK29ubW91c2Vtb3ZlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9ubW91c2Vtb3ZlPC9CPjwvUFJFPgorPERMPgorPEREPk1vdXNlIG1vdmVkIG92ZXIgY29tcG9uZW50IGV2ZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK29ubW91c2Vkb3duPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9ubW91c2Vkb3duPC9CPjwvUFJFPgorPERMPgorPEREPk1vdXNlIHByZXNzZWQgb24gY29tcG9uZW50IGV2ZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK29ubW91c2V1cDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbm1vdXNldXA8L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2UgcmVsZWFzZWQgb24gY29tcG9uZW50IGV2ZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK29ua2V5ZG93bjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbmtleWRvd248L0I+PC9QUkU+Cis8REw+Cis8REQ+S2V5IGRvd24gaW4gY29tcG9uZW50IGV2ZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK29ua2V5dXA8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25rZXl1cDwvQj48L1BSRT4KKzxETD4KKzxERD5LZXkgcmVsZWFzZWQgaW4gY29tcG9uZW50IGV2ZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK29ua2V5cHJlc3M8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25rZXlwcmVzczwvQj48L1BSRT4KKzxETD4KKzxERD5LZXkgZG93biBhbmQgdXAgdG9nZXRoZXIgaW4gY29tcG9uZW50IGV2ZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK29uc2VsZWN0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9uc2VsZWN0PC9CPjwvUFJFPgorPERMPgorPEREPlRleHQgc2VsZWN0ZWQgaW4gY29tcG9uZW50IGV2ZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK29uY2hhbmdlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9uY2hhbmdlPC9CPjwvUFJFPgorPERMPgorPEREPkNvbnRlbnQgY2hhbmdlZCBhZnRlciBjb21wb25lbnQgbG9zdCBmb2N1cyBldmVudC48L0RMPgorPEhSPgorCis8SDM+CitvbmJsdXI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25ibHVyPC9CPjwvUFJFPgorPERMPgorPEREPkNvbXBvbmVudCBsb3N0IGZvY3VzIGV2ZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK29uZm9jdXM8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25mb2N1czwvQj48L1BSRT4KKzxETD4KKzxERD5Db21wb25lbnQgaGFzIHJlY2VpdmVkIGZvY3VzIGV2ZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK2Rpc2FibGVkPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPmRpc2FibGVkPC9CPjwvUFJFPgorPERMPgorPEREPkNvbXBvbmVudCBpcyBkaXNhYmxlZC48L0RMPgorPEhSPgorCis8SDM+CityZWFkb25seTwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5yZWFkb25seTwvQj48L1BSRT4KKzxETD4KKzxERD5Db21wb25lbnQgaXMgcmVhZG9ubHkuPC9ETD4KKzxIUj4KKworPEgzPgorc3R5bGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c3R5bGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U3R5bGUgYXR0cmlidXRlIGFzc29jaWF0ZWQgd2l0aCBjb21wb25lbnQuPC9ETD4KKzxIUj4KKworPEgzPgorc3R5bGVDbGFzczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZUNsYXNzPC9CPjwvUFJFPgorPERMPgorPEREPk5hbWVkIFN0eWxlIGNsYXNzIGFzc29jaWF0ZWQgd2l0aCBjb21wb25lbnQuPC9ETD4KKzxIUj4KKworPEgzPgorc3R5bGVJZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZUlkPC9CPjwvUFJFPgorPERMPgorPEREPklkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIGNvbXBvbmVudC48L0RMPgorPEhSPgorCis8SDM+Cit0aXRsZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50aXRsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWR2aXNvcnkgdGl0bGUgb2YgdGhpcyBlbGVtZW50LjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorY29sczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5jb2xzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBudW1iZXIgb2YgY2hhcmFjdGVyIGNvbHVtbnMgZm9yIHRoaXMgZmllbGQsIG9yIG5lZ2F0aXZlCisgZm9yIG5vIGxpbWl0LjwvREw+Cis8SFI+CisKKzxIMz4KK21heGxlbmd0aDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5tYXhsZW5ndGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgYWxsb3dlZCwgb3IgbmVnYXRpdmUgZm9yIG5vIGxpbWl0LjwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBmaWVsZCAoYW5kIGFzc29jaWF0ZWQgcHJvcGVydHkpIGJlaW5nIHByb2Nlc3NlZC48L0RMPgorPEhSPgorCis8SDM+Cityb3dzPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnJvd3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG51bWJlciBvZiByb3dzIGZvciB0aGlzIGZpZWxkLCBvciBuZWdhdGl2ZSBmb3Igbm8gbGltaXQuPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIGZvciB0aGlzIGZpZWxkLCBvciA8Y29kZT5udWxsPC9jb2RlPiB0byByZXRyaWV2ZSB0aGUKKyBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGZyb20gb3VyIGFzc29jaWF0ZWQgYmVhbi48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK3RhcmdldDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50YXJnZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHRhcmdldCB3aW5kb3cgZm9yIHRoaXMgYmFzZSByZWZlcmVuY2UuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CdXR0b25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJ1dHRvblRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGJ1dHRvbi48L0RMPgorPEhSPgorCis8SDM+Cit0ZXh0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KS48L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNhbmNlbFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2FuY2VsVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgYnV0dG9uLjwvREw+Cis8SFI+CisKKzxIMz4KK3RleHQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLjwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB2YWx1ZSBvZiB0aGUgYnV0dG9uIGxhYmVsLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2hlY2tib3hUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2hlY2tib3hUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHByb3BlcnR5IG5hbWUgZm9yIHRoaXMgZmllbGQuPC9ETD4KKzxIUj4KKworPEgzPgordGV4dDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50ZXh0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZlciB2YWx1ZSBmb3IgdGhpcyBvcHRpb24uPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5FcnJvcnNUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkVycm9yc1RhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitidW5kbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YnVuZGxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3Igb3VyIHJlc291cmNlcy48L0RMPgorPEhSPgorCis8SDM+Citsb2NhbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXNzaW9uIGF0dHJpYnV0ZSBrZXkgZm9yIG91ciBsb2NhbGUuPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciBlcnJvciBtZXNzYWdlcyAoaWYgYW55KS48L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgZm9yIHdoaWNoIGVycm9yIG1lc3NhZ2VzIHNob3VsZCBiZSByZXR1cm5lZCwKKyBvciA8Y29kZT5udWxsPC9jb2RlPiB0byByZXR1cm4gYWxsIGVycm9ycy48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZpbGVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5GaWxlVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5Gb3JtVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRm9ybVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CithY3Rpb248L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YWN0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhY3Rpb24gVVJMIHRvIHdoaWNoIHRoaXMgZm9ybSBzaG91bGQgYmUgc3VibWl0dGVkLCBpZiBhbnkuPC9ETD4KKzxIUj4KKworPEgzPgorZW5jdHlwZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5lbmN0eXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZW50IGVuY29kaW5nIHRvIGJlIHVzZWQgb24gYSBQT1NUIHN1Ym1pdC48L0RMPgorPEhSPgorCis8SDM+Citmb2N1czwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5mb2N1czwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZmllbGQgdG8gcmVjZWl2ZSBmb2N1cywgaWYgYW55LjwvREw+Cis8SFI+CisKKzxIMz4KK21ldGhvZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5tZXRob2Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlcXVlc3QgbWV0aG9kIHVzZWQgd2hlbiBzdWJtaXR0aW5nIHRoaXMgZm9ybS48L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggb3VyIGFzc29jaWF0ZWQgYmVhbiBpcyBzdG9yZWQuPC9ETD4KKzxIUj4KKworPEgzPgorb25yZXNldDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbnJlc2V0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBvblJlc2V0IGV2ZW50IHNjcmlwdC48L0RMPgorPEhSPgorCis8SDM+CitvbnN1Ym1pdDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbnN1Ym1pdDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgb25TdWJtaXQgZXZlbnQgc2NyaXB0LjwvREw+Cis8SFI+CisKKzxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSAocmVxdWVzdCBvciBzZXNzaW9uKSB1bmRlciB3aGljaCBvdXIgYXNzb2NpYXRlZCBiZWFuCisgaXMgc3RvcmVkLjwvREw+Cis8SFI+CisKKzxIMz4KK3NlcnZsZXQ8L0gzPgorPFBSRT4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPnNlcnZsZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2Ugd2UgYXJlIGFzc29jaWF0ZWQgd2l0aCAoc28gdGhhdCB3ZSBjYW4KKyBpbml0aWFsaXplIHRoZSA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBwcm9wZXJ0eSBvbiBhbnkgZm9ybSBiZWFuIHRoYXQKKyB3ZSBjcmVhdGUpLjwvREw+Cis8SFI+CisKKzxIMz4KK3N0eWxlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnN0eWxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzdHlsZSBhdHRyaWJ1dGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLjwvREw+Cis8SFI+CisKKzxIMz4KK3N0eWxlQ2xhc3M8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c3R5bGVDbGFzczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3R5bGUgY2xhc3MgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLjwvREw+Cis8SFI+CisKKzxIMz4KK3N0eWxlSWQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c3R5bGVJZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgaWRlbnRpZmllciBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuPC9ETD4KKzxIUj4KKworPEgzPgordGFyZ2V0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnRhcmdldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgd2luZG93IHRhcmdldC48L0RMPgorPEhSPgorCis8SDM+Cit0eXBlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgYmVhbiB0byBiZSBjcmVhdGVkLCBpZiBuZWNlc3NhcnkuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5IaWRkZW5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkhpZGRlblRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSHRtbFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkh0bWxUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbG9jYWxlPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPmxvY2FsZTwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgd2Ugc2V0IHRoZSBjdXJyZW50IExvY2FsZSBmb3IgdGhpcyB1c2VyIGlmIG5lZWRlZD88L0RMPgorPEhSPgorCis8SDM+Cit4aHRtbDwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj54aHRtbDwvQj48L1BSRT4KKzxETD4KKzxERD5BcmUgd2UgcmVuZGVyaW5nIGFuIHhodG1sIHBhZ2U/PC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWFnZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWFnZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CithbHQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YWx0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBpbWFnZS48L0RMPgorPEhSPgorCis8SDM+CithbHRLZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YWx0S2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBpbWFnZS48L0RMPgorPEhSPgorCis8SDM+Citib3JkZXI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Ym9yZGVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib3JkZXIgc2l6ZSBhcm91bmQgdGhlIGltYWdlLjwvREw+Cis8SFI+CisKKzxIMz4KK2J1bmRsZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5idW5kbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciBvdXIgcmVzb3VyY2VzLjwvREw+Cis8SFI+CisKKzxIMz4KK2xvY2FsZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5sb2NhbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3Igb3VyIGxvY2FsZS48L0RMPgorPEhSPgorCis8SDM+CitwYWdlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQtcmVsYXRpdmUgVVJJIG9mIHRoZSBpbWFnZS48L0RMPgorPEhSPgorCis8SDM+CitwYWdlS2V5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhZ2VLZXk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgY29udGV4dC1yZWxhdGl2ZSBVUkkgb2YgdGhlIGltYWdlLjwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIGF0dHJpYnV0ZSBmb3IgdGhlIGltYWdlIGJ1dHRvbi48L0RMPgorPEhSPgorCis8SDM+CitzcmM8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c3JjPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBVUkwgb2YgdGhpcyBpbWFnZS48L0RMPgorPEhSPgorCis8SDM+CitzcmNLZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c3JjS2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBVUkwgb2YgdGhpcyBpbWFnZS48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltZ1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSW1nVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2FsaWduPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmFsaWduPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSB0byBzcGVjaWZ5IHdoZXJlIHRvIGFsaWduIHRoZSBpbWFnZS48L0RMPgorPEhSPgorCis8SDM+CithbHQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YWx0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhbHRlcm5hdGUgdGV4dCB0byBkaXNwbGF5IGZvciB0aGUgaW1hZ2UuICBUaGlzIGlzIHVzZWQgZm9yCisgdGV4dCBiYXNlZCBicm93c2VycyBhbmQvb3IgYXMgYSAidG9vbC10aXAiIGZvciB0aGUgaW1hZ2UuPC9ETD4KKzxIUj4KKworPEgzPgorYWx0S2V5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmFsdEtleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSBsb29rdXAga2V5IHVzZWQgdG8gbG9vayB1cCBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcy48L0RMPgorPEhSPgorCis8SDM+Citib3JkZXI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Ym9yZGVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib3JkZXIgc2l6ZSBhcm91bmQgdGhlIGltYWdlLjwvREw+Cis8SFI+CisKKzxIMz4KK2J1bmRsZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5idW5kbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUgY29udGFpbmluZyBvdXIgbWVzc2FnZQorIHJlc291cmNlcy48L0RMPgorPEhSPgorCis8SDM+CitoZWlnaHQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aGVpZ2h0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBpbWFnZSBoZWlnaHQuPC9ETD4KKzxIUj4KKworPEgzPgoraHNwYWNlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmhzcGFjZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgaG9yaXpvbnRhbCBzcGFjaW5nIGFyb3VuZCB0aGUgaW1hZ2UuPC9ETD4KKzxIUj4KKworPEgzPgoraW1hZ2VOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmltYWdlTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgaW1hZ2UgbmFtZSBmb3IgbmFtZWQgaW1hZ2VzLjwvREw+Cis8SFI+CisKKzxIMz4KK2lzbWFwPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmlzbWFwPC9CPjwvUFJFPgorPERMPgorPEREPlNlcnZlci1zaWRlIGltYWdlIG1hcCBkZWNsYXJhdGlvbi48L0RMPgorPEhSPgorCis8SDM+Citsb2NhbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgTG9jYWxlIHRvIGJlIHVzZWQgZm9yCisgbG9va2luZyB1cCBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcy48L0RMPgorPEhSPgorCis8SDM+Citsb3dzcmM8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bG93c3JjPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsb3cgcmVzb2x1dGlvbiBpbWFnZSBzb3VyY2UgVVJJLjwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSlNQIGJlYW4gbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy48L0RMPgorPEhSPgorCis8SDM+CitwYWdlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQtcmVsYXRpdmUgcGF0aCwgc3RhcnRpbmcgd2l0aCBhIHNsYXNoIGNoYXJhY3Rlciwgb2YgdGhlCisgaW1hZ2UgdG8gYmUgZGlzcGxheWVkIGJ5IHRoaXMgcmVuZGVyZWQgdGFnLjwvREw+Cis8SFI+CisKKzxIMz4KK3BhZ2VLZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGFnZUtleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IHVuZGVyIHdoaWNoIHdlIHNob3VsZCBsb29rIHVwIHRoZQorIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdGFnLCBpZiBhbnkuPC9ETD4KKzxIUj4KKworPEgzPgorcGFyYW1JZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbUlkPC9CPjwvUFJFPgorPERMPgorPEREPkluIHNpdHVhdGlvbnMgd2hlcmUgYW4gaW1hZ2UgaXMgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIChzdWNoIGFzIHRvIGNyZWF0ZQorIGEgY2hhcnQgZ3JhcGgpLCB0aGlzIHNwZWNpZmllcyB0aGUgc2luZ2xlLXBhcmFtZXRlciByZXF1ZXN0IHBhcmFtZXRlcgorIG5hbWUgdG8gZ2VuZXJhdGUuPC9ETD4KKzxIUj4KKworPEgzPgorcGFyYW1OYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBuYW1lLjwvREw+Cis8SFI+CisKKzxIMz4KK3BhcmFtUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1Qcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBwcm9wZXJ0eS48L0RMPgorPEhSPgorCis8SDM+CitwYXJhbVNjb3BlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtU2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gc2NvcGUuPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEpTUCBiZWFuIHByb3BlcnR5IG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuPC9ETD4KKzxIUj4KKworPEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZSBwcm9wZXJ0eSwgaWYgYW55LjwvREw+Cis8SFI+CisKKzxIMz4KK3NyYzwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zcmM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGltYWdlIHNvdXJjZSBVUkkuPC9ETD4KKzxIUj4KKworPEgzPgorc3JjS2V5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNyY0tleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IHVuZGVyIHdoaWNoIHdlIHNob3VsZCBsb29rIHVwIHRoZQorIDxjb2RlPnNyYzwvY29kZT4gYXR0cmlidXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0YWcsIGlmIGFueS48L0RMPgorPEhSPgorCis8SDM+Cit1c2VtYXA8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dXNlbWFwPC9CPjwvUFJFPgorPERMPgorPEREPkNsaWVudC1zaWRlIGltYWdlIG1hcCBkZWNsYXJhdGlvbi48L0RMPgorPEhSPgorCis8SDM+Cit2c3BhY2U8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dnNwYWNlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB2ZXJ0aWNhbCBzcGFjaW5nIGFyb3VuZCB0aGUgaW1hZ2UuPC9ETD4KKzxIUj4KKworPEgzPgord2lkdGg8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+d2lkdGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGltYWdlIHdpZHRoLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTGlua1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgordGV4dDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50ZXh0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuPC9ETD4KKzxIUj4KKworPEgzPgorYW5jaG9yPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmFuY2hvcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYW5jaG9yIHRvIGJlIGFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuPC9ETD4KKzxIUj4KKworPEgzPgorZm9yd2FyZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5mb3J3YXJkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsb2dpY2FsIGZvcndhcmQgbmFtZSBmcm9tIHdoaWNoIHRvIHJldHJpZXZlIHRoZSBoeXBlcmxpbmsgVVJJLjwvREw+Cis8SFI+CisKKzxIMz4KK2hyZWY8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aHJlZjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgaHlwZXJsaW5rIFVSSS48L0RMPgorPEhSPgorCis8SDM+CitsaW5rTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5saW5rTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbGluayBuYW1lIGZvciBuYW1lZCBsaW5rcy48L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEpTUCBiZWFuIG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuPC9ETD4KKzxIUj4KKworPEgzPgorcGFnZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZXh0LXJlbGF0aXZlIHBhZ2UgVVJMIChiZWdpbm5pbmcgd2l0aCBhIHNsYXNoKSB0byB3aGljaAorIHRoaXMgaHlwZXJsaW5rIHdpbGwgYmUgcmVuZGVyZWQuPC9ETD4KKzxIUj4KKworPEgzPgorcGFyYW1JZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbUlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWUgdG8gZ2VuZXJhdGUuPC9ETD4KKzxIUj4KKworPEgzPgorcGFyYW1OYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBuYW1lLjwvREw+Cis8SFI+CisKKzxIMz4KK3BhcmFtUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1Qcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBwcm9wZXJ0eS48L0RMPgorPEhSPgorCis8SDM+CitwYXJhbVNjb3BlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtU2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gc2NvcGUuPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEpTUCBiZWFuIHByb3BlcnR5IG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuPC9ETD4KKzxIUj4KKworPEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZSBwcm9wZXJ0eSwgaWYgYW55LjwvREw+Cis8SFI+CisKKzxIMz4KK3RhcmdldDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50YXJnZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHdpbmRvdyB0YXJnZXQuPC9ETD4KKzxIUj4KKworPEgzPgordHJhbnNhY3Rpb248L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+dHJhbnNhY3Rpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+SW5jbHVkZSB0cmFuc2FjdGlvbiB0b2tlbiAoaWYgYW55KSBpbiB0aGUgaHlwZXJsaW5rPzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTXVsdGlib3hUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTXVsdGlib3hUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorY29uc3RhbnQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Y29uc3RhbnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnN0YW50IFN0cmluZyB2YWx1ZSB0byBiZSByZXR1cm5lZCB3aGVuIHRoaXMgY2hlY2tib3ggaXMKKyBzZWxlY3RlZCBhbmQgdGhlIGZvcm0gaXMgc3VibWl0dGVkLjwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LjwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGZvciB0aGlzIGZpZWxkLjwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB2YWx1ZSB3aGljaCB3aWxsIG1hcmsgdGhpcyBjaGVja2JveCBhcyAiY2hlY2tlZCIgaWYgcHJlc2VudAorIGluIHRoZSBhcnJheSByZXR1cm5lZCBieSBvdXIgcHJvcGVydHkgZ2V0dGVyLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uc1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvbnNUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorY29sbGVjdGlvbjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5jb2xsZWN0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBjb2xsZWN0aW9uIGNvbnRhaW5pbmcgYmVhbnMgdGhhdCBoYXZlIHByb3BlcnRpZXMgdG8KKyBwcm92aWRlIGJvdGggdGhlIHZhbHVlcyBhbmQgdGhlIGxhYmVscyAoaWRlbnRpZmllZCBieSB0aGUKKyA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYW5kIDxjb2RlPmxhYmVsUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMpLjwvREw+Cis8SFI+CisKKzxIMz4KK2xhYmVsTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5sYWJlbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyB0aGUgbGFiZWxzIGNvbGxlY3Rpb24uPC9ETD4KKzxIUj4KKworPEgzPgorbGFiZWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5sYWJlbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBiZWFuIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIGxhYmVscyBjb2xsZWN0aW9uLjwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIHRoZSB2YWx1ZXMgY29sbGVjdGlvbi48L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gdXNlIHRvIGJ1aWxkIHRoZSB2YWx1ZXMgY29sbGVjdGlvbi48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK3RleHQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSB0ZXh0IHRvIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgdGhpcyB0YWcgKGlmIGFueSk8L0RMPgorPEhSPgorCis8SDM+CitidW5kbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YnVuZGxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGNvbnRhaW5pbmcgb3VyIG1lc3NhZ2UKKyByZXNvdXJjZXMuPC9ETD4KKzxIUj4KKworPEgzPgorZGlzYWJsZWQ8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+ZGlzYWJsZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SXMgdGhpcyBvcHRpb24gZGlzYWJsZWQ/PC9ETD4KKzxIUj4KKworPEgzPgora2V5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmtleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUga2V5IHVzZWQgdG8gbG9vayB1cCB0aGUgdGV4dCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgZm9yIHRoaXMKKyBvcHRpb24sIGlmIGFueS48L0RMPgorPEhSPgorCis8SDM+Citsb2NhbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgTG9jYWxlIHRvIGJlIHVzZWQgZm9yCisgbG9va2luZyB1cCBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcy48L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmVyIHZhbHVlIGZvciB0aGlzIG9wdGlvbiwgYWxzbyB1c2VkIHRvIG1hdGNoIGFnYWluc3QgdGhlCisgY3VycmVudCBwcm9wZXJ0eSB2YWx1ZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGlzIG9wdGlvbiBzaG91bGQgYmUKKyBtYXJrZWQgYXMgc2VsZWN0ZWQuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5QYXNzd29yZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5QYXNzd29yZFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmFkaW9UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmFkaW9UYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHByb3BlcnR5IG5hbWUgZm9yIHRoaXMgZmllbGQuPC9ETD4KKzxIUj4KKworPEgzPgordGV4dDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50ZXh0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZlciB2YWx1ZSBmb3IgdGhpcyBvcHRpb24uPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SZXNldFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SZXNldFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBpbnB1dCBmaWVsZC48L0RMPgorPEhSPgorCis8SDM+Cit0ZXh0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KS48L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJld3JpdGVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SZXdyaXRlVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TZWxlY3RUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlNlbGVjdFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CittYXRjaDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZ1tdIDxCPm1hdGNoPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhY3R1YWwgdmFsdWVzIHdlIHdpbGwgbWF0Y2ggYWdhaW5zdCwgY2FsY3VsYXRlZCBpbiBkb1N0YXJ0VGFnKCkuPC9ETD4KKzxIUj4KKworPEgzPgorbXVsdGlwbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bXVsdGlwbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIG11bHRpcGxlIHNlbGVjdGlvbnMgYmUgYWxsb3dlZD8gIEFueSBub24tbnVsbCB2YWx1ZSB3aWxsCisgdHJpZ2dlciByZW5kZXJpbmcgdGhpcy48L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS48L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLjwvREw+Cis8SFI+CisKKzxIMz4KK3NhdmVCb2R5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNhdmVCb2R5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzYXZlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcuPC9ETD4KKzxIUj4KKworPEgzPgorc2l6ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zaXplPC9CPjwvUFJFPgorPERMPgorPEREPkhvdyBtYW55IGF2YWlsYWJsZSBvcHRpb25zIHNob3VsZCBiZSBkaXNwbGF5ZWQgd2hlbiB0aGlzIGVsZW1lbnQKKyBpcyByZW5kZXJlZD88L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgdG8gY29tcGFyZSB3aXRoIGZvciBtYXJraW5nIGFuIG9wdGlvbiBzZWxlY3RlZC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlN1Ym1pdFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU3VibWl0VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgaW5wdXQgZmllbGQuPC9ETD4KKzxIUj4KKworPEgzPgordGV4dDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50ZXh0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0YXJlYVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0YXJlYVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlRleHRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8SFIgU0laRT0iNCIgTk9TSEFERT4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBBTElHTj0iY2VudGVyIj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5QYWNrYWdlPC9CPiA8Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZTwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgdG8gd2hpY2ggdGhlIHZhcmlhYmxlIHNwZWNpZmllZCBieSBvdGhlciBhdHRyaWJ1dGVzIG9mIHRoaXMKKyB0YWcgd2lsbCBiZSBjb21wYXJlZC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2Nvb2tpZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5jb29raWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGNvb2tpZSB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuPC9ETD4KKzxIUj4KKworPEgzPgoraGVhZGVyPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmhlYWRlcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgSFRUUCByZXF1ZXN0IGhlYWRlciB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBKU1AgYmVhbiB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUgKGlmCisgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQpLCBvciB3aG9zZSBwcm9wZXJ0eSBpcyB0byBiZQorIGFjY2Vzc2VkIChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkKS48L0RMPgorPEhSPgorCis8SDM+CitwYXJhbWV0ZXI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1ldGVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBIVFRQIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGJlIHVzZWQgYXMgYSB2YXJpYWJsZS48L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBwcm9wZXJ0eSB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuPC9ETD4KKzxIUj4KKworPEgzPgorcm9sZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5yb2xlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzZWN1cml0eSByb2xlIHRvIGJlIGNoZWNrZWQgZm9yLjwvREw+Cis8SFI+CisKKzxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIG5hbWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBvcgorICJhbnkgc2NvcGUiIGlmIG51bGwuPC9ETD4KKzxIUj4KKworPEgzPgordXNlcjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj51c2VyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB1c2VyIHByaW5jaXBhbCBuYW1lIHRvIGJlIGNoZWNrZWQgZm9yLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkVxdWFsVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuRXF1YWxUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Gb3J3YXJkVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Gb3J3YXJkVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbG9naWNhbCBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBlbnRyeSB0byBiZQorIGxvb2tlZCB1cC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5HcmVhdGVyRXF1YWxUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuR3JlYXRlckVxdWFsVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuR3JlYXRlclRoYW5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5HcmVhdGVyVGhhblRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkl0ZXJhdGVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkl0ZXJhdGVUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgoraXRlcmF0b3I8L0gzPgorPFBSRT4KK2phdmEudXRpbC5JdGVyYXRvciA8Qj5pdGVyYXRvcjwvQj48L1BSRT4KKzxETD4KKzxERD5JdGVyYXRvciBvZiB0aGUgZWxlbWVudHMgb2YgdGhpcyBjb2xsZWN0aW9uLCB3aGlsZSB3ZSBhcmUgYWN0dWFsbHkKKyBydW5uaW5nLjwvREw+Cis8SFI+CisKKzxIMz4KK2xlbmd0aENvdW50PC9IMz4KKzxQUkU+CitpbnQgPEI+bGVuZ3RoQ291bnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG51bWJlciBvZiBlbGVtZW50cyB3ZSBoYXZlIGFscmVhZHkgcmVuZGVyZWQuPC9ETD4KKzxIUj4KKworPEgzPgorbGVuZ3RoVmFsdWU8L0gzPgorPFBSRT4KK2ludCA8Qj5sZW5ndGhWYWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWN0dWFsIGxlbmd0aCB2YWx1ZSAoY2FsY3VsYXRlZCBpbiB0aGUgc3RhcnQgdGFnKS48L0RMPgorPEhSPgorCis8SDM+CitvZmZzZXRWYWx1ZTwvSDM+Cis8UFJFPgoraW50IDxCPm9mZnNldFZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhY3R1YWwgb2Zmc2V0IHZhbHVlIChjYWxjdWxhdGVkIGluIHRoZSBzdGFydCB0YWcpLjwvREw+Cis8SFI+CisKKzxIMz4KK3N0YXJ0ZWQ8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+c3RhcnRlZDwvQj48L1BSRT4KKzxETD4KKzxERD5IYXMgdGhpcyB0YWcgaW5zdGFuY2UgYmVlbiBzdGFydGVkPzwvREw+Cis8SFI+CisKKzxIMz4KK2NvbGxlY3Rpb248L0gzPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QgPEI+Y29sbGVjdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29sbGVjdGlvbiBvdmVyIHdoaWNoIHdlIHdpbGwgYmUgaXRlcmF0aW5nLjwvREw+Cis8SFI+CisKKzxIMz4KK2lkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdG8gYmUgZXhwb3NlZC48L0RMPgorPEhSPgorCis8SDM+CitpbmRleElkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmluZGV4SWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0byBiZSBleHBvc2VkIGFzIHRoZSBjdXJyZW50IGluZGV4LjwvREw+Cis8SFI+CisKKzxIMz4KK2xlbmd0aDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5sZW5ndGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGxlbmd0aCB2YWx1ZSBvciBhdHRyaWJ1dGUgbmFtZSAoPD0wIG1lYW5zIG5vIGxpbWl0KS48L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGNvbGxlY3Rpb24gb3Igb3duaW5nIGJlYW4uPC9ETD4KKzxIUj4KKworPEgzPgorb2Zmc2V0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9mZnNldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3RhcnRpbmcgb2Zmc2V0ICh6ZXJvIHJlbGF0aXZlKS48L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBjb250YWluaW5nIHRoZSBjb2xsZWN0aW9uLjwvREw+Cis8SFI+CisKKzxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIG5hbWUgcHJvcGVydHksIGlmIGFueS48L0RMPgorPEhSPgorCis8SDM+Cit0eXBlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmEgY2xhc3Mgb2YgZWFjaCBleHBvc2VkIGVsZW1lbnQgb2YgdGhlIGNvbGxlY3Rpb24uPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTGVzc0VxdWFsVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzRXF1YWxUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkxlc3NFcXVhbFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkxlc3NUaGFuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTGVzc1RoYW5UYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NYXRjaFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1hdGNoVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2xvY2F0aW9uPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmxvY2F0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgbWF0Y2ggbXVzdCBleGlzdCAoPGNvZGU+c3RhcnQ8L2NvZGU+IG9yCisgPGNvZGU+ZW5kPC9jb2RlPiksIG9yIDxjb2RlPm51bGw8L2NvZGU+IGZvciBhbnl3aGVyZS48L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgdG8gd2hpY2ggdGhlIHZhcmlhYmxlIHNwZWNpZmllZCBieSBvdGhlciBhdHRyaWJ1dGVzIG9mIHRoaXMKKyB0YWcgd2lsbCBiZSBtYXRjaGVkLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdEVxdWFsVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90RXF1YWxUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RNYXRjaFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdE1hdGNoVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90UHJlc2VudFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90UHJlc2VudFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlByZXNlbnRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlByZXNlbnRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5SZWRpcmVjdFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlJlZGlyZWN0VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2FuY2hvcjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hbmNob3I8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFuY2hvciB0byBiZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLjwvREw+Cis8SFI+CisKKzxIMz4KK2ZvcndhcmQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Zm9yd2FyZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbG9naWNhbCBmb3J3YXJkIG5hbWUgZnJvbSB3aGljaCB0byByZXRyaWV2ZSB0aGUgcmVkaXJlY3QgVVJJLjwvREw+Cis8SFI+CisKKzxIMz4KK2hyZWY8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aHJlZjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVkaXJlY3QgVVJJLjwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSlNQIGJlYW4gbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy48L0RMPgorPEhSPgorCis8SDM+CitwYWdlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQtcmVsYXRpdmUgcGFnZSBVUkwgKGJlZ2lubmluZyB3aXRoIGEgc2xhc2gpIHRvIHdoaWNoCisgdGhpcyByZWRpcmVjdCB3aWxsIGJlIHJlbmRlcmVkLjwvREw+Cis8SFI+CisKKzxIMz4KK3BhcmFtSWQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1JZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciByZXF1ZXN0IHBhcmFtZXRlciBuYW1lIHRvIGdlbmVyYXRlLjwvREw+Cis8SFI+CisKKzxIMz4KK3BhcmFtTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gbmFtZS48L0RMPgorPEhSPgorCis8SDM+CitwYXJhbVByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gcHJvcGVydHkuPC9ETD4KKzxIUj4KKworPEgzPgorcGFyYW1TY29wZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbVNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHNjb3BlLjwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKU1AgYmVhbiBwcm9wZXJ0eSBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLjwvREw+Cis8SFI+CisKKzxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIG5hbWUgcHJvcGVydHksIGlmIGFueS48L0RMPgorPEhSPgorCis8SDM+Cit0cmFuc2FjdGlvbjwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj50cmFuc2FjdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5JbmNsdWRlIG91ciB0cmFuc2FjdGlvbiBjb250cm9sIHRva2VuPzwvREw+CisKKzxQPgorPEhSIFNJWkU9IjQiIE5PU0hBREU+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQUxJR049ImNlbnRlciI+PEZPTlQgU0laRT0iKzIiPgorPEI+UGFja2FnZTwvQj4gPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkdldFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5HZXRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorZmx1c2g8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+Zmx1c2g8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHdlIGZsdXNoIGJlZm9yZSBpbmNsdWRpbmcgdGhpcyB0ZXh0PzwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgY29udGVudCB0aGF0IHRoaXMgdGFnIGluY2x1ZGVzIChvciBwcmludHMpLjwvREw+Cis8SFI+CisKKzxIMz4KK3JvbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cm9sZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcm9sZSB0aGF0IHRoZSB1c2VyIG11c3QgYmUgaW4gdG8gcmV0cmlldmUgY29udGVudC48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5JbnNlcnRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuSW5zZXJ0VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK21hcDwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj5Db250ZW50TWFwPC9BPiA8Qj5tYXA8L0I+PC9QUkU+Cis8REw+Cis8REQ+RWFjaCBpbnNlcnQgdGFnIGhhcyBhIG1hcCBvZiBjb250ZW50LjwvREw+Cis8SFI+CisKKzxIMz4KK3RlbXBsYXRlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnRlbXBsYXRlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBVUkkgb2YgdGhlIHRlbXBsYXRlLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLlB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5QdXRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZW50J3MgbmFtZS48L0RMPgorPEhSPgorCis8SDM+Cityb2xlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnJvbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJvbGUgdGhhdCB0aGUgdXNlciBtdXN0IGJlIGluIHRvIHN0b3JlIGNvbnRlbnQuPC9ETD4KKzxIUj4KKworPEgzPgorY29udGVudDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5jb250ZW50PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZW50J3MgVVJJIChvciB0ZXh0KS48L0RMPgorPEhSPgorCis8SDM+CitkaXJlY3Q8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+ZGlyZWN0PC9CPjwvUFJFPgorPERMPgorPEREPkRldGVybWluZXMgd2hldGhlciBjb250ZW50IGlzIGluY2x1ZGVkIChmYWxzZSkgb3IgcHJpbnRlZCAodHJ1ZSkuCisgQ29udGVudCBpcyBpbmNsdWRlZCAoZmFsc2UpIGJ5IGRlZmF1bHQuPC9ETD4KKworPFA+Cis8SFIgU0laRT0iNCIgTk9TSEFERT4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBBTElHTj0iY2VudGVyIj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5QYWNrYWdlPC9CPiA8Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50PC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2NvbnRlbnQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Y29udGVudDwvQj48L1BSRT4KKzxETD4KKzxERD5UZW1wbGF0ZXMgcmVnYXJkIHRoaXMgYXMgY29udGVudCB0byBiZSBlaXRoZXIgaW5jbHVkZWQgb3IgCisgIHByaW50ZWQgZGlyZWN0bHkuPGJyPiBUaGlzIGlzIGEgYmxhbmsgZmluYWwgdGhhdCBpcworICBzZXQgYXQgY29uc3RydWN0aW9uLjwvREw+Cis8SFI+CisKKzxIMz4KK2RpcmVjdDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5kaXJlY3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+UmVwcmVzZW50cyBhIGJvb2xlYW47IGlmIHRydWUsIGNvbnRlbnQgaXMgaW5jbHVkZWQsIG90aGVyd2lzZQorICAgY29udGVudCBpcyBwcmludGVkLjxicj5UaGlzIGlzIGEgYmxhbmsgZmluYWwgdGhhdCBpcyBzZXQgYXQgCisgIGNvbnN0cnVjdGlvbi48YnI+VGhpcyBpcyBhIHN0cmluZyBpbnN0ZWFkIG9mIGEgYm9vbGVhbiBhcworICBhIGNvbnZlbmllbmNlIGZvciB0aGUgdGFncywgd2hvc2UgY29ycmVzcG9uZGluZyBhdHRyaWJ1dGUKKyAgaXMgYSBzdHJpbmcuPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudE1hcDwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CittYXA8L0gzPgorPFBSRT4KK2phdmEudXRpbC5IYXNoTWFwIDxCPm1hcDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWFwLjwvREw+CisKKzxQPgorPEhSIFNJWkU9IjQiIE5PU0hBREU+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQUxJR049ImNlbnRlciI+PEZPTlQgU0laRT0iKzIiPgorPEI+UGFja2FnZTwvQj4gPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbWVzc2FnZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5tZXNzYWdlPC9CPjwvUFJFPgorPERMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CittZXNzYWdlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm1lc3NhZ2U8L0I+PC9QUkU+Cis8REw+Cis8L0RMPgorCis8UD4KKzxIUiBTSVpFPSI0IiBOT1NIQURFPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIEFMSUdOPSJjZW50ZXIiPjxGT05UIFNJWkU9IisyIj4KKzxCPlBhY2thZ2U8L0I+IDxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkFycmF5U3RhY2siPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcnJheVN0YWNrLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuQXJyYXlTdGFjazwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitsaXN0PC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuQXJyYXlMaXN0IDxCPmxpc3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHVuZGVybHlpbmcgY29sbGVjdGlvbiBjbGFzcy48L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdEFycmF5TGlzdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RBcnJheUxpc3QuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0QXJyYXlMaXN0PC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2xpc3Q8L0gzPgorPFBSRT4KK2phdmEudXRpbC5BcnJheUxpc3QgPEI+bGlzdDwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIHVuZGVybHlpbmcgbGlzdCB3ZSBhcmUgbWFuYWdpbmcuPC9ETD4KKzxIUj4KKworPEgzPgorZmFzdDwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5mYXN0PC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5BcmUgd2Ugb3BlcmF0aW5nIGluICJmYXN0IiBtb2RlPzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0SGFzaE1hcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RIYXNoTWFwLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdEhhc2hNYXA8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbWFwPC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuSGFzaE1hcCA8Qj5tYXA8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSB1bmRlcmx5aW5nIG1hcCB3ZSBhcmUgbWFuYWdpbmcuPC9ETD4KKzxIUj4KKworPEgzPgorZmFzdDwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5mYXN0PC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5BcmUgd2Ugb3BlcmF0aW5nIGluICJmYXN0IiBtb2RlPzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5GYXN0VHJlZU1hcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Zhc3RUcmVlTWFwLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRmFzdFRyZWVNYXA8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbWFwPC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuVHJlZU1hcCA8Qj5tYXA8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSB1bmRlcmx5aW5nIG1hcCB3ZSBhcmUgbWFuYWdpbmcuPC9ETD4KKzxIUj4KKworPEgzPgorZmFzdDwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5mYXN0PC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5BcmUgd2Ugb3BlcmF0aW5nIGluICJmYXN0IiBtb2RlPzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXM8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorY29uZmlnPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbmZpZzwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdXNlZCB0byBpbml0aWFsaXplIHRoaXMgTWVzc2FnZVJlc291cmNlcy48L0RMPgorPEhSPgorCis8SDM+CitkZWZhdWx0TG9jYWxlPC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuTG9jYWxlIDxCPmRlZmF1bHRMb2NhbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgTG9jYWxlIGZvciBvdXIgZW52aXJvbm1lbnQuPC9ETD4KKzxIUj4KKworPEgzPgorZmFjdG9yeTwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4gPEI+ZmFjdG9yeTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IHRoYXQgY3JlYXRlZCB0aGlzIGluc3RhbmNlLjwvREw+Cis8SFI+CisKKzxIMz4KK2Zvcm1hdHM8L0gzPgorPFBSRT4KK2phdmEudXRpbC5IYXNoTWFwIDxCPmZvcm1hdHM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBwcmV2aW91c2x5IGNyZWF0ZWQgTWVzc2FnZUZvcm1hdCBvYmplY3RzLCBrZXllZCBieSB0aGUKKyBrZXkgY29tcHV0ZWQgaW4gPGNvZGU+bWVzc2FnZUtleSgpPC9jb2RlPi48L0RMPgorPEhSPgorCis8SDM+CityZXR1cm5OdWxsPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPnJldHVybk51bGw8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHdlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPiBpbnN0ZWFkIG9mIGFuIGVycm9yIG1lc3NhZ2Ugc3RyaW5nCisgaWYgYW4gdW5rbm93biBMb2NhbGUgb3Iga2V5IGlzIHJlcXVlc3RlZD88L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK3JldHVybk51bGw8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+cmV0dXJuTnVsbDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgInJldHVybiBudWxsIiBwcm9wZXJ0eSB2YWx1ZSB0byB3aGljaCBuZXdseSBjcmVhdGVkCisgTWVzc2FnZVJlc291cmNlc3Mgc2hvdWxkIGJlIGluaXRpYWxpemVkLjwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbG9jYWxlczwvSDM+Cis8UFJFPgoramF2YS51dGlsLkhhc2hNYXAgPEI+bG9jYWxlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIGxvY2FsZSBrZXlzIGZvciB3aGljaCB3ZSBoYXZlIGFscmVhZHkgbG9hZGVkIG1lc3NhZ2VzLCBrZXllZAorIGJ5IHRoZSB2YWx1ZSBjYWxjdWxhdGVkIGluIDxjb2RlPmxvY2FsZUtleSgpPC9jb2RlPi48L0RMPgorPEhSPgorCis8SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgoramF2YS51dGlsLkhhc2hNYXAgPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNhY2hlIG9mIG1lc3NhZ2VzIHdlIGhhdmUgYWNjdW11bGF0ZWQgb3ZlciB0aW1lLCBrZXllZCBieSB0aGUKKyB2YWx1ZSBjYWxjdWxhdGVkIGluIDxjb2RlPm1lc3NhZ2VLZXkoKTwvY29kZT4uPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+UGFja2FnZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJpbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJoZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9ImluZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0ic2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDEgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjAuMi9hcGkvc3R5bGVzaGVldC5jc3MgYi9zdHJ1dHMtZG9jLTEuMC4yL2FwaS9zdHlsZXNoZWV0LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWY1NzY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjAuMi9hcGkvc3R5bGVzaGVldC5jc3MKQEAgLTAsMCArMSwyOSBAQAorLyogSmF2YWRvYyBzdHlsZSBzaGVldCAqLworCisvKiBEZWZpbmUgY29sb3JzLCBmb250cyBhbmQgb3RoZXIgc3R5bGUgYXR0cmlidXRlcyBoZXJlIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0cyAgKi8KKworLyogUGFnZSBiYWNrZ3JvdW5kIGNvbG9yICovCitib2R5IHsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiB9CisKKy8qIFRhYmxlIGNvbG9ycyAqLworLlRhYmxlSGVhZGluZ0NvbG9yICAgICB7IGJhY2tncm91bmQ6ICNDQ0NDRkYgfSAvKiBEYXJrIG1hdXZlICovCisuVGFibGVTdWJIZWFkaW5nQ29sb3IgIHsgYmFja2dyb3VuZDogI0VFRUVGRiB9IC8qIExpZ2h0IG1hdXZlICovCisuVGFibGVSb3dDb2xvciAgICAgICAgIHsgYmFja2dyb3VuZDogI0ZGRkZGRiB9IC8qIFdoaXRlICovCisKKy8qIEZvbnQgdXNlZCBpbiBsZWZ0LWhhbmQgZnJhbWUgbGlzdHMgKi8KKy5GcmFtZVRpdGxlRm9udCAgIHsgZm9udC1zaXplOiBub3JtYWw7IGZvbnQtZmFtaWx5OiBub3JtYWwgfQorLkZyYW1lSGVhZGluZ0ZvbnQgeyBmb250LXNpemU6IG5vcm1hbDsgZm9udC1mYW1pbHk6IG5vcm1hbCB9CisuRnJhbWVJdGVtRm9udCAgICB7IGZvbnQtc2l6ZTogbm9ybWFsOyBmb250LWZhbWlseTogbm9ybWFsIH0KKworLyogRXhhbXBsZSBvZiBzbWFsbGVyLCBzYW5zLXNlcmlmIGZvbnQgaW4gZnJhbWVzICovCisvKiAuRnJhbWVJdGVtRm9udCAgeyBmb250LXNpemU6IDEwcHQ7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmIH0gKi8KKworLyogTmF2aWdhdGlvbiBiYXIgZm9udHMgYW5kIGNvbG9ycyAqLworLk5hdkJhckNlbGwxICAgIHsgYmFja2dyb3VuZC1jb2xvcjojRUVFRUZGO30vKiBMaWdodCBtYXV2ZSAqLworLk5hdkJhckNlbGwxUmV2IHsgYmFja2dyb3VuZC1jb2xvcjojMDAwMDhCO30vKiBEYXJrIEJsdWUgKi8KKy5OYXZCYXJGb250MSAgICB7IGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBjb2xvcjojMDAwMDAwO30KKy5OYXZCYXJGb250MVJldiB7IGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBjb2xvcjojRkZGRkZGO30KKworLk5hdkJhckNlbGwyICAgIHsgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRjt9CisuTmF2QmFyQ2VsbDMgICAgeyBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGO30KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL2FsbGNsYXNzZXMtZnJhbWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9hbGxjbGFzc2VzLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2RjYTZkNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9hbGxjbGFzc2VzLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw1OTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitBbGwgQ2xhc3NlcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0ic3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQWxsIENsYXNzZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+Cis8Qj5BbGwgQ2xhc3NlczwvQj48L0ZPTlQ+Cis8QlI+CisKKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uQ29tcG9uZW50U2VydmxldDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25Db25maWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db250cm9sbGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uQ29udHJvbGxlcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkVycm9yPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkVycm9yczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25FeGNlcHRpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkZvcm08L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25Gb3JtQmVhbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25Gb3JtQmVhbnM8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkZvcndhcmQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25Gb3J3YXJkczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uTWFwcGluZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25NYXBwaW5nRmFjdG9yeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbk1hcHBpbmdGYWN0b3J5PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uTWFwcGluZ3M8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbk1lc3NhZ2U8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25NZXNzYWdlczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uU2VydmxldDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvblNlcnZsZXRXcmFwcGVyPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BZGREYXRhU291cmNlUHJvcGVydHlSdWxlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFkZFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWdQYXJlbnQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5BZGRUYWdQYXJlbnQ8L0k+PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcHBFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BcHBFeGNlcHRpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQXBwbGljYXRpb25Db25maWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BcHBsaWNhdGlvbkNvbmZpZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5BdHRyaWJ1dGVEZWZpbml0aW9uPC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QXR0cmlidXRlVG9TY29wZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkJhc2VGaWVsZFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5CYXNlSW5wdXRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QmFzZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkJ1dHRvblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNhbmNlbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q2hlY2tib3hUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29tcGFyZVRhZ0Jhc2U8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+Q29tcG9uZW50Q29uc3RhbnRzPC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db21wb25lbnRDb250ZXh0PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0k+PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29uZmlnSGVscGVyPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPjxJPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnUnVsZVNldC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbmZpZ1J1bGVTZXQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db25zdGFudHM8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29udGVudDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29udGVudE1hcDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbnRlbnRNYXBTdGFjazwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5Db250cm9sbGVyPC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXJTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29udHJvbGxlclN1cHBvcnQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db29raWVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db29raWVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRhdGFTb3VyY2VDb25maWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGVmaW5lVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGVpLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGVmaW5lVGVpPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbkF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRlZmluaXRpb25BdHRyaWJ1dGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL0RlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRlZmluaXRpb25OYW1lQXR0cmlidXRlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+RGVmaW5pdGlvbnNGYWN0b3J5PC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGVmaW5pdGlvbnNVdGlsPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EZWZpbml0aW9uVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EaXJlY3RTdHJpbmdBdHRyaWJ1dGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EaXNrRmlsZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGlzcGF0Y2hBY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EeW5hQWN0aW9uRm9ybTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkR5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RHluYVZhbGlkYXRvckZvcm08L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9FbXB0eUl0ZXJhdG9yLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RW1wdHlJdGVyYXRvcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkVtcHR5VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RXF1YWxUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5FcnJvck1lc3NhZ2VzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RXJyb3JzVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkV4Y2VwdGlvbkNvbmZpZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9FeGNlcHRpb25IYW5kbGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RXhjZXB0aW9uSGFuZGxlcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkZhY3RvcnlTZXQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5GaWVsZENoZWNrczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZpbGVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5GaWxlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Rm9ybUJlYW5Db25maWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5Gb3JtRmlsZTwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkZvcm1UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Gb3J3YXJkQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Gb3J3YXJkQ29uZmlnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Rm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkZvcndhcmRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkZyYW1lVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkdlbmVyaWNEYXRhU291cmNlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkdldEF0dHJpYnV0ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5HZXRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+R2V0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkdsb2JhbHM8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+R3JlYXRlckVxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+R3JlYXRlclRoYW5UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5IZWFkZXJUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5IZWFkZXJUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5IaWRkZW5UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SHRtbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JMThuRmFjdG9yeVNldDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSW1hZ2VCdXR0b25CZWFuLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SW1hZ2VCdXR0b25CZWFuPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JbWFnZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkltZ1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JbXBvcnRBdHRyaWJ1dGVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JbmNsdWRlQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkluY2x1ZGVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGVpLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SW5jbHVkZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Jbml0RGVmaW5pdGlvbnNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SW5zZXJ0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkluc2VydFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPjxJPkluc2VydFRhZy5UYWdIYW5kbGVyPC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SXRlcmF0ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SXRlcmF0ZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SXRlcmF0b3JBZGFwdGVyPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TGFiZWxWYWx1ZUJlYW48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TGVzc0VxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TGVzc1RoYW5UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TGlua1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Mb29rdXBEaXNwYXRjaEFjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk1hdGNoVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPjxJPk1lbnVJdGVtPC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TWVzc2FnZXNOb3RQcmVzZW50VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk1lc3NhZ2VzUHJlc2VudFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TWVzc2FnZXNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk1lc3NhZ2VzVGVpPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk1lc3NhZ2VUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+TW9kdWxlQ29uZmlnPC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TW9kdWxlQ29uZmlnRmFjdG9yeTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Nb2R1bGVFeGNlcHRpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk11bHRpYm94VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NdWx0aXBhcnRFbGVtZW50PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk11bHRpcGFydFZhbHVlU3RyZWFtPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkQ2hlY2tib3hUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkRGVmaW5lVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZERlZmluZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRW1wdHlUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRFbXB0eVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRXF1YWxUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRFcXVhbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRFcnJvcnNUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRFcnJvcnNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZEZpbGVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRm9ybVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZEZvcm1UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJFcXVhbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZEdyZWF0ZXJFcXVhbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRHcmVhdGVyVGhhblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRIaWRkZW5UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1hZ2VUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRJbWFnZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWdUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRJbWdUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRJdGVyYXRlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGVpLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkSXRlcmF0ZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkTGVzc0VxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZExlc3NUaGFuVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRMaW5rVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNYXRjaFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZE1hdGNoVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZE1lc3NhZ2VzVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRNZXNzYWdlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkTXVsdGlib3hUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+TmVzdGVkTmFtZVN1cHBvcnQ8L0k+PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFbXB0eVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZE5vdEVtcHR5VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZE5vdEVxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZE5vdE1hdGNoVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkTm90UHJlc2VudFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRPcHRpb25zVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQYXJlbnRTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+TmVzdGVkUGFyZW50U3VwcG9ydDwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRQYXNzd29yZFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZFByZXNlbnRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkUHJvcGVydHlIZWxwZXI8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPjxJPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkUHJvcGVydHlUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRSYWRpb1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUmVmZXJlbmNlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkUmVmZXJlbmNlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSb290VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkUm9vdFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTZWxlY3RUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRTZWxlY3RUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZFNpemVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkU3VibWl0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+TmVzdGVkVGFnU3VwcG9ydDwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dGFyZWFUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRUZXh0YXJlYVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkVGV4dFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkV3JpdGVOZXN0aW5nVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFdyaXRlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkV3JpdGVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL05vT3BBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Ob09wQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Ob3RFbXB0eVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5vdEVxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Tm90TWF0Y2hUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5vdFByZXNlbnRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk9wdGlvbnNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5PcHRpb25UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UGFnZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QYWdlVGVpPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UGFyYW1ldGVyVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UGFyYW1ldGVyVGVpPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUGFzc3dvcmRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QYXNzd29yZFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1BhdGhBdHRyaWJ1dGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QYXRoQXR0cmlidXRlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPjxJPlBsdWdJbjwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UGx1Z0luQ29uZmlnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJblNldFByb3BlcnR5UnVsZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlBsdWdJblNldFByb3BlcnR5UnVsZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UHJlc2VudFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UHV0TGlzdFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnUGFyZW50Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+UHV0TGlzdFRhZ1BhcmVudDwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UHV0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlB1dFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWdQYXJlbnQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5QdXRUYWdQYXJlbnQ8L0k+PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SYWRpb1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZWRpcmVjdFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1JlbG9hZERlZmluaXRpb25zQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVsb2FkRGVmaW5pdGlvbnNBY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVxdWVzdFV0aWxzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZXNldFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZXNvdXJjZXM8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlc291cmNlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZXNvdXJjZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlc3BvbnNlVXRpbHM8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmV3cml0ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlNlbGVjdFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9TZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlNlc3Npb25BY3Rpb25NYXBwaW5nPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1NldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TaW1wbGVNZW51SXRlbTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TaXplVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlNpemVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TdHJ1dHNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TdHJ1dHNUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlN0cnV0c1ZhbGlkYXRvcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlN0cnV0c1ZhbGlkYXRvclV0aWw8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TdWJtaXRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1N3aXRjaEFjdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlN3aXRjaEFjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VGFnVXRpbHM8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlRleHRhcmVhVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9UZXh0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VGV4dFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UZXh0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlRpbGVzQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UaWxlc0V4Y2VwdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VGlsZXNQbHVnaW48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1NlcnZsZXQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UaWxlc1NlcnZsZXQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UaWxlc1V0aWw8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VGlsZXNVdGlsSW1wbDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UaWxlc1V0aWxTdHJ1dHNJbXBsPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Ub2tlblByb2Nlc3NvcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VcmxDb250cm9sbGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VXJsQ29udHJvbGxlcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Vc2VBdHRyaWJ1dGVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGVpLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VXNlQXR0cmlidXRlVGVpPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5WYWxpZGF0b3JBY3Rpb25Gb3JtPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5WYWxpZGF0b3JGb3JtPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlZhbGlkYXRvclBsdWdJbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVmlld0RlZmluaXRpb25zQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Vmlld0RlZmluaXRpb25zQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Xcml0ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1hodG1sVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+WGh0bWxUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlhtbEF0dHJpYnV0ZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlhtbERlZmluaXRpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbExpc3RBdHRyaWJ1dGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5YbWxMaXN0QXR0cmlidXRlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5YbWxQYXJzZXI8L0E+Cis8QlI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM0NGEzOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbApAQCAtMCwwICsxLDU5NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1MiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0FsbCBDbGFzc2VzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSJzdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJBbGwgQ2xhc3NlcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KKzxCPkFsbCBDbGFzc2VzPC9CPjwvRk9OVD4KKzxCUj4KKworPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIiBUQVJHRVQ9IiI+QWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sIiBUQVJHRVQ9IiI+QWN0aW9uQ29tcG9uZW50U2VydmxldDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCIgVEFSR0VUPSIiPkFjdGlvbkNvbmZpZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbnRyb2xsZXIuaHRtbCIgVEFSR0VUPSIiPkFjdGlvbkNvbnRyb2xsZXI8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCIgVEFSR0VUPSIiPkFjdGlvbkVycm9yPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIiBUQVJHRVQ9IiI+QWN0aW9uRXJyb3JzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9IiI+QWN0aW9uRXhjZXB0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCIgVEFSR0VUPSIiPkFjdGlvbkZvcm08L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCIgVEFSR0VUPSIiPkFjdGlvbkZvcm1CZWFuPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIiBUQVJHRVQ9IiI+QWN0aW9uRm9ybUJlYW5zPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCIgVEFSR0VUPSIiPkFjdGlvbkZvcndhcmQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCIgVEFSR0VUPSIiPkFjdGlvbkZvcndhcmRzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSIiPkFjdGlvbk1hcHBpbmc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uTWFwcGluZ0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSIiPkFjdGlvbk1hcHBpbmdGYWN0b3J5PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiIFRBUkdFVD0iIj5BY3Rpb25NYXBwaW5nczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlLmh0bWwiIFRBUkdFVD0iIj5BY3Rpb25NZXNzYWdlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiIFRBUkdFVD0iIj5BY3Rpb25NZXNzYWdlczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiIFRBUkdFVD0iIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwiIFRBUkdFVD0iIj5BY3Rpb25TZXJ2bGV0V3JhcHBlcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BZGREYXRhU291cmNlUHJvcGVydHlSdWxlLmh0bWwiIFRBUkdFVD0iIj5BZGREYXRhU291cmNlUHJvcGVydHlSdWxlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZy5odG1sIiBUQVJHRVQ9IiI+QWRkVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZ1BhcmVudC5odG1sIiBUQVJHRVQ9IiI+PEk+QWRkVGFnUGFyZW50PC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXBwRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iIj5BcHBFeGNlcHRpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQXBwbGljYXRpb25Db25maWcuaHRtbCIgVEFSR0VUPSIiPkFwcGxpY2F0aW9uQ29uZmlnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sIiBUQVJHRVQ9IiI+PEk+QXR0cmlidXRlRGVmaW5pdGlvbjwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQXR0cmlidXRlVG9TY29wZVRhZy5odG1sIiBUQVJHRVQ9IiI+QXR0cmlidXRlVG9TY29wZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIiBUQVJHRVQ9IiI+QmFzZUZpZWxkVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCIgVEFSR0VUPSIiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiIFRBUkdFVD0iIj5CYXNlSW5wdXRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwiIFRBUkdFVD0iIj5CYXNlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCIgVEFSR0VUPSIiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCIgVEFSR0VUPSIiPkJ1dHRvblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIiBUQVJHRVQ9IiI+Q2FuY2VsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCIgVEFSR0VUPSIiPkNoZWNrYm94VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIiBUQVJHRVQ9IiI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCIgVEFSR0VUPSIiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCIgVEFSR0VUPSIiPkNvbXBhcmVUYWdCYXNlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIiBUQVJHRVQ9IiI+PEk+Q29tcG9uZW50Q29uc3RhbnRzPC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCIgVEFSR0VUPSIiPkNvbXBvbmVudENvbnRleHQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiIFRBUkdFVD0iIj5Db21wb25lbnREZWZpbml0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iIj48ST5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0k+PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiIFRBUkdFVD0iIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIiBUQVJHRVQ9IiI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIiBUQVJHRVQ9IiI+Q29uZmlnSGVscGVyPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIiBUQVJHRVQ9IiI+PEk+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdSdWxlU2V0Lmh0bWwiIFRBUkdFVD0iIj5Db25maWdSdWxlU2V0PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwiIFRBUkdFVD0iIj5Db25zdGFudHM8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiIFRBUkdFVD0iIj5Db250ZW50PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9IiI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIiBUQVJHRVQ9IiI+Q29udGVudE1hcDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sIiBUQVJHRVQ9IiI+Q29udGVudE1hcFN0YWNrPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIiBUQVJHRVQ9IiI+PEk+Q29udHJvbGxlcjwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIiBUQVJHRVQ9IiI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXJTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iIj5Db250cm9sbGVyU3VwcG9ydDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIiBUQVJHRVQ9IiI+Q29va2llVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGVpLmh0bWwiIFRBUkdFVD0iIj5Db29raWVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIiBUQVJHRVQ9IiI+RGF0YVNvdXJjZUNvbmZpZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL0RlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iIj5EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIiBUQVJHRVQ9IiI+RGVmaW5lVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGVpLmh0bWwiIFRBUkdFVD0iIj5EZWZpbmVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uQXR0cmlidXRlLmh0bWwiIFRBUkdFVD0iIj5EZWZpbml0aW9uQXR0cmlidXRlPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi5odG1sIiBUQVJHRVQ9IiI+RGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9IiI+RGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSIiPjxJPkRlZmluaXRpb25zRmFjdG9yeTwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIiBUQVJHRVQ9IiI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiIFRBUkdFVD0iIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSIiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIiBUQVJHRVQ9IiI+RGVmaW5pdGlvbnNVdGlsPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiIFRBUkdFVD0iIj5EZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXA8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sIiBUQVJHRVQ9IiI+RGVmaW5pdGlvblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIiBUQVJHRVQ9IiI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuaHRtbCIgVEFSR0VUPSIiPkRpcmVjdFN0cmluZ0F0dHJpYnV0ZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIiBUQVJHRVQ9IiI+RGlza0ZpbGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiIFRBUkdFVD0iIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiIFRBUkdFVD0iIj5EaXNwYXRjaEFjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9IiI+RHluYUFjdGlvbkZvcm08L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sIiBUQVJHRVQ9IiI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9IiI+RHluYVZhbGlkYXRvckFjdGlvbkZvcm08L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCIgVEFSR0VUPSIiPkR5bmFWYWxpZGF0b3JGb3JtPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRW1wdHlJdGVyYXRvci5odG1sIiBUQVJHRVQ9IiI+RW1wdHlJdGVyYXRvcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIiBUQVJHRVQ9IiI+RW1wdHlUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbCIgVEFSR0VUPSIiPkVxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwiIFRBUkdFVD0iIj5FcnJvck1lc3NhZ2VzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiIFRBUkdFVD0iIj5FcnJvcnNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiIFRBUkdFVD0iIj5FeGNlcHRpb25Db25maWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRXhjZXB0aW9uSGFuZGxlci5odG1sIiBUQVJHRVQ9IiI+RXhjZXB0aW9uSGFuZGxlcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9IiI+RmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0Lmh0bWwiIFRBUkdFVD0iIj5GYWN0b3J5U2V0PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiIFRBUkdFVD0iIj5GaWVsZENoZWNrczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZpbGVUYWcuaHRtbCIgVEFSR0VUPSIiPkZpbGVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCIgVEFSR0VUPSIiPkZvcm1CZWFuQ29uZmlnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiIFRBUkdFVD0iIj48ST5Gb3JtRmlsZTwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiIFRBUkdFVD0iIj5Gb3JtUHJvcGVydHlDb25maWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiIFRBUkdFVD0iIj5Gb3JtVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Gb3J3YXJkQWN0aW9uLmh0bWwiIFRBUkdFVD0iIj5Gb3J3YXJkQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCIgVEFSR0VUPSIiPkZvcndhcmRDb25maWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCIgVEFSR0VUPSIiPkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCIgVEFSR0VUPSIiPkZvcndhcmRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIiBUQVJHRVQ9IiI+RnJhbWVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiIFRBUkdFVD0iIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCIgVEFSR0VUPSIiPkdldEF0dHJpYnV0ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRUYWcuaHRtbCIgVEFSR0VUPSIiPkdldFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCIgVEFSR0VUPSIiPkdldFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCIgVEFSR0VUPSIiPkdsb2JhbHM8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iIj5HcmVhdGVyRXF1YWxUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCIgVEFSR0VUPSIiPkdyZWF0ZXJUaGFuVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiIFRBUkdFVD0iIj5IZWFkZXJUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUZWkuaHRtbCIgVEFSR0VUPSIiPkhlYWRlclRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIiBUQVJHRVQ9IiI+SGlkZGVuVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sIiBUQVJHRVQ9IiI+SHRtbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCIgVEFSR0VUPSIiPkkxOG5GYWN0b3J5U2V0PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCIgVEFSR0VUPSIiPkltYWdlQnV0dG9uQmVhbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiIFRBUkdFVD0iIj5JbWFnZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIiBUQVJHRVQ9IiI+SW1nVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sIiBUQVJHRVQ9IiI+SW1wb3J0QXR0cmlidXRlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9JbmNsdWRlQWN0aW9uLmh0bWwiIFRBUkdFVD0iIj5JbmNsdWRlQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIiBUQVJHRVQ9IiI+SW5jbHVkZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCIgVEFSR0VUPSIiPkluY2x1ZGVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5pdERlZmluaXRpb25zVGFnLmh0bWwiIFRBUkdFVD0iIj5Jbml0RGVmaW5pdGlvbnNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiIFRBUkdFVD0iIj5JbnNlcnRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwiIFRBUkdFVD0iIj5JbnNlcnRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCIgVEFSR0VUPSIiPjxJPkluc2VydFRhZy5UYWdIYW5kbGVyPC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiIFRBUkdFVD0iIj5JdGVyYXRlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCIgVEFSR0VUPSIiPkl0ZXJhdGVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sIiBUQVJHRVQ9IiI+SXRlcmF0b3JBZGFwdGVyPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIiBUQVJHRVQ9IiI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTGFiZWxWYWx1ZUJlYW4uaHRtbCIgVEFSR0VUPSIiPkxhYmVsVmFsdWVCZWFuPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sIiBUQVJHRVQ9IiI+TGVzc0VxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwiIFRBUkdFVD0iIj5MZXNzVGhhblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCIgVEFSR0VUPSIiPkxpbmtUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiIFRBUkdFVD0iIj5Mb29rdXBEaXNwYXRjaEFjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIiBUQVJHRVQ9IiI+TWF0Y2hUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSIiPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCIgVEFSR0VUPSIiPjxJPk1lbnVJdGVtPC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIiBUQVJHRVQ9IiI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiIFRBUkdFVD0iIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIiBUQVJHRVQ9IiI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iIj5NZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iIj5NZXNzYWdlc1ByZXNlbnRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIiBUQVJHRVQ9IiI+TWVzc2FnZXNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RlaS5odG1sIiBUQVJHRVQ9IiI+TWVzc2FnZXNUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiIFRBUkdFVD0iIj5NZXNzYWdlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIiBUQVJHRVQ9IiI+PEk+TW9kdWxlQ29uZmlnPC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iIj5Nb2R1bGVDb25maWdGYWN0b3J5PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIiBUQVJHRVQ9IiI+TW9kdWxlQ29uZmlnSW1wbDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvTW9kdWxlQ29uZmlnVmVyaWZpZXIuaHRtbCIgVEFSR0VUPSIiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSIiPk1vZHVsZUV4Y2VwdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiIFRBUkdFVD0iIj5NdWx0aWJveFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiIFRBUkdFVD0iIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCIgVEFSR0VUPSIiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCIgVEFSR0VUPSIiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiIFRBUkdFVD0iIj48ST5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCIgVEFSR0VUPSIiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwiIFRBUkdFVD0iIj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sIiBUQVJHRVQ9IiI+TmVzdGVkQ2hlY2tib3hUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGFnLmh0bWwiIFRBUkdFVD0iIj5OZXN0ZWREZWZpbmVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGVpLmh0bWwiIFRBUkdFVD0iIj5OZXN0ZWREZWZpbmVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwiIFRBUkdFVD0iIj5OZXN0ZWRFbXB0eVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRXF1YWxUYWcuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZEVxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEVycm9yc1RhZy5odG1sIiBUQVJHRVQ9IiI+TmVzdGVkRXJyb3JzVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZpbGVUYWcuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZEZpbGVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRm9ybVRhZy5odG1sIiBUQVJHRVQ9IiI+TmVzdGVkRm9ybVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iIj5OZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwiIFRBUkdFVD0iIj5OZXN0ZWRHcmVhdGVyVGhhblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZEhpZGRlblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWFnZVRhZy5odG1sIiBUQVJHRVQ9IiI+TmVzdGVkSW1hZ2VUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwiIFRBUkdFVD0iIj5OZXN0ZWRJbWdUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZEl0ZXJhdGVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUZWkuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZEl0ZXJhdGVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sIiBUQVJHRVQ9IiI+TmVzdGVkTGVzc0VxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sIiBUQVJHRVQ9IiI+TmVzdGVkTGVzc1RoYW5UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTGlua1RhZy5odG1sIiBUQVJHRVQ9IiI+TmVzdGVkTGlua1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZE1hdGNoVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iIj5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZE1lc3NhZ2VzVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZE1lc3NhZ2VUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTXVsdGlib3hUYWcuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZE11bHRpYm94VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIiBUQVJHRVQ9IiI+PEk+TmVzdGVkTmFtZVN1cHBvcnQ8L0k+PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFbXB0eVRhZy5odG1sIiBUQVJHRVQ9IiI+TmVzdGVkTm90RW1wdHlUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iIj5OZXN0ZWROb3RFcXVhbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZE5vdE1hdGNoVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iIj5OZXN0ZWROb3RQcmVzZW50VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiIFRBUkdFVD0iIj5OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwiIFRBUkdFVD0iIj5OZXN0ZWRPcHRpb25zVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQYXJlbnRTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iIj48ST5OZXN0ZWRQYXJlbnRTdXBwb3J0PC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRQYXNzd29yZFRhZy5odG1sIiBUQVJHRVQ9IiI+TmVzdGVkUGFzc3dvcmRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZFByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZFByZXNlbnRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwiIFRBUkdFVD0iIj5OZXN0ZWRQcm9wZXJ0eUhlbHBlcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iIj48ST5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0k+PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIiBUQVJHRVQ9IiI+TmVzdGVkUHJvcGVydHlUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZFJhZGlvVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSZWZlcmVuY2UuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZFJlZmVyZW5jZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sIiBUQVJHRVQ9IiI+TmVzdGVkUm9vdFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTZWxlY3RUYWcuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZFNlbGVjdFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRTaXplVGFnLmh0bWwiIFRBUkdFVD0iIj5OZXN0ZWRTaXplVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFN1Ym1pdFRhZy5odG1sIiBUQVJHRVQ9IiI+TmVzdGVkU3VibWl0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iIj48ST5OZXN0ZWRUYWdTdXBwb3J0PC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIiBUQVJHRVQ9IiI+TmVzdGVkVGV4dGFyZWFUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sIiBUQVJHRVQ9IiI+TmVzdGVkVGV4dFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiIFRBUkdFVD0iIj5OZXN0ZWRXcml0ZU5lc3RpbmdUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCIgVEFSR0VUPSIiPk5lc3RlZFdyaXRlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9Ob09wQWN0aW9uLmh0bWwiIFRBUkdFVD0iIj5Ob09wQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9IiI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFbXB0eVRhZy5odG1sIiBUQVJHRVQ9IiI+Tm90RW1wdHlUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCIgVEFSR0VUPSIiPk5vdEVxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiIFRBUkdFVD0iIj5Ob3RNYXRjaFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iIj5Ob3RQcmVzZW50VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCIgVEFSR0VUPSIiPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIiBUQVJHRVQ9IiI+T3B0aW9uc1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIiBUQVJHRVQ9IiI+T3B0aW9uVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sIiBUQVJHRVQ9IiI+UGFnZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUZWkuaHRtbCIgVEFSR0VUPSIiPlBhZ2VUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCIgVEFSR0VUPSIiPlBhcmFtZXRlclRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRlaS5odG1sIiBUQVJHRVQ9IiI+UGFyYW1ldGVyVGVpPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUGFzc3dvcmRUYWcuaHRtbCIgVEFSR0VUPSIiPlBhc3N3b3JkVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvUGF0aEF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9IiI+UGF0aEF0dHJpYnV0ZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCIgVEFSR0VUPSIiPjxJPlBsdWdJbjwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiIFRBUkdFVD0iIj5QbHVnSW5Db25maWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luU2V0UHJvcGVydHlSdWxlLmh0bWwiIFRBUkdFVD0iIj5QbHVnSW5TZXRQcm9wZXJ0eVJ1bGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9IiI+UHJlc2VudFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSIiPlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIiBUQVJHRVQ9IiI+UHV0TGlzdFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnUGFyZW50Lmh0bWwiIFRBUkdFVD0iIj48ST5QdXRMaXN0VGFnUGFyZW50PC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCIgVEFSR0VUPSIiPlB1dFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCIgVEFSR0VUPSIiPlB1dFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWdQYXJlbnQuaHRtbCIgVEFSR0VUPSIiPjxJPlB1dFRhZ1BhcmVudDwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIiBUQVJHRVQ9IiI+UmFkaW9UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiIFRBUkdFVD0iIj5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCIgVEFSR0VUPSIiPlJlZGlyZWN0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iIj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9SZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sIiBUQVJHRVQ9IiI+UmVsb2FkRGVmaW5pdGlvbnNBY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSIiPlJlcXVlc3RBY3Rpb25NYXBwaW5nPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCIgVEFSR0VUPSIiPlJlcXVlc3RQcm9jZXNzb3I8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIiBUQVJHRVQ9IiI+UmVxdWVzdFV0aWxzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCIgVEFSR0VUPSIiPlJlc2V0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sIiBUQVJHRVQ9IiI+UmVzb3VyY2VzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCIgVEFSR0VUPSIiPlJlc291cmNlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUZWkuaHRtbCIgVEFSR0VUPSIiPlJlc291cmNlVGVpPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwiIFRBUkdFVD0iIj5SZXNwb25zZVV0aWxzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIiBUQVJHRVQ9IiI+UmV3cml0ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIiBUQVJHRVQ9IiI+U2VsZWN0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIiBUQVJHRVQ9IiI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSIiPlNlc3Npb25BY3Rpb25NYXBwaW5nPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1NldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUuaHRtbCIgVEFSR0VUPSIiPlNldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sIiBUQVJHRVQ9IiI+U2ltcGxlTWVudUl0ZW08L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiIFRBUkdFVD0iIj5TaXplVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sIiBUQVJHRVQ9IiI+U2l6ZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIiBUQVJHRVQ9IiI+U3RydXRzVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGVpLmh0bWwiIFRBUkdFVD0iIj5TdHJ1dHNUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sIiBUQVJHRVQ9IiI+U3RydXRzVmFsaWRhdG9yPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwiIFRBUkdFVD0iIj5TdHJ1dHNWYWxpZGF0b3JVdGlsPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiIFRBUkdFVD0iIj5TdWJtaXRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1N3aXRjaEFjdGlvbi5odG1sIiBUQVJHRVQ9IiI+U3dpdGNoQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCIgVEFSR0VUPSIiPlRhZ1V0aWxzPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCIgVEFSR0VUPSIiPlRleHRhcmVhVGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9UZXh0VGFnLmh0bWwiIFRBUkdFVD0iIj5UZXh0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sIiBUQVJHRVQ9IiI+VGV4dFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVGlsZXNBY3Rpb24uaHRtbCIgVEFSR0VUPSIiPlRpbGVzQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSIiPlRpbGVzRXhjZXB0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCIgVEFSR0VUPSIiPlRpbGVzUGx1Z2luPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiIFRBUkdFVD0iIj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1NlcnZsZXQuaHRtbCIgVEFSR0VUPSIiPlRpbGVzU2VydmxldDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIiBUQVJHRVQ9IiI+VGlsZXNVdGlsPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIiBUQVJHRVQ9IiI+VGlsZXNVdGlsSW1wbDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCIgVEFSR0VUPSIiPlRpbGVzVXRpbFN0cnV0c0ltcGw8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sIiBUQVJHRVQ9IiI+VGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGw8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwiIFRBUkdFVD0iIj5Ub2tlblByb2Nlc3NvcjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwiIFRBUkdFVD0iIj5VbnR5cHBlZEF0dHJpYnV0ZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VybENvbnRyb2xsZXIuaHRtbCIgVEFSR0VUPSIiPlVybENvbnRyb2xsZXI8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwiIFRBUkdFVD0iIj5Vc2VBdHRyaWJ1dGVUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGVpLmh0bWwiIFRBUkdFVD0iIj5Vc2VBdHRyaWJ1dGVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9IiI+VmFsaWRhdG9yQWN0aW9uRm9ybTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwiIFRBUkdFVD0iIj5WYWxpZGF0b3JGb3JtPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sIiBUQVJHRVQ9IiI+VmFsaWRhdG9yUGx1Z0luPC9BPgorPEJSPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9WaWV3RGVmaW5pdGlvbnNBY3Rpb24uaHRtbCIgVEFSR0VUPSIiPlZpZXdEZWZpbml0aW9uc0FjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiIFRBUkdFVD0iIj5Xcml0ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1hodG1sVGFnLmh0bWwiIFRBUkdFVD0iIj5YaHRtbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwiIFRBUkdFVD0iIj5YbWxBdHRyaWJ1dGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCIgVEFSR0VUPSIiPlhtbERlZmluaXRpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiIFRBUkdFVD0iIj5YbWxEZWZpbml0aW9uc1NldDwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9IiI+WG1sTGlzdEF0dHJpYnV0ZTwvQT4KKzxCUj4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwiIFRBUkdFVD0iIj5YbWxQYXJzZXI8L0E+Cis8QlI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvY29uc3RhbnQtdmFsdWVzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvY29uc3RhbnQtdmFsdWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U4YjFiNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9jb25zdGFudC12YWx1ZXMuaHRtbApAQCAtMCwwICsxLDEyNDEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDAgRURUIDIwMDMgLS0+Cis8VElUTEU+CitDb25zdGFudCBGaWVsZCBWYWx1ZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9InN0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkNvbnN0YW50IEZpZWxkIFZhbHVlcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+UGFja2FnZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSJpbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9ImNvbnN0YW50LXZhbHVlcy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9ImFsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9ImFsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDE+CitDb25zdGFudCBGaWVsZCBWYWx1ZXM8L0gxPgorPC9DRU5URVI+Cis8SFIgU0laRT0iNCIgTk9TSEFERT4KKzxCPkNvbnRlbnRzPC9CPjxVTD4KKzxMST48QSBIUkVGPSIjb3JnLmFwYWNoZSI+b3JnLmFwYWNoZS4qPC9BPgorPC9VTD4KKworPEEgTkFNRT0ib3JnLmFwYWNoZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIEFMSUdOPSJsZWZ0Ij48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5vcmcuYXBhY2hlLio8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTM+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sIj5HbG9iYWxzPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscy5BQ1RJT05fU0VSVkxFVF9LRVkiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0FDVElPTl9TRVJWTEVUX0tFWSI+QUNUSU9OX1NFUlZMRVRfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BQ1RJT05fU0VSVkxFVCI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuQVBQTElDQVRJT05fS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNBUFBMSUNBVElPTl9LRVkiPkFQUExJQ0FUSU9OX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uTU9EVUxFIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscy5DQU5DRUxfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNDQU5DRUxfS0VZIj5DQU5DRUxfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5DQU5DRUwiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzLkRBVEFfU09VUkNFX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjREFUQV9TT1VSQ0VfS0VZIj5EQVRBX1NPVVJDRV9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkRBVEFfU09VUkNFIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscy5FUlJPUl9LRVkiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0VSUk9SX0tFWSI+RVJST1JfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5FUlJPUiI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuRVhDRVBUSU9OX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjRVhDRVBUSU9OX0tFWSI+RVhDRVBUSU9OX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRVhDRVBUSU9OIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscy5GT1JNX0JFQU5TX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjRk9STV9CRUFOU19LRVkiPkZPUk1fQkVBTlNfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5GT1JNX0JFQU5TIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscy5GT1JXQVJEU19LRVkiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0ZPUldBUkRTX0tFWSI+Rk9SV0FSRFNfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5GT1JXQVJEUyI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuTE9DQUxFX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTE9DQUxFX0tFWSI+TE9DQUxFX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uTE9DQUxFIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscy5NQVBQSU5HX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTUFQUElOR19LRVkiPk1BUFBJTkdfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5tYXBwaW5nLmluc3RhbmNlIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscy5NQVBQSU5HU19LRVkiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI01BUFBJTkdTX0tFWSI+TUFQUElOR1NfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5NQVBQSU5HUyI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuTUVTU0FHRV9LRVkiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI01FU1NBR0VfS0VZIj5NRVNTQUdFX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQUNUSU9OX01FU1NBR0UiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzLk1FU1NBR0VTX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTUVTU0FHRVNfS0VZIj5NRVNTQUdFU19LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLk1FU1NBR0UiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzLk1PRFVMRV9LRVkiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI01PRFVMRV9LRVkiPk1PRFVMRV9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLk1PRFVMRSI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuTVVMVElQQVJUX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTVVMVElQQVJUX0tFWSI+TVVMVElQQVJUX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24ubWFwcGluZy5tdWx0aXBhcnRjbGFzcyI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuUExVR19JTlNfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNQTFVHX0lOU19LRVkiPlBMVUdfSU5TX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUExVR19JTlMiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzLlJFUVVFU1RfUFJPQ0VTU09SX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjUkVRVUVTVF9QUk9DRVNTT1JfS0VZIj5SRVFVRVNUX1BST0NFU1NPUl9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJFUVVFU1RfUFJPQ0VTU09SIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscy5TRVJWTEVUX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjU0VSVkxFVF9LRVkiPlNFUlZMRVRfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5TRVJWTEVUX01BUFBJTkciPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzLlRSQU5TQUNUSU9OX1RPS0VOX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjVFJBTlNBQ1RJT05fVE9LRU5fS0VZIj5UUkFOU0FDVElPTl9UT0tFTl9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlRPS0VOIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscy5YSFRNTF9LRVkiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI1hIVE1MX0tFWSI+WEhUTUxfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLmdsb2JhbHMuWEhUTUwiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0zPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uQUNUSU9OX1NFUlZMRVRfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNBQ1RJT05fU0VSVkxFVF9LRVkiPkFDVElPTl9TRVJWTEVUX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQUNUSU9OX1NFUlZMRVQiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLkFQUExJQ0FUSU9OX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjQVBQTElDQVRJT05fS0VZIj5BUFBMSUNBVElPTl9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLk1PRFVMRSI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uREFUQV9TT1VSQ0VfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNEQVRBX1NPVVJDRV9LRVkiPkRBVEFfU09VUkNFX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uREFUQV9TT1VSQ0UiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLkVSUk9SX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRVJST1JfS0VZIj5FUlJPUl9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkVSUk9SIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5FWENFUFRJT05fS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFWENFUFRJT05fS0VZIj5FWENFUFRJT05fS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5FWENFUFRJT04iPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLkZPUk1fQkVBTlNfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JNX0JFQU5TX0tFWSI+Rk9STV9CRUFOU19LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkZPUk1fQkVBTlMiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLkZPUldBUkRTX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9SV0FSRFNfS0VZIj5GT1JXQVJEU19LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkZPUldBUkRTIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5MT0NBTEVfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5MT0NBTEUiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLk1BUFBJTkdfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HX0tFWSI+TUFQUElOR19LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLm1hcHBpbmcuaW5zdGFuY2UiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLk1BUFBJTkdTX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR1NfS0VZIj5NQVBQSU5HU19LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLk1BUFBJTkdTIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5NRVNTQUdFX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUVTU0FHRV9LRVkiPk1FU1NBR0VfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BQ1RJT05fTUVTU0FHRSI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uTUVTU0FHRVNfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFU19LRVkiPk1FU1NBR0VTX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uTUVTU0FHRSI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uTVVMVElQQVJUX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTVVMVElQQVJUX0tFWSI+TVVMVElQQVJUX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24ubWFwcGluZy5tdWx0aXBhcnRjbGFzcyI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uUExVR19JTlNfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNQTFVHX0lOU19LRVkiPlBMVUdfSU5TX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUExVR19JTlMiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLlJFUVVFU1RfUFJPQ0VTU09SX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjUkVRVUVTVF9QUk9DRVNTT1JfS0VZIj5SRVFVRVNUX1BST0NFU1NPUl9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJFUVVFU1RfUFJPQ0VTU09SIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5TRVJWTEVUX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjU0VSVkxFVF9LRVkiPlNFUlZMRVRfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5TRVJWTEVUX01BUFBJTkciPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLlRSQU5TQUNUSU9OX1RPS0VOX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjVFJBTlNBQ1RJT05fVE9LRU5fS0VZIj5UUkFOU0FDVElPTl9UT0tFTl9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlRPS0VOIjwvQ09ERT48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mz48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLkdMT0JBTF9FUlJPUiI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwjR0xPQkFMX0VSUk9SIj5HTE9CQUxfRVJST1I8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkdMT0JBTF9FUlJPUiI8L0NPREU+PC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTM+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcy5HTE9CQUxfTUVTU0FHRSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNHTE9CQUxfTUVTU0FHRSI+R0xPQkFMX01FU1NBR0U8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkdMT0JBTF9NRVNTQUdFIjwvQ09ERT48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mz48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0UHJvY2Vzc29yLklOQ0xVREVfUEFUSF9JTkZPIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjSU5DTFVERV9QQVRIX0lORk8iPklOQ0xVREVfUEFUSF9JTkZPPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+ImphdmF4LnNlcnZsZXQuaW5jbHVkZS5wYXRoX2luZm8iPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdFByb2Nlc3Nvci5JTkNMVURFX1NFUlZMRVRfUEFUSCI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI0lOQ0xVREVfU0VSVkxFVF9QQVRIIj5JTkNMVURFX1NFUlZMRVRfUEFUSDwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJqYXZheC5zZXJ2bGV0LmluY2x1ZGUuc2VydmxldF9wYXRoIjwvQ09ERT48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mz48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5JbmNsdWRlVGFnLkJVRkZFUl9TSVpFIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI0JVRkZFUl9TSVpFIj5CVUZGRVJfU0laRTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPjI1NjwvQ09ERT48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mz48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIj5SZXNvdXJjZVRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlJlc291cmNlVGFnLkJVRkZFUl9TSVpFIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNCVUZGRVJfU0laRSI+QlVGRkVSX1NJWkU8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4yNTY8L0NPREU+PC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTM+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5Xcml0ZVRhZy5EQVRFX0ZPUk1BVF9LRVkiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNEQVRFX0ZPUk1BVF9LRVkiPkRBVEVfRk9STUFUX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5mb3JtYXQuZGF0ZSI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLldyaXRlVGFnLkZMT0FUX0ZPUk1BVF9LRVkiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNGTE9BVF9GT1JNQVRfS0VZIj5GTE9BVF9GT1JNQVRfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLmZvcm1hdC5mbG9hdCI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLldyaXRlVGFnLklOVF9GT1JNQVRfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjSU5UX0ZPUk1BVF9LRVkiPklOVF9GT1JNQVRfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLmZvcm1hdC5pbnQiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5Xcml0ZVRhZy5TUUxfREFURV9GT1JNQVRfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjU1FMX0RBVEVfRk9STUFUX0tFWSI+U1FMX0RBVEVfRk9STUFUX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5mb3JtYXQuc3FsLmRhdGUiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5Xcml0ZVRhZy5TUUxfVElNRV9GT1JNQVRfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjU1FMX1RJTUVfRk9STUFUX0tFWSI+U1FMX1RJTUVfRk9STUFUX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5mb3JtYXQuc3FsLnRpbWUiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5Xcml0ZVRhZy5TUUxfVElNRVNUQU1QX0ZPUk1BVF9LRVkiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNTUUxfVElNRVNUQU1QX0ZPUk1BVF9LRVkiPlNRTF9USU1FU1RBTVBfRk9STUFUX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5mb3JtYXQuc3FsLnRpbWVzdGFtcCI8L0NPREU+PC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTM+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwiPkNvbnN0YW50czwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNvbnN0YW50cy5CRUFOX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCNCRUFOX0tFWSI+QkVBTl9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQkVBTiI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNvbnN0YW50cy5DQU5DRUxfUFJPUEVSVFkiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwjQ0FOQ0VMX1BST1BFUlRZIj5DQU5DRUxfUFJPUEVSVFk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ0FOQ0VMIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ29uc3RhbnRzLkNBTkNFTF9QUk9QRVJUWV9YIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sI0NBTkNFTF9QUk9QRVJUWV9YIj5DQU5DRUxfUFJPUEVSVFlfWDwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DQU5DRUwueCI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNvbnN0YW50cy5GT1JNX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCNGT1JNX0tFWSI+Rk9STV9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRk9STSI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNvbnN0YW50cy5QYWNrYWdlIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sI1BhY2thZ2UiPlBhY2thZ2U8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5Db25zdGFudHMuU0VMRUNUX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCNTRUxFQ1RfS0VZIj5TRUxFQ1RfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlNFTEVDVCI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNvbnN0YW50cy5UT0tFTl9LRVkiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwjVE9LRU5fS0VZIj5UT0tFTl9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVE9LRU4iPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0zPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UuRE9VQkxFX0NPTVBBUkUiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNET1VCTEVfQ09NUEFSRSI+RE9VQkxFX0NPTVBBUkU8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4wPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UuTE9OR19DT01QQVJFIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjTE9OR19DT01QQVJFIj5MT05HX0NPTVBBUkU8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4xPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UuU1RSSU5HX0NPTVBBUkUiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNTVFJJTkdfQ09NUEFSRSI+U1RSSU5HX0NPTVBBUkU8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4yPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0zPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj5QcmVzZW50VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlByZXNlbnRUYWcuUk9MRV9ERUxJTUlURVIiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCNST0xFX0RFTElNSVRFUiI+Uk9MRV9ERUxJTUlURVI8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4iLCI8L0NPREU+PC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTM+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwiPk5lc3RlZFByb3BlcnR5SGVscGVyPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eUhlbHBlci5ORVNURURfSU5DTFVERVNfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlIZWxwZXIuaHRtbCNORVNURURfSU5DTFVERVNfS0VZIj5ORVNURURfSU5DTFVERVNfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+IjxuZXN0ZWQtaW5jbHVkZXMta2V5Lz4iPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0zPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPkNvbXBvbmVudENvbnN0YW50czwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5Db21wb25lbnRDb25zdGFudHMuQ09NUE9ORU5UX0NPTlRFWFQiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sI0NPTVBPTkVOVF9DT05URVhUIj5DT01QT05FTlRfQ09OVEVYVDwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQ29tcENvbnRleHQiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQ29tcG9uZW50Q29uc3RhbnRzLkNPTVBPTkVOVF9TQ09QRSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCNDT01QT05FTlRfU0NPUEUiPkNPTVBPTkVOVF9TQ09QRTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPjg8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5Db21wb25lbnRDb25zdGFudHMuRVhDRVBUSU9OX0tFWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjRVhDRVBUSU9OX0tFWSI+RVhDRVBUSU9OX0tFWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRVhDRVBUSU9OIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkNvbXBvbmVudENvbnN0YW50cy5MT0NBTEVfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5MT0NBTEUiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0zPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbnNlcnRUYWcuUk9MRV9ERUxJTUlURVIiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI1JPTEVfREVMSU1JVEVSIj5ST0xFX0RFTElNSVRFUjwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiIsIjwvQ09ERT48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mz48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9UYWdVdGlscy5odG1sIj5UYWdVdGlsczwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsLlRhZ1V0aWxzLmRlYnVnIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwjZGVidWciPmRlYnVnPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+dHJ1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mz48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uLkFDVElPTiI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjQUNUSU9OIj5BQ1RJT048L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4iYWN0aW9uIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbi5DT05UUk9MTEVSIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNDT05UUk9MTEVSIj5DT05UUk9MTEVSPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+ImNvbnRyb2xsZXIiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uLlVSTCI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjVVJMIj5VUkw8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4idXJsIjwvQ09ERT48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mz48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLkRFRklOSVRJT05TX0NPTkZJR19QQVJBTUVURVJfTkFNRSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNERUZJTklUSU9OU19DT05GSUdfUEFSQU1FVEVSX05BTUUiPkRFRklOSVRJT05TX0NPTkZJR19QQVJBTUVURVJfTkFNRTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJkZWZpbml0aW9ucy1jb25maWciPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuRkFDVE9SWV9DTEFTU05BTUVfUEFSQU1FVEVSX05BTUUiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjRkFDVE9SWV9DTEFTU05BTUVfUEFSQU1FVEVSX05BTUUiPkZBQ1RPUllfQ0xBU1NOQU1FX1BBUkFNRVRFUl9OQU1FPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+ImRlZmluaXRpb25zLWZhY3RvcnktY2xhc3MiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuUEFSU0VSX0RFVEFJTFNfUEFSQU1FVEVSX05BTUUiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjUEFSU0VSX0RFVEFJTFNfUEFSQU1FVEVSX05BTUUiPlBBUlNFUl9ERVRBSUxTX1BBUkFNRVRFUl9OQU1FPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+ImRlZmluaXRpb25zLXBhcnNlci1kZXRhaWxzIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLlBBUlNFUl9WQUxJREFURV9QQVJBTUVURVJfTkFNRSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNQQVJTRVJfVkFMSURBVEVfUEFSQU1FVEVSX05BTUUiPlBBUlNFUl9WQUxJREFURV9QQVJBTUVURVJfTkFNRTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJkZWZpbml0aW9ucy1wYXJzZXItdmFsaWRhdGUiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuVElMRVNfREVUQUlMU19QQVJBTUVURVJfTkFNRSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNUSUxFU19ERVRBSUxTX1BBUkFNRVRFUl9OQU1FIj5USUxFU19ERVRBSUxTX1BBUkFNRVRFUl9OQU1FPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+ImRlZmluaXRpb25zLWRlYnVnIjwvQ09ERT48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mz48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCI+RGVmaW5pdGlvbnNVdGlsPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNVdGlsLkFDVElPTl9ERUZJTklUSU9OIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI0FDVElPTl9ERUZJTklUSU9OIj5BQ1RJT05fREVGSU5JVElPTjwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5BQ1RJT05fREVGSU5JVElPTiI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zVXRpbC5ERUZJTklUSU9OU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTCI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNERUZJTklUSU9OU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTCI+REVGSU5JVElPTlNfQ09ORklHX1VTRVJfREVCVUdfTEVWRUw8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4iZGVmaW5pdGlvbnMtZGVidWciPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc1V0aWwuREVGSU5JVElPTlNfRkFDVE9SWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNERUZJTklUSU9OU19GQUNUT1JZIj5ERUZJTklUSU9OU19GQUNUT1JZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRFRklOSVRJT05TX0ZBQ1RPUlkiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc1V0aWwuREVGSU5JVElPTlNfRkFDVE9SWV9DTEFTU05BTUUiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjREVGSU5JVElPTlNfRkFDVE9SWV9DTEFTU05BTUUiPkRFRklOSVRJT05TX0ZBQ1RPUllfQ0xBU1NOQU1FPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+ImRlZmluaXRpb25zLWZhY3RvcnktY2xhc3MiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc1V0aWwuSU5TVEFOQ0VTX0NPTkZJR19VU0VSX0RFQlVHX0xFVkVMIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI0lOU1RBTkNFU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTCI+SU5TVEFOQ0VTX0NPTkZJR19VU0VSX0RFQlVHX0xFVkVMPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Imluc3RhbmNlcy1kZWJ1ZyI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zVXRpbC5OT19ERUJVRyI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI05PX0RFQlVHIj5OT19ERUJVRzwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPjA8L0NPREU+PC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTM+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5UaWxlc1V0aWxJbXBsPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsSW1wbC5ERUZJTklUSU9OU19GQUNUT1JZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCNERUZJTklUSU9OU19GQUNUT1JZIj5ERUZJTklUSU9OU19GQUNUT1JZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRFRklOSVRJT05TX0ZBQ1RPUlkiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0zPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuREVGSU5JVElPTlNfRkFDVE9SWV9DTEFTU05BTUUiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjREVGSU5JVElPTlNfRkFDVE9SWV9DTEFTU05BTUUiPkRFRklOSVRJT05TX0ZBQ1RPUllfQ0xBU1NOQU1FPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+ImRlZmluaXRpb25zLWZhY3RvcnktY2xhc3MiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0zPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj5JMThuRmFjdG9yeVNldDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uSTE4bkZhY3RvcnlTZXQuREVGSU5JVElPTlNfQ09ORklHX1BBUkFNRVRFUl9OQU1FIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNERUZJTklUSU9OU19DT05GSUdfUEFSQU1FVEVSX05BTUUiPkRFRklOSVRJT05TX0NPTkZJR19QQVJBTUVURVJfTkFNRTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJkZWZpbml0aW9ucy1jb25maWciPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkkxOG5GYWN0b3J5U2V0LkZJTEVOQU1FX0VYVEVOU0lPTiI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjRklMRU5BTUVfRVhURU5TSU9OIj5GSUxFTkFNRV9FWFRFTlNJT048L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4iLnhtbCI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uSTE4bkZhY3RvcnlTZXQuSU5TVEFOQ0VTX0NPTkZJR19QQVJBTUVURVJfTkFNRSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjSU5TVEFOQ0VTX0NPTkZJR19QQVJBTUVURVJfTkFNRSI+SU5TVEFOQ0VTX0NPTkZJR19QQVJBTUVURVJfTkFNRTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJpbnN0YW5jZXMtY29uZmlnIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5JMThuRmFjdG9yeVNldC5NQVhfQlVORExFU19TRUFSQ0hFRCI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjTUFYX0JVTkRMRVNfU0VBUkNIRUQiPk1BWF9CVU5ETEVTX1NFQVJDSEVEPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+MjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5JMThuRmFjdG9yeVNldC5QQVJTRVJfREVUQUlMU19QQVJBTUVURVJfTkFNRSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjUEFSU0VSX0RFVEFJTFNfUEFSQU1FVEVSX05BTUUiPlBBUlNFUl9ERVRBSUxTX1BBUkFNRVRFUl9OQU1FPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+ImRlZmluaXRpb25zLXBhcnNlci1kZXRhaWxzIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5JMThuRmFjdG9yeVNldC5QQVJTRVJfVkFMSURBVEVfUEFSQU1FVEVSX05BTUUiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI1BBUlNFUl9WQUxJREFURV9QQVJBTUVURVJfTkFNRSI+UEFSU0VSX1ZBTElEQVRFX1BBUkFNRVRFUl9OQU1FPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+ImRlZmluaXRpb25zLXBhcnNlci12YWxpZGF0ZSI8L0NPREU+PC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTM+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5ERUZBVUxUX1NJWkVfTUFYIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2xvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNERUZBVUxUX1NJWkVfTUFYIj5ERUZBVUxUX1NJWkVfTUFYPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+MjYyMTQ0MDAwbDwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5ERUZBVUxUX1NJWkVfVEhSRVNIT0xEIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI0RFRkFVTFRfU0laRV9USFJFU0hPTEQiPkRFRkFVTFRfU0laRV9USFJFU0hPTEQ8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4yNjIxNDQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTM+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5DQVJSSUFHRV9SRVRVUk4iPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2J5dGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjQ0FSUklBR0VfUkVUVVJOIj5DQVJSSUFHRV9SRVRVUk48L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4xMzwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uQ09OVEVOVF9UWVBFX0FQUExJQ0FUSU9OX09DVEVUX1NUUkVBTSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNDT05URU5UX1RZUEVfQVBQTElDQVRJT05fT0NURVRfU1RSRUFNIj5DT05URU5UX1RZUEVfQVBQTElDQVRJT05fT0NURVRfU1RSRUFNPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLkNPTlRFTlRfVFlQRV9URVhUX1BMQUlOIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI0NPTlRFTlRfVFlQRV9URVhUX1BMQUlOIj5DT05URU5UX1RZUEVfVEVYVF9QTEFJTjwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJ0ZXh0L3BsYWluIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uREVGQVVMVF9DT05URU5UX0RJU1BPU0lUSU9OIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI0RFRkFVTFRfQ09OVEVOVF9ESVNQT1NJVElPTiI+REVGQVVMVF9DT05URU5UX0RJU1BPU0lUSU9OPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+ImZvcm0tZGF0YSI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLkRFRkFVTFRfTElORV9TSVpFIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjREVGQVVMVF9MSU5FX1NJWkUiPkRFRkFVTFRfTElORV9TSVpFPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+NDA5NjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uRE9VQkxFX0RBU0hfU1RSSU5HIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI0RPVUJMRV9EQVNIX1NUUklORyI+RE9VQkxFX0RBU0hfU1RSSU5HPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Ii0tIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uTUVTU0FHRV9JTlZBTElEX1NUQVJUIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI01FU1NBR0VfSU5WQUxJRF9TVEFSVCI+TUVTU0FHRV9JTlZBTElEX1NUQVJUPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Ik11bHRpcGFydCBkYXRhIGRvZXNuXCd0IHN0YXJ0IHdpdGggYm91bmRhcnkiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5ORVdMSU5FX0JZVEUiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2J5dGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjTkVXTElORV9CWVRFIj5ORVdMSU5FX0JZVEU8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4xMDwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uUEFSQU1FVEVSX0NIQVJTRVQiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjUEFSQU1FVEVSX0NIQVJTRVQiPlBBUkFNRVRFUl9DSEFSU0VUPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+ImNoYXJzZXQiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5QQVJBTUVURVJfRklMRU5BTUUiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjUEFSQU1FVEVSX0ZJTEVOQU1FIj5QQVJBTUVURVJfRklMRU5BTUU8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4iZmlsZW5hbWUiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5QQVJBTUVURVJfTkFNRSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNQQVJBTUVURVJfTkFNRSI+UEFSQU1FVEVSX05BTUU8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ibmFtZSI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLlRPS0VOX0NPTE9OIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtjaGFyPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI1RPS0VOX0NPTE9OIj5UT0tFTl9DT0xPTjwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPjU4PC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5UT0tFTl9FUVVBTFMiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjVE9LRU5fRVFVQUxTIj5UT0tFTl9FUVVBTFM8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4iPSI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLlRPS0VOX1FVT1RFIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtjaGFyPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI1RPS0VOX1FVT1RFIj5UT0tFTl9RVU9URTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPjM0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5UT0tFTl9TRU1JX0NPTE9OIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtjaGFyPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI1RPS0VOX1NFTUlfQ09MT04iPlRPS0VOX1NFTUlfQ09MT048L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT41OTwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uVE9LRU5fU1BBQ0UiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2NoYXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjVE9LRU5fU1BBQ0UiPlRPS0VOX1NQQUNFPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+MzI8L0NPREU+PC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTM+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRJdGVyYXRvci5ERUZBVUxUX0VOQ09ESU5HIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNERUZBVUxUX0VOQ09ESU5HIj5ERUZBVUxUX0VOQ09ESU5HPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Imlzby04ODU5LTEiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0SXRlcmF0b3IuRklMRV9QUkVGSVgiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI0ZJTEVfUFJFRklYIj5GSUxFX1BSRUZJWDwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJzdHJ0cyI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRJdGVyYXRvci5IRUFERVJfQ09OVEVOVF9ESVNQT1NJVElPTiI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNIRUFERVJfQ09OVEVOVF9ESVNQT1NJVElPTiI+SEVBREVSX0NPTlRFTlRfRElTUE9TSVRJT048L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4iQ29udGVudC1EaXNwb3NpdGlvbiI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRJdGVyYXRvci5NRVNTQUdFX0NBTk5PVF9SRVRSSUVWRV9CT1VOREFSWSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNNRVNTQUdFX0NBTk5PVF9SRVRSSUVWRV9CT1VOREFSWSI+TUVTU0FHRV9DQU5OT1RfUkVUUklFVkVfQk9VTkRBUlk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4iTXVsdGlwYXJ0SXRlcmF0b3I6IGNhbm5vdCByZXRyaWV2ZSBib3VuZGFyeSBmb3IgbXVsdGlwYXJ0IHJlcXVlc3QiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0SXRlcmF0b3IuUEFSQU1FVEVSX0JPVU5EQVJZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNQQVJBTUVURVJfQk9VTkRBUlkiPlBBUkFNRVRFUl9CT1VOREFSWTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJib3VuZGFyeT0iPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0SXRlcmF0b3IuVEVYVF9CVUZGRVJfU0laRSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNURVhUX0JVRkZFUl9TSVpFIj5URVhUX0JVRkZFUl9TSVpFPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+MTAwMDwvQ09ERT48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mz48Qj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RIYW5kbGVyLkFUVFJJQlVURV9NQVhfTEVOR1RIX0VYQ0VFREVEIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI0FUVFJJQlVURV9NQVhfTEVOR1RIX0VYQ0VFREVEIj5BVFRSSUJVVEVfTUFYX0xFTkdUSF9FWENFRURFRDwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTWF4TGVuZ3RoRXhjZWVkZWQiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0zPjxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0VmFsdWVTdHJlYW08L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRWYWx1ZVN0cmVhbS5IRUFERVJfRU5DT0RJTkciPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjSEVBREVSX0VOQ09ESU5HIj5IRUFERVJfRU5DT0RJTkc8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4iaXNvLTg4NTktMSI8L0NPREU+PC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTM+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlJlcXVlc3RVdGlscy5QUkVGSVhFU19LRVkiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjUFJFRklYRVNfS0VZIj5QUkVGSVhFU19LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5QUkVGSVhFUyI8L0NPREU+PC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTM+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sIj5TdHJ1dHNWYWxpZGF0b3I8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvci5GSUVMRF9URVNUX0VRVUFMIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjRklFTERfVEVTVF9FUVVBTCI+RklFTERfVEVTVF9FUVVBTDwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJFUVVBTCI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yLkZJRUxEX1RFU1RfTk9UTlVMTCI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHVibGljJm5ic3A7c3RhdGljJm5ic3A7ZmluYWwmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREIEFMSUdOPSJsZWZ0Ij48Q09ERT48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI0ZJRUxEX1RFU1RfTk9UTlVMTCI+RklFTERfVEVTVF9OT1ROVUxMPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Ik5PVE5VTEwiPC9DT0RFPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvci5GSUVMRF9URVNUX05VTEwiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCNGSUVMRF9URVNUX05VTEwiPkZJRUxEX1RFU1RfTlVMTDwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJOVUxMIjwvQ09ERT48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mz48Qj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPkZpZWxkQ2hlY2tzPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLkZpZWxkQ2hlY2tzLkZJRUxEX1RFU1RfRVFVQUwiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjRklFTERfVEVTVF9FUVVBTCI+RklFTERfVEVTVF9FUVVBTDwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiJFUVVBTCI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5GaWVsZENoZWNrcy5GSUVMRF9URVNUX05PVE5VTEwiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjRklFTERfVEVTVF9OT1ROVUxMIj5GSUVMRF9URVNUX05PVE5VTEw8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4iTk9UTlVMTCI8L0NPREU+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5GaWVsZENoZWNrcy5GSUVMRF9URVNUX05VTEwiPjwhLS0gLS0+PC9BPjxURCBBTElHTj0icmlnaHQiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnB1YmxpYyZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjRklFTERfVEVTVF9OVUxMIj5GSUVMRF9URVNUX05VTEw8L0E+PC9DT0RFPjwvVEQ+Cis8VEQgQUxJR049InJpZ2h0Ij48Q09ERT4iTlVMTCI8L0NPREU+PC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTM+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCI+VmFsaWRhdG9yUGx1Z0luPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvclBsdWdJbi5SRVNPVVJDRV9ERUxJTSI+PCEtLSAtLT48L0E+PFREIEFMSUdOPSJyaWdodCI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSZuYnNwO3N0YXRpYyZuYnNwO2ZpbmFsJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURCBBTElHTj0ibGVmdCI+PENPREU+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sI1JFU09VUkNFX0RFTElNIj5SRVNPVVJDRV9ERUxJTTwvQT48L0NPREU+PC9URD4KKzxURCBBTElHTj0icmlnaHQiPjxDT0RFPiIsIjwvQ09ERT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvclBsdWdJbi5WQUxJREFUT1JfS0VZIj48IS0tIC0tPjwvQT48VEQgQUxJR049InJpZ2h0Ij48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wdWJsaWMmbmJzcDtzdGF0aWMmbmJzcDtmaW5hbCZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQgQUxJR049ImxlZnQiPjxDT0RFPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCNWQUxJREFUT1JfS0VZIj5WQUxJREFUT1JfS0VZPC9BPjwvQ09ERT48L1REPgorPFREIEFMSUdOPSJyaWdodCI+PENPREU+Im9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVkFMSURBVE9SX1JFU09VUkNFUyI8L0NPREU+PC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5QYWNrYWdlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJpbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJoZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9ImluZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iY29uc3RhbnQtdmFsdWVzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9kZXByZWNhdGVkLWxpc3QuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9kZXByZWNhdGVkLWxpc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDU4M2NlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL2RlcHJlY2F0ZWQtbGlzdC5odG1sCkBAIC0wLDAgKzEsMTE3MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1MSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0RlcHJlY2F0ZWQgTGlzdCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0ic3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRGVwcmVjYXRlZCBMaXN0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5QYWNrYWdlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSJpbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9ImFsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9ImFsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5EZXByZWNhdGVkIEFQSTwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkRlcHJlY2F0ZWQgQ2xhc3NlczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkFjdGlvbkNvbXBvbmVudFNlcnZsZXQ8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5UaWxlcyBub3cgdXNlcyBBY3Rpb25TZXJ2bGV0IHdpdGggVGlsZXNQbHVnaW4gYW5kIFRpbGVzUmVxdWVzdFByb2Nlc3Nvci48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXhjZXB0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FeGNlcHRpb248L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5SZXBsYWNlZCBieSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW5zPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+UmVwbGFjZWQgYnkgY29sbGVjdGlvbiBvZiBGb3JtQmVhbkNvbmZpZyBpbnN0YW5jZXMKKyAgaW4gPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZHM8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIG9mIEZvcndhcmRDb25maWcgaW5zdGFuY2VzIGluCisgIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4gYW5kIEFjdGlvbkNvbmZpZzwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZ3M8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIG9mIEFjdGlvbkNvbmZpZyBpbnN0YW5jZXMgaW4KKyAgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BcHBsaWNhdGlvbkNvbmZpZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQXBwbGljYXRpb25Db25maWc8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2FnZSByZXBsYWNlZCBieSBNb2R1bGVDb25maWcgSW50ZXJmYWNlLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5BdHRyaWJ1dGVUb1Njb3BlVGFnPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+SXMgIGl0ICBzdGlsbCAgaW4gIHVzZSAgPzwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudDwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudE1hcDwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwU3RhY2s8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNVdGlsPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj48Q09ERT5UaWxlc1V0aWwuY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0LCBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpPC9DT0RFPjwvQT48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5FcnJvck1lc3NhZ2VzPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMgaW5zdGVhZDwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBhIDxjb2RlPkJhc2ljRGF0YVNvdXJjZTwvY29kZT4gZGlyZWN0bHksIG9yIGluZGlyZWN0bHkKKyAgYWNxdWlyZSBhIGRhdGEgc291cmNlIHByb3ZpZGVkIGJ5IHlvdXIgY29udGFpbmVyPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuR2V0VGFnPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuSW5zZXJ0VGFnPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5JdGVyYXRvckFkYXB0ZXI8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgY29tbW9ucy1jb2xsZWN0aW9ucycgSXRlcmF0b3JVdGlscy5hc0l0ZXJhdG9yKEVudW1lcmF0aW9uKS48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL05vT3BBY3Rpb24uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5Ob09wQWN0aW9uPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIG8uYS5zLmEuRm9yd2FyZEFjdGlvbiBpbnN0ZWFkIHdpdGggdGhlIHBhcmFtZXRlciBhdHRyaWJ1dGU6CisgPGNvZGU+CisgICAgJmx0O2FjdGlvbiBwYXRoPSJhUGF0aCIKKyAgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkZvcndhcmRBY3Rpb24iCisgICAgICAgICAgICAgICAgcGFyYW1ldGVyPSJ0aWxlcy5kZWYubmFtZSIgLyZndDsKKyA8L2NvZGU+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuUHV0VGFnPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5TdHJ1dHNWYWxpZGF0b3I8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSAgICA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+PENPREU+RmllbGRDaGVja3M8L0NPREU+PC9BPjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvclV0aWw8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwiPjxDT0RFPlJlc291cmNlczwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9UZXh0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQuVGV4dFRhZzwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBvLmEucy50YWdsaWIuaHRtbC5UZXh0VGFnIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNTZXJ2bGV0Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzU2VydmxldDwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSB0aGUgQWN0aW9uU2VydmxldCBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5EZXByZWNhdGVkIEludGVyZmFjZXM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBEZWZpbml0aW9uc0ZhY3RvcnkgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RGVwcmVjYXRlZCBFeGNlcHRpb25zPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXBwRXhjZXB0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuQXBwRXhjZXB0aW9uPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+dXNlIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwiPjxDT0RFPk1vZHVsZUV4Y2VwdGlvbjwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkRlcHJlY2F0ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNBQ1RJT05fU0VSVkxFVF9LRVkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uQUNUSU9OX1NFUlZMRVRfS0VZPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIEdsb2JhbHMuQUNUSU9OX1NFUlZMRVRfS0VZIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNhcHBDb25maWciPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0UHJvY2Vzc29yLmFwcENvbmZpZzwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPnVzZSBtb2R1bGVDb25maWcgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjQVBQTElDQVRJT05fS0VZIj5vcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzLkFQUExJQ0FUSU9OX0tFWTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBNT0RVTEVfS0VZPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0FQUExJQ0FUSU9OX0tFWSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5BUFBMSUNBVElPTl9LRVk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5SZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTU9EVUxFX0tFWSI+PENPREU+R2xvYmFscy5NT0RVTEVfS0VZPC9DT0RFPjwvQT48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2RhdGEiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRFbGVtZW50LmRhdGE8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5UaGlzIHNob3VsZCBuZXZlciBiZSB1c2VkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNEQVRBX1NPVVJDRV9LRVkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uREFUQV9TT1VSQ0VfS0VZPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+UmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0RBVEFfU09VUkNFX0tFWSI+PENPREU+R2xvYmFscy5EQVRBX1NPVVJDRV9LRVk8L0NPREU+PC9BPjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjZGVidWciPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Db250cm9sbGVyQ29uZmlnLmRlYnVnPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+Q29uZmlndXJlIHRoZSBsb2dnaW5nIGRldGFpbCBsZXZlbCBpbiB5b3VyIHVuZGVybHlpbmcKKyAgbG9nZ2luZyBpbXBsZW1lbmF0aW9uPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZWJ1ZyI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQuZGVidWc8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST48L0k+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNkZWJ1Z0xldmVsIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuZGVidWdMZXZlbDwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBjb21tb25zLWxvZ2dpbmcgbWVjaGFuaXNtLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2RlZmF1bHRMb2NhbGUiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkVycm9yc1RhZy5kZWZhdWx0TG9jYWxlPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIExvY2FsZS5nZXREZWZhdWx0KCkgZGlyZWN0bHkuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI2RlZmF1bHRMb2NhbGUiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkphdmFzY3JpcHRWYWxpZGF0b3JUYWcuZGVmYXVsdExvY2FsZTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlRoaXMgdmFyaWFibGUgaXMgbm8gbG9uZ2VyIHVzZWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uVGFnLmRlZmF1bHRMb2NhbGU8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgTG9jYWxlLmdldERlZmF1bHQoKSBkaXJlY3RseS48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRVJST1JfS0VZIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLkVSUk9SX0tFWTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlJlcGxhY2VkIGJ5IDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNFUlJPUl9LRVkiPjxDT0RFPkdsb2JhbHMuRVJST1JfS0VZPC9DT0RFPjwvQT48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRVhDRVBUSU9OX0tFWSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5FWENFUFRJT05fS0VZPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+UmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0VYQ0VQVElPTl9LRVkiPjxDT0RFPkdsb2JhbHMuRVhDRVBUSU9OX0tFWTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0ZPUk1fQkVBTlNfS0VZIj5vcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzLkZPUk1fQkVBTlNfS0VZPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+UmVwbGFjZWQgYnkgY29sbGVjdGlvbiBpbiBNb2R1bGVDb25maWc8L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9STV9CRUFOU19LRVkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uRk9STV9CRUFOU19LRVk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIGluIE1vZHVsZUNvbmZpZzwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNGT1JXQVJEU19LRVkiPm9yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuRk9SV0FSRFNfS0VZPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+UmVwbGFjZWQgYnkgY29sbGVjdGlvbiBpbiBNb2R1bGVDb25maWcuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUldBUkRTX0tFWSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5GT1JXQVJEU19LRVk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIGluIE1vZHVsZUNvbmZpZy48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjSU5TVEFOQ0VTX0NPTkZJR19QQVJBTUVURVJfTkFNRSI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5JMThuRmFjdG9yeVNldC5JTlNUQU5DRVNfQ09ORklHX1BBUkFNRVRFUl9OQU1FPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+dXNlIERFRklOSVRJT05TX0NPTkZJR19QQVJBTUVURVJfTkFNRTwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI0lOU1RBTkNFU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNVdGlsLklOU1RBTkNFU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTDwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPnVzZSBERUZJTklUSU9OU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTCBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNMT0NBTEVfS0VZIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLkxPQ0FMRV9LRVk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5SZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTE9DQUxFX0tFWSI+PENPREU+R2xvYmFscy5MT0NBTEVfS0VZPC9DT0RFPjwvQT48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNsb3dzcmMiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltZ1RhZy5sb3dzcmM8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5UaGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBIVE1MIDQuMDEgc3BlYyBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEKKyBmdXR1cmUgdmVyc2lvbiBvZiBTdHJ1dHMuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdfS0VZIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLk1BUFBJTkdfS0VZPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+UmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI01BUFBJTkdfS0VZIj48Q09ERT5HbG9iYWxzLk1BUFBJTkdfS0VZPC9DT0RFPjwvQT48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTUFQUElOR1NfS0VZIj5vcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzLk1BUFBJTkdTX0tFWTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlJlcGxhY2VkIGJ5IGNvbGxlY3Rpb24gaW4gTW9kdWxlQ29uZmlnPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdTX0tFWSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5NQVBQSU5HU19LRVk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIGluIE1vZHVsZUNvbmZpZzwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFX0tFWSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5NRVNTQUdFX0tFWTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlJlcGxhY2VkIGJ5IDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNNRVNTQUdFX0tFWSI+PENPREU+R2xvYmFscy5NRVNTQUdFX0tFWTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01FU1NBR0VTX0tFWSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5NRVNTQUdFU19LRVk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgR2xvYmFscy5NRVNTQUdFU19LRVkgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTVVMVElQQVJUX0tFWSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5NVUxUSVBBUlRfS0VZPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIEdsb2JhbHMuTVVMVElQQVJUX0tFWSBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI3BhcnNlckRlYnVnTGV2ZWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5wYXJzZXJEZWJ1Z0xldmVsPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIGNvbW1vbnMtbG9nZ2luZyBtZWNoYW5pc20uPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1BMVUdfSU5TX0tFWSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5QTFVHX0lOU19LRVk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5SZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjUExVR19JTlNfS0VZIj48Q09ERT5HbG9iYWxzLlBMVUdfSU5TX0tFWTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1JFUVVFU1RfUFJPQ0VTU09SX0tFWSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5SRVFVRVNUX1BST0NFU1NPUl9LRVk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgR2xvYmFscy5SRVFVRVNUX1BST0NFU1NPUl9LRVkgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjU0VSVkxFVF9LRVkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uU0VSVkxFVF9LRVk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgR2xvYmFscy5TRVJWTEVUX0tFWSBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNUUkFOU0FDVElPTl9UT0tFTl9LRVkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uVFJBTlNBQ1RJT05fVE9LRU5fS0VZPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIEdsb2JhbHMuVFJBTlNBQ1RJT05fVE9LRU5fS0VZIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkRlcHJlY2F0ZWQgTWV0aG9kczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNhcHBsaWNhdGlvbkNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWwuYXBwbGljYXRpb25DbGFzcyhTdHJpbmcpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIFJlcXVlc3RVdGlscy5hcHBsaWNhdGlvbkNsYXNzKCkgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjYXBwbGljYXRpb25DbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsSW1wbC5hcHBsaWNhdGlvbkNsYXNzKFN0cmluZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgUmVxdWVzdFV0aWxzLmFwcGxpY2F0aW9uQ2xhc3MoKSBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCNhcHBsaWNhdGlvbkNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxTdHJ1dHNJbXBsLmFwcGxpY2F0aW9uQ2xhc3MoU3RyaW5nKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBSZXF1ZXN0VXRpbHMuYXBwbGljYXRpb25DbGFzcygpIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNjb21wdXRlVVJMKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5SZXF1ZXN0VXRpbHMuY29tcHV0ZVVSTChQYWdlQ29udGV4dCwgU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgTWFwLCBTdHJpbmcsIGJvb2xlYW4pPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VG8gYmUgcmVtb3ZlZCBpbiBWZXJzaW9uIDEuMy4KKyBVc2UgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNjb21wdXRlVVJMKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PENPREU+UmVxdWVzdFV0aWxzLmNvbXB1dGVVUkwoUGFnZUNvbnRleHQsIFN0cmluZywgU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgTWFwLCBTdHJpbmcsIGJvb2xlYW4pPC9DT0RFPjwvQT4gaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNjcmVhdGVEZWZpbml0aW9uRmFjdG9yeUluc3RhbmNlKGphdmEubGFuZy5TdHJpbmcpIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc1V0aWwuY3JlYXRlRGVmaW5pdGlvbkZhY3RvcnlJbnN0YW5jZShTdHJpbmcpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+Tm8gZGlyZWN0IHJlcGxhY2VtZW50LiBVc2UgY3JlYXRlRGVmaW5pdGlvbkZhY3RvcnkKKyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKSI+PENPREU+VGlsZXNVdGlsLmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCwgRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKTwvQ09ERT48L0E+LjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuU3RyaW5nKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNVdGlsLmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCwgTWFwLCBTdHJpbmcpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIGNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCwgU2VydmxldENvbmZpZyBzZXJ2bGV0Q29uZmlnKTwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNjdXJyZW50TG9jYWxlKCkiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkh0bWxUYWcuY3VycmVudExvY2FsZSgpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIGdldEN1cnJlbnRMb2NhbGUgaW5zdGVhZCBiZWNhdXNlIGl0IG1ha2VzIHRoZSBkaXNwbGF5IGxvZ2ljCisgZWFzaWVyLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVmYXVsdENvbnRyb2xsZXJDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LmRlZmF1bHRDb250cm9sbGVyQ29uZmlnKE1vZHVsZUNvbmZpZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5XaWxsIGJlIHJlbW92ZWQgaW4gYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjEuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZWZhdWx0Rm9ybUJlYW5zQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldC5kZWZhdWx0Rm9ybUJlYW5zQ29uZmlnKE1vZHVsZUNvbmZpZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5XaWxsIGJlIHJlbW92ZWQgaW4gYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjEuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZWZhdWx0Rm9yd2FyZHNDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LmRlZmF1bHRGb3J3YXJkc0NvbmZpZyhNb2R1bGVDb25maWcpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+V2lsbCBiZSByZW1vdmVkIGluIGEgcmVsZWFzZSBhZnRlciBTdHJ1dHMgMS4xLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVmYXVsdE1hcHBpbmdzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldC5kZWZhdWx0TWFwcGluZ3NDb25maWcoTW9kdWxlQ29uZmlnKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPldpbGwgYmUgcmVtb3ZlZCBpbiBhIHJlbGVhc2UgYWZ0ZXIgU3RydXRzIDEuMS48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2RlZmF1bHRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldC5kZWZhdWx0TWVzc2FnZVJlc291cmNlc0NvbmZpZyhNb2R1bGVDb25maWcpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+V2lsbCBiZSByZW1vdmVkIGluIGEgcmVsZWFzZSBhZnRlciBTdHJ1dHMgMS4xLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVzdHJveUFwcGxpY2F0aW9ucygpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldC5kZXN0cm95QXBwbGljYXRpb25zKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5yZXBsYWNlZCBieSBkZXN0cm95TW9kdWxlcygpPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZXN0cm95RGF0YVNvdXJjZXMoKSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQuZGVzdHJveURhdGFTb3VyY2VzKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5XaWxsIG5vIGxvbmdlciBiZSByZXF1aXJlZCB3aXRoIG1vZHVsZSBzdXBwb3J0PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2RvRW5kVGFnKCkiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5QdXRUYWcuZG9FbmRUYWcoKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNkb0VuZFRhZygpIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuSW5zZXJ0VGFnLmRvRW5kVGFnKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjZG9TdGFydFRhZygpIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuR2V0VGFnLmRvU3RhcnRUYWcoKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5JbnNlcnRUYWcuZG9TdGFydFRhZygpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwjZW1wdHkoKSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzLmVtcHR5KCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgaXNFbXB0eSBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZmluZERhdGFTb3VyY2UoamF2YS5sYW5nLlN0cmluZykiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LmZpbmREYXRhU291cmNlKFN0cmluZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Mb29rIHVwIGRhdGEgc291cmNlcyBkaXJlY3RseSBpbiBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlczwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZmluZEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldC5maW5kRm9ybUJlYW4oU3RyaW5nKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlJlcGxhY2VkIGJ5IE1vZHVsZUNvbmZpZy5maW5kRm9ybUJlYW5Db25maWcoKTwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZmluZEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LmZpbmRGb3J3YXJkKFN0cmluZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5SZXBsYWNlZCBieSBNb2R1bGVDb25maWcuZmluZEZvcndhcmRDb25maWcoKTwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZmluZE1hcHBpbmcoamF2YS5sYW5nLlN0cmluZykiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LmZpbmRNYXBwaW5nKFN0cmluZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5SZXBsYWNlZCBieSBNb2R1bGVDb25maWcuZmluZEFjdGlvbkNvbmZpZygpPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sI2dldChqYXZhLmxhbmcuU3RyaW5nKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudE1hcC5nZXQoU3RyaW5nKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI2dldEFjdGlvbkVycm9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkKSI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5TdHJ1dHNWYWxpZGF0b3JVdGlsLmdldEFjdGlvbkVycm9yKEh0dHBTZXJ2bGV0UmVxdWVzdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjZ2V0QWN0aW9uRXJyb3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj48Q09ERT5SZXNvdXJjZXMuZ2V0QWN0aW9uRXJyb3IoSHR0cFNlcnZsZXRSZXF1ZXN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkKTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2dldEFjdHVhbENvbnRlbnQoKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLlB1dFRhZy5nZXRBY3R1YWxDb250ZW50KCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldEFsaWduKCkiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltYWdlVGFnLmdldEFsaWduKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BbGlnbiBhdHRyaWJ1dGUgaXMgZGVwcmVjYXRlZCBpbiBIVE1MIDQueC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjZ2V0QW5jZXN0b3IoamF2YS5sYW5nLlN0cmluZykiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5QdXRUYWcuZ2V0QW5jZXN0b3IoU3RyaW5nKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRBcHBsaWNhdGlvbkNvbmZpZygpIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnLmdldEFwcGxpY2F0aW9uQ29uZmlnKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0TW9kdWxlQ29uZmlnKCkiPjxDT0RFPkFjdGlvbkNvbmZpZy5nZXRNb2R1bGVDb25maWcoKTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRBcHBsaWNhdGlvbkNvbmZpZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQuZ2V0QXBwbGljYXRpb25Db25maWcoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPnVzZSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldE1vZHVsZUNvbmZpZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+QWN0aW9uU2VydmxldC5nZXRNb2R1bGVDb25maWcoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRBcHBsaWNhdGlvblByZWZpeGVzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlJlcXVlc3RVdGlscy5nZXRBcHBsaWNhdGlvblByZWZpeGVzKFNlcnZsZXRDb250ZXh0KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBnZXRNb2R1bGVQcmVmaXhlcyhTZXJ2bGV0Q29udGV4dCkgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCNnZXRBcmdzKGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yVXRpbC5nZXRBcmdzKFN0cmluZywgTWVzc2FnZVJlc291cmNlcywgTG9jYWxlLCBGaWVsZCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjZ2V0QXJncyhqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXMsIGphdmEudXRpbC5Mb2NhbGUsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj48Q09ERT5SZXNvdXJjZXMuZ2V0QXJncyhTdHJpbmcsTWVzc2FnZVJlc291cmNlcyxMb2NhbGUsRmllbGQpPC9DT0RFPjwvQT48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjZ2V0Q29udGVudCgpIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuUHV0VGFnLmdldENvbnRlbnQoKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCNnZXRDb250ZW50KCkiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnQuZ2V0Q29udGVudCgpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI2dldENvbnRlbnRNYXAoKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkluc2VydFRhZy5nZXRDb250ZW50TWFwKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2dldERhdGEoKSI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEVsZW1lbnQuZ2V0RGF0YSgpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIHRoZSBnZXRGaWxlIG1ldGhvZCB0byBnZXQgYSBGaWxlIHJlcHJlc2VudGluZyB0aGUKKyAgICAgICAgICAgICBkYXRhIGZvciB0aGlzIGVsZW1lbnQ8L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldERlYnVnKCkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LmdldERlYnVnKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Db25maWd1cmUgdGhlIGxvZ2dpbmcgZGV0YWlsIGxldmVsIGluIHlvdXIgdW5kZXJseWluZworICBsb2dnaW5nIGltcGxlbWVudGF0aW9uPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNnZXREZWJ1ZygpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdFByb2Nlc3Nvci5nZXREZWJ1ZygpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+Q29uZmlndXJlIHRoZSBsb2dnaW5nIGRldGFpbCBsZXZlbCBpbiB5b3VyCisgIHVuZGVybHlpbmcgbG9nZ2luZyBpbXBsZW1lbnRhdGlvbjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI2dldERlYnVnTGV2ZWwoKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmdldERlYnVnTGV2ZWwoKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBjb21tb25zLWxvZ2dpbmcgbWVjaGFuaXNtLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc1V0aWwuZ2V0RGVmaW5pdGlvbihTdHJpbmcsIFBhZ2VDb250ZXh0KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Q09ERT5UaWxlc1V0aWwuZ2V0RGVmaW5pdGlvbihTdHJpbmcsIFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCk8L0NPREU+PC9BPjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2dldERlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNVdGlsLmdldERlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Q09ERT5UaWxlc1V0aWwuZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCk8L0NPREU+PC9BPjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNnZXREaXJlY3QoKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLlB1dFRhZy5nZXREaXJlY3QoKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNnZXRGbHVzaCgpIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuR2V0VGFnLmdldEZsdXNoKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRMb3dzcmMoKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSW1nVGFnLmdldExvd3NyYygpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgSFRNTCA0LjAxIHNwZWMgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhCisgZnV0dXJlIHZlcnNpb24gb2YgU3RydXRzLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI2dldE1lc3NhZ2Uob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzLCBqYXZhLnV0aWwuTG9jYWxlLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yVXRpbC5nZXRNZXNzYWdlKE1lc3NhZ2VSZXNvdXJjZXMsIExvY2FsZSwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXMsIGphdmEudXRpbC5Mb2NhbGUsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkKSI+PENPREU+UmVzb3VyY2VzLmdldE1lc3NhZ2UoTWVzc2FnZVJlc291cmNlcywgTG9jYWxlLCBWYWxpZGF0b3JBY3Rpb24gLCBGaWVsZCk8L0NPREU+PC9BPjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuUmVzb3VyY2VzLmdldE1lc3NhZ2VSZXNvdXJjZXMoU2VydmxldENvbnRleHQpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VGhpcyBtZXRob2QgY2FuIG9ubHkgcmV0dXJuIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0CisgIG1vZHVsZS4gIFVzZSBnZXRNZXNzYWdlUmVzb3VyY2VzKEh0dHBTZXJ2bGV0UmVxdWVzdCkgdG8gZ2V0IHRoZQorICByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IG1vZHVsZS48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCNnZXRNZXNzYWdlUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvclV0aWwuZ2V0TWVzc2FnZVJlc291cmNlcyhTZXJ2bGV0Q29udGV4dCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5UaGlzIG1ldGhvZCBjYW4gb25seSByZXR1cm4gdGhlIHJlc291cmNlcyBmb3IgdGhlIGRlZmF1bHQKKyAgbW9kdWxlLiAgVXNlIGdldE1lc3NhZ2VSZXNvdXJjZXMoSHR0cFNlcnZsZXRSZXF1ZXN0KSB0byBnZXQgdGhlCisgIHJlc291cmNlcyBmb3IgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gbW9kdWxlLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNnZXROYW1lKCkiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5QdXRUYWcuZ2V0TmFtZSgpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI2dldE5hbWUoKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkdldFRhZy5nZXROYW1lKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNnZXRQYXJzZXJEZWJ1Z0xldmVsKCkiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5nZXRQYXJzZXJEZWJ1Z0xldmVsKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgY29tbW9ucy1sb2dnaW5nIG1lY2hhbmlzbS48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldFJlc291cmNlcygpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldC5nZXRSZXNvdXJjZXMoKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPkFjdGlvbnMgc2hvdWxkIGNhbGwgQWN0aW9uLmdldFJlc291cmNlcyhIdHRwU2VydmxldFJlcXVlc3QpCisgIGluc3RlYWQgb2YgdGhpcyBtZXRob2QsIGluIG9yZGVyIHRvIHJldHJpZXZlIHRoZSByZXNvdXJjZXMgZm9yIHRoZQorICBjdXJyZW50IG1vZHVsZS48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKCkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uZ2V0UmVzb3VyY2VzKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5UaGlzIG1ldGhvZCBjYW4gb25seSByZXR1cm4gdGhlIHJlc291cmNlcyBmb3IgdGhlIGRlZmF1bHQKKyAgbW9kdWxlLiAgVXNlIGdldFJlc291cmNlcyhIdHRwU2VydmxldFJlcXVlc3QpIHRvIGdldCB0aGUKKyAgcmVzb3VyY2VzIGZvciB0aGUgY3VycmVudCBtb2R1bGUuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2dldFJvbGUoKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLlB1dFRhZy5nZXRSb2xlKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjZ2V0Um9sZSgpIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuR2V0VGFnLmdldFJvbGUoKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sI2dldFN0YWNrKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudE1hcFN0YWNrLmdldFN0YWNrKFBhZ2VDb250ZXh0KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNnZXRUZW1wbGF0ZSgpIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuSW5zZXJ0VGFnLmdldFRlbXBsYXRlKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjZ2V0VmFsaWRhdG9yUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuUmVzb3VyY2VzLmdldFZhbGlkYXRvclJlc291cmNlcyhTZXJ2bGV0Q29udGV4dCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5JbiBTdHJ1dHMgMS4xIFRoaXMgbWV0aG9kIGNhbiBvbmx5IHJldHVybiB0aGUgcmVzb3VyY2VzIGZvciB0aGUgZGVmYXVsdAorICBtb2R1bGUuICBVc2UgZ2V0VmFsaWRhdG9yUmVzb3VyY2VzKEh0dHBTZXJ2bGV0UmVxdWVzdCwgU2VydmxldENvbnRleHQpCisgIHRvIGdldCB0aGUgcmVzb3VyY2VzIGZvciB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBtb2R1bGUuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjZ2V0VmFsaWRhdG9yUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvclV0aWwuZ2V0VmFsaWRhdG9yUmVzb3VyY2VzKFNlcnZsZXRDb250ZXh0KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPkluIFN0cnV0cyAxLjEgVGhpcyBtZXRob2QgY2FuIG9ubHkgcmV0dXJuIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0CisgIG1vZHVsZS4gIFVzZSBnZXRWYWxpZGF0b3JSZXNvdXJjZXMoSHR0cFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCkKKyAgdG8gZ2V0IHRoZSByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIG1vZHVsZS48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjaGFzQm9keSgpIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuUHV0VGFnLmhhc0JvZHkoKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdEFwcGxpY2F0aW9uQ29uZmlnKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldC5pbml0QXBwbGljYXRpb25Db25maWcoU3RyaW5nLCBTdHJpbmcpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+dXNlIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdE1vZHVsZUNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PENPREU+QWN0aW9uU2VydmxldC5pbml0TW9kdWxlQ29uZmlnKFN0cmluZyxTdHJpbmcpPC9DT0RFPjwvQT48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRBcHBsaWNhdGlvbkRhdGFTb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldC5pbml0QXBwbGljYXRpb25EYXRhU291cmNlcyhNb2R1bGVDb25maWcpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+dXNlIGluaXRNb2R1bGVEYXRhU291cmNlcyhNb2R1bGVDb25maWcpPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0QXBwbGljYXRpb25NZXNzYWdlUmVzb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldC5pbml0QXBwbGljYXRpb25NZXNzYWdlUmVzb3VyY2VzKE1vZHVsZUNvbmZpZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST51c2UgaW5pdE1vZHVsZU1lc3NhZ2VSZXNvdXJjZXMoKTwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdEFwcGxpY2F0aW9uUGx1Z0lucyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQuaW5pdEFwcGxpY2F0aW9uUGx1Z0lucyhNb2R1bGVDb25maWcpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+dXNlIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdE1vZHVsZVBsdWdJbnMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjxDT0RFPkFjdGlvblNlcnZsZXQuaW5pdE1vZHVsZVBsdWdJbnMoTW9kdWxlQ29uZmlnKTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0RGF0YVNvdXJjZXMoKSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQuaW5pdERhdGFTb3VyY2VzKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5SZXBsYWNlZCBieSBpbml0QXBwbGljYXRpb25EYXRhU291cmNlcygpIHRoYXQgdGFrZXMKKyAgYW4gTW9kdWxlQ29uZmlnIGFyZ3VtZW50LiBUaGlzIG1ldGhvZCBkb2VzIG5vdGhpbmcuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjaW5pdFVzZXJEZWJ1Z0xldmVsKGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZykiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zVXRpbC5pbml0VXNlckRlYnVnTGV2ZWwoU2VydmxldENvbmZpZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgY29tbW9ucy1sb2dnaW5nIHBhY2thZ2UgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCNpbml0VmFsaWRhdG9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGludCkiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yVXRpbC5pbml0VmFsaWRhdG9yKFN0cmluZywgT2JqZWN0LCBTZXJ2bGV0Q29udGV4dCwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBBY3Rpb25FcnJvcnMsIGludCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjaW5pdFZhbGlkYXRvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBpbnQpIj48Q09ERT5SZXNvdXJjZXMuaW5pdFZhbGlkYXRvcihTdHJpbmcsT2JqZWN0LFNlcnZsZXRDb250ZXh0LEh0dHBTZXJ2bGV0UmVxdWVzdCxBY3Rpb25FcnJvcnMsaW50KTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sI2lzRGlyZWN0KCkiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnQuaXNEaXJlY3QoKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwjbG9nKGphdmEubGFuZy5TdHJpbmcpIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuVmFsaWRhdG9yRm9ybS5sb2coU3RyaW5nKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBjb21tb24tbG9nZ2luZyB0byBsb2cgZGVidWcgbWVzc2FnZXMuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwjbG9nKGphdmEubGFuZy5TdHJpbmcpIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRHluYVZhbGlkYXRvckZvcm0ubG9nKFN0cmluZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgY29tbW9uLWxvZ2dpbmcsIG9yIG90aGVyIGxvZ2dpbmcgaW1wbGVtZW50YXRpb24gdG8gbG9nIGRlYnVnIG1lc3NhZ2VzLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjbG9nKGphdmEubGFuZy5TdHJpbmcsIGludCkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LmxvZyhTdHJpbmcsIGludCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgY29tbW9ucy1sb2dnaW5nIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwjbG9nKGphdmEubGFuZy5TdHJpbmcsIGludCkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0V3JhcHBlci5sb2coU3RyaW5nLCBpbnQpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+TG9nZ2luZyBzaG91bGQgbm93IHVzZSB0aGUgY29tbW9ucyBsb2dnaW5nPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlRocm93YWJsZSkiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5WYWxpZGF0b3JGb3JtLmxvZyhTdHJpbmcsIFRocm93YWJsZSk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgY29tbW9uLWxvZ2dpbmcgdG8gbG9nIGRlYnVnIG1lc3NhZ2VzLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLkR5bmFWYWxpZGF0b3JGb3JtLmxvZyhTdHJpbmcsIFRocm93YWJsZSk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgY29tbW9uLWxvZ2dpbmcsIG9yIG90aGVyIGxvZ2dpbmcgaW1wbGVtZW50YXRpb24gdG8gbG9nIGRlYnVnIG1lc3NhZ2VzLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI21ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zVXRpbC5tYWtlRGVmaW5pdGlvbnNGYWN0b3J5QWNjZXNzaWJsZShEZWZpbml0aW9uc0ZhY3RvcnksIFNlcnZsZXRDb250ZXh0KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKSI+PENPREU+VGlsZXNVdGlsLmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCwgRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcFN0YWNrLmh0bWwjcGVlayhqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnRNYXBTdGFjay5wZWVrKFBhZ2VDb250ZXh0KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLnBlcmZvcm0oQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSB0aGUgPGNvZGU+ZXhlY3V0ZSgpPC9jb2RlPiBtZXRob2QgaW5zdGVhZDwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLnBlcmZvcm0oQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgU2VydmxldFJlcXVlc3QsIFNlcnZsZXRSZXNwb25zZSk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgdGhlIDxjb2RlPmV4ZWN1dGUoKTwvY29kZT4gbWV0aG9kIGluc3RlYWQ8L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1RpbGVzQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5UaWxlc0FjdGlvbi5wZXJmb3JtKENvbXBvbmVudENvbnRleHQsIEFjdGlvbk1hcHBpbmcsIEFjdGlvbkZvcm0sIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgdGhlIDxjb2RlPmV4ZWN1dGUoKTwvY29kZT4gbWV0aG9kIGluc3RlYWQ8L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCNwb3AoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwU3RhY2sucG9wKFBhZ2VDb250ZXh0KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0FjdGlvbkZvcndhcmQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJlcXVlc3RQcm9jZXNzb3IucHJvY2Vzc0FjdGlvbkZvcndhcmQoSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlLCBBY3Rpb25Gb3J3YXJkKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBwcm9jZXNzRm9yd2FyZENvbmZpZygpIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI3Byb2Nlc3NGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQWN0aW9uQ29tcG9uZW50U2VydmxldC5wcm9jZXNzRm9yd2FyZChTdHJpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST51c2UgZG9Gb3J3YXJkIGluc3RlYWQ8L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCNwdXNoKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudE1hcFN0YWNrLnB1c2goUGFnZUNvbnRleHQsIENvbnRlbnRNYXApPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI3B1dChqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50KSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkluc2VydFRhZy5wdXQoU3RyaW5nLCBDb250ZW50KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCNwdXQoamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudCkiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnRNYXAucHV0KFN0cmluZywgQ29udGVudCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjcmVsZWFzZSgpIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuUHV0VGFnLnJlbGVhc2UoKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNyZWxlYXNlKCkiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5HZXRUYWcucmVsZWFzZSgpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI3JlbGVhc2UoKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkluc2VydFRhZy5yZWxlYXNlKCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjc2F2ZUV4Y2VwdGlvbihqYXZhLmxhbmcuVGhyb3dhYmxlKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkdldFRhZy5zYXZlRXhjZXB0aW9uKFRocm93YWJsZSk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjc2F2ZUV4Y2VwdGlvbihqYXZhLmxhbmcuVGhyb3dhYmxlKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkluc2VydFRhZy5zYXZlRXhjZXB0aW9uKFRocm93YWJsZSk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3NlbGVjdEFwcGxpY2F0aW9uKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlJlcXVlc3RVdGlscy5zZWxlY3RBcHBsaWNhdGlvbihIdHRwU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPnVzZSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3NlbGVjdE1vZHVsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PENPREU+UmVxdWVzdFV0aWxzLnNlbGVjdE1vZHVsZShIdHRwU2VydmxldFJlcXVlc3QsU2VydmxldENvbnRleHQpPC9DT0RFPjwvQT48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3NlbGVjdEFwcGxpY2F0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlJlcXVlc3RVdGlscy5zZWxlY3RBcHBsaWNhdGlvbihTdHJpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgU2VydmxldENvbnRleHQpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+dXNlIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjc2VsZWN0TW9kdWxlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Q09ERT5SZXF1ZXN0VXRpbHMuc2VsZWN0TW9kdWxlKFN0cmluZyxIdHRwU2VydmxldFJlcXVlc3QsU2VydmxldENvbnRleHQpPC9DT0RFPjwvQT48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldEFsaWduKGphdmEubGFuZy5TdHJpbmcpIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWFnZVRhZy5zZXRBbGlnbihTdHJpbmcpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+QWxpZ24gYXR0cmlidXRlIGlzIGRlcHJlY2F0ZWQgaW4gSFRNTCA0LnguPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldEFwcGxpY2F0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnLnNldEFwcGxpY2F0aW9uQ29uZmlnKE1vZHVsZUNvbmZpZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0TW9kdWxlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48Q09ERT5BY3Rpb25Db25maWcuc2V0TW9kdWxlQ29uZmlnKE1vZHVsZUNvbmZpZyk8L0NPREU+PC9BPjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNzZXRDb250ZW50KGphdmEubGFuZy5TdHJpbmcpIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuUHV0VGFnLnNldENvbnRlbnQoU3RyaW5nKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjc2V0RGF0YShieXRlW10pIj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0RWxlbWVudC5zZXREYXRhKGJ5dGVbXSk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgdGhlIHNldEZpbGUgbWV0aG9kIHRvIHNldCB0aGUgZmlsZQorICAgICAgICAgICAgIHRoYXQgcmVwcmVzZW50cyB0aGUgZGF0YSBvZiB0aGlzIGVsZW1lbnQ8L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNzZXREZWJ1Z0xldmVsKGludCkiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5zZXREZWJ1Z0xldmVsKGludCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgY29tbW9ucy1sb2dnaW5nIG1lY2hhbmlzbS48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNzZXREZWZpbml0aW9uc0ZhY3Rvcnkob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNVdGlsLnNldERlZmluaXRpb25zRmFjdG9yeShDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnksIFNlcnZsZXRDb250ZXh0KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPnNpbmNlIDIwMDIwNzA4LiBSZXBsYWNlZCBieSBtYWtlRmFjdG9yeUFjY2Vzc2libGUoKTwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwjc2V0RGV0YWlsTGV2ZWwoaW50KSI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxQYXJzZXIuc2V0RGV0YWlsTGV2ZWwoaW50KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSB0aGUgY29tbW9ucy1sb2dnaW5nIHRvIHNldCBkaWdlc3RlciBkZWJ1ZyBsZXZlbC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjc2V0RGlyZWN0KGphdmEubGFuZy5TdHJpbmcpIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuUHV0VGFnLnNldERpcmVjdChTdHJpbmcpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjc2V0RHluYW1pYyhib29sZWFuKSI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnLnNldER5bmFtaWMoYm9vbGVhbik8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5UaGUgdmFsdWUgdG8gYmUgcmV0dXJuZWQgYnkgPGNvZGU+Z2V0RHluYW1pYygpPC9jb2RlPgorIGlzIG5vdyBjb21wdXRlZCBhdXRvbWF0aWNhbGx5IGluIDxjb2RlPnNldFR5cGUoKTwvY29kZT48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjc2V0Rmx1c2goYm9vbGVhbikiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5HZXRUYWcuc2V0Rmx1c2goYm9vbGVhbik8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjc2V0SW5zdGFuY2UoamF2YS5sYW5nLlN0cmluZykiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbnNlcnRUYWcuc2V0SW5zdGFuY2UoU3RyaW5nKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBzZXREZWZpbml0aW9uKCkgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLlB1dFRhZy5zZXROYW1lKFN0cmluZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkdldFRhZy5zZXROYW1lKFN0cmluZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSW5jbHVkZVRhZy5zZXROYW1lKFN0cmluZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST51c2Ugc2V0UGFnZShTdHJpbmcpIGluc3RlYWQ8L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNzZXRQYXJzZXJEZWJ1Z0xldmVsKGludCkiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5zZXRQYXJzZXJEZWJ1Z0xldmVsKGludCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgY29tbW9ucy1sb2dnaW5nIG1lY2hhbmlzbS48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLlB1dFRhZy5zZXRSb2xlKFN0cmluZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkdldFRhZy5zZXRSb2xlKFN0cmluZyk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjc2V0VGVtcGxhdGUoamF2YS5sYW5nLlN0cmluZykiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5JbnNlcnRUYWcuc2V0VGVtcGxhdGUoU3RyaW5nKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI3NldFVzZXJEZWJ1Z0xldmVsKGludCkiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zVXRpbC5zZXRVc2VyRGVidWdMZXZlbChpbnQpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIGNvbW1vbnMtbG9nZ2luZyBwYWNrYWdlIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3RvSGV4KGJ5dGVbXSkiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24udG9IZXgoYnl0ZVtdKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlRoaXMgbWV0aG9kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIHJlbGVhc2UgYWZ0ZXIgU3RydXRzIDEuMS48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwjdG9TdHJpbmcoKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudC50b1N0cmluZygpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZUJ5dGUoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvci52YWxpZGF0ZUJ5dGUoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUJ5dGUoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUJ5dGUoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZUNyZWRpdENhcmQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvci52YWxpZGF0ZUNyZWRpdENhcmQoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUNyZWRpdENhcmQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUNyZWRpdENhcmQoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+CisKKyAgVHJhbnNsYXRlZCB0byBKYXZhIGJ5IFRlZCBIdXN0ZWQgKDxhIGhyZWY9Ii9vcmdcYXBhY2hlXHN0cnV0c1x1dGlsL21haWx0bzpodXN0ZWRAYXBhY2hlLm9yZyI+aHVzdGVkQGFwYWNoZS5vcmcKKyAgPC9hPikuPGJyPgorICAmbmJzcDsmbmJzcDsmbmJzcDsgUmVmZXJlbmNlIFNlYW4gTS4gQnVya2UncyBzY3JpcHQgYXQgaHR0cDovL3d3dy5saW5nLm53dS5lZHUvfnNidXJrZS9wdWIvbHVobl9saWIucGwKKyAgPC9wPjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVEYXRlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5TdHJ1dHNWYWxpZGF0b3IudmFsaWRhdGVEYXRlKE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBIdHRwU2VydmxldFJlcXVlc3QpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVEYXRlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVEYXRlKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVEb3VibGUoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvci52YWxpZGF0ZURvdWJsZShPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRG91YmxlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVEb3VibGUoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZUVtYWlsKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5TdHJ1dHNWYWxpZGF0b3IudmFsaWRhdGVFbWFpbChPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRW1haWwoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUVtYWlsKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPgorCisgIEJhc2VkIG9uIGEgc2NyaXB0IGJ5IFNhbmRlZXAgVi4gVGFtaGFua2FyIChzdGFtaGFua2FyQGhvdG1haWwuY29tKSwgaHR0cDovL2phdmFzY3JpcHQuaW50ZXJuZXQuY29tCisgIDwvcD48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlRmxvYXQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvci52YWxpZGF0ZUZsb2F0KE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBIdHRwU2VydmxldFJlcXVlc3QpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVGbG9hdChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlRmxvYXQoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZUludGVnZXIoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvci52YWxpZGF0ZUludGVnZXIoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUludGVnZXIoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUludGVnZXIoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZUxvbmcoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvci52YWxpZGF0ZUxvbmcoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUxvbmcoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUxvbmcoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZU1hc2soamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvci52YWxpZGF0ZU1hc2soT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZU1hc2soamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZU1hc2soT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZU1heExlbmd0aChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yLnZhbGlkYXRlTWF4TGVuZ3RoKE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBIdHRwU2VydmxldFJlcXVlc3QpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVNYXhMZW5ndGgoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZU1heExlbmd0aChPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlTWluTGVuZ3RoKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5TdHJ1dHNWYWxpZGF0b3IudmFsaWRhdGVNaW5MZW5ndGgoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZU1pbkxlbmd0aChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlTWluTGVuZ3RoKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlUmFuZ2UoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRmllbGRDaGVja3MudmFsaWRhdGVSYW5nZShPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlSW50UmFuZ2UoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUludFJhbmdlKGphdmEubGFuZy5PYmplY3Qsb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCxvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlUmFuZ2UoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvci52YWxpZGF0ZVJhbmdlKE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBIdHRwU2VydmxldFJlcXVlc3QpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVJbnRSYW5nZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlSW50UmFuZ2UoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZVJlcXVpcmVkKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5TdHJ1dHNWYWxpZGF0b3IudmFsaWRhdGVSZXF1aXJlZChPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlUmVxdWlyZWQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZVJlcXVpcmVkKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVTaG9ydChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yLnZhbGlkYXRlU2hvcnQoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZVNob3J0KGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVTaG9ydChPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RGVwcmVjYXRlZCBDb25zdHJ1Y3RvcnM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwjQXBwbGljYXRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuTW9kdWxlQ29uZmlnSW1wbCkiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BcHBsaWNhdGlvbkNvbmZpZyhNb2R1bGVDb25maWdJbXBsKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPk9ubHkgdXNlZCB3aGlsZSB3ZSBhcmUgZGVwcmVjYXRpbmcgQXBwbGljYXRpb25Db25maWcgdG8gaW5zdXJlIG1heGltdW0gY29tcGF0YWJpbGl0eS48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwjQ29tcG9uZW50Q29udGV4dChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dChDb21wb25lbnREZWZpbml0aW9uKTwvQT4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxJPlVzZSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwjQ29tcG9uZW50Q29udGV4dChqYXZhLnV0aWwuTWFwKSI+PENPREU+Q29tcG9uZW50Q29udGV4dC5Db21wb25lbnRDb250ZXh0KE1hcCBhdHRyaWJ1dGVzKTwvQ09ERT48L0E+IGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sI0NvbnRlbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnQoU3RyaW5nLCBTdHJpbmcpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sI0NvbnRlbnRNYXAoKSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudE1hcCgpPC9BPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI01vZHVsZUNvbmZpZ0ltcGwob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuTW9kdWxlQ29uZmlnSW1wbCkiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLk1vZHVsZUNvbmZpZ0ltcGwoTW9kdWxlQ29uZmlnSW1wbCk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Pbmx5IHVzZWQgd2hpbGUgd2UgYXJlIGRlcHJlY2F0aW5nIEFwcGxpY2F0aW9uQ29uZmlnIHRvIGluc3VyZSBtYXhpbXVtIGNvbXBhdGFiaWxpdHkuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNNdWx0aXBhcnRFbGVtZW50KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJ5dGVbXSkiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRFbGVtZW50KFN0cmluZywgU3RyaW5nLCBTdHJpbmcsIGJ5dGVbXSk8L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8ST5Vc2UgdGhlIGNvbnN0cnVjdG9yIHRoYXQgdGFrZXMgYW4gRmlsZSBhcyBhbiBhcmd1bWVudAorICAgICAgICAgICAgIGFzIG9wcG9zZWQgdG8gYSBieXRlIGFycmF5IGFyZ3VtZW50LCB3aGljaCBjYW4gY2F1c2UKKyAgICAgICAgICAgICBtZW1vcnkgcHJvYmxlbXMuPC9JPiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5QYWNrYWdlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSJpbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9ImFsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9ImFsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvaGVscC1kb2MuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9oZWxwLWRvYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjYmViZjAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvaGVscC1kb2MuaHRtbApAQCAtMCwwICsxLDE4MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDoxMSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0FQSSBIZWxwIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSJzdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJBUEkgSGVscCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+UGFja2FnZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5IZWxwPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9ImluZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iaGVscC1kb2MuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgxPgorSG93IFRoaXMgQVBJIERvY3VtZW50IElzIE9yZ2FuaXplZDwvSDE+Cis8L0NFTlRFUj4KK1RoaXMgQVBJIChBcHBsaWNhdGlvbiBQcm9ncmFtbWluZyBJbnRlcmZhY2UpIGRvY3VtZW50IGhhcyBwYWdlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBpdGVtcyBpbiB0aGUgbmF2aWdhdGlvbiBiYXIsIGRlc2NyaWJlZCBhcyBmb2xsb3dzLjxIMz4KK092ZXJ2aWV3PC9IMz4KKzxCTE9DS1FVT1RFPgorCis8UD4KK1RoZSA8QSBIUkVGPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiPk92ZXJ2aWV3PC9BPiBwYWdlIGlzIHRoZSBmcm9udCBwYWdlIG9mIHRoaXMgQVBJIGRvY3VtZW50IGFuZCBwcm92aWRlcyBhIGxpc3Qgb2YgYWxsIHBhY2thZ2VzIHdpdGggYSBzdW1tYXJ5IGZvciBlYWNoLiAgVGhpcyBwYWdlIGNhbiBhbHNvIGNvbnRhaW4gYW4gb3ZlcmFsbCBkZXNjcmlwdGlvbiBvZiB0aGUgc2V0IG9mIHBhY2thZ2VzLjwvQkxPQ0tRVU9URT4KKzxIMz4KK1BhY2thZ2U8L0gzPgorPEJMT0NLUVVPVEU+CisKKzxQPgorRWFjaCBwYWNrYWdlIGhhcyBhIHBhZ2UgdGhhdCBjb250YWlucyBhIGxpc3Qgb2YgaXRzIGNsYXNzZXMgYW5kIGludGVyZmFjZXMsIHdpdGggYSBzdW1tYXJ5IGZvciBlYWNoLiBUaGlzIHBhZ2UgY2FuIGNvbnRhaW4gZm91ciBjYXRlZ29yaWVzOjxVTD4KKzxMST5JbnRlcmZhY2VzIChpdGFsaWMpPExJPkNsYXNzZXM8TEk+RXhjZXB0aW9uczxMST5FcnJvcnM8L1VMPgorPC9CTE9DS1FVT1RFPgorPEgzPgorQ2xhc3MvSW50ZXJmYWNlPC9IMz4KKzxCTE9DS1FVT1RFPgorCis8UD4KK0VhY2ggY2xhc3MsIGludGVyZmFjZSwgbmVzdGVkIGNsYXNzIGFuZCBuZXN0ZWQgaW50ZXJmYWNlIGhhcyBpdHMgb3duIHNlcGFyYXRlIHBhZ2UuIEVhY2ggb2YgdGhlc2UgcGFnZXMgaGFzIHRocmVlIHNlY3Rpb25zIGNvbnNpc3Rpbmcgb2YgYSBjbGFzcy9pbnRlcmZhY2UgZGVzY3JpcHRpb24sIHN1bW1hcnkgdGFibGVzLCBhbmQgZGV0YWlsZWQgbWVtYmVyIGRlc2NyaXB0aW9uczo8VUw+Cis8TEk+Q2xhc3MgaW5oZXJpdGFuY2UgZGlhZ3JhbTxMST5EaXJlY3QgU3ViY2xhc3NlczxMST5BbGwgS25vd24gU3ViaW50ZXJmYWNlczxMST5BbGwgS25vd24gSW1wbGVtZW50aW5nIENsYXNzZXM8TEk+Q2xhc3MvaW50ZXJmYWNlIGRlY2xhcmF0aW9uPExJPkNsYXNzL2ludGVyZmFjZSBkZXNjcmlwdGlvbgorPFA+Cis8TEk+TmVzdGVkIENsYXNzIFN1bW1hcnk8TEk+RmllbGQgU3VtbWFyeTxMST5Db25zdHJ1Y3RvciBTdW1tYXJ5PExJPk1ldGhvZCBTdW1tYXJ5Cis8UD4KKzxMST5GaWVsZCBEZXRhaWw8TEk+Q29uc3RydWN0b3IgRGV0YWlsPExJPk1ldGhvZCBEZXRhaWw8L1VMPgorRWFjaCBzdW1tYXJ5IGVudHJ5IGNvbnRhaW5zIHRoZSBmaXJzdCBzZW50ZW5jZSBmcm9tIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhhdCBpdGVtLiBUaGUgc3VtbWFyeSBlbnRyaWVzIGFyZSBhbHBoYWJldGljYWwsIHdoaWxlIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbnMgYXJlIGluIHRoZSBvcmRlciB0aGV5IGFwcGVhciBpbiB0aGUgc291cmNlIGNvZGUuIFRoaXMgcHJlc2VydmVzIHRoZSBsb2dpY2FsIGdyb3VwaW5ncyBlc3RhYmxpc2hlZCBieSB0aGUgcHJvZ3JhbW1lci48L0JMT0NLUVVPVEU+Cis8SDM+CitVc2U8L0gzPgorPEJMT0NLUVVPVEU+CitFYWNoIGRvY3VtZW50ZWQgcGFja2FnZSwgY2xhc3MgYW5kIGludGVyZmFjZSBoYXMgaXRzIG93biBVc2UgcGFnZS4gIFRoaXMgcGFnZSBkZXNjcmliZXMgd2hhdCBwYWNrYWdlcywgY2xhc3NlcywgbWV0aG9kcywgY29uc3RydWN0b3JzIGFuZCBmaWVsZHMgdXNlIGFueSBwYXJ0IG9mIHRoZSBnaXZlbiBjbGFzcyBvciBwYWNrYWdlLiBHaXZlbiBhIGNsYXNzIG9yIGludGVyZmFjZSBBLCBpdHMgVXNlIHBhZ2UgaW5jbHVkZXMgc3ViY2xhc3NlcyBvZiBBLCBmaWVsZHMgZGVjbGFyZWQgYXMgQSwgbWV0aG9kcyB0aGF0IHJldHVybiBBLCBhbmQgbWV0aG9kcyBhbmQgY29uc3RydWN0b3JzIHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIEEuICBZb3UgY2FuIGFjY2VzcyB0aGlzIHBhZ2UgYnkgZmlyc3QgZ29pbmcgdG8gdGhlIHBhY2thZ2UsIGNsYXNzIG9yIGludGVyZmFjZSwgdGhlbiBjbGlja2luZyBvbiB0aGUgIlVzZSIgbGluayBpbiB0aGUgbmF2aWdhdGlvbiBiYXIuPC9CTE9DS1FVT1RFPgorPEgzPgorVHJlZSAoQ2xhc3MgSGllcmFyY2h5KTwvSDM+Cis8QkxPQ0tRVU9URT4KK1RoZXJlIGlzIGEgPEEgSFJFRj0ib3ZlcnZpZXctdHJlZS5odG1sIj5DbGFzcyBIaWVyYXJjaHk8L0E+IHBhZ2UgZm9yIGFsbCBwYWNrYWdlcywgcGx1cyBhIGhpZXJhcmNoeSBmb3IgZWFjaCBwYWNrYWdlLiBFYWNoIGhpZXJhcmNoeSBwYWdlIGNvbnRhaW5zIGEgbGlzdCBvZiBjbGFzc2VzIGFuZCBhIGxpc3Qgb2YgaW50ZXJmYWNlcy4gVGhlIGNsYXNzZXMgYXJlIG9yZ2FuaXplZCBieSBpbmhlcml0YW5jZSBzdHJ1Y3R1cmUgc3RhcnRpbmcgd2l0aCA8Y29kZT5qYXZhLmxhbmcuT2JqZWN0PC9jb2RlPi4gVGhlIGludGVyZmFjZXMgZG8gbm90IGluaGVyaXQgZnJvbSA8Y29kZT5qYXZhLmxhbmcuT2JqZWN0PC9jb2RlPi48VUw+Cis8TEk+V2hlbiB2aWV3aW5nIHRoZSBPdmVydmlldyBwYWdlLCBjbGlja2luZyBvbiAiVHJlZSIgZGlzcGxheXMgdGhlIGhpZXJhcmNoeSBmb3IgYWxsIHBhY2thZ2VzLjxMST5XaGVuIHZpZXdpbmcgYSBwYXJ0aWN1bGFyIHBhY2thZ2UsIGNsYXNzIG9yIGludGVyZmFjZSBwYWdlLCBjbGlja2luZyAiVHJlZSIgZGlzcGxheXMgdGhlIGhpZXJhcmNoeSBmb3Igb25seSB0aGF0IHBhY2thZ2UuPC9VTD4KKzwvQkxPQ0tRVU9URT4KKzxIMz4KK0RlcHJlY2F0ZWQgQVBJPC9IMz4KKzxCTE9DS1FVT1RFPgorVGhlIDxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj5EZXByZWNhdGVkIEFQSTwvQT4gcGFnZSBsaXN0cyBhbGwgb2YgdGhlIEFQSSB0aGF0IGhhdmUgYmVlbiBkZXByZWNhdGVkLiBBIGRlcHJlY2F0ZWQgQVBJIGlzIG5vdCByZWNvbW1lbmRlZCBmb3IgdXNlLCBnZW5lcmFsbHkgZHVlIHRvIGltcHJvdmVtZW50cywgYW5kIGEgcmVwbGFjZW1lbnQgQVBJIGlzIHVzdWFsbHkgZ2l2ZW4uIERlcHJlY2F0ZWQgQVBJcyBtYXkgYmUgcmVtb3ZlZCBpbiBmdXR1cmUgaW1wbGVtZW50YXRpb25zLjwvQkxPQ0tRVU9URT4KKzxIMz4KK0luZGV4PC9IMz4KKzxCTE9DS1FVT1RFPgorVGhlIDxBIEhSRUY9ImluZGV4LWFsbC5odG1sIj5JbmRleDwvQT4gY29udGFpbnMgYW4gYWxwaGFiZXRpYyBsaXN0IG9mIGFsbCBjbGFzc2VzLCBpbnRlcmZhY2VzLCBjb25zdHJ1Y3RvcnMsIG1ldGhvZHMsIGFuZCBmaWVsZHMuPC9CTE9DS1FVT1RFPgorPEgzPgorUHJldi9OZXh0PC9IMz4KK1RoZXNlIGxpbmtzIHRha2UgeW91IHRvIHRoZSBuZXh0IG9yIHByZXZpb3VzIGNsYXNzLCBpbnRlcmZhY2UsIHBhY2thZ2UsIG9yIHJlbGF0ZWQgcGFnZS48SDM+CitGcmFtZXMvTm8gRnJhbWVzPC9IMz4KK1RoZXNlIGxpbmtzIHNob3cgYW5kIGhpZGUgdGhlIEhUTUwgZnJhbWVzLiAgQWxsIHBhZ2VzIGFyZSBhdmFpbGFibGUgd2l0aCBvciB3aXRob3V0IGZyYW1lcy4KKzxQPgorPEgzPgorU2VyaWFsaXplZCBGb3JtPC9IMz4KK0VhY2ggc2VyaWFsaXphYmxlIG9yIGV4dGVybmFsaXphYmxlIGNsYXNzIGhhcyBhIGRlc2NyaXB0aW9uIG9mIGl0cyBzZXJpYWxpemF0aW9uIGZpZWxkcyBhbmQgbWV0aG9kcy4gVGhpcyBpbmZvcm1hdGlvbiBpcyBvZiBpbnRlcmVzdCB0byByZS1pbXBsZW1lbnRvcnMsIG5vdCB0byBkZXZlbG9wZXJzIHVzaW5nIHRoZSBBUEkuIFdoaWxlIHRoZXJlIGlzIG5vIGxpbmsgaW4gdGhlIG5hdmlnYXRpb24gYmFyLCB5b3UgY2FuIGdldCB0byB0aGlzIGluZm9ybWF0aW9uIGJ5IGdvaW5nIHRvIGFueSBzZXJpYWxpemVkIGNsYXNzIGFuZCBjbGlja2luZyAiU2VyaWFsaXplZCBGb3JtIiBpbiB0aGUgIlNlZSBhbHNvIiBzZWN0aW9uIG9mIHRoZSBjbGFzcyBkZXNjcmlwdGlvbi4KKzxQPgorPEZPTlQgU0laRT0iLTEiPgorPEVNPgorVGhpcyBoZWxwIGZpbGUgYXBwbGllcyB0byBBUEkgZG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgdXNpbmcgdGhlIHN0YW5kYXJkIGRvY2xldC48L0VNPgorPC9GT05UPgorPEJSPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+UGFja2FnZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5IZWxwPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9ImluZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iaGVscC1kb2MuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL2luZGV4LWFsbC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL2luZGV4LWFsbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjOTI5MWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvaW5kZXgtYWxsLmh0bWwKQEAgLTAsMCArMSwxMjA2OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1MCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0luZGV4IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSJzdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJJbmRleCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+UGFja2FnZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5JbmRleDwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImhlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJpbmRleC1hbGwuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8QSBIUkVGPSIjX0FfIj5BPC9BPiA8QSBIUkVGPSIjX0JfIj5CPC9BPiA8QSBIUkVGPSIjX0NfIj5DPC9BPiA8QSBIUkVGPSIjX0RfIj5EPC9BPiA8QSBIUkVGPSIjX0VfIj5FPC9BPiA8QSBIUkVGPSIjX0ZfIj5GPC9BPiA8QSBIUkVGPSIjX0dfIj5HPC9BPiA8QSBIUkVGPSIjX0hfIj5IPC9BPiA8QSBIUkVGPSIjX0lfIj5JPC9BPiA8QSBIUkVGPSIjX0pfIj5KPC9BPiA8QSBIUkVGPSIjX0tfIj5LPC9BPiA8QSBIUkVGPSIjX0xfIj5MPC9BPiA8QSBIUkVGPSIjX01fIj5NPC9BPiA8QSBIUkVGPSIjX05fIj5OPC9BPiA8QSBIUkVGPSIjX09fIj5PPC9BPiA8QSBIUkVGPSIjX1BfIj5QPC9BPiA8QSBIUkVGPSIjX1JfIj5SPC9BPiA8QSBIUkVGPSIjX1NfIj5TPC9BPiA8QSBIUkVGPSIjX1RfIj5UPC9BPiA8QSBIUkVGPSIjX1VfIj5VPC9BPiA8QSBIUkVGPSIjX1ZfIj5WPC9BPiA8QSBIUkVGPSIjX1dfIj5XPC9BPiA8QSBIUkVGPSIjX1hfIj5YPC9BPiA8QSBIUkVGPSIjX1lfIj5ZPC9BPiA8SFI+Cis8QSBOQU1FPSJfQV8iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPkE8L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2Fic29sdXRlVVJMKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5hYnNvbHV0ZVVSTChIdHRwU2VydmxldFJlcXVlc3QsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5DcmVhdGUgYW5kIHJldHVybiBhbiBhYnNvbHV0ZSBVUkwgZm9yIHRoZSBzcGVjaWZpZWQgY29udGV4dC1yZWxhdGl2ZQorIHBhdGgsIGJhc2VkIG9uIHRoZSBzZXJ2ZXIgYW5kIGNvbnRleHQgaW5mb3JtYXRpb24gaW4gdGhlIHNwZWNpZmllZAorIHJlcXVlc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjYWNjZXB0Ij48Qj5hY2NlcHQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4KKzxERD5Db21tYS1kZWxpbWl0ZWQgbGlzdCBvZiBjb250ZW50IHR5cGVzIHRoYXQgYSBzZXJ2ZXIgcHJvY2Vzc2luZyB0aGlzIGZvcm0KKyB3aWxsIGhhbmRsZSBjb3JyZWN0bHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPjxCPmFjY2Vzc2tleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5BY2Nlc3Mga2V5IGNoYXJhY3Rlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db250cm9sbGVyLmh0bWwjYWN0aW9uIj48Qj5hY3Rpb248L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29udHJvbGxlci5odG1sIj5BY3Rpb25Db250cm9sbGVyPC9BPgorPEREPlN0cnV0cyBhY3Rpb24gd3JhcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjYWN0aW9uIj48Qj5hY3Rpb248L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBtb2R1bGUtcmVsYXRpdmUgYWN0aW9uIChiZWdpbm5pbmcgd2l0aCBhIHNsYXNoKSB3aGljaCB3aWxsIGJlCisgY2FsbGVkIGJ5IHRoaXMgbGluaworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNhY3Rpb24iPjxCPmFjdGlvbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIGFjdGlvbiBVUkwgdG8gd2hpY2ggdGhpcyBmb3JtIHNob3VsZCBiZSBzdWJtaXR0ZWQsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPjxCPkFjdGlvbjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPi48REQ+QW4gPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gaXMgYW4gYWRhcHRlciBiZXR3ZWVuIHRoZSBjb250ZW50cyBvZiBhbiBpbmNvbWluZworIEhUVFAgcmVxdWVzdCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYnVzaW5lc3MgbG9naWMgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQgdG8KKyBwcm9jZXNzIHRoaXMgcmVxdWVzdC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI0FDVElPTiI+PEI+QUNUSU9OPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8REQ+Q29udHJvbGxlciBuYW1lIHR5cGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNBQ1RJT05fREVGSU5JVElPTiI+PEI+QUNUSU9OX0RFRklOSVRJT048L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29uc3RhbnQgbmFtZSB1c2VkIHRvIHN0b3JlIGRlZmluaXRpb24gaW4ganNwIGNvbnRleHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sI0FDVElPTl9FUlJPUlNfS0VZIj48Qj5BQ1RJT05fRVJST1JTX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCI+UmVzb3VyY2VzPC9BPgorPEREPlJlc291cmNlcyBrZXkgdGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gaXMgc3RvcmVkIHVuZGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI0FDVElPTl9FUlJPUlNfS0VZIj48Qj5BQ1RJT05fRVJST1JTX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCI+U3RydXRzVmFsaWRhdG9yVXRpbDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXNvdXJjZXMga2V5IHRoZSA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IGlzIHN0b3JlZCB1bmRlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjQUNUSU9OX1NFUlZMRVRfS0VZIj48Qj5BQ1RJT05fU0VSVkxFVF9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCI+R2xvYmFsczwvQT4KKzxERD5UaGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4KKyBpbnN0YW5jZSB3aWxsIGJlIHN0b3JlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjQUNUSU9OX1NFUlZMRVRfS0VZIj48Qj5BQ1RJT05fU0VSVkxFVF9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgR2xvYmFscy5BQ1RJT05fU0VSVkxFVF9LRVkgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0FjdGlvbigpIj48Qj5BY3Rpb24oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNhY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPjxCPmFjdGlvbihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+V3JhcHBlciBmb3IgZ2V0QWN0aW9uKFN0cmluZykKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwiPjxCPkFjdGlvbkNvbXBvbmVudFNlcnZsZXQ8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCI+QWN0aW9uQ29tcG9uZW50U2VydmxldDwvQT4uPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlRpbGVzIG5vdyB1c2VzIEFjdGlvblNlcnZsZXQgd2l0aCBUaWxlc1BsdWdpbiBhbmQgVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLjwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI0FjdGlvbkNvbXBvbmVudFNlcnZsZXQoKSI+PEI+QWN0aW9uQ29tcG9uZW50U2VydmxldCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwiPkFjdGlvbkNvbXBvbmVudFNlcnZsZXQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj48Qj5BY3Rpb25Db25maWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4uPEREPkEgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGFuCisgPGNvZGU+Jmx0O2FjdGlvbiZndDs8L2NvZGU+IGVsZW1lbnQgZnJvbSBhIFN0cnV0cworIG1vZHVsZSBjb25maWd1cmF0aW9uIGZpbGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNBY3Rpb25Db25maWcoKSI+PEI+QWN0aW9uQ29uZmlnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjYWN0aW9uQ29uZmlncyI+PEI+YWN0aW9uQ29uZmlnczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+VGhlIHNldCBvZiBhY3Rpb24gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLCBpZiBhbnksCisga2V5ZWQgYnkgdGhlIDxjb2RlPnBhdGg8L2NvZGU+IHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbnRyb2xsZXIuaHRtbCI+PEI+QWN0aW9uQ29udHJvbGxlcjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29udHJvbGxlci5odG1sIj5BY3Rpb25Db250cm9sbGVyPC9BPi48REQ+U3RydXRzIHdyYXBwZXIgaW1wbGVtZW50YXRpb24gb2YgQ29udHJvbGxlci48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29udHJvbGxlci5odG1sI0FjdGlvbkNvbnRyb2xsZXIob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbikiPjxCPkFjdGlvbkNvbnRyb2xsZXIoQWN0aW9uKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29udHJvbGxlci5odG1sIj5BY3Rpb25Db250cm9sbGVyPC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj48Qj5BY3Rpb25FcnJvcjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT4uPEREPkFuIGVuY2Fwc3VsYXRpb24gb2YgYW4gaW5kaXZpZHVhbCBlcnJvciBtZXNzYWdlIHJldHVybmVkIGJ5IHRoZQorIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiBhbiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiwgY29uc2lzdGluZworIG9mIGEgbWVzc2FnZSBrZXkgKHRvIGJlIHVzZWQgdG8gbG9vayB1cCBtZXNzYWdlIHRleHQgaW4gYW4gYXBwcm9wcmlhdGUKKyBtZXNzYWdlIHJlc291cmNlcyBkYXRhYmFzZSkgcGx1cyB1cCB0byBmb3VyIHBsYWNlaG9sZGVyIG9iamVjdHMgdGhhdCBjYW4KKyBiZSB1c2VkIGZvciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IGluIHRoZSBtZXNzYWdlIHRleHQuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sI0FjdGlvbkVycm9yKGphdmEubGFuZy5TdHJpbmcpIj48Qj5BY3Rpb25FcnJvcihTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPgorPEREPkNvbnN0cnVjdCBhbiBhY3Rpb24gZXJyb3Igd2l0aCBubyByZXBsYWNlbWVudCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwjQWN0aW9uRXJyb3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjxCPkFjdGlvbkVycm9yKFN0cmluZywgT2JqZWN0KTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT4KKzxERD5Db25zdHJ1Y3QgYW4gYWN0aW9uIGVycm9yIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwjQWN0aW9uRXJyb3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+PEI+QWN0aW9uRXJyb3IoU3RyaW5nLCBPYmplY3RbXSk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sI0FjdGlvbkVycm9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48Qj5BY3Rpb25FcnJvcihTdHJpbmcsIE9iamVjdCwgT2JqZWN0KTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT4KKzxERD5Db25zdHJ1Y3QgYW4gYWN0aW9uIGVycm9yIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwjQWN0aW9uRXJyb3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjxCPkFjdGlvbkVycm9yKFN0cmluZywgT2JqZWN0LCBPYmplY3QsIE9iamVjdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sI0FjdGlvbkVycm9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48Qj5BY3Rpb25FcnJvcihTdHJpbmcsIE9iamVjdCwgT2JqZWN0LCBPYmplY3QsIE9iamVjdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+PEI+QWN0aW9uRXJyb3JzPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+LjxERD5BIGNsYXNzIHRoYXQgZW5jYXBzdWxhdGVzIHRoZSBlcnJvciBtZXNzYWdlcyBiZWluZyByZXBvcnRlZCBieQorIHRoZSA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2Qgb2YgYW4gPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCNBY3Rpb25FcnJvcnMoKSI+PEI+QWN0aW9uRXJyb3JzKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4KKzxERD5DcmVhdGUgYW4gZW1wdHkgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sI0FjdGlvbkVycm9ycyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzKSI+PEI+QWN0aW9uRXJyb3JzKEFjdGlvbkVycm9ycyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4KKzxERD5DcmVhdGUgYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgZ2l2ZW4gCisgbWVzc2FnZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkV4Y2VwdGlvbi5odG1sIj48Qj5BY3Rpb25FeGNlcHRpb248L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXhjZXB0aW9uLmh0bWwiPkFjdGlvbkV4Y2VwdGlvbjwvQT4uPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWc8L0k+PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FeGNlcHRpb24uaHRtbCNBY3Rpb25FeGNlcHRpb24oKSI+PEI+QWN0aW9uRXhjZXB0aW9uKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXhjZXB0aW9uLmh0bWwiPkFjdGlvbkV4Y2VwdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj48Qj5BY3Rpb25Gb3JtPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4uPEREPkFuIDxzdHJvbmc+QWN0aW9uRm9ybTwvc3Ryb25nPiBpcyBhIEphdmFCZWFuIG9wdGlvbmFsbHkgYXNzb2NpYXRlZCB3aXRoCisgb25lIG9yIG1vcmUgPGNvZGU+QWN0aW9uTWFwcGluZ3M8L2NvZGU+LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI0FjdGlvbkZvcm0oKSI+PEI+QWN0aW9uRm9ybSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+PEI+QWN0aW9uRm9ybUJlYW48L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+LjxERD5BbiA8c3Ryb25nPkFjdGlvbkZvcm1CZWFuPC9zdHJvbmc+IGlzIHRoZSBkZWZpbml0aW9uIG9mIGEgZm9ybSBiZWFuIHRoYXQKKyBpcyBsb2FkZWQgZnJvbSBhIDxjb2RlPiZsdDtmb3JtLWJlYW4mZ3Q7PC9jb2RlPiBlbGVtZW50IGluIHRoZSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sI0FjdGlvbkZvcm1CZWFuKCkiPjxCPkFjdGlvbkZvcm1CZWFuKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+Cis8REQ+Q29uc3RydWN0IGFuIGluc3RhbmNlIHdpdGggZGVmYXVsdCB2YXNsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sI0FjdGlvbkZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5BY3Rpb25Gb3JtQmVhbihTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+Cis8REQ+Q29uc3RydWN0IGFuIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj48Qj5BY3Rpb25Gb3JtQmVhbnM8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPkFjdGlvbkZvcm1CZWFuczwvQT4uPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IGNvbGxlY3Rpb24gb2YgRm9ybUJlYW5Db25maWcgaW5zdGFuY2VzCisgIGluIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT48L0k+PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCNBY3Rpb25Gb3JtQmVhbnMoKSI+PEI+QWN0aW9uRm9ybUJlYW5zKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPkFjdGlvbkZvcm1CZWFuczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj48Qj5BY3Rpb25Gb3J3YXJkPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4uPEREPkFuIDxzdHJvbmc+QWN0aW9uRm9yd2FyZDwvc3Ryb25nPiByZXByZXNlbnRzIGEgZGVzdGluYXRpb24gdG8gd2hpY2ggdGhlCisgY29udHJvbGxlciBzZXJ2bGV0LCA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiwgbWlnaHQgYmUgZGlyZWN0ZWQgdG8KKyBwZXJmb3JtIGEgPGNvZGU+UmVxdWVzdERpc3BhdGNoZXIuZm9yd2FyZCgpPC9jb2RlPiBvcgorIDxjb2RlPkh0dHBTZXJ2bGV0UmVzcG9uc2Uuc2VuZFJlZGlyZWN0KCk8L2NvZGU+IHRvLCBhcyBhIHJlc3VsdCBvZgorIHByb2Nlc3NpbmcgYWN0aXZpdGllcyBvZiBhbiA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI0FjdGlvbkZvcndhcmQoKSI+PEI+QWN0aW9uRm9yd2FyZCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCBkZWZhdWx0IHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI0FjdGlvbkZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPjxCPkFjdGlvbkZvcndhcmQoU3RyaW5nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBwYXRoLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjQWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PEI+QWN0aW9uRm9yd2FyZChTdHJpbmcsIGJvb2xlYW4pPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhdGggYW5kIHJlZGlyZWN0IGZsYWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCNBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48Qj5BY3Rpb25Gb3J3YXJkKFN0cmluZywgU3RyaW5nLCBib29sZWFuKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBwYXRoIGFuZCByZWRpcmVjdCBmbGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwjQWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuLCBib29sZWFuKSI+PEI+QWN0aW9uRm9yd2FyZChTdHJpbmcsIFN0cmluZywgYm9vbGVhbiwgYm9vbGVhbik8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj48Qj5BY3Rpb25Gb3J3YXJkczwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT4uPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IGNvbGxlY3Rpb24gb2YgRm9yd2FyZENvbmZpZyBpbnN0YW5jZXMgaW4KKyAgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPiBhbmQgQWN0aW9uQ29uZmlnPC9JPjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNBY3Rpb25Gb3J3YXJkcygpIj48Qj5BY3Rpb25Gb3J3YXJkcygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPkFjdGlvbkZvcndhcmRzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPjxCPkFjdGlvbk1hcHBpbmc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPi48REQ+QW4gPHN0cm9uZz5BY3Rpb25NYXBwaW5nPC9zdHJvbmc+IHJlcHJlc2VudHMgdGhlIGluZm9ybWF0aW9uIHRoYXQgdGhlCisgY29udHJvbGxlciBzZXJ2bGV0LCA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiwga25vd3MgYWJvdXQgdGhlIG1hcHBpbmcKKyBvZiBhIHBhcnRpY3VsYXIgcmVxdWVzdCB0byBhbiBpbnN0YW5jZSBvZiBhIHBhcnRpY3VsYXIgYWN0aW9uIGNsYXNzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI0FjdGlvbk1hcHBpbmcoKSI+PEI+QWN0aW9uTWFwcGluZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjYWN0aW9uTWFwcGluZ0NsYXNzIj48Qj5hY3Rpb25NYXBwaW5nQ2xhc3M8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPlRoZSBkZWZhdWx0IGNsYXNzIG5hbWUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGFjdGlvbiBtYXBwaW5nCisgaW5zdGFuY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25NYXBwaW5nRmFjdG9yeS5odG1sIj48Qj5BY3Rpb25NYXBwaW5nRmFjdG9yeTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25NYXBwaW5nRmFjdG9yeS5odG1sIj5BY3Rpb25NYXBwaW5nRmFjdG9yeTwvQT4uPEREPkFuIG9iamVjdCBjcmVhdGlvbiBmYWN0b3J5IHdoaWNoIGNyZWF0ZXMgYWN0aW9uIG1hcHBpbmcgaW5zdGFuY2VzLCB0YWtpbmcKKyBpbnRvIGFjY291bnQgdGhlIGRlZmF1bHQgY2xhc3MgbmFtZSwgd2hpY2ggbWF5IGhhdmUgYmVlbiBzcGVjaWZpZWQgb24gdGhlCisgcGFyZW50IGVsZW1lbnQgYW5kIHdoaWNoIGlzIG1hZGUgYXZhaWxhYmxlIHRocm91Z2ggdGhlIG9iamVjdCBvbiB0aGUgdG9wCisgb2YgdGhlIHN0YWNrLCB3aGljaCBtdXN0IGJlIGEKKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnPC9jb2RlPi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbk1hcHBpbmdGYWN0b3J5Lmh0bWwjQWN0aW9uTWFwcGluZ0ZhY3RvcnkoKSI+PEI+QWN0aW9uTWFwcGluZ0ZhY3RvcnkoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25NYXBwaW5nRmFjdG9yeS5odG1sIj5BY3Rpb25NYXBwaW5nRmFjdG9yeTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+PEI+QWN0aW9uTWFwcGluZ3M8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+LjxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIG9mIEFjdGlvbkNvbmZpZyBpbnN0YW5jZXMgaW4KKyAgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPjwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjQWN0aW9uTWFwcGluZ3MoKSI+PEI+QWN0aW9uTWFwcGluZ3MoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5BY3Rpb25NYXBwaW5nczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj48Qj5BY3Rpb25NZXNzYWdlPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+QWN0aW9uTWVzc2FnZTwvQT4uPEREPkFuIGVuY2Fwc3VsYXRpb24gb2YgYW4gaW5kaXZpZHVhbCBtZXNzYWdlIHJldHVybmVkIGJ5IHRoZQorIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiBhbiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiwgY29uc2lzdGluZworIG9mIGEgbWVzc2FnZSBrZXkgKHRvIGJlIHVzZWQgdG8gbG9vayB1cCBtZXNzYWdlIHRleHQgaW4gYW4gYXBwcm9wcmlhdGUKKyBtZXNzYWdlIHJlc291cmNlcyBkYXRhYmFzZSkgcGx1cyB1cCB0byBmb3VyIHBsYWNlaG9sZGVyIG9iamVjdHMgdGhhdCBjYW4KKyBiZSB1c2VkIGZvciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IGluIHRoZSBtZXNzYWdlIHRleHQuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlLmh0bWwjQWN0aW9uTWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+QWN0aW9uTWVzc2FnZShTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+QWN0aW9uTWVzc2FnZTwvQT4KKzxERD5Db25zdHJ1Y3QgYW4gYWN0aW9uIG1lc3NhZ2Ugd2l0aCBubyByZXBsYWNlbWVudCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCNBY3Rpb25NZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48Qj5BY3Rpb25NZXNzYWdlKFN0cmluZywgT2JqZWN0KTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlLmh0bWwiPkFjdGlvbk1lc3NhZ2U8L0E+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBtZXNzYWdlIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCNBY3Rpb25NZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3RbXSkiPjxCPkFjdGlvbk1lc3NhZ2UoU3RyaW5nLCBPYmplY3RbXSk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj5BY3Rpb25NZXNzYWdlPC9BPgorPEREPkNvbnN0cnVjdCBhbiBhY3Rpb24gbWVzc2FnZSB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlLmh0bWwjQWN0aW9uTWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+QWN0aW9uTWVzc2FnZShTdHJpbmcsIE9iamVjdCwgT2JqZWN0KTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlLmh0bWwiPkFjdGlvbk1lc3NhZ2U8L0E+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBtZXNzYWdlIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCNBY3Rpb25NZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48Qj5BY3Rpb25NZXNzYWdlKFN0cmluZywgT2JqZWN0LCBPYmplY3QsIE9iamVjdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj5BY3Rpb25NZXNzYWdlPC9BPgorPEREPkNvbnN0cnVjdCBhbiBhY3Rpb24gbWVzc2FnZSB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlLmh0bWwjQWN0aW9uTWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+QWN0aW9uTWVzc2FnZShTdHJpbmcsIE9iamVjdCwgT2JqZWN0LCBPYmplY3QsIE9iamVjdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj5BY3Rpb25NZXNzYWdlPC9BPgorPEREPkNvbnN0cnVjdCBhbiBhY3Rpb24gbWVzc2FnZSB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj48Qj5BY3Rpb25NZXNzYWdlczwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT4uPEREPkEgY2xhc3MgdGhhdCBlbmNhcHN1bGF0ZXMgbWVzc2FnZXMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sIj48Qj5BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sIj5BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbTwvQT4uPEREPlRoaXMgY2xhc3MgaXMgdXNlZCB0byBzdG9yZSBhIHNldCBvZiBtZXNzYWdlcyBhc3NvY2lhdGVkIHdpdGggYQorIHByb3BlcnR5L2tleSBhbmQgdGhlIHBvc2l0aW9uIGl0IHdhcyBpbml0aWFsbHkgYWRkZWQgdG8gbGlzdC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtLmh0bWwjQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0oamF2YS51dGlsLkxpc3QsIGludCkiPjxCPkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtKExpc3QsIGludCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCI+QWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwjQWN0aW9uTWVzc2FnZXMoKSI+PEI+QWN0aW9uTWVzc2FnZXMoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT4KKzxERD5DcmVhdGUgYW4gZW1wdHkgPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNBY3Rpb25NZXNzYWdlcyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZXMpIj48Qj5BY3Rpb25NZXNzYWdlcyhBY3Rpb25NZXNzYWdlcyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+Cis8REQ+Q3JlYXRlIGFuIDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPiBvYmplY3QgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgZ2l2ZW4gCisgbWVzc2FnZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNhY3Rpb25zIj48Qj5hY3Rpb25zPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPlRoZSBzZXQgb2YgQWN0aW9uIGluc3RhbmNlcyB0aGF0IGhhdmUgYmVlbiBjcmVhdGVkIGFuZCBpbml0aWFsaXplZCwKKyBrZXllZCBieSB0aGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgQWN0aW9uIGNsYXNzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPjxCPkFjdGlvblNlcnZsZXQ8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPi48REQ+PHN0cm9uZz5BY3Rpb25TZXJ2bGV0PC9zdHJvbmc+IHJlcHJlc2VudHMgdGhlICJjb250cm9sbGVyIiBpbiB0aGUKKyBNb2RlbC1WaWV3LUNvbnRyb2xsZXIgKE1WQykgZGVzaWduIHBhdHRlcm4gZm9yIHdlYiBhcHBsaWNhdGlvbnMgdGhhdCBpcworIGNvbW1vbmx5IGtub3duIGFzICJNb2RlbCAyIi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNBY3Rpb25TZXJ2bGV0KCkiPjxCPkFjdGlvblNlcnZsZXQoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwiPjxCPkFjdGlvblNlcnZsZXRXcmFwcGVyPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwiPkFjdGlvblNlcnZsZXRXcmFwcGVyPC9BPi48REQ+UHJvdmlkZSBhIHdyYXBwZXIgYXJvdW5kIGFuIEFjdGlvblNlcnZsZXQgdG8gZXhwb3NlIG9ubHkKKyB0aG9zZSBtZXRob2RzIG5lZWRlZCBieSBvdGhlciBvYmplY3RzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldFdyYXBwZXIuaHRtbCNBY3Rpb25TZXJ2bGV0V3JhcHBlcihvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPjxCPkFjdGlvblNlcnZsZXRXcmFwcGVyKEFjdGlvblNlcnZsZXQpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwiPkFjdGlvblNlcnZsZXRXcmFwcGVyPC9BPgorPEREPkNyZWF0ZSBvYmplY3QgYW5kIHNldCBzZXJ2bGV0IHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjYWN0aW9uVVJMKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5hY3Rpb25VUkwoSHR0cFNlcnZsZXRSZXF1ZXN0LCBBY3Rpb25Db25maWcsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5SZXR1cm4gdGhlIGNvbnRleHQtcmVsYXRpdmUgVVJMIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIHNwZWNpZmllZAorIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+PENPREU+QWN0aW9uQ29uZmlnPC9DT0RFPjwvQT4sIHJlbGF0aXZlIHRvIHRoZSBtb2R1bGUgYXNzb2NpYXRlZAorIHdpdGggdGhlIGN1cnJlbnQgbW9kdWxlcydzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwjYWRkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcykiPjxCPmFkZChBY3Rpb25NZXNzYWdlcyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+Cis8REQ+QWRkcyB0aGUgbWVzc2FnZXMgZnJvbSB0aGUgZ2l2ZW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IG9iamVjdCB0bworIHRoaXMgc2V0IG9mIG1lc3NhZ2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5odG1sI2FkZChqYXZhLmxhbmcuT2JqZWN0KSI+PEI+YWRkKE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmh0bWwiPlhtbExpc3RBdHRyaWJ1dGU8L0E+Cis8REQ+QWRkIGFuIGVsZW1lbnQgaW4gbGlzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwjYWRkKGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcikiPjxCPmFkZChTdHJpbmcsIEFjdGlvbkVycm9yKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPgorPEREPkFkZCBhbiBlcnJvciBtZXNzYWdlIHRvIHRoZSBzZXQgb2YgZXJyb3JzIGZvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI2FkZChqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZSkiPjxCPmFkZChTdHJpbmcsIEFjdGlvbk1lc3NhZ2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPkFjdGlvbk1lc3NhZ2VzPC9BPgorPEREPkFkZCBhIG1lc3NhZ2UgdG8gdGhlIHNldCBvZiBtZXNzYWdlcyBmb3IgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbExpc3RBdHRyaWJ1dGUuaHRtbCNhZGQob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxBdHRyaWJ1dGUpIj48Qj5hZGQoWG1sQXR0cmlidXRlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbExpc3RBdHRyaWJ1dGUuaHRtbCI+WG1sTGlzdEF0dHJpYnV0ZTwvQT4KKzxERD5BZGQgYW4gZWxlbWVudCBpbiBsaXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRBY3Rpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZykiPjxCPmFkZEFjdGlvbkNvbmZpZyhBY3Rpb25Db25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPgorPEREPkFkZCBhIG5ldyA8Y29kZT5BY3Rpb25Db25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2FkZEFjdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnKSI+PEI+YWRkQWN0aW9uQ29uZmlnKEFjdGlvbkNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4KKzxERD5BZGQgYSBuZXcgPGNvZGU+QWN0aW9uQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKKyB3aXRoIHRoaXMgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCNhZGRBbGwoamF2YS51dGlsLk1hcCkiPjxCPmFkZEFsbChNYXApPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+Cis8REQ+QWRkIGFsbCBhdHRyaWJ1dGVzIHRvIHRoaXMgY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCNhZGRBdHRyaWJ1dGUob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxBdHRyaWJ1dGUpIj48Qj5hZGRBdHRyaWJ1dGUoWG1sQXR0cmlidXRlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCI+WG1sRGVmaW5pdGlvbjwvQT4KKzxERD5BZGQgYW4gYXR0cmlidXRlIHRvIHRoaXMgY29tcG9uZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGREYXRhU291cmNlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnKSI+PEI+YWRkRGF0YVNvdXJjZUNvbmZpZyhEYXRhU291cmNlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5BZGQgYSBuZXcgPGNvZGU+RGF0YVNvdXJjZUNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjYWRkRGF0YVNvdXJjZUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRGF0YVNvdXJjZUNvbmZpZykiPjxCPmFkZERhdGFTb3VyY2VDb25maWcoRGF0YVNvdXJjZUNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4KKzxERD5BZGQgYSBuZXcgPGNvZGU+RGF0YVNvdXJjZUNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZS5odG1sIj48Qj5BZGREYXRhU291cmNlUHJvcGVydHlSdWxlPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGUuaHRtbCI+QWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZTwvQT4uPEREPkNsYXNzIHRoYXQgY2FsbHMgPGNvZGU+YWRkUHJvcGVydHkoKTwvY29kZT4gZm9yIHRoZSB0b3Agb2JqZWN0Cisgb24gdGhlIHN0YWNrLCB3aGljaCBtdXN0IGJlIGEKKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRGF0YVNvdXJjZUNvbmZpZzwvY29kZT4uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BZGREYXRhU291cmNlUHJvcGVydHlSdWxlLmh0bWwjQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZSgpIj48Qj5BZGREYXRhU291cmNlUHJvcGVydHlSdWxlKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZS5odG1sIj5BZGREYXRhU291cmNlUHJvcGVydHlSdWxlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwjYWRkRWxlbWVudChqYXZhLmxhbmcuT2JqZWN0KSI+PEI+YWRkRWxlbWVudChPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT4KKzxERD5TZXQgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwjYWRkRXJyb3IoamF2YS5sYW5nLlN0cmluZykiPjxCPmFkZEVycm9yKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwiPkVycm9yTWVzc2FnZXM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7QWRkIGFuIGVycm9yIG1lc3NhZ2Uga2V5IHRvIHRoZSBhY2N1bXVsYXRlZCBzZXQgb2YgZXJyb3JzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRFeGNlcHRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZykiPjxCPmFkZEV4Y2VwdGlvbkNvbmZpZyhFeGNlcHRpb25Db25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPgorPEREPkFkZCBhIG5ldyA8Y29kZT5FeGNlcHRpb25Db25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2FkZEV4Y2VwdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnKSI+PEI+YWRkRXhjZXB0aW9uQ29uZmlnKEV4Y2VwdGlvbkNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5BZGQgYSBuZXcgPGNvZGU+RXhjZXB0aW9uQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKKyB3aXRoIHRoaXMgYWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGRFeGNlcHRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZykiPjxCPmFkZEV4Y2VwdGlvbkNvbmZpZyhFeGNlcHRpb25Db25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+QWRkIGEgbmV3IDxjb2RlPkV4Y2VwdGlvbkNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjYWRkRmlsZVBhcmFtZXRlcihvcmcuYXBhY2hlLmNvbW1vbnMuZmlsZXVwbG9hZC5GaWxlSXRlbSkiPjxCPmFkZEZpbGVQYXJhbWV0ZXIoRmlsZUl0ZW0pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+QWRkcyBhIGZpbGUgcGFyYW1ldGVyIHRvIHRoZSBzZXQgb2YgZmlsZSBwYXJhbWV0ZXJzIGZvciB0aGlzIHJlcXVlc3QKKyBhbmQgYWxzbyB0byB0aGUgbGlzdCBvZiBhbGwgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwjYWRkRm9ybUJlYW4ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuKSI+PEI+YWRkRm9ybUJlYW4oQWN0aW9uRm9ybUJlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj5BY3Rpb25Gb3JtQmVhbnM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVnaXN0ZXIgYSBmb3JtIGJlYW4gdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2FkZEZvcm1CZWFuQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPjxCPmFkZEZvcm1CZWFuQ29uZmlnKEZvcm1CZWFuQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5BZGQgYSBuZXcgPGNvZGU+Rm9ybUJlYW5Db25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2FkZEZvcm1CZWFuQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPjxCPmFkZEZvcm1CZWFuQ29uZmlnKEZvcm1CZWFuQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPkFkZCBhIG5ldyA8Y29kZT5Gb3JtQmVhbkNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNhZGRGb3JtUHJvcGVydHlDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1Qcm9wZXJ0eUNvbmZpZykiPjxCPmFkZEZvcm1Qcm9wZXJ0eUNvbmZpZyhGb3JtUHJvcGVydHlDb25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPgorPEREPkFkZCBhIG5ldyA8Y29kZT5Gb3JtUHJvcGVydHlDb25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwjYWRkRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCkiPjxCPmFkZEZvcndhcmQoQWN0aW9uRm9yd2FyZCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+QWN0aW9uRm9yd2FyZHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVnaXN0ZXIgYSBsb2dpY2FsIGZvcndhcmRpbmcgdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2FkZEZvcndhcmRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj48Qj5hZGRGb3J3YXJkQ29uZmlnKEZvcndhcmRDb25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPgorPEREPkFkZCBhIG5ldyA8Y29kZT5Gb3J3YXJkQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IG9mIGdsb2JhbAorIGZvcndhcmRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjYWRkRm9yd2FyZENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPjxCPmFkZEZvcndhcmRDb25maWcoRm9yd2FyZENvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5BZGQgYSBuZXcgPGNvZGU+Rm9yd2FyZENvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBvZiBnbG9iYWwKKyBmb3J3YXJkcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBhY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2FkZEZvcndhcmRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj48Qj5hZGRGb3J3YXJkQ29uZmlnKEZvcndhcmRDb25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+QWRkIGEgbmV3IDxjb2RlPkZvcndhcmRDb25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgb2YgZ2xvYmFsCisgZm9yd2FyZHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI2FkZE1hcHBpbmcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48Qj5hZGRNYXBwaW5nKEFjdGlvbk1hcHBpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JlZ2lzdGVyIGEgbG9naWNhbCBtYXBwaW5nIHRvIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnKSI+PEI+YWRkTWVzc2FnZVJlc291cmNlc0NvbmZpZyhNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5BZGQgYSBuZXcgPGNvZGU+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldAorIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjYWRkTWVzc2FnZVJlc291cmNlc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTWVzc2FnZVJlc291cmNlc0NvbmZpZykiPjxCPmFkZE1lc3NhZ2VSZXNvdXJjZXNDb25maWcoTWVzc2FnZVJlc291cmNlc0NvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4KKzxERD5BZGQgYSBuZXcgPGNvZGU+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldAorIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwjYWRkTWlzc2luZyhqYXZhLnV0aWwuTWFwKSI+PEI+YWRkTWlzc2luZyhNYXApPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+Cis8REQ+QWRkIGFsbCBtaXNzaW5nIGF0dHJpYnV0ZXMgdG8gdGhpcyBjb250ZXh0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5odG1sI2FkZE9iamVjdChqYXZhLmxhbmcuT2JqZWN0KSI+PEI+YWRkT2JqZWN0KE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmh0bWwiPlhtbExpc3RBdHRyaWJ1dGU8L0E+Cis8REQ+QWRkIGFuIGVsZW1lbnQgaW4gbGlzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjYWRkT3B0aW9uKGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48Qj5hZGRPcHRpb24oU3RyaW5nQnVmZmVyLCBTdHJpbmcsIFN0cmluZywgYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD5BZGQgYW4gb3B0aW9uIGVsZW1lbnQgdG8gdGhlIHNwZWNpZmllZCBTdHJpbmdCdWZmZXIgYmFzZWQgb24gdGhlCisgc3BlY2lmaWVkIHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNhZGRPcHRpb24oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPjxCPmFkZE9wdGlvbihTdHJpbmdCdWZmZXIsIFN0cmluZywgU3RyaW5nLCBib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+Cis8REQ+QWRkIGFuIG9wdGlvbiBlbGVtZW50IHRvIHRoZSBzcGVjaWZpZWQgU3RyaW5nQnVmZmVyIGJhc2VkIG9uIHRoZQorIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRQbHVnSW5Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLlBsdWdJbkNvbmZpZykiPjxCPmFkZFBsdWdJbkNvbmZpZyhQbHVnSW5Db25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPgorPEREPkFkZCBhIG5ld2x5IGNvbmZpZ3VyZWQgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj48Q09ERT5QbHVnSW5Db25maWc8L0NPREU+PC9BPiBpbnN0YW5jZSB0byB0aGUgc2V0IG9mCisgcGx1Zy1pbiBBY3Rpb25zIGZvciB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjYWRkUGx1Z0luQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5QbHVnSW5Db25maWcpIj48Qj5hZGRQbHVnSW5Db25maWcoUGx1Z0luQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPkFkZCBhIG5ld2x5IGNvbmZpZ3VyZWQgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj48Q09ERT5QbHVnSW5Db25maWc8L0NPREU+PC9BPiBpbnN0YW5jZSB0byB0aGUgc2V0IG9mCisgcGx1Zy1pbiBBY3Rpb25zIGZvciB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwjYWRkUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPmFkZFByb3BlcnR5KFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+UGx1Z0luQ29uZmlnPC9BPgorPEREPkFkZCBhIG5ldyBwcm9wZXJ0eSBuYW1lIGFuZCB2YWx1ZSB0byB0aGUgc2V0IHRoYXQgd2lsbCBiZSB1c2VkIHRvCisgY29uZmlndXJlIHRoZSA8Y29kZT5QbHVnSW48L2NvZGU+IGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwjYWRkUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPmFkZFByb3BlcnR5KFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+Cis8REQ+QWRkIGEgbmV3IGN1c3RvbSBjb25maWd1cmF0aW9uIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdSdWxlU2V0Lmh0bWwjYWRkUnVsZUluc3RhbmNlcyhvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuRGlnZXN0ZXIpIj48Qj5hZGRSdWxlSW5zdGFuY2VzKERpZ2VzdGVyKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdSdWxlU2V0Lmh0bWwiPkNvbmZpZ1J1bGVTZXQ8L0E+Cis8REQ+QWRkIHRoZSBzZXQgb2YgUnVsZSBpbnN0YW5jZXMgZGVmaW5lZCBpbiB0aGlzIFJ1bGVTZXQgdG8gdGhlCisgc3BlY2lmaWVkIDxjb2RlPkRpZ2VzdGVyPC9jb2RlPiBpbnN0YW5jZSwgYXNzb2NpYXRpbmcgdGhlbSB3aXRoCisgb3VyIG5hbWVzcGFjZSBVUkkgKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNhZGRTZXJ2bGV0TWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+YWRkU2VydmxldE1hcHBpbmcoU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5SZW1lbWJlciBhIHNlcnZsZXQgbWFwcGluZyBmcm9tIG91ciB3ZWIgYXBwbGljYXRpb24gZGVwbG95bWVudAorIGRlc2NyaXB0b3IsIGlmIGl0IGlzIGZvciB0aGlzIHNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZy5odG1sIj48Qj5BZGRUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnLmh0bWwiPkFkZFRhZzwvQT4uPEREPkFkZCBhbiBlbGVtZW50IHRvIHRoZSBzdXJyb3VuZGluZyBsaXN0IHRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZy5odG1sI0FkZFRhZygpIj48Qj5BZGRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWcuaHRtbCI+QWRkVGFnPC9BPgorPEREPmRlZmF1bHQgY29uc3RydWN0b3IKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50Lmh0bWwiPjxCPkFkZFRhZ1BhcmVudDwvQj48L0E+IC0gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50Lmh0bWwiPkFkZFRhZ1BhcmVudDwvQT4uPEREPlRhZyBjbGFzc2VzIGltcGxlbWVudGluZyB0aGlzIGludGVyZmFjZSBjYW4gY29udGFpbiBuZXN0ZWQgPGNvZGU+UHV0VGFnPC9jb2RlPnMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNhZGRUZXh0UGFyYW1ldGVyKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuY29tbW9ucy5maWxldXBsb2FkLkZpbGVJdGVtKSI+PEI+YWRkVGV4dFBhcmFtZXRlcihIdHRwU2VydmxldFJlcXVlc3QsIEZpbGVJdGVtKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPkFkZHMgYSByZWd1bGFyIHRleHQgcGFyYW1ldGVyIHRvIHRoZSBzZXQgb2YgdGV4dCBwYXJhbWV0ZXJzIGZvciB0aGlzCisgcmVxdWVzdCBhbmQgYWxzbyB0byB0aGUgbGlzdCBvZiBhbGwgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2FsaWduIj48Qj5hbGlnbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD5UaGUgYWxpZ25tZW50IGZvciB0aGlzIGltYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2FsaWduIj48Qj5hbGlnbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBwcm9wZXJ0eSB0byBzcGVjaWZ5IHdoZXJlIHRvIGFsaWduIHRoZSBpbWFnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjYWxsRWxlbWVudHMiPjxCPmFsbEVsZW1lbnRzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5BIEhhc2h0YWJsZSByZXByZXNlbnRpbmcgYWxsIGVsZW1uZW50cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FsdCI+PEI+YWx0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlRoZSBhbHRlcm5hdGUgdGV4dCBvZiB0aGlzIGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhbHRLZXkiPjxCPmFsdEtleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNhbmNob3IiPjxCPmFuY2hvcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPlRoZSBhbmNob3IgdG8gYmUgYWRkZWQgdG8gdGhlIGVuZCBvZiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluay4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjYW5jaG9yIj48Qj5hbmNob3I8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBhbmNob3IgdG8gYmUgYWRkZWQgdG8gdGhlIGVuZCBvZiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluay4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjYW5jaG9yIj48Qj5hbmNob3I8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPlRoZSBhbmNob3IgdG8gYmUgYWRkZWQgdG8gdGhlIGVuZCBvZiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluay4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2FwcENvbmZpZyI+PEI+YXBwQ29uZmlnPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSBtb2R1bGVDb25maWcgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcHBFeGNlcHRpb24uaHRtbCI+PEI+QXBwRXhjZXB0aW9uPC9CPjwvQT4gLSBleGNlcHRpb24gb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FwcEV4Y2VwdGlvbi5odG1sIj5BcHBFeGNlcHRpb248L0E+LjxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2UgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+PENPREU+TW9kdWxlRXhjZXB0aW9uPC9DT0RFPjwvQT48L0k+PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXBwRXhjZXB0aW9uLmh0bWwjQXBwRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcpIj48Qj5BcHBFeGNlcHRpb24oU3RyaW5nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FwcEV4Y2VwdGlvbi5odG1sIj5BcHBFeGNlcHRpb248L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29uc3RydWN0IGFuIG1vZHVsZSBleGNlcHRpb24gd2l0aCBubyByZXBsYWNlbWVudCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcHBFeGNlcHRpb24uaHRtbCNBcHBFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjxCPkFwcEV4Y2VwdGlvbihTdHJpbmcsIE9iamVjdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcHBFeGNlcHRpb24uaHRtbCI+QXBwRXhjZXB0aW9uPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhbiBtb2R1bGUgZXhjZXB0aW9uIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcHBFeGNlcHRpb24uaHRtbCNBcHBFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+PEI+QXBwRXhjZXB0aW9uKFN0cmluZywgT2JqZWN0W10pPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXBwRXhjZXB0aW9uLmh0bWwiPkFwcEV4Y2VwdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb25zdHJ1Y3QgYW4gYWN0aW9uIGVycm9yIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcHBFeGNlcHRpb24uaHRtbCNBcHBFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjxCPkFwcEV4Y2VwdGlvbihTdHJpbmcsIE9iamVjdCwgT2JqZWN0KTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FwcEV4Y2VwdGlvbi5odG1sIj5BcHBFeGNlcHRpb248L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29uc3RydWN0IGFuIG1vZHVsZSBleGNlcHRpb24gd2l0aCB0aGUgc3BlY2lmaWVkIHJlcGxhY2VtZW50IHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FwcEV4Y2VwdGlvbi5odG1sI0FwcEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+QXBwRXhjZXB0aW9uKFN0cmluZywgT2JqZWN0LCBPYmplY3QsIE9iamVjdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcHBFeGNlcHRpb24uaHRtbCI+QXBwRXhjZXB0aW9uPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhbiBtb2R1bGUgZXhjZXB0aW9uIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcHBFeGNlcHRpb24uaHRtbCNBcHBFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjxCPkFwcEV4Y2VwdGlvbihTdHJpbmcsIE9iamVjdCwgT2JqZWN0LCBPYmplY3QsIE9iamVjdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcHBFeGNlcHRpb24uaHRtbCI+QXBwRXhjZXB0aW9uPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhbiBtb2R1bGUgZXhjZXB0aW9uIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2FwcGxpY2F0aW9uIj48Qj5hcHBsaWNhdGlvbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+VGhlIGFwcGxpY2F0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNBUFBMSUNBVElPTl9LRVkiPjxCPkFQUExJQ0FUSU9OX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sIj5HbG9iYWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBNT0RVTEVfS0VZPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNBUFBMSUNBVElPTl9LRVkiPjxCPkFQUExJQ0FUSU9OX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNNT0RVTEVfS0VZIj48Q09ERT5HbG9iYWxzLk1PRFVMRV9LRVk8L0NPREU+PC9BPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2FwcGxpY2F0aW9uQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPmFwcGxpY2F0aW9uQ2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPlJldHVybiB0aGUgPGNvZGU+Q2xhc3M8L2NvZGU+IG9iamVjdCBmb3IgdGhlIHNwZWNpZmllZCBmdWxseSBxdWFsaWZpZWQKKyBjbGFzcyBuYW1lLCBmcm9tIHRoaXMgd2ViIGFwcGxpY2F0aW9uJ3MgY2xhc3MgbG9hZGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2FwcGxpY2F0aW9uQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPmFwcGxpY2F0aW9uQ2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj5UaWxlc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFJlcXVlc3RVdGlscy5hcHBsaWNhdGlvbkNsYXNzKCkgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI2FwcGxpY2F0aW9uQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPmFwcGxpY2F0aW9uQ2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5UaWxlc1V0aWxJbXBsPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBSZXF1ZXN0VXRpbHMuYXBwbGljYXRpb25DbGFzcygpIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCNhcHBsaWNhdGlvbkNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5hcHBsaWNhdGlvbkNsYXNzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCI+VGlsZXNVdGlsU3RydXRzSW1wbDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgUmVxdWVzdFV0aWxzLmFwcGxpY2F0aW9uQ2xhc3MoKSBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQXBwbGljYXRpb25Db25maWcuaHRtbCI+PEI+QXBwbGljYXRpb25Db25maWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQXBwbGljYXRpb25Db25maWcuaHRtbCI+QXBwbGljYXRpb25Db25maWc8L0E+LjxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2FnZSByZXBsYWNlZCBieSBNb2R1bGVDb25maWcgSW50ZXJmYWNlLjwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwjQXBwbGljYXRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuTW9kdWxlQ29uZmlnSW1wbCkiPjxCPkFwcGxpY2F0aW9uQ29uZmlnKE1vZHVsZUNvbmZpZ0ltcGwpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwiPkFwcGxpY2F0aW9uQ29uZmlnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPk9ubHkgdXNlZCB3aGlsZSB3ZSBhcmUgZGVwcmVjYXRpbmcgQXBwbGljYXRpb25Db25maWcgdG8gaW5zdXJlIG1heGltdW0gY29tcGF0YWJpbGl0eS48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwjQXBwbGljYXRpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPjxCPkFwcGxpY2F0aW9uQ29uZmlnKFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQXBwbGljYXRpb25Db25maWcuaHRtbCI+QXBwbGljYXRpb25Db25maWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29uc3RydWN0IGFuIEFwcGxpY2F0aW9uQ29uZmlnIG9iamVjdCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNhcHBsaWNhdGlvbkluc3RhbmNlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5hcHBsaWNhdGlvbkluc3RhbmNlKFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5SZXR1cm4gYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHNwZWNpZmllZCBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSwKKyBhZnRlciBsb2FkaW5nIHRoZSBjbGFzcyBmcm9tIHRoaXMgd2ViIGFwcGxpY2F0aW9uJ3MgY2xhc3MgbG9hZGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNhcmcwIj48Qj5hcmcwPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5UaGUgZmlyc3Qgb3B0aW9uYWwgYXJndW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2FyZzEiPjxCPmFyZzE8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPlRoZSBzZWNvbmQgb3B0aW9uYWwgYXJndW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2FyZzIiPjxCPmFyZzI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPlRoZSB0aGlyZCBvcHRpb25hbCBhcmd1bWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjYXJnMyI+PEI+YXJnMzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+VGhlIGZvdXJ0aCBvcHRpb25hbCBhcmd1bWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjYXJnNCI+PEI+YXJnNDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+VGhlIGZpZnRoIG9wdGlvbmFsIGFyZ3VtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCNhdHRyaWJ1dGUiPjxCPmF0dHJpYnV0ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIj5HZXRBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2F0dHJpYnV0ZSI+PEI+YXR0cmlidXRlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5OYW1lIG9mIGF0dHJpYnV0ZSBmcm9tIHdoaWNoIHRvIHJlYWQgcGFnZSBuYW1lIHRvIGluY2x1ZGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjYXR0cmlidXRlIj48Qj5hdHRyaWJ1dGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPlRoZSByZXF1ZXN0LXNjb3BlIG9yIHNlc3Npb24tc2NvcGUgYXR0cmlidXRlIG5hbWUgdW5kZXIgd2hpY2ggb3VyCisgZm9ybSBiZWFuIGlzIGFjY2Vzc2VkLCBpZiBpdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgZm9ybSBiZWFuJ3MKKyBzcGVjaWZpZWQgPGNvZGU+bmFtZTwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjQVRUUklCVVRFX01BWF9MRU5HVEhfRVhDRUVERUQiPjxCPkFUVFJJQlVURV9NQVhfTEVOR1RIX0VYQ0VFREVEPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5UaGlzIGlzIHRoZSBTZXJ2bGV0UmVxdWVzdCBhdHRyaWJ1dGUgdGhhdCBzaG91bGQgYmUgc2V0IHdoZW4gYSBtdWx0aXBhcnQgcmVxdWVzdCBpcyBiZWluZyByZWFkCisgYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBpcyBleGNlZWRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwiPjxCPkF0dHJpYnV0ZURlZmluaXRpb248L0I+PC9BPiAtIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwiPkF0dHJpYnV0ZURlZmluaXRpb248L0E+LjxERD5BdHRyaWJ1dGUgZGVmaW5pdGlvbiB1c2VkIGluIGEgY29tcG9uZW50IGRlZmluaXRpb24uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwjYXR0cmlidXRlTmFtZSI+PEI+YXR0cmlidXRlTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT4KKzxERD5OYW1lIG9mIHRoaXMgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNhdHRyaWJ1dGVOYW1lIj48Qj5hdHRyaWJ1dGVOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5OYW1lIG9mIGF0dHJpYnV0ZSB0byBwdXQgaW4gY29tcG9uZW50IGNvbnRleHQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwjYXR0cmlidXRlTmFtZSI+PEI+YXR0cmlidXRlTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sIj5Vc2VBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+VGhlIGF0dHJpYnV0ZSBuYW1lIHRvIGJlIGV4cG9zZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI2F0dHJpYnV0ZXMiPjxCPmF0dHJpYnV0ZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPgorPEREPkNvbXBvbmVudCBhdHRyaWJ1dGVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNhdHRyaWJ1dGVzIj48Qj5hdHRyaWJ1dGVzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5BdHRyaWJ1dGVzIGRlZmluZWQgZm9yIHRoZSBjb21wb25lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCI+PEI+QXR0cmlidXRlVG9TY29wZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiPkF0dHJpYnV0ZVRvU2NvcGVUYWc8L0E+LjxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5JcyAgaXQgIHN0aWxsICBpbiAgdXNlICA/PC9JPjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQXR0cmlidXRlVG9TY29wZVRhZy5odG1sI0F0dHJpYnV0ZVRvU2NvcGVUYWcoKSI+PEI+QXR0cmlidXRlVG9TY29wZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCI+QXR0cmlidXRlVG9TY29wZVRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2F2YWlsYWJsZSgpIj48Qj5hdmFpbGFibGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+Cis8REQ+VGhpcyBtZXRob2QgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBieXRlcyBsZWZ0IHRvIHJlYWQKKyBpbiB0aGUgYnVmZmVyIGJlZm9yZSBpdCBoYXMgdG8gYmUgcmVmaWxsZWQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2F2YWlsYWJsZUluTGluZSgpIj48Qj5hdmFpbGFibGVJbkxpbmUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8L0RMPgorPEhSPgorPEEgTkFNRT0iX0JfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5CPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPjxCPkJhc2VGaWVsZFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4uPEREPkNvbnZlbmllbmNlIGJhc2UgY2xhc3MgZm9yIHRoZSB2YXJpb3VzIGlucHV0IHRhZ3MgZm9yIHRleHQgZmllbGRzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNCYXNlRmllbGRUYWcoKSI+PEI+QmFzZUZpZWxkVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+PEI+QmFzZUhhbmRsZXJUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPi48REQ+QmFzZSBjbGFzcyBmb3IgdGFncyB0aGF0IHJlbmRlciBmb3JtIGVsZW1lbnRzIGNhcGFibGUgb2YgaW5jbHVkaW5nIEphdmFTY3JpcHQKKyBldmVudCBoYW5kbGVycyBhbmQvb3IgQ1NTIFN0eWxlIGF0dHJpYnV0ZXMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjQmFzZUhhbmRsZXJUYWcoKSI+PEI+QmFzZUhhbmRsZXJUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPjxCPkJhc2VJbnB1dFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4uPEREPkFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIHRoZSB2YXJpb3VzIGlucHV0IHRhZ3MuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI0Jhc2VJbnB1dFRhZygpIj48Qj5CYXNlSW5wdXRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwiPjxCPkJhc2VUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4uPEREPlJlbmRlcnMgYW4gSFRNTCA8YmFzZT4gZWxlbWVudCB3aXRoIGFuIGhyZWYgCisgYXR0cmlidXRlIHBvaW50aW5nIHRvIHRoZSBhYnNvbHV0ZSBsb2NhdGlvbiBvZiB0aGUgZW5jbG9zaW5nIEpTUCBwYWdlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjQmFzZVRhZygpIj48Qj5CYXNlVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCNCRUFOX0tFWSI+PEI+QkVBTl9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sIj5Db25zdGFudHM8L0E+Cis8REQ+VGhlIGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBiZWFuIG91ciBmb3JtIGlzIHJlbGF0ZWQgdG8uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNiZWFuQ2xhc3MiPjxCPmJlYW5DbGFzczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4KKzxERD5UaGUgPGNvZGU+RHluYUFjdGlvbkZvcm08L2NvZGU+IGltcGxlbWVudGF0aW9uIDxjb2RlPkNsYXNzPC9jb2RlPiB3aGljaAorIHdlIHdpbGwgdXNlIHRvIGNyZWF0ZSBuZXcgYmVhbiBpbnN0YW5jZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2JlYW5OYW1lIj48Qj5iZWFuTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+QmVhbiBuYW1lIGF0dHJpYnV0ZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNiZWFuTmFtZSI+PEI+YmVhbk5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPk5hbWUgb2YgYmVhbiB1c2VkIGFzIGVudGl0eSB0byBpbmNsdWRlCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSZWZlcmVuY2UuaHRtbCNiZWFuTmFtZSI+PEI+YmVhbk5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj5OZXN0ZWRSZWZlcmVuY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2JlYW5OYW1lIj48Qj5iZWFuTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGZvcm0gYmVhbiB0byAoY3JlYXRlIGFuZCkgdXNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNiZWFuUHJvcGVydHkiPjxCPmJlYW5Qcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+QmVhbiBwcm9wZXJ0eSBhdHRyaWJ1dGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjYmVhblByb3BlcnR5Ij48Qj5iZWFuUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPk5hbWUgb2YgYmVhbiBwcm9wZXJ0eSwgaWYgYW55Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2JlYW5TY29wZSI+PEI+YmVhblNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5CZWFuIHNjb3BlIGF0dHJpYnV0ZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNiZWFuU2NvcGUiPjxCPmJlYW5TY29wZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+U2NvcGUgb2YgYmVhbiwgaWYgYW55Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2JlYW5TY29wZSI+PEI+YmVhblNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5UaGUgc2NvcGUgb2YgdGhlIGZvcm0gYmVhbiB0byAoY3JlYXRlIGFuZCkgdXNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNiZWFuVHlwZSI+PEI+YmVhblR5cGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSB0eXBlIG9mIHRoZSBmb3JtIGJlYW4gdG8gKGNyZWF0ZSBhbmQpIHVzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvU2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZS5odG1sI2JlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZXMpIj48Qj5iZWdpbihBdHRyaWJ1dGVzKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlLmh0bWwiPlNldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGU8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJblNldFByb3BlcnR5UnVsZS5odG1sI2JlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZXMpIj48Qj5iZWdpbihBdHRyaWJ1dGVzKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5TZXRQcm9wZXJ0eVJ1bGUuaHRtbCI+UGx1Z0luU2V0UHJvcGVydHlSdWxlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BZGREYXRhU291cmNlUHJvcGVydHlSdWxlLmh0bWwjYmVnaW4ob3JnLnhtbC5zYXguQXR0cmlidXRlcykiPjxCPmJlZ2luKEF0dHJpYnV0ZXMpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGUuaHRtbCI+QWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNib2R5Ij48Qj5ib2R5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+VGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2JvcmRlciI+PEI+Ym9yZGVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPlRoZSBib3JkZXIgc2l6ZSBhcm91bmQgdGhlIGltYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2JvcmRlciI+PEI+Ym9yZGVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+VGhlIGJvcmRlciBzaXplIGFyb3VuZCB0aGUgaW1hZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNib3VuZGFyeSI+PEI+Ym91bmRhcnk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+VGhlIGJvdW5kYXJ5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2JvdW5kYXJ5Ij48Qj5ib3VuZGFyeTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPlRoZSBib3VuZGFyeSBmb3IgdGhpcyBtdWx0aXBhcnQgcmVxdWVzdAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI2JvdW5kYXJ5Qnl0ZXMiPjxCPmJvdW5kYXJ5Qnl0ZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQT4KKzxERD5ieXRlIGJ1ZmZlciB3aXRoIHRoZSBib3VuZGFyeQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjYm91bmRhcnlCeXRlcyI+PEI+Ym91bmRhcnlCeXRlczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2JvdW5kYXJ5RW5jb3VudGVyZWQiPjxCPmJvdW5kYXJ5RW5jb3VudGVyZWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+V2hldGhlciBvciBub3QgdGhlIGJvdW5kYXJ5IGhhcyBiZWVuIGVuY291bnRlcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI2JvdW5kYXJ5UmVhY2hlZCI+PEI+Ym91bmRhcnlSZWFjaGVkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0E+Cis8REQ+aGF2ZSB3ZSByZWFjaGVkIHRoZSBib3VuZGFyeT8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjYnVmZmVyIj48Qj5idWZmZXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPlRoZSBidWZmZXIgaW50byB3aGljaCB3ZSBhY2N1bXVsYXRlIGxpbmVzIHRvIGJlIGxvZ2dlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2J1ZmZlciI+PEI+YnVmZmVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPlRoZSBieXRlIGFycmF5IHVzZWQgdG8gaG9sZCBidWZmZXJlZCBkYXRhCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI0JVRkZFUl9TSVpFIj48Qj5CVUZGRVJfU0laRTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPkJ1ZmZlciBzaXplIHRvIHVzZSB3aGVuIHJlYWRpbmcgdGhlIGlucHV0IHN0cmVhbS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI0JVRkZFUl9TSVpFIj48Qj5CVUZGRVJfU0laRTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+UmVzb3VyY2VUYWc8L0E+Cis8REQ+QnVmZmVyIHNpemUgdG8gdXNlIHdoZW4gcmVhZGluZyB0aGUgaW5wdXQgc3RyZWFtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPjxCPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPi48REQ+VGhpcyBjbGFzcyBpbXBsZW1lbnRzIGJ1ZmZlcmluZyBmb3IgYW4gSW5wdXRTdHJlYW0gYXMgd2VsbCBhcyBhCisgcmVhZExpbmUgbWV0aG9kLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0oamF2YS5pby5JbnB1dFN0cmVhbSwgaW50LCBsb25nLCBsb25nKSI+PEI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbShJbnB1dFN0cmVhbSwgaW50LCBsb25nLCBsb25nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+Cis8REQ+UHVibGljIGNvbnN0cnVjdG9yIGZvciB0aGlzIGNsYXNzLCBqdXN0IHdyYXBzIHRoZSBJbnB1dFN0cmVhbQorIGdpdmVuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNidWZmZXJMZW5ndGgiPjxCPmJ1ZmZlckxlbmd0aDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWQgZnJvbSB0aGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbSB0aGF0IGFyZQorIGluIHRoZSBidWZmZXIKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2J1ZmZlck9mZnNldCI+PEI+YnVmZmVyT2Zmc2V0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPlRoZSBjdXJyZW50IG9mZnNldCB3ZSdyZSBhdCBpbiB0aGUgYnVmZmVyJ3MgYnl0ZSBhcnJheQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjYnVmZmVyU2l6ZSI+PEI+YnVmZmVyU2l6ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGUgc2l6ZSBvZiB0aGUgYnl0ZSBhcnJheSBidWZmZXIKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNidWZmZXJTaXplIj48Qj5idWZmZXJTaXplPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+VGhlIGFtb3VudCBvZiBkYXRhIHJlYWQgZnJvbSBhIHJlcXVlc3QgYXQgYSB0aW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjYnVmZmVyU2l6ZSI+PEI+YnVmZmVyU2l6ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD5UaGUgaW5wdXQgYnVmZmVyIHNpemUgZm9yIGZpbGUgdXBsb2Fkcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNidW5kbGUiPjxCPmJ1bmRsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPgorPEREPlRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3Igb3VyIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2J1bmRsZSI+PEI+YnVuZGxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBtZXNzYWdlIHJlc291cmNlcyBidW5kbGUgZm9yIG1lc3NhZ2UgbG9va3Vwcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjYnVuZGxlIj48Qj5idW5kbGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9BPgorPEREPlRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3Igb3VyIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2J1bmRsZSI+PEI+YnVuZGxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPk1lc3NhZ2VzVGFnPC9BPgorPEREPlRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3Igb3VyIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNidW5kbGUiPjxCPmJ1bmRsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGNvbnRhaW5pbmcgb3VyIG1lc3NhZ2UKKyByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2J1bmRsZSI+PEI+YnVuZGxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNidW5kbGUiPjxCPmJ1bmRsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI2J1bmRsZSI+PEI+YnVuZGxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSB1bmRlciB3aGljaCB0aGUgbWVzc2FnZSByZXNvdXJjZXMgYnVuZGxlCisgdG8gYmUgdXNlZCBmb3IgdGhpcyBleGNlcHRpb24gaXMgbG9jYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+PEI+QnV0dG9uVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPi48REQ+UmVuZGVycyBhbiBIVE1MIEJVVFRPTiB0YWcgd2l0aGluIHRoZSBTdHJ1dHMgZnJhbWV3b3JrLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCNCdXR0b25UYWcoKSI+PEI+QnV0dG9uVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNieXRlUmVhZCgpIj48Qj5ieXRlUmVhZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2J5dGVzUmVhZCI+PEI+Ynl0ZXNSZWFkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPlRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgcmVhZCBzbyBmYXIuCis8L0RMPgorPEhSPgorPEEgTkFNRT0iX0NfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5DPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2NhY2hlZEN1cnJlbnRDb250ZXh0Ij48Qj5jYWNoZWRDdXJyZW50Q29udGV4dDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+Q3VycmVudCBjb21wb25lbnQgY29udGV4dAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2NhbGN1bGF0ZU1hdGNoVmFsdWVzKCkiPjxCPmNhbGN1bGF0ZU1hdGNoVmFsdWVzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+Q2FsY3VsYXRlIHRoZSBtYXRjaCB2YWx1ZXMgd2Ugd2lsbCBhY3R1YWxseSBiZSB1c2luZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjY2FsY3VsYXRlUG9zdGl4ZXMoamF2YS5sYW5nLlN0cmluZywgamF2YS51dGlsLkxvY2FsZSkiPjxCPmNhbGN1bGF0ZVBvc3RpeGVzKFN0cmluZywgTG9jYWxlKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj5JMThuRmFjdG9yeVNldDwvQT4KKzxERD5DYWxjdWxhdGUgdGhlIHBvc3RpeGVzIGFsb25nIHRoZSBzZWFyY2ggcGF0aCBmcm9tIHRoZSBiYXNlIGJ1bmRsZSB0byB0aGUKKyBidW5kbGUgc3BlY2lmaWVkIGJ5IGJhc2VOYW1lIGFuZCBsb2NhbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sI2NhbGN1bGF0ZVJlbGF0aXZlUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPmNhbGN1bGF0ZVJlbGF0aXZlUHJvcGVydHkoU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwiPk5lc3RlZFByb3BlcnR5SGVscGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNjYWxjdWxhdGVVUkwoKSI+PEI+Y2FsY3VsYXRlVVJMKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGNvbXBsZXRlIFVSTCB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIGRpcmVjdCB0aGUgdXNlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjY2FsbFBhcmVudCgpIj48Qj5jYWxsUGFyZW50KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5GaW5kIHBhcmVudCB0YWcgd2hpY2ggbXVzdCBpbXBsZW1lbnQgQXR0cmlidXRlQ29udGFpbmVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWcuaHRtbCNjYWxsUGFyZW50KCkiPjxCPmNhbGxQYXJlbnQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWcuaHRtbCI+QWRkVGFnPC9BPgorPEREPkNhbGwgcGFyZW50IHRhZyB3aGljaCBtdXN0IGltcGxlbWVudCBBdHRyaWJ1dGVDb250YWluZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0NBTkNFTF9LRVkiPjxCPkNBTkNFTF9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCI+R2xvYmFsczwvQT4KKzxERD5UaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBhIGJvb2xlYW4gPGNvZGU+dHJ1ZTwvY29kZT4KKyB2YWx1ZSBzaG91bGQgYmUgc3RvcmVkIGlmIHRoaXMgcmVxdWVzdCB3YXMgY2FuY2VsbGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sI0NBTkNFTF9QUk9QRVJUWSI+PEI+Q0FOQ0VMX1BST1BFUlRZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCI+Q29uc3RhbnRzPC9BPgorPEREPlRoZSBwcm9wZXJ0eSB1bmRlciB3aGljaCBhIENhbmNlbCBidXR0b24gcHJlc3MgaXMgcmVwb3J0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwjQ0FOQ0VMX1BST1BFUlRZX1giPjxCPkNBTkNFTF9QUk9QRVJUWV9YPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCI+Q29uc3RhbnRzPC9BPgorPEREPlRoZSBwcm9wZXJ0eSB1bmRlciB3aGljaCBhIENhbmNlbCBidXR0b24gcHJlc3MgaXMgcmVwb3J0ZWQsIGlmIHRoZQorIENhbmNlbCBidXR0b24gaXMgcmVuZGVyZWQgYXMgYW4gaW1hZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPjxCPkNhbmNlbFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4uPEREPlRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImNhbmNlbCIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI0NhbmNlbFRhZygpIj48Qj5DYW5jZWxUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI0NBUlJJQUdFX1JFVFVSTiI+PEI+Q0FSUklBR0VfUkVUVVJOPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjY2RhdGEiPjxCPmNkYXRhPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4KKzxERD5IaWRlIEphdmFTY3JpcHQgbWV0aG9kcyBpbiBhIENEQVRBIHNlY3Rpb24gZm9yIFhIVE1MIHdoZW4gInRydWUiLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjY2hlY2tBbmRGaXhGaWxlbmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Y2hlY2tBbmRGaXhGaWxlbmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj48Qj5DaGVja2JveFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+LjxERD5UYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJjaGVja2JveCIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjQ2hlY2tib3hUYWcoKSI+PEI+Q2hlY2tib3hUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI2NoZWNrRXJyb3IoKSI+PEI+Y2hlY2tFcnJvcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+Rmx1c2ggdGhlIHN0cmVhbSBhbmQgY2hlY2sgZm9yIGl0cyBlcnJvciBzdGF0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2NoZWNrRm9yQm91bmRhcnkoKSI+PEI+Y2hlY2tGb3JCb3VuZGFyeSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5pdERlZmluaXRpb25zVGFnLmh0bWwjY2xhc3NuYW1lIj48Qj5jbGFzc25hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCI+SW5pdERlZmluaXRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCNjbGFzc25hbWUiPjxCPmNsYXNzbmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sIj5Vc2VBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+Q2xhc3MgbmFtZSBvZiBvYmplY3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sI2NsYXNzTmFtZSI+PEI+Y2xhc3NOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgPGNvZGU+UGx1Z0luPC9jb2RlPgorIGltcGxlbWVudGF0aW9uIGNsYXNzIGJlaW5nIGNvbmZpZ3VyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2NsYXp6Ij48Qj5jbGF6ejwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPgorPEREPlRoZSBKYXZhIGNsYXNzIHRvIGJlIHVzZWQgZm9yCisgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sI2NsYXp6Ij48Qj5jbGF6ejwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+Cis8REQ+VGhlIEphdmEgY2xhc3MgdG8gYmUgdXNlZCBmb3IKKyA8Y29kZT5Nb2R1bGVDb25maWdGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI2NsYXp6Ij48Qj5jbGF6ejwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCI+RGlzcGF0Y2hBY3Rpb248L0E+Cis8REQ+VGhlIENsYXNzIGluc3RhbmNlIG9mIHRoaXMgPGNvZGU+RGlzcGF0Y2hBY3Rpb248L2NvZGU+IGNsYXNzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI2NsZWFyKCkiPjxCPmNsZWFyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+Cis8REQ+Q2xlYXIgYWxsIG1lc3NhZ2VzIHJlY29yZGVkIGJ5IHRoaXMgb2JqZWN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjY2xlYXIoKSI+PEI+Y2xlYXIoKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sIj5EeW5hQWN0aW9uRm9ybUNsYXNzPC9BPgorPEREPkNsZWFyIG91ciBjYWNoZSBvZiBEeW5hQWN0aW9uRm9ybUNsYXNzIGluc3RhbmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjY2xvc2UoKSI+PEI+Y2xvc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPkNsb3NlIHRoZSBzdHJlYW0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNjbG9zZSgpIj48Qj5jbG9zZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGlzIG1ldGhvZCBhdHRlbXB0cyB0byBjbG9zZSB0aGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjY29sbGVjdGlvbiI+PEI+Y29sbGVjdGlvbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5UaGUgY29sbGVjdGlvbiBvdmVyIHdoaWNoIHdlIHdpbGwgYmUgaXRlcmF0aW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNjb2xsZWN0aW9uIj48Qj5jb2xsZWN0aW9uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgY29sbGVjdGlvbiBjb250YWluaW5nIGJlYW5zIHRoYXQgaGF2ZSBwcm9wZXJ0aWVzIHRvCisgcHJvdmlkZSBib3RoIHRoZSB2YWx1ZXMgYW5kIHRoZSBsYWJlbHMgKGlkZW50aWZpZWQgYnkgdGhlCisgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGFuZCA8Y29kZT5sYWJlbFByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjY29sbGVjdGlvbiI+PEI+Y29sbGVjdGlvbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+VGhlIGFjdHVhbCBjb2xsZWN0aW9uIHRvIGJlIGNvdW50ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjY29scyI+PEI+Y29sczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlRoZSBudW1iZXIgb2YgY2hhcmFjdGVyIGNvbHVtbnMgZm9yIHRoaXMgZmllbGQsIG9yIG5lZ2F0aXZlCisgZm9yIG5vIGxpbWl0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+LjxERD5UaGlzIGNsYXNzIGltcGxlbWVudHMgdGhlIDxjb2RlPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9jb2RlPiBpbnRlcmZhY2UKKyBieSBwcm92aWRpbmcgYSB3cmFwcGVyIGFyb3VuZCB0aGUgSmFrYXJ0YSBDb21tb25zIEZpbGVVcGxvYWQgbGlicmFyeS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCI+PEI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGU8L0E+LjxERD5UaGlzIGNsYXNzIGltcGxlbWVudHMgdGhlIFN0cnV0cyA8Y29kZT5Gb3JtRmlsZTwvY29kZT4gaW50ZXJmYWNlIGJ5Cisgd3JhcHBpbmcgdGhlIENvbW1vbnMgRmlsZVVwbG9hZCA8Y29kZT5GaWxlSXRlbTwvY29kZT4gaW50ZXJmYWNlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUob3JnLmFwYWNoZS5jb21tb25zLmZpbGV1cGxvYWQuRmlsZUl0ZW0pIj48Qj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlKEZpbGVJdGVtKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGU8L0E+Cis8REQ+Q29uc3RydWN0cyBhbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIHdoaWNoIHdyYXBzIHRoZSBzdXBwbGllZAorIGZpbGUgaXRlbS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyKCkiPjxCPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcigpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPjxCPkNvbXBhcmVUYWdCYXNlPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPi48REQ+QWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgY29tcGFyaXNvbiB0YWdzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNDb21wYXJlVGFnQmFzZSgpIj48Qj5Db21wYXJlVGFnQmFzZSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCNDT01QT05FTlRfQ09OVEVYVCI+PEI+Q09NUE9ORU5UX0NPTlRFWFQ8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+Cis8REQ+TmFtZSB1c2VkIHRvIHN0b3JlIFRpbGUvQ29tcG9uZW50IGNvbnRleHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sI0NPTVBPTkVOVF9TQ09QRSI+PEI+Q09NUE9ORU5UX1NDT1BFPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+PEI+Q29tcG9uZW50Q29uc3RhbnRzPC9CPjwvQT4gLSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPi48REQ+Q29uc3RhbnRzIHVzZWQgYnkgVGlsZXMvQ29tcG9uZW50cy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj48Qj5Db21wb25lbnRDb250ZXh0PC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+LjxERD5Db21wb25lbnQgY29udGV4dC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI0NvbXBvbmVudENvbnRleHQoKSI+PEI+Q29tcG9uZW50Q29udGV4dCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI0NvbXBvbmVudENvbnRleHQob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbikiPjxCPkNvbXBvbmVudENvbnRleHQoQ29tcG9uZW50RGVmaW5pdGlvbik8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI0NvbXBvbmVudENvbnRleHQoamF2YS51dGlsLk1hcCkiPjxDT0RFPkNvbXBvbmVudENvbnRleHQuQ29tcG9uZW50Q29udGV4dChNYXAgYXR0cmlidXRlcyk8L0NPREU+PC9BPiBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwjQ29tcG9uZW50Q29udGV4dChqYXZhLnV0aWwuTWFwKSI+PEI+Q29tcG9uZW50Q29udGV4dChNYXApPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj48Qj5Db21wb25lbnREZWZpbml0aW9uPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+LjxERD5EZWZpbml0aW9uIG9mIGEgdGVtcGxhdGUgLyBjb21wb25lbnQgYXR0cmlidXRlcy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI0NvbXBvbmVudERlZmluaXRpb24oKSI+PEI+Q29tcG9uZW50RGVmaW5pdGlvbigpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI0NvbXBvbmVudERlZmluaXRpb24ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbikiPjxCPkNvbXBvbmVudERlZmluaXRpb24oQ29tcG9uZW50RGVmaW5pdGlvbik8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5Db3B5IENvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNDb21wb25lbnREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEudXRpbC5NYXApIj48Qj5Db21wb25lbnREZWZpbml0aW9uKFN0cmluZywgU3RyaW5nLCBNYXApPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI0NvbXBvbmVudERlZmluaXRpb24ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uKSI+PEI+Q29tcG9uZW50RGVmaW5pdGlvbihYbWxEZWZpbml0aW9uKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Qj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0I+PC9BPiAtIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPi48REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIERlZmluaXRpb25zRmFjdG9yeSBpbnN0ZWFkLjwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiPjxCPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXI8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXI8L0E+LjxERD5XcmFwcGVyIGZyb20gbmV3IGRlZmluaXRpb24gZmFjdG9yeSBpbnRlcmZhY2UgdG8gb2xkIGludGVyZmFjZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcigpIj48Qj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXI8L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcihvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkpIj48Qj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyKENvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeSk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXI8L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNjb21wdXRlUGFyYW1ldGVycyhqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPjxCPmNvbXB1dGVQYXJhbWV0ZXJzKFBhZ2VDb250ZXh0LCBTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBTdHJpbmcsIGJvb2xlYW4pPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+Q29tcHV0ZSBhIHNldCBvZiBxdWVyeSBwYXJhbWV0ZXJzIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseSBhZGRlZCB0bworIGEgZ2VuZXJhdGVkIFVSTC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI2NvbXB1dGVSZWFsVmFsdWUoKSI+PEI+Y29tcHV0ZVJlYWxWYWx1ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwiPlhtbEF0dHJpYnV0ZTwvQT4KKzxERD5Db21wdXRlICByZWFsIHZhbHVlIGZyb20gYXR0cmlidXRlcyBzZXR0aW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNjb21wdXRlUmVhbFZhbHVlKCkiPjxCPmNvbXB1dGVSZWFsVmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPkNvbXB1dGUgcmVhbCB2YWx1ZSBhY2NvcmRpbmcgdG8gdGFnIGF0dHJpYnV0ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNjb21wdXRlVVJMKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PEI+Y29tcHV0ZVVSTChQYWdlQ29udGV4dCwgU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgTWFwLCBTdHJpbmcsIGJvb2xlYW4pPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VG8gYmUgcmVtb3ZlZCBpbiBWZXJzaW9uIDEuMy4KKyBVc2UgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNjb21wdXRlVVJMKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PENPREU+UmVxdWVzdFV0aWxzLmNvbXB1dGVVUkwoUGFnZUNvbnRleHQsIFN0cmluZywgU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgTWFwLCBTdHJpbmcsIGJvb2xlYW4pPC9DT0RFPjwvQT4gaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNjb21wdXRlVVJMKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PEI+Y29tcHV0ZVVSTChQYWdlQ29udGV4dCwgU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBNYXAsIFN0cmluZywgYm9vbGVhbik8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5Db21wdXRlIGEgaHlwZXJsaW5rIFVSTCBiYXNlZCBvbiB0aGUgPGNvZGU+Zm9yd2FyZDwvY29kZT4sCisgPGNvZGU+aHJlZjwvY29kZT4sIDxjb2RlPmFjdGlvbjwvY29kZT4gb3IgPGNvZGU+cGFnZTwvY29kZT4gcGFyYW1ldGVyCisgdGhhdCBpcyBub3QgbnVsbC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2NvbXB1dGVVUkwoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEudXRpbC5NYXAsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4sIGJvb2xlYW4pIj48Qj5jb21wdXRlVVJMKFBhZ2VDb250ZXh0LCBTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBTdHJpbmcsIE1hcCwgU3RyaW5nLCBib29sZWFuLCBib29sZWFuKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPkNvbXB1dGUgYSBoeXBlcmxpbmsgVVJMIGJhc2VkIG9uIHRoZSA8Y29kZT5mb3J3YXJkPC9jb2RlPiwKKyA8Y29kZT5ocmVmPC9jb2RlPiwgPGNvZGU+YWN0aW9uPC9jb2RlPiBvciA8Y29kZT5wYWdlPC9jb2RlPiBwYXJhbWV0ZXIKKyB0aGF0IGlzIG5vdCBudWxsLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNjb25jYXRQb3N0Zml4KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5jb25jYXRQb3N0Zml4KFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwiPkkxOG5GYWN0b3J5U2V0PC9BPgorPEREPkNvbmNhdCBwb3N0Zml4IHRvIHRoZSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwjY29uZGl0aW9uKCkiPjxCPmNvbmRpdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbCI+Tm90UHJlc2VudFRhZzwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCNjb25kaXRpb24oKSI+PEI+Y29uZGl0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCI+Tm90TWF0Y2hUYWc8L0E+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVxdWFsVGFnLmh0bWwjY29uZGl0aW9uKCkiPjxCPmNvbmRpdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVxdWFsVGFnLmh0bWwiPk5vdEVxdWFsVGFnPC9BPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sI2NvbmRpdGlvbigpIj48Qj5jb25kaXRpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sIj5MZXNzVGhhblRhZzwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwjY29uZGl0aW9uKCkiPjxCPmNvbmRpdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sIj5MZXNzRXF1YWxUYWc8L0E+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwjY29uZGl0aW9uKCkiPjxCPmNvbmRpdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwiPkdyZWF0ZXJUaGFuVGFnPC9BPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbCNjb25kaXRpb24oKSI+PEI+Y29uZGl0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwiPkdyZWF0ZXJFcXVhbFRhZzwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbCNjb25kaXRpb24oKSI+PEI+Y29uZGl0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbCI+RXF1YWxUYWc8L0E+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2NvbmRpdGlvbigpIj48Qj5jb25kaXRpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sI2NvbmRpdGlvbigpIj48Qj5jb25kaXRpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIj5FbXB0eVRhZzwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sI2NvbmRpdGlvbigpIj48Qj5jb25kaXRpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPlByZXNlbnRUYWc8L0E+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sI2NvbmRpdGlvbigpIj48Qj5jb25kaXRpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TWVzc2FnZXNQcmVzZW50VGFnPC9BPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2NvbmRpdGlvbigpIj48Qj5jb25kaXRpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oKSI+PEI+Y29uZGl0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVtcHR5VGFnLmh0bWwjY29uZGl0aW9uKCkiPjxCPmNvbmRpdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVtcHR5VGFnLmh0bWwiPk5vdEVtcHR5VGFnPC9BPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCNjb25kaXRpb24oKSI+PEI+Y29uZGl0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPk1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCNjb25kaXRpb24oYm9vbGVhbikiPjxCPmNvbmRpdGlvbihib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIj5FbXB0eVRhZzwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sI2NvbmRpdGlvbihib29sZWFuKSI+PEI+Y29uZGl0aW9uKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+UHJlc2VudFRhZzwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjY29uZGl0aW9uKGJvb2xlYW4pIj48Qj5jb25kaXRpb24oYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPk1lc3NhZ2VzUHJlc2VudFRhZzwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgbWVzc2FnZSBpbiB0aGUKKyBjbGFzcyBvciBmb3IgdGhlIHByb3BlcnR5IHNwZWNpZmllZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNjb25kaXRpb24oYm9vbGVhbikiPjxCPmNvbmRpdGlvbihib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oaW50LCBpbnQpIj48Qj5jb25kaXRpb24oaW50LCBpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+PEI+Q29uZGl0aW9uYWxUYWdCYXNlPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+LjxERD5BYnN0cmFjdCBiYXNlIGNsYXNzIGZvciB0aGUgdmFyaW91cyBjb25kaXRpb25hbCBldmFsdWF0aW9uIHRhZ3MuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNDb25kaXRpb25hbFRhZ0Jhc2UoKSI+PEI+Q29uZGl0aW9uYWxUYWdCYXNlKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjY29uZmlnIj48Qj5jb25maWc8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPgorPEREPlRoZSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+IGluc3RhbmNlIGZvciBvdXIgYXBwbGljYXRpb24gbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCNjb25maWciPjxCPmNvbmZpZzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sIj5WYWxpZGF0b3JQbHVnSW48L0E+Cis8REQ+VGhlIG1vZHVsZSBjb25maWd1cmF0aW9uIGZvciBvdXIgb3duaW5nIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNjb25maWciPjxCPmNvbmZpZzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciB1c2VkIHRvIGluaXRpYWxpemUgdGhpcyBNZXNzYWdlUmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sI2NvbmZpZyI+PEI+Y29uZmlnPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXI8L0E+Cis8REQ+RmFjdG9yeSBjb25maWd1cmF0aW9uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNjb25maWciPjxCPmNvbmZpZzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5Db21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb250ZXh0LXJlbGF0aXZlIHBhdGgocykgdG8gb3VyIGNvbmZpZ3VyYXRpb24KKyByZXNvdXJjZShzKSBmb3IgdGhlIGRlZmF1bHQgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjY29uZmlnIj48Qj5jb25maWc8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0E+Cis8REQ+VGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGZvciB0aGlzIGNsYXNzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjY29uZmlnRGlnZXN0ZXIiPjxCPmNvbmZpZ0RpZ2VzdGVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSBEaWdlc3RlciB1c2VkIHRvIHByb2R1Y2UgTW9kdWxlQ29uZmlnIG9iamVjdHMgZnJvbSBhCisgU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPjxCPkNvbmZpZ0hlbHBlcjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPi48REQ+Tk9URTogVEhJUyBDTEFTUyBJUyBVTkRFUiBBQ1RJVkUgREVWRUxPUE1FTlQuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNDb25maWdIZWxwZXIoKSI+PEI+Q29uZmlnSGVscGVyKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjQ29uZmlnSGVscGVyKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+Q29uZmlnSGVscGVyKFNlcnZsZXRDb250ZXh0LCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj48Qj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0I+PC9BPiAtIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+LjxERD5OT1RFOiBUSElTIENMQVNTIElTIFVOREVSIEFDVElWRSBERVZFTE9QTUVOVC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ1J1bGVTZXQuaHRtbCI+PEI+Q29uZmlnUnVsZVNldDwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdSdWxlU2V0Lmh0bWwiPkNvbmZpZ1J1bGVTZXQ8L0E+LjxERD5UaGUgc2V0IG9mIERpZ2VzdGVyIHJ1bGVzIHJlcXVpcmVkIHRvIHBhcnNlIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlICg8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4pLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnUnVsZVNldC5odG1sI0NvbmZpZ1J1bGVTZXQoKSI+PEI+Q29uZmlnUnVsZVNldCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ1J1bGVTZXQuaHRtbCI+Q29uZmlnUnVsZVNldDwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNjb25maWd1cmVkIj48Qj5jb25maWd1cmVkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Cis8REQ+SGFzIHRoaXMgY29tcG9uZW50IGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkPworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNjb25maWd1cmVkIj48Qj5jb25maWd1cmVkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4KKzxERD5IYXMgdGhpcyBjb21wb25lbnQgYmVlbiBjb21wbGV0ZWx5IGNvbmZpZ3VyZWQ/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2NvbmZpZ3VyZWQiPjxCPmNvbmZpZ3VyZWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPkluZGljYXRlcyBpZiBjb25maWd1cmF0aW9uIG9mIHRoaXMgY29tcG9uZW50IGJlZW4gY29tcGxldGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwjY29uZmlndXJlZCI+PEI+Y29uZmlndXJlZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4KKzxERD5IYXMgdGhpcyBjb21wb25lbnQgYmVlbiBjb21wbGV0ZWx5IGNvbmZpZ3VyZWQ/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNjb25maWd1cmVkIj48Qj5jb25maWd1cmVkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPgorPEREPkhhcyB0aGlzIGNvbXBvbmVudCBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZD8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwjY29uZmlndXJlZCI+PEI+Y29uZmlndXJlZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj5QbHVnSW5Db25maWc8L0E+Cis8REQ+SGFzIHRoaXMgY29tcG9uZW50IGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkPworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjY29uZmlndXJlZCI+PEI+Y29uZmlndXJlZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4KKzxERD5IYXMgdGhpcyBjb21wb25lbnQgYmVlbiBjb21wbGV0ZWx5IGNvbmZpZ3VyZWQ/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sI2NvbmZpZ3VyZWQiPjxCPmNvbmZpZ3VyZWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPgorPEREPkhhcyB0aGlzIGNvbXBvbmVudCBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZD8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sI2NvbmZpZ3VyZWQiPjxCPmNvbmZpZ3VyZWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+Cis8REQ+SGFzIHRoaXMgY29tcG9uZW50IGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkPworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNjb25maWd1cmVkIj48Qj5jb25maWd1cmVkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4KKzxERD5IYXMgdGhpcyBtb2R1bGUgYmVlbiBjb21wbGV0ZWx5IGNvbmZpZ3VyZWQgeWV0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjY29uc3RhbnQiPjxCPmNvbnN0YW50PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPk11bHRpYm94VGFnPC9BPgorPEREPlRoZSBjb25zdGFudCBTdHJpbmcgdmFsdWUgdG8gYmUgcmV0dXJuZWQgd2hlbiB0aGlzIGNoZWNrYm94IGlzCisgc2VsZWN0ZWQgYW5kIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCI+PEI+Q29uc3RhbnRzPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCI+Q29uc3RhbnRzPC9BPi48REQ+TWFuaWZlc3QgY29uc3RhbnRzIGZvciB0aGlzIHBhY2thZ2UuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sI0NvbnN0YW50cygpIj48Qj5Db25zdGFudHMoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwiPkNvbnN0YW50czwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNjb250YWlucyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Y29udGFpbnMoU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPkR5bmFBY3Rpb25Gb3JtPC9BPgorPEREPkluZGljYXRlcyBpZiB0aGUgc3BlY2lmaWVkIG1hcHBlZCBwcm9wZXJ0eSBjb250YWluIGEgdmFsdWUgZm9yIHRoZSBzcGVjaWZpZWQKKyBrZXkgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2NvbnRlbnQiPjxCPmNvbnRlbnQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBjb250ZW50J3MgVVJJIChvciB0ZXh0KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwjY29udGVudCI+PEI+Y29udGVudDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPkNvbnRlbnQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGVtcGxhdGVzIHJlZ2FyZCB0aGlzIGFzIGNvbnRlbnQgdG8gYmUgZWl0aGVyIGluY2x1ZGVkIG9yIAorICBwcmludGVkIGRpcmVjdGx5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+PEI+Q29udGVudDwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj5Db250ZW50PC9BPi48REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI0NPTlRFTlRfVFlQRV9BUFBMSUNBVElPTl9PQ1RFVF9TVFJFQU0iPjxCPkNPTlRFTlRfVFlQRV9BUFBMSUNBVElPTl9PQ1RFVF9TVFJFQU08L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjQ09OVEVOVF9UWVBFX1RFWFRfUExBSU4iPjxCPkNPTlRFTlRfVFlQRV9URVhUX1BMQUlOPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwjQ29udGVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Q29udGVudChTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+Q29udGVudDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNjb250ZW50TGVuZ3RoIj48Qj5jb250ZW50TGVuZ3RoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9BPgorPEREPlRoZSBjb250ZW50IGxlbmd0aCBvZiB0aGUgbXVsdGlwYXJ0IGRhdGEKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNjb250ZW50TGVuZ3RoIj48Qj5jb250ZW50TGVuZ3RoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+VGhlIGNvbnRlbnQgbGVuZ3RoIG9mIHRoaXMgcmVxdWVzdAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+PEI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9CPjwvQT4gLSBleGNlcHRpb24gb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPi48REQ+VGhpcyBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gbXVsdGlwYXJ0IHBvc3QgZGF0YSBleGNlZWRzIHRoZSB2YWx1ZQorIGdpdmVuIGJ5IHRoZSBDb250ZW50LUxlbmd0aCBoZWFkZXI8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sI0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbigpIj48Qj5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCNDb250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24obG9uZykiPjxCPkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbihsb25nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjY29udGVudExlbmd0aE1ldCI+PEI+Y29udGVudExlbmd0aE1ldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5XaGV0aGVyIG9yIG5vdCBieXRlcyB1cCB0byB0aGUgQ29udGVudC1MZW5ndGggaGF2ZSBiZWVuIHJlYWQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2NvbnRlbnRMZW5ndGhNZXQoKSI+PEI+Y29udGVudExlbmd0aE1ldCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPjxCPkNvbnRlbnRNYXA8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT4uPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sI0NvbnRlbnRNYXAoKSI+PEI+Q29udGVudE1hcCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sIj48Qj5Db250ZW50TWFwU3RhY2s8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sIj5Db250ZW50TWFwU3RhY2s8L0E+LjxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sI0NvbnRlbnRNYXBTdGFjaygpIj48Qj5Db250ZW50TWFwU3RhY2soKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcFN0YWNrLmh0bWwiPkNvbnRlbnRNYXBTdGFjazwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtObyBpbnN0YW50aWF0aW9ucyBvZiB0aGlzIGNsYXNzIGFyZSBhbGxvd2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2NvbnRlbnRUeXBlIj48Qj5jb250ZW50VHlwZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPkRpc2tGaWxlPC9BPgorPEREPlRoZSBjb250ZW50IHR5cGUgb2YgdGhlIGZpbGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2NvbnRlbnRUeXBlIj48Qj5jb250ZW50VHlwZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD5UaGUgY29udGVudCB0eXBlIG9mIHRoaXMgZWxlbWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNjb250ZW50VHlwZSI+PEI+Y29udGVudFR5cGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5UaGUgY29udGVudC10eXBlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjY29udGVudFR5cGUiPjxCPmNvbnRlbnRUeXBlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPgorPEREPlRoZSBjb250ZW50IHR5cGUgYW5kIGNoYXJhY3RlciBlbmNvZGluZyB0byBiZSBzZXQgb24gZWFjaCByZXNwb25zZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjY29udGV4dCI+PEI+Y29udGV4dDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+VGhlIHNlcnZsZXQgY29udGV4dCB3aXRoIHdoaWNoIHdlIGFyZSBhc3NvY2lhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjY29udGV4dFJlbGF0aXZlIj48Qj5jb250ZXh0UmVsYXRpdmU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+Cis8REQ+U2hvdWxkIHRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+cGF0aDwvY29kZT4gcHJvcGVydHkgYmUgY29uc2lkZXJlZAorIGNvbnRleHQtcmVsYXRpdmUgaWYgaXQgc3RhcnRzIHdpdGggYSBzbGFzaCAoYW5kIHRoZXJlZm9yZSBub3QKKyBwcmVmaXhlZCB3aXRoIHRoZSBtb2R1bGUgcHJlZml4PworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNjb250cm9sbGVyIj48Qj5jb250cm9sbGVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5Bc3NvY2lhdGVkIENvbnRyb2xsZXIgVVJMIG9yIGNsYXNzbmFtZSwgaWYgZGVmaW5lZAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sI2NvbnRyb2xsZXIiPjxCPmNvbnRyb2xsZXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sIj5JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPjxCPkNvbnRyb2xsZXI8L0I+PC9BPiAtIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+LjxERD5BIGNvbnRyb2xsZXIgaXMgYSBwaWVjZSBvZiBjb2RlIGNhbGxlZCBiZWZvcmUgcmVuZGVyaW5nIGEganNwIHBhZ2UuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNDT05UUk9MTEVSIj48Qj5DT05UUk9MTEVSPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8REQ+Q29udHJvbGxlciBuYW1lIHR5cGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjY29udHJvbGxlckNvbmZpZyI+PEI+Y29udHJvbGxlckNvbmZpZzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+VGhlIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoaXMgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPjxCPkNvbnRyb2xsZXJDb25maWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPi48REQ+QSBKYXZhQmVhbiByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgYQorIDxjb2RlPiZsdDtjb250cm9sbGVyJmd0OzwvY29kZT4gZWxlbWVudCBpbiBhIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNDb250cm9sbGVyQ29uZmlnKCkiPjxCPkNvbnRyb2xsZXJDb25maWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2NvbnRyb2xsZXJJbnN0YW5jZSI+PEI+Y29udHJvbGxlckluc3RhbmNlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5Db250cm9sbGVyIGFzc29jaWF0ZWQgdG8gRGVmaW5pdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNjb250cm9sbGVyTmFtZSI+PEI+Y29udHJvbGxlck5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIj5EZWZpbml0aW9uVGFnU3VwcG9ydDwvQT4KKzxERD5Bc3NvY2lhdGVkIENvbnRyb2xsZXIgbmFtZSAoY2xhc3NuYW1lIG9yIHVybCkKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyU3VwcG9ydC5odG1sIj48Qj5Db250cm9sbGVyU3VwcG9ydDwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlclN1cHBvcnQuaHRtbCI+Q29udHJvbGxlclN1cHBvcnQ8L0E+LjxERD5CYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiBDb250cm9sbGVyLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyU3VwcG9ydC5odG1sI0NvbnRyb2xsZXJTdXBwb3J0KCkiPjxCPkNvbnRyb2xsZXJTdXBwb3J0KCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXJTdXBwb3J0Lmh0bWwiPkNvbnRyb2xsZXJTdXBwb3J0PC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNjb250cm9sbGVyVHlwZSI+PEI+Y29udHJvbGxlclR5cGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPgorPEREPkFzc29jaWF0ZWQgQ29udHJvbGxlciB0eXBlbmFtZSwgaWYgY29udHJvbGxlck5hbWUgZGVmaW5lZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNjb250cm9sbGVyVHlwZSI+PEI+Y29udHJvbGxlclR5cGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIj5EZWZpbml0aW9uVGFnU3VwcG9ydDwvQT4KKzxERD5Bc3NvY2lhdGVkIENvbnRyb2xsZXIgdHlwZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjY29udmVydE51bGwiPjxCPmNvbnZlcnROdWxsPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSBmbGFnIHRvIHJlcXVlc3QgYmFja3dhcmRzLWNvbXBhdGlibGUgY29udmVyc2lvbnMgZm9yIGZvcm0gYmVhbgorIHByb3BlcnRpZXMgb2YgdGhlIEphdmEgd3JhcHBlciBjbGFzcyB0eXBlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjY29udmVydFNpemVUb0J5dGVzKGphdmEubGFuZy5TdHJpbmcsIGxvbmcpIj48Qj5jb252ZXJ0U2l6ZVRvQnl0ZXMoU3RyaW5nLCBsb25nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPkNvbnZlcnRzIGEgc2l6ZSB2YWx1ZSBmcm9tIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIHRvIGl0cyBudW1lcmljIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPjxCPmNvb2tpZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGNvb2tpZSB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPjxCPkNvb2tpZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPkNvb2tpZVRhZzwvQT4uPEREPkRlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSBiYXNlZCBvbiB0aGUgdmFsdWUocykgb2YgdGhlIHNwZWNpZmllZAorIGNvb2tpZSByZWNlaXZlZCB3aXRoIHRoaXMgcmVxdWVzdC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjQ29va2llVGFnKCkiPjxCPkNvb2tpZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+Q29va2llVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj48Qj5Db29raWVUZWk8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj5Db29raWVUZWk8L0E+LjxERD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+Y29va2llPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUZWkuaHRtbCNDb29raWVUZWkoKSI+PEI+Q29va2llVGVpKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj5Db29raWVUZWk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNjcmVhdGVBY3Rpb25Gb3JtKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPjxCPmNyZWF0ZUFjdGlvbkZvcm0oSHR0cFNlcnZsZXRSZXF1ZXN0LCBBY3Rpb25NYXBwaW5nLCBNb2R1bGVDb25maWcsIEFjdGlvblNlcnZsZXQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+Q3JlYXRlIChpZiBuZWNlc3NhcnkpIGFuZCByZXR1cm4gYW4gQWN0aW9uRm9ybSBpbnN0YW5jZSBhcHByb3ByaWF0ZQorIGZvciB0aGlzIHJlcXVlc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjY3JlYXRlQ29uZmlnTWFwKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZykiPjxCPmNyZWF0ZUNvbmZpZ01hcChEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcjwvQT4KKzxERD5DcmVhdGUgbWFwIG9mIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlcyBmcm9tIGNvbmZpZ3VyYXRpb24gb2JqZWN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNjcmVhdGVDb250cm9sbGVyKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5jcmVhdGVDb250cm9sbGVyKFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5DcmVhdGUgYSBuZXcgaW5zdGFuY2Ugb2YgY29udHJvbGxlciBuYW1lZCBpbiBwYXJhbWV0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2NyZWF0ZUNvbnRyb2xsZXJGcm9tQ2xhc3NuYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5jcmVhdGVDb250cm9sbGVyRnJvbUNsYXNzbmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPgorPEREPkNyZWF0ZSBhIGNvbnRyb2xsZXIgZnJvbSBzcGVjaWZpZWQgY2xhc3NuYW1lCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI2NyZWF0ZURlZmF1bHRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5jcmVhdGVEZWZhdWx0RmFjdG9yeShTZXJ2bGV0Q29udGV4dCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj5JMThuRmFjdG9yeVNldDwvQT4KKzxERD5DcmVhdGUgZGVmYXVsdCBmYWN0b3J5IC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNjcmVhdGVEZWZhdWx0RmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+PEI+Y3JlYXRlRGVmYXVsdEZhY3RvcnkoU2VydmxldENvbnRleHQsIE1hcCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Cis8REQ+Q3JlYXRlIGRlZmF1bHQgRGVmaW5pdGlvbiBmYWN0b3J5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCNjcmVhdGVEZWZpbml0aW9uRmFjdG9yeUluc3RhbmNlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5jcmVhdGVEZWZpbml0aW9uRmFjdG9yeUluc3RhbmNlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+VGlsZXNVdGlsSW1wbDwvQT4KKzxERD5DcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5IG9mIHNwZWNpZmllZCBjbGFzc25hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjY3JlYXRlRGVmaW5pdGlvbkZhY3RvcnlJbnN0YW5jZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Y3JlYXRlRGVmaW5pdGlvbkZhY3RvcnlJbnN0YW5jZShTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwiPkRlZmluaXRpb25zVXRpbDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5ObyBkaXJlY3QgcmVwbGFjZW1lbnQuIFVzZSBjcmVhdGVEZWZpbml0aW9uRmFjdG9yeQorIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj48Q09ERT5UaWxlc1V0aWwuY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0LCBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpPC9DT0RFPjwvQT4uPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj48Qj5jcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldENvbnRleHQsIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCI+VGlsZXNVdGlsPC9BPgorPEREPkNyZWF0ZSBEZWZpbml0aW9uIGZhY3RvcnkgZnJvbSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbiBvYmplY3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj48Qj5jcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldENvbnRleHQsIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+VGlsZXNVdGlsSW1wbDwvQT4KKzxERD5DcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gb2JqZWN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+PEI+Y3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0LCBNYXApPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwiPkRlZmluaXRpb25zVXRpbDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDcmVhdGUgZGVmYXVsdCBEZWZpbml0aW9uIGZhY3RvcnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXAsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5jcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldENvbnRleHQsIE1hcCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCwgU2VydmxldENvbmZpZyBzZXJ2bGV0Q29uZmlnKTwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnKSI+PEI+Y3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0LCBTZXJ2bGV0Q29uZmlnKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q3JlYXRlIERlZmluaXRpb24gZmFjdG9yeS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnLCBib29sZWFuKSI+PEI+Y3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0LCBTZXJ2bGV0Q29uZmlnLCBib29sZWFuKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q3JlYXRlIERlZmluaXRpb24gZmFjdG9yeS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjY3JlYXRlRGlza0ZpbGUob3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEVsZW1lbnQpIj48Qj5jcmVhdGVEaXNrRmlsZShNdWx0aXBhcnRFbGVtZW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjY3JlYXRlRHluYUFjdGlvbkZvcm1DbGFzcyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWcpIj48Qj5jcmVhdGVEeW5hQWN0aW9uRm9ybUNsYXNzKEZvcm1CZWFuQ29uZmlnKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sIj5EeW5hQWN0aW9uRm9ybUNsYXNzPC9BPgorPEREPkNyZWF0ZSAoaWYgbmVjZXNzYXJ5KSBhbmQgcmV0dXJuIGEgbmV3IDxjb2RlPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L2NvZGU+CisgaW5zdGFuY2UgZm9yIHRoZSBzcGVjaWZpZWQgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2NyZWF0ZUZhY3RvcnkoKSI+PEI+Y3JlYXRlRmFjdG9yeSgpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPgorPEREPkNyZWF0ZSBhbmQgcmV0dXJuIGEgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlIG9mIHRoZQorIGFwcHJvcHJpYXRlIGNsYXNzLCB3aGljaCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgY3VzdG9taXplZAorIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGluc3RhbmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sI2NyZWF0ZUZhY3RvcnkoKSI+PEI+Y3JlYXRlRmFjdG9yeSgpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+Cis8REQ+Q3JlYXRlIGFuZCByZXR1cm4gYSA8Y29kZT5Nb2R1bGVDb25maWdGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZSBvZiB0aGUKKyBhcHByb3ByaWF0ZSBjbGFzcywgd2hpY2ggY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGN1c3RvbWl6ZWQKKyA8Y29kZT5Nb2R1bGVDb25maWc8L2NvZGU+IGluc3RhbmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjY3JlYXRlRmFjdG9yeShqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+Y3JlYXRlRmFjdG9yeShPYmplY3QsIFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj5JMThuRmFjdG9yeVNldDwvQT4KKzxERD5DcmVhdGUgYSBmYWN0b3J5IGZvciBzcGVjaWZpZWQga2V5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sI2NyZWF0ZUZhY3RvcnkoamF2YS5sYW5nLk9iamVjdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPmNyZWF0ZUZhY3RvcnkoT2JqZWN0LCBTZXJ2bGV0UmVxdWVzdCwgU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sIj5GYWN0b3J5U2V0PC9BPgorPEREPkNyZWF0ZSBhIGZhY3RvcnkgZm9yIHNwZWNpZmllZCBrZXkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjY3JlYXRlRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+PEI+Y3JlYXRlRmFjdG9yeShTZXJ2bGV0Q29udGV4dCwgTWFwKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeTwvQT4KKzxERD5DcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI2NyZWF0ZUZhY3RvcnlGcm9tQ2xhc3NuYW1lKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXAsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5jcmVhdGVGYWN0b3J5RnJvbUNsYXNzbmFtZShTZXJ2bGV0Q29udGV4dCwgTWFwLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sIj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPgorPEREPkNyZWF0ZSBEZWZpbml0aW9uIGZhY3RvcnkgZnJvbSBwcm92aWRlZCBjbGFzc25hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjY3JlYXRlRmFjdG9yeUluc3RhbmNlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5jcmVhdGVGYWN0b3J5SW5zdGFuY2UoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcjwvQT4KKzxERD5DcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gcHJvdmlkZWQgY2xhc3NuYW1lIHdoaWNoIG11c3QgaW1wbGVtZW50IDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Q09ERT5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0NPREU+PC9BPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNjcmVhdGVGaWxlTXVsdGlwYXJ0RWxlbWVudCgpIj48Qj5jcmVhdGVGaWxlTXVsdGlwYXJ0RWxlbWVudCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPkNyZWF0ZSBhIG11bHRpcGFydCBlbGVtZW50IGluc3RhbmNlIHJlcHJlc2VudGluZyB0aGUgZmlsZSBpbiB0aGUgc3RyZWFtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2NyZWF0ZUxvY2FsRmlsZSgpIj48Qj5jcmVhdGVMb2NhbEZpbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5DcmVhdGVzIGEgZmlsZSBvbiBkaXNrIGZyb20gdGhlIGN1cnJlbnQgbXVsaXRwYXJ0IGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCNjcmVhdGVNb2R1bGVDb25maWcoamF2YS5sYW5nLlN0cmluZykiPjxCPmNyZWF0ZU1vZHVsZUNvbmZpZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCI+TW9kdWxlQ29uZmlnRmFjdG9yeTwvQT4KKzxERD5DcmVhdGUgYW5kIHJldHVybiBhIG5ld2x5IGluc3RhbnNpYXRlZCA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL0RlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwjY3JlYXRlTW9kdWxlQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48Qj5jcmVhdGVNb2R1bGVDb25maWcoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCI+RGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+Cis8REQ+Q3JlYXRlIGFuZCByZXR1cm4gYSBuZXdseSBpbnN0YW5zaWF0ZWQgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uTWFwcGluZ0ZhY3RvcnkuaHRtbCNjcmVhdGVPYmplY3Qob3JnLnhtbC5zYXguQXR0cmlidXRlcykiPjxCPmNyZWF0ZU9iamVjdChBdHRyaWJ1dGVzKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25NYXBwaW5nRmFjdG9yeS5odG1sIj5BY3Rpb25NYXBwaW5nRmFjdG9yeTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNjcmVhdGVSZXNvdXJjZXMoamF2YS5sYW5nLlN0cmluZykiPjxCPmNyZWF0ZVJlc291cmNlcyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPgorPEREPkNyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3bHkgaW5zdGFuc2lhdGVkIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNjcmVhdGVSZXNvdXJjZXMoamF2YS5sYW5nLlN0cmluZykiPjxCPmNyZWF0ZVJlc291cmNlcyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Cis8REQ+Q3JlYXRlIGFuZCByZXR1cm4gYSBuZXdseSBpbnN0YW5zaWF0ZWQgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2NyZWF0ZVRhZ0hhbmRsZXIoKSI+PEI+Y3JlYXRlVGFnSGFuZGxlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+UHJvY2VzcyB0YWcgYXR0cmlidXRlIGFuZCBjcmVhdGUgY29ycmVzcG9uZGluZyB0YWcgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjY3JlYXRlVGV4dEVsZW1lbnQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEVsZW1lbnQpIj48Qj5jcmVhdGVUZXh0RWxlbWVudChIdHRwU2VydmxldFJlcXVlc3QsIE11bHRpcGFydEVsZW1lbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjY3JlYXRlVGV4dE11bHRpcGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZykiPjxCPmNyZWF0ZVRleHRNdWx0aXBhcnRFbGVtZW50KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+Q3JlYXRlIGEgdGV4dCBlbGVtZW50IGZyb20gdGhlIGRhdGEgaW4gdGhlIGJvZHkgb2YgdGhlIGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNDUkxGIj48Qj5DUkxGPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCNjdXJyZW50Q29udGV4dCI+PEI+Y3VycmVudENvbnRleHQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sIj5JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjY3VycmVudExvY2FsZSgpIj48Qj5jdXJyZW50TG9jYWxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCI+SHRtbFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgZ2V0Q3VycmVudExvY2FsZSBpbnN0ZWFkIGJlY2F1c2UgaXQgbWFrZXMgdGhlIGRpc3BsYXkgbG9naWMKKyBlYXNpZXIuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjY3VycmVudFBsdWdJbkNvbmZpZ09iamVjdCI+PEI+Y3VycmVudFBsdWdJbkNvbmZpZ09iamVjdDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sIj5UaWxlc1BsdWdpbjwvQT4KKzxERD5UaGUgcGx1Z2luIGNvbmZpZyBvYmplY3QgcHJvdmlkZWQgYnkgdGhlIEFjdGlvblNlcnZsZXQgaW5pdGlhbGl6aW5nCisgIHRoaXMgcGx1Z2luLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjY3VycmVudFZhbHVlKCkiPjxCPmN1cnJlbnRWYWx1ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD5BY3F1aXJlIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gCisgYXR0cmlidXRlIGFuZCB0aGUgcHJvcGVydHkgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlLgorPC9ETD4KKzxIUj4KKzxBIE5BTUU9Il9EXyI+PCEtLSAtLT48L0E+PEgyPgorPEI+RDwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjZGF0YSI+PEI+ZGF0YTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5UaGlzIHNob3VsZCBuZXZlciBiZSB1c2VkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjREFUQV9TT1VSQ0VfS0VZIj48Qj5EQVRBX1NPVVJDRV9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCI+R2xvYmFsczwvQT4KKzxERD5UaGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIgPHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+CisgY29uZmlndXJlZCBkYXRhIHNvdXJjZSAod2hpY2ggbXVzdCBpbXBsZW1lbnQKKyA8Y29kZT5qYXZheC5zcWwuRGF0YVNvdXJjZTwvY29kZT4pIGlzIHN0b3JlZCwKKyBpZiBvbmUgaXMgY29uZmlndXJlZCBmb3IgdGhpcyBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0RBVEFfU09VUkNFX0tFWSI+PEI+REFUQV9TT1VSQ0VfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0RBVEFfU09VUkNFX0tFWSI+PENPREU+R2xvYmFscy5EQVRBX1NPVVJDRV9LRVk8L0NPREU+PC9BPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj48Qj5EYXRhU291cmNlQ29uZmlnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT4uPEREPkEgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7ZGF0YS1zb3VyY2UmZ3Q7PC9jb2RlPiBlbGVtZW50IGZyb20gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwjRGF0YVNvdXJjZUNvbmZpZygpIj48Qj5EYXRhU291cmNlQ29uZmlnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNkYXRhU291cmNlcyI+PEI+ZGF0YVNvdXJjZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPlRoZSBzZXQgb2YgSkRCQyBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9ucyBmb3IgdGhpcworIG1vZHVsZSwgaWYgYW55LCBrZXllZCBieSB0aGUgPGNvZGU+a2V5PC9jb2RlPiBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2RhdGFTb3VyY2VzIj48Qj5kYXRhU291cmNlczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5UaGUgSkRCQyBkYXRhIHNvdXJjZXMgdGhhdCBoYXMgYmVlbiBjb25maWd1cmVkIGZvciB0aGlzIG1vZHVsZSwKKyBpZiBhbnksIGtleWVkIGJ5IHRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZXkgYXJlCisgc3RvcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjREFURV9GT1JNQVRfS0VZIj48Qj5EQVRFX0ZPUk1BVF9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPgorPEREPlRoZSBrZXkgdG8gc2VhcmNoIGRlZmF1bHQgZm9ybWF0IHN0cmluZyBmb3IgCisgamF2YS51dGlsLkRhdGUgaW4gcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwjZGVidWciPjxCPmRlYnVnPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9UYWdVdGlscy5odG1sIj5UYWdVdGlsczwvQT4KKzxERD5EZWJ1ZyBmbGFnCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNkZWJ1ZyI+PEI+ZGVidWc8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+Q29uZmlndXJlIHRoZSBsb2dnaW5nIGRldGFpbCBsZXZlbCBpbiB5b3VyIHVuZGVybHlpbmcKKyAgbG9nZ2luZyBpbXBsZW1lbmF0aW9uPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVidWciPjxCPmRlYnVnPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPjwvST4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNkZWJ1Z0xldmVsIj48Qj5kZWJ1Z0xldmVsPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbnMtbG9nZ2luZyBtZWNoYW5pc20uPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjREVGQVVMVF9DT05URU5UX0RJU1BPU0lUSU9OIj48Qj5ERUZBVUxUX0NPTlRFTlRfRElTUE9TSVRJT048L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNERUZBVUxUX0RFRklOSVRJT05fRklMRU5BTUVTIj48Qj5ERUZBVUxUX0RFRklOSVRJT05fRklMRU5BTUVTPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+STE4bkZhY3RvcnlTZXQ8L0E+Cis8REQ+UG9zc2libGUgZGVmaW5pdGlvbiBmaWxlbmFtZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjREVGQVVMVF9FTkNPRElORyI+PEI+REVGQVVMVF9FTkNPRElORzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5UaGUgZGVmYXVsdCBlbmNvZGluZyBvZiBhIHRleHQgZWxlbWVudCBpZiBub25lIGlzIHNwZWNpZmllZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI0RFRkFVTFRfTElORV9TSVpFIj48Qj5ERUZBVUxUX0xJTkVfU0laRTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI0RFRkFVTFRfU0laRV9NQVgiPjxCPkRFRkFVTFRfU0laRV9NQVg8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5UaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIG1heGltdW0gYWxsb3dhYmxlIHNpemUsIGluIGJ5dGVzLCBvZiBhbgorIHVwbG9hZGVkIGZpbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI0RFRkFVTFRfU0laRV9USFJFU0hPTEQiPjxCPkRFRkFVTFRfU0laRV9USFJFU0hPTEQ8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5UaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHRocmVzaG9sZCB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIgYW4gdXBsb2FkZWQKKyBmaWxlIHdpbGwgYmUgd3JpdHRlbiB0byBkaXNrIG9yIGNhY2hlZCBpbiBtZW1vcnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZWZhdWx0Q29udHJvbGxlckNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PEI+ZGVmYXVsdENvbnRyb2xsZXJDb25maWcoTW9kdWxlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+V2lsbCBiZSByZW1vdmVkIGluIGEgcmVsZWFzZSBhZnRlciBTdHJ1dHMgMS4xLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNkZWZhdWx0RmFjdG9yeSI+PEI+ZGVmYXVsdEZhY3Rvcnk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+VGhlIGRlZmF1bHQgTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgdXNlZCB0byBjcmVhdGUgTWVzc2FnZVJlc291cmNlcworIGluc3RhbmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjZGVmYXVsdEZhY3RvcnkiPjxCPmRlZmF1bHRGYWN0b3J5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj5JMThuRmFjdG9yeVNldDwvQT4KKzxERD5EZWZhdWx0IGZhY3RvcnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZWZhdWx0Rm9ybUJlYW5zQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48Qj5kZWZhdWx0Rm9ybUJlYW5zQ29uZmlnKE1vZHVsZUNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPldpbGwgYmUgcmVtb3ZlZCBpbiBhIHJlbGVhc2UgYWZ0ZXIgU3RydXRzIDEuMS48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZWZhdWx0Rm9yd2FyZHNDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjxCPmRlZmF1bHRGb3J3YXJkc0NvbmZpZyhNb2R1bGVDb25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5XaWxsIGJlIHJlbW92ZWQgaW4gYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjEuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2RlZmF1bHRMb2NhbGUiPjxCPmRlZmF1bHRMb2NhbGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5UaGUgZGVmYXVsdCBMb2NhbGUgZm9yIG91ciBlbnZpcm9ubWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj48Qj5kZWZhdWx0TG9jYWxlPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBMb2NhbGUuZ2V0RGVmYXVsdCgpIGRpcmVjdGx5LjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2RlZmF1bHRMb2NhbGUiPjxCPmRlZmF1bHRMb2NhbGU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlRoZSBkZWZhdWx0IExvY2FsZSBmb3Igb3VyIHNlcnZlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+PEI+ZGVmYXVsdExvY2FsZTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlRoaXMgdmFyaWFibGUgaXMgbm8gbG9uZ2VyIHVzZWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2RlZmF1bHRMb2NhbGUiPjxCPmRlZmF1bHRMb2NhbGU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIExvY2FsZS5nZXREZWZhdWx0KCkgZGlyZWN0bHkuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj48Qj5kZWZhdWx0TG9jYWxlPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+VGhlIGRlZmF1bHQgTG9jYWxlIGZvciBvdXIgc2VydmVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNkZWZhdWx0TG9jYWxlIj48Qj5kZWZhdWx0TG9jYWxlPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+VGhlIHN5c3RlbSBkZWZhdWx0IExvY2FsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2RlZmF1bHRNYXBwaW5nc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PEI+ZGVmYXVsdE1hcHBpbmdzQ29uZmlnKE1vZHVsZUNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPldpbGwgYmUgcmVtb3ZlZCBpbiBhIHJlbGVhc2UgYWZ0ZXIgU3RydXRzIDEuMS48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZWZhdWx0TWVzc2FnZVJlc291cmNlc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PEI+ZGVmYXVsdE1lc3NhZ2VSZXNvdXJjZXNDb25maWcoTW9kdWxlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+V2lsbCBiZSByZW1vdmVkIGluIGEgcmVsZWFzZSBhZnRlciBTdHJ1dHMgMS4xLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj48Qj5EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCI+RGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+LjxERD5BIGZhY3RvcnkgZm9yIGNyZWF0aW5nIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4gaW5zdGFuY2VzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sI0RlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5KCkiPjxCPkRlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5KCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL0RlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPkRlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5PC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj48Qj5EZWZpbmVUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+LjxERD5EZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIHZhbHVlKHMpIG9mIHRoZSBzcGVjaWZpZWQKKyBiZWFuIHByb3BlcnR5LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNEZWZpbmVUYWcoKSI+PEI+RGVmaW5lVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGVpLmh0bWwiPjxCPkRlZmluZVRlaTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGVpLmh0bWwiPkRlZmluZVRlaTwvQT4uPEREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5kZWZpbmU8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRlaS5odG1sI0RlZmluZVRlaSgpIj48Qj5EZWZpbmVUZWkoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGVpLmh0bWwiPkRlZmluZVRlaTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI2RlZmluaXRpb24iPjxCPmRlZmluaXRpb248L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPkRlZmluaXRpb25UYWc8L0E+Cis8REQ+VGVtcGxhdGUgZGVmaW5pdGlvbgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25BdHRyaWJ1dGUuaHRtbCI+PEI+RGVmaW5pdGlvbkF0dHJpYnV0ZTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbkF0dHJpYnV0ZS5odG1sIj5EZWZpbml0aW9uQXR0cmlidXRlPC9BPi48REQ+QXR0cmlidXRlIHJlcHJlc2VudGluZyBhIENvbXBvbmVudCBEZWZpbml0aW9uLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uQXR0cmlidXRlLmh0bWwjRGVmaW5pdGlvbkF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+RGVmaW5pdGlvbkF0dHJpYnV0ZShTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uQXR0cmlidXRlLmh0bWwiPkRlZmluaXRpb25BdHRyaWJ1dGU8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjZGVmaW5pdGlvbkNvbmZpZ0ZpbGVzIj48Qj5kZWZpbml0aW9uQ29uZmlnRmlsZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4KKzxERD5EZWZpbml0aW9uIGNvbmZpZ3VyYXRpb24gZmlsZSBzcGVjaWZpZWQgYnkgdXNlcgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24uaHRtbCI+PEI+RGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb248L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi5odG1sIj5EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbjwvQT4uPEREPkFuIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgZGlzcGF0Y2hlcyB0byBhIFRpbGVzIERlZmluaXRpb24KKyB0aGF0IGlzIG5hbWVkIGJ5IHRoZSByZXF1ZXN0IHBhcmFtZXRlciB3aG9zZSBuYW1lIGlzIHNwZWNpZmllZAorIGJ5IHRoZSA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+IHByb3BlcnR5IG9mIHRoZSBjb3JyZXNwb25kaW5nCisgQWN0aW9uTWFwcGluZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi5odG1sI0RlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uKCkiPjxCPkRlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi5odG1sIj5EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sI2RlZmluaXRpb25GYWN0b3J5Ij48Qj5kZWZpbml0aW9uRmFjdG9yeTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sIj5UaWxlc1BsdWdpbjwvQT4KKzxERD5Bc3NvY2lhdGVkIGRlZmluaXRpb24gZmFjdG9yeQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNkZWZpbml0aW9uTmFtZSI+PEI+ZGVmaW5pdGlvbk5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPk5hbWUgb2YgY29tcG9uZW50IGluc3RhbmNlIHRvIGluY2x1ZGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIj48Qj5EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGUuaHRtbCI+RGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGU8L0E+LjxERD5Db21wb25lbnQgYXR0cmlidXRlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sI0RlZmluaXRpb25OYW1lQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZShTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIj5EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZTwvQT4KKzxERD5Db25zdHJ1Y3Rvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sI0RlZmluaXRpb25OYW1lQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZShTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25OYW1lQXR0cmlidXRlLmh0bWwiPkRlZmluaXRpb25OYW1lQXR0cmlidXRlPC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCNkZWZpbml0aW9ucyI+PEI+ZGVmaW5pdGlvbnM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPgorPEREPkRlZmluZWQgZGVmaW5pdGlvbnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNkZWZpbml0aW9ucyI+PEI+ZGVmaW5pdGlvbnM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Cis8REQ+VW5kZXJseWluZyBtYXAgY29udGFpbmluZyBhbGwgZGVmaW5pdGlvbnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjREVGSU5JVElPTlNfQ09ORklHX1BBUkFNRVRFUl9OQU1FIj48Qj5ERUZJTklUSU9OU19DT05GSUdfUEFSQU1FVEVSX05BTUU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Cis8REQ+QWx0ZXJuYXRlIG5hbWUgZm9yIGRlZmluaXRpb24gZmlsZXMgcHJvcGVydGllcyBpbiBjb25maWd1cmF0aW9uIGZpbGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjREVGSU5JVElPTlNfQ09ORklHX1BBUkFNRVRFUl9OQU1FIj48Qj5ERUZJTklUSU9OU19DT05GSUdfUEFSQU1FVEVSX05BTUU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj5JMThuRmFjdG9yeVNldDwvQT4KKzxERD5Db25maWcgZmlsZSBwYXJhbWV0ZXIgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNERUZJTklUSU9OU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTCI+PEI+REVGSU5JVElPTlNfQ09ORklHX1VTRVJfREVCVUdfTEVWRUw8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7TmFtZSBvZiBpbml0IHByb3BlcnR5IGNhcnJ5aW5nIGRlYnVnIGxldmVsCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI0RFRklOSVRJT05TX0ZBQ1RPUlkiPjxCPkRFRklOSVRJT05TX0ZBQ1RPUlk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+VGlsZXNVdGlsSW1wbDwvQT4KKzxERD5Db25zdGFudCBuYW1lIHVzZWQgdG8gc3RvcmUgZmFjdG9yeSBpbiBzZXJ2bGV0IGNvbnRleHQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNERUZJTklUSU9OU19GQUNUT1JZIj48Qj5ERUZJTklUSU9OU19GQUNUT1JZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCI+RGVmaW5pdGlvbnNVdGlsPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0YW50IG5hbWUgdXNlZCB0byBzdG9yZSBmYWN0b3J5IGluIGNvbnRleHQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNERUZJTklUSU9OU19GQUNUT1JZX0NMQVNTTkFNRSI+PEI+REVGSU5JVElPTlNfRkFDVE9SWV9DTEFTU05BTUU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7TmFtZSBvZiBpbml0IHByb3BlcnR5IGNhcnJ5aW5nIGZhY3RvcnkgY2xhc3MgbmFtZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI0RFRklOSVRJT05TX0ZBQ1RPUllfQ0xBU1NOQU1FIj48Qj5ERUZJTklUSU9OU19GQUNUT1JZX0NMQVNTTkFNRTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeTwvQT4KKzxERD5OYW1lIG9mIGluaXQgcHJvcGVydHkgY2FycnlpbmcgZmFjdG9yeSBjbGFzcyBuYW1lCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI2RlZmluaXRpb25zRmFjdG9yeSI+PEI+ZGVmaW5pdGlvbnNGYWN0b3J5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCI+QWN0aW9uQ29tcG9uZW50U2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtEZWZpbml0aW9ucyBmYWN0b3J5Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwjZGVmaW5pdGlvbnNGYWN0b3J5Ij48Qj5kZWZpbml0aW9uc0ZhY3Rvcnk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlRpbGVzUmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5EZWZpbml0aW9ucyBmYWN0b3J5Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPjxCPkRlZmluaXRpb25zRmFjdG9yeTwvQj48L0E+IC0gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+LjxERD5UaWxlcyBEZWZpbml0aW9uIGZhY3RvcnkuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPjxCPkRlZmluaXRpb25zRmFjdG9yeTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+LjxERD5BIGZhY3RvcnkgZm9yIGRlZmluaXRpb25zLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI0RlZmluaXRpb25zRmFjdG9yeShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb25zU2V0KSI+PEI+RGVmaW5pdGlvbnNGYWN0b3J5KFhtbERlZmluaXRpb25zU2V0KTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPjxCPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4uPEREPkEgVGlsZXNGYWN0b3J5Q29uZmlnIG9iamVjdCBob2xkIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlcyBmb3IgYSB0aWxlCisgZGVmaW5pdGlvbiBmYWN0b3J5LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcoKSI+PEI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Cis8REQ+RGVmYXVsdCBjb25zdHJ1Y3Rvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcoamF2YS51dGlsLk1hcCkiPjxCPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZyhNYXApPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj48Qj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0I+PC9BPiAtIGV4Y2VwdGlvbiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPi48REQ+RXhjZXB0aW9uIHRocm93biB3aGVuIGFuIGVycm9yIG9jY3VycyB3aGlsZSB0aGUgZmFjdG9yeSB0cmllcyB0bworIGNyZWF0ZSBhIG5ldyBpbnN0YW5jZSBtYXBwZXIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sI0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbigpIj48Qj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT4KKzxERD5Db25zdHJ1Y3Rvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCNEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24oamF2YS5sYW5nLkV4Y2VwdGlvbikiPjxCPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbihFeGNlcHRpb24pPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPgorPEREPkNyZWF0ZSBhIG5ldyA8Y29kZT5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L2NvZGU+IHdyYXBwaW5nIGFuIGV4aXN0aW5nIGV4Y2VwdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCNEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZykiPjxCPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbihTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sI0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuRXhjZXB0aW9uKSI+PEI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uKFN0cmluZywgRXhjZXB0aW9uKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT4KKzxERD5DcmVhdGUgYSBuZXcgPGNvZGU+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9jb2RlPiBmcm9tIGFuIGV4aXN0aW5nIGV4Y2VwdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCI+PEI+RGVmaW5pdGlvbnNVdGlsPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCI+RGVmaW5pdGlvbnNVdGlsPC9BPi48REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj48Q09ERT5UaWxlc1V0aWwuY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0LCBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpPC9DT0RFPjwvQT48L0k+PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sIj48Qj5EZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXA8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sIj5EZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXA8L0E+LjxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtJbm5lciBjbGFzcy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwjRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwKGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZykiPjxCPkRlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcChTZXJ2bGV0Q29uZmlnKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiPkRlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb25zdHJ1Y3Rvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNEZWZpbml0aW9uc1V0aWwoKSI+PEI+RGVmaW5pdGlvbnNVdGlsKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCI+PEI+RGVmaW5pdGlvblRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPkRlZmluaXRpb25UYWc8L0E+LjxERD5UaGlzIGlzIHRoZSB0YWcgaGFuZGxlciBmb3IgJmx0O3RpbGVzOmRlZmluaXRpb24mZ3Q7LCB3aGljaCBkZWZpbmVzCisgYSB0aWxlcyAob3IgdGVtcGxhdGUgLyBjb21wb25lbnQpLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI0RlZmluaXRpb25UYWcoKSI+PEI+RGVmaW5pdGlvblRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCI+RGVmaW5pdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+PEI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+LjxERD5Db21tb24gYmFzZSBjbGFzcyBmb3IgdGFncyBkZWFsaW5nIHdpdGggVGlsZXMgZGVmaW5pdGlvbnMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI0RlZmluaXRpb25UYWdTdXBwb3J0KCkiPjxCPkRlZmluaXRpb25UYWdTdXBwb3J0KCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sI2RlbGV0ZVJlZmVyZW5jZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+ZGVsZXRlUmVmZXJlbmNlKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlIZWxwZXIuaHRtbCI+TmVzdGVkUHJvcGVydHlIZWxwZXI8L0E+Cis8REQ+RGVsZXRlcyB0aGUgbmVzdGVkIHJlZmVyZW5jZSBmcm9tIHRoZSByZXF1ZXN0IG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCNkZXJpdmVOZXN0ZWRQcm9wZXJ0eSgpIj48Qj5kZXJpdmVOZXN0ZWRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sIj5OZXN0ZWRJdGVyYXRlVGFnPC9BPgorPEREPlRoZSBvbmx5IGFkZGVkIHByb3BlcnR5IHRvIHRoZSBjbGFzcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjZGVzdHJveSgpIj48Qj5kZXN0cm95KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sIj5Nb2R1bGVDb25maWdWZXJpZmllcjwvQT4KKzxERD5SZWNlaXZlIG5vdGlmaWNhdGlvbiB0aGF0IG91ciBvd25pbmcgbW9kdWxlIGlzIGJlaW5nCisgc2h1dCBkb3duLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCNkZXN0cm95KCkiPjxCPmRlc3Ryb3koKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCI+VmFsaWRhdG9yUGx1Z0luPC9BPgorPEREPkdyYWNlZnVsbHkgc2h1dCBkb3duLCByZWxlYXNpbmcgYW55IHJlc291cmNlcworIHRoYXQgd2VyZSBhbGxvY2F0ZWQgYXQgaW5pdGlhbGl6YXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjZGVzdHJveSgpIj48Qj5kZXN0cm95KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+RGVsZXRlIHRoZSB0ZW1wb3JhcnkgZmlsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI2Rlc3Ryb3koKSI+PEI+ZGVzdHJveSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZTwvQT4KKzxERD5EZXN0cm95IGFsbCBjb250ZW50IGZvciB0aGlzIGZvcm0gZmlsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNkZXN0cm95KCkiPjxCPmRlc3Ryb3koKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+Cis8REQ+RGVzdHJveXMgYWxsIGNvbnRlbnQgZm9yIHRoZSB1cGxvYWRlZCBmaWxlLCBpbmNsdWRpbmcgYW55IHVuZGVybHlpbmcKKyBkYXRhIGZpbGVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI2Rlc3Ryb3koKSI+PEI+ZGVzdHJveSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4KKzxERD5SZWNlaXZlIG5vdGlmaWNhdGlvbiB0aGF0IHRoZSBmYWN0b3J5IGlzIGJlaW5nCisgc2h1dCBkb3duLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjZGVzdHJveSgpIj48Qj5kZXN0cm95KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwiPlRpbGVzUGx1Z2luPC9BPgorPEREPkVuZCBwbHVnaW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjZGVzdHJveSgpIj48Qj5kZXN0cm95KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXI8L0E+Cis8REQ+RG8gbm90aGluZyBiZWNhdXNlIG9sZCBsaWZlIGN5Y2xlIGhhcyBubyBlcXVpdmFsZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVzdHJveSgpIj48Qj5kZXN0cm95KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkdyYWNlZnVsbHkgc2h1dCBkb3duIHRoaXMgY29udHJvbGxlciBzZXJ2bGV0LCByZWxlYXNpbmcgYW55IHJlc291cmNlcworIHRoYXQgd2VyZSBhbGxvY2F0ZWQgYXQgaW5pdGlhbGl6YXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNkZXN0cm95KCkiPjxCPmRlc3Ryb3koKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlJlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+Q2xlYW4gdXAgaW4gcHJlcGFyYXRpb24gZm9yIGEgc2h1dGRvd24gb2YgdGhpcyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUGx1Z0luLmh0bWwjZGVzdHJveSgpIj48Qj5kZXN0cm95KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj5QbHVnSW48L0E+Cis8REQ+UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCBvdXIgb3duaW5nIG1vZHVsZSBpcyBiZWluZworIHNodXQgZG93bi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2Rlc3Ryb3lBcHBsaWNhdGlvbnMoKSI+PEI+ZGVzdHJveUFwcGxpY2F0aW9ucygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5yZXBsYWNlZCBieSBkZXN0cm95TW9kdWxlcygpPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVzdHJveUNvbmZpZ0RpZ2VzdGVyKCkiPjxCPmRlc3Ryb3lDb25maWdEaWdlc3RlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5HcmFjZWZ1bGx5IHJlbGVhc2UgYW55IGNvbmZpZ0RpZ2VzdGVyIGluc3RhbmNlIHRoYXQgd2UgaGF2ZSBjcmVhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVzdHJveURhdGFTb3VyY2VzKCkiPjxCPmRlc3Ryb3lEYXRhU291cmNlcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5XaWxsIG5vIGxvbmdlciBiZSByZXF1aXJlZCB3aXRoIG1vZHVsZSBzdXBwb3J0PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVzdHJveUludGVybmFsKCkiPjxCPmRlc3Ryb3lJbnRlcm5hbCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5HcmFjZWZ1bGx5IHRlcm1pbmF0ZSB1c2Ugb2YgdGhlIGludGVybmFsIE1lc3NhZ2VSZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZXN0cm95TW9kdWxlcygpIj48Qj5kZXN0cm95TW9kdWxlcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5HcmFjZWZ1bGx5IHRlcm1pbmF0ZSB1c2Ugb2YgYW55IG1vZHVsZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMKKyBhcHBsaWNhdGlvbiAoaWYgYW55KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwjZGVzdHJveVJlc291cmNlcygpIj48Qj5kZXN0cm95UmVzb3VyY2VzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwiPlZhbGlkYXRvclBsdWdJbjwvQT4KKzxERD5EZXN0cm95IDxjb2RlPlZhbGlkYXRvclJlc291cmNlczwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCNkaWdlc3RlciI+PEI+ZGlnZXN0ZXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sIj5YbWxQYXJzZXI8L0E+Cis8REQ+QXNzb2NpYXRlZCBkaWdlc3Rlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI2RpcmVjdCI+PEI+ZGlyZWN0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCI+WG1sQXR0cmlidXRlPC9BPgorPEREPkF0dHJpYnV0ZSB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjZGlyZWN0Ij48Qj5kaXJlY3Q8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPkpTUCBUZW1wbGF0ZSBjb21wYXRpYmlsaXR5Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2RpcmVjdCI+PEI+ZGlyZWN0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtEZXRlcm1pbmVzIHdoZXRoZXIgY29udGVudCBpcyBpbmNsdWRlZCAoZmFsc2UpIG9yIHByaW50ZWQgKHRydWUpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCNkaXJlY3QiPjxCPmRpcmVjdDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPkNvbnRlbnQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVwcmVzZW50cyBhIGJvb2xlYW4gLSBpZiB0cnVlLCBjb250ZW50IGlzIGluY2x1ZGVkLCBvdGhlcndpc2UKKyAgY29udGVudCBpcyBwcmludGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RpcmVjdFN0cmluZ0F0dHJpYnV0ZS5odG1sIj48Qj5EaXJlY3RTdHJpbmdBdHRyaWJ1dGU8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RpcmVjdFN0cmluZ0F0dHJpYnV0ZS5odG1sIj5EaXJlY3RTdHJpbmdBdHRyaWJ1dGU8L0E+LjxERD5Db21wb25lbnQgYXR0cmlidXRlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuaHRtbCNEaXJlY3RTdHJpbmdBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPjxCPkRpcmVjdFN0cmluZ0F0dHJpYnV0ZShTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuaHRtbCI+RGlyZWN0U3RyaW5nQXR0cmlidXRlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGlzYWJsZWQiPjxCPmRpc2FibGVkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPkNvbXBvbmVudCBpcyBkaXNhYmxlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNkaXNhYmxlZCI+PEI+ZGlzYWJsZWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5JcyB0aGlzIG9wdGlvbiBkaXNhYmxlZD8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNkaXNrQnVmZmVyU2l6ZSI+PEI+ZGlza0J1ZmZlclNpemU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5UaGUgc2l6ZSBpbiBieXRlcyB3cml0dGVuIHRvIHRoZSBmaWxlc3lzdGVtIGF0IGEgdGltZSBbMjBLXQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj48Qj5EaXNrRmlsZTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj5EaXNrRmlsZTwvQT4uPEREPiZuYnNwOzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNEaXNrRmlsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+RGlza0ZpbGUoU3RyaW5nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj5EaXNrRmlsZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxCPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPi48REQ+VGhpcyBpcyBhIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyIHRoYXQgd3JpdGVzIGZpbGUgZGF0YSBkaXJlY3RseSB0bworIHRvIHRlbXBvcmFyeSBmaWxlcyBvbiBkaXNrLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyKCkiPjxCPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcigpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj48Qj5EaXNwYXRjaEFjdGlvbjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPkRpc3BhdGNoQWN0aW9uPC9BPi48REQ+QW4gYWJzdHJhY3QgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBkaXNwYXRjaGVzIHRvIGEgcHVibGljCisgbWV0aG9kIHRoYXQgaXMgbmFtZWQgYnkgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHdob3NlIG5hbWUgaXMgc3BlY2lmaWVkCisgYnkgdGhlIDxjb2RlPnBhcmFtZXRlcjwvY29kZT4gcHJvcGVydHkgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyBBY3Rpb25NYXBwaW5nLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjRGlzcGF0Y2hBY3Rpb24oKSI+PEI+RGlzcGF0Y2hBY3Rpb24oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPkRpc3BhdGNoQWN0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCNkaXNwYXRjaE1ldGhvZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+ZGlzcGF0Y2hNZXRob2QoQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCI+RGlzcGF0Y2hBY3Rpb248L0E+Cis8REQ+RGlzcGF0Y2ggdG8gdGhlIHNwZWNpZmllZCBtZXRob2QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSb290VGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+PEI+ZG9BZnRlckJvZHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCI+TmVzdGVkUm9vdFRhZzwvQT4KKzxERD5SZW5kZXIgdGhlIHJlc3VsdGluZyBjb250ZW50IGV2YWx1YXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPjxCPmRvQWZ0ZXJCb2R5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIj5OZXN0ZWRQcm9wZXJ0eVRhZzwvQT4KKzxERD5SZW5kZXIgdGhlIHJlc3VsdGluZyBjb250ZW50IGV2YWx1YXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+PEI+ZG9BZnRlckJvZHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCI+TmVzdGVkSXRlcmF0ZVRhZzwvQT4KKzxERD5UaGlzIGlzIG9ubHkgb3ZlcnJpZGVuIGFzIHRoZSBpbmNsdWRlIHJlZmVyZW5jZSB3aWxsIG5lZWQgaXQncyBpbmRleAorIHVwZGF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj48Qj5kb0FmdGVyQm9keSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5NYWtlIHRoZSBuZXh0IGNvbGxlY3Rpb24gZWxlbWVudCBhdmFpbGFibGUgYW5kIGxvb3AsIG9yCisgZmluaXNoIHRoZSBpdGVyYXRpb25zIGlmIHRoZXJlIGFyZSBubyBtb3JlIGVsZW1lbnRzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj48Qj5kb0FmdGVyQm9keSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+PEI+ZG9BZnRlckJvZHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5TYXZlIGFueSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcsIHdoaWNoIHdpbGwgZ2VuZXJhbGx5IGJlIHRoZQorIG9wdGlvbihzKSByZXByZXNlbnRpbmcgdGhlIHZhbHVlcyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj48Qj5kb0FmdGVyQm9keSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT4KKzxERD5NYWtlIHRoZSBuZXh0IGNvbGxlY3Rpb24gZWxlbWVudCBhdmFpbGFibGUgYW5kIGxvb3AsIG9yCisgZmluaXNoIHRoZSBpdGVyYXRpb25zIGlmIHRoZXJlIGFyZSBubyBtb3JlIGVsZW1lbnRzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPjxCPmRvQWZ0ZXJCb2R5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIj5DYW5jZWxUYWc8L0E+Cis8REQ+U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj48Qj5kb0FmdGVyQm9keSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT4KKzxERD5TYXZlIHRoZSBib2R5IGNvbnRlbnRzIG9mIHRoaXMgdGFnIGFzIHRoZSBjb25zdGFudCB0aGF0IHdlIHdpbGwKKyBiZSByZXR1cm5pbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj48Qj5kb0FmdGVyQm9keSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj5DaGVja2JveFRhZzwvQT4KKzxERD5TYXZlIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGZyb20gdGhlIGJvZHkgY29udGVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj48Qj5kb0FmdGVyQm9keSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlNhdmUgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPjxCPmRvQWZ0ZXJCb2R5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQgKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj48Qj5kb0FmdGVyQm9keSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIj5SZXNldFRhZzwvQT4KKzxERD5TYXZlIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGZyb20gdGhlIGJvZHkgY29udGVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNkb0FmdGVyQm9keSgpIj48Qj5kb0FmdGVyQm9keSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIGJvZHkgdGV4dCBvZiB0aGlzIHRhZyAoaWYgYW55KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPjxCPmRvQWZ0ZXJCb2R5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPlNhdmUgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPjxCPmRvQWZ0ZXJCb2R5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+U2F2ZSB0aGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLCBvciB0aHJvdyBhIEpzcEV4Y2VwdGlvbgorIGlmIHRoZSB2YWx1ZSB3YXMgYWxyZWFkeSBkZWZpbmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+Cis8REQ+RG8gZW5kIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sIj5EZWZpbml0aW9uVGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIGVuZCB0YWcgYnkgcHV0dGluZyB0aGUgZGVmaW5pdGlvbiBpbiBhcHByb3ByaWF0ZSBjb250ZXh0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIj5HZXRBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+Q2xvc2UgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luaXREZWZpbml0aW9uc1RhZy5odG1sIj5Jbml0RGVmaW5pdGlvbnNUYWc8L0E+Cis8REQ+RG8gZW5kIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPkRvIGVuZCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwiPkltcG9ydEF0dHJpYnV0ZVRhZzwvQT4KKzxERD5DbGVhbiB1cCBhZnRlciBwcm9jZXNzaW5nIHRoaXMgZW51bWVyYXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwiPlVzZUF0dHJpYnV0ZVRhZzwvQT4KKzxERD5DbGVhbiB1cCBhZnRlciBwcm9jZXNzaW5nIHRoaXMgZW51bWVyYXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgdGFnIGJ5IGluY2x1ZGluZyB0aGUgdGVtcGxhdGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+Cis8REQ+RG8gaW5jbHVkZSBmb3IgdHlwZSBkZXBpY3RlZCBieSBpbXBsZW1lbnRhdGlvbiBjbGFzcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5JbnNlcnRIYW5kbGVyPC9BPgorPEREPkluY2x1ZGUgcmVxdWVzdGVkIHBhZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlcjwvQT4KKzxERD5QcmludCBTdHJpbmcgaW4gcGFnZSBvdXRwdXQgc3RyZWFtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiPkF0dHJpYnV0ZVRvU2NvcGVUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q2xlYW4gIHVwICBhZnRlciAgcHJvY2Vzc2luZyAgdGhpcyAgZW51bWVyYXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiPk5lc3RlZFdyaXRlTmVzdGluZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sIj5OZXN0ZWRSb290VGFnPC9BPgorPEREPkV2YWx1YXRlIHRoZSByZXN0IG9mIHRoZSBwYWdlCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIj5OZXN0ZWRQcm9wZXJ0eVRhZzwvQT4KKzxERD5FdmFsdWF0ZSB0aGUgcmVzdCBvZiB0aGUgcGFnZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkUHJlc2VudFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwiPk5lc3RlZFByZXNlbnRUYWc8L0E+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWROb3RQcmVzZW50VGFnPC9BPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIj5OZXN0ZWROb3RNYXRjaFRhZzwvQT4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCI+TmVzdGVkTm90RXF1YWxUYWc8L0E+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwiPk5lc3RlZE5vdEVtcHR5VGFnPC9BPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZzwvQT4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1hdGNoVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1hdGNoVGFnLmh0bWwiPk5lc3RlZE1hdGNoVGFnPC9BPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sIj5OZXN0ZWRMZXNzVGhhblRhZzwvQT4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sIj5OZXN0ZWRMZXNzRXF1YWxUYWc8L0E+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sIj5OZXN0ZWRJdGVyYXRlVGFnPC9BPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sIj5OZXN0ZWRHcmVhdGVyVGhhblRhZzwvQT4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJFcXVhbFRhZy5odG1sIj5OZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0E+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwiPk5lc3RlZEVxdWFsVGFnPC9BPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFbXB0eVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFbXB0eVRhZy5odG1sIj5OZXN0ZWRFbXB0eVRhZzwvQT4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dGFyZWFUYWcuaHRtbCI+TmVzdGVkVGV4dGFyZWFUYWc8L0E+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sIj5OZXN0ZWRUZXh0VGFnPC9BPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFN1Ym1pdFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwiPk5lc3RlZFN1Ym1pdFRhZzwvQT4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTZWxlY3RUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sIj5OZXN0ZWRTZWxlY3RUYWc8L0E+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFJhZGlvVGFnLmh0bWwiPk5lc3RlZFJhZGlvVGFnPC9BPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRQYXNzd29yZFRhZy5odG1sIj5OZXN0ZWRQYXNzd29yZFRhZzwvQT4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwiPk5lc3RlZE9wdGlvbnNUYWc8L0E+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sIj5OZXN0ZWRNdWx0aWJveFRhZzwvQT4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNUYWc8L0E+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTGlua1RhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTGlua1RhZy5odG1sIj5OZXN0ZWRMaW5rVGFnPC9BPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltZ1RhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwiPk5lc3RlZEltZ1RhZzwvQT4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWFnZVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1hZ2VUYWcuaHRtbCI+TmVzdGVkSW1hZ2VUYWc8L0E+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSGlkZGVuVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCI+TmVzdGVkSGlkZGVuVGFnPC9BPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCI+TmVzdGVkRm9ybVRhZzwvQT4KKzxERD5UaGlzIGlzIG9ubHkgb3ZlcnJpZGVuIHRvIGNsZWFuIHVwIHRoZSBpbmNsdWRlIHJlZmVyZW5jZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwiPk5lc3RlZEZpbGVUYWc8L0E+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRFcnJvcnNUYWcuaHRtbCI+TmVzdGVkRXJyb3JzVGFnPC9BPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sIj5OZXN0ZWRDaGVja2JveFRhZzwvQT4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRXcml0ZVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCI+TmVzdGVkV3JpdGVUYWc8L0E+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sIj5OZXN0ZWRTaXplVGFnPC9BPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZVRhZzwvQT4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRhZy5odG1sIj5OZXN0ZWREZWZpbmVUYWc8L0E+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPkNsZWFuIHVwIGFmdGVyIHByb2Nlc3NpbmcgdGhpcyBlbnVtZXJhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sIj5Gb3J3YXJkVGFnPC9BPgorPEREPkxvb2sgdXAgdGhlIEFjdGlvbkZvcndhcmQgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSwKKyBhbmQgcGVyZm9ybSBhIGZvcndhcmQgb3IgcmVkaXJlY3QgdG8gdGhhdCBwYXRoIGFzIGluZGljYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPkV2YWx1YXRlIHRoZSByZW1haW5kZXIgb2YgdGhlIGN1cnJlbnQgcGFnZSBub3JtYWxseS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPlJlbmRlciB0aGUgcmVkaXJlY3QgYW5kIHNraXAgdGhlIHJlbWFpbmRlciBvZiB0aGlzIHBhZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD5SZW5kZXIgdGhlIGVuZCBvZiB0aGUgaHlwZXJsaW5rLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+UmVuZGVyIHRoZSBlbmQgb2YgdGhpcyBmb3JtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+Cis8REQ+Q2xlYW4gdXAgYWZ0ZXIgcHJvY2Vzc2luZyB0aGlzIGVudW1lcmF0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIj5DYW5jZWxUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+UmVuZGVyIGFuIGlucHV0IGVsZW1lbnQgZm9yIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCI+RnJhbWVUYWc8L0E+Cis8REQ+SWdub3JlIHRoZSBlbmQgb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvWGh0bWxUYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9YaHRtbFRhZy5odG1sIj5YaHRtbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIHJlbWFpbmRlciBvZiB0aGlzIHBhZ2Ugbm9ybWFsbHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5SZW5kZXIgdGhlIGVuZCBvZiB0aGUgSU1HIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sIj5IdG1sVGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIj5SZXdyaXRlVGFnPC9BPgorPEREPklnbm9yZSB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNkb0VuZFRhZygpIj48Qj5kb0VuZFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmVuZGVyIHRoZSBlbmQgb2YgdGhpcyBmb3JtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjZG9FbmRUYWcoKSI+PEI+ZG9FbmRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+T3B0aW9uYWxseSByZW5kZXIgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2RvRW5kVGFnKCkiPjxCPmRvRW5kVGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI2RvRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPmRvRm9yd2FyZChTdHJpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCI+QWN0aW9uQ29tcG9uZW50U2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtEbyBhIGZvcndhcmQsIGFuZCBldmVudHVhbGx5IGNhdGNoIHVyaSBjb250YWluaW5nIFRpbGVzIGRlZmluaXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwjZG9Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+ZG9Gb3J3YXJkKFN0cmluZywgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlRpbGVzUmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5EbyBhIGZvcndhcmQgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjZG9Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+ZG9Gb3J3YXJkKFN0cmluZywgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlJlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+RG8gYSBmb3J3YXJkIHRvIHNwZWNpZmllZCB1cmkgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2RvRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPmRvRm9yd2FyZChTdHJpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSwgU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwiPlRpbGVzVXRpbDwvQT4KKzxERD5EbyBhIGZvcndhcmQgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCNkb0ZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5kb0ZvcndhcmQoU3RyaW5nLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5UaWxlc1V0aWxJbXBsPC9BPgorPEREPkRvIGEgZm9yd2FyZCB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCNkb0ZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5kb0ZvcndhcmQoU3RyaW5nLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCI+VGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGw8L0E+Cis8REQ+RG8gYSBmb3J3YXJkIHVzaW5nIHJlcXVlc3QgZGlzcGF0Y2hlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2RvR2V0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+ZG9HZXQoSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+UHJvY2VzcyBhbiBIVFRQICJHRVQiIHJlcXVlc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2RvSW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+ZG9JbmNsdWRlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5EbyBhbiBpbmNsdWRlIG9mIHNwZWNpZmllZCBwYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjZG9JbmNsdWRlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+ZG9JbmNsdWRlKFN0cmluZywgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlJlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+RG8gYW4gaW5jbHVkZSBvZiBzcGVjaWZpZWQgdXJpIHVzaW5nIHJlcXVlc3QgZGlzcGF0Y2hlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNkb0luY2x1ZGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5kb0luY2x1ZGUoU3RyaW5nLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj5UaWxlc1V0aWw8L0E+Cis8REQ+RG8gYW4gaW5jbHVkZSB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI2RvSW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPmRvSW5jbHVkZShTdHJpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSwgU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPlRpbGVzVXRpbEltcGw8L0E+Cis8REQ+RG8gYW4gaW5jbHVkZSB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCNkb0luY2x1ZGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5kb0luY2x1ZGUoU3RyaW5nLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCI+VGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGw8L0E+Cis8REQ+RG8gYW4gaW5jbHVkZSB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjZG9JbmNsdWRlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PEI+ZG9JbmNsdWRlKFN0cmluZywgUGFnZUNvbnRleHQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwiPlRpbGVzVXRpbDwvQT4KKzxERD5EbyBhbiBpbmNsdWRlIHVzaW5nIFBhZ2VDb250ZXh0LmluY2x1ZGUoKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjZG9JbmNsdWRlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PEI+ZG9JbmNsdWRlKFN0cmluZywgUGFnZUNvbnRleHQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5UaWxlc1V0aWxJbXBsPC9BPgorPEREPkRvIGFuIGluY2x1ZGUgdXNpbmcgUGFnZUNvbnRleHQuaW5jbHVkZSgpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZG9Qb3N0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+ZG9Qb3N0KEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlByb2Nlc3MgYW4gSFRUUCAiUE9TVCIgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT4KKzxERD5EbyBzdGFydCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPkRlZmluaXRpb25UYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgdGFnIGJ5IGNyZWF0aW5nIGEgbmV3IGRlZmluaXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luaXREZWZpbml0aW9uc1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luaXREZWZpbml0aW9uc1RhZy5odG1sIj5Jbml0RGVmaW5pdGlvbnNUYWc8L0E+Cis8REQ+RG8gc3RhcnQgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPkRvIHN0YXJ0IHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwiPkltcG9ydEF0dHJpYnV0ZVRhZzwvQT4KKzxERD5FeHBvc2UgdGhlIHJlcXVlc3RlZCBwcm9wZXJ0eSBmcm9tIGNvbXBvbmVudCBjb250ZXh0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCI+VXNlQXR0cmlidXRlVGFnPC9BPgorPEREPkV4cG9zZSB0aGUgcmVxdWVzdGVkIGF0dHJpYnV0ZSBmcm9tIGNvbXBvbmVudCBjb250ZXh0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IHRhZyBieSBjaGVja2luZyB0YWcncyBhdHRyaWJ1dGVzIGFuZCBjcmVhdGluZyBhcHByb3ByaWF0ZSBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT4KKzxERD5DcmVhdGUgQ29tcG9uZW50Q29udGV4dCBmb3IgdHlwZSBkZXBpY3RlZCBieSBpbXBsZW1lbnRhdGlvbiBjbGFzcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sIj5JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcjwvQT4KKzxERD5DcmVhdGUgYSBuZXcgZW1wdHkgY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlcjwvQT4KKzxERD5EbyBub3RoaW5nLCB0aGVyZSBpcyBubyBjb250ZXh0IGZvciBhIGRpcmVjdCBzdHJpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiPkF0dHJpYnV0ZVRvU2NvcGVUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7RXhwb3NlICB0aGUgIHJlcXVlc3RlZCAgcHJvcGVydHkgIGZyb20gIGNvbXBvbmVudCAgY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCI+VGV4dFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtHZW5lcmF0ZSB0aGUgcmVxdWlyZWQgaW5wdXQgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCI+R2V0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sIj5OZXN0ZWRXcml0ZU5lc3RpbmdUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSb290VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSb290VGFnLmh0bWwiPk5lc3RlZFJvb3RUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCI+TmVzdGVkUHJvcGVydHlUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwiPk5lc3RlZFByZXNlbnRUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE5vdFByZXNlbnRUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCI+TmVzdGVkTm90TWF0Y2hUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCI+TmVzdGVkTm90RXF1YWxUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFbXB0eVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCI+TmVzdGVkTm90RW1wdHlUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNYXRjaFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbCI+TmVzdGVkTWF0Y2hUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc1RoYW5UYWcuaHRtbCI+TmVzdGVkTGVzc1RoYW5UYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sIj5OZXN0ZWRMZXNzRXF1YWxUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPk5lc3RlZEl0ZXJhdGVUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCI+TmVzdGVkR3JlYXRlclRoYW5UYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJFcXVhbFRhZy5odG1sIj5OZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRXF1YWxUYWcuaHRtbCI+TmVzdGVkRXF1YWxUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFbXB0eVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRW1wdHlUYWcuaHRtbCI+TmVzdGVkRW1wdHlUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dGFyZWFUYWcuaHRtbCI+TmVzdGVkVGV4dGFyZWFUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwiPk5lc3RlZFRleHRUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFN1Ym1pdFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFN1Ym1pdFRhZy5odG1sIj5OZXN0ZWRTdWJtaXRUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sIj5OZXN0ZWRTZWxlY3RUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFJhZGlvVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCI+TmVzdGVkUmFkaW9UYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCI+TmVzdGVkUGFzc3dvcmRUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwiPk5lc3RlZE9wdGlvbnNUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+TmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTXVsdGlib3hUYWcuaHRtbCI+TmVzdGVkTXVsdGlib3hUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE1lc3NhZ2VzVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwiPk5lc3RlZExpbmtUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltZ1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltZ1RhZy5odG1sIj5OZXN0ZWRJbWdUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1hZ2VUYWcuaHRtbCI+TmVzdGVkSW1hZ2VUYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEhpZGRlblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEhpZGRlblRhZy5odG1sIj5OZXN0ZWRIaWRkZW5UYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwiPk5lc3RlZEZvcm1UYWc8L0E+Cis8REQ+T3ZlcnJpZGluZyB0byBhbGxvdyB0aGUgY2hhbmNlIHRvIHNldCB0aGUgZGV0YWlscyBvZiB0aGUgc3lzdGVtLCBzbyB0aGF0CisgZHluYW1pYyBpbmNsdWRlcyBjYW4gYmUgcG9zc2libGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZpbGVUYWcuaHRtbCI+TmVzdGVkRmlsZVRhZzwvQT4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwiPk5lc3RlZEVycm9yc1RhZzwvQT4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkQ2hlY2tib3hUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sIj5OZXN0ZWRDaGVja2JveFRhZzwvQT4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRXcml0ZVRhZy5odG1sIj5OZXN0ZWRXcml0ZVRhZzwvQT4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCI+TmVzdGVkU2l6ZVRhZzwvQT4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZVRhZzwvQT4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGFnLmh0bWwiPk5lc3RlZERlZmluZVRhZzwvQT4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD5Db25zdHJ1Y3QgYW4gaXRlcmF0b3IgZm9yIHRoZSBzcGVjaWZpZWQgY29sbGVjdGlvbiwgYW5kIGJlZ2luCisgbG9vcGluZyB0aHJvdWdoIHRoZSBib2R5IG9uY2UgcGVyIGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwiPkZvcndhcmRUYWc8L0E+Cis8REQ+RGVmZXIgcHJvY2Vzc2luZyB1bnRpbCB0aGUgZW5kIG9mIHRoaXMgdGFnIGlzIGVuY291bnRlcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPlBlcmZvcm0gdGhlIHRlc3QgcmVxdWlyZWQgZm9yIHRoaXMgcGFydGljdWxhciB0YWcsIGFuZCBlaXRoZXIgZXZhbHVhdGUKKyBvciBza2lwIHRoZSBib2R5IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPkRlZmVyIGdlbmVyYXRpb24gdW50aWwgdGhlIGVuZCBvZiB0aGlzIHRhZyBpcyBlbmNvdW50ZXJlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5PcHRpb25zQ29sbGVjdGlvblRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4KKzxERD5SZW5kZXIgdGhlIHNwZWNpZmllZCBlcnJvciBtZXNzYWdlcyBpZiB0aGVyZSBhcmUgYW55LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+SGlkZGVuVGFnPC9BPgorPEREPkdlbmVyYXRlIHRoZSByZXF1aXJlZCBpbnB1dCB0YWcsIGZvbGxvd2VkIGJ5IHRoZSBvcHRpb25hbCByZW5kZXJlZCB0ZXh0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9BPgorPEREPlJlbmRlciB0aGUgSmF2YVNjcmlwdCBmb3IgdG8gcGVyZm9ybSB2YWxpZGF0aW9ucyBiYXNlZCBvbiB0aGUgZm9ybSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlJlbmRlciB0aGUgYmVnaW5uaW5nIG9mIHRoZSBoeXBlcmxpbmsuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+UmVuZGVyIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBzZWxlY3QgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPgorPEREPkdlbmVyYXRlIHRoZSByZXF1aXJlZCBpbnB1dCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+Cis8REQ+Q29uc3RydWN0IGFuIGl0ZXJhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGNvbGxlY3Rpb24sIGFuZCBiZWdpbgorIGxvb3BpbmcgdGhyb3VnaCB0aGUgYm9keSBvbmNlIHBlciBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPkdlbmVyYXRlIHRoZSByZXF1aXJlZCBpbnB1dCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPkZyYW1lVGFnPC9BPgorPEREPlJlbmRlciB0aGUgYXBwcm9wcmlhdGVseSBlbmNvZGVkIFVSSS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj5DaGVja2JveFRhZzwvQT4KKzxERD5HZW5lcmF0ZSB0aGUgcmVxdWlyZWQgaW5wdXQgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlJlbmRlciB0aGUgYmVnaW5uaW5nIG9mIHRoZSBJTUcgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sIj5IdG1sVGFnPC9BPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jld3JpdGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIj5SZXdyaXRlVGFnPC9BPgorPEREPlJlbmRlciB0aGUgYXBwcm9wcmlhdGVseSBlbmNvZGVkIFVSSS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5SZW5kZXIgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGZvcm0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+R2VuZXJhdGUgdGhlIHJlcXVpcmVkIGlucHV0IHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD5DaGVjayBpZiB3ZSBuZWVkIHRvIGV2YWx1YXRlIHRoZSBib2R5IG9mIHRoZSB0YWcKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPkRlZmluZSB0aGUgY29udGVudHMgcmV0dXJuZWQgZm9yIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UgYXMgYQorIHBhZ2Ugc2NvcGUgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+U3RydXRzVGFnPC9BPgorPEREPlJldHJpZXZlIHRoZSByZXF1aXJlZCBjb25maWd1cmF0aW9uIG9iamVjdCBhbmQgZXhwb3NlIGl0IGFzIGEKKyBzY3JpcHRpbmcgdmFyaWFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+UmVzb3VyY2VUYWc8L0E+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjZG9TdGFydFRhZygpIj48Qj5kb1N0YXJ0VGFnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+PEI+ZG9TdGFydFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPlBhZ2VUYWc8L0E+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGFuZCBleHBvc2UgaXQgYXMgYQorIHNjcmlwdGluZyB2YXJpYWJsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPkhlYWRlclRhZzwvQT4KKzxERD5SZXRyaWV2ZSB0aGUgcmVxdWlyZWQgcHJvcGVydHkgYW5kIGV4cG9zZSBpdCBhcyBhIHNjcmlwdGluZyB2YXJpYWJsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPjxCPmRvU3RhcnRUYWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPkNvb2tpZVRhZzwvQT4KKzxERD5SZXRyaWV2ZSB0aGUgcmVxdWlyZWQgcHJvcGVydHkgYW5kIGV4cG9zZSBpdCBhcyBhIHNjcmlwdGluZyB2YXJpYWJsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNET1VCTEVfQ09NUEFSRSI+PEI+RE9VQkxFX0NPTVBBUkU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+Cis8REQ+V2Ugd2lsbCBkbyBhIGRvdWJsZS9mbG9hdCBjb21wYXJpc29uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjRE9VQkxFX0RBU0hfU1RSSU5HIj48Qj5ET1VCTEVfREFTSF9TVFJJTkc8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj48Qj5EeW5hQWN0aW9uRm9ybTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj5EeW5hQWN0aW9uRm9ybTwvQT4uPEREPlNwZWNpYWxpemVkIHN1YmNsYXNzIG9mIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IHRoYXQgYWxsb3dzIHRoZSBjcmVhdGlvbgorIG9mIGZvcm0gYmVhbnMgd2l0aCBkeW5hbWljIHNldHMgb2YgcHJvcGVydGllcywgd2l0aG91dCByZXF1aXJpbmcgdGhlCisgZGV2ZWxvcGVyIHRvIGNyZWF0ZSBhIEphdmEgY2xhc3MgZm9yIGVhY2ggdHlwZSBvZiBmb3JtIGJlYW4uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI0R5bmFBY3Rpb25Gb3JtKCkiPjxCPkR5bmFBY3Rpb25Gb3JtKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCI+RHluYUFjdGlvbkZvcm08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+PEI+RHluYUFjdGlvbkZvcm1DbGFzczwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0E+LjxERD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5EeW5hQ2xhc3M8L2NvZGU+IGZvcgorIDxjb2RlPkR5bmFBY3Rpb25Gb3JtPC9jb2RlPiBjbGFzc2VzIHRoYXQgYWxsb3cgZGV2ZWxvcGVycyB0byBkZWZpbmUKKyBBY3Rpb25Gb3JtcyB3aXRob3V0IGhhdmluZyB0byBpbmRpdmlkdWFsbHkgY29kZSBhbGwgb2YgdGhlIGNsYXNzZXMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjRHluYUFjdGlvbkZvcm1DbGFzcyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWcpIj48Qj5EeW5hQWN0aW9uRm9ybUNsYXNzKEZvcm1CZWFuQ29uZmlnKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IER5bmFBY3Rpb25Gb3JtQ2xhc3MgZm9yIHRoZSBzcGVjaWZpZWQgZm9ybSBiZWFuCisgY29uZmlndXJhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNkeW5hQ2xhc3MiPjxCPmR5bmFDbGFzczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPkR5bmFBY3Rpb25Gb3JtPC9BPgorPEREPlRoZSBEeW5hQWN0aW9uRm9ybUNsYXNzIHdpdGggd2hpY2ggd2UgYXJlIGFzc29jaWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNkeW5hQ2xhc3NlcyI+PEI+ZHluYUNsYXNzZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sIj5EeW5hQWN0aW9uRm9ybUNsYXNzPC9BPgorPEREPlRoZSBzZXQgb2YgPGNvZGU+RHluYUFjdGlvbkZvcm1DbGFzczwvY29kZT4gaW5zdGFuY2VzIHRoYXQgaGF2ZQorIGV2ZXIgYmVlbiBjcmVhdGVkLCBrZXllZCBieSB0aGUgZm9ybSBiZWFuIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjZHluYW1pYyI+PEI+ZHluYW1pYzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPgorPEREPklzIHRoZSBmb3JtIGJlYW4gY2xhc3MgYW4gaW5zdGFuY2Ugb2YgRHluYUFjdGlvbkZvcm0gd2l0aCBkeW5hbWljCisgcHJvcGVydGllcz8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZHluYW1pY0phdmFzY3JpcHQiPjxCPmR5bmFtaWNKYXZhc2NyaXB0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4KKzxERD5UaGUgZHluYW1pYyBKYXZhU2NyaXB0IG9iamVjdHMgd2lsbCBvbmx5IGJlIGdlbmVyYXRlZCBpZiB0aGlzIGlzIHNldCB0byAidHJ1ZSIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPjxCPkR5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtPC9BPi48REQ+VGhpcyBjbGFzcyBleHRlbmRzIDxzdHJvbmc+RHluYVZhbGlkYXRvckZvcm08L3N0cm9uZz4gYW5kIHByb3ZpZGVzCisgYmFzaWMgZmllbGQgdmFsaWRhdGlvbiBiYXNlZCBvbiBhbiBYTUwgZmlsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwjRHluYVZhbGlkYXRvckFjdGlvbkZvcm0oKSI+PEI+RHluYVZhbGlkYXRvckFjdGlvbkZvcm0oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIj5EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCI+PEI+RHluYVZhbGlkYXRvckZvcm08L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCI+RHluYVZhbGlkYXRvckZvcm08L0E+LjxERD5UaGlzIGNsYXNzIGV4dGVuZHMgPHN0cm9uZz5EeW5hQWN0aW9uRm9ybTwvc3Ryb25nPiBhbmQgcHJvdmlkZXMKKyBiYXNpYyBmaWVsZCB2YWxpZGF0aW9uIGJhc2VkIG9uIGFuIFhNTCBmaWxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCNEeW5hVmFsaWRhdG9yRm9ybSgpIj48Qj5EeW5hVmFsaWRhdG9yRm9ybSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JGb3JtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2R5bmFWYWx1ZXMiPjxCPmR5bmFWYWx1ZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj5EeW5hQWN0aW9uRm9ybTwvQT4KKzxERD5UaGUgc2V0IG9mIHByb3BlcnR5IHZhbHVlcyBmb3IgdGhpcyBEeW5hQWN0aW9uRm9ybSwga2V5ZWQgYnkKKyBwcm9wZXJ0eSBuYW1lLgorPC9ETD4KKzxIUj4KKzxBIE5BTUU9Il9FXyI+PCEtLSAtLT48L0E+PEgyPgorPEI+RTwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZWxlbWVudENoYXJzZXQiPjxCPmVsZW1lbnRDaGFyc2V0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPlRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgdGhlIGVsZW1lbnQsIHNwZWNpZmllZCBpbiB0aGUgZWxlbWVudCdzIENvbnRlbnQtVHlwZSBoZWFkZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNlbGVtZW50Q29udGVudERpc3Bvc2l0aW9uIj48Qj5lbGVtZW50Q29udGVudERpc3Bvc2l0aW9uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPlRoZSBDb250ZW50LURpc3Bvc2l0aW9uIGZvciB0aGUgY3VycmVudCBmb3JtIGVsZW1lbnQgYmVpbmcgcmVhZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2VsZW1lbnRDb250ZW50VHlwZSI+PEI+ZWxlbWVudENvbnRlbnRUeXBlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPlRoZSBDb250ZW50LVR5cGUgb2YgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50IGJlaW5nIHJlYWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNlbGVtZW50RmlsZU5hbWUiPjxCPmVsZW1lbnRGaWxlTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGUgZmlsZW5hbWUgb2YgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50IGJlaW5nIHJlYWQsIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSBjdXJyZW50IGZvcm0gZWxlbWVudCBpcworIHRleHQgZGF0YS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2VsZW1lbnROYW1lIj48Qj5lbGVtZW50TmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgY3VycmVudCBmb3JtIGVsZW1lbnQgYmVpbmcgcmVhZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZWxlbWVudHNBbGwiPjxCPmVsZW1lbnRzQWxsPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5UaGUgY29tYmluZWQgdGV4dCBhbmQgZmlsZSByZXF1ZXN0IHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2VsZW1lbnRzRmlsZSI+PEI+ZWxlbWVudHNGaWxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5UaGUgZmlsZSByZXF1ZXN0IHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2VsZW1lbnRzVGV4dCI+PEI+ZWxlbWVudHNUZXh0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5UaGUgdGV4dCByZXF1ZXN0IHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI0VNUFRZX0lURVJBVE9SIj48Qj5FTVBUWV9JVEVSQVRPUjwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPgorPEREPkVtcHR5SXRlcmF0b3Igb3ZlciBjb21wb25lbnQgYXR0cmlidXRlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNlbXB0eSgpIj48Qj5lbXB0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPkFjdGlvbk1lc3NhZ2VzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBpc0VtcHR5IGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0VtcHR5SXRlcmF0b3IuaHRtbCI+PEI+RW1wdHlJdGVyYXRvcjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRW1wdHlJdGVyYXRvci5odG1sIj5FbXB0eUl0ZXJhdG9yPC9BPi48REQ+Jm5ic3A7PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0VtcHR5SXRlcmF0b3IuaHRtbCNFbXB0eUl0ZXJhdG9yKCkiPjxCPkVtcHR5SXRlcmF0b3IoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRW1wdHlJdGVyYXRvci5odG1sIj5FbXB0eUl0ZXJhdG9yPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIj48Qj5FbXB0eVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIj5FbXB0eVRhZzwvQT4uPEREPkV2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIGVtcHR5IGZvciB0aGlzIHJlcXVlc3QuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sI0VtcHR5VGFnKCkiPjxCPkVtcHR5VGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCI+RW1wdHlUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNlbmNvZGUiPjxCPmVuY29kZTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+SmF2YSAxLjQgZW5jb2RlIG1ldGhvZCB0byB1c2UgaW5zdGVhZCBvZiBkZXByZWNhdGVkIDEuMyB2ZXJzaW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjZW5jb2RlVVJMKGphdmEubGFuZy5TdHJpbmcpIj48Qj5lbmNvZGVVUkwoU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPlVzZSB0aGUgbmV3IFVSTEVuY29kZXIuZW5jb2RlKCkgbWV0aG9kIGZyb20gamF2YSAxLjQgaWYgYXZhaWxhYmxlLCBlbHNlCisgdXNlIHRoZSBvbGQgZGVwcmVjYXRlZCB2ZXJzaW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI2VuY291bnRlcmVkRmluYWxCb3VuZGFyeSgpIj48Qj5lbmNvdW50ZXJlZEZpbmFsQm91bmRhcnkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZW5jdHlwZSI+PEI+ZW5jdHlwZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIGNvbnRlbnQgZW5jb2RpbmcgdG8gYmUgdXNlZCBvbiBhIFBPU1Qgc3VibWl0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZW5kT2ZTdHJlYW0iPjxCPmVuZE9mU3RyZWFtPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPldoZXRoZXIgb3Igbm90IHRoZSBlbmQgb2YgdGhlIHN0cmVhbSBoYXMgYmVlbiByZWFkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwjZW51bSI+PEI+ZW51bTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwiPkl0ZXJhdG9yQWRhcHRlcjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2VxdWFscyhieXRlW10sIGludCwgaW50LCBieXRlW10pIj48Qj5lcXVhbHMoYnl0ZVtdLCBpbnQsIGludCwgYnl0ZVtdKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Q2hlY2tzIGJ5dGVzIGZvciBlcXVhbGl0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbCI+PEI+RXF1YWxUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbCI+RXF1YWxUYWc8L0E+LjxERD5FdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgYW5kIHZhbHVlIGFyZSBlcXVhbC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwjRXF1YWxUYWcoKSI+PEI+RXF1YWxUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIj5FcXVhbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjZXJyb3IiPjxCPmVycm9yPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5UaGUgZXJyb3Igc3RhdGUgZm9yIHRoaXMgc3RyZWFtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwjZXJyb3IiPjxCPmVycm9yPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+TW9kdWxlRXhjZXB0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNFUlJPUl9LRVkiPjxCPkVSUk9SX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sIj5HbG9iYWxzPC9BPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHlvdXIgYWN0aW9uIHNob3VsZCBzdG9yZSBhbgorIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCwgaWYgeW91CisgYXJlIHVzaW5nIHRoZSBjb3JyZXNwb25kaW5nIGN1c3RvbSB0YWcgbGlicmFyeSBlbGVtZW50cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRVJST1JfS0VZIj48Qj5FUlJPUl9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjRVJST1JfS0VZIj48Q09ERT5HbG9iYWxzLkVSUk9SX0tFWTwvQ09ERT48L0E+PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sIj48Qj5FcnJvck1lc3NhZ2VzPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sIj5FcnJvck1lc3NhZ2VzPC9BPi48REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMgaW5zdGVhZDwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwjRXJyb3JNZXNzYWdlcygpIj48Qj5FcnJvck1lc3NhZ2VzKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwiPkVycm9yTWVzc2FnZXM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2Vycm9yT3V0cHV0KCkiPjxCPmVycm9yT3V0cHV0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5XcmFwcGVyIGZvciBnZXRFcnJvck1hcmt1cCgpCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2Vycm9yT3V0cHV0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5lcnJvck91dHB1dChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+V3JhcHBlciBmb3IgZ2V0RXJyb3JNYXJrdXAoU3RyaW5nKQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sI2Vycm9ycyI+PEI+ZXJyb3JzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwiPkVycm9yTWVzc2FnZXM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIGFjY3VtdWxhdGVkIHNldCBvZiBlcnJvciBtZXNzYWdlIGtleXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2Vycm9ycygpIj48Qj5lcnJvcnMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPldyYXBwZXIgZm9yIGdldEVycm9ycygpCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2Vycm9ycyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+ZXJyb3JzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5XcmFwcGVyIGZvciBnZXRFcnJvcnMoU3RyaW5nKQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNlcnJvcnNFbXB0eSgpIj48Qj5lcnJvcnNFbXB0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+V3JhcHBlciBmb3IgZ2V0RXJyb3JFbXB0eSgpCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2Vycm9yU2l6ZSgpIj48Qj5lcnJvclNpemUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPkFsaWFzIGZvciBnZXRFcnJvclNpemUoKQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNlcnJvclNpemUoamF2YS5sYW5nLlN0cmluZykiPjxCPmVycm9yU2l6ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+V3JhcHBlciBmb3IgZ2V0RXJyb3JTaXplKFN0cmluZykKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+PEI+RXJyb3JzVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPi48REQ+Q3VzdG9tIHRhZyB0aGF0IHJlbmRlcnMgZXJyb3IgbWVzc2FnZXMgaWYgYW4gYXBwcm9wcmlhdGUgcmVxdWVzdCBhdHRyaWJ1dGUKKyBoYXMgYmVlbiBjcmVhdGVkLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNFcnJvcnNUYWcoKSI+PEI+RXJyb3JzVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZXNjYXBlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5lc2NhcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5Fc2NhcGUgYW55IHNpbmdsZSBxdW90ZSBjaGFyYWN0ZXJzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZSBzcGVjaWZpZWQKKyBtZXNzYWdlIHN0cmluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCNleGNlcHRpb24iPjxCPmV4Y2VwdGlvbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPgorPEREPkFueSAid3JhcHBlZCIgZXhjZXB0aW9uIHdpbGwgYmUgZXhwb3NlZCB3aGVuIHRoaXMgaXMgc2VyaWFsaXplZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc0V4Y2VwdGlvbi5odG1sI2V4Y2VwdGlvbiI+PEI+ZXhjZXB0aW9uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwiPlRpbGVzRXhjZXB0aW9uPC9BPgorPEREPkFueSAid3JhcHBlZCIgZXhjZXB0aW9uIHdpbGwgYmUgZXhwb3NlZCB3aGVuIHRoaXMgaXMgc2VyaWFsaXplZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjRVhDRVBUSU9OX0tFWSI+PEI+RVhDRVBUSU9OX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sIj5HbG9iYWxzPC9BPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIFN0cnV0cyBjdXN0b20gdGFncyBtaWdodCBzdG9yZSBhCisgPGNvZGU+VGhyb3dhYmxlPC9jb2RlPiB0aGF0IGNhdXNlZCB0aGVtIHRvIHJlcG9ydCBhIEpzcEV4Y2VwdGlvbiBhdAorIHJ1bnRpbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sI0VYQ0VQVElPTl9LRVkiPjxCPkVYQ0VQVElPTl9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VYQ0VQVElPTl9LRVkiPjxCPkVYQ0VQVElPTl9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjRVhDRVBUSU9OX0tFWSI+PENPREU+R2xvYmFscy5FWENFUFRJT05fS0VZPC9DT0RFPjwvQT48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj48Qj5FeGNlcHRpb25Db25maWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4uPEREPkEgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGFuCisgPGNvZGU+Jmx0O2V4Y2VwdGlvbiZndDs8L2NvZGU+IGVsZW1lbnQgZnJvbSBhIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI0V4Y2VwdGlvbkNvbmZpZygpIj48Qj5FeGNlcHRpb25Db25maWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9FeGNlcHRpb25IYW5kbGVyLmh0bWwiPjxCPkV4Y2VwdGlvbkhhbmRsZXI8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRXhjZXB0aW9uSGFuZGxlci5odG1sIj5FeGNlcHRpb25IYW5kbGVyPC9BPi48REQ+QW4gRXhjZXB0aW9uSGFuZGxlciBpcyBjb25maWd1cmVkIGluIHRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlIHRvIGhhbmRsZSBhIHNwZWNpZmljCisgdHlwZSBvZiBleGNlcHRpb24gdGhyb3duIGJ5IGFuIEFjdGlvbidzIGV4ZWN1dGUgbWV0aG9kLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRXhjZXB0aW9uSGFuZGxlci5odG1sI0V4Y2VwdGlvbkhhbmRsZXIoKSI+PEI+RXhjZXB0aW9uSGFuZGxlcigpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCI+RXhjZXB0aW9uSGFuZGxlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZXhjZXB0aW9ucyI+PEI+ZXhjZXB0aW9uczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+VGhlIHNldCBvZiBleGNlcHRpb24gaGFuZGxpbmcgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMKKyBhY3Rpb24sIGlmIGFueSwga2V5ZWQgYnkgdGhlIDxjb2RlPnR5cGU8L2NvZGU+IHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNleGNlcHRpb25zIj48Qj5leGNlcHRpb25zPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4KKzxERD5UaGUgc2V0IG9mIGV4Y2VwdGlvbiBoYW5kbGluZyBjb25maWd1cmF0aW9ucyBmb3IgdGhpcworIG1vZHVsZSwgaWYgYW55LCBrZXllZCBieSB0aGUgPGNvZGU+dHlwZTwvY29kZT4gcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9SZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPmV4ZWN1dGUoQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1JlbG9hZERlZmluaXRpb25zQWN0aW9uLmh0bWwiPlJlbG9hZERlZmluaXRpb25zQWN0aW9uPC9BPgorPEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwKKyB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5leGVjdXRlKEFjdGlvbk1hcHBpbmcsIEFjdGlvbkZvcm0sIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi5odG1sIj5EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbjwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCksCisgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHRoZSBidXNpbmVzcyBsb2dpYy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1ZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPmV4ZWN1dGUoQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1ZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sIj5WaWV3RGVmaW5pdGlvbnNBY3Rpb248L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPmV4ZWN1dGUoQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1RpbGVzQWN0aW9uLmh0bWwiPlRpbGVzQWN0aW9uPC9BPgorPEREPk9yaWdpbmFsIFN0cnV0cyBBY3Rpb24ncyBtZXRob2QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9Ob09wQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+ZXhlY3V0ZShBY3Rpb25NYXBwaW5nLCBBY3Rpb25Gb3JtLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvTm9PcEFjdGlvbi5odG1sIj5Ob09wQWN0aW9uPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwKKyB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5leGVjdXRlKEFjdGlvbk1hcHBpbmcsIEFjdGlvbkZvcm0sIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Mb29rdXBEaXNwYXRjaEFjdGlvbi5odG1sIj5Mb29rdXBEaXNwYXRjaEFjdGlvbjwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyAgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPmV4ZWN1dGUoQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCI+Rm9yd2FyZEFjdGlvbjwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPmV4ZWN1dGUoQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPkRpc3BhdGNoQWN0aW9uPC9BPgorPEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1N3aXRjaEFjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPmV4ZWN1dGUoQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1N3aXRjaEFjdGlvbi5odG1sIj5Td2l0Y2hBY3Rpb248L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9JbmNsdWRlQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+ZXhlY3V0ZShBY3Rpb25NYXBwaW5nLCBBY3Rpb25Gb3JtLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sIj5JbmNsdWRlQWN0aW9uPC9BPgorPEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+ZXhlY3V0ZShBY3Rpb25NYXBwaW5nLCBBY3Rpb25Gb3JtLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPjxCPmV4ZWN1dGUoQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgU2VydmxldFJlcXVlc3QsIFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgbm9uLUhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUKKyBjb3JyZXNwb25kaW5nIG5vbi1IVFRQIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViCisgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLCB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcKKyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPmV4ZWN1dGUoQ29tcG9uZW50Q29udGV4dCwgQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1RpbGVzQWN0aW9uLmh0bWwiPlRpbGVzQWN0aW9uPC9BPgorPEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCNleGVjdXRlKGphdmEubGFuZy5FeGNlcHRpb24sIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5leGVjdXRlKEV4Y2VwdGlvbiwgRXhjZXB0aW9uQ29uZmlnLCBBY3Rpb25NYXBwaW5nLCBBY3Rpb25Gb3JtLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCI+RXhjZXB0aW9uSGFuZGxlcjwvQT4KKzxERD5IYW5kbGUgdGhlIGV4Y2VwdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwjZXh0ZW5kKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbnNTZXQpIj48Qj5leHRlbmQoWG1sRGVmaW5pdGlvbnNTZXQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+Cis8REQ+QWRkIGRlZmluaXRpb25zIGZyb20gc3BlY2lmaWVkIGNoaWxkIGRlZmluaXRpb25zIHNldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI2V4dGVuZHNEZWZpbml0aW9uIj48Qj5leHRlbmRzRGVmaW5pdGlvbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCI+RGVmaW5pdGlvblRhZzwvQT4KKzxERD5FeHRlbmRzIGF0dHJpYnV0ZSB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNleHRyYUF0dHJpYnV0ZXMiPjxCPmV4dHJhQXR0cmlidXRlczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPgorPEREPk1hcCBvZiBleHRyYSBhdHRyaWJ1dGUgYXZhaWxhYmxlLgorPC9ETD4KKzxIUj4KKzxBIE5BTUU9Il9GXyI+PCEtLSAtLT48L0E+PEgyPgorPEI+RjwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sI2ZhY3RvcmllcyI+PEI+ZmFjdG9yaWVzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0Lmh0bWwiPkZhY3RvcnlTZXQ8L0E+Cis8REQ+TG9hZGVkIGZhY3RvcmllcworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2ZhY3RvcnkiPjxCPmZhY3Rvcnk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5UaGUgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IHRoYXQgY3JlYXRlZCB0aGlzIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sI2ZhY3RvcnkiPjxCPmZhY3Rvcnk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcjwvQT4KKzxERD5UaGUgdW5kZXJseWluZyBmYWN0b3J5Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZmFjdG9yeSI+PEI+ZmFjdG9yeTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sIj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPgorPEREPlRoZSByZWFsIGZhY3RvcnkgaW5zdGFuY2UKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sI2ZhY3RvcnkiPjxCPmZhY3Rvcnk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+Cis8REQ+RnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgY2xhc3MKKyB3ZSBzaG91bGQgdXNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI0ZBQ1RPUllfQ0xBU1NOQU1FX1BBUkFNRVRFUl9OQU1FIj48Qj5GQUNUT1JZX0NMQVNTTkFNRV9QQVJBTUVURVJfTkFNRTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4KKzxERD5BbHRlcm5hdGUgbmFtZSBmb3IgZmFjdG9yeSBjbGFzc25hbWUgcHJvcGVydGllcyBpbiBjb25maWd1cmF0aW9uIGZpbGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjZmFjdG9yeUNsYXNzIj48Qj5mYWN0b3J5Q2xhc3M8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgdG8gYmUgdXNlZCBmb3IKKyA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gaW5zdGFuY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwjZmFjdG9yeUNsYXNzIj48Qj5mYWN0b3J5Q2xhc3M8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj5Nb2R1bGVDb25maWdGYWN0b3J5PC9BPgorPEREPlRoZSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSB0byBiZSB1c2VkIGZvcgorIDxjb2RlPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNmYWN0b3J5Q2xhc3NuYW1lIj48Qj5mYWN0b3J5Q2xhc3NuYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Cis8REQ+RnVsbHkgcXVhbGlmaWVkIGNsYXNzbmFtZSBvZiB0aGUgZmFjdG9yeSB0byBjcmVhdGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjZmFjdG9yeU5hbWUiPjxCPmZhY3RvcnlOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Cis8REQ+VGhlIG5hbWUgYXNzb2NpYXRlZCB0byB0aGlzIGZhY3RvcnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiPjxCPkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjwvQj48L0E+IC0gZXhjZXB0aW9uIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sIj5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb248L0E+LjxERD5FeGNlcHRpb24gdGhyb3duIHdoZW4gZGVmaW5pdGlvbnMgZmFjdG9yeSBpcyBub3QgZm91bmQuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sI0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbigpIj48Qj5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiPkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjwvQT4KKzxERD5Db25zdHJ1Y3Rvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCNGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZykiPjxCPkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbihTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCI+RmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sIj48Qj5GYWN0b3J5U2V0PC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sIj5GYWN0b3J5U2V0PC9BPi48REQ+Q29tcG9uZW50IERlZmluaXRpb25zIGZhY3RvcnkuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sI0ZhY3RvcnlTZXQoKSI+PEI+RmFjdG9yeVNldCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sIj5GYWN0b3J5U2V0PC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvTW9kdWxlQ29uZmlnVmVyaWZpZXIuaHRtbCNmYXRhbCI+PEI+ZmF0YWw8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPgorPEREPlNob3VsZCB0aGUgZXhpc3RlbmNlIG9mIGNvbmZpZ3VyYXRpb24gZXJyb3JzIGJlIGZhdGFsLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI0ZJRUxEX1RFU1RfRVFVQUwiPjxCPkZJRUxEX1RFU1RfRVFVQUw8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+RmllbGRDaGVja3M8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCNGSUVMRF9URVNUX0VRVUFMIj48Qj5GSUVMRF9URVNUX0VRVUFMPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwiPlN0cnV0c1ZhbGlkYXRvcjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCNGSUVMRF9URVNUX05PVE5VTEwiPjxCPkZJRUxEX1RFU1RfTk9UTlVMTDwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sIj5GaWVsZENoZWNrczwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI0ZJRUxEX1RFU1RfTk9UTlVMTCI+PEI+RklFTERfVEVTVF9OT1ROVUxMPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwiPlN0cnV0c1ZhbGlkYXRvcjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCNGSUVMRF9URVNUX05VTEwiPjxCPkZJRUxEX1RFU1RfTlVMTDwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sIj5GaWVsZENoZWNrczwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI0ZJRUxEX1RFU1RfTlVMTCI+PEI+RklFTERfVEVTVF9OVUxMPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwiPlN0cnV0c1ZhbGlkYXRvcjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPjxCPkZpZWxkQ2hlY2tzPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPkZpZWxkQ2hlY2tzPC9BPi48REQ+CisgVGhpcyBjbGFzcyBjb250YWlucyB0aGUgZGVmYXVsdCB2YWxpZGF0aW9ucyB0aGF0IGFyZSB1c2VkIGluIHRoZSAKKyB2YWxpZGF0b3ItcnVsZXMueG1sIGZpbGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI0ZpZWxkQ2hlY2tzKCkiPjxCPkZpZWxkQ2hlY2tzKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+RmllbGRDaGVja3M8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNmaWxlIj48Qj5maWxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPgorPEREPlRoZSBlbGVtZW50J3MgZGF0YSByZXByZXNlbnRlZCBpbiBhIChwb3NzaWJseSB0ZW1wb3JhcnkpIGZpbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjRklMRV9QUkVGSVgiPjxCPkZJTEVfUFJFRklYPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNmaWxlRWxlbWVudHMiPjxCPmZpbGVFbGVtZW50czwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+QSBIYXNodGFibGUgcmVwcmVzZW50aW5nIHRoZSBmb3JtIGZpbGVzIHVwbG9hZGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwjZmlsZUl0ZW0iPjxCPmZpbGVJdGVtPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlPC9BPgorPEREPlRoZSA8Y29kZT5GaWxlSXRlbTwvY29kZT4gaW5zdGFuY2Ugd3JhcHBlZCBieSB0aGlzIG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5pdERlZmluaXRpb25zVGFnLmh0bWwjZmlsZW5hbWUiPjxCPmZpbGVuYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5pdERlZmluaXRpb25zVGFnLmh0bWwiPkluaXREZWZpbml0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNmaWxlTmFtZSI+PEI+ZmlsZU5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj5EaXNrRmlsZTwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZmlsZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjZmlsZU5hbWUiPjxCPmZpbGVOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPgorPEREPlRoZSBlbGVtZW50J3MgZmlsZW5hbWUsIG51bGwgZm9yIHRleHQgZWxlbWVudHMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI0ZJTEVOQU1FX0VYVEVOU0lPTiI+PEI+RklMRU5BTUVfRVhURU5TSU9OPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+STE4bkZhY3RvcnlTZXQ8L0E+Cis8REQ+RGVmYXVsdCBmaWxlbmFtZXMgZXh0ZW5zaW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNmaWxlbmFtZXMiPjxCPmZpbGVuYW1lczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+STE4bkZhY3RvcnlTZXQ8L0E+Cis8REQ+TmFtZXMgb2YgZmlsZXMgY29udGFpbmluZyBpbnN0YW5jZXMgZGVzY3JpcHRpb25zLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2ZpbGVQYXRoIj48Qj5maWxlUGF0aDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPkRpc2tGaWxlPC9BPgorPEREPlRoZSBmaWxlcGF0aCB0byB0aGUgdGVtcG9yYXJ5IGZpbGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNmaWxlU2l6ZSI+PEI+ZmlsZVNpemU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj5EaXNrRmlsZTwvQT4KKzxERD5UaGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgZmlsZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZpbGVUYWcuaHRtbCI+PEI+RmlsZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sIj5GaWxlVGFnPC9BPi48REQ+Q3VzdG9tIHRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImZpbGUiLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwjRmlsZVRhZygpIj48Qj5GaWxlVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZpbGVUYWcuaHRtbCI+RmlsZVRhZzwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNmaWxsKCkiPjxCPmZpbGwoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+Cis8REQ+RmlsbHMgdGhlIGJ1ZmZlciB3aXRoIGRhdGEgZnJvbSB0aGUgdW5kZXJseWluZyBpbnB1dFN0cmVhbS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2ZpbGxMaW5lKCkiPjxCPmZpbGxMaW5lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZmlsbExpbmVCdWZmZXIoKSI+PEI+ZmlsbExpbmVCdWZmZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuaHRtbCNmaWx0ZXIiPjxCPmZpbHRlcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiPk5lc3RlZFdyaXRlTmVzdGluZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjZmlsdGVyIj48Qj5maWx0ZXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPlNob3VsZCB0aGUgbGFiZWwgdmFsdWVzIGJlIGZpbHRlcmVkIGZvciBIVE1MIHNlbnNpdGl2ZSBjaGFyYWN0ZXJzPworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjZmlsdGVyIj48Qj5maWx0ZXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+Cis8REQ+U2hvdWxkIHRoZSBsYWJlbCB2YWx1ZXMgYmUgZmlsdGVyZWQgZm9yIEhUTUwgc2Vuc2l0aXZlIGNoYXJhY3RlcnM/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNmaWx0ZXIiPjxCPmZpbHRlcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD5GaWx0ZXIgdGhlIHJlbmRlcmVkIG91dHB1dCBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBzZW5zaXRpdmUgaW4gSFRNTD8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCNmaWx0ZXIoamF2YS5sYW5nLlN0cmluZykiPjxCPmZpbHRlcihTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCI+UmVzcG9uc2VVdGlsczwvQT4KKzxERD5GaWx0ZXIgdGhlIHNwZWNpZmllZCBzdHJpbmcgZm9yIGNoYXJhY3RlcnMgdGhhdCBhcmUgc2Vuc3RpdmUgdG8KKyBIVE1MIGludGVycHJldGVycywgcmV0dXJuaW5nIHRoZSBzdHJpbmcgd2l0aCB0aGVzZSBjaGFyYWN0ZXJzIHJlcGxhY2VkCisgYnkgdGhlIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVyIGVudGl0aWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZmluYWxCb3VuZGFyeUJ5dGVzIj48Qj5maW5hbEJvdW5kYXJ5Qnl0ZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNmaW5hbEJvdW5kYXJ5RW5jb3VudGVyZWQiPjxCPmZpbmFsQm91bmRhcnlFbmNvdW50ZXJlZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD5XaGV0aGVyIG9yIG5vdCB0aGUgZmluYWwgYm91bmRhcnkgaGFzIGJlZW4gZW5jb3VudGVyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjZmluYWxCb3VuZGFyeVJlYWNoZWQiPjxCPmZpbmFsQm91bmRhcnlSZWFjaGVkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0E+Cis8REQ+aXMgdGhlIGJvdW5kYXJ5IGZvdW5kIGEgZmluYWwgYm91bmRhcnk/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRBY3Rpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPjxCPmZpbmRBY3Rpb25Db25maWcoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5SZXR1cm4gdGhlIGFjdGlvbiBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHBhdGgsIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kQWN0aW9uQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kQWN0aW9uQ29uZmlnKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4KKzxERD5SZXR1cm4gdGhlIGFjdGlvbiBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHBhdGgsIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kQWN0aW9uQ29uZmlncygpIj48Qj5maW5kQWN0aW9uQ29uZmlncygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPgorPEREPlJldHVybiB0aGUgYWN0aW9uIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEFjdGlvbkNvbmZpZ3MoKSI+PEI+ZmluZEFjdGlvbkNvbmZpZ3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPlJldHVybiB0aGUgYWN0aW9uIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwjZmluZEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjxCPmZpbmRBdHRyaWJ1dGUoU3RyaW5nLCBQYWdlQ29udGV4dCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4KKzxERD5GaW5kIG9iamVjdCBpbiBvbmUgb2YgdGhlIGNvbnRleHRzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwjZmluZEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjxCPmZpbmRBdHRyaWJ1dGUoU3RyaW5nLCBQYWdlQ29udGV4dCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9UYWdVdGlscy5odG1sIj5UYWdVdGlsczwvQT4KKzxERD5TZWFyY2ggYXR0cmlidXRlIGluIGRpZmZlcmVudCBjb250ZXh0cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ZpbmREYXRhU291cmNlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kRGF0YVNvdXJjZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Mb29rIHVwIGRhdGEgc291cmNlcyBkaXJlY3RseSBpbiBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlczwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZERhdGFTb3VyY2VDb25maWcoamF2YS5sYW5nLlN0cmluZykiPjxCPmZpbmREYXRhU291cmNlQ29uZmlnKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmREYXRhU291cmNlQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kRGF0YVNvdXJjZUNvbmZpZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+UmV0dXJuIHRoZSBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmREYXRhU291cmNlQ29uZmlncygpIj48Qj5maW5kRGF0YVNvdXJjZUNvbmZpZ3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5SZXR1cm4gdGhlIGRhdGEgc291cmNlIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZERhdGFTb3VyY2VDb25maWdzKCkiPjxCPmZpbmREYXRhU291cmNlQ29uZmlncygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+UmV0dXJuIHRoZSBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNmaW5kRW5jbG9zaW5nUGFyZW50KCkiPjxCPmZpbmRFbmNsb3NpbmdQYXJlbnQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+Cis8REQ+RmluZCBlbmNsb3NpbmcgcGFyZW50IHRhZyBhY2NlcHRpbmcgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZy5odG1sI2ZpbmRFbmNsb3NpbmdQdXRMaXN0VGFnUGFyZW50KCkiPjxCPmZpbmRFbmNsb3NpbmdQdXRMaXN0VGFnUGFyZW50KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnLmh0bWwiPkFkZFRhZzwvQT4KKzxERD5GaW5kIHBhcmVudCB0YWcgd2hpY2ggbXVzdCBpbXBsZW1lbnQgQXR0cmlidXRlQ29udGFpbmVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNmaW5kRW5jbG9zaW5nUHV0VGFnUGFyZW50KCkiPjxCPmZpbmRFbmNsb3NpbmdQdXRUYWdQYXJlbnQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPkZpbmQgcGFyZW50IHRhZyB3aGljaCBtdXN0IGltcGxlbWVudCBBdHRyaWJ1dGVDb250YWluZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNmaW5kRXhjZXB0aW9uKGphdmEubGFuZy5DbGFzcykiPjxCPmZpbmRFeGNlcHRpb24oQ2xhc3MpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5GaW5kIGFuZCByZXR1cm4gdGhlIDxjb2RlPkV4Y2VwdGlvbkNvbmZpZzwvY29kZT4gaW5zdGFuY2UgZGVmaW5pbmcKKyBob3cgZXhjZXB0aW9ucyBvZiB0aGUgc3BlY2lmaWVkIHR5cGUgc2hvdWxkIGJlIGhhbmRsZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRFeGNlcHRpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPjxCPmZpbmRFeGNlcHRpb25Db25maWcoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5SZXR1cm4gdGhlIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHR5cGUsIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNmaW5kRXhjZXB0aW9uQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kRXhjZXB0aW9uQ29uZmlnKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5SZXR1cm4gdGhlIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHR5cGUsIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kRXhjZXB0aW9uQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kRXhjZXB0aW9uQ29uZmlnKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4KKzxERD5SZXR1cm4gdGhlIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHR5cGUsIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kRXhjZXB0aW9uQ29uZmlncygpIj48Qj5maW5kRXhjZXB0aW9uQ29uZmlncygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPgorPEREPlJldHVybiB0aGUgZXhjZXB0aW9uIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZmluZEV4Y2VwdGlvbkNvbmZpZ3MoKSI+PEI+ZmluZEV4Y2VwdGlvbkNvbmZpZ3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPlJldHVybiB0aGUgZXhjZXB0aW9uIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIGFjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEV4Y2VwdGlvbkNvbmZpZ3MoKSI+PEI+ZmluZEV4Y2VwdGlvbkNvbmZpZ3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPlJldHVybiB0aGUgZXhjZXB0aW9uIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ZpbmRGb3JtQmVhbihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+ZmluZEZvcm1CZWFuKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IE1vZHVsZUNvbmZpZy5maW5kRm9ybUJlYW5Db25maWcoKTwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwjZmluZEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kRm9ybUJlYW4oU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCI+QWN0aW9uRm9ybUJlYW5zPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgZm9ybUJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZEZvcm1CZWFuQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kRm9ybUJlYW5Db25maWcoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRGb3JtQmVhbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+ZmluZEZvcm1CZWFuQ29uZmlnKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRGb3JtQmVhbkNvbmZpZ3MoKSI+PEI+ZmluZEZvcm1CZWFuQ29uZmlncygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPgorPEREPlJldHVybiB0aGUgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEZvcm1CZWFuQ29uZmlncygpIj48Qj5maW5kRm9ybUJlYW5Db25maWdzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sI2ZpbmRGb3JtQmVhbnMoKSI+PEI+ZmluZEZvcm1CZWFucygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj5BY3Rpb25Gb3JtQmVhbnM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBzZXQgb2YgbmFtZXMgZm9yIGZvcm0gYmVhbnMgZGVmaW5lZCBpbiB0aGlzIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjZmluZEZvcm1Qcm9wZXJ0eUNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+ZmluZEZvcm1Qcm9wZXJ0eUNvbmZpZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPgorPEREPlJldHVybiB0aGUgZm9ybSBwcm9wZXJ0eSBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5CisgbmFtZSwgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2ZpbmRGb3JtUHJvcGVydHlDb25maWdzKCkiPjxCPmZpbmRGb3JtUHJvcGVydHlDb25maWdzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIHByb3BlcnR5IGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ZpbmRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kRm9yd2FyZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBNb2R1bGVDb25maWcuZmluZEZvcndhcmRDb25maWcoKTwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNmaW5kRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+ZmluZEZvcndhcmQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIGZvcndhcmRpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2ZpbmRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kRm9yd2FyZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5GaW5kIGFuZCByZXR1cm4gdGhlIDxjb2RlPkZvcndhcmRDb25maWc8L2NvZGU+IGluc3RhbmNlIGRlZmluaW5nCisgaG93IGZvcndhcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBsb2dpY2FsIG5hbWUgc2hvdWxkIGJlIGhhbmRsZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRGb3J3YXJkQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kRm9yd2FyZENvbmZpZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPgorPEREPlJldHVybiB0aGUgZm9yd2FyZCBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2ZpbmRGb3J3YXJkQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kRm9yd2FyZENvbmZpZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEZvcndhcmRDb25maWcoamF2YS5sYW5nLlN0cmluZykiPjxCPmZpbmRGb3J3YXJkQ29uZmlnKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4KKzxERD5SZXR1cm4gdGhlIGZvcndhcmQgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kRm9yd2FyZENvbmZpZ3MoKSI+PEI+ZmluZEZvcndhcmRDb25maWdzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIGJlYW4gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNmaW5kRm9yd2FyZENvbmZpZ3MoKSI+PEI+ZmluZEZvcndhcmRDb25maWdzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEZvcndhcmRDb25maWdzKCkiPjxCPmZpbmRGb3J3YXJkQ29uZmlncygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIGJlYW4gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sI2ZpbmRGb3J3YXJkcygpIj48Qj5maW5kRm9yd2FyZHMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHNldCBvZiBsb2dpY2FsIG5hbWVzIGZvciBmb3J3YXJkcyBkZWZpbmVkIGluIHRoaXMgY29sbGVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2ZpbmRGb3J3YXJkcygpIj48Qj5maW5kRm9yd2FyZHMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+UmV0dXJuIHRoZSBsb2dpY2FsIG5hbWVzIG9mIGFsbCBsb2NhbGx5IGRlZmluZWQgZm9yd2FyZHMgZm9yIHRoaXMKKyBtYXBwaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZmluZE1hcHBpbmcoamF2YS5sYW5nLlN0cmluZykiPjxCPmZpbmRNYXBwaW5nKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IE1vZHVsZUNvbmZpZy5maW5kQWN0aW9uQ29uZmlnKCk8L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjZmluZE1hcHBpbmcoamF2YS5sYW5nLlN0cmluZykiPjxCPmZpbmRNYXBwaW5nKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBtYXBwaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGxvZ2ljYWwgbmFtZSwKKyBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjZmluZE1hcHBpbmdzKCkiPjxCPmZpbmRNYXBwaW5ncygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgc2V0IG9mIHBhdGhzIGZvciBtYXBwaW5ncyBkZWZpbmVkIGluIHRoaXMgY29sbGVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWcoamF2YS5sYW5nLlN0cmluZykiPjxCPmZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBtZXNzYWdlIHJlc291cmNlcyBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwKKyBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48Qj5maW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+UmV0dXJuIHRoZSBtZXNzYWdlIHJlc291cmNlcyBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwKKyBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlncygpIj48Qj5maW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZ3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5SZXR1cm4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWdzKCkiPjxCPmZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlncygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+UmV0dXJuIHRoZSBtZXNzYWdlIHJlc291cmNlcyBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRQbHVnSW5Db25maWdzKCkiPjxCPmZpbmRQbHVnSW5Db25maWdzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBjb25maWd1cmVkIHBsdWctaW4gYWN0aW9ucyBmb3IgdGhpcyBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRQbHVnSW5Db25maWdzKCkiPjxCPmZpbmRQbHVnSW5Db25maWdzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4KKzxERD5SZXR1cm4gdGhlIGNvbmZpZ3VyZWQgcGx1Zy1pbiBhY3Rpb25zIGZvciB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sI2ZpbmRTdHJ1dHNQbHVnSW5Db25maWdQcm9wZXJ0aWVzKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PEI+ZmluZFN0cnV0c1BsdWdJbkNvbmZpZ1Byb3BlcnRpZXMoQWN0aW9uU2VydmxldCwgTW9kdWxlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCI+VGlsZXNQbHVnaW48L0E+Cis8REQ+RmluZCBvcmlnaW5hbCBwcm9wZXJ0aWVzIHNldCBpbiB0aGUgU3RydXRzIFBsdWdJbkNvbmZpZyBvYmplY3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZmluaXNoKCkiPjxCPmZpbmlzaCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5UaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gd2hlbiBhIHN1Y2Nlc3NmdWwgZm9ybSBwb3N0CisgaGFzIGJlZW4gbWFkZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZmluaXNoKCkiPjxCPmZpbmlzaCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+Q2xlYW5zIHVwIGF0IHRoZSBlbmQgb2YgYSByZXF1ZXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNmaW5pc2goKSI+PEI+ZmluaXNoKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5DYWxscyBvbiA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjcm9sbGJhY2soKSI+PENPREU+cm9sbGJhY2soKTwvQ09ERT48L0E+IHRvIGRlbGV0ZQorIHRlbXBvcmFyeSBmaWxlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI0ZMT0FUX0ZPUk1BVF9LRVkiPjxCPkZMT0FUX0ZPUk1BVF9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPgorPEREPlRoZSBrZXkgdG8gc2VhcmNoIGRlZmF1bHQgZm9ybWF0IHN0cmluZyBmb3IgZmxvYXQKKyAoZG91YmxlLCBCaWdEZWNpbWFsKSBpbiByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2ZsdXNoIj48Qj5mbHVzaDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+Rmx1c2ggYXR0cmlidXRlIHZhbHVlCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI2ZsdXNoIj48Qj5mbHVzaDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7U2hvdWxkIHdlIGZsdXNoIGJlZm9yZSBpbmNsdWRpbmcgdGhpcyB0ZXh0PworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNmbHVzaCgpIj48Qj5mbHVzaCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+Rmx1c2ggdGhlIHN0cmVhbS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZm9jdXMiPjxCPmZvY3VzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZmllbGQgdG8gcmVjZWl2ZSBmb2N1cywgaWYgYW55LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNmb2N1c0luZGV4Ij48Qj5mb2N1c0luZGV4PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5UaGUgaW5kZXggaW4gdGhlIGZvY3VzIGZpZWxkIGFycmF5IHRvIHJlY2VpdmUgZm9jdXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNmb290ZXIiPjxCPmZvb3RlcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZSBrZXkgZm9yIGVycm9ycyBmb290ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0ZPUk1fQkVBTlNfS0VZIj48Qj5GT1JNX0JFQU5TX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sIj5HbG9iYWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IGNvbGxlY3Rpb24gaW4gTW9kdWxlQ29uZmlnPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JNX0JFQU5TX0tFWSI+PEI+Rk9STV9CRUFOU19LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIGluIE1vZHVsZUNvbmZpZzwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCNGT1JNX0tFWSI+PEI+Rk9STV9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sIj5Db25zdGFudHM8L0E+Cis8REQ+VGhlIGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBmb3JtIHRhZyBpdHNlbGYuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNmb3JtYXRLZXkiPjxCPmZvcm1hdEtleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD5UaGUga2V5IHRvIHNlYXJjaCBmb3JtYXQgc3RyaW5nIGluIGFwcGxjaWF0aW9uIHJlc291cmNlcworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2Zvcm1hdHMiPjxCPmZvcm1hdHM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5UaGUgc2V0IG9mIHByZXZpb3VzbHkgY3JlYXRlZCBNZXNzYWdlRm9ybWF0IG9iamVjdHMsIGtleWVkIGJ5IHRoZQorIGtleSBjb21wdXRlZCBpbiA8Y29kZT5tZXNzYWdlS2V5KCk8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjZm9ybWF0U3RyIj48Qj5mb3JtYXRTdHI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+VGhlIGZvcm1hdCBzdHJpbmcgdG8gYmUgdXNlZCBhcyBmb3JtYXQgdG8gY29udmVydCAKKyB2YWx1ZSB0byBTdHJpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNmb3JtYXRWYWx1ZShqYXZhLmxhbmcuT2JqZWN0KSI+PEI+Zm9ybWF0VmFsdWUoT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Rm9ybWF0IHZhbHVlIGFjY29yZGluZyB0byBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZyAoYXMgdGFnIGF0dHJpYnV0ZSBvcgorIGFzIHN0cmluZyBmcm9tIG1lc3NhZ2UgcmVzb3VyY2VzKSBvciB0byBjdXJyZW50IHVzZXIgbG9jYWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2Zvcm1CZWFuIj48Qj5mb3JtQmVhbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+U3RydXRzVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb25Gb3JtQmVhbjwvY29kZT4gb2JqZWN0IHRvIGJlIGV4cG9zZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjZm9ybUJlYW5DbGFzcygpIj48Qj5mb3JtQmVhbkNsYXNzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Cis8REQ+UmV0dXJuIHRoZSA8Y29kZT5DbGFzczwvY29kZT4gaW5zdGFuY2UgZm9yIHRoZSBmb3JtIGJlYW4gaW1wbGVtZW50YXRpb24KKyBjb25maWd1cmVkIGJ5IHRoaXMgPGNvZGU+Rm9ybUJlYW5Db25maWc8L2NvZGU+IGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj48Qj5Gb3JtQmVhbkNvbmZpZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4uPEREPkEgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7Zm9ybS1iZWFuJmd0OzwvY29kZT4gZWxlbWVudCBpbiBhIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjRm9ybUJlYW5Db25maWcoKSI+PEI+Rm9ybUJlYW5Db25maWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZm9ybUJlYW5zIj48Qj5mb3JtQmVhbnM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPlRoZSBzZXQgb2YgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZSwgaWYgYW55LAorIGtleWVkIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwjZm9ybUJlYW5zIj48Qj5mb3JtQmVhbnM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCI+QWN0aW9uRm9ybUJlYW5zPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBjb2xsZWN0aW9uIG9mIEFjdGlvbkZvcm1CZWFuIGluc3RhbmNlcywga2V5ZWQgYnkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+PEI+Rm9ybUZpbGU8L0I+PC9BPiAtIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPi48REQ+VGhpcyBpbnRlcmZhY2UgcmVwcmVzZW50cyBhIGZpbGUgdGhhdCBoYXMgYmVlbiB1cGxvYWRlZCBieSBhIGNsaWVudC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI2Zvcm1OYW1lIj48Qj5mb3JtTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGZvcm0gdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBhY3Rpb24gbmFtZQorIGluIHN0cnV0cy1jb25maWcueG1sLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2Zvcm1Qcm9wZXJ0aWVzIj48Qj5mb3JtUHJvcGVydGllczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPgorPEREPlRoZSBzZXQgb2YgRm9ybVByb3BlcnR5IGVsZW1lbnRzIGRlZmluaW5nIGR5bmFtaWMgZm9ybSBwcm9wZXJ0aWVzIGZvcgorIHRoaXMgZm9ybSBiZWFuLCBrZXllZCBieSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+PEI+Rm9ybVByb3BlcnR5Q29uZmlnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj5Gb3JtUHJvcGVydHlDb25maWc8L0E+LjxERD5BIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O2Zvcm0tcHJvcGVydHkmZ3Q7PC9jb2RlPiBlbGVtZW50IGluIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwjRm9ybVByb3BlcnR5Q29uZmlnKCkiPjxCPkZvcm1Qcm9wZXJ0eUNvbmZpZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj5Gb3JtUHJvcGVydHlDb25maWc8L0E+Cis8REQ+U3RhbmRhcmQgbm8tYXJndW1lbnRzIGNvbnN0cnVjdG9yIGZvciBkeW5hbWljIGluc3RhbnRpYXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sI0Zvcm1Qcm9wZXJ0eUNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Rm9ybVByb3BlcnR5Q29uZmlnKFN0cmluZywgU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj5Gb3JtUHJvcGVydHlDb25maWc8L0E+Cis8REQ+Q29uc3RydWN0b3IgdGhhdCBwcmVjb25maWd1cmVzIHRoZSByZWxldmFudCBwcm9wZXJ0aWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCNGb3JtUHJvcGVydHlDb25maWcoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgaW50KSI+PEI+Rm9ybVByb3BlcnR5Q29uZmlnKFN0cmluZywgU3RyaW5nLCBTdHJpbmcsIGludCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT4KKzxERD5Db25zdHJ1Y3RvciB0aGF0IHByZWNvbmZpZ3VyZXMgdGhlIHJlbGV2YW50IHByb3BlcnRpZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj48Qj5Gb3JtVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+LjxERD5DdXN0b20gdGFnIHRoYXQgcmVwcmVzZW50cyBhbiBpbnB1dCBmb3JtLCBhc3NvY2lhdGVkIHdpdGggYSBiZWFuIHdob3NlCisgcHJvcGVydGllcyBjb3JyZXNwb25kIHRvIHRoZSB2YXJpb3VzIGZpZWxkcyBvZiB0aGUgZm9ybS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI0Zvcm1UYWcoKSI+PEI+Rm9ybVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjZm9yd2FyZCI+PEI+Zm9yd2FyZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPlRoZSBsb2dpY2FsIGZvcndhcmQgbmFtZSBmcm9tIHdoaWNoIHRvIHJldHJpZXZlIHRoZSByZWRpcmVjdCBVUkkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2ZvcndhcmQiPjxCPmZvcndhcmQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBsb2dpY2FsIGZvcndhcmQgbmFtZSBmcm9tIHdoaWNoIHRvIHJldHJpZXZlIHRoZSBoeXBlcmxpbmsgVVJJLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNmb3J3YXJkIj48Qj5mb3J3YXJkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRoYXQgY29udGFpbnMgYQorIHBhdGggdG8gb3VyIHJlcXVlc3RlZCByZXNvdXJjZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNmb3J3YXJkIj48Qj5mb3J3YXJkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj5TdHJ1dHNUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IG9iamVjdCB0byBiZSBleHBvc2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNmb3J3YXJkIj48Qj5mb3J3YXJkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5UaGUgZm9yd2FyZCBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZm9yd2FyZCI+PEI+Zm9yd2FyZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+Q29udGV4dC1yZWxhdGl2ZSBwYXRoIG9mIHRoZSB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgdGhhdCB3aWxsIHByb2Nlc3MKKyB0aGlzIHJlcXVlc3QgdmlhIFJlcXVlc3REaXNwYXRjaGVyLmZvcndhcmQoKSwgaW5zdGVhZCBvZiBpbnN0YW50aWF0aW5nCisgYW5kIGNhbGxpbmcgdGhlIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3Mgc3BlY2lmaWVkIGJ5ICJ0eXBlIi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCI+PEI+Rm9yd2FyZEFjdGlvbjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCI+Rm9yd2FyZEFjdGlvbjwvQT4uPEREPkFuIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgZm9yd2FyZHMgdG8gdGhlIGNvbnRleHQtcmVsYXRpdmUKKyBVUkkgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+IHByb3BlcnR5IG9mIG91ciBhc3NvY2lhdGVkCisgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sI0ZvcndhcmRBY3Rpb24oKSI+PEI+Rm9yd2FyZEFjdGlvbigpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sIj5Gb3J3YXJkQWN0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPjxCPkZvcndhcmRDb25maWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPi48REQ+QSBKYXZhQmVhbiByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgYQorIDxjb2RlPiZsdDtmb3J3YXJkJmd0OzwvY29kZT4gZWxlbWVudCBmcm9tIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI0ZvcndhcmRDb25maWcoKSI+PEI+Rm9yd2FyZENvbmZpZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCBkZWZhdWx0IHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI0ZvcndhcmRDb25maWcoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPjxCPkZvcndhcmRDb25maWcoU3RyaW5nLCBTdHJpbmcsIGJvb2xlYW4pPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI0ZvcndhcmRDb25maWcoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbiwgYm9vbGVhbikiPjxCPkZvcndhcmRDb25maWcoU3RyaW5nLCBTdHJpbmcsIGJvb2xlYW4sIGJvb2xlYW4pPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+PEI+Rm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+Rm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0E+LjxERD5BIHN1YmNsYXNzIG9mIDxzdHJvbmc+QWN0aW9uRm9yd2FyZDwvc3Ryb25nPiB0aGF0IGRlZmF1bHRzIHRoZQorIDxjb2RlPnJlZGlyZWN0PC9jb2RlPiBhdHRyaWJ1dGUgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCNGb3J3YXJkaW5nQWN0aW9uRm9yd2FyZCgpIj48Qj5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkPC9BPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sI0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZChTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkPC9BPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgcGF0aC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI2ZvcndhcmRQYXR0ZXJuIj48Qj5mb3J3YXJkUGF0dGVybjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD5UaGUgcmVwbGFjZW1lbnQgcGF0dGVybiB1c2VkIHRvIGRldGVybWluZSBhIGNvbnRleHQtcmVsYXRpdmUgVVJMCisgZnJvbSBhIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPjxDT0RFPkZvcndhcmRDb25maWc8L0NPREU+PC9BPiBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNmb3J3YXJkcyI+PEI+Zm9yd2FyZHM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPlRoZSBzZXQgb2YgbG9jYWwgZm9yd2FyZCBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBhY3Rpb24sIGlmIGFueSwKKyBrZXllZCBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZvcndhcmRzIj48Qj5mb3J3YXJkczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+VGhlIHNldCBvZiBnbG9iYWwgZm9yd2FyZCBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUsIGlmIGFueSwKKyBrZXllZCBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwjZm9yd2FyZHMiPjxCPmZvcndhcmRzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+QWN0aW9uRm9yd2FyZHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIGNvbGxlY3Rpb24gb2YgQWN0aW9uRm9yd2FyZCBpbnN0YW5jZXMsIGtleWVkIGJ5IGxvZ2ljYWwgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjRk9SV0FSRFNfS0VZIj48Qj5GT1JXQVJEU19LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCI+R2xvYmFsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIGluIE1vZHVsZUNvbmZpZy48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUldBUkRTX0tFWSI+PEI+Rk9SV0FSRFNfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgY29sbGVjdGlvbiBpbiBNb2R1bGVDb25maWcuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwiPjxCPkZvcndhcmRUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sIj5Gb3J3YXJkVGFnPC9BPi48REQ+UGVyZm9ybSBhIGZvcndhcmQgb3IgcmVkaXJlY3QgdG8gYSBwYWdlIHRoYXQgaXMgbG9va2VkIHVwIGluIHRoZQorIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gYXNzb2NpYXRlZCB3aXRoIG91ciBhcHBsaWNhdGlvbi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCNGb3J3YXJkVGFnKCkiPjxCPkZvcndhcmRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwiPkZvcndhcmRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNmb3J3YXJkVVJMKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+PEI+Zm9yd2FyZFVSTChIdHRwU2VydmxldFJlcXVlc3QsIEZvcndhcmRDb25maWcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+UmV0dXJuIHRoZSBjb250ZXh0LXJlbGF0aXZlIFVSTCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBzcGVjaWZpZWQKKyBGb3J3YXJkQ29uZmlnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjZnJhbWVib3JkZXIiPjxCPmZyYW1lYm9yZGVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPkZyYW1lVGFnPC9BPgorPEREPlRoZSBmcmFtZWJvcmRlciBhdHRyaWJ1dGUgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgKDEsIDApLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjZnJhbWVOYW1lIj48Qj5mcmFtZU5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCI+RnJhbWVUYWc8L0E+Cis8REQ+VGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCBmb3IgdGhpcyBmcmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj48Qj5GcmFtZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCI+RnJhbWVUYWc8L0E+LjxERD5HZW5lcmF0ZSBhbiBIVE1MIDxjb2RlPiZsdDtmcmFtZSZndDs8L2NvZGU+IHRhZyB3aXRoIHNpbWlsYXIgY2FwYWJpbGl0aWVzCisgYXMgdGhvc2UgdGhlIDxjb2RlPiZsdDtodG1sOmxpbmsmZ3Q7PC9jb2RlPiB0YWcgcHJvdmlkZXMgZm9yIGh5cGVybGluaworIGVsZW1lbnRzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI0ZyYW1lVGFnKCkiPjxCPkZyYW1lVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPkZyYW1lVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmcmVlemUoKSI+PEI+ZnJlZXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Cis8REQ+RnJlZXplIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoaXMgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2ZyZWV6ZSgpIj48Qj5mcmVlemUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4KKzxERD5GcmVlemUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBjb21wb25lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI2ZyZWV6ZSgpIj48Qj5mcmVlemUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPgorPEREPkZyZWV6ZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIGNvbXBvbmVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZnJlZXplKCkiPjxCPmZyZWV6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+RnJlZXplIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoaXMgYWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwjZnJlZXplKCkiPjxCPmZyZWV6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4KKzxERD5GcmVlemUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBjb21wb25lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNmcmVlemUoKSI+PEI+ZnJlZXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPgorPEREPkZyZWV6ZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIGNvbXBvbmVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwjZnJlZXplKCkiPjxCPmZyZWV6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj5QbHVnSW5Db25maWc8L0E+Cis8REQ+RnJlZXplIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoaXMgY29tcG9uZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjZnJlZXplKCkiPjxCPmZyZWV6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4KKzxERD5GcmVlemUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBjb21wb25lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sI2ZyZWV6ZSgpIj48Qj5mcmVlemUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPgorPEREPkZyZWV6ZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIGNvbXBvbmVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sI2ZyZWV6ZSgpIj48Qj5mcmVlemUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+Cis8REQ+RnJlZXplIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoaXMgZGF0YSBzb3VyY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZyZWV6ZSgpIj48Qj5mcmVlemUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPkZyZWV6ZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIG1vZHVsZS4KKzwvREw+Cis8SFI+Cis8QSBOQU1FPSJfR18iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPkc8L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwjZ2VuZXJhdGVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+Z2VuZXJhdGVUb2tlbihIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCI+VG9rZW5Qcm9jZXNzb3I8L0E+Cis8REQ+R2VuZXJhdGUgYSBuZXcgdHJhbnNhY3Rpb24gdG9rZW4sIHRvIGJlIHVzZWQgZm9yIGVuZm9yY2luZyBhIHNpbmdsZQorIHJlcXVlc3QgZm9yIGEgcGFydGljdWxhciB0cmFuc2FjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2VuZXJhdGVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+Z2VuZXJhdGVUb2tlbihIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+R2VuZXJhdGUgYSBuZXcgdHJhbnNhY3Rpb24gdG9rZW4sIHRvIGJlIHVzZWQgZm9yIGVuZm9yY2luZyBhIHNpbmdsZQorIHJlcXVlc3QgZm9yIGEgcGFydGljdWxhciB0cmFuc2FjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPjxCPkdlbmVyaWNEYXRhU291cmNlPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+LjxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgYSA8Y29kZT5CYXNpY0RhdGFTb3VyY2U8L2NvZGU+IGRpcmVjdGx5LCBvciBpbmRpcmVjdGx5CisgIGFjcXVpcmUgYSBkYXRhIHNvdXJjZSBwcm92aWRlZCBieSB5b3VyIGNvbnRhaW5lcjwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sI0dlbmVyaWNEYXRhU291cmNlKCkiPjxCPkdlbmVyaWNEYXRhU291cmNlKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNnZXQoKSI+PEI+Z2V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+Cis8REQ+UmV0dXJuIHRoZSBzZXQgb2YgYWxsIHJlY29yZGVkIG1lc3NhZ2VzLCB3aXRob3V0IGRpc3RpbmN0aW9uCisgYnkgd2hpY2ggcHJvcGVydHkgdGhlIG1lc3NhZ2VzIGFyZSBhc3NvY2lhdGVkIHdpdGguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sI2dldChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjZ2V0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj5EeW5hQWN0aW9uRm9ybTwvQT4KKzxERD5SZXR1cm4gdGhlIHZhbHVlIG9mIGEgc2ltcGxlIHByb3BlcnR5IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI2dldChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+Cis8REQ+UmV0dXJuIHRoZSBzZXQgb2YgbWVzc2FnZXMgcmVsYXRlZCB0byBhIHNwZWNpZmljIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2dldChqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj48Qj5nZXQoU3RyaW5nLCBpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPkR5bmFBY3Rpb25Gb3JtPC9BPgorPEREPlJldHVybiB0aGUgdmFsdWUgb2YgYW4gaW5kZXhlZCBwcm9wZXJ0eSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNnZXQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPmdldChTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCI+RHluYUFjdGlvbkZvcm08L0E+Cis8REQ+UmV0dXJuIHRoZSB2YWx1ZSBvZiBhIG1hcHBlZCBwcm9wZXJ0eSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSwKKyBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGVyZSBpcyBubyB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCBrZXkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0QWNjZXB0KCkiPjxCPmdldEFjY2VwdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPjxCPmdldEFjY2Vzc2tleSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBhY2Nlc3NLZXkgY2hhcmFjdGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRBY3Rpb24oKSI+PEI+Z2V0QWN0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0QWN0aW9uKCkiPjxCPmdldEFjdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBhY3Rpb24gVVJMIHRvIHdoaWNoIHRoaXMgZm9ybSBzaG91bGQgYmUgc3VibWl0dGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRBY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPjxCPmdldEFjdGlvbihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+UmV0dXJuIHRoZSBVUkwgZm9yIHRoZSBzcGVjaWZpZWQgQWN0aW9uTWFwcGluZywKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRBY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPjxCPmdldEFjdGlvbihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPlJldHVybiB0aGUgVVJMIGZvciB0aGUgc3BlY2lmaWVkIEFjdGlvbk1hcHBpbmcsCisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNnZXRBY3Rpb25EZWZpbml0aW9uKGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj48Qj5nZXRBY3Rpb25EZWZpbml0aW9uKFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7R2V0IERlZmluaXRpb24gc3RvcmVkIGluIGpzcCBjb250ZXh0IGJ5IGFuIGFjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjZ2V0QWN0aW9uRXJyb3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj48Qj5nZXRBY3Rpb25FcnJvcihIdHRwU2VydmxldFJlcXVlc3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCI+UmVzb3VyY2VzPC9BPgorPEREPkdldHMgdGhlIDxjb2RlPkFjdGlvbkVycm9yPC9jb2RlPiBiYXNlZCBvbiB0aGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiBtZXNzYWdlIGFuZCB0aGUKKyA8Y29kZT5GaWVsZDwvY29kZT4ncyBhcmcgb2JqZWN0cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCNnZXRBY3Rpb25FcnJvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPjxCPmdldEFjdGlvbkVycm9yKEh0dHBTZXJ2bGV0UmVxdWVzdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sIj5TdHJ1dHNWYWxpZGF0b3JVdGlsPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRBY3Rpb25FcnJvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPjxDT0RFPlJlc291cmNlcy5nZXRBY3Rpb25FcnJvcihIdHRwU2VydmxldFJlcXVlc3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQpPC9DT0RFPjwvQT48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEFjdGlvbkVycm9ycygpIj48Qj5nZXRBY3Rpb25FcnJvcnMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPlRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QsCisgZm9yIHRoaXMgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uRXJyb3JzKCkiPjxCPmdldEFjdGlvbkVycm9ycygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPlRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QsCisgZm9yIHRoaXMgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2dldEFjdGlvbkVycm9ycyhqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZykiPjxCPmdldEFjdGlvbkVycm9ycyhQYWdlQ29udGV4dCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPlJldHJpZXZlcyB0aGUgdmFsdWUgZnJvbSByZXF1ZXN0IHNjb3BlIGFuZCBpZiBpdCBpc24ndCBhbHJlYWR5IGFuIDxjb2RlPkVycm9yTWVzc2FnZXM8L2NvZGU+Cisgc29tZSBjbGFzc2VzIGFyZSBjb252ZXJ0ZWQgdG8gb25lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRBY3Rpb25Gb3JtKCkiPjxCPmdldEFjdGlvbkZvcm0oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRBY3Rpb25Gb3JtKCkiPjxCPmdldEFjdGlvbkZvcm0oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0QWN0aW9uRm9ybUJlYW5zKCkiPjxCPmdldEFjdGlvbkZvcm1CZWFucygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+VGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbnM8L2NvZGU+IGNvbGxlY3Rpb24KKyBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uRm9ybUJlYW5zKCkiPjxCPmdldEFjdGlvbkZvcm1CZWFucygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPlRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW5zPC9jb2RlPiBjb2xsZWN0aW9uCisgZm9yIHRoaXMgYXBwbGljYXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEFjdGlvbkZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPjxCPmdldEFjdGlvbkZvcndhcmQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPlJldHVybiB0aGUgZm9yd2FyZGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBsb2dpY2FsIG5hbWUsCisgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRBY3Rpb25Gb3J3YXJkKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+Cis8REQ+UmV0dXJuIHRoZSBmb3J3YXJkaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGxvZ2ljYWwgbmFtZSwKKyBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEFjdGlvbkZvcndhcmRzKCkiPjxCPmdldEFjdGlvbkZvcndhcmRzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5UaGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmRzPC9jb2RlPiBjb2xsZWN0aW9uCisgZm9yIHRoaXMgYXBwbGljYXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbkZvcndhcmRzKCkiPjxCPmdldEFjdGlvbkZvcndhcmRzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+Cis8REQ+VGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkczwvY29kZT4gY29sbGVjdGlvbgorIGZvciB0aGlzIGFwcGxpY2F0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRBY3Rpb25NYXBwaW5nKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRBY3Rpb25NYXBwaW5nKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5SZXR1cm4gdGhlIG1hcHBpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXRoLCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uTWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0QWN0aW9uTWFwcGluZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPlJldHVybiB0aGUgbWFwcGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCByZXF1ZXN0IHBhdGgsIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNnZXRBY3Rpb25NYXBwaW5nQ2xhc3MoKSI+PEI+Z2V0QWN0aW9uTWFwcGluZ0NsYXNzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Cis8REQ+VGhlIGRlZmF1bHQgY2xhc3MgbmFtZSB0byBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgYWN0aW9uIG1hcHBpbmcKKyBpbnN0YW5jZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2dldEFjdGlvbk1hcHBpbmdDbGFzcygpIj48Qj5nZXRBY3Rpb25NYXBwaW5nQ2xhc3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPlRoZSBkZWZhdWx0IGNsYXNzIG5hbWUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGFjdGlvbiBtYXBwaW5nCisgaW5zdGFuY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjZ2V0QWN0aW9uTWFwcGluZ05hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPmdldEFjdGlvbk1hcHBpbmdOYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYWN0aW9uIGNvbnZlcnRlZCBpbnRvIGFuIGFjdGlvbiBtYXBwaW5nIHBhdGguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEFjdGlvbk1hcHBpbmdOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRBY3Rpb25NYXBwaW5nTmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIGFjdGlvbiBjb252ZXJ0ZWQgaW50byBhbiBhY3Rpb24gbWFwcGluZyBwYXRoLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRBY3Rpb25NYXBwaW5nTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0QWN0aW9uTWFwcGluZ05hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYWN0aW9uIGNvbnZlcnRlZCBpbnRvIGFuIGFjdGlvbiBtYXBwaW5nIHBhdGguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEFjdGlvbk1hcHBpbmdzKCkiPjxCPmdldEFjdGlvbk1hcHBpbmdzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5UaGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIKKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZ3M8L2NvZGU+IGNvbGxlY3Rpb24KKyBpcyBub3JtYWxseSBzdG9yZWQsIHVubGVzcyBvdmVycmlkZGVuIHdoZW4gaW5pdGlhbGl6aW5nIG91cgorIEFjdGlvblNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbk1hcHBpbmdzKCkiPjxCPmdldEFjdGlvbk1hcHBpbmdzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+Cis8REQ+VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzPC9jb2RlPiBjb2xsZWN0aW9uCisgaXMgbm9ybWFsbHkgc3RvcmVkLCB1bmxlc3Mgb3ZlcnJpZGRlbiB3aGVuIGluaXRpYWxpemluZyBvdXIKKyBBY3Rpb25TZXJ2bGV0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRBY3Rpb25NYXBwaW5nVVJMKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRBY3Rpb25NYXBwaW5nVVJMKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYWN0aW9uIGNvbnZlcnRlZCBpbnRvIGEgc2VydmVyLXJlbGF0aXZlIFVSTC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uTWFwcGluZ1VSTChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0QWN0aW9uTWFwcGluZ1VSTChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPlJldHVybiB0aGUgZm9ybSBhY3Rpb24gY29udmVydGVkIGludG8gYSBzZXJ2ZXItcmVsYXRpdmUgVVJMLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjZ2V0QWN0aW9uTWFwcGluZ1VSTChqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjxCPmdldEFjdGlvbk1hcHBpbmdVUkwoU3RyaW5nLCBQYWdlQ29udGV4dCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYWN0aW9uIGNvbnZlcnRlZCBpbnRvIGEgc2VydmVyLXJlbGF0aXZlIFVSTC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0QWN0aW9uTWVzc2FnZXMoKSI+PEI+Z2V0QWN0aW9uTWVzc2FnZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRBY3Rpb25NZXNzYWdlcygpIj48Qj5nZXRBY3Rpb25NZXNzYWdlcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPlRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW5zPC9jb2RlPiBjb2xsZWN0aW9uCisgZm9yIHRoaXMgYXBwbGljYXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRBY3Rpb25NZXNzYWdlcyhqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZykiPjxCPmdldEFjdGlvbk1lc3NhZ2VzKFBhZ2VDb250ZXh0LCBTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+UmV0cmlldmVzIHRoZSB2YWx1ZSBmcm9tIHJlcXVlc3Qgc2NvcGUgYW5kIGlmIGl0IGlzbid0IGFscmVhZHkgYW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+Cisgc29tZSBjbGFzc2VzIGFyZSBjb252ZXJ0ZWQgdG8gb25lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNnZXRBY3R1YWxDb250ZW50KCkiPjxCPmdldEFjdHVhbENvbnRlbnQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwjZ2V0QWRqdXN0ZWRQcm9wZXJ0eShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0QWRqdXN0ZWRQcm9wZXJ0eShIdHRwU2VydmxldFJlcXVlc3QsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlIZWxwZXIuaHRtbCI+TmVzdGVkUHJvcGVydHlIZWxwZXI8L0E+Cis8REQ+R2V0IHRoZSBhZGp1c3RlZCBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldEFsaWduKCkiPjxCPmdldEFsaWduKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFsaWduIGF0dHJpYnV0ZSBpcyBkZXByZWNhdGVkIGluIEhUTUwgNC54LjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRBbGlnbigpIj48Qj5nZXRBbGlnbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldEFsbEVsZW1lbnRzKCkiPjxCPmdldEFsbEVsZW1lbnRzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgYWxsIGVsZW1lbnRzIG9mIGEgbXVsdGlwYXJ0IHJlcXVlc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldEFsbEVsZW1lbnRzKCkiPjxCPmdldEFsbEVsZW1lbnRzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5SZXR1cm5zIGEgaGFzaCB0YWJsZSBjb250YWluaW5nIGJvdGggdGV4dCBhbmQgZmlsZSByZXF1ZXN0IHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldEFsbEVsZW1lbnRzKCkiPjxCPmdldEFsbEVsZW1lbnRzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2dldEFsbFBhcmFtZXRlcnNGb3JNdWx0aXBhcnRSZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcikiPjxCPmdldEFsbFBhcmFtZXRlcnNGb3JNdWx0aXBhcnRSZXF1ZXN0KEh0dHBTZXJ2bGV0UmVxdWVzdCwgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+Q3JlYXRlIGEgbWFwIGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBwYXJhbWV0ZXJzIHN1cHBsaWVkIGZvciBhIG11bHRpcGFydAorIHJlcXVlc3QsIGtleWVkIGJ5IHBhcmFtZXRlciBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPjxCPmdldEFsdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBhbHRlcm5hdGUgdGV4dCBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBbHRLZXkoKSI+PEI+Z2V0QWx0S2V5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2dldEFuY2VzdG9yKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRBbmNlc3RvcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldEFuY2hvcigpIj48Qj5nZXRBbmNob3IoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0QW5jaG9yKCkiPjxCPmdldEFuY2hvcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2dldEFuY2hvcigpIj48Qj5nZXRBbmNob3IoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRBcHBsaWNhdGlvbkNvbmZpZygpIj48Qj5nZXRBcHBsaWNhdGlvbkNvbmZpZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldE1vZHVsZUNvbmZpZygpIj48Q09ERT5BY3Rpb25Db25maWcuZ2V0TW9kdWxlQ29uZmlnKCk8L0NPREU+PC9BPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldEFwcGxpY2F0aW9uQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5nZXRBcHBsaWNhdGlvbkNvbmZpZyhIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2UgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRNb2R1bGVDb25maWcoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkFjdGlvblNlcnZsZXQuZ2V0TW9kdWxlQ29uZmlnKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2dldEFwcGxpY2F0aW9uUHJlZml4ZXMoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPmdldEFwcGxpY2F0aW9uUHJlZml4ZXMoU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGdldE1vZHVsZVByZWZpeGVzKFNlcnZsZXRDb250ZXh0KSBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0QXJnMCgpIj48Qj5nZXRBcmcwKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0QXJnMSgpIj48Qj5nZXRBcmcxKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0QXJnMigpIj48Qj5nZXRBcmcyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0QXJnMygpIj48Qj5nZXRBcmczKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0QXJnNCgpIj48Qj5nZXRBcmc0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjZ2V0QXJncyhqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXMsIGphdmEudXRpbC5Mb2NhbGUsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj48Qj5nZXRBcmdzKFN0cmluZywgTWVzc2FnZVJlc291cmNlcywgTG9jYWxlLCBGaWVsZCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sIj5SZXNvdXJjZXM8L0E+Cis8REQ+R2V0cyB0aGUgbWVzc2FnZSBhcmd1bWVudHMgYmFzZWQgb24gdGhlIGN1cnJlbnQgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPgorIGFuZCA8Y29kZT5GaWVsZDwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjZ2V0QXJncyhqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXMsIGphdmEudXRpbC5Mb2NhbGUsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj48Qj5nZXRBcmdzKFN0cmluZywgTWVzc2FnZVJlc291cmNlcywgTG9jYWxlLCBGaWVsZCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sIj5TdHJ1dHNWYWxpZGF0b3JVdGlsPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRBcmdzKGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPjxDT0RFPlJlc291cmNlcy5nZXRBcmdzKFN0cmluZyxNZXNzYWdlUmVzb3VyY2VzLExvY2FsZSxGaWVsZCk8L0NPREU+PC9BPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI2dldEF0dHJpYnV0ZSgpIj48Qj5nZXRBdHRyaWJ1dGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj5YbWxBdHRyaWJ1dGU8L0E+Cis8REQ+QW5vdGhlciBhY2Nlc3MgbWV0aG9kIGZvciB0aGUgbmFtZSBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0QXR0cmlidXRlVGFnLmh0bWwjZ2V0QXR0cmlidXRlKCkiPjxCPmdldEF0dHJpYnV0ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIj5HZXRBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+R2V0IGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0QXR0cmlidXRlKCkiPjxCPmdldEF0dHJpYnV0ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgcmVxdWVzdC1zY29wZSBvciBzZXNzaW9uLXNjb3BlIGF0dHJpYnV0ZSBuYW1lIHVuZGVyIHdoaWNoIG91cgorIGZvcm0gYmVhbiBpcyBhY2Nlc3NlZCwgaWYgaXQgaXMgZGlmZmVyZW50IGZyb20gdGhlIGZvcm0gYmVhbidzCisgc3BlY2lmaWVkIDxjb2RlPm5hbWU8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0QXR0cmlidXRlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjZ2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRBdHRyaWJ1dGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4KKzxERD5HZXQgdmFsdWUgb2YgYW4gYWRkaXRpb25hbCBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI2dldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0QXR0cmlidXRlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4KKzxERD5HZXQgYW4gYXR0cmlidXRlIGZyb20gY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjZ2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRBdHRyaWJ1dGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPgorPEREPlJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBuYW1lZCBhdHRyaWJ1dGUgYXMgYW4gT2JqZWN0LCBvciBudWxsIGlmIG5vCisgYXR0cmlidXRlIG9mIHRoZSBnaXZlbiBuYW1lIGV4aXN0cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwjZ2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGludCwgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj48Qj5nZXRBdHRyaWJ1dGUoU3RyaW5nLCBpbnQsIFBhZ2VDb250ZXh0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPgorPEREPkdldCBvYmplY3QgZnJvbSByZXF1ZXN0ZWQgY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9UYWdVdGlscy5odG1sI2dldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PEI+Z2V0QXR0cmlidXRlKFN0cmluZywgaW50LCBQYWdlQ29udGV4dCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9UYWdVdGlscy5odG1sIj5UYWdVdGlsczwvQT4KKzxERD5HZXQgb2JqZWN0IGZyb20gcmVxdWVzdGVkIGNvbnRleHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0QXR0cmlidXRlTmFtZXMoKSI+PEI+Z2V0QXR0cmlidXRlTmFtZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwjZ2V0QXR0cmlidXRlTmFtZXMoKSI+PEI+Z2V0QXR0cmlidXRlTmFtZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPgorPEREPkdldCBuYW1lcyBvZiBhbGwgYXR0cmlidXRlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNnZXRBdHRyaWJ1dGVzKCkiPjxCPmdldEF0dHJpYnV0ZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4KKzxERD5HZXQgYWRkaXRpb25hbCBhdHRyaWJ1dGVzIGFzIGEgTWFwLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNnZXRBdHRyaWJ1dGVzKCkiPjxCPmdldEF0dHJpYnV0ZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPgorPEREPkFjY2VzcyBtZXRob2QgZm9yIHRoZSBhdHRyaWJ1dGVzIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCI+PEI+R2V0QXR0cmlidXRlVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIj5HZXRBdHRyaWJ1dGVUYWc8L0E+LjxERD5SZXRyaWV2ZSB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBjb21wb25lbnQvdGVtcGxhdGUgYXR0cmlidXRlIHByb3BlcnR5LAorIGFuZCByZW5kZXIgaXQgdG8gdGhlIGN1cnJlbnQgSnNwV3JpdGVyIGFzIGEgU3RyaW5nLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0QXR0cmlidXRlVGFnLmh0bWwjR2V0QXR0cmlidXRlVGFnKCkiPjxCPkdldEF0dHJpYnV0ZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIj5HZXRBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+RGVmYXVsdCBjb25zdHJ1Y3Rvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRBdXRoVHlwZSgpIj48Qj5nZXRBdXRoVHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwjZ2V0QmFzZUZpbGVOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRCYXNlRmlsZU5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGU8L0E+Cis8REQ+UmV0dXJucyB0aGUgYmFzZSBmaWxlIG5hbWUgZnJvbSB0aGUgc3VwcGxpZWQgZmlsZSBwYXRoLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRCYXNlUmVmKCkiPjxCPmdldEJhc2VSZWYoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPlJlbmRlcnMgdGhlIHJlZmVyZW5jZSBmb3IgYSBIVE1MIDxiYXNlPiBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRCYXNlUmVmKCkiPjxCPmdldEJhc2VSZWYoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT4KKzxERD5SZW5kZXJzIHRoZSByZWZlcmVuY2UgZm9yIGEgSFRNTCA8YmFzZT4gZWxlbWVudAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjZ2V0QmVhbkNsYXNzKCkiPjxCPmdldEJlYW5DbGFzcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4KKzxERD5SZXR1cm4gdGhlIGltcGxlbWVudGF0aW9uIGNsYXNzIHdlIGFyZSB1c2luZyB0byBjb25zdHJ1Y3QgbmV3CisgaW5zdGFuY2VzLCByZS1pbnRyb3NwZWN0aW5nIG91ciA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+PENPREU+Rm9ybUJlYW5Db25maWc8L0NPREU+PC9BPiBpZiBuZWNlc3NhcnkKKyAodGhhdCBpcywgYWZ0ZXIgYmVpbmcgZGVzZXJpYWxpemVkLCBzaW5jZSA8Y29kZT5iZWFuQ2xhc3M8L2NvZGU+IGlzCisgbWFya2VkIHRyYW5zaWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjZ2V0QmVhbk5hbWUoKSI+PEI+Z2V0QmVhbk5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPkdldCBiZWFuIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2dldEJlYW5OYW1lKCkiPjxCPmdldEJlYW5OYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5HZXQgYmVhbiBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUmVmZXJlbmNlLmh0bWwjZ2V0QmVhbk5hbWUoKSI+PEI+Z2V0QmVhbk5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj5OZXN0ZWRSZWZlcmVuY2U8L0E+Cis8REQ+R2V0dGVyIGZvciB0aGUgYmVhbiBuYW1lCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldEJlYW5OYW1lKCkiPjxCPmdldEJlYW5OYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGZvcm0gYmVhbiBjb3JyZXNwb25kaW5nIHRvIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNnZXRCZWFuUHJvcGVydHkoKSI+PEI+Z2V0QmVhblByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5HZXQgYmVhbiBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZ2V0QmVhblByb3BlcnR5KCkiPjxCPmdldEJlYW5Qcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+R2V0IGJlYW4gcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2dldEJlYW5TY29wZSgpIj48Qj5nZXRCZWFuU2NvcGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPkdldCBiZWFuIHNjb3BlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNnZXRCZWFuU2NvcGUoKSI+PEI+Z2V0QmVhblNjb3BlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5HZXQgYmVhbiBzY29wZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldEJvcmRlcigpIj48Qj5nZXRCb3JkZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0Qm9yZGVyKCkiPjxCPmdldEJvcmRlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2dldEJvdW5kYXJ5RnJvbUNvbnRlbnRUeXBlKCkiPjxCPmdldEJvdW5kYXJ5RnJvbUNvbnRlbnRUeXBlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+UGFyc2VzIGEgY29udGVudC10eXBlIFN0cmluZyBmb3IgdGhlIGJvdW5kYXJ5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2dldEJ1ZmZlclNpemUoKSI+PEI+Z2V0QnVmZmVyU2l6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPkdldCB0aGUgbWF4aW11bSBhbW91bnQgb2YgYnl0ZXMgcmVhZCBmcm9tIGEgbGluZSBhdCBvbmUgdGltZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjZ2V0QnVmZmVyU2l6ZSgpIj48Qj5nZXRCdWZmZXJTaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2dldEJ1bmRsZSgpIj48Qj5nZXRCdW5kbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj48Qj5nZXRCdW5kbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgbWVzc2FnZSByZXNvdXJjZXMgYnVuZGxlIHRvIHVzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2dldEJ1bmRsZSgpIj48Qj5nZXRCdW5kbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPjxCPmdldEJ1bmRsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNnZXRCdW5kbGUoKSI+PEI+Z2V0QnVuZGxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldEJ1bmRsZSgpIj48Qj5nZXRCdW5kbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI2dldEJ1bmRsZSgpIj48Qj5nZXRCdW5kbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZ2V0Qnl0ZXNSZWFkKCkiPjxCPmdldEJ5dGVzUmVhZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZ2V0Q2RhdGEoKSI+PEI+Z2V0Q2RhdGEoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9BPgorPEREPlJldHVybnMgdGhlIGNkYXRhIHNldHRpbmcgInRydWUiIG9yICJmYWxzZSIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0Q2hhcmFjdGVyRW5jb2RpbmcoKSI+PEI+Z2V0Q2hhcmFjdGVyRW5jb2RpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwjZ2V0Q2xhc3NuYW1lKCkiPjxCPmdldENsYXNzbmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sIj5Vc2VBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+R2V0IGNsYXNzIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sI2dldENsYXNzTmFtZSgpIj48Qj5nZXRDbGFzc05hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+UGx1Z0luQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0Q29sbGVjdGlvbigpIj48Qj5nZXRDb2xsZWN0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXRDb2xsZWN0aW9uKCkiPjxCPmdldENvbGxlY3Rpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNnZXRDb2xsZWN0aW9uKCkiPjxCPmdldENvbGxlY3Rpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldENvbHMoKSI+PEI+Z2V0Q29scygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlJldHVybiB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgZm9yIHRoaXMgZmllbGQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCNnZXRDb21wb25lbnREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PEI+Z2V0Q29tcG9uZW50RGVmaW5pdGlvbihTdHJpbmcsIFBhZ2VDb250ZXh0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwiPlRhZ1V0aWxzPC9BPgorPEREPkdldCBjb21wb25lbnQgZGVmaW5pdGlvbiBieSBpdHMgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRDb25maWcoKSI+PEI+Z2V0Q29uZmlnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+VGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGlzIE1lc3NhZ2VSZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZ2V0Q29uZmlnKCkiPjxCPmdldENvbmZpZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4KKzxERD5HZXQgZmFjdG9yeSBjb25maWd1cmF0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sI2dldENvbmZpZygpIj48Qj5nZXRDb25maWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcjwvQT4KKzxERD5HZXQgdW5kZXJseWluZyBmYWN0b3J5IGNvbmZpZ3VyYXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2dldENvbmZpZ3VyZWQoKSI+PEI+Z2V0Q29uZmlndXJlZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPgorPEREPkhhcyB0aGlzIG1vZHVsZSBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZCB5ZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2dldENvbmZpZ3VyZWQoKSI+PEI+Z2V0Q29uZmlndXJlZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+SGFzIHRoaXMgbW9kdWxlIGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkIHlldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjZ2V0Q29udGVudCgpIj48Qj5nZXRDb250ZW50KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5HZXQgY29udGVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjZ2V0Q29udGVudCgpIj48Qj5nZXRDb250ZW50KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sI2dldENvbnRlbnQoKSI+PEI+Z2V0Q29udGVudCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPkNvbnRlbnQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldENvbnRlbnRMZW5ndGgoKSI+PEI+Z2V0Q29udGVudExlbmd0aCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNnZXRDb250ZW50TWFwKCkiPjxCPmdldENvbnRlbnRNYXAoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRDb250ZW50VHlwZSgpIj48Qj5nZXRDb250ZW50VHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldENvbnRlbnRUeXBlKCkiPjxCPmdldENvbnRlbnRUeXBlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+R2V0IHRoZSBjb250ZW50IHR5cGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI2dldENvbnRlbnRUeXBlKCkiPjxCPmdldENvbnRlbnRUeXBlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlPC9BPgorPEREPlJldHVybnMgdGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhpcyBmaWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2dldENvbnRlbnRUeXBlKCkiPjxCPmdldENvbnRlbnRUeXBlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPgorPEREPlJldHVybnMgdGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhpcyBmaWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjZ2V0Q29udGVudFR5cGUoKSI+PEI+Z2V0Q29udGVudFR5cGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+UmV0cmlldmUgdGhlIGNvbnRlbnQgdHlwZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI2dldENvbnRlbnRUeXBlKCkiPjxCPmdldENvbnRlbnRUeXBlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2dldENvbnRlbnRUeXBlT2ZSZXF1ZXN0KCkiPjxCPmdldENvbnRlbnRUeXBlT2ZSZXF1ZXN0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+R2V0cyB0aGUgdmFsdWUgb2YgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXIgb2YgdGhlIHJlcXVlc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI2dldENvbnRleHQoamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPjxCPmdldENvbnRleHQoU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPgorPEREPkdldCBjb21wb25lbnQgY29udGV4dCBmcm9tIHJlcXVlc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0Q29udGV4dFBhdGgoKSI+PEI+Z2V0Q29udGV4dFBhdGgoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2dldENvbnRleHRSZWxhdGl2ZSgpIj48Qj5nZXRDb250ZXh0UmVsYXRpdmUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2dldENvbnRyb2xsZXIoKSI+PEI+Z2V0Q29udHJvbGxlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8REQ+R2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciBsb2NhbCBVUkwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2dldENvbnRyb2xsZXIoKSI+PEI+Z2V0Q29udHJvbGxlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+R2V0IGluc3RhbnRpYXRlZCBDb250cm9sbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNnZXRDb250cm9sbGVyQ29uZmlnKCkiPjxCPmdldENvbnRyb2xsZXJDb25maWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5UaGUgY29udHJvbGxlciBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhpcyBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2dldENvbnRyb2xsZXJDb25maWcoKSI+PEI+Z2V0Q29udHJvbGxlckNvbmZpZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+VGhlIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoaXMgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNnZXRDb250cm9sbGVySW5zdGFuY2UoKSI+PEI+Z2V0Q29udHJvbGxlckluc3RhbmNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5HZXQgY29udHJvbGxlciBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNnZXRDb250cm9sbGVyTmFtZSgpIj48Qj5nZXRDb250cm9sbGVyTmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPkRlZmluaXRpb25UYWdTdXBwb3J0PC9BPgorPEREPkdldCBjb250cm9sbGVyIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2dldENvbnRyb2xsZXJUeXBlKCkiPjxCPmdldENvbnRyb2xsZXJUeXBlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5HZXQgYXNzb2NpYXRlZCBjb250cm9sbGVyIHR5cGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjZ2V0Q29udHJvbGxlclR5cGUoKSI+PEI+Z2V0Q29udHJvbGxlclR5cGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIj5EZWZpbml0aW9uVGFnU3VwcG9ydDwvQT4KKzxERD5HZXQgY29udHJvbGxlciB0eXBlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+PEI+Z2V0Q29va2llKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRDb29raWVzKCkiPjxCPmdldENvb2tpZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZ2V0Q3VycmVudENvbnRleHQoKSI+PEI+Z2V0Q3VycmVudENvbnRleHQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPkdldCBjdXJyZW50IGNvbXBvbmVudCBjb250ZXh0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNnZXRDdXJyZW50TG9jYWxlKCkiPjxCPmdldEN1cnJlbnRMb2NhbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sIj5IdG1sVGFnPC9BPgorPEREPlJldHVybiB0aGUgY3VycmVudCBMb2NhbGUgZm9yIHRoaXMgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwjZ2V0Q3VycmVudE5hbWUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCkiPjxCPmdldEN1cnJlbnROYW1lKEh0dHBTZXJ2bGV0UmVxdWVzdCwgTmVzdGVkTmFtZVN1cHBvcnQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwiPk5lc3RlZFByb3BlcnR5SGVscGVyPC9BPgorPEREPlJldHVybnMgdGhlIGJlYW4gbmFtZSBmcm9tIHRoZSByZXF1ZXN0IG9iamVjdCB0aGF0IHRoZSBwcm9wZXJ0aWVzIGFyZQorIG5lc3RpbmcgYWdhaW5zdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwjZ2V0Q3VycmVudFByb3BlcnR5KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5nZXRDdXJyZW50UHJvcGVydHkoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sIj5OZXN0ZWRQcm9wZXJ0eUhlbHBlcjwvQT4KKzxERD5SZXR1cm5zIHRoZSBjdXJyZW50IG5lc3RpbmcgcHJvcGVydHkgZnJvbSB0aGUgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNnZXREYXRhKCkiPjxCPmdldERhdGEoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSBnZXRGaWxlIG1ldGhvZCB0byBnZXQgYSBGaWxlIHJlcHJlc2VudGluZyB0aGUKKyAgICAgICAgICAgICBkYXRhIGZvciB0aGlzIGVsZW1lbnQ8L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldERhdGFTb3VyY2UoKSI+PEI+Z2V0RGF0YVNvdXJjZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+VGhlIHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+CisgY29uZmlndXJlZCBkYXRhIHNvdXJjZSAod2hpY2ggbXVzdCBpbXBsZW1lbnQKKyA8Y29kZT5qYXZheC5zcWwuRGF0YVNvdXJjZTwvY29kZT4pLAorIGlmIG9uZSBpcyBjb25maWd1cmVkIGZvciB0aGlzIGFwcGxpY2F0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXREYXRhU291cmNlKCkiPjxCPmdldERhdGFTb3VyY2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0RGF0YVNvdXJjZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+Z2V0RGF0YVNvdXJjZShIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+UmV0dXJuIHRoZSBkZWZhdWx0IGRhdGEgc291cmNlIGZvciB0aGUgY3VycmVudCBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldERhdGFTb3VyY2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPjxCPmdldERhdGFTb3VyY2UoSHR0cFNlcnZsZXRSZXF1ZXN0LCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+UmV0dXJuIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UgZm9yIHRoZSBjdXJyZW50IG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXREYXRlSGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXREYXRlSGVhZGVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNnZXREZWJ1ZygpIj48Qj5nZXREZWJ1ZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldERlYnVnKCkiPjxCPmdldERlYnVnKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkNvbmZpZ3VyZSB0aGUgbG9nZ2luZyBkZXRhaWwgbGV2ZWwgaW4geW91ciB1bmRlcmx5aW5nCisgIGxvZ2dpbmcgaW1wbGVtZW50YXRpb248L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNnZXREZWJ1ZygpIj48Qj5nZXREZWJ1ZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Db25maWd1cmUgdGhlIGxvZ2dpbmcgZGV0YWlsIGxldmVsIGluIHlvdXIKKyAgdW5kZXJseWluZyBsb2dnaW5nIGltcGxlbWVudGF0aW9uPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI2dldERlYnVnTGV2ZWwoKSI+PEI+Z2V0RGVidWdMZXZlbCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjb21tb25zLWxvZ2dpbmcgbWVjaGFuaXNtLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjZ2V0RGVmYXVsdEZhY3RvcnkoKSI+PEI+Z2V0RGVmYXVsdEZhY3RvcnkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwiPkkxOG5GYWN0b3J5U2V0PC9BPgorPEREPkdldCBkZWZhdWx0IGZhY3RvcnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0Lmh0bWwjZ2V0RGVmYXVsdEZhY3RvcnkoKSI+PEI+Z2V0RGVmYXVsdEZhY3RvcnkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+RmFjdG9yeVNldDwvQT4KKzxERD5HZXQgZGVmYXVsdCBmYWN0b3J5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXREZWZpbml0aW9uKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT4KKzxERD5HZXQgcmVxdWVzdGVkIGRlZmluaXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjxCPmdldERlZmluaXRpb24oU3RyaW5nLCBQYWdlQ29udGV4dCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCI+RGVmaW5pdGlvbnNVdGlsPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Q09ERT5UaWxlc1V0aWwuZ2V0RGVmaW5pdGlvbihTdHJpbmcsIFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCk8L0NPREU+PC9BPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5nZXREZWZpbml0aW9uKFN0cmluZywgU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj5UaWxlc1V0aWw8L0E+Cis8REQ+R2V0IGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5nZXREZWZpbml0aW9uKFN0cmluZywgU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7R2V0IGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5nZXREZWZpbml0aW9uKFN0cmluZywgU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Cis8REQ+R2V0IGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5nZXREZWZpbml0aW9uKFN0cmluZywgU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+RmFjdG9yeVNldDwvQT4KKzxERD5HZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+Z2V0RGVmaW5pdGlvbihTdHJpbmcsIFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPgorPEREPkdldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+Z2V0RGVmaW5pdGlvbihTdHJpbmcsIFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXI8L0E+Cis8REQ+R2V0IHJlcXVlc3RlZCBkZWZpbml0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPmdldERlZmluaXRpb24oU3RyaW5nLCBTZXJ2bGV0UmVxdWVzdCwgU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sIj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPgorPEREPkdldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjZ2V0RGVmaW5pdGlvbkNvbmZpZ0ZpbGVzKCkiPjxCPmdldERlZmluaXRpb25Db25maWdGaWxlcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPgorPEREPkdldCB0aGUgZGVmaW5pdGlvbiBjb25maWcgZmlsZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2dldERlZmluaXRpb25OYW1lKCkiPjxCPmdldERlZmluaXRpb25OYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5HZXQgZGVmaW5pdGlvbiBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCNnZXREZWZpbml0aW9ucygpIj48Qj5nZXREZWZpbml0aW9ucygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+Cis8REQ+R2V0IGRlZmluaXRpb25zIG1hcC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNnZXREZWZpbml0aW9uc0ZhY3RvcnkoKSI+PEI+Z2V0RGVmaW5pdGlvbnNGYWN0b3J5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+R2V0IGFzc29jaWF0ZWQgZGVmaW5pdGlvbiBmYWN0b3J5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2dldERlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+Z2V0RGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2dldERlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PENPREU+VGlsZXNVdGlsLmdldERlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0UmVxdWVzdCwgU2VydmxldENvbnRleHQpPC9DT0RFPjwvQT48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCNnZXREZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjxCPmdldERlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCwgTW9kdWxlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCI+VGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGw8L0E+Cis8REQ+R2V0IGRlZmluaXRpb24gZmFjdG9yeSBmb3IgdGhlIG1vZHVsZSBhdHRhY2hlZCB0byBzcGVjaWZpZWQgbW9kdWxlQ29uZmlnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCNnZXREZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjxCPmdldERlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCwgTW9kdWxlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzSW1wbC5odG1sIj5UaWxlc1V0aWxTdHJ1dHNJbXBsPC9BPgorPEREPkdldCBkZWZpbml0aW9uIGZhY3RvcnkgZm9yIHRoZSBtb2R1bGUgYXR0YWNoZWQgdG8gdGhlIHNwZWNpZmllZCBtb2R1bGVDb25maWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5nZXREZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj5UaWxlc1V0aWw8L0E+Cis8REQ+R2V0IGRlZmluaXRpb24gZmFjdG9yeSBmcm9tIGFwcHJvcHJpYXRlIHNlcnZsZXQgY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5nZXREZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5UaWxlc1V0aWxJbXBsPC9BPgorPEREPkdldCBkZWZpbml0aW9uIGZhY3RvcnkgZnJvbSBhcHByb3ByaWF0ZSBzZXJ2bGV0IGNvbnRleHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCNnZXREZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPmdldERlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0UmVxdWVzdCwgU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sIj5UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbDwvQT4KKzxERD5HZXQgdGhlIGRlZmluaXRpb24gZmFjdG9yeSBmcm9tIGFwcHJvcHJpYXRlIHNlcnZsZXQgY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5S2V5KGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5nZXREZWZpbml0aW9uc0ZhY3RvcnlLZXkoU3RyaW5nLCBTZXJ2bGV0UmVxdWVzdCwgU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+STE4bkZhY3RvcnlTZXQ8L0E+Cis8REQ+RXh0cmFjdCBrZXkgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZ2V0IHRoZSBzdWIgZmFjdG9yeS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNnZXREZWZpbml0aW9uc0ZhY3RvcnlLZXkoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPmdldERlZmluaXRpb25zRmFjdG9yeUtleShTdHJpbmcsIFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0Lmh0bWwiPkZhY3RvcnlTZXQ8L0E+Cis8REQ+RXh0cmFjdCBrZXkgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZ2V0IHRoZSBzdWIgZmFjdG9yeS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjZ2V0RGlyZWN0KCkiPjxCPmdldERpcmVjdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+PEI+Z2V0RGlzYWJsZWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgZGlzYWJsZWQgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNnZXREaXNhYmxlZCgpIj48Qj5nZXREaXNhYmxlZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2dldER5bmFDbGFzcygpIj48Qj5nZXREeW5hQ2xhc3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj5EeW5hQWN0aW9uRm9ybTwvQT4KKzxERD5SZXR1cm4gdGhlIDxjb2RlPkR5bmFDbGFzczwvY29kZT4gaW5zdGFuY2UgdGhhdCBkZXNjcmliZXMgdGhlIHNldCBvZgorIHByb3BlcnRpZXMgYXZhaWxhYmxlIGZvciB0aGlzIER5bmFCZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2dldER5bmFtaWMoKSI+PEI+Z2V0RHluYW1pYygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNnZXREeW5hbWljSmF2YXNjcmlwdCgpIj48Qj5nZXREeW5hbWljSmF2YXNjcmlwdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+R2V0cyB3aGV0aGVyIG9yIG5vdCB0byBnZW5lcmF0ZSB0aGUgZHluYW1pYworIEphdmFTY3JpcHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNnZXREeW5hUHJvcGVydGllcygpIj48Qj5nZXREeW5hUHJvcGVydGllcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4KKzxERD5SZXR1cm4gYW4gYXJyYXkgb2YgPGNvZGU+RHluYVByb3BlcnR5PC9jb2RlPnMgZm9yIHRoZSBwcm9wZXJ0aWVzCisgY3VycmVudGx5IGRlZmluZWQgaW4gdGhpcyBEeW5hQ2xhc3MuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjZ2V0RHluYVByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXREeW5hUHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj5EeW5hQWN0aW9uRm9ybTwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IGRlc2NyaXB0b3IgZm9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sI2dldER5bmFQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0RHluYVByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sIj5EeW5hQWN0aW9uRm9ybUNsYXNzPC9BPgorPEREPlJldHVybiBhIHByb3BlcnR5IGRlc2NyaXB0b3IgZm9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHksIGlmIGl0IGV4aXN0czsKKyBvdGhlcndpc2UsIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2dldEVsZW1lbnRDaGFyc2V0KCkiPjxCPmdldEVsZW1lbnRDaGFyc2V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPkdldHMgdGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiB0aGUgY3VycmVudCBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RWxlbWVudENsb3NlKCkiPjxCPmdldEVsZW1lbnRDbG9zZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBjbG9zaW5nIGJyYWNlIGZvciBhbiBpbnB1dCBlbGVtZW50IGRlcGVuZGluZyBvbiB4aHRtbCBzdGF0dXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNnZXRFbGVtZW50Q29udGVudERpc3Bvc2l0aW9uKCkiPjxCPmdldEVsZW1lbnRDb250ZW50RGlzcG9zaXRpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+R2V0cyB0aGUgdmFsdWUgZm9yIHRoZSAiQ29udGVudC1EaXNwb3NpdGlvIiBoZWFkZXIgZm9yIHRoZSBjdXJyZW50IG11bHRpcGFydCBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZ2V0RWxlbWVudENvbnRlbnRUeXBlKCkiPjxCPmdldEVsZW1lbnRDb250ZW50VHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD5HZXRzIHRoZSAiQ29udGVudC1UeXBlIiBvZiB0aGUgY3VycmVudCBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2dldEVsZW1lbnRFbmNvZGluZygpIj48Qj5nZXRFbGVtZW50RW5jb2RpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5HZXQgdGhlIGNoYXJhY3RlciBlbmNvZGluZyB1c2VkIGZvciB0aGlzIGN1cnJlbnQgbXVsdGlwYXJ0IGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNnZXRFbGVtZW50RmlsZU5hbWUoKSI+PEI+Z2V0RWxlbWVudEZpbGVOYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPkdldHMgdGhlIGZpbGVuYW1lIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgbnVsbCBpZiB0aGUgY3VycmVudCBlbGVtZW50CisgaXNuJ3QgYSBmaWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZ2V0RWxlbWVudE5hbWUoKSI+PEI+Z2V0RWxlbWVudE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+R2V0cyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRFbmNvZGVVUkwoamF2YS5sYW5nLlN0cmluZykiPjxCPmdldEVuY29kZVVSTChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+UmV0dXJuIHRoZSB1cmwgZW5jb2RlZCB0byBtYWludGFpbiB0aGUgdXNlciBzZXNzaW9uLCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEVuY29kZVVSTChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0RW5jb2RlVVJMKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+Cis8REQ+UmV0dXJuIHRoZSB1cmwgZW5jb2RlZCB0byBtYWludGFpbiB0aGUgdXNlciBzZXNzaW9uLCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldEVuY3R5cGUoKSI+PEI+Z2V0RW5jdHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBjb250ZW50IGVuY29kaW5nIHVzZWQgd2hlbiBzdWJtaXR0aW5nIHRoaXMgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sI2dldEVycm9yKCkiPjxCPmdldEVycm9yKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+TW9kdWxlRXhjZXB0aW9uPC9BPgorPEREPlJldHVybnMgdGhlIGVycm9yIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXhjZXB0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FeGNlcHRpb24uaHRtbCNnZXRFcnJvcigpIj48Qj5nZXRFcnJvcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkV4Y2VwdGlvbi5odG1sIj5BY3Rpb25FeGNlcHRpb248L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhbiA8Yj5BY3Rpb25FcnJvcjwvYj4gY29uZmlndXJlZCBmb3IKK3RoaXMgZXhjZXB0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sI2dldEVycm9yKGludCkiPjxCPmdldEVycm9yKGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwiPkVycm9yTWVzc2FnZXM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBlcnJvciBtZXNzYWdlIGtleSBhdCB0aGUgc3BlY2lmaWVkIHplcm8tcmVsYXRpdmUgaW5kZXguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEVycm9yT3V0cHV0KCkiPjxCPmdldEVycm9yT3V0cHV0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5XcmFwcGVyIGZvciBnZXRFcnJvck1hcmt1cChudWxsKQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRFcnJvck91dHB1dCgpIj48Qj5nZXRFcnJvck91dHB1dCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPlJldHVybnMgdGhlIGVycm9ycy5oZWFkZXIsIGFueSBlcnJvcnMsIGFuZCB0aGUgZXJyb3JzLmZvb3Rlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0RXJyb3JPdXRwdXQoamF2YS5sYW5nLlN0cmluZykiPjxCPmdldEVycm9yT3V0cHV0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5SZXR1cm5zIHRoZSBlcnJvcnMuaGVhZGVyLCBhbnkgZXJyb3JzLCBhbmQgdGhlIGVycm9ycy5mb290ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEVycm9yT3V0cHV0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRFcnJvck91dHB1dChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPlJldHVybnMgdGhlIGVycm9ycy5oZWFkZXIsIGFueSBlcnJvcnMsIGFuZCB0aGUgZXJyb3JzLmZvb3Rlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbCNnZXRFcnJvcnMoKSI+PEI+Z2V0RXJyb3JzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwiPkVycm9yTWVzc2FnZXM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBzZXQgb2YgZXJyb3IgbWVzc2FnZSBrZXlzIHdlIGhhdmUgYWNjdW11bGF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEVycm9ycygpIj48Qj5nZXRFcnJvcnMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPlJldHVybiB0aGUgZXJyb3IgbWVzc2FnZXMKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0RXJyb3JzKCkiPjxCPmdldEVycm9ycygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPlJldHVybiB0aGUgZXJyb3IgbWVzc2FnZXMKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0RXJyb3JzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRFcnJvcnMoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPlJldHVybiBhbiBBY3Rpb25FcnJvciBmb3IgYSBwcm9wZXJ0eQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRFcnJvcnMoamF2YS5sYW5nLlN0cmluZykiPjxCPmdldEVycm9ycyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPlJldHVybiBhbiBBY3Rpb25FcnJvciBmb3IgYSBwcm9wZXJ0eQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRFcnJvcnNFbXB0eSgpIj48Qj5nZXRFcnJvcnNFbXB0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+UmV0dXJuIHRydWUgaWYgdGhlcmUgYXJlIG5vIGVycm9ycyBxdWV1ZWQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0RXJyb3JzRW1wdHkoKSI+PEI+Z2V0RXJyb3JzRW1wdHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT4KKzxERD5SZXR1cm4gdHJ1ZSBpZiB0aGVyZSBhcmUgbm8gZXJyb3JzIHF1ZXVlZAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRFcnJvclNpemUoKSI+PEI+Z2V0RXJyb3JTaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5SZXR1cm4gdGhlIG51bWJlciBvZiBlcnJvciBtZXNzYWdlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0RXJyb3JTaXplKCkiPjxCPmdldEVycm9yU2l6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPlJldHVybiB0aGUgbnVtYmVyIG9mIGVycm9yIG1lc3NhZ2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRFcnJvclNpemUoamF2YS5sYW5nLlN0cmluZykiPjxCPmdldEVycm9yU2l6ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+UmV0dXJuIHRoZSBudW1iZXIgb2YgZXJyb3IgbWVzc2FnZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEVycm9yU2l6ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0RXJyb3JTaXplKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+Cis8REQ+UmV0dXJuIHRoZSBudW1iZXIgb2YgZXJyb3IgbWVzc2FnZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwjZ2V0RXhjZXB0aW9uKCkiPjxCPmdldEV4Y2VwdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPgorPEREPlJldHVybiB0aGUgZW1iZWRkZWQgZXhjZXB0aW9uLCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNFeGNlcHRpb24uaHRtbCNnZXRFeGNlcHRpb24oKSI+PEI+Z2V0RXhjZXB0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwiPlRpbGVzRXhjZXB0aW9uPC9BPgorPEREPlJldHVybiB0aGUgZW1iZWRkZWQgZXhjZXB0aW9uLCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEV4Y2VwdGlvbigpIj48Qj5nZXRFeGNlcHRpb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPlRoZSBydW50aW1lIEpzcEV4Y2VwdGlvbiB0aGF0IG1heSBiZSBiZWVuIHRocm93biBieSBhIFN0cnV0cyB0YWcKKyBleHRlbnNpb24sIG9yIGNvbXBhdGlibGUgcHJlc2VudGF0aW9uIGV4dGVuc2lvbiwgYW5kIHBsYWNlZAorIGluIHRoZSByZXF1ZXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRFeGNlcHRpb24oKSI+PEI+Z2V0RXhjZXB0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+Cis8REQ+VGhlIHJ1bnRpbWUgSnNwRXhjZXB0aW9uIHRoYXQgbWF5IGJlIGJlZW4gdGhyb3duIGJ5IGEgU3RydXRzIHRhZworIGV4dGVuc2lvbiwgb3IgY29tcGF0aWJsZSBwcmVzZW50YXRpb24gZXh0ZW5zaW9uLCBhbmQgcGxhY2VkCisgaW4gdGhlIHJlcXVlc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwjZ2V0RXh0ZW5kcygpIj48Qj5nZXRFeHRlbmRzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwiPlhtbERlZmluaXRpb248L0E+Cis8REQ+R2V0IGV4dGVuZHMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCNnZXRFeHRlbmRzKCkiPjxCPmdldEV4dGVuZHMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPkRlZmluaXRpb25UYWc8L0E+Cis8REQ+R2V0IDxjb2RlPmV4dGVuZHM8L2NvZGU+IChwYXJlbnQpIGRlZmluaXRpb24gbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRGYWN0b3J5KCkiPjxCPmdldEZhY3RvcnkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5UaGUgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IHRoYXQgY3JlYXRlZCB0aGlzIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI2dldEZhY3RvcnkoKSI+PEI+Z2V0RmFjdG9yeSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sIj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPgorPEREPkdldCB1bmRlcmx5aW5nIGZhY3RvcnkgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCNnZXRGYWN0b3J5KCkiPjxCPmdldEZhY3RvcnkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0Lmh0bWwjZ2V0RmFjdG9yeShqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+Z2V0RmFjdG9yeShPYmplY3QsIFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0Lmh0bWwiPkZhY3RvcnlTZXQ8L0E+Cis8REQ+R2V0IGEgZmFjdG9yeSBieSBpdHMga2V5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNnZXRGYWN0b3J5Q2xhc3MoKSI+PEI+Z2V0RmFjdG9yeUNsYXNzKCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIHRoYXQgaXMgdXNlZCBmb3IKKyA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gaW5zdGFuY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwjZ2V0RmFjdG9yeUNsYXNzKCkiPjxCPmdldEZhY3RvcnlDbGFzcygpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIHRoYXQgaXMgdXNlZCBmb3IKKyA8Y29kZT5Nb2R1bGVDb25maWdGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjZ2V0RmFjdG9yeUNsYXNzbmFtZSgpIj48Qj5nZXRGYWN0b3J5Q2xhc3NuYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Cis8REQ+R2V0IHRoZSBjbGFzc25hbWUgb2YgdGhlIGZhY3RvcnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjZ2V0RmFjdG9yeU5hbWUoKSI+PEI+Z2V0RmFjdG9yeU5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4KKzxERD5HZXQgdGhlIGZhY3RvcnkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNnZXRGYXN0KCkiPjxCPmdldEZhc3QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlICJmYXN0IiBtb2RlIGZsYWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sI2dldEZhc3QoKSI+PEI+Z2V0RmFzdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj5BY3Rpb25Gb3JtQmVhbnM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSAiZmFzdCIgbW9kZSBmbGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI2dldEZhc3QoKSI+PEI+Z2V0RmFzdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgImZhc3QiIG1vZGUgZmxhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2dldEZpbGUoKSI+PEI+Z2V0RmlsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD5HZXQgdGhlIEZpbGUgdGhhdCBob2xkcyB0aGUgZGF0YSBmb3IgdGhpcyBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldEZpbGVEYXRhKCkiPjxCPmdldEZpbGVEYXRhKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+QXR0ZW1wdCB0byByZWFkIHRoZSB0ZW1wb3JhcnkgZmlsZSBhbmQgZ2V0IGl0J3MgZGF0YSBpbiBieXRlCisgYXJyYXkgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI2dldEZpbGVEYXRhKCkiPjxCPmdldEZpbGVEYXRhKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlPC9BPgorPEREPlJldHVybnMgdGhlIGRhdGEgZm9yIHRoaXMgZmlsZSBhcyBhIGJ5dGUgYXJyYXkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjZ2V0RmlsZURhdGEoKSI+PEI+Z2V0RmlsZURhdGEoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+Cis8REQ+UmV0dXJucyB0aGUgZGF0YSBmb3IgdGhlIGVudGlyZSBmaWxlIGFzIGJ5dGUgYXJyYXkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjZ2V0RmlsZURhdGEoaW50KSI+PEI+Z2V0RmlsZURhdGEoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj5EaXNrRmlsZTwvQT4KKzxERD5BdHRlbXB0cyB0byByZWFkIGEgZmlsZSBuIGJ5dGVzIGF0IGEgdGltZSwgbiBiZWluZyBlcXVhbCB0byAiYnVmZmVyU2l6ZSIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0RmlsZUVsZW1lbnRzKCkiPjxCPmdldEZpbGVFbGVtZW50cygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5UaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdG8gcmV0cmlldmUgYWxsIHRoZSBGb3JtRmlsZQorIGlucHV0IGVsZW1lbnRzIG9mIHRoZSByZXF1ZXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRGaWxlRWxlbWVudHMoKSI+PEI+Z2V0RmlsZUVsZW1lbnRzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5SZXR1cm5zIGEgaGFzaCB0YWJsZSBjb250YWluaW5nIHRoZSBmaWxlICh0aGF0IGlzLCBub24tdGV4dCkgcmVxdWVzdAorIHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldEZpbGVFbGVtZW50cygpIj48Qj5nZXRGaWxlRWxlbWVudHMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldEZpbGVOYW1lKCkiPjxCPmdldEZpbGVOYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+R2V0IHRoZSBmaWxlIG5hbWUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI2dldEZpbGVOYW1lKCkiPjxCPmdldEZpbGVOYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlPC9BPgorPEREPlJldHVybnMgdGhlIChjbGllbnQtc2lkZSkgZmlsZSBuYW1lIGZvciB0aGlzIGZpbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjZ2V0RmlsZU5hbWUoKSI+PEI+Z2V0RmlsZU5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+Cis8REQ+UmV0dXJucyB0aGUgZmlsZSBuYW1lIG9mIHRoaXMgZmlsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2dldEZpbGVOYW1lKCkiPjxCPmdldEZpbGVOYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPgorPEREPlJldHJpZXZlIHRoZSBmaWxlbmFtZSwgY2FuIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPgorIGZvciB0ZXh0IGVsZW1lbnRzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldEZpbGVQYXRoKCkiPjxCPmdldEZpbGVQYXRoKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+R2V0IHRoZSB0ZW1wb3JhcnkgZmlsZSBwYXRoIGZvciB0aGlzIGZvcm0gZmlsZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldEZpbGVTaXplKCkiPjxCPmdldEZpbGVTaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+R2V0IHRoZSBmaWxlIHNpemUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI2dldEZpbGVTaXplKCkiPjxCPmdldEZpbGVTaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlPC9BPgorPEREPlJldHVybnMgdGhlIHNpemUsIGluIGJ5dGVzLCBvZiB0aGlzIGZpbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjZ2V0RmlsZVNpemUoKSI+PEI+Z2V0RmlsZVNpemUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+Cis8REQ+UmV0dXJucyB0aGUgc2l6ZSBvZiB0aGlzIGZpbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuaHRtbCNnZXRGaWx0ZXIoKSI+PEI+Z2V0RmlsdGVyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuaHRtbCI+TmVzdGVkV3JpdGVOZXN0aW5nVGFnPC9BPgorPEREPkdldHRlciBtZXRob2QgZm9yIHRoZSA8aT5maWx0ZXI8L2k+IHByb3BlcnR5Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldEZpbHRlcigpIj48Qj5nZXRGaWx0ZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjZ2V0RmlsdGVyKCkiPjxCPmdldEZpbHRlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5PcHRpb25zQ29sbGVjdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldEZpbHRlcigpIj48Qj5nZXRGaWx0ZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2dldEZsdXNoKCkiPjxCPmdldEZsdXNoKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5HZXQgZmx1c2guCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI2dldEZsdXNoKCkiPjxCPmdldEZsdXNoKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwiPkdldFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldEZvY3VzKCkiPjxCPmdldEZvY3VzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGZvY3VzIGZpZWxkIG5hbWUgZm9yIHRoaXMgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0Rm9jdXNJbmRleCgpIj48Qj5nZXRGb2N1c0luZGV4KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBmb2N1c0luZGV4LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZ2V0Rm9vdGVyKCkiPjxCPmdldEZvb3RlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldEZvcm1hdCgpIj48Qj5nZXRGb3JtYXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNnZXRGb3JtYXRLZXkoKSI+PEI+Z2V0Rm9ybWF0S2V5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2dldEZvcm1CZWFuKCkiPjxCPmdldEZvcm1CZWFuKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj5TdHJ1dHNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRGb3JtQmVhbihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIGJlYW4gZGVmaW5pdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZAorIGxvZ2ljYWwgbmFtZSwgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRGb3JtQmVhbihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0Rm9ybUJlYW4oU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYmVhbiBkZWZpbml0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkCisgbG9naWNhbCBuYW1lLCBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI2dldEZvcm1OYW1lKCkiPjxCPmdldEZvcm1OYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4KKzxERD5HZXRzIHRoZSBrZXkgKGZvcm0gbmFtZSkgdGhhdCB3aWxsIGJlIHVzZWQKKyB0byByZXRyaWV2ZSBhIHNldCBvZiB2YWxpZGF0aW9uIHJ1bGVzIHRvIGJlCisgcGVyZm9ybWVkIG9uIHRoZSBiZWFuIHBhc3NlZCBpbiBmb3IgdmFsaWRhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXRGb3J3YXJkKCkiPjxCPmdldEZvcndhcmQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0Rm9yd2FyZCgpIj48Qj5nZXRGb3J3YXJkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjZ2V0Rm9yd2FyZCgpIj48Qj5nZXRGb3J3YXJkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNnZXRGb3J3YXJkKCkiPjxCPmdldEZvcndhcmQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPlN0cnV0c1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0Rm9yd2FyZCgpIj48Qj5nZXRGb3J3YXJkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5SZXR1cm5zIGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIHRoYXQgd2lsbCBwcm9jZXNzCisgdGhpcyByZXF1ZXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjZ2V0Rm9yd2FyZFBhdHRlcm4oKSI+PEI+Z2V0Rm9yd2FyZFBhdHRlcm4oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNnZXRGcmFtZWJvcmRlcigpIj48Qj5nZXRGcmFtZWJvcmRlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj5GcmFtZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI2dldEZyYW1lTmFtZSgpIj48Qj5nZXRGcmFtZU5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCI+RnJhbWVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI2dldEhhbmRsZXIoKSI+PEI+Z2V0SGFuZGxlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj48Qj5nZXRIZWFkZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZ2V0SGVhZGVyKCkiPjxCPmdldEhlYWRlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPjxCPmdldEhlYWRlcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldEhlYWRlck5hbWVzKCkiPjxCPmdldEhlYWRlck5hbWVzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0SGVhZGVycyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0SGVhZGVycyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldEhlaWdodCgpIj48Qj5nZXRIZWlnaHQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXRIcmVmKCkiPjxCPmdldEhyZWYoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0SHJlZigpIj48Qj5nZXRIcmVmKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjZ2V0SHJlZigpIj48Qj5nZXRIcmVmKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRIc3BhY2UoKSI+PEI+Z2V0SHNwYWNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI2dldEh0bWxDb21tZW50KCkiPjxCPmdldEh0bWxDb21tZW50KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4KKzxERD5HZXRzIHdoZXRoZXIgb3Igbm90IHRvIGRlbGltaXQgdGhlCisgSmF2YVNjcmlwdCB3aXRoIGh0bWwgY29tbWVudHMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCNnZXRJY29uKCkiPjxCPmdldEljb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCI+U2ltcGxlTWVudUl0ZW08L0E+Cis8REQ+R2V0IGljb24gcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCNnZXRJY29uKCkiPjxCPmdldEljb24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwiPk1lbnVJdGVtPC9BPgorPEREPkdldCBpY29uIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwjZ2V0SWQoKSI+PEI+Z2V0SWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPkRlZmluaXRpb25UYWc8L0E+Cis8REQ+R2V0IHRoZSBJRC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldElkKCkiPjxCPmdldElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZ2V0SWQoKSI+PEI+Z2V0SWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZ2V0SWQoKSI+PEI+Z2V0SWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjZ2V0SWQoKSI+PEI+Z2V0SWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2dldElkKCkiPjxCPmdldElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj5TdHJ1dHNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2dldElkKCkiPjxCPmdldElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+U2l6ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI2dldElkKCkiPjxCPmdldElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPlJlc291cmNlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI2dldElkKCkiPjxCPmdldElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI2dldElkKCkiPjxCPmdldElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCI+UGFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNnZXRJZCgpIj48Qj5nZXRJZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI2dldElkKCkiPjxCPmdldElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIj5Db29raWVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNnZXRJZE5hbWUoKSI+PEI+Z2V0SWROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPlJldHVybiB0aGUgaWROYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCNnZXRJZ25vcmUoKSI+PEI+Z2V0SWdub3JlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0QXR0cmlidXRlVGFnLmh0bWwiPkdldEF0dHJpYnV0ZVRhZzwvQT4KKzxERD5HZXQgaWdub3JlIGZsYWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sI2dldElnbm9yZSgpIj48Qj5nZXRJZ25vcmUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCI+SW1wb3J0QXR0cmlidXRlVGFnPC9BPgorPEREPkdldCBpZ25vcmUgZmxhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwjZ2V0SWdub3JlKCkiPjxCPmdldElnbm9yZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sIj5Vc2VBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+R2V0IGlnbm9yZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZ2V0SWdub3JlKCkiPjxCPmdldElnbm9yZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+R2V0IGlnbm9yZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldElnbm9yZSgpIj48Qj5nZXRJZ25vcmUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0SW1hZ2VOYW1lKCkiPjxCPmdldEltYWdlTmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRJbmNsdWRlKCkiPjxCPmdldEluY2x1ZGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPkNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIHRoYXQgd2lsbCBwcm9jZXNzCisgdGhpcyByZXF1ZXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0SW5kZXgoKSI+PEI+Z2V0SW5kZXgoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSB6ZXJvLXJlbGF0aXZlIGluZGV4IG9mIHRoZSBjdXJyZW50IGl0ZXJhdGlvbiB0aHJvdWdoIHRoZQorIGxvb3AuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPjxCPmdldEluZGV4ZWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgaW5kZXhlZCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldEluZGV4SWQoKSI+PEI+Z2V0SW5kZXhJZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0SW5kZXhJZCgpIj48Qj5nZXRJbmRleElkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwjZ2V0SW5pdGlhbCgpIj48Qj5nZXRJbml0aWFsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI2dldElucHV0KCkiPjxCPmdldElucHV0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPlJlc291cmNlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRJbnB1dCgpIj48Qj5nZXRJbnB1dCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+R2V0IHRoZSBjb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGlucHV0IGZvcm0gdG8gd2hpY2ggY29udHJvbCBzaG91bGQgYmUKKyByZXR1cm5lZCBpZiBhIHZhbGlkYXRpb24gZXJyb3IgaXMgZW5jb3VudGVyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNnZXRJbnB1dEZvcndhcmQoKSI+PEI+Z2V0SW5wdXRGb3J3YXJkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0SW5wdXRGb3J3YXJkKCkiPjxCPmdldElucHV0Rm9yd2FyZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4KKzxERD5DcmVhdGUgKGlmIG5lY2Vzc2FyeSkgYW5kIHJldHVybiBhbiA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj48Q09ERT5BY3Rpb25Gb3J3YXJkPC9DT0RFPjwvQT4gdGhhdAorIGNvcnJlc3BvbmRzIHRvIHRoZSA8Y29kZT5pbnB1dDwvY29kZT4gcHJvcGVydHkgb2YgdGhpcyBBY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0SW5wdXRTdHJlYW0oKSI+PEI+Z2V0SW5wdXRTdHJlYW0oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNnZXRJbnB1dFN0cmVhbSgpIj48Qj5nZXRJbnB1dFN0cmVhbSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPkRpc2tGaWxlPC9BPgorPEREPlJldHVybnMgYSBGaWxlSW5wdXRTdHJlYW0gdG8gdGhlIGZpbGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI2dldElucHV0U3RyZWFtKCkiPjxCPmdldElucHV0U3RyZWFtKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlPC9BPgorPEREPkdldCBhbiBJbnB1dFN0cmVhbSB0aGF0IHJlcHJlc2VudHMgdGhpcyBmaWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2dldElucHV0U3RyZWFtKCkiPjxCPmdldElucHV0U3RyZWFtKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPgorPEREPlJldHVybnMgYW4gaW5wdXQgc3RyZWFtIGZvciB0aGlzIGZpbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sI2dldEluc3RhbmNlKCkiPjxCPmdldEluc3RhbmNlKCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCI+VG9rZW5Qcm9jZXNzb3I8L0E+Cis8REQ+UmV0cmlldmVzIHRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldEludGVybmFsKCkiPjxCPmdldEludGVybmFsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlJldHVybiB0aGUgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW5zdGFuY2UgY29udGFpbmluZyBvdXIKKyBpbnRlcm5hbCBtZXNzYWdlIHN0cmluZ3MuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNnZXRJbnRlcm5hbCgpIj48Qj5nZXRJbnRlcm5hbCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5SZXR1cm4gdGhlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGluc3RhbmNlIGNvbnRhaW5pbmcgb3VyCisgaW50ZXJuYWwgbWVzc2FnZSBzdHJpbmdzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sI2dldEludGVybmFsRmFjdG9yeSgpIj48Qj5nZXRJbnRlcm5hbEZhY3RvcnkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcjwvQT4KKzxERD5HZXQgaW50ZXJuYWwgZmFjdG9yeS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRJbnRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPjxCPmdldEludEhlYWRlcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldElzbWFwKCkiPjxCPmdldElzbWFwKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNnZXRJdGVyYXRvcihqYXZhLmxhbmcuT2JqZWN0KSI+PEI+Z2V0SXRlcmF0b3IoT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+Cis8REQ+UmV0dXJuIGFuIGl0ZXJhdG9yIGZvciB0aGUgb3B0aW9ucyBjb2xsZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXRJdGVyYXRvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0SXRlcmF0b3IoU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+UmV0dXJuIGFuIGl0ZXJhdG9yIGZvciB0aGUgb3B0aW9uIGxhYmVscyBvciB2YWx1ZXMsIGJhc2VkIG9uIG91cgorIGNvbmZpZ3VyZWQgcHJvcGVydGllcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZ2V0SmF2YXNjcmlwdEJlZ2luKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRKYXZhc2NyaXB0QmVnaW4oU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9wZW5pbmcgc2NyaXB0IGVsZW1lbnQgYW5kIHNvbWUgaW5pdGlhbCBqYXZhc2NyaXB0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNnZXRKYXZhc2NyaXB0RW5kKCkiPjxCPmdldEphdmFzY3JpcHRFbmQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9BPgorPEREPlJldHVybnMgdGhlIGNsb3Npbmcgc2NyaXB0IGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI2dldEphdmFzY3JpcHRTdGF0aWNNZXRob2RzKG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzb3VyY2VzKSI+PEI+Z2V0SmF2YXNjcmlwdFN0YXRpY01ldGhvZHMoVmFsaWRhdG9yUmVzb3VyY2VzKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0SnN0bExvb3BJbmRleCgpIj48Qj5nZXRKc3RsTG9vcEluZGV4KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2dldEtleSgpIj48Qj5nZXRLZXkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0S2V5KCkiPjxCPmdldEtleSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI2dldEtleSgpIj48Qj5nZXRLZXkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwjZ2V0S2V5KCkiPjxCPmdldEtleSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sI2dldEtleSgpIj48Qj5nZXRLZXkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCNnZXRLZXkoKSI+PEI+Z2V0S2V5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj5BY3Rpb25NZXNzYWdlPC9BPgorPEREPkdldCB0aGUgbWVzc2FnZSBrZXkgZm9yIHRoaXMgbWVzc2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwjZ2V0S2V5TWV0aG9kTWFwKCkiPjxCPmdldEtleU1ldGhvZE1hcCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCI+TG9va3VwRGlzcGF0Y2hBY3Rpb248L0E+Cis8REQ+UHJvdmlkZXMgdGhlIG1hcHBpbmcgZnJvbSByZXNvdXJjZSBrZXkgdG8gbWV0aG9kIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sI2dldExhYmVsKCkiPjxCPmdldExhYmVsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sIj5MYWJlbFZhbHVlQmVhbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI2dldExhYmVsKCkiPjxCPmdldExhYmVsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXRMYWJlbE5hbWUoKSI+PEI+Z2V0TGFiZWxOYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjZ2V0TGFiZWxQcm9wZXJ0eSgpIj48Qj5nZXRMYWJlbFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldExlbmd0aCgpIj48Qj5nZXRMZW5ndGgoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCNnZXRMaW5rKCkiPjxCPmdldExpbmsoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCI+U2ltcGxlTWVudUl0ZW08L0E+Cis8REQ+R2V0IGxpbmsgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCNnZXRMaW5rKCkiPjxCPmdldExpbmsoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwiPk1lbnVJdGVtPC9BPgorPEREPkdldCBsaW5rIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRMaW5rKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRMaW5rKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5SZXR1cm4gdGhlIHBhdGggZm9yIHRoZSBzcGVjaWZpZWQgZm9yd2FyZCwKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRMaW5rKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRMaW5rKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+Cis8REQ+UmV0dXJuIHRoZSBwYXRoIGZvciB0aGUgc3BlY2lmaWVkIGZvcndhcmQsCisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0TGlua05hbWUoKSI+PEI+Z2V0TGlua05hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwjZ2V0TGlzdCgpIj48Qj5nZXRMaXN0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj5QdXRMaXN0VGFnPC9BPgorPEREPkdldCBsaXN0IGRlZmluZWQgaW4gdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sI2dldExpc3QoKSI+PEI+Z2V0TGlzdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtLmh0bWwiPkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldExvY2FsZSgpIj48Qj5nZXRMb2NhbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNnZXRMb2NhbGUoKSI+PEI+Z2V0TG9jYWxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRMb2NhbGUoKSI+PEI+Z2V0TG9jYWxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIGZvciBvdXIgbG9jYWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPjxCPmdldExvY2FsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPjxCPmdldExvY2FsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPkh0bWxUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPjxCPmdldExvY2FsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNnZXRMb2NhbGUoKSI+PEI+Z2V0TG9jYWxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldExvY2FsZSgpIj48Qj5nZXRMb2NhbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldExvY2FsZSgpIj48Qj5nZXRMb2NhbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPlRoZSA8Y29kZT5qYXZhLnV0aWwuTG9jYWxlPC9jb2RlPiBmb3IgdGhlIHVzZXIsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI2dldExvY2FsZSgpIj48Qj5nZXRMb2NhbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldExvY2FsZSgpIj48Qj5nZXRMb2NhbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT4KKzxERD5UaGUgPGNvZGU+amF2YS51dGlsLkxvY2FsZTwvY29kZT4gZm9yIHRoZSB1c2VyLCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sI2dldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+Z2V0TG9jYWxlKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sIj5SZXNvdXJjZXM8L0E+Cis8REQ+R2V0IHRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9mIHRoZSBjdXJyZW50IHVzZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjZ2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5nZXRMb2NhbGUoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwiPlN0cnV0c1ZhbGlkYXRvclV0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7R2V0IHRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9mIHRoZSBjdXJyZW50IHVzZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+Z2V0TG9jYWxlKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD5SZXR1cm4gdGhlIHVzZXIncyBjdXJyZW50bHkgc2VsZWN0ZWQgTG9jYWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldExvY2FsZXMoKSI+PEI+Z2V0TG9jYWxlcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2dldExvY2F0aW9uKCkiPjxCPmdldExvY2F0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNnZXRMb25nZGVzYygpIj48Qj5nZXRMb25nZGVzYygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj5GcmFtZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRMb3dzcmMoKSI+PEI+Z2V0TG93c3JjKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgSFRNTCA0LjAxIHNwZWMgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhCisgZnV0dXJlIHZlcnNpb24gb2YgU3RydXRzLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNnZXRNYXAoKSI+PEI+Z2V0TWFwKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCI+RHluYUFjdGlvbkZvcm08L0E+Cis8REQ+UmV0dXJucyB0aGUgPGNvZGU+TWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBwcm9wZXJ0eSB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0TWFwcGluZygpIj48Qj5nZXRNYXBwaW5nKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPkdldCB0aGUgQWN0aW9uTWFwcGluZyBpbnN0YW5jZSBmb3IgdGhpcyByZXF1ZXN0Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldE1hcHBpbmcoKSI+PEI+Z2V0TWFwcGluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+UmV0cmlldmVzIHRoZSBhY3Rpb24gbWFwcGluZyB3aXRoIHdoaWNoIHRoaXMgaGFuZGxlciBpcyBhc3NvY2lhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRNYXBwaW5nKCkiPjxCPmdldE1hcHBpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2dldE1hcHBpbmcoKSI+PEI+Z2V0TWFwcGluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+U3RydXRzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRNYXBwaW5nKCkiPjxCPmdldE1hcHBpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPlRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5BY3Rpb25NYXBwaW5nPC9jb2RlPgorIGluc3RhbmNlIGZvciB0aGlzIHJlcXVlc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldE1hcHBpbmcoKSI+PEI+Z2V0TWFwcGluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPlRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5BY3Rpb25NYXBwaW5nPC9jb2RlPgorIGluc3RhbmNlIGZvciB0aGlzIHJlcXVlc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNnZXRNYXJnaW5oZWlnaHQoKSI+PEI+Z2V0TWFyZ2luaGVpZ2h0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPkZyYW1lVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjZ2V0TWFyZ2lud2lkdGgoKSI+PEI+Z2V0TWFyZ2lud2lkdGgoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCI+RnJhbWVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNnZXRNYXhGaWxlU2l6ZSgpIj48Qj5nZXRNYXhGaWxlU2l6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRNYXhsZW5ndGgoKSI+PEI+Z2V0TWF4bGVuZ3RoKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBtYXhpbXVtIGxlbmd0aCBhbGxvd2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZ2V0TWF4TGVuZ3RoKCkiPjxCPmdldE1heExlbmd0aCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNnZXRNYXhTaXplKCkiPjxCPmdldE1heFNpemUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5HZXQgdGhlIG1heGltdW0gcG9zdCBkYXRhIHNpemUgYWxsb3dlZCBmb3IgYSBtdWx0aXBhcnQgcmVxdWVzdAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRNYXhTaXplKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRNYXhTaXplKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5HZXRzIHRoZSBtYXhpbXVtIHBvc3QgZGF0YSBzaXplIGluIGJ5dGVzIGZyb20gdGhlIHN0cmluZworIHJlcHJlc2VudGF0aW9uIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNnZXRNZW1GaWxlU2l6ZSgpIj48Qj5nZXRNZW1GaWxlU2l6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCNnZXRNZXNzYWdlKCkiPjxCPmdldE1lc3NhZ2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIj5NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjZ2V0TWVzc2FnZSgpIj48Qj5nZXRNZXNzYWdlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCNnZXRNZXNzYWdlKCkiPjxCPmdldE1lc3NhZ2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT4KKzxERD5SZXR1cm4gYSBkZXRhaWwgbWVzc2FnZSBmb3IgdGhpcyBleGNlcHRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNFeGNlcHRpb24uaHRtbCNnZXRNZXNzYWdlKCkiPjxCPmdldE1lc3NhZ2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNFeGNlcHRpb24uaHRtbCI+VGlsZXNFeGNlcHRpb248L0E+Cis8REQ+UmV0dXJuIGEgZGV0YWlsIG1lc3NhZ2UgZm9yIHRoaXMgZXhjZXB0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCNnZXRNZXNzYWdlKCkiPjxCPmdldE1lc3NhZ2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TWVzc2FnZXNQcmVzZW50VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZ2V0TWVzc2FnZSgpIj48Qj5nZXRNZXNzYWdlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPk1lc3NhZ2VzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRNZXNzYWdlKEh0dHBTZXJ2bGV0UmVxdWVzdCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwiPlJlc291cmNlczwvQT4KKzxERD5HZXRzIHRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHNlbnNpdGl2ZSB2YWx1ZSBiYXNlZCBvbiB0aGUga2V5IHBhc3NlZCBpbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCNnZXRNZXNzYWdlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRNZXNzYWdlKEh0dHBTZXJ2bGV0UmVxdWVzdCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwiPlN0cnV0c1ZhbGlkYXRvclV0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7R2V0cyB0aGUgPGNvZGU+TG9jYWxlPC9jb2RlPiBzZW5zaXRpdmUgdmFsdWUgYmFzZWQgb24gdGhlIGtleSBwYXNzZWQgaW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRNZXNzYWdlKExvY2FsZSwgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGZvciB0aGUgZGVmYXVsdCBMb2NhbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0TWVzc2FnZShMb2NhbGUsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGZvciB0aGUgZGVmYXVsdCBMb2NhbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+Z2V0TWVzc2FnZShMb2NhbGUsIFN0cmluZywgT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj48Qj5nZXRNZXNzYWdlKExvY2FsZSwgU3RyaW5nLCBPYmplY3RbXSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjxCPmdldE1lc3NhZ2UoTG9jYWxlLCBTdHJpbmcsIE9iamVjdCwgT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+Z2V0TWVzc2FnZShMb2NhbGUsIFN0cmluZywgT2JqZWN0LCBPYmplY3QsIE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjxCPmdldE1lc3NhZ2UoTG9jYWxlLCBTdHJpbmcsIE9iamVjdCwgT2JqZWN0LCBPYmplY3QsIE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZykiPjxCPmdldE1lc3NhZ2UoTWVzc2FnZVJlc291cmNlcywgTG9jYWxlLCBTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCI+UmVzb3VyY2VzPC9BPgorPEREPkdldHMgdGhlIDxjb2RlPkxvY2FsZTwvY29kZT4gc2Vuc2l0aXZlIHZhbHVlIGJhc2VkIG9uIHRoZSBrZXkgcGFzc2VkIGluLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI2dldE1lc3NhZ2Uob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzLCBqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0TWVzc2FnZShNZXNzYWdlUmVzb3VyY2VzLCBMb2NhbGUsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sIj5TdHJ1dHNWYWxpZGF0b3JVdGlsPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0dldHMgdGhlIDxjb2RlPkxvY2FsZTwvY29kZT4gc2Vuc2l0aXZlIHZhbHVlIGJhc2VkIG9uIHRoZSBrZXkgcGFzc2VkIGluLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj48Qj5nZXRNZXNzYWdlKE1lc3NhZ2VSZXNvdXJjZXMsIExvY2FsZSwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sIj5SZXNvdXJjZXM8L0E+Cis8REQ+R2V0cyB0aGUgbG9jYWxlIHNlbnNpdGl2ZSBtZXNzYWdlIGJhc2VkIG9uIHRoZSA8Y29kZT5WYWxpZGF0b3JBY3Rpb248L2NvZGU+IG1lc3NhZ2UgYW5kIHRoZQorIDxjb2RlPkZpZWxkPC9jb2RlPidzIGFyZyBvYmplY3RzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI2dldE1lc3NhZ2Uob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzLCBqYXZhLnV0aWwuTG9jYWxlLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPjxCPmdldE1lc3NhZ2UoTWVzc2FnZVJlc291cmNlcywgTG9jYWxlLCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwiPlN0cnV0c1ZhbGlkYXRvclV0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sI2dldE1lc3NhZ2Uob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzLCBqYXZhLnV0aWwuTG9jYWxlLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPjxDT0RFPlJlc291cmNlcy5nZXRNZXNzYWdlKE1lc3NhZ2VSZXNvdXJjZXMsIExvY2FsZSwgVmFsaWRhdG9yQWN0aW9uICwgRmllbGQpPC9DT0RFPjwvQT48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0TWVzc2FnZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBmb3IgdGhlIGRlZmF1bHQgTG9jYWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRNZXNzYWdlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5SZXR1cm4gdGhlIGxvY2FsaXplZCBtZXNzYWdlIGZvciB0aGUgc3BlY2lmaWVkIGtleSwKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRNZXNzYWdlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+Cis8REQ+UmV0dXJuIHRoZSBsb2NhbGl6ZWQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZCBrZXksCisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48Qj5nZXRNZXNzYWdlKFN0cmluZywgT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj48Qj5nZXRNZXNzYWdlKFN0cmluZywgT2JqZWN0W10pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj48Qj5nZXRNZXNzYWdlKFN0cmluZywgT2JqZWN0W10pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+TG9vayB1cCBhbmQgcmV0dXJuIGEgbWVzc2FnZSBzdHJpbmcsIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj48Qj5nZXRNZXNzYWdlKFN0cmluZywgT2JqZWN0W10pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPkxvb2sgdXAgYW5kIHJldHVybiBhIG1lc3NhZ2Ugc3RyaW5nLCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+Z2V0TWVzc2FnZShTdHJpbmcsIE9iamVjdCwgT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+Z2V0TWVzc2FnZShTdHJpbmcsIE9iamVjdCwgT2JqZWN0LCBPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48Qj5nZXRNZXNzYWdlKFN0cmluZywgT2JqZWN0LCBPYmplY3QsIE9iamVjdCwgT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldE1lc3NhZ2VSZXNvdXJjZXMoKSI+PEI+Z2V0TWVzc2FnZVJlc291cmNlcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+VGhlIGFwcGxpY2F0aW9uIHJlc291cmNlcyBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0TWVzc2FnZVJlc291cmNlcygpIj48Qj5nZXRNZXNzYWdlUmVzb3VyY2VzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+Cis8REQ+VGhlIGFwcGxpY2F0aW9uIHJlc291cmNlcyBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZVJlc291cmNlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+Z2V0TWVzc2FnZVJlc291cmNlcyhIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCI+UmVzb3VyY2VzPC9BPgorPEREPlJldHJpZXZlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGZvciB0aGUgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI2dldE1lc3NhZ2VSZXNvdXJjZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPmdldE1lc3NhZ2VSZXNvdXJjZXMoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwiPlN0cnV0c1ZhbGlkYXRvclV0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0cmlldmUgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gZm9yIHRoZSBhcHBsaWNhdGlvbiBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sI2dldE1lc3NhZ2VSZXNvdXJjZXMoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPmdldE1lc3NhZ2VSZXNvdXJjZXMoU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCI+UmVzb3VyY2VzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlRoaXMgbWV0aG9kIGNhbiBvbmx5IHJldHVybiB0aGUgcmVzb3VyY2VzIGZvciB0aGUgZGVmYXVsdAorICBtb2R1bGUuICBVc2UgZ2V0TWVzc2FnZVJlc291cmNlcyhIdHRwU2VydmxldFJlcXVlc3QpIHRvIGdldCB0aGUKKyAgcmVzb3VyY2VzIGZvciB0aGUgY3VycmVudCBtb2R1bGUuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI2dldE1lc3NhZ2VSZXNvdXJjZXMoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPmdldE1lc3NhZ2VSZXNvdXJjZXMoU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCI+U3RydXRzVmFsaWRhdG9yVXRpbDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5UaGlzIG1ldGhvZCBjYW4gb25seSByZXR1cm4gdGhlIHJlc291cmNlcyBmb3IgdGhlIGRlZmF1bHQKKyAgbW9kdWxlLiAgVXNlIGdldE1lc3NhZ2VSZXNvdXJjZXMoSHR0cFNlcnZsZXRSZXF1ZXN0KSB0byBnZXQgdGhlCisgIHJlc291cmNlcyBmb3IgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gbW9kdWxlLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlUmVzb3VyY2VzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRNZXNzYWdlUmVzb3VyY2VzKFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPkNyZWF0ZSBhbmQgcmV0dXJuIGFuIGluc3RhbmNlIG9mIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGZvciB0aGUKKyBjcmVhdGVkIGJ5IHRoZSBkZWZhdWx0IDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRNZXRob2QoKSI+PEI+Z2V0TWV0aG9kKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI2dldE1ldGhvZCgpIj48Qj5nZXRNZXRob2QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9BPgorPEREPkdldHMgdGhlIG1ldGhvZCBuYW1lIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgSmF2YXNjcmlwdAorIHZhbGlkYXRpb24gbWV0aG9kIG5hbWUgaWYgaXQgaGFzIGEgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldE1ldGhvZCgpIj48Qj5nZXRNZXRob2QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybiB0aGUgcmVxdWVzdCBtZXRob2QgdXNlZCB3aGVuIHN1Ym1pdHRpbmcgdGhpcyBmb3JtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCNnZXRNZXRob2QoamF2YS5sYW5nLlN0cmluZykiPjxCPmdldE1ldGhvZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCI+RGlzcGF0Y2hBY3Rpb248L0E+Cis8REQ+SW50cm9zcGVjdCB0aGUgY3VycmVudCBjbGFzcyB0byBpZGVudGlmeSBhIG1ldGhvZCBvZiB0aGUgc3BlY2lmaWVkCisgbmFtZSB0aGF0IGFjY2VwdHMgdGhlIHNhbWUgcGFyYW1ldGVyIHR5cGVzIGFzIHRoZSA8Y29kZT5leGVjdXRlPC9jb2RlPgorIG1ldGhvZCBkb2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2dldE1vZHVsZUNvbmZpZygpIj48Qj5nZXRNb2R1bGVDb25maWcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4KKzxERD5SZXR1cm4gdGhlIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4gd2l0aCB3aGljaCB0aGlzIGZvcm0gYmVhbiBkZWZpbml0aW9uCisgaXMgYXNzb2NpYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0TW9kdWxlQ29uZmlnKCkiPjxCPmdldE1vZHVsZUNvbmZpZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+VGhlIG1vZHVsZSBjb25maWd1cmF0aW9uIHdpdGggd2hpY2ggd2UgYXJlIGFzc29jaWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRNb2R1bGVDb25maWcoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPmdldE1vZHVsZUNvbmZpZyhIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5SZXR1cm4gdGhlIG1vZHVsZSBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhlIGN1cnJlbnRseSBzZWxlY3RlZAorIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2dldE1vZHVsZUNvbmZpZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+Z2V0TW9kdWxlQ29uZmlnKEh0dHBTZXJ2bGV0UmVxdWVzdCwgU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+UmV0dXJuIHRoZSBNb2R1bGVDb25maWcgb2JqZWN0IGlzIGl0IGV4aXN0cywgbnVsbCBvdGhlcndpc2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCNnZXRNb2R1bGVDb25maWcoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPmdldE1vZHVsZUNvbmZpZyhIdHRwU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCI+VGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGw8L0E+Cis8REQ+R2V0IHRoZSBjdXJyZW50IE1vZHVsZUNvbmZpZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2dldE1vZHVsZUNvbmZpZyhqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjxCPmdldE1vZHVsZUNvbmZpZyhQYWdlQ29udGV4dCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5SZXR1cm4gdGhlIE1vZHVsZUNvbmZpZyBvYmplY3QgaWYgaXQgZXhpc3RzLCBudWxsIGlmIG90aGVyd2lzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2dldE1vZHVsZU5hbWUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPmdldE1vZHVsZU5hbWUoSHR0cFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5HZXQgdGhlIG1vZHVsZSBuYW1lIHRvIHdoaWNoIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBiZWxvbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRNb2R1bGVOYW1lKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5nZXRNb2R1bGVOYW1lKFN0cmluZywgU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+R2V0IHRoZSBtb2R1bGUgbmFtZSB0byB3aGljaCB0aGUgc3BlY2lmaWVkIHVyaSBiZWxvbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRNb2R1bGVQcmVmaXhlcyhqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+Z2V0TW9kdWxlUHJlZml4ZXMoU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+UmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZSBwcmVmaXhlcyB0aGF0IGFyZSBkZWZpbmVkIGZvcgorIHRoaXMgd2ViIGFwcGxpY2F0aW9uLCBjcmVhdGluZyBpdCBpZiBuZWNlc3NhcnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldE11bHRpcGFydENsYXNzKCkiPjxCPmdldE11bHRpcGFydENsYXNzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5SZXR1cm4gdGhlIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlCisgPGNvZGU+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L2NvZGU+IGltcGxlbWVudGF0aW9uIGNsYXNzIHVzZWQgdG8KKyBwcm9jZXNzIG11bHRpLXBhcnQgcmVxdWVzdCBkYXRhIGZvciB0aGlzIEFjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI2dldE11bHRpcGFydENsYXNzKCkiPjxCPmdldE11bHRpcGFydENsYXNzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjZ2V0TXVsdGlwYXJ0SGFuZGxlcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+Z2V0TXVsdGlwYXJ0SGFuZGxlcihIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+VHJ5IHRvIGxvY2F0ZSBhIG11bHRpcGFydCByZXF1ZXN0IGhhbmRsZXIgZm9yIHRoaXMgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI2dldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyKCkiPjxCPmdldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPgorPEREPlJldHVybiB0aGUgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgZm9yIHRoaXMgZm9ybQorIFRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMgaXMgdG8gZ2l2ZSBmb3JtIGJlYW4gZGV2ZWxvcGVycworIGNvbnRyb2wgb3ZlciB0aGUgbGlmZWN5Y2xlIG9mIHRoZWlyIG11bHRpcGFydCByZXF1ZXN0cworIHRocm91Z2ggdGhlIHVzZSBvZiB0aGUgZmluaXNoKCkgYW5kL29yIHJvbGxiYWNrKCkgbWV0aG9kcworIG9mIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcigpIj48Qj5nZXRNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+VGhlIG11bHRpcGFydCBvYmplY3QgZm9yIHRoaXMgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIoKSI+PEI+Z2V0TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT4KKzxERD5UaGUgbXVsdGlwYXJ0IG9iamVjdCBmb3IgdGhpcyByZXF1ZXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2dldE11bHRpcGxlKCkiPjxCPmdldE11bHRpcGxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjZ2V0TXVsdGlwbGUoKSI+PEI+Z2V0TXVsdGlwbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPlBhcmFtZXRlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNnZXRNdWx0aXBsZSgpIj48Qj5nZXRNdWx0aXBsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI2dldE11bHRpcGxlKCkiPjxCPmdldE11bHRpcGxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIj5Db29raWVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+UmV0cmlldmUgdGhlIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8REQ+QWNjZXNzIG1ldGhvZCBmb3IgdGhlIG5hbWUgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj5YbWxBdHRyaWJ1dGU8L0E+Cis8REQ+QWNjZXNzIG1ldGhvZCBmb3IgdGhlIG5hbWUgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+Cis8REQ+R2V0IHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCI+R2V0QXR0cmlidXRlVGFnPC9BPgorPEREPkdldCBOYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPkdldCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCI+SW1wb3J0QXR0cmlidXRlVGFnPC9BPgorPEREPkdldCB0aGUgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwiPlVzZUF0dHJpYnV0ZVRhZzwvQT4KKzxERD5HZXQgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5HZXQgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sIj5OZXN0ZWRSb290VGFnPC9BPgorPEREPkdldHRlciBtZXRob2QgZm9yIHRoZSA8aT5uYW1lPC9pPiBwcm9wZXJ0eQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5VGFnLmh0bWwiPk5lc3RlZFByb3BlcnR5VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4KKzxERD5UaGUgZ2V0dGVycyBhbmQgc2V0dGVycyByZXF1aXJlZCB0byBzZXQgYSB0YWdzIDxpPm5hbWU8L2k+IHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sIj5Gb3J3YXJkVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPk1lc3NhZ2VzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPk11bHRpYm94VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybiB0aGUgYXR0cmlidXRlIGtleSBuYW1lIG9mIG91ciBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPlJlc291cmNlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+UGFyYW1ldGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+Q29va2llVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2dldE5hbWUoKSI+PEI+Z2V0TmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPlJldHVybiBuYW1lIG9mIHRoZSBmb3JtIGJlYW4sIGlmIGFueSwgYXNzb2NpYXRlZCB3aXRoIHRoaXMgQWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCNnZXROYW1lKCkiPjxCPmdldE5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjZ2V0TmFtZSgpIj48Qj5nZXROYW1lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sIj5EeW5hQWN0aW9uRm9ybUNsYXNzPC9BPgorPEREPlJldHVybiB0aGUgbmFtZSBvZiB0aGlzIER5bmFDbGFzcyAoYW5hbG9nb3VzIHRvIHRoZQorIDxjb2RlPmdldE5hbWUoKTwvY29kZT4gbWV0aG9kIG9mIDxjb2RlPmphdmEubGFuZy5DbGFzczwvY29kZSksIHdoaWNoCisgYWxsb3dzIHRoZSBzYW1lIDxjb2RlPkR5bmFDbGFzczwvY29kZT4gaW1wbGVtZW50YXRpb24gY2xhc3MgdG8gc3VwcG9ydAorIGRpZmZlcmVudCBkeW5hbWljIGNsYXNzZXMsIHdpdGggZGlmZmVyZW50IHNldHMgb2YgcHJvcGVydGllcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFBhcmVudFN1cHBvcnQuaHRtbCNnZXROZXN0ZWRQcm9wZXJ0eSgpIj48Qj5nZXROZXN0ZWRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFBhcmVudFN1cHBvcnQuaHRtbCI+TmVzdGVkUGFyZW50U3VwcG9ydDwvQT4KKzxERD5UaGlzIGlzIHJlcXVpcmVkIGJ5IGFsbCBwYXJlbnQgdGFncyBzbyB0aGF0IHRoZSBjaGlsZCB0YWdzIGNhbiBnZXQgYSBob2xkCisgb2YgdGhlaXIgbmVzdGVkIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUmVmZXJlbmNlLmh0bWwjZ2V0TmVzdGVkUHJvcGVydHkoKSI+PEI+Z2V0TmVzdGVkUHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj5OZXN0ZWRSZWZlcmVuY2U8L0E+Cis8REQ+R2V0dGVyIGZvciB0aGUgbmVzdGVkIHByb3BlcnR5Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjZ2V0TmV4dEVsZW1lbnQoKSI+PEI+Z2V0TmV4dEVsZW1lbnQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5SZXRyaWV2ZXMgdGhlIG5leHQgZWxlbWVudCBpbiB0aGUgaXRlcmF0b3IgaWYgb25lIGV4aXN0cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZ2V0TmV4dFZhcihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0TmV4dFZhcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+VGhlIHZhbHVlIDxjb2RlPm51bGw8L2NvZGU+IHdpbGwgYmUgcmV0dXJuZWQgYXQgdGhlIGVuZCBvZiB0aGUgc2VxdWVuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNnZXROb2NhY2hlKCkiPjxCPmdldE5vY2FjaGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNnZXROb3Jlc2l6ZSgpIj48Qj5nZXROb3Jlc2l6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj5GcmFtZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sI2dldE51bGwoKSI+PEI+Z2V0TnVsbCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldE9mZnNldCgpIj48Qj5nZXRPZmZzZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmJsdXIoKSI+PEI+Z2V0T25ibHVyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uQmx1ciBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+PEI+Z2V0T25jaGFuZ2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgb25DaGFuZ2UgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+PEI+Z2V0T25jbGljaygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBvbkNsaWNrIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmRibGNsaWNrKCkiPjxCPmdldE9uZGJsY2xpY2soKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgb25EYmxDbGljayBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj48Qj5nZXRPbmZvY3VzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uRm9jdXMgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj48Qj5nZXRPbmtleWRvd24oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgb25LZXlEb3duIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPjxCPmdldE9ua2V5cHJlc3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgb25LZXlQcmVzcyBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj48Qj5nZXRPbmtleXVwKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uS2V5VXAgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vkb3duKCkiPjxCPmdldE9ubW91c2Vkb3duKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uTW91c2VEb3duIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlbW92ZSgpIj48Qj5nZXRPbm1vdXNlbW92ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBvbk1vdXNlTW92ZSBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW91dCgpIj48Qj5nZXRPbm1vdXNlb3V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uTW91c2VPdXQgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPjxCPmdldE9ubW91c2VvdmVyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uTW91c2VPdmVyIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+PEI+Z2V0T25tb3VzZXVwKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIG9uTW91c2VVcCBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRPbnJlc2V0KCkiPjxCPmdldE9ucmVzZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybiB0aGUgb25SZXNldCBldmVudCBzY3JpcHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj48Qj5nZXRPbnNlbGVjdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBvblNlbGVjdCBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRPbnN1Ym1pdCgpIj48Qj5nZXRPbnN1Ym1pdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBvblN1Ym1pdCBldmVudCBzY3JpcHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2dldE9yQ3JlYXRlQ29udHJvbGxlcigpIj48Qj5nZXRPckNyZWF0ZUNvbnRyb2xsZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPgorPEREPkdldCBvciBjcmVhdGUgY29udHJvbGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCNnZXRPcmRlcigpIj48Qj5nZXRPcmRlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtLmh0bWwiPkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRPcmlnUmVmKCkiPjxCPmdldE9yaWdSZWYoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPlJlbmRlcnMgdGhlIHJlZmVyZW5jZSBmb3IgYSBIVE1MIDxiYXNlPiBlbGVtZW50Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldE9yaWdSZWYoKSI+PEI+Z2V0T3JpZ1JlZigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPlJlbmRlcnMgdGhlIHJlZmVyZW5jZSBmb3IgYSBIVE1MIDxiYXNlPiBlbGVtZW50Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNnZXRQYWdlKCkiPjxCPmdldFBhZ2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwiPlZhbGlkYXRvckZvcm08L0E+Cis8REQ+R2V0cyBwYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI2dldFBhZ2UoKSI+PEI+Z2V0UGFnZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JGb3JtPC9BPgorPEREPkdldHMgcGFnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjZ2V0UGFnZSgpIj48Qj5nZXRQYWdlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5BY2Nlc3MgbWV0aG9kIGZvciB0aGUgcGF0aCBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNnZXRQYWdlKCkiPjxCPmdldFBhZ2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIj5EZWZpbml0aW9uVGFnU3VwcG9ydDwvQT4KKzxERD5HZXQgdGhlIHBhZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjZ2V0UGFnZSgpIj48Qj5nZXRQYWdlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI2dldFBhZ2UoKSI+PEI+Z2V0UGFnZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+R2V0cyB0aGUgY3VycmVudCBwYWdlIG51bWJlciBvZiBhIG11bHRpLXBhcnQgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UGFnZSgpIj48Qj5nZXRQYWdlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldFBhZ2UoKSI+PEI+Z2V0UGFnZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRQYWdlKCkiPjxCPmdldFBhZ2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjZ2V0UGFnZSgpIj48Qj5nZXRQYWdlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZ2V0UGFnZUNvbnRleHQoKSI+PEI+Z2V0UGFnZUNvbnRleHQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPkdldCB0aGUgcGFnZUNvbnRleHQgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNnZXRQYWdlS2V5KCkiPjxCPmdldFBhZ2VLZXkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0UGFnZUtleSgpIj48Qj5nZXRQYWdlS2V5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNnZXRQYWdlUGF0dGVybigpIj48Qj5nZXRQYWdlUGF0dGVybigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPjxCPmdldFBhcmFtZXRlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFBhcmFtZXRlcigpIj48Qj5nZXRQYXJhbWV0ZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPlJldHVybiBnZW5lcmFsIHB1cnBvc2UgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBwYXNzCisgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIEFjdGlvbiBpbnN0YW5jZSBzZWxlY3RlZCBieSB0aGlzIEFjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sI2dldFBhcmFtZXRlcigpIj48Qj5nZXRQYXJhbWV0ZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5nZXRQYXJhbWV0ZXIoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD5BdHRlbXB0cyB0byBnZXQgYSBwYXJhbWV0ZXIgZm9yIHRoaXMgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRQYXJhbWV0ZXJNYXAoKSI+PEI+Z2V0UGFyYW1ldGVyTWFwKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+VGhpcyBtZXRob2QgcmV0dXJucyBudWxsLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFBhcmFtZXRlck5hbWVzKCkiPjxCPmdldFBhcmFtZXRlck5hbWVzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+UmV0dXJucyB0aGUgbmFtZXMgb2YgdGhlIHBhcmFtZXRlcnMgZm9yIHRoaXMgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRQYXJhbWV0ZXJWYWx1ZXMoamF2YS5sYW5nLlN0cmluZykiPjxCPmdldFBhcmFtZXRlclZhbHVlcyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldFBhcmFtSWQoKSI+PEI+Z2V0UGFyYW1JZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYXJhbUlkKCkiPjxCPmdldFBhcmFtSWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFBhcmFtSWQoKSI+PEI+Z2V0UGFyYW1JZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldFBhcmFtTmFtZSgpIj48Qj5nZXRQYXJhbU5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UGFyYW1OYW1lKCkiPjxCPmdldFBhcmFtTmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0UGFyYW1OYW1lKCkiPjxCPmdldFBhcmFtTmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldFBhcmFtUHJvcGVydHkoKSI+PEI+Z2V0UGFyYW1Qcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYXJhbVByb3BlcnR5KCkiPjxCPmdldFBhcmFtUHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFBhcmFtUHJvcGVydHkoKSI+PEI+Z2V0UGFyYW1Qcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldFBhcmFtU2NvcGUoKSI+PEI+Z2V0UGFyYW1TY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYXJhbVNjb3BlKCkiPjxCPmdldFBhcmFtU2NvcGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFBhcmFtU2NvcGUoKSI+PEI+Z2V0UGFyYW1TY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI2dldFBhcnNlckRlYnVnTGV2ZWwoKSI+PEI+Z2V0UGFyc2VyRGVidWdMZXZlbCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjb21tb25zLWxvZ2dpbmcgbWVjaGFuaXNtLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNnZXRQYXJzZXJWYWxpZGF0ZSgpIj48Qj5nZXRQYXJzZXJWYWxpZGF0ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPgorPEREPkRldGVybWluZXMgaWYgdGhlIHBhcnNlciBpcyB2YWxpZGF0aW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNnZXRQYXRoKCkiPjxCPmdldFBhdGgoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPgorPEREPkFjY2VzcyBtZXRob2QgZm9yIHRoZSBwYXRoIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNnZXRQYXRoKCkiPjxCPmdldFBhdGgoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRQYXRoKCkiPjxCPmdldFBhdGgoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPlJldHVybiBjb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHN1Ym1pdHRlZCByZXF1ZXN0LCBzdGFydGluZyB3aXRoIGEKKyBzbGFzaCAoIi8iKSBjaGFyYWN0ZXIsIGFuZCBvbWl0dGluZyBhbnkgZmlsZW5hbWUgZXh0ZW5zaW9uIGlmCisgZXh0ZW5zaW9uIG1hcHBpbmcgaXMgYmVpbmcgdXNlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2dldFBhdGgoKSI+PEI+Z2V0UGF0aCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRQYXRoSW5mbygpIj48Qj5nZXRQYXRoSW5mbygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCNnZXRQYXRobmFtZXMoKSI+PEI+Z2V0UGF0aG5hbWVzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwiPlZhbGlkYXRvclBsdWdJbjwvQT4KKzxERD5HZXRzIGEgY29tbWEgZGVsaW1pdHRlZCBsaXN0IG9mIFZhbGlkYXRvciByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UGF0aFRyYW5zbGF0ZWQoKSI+PEI+Z2V0UGF0aFRyYW5zbGF0ZWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCNnZXRQcmVmaXgoKSI+PEI+Z2V0UHJlZml4KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9UZXh0VGFnLmh0bWwiPlRleHRUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2dldFByZWZpeCgpIj48Qj5nZXRQcmVmaXgoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5UaGUgcHJlZml4IG9mIHRoZSBjb250ZXh0LXJlbGF0aXZlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgVVJJLCB1c2VkIHRvCisgc2VsZWN0IHRoaXMgY29uZmlndXJhdGlvbiB2ZXJzdXMgb3RoZXJzIHN1cHBvcnRlZCBieSB0aGUgY29udHJvbGxlcgorIHNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFByZWZpeCgpIj48Qj5nZXRQcmVmaXgoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPlJldHJ1bnMgcHJlZml4IHVzZWQgdG8gbWF0Y2ggcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZXMgdG8gZm9ybSBiZWFuIHByb3BlcnR5CisgbmFtZXMsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZ2V0UHJlZml4KCkiPjxCPmdldFByZWZpeCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+VGhlIHByZWZpeCBvZiB0aGUgY29udGV4dC1yZWxhdGl2ZSBwb3J0aW9uIG9mIHRoZSByZXF1ZXN0IFVSSSwgdXNlZCB0bworIHNlbGVjdCB0aGlzIGNvbmZpZ3VyYXRpb24gdmVyc3VzIG90aGVycyBzdXBwb3J0ZWQgYnkgdGhlIGNvbnRyb2xsZXIKKyBzZXJ2bGV0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjZ2V0UHJvY2Vzc29yQ2xhc3MoKSI+PEI+Z2V0UHJvY2Vzc29yQ2xhc3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sI2dldFByb3BlcnRpZXMoKSI+PEI+Z2V0UHJvcGVydGllcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj5QbHVnSW5Db25maWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0aWVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNvbmZpZ3VyZSBhCisgPGNvZGU+UGx1Z0luPC9jb2RlPiBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sI2dldFByb3BlcnRpZXMoKSI+PEI+Z2V0UHJvcGVydGllcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+TW9kdWxlRXhjZXB0aW9uPC9BPgorPEREPlJldHVybnMgdGhlIHByb3BlcnR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZXhjZXB0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiPkF0dHJpYnV0ZVRvU2NvcGVUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sIj5OZXN0ZWRXcml0ZU5lc3RpbmdUYWc8L0E+Cis8REQ+R2V0dGVyIG1ldGhvZCBmb3IgdGhlIDxpPnByb3BlcnR5PC9pPiBwcm9wZXJ0eQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSb290VGFnLmh0bWwiPk5lc3RlZFJvb3RUYWc8L0E+Cis8REQ+R2V0dGVyIG1ldGhvZCBmb3IgdGhlIDxpPnByb3BlcnR5PC9pPiBwcm9wZXJ0eQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCI+TmVzdGVkUHJvcGVydHlUYWc8L0E+Cis8REQ+R2V0dGVyIG1ldGhvZCBmb3IgdGhlIDxpPnByb3BlcnR5PC9pPiBwcm9wZXJ0eQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPgorPEREPlRoZSBnZXR0ZXJzIGFuZCBzZXR0ZXJzIHJlcXVpcmVkIHRvIHNldCBhIHRhZ3MgPGk+cHJvcGVydHk8L2k+IHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwiPk5lc3RlZEZvcm1UYWc8L0E+Cis8REQ+R2V0IHRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlICJwcm9wZXJ0eSIgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlJldHVybiB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPk1lc3NhZ2VzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIj5DYW5jZWxUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj5DaGVja2JveFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlJldHVybiB0aGUgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwiPkJ1dHRvblRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIj5SZXNldFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGZpZWxkIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj48Qj5nZXRQcm9wZXJ0eSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2dldFByb3BlcnR5KCkiPjxCPmdldFByb3BlcnR5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+U2l6ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+PEI+Z2V0UHJvcGVydHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sIj5QYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwjZ2V0UHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPjxCPmdldFByb3BlcnR5KE9iamVjdCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwiPlRhZ1V0aWxzPC9BPgorPEREPlJldHVybiB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sCisgbm8gbWF0dGVyIHdoaWNoIHByb3BlcnR5IHJlZmVyZW5jZSBmb3JtYXQgaXMgdXNlZCwgd2l0aCBubworIHR5cGUgY29udmVyc2lvbnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UHJvdG9jb2woKSI+PEI+Z2V0UHJvdG9jb2woKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRRdWVyeVN0cmluZygpIj48Qj5nZXRRdWVyeVN0cmluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlYWRlcigpIj48Qj5nZXRSZWFkZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFJlYWRvbmx5KCkiPjxCPmdldFJlYWRvbmx5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIHJlYWRvbmx5IGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UmVhbFBhdGgoamF2YS5sYW5nLlN0cmluZykiPjxCPmdldFJlYWxQYXRoKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2dldFJlYWxWYWx1ZSgpIj48Qj5nZXRSZWFsVmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPkdldCByZWFsIHZhbHVlIGFjY29yZGluZyB0byB0YWcgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNnZXRSZWFsVmFsdWVGcm9tQmVhbigpIj48Qj5nZXRSZWFsVmFsdWVGcm9tQmVhbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+RXh0cmFjdCByZWFsIHZhbHVlIGZyb20gc3BlY2lmaWVkIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCNnZXRSZWFsVmFsdWVGcm9tQmVhbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjxCPmdldFJlYWxWYWx1ZUZyb21CZWFuKFN0cmluZywgU3RyaW5nLCBTdHJpbmcsIFBhZ2VDb250ZXh0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwiPlRhZ1V0aWxzPC9BPgorPEREPkxvY2F0ZSBhbmQgcmV0dXJuIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZCBiZWFuLCBmcm9tCisgYW4gb3B0aW9uYWxseSBzcGVjaWZpZWQgc2NvcGUsIGluIHRoZSBzcGVjaWZpZWQgcGFnZSBjb250ZXh0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjZ2V0UmVkaXJlY3QoKSI+PEI+Z2V0UmVkaXJlY3QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0UmVkaXNwbGF5KCkiPjxCPmdldFJlZGlzcGxheSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlbW90ZUFkZHIoKSI+PEI+Z2V0UmVtb3RlQWRkcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlbW90ZUhvc3QoKSI+PEI+Z2V0UmVtb3RlSG9zdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlbW90ZVVzZXIoKSI+PEI+Z2V0UmVtb3RlVXNlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRSZXBvc2l0b3J5UGF0aChvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PEI+Z2V0UmVwb3NpdG9yeVBhdGgoTW9kdWxlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPlJldHVybnMgdGhlIHBhdGggdG8gdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gYmUgdXNlZCBmb3IgdXBsb2FkZWQKKyBmaWxlcyB3aGljaCBhcmUgd3JpdHRlbiB0byBkaXNrLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlcXVlc3QoKSI+PEI+Z2V0UmVxdWVzdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPlJldHVybnMgdGhlIHVuZGVybHlpbmcgSHR0cFNlcnZsZXRSZXF1ZXN0IGZvciB0aGlzIHdyYXBwZXIKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRSZXF1ZXN0RGlzcGF0Y2hlcihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0UmVxdWVzdERpc3BhdGNoZXIoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRSZXF1ZXN0ZWRTZXNzaW9uSWQoKSI+PEI+Z2V0UmVxdWVzdGVkU2Vzc2lvbklkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRSZXF1ZXN0TW9kdWxlQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5nZXRSZXF1ZXN0TW9kdWxlQ29uZmlnKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5SZXR1cm4gdGhlIGN1cnJlbnQgTW9kdWxlQ29uZmlnIG9iamVjdCBzdG9yZWQgaW4gcmVxdWVzdCwgaWYgaXQgZXhpc3RzLAorIG51bGwgb3RoZXJ3aXNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwjZ2V0UmVxdWVzdFByb2Nlc3NvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+Z2V0UmVxdWVzdFByb2Nlc3NvcihIdHRwU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCI+VGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGw8L0E+Cis8REQ+R2V0IFRpbGVzIFJlcXVlc3RQcm9jZXNzb3IgYXNzb2NpYXRlZCB0byB0aGUgY3VycmVudCBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRSZXF1ZXN0UHJvY2Vzc29yKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48Qj5nZXRSZXF1ZXN0UHJvY2Vzc29yKE1vZHVsZUNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkxvb2sgdXAgYW5kIHJldHVybiB0aGUgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+PENPREU+UmVxdWVzdFByb2Nlc3NvcjwvQ09ERT48L0E+IHJlc3BvbnNpYmxlIGZvciB0aGUKKyBzcGVjaWZpZWQgbW9kdWxlLCBjcmVhdGluZyBhIG5ldyBvbmUgaWYgbmVjZXNzYXJ5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlcXVlc3RVUkkoKSI+PEI+Z2V0UmVxdWVzdFVSSSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlcXVlc3RVUkwoKSI+PEI+Z2V0UmVxdWVzdFVSTCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgbnVsbC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldFJlc291cmNlcygpIj48Qj5nZXRSZXNvdXJjZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QWN0aW9ucyBzaG91bGQgY2FsbCBBY3Rpb24uZ2V0UmVzb3VyY2VzKEh0dHBTZXJ2bGV0UmVxdWVzdCkKKyAgaW5zdGVhZCBvZiB0aGlzIG1ldGhvZCwgaW4gb3JkZXIgdG8gcmV0cmlldmUgdGhlIHJlc291cmNlcyBmb3IgdGhlCisgIGN1cnJlbnQgbW9kdWxlLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKCkiPjxCPmdldFJlc291cmNlcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBtZXRob2QgY2FuIG9ubHkgcmV0dXJuIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0CisgIG1vZHVsZS4gIFVzZSBnZXRSZXNvdXJjZXMoSHR0cFNlcnZsZXRSZXF1ZXN0KSB0byBnZXQgdGhlCisgIHJlc291cmNlcyBmb3IgdGhlIGN1cnJlbnQgbW9kdWxlLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5nZXRSZXNvdXJjZXMoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPlJldHVybiB0aGUgZGVmYXVsdCBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhlIGN1cnJlbnQgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPjxCPmdldFJlc291cmNlcyhIdHRwU2VydmxldFJlcXVlc3QsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD5SZXR1cm4gdGhlIHNwZWNpZmllZCBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhlIGN1cnJlbnQgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwjZ2V0UmVzdWx0VmFsdWVNYXAoKSI+PEI+Z2V0UmVzdWx0VmFsdWVNYXAoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwiPlZhbGlkYXRvckZvcm08L0E+Cis8REQ+UmV0dXJucyBhIDxjb2RlPk1hcDwvY29kZT4gb2YgdmFsdWVzIHJldHVybmVkCisgZnJvbSBhbnkgdmFsaWRhdGlvbiB0aGF0IHJldHVybnMgYSB2YWx1ZSBvdGhlciB0aGFuCisgPGNvZGU+bnVsbDwvY29kZT4gb3IgPGNvZGU+Qm9vbGVhbjwvY29kZT4gd2l0aCB0aGUKKyBrZXkgdGhlIGZ1bGwgcHJvcGVydHkgcGF0aCBvZiB0aGUgZmllbGQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwjZ2V0UmVzdWx0VmFsdWVNYXAoKSI+PEI+Z2V0UmVzdWx0VmFsdWVNYXAoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sIj5EeW5hVmFsaWRhdG9yRm9ybTwvQT4KKzxERD5SZXR1cm5zIGEgPGNvZGU+TWFwPC9jb2RlPiBvZiB2YWx1ZXMgcmV0dXJuZWQKKyBmcm9tIGFueSB2YWxpZGF0aW9uIHRoYXQgcmV0dXJucyBhIHZhbHVlIG90aGVyIHRoYW4KKyA8Y29kZT5udWxsPC9jb2RlPiBvciA8Y29kZT5Cb29sZWFuPC9jb2RlPiB3aXRoIHRoZQorIGtleSB0aGUgZnVsbCBwcm9wZXJ0eSBwYXRoIG9mIHRoZSBmaWVsZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjZ2V0UmV0dXJuTnVsbCgpIj48Qj5nZXRSZXR1cm5OdWxsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4KKzxERD5HZXQgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgInJldHVybk51bGwiIHByb3BlcnR5IHVzZWQgdG8gaW5pdGlhbGl6ZSBuZXdseSBjcmVhdGVkCisgTWVzc2FnZVJlc291cmNlc3MuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0UmV0dXJuTnVsbCgpIj48Qj5nZXRSZXR1cm5OdWxsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+SW5kaWNhdGVzIHRoYXQgYSA8Y29kZT5udWxsPC9jb2RlPiBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mIGFuIGVycm9yIG1lc3NhZ2Ugc3RyaW5nCisgaWYgYW4gdW5rbm93biBMb2NhbGUgb3Iga2V5IGlzIHJlcXVlc3RlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI2dldFJvbGUoKSI+PEI+Z2V0Um9sZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj5VbnR5cHBlZEF0dHJpYnV0ZTwvQT4KKzxERD5HZXQgcm9sZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjZ2V0Um9sZSgpIj48Qj5nZXRSb2xlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5BY2Nlc3MgbWV0aG9kIGZvciB0aGUgcm9sZSBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI2dldFJvbGUoKSI+PEI+Z2V0Um9sZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwiPlhtbEF0dHJpYnV0ZTwvQT4KKzxERD5BY2Nlc3MgbWV0aG9kIGZvciB0aGUgbmFtZSBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sI2dldFJvbGUoKSI+PEI+Z2V0Um9sZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT4KKzxERD5HZXQgcm9sZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sI2dldFJvbGUoKSI+PEI+Z2V0Um9sZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIj5HZXRBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+R2V0IHJvbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2dldFJvbGUoKSI+PEI+Z2V0Um9sZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+R2V0IHJvbGUgYXR0cmlidXRlCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjZ2V0Um9sZSgpIj48Qj5nZXRSb2xlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+Cis8REQ+R2V0IGFzc29jaWF0ZWQgcm9sZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjZ2V0Um9sZSgpIj48Qj5nZXRSb2xlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI2dldFJvbGUoKSI+PEI+Z2V0Um9sZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPjxCPmdldFJvbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRSb2xlTmFtZXMoKSI+PEI+Z2V0Um9sZU5hbWVzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5HZXQgYXJyYXkgb2Ygc2VjdXJpdHkgcm9sZSBuYW1lcyB1c2VkIHRvIGF1dGhvcml6ZSBhY2Nlc3MgdG8gdGhpcworIEFjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0Um9sZXMoKSI+PEI+Z2V0Um9sZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFJvd3MoKSI+PEI+Z2V0Um93cygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlJldHVybiB0aGUgbnVtYmVyIG9mIHJvd3MgZm9yIHRoaXMgZmllbGQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0U2NoZW1lKCkiPjxCPmdldFNjaGVtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwjZ2V0U2NvcGUoKSI+PEI+Z2V0U2NvcGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPkRlZmluaXRpb25UYWc8L0E+Cis8REQ+R2V0IHRoZSBzY29wZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwjZ2V0U2NvcGUoKSI+PEI+Z2V0U2NvcGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCI+SW1wb3J0QXR0cmlidXRlVGFnPC9BPgorPEREPkdldCBzY29wZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwjZ2V0U2NvcGUoKSI+PEI+Z2V0U2NvcGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCI+VXNlQXR0cmlidXRlVGFnPC9BPgorPEREPkdldCBzY29wZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldFNjb3BlKCkiPjxCPmdldFNjb3BlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRTY29wZSgpIj48Qj5nZXRTY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjZ2V0U2NvcGUoKSI+PEI+Z2V0U2NvcGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0U2NvcGUoKSI+PEI+Z2V0U2NvcGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFNjb3BlKCkiPjxCPmdldFNjb3BlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldFNjb3BlKCkiPjxCPmdldFNjb3BlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGF0dHJpYnV0ZSBzY29wZSBvZiBvdXIgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNnZXRTY29wZSgpIj48Qj5nZXRTY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNnZXRTY29wZSgpIj48Qj5nZXRTY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNnZXRTY29wZSgpIj48Qj5nZXRTY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjZ2V0U2NvcGUoKSI+PEI+Z2V0U2NvcGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNnZXRTY29wZSgpIj48Qj5nZXRTY29wZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFNjb3BlKCkiPjxCPmdldFNjb3BlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5HZXQgdGhlIHNjb3BlICgicmVxdWVzdCIgb3IgInNlc3Npb24iKSB3aXRoaW4gd2hpY2gKKyBvdXIgZm9ybSBiZWFuIGlzIGFjY2Vzc2VkLCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+Z2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPkNvbnZlcnRzIHRoZSBzY29wZSBuYW1lIGludG8gaXRzIGNvcnJlc3BvbmRpbmcgUGFnZUNvbnRleHQgY29uc3RhbnQgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCNnZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj48Qj5nZXRTY29wZShTdHJpbmcsIGludCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9UYWdVdGlscy5odG1sIj5UYWdVdGlsczwvQT4KKzxERD5HZXQgc2NvcGUgdmFsdWUgZnJvbSBzdHJpbmcgdmFsdWUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI2dldFNjcm9sbGluZygpIj48Qj5nZXRTY3JvbGxpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCI+RnJhbWVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sI2dldFNlcnZlcigpIj48Qj5nZXRTZXJ2ZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sIj5CYXNlVGFnPC9BPgorPEREPlJldHVybnMgdGhlIHNlcnZlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRTZXJ2ZXJOYW1lKCkiPjxCPmdldFNlcnZlck5hbWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRTZXJ2ZXJQb3J0KCkiPjxCPmdldFNlcnZlclBvcnQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRTZXJ2bGV0KCkiPjxCPmdldFNlcnZsZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+R2V0IHRoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldFNlcnZsZXQoKSI+PEI+Z2V0U2VydmxldCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+UmV0cmlldmVzIHRoZSBzZXJ2bGV0IHdpdGggd2hpY2ggdGhpcyBoYW5kbGVyIGlzIGFzc29jaWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldFNlcnZsZXQoKSI+PEI+Z2V0U2VydmxldCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNnZXRTZXJ2bGV0KCkiPjxCPmdldFNlcnZsZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Cis8REQ+UmV0dXJuIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRTZXJ2bGV0KCkiPjxCPmdldFNlcnZsZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPlJldHVybiB0aGUgY29udHJvbGxlciBzZXJ2bGV0IGluc3RhbmNlIHRvIHdoaWNoIHdlIGFyZSBhdHRhY2hlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNnZXRTZXJ2bGV0KCkiPjxCPmdldFNlcnZsZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5BY3Rpb25NYXBwaW5nczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+IGluc3RhbmNlIG9mIG91ciBvd25pbmcKKyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2dldFNlcnZsZXRDb250ZXh0KCkiPjxCPmdldFNlcnZsZXRDb250ZXh0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPlJldHVybiB0aGUgU2VydmxldENvbnRleHQgZm9yIHRoZSB3ZWIgYXBwbGljYXRpb24gd2UgYXJlIHJ1bm5pbmcgaW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldFNlcnZsZXRNYXBwaW5nKCkiPjxCPmdldFNlcnZsZXRNYXBwaW5nKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5UaGUgcGF0aC1tYXBwZWQgcGF0dGVybiAoPGNvZGU+L2FjdGlvbi8qPC9jb2RlPikgb3IKKyBleHRlbnNpb24gbWFwcGVkIHBhdHRlcm4gKCg8Y29kZT4qLmRvPC9jb2RlPikKKyB1c2VkIHRvIGRldGVybWluZSBvdXIgQWN0aW9uIFVSSXMgaW4gdGhpcyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0U2VydmxldE1hcHBpbmcoKSI+PEI+Z2V0U2VydmxldE1hcHBpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT4KKzxERD5UaGUgcGF0aC1tYXBwZWQgcGF0dGVybiAoPGNvZGU+L2FjdGlvbi8qPC9jb2RlPikgb3IKKyBleHRlbnNpb24gbWFwcGVkIHBhdHRlcm4gKCg8Y29kZT4qLmRvPC9jb2RlPikKKyB1c2VkIHRvIGRldGVybWluZSBvdXIgQWN0aW9uIFVSSXMgaW4gdGhpcyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRTZXJ2bGV0UGF0aCgpIj48Qj5nZXRTZXJ2bGV0UGF0aCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjZ2V0U2VydmxldFdyYXBwZXIoKSI+PEI+Z2V0U2VydmxldFdyYXBwZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Cis8REQ+UmV0dXJuIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFNlc3Npb24oKSI+PEI+Z2V0U2Vzc2lvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFNlc3Npb24oYm9vbGVhbikiPjxCPmdldFNlc3Npb24oYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwjZ2V0U2l6ZSgpIj48Qj5nZXRTaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwiPkVycm9yTWVzc2FnZXM8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBudW1iZXIgb2YgZXJyb3IgbWVzc2FnZSBrZXlzIHdlIGhhdmUgYWNjdW11bGF0ZWQgc28gZmFyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2dldFNpemUoKSI+PEI+Z2V0U2l6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFNpemUoKSI+PEI+Z2V0U2l6ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlJldHVybiB0aGUgc2l6ZSBvZiB0aGlzIGZpZWxkIChzeW5vbnltIGZvciA8Y29kZT5nZXRDb2xzKCk8L2NvZGU+KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwjZ2V0U2l6ZSgpIj48Qj5nZXRTaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0U2l6ZU1heChvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PEI+Z2V0U2l6ZU1heChNb2R1bGVDb25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+UmV0dXJucyB0aGUgbWF4aW11bSBhbGxvd2FibGUgc2l6ZSwgaW4gYnl0ZXMsIG9mIGFuIHVwbG9hZGVkIGZpbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldFNpemVUaHJlc2hvbGQob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjxCPmdldFNpemVUaHJlc2hvbGQoTW9kdWxlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPlJldHVybnMgdGhlIHNpemUgdGhyZXNob2xkIHdoaWNoIGRldGVybWluZXMgd2hldGhlciBhbiB1cGxvYWRlZCBmaWxlCisgd2lsbCBiZSB3cml0dGVuIHRvIGRpc2sgb3IgY2FjaGVkIGluIG1lbW9yeS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZ2V0U3JjKCkiPjxCPmdldFNyYygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+R2V0cyB0aGUgc3JjIGF0dHJpYnV0ZSdzIHZhbHVlIHdoZW4gZGVmaW5pbmcKKyB0aGUgaHRtbCBzY3JpcHQgZWxlbWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldFNyYygpIj48Qj5nZXRTcmMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0U3JjKCkiPjxCPmdldFNyYygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZ2V0U3JjS2V5KCkiPjxCPmdldFNyY0tleSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRTcmNLZXkoKSI+PEI+Z2V0U3JjS2V5KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcFN0YWNrLmh0bWwjZ2V0U3RhY2soamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj48Qj5nZXRTdGFjayhQYWdlQ29udGV4dCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCI+Q29udGVudE1hcFN0YWNrPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZ2V0U3RhcnRFbGVtZW50KCkiPjxCPmdldFN0YXJ0RWxlbWVudCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+Q29uc3RydWN0cyB0aGUgYmVnaW5uaW5nICZsdDtzY3JpcHQmZ3Q7IGVsZW1lbnQgZGVwZW5kaW5nIG9uIHhodG1sIHN0YXR1cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZ2V0U3RhdGljSmF2YXNjcmlwdCgpIj48Qj5nZXRTdGF0aWNKYXZhc2NyaXB0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4KKzxERD5HZXRzIHdoZXRoZXIgb3Igbm90IHRvIGdlbmVyYXRlIHRoZSBzdGF0aWMKKyBKYXZhU2NyaXB0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXRTdHlsZSgpIj48Qj5nZXRTdHlsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNnZXRTdHlsZSgpIj48Qj5nZXRTdHlsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5PcHRpb25zQ29sbGVjdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPjxCPmdldFN0eWxlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIHN0eWxlIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0U3R5bGUoKSI+PEI+Z2V0U3R5bGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybiB0aGUgc3R5bGUgYXR0cmlidXRlIGZvciB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNnZXRTdHlsZSgpIj48Qj5nZXRTdHlsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPjxCPmdldFN0eWxlQ2xhc3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj48Qj5nZXRTdHlsZUNsYXNzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj48Qj5nZXRTdHlsZUNsYXNzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIHN0eWxlIGNsYXNzIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj48Qj5nZXRTdHlsZUNsYXNzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHN0eWxlIGNsYXNzIGZvciB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPjxCPmdldFN0eWxlQ2xhc3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+PEI+Z2V0U3R5bGVJZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZXR1cm5zIHRoZSBzdHlsZSBpZCBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldFN0eWxlSWQoKSI+PEI+Z2V0U3R5bGVJZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBzdHlsZSBpZGVudGlmaWVyIGZvciB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNnZXRTdHlsZUlkKCkiPjxCPmdldFN0eWxlSWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIHN0eWxlIGlkZW50aWZpZXIgZm9yIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRTdWZmaXgoKSI+PEI+Z2V0U3VmZml4KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5SZXR1cm4gc3VmZml4IHVzZWQgdG8gbWF0Y2ggcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZXMgdG8gZm9ybSBiZWFuIHByb3BlcnR5CisgbmFtZXMsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRhYmluZGV4KCkiPjxCPmdldFRhYmluZGV4KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlJldHVybnMgdGhlIHRhYkluZGV4IHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRUYWcuaHRtbCI+PEI+R2V0VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+LjxERD5UaGlzIGlzIHRoZSB0YWcgaGFuZGxlciBmb3IgJmx0O3RpbGVzOmdldCZndDssIHdoaWNoIGdldHMKKyBjb250ZW50IGZyb20gdGhlIHJlcXVlc3Qgc2NvcGUgYW5kIGVpdGhlciBpbmNsdWRlcyB0aGUgY29udGVudCBvciBwcmludHMKKyBpdCwgZGVwZW5kaW5nIHVwb24gdGhlIHZhbHVlIG9mIHRoZSBjb250ZW50J3MgPGNvZGU+ZGlyZWN0PC9jb2RlPiBhdHRyaWJ1dGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCI+PEI+R2V0VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+LjxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRUYWcuaHRtbCNHZXRUYWcoKSI+PEI+R2V0VGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0VGFnLmh0bWwiPkdldFRhZzwvQT4KKzxERD5Db25zdHJ1Y3Rvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjR2V0VGFnKCkiPjxCPkdldFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFRhcmdldCgpIj48Qj5nZXRUYXJnZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCNnZXRUYXJnZXQoKSI+PEI+Z2V0VGFyZ2V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0VGFyZ2V0KCkiPjxCPmdldFRhcmdldCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSB3aW5kb3cgdGFyZ2V0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjZ2V0VGVtcERpcigpIj48Qj5nZXRUZW1wRGlyKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNnZXRUZW1wbGF0ZSgpIj48Qj5nZXRUZW1wbGF0ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8REQ+QWNjZXNzIG1ldGhvZCBmb3IgdGhlIHRlbXBsYXRlIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI2dldFRlbXBsYXRlKCkiPjxCPmdldFRlbXBsYXRlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+Cis8REQ+R2V0IHRoZSB0ZW1wbGF0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjZ2V0VGVtcGxhdGUoKSI+PEI+Z2V0VGVtcGxhdGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRUZXh0RWxlbWVudHMoKSI+PEI+Z2V0VGV4dEVsZW1lbnRzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0byByZXRyaWV2ZSBhbGwgdGhlIHRleHQKKyBpbnB1dCBlbGVtZW50cyBvZiB0aGUgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0VGV4dEVsZW1lbnRzKCkiPjxCPmdldFRleHRFbGVtZW50cygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+UmV0dXJucyBhIGhhc2ggdGFibGUgY29udGFpbmluZyB0aGUgdGV4dCAodGhhdCBpcywgbm9uLWZpbGUpIHJlcXVlc3QKKyBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRUZXh0RWxlbWVudHMoKSI+PEI+Z2V0VGV4dEVsZW1lbnRzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNnZXRUaWxlc1V0aWwoKSI+PEI+Z2V0VGlsZXNVdGlsKCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCI+VGlsZXNVdGlsPC9BPgorPEREPkdldCB0aGUgcmVhbCBpbXBsZW1lbnRhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sI2dldFRpbGVzVXRpbEltcGxDbGFzc25hbWUoKSI+PEI+Z2V0VGlsZXNVdGlsSW1wbENsYXNzbmFtZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sIj5UaWxlc1BsdWdpbjwvQT4KKzxERD5HZXQgVGlsZXMgdXRpbCBpbXBsZW1lbnRpb24gY2xhc3NuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+PEI+Z2V0VGl0bGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgYWR2aXNvcnkgdGl0bGUgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGVLZXkoKSI+PEI+Z2V0VGl0bGVLZXkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJucyB0aGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhZHZpc29yeSB0aXRsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0VG9rZW4oKSI+PEI+Z2V0VG9rZW4oKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPlRoZSB0cmFuc2FjdGlvbiB0b2tlbiBzdG9yZWQgaW4gdGhpcyBzZXNzaW9uLCBpZiBpdCBpcyB1c2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRUb2tlbigpIj48Qj5nZXRUb2tlbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPgorPEREPlRoZSB0cmFuc2FjdGlvbiB0b2tlbiBzdG9yZWQgaW4gdGhpcyBzZXNzaW9uLCBpZiBpdCBpcyB1c2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwjZ2V0VG9vbHRpcCgpIj48Qj5nZXRUb29sdGlwKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwiPlNpbXBsZU1lbnVJdGVtPC9BPgorPEREPkdldCB0b29sdGlwIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwjZ2V0VG9vbHRpcCgpIj48Qj5nZXRUb29sdGlwKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sIj5NZW51SXRlbTwvQT4KKzxERD5HZXQgdG9vbHRpcCBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNnZXRUb1Njb3BlKCkiPjxCPmdldFRvU2NvcGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXRUcmFuc2FjdGlvbigpIj48Qj5nZXRUcmFuc2FjdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRUcmFuc2FjdGlvbigpIj48Qj5nZXRUcmFuc2FjdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2dldFRyYW5zYWN0aW9uKCkiPjxCPmdldFRyYW5zYWN0aW9uKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjZ2V0VHlwZSgpIj48Qj5nZXRUeXBlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5HZXQgdHlwZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldFR5cGUoKSI+PEI+Z2V0VHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0VHlwZSgpIj48Qj5nZXRUeXBlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIEphdmEgY2xhc3Mgb2Ygb3VyIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZ2V0VHlwZSgpIj48Qj5nZXRUeXBlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjZ2V0VHlwZSgpIj48Qj5nZXRUeXBlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI2dldFR5cGUoKSI+PEI+Z2V0VHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFR5cGUoKSI+PEI+Z2V0VHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sI2dldFR5cGUoKSI+PEI+Z2V0VHlwZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj5Gb3JtUHJvcGVydHlDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCNnZXRUeXBlKCkiPjxCPmdldFR5cGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sI2dldFR5cGVDbGFzcygpIj48Qj5nZXRUeXBlQ2xhc3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPgorPEREPlJldHVybiBhIENsYXNzIGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZQorIDxjb2RlPnR5cGU8L2NvZGU+IHByb3BlcnR5LCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSB0cmFpbGluZyAiW10iCisgZm9yIGFycmF5cyAoYXMgd2VsbCBhcyB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IHByaW1pdGl2ZSBKYXZhIHR5cGVzKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0VW5rbm93bigpIj48Qj5nZXRVbmtub3duKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5EZXRlcm1pbmUgd2hldGhlciBBY3Rpb24gaXMgY29uZmlndXJlZCBhcyB0aGUgZGVmYXVsdCBvbmUgZm9yIHRoaXMKKyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNnZXRVbmtub3duKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5nZXRVbmtub3duKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBBY3Rpb24gdGhhdCBzaG91bGQgaGFuZGxlIHVua25vd24gcmVxdWVzdCBwYXRocywgaWYgYW55LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI2dldFVua25vd24oamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPjxCPmdldFVua25vd24oU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgQWN0aW9uIHRoYXQgc2hvdWxkIGhhbmRsZSB1bmtub3duIHJlcXVlc3QgcGF0aHMsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRVc2VtYXAoKSI+PEI+Z2V0VXNlbWFwKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+PEI+Z2V0VXNlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0VXNlclByaW5jaXBhbCgpIj48Qj5nZXRVc2VyUHJpbmNpcGFsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFZhbGlkYXRlKCkiPjxCPmdldFZhbGlkYXRlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjZ2V0VmFsaWRhdG9yUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5nZXRWYWxpZGF0b3JSZXNvdXJjZXMoU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCI+UmVzb3VyY2VzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkluIFN0cnV0cyAxLjEgVGhpcyBtZXRob2QgY2FuIG9ubHkgcmV0dXJuIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0CisgIG1vZHVsZS4gIFVzZSBnZXRWYWxpZGF0b3JSZXNvdXJjZXMoSHR0cFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCkKKyAgdG8gZ2V0IHRoZSByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIG1vZHVsZS48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjZ2V0VmFsaWRhdG9yUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5nZXRWYWxpZGF0b3JSZXNvdXJjZXMoU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCI+U3RydXRzVmFsaWRhdG9yVXRpbDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5JbiBTdHJ1dHMgMS4xIFRoaXMgbWV0aG9kIGNhbiBvbmx5IHJldHVybiB0aGUgcmVzb3VyY2VzIGZvciB0aGUgZGVmYXVsdAorICBtb2R1bGUuICBVc2UgZ2V0VmFsaWRhdG9yUmVzb3VyY2VzKEh0dHBTZXJ2bGV0UmVxdWVzdCwgU2VydmxldENvbnRleHQpCisgIHRvIGdldCB0aGUgcmVzb3VyY2VzIGZvciB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBtb2R1bGUuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRWYWxpZGF0b3JSZXNvdXJjZXMoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPmdldFZhbGlkYXRvclJlc291cmNlcyhTZXJ2bGV0Q29udGV4dCwgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwiPlJlc291cmNlczwvQT4KKzxERD5SZXRyaWV2ZSA8Y29kZT5WYWxpZGF0b3JSZXNvdXJjZXM8L2NvZGU+IGZvciB0aGUgY3VycmVudCBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjZ2V0VmFsaWRhdG9yUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5nZXRWYWxpZGF0b3JSZXNvdXJjZXMoU2VydmxldENvbnRleHQsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sIj5TdHJ1dHNWYWxpZGF0b3JVdGlsPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHJpZXZlIDxjb2RlPlZhbGlkYXRvclJlc291cmNlczwvY29kZT4gZm9yIHRoZSBjdXJyZW50IG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sI2dldFZhbGlkYXRvclJlc3VsdHMoKSI+PEI+Z2V0VmFsaWRhdG9yUmVzdWx0cygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCI+VmFsaWRhdG9yRm9ybTwvQT4KKzxERD5HZXQgcmVzdWx0cyBvZiB0aGUgdmFsaWRhdGlvbiBwZXJmb3JtZWQgYnkgdGhlCisgPGNvZGU+VmFsaWRhdG9yPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCNnZXRWYWxpZGF0b3JSZXN1bHRzKCkiPjxCPmdldFZhbGlkYXRvclJlc3VsdHMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sIj5EeW5hVmFsaWRhdG9yRm9ybTwvQT4KKzxERD5HZXQgcmVzdWx0cyBvZiB0aGUgdmFsaWRhdGlvbiBwZXJmb3JtZWQgYnkgdGhlCisgPGNvZGU+VmFsaWRhdG9yPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwiPkxhYmVsVmFsdWVCZWFuPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+UmV0dXJucyB0aGUgdmFsdWUgb2YgdGhpcyBtdWx0aXBhcnQgZWxlbWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwiPlVudHlwcGVkQXR0cmlidXRlPC9BPgorPEREPkdldCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCI+QXR0cmlidXRlRGVmaW5pdGlvbjwvQT4KKzxERD5SZXR1cm4gdmFsdWUgaG9sZCBieSB0aGlzIHR5cGVkIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCI+WG1sQXR0cmlidXRlPC9BPgorPEREPkFjY2VzcyBtZXRob2QgZm9yIHRoZSB2YWx1ZSBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwiPlNpbXBsZU1lbnVJdGVtPC9BPgorPEREPkdldCB2YWx1ZSBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sIj5NZW51SXRlbTwvQT4KKzxERD5HZXQgdmFsdWUgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5HZXQgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNnZXRWYWx1ZSgpIj48Qj5nZXRWYWx1ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGNvbXBhcmlzb24gdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGxhYmVsIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBzZXJ2ZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGZpZWxkIHZhbHVlIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBzZXJ2ZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGxhYmVsIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBsYWJlbCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPlJldHVybiB0aGUgbGFiZWwgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPlJldHVybiB0aGUgc2VydmVyIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjZ2V0VmFsdWUoKSI+PEI+Z2V0VmFsdWUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPlBhcmFtZXRlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNnZXRWYWx1ZSgpIj48Qj5nZXRWYWx1ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI2dldFZhbHVlKCkiPjxCPmdldFZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIj5Db29raWVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCNnZXRWYWx1ZXMoKSI+PEI+Z2V0VmFsdWVzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj5BY3Rpb25NZXNzYWdlPC9BPgorPEREPkdldCB0aGUgcmVwbGFjZW1lbnQgdmFsdWVzIGZvciB0aGlzIG1lc3NhZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPjxCPmdldFZhcmlhYmxlSW5mbyhUYWdEYXRhKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUZWkuaHRtbCI+VXNlQXR0cmlidXRlVGVpPC9BPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPjxCPmdldFZhcmlhYmxlSW5mbyhUYWdEYXRhKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUZWkuaHRtbCI+TmVzdGVkSXRlcmF0ZVRlaTwvQT4KKzxERD5SZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PEI+Z2V0VmFyaWFibGVJbmZvKFRhZ0RhdGEpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRlaS5odG1sIj5OZXN0ZWREZWZpbmVUZWk8L0E+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCNnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48Qj5nZXRWYXJpYWJsZUluZm8oVGFnRGF0YSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sIj5JdGVyYXRlVGVpPC9BPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PEI+Z2V0VmFyaWFibGVJbmZvKFRhZ0RhdGEpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RlaS5odG1sIj5NZXNzYWdlc1RlaTwvQT4KKzxERD5SZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PEI+Z2V0VmFyaWFibGVJbmZvKFRhZ0RhdGEpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwiPlNpemVUZWk8L0E+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PEI+Z2V0VmFyaWFibGVJbmZvKFRhZ0RhdGEpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUZWkuaHRtbCI+UGFyYW1ldGVyVGVpPC9BPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUZWkuaHRtbCNnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48Qj5nZXRWYXJpYWJsZUluZm8oVGFnRGF0YSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUZWkuaHRtbCI+UGFnZVRlaTwvQT4KKzxERD5SZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PEI+Z2V0VmFyaWFibGVJbmZvKFRhZ0RhdGEpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGVpLmh0bWwiPkluY2x1ZGVUZWk8L0E+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PEI+Z2V0VmFyaWFibGVJbmZvKFRhZ0RhdGEpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUZWkuaHRtbCI+SGVhZGVyVGVpPC9BPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPjxCPmdldFZhcmlhYmxlSW5mbyhUYWdEYXRhKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGVpLmh0bWwiPlN0cnV0c1RlaTwvQT4KKzxERD5SZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUZWkuaHRtbCNnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48Qj5nZXRWYXJpYWJsZUluZm8oVGFnRGF0YSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRlaS5odG1sIj5EZWZpbmVUZWk8L0E+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUZWkuaHRtbCNnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48Qj5nZXRWYXJpYWJsZUluZm8oVGFnRGF0YSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwiPlJlc291cmNlVGVpPC9BPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPjxCPmdldFZhcmlhYmxlSW5mbyhUYWdEYXRhKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGVpLmh0bWwiPkNvb2tpZVRlaTwvQT4KKzxERD5SZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRWc3BhY2UoKSI+PEI+Z2V0VnNwYWNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0V2lkdGgoKSI+PEI+Z2V0V2lkdGgoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCNnZXRXcml0ZSgpIj48Qj5nZXRXcml0ZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+SGlkZGVuVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSW1hZ2VCdXR0b25CZWFuLmh0bWwjZ2V0WCgpIj48Qj5nZXRYKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCI+SW1hZ2VCdXR0b25CZWFuPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNnZXRYaHRtbCgpIj48Qj5nZXRYaHRtbCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPkh0bWxUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCNnZXRZKCkiPjxCPmdldFkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sIj5JbWFnZUJ1dHRvbkJlYW48L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sI0dMT0JBTF9FUlJPUiI+PEI+R0xPQkFMX0VSUk9SPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Cis8REQ+VGhlICJwcm9wZXJ0eSBuYW1lIiBtYXJrZXIgdG8gdXNlIGZvciBnbG9iYWwgZXJyb3JzLCBhcyBvcHBvc2VkIHRvCisgdGhvc2UgcmVsYXRlZCB0byBhIHNwZWNpZmljIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI0dMT0JBTF9NRVNTQUdFIj48Qj5HTE9CQUxfTUVTU0FHRTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT4KKzxERD5UaGUgInByb3BlcnR5IG5hbWUiIG1hcmtlciB0byB1c2UgZm9yIGdsb2JhbCBtZXNzYWdlcywgYXMgb3Bwb3NlZCB0bworIHRob3NlIHJlbGF0ZWQgdG8gYSBzcGVjaWZpYyBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwiPjxCPkdsb2JhbHM8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCI+R2xvYmFsczwvQT4uPEREPkdsb2JhbCBtYW5pZmVzdCBjb25zdGFudHMgZm9yIHRoZSBlbnRpcmUgU3RydXRzIEZyYW1ld29yay48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0dsb2JhbHMoKSI+PEI+R2xvYmFscygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwiPkdsb2JhbHM8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIj48Qj5HcmVhdGVyRXF1YWxUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwiPkdyZWF0ZXJFcXVhbFRhZzwvQT4uPEREPkV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sI0dyZWF0ZXJFcXVhbFRhZygpIj48Qj5HcmVhdGVyRXF1YWxUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbCI+R3JlYXRlckVxdWFsVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIj48Qj5HcmVhdGVyVGhhblRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIj5HcmVhdGVyVGhhblRhZzwvQT4uPEREPkV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBncmVhdGVyIHRoYW4gdGhlIHNwZWNpZmllZCB2YWx1ZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwjR3JlYXRlclRoYW5UYWcoKSI+PEI+R3JlYXRlclRoYW5UYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIj5HcmVhdGVyVGhhblRhZzwvQT4KKzxERD4mbmJzcDsKKzwvREw+Cis8SFI+Cis8QSBOQU1FPSJfSF8iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPkg8L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2hhbmRsZUNvbmZpZ0V4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuRXhjZXB0aW9uKSI+PEI+aGFuZGxlQ29uZmlnRXhjZXB0aW9uKFN0cmluZywgRXhjZXB0aW9uKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+U2ltcGxpZmllcyBleGNlcHRpb24gaGFuZGxpbmcgaW4gdGhlIHBhcnNlTW9kdWxlQ29uZmlnRmlsZSgpIG1ldGhvZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjaGFuZGxlciI+PEI+aGFuZGxlcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyIGNsYXNzCisgd2hpY2ggc2hvdWxkIGJlIGluc3RhbnRpYXRlZCB0byBoYW5kbGUgdGhpcyBleGNlcHRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjaGFuZGxlUmVxdWVzdChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+aGFuZGxlUmVxdWVzdChIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5BZnRlciBjb25zdHJ1Y3RlZCwgdGhpcyBpcyB0aGUgZmlyc3QgbWV0aG9kIGNhbGxlZCBvbgorIGJ5IEFjdGlvblNlcnZsZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2hhbmRsZVJlcXVlc3QoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPmhhbmRsZVJlcXVlc3QoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPlBhcnNlcyB0aGUgaW5wdXQgc3RyZWFtIGFuZCBwYXJ0aXRpb25zIHRoZSBwYXJzZWQgaXRlbXMgaW50byBhIHNldCBvZgorIGZvcm0gZmllbGRzIGFuZCBhIHNldCBvZiBmaWxlIGl0ZW1zLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNoYW5kbGVSZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5oYW5kbGVSZXF1ZXN0KEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5UaGlzIG1ldGhvZCBwb3B1bGF0ZXMgdGhlIGludGVybmFsIGhhc2h0YWJsZXMgd2l0aCBtdWx0aXBhcnQgcmVxdWVzdCBkYXRhLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNoYXNCb2R5KCkiPjxCPmhhc0JvZHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sI2hhc05leHQoKSI+PEI+aGFzTmV4dCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwiPkl0ZXJhdG9yQWRhcHRlcjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9FbXB0eUl0ZXJhdG9yLmh0bWwjaGFzTmV4dCgpIj48Qj5oYXNOZXh0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0VtcHR5SXRlcmF0b3IuaHRtbCI+RW1wdHlJdGVyYXRvcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj48Qj5oZWFkZXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBIVFRQIHJlcXVlc3QgaGVhZGVyIHRvIGJlIHVzZWQgYXMgYSB2YXJpYWJsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2hlYWRlciI+PEI+aGVhZGVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPk1lc3NhZ2VzVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlIGtleSBmb3IgZXJyb3JzIGhlYWRlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNIRUFERVJfQ09OVEVOVF9ESVNQT1NJVElPTiI+PEI+SEVBREVSX0NPTlRFTlRfRElTUE9TSVRJT048L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIENvbnRlbnQtRGlzcG9zaXRpb24gaGVhZGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI0hFQURFUl9DT05URU5UX1RZUEUiPjxCPkhFQURFUl9DT05URU5UX1RZUEU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjSEVBREVSX0VOQ09ESU5HIj48Qj5IRUFERVJfRU5DT0RJTkc8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPjxCPkhlYWRlclRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPkhlYWRlclRhZzwvQT4uPEREPkRlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSBiYXNlZCBvbiB0aGUgdmFsdWUocykgb2YgdGhlIHNwZWNpZmllZAorIGhlYWRlciByZWNlaXZlZCB3aXRoIHRoaXMgcmVxdWVzdC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjSGVhZGVyVGFnKCkiPjxCPkhlYWRlclRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sIj48Qj5IZWFkZXJUZWk8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sIj5IZWFkZXJUZWk8L0E+LjxERD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+aGVhZGVyPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUZWkuaHRtbCNIZWFkZXJUZWkoKSI+PEI+SGVhZGVyVGVpKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sIj5IZWFkZXJUZWk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjaGVpZ2h0Ij48Qj5oZWlnaHQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5UaGUgaW1hZ2UgaGVpZ2h0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj48Qj5IaWRkZW5UYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj5IaWRkZW5UYWc8L0E+LjxERD5DdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiaGlkZGVuIi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwjSGlkZGVuVGFnKCkiPjxCPkhpZGRlblRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+SGlkZGVuVGFnPC9BPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNocmVmIj48Qj5ocmVmPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+VGhlIHJlZGlyZWN0IFVSSS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjaHJlZiI+PEI+aHJlZjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+VGhlIGh5cGVybGluayBVUkkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2hyZWYiPjxCPmhyZWY8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPlRoZSBhYnNvbHV0ZSBVUkwgdG8gdGhlIHJlc291cmNlIHRvIGJlIGluY2x1ZGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2hzcGFjZSI+PEI+aHNwYWNlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+VGhlIGhvcml6b250YWwgc3BhY2luZyBhcm91bmQgdGhlIGltYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNodG1sQmVnaW5Db21tZW50Ij48Qj5odG1sQmVnaW5Db21tZW50PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjaHRtbENvbW1lbnQiPjxCPmh0bWxDb21tZW50PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4KKzxERD5UaGUgSmF2YVNjcmlwdCBtZXRob2RzIHdpbGwgZW5jbG9zZWQgd2l0aCBodG1sIGNvbW1lbnRzIGlmIHRoaXMgaXMgc2V0IHRvICJ0cnVlIi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjaHRtbEVuZENvbW1lbnQiPjxCPmh0bWxFbmRDb21tZW50PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPjxCPkh0bWxUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCI+SHRtbFRhZzwvQT4uPEREPlJlbmRlcnMgYW4gSFRNTCA8aHRtbD4gZWxlbWVudCB3aXRoIGFwcHJvcHJpYXRlIGxhbmd1YWdlIGF0dHJpYnV0ZXMgaWYKKyB0aGVyZSBpcyBhIGN1cnJlbnQgTG9jYWxlIGF2YWlsYWJsZSBpbiB0aGUgdXNlcidzIHNlc3Npb24uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNIdG1sVGFnKCkiPjxCPkh0bWxUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sIj5IdG1sVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNIVFRQX1NFUlZMRVRfUkVRVUVTVF9LRVkiPjxCPkhUVFBfU0VSVkxFVF9SRVFVRVNUX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCI+UmVzb3VyY2VzPC9BPgorPEREPlJlc291cmNlcyBrZXkgdGhlIDxjb2RlPkh0dHBTZXJ2bGV0UmVxdWVzdDwvY29kZT4gaXMgc3RvcmVkIHVuZGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI0hUVFBfU0VSVkxFVF9SRVFVRVNUX0tFWSI+PEI+SFRUUF9TRVJWTEVUX1JFUVVFU1RfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sIj5TdHJ1dHNWYWxpZGF0b3JVdGlsPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1Jlc291cmNlcyBrZXkgdGhlIDxjb2RlPkh0dHBTZXJ2bGV0UmVxdWVzdDwvY29kZT4gaXMgc3RvcmVkIHVuZGVyLgorPC9ETD4KKzxIUj4KKzxBIE5BTUU9Il9JXyI+PCEtLSAtLT48L0E+PEgyPgorPEI+STwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+PEI+STE4bkZhY3RvcnlTZXQ8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj5JMThuRmFjdG9yeVNldDwvQT4uPEREPkRlZmluaXRpb25zIGZhY3RvcnkuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNJMThuRmFjdG9yeVNldCgpIj48Qj5JMThuRmFjdG9yeVNldCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+STE4bkZhY3RvcnlTZXQ8L0E+Cis8REQ+UGFyYW1ldGVybGVzcyBDb25zdHJ1Y3Rvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjSTE4bkZhY3RvcnlTZXQoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS51dGlsLk1hcCkiPjxCPkkxOG5GYWN0b3J5U2V0KFNlcnZsZXRDb250ZXh0LCBNYXApPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+STE4bkZhY3RvcnlTZXQ8L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCNpY29uIj48Qj5pY29uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwiPlNpbXBsZU1lbnVJdGVtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI2lDb3VudCI+PEI+aUNvdW50PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+Cis8REQ+VGhlIGN1cnJlbnQgbnVtYmVyIG9mIHRoZSBwcm9wZXJ0eS9rZXkgYmVpbmcgYWRkZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCNpZCI+PEI+aWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPkRlZmluaXRpb25UYWc8L0E+Cis8REQ+RGVmaW5pdGlvbiBpZGVudGlmaWVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjaWQiPjxCPmlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdG8gYmUgZXhwb3NlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2lkIj48Qj5pZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRvIGJlIGV4cG9zZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjaWQiPjxCPmlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2lkIj48Qj5pZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjaWQiPjxCPmlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj5TdHJ1dHNUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2lkIj48Qj5pZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNpZCI+PEI+aWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+UmVzb3VyY2VUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjaWQiPjxCPmlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI2lkIj48Qj5pZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPlBhZ2VUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjaWQiPjxCPmlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj5IZWFkZXJUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjaWQiPjxCPmlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIj5Db29raWVUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNpZE5hbWUiPjxCPmlkTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD5OYW1lIG9mIHRoZSBiZWFuIChpbiBzb21lIHNjb3BlKSB0aGF0IHdpbGwgcmV0dXJuIHRoZQorIHZhbHVlIG9mIHRoZSByYWRpbyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNpZ25vcmUiPjxCPmlnbm9yZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD5TaG91bGQgd2UgaWdub3JlIG1pc3NpbmcgYmVhbnMgYW5kIHNpbXBseSBvdXRwdXQgbm90aGluZz8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sIj48Qj5JbWFnZUJ1dHRvbkJlYW48L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCI+SW1hZ2VCdXR0b25CZWFuPC9BPi48REQ+QSBzaW1wbGUgSmF2YUJlYW4gdG8gZW5jYXBzdWxhdGUgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyBzZW50IGZvciBhbiBIVE1MCisgaW5wdXQgZWxlbWVudCBvZiB0eXBlIGltYWdlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sI0ltYWdlQnV0dG9uQmVhbigpIj48Qj5JbWFnZUJ1dHRvbkJlYW4oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sIj5JbWFnZUJ1dHRvbkJlYW48L0E+Cis8REQ+Q29uc3RydWN0IGFuIGluc3RhbmNlIHdpdGggZW1wdHkgcHJvcGVydHkgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSW1hZ2VCdXR0b25CZWFuLmh0bWwjSW1hZ2VCdXR0b25CZWFuKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5JbWFnZUJ1dHRvbkJlYW4oU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSW1hZ2VCdXR0b25CZWFuLmh0bWwiPkltYWdlQnV0dG9uQmVhbjwvQT4KKzxERD5Db25zdHJ1Y3QgYW4gaW5zdGFuY2Ugd2l0aCB0aGUgc3VwcGxpZWQgcHJvcGVydHkgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2ltYWdlTmFtZSI+PEI+aW1hZ2VOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+VGhlIGltYWdlIG5hbWUgZm9yIG5hbWVkIGltYWdlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj48Qj5JbWFnZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+LjxERD5UYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJpbWFnZSIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjSW1hZ2VUYWcoKSI+PEI+SW1hZ2VUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPjxCPkltZ1RhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4uPEREPkdlbmVyYXRlIGFuIElNRyB0YWcgdG8gdGhlIHNwZWNpZmllZCBpbWFnZSBVUkkuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI0ltZ1RhZygpIj48Qj5JbWdUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNpbXBsQWxyZWFkeVNldCI+PEI+aW1wbEFscmVhZHlTZXQ8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj5UaWxlc1V0aWw8L0E+Cis8REQ+RmxhZyB0byBrbm93IGlmIGludGVybmFsIGltcGxlbWVudGF0aW9uIGhhcyBiZWVuIHNldCBieSB0aGUgc2V0dGVyIG1ldGhvZAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCI+PEI+SW1wb3J0QXR0cmlidXRlVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sIj5JbXBvcnRBdHRyaWJ1dGVUYWc8L0E+LjxERD5JbXBvcnQgYXR0cmlidXRlIGZyb20gY29tcG9uZW50IHRvIHJlcXVlc3RlZCBzY29wZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sI0ltcG9ydEF0dHJpYnV0ZVRhZygpIj48Qj5JbXBvcnRBdHRyaWJ1dGVUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCI+SW1wb3J0QXR0cmlidXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI2luIj48Qj5pbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwiPk11bHRpcGFydFZhbHVlU3RyZWFtPC9BPgorPEREPnRoZSB1bmRlcmx5aW5nIHN0cmVhbQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNpbmNsdWRlIj48Qj5pbmNsdWRlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5Db250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSB0aGF0IHdpbGwgcHJvY2VzcworIHRoaXMgcmVxdWVzdCB2aWEgUmVxdWVzdERpc3BhdGNoZXIuaW5jbHVkZSgpLCBpbnN0ZWFkIG9mIGluc3RhbnRpYXRpbmcKKyBhbmQgY2FsbGluZyB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcyBzcGVjaWZpZWQgYnkgInR5cGUiLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjSU5DTFVERV9QQVRIX0lORk8iPjxCPklOQ0xVREVfUEFUSF9JTkZPPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5UaGUgcmVxdWVzdCBhdHRyaWJ1dGUgdW5kZXIgd2hpY2ggdGhlIHBhdGggaW5mb3JtYXRpb24gaXMgc3RvcmVkIGZvcgorIHByb2Nlc3NpbmcgZHVyaW5nIGEgUmVxdWVzdERpc3BhdGNoZXIuaW5jbHVkZSgpIGNhbGwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNJTkNMVURFX1NFUlZMRVRfUEFUSCI+PEI+SU5DTFVERV9TRVJWTEVUX1BBVEg8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZSB1bmRlciB3aGljaCB0aGUgc2VydmxldCBwYXRoIGluZm9ybWF0aW9uIGlzIHN0b3JlZAorIGZvciBwcm9jZXNzaW5nIGR1cmluZyBhIFJlcXVlc3REaXNwYXRjaGVyLmluY2x1ZGUoKSBjYWxsLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sIj48Qj5JbmNsdWRlQWN0aW9uPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sIj5JbmNsdWRlQWN0aW9uPC9BPi48REQ+QW4gPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBpbmNsdWRlcyB0aGUgY29udGV4dC1yZWxhdGl2ZQorIFVSSSBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPnBhcmFtZXRlcjwvY29kZT4gcHJvcGVydHkgb2Ygb3VyIGFzc29jaWF0ZWQKKyA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9JbmNsdWRlQWN0aW9uLmh0bWwjSW5jbHVkZUFjdGlvbigpIj48Qj5JbmNsdWRlQWN0aW9uKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9JbmNsdWRlQWN0aW9uLmh0bWwiPkluY2x1ZGVBY3Rpb248L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj48Qj5JbmNsdWRlVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+LjxERD5EZWZpbmUgdGhlIGNvbnRlbnRzIG9mIGEgc3BlY2lmaWVkIGludHJhLWFwcGxpY2F0aW9uIHJlcXVlc3QgYXMgYQorIHBhZ2Ugc2NvcGUgYXR0cmlidXRlIG9mIHR5cGUgPGNvZGU+amF2YS5sYW5nLlN0cmluZzwvY29kZT4uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNJbmNsdWRlVGFnKCkiPjxCPkluY2x1ZGVUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCI+PEI+SW5jbHVkZVRlaTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRlaS5odG1sIj5JbmNsdWRlVGVpPC9BPi48REQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPmluY2x1ZGU8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCNJbmNsdWRlVGVpKCkiPjxCPkluY2x1ZGVUZWkoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRlaS5odG1sIj5JbmNsdWRlVGVpPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+PEI+aW5kZXhlZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5XaGV0aGVyIHRvIGNyZWF0ZWQgaW5kZXhlZCBuYW1lcyBmb3IgZmllbGRzCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNpbmRleElkIj48Qj5pbmRleElkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdG8gYmUgZXhwb3NlZCBhcyB0aGUgY3VycmVudCBpbmRleC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjaW5kZXhJZCI+PEI+aW5kZXhJZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+TmFtZSBvZiBwYXJhbWV0ZXIgdG8gZ2VuZXJhdGUgdG8gaG9sZCBpbmRleCBudW1iZXIKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCNpbmhlcml0Ij48Qj5pbmhlcml0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwiPlhtbERlZmluaXRpb248L0E+Cis8REQ+RXh0ZW5kcyBhdHRyaWJ1dGUgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI2luaXQoKSI+PEI+aW5pdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwiPkFjdGlvbkNvbXBvbmVudFNlcnZsZXQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7SW5pdCBtZXRob2QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNTZXJ2bGV0Lmh0bWwjaW5pdCgpIj48Qj5pbml0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzU2VydmxldC5odG1sIj5UaWxlc1NlcnZsZXQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7SW5pdGlhbGl6ZSB0aGlzIHNlcnZsZXQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXQoKSI+PEI+aW5pdCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5Jbml0aWFsaXplIHRoaXMgc2VydmxldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjxCPmluaXQoQWN0aW9uU2VydmxldCwgTW9kdWxlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPgorPEREPlJlY2VpdmUgbm90aWZpY2F0aW9uIHRoYXQgdGhlIHNwZWNpZmllZCBtb2R1bGUgaXMgYmVpbmcKKyBzdGFydGVkIHVwLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PEI+aW5pdChBY3Rpb25TZXJ2bGV0LCBNb2R1bGVDb25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sIj5WYWxpZGF0b3JQbHVnSW48L0E+Cis8REQ+SW5pdGlhbGl6ZSBhbmQgbG9hZCBvdXIgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjxCPmluaXQoQWN0aW9uU2VydmxldCwgTW9kdWxlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCI+VGlsZXNQbHVnaW48L0E+Cis8REQ+UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCB0aGUgc3BlY2lmaWVkIG1vZHVsZSBpcyBiZWluZworIHN0YXJ0ZWQgdXAuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjxCPmluaXQoQWN0aW9uU2VydmxldCwgTW9kdWxlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlRpbGVzUmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5Jbml0aWFsaXplIHRoaXMgcmVxdWVzdCBwcm9jZXNzb3IgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PEI+aW5pdChBY3Rpb25TZXJ2bGV0LCBNb2R1bGVDb25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5Jbml0aWFsaXplIHRoaXMgcmVxdWVzdCBwcm9jZXNzb3IgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sI2luaXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48Qj5pbml0KEFjdGlvblNlcnZsZXQsIE1vZHVsZUNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj5QbHVnSW48L0E+Cis8REQ+UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCB0aGUgc3BlY2lmaWVkIG1vZHVsZSBpcyBiZWluZworIHN0YXJ0ZWQgdXAuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5pbml0KERlZmluaXRpb25zRmFjdG9yeUNvbmZpZywgU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4KKzxERD5Jbml0IGRlZmluaXRpb24gZmFjdG9yeS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZywgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPmluaXQoRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLCBTZXJ2bGV0Q29udGV4dCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXI8L0E+Cis8REQ+Q2FsbCB1bmRlcmx5aW5nIGZhY3RvcnkgaW5pdCBtZXRob2QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0QXBwbGljYXRpb25Db25maWcoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPmluaXRBcHBsaWNhdGlvbkNvbmZpZyhTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRNb2R1bGVDb25maWcoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxDT0RFPkFjdGlvblNlcnZsZXQuaW5pdE1vZHVsZUNvbmZpZyhTdHJpbmcsU3RyaW5nKTwvQ09ERT48L0E+PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdEFwcGxpY2F0aW9uRGF0YVNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjxCPmluaXRBcHBsaWNhdGlvbkRhdGFTb3VyY2VzKE1vZHVsZUNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSBpbml0TW9kdWxlRGF0YVNvdXJjZXMoTW9kdWxlQ29uZmlnKTwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRBcHBsaWNhdGlvbk1lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjxCPmluaXRBcHBsaWNhdGlvbk1lc3NhZ2VSZXNvdXJjZXMoTW9kdWxlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+dXNlIGluaXRNb2R1bGVNZXNzYWdlUmVzb3VyY2VzKCk8L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0QXBwbGljYXRpb25QbHVnSW5zKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48Qj5pbml0QXBwbGljYXRpb25QbHVnSW5zKE1vZHVsZUNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRNb2R1bGVQbHVnSW5zKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48Q09ERT5BY3Rpb25TZXJ2bGV0LmluaXRNb2R1bGVQbHVnSW5zKE1vZHVsZUNvbmZpZyk8L0NPREU+PC9BPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwjaW5pdENvbXBvbmVudERlZmluaXRpb25zTWFwcGluZygpIj48Qj5pbml0Q29tcG9uZW50RGVmaW5pdGlvbnNNYXBwaW5nKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCI+QWN0aW9uQ29tcG9uZW50U2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZWFkIGNvbXBvbmVudCBpbnN0YW5jZSBtYXBwaW5nIGNvbmZpZ3VyYXRpb24gZmlsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRDb25maWdEaWdlc3RlcigpIj48Qj5pbml0Q29uZmlnRGlnZXN0ZXIoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+Q3JlYXRlIChpZiBuZWVkZWQpIGFuZCByZXR1cm4gYSBuZXcgRGlnZXN0ZXIgaW5zdGFuY2UgdGhhdCBoYXMgYmVlbgorIGluaXRpYWxpemVkIHRvIHByb2Nlc3MgU3RydXRzIG1vZHVsZSBjb25maWd1cmFpdG9uIGZpbGVzIGFuZAorIGNvbmZpZ3VyZSBhIGNvcnJlc3BvbmRpbmcgTW9kdWxlQ29uZmlnIG9iamVjdCAod2hpY2ggbXVzdCBiZQorIHB1c2hlZCBvbiB0byB0aGUgZXZhbHVhdGlvbiBzdGFjayBiZWZvcmUgcGFyc2luZyBiZWdpbnMpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdERhdGFTb3VyY2VzKCkiPjxCPmluaXREYXRhU291cmNlcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBpbml0QXBwbGljYXRpb25EYXRhU291cmNlcygpIHRoYXQgdGFrZXMKKyAgYW4gTW9kdWxlQ29uZmlnIGFyZ3VtZW50LiBUaGlzIG1ldGhvZCBkb2VzIG5vdGhpbmcuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sI2luaXREZWZpbml0aW9uc01hcHBpbmcoKSI+PEI+aW5pdERlZmluaXRpb25zTWFwcGluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+VGlsZXNSZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPlJlYWQgY29tcG9uZW50IGluc3RhbmNlIG1hcHBpbmcgY29uZmlndXJhdGlvbiBmaWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCI+PEI+SW5pdERlZmluaXRpb25zVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luaXREZWZpbml0aW9uc1RhZy5odG1sIj5Jbml0RGVmaW5pdGlvbnNUYWc8L0E+LjxERD5Jbml0IGRlZmluaXRpb25zIGZhY3RvcnkuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCNJbml0RGVmaW5pdGlvbnNUYWcoKSI+PEI+SW5pdERlZmluaXRpb25zVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5pdERlZmluaXRpb25zVGFnLmh0bWwiPkluaXREZWZpbml0aW9uc1RhZzwvQT4KKzxERD5EZWZhdWx0IGNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwjaW5pdERpZ2VzdGVyKG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5EaWdlc3RlcikiPjxCPmluaXREaWdlc3RlcihEaWdlc3Rlcik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCI+WG1sUGFyc2VyPC9BPgorPEREPkluaXQgZGlnZXN0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCNpbml0RGlnZXN0ZXJGb3JDb21wb25lbnRzRGVmaW5pdGlvbnNTeW50YXgob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyKSI+PEI+aW5pdERpZ2VzdGVyRm9yQ29tcG9uZW50c0RlZmluaXRpb25zU3ludGF4KERpZ2VzdGVyKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sIj5YbWxQYXJzZXI8L0E+Cis8REQ+SW5pdCBkaWdlc3RlciBmb3IgY29tcG9uZW50cyBzeW50YXguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCNpbml0RGlnZXN0ZXJGb3JJbnN0YW5jZXNTeW50YXgob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyKSI+PEI+aW5pdERpZ2VzdGVyRm9ySW5zdGFuY2VzU3ludGF4KERpZ2VzdGVyKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sIj5YbWxQYXJzZXI8L0E+Cis8REQ+SW5pdCBkaWdlc3RlciBpbiBvcmRlciB0byBwYXJzZSBpbnN0YW5jZXMgZGVmaW5pdGlvbiBmaWxlIHN5bnRheC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sI2luaXREaWdlc3RlckZvclRpbGVzRGVmaW5pdGlvbnNTeW50YXgob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyKSI+PEI+aW5pdERpZ2VzdGVyRm9yVGlsZXNEZWZpbml0aW9uc1N5bnRheChEaWdlc3Rlcik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCI+WG1sUGFyc2VyPC9BPgorPEREPkluaXQgZGlnZXN0ZXIgZm9yIFRpbGVzIHN5bnRheC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNpbml0RmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+PEI+aW5pdEZhY3RvcnkoU2VydmxldENvbnRleHQsIE1hcCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0luaXQgZmFjdG9yeS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjaW5pdEZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS51dGlsLk1hcCkiPjxCPmluaXRGYWN0b3J5KFNlcnZsZXRDb250ZXh0LCBNYXApPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+STE4bkZhY3RvcnlTZXQ8L0E+Cis8REQ+SW5pdGlhbGl6YXRpb24gbWV0aG9kLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sI2luaXRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj48Qj5pbml0RmFjdG9yeShTZXJ2bGV0Q29udGV4dCwgTWFwKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+RmFjdG9yeVNldDwvQT4KKzxERD5Jbml0IGZhY3Rvcnkgc2V0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI2luaXRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj48Qj5pbml0RmFjdG9yeShTZXJ2bGV0Q29udGV4dCwgTWFwKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeTwvQT4KKzxERD5Jbml0IGZhY3RvcnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI2luaXRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5pbml0RmFjdG9yeShTZXJ2bGV0Q29udGV4dCwgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwiPkkxOG5GYWN0b3J5U2V0PC9BPgorPEREPkluaXRpYWxpemF0aW9uIG1ldGhvZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjaW5pdEZvcm1CZWFuKCkiPjxCPmluaXRGb3JtQmVhbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+TG9jYXRlIG9yIGNyZWF0ZSB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggb3VyIGZvcm0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sI2luaXRpYWwiPjxCPmluaXRpYWw8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPgorPEREPlN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW5pdGlhbCB2YWx1ZSBmb3IgdGhpcyBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwjaW5pdGlhbCgpIj48Qj5pbml0aWFsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT4KKzxERD5SZXR1cm4gYW4gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgaW5pdGlhbCB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2luaXRpYWxpemUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48Qj5pbml0aWFsaXplKEFjdGlvbk1hcHBpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPkR5bmFBY3Rpb25Gb3JtPC9BPgorPEREPkluaXRpYWxpemUgYWxsIGJlYW4gcHJvcGVydGllcyB0byB0aGVpciBpbml0aWFsIHZhbHVlcywgYXMgc3BlY2lmaWVkCisgaW4gdGhlIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+PENPREU+Rm9ybVByb3BlcnR5Q29uZmlnPC9DT0RFPjwvQT4gZWxlbWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoZQorIGRlZmluaXRpb24gb2YgdGhpcyA8Y29kZT5EeW5hQWN0aW9uRm9ybTwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0SW50ZXJuYWwoKSI+PEI+aW5pdEludGVybmFsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkluaXRpYWxpemUgb3VyIGludGVybmFsIE1lc3NhZ2VSZXNvdXJjZXMgYnVuZGxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCNpbml0TG9va3VwTWFwKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEudXRpbC5Mb2NhbGUpIj48Qj5pbml0TG9va3VwTWFwKEh0dHBTZXJ2bGV0UmVxdWVzdCwgTG9jYWxlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiPkxvb2t1cERpc3BhdGNoQWN0aW9uPC9BPgorPEREPlRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgdGhpcyBMb2NhbGUgaXMgdXNlZCBzbyBidWlsZCB0aGUgcmV2ZXJzZSBsb29rdXAgTWFwLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdE1vZHVsZUNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+aW5pdE1vZHVsZUNvbmZpZyhTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkluaXRpYWxpemUgdGhlIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gZm9yIHRoZQorIHNwZWNpZmllZCBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0TW9kdWxlRGF0YVNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjxCPmluaXRNb2R1bGVEYXRhU291cmNlcyhNb2R1bGVDb25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5Jbml0aWFsaXplIHRoZSBkYXRhIHNvdXJjZXMgZm9yIHRoZSBzcGVjaWZpZWQgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdE1vZHVsZU1lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjxCPmluaXRNb2R1bGVNZXNzYWdlUmVzb3VyY2VzKE1vZHVsZUNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPkluaXRpYWxpemUgdGhlIGFwcGxpY2F0aW9uIE1lc3NhZ2VSZXNvdXJjZXMgZm9yIHRoZSBzcGVjaWZpZWQKKyBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0TW9kdWxlUGx1Z0lucyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PEI+aW5pdE1vZHVsZVBsdWdJbnMoTW9kdWxlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+SW5pdGlhbGl6ZSB0aGUgcGx1ZyBpbnMgZm9yIHRoZSBzcGVjaWZpZWQgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdE90aGVyKCkiPjxCPmluaXRPdGhlcigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5Jbml0aWFsaXplIG90aGVyIGdsb2JhbCBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIGNvbnRyb2xsZXIgc2VydmxldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sI2luaXRSZXF1ZXN0UHJvY2Vzc29yQ2xhc3Mob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjxCPmluaXRSZXF1ZXN0UHJvY2Vzc29yQ2xhc3MoTW9kdWxlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCI+VGlsZXNQbHVnaW48L0E+Cis8REQ+U2V0IFJlcXVlc3RQcm9jZXNzb3IgdG8gYXBwcm9wcmlhdGUgVGlsZXMgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+PENPREU+UmVxdWVzdFByb2Nlc3NvcjwvQ09ERT48L0E+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCNpbml0UmVzb3VyY2VzKCkiPjxCPmluaXRSZXNvdXJjZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCI+VmFsaWRhdG9yUGx1Z0luPC9BPgorPEREPkluaXRpYWxpemUgdGhlIHZhbGlkYXRvciByZXNvdXJjZXMgZm9yIHRoaXMgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdFNlcnZsZXQoKSI+PEI+aW5pdFNlcnZsZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+SW5pdGlhbGl6ZSB0aGUgc2VydmxldCBtYXBwaW5nIHVuZGVyIHdoaWNoIG91ciBjb250cm9sbGVyIHNlcnZsZXQKKyBpcyBiZWluZyBhY2Nlc3NlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNpbml0VXNlckRlYnVnTGV2ZWwoamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnKSI+PEI+aW5pdFVzZXJEZWJ1Z0xldmVsKFNlcnZsZXRDb25maWcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwiPkRlZmluaXRpb25zVXRpbDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgY29tbW9ucy1sb2dnaW5nIHBhY2thZ2UgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sI2luaXRWYWxpZGF0b3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgaW50KSI+PEI+aW5pdFZhbGlkYXRvcihTdHJpbmcsIE9iamVjdCwgU2VydmxldENvbnRleHQsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgQWN0aW9uRXJyb3JzLCBpbnQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCI+UmVzb3VyY2VzPC9BPgorPEREPkluaXRpYWxpemUgdGhlIDxjb2RlPlZhbGlkYXRvcjwvY29kZT4gdG8gcGVyZm9ybSB2YWxpZGF0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI2luaXRWYWxpZGF0b3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgaW50KSI+PEI+aW5pdFZhbGlkYXRvcihTdHJpbmcsIE9iamVjdCwgU2VydmxldENvbnRleHQsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgQWN0aW9uRXJyb3JzLCBpbnQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCI+U3RydXRzVmFsaWRhdG9yVXRpbDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjaW5pdFZhbGlkYXRvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBpbnQpIj48Q09ERT5SZXNvdXJjZXMuaW5pdFZhbGlkYXRvcihTdHJpbmcsT2JqZWN0LFNlcnZsZXRDb250ZXh0LEh0dHBTZXJ2bGV0UmVxdWVzdCxBY3Rpb25FcnJvcnMsaW50KTwvQ09ERT48L0E+PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjaW5wdXQiPjxCPmlucHV0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPlJlc291cmNlVGFnPC9BPgorPEREPlJldHVybiBhbiBJbnB1dFN0cmVhbSB0byB0aGUgc3BlY2lmaWVkIHJlc291cmNlIGlmIHRoaXMgaXMgbm9uLW51bGwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2lucHV0Ij48Qj5pbnB1dDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+Q29udGV4dC1yZWxhdGl2ZSBwYXRoIG9mIHRoZSBpbnB1dCBmb3JtIHRvIHdoaWNoIGNvbnRyb2wgc2hvdWxkIGJlCisgcmV0dXJuZWQgaWYgYSB2YWxpZGF0aW9uIGVycm9yIGlzIGVuY291bnRlcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjaW5wdXRGb3J3YXJkIj48Qj5pbnB1dEZvcndhcmQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+Cis8REQ+U2hvdWxkIHRoZSA8Y29kZT5pbnB1dDwvY29kZT4gcHJvcGVydHkgb2YgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj48Q09ERT5BY3Rpb25Db25maWc8L0NPREU+PC9BPgorIGluc3RhbmNlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBtb2R1bGUgYmUgdHJlYXRlZCBhcyB0aGUKKyBuYW1lIG9mIGEgY29ycmVzcG9uZGluZyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj48Q09ERT5Gb3J3YXJkQ29uZmlnPC9DT0RFPjwvQT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNpbnB1dFN0cmVhbSI+PEI+aW5wdXRTdHJlYW08L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+Cis8REQ+VGhlIHVuZGVybHlpbmcgSW5wdXRTdHJlYW0gdXNlZCBieSB0aGlzIGNsYXNzCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNpbnB1dFN0cmVhbSI+PEI+aW5wdXRTdHJlYW08L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+VGhlIElucHV0U3RyZWFtIHRvIHJlYWQgZnJvbS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNpbnB1dFN0cmVhbSI+PEI+aW5wdXRTdHJlYW08L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5UaGUgSW5wdXRTdHJlYW0gdG8gdXNlIHRvIHJlYWQgdGhlIG11bHRpcGFydCBkYXRhLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+PEI+SW5zZXJ0VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+LjxERD5UaGlzIGlzIHRoZSB0YWcgaGFuZGxlciBmb3IgJmx0O3RpbGVzOmluc2VydCZndDssIHdoaWNoIGluY2x1ZGVzCisgYSB0ZW1wbGF0ZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj48Qj5JbnNlcnRUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4uPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyLmh0bWwiPjxCPkluc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyPC9BPi48REQ+SGFuZGxlIGluc2VydCBkaXJlY3Qgc3RyaW5nLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIuaHRtbCNJbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlcihqYXZhLmxhbmcuT2JqZWN0KSI+PEI+SW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIoT2JqZWN0KTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlcjwvQT4KKzxERD5Db25zdHJ1Y3Rvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCI+PEI+SW5zZXJ0VGFnLkluc2VydEhhbmRsZXI8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLkluc2VydEhhbmRsZXI8L0E+LjxERD5SZWFsIGhhbmRsZXIsIGFmdGVyIGF0dHJpYnV0ZSByZXNvbHV0aW9uLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCNJbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcihqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db250cm9sbGVyKSI+PEI+SW5zZXJ0VGFnLkluc2VydEhhbmRsZXIoTWFwLCBTdHJpbmcsIFN0cmluZywgQ29udHJvbGxlcik8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLkluc2VydEhhbmRsZXI8L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwjSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29udHJvbGxlcikiPjxCPkluc2VydFRhZy5JbnNlcnRIYW5kbGVyKFN0cmluZywgU3RyaW5nLCBDb250cm9sbGVyKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sIj5JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcjwvQT4KKzxERD5Db25zdHJ1Y3Rvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+PEI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0I+PC9BPiAtIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPi48REQ+SW5uZXIgSW50ZXJmYWNlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjSW5zZXJ0VGFnKCkiPjxCPkluc2VydFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI0luc2VydFRhZygpIj48Qj5JbnNlcnRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCNpbnN0YW5jZSI+PEI+aW5zdGFuY2U8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sIj5Ub2tlblByb2Nlc3NvcjwvQT4KKzxERD5UaGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI0lOU1RBTkNFU19DT05GSUdfUEFSQU1FVEVSX05BTUUiPjxCPklOU1RBTkNFU19DT05GSUdfUEFSQU1FVEVSX05BTUU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj5JMThuRmFjdG9yeVNldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2UgREVGSU5JVElPTlNfQ09ORklHX1BBUkFNRVRFUl9OQU1FPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI0lOU1RBTkNFU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTCI+PEI+SU5TVEFOQ0VTX0NPTkZJR19VU0VSX0RFQlVHX0xFVkVMPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCI+RGVmaW5pdGlvbnNVdGlsPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSBERUZJTklUSU9OU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTCBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI0lOVF9GT1JNQVRfS0VZIj48Qj5JTlRfRk9STUFUX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+VGhlIGtleSB0byBzZWFyY2ggZGVmYXVsdCBmb3JtYXQgc3RyaW5nIGZvciBpbnQKKyAoYnl0ZSwgc2hvcnQsIGV0Yy4pIGluIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ludGVybmFsIj48Qj5pbnRlcm5hbDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5UaGUgcmVzb3VyY2VzIG9iamVjdCBmb3Igb3VyIGludGVybmFsIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNpbnRlcm5hbE1vZHVsZVJlbGF0aXZlRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPmludGVybmFsTW9kdWxlUmVsYXRpdmVGb3J3YXJkKFN0cmluZywgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlRpbGVzUmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5DYXRjaCB0aGUgY2FsbCB0byBhIG1vZHVsZSByZWxhdGl2ZSBmb3J3YXJkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjaW50ZXJuYWxNb2R1bGVSZWxhdGl2ZUZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5pbnRlcm5hbE1vZHVsZVJlbGF0aXZlRm9yd2FyZChTdHJpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPkRvIGEgbW9kdWxlIHJlbGF0aXZlIGZvcndhcmQgdG8gc3BlY2lmaWVkIHVyaSB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwjaW50ZXJuYWxNb2R1bGVSZWxhdGl2ZUluY2x1ZGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5pbnRlcm5hbE1vZHVsZVJlbGF0aXZlSW5jbHVkZShTdHJpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+RG8gYSBtb2R1bGUgcmVsYXRpdmUgaW5jbHVkZSB0byBzcGVjaWZpZWQgdXJpIHVzaW5nIHJlcXVlc3QgZGlzcGF0Y2hlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2ludGVybmFsTW9kdWxlUmVsYXRpdmVJbmNsdWRlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+aW50ZXJuYWxNb2R1bGVSZWxhdGl2ZUluY2x1ZGUoU3RyaW5nLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5EbyBhIG1vZHVsZSByZWxhdGl2ZSBpbmNsdWRlIHRvIHNwZWNpZmllZCB1cmkgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW50ZXJuYWxOYW1lIj48Qj5pbnRlcm5hbE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+VGhlIEphdmEgYmFzZSBuYW1lIG9mIG91ciBpbnRlcm5hbCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNpbnRyb3NwZWN0KG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPjxCPmludHJvc3BlY3QoRm9ybUJlYW5Db25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4KKzxERD5JbnRyb3NwZWN0IG91ciBmb3JtIGJlYW4gY29uZmlndXJhdGlvbiB0byBpZGVudGlmeSB0aGUgc3VwcG9ydGVkCisgcHJvcGVydGllcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCNpT3JkZXIiPjxCPmlPcmRlcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtLmh0bWwiPkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtPC9BPgorPEREPlRoZSBwb3NpdGlvbiBpbiB0aGUgbGlzdCBvZiBtZXNzYWdlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2lzQm91bmRhcnlFbmNvdW50ZXJlZCgpIj48Qj5pc0JvdW5kYXJ5RW5jb3VudGVyZWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+UmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgYm91bmRhcnkgaGFzIGJlZW4gZW5jb3VudGVyZWQgd2hpbGUgcmVhZGluZyBkYXRhLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc0NhbmNlbGxlZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+aXNDYW5jZWxsZWQoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPlJldHVybnMgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIGN1cnJlbnQgZm9ybSdzIGNhbmNlbCBidXR0b24gd2FzCisgcHJlc3NlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwjaXNEaXJlY3QoKSI+PEI+aXNEaXJlY3QoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj5Db250ZW50PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNpc0R5bmFBc3NpZ25hYmxlKGphdmEubGFuZy5DbGFzcywgamF2YS5sYW5nLkNsYXNzKSI+PEI+aXNEeW5hQXNzaWduYWJsZShDbGFzcywgQ2xhc3MpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPkR5bmFBY3Rpb25Gb3JtPC9BPgorPEREPkluZGljYXRlcyBpZiBhbiBvYmplY3Qgb2YgdGhlIHNvdXJjZSBjbGFzcyBpcyBhc3NpZ25hYmxlIHRvIHRoZSBkZXN0aW5hdGlvbiBjbGFzcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2lzRWxlbWVudEZpbGUoKSI+PEI+aXNFbGVtZW50RmlsZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD5HZXRzIHdoZXRoZXIgb3Igbm90IHRoZSBjdXJyZW50IGZvcm0gZWxlbWVudCBiZWluZyByZWFkIGlzIGEgZmlsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNpc0VtcHR5KCkiPjxCPmlzRW1wdHkoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT4KKzxERD5SZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgYXJlIG5vIG1lc3NhZ2VzIHJlY29yZGVkCisgaW4gdGhpcyBjb2xsZWN0aW9uLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gb3RoZXJ3aXNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjaXNFbmRPZlN0cmVhbSgpIj48Qj5pc0VuZE9mU3RyZWFtKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPldoZXRoZXIgb3Igbm90IGFuIEVPRiBoYXMgYmVlbiByZWFkIG9uIHRoZSBzdHJlYW0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sI2lzRXJyb3JJZ25vcmVkIj48Qj5pc0Vycm9ySWdub3JlZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIj5HZXRBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+RG8gd2UgaWdub3JlIGVycm9yIGlmIGF0dHJpYnV0ZSBpcyBub3QgZm91bmQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sI2lzRXJyb3JJZ25vcmVkIj48Qj5pc0Vycm9ySWdub3JlZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sIj5JbXBvcnRBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+QXJlIGVycm9ycyBpZ25vcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCNpc0Vycm9ySWdub3JlZCI+PEI+aXNFcnJvcklnbm9yZWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCI+VXNlQXR0cmlidXRlVGFnPC9BPgorPEREPkFyZSBlcnJvcnMgaWdub3JlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjaXNFcnJvcklnbm9yZWQiPjxCPmlzRXJyb3JJZ25vcmVkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5BcmUgZXJyb3JzIGlnbm9yZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwjaXNFeHRlbmRpbmcoKSI+PEI+aXNFeHRlbmRpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCI+WG1sRGVmaW5pdGlvbjwvQT4KKzxERD5HZXQgZXh0ZW5kcyBmbGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvTW9kdWxlQ29uZmlnVmVyaWZpZXIuaHRtbCNpc0ZhdGFsKCkiPjxCPmlzRmF0YWwoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPgorPEREPlJldHVybiB0aGUgImNvbmZpZ3VhdGlvbiBlcnJvcnMgYXJlIGZhdGFsIiBmbGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjaXNGaWxlIj48Qj5pc0ZpbGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+V2hldGhlciBvciBub3QgdGhpcyBlbGVtZW50IGlzIGEgZmlsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2lzRmlsZSgpIj48Qj5pc0ZpbGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+SXMgdGhpcyBlbGVtZW50IGEgZmlsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2lzRmluYWxCb3VuZGFyeUVuY291bnRlcmVkKCkiPjxCPmlzRmluYWxCb3VuZGFyeUVuY291bnRlcmVkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPlJldHVybnMgd2hldGhlciBvciBub3QgdGhlIGZpbmFsIGJvdW5kYXJ5IGhhcyBiZWVuIGVuY291bnRlcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2lzbWFwIj48Qj5pc21hcDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlNlcnZlci1zaWRlIGltYWdlIG1hcCBkZWNsYXJhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNpc01hdGNoZWQoamF2YS5sYW5nLlN0cmluZykiPjxCPmlzTWF0Y2hlZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPkRvZXMgdGhlIHNwZWNpZmllZCB2YWx1ZSBtYXRjaCBvbmUgb2YgdGhvc2Ugd2UgYXJlIGxvb2tpbmcgZm9yPworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2lzTWF4TGVuZ3RoRXhjZWVkZWQoKSI+PEI+aXNNYXhMZW5ndGhFeGNlZWRlZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPldoZXRoZXIgb3Igbm90IHRoZSBtYXhpbXVtIGxlbmd0aCBoYXMgYmVlbiBleGNlZWRlZCBieSB0aGUgY2xpZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjaXNNYXhMZW5ndGhNZXQoKSI+PEI+aXNNYXhMZW5ndGhNZXQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+V2hldGhlciBvciBub3QgdGhlIG1heGltdW0gbGVuZ3RoIGhhcyBiZWVuIG1ldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjaXNNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5pc01lc3NhZ2UoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPlJldHVybiB0cnVlIGlmIGEgbWVzc2FnZSBzdHJpbmcgZm9yIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSBrZXkKKyBpcyBwcmVzZW50IGZvciB0aGUgdXNlcidzIExvY2FsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjaXNNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5pc01lc3NhZ2UoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT4KKzxERD5SZXR1cm4gdHJ1ZSBpZiBhIG1lc3NhZ2Ugc3RyaW5nIGZvciB0aGUgc3BlY2lmaWVkIG1lc3NhZ2Uga2V5CisgaXMgcHJlc2VudCBmb3IgdGhlIHVzZXIncyBMb2NhbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjaXNNb2R1bGVBd2FyZSgpIj48Qj5pc01vZHVsZUF3YXJlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Cis8REQ+R2V0IHRoZSBtb2R1bGUgYXdhcmUgZmxhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sI2lzTW9kdWxlQXdhcmUoKSI+PEI+aXNNb2R1bGVBd2FyZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sIj5UaWxlc1BsdWdpbjwvQT4KKzxERD5HZXQgdGhlIG1vZHVsZSBhd2FyZSBmbGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2lzUHJlc2VudChqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+aXNQcmVzZW50KExvY2FsZSwgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5SZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgaXMgYSBkZWZpbmVkIG1lc3NhZ2UgZm9yIHRoZSBzcGVjaWZpZWQKKyBrZXkgaW4gdGhlIHNwZWNpZmllZCBMb2NhbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjaXNQcmVzZW50KGphdmEubGFuZy5TdHJpbmcpIj48Qj5pc1ByZXNlbnQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5SZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgaXMgYSBkZWZpbmVkIG1lc3NhZ2UgZm9yIHRoZSBzcGVjaWZpZWQKKyBrZXkgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IGxvY2FsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNpc1JlcXVlc3RlZFNlc3Npb25JZEZyb21Db29raWUoKSI+PEI+aXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tQ29va2llKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+VGhpcyBtZXRob2QgcmV0dXJucyBmYWxzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNpc1JlcXVlc3RlZFNlc3Npb25JZEZyb21VcmwoKSI+PEI+aXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tVXJsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjaXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tVVJMKCkiPjxCPmlzUmVxdWVzdGVkU2Vzc2lvbklkRnJvbVVSTCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2lzUmVxdWVzdGVkU2Vzc2lvbklkVmFsaWQoKSI+PEI+aXNSZXF1ZXN0ZWRTZXNzaW9uSWRWYWxpZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2lzU2VjdXJlKCkiPjxCPmlzU2VjdXJlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCNpc1NlbGVjdGVkKCkiPjxCPmlzU2VsZWN0ZWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sIj5JbWFnZUJ1dHRvbkJlYW48L0E+Cis8REQ+QSBjb252ZW5pZW5jZSBtZXRob2QgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBjb3JyZXNwb25kaW5nIGltYWdlCisgZWxlbWVudCB3YXMgc2VsZWN0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjaXNTdHJpbmcoamF2YS5sYW5nLk9iamVjdCkiPjxCPmlzU3RyaW5nKE9iamVjdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPkZpZWxkQ2hlY2tzPC9BPgorPEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBpcyBhIFN0cmluZyBvciBhIDxjb2RlPm51bGw8L2NvZGU+CisgIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2lzVGlsZXNVdGlsSW1wbFNldCgpIj48Qj5pc1RpbGVzVXRpbEltcGxTZXQoKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj5UaWxlc1V0aWw8L0E+Cis8REQ+R2V0dGVyIHRvIGtub3cgaWYgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gaXMgYWxyZWFkeSBzZXQgdG8gYW5vdGhlcgorIHZhbHVlIHRoYW4gdGhlIGRlZmF1bHQgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sI2lzVG9rZW5WYWxpZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+aXNUb2tlblZhbGlkKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sIj5Ub2tlblByb2Nlc3NvcjwvQT4KKzxERD5SZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgaXMgYSB0cmFuc2FjdGlvbiB0b2tlbiBzdG9yZWQgaW4KKyB0aGUgdXNlcidzIGN1cnJlbnQgc2Vzc2lvbiwgYW5kIHRoZSB2YWx1ZSBzdWJtaXR0ZWQgYXMgYSByZXF1ZXN0CisgcGFyYW1ldGVyIHdpdGggdGhpcyBhY3Rpb24gbWF0Y2hlcyBpdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5pc1Rva2VuVmFsaWQoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBpcyBhIHRyYW5zYWN0aW9uIHRva2VuIHN0b3JlZCBpbgorIHRoZSB1c2VyJ3MgY3VycmVudCBzZXNzaW9uLCBhbmQgdGhlIHZhbHVlIHN1Ym1pdHRlZCBhcyBhIHJlcXVlc3QKKyBwYXJhbWV0ZXIgd2l0aCB0aGlzIGFjdGlvbiBtYXRjaGVzIGl0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgYm9vbGVhbikiPjxCPmlzVG9rZW5WYWxpZChIdHRwU2VydmxldFJlcXVlc3QsIGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCI+VG9rZW5Qcm9jZXNzb3I8L0E+Cis8REQ+UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGlzIGEgdHJhbnNhY3Rpb24gdG9rZW4gc3RvcmVkIGluCisgdGhlIHVzZXIncyBjdXJyZW50IHNlc3Npb24sIGFuZCB0aGUgdmFsdWUgc3VibWl0dGVkIGFzIGEgcmVxdWVzdAorIHBhcmFtZXRlciB3aXRoIHRoaXMgYWN0aW9uIG1hdGNoZXMgaXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzVG9rZW5WYWxpZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBib29sZWFuKSI+PEI+aXNUb2tlblZhbGlkKEh0dHBTZXJ2bGV0UmVxdWVzdCwgYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD5SZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgaXMgYSB0cmFuc2FjdGlvbiB0b2tlbiBzdG9yZWQgaW4KKyB0aGUgdXNlcidzIGN1cnJlbnQgc2Vzc2lvbiwgYW5kIHRoZSB2YWx1ZSBzdWJtaXR0ZWQgYXMgYSByZXF1ZXN0CisgcGFyYW1ldGVyIHdpdGggdGhpcyBhY3Rpb24gbWF0Y2hlcyBpdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNpc1VzZXJJblJvbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPmlzVXNlckluUm9sZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNpc1ZhbGlkYXRpbmdQYXJzZXIiPjxCPmlzVmFsaWRhdGluZ1BhcnNlcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+STE4bkZhY3RvcnlTZXQ8L0E+Cis8REQ+RG8gd2Ugd2FudCB2YWxpZGF0aW5nIHBhcnNlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCNpc1Zpc2l0ZWQiPjxCPmlzVmlzaXRlZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj5YbWxEZWZpbml0aW9uPC9BPgorPEREPlVzZWQgZm9yIHJlc29sdmluZyBpbmhlcml0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2lzWGh0bWwoKSI+PEI+aXNYaHRtbCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5BbGxvd3MgSFRNTCB0YWdzIHRvIGZpbmQgb3V0IGlmIHRoZXkncmUgbmVzdGVkIHdpdGhpbiBhbiAlbHQ7aHRtbDpodG1sJmd0OyB0YWcgdGhhdAorIGhhcyB4aHRtbCBzZXQgdG8gdHJ1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjaXNYaHRtbCgpIj48Qj5pc1hodG1sKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4KKzxERD5SZXR1cm5zIHRydWUgaWYgdGhpcyBpcyBhbiB4aHRtbCBwYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNpc1hodG1sKCkiPjxCPmlzWGh0bWwoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJldHVybnMgdHJ1ZSBpZiB0aGlzIHRhZyBzaG91bGQgcmVuZGVyIGFzIHhodG1sLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjaXNYaHRtbChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjxCPmlzWGh0bWwoUGFnZUNvbnRleHQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+UmV0dXJucyB0cnVlIGlmIHRoZSBjdXN0b20gdGFncyBhcmUgaW4gWEhUTUwgbW9kZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj48Qj5JdGVyYXRlVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4uPEREPkN1c3RvbSB0YWcgdGhhdCBpdGVyYXRlcyB0aGUgZWxlbWVudHMgb2YgYSBjb2xsZWN0aW9uLCB3aGljaCBjYW4gYmUKKyBlaXRoZXIgYW4gYXR0cmlidXRlIG9yIHRoZSBwcm9wZXJ0eSBvZiBhbiBhdHRyaWJ1dGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjSXRlcmF0ZVRhZygpIj48Qj5JdGVyYXRlVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPjxCPkl0ZXJhdGVUZWk8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sIj5JdGVyYXRlVGVpPC9BPi48REQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPml0ZXJhdGU8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwjSXRlcmF0ZVRlaSgpIj48Qj5JdGVyYXRlVGVpKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sIj5JdGVyYXRlVGVpPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjaXRlcmF0b3IiPjxCPml0ZXJhdG9yPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPkl0ZXJhdG9yIG9mIHRoZSBlbGVtZW50cyBvZiB0aGlzIGNvbGxlY3Rpb24sIHdoaWxlIHdlIGFyZSBhY3R1YWxseQorIHJ1bm5pbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNpdGVyYXRvciI+PEI+aXRlcmF0b3I8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+Cis8REQ+SXRlcmF0b3Igb2YgdGhlIGVsZW1lbnRzIG9mIHRoaXMgZXJyb3IgY29sbGVjdGlvbiwgd2hpbGUgd2UgYXJlIGFjdHVhbGx5CisgcnVubmluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sIj48Qj5JdGVyYXRvckFkYXB0ZXI8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCI+SXRlcmF0b3JBZGFwdGVyPC9BPi48REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbnMtY29sbGVjdGlvbnMnIEl0ZXJhdG9yVXRpbHMuYXNJdGVyYXRvcihFbnVtZXJhdGlvbikuPC9JPjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sI0l0ZXJhdG9yQWRhcHRlcihqYXZhLnV0aWwuRW51bWVyYXRpb24pIj48Qj5JdGVyYXRvckFkYXB0ZXIoRW51bWVyYXRpb24pPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwiPkl0ZXJhdG9yQWRhcHRlcjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDsKKzwvREw+Cis8SFI+Cis8QSBOQU1FPSJfSl8iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPko8L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPjxCPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4uPEREPkN1c3RvbSB0YWcgdGhhdCBnZW5lcmF0ZXMgSmF2YVNjcmlwdCBmb3IgY2xpZW50IHNpZGUgdmFsaWRhdGlvbiBiYXNlZAorIG9uIHRoZSB2YWxpZGF0aW9uIHJ1bGVzIGxvYWRlZCBieSB0aGUgPGNvZGU+VmFsaWRhdG9yUGx1Z0luPC9jb2RlPgorIGRlZmluZWQgaW4gdGhlIHN0cnV0cy1jb25maWcueG1sIGZpbGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNKYXZhc2NyaXB0VmFsaWRhdG9yVGFnKCkiPjxCPkphdmFzY3JpcHRWYWxpZGF0b3JUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9BPgorPEREPiZuYnNwOworPC9ETD4KKzxIUj4KKzxBIE5BTUU9Il9LXyI+PCEtLSAtLT48L0E+PEgyPgorPEI+SzwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2tleSI+PEI+a2V5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+VGhlIGtleSB1c2VkIHRvIGxvb2sgdXAgdGhlIHRleHQgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGlzCisgb3B0aW9uLCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2tleSI+PEI+a2V5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSBrZXkgb2YgdGhlIG1lc3NhZ2UgdG8gYmUgcmV0cmlldmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNrZXkiPjxCPmtleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBzcGVjaWZ5aW5nIHRoZSBlcnJvciBtZXNzYWdlCisgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZXhjZXB0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwja2V5Ij48Qj5rZXk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+Cis8REQ+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCB0aGlzIE1lc3NhZ2VSZXNvdXJjZXMKKyBpbnN0YW5jZSBpcyBzdG9yZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCNrZXkiPjxCPmtleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggdGhpcyBkYXRhIHNvdXJjZQorIGlzIHN0b3JlZCBhbmQgbWFkZSBhdmFpbGFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCNrZXkiPjxCPmtleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+QWN0aW9uTWVzc2FnZTwvQT4KKzxERD5UaGUgbWVzc2FnZSBrZXkgZm9yIHRoaXMgbWVzc2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwja2V5TWV0aG9kTWFwIj48Qj5rZXlNZXRob2RNYXA8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiPkxvb2t1cERpc3BhdGNoQWN0aW9uPC9BPgorPEREPlJlc291cmNlIGtleSB0byBtZXRob2QgbmFtZSBsb29rdXAuCis8L0RMPgorPEhSPgorPEEgTkFNRT0iX0xfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5MPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sI2xhYmVsIj48Qj5sYWJlbDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTGFiZWxWYWx1ZUJlYW4uaHRtbCI+TGFiZWxWYWx1ZUJlYW48L0E+Cis8REQ+VGhlIHByb3BlcnR5IHdoaWNoIHN1cHBsaWVzIHRoZSBvcHRpb24gbGFiZWwgdmlzaWJsZSB0byB0aGUgZW5kIHVzZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNsYWJlbCI+PEI+bGFiZWw8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gcHJvcGVydHkgY29udGFpbmluZyB0aGUgbGFiZWwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNsYWJlbCgpIj48Qj5sYWJlbCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIj5SZXNldFRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGxhYmVsIHZhbHVlIHRvIGRpc3BsYXkgaW4gdGhlIHJlc2V0IGJ1dHRvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjbGFiZWxOYW1lIj48Qj5sYWJlbE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgdGhlIGxhYmVscyBjb2xsZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNsYWJlbFByb3BlcnR5Ij48Qj5sYWJlbFByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD5UaGUgYmVhbiBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSBsYWJlbHMgY29sbGVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwiPjxCPkxhYmVsVmFsdWVCZWFuPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTGFiZWxWYWx1ZUJlYW4uaHRtbCI+TGFiZWxWYWx1ZUJlYW48L0E+LjxERD5BIHNpbXBsZSBKYXZhQmVhbiB0byByZXByZXNlbnQgbGFiZWwtdmFsdWUgcGFpcnMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTGFiZWxWYWx1ZUJlYW4uaHRtbCNMYWJlbFZhbHVlQmVhbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+TGFiZWxWYWx1ZUJlYW4oU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTGFiZWxWYWx1ZUJlYW4uaHRtbCI+TGFiZWxWYWx1ZUJlYW48L0E+Cis8REQ+Q29uc3RydWN0IGFuIGluc3RhbmNlIHdpdGggdGhlIHN1cHBsaWVkIHByb3BlcnR5IHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2xlbmd0aCI+PEI+bGVuZ3RoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBsZW5ndGggdmFsdWUgb3IgYXR0cmlidXRlIG5hbWUgKDw9MCBtZWFucyBubyBsaW1pdCkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNsZW5ndGhDb3VudCI+PEI+bGVuZ3RoQ291bnQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+VGhlIG51bWJlciBvZiBlbGVtZW50cyB3ZSBoYXZlIGFscmVhZHkgcmVuZGVyZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNsZW5ndGhWYWx1ZSI+PEI+bGVuZ3RoVmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+VGhlIGFjdHVhbCBsZW5ndGggdmFsdWUgKGNhbGN1bGF0ZWQgaW4gdGhlIHN0YXJ0IHRhZykuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sIj48Qj5MZXNzRXF1YWxUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiPkxlc3NFcXVhbFRhZzwvQT4uPEREPkV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sI0xlc3NFcXVhbFRhZygpIj48Qj5MZXNzRXF1YWxUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzRXF1YWxUYWcuaHRtbCI+TGVzc0VxdWFsVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sIj48Qj5MZXNzVGhhblRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sIj5MZXNzVGhhblRhZzwvQT4uPEREPkV2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBsZXNzIHRoYW4gdGhlIHNwZWNpZmllZCB2YWx1ZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwjTGVzc1RoYW5UYWcoKSI+PEI+TGVzc1RoYW5UYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sIj5MZXNzVGhhblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2xpbmUiPjxCPmxpbmU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjbGluZUVuZCI+PEI+bGluZUVuZDwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4KKzxERD5UaGUgbGluZSBlbmRpbmcgc3RyaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNsaW5lRW5kIj48Qj5saW5lRW5kPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+VGhlIGxpbmUgZW5kaW5nIHN0cmluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjbGluZUVuZCI+PEI+bGluZUVuZDwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSBsaW5lIGVuZGluZyBzdHJpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNsaW5lSGFzQ2FycmlhZ2UiPjxCPmxpbmVIYXNDYXJyaWFnZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2xpbmVIYXNOZXdsaW5lIj48Qj5saW5lSGFzTmV3bGluZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2xpbmVJbmRleCI+PEI+bGluZUluZGV4PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjbGluZUxlbmd0aCI+PEI+bGluZUxlbmd0aDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2xpbmVTaXplIj48Qj5saW5lU2l6ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sI2xpbmsiPjxCPmxpbms8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCI+U2ltcGxlTWVudUl0ZW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2xpbmsoamF2YS5sYW5nLlN0cmluZykiPjxCPmxpbmsoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPldyYXBwZXIgZm9yIGdldExpbmsoU3RyaW5nKQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNsaW5rTmFtZSI+PEI+bGlua05hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBsaW5rIG5hbWUgZm9yIG5hbWVkIGxpbmtzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI2xpbmtPbGRQcm9wZXJ0eU5hbWVzKGphdmEudXRpbC5NYXApIj48Qj5saW5rT2xkUHJvcGVydHlOYW1lcyhNYXApPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4KKzxERD5MaW5rIG9sZCBwcm9wZXJ0eSBuYW1lcyB0byBuZXcgcHJvcGVydHkgbmFtZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj48Qj5MaW5rVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+LjxERD5HZW5lcmF0ZSBhIFVSTC1lbmNvZGVkIGh5cGVybGluayB0byB0aGUgc3BlY2lmaWVkIFVSSS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI0xpbmtUYWcoKSI+PEI+TGlua1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmh0bWwjbGlzdCI+PEI+bGlzdDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5odG1sIj5YbWxMaXN0QXR0cmlidXRlPC9BPgorPEREPkxpc3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNsaXN0Ij48Qj5saXN0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj5QdXRMaXN0VGFnPC9BPgorPEREPlRoZSBsaXN0IGl0c2VsZi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCNsaXN0Ij48Qj5saXN0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCI+QWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW08L0E+Cis8REQ+VGhlIGxpc3Qgb2YgPGNvZGU+QWN0aW9uTWVzc2FnZTwvY29kZT5zLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNsb2FkZWQiPjxCPmxvYWRlZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+STE4bkZhY3RvcnlTZXQ8L0E+Cis8REQ+Q29sbGVjdGlvbiBvZiBhbHJlYWR5IGxvYWRlZCBkZWZpbml0aW9ucyBzZXQsIHJlZmVyZW5jZWQgYnkgdGhlaXIgc3VmZml4LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwjbG9hZExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+bG9hZExvY2FsZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5Mb2FkIHRoZSBtZXNzYWdlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBMb2NhbGUga2V5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2xvY2FsZSI+PEI+bG9jYWxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+VGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3Igb3VyIGxvY2FsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvY2FsZSI+PEI+bG9jYWxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIGF0dHJpYnV0ZSBrZXkgZm9yIG91ciBsb2NhbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNsb2NhbGUiPjxCPmxvY2FsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT4KKzxERD5UaGUgc2Vzc2lvbiBhdHRyaWJ1dGUga2V5IGZvciBvdXIgbG9jYWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNsb2NhbGUiPjxCPmxvY2FsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPkh0bWxUYWc8L0E+Cis8REQ+U2hvdWxkIHdlIHNldCB0aGUgY3VycmVudCBMb2NhbGUgZm9yIHRoaXMgdXNlciBpZiBuZWVkZWQ/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjbG9jYWxlIj48Qj5sb2NhbGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIGNvbnRhaW5pbmcgdGhlIExvY2FsZSB0byBiZSB1c2VkIGZvcgorIGxvb2tpbmcgdXAgaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNsb2NhbGUiPjxCPmxvY2FsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD5TaG91bGQgd2Ugc3RvcmUgYSBMb2NhbGUgb2JqZWN0IGluIHRoZSB1c2VyJ3Mgc2Vzc2lvbiBpZiBuZWVkZWQ/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0xPQ0FMRV9LRVkiPjxCPkxPQ0FMRV9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCI+R2xvYmFsczwvQT4KKzxERD5UaGUgc2Vzc2lvbiBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCB0aGUgdXNlcidzIHNlbGVjdGVkCisgPGNvZGU+amF2YS51dGlsLkxvY2FsZTwvY29kZT4gaXMgc3RvcmVkLCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sI0xPQ0FMRV9LRVkiPjxCPkxPQ0FMRV9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0xPQ0FMRV9LRVkiPjxCPkxPQ0FMRV9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTE9DQUxFX0tFWSI+PENPREU+R2xvYmFscy5MT0NBTEVfS0VZPC9DT0RFPjwvQT48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2xvY2FsZUtleSI+PEI+bG9jYWxlS2V5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5UaGUgc2Vzc2lvbiBzY29wZSBrZXkgdW5kZXIgd2hpY2ggb3VyIExvY2FsZSBpcyBzdG9yZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNsb2NhbGVLZXkiPjxCPmxvY2FsZUtleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD5UaGUgc2Vzc2lvbiBzY29wZSBrZXkgdW5kZXIgd2hpY2ggb3VyIExvY2FsZSBpcyBzdG9yZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjbG9jYWxlS2V5KGphdmEudXRpbC5Mb2NhbGUpIj48Qj5sb2NhbGVLZXkoTG9jYWxlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5Db21wdXRlIGFuZCByZXR1cm4gYSBrZXkgdG8gYmUgdXNlZCBpbiBjYWNoaW5nIGluZm9ybWF0aW9uIGJ5IGEgTG9jYWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCNsb2NhbGVNYXAiPjxCPmxvY2FsZU1hcDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCI+TG9va3VwRGlzcGF0Y2hBY3Rpb248L0E+Cis8REQ+UmV2ZXJzZSBsb29rdXAgbWFwIGZyb20gcmVzb3VyY2UgdmFsdWUgdG8gcmVzb3VyY2Uga2V5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwjbG9jYWxlcyI+PEI+bG9jYWxlczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5UaGUgc2V0IG9mIGxvY2FsZSBrZXlzIGZvciB3aGljaCB3ZSBoYXZlIGFscmVhZHkgbG9hZGVkIG1lc3NhZ2VzLCBrZXllZAorIGJ5IHRoZSB2YWx1ZSBjYWxjdWxhdGVkIGluIDxjb2RlPmxvY2FsZUtleSgpPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNsb2NhdGlvbiI+PEI+bG9jYXRpb248L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT4KKzxERD5UaGUgbG9jYXRpb24gd2hlcmUgdGhlIG1hdGNoIG11c3QgZXhpc3QgKDxjb2RlPnN0YXJ0PC9jb2RlPiBvcgorIDxjb2RlPmVuZDwvY29kZT4pLCBvciA8Y29kZT5udWxsPC9jb2RlPiBmb3IgYW55d2hlcmUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNsb2NrIj48Qj5sb2NrPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4KKzxERD5UaGUgbG9ja2FibGUgb2JqZWN0IHdlIGNhbiBzeW5jaHJvbml6ZSBvbiwgZXZlbiBpZiBkeW5hQ2xhc3NlcworIGlzIG51bGwsCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNsb2ciPjxCPmxvZzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwiPlZhbGlkYXRvckZvcm08L0E+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI2xvZyI+PEI+bG9nPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JGb3JtPC9BPgorPEREPkNvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCNsb2ciPjxCPmxvZzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIj5EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybTwvQT4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCNsb2ciPjxCPmxvZzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPlZhbGlkYXRvckFjdGlvbkZvcm08L0E+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI2xvZyI+PEI+bG9nPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPkZpZWxkQ2hlY2tzPC9BPgorPEREPkNvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwjbG9nIj48Qj5sb2c8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwiPlZhbGlkYXRvclBsdWdJbjwvQT4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCNsb2ciPjxCPmxvZzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+VGhlIDxjb2RlPkxvZzwvY29kZT4gaW5zdGFuY2UgZm9yIHRoaXMgY2xhc3MuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjbG9nIj48Qj5sb2c8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjbG9nIj48Qj5sb2c8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPkNvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjbG9nIj48Qj5sb2c8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2xvZyI+PEI+bG9nPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2xvZyI+PEI+bG9nPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCI+VGlsZXNVdGlsPC9BPgorPEREPkNvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjbG9nIj48Qj5sb2c8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5UaWxlc1V0aWxJbXBsPC9BPgorPEREPkNvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1NlcnZsZXQuaHRtbCNsb2ciPjxCPmxvZzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNTZXJ2bGV0Lmh0bWwiPlRpbGVzU2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCNsb2ciPjxCPmxvZzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCI+VGlsZXNQbHVnaW48L0E+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2xvZyI+PEI+bG9nPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCI+RGVmaW5pdGlvbnNVdGlsPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjbG9nIj48Qj5sb2c8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwjbG9nIj48Qj5sb2c8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNsb2ciPjxCPmxvZzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwiPkkxOG5GYWN0b3J5U2V0PC9BPgorPEREPkNvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCNsb2ciPjxCPmxvZzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCI+WG1sRGVmaW5pdGlvbjwvQT4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi5odG1sI2xvZyI+PEI+bG9nPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24uaHRtbCI+RGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb248L0E+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNsb2ciPjxCPmxvZzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPkNvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvZyI+PEI+bG9nPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNsb2ciPjxCPmxvZzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCNsb2ciPjxCPmxvZzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPkRpc3BhdGNoQWN0aW9uPC9BPgorPEREPkNvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1N3aXRjaEFjdGlvbi5odG1sI2xvZyI+PEI+bG9nPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvU3dpdGNoQWN0aW9uLmh0bWwiPlN3aXRjaEFjdGlvbjwvQT4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNsb2ciPjxCPmxvZzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjbG9nIj48Qj5sb2c8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPkNvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjTE9HIj48Qj5MT0c8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCNMT0ciPjxCPkxPRzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvTW9kdWxlQ29uZmlnVmVyaWZpZXIuaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZykiPjxCPmxvZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvTW9kdWxlQ29uZmlnVmVyaWZpZXIuaHRtbCI+TW9kdWxlQ29uZmlnVmVyaWZpZXI8L0E+Cis8REQ+TG9nIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSB0byBvdXIgc2VydmxldCBjb250ZXh0IGxvZywgYWZ0ZXIgYQorIGhlYWRlciBpbmNsdWRpbmcgdGhlIG1vZHVsZSBwcmVmaXguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZykiPjxCPmxvZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCI+VmFsaWRhdG9yRm9ybTwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgY29tbW9uLWxvZ2dpbmcgdG8gbG9nIGRlYnVnIG1lc3NhZ2VzLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZykiPjxCPmxvZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JGb3JtPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjb21tb24tbG9nZ2luZywgb3Igb3RoZXIgbG9nZ2luZyBpbXBsZW1lbnRhdGlvbiB0byBsb2cgZGVidWcgbWVzc2FnZXMuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+bG9nKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+TG9nIGEgbWVzc2FnZSB0byB0aGUgV3JpdGVyIHRoYXQgaGFzIGJlZW4gY29uZmlndXJlZCBmb3Igb3VyIHVzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+bG9nKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPkxvZyB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UgdG8gdGhlIHNlcnZsZXQgY29udGV4dCBsb2cgZm9yIHRoaXMKKyB3ZWIgYXBwbGljYXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwjbG9nKGphdmEubGFuZy5TdHJpbmcpIj48Qj5sb2coU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sIj5BY3Rpb25TZXJ2bGV0V3JhcHBlcjwvQT4KKzxERD5Mb2cgbWVzc2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj48Qj5sb2coU3RyaW5nLCBpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgY29tbW9ucy1sb2dnaW5nIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj48Qj5sb2coU3RyaW5nLCBpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwiPkFjdGlvblNlcnZsZXRXcmFwcGVyPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkxvZ2dpbmcgc2hvdWxkIG5vdyB1c2UgdGhlIGNvbW1vbnMgbG9nZ2luZzwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+PEI+bG9nKFN0cmluZywgVGhyb3dhYmxlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwiPlZhbGlkYXRvckZvcm08L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbi1sb2dnaW5nIHRvIGxvZyBkZWJ1ZyBtZXNzYWdlcy48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwjbG9nKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5UaHJvd2FibGUpIj48Qj5sb2coU3RyaW5nLCBUaHJvd2FibGUpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JGb3JtPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjb21tb24tbG9nZ2luZywgb3Igb3RoZXIgbG9nZ2luZyBpbXBsZW1lbnRhdGlvbiB0byBsb2cgZGVidWcgbWVzc2FnZXMuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+PEI+bG9nKFN0cmluZywgVGhyb3dhYmxlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5Mb2cgYSBtZXNzYWdlIGFuZCBleGNlcHRpb24gdG8gdGhlIFdyaXRlciB0aGF0IGhhcyBiZWVuIGNvbmZpZ3VyZWQKKyBmb3Igb3VyIHVzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+PEI+bG9nKFN0cmluZywgVGhyb3dhYmxlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlJlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+TG9nIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSBhbmQgZXhjZXB0aW9uIHRvIHRoZSBzZXJ2bGV0IGNvbnRleHQgbG9nCisgZm9yIHRoaXMgd2ViIGFwcGxpY2F0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0xPTkdfQ09NUEFSRSI+PEI+TE9OR19DT01QQVJFPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPgorPEREPldlIHdpbGwgZG8gYSBsb25nL2ludCBjb21wYXJpc29uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjbG9uZ2Rlc2MiPjxCPmxvbmdkZXNjPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPkZyYW1lVGFnPC9BPgorPEREPlVSSSBvZiBhIGxvbmcgZGVzY3JpcHRpb24gb2YgdGhpcyBmcmFtZSAoY29tcGxlbWVudHMgdGl0bGUpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNsb29rdXAoKSI+PEI+bG9va3VwKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5Mb29rIHVwIHZhbHVlcyBmb3IgdGhlIDxjb2RlPm5hbWU8L2NvZGU+LCA8Y29kZT5zY29wZTwvY29kZT4sIGFuZAorIDxjb2RlPnR5cGU8L2NvZGU+IHByb3BlcnRpZXMgaWYgbmVjZXNzYXJ5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjbG9va3VwKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+bG9va3VwKFBhZ2VDb250ZXh0LCBTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5Mb2NhdGUgYW5kIHJldHVybiB0aGUgc3BlY2lmaWVkIGJlYW4sIGZyb20gYW4gb3B0aW9uYWxseSBzcGVjaWZpZWQKKyBzY29wZSwgaW4gdGhlIHNwZWNpZmllZCBwYWdlIGNvbnRleHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNsb29rdXAoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5sb29rdXAoUGFnZUNvbnRleHQsIFN0cmluZywgU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+TG9jYXRlIGFuZCByZXR1cm4gdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sIGZyb20KKyBhbiBvcHRpb25hbGx5IHNwZWNpZmllZCBzY29wZSwgaW4gdGhlIHNwZWNpZmllZCBwYWdlIGNvbnRleHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Mb29rdXBEaXNwYXRjaEFjdGlvbi5odG1sIj48Qj5Mb29rdXBEaXNwYXRjaEFjdGlvbjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiPkxvb2t1cERpc3BhdGNoQWN0aW9uPC9BPi48REQ+CisKKyAgQW4gYWJzdHJhY3QgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBkaXNwYXRjaGVzIHRvIHRoZSBzdWJjbGFzcyBtYXBwZWQKKyAgPGNvZGU+ZXhlY3V0ZTwvY29kZT4gbWV0aG9kLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwjTG9va3VwRGlzcGF0Y2hBY3Rpb24oKSI+PEI+TG9va3VwRGlzcGF0Y2hBY3Rpb24oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiPkxvb2t1cERpc3BhdGNoQWN0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbG9va3VwUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPmxvb2t1cFByb3BlcnR5KFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2VhcmNoZXMgYWxsIHNjb3BlcyBmb3IgdGhlIGJlYW4gYW5kIGNhbGxzIEJlYW5VdGlscy5nZXRQcm9wZXJ0eSgpIHdpdGggdGhlIAorIGdpdmVuIGFyZ3VtZW50cyBhbmQgY29udmVydHMgYW55IGV4Y2VwdGlvbnMgaW50byBKc3BFeGNlcHRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29wVGFnU3RhdHVzQ2xhc3MiPjxCPmxvb3BUYWdTdGF0dXNDbGFzczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb3BUYWdTdGF0dXNHZXRJbmRleCI+PEI+bG9vcFRhZ1N0YXR1c0dldEluZGV4PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbG9vcFRhZ1N1cHBvcnRDbGFzcyI+PEI+bG9vcFRhZ1N1cHBvcnRDbGFzczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb3BUYWdTdXBwb3J0R2V0U3RhdHVzIj48Qj5sb29wVGFnU3VwcG9ydEdldFN0YXR1czwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNsb3dzcmMiPjxCPmxvd3NyYzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlRoaXMgaXMgbm90IGRlZmluZWQgaW4gdGhlIEhUTUwgNC4wMSBzcGVjIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYQorIGZ1dHVyZSB2ZXJzaW9uIG9mIFN0cnV0cy48L0k+Cis8L0RMPgorPEhSPgorPEEgTkFNRT0iX01fIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5NPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCNtYWluKGphdmEubGFuZy5TdHJpbmdbXSkiPjxCPm1haW4oU3RyaW5nW10pPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sIj5YbWxQYXJzZXI8L0E+Cis8REQ+TWFpbiBtZXRob2QgdG8gY2hlY2sgZmlsZSBzeW50YXguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI21ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPm1ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlKERlZmluaXRpb25zRmFjdG9yeSwgU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPlRpbGVzVXRpbEltcGw8L0E+Cis8REQ+TWFrZSBkZWZpbml0aW9uIGZhY3RvcnkgYWNjZXNzaWJsZSB0byBUYWdzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwjbWFrZURlZmluaXRpb25zRmFjdG9yeUFjY2Vzc2libGUob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+bWFrZURlZmluaXRpb25zRmFjdG9yeUFjY2Vzc2libGUoRGVmaW5pdGlvbnNGYWN0b3J5LCBTZXJ2bGV0Q29udGV4dCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwiPlRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsPC9BPgorPEREPk1ha2UgZGVmaW5pdGlvbiBmYWN0b3J5IGFjY2Vzc2libGUgdG8gdGFncy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNtYWtlRGVmaW5pdGlvbnNGYWN0b3J5QWNjZXNzaWJsZShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnksIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5tYWtlRGVmaW5pdGlvbnNGYWN0b3J5QWNjZXNzaWJsZShEZWZpbml0aW9uc0ZhY3RvcnksIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj48Q09ERT5UaWxlc1V0aWwuY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0LCBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpPC9DT0RFPjwvQT48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI21hcCI+PEI+bWFwPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtFYWNoIGluc2VydCB0YWcgaGFzIGEgbWFwIG9mIGNvbnRlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sI21hcCI+PEI+bWFwPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgbWFwLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNtYXBwaW5nIj48Qj5tYXBwaW5nPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5UaGUgYWN0aW9uIG1hcHBpbmcgIHdpdGggd2hpY2ggdGhpcyBoYW5kbGVyIGlzIGFzc29jaWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI21hcHBpbmciPjxCPm1hcHBpbmc8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPlRoZSBBY3Rpb25NYXBwaW5nIGluc3RhbmNlIHVzZWQgZm9yIHRoaXMgY2xhc3MuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI21hcHBpbmciPjxCPm1hcHBpbmc8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSBBY3Rpb25NYXBwaW5nIGRlZmluaW5nIHdoZXJlIHdlIHdpbGwgYmUgc3VibWl0dGluZyB0aGlzIGZvcm0KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNtYXBwaW5nIj48Qj5tYXBwaW5nPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj5TdHJ1dHNUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IG9iamVjdCB0byBiZSBleHBvc2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNNQVBQSU5HX0tFWSI+PEI+TUFQUElOR19LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCI+R2xvYmFsczwvQT4KKzxERD5UaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIKKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5BY3Rpb25NYXBwaW5nPC9jb2RlPiBpbnN0YW5jZQorIGlzIHBhc3NlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR19LRVkiPjxCPk1BUFBJTkdfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI01BUFBJTkdfS0VZIj48Q09ERT5HbG9iYWxzLk1BUFBJTkdfS0VZPC9DT0RFPjwvQT48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjbWFwcGluZ3MiPjxCPm1hcHBpbmdzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIGNvbGxlY3Rpb24gb2YgQWN0aW9uTWFwcGluZyBpbnN0YW5jZXMsIGtleWVkIGJ5IHJlcXVlc3QgcGF0aC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTUFQUElOR1NfS0VZIj48Qj5NQVBQSU5HU19LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCI+R2xvYmFsczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIGluIE1vZHVsZUNvbmZpZzwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR1NfS0VZIj48Qj5NQVBQSU5HU19LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIGluIE1vZHVsZUNvbmZpZzwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI21hcmdpbmhlaWdodCI+PEI+bWFyZ2luaGVpZ2h0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPkZyYW1lVGFnPC9BPgorPEREPlRoZSBtYXJnaW4gaGVpZ2h0IGluIHBpeGVscywgb3IgemVybyBmb3Igbm8gc2V0dGluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI21hcmdpbndpZHRoIj48Qj5tYXJnaW53aWR0aDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj5GcmFtZVRhZzwvQT4KKzxERD5UaGUgbWFyZ2luIHdpZHRoIGluIHBpeGVscywgb3IgemVybyBmb3Igbm8gc2V0dGluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI21hcmsoaW50KSI+PEI+bWFyayhpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGlzIG1ldGhvZCBjYWxscyBvbiB0aGUgbWFyaygpIG1ldGhvZCBvZiB0aGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjbWFyayhpbnQpIj48Qj5tYXJrKGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPk1hcmtzIHRoZSB1bmRlcmx5aW5nIHN0cmVhbS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI21hcmtTdXBwb3J0ZWQoKSI+PEI+bWFya1N1cHBvcnRlZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGlzIG1ldGhvZCBjYWxscyBvbiB0aGUgbWFya1N1cHBvcnRlZCgpIG1ldGhvZCBvZiB0aGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI21hdGNoIj48Qj5tYXRjaDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlRoZSBhY3R1YWwgdmFsdWVzIHdlIHdpbGwgbWF0Y2ggYWdhaW5zdCwgY2FsY3VsYXRlZCBpbiBkb1N0YXJ0VGFnKCkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjbWF0Y2hlZEJvdW5kYXJ5Qnl0ZXMiPjxCPm1hdGNoZWRCb3VuZGFyeUJ5dGVzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0E+Cis8REQ+aG93IG1hbnkgY3VycmV0bHkgbWF0Y2hlZCBib3VuZGFyeSBieXRlcz8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+PEI+TWF0Y2hUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+LjxERD5FdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBhIHN1YnN0cmluZyBvZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNNYXRjaFRhZygpIj48Qj5NYXRjaFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPk1hdGNoVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNNQVhfQlVORExFU19TRUFSQ0hFRCI+PEI+TUFYX0JVTkRMRVNfU0VBUkNIRUQ8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj5JMThuRmFjdG9yeVNldDwvQT4KKzxERD5NYXhpbXVtIGxlbmd0aCBvZiBvbmUgYnJhbmNoIG9mIHRoZSByZXNvdXJjZSBzZWFyY2ggcGF0aCB0cmVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjbWF4RmlsZVNpemUiPjxCPm1heEZpbGVTaXplPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPgorPEREPlRoZSBtYXhpbXVtIGZpbGUgc2l6ZSB0byBwcm9jZXNzIGZvciBmaWxlIHVwbG9hZHMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWF4bGVuZ3RoIj48Qj5tYXhsZW5ndGg8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5UaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyBhbGxvd2VkLCBvciBuZWdhdGl2ZSBmb3Igbm8gbGltaXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNtYXhMZW5ndGgiPjxCPm1heExlbmd0aDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGUgbWF4aW11bSBsZW5ndGggaW4gYnl0ZXMgdG8gcmVhZCBmcm9tIHRoZSBzdHJlYW0gYXQgYSB0aW1lLCBvciAtMSBmb3IgdW5saW1pdGVkIGxlbmd0aC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNtYXhMZW5ndGhFeGNlZWRlZCI+PEI+bWF4TGVuZ3RoRXhjZWVkZWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5XaGV0aGVyIHRoZSBtYXhpbXVtIGxlbmd0aCBoYXMgYmVlbiBleGNlZWRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+PEI+TWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0I+PC9BPiAtIGV4Y2VwdGlvbiBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPi48REQ+VGhpcyBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gbXVsdGlwYXJ0IHBvc3QgZGF0YSBleGNlZWRzIHRoZSBtYXhpbXVtCisgdmFsdWUgc2V0PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sI01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKCkiPjxCPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+TWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24obG9uZykiPjxCPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKGxvbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjbWF4TGVuZ3RoTWV0Ij48Qj5tYXhMZW5ndGhNZXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+Cis8REQ+V2hldGhlciBvciBub3QgYnl0ZXMgdXAgdG8gdGhlIG1heGltdW0gbGVuZ3RoIGhhdmUgYmVlbiByZWFkCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNtYXhMZW5ndGhNZXQiPjxCPm1heExlbmd0aE1ldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD5XaGV0aGVyIG9yIG5vdCB0aGUgbWF4aW11bSBsZW5ndGggaGFzIGJlZW4gbWV0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjbWF4TGVuZ3RoTWV0KCkiPjxCPm1heExlbmd0aE1ldCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI21heFNpemUiPjxCPm1heFNpemU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+Cis8REQ+VGhlIG1heGltdW0gYWxsb3dlZCBzaXplIGZvciB0aGUgbXVsdGlwYXJ0IGRhdGEsIG9yIC0xIGZvciBhbiB1bmxpbWl0ZWQKKyBtYXhpbXVtIGZpbGUgbGVuZ3RoCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjbWF4U2l6ZSI+PEI+bWF4U2l6ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPlRoZSBtYXhpbXVtIGZpbGUgc2l6ZSBpbiBieXRlcyBhbGxvd2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjbWVtRmlsZVNpemUiPjxCPm1lbUZpbGVTaXplPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPgorPEREPlRoZSBtYXhpbXVtIGZpbGUgc2l6ZSB0byByZXRhaW4gaW4gbWVtb3J5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwiPjxCPk1lbnVJdGVtPC9CPjwvQT4gLSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCI+TWVudUl0ZW08L0E+LjxERD5JbnRlcmZhY2UgZm9yIE1lbnVJdGVtcy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjbWVzc2FnZSI+PEI+bWVzc2FnZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCNtZXNzYWdlIj48Qj5tZXNzYWdlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjbWVzc2FnZSI+PEI+bWVzc2FnZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5NZXNzYWdlc1ByZXNlbnRUYWc8L0E+Cis8REQ+SWYgdGhpcyBpcyBzZXQgdG8gJ3RydWUnLCB0aGVuIHRoZSA8Y29kZT5HbG9iYWxzLk1FU1NBR0VfS0VZPC9jb2RlPiB3aWxsCisgYmUgdXNlZCB0byByZXRyaWV2ZSB0aGUgbWVzc2FnZXMgZnJvbSBzY29wZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI21lc3NhZ2UiPjxCPm1lc3NhZ2U8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+Cis8REQ+SWYgdGhpcyBpcyBzZXQgdG8gJ3RydWUnLCB0aGVuIHRoZSA8Y29kZT5HbG9iYWxzLk1FU1NBR0VfS0VZPC9jb2RlPiB3aWxsCisgYmUgdXNlZCB0byByZXRyaWV2ZSB0aGUgbWVzc2FnZXMgZnJvbSBzY29wZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNNRVNTQUdFX0NBTk5PVF9SRVRSSUVWRV9CT1VOREFSWSI+PEI+TUVTU0FHRV9DQU5OT1RfUkVUUklFVkVfQk9VTkRBUlk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+VGhlIGV4Y2VwdGlvbiBtZXNzYWdlIGZvciB3aGVuIHRoZSBib3VuZGFyeSBvZiBhIG11bHRpcGFydCByZXF1ZXN0IGNhbid0IGJlIGRldGVybWluZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNNRVNTQUdFX0lOVkFMSURfU1RBUlQiPjxCPk1FU1NBR0VfSU5WQUxJRF9TVEFSVDwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI01FU1NBR0VfS0VZIj48Qj5NRVNTQUdFX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sIj5HbG9iYWxzPC9BPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHlvdXIgYWN0aW9uIHNob3VsZCBzdG9yZSBhbgorIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlczwvY29kZT4gb2JqZWN0LCBpZiB5b3UKKyBhcmUgdXNpbmcgdGhlIGNvcnJlc3BvbmRpbmcgY3VzdG9tIHRhZyBsaWJyYXJ5IGVsZW1lbnRzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFX0tFWSI+PEI+TUVTU0FHRV9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTUVTU0FHRV9LRVkiPjxDT0RFPkdsb2JhbHMuTUVTU0FHRV9LRVk8L0NPREU+PC9BPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI21lc3NhZ2UoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5tZXNzYWdlKFBhZ2VDb250ZXh0LCBTdHJpbmcsIFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPkxvb2sgdXAgYW5kIHJldHVybiBhIG1lc3NhZ2Ugc3RyaW5nLCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNtZXNzYWdlKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj48Qj5tZXNzYWdlKFBhZ2VDb250ZXh0LCBTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBPYmplY3RbXSk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5Mb29rIHVwIGFuZCByZXR1cm4gYSBtZXNzYWdlIHN0cmluZywgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNtZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5tZXNzYWdlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5XcmFwcGVyIGZvciBnZXRNZXNzYWdlKFN0cmluZykKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj48Qj5tZXNzYWdlKFN0cmluZywgT2JqZWN0W10pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+V3JhcHBlciBmb3IgZ2V0TWVzc2FnZShTdHJpbmcsT2JqZWN0W10pCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNtZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5tZXNzYWdlKFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSB0ZXh0IHNwZWNpZmllZCBieSB0aGUgbGl0ZXJhbCB2YWx1ZSBvciB0aGUgbWVzc2FnZSByZXNvdXJjZXMKKyBrZXksIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNtZXNzYWdlS2V5KGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5tZXNzYWdlS2V5KExvY2FsZSwgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5Db21wdXRlIGFuZCByZXR1cm4gYSBrZXkgdG8gYmUgdXNlZCBpbiBjYWNoaW5nIGluZm9ybWF0aW9uCisgYnkgTG9jYWxlIGFuZCBtZXNzYWdlIGtleS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNtZXNzYWdlS2V5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5tZXNzYWdlS2V5KFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5Db21wdXRlIGFuZCByZXR1cm4gYSBrZXkgdG8gYmUgdXNlZCBpbiBjYWNoaW5nIGluZm9ybWF0aW9uCisgYnkgbG9jYWxlIGtleSBhbmQgbWVzc2FnZSBrZXkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNtZXNzYWdlUmVzb3VyY2VzIj48Qj5tZXNzYWdlUmVzb3VyY2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjbWVzc2FnZVJlc291cmNlcyI+PEI+bWVzc2FnZVJlc291cmNlczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+VGhlIHNldCBvZiBtZXNzYWdlIHJlc291cmNlcyBjb25maWd1cmF0aW9ucyBmb3IgdGhpcworIG1vZHVsZSwgaWYgYW55LCBrZXllZCBieSB0aGUgPGNvZGU+a2V5PC9jb2RlPiBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+PEI+TWVzc2FnZVJlc291cmNlczwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4uPEREPkdlbmVyYWwgcHVycG9zZSBhYnN0cmFjdCBjbGFzcyB0aGF0IGRlc2NyaWJlcyBhbiBBUEkgZm9yIHJldHJpZXZpbmcKKyBMb2NhbGUtc2Vuc2l0aXZlIG1lc3NhZ2VzIGZyb20gdW5kZXJseWluZyByZXNvdXJjZSBsb2NhdGlvbnMgb2YgYW4KKyB1bnNwZWNpZmllZCBkZXNpZ24sIGFuZCBvcHRpb25hbGx5IHV0aWxpemluZyB0aGUgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4KKyBjbGFzcyB0byBwcm9kdWNlIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzIHdpdGggcGFyYW1ldHJpYyByZXBsYWNlbWVudC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjTWVzc2FnZVJlc291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+TWVzc2FnZVJlc291cmNlcyhNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSwgU3RyaW5nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgTWVzc2FnZVJlc291cmNlcyBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI01lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSwgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPjxCPk1lc3NhZ2VSZXNvdXJjZXMoTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIFN0cmluZywgYm9vbGVhbik8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IE1lc3NhZ2VSZXNvdXJjZXMgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj48Qj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4uPEREPkEgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7bWVzc2FnZS1yZXNvdXJjZXMmZ3Q7PC9jb2RlPiBlbGVtZW50IGluIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sI01lc3NhZ2VSZXNvdXJjZXNDb25maWcoKSI+PEI+TWVzc2FnZVJlc291cmNlc0NvbmZpZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPjxCPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+LjxERD5GYWN0b3J5IGZvciA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBpbnN0YW5jZXMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSgpIj48Qj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sIj5SZXNwb25zZVV0aWxzPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPlRoZSBjYWNoZSBvZiBtZXNzYWdlcyB3ZSBoYXZlIGFjY3VtdWxhdGVkIG92ZXIgdGltZSwga2V5ZWQgYnkgdGhlCisgdmFsdWUgY2FsY3VsYXRlZCBpbiA8Y29kZT5tZXNzYWdlS2V5KCk8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sIj5Gb3J3YXJkVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCI+SHRtbFRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIj5SZXNldFRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj5TdHJ1dHNUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIj5SZXNvdXJjZVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sIj5QYWdlVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPkhlYWRlclRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIj5Db29raWVUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Gb3J3YXJkQWN0aW9uLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sIj5Gb3J3YXJkQWN0aW9uPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCNtZXNzYWdlcyI+PEI+bWVzc2FnZXM8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj5EaXNwYXRjaEFjdGlvbjwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1N3aXRjaEFjdGlvbi5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1N3aXRjaEFjdGlvbi5odG1sIj5Td2l0Y2hBY3Rpb248L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9JbmNsdWRlQWN0aW9uLmh0bWwjbWVzc2FnZXMiPjxCPm1lc3NhZ2VzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sIj5JbmNsdWRlQWN0aW9uPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI21lc3NhZ2VzIj48Qj5tZXNzYWdlczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPkFjdGlvbk1lc3NhZ2VzPC9BPgorPEREPlRoZSBhY2N1bXVsYXRlZCBzZXQgb2YgPGNvZGU+QWN0aW9uTWVzc2FnZTwvY29kZT4gb2JqZWN0cyAocmVwcmVzZW50ZWQKKyBhcyBhbiBBcnJheUxpc3QpIGZvciBlYWNoIHByb3BlcnR5LCBrZXllZCBieSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNNRVNTQUdFU19LRVkiPjxCPk1FU1NBR0VTX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sIj5HbG9iYWxzPC9BPgorPEREPlRoZSBiYXNlIG9mIHRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91cgorIG1vZHVsZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiB3aWxsIGJlIHN0b3JlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUVTU0FHRVNfS0VZIj48Qj5NRVNTQUdFU19LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgR2xvYmFscy5NRVNTQUdFU19LRVkgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj48Qj5NZXNzYWdlc05vdFByZXNlbnRUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPk1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT4uPEREPkV2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIG5vdCBwcmVzZW50IGZvciB0aGlzIHJlcXVlc3QuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCNNZXNzYWdlc05vdFByZXNlbnRUYWcoKSI+PEI+TWVzc2FnZXNOb3RQcmVzZW50VGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPk1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPjxCPk1lc3NhZ2VzUHJlc2VudFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TWVzc2FnZXNQcmVzZW50VGFnPC9BPi48REQ+RXZhbHV0ZSB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiBhbiA8Y29kZT5BY3Rpb25NZXNzYWdlczwvY29kZT4gY2xhc3Mgb3IgYQorIGNsYXNzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhbiA8Y29kZT5BY3Rpb25NZXNzYWdlczwvY29kZT4gY2xhc3MgaXMgaW4KKyByZXF1ZXN0IHNjb3BlIHVuZGVyIHRoZSBzcGVjaWZpZWQga2V5IGFuZCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgbWVzc2FnZSBpbiB0aGUKKyBjbGFzcyBvciBmb3IgdGhlIHByb3BlcnR5IHNwZWNpZmllZC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sI01lc3NhZ2VzUHJlc2VudFRhZygpIj48Qj5NZXNzYWdlc1ByZXNlbnRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TWVzc2FnZXNQcmVzZW50VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPjxCPk1lc3NhZ2VzVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT4uPEREPkN1c3RvbSB0YWcgdGhhdCBpdGVyYXRlcyB0aGUgZWxlbWVudHMgb2YgYSBtZXNzYWdlIGNvbGxlY3Rpb24uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjTWVzc2FnZXNUYWcoKSI+PEI+TWVzc2FnZXNUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUZWkuaHRtbCI+PEI+TWVzc2FnZXNUZWk8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGVpLmh0bWwiPk1lc3NhZ2VzVGVpPC9BPi48REQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPm1lc3NhZ2VzPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RlaS5odG1sI01lc3NhZ2VzVGVpKCkiPjxCPk1lc3NhZ2VzVGVpKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGVpLmh0bWwiPk1lc3NhZ2VzVGVpPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+PEI+TWVzc2FnZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPi48REQ+Q3VzdG9tIHRhZyB0aGF0IHJldHJpZXZlcyBhbiBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcyBzdHJpbmcgKHdpdGgKKyBvcHRpb25hbCBwYXJhbWV0cmljIHJlcGxhY2VtZW50KSBmcm9tIHRoZSA8Y29kZT5BY3Rpb25SZXNvdXJjZXM8L2NvZGU+Cisgb2JqZWN0IHN0b3JlZCBhcyBhIGNvbnRleHQgYXR0cmlidXRlIGJ5IG91ciBhc3NvY2lhdGVkCisgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4gaW1wbGVtZW50YXRpb24uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNNZXNzYWdlVGFnKCkiPjxCPk1lc3NhZ2VUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNtZXRob2QiPjxCPm1ldGhvZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIHJlcXVlc3QgbWV0aG9kIHVzZWQgd2hlbiBzdWJtaXR0aW5nIHRoaXMgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjbWV0aG9kTmFtZSI+PEI+bWV0aG9kTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+VGhpcyB3aWxsIGJlIHVzZWQgYXMgaXMgZm9yIHRoZSBKYXZhU2NyaXB0IHZhbGlkYXRpb24gbWV0aG9kIG5hbWUgaWYgaXQgaGFzIGEgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI21ldGhvZHMiPjxCPm1ldGhvZHM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPkRpc3BhdGNoQWN0aW9uPC9BPgorPEREPlRoZSBzZXQgb2YgTWV0aG9kIG9iamVjdHMgd2UgaGF2ZSBpbnRyb3NwZWN0ZWQgZm9yIHRoaXMgY2xhc3MsCisga2V5ZWQgYnkgbWV0aG9kIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI01PRFVMRV9LRVkiPjxCPk1PRFVMRV9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCI+R2xvYmFsczwvQT4KKzxERD5UaGUgYmFzZSBvZiB0aGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIKKyA8Y29kZT5Nb2R1bGVDb25maWc8L2NvZGU+IGRhdGEgc3RydWN0dXJlIHdpbGwgYmUgc3RvcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI21vZHVsZUF3YXJlIj48Qj5tb2R1bGVBd2FyZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPgorPEREPlNwZWNpZmllcyB3aGV0aGVyIHRoZSBmYWN0b3J5IGlzICJtb2R1bGUtYXdhcmUiLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjbW9kdWxlQXdhcmUiPjxCPm1vZHVsZUF3YXJlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwiPlRpbGVzUGx1Z2luPC9BPgorPEREPklzIHRoZSBmYWN0b3J5IG1vZHVsZSBhd2FyZSA/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI21vZHVsZUNvbmZpZyI+PEI+bW9kdWxlQ29uZmlnPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5UaGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gZm9yIG91ciBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjbW9kdWxlQ29uZmlnIj48Qj5tb2R1bGVDb25maWc8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4KKzxERD5UaGUgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPiB3aXRoIHdoaWNoIHRoaXMgZm9ybSBiZWFuIGRlZmluaXRpb24KKyBpcyBhc3NvY2lhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNtb2R1bGVDb25maWciPjxCPm1vZHVsZUNvbmZpZzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+VGhlIG1vZHVsZSBjb25maWd1cmF0aW9uIHdpdGggd2hpY2ggd2UgYXJlIGFzc29jaWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNtb2R1bGVDb25maWciPjxCPm1vZHVsZUNvbmZpZzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5UaGUgTW9kdWxlQ29uZmlndXJhdGlvbiB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PEI+TW9kdWxlQ29uZmlnPC9CPjwvQT4gLSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPi48REQ+VGhlIGNvbGxlY3Rpb24gb2Ygc3RhdGljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gdGhhdCBkZXNjcmliZXMgYQorIFN0cnV0cy1iYXNlZCBtb2R1bGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPjxCPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj5Nb2R1bGVDb25maWdGYWN0b3J5PC9BPi48REQ+QSBmYWN0b3J5IGludGVyZmFjZSBmb3IgY3JlYXRpbmcgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPnMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwjTW9kdWxlQ29uZmlnRmFjdG9yeSgpIj48Qj5Nb2R1bGVDb25maWdGYWN0b3J5KCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj5Nb2R1bGVDb25maWdGYWN0b3J5PC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+PEI+TW9kdWxlQ29uZmlnSW1wbDwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPi48REQ+VGhlIGNvbGxlY3Rpb24gb2Ygc3RhdGljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gdGhhdCBkZXNjcmliZXMgYQorIFN0cnV0cy1iYXNlZCBtb2R1bGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNNb2R1bGVDb25maWdJbXBsKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLk1vZHVsZUNvbmZpZ0ltcGwpIj48Qj5Nb2R1bGVDb25maWdJbXBsKE1vZHVsZUNvbmZpZ0ltcGwpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+T25seSB1c2VkIHdoaWxlIHdlIGFyZSBkZXByZWNhdGluZyBBcHBsaWNhdGlvbkNvbmZpZyB0byBpbnN1cmUgbWF4aW11bSBjb21wYXRhYmlsaXR5LjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjTW9kdWxlQ29uZmlnSW1wbChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+TW9kdWxlQ29uZmlnSW1wbChTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+Q29uc3RydWN0IGFuIE1vZHVsZUNvbmZpZ0ltcGwgb2JqZWN0IGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPjxCPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvTW9kdWxlQ29uZmlnVmVyaWZpZXIuaHRtbCI+TW9kdWxlQ29uZmlnVmVyaWZpZXI8L0E+LjxERD5Db252ZW5pZW50IGltcGxlbWVudGF0aW9uIG9mIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCI+PENPREU+UGx1Z0luPC9DT0RFPjwvQT4gdGhhdCBwZXJmb3JtcyBhcyBtYW55CisgdmVyaWZpY2F0aW9uIHRlc3RzIG9uIHRoZSBpbmZvcm1hdGlvbiBzdG9yZWQgaW4gdGhlIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4KKyBmb3IgdGhpcyBhcHBsaWNhdGlvbiBtb2R1bGUgYXMgaXMgcHJhY3RpY2FsLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjTW9kdWxlQ29uZmlnVmVyaWZpZXIoKSI+PEI+TW9kdWxlQ29uZmlnVmVyaWZpZXIoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwiPjxCPk1vZHVsZUV4Y2VwdGlvbjwvQj48L0E+IC0gZXhjZXB0aW9uIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+TW9kdWxlRXhjZXB0aW9uPC9BPi48REQ+VXNlZCBmb3Igc3BlY2lhbGl6ZWQgZXhjZXB0aW9uIGhhbmRsaW5nLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sI01vZHVsZUV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+TW9kdWxlRXhjZXB0aW9uKFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+TW9kdWxlRXhjZXB0aW9uPC9BPgorPEREPkNvbnN0cnVjdCBhbiBtb2R1bGUgZXhjZXB0aW9uIHdpdGggbm8gcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwjTW9kdWxlRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48Qj5Nb2R1bGVFeGNlcHRpb24oU3RyaW5nLCBPYmplY3QpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwiPk1vZHVsZUV4Y2VwdGlvbjwvQT4KKzxERD5Db25zdHJ1Y3QgYW4gbW9kdWxlIGV4Y2VwdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwjTW9kdWxlRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3RbXSkiPjxCPk1vZHVsZUV4Y2VwdGlvbihTdHJpbmcsIE9iamVjdFtdKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sIj5Nb2R1bGVFeGNlcHRpb248L0E+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwjTW9kdWxlRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48Qj5Nb2R1bGVFeGNlcHRpb24oU3RyaW5nLCBPYmplY3QsIE9iamVjdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+TW9kdWxlRXhjZXB0aW9uPC9BPgorPEREPkNvbnN0cnVjdCBhbiBtb2R1bGUgZXhjZXB0aW9uIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCNNb2R1bGVFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjxCPk1vZHVsZUV4Y2VwdGlvbihTdHJpbmcsIE9iamVjdCwgT2JqZWN0LCBPYmplY3QpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwiPk1vZHVsZUV4Y2VwdGlvbjwvQT4KKzxERD5Db25zdHJ1Y3QgYW4gbW9kdWxlIGV4Y2VwdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwjTW9kdWxlRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48Qj5Nb2R1bGVFeGNlcHRpb24oU3RyaW5nLCBPYmplY3QsIE9iamVjdCwgT2JqZWN0LCBPYmplY3QpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwiPk1vZHVsZUV4Y2VwdGlvbjwvQT4KKzxERD5Db25zdHJ1Y3QgYW4gbW9kdWxlIGV4Y2VwdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPjxCPk11bHRpYm94VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT4uPEREPlRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImNoZWNrYm94Ii48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNNdWx0aWJveFRhZygpIj48Qj5NdWx0aWJveFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTVVMVElQQVJUX0tFWSI+PEI+TVVMVElQQVJUX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sIj5HbG9iYWxzPC9BPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91ciBtdWx0aXBhcnQgY2xhc3MgaXMgc3RvcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNVUxUSVBBUlRfS0VZIj48Qj5NVUxUSVBBUlRfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIEdsb2JhbHMuTVVMVElQQVJUX0tFWSBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj48Qj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4uPEREPlRoaXMgY2xhc3MgZW5jYXBzdWxhdGVzIHBhcnNpbmcgZnVuY3Rpb25hbGl0eSBmb3IgUkZDMTg2NywgbXVsdGlwYXJ0L2Zvcm0tZGF0YS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNNdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtKCkiPjxCPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI211bHRpcGFydENsYXNzIj48Qj5tdWx0aXBhcnRDbGFzczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+RnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUKKyA8Y29kZT5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvY29kZT4gaW1wbGVtZW50YXRpb24gY2xhc3MgdXNlZCB0bworIHByb2Nlc3MgbXVsdGktcGFydCByZXF1ZXN0IGRhdGEgZm9yIHRoaXMgQWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjbXVsdGlwYXJ0Q2xhc3MiPjxCPm11bHRpcGFydENsYXNzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPgorPEREPlRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcgorIGNsYXNzIHRvIGJlIHVzZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+PEI+TXVsdGlwYXJ0RWxlbWVudDwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+LjxERD5UaGlzIGNsYXNzIHJlcHJlc2VudHMgYW4gZWxlbWVudCBpbiBhIG11bHRpcGFydCByZXF1ZXN0LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI011bHRpcGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPk11bHRpcGFydEVsZW1lbnQoU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD5Db25zdHJ1Y3RvciBmb3IgYSB0ZXh0IGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNNdWx0aXBhcnRFbGVtZW50KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJ5dGVbXSkiPjxCPk11bHRpcGFydEVsZW1lbnQoU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgYnl0ZVtdKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSBjb25zdHJ1Y3RvciB0aGF0IHRha2VzIGFuIEZpbGUgYXMgYW4gYXJndW1lbnQKKyAgICAgICAgICAgICBhcyBvcHBvc2VkIHRvIGEgYnl0ZSBhcnJheSBhcmd1bWVudCwgd2hpY2ggY2FuIGNhdXNlCisgICAgICAgICAgICAgbWVtb3J5IHByb2JsZW1zLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI011bHRpcGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5pby5GaWxlKSI+PEI+TXVsdGlwYXJ0RWxlbWVudChTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBGaWxlKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+Q29uc3RydWN0b3IgZm9yIGEgZmlsZSBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj48Qj5NdWx0aXBhcnRJdGVyYXRvcjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4uPEREPlRoZSBNdWx0aXBhcnRJdGVyYXRvciBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgcmVhZGluZyB0aGUKKyBpbnB1dCBkYXRhIG9mIGEgbXVsdGlwYXJ0IHJlcXVlc3QgYW5kIHNwbGl0dGluZyBpdCB1cCBpbnRvCisgaW5wdXQgZWxlbWVudHMsIHdyYXBwZWQgaW5zaWRlIG9mIGEKKyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Q09ERT5NdWx0aXBhcnRFbGVtZW50PC9DT0RFPjwvQT4KKyBmb3IgZWFzeSBkZWZpbml0aW9uLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNNdWx0aXBhcnRJdGVyYXRvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+TXVsdGlwYXJ0SXRlcmF0b3IoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5Db25zdHJ1Y3RzIGEgTXVsdGlwYXJ0SXRlcmF0b3Igd2l0aCBhIGRlZmF1bHQgYnVmZmVyIHNpemUgYW5kIG5vIGZpbGUgc2l6ZQorIGxpbWl0Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjTXVsdGlwYXJ0SXRlcmF0b3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgaW50KSI+PEI+TXVsdGlwYXJ0SXRlcmF0b3IoSHR0cFNlcnZsZXRSZXF1ZXN0LCBpbnQpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPkNvbnN0cnVjdHMgYSBNdWx0aXBhcnRJdGVyYXRvciB3aXRoIHRoZSBzcGVjaWZpZWQgYnVmZmVyIHNpemUgYW5kCisgbm8gZmlsZSBzaXplIGxpbWl0Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjTXVsdGlwYXJ0SXRlcmF0b3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgaW50LCBsb25nKSI+PEI+TXVsdGlwYXJ0SXRlcmF0b3IoSHR0cFNlcnZsZXRSZXF1ZXN0LCBpbnQsIGxvbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPkNvbnN0cnVjdHMgYSBNdWx0aXBhcnRJdGVyYXRvciB3aXRoIHRoZSBzcGVjaWZpZWQgYnVmZmVyIHNpemUgYW5kCisgdGhlIHNwZWNpZmllZCBmaWxlIHNpemUgbGltaXQgaW4gYnl0ZXMKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNNdWx0aXBhcnRJdGVyYXRvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBpbnQsIGxvbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5NdWx0aXBhcnRJdGVyYXRvcihIdHRwU2VydmxldFJlcXVlc3QsIGludCwgbG9uZywgU3RyaW5nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI211bHRpcGFydFJlcXVlc3RIYW5kbGVyIj48Qj5tdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4KKzxERD5UaGUgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgZm9yIHRoaXMgZm9ybSwgY2FuIGJlCisgPGNvZGU+bnVsbDwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxCPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPjwvQT4gLSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4uPEREPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyIHByb3ZpZGVzIGFuIHN0YW5kYXJkIGludGVyZmFjZSBmb3Igc3RydXRzIHRvCisgZGVhbCB3aXRoIGZpbGUgdXBsb2FkcyBmcm9tIGZvcm1zIHdpdGggZW5jdHlwZXMgb2YgIm11bHRpcGFydC9mb3JtLWRhdGEiLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+PEI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+LjxERD5UaGlzIGNsYXNzIGZ1bmN0aW9ucyBhcyBhIHdyYXBwZXIgYXJvdW5kIEh0dHBTZXJ2bGV0UmVxdWVzdCB0bworIHByb3ZpZGUgd29ya2luZyBnZXRQYXJhbWV0ZXIgbWV0aG9kcyBmb3IgbXVsdGlwYXJ0IHJlcXVlc3RzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCI+PEI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0E+LjxERD5UaGlzIGNsYXNzIGltcGxlbWVudHMgYW4gaW5wdXRTdHJlYW0gdGhhdCByZWFkcyBhbm90aGVyIHN0cmVhbSB1bnRpbCAKKyBhIG11bHRpcGFydCBib3VuZGFyeSBpcyBmb3VuZC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjTXVsdGlwYXJ0VmFsdWVTdHJlYW0oamF2YS5pby5JbnB1dFN0cmVhbSwgamF2YS5sYW5nLlN0cmluZykiPjxCPk11bHRpcGFydFZhbHVlU3RyZWFtKElucHV0U3RyZWFtLCBTdHJpbmcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwiPk11bHRpcGFydFZhbHVlU3RyZWFtPC9BPgorPEREPkNyZWF0ZSBhIHN0cmVhbSB0aGF0IHN0b3BzIHJlYWRpbmcgYXQgdGhlIGJvdW5kYXJ5CisKKyBOT1RFOiB0aGUgYm91bmRhcnkgcGFyYW1ldGVyIGlzIHdpdGhvdXQgdGhlIHRyYWlsaW5nIGRhc2hlcyAiLS0iLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI211bHRpcGxlIj48Qj5tdWx0aXBsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPlNob3VsZCBtdWx0aXBsZSBzZWxlY3Rpb25zIGJlIGFsbG93ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjbXVsdGlwbGUiPjxCPm11bHRpcGxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+Cis8REQ+UmV0dXJuIGFuIGFycmF5IG9mIHBhcmFtZXRlciB2YWx1ZXMgaWYgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGlzCisgbm9uLW51bGwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjbXVsdGlwbGUiPjxCPm11bHRpcGxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj5IZWFkZXJUYWc8L0E+Cis8REQ+UmV0dXJuIGFuIGFycmF5IG9mIGhlYWRlciB2YWx1ZXMgaWYgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGlzIG5vbi1udWxsLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI211bHRpcGxlIj48Qj5tdWx0aXBsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+Q29va2llVGFnPC9BPgorPEREPlJldHVybiBhbiBhcnJheSBvZiBDb29raWVzIGlmIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcyBub24tbnVsbC4KKzwvREw+Cis8SFI+Cis8QSBOQU1FPSJfTl8iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPk48L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+VGhlIGVsZW1lbnQgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8REQ+RGVmaW5pdGlvbiBuYW1lCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCI+WG1sQXR0cmlidXRlPC9BPgorPEREPkF0dHJpYnV0ZSBuYW1lIG9yIGtleS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sIj5JbXBvcnRBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+Q2xhc3MgbmFtZSBvZiBvYmplY3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPk5hbWUgdG8gaW5zZXJ0Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBjb250ZW50J3MgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgdGhhdCB0aGlzIHRhZyBpbmNsdWRlcyAob3IgcHJpbnRzKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSb290VGFnLmh0bWwiPk5lc3RlZFJvb3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBjb2xsZWN0aW9uIG9yIG93bmluZyBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCI+Rm9yd2FyZFRhZzwvQT4KKzxERD5UaGUgbG9naWNhbCBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBlbnRyeSB0byBiZQorIGxvb2tlZCB1cC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIEpTUCBiZWFuIHRvIGJlIHVzZWQgYXMgYSB2YXJpYWJsZSAoaWYKKyA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gaXMgbm90IHNwZWNpZmllZCksIG9yIHdob3NlIHByb3BlcnR5IGlzIHRvIGJlCisgYWNjZXNzZWQgKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBzcGVjaWZpZWQpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD5UaGUgSlNQIGJlYW4gbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyB0aGUgdmFsdWVzIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyBjb2xsZWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4KKzxERD5UaGUgcmVxdWVzdCBhdHRyaWJ1dGUga2V5IGZvciBvdXIgZXJyb3IgbWVzc2FnZXMgKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBKU1AgYmVhbiBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj5UZXh0YXJlYVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT4KKzxERD5UaGUgcmVxdWVzdCBhdHRyaWJ1dGUga2V5IGZvciBvdXIgZXJyb3IgbWVzc2FnZXMgKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPk11bHRpYm94VGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBKU1AgYmVhbiBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5UaGUgYXR0cmlidXRlIGtleSB1bmRlciB3aGljaCBvdXIgYXNzb2NpYXRlZCBiZWFuIGlzIHN0b3JlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gb3duaW5nIHRoZSBwcm9wZXJ0eSB0byBiZSBleHBvc2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD5OYW1lIG9mIHRoZSBiZWFuIHRoYXQgY29udGFpbnMgdGhlIG1lc3NhZ2Uga2V5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD5OYW1lIG9mIHRoZSBiZWFuIHRoYXQgY29udGFpbnMgdGhlIGRhdGEgd2Ugd2lsbCBiZSByZW5kZXJpbmcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIG93bmluZyB0aGUgcHJvcGVydHkgdG8gYmUgY291bnRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+UmVzb3VyY2VUYWc8L0E+Cis8REQ+VGhlIG1vZHVsZS1yZWxhdGl2ZSBVUkkgb2YgdGhlIHJlc291cmNlIHdob3NlIGNvbnRlbnRzIGFyZSB0bworIGJlIGV4cG9zZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+UGFyYW1ldGVyVGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZXhwb3NlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNuYW1lIj48Qj5uYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj5IZWFkZXJUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGhlYWRlciB3aG9zZSB2YWx1ZSBpcyB0byBiZSBleHBvc2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPkNvb2tpZVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgY29va2llIHdob3NlIHZhbHVlIGlzIHRvIGJlIGV4cG9zZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPgorPEREPlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGlzIGZvcm0gYmVhbiwgd2hpY2ggaXMgdXNlZCB0byByZWZlcmVuY2UgdGhpcworIGJlYW4gaW4gPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gaW5zdGFuY2VzIGFzIHdlbGwgYXMgZm9yIHRoZSBuYW1lIG9mCisgdGhlIHJlcXVlc3Qgb3Igc2Vzc2lvbiBhdHRyaWJ1dGUgdW5kZXIgd2hpY2ggdGhlIGNvcnJlc3BvbmRpbmcgZm9ybSBiZWFuCisgaW5zdGFuY2UgaXMgY3JlYXRlZCBvciBhY2Nlc3NlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+TmFtZSBvZiB0aGUgZm9ybSBiZWFuLCBpZiBhbnksIGFzc29jaWF0ZWQgd2l0aCB0aGlzIEFjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+Cis8REQ+VGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoaXMgZm9yd2FyZCwgd2hpY2ggaXMgdXNlZCB0byByZWZlcmVuY2UgaXQKKyBpbiA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sI25hbWUiPjxCPm5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPgorPEREPlRoZSBKYXZhQmVhbiBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBkZXNjcmliZWQgYnkgdGhpcyBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjbmFtZSI+PEI+bmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4KKzxERD5UaGUgImR5bmFtaWMgY2xhc3MgbmFtZSIgZm9yIHRoaXMgPGNvZGU+RHluYUNsYXNzPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwjTkVTVEVEX0lOQ0xVREVTX0tFWSI+PEI+TkVTVEVEX0lOQ0xVREVTX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwiPk5lc3RlZFByb3BlcnR5SGVscGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sIj48Qj5OZXN0ZWRDaGVja2JveFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sIj5OZXN0ZWRDaGVja2JveFRhZzwvQT4uPEREPk5lc3RlZENoZWNrYm94VGFnLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkQ2hlY2tib3hUYWcuaHRtbCNOZXN0ZWRDaGVja2JveFRhZygpIj48Qj5OZXN0ZWRDaGVja2JveFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwiPk5lc3RlZENoZWNrYm94VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUYWcuaHRtbCI+PEI+TmVzdGVkRGVmaW5lVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRhZy5odG1sIj5OZXN0ZWREZWZpbmVUYWc8L0E+LjxERD5OZXN0ZWREZWZpbmVUYWcuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUYWcuaHRtbCNOZXN0ZWREZWZpbmVUYWcoKSI+PEI+TmVzdGVkRGVmaW5lVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGFnLmh0bWwiPk5lc3RlZERlZmluZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGVpLmh0bWwiPjxCPk5lc3RlZERlZmluZVRlaTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUZWkuaHRtbCI+TmVzdGVkRGVmaW5lVGVpPC9BPi48REQ+TmVzdGVkRGVmaW5lVGVpIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBpbXBsaWVkIHNldHRpbmcgb2YgdGhlIG5hbWUgcHJvcGVydHkKKyBvZiBhIG5lc3RlZCB0YWcgaXMgcHJvcGVybHkgaGFuZGVkIGluIHRoZSBjYXN0aW5nIG9mIHRoZSBkZWZpbmVkIG9iamVjdC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRlaS5odG1sI05lc3RlZERlZmluZVRlaSgpIj48Qj5OZXN0ZWREZWZpbmVUZWkoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUZWkuaHRtbCI+TmVzdGVkRGVmaW5lVGVpPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRW1wdHlUYWcuaHRtbCI+PEI+TmVzdGVkRW1wdHlUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFbXB0eVRhZy5odG1sIj5OZXN0ZWRFbXB0eVRhZzwvQT4uPEREPk5lc3RlZEVtcHR5VGFnLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwjTmVzdGVkRW1wdHlUYWcoKSI+PEI+TmVzdGVkRW1wdHlUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwiPk5lc3RlZEVtcHR5VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRXF1YWxUYWcuaHRtbCI+PEI+TmVzdGVkRXF1YWxUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sIj5OZXN0ZWRFcXVhbFRhZzwvQT4uPEREPk5lc3RlZEVxdWFsVGFnLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwjTmVzdGVkRXF1YWxUYWcoKSI+PEI+TmVzdGVkRXF1YWxUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwiPk5lc3RlZEVxdWFsVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRFcnJvcnNUYWcuaHRtbCI+PEI+TmVzdGVkRXJyb3JzVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEVycm9yc1RhZy5odG1sIj5OZXN0ZWRFcnJvcnNUYWc8L0E+LjxERD5OZXN0ZWRFcnJvcnNUYWcuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRFcnJvcnNUYWcuaHRtbCNOZXN0ZWRFcnJvcnNUYWcoKSI+PEI+TmVzdGVkRXJyb3JzVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwiPk5lc3RlZEVycm9yc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sIj48Qj5OZXN0ZWRGaWxlVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZpbGVUYWcuaHRtbCI+TmVzdGVkRmlsZVRhZzwvQT4uPEREPk5lc3RlZEZpbGVUYWcuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwjTmVzdGVkRmlsZVRhZygpIj48Qj5OZXN0ZWRGaWxlVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sIj5OZXN0ZWRGaWxlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwiPjxCPk5lc3RlZEZvcm1UYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRm9ybVRhZy5odG1sIj5OZXN0ZWRGb3JtVGFnPC9BPi48REQ+TmVzdGVkRm9ybVRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCNOZXN0ZWRGb3JtVGFnKCkiPjxCPk5lc3RlZEZvcm1UYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwiPk5lc3RlZEZvcm1UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCI+PEI+TmVzdGVkR3JlYXRlckVxdWFsVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwiPk5lc3RlZEdyZWF0ZXJFcXVhbFRhZzwvQT4uPEREPk5lc3RlZEdyZWF0ZXJFcXVhbFRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCNOZXN0ZWRHcmVhdGVyRXF1YWxUYWcoKSI+PEI+TmVzdGVkR3JlYXRlckVxdWFsVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCI+TmVzdGVkR3JlYXRlckVxdWFsVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCI+PEI+TmVzdGVkR3JlYXRlclRoYW5UYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sIj5OZXN0ZWRHcmVhdGVyVGhhblRhZzwvQT4uPEREPk5lc3RlZEdyZWF0ZXJUaGFuVGFnLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwjTmVzdGVkR3JlYXRlclRoYW5UYWcoKSI+PEI+TmVzdGVkR3JlYXRlclRoYW5UYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwiPk5lc3RlZEdyZWF0ZXJUaGFuVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCI+PEI+TmVzdGVkSGlkZGVuVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEhpZGRlblRhZy5odG1sIj5OZXN0ZWRIaWRkZW5UYWc8L0E+LjxERD5OZXN0ZWRIaWRkZW5UYWcuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCNOZXN0ZWRIaWRkZW5UYWcoKSI+PEI+TmVzdGVkSGlkZGVuVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSGlkZGVuVGFnLmh0bWwiPk5lc3RlZEhpZGRlblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1hZ2VUYWcuaHRtbCI+PEI+TmVzdGVkSW1hZ2VUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1hZ2VUYWcuaHRtbCI+TmVzdGVkSW1hZ2VUYWc8L0E+LjxERD5OZXN0ZWRNdWx0aWJveFRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwjTmVzdGVkSW1hZ2VUYWcoKSI+PEI+TmVzdGVkSW1hZ2VUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWFnZVRhZy5odG1sIj5OZXN0ZWRJbWFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwiPjxCPk5lc3RlZEltZ1RhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWdUYWcuaHRtbCI+TmVzdGVkSW1nVGFnPC9BPi48REQ+TmVzdGVkSW1nVGFnLCByZW5kZXJzIHRoZSBuZXN0ZWQgdmVyc2lvbiBvZiB0aGUgPGltZz4gdGFnLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwjTmVzdGVkSW1nVGFnKCkiPjxCPk5lc3RlZEltZ1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltZ1RhZy5odG1sIj5OZXN0ZWRJbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPjxCPk5lc3RlZEl0ZXJhdGVUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPk5lc3RlZEl0ZXJhdGVUYWc8L0E+LjxERD5OZXN0ZWRJdGVyYXRlVGFnLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCNOZXN0ZWRJdGVyYXRlVGFnKCkiPjxCPk5lc3RlZEl0ZXJhdGVUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCI+TmVzdGVkSXRlcmF0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUZWkuaHRtbCI+PEI+TmVzdGVkSXRlcmF0ZVRlaTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUZWkuaHRtbCI+TmVzdGVkSXRlcmF0ZVRlaTwvQT4uPEREPk5lc3RlZEl0ZXJhdGVUZWkKKyBFeHRlbmRpbmcgdGhlIG9yaWdpbmFsIHRhZydzIHRlaSBjbGFzcywgc28gdGhhdCB3ZSBjYW4gbWFrZSB0aGUgImlkIgorIGF0dHJpYnV0ZSBvcHRpb25hbCwgc28gdGhhdCB0aG9zZSB3aG8gd2FudCB0byBzY3JpcHQgY2FuIGFkZCBpdCBpZiB0aGV5IG5lZWQKKyBpdCBvdGhlcndpc2Ugd2UgY2FuIG1haW50YWluIHRoZSBuaWNlIGxlYW4gdGFnIG1hcmt1cC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGVpLmh0bWwjTmVzdGVkSXRlcmF0ZVRlaSgpIj48Qj5OZXN0ZWRJdGVyYXRlVGVpKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGVpLmh0bWwiPk5lc3RlZEl0ZXJhdGVUZWk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCI+PEI+TmVzdGVkTGVzc0VxdWFsVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwiPk5lc3RlZExlc3NFcXVhbFRhZzwvQT4uPEREPk5lc3RlZExlc3NFcXVhbFRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCNOZXN0ZWRMZXNzRXF1YWxUYWcoKSI+PEI+TmVzdGVkTGVzc0VxdWFsVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCI+TmVzdGVkTGVzc0VxdWFsVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc1RoYW5UYWcuaHRtbCI+PEI+TmVzdGVkTGVzc1RoYW5UYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sIj5OZXN0ZWRMZXNzVGhhblRhZzwvQT4uPEREPk5lc3RlZExlc3NUaGFuVGFnLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NUaGFuVGFnLmh0bWwjTmVzdGVkTGVzc1RoYW5UYWcoKSI+PEI+TmVzdGVkTGVzc1RoYW5UYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NUaGFuVGFnLmh0bWwiPk5lc3RlZExlc3NUaGFuVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwiPjxCPk5lc3RlZExpbmtUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTGlua1RhZy5odG1sIj5OZXN0ZWRMaW5rVGFnPC9BPi48REQ+TmVzdGVkTGlua1RhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCNOZXN0ZWRMaW5rVGFnKCkiPjxCPk5lc3RlZExpbmtUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwiPk5lc3RlZExpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNYXRjaFRhZy5odG1sIj48Qj5OZXN0ZWRNYXRjaFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1hdGNoVGFnLmh0bWwiPk5lc3RlZE1hdGNoVGFnPC9BPi48REQ+TmVzdGVkTWF0Y2hUYWcuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbCNOZXN0ZWRNYXRjaFRhZygpIj48Qj5OZXN0ZWRNYXRjaFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbCI+TmVzdGVkTWF0Y2hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+PEI+TmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT4uPEREPk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCNOZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcoKSI+PEI+TmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPjxCPk5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWc8L0E+LjxERD5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnKCkiPjxCPk5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCI+PEI+TmVzdGVkTWVzc2FnZXNUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNUYWc8L0E+LjxERD5OZXN0ZWRNZXNzYWdlc1RhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE1lc3NhZ2VzVGFnLmh0bWwjTmVzdGVkTWVzc2FnZXNUYWcoKSI+PEI+TmVzdGVkTWVzc2FnZXNUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sIj48Qj5OZXN0ZWRNZXNzYWdlVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZVRhZzwvQT4uPEREPk5lc3RlZFdyaXRlVGFnLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sI05lc3RlZE1lc3NhZ2VUYWcoKSI+PEI+TmVzdGVkTWVzc2FnZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTXVsdGlib3hUYWcuaHRtbCI+PEI+TmVzdGVkTXVsdGlib3hUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTXVsdGlib3hUYWcuaHRtbCI+TmVzdGVkTXVsdGlib3hUYWc8L0E+LjxERD5OZXN0ZWRNdWx0aWJveFRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwjTmVzdGVkTXVsdGlib3hUYWcoKSI+PEI+TmVzdGVkTXVsdGlib3hUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sIj5OZXN0ZWRNdWx0aWJveFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPjxCPk5lc3RlZE5hbWVTdXBwb3J0PC9CPjwvQT4gLSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPi48REQ+VGhpcyBpcyBzbyB0aGF0IG1hbmFnaW5nIGNsYXNzZXMgY2FuIHRlbGwgaWYgYSBuZXN0ZWQgdGFnIG5lZWRzIHRvIGhhdmUgaXRzCisgPGk+bmFtZTwvaT4gcHJvcGVydHkgc2V0LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwiPjxCPk5lc3RlZE5vdEVtcHR5VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCI+TmVzdGVkTm90RW1wdHlUYWc8L0E+LjxERD5OZXN0ZWROb3RFbXB0eVRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFbXB0eVRhZy5odG1sI05lc3RlZE5vdEVtcHR5VGFnKCkiPjxCPk5lc3RlZE5vdEVtcHR5VGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFbXB0eVRhZy5odG1sIj5OZXN0ZWROb3RFbXB0eVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVxdWFsVGFnLmh0bWwiPjxCPk5lc3RlZE5vdEVxdWFsVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCI+TmVzdGVkTm90RXF1YWxUYWc8L0E+LjxERD5OZXN0ZWROb3RFcXVhbFRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sI05lc3RlZE5vdEVxdWFsVGFnKCkiPjxCPk5lc3RlZE5vdEVxdWFsVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sIj5OZXN0ZWROb3RFcXVhbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdE1hdGNoVGFnLmh0bWwiPjxCPk5lc3RlZE5vdE1hdGNoVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCI+TmVzdGVkTm90TWF0Y2hUYWc8L0E+LjxERD5OZXN0ZWROb3RNYXRjaFRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sI05lc3RlZE5vdE1hdGNoVGFnKCkiPjxCPk5lc3RlZE5vdE1hdGNoVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIj5OZXN0ZWROb3RNYXRjaFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCI+PEI+TmVzdGVkTm90UHJlc2VudFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkTm90UHJlc2VudFRhZzwvQT4uPEREPk5lc3RlZE5vdFByZXNlbnRUYWcuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90UHJlc2VudFRhZy5odG1sI05lc3RlZE5vdFByZXNlbnRUYWcoKSI+PEI+TmVzdGVkTm90UHJlc2VudFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWROb3RQcmVzZW50VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj48Qj5OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZzwvQT4uPEREPk5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNOZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZygpIj48Qj5OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwiPjxCPk5lc3RlZE9wdGlvbnNUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc1RhZy5odG1sIj5OZXN0ZWRPcHRpb25zVGFnPC9BPi48REQ+TmVzdGVkT3B0aW9uc1RhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCNOZXN0ZWRPcHRpb25zVGFnKCkiPjxCPk5lc3RlZE9wdGlvbnNUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwiPk5lc3RlZE9wdGlvbnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQYXJlbnRTdXBwb3J0Lmh0bWwiPjxCPk5lc3RlZFBhcmVudFN1cHBvcnQ8L0I+PC9BPiAtIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUGFyZW50U3VwcG9ydC5odG1sIj5OZXN0ZWRQYXJlbnRTdXBwb3J0PC9BPi48REQ+VGhpcyBpbnRlcmZhY2UgaXMgc28gbWFuYWdpbmcgY2xhc3NlcyBvZiB0aGUgbmVzdGVkIHRhZyBjYW4gaWRlbnRpZnkgYSB0YWcKKyBhcyBhIHBhcmVudCB0YWcgdGhhdCBvdGhlciB0YWdzIHJldHJpZXZlIG5lc3RlZCBwcm9wZXJ0aWVzIGZyb20uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRQYXNzd29yZFRhZy5odG1sIj48Qj5OZXN0ZWRQYXNzd29yZFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRQYXNzd29yZFRhZy5odG1sIj5OZXN0ZWRQYXNzd29yZFRhZzwvQT4uPEREPk5lc3RlZFBhc3N3b3JkVGFnLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCNOZXN0ZWRQYXNzd29yZFRhZygpIj48Qj5OZXN0ZWRQYXNzd29yZFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwiPk5lc3RlZFBhc3N3b3JkVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkUHJlc2VudFRhZy5odG1sIj48Qj5OZXN0ZWRQcmVzZW50VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkUHJlc2VudFRhZy5odG1sIj5OZXN0ZWRQcmVzZW50VGFnPC9BPi48REQ+TmVzdGVkUHJlc2VudFRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwjTmVzdGVkUHJlc2VudFRhZygpIj48Qj5OZXN0ZWRQcmVzZW50VGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwiPk5lc3RlZFByZXNlbnRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sIj48Qj5OZXN0ZWRQcm9wZXJ0eUhlbHBlcjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwiPk5lc3RlZFByb3BlcnR5SGVscGVyPC9BPi48REQ+QSBzaW1wbGUgaGVscGVyIGNsYXNzIHRoYXQgZG9lcyBldmVyeXRoaW5nIHRoYXQgbmVlZHMgdG8gYmUgZG9uZSB0byBnZXQKKyB0aGUgbmVzdGVkIHRhZyBleHRlbnNpb24gdG8gd29yay48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sI05lc3RlZFByb3BlcnR5SGVscGVyKCkiPjxCPk5lc3RlZFByb3BlcnR5SGVscGVyKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sIj5OZXN0ZWRQcm9wZXJ0eUhlbHBlcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj48Qj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0I+PC9BPiAtIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4uPEREPlRoaXMgaW50ZXJmYWNlIGlzIGZvciBtYW5hZ2luZyBjbGFzc2VzIG9mIHRoZSBuZXN0ZWQgZXh0ZW5zaW9uLCBzbyB0aGV5IGNhbgorIGtub3cgdG8gc2V0IHRoZSB0YWcncyA8aT5wcm9wZXJ0eTwvaT4gcHJvcGVydHkuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCI+PEI+TmVzdGVkUHJvcGVydHlUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIj5OZXN0ZWRQcm9wZXJ0eVRhZzwvQT4uPEREPk5lc3RlZFByb3BlcnR5VGFnLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5VGFnLmh0bWwjTmVzdGVkUHJvcGVydHlUYWcoKSI+PEI+TmVzdGVkUHJvcGVydHlUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5VGFnLmh0bWwiPk5lc3RlZFByb3BlcnR5VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRSYWRpb1RhZy5odG1sIj48Qj5OZXN0ZWRSYWRpb1RhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRSYWRpb1RhZy5odG1sIj5OZXN0ZWRSYWRpb1RhZzwvQT4uPEREPk5lc3RlZFJhZGlvVGFnLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCNOZXN0ZWRSYWRpb1RhZygpIj48Qj5OZXN0ZWRSYWRpb1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFJhZGlvVGFnLmh0bWwiPk5lc3RlZFJhZGlvVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUmVmZXJlbmNlLmh0bWwiPjxCPk5lc3RlZFJlZmVyZW5jZTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj5OZXN0ZWRSZWZlcmVuY2U8L0E+LjxERD5TbyB0aGF0IGEgbmVzdGVkIGhpZXJhcmNoeSBjYW4gcGVuZXRyYXRlIGEgZHluYW1pYyBKU1AgaW5jbHVkZSwgdGhpcyBjbGFzcworIHdpbGwgaG9sZCB0aGUgZGV0YWlscyBvZiBhIGJlYW4gbmFtZSBhbmQgbmVzdGVkIHByb3BlcnR5LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sI05lc3RlZFJlZmVyZW5jZSgpIj48Qj5OZXN0ZWRSZWZlcmVuY2UoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj5OZXN0ZWRSZWZlcmVuY2U8L0E+Cis8REQ+RW1wdHkgY29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSZWZlcmVuY2UuaHRtbCNOZXN0ZWRSZWZlcmVuY2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPk5lc3RlZFJlZmVyZW5jZShTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSZWZlcmVuY2UuaHRtbCI+TmVzdGVkUmVmZXJlbmNlPC9BPgorPEREPkNvbnN0cnVjdG9yIHRha2VzIHRoZSBhbGwgdGhlIHJlbGV2YW50IGRldGFpbHMgdG8gaW5pdCB0aGUgb2JqZWN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sIj48Qj5OZXN0ZWRSb290VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sIj5OZXN0ZWRSb290VGFnPC9BPi48REQ+TmVzdGVkUm9vdFRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSb290VGFnLmh0bWwjTmVzdGVkUm9vdFRhZygpIj48Qj5OZXN0ZWRSb290VGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSb290VGFnLmh0bWwiPk5lc3RlZFJvb3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sIj48Qj5OZXN0ZWRTZWxlY3RUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU2VsZWN0VGFnLmh0bWwiPk5lc3RlZFNlbGVjdFRhZzwvQT4uPEREPk5lc3RlZFNlbGVjdFRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sI05lc3RlZFNlbGVjdFRhZygpIj48Qj5OZXN0ZWRTZWxlY3RUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTZWxlY3RUYWcuaHRtbCI+TmVzdGVkU2VsZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRTaXplVGFnLmh0bWwiPjxCPk5lc3RlZFNpemVUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sIj5OZXN0ZWRTaXplVGFnPC9BPi48REQ+TmVzdGVkU2l6ZVRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCNOZXN0ZWRTaXplVGFnKCkiPjxCPk5lc3RlZFNpemVUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRTaXplVGFnLmh0bWwiPk5lc3RlZFNpemVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFN1Ym1pdFRhZy5odG1sIj48Qj5OZXN0ZWRTdWJtaXRUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwiPk5lc3RlZFN1Ym1pdFRhZzwvQT4uPEREPk5lc3RlZFN1Ym1pdFRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFN1Ym1pdFRhZy5odG1sI05lc3RlZFN1Ym1pdFRhZygpIj48Qj5OZXN0ZWRTdWJtaXRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTdWJtaXRUYWcuaHRtbCI+TmVzdGVkU3VibWl0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj48Qj5OZXN0ZWRUYWdTdXBwb3J0PC9CPjwvQT4gLSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT4uPEREPlRoaXMgaXMgdG8gc2ltcGx5IGFsbG93IG1hbmFnaW5nIGNsYXNzZXMgdG8gaWRlbnRpZnkgdGhlIHRhZ3MgdG8gaW52b2tlCisgY29tbW9uIG1ldGhvZHMgYWdhaW5zdCB0aGVtLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dGFyZWFUYWcuaHRtbCI+PEI+TmVzdGVkVGV4dGFyZWFUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dGFyZWFUYWcuaHRtbCI+TmVzdGVkVGV4dGFyZWFUYWc8L0E+LjxERD5OZXN0ZWRUZXh0YXJlYVRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwjTmVzdGVkVGV4dGFyZWFUYWcoKSI+PEI+TmVzdGVkVGV4dGFyZWFUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIj5OZXN0ZWRUZXh0YXJlYVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sIj48Qj5OZXN0ZWRUZXh0VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRUYWcuaHRtbCI+TmVzdGVkVGV4dFRhZzwvQT4uPEREPk5lc3RlZFRleHRUYWcuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwjTmVzdGVkVGV4dFRhZygpIj48Qj5OZXN0ZWRUZXh0VGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sIj5OZXN0ZWRUZXh0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiPjxCPk5lc3RlZFdyaXRlTmVzdGluZ1RhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sIj5OZXN0ZWRXcml0ZU5lc3RpbmdUYWc8L0E+LjxERD5OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwjTmVzdGVkV3JpdGVOZXN0aW5nVGFnKCkiPjxCPk5lc3RlZFdyaXRlTmVzdGluZ1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiPk5lc3RlZFdyaXRlTmVzdGluZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCI+PEI+TmVzdGVkV3JpdGVUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCI+TmVzdGVkV3JpdGVUYWc8L0E+LjxERD5OZXN0ZWRXcml0ZVRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFdyaXRlVGFnLmh0bWwjTmVzdGVkV3JpdGVUYWcoKSI+PEI+TmVzdGVkV3JpdGVUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRXcml0ZVRhZy5odG1sIj5OZXN0ZWRXcml0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCNuZXN0aW5nIj48Qj5uZXN0aW5nPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPk5lc3RlZEl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNuZXdJbnN0YW5jZSgpIj48Qj5uZXdJbnN0YW5jZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4KKzxERD5JbnN0YW50aWF0ZSBhbmQgcmV0dXJuIGEgbmV3IDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj48Q09ERT5EeW5hQWN0aW9uRm9ybTwvQ09ERT48L0E+IGluc3RhbmNlLAorIGFzc29jaWF0ZWQgd2l0aCB0aGlzIDxjb2RlPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjTkVXTElORV9CWVRFIj48Qj5ORVdMSU5FX0JZVEU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwjbmV4dCgpIj48Qj5uZXh0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCI+SXRlcmF0b3JBZGFwdGVyPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0VtcHR5SXRlcmF0b3IuaHRtbCNuZXh0KCkiPjxCPm5leHQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRW1wdHlJdGVyYXRvci5odG1sIj5FbXB0eUl0ZXJhdG9yPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI05PX0RFQlVHIj48Qj5OT19ERUJVRzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwiPkRlZmluaXRpb25zVXRpbDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtVc2VyIERlYnVnIGxldmVsCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNub2NhY2hlIj48Qj5ub2NhY2hlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPgorPEREPlNob3VsZCB3ZSBzZXQgbm8tY2FjaGUgSFRUUCBoZWFkZXJzIG9uIGVhY2ggcmVzcG9uc2U/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9Ob09wQWN0aW9uLmh0bWwiPjxCPk5vT3BBY3Rpb248L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9Ob09wQWN0aW9uLmh0bWwiPk5vT3BBY3Rpb248L0E+LjxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2Ugby5hLnMuYS5Gb3J3YXJkQWN0aW9uIGluc3RlYWQgd2l0aCB0aGUgcGFyYW1ldGVyIGF0dHJpYnV0ZToKKyA8Y29kZT4KKyAgICAmbHQ7YWN0aW9uIHBhdGg9ImFQYXRoIgorICAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuRm9yd2FyZEFjdGlvbiIKKyAgICAgICAgICAgICAgICBwYXJhbWV0ZXI9InRpbGVzLmRlZi5uYW1lIiAvJmd0OworIDwvY29kZT48L0k+PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvTm9PcEFjdGlvbi5odG1sI05vT3BBY3Rpb24oKSI+PEI+Tm9PcEFjdGlvbigpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvTm9PcEFjdGlvbi5odG1sIj5Ob09wQWN0aW9uPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjbm9yZXNpemUiPjxCPm5vcmVzaXplPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPkZyYW1lVGFnPC9BPgorPEREPlNob3VsZCB1c2VycyBiZSBkaXNhbGxvd2VkIHRvIHJlc2l6ZSB0aGUgZnJhbWU/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj48Qj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9CPjwvQT4gLSBleGNlcHRpb24gb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9BPi48REQ+RXhjZXB0aW9uIHRocm93biB3aGVuIGEgZGVmaW5pdGlvbiBpcyBub3QgZm91bmQuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCNOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uKCkiPjxCPk5vU3VjaERlZmluaXRpb25FeGNlcHRpb24oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCNOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcpIj48Qj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uKFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT4KKzxERD5Db25zdHJ1Y3Rvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbCI+PEI+Tm90RW1wdHlUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbCI+Tm90RW1wdHlUYWc8L0E+LjxERD5FdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBub3QgZW1wdHkgZm9yIHRoaXMgcmVxdWVzdC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVtcHR5VGFnLmh0bWwjTm90RW1wdHlUYWcoKSI+PEI+Tm90RW1wdHlUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFbXB0eVRhZy5odG1sIj5Ob3RFbXB0eVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCI+PEI+Tm90RXF1YWxUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCI+Tm90RXF1YWxUYWc8L0E+LjxERD5FdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgYW5kIHZhbHVlIGFyZSBub3QgZXF1YWwuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sI05vdEVxdWFsVGFnKCkiPjxCPk5vdEVxdWFsVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCI+Tm90RXF1YWxUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPjxCPk5vdE1hdGNoVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPk5vdE1hdGNoVGFnPC9BPi48REQ+RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgbm90IGEgc3Vic3RyaW5nIG9mIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sI05vdE1hdGNoVGFnKCkiPjxCPk5vdE1hdGNoVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCI+Tm90TWF0Y2hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbCI+PEI+Tm90UHJlc2VudFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwiPk5vdFByZXNlbnRUYWc8L0E+LjxERD5FdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBub3QgcHJlc2VudCBmb3IgdGhpcyByZXF1ZXN0LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sI05vdFByZXNlbnRUYWcoKSI+PEI+Tm90UHJlc2VudFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbCI+Tm90UHJlc2VudFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sI251bGxWYWx1ZSI+PEI+bnVsbFZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPgorPEREPlNob3VsZCB3ZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4gZm9yIHVua25vd24gbWVzc2FnZSBrZXlzPworPC9ETD4KKzxIUj4KKzxBIE5BTUU9Il9PXyI+PCEtLSAtLT48L0E+PEgyPgorPEI+TzwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjb2Zmc2V0Ij48Qj5vZmZzZXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+VGhlIHN0YXJ0aW5nIG9mZnNldCAoemVybyByZWxhdGl2ZSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNvZmZzZXRWYWx1ZSI+PEI+b2Zmc2V0VmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+VGhlIGFjdHVhbCBvZmZzZXQgdmFsdWUgKGNhbGN1bGF0ZWQgaW4gdGhlIHN0YXJ0IHRhZykuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmJsdXIiPjxCPm9uYmx1cjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5Db21wb25lbnQgbG9zdCBmb2N1cyBldmVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uY2hhbmdlIj48Qj5vbmNoYW5nZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5Db250ZW50IGNoYW5nZWQgYWZ0ZXIgY29tcG9uZW50IGxvc3QgZm9jdXMgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNsaWNrIj48Qj5vbmNsaWNrPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPk1vdXNlIGNsaWNrIGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25kYmxjbGljayI+PEI+b25kYmxjbGljazwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5Nb3VzZSBkb3VibGUgY2xpY2sgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmZvY3VzIj48Qj5vbmZvY3VzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPkNvbXBvbmVudCBoYXMgcmVjZWl2ZWQgZm9jdXMgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleWRvd24iPjxCPm9ua2V5ZG93bjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5LZXkgZG93biBpbiBjb21wb25lbnQgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleXByZXNzIj48Qj5vbmtleXByZXNzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPktleSBkb3duIGFuZCB1cCB0b2dldGhlciBpbiBjb21wb25lbnQgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleXVwIj48Qj5vbmtleXVwPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPktleSByZWxlYXNlZCBpbiBjb21wb25lbnQgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlZG93biI+PEI+b25tb3VzZWRvd248L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+TW91c2UgcHJlc3NlZCBvbiBjb21wb25lbnQgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlbW92ZSI+PEI+b25tb3VzZW1vdmU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+TW91c2UgbW92ZWQgb3ZlciBjb21wb25lbnQgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlb3V0Ij48Qj5vbm1vdXNlb3V0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPk1vdXNlIGV4aXQgY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW92ZXIiPjxCPm9ubW91c2VvdmVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPk1vdXNlIG92ZXIgY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZXVwIj48Qj5vbm1vdXNldXA8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+TW91c2UgcmVsZWFzZWQgb24gY29tcG9uZW50IGV2ZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNvbnJlc2V0Ij48Qj5vbnJlc2V0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5UaGUgb25SZXNldCBldmVudCBzY3JpcHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbnNlbGVjdCI+PEI+b25zZWxlY3Q8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+VGV4dCBzZWxlY3RlZCBpbiBjb21wb25lbnQgZXZlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI29uc3VibWl0Ij48Qj5vbnN1Ym1pdDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIG9uU3VibWl0IGV2ZW50IHNjcmlwdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj48Qj5PcHRpb25zQ29sbGVjdGlvblRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+LjxERD5UYWcgZm9yIGNyZWF0aW5nIG11bHRpcGxlICZsdDtzZWxlY3QmZ3Q7IG9wdGlvbnMgZnJvbSBhIGNvbGxlY3Rpb24uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjT3B0aW9uc0NvbGxlY3Rpb25UYWcoKSI+PEI+T3B0aW9uc0NvbGxlY3Rpb25UYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj48Qj5PcHRpb25zVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+LjxERD5UYWcgZm9yIGNyZWF0aW5nIG11bHRpcGxlICZsdDtzZWxlY3QmZ3Q7IG9wdGlvbnMgZnJvbSBhIGNvbGxlY3Rpb24uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNPcHRpb25zVGFnKCkiPjxCPk9wdGlvbnNUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj48Qj5PcHRpb25UYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+LjxERD5UYWcgZm9yIHNlbGVjdCBvcHRpb25zLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNPcHRpb25UYWcoKSI+PEI+T3B0aW9uVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzPC9CPjwvQT4gLSBwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzPEREPiZuYnNwOzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQj48L0E+IC0gcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248REQ+IFRoZSBhY3Rpb24gcGFja2FnZSBpcyB0aGUgY29yZSBvZiB0aGUgc3RydXRzIGZyYW1ld29yaywKKyAgICBwcm92aWRpbmcgdGhlICJDb250cm9sbGVyIiBhc3BlY3Qgb2YgYSBNVkMgbW9kZWwuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0I+PC9BPiAtIHBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczxERD4gVGhlIGFjdGlvbnMgcGFja2FnZSBwcm92aWRlcyBzcGVjaWFsIGFkYXB0ZXJzIGJldHdlZW4gdGhlIGluY29taW5nICBIVFRQCisgcmVxdWVzdCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYnVzaW5lc3MgbG9naWMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9CPjwvQT4gLSBwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzxERD5UaGUgImNvbmZpZyIgcGFja2FnZSBjb250YWlucyBjb25maWd1cmF0aW9uIG9iamVjdHMgdGhhdCBjb3JyZXNwb25kIHRvCitlbGVtZW50cyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPgorbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9CPjwvQT4gLSBwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPEREPiZuYnNwOzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zPC9CPjwvQT4gLSBwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnM8REQ+Jm5ic3A7PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvQj48L0E+IC0gcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjxERD5UaGUgInN0cnV0cy1iZWFuIiB0YWcgbGlicmFyeSBjb250YWlucyBKU1AgY3VzdG9tIHRhZ3MgdXNlZnVsIGluIGRlZmluaW5nCituZXcgYmVhbnMgKGluIGFueSBkZXNpcmVkIHNjb3BlKSBmcm9tIGEgdmFyaWV0eSBvZiBwb3NzaWJsZSBzb3VyY2VzLCBhcyB3ZWxsCithcyBhIHRhZyB0byByZW5kZXIgYSBwYXJ0aWN1bGFyIGJlYW4gKG9yIGJlYW4gcHJvcGVydHkpIHRvIHRoZSBvdXRwdXQgcmVzcG9uc2UuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQj48L0E+IC0gcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDxERD48YSBuYW1lPSJkb2MuRGVzY3JpcHRpb24iPlRoZSAic3RydXRzLWh0bWwiIHRhZyBsaWJyYXJ5PC9hPgorICBjb250YWlucyBKU1AgY3VzdG9tIHRhZ3MgdXNlZnVsIGluIGNyZWF0aW5nIGR5bmFtaWMgSFRNTCB1c2VyIGludGVyZmFjZXMsCitpbmNsdWRpbmcgaW5wdXQgZm9ybXMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9CPjwvQT4gLSBwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzxERD5UaGUgInN0cnV0cy1sb2dpYyIgdGFnIGxpYnJhcnkgY29udGFpbnMgdGFncyB0aGF0IGFyZSB1c2VmdWwgaW4gbWFuYWdpbmcKK2NvbmRpdGlvbmFsIGdlbmVyYXRpb24gb2Ygb3V0cHV0IHRleHQsIGxvb3Bpbmcgb3ZlciBvYmplY3QgY29sbGVjdGlvbnMKK2ZvciByZXBldGl0aXZlIGdlbmVyYXRpb24gb2Ygb3V0cHV0IHRleHQsIGFuZCBhcHBsaWNhdGlvbiBmbG93IG1hbmFnZW1lbnQuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQ8L0I+PC9BPiAtIHBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDxERD5OZXN0ZWQgdGFncyAmYW1wOyBzdXBwb3J0aW5nIGNsYXNzZXMgZXh0ZW5kIHRoZSBiYXNlIHN0cnV0cyB0YWdzIHRvCithbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQj48L0E+IC0gcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW48REQ+VGhlIG5lc3RlZCBiZWFuIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvY29kZT4KKyAgICAgdGFncyB0byBhbGxvdyB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0I+PC9BPiAtIHBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPEREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+CisgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9CPjwvQT4gLSBwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8REQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+CisgICB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlPC9CPjwvQT4gLSBwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTxERD4KKyAgIAk8Yj5Ob3RlOjwvYj4gQXMgb2YgU3RydXRzIDEuMSB0aGUgdGVtcGxhdGUgdGFnIGxpYnJhcnkgaXMgCisgICAJZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBUaWxlcy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsPC9CPjwvQT4gLSBwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsPEREPiZuYnNwOzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQj48L0E+IC0gcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8REQ+ICAgICBUaGUgInN0cnV0cy10aWxlcyIgdGFnIGxpYnJhcnkgY29udGFpbnMgdGFncyB0aGF0IGFyZSB1c2VmdWwgaW4KK2NyZWF0aW5nIGR5bmFtaWMgcmV1c2FibGUgY29tcG9uZW50cy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dDwvQj48L0E+IC0gcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0PEREPiZuYnNwOzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWw8L0I+PC9BPiAtIHBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWw8REQ+Jm5ic3A7PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQj48L0E+IC0gcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlczxERD48ZGl2IGNsYXNzPSJtYWluQ29udGVudCI+CisgICAgVGhlIFRpbGVzIHRhZ2xpYiBhbmQgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyB3ZWIgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSAKKyAgICBwaWVjZXMgb2YgcGFnZXMsIGNhbGxlZCBUaWxlcy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9uczwvQj48L0E+IC0gcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zPEREPiZuYnNwOzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnM8L0I+PC9BPiAtIHBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnM8REQ+Jm5ic3A7PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0I+PC9BPiAtIHBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbjxERD4mbmJzcDs8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQj48L0E+IC0gcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPEREPiZuYnNwOzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQj48L0E+IC0gcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8REQ+IFRoZSB1cGxvYWQgcGFja2FnZSBmYWNpbGl0aWVzIHRvIHVwbG9hZCBmaWxlcyB1c2luZworIG11bHRpLXBhcnQgcmVxdWVzdHMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0I+PC9BPiAtIHBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDxERD5UaGUgVXRpbGl0aWVzIHBhY2thZ2UgcHJvdmlkZXMgYSB2YXJpZXR5IG9mIGZhbWlsaWVzIG9mIGNsYXNzZXMsCit0byBzb2x2ZSBwcm9ibGVtcyB0aGF0IGFyZSBjb21tb25seSBlbmNvdW50ZXJlZCBpbiBidWlsZGluZyB3ZWIgYXBwbGljYXRpb25zLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQj48L0E+IC0gcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8REQ+IFRoZSB2YWxpZGF0b3IgcGFja2FnZSBwcm92aWRlcyBhIHNlcmllcyBvZiBjbGFzc2VzIHRvIHZhbGlkYXRlIAorICAgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gdHlwZSBvZiBpbnB1dC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCNvcmlnaW5hbExhYmVsUHJvcGVydHkiPjxCPm9yaWdpbmFsTGFiZWxQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCI+TmVzdGVkT3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sIj5OZXN0ZWRSb290VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCI+TmVzdGVkUHJvcGVydHlUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwjb3JpZ2luYWxOYW1lIj48Qj5vcmlnaW5hbE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkUHJlc2VudFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWROb3RQcmVzZW50VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCI+TmVzdGVkTm90TWF0Y2hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sI29yaWdpbmFsTmFtZSI+PEI+b3JpZ2luYWxOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sIj5OZXN0ZWROb3RFcXVhbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwjb3JpZ2luYWxOYW1lIj48Qj5vcmlnaW5hbE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwiPk5lc3RlZE5vdEVtcHR5VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjb3JpZ2luYWxOYW1lIj48Qj5vcmlnaW5hbE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1hdGNoVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj48Qj5vcmlnaW5hbE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1hdGNoVGFnLmh0bWwiPk5lc3RlZE1hdGNoVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc1RoYW5UYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc1RoYW5UYWcuaHRtbCI+TmVzdGVkTGVzc1RoYW5UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwiPk5lc3RlZExlc3NFcXVhbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sIj5OZXN0ZWRJdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCI+TmVzdGVkR3JlYXRlclRoYW5UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwiPk5lc3RlZEdyZWF0ZXJFcXVhbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj48Qj5vcmlnaW5hbE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwiPk5lc3RlZEVxdWFsVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRW1wdHlUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRW1wdHlUYWcuaHRtbCI+TmVzdGVkRW1wdHlUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj48Qj5vcmlnaW5hbE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIj5OZXN0ZWRUZXh0YXJlYVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sI29yaWdpbmFsTmFtZSI+PEI+b3JpZ2luYWxOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sIj5OZXN0ZWRUZXh0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTZWxlY3RUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sIj5OZXN0ZWRTZWxlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFJhZGlvVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj48Qj5vcmlnaW5hbE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRSYWRpb1RhZy5odG1sIj5OZXN0ZWRSYWRpb1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwiPk5lc3RlZFBhc3N3b3JkVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj48Qj5vcmlnaW5hbE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwiPk5lc3RlZE9wdGlvbnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj48Qj5vcmlnaW5hbE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTXVsdGlib3hUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwiPk5lc3RlZE11bHRpYm94VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sI29yaWdpbmFsTmFtZSI+PEI+b3JpZ2luYWxOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltZ1RhZy5odG1sI29yaWdpbmFsTmFtZSI+PEI+b3JpZ2luYWxOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwiPk5lc3RlZEltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSGlkZGVuVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj48Qj5vcmlnaW5hbE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCI+TmVzdGVkSGlkZGVuVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj48Qj5vcmlnaW5hbE5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwiPk5lc3RlZEZpbGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEVycm9yc1RhZy5odG1sI29yaWdpbmFsTmFtZSI+PEI+b3JpZ2luYWxOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwiPk5lc3RlZEVycm9yc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkQ2hlY2tib3hUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwiPk5lc3RlZENoZWNrYm94VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRXcml0ZVRhZy5odG1sI29yaWdpbmFsTmFtZSI+PEI+b3JpZ2luYWxOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCI+TmVzdGVkV3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCI+TmVzdGVkU2l6ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sI29yaWdpbmFsTmFtZSI+PEI+b3JpZ2luYWxOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPjxCPm9yaWdpbmFsTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRhZy5odG1sIj5OZXN0ZWREZWZpbmVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sI29yaWdpbmFsTmVzdCI+PEI+b3JpZ2luYWxOZXN0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIj5OZXN0ZWRQcm9wZXJ0eVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCNvcmlnaW5hbE5lc3RpbmciPjxCPm9yaWdpbmFsTmVzdGluZzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sIj5OZXN0ZWRSb290VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sI29yaWdpbmFsTmVzdGluZyI+PEI+b3JpZ2luYWxOZXN0aW5nPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPk5lc3RlZEl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCNvcmlnaW5hbE5lc3RpbmciPjxCPm9yaWdpbmFsTmVzdGluZzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCI+TmVzdGVkRm9ybVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCNvcmlnaW5hbE5lc3RpbmdOYW1lIj48Qj5vcmlnaW5hbE5lc3RpbmdOYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSb290VGFnLmh0bWwiPk5lc3RlZFJvb3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwjb3JpZ2luYWxOZXN0aW5nTmFtZSI+PEI+b3JpZ2luYWxOZXN0aW5nTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sIj5OZXN0ZWRJdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwjb3JpZ2luYWxOZXN0aW5nTmFtZSI+PEI+b3JpZ2luYWxOZXN0aW5nTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCI+TmVzdGVkRm9ybVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPjxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sIj5OZXN0ZWRXcml0ZU5lc3RpbmdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPjxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5VGFnLmh0bWwiPk5lc3RlZFByb3BlcnR5VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkUHJlc2VudFRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPjxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkUHJlc2VudFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij48Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE5vdFByZXNlbnRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPjxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdE1hdGNoVGFnLmh0bWwiPk5lc3RlZE5vdE1hdGNoVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij48Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sIj5OZXN0ZWROb3RFcXVhbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+PEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCI+TmVzdGVkTm90RW1wdHlUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij48Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+PEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1hdGNoVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+PEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbCI+TmVzdGVkTWF0Y2hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPjxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NUaGFuVGFnLmh0bWwiPk5lc3RlZExlc3NUaGFuVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+PEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwiPk5lc3RlZExlc3NFcXVhbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij48Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPk5lc3RlZEl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPjxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwiPk5lc3RlZEdyZWF0ZXJUaGFuVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+PEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwiPk5lc3RlZEdyZWF0ZXJFcXVhbFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+PEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRXF1YWxUYWcuaHRtbCI+TmVzdGVkRXF1YWxUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFbXB0eVRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPjxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwiPk5lc3RlZEVtcHR5VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPjxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIj5OZXN0ZWRUZXh0YXJlYVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPjxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwiPk5lc3RlZFRleHRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFN1Ym1pdFRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPjxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTdWJtaXRUYWcuaHRtbCI+TmVzdGVkU3VibWl0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTZWxlY3RUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij48Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU2VsZWN0VGFnLmh0bWwiPk5lc3RlZFNlbGVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij48Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCI+TmVzdGVkUmFkaW9UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+PEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwiPk5lc3RlZFBhc3N3b3JkVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+PEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCI+TmVzdGVkT3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij48Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+TmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+PEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwiPk5lc3RlZE11bHRpYm94VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPjxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+PEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltZ1RhZy5odG1sIj5OZXN0ZWRJbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+PEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwiPk5lc3RlZEltYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij48Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSGlkZGVuVGFnLmh0bWwiPk5lc3RlZEhpZGRlblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPjxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwiPk5lc3RlZEZpbGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEVycm9yc1RhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPjxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRFcnJvcnNUYWcuaHRtbCI+TmVzdGVkRXJyb3JzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPjxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sIj5OZXN0ZWRDaGVja2JveFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij48Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCI+TmVzdGVkV3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij48Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sIj5OZXN0ZWRTaXplVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRNZXNzYWdlVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+PEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+PEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRhZy5odG1sIj5OZXN0ZWREZWZpbmVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCNvcmlnTmFtZSI+PEI+b3JpZ05hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwiPk5lc3RlZExpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCNvcmlnUGFyYW1Qcm9wZXJ0eSI+PEI+b3JpZ1BhcmFtUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwiPk5lc3RlZExpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCNvcmlnUHJvcGVydHkiPjxCPm9yaWdQcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCI+TmVzdGVkTGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCNvdmVybG9hZChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb24pIj48Qj5vdmVybG9hZChYbWxEZWZpbml0aW9uKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCI+WG1sRGVmaW5pdGlvbjwvQT4KKzxERD5PdmVybG9hZCB0aGlzIGRlZmluaXRpb24gd2l0aCBwYXNzZWQgY2hpbGQuCis8L0RMPgorPEhSPgorPEEgTkFNRT0iX1BfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5QPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwjUGFja2FnZSI+PEI+UGFja2FnZTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwiPkNvbnN0YW50czwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGlzIHBhY2thZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNwYWdlIj48Qj5wYWdlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj5WYWxpZGF0b3JGb3JtPC9BPgorPEREPlVzZWQgdG8gaW5kaWNhdGUgdGhlIGN1cnJlbnQgcGFnZSBvZiBhIG11bHRpLXBhZ2UgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCNwYWdlIj48Qj5wYWdlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCI+RHluYVZhbGlkYXRvckZvcm08L0E+Cis8REQ+VXNlZCB0byBpbmRpY2F0ZSB0aGUgY3VycmVudCBwYWdlIG9mIGEgbXVsdGktcGFnZSBmb3JtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3BhZ2UiPjxCPnBhZ2U8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIj5EZWZpbml0aW9uVGFnU3VwcG9ydDwvQT4KKzxERD5Vcmkgb2YgcGFnZSBhc3NvaWNhdGVkIHRvIHRoaXMgZGVmaW5pdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCNwYWdlIj48Qj5wYWdlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLkluc2VydEhhbmRsZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjcGFnZSI+PEI+cGFnZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPlRoZSBtb2R1bGUtcmVsYXRpdmUgcGFnZSBVUkwgKGJlZ2lubmluZyB3aXRoIGEgc2xhc2gpIHRvIHdoaWNoCisgdGhpcyByZWRpcmVjdCB3aWxsIGJlIHJlbmRlcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNwYWdlIj48Qj5wYWdlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4KKzxERD5UaGUgY3VycmVudCBwYWdlIG51bWJlciBvZiBhIG11bHRpLXBhcnQgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFnZSI+PEI+cGFnZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYWdlIFVSTCAoYmVnaW5uaW5nIHdpdGggYSBzbGFzaCkgdG8gd2hpY2gKKyB0aGlzIGh5cGVybGluayB3aWxsIGJlIHJlbmRlcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjcGFnZSI+PEI+cGFnZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD5UaGUgbW9kdWxlLXJlbGF0aXZlIFVSSSBvZiB0aGUgaW1hZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcGFnZSI+PEI+cGFnZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBtb2R1bGUtcmVsYXRpdmUgcGF0aCwgc3RhcnRpbmcgd2l0aCBhIHNsYXNoIGNoYXJhY3Rlciwgb2YgdGhlCisgaW1hZ2UgdG8gYmUgZGlzcGxheWVkIGJ5IHRoaXMgcmVuZGVyZWQgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNwYWdlIj48Qj5wYWdlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD5UaGUgY29udGV4dC1yZWxhdGl2ZSBVUkkgb2YgdGhlIHBhZ2Ugb3Igc2VydmxldCB0byBiZSBpbmNsdWRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcGFnZUNvbnRleHQiPjxCPnBhZ2VDb250ZXh0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5UcmljayB0byBhbGxvd3MgaW5uZXIgY2xhc3NlcyB0byBhY2Nlc3MgcGFnZUNvbnRleHQKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3BhZ2VLZXkiPjxCPnBhZ2VLZXk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgbW9kdWxlLXJlbGF0aXZlIFVSSSBvZiB0aGUgaW1hZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcGFnZUtleSI+PEI+cGFnZUtleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgdW5kZXIgd2hpY2ggd2Ugc2hvdWxkIGxvb2sgdXAgdGhlCisgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0YWcsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3BhZ2VQYXR0ZXJuIj48Qj5wYWdlUGF0dGVybjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD5UaGUgcmVwbGFjZW1lbnQgcGF0dGVybiB1c2VkIHRvIGRldGVybWluZSBhIGNvbnRleHQtcmVsYXRpdmUgVVJMCisgZnJvbSB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIG9mIFN0cnV0cyB0YWdzIGFuZCBjb25maWd1cmF0aW9uCisgcHJvcGVydGllcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPjxCPlBhZ2VUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCI+UGFnZVRhZzwvQT4uPEREPkRlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IGV4cG9zZXMgdGhlIHJlcXVlc3RlZCBwYWdlIGNvbnRleHQKKyBpdGVtIGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlIGFuZCBhIHBhZ2Ugc2NvcGUgYmVhbi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI1BhZ2VUYWcoKSI+PEI+UGFnZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPlBhZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRlaS5odG1sIj48Qj5QYWdlVGVpPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGVpLmh0bWwiPlBhZ2VUZWk8L0E+LjxERD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+cGFnZTwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRlaS5odG1sI1BhZ2VUZWkoKSI+PEI+UGFnZVRlaSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGVpLmh0bWwiPlBhZ2VUZWk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNwYWdlVVJMKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5wYWdlVVJMKEh0dHBTZXJ2bGV0UmVxdWVzdCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPlJldHVybiB0aGUgY29udGV4dC1yZWxhdGl2ZSBVUkwgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgc3BlY2lmaWVkCisgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIHZhbHVlLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZQorIDxjb2RlPnBhZ2VQYXR0ZXJuPC9jb2RlPiBwcm9wZXJ0eSBvZiB0aGUgY3VycmVudCBtb2R1bGUncworIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+PEI+cGFyYW1ldGVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgSFRUUCByZXF1ZXN0IHBhcmFtZXRlciB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3BhcmFtZXRlciI+PEI+cGFyYW1ldGVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5HZW5lcmFsIHB1cnBvc2UgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBwYXNzCisgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIEFjdGlvbiBpbnN0YW5jZSBzZWxlY3RlZCBieSB0aGlzIEFjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sI3BhcmFtZXRlciI+PEI+cGFyYW1ldGVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPgorPEREPlBhcmFtZXRlciB0aGF0IGlzIHBhc3NlZCB0byB0aGUgPGNvZGU+Y3JlYXRlUmVzb3VyY2VzKCk8L2NvZGU+IG1ldGhvZAorIG9mIG91ciBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSBpbXBsZW1lbnRhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNQQVJBTUVURVJfQk9VTkRBUlkiPjxCPlBBUkFNRVRFUl9CT1VOREFSWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI1BBUkFNRVRFUl9DSEFSU0VUIj48Qj5QQVJBTUVURVJfQ0hBUlNFVDwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNQQVJBTUVURVJfRklMRU5BTUUiPjxCPlBBUkFNRVRFUl9GSUxFTkFNRTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNQQVJBTUVURVJfTkFNRSI+PEI+UEFSQU1FVEVSX05BTUU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI3BhcmFtZXRlcnMiPjxCPnBhcmFtZXRlcnM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxERD5UaGUgcGFyYW1ldGVycyBmb3IgdGhpcyBtdWx0aXBhcnQgcmVxdWVzdAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj48Qj5QYXJhbWV0ZXJUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj5QYXJhbWV0ZXJUYWc8L0E+LjxERD5EZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIHZhbHVlKHMpIG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcmVjZWl2ZWQgd2l0aCB0aGlzIHJlcXVlc3QuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI1BhcmFtZXRlclRhZygpIj48Qj5QYXJhbWV0ZXJUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPlBhcmFtZXRlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUZWkuaHRtbCI+PEI+UGFyYW1ldGVyVGVpPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUZWkuaHRtbCI+UGFyYW1ldGVyVGVpPC9BPi48REQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPnBhcmFtZXRlcjwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwjUGFyYW1ldGVyVGVpKCkiPjxCPlBhcmFtZXRlclRlaSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUZWkuaHRtbCI+UGFyYW1ldGVyVGVpPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3BhcmFtSWQiPjxCPnBhcmFtSWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciByZXF1ZXN0IHBhcmFtZXRlciBuYW1lIHRvIGdlbmVyYXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNwYXJhbUlkIj48Qj5wYXJhbUlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciByZXF1ZXN0IHBhcmFtZXRlciBuYW1lIHRvIGdlbmVyYXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3BhcmFtSWQiPjxCPnBhcmFtSWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5JbiBzaXR1YXRpb25zIHdoZXJlIGFuIGltYWdlIGlzIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCAoc3VjaCBhcyB0byBjcmVhdGUKKyBhIGNoYXJ0IGdyYXBoKSwgdGhpcyBzcGVjaWZpZXMgdGhlIHNpbmdsZS1wYXJhbWV0ZXIgcmVxdWVzdCBwYXJhbWV0ZXIKKyBuYW1lIHRvIGdlbmVyYXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3BhcmFtTmFtZSI+PEI+cGFyYW1OYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFyYW1OYW1lIj48Qj5wYXJhbU5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcGFyYW1OYW1lIj48Qj5wYXJhbU5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3BhcmFtUHJvcGVydHkiPjxCPnBhcmFtUHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFyYW1Qcm9wZXJ0eSI+PEI+cGFyYW1Qcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcGFyYW1Qcm9wZXJ0eSI+PEI+cGFyYW1Qcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3BhcmFtU2NvcGUiPjxCPnBhcmFtU2NvcGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBzY29wZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFyYW1TY29wZSI+PEI+cGFyYW1TY29wZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gc2NvcGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcGFyYW1TY29wZSI+PEI+cGFyYW1TY29wZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHNjb3BlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwjcGFyc2UoamF2YS5pby5JbnB1dFN0cmVhbSwgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uc1NldCkiPjxCPnBhcnNlKElucHV0U3RyZWFtLCBYbWxEZWZpbml0aW9uc1NldCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCI+WG1sUGFyc2VyPC9BPgorPEREPlBhcnNlIGlucHV0IHJlYWRlciBhbmQgYWRkIGVuY291bnRlcmVkIGRlZmluaXRpb25zIHRvIGRlZmluaXRpb25zIHNldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3BhcnNlRm9yUGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5wYXJzZUZvclBhcmFtZXRlcihTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjcGFyc2VIZWFkZXJWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+cGFyc2VIZWFkZXJWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3BhcnNlTW9kdWxlQ29uZmlnRmlsZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnLCBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5wYXJzZU1vZHVsZUNvbmZpZ0ZpbGUoU3RyaW5nLCBTdHJpbmcsIE1vZHVsZUNvbmZpZywgRGlnZXN0ZXIsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlBhcnNlcyBvbmUgbW9kdWxlIGNvbmZpZyBmaWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI1BBUlNFUl9ERVRBSUxTX1BBUkFNRVRFUl9OQU1FIj48Qj5QQVJTRVJfREVUQUlMU19QQVJBTUVURVJfTkFNRTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4KKzxERD5BbHRlcm5hdGUgbmFtZSBmb3IgcGFyc2VyIGRlYnVnIGRldGFpbHMgcHJvcGVydGllcyBpbiBjb25maWd1cmF0aW9uIGZpbGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjUEFSU0VSX0RFVEFJTFNfUEFSQU1FVEVSX05BTUUiPjxCPlBBUlNFUl9ERVRBSUxTX1BBUkFNRVRFUl9OQU1FPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+STE4bkZhY3RvcnlTZXQ8L0E+Cis8REQ+Q29uZmlnIGZpbGUgcGFyYW1ldGVyIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjUEFSU0VSX1ZBTElEQVRFX1BBUkFNRVRFUl9OQU1FIj48Qj5QQVJTRVJfVkFMSURBVEVfUEFSQU1FVEVSX05BTUU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Cis8REQ+QWx0ZXJuYXRlIG5hbWUgZm9yIHBhcnNlciB2YWxpZGF0ZSBwcm9wZXJ0aWVzIGluIGNvbmZpZ3VyYXRpb24gZmlsZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNQQVJTRVJfVkFMSURBVEVfUEFSQU1FVEVSX05BTUUiPjxCPlBBUlNFUl9WQUxJREFURV9QQVJBTUVURVJfTkFNRTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwiPkkxOG5GYWN0b3J5U2V0PC9BPgorPEREPkNvbmZpZyBmaWxlIHBhcmFtZXRlciBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI3BhcnNlckRlYnVnTGV2ZWwiPjxCPnBhcnNlckRlYnVnTGV2ZWw8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgY29tbW9ucy1sb2dnaW5nIG1lY2hhbmlzbS48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI3BhcnNlckRldGFpbExldmVsIj48Qj5wYXJzZXJEZXRhaWxMZXZlbDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+STE4bkZhY3RvcnlTZXQ8L0E+Cis8REQ+UGFyc2VyIGRldGFpbCBsZXZlbC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNwYXJzZVJlcXVlc3QoKSI+PEI+cGFyc2VSZXF1ZXN0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+SGFuZGxlcyByZXRyaWV2aW5nIHRoZSBib3VuZGFyeSBhbmQgc2V0dGluZyB0aGUgaW5wdXQgc3RyZWFtCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjcGFyc2VyVmFsaWRhdGUiPjxCPnBhcnNlclZhbGlkYXRlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Cis8REQ+U3BlY2lmaWVzIHdoZXRoZXIgdGhlIHBhcnNlciB3aWxsIHZhbGlkYXRlIGNvbmZpZ3VyYXRpb24gZmlsZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI3BhcnNlWG1sRmlsZShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb25zU2V0KSI+PEI+cGFyc2VYbWxGaWxlKFNlcnZsZXRDb250ZXh0LCBTdHJpbmcsIFhtbERlZmluaXRpb25zU2V0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwiPkkxOG5GYWN0b3J5U2V0PC9BPgorPEREPlBhcnNlIHNwZWNpZmllZCB4bWwgZmlsZSBhbmQgYWRkIGRlZmluaXRpb24gdG8gc3BlY2lmaWVkIGRlZmluaXRpb25zIHNldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjcGFyc2VYbWxGaWxlcyhqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb25zU2V0KSI+PEI+cGFyc2VYbWxGaWxlcyhTZXJ2bGV0Q29udGV4dCwgU3RyaW5nLCBYbWxEZWZpbml0aW9uc1NldCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj5JMThuRmFjdG9yeVNldDwvQT4KKzxERD5QYXJzZSBmaWxlcyBhc3NvY2lhdGVkIHRvIHBvc3RpeCBpZiB0aGV5IGV4aXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Bhc3N3b3JkVGFnLmh0bWwiPjxCPlBhc3N3b3JkVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj5QYXNzd29yZFRhZzwvQT4uPEREPkN1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJwYXNzd29yZCIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Bhc3N3b3JkVGFnLmh0bWwjUGFzc3dvcmRUYWcoKSI+PEI+UGFzc3dvcmRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUGFzc3dvcmRUYWcuaHRtbCI+UGFzc3dvcmRUYWc8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNwYXRoIj48Qj5wYXRoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5Db21wb25lbnQgLyB0ZW1wbGF0ZSBwYXRoIChVUkwpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNwYXRoIj48Qj5wYXRoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4KKzxERD5UaGUgbW9kdWxlLXJlbGF0aXZlIHBhdGggb2YgdGhlIHJlc291cmNlIHRvIGZvcndhcmQgdG8gaWYgdGhpcworIGV4Y2VwdGlvbiBvY2N1cnMgZHVyaW5nIGFuIDxjb2RlPkFjdGlvbjwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3BhdGgiPjxCPnBhdGg8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPkNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgc3VibWl0dGVkIHJlcXVlc3QsIHN0YXJ0aW5nIHdpdGggYQorIHNsYXNoICgiLyIpIGNoYXJhY3RlciwgYW5kIG9taXR0aW5nIGFueSBmaWxlbmFtZSBleHRlbnNpb24gaWYKKyBleHRlbnNpb24gbWFwcGluZyBpcyBiZWluZyB1c2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjcGF0aCI+PEI+cGF0aDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4KKzxERD5UaGUgVVJMIHRvIHdoaWNoIHRoaXMgPGNvZGU+Rm9yd2FyZENvbmZpZzwvY29kZT4gZW50cnkgcG9pbnRzLAorIHdoaWNoIG11c3Qgc3RhcnQgd2l0aCBhIHNsYXNoICgiLyIpIGNoYXJhY3Rlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9QYXRoQXR0cmlidXRlLmh0bWwiPjxCPlBhdGhBdHRyaWJ1dGU8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1BhdGhBdHRyaWJ1dGUuaHRtbCI+UGF0aEF0dHJpYnV0ZTwvQT4uPEREPkNvbXBvbmVudCBhdHRyaWJ1dGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1BhdGhBdHRyaWJ1dGUuaHRtbCNQYXRoQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5QYXRoQXR0cmlidXRlKFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1BhdGhBdHRyaWJ1dGUuaHRtbCI+UGF0aEF0dHJpYnV0ZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwjcGF0aG5hbWVzIj48Qj5wYXRobmFtZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCI+VmFsaWRhdG9yUGx1Z0luPC9BPgorPEREPkEgY29tbWEgZGVsaW1pdHRlZCBsaXN0IG9mIFZhbGlkYXRvciByZXNvdXJjZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCNwZWVrKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PEI+cGVlayhQYWdlQ29udGV4dCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCI+Q29udGVudE1hcFN0YWNrPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+cGVyZm9ybShBY3Rpb25NYXBwaW5nLCBBY3Rpb25Gb3JtLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSA8Y29kZT5leGVjdXRlKCk8L2NvZGU+IG1ldGhvZCBpbnN0ZWFkPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj48Qj5wZXJmb3JtKEFjdGlvbk1hcHBpbmcsIEFjdGlvbkZvcm0sIFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSA8Y29kZT5leGVjdXRlKCk8L2NvZGU+IG1ldGhvZCBpbnN0ZWFkPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVGlsZXNBY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5wZXJmb3JtKENvbXBvbmVudENvbnRleHQsIEFjdGlvbk1hcHBpbmcsIEFjdGlvbkZvcm0sIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sIj5UaWxlc0FjdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIDxjb2RlPmV4ZWN1dGUoKTwvY29kZT4gbWV0aG9kIGluc3RlYWQ8L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5wZXJmb3JtKENvbXBvbmVudENvbnRleHQsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSwgU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPgorPEREPk1ldGhvZCBhc3NvY2lhdGVkIHRvIGEgdGlsZSBhbmQgY2FsbGVkIGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgdGlsZSBpcyBpbmNsdWRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db250cm9sbGVyLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPnBlcmZvcm0oQ29tcG9uZW50Q29udGV4dCwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlLCBTZXJ2bGV0Q29udGV4dCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbnRyb2xsZXIuaHRtbCI+QWN0aW9uQ29udHJvbGxlcjwvQT4KKzxERD5NZXRob2QgYXNzb2NpYXRlZCB0byBhIHRpbGUgYW5kIGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUgdGlsZSBpcyBpbmNsdWRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VcmxDb250cm9sbGVyLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPnBlcmZvcm0oQ29tcG9uZW50Q29udGV4dCwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlLCBTZXJ2bGV0Q29udGV4dCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VybENvbnRyb2xsZXIuaHRtbCI+VXJsQ29udHJvbGxlcjwvQT4KKzxERD5NZXRob2QgYXNzb2NpYXRlZCB0byBhIHRpbGUgYW5kIGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIHRpbGUgaXMgaW5jbHVkZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlclN1cHBvcnQuaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+cGVyZm9ybShDb21wb25lbnRDb250ZXh0LCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlclN1cHBvcnQuaHRtbCI+Q29udHJvbGxlclN1cHBvcnQ8L0E+Cis8REQ+TWV0aG9kIGFzc29jaWF0ZWQgdG8gYSB0aWxlIGFuZCBjYWxsZWQgaW1tZWRpYXRlbHkgYmVmb3JlIHRpbGUgaXMgaW5jbHVkZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI1BMVUdfSU5TX0tFWSI+PEI+UExVR19JTlNfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwiPkdsb2JhbHM8L0E+Cis8REQ+VGhlIGJhc2Ugb2YgdGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggYW4gYXJyYXkgb2YKKyA8Y29kZT5QbHVnSW48L2NvZGU+IGluc3RhbmNlcyB3aWxsIGJlIHN0b3JlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjUExVR19JTlNfS0VZIj48Qj5QTFVHX0lOU19LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjUExVR19JTlNfS0VZIj48Q09ERT5HbG9iYWxzLlBMVUdfSU5TX0tFWTwvQ09ERT48L0E+PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCI+PEI+UGx1Z0luPC9CPjwvQT4gLSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCI+UGx1Z0luPC9BPi48REQ+QSA8c3Ryb25nPlBsdWdJbjwvc3Ryb25nPiBpcyBhIGNvbmZpZ3VyYXRpb24gd3JhcHBlciBmb3IgYQorIG1vZHVsZS1zcGVjaWZpYyByZXNvdXJjZSBvciBzZXJ2aWNlIHRoYXQgbmVlZHMgdG8gYmUgbm90aWZpZWQgYWJvdXQKKyBhcHBsaWNhdGlvbiBzdGFydHVwIGFuZCBhcHBsaWNhdGlvbiBzaHV0ZG93biBldmVudHMgKGNvcnJlc3BvbmRpbmcgdG8gd2hlbgorIHRoZSBjb250YWluZXIgY2FsbHMgPGNvZGU+aW5pdCgpPC9jb2RlPiBhbmQgPGNvZGU+ZGVzdHJveSgpPC9jb2RlPiBvbiB0aGUKKyBjb3JyZXNwb25kaW5nIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPjxDT0RFPkFjdGlvblNlcnZsZXQ8L0NPREU+PC9BPiBpbnN0YW5jZSkuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+PEI+UGx1Z0luQ29uZmlnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj5QbHVnSW5Db25maWc8L0E+LjxERD5BIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O3BsdWctaW4mZ3Q7PC9jb2RlPiBlbGVtZW50IGluIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwjUGx1Z0luQ29uZmlnKCkiPjxCPlBsdWdJbkNvbmZpZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj5QbHVnSW5Db25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI3BsdWdJbnMiPjxCPnBsdWdJbnM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPlRoZSBzZXQgb2YgY29uZmlndXJlZCBwbHVnLWluIEFjdGlvbnMgZm9yIHRoaXMgbW9kdWxlLAorIGlmIGFueSwgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBkZWNsYXJlZCBhbmQgY29uZmlndXJlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luU2V0UHJvcGVydHlSdWxlLmh0bWwiPjxCPlBsdWdJblNldFByb3BlcnR5UnVsZTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5TZXRQcm9wZXJ0eVJ1bGUuaHRtbCI+UGx1Z0luU2V0UHJvcGVydHlSdWxlPC9BPi48REQ+Q2xhc3MgdGhhdCByZWNvcmRzIHRoZSBuYW1lIGFuZCB2YWx1ZSBvZiBhIGNvbmZpZ3VyYXRpb24gcHJvcGVydHkgdG8gYmUKKyB1c2VkIGluIGNvbmZpZ3VyaW5nIGEgPGNvZGU+UGx1Z0luPC9jb2RlPiBpbnN0YW5jZSB3aGVuIGluc3RhbnRpYXRlZC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJblNldFByb3BlcnR5UnVsZS5odG1sI1BsdWdJblNldFByb3BlcnR5UnVsZSgpIj48Qj5QbHVnSW5TZXRQcm9wZXJ0eVJ1bGUoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5TZXRQcm9wZXJ0eVJ1bGUuaHRtbCI+UGx1Z0luU2V0UHJvcGVydHlSdWxlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sI3BvcChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjxCPnBvcChQYWdlQ29udGV4dCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCI+Q29udGVudE1hcFN0YWNrPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNwb3B1bGF0ZShqYXZhLnV0aWwuTWFwKSI+PEI+cG9wdWxhdGUoTWFwKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4KKzxERD5Qb3B1bGF0ZSB0aGlzIGNvbmZpZyBvYmplY3QgZnJvbSBwcm9wZXJ0aWVzIG1hcCwgYmFzZWQgb24KKyB0aGUgc3BlY2lmaWVkIG5hbWUvdmFsdWUgcGFpcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNwb3B1bGF0ZShqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+cG9wdWxhdGUoT2JqZWN0LCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+UG9wdWxhdGUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNwZWNpZmllZCBKYXZhQmVhbiBmcm9tIHRoZSBzcGVjaWZpZWQKKyBIVFRQIHJlcXVlc3QsIGJhc2VkIG9uIG1hdGNoaW5nIGVhY2ggcGFyYW1ldGVyIG5hbWUgYWdhaW5zdCB0aGUKKyBjb3JyZXNwb25kaW5nIEphdmFCZWFucyAicHJvcGVydHkgc2V0dGVyIiBtZXRob2RzIGluIHRoZSBiZWFuJ3MgY2xhc3MuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNwb3B1bGF0ZShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+cG9wdWxhdGUoT2JqZWN0LCBTdHJpbmcsIFN0cmluZywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPlBvcHVsYXRlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBzcGVjaWZpZWQgSmF2YUJlYW4gZnJvbSB0aGUgc3BlY2lmaWVkCisgSFRUUCByZXF1ZXN0LCBiYXNlZCBvbiBtYXRjaGluZyBlYWNoIHBhcmFtZXRlciBuYW1lIChwbHVzIGFuIG9wdGlvbmFsCisgcHJlZml4IGFuZC9vciBzdWZmaXgpIGFnYWluc3QgdGhlIGNvcnJlc3BvbmRpbmcgSmF2YUJlYW5zICJwcm9wZXJ0eQorIHNldHRlciIgbWV0aG9kcyBpbiB0aGUgYmVhbidzIGNsYXNzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI3BvcHVsYXRlRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZywgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnKSI+PEI+cG9wdWxhdGVEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcoRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLCBTZXJ2bGV0Q29uZmlnKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UG9wdWxhdGUgRGVmaW5pdGlvbiBGYWN0b3J5IENvbmZpZyBmcm9tIHdlYi54bWwgcHJvcGVydGllcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCNwcmVmaXgiPjxCPnByZWZpeDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0LjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvVGV4dFRhZy5odG1sIj5UZXh0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBwcmVmaXggdG8gYmUgYWRkZWQgYmVmb3JlIHRoZSBodG1sIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3ByZWZpeCI+PEI+cHJlZml4PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5QcmVmaXggdXNlZCB0byBtYXRjaCByZXF1ZXN0IHBhcmFtZXRlciBuYW1lcyB0byBmb3JtIGJlYW4gcHJvcGVydHkKKyBuYW1lcywgaWYgYW55LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNwcmVmaXgiPjxCPnByZWZpeDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+VGhlIHByZWZpeCBvZiB0aGUgY29udGV4dC1yZWxhdGl2ZSBwb3J0aW9uIG9mIHRoZSByZXF1ZXN0IFVSSSwgdXNlZCB0bworIHNlbGVjdCB0aGlzIGNvbmZpZ3VyYXRpb24gdmVyc3VzIG90aGVycyBzdXBwb3J0ZWQgYnkgdGhlIGNvbnRyb2xsZXIKKyBzZXJ2bGV0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjUFJFRklYRVNfS0VZIj48Qj5QUkVGSVhFU19LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPlRoZSBjb250ZXh0IGF0dHJpYnV0ZSB1bmRlciB3aGljaCB3ZSBzdG9yZSBvdXIgcHJlZml4ZXMgbGlzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPjxCPnByZXBhcmVFdmVudEhhbmRsZXJzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlByZXBhcmVzIHRoZSBldmVudCBoYW5kbGVycyBmb3IgaW5jbHVzaW9uIGluIHRoZSBjb21wb25lbnQncyBIVE1MIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+PEI+cHJlcGFyZUZvY3VzRXZlbnRzKFN0cmluZ0J1ZmZlcik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlByZXBhcmVzIHRoZSBmb2N1cyBldmVudCBoYW5kbGVycywgYXBwZW5kaW5nIHRoZW0gdG8gdGhlIHRoZSBnaXZlbgorIFN0cmluZ0J1ZmZlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVJbmRleChqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+cHJlcGFyZUluZGV4KFN0cmluZ0J1ZmZlciwgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+QXBwZW5kcyBiZWFuIG5hbWUgd2l0aCBpbmRleCBpbiBicmFja2V0cyBmb3IgdGFncyB3aXRoCisgICd0cnVlJyB2YWx1ZSBpbiAnaW5kZXhlZCcgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+PEI+cHJlcGFyZUtleUV2ZW50cyhTdHJpbmdCdWZmZXIpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5QcmVwYXJlcyB0aGUga2V5Ym9hcmQgZXZlbnQgaGFuZGxlcnMsIGFwcGVuZGluZyB0aGVtIHRvIHRoZSB0aGUgZ2l2ZW4KKyBTdHJpbmdCdWZmZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlTW91c2VFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPjxCPnByZXBhcmVNb3VzZUV2ZW50cyhTdHJpbmdCdWZmZXIpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5QcmVwYXJlcyB0aGUgbW91c2UgZXZlbnQgaGFuZGxlcnMsIGFwcGVuZGluZyB0aGVtIHRvIHRoZSB0aGUgZ2l2ZW4KKyBTdHJpbmdCdWZmZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPjxCPnByZXBhcmVTdHlsZXMoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UHJlcGFyZXMgdGhlIHN0eWxlIGF0dHJpYnV0ZXMgZm9yIGluY2x1c2lvbiBpbiB0aGUgY29tcG9uZW50J3MgSFRNTCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlVGV4dEV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+PEI+cHJlcGFyZVRleHRFdmVudHMoU3RyaW5nQnVmZmVyKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+UHJlcGFyZXMgdGhlIHRleHQgZXZlbnQgaGFuZGxlcnMsIGFwcGVuZGluZyB0aGVtIHRvIHRoZSB0aGUgZ2l2ZW4KKyBTdHJpbmdCdWZmZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNwcmVzZW50KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+cHJlc2VudChQYWdlQ29udGV4dCwgU3RyaW5nLCBTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5SZXR1cm4gdHJ1ZSBpZiBhIG1lc3NhZ2Ugc3RyaW5nIGZvciB0aGUgc3BlY2lmaWVkIG1lc3NhZ2Uga2V5CisgaXMgcHJlc2VudCBmb3IgdGhlIHNwZWNpZmllZCBMb2NhbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+PEI+UHJlc2VudFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPlByZXNlbnRUYWc8L0E+LjxERD5FdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBwcmVzZW50IGZvciB0aGlzIHJlcXVlc3QuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwjUHJlc2VudFRhZygpIj48Qj5QcmVzZW50VGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj5QcmVzZW50VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludChib29sZWFuKSI+PEI+cHJpbnQoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5QcmludCBhIGJvb2xlYW4gdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50KGNoYXIpIj48Qj5wcmludChjaGFyKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPlByaW50IGEgY2hhcmFjdGVyIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludChjaGFyW10pIj48Qj5wcmludChjaGFyW10pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+UHJpbnQgYSBjaGFyYWN0ZXIgYXJyYXkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50KGRvdWJsZSkiPjxCPnByaW50KGRvdWJsZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5QcmludCBhIGRvdWJsZSB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQoZmxvYXQpIj48Qj5wcmludChmbG9hdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5QcmludCBhIGZsb2F0IHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludChpbnQpIj48Qj5wcmludChpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+UHJpbnQgYW4gaW50ZWdlciB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQobG9uZykiPjxCPnByaW50KGxvbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+UHJpbnQgYSBsb25nIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludChqYXZhLmxhbmcuT2JqZWN0KSI+PEI+cHJpbnQoT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPlByaW50IGFuIG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQoamF2YS5sYW5nLlN0cmluZykiPjxCPnByaW50KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5QcmludCBhIFN0cmluZyB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3ByaW50YWJsZVVSTChqYXZhLm5ldC5VUkwpIj48Qj5wcmludGFibGVVUkwoVVJMKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPkNvbXB1dGUgdGhlIHByaW50YWJsZSByZXByZXNlbnRhdGlvbiBvZiBhIFVSTCwgbGVhdmluZyBvZmYgdGhlCisgc2NoZW1lL2hvc3QvcG9ydCBwYXJ0IGlmIG5vIGhvc3QgaXMgc3BlY2lmaWVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24uaHRtbCNwcmludEVycm9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+cHJpbnRFcnJvcihIdHRwU2VydmxldFJlc3BvbnNlLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24uaHRtbCI+RGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb248L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4oKSI+PEI+cHJpbnRsbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+VGVybWluYXRlIHRoZSBjdXJyZW50IGxpbmUgYW5kIGZsdXNoIHRoZSBidWZmZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4oYm9vbGVhbikiPjxCPnByaW50bG4oYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5QcmludCBhIGJvb2xlYW4gdmFsdWUgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnRsbihjaGFyKSI+PEI+cHJpbnRsbihjaGFyKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPlByaW50IGEgY2hhcmFjdGVyIHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4oY2hhcltdKSI+PEI+cHJpbnRsbihjaGFyW10pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+UHJpbnQgYSBjaGFyYWN0ZXIgYXJyYXkgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnRsbihkb3VibGUpIj48Qj5wcmludGxuKGRvdWJsZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5QcmludCBhIGRvdWJsZSB2YWx1ZSBhbmQgdGVybWluYXRlIHRoZSBsaW5lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludGxuKGZsb2F0KSI+PEI+cHJpbnRsbihmbG9hdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5QcmludCBhIGZsb2F0IHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4oaW50KSI+PEI+cHJpbnRsbihpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+UHJpbnQgYW4gaW50ZWdlciB2YWx1ZSBhbmQgdGVybWluYXRlIHRoZSBsaW5lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludGxuKGxvbmcpIj48Qj5wcmludGxuKGxvbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+UHJpbnQgYSBsb25nIHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4oamF2YS5sYW5nLk9iamVjdCkiPjxCPnByaW50bG4oT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPgorPEREPlByaW50IGFuIG9iamVjdCBhbmQgdGVybWluYXRlIHRoZSBsaW5lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludGxuKGphdmEubGFuZy5TdHJpbmcpIj48Qj5wcmludGxuKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5QcmludCBhIFN0cmluZyB2YWx1ZSBhbmQgdGVybWluYXRlIHRoZSBsaW5lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjcHJvY2VzcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPnByb2Nlc3MoSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+UGVyZm9ybSB0aGUgc3RhbmRhcmQgcmVxdWVzdCBwcm9jZXNzaW5nIGZvciB0aGlzIHJlcXVlc3QsIGFuZCBjcmVhdGUKKyB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3MoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5wcm9jZXNzKEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPlByb2Nlc3MgYW4gPGNvZGU+SHR0cFNlcnZsZXRSZXF1ZXN0PC9jb2RlPiBhbmQgY3JlYXRlIHRoZQorIGNvcnJlc3BvbmRpbmcgPGNvZGU+SHR0cFNlcnZsZXRSZXNwb25zZTwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzQWN0aW9uQ3JlYXRlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPjxCPnByb2Nlc3NBY3Rpb25DcmVhdGUoSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlLCBBY3Rpb25NYXBwaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlJlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+UmV0dXJuIGFuIDxjb2RlPkFjdGlvbjwvY29kZT4gaW5zdGFuY2UgdGhhdCB3aWxsIGJlIHVzZWQgdG8gcHJvY2VzcworIHRoZSBjdXJyZW50IHJlcXVlc3QsIGNyZWF0aW5nIGEgbmV3IG9uZSBpZiBuZWNlc3NhcnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzQWN0aW9uRm9ybShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48Qj5wcm9jZXNzQWN0aW9uRm9ybShIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UsIEFjdGlvbk1hcHBpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5SZXRyaWV2ZSBhbmQgcmV0dXJuIHRoZSA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBiZWFuIGFzc29jaWF0ZWQgd2l0aAorIHRoaXMgbWFwcGluZywgY3JlYXRpbmcgYW5kIHN0YXNoaW5nIG9uZSBpZiBuZWNlc3NhcnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI3Byb2Nlc3NBY3Rpb25Gb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+cHJvY2Vzc0FjdGlvbkZvcndhcmQoQWN0aW9uRm9yd2FyZCwgQWN0aW9uTWFwcGluZywgQWN0aW9uRm9ybSwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sIj5BY3Rpb25Db21wb25lbnRTZXJ2bGV0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO092ZXJsb2FkIHN0cnV0czEuMCBjb3VudGVycGFydCBpbiBvcmRlciB0byBjYXRjaCBmb3J3YXJkIGNhbGxzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0FjdGlvbkZvcndhcmQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+PEI+cHJvY2Vzc0FjdGlvbkZvcndhcmQoSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlLCBBY3Rpb25Gb3J3YXJkKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlJlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHByb2Nlc3NGb3J3YXJkQ29uZmlnKCkgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzQWN0aW9uUGVyZm9ybShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+PEI+cHJvY2Vzc0FjdGlvblBlcmZvcm0oSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlLCBBY3Rpb24sIEFjdGlvbkZvcm0sIEFjdGlvbk1hcHBpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5Bc2sgdGhlIHNwZWNpZmllZCA8Y29kZT5BY3Rpb248L2NvZGU+IGluc3RhbmNlIHRvIGhhbmRsZSB0aGlzCisgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc0FzRGVmaW5pdGlvbk9yVVJMKGphdmEubGFuZy5TdHJpbmcpIj48Qj5wcm9jZXNzQXNEZWZpbml0aW9uT3JVUkwoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPlRyeSB0byBwcm9jZXNzIG5hbWUgYXMgYSBkZWZpbml0aW9uLCBvciBhcyBhbiBVUkwgaWYgbm90IGZvdW5kLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5wcm9jZXNzQXR0cmlidXRlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5Qcm9jZXNzIHRhZyBhdHRyaWJ1dGUgImF0dHJpYnV0ZSIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3Byb2Nlc3NCZWFuKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5wcm9jZXNzQmVhbihTdHJpbmcsIFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPlByb2Nlc3MgYSBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0NvbnRlbnQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5wcm9jZXNzQ29udGVudChIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5TZXQgdGhlIGRlZmF1bHQgY29udGVudCB0eXBlICh3aXRoIG9wdGlvbmFsIGNoYXJhY3RlciBlbmNvZGluZykgZm9yCisgYWxsIHJlc3BvbnNlcyBpZiByZXF1ZXN0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3Byb2Nlc3NEZWZpbml0aW9uKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb24pIj48Qj5wcm9jZXNzRGVmaW5pdGlvbihDb21wb25lbnREZWZpbml0aW9uKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPkVuZCBvZiBQcm9jZXNzIHRhZyBhdHRyaWJ1dGUgImRlZmluaXRpb24iLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzRGVmaW5pdGlvbk5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnByb2Nlc3NEZWZpbml0aW9uTmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+UHJvY2VzcyB0YWcgYXR0cmlidXRlICJkZWZpbml0aW9uIi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI3Byb2Nlc3NlZCI+PEI+cHJvY2Vzc2VkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPk1lc3NhZ2VzVGFnPC9BPgorPEREPldoZXRoZXIgb3Igbm90IGFueSBlcnJvciBtZXNzYWdlcyBoYXZlIGJlZW4gcHJvY2Vzc2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzRW5kVGFnIj48Qj5wcm9jZXNzRW5kVGFnPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5Eb2VzIHRoZSBlbmQgdGFnIG5lZWQgdG8gYmUgcHJvY2Vzc2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0V4Y2VwdGlvbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YS5sYW5nLkV4Y2VwdGlvbiwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+PEI+cHJvY2Vzc0V4Y2VwdGlvbihIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UsIEV4Y2VwdGlvbiwgQWN0aW9uRm9ybSwgQWN0aW9uTWFwcGluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPkFzayBvdXIgZXhjZXB0aW9uIGhhbmRsZXIgdG8gaGFuZGxlIHRoZSBleGNlcHRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwjcHJvY2Vzc0V4Y2VwdGlvbihqYXZhLmxhbmcuVGhyb3dhYmxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+cHJvY2Vzc0V4Y2VwdGlvbihUaHJvd2FibGUsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLkluc2VydEhhbmRsZXI8L0E+Cis8REQ+UHJvY2VzcyBhbiBleGNlcHRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI3Byb2Nlc3NGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPnByb2Nlc3NGb3J3YXJkKEFjdGlvbk1hcHBpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCI+QWN0aW9uQ29tcG9uZW50U2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtPdmVybG9hZCBzdHJ1dHMxLjAgY291bnRlcnBhcnQgaW4gb3JkZXIgdG8gY2F0Y2ggZm9yd2FyZCBjYWxscy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NGb3J3YXJkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPjxCPnByb2Nlc3NGb3J3YXJkKEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSwgQWN0aW9uTWFwcGluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPlByb2Nlc3MgYSBmb3J3YXJkIHJlcXVlc3RlZCBieSB0aGlzIG1hcHBpbmcgKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI3Byb2Nlc3NGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+cHJvY2Vzc0ZvcndhcmQoU3RyaW5nLCBIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwiPkFjdGlvbkNvbXBvbmVudFNlcnZsZXQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+dXNlIGRvRm9yd2FyZCBpbnN0ZWFkPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NGb3J3YXJkQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPjxCPnByb2Nlc3NGb3J3YXJkQ29uZmlnKEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSwgRm9yd2FyZENvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+T3ZlcmxvYWRlZCBtZXRob2QgZnJvbSBTdHJ1dHMnIFJlcXVlc3RQcm9jZXNzb3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzRm9yd2FyZENvbmZpZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj48Qj5wcm9jZXNzRm9yd2FyZENvbmZpZyhIdHRwU2VydmxldFJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UsIEZvcndhcmRDb25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5Gb3J3YXJkIG9yIHJlZGlyZWN0IHRvIHRoZSBzcGVjaWZpZWQgZGVzdGluYXRpb24sIGJ5IHRoZSBzcGVjaWZpZWQKKyBtZWNoYW5pc20uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI3Byb2Nlc3NJbmNsdWRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPnByb2Nlc3NJbmNsdWRlKEFjdGlvbk1hcHBpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCI+QWN0aW9uQ29tcG9uZW50U2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtPdmVybG9hZCBzdHJ1dHMxLjAgY291bnRlcnBhcnQgaW4gb3JkZXIgdG8gY2F0Y2ggaW5jbHVkZSBjYWxscy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NJbmNsdWRlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPjxCPnByb2Nlc3NJbmNsdWRlKEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSwgQWN0aW9uTWFwcGluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPlByb2Nlc3MgYW4gaW5jbHVkZSByZXF1ZXN0ZWQgYnkgdGhpcyBtYXBwaW5nIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0xvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPnByb2Nlc3NMb2NhbGUoSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlJlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+QXV0b21hdGljYWxseSBzZWxlY3QgYSBMb2NhbGUgZm9yIHRoZSBjdXJyZW50IHVzZXIsIGlmIHJlcXVlc3RlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NNYXBwaW5nKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+cHJvY2Vzc01hcHBpbmcoSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5TZWxlY3QgdGhlIG1hcHBpbmcgdXNlZCB0byBwcm9jZXNzIHRoZSBzZWxlY3Rpb24gcGF0aCBmb3IgdGhpcyByZXF1ZXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc011bHRpcGFydChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+cHJvY2Vzc011bHRpcGFydChIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5JZiB0aGlzIGlzIGEgbXVsdGlwYXJ0IHJlcXVlc3QsIHdyYXAgaXQgd2l0aCBhIHNwZWNpYWwgd3JhcHBlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc05hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnByb2Nlc3NOYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5Qcm9jZXNzIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNwcm9jZXNzTmVzdGVkVGFnKG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5BZGRUYWcpIj48Qj5wcm9jZXNzTmVzdGVkVGFnKEFkZFRhZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj5QdXRMaXN0VGFnPC9BPgorPEREPlByb2Nlc3MgbmVzdGVkICZsZzthZGQmZ3Q7IHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50Lmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQWRkVGFnKSI+PEI+cHJvY2Vzc05lc3RlZFRhZyhBZGRUYWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWdQYXJlbnQuaHRtbCI+QWRkVGFnUGFyZW50PC9BPgorPEREPlByb2Nlc3MgdGhlIG5lc3RlZCB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNwcm9jZXNzTmVzdGVkVGFnKG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRMaXN0VGFnKSI+PEI+cHJvY2Vzc05lc3RlZFRhZyhQdXRMaXN0VGFnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+Cis8REQ+UHJvY2VzcyBuZXN0ZWQgJmxnO3B1dExpc3QmZ3Q7IHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI3Byb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dExpc3RUYWcpIj48Qj5wcm9jZXNzTmVzdGVkVGFnKFB1dExpc3RUYWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCI+RGVmaW5pdGlvblRhZzwvQT4KKzxERD5Qcm9jZXNzIG5lc3RlZCAmbGc7cHV0TGlzdCZndDsgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnUGFyZW50Lmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0TGlzdFRhZykiPjxCPnByb2Nlc3NOZXN0ZWRUYWcoUHV0TGlzdFRhZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCI+UHV0TGlzdFRhZ1BhcmVudDwvQT4KKzxERD5BZGQgYW4gYXR0cmlidXRlIHRvIGNvbnRhaW5lci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0TGlzdFRhZykiPjxCPnByb2Nlc3NOZXN0ZWRUYWcoUHV0TGlzdFRhZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5Qcm9jZXNzIG5lc3RlZCAmbGc7cHV0TGlzdCZndDsgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnKSI+PEI+cHJvY2Vzc05lc3RlZFRhZyhQdXRUYWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCI+RGVmaW5pdGlvblRhZzwvQT4KKzxERD5Qcm9jZXNzIG5lc3RlZCAmbGc7cHV0Jmd0OyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5odG1sI3Byb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dFRhZykiPjxCPnByb2Nlc3NOZXN0ZWRUYWcoUHV0VGFnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnUGFyZW50Lmh0bWwiPlB1dFRhZ1BhcmVudDwvQT4KKzxERD5Qcm9jZXNzIHRoZSBuZXN0ZWQgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzTmVzdGVkVGFnKG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRUYWcpIj48Qj5wcm9jZXNzTmVzdGVkVGFnKFB1dFRhZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5Qcm9jZXNzIG5lc3RlZCAmbGc7cHV0Jmd0OyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzTm9DYWNoZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPnByb2Nlc3NOb0NhY2hlKEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPlNldCB0aGUgbm8tY2FjaGUgaGVhZGVycyBmb3IgYWxsIHJlc3BvbnNlcywgaWYgcmVxdWVzdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzT2JqZWN0VmFsdWUoamF2YS5sYW5nLk9iamVjdCkiPjxCPnByb2Nlc3NPYmplY3RWYWx1ZShPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+UHJvY2VzcyBhbiBvYmplY3QgcmV0cmlldmVkIGFzIGEgYmVhbiBvciBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNwcm9jZXNzb3IiPjxCPnByb2Nlc3NvcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5UaGUgPGNvZGU+UmVxdWVzdFByb2Nlc3NvcjwvY29kZT4gaW5zdGFuY2Ugd2Ugd2lsbCB1c2UgdG8gcHJvY2VzcworIGFsbCBpbmNvbWluZyByZXF1ZXN0cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3Byb2Nlc3NvckNsYXNzIj48Qj5wcm9jZXNzb3JDbGFzczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgb2YgdGhlIFJlcXVlc3RQcm9jZXNzb3IgaW1wbGVtZW50YXRpb24KKyBjbGFzcyB0byBiZSB1c2VkIGZvciB0aGlzIG1vZHVsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NQYXRoKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+cHJvY2Vzc1BhdGgoSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlJlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+SWRlbnRpZnkgYW5kIHJldHVybiB0aGUgcGF0aCBjb21wb25lbnQgKGZyb20gdGhlIHJlcXVlc3QgVVJJKSB0aGF0Cisgd2Ugd2lsbCB1c2UgdG8gc2VsZWN0IGFuIEFjdGlvbk1hcHBpbmcgdG8gZGlzcGF0Y2ggd2l0aC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NQb3B1bGF0ZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+PEI+cHJvY2Vzc1BvcHVsYXRlKEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSwgQWN0aW9uRm9ybSwgQWN0aW9uTWFwcGluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPlBvcHVsYXRlIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBzcGVjaWZpZWQgQWN0aW9uRm9ybSBpbnN0YW5jZSBmcm9tCisgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyBpbmNsdWRlZCB3aXRoIHRoaXMgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NQcmVwcm9jZXNzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+cHJvY2Vzc1ByZXByb2Nlc3MoSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlJlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+R2VuZXJhbC1wdXJwb3NlIHByZXByb2Nlc3NpbmcgaG9vayB0aGF0IGNhbiBiZSBvdmVycmlkZGVuIGFzIHJlcXVpcmVkCisgYnkgc3ViY2xhc3Nlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NSb2xlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48Qj5wcm9jZXNzUm9sZXMoSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlLCBBY3Rpb25NYXBwaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlJlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+SWYgdGhpcyBhY3Rpb24gaXMgcHJvdGVjdGVkIGJ5IHNlY3VyaXR5IHJvbGVzLCBtYWtlIHN1cmUgdGhhdCB0aGUKKyBjdXJyZW50IHVzZXIgcG9zc2Vzc2VzIGF0IGxlYXN0IG9uZSBvZiB0aGVtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NUaWxlc0RlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbiwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5wcm9jZXNzVGlsZXNEZWZpbml0aW9uKFN0cmluZywgYm9vbGVhbiwgSHR0cFNlcnZsZXRSZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlRpbGVzUmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5Qcm9jZXNzIGEgVGlsZSBkZWZpbml0aW9uIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3Byb2Nlc3NUeXBlZEF0dHJpYnV0ZShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5BdHRyaWJ1dGVEZWZpbml0aW9uKSI+PEI+cHJvY2Vzc1R5cGVkQXR0cmlidXRlKEF0dHJpYnV0ZURlZmluaXRpb24pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+UHJvY2VzcyB0eXBlZCBhdHRyaWJ1dGUgYWNjb3JkaW5nIHRvIGl0cyB0eXBlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzVXJsKGphdmEubGFuZy5TdHJpbmcpIj48Qj5wcm9jZXNzVXJsKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5Qcm9jZXNzIHRoZSB1cmwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI3Byb2Nlc3NWYWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PEI+cHJvY2Vzc1ZhbGlkYXRlKEFjdGlvbk1hcHBpbmcsIEFjdGlvbkZvcm0sIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCI+QWN0aW9uQ29tcG9uZW50U2VydmxldDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtPdmVybG9hZCBzdHJ1dHMxLjAgY291bnRlcnBhcnQgaW4gb3JkZXIgdG8gY2F0Y2ggZm9yd2FyZCBjYWxscy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NWYWxpZGF0ZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+PEI+cHJvY2Vzc1ZhbGlkYXRlKEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSwgQWN0aW9uRm9ybSwgQWN0aW9uTWFwcGluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPgorPEREPklmIHRoaXMgcmVxdWVzdCB3YXMgbm90IGNhbmNlbGxlZCwgYW5kIHRoZSByZXF1ZXN0J3MKKyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj48Q09ERT5BY3Rpb25NYXBwaW5nPC9DT0RFPjwvQT4gaGFzIG5vdCBkaXNhYmxlZCB2YWxpZGF0aW9uLCBjYWxsIHRoZQorIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiB0aGUgc3BlY2lmaWVkIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPjxDT0RFPkFjdGlvbkZvcm08L0NPREU+PC9BPiwKKyBhbmQgZm9yd2FyZCBiYWNrIHRvIHRoZSBpbnB1dCBmb3JtIGlmIHRoZXJlIHdlcmUgYW55IGVycm9ycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNwcm9wZXJ0aWVzIj48Qj5wcm9wZXJ0aWVzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Cis8REQ+SW5pdGlhbGl6YXRpb24gcGFyYW1ldGVycworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCNwcm9wZXJ0aWVzIj48Qj5wcm9wZXJ0aWVzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT4KKzxERD5BIDxjb2RlPk1hcDwvY29kZT4gb2YgdGhlIG5hbWUtdmFsdWUgcGFpcnMgdGhhdCB3aWxsIGJlIHVzZWQgdG8KKyBjb25maWd1cmUgdGhlIHByb3BlcnR5IHZhbHVlcyBvZiBhIDxjb2RlPlBsdWdJbjwvY29kZT4gaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCNwcm9wZXJ0aWVzIj48Qj5wcm9wZXJ0aWVzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPgorPEREPlRoZSBjdXN0b20gY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGlzIGRhdGEgc291cmNlIGltcGxlbWVudGF0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjcHJvcGVydGllcyI+PEI+cHJvcGVydGllczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4KKzxERD5UaGUgc2V0IG9mIGR5bmFtaWMgcHJvcGVydGllcyB0aGF0IGFyZSBwYXJ0IG9mIHRoaXMgRHluYUNsYXNzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI3Byb3BlcnRpZXMoKSI+PEI+cHJvcGVydGllcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPkFjdGlvbk1lc3NhZ2VzPC9BPgorPEREPlJldHVybiB0aGUgc2V0IG9mIHByb3BlcnR5IG5hbWVzIGZvciB3aGljaCBhdCBsZWFzdCBvbmUgbWVzc2FnZSBoYXMKKyBiZWVuIHJlY29yZGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjcHJvcGVydGllc01hcCI+PEI+cHJvcGVydGllc01hcDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4KKzxERD5UaGUgc2V0IG9mIGR5bmFtaWMgcHJvcGVydGllcyB0aGF0IGFyZSBwYXJ0IG9mIHRoaXMgRHluYUNsYXNzLAorIGtleWVkIGJ5IHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+TW9kdWxlRXhjZXB0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQXR0cmlidXRlVG9TY29wZVRhZy5odG1sIj5BdHRyaWJ1dGVUb1Njb3BlVGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBwcm9wZXJ0eSBuYW1lIHRvIGJlIGV4cG9zZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sIj5OZXN0ZWRXcml0ZU5lc3RpbmdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCI+TmVzdGVkUHJvcGVydHlUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSZWZlcmVuY2UuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj5OZXN0ZWRSZWZlcmVuY2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+VGhlIHByb3BlcnR5IG5hbWUgY29udGFpbmluZyB0aGUgY29sbGVjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBwcm9wZXJ0eSB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+VGhlIEpTUCBiZWFuIHByb3BlcnR5IG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHVzZSB0byBidWlsZCB0aGUgdmFsdWVzIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHVzZSB0byBidWlsZCB0aGUgdmFsdWVzIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGZvciB3aGljaCBlcnJvciBtZXNzYWdlcyBzaG91bGQgYmUgcmV0dXJuZWQsCisgb3IgPGNvZGU+bnVsbDwvY29kZT4gdG8gcmV0dXJuIGFsbCBlcnJvcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+VGhlIEpTUCBiZWFuIHByb3BlcnR5IG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+VGhlIHByb3BlcnR5IG5hbWUgd2UgYXJlIGFzc29jaWF0ZWQgd2l0aC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgZm9yIHdoaWNoIGVycm9yIG1lc3NhZ2VzIHNob3VsZCBiZSByZXR1cm5lZCwKKyBvciA8Y29kZT5udWxsPC9jb2RlPiB0byByZXR1cm4gYWxsIGVycm9ycy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGJ1dHRvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBmb3IgdGhpcyBmaWVsZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZmllbGQgKGFuZCBhc3NvY2lhdGVkIHByb3BlcnR5KSBiZWluZyBwcm9jZXNzZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+VGhlIG5hbWUgYXR0cmlidXRlIGZvciB0aGUgaW1hZ2UgYnV0dG9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGZvciB0aGlzIGZpZWxkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBKU1AgYmVhbiBwcm9wZXJ0eSBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgaW5wdXQgZmllbGQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+VGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBidXR0b24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBpbnB1dCBmaWVsZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBmb3IgdGhpcyBmaWVsZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYmUgcmV0cmlldmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNwcm9wZXJ0eSI+PEI+cHJvcGVydHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPk5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIGFjY2Vzc2VkIG9uIHRoZSBzcGVjaWZpZWQgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD5OYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBiZSBhY2Nlc3NlZCBvbiB0aGUgc3BlY2lmaWVkIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3Byb3BlcnR5Ij48Qj5wcm9wZXJ0eTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIHJldHJpZXZlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjcHJvcGVydHkiPjxCPnByb3BlcnR5PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCI+UGFnZVRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcGFnZSBjb250ZXh0IHByb3BlcnR5IHRvIGJlIHJldHJpZXZlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sIj48Qj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9BPi48REQ+Q29uY3JldGUgc3ViY2xhc3Mgb2YgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gdGhhdCByZWFkcyBtZXNzYWdlIGtleXMKKyBhbmQgY29ycmVzcG9uZGluZyBzdHJpbmdzIGZyb20gbmFtZWQgcHJvcGVydHkgcmVzb3VyY2VzIGluIHRoZSBzYW1lIG1hbm5lcgorIHRoYXQgPGNvZGU+amF2YS51dGlsLlByb3BlcnR5UmVzb3VyY2VCdW5kbGU8L2NvZGU+IGRvZXMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwjUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIGphdmEubGFuZy5TdHJpbmcpIj48Qj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMoTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPkNvbnN0cnVjdCBhIG5ldyBQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMgYWNjb3JkaW5nIHRvIHRoZQorIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwjUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48Qj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMoTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIFN0cmluZywgYm9vbGVhbik8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9BPgorPEREPkNvbnN0cnVjdCBhIG5ldyBQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMgYWNjb3JkaW5nIHRvIHRoZQorIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj48Qj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPi48REQ+RmFjdG9yeSBmb3IgPGNvZGU+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBpbnN0YW5jZXMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkoKSI+PEI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sI3B1c2goamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnRNYXApIj48Qj5wdXNoKFBhZ2VDb250ZXh0LCBDb250ZW50TWFwKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sIj5Db250ZW50TWFwU3RhY2s8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNwdXQoamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudCkiPjxCPnB1dChTdHJpbmcsIENvbnRlbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCNwdXQoamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudCkiPjxCPnB1dChTdHJpbmcsIENvbnRlbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNwdXQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjxCPnB1dChTdHJpbmcsIE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5QdXQgYW4gYXR0cmlidXRlIGluIGNvbXBvbmVudCAvIHRlbXBsYXRlIGRlZmluaXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3B1dChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBib29sZWFuKSI+PEI+cHV0KFN0cmluZywgT2JqZWN0LCBib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPgorPEREPlB1dCBhbiBhdHRyaWJ1dGUgaW4gdGVtcGxhdGUgZGVmaW5pdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjcHV0KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGJvb2xlYW4sIGphdmEubGFuZy5TdHJpbmcpIj48Qj5wdXQoU3RyaW5nLCBPYmplY3QsIGJvb2xlYW4sIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5QdXQgYW4gYXR0cmlidXRlIGluIHRlbXBsYXRlIGRlZmluaXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3B1dChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+cHV0KFN0cmluZywgT2JqZWN0LCBTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5QdXQgYW4gYXR0cmlidXRlIGluIHRlbXBsYXRlIGRlZmluaXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3B1dEF0dHJpYnV0ZShvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0TGlzdFRhZykiPjxCPnB1dEF0dHJpYnV0ZShQdXRMaXN0VGFnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPk1ldGhvZCBjYWxscyBieSBuZXN0ZWQgJmxnO3B1dExpc3QmZ3Q7IHRhZ3MuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI3B1dEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+cHV0QXR0cmlidXRlKFN0cmluZywgT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPgorPEREPlB1dCBhIG5ldyBhdHRyaWJ1dGUgdG8gY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjcHV0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48Qj5wdXRBdHRyaWJ1dGUoU3RyaW5nLCBPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8REQ+UHV0IGEgbmV3IGF0dHJpYnV0ZSBpbiB0aGlzIGNvbXBvbmVudAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwjcHV0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48Qj5wdXRBdHRyaWJ1dGUoU3RyaW5nLCBPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCI+RGVmaW5pdGlvblRhZzwvQT4KKzxERD5UaGlzIG1ldGhvZCBpcyBhIGNvbnZlbmllbmNlIGZvciBvdGhlciB0YWdzIGZvcgorIHB1dHRpbmcgY29udGVudCBpbnRvIHRoZSB0aWxlIGRlZmluaXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3B1dEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+cHV0QXR0cmlidXRlKFN0cmluZywgT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPkFkZCBhIGJvZHkgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sI3B1dEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+cHV0QXR0cmlidXRlKFN0cmluZywgT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+Cis8REQ+QWRkIGEgY29tcG9uZW50IHBhcmFtZXRlciAoYXR0cmlidXRlKSB0byBzdWJDb250ZXh0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sI3B1dEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+cHV0QXR0cmlidXRlKFN0cmluZywgT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sIj5JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcjwvQT4KKzxERD5BZGQgYXR0cmlidXRlIHRvIHN1YiBjb250ZXh0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sI3B1dEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+cHV0QXR0cmlidXRlKFN0cmluZywgT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlcjwvQT4KKzxERD5BZGQgYXR0cmlidXRlIHRvIHN1YiBjb250ZXh0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjcHV0RGVmaW5pdGlvbihvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uKSI+PEI+cHV0RGVmaW5pdGlvbihDb21wb25lbnREZWZpbml0aW9uKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Cis8REQ+UHV0IGRlZmluaXRpb24gaW4gc2V0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCNwdXREZWZpbml0aW9uKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbikiPjxCPnB1dERlZmluaXRpb24oWG1sRGVmaW5pdGlvbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT4KKzxERD5QdXQgZGVmaW5pdGlvbiBpbiBzZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+PEI+UHV0TGlzdFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+LjxERD5QdXRMaXN0IHRhZyBpbXBsZW1lbnRhdGlvbi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNQdXRMaXN0VGFnKCkiPjxCPlB1dExpc3RUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+Cis8REQ+RGVmYXVsdCBjb25zdHJ1Y3Rvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj48Qj5QdXRMaXN0VGFnUGFyZW50PC9CPjwvQT4gLSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnUGFyZW50Lmh0bWwiPlB1dExpc3RUYWdQYXJlbnQ8L0E+LjxERD5UYWcgY2xhc3NlcyBpbXBsZW1lbnRpbmcgdGhpcyBpbnRlcmZhY2UgY2FuIGNvbnRhaW5zIG5lc3RlZCBQdXRUYWcuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+PEI+UHV0VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+LjxERD5QdXQgYW4gYXR0cmlidXRlIGluIGVuY2xvc2luZyBhdHRyaWJ1dGUgY29udGFpbmVyIHRhZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj48Qj5QdXRUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4uPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI1B1dFRhZygpIj48Qj5QdXRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPkRlZmF1bHQgY29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI1B1dFRhZygpIj48Qj5QdXRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWdQYXJlbnQuaHRtbCI+PEI+UHV0VGFnUGFyZW50PC9CPjwvQT4gLSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWdQYXJlbnQuaHRtbCI+UHV0VGFnUGFyZW50PC9BPi48REQ+VGFnIGNsYXNzZXMgaW1wbGVtZW50aW5nIHRoaXMgaW50ZXJmYWNlIGNhbiBjb250YWluIG5lc3RlZCBQdXRUYWcuPC9ETD4KKzxIUj4KKzxBIE5BTUU9Il9SXyI+PCEtLSAtLT48L0E+PEgyPgorPEI+UjwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPjxCPlJhZGlvVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4uPEREPlRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInJhZGlvIi48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNSYWRpb1RhZygpIj48Qj5SYWRpb1RhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNyZWFkKCkiPjxCPnJlYWQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQT4KKzxERD5SZWFkIHRoZSBuZXh0IGJ5dGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI3JlYWQoKSI+PEI+cmVhZCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBuZXh0IGJ5dGUgaW4gdGhlIGJ1ZmZlciwgYW5kIHJlZmlsbHMgaXQgaWYgbmVjZXNzYXJ5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjcmVhZCgpIj48Qj5yZWFkKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPlJlYWRzIGZyb20gdGhlIHN0cmVhbS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI3JlYWQoYnl0ZVtdKSI+PEI+cmVhZChieXRlW10pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGlzIG1ldGhvZCBwb3B1bGF0ZXMgdGhlIGJ5dGUgYXJyYXkgPGNvZGU+YjwvY29kZT4gd2l0aCBkYXRhIHVwIHRvCisgPGNvZGU+Yi5sZW5ndGg8L2NvZGU+IGJ5dGVzCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZWFkKGJ5dGVbXSkiPjxCPnJlYWQoYnl0ZVtdKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNyZWFkKGJ5dGVbXSwgaW50LCBpbnQpIj48Qj5yZWFkKGJ5dGVbXSwgaW50LCBpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGlzIG1ldGhvZCBwb3B1bGF0ZXMgdGhlIGJ5dGUgYXJyYXkgPGNvZGU+YjwvY29kZT4gd2l0aCBkYXRhIHVwIHRvIAorIDxjb2RlPmxlbmd0aDwvY29kZT4gc3RhcnRpbmcgYXQgYltvZmZzZXRdCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZWFkKGJ5dGVbXSwgaW50LCBpbnQpIj48Qj5yZWFkKGJ5dGVbXSwgaW50LCBpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNyZWFkQWhlYWRCdWZmZXJFbmRJIj48Qj5yZWFkQWhlYWRCdWZmZXJFbmRJPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0E+Cis8REQ+VGhlIGVuZCBpbmRleCBmb3IgdGhlIHJlYWQgYWhlYWQgY3ljbGljIGJ1ZmZlciAocG9pbnRzIHRvIHRoZSBsYXN0IGJ5dGUpCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjcmVhZEFoZWFkQnVmZmVyU3RhcnRJIj48Qj5yZWFkQWhlYWRCdWZmZXJTdGFydEk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQT4KKzxERD5UaGUgc3RhcnQgaW5kZXggZm9yIHRoZSByZWFkIGFoZWFkIGN5Y2xpYyBidWZmZXIgKHBvaW50cyB0byB0aGUgZmlyc3QgYnl0ZSkKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNyZWFkQWhlYWRCeXRlcyI+PEI+cmVhZEFoZWFkQnl0ZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQT4KKzxERD50aGUgcmVhZCBhaGVhZCBidWZmZXIgKGN5Y2xpYykKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3JlYWRDb250ZW50RGlzcG9zaXRpb24oKSI+PEI+cmVhZENvbnRlbnREaXNwb3NpdGlvbigpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3JlYWRDb250ZW50VHlwZSgpIj48Qj5yZWFkQ29udGVudFR5cGUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZWFkRWxlbWVudEhlYWRlcnMoKSI+PEI+cmVhZEVsZW1lbnRIZWFkZXJzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjcmVhZEZhY3RvcnlDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48Qj5yZWFkRmFjdG9yeUNvbmZpZyhBY3Rpb25TZXJ2bGV0LCBNb2R1bGVDb25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sIj5UaWxlc1BsdWdpbjwvQT4KKzxERD5DcmVhdGUgRmFjdG9yeUNvbmZpZyBhbmQgaW5pdGlhbGl6ZSBpdCBmcm9tIHdlYi54bWwgYW5kIHN0cnV0cy1jb25maWcueG1sLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI3JlYWRGYWN0b3J5Q29uZmlnKGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZykiPjxCPnJlYWRGYWN0b3J5Q29uZmlnKFNlcnZsZXRDb25maWcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwiPkRlZmluaXRpb25zVXRpbDwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDcmVhdGUgRmFjdG9yeUNvbmZpZyBhbmQgaW5pdGlhbGl6ZSBpdCBmcm9tIHdlYi54bWwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZWFkRmlyc3RFbGVtZW50KCkiPjxCPnJlYWRGaXJzdEVsZW1lbnQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZWFkRnJvbUxpbmUoKSI+PEI+cmVhZEZyb21MaW5lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjcmVhZExpbmUoKSI+PEI+cmVhZExpbmUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+Cis8REQ+VGhpcyBtZXRob2QgcmVhZHMgYSBsaW5lLCByZWdhcmRsZXNzIG9mIGxlbmd0aC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3JlYWRMaW5lKCkiPjxCPnJlYWRMaW5lKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjcmVhZExpbmUoYnl0ZVtdLCBpbnQsIGludCkiPjxCPnJlYWRMaW5lKGJ5dGVbXSwgaW50LCBpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGlzIG1ldGhvZCByZWFkcyBpbnRvIHRoZSBieXRlIGFycmF5IDxjb2RlPmI8L2NvZGU+IHVudGlsCisgYSBuZXdsaW5lICgnXG4nKSBjaGFyYWN0ZXIgaXMgZW5jb3VudGVyZWQgb3IgdGhlIG51bWJlciBvZiBieXRlcworIHNwZWNpZmllZCBieSA8Y29kZT5sZW5ndGg8L2NvZGU+IGhhdmUgYmVlbiByZWFkCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWFkb25seSI+PEI+cmVhZG9ubHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+Q29tcG9uZW50IGlzIHJlYWRvbmx5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwjcmVhbFZhbHVlIj48Qj5yZWFsVmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj5YbWxBdHRyaWJ1dGU8L0E+Cis8REQ+UmVhbCBhdHRyaWJ1dGUgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3JlYWxWYWx1ZSI+PEI+cmVhbFZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5jYWNoZWQgcmVhbCB2YWx1ZSBjb21wdXRlZCBmcm9tIHRhZyBhdHRyaWJ1dGVzCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNyZWRpcmVjdCI+PEI+cmVkaXJlY3Q8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+Cis8REQ+U2hvdWxkIGEgcmVkaXJlY3QgYmUgdXNlZCB0byB0cmFuc2ZlciBjb250cm9sIHRvIHRoZSBzcGVjaWZpZWQgcGF0aD8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+UmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9BPi48REQ+QSBzdWJjbGFzcyBvZiA8c3Ryb25nPkFjdGlvbkZvcndhcmQ8L3N0cm9uZz4gdGhhdCBkZWZhdWx0cyB0aGUKKyA8Y29kZT5yZWRpcmVjdDwvY29kZT4gYXR0cmlidXRlIHRvIDxjb2RlPnRydWU8L2NvZGU+LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwjUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkKCkiPjxCPlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIj5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQ8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggZGVmYXVsdCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sI1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+UmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkKFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvQT4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhdGguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPjxCPlJlZGlyZWN0VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPi48REQ+R2VuZXJhdGUgYSBVUkwtZW5jb2RlZCByZWRpcmVjdCB0byB0aGUgc3BlY2lmaWVkIFVSSS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjUmVkaXJlY3RUYWcoKSI+PEI+UmVkaXJlY3RUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNyZWRpc3BsYXkiPjxCPnJlZGlzcGxheTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPlRoZSAicmVkaXNwbGF5IGNvbnRlbnRzIiBmbGFnICh1c2VkIG9ubHkgb24gPGNvZGU+cGFzc3dvcmQ8L2NvZGU+KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwjcmVmZXJlbmNlSW5zdGFuY2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnJlZmVyZW5jZUluc3RhbmNlKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlIZWxwZXIuaHRtbCI+TmVzdGVkUHJvcGVydHlIZWxwZXI8L0E+Cis8REQ+UHVsbHMgdGhlIGN1cnJlbnQgbmVzdGluZyByZWZlcmVuY2UgZnJvbSB0aGUgcmVxdWVzdCBvYmplY3QsIGFuZCBpZiB0aGVyZQorIGlzbid0IG9uZSB0aGVyZSwgdGhlbiBpdCB3aWxsIGNyZWF0ZSBvbmUgYW5kIHNldCBpdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sI3JlZ2lzdHJhdGlvbnMiPjxCPnJlZ2lzdHJhdGlvbnM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sIj5YbWxQYXJzZXI8L0E+Cis8REQ+VGhlIHNldCBvZiBwdWJsaWMgaWRlbnRpZmllcnMsIGFuZCBjb3JyZXNwb25kaW5nIHJlc291cmNlIG5hbWVzIGZvcgorIHRoZSB2ZXJzaW9ucyBvZiB0aGUgY29uZmlndXJhdGlvbiBmaWxlIERURHMgd2Uga25vdyBhYm91dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3JlZ2lzdHJhdGlvbnMiPjxCPnJlZ2lzdHJhdGlvbnM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Cis8REQ+VGhlIHNldCBvZiBwdWJsaWMgaWRlbnRpZmllcnMsIGFuZCBjb3JyZXNwb25kaW5nIHJlc291cmNlIG5hbWVzLCBmb3IKKyB0aGUgdmVyc2lvbnMgb2YgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBEVERzIHRoYXQgd2Uga25vdyBhYm91dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sIj5EZWZpbml0aW9uVGFnPC9BPgorPEREPlJlc2V0IG1lbWJlciB2YWx1ZXMgZm9yIHJldXNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCI+R2V0QXR0cmlidXRlVGFnPC9BPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luaXREZWZpbml0aW9uc1RhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luaXREZWZpbml0aW9uc1RhZy5odG1sIj5Jbml0RGVmaW5pdGlvbnNUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCI+SW1wb3J0QXR0cmlidXRlVGFnPC9BPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sIj5Vc2VBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIj5EZWZpbml0aW9uVGFnU3VwcG9ydDwvQT4KKzxERD5SZWxlYXNlIGNsYXNzIHByb3BlcnRpZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+UmVzZXQgbWVtYmVyIHZhbHVlcyBmb3IgcmV1c2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiPkF0dHJpYnV0ZVRvU2NvcGVUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVsZWFzZSAgYWxsICBhbGxvY2F0ZWQgIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0VGFnLmh0bWwiPkdldFRhZzwvQT4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvVGV4dFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0LjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvVGV4dFRhZy5odG1sIj5UZXh0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCI+R2V0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sIj5OZXN0ZWRXcml0ZU5lc3RpbmdUYWc8L0E+Cis8REQ+SlNQIG1ldGhvZCB0byByZWxlYXNlIGFsbCByZXNvdXJjZXMgaGVsZCBieSB0aGUgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sIj5OZXN0ZWRSb290VGFnPC9BPgorPEREPkpTUCBtZXRob2QgdG8gcmVsZWFzZSBhbGwgcmVzb3VyY2VzIGhlbGQgYnkgdGhlIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIj5OZXN0ZWRQcm9wZXJ0eVRhZzwvQT4KKzxERD5KU1AgbWV0aG9kIHRvIHJlbGVhc2UgYWxsIHJlc291cmNlcyBoZWxkIGJ5IHRoZSB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwiPk5lc3RlZFByZXNlbnRUYWc8L0E+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90UHJlc2VudFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWROb3RQcmVzZW50VGFnPC9BPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdE1hdGNoVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIj5OZXN0ZWROb3RNYXRjaFRhZzwvQT4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCI+TmVzdGVkTm90RXF1YWxUYWc8L0E+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwiPk5lc3RlZE5vdEVtcHR5VGFnPC9BPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZzwvQT4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1hdGNoVGFnLmh0bWwiPk5lc3RlZE1hdGNoVGFnPC9BPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NUaGFuVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sIj5OZXN0ZWRMZXNzVGhhblRhZzwvQT4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sIj5OZXN0ZWRMZXNzRXF1YWxUYWc8L0E+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sIj5OZXN0ZWRJdGVyYXRlVGFnPC9BPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sIj5OZXN0ZWRHcmVhdGVyVGhhblRhZzwvQT4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJFcXVhbFRhZy5odG1sIj5OZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0E+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRXF1YWxUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwiPk5lc3RlZEVxdWFsVGFnPC9BPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFbXB0eVRhZy5odG1sIj5OZXN0ZWRFbXB0eVRhZzwvQT4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dGFyZWFUYWcuaHRtbCI+TmVzdGVkVGV4dGFyZWFUYWc8L0E+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sIj5OZXN0ZWRUZXh0VGFnPC9BPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwiPk5lc3RlZFN1Ym1pdFRhZzwvQT4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sIj5OZXN0ZWRTZWxlY3RUYWc8L0E+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRSYWRpb1RhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFJhZGlvVGFnLmh0bWwiPk5lc3RlZFJhZGlvVGFnPC9BPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRQYXNzd29yZFRhZy5odG1sIj5OZXN0ZWRQYXNzd29yZFRhZzwvQT4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwiPk5lc3RlZE9wdGlvbnNUYWc8L0E+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTXVsdGlib3hUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sIj5OZXN0ZWRNdWx0aWJveFRhZzwvQT4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE1lc3NhZ2VzVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNUYWc8L0E+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTGlua1RhZy5odG1sIj5OZXN0ZWRMaW5rVGFnPC9BPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwiPk5lc3RlZEltZ1RhZzwvQT4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1hZ2VUYWcuaHRtbCI+TmVzdGVkSW1hZ2VUYWc8L0E+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCI+TmVzdGVkSGlkZGVuVGFnPC9BPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRm9ybVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCI+TmVzdGVkRm9ybVRhZzwvQT4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZpbGVUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwiPk5lc3RlZEZpbGVUYWc8L0E+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRFcnJvcnNUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRFcnJvcnNUYWcuaHRtbCI+TmVzdGVkRXJyb3JzVGFnPC9BPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkQ2hlY2tib3hUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sIj5OZXN0ZWRDaGVja2JveFRhZzwvQT4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFdyaXRlVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCI+TmVzdGVkV3JpdGVUYWc8L0E+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRTaXplVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sIj5OZXN0ZWRTaXplVGFnPC9BPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZVRhZzwvQT4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRhZy5odG1sIj5OZXN0ZWREZWZpbmVUYWc8L0E+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwiPkZvcndhcmRUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TWVzc2FnZXNQcmVzZW50VGFnPC9BPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPk1hdGNoVGFnPC9BPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj5IaWRkZW5UYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPkZyYW1lVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPkh0bWxUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3JlbGVhc2UoKSI+PEI+cmVsZWFzZSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPlN0cnV0c1RhZzwvQT4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+UmVzb3VyY2VUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPlBhcmFtZXRlclRhZzwvQT4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sIj5QYWdlVGFnPC9BPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjcmVsZWFzZSgpIj48Qj5yZWxlYXNlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj5IZWFkZXJUYWc8L0E+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNyZWxlYXNlKCkiPjxCPnJlbGVhc2UoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPkNvb2tpZVRhZzwvQT4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwjcmVsZWFzZUludGVybmFsKCkiPjxCPnJlbGVhc2VJbnRlcm5hbCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT4KKzxERD5SZWxlYXNlIGFsbCBpbnRlcm5hbCByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCNyZWxlYXNlSW50ZXJuYWwoKSI+PEI+cmVsZWFzZUludGVybmFsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sIj5EZWZpbml0aW9uVGFnPC9BPgorPEREPlJlbGVhc2UgaW50ZXJuYWwgcmVmZXJlbmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjcmVsZWFzZUludGVybmFsKCkiPjxCPnJlbGVhc2VJbnRlcm5hbCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+UmVsZWFzZSBpbnRlcm5hbCBwcm9wZXJ0aWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNyZWxlYXNlSW50ZXJuYWwoKSI+PEI+cmVsZWFzZUludGVybmFsKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5SZXNldCBpbnRlcm5hbCBtZW1iZXIgdmFsdWVzIGZvciByZXVzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNyZWxvYWQoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPnJlbG9hZChTZXJ2bGV0Q29udGV4dCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Cis8REQ+UmVsb2FkIHVuZGVybHlpbmcgZmFjdG9yeS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeTwvQT4uPEREPkEgcmVsb2FkYWJsZSBmYWN0b3J5LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbCI+PEI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcDwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbCI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcDwvQT4uPEREPklubmVyIGNsYXNzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbCNSZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwKGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZykiPjxCPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXAoU2VydmxldENvbmZpZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXA8L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+PEI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCwgTWFwKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeTwvQT4KKzxERD5Db25zdHJ1Y3Rvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNSZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZykiPjxCPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldENvbnRleHQsIFNlcnZsZXRDb25maWcpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sIj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb24uaHRtbCI+PEI+UmVsb2FkRGVmaW5pdGlvbnNBY3Rpb248L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9SZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sIj5SZWxvYWREZWZpbml0aW9uc0FjdGlvbjwvQT4uPEREPkEgc3RhbmRhcmQgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBjYWxscyB0aGUKKyA8Y29kZT5yZWxvYWQoKTwvY29kZT4gbWV0aG9kIG9mIG91ciBjb250cm9sbGVyIHNlcnZsZXQgdG8KKyByZWxvYWQgaXRzIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gZnJvbSB0aGUgY29uZmlndXJhdGlvbgorIGZpbGVzICh3aGljaCBoYXZlIHByZXN1bWFibHkgYmVlbiB1cGRhdGVkKSBkeW5hbWljYWxseS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9SZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sI1JlbG9hZERlZmluaXRpb25zQWN0aW9uKCkiPjxCPlJlbG9hZERlZmluaXRpb25zQWN0aW9uKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9SZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sIj5SZWxvYWREZWZpbml0aW9uc0FjdGlvbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sI3JlbW92ZSgpIj48Qj5yZW1vdmUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sIj5JdGVyYXRvckFkYXB0ZXI8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRW1wdHlJdGVyYXRvci5odG1sI3JlbW92ZSgpIj48Qj5yZW1vdmUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRW1wdHlJdGVyYXRvci5odG1sIj5FbXB0eUl0ZXJhdG9yPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI3JlbW92ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+cmVtb3ZlKFN0cmluZywgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj5EeW5hQWN0aW9uRm9ybTwvQT4KKzxERD5SZW1vdmUgYW55IGV4aXN0aW5nIHZhbHVlIGZvciB0aGUgc3BlY2lmaWVkIGtleSBvbiB0aGUKKyBzcGVjaWZpZWQgbWFwcGVkIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNyZW1vdmVBY3Rpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZykiPjxCPnJlbW92ZUFjdGlvbkNvbmZpZyhBY3Rpb25Db25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPgorPEREPlJlbW92ZSB0aGUgc3BlY2lmaWVkIGFjdGlvbiBjb25maWd1cmF0aW9uIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNyZW1vdmVBY3Rpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZykiPjxCPnJlbW92ZUFjdGlvbkNvbmZpZyhBY3Rpb25Db25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+UmVtb3ZlIHRoZSBzcGVjaWZpZWQgYWN0aW9uIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjcmVtb3ZlQWN0aW9uRGVmaW5pdGlvbihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uKSI+PEI+cmVtb3ZlQWN0aW9uRGVmaW5pdGlvbihTZXJ2bGV0UmVxdWVzdCwgQ29tcG9uZW50RGVmaW5pdGlvbik8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCI+RGVmaW5pdGlvbnNVdGlsPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JlbW92ZSBEZWZpbml0aW9uIHN0b3JlZCBpbiBqc3AgY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNyZW1vdmVBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnJlbW92ZUF0dHJpYnV0ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNyZW1vdmVEYXRhU291cmNlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnKSI+PEI+cmVtb3ZlRGF0YVNvdXJjZUNvbmZpZyhEYXRhU291cmNlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5SZW1vdmUgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9uIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNyZW1vdmVEYXRhU291cmNlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnKSI+PEI+cmVtb3ZlRGF0YVNvdXJjZUNvbmZpZyhEYXRhU291cmNlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPlJlbW92ZSB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI3JlbW92ZUV4Y2VwdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnKSI+PEI+cmVtb3ZlRXhjZXB0aW9uQ29uZmlnKEV4Y2VwdGlvbkNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Cis8REQ+UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZXhjZXB0aW9uIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3JlbW92ZUV4Y2VwdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnKSI+PEI+cmVtb3ZlRXhjZXB0aW9uQ29uZmlnKEV4Y2VwdGlvbkNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5SZW1vdmUgdGhlIHNwZWNpZmllZCBleGNlcHRpb24gY29uZmlndXJhdGlvbiBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcmVtb3ZlRXhjZXB0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcpIj48Qj5yZW1vdmVFeGNlcHRpb25Db25maWcoRXhjZXB0aW9uQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPlJlbW92ZSB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9uIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCNyZW1vdmVGb3JtQmVhbihvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW4pIj48Qj5yZW1vdmVGb3JtQmVhbihBY3Rpb25Gb3JtQmVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPkFjdGlvbkZvcm1CZWFuczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtEZXJlZ2lzdGVyIGEgZm9ybUJlYW4gZnJvbSB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjcmVtb3ZlRm9ybUJlYW5Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnKSI+PEI+cmVtb3ZlRm9ybUJlYW5Db25maWcoRm9ybUJlYW5Db25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPgorPEREPlJlbW92ZSB0aGUgc3BlY2lmaWVkIGZvcm0gYmVhbiBjb25maWd1cmF0aW9uIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNyZW1vdmVGb3JtQmVhbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWcpIj48Qj5yZW1vdmVGb3JtQmVhbkNvbmZpZyhGb3JtQmVhbkNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4KKzxERD5SZW1vdmUgdGhlIHNwZWNpZmllZCBmb3JtIGJlYW4gY29uZmlndXJhdGlvbiBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNyZW1vdmVGb3JtUHJvcGVydHlDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1Qcm9wZXJ0eUNvbmZpZykiPjxCPnJlbW92ZUZvcm1Qcm9wZXJ0eUNvbmZpZyhGb3JtUHJvcGVydHlDb25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPgorPEREPlJlbW92ZSB0aGUgc3BlY2lmaWVkIGZvcm0gcHJvcGVydHkgY29uZmlndXJhdGlvbiBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNyZW1vdmVGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+PEI+cmVtb3ZlRm9yd2FyZChBY3Rpb25Gb3J3YXJkKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtEZXJlZ2lzdGVyIGEgZm9yd2FyZGluZyBmcm9tIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNyZW1vdmVGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+PEI+cmVtb3ZlRm9yd2FyZENvbmZpZyhGb3J3YXJkQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5SZW1vdmUgdGhlIHNwZWNpZmllZCBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3JlbW92ZUZvcndhcmRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj48Qj5yZW1vdmVGb3J3YXJkQ29uZmlnKEZvcndhcmRDb25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZm9yd2FyZCBjb25maWd1cmF0aW9uIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNyZW1vdmVGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+PEI+cmVtb3ZlRm9yd2FyZENvbmZpZyhGb3J3YXJkQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPlJlbW92ZSB0aGUgc3BlY2lmaWVkIGZvcndhcmQgY29uZmlndXJhdGlvbiBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNyZW1vdmVNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+PEI+cmVtb3ZlTWFwcGluZyhBY3Rpb25NYXBwaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5BY3Rpb25NYXBwaW5nczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtEZXJlZ2lzdGVyIGEgbWFwcGluZyBmcm9tIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNyZW1vdmVNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnKSI+PEI+cmVtb3ZlTWVzc2FnZVJlc291cmNlc0NvbmZpZyhNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5SZW1vdmUgdGhlIHNwZWNpZmllZCBtZXNzYWdlIHJlc291cmNlcyBjb25maWd1cmF0aW9uIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNyZW1vdmVNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnKSI+PEI+cmVtb3ZlTWVzc2FnZVJlc291cmNlc0NvbmZpZyhNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPlJlbW92ZSB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sI3JlbmRlckJhc2VFbGVtZW50KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGludCwgamF2YS5sYW5nLlN0cmluZykiPjxCPnJlbmRlckJhc2VFbGVtZW50KFN0cmluZywgU3RyaW5nLCBpbnQsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4KKzxERD5SZW5kZXIgYSBmdWxseSBmb3JtZWQgSFRNTCAmbHQ7YmFzZSZndDsgZWxlbWVudCBhbmQgcmV0dXJuIGl0IGFzIGEgU3RyaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjcmVuZGVyRGF0YSgpIj48Qj5yZW5kZXJEYXRhKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPgorPEREPlJlbmRlcnMgdGhlIHZhbHVlIGRpc3BsYXllZCBpbiB0aGUgJmx0O3RleHRhcmVhJmd0OyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3JlbmRlckZvY3VzSmF2YXNjcmlwdCgpIj48Qj5yZW5kZXJGb2N1c0phdmFzY3JpcHQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPkdlbmVyYXRlcyBqYXZhc2NyaXB0IHRvIHNldCB0aGUgaW5pdGlhbCBmb2N1cyB0byB0aGUgZm9ybSBlbGVtZW50IGdpdmVuIGluIHRoZQorIHRhZydzICJmb2N1cyIgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNyZW5kZXJGb3JtU3RhcnRFbGVtZW50KCkiPjxCPnJlbmRlckZvcm1TdGFydEVsZW1lbnQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPkdlbmVyYXRlcyB0aGUgb3BlbmluZyA8Y29kZT4mbHQ7Zm9ybSZndDs8L2NvZGU+IGVsZW1lbnQgd2l0aCBhcHByb3ByaWF0ZQorIGF0dHJpYnV0ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjcmVuZGVyT3B0aW9uRWxlbWVudCgpIj48Qj5yZW5kZXJPcHRpb25FbGVtZW50KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+R2VuZXJhdGUgYW4gSFRNTCAlbHQ7b3B0aW9uJmd0OyBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjcmVuZGVyUmFkaW9FbGVtZW50KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5yZW5kZXJSYWRpb0VsZW1lbnQoU3RyaW5nLCBTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD5SZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0IHR5cGU9InJhZGlvIiZndDsgZWxlbWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sI3JlbmRlclJlc2V0RWxlbWVudChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+cmVuZGVyUmVzZXRFbGVtZW50KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPkdlbmVyYXRlIGFuIEhUTUwgcmVzZXQgYnV0dG9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3JlbmRlclNlbGVjdFN0YXJ0RWxlbWVudCgpIj48Qj5yZW5kZXJTZWxlY3RTdGFydEVsZW1lbnQoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5DcmVhdGUgYW4gYXBwcm9wcmlhdGUgc2VsZWN0IHN0YXJ0IGVsZW1lbnQgYmFzZWQgb24gb3VyIHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCNyZW5kZXJUZXh0YXJlYUVsZW1lbnQoKSI+PEI+cmVuZGVyVGV4dGFyZWFFbGVtZW50KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPgorPEREPkdlbmVyYXRlIGFuIEhUTUwgJmx0O3RleHRhcmVhJmd0OyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3JlbmRlclRva2VuKCkiPjxCPnJlbmRlclRva2VuKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5HZW5lcmF0ZXMgYSBoaWRkZW4gaW5wdXQgZmllbGQgd2l0aCB0b2tlbiBpbmZvcm1hdGlvbiwgaWYgYW55LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNyZXBsYWNlQ2hhcihqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGNoYXIpIj48Qj5yZXBsYWNlQ2hhcihTdHJpbmcsIGludCwgY2hhcik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4KKzxERD5SZXBsYWNlcyBhIHNpbmdsZSBjaGFyYWN0ZXIgaW4gYSA8Y29kZT5TdHJpbmc8L2NvZGU+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjcmVxdWVzdCI+PEI+cmVxdWVzdDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPlRoZSB1bmRlcmx5aW5nIEh0dHBTZXJ2bGV0UmVxdWVzdAorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI3JlcXVlc3QiPjxCPnJlcXVlc3Q8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5UaGUgcmVxdWVzdCBpbnN0YW5jZSBmb3IgdGhpcyBjbGFzcworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNyZXF1ZXN0Ij48Qj5yZXF1ZXN0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5UaGUgcmVxdWVzdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjUkVRVUVTVF9QUk9DRVNTT1JfS0VZIj48Qj5SRVFVRVNUX1BST0NFU1NPUl9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCI+R2xvYmFsczwvQT4KKzxERD5UaGUgYmFzZSBvZiB0aGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIKKyA8Y29kZT5SZXF1ZXN0UHJvY2Vzc29yPC9jb2RlPiBpbnN0YW5jZSB3aWxsIGJlIHN0b3JlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjUkVRVUVTVF9QUk9DRVNTT1JfS0VZIj48Qj5SRVFVRVNUX1BST0NFU1NPUl9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgR2xvYmFscy5SRVFVRVNUX1BST0NFU1NPUl9LRVkgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiPjxCPlJlcXVlc3RBY3Rpb25NYXBwaW5nPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiPlJlcXVlc3RBY3Rpb25NYXBwaW5nPC9BPi48REQ+U3ViY2xhc3Mgb2YgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gdGhhdCBkZWZhdWx0cyB0aGUgZm9ybSBiZWFuCisgc2NvcGUgdG8gPGNvZGU+cmVxdWVzdDwvY29kZT4uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sI1JlcXVlc3RBY3Rpb25NYXBwaW5nKCkiPjxCPlJlcXVlc3RBY3Rpb25NYXBwaW5nKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCI+UmVxdWVzdEFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2l0aCB0aGUgZGVzaXJlZCBkZWZhdWx0CisgZm9ybSBiZWFuIHNjb3BlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPjxCPlJlcXVlc3RQcm9jZXNzb3I8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPi48REQ+PHN0cm9uZz5SZXF1ZXN0UHJvY2Vzc29yPC9zdHJvbmc+IGNvbnRhaW5zIHRoZSBwcm9jZXNzaW5nIGxvZ2ljIHRoYXQKKyB0aGUgU3RydXRzIGNvbnRyb2xsZXIgc2VydmxldCBwZXJmb3JtcyBhcyBpdCByZWNlaXZlcyBlYWNoIHNlcnZsZXQgcmVxdWVzdAorIGZyb20gdGhlIGNvbnRhaW5lci48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNSZXF1ZXN0UHJvY2Vzc29yKCkiPjxCPlJlcXVlc3RQcm9jZXNzb3IoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlJlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNyZXF1ZXN0VVJMKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5yZXF1ZXN0VVJMKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5SZXR1cm4gdGhlIFVSTCByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj48Qj5SZXF1ZXN0VXRpbHM8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPi48REQ+R2VuZXJhbCBwdXJwb3NlIHV0aWxpdHkgbWV0aG9kcyByZWxhdGVkIHRvIHByb2Nlc3NpbmcgYSBzZXJ2bGV0IHJlcXVlc3QKKyBpbiB0aGUgU3RydXRzIGNvbnRyb2xsZXIgZnJhbWV3b3JrLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI1JlcXVlc3RVdGlscygpIj48Qj5SZXF1ZXN0VXRpbHMoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNyZXNldCgpIj48Qj5yZXNldCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGlzIG1ldGhvZCBtYWtlcyBhIGNhbGwgdG8gdGhlIHJlc2V0KCkgbWV0aG9kIG9mIHRoZSB1bmRlcmx5aW5nCisgSW5wdXRTdHJlYW0KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3Jlc2V0KCkiPjxCPnJlc2V0KCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPlJlc2V0cyB0aGUgdW5kZXJseWluZyBpbnB1dCBzdHJlYW0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnJlc2V0KEFjdGlvbk1hcHBpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj5WYWxpZGF0b3JGb3JtPC9BPgorPEREPlJlc2V0IGFsbCBwcm9wZXJ0aWVzIHRvIHRoZWlyIGRlZmF1bHQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI3Jlc2V0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+cmVzZXQoQWN0aW9uTWFwcGluZywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sIj5EeW5hVmFsaWRhdG9yRm9ybTwvQT4KKzxERD5SZXNldCBhbGwgcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHZhbHVlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3Jlc2V0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+cmVzZXQoQWN0aW9uTWFwcGluZywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Cis8REQ+UmVzZXQgYWxsIGJlYW4gcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHN0YXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI3Jlc2V0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+cmVzZXQoQWN0aW9uTWFwcGluZywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj5EeW5hQWN0aW9uRm9ybTwvQT4KKzxERD5SZXNldCBhbGwgYmVhbiBwcm9wZXJ0aWVzIHRvIHRoZWlyIGRlZmF1bHQgc3RhdGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPjxCPnJlc2V0KEFjdGlvbk1hcHBpbmcsIFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Cis8REQ+UmVzZXQgYWxsIGJlYW4gcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHN0YXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI3Jlc2V0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0KSI+PEI+cmVzZXQoQWN0aW9uTWFwcGluZywgU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPkR5bmFBY3Rpb25Gb3JtPC9BPgorPEREPlJlc2V0IGFsbCBiZWFuIHByb3BlcnRpZXMgdG8gdGhlaXIgZGVmYXVsdCBzdGF0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3Jlc2V0Q3JsZigpIj48Qj5yZXNldENybGYoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZXNldEZvck5leHRCb3VuZGFyeSgpIj48Qj5yZXNldEZvck5leHRCb3VuZGFyeSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD5SZXNldHMgdGhpcyBzdHJlYW0gZm9yIHVzZSB3aXRoIHRoZSBuZXh0IGVsZW1lbnQsIHRvIGJlIHVzZWQgYWZ0ZXIgYSBib3VuZGFyeSBpcyBlbmNvdW50ZXJlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3Jlc2V0TGluZSgpIj48Qj5yZXNldExpbmUoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZXNldFN0cmVhbSgpIj48Qj5yZXNldFN0cmVhbSgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIj48Qj5SZXNldFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+LjxERD5UYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJyZXNldCIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjUmVzZXRUYWcoKSI+PEI+UmVzZXRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sI3Jlc2V0VG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnJlc2V0VG9rZW4oSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwiPlRva2VuUHJvY2Vzc29yPC9BPgorPEREPlJlc2V0IHRoZSBzYXZlZCB0cmFuc2FjdGlvbiB0b2tlbiBpbiB0aGUgdXNlcidzIHNlc3Npb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3Jlc2V0VG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnJlc2V0VG9rZW4oSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPlJlc2V0IHRoZSBzYXZlZCB0cmFuc2FjdGlvbiB0b2tlbiBpbiB0aGUgdXNlcidzIHNlc3Npb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwjcmVzb2x2ZUluaGVyaXRhbmNlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbnNTZXQpIj48Qj5yZXNvbHZlSW5oZXJpdGFuY2UoWG1sRGVmaW5pdGlvbnNTZXQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj5YbWxEZWZpbml0aW9uPC9BPgorPEREPlJlc29sdmUgaW5oZXJpdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sI3Jlc29sdmVJbmhlcml0YW5jZXMoKSI+PEI+cmVzb2x2ZUluaGVyaXRhbmNlcygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+Cis8REQ+UmVzb2x2ZSBleHRlbmRlZCBpbnN0YW5jZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sI1JFU09VUkNFX0RFTElNIj48Qj5SRVNPVVJDRV9ERUxJTTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCI+VmFsaWRhdG9yUGx1Z0luPC9BPgorPEREPkRlbGltaXR0ZXIgZm9yIFZhbGlkYXRvciByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sI3Jlc291cmNlcyI+PEI+cmVzb3VyY2VzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwiPlZhbGlkYXRvclBsdWdJbjwvQT4KKzxERD5UaGUgc2V0IG9mIEZvcm0gaW5zdGFuY2VzIHRoYXQgaGF2ZSBiZWVuIGNyZWF0ZWQgYW5kIGluaXRpYWxpemVkLAorIGtleWVkIGJ5IHRoZSBzdHJ1dHMgZm9ybSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCI+PEI+UmVzb3VyY2VzPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sIj5SZXNvdXJjZXM8L0E+LjxERD5UaGlzIGNsYXNzIGhlbHBzIHByb3ZpZGVzIHNvbWUgdXNlZnVsIG1ldGhvZHMgZm9yIHJldHJpZXZpbmcgb2JqZWN0cworIGZyb20gZGlmZmVyZW50IHNjb3BlcyBvZiB0aGUgYXBwbGljYXRpb24uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNSZXNvdXJjZXMoKSI+PEI+UmVzb3VyY2VzKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwiPlJlc291cmNlczwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIj48Qj5SZXNvdXJjZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+UmVzb3VyY2VUYWc8L0E+LjxERD5EZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQKKyB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjUmVzb3VyY2VUYWcoKSI+PEI+UmVzb3VyY2VUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+UmVzb3VyY2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUZWkuaHRtbCI+PEI+UmVzb3VyY2VUZWk8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwiPlJlc291cmNlVGVpPC9BPi48REQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPnJlc291cmNlPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRlaS5odG1sI1Jlc291cmNlVGVpKCkiPjxCPlJlc291cmNlVGVpKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwiPlJlc291cmNlVGVpPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNyZXNwb25zZSI+PEI+cmVzcG9uc2U8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPlRoZSByZXNwb25zZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCI+PEI+UmVzcG9uc2VVdGlsczwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCI+UmVzcG9uc2VVdGlsczwvQT4uPEREPkdlbmVyYWwgcHVycG9zZSB1dGlsaXR5IG1ldGhvZHMgcmVsYXRlZCB0byBnZW5lcmF0aW5nIGEgc2VydmxldCByZXNwb25zZQorIGluIHRoZSBTdHJ1dHMgY29udHJvbGxlciBmcmFtZXdvcmsuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sI1Jlc3BvbnNlVXRpbHMoKSI+PEI+UmVzcG9uc2VVdGlscygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sIj5SZXNwb25zZVV0aWxzPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwjcmV0cmlldmVCZWFuKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PEI+cmV0cmlldmVCZWFuKFN0cmluZywgU3RyaW5nLCBQYWdlQ29udGV4dCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9UYWdVdGlscy5odG1sIj5UYWdVdGlsczwvQT4KKzxERD5SZXRyaWV2ZSBiZWFuIGZyb20gcGFnZSBjb250ZXh0LCB1c2luZyBzcGVjaWZpZWQgc2NvcGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNyZXRyaWV2ZUZvcm1hdFN0cmluZyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+cmV0cmlldmVGb3JtYXRTdHJpbmcoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+UmV0cmlldmUgZm9ybWF0IHN0cmluZyBmcm9tIG1lc3NhZ2UgYnVuZGxlIGFuZCByZXR1cm4gbnVsbCBpZgorIG1lc3NhZ2Ugbm90IGZvdW5kIG9yIG1lc3NhZ2Ugc3RyaW5nLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjcmV0cmlldmVNZXNzYWdlUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PEI+cmV0cmlldmVNZXNzYWdlUmVzb3VyY2VzKFBhZ2VDb250ZXh0LCBTdHJpbmcsIGJvb2xlYW4pPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+UmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgTWVzc2FnZVJlc291cmNlcyBvYmplY3QgZm9yIHRoZSBjdXJyZW50IG1vZHVsZSBhbmQgCisgdGhlIGdpdmVuIGJ1bmRsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjcmV0cmlldmVUZW1wRGlyKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48Qj5yZXRyaWV2ZVRlbXBEaXIoTW9kdWxlQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPlJldHJpZXZlcyB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmcm9tIGVpdGhlciBBY3Rpb25TZXJ2bGV0LCBhIGNvbnRleHQKKyBwcm9wZXJ0eSwgb3IgYSBzeXN0ZW0gcHJvcGVydHksIGluIHRoYXQgb3JkZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNyZXRyaWV2ZVVzZXJMb2NhbGUoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5yZXRyaWV2ZVVzZXJMb2NhbGUoUGFnZUNvbnRleHQsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5Mb29rIHVwIGFuZCByZXR1cm4gY3VycmVudCB1c2VyIGxvY2FsZSwgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNyZXR1cm5OdWxsIj48Qj5yZXR1cm5OdWxsPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4KKzxERD5UaGUgInJldHVybiBudWxsIiBwcm9wZXJ0eSB2YWx1ZSB0byB3aGljaCBuZXdseSBjcmVhdGVkCisgTWVzc2FnZVJlc291cmNlc3Mgc2hvdWxkIGJlIGluaXRpYWxpemVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI3JldHVybk51bGwiPjxCPnJldHVybk51bGw8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxERD5JbmRpY2F0ZSBpcyBhIDxjb2RlPm51bGw8L2NvZGU+IGlzIHJldHVybmVkIGluc3RlYWQgb2YgYW4gZXJyb3IgbWVzc2FnZSBzdHJpbmcKKyB3aGVuIGFuIHVua25vd24gTG9jYWxlIG9yIGtleSBpcyByZXF1ZXN0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIj48Qj5SZXdyaXRlVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwiPlJld3JpdGVUYWc8L0E+LjxERD5HZW5lcmF0ZSBhIFVSTC1lbmNvZGVkIFVSSSBhcyBhIHN0cmluZy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sI1Jld3JpdGVUYWcoKSI+PEI+UmV3cml0ZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwiPlJld3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNyb2xlIj48Qj5yb2xlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwiPlVudHlwcGVkQXR0cmlidXRlPC9BPgorPEREPlJvbGUgYXNzb2NpYXRlZCB0byB0aGlzIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjcm9sZSI+PEI+cm9sZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8REQ+cm9sZSBhc3NvY2lhdGVkIHRvIGRlZmluaXRpb24KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI3JvbGUiPjxCPnJvbGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj5YbWxBdHRyaWJ1dGU8L0E+Cis8REQ+QXR0cmlidXRlIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwjcm9sZSI+PEI+cm9sZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT4KKzxERD5Sb2xlIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0QXR0cmlidXRlVGFnLmh0bWwjcm9sZSI+PEI+cm9sZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIj5HZXRBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+Um9sZSBhdHRyaWJ1dGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjcm9sZSI+PEI+cm9sZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+Um9sZSBhdHRyaWJ1dGUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNyb2xlIj48Qj5yb2xlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+Cis8REQ+Um9sZSBhc3NvY2lhdGVkIHRvIGRlZmluaXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwjcm9sZSI+PEI+cm9sZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5JbnNlcnRIYW5kbGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNyb2xlIj48Qj5yb2xlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgcm9sZSB0aGF0IHRoZSB1c2VyIG11c3QgYmUgaW4gdG8gc3RvcmUgY29udGVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjcm9sZSI+PEI+cm9sZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIHJvbGUgdGhhdCB0aGUgdXNlciBtdXN0IGJlIGluIHRvIHJldHJpZXZlIGNvbnRlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPjxCPnJvbGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzZWN1cml0eSByb2xlIHRvIGJlIGNoZWNrZWQgZm9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNST0xFX0RFTElNSVRFUiI+PEI+Uk9MRV9ERUxJTUlURVI8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5UaGUgcm9sZSBkZWxpbWl0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCNST0xFX0RFTElNSVRFUiI+PEI+Uk9MRV9ERUxJTUlURVI8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj5QcmVzZW50VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNyb2xlTmFtZXMiPjxCPnJvbGVOYW1lczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+VGhlIHNldCBvZiBzZWN1cml0eSByb2xlIG5hbWVzIHVzZWQgdG8gYXV0aG9yaXplIGFjY2VzcyB0byB0aGlzCisgQWN0aW9uLCBhcyBhbiBhcnJheSBmb3IgZmFzdGVyIGFjY2Vzcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjcm9sZXMiPjxCPnJvbGVzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5Db21tYS1kZWxpbWl0ZWQgbGlzdCBvZiBzZWN1cml0eSByb2xlIG5hbWVzIGFsbG93ZWQgdG8gcmVxdWVzdAorIHRoaXMgQWN0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3JvbGxiYWNrKCkiPjxCPnJvbGxiYWNrKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB3aGVuIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIHByb2JsZW0KKyBhbmQgdGhlIGZvcm0gcG9zdCBuZWVkcyB0byBiZSByb2xsZWQgYmFjay4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjcm9sbGJhY2soKSI+PEI+cm9sbGJhY2soKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPkNsZWFucyB1cCB3aGVuIGEgcHJvYmxlbSBvY2N1cnMgZHVyaW5nIHJlcXVlc3QgcHJvY2Vzc2luZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjcm9sbGJhY2soKSI+PEI+cm9sbGJhY2soKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPkRlbGV0ZSBhbGwgdGhlIGZpbGVzIHVwbG9hZGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3Jvd3MiPjxCPnJvd3M8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5UaGUgbnVtYmVyIG9mIHJvd3MgZm9yIHRoaXMgZmllbGQsIG9yIG5lZ2F0aXZlIGZvciBubyBsaW1pdC4KKzwvREw+Cis8SFI+Cis8QSBOQU1FPSJfU18iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPlM8L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNzYXZlQm9keSI+PEI+c2F2ZUJvZHk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5UaGUgc2F2ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlRXJyb3JzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMpIj48Qj5zYXZlRXJyb3JzKEh0dHBTZXJ2bGV0UmVxdWVzdCwgQWN0aW9uRXJyb3JzKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPlNhdmUgdGhlIHNwZWNpZmllZCBlcnJvciBtZXNzYWdlcyBrZXlzIGludG8gdGhlIGFwcHJvcHJpYXRlIHJlcXVlc3QKKyBhdHRyaWJ1dGUgZm9yIHVzZSBieSB0aGUgJmx0O2h0bWw6ZXJyb3JzJmd0OyB0YWcsIGlmIGFueSBtZXNzYWdlcworIGFyZSByZXF1aXJlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3NhdmVFeGNlcHRpb24oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5UaHJvd2FibGUpIj48Qj5zYXZlRXhjZXB0aW9uKFBhZ2VDb250ZXh0LCBUaHJvd2FibGUpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+U2F2ZSB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBhcyBhIHJlcXVlc3QgYXR0cmlidXRlIGZvciBsYXRlciB1c2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCNzYXZlRXhjZXB0aW9uKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+PEI+c2F2ZUV4Y2VwdGlvbihQYWdlQ29udGV4dCwgVGhyb3dhYmxlKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwiPlRhZ1V0aWxzPC9BPgorPEREPlNhdmUgdGhlIHNwZWNpZmllZCBleGNlcHRpb24gYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZSBmb3IgbGF0ZXIgdXNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNzYXZlRXhjZXB0aW9uKGphdmEubGFuZy5UaHJvd2FibGUpIj48Qj5zYXZlRXhjZXB0aW9uKFRocm93YWJsZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwiPkdldFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI3NhdmVFeGNlcHRpb24oamF2YS5sYW5nLlRocm93YWJsZSkiPjxCPnNhdmVFeGNlcHRpb24oVGhyb3dhYmxlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZU1lc3NhZ2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcykiPjxCPnNhdmVNZXNzYWdlcyhIdHRwU2VydmxldFJlcXVlc3QsIEFjdGlvbk1lc3NhZ2VzKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPlNhdmUgdGhlIHNwZWNpZmllZCBtZXNzYWdlcyBrZXlzIGludG8gdGhlIGFwcHJvcHJpYXRlIHJlcXVlc3QKKyBhdHRyaWJ1dGUgZm9yIHVzZSBieSB0aGUgJmx0O2h0bWw6bWVzc2FnZXMmZ3Q7IHRhZyAoaWYKKyBtZXNzYWdlcz0idHJ1ZSIgaXMgc2V0KSwgaWYgYW55IG1lc3NhZ2VzIGFyZSByZXF1aXJlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwjc2F2ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5zYXZlVG9rZW4oSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwiPlRva2VuUHJvY2Vzc29yPC9BPgorPEREPlNhdmUgYSBuZXcgdHJhbnNhY3Rpb24gdG9rZW4gaW4gdGhlIHVzZXIncyBjdXJyZW50IHNlc3Npb24sIGNyZWF0aW5nCisgYSBuZXcgc2Vzc2lvbiBpZiBuZWNlc3NhcnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+c2F2ZVRva2VuKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD5TYXZlIGEgbmV3IHRyYW5zYWN0aW9uIHRva2VuIGluIHRoZSB1c2VyJ3MgY3VycmVudCBzZXNzaW9uLCBjcmVhdGluZworIGEgbmV3IHNlc3Npb24gaWYgbmVjZXNzYXJ5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwjc2NvcGUiPjxCPnNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sIj5EZWZpbml0aW9uVGFnPC9BPgorPEREPlNjb3BlIGludG8gd2hpY2ggZGVmaW5pdGlvbiB3aWxsIGJlIHNhdmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCNzY29wZSI+PEI+c2NvcGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCI+SW1wb3J0QXR0cmlidXRlVGFnPC9BPgorPEREPlRoZSBzY29wZSB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwjc2NvcGUiPjxCPnNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwiPlVzZUF0dHJpYnV0ZVRhZzwvQT4KKzxERD5UaGUgc2NvcGUgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCNzY29wZSI+PEI+c2NvcGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiPkF0dHJpYnV0ZVRvU2NvcGVUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIHNjb3BlIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2NvcGUiPjxCPnNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPlRoZSBzY29wZSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIG5hbWUgcHJvcGVydHksIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPjxCPnNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKzxERD5UaGUgc2NvcGUgdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBuYW1lZCBieSB0aGUgbmFtZSBwcm9wZXJ0eSwgb3IKKyAiYW55IHNjb3BlIiBpZiBudWxsLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3Njb3BlIj48Qj5zY29wZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPlRoZSBzY29wZSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIG5hbWUgcHJvcGVydHksIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2NvcGUiPjxCPnNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD5UaGUgc2NvcGUgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2NvcGUiPjxCPnNjb3BlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+VGhlIHNjb3BlIG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZSBwcm9wZXJ0eSwgaWYgYW55LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzY29wZSI+PEI+c2NvcGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSBzY29wZSAocmVxdWVzdCBvciBzZXNzaW9uKSB1bmRlciB3aGljaCBvdXIgYXNzb2NpYXRlZCBiZWFuCisgaXMgc3RvcmVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3Njb3BlIj48Qj5zY29wZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgc3BlY2lmaWVkIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3Njb3BlIj48Qj5zY29wZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+VGhlIHNjb3BlIHRvIGJlIHNlYXJjaGVkIHRvIHJldHJpZXZlIHRoZSBzcGVjaWZpZWQgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3Njb3BlIj48Qj5zY29wZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD5UaGUgc2NvcGUgdG8gYmUgc2VhcmNoZWQgdG8gcmV0cmlldmUgdGhlIHNwZWNpZmllZCBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNzY29wZSI+PEI+c2NvcGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgc3BlY2lmaWVkIGJlYW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI3Njb3BlIj48Qj5zY29wZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Cis8REQ+VGhlIHNjb3BlIGluIHdoaWNoIHdlIHNob3VsZCBleHBvc2UgdGhlIEFjdGlvbkVycm9yIGZvciB0aGlzIGV4Y2VwdGlvbgorIGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3Njb3BlIj48Qj5zY29wZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+SWRlbnRpZmllciBvZiB0aGUgc2NvcGUgKCJyZXF1ZXN0IiBvciAic2Vzc2lvbiIpIHdpdGhpbiB3aGljaAorIG91ciBmb3JtIGJlYW4gaXMgYWNjZXNzZWQsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwjc2NvcGVOYW1lIj48Qj5zY29wZU5hbWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCI+SW1wb3J0QXR0cmlidXRlVGFnPC9BPgorPEREPlRoZSBzY29wZSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCNzY29wZU5hbWUiPjxCPnNjb3BlTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sIj5Vc2VBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+VGhlIHNjb3BlIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCNzY29wZU5hbWUiPjxCPnNjb3BlTmFtZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCI+QXR0cmlidXRlVG9TY29wZVRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgc2NvcGUgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3Njb3BlcyI+PEI+c2NvcGVzPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5NYXBzIGxvd2VyY2FzZSBKU1Agc2NvcGUgbmFtZXMgdG8gdGhlaXIgUGFnZUNvbnRleHQgaW50ZWdlciBjb25zdGFudCB2YWx1ZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNzY3JvbGxpbmciPjxCPnNjcm9sbGluZzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj5GcmFtZVRhZzwvQT4KKzxERD5XaGF0IHR5cGUgb2Ygc2Nyb2xsaW5nIHNob3VsZCBiZSBzdXBwb3J0ZWQgKHllcywgbm8sIGF1dG8pPworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sI1NFTEVDVF9LRVkiPjxCPlNFTEVDVF9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sIj5Db25zdGFudHM8L0E+Cis8REQ+VGhlIGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBzZWxlY3QgdGFnIGl0c2VsZi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3NlbGVjdEFwcGxpY2F0aW9uKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5zZWxlY3RBcHBsaWNhdGlvbihIdHRwU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3NlbGVjdE1vZHVsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PENPREU+UmVxdWVzdFV0aWxzLnNlbGVjdE1vZHVsZShIdHRwU2VydmxldFJlcXVlc3QsU2VydmxldENvbnRleHQpPC9DT0RFPjwvQT48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNzZWxlY3RBcHBsaWNhdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+c2VsZWN0QXBwbGljYXRpb24oU3RyaW5nLCBIdHRwU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+UmVxdWVzdFV0aWxzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3NlbGVjdE1vZHVsZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PENPREU+UmVxdWVzdFV0aWxzLnNlbGVjdE1vZHVsZShTdHJpbmcsSHR0cFNlcnZsZXRSZXF1ZXN0LFNlcnZsZXRDb250ZXh0KTwvQ09ERT48L0E+PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjc2VsZWN0TW9kdWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Qj5zZWxlY3RNb2R1bGUoSHR0cFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5TZWxlY3QgdGhlIG1vZHVsZSB0byB3aGljaCB0aGUgc3BlY2lmaWVkIHJlcXVlc3QgYmVsb25ncywgYW5kCisgYWRkIGNvcnJlc3BvbmRpbmcgcmVxdWVzdCBhdHRyaWJ1dGVzIHRvIHRoaXMgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3NlbGVjdE1vZHVsZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+c2VsZWN0TW9kdWxlKFN0cmluZywgSHR0cFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT4KKzxERD5TZWxlY3QgdGhlIG1vZHVsZSB0byB3aGljaCB0aGUgc3BlY2lmaWVkIHJlcXVlc3QgYmVsb25ncywgYW5kCisgYWRkIGNvcnJlc3BvbmRpbmcgcmVxdWVzdCBhdHRyaWJ1dGVzIHRvIHRoaXMgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+PEI+U2VsZWN0VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPi48REQ+Q3VzdG9tIHRhZyB0aGF0IHJlcHJlc2VudHMgYW4gSFRNTCBzZWxlY3QgZWxlbWVudCwgYXNzb2NpYXRlZCB3aXRoIGEKKyBiZWFuIHByb3BlcnR5IHNwZWNpZmllZCBieSBvdXIgYXR0cmlidXRlcy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc2VsZWN0VGFnKCkiPjxCPnNlbGVjdFRhZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPkFjcXVpcmUgdGhlIHNlbGVjdCB0YWcgd2UgYXJlIGFzc29jaWF0ZWQgd2l0aC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNTZWxlY3RUYWcoKSI+PEI+U2VsZWN0VGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sI3NlcnZlciI+PEI+c2VydmVyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4KKzxERD5UaGUgc2VydmVyIG5hbWUgdG8gdXNlIGluc3RlYWQgb2YgcmVxdWVzdC5nZXRTZXJ2ZXJOYW1lKCkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNzZXJ2ZXJVUkwoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnNlcnZlclVSTChIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj5SZXF1ZXN0VXRpbHM8L0E+Cis8REQ+UmV0dXJuIHRoZSBVUkwgcmVwcmVzZW50aW5nIHRoZSBzY2hlbWUsIHNlcnZlciwgYW5kIHBvcnQgbnVtYmVyIG9mCisgdGhlIGN1cnJlbnQgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI3NlcnZlclZhbHVlKCkiPjxCPnNlcnZlclZhbHVlKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPgorPEREPlJldHVybiB0aGUgU3RyaW5nIHRvIGJlIHVzZWQgaW4gdGhlIHJhZGlvIHRhZydzIDxjb2RlPnZhbHVlPC9jb2RlPiBhdHRyaWJ1dGUgCisgdGhhdCBnZXRzIHNlbnQgdG8gdGhlIHNlcnZlciBvbiBmb3JtIHN1Ym1pc3Npb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sI3NlcnZsZXQiPjxCPnNlcnZsZXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPgorPEREPlRoZSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Q09ERT5BY3Rpb25TZXJ2bGV0PC9DT0RFPjwvQT4gaW5zdGFuY2Ugd2UgYXJlIGFzc29jaWF0ZWQgd2l0aC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwjc2VydmxldCI+PEI+c2VydmxldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sIj5WYWxpZGF0b3JQbHVnSW48L0E+Cis8REQ+VGhlIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPjxDT0RFPkFjdGlvblNlcnZsZXQ8L0NPREU+PC9BPiBvd25pbmcgdGhpcyBhcHBsaWNhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2VydmxldCI+PEI+c2VydmxldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+VGhlIHNlcnZsZXQgd2l0aCB3aGljaCB0aGlzIGhhbmRsZXIgaXMgYXNzb2NpYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2VydmxldCI+PEI+c2VydmxldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+VGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2UgdXNlZCBmb3IgdGhpcyBjbGFzcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2VydmxldCI+PEI+c2VydmxldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2Ugd2UgYXJlIGFzc29jaWF0ZWQgd2l0aCAoc28gdGhhdCB3ZSBjYW4KKyBpbml0aWFsaXplIHRoZSA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBwcm9wZXJ0eSBvbiBhbnkgZm9ybSBiZWFuIHRoYXQKKyB3ZSBjcmVhdGUpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjc2VydmxldCI+PEI+c2VydmxldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxERD5UaGUgY29udHJvbGxlciBzZXJ2bGV0IHdlIGFyZSBhc3NvY2lhdGVkIHdpdGguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwjc2VydmxldCI+PEI+c2VydmxldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwiPkFjdGlvblNlcnZsZXRXcmFwcGVyPC9BPgorPEREPlRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjc2VydmxldCI+PEI+c2VydmxldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4KKzxERD5UaGUgY29udHJvbGxlciBzZXJ2bGV0IGluc3RhbmNlIHRvIHdoaWNoIHdlIGFyZSBhdHRhY2hlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2VydmxldCI+PEI+c2VydmxldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+VGhlIGNvbnRyb2xsZXIgc2VydmxldCB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjc2VydmxldCI+PEI+c2VydmxldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlIG9mIG91ciBvd25pbmcgYXBwbGljYXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sI1NFUlZMRVRfQ09OVEVYVF9LRVkiPjxCPlNFUlZMRVRfQ09OVEVYVF9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwiPlJlc291cmNlczwvQT4KKzxERD5SZXNvdXJjZXMga2V5IHRoZSA8Y29kZT5TZXJ2bGV0Q29udGV4dDwvY29kZT4gaXMgc3RvcmVkIHVuZGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI1NFUlZMRVRfQ09OVEVYVF9LRVkiPjxCPlNFUlZMRVRfQ09OVEVYVF9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwiPlN0cnV0c1ZhbGlkYXRvclV0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVzb3VyY2VzIGtleSB0aGUgPGNvZGU+U2VydmxldENvbnRleHQ8L2NvZGU+IGlzIHN0b3JlZCB1bmRlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjU0VSVkxFVF9LRVkiPjxCPlNFUlZMRVRfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwiPkdsb2JhbHM8L0E+Cis8REQ+VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggd2Ugc3RvcmUgdGhlIG1hcHBpbmcgZGVmaW5lZAorIGZvciBvdXIgY29udHJvbGxlciBzZXJsZXQsIHdoaWNoIHdpbGwgYmUgZWl0aGVyIGEgcGF0aC1tYXBwZWQgcGF0dGVybgorICg8Y29kZT4vYWN0aW9uLyo8L2NvZGU+KSBvciBhbiBleHRlbnNpb24gbWFwcGVkIHBhdHRlcm4KKyAoPGNvZGU+Ki5kbzwvY29kZT4pLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNTRVJWTEVUX0tFWSI+PEI+U0VSVkxFVF9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgR2xvYmFscy5TRVJWTEVUX0tFWSBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPjxCPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+LjxERD5BIFByaW50V3JpdGVyIGltcGxlbWVudGF0aW9uIHRoYXQgdXNlcyB0aGUgbG9nZ2luZyBmYWNpbGl0aWVzIG9mIGEKKyA8Y29kZT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0PC9jb2RlPiB0byBvdXRwdXQgaXRzIHJlc3VsdHMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNTZXJ2bGV0Q29udGV4dFdyaXRlcihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+U2VydmxldENvbnRleHRXcml0ZXIoU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+Q29uc3RydWN0IGEgU2VydmxldENvbnRleHRXcml0ZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQKKyBTZXJ2bGV0Q29udGV4dCBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3NlcnZsZXRNYXBwaW5nIj48Qj5zZXJ2bGV0TWFwcGluZzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4KKzxERD5UaGUgVVJMIHBhdHRlcm4gdG8gd2hpY2ggd2UgYXJlIG1hcHBlZCBpbiBvdXIgd2ViIGFwcGxpY2F0aW9uCisgZGVwbG95bWVudCBkZXNjcmlwdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjc2VydmxldE5hbWUiPjxCPnNlcnZsZXROYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEREPlRoZSBzZXJ2bGV0IG5hbWUgdW5kZXIgd2hpY2ggd2UgYXJlIHJlZ2lzdGVyZWQgaW4gb3VyIHdlYiBhcHBsaWNhdGlvbgorIGRlcGxveW1lbnQgZGVzY3JpcHRvci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjc2Vzc2lvbiI+PEI+c2Vzc2lvbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+VGhlIHNlc3Npb24gYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1Nlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwiPjxCPlNlc3Npb25BY3Rpb25NYXBwaW5nPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1Nlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwiPlNlc3Npb25BY3Rpb25NYXBwaW5nPC9BPi48REQ+U3ViY2xhc3Mgb2YgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gdGhhdCBkZWZhdWx0cyB0aGUgZm9ybSBiZWFuCisgc2NvcGUgdG8gPGNvZGU+c2Vzc2lvbjwvY29kZT4uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9TZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sI1Nlc3Npb25BY3Rpb25NYXBwaW5nKCkiPjxCPlNlc3Npb25BY3Rpb25NYXBwaW5nKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCI+U2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2l0aCB0aGUgZGVzaXJlZCBkZWZhdWx0CisgZm9ybSBiZWFuIHNjb3BlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI3NldChqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGphdmEubGFuZy5PYmplY3QpIj48Qj5zZXQoU3RyaW5nLCBpbnQsIE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCI+RHluYUFjdGlvbkZvcm08L0E+Cis8REQ+U2V0IHRoZSB2YWx1ZSBvZiBhbiBpbmRleGVkIHByb3BlcnR5IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI3NldChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+c2V0KFN0cmluZywgT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj5EeW5hQWN0aW9uRm9ybTwvQT4KKzxERD5TZXQgdGhlIHZhbHVlIG9mIGEgc2ltcGxlIHByb3BlcnR5IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI3NldChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PEI+c2V0KFN0cmluZywgU3RyaW5nLCBPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPkR5bmFBY3Rpb25Gb3JtPC9BPgorPEREPlNldCB0aGUgdmFsdWUgb2YgYSBtYXBwZWQgcHJvcGVydHkgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0QWNjZXB0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBY2NlcHQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFjY2Vzc2tleShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QWNjZXNza2V5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIGFjY2Vzc0tleSBjaGFyYWN0ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldEFjdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QWN0aW9uKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0QWN0aW9uKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBY3Rpb24oU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgYWN0aW9uIFVSTCB0byB3aGljaCB0aGlzIGZvcm0gc2hvdWxkIGJlIHN1Ym1pdHRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNzZXRBY3Rpb25EZWZpbml0aW9uKGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb24pIj48Qj5zZXRBY3Rpb25EZWZpbml0aW9uKFNlcnZsZXRSZXF1ZXN0LCBDb21wb25lbnREZWZpbml0aW9uKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7U3RvcmUgZGVmaW5pdGlvbiBpbiBqc3AgY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjc2V0QWN0aW9uTWFwcGluZ0NsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBY3Rpb25NYXBwaW5nQ2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5UaGUgZGVmYXVsdCBjbGFzcyBuYW1lIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhY3Rpb24gbWFwcGluZworIGluc3RhbmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjc2V0QWN0aW9uTWFwcGluZ0NsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBY3Rpb25NYXBwaW5nQ2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPgorPEREPlRoZSBkZWZhdWx0IGNsYXNzIG5hbWUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGFjdGlvbiBtYXBwaW5nCisgaW5zdGFuY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlLmh0bWwiPjxCPlNldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGU8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvU2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZS5odG1sIj5TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlPC9BPi48REQ+Q2xhc3MgdGhhdCBzZXRzIHRoZSBuYW1lIG9mIHRoZSBjbGFzcyB0byB1c2Ugd2hlbiBjcmVhdGluZyBhY3Rpb24gbWFwcGluZworIGluc3RhbmNlcy48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1NldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUuaHRtbCNTZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlKCkiPjxCPlNldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlLmh0bWwiPlNldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGU8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzZXRBbGlnbihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QWxpZ24oU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QWxpZ24gYXR0cmlidXRlIGlzIGRlcHJlY2F0ZWQgaW4gSFRNTCA0LnguPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldEFsaWduKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBbGlnbihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBbHQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgYWx0ZXJuYXRlIHRleHQgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0S2V5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBbHRLZXkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNzZXRBbmNob3IoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEFuY2hvcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRBbmNob3IoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEFuY2hvcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3NldEFuY2hvcihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QW5jaG9yKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjc2V0QXBwbGljYXRpb24oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPnNldEFwcGxpY2F0aW9uKFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPlNldCB0aGUgYXBwbGljYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldEFwcGxpY2F0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48Qj5zZXRBcHBsaWNhdGlvbkNvbmZpZyhNb2R1bGVDb25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldE1vZHVsZUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PENPREU+QWN0aW9uQ29uZmlnLnNldE1vZHVsZUNvbmZpZyhNb2R1bGVDb25maWcpPC9DT0RFPjwvQT48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldEFyZzAoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEFyZzAoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRBcmcxKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBcmcxKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjc2V0QXJnMihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QXJnMihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldEFyZzMoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEFyZzMoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRBcmc0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBcmc0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9UYWdVdGlscy5odG1sI3NldEF0dHJpYnV0ZShqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjxCPnNldEF0dHJpYnV0ZShQYWdlQ29udGV4dCwgU3RyaW5nLCBPYmplY3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCI+VGFnVXRpbHM8L0E+Cis8REQ+U3RvcmUgYmVhbiBpbiBSRVFVRVNUX1NDT1BFIGNvbnRleHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCNzZXRBdHRyaWJ1dGUoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBdHRyaWJ1dGUoUGFnZUNvbnRleHQsIFN0cmluZywgT2JqZWN0LCBTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCI+VGFnVXRpbHM8L0E+Cis8REQ+U3RvcmUgYmVhbiBpbiByZXF1ZXN0ZWQgY29udGV4dC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI3NldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QXR0cmlidXRlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCI+WG1sQXR0cmlidXRlPC9BPgorPEREPlNldHMgdGhlIHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCNzZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEF0dHJpYnV0ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIj5HZXRBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+U2V0IGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjc2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRBdHRyaWJ1dGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPlNldCBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QXR0cmlidXRlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5TZXQgdGhlIHJlcXVlc3Qtc2NvcGUgb3Igc2Vzc2lvbi1zY29wZSBhdHRyaWJ1dGUgbmFtZSB1bmRlciB3aGljaCBvdXIKKyBmb3JtIGJlYW4gaXMgYWNjZXNzZWQsIGlmIGl0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBmb3JtIGJlYW4ncworIHNwZWNpZmllZCA8Y29kZT5uYW1lPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNzZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjxCPnNldEF0dHJpYnV0ZShTdHJpbmcsIE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjc2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48Qj5zZXRBdHRyaWJ1dGUoU3RyaW5nLCBPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPgorPEREPlNldCB2YWx1ZSBvZiBhbiBhZGRpdGlvbmFsIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjc2V0QmVhbk5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEJlYW5OYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5TZXQgYmVhbiBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXRCZWFuTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QmVhbk5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPlNldCBiZWFuIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSZWZlcmVuY2UuaHRtbCNzZXRCZWFuTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QmVhbk5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj5OZXN0ZWRSZWZlcmVuY2U8L0E+Cis8REQ+U2V0dGVyIGZvciB0aGUgYmVhbiBuYW1lCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3NldEJlYW5Qcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QmVhblByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5TZXQgYmVhbiBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjc2V0QmVhblByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRCZWFuUHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPlNldCBiZWFuIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNzZXRCZWFuU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEJlYW5TY29wZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+U2V0IGJlYW4gc2NvcGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3NldEJlYW5TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QmVhblNjb3BlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5TZXQgYmVhbiBzY29wZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI3NldEJvZHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEJvZHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj5YbWxBdHRyaWJ1dGU8L0E+Cis8REQ+U2V0cyB0aGUgdmFsdWUgb2YgdGhlIHZhbHVlIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc2V0Qm9yZGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRCb3JkZXIoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0Qm9yZGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRCb3JkZXIoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3NldEJvdW5kYXJ5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRCb3VuZGFyeShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD5TZXRzIHRoZSBib3VuZGFyeSB0aGF0IHRlcm1pbmF0ZXMgdGhlIGRhdGEgZm9yIHRoZSBzdHJlYW0sIGFmdGVyIGFkZGluZyB0aGUgcHJlZml4ICItLSIKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNzZXRCdWZmZXJTaXplKGludCkiPjxCPnNldEJ1ZmZlclNpemUoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT4KKzxERD5TZXQgdGhlIG1heGltdW0gYW1vdW50IG9mIGJ5dGVzIHJlYWQgZnJvbSBhIGxpbmUgYXQgb25lIHRpbWUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3NldEJ1ZmZlclNpemUoaW50KSI+PEI+c2V0QnVmZmVyU2l6ZShpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEJ1bmRsZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRCdW5kbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgbmFtZSBvZiB0aGUgbWVzc2FnZSByZXNvdXJjZXMgYnVuZGxlIHRvIHVzZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QnVuZGxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPk1lc3NhZ2VzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QnVuZGxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QnVuZGxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0QnVuZGxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEJ1bmRsZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI3NldENkYXRhKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDZGF0YShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+U2V0cyB0aGUgY2RhdGEgc3RhdHVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI3NldENoYXJhY3RlckVuY29kaW5nKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDaGFyYWN0ZXJFbmNvZGluZyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPgorPEREPlRoaXMgbWV0aG9kIGRvZXMgbm90aGluZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5pdERlZmluaXRpb25zVGFnLmh0bWwjc2V0Q2xhc3NuYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDbGFzc25hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCI+SW5pdERlZmluaXRpb25zVGFnPC9BPgorPEREPlNldCBjbGFzc25hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sI3NldENsYXNzbmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Q2xhc3NuYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwiPlVzZUF0dHJpYnV0ZVRhZzwvQT4KKzxERD5TZXQgdGhlIGNsYXNzIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sI3NldENsYXNzTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Q2xhc3NOYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldENvbGxlY3Rpb24oamF2YS5sYW5nLk9iamVjdCkiPjxCPnNldENvbGxlY3Rpb24oT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3NldENvbGxlY3Rpb24oamF2YS5sYW5nLk9iamVjdCkiPjxCPnNldENvbGxlY3Rpb24oT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXRDb2xsZWN0aW9uKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb2xsZWN0aW9uKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRDb2xzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb2xzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+U2V0IHRoZSBudW1iZXIgb2YgY29sdW1ucyBmb3IgdGhpcyBmaWVsZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjc2V0Q29tcG9uZW50KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb21wb25lbnQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPlNldCBjb21wb25lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjc2V0Q29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZywgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPnNldENvbmZpZyhEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Cis8REQ+U2V0IGZhY3RvcnkgY29uZmlndXJhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCNzZXRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PEI+c2V0Q29uZmlnKERlZmluaXRpb25zRmFjdG9yeUNvbmZpZywgU2VydmxldENvbnRleHQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyPC9BPgorPEREPlNldCB1bmRlcmx5aW5nIGZhY3RvcnkgY29uZmlndXJhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI3NldENvbnRlbnQoamF2YS5sYW5nLk9iamVjdCkiPjxCPnNldENvbnRlbnQoT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj5YbWxBdHRyaWJ1dGU8L0E+Cis8REQ+U2V0cyB0aGUgdmFsdWUgb2YgdGhlIHZhbHVlIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNzZXRDb250ZW50KGphdmEubGFuZy5PYmplY3QpIj48Qj5zZXRDb250ZW50KE9iamVjdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5TZXQgY29udGVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjc2V0Q29udGVudChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Q29udGVudChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+U2V0IGNvbnRlbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI3NldENvbnRlbnQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldENvbnRlbnQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNzZXRDb250ZW50VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Q29udGVudFR5cGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj5EaXNrRmlsZTwvQT4KKzxERD5TZXQgdGhlIGNvbnRlbnQgdHlwZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwjc2V0Q29udGVudFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldENvbnRlbnRUeXBlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlPC9BPgorPEREPlNldHMgdGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhpcyBmaWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI3NldENvbnRlbnRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb250ZW50VHlwZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT4KKzxERD5TZXRzIHRoZSBjb250ZW50IHR5cGUgZm9yIHRoaXMgZmlsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI3NldENvbnRlbnRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb250ZW50VHlwZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD5TZXQgdGhlIGNvbnRlbnQgdHlwZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3NldENvbnRlbnRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb250ZW50VHlwZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwjc2V0Q29udGV4dChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0KSI+PEI+c2V0Q29udGV4dChDb21wb25lbnRDb250ZXh0LCBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+Cis8REQ+U3RvcmUgY29tcG9uZW50IGNvbnRleHQgaW50byByZXF1ZXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjc2V0Q29udGV4dFJlbGF0aXZlKGJvb2xlYW4pIj48Qj5zZXRDb250ZXh0UmVsYXRpdmUoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNzZXRDb250cm9sbGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb250cm9sbGVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5TZXQgYXNzb2NpYXRlZCBjb250cm9sbGVyIFVSTC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRDb250cm9sbGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb250cm9sbGVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+Cis8REQ+U2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNzZXRDb250cm9sbGVyQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldENvbnRyb2xsZXJDbGFzcyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8REQ+U2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciBuYW1lIGFzIGEgY2xhc3N0eXBlLCBhbmQgY29udHJvbGxlcgorIHR5cGUgYXMgImNsYXNzbmFtZSIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjc2V0Q29udHJvbGxlckNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb250cm9sbGVyQ2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIj5EZWZpbml0aW9uVGFnU3VwcG9ydDwvQT4KKzxERD5TZXQgYXNzb2NpYXRlZCBjb250cm9sbGVyIG5hbWUgYXMgYSBjbGFzc3R5cGUgYW5kIGNvbnRyb2xsZXIKKyB0eXBlIGFzICJjbGFzc25hbWUiLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNzZXRDb250cm9sbGVyQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Db250cm9sbGVyQ29uZmlnKSI+PEI+c2V0Q29udHJvbGxlckNvbmZpZyhDb250cm9sbGVyQ29uZmlnKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4KKzxERD5UaGUgY29udHJvbGxlciBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhpcyBtb2R1bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI3NldENvbnRyb2xsZXJDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkNvbnRyb2xsZXJDb25maWcpIj48Qj5zZXRDb250cm9sbGVyQ29uZmlnKENvbnRyb2xsZXJDb25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+VGhlIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoaXMgbW9kdWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNzZXRDb250cm9sbGVySW5zdGFuY2Uob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29udHJvbGxlcikiPjxCPnNldENvbnRyb2xsZXJJbnN0YW5jZShDb250cm9sbGVyKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPgorPEREPlNldCBjb250cm9sbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3NldENvbnRyb2xsZXJOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb250cm9sbGVyTmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPkRlZmluaXRpb25UYWdTdXBwb3J0PC9BPgorPEREPlNldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjc2V0Q29udHJvbGxlclR5cGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldENvbnRyb2xsZXJUeXBlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5TZXQgYXNzb2NpYXRlZCBjb250cm9sbGVyIHR5cGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjc2V0Q29udHJvbGxlclR5cGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldENvbnRyb2xsZXJUeXBlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+Cis8REQ+U2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciB0eXBlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNzZXRDb250cm9sbGVyVXJsKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb250cm9sbGVyVXJsKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5TZXQgYXNzb2NpYXRlZCBjb250cm9sbGVyIG5hbWUgYXMgYW4gdXJsLCBhbmQgY29udHJvbGxlcgorIHR5cGUgYXMgInVybCIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjc2V0Q29udHJvbGxlclVybChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Q29udHJvbGxlclVybChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPkRlZmluaXRpb25UYWdTdXBwb3J0PC9BPgorPEREPlNldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgbmFtZSBhcyBhbiB1cmwsIGFuZCBjb250cm9sbGVyCisgdHlwZSBhcyAidXJsIi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRDb29raWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjc2V0Q3VycmVudFBsdWdJbkNvbmZpZ09iamVjdChvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuUGx1Z0luQ29uZmlnKSI+PEI+c2V0Q3VycmVudFBsdWdJbkNvbmZpZ09iamVjdChQbHVnSW5Db25maWcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sIj5UaWxlc1BsdWdpbjwvQT4KKzxERD5NZXRob2QgdXNlZCBieSB0aGUgQWN0aW9uU2VydmxldCBpbml0aWFsaXppbmcgdGhpcyBwbHVnaW4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNzZXREYXRhKGJ5dGVbXSkiPjxCPnNldERhdGEoYnl0ZVtdKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSBzZXRGaWxlIG1ldGhvZCB0byBzZXQgdGhlIGZpbGUKKyAgICAgICAgICAgICB0aGF0IHJlcHJlc2VudHMgdGhlIGRhdGEgb2YgdGhpcyBlbGVtZW50PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjc2V0RGVidWcoaW50KSI+PEI+c2V0RGVidWcoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjc2V0RGVidWdMZXZlbChpbnQpIj48Qj5zZXREZWJ1Z0xldmVsKGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbnMtbG9nZ2luZyBtZWNoYW5pc20uPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXREZWZpbml0aW9uKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5TZXQgZGVmaW5pdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNzZXREZWZpbml0aW9uQ29uZmlnRmlsZXMoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldERlZmluaXRpb25Db25maWdGaWxlcyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPgorPEREPlNldCB0aGUgZGVmaW5pdGlvbiBjb25maWcgZmlsZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjc2V0RGVmaW5pdGlvbnNGYWN0b3J5KG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxCPnNldERlZmluaXRpb25zRmFjdG9yeShDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnksIFNlcnZsZXRDb250ZXh0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+c2luY2UgMjAwMjA3MDguIFJlcGxhY2VkIGJ5IG1ha2VGYWN0b3J5QWNjZXNzaWJsZSgpPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwjc2V0RGV0YWlsTGV2ZWwoaW50KSI+PEI+c2V0RGV0YWlsTGV2ZWwoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sIj5YbWxQYXJzZXI8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSBjb21tb25zLWxvZ2dpbmcgdG8gc2V0IGRpZ2VzdGVyIGRlYnVnIGxldmVsLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI3NldERpcmVjdChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0RGlyZWN0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCI+WG1sQXR0cmlidXRlPC9BPgorPEREPlNldHMgdGhlIHZhbHVlIG9mIHRoZSB2YWx1ZSBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjc2V0RGlyZWN0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXREaXJlY3QoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPlNldCBkaXJlY3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI3NldERpcmVjdChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0RGlyZWN0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXREaXNhYmxlZChib29sZWFuKSI+PEI+c2V0RGlzYWJsZWQoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIGRpc2FibGVkIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPjxCPnNldERpc2FibGVkKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI3NldER5bmFBY3Rpb25Gb3JtQ2xhc3Mob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkR5bmFBY3Rpb25Gb3JtQ2xhc3MpIj48Qj5zZXREeW5hQWN0aW9uRm9ybUNsYXNzKER5bmFBY3Rpb25Gb3JtQ2xhc3MpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPkR5bmFBY3Rpb25Gb3JtPC9BPgorPEREPlNldCB0aGUgRHluYUFjdGlvbkZvcm1DbGFzcyBpbnN0YW5jZSB0aGF0IHdlIGFyZSBhc3NvY2lhdGVkIHdpdGguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjc2V0RHluYW1pYyhib29sZWFuKSI+PEI+c2V0RHluYW1pYyhib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5UaGUgdmFsdWUgdG8gYmUgcmV0dXJuZWQgYnkgPGNvZGU+Z2V0RHluYW1pYygpPC9jb2RlPgorIGlzIG5vdyBjb21wdXRlZCBhdXRvbWF0aWNhbGx5IGluIDxjb2RlPnNldFR5cGUoKTwvY29kZT48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI3NldER5bmFtaWNKYXZhc2NyaXB0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXREeW5hbWljSmF2YXNjcmlwdChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+U2V0cyB3aGV0aGVyIG9yIG5vdCB0byBnZW5lcmF0ZSB0aGUgZHluYW1pYworIEphdmFTY3JpcHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldEVuY3R5cGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEVuY3R5cGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgY29udGVudCBlbmNvZGluZyB1c2VkIHdoZW4gc3VibWl0dGluZyB0aGlzIGZvcm0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3NldEVycm9yKCkiPjxCPnNldEVycm9yKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5TZXQgdGhlIGVycm9yIHN0YXRlIGZvciB0aGlzIHN0cmVhbS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCNzZXRFeHRlbmRzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRFeHRlbmRzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwiPlhtbERlZmluaXRpb248L0E+Cis8REQ+U2V0IGV4dGVuZHMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCNzZXRFeHRlbmRzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRFeHRlbmRzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sIj5EZWZpbml0aW9uVGFnPC9BPgorPEREPlNldCA8Y29kZT5leHRlbmRzPC9jb2RlPiAocGFyZW50KSBkZWZpbml0aW9uIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCNzZXRGYWN0b3J5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRGYWN0b3J5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNzZXRGYWN0b3J5Q2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZhY3RvcnlDbGFzcyhTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPgorPEREPlNldCB0aGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgdGhhdCBpcyB1c2VkIGZvcgorIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCNzZXRGYWN0b3J5Q2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZhY3RvcnlDbGFzcyhTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+Cis8REQ+U2V0IHRoZSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSB0aGF0IGlzIHVzZWQgZm9yCisgPGNvZGU+TW9kdWxlQ29uZmlnRmFjdG9yeTwvY29kZT4gaW5zdGFuY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI3NldEZhY3RvcnlDbGFzc25hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZhY3RvcnlDbGFzc25hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4KKzxERD5TZXQgdGhlIGNsYXNzbmFtZSBvZiB0aGUgZmFjdG9yeS4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjc2V0RmFjdG9yeU5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZhY3RvcnlOYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Cis8REQ+U2V0IHRoZSBmYWN0b3J5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwjc2V0RmFzdChib29sZWFuKSI+PEI+c2V0RmFzdChib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtTZXQgdGhlICJmYXN0IiBtb2RlIGZsYWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sI3NldEZhc3QoYm9vbGVhbikiPjxCPnNldEZhc3QoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPkFjdGlvbkZvcm1CZWFuczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtTZXQgdGhlICJmYXN0IiBtb2RlIGZsYWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjc2V0RmFzdChib29sZWFuKSI+PEI+c2V0RmFzdChib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5BY3Rpb25NYXBwaW5nczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtTZXQgdGhlICJmYXN0IiBtb2RlIGZsYWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sI3NldEZhdGFsKGJvb2xlYW4pIj48Qj5zZXRGYXRhbChib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPgorPEREPlNldCB0aGUgImNvbmZpZ3VyYXRpb24gZXJyb3JzIGFyZSBmYXRhbCIgZmxhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI3NldEZpbGUoamF2YS5pby5GaWxlKSI+PEI+c2V0RmlsZShGaWxlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8REQ+U2V0IHRoZSBmaWxlIHRoYXQgcmVwcmVzZW50cyB0aGlzIGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luaXREZWZpbml0aW9uc1RhZy5odG1sI3NldEZpbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZpbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCI+SW5pdERlZmluaXRpb25zVGFnPC9BPgorPEREPlNldCBmaWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI3NldEZpbGVOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRGaWxlTmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPkRpc2tGaWxlPC9BPgorPEREPlNldCB0aGUgZmlsZSBuYW1lCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCNzZXRGaWxlTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0RmlsZU5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGU8L0E+Cis8REQ+U2V0cyB0aGUgKGNsaWVudC1zaWRlKSBmaWxlIG5hbWUgZm9yIHRoaXMgZmlsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNzZXRGaWxlTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0RmlsZU5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+Cis8REQ+U2V0cyB0aGUgZmlsZSBuYW1lIG9mIHRoaXMgZmlsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI3NldEZpbGVOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRGaWxlTmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD5TZXQgdGhlIGZpbGUgbmFtZSBmb3IgdGhpcyBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI3NldEZpbGVTaXplKGludCkiPjxCPnNldEZpbGVTaXplKGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+Cis8REQ+U2V0IHRoZSBmaWxlIHNpemUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI3NldEZpbGVTaXplKGludCkiPjxCPnNldEZpbGVTaXplKGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlPC9BPgorPEREPlNldHMgdGhlIHNpemUsIGluIGJ5dGVzLCBmb3IgdGhpcyBmaWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI3NldEZpbGVTaXplKGludCkiPjxCPnNldEZpbGVTaXplKGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPgorPEREPlNldHMgdGhlIGZpbGUgc2l6ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sI3NldEZpbHRlcihib29sZWFuKSI+PEI+c2V0RmlsdGVyKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiPk5lc3RlZFdyaXRlTmVzdGluZ1RhZzwvQT4KKzxERD5TZXR0ZXIgbWV0aG9kIGZvciB0aGUgPGk+ZmlsdGVyPC9pPiBwcm9wZXJ0eQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXRGaWx0ZXIoYm9vbGVhbikiPjxCPnNldEZpbHRlcihib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjc2V0RmlsdGVyKGJvb2xlYW4pIj48Qj5zZXRGaWx0ZXIoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2V0RmlsdGVyKGJvb2xlYW4pIj48Qj5zZXRGaWx0ZXIoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXRGbHVzaChib29sZWFuKSI+PEI+c2V0Rmx1c2goYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5TZXQgZmx1c2guCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI3NldEZsdXNoKGJvb2xlYW4pIj48Qj5zZXRGbHVzaChib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCI+R2V0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjc2V0Rmx1c2goamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZsdXNoKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5TZXQgZmx1c2guCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldEZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRGb2N1cyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+U2V0IHRoZSBmb2N1cyBmaWVsZCBuYW1lIGZvciB0aGlzIGZvcm0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldEZvY3VzSW5kZXgoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZvY3VzSW5kZXgoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldHMgdGhlIGZvY3VzSW5kZXguCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNzZXRGb290ZXIoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZvb3RlcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3NldEZvcm1hdChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Rm9ybWF0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2V0Rm9ybWF0S2V5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRGb3JtYXRLZXkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjc2V0Rm9ybUJlYW4oamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZvcm1CZWFuKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj5TdHJ1dHNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI3NldEZvcm1OYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRGb3JtTmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+U2V0cyB0aGUga2V5IChmb3JtIG5hbWUpIHRoYXQgd2lsbCBiZSB1c2VkCisgdG8gcmV0cmlldmUgYSBzZXQgb2YgdmFsaWRhdGlvbiBydWxlcyB0byBiZQorIHBlcmZvcm1lZCBvbiB0aGUgYmVhbiBwYXNzZWQgaW4gZm9yIHZhbGlkYXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI3NldEZvcndhcmQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQpIj48Qj5zZXRGb3J3YXJkKEFjdGlvbkZvcndhcmQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+U2V0IHRoZSBmb3J3YXJkIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZvcndhcmQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0Rm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Rm9yd2FyZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3NldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZvcndhcmQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI3NldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEZvcndhcmQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPlN0cnV0c1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0Rm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Rm9yd2FyZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+U2V0IHRoZSBjb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSB0aGF0IHdpbGwgcHJvY2VzcworIHRoaXMgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3NldEZvcndhcmRQYXR0ZXJuKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRGb3J3YXJkUGF0dGVybihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI3NldEZyYW1lYm9yZGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRGcmFtZWJvcmRlcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj5GcmFtZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI3NldEZyYW1lTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0RnJhbWVOYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPkZyYW1lVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNzZXRIYW5kbGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRIYW5kbGVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRIZWFkZXIoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRIZWFkZXIoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0SGVpZ2h0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRIZWlnaHQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNzZXRIcmVmKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRIcmVmKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldEhyZWYoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEhyZWYoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNzZXRIcmVmKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRIcmVmKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRIc3BhY2UoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEhzcGFjZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNzZXRIdG1sQ29tbWVudChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SHRtbENvbW1lbnQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9BPgorPEREPlNldHMgd2hldGhlciBvciBub3QgdG8gZGVsaW1pdCB0aGUKKyBKYXZhU2NyaXB0IHdpdGggaHRtbCBjb21tZW50cy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sI3NldEljb24oamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEljb24oU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCI+U2ltcGxlTWVudUl0ZW08L0E+Cis8REQ+U2V0IGljb24gcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCNzZXRJY29uKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJY29uKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sIj5NZW51SXRlbTwvQT4KKzxERD5TZXQgaWNvbiBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCI+RGVmaW5pdGlvblRhZzwvQT4KKzxERD5TZXQgdGhlIElELgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldElkKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldElkKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPk1lc3NhZ2VzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+U3RydXRzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldElkKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPlJlc291cmNlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+UGFyYW1ldGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sIj5QYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+Q29va2llVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjc2V0SWROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJZE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+U2V0IHRoZSBpZE5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sI3NldElnbm9yZShib29sZWFuKSI+PEI+c2V0SWdub3JlKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIj5HZXRBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+U2V0IGlnbm9yaW5nIGZsYWcgd2hlbiBhdHRyaWJ1dGUgaXMgbm90IGZvdW5kLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCNzZXRJZ25vcmUoYm9vbGVhbikiPjxCPnNldElnbm9yZShib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCI+SW1wb3J0QXR0cmlidXRlVGFnPC9BPgorPEREPlNldCBpZ25vcmUgZmxhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwjc2V0SWdub3JlKGJvb2xlYW4pIj48Qj5zZXRJZ25vcmUoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwiPlVzZUF0dHJpYnV0ZVRhZzwvQT4KKzxERD5TZXQgaWdub3JlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXRJZ25vcmUoYm9vbGVhbikiPjxCPnNldElnbm9yZShib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPlNldCBpZ25vcmUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNzZXRJZ25vcmUoYm9vbGVhbikiPjxCPnNldElnbm9yZShib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0SW1hZ2VOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJbWFnZU5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0SW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SW5jbHVkZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+U2V0IGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIHRoYXQgd2lsbCBwcm9jZXNzCisgdGhpcyByZXF1ZXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+PEI+c2V0SW5kZXhlZChib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgaW5kZXhlZCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldEluZGV4SWQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEluZGV4SWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldEluZGV4SWQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEluZGV4SWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCNzZXRJbml0aWFsKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJbml0aWFsKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI3NldElucHV0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJbnB1dChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIj5SZXNvdXJjZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0SW5wdXQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldElucHV0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5TZXQgdGhlIGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgaW5wdXQgZm9ybSB0byB3aGljaCBjb250cm9sIHNob3VsZCBiZQorIHJldHVybmVkIGlmIGEgdmFsaWRhdGlvbiBlcnJvciBpcyBlbmNvdW50ZXJlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3NldElucHV0Rm9yd2FyZChib29sZWFuKSI+PEI+c2V0SW5wdXRGb3J3YXJkKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3NldElucHV0U3RyZWFtKGphdmEuaW8uSW5wdXRTdHJlYW0pIj48Qj5zZXRJbnB1dFN0cmVhbShJbnB1dFN0cmVhbSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPlNldHMgdGhlIGlucHV0IHN0cmVhbSB1c2VkIHRvIHJlYWQgbXVsdGlwYXJ0IGRhdGEuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3NldEluc3RhbmNlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRJbnN0YW5jZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHNldERlZmluaXRpb24oKSBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRJc21hcChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0SXNtYXAoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCNzZXRJc1Zpc2l0ZWQoYm9vbGVhbikiPjxCPnNldElzVmlzaXRlZChib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCI+WG1sRGVmaW5pdGlvbjwvQT4KKzxERD5TZXQgaXNWaXNpdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3NldEtleShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0S2V5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldEtleShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0S2V5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjc2V0S2V5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRLZXkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwjc2V0S2V5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRLZXkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCNzZXRLZXkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldEtleShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwjc2V0TGFiZWwoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldExhYmVsKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sIj5MYWJlbFZhbHVlQmVhbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI3NldExhYmVsKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMYWJlbChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5PcHRpb25zQ29sbGVjdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjc2V0TGFiZWxOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMYWJlbE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXRMYWJlbFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMYWJlbFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldExlbmd0aChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TGVuZ3RoKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjc2V0TGluZVNpemUoaW50KSI+PEI+c2V0TGluZVNpemUoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCNzZXRMaW5rKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMaW5rKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwiPlNpbXBsZU1lbnVJdGVtPC9BPgorPEREPlNldCBsaW5rIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwjc2V0TGluayhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TGluayhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCI+TWVudUl0ZW08L0E+Cis8REQ+U2V0IGxpbmsgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldExpbmtOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMaW5rTmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtLmh0bWwjc2V0TGlzdChqYXZhLnV0aWwuTGlzdCkiPjxCPnNldExpc3QoTGlzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCI+QWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sI3NldExvY2FsZShib29sZWFuKSI+PEI+c2V0TG9jYWxlKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPkh0bWxUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNzZXRMb2NhbGUoYm9vbGVhbikiPjxCPnNldExvY2FsZShib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLnV0aWwuTG9jYWxlKSI+PEI+c2V0TG9jYWxlKEh0dHBTZXJ2bGV0UmVxdWVzdCwgTG9jYWxlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPlNldCB0aGUgdXNlcidzIGN1cnJlbnRseSBzZWxlY3RlZCBMb2NhbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMb2NhbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TG9jYWxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIGZvciBvdXIgbG9jYWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMb2NhbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMb2NhbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMb2NhbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMb2NhbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjc2V0TG9jYXRpb24oamF2YS5sYW5nLlN0cmluZykiPjxCPnNldExvY2F0aW9uKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNzZXRMb25nZGVzYyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TG9uZ2Rlc2MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCI+RnJhbWVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0TG93c3JjKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRMb3dzcmMoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXRNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+PEI+c2V0TWFwcGluZyhBY3Rpb25NYXBwaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+Q29udmllbmllbmNlIG1ldGhvZCB0byBzZXQgYSByZWZlcmVuY2UgdG8gYSB3b3JraW5nCisgQWN0aW9uTWFwcGluZyBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2V0TWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPjxCPnNldE1hcHBpbmcoQWN0aW9uTWFwcGluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5TZXRzIHRoZSBhY3Rpb24gbWFwcGluZyB3aXRoIHdoaWNoIHRoaXMgaGFuZGxlciBpcyBhc3NvY2lhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXRNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+PEI+c2V0TWFwcGluZyhBY3Rpb25NYXBwaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI3NldE1hcHBpbmcoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE1hcHBpbmcoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPlN0cnV0c1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI3NldE1hcmdpbmhlaWdodChpbnQpIj48Qj5zZXRNYXJnaW5oZWlnaHQoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCI+RnJhbWVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNzZXRNYXJnaW53aWR0aChpbnQpIj48Qj5zZXRNYXJnaW53aWR0aChpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj5GcmFtZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3NldE1heEZpbGVTaXplKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRNYXhGaWxlU2l6ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3NldE1heExlbmd0aChsb25nKSI+PEI+c2V0TWF4TGVuZ3RoKGxvbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4KKzxERD5TZXQgdGhlIG1heGltdW0gbGVuZ3RoIGluIGJ5dGVzIHRvIHJlYWQsIG9yIC0xIGZvciBhbiB1bmxpbWl0ZWQgbGVuZ3RoLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldE1heGxlbmd0aChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TWF4bGVuZ3RoKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+U2V0IHRoZSBtYXhpbXVtIGxlbmd0aCBhbGxvd2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI3NldE1heFNpemUobG9uZykiPjxCPnNldE1heFNpemUobG9uZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+U2V0IHRoZSBtYXhpbXVtIHBvc3QgZGF0YSBzaXplIGFsbG93ZWQgZm9yIGEgbXVsdGlwYXJ0IHJlcXVlc3QKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3NldE1lbUZpbGVTaXplKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRNZW1GaWxlU2l6ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjc2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TWVzc2FnZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5NZXNzYWdlc1ByZXNlbnRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNzZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRNZXNzYWdlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPk1lc3NhZ2VzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNzZXRNZXRob2QoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE1ldGhvZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+U2V0cyB0aGUgbWV0aG9kIG5hbWUgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHRoZSBKYXZhc2NyaXB0CisgdmFsaWRhdGlvbiBtZXRob2QgbmFtZSBpZiBpdCBoYXMgYSB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0TWV0aG9kKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRNZXRob2QoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgcmVxdWVzdCBtZXRob2QgdXNlZCB3aGVuIHN1Ym1pdHRpbmcgdGhpcyBmb3JtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI3NldE1vZHVsZUF3YXJlKGJvb2xlYW4pIj48Qj5zZXRNb2R1bGVBd2FyZShib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4KKzxERD5TZXQgdGhlIG1vZHVsZSBhd2FyZSBmbGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjc2V0TW9kdWxlQXdhcmUoYm9vbGVhbikiPjxCPnNldE1vZHVsZUF3YXJlKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sIj5UaWxlc1BsdWdpbjwvQT4KKzxERD5TZXQgdGhlIG1vZHVsZSBhd2FyZSBmbGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI3NldE1vZHVsZUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PEI+c2V0TW9kdWxlQ29uZmlnKE1vZHVsZUNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Cis8REQ+U2V0IHRoZSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+IHdpdGggd2hpY2ggdGhpcyBmb3JtIGJlYW4gZGVmaW5pdGlvbgorIGlzIGFzc29jaWF0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldE1vZHVsZUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PEI+c2V0TW9kdWxlQ29uZmlnKE1vZHVsZUNvbmZpZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5UaGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gd2l0aCB3aGljaCB3ZSBhcmUgYXNzb2NpYXRlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0TXVsdGlwYXJ0Q2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE11bHRpcGFydENsYXNzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD5TZXQgdGhlIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlCisgPGNvZGU+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L2NvZGU+IGltcGxlbWVudGF0aW9uIGNsYXNzIHVzZWQgdG8KKyBwcm9jZXNzIG11bHRpLXBhcnQgcmVxdWVzdCBkYXRhIGZvciB0aGlzIEFjdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3NldE11bHRpcGFydENsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRNdWx0aXBhcnRDbGFzcyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3NldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyKG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcikiPjxCPnNldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyKE11bHRpcGFydFJlcXVlc3RIYW5kbGVyKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Cis8REQ+U2V0IHRoZSBIYW5kbGVyIHByb3ZpZGVzIHRvIHVzZSBpbiBkZWFsaW5nIHdpdGggZmlsZSB1cGxvYWRzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3NldE11bHRpcGxlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRNdWx0aXBsZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI3NldE11bHRpcGxlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRNdWx0aXBsZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+UGFyYW1ldGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI3NldE11bHRpcGxlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRNdWx0aXBsZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI3NldE11bHRpcGxlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRNdWx0aXBsZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+Q29va2llVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlIZWxwZXIuaHRtbCNzZXROYW1lKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKEh0dHBTZXJ2bGV0UmVxdWVzdCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sIj5OZXN0ZWRQcm9wZXJ0eUhlbHBlcjwvQT4KKzxERD5TZXRzIHRoZSBwcm92aWRlZCBuYW1lIGludG8gdGhlIHJlcXVlc3Qgb2JqZWN0IGZvciByZWZlcmVuY2UgYnkgdGhlCisgb3RoZXIgbmVzdGVkIHRhZ3MuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPgorPEREPlNldCB0aGUgbmFtZSBmb3IgdGhpcyBlbGVtZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5TZXRzIHRoZSB2YWx1ZSBvZiB0aGUgbmFtZSBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj5YbWxBdHRyaWJ1dGU8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj5QdXRMaXN0VGFnPC9BPgorPEREPlNldCBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0QXR0cmlidXRlVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIj5HZXRBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+U2V0IE5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPlNldCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwiPkltcG9ydEF0dHJpYnV0ZVRhZzwvQT4KKzxERD5TZXQgdGhlIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCI+VXNlQXR0cmlidXRlVGFnPC9BPgorPEREPlNldCBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5TZXQgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwiPkdldFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSb290VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sIj5OZXN0ZWRSb290VGFnPC9BPgorPEREPlNldHRlciBtZXRob2QgZm9yIHRoZSA8aT5uYW1lPC9pPiBwcm9wZXJ0eQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIj5OZXN0ZWRQcm9wZXJ0eVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPgorPEREPlRoZSBzZXR0ZXIgZm9yIHRoZSA8aT5uYW1lPC9pPiBwcm9wZXJ0eQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwiPkZvcndhcmRUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj5UZXh0YXJlYVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5TZXQgdGhlIGF0dHJpYnV0ZSBrZXkgbmFtZSBvZiBvdXIgYmVhbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSBzZXRQYWdlKFN0cmluZykgaW5zdGVhZDwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPlJlc291cmNlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPlBhcmFtZXRlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj5IZWFkZXJUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+Q29va2llVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5hbWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0TmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXROYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwjc2V0TmVzdGVkUHJvcGVydGllcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCkiPjxCPnNldE5lc3RlZFByb3BlcnRpZXMoSHR0cFNlcnZsZXRSZXF1ZXN0LCBOZXN0ZWRQcm9wZXJ0eVN1cHBvcnQpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwiPk5lc3RlZFByb3BlcnR5SGVscGVyPC9BPgorPEREPkhlbHBlciBtZXRob2QgdGhhdCB3aWxsIHNldCBhbGwgdGhlIHJlbGV2YW50IG5lc3RpbmcgcHJvcGVydGllcyBmb3IgdGhlCisgcHJvdmlkZWQgdGFnIHJlZmVyZW5jZSBkZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUmVmZXJlbmNlLmh0bWwjc2V0TmVzdGVkUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE5lc3RlZFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSZWZlcmVuY2UuaHRtbCI+TmVzdGVkUmVmZXJlbmNlPC9BPgorPEREPlNldHRlciBmb3IgdGhlIG5lc3RlZCBwcm9wZXJ0eQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjc2V0Tm9jYWNoZShib29sZWFuKSI+PEI+c2V0Tm9jYWNoZShib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNzZXROb3Jlc2l6ZShib29sZWFuKSI+PEI+c2V0Tm9yZXNpemUoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPkZyYW1lVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwjc2V0TnVsbChib29sZWFuKSI+PEI+c2V0TnVsbChib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3NldE9iamVjdFZhbHVlKGphdmEubGFuZy5PYmplY3QpIj48Qj5zZXRPYmplY3RWYWx1ZShPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+U2V0IHByb3BlcnR5IHZhbHVlIGFzIGFuIG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldE9mZnNldChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T2Zmc2V0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbmJsdXIoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25CbHVyIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25jaGFuZ2UoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25DaGFuZ2UgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9uY2xpY2soU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25DbGljayBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25kYmxjbGljayhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSBvbkRibENsaWNrIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbmZvY3VzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG9uRm9jdXMgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25rZXlkb3duKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG9uS2V5RG93biBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25rZXlwcmVzcyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSBvbktleVByZXNzIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbmtleXVwKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG9uS2V5VXAgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbm1vdXNlZG93bihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSBvbk1vdXNlRG93biBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9ubW91c2Vtb3ZlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG9uTW91c2VNb3ZlIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbm1vdXNlb3V0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG9uTW91c2VPdXQgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbm1vdXNlb3ZlcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5TZXRzIHRoZSBvbk1vdXNlT3ZlciBldmVudCBoYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRPbm1vdXNldXAoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25Nb3VzZVVwIGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldE9ucmVzZXQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9ucmVzZXQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgb25SZXNldCBldmVudCBzY3JpcHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0T25zZWxlY3QoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgb25TZWxlY3QgZXZlbnQgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0T25zdWJtaXQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldE9uc3VibWl0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5TZXQgdGhlIG9uU3VibWl0IGV2ZW50IHNjcmlwdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCNzZXRPcmRlcihpbnQpIj48Qj5zZXRPcmRlcihpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtLmh0bWwiPkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwjc2V0UGFnZShpbnQpIj48Qj5zZXRQYWdlKGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj5WYWxpZGF0b3JGb3JtPC9BPgorPEREPlNldHMgcGFnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCNzZXRQYWdlKGludCkiPjxCPnNldFBhZ2UoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sIj5EeW5hVmFsaWRhdG9yRm9ybTwvQT4KKzxERD5TZXRzIHBhZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI3NldFBhZ2UoaW50KSI+PEI+c2V0UGFnZShpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+U2V0cyB0aGUgY3VycmVudCBwYWdlIG51bWJlciBvZiBhIG11bHRpLXBhcnQgZm9ybS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjc2V0UGFnZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFnZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8REQ+U2V0cyB0aGUgdmFsdWUgb2YgdGhlIHBhdGggcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjc2V0UGFnZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFnZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPkRlZmluaXRpb25UYWdTdXBwb3J0PC9BPgorPEREPlNldCB0aGUgcGFnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQYWdlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFBhZ2UoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhZ2UoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc2V0UGFnZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFnZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQYWdlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3NldFBhZ2UoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhZ2UoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXRQYWdlQ29udGV4dChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjxCPnNldFBhZ2VDb250ZXh0KFBhZ2VDb250ZXh0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPlNldCB0aGUgY3VycmVudCBwYWdlIGNvbnRleHQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzZXRQYWdlS2V5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQYWdlS2V5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFBhZ2VLZXkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhZ2VLZXkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3NldFBhZ2VQYXR0ZXJuKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQYWdlUGF0dGVybihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQYXJhbWV0ZXIoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhcmFtZXRlcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+R2VuZXJhbCBwdXJwb3NlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIHRoYXQgY2FuIGJlIHVzZWQgdG8gcGFzcworIGV4dHJhIGluZm9ybWF0aW9uIHRvIHRoZSBBY3Rpb24gaW5zdGFuY2Ugc2VsZWN0ZWQgYnkgdGhpcyBBY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhcmFtZXRlcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhcmFtZXRlcihTdHJpbmcsIFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+Cis8REQ+U2V0cyBhIHBhcmFtZXRlciBmb3IgdGhpcyByZXF1ZXN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFBhcmFtSWQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhcmFtSWQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1JZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1JZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0UGFyYW1JZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1JZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFBhcmFtTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1OYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFBhcmFtTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1OYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRQYXJhbU5hbWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhcmFtTmFtZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFBhcmFtUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhcmFtUHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1Qcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1Qcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0UGFyYW1Qcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1Qcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFBhcmFtU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhcmFtU2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1TY29wZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0UGFyYW1TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGFyYW1TY29wZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI3NldFBhcnNlckRlYnVnTGV2ZWwoaW50KSI+PEI+c2V0UGFyc2VyRGVidWdMZXZlbChpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjb21tb25zLWxvZ2dpbmcgbWVjaGFuaXNtLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNzZXRQYXJzZXJWYWxpZGF0ZShib29sZWFuKSI+PEI+c2V0UGFyc2VyVmFsaWRhdGUoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Cis8REQ+U2V0IHRoZSB2YWxpZGF0aW5nIG1vZGUgZm9yIHRoZSBwYXJzZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3NldFBhdGgoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFBhdGgoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPgorPEREPlNldHMgdGhlIHZhbHVlIG9mIHRoZSBwYXRoIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNzZXRQYXRoKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQYXRoKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0UGF0aChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGF0aChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+U2V0IGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgc3VibWl0dGVkIHJlcXVlc3QsIHN0YXJ0aW5nIHdpdGggYQorIHNsYXNoICgiLyIpIGNoYXJhY3RlciwgYW5kIG9taXR0aW5nIGFueSBmaWxlbmFtZSBleHRlbnNpb24gaWYKKyBleHRlbnNpb24gbWFwcGluZyBpcyBiZWluZyB1c2VkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjc2V0UGF0aChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UGF0aChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwjc2V0UGF0aG5hbWVzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQYXRobmFtZXMoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCI+VmFsaWRhdG9yUGx1Z0luPC9BPgorPEREPlNldHMgYSBjb21tYSBkZWxpbWl0dGVkIGxpc3Qgb2YgVmFsaWRhdG9yIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCNzZXRQcmVmaXgoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByZWZpeChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0LjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvVGV4dFRhZy5odG1sIj5UZXh0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNzZXRQcmVmaXgoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByZWZpeChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPgorPEREPlRoZSBwcmVmaXggb2YgdGhlIGNvbnRleHQtcmVsYXRpdmUgcG9ydGlvbiBvZiB0aGUgcmVxdWVzdCBVUkksIHVzZWQgdG8KKyBzZWxlY3QgdGhpcyBjb25maWd1cmF0aW9uIHZlcnN1cyBvdGhlcnMgc3VwcG9ydGVkIGJ5IHRoZSBjb250cm9sbGVyCisgc2VydmxldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0UHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcmVmaXgoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNzZXRQcmVmaXgoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByZWZpeChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Cis8REQ+VGhlIHByZWZpeCBvZiB0aGUgY29udGV4dC1yZWxhdGl2ZSBwb3J0aW9uIG9mIHRoZSByZXF1ZXN0IFVSSSwgdXNlZCB0bworIHNlbGVjdCB0aGlzIGNvbmZpZ3VyYXRpb24gdmVyc3VzIG90aGVycyBzdXBwb3J0ZWQgYnkgdGhlIGNvbnRyb2xsZXIKKyBzZXJ2bGV0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjc2V0UHJvY2Vzc29yQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb2Nlc3NvckNsYXNzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlIZWxwZXIuaHRtbCNzZXRQcm9wZXJ0eShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoSHR0cFNlcnZsZXRSZXF1ZXN0LCBTdHJpbmcpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwiPk5lc3RlZFByb3BlcnR5SGVscGVyPC9BPgorPEREPlNldHMgdGhlIHByb3ZpZGVkIHByb3BlcnR5IGludG8gdGhlIHJlcXVlc3Qgb2JqZWN0IGZvciByZWZlcmVuY2UgYnkgdGhlCisgb3RoZXIgbmVzdGVkIHRhZ3MuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sIj5Nb2R1bGVFeGNlcHRpb248L0E+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGV4Y2VwdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQXR0cmlidXRlVG9TY29wZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCI+QXR0cmlidXRlVG9TY29wZVRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtTZXQgIHRoZSAgcHJvcGVydHkgIG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sIj5OZXN0ZWRXcml0ZU5lc3RpbmdUYWc8L0E+Cis8REQ+U2V0dGVyIG1ldGhvZCBmb3IgdGhlIDxpPnByb3BlcnR5PC9pPiBwcm9wZXJ0eQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sIj5OZXN0ZWRSb290VGFnPC9BPgorPEREPlNldHRlciBtZXRob2QgZm9yIHRoZSA8aT5wcm9wZXJ0eTwvaT4gcHJvcGVydHkKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIj5OZXN0ZWRQcm9wZXJ0eVRhZzwvQT4KKzxERD5TZXR0ZXIgbWV0aG9kIGZvciB0aGUgPGk+cHJvcGVydHk8L2k+IHByb3BlcnR5CisgQWxzbywgb25seSBzZXR0aW5nIHRoZSBvcmlnaW5hbCBwcm9wZXJ0eSB2YWx1ZSB0byB0aG9zZSB2YWx1ZXMgbm90Cisgc2V0IGJ5IHRoZSBuZXN0ZWQgbG9naWMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPgorPEREPlRoZSBzZXR0ZXIgZm9yIHRoZSBwb3JvcGVydHkgcHJvcGVydHkKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRm9ybVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCI+TmVzdGVkRm9ybVRhZzwvQT4KKzxERD5TZXR0ZXIgZm9yIHRoZSAicHJvcGVydHkiIHByb3BlcnR5Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPk1lc3NhZ2VzVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj5CdXR0b25UYWc8L0E+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPlNldCB0aGUgZmllbGQgbmFtZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFByb3BlcnR5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0UHJvcGVydHkoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRQcm9wZXJ0eShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPlBhZ2VUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+PEI+c2V0UmVhZG9ubHkoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIHJlYWRvbmx5IGV2ZW50IGhhbmRsZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNzZXRSZWRpcmVjdChib29sZWFuKSI+PEI+c2V0UmVkaXJlY3QoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldFJlZGlzcGxheShib29sZWFuKSI+PEI+c2V0UmVkaXNwbGF5KGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNzZXRSZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj5zZXRSZXF1ZXN0KEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5TZXQgdGhlIHJlcXVlc3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgb2JqZWN0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNzZXRSZXNvdXJjZXMoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5zZXRSZXNvdXJjZXMoU2VydmxldENvbnRleHQsIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPkNvbmZpZ0hlbHBlcjwvQT4KKzxERD5TZXQgdGhlIGFwcGxpY2F0aW9uIGFuZCByZXF1ZXN0IGZvciB0aGlzIG9iamVjdCBpbnN0YW5jZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjc2V0UmVzcG9uc2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Qj5zZXRSZXNwb25zZShIdHRwU2VydmxldFJlc3BvbnNlKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPgorPEREPlNldCB0aGUgcmVzcG9uc2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaXNudGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI3NldFJldHVybk51bGwoYm9vbGVhbikiPjxCPnNldFJldHVybk51bGwoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4KKzxERD5TZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICJyZXR1cm5OdWxsIiBwcm9wZXJ0eSBuZXdseSBjcmVhdGVkCisgTWVzc2FnZVJlc291cmNlc3MgYXJlIGluaXRpYWxpemVkIHRvLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI3NldFJldHVybk51bGwoYm9vbGVhbikiPjxCPnNldFJldHVybk51bGwoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8REQ+SW5kaWNhdGVzIHRoYXQgYSA8Y29kZT5udWxsPC9jb2RlPiBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mIGFuIGVycm9yIG1lc3NhZ2Ugc3RyaW5nCisgaWYgYW4gdW5rbm93biBMb2NhbGUgb3Iga2V5IGlzIHJlcXVlc3RlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFJvbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+Cis8REQ+U2V0IHJvbGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFJvbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPgorPEREPlNldHMgdGhlIHZhbHVlIG9mIHRoZSByb2xlIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRSb2xlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwiPkF0dHJpYnV0ZURlZmluaXRpb248L0E+Cis8REQ+U2V0IHJvbGUgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Um9sZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwiPlhtbEF0dHJpYnV0ZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFJvbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+Cis8REQ+U2V0IHJvbGUgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRSb2xlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0QXR0cmlidXRlVGFnLmh0bWwiPkdldEF0dHJpYnV0ZVRhZzwvQT4KKzxERD5TZXQgcm9sZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Um9sZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+U2V0IHJvbGUgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFJvbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIj5EZWZpbml0aW9uVGFnU3VwcG9ydDwvQT4KKzxERD5TZXQgYXNzb2NpYXRlZCByb2xlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRSb2xlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFJvbGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCI+R2V0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Um9sZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldFJvbGVzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRSb2xlcyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Um93cyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0Um93cyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPgorPEREPlNldCB0aGUgbnVtYmVyIG9mIHJvd3MgZm9yIHRoaXMgZmllbGQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPkRlZmluaXRpb25UYWc8L0E+Cis8REQ+U2V0IHRoZSBzY29wZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFNjb3BlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwiPkltcG9ydEF0dHJpYnV0ZVRhZzwvQT4KKzxERD5TZXQgdGhlIHNjb3BlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCI+VXNlQXR0cmlidXRlVGFnPC9BPgorPEREPlNldCB0aGUgc2NvcGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiPkF0dHJpYnV0ZVRvU2NvcGVUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7U2V0ICB0aGUgIHNjb3BlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFNjb3BlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTY29wZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPlJlZGlyZWN0VGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTY29wZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgYXR0cmlidXRlIHNjb3BlIG9mIG91ciBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTY29wZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFNjb3BlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2NvcGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjc2V0U2Nyb2xsaW5nKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTY3JvbGxpbmcoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCI+RnJhbWVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sI3NldFNlcnZlcihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U2VydmVyKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4KKzxERD5TZXRzIHRoZSBzZXJ2ZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPjxCPnNldFNlcnZsZXQoQWN0aW9uU2VydmxldCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPkNvbnZpZW5pZW5jZSBtZXRob2QgdG8gc2V0IGEgcmVmZXJlbmNlIHRvIGEgd29ya2luZworIEFjdGlvblNlcnZsZXQgaW5zdGFuY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj48Qj5zZXRTZXJ2bGV0KEFjdGlvblNlcnZsZXQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Cis8REQ+U2V0cyB0aGUgc2VydmxldCB3aXRoIHdoaWNoIHRoaXMgaGFuZGxlciBpcyBhc3NvY2lhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+PEI+c2V0U2VydmxldChBY3Rpb25TZXJ2bGV0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPjxCPnNldFNlcnZsZXQoQWN0aW9uU2VydmxldCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPgorPEREPlNldCB0aGUgY29udHJvbGxlciBzZXJ2bGV0IGluc3RhbmNlIHRvIHdoaWNoIHdlIGFyZSBhdHRhY2hlZCAoaWYKKyA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBpcyBub24tbnVsbCksIG9yIHJlbGVhc2UgYW55IGFsbG9jYXRlZCByZXNvdXJjZXMKKyAoaWYgPGNvZGU+c2VydmxldDwvY29kZT4gaXMgbnVsbCkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj48Qj5zZXRTZXJ2bGV0KEFjdGlvblNlcnZsZXQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Cis8REQ+U2V0IHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkIChpZgorIDxjb2RlPnNlcnZsZXQ8L2NvZGU+IGlzIG5vbi1udWxsKSwgb3IgcmVsZWFzZSBhbnkgYWxsb2NhdGVkIHJlc291cmNlcworIChpZiA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBpcyBudWxsKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+PEI+c2V0U2VydmxldChBY3Rpb25TZXJ2bGV0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5BY3Rpb25NYXBwaW5nczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtTZXQgdGhlIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+IGluc3RhbmNlIG9mIG91ciBvd25pbmcgYXBwbGljYXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwjc2V0U2VydmxldEZvcihvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpIj48Qj5zZXRTZXJ2bGV0Rm9yKE11bHRpcGFydFJlcXVlc3RIYW5kbGVyKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sIj5BY3Rpb25TZXJ2bGV0V3JhcHBlcjwvQT4KKzxERD5TZXQgc2VydmxldCB0byBhIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNzZXRTZXNzaW9uKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vzc2lvbikiPjxCPnNldFNlc3Npb24oSHR0cFNlc3Npb24pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+Cis8REQ+U2V0IHRoZSBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGluc3RhbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCNzZXRTaXplKGludCkiPjxCPnNldFNpemUoaW50KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3NldFNpemUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFNpemUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRTaXplKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTaXplKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+U2V0IHRoZSBzaXplIG9mIHRoaXMgZmllbGQgKHN5bm9ueW0gZm9yIDxjb2RlPnNldENvbHMoKTwvY29kZT4pLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNzZXRTcmMoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFNyYyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+U2V0cyB0aGUgc3JjIGF0dHJpYnV0ZSdzIHZhbHVlIHdoZW4gZGVmaW5pbmcKKyB0aGUgaHRtbCBzY3JpcHQgZWxlbWVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldFNyYyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U3JjKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFNyYyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U3JjKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzZXRTcmNLZXkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFNyY0tleShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRTcmNLZXkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFNyY0tleShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNzZXRTdGF0aWNKYXZhc2NyaXB0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTdGF0aWNKYXZhc2NyaXB0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4KKzxERD5TZXRzIHdoZXRoZXIgb3Igbm90IHRvIGdlbmVyYXRlIHRoZSBzdGF0aWMKKyBKYXZhU2NyaXB0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U3R5bGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFN0eWxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFN0eWxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIHN0eWxlIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFN0eWxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5TZXQgdGhlIHN0eWxlIGF0dHJpYnV0ZSBmb3IgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFN0eWxlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFN0eWxlQ2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U3R5bGVDbGFzcyhTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5PcHRpb25zQ29sbGVjdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFN0eWxlQ2xhc3MoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgc3R5bGUgY2xhc3MgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTdHlsZUNsYXNzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5TZXQgdGhlIHN0eWxlIGNsYXNzIGZvciB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTdHlsZUNsYXNzKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTdHlsZUlkKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIHN0eWxlIGlkIGF0dHJpYnV0ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0U3R5bGVJZChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+U2V0IHRoZSBzdHlsZSBpZGVudGlmaWVyIGZvciB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTdHlsZUlkKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+Cis8REQ+U2V0IHRoZSBzdHlsZSBpZGVudGlmaWVyIGZvciB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0U3VmZml4KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRTdWZmaXgoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFRhYmluZGV4KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIHRhYkluZGV4IHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRUYXJnZXQoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFRhcmdldChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sI3NldFRhcmdldChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VGFyZ2V0KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+QmFzZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0VGFyZ2V0KGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUYXJnZXQoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlNldCB0aGUgd2luZG93IHRhcmdldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3NldFRlbXBEaXIoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFRlbXBEaXIoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3NldFRlbXBsYXRlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUZW1wbGF0ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8REQ+U2V0cyB0aGUgdmFsdWUgb2YgdGhlIHRlbXBsYXRlIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3NldFRlbXBsYXRlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUZW1wbGF0ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPkRlZmluaXRpb25UYWdTdXBwb3J0PC9BPgorPEREPlNldCB0aGUgdGVtcGxhdGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI3NldFRlbXBsYXRlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUZW1wbGF0ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI3NldFRpbGVzVXRpbChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxJbXBsKSI+PEI+c2V0VGlsZXNVdGlsKFRpbGVzVXRpbEltcGwpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwiPlRpbGVzVXRpbDwvQT4KKzxERD5TZXQgdGhlIHJlYWwgaW1wbGVtZW50YXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCNzZXRUaWxlc1V0aWxJbXBsQ2xhc3NuYW1lKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUaWxlc1V0aWxJbXBsQ2xhc3NuYW1lKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwiPlRpbGVzUGx1Z2luPC9BPgorPEREPlNldCBUaWxlcyB1dGlsIGltcGxlbWVudGlvbiBjbGFzc25hbWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VGl0bGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+U2V0cyB0aGUgYWR2aXNvcnkgdGl0bGUgYXR0cmlidXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFRpdGxlS2V5KFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlNldHMgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWR2aXNvcnkgdGl0bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCNzZXRUb29sdGlwKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUb29sdGlwKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwiPlNpbXBsZU1lbnVJdGVtPC9BPgorPEREPlNldCB0b29sdGlwIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwjc2V0VG9vbHRpcChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VG9vbHRpcChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCI+TWVudUl0ZW08L0E+Cis8REQ+U2V0IHRvb2x0aXAgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2V0VG9TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VG9TY29wZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFRyYW5zYWN0aW9uKGJvb2xlYW4pIj48Qj5zZXRUcmFuc2FjdGlvbihib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0VHJhbnNhY3Rpb24oYm9vbGVhbikiPjxCPnNldFRyYW5zYWN0aW9uKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3NldFRyYW5zYWN0aW9uKGJvb2xlYW4pIj48Qj5zZXRUcmFuc2FjdGlvbihib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj5JbmNsdWRlVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VHlwZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwiPlhtbEF0dHJpYnV0ZTwvQT4KKzxERD5TZXRzIHRoZSB2YWx1ZSBvZiB0aGUgdmFsdWUgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFR5cGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPlNldCB0eXBlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VHlwZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VHlwZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+U2V0IHRoZSBKYXZhIGNsYXNzIG9mIG91ciBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFR5cGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUeXBlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFR5cGUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUeXBlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VHlwZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj5Gb3JtUHJvcGVydHlDb25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCNzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRUeXBlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRVbmtub3duKGJvb2xlYW4pIj48Qj5zZXRVbmtub3duKGJvb2xlYW4pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0VXNlbWFwKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRVc2VtYXAoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VXNlcihTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjc2V0VXNlckRlYnVnTGV2ZWwoaW50KSI+PEI+c2V0VXNlckRlYnVnTGV2ZWwoaW50KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbnMtbG9nZ2luZyBwYWNrYWdlIGluc3RlYWQuPC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRWYWxpZGF0ZShib29sZWFuKSI+PEI+c2V0VmFsaWRhdGUoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sI3NldFZhbGlkYXRpbmcoYm9vbGVhbikiPjxCPnNldFZhbGlkYXRpbmcoYm9vbGVhbik8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCI+WG1sUGFyc2VyPC9BPgorPEREPlNldCBkaWdlc3RlciB2YWxpZGF0aW5nIGZsYWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNzZXRWYWxpZGF0b3JSZXN1bHRzKG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzdWx0cykiPjxCPnNldFZhbGlkYXRvclJlc3VsdHMoVmFsaWRhdG9yUmVzdWx0cyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj5WYWxpZGF0b3JGb3JtPC9BPgorPEREPlNldCByZXN1bHRzIG9mIHRoZSB2YWxpZGF0aW9uIHBlcmZvcm1lZCBieSB0aGUKKyA8Y29kZT5WYWxpZGF0b3I8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI3NldFZhbGlkYXRvclJlc3VsdHMob3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JSZXN1bHRzKSI+PEI+c2V0VmFsaWRhdG9yUmVzdWx0cyhWYWxpZGF0b3JSZXN1bHRzKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sIj5EeW5hVmFsaWRhdG9yRm9ybTwvQT4KKzxERD5TZXQgcmVzdWx0cyBvZiB0aGUgdmFsaWRhdGlvbiBwZXJmb3JtZWQgYnkgdGhlCisgPGNvZGU+VmFsaWRhdG9yPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI3NldFZhbHVlKGphdmEubGFuZy5PYmplY3QpIj48Qj5zZXRWYWx1ZShPYmplY3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj5VbnR5cHBlZEF0dHJpYnV0ZTwvQT4KKzxERD5TZXQgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuT2JqZWN0KSI+PEI+c2V0VmFsdWUoT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj5YbWxBdHRyaWJ1dGU8L0E+Cis8REQ+U2V0cyB0aGUgdmFsdWUgb2YgdGhlIHZhbHVlIHByb3BlcnR5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuT2JqZWN0KSI+PEI+c2V0VmFsdWUoT2JqZWN0KTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPgorPEREPlNldCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sIj5MYWJlbFZhbHVlQmVhbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sIj5TaW1wbGVNZW51SXRlbTwvQT4KKzxERD5TZXQgdmFsdWUgcHJvcGVydHkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwiPk1lbnVJdGVtPC9BPgorPEREPlNldCB2YWx1ZSBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4KKzxERD5TZXQgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+Cis8REQ+U2V0IHRoZSBjb21wYXJpc29uIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPgorPEREPlNldCB0aGUgbGFiZWwgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+Cis8REQ+U2V0IHRoZSBzZXJ2ZXIgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZhbHVlKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+Cis8REQ+U2V0IHRoZSBmaWVsZCB2YWx1ZSAoaWYgYW55KS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj5DaGVja2JveFRhZzwvQT4KKzxERD5TZXQgdGhlIHNlcnZlciB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT4KKzxERD5TZXQgdGhlIGxhYmVsIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPgorPEREPlNldCB0aGUgbGFiZWwgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+Cis8REQ+U2V0IHRoZSBsYWJlbCB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRWYWx1ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD5TZXQgdGhlIHNlcnZlciB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPlBhcmFtZXRlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPkhlYWRlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0VmFsdWUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPkNvb2tpZVRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRWc3BhY2UoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFZzcGFjZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFdpZHRoKGphdmEubGFuZy5TdHJpbmcpIj48Qj5zZXRXaWR0aChTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sI3NldFdyaXRlKGJvb2xlYW4pIj48Qj5zZXRXcml0ZShib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwiPkhpZGRlblRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sI3NldFgoamF2YS5sYW5nLlN0cmluZykiPjxCPnNldFgoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sIj5JbWFnZUJ1dHRvbkJlYW48L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sI3NldFhodG1sKGJvb2xlYW4pIj48Qj5zZXRYaHRtbChib29sZWFuKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sIj5IdG1sVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSW1hZ2VCdXR0b25CZWFuLmh0bWwjc2V0WShqYXZhLmxhbmcuU3RyaW5nKSI+PEI+c2V0WShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSW1hZ2VCdXR0b25CZWFuLmh0bWwiPkltYWdlQnV0dG9uQmVhbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sIj48Qj5TaW1wbGVNZW51SXRlbTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCI+U2ltcGxlTWVudUl0ZW08L0E+LjxERD5BIE1lbnVJdGVtIGltcGxlbWVudGF0aW9uLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sI1NpbXBsZU1lbnVJdGVtKCkiPjxCPlNpbXBsZU1lbnVJdGVtKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwiPlNpbXBsZU1lbnVJdGVtPC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3NpemUiPjxCPnNpemU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5Ib3cgbWFueSBhdmFpbGFibGUgb3B0aW9ucyBzaG91bGQgYmUgZGlzcGxheWVkIHdoZW4gdGhpcyBlbGVtZW50CisgaXMgcmVuZGVyZWQ/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sI3NpemUiPjxCPnNpemU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPgorPEREPlRoZSBzaXplIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkIGlmIHRoaXMgcHJvcGVydHkgaXMgYW4gYXJyYXkKKyB0eXBlIGFuZCB0aGVyZSBpcyBubyBzcGVjaWZpZWQgPGNvZGU+aW5pdGlhbDwvY29kZT4gdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwjc2l6ZSgpIj48Qj5zaXplKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+Cis8REQ+UmV0dXJuIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgcmVjb3JkZWQgZm9yIGFsbCBwcm9wZXJ0aWVzIChpbmNsdWRpbmcKKyBnbG9iYWwgbWVzc2FnZXMpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI3NpemUoamF2YS5sYW5nLlN0cmluZykiPjxCPnNpemUoU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT4KKzxERD5SZXR1cm4gdGhlIG51bWJlciBvZiBtZXNzYWdlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBwcm9wZXJ0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPjxCPlNpemVUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+U2l6ZVRhZzwvQT4uPEREPkRlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgY29udGFpbiB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzCisgZm91bmQgaW4gYSBzcGVjaWZpZWQgYXJyYXksIENvbGxlY3Rpb24sIG9yIE1hcC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI1NpemVUYWcoKSI+PEI+U2l6ZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sIj48Qj5TaXplVGVpPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwiPlNpemVUZWk8L0E+LjxERD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+c2l6ZTwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sI1NpemVUZWkoKSI+PEI+U2l6ZVRlaSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwiPlNpemVUZWk8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNza2lwQ3VycmVudExpbmVJZkJsYW5rKCkiPjxCPnNraXBDdXJyZW50TGluZUlmQmxhbmsoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNTUUxfREFURV9GT1JNQVRfS0VZIj48Qj5TUUxfREFURV9GT1JNQVRfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD5UaGUga2V5IHRvIHNlYXJjaCBkZWZhdWx0IGZvcm1hdCBzdHJpbmcgZm9yIAorIGphdmEuc3FsLkRhdGUgaW4gcmVzb3VyY2VzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjU1FMX1RJTUVfRk9STUFUX0tFWSI+PEI+U1FMX1RJTUVfRk9STUFUX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+Cis8REQ+VGhlIGtleSB0byBzZWFyY2ggZGVmYXVsdCBmb3JtYXQgc3RyaW5nIGZvciAKKyBqYXZhLnNxbC5UaW1lIGluIHJlc291cmNlcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI1NRTF9USU1FU1RBTVBfRk9STUFUX0tFWSI+PEI+U1FMX1RJTUVTVEFNUF9GT1JNQVRfS0VZPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4KKzxERD5UaGUga2V5IHRvIHNlYXJjaCBkZWZhdWx0IGZvcm1hdCBzdHJpbmcgZm9yIAorIGphdmEuc3FsLlRpbWVzdGFtcCBpbiByZXNvdXJjZXMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI3NyYyI+PEI+c3JjPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4KKzxERD5UaGUgc3JjIGF0dHJpYnV0ZSBmb3IgaHRtbCBzY3JpcHQgZWxlbWVudCAodXNlZCB0byBpbmNsdWRlIGFuIGV4dGVybmFsIHNjcmlwdAorIHJlc291cmNlKS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NyYyI+PEI+c3JjPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPgorPEREPlRoZSBVUkwgb2YgdGhpcyBpbWFnZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzcmMiPjxCPnNyYzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSBpbWFnZSBzb3VyY2UgVVJJLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc3JjKCkiPjxCPnNyYygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD5SZXR1cm4gdGhlIGJhc2Ugc291cmNlIFVSTCB0aGF0IHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIDxjb2RlPnNyYzwvY29kZT4KKyBwcm9wZXJ0eSBmb3IgdGhpcyBnZW5lcmF0ZWQgZWxlbWVudCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlcmUgaXMKKyBubyBzdWNoIFVSTC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzcmMoKSI+PEI+c3JjKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBiYXNlIHNvdXJjZSBVUkwgdGhhdCB3aWxsIGJlIHJlbmRlcmVkIGluIHRoZSA8Y29kZT5zcmM8L2NvZGU+CisgcHJvcGVydHkgZm9yIHRoaXMgZ2VuZXJhdGVkIGVsZW1lbnQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZXJlIGlzCisgbm8gc3VjaCBVUkwuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzcmNLZXkiPjxCPnNyY0tleTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgVVJMIG9mIHRoaXMgaW1hZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc3JjS2V5Ij48Qj5zcmNLZXk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IHVuZGVyIHdoaWNoIHdlIHNob3VsZCBsb29rIHVwIHRoZQorIDxjb2RlPnNyYzwvY29kZT4gYXR0cmlidXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0YWcsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3N0YXJ0ZWQiPjxCPnN0YXJ0ZWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+SGFzIHRoaXMgdGFnIGluc3RhbmNlIGJlZW4gc3RhcnRlZD8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjc3RhdGljSmF2YXNjcmlwdCI+PEI+c3RhdGljSmF2YXNjcmlwdDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0E+Cis8REQ+VGhlIHN0YXRpYyBKYXZhU2NyaXB0IG1ldGhvZHMgd2lsbCBvbmx5IGJlIHByaW50ZWQgaWYgdGhpcyBpcyBzZXQgdG8gInRydWUiLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9FeGNlcHRpb25IYW5kbGVyLmh0bWwjc3RvcmVFeGNlcHRpb24oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9yLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCwgamF2YS5sYW5nLlN0cmluZykiPjxCPnN0b3JlRXhjZXB0aW9uKEh0dHBTZXJ2bGV0UmVxdWVzdCwgU3RyaW5nLCBBY3Rpb25FcnJvciwgQWN0aW9uRm9yd2FyZCwgU3RyaW5nKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9FeGNlcHRpb25IYW5kbGVyLmh0bWwiPkV4Y2VwdGlvbkhhbmRsZXI8L0E+Cis8REQ+RGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3IgaGFuZGxpbmcgYW4gPGI+QWN0aW9uRXJyb3I8L2I+IGdlbmVyYXRlZAorIGZyb20gYW4gRXhjZXB0aW9uIGR1cmluZyA8Yj5BY3Rpb248L2I+IGRlbGVnYXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjU1RSSU5HX0NPTVBBUkUiPjxCPlNUUklOR19DT01QQVJFPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPgorPEREPldlIHdpbGwgZG8gYSBTdHJpbmcgY29tcGFyaXNvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+PEI+U3RydXRzVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+U3RydXRzVGFnPC9BPi48REQ+RGVmaW5lIGEgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgZXhwb3NlcyB0aGUgcmVxdWVzdGVkIFN0cnV0cworIGludGVybmFsIGNvbmZpZ3VyYXRvbiBvYmplY3QuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI1N0cnV0c1RhZygpIj48Qj5TdHJ1dHNUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPlN0cnV0c1RhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUZWkuaHRtbCI+PEI+U3RydXRzVGVpPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUZWkuaHRtbCI+U3RydXRzVGVpPC9BPi48REQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPnN0cnV0czwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGVpLmh0bWwjU3RydXRzVGVpKCkiPjxCPlN0cnV0c1RlaSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUZWkuaHRtbCI+U3RydXRzVGVpPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwiPjxCPlN0cnV0c1ZhbGlkYXRvcjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sIj5TdHJ1dHNWYWxpZGF0b3I8L0E+LjxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSAgICA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+PENPREU+RmllbGRDaGVja3M8L0NPREU+PC9BPjwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCNTdHJ1dHNWYWxpZGF0b3IoKSI+PEI+U3RydXRzVmFsaWRhdG9yKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCI+U3RydXRzVmFsaWRhdG9yPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sIj48Qj5TdHJ1dHNWYWxpZGF0b3JVdGlsPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sIj5TdHJ1dHNWYWxpZGF0b3JVdGlsPC9BPi48REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sIj48Q09ERT5SZXNvdXJjZXM8L0NPREU+PC9BPjwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjU3RydXRzVmFsaWRhdG9yVXRpbCgpIj48Qj5TdHJ1dHNWYWxpZGF0b3JVdGlsKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwiPlN0cnV0c1ZhbGlkYXRvclV0aWw8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3N0eWxlIj48Qj5zdHlsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+Cis8REQ+VGhlIHN0eWxlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI3N0eWxlIj48Qj5zdHlsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5PcHRpb25zQ29sbGVjdGlvblRhZzwvQT4KKzxERD5UaGUgc3R5bGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGUiPjxCPnN0eWxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlN0eWxlIGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHdpdGggY29tcG9uZW50LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzdHlsZSI+PEI+c3R5bGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSBzdHlsZSBhdHRyaWJ1dGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3N0eWxlIj48Qj5zdHlsZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPlRoZSBzdHlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3N0eWxlQ2xhc3MiPjxCPnN0eWxlQ2xhc3M8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPgorPEREPlRoZSBuYW1lZCBzdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNzdHlsZUNsYXNzIj48Qj5zdHlsZUNsYXNzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEREPlRoZSBuYW1lZCBzdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUNsYXNzIj48Qj5zdHlsZUNsYXNzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPk5hbWVkIFN0eWxlIGNsYXNzIGFzc29jaWF0ZWQgd2l0aCBjb21wb25lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3N0eWxlQ2xhc3MiPjxCPnN0eWxlQ2xhc3M8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj5Gb3JtVGFnPC9BPgorPEREPlRoZSBzdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc3R5bGVDbGFzcyI+PEI+c3R5bGVDbGFzczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPlRoZSBuYW1lZCBzdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUlkIj48Qj5zdHlsZUlkPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPklkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIGNvbXBvbmVudC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc3R5bGVJZCI+PEI+c3R5bGVJZDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIGlkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3N0eWxlSWQiPjxCPnN0eWxlSWQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPk9wdGlvblRhZzwvQT4KKzxERD5UaGUgaWRlbnRpZmllciBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwjc3ViQ29tcENvbnRleHQiPjxCPnN1YkNvbXBDb250ZXh0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLkluc2VydEhhbmRsZXI8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPjxCPlN1Ym1pdFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT4uPEREPlRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInN1Ym1pdCIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI1N1Ym1pdFRhZygpIj48Qj5TdWJtaXRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc3VmZml4Ij48Qj5zdWZmaXg8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPlN1ZmZpeCB1c2VkIHRvIG1hdGNoIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVzIHRvIGZvcm0gYmVhbiBwcm9wZXJ0eQorIG5hbWVzLCBpZiBhbnkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Td2l0Y2hBY3Rpb24uaHRtbCI+PEI+U3dpdGNoQWN0aW9uPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvU3dpdGNoQWN0aW9uLmh0bWwiPlN3aXRjaEFjdGlvbjwvQT4uPEREPkEgc3RhbmRhcmQgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBzd2l0Y2hlcyB0byBhIG5ldyBtb2R1bGUKKyBhbmQgdGhlbiBmb3J3YXJkcyBjb250cm9sIHRvIGEgVVJJIChzcGVjaWZpZWQgaW4gYSBudW1iZXIgb2YgcG9zc2libGUgd2F5cykKKyB3aXRoaW4gdGhlIG5ldyBtb2R1bGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvU3dpdGNoQWN0aW9uLmh0bWwjU3dpdGNoQWN0aW9uKCkiPjxCPlN3aXRjaEFjdGlvbigpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvU3dpdGNoQWN0aW9uLmh0bWwiPlN3aXRjaEFjdGlvbjwvQT4KKzxERD4mbmJzcDsKKzwvREw+Cis8SFI+Cis8QSBOQU1FPSJfVF8iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPlQ8L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij48Qj50YWJpbmRleDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD5UYWIgaW5kZXggdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3RhZ0hhbmRsZXIiPjxCPnRhZ0hhbmRsZXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPkZpbmFsZSBoYW5kbGVyIG9mIHRhZyBtZXRob2RzCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCI+PEI+VGFnVXRpbHM8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwiPlRhZ1V0aWxzPC9BPi48REQ+Q29sbGVjdGlvbiBvZiB1dGlsaXRpZXMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwjVGFnVXRpbHMoKSI+PEI+VGFnVXRpbHMoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCI+VGFnVXRpbHM8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3RhcmdldCI+PEI+dGFyZ2V0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD5UaGUgd2luZG93IHRhcmdldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjdGFyZ2V0Ij48Qj50YXJnZXQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sIj5CYXNlVGFnPC9BPgorPEREPlRoZSB0YXJnZXQgd2luZG93IGZvciB0aGlzIGJhc2UgcmVmZXJlbmNlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCN0YXJnZXQiPjxCPnRhcmdldDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+Cis8REQ+VGhlIHdpbmRvdyB0YXJnZXQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjdGVtcERpciI+PEI+dGVtcERpcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEREPlRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRvIHN0b3JlIGZpbGVzCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3RlbXBEaXIiPjxCPnRlbXBEaXI8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPgorPEREPlRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjdGVtcERpciI+PEI+dGVtcERpcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxERD5UaGUgdGVtcG9yYXJ5IHdvcmtpbmcgZGlyZWN0b3J5IHRvIHVzZSBmb3IgZmlsZSB1cGxvYWRzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCN0ZW1wbGF0ZSI+PEI+dGVtcGxhdGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBhcHBsaWNhdGlvbi1yZWxhdGl2ZSBVUkkgb2YgdGhlIHRlbXBsYXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI3Rlc3RSZXNldCgpIj48Qj50ZXN0UmVzZXQoKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj5UaWxlc1V0aWw8L0E+Cis8REQ+UmVzZXQgaW50ZXJuYWwgc3RhdGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3RleHQiPjxCPnRleHQ8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjdGV4dCI+PEI+dGV4dDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+Q2FuY2VsVGFnPC9BPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCN0ZXh0Ij48Qj50ZXh0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjdGV4dCI+PEI+dGV4dDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjdGV4dCI+PEI+dGV4dDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCN0ZXh0Ij48Qj50ZXh0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjdGV4dCI+PEI+dGV4dDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPlRoZSBtZXNzYWdlIHRleHQgdG8gYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGlzIHRhZyAoaWYgYW55KQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjdGV4dCI+PEI+dGV4dDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI1RFWFRfQlVGRkVSX1NJWkUiPjxCPlRFWFRfQlVGRkVSX1NJWkU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+Cis8REQ+VGhlIHNpemUgaW4gYnl0ZXMgdG8gY29weSBvZiB0ZXh0IGRhdGEgYXQgYSB0aW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3RleHQoKSI+PEI+dGV4dCgpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPlJldHVybiB0aGUgdGV4dCB0byBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgZm9yIHRoaXMgb3B0aW9uIChpZiBhbnkpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPjxCPlRleHRhcmVhVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj5UZXh0YXJlYVRhZzwvQT4uPEREPkN1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJ0ZXh0YXJlYSIuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjVGV4dGFyZWFUYWcoKSI+PEI+VGV4dGFyZWFUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+VGV4dGFyZWFUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3RleHRFbGVtZW50cyI+PEI+dGV4dEVsZW1lbnRzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxERD5BIEhhc2h0YWJsZSByZXByZXNlbnRpbmcgdGhlIGZvcm0gdGV4dCBpbnB1dCBuYW1lcyBhbmQgdmFsdWVzLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvVGV4dFRhZy5odG1sIj48Qj5UZXh0VGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0LjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvVGV4dFRhZy5odG1sIj5UZXh0VGFnPC9BPi48REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIG8uYS5zLnRhZ2xpYi5odG1sLlRleHRUYWcgaW5zdGVhZC48L0k+PERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbCI+PEI+VGV4dFRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sIj5UZXh0VGFnPC9BPi48REQ+Q3VzdG9tIHRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInRleHQiLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCNUZXh0VGFnKCkiPjxCPlRleHRUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCI+VGV4dFRhZzwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyB0YWcuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sI1RleHRUYWcoKSI+PEI+VGV4dFRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0VGFnLmh0bWwiPlRleHRUYWc8L0E+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI1RJTEVTX0RFVEFJTFNfUEFSQU1FVEVSX05BTUUiPjxCPlRJTEVTX0RFVEFJTFNfUEFSQU1FVEVSX05BTUU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Cis8REQ+QWx0ZXJuYXRlIG5hbWUgZm9yIGRlZmluaXRpb24gZGVidWcgZGV0YWlscyBwcm9wZXJ0aWVzIGluIGNvbmZpZ3VyYXRpb24gZmlsZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVGlsZXNBY3Rpb24uaHRtbCI+PEI+VGlsZXNBY3Rpb248L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sIj5UaWxlc0FjdGlvbjwvQT4uPEREPkJhc2UgY2xhc3MgZm9yIFRpbGVzIEFjdGlvbnMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVGlsZXNBY3Rpb24uaHRtbCNUaWxlc0FjdGlvbigpIj48Qj5UaWxlc0FjdGlvbigpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVGlsZXNBY3Rpb24uaHRtbCI+VGlsZXNBY3Rpb248L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNFeGNlcHRpb24uaHRtbCI+PEI+VGlsZXNFeGNlcHRpb248L0I+PC9BPiAtIGV4Y2VwdGlvbiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc0V4Y2VwdGlvbi5odG1sIj5UaWxlc0V4Y2VwdGlvbjwvQT4uPEREPlJvb3QgY2xhc3MgZm9yIGFsbCBUaWxlcy1leGNlcHRpb25zLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc0V4Y2VwdGlvbi5odG1sI1RpbGVzRXhjZXB0aW9uKCkiPjxCPlRpbGVzRXhjZXB0aW9uKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwiPlRpbGVzRXhjZXB0aW9uPC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwjVGlsZXNFeGNlcHRpb24oamF2YS5sYW5nLkV4Y2VwdGlvbikiPjxCPlRpbGVzRXhjZXB0aW9uKEV4Y2VwdGlvbik8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwiPlRpbGVzRXhjZXB0aW9uPC9BPgorPEREPkNyZWF0ZSBhIG5ldyA8Y29kZT5UaWxlc0V4Y2VwdGlvbjwvY29kZT4gd3JhcHBpbmcgYW4gZXhpc3RpbmcgZXhjZXB0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwjVGlsZXNFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZykiPjxCPlRpbGVzRXhjZXB0aW9uKFN0cmluZyk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwiPlRpbGVzRXhjZXB0aW9uPC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwjVGlsZXNFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLkV4Y2VwdGlvbikiPjxCPlRpbGVzRXhjZXB0aW9uKFN0cmluZywgRXhjZXB0aW9uKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNFeGNlcHRpb24uaHRtbCI+VGlsZXNFeGNlcHRpb248L0E+Cis8REQ+Q3JlYXRlIGEgbmV3IDxjb2RlPlRpbGVzRXhjZXB0aW9uPC9jb2RlPiBmcm9tIGFuIGV4aXN0aW5nIGV4Y2VwdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sIj48Qj5UaWxlc1BsdWdpbjwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCI+VGlsZXNQbHVnaW48L0E+LjxERD5UaWxlcyBQbHVnaW4gdXNlZCB0byBpbml0aWFsaXplIFRpbGVzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sI1RpbGVzUGx1Z2luKCkiPjxCPlRpbGVzUGx1Z2luKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwiPlRpbGVzUGx1Z2luPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj48Qj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0E+LjxERD48c3Ryb25nPlJlcXVlc3RQcm9jZXNzb3I8L3N0cm9uZz4gY29udGFpbnMgdGhlIHByb2Nlc3NpbmcgbG9naWMgdGhhdAorIHRoZSBTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0IHBlcmZvcm1zIGFzIGl0IHJlY2VpdmVzIGVhY2ggc2VydmxldCByZXF1ZXN0CisgZnJvbSB0aGUgY29udGFpbmVyLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNUaWxlc1JlcXVlc3RQcm9jZXNzb3IoKSI+PEI+VGlsZXNSZXF1ZXN0UHJvY2Vzc29yKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNTZXJ2bGV0Lmh0bWwiPjxCPlRpbGVzU2VydmxldDwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNTZXJ2bGV0Lmh0bWwiPlRpbGVzU2VydmxldDwvQT4uPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSB0aGUgQWN0aW9uU2VydmxldCBpbnN0ZWFkLjwvST48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNTZXJ2bGV0Lmh0bWwjVGlsZXNTZXJ2bGV0KCkiPjxCPlRpbGVzU2VydmxldCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1NlcnZsZXQuaHRtbCI+VGlsZXNTZXJ2bGV0PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj48Qj5UaWxlc1V0aWw8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj5UaWxlc1V0aWw8L0E+LjxERD5DbGFzcyBjb250YWluaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3IgVGlsZXMuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI1RpbGVzVXRpbCgpIj48Qj5UaWxlc1V0aWwoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwiPlRpbGVzVXRpbDwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCN0aWxlc1V0aWxJbXBsIj48Qj50aWxlc1V0aWxJbXBsPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCI+VGlsZXNVdGlsPC9BPgorPEREPlRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aWxlc1V0aWxJbXBsCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj48Qj5UaWxlc1V0aWxJbXBsPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPlRpbGVzVXRpbEltcGw8L0E+LjxERD5EZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIFRpbGVzVXRpbC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI1RpbGVzVXRpbEltcGwoKSI+PEI+VGlsZXNVdGlsSW1wbCgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPlRpbGVzVXRpbEltcGw8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCN0aWxlc1V0aWxJbXBsQ2xhc3NuYW1lIj48Qj50aWxlc1V0aWxJbXBsQ2xhc3NuYW1lPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwiPlRpbGVzUGx1Z2luPC9BPgorPEREPlRpbGVzIHV0aWwgaW1wbGVtZW50YXRpb24gY2xhc3NuYW1lLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCI+PEI+VGlsZXNVdGlsU3RydXRzSW1wbDwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzSW1wbC5odG1sIj5UaWxlc1V0aWxTdHJ1dHNJbXBsPC9BPi48REQ+VGlsZXNVdGlsIGltcGxlbWVudGF0aW9uIGZvciBTdHJ1dHMgMS4xIHdpdGggb25lIHNpbmdsZSBmYWN0b3J5LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwjVGlsZXNVdGlsU3RydXRzSW1wbCgpIj48Qj5UaWxlc1V0aWxTdHJ1dHNJbXBsKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCI+VGlsZXNVdGlsU3RydXRzSW1wbDwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sIj48Qj5UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbDwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCI+VGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGw8L0E+LjxERD5JbXBsZW1lbnRhdGlvbiBvZiBUaWxlc1V0aWwgZm9yIFN0cnV0cyBtdWx0aSBtb2R1bGVzLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sI1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsKCkiPjxCPlRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwiPlRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGl0bGUiPjxCPnRpdGxlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPlRoZSBhZHZpc29yeSB0aXRsZSBvZiB0aGlzIGVsZW1lbnQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0aXRsZUtleSI+PEI+dGl0bGVLZXk8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWR2aXNvcnkgdGl0bGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sI3RvSGV4KGJ5dGVbXSkiPjxCPnRvSGV4KGJ5dGVbXSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sIj5Ub2tlblByb2Nlc3NvcjwvQT4KKzxERD5Db252ZXJ0IGEgYnl0ZSBhcnJheSB0byBhIFN0cmluZyBvZiBoZXhhZGVjaW1hbCBkaWdpdHMgYW5kIHJldHVybiBpdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjdG9IZXgoYnl0ZVtdKSI+PEI+dG9IZXgoYnl0ZVtdKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlRoaXMgbWV0aG9kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIHJlbGVhc2UgYWZ0ZXIgU3RydXRzIDEuMS48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3Rva2VuIj48Qj50b2tlbjwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPgorPEREPkFuIGluc3RhbmNlIG9mIFRva2VuUHJvY2Vzc29yIHRvIHVzZSBmb3IgdG9rZW4gZnVuY3Rpb25hbGl0eS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI1RPS0VOX0NPTE9OIj48Qj5UT0tFTl9DT0xPTjwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNUT0tFTl9FUVVBTFMiPjxCPlRPS0VOX0VRVUFMUzwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwjVE9LRU5fS0VZIj48Qj5UT0tFTl9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sIj5Db25zdGFudHM8L0E+Cis8REQ+VGhlIHByb3BlcnR5IHVuZGVyIHdoaWNoIGEgdHJhbnNhY3Rpb24gdG9rZW4gaXMgcmVwb3J0ZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNUT0tFTl9RVU9URSI+PEI+VE9LRU5fUVVPVEU8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjVE9LRU5fU0VNSV9DT0xPTiI+PEI+VE9LRU5fU0VNSV9DT0xPTjwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNUT0tFTl9TUEFDRSI+PEI+VE9LRU5fU1BBQ0U8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCI+PEI+VG9rZW5Qcm9jZXNzb3I8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sIj5Ub2tlblByb2Nlc3NvcjwvQT4uPEREPlRva2VuUHJvY2Vzc29yIGlzIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyBhbGwgdG9rZW4gcmVsYXRlZCBmdW5jdGlvbmFsaXR5LjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwjVG9rZW5Qcm9jZXNzb3IoKSI+PEI+VG9rZW5Qcm9jZXNzb3IoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwiPlRva2VuUHJvY2Vzc29yPC9BPgorPEREPlByb3RlY3RlZCBjb25zdHJ1Y3RvciBmb3IgVG9rZW5Qcm9jZXNzb3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCN0b29sdGlwIj48Qj50b29sdGlwPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwiPlNpbXBsZU1lbnVJdGVtPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3RvU2NvcGUiPjxCPnRvU2NvcGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRoZSBuZXdseSBkZWZpbmVkIGJlYW4gd2lsbCBiZSBjcmVhdGQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sI3RvU3RyaW5nKCkiPjxCPnRvU3RyaW5nKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sIj5MYWJlbFZhbHVlQmVhbjwvQT4KKzxERD5SZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCN0b1N0cmluZygpIj48Qj50b1N0cmluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSW1hZ2VCdXR0b25CZWFuLmh0bWwiPkltYWdlQnV0dG9uQmVhbjwvQT4KKzxERD5SZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCN0b1N0cmluZygpIj48Qj50b1N0cmluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZTwvQT4KKzxERD5SZXR1cm5zIHRoZSAoY2xpZW50LXNpZGUpIGZpbGUgbmFtZSBmb3IgdGhpcyBmaWxlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwjdG9TdHJpbmcoKSI+PEI+dG9TdHJpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+Cis8REQ+R2V0IFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjdG9TdHJpbmcoKSI+PEI+dG9TdHJpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCN0b1N0cmluZygpIj48Qj50b1N0cmluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+STE4bkZhY3RvcnlTZXQ8L0E+Cis8REQ+UmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwjdG9TdHJpbmcoKSI+PEI+dG9TdHJpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPgorPEREPkdldCBTdHJpbmcgcmVwcmVzZW50YXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0Lmh0bWwjdG9TdHJpbmcoKSI+PEI+dG9TdHJpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+RmFjdG9yeVNldDwvQT4KKzxERD5SZXR1cm4gU3RyaW5nIHJlcHJlc2VudGF0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjdG9TdHJpbmcoKSI+PEI+dG9TdHJpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Cis8REQ+UmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCN0b1N0cmluZygpIj48Qj50b1N0cmluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyPC9BPgorPEREPlJldHVybiBTdHJpbmcgcmVwcmVzZW50YXRpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjdG9TdHJpbmcoKSI+PEI+dG9TdHJpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeTwvQT4KKzxERD5SZXR1cm4gU3RyaW5nIHJlcHJlc2VudGF0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwjdG9TdHJpbmcoKSI+PEI+dG9TdHJpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCI+U2ltcGxlTWVudUl0ZW08L0E+Cis8REQ+UmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwjdG9TdHJpbmcoKSI+PEI+dG9TdHJpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj5Db250ZW50PC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCN0b1N0cmluZygpIj48Qj50b1N0cmluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPgorPEREPlJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjdG9TdHJpbmcoKSI+PEI+dG9TdHJpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPgorPEREPlJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjdG9TdHJpbmcoKSI+PEI+dG9TdHJpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPgorPEREPlJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sI3RvU3RyaW5nKCkiPjxCPnRvU3RyaW5nKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPgorPEREPlJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3RvU3RyaW5nKCkiPjxCPnRvU3RyaW5nKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPgorPEREPlJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI3RvU3RyaW5nKCkiPjxCPnRvU3RyaW5nKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPgorPEREPlJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwjdG9TdHJpbmcoKSI+PEI+dG9TdHJpbmcoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPgorPEREPlJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sI3RvU3RyaW5nKCkiPjxCPnRvU3RyaW5nKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPgorPEREPlJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCN0b1N0cmluZygpIj48Qj50b1N0cmluZygpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPkR5bmFBY3Rpb25Gb3JtPC9BPgorPEREPlJlbmRlciBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sI3RvU3RyaW5nKCkiPjxCPnRvU3RyaW5nKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sIj5EeW5hQWN0aW9uRm9ybUNsYXNzPC9BPgorPEREPlJlbmRlciBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI3RvdGFsTGVuZ3RoIj48Qj50b3RhbExlbmd0aDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxERD5UaGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHJlYWQgc28gZmFyCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjdHJhbnNhY3Rpb24iPjxCPnRyYW5zYWN0aW9uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+UmVkaXJlY3RUYWc8L0E+Cis8REQ+SW5jbHVkZSBvdXIgdHJhbnNhY3Rpb24gY29udHJvbCB0b2tlbj8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjdHJhbnNhY3Rpb24iPjxCPnRyYW5zYWN0aW9uPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4KKzxERD5JbmNsdWRlIHRyYW5zYWN0aW9uIHRva2VuIChpZiBhbnkpIGluIHRoZSBoeXBlcmxpbms/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3RyYW5zYWN0aW9uIj48Qj50cmFuc2FjdGlvbjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPkluY2x1ZGVUYWc8L0E+Cis8REQ+SW5jbHVkZSB0cmFuc2FjdGlvbiB0b2tlbiAoaWYgYW55KSBpbiB0aGUgaHlwZXJsaW5rPworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNUUkFOU0FDVElPTl9UT0tFTl9LRVkiPjxCPlRSQU5TQUNUSU9OX1RPS0VOX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sIj5HbG9iYWxzPC9BPgorPEREPlRoZSBzZXNzaW9uIGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91ciB0cmFuc2FjdGlvbiB0b2tlbiBpcworIHN0b3JlZCwgaWYgaXQgaXMgdXNlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjVFJBTlNBQ1RJT05fVE9LRU5fS0VZIj48Qj5UUkFOU0FDVElPTl9UT0tFTl9LRVk8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgR2xvYmFscy5UUkFOU0FDVElPTl9UT0tFTl9LRVkgaW5zdGVhZC48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0cmllZEpzdGxJbml0Ij48Qj50cmllZEpzdGxJbml0PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdHJpZWRKc3RsU3VjY2VzcyI+PEI+dHJpZWRKc3RsU3VjY2VzczwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3R5cGUiPjxCPnR5cGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+Cis8REQ+VGhlIEphdmEgY2xhc3Mgb2YgZWFjaCBleHBvc2VkIGVsZW1lbnQgb2YgdGhlIGNvbGxlY3Rpb24uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjdHlwZSI+PEI+dHlwZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPgorPEREPlRoZSB0eXBlIG9mIGlucHV0IGZpZWxkIHJlcHJlc2VudGVkIGJ5IHRoaXMgdGFnICh0ZXh0LCBwYXNzd29yZCwgb3IKKyBoaWRkZW4pLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCN0eXBlIj48Qj50eXBlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4KKzxERD5UaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBiZWFuIHRvIGJlIGNyZWF0ZWQsIGlmIG5lY2Vzc2FyeS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCN0eXBlIj48Qj50eXBlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIHZhbHVlIHRvIGJlIGV4cG9zZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjdHlwZSI+PEI+dHlwZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPgorPEREPlRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBjbGFzcworIHRvIGJlIHVzZWQgb3IgZ2VuZXJhdGVkLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCN0eXBlIj48Qj50eXBlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgZXhjZXB0aW9uIHRoYXQgaXMgdG8gYmUKKyBoYW5kbGVkIGJ5IHRoaXMgaGFuZGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjdHlwZSI+PEI+dHlwZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+RnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcworIHRvIGJlIHVzZWQgdG8gcHJvY2VzcyByZXF1ZXN0cyBmb3IgdGhpcyBtYXBwaW5nIGlmIHRoZQorIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGFuZCA8Y29kZT5pbmNsdWRlPC9jb2RlPiBwcm9wZXJ0aWVzIGFyZSBub3Qgc2V0LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCN0eXBlIj48Qj50eXBlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3MKKyBvZiB0aGlzIGJlYW4gcHJvcGVydHksIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkgPGNvZGU+W108L2NvZGU+IHRvCisgaW5kaWNhdGUgdGhhdCB0aGUgcHJvcGVydHkgaXMgaW5kZXhlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sI3R5cGUiPjxCPnR5cGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIG9mIHRoZSA8Y29kZT5qYXZheC5zcWwuRGF0YVNvdXJjZTwvY29kZT4KKyBpbXBsZW1lbnRhdGlvbiBjbGFzcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjdHlwZXMiPjxCPnR5cGVzPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj5EaXNwYXRjaEFjdGlvbjwvQT4KKzxERD5UaGUgc2V0IG9mIGFyZ3VtZW50IHR5cGUgY2xhc3NlcyBmb3IgdGhlIHJlZmxlY3RlZCBtZXRob2QgY2FsbC4KKzwvREw+Cis8SFI+Cis8QSBOQU1FPSJfVV8iPjwhLS0gLS0+PC9BPjxIMj4KKzxCPlU8L0I+PC9IMj4KKzxETD4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjdW5rbm93biI+PEI+dW5rbm93bjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+SW5kaWNhdGVzIEFjdGlvbiBiZSBjb25maWd1cmVkIGFzIHRoZSBkZWZhdWx0IG9uZSBmb3IgdGhpcworIGFwcGxpY2F0aW9uLCB3aGVuIHRydWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjdW5rbm93biI+PEI+dW5rbm93bjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBBY3Rpb25NYXBwaW5nIHRoYXQgc2hvdWxkIGhhbmRsZSB1bmtub3duIHJlcXVlc3QgcGF0aHMsIGlmIGFueS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjdW5zcGVjaWZpZWQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxCPnVuc3BlY2lmaWVkKEFjdGlvbk1hcHBpbmcsIEFjdGlvbkZvcm0sIEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj5EaXNwYXRjaEFjdGlvbjwvQT4KKzxERD5NZXRob2Qgd2hpY2ggaXMgZGlzcGF0Y2hlZCB0byB3aGVuIHRoZXJlIGlzIG5vIHZhbHVlIGZvciBzcGVjaWZpZWQKKyByZXF1ZXN0IHBhcmFtZXRlciBpbmNsdWRlZCBpbiB0aGUgcmVxdWVzdC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj48Qj5VbnR5cHBlZEF0dHJpYnV0ZTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+LjxERD5Db21tb24gaW1wbGVtZW50YXRpb24gb2YgYXR0cmlidXRlIGRlZmluaXRpb24uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwjVW50eXBwZWRBdHRyaWJ1dGUoamF2YS5sYW5nLk9iamVjdCkiPjxCPlVudHlwcGVkQXR0cmlidXRlKE9iamVjdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwiPlVudHlwcGVkQXR0cmlidXRlPC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwjVW50eXBwZWRBdHRyaWJ1dGUoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPjxCPlVudHlwcGVkQXR0cmlidXRlKE9iamVjdCwgU3RyaW5nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVXJsQ29udHJvbGxlci5odG1sI3VybCI+PEI+dXJsPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VybENvbnRyb2xsZXIuaHRtbCI+VXJsQ29udHJvbGxlcjwvQT4KKzxERD5VcmwgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29udHJvbGxlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjVVJMIj48Qj5VUkw8L0I+PC9BPiAtIAorU3RhdGljIHZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4KKzxERD5Db250cm9sbGVyIG5hbWUgdHlwZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3VybChqYXZhLmxhbmcuU3RyaW5nKSI+PEI+dXJsKFN0cmluZyk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+UmV0dXJuIHRoZSBzcGVjaWZpZWQgc3JjIFVSTCwgbW9kaWZpZWQgYXMgbmVjZXNzYXJ5IHdpdGggb3B0aW9uYWwKKyByZXF1ZXN0IHBhcmFtZXRlcnMuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVXJsQ29udHJvbGxlci5odG1sIj48Qj5VcmxDb250cm9sbGVyPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VcmxDb250cm9sbGVyLmh0bWwiPlVybENvbnRyb2xsZXI8L0E+LjxERD5UaWxlcyBjb250cm9sbGVyIGluY2x1ZGluZyBhIGxvY2FsIFVSTC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVXJsQ29udHJvbGxlci5odG1sI1VybENvbnRyb2xsZXIoamF2YS5sYW5nLlN0cmluZykiPjxCPlVybENvbnRyb2xsZXIoU3RyaW5nKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVXJsQ29udHJvbGxlci5odG1sIj5VcmxDb250cm9sbGVyPC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCI+PEI+VXNlQXR0cmlidXRlVGFnPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sIj5Vc2VBdHRyaWJ1dGVUYWc8L0E+LjxERD5DdXN0b20gdGFnIGV4cG9zaW5nIGEgY29tcG9uZW50IGF0dHJpYnV0ZSB0byBwYWdlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwjVXNlQXR0cmlidXRlVGFnKCkiPjxCPlVzZUF0dHJpYnV0ZVRhZygpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sIj5Vc2VBdHRyaWJ1dGVUYWc8L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRlaS5odG1sIj48Qj5Vc2VBdHRyaWJ1dGVUZWk8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGVpLmh0bWwiPlVzZUF0dHJpYnV0ZVRlaTwvQT4uPEREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5Vc2VBdHRyaWJ1dGU8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUZWkuaHRtbCNVc2VBdHRyaWJ1dGVUZWkoKSI+PEI+VXNlQXR0cmlidXRlVGVpKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGVpLmh0bWwiPlVzZUF0dHJpYnV0ZVRlaTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCN1c2VtYXAiPjxCPnVzZW1hcDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPkNsaWVudC1zaWRlIGltYWdlIG1hcCBkZWNsYXJhdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+PEI+dXNlcjwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+Cis8REQ+VGhlIHVzZXIgcHJpbmNpcGFsIG5hbWUgdG8gYmUgY2hlY2tlZCBmb3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjdXNlckRlYnVnTGV2ZWwiPjxCPnVzZXJEZWJ1Z0xldmVsPC9CPjwvQT4gLSAKK1N0YXRpYyB2YXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCI+RGVmaW5pdGlvbnNVdGlsPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0dsb2JhbCB1c2VyIGRlZmluZWQgZGVidWcgbGV2ZWwKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjdXNlckhhc1JvbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPjxCPnVzZXJIYXNSb2xlKEh0dHBTZXJ2bGV0UmVxdWVzdCwgU3RyaW5nKTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4KKzxERD5QYXJzZSB0aGUgbGlzdCBvZiByb2xlcyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBiYXNlZCBvbiB3aGV0aGVyCisgdGhlIHVzZXIgaGFzIHRoYXQgcm9sZSBvciBub3QuCis8L0RMPgorPEhSPgorPEEgTkFNRT0iX1ZfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5WPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3ZhbGlkYXRlIj48Qj52YWxpZGF0ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Cis8REQ+U2hvdWxkIHRoZSA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2Qgb2YgdGhlIGZvcm0gYmVhbiBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIGFjdGlvbiBiZSBjYWxsZWQ/Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnZhbGlkYXRlKEFjdGlvbk1hcHBpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj5WYWxpZGF0b3JGb3JtPC9BPgorPEREPlZhbGlkYXRlIHRoZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBiZWVuIHNldCBmcm9tIHRoaXMgSFRUUCByZXF1ZXN0LAorIGFuZCByZXR1cm4gYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgYW55CisgdmFsaWRhdGlvbiBlcnJvcnMgdGhhdCBoYXZlIGJlZW4gZm91bmQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZShBY3Rpb25NYXBwaW5nLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JGb3JtPC9BPgorPEREPlZhbGlkYXRlIHRoZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBiZWVuIHNldCBmcm9tIHRoaXMgSFRUUCByZXF1ZXN0LAorIGFuZCByZXR1cm4gYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgYW55CisgdmFsaWRhdGlvbiBlcnJvcnMgdGhhdCBoYXZlIGJlZW4gZm91bmQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZShBY3Rpb25NYXBwaW5nLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtPC9BPgorPEREPlZhbGlkYXRlIHRoZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBiZWVuIHNldCBmcm9tIHRoaXMgSFRUUCByZXF1ZXN0LAorIGFuZCByZXR1cm4gYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgYW55CisgdmFsaWRhdGlvbiBlcnJvcnMgdGhhdCBoYXZlIGJlZW4gZm91bmQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnZhbGlkYXRlKEFjdGlvbk1hcHBpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIj5WYWxpZGF0b3JBY3Rpb25Gb3JtPC9BPgorPEREPlZhbGlkYXRlIHRoZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBiZWVuIHNldCBmcm9tIHRoaXMgSFRUUCByZXF1ZXN0LAorIGFuZCByZXR1cm4gYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgYW55CisgdmFsaWRhdGlvbiBlcnJvcnMgdGhhdCBoYXZlIGJlZW4gZm91bmQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnZhbGlkYXRlKEFjdGlvbk1hcHBpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPgorPEREPlZhbGlkYXRlIHRoZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBiZWVuIHNldCBmb3IgdGhpcyBIVFRQIHJlcXVlc3QsCisgYW5kIHJldHVybiBhbiA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyBhbnkKKyB2YWxpZGF0aW9uIGVycm9ycyB0aGF0IGhhdmUgYmVlbiBmb3VuZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3ZhbGlkYXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0KSI+PEI+dmFsaWRhdGUoQWN0aW9uTWFwcGluZywgU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4KKzxERD5WYWxpZGF0ZSB0aGUgcHJvcGVydGllcyB0aGF0IGhhdmUgYmVlbiBzZXQgZm9yIHRoaXMgbm9uLUhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlQnl0ZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnZhbGlkYXRlQnl0ZShPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+RmllbGRDaGVja3M8L0E+Cis8REQ+Q2hlY2tzIGlmIHRoZSBmaWVsZCBjYW4gc2FmZWx5IGJlIGNvbnZlcnRlZCB0byBhIGJ5dGUgcHJpbWl0aXZlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVCeXRlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+dmFsaWRhdGVCeXRlKE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sIj5TdHJ1dHNWYWxpZGF0b3I8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVCeXRlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVCeXRlKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUNyZWRpdENhcmQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZUNyZWRpdENhcmQoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPkZpZWxkQ2hlY2tzPC9BPgorPEREPkNoZWNrcyBpZiB0aGUgZmllbGQgaXMgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZUNyZWRpdENhcmQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZUNyZWRpdENhcmQoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwiPlN0cnV0c1ZhbGlkYXRvcjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUNyZWRpdENhcmQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUNyZWRpdENhcmQoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+CisKKyAgVHJhbnNsYXRlZCB0byBKYXZhIGJ5IFRlZCBIdXN0ZWQgKDxhIGhyZWY9Ii9vcmdcYXBhY2hlXHN0cnV0c1x1dGlsL21haWx0bzpodXN0ZWRAYXBhY2hlLm9yZyI+aHVzdGVkQGFwYWNoZS5vcmcKKyAgPC9hPikuPGJyPgorICAmbmJzcDsmbmJzcDsmbmJzcDsgUmVmZXJlbmNlIFNlYW4gTS4gQnVya2UncyBzY3JpcHQgYXQgaHR0cDovL3d3dy5saW5nLm53dS5lZHUvfnNidXJrZS9wdWIvbHVobl9saWIucGwKKyAgPC9wPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZURhdGUoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZURhdGUoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPkZpZWxkQ2hlY2tzPC9BPgorPEREPkNoZWNrcyBpZiB0aGUgZmllbGQgaXMgYSB2YWxpZCBkYXRlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVEYXRlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+dmFsaWRhdGVEYXRlKE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sIj5TdHJ1dHNWYWxpZGF0b3I8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVEYXRlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVEYXRlKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZURvdWJsZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnZhbGlkYXRlRG91YmxlKE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sIj5GaWVsZENoZWNrczwvQT4KKzxERD5DaGVja3MgaWYgdGhlIGZpZWxkIGNhbiBzYWZlbHkgYmUgY29udmVydGVkIHRvIGEgZG91YmxlIHByaW1pdGl2ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlRG91YmxlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+dmFsaWRhdGVEb3VibGUoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwiPlN0cnV0c1ZhbGlkYXRvcjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZURvdWJsZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlRG91YmxlKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZURvdWJsZVJhbmdlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+dmFsaWRhdGVEb3VibGVSYW5nZShPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+RmllbGRDaGVja3M8L0E+Cis8REQ+Q2hlY2tzIGlmIGEgZmllbGRzIHZhbHVlIGlzIHdpdGhpbiBhIHJhbmdlIChtaW4gJmFtcDsgbWF4IHNwZWNpZmllZCBpbiB0aGUKKyAgdmFycyBhdHRyaWJ1dGUpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRW1haWwoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZUVtYWlsKE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sIj5GaWVsZENoZWNrczwvQT4KKzxERD5DaGVja3MgaWYgYSBmaWVsZCBoYXMgYSB2YWxpZCBlLW1haWwgYWRkcmVzcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlRW1haWwoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZUVtYWlsKE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sIj5TdHJ1dHNWYWxpZGF0b3I8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVFbWFpbChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlRW1haWwoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+CisKKyAgQmFzZWQgb24gYSBzY3JpcHQgYnkgU2FuZGVlcCBWLiBUYW1oYW5rYXIgKHN0YW1oYW5rYXJAaG90bWFpbC5jb20pLCBodHRwOi8vamF2YXNjcmlwdC5pbnRlcm5ldC5jb20KKyAgPC9wPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUZsb2F0KGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+dmFsaWRhdGVGbG9hdChPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+RmllbGRDaGVja3M8L0E+Cis8REQ+Q2hlY2tzIGlmIHRoZSBmaWVsZCBjYW4gc2FmZWx5IGJlIGNvbnZlcnRlZCB0byBhIGZsb2F0IHByaW1pdGl2ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlRmxvYXQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZUZsb2F0KE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sIj5TdHJ1dHNWYWxpZGF0b3I8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVGbG9hdChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlRmxvYXQoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRmxvYXRSYW5nZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnZhbGlkYXRlRmxvYXRSYW5nZShPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+RmllbGRDaGVja3M8L0E+Cis8REQ+Q2hlY2tzIGlmIGEgZmllbGRzIHZhbHVlIGlzIHdpdGhpbiBhIHJhbmdlIChtaW4gJmFtcDsgbWF4IHNwZWNpZmllZCBpbiB0aGUKKyAgdmFycyBhdHRyaWJ1dGUpLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlSW50ZWdlcihqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnZhbGlkYXRlSW50ZWdlcihPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+RmllbGRDaGVja3M8L0E+Cis8REQ+Q2hlY2tzIGlmIHRoZSBmaWVsZCBjYW4gc2FmZWx5IGJlIGNvbnZlcnRlZCB0byBhbiBpbnQgcHJpbWl0aXZlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVJbnRlZ2VyKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+dmFsaWRhdGVJbnRlZ2VyKE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sIj5TdHJ1dHNWYWxpZGF0b3I8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVJbnRlZ2VyKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVJbnRlZ2VyKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUludFJhbmdlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+dmFsaWRhdGVJbnRSYW5nZShPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+RmllbGRDaGVja3M8L0E+Cis8REQ+Q2hlY2tzIGlmIGEgZmllbGRzIHZhbHVlIGlzIHdpdGhpbiBhIHJhbmdlIChtaW4gJmFtcDsgbWF4IHNwZWNpZmllZCBpbiB0aGUKKyB2YXJzIGF0dHJpYnV0ZSkuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVMb25nKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+dmFsaWRhdGVMb25nKE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sIj5GaWVsZENoZWNrczwvQT4KKzxERD5DaGVja3MgaWYgdGhlIGZpZWxkIGNhbiBzYWZlbHkgYmUgY29udmVydGVkIHRvIGEgbG9uZyBwcmltaXRpdmUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZUxvbmcoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZUxvbmcoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwiPlN0cnV0c1ZhbGlkYXRvcjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUxvbmcoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUxvbmcoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlTWFzayhqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnZhbGlkYXRlTWFzayhPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+RmllbGRDaGVja3M8L0E+Cis8REQ+Q2hlY2tzIGlmIHRoZSBmaWVsZCBtYXRjaGVzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gaW4gdGhlIGZpZWxkJ3MgbWFzayBhdHRyaWJ1dGUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZU1hc2soamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZU1hc2soT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwiPlN0cnV0c1ZhbGlkYXRvcjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZU1hc2soamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZU1hc2soT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlTWF4TGVuZ3RoKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+dmFsaWRhdGVNYXhMZW5ndGgoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPkZpZWxkQ2hlY2tzPC9BPgorPEREPkNoZWNrcyBpZiB0aGUgZmllbGQncyBsZW5ndGggaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBtYXhpbXVtIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVNYXhMZW5ndGgoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZU1heExlbmd0aChPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCI+U3RydXRzVmFsaWRhdG9yPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlTWF4TGVuZ3RoKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVNYXhMZW5ndGgoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlTWluTGVuZ3RoKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+dmFsaWRhdGVNaW5MZW5ndGgoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPkZpZWxkQ2hlY2tzPC9BPgorPEREPkNoZWNrcyBpZiB0aGUgZmllbGQncyBsZW5ndGggaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBtaW5pbXVtIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVNaW5MZW5ndGgoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZU1pbkxlbmd0aChPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCI+U3RydXRzVmFsaWRhdG9yPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlTWluTGVuZ3RoKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVNaW5MZW5ndGgoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlUmFuZ2UoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZVJhbmdlKE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sIj5GaWVsZENoZWNrczwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUludFJhbmdlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVJbnRSYW5nZShqYXZhLmxhbmcuT2JqZWN0LG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycyxqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVSYW5nZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnZhbGlkYXRlUmFuZ2UoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwiPlN0cnV0c1ZhbGlkYXRvcjwvQT4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUludFJhbmdlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVJbnRSYW5nZShPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVSZXF1aXJlZChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxCPnZhbGlkYXRlUmVxdWlyZWQoT2JqZWN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkLCBBY3Rpb25FcnJvcnMsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPkZpZWxkQ2hlY2tzPC9BPgorPEREPkNoZWNrcyBpZiB0aGUgZmllbGQgaXNuJ3QgbnVsbCBhbmQgbGVuZ3RoIG9mIHRoZSBmaWVsZCBpcyBncmVhdGVyIHRoYW4gemVybyBub3QgCisgaW5jbHVkaW5nIHdoaXRlc3BhY2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZVJlcXVpcmVkKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+dmFsaWRhdGVSZXF1aXJlZChPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCI+U3RydXRzVmFsaWRhdG9yPC9BPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlUmVxdWlyZWQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZVJlcXVpcmVkKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZVJlcXVpcmVkSWYoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+dmFsaWRhdGVSZXF1aXJlZElmKE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBWYWxpZGF0b3IsIEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPkZpZWxkQ2hlY2tzPC9BPgorPEREPkNoZWNrcyBpZiB0aGUgZmllbGQgaXNuJ3QgbnVsbCBiYXNlZCBvbiB0aGUgdmFsdWVzIG9mIG90aGVyIGZpZWxkcy4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZVNob3J0KGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PEI+dmFsaWRhdGVTaG9ydChPYmplY3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQsIEFjdGlvbkVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQj48L0E+IC0gCitTdGF0aWMgbWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+RmllbGRDaGVja3M8L0E+Cis8REQ+Q2hlY2tzIGlmIHRoZSBmaWVsZCBjYW4gc2FmZWx5IGJlIGNvbnZlcnRlZCB0byBhIHNob3J0IHByaW1pdGl2ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlU2hvcnQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Qj52YWxpZGF0ZVNob3J0KE9iamVjdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCwgQWN0aW9uRXJyb3JzLCBIdHRwU2VydmxldFJlcXVlc3QpPC9CPjwvQT4gLSAKK1N0YXRpYyBtZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sIj5TdHJ1dHNWYWxpZGF0b3I8L0E+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVTaG9ydChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlU2hvcnQoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwjdmFsaWRhdGluZyI+PEI+dmFsaWRhdGluZzwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwiPlhtbFBhcnNlcjwvQT4KKzxERD5TaG91bGQgd2UgdXNlIGEgdmFsaWRhdGluZyBYTUwgcGFyc2VyIHRvIHJlYWQgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwjVkFMSURBVE9SX0tFWSI+PEI+VkFMSURBVE9SX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCI+VmFsaWRhdG9yUGx1Z0luPC9BPgorPEREPkFwcGxpY2F0aW9uIHNjb3BlIGtleSB0aGF0IDxjb2RlPlZhbGlkYXRvclJlc291cmNlczwvY29kZT4gaXMgc3RvcmVkIHVuZGVyLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPjxCPlZhbGlkYXRvckFjdGlvbkZvcm08L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIj5WYWxpZGF0b3JBY3Rpb25Gb3JtPC9BPi48REQ+VGhpcyBjbGFzcyBleHRlbmRzIDxzdHJvbmc+VmFsaWRhdG9yRm9ybTwvc3Ryb25nPiBhbmQgcHJvdmlkZXMKKyBiYXNpYyBmaWVsZCB2YWxpZGF0aW9uIGJhc2VkIG9uIGFuIFhNTCBmaWxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sI1ZhbGlkYXRvckFjdGlvbkZvcm0oKSI+PEI+VmFsaWRhdG9yQWN0aW9uRm9ybSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCI+VmFsaWRhdG9yQWN0aW9uRm9ybTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj48Qj5WYWxpZGF0b3JGb3JtPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCI+VmFsaWRhdG9yRm9ybTwvQT4uPEREPlRoaXMgY2xhc3MgZXh0ZW5kcyA8c3Ryb25nPkFjdGlvbkZvcm08L3N0cm9uZz4gYW5kIHByb3ZpZGVzCisgYmFzaWMgZmllbGQgdmFsaWRhdGlvbiBiYXNlZCBvbiBhbiBYTUwgZmlsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNWYWxpZGF0b3JGb3JtKCkiPjxCPlZhbGlkYXRvckZvcm0oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwiPlZhbGlkYXRvckZvcm08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sIj48Qj5WYWxpZGF0b3JQbHVnSW48L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwiPlZhbGlkYXRvclBsdWdJbjwvQT4uPEREPkxvYWRzIDxjb2RlPlZhbGlkYXRvclJlc291cmNlczwvY29kZT4gYmFzZWQgb24KKyBjb25maWd1cmF0aW9uIGluIHRoZSBzdHJ1dHMtY29uZmlnLnhtbC48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sI1ZhbGlkYXRvclBsdWdJbigpIj48Qj5WYWxpZGF0b3JQbHVnSW4oKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCI+VmFsaWRhdG9yUGx1Z0luPC9BPgorPEREPiZuYnNwOworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwjdmFsaWRhdG9yUmVzdWx0cyI+PEI+dmFsaWRhdG9yUmVzdWx0czwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCI+VmFsaWRhdG9yRm9ybTwvQT4KKzxERD5UaGUgcmVzdWx0cyByZXR1cm5lZCBmcm9tIHRoZSB2YWxpZGF0aW9uIHBlcmZvcm1lZAorIGJ5IHRoZSA8Y29kZT5WYWxpZGF0b3I8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI3ZhbGlkYXRvclJlc3VsdHMiPjxCPnZhbGlkYXRvclJlc3VsdHM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sIj5EeW5hVmFsaWRhdG9yRm9ybTwvQT4KKzxERD5UaGUgcmVzdWx0cyByZXR1cm5lZCBmcm9tIHRoZSB2YWxpZGF0aW9uIHBlcmZvcm1lZAorIGJ5IHRoZSA8Y29kZT5WYWxpZGF0b3I8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTGFiZWxWYWx1ZUJlYW4uaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwiPkxhYmVsVmFsdWVCZWFuPC9BPgorPEREPlRoZSBwcm9wZXJ0eSB3aGljaCBzdXBwbGllcyB0aGUgdmFsdWUgcmV0dXJuZWQgdG8gdGhlIHNlcnZlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4KKzxERD5UaGUgZWxlbWVudCdzIHRleHQgdmFsdWUsIG51bGwgZm9yIGZpbGUgZWxlbWVudHMKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj5VbnR5cHBlZEF0dHJpYnV0ZTwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwiPlhtbEF0dHJpYnV0ZTwvQT4KKzxERD5BdHRyaWJ1dGUgdmFsdWUuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCI+U2ltcGxlTWVudUl0ZW08L0E+Cis8REQ+Jm5ic3A7Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+YXNzb2NpYXRlZCBhdHRyaWJ1dGUgdmFsdWUKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlcjwvQT4KKzxERD5PYmplY3QgdG8gcHJpbnQgYXMgYSBkaXJlY3Qgc3RyaW5nCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+Cis8REQ+VGhlIHZhbHVlIHRvIHdoaWNoIHRoZSB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgb3RoZXIgYXR0cmlidXRlcyBvZiB0aGlzCisgdGFnIHdpbGwgYmUgbWF0Y2hlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT4KKzxERD5UaGUgdmFsdWUgdG8gd2hpY2ggdGhlIHZhcmlhYmxlIHNwZWNpZmllZCBieSBvdGhlciBhdHRyaWJ1dGVzIG9mIHRoaXMKKyB0YWcgd2lsbCBiZSBjb21wYXJlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5PcHRpb25zQ29sbGVjdGlvblRhZzwvQT4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSB2YWx1ZS4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4KKzxERD5UaGUgdmFsdWUgdG8gY29tcGFyZSB3aXRoIGZvciBtYXJraW5nIGFuIG9wdGlvbiBzZWxlY3RlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4KKzxERD5UaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT4KKzxERD5UaGUgdmFsdWUgd2hpY2ggd2lsbCBtYXJrIHRoaXMgY2hlY2tib3ggYXMgImNoZWNrZWQiIGlmIHByZXNlbnQKKyBpbiB0aGUgYXJyYXkgcmV0dXJuZWQgYnkgb3VyIHByb3BlcnR5IGdldHRlci4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4KKzxERD5UaGUgdmFsdWUgZm9yIHRoaXMgZmllbGQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IHRvIHJldHJpZXZlIHRoZQorIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgZnJvbSBvdXIgYXNzb2NpYXRlZCBiZWFuLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPgorPEREPlRoZSBzZXJ2ZXIgdmFsdWUgZm9yIHRoaXMgb3B0aW9uLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPgorPEREPlRoZSB2YWx1ZSBvZiB0aGUgYnV0dG9uIGxhYmVsLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPgorPEREPlRoZSB2YWx1ZSBvZiB0aGUgYnV0dG9uIGxhYmVsLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjdmFsdWUiPjxCPnZhbHVlPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPlJlc2V0VGFnPC9BPgorPEREPlRoZSB2YWx1ZSBvZiB0aGUgYnV0dG9uIGxhYmVsLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCI+T3B0aW9uVGFnPC9BPgorPEREPlRoZSBzZXJ2ZXIgdmFsdWUgZm9yIHRoaXMgb3B0aW9uLCBhbHNvIHVzZWQgdG8gbWF0Y2ggYWdhaW5zdCB0aGUKKyBjdXJyZW50IHByb3BlcnR5IHZhbHVlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoaXMgb3B0aW9uIHNob3VsZCBiZQorIG1hcmtlZCBhcyBzZWxlY3RlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT4KKzxERD5UaGUgc2VydmVyIHZhbHVlIGZvciB0aGlzIG9wdGlvbi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT4KKzxERD5UaGUgKFN0cmluZykgdmFsdWUgdG8gd2hpY2ggdGhlIGRlZmluZWQgYmVhbiB3aWxsIGJlIHNldC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCN2YWx1ZSI+PEI+dmFsdWU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPlBhcmFtZXRlclRhZzwvQT4KKzxERD5UaGUgZGVmYXVsdCB2YWx1ZSB0byByZXR1cm4gaWYgbm8gcGFyYW1ldGVyIG9mIHRoZSBzcGVjaWZpZWQgbmFtZSBpcworIGZvdW5kLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPgorPEREPlRoZSBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiBubyBoZWFkZXIgb2YgdGhlIHNwZWNpZmllZCBuYW1lIGlzIGZvdW5kLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI3ZhbHVlIj48Qj52YWx1ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+Q29va2llVGFnPC9BPgorPEREPlRoZSBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiBubyBjb29raWUgb2YgdGhlIHNwZWNpZmllZCBuYW1lIGlzIGZvdW5kLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlLmh0bWwjdmFsdWVzIj48Qj52YWx1ZXM8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlLmh0bWwiPkFjdGlvbk1lc3NhZ2U8L0E+Cis8REQ+VGhlIHJlcGxhY2VtZW50IHZhbHVlcyBmb3IgdGhpcyBtZXNhc2dlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwjdmFsdWVUeXBlIj48Qj52YWx1ZVR5cGU8L0I+PC9BPiAtIAorVmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj5YbWxBdHRyaWJ1dGU8L0E+Cis8REQ+QXR0cmlidXRlIHZhbHVlLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCN2YWx1ZVR5cGUiPjxCPnZhbHVlVHlwZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Cis8REQ+UmVxdWVzdGVkIHR5cGUgZm9yIHRoZSB2YWx1ZQorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvTW9kdWxlQ29uZmlnVmVyaWZpZXIuaHRtbCN2ZXJpZnlBY3Rpb25NYXBwaW5nQ2xhc3MoKSI+PEI+dmVyaWZ5QWN0aW9uTWFwcGluZ0NsYXNzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sIj5Nb2R1bGVDb25maWdWZXJpZmllcjwvQT4KKzxERD5SZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgaW5mb3JtYXRpb24gcmV0dXJuZWQgYnkKKyA8Y29kZT5jb25maWcuZ2V0QWN0aW9uTWFwcGluZ0NsYXNzKCk8L2NvZGU+IGlzIGFsbCB2YWxpZDsKKyBvdGhlcndpc2UsIGxvZyBlcnJvciBtZXNzYWdlcyBhbmQgcmV0dXJuIDxjb2RlPmZhbHNlPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjdmVyaWZ5Rm9yd2FyZENvbmZpZ3MoKSI+PEI+dmVyaWZ5Rm9yd2FyZENvbmZpZ3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPgorPEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiBpbmZvcm1hdGlvbiByZXR1cm5lZCBieQorIDxjb2RlPmNvbmZpZy5maW5kRm9yd2FyZENvbmZpZ3MoKSBpcyBhbGwgdmFsaWQ7Cisgb3RoZXJ3aXNlLCBsb2cgZXJyb3IgbWVzc2FnZXMgYW5kIHJldHVybiA8Y29kZT5mYWxzZTwvY29kZT4uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sI3ZlcmlmeU1lc3NhZ2VSZXNvdXJjZXNDb25maWdzKCkiPjxCPnZlcmlmeU1lc3NhZ2VSZXNvdXJjZXNDb25maWdzKCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sIj5Nb2R1bGVDb25maWdWZXJpZmllcjwvQT4KKzxERD5SZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgaW5mb3JtYXRpb24gcmV0dXJuZWQgYnkKKyA8Y29kZT5jb25maWcuZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWdzKCkgaXMgYWxsIHZhbGlkOworIG90aGVyd2lzZSwgbG9nIGVycm9yIG1lc3NhZ2VzIGFuZCByZXR1cm4gPGNvZGU+ZmFsc2U8L2NvZGU+LgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvTW9kdWxlQ29uZmlnVmVyaWZpZXIuaHRtbCN2ZXJpZnlQbHVnSW5Db25maWdzKCkiPjxCPnZlcmlmeVBsdWdJbkNvbmZpZ3MoKTwvQj48L0E+IC0gCitNZXRob2QgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPgorPEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiBpbmZvcm1hdGlvbiByZXR1cm5lZCBieQorIDxjb2RlPmNvbmZpZy5maW5kUGx1Z2luQ29uZmlncygpIGlzIGFsbCB2YWxpZDsKKyBvdGhlcndpc2UsIGxvZyBlcnJvciBtZXNzYWdlcyBhbmQgcmV0dXJuIDxjb2RlPmZhbHNlPC9jb2RlPi4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1ZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sIj48Qj5WaWV3RGVmaW5pdGlvbnNBY3Rpb248L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9WaWV3RGVmaW5pdGlvbnNBY3Rpb24uaHRtbCI+Vmlld0RlZmluaXRpb25zQWN0aW9uPC9BPi48REQ+QW4gPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCB3cml0ZXMgdGhlCisgZGVmaW5pdGlvbnMgb2YgdGhlIFRpbGVzIGZhY3RvcnkuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVmlld0RlZmluaXRpb25zQWN0aW9uLmh0bWwjVmlld0RlZmluaXRpb25zQWN0aW9uKCkiPjxCPlZpZXdEZWZpbml0aW9uc0FjdGlvbigpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVmlld0RlZmluaXRpb25zQWN0aW9uLmh0bWwiPlZpZXdEZWZpbml0aW9uc0FjdGlvbjwvQT4KKzxERD4mbmJzcDsKKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCN2c3BhY2UiPjxCPnZzcGFjZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPgorPEREPlRoZSB2ZXJ0aWNhbCBzcGFjaW5nIGFyb3VuZCB0aGUgaW1hZ2UuCis8L0RMPgorPEhSPgorPEEgTkFNRT0iX1dfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5XPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjd2lkdGgiPjxCPndpZHRoPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+Cis8REQ+VGhlIGltYWdlIHdpZHRoLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sI3dyaXRlIj48Qj53cml0ZTwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+SGlkZGVuVGFnPC9BPgorPEREPlNob3VsZCB0aGUgdmFsdWUgb2YgdGhpcyBmaWVsZCBhbHNvIGJlIHJlbmRlcmVkIHRvIHRoZSByZXNwb25zZT8KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjd3JpdGUoY2hhcikiPjxCPndyaXRlKGNoYXIpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+V3JpdGUgYSBzaW5nbGUgY2hhcmFjdGVyIHRvIHRoaXMgc3RyZWFtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCN3cml0ZShjaGFyW10pIj48Qj53cml0ZShjaGFyW10pPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+V3JpdGUgYW4gYXJyYXkgb2YgY2hhcmF0ZXJzIHRvIHRoaXMgc3RyZWFtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCN3cml0ZShjaGFyW10sIGludCwgaW50KSI+PEI+d3JpdGUoY2hhcltdLCBpbnQsIGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5Xcml0ZSB0aGUgc3BlY2lmaWVkIHN1YnNldCBvZiBhbiBhcnJheSBvZiBjaGFyYWN0ZXJzIHRvIHRoaXMgc3RyZWFtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCN3cml0ZShpbnQpIj48Qj53cml0ZShpbnQpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+V3JpdGUgYSBzaW5nbGUgY2hhcmFjdGVyIHRvIHRoaXMgc3RyZWFtLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sI3dyaXRlKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PEI+d3JpdGUoUGFnZUNvbnRleHQsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sIj5SZXNwb25zZVV0aWxzPC9BPgorPEREPldyaXRlIHRoZSBzcGVjaWZpZWQgdGV4dCBhcyB0aGUgcmVzcG9uc2UgdG8gdGhlIHdyaXRlciBhc3NvY2lhdGVkIHdpdGgKKyB0aGlzIHBhZ2UuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3dyaXRlKGphdmEubGFuZy5TdHJpbmcpIj48Qj53cml0ZShTdHJpbmcpPC9CPjwvQT4gLSAKK01ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+U2VydmxldENvbnRleHRXcml0ZXI8L0E+Cis8REQ+V3JpdGUgYSBTdHJpbmcgdG8gdGhpcyBzdHJlYW0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3dyaXRlKGphdmEubGFuZy5TdHJpbmcsIGludCwgaW50KSI+PEI+d3JpdGUoU3RyaW5nLCBpbnQsIGludCk8L0I+PC9BPiAtIAorTWV0aG9kIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxERD5Xcml0ZSB0aGUgc3BlY2lmaWVkIHBvcnRpb24gb2YgYSBTdHJpbmcgdG8gdGhpcyBzdHJlYW0uCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwjd3JpdGVQcmV2aW91cyhqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZykiPjxCPndyaXRlUHJldmlvdXMoUGFnZUNvbnRleHQsIFN0cmluZyk8L0I+PC9BPiAtIAorU3RhdGljIG1ldGhvZCBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sIj5SZXNwb25zZVV0aWxzPC9BPgorPEREPldyaXRlIHRoZSBzcGVjaWZpZWQgdGV4dCBhcyB0aGUgcmVzcG9uc2UgdG8gdGhlIHdyaXRlciBhc3NvY2lhdGVkIHdpdGgKKyB0aGUgYm9keSBjb250ZW50IGZvciB0aGUgdGFnIHdpdGhpbiB3aGljaCB3ZSBhcmUgY3VycmVudGx5IG5lc3RlZC4KKzxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj48Qj5Xcml0ZVRhZzwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+LjxERD5UYWcgdGhhdCByZXRyaWV2ZXMgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sIGNvbnZlcnRzCisgaXQgdG8gYSBTdHJpbmcgcmVwcmVzZW50YXRpb24gKGlmIG5lY2Vzc2FyeSksIGFuZCB3cml0ZXMgaXQgdG8gdGhlIGN1cnJlbnQKKyBvdXRwdXQgc3RyZWFtLCBvcHRpb25hbGx5IGZpbHRlcmluZyBjaGFyYWN0ZXJzIHRoYXQgYXJlIHNlbnNpdGl2ZSBpbiBIVE1MLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI1dyaXRlVGFnKCkiPjxCPldyaXRlVGFnKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPgorPEREPiZuYnNwOworPC9ETD4KKzxIUj4KKzxBIE5BTUU9Il9YXyI+PCEtLSAtLT48L0E+PEgyPgorPEI+WDwvQj48L0gyPgorPERMPgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSW1hZ2VCdXR0b25CZWFuLmh0bWwjeCI+PEI+eDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSW1hZ2VCdXR0b25CZWFuLmh0bWwiPkltYWdlQnV0dG9uQmVhbjwvQT4KKzxERD5UaGUgWCBjb29yZGluYXRlIG9mIHRoZSBidXR0b24gcHJlc3MuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sI3hodG1sIj48Qj54aHRtbDwvQj48L0E+IC0gCitWYXJpYWJsZSBpbiBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPkh0bWxUYWc8L0E+Cis8REQ+QXJlIHdlIHJlbmRlcmluZyBhbiB4aHRtbCBwYWdlPworPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNYSFRNTF9LRVkiPjxCPlhIVE1MX0tFWTwvQj48L0E+IC0gCitTdGF0aWMgdmFyaWFibGUgaW4gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sIj5HbG9iYWxzPC9BPgorPEREPlRoZSBwYWdlIGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHhodG1sIHN0YXR1cyBpcyBzdG9yZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvWGh0bWxUYWcuaHRtbCI+PEI+WGh0bWxUYWc8L0I+PC9BPiAtIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1hodG1sVGFnLmh0bWwiPlhodG1sVGFnPC9BPi48REQ+VGhpcyB0YWcgdGVsbHMgYWxsIG90aGVyIGh0bWwgdGFnbGliIHRhZ3MgdG8gcmVuZGVyIHRoZW1zZWx2ZXMgaW4geGh0bWwuPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1hodG1sVGFnLmh0bWwjWGh0bWxUYWcoKSI+PEI+WGh0bWxUYWcoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvWGh0bWxUYWcuaHRtbCI+WGh0bWxUYWc8L0E+Cis8REQ+Q29uc3RydWN0b3IgZm9yIFhodG1sVGFnLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwiPjxCPlhtbEF0dHJpYnV0ZTwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj5YbWxBdHRyaWJ1dGU8L0E+LjxERD5BIHByb3BlcnR5IGtleS12YWx1ZSBwYWlyLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI1htbEF0dHJpYnV0ZSgpIj48Qj5YbWxBdHRyaWJ1dGUoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj5YbWxBdHRyaWJ1dGU8L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNYbWxBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjxCPlhtbEF0dHJpYnV0ZShTdHJpbmcsIE9iamVjdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCI+WG1sQXR0cmlidXRlPC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj48Qj5YbWxEZWZpbml0aW9uPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj5YbWxEZWZpbml0aW9uPC9BPi48REQ+QSBkZWZpbml0aW9uIHJlYWQgZnJvbSBhbiBYTUwgZGVmaW5pdGlvbnMgZmlsZS48RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwjWG1sRGVmaW5pdGlvbigpIj48Qj5YbWxEZWZpbml0aW9uKCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwiPlhtbERlZmluaXRpb248L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj48Qj5YbWxEZWZpbml0aW9uc1NldDwvQj48L0E+IC0gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPi48REQ+QSBzZXQgb2YgZGVmaW5pdGlvbnMgcmVhZCBmcm9tIFhNTCBkZWZpbml0aW9ucyBmaWxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwjWG1sRGVmaW5pdGlvbnNTZXQoKSI+PEI+WG1sRGVmaW5pdGlvbnNTZXQoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5odG1sIj48Qj5YbWxMaXN0QXR0cmlidXRlPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5odG1sIj5YbWxMaXN0QXR0cmlidXRlPC9BPi48REQ+QW4gYXR0cmlidXRlIGFzIGEgPGNvZGU+TGlzdDwvY29kZT4uPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5odG1sI1htbExpc3RBdHRyaWJ1dGUoKSI+PEI+WG1sTGlzdEF0dHJpYnV0ZSgpPC9CPjwvQT4gLSAKK0NvbnN0cnVjdG9yIGZvciBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5odG1sIj5YbWxMaXN0QXR0cmlidXRlPC9BPgorPEREPkNvbnN0cnVjdG9yLgorPERUPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5odG1sI1htbExpc3RBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS51dGlsLkxpc3QpIj48Qj5YbWxMaXN0QXR0cmlidXRlKFN0cmluZywgTGlzdCk8L0I+PC9BPiAtIAorQ29uc3RydWN0b3IgZm9yIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmh0bWwiPlhtbExpc3RBdHRyaWJ1dGU8L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI3htbFBhcnNlciI+PEI+eG1sUGFyc2VyPC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj5JMThuRmFjdG9yeVNldDwvQT4KKzxERD5YbWwgcGFyc2VyIHVzZWQuCis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCI+PEI+WG1sUGFyc2VyPC9CPjwvQT4gLSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwiPlhtbFBhcnNlcjwvQT4uPEREPlBhcnNlIGFuIFhNTCBkZWZpbml0aW9ucyBmaWxlLjxEVD48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sI1htbFBhcnNlcigpIj48Qj5YbWxQYXJzZXIoKTwvQj48L0E+IC0gCitDb25zdHJ1Y3RvciBmb3IgY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sIj5YbWxQYXJzZXI8L0E+Cis8REQ+Q29uc3RydWN0b3IuCis8L0RMPgorPEhSPgorPEEgTkFNRT0iX1lfIj48IS0tIC0tPjwvQT48SDI+Cis8Qj5ZPC9CPjwvSDI+Cis8REw+Cis8RFQ+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCN5Ij48Qj55PC9CPjwvQT4gLSAKK1ZhcmlhYmxlIGluIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCI+SW1hZ2VCdXR0b25CZWFuPC9BPgorPEREPlRoZSBZIGNvb3JkaW5hdGUgb2YgdGhlIGJ1dHRvbiBwcmVzcy4KKzwvREw+Cis8SFI+Cis8QSBIUkVGPSIjX0FfIj5BPC9BPiA8QSBIUkVGPSIjX0JfIj5CPC9BPiA8QSBIUkVGPSIjX0NfIj5DPC9BPiA8QSBIUkVGPSIjX0RfIj5EPC9BPiA8QSBIUkVGPSIjX0VfIj5FPC9BPiA8QSBIUkVGPSIjX0ZfIj5GPC9BPiA8QSBIUkVGPSIjX0dfIj5HPC9BPiA8QSBIUkVGPSIjX0hfIj5IPC9BPiA8QSBIUkVGPSIjX0lfIj5JPC9BPiA8QSBIUkVGPSIjX0pfIj5KPC9BPiA8QSBIUkVGPSIjX0tfIj5LPC9BPiA8QSBIUkVGPSIjX0xfIj5MPC9BPiA8QSBIUkVGPSIjX01fIj5NPC9BPiA8QSBIUkVGPSIjX05fIj5OPC9BPiA8QSBIUkVGPSIjX09fIj5PPC9BPiA8QSBIUkVGPSIjX1BfIj5QPC9BPiA8QSBIUkVGPSIjX1JfIj5SPC9BPiA8QSBIUkVGPSIjX1NfIj5TPC9BPiA8QSBIUkVGPSIjX1RfIj5UPC9BPiA8QSBIUkVGPSIjX1VfIj5VPC9BPiA8QSBIUkVGPSIjX1ZfIj5WPC9BPiA8QSBIUkVGPSIjX1dfIj5XPC9BPiA8QSBIUkVGPSIjX1hfIj5YPC9BPiA8QSBIUkVGPSIjX1lfIj5ZPC9BPiAKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5QYWNrYWdlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkluZGV4PC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSJpbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9ImluZGV4LWFsbC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9ImFsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9ImFsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvaW5kZXguaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2MGY3M2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvaW5kZXguaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjUyIEVEVCAyMDAzLS0+Cis8VElUTEU+CitBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uCis8L1RJVExFPgorPC9IRUFEPgorPEZSQU1FU0VUIGNvbHM9IjIwJSw4MCUiPgorPEZSQU1FU0VUIHJvd3M9IjMwJSw3MCUiPgorPEZSQU1FIHNyYz0ib3ZlcnZpZXctZnJhbWUuaHRtbCIgbmFtZT0icGFja2FnZUxpc3RGcmFtZSI+Cis8RlJBTUUgc3JjPSJhbGxjbGFzc2VzLWZyYW1lLmh0bWwiIG5hbWU9InBhY2thZ2VGcmFtZSI+Cis8L0ZSQU1FU0VUPgorPEZSQU1FIHNyYz0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIiBuYW1lPSJjbGFzc0ZyYW1lIj4KKzwvRlJBTUVTRVQ+Cis8Tk9GUkFNRVM+Cis8SDI+CitGcmFtZSBBbGVydDwvSDI+CisKKzxQPgorVGhpcyBkb2N1bWVudCBpcyBkZXNpZ25lZCB0byBiZSB2aWV3ZWQgdXNpbmcgdGhlIGZyYW1lcyBmZWF0dXJlLiBJZiB5b3Ugc2VlIHRoaXMgbWVzc2FnZSwgeW91IGFyZSB1c2luZyBhIG5vbi1mcmFtZS1jYXBhYmxlIHdlYiBjbGllbnQuCis8QlI+CitMaW5rIHRvPEEgSFJFRj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIj5Ob24tZnJhbWUgdmVyc2lvbi48L0E+PC9OT0ZSQU1FUz4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5NDZlNDIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sCkBAIC0wLDAgKzEsNzUwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorR2xvYmFscyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscyxHbG9iYWxzIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJHbG9iYWxzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0dsb2JhbHMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJHbG9iYWxzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzPC9GT05UPgorPEJSPgorQ2xhc3MgR2xvYmFsczwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHM8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5HbG9iYWxzPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorPHA+R2xvYmFsIG1hbmlmZXN0IGNvbnN0YW50cyBmb3IgdGhlIGVudGlyZSBTdHJ1dHMgRnJhbWV3b3JrLjwvcD4KKworIDxwPk1hbnkgb2YgdGhlc2UgY29uc3RhbnRzIHdlcmUgaW5pdGlhbGx5IGRlZmluZWQgaW4gPGNvZGU+QWN0aW9uPC9jb2RlPiwKKyBidXQgd2VyZSBtb3ZlZCBoZXJlIHNvIHRoYXQgdGhleSBjb3VsZCBiZSByZWZlcmVuY2VkIHdpdGhvdXQgcmVmZXJlbmNpbmcKKyB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcyBpdHNlbGYuICBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksCisgY29uc3RhbnQgcmVmZXJlbmNlcyB0aGVyZSBwb2ludCBhdCB0aGlzIGNsYXNzLCBhbmQgdGhlIGNvbnN0YW50IHZhbHVlcworIHRoZW1zZWx2ZXMgaGF2ZSBub3QgY2hhbmdlZC48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNBQ1RJT05fU0VSVkxFVF9LRVkiPkFDVElPTl9TRVJWTEVUX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4KKyBpbnN0YW5jZSB3aWxsIGJlIHN0b3JlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjQVBQTElDQVRJT05fS0VZIj5BUFBMSUNBVElPTl9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIE1PRFVMRV9LRVk8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0NBTkNFTF9LRVkiPkNBTkNFTF9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlcXVlc3QgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggYSBib29sZWFuIDxjb2RlPnRydWU8L2NvZGU+CisgdmFsdWUgc2hvdWxkIGJlIHN0b3JlZCBpZiB0aGlzIHJlcXVlc3Qgd2FzIGNhbmNlbGxlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjREFUQV9TT1VSQ0VfS0VZIj5EQVRBX1NPVVJDRV9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyIDxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPgorIGNvbmZpZ3VyZWQgZGF0YSBzb3VyY2UgKHdoaWNoIG11c3QgaW1wbGVtZW50CisgPGNvZGU+amF2YXguc3FsLkRhdGFTb3VyY2U8L2NvZGU+KSBpcyBzdG9yZWQsCisgaWYgb25lIGlzIGNvbmZpZ3VyZWQgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNFUlJPUl9LRVkiPkVSUk9SX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCB5b3VyIGFjdGlvbiBzaG91bGQgc3RvcmUgYW4KKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QsIGlmIHlvdQorIGFyZSB1c2luZyB0aGUgY29ycmVzcG9uZGluZyBjdXN0b20gdGFnIGxpYnJhcnkgZWxlbWVudHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0VYQ0VQVElPTl9LRVkiPkVYQ0VQVElPTl9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlcXVlc3QgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggU3RydXRzIGN1c3RvbSB0YWdzIG1pZ2h0IHN0b3JlIGEKKyA8Y29kZT5UaHJvd2FibGU8L2NvZGU+IHRoYXQgY2F1c2VkIHRoZW0gdG8gcmVwb3J0IGEgSnNwRXhjZXB0aW9uIGF0CisgcnVudGltZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjRk9STV9CRUFOU19LRVkiPkZPUk1fQkVBTlNfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IGNvbGxlY3Rpb24gaW4gTW9kdWxlQ29uZmlnPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNGT1JXQVJEU19LRVkiPkZPUldBUkRTX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIGluIE1vZHVsZUNvbmZpZy48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0xPQ0FMRV9LRVkiPkxPQ0FMRV9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNlc3Npb24gYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggdGhlIHVzZXIncyBzZWxlY3RlZAorIDxjb2RlPmphdmEudXRpbC5Mb2NhbGU8L2NvZGU+IGlzIHN0b3JlZCwgaWYgYW55LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNNQVBQSU5HX0tFWSI+TUFQUElOR19LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlcXVlc3QgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuQWN0aW9uTWFwcGluZzwvY29kZT4gaW5zdGFuY2UKKyBpcyBwYXNzZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI01BUFBJTkdTX0tFWSI+TUFQUElOR1NfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IGNvbGxlY3Rpb24gaW4gTW9kdWxlQ29uZmlnPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNNRVNTQUdFX0tFWSI+TUVTU0FHRV9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlcXVlc3QgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggeW91ciBhY3Rpb24gc2hvdWxkIHN0b3JlIGFuCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzPC9jb2RlPiBvYmplY3QsIGlmIHlvdQorIGFyZSB1c2luZyB0aGUgY29ycmVzcG9uZGluZyBjdXN0b20gdGFnIGxpYnJhcnkgZWxlbWVudHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI01FU1NBR0VTX0tFWSI+TUVTU0FHRVNfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBiYXNlIG9mIHRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91cgorIG1vZHVsZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiB3aWxsIGJlIHN0b3JlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTU9EVUxFX0tFWSI+TU9EVUxFX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYmFzZSBvZiB0aGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIKKyA8Y29kZT5Nb2R1bGVDb25maWc8L2NvZGU+IGRhdGEgc3RydWN0dXJlIHdpbGwgYmUgc3RvcmVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNNVUxUSVBBUlRfS0VZIj5NVUxUSVBBUlRfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91ciBtdWx0aXBhcnQgY2xhc3MgaXMgc3RvcmVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNQTFVHX0lOU19LRVkiPlBMVUdfSU5TX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYmFzZSBvZiB0aGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBhbiBhcnJheSBvZgorIDxjb2RlPlBsdWdJbjwvY29kZT4gaW5zdGFuY2VzIHdpbGwgYmUgc3RvcmVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNSRVFVRVNUX1BST0NFU1NPUl9LRVkiPlJFUVVFU1RfUFJPQ0VTU09SX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYmFzZSBvZiB0aGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIKKyA8Y29kZT5SZXF1ZXN0UHJvY2Vzc29yPC9jb2RlPiBpbnN0YW5jZSB3aWxsIGJlIHN0b3JlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjU0VSVkxFVF9LRVkiPlNFUlZMRVRfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHdlIHN0b3JlIHRoZSBtYXBwaW5nIGRlZmluZWQKKyBmb3Igb3VyIGNvbnRyb2xsZXIgc2VybGV0LCB3aGljaCB3aWxsIGJlIGVpdGhlciBhIHBhdGgtbWFwcGVkIHBhdHRlcm4KKyAoPGNvZGU+L2FjdGlvbi8qPC9jb2RlPikgb3IgYW4gZXh0ZW5zaW9uIG1hcHBlZCBwYXR0ZXJuCisgKDxjb2RlPiouZG88L2NvZGU+KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjVFJBTlNBQ1RJT05fVE9LRU5fS0VZIj5UUkFOU0FDVElPTl9UT0tFTl9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNlc3Npb24gYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyIHRyYW5zYWN0aW9uIHRva2VuIGlzCisgc3RvcmVkLCBpZiBpdCBpcyB1c2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNYSFRNTF9LRVkiPlhIVE1MX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcGFnZSBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCB4aHRtbCBzdGF0dXMgaXMgc3RvcmVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0dsb2JhbHMoKSI+R2xvYmFsczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFDVElPTl9TRVJWTEVUX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorQUNUSU9OX1NFUlZMRVRfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+QUNUSU9OX1NFUlZMRVRfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91ciA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPgorIGluc3RhbmNlIHdpbGwgYmUgc3RvcmVkLgorPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuQUNUSU9OX1NFUlZMRVRfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkFQUExJQ0FUSU9OX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorQVBQTElDQVRJT05fS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+QVBQTElDQVRJT05fS0VZPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBNT0RVTEVfS0VZPC9JPgorPFA+Cis8REQ+PHA+VGhlIGJhc2Ugb2YgdGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+TW9kdWxlQ29uZmlnPC9jb2RlPiBkYXRhIHN0cnVjdHVyZSB3aWxsIGJlIHN0b3JlZC4gIFRoaXMKKyB3aWxsIGJlIHN1ZmZpeGVkIHdpdGggdGhlIGFjdHVhbCBtb2R1bGUgcHJlZml4IChpbmNsdWRpbmcgdGhlCisgbGVhZGluZyAiLyIgY2hhcmFjdGVyKSB0byBmb3JtIHRoZSBhY3R1YWwgYXR0cmlidXRlcyBrZXkuPC9wPgorCisgPHA+Rm9yIGVhY2ggcmVxdWVzdCBwcm9jZXNzZWQgYnkgdGhlIGNvbnRyb2xsZXIgc2VydmxldCwgdGhlCisgPGNvZGU+TW9kdWxlQ29uZmlnPC9jb2RlPiBvYmplY3QgZm9yIHRoZSBtb2R1bGUgc2VsZWN0ZWQgYnkKKyB0aGUgcmVxdWVzdCBVUkkgY3VycmVudGx5IGJlaW5nIHByb2Nlc3NlZCB3aWxsIGFsc28gYmUgZXhwb3NlZCB1bmRlcgorIHRoaXMga2V5IGFzIGEgcmVxdWVzdCBhdHRyaWJ1dGUuPC9wPgorPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuQVBQTElDQVRJT05fS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkNBTkNFTF9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK0NBTkNFTF9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5DQU5DRUxfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPjxwPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIGEgYm9vbGVhbiA8Y29kZT50cnVlPC9jb2RlPgorIHZhbHVlIHNob3VsZCBiZSBzdG9yZWQgaWYgdGhpcyByZXF1ZXN0IHdhcyBjYW5jZWxsZWQuPC9wPgorPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuQ0FOQ0VMX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJNT0RVTEVfS0VZIj48IS0tIC0tPjwvQT48SDM+CitNT0RVTEVfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+TU9EVUxFX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD48cD5UaGUgYmFzZSBvZiB0aGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIKKyA8Y29kZT5Nb2R1bGVDb25maWc8L2NvZGU+IGRhdGEgc3RydWN0dXJlIHdpbGwgYmUgc3RvcmVkLiAgVGhpcworIHdpbGwgYmUgc3VmZml4ZWQgd2l0aCB0aGUgYWN0dWFsIG1vZHVsZSBwcmVmaXggKGluY2x1ZGluZyB0aGUKKyBsZWFkaW5nICIvIiBjaGFyYWN0ZXIpIHRvIGZvcm0gdGhlIGFjdHVhbCBhdHRyaWJ1dGVzIGtleS48L3A+CisKKyA8cD5Gb3IgZWFjaCByZXF1ZXN0IHByb2Nlc3NlZCBieSB0aGUgY29udHJvbGxlciBzZXJ2bGV0LCB0aGUKKyA8Y29kZT5Nb2R1bGVDb25maWc8L2NvZGU+IG9iamVjdCBmb3IgdGhlIG1vZHVsZSBzZWxlY3RlZCBieQorIHRoZSByZXF1ZXN0IFVSSSBjdXJyZW50bHkgYmVpbmcgcHJvY2Vzc2VkIHdpbGwgYWxzbyBiZSBleHBvc2VkIHVuZGVyCisgdGhpcyBrZXkgYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZS48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscy5NT0RVTEVfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkRBVEFfU09VUkNFX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorREFUQV9TT1VSQ0VfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+REFUQV9TT1VSQ0VfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91ciA8c3Ryb25nPmRlZmF1bHQ8L3N0cm9uZz4KKyBjb25maWd1cmVkIGRhdGEgc291cmNlICh3aGljaCBtdXN0IGltcGxlbWVudAorIDxjb2RlPmphdmF4LnNxbC5EYXRhU291cmNlPC9jb2RlPikgaXMgc3RvcmVkLAorIGlmIG9uZSBpcyBjb25maWd1cmVkIGZvciB0aGlzIG1vZHVsZS4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscy5EQVRBX1NPVVJDRV9LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRVJST1JfS0VZIj48IS0tIC0tPjwvQT48SDM+CitFUlJPUl9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5FUlJPUl9LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlcXVlc3QgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggeW91ciBhY3Rpb24gc2hvdWxkIHN0b3JlIGFuCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0LCBpZiB5b3UKKyBhcmUgdXNpbmcgdGhlIGNvcnJlc3BvbmRpbmcgY3VzdG9tIHRhZyBsaWJyYXJ5IGVsZW1lbnRzLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzLkVSUk9SX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJFWENFUFRJT05fS0VZIj48IS0tIC0tPjwvQT48SDM+CitFWENFUFRJT05fS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+RVhDRVBUSU9OX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBTdHJ1dHMgY3VzdG9tIHRhZ3MgbWlnaHQgc3RvcmUgYQorIDxjb2RlPlRocm93YWJsZTwvY29kZT4gdGhhdCBjYXVzZWQgdGhlbSB0byByZXBvcnQgYSBKc3BFeGNlcHRpb24gYXQKKyBydW50aW1lLiAgVGhpcyB2YWx1ZSBjYW4gYmUgdXNlZCBvbiBhbiBlcnJvciBwYWdlIHRvIHByb3ZpZGUgbW9yZQorIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHdoYXQgcmVhbGx5IHdlbnQgd3JvbmcuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuRVhDRVBUSU9OX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJGT1JNX0JFQU5TX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorRk9STV9CRUFOU19LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5GT1JNX0JFQU5TX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIGluIE1vZHVsZUNvbmZpZzwvST4KKzxQPgorPEREPlRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91cgorIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbnM8L2NvZGU+IGNvbGxlY3Rpb24KKyBpcyBub3JtYWxseSBzdG9yZWQsIHVubGVzcyBvdmVycmlkZGVuIHdoZW4gaW5pdGlhbGl6aW5nIG91cgorIEFjdGlvblNlcnZsZXQuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuRk9STV9CRUFOU19LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRk9SV0FSRFNfS0VZIj48IS0tIC0tPjwvQT48SDM+CitGT1JXQVJEU19LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5GT1JXQVJEU19LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgY29sbGVjdGlvbiBpbiBNb2R1bGVDb25maWcuPC9JPgorPFA+Cis8REQ+VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmRzPC9jb2RlPiBjb2xsZWN0aW9uCisgaXMgbm9ybWFsbHkgc3RvcmVkLCB1bmxlc3Mgb3ZlcnJpZGRlbiB3aGVuIGluaXRpYWxpemluZyBvdXIKKyBBY3Rpb25TZXJ2bGV0LgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzLkZPUldBUkRTX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJMT0NBTEVfS0VZIj48IS0tIC0tPjwvQT48SDM+CitMT0NBTEVfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+TE9DQUxFX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2Vzc2lvbiBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCB0aGUgdXNlcidzIHNlbGVjdGVkCisgPGNvZGU+amF2YS51dGlsLkxvY2FsZTwvY29kZT4gaXMgc3RvcmVkLCBpZiBhbnkuICBJZiBubyBzdWNoCisgYXR0cmlidXRlIGlzIGZvdW5kLCB0aGUgc3lzdGVtIGRlZmF1bHQgbG9jYWxlCisgd2lsbCBiZSB1c2VkIHdoZW4gcmV0cmlldmluZyBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcy4gIElmIHVzZWQsIHRoaXMKKyBhdHRyaWJ1dGUgaXMgdHlwaWNhbGx5IHNldCBkdXJpbmcgdXNlciBsb2dpbiBwcm9jZXNzaW5nLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzLkxPQ0FMRV9LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTUFQUElOR19LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK01BUFBJTkdfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+TUFQUElOR19LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlcXVlc3QgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuQWN0aW9uTWFwcGluZzwvY29kZT4gaW5zdGFuY2UKKyBpcyBwYXNzZWQuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuTUFQUElOR19LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTUFQUElOR1NfS0VZIj48IS0tIC0tPjwvQT48SDM+CitNQVBQSU5HU19LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5NQVBQSU5HU19LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgY29sbGVjdGlvbiBpbiBNb2R1bGVDb25maWc8L0k+Cis8UD4KKzxERD5UaGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIKKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZ3M8L2NvZGU+IGNvbGxlY3Rpb24KKyBpcyBub3JtYWxseSBzdG9yZWQsIHVubGVzcyBvdmVycmlkZGVuIHdoZW4gaW5pdGlhbGl6aW5nIG91cgorIEFjdGlvblNlcnZsZXQuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuTUFQUElOR1NfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Ik1FU1NBR0VfS0VZIj48IS0tIC0tPjwvQT48SDM+CitNRVNTQUdFX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPk1FU1NBR0VfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHlvdXIgYWN0aW9uIHNob3VsZCBzdG9yZSBhbgorIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlczwvY29kZT4gb2JqZWN0LCBpZiB5b3UKKyBhcmUgdXNpbmcgdGhlIGNvcnJlc3BvbmRpbmcgY3VzdG9tIHRhZyBsaWJyYXJ5IGVsZW1lbnRzLgorPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuTUVTU0FHRV9LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTUVTU0FHRVNfS0VZIj48IS0tIC0tPjwvQT48SDM+CitNRVNTQUdFU19LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5NRVNTQUdFU19LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+PHA+VGhlIGJhc2Ugb2YgdGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgbW9kdWxlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IHdpbGwgYmUgc3RvcmVkLiAgVGhpcworIHdpbGwgYmUgc3VmZml4ZWQgd2l0aCB0aGUgYWN0dWFsIG1vZHVsZSBwcmVmaXggKGluY2x1ZGluZyB0aGUKKyBsZWFkaW5nICIvIiBjaGFyYWN0ZXIpIHRvIGZvcm0gdGhlIGFjdHVhbCByZXNvdXJjZXMga2V5LjwvcD4KKworIDxwPkZvciBlYWNoIHJlcXVlc3QgcHJvY2Vzc2VkIGJ5IHRoZSBjb250cm9sbGVyIHNlcnZsZXQsIHRoZQorIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IG9iamVjdCBmb3IgdGhlIG1vZHVsZSBzZWxlY3RlZCBieQorIHRoZSByZXF1ZXN0IFVSSSBjdXJyZW50bHkgYmVpbmcgcHJvY2Vzc2VkIHdpbGwgYWxzbyBiZSBleHBvc2VkIHVuZGVyCisgdGhpcyBrZXkgYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZS48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuTUVTU0FHRVNfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Ik1VTFRJUEFSVF9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK01VTFRJUEFSVF9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5NVUxUSVBBUlRfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91ciBtdWx0aXBhcnQgY2xhc3MgaXMgc3RvcmVkLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzLk1VTFRJUEFSVF9LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iUExVR19JTlNfS0VZIj48IS0tIC0tPjwvQT48SDM+CitQTFVHX0lOU19LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5QTFVHX0lOU19LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+PHA+VGhlIGJhc2Ugb2YgdGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggYW4gYXJyYXkgb2YKKyA8Y29kZT5QbHVnSW48L2NvZGU+IGluc3RhbmNlcyB3aWxsIGJlIHN0b3JlZC4gIFRoaXMKKyB3aWxsIGJlIHN1ZmZpeGVkIHdpdGggdGhlIGFjdHVhbCBtb2R1bGUgcHJlZml4IChpbmNsdWRpbmcgdGhlCisgbGVhZGluZyAiLyIgY2hhcmFjdGVyKSB0byBmb3JtIHRoZSBhY3R1YWwgYXR0cmlidXRlcyBrZXkuPC9wPgorPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMuUExVR19JTlNfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlJFUVVFU1RfUFJPQ0VTU09SX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorUkVRVUVTVF9QUk9DRVNTT1JfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+UkVRVUVTVF9QUk9DRVNTT1JfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPjxwPlRoZSBiYXNlIG9mIHRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91cgorIDxjb2RlPlJlcXVlc3RQcm9jZXNzb3I8L2NvZGU+IGluc3RhbmNlIHdpbGwgYmUgc3RvcmVkLiAgVGhpcworIHdpbGwgYmUgc3VmZml4ZWQgd2l0aCB0aGUgYWN0dWFsIG1vZHVsZSBwcmVmaXggKGluY2x1ZGluZyB0aGUKKyBsZWFkaW5nICIvIiBjaGFyYWN0ZXIpIHRvIGZvcm0gdGhlIGFjdHVhbCBhdHRyaWJ1dGVzIGtleS48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscy5SRVFVRVNUX1BST0NFU1NPUl9LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iU0VSVkxFVF9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK1NFUlZMRVRfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+U0VSVkxFVF9LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggd2Ugc3RvcmUgdGhlIG1hcHBpbmcgZGVmaW5lZAorIGZvciBvdXIgY29udHJvbGxlciBzZXJsZXQsIHdoaWNoIHdpbGwgYmUgZWl0aGVyIGEgcGF0aC1tYXBwZWQgcGF0dGVybgorICg8Y29kZT4vYWN0aW9uLyo8L2NvZGU+KSBvciBhbiBleHRlbnNpb24gbWFwcGVkIHBhdHRlcm4KKyAoPGNvZGU+Ki5kbzwvY29kZT4pLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzLlNFUlZMRVRfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlRSQU5TQUNUSU9OX1RPS0VOX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorVFJBTlNBQ1RJT05fVE9LRU5fS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+VFJBTlNBQ1RJT05fVE9LRU5fS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXNzaW9uIGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91ciB0cmFuc2FjdGlvbiB0b2tlbiBpcworIHN0b3JlZCwgaWYgaXQgaXMgdXNlZC4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscy5UUkFOU0FDVElPTl9UT0tFTl9LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iWEhUTUxfS0VZIj48IS0tIC0tPjwvQT48SDM+CitYSFRNTF9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5YSFRNTF9LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHBhZ2UgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggeGh0bWwgc3RhdHVzIGlzIHN0b3JlZC4gIFRoaXMgbWF5IGJlICJ0cnVlIgorIG9yICJmYWxzZSIuICBXaGVuIHNldCB0byB0cnVlLCB0aGUgaHRtbCB0YWdzIG91dHB1dCB4aHRtbC4KKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzLlhIVE1MX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iR2xvYmFscygpIj48IS0tIC0tPjwvQT48SDM+CitHbG9iYWxzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+R2xvYmFsczwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0dsb2JhbHMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJHbG9iYWxzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjM2YmM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbApAQCAtMCwwICsxLDEzOTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MTAgRURUIDIwMDMgLS0+Cis8VElUTEU+CitBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24sQWN0aW9uIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBBY3Rpb248L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi5odG1sIj5EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCI+RGlzcGF0Y2hBY3Rpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCI+Rm9yd2FyZEFjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sIj5JbmNsdWRlQWN0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9Ob09wQWN0aW9uLmh0bWwiPk5vT3BBY3Rpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1JlbG9hZERlZmluaXRpb25zQWN0aW9uLmh0bWwiPlJlbG9hZERlZmluaXRpb25zQWN0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Td2l0Y2hBY3Rpb24uaHRtbCI+U3dpdGNoQWN0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sIj5UaWxlc0FjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVmlld0RlZmluaXRpb25zQWN0aW9uLmh0bWwiPlZpZXdEZWZpbml0aW9uc0FjdGlvbjwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWN0aW9uPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8L0RMPgorCis8UD4KK0FuIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IGlzIGFuIGFkYXB0ZXIgYmV0d2VlbiB0aGUgY29udGVudHMgb2YgYW4gaW5jb21pbmcKKyBIVFRQIHJlcXVlc3QgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGJ1c2luZXNzIGxvZ2ljIHRoYXQgc2hvdWxkIGJlIGV4ZWN1dGVkIHRvCisgcHJvY2VzcyB0aGlzIHJlcXVlc3QuICBUaGUgY29udHJvbGxlciAoQWN0aW9uU2VydmxldCkgd2lsbCBzZWxlY3QgYW4KKyBhcHByb3ByaWF0ZSBBY3Rpb24gZm9yIGVhY2ggcmVxdWVzdCwgY3JlYXRlIGFuIGluc3RhbmNlIChpZiBuZWNlc3NhcnkpLAorIGFuZCBjYWxsIHRoZSA8Y29kZT5wZXJmb3JtPC9jb2RlPiBtZXRob2QuPC9wPgorCisgPHA+QWN0aW9ucyBtdXN0IGJlIHByb2dyYW1tZWQgaW4gYSB0aHJlYWQtc2FmZSBtYW5uZXIsIGJlY2F1c2UgdGhlCisgY29udHJvbGxlciB3aWxsIHNoYXJlIHRoZSBzYW1lIGluc3RhbmNlIGZvciBtdWx0aXBsZSBzaW11bHRhbmVvdXMKKyByZXF1ZXN0cy4gIFRoaXMgbWVhbnMgeW91IHNob3VsZCBkZXNpZ24gd2l0aCB0aGUgZm9sbG93aW5nIGl0ZW1zIGluIG1pbmQ6CisgPC9wPgorIDx1bD4KKyA8bGk+SW5zdGFuY2UgYW5kIHN0YXRpYyB2YXJpYWJsZXMgTVVTVCBOT1QgYmUgdXNlZCB0byBzdG9yZSBpbmZvcm1hdGlvbgorICAgICByZWxhdGVkIHRvIHRoZSBzdGF0ZSBvZiBhIHBhcnRpY3VsYXIgcmVxdWVzdC4gIFRoZXkgTUFZIGJlIHVzZWQgdG8KKyAgICAgc2hhcmUgZ2xvYmFsIHJlc291cmNlcyBhY3Jvc3MgcmVxdWVzdHMgZm9yIHRoZSBzYW1lIGFjdGlvbi48L2xpPgorIDxsaT5BY2Nlc3MgdG8gb3RoZXIgcmVzb3VyY2VzIChKYXZhQmVhbnMsIHNlc3Npb24gdmFyaWFibGVzLCBldGMuKSBNVVNUCisgICAgIGJlIHN5bmNocm9uaXplZCBpZiB0aG9zZSByZXNvdXJjZXMgcmVxdWlyZSBwcm90ZWN0aW9uLiAgKEdlbmVyYWxseSwKKyAgICAgaG93ZXZlciwgcmVzb3VyY2UgY2xhc3NlcyBzaG91bGQgYmUgZGVzaWduZWQgdG8gcHJvdmlkZSB0aGVpciBvd24KKyAgICAgcHJvdGVjdGlvbiB3aGVyZSBuZWNlc3NhcnkuPC9saT4KKyA8L3VsPgorCisgPHA+V2hlbiBhbiA8Y29kZT5BY3Rpb248L2NvZGU+IGluc3RhbmNlIGlzIGZpcnN0IGNyZWF0ZWQsIHRoZSBjb250cm9sbGVyCisgc2VydmxldCB3aWxsIGNhbGwgPGNvZGU+c2V0U2VydmxldCgpPC9jb2RlPiB3aXRoIGEgbm9uLW51bGwgYXJndW1lbnQgdG8KKyBpZGVudGlmeSB0aGUgY29udHJvbGxlciBzZXJ2bGV0IGluc3RhbmNlIHRvIHdoaWNoIHRoaXMgQWN0aW9uIGlzIGF0dGFjaGVkLgorIFdoZW4gdGhlIGNvbnRyb2xsZXIgc2VydmxldCBpcyB0byBiZSBzaHV0IGRvd24gKG9yIHJlc3RhcnRlZCksIHRoZQorIDxjb2RlPnNldFNlcnZsZXQoKTwvY29kZT4gbWV0aG9kIHdpbGwgYmUgY2FsbGVkIHdpdGggYSA8Y29kZT5udWxsPC9jb2RlPgorIGFyZ3VtZW50LCB3aGljaCBjYW4gYmUgdXNlZCB0byBjbGVhbiB1cCBhbnkgYWxsb2NhdGVkIHJlc291cmNlcyBpbiB1c2UKKyBieSB0aGlzIEFjdGlvbi48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuLCBEYXZpZCBHcmFoYW08L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjQUNUSU9OX1NFUlZMRVRfS0VZIj5BQ1RJT05fU0VSVkxFVF9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIEdsb2JhbHMuQUNUSU9OX1NFUlZMRVRfS0VZIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNBUFBMSUNBVElPTl9LRVkiPkFQUExJQ0FUSU9OX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTU9EVUxFX0tFWSI+PENPREU+R2xvYmFscy5NT0RVTEVfS0VZPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0RBVEFfU09VUkNFX0tFWSI+REFUQV9TT1VSQ0VfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNEQVRBX1NPVVJDRV9LRVkiPjxDT0RFPkdsb2JhbHMuREFUQV9TT1VSQ0VfS0VZPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtqYXZhLnV0aWwuTG9jYWxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzeXN0ZW0gZGVmYXVsdCBMb2NhbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VSUk9SX0tFWSI+RVJST1JfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNFUlJPUl9LRVkiPjxDT0RFPkdsb2JhbHMuRVJST1JfS0VZPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VYQ0VQVElPTl9LRVkiPkVYQ0VQVElPTl9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI0VYQ0VQVElPTl9LRVkiPjxDT0RFPkdsb2JhbHMuRVhDRVBUSU9OX0tFWTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JNX0JFQU5TX0tFWSI+Rk9STV9CRUFOU19LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgY29sbGVjdGlvbiBpbiBNb2R1bGVDb25maWc8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUldBUkRTX0tFWSI+Rk9SV0FSRFNfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IGNvbGxlY3Rpb24gaW4gTW9kdWxlQ29uZmlnLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTE9DQUxFX0tFWSI+TE9DQUxFX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTE9DQUxFX0tFWSI+PENPREU+R2xvYmFscy5MT0NBTEVfS0VZPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdfS0VZIj5NQVBQSU5HX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTUFQUElOR19LRVkiPjxDT0RFPkdsb2JhbHMuTUFQUElOR19LRVk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR1NfS0VZIj5NQVBQSU5HU19LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgY29sbGVjdGlvbiBpbiBNb2R1bGVDb25maWc8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01FU1NBR0VfS0VZIj5NRVNTQUdFX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTUVTU0FHRV9LRVkiPjxDT0RFPkdsb2JhbHMuTUVTU0FHRV9LRVk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUVTU0FHRVNfS0VZIj5NRVNTQUdFU19LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIEdsb2JhbHMuTUVTU0FHRVNfS0VZIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNVUxUSVBBUlRfS0VZIj5NVUxUSVBBUlRfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBHbG9iYWxzLk1VTFRJUEFSVF9LRVkgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1BMVUdfSU5TX0tFWSI+UExVR19JTlNfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNQTFVHX0lOU19LRVkiPjxDT0RFPkdsb2JhbHMuUExVR19JTlNfS0VZPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1JFUVVFU1RfUFJPQ0VTU09SX0tFWSI+UkVRVUVTVF9QUk9DRVNTT1JfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBHbG9iYWxzLlJFUVVFU1RfUFJPQ0VTU09SX0tFWSBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250cm9sbGVyIHNlcnZsZXQgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNTRVJWTEVUX0tFWSI+U0VSVkxFVF9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIEdsb2JhbHMuU0VSVkxFVF9LRVkgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sIj5Ub2tlblByb2Nlc3NvcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3Rva2VuIj50b2tlbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiBpbnN0YW5jZSBvZiBUb2tlblByb2Nlc3NvciB0byB1c2UgZm9yIHRva2VuIGZ1bmN0aW9uYWxpdHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1RSQU5TQUNUSU9OX1RPS0VOX0tFWSI+VFJBTlNBQ1RJT05fVE9LRU5fS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBHbG9iYWxzLlRSQU5TQUNUSU9OX1RPS0VOX0tFWSBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNBY3Rpb24oKSI+QWN0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCksCisgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHRoZSBidXNpbmVzcyBsb2dpYy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgbm9uLUhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUKKyBjb3JyZXNwb25kaW5nIG5vbi1IVFRQIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViCisgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLCB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcKKyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZW5lcmF0ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZW5lcmF0ZVRva2VuPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmF0ZSBhIG5ldyB0cmFuc2FjdGlvbiB0b2tlbiwgdG8gYmUgdXNlZCBmb3IgZW5mb3JjaW5nIGEgc2luZ2xlCisgcmVxdWVzdCBmb3IgYSBwYXJ0aWN1bGFyIHRyYW5zYWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YXguc3FsLkRhdGFTb3VyY2U8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldERhdGFTb3VyY2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldERhdGFTb3VyY2U8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZGVmYXVsdCBkYXRhIHNvdXJjZSBmb3IgdGhlIGN1cnJlbnQgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YXguc3FsLkRhdGFTb3VyY2U8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldERhdGFTb3VyY2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPmdldERhdGFTb3VyY2U8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlIGZvciB0aGUgY3VycmVudCBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuTG9jYWxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldExvY2FsZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSB1c2VyJ3MgY3VycmVudGx5IHNlbGVjdGVkIExvY2FsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKCkiPmdldFJlc291cmNlczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlRoaXMgbWV0aG9kIGNhbiBvbmx5IHJldHVybiB0aGUgcmVzb3VyY2VzIGZvciB0aGUgZGVmYXVsdAorICBtb2R1bGUuICBVc2UgZ2V0UmVzb3VyY2VzKEh0dHBTZXJ2bGV0UmVxdWVzdCkgdG8gZ2V0IHRoZQorICByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IG1vZHVsZS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0UmVzb3VyY2VzPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGRlZmF1bHQgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRSZXNvdXJjZXM8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFNlcnZsZXQoKSI+Z2V0U2VydmxldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgY29udHJvbGxlciBzZXJ2bGV0IGluc3RhbmNlIHRvIHdoaWNoIHdlIGFyZSBhdHRhY2hlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzQ2FuY2VsbGVkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc0NhbmNlbGxlZDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgY3VycmVudCBmb3JtJ3MgY2FuY2VsIGJ1dHRvbiB3YXMKKyBwcmVzc2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc1Rva2VuVmFsaWQ8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBpcyBhIHRyYW5zYWN0aW9uIHRva2VuIHN0b3JlZCBpbgorIHRoZSB1c2VyJ3MgY3VycmVudCBzZXNzaW9uLCBhbmQgdGhlIHZhbHVlIHN1Ym1pdHRlZCBhcyBhIHJlcXVlc3QKKyBwYXJhbWV0ZXIgd2l0aCB0aGlzIGFjdGlvbiBtYXRjaGVzIGl0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGJvb2xlYW4pIj5pc1Rva2VuVmFsaWQ8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICBib29sZWFuJm5ic3A7cmVzZXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgaXMgYSB0cmFuc2FjdGlvbiB0b2tlbiBzdG9yZWQgaW4KKyB0aGUgdXNlcidzIGN1cnJlbnQgc2Vzc2lvbiwgYW5kIHRoZSB2YWx1ZSBzdWJtaXR0ZWQgYXMgYSByZXF1ZXN0CisgcGFyYW1ldGVyIHdpdGggdGhpcyBhY3Rpb24gbWF0Y2hlcyBpdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIDxjb2RlPmV4ZWN1dGUoKTwvY29kZT4gbWV0aG9kIGluc3RlYWQ8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSA8Y29kZT5leGVjdXRlKCk8L2NvZGU+IG1ldGhvZCBpbnN0ZWFkPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcmVzZXRUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVzZXRUb2tlbjwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVzZXQgdGhlIHNhdmVkIHRyYW5zYWN0aW9uIHRva2VuIGluIHRoZSB1c2VyJ3Mgc2Vzc2lvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVFcnJvcnMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycykiPnNhdmVFcnJvcnM8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2F2ZSB0aGUgc3BlY2lmaWVkIGVycm9yIG1lc3NhZ2VzIGtleXMgaW50byB0aGUgYXBwcm9wcmlhdGUgcmVxdWVzdAorIGF0dHJpYnV0ZSBmb3IgdXNlIGJ5IHRoZSAmbHQ7aHRtbDplcnJvcnMmZ3Q7IHRhZywgaWYgYW55IG1lc3NhZ2VzCisgYXJlIHJlcXVpcmVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZU1lc3NhZ2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcykiPnNhdmVNZXNzYWdlczwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT4mbmJzcDttZXNzYWdlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NhdmUgdGhlIHNwZWNpZmllZCBtZXNzYWdlcyBrZXlzIGludG8gdGhlIGFwcHJvcHJpYXRlIHJlcXVlc3QKKyBhdHRyaWJ1dGUgZm9yIHVzZSBieSB0aGUgJmx0O2h0bWw6bWVzc2FnZXMmZ3Q7IHRhZyAoaWYKKyBtZXNzYWdlcz0idHJ1ZSIgaXMgc2V0KSwgaWYgYW55IG1lc3NhZ2VzIGFyZSByZXF1aXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+c2F2ZVRva2VuPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTYXZlIGEgbmV3IHRyYW5zYWN0aW9uIHRva2VuIGluIHRoZSB1c2VyJ3MgY3VycmVudCBzZXNzaW9uLCBjcmVhdGluZworIGEgbmV3IHNlc3Npb24gaWYgbmVjZXNzYXJ5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEudXRpbC5Mb2NhbGUpIj5zZXRMb2NhbGU8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICBqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSB1c2VyJ3MgY3VycmVudGx5IHNlbGVjdGVkIExvY2FsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGNvbnRyb2xsZXIgc2VydmxldCBpbnN0YW5jZSB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQgKGlmCisgPGNvZGU+c2VydmxldDwvY29kZT4gaXMgbm9uLW51bGwpLCBvciByZWxlYXNlIGFueSBhbGxvY2F0ZWQgcmVzb3VyY2VzCisgKGlmIDxjb2RlPnNlcnZsZXQ8L2NvZGU+IGlzIG51bGwpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjdG9IZXgoYnl0ZVtdKSI+dG9IZXg8L0E+PC9CPihieXRlW10mbmJzcDtidWZmZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5UaGlzIG1ldGhvZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjEuPC9JPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQUNUSU9OX1NFUlZMRVRfS0VZIj48IS0tIC0tPjwvQT48SDM+CitBQ1RJT05fU0VSVkxFVF9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5BQ1RJT05fU0VSVkxFVF9LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIEdsb2JhbHMuQUNUSU9OX1NFUlZMRVRfS0VZIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+CisgaW5zdGFuY2Ugd2lsbCBiZSBzdG9yZWQuCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5BQ1RJT05fU0VSVkxFVF9LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQVBQTElDQVRJT05fS0VZIj48IS0tIC0tPjwvQT48SDM+CitBUFBMSUNBVElPTl9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5BUFBMSUNBVElPTl9LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sI01PRFVMRV9LRVkiPjxDT0RFPkdsb2JhbHMuTU9EVUxFX0tFWTwvQ09ERT48L0E+PC9JPgorPFA+Cis8REQ+PHA+VGhlIGJhc2Ugb2YgdGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+TW9kdWxlQ29uZmlnPC9jb2RlPiBkYXRhIHN0cnVjdHVyZSB3aWxsIGJlIHN0b3JlZC4gIFRoaXMKKyB3aWxsIGJlIHN1ZmZpeGVkIHdpdGggdGhlIGFjdHVhbCBtb2R1bGUgcHJlZml4IChpbmNsdWRpbmcgdGhlCisgbGVhZGluZyAiLyIgY2hhcmFjdGVyKSB0byBmb3JtIHRoZSBhY3R1YWwgYXR0cmlidXRlcyBrZXkuPC9wPgorCisgPHA+Rm9yIGVhY2ggcmVxdWVzdCBwcm9jZXNzZWQgYnkgdGhlIGNvbnRyb2xsZXIgc2VydmxldCwgdGhlCisgPGNvZGU+TW9kdWxlQ29uZmlnPC9jb2RlPiBvYmplY3QgZm9yIHRoZSBtb2R1bGUgc2VsZWN0ZWQgYnkKKyB0aGUgcmVxdWVzdCBVUkkgY3VycmVudGx5IGJlaW5nIHByb2Nlc3NlZCB3aWxsIGFsc28gYmUgZXhwb3NlZCB1bmRlcgorIHRoaXMga2V5IGFzIGEgcmVxdWVzdCBhdHRyaWJ1dGUuPC9wPgorPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uQVBQTElDQVRJT05fS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkRBVEFfU09VUkNFX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorREFUQV9TT1VSQ0VfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+REFUQV9TT1VSQ0VfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNEQVRBX1NPVVJDRV9LRVkiPjxDT0RFPkdsb2JhbHMuREFUQV9TT1VSQ0VfS0VZPC9DT0RFPjwvQT48L0k+Cis8UD4KKzxERD5UaGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIgPHN0cm9uZz5kZWZhdWx0PC9zdHJvbmc+CisgY29uZmlndXJlZCBkYXRhIHNvdXJjZSAod2hpY2ggbXVzdCBpbXBsZW1lbnQKKyA8Y29kZT5qYXZheC5zcWwuRGF0YVNvdXJjZTwvY29kZT4pIGlzIHN0b3JlZCwKKyBpZiBvbmUgaXMgY29uZmlndXJlZCBmb3IgdGhpcyBtb2R1bGUuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uREFUQV9TT1VSQ0VfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkVSUk9SX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorRVJST1JfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+RVJST1JfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNFUlJPUl9LRVkiPjxDT0RFPkdsb2JhbHMuRVJST1JfS0VZPC9DT0RFPjwvQT48L0k+Cis8UD4KKzxERD5UaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCB5b3VyIGFjdGlvbiBzaG91bGQgc3RvcmUgYW4KKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QsIGlmIHlvdQorIGFyZSB1c2luZyB0aGUgY29ycmVzcG9uZGluZyBjdXN0b20gdGFnIGxpYnJhcnkgZWxlbWVudHMuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uRVJST1JfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkVYQ0VQVElPTl9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK0VYQ0VQVElPTl9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5FWENFUFRJT05fS0VZPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNFWENFUFRJT05fS0VZIj48Q09ERT5HbG9iYWxzLkVYQ0VQVElPTl9LRVk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIFN0cnV0cyBjdXN0b20gdGFncyBtaWdodCBzdG9yZSBhCisgPGNvZGU+VGhyb3dhYmxlPC9jb2RlPiB0aGF0IGNhdXNlZCB0aGVtIHRvIHJlcG9ydCBhIEpzcEV4Y2VwdGlvbiBhdAorIHJ1bnRpbWUuICBUaGlzIHZhbHVlIGNhbiBiZSB1c2VkIG9uIGFuIGVycm9yIHBhZ2UgdG8gcHJvdmlkZSBtb3JlCisgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgd2hhdCByZWFsbHkgd2VudCB3cm9uZy4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5FWENFUFRJT05fS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkZPUk1fQkVBTlNfS0VZIj48IS0tIC0tPjwvQT48SDM+CitGT1JNX0JFQU5TX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkZPUk1fQkVBTlNfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IGNvbGxlY3Rpb24gaW4gTW9kdWxlQ29uZmlnPC9JPgorPFA+Cis8REQ+VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuczwvY29kZT4gY29sbGVjdGlvbgorIGlzIG5vcm1hbGx5IHN0b3JlZCwgdW5sZXNzIG92ZXJyaWRkZW4gd2hlbiBpbml0aWFsaXppbmcgb3VyCisgQWN0aW9uU2VydmxldC4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5GT1JNX0JFQU5TX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJGT1JXQVJEU19LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK0ZPUldBUkRTX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkZPUldBUkRTX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIGluIE1vZHVsZUNvbmZpZy48L0k+Cis8UD4KKzxERD5UaGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIKKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZHM8L2NvZGU+IGNvbGxlY3Rpb24KKyBpcyBub3JtYWxseSBzdG9yZWQsIHVubGVzcyBvdmVycmlkZGVuIHdoZW4gaW5pdGlhbGl6aW5nIG91cgorIEFjdGlvblNlcnZsZXQuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uRk9SV0FSRFNfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkxPQ0FMRV9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK0xPQ0FMRV9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5MT0NBTEVfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNMT0NBTEVfS0VZIj48Q09ERT5HbG9iYWxzLkxPQ0FMRV9LRVk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPlRoZSBzZXNzaW9uIGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHRoZSB1c2VyJ3Mgc2VsZWN0ZWQKKyA8Y29kZT5qYXZhLnV0aWwuTG9jYWxlPC9jb2RlPiBpcyBzdG9yZWQsIGlmIGFueS4gIElmIG5vIHN1Y2gKKyBhdHRyaWJ1dGUgaXMgZm91bmQsIHRoZSBzeXN0ZW0gZGVmYXVsdCBsb2NhbGUKKyB3aWxsIGJlIHVzZWQgd2hlbiByZXRyaWV2aW5nIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzLiAgSWYgdXNlZCwgdGhpcworIGF0dHJpYnV0ZSBpcyB0eXBpY2FsbHkgc2V0IGR1cmluZyB1c2VyIGxvZ2luIHByb2Nlc3NpbmcuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uTE9DQUxFX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJNQVBQSU5HX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorTUFQUElOR19LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5NQVBQSU5HX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTUFQUElOR19LRVkiPjxDT0RFPkdsb2JhbHMuTUFQUElOR19LRVk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91cgorIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLkFjdGlvbk1hcHBpbmc8L2NvZGU+IGluc3RhbmNlCisgaXMgcGFzc2VkLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLk1BUFBJTkdfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Ik1BUFBJTkdTX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorTUFQUElOR1NfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+TUFQUElOR1NfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IGNvbGxlY3Rpb24gaW4gTW9kdWxlQ29uZmlnPC9JPgorPFA+Cis8REQ+VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzPC9jb2RlPiBjb2xsZWN0aW9uCisgaXMgbm9ybWFsbHkgc3RvcmVkLCB1bmxlc3Mgb3ZlcnJpZGRlbiB3aGVuIGluaXRpYWxpemluZyBvdXIKKyBBY3Rpb25TZXJ2bGV0LgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLk1BUFBJTkdTX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJNRVNTQUdFX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorTUVTU0FHRV9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5NRVNTQUdFX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwjTUVTU0FHRV9LRVkiPjxDT0RFPkdsb2JhbHMuTUVTU0FHRV9LRVk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHlvdXIgYWN0aW9uIHNob3VsZCBzdG9yZSBhbgorIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlczwvY29kZT4gb2JqZWN0LCBpZiB5b3UKKyBhcmUgdXNpbmcgdGhlIGNvcnJlc3BvbmRpbmcgY3VzdG9tIHRhZyBsaWJyYXJ5IGVsZW1lbnRzLgorPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uTUVTU0FHRV9LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTUVTU0FHRVNfS0VZIj48IS0tIC0tPjwvQT48SDM+CitNRVNTQUdFU19LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5NRVNTQUdFU19LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIEdsb2JhbHMuTUVTU0FHRVNfS0VZIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+PHA+VGhlIGJhc2Ugb2YgdGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgbW9kdWxlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IHdpbGwgYmUgc3RvcmVkLiAgVGhpcworIHdpbGwgYmUgc3VmZml4ZWQgd2l0aCB0aGUgYWN0dWFsIG1vZHVsZSBwcmVmaXggKGluY2x1ZGluZyB0aGUKKyBsZWFkaW5nICIvIiBjaGFyYWN0ZXIpIHRvIGZvcm0gdGhlIGFjdHVhbCByZXNvdXJjZXMga2V5LjwvcD4KKworIDxwPkZvciBlYWNoIHJlcXVlc3QgcHJvY2Vzc2VkIGJ5IHRoZSBjb250cm9sbGVyIHNlcnZsZXQsIHRoZQorIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IG9iamVjdCBmb3IgdGhlIG1vZHVsZSBzZWxlY3RlZCBieQorIHRoZSByZXF1ZXN0IFVSSSBjdXJyZW50bHkgYmVpbmcgcHJvY2Vzc2VkIHdpbGwgYWxzbyBiZSBleHBvc2VkIHVuZGVyCisgdGhpcyBrZXkgYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZS48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uTUVTU0FHRVNfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Ik1VTFRJUEFSVF9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK01VTFRJUEFSVF9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5NVUxUSVBBUlRfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBHbG9iYWxzLk1VTFRJUEFSVF9LRVkgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5UaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIgbXVsdGlwYXJ0IGNsYXNzIGlzIHN0b3JlZC4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5NVUxUSVBBUlRfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlBMVUdfSU5TX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorUExVR19JTlNfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+UExVR19JTlNfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCNQTFVHX0lOU19LRVkiPjxDT0RFPkdsb2JhbHMuUExVR19JTlNfS0VZPC9DT0RFPjwvQT48L0k+Cis8UD4KKzxERD48cD5UaGUgYmFzZSBvZiB0aGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBhbiBhcnJheSBvZgorIDxjb2RlPlBsdWdJbjwvY29kZT4gaW5zdGFuY2VzIHdpbGwgYmUgc3RvcmVkLiAgVGhpcworIHdpbGwgYmUgc3VmZml4ZWQgd2l0aCB0aGUgYWN0dWFsIG1vZHVsZSBwcmVmaXggKGluY2x1ZGluZyB0aGUKKyBsZWFkaW5nICIvIiBjaGFyYWN0ZXIpIHRvIGZvcm0gdGhlIGFjdHVhbCBhdHRyaWJ1dGVzIGtleS48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5QTFVHX0lOU19LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iUkVRVUVTVF9QUk9DRVNTT1JfS0VZIj48IS0tIC0tPjwvQT48SDM+CitSRVFVRVNUX1BST0NFU1NPUl9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5SRVFVRVNUX1BST0NFU1NPUl9LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIEdsb2JhbHMuUkVRVUVTVF9QUk9DRVNTT1JfS0VZIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+PHA+VGhlIGJhc2Ugb2YgdGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+UmVxdWVzdFByb2Nlc3NvcjwvY29kZT4gaW5zdGFuY2Ugd2lsbCBiZSBzdG9yZWQuICBUaGlzCisgd2lsbCBiZSBzdWZmaXhlZCB3aXRoIHRoZSBhY3R1YWwgbW9kdWxlIHByZWZpeCAoaW5jbHVkaW5nIHRoZQorIGxlYWRpbmcgIi8iIGNoYXJhY3RlcikgdG8gZm9ybSB0aGUgYWN0dWFsIGF0dHJpYnV0ZXMga2V5LjwvcD4KKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLlJFUVVFU1RfUFJPQ0VTU09SX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJTRVJWTEVUX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorU0VSVkxFVF9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5TRVJWTEVUX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgR2xvYmFscy5TRVJWTEVUX0tFWSBpbnN0ZWFkLjwvST4KKzxQPgorPEREPlRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHdlIHN0b3JlIHRoZSBtYXBwaW5nIGRlZmluZWQKKyBmb3Igb3VyIGNvbnRyb2xsZXIgc2VybGV0LCB3aGljaCB3aWxsIGJlIGVpdGhlciBhIHBhdGgtbWFwcGVkIHBhdHRlcm4KKyAoPGNvZGU+L2FjdGlvbi8qPC9jb2RlPikgb3IgYW4gZXh0ZW5zaW9uIG1hcHBlZCBwYXR0ZXJuCisgKDxjb2RlPiouZG88L2NvZGU+KS4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbi5TRVJWTEVUX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJUUkFOU0FDVElPTl9UT0tFTl9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK1RSQU5TQUNUSU9OX1RPS0VOX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPlRSQU5TQUNUSU9OX1RPS0VOX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgR2xvYmFscy5UUkFOU0FDVElPTl9UT0tFTl9LRVkgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5UaGUgc2Vzc2lvbiBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIgdHJhbnNhY3Rpb24gdG9rZW4gaXMKKyBzdG9yZWQsIGlmIGl0IGlzIHVzZWQuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24uVFJBTlNBQ1RJT05fVE9LRU5fS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRva2VuIj48IS0tIC0tPjwvQT48SDM+Cit0b2tlbjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sIj5Ub2tlblByb2Nlc3NvcjwvQT4gPEI+dG9rZW48L0I+PC9QUkU+Cis8REw+Cis8REQ+QW4gaW5zdGFuY2Ugb2YgVG9rZW5Qcm9jZXNzb3IgdG8gdXNlIGZvciB0b2tlbiBmdW5jdGlvbmFsaXR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmYXVsdExvY2FsZSI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdExvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIDxCPmRlZmF1bHRMb2NhbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHN5c3RlbSBkZWZhdWx0IExvY2FsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNlcnZsZXQiPjwhLS0gLS0+PC9BPjxIMz4KK3NlcnZsZXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiA8Qj5zZXJ2bGV0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250cm9sbGVyIHNlcnZsZXQgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb248L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFNlcnZsZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2VydmxldDwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPmdldFNlcnZsZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGNvbnRyb2xsZXIgc2VydmxldCBpbnN0YW5jZSB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTZXJ2bGV0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTZXJ2bGV0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkIChpZgorIDxjb2RlPnNlcnZsZXQ8L2NvZGU+IGlzIG5vbi1udWxsKSwgb3IgcmVsZWFzZSBhbnkgYWxsb2NhdGVkIHJlc291cmNlcworIChpZiA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBpcyBudWxsKS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldDwvQ09ERT4gLSBUaGUgbmV3IGNvbnRyb2xsZXIgc2VydmxldCwgaWYgYW55PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitleGVjdXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+ZXhlY3V0ZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIG5vbi1IVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlCisgY29ycmVzcG9uZGluZyBub24tSFRUUCByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYgorIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nCisgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLgorIFJldHVybiBhbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj48Q09ERT5BY3Rpb25Gb3J3YXJkPC9DT0RFPjwvQT4gaW5zdGFuY2UgZGVzY3JpYmluZyB3aGVyZSBhbmQgaG93CisgY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgcmVzcG9uc2UgaGFzCisgYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC4KKyA8cD4KKyBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBhdHRlbXB0cyB0byBmb3J3YXJkIHRvIHRoZSBIVFRQCisgdmVyc2lvbiBvZiB0aGlzIG1ldGhvZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlPEREPjxDT0RFPmZvcm08L0NPREU+IC0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIG5vbi1IVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIG5vbi1IVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgYXBwbGljYXRpb24gYnVzaW5lc3MgbG9naWMgdGhyb3dzCisgIGFuIGV4Y2VwdGlvbjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitleGVjdXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+ZXhlY3V0ZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuCisgUmV0dXJuIGFuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPjxDT0RFPkFjdGlvbkZvcndhcmQ8L0NPREU+PC9BPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlIGFuZCBob3cKKyBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSByZXNwb25zZQorIGhhcyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+Zm9ybTwvQ09ERT4gLSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSk8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgYXBwbGljYXRpb24gYnVzaW5lc3MgbG9naWMgdGhyb3dzCisgIGFuIGV4Y2VwdGlvbjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitwZXJmb3JtPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+cGVyZm9ybTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIDxjb2RlPmV4ZWN1dGUoKTwvY29kZT4gbWV0aG9kIGluc3RlYWQ8L0k+Cis8UD4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgbm9uLUhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZworIG5vbi1IVFRQIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlCisgaXQpLiAgUmV0dXJuIGFuIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIGRlc2NyaWJpbmcgd2hlcmUKKyBhbmQgaG93IGNvbnRyb2wgc2hvdWxkIGJlIGZvcndhcmRlZCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlCisgcmVzcG9uc2UgaGFzIGFscmVhZHkgYmVlbiBjb21wbGV0ZWQuCisgPHA+CisgVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gYXR0ZW1wdHMgdG8gZm9yd2FyZCB0byB0aGUgSFRUUCB2ZXJzaW9uIG9mCisgdGhpcyBtZXRob2QuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZTxERD48Q09ERT5mb3JtPC9DT0RFPiAtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KTxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBub24tSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBub24tSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VycworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorcGVyZm9ybTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPnBlcmZvcm08L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSA8Y29kZT5leGVjdXRlKCk8L2NvZGU+IG1ldGhvZCBpbnN0ZWFkPC9JPgorPFA+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorIFJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlIGFuZCBob3cKKyBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSByZXNwb25zZSBoYXMKKyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+Zm9ybTwvQ09ERT4gLSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSk8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzCis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZW5lcmF0ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitnZW5lcmF0ZVRva2VuPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5nZW5lcmF0ZVRva2VuPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5HZW5lcmF0ZSBhIG5ldyB0cmFuc2FjdGlvbiB0b2tlbiwgdG8gYmUgdXNlZCBmb3IgZW5mb3JjaW5nIGEgc2luZ2xlCisgcmVxdWVzdCBmb3IgYSBwYXJ0aWN1bGFyIHRyYW5zYWN0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXREYXRhU291cmNlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXREYXRhU291cmNlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YXguc3FsLkRhdGFTb3VyY2UgPEI+Z2V0RGF0YVNvdXJjZTwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBkZWZhdWx0IGRhdGEgc291cmNlIGZvciB0aGUgY3VycmVudCBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXREYXRhU291cmNlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXREYXRhU291cmNlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YXguc3FsLkRhdGFTb3VyY2UgPEI+Z2V0RGF0YVNvdXJjZTwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlIGZvciB0aGUgY3VycmVudCBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIGtleSBzcGVjaWZpZWQgaW4gdGhlCisgIDxjb2RlPiZsdDttZXNzYWdlLXJlc291cmNlcyZndDs8L2NvZGU+IGVsZW1lbnQgZm9yIHRoZQorICByZXF1ZXN0ZWQgYnVuZGxlPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TG9jYWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkxvY2FsZSA8Qj5nZXRMb2NhbGU8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgdXNlcidzIGN1cnJlbnRseSBzZWxlY3RlZCBMb2NhbGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJlc291cmNlcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSZXNvdXJjZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+Z2V0UmVzb3VyY2VzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBtZXRob2QgY2FuIG9ubHkgcmV0dXJuIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0CisgIG1vZHVsZS4gIFVzZSBnZXRSZXNvdXJjZXMoSHR0cFNlcnZsZXRSZXF1ZXN0KSB0byBnZXQgdGhlCisgIHJlc291cmNlcyBmb3IgdGhlIGN1cnJlbnQgbW9kdWxlLjwvST4KKzxQPgorPEREPlJldHVybiB0aGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0IG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSZXNvdXJjZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+Z2V0UmVzb3VyY2VzPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGRlZmF1bHQgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJlc291cmNlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVzb3VyY2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPmdldFJlc291cmNlczwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHNwZWNpZmllZCBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhlIGN1cnJlbnQgbW9kdWxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBrZXkgc3BlY2lmaWVkIGluIHRoZQorICA8Y29kZT4mbHQ7bWVzc2FnZS1yZXNvdXJjZXMmZ3Q7PC9jb2RlPiBlbGVtZW50IGZvciB0aGUKKyAgcmVxdWVzdGVkIGJ1bmRsZTxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc0NhbmNlbGxlZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgoraXNDYW5jZWxsZWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmlzQ2FuY2VsbGVkPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD48cD5SZXR1cm5zIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBjdXJyZW50IGZvcm0ncyBjYW5jZWwgYnV0dG9uIHdhcworIHByZXNzZWQuICBUaGlzIG1ldGhvZCB3aWxsIGNoZWNrIGlmIHRoZSA8Y29kZT5HbG9iYWxzLkNBTkNFTF9LRVk8L2NvZGU+CisgcmVxdWVzdCBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0LCB3aGljaCBub3JtYWxseSBvY2N1cnMgaWYgdGhlIGNhbmNlbAorIGJ1dHRvbiBnZW5lcmF0ZWQgYnkgPHN0cm9uZz5DYW5jZWxUYWc8L3N0cm9uZz4gd2FzIHByZXNzZWQgYnkgdGhlIHVzZXIKKyBpbiB0aGUgY3VycmVudCByZXF1ZXN0LiAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4sIHZhbGlkYXRpb24gcGVyZm9ybWVkCisgYnkgYW4gPHN0cm9uZz5BY3Rpb25Gb3JtPC9zdHJvbmc+J3MgPGNvZGU+dmFsaWRhdGUoKTwvY29kZT4gbWV0aG9kCisgd2lsbCBoYXZlIGJlZW4gc2tpcHBlZCBieSB0aGUgY29udHJvbGxlciBzZXJ2bGV0LjwvcD4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPjxDT0RFPkNhbmNlbFRhZzwvQ09ERT48L0E+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzVG9rZW5WYWxpZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+aXNUb2tlblZhbGlkPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgaXMgYSB0cmFuc2FjdGlvbiB0b2tlbiBzdG9yZWQgaW4KKyB0aGUgdXNlcidzIGN1cnJlbnQgc2Vzc2lvbiwgYW5kIHRoZSB2YWx1ZSBzdWJtaXR0ZWQgYXMgYSByZXF1ZXN0CisgcGFyYW1ldGVyIHdpdGggdGhpcyBhY3Rpb24gbWF0Y2hlcyBpdC4gIFJldHVybnMgPGNvZGU+ZmFsc2U8L2NvZGU+CisgdW5kZXIgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2lyY3Vtc3RhbmNlczoKKyA8dWw+CisgPGxpPk5vIHNlc3Npb24gYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVxdWVzdDwvbGk+CisgPGxpPk5vIHRyYW5zYWN0aW9uIHRva2VuIHNhdmVkIGluIHRoZSBzZXNzaW9uPC9saT4KKyA8bGk+Tm8gdHJhbnNhY3Rpb24gdG9rZW4gaW5jbHVkZWQgYXMgYSByZXF1ZXN0IHBhcmFtZXRlcjwvbGk+CisgPGxpPlRoZSBpbmNsdWRlZCB0cmFuc2FjdGlvbiB0b2tlbiB2YWx1ZSBkb2VzIG5vdCBtYXRjaCB0aGUKKyAgICAgdHJhbnNhY3Rpb24gdG9rZW4gaW4gdGhlIHVzZXIncyBzZXNzaW9uPC9saT4KKyA8L3VsPgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzVG9rZW5WYWxpZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgoraXNUb2tlblZhbGlkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5pc1Rva2VuVmFsaWQ8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtyZXNldCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgaXMgYSB0cmFuc2FjdGlvbiB0b2tlbiBzdG9yZWQgaW4KKyB0aGUgdXNlcidzIGN1cnJlbnQgc2Vzc2lvbiwgYW5kIHRoZSB2YWx1ZSBzdWJtaXR0ZWQgYXMgYSByZXF1ZXN0CisgcGFyYW1ldGVyIHdpdGggdGhpcyBhY3Rpb24gbWF0Y2hlcyBpdC4gIFJldHVybnMgPGNvZGU+ZmFsc2U8L2NvZGU+CisgPHVsPgorIDxsaT5ObyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3Q8L2xpPgorIDxsaT5ObyB0cmFuc2FjdGlvbiB0b2tlbiBzYXZlZCBpbiB0aGUgc2Vzc2lvbjwvbGk+CisgPGxpPk5vIHRyYW5zYWN0aW9uIHRva2VuIGluY2x1ZGVkIGFzIGEgcmVxdWVzdCBwYXJhbWV0ZXI8L2xpPgorIDxsaT5UaGUgaW5jbHVkZWQgdHJhbnNhY3Rpb24gdG9rZW4gdmFsdWUgZG9lcyBub3QgbWF0Y2ggdGhlCisgICAgIHRyYW5zYWN0aW9uIHRva2VuIGluIHRoZSB1c2VyJ3Mgc2Vzc2lvbjwvbGk+CisgPC91bD4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc2V0PC9DT0RFPiAtIFNob3VsZCB3ZSByZXNldCB0aGUgdG9rZW4gYWZ0ZXIgY2hlY2tpbmcgaXQ/PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXNldFRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CityZXNldFRva2VuPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5yZXNldFRva2VuPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5SZXNldCB0aGUgc2F2ZWQgdHJhbnNhY3Rpb24gdG9rZW4gaW4gdGhlIHVzZXIncyBzZXNzaW9uLiAgVGhpcworIGluZGljYXRlcyB0aGF0IHRyYW5zYWN0aW9uYWwgdG9rZW4gY2hlY2tpbmcgd2lsbCBub3QgYmUgbmVlZGVkCisgb24gdGhlIG5leHQgcmVxdWVzdCB0aGF0IGlzIHN1Ym1pdHRlZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzYXZlRXJyb3JzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMpIj48IS0tIC0tPjwvQT48SDM+CitzYXZlRXJyb3JzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5zYXZlRXJyb3JzPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzKTwvUFJFPgorPERMPgorPEREPlNhdmUgdGhlIHNwZWNpZmllZCBlcnJvciBtZXNzYWdlcyBrZXlzIGludG8gdGhlIGFwcHJvcHJpYXRlIHJlcXVlc3QKKyBhdHRyaWJ1dGUgZm9yIHVzZSBieSB0aGUgJmx0O2h0bWw6ZXJyb3JzJmd0OyB0YWcsIGlmIGFueSBtZXNzYWdlcworIGFyZSByZXF1aXJlZC4gIE90aGVyd2lzZSwgZW5zdXJlIHRoYXQgdGhlIHJlcXVlc3QgYXR0cmlidXRlIGlzIG5vdAorIGNyZWF0ZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5lcnJvcnM8L0NPREU+IC0gRXJyb3IgbWVzc2FnZXMgb2JqZWN0PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzYXZlTWVzc2FnZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzKSI+PCEtLSAtLT48L0E+PEgzPgorc2F2ZU1lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5zYXZlTWVzc2FnZXM8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT4mbmJzcDttZXNzYWdlcyk8L1BSRT4KKzxETD4KKzxERD5TYXZlIHRoZSBzcGVjaWZpZWQgbWVzc2FnZXMga2V5cyBpbnRvIHRoZSBhcHByb3ByaWF0ZSByZXF1ZXN0CisgYXR0cmlidXRlIGZvciB1c2UgYnkgdGhlICZsdDtodG1sOm1lc3NhZ2VzJmd0OyB0YWcgKGlmCisgbWVzc2FnZXM9InRydWUiIGlzIHNldCksIGlmIGFueSBtZXNzYWdlcyBhcmUgcmVxdWlyZWQuICBPdGhlcndpc2UsCisgZW5zdXJlIHRoYXQgdGhlIHJlcXVlc3QgYXR0cmlidXRlIGlzIG5vdCBjcmVhdGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+bWVzc2FnZXM8L0NPREU+IC0gTWVzc2FnZXMgb2JqZWN0PERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNhdmVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorc2F2ZVRva2VuPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5zYXZlVG9rZW48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPlNhdmUgYSBuZXcgdHJhbnNhY3Rpb24gdG9rZW4gaW4gdGhlIHVzZXIncyBjdXJyZW50IHNlc3Npb24sIGNyZWF0aW5nCisgYSBuZXcgc2Vzc2lvbiBpZiBuZWNlc3NhcnkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEudXRpbC5Mb2NhbGUpIj48IS0tIC0tPjwvQT48SDM+CitzZXRMb2NhbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPnNldExvY2FsZTwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHVzZXIncyBjdXJyZW50bHkgc2VsZWN0ZWQgTG9jYWxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPmxvY2FsZTwvQ09ERT4gLSBUaGUgdXNlcidzIHNlbGVjdGVkIExvY2FsZSB0byBiZSBzZXQsIG9yIG51bGwKKyAgdG8gc2VsZWN0IHRoZSBzZXJ2ZXIncyBkZWZhdWx0IExvY2FsZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9IZXgoYnl0ZVtdKSI+PCEtLSAtLT48L0E+PEgzPgordG9IZXg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvSGV4PC9CPihieXRlW10mbmJzcDtidWZmZXIpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBtZXRob2Qgd2lsbCBiZSByZW1vdmVkIGluIGEgcmVsZWFzZSBhZnRlciBTdHJ1dHMgMS4xLjwvST4KKzxQPgorPEREPkNvbnZlcnQgYSBieXRlIGFycmF5IHRvIGEgU3RyaW5nIG9mIGhleGFkZWNpbWFsIGRpZ2l0cyBhbmQgcmV0dXJuIGl0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5idWZmZXI8L0NPREU+IC0gVGhlIGJ5dGUgYXJyYXkgdG8gYmUgY29udmVydGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDUwYWQ3NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbApAQCAtMCwwICsxLDM2NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDoxMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0FjdGlvbkVycm9yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3IsQWN0aW9uRXJyb3IgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkFjdGlvbkVycm9yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FjdGlvbkVycm9yLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25FcnJvci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzIEFjdGlvbkVycm9yPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2U8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9yPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWN0aW9uRXJyb3I8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+QWN0aW9uTWVzc2FnZTwvQT48RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorPHA+QW4gZW5jYXBzdWxhdGlvbiBvZiBhbiBpbmRpdmlkdWFsIGVycm9yIG1lc3NhZ2UgcmV0dXJuZWQgYnkgdGhlCisgPGNvZGU+dmFsaWRhdGUoKTwvY29kZT4gbWV0aG9kIG9mIGFuIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+LCBjb25zaXN0aW5nCisgb2YgYSBtZXNzYWdlIGtleSAodG8gYmUgdXNlZCB0byBsb29rIHVwIG1lc3NhZ2UgdGV4dCBpbiBhbiBhcHByb3ByaWF0ZQorIG1lc3NhZ2UgcmVzb3VyY2VzIGRhdGFiYXNlKSBwbHVzIHVwIHRvIGZvdXIgcGxhY2Vob2xkZXIgb2JqZWN0cyB0aGF0IGNhbgorIGJlIHVzZWQgZm9yIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgaW4gdGhlIG1lc3NhZ2UgdGV4dC48L3A+CisKKyA8cD5UaGUgcGxhY2Vob2xkZXIgb2JqZWN0cyBhcmUgcmVmZXJlbmNlZCBpbiB0aGUgbWVzc2FnZSB0ZXh0IHVzaW5nIHRoZSBzYW1lCisgc3ludGF4IHVzZWQgYnkgdGhlIEpESyA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPiBjbGFzcy4gVGh1cywgdGhlIGZpcnN0CisgcGxhY2Vob2xkZXIgaXMgJ3swfScsIHRoZSBzZWNvbmQgaXMgJ3sxfScsIGV0Yy48L3A+CisKKyA8cD5TaW5jZSBTdHJ1dHMgMS4xIDxjb2RlPkFjdGlvbkVycm9yPC9jb2RlPiBleHRlbmRzIDxjb2RlPkFjdGlvbk1lc3NhZ2U8L2NvZGU+LgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3IiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+QWN0aW9uTWVzc2FnZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sI2tleSI+a2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCN2YWx1ZXMiPnZhbHVlczwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCNBY3Rpb25FcnJvcihqYXZhLmxhbmcuU3RyaW5nKSI+QWN0aW9uRXJyb3I8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIG5vIHJlcGxhY2VtZW50IHZhbHVlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sI0FjdGlvbkVycm9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj5BY3Rpb25FcnJvcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwjQWN0aW9uRXJyb3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+QWN0aW9uRXJyb3I8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdFtdJm5ic3A7dmFsdWVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwjQWN0aW9uRXJyb3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPkFjdGlvbkVycm9yPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTAsCisgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUxKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwjQWN0aW9uRXJyb3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPkFjdGlvbkVycm9yPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTAsCisgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUxLAorICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhbiBhY3Rpb24gZXJyb3Igd2l0aCB0aGUgc3BlY2lmaWVkIHJlcGxhY2VtZW50IHZhbHVlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sI0FjdGlvbkVycm9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5BY3Rpb25FcnJvcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwLAorICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMSwKKyAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTIsCisgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+QWN0aW9uTWVzc2FnZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sI2dldEtleSgpIj5nZXRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sI2dldFZhbHVlcygpIj5nZXRWYWx1ZXM8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvbkVycm9yKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25FcnJvcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFjdGlvbkVycm9yPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhbiBhY3Rpb24gZXJyb3Igd2l0aCBubyByZXBsYWNlbWVudCB2YWx1ZXMuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIE1lc3NhZ2Uga2V5IGZvciB0aGlzIGVycm9yIG1lc3NhZ2U8L0RMPgorPEhSPgorCis8QSBOQU1FPSJBY3Rpb25FcnJvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uRXJyb3I8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25FcnJvcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhbiBhY3Rpb24gZXJyb3Igd2l0aCB0aGUgc3BlY2lmaWVkIHJlcGxhY2VtZW50IHZhbHVlcy4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSBrZXkgZm9yIHRoaXMgZXJyb3IgbWVzc2FnZTxERD48Q09ERT52YWx1ZTA8L0NPREU+IC0gRmlyc3QgcmVwbGFjZW1lbnQgdmFsdWU8L0RMPgorPEhSPgorCis8QSBOQU1FPSJBY3Rpb25FcnJvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uRXJyb3I8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25FcnJvcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwLAorICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTEpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleSBmb3IgdGhpcyBlcnJvciBtZXNzYWdlPEREPjxDT0RFPnZhbHVlMDwvQ09ERT4gLSBGaXJzdCByZXBsYWNlbWVudCB2YWx1ZTxERD48Q09ERT52YWx1ZTE8L0NPREU+IC0gU2Vjb25kIHJlcGxhY2VtZW50IHZhbHVlPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQWN0aW9uRXJyb3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbkVycm9yPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uRXJyb3I8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMCwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUxLAorICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTIpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleSBmb3IgdGhpcyBlcnJvciBtZXNzYWdlPEREPjxDT0RFPnZhbHVlMDwvQ09ERT4gLSBGaXJzdCByZXBsYWNlbWVudCB2YWx1ZTxERD48Q09ERT52YWx1ZTE8L0NPREU+IC0gU2Vjb25kIHJlcGxhY2VtZW50IHZhbHVlPEREPjxDT0RFPnZhbHVlMjwvQ09ERT4gLSBUaGlyZCByZXBsYWNlbWVudCB2YWx1ZTwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkFjdGlvbkVycm9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25FcnJvcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFjdGlvbkVycm9yPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTAsCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMSwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUyLAorICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTMpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleSBmb3IgdGhpcyBlcnJvciBtZXNzYWdlPEREPjxDT0RFPnZhbHVlMDwvQ09ERT4gLSBGaXJzdCByZXBsYWNlbWVudCB2YWx1ZTxERD48Q09ERT52YWx1ZTE8L0NPREU+IC0gU2Vjb25kIHJlcGxhY2VtZW50IHZhbHVlPEREPjxDT0RFPnZhbHVlMjwvQ09ERT4gLSBUaGlyZCByZXBsYWNlbWVudCB2YWx1ZTxERD48Q09ERT52YWx1ZTM8L0NPREU+IC0gRm91cnRoIHJlcGxhY2VtZW50IHZhbHVlPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQWN0aW9uRXJyb3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uRXJyb3I8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25FcnJvcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0W10mbmJzcDt2YWx1ZXMpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleSBmb3IgdGhpcyBtZXNzYWdlPEREPjxDT0RFPnZhbHVlczwvQ09ERT4gLSBBcnJheSBvZiByZXBsYWNlbWVudCB2YWx1ZXM8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQWN0aW9uRXJyb3IuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkVycm9yLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5MmUwNzQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sCkBAIC0wLDAgKzEsMzcxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjEwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorQWN0aW9uRXJyb3JzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLEFjdGlvbkVycm9ycyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQWN0aW9uRXJyb3JzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FjdGlvbkVycm9ycy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXhjZXB0aW9uLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25FcnJvcnMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwOzxBIEhSRUY9IiNuZXN0ZWRfY2xhc3Nlc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZXMiPk5FU1RFRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBBY3Rpb25FcnJvcnM8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnM8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5BY3Rpb25FcnJvcnM8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPkFjdGlvbk1lc3NhZ2VzPC9BPjxEVD5pbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ETD4KKworPFA+Cis8cD5BIGNsYXNzIHRoYXQgZW5jYXBzdWxhdGVzIHRoZSBlcnJvciBtZXNzYWdlcyBiZWluZyByZXBvcnRlZCBieQorIHRoZSA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2Qgb2YgYW4gPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4uCisgVmFsaWRhdGlvbiBlcnJvcnMgYXJlIGVpdGhlciBnbG9iYWwgdG8gdGhlIGVudGlyZSA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPgorIGJlYW4gdGhleSBhcmUgYXNzb2NpYXRlZCB3aXRoLCBvciB0aGV5IGFyZSBzcGVjaWZpYyB0byBhIHBhcnRpY3VsYXIKKyBiZWFuIHByb3BlcnR5IChhbmQsIHRoZXJlZm9yZSwgYSBwYXJ0aWN1bGFyIGlucHV0IGZpZWxkIG9uIHRoZSBjb3JyZXNwb25kaW5nCisgZm9ybSkuPC9wPgorCisgPHA+RWFjaCBpbmRpdmlkdWFsIGVycm9yIGlzIGRlc2NyaWJlZCBieSBhbiA8Y29kZT5BY3Rpb25FcnJvcjwvY29kZT4KKyBvYmplY3QsIHdoaWNoIGNvbnRhaW5zIGEgbWVzc2FnZSBrZXkgKHRvIGJlIGxvb2tlZCB1cCBpbiBhbiBhcHByb3ByaWF0ZQorIG1lc3NhZ2UgcmVzb3VyY2VzIGRhdGFiYXNlKSwgYW5kIHVwIHRvIGZvdXIgcGxhY2Vob2xkZXIgYXJndW1lbnRzIHVzZWQgZm9yCisgcGFyYW1ldHJpYyBzdWJzdGl0dXRpb24gaW4gdGhlIHJlc3VsdGluZyBtZXNzYWdlLjwvcD4KKworIDxwPjxzdHJvbmc+SU1QTEVNRU5UQVRJT04gTk9URTwvc3Ryb25nPiAtIEl0IGlzIGFzc3VtZWQgdGhhdCB0aGVzZSBvYmplY3RzCisgYXJlIGNyZWF0ZWQgYW5kIG1hbmlwdWxhdGVkIG9ubHkgd2l0aGluIHRoZSBjb250ZXh0IG9mIGEgc2luZ2xlIHRocmVhZC4KKyBUaGVyZWZvcmUsIG5vIHN5bmNocm9uaXphdGlvbiBpcyByZXF1aXJlZCBmb3IgYWNjZXNzIHRvIGludGVybmFsCisgY29sbGVjdGlvbnMuPC9wPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+RGF2aWQgR2VhcnksIENyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0ibmVzdGVkX2NsYXNzX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TmVzdGVkIENsYXNzIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im5lc3RlZF9jbGFzc2VzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk5lc3RlZCBjbGFzc2VzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtLmh0bWwiPkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwjR0xPQkFMX0VSUk9SIj5HTE9CQUxfRVJST1I8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlICJwcm9wZXJ0eSBuYW1lIiBtYXJrZXIgdG8gdXNlIGZvciBnbG9iYWwgZXJyb3JzLCBhcyBvcHBvc2VkIHRvCisgdGhvc2UgcmVsYXRlZCB0byBhIHNwZWNpZmljIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNHTE9CQUxfTUVTU0FHRSI+R0xPQkFMX01FU1NBR0U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNpQ291bnQiPmlDb3VudDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwjQWN0aW9uRXJyb3JzKCkiPkFjdGlvbkVycm9yczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbiBlbXB0eSA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCNBY3Rpb25FcnJvcnMob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycykiPkFjdGlvbkVycm9yczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO21lc3NhZ2VzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IGluaXRpYWxpemVkIHdpdGggdGhlIGdpdmVuIAorIG1lc3NhZ2VzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sI2FkZChqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3IpIj5hZGQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHksCisgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPiZuYnNwO2Vycm9yKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGFuIGVycm9yIG1lc3NhZ2UgdG8gdGhlIHNldCBvZiBlcnJvcnMgZm9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwjYWRkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcykiPmFkZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI2FkZChqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZSkiPmFkZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI2NsZWFyKCkiPmNsZWFyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwjZW1wdHkoKSI+ZW1wdHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNnZXQoKSI+Z2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwjZ2V0KGphdmEubGFuZy5TdHJpbmcpIj5nZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNpc0VtcHR5KCkiPmlzRW1wdHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNwcm9wZXJ0aWVzKCkiPnByb3BlcnRpZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNzaXplKCkiPnNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNzaXplKGphdmEubGFuZy5TdHJpbmcpIj5zaXplPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkdMT0JBTF9FUlJPUiI+PCEtLSAtLT48L0E+PEgzPgorR0xPQkFMX0VSUk9SPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+R0xPQkFMX0VSUk9SPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSAicHJvcGVydHkgbmFtZSIgbWFya2VyIHRvIHVzZSBmb3IgZ2xvYmFsIGVycm9ycywgYXMgb3Bwb3NlZCB0bworIHRob3NlIHJlbGF0ZWQgdG8gYSBzcGVjaWZpYyBwcm9wZXJ0eS4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycy5HTE9CQUxfRVJST1IiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvbkVycm9ycygpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25FcnJvcnM8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25FcnJvcnM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgYW4gZW1wdHkgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QuCis8UD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkFjdGlvbkVycm9ycyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzKSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uRXJyb3JzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uRXJyb3JzPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDttZXNzYWdlcyk8L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgZ2l2ZW4gCisgbWVzc2FnZXMuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWVzc2FnZXM8L0NPREU+IC0gVGhlIG1lc3NhZ2VzIHRvIGJlIGluaXRpYWxseSBhZGRlZCB0byB0aGlzIG9iamVjdC4KKyBUaGlzIHBhcmFtZXRlciBjYW4gYmUgPGNvZGU+bnVsbDwvY29kZT4uPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJhZGQoamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9yKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+Jm5ic3A7ZXJyb3IpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGFuIGVycm9yIG1lc3NhZ2UgdG8gdGhlIHNldCBvZiBlcnJvcnMgZm9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIFByb3BlcnR5IG5hbWUgKG9yIEFjdGlvbkVycm9ycy5HTE9CQUxfRVJST1IpPEREPjxDT0RFPmVycm9yPC9DT0RFPiAtIFRoZSBlcnJvciBtZXNzYWdlIHRvIGJlIGFkZGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb25FcnJvcnMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkV4Y2VwdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRXJyb3JzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDs8QSBIUkVGPSIjbmVzdGVkX2NsYXNzZXNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzIj5ORVNURUQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXhjZXB0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkV4Y2VwdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0ODRkMTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkV4Y2VwdGlvbi5odG1sCkBAIC0wLDAgKzEsMzE2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjEwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorQWN0aW9uRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXhjZXB0aW9uLEFjdGlvbkV4Y2VwdGlvbiBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQWN0aW9uRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FjdGlvbkV4Y2VwdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9GT05UPgorPEJSPgorQ2xhc3MgQWN0aW9uRXhjZXB0aW9uPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FeGNlcHRpb248L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZzwvST4KKzxQPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5BY3Rpb25FeGNlcHRpb248L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+PC9ETD4KKworPFA+CitBbiA8c3Ryb25nPkFjdGlvbkV4Y2VwdGlvbjwvc3Ryb25nPiByZXByZXNlbnRzIGEgcG90ZW50aWFsIGV4Y2VwdGlvbgorIHRoYXQgbWF5IG9jY3VyIGR1cmluZyBkZWxlZ2F0aW9uIHRvIGFuIEFjdGlvbiBjbGFzcy4KKyBJbnN0YW5jZXMgb2YgdGhpcyBjbGFzcyBtYXkgYmUgY29uZmlndXJlZCBpbiBhc3NvY2lhdGlvbgorIHdpdGggYW4gPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gaW5zdGFuY2UgZm9yIG5hbWVkIGxvb2t1cCBvZiBwb3RlbnRpYWxseQorIG11bHRpcGxlIGRlc3RpbmF0aW9ucyBmb3IgYSBwYXJ0aWN1bGFyIG1hcHBpbmcgaW5zdGFuY2UuCisgPHA+CisgQW4gPGNvZGU+QWN0aW9uRXhjZXB0aW9uPC9jb2RlPiBoYXMgdGhlIGZvbGxvd2luZyBtaW5pbWFsIHNldCBvZiBwcm9wZXJ0aWVzLgorIEFkZGl0aW9uYWwgcHJvcGVydGllcyBjYW4gYmUgcHJvdmlkZWQgYXMgbmVlZGVkIGJ5IHN1YmNsYXNzc2VzLgorIDx1bD4KKyA8bGk+PHN0cm9uZz50eXBlPC9zdHJvbmc+IC0gVGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIG9mIHRoZQorIGV4Y2VwdGlvbiB0byBiZSBhc3NvY2lhdGVkIHRvIGEgcGFydGljdWxhciA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPi4KKyA8bGk+PHN0cm9uZz5rZXk8L3N0cm9uZz4gLSAoT3B0aW9uYWwpIE1lc3NhZ2Uga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGUgcGFydGljdWxhcgorICAgICBleGNlcHRpb24uCisgPGxpPjxzdHJvbmc+cGF0aDwvc3Ryb25nPiAtIChPcHRpb25hbCkgQ29udGV4dCByZWxlYXRpdmUgVVJJIHRoYXQgc2hvdWxkCisgICAgIGJlIHJlZGlyZWN0ZWQgdG8gYXMgYSByZXN1bHQgb2YgdGhlIGV4Y2VwdGlvbiBvY2N1cmluZy4gIFdpbGwgb3ZlcmlkZSB0aGUKKyAgICAgaW5wdXQgZm9ybSBvZiB0aGUgYXNzb2NpYXRlZCBBY3Rpb25NYXBwaW5nIGlmIG9uZSBpcyBwcm92aWRlZC4KKyA8bGk+PHN0cm9uZz5zY29wZTwvc3Ryb25nPiAtIChPcHRpb25hbCkgVGhlIHNjb3BlIHRvIHN0b3JlIHRoZSBleGNlcHRpb24gaW4KKyAgICAgaWYgYSBwcm9ibGVtIHNob3VsZCBvY2N1ciAtIGRlZmF1bHRzIHRvICdyZXF1ZXN0Jy4gIFZhbGlkIHZhbHVlcyBhcmUKKyAgICAgJ3JlcXVlc3QnIGFuZCAnc2Vzc2lvbicuCisgPGxpPjxzdHJvbmc+aGllcmFyY2hpY2FsPC9zdHJvbmc+IC0gKE9wdGlvbmFsKSBEZWZpbmVzIHdoZXRoZXIgb3Igbm90IHRoZQorICAgICBFeGNlcHRpb24gaGllcmFyY2h5IHNob3VsZCBiZSB1c2VkIHdoZW4gZGV0ZXJtaW5pbmcgaWYgYW4gb2NjdXJpbmcKKyAgICAgZXhjZXB0aW9uIGNhbiBiZSBhc3NpZ25lZCB0byBhIG1hcHBpbmcgaW5zdGFuY2UuICBEZWZhdWx0IGlzIHRydWUuCisgPGxpPjxzdHJvbmc+aGFuZGxlcjwvc3Ryb25nPiAtIChPcHRpb25hbCkgVGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lCisgICAgIG9mIHRoZSBoYW5kbGVyLCB3aGljaCBpcyByZXNwb25zaWJsZSB0byBoYW5kbGUgdGhpcyBleGNlcHRpb24uCisgICAgIERlZmF1bHQgaXMgJ29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5FeGNlcHRpb25IYW5kbGVyJy4KKyA8L3VsPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5sZG9ubGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FeGNlcHRpb24iPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjYnVuZGxlIj5idW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjY29uZmlndXJlZCI+Y29uZmlndXJlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNoYW5kbGVyIj5oYW5kbGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI2tleSI+a2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI3BhdGgiPnBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI3R5cGUiPnR5cGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkV4Y2VwdGlvbi5odG1sI0FjdGlvbkV4Y2VwdGlvbigpIj5BY3Rpb25FeGNlcHRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FeGNlcHRpb24uaHRtbCNnZXRFcnJvcigpIj5nZXRFcnJvcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybnMgYW4gaW5zdGFuY2Ugb2YgYW4gPGI+QWN0aW9uRXJyb3I8L2I+IGNvbmZpZ3VyZWQgZm9yCit0aGlzIGV4Y2VwdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjZnJlZXplKCkiPmZyZWV6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNnZXRCdW5kbGUoKSI+Z2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI2dldEhhbmRsZXIoKSI+Z2V0SGFuZGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNnZXRLZXkoKSI+Z2V0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI2dldFBhdGgoKSI+Z2V0UGF0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNnZXRUeXBlKCkiPmdldFR5cGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjc2V0SGFuZGxlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGFuZGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNzZXRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNzZXRQYXRoKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXRoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUeXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvbkV4Y2VwdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25FeGNlcHRpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25FeGNlcHRpb248L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRFcnJvcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFcnJvcjwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT4gPEI+Z2V0RXJyb3I8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJucyBhbiBpbnN0YW5jZSBvZiBhbiA8Yj5BY3Rpb25FcnJvcjwvYj4gY29uZmlndXJlZCBmb3IKK3RoaXMgZXhjZXB0aW9uLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkFjdGlvbkVycm9yPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb25FeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25FeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhMmE2OTYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbApAQCAtMCwwICsxLDU5NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDoxMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0FjdGlvbkZvcm0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLEFjdGlvbkZvcm0gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkFjdGlvbkZvcm0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQWN0aW9uRm9ybS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXhjZXB0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25Gb3JtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBBY3Rpb25Gb3JtPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm08L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj5EeW5hQWN0aW9uRm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwiPlZhbGlkYXRvckZvcm08L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGFic3RyYWN0IGNsYXNzIDxCPkFjdGlvbkZvcm08L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ETD4KKworPFA+Cis8cD5BbiA8c3Ryb25nPkFjdGlvbkZvcm08L3N0cm9uZz4gaXMgYSBKYXZhQmVhbiBvcHRpb25hbGx5IGFzc29jaWF0ZWQgd2l0aAorIG9uZSBvciBtb3JlIDxjb2RlPkFjdGlvbk1hcHBpbmdzPC9jb2RlPi4gIFN1Y2ggYSBiZWFuIHdpbGwgaGF2ZSBoYWQgaXRzCisgcHJvcGVydGllcyBpbml0aWFsaXplZCBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIHJlcXVlc3QgcGFyYW1ldGVycyBiZWZvcmUKKyB0aGUgY29ycmVzb25kaW5nIGFjdGlvbidzIDxjb2RlPmV4ZWN1dGU8L2NvZGU+IG1ldGhvZCBpcyBjYWxsZWQuPC9wPgorCisgPHA+V2hlbiB0aGUgcHJvcGVydGllcyBvZiB0aGlzIGJlYW4gaGF2ZSBiZWVuIHBvcHVsYXRlZCwgYnV0IGJlZm9yZSB0aGUKKyA8Y29kZT5leGVjdXRlPC9jb2RlPiBtZXRob2Qgb2YgdGhlIGFjdGlvbiBpcyBjYWxsZWQsIHRoaXMgYmVhbidzCisgPGNvZGU+dmFsaWRhdGU8L2NvZGU+IG1ldGhvZCB3aWxsIGJlIGNhbGxlZCwgd2hpY2ggZ2l2ZXMgdGhlIGJlYW4gYSBjaGFuY2UKKyB0byB2ZXJpZnkgdGhhdCB0aGUgcHJvcGVydGllcyBzdWJtaXR0ZWQgYnkgdGhlIHVzZXIgYXJlIGNvcnJlY3QgYW5kIHZhbGlkLgorIElmIHRoaXMgbWV0aG9kIGZpbmRzIHByb2JsZW1zLCBpdCByZXR1cm5zIGFuIGVycm9yIG1lc3NhZ2VzIG9iamVjdCB0aGF0CisgZW5jYXBzdWxhdGVzIHRob3NlIHByb2JsZW1zLCBhbmQgdGhlIGNvbnRyb2xsZXIgc2VydmxldCB3aWxsIHJldHVybiBjb250cm9sCisgdG8gdGhlIGNvcnJlc3BvbmRpbmcgaW5wdXQgZm9ybS4gIE90aGVyd2lzZSwgdGhlIDxjb2RlPnZhbGlkYXRlPC9jb2RlPgorIG1ldGhvZCByZXR1cm5zIDxjb2RlPm51bGw8L2NvZGU+LCBpbmRpY2F0aW5nIHRoYXQgZXZlcnl0aGluZyBpcyBhY2NlcHRhYmxlCisgYW5kIHRoZSBjb3JyZXNwb25kaW5nIEFjdGlvbidzIDxjb2RlPmV4ZWN1dGU8L2NvZGU+IG1ldGhvZCBzaG91bGQgYmUKKyBjYWxsZWQuPC9wPgorCisgPHA+VGhpcyBjbGFzcyBtdXN0IGJlIHN1YmNsYXNzZWQgaW4gb3JkZXIgdG8gYmUgaW5zdGFudGlhdGVkLiAgU3ViY2xhc3NlcworIHNob3VsZCBwcm92aWRlIHByb3BlcnR5IGdldHRlciBhbmQgc2V0dGVyIG1ldGhvZHMgZm9yIGFsbCBvZiB0aGUgYmVhbgorIHByb3BlcnRpZXMgdGhleSB3aXNoIHRvIGV4cG9zZSwgcGx1cyBvdmVycmlkZSBhbnkgb2YgdGhlIHB1YmxpYyBvcgorIHByb3RlY3RlZCBtZXRob2RzIGZvciB3aGljaCB0aGV5IHdpc2ggdG8gcHJvdmlkZSBtb2RpZmllZCBmdW5jdGlvbmFsaXR5LgorIDwvcD4KKworIDxwPkJlY2F1c2UgQWN0aW9uRm9ybXMgYXJlIEphdmFCZWFucywgc3ViY2xhc3NlcyBzaG91bGQgYWxzbyBpbXBsZW1lbnQKKyA8Y29kZT5TZXJpYWxpemFibGU8L2NvZGU+LCBhcyByZXF1aXJlZCBieSB0aGUgSmF2YUJlYW4gc3BlY2lmaWNhdGlvbi4KKyBTb21lIGNvbnRhaW5lcnMgcmVxdWlyZSB0aGF0IGFuIG9iamVjdCBtZWV0IGFsbCBKYXZhQmVhbiByZXF1aXJlbWVudHMKKyBpbiBvcmRlciB0byB1c2UgdGhlIGludHJvc3BlY3Rpb24gQVBJIHVwb24gd2hpY2ggQWN0aW9uRm9ybXMgcmVseS48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuLCBUZWQgSHVzdGVkPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNtdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciI+bXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyIGZvciB0aGlzIGZvcm0sIGNhbiBiZQorIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNBY3Rpb25Gb3JtKCkiPkFjdGlvbkZvcm08L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjZ2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIoKSI+Z2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyIGZvciB0aGlzIGZvcm0KKyBUaGUgcmVhc29uaW5nIGJlaGluZCB0aGlzIGlzIHRvIGdpdmUgZm9ybSBiZWFuIGRldmVsb3BlcnMKKyBjb250cm9sIG92ZXIgdGhlIGxpZmVjeWNsZSBvZiB0aGVpciBtdWx0aXBhcnQgcmVxdWVzdHMKKyB0aHJvdWdoIHRoZSB1c2Ugb2YgdGhlIGZpbmlzaCgpIGFuZC9vciByb2xsYmFjaygpIG1ldGhvZHMKKyBvZiBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldFdyYXBwZXIuaHRtbCI+QWN0aW9uU2VydmxldFdyYXBwZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjZ2V0U2VydmxldFdyYXBwZXIoKSI+Z2V0U2VydmxldFdyYXBwZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGNvbnRyb2xsZXIgc2VydmxldCBpbnN0YW5jZSB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldCBhbGwgYmVhbiBwcm9wZXJ0aWVzIHRvIHRoZWlyIGRlZmF1bHQgc3RhdGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldCBhbGwgYmVhbiBwcm9wZXJ0aWVzIHRvIHRoZWlyIGRlZmF1bHQgc3RhdGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNzZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcihvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpIj5zZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4mbmJzcDttdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgSGFuZGxlciBwcm92aWRlcyB0byB1c2UgaW4gZGVhbGluZyB3aXRoIGZpbGUgdXBsb2Fkcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkIChpZgorIDxjb2RlPnNlcnZsZXQ8L2NvZGU+IGlzIG5vbi1udWxsKSwgb3IgcmVsZWFzZSBhbnkgYWxsb2NhdGVkIHJlc291cmNlcworIChpZiA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBpcyBudWxsKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VmFsaWRhdGUgdGhlIHByb3BlcnRpZXMgdGhhdCBoYXZlIGJlZW4gc2V0IGZvciB0aGlzIEhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtWYWxpZGF0ZSB0aGUgcHJvcGVydGllcyB0aGF0IGhhdmUgYmVlbiBzZXQgZm9yIHRoaXMgbm9uLUhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ic2VydmxldCI+PCEtLSAtLT48L0E+PEgzPgorc2VydmxldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHRyYW5zaWVudCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiA8Qj5zZXJ2bGV0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIiPjwhLS0gLS0+PC9BPjxIMz4KK211bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdHJhbnNpZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4gPEI+bXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyIGZvciB0aGlzIGZvcm0sIGNhbiBiZQorIDxjb2RlPm51bGw8L2NvZGU+LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvbkZvcm0oKSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uRm9ybTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFjdGlvbkZvcm08L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFNlcnZsZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2VydmxldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPmdldFNlcnZsZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGNvbnRyb2xsZXIgc2VydmxldCBpbnN0YW5jZSB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNlcnZsZXRXcmFwcGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNlcnZsZXRXcmFwcGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwiPkFjdGlvblNlcnZsZXRXcmFwcGVyPC9BPiA8Qj5nZXRTZXJ2bGV0V3JhcHBlcjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgY29udHJvbGxlciBzZXJ2bGV0IGluc3RhbmNlIHRvIHdoaWNoIHdlIGFyZSBhdHRhY2hlZC4KKyBhcyBhbiBBY3Rpb25TZXJ2bGV0V3JhcHBlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjAuMTwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldFdyYXBwZXIuaHRtbCI+PENPREU+QWN0aW9uU2VydmxldFdyYXBwZXI8L0NPREU+PC9BPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+IDxCPmdldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciBmb3IgdGhpcyBmb3JtCisgVGhlIHJlYXNvbmluZyBiZWhpbmQgdGhpcyBpcyB0byBnaXZlIGZvcm0gYmVhbiBkZXZlbG9wZXJzCisgY29udHJvbCBvdmVyIHRoZSBsaWZlY3ljbGUgb2YgdGhlaXIgbXVsdGlwYXJ0IHJlcXVlc3RzCisgdGhyb3VnaCB0aGUgdXNlIG9mIHRoZSBmaW5pc2goKSBhbmQvb3Igcm9sbGJhY2soKSBtZXRob2RzCisgb2YgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuICBUaGlzIG1ldGhvZCB3aWxsIHJldHVybgorIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoaXMgZm9ybSdzIGVuY3R5cGUgaXMgbm90CisgIm11bHRpcGFydC9yZXF1ZXN0LWRhdGEiLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxDT0RFPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9DT0RFPjwvQT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTZXJ2bGV0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTZXJ2bGV0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkIChpZgorIDxjb2RlPnNlcnZsZXQ8L2NvZGU+IGlzIG5vbi1udWxsKSwgb3IgcmVsZWFzZSBhbnkgYWxsb2NhdGVkIHJlc291cmNlcworIChpZiA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBpcyBudWxsKS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldDwvQ09ERT4gLSBUaGUgbmV3IGNvbnRyb2xsZXIgc2VydmxldCwgaWYgYW55PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcihvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4mbmJzcDttdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcik8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIEhhbmRsZXIgcHJvdmlkZXMgdG8gdXNlIGluIGRlYWxpbmcgd2l0aCBmaWxlIHVwbG9hZHMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9DT0RFPiAtIFRoZSBIYW5kbGVyIHRvIHVzZSBmb3IgZmlsZXVwbG9hZHMuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3Jlc2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZXNldDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+UmVzZXQgYWxsIGJlYW4gcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHN0YXRlLiAgVGhpcyBtZXRob2QgaXMKKyBjYWxsZWQgYmVmb3JlIHRoZSBwcm9wZXJ0aWVzIGFyZSByZXBvcHVsYXRlZCBieSB0aGUgY29udHJvbGxlciBzZXJ2bGV0LgorIDxwPgorIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGF0dGVtcHRzIHRvIGZvcndhcmQgdG8gdGhlIEhUVFAKKyB2ZXJzaW9uIG9mIHRoaXMgbWV0aG9kLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBtYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3Jlc2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZXNldDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+UmVzZXQgYWxsIGJlYW4gcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHN0YXRlLiAgVGhpcyBtZXRob2QgaXMKKyBjYWxsZWQgYmVmb3JlIHRoZSBwcm9wZXJ0aWVzIGFyZSByZXBvcHVsYXRlZCBieSB0aGUgY29udHJvbGxlciBzZXJ2bGV0LgorIDxwPgorIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRvZXMgbm90aGluZy4gIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlCisgdGhpcyBtZXRob2QgdG8gcmVzZXQgYWxsIGJlYW4gcHJvcGVydGllcyB0byBkZWZhdWx0IHZhbHVlcy4KKyA8L3A+CisgPHA+CisgVGhpcyBtZXRob2QgaXMgPHN0cm9uZz5ub3Q8L3N0cm9uZz4gdGhlIGFwcHJvcHJpYXRlIHBsYWNlIHRvIGluaXRpYWxpemUgZm9ybSB2YWx1ZXMKKyBmb3IgYW4gInVwZGF0ZSIgdHlwZSBwYWdlICh0aGlzIHNob3VsZCBiZSBkb25lIGluIGEgc2V0dXAgQWN0aW9uKS4gIFlvdSBtYWlubHkKKyBuZWVkIHRvIHdvcnJ5IGFib3V0IHNldHRpbmcgY2hlY2tib3ggdmFsdWVzIHRvIGZhbHNlOyBtb3N0IG9mIHRoZSB0aW1lIHlvdQorIGNhbiBsZWF2ZSB0aGlzIG1ldGhvZCB1bmltcGxlbWVudGVkLgorIDwvcD4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgbWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0ZTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiA8Qj52YWxpZGF0ZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5WYWxpZGF0ZSB0aGUgcHJvcGVydGllcyB0aGF0IGhhdmUgYmVlbiBzZXQgZm9yIHRoaXMgbm9uLUhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLiAgSWYgbm8gZXJyb3JzIGFyZSBmb3VuZCwgcmV0dXJuCisgPGNvZGU+bnVsbDwvY29kZT4gb3IgYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3Qgd2l0aCBubworIHJlY29yZGVkIGVycm9yIG1lc3NhZ2VzLgorIDxwPgorIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGF0dGVtcHRzIHRvIGZvcndhcmQgdG8gdGhlIEhUVFAgdmVyc2lvbiBvZgorIHRoaXMgbWV0aG9kLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBtYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+IDxCPnZhbGlkYXRlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPlZhbGlkYXRlIHRoZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBiZWVuIHNldCBmb3IgdGhpcyBIVFRQIHJlcXVlc3QsCisgYW5kIHJldHVybiBhbiA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyBhbnkKKyB2YWxpZGF0aW9uIGVycm9ycyB0aGF0IGhhdmUgYmVlbiBmb3VuZC4gIElmIG5vIGVycm9ycyBhcmUgZm91bmQsCisgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+IG9yIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHdpdGgKKyBubyByZWNvcmRlZCBlcnJvciBtZXNzYWdlcy4KKyA8cD4KKyBUaGUgZGVmYXVsdCBpcG1sZW1lbnRhdGlvbiBwZXJmb3JtcyBubyB2YWxpZGF0aW9uIGFuZCByZXR1cm5zCisgPGNvZGU+bnVsbDwvY29kZT4uICBTdWJjbGFzc2VzIG11c3Qgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcHJvdmlkZQorIGFueSB2YWxpZGF0aW9uIHRoZXkgd2lzaCB0byBwZXJmb3JtLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBtYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb25Gb3JtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FeGNlcHRpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkZvcm0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc2ZjNjYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbApAQCAtMCwwICsxLDI4MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDoxMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0FjdGlvbkZvcm1CZWFuIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW4sQWN0aW9uRm9ybUJlYW4gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkFjdGlvbkZvcm1CZWFuIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FjdGlvbkZvcm1CZWFuLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRm9ybUJlYW4uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZyI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzIEFjdGlvbkZvcm1CZWFuPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZzwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW48L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5BY3Rpb25Gb3JtQmVhbjwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+PC9ETD4KKworPFA+CitBbiA8c3Ryb25nPkFjdGlvbkZvcm1CZWFuPC9zdHJvbmc+IGlzIHRoZSBkZWZpbml0aW9uIG9mIGEgZm9ybSBiZWFuIHRoYXQKKyBpcyBsb2FkZWQgZnJvbSBhIDxjb2RlPiZsdDtmb3JtLWJlYW4mZ3Q7PC9jb2RlPiBlbGVtZW50IGluIHRoZSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuICBJdCBjYW4gYmUgc3ViY2xhc3NlZCBhcyBuZWNlc3NhcnkgdG8gYWRkIGFkZGl0aW9uYWwKKyBwcm9wZXJ0aWVzLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJAorCisgU2luY2UgU3RydXRzIDEuMSA8Y29kZT5BY3Rpb25Gb3JtQmVhbjwvY29kZT4gZXh0ZW5kcyA8Y29kZT5Gb3JtQmVhbkNvbmZpZzwvY29kZT4uCisKKyA8cD48c3Ryb25nPk5PVEU8L3N0cm9uZz4gLSBUaGlzIGNsYXNzIHdvdWxkIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZAorIHJlcGxhY2VkIGJ5IDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZzwvY29kZT4gZXhjZXB0CisgZm9yIHRoZSBmYWN0IHRoYXQgaXQgaXMgcGFydCBvZiB0aGUgcHVibGljIEFQSSB0aGF0IGV4aXN0aW5nIGFwcGxpY2F0aW9ucworIGFyZSB1c2luZy48L3A+PC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbiI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2NvbmZpZ3VyZWQiPmNvbmZpZ3VyZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNkeW5hbWljIj5keW5hbWljPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjZm9ybVByb3BlcnRpZXMiPmZvcm1Qcm9wZXJ0aWVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjbW9kdWxlQ29uZmlnIj5tb2R1bGVDb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjdHlwZSI+dHlwZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCNBY3Rpb25Gb3JtQmVhbigpIj5BY3Rpb25Gb3JtQmVhbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhbiBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgdmFzbHVlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sI0FjdGlvbkZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5BY3Rpb25Gb3JtQmVhbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYW4gaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjYWRkRm9ybVByb3BlcnR5Q29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtUHJvcGVydHlDb25maWcpIj5hZGRGb3JtUHJvcGVydHlDb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNmaW5kRm9ybVByb3BlcnR5Q29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9ybVByb3BlcnR5Q29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjZmluZEZvcm1Qcm9wZXJ0eUNvbmZpZ3MoKSI+ZmluZEZvcm1Qcm9wZXJ0eUNvbmZpZ3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNmb3JtQmVhbkNsYXNzKCkiPmZvcm1CZWFuQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNmcmVlemUoKSI+ZnJlZXplPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjZ2V0RHluYW1pYygpIj5nZXREeW5hbWljPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjZ2V0TW9kdWxlQ29uZmlnKCkiPmdldE1vZHVsZUNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2dldFR5cGUoKSI+Z2V0VHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI3JlbW92ZUZvcm1Qcm9wZXJ0eUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybVByb3BlcnR5Q29uZmlnKSI+cmVtb3ZlRm9ybVByb3BlcnR5Q29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjc2V0RHluYW1pYyhib29sZWFuKSI+c2V0RHluYW1pYzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI3NldE1vZHVsZUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+c2V0TW9kdWxlQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldFR5cGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJBY3Rpb25Gb3JtQmVhbigpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25Gb3JtQmVhbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFjdGlvbkZvcm1CZWFuPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIGluc3RhbmNlIHdpdGggZGVmYXVsdCB2YXNsdWVzLgorPFA+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJBY3Rpb25Gb3JtQmVhbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uRm9ybUJlYW48L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25Gb3JtQmVhbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZXMuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBGb3JtIGJlYW4gbmFtZTxERD48Q09ERT50eXBlPC9DT0RFPiAtIEZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FjdGlvbkZvcm1CZWFuLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRm9ybUJlYW4uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZyI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTAwYzdkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbApAQCAtMCwwICsxLDQyMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDoxMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0FjdGlvbkZvcm1CZWFucyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFucyxBY3Rpb25Gb3JtQmVhbnMgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkFjdGlvbkZvcm1CZWFucyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb25Gb3JtQmVhbnMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkZvcm1CZWFucy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9GT05UPgorPEJSPgorQ2xhc3MgQWN0aW9uRm9ybUJlYW5zPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuczwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIG9mIEZvcm1CZWFuQ29uZmlnIGluc3RhbmNlcworICBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+PC9JPgorPFA+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkFjdGlvbkZvcm1CZWFuczwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0VuY2Fwc3VsYXRlIGEgY29sbGVjdGlvbiBvZiBBY3Rpb25Gb3JtQmVhbiBvYmplY3RzIHRoYXQgY2FuIGJlCisgYWRtaW5pc3RlcmVkIGFuZCBzZWFyY2hlZCwgd2hpbGUgaGlkaW5nIHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbi4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFucyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnMuRmFzdEhhc2hNYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sI2Zvcm1CZWFucyI+Zm9ybUJlYW5zPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBjb2xsZWN0aW9uIG9mIEFjdGlvbkZvcm1CZWFuIGluc3RhbmNlcywga2V5ZWQgYnkgbmFtZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCNBY3Rpb25Gb3JtQmVhbnMoKSI+QWN0aW9uRm9ybUJlYW5zPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwjYWRkRm9ybUJlYW4ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuKSI+YWRkRm9ybUJlYW48L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+Jm5ic3A7Zm9ybUJlYW4pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZWdpc3RlciBhIGZvcm0gYmVhbiB0byB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwjZmluZEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9ybUJlYW48L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgZm9ybUJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZ1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCNmaW5kRm9ybUJlYW5zKCkiPmZpbmRGb3JtQmVhbnM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHNldCBvZiBuYW1lcyBmb3IgZm9ybSBiZWFucyBkZWZpbmVkIGluIHRoaXMgY29sbGVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwjZ2V0RmFzdCgpIj5nZXRGYXN0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSAiZmFzdCIgbW9kZSBmbGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCNyZW1vdmVGb3JtQmVhbihvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW4pIj5yZW1vdmVGb3JtQmVhbjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT4mbmJzcDtmb3JtQmVhbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0RlcmVnaXN0ZXIgYSBmb3JtQmVhbiBmcm9tIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCNzZXRGYXN0KGJvb2xlYW4pIj5zZXRGYXN0PC9BPjwvQj4oYm9vbGVhbiZuYnNwO2Zhc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtTZXQgdGhlICJmYXN0IiBtb2RlIGZsYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJmb3JtQmVhbnMiPjwhLS0gLS0+PC9BPjxIMz4KK2Zvcm1CZWFuczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIG9yZy5hcGFjaGUuY29tbW9ucy5jb2xsZWN0aW9ucy5GYXN0SGFzaE1hcCA8Qj5mb3JtQmVhbnM8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBjb2xsZWN0aW9uIG9mIEFjdGlvbkZvcm1CZWFuIGluc3RhbmNlcywga2V5ZWQgYnkgbmFtZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJBY3Rpb25Gb3JtQmVhbnMoKSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uRm9ybUJlYW5zPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uRm9ybUJlYW5zPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0RmFzdCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGYXN0PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRGYXN0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiB0aGUgImZhc3QiIG1vZGUgZmxhZy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RmFzdChib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RmFzdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RmFzdDwvQj4oYm9vbGVhbiZuYnNwO2Zhc3QpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlNldCB0aGUgImZhc3QiIG1vZGUgZmxhZy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmFzdDwvQ09ERT4gLSBUaGUgbmV3IGZhc3QgbW9kZSBmbGFnPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGRGb3JtQmVhbihvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW4pIj48IS0tIC0tPjwvQT48SDM+CithZGRGb3JtQmVhbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkRm9ybUJlYW48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT4mbmJzcDtmb3JtQmVhbik8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmVnaXN0ZXIgYSBmb3JtIGJlYW4gdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZvcm1CZWFuPC9DT0RFPiAtIFRoZSBmb3JtQmVhbiB0byBiZSBhZGRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRm9ybUJlYW48L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+IDxCPmZpbmRGb3JtQmVhbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiB0aGUgZm9ybUJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBMb2dpY2FsIG5hbWUgb2YgdGhlIGRlc2lyZWQgZm9ybSBiZWFuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRm9ybUJlYW5zKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRGb3JtQmVhbnM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nW10gPEI+ZmluZEZvcm1CZWFuczwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlIHNldCBvZiBuYW1lcyBmb3IgZm9ybSBiZWFucyBkZWZpbmVkIGluIHRoaXMgY29sbGVjdGlvbi4KKyBJZiB0aGVyZSBhcmUgbm8gc3VjaCBmb3JtQmVhbnMsIGEgemVyby1sZW5ndGggYXJyYXkgaXMgcmV0dXJuZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbW92ZUZvcm1CZWFuKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbW92ZUZvcm1CZWFuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZW1vdmVGb3JtQmVhbjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPiZuYnNwO2Zvcm1CZWFuKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5EZXJlZ2lzdGVyIGEgZm9ybUJlYW4gZnJvbSB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Zm9ybUJlYW48L0NPREU+IC0gVGhlIGZvcm1CZWFuIHRvIGJlIGRlcmVnaXN0ZXJlZDwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQWN0aW9uRm9ybUJlYW5zLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25Gb3JtQmVhbnMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE1Mjc5NzgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbApAQCAtMCwwICsxLDM2MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDoxMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0FjdGlvbkZvcndhcmQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkLEFjdGlvbkZvcndhcmQgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkFjdGlvbkZvcndhcmQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQWN0aW9uRm9yd2FyZC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25Gb3J3YXJkLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9GT05UPgorPEJSPgorQ2xhc3MgQWN0aW9uRm9yd2FyZDwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+Rm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWN0aW9uRm9yd2FyZDwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPjwvREw+CisKKzxQPgorQW4gPHN0cm9uZz5BY3Rpb25Gb3J3YXJkPC9zdHJvbmc+IHJlcHJlc2VudHMgYSBkZXN0aW5hdGlvbiB0byB3aGljaCB0aGUKKyBjb250cm9sbGVyIHNlcnZsZXQsIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCBtaWdodCBiZSBkaXJlY3RlZCB0bworIHBlcmZvcm0gYSA8Y29kZT5SZXF1ZXN0RGlzcGF0Y2hlci5mb3J3YXJkKCk8L2NvZGU+IG9yCisgPGNvZGU+SHR0cFNlcnZsZXRSZXNwb25zZS5zZW5kUmVkaXJlY3QoKTwvY29kZT4gdG8sIGFzIGEgcmVzdWx0IG9mCisgcHJvY2Vzc2luZyBhY3Rpdml0aWVzIG9mIGFuIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MuICBJbnN0YW5jZXMgb2YgdGhpcworIGNsYXNzIG1heSBiZSBjcmVhdGVkIGR5bmFtaWNhbGx5IGFzIG5lY2Vzc2FyeSwgb3IgY29uZmlndXJlZCBpbiBhc3NvY2lhdGlvbgorIHdpdGggYW4gPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gaW5zdGFuY2UgZm9yIG5hbWVkIGxvb2t1cCBvZiBwb3RlbnRpYWxseQorIG11bHRpcGxlIGRlc3RpbmF0aW9ucyBmb3IgYSBwYXJ0aWN1bGFyIG1hcHBpbmcgaW5zdGFuY2UuCisgPHA+CisgQW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaGFzIHRoZSBmb2xsb3dpbmcgbWluaW1hbCBzZXQgb2YgcHJvcGVydGllcy4KKyBBZGRpdGlvbmFsIHByb3BlcnRpZXMgY2FuIGJlIHByb3ZpZGVkIGFzIG5lZWRlZCBieSBzdWJjbGFzc3Nlcy4KKyA8dWw+CisgPGxpPjxzdHJvbmc+Y29udGV4dFJlbGF0aXZlPC9zdHJvbmc+IC0gU2hvdWxkIHRoZSA8Y29kZT5wYXRoPC9jb2RlPgorICAgICB2YWx1ZSBiZSBpbnRlcnByZXRlZCBhcyBjb250ZXh0LXJlbGF0aXZlIChpbnN0ZWFkIG9mCisgICAgIG1vZHVsZS1yZWxhdGl2ZSwgaWYgaXQgc3RhcnRzIHdpdGggYSAnLycgY2hhcmFjdGVyPyBbZmFsc2VdPC9saT4KKyA8bGk+PHN0cm9uZz5uYW1lPC9zdHJvbmc+IC0gTG9naWNhbCBuYW1lIGJ5IHdoaWNoIHRoaXMgaW5zdGFuY2UgbWF5IGJlCisgICAgIGxvb2tlZCB1cCBpbiByZWxhdGlvbnNoaXAgdG8gYSBwYXJ0aWN1bGFyIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+LgorICAgICA8L2xpPgorIDxsaT48c3Ryb25nPnBhdGg8L3N0cm9uZz4gLSBNb2R1bGUtcmVsYXRpdmUgb3IgY29udGV4dC1yZWxhdGl2ZSBVUkkgdG8KKyAgICAgd2hpY2ggY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciBhbiBhYnNvbHV0ZSBvciByZWxhdGl2ZSBVUkkgdG8KKyAgICAgd2hpY2ggY29udHJvbCBzaG91bGQgYmUgcmVkaXJlY3RlZC48L2xpPgorIDxsaT48c3Ryb25nPnJlZGlyZWN0PC9zdHJvbmc+IC0gU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBjb250cm9sbGVyCisgICAgIHNlcnZsZXQgc2hvdWxkIGNhbGwgPGNvZGU+SHR0cFNlcnZsZXRSZXNwb25zZS5zZW5kUmVkaXJlY3QoKTwvY29kZT4KKyAgICAgb24gdGhlIGFzc29jaWF0ZWQgcGF0aDsgb3RoZXJ3aXNlIDxjb2RlPmZhbHNlPC9jb2RlPi4gIFtmYWxzZV08L2xpPgorIDwvdWw+CisKKyA8cD5TaW5jZSBTdHJ1dHMgMS4xIHRoaXMgY2xhc3MgZXh0ZW5kcyA8Y29kZT5Gb3J3YXJkQ29uZmlnPC9jb2RlPgorIGFuZCBpbmhlcml0cyB0aGUgPGNvZGU+Y29udGV4dFJlbGF0aXZlPC9jb2RlPiBwcm9wZXJ0eS4KKworIDxwPjxzdHJvbmc+Tk9URTwvc3Ryb25nPiAtIFRoaXMgY2xhc3Mgd291bGQgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kCisgcmVwbGFjZWQgYnkgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWc8L2NvZGU+IGV4Y2VwdAorIGZvciB0aGUgZmFjdCB0aGF0IGl0IGlzIHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkgdGhhdCBleGlzdGluZyBhcHBsaWNhdGlvbnMKKyBhcmUgdXNpbmcuPC9wPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjY29uZmlndXJlZCI+Y29uZmlndXJlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjY29udGV4dFJlbGF0aXZlIj5jb250ZXh0UmVsYXRpdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI3BhdGgiPnBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI3JlZGlyZWN0Ij5yZWRpcmVjdDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI0FjdGlvbkZvcndhcmQoKSI+QWN0aW9uRm9yd2FyZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCNBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhdGguPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI0FjdGlvbkZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPkFjdGlvbkZvcndhcmQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCwKKyAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO3JlZGlyZWN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBwYXRoIGFuZCByZWRpcmVjdCBmbGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCNBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoLAorICAgICAgICAgICAgICBib29sZWFuJm5ic3A7cmVkaXJlY3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhdGggYW5kIHJlZGlyZWN0IGZsYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sI0FjdGlvbkZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbiwgYm9vbGVhbikiPkFjdGlvbkZvcndhcmQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgsCisgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtyZWRpcmVjdCwKKyAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO2NvbnRleHRSZWxhdGl2ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2ZyZWV6ZSgpIj5mcmVlemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2dldENvbnRleHRSZWxhdGl2ZSgpIj5nZXRDb250ZXh0UmVsYXRpdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjZ2V0UGF0aCgpIj5nZXRQYXRoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNnZXRSZWRpcmVjdCgpIj5nZXRSZWRpcmVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjc2V0Q29udGV4dFJlbGF0aXZlKGJvb2xlYW4pIj5zZXRDb250ZXh0UmVsYXRpdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI3NldFBhdGgoamF2YS5sYW5nLlN0cmluZykiPnNldFBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI3NldFJlZGlyZWN0KGJvb2xlYW4pIj5zZXRSZWRpcmVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQWN0aW9uRm9yd2FyZCgpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25Gb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uRm9yd2FyZDwvQj4oKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgdmFsdWVzLgorPFA+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25Gb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uRm9yd2FyZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBwYXRoLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhdGg8L0NPREU+IC0gUGF0aCBmb3IgdGhpcyBpbnN0YW5jZTwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkFjdGlvbkZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbkZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25Gb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtyZWRpcmVjdCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhdGggYW5kIHJlZGlyZWN0IGZsYWcuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0aDwvQ09ERT4gLSBQYXRoIGZvciB0aGlzIGluc3RhbmNlPEREPjxDT0RFPnJlZGlyZWN0PC9DT0RFPiAtIFJlZGlyZWN0IGZsYWcgZm9yIHRoaXMgaW5zdGFuY2U8L0RMPgorPEhSPgorCis8QSBOQU1FPSJBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25Gb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uRm9yd2FyZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtyZWRpcmVjdCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhdGggYW5kIHJlZGlyZWN0IGZsYWcuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoaXMgaW5zdGFuY2U8REQ+PENPREU+cGF0aDwvQ09ERT4gLSBQYXRoIGZvciB0aGlzIGluc3RhbmNlPEREPjxDT0RFPnJlZGlyZWN0PC9DT0RFPiAtIFJlZGlyZWN0IGZsYWcgZm9yIHRoaXMgaW5zdGFuY2U8L0RMPgorPEhSPgorCis8QSBOQU1FPSJBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4sIGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25Gb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uRm9yd2FyZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtyZWRpcmVjdCwKKyAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtjb250ZXh0UmVsYXRpdmUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZXMuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoaXMgaW5zdGFuY2U8REQ+PENPREU+cGF0aDwvQ09ERT4gLSBQYXRoIGZvciB0aGlzIGluc3RhbmNlPEREPjxDT0RFPnJlZGlyZWN0PC9DT0RFPiAtIFJlZGlyZWN0IGZsYWcgZm9yIHRoaXMgaW5zdGFuY2U8REQ+PENPREU+Y29udGV4dFJlbGF0aXZlPC9DT0RFPiAtIENvbnRleHQgcmVsYXRpdmUgZmxhZyBmb3IgdGhpcyBpbnN0YW5jZTwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb25Gb3J3YXJkLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkZvcndhcmQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWciPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4MjUzZjYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwKQEAgLTAsMCArMSw0MjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MTAgRURUIDIwMDMgLS0+Cis8VElUTEU+CitBY3Rpb25Gb3J3YXJkcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmRzLEFjdGlvbkZvcndhcmRzIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJBY3Rpb25Gb3J3YXJkcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb25Gb3J3YXJkcy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25Gb3J3YXJkcy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9GT05UPgorPEJSPgorQ2xhc3MgQWN0aW9uRm9yd2FyZHM8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZHM8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgY29sbGVjdGlvbiBvZiBGb3J3YXJkQ29uZmlnIGluc3RhbmNlcyBpbgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+IGFuZCBBY3Rpb25Db25maWc8L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWN0aW9uRm9yd2FyZHM8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ETD4KKworPFA+CitFbmNhcHN1bGF0ZSBhIGNvbGxlY3Rpb24gb2YgQWN0aW9uRm9yd2FyZCBvYmplY3RzIHRoYXQgY2FuIGJlCisgYWRtaW5pc3RlcmVkIGFuZCBzZWFyY2hlZCwgd2hpbGUgaGlkaW5nIHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbi4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmRzIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnMuRmFzdEhhc2hNYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwjZm9yd2FyZHMiPmZvcndhcmRzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBjb2xsZWN0aW9uIG9mIEFjdGlvbkZvcndhcmQgaW5zdGFuY2VzLCBrZXllZCBieSBsb2dpY2FsIG5hbWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNBY3Rpb25Gb3J3YXJkcygpIj5BY3Rpb25Gb3J3YXJkczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwjYWRkRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCkiPmFkZEZvcndhcmQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiZuYnNwO2ZvcndhcmQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZWdpc3RlciBhIGxvZ2ljYWwgZm9yd2FyZGluZyB0byB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwjZmluZEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPmZpbmRGb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIGZvcndhcmRpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZ1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sI2ZpbmRGb3J3YXJkcygpIj5maW5kRm9yd2FyZHM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHNldCBvZiBsb2dpY2FsIG5hbWVzIGZvciBmb3J3YXJkcyBkZWZpbmVkIGluIHRoaXMgY29sbGVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNnZXRGYXN0KCkiPmdldEZhc3Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlICJmYXN0IiBtb2RlIGZsYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwjcmVtb3ZlRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCkiPnJlbW92ZUZvcndhcmQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiZuYnNwO2ZvcndhcmQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtEZXJlZ2lzdGVyIGEgZm9yd2FyZGluZyBmcm9tIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sI3NldEZhc3QoYm9vbGVhbikiPnNldEZhc3Q8L0E+PC9CPihib29sZWFuJm5ic3A7ZmFzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1NldCB0aGUgImZhc3QiIG1vZGUgZmxhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImZvcndhcmRzIj48IS0tIC0tPjwvQT48SDM+Citmb3J3YXJkczwvSDM+Cis8UFJFPgorcHJpdmF0ZSBvcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnMuRmFzdEhhc2hNYXAgPEI+Zm9yd2FyZHM8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBjb2xsZWN0aW9uIG9mIEFjdGlvbkZvcndhcmQgaW5zdGFuY2VzLCBrZXllZCBieSBsb2dpY2FsIG5hbWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQWN0aW9uRm9yd2FyZHMoKSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uRm9yd2FyZHM8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25Gb3J3YXJkczwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEZhc3QoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmFzdDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0RmFzdDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlICJmYXN0IiBtb2RlIGZsYWcuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZhc3QoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZhc3Q8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZhc3Q8L0I+KGJvb2xlYW4mbmJzcDtmYXN0KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5TZXQgdGhlICJmYXN0IiBtb2RlIGZsYWcuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZhc3Q8L0NPREU+IC0gVGhlIG5ldyBmYXN0IG1vZGUgZmxhZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCkiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZEZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZEZvcndhcmQ8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmVnaXN0ZXIgYSBsb2dpY2FsIGZvcndhcmRpbmcgdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZvcndhcmQ8L0NPREU+IC0gVGhlIGZvcndhcmRpbmcgdG8gYmUgYWRkZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPmZpbmRGb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSBmb3J3YXJkaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGxvZ2ljYWwgbmFtZSwKKyBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTG9naWNhbCBuYW1lIG9mIHRoZSByZXF1ZXN0ZWQgZm9yd2FyZGluZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZEZvcndhcmRzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRGb3J3YXJkczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmdbXSA8Qj5maW5kRm9yd2FyZHM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSBzZXQgb2YgbG9naWNhbCBuYW1lcyBmb3IgZm9yd2FyZHMgZGVmaW5lZCBpbiB0aGlzIGNvbGxlY3Rpb24uCisgSWYgdGhlcmUgYXJlIG5vIHN1Y2ggZm9yd2FyZHMsIGEgemVyby1sZW5ndGggYXJyYXkgaXMgcmV0dXJuZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbW92ZUZvcndhcmQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQpIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmVGb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZW1vdmVGb3J3YXJkPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiZuYnNwO2ZvcndhcmQpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkRlcmVnaXN0ZXIgYSBmb3J3YXJkaW5nIGZyb20gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZvcndhcmQ8L0NPREU+IC0gVGhlIGZvcndhcmRpbmcgdG8gYmUgZGVyZWdpc3RlcmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb25Gb3J3YXJkcy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25Gb3J3YXJkcy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTUyYTAxZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sCkBAIC0wLDAgKzEsMzgyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjEwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorQWN0aW9uTWFwcGluZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsQWN0aW9uTWFwcGluZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQWN0aW9uTWFwcGluZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb25NYXBwaW5nLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uTWFwcGluZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9GT05UPgorPEJSPgorQ2xhc3MgQWN0aW9uTWFwcGluZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZzwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiPlJlcXVlc3RBY3Rpb25NYXBwaW5nPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1Nlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwiPlNlc3Npb25BY3Rpb25NYXBwaW5nPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5BY3Rpb25NYXBwaW5nPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPjwvREw+CisKKzxQPgorPHA+QW4gPHN0cm9uZz5BY3Rpb25NYXBwaW5nPC9zdHJvbmc+IHJlcHJlc2VudHMgdGhlIGluZm9ybWF0aW9uIHRoYXQgdGhlCisgY29udHJvbGxlciBzZXJ2bGV0LCA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiwga25vd3MgYWJvdXQgdGhlIG1hcHBpbmcKKyBvZiBhIHBhcnRpY3VsYXIgcmVxdWVzdCB0byBhbiBpbnN0YW5jZSBvZiBhIHBhcnRpY3VsYXIgYWN0aW9uIGNsYXNzLgorIFRoZSBBY3Rpb25NYXBwaW5nIGluc3RhbmNlIHVzZWQgdG8gc2VsZWN0IGEgcGFydGljdWxhciBBY3Rpb24gaXMgcGFzc2VkCisgb24gdG8gdGhhdCBBY3Rpb24sIHRoZXJlYnkgcHJvdmlkaW5nIGFjY2VzcyB0byBhbnkgY3VzdG9tIGNvbmZpZ3VyYXRpb24KKyBpbmZvcm1hdGlvbiBpbmNsdWRlZCB3aXRoIHRoZSBBY3Rpb25NYXBwaW5nIG9iamVjdC48L3A+CisKKyA8cD5TaW5jZSBTdHJ1dHMgMS4xIHRoaXMgY2xhc3MgZXh0ZW5kcyA8Y29kZT5BY3Rpb25Db25maWc8L2NvZGU+LgorCisgPHA+PHN0cm9uZz5OT1RFPC9zdHJvbmc+IC0gVGhpcyBjbGFzcyB3b3VsZCBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQKKyByZXBsYWNlZCBieSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnPC9jb2RlPiBleGNlcHQKKyBmb3IgdGhlIGZhY3QgdGhhdCBpdCBpcyBwYXJ0IG9mIHRoZSBwdWJsaWMgQVBJIHRoYXQgZXhpc3RpbmcgYXBwbGljYXRpb25zCisgYXJlIHVzaW5nLjwvcD4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjY29uZmlndXJlZCI+Y29uZmlndXJlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNleGNlcHRpb25zIj5leGNlcHRpb25zPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2ZvcndhcmQiPmZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZm9yd2FyZHMiPmZvcndhcmRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2luY2x1ZGUiPmluY2x1ZGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjaW5wdXQiPmlucHV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI21vZHVsZUNvbmZpZyI+bW9kdWxlQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI211bHRpcGFydENsYXNzIj5tdWx0aXBhcnRDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3BhdGgiPnBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjcHJlZml4Ij5wcmVmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjcm9sZU5hbWVzIj5yb2xlTmFtZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjcm9sZXMiPnJvbGVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzdWZmaXgiPnN1ZmZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCN0eXBlIj50eXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3Vua25vd24iPnVua25vd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjdmFsaWRhdGUiPnZhbGlkYXRlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjQWN0aW9uTWFwcGluZygpIj5BY3Rpb25NYXBwaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZmluZEV4Y2VwdGlvbihqYXZhLmxhbmcuQ2xhc3MpIj5maW5kRXhjZXB0aW9uPC9BPjwvQj4oamF2YS5sYW5nLkNsYXNzJm5ic3A7dHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZpbmQgYW5kIHJldHVybiB0aGUgPGNvZGU+RXhjZXB0aW9uQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSBkZWZpbmluZworIGhvdyBleGNlcHRpb25zIG9mIHRoZSBzcGVjaWZpZWQgdHlwZSBzaG91bGQgYmUgaGFuZGxlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNmaW5kRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcndhcmQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZpbmQgYW5kIHJldHVybiB0aGUgPGNvZGU+Rm9yd2FyZENvbmZpZzwvY29kZT4gaW5zdGFuY2UgZGVmaW5pbmcKKyBob3cgZm9yd2FyZGluZyB0byB0aGUgc3BlY2lmaWVkIGxvZ2ljYWwgbmFtZSBzaG91bGQgYmUgaGFuZGxlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZ1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZmluZEZvcndhcmRzKCkiPmZpbmRGb3J3YXJkczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbG9naWNhbCBuYW1lcyBvZiBhbGwgbG9jYWxseSBkZWZpbmVkIGZvcndhcmRzIGZvciB0aGlzCisgbWFwcGluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRJbnB1dEZvcndhcmQoKSI+Z2V0SW5wdXRGb3J3YXJkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIChpZiBuZWNlc3NhcnkpIGFuZCByZXR1cm4gYW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+PENPREU+QWN0aW9uRm9yd2FyZDwvQ09ERT48L0E+IHRoYXQKKyBjb3JyZXNwb25kcyB0byB0aGUgPGNvZGU+aW5wdXQ8L2NvZGU+IHByb3BlcnR5IG9mIHRoaXMgQWN0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNhZGRFeGNlcHRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZykiPmFkZEV4Y2VwdGlvbkNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNhZGRGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+YWRkRm9yd2FyZENvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNmaW5kRXhjZXB0aW9uQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRXhjZXB0aW9uQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2ZpbmRFeGNlcHRpb25Db25maWdzKCkiPmZpbmRFeGNlcHRpb25Db25maWdzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2ZpbmRGb3J3YXJkQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9yd2FyZENvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNmaW5kRm9yd2FyZENvbmZpZ3MoKSI+ZmluZEZvcndhcmRDb25maWdzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2ZyZWV6ZSgpIj5mcmVlemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0QXBwbGljYXRpb25Db25maWcoKSI+Z2V0QXBwbGljYXRpb25Db25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0QXR0cmlidXRlKCkiPmdldEF0dHJpYnV0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRGb3J3YXJkKCkiPmdldEZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0SW5jbHVkZSgpIj5nZXRJbmNsdWRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldElucHV0KCkiPmdldElucHV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldE1vZHVsZUNvbmZpZygpIj5nZXRNb2R1bGVDb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0TXVsdGlwYXJ0Q2xhc3MoKSI+Z2V0TXVsdGlwYXJ0Q2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0UGF0aCgpIj5nZXRQYXRoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFByZWZpeCgpIj5nZXRQcmVmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0Um9sZU5hbWVzKCkiPmdldFJvbGVOYW1lczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRSb2xlcygpIj5nZXRSb2xlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRTdWZmaXgoKSI+Z2V0U3VmZml4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFR5cGUoKSI+Z2V0VHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRVbmtub3duKCkiPmdldFVua25vd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0VmFsaWRhdGUoKSI+Z2V0VmFsaWRhdGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjcmVtb3ZlRXhjZXB0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcpIj5yZW1vdmVFeGNlcHRpb25Db25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjcmVtb3ZlRm9yd2FyZENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPnJlbW92ZUZvcndhcmRDb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0QXBwbGljYXRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPnNldEFwcGxpY2F0aW9uQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QXR0cmlidXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0SW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW5jbHVkZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRJbnB1dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW5wdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0TW9kdWxlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5zZXRNb2R1bGVDb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0TXVsdGlwYXJ0Q2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE11bHRpcGFydENsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0UGF0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGF0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRQcmVmaXgoamF2YS5sYW5nLlN0cmluZykiPnNldFByZWZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRSb2xlcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldFN1ZmZpeChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3VmZml4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldFR5cGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0VW5rbm93bihib29sZWFuKSI+c2V0VW5rbm93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRWYWxpZGF0ZShib29sZWFuKSI+c2V0VmFsaWRhdGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQWN0aW9uTWFwcGluZygpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25NYXBwaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uTWFwcGluZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZmluZEV4Y2VwdGlvbihqYXZhLmxhbmcuQ2xhc3MpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+IDxCPmZpbmRFeGNlcHRpb248L0I+KGphdmEubGFuZy5DbGFzcyZuYnNwO3R5cGUpPC9QUkU+Cis8REw+Cis8REQ+PHA+RmluZCBhbmQgcmV0dXJuIHRoZSA8Y29kZT5FeGNlcHRpb25Db25maWc8L2NvZGU+IGluc3RhbmNlIGRlZmluaW5nCisgaG93IGV4Y2VwdGlvbnMgb2YgdGhlIHNwZWNpZmllZCB0eXBlIHNob3VsZCBiZSBoYW5kbGVkLiAgVGhpcyBpcworIHBlcmZvcm1lZCBieSBjaGVja2luZyBsb2NhbCBhbmQgdGhlbiBnbG9iYWwgY29uZmlndXJhdGlvbnMgZm9yIHRoZQorIHNwZWNpZmllZCBleGNlcHRpb24ncyBjbGFzcywgYW5kIHRoZW4gbG9va2luZyB1cCB0aGUgc3VwZXJjbGFzcyBjaGFpbgorIChhZ2FpbiBjaGVja2luZyBsb2NhbCBhbmQgdGhlbiBnbG9iYWwgY29uZmlndXJhdGlvbnMpLiAgSWYgbm8gaGFuZGxlcgorIGNvbmZpZ3VyYXRpb24gY2FuIGJlIGZvdW5kLCByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9wPgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT50eXBlPC9DT0RFPiAtIEV4Y2VwdGlvbiBjbGFzcyBmb3Igd2hpY2ggdG8gZmluZCBhIGhhbmRsZXI8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRGb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+ZmluZEZvcndhcmQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxwPkZpbmQgYW5kIHJldHVybiB0aGUgPGNvZGU+Rm9yd2FyZENvbmZpZzwvY29kZT4gaW5zdGFuY2UgZGVmaW5pbmcKKyBob3cgZm9yd2FyZGluZyB0byB0aGUgc3BlY2lmaWVkIGxvZ2ljYWwgbmFtZSBzaG91bGQgYmUgaGFuZGxlZC4gIFRoaXMgaXMKKyBwZXJmb3JtZWQgYnkgY2hlY2tpbmcgbG9jYWwgYW5kIHRoZW4gZ2xvYmFsIGNvbmZpZ3VyYXRpb25zIGZvciB0aGUKKyBzcGVjaWZpZWQgZm9yd2FyZGluZyBjb25maWd1cmF0aW9uLiAgSWYgbm8gZm9yd2FyZGluZyBjb25maWd1cmF0aW9uCisgY2FuIGJlIGZvdW5kLCByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9wPgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIExvZ2ljYWwgbmFtZSBvZiB0aGUgZm9yd2FyZGluZyBpbnN0YW5jZSB0byBiZSByZXR1cm5lZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZEZvcndhcmRzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRGb3J3YXJkczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmdbXSA8Qj5maW5kRm9yd2FyZHM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48cD5SZXR1cm4gdGhlIGxvZ2ljYWwgbmFtZXMgb2YgYWxsIGxvY2FsbHkgZGVmaW5lZCBmb3J3YXJkcyBmb3IgdGhpcworIG1hcHBpbmcuICBJZiB0aGVyZSBhcmUgbm8gc3VjaCBmb3J3YXJkcywgYSB6ZXJvLWxlbmd0aCBhcnJheQorIGlzIHJldHVybmVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJbnB1dEZvcndhcmQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SW5wdXRGb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+Z2V0SW5wdXRGb3J3YXJkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PHA+Q3JlYXRlIChpZiBuZWNlc3NhcnkpIGFuZCByZXR1cm4gYW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+PENPREU+QWN0aW9uRm9yd2FyZDwvQ09ERT48L0E+IHRoYXQKKyBjb3JyZXNwb25kcyB0byB0aGUgPGNvZGU+aW5wdXQ8L2NvZGU+IHByb3BlcnR5IG9mIHRoaXMgQWN0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FjdGlvbk1hcHBpbmcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25NYXBwaW5nLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZDI3NzAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwKQEAgLTAsMCArMSw1NjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MTAgRURUIDIwMDMgLS0+Cis8VElUTEU+CitBY3Rpb25NYXBwaW5ncyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzLEFjdGlvbk1hcHBpbmdzIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJBY3Rpb25NYXBwaW5ncyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb25NYXBwaW5ncy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25NYXBwaW5ncy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9GT05UPgorPEJSPgorQ2xhc3MgQWN0aW9uTWFwcGluZ3M8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZ3M8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgY29sbGVjdGlvbiBvZiBBY3Rpb25Db25maWcgaW5zdGFuY2VzIGluCisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT48L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWN0aW9uTWFwcGluZ3M8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ETD4KKworPFA+CitFbmNhcHN1bGF0ZSBhIGNvbGxlY3Rpb24gb2YgQWN0aW9uTWFwcGluZyBvYmplY3RzIHRoYXQgY2FuIGJlCisgYWRtaW5pc3RlcmVkIGFuZCBzZWFyY2hlZCwgd2hpbGUgaGlkaW5nIHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbi4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5jb2xsZWN0aW9ucy5GYXN0SGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNtYXBwaW5ncyI+bWFwcGluZ3M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIGNvbGxlY3Rpb24gb2YgQWN0aW9uTWFwcGluZyBpbnN0YW5jZXMsIGtleWVkIGJ5IHJlcXVlc3QgcGF0aC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2Ugb2Ygb3VyIG93bmluZyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI3Vua25vd24iPnVua25vd248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIEFjdGlvbk1hcHBpbmcgdGhhdCBzaG91bGQgaGFuZGxlIHVua25vd24gcmVxdWVzdCBwYXRocywgaWYgYW55LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjQWN0aW9uTWFwcGluZ3MoKSI+QWN0aW9uTWFwcGluZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI2FkZE1hcHBpbmcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5hZGRNYXBwaW5nPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVnaXN0ZXIgYSBsb2dpY2FsIG1hcHBpbmcgdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI2ZpbmRNYXBwaW5nKGphdmEubGFuZy5TdHJpbmcpIj5maW5kTWFwcGluZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBtYXBwaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGxvZ2ljYWwgbmFtZSwKKyBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmdbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNmaW5kTWFwcGluZ3MoKSI+ZmluZE1hcHBpbmdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBzZXQgb2YgcGF0aHMgZm9yIG1hcHBpbmdzIGRlZmluZWQgaW4gdGhpcyBjb2xsZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI2dldEZhc3QoKSI+Z2V0RmFzdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgImZhc3QiIG1vZGUgZmxhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiBpbnN0YW5jZSBvZiBvdXIgb3duaW5nCisgYXBwbGljYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI2dldFVua25vd24oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldFVua25vd248L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgQWN0aW9uIHRoYXQgc2hvdWxkIGhhbmRsZSB1bmtub3duIHJlcXVlc3QgcGF0aHMsIGlmIGFueS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjZ2V0VW5rbm93bihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0KSI+Z2V0VW5rbm93bjwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0dXJuIHRoZSBBY3Rpb24gdGhhdCBzaG91bGQgaGFuZGxlIHVua25vd24gcmVxdWVzdCBwYXRocywgaWYgYW55LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI3JlbW92ZU1hcHBpbmcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5yZW1vdmVNYXBwaW5nPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7RGVyZWdpc3RlciBhIG1hcHBpbmcgZnJvbSB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNzZXRGYXN0KGJvb2xlYW4pIj5zZXRGYXN0PC9BPjwvQj4oYm9vbGVhbiZuYnNwO2Zhc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtTZXQgdGhlICJmYXN0IiBtb2RlIGZsYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtTZXQgdGhlIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+IGluc3RhbmNlIG9mIG91ciBvd25pbmcgYXBwbGljYXRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJtYXBwaW5ncyI+PCEtLSAtLT48L0E+PEgzPgorbWFwcGluZ3M8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBvcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnMuRmFzdEhhc2hNYXAgPEI+bWFwcGluZ3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBjb2xsZWN0aW9uIG9mIEFjdGlvbk1hcHBpbmcgaW5zdGFuY2VzLCBrZXllZCBieSByZXF1ZXN0IHBhdGguCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXJ2bGV0Ij48IS0tIC0tPjwvQT48SDM+CitzZXJ2bGV0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdHJhbnNpZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPnNlcnZsZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlIG9mIG91ciBvd25pbmcgYXBwbGljYXRpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ1bmtub3duIj48IS0tIC0tPjwvQT48SDM+Cit1bmtub3duPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4gPEI+dW5rbm93bjwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIEFjdGlvbk1hcHBpbmcgdGhhdCBzaG91bGQgaGFuZGxlIHVua25vd24gcmVxdWVzdCBwYXRocywgaWYgYW55LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvbk1hcHBpbmdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbk1hcHBpbmdzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uTWFwcGluZ3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRGYXN0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZhc3Q8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldEZhc3Q8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSAiZmFzdCIgbW9kZSBmbGFnLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGYXN0KGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRGYXN0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGYXN0PC9CPihib29sZWFuJm5ic3A7ZmFzdCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+U2V0IHRoZSAiZmFzdCIgbW9kZSBmbGFnLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mYXN0PC9DT0RFPiAtIFRoZSBuZXcgZmFzdCBtb2RlIGZsYWc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFVua25vd24oamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFVua25vd248L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiA8Qj5nZXRVbmtub3duPC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSBBY3Rpb24gdGhhdCBzaG91bGQgaGFuZGxlIHVua25vd24gcmVxdWVzdCBwYXRocywgaWYgYW55LgorIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGNhc3RzIHRoZSByZXF1ZXN0IHRvIEh0dHBTZXJ2bGV0UmVxdWVzdAorIGFuZCBjYWxscyB0aGUgY29ycmVzcG9uZGluZyB2ZXJzaW9uIG9mIHRoaXMgbWV0aG9kLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFVua25vd24oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFVua25vd248L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiA8Qj5nZXRVbmtub3duPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSBBY3Rpb24gdGhhdCBzaG91bGQgaGFuZGxlIHVua25vd24gcmVxdWVzdCBwYXRocywgaWYgYW55LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNlcnZsZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2VydmxldDwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPmdldFNlcnZsZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiBpbnN0YW5jZSBvZiBvdXIgb3duaW5nCisgYXBwbGljYXRpb24uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTZXJ2bGV0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTZXJ2bGV0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlNldCB0aGUgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4gaW5zdGFuY2Ugb2Ygb3VyIG93bmluZyBhcHBsaWNhdGlvbi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldDwvQ09ERT4gLSBUaGUgbmV3IHNlcnZsZXQgaW5zdGFuY2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZE1hcHBpbmcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48IS0tIC0tPjwvQT48SDM+CithZGRNYXBwaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRNYXBwaW5nPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJlZ2lzdGVyIGEgbG9naWNhbCBtYXBwaW5nIHRvIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBtYXBwaW5nIHRvIGJlIGFkZGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kTWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZE1hcHBpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiA8Qj5maW5kTWFwcGluZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJldHVybiB0aGUgbWFwcGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBsb2dpY2FsIG5hbWUsCisgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYXRoPC9DT0RFPiAtIFRoZSByZXF1ZXN0IHBhdGggZm9yIHdoaWNoIHRvIHJldHJpZXZlIGEgbWFwcGluZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZE1hcHBpbmdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRNYXBwaW5nczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmdbXSA8Qj5maW5kTWFwcGluZ3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSBzZXQgb2YgcGF0aHMgZm9yIG1hcHBpbmdzIGRlZmluZWQgaW4gdGhpcyBjb2xsZWN0aW9uLgorIElmIHRoZXJlIGFyZSBubyBzdWNoIG1hcHBpbmdzLCBhIHplcm8tbGVuZ3RoIGFycmF5IGlzIHJldHVybmVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW1vdmVNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorcmVtb3ZlTWFwcGluZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVtb3ZlTWFwcGluZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5EZXJlZ2lzdGVyIGEgbWFwcGluZyBmcm9tIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBtYXBwaW5nIHRvIGJlIGRlcmVnaXN0ZXJlZDwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQWN0aW9uTWFwcGluZ3MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uTWFwcGluZ3MuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3NjBiNjEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbApAQCAtMCwwICsxLDQ1MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDoxMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0FjdGlvbk1lc3NhZ2UgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlLEFjdGlvbk1lc3NhZ2UgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkFjdGlvbk1lc3NhZ2UgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQWN0aW9uTWVzc2FnZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbk1lc3NhZ2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzIEFjdGlvbk1lc3NhZ2U8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZTwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5BY3Rpb25NZXNzYWdlPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorPHA+QW4gZW5jYXBzdWxhdGlvbiBvZiBhbiBpbmRpdmlkdWFsIG1lc3NhZ2UgcmV0dXJuZWQgYnkgdGhlCisgPGNvZGU+dmFsaWRhdGUoKTwvY29kZT4gbWV0aG9kIG9mIGFuIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+LCBjb25zaXN0aW5nCisgb2YgYSBtZXNzYWdlIGtleSAodG8gYmUgdXNlZCB0byBsb29rIHVwIG1lc3NhZ2UgdGV4dCBpbiBhbiBhcHByb3ByaWF0ZQorIG1lc3NhZ2UgcmVzb3VyY2VzIGRhdGFiYXNlKSBwbHVzIHVwIHRvIGZvdXIgcGxhY2Vob2xkZXIgb2JqZWN0cyB0aGF0IGNhbgorIGJlIHVzZWQgZm9yIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgaW4gdGhlIG1lc3NhZ2UgdGV4dC48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW4sIERhdmlkIFdpbnRlcmZlbGR0PC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCNrZXkiPmtleTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSBrZXkgZm9yIHRoaXMgbWVzc2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5PYmplY3RbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sI3ZhbHVlcyI+dmFsdWVzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSByZXBsYWNlbWVudCB2YWx1ZXMgZm9yIHRoaXMgbWVzYXNnZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlLmh0bWwjQWN0aW9uTWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nKSI+QWN0aW9uTWVzc2FnZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYW4gYWN0aW9uIG1lc3NhZ2Ugd2l0aCBubyByZXBsYWNlbWVudCB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sI0FjdGlvbk1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPkFjdGlvbk1lc3NhZ2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGFuIGFjdGlvbiBtZXNzYWdlIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sI0FjdGlvbk1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+QWN0aW9uTWVzc2FnZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3RbXSZuYnNwO3ZhbHVlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhbiBhY3Rpb24gbWVzc2FnZSB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCNBY3Rpb25NZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5BY3Rpb25NZXNzYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMCwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhbiBhY3Rpb24gbWVzc2FnZSB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCNBY3Rpb25NZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5BY3Rpb25NZXNzYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMCwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMSwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhbiBhY3Rpb24gbWVzc2FnZSB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCNBY3Rpb25NZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5BY3Rpb25NZXNzYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMCwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMSwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMiwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhbiBhY3Rpb24gbWVzc2FnZSB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCNnZXRLZXkoKSI+Z2V0S2V5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBtZXNzYWdlIGtleSBmb3IgdGhpcyBtZXNzYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCNnZXRWYWx1ZXMoKSI+Z2V0VmFsdWVzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSByZXBsYWNlbWVudCB2YWx1ZXMgZm9yIHRoaXMgbWVzc2FnZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImtleSI+PCEtLSAtLT48L0E+PEgzPgora2V5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5rZXk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2Uga2V5IGZvciB0aGlzIG1lc3NhZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZXMiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5PYmplY3RbXSA8Qj52YWx1ZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlcGxhY2VtZW50IHZhbHVlcyBmb3IgdGhpcyBtZXNhc2dlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvbk1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbk1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25NZXNzYWdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhbiBhY3Rpb24gbWVzc2FnZSB3aXRoIG5vIHJlcGxhY2VtZW50IHZhbHVlcy4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSBrZXkgZm9yIHRoaXMgbWVzc2FnZTwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkFjdGlvbk1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbk1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BY3Rpb25NZXNzYWdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYW4gYWN0aW9uIG1lc3NhZ2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHJlcGxhY2VtZW50IHZhbHVlcy4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSBrZXkgZm9yIHRoaXMgbWVzc2FnZTxERD48Q09ERT52YWx1ZTA8L0NPREU+IC0gRmlyc3QgcmVwbGFjZW1lbnQgdmFsdWU8L0RMPgorPEhSPgorCis8QSBOQU1FPSJBY3Rpb25NZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25NZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uTWVzc2FnZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTAsCisgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUxKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhbiBhY3Rpb24gbWVzc2FnZSB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleSBmb3IgdGhpcyBtZXNzYWdlPEREPjxDT0RFPnZhbHVlMDwvQ09ERT4gLSBGaXJzdCByZXBsYWNlbWVudCB2YWx1ZTxERD48Q09ERT52YWx1ZTE8L0NPREU+IC0gU2Vjb25kIHJlcGxhY2VtZW50IHZhbHVlPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQWN0aW9uTWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uTWVzc2FnZTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFjdGlvbk1lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwLAorICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMSwKKyAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTIpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBtZXNzYWdlIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIE1lc3NhZ2Uga2V5IGZvciB0aGlzIG1lc3NhZ2U8REQ+PENPREU+dmFsdWUwPC9DT0RFPiAtIEZpcnN0IHJlcGxhY2VtZW50IHZhbHVlPEREPjxDT0RFPnZhbHVlMTwvQ09ERT4gLSBTZWNvbmQgcmVwbGFjZW1lbnQgdmFsdWU8REQ+PENPREU+dmFsdWUyPC9DT0RFPiAtIFRoaXJkIHJlcGxhY2VtZW50IHZhbHVlPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQWN0aW9uTWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uTWVzc2FnZTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFjdGlvbk1lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwLAorICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMSwKKyAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTIsCisgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUzKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhbiBhY3Rpb24gbWVzc2FnZSB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleSBmb3IgdGhpcyBtZXNzYWdlPEREPjxDT0RFPnZhbHVlMDwvQ09ERT4gLSBGaXJzdCByZXBsYWNlbWVudCB2YWx1ZTxERD48Q09ERT52YWx1ZTE8L0NPREU+IC0gU2Vjb25kIHJlcGxhY2VtZW50IHZhbHVlPEREPjxDT0RFPnZhbHVlMjwvQ09ERT4gLSBUaGlyZCByZXBsYWNlbWVudCB2YWx1ZTxERD48Q09ERT52YWx1ZTM8L0NPREU+IC0gRm91cnRoIHJlcGxhY2VtZW50IHZhbHVlPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQWN0aW9uTWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25NZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uTWVzc2FnZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3RbXSZuYnNwO3ZhbHVlcyk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYW4gYWN0aW9uIG1lc3NhZ2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHJlcGxhY2VtZW50IHZhbHVlcy4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSBrZXkgZm9yIHRoaXMgbWVzc2FnZTxERD48Q09ERT52YWx1ZXM8L0NPREU+IC0gQXJyYXkgb2YgcmVwbGFjZW1lbnQgdmFsdWVzPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0S2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEtleTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0S2V5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBtZXNzYWdlIGtleSBmb3IgdGhpcyBtZXNzYWdlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWx1ZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWVzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdFtdIDxCPmdldFZhbHVlczwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgcmVwbGFjZW1lbnQgdmFsdWVzIGZvciB0aGlzIG1lc3NhZ2UuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FjdGlvbk1lc3NhZ2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25NZXNzYWdlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmYWJhMDEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtLmh0bWwKQEAgLTAsMCArMSwzNzkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MTAgRURUIDIwMDMgLS0+Cis8VElUTEU+CitBY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtLEFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJBY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzIEFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5FbmNsb3NpbmcgY2xhc3M6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHJvdGVjdGVkIGNsYXNzIDxCPkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorVGhpcyBjbGFzcyBpcyB1c2VkIHRvIHN0b3JlIGEgc2V0IG9mIG1lc3NhZ2VzIGFzc29jaWF0ZWQgd2l0aCBhCisgcHJvcGVydHkva2V5IGFuZCB0aGUgcG9zaXRpb24gaXQgd2FzIGluaXRpYWxseSBhZGRlZCB0byBsaXN0LgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCNpT3JkZXIiPmlPcmRlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcG9zaXRpb24gaW4gdGhlIGxpc3Qgb2YgbWVzc2FnZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuTGlzdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCNsaXN0Ij5saXN0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBsaXN0IG9mIDxjb2RlPkFjdGlvbk1lc3NhZ2U8L2NvZGU+cy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sI0FjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtKGphdmEudXRpbC5MaXN0LCBpbnQpIj5BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbTwvQT48L0I+KGphdmEudXRpbC5MaXN0Jm5ic3A7bGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO2lPcmRlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5MaXN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sI2dldExpc3QoKSI+Z2V0TGlzdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtLmh0bWwjZ2V0T3JkZXIoKSI+Z2V0T3JkZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCNzZXRMaXN0KGphdmEudXRpbC5MaXN0KSI+c2V0TGlzdDwvQT48L0I+KGphdmEudXRpbC5MaXN0Jm5ic3A7bGlzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sI3NldE9yZGVyKGludCkiPnNldE9yZGVyPC9BPjwvQj4oaW50Jm5ic3A7aU9yZGVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJsaXN0Ij48IS0tIC0tPjwvQT48SDM+CitsaXN0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkxpc3QgPEI+bGlzdDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbGlzdCBvZiA8Y29kZT5BY3Rpb25NZXNzYWdlPC9jb2RlPnMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpT3JkZXIiPjwhLS0gLS0+PC9BPjxIMz4KK2lPcmRlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGludCA8Qj5pT3JkZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHBvc2l0aW9uIGluIHRoZSBsaXN0IG9mIG1lc3NhZ2VzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtKGphdmEudXRpbC5MaXN0LCBpbnQpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtPC9CPihqYXZhLnV0aWwuTGlzdCZuYnNwO2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7aU9yZGVyKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TGlzdCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMaXN0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkxpc3QgPEI+Z2V0TGlzdDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TGlzdChqYXZhLnV0aWwuTGlzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExpc3Q8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldExpc3Q8L0I+KGphdmEudXRpbC5MaXN0Jm5ic3A7bGlzdCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9yZGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE9yZGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldE9yZGVyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRPcmRlcihpbnQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRPcmRlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0T3JkZXI8L0I+KGludCZuYnNwO2lPcmRlcik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hM2E1Njk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sCkBAIC0wLDAgKzEsNjQyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjEwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorQWN0aW9uTWVzc2FnZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcyxBY3Rpb25NZXNzYWdlcyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQWN0aW9uTWVzc2FnZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQWN0aW9uTWVzc2FnZXMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbk1lc3NhZ2VzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDs8QSBIUkVGPSIjbmVzdGVkX2NsYXNzX3N1bW1hcnkiPk5FU1RFRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBBY3Rpb25NZXNzYWdlczwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlczwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkFjdGlvbk1lc3NhZ2VzPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorPHA+QSBjbGFzcyB0aGF0IGVuY2Fwc3VsYXRlcyBtZXNzYWdlcy4gIE1lc3NhZ2VzIGNhbiBiZSBlaXRoZXIgZ2xvYmFsCisgb3IgdGhleSBhcmUgc3BlY2lmaWMgdG8gYSBwYXJ0aWN1bGFyIGJlYW4gcHJvcGVydHkuPC9wPgorCisgPHA+RWFjaCBpbmRpdmlkdWFsIG1lc3NhZ2UgaXMgZGVzY3JpYmVkIGJ5IGFuIDxjb2RlPkFjdGlvbk1lc3NhZ2U8L2NvZGU+Cisgb2JqZWN0LCB3aGljaCBjb250YWlucyBhIG1lc3NhZ2Uga2V5ICh0byBiZSBsb29rZWQgdXAgaW4gYW4gYXBwcm9wcmlhdGUKKyBtZXNzYWdlIHJlc291cmNlcyBkYXRhYmFzZSksIGFuZCB1cCB0byBmb3VyIHBsYWNlaG9sZGVyIGFyZ3VtZW50cyB1c2VkIGZvcgorIHBhcmFtZXRyaWMgc3Vic3RpdHV0aW9uIGluIHRoZSByZXN1bHRpbmcgbWVzc2FnZS48L3A+CisKKyA8cD48c3Ryb25nPklNUExFTUVOVEFUSU9OIE5PVEU8L3N0cm9uZz4gLSBJdCBpcyBhc3N1bWVkIHRoYXQgdGhlc2Ugb2JqZWN0cworIGFyZSBjcmVhdGVkIGFuZCBtYW5pcHVsYXRlZCBvbmx5IHdpdGhpbiB0aGUgY29udGV4dCBvZiBhIHNpbmdsZSB0aHJlYWQuCisgVGhlcmVmb3JlLCBubyBzeW5jaHJvbml6YXRpb24gaXMgcmVxdWlyZWQgZm9yIGFjY2VzcyB0byBpbnRlcm5hbAorIGNvbGxlY3Rpb25zLjwvcD4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+RGF2aWQgR2VhcnksIENyYWlnIFIuIE1jQ2xhbmFoYW4sIERhdmlkIFdpbnRlcmZlbGR0LCBEYXZpZCBHcmFoYW08L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJuZXN0ZWRfY2xhc3Nfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5OZXN0ZWQgQ2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCI+QWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW08L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBjbGFzcyBpcyB1c2VkIHRvIHN0b3JlIGEgc2V0IG9mIG1lc3NhZ2VzIGFzc29jaWF0ZWQgd2l0aCBhCisgcHJvcGVydHkva2V5IGFuZCB0aGUgcG9zaXRpb24gaXQgd2FzIGluaXRpYWxseSBhZGRlZCB0byBsaXN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI0dMT0JBTF9NRVNTQUdFIj5HTE9CQUxfTUVTU0FHRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgInByb3BlcnR5IG5hbWUiIG1hcmtlciB0byB1c2UgZm9yIGdsb2JhbCBtZXNzYWdlcywgYXMgb3Bwb3NlZCB0bworIHRob3NlIHJlbGF0ZWQgdG8gYSBzcGVjaWZpYyBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNpQ291bnQiPmlDb3VudDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY3VycmVudCBudW1iZXIgb2YgdGhlIHByb3BlcnR5L2tleSBiZWluZyBhZGRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNoTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYWNjdW11bGF0ZWQgc2V0IG9mIDxjb2RlPkFjdGlvbk1lc3NhZ2U8L2NvZGU+IG9iamVjdHMgKHJlcHJlc2VudGVkCisgYXMgYW4gQXJyYXlMaXN0KSBmb3IgZWFjaCBwcm9wZXJ0eSwga2V5ZWQgYnkgcHJvcGVydHkgbmFtZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI0FjdGlvbk1lc3NhZ2VzKCkiPkFjdGlvbk1lc3NhZ2VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGFuIGVtcHR5IDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPiBvYmplY3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNBY3Rpb25NZXNzYWdlcyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZXMpIj5BY3Rpb25NZXNzYWdlczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT4mbmJzcDttZXNzYWdlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbiA8Y29kZT5BY3Rpb25NZXNzYWdlczwvY29kZT4gb2JqZWN0IGluaXRpYWxpemVkIHdpdGggdGhlIGdpdmVuIAorIG1lc3NhZ2VzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwjYWRkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcykiPmFkZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT4mbmJzcDttZXNzYWdlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZHMgdGhlIG1lc3NhZ2VzIGZyb20gdGhlIGdpdmVuIDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPiBvYmplY3QgdG8KKyB0aGlzIHNldCBvZiBtZXNzYWdlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNhZGQoamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2UpIj5hZGQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHksCisgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+QWN0aW9uTWVzc2FnZTwvQT4mbmJzcDttZXNzYWdlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbWVzc2FnZSB0byB0aGUgc2V0IG9mIG1lc3NhZ2VzIGZvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI2NsZWFyKCkiPmNsZWFyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xlYXIgYWxsIG1lc3NhZ2VzIHJlY29yZGVkIGJ5IHRoaXMgb2JqZWN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sI2VtcHR5KCkiPmVtcHR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGlzRW1wdHkgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5JdGVyYXRvcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNnZXQoKSI+Z2V0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBzZXQgb2YgYWxsIHJlY29yZGVkIG1lc3NhZ2VzLCB3aXRob3V0IGRpc3RpbmN0aW9uCisgYnkgd2hpY2ggcHJvcGVydHkgdGhlIG1lc3NhZ2VzIGFyZSBhc3NvY2lhdGVkIHdpdGguPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5JdGVyYXRvcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNnZXQoamF2YS5sYW5nLlN0cmluZykiPmdldDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc2V0IG9mIG1lc3NhZ2VzIHJlbGF0ZWQgdG8gYSBzcGVjaWZpYyBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNpc0VtcHR5KCkiPmlzRW1wdHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgYXJlIG5vIG1lc3NhZ2VzIHJlY29yZGVkCisgaW4gdGhpcyBjb2xsZWN0aW9uLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gb3RoZXJ3aXNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSXRlcmF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwjcHJvcGVydGllcygpIj5wcm9wZXJ0aWVzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBzZXQgb2YgcHJvcGVydHkgbmFtZXMgZm9yIHdoaWNoIGF0IGxlYXN0IG9uZSBtZXNzYWdlIGhhcworIGJlZW4gcmVjb3JkZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNzaXplKCkiPnNpemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG51bWJlciBvZiBtZXNzYWdlcyByZWNvcmRlZCBmb3IgYWxsIHByb3BlcnRpZXMgKGluY2x1ZGluZworIGdsb2JhbCBtZXNzYWdlcykuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNzaXplKGphdmEubGFuZy5TdHJpbmcpIj5zaXplPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJHTE9CQUxfTUVTU0FHRSI+PCEtLSAtLT48L0E+PEgzPgorR0xPQkFMX01FU1NBR0U8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5HTE9CQUxfTUVTU0FHRTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgInByb3BlcnR5IG5hbWUiIG1hcmtlciB0byB1c2UgZm9yIGdsb2JhbCBtZXNzYWdlcywgYXMgb3Bwb3NlZCB0bworIHRob3NlIHJlbGF0ZWQgdG8gYSBzcGVjaWZpYyBwcm9wZXJ0eS4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzLkdMT0JBTF9NRVNTQUdFIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5IYXNoTWFwIDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhY2N1bXVsYXRlZCBzZXQgb2YgPGNvZGU+QWN0aW9uTWVzc2FnZTwvY29kZT4gb2JqZWN0cyAocmVwcmVzZW50ZWQKKyBhcyBhbiBBcnJheUxpc3QpIGZvciBlYWNoIHByb3BlcnR5LCBrZXllZCBieSBwcm9wZXJ0eSBuYW1lLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaUNvdW50Ij48IS0tIC0tPjwvQT48SDM+CitpQ291bnQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+aUNvdW50PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjdXJyZW50IG51bWJlciBvZiB0aGUgcHJvcGVydHkva2V5IGJlaW5nIGFkZGVkLiAgVGhpcyBpcyB1c2VkCisgdG8gbWFpbnRhaW4gdGhlIG9yZGVyIG1lc3NhZ2VzIGFyZSBhZGRlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJBY3Rpb25NZXNzYWdlcygpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25NZXNzYWdlczwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFjdGlvbk1lc3NhZ2VzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIGFuIGVtcHR5IDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPiBvYmplY3QuCis8UD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkFjdGlvbk1lc3NhZ2VzKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcykiPjwhLS0gLS0+PC9BPjxIMz4KK0FjdGlvbk1lc3NhZ2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uTWVzc2FnZXM8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT4mbmJzcDttZXNzYWdlcyk8L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgYW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IG9iamVjdCBpbml0aWFsaXplZCB3aXRoIHRoZSBnaXZlbiAKKyBtZXNzYWdlcy4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tZXNzYWdlczwvQ09ERT4gLSBUaGUgbWVzc2FnZXMgdG8gYmUgaW5pdGlhbGx5IGFkZGVkIHRvIHRoaXMgb2JqZWN0LgorIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSA8Y29kZT5udWxsPC9jb2RlPi48RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImFkZChqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZSkiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHksCisgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+QWN0aW9uTWVzc2FnZTwvQT4mbmJzcDttZXNzYWdlKTwvUFJFPgorPERMPgorPEREPkFkZCBhIG1lc3NhZ2UgdG8gdGhlIHNldCBvZiBtZXNzYWdlcyBmb3IgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eS4gIEFuCisgb3JkZXIgb2YgdGhlIHByb3BlcnR5L2tleSBpcyBtYWludGFpbmVkIGJhc2VkIG9uIHRoZSBpbml0aWFsIGFkZGl0aW9uCisgb2YgdGhlIHByb3BlcnR5L2tleS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJvcGVydHk8L0NPREU+IC0gUHJvcGVydHkgbmFtZSAob3IgQWN0aW9uTWVzc2FnZXMuR0xPQkFMX01FU1NBR0UpPEREPjxDT0RFPm1lc3NhZ2U8L0NPREU+IC0gVGhlIG1lc3NhZ2UgdG8gYmUgYWRkZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZXMpIj48IS0tIC0tPjwvQT48SDM+CithZGQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPkFjdGlvbk1lc3NhZ2VzPC9BPiZuYnNwO21lc3NhZ2VzKTwvUFJFPgorPERMPgorPEREPkFkZHMgdGhlIG1lc3NhZ2VzIGZyb20gdGhlIGdpdmVuIDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPiBvYmplY3QgdG8KKyB0aGlzIHNldCBvZiBtZXNzYWdlcy4gIFRoZSBtZXNzYWdlcyBhcmUgYWRkZWQgaW4gdGhlIG9yZGVyIHRoZXkgYXJlIHJldHVybmVkIGZyb20KKyB0aGUgcHJvcGVydGllcygpIG1ldGhvZC4gIElmIGEgbWVzc2FnZSdzIHByb3BlcnR5IGlzIGFscmVhZHkgaW4gdGhlIGN1cnJlbnQgCisgPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IG9iamVjdCBpdCBpcyBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0IGZvciB0aGF0CisgcHJvcGVydHkuICBJZiBhIG1lc3NhZ2UncyBwcm9wZXJ0eSBpcyBub3QgaW4gdGhlIGN1cnJlbnQgbGlzdCBpdCBpcyBhZGRlZCB0byB0aGUgZW5kIAorIG9mIHRoZSBwcm9wZXJ0aWVzLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tZXNzYWdlczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IG9iamVjdCB0byBiZSBhZGRlZC4gIAorIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSA8Y29kZT5udWxsPC9jb2RlPi48RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2xlYXIoKSI+PCEtLSAtLT48L0E+PEgzPgorY2xlYXI8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmNsZWFyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q2xlYXIgYWxsIG1lc3NhZ2VzIHJlY29yZGVkIGJ5IHRoaXMgb2JqZWN0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbXB0eSgpIj48IS0tIC0tPjwvQT48SDM+CitlbXB0eTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+ZW1wdHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgaXNFbXB0eSBpbnN0ZWFkLjwvST4KKzxQPgorPEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBhcmUgbm8gbWVzc2FnZXMgcmVjb3JkZWQKKyBpbiB0aGlzIGNvbGxlY3Rpb24sIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBvdGhlcndpc2UuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzRW1wdHkoKSI+PCEtLSAtLT48L0E+PEgzPgoraXNFbXB0eTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+aXNFbXB0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBhcmUgbm8gbWVzc2FnZXMgcmVjb3JkZWQKKyBpbiB0aGlzIGNvbGxlY3Rpb24sIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBvdGhlcndpc2UuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5JdGVyYXRvciA8Qj5nZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHNldCBvZiBhbGwgcmVjb3JkZWQgbWVzc2FnZXMsIHdpdGhvdXQgZGlzdGluY3Rpb24KKyBieSB3aGljaCBwcm9wZXJ0eSB0aGUgbWVzc2FnZXMgYXJlIGFzc29jaWF0ZWQgd2l0aC4gIElmIHRoZXJlIGFyZQorIG5vIG1lc3NhZ2VzIHJlY29yZGVkLCBhbiBlbXB0eSBlbnVtZXJhdGlvbiBpcyByZXR1cm5lZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuSXRlcmF0b3IgPEI+Z2V0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBzZXQgb2YgbWVzc2FnZXMgcmVsYXRlZCB0byBhIHNwZWNpZmljIHByb3BlcnR5LgorIElmIHRoZXJlIGFyZSBubyBzdWNoIG1lc3NhZ2VzLCBhbiBlbXB0eSBlbnVtZXJhdGlvbiBpcyByZXR1cm5lZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJvcGVydHk8L0NPREU+IC0gUHJvcGVydHkgbmFtZSAob3IgQWN0aW9uTWVzc2FnZXMuR0xPQkFMX01FU1NBR0UpPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0aWVzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnRpZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuSXRlcmF0b3IgPEI+cHJvcGVydGllczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgc2V0IG9mIHByb3BlcnR5IG5hbWVzIGZvciB3aGljaCBhdCBsZWFzdCBvbmUgbWVzc2FnZSBoYXMKKyBiZWVuIHJlY29yZGVkLiAgSWYgdGhlcmUgYXJlIG5vIG1lc3NhZ2VzLCBhbiBlbXB0eSBJdGVyYXRvciBpcyByZXR1cm5lZC4KKyBJZiB5b3UgaGF2ZSByZWNvcmRlZCBnbG9iYWwgbWVzc2FnZXMsIHRoZSBTdHJpbmcgdmFsdWUgb2YKKyA8Y29kZT5BY3Rpb25NZXNzYWdlcy5HTE9CQUxfTUVTU0FHRTwvY29kZT4gd2lsbCBiZSBvbmUgb2YgdGhlIHJldHVybmVkCisgcHJvcGVydHkgbmFtZXMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNpemUoKSI+PCEtLSAtLT48L0E+PEgzPgorc2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5zaXplPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgcmVjb3JkZWQgZm9yIGFsbCBwcm9wZXJ0aWVzIChpbmNsdWRpbmcKKyBnbG9iYWwgbWVzc2FnZXMpLiAgPHN0cm9uZz5OT1RFPC9zdHJvbmc+IC0gaXQgaXMgbW9yZSBlZmZpY2llbnQgdG8gY2FsbAorIDxjb2RlPmVtcHR5KCk8L2NvZGU+IGlmIGFsbCB5b3UgY2FyZSBhYm91dCBpcyB3aGV0aGVyIG9yIG5vdCB0aGVyZSBhcmUKKyBhbnkgbWVzc2FnZXMgYXQgYWxsLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzaXplKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPnNpemU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG51bWJlciBvZiBtZXNzYWdlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJvcGVydHk8L0NPREU+IC0gUHJvcGVydHkgbmFtZSAob3IgQWN0aW9uTWVzc2FnZXMuR0xPQkFMX01FU1NBR0UpPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb25NZXNzYWdlcy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uTWVzc2FnZXMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwOzxBIEhSRUY9IiNuZXN0ZWRfY2xhc3Nfc3VtbWFyeSI+TkVTVEVEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjOGY4YjkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbApAQCAtMCwwICsxLDE4NjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MTAgRURUIDIwMDMgLS0+Cis8VElUTEU+CitBY3Rpb25TZXJ2bGV0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCxBY3Rpb25TZXJ2bGV0IGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJBY3Rpb25TZXJ2bGV0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FjdGlvblNlcnZsZXQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25TZXJ2bGV0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBBY3Rpb25TZXJ2bGV0PC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5HZW5lcmljU2VydmxldAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0PC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuU2VydmxldCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sIj5BY3Rpb25Db21wb25lbnRTZXJ2bGV0PC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5BY3Rpb25TZXJ2bGV0PC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldDwvREw+CisKKzxQPgorPHA+PHN0cm9uZz5BY3Rpb25TZXJ2bGV0PC9zdHJvbmc+IHJlcHJlc2VudHMgdGhlICJjb250cm9sbGVyIiBpbiB0aGUKKyBNb2RlbC1WaWV3LUNvbnRyb2xsZXIgKE1WQykgZGVzaWduIHBhdHRlcm4gZm9yIHdlYiBhcHBsaWNhdGlvbnMgdGhhdCBpcworIGNvbW1vbmx5IGtub3duIGFzICJNb2RlbCAyIi4gIFRoaXMgbm9tZW5jbGF0dXJlIG9yaWdpbmF0ZWQgd2l0aCBhCisgZGVzY3JpcHRpb24gaW4gdGhlIEphdmFTZXJ2ZXJQYWdlcyBTcGVjaWZpY2F0aW9uLCB2ZXJzaW9uIDAuOTIsIGFuZCBoYXMKKyBwZXJzaXN0ZWQgZXZlciBzaW5jZSAoaW4gdGhlIGFic2VuY2Ugb2YgYSBiZXR0ZXIgbmFtZSkuPC9wPgorCisgPHA+R2VuZXJhbGx5LCBhICJNb2RlbCAyIiBhcHBsaWNhdGlvbiBpcyBhcmNoaXRlY3RlZCBhcyBmb2xsb3dzOjwvcD4KKyA8dWw+CisgPGxpPlRoZSB1c2VyIGludGVyZmFjZSB3aWxsIGdlbmVyYWxseSBiZSBjcmVhdGVkIHdpdGggSlNQIHBhZ2VzLCB3aGljaAorICAgICB3aWxsIG5vdCB0aGVtc2VsdmVzIGNvbnRhaW4gYW55IGJ1c2luZXNzIGxvZ2ljLiAgVGhlc2UgcGFnZXMgcmVwcmVzZW50CisgICAgIHRoZSAidmlldyIgY29tcG9uZW50IG9mIGFuIE1WQyBhcmNoaXRlY3R1cmUuPC9saT4KKyA8bGk+Rm9ybXMgYW5kIGh5cGVybGlua3MgaW4gdGhlIHVzZXIgaW50ZXJmYWNlIHRoYXQgcmVxdWlyZSBidXNpbmVzcyBsb2dpYworICAgICB0byBiZSBleGVjdXRlZCB3aWxsIGJlIHN1Ym1pdHRlZCB0byBhIHJlcXVlc3QgVVJJIHRoYXQgaXMgbWFwcGVkIHRvIHRoZQorICAgICBjb250cm9sbGVyIHNlcnZsZXQuPC9saT4KKyA8bGk+VGhlcmUgd2lsbCBiZSA8Yj5vbmU8L2I+IGluc3RhbmNlIG9mIHRoaXMgc2VydmxldCBjbGFzcywKKyAgICAgd2hpY2ggcmVjZWl2ZXMgYW5kIHByb2Nlc3NlcyBhbGwgcmVxdWVzdHMgdGhhdCBjaGFuZ2UgdGhlIHN0YXRlIG9mCisgICAgIGEgdXNlcidzIGludGVyYWN0aW9uIHdpdGggdGhlIGFwcGxpY2F0aW9uLiAgVGhpcyBjb21wb25lbnQgcmVwcmVzZW50cworICAgICB0aGUgImNvbnRyb2xsZXIiIGNvbXBvbmVudCBvZiBhbiBNVkMgYXJjaGl0ZWN0dXJlLjwvbGk+CisgPGxpPlRoZSBjb250cm9sbGVyIHNlcnZsZXQgd2lsbCBzZWxlY3QgYW5kIGludm9rZSBhbiBhY3Rpb24gY2xhc3MgdG8gcGVyZm9ybQorICAgICB0aGUgcmVxdWVzdGVkIGJ1c2luZXNzIGxvZ2ljLjwvbGk+CisgPGxpPlRoZSBhY3Rpb24gY2xhc3NlcyB3aWxsIG1hbmlwdWxhdGUgdGhlIHN0YXRlIG9mIHRoZSBhcHBsaWNhdGlvbidzCisgICAgIGludGVyYWN0aW9uIHdpdGggdGhlIHVzZXIsIHR5cGljYWxseSBieSBjcmVhdGluZyBvciBtb2RpZnlpbmcgSmF2YUJlYW5zCisgICAgIHRoYXQgYXJlIHN0b3JlZCBhcyByZXF1ZXN0IG9yIHNlc3Npb24gYXR0cmlidXRlcyAoZGVwZW5kaW5nIG9uIGhvdyBsb25nCisgICAgIHRoZXkgbmVlZCB0byBiZSBhdmFpbGFibGUpLiAgU3VjaCBKYXZhQmVhbnMgcmVwcmVzZW50IHRoZSAibW9kZWwiCisgICAgIGNvbXBvbmVudCBvZiBhbiBNVkMgYXJjaGl0ZWN0dXJlLjwvbGk+CisgPGxpPkluc3RlYWQgb2YgcHJvZHVjaW5nIHRoZSBuZXh0IHBhZ2Ugb2YgdGhlIHVzZXIgaW50ZXJmYWNlIGRpcmVjdGx5LAorICAgICBhY3Rpb24gY2xhc3NlcyB3aWxsIGdlbmVyYWxseSB1c2UgdGhlCisgICAgIDxjb2RlPlJlcXVlc3REaXNwYXRjaGVyLmZvcndhcmQoKTwvY29kZT4gZmFjaWxpdHkgb2YgdGhlIHNlcnZsZXQgQVBJCisgICAgIHRvIHBhc3MgY29udHJvbCB0byBhbiBhcHByb3ByaWF0ZSBKU1AgcGFnZSB0byBwcm9kdWNlIHRoZSBuZXh0IHBhZ2UKKyAgICAgb2YgdGhlIHVzZXIgaW50ZXJmYWNlLjwvbGk+CisgPC91bD4KKworIDxwPlRoZSBzdGFuZGFyZCB2ZXJzaW9uIG9mIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+IGltcGxlbWVudHMgdGhlCisgICAgZm9sbG93aW5nIGxvZ2ljIGZvciBlYWNoIGluY29taW5nIEhUVFAgcmVxdWVzdC4gIFlvdSBjYW4gb3ZlcnJpZGUKKyAgICBzb21lIG9yIGFsbCBvZiB0aGlzIGZ1bmN0aW9uYWxpdHkgYnkgc3ViY2xhc3NpbmcgdGhpcyBzZXJ2bGV0IGFuZAorICAgIGltcGxlbWVudGluZyB5b3VyIG93biB2ZXJzaW9uIG9mIHRoZSBwcm9jZXNzaW5nLjwvcD4KKyA8dWw+CisgPGxpPklkZW50aWZ5LCBmcm9tIHRoZSBpbmNvbWluZyByZXF1ZXN0IFVSSSwgdGhlIHN1YnN0cmluZyB0aGF0IHdpbGwgYmUKKyAgICAgdXNlZCB0byBzZWxlY3QgYW4gYWN0aW9uIHByb2NlZHVyZS48L2xpPgorIDxsaT5Vc2UgdGhpcyBzdWJzdHJpbmcgdG8gbWFwIHRvIHRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgYWN0aW9uIGNsYXNzIChhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPiBpbnRlcmZhY2UpLgorICAgICA8L2xpPgorIDxsaT5JZiB0aGlzIGlzIHRoZSBmaXJzdCByZXF1ZXN0IGZvciBhIHBhcnRpY3VsYXIgYWN0aW9uIGNsYXNzLCBpbnN0YW50aWF0ZQorICAgICBhbiBpbnN0YW5jZSBvZiB0aGF0IGNsYXNzIGFuZCBjYWNoZSBpdCBmb3IgZnV0dXJlIHVzZS48L2xpPgorIDxsaT5PcHRpb25hbGx5IHBvcHVsYXRlIHRoZSBwcm9wZXJ0aWVzIG9mIGFuIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4KKyAgICAgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFwcGluZy48L2xpPgorIDxsaT5DYWxsIHRoZSA8Y29kZT5leGVjdXRlPC9jb2RlPiBtZXRob2Qgb2YgdGhpcyBhY3Rpb24gY2xhc3MsIHBhc3NpbmcKKyAgICAgb24gYSByZWZlcmVuY2UgdG8gdGhlIG1hcHBpbmcgdGhhdCB3YXMgdXNlZCAodGhlcmVieSBwcm92aWRpbmcgYWNjZXNzCisgICAgIHRvIHRoZSB1bmRlcmx5aW5nIEFjdGlvblNlcnZsZXQgYW5kIFNlcnZsZXRDb250ZXh0LCBhcyB3ZWxsIGFzIGFueQorICAgICBzcGVjaWFsaXplZCBwcm9wZXJ0aWVzIG9mIHRoZSBtYXBwaW5nIGl0c2VsZiksIGFuZCB0aGUgcmVxdWVzdCBhbmQKKyAgICAgcmVzcG9uc2UgdGhhdCB3ZXJlIHBhc3NlZCB0byB0aGUgY29udHJvbGxlciBieSB0aGUgc2VydmxldCBjb250YWluZXIuCisgICAgIDwvbGk+CisgPC91bD4KKworIDxwPlRoZSBzdGFuZGFyZCB2ZXJzaW9uIG9mIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+IGlzIGNvbmZpZ3VyZWQgYmFzZWQKKyBvbiB0aGUgZm9sbG93aW5nIHNlcnZsZXQgaW5pdGlhbGl6YXRpb24gcGFyYW1ldGVycywgd2hpY2ggeW91IHdpbGwgc3BlY2lmeQorIGluIHRoZSB3ZWIgYXBwbGljYXRpb24gZGVwbG95bWVudCBkZXNjcmlwdG9yICg8Y29kZT4vV0VCLUlORi93ZWIueG1sPC9jb2RlPikKKyBmb3IgeW91ciBhcHBsaWNhdGlvbi4gIFN1YmNsYXNzZXMgdGhhdCBzcGVjaWFsaXplIHRoaXMgc2VydmxldCBhcmUgZnJlZSB0bworIGRlZmluZSBhZGRpdGlvbmFsIGluaXRpYWxpemF0aW9uIHBhcmFtZXRlcnMuIFNldmVyYWwgb2YgdGhlc2Ugd2VyZQorIGRlcHJlY2F0ZWQgYmV0d2VlbiB0aGUgMS4wIGFuZCAxLjEgcmVsZWFzZXMuIFRoZSBkZXByZWNhdGVkIHBhcmFtZXRlcnMKKyBhcmUgbGlzdGVkIGFmdGVyIHRoZSBub21pbmFsIHBhcmFtZXRlcnMuPC9wPgorIDx1bD4KKyA8bGk+PHN0cm9uZz5jb25maWc8L3N0cm9uZz4gLSBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb250ZXh0LXJlbGF0aXZlCisgICAgIHBhdGgocykgdG8gdGhlIFhNTCByZXNvdXJjZShzKSBjb250YWluaW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uCisgICAgIGZvciB0aGUgZGVmYXVsdCBtb2R1bGUuICAoTXVsdGlwbGUgZmlsZXMgc3VwcG9ydCBzaW5jZSBTdHJ1dHMgMS4xKQorICAgICBbL1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWxdLjwvbGk+CisgPGxpPjxzdHJvbmc+Y29uZmlnLyR7bW9kdWxlfTwvc3Ryb25nPiAtIENvbW1hLXNlcGFyYXRlZCBsaXN0IG9mCisgICAgIENvbnRleHQtcmVsYXRpdmUgcGF0aChzKSB0byB0aGUgWE1MIHJlc291cmNlKHMpCisgICAgIGNvbnRhaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gZm9yIHRoZSBtb2R1bGUgdGhhdAorICAgICB3aWxsIHVzZSB0aGUgc3BlY2lmaWVkIHByZWZpeCAoLyR7bW9kdWxlfSkuIFRoaXMgY2FuIGJlIHJlcGVhdGVkIGFzIG1hbnkKKyAgICAgdGltZXMgYXMgcmVxdWlyZWQgZm9yIG11bHRpcGxlIG1vZHVsZXMuIChTaW5jZSBTdHJ1dHMgMS4xKTwvbGk+CisgPGxpPjxzdHJvbmc+Y29udmVydE51bGw8L3N0cm9uZz4gLSBGb3JjZSBzaW11bGF0aW9uIG9mIHRoZSBTdHJ1dHMgMS4wIGJlaGF2aW9yCisgICAgIHdoZW4gcG9wdWxhdGluZyBmb3Jtcy4gSWYgc2V0IHRvIHRydWUsIHRoZSBudW1lcmljIEphdmEgd3JhcHBlciBjbGFzcyB0eXBlcworICAgICAobGlrZSA8Y29kZT5qYXZhLmxhbmcuSW50ZWdlcjwvY29kZT4pIHdpbGwgZGVmYXVsdCB0byBudWxsIChyYXRoZXIgdGhhbiAwKS4KKyAgICAgKFNpbmNlIFN0cnV0cyAxLjEpIFtmYWxzZV0gPC9saT4KKyA8bGk+PHN0cm9uZz5ydWxlc2V0czwvc3Ryb25nPiAtIENvbW1hLWRlbGltaXRlZCBsaXN0IG9mIGZ1bGx5IHF1YWxpZmllZAorICAgICBjbGFzc25hbWVzIG9mIGFkZGl0aW9uYWwgPGNvZGU+b3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLlJ1bGVTZXQ8L2NvZGU+CisgICAgIGluc3RhbmNlcyB0aGF0IHNob3VsZCBiZSBhZGRlZCB0byB0aGUgPGNvZGU+RGlnZXN0ZXI8L2NvZGU+IHRoYXQgd2lsbAorICAgICBiZSBwcm9jZXNzaW5nIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPiBmaWxlcy4gIEJ5IGRlZmF1bHQsIG9ubHkKKyAgICAgdGhlIDxjb2RlPlJ1bGVTZXQ8L2NvZGU+IGZvciB0aGUgc3RhbmRhcmQgY29uZmlndXJhdGlvbiBlbGVtZW50cyBpcworICAgICBsb2FkZWQuICAoU2luY2UgU3RydXRzIDEuMSk8L2xpPgorIDxsaT48c3Ryb25nPnZhbGlkYXRpbmc8L3N0cm9uZz4gLSBTaG91bGQgd2UgdXNlIGEgdmFsaWRhdGluZyBYTUwgcGFyc2VyIHRvCisgICAgIHByb2Nlc3MgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSAoc3Ryb25nbHkgcmVjb21tZW5kZWQpPyBbdHJ1ZV08L2xpPgorIDwvdWw+CisgPHA+VGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzIG1heSBzdGlsbCBiZSB1c2VkIHdpdGggdGhlIFN0cnV0cyAxLjEgcmVsZWFzZSBidXQKKyBhcmUgPGI+ZGVwcmVjYXRlZDwvYj4uCisgPHVsPgorIDxsaT48c3Ryb25nPmFwcGxpY2F0aW9uPC9zdHJvbmc+IC0gSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbgorICAgICByZXNvdXJjZXMgYnVuZGxlIGJhc2UgY2xhc3MuICBbTk9ORV0KKyAgICAgPGVtPkRFUFJFQ0FURUQgLSBDb25maWd1cmUgdGhpcyB1c2luZyB0aGUgInBhcmFtZXRlciIgYXR0cmlidXRlCisgICAgIG9mIHRoZSAmbHQ7bWVzc2FnZS1yZXNvdXJjZXMmZ3Q7IGVsZW1lbnQuPC9lbT48L2xpPgorIDxsaT48c3Ryb25nPmJ1ZmZlclNpemU8L3N0cm9uZz4gLSBUaGUgc2l6ZSBvZiB0aGUgaW5wdXQgYnVmZmVyIHVzZWQgd2hlbgorICAgICBwcm9jZXNzaW5nIGZpbGUgdXBsb2Fkcy4gIFs0MDk2XQorICAgICA8ZW0+REVQUkVDQVRFRCAtIENvbmZpZ3VyZSB0aGlzIHVzaW5nIHRoZSAiYnVmZmVyU2l6ZSIgYXR0cmlidXRlCisgICAgIG9mIHRoZSAmbHQ7Y29udHJvbGxlciZndDsgZWxlbWVudC48L2VtPjwvbGk+CisgPGxpPjxzdHJvbmc+Y29udGVudDwvc3Ryb25nPiAtIERlZmF1bHQgY29udGVudCB0eXBlIGFuZCBjaGFyYWN0ZXIgZW5jb2RpbmcKKyAgICAgdG8gYmUgc2V0IG9uIGVhY2ggcmVzcG9uc2U7IG1heSBiZSBvdmVycmlkZGVuIGJ5IGEgZm9yd2FyZGVkLXRvCisgICAgIHNlcnZsZXQgb3IgSlNQIHBhZ2UuICBbdGV4dC9odG1sXQorICAgICA8ZW0+REVQUkVDQVRFRCAtIENvbmZpZ3VyZSB0aGlzIHVzaW5nIHRoZSAiY29udGVudFR5cGUiIGF0dHJpYnV0ZQorICAgICBvZiB0aGUgJmx0O2NvbnRyb2xsZXImZ3Q7IGVsZW1lbnQuPC9lbT48L2xpPgorIDxsaT48c3Ryb25nPmRlYnVnPC9zdHJvbmc+IC0gVFRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIHRoYXQgY29udHJvbHMgaG93IG11Y2gKKyAgICAgaW5mb3JtYXRpb24gaXMgbG9nZ2VkIGZvciB0aGlzIHNlcnZsZXQuIEFjY2VwdHMgdmFsdWVzIDAgKG9mZikgYW5kIGZyb20KKyAgICAgMSAobGVhc3Qgc2VyaW91cykgdGhyb3VnaCA2IChtb3N0IHNlcmlvdXMpLiBbMF0KKyAgICAgPGVtPkRFUFJFQ0FURUQgLSBDb25maWd1cmUgdGhlIGxvZ2dpbmcgZGV0YWlsIGxldmVsIGluIHlvdXIKKyAgICAgdW5kZXJseWluZyBsb2dnaW5nIGltcGxlbWVudGF0aW9uLjwvZW0+PC9saT4KKyA8bGk+PHN0cm9uZz5mYWN0b3J5PC9zdHJvbmc+IC0gVGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUKKyAgICAgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IHVzZWQgdG8gY3JlYXRlIHRoZSBhcHBsaWNhdGlvbgorICAgICA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBvYmplY3QuCisgICAgIFtvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnldCisgICAgIDxlbT5ERVBSRUNBVEVEIC0gQ29uZmlndXJlIHRoaXMgdXNpbmcgdGhlICJmYWN0b3J5IiBhdHRyaWJ1dGUKKyAgICAgb2YgdGhlICZsdDttZXNzYWdlLXJlc291cmNlcyZndDsgZWxlbWVudC48L2VtPjwvbGk+CisgPGxpPjxzdHJvbmc+Zm9ybUJlYW48L3N0cm9uZz4gLSBUaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBBY3Rpb25Gb3JtQmVhbgorICAgICBpbXBsZW1lbnRhdGlvbiB0byB1c2UgW29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbl0uCisgICAgIDxlbT5ERVBSRUNBVEVEIC0gQ29uZmlndXJlIHRoaXMgdXNpbmcgdGhlICJjbGFzc05hbWUiIGF0dHJpYnV0ZQorICAgICBvZiBlYWNoICZsdDtmb3JtLWJlYW4mZ3Q7IGVsZW1lbnQuPC9lbT48L2xpPgorIDxsaT48c3Ryb25nPmZvcndhcmQ8L3N0cm9uZz4gLSBUaGUgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBBY3Rpb25Gb3J3YXJkCisgICAgIGltcGxlbWVudGF0aW9uIHRvIHVzZSBbb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmRdLgorICAgICBUd28gY29udmVuaWVudCBjbGFzc2VzIHlvdSBtYXkgd2lzaCB0byB1c2UgYXJlOgorICAgICA8dWw+CisgICAgIDxsaT48ZW0+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkPC9lbT4gLQorICAgICAgICAgU3ViY2xhc3Mgb2YgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ8L2NvZGU+CisgICAgICAgICB0aGF0IGRlZmF1bHRzIHRoZSA8Y29kZT5yZWRpcmVjdDwvY29kZT4gcHJvcGVydHkgdG8KKyAgICAgICAgIDxjb2RlPmZhbHNlPC9jb2RlPiAoc2FtZSBhcyB0aGUgQWN0aW9uRm9yd2FyZCBkZWZhdWx0IHZhbHVlKS4KKyAgICAgPGxpPjxlbT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9lbT4gLQorICAgICAgICAgU3ViY2xhc3Mgb2YgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ8L2NvZGU+CisgICAgICAgICB0aGF0IGRlZmF1bHRzIHRoZSA8Y29kZT5yZWRpcmVjdDwvY29kZT4gcHJvcGVydHkgdG8KKyAgICAgICAgIDxjb2RlPnRydWU8L2NvZGU+LgorICAgICA8L3VsPgorICAgICA8ZW0+REVQUkVDQVRFRCAtIENvbmZpZ3VyZSB0aGlzIHVzaW5nIHRoZSAiY2xhc3NOYW1lIiBhdHRyaWJ1dGUgb2YKKyAgICAgZWFjaCAmbHQ7Zm9yd2FyZCZndDsgZWxlbWVudC48L2VtPjwvbGk+CisgPGxpPjxzdHJvbmc+bG9jYWxlPC9zdHJvbmc+IC0gSWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBhbmQgdGhlcmUgaXMgYQorICAgICB1c2VyIHNlc3Npb24sIGlkZW50aWZ5IGFuZCBzdG9yZSBhbiBhcHByb3ByaWF0ZQorICAgICA8Y29kZT5qYXZhLnV0aWwuTG9jYWxlPC9jb2RlPiBvYmplY3QgKHVuZGVyIHRoZSBzdGFuZGFyZCBrZXkKKyAgICAgaWRlbnRpZmllZCBieSA8Y29kZT5HbG9iYWxzLkxPQ0FMRV9LRVk8L2NvZGU+KSBpbiB0aGUgdXNlcidzIHNlc3Npb24KKyAgICAgaWYgdGhlcmUgaXMgbm90IGEgTG9jYWxlIG9iamVjdCB0aGVyZSBhbHJlYWR5LiBbdHJ1ZV0KKyAgICAgPGVtPkRFUFJFQ0FURUQgLSBDb25maWd1cmUgdGhpcyB1c2luZyB0aGUgImxvY2FsZSIgYXR0cmlidXRlIG9mCisgICAgIHRoZSAmbHQ7Y29udHJvbGxlciZndDsgZWxlbWVudC48L2VtPjwvbGk+CisgPGxpPjxzdHJvbmc+bWFwcGluZzwvc3Ryb25nPiAtIFRoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIEFjdGlvbk1hcHBpbmcKKyAgICAgaW1wbGVtZW50YXRpb24gdG8gdXNlIFtvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZ10uCisgICAgIFR3byBjb252ZW5pZW50IGNsYXNzZXMgeW91IG1heSB3aXNoIHRvIHVzZSBhcmU6CisgICAgIDx1bD4KKyAgICAgPGxpPjxlbT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdEFjdGlvbk1hcHBpbmc8L2VtPiAtIFN1YmNsYXNzCisgICAgICAgICBvZiA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzwvY29kZT4gdGhhdAorICAgICAgICAgZGVmYXVsdHMgdGhlIDxjb2RlPnNjb3BlPC9jb2RlPiBwcm9wZXJ0eSB0byAicmVxdWVzdCIuCisgICAgIDxsaT48ZW0+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlNlc3Npb25BY3Rpb25NYXBwaW5nPC9lbT4gLSBTdWJjbGFzcworICAgICAgICAgb2YgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc8L2NvZGU+IHRoYXQKKyAgICAgICAgIGRlZmF1bHRzIHRoZSA8Y29kZT5zY29wZTwvY29kZT4gcHJvcGVydHkgdG8gInNlc3Npb24iLiAgKFNhbWUKKyAgICAgICAgIGFzIHRoZSBBY3Rpb25NYXBwaW5nIGRlZmF1bHQgdmFsdWUpLgorICAgICA8L3VsPgorICAgICA8ZW0+REVQUkVDQVRFRCAtIENvbmZpZ3VyZSB0aGlzIHVzaW5nIHRoZSAiY2xhc3NOYW1lIiBhdHRyaWJ1dGUgb2YKKyAgICAgZWFjaCAmbHQ7YWN0aW9uJmd0OyBlbGVtZW50LCBvciBnbG9iYWxseSBmb3IgYSBtb2R1bGUgYnkgdXNpbmcgdGhlCisgICAgICJ0eXBlIiBhdHRyaWJ1dGUgb2YgdGhlICZsdDthY3Rpb24tbWFwcGluZ3MmZ3Q7IGVsZW1lbnQuPC9lbT48L2xpPgorIDxsaT48c3Ryb25nPm1heEZpbGVTaXplPC9zdHJvbmc+IC0gVGhlIG1heGltdW0gc2l6ZSAoaW4gYnl0ZXMpIG9mIGEgZmlsZQorICAgICB0byBiZSBhY2NlcHRlZCBhcyBhIGZpbGUgdXBsb2FkLiAgQ2FuIGJlIGV4cHJlc3NlZCBhcyBhIG51bWJlciBmb2xsb3dlZAorICAgICBieSBhICJLIiAiTSIsIG9yICJHIiwgd2hpY2ggYXJlIGludGVycHJldGVkIHRvIG1lYW4ga2lsb2J5dGVzLAorICAgICBtZWdhYnl0ZXMsIG9yIGdpZ2FieXRlcywgcmVzcGVjdGl2ZWx5LiAgWzI1ME1dCisgICAgIDxlbT5ERVBSRUNBVEVEIC0gQ29uZmlndXJlIHRoaXMgdXNpbmcgdGhlICJtYXhGaWxlU2l6ZSIgYXR0cmlidXRlIG9mCisgICAgIHRoZSAmbHQ7Y29udHJvbGxlciZndDsgZWxlbWVudC48L2VtPjwvbGk+CisgPGxpPjxzdHJvbmc+bXVsdGlwYXJ0Q2xhc3M8L3N0cm9uZz4gLSBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlCisgICAgIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyIGltcGxlbWVudGF0aW9uIGNsYXNzIHRvIGJlIHVzZWQgZm9yIHByb2Nlc3NpbmcKKyAgICAgZmlsZSB1cGxvYWRzLiBJZiBzZXQgdG8gPGNvZGU+bm9uZTwvY29kZT4sIGRpc2FibGVzIFN0cnV0cyBtdWx0aXBhcnQKKyAgICAgcmVxdWVzdCBoYW5kbGluZy4gIFtvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyXQorICAgICA8ZW0+REVQUkVDQVRFRCAtIENvbmZpZ3VyZSB0aGlzIHVzaW5nIHRoZSAibXVsdGlwYXJ0Q2xhc3MiIGF0dHJpYnV0ZSBvZgorICAgICB0aGUgJmx0O2NvbnRyb2xsZXImZ3Q7IGVsZW1lbnQuPC9lbT48L2xpPgorIDxsaT48c3Ryb25nPm5vY2FjaGU8L3N0cm9uZz4gLSBJZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIGFkZCBIVFRQIGhlYWRlcnMKKyAgICAgdG8gZXZlcnkgcmVzcG9uc2UgaW50ZW5kZWQgdG8gZGVmZWF0IGJyb3dzZXIgY2FjaGluZyBvZiBhbnkgcmVzcG9uc2Ugd2UKKyAgICAgZ2VuZXJhdGUgb3IgZm9yd2FyZCB0by4gIFtmYWxzZV0KKyAgICAgPGVtPkRFUFJFQ0FURUQgLSBDb25maWd1cmUgdGhpcyB1c2luZyB0aGUgIm5vY2FjaGUiIGF0dHJpYnV0ZSBvZgorICAgICB0aGUgJmx0O2NvbnRyb2xsZXImZ3Q7IGVsZW1lbnQuPC9lbT48L2xpPgorIDxsaT48c3Ryb25nPm51bGw8L3N0cm9uZz4gLSBJZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIHNldCBvdXIgYXBwbGljYXRpb24KKyAgICAgcmVzb3VyY2VzIHRvIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPiBpZiBhbiB1bmtub3duIG1lc3NhZ2Uga2V5IGlzIHVzZWQuCisgICAgIE90aGVyd2lzZSwgYW4gZXJyb3IgbWVzc2FnZSBpbmNsdWRpbmcgdGhlIG9mZmVuZGluZyBtZXNzYWdlIGtleSB3aWxsCisgICAgIGJlIHJldHVybmVkLiAgW3RydWVdCisgICAgIDxlbT5ERVBSRUNBVEVEIC0gQ29uZmlndXJlIHRoaXMgdXNpbmcgdGhlICJudWxsIiBhdHRyaWJ1dGUgb2YKKyAgICAgdGhlICZsdDttZXNzYWdlLXJlc291cmNlcyZndDsgZWxlbWVudC48L2VtPjwvbGk+CisgPGxpPjxzdHJvbmc+dGVtcERpcjwvc3Ryb25nPiAtIFRoZSB0ZW1wb3Jhcnkgd29ya2luZyBkaXJlY3RvcnkgdG8gdXNlIHdoZW4KKyAgICAgcHJvY2Vzc2luZyBmaWxlIHVwbG9hZHMuICBbVGhlIHdvcmtpbmcgZGlyZWN0b3J5IHByb3ZpZGVkIHRvIHRoaXMgd2ViCisgICAgIGFwcGxpY2F0aW9uIGFzIGEgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZV0KKyAgICAgPGVtPkRFUFJFQ0FURUQgLSBDb25maWd1cmUgdGhpcyB1c2luZyB0aGUgInRlbXBEaXIiIGF0dHJpYnV0ZSBvZgorICAgICB0aGUgJmx0O2NvbnRyb2xsZXImZ3Q7IGVsZW1lbnQuPC9lbT48L2xpPgorIDwvdWw+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuLCBUZWQgSHVzdGVkLCBNYXJ0aW4gQ29vcGVyLCBEYXZpZCBHcmFoYW08L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2NvbmZpZyI+Y29uZmlnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGNvbnRleHQtcmVsYXRpdmUgcGF0aChzKSB0byBvdXIgY29uZmlndXJhdGlvbgorIHJlc291cmNlKHMpIGZvciB0aGUgZGVmYXVsdCBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuRGlnZXN0ZXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNjb25maWdEaWdlc3RlciI+Y29uZmlnRGlnZXN0ZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIERpZ2VzdGVyIHVzZWQgdG8gcHJvZHVjZSBNb2R1bGVDb25maWcgb2JqZWN0cyBmcm9tIGEKKyBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2NvbnZlcnROdWxsIj5jb252ZXJ0TnVsbDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZmxhZyB0byByZXF1ZXN0IGJhY2t3YXJkcy1jb21wYXRpYmxlIGNvbnZlcnNpb25zIGZvciBmb3JtIGJlYW4KKyBwcm9wZXJ0aWVzIG9mIHRoZSBKYXZhIHdyYXBwZXIgY2xhc3MgdHlwZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnMuRmFzdEhhc2hNYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkYXRhU291cmNlcyI+ZGF0YVNvdXJjZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEpEQkMgZGF0YSBzb3VyY2VzIHRoYXQgaGFzIGJlZW4gY29uZmlndXJlZCBmb3IgdGhpcyBtb2R1bGUsCisgaWYgYW55LCBrZXllZCBieSB0aGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSB1bmRlciB3aGljaCB0aGV5IGFyZQorIHN0b3JlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2RlYnVnIj5kZWJ1ZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST48L0k+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbnRlcm5hbCI+aW50ZXJuYWw8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlc291cmNlcyBvYmplY3QgZm9yIG91ciBpbnRlcm5hbCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW50ZXJuYWxOYW1lIj5pbnRlcm5hbE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEphdmEgYmFzZSBuYW1lIG9mIG91ciBpbnRlcm5hbCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNsb2ciPmxvZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3Byb2Nlc3NvciI+cHJvY2Vzc29yPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSA8Y29kZT5SZXF1ZXN0UHJvY2Vzc29yPC9jb2RlPiBpbnN0YW5jZSB3ZSB3aWxsIHVzZSB0byBwcm9jZXNzCisgYWxsIGluY29taW5nIHJlcXVlc3RzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZ1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjcmVnaXN0cmF0aW9ucyI+cmVnaXN0cmF0aW9uczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2V0IG9mIHB1YmxpYyBpZGVudGlmaWVycywgYW5kIGNvcnJlc3BvbmRpbmcgcmVzb3VyY2UgbmFtZXMsIGZvcgorIHRoZSB2ZXJzaW9ucyBvZiB0aGUgY29uZmlndXJhdGlvbiBmaWxlIERURHMgdGhhdCB3ZSBrbm93IGFib3V0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3NlcnZsZXRNYXBwaW5nIj5zZXJ2bGV0TWFwcGluZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgVVJMIHBhdHRlcm4gdG8gd2hpY2ggd2UgYXJlIG1hcHBlZCBpbiBvdXIgd2ViIGFwcGxpY2F0aW9uCisgZGVwbG95bWVudCBkZXNjcmlwdG9yLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3NlcnZsZXROYW1lIj5zZXJ2bGV0TmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2VydmxldCBuYW1lIHVuZGVyIHdoaWNoIHdlIGFyZSByZWdpc3RlcmVkIGluIG91ciB3ZWIgYXBwbGljYXRpb24KKyBkZXBsb3ltZW50IGRlc2NyaXB0b3IuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI0FjdGlvblNlcnZsZXQoKSI+QWN0aW9uU2VydmxldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNhZGRTZXJ2bGV0TWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+YWRkU2VydmxldE1hcHBpbmc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2VydmxldE5hbWUsCisgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJsUGF0dGVybik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbWVtYmVyIGEgc2VydmxldCBtYXBwaW5nIGZyb20gb3VyIHdlYiBhcHBsaWNhdGlvbiBkZXBsb3ltZW50CisgZGVzY3JpcHRvciwgaWYgaXQgaXMgZm9yIHRoaXMgc2VydmxldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVmYXVsdENvbnRyb2xsZXJDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmRlZmF1bHRDb250cm9sbGVyQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+V2lsbCBiZSByZW1vdmVkIGluIGEgcmVsZWFzZSBhZnRlciBTdHJ1dHMgMS4xLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVmYXVsdEZvcm1CZWFuc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+ZGVmYXVsdEZvcm1CZWFuc0NvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPldpbGwgYmUgcmVtb3ZlZCBpbiBhIHJlbGVhc2UgYWZ0ZXIgU3RydXRzIDEuMS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2RlZmF1bHRGb3J3YXJkc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+ZGVmYXVsdEZvcndhcmRzQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+V2lsbCBiZSByZW1vdmVkIGluIGEgcmVsZWFzZSBhZnRlciBTdHJ1dHMgMS4xLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVmYXVsdE1hcHBpbmdzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5kZWZhdWx0TWFwcGluZ3NDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5XaWxsIGJlIHJlbW92ZWQgaW4gYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjEuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZWZhdWx0TWVzc2FnZVJlc291cmNlc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+ZGVmYXVsdE1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5XaWxsIGJlIHJlbW92ZWQgaW4gYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjEuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVzdHJveSgpIj5kZXN0cm95PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R3JhY2VmdWxseSBzaHV0IGRvd24gdGhpcyBjb250cm9sbGVyIHNlcnZsZXQsIHJlbGVhc2luZyBhbnkgcmVzb3VyY2VzCisgdGhhdCB3ZXJlIGFsbG9jYXRlZCBhdCBpbml0aWFsaXphdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZXN0cm95QXBwbGljYXRpb25zKCkiPmRlc3Ryb3lBcHBsaWNhdGlvbnM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5yZXBsYWNlZCBieSBkZXN0cm95TW9kdWxlcygpPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2Rlc3Ryb3lDb25maWdEaWdlc3RlcigpIj5kZXN0cm95Q29uZmlnRGlnZXN0ZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHcmFjZWZ1bGx5IHJlbGVhc2UgYW55IGNvbmZpZ0RpZ2VzdGVyIGluc3RhbmNlIHRoYXQgd2UgaGF2ZSBjcmVhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2Rlc3Ryb3lEYXRhU291cmNlcygpIj5kZXN0cm95RGF0YVNvdXJjZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5XaWxsIG5vIGxvbmdlciBiZSByZXF1aXJlZCB3aXRoIG1vZHVsZSBzdXBwb3J0PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2Rlc3Ryb3lJbnRlcm5hbCgpIj5kZXN0cm95SW50ZXJuYWw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHcmFjZWZ1bGx5IHRlcm1pbmF0ZSB1c2Ugb2YgdGhlIGludGVybmFsIE1lc3NhZ2VSZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVzdHJveU1vZHVsZXMoKSI+ZGVzdHJveU1vZHVsZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHcmFjZWZ1bGx5IHRlcm1pbmF0ZSB1c2Ugb2YgYW55IG1vZHVsZXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMKKyBhcHBsaWNhdGlvbiAoaWYgYW55KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2RvR2V0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZG9HZXQ8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIGFuIEhUVFAgIkdFVCIgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2RvUG9zdChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmRvUG9zdDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIGFuIEhUVFAgIlBPU1QiIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmF4LnNxbC5EYXRhU291cmNlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZmluZERhdGFTb3VyY2UoamF2YS5sYW5nLlN0cmluZykiPmZpbmREYXRhU291cmNlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkxvb2sgdXAgZGF0YSBzb3VyY2VzIGRpcmVjdGx5IGluIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZmluZEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9ybUJlYW48L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IE1vZHVsZUNvbmZpZy5maW5kRm9ybUJlYW5Db25maWcoKTwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNmaW5kRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcndhcmQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IE1vZHVsZUNvbmZpZy5maW5kRm9yd2FyZENvbmZpZygpPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ZpbmRNYXBwaW5nKGphdmEubGFuZy5TdHJpbmcpIj5maW5kTWFwcGluZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgTW9kdWxlQ29uZmlnLmZpbmRBY3Rpb25Db25maWcoKTwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BcHBsaWNhdGlvbkNvbmZpZy5odG1sIj5BcHBsaWNhdGlvbkNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRBcHBsaWNhdGlvbkNvbmZpZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0QXBwbGljYXRpb25Db25maWc8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldE1vZHVsZUNvbmZpZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+Z2V0TW9kdWxlQ29uZmlnKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZ2V0RGVidWcoKSI+Z2V0RGVidWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Db25maWd1cmUgdGhlIGxvZ2dpbmcgZGV0YWlsIGxldmVsIGluIHlvdXIgdW5kZXJseWluZworICBsb2dnaW5nIGltcGxlbWVudGF0aW9uPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRJbnRlcm5hbCgpIj5nZXRJbnRlcm5hbDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW5zdGFuY2UgY29udGFpbmluZyBvdXIKKyBpbnRlcm5hbCBtZXNzYWdlIHN0cmluZ3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRNb2R1bGVDb25maWcoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldE1vZHVsZUNvbmZpZzwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBtb2R1bGUgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQKKyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldFJlcXVlc3RQcm9jZXNzb3Iob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmdldFJlcXVlc3RQcm9jZXNzb3I8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb29rIHVwIGFuZCByZXR1cm4gdGhlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPjxDT0RFPlJlcXVlc3RQcm9jZXNzb3I8L0NPREU+PC9BPiByZXNwb25zaWJsZSBmb3IgdGhlCisgc3BlY2lmaWVkIG1vZHVsZSwgY3JlYXRpbmcgYSBuZXcgb25lIGlmIG5lY2Vzc2FyeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZ2V0UmVzb3VyY2VzKCkiPmdldFJlc291cmNlczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFjdGlvbnMgc2hvdWxkIGNhbGwgQWN0aW9uLmdldFJlc291cmNlcyhIdHRwU2VydmxldFJlcXVlc3QpCisgIGluc3RlYWQgb2YgdGhpcyBtZXRob2QsIGluIG9yZGVyIHRvIHJldHJpZXZlIHRoZSByZXNvdXJjZXMgZm9yIHRoZQorICBjdXJyZW50IG1vZHVsZS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2hhbmRsZUNvbmZpZ0V4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuRXhjZXB0aW9uKSI+aGFuZGxlQ29uZmlnRXhjZXB0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGhzLAorICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5FeGNlcHRpb24mbmJzcDtlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2ltcGxpZmllcyBleGNlcHRpb24gaGFuZGxpbmcgaW4gdGhlIHBhcnNlTW9kdWxlQ29uZmlnRmlsZSgpIG1ldGhvZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXQoKSI+aW5pdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgdGhpcyBzZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwiPkFwcGxpY2F0aW9uQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRBcHBsaWNhdGlvbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+aW5pdEFwcGxpY2F0aW9uQ29uZmlnPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRNb2R1bGVDb25maWcoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxDT0RFPmluaXRNb2R1bGVDb25maWcoU3RyaW5nLFN0cmluZyk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0QXBwbGljYXRpb25EYXRhU291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdEFwcGxpY2F0aW9uRGF0YVNvdXJjZXM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2UgaW5pdE1vZHVsZURhdGFTb3VyY2VzKE1vZHVsZUNvbmZpZyk8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdEFwcGxpY2F0aW9uTWVzc2FnZVJlc291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdEFwcGxpY2F0aW9uTWVzc2FnZVJlc291cmNlczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSBpbml0TW9kdWxlTWVzc2FnZVJlc291cmNlcygpPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRBcHBsaWNhdGlvblBsdWdJbnMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXRBcHBsaWNhdGlvblBsdWdJbnM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0TW9kdWxlUGx1Z0lucyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PENPREU+aW5pdE1vZHVsZVBsdWdJbnMoTW9kdWxlQ29uZmlnKTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdENvbmZpZ0RpZ2VzdGVyKCkiPmluaXRDb25maWdEaWdlc3RlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSAoaWYgbmVlZGVkKSBhbmQgcmV0dXJuIGEgbmV3IERpZ2VzdGVyIGluc3RhbmNlIHRoYXQgaGFzIGJlZW4KKyBpbml0aWFsaXplZCB0byBwcm9jZXNzIFN0cnV0cyBtb2R1bGUgY29uZmlndXJhaXRvbiBmaWxlcyBhbmQKKyBjb25maWd1cmUgYSBjb3JyZXNwb25kaW5nIE1vZHVsZUNvbmZpZyBvYmplY3QgKHdoaWNoIG11c3QgYmUKKyBwdXNoZWQgb24gdG8gdGhlIGV2YWx1YXRpb24gc3RhY2sgYmVmb3JlIHBhcnNpbmcgYmVnaW5zKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0RGF0YVNvdXJjZXMoKSI+aW5pdERhdGFTb3VyY2VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgaW5pdEFwcGxpY2F0aW9uRGF0YVNvdXJjZXMoKSB0aGF0IHRha2VzCisgIGFuIE1vZHVsZUNvbmZpZyBhcmd1bWVudC4gVGhpcyBtZXRob2QgZG9lcyBub3RoaW5nLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0SW50ZXJuYWwoKSI+aW5pdEludGVybmFsPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSBvdXIgaW50ZXJuYWwgTWVzc2FnZVJlc291cmNlcyBidW5kbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0TW9kdWxlQ29uZmlnKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5pbml0TW9kdWxlQ29uZmlnPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ByZWZpeCwKKyAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGhzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSB0aGUgYXBwbGljYXRpb24gY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBmb3IgdGhlCisgc3BlY2lmaWVkIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0TW9kdWxlRGF0YVNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXRNb2R1bGVEYXRhU291cmNlczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgdGhlIGRhdGEgc291cmNlcyBmb3IgdGhlIHNwZWNpZmllZCBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdE1vZHVsZU1lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXRNb2R1bGVNZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSB0aGUgYXBwbGljYXRpb24gTWVzc2FnZVJlc291cmNlcyBmb3IgdGhlIHNwZWNpZmllZAorIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0TW9kdWxlUGx1Z0lucyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdE1vZHVsZVBsdWdJbnM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0aWFsaXplIHRoZSBwbHVnIGlucyBmb3IgdGhlIHNwZWNpZmllZCBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdE90aGVyKCkiPmluaXRPdGhlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgb3RoZXIgZ2xvYmFsIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgY29udHJvbGxlciBzZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRTZXJ2bGV0KCkiPmluaXRTZXJ2bGV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSB0aGUgc2VydmxldCBtYXBwaW5nIHVuZGVyIHdoaWNoIG91ciBjb250cm9sbGVyIHNlcnZsZXQKKyBpcyBiZWluZyBhY2Nlc3NlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj5sb2c8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSwKKyAgICBpbnQmbmJzcDtsZXZlbCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjb21tb25zLWxvZ2dpbmcgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3BhcnNlTW9kdWxlQ29uZmlnRmlsZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnLCBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wYXJzZU1vZHVsZUNvbmZpZ0ZpbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4LAorICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRocywKKyAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyJm5ic3A7ZGlnZXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQYXJzZXMgb25lIG1vZHVsZSBjb25maWcgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNwcm9jZXNzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cHJvY2VzczwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGVyZm9ybSB0aGUgc3RhbmRhcmQgcmVxdWVzdCBwcm9jZXNzaW5nIGZvciB0aGlzIHJlcXVlc3QsIGFuZCBjcmVhdGUKKyB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9EZWxldGUsIGRvT3B0aW9ucywgZG9QdXQsIGRvVHJhY2UsIGdldExhc3RNb2RpZmllZCwgc2VydmljZSwgc2VydmljZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuR2VuZXJpY1NlcnZsZXQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuR2VuZXJpY1NlcnZsZXQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRJbml0UGFyYW1ldGVyLCBnZXRJbml0UGFyYW1ldGVyTmFtZXMsIGdldFNlcnZsZXRDb25maWcsIGdldFNlcnZsZXRDb250ZXh0LCBnZXRTZXJ2bGV0SW5mbywgZ2V0U2VydmxldE5hbWUsIGluaXQsIGxvZywgbG9nPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY29uZmlnIj48IS0tIC0tPjwvQT48SDM+Citjb25maWc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbmZpZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb250ZXh0LXJlbGF0aXZlIHBhdGgocykgdG8gb3VyIGNvbmZpZ3VyYXRpb24KKyByZXNvdXJjZShzKSBmb3IgdGhlIGRlZmF1bHQgbW9kdWxlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29uZmlnRGlnZXN0ZXIiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmZpZ0RpZ2VzdGVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyIDxCPmNvbmZpZ0RpZ2VzdGVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBEaWdlc3RlciB1c2VkIHRvIHByb2R1Y2UgTW9kdWxlQ29uZmlnIG9iamVjdHMgZnJvbSBhCisgU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZS4KKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udmVydE51bGwiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnZlcnROdWxsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb252ZXJ0TnVsbDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZmxhZyB0byByZXF1ZXN0IGJhY2t3YXJkcy1jb21wYXRpYmxlIGNvbnZlcnNpb25zIGZvciBmb3JtIGJlYW4KKyBwcm9wZXJ0aWVzIG9mIHRoZSBKYXZhIHdyYXBwZXIgY2xhc3MgdHlwZXMuCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRhdGFTb3VyY2VzIj48IS0tIC0tPjwvQT48SDM+CitkYXRhU291cmNlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIG9yZy5hcGFjaGUuY29tbW9ucy5jb2xsZWN0aW9ucy5GYXN0SGFzaE1hcCA8Qj5kYXRhU291cmNlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSkRCQyBkYXRhIHNvdXJjZXMgdGhhdCBoYXMgYmVlbiBjb25maWd1cmVkIGZvciB0aGlzIG1vZHVsZSwKKyBpZiBhbnksIGtleWVkIGJ5IHRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZXkgYXJlCisgc3RvcmVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVidWciPjwhLS0gLS0+PC9BPjxIMz4KK2RlYnVnPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPmRlYnVnPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPjwvST4mbmJzcDsKKzxQPgorPEREPlRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIGZvciB0aGlzIHNlcnZsZXQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbnRlcm5hbCI+PCEtLSAtLT48L0E+PEgzPgoraW50ZXJuYWw8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+aW50ZXJuYWw8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlc291cmNlcyBvYmplY3QgZm9yIG91ciBpbnRlcm5hbCByZXNvdXJjZXMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbnRlcm5hbE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK2ludGVybmFsTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aW50ZXJuYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKYXZhIGJhc2UgbmFtZSBvZiBvdXIgaW50ZXJuYWwgcmVzb3VyY2VzLgorPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2ciPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2cgPEI+bG9nPC9CPjwvUFJFPgorPERMPgorPEREPkNvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc29yIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzb3I8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPiA8Qj5wcm9jZXNzb3I8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIDxjb2RlPlJlcXVlc3RQcm9jZXNzb3I8L2NvZGU+IGluc3RhbmNlIHdlIHdpbGwgdXNlIHRvIHByb2Nlc3MKKyBhbGwgaW5jb21pbmcgcmVxdWVzdHMuCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlZ2lzdHJhdGlvbnMiPjwhLS0gLS0+PC9BPjxIMz4KK3JlZ2lzdHJhdGlvbnM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nW10gPEI+cmVnaXN0cmF0aW9uczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIHB1YmxpYyBpZGVudGlmaWVycywgYW5kIGNvcnJlc3BvbmRpbmcgcmVzb3VyY2UgbmFtZXMsIGZvcgorIHRoZSB2ZXJzaW9ucyBvZiB0aGUgY29uZmlndXJhdGlvbiBmaWxlIERURHMgdGhhdCB3ZSBrbm93IGFib3V0LiAgVGhlcmUKKyA8c3Ryb25nPk1VU1Q8L3N0cm9uZz4gYmUgYW4gZXZlbiBudW1iZXIgb2YgU3RyaW5ncyBpbiB0aGlzIGxpc3QhCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXJ2bGV0TWFwcGluZyI+PCEtLSAtLT48L0E+PEgzPgorc2VydmxldE1hcHBpbmc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNlcnZsZXRNYXBwaW5nPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBVUkwgcGF0dGVybiB0byB3aGljaCB3ZSBhcmUgbWFwcGVkIGluIG91ciB3ZWIgYXBwbGljYXRpb24KKyBkZXBsb3ltZW50IGRlc2NyaXB0b3IuICBGSVhNRSAtIG11bHRpcGxlcz8/PworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2VydmxldE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK3NlcnZsZXROYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zZXJ2bGV0TmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmxldCBuYW1lIHVuZGVyIHdoaWNoIHdlIGFyZSByZWdpc3RlcmVkIGluIG91ciB3ZWIgYXBwbGljYXRpb24KKyBkZXBsb3ltZW50IGRlc2NyaXB0b3IuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQWN0aW9uU2VydmxldCgpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25TZXJ2bGV0PC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uU2VydmxldDwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZGVzdHJveSgpIj48IS0tIC0tPjwvQT48SDM+CitkZXN0cm95PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5kZXN0cm95PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R3JhY2VmdWxseSBzaHV0IGRvd24gdGhpcyBjb250cm9sbGVyIHNlcnZsZXQsIHJlbGVhc2luZyBhbnkgcmVzb3VyY2VzCisgdGhhdCB3ZXJlIGFsbG9jYXRlZCBhdCBpbml0aWFsaXphdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kZXN0cm95PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0PC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kZXN0cm95PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LkdlbmVyaWNTZXJ2bGV0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdCgpIj48IS0tIC0tPjwvQT48SDM+Citpbml0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5pbml0PC9CPigpCisgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkluaXRpYWxpemUgdGhpcyBzZXJ2bGV0LiAgTW9zdCBvZiB0aGUgcHJvY2Vzc2luZyBoYXMgYmVlbiBmYWN0b3JlZCBpbnRvCisgc3VwcG9ydCBtZXRob2RzIHNvIHRoYXQgeW91IGNhbiBvdmVycmlkZSBwYXJ0aWN1bGFyIGZ1bmN0aW9uYWxpdHkgYXQgYQorIGZhaXJseSBncmFudWxhciBsZXZlbC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5pbml0PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LkdlbmVyaWNTZXJ2bGV0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHdlIGNhbm5vdCBjb25maWd1cmUgb3Vyc2VsdmVzIGNvcnJlY3RseTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9HZXQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+Citkb0dldDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZG9HZXQ8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIGFuIEhUVFAgIkdFVCIgcmVxdWVzdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0dldDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzCis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1Bvc3QoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+Citkb1Bvc3Q8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmRvUG9zdDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgYW4gSFRUUCAiUE9TVCIgcmVxdWVzdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1Bvc3Q8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgc2VydmxldCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VycworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkU2VydmxldE1hcHBpbmcoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZFNlcnZsZXRNYXBwaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRTZXJ2bGV0TWFwcGluZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NlcnZsZXROYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3VybFBhdHRlcm4pPC9QUkU+Cis8REw+Cis8REQ+UmVtZW1iZXIgYSBzZXJ2bGV0IG1hcHBpbmcgZnJvbSBvdXIgd2ViIGFwcGxpY2F0aW9uIGRlcGxveW1lbnQKKyBkZXNjcmlwdG9yLCBpZiBpdCBpcyBmb3IgdGhpcyBzZXJ2bGV0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0TmFtZTwvQ09ERT4gLSBUaGUgbmFtZSBvZiB0aGUgc2VydmxldCBiZWluZyBtYXBwZWQ8REQ+PENPREU+dXJsUGF0dGVybjwvQ09ERT4gLSBUaGUgVVJMIHBhdHRlcm4gdG8gd2hpY2ggdGhpcyBzZXJ2bGV0IGlzIG1hcHBlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZERhdGFTb3VyY2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmREYXRhU291cmNlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc3FsLkRhdGFTb3VyY2UgPEI+ZmluZERhdGFTb3VyY2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+TG9vayB1cCBkYXRhIHNvdXJjZXMgZGlyZWN0bHkgaW4gc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXM8L0k+Cis8UD4KKzxERD5SZXR1cm4gYSBKREJDIGRhdGEgc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1vZHVsZSwgaWYgYW55LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IHVuZGVyIHdoaWNoIHRoaXMgZGF0YQorICBzb3VyY2UgaXMgc3RvcmVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBmb3IgdGhlIGRlZmF1bHQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRm9ybUJlYW4oamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRGb3JtQmVhbjwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT4gPEI+ZmluZEZvcm1CZWFuPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBNb2R1bGVDb25maWcuZmluZEZvcm1CZWFuQ29uZmlnKCk8L0k+Cis8UD4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYmVhbiBkZWZpbml0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkCisgbG9naWNhbCBuYW1lLCBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTG9naWNhbCBuYW1lIG9mIHRoZSByZXF1ZXN0ZWQgZm9ybSBiZWFuIGRlZmluaXRpb248L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPmZpbmRGb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBNb2R1bGVDb25maWcuZmluZEZvcndhcmRDb25maWcoKTwvST4KKzxQPgorPEREPlJldHVybiB0aGUgZm9yd2FyZGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBsb2dpY2FsIG5hbWUsCisgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIExvZ2ljYWwgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIGZvcndhcmRpbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRNYXBwaW5nKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kTWFwcGluZzwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IDxCPmZpbmRNYXBwaW5nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBNb2R1bGVDb25maWcuZmluZEFjdGlvbkNvbmZpZygpPC9JPgorPFA+Cis8REQ+UmV0dXJuIHRoZSBBY3Rpb25NYXBwaW5nIGZvciB0aGUgc3BlY2lmaWVkIHBhdGgsIGZvciB0aGUgZGVmYXVsdAorIG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0aDwvQ09ERT4gLSBSZXF1ZXN0IHBhdGggZm9yIHdoaWNoIGEgbWFwcGluZyBpcyByZXF1ZXN0ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldERlYnVnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERlYnVnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldERlYnVnPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+Q29uZmlndXJlIHRoZSBsb2dnaW5nIGRldGFpbCBsZXZlbCBpbiB5b3VyIHVuZGVybHlpbmcKKyAgbG9nZ2luZyBpbXBsZW1lbnRhdGlvbjwvST4KKzxQPgorPEREPlJldHVybiB0aGUgZGVidWdnaW5nIGRldGFpbCBsZXZlbCBmb3IgdGhpcyBzZXJ2bGV0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJbnRlcm5hbCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJbnRlcm5hbDwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5nZXRJbnRlcm5hbDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW5zdGFuY2UgY29udGFpbmluZyBvdXIKKyBpbnRlcm5hbCBtZXNzYWdlIHN0cmluZ3MuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UmVzb3VyY2VzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJlc291cmNlczwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5nZXRSZXNvdXJjZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BY3Rpb25zIHNob3VsZCBjYWxsIEFjdGlvbi5nZXRSZXNvdXJjZXMoSHR0cFNlcnZsZXRSZXF1ZXN0KQorICBpbnN0ZWFkIG9mIHRoaXMgbWV0aG9kLCBpbiBvcmRlciB0byByZXRyaWV2ZSB0aGUgcmVzb3VyY2VzIGZvciB0aGUKKyAgY3VycmVudCBtb2R1bGUuPC9JPgorPFA+Cis8REQ+PHA+UmV0dXJuIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0IG1vZHVsZSwKKyBpZiBhbnkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvZyhqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmxvZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UsCisgICAgICAgICAgICAgICAgaW50Jm5ic3A7bGV2ZWwpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbnMtbG9nZ2luZyBpbnN0ZWFkLjwvST4KKzxQPgorPEREPkxvZyB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UgaWYgdGhlIGN1cnJlbnQgZGVidWdnaW5nIGRldGFpbCBsZXZlbCBmb3IKKyB0aGlzIHNlcnZsZXQgaGFzIGJlZW4gc2V0IHRvIGFuIGVxdWFsIG9yIGhpZ2hlciB2YWx1ZS4gIE90aGVyd2lzZSwKKyBpZ25vcmUgdGhpcyBtZXNzYWdlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tZXNzYWdlPC9DT0RFPiAtIE1lc3NhZ2UgdG8gYmUgbG9nZ2VkPEREPjxDT0RFPmxldmVsPC9DT0RFPiAtIERlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgb2YgdGhpcyBtZXNzYWdlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZXN0cm95QXBwbGljYXRpb25zKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2Rlc3Ryb3lBcHBsaWNhdGlvbnM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmRlc3Ryb3lBcHBsaWNhdGlvbnM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5yZXBsYWNlZCBieSBkZXN0cm95TW9kdWxlcygpPC9JPgorPFA+Cis8REQ+R3JhY2VmdWxseSB0ZXJtaW5hdGUgdXNlIG9mIGFueSBtb2R1bGVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzCisgYXBwbGljYXRpb24gKGlmIGFueSkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVzdHJveU1vZHVsZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZGVzdHJveU1vZHVsZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmRlc3Ryb3lNb2R1bGVzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R3JhY2VmdWxseSB0ZXJtaW5hdGUgdXNlIG9mIGFueSBtb2R1bGVzIGFzc29jaWF0ZWQgd2l0aCB0aGlzCisgYXBwbGljYXRpb24gKGlmIGFueSkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVzdHJveUNvbmZpZ0RpZ2VzdGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2Rlc3Ryb3lDb25maWdEaWdlc3RlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+ZGVzdHJveUNvbmZpZ0RpZ2VzdGVyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R3JhY2VmdWxseSByZWxlYXNlIGFueSBjb25maWdEaWdlc3RlciBpbnN0YW5jZSB0aGF0IHdlIGhhdmUgY3JlYXRlZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZXN0cm95RGF0YVNvdXJjZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZGVzdHJveURhdGFTb3VyY2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5kZXN0cm95RGF0YVNvdXJjZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5XaWxsIG5vIGxvbmdlciBiZSByZXF1aXJlZCB3aXRoIG1vZHVsZSBzdXBwb3J0PC9JPgorPFA+Cis8REQ+R3JhY2VmdWxseSB0ZXJtaW5hdGUgdXNlIG9mIHRoZSBkYXRhIHNvdXJjZSBhc3NvY2lhdGVkIHdpdGggdGhpcworIGFwcGxpY2F0aW9uIChpZiBhbnkpLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZXN0cm95SW50ZXJuYWwoKSI+PCEtLSAtLT48L0E+PEgzPgorZGVzdHJveUludGVybmFsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5kZXN0cm95SW50ZXJuYWw8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HcmFjZWZ1bGx5IHRlcm1pbmF0ZSB1c2Ugb2YgdGhlIGludGVybmFsIE1lc3NhZ2VSZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFwcGxpY2F0aW9uQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBcHBsaWNhdGlvbkNvbmZpZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BcHBsaWNhdGlvbkNvbmZpZy5odG1sIj5BcHBsaWNhdGlvbkNvbmZpZzwvQT4gPEI+Z2V0QXBwbGljYXRpb25Db25maWc8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldE1vZHVsZUNvbmZpZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+Z2V0TW9kdWxlQ29uZmlnKEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPlJldHVybiB0aGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgY3VycmVudGx5IHNlbGVjdGVkCisgbW9kdWxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TW9kdWxlQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNb2R1bGVDb25maWc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4gPEI+Z2V0TW9kdWxlQ29uZmlnPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG1vZHVsZSBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhlIGN1cnJlbnRseSBzZWxlY3RlZAorIG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJlcXVlc3RQcm9jZXNzb3Iob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJlcXVlc3RQcm9jZXNzb3I8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPiA8Qj5nZXRSZXF1ZXN0UHJvY2Vzc29yPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkxvb2sgdXAgYW5kIHJldHVybiB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+PENPREU+UmVxdWVzdFByb2Nlc3NvcjwvQ09ERT48L0E+IHJlc3BvbnNpYmxlIGZvciB0aGUKKyBzcGVjaWZpZWQgbW9kdWxlLCBjcmVhdGluZyBhIG5ldyBvbmUgaWYgbmVjZXNzYXJ5LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gVGhlIG1vZHVsZSBjb25maWd1cmF0aW9uIGZvciB3aGljaCB0bworICBhY3F1aXJlIGFuZCByZXR1cm4gYSBSZXF1ZXN0UHJvY2Vzc29yLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHdlIGNhbm5vdCBpbnN0YW50aWF0ZSBhIFJlcXVlc3RQcm9jZXNzb3IKKyAgaW5zdGFuY2U8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdEFwcGxpY2F0aW9uQ29uZmlnKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Citpbml0QXBwbGljYXRpb25Db25maWc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQXBwbGljYXRpb25Db25maWcuaHRtbCI+QXBwbGljYXRpb25Db25maWc8L0E+IDxCPmluaXRBcHBsaWNhdGlvbkNvbmZpZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRNb2R1bGVDb25maWcoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxDT0RFPmluaXRNb2R1bGVDb25maWcoU3RyaW5nLFN0cmluZyk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPjxwPkluaXRpYWxpemUgdGhlIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gZm9yIHRoZQorIHNwZWNpZmllZCBtb2R1bGUuPC9wPgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcmVmaXg8L0NPREU+IC0gTW9kdWxlIHByZWZpeCBmb3IgdGhpcyBtb2R1bGU8REQ+PENPREU+cGF0aDwvQ09ERT4gLSBDb250ZXh0LXJlbGF0aXZlIHJlc291cmNlIHBhdGggZm9yIHRoaXMgbW9kdWxlcydzCisgIGNvbmZpZ3VyYXRpb24gcmVzb3VyY2UKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBpbml0aWFsaXphdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXRNb2R1bGVDb25maWcoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXRNb2R1bGVDb25maWc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4gPEI+aW5pdE1vZHVsZUNvbmZpZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PHA+SW5pdGlhbGl6ZSB0aGUgYXBwbGljYXRpb24gY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBmb3IgdGhlCisgc3BlY2lmaWVkIG1vZHVsZS48L3A+Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByZWZpeDwvQ09ERT4gLSBNb2R1bGUgcHJlZml4IGZvciB0aGlzIG1vZHVsZTxERD48Q09ERT5wYXRoczwvQ09ERT4gLSBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb250ZXh0LXJlbGF0aXZlIHJlc291cmNlIHBhdGgocykKKyAgZm9yIHRoaXMgbW9kdWxlcydzIGNvbmZpZ3VyYXRpb24gcmVzb3VyY2UocykKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBpbml0aWFsaXphdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcnNlTW9kdWxlQ29uZmlnRmlsZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnLCBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitwYXJzZU1vZHVsZUNvbmZpZ0ZpbGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgdm9pZCA8Qj5wYXJzZU1vZHVsZUNvbmZpZ0ZpbGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuRGlnZXN0ZXImbmJzcDtkaWdlc3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuVW5hdmFpbGFibGVFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5QYXJzZXMgb25lIG1vZHVsZSBjb25maWcgZmlsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJlZml4PC9DT0RFPiAtIDxERD48Q09ERT5wYXRoczwvQ09ERT4gLSA8REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIDxERD48Q09ERT5kaWdlc3RlcjwvQ09ERT4gLSBEaWdlc3RlciBpbnN0YW5jZSB0aGF0IGRvZXMgdGhlIHBhcnNpbmc8REQ+PENPREU+cGF0aDwvQ09ERT4gLSBUaGUgcGF0aCB0byB0aGUgY29uZmlnIGZpbGUgdG8gcGFyc2UuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlVuYXZhaWxhYmxlRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaGFuZGxlQ29uZmlnRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5FeGNlcHRpb24pIj48IS0tIC0tPjwvQT48SDM+CitoYW5kbGVDb25maWdFeGNlcHRpb248L0gzPgorPFBSRT4KK3ByaXZhdGUgdm9pZCA8Qj5oYW5kbGVDb25maWdFeGNlcHRpb248L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLkV4Y2VwdGlvbiZuYnNwO2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuVW5hdmFpbGFibGVFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5TaW1wbGlmaWVzIGV4Y2VwdGlvbiBoYW5kbGluZyBpbiB0aGUgcGFyc2VNb2R1bGVDb25maWdGaWxlKCkgbWV0aG9kLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYXRoczwvQ09ERT4gLSA8REQ+PENPREU+ZTwvQ09ERT4gLSAKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuVW5hdmFpbGFibGVFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0QXBwbGljYXRpb25EYXRhU291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdEFwcGxpY2F0aW9uRGF0YVNvdXJjZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmluaXRBcHBsaWNhdGlvbkRhdGFTb3VyY2VzPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2UgaW5pdE1vZHVsZURhdGFTb3VyY2VzKE1vZHVsZUNvbmZpZyk8L0k+Cis8UD4KKzxERD48cD5Jbml0aWFsaXplIHRoZSBkYXRhIHNvdXJjZXMgZm9yIHRoZSBzcGVjaWZpZWQgbW9kdWxlLjwvcD4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIE1vZHVsZUNvbmZpZyBpbmZvcm1hdGlvbiBmb3IgdGhpcyBtb2R1bGUKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBpbml0aWFsaXphdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXRNb2R1bGVEYXRhU291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdE1vZHVsZURhdGFTb3VyY2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5pbml0TW9kdWxlRGF0YVNvdXJjZXM8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48cD5Jbml0aWFsaXplIHRoZSBkYXRhIHNvdXJjZXMgZm9yIHRoZSBzcGVjaWZpZWQgbW9kdWxlLjwvcD4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIE1vZHVsZUNvbmZpZyBpbmZvcm1hdGlvbiBmb3IgdGhpcyBtb2R1bGUKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBpbml0aWFsaXphdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXRBcHBsaWNhdGlvblBsdWdJbnMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXRBcHBsaWNhdGlvblBsdWdJbnM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmluaXRBcHBsaWNhdGlvblBsdWdJbnM8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+dXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdE1vZHVsZVBsdWdJbnMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjxDT0RFPmluaXRNb2R1bGVQbHVnSW5zKE1vZHVsZUNvbmZpZyk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPjxwPkluaXRpYWxpemUgdGhlIHBsdWcgaW5zIGZvciB0aGUgc3BlY2lmaWVkIG1vZHVsZS48L3A+Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBNb2R1bGVDb25maWcgaW5mb3JtYXRpb24gZm9yIHRoaXMgbW9kdWxlCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgaW5pdGlhbGl6YXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZDxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0TW9kdWxlUGx1Z0lucyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdE1vZHVsZVBsdWdJbnM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmluaXRNb2R1bGVQbHVnSW5zPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48cD5Jbml0aWFsaXplIHRoZSBwbHVnIGlucyBmb3IgdGhlIHNwZWNpZmllZCBtb2R1bGUuPC9wPgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gTW9kdWxlQ29uZmlnIGluZm9ybWF0aW9uIGZvciB0aGlzIG1vZHVsZQorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGluaXRpYWxpemF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQ8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdEFwcGxpY2F0aW9uTWVzc2FnZVJlc291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdEFwcGxpY2F0aW9uTWVzc2FnZVJlc291cmNlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+aW5pdEFwcGxpY2F0aW9uTWVzc2FnZVJlc291cmNlczwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2UgaW5pdE1vZHVsZU1lc3NhZ2VSZXNvdXJjZXMoKTwvST4KKzxQPgorPEREPjxwPkluaXRpYWxpemUgdGhlIGFwcGxpY2F0aW9uIE1lc3NhZ2VSZXNvdXJjZXMgZm9yIHRoZSBzcGVjaWZpZWQKKyBtb2R1bGUuPC9wPgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gTW9kdWxlQ29uZmlnIGluZm9ybWF0aW9uIGZvciB0aGlzIG1vZHVsZQorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGluaXRpYWxpemF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQ8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdE1vZHVsZU1lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXRNb2R1bGVNZXNzYWdlUmVzb3VyY2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5pbml0TW9kdWxlTWVzc2FnZVJlc291cmNlczwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PHA+SW5pdGlhbGl6ZSB0aGUgYXBwbGljYXRpb24gTWVzc2FnZVJlc291cmNlcyBmb3IgdGhlIHNwZWNpZmllZAorIG1vZHVsZS48L3A+Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBNb2R1bGVDb25maWcgaW5mb3JtYXRpb24gZm9yIHRoaXMgbW9kdWxlCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgaW5pdGlhbGl6YXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZDxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0Q29uZmlnRGlnZXN0ZXIoKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdENvbmZpZ0RpZ2VzdGVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyIDxCPmluaXRDb25maWdEaWdlc3RlcjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PHA+Q3JlYXRlIChpZiBuZWVkZWQpIGFuZCByZXR1cm4gYSBuZXcgRGlnZXN0ZXIgaW5zdGFuY2UgdGhhdCBoYXMgYmVlbgorIGluaXRpYWxpemVkIHRvIHByb2Nlc3MgU3RydXRzIG1vZHVsZSBjb25maWd1cmFpdG9uIGZpbGVzIGFuZAorIGNvbmZpZ3VyZSBhIGNvcnJlc3BvbmRpbmcgTW9kdWxlQ29uZmlnIG9iamVjdCAod2hpY2ggbXVzdCBiZQorIHB1c2hlZCBvbiB0byB0aGUgZXZhbHVhdGlvbiBzdGFjayBiZWZvcmUgcGFyc2luZyBiZWdpbnMpLjwvcD4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgRGlnZXN0ZXIgY2Fubm90IGJlIGNvbmZpZ3VyZWQ8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdERhdGFTb3VyY2VzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXREYXRhU291cmNlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+aW5pdERhdGFTb3VyY2VzPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgaW5pdEFwcGxpY2F0aW9uRGF0YVNvdXJjZXMoKSB0aGF0IHRha2VzCisgIGFuIE1vZHVsZUNvbmZpZyBhcmd1bWVudC4gVGhpcyBtZXRob2QgZG9lcyBub3RoaW5nLjwvST4KKzxQPgorPEREPkluaXRpYWxpemUgZGF0YSBzb3VyY2VzIGZvciB0aGUgZGVmYXVsdCBtb2R1bGUuICBUaGlzIG1ldGhvZAorIHNpZ25hdHVyZSBpcyBtYWludGFpbmVkIG9ubHkgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBhbmQgd2lsbAorIGJlIHJlbW92ZWQgaW4gYSBzdWJzZXF1ZW50IHJlbGVhc2UuCis8UD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0SW50ZXJuYWwoKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdEludGVybmFsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5pbml0SW50ZXJuYWw8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Jbml0aWFsaXplIG91ciBpbnRlcm5hbCBNZXNzYWdlUmVzb3VyY2VzIGJ1bmRsZS4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHdlIGNhbm5vdCBpbml0aWFsaXplIHRoZXNlIHJlc291cmNlczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdE90aGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXRPdGhlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+aW5pdE90aGVyPC9CPigpCisgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+SW5pdGlhbGl6ZSBvdGhlciBnbG9iYWwgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBjb250cm9sbGVyIHNlcnZsZXQuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB3ZSBjYW5ub3QgaW5pdGlhbGl6ZSB0aGVzZSByZXNvdXJjZXM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXRTZXJ2bGV0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXRTZXJ2bGV0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5pbml0U2VydmxldDwvQj4oKQorICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+SW5pdGlhbGl6ZSB0aGUgc2VydmxldCBtYXBwaW5nIHVuZGVyIHdoaWNoIG91ciBjb250cm9sbGVyIHNlcnZsZXQKKyBpcyBiZWluZyBhY2Nlc3NlZC4gIFRoaXMgd2lsbCBiZSB1c2VkIGluIHRoZSA8Y29kZT4maHRtbDpmb3JtJmd0OzwvY29kZT4KKyB0YWcgdG8gZ2VuZXJhdGUgY29ycmVjdCBkZXN0aW5hdGlvbiBVUkxzIGZvciBmb3JtIHN1Ym1pc3Npb25zLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgZXJyb3IgaGFwcGVucyB3aGlsZSBzY2FubmluZyB3ZWIueG1sPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2VzczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJvY2VzczwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlBlcmZvcm0gdGhlIHN0YW5kYXJkIHJlcXVlc3QgcHJvY2Vzc2luZyBmb3IgdGhpcyByZXF1ZXN0LCBhbmQgY3JlYXRlCisgdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2UuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgc2VydmxldCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VycworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIGlzIHRocm93bjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmYXVsdENvbnRyb2xsZXJDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK2RlZmF1bHRDb250cm9sbGVyQ29uZmlnPC9IMz4KKzxQUkU+Citwcml2YXRlIHZvaWQgPEI+ZGVmYXVsdENvbnRyb2xsZXJDb25maWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5XaWxsIGJlIHJlbW92ZWQgaW4gYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjEuPC9JPgorPFA+Cis8REQ+UGVyZm9ybSBiYWNrd2FyZHMtY29tcGF0aWJsZSBjb25maWd1cmF0aW9uIG9mIHRoZSBkZWZhdWx0IG1vZHVsZSdzCisgY29udHJvbGxlciBjb25maWd1cmF0aW9uIGZyb20gc2VydmxldCBpbml0aWFsaXphdGlvbiBwYXJhbWV0ZXJzIChhcworIHdlcmUgdXNlZCBpbiBTdHJ1dHMgMS4wKS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIFRoZSBNb2R1bGVDb25maWcgb2JqZWN0IGZvciB0aGUgZGVmYXVsdCBtb2R1bGU8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmYXVsdEZvcm1CZWFuc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdEZvcm1CZWFuc0NvbmZpZzwvSDM+Cis8UFJFPgorcHJpdmF0ZSB2b2lkIDxCPmRlZmF1bHRGb3JtQmVhbnNDb25maWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5XaWxsIGJlIHJlbW92ZWQgaW4gYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjEuPC9JPgorPFA+Cis8REQ+UGVyZm9ybSBiYWNrd2FyZHMtY29tcGF0aWJsZSBjb25maWd1cmF0aW9uIG9mIGFuIEFjdGlvbkZvcm1CZWFucworIGNvbGxlY3Rpb24sIGFuZCBleHBvc2UgaXQgYXMgYSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIChhcyB3YXMKKyB1c2VkIGluIFN0cnV0cyAxLjApLiAgTm90ZSB0aGF0IHRoZSBjdXJyZW50IGNvbnRyb2xsZXIgY29kZSBkb2VzCisgbm90IChhbmQgc2hvdWxkIG5vdCkgcmVmZXJlbmNlIHRoaXMgYXR0cmlidXRlIGZvciBhbnkgcmVhc29uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gVGhlIE1vZHVsZUNvbmZpZyBvYmplY3QgZm9yIHRoZSBkZWZhdWx0IGFwcDxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZWZhdWx0Rm9yd2FyZHNDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK2RlZmF1bHRGb3J3YXJkc0NvbmZpZzwvSDM+Cis8UFJFPgorcHJpdmF0ZSB2b2lkIDxCPmRlZmF1bHRGb3J3YXJkc0NvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPldpbGwgYmUgcmVtb3ZlZCBpbiBhIHJlbGVhc2UgYWZ0ZXIgU3RydXRzIDEuMS48L0k+Cis8UD4KKzxERD5QZXJmb3JtIGJhY2t3YXJkcy1jb21wYXRpYmxlIGNvbmZpZ3VyYXRpb24gb2YgYW4gQWN0aW9uRm9yd2FyZHMKKyBjb2xsZWN0aW9uLCBhbmQgZXhwb3NlIGl0IGFzIGEgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSAoYXMgd2FzCisgdXNlZCBpbiBTdHJ1dHMgMS4wKS4gIE5vdGUgdGhhdCB0aGUgY3VycmVudCBjb250cm9sbGVyIGNvZGUgZG9lcworIG5vdCAoYW5kIHNob3VsZCBub3QpIHJlZmVyZW5jZSB0aGlzIGF0dHJpYnV0ZSBmb3IgYW55IHJlYXNvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIFRoZSBNb2R1bGVDb25maWcgb2JqZWN0IGZvciB0aGUgZGVmYXVsdCBhcHA8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmYXVsdE1hcHBpbmdzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CitkZWZhdWx0TWFwcGluZ3NDb25maWc8L0gzPgorPFBSRT4KK3ByaXZhdGUgdm9pZCA8Qj5kZWZhdWx0TWFwcGluZ3NDb25maWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5XaWxsIGJlIHJlbW92ZWQgaW4gYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjEuPC9JPgorPFA+Cis8REQ+UGVyZm9ybSBiYWNrd2FyZHMtY29tcGF0aWJsZSBjb25maWd1cmF0aW9uIG9mIGFuIEFjdGlvbk1hcHBpbmdzCisgY29sbGVjdGlvbiwgYW5kIGV4cG9zZSBpdCBhcyBhIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUgKGFzIHdhcworIHVzZWQgaW4gU3RydXRzIDEuMCkuICBOb3RlIHRoYXQgdGhlIGN1cnJlbnQgY29udHJvbGxlciBjb2RlIGRvZXMKKyBub3QgKGFuZCBzaG91bGQgbm90KSByZWZlcmVuY2UgdGhpcyBhdHRyaWJ1dGUgZm9yIGFueSByZWFzb24uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBUaGUgTW9kdWxlQ29uZmlnIG9iamVjdCBmb3IgdGhlIGRlZmF1bHQgYXBwPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRlZmF1bHRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CitkZWZhdWx0TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvSDM+Cis8UFJFPgorcHJpdmF0ZSB2b2lkIDxCPmRlZmF1bHRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+V2lsbCBiZSByZW1vdmVkIGluIGEgcmVsZWFzZSBhZnRlciBTdHJ1dHMgMS4xLjwvST4KKzxQPgorPEREPlBlcmZvcm0gYmFja3dhcmRzLWNvbXBhdGlibGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZGVmYXVsdCBtb2R1bGUncworIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb24gZnJvbSBzZXJ2bGV0IGluaXRpYWxpemF0aW9uIHBhcmFtZXRlcnMKKyAoYXMgd2VyZSB1c2VkIGluIFN0cnV0cyAxLjApLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gVGhlIE1vZHVsZUNvbmZpZyBvYmplY3QgZm9yIHRoZSBkZWZhdWx0IG1vZHVsZTxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb25TZXJ2bGV0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uU2VydmxldC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldFdyYXBwZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldFdyYXBwZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTc4NTIwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sCkBAIC0wLDAgKzEsMzQ2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjEwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorQWN0aW9uU2VydmxldFdyYXBwZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0V3JhcHBlcixBY3Rpb25TZXJ2bGV0V3JhcHBlciBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQWN0aW9uU2VydmxldFdyYXBwZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQWN0aW9uU2VydmxldFdyYXBwZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBBY3Rpb25TZXJ2bGV0V3JhcHBlcjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0V3JhcHBlcjwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5BY3Rpb25TZXJ2bGV0V3JhcHBlcjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4KKworPFA+CitQcm92aWRlIGEgd3JhcHBlciBhcm91bmQgYW4gQWN0aW9uU2VydmxldCB0byBleHBvc2Ugb25seQorIHRob3NlIG1ldGhvZHMgbmVlZGVkIGJ5IG90aGVyIG9iamVjdHMuIFdoZW4gdXNlZCB3aXRoIGFuCisgQWN0aW9uRm9ybSwgc3ViY2xhc3NlcyBtdXN0IGJlIGNhcmVmdWwgdGhhdCB0aGV5IGRvCisgbm90IHJldHVybiBhbiBvYmplY3Qgd2l0aCBwdWJsaWMgZ2V0dGVycyBhbmQgc2V0dGVycyB0aGF0CisgY291bGQgYmUgZXhwbG9pdGVkIGJ5IGF1dG9tYXRpYyBwb3B1bGF0aW9uIG9mIHByb3BlcnRpZXMuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4wLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbiwgVGVkIEh1c3RlZDwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udHJvbGxlciBzZXJ2bGV0IGluc3RhbmNlIHRvIHdoaWNoIHdlIGFyZSBhdHRhY2hlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sI0FjdGlvblNlcnZsZXRXcmFwcGVyKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+QWN0aW9uU2VydmxldFdyYXBwZXI8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgb2JqZWN0IGFuZCBzZXQgc2VydmxldCBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nKSI+bG9nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb2cgbWVzc2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldFdyYXBwZXIuaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZywgaW50KSI+bG9nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UsCisgICAgaW50Jm5ic3A7bGV2ZWwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Mb2dnaW5nIHNob3VsZCBub3cgdXNlIHRoZSBjb21tb25zIGxvZ2dpbmc8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwjc2V0U2VydmxldEZvcihvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpIj5zZXRTZXJ2bGV0Rm9yPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPiZuYnNwO29iamVjdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBzZXJ2bGV0IHRvIGEgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJzZXJ2bGV0Ij48IS0tIC0tPjwvQT48SDM+CitzZXJ2bGV0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdHJhbnNpZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPnNlcnZsZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRyb2xsZXIgc2VydmxldCBpbnN0YW5jZSB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQWN0aW9uU2VydmxldFdyYXBwZXIob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25TZXJ2bGV0V3JhcHBlcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFjdGlvblNlcnZsZXRXcmFwcGVyPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIG9iamVjdCBhbmQgc2V0IHNlcnZsZXQgcHJvcGVydHkuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldDwvQ09ERT4gLSA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiB0byB3cmFwPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibG9nKGphdmEubGFuZy5TdHJpbmcsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+bG9nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSwKKyAgICAgICAgICAgICAgICBpbnQmbmJzcDtsZXZlbCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Mb2dnaW5nIHNob3VsZCBub3cgdXNlIHRoZSBjb21tb25zIGxvZ2dpbmc8L0k+Cis8UD4KKzxERD5Mb2cgdGhlIHNwZWNpZmllZCBtZXNzYWdlIGlmIHRoZSBjdXJyZW50IGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgZm9yCisgdGhpcyBzZXJ2bGV0IGhhcyBiZWVuIHNldCB0byBhbiBlcXVhbCBvciBoaWdoZXIgdmFsdWUuICBPdGhlcndpc2UsCisgaWdub3JlIHRoaXMgbWVzc2FnZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWVzc2FnZTwvQ09ERT4gLSBNZXNzYWdlIHRvIGJlIGxvZ2dlZDxERD48Q09ERT5sZXZlbDwvQ09ERT4gLSBEZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIG9mIHRoaXMgbWVzc2FnZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9nKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmxvZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UpPC9QUkU+Cis8REw+Cis8REQ+TG9nIG1lc3NhZ2UuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1lc3NhZ2U8L0NPREU+IC0gPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTZXJ2bGV0Rm9yKG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNlcnZsZXRGb3I8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNlcnZsZXRGb3I8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4mbmJzcDtvYmplY3QpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHNlcnZsZXQgdG8gYSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+b2JqZWN0PC9DT0RFPiAtIFRoZSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcgorIDpGSVhNRTogU2hvdWxkIHRoaXMgYmUgYmFzZWQgb24gYW4gInNldFNlcnZsZXQiCisgaW50ZXJmYWNlIG9yIGludHJvc3BlY3Rpb24gZm9yIGEgc2V0U2VydmxldCBtZXRob2Q/CisgT3IsIGlzIGl0IHNhZmVyIHRvIGp1c3QgYWRkIHRoZSB0eXBlcyB3ZSB3YW50IGFzIHdlIHdhbnQgdGhlbT88L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2Q1MDUxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sCkBAIC0wLDAgKzEsODUyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjEwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorRHluYUFjdGlvbkZvcm0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5EeW5hQWN0aW9uRm9ybSxEeW5hQWN0aW9uRm9ybSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRHluYUFjdGlvbkZvcm0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRHluYUFjdGlvbkZvcm0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkR5bmFBY3Rpb25Gb3JtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBEeW5hQWN0aW9uRm9ybTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5EeW5hQWN0aW9uRm9ybTwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUJlYW4sIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JGb3JtPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5EeW5hQWN0aW9uRm9ybTwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPjxEVD5pbXBsZW1lbnRzIG9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUJlYW48L0RMPgorCis8UD4KKzxwPlNwZWNpYWxpemVkIHN1YmNsYXNzIG9mIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IHRoYXQgYWxsb3dzIHRoZSBjcmVhdGlvbgorIG9mIGZvcm0gYmVhbnMgd2l0aCBkeW5hbWljIHNldHMgb2YgcHJvcGVydGllcywgd2l0aG91dCByZXF1aXJpbmcgdGhlCisgZGV2ZWxvcGVyIHRvIGNyZWF0ZSBhIEphdmEgY2xhc3MgZm9yIGVhY2ggdHlwZSBvZiBmb3JtIGJlYW4uPC9wPgorCisgPHA+PHN0cm9uZz5VU0FHRSBOT1RFPC9zdHJvbmc+IC0gU2luY2UgU3RydXRzIDEuMSwgdGhlCisgPGNvZGU+cmVzZXQoKTwvY29kZT4gbWV0aG9kIG5vIGxvbmdlciBpbml0aWFsaXplcyBwcm9wZXJ0eSB2YWx1ZXMgdG8gdGhvc2UKKyBzcGVjaWZpZWQgaW4gPGNvZGU+Jmx0O2Zvcm0tcHJvcGVydHkmZ3Q7PC9jb2RlPiBlbGVtZW50cyBpbiB0aGUgU3RydXRzCisgbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS4gIElmIHlvdSB3aXNoIHRvIHV0aWxpemUgdGhhdCBiZWhhdmlvciwgdGhlCisgc2ltcGxlc3Qgc29sdXRpb24gaXMgdG8gc3ViY2xhc3MgPGNvZGU+RHluYUFjdGlvbkZvcm08L2NvZGU+IGFuZCBjYWxsCisgdGhlIDxjb2RlPmluaXRpYWxpemUoKTwvY29kZT4gbWV0aG9kIGluc2lkZSBpdC48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkR5bmFBY3Rpb25Gb3JtIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2R5bmFDbGFzcyI+ZHluYUNsYXNzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBEeW5hQWN0aW9uRm9ybUNsYXNzIHdpdGggd2hpY2ggd2UgYXJlIGFzc29jaWF0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNkeW5hVmFsdWVzIj5keW5hVmFsdWVzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXQgb2YgcHJvcGVydHkgdmFsdWVzIGZvciB0aGlzIER5bmFBY3Rpb25Gb3JtLCBrZXllZCBieQorIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjbXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIiPm11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI0R5bmFBY3Rpb25Gb3JtKCkiPkR5bmFBY3Rpb25Gb3JtPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNjb250YWlucyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+Y29udGFpbnM8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbmRpY2F0ZXMgaWYgdGhlIHNwZWNpZmllZCBtYXBwZWQgcHJvcGVydHkgY29udGFpbiBhIHZhbHVlIGZvciB0aGUgc3BlY2lmaWVkCisga2V5IHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2dldChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHZhbHVlIG9mIGEgc2ltcGxlIHByb3BlcnR5IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2dldChqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj5nZXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICBpbnQmbmJzcDtpbmRleCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgdmFsdWUgb2YgYW4gaW5kZXhlZCBwcm9wZXJ0eSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNnZXQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmdldDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHZhbHVlIG9mIGEgbWFwcGVkIHByb3BlcnR5IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLAorIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZXJlIGlzIG5vIHZhbHVlIGZvciB0aGUgc3BlY2lmaWVkIGtleS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5EeW5hQ2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjZ2V0RHluYUNsYXNzKCkiPmdldER5bmFDbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgPGNvZGU+RHluYUNsYXNzPC9jb2RlPiBpbnN0YW5jZSB0aGF0IGRlc2NyaWJlcyB0aGUgc2V0IG9mCisgcHJvcGVydGllcyBhdmFpbGFibGUgZm9yIHRoaXMgRHluYUJlYW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFQcm9wZXJ0eTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNnZXREeW5hUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPmdldER5bmFQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBwcm9wZXJ0eSBkZXNjcmlwdG9yIGZvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5NYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjZ2V0TWFwKCkiPmdldE1hcDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIDxjb2RlPk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcHJvcGVydHkgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2luaXRpYWxpemUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5pbml0aWFsaXplPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSBhbGwgYmVhbiBwcm9wZXJ0aWVzIHRvIHRoZWlyIGluaXRpYWwgdmFsdWVzLCBhcyBzcGVjaWZpZWQKKyBpbiB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj48Q09ERT5Gb3JtUHJvcGVydHlDb25maWc8L0NPREU+PC9BPiBlbGVtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhlCisgZGVmaW5pdGlvbiBvZiB0aGlzIDxjb2RlPkR5bmFBY3Rpb25Gb3JtPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjaXNEeW5hQXNzaWduYWJsZShqYXZhLmxhbmcuQ2xhc3MsIGphdmEubGFuZy5DbGFzcykiPmlzRHluYUFzc2lnbmFibGU8L0E+PC9CPihqYXZhLmxhbmcuQ2xhc3MmbmJzcDtkZXN0LAorICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuQ2xhc3MmbmJzcDtzb3VyY2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbmRpY2F0ZXMgaWYgYW4gb2JqZWN0IG9mIHRoZSBzb3VyY2UgY2xhc3MgaXMgYXNzaWduYWJsZSB0byB0aGUgZGVzdGluYXRpb24gY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjcmVtb3ZlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5yZW1vdmU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIGFueSBleGlzdGluZyB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCBrZXkgb24gdGhlCisgc3BlY2lmaWVkIG1hcHBlZCBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldCBhbGwgYmVhbiBwcm9wZXJ0aWVzIHRvIHRoZWlyIGRlZmF1bHQgc3RhdGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjcmVzZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj5yZXNldDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVzZXQgYWxsIGJlYW4gcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHN0YXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI3NldChqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGphdmEubGFuZy5PYmplY3QpIj5zZXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICBpbnQmbmJzcDtpbmRleCwKKyAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHZhbHVlIG9mIGFuIGluZGV4ZWQgcHJvcGVydHkgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjc2V0KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj5zZXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHZhbHVlIG9mIGEgc2ltcGxlIHByb3BlcnR5IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI3NldChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+c2V0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHZhbHVlIG9mIGEgbWFwcGVkIHByb3BlcnR5IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4ocGFja2FnZSBwcml2YXRlKSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI3NldER5bmFBY3Rpb25Gb3JtQ2xhc3Mob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkR5bmFBY3Rpb25Gb3JtQ2xhc3MpIj5zZXREeW5hQWN0aW9uRm9ybUNsYXNzPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4mbmJzcDtkeW5hQ2xhc3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIER5bmFBY3Rpb25Gb3JtQ2xhc3MgaW5zdGFuY2UgdGhhdCB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVuZGVyIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjZ2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIoKSI+Z2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI2dldFNlcnZsZXQoKSI+Z2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjZ2V0U2VydmxldFdyYXBwZXIoKSI+Z2V0U2VydmxldFdyYXBwZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3NldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyKG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcikiPnNldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+c2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImR5bmFDbGFzcyI+PCEtLSAtLT48L0E+PEgzPgorZHluYUNsYXNzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4gPEI+ZHluYUNsYXNzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBEeW5hQWN0aW9uRm9ybUNsYXNzIHdpdGggd2hpY2ggd2UgYXJlIGFzc29jaWF0ZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkeW5hVmFsdWVzIj48IS0tIC0tPjwvQT48SDM+CitkeW5hVmFsdWVzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2hNYXAgPEI+ZHluYVZhbHVlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIHByb3BlcnR5IHZhbHVlcyBmb3IgdGhpcyBEeW5hQWN0aW9uRm9ybSwga2V5ZWQgYnkKKyBwcm9wZXJ0eSBuYW1lLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkR5bmFBY3Rpb25Gb3JtKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0R5bmFBY3Rpb25Gb3JtPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RHluYUFjdGlvbkZvcm08L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImluaXRpYWxpemUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48IS0tIC0tPjwvQT48SDM+Citpbml0aWFsaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5pbml0aWFsaXplPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9QUkU+Cis8REw+Cis8REQ+PHA+SW5pdGlhbGl6ZSBhbGwgYmVhbiBwcm9wZXJ0aWVzIHRvIHRoZWlyIGluaXRpYWwgdmFsdWVzLCBhcyBzcGVjaWZpZWQKKyBpbiB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj48Q09ERT5Gb3JtUHJvcGVydHlDb25maWc8L0NPREU+PC9BPiBlbGVtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhlCisgZGVmaW5pdGlvbiBvZiB0aGlzIDxjb2RlPkR5bmFBY3Rpb25Gb3JtPC9jb2RlPi48L3A+Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIG1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZTxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3Jlc2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZXNldDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+PHA+UmVzZXQgYWxsIGJlYW4gcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHN0YXRlLiAgVGhpcyBtZXRob2QgaXMKKyBjYWxsZWQgYmVmb3JlIHRoZSBwcm9wZXJ0aWVzIGFyZSByZXBvcHVsYXRlZCBieSB0aGUgY29udHJvbGxlcgorIHNlcnZsZXQuPC9wPgorIAorIDxwPlRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGF0dGVtcHRzIHRvIGZvcndhcmQgdG8gdGhlIEhUVFAKKyB2ZXJzaW9uIG9mIHRoaXMgbWV0aG9kLjwvcD4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3Jlc2V0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0KSI+cmVzZXQ8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIG1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZTxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlc2V0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorcmVzZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlc2V0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD48cD5SZXNldCBhbGwgYmVhbiBwcm9wZXJ0aWVzIHRvIHRoZWlyIGRlZmF1bHQgc3RhdGUuICBUaGlzIG1ldGhvZCBpcworIGNhbGxlZCBiZWZvcmUgdGhlIHByb3BlcnRpZXMgYXJlIHJlcG9wdWxhdGVkIGJ5IHRoZSBjb250cm9sbGVyIHNlcnZsZXQuCisgPC9wPgorIAorIDxwPlRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIChzaW5jZSBTdHJ1dHMgMS4xKSBkb2VzIG5vdGhpbmcuCisgU3ViY2xhc3NlcyBtYXkgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcmVzZXQgYmVhbiBwcm9wZXJ0aWVzIHRvCisgZGVmYXVsdCB2YWx1ZXMsIG9yIHRoZSA8Y29kZT5pbml0aWFsaXplKCk8L2NvZGU+IG1ldGhvZCBtYXkgYmUgdXNlZCB0bworIGluaXRpYWxpemUgcHJvcGVydHkgdmFsdWVzIHRvIHRob3NlIHByb3ZpZGVkIGluIHRoZSBmb3JtIHByb3BlcnR5CisgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiAod2hpY2ggd2FzIHRoZSBwcmV2aW91cyBiZWhhdmlvciBvZgorIHRoaXMgbWV0aG9kKS48L3A+Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBtYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb250YWlucyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorY29udGFpbnM8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmNvbnRhaW5zPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+SW5kaWNhdGVzIGlmIHRoZSBzcGVjaWZpZWQgbWFwcGVkIHByb3BlcnR5IGNvbnRhaW4gYSB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZAorIGtleSB2YWx1ZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5jb250YWluczwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUJlYW48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGNoZWNrPEREPjxDT0RFPmtleTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBrZXkgdG8gY2hlY2sKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlcmUgaXMgbm8gcHJvcGVydHkKKyAgb2YgdGhlIHNwZWNpZmllZCBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Z2V0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHZhbHVlIG9mIGEgc2ltcGxlIHByb3BlcnR5IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUJlYW48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIHByb3BlcnR5IHdob3NlIHZhbHVlIGlzIHRvIGJlIHJldHJpZXZlZAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGVyZSBpcyBubyBwcm9wZXJ0eQorICBvZiB0aGUgc3BlY2lmaWVkIG5hbWUKKzxERD48Q09ERT5qYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIHR5cGUgc3BlY2lmaWVkIGZvciB0aGUKKyAgcHJvcGVydHkgaXMgaW52YWxpZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0KGphdmEubGFuZy5TdHJpbmcsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Z2V0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtpbmRleCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHZhbHVlIG9mIGFuIGluZGV4ZWQgcHJvcGVydHkgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+b3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5EeW5hQmVhbjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgcHJvcGVydHkgd2hvc2UgdmFsdWUgaXMgdG8gYmUgcmV0cmlldmVkPEREPjxDT0RFPmluZGV4PC9DT0RFPiAtIEluZGV4IG9mIHRoZSB2YWx1ZSB0byBiZSByZXRyaWV2ZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlcmUgaXMgbm8gcHJvcGVydHkKKyAgb2YgdGhlIHNwZWNpZmllZCBuYW1lCis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5CisgIGV4aXN0cywgYnV0IGlzIG5vdCBpbmRleGVkCis8REQ+PENPREU+amF2YS5sYW5nLkluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIHNwZWNpZmllZCBpbmRleAorICBpcyBvdXRzaWRlIHRoZSByYW5nZSBvZiB0aGUgdW5kZXJseWluZyBwcm9wZXJ0eQorPEREPjxDT0RFPmphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBubyBhcnJheSBvciBMaXN0IGhhcyBiZWVuCisgIGluaXRpYWxpemVkIGZvciB0aGlzIHByb3BlcnR5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Z2V0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgdmFsdWUgb2YgYSBtYXBwZWQgcHJvcGVydHkgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUsCisgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlcmUgaXMgbm8gdmFsdWUgZm9yIHRoZSBzcGVjaWZpZWQga2V5LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUJlYW48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIHByb3BlcnR5IHdob3NlIHZhbHVlIGlzIHRvIGJlIHJldHJpZXZlZDxERD48Q09ERT5rZXk8L0NPREU+IC0gS2V5IG9mIHRoZSB2YWx1ZSB0byBiZSByZXRyaWV2ZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlcmUgaXMgbm8gcHJvcGVydHkKKyAgb2YgdGhlIHNwZWNpZmllZCBuYW1lCis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5CisgIGV4aXN0cywgYnV0IGlzIG5vdCBtYXBwZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldER5bmFDbGFzcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXREeW5hQ2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFDbGFzcyA8Qj5nZXREeW5hQ2xhc3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIDxjb2RlPkR5bmFDbGFzczwvY29kZT4gaW5zdGFuY2UgdGhhdCBkZXNjcmliZXMgdGhlIHNldCBvZgorIHByb3BlcnRpZXMgYXZhaWxhYmxlIGZvciB0aGlzIER5bmFCZWFuLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldER5bmFDbGFzczwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUJlYW48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNYXAoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWFwPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLk1hcCA8Qj5nZXRNYXA8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSA8Y29kZT5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHByb3BlcnR5IHZhbHVlcy4gIFRoaXMgaXMKKyBkb25lIG1vc3RseSB0byBmYWNpbGl0YXRlIGFjY2Vzc2luZyB0aGUgPGNvZGU+RHluYUFjdGlvbkZvcm08L2NvZGU+CisgdGhyb3VnaCBKYXZhQmVhbnMgYWNjZXNzb3JzLCBpbiBvcmRlciB0byB1c2UgdGhlIEphdmFTZXJ2ZXIgUGFnZXMKKyBTdGFuZGFyZCBUYWcgTGlicmFyeS4KKzxwPgorIEZvciBpbnN0YW5jZSwgdGhlIG5vcm1hbCBKU1RMIEVMIHN5bnRheCBmb3IgYWNjZXNzaW5nIGFuCisgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gd291bGQgYmUgc29tZXRoaW5nIGxpa2UgdGhpczoKKyA8cHJlPgorICAke2Zvcm1iZWFuLnByb3B9PC9wcmU+CisgVGhlIEpTVEwgRUwgc3ludGF4IGZvciBhY2Nlc3NpbmcgYSA8Y29kZT5EeW5hQWN0aW9uRm9ybTwvY29kZT4gbG9va3MKKyBzb21ldGhpbmcgbGlrZSB0aGlzIChiZWNhdXNlIG9mIHRoZSBwcmVzZW5jZSBvZiB0aGlzCisgPGNvZGU+Z2V0TWFwKCk8L2NvZGU+IG1ldGhvZCk6CisgPHByZT4KKyAgJHtkeW5hYmVhbi5tYXAucHJvcH08L3ByZT4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbW92ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD5SZW1vdmUgYW55IGV4aXN0aW5nIHZhbHVlIGZvciB0aGUgc3BlY2lmaWVkIGtleSBvbiB0aGUKKyBzcGVjaWZpZWQgbWFwcGVkIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbW92ZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUJlYW48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIHByb3BlcnR5IGZvciB3aGljaCBhIHZhbHVlIGlzIHRvCisgIGJlIHJlbW92ZWQ8REQ+PENPREU+a2V5PC9DT0RFPiAtIEtleSBvZiB0aGUgdmFsdWUgdG8gYmUgcmVtb3ZlZAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGVyZSBpcyBubyBwcm9wZXJ0eQorICBvZiB0aGUgc3BlY2lmaWVkIG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHZhbHVlIG9mIGEgc2ltcGxlIHByb3BlcnR5IHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnNldDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUJlYW48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIHByb3BlcnR5IHdob3NlIHZhbHVlIGlzIHRvIGJlIHNldDxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBWYWx1ZSB0byB3aGljaCB0aGlzIHByb3BlcnR5IGlzIHRvIGJlIHNldAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+b3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5Db252ZXJzaW9uRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUgY2Fubm90IGJlCisgIGNvbnZlcnRlZCB0byB0aGUgdHlwZSByZXF1aXJlZCBmb3IgdGhpcyBwcm9wZXJ0eQorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlcmUgaXMgbm8gcHJvcGVydHkKKyAgb2YgdGhlIHNwZWNpZmllZCBuYW1lCis8REQ+PENPREU+amF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSB0eXBlIHNwZWNpZmllZCBmb3IgdGhlCisgIHByb3BlcnR5IGlzIGludmFsaWQKKzxERD48Q09ERT5qYXZhLmxhbmcuTnVsbFBvaW50ZXJFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gYXR0ZW1wdCBpcyBtYWRlIHRvIHNldCBhCisgIHByaW1pdGl2ZSBwcm9wZXJ0eSB0byBudWxsPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXQoamF2YS5sYW5nLlN0cmluZywgaW50LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgIGludCZuYnNwO2luZGV4LAorICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHZhbHVlIG9mIGFuIGluZGV4ZWQgcHJvcGVydHkgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+c2V0PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+b3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5EeW5hQmVhbjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgcHJvcGVydHkgd2hvc2UgdmFsdWUgaXMgdG8gYmUgc2V0PEREPjxDT0RFPmluZGV4PC9DT0RFPiAtIEluZGV4IG9mIHRoZSBwcm9wZXJ0eSB0byBiZSBzZXQ8REQ+PENPREU+dmFsdWU8L0NPREU+IC0gVmFsdWUgdG8gd2hpY2ggdGhpcyBwcm9wZXJ0eSBpcyB0byBiZSBzZXQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuQ29udmVyc2lvbkV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlIGNhbm5vdCBiZQorICBjb252ZXJ0ZWQgdG8gdGhlIHR5cGUgcmVxdWlyZWQgZm9yIHRoaXMgcHJvcGVydHkKKzxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZXJlIGlzIG5vIHByb3BlcnR5CisgIG9mIHRoZSBzcGVjaWZpZWQgbmFtZQorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eQorICBleGlzdHMsIGJ1dCBpcyBub3QgaW5kZXhlZAorPEREPjxDT0RFPmphdmEubGFuZy5JbmRleE91dE9mQm91bmRzRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBzcGVjaWZpZWQgaW5kZXgKKyAgaXMgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgdGhlIHVuZGVybHlpbmcgcHJvcGVydHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgdmFsdWUgb2YgYSBtYXBwZWQgcHJvcGVydHkgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+c2V0PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+b3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5EeW5hQmVhbjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgcHJvcGVydHkgd2hvc2UgdmFsdWUgaXMgdG8gYmUgc2V0PEREPjxDT0RFPmtleTwvQ09ERT4gLSBLZXkgb2YgdGhlIHByb3BlcnR5IHRvIGJlIHNldDxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBWYWx1ZSB0byB3aGljaCB0aGlzIHByb3BlcnR5IGlzIHRvIGJlIHNldAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+b3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5Db252ZXJzaW9uRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUgY2Fubm90IGJlCisgIGNvbnZlcnRlZCB0byB0aGUgdHlwZSByZXF1aXJlZCBmb3IgdGhpcyBwcm9wZXJ0eQorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlcmUgaXMgbm8gcHJvcGVydHkKKyAgb2YgdGhlIHNwZWNpZmllZCBuYW1lCis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5CisgIGV4aXN0cywgYnV0IGlzIG5vdCBtYXBwZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRvU3RyaW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3RvU3RyaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj50b1N0cmluZzwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbmRlciBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT50b1N0cmluZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldER5bmFBY3Rpb25Gb3JtQ2xhc3Mob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkR5bmFBY3Rpb25Gb3JtQ2xhc3MpIj48IS0tIC0tPjwvQT48SDM+CitzZXREeW5hQWN0aW9uRm9ybUNsYXNzPC9IMz4KKzxQUkU+Cit2b2lkIDxCPnNldER5bmFBY3Rpb25Gb3JtQ2xhc3M8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0E+Jm5ic3A7ZHluYUNsYXNzKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgRHluYUFjdGlvbkZvcm1DbGFzcyBpbnN0YW5jZSB0aGF0IHdlIGFyZSBhc3NvY2lhdGVkIHdpdGguCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmR5bmFDbGFzczwvQ09ERT4gLSBUaGUgRHluYUFjdGlvbkZvcm1DbGFzcyBpbnN0YW5jZSBmb3IgdGhpcyBiZWFuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXREeW5hUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldER5bmFQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIG9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYVByb3BlcnR5IDxCPmdldER5bmFQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBkZXNjcmlwdG9yIGZvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG5hbWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgcHJvcGVydHkgZm9yIHdoaWNoIHRvIHJldHJpZXZlIHRoZSBkZXNjcmlwdG9yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgaXMgbm90IGEgdmFsaWQgcHJvcGVydHkKKyAgbmFtZSBmb3Igb3VyIER5bmFDbGFzczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNEeW5hQXNzaWduYWJsZShqYXZhLmxhbmcuQ2xhc3MsIGphdmEubGFuZy5DbGFzcykiPjwhLS0gLS0+PC9BPjxIMz4KK2lzRHluYUFzc2lnbmFibGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmlzRHluYUFzc2lnbmFibGU8L0I+KGphdmEubGFuZy5DbGFzcyZuYnNwO2Rlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5DbGFzcyZuYnNwO3NvdXJjZSk8L1BSRT4KKzxETD4KKzxERD5JbmRpY2F0ZXMgaWYgYW4gb2JqZWN0IG9mIHRoZSBzb3VyY2UgY2xhc3MgaXMgYXNzaWduYWJsZSB0byB0aGUgZGVzdGluYXRpb24gY2xhc3MuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRlc3Q8L0NPREU+IC0gRGVzdGluYXRpb24gY2xhc3M8REQ+PENPREU+c291cmNlPC9DT0RFPiAtIFNvdXJjZSBjbGFzczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRHluYUFjdGlvbkZvcm0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkR5bmFBY3Rpb25Gb3JtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjE5Y2VhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwKQEAgLTAsMCArMSw2ODUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MTAgRURUIDIwMDMgLS0+Cis8VElUTEU+CitEeW5hQWN0aW9uRm9ybUNsYXNzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRHluYUFjdGlvbkZvcm1DbGFzcyxEeW5hQWN0aW9uRm9ybUNsYXNzIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJEeW5hQWN0aW9uRm9ybUNsYXNzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkR5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzIER5bmFBY3Rpb25Gb3JtQ2xhc3M8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRHluYUFjdGlvbkZvcm1DbGFzczwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUNsYXNzLCBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5EeW5hQWN0aW9uRm9ybUNsYXNzPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFDbGFzcywgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KKzxwPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPkR5bmFDbGFzczwvY29kZT4gZm9yCisgPGNvZGU+RHluYUFjdGlvbkZvcm08L2NvZGU+IGNsYXNzZXMgdGhhdCBhbGxvdyBkZXZlbG9wZXJzIHRvIGRlZmluZQorIEFjdGlvbkZvcm1zIHdpdGhvdXQgaGF2aW5nIHRvIGluZGl2aWR1YWxseSBjb2RlIGFsbCBvZiB0aGUgY2xhc3Nlcy4KKyA8c3Ryb25nPk5PVEU8L3N0cm9uZz4gLSBUaGlzIGNsYXNzIGlzIG9ubHkgdXNlZCBpbiB0aGUgaW50ZXJuYWwKKyBpbXBsZW1lbnRhdGlvbiBvZiBkeW5hbWljIGFjdGlvbiBmb3JtIGJlYW5zLiAgQXBwbGljYXRpb25zIG5ldmVyIG5lZWQKKyB0byBjb25zdWx0IHRoaXMgZG9jdW1lbnRhdGlvbi48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkR5bmFBY3Rpb25Gb3JtQ2xhc3MiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLkNsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjYmVhbkNsYXNzIj5iZWFuQ2xhc3M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPkR5bmFBY3Rpb25Gb3JtPC9jb2RlPiBpbXBsZW1lbnRhdGlvbiA8Y29kZT5DbGFzczwvY29kZT4gd2hpY2gKKyB3ZSB3aWxsIHVzZSB0byBjcmVhdGUgbmV3IGJlYW4gaW5zdGFuY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sI2NvbmZpZyI+Y29uZmlnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBmb3JtIGJlYW4gY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBmb3IgdGhpcyBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO2phdmEudXRpbC5IYXNoTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjZHluYUNsYXNzZXMiPmR5bmFDbGFzc2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXQgb2YgPGNvZGU+RHluYUFjdGlvbkZvcm1DbGFzczwvY29kZT4gaW5zdGFuY2VzIHRoYXQgaGF2ZQorIGV2ZXIgYmVlbiBjcmVhdGVkLCBrZXllZCBieSB0aGUgZm9ybSBiZWFuIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjbG9jayI+bG9jazwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbG9ja2FibGUgb2JqZWN0IHdlIGNhbiBzeW5jaHJvbml6ZSBvbiwgZXZlbiBpZiBkeW5hQ2xhc3NlcworIGlzIG51bGwsPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgImR5bmFtaWMgY2xhc3MgbmFtZSIgZm9yIHRoaXMgPGNvZGU+RHluYUNsYXNzPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYVByb3BlcnR5W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNwcm9wZXJ0aWVzIj5wcm9wZXJ0aWVzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXQgb2YgZHluYW1pYyBwcm9wZXJ0aWVzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBEeW5hQ2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sI3Byb3BlcnRpZXNNYXAiPnByb3BlcnRpZXNNYXA8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBkeW5hbWljIHByb3BlcnRpZXMgdGhhdCBhcmUgcGFydCBvZiB0aGlzIER5bmFDbGFzcywKKyBrZXllZCBieSB0aGUgcHJvcGVydHkgbmFtZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNEeW5hQWN0aW9uRm9ybUNsYXNzKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IER5bmFBY3Rpb25Gb3JtQ2xhc3MgZm9yIHRoZSBzcGVjaWZpZWQgZm9ybSBiZWFuCisgY29uZmlndXJhdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjY2xlYXIoKSI+Y2xlYXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDbGVhciBvdXIgY2FjaGUgb2YgRHluYUFjdGlvbkZvcm1DbGFzcyBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjY3JlYXRlRHluYUFjdGlvbkZvcm1DbGFzcyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWcpIj5jcmVhdGVEeW5hQWN0aW9uRm9ybUNsYXNzPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSAoaWYgbmVjZXNzYXJ5KSBhbmQgcmV0dXJuIGEgbmV3IDxjb2RlPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L2NvZGU+CisgaW5zdGFuY2UgZm9yIHRoZSBzcGVjaWZpZWQgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuQ2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNnZXRCZWFuQ2xhc3MoKSI+Z2V0QmVhbkNsYXNzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBpbXBsZW1lbnRhdGlvbiBjbGFzcyB3ZSBhcmUgdXNpbmcgdG8gY29uc3RydWN0IG5ldworIGluc3RhbmNlcywgcmUtaW50cm9zcGVjdGluZyBvdXIgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPjxDT0RFPkZvcm1CZWFuQ29uZmlnPC9DT0RFPjwvQT4gaWYgbmVjZXNzYXJ5CisgKHRoYXQgaXMsIGFmdGVyIGJlaW5nIGRlc2VyaWFsaXplZCwgc2luY2UgPGNvZGU+YmVhbkNsYXNzPC9jb2RlPiBpcworIG1hcmtlZCB0cmFuc2llbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYVByb3BlcnR5W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNnZXREeW5hUHJvcGVydGllcygpIj5nZXREeW5hUHJvcGVydGllczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBhbiBhcnJheSBvZiA8Y29kZT5EeW5hUHJvcGVydHk8L2NvZGU+cyBmb3IgdGhlIHByb3BlcnRpZXMKKyBjdXJyZW50bHkgZGVmaW5lZCBpbiB0aGlzIER5bmFDbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5EeW5hUHJvcGVydHk8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNnZXREeW5hUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPmdldER5bmFQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGEgcHJvcGVydHkgZGVzY3JpcHRvciBmb3IgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSwgaWYgaXQgZXhpc3RzOworIG90aGVyd2lzZSwgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBuYW1lIG9mIHRoaXMgRHluYUNsYXNzIChhbmFsb2dvdXMgdG8gdGhlCisgPGNvZGU+Z2V0TmFtZSgpPC9jb2RlPiBtZXRob2Qgb2YgPGNvZGU+amF2YS5sYW5nLkNsYXNzPC9jb2RlKSwgd2hpY2gKKyBhbGxvd3MgdGhlIHNhbWUgPGNvZGU+RHluYUNsYXNzPC9jb2RlPiBpbXBsZW1lbnRhdGlvbiBjbGFzcyB0byBzdXBwb3J0CisgZGlmZmVyZW50IGR5bmFtaWMgY2xhc3Nlcywgd2l0aCBkaWZmZXJlbnQgc2V0cyBvZiBwcm9wZXJ0aWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sI2ludHJvc3BlY3Qob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnKSI+aW50cm9zcGVjdDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbnRyb3NwZWN0IG91ciBmb3JtIGJlYW4gY29uZmlndXJhdGlvbiB0byBpZGVudGlmeSB0aGUgc3VwcG9ydGVkCisgcHJvcGVydGllcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5EeW5hQmVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sI25ld0luc3RhbmNlKCkiPm5ld0luc3RhbmNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5zdGFudGlhdGUgYW5kIHJldHVybiBhIG5ldyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCI+PENPREU+RHluYUFjdGlvbkZvcm08L0NPREU+PC9BPiBpbnN0YW5jZSwKKyBhc3NvY2lhdGVkIHdpdGggdGhpcyA8Y29kZT5EeW5hQWN0aW9uRm9ybUNsYXNzPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVuZGVyIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJiZWFuQ2xhc3MiPjwhLS0gLS0+PC9BPjxIMz4KK2JlYW5DbGFzczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHRyYW5zaWVudCBqYXZhLmxhbmcuQ2xhc3MgPEI+YmVhbkNsYXNzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSA8Y29kZT5EeW5hQWN0aW9uRm9ybTwvY29kZT4gaW1wbGVtZW50YXRpb24gPGNvZGU+Q2xhc3M8L2NvZGU+IHdoaWNoCisgd2Ugd2lsbCB1c2UgdG8gY3JlYXRlIG5ldyBiZWFuIGluc3RhbmNlcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbmZpZyI+PCEtLSAtLT48L0E+PEgzPgorY29uZmlnPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPiA8Qj5jb25maWc8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGZvciB0aGlzIGNsYXNzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgImR5bmFtaWMgY2xhc3MgbmFtZSIgZm9yIHRoaXMgPGNvZGU+RHluYUNsYXNzPC9jb2RlPi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnRpZXMiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnRpZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFQcm9wZXJ0eVtdIDxCPnByb3BlcnRpZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBkeW5hbWljIHByb3BlcnRpZXMgdGhhdCBhcmUgcGFydCBvZiB0aGlzIER5bmFDbGFzcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnRpZXNNYXAiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnRpZXNNYXA8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuSGFzaE1hcCA8Qj5wcm9wZXJ0aWVzTWFwPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgZHluYW1pYyBwcm9wZXJ0aWVzIHRoYXQgYXJlIHBhcnQgb2YgdGhpcyBEeW5hQ2xhc3MsCisga2V5ZWQgYnkgdGhlIHByb3BlcnR5IG5hbWUuICBJbmRpdmlkdWFsIGRlc2NyaXB0b3IgaW5zdGFuY2VzIHdpbGwKKyBiZSB0aGUgc2FtZSBpbnN0YW5jZXMgYXMgdGhvc2UgaW4gdGhlIDxjb2RlPnByb3BlcnRpZXM8L2NvZGU+IGxpc3QuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkeW5hQ2xhc3NlcyI+PCEtLSAtLT48L0E+PEgzPgorZHluYUNsYXNzZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgdHJhbnNpZW50IGphdmEudXRpbC5IYXNoTWFwIDxCPmR5bmFDbGFzc2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgPGNvZGU+RHluYUFjdGlvbkZvcm1DbGFzczwvY29kZT4gaW5zdGFuY2VzIHRoYXQgaGF2ZQorIGV2ZXIgYmVlbiBjcmVhdGVkLCBrZXllZCBieSB0aGUgZm9ybSBiZWFuIG5hbWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2NrIj48IS0tIC0tPjwvQT48SDM+Citsb2NrPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPEI+bG9jazwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbG9ja2FibGUgb2JqZWN0IHdlIGNhbiBzeW5jaHJvbml6ZSBvbiwgZXZlbiBpZiBkeW5hQ2xhc3NlcworIGlzIG51bGwsCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRHluYUFjdGlvbkZvcm1DbGFzcyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CitEeW5hQWN0aW9uRm9ybUNsYXNzPC9IMz4KKzxQUkU+Citwcml2YXRlIDxCPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IER5bmFBY3Rpb25Gb3JtQ2xhc3MgZm9yIHRoZSBzcGVjaWZpZWQgZm9ybSBiZWFuCisgY29uZmlndXJhdGlvbi4gIFRoaXMgY29uc3RydWN0b3IgaXMgcHJpdmF0ZTsgRHluYUFjdGlvbkZvcm1DbGFzcworIGluc3RhbmNlcyB3aWxsIGJlIGNyZWF0ZWQgYXMgbmVlZGVkIHZpYSBjYWxscyB0byB0aGUKKyBzdGF0aWMgPGNvZGU+Y3JlYXRlRHluYUFjdGlvbkZvcm1DbGFzcygpPC9jb2RlPiBtZXRob2QuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIFRoZSBGb3JtQmVhbkNvbmZpZyBpbnN0YW5jZSBkZXNjcmliaW5nIHRoZSBwcm9wZXJ0aWVzCisgIG9mIHRoZSBiZWFuIHRvIGJlIGNyZWF0ZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGJlYW4gaW1wbGVtZW50YXRpb24gY2xhc3MKKyAgc3BlY2lmaWVkIGluIHRoZSBjb25maWd1cmF0aW9uIGlzIG5vdCBEeW5hQWN0aW9uRm9ybSAob3IgYSBzdWJjbGFzcworICBvZiBEeW5hQWN0aW9uRm9ybSk8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG5hbWUgb2YgdGhpcyBEeW5hQ2xhc3MgKGFuYWxvZ291cyB0byB0aGUKKyA8Y29kZT5nZXROYW1lKCk8L2NvZGU+IG1ldGhvZCBvZiA8Y29kZT5qYXZhLmxhbmcuQ2xhc3M8L2NvZGUpLCB3aGljaAorIGFsbG93cyB0aGUgc2FtZSA8Y29kZT5EeW5hQ2xhc3M8L2NvZGU+IGltcGxlbWVudGF0aW9uIGNsYXNzIHRvIHN1cHBvcnQKKyBkaWZmZXJlbnQgZHluYW1pYyBjbGFzc2VzLCB3aXRoIGRpZmZlcmVudCBzZXRzIG9mIHByb3BlcnRpZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0TmFtZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUNsYXNzPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RHluYVByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXREeW5hUHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFQcm9wZXJ0eSA8Qj5nZXREeW5hUHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPlJldHVybiBhIHByb3BlcnR5IGRlc2NyaXB0b3IgZm9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHksIGlmIGl0IGV4aXN0czsKKyBvdGhlcndpc2UsIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXREeW5hUHJvcGVydHk8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5vcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFDbGFzczwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgZHluYW1pYyBwcm9wZXJ0eSBmb3Igd2hpY2ggYSBkZXNjcmlwdG9yCisgIGlzIHJlcXVlc3RlZAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBubyBwcm9wZXJ0eSBuYW1lIGlzIHNwZWNpZmllZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RHluYVByb3BlcnRpZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RHluYVByb3BlcnRpZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFQcm9wZXJ0eVtdIDxCPmdldER5bmFQcm9wZXJ0aWVzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PHA+UmV0dXJuIGFuIGFycmF5IG9mIDxjb2RlPkR5bmFQcm9wZXJ0eTwvY29kZT5zIGZvciB0aGUgcHJvcGVydGllcworIGN1cnJlbnRseSBkZWZpbmVkIGluIHRoaXMgRHluYUNsYXNzLiAgSWYgbm8gcHJvcGVydGllcyBhcmUgZGVmaW5lZCwgYQorIHplcm8tbGVuZ3RoIGFycmF5IHdpbGwgYmUgcmV0dXJuZWQuPC9wPgorCisgPHA+PHN0cm9uZz5GSVhNRTwvc3Ryb25nPiAtIFNob3VsZCB3ZSByZWFsbHkgYmUgaW1wbGVtZW50aW5nCisgPGNvZGU+Z2V0QmVhbkluZm8oKTwvY29kZT4gaW5zdGVhZCwgd2hpY2ggcmV0dXJucyBwcm9wZXJ0eSBkZXNjcmlwdG9ycworIGFuZCBhIGJ1bmNoIG9mIG90aGVyIHN0dWZmPzwvcD4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXREeW5hUHJvcGVydGllczwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUNsYXNzPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmV3SW5zdGFuY2UoKSI+PCEtLSAtLT48L0E+PEgzPgorbmV3SW5zdGFuY2U8L0gzPgorPFBSRT4KK3B1YmxpYyBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFCZWFuIDxCPm5ld0luc3RhbmNlPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5JbnN0YW50aWF0aW9uRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PHA+SW5zdGFudGlhdGUgYW5kIHJldHVybiBhIG5ldyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCI+PENPREU+RHluYUFjdGlvbkZvcm08L0NPREU+PC9BPiBpbnN0YW5jZSwKKyBhc3NvY2lhdGVkIHdpdGggdGhpcyA8Y29kZT5EeW5hQWN0aW9uRm9ybUNsYXNzPC9jb2RlPi4gIFRoZQorIHByb3BlcnRpZXMgb2YgdGhlIHJldHVybmVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj48Q09ERT5EeW5hQWN0aW9uRm9ybTwvQ09ERT48L0E+IHdpbGwgaGF2ZSBiZWVuCisgaW5pdGlhbGl6ZWQgdG8gdGhlIGRlZmF1bHQgdmFsdWVzIHNwZWNpZmllZCBpbiB0aGUgZm9ybSBiZWFuCisgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbi48L3A+Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+bmV3SW5zdGFuY2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5vcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFDbGFzczwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBDbGFzcyBvciB0aGUgYXBwcm9wcmlhdGUKKyAgY29uc3RydWN0b3IgaXMgbm90IGFjY2Vzc2libGUKKzxERD48Q09ERT5qYXZhLmxhbmcuSW5zdGFudGlhdGlvbkV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIENsYXNzIHJlcHJlc2VudHMgYW4gYWJzdHJhY3QKKyAgY2xhc3MsIGFuIGFycmF5IGNsYXNzLCBhIHByaW1pdGl2ZSB0eXBlLCBvciB2b2lkOyBvciBpZiBpbnN0YW50aWF0aW9uCisgIGZhaWxzIGZvciBzb21lIG90aGVyIHJlYXNvbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9TdHJpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgordG9TdHJpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU3RyaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVyIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnRvU3RyaW5nPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2xlYXIoKSI+PCEtLSAtLT48L0E+PEgzPgorY2xlYXI8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5jbGVhcjwvQj4oKTwvUFJFPgorPERMPgorPEREPkNsZWFyIG91ciBjYWNoZSBvZiBEeW5hQWN0aW9uRm9ybUNsYXNzIGluc3RhbmNlcy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlRHluYUFjdGlvbkZvcm1DbGFzcyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVEeW5hQWN0aW9uRm9ybUNsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0E+IDxCPmNyZWF0ZUR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIChpZiBuZWNlc3NhcnkpIGFuZCByZXR1cm4gYSBuZXcgPGNvZGU+RHluYUFjdGlvbkZvcm1DbGFzczwvY29kZT4KKyBpbnN0YW5jZSBmb3IgdGhlIHNwZWNpZmllZCBmb3JtIGJlYW4gY29uZmlndXJhdGlvbiBpbnN0YW5jZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIFRoZSBGb3JtQmVhbkNvbmZpZyBpbnN0YW5jZSBkZXNjcmliaW5nIHRoZSBwcm9wZXJ0aWVzCisgIG9mIHRoZSBiZWFuIHRvIGJlIGNyZWF0ZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGJlYW4gaW1wbGVtZW50YXRpb24gY2xhc3MKKyAgc3BlY2lmaWVkIGluIHRoZSBjb25maWd1cmF0aW9uIGlzIG5vdCBEeW5hQWN0aW9uRm9ybSAob3IgYSBzdWJjbGFzcworICBvZiBEeW5hQWN0aW9uRm9ybSk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEJlYW5DbGFzcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRCZWFuQ2xhc3M8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuQ2xhc3MgPEI+Z2V0QmVhbkNsYXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBpbXBsZW1lbnRhdGlvbiBjbGFzcyB3ZSBhcmUgdXNpbmcgdG8gY29uc3RydWN0IG5ldworIGluc3RhbmNlcywgcmUtaW50cm9zcGVjdGluZyBvdXIgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPjxDT0RFPkZvcm1CZWFuQ29uZmlnPC9DT0RFPjwvQT4gaWYgbmVjZXNzYXJ5CisgKHRoYXQgaXMsIGFmdGVyIGJlaW5nIGRlc2VyaWFsaXplZCwgc2luY2UgPGNvZGU+YmVhbkNsYXNzPC9jb2RlPiBpcworIG1hcmtlZCB0cmFuc2llbnQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImludHJvc3BlY3Qob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgoraW50cm9zcGVjdDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+aW50cm9zcGVjdDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5JbnRyb3NwZWN0IG91ciBmb3JtIGJlYW4gY29uZmlndXJhdGlvbiB0byBpZGVudGlmeSB0aGUgc3VwcG9ydGVkCisgcHJvcGVydGllcy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIFRoZSBGb3JtQmVhbkNvbmZpZyBpbnN0YW5jZSBkZXNjcmliaW5nIHRoZSBwcm9wZXJ0aWVzCisgIG9mIHRoZSBiZWFuIHRvIGJlIGNyZWF0ZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGJlYW4gaW1wbGVtZW50YXRpb24gY2xhc3MKKyAgc3BlY2lmaWVkIGluIHRoZSBjb25maWd1cmF0aW9uIGlzIG5vdCBEeW5hQWN0aW9uRm9ybSAob3IgYSBzdWJjbGFzcworICBvZiBEeW5hQWN0aW9uRm9ybSk8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkR5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRXhjZXB0aW9uSGFuZGxlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmNTNiNGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbApAQCAtMCwwICsxLDMwNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDoxMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0V4Y2VwdGlvbkhhbmRsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5FeGNlcHRpb25IYW5kbGVyLEV4Y2VwdGlvbkhhbmRsZXIgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkV4Y2VwdGlvbkhhbmRsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRXhjZXB0aW9uSGFuZGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRXhjZXB0aW9uSGFuZGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9GT05UPgorPEJSPgorQ2xhc3MgRXhjZXB0aW9uSGFuZGxlcjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5FeGNlcHRpb25IYW5kbGVyPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkV4Y2VwdGlvbkhhbmRsZXI8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDwvREw+CisKKzxQPgorQW4gRXhjZXB0aW9uSGFuZGxlciBpcyBjb25maWd1cmVkIGluIHRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlIHRvIGhhbmRsZSBhIHNwZWNpZmljCisgdHlwZSBvZiBleGNlcHRpb24gdGhyb3duIGJ5IGFuIEFjdGlvbidzIGV4ZWN1dGUgbWV0aG9kLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9FeGNlcHRpb25IYW5kbGVyLmh0bWwjRXhjZXB0aW9uSGFuZGxlcigpIj5FeGNlcHRpb25IYW5kbGVyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCNleGVjdXRlKGphdmEubGFuZy5FeGNlcHRpb24sIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oamF2YS5sYW5nLkV4Y2VwdGlvbiZuYnNwO2V4LAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4mbmJzcDthZSwKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm1JbnN0YW5jZSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtIYW5kbGUgdGhlIGV4Y2VwdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCNzdG9yZUV4Y2VwdGlvbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3IsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkLCBqYXZhLmxhbmcuU3RyaW5nKSI+c3RvcmVFeGNlcHRpb248L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSwKKyAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT4mbmJzcDtlcnJvciwKKyAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCwKKyAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIGhhbmRsaW5nIGFuIDxiPkFjdGlvbkVycm9yPC9iPiBnZW5lcmF0ZWQKKyBmcm9tIGFuIEV4Y2VwdGlvbiBkdXJpbmcgPGI+QWN0aW9uPC9iPiBkZWxlZ2F0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkV4Y2VwdGlvbkhhbmRsZXIoKSI+PCEtLSAtLT48L0E+PEgzPgorRXhjZXB0aW9uSGFuZGxlcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkV4Y2VwdGlvbkhhbmRsZXI8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImV4ZWN1dGUoamF2YS5sYW5nLkV4Y2VwdGlvbiwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK2V4ZWN1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiA8Qj5leGVjdXRlPC9CPihqYXZhLmxhbmcuRXhjZXB0aW9uJm5ic3A7ZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPiZuYnNwO2FlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybUluc3RhbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+SGFuZGxlIHRoZSBleGNlcHRpb24uCisgUmV0dXJuIHRoZSA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSAoaWYgYW55KSByZXR1cm5lZCBieQorIHRoZSBjYWxsZWQgPGNvZGU+RXhjZXB0aW9uSGFuZGxlcjwvY29kZT4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmV4PC9DT0RFPiAtIFRoZSBleGNlcHRpb24gdG8gaGFuZGxlPEREPjxDT0RFPmFlPC9DT0RFPiAtIFRoZSBFeGNlcHRpb25Db25maWcgY29ycmVzcG9uZGluZyB0byB0aGUgZXhjZXB0aW9uPEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+Zm9ybUluc3RhbmNlPC9DT0RFPiAtIFRoZSBBY3Rpb25Gb3JtIHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgc2VydmxldCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIG9jY3VyczxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzdG9yZUV4Y2VwdGlvbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3IsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc3RvcmVFeGNlcHRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPnN0b3JlRXhjZXB0aW9uPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT4mbmJzcDtlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L1BSRT4KKzxETD4KKzxERD5EZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciBoYW5kbGluZyBhbiA8Yj5BY3Rpb25FcnJvcjwvYj4gZ2VuZXJhdGVkCisgZnJvbSBhbiBFeGNlcHRpb24gZHVyaW5nIDxiPkFjdGlvbjwvYj4gZGVsZWdhdGlvbi4gIFRoZSBkZWZhdWx0CisgaW1wbGVtZW50YXRpb24gaXMgdG8gc2V0IGFuIGF0dHJpYnV0ZSBvZiB0aGUgcmVxdWVzdCBvciBzZXNzaW9uLCBhcworIGRlZmluZWQgYnkgdGhlIHNjb3BlIHByb3ZpZGVkICh0aGUgc2NvcGUgZnJvbSB0aGUgZXhjZXB0aW9uIG1hcHBpbmcpLiAgQW4KKyA8Yj5BY3Rpb25FcnJvcnM8L2I+IGluc3RhbmNlIGlzIGNyZWF0ZWQsIHRoZSBlcnJvciBpcyBhZGRlZCB0byB0aGUgY29sbGVjdGlvbgorIGFuZCB0aGUgY29sbGVjdGlvbiBpcyBzZXQgdW5kZXIgdGhlIEdsb2JhbHMuRVJST1JfS0VZLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIC0gVGhlIHJlcXVlc3Qgd2UgYXJlIGhhbmRsaW5nPEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIC0gVGhlIHByb3BlcnR5IG5hbWUgdG8gdXNlIGZvciB0aGlzIGVycm9yPEREPjxDT0RFPmVycm9yPC9DT0RFPiAtIC0gVGhlIGVycm9yIGdlbmVyYXRlZCBmcm9tIHRoZSBleGNlcHRpb24gbWFwcGluZzxERD48Q09ERT5mb3J3YXJkPC9DT0RFPiAtIC0gVGhlIGZvcndhcmQgZ2VuZXJhdGVkIGZyb20gdGhlIGlucHV0IHBhdGggKGZyb20gdGhlIGZvcm0gb3IgZXhjZXB0aW9uIG1hcHBpbmcpPEREPjxDT0RFPnNjb3BlPC9DT0RFPiAtIC0gVGhlIHNjb3BlIG9mIHRoZSBleGNlcHRpb24gbWFwcGluZy48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkV4Y2VwdGlvbkhhbmRsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZmYWRhMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbApAQCAtMCwwICsxLDI3MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDoxMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQsRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9FeGNlcHRpb25IYW5kbGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWciPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBGb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9ETD4KKworPFA+CitBIHN1YmNsYXNzIG9mIDxzdHJvbmc+QWN0aW9uRm9yd2FyZDwvc3Ryb25nPiB0aGF0IGRlZmF1bHRzIHRoZQorIDxjb2RlPnJlZGlyZWN0PC9jb2RlPiBhdHRyaWJ1dGUgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2NvbmZpZ3VyZWQiPmNvbmZpZ3VyZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2NvbnRleHRSZWxhdGl2ZSI+Y29udGV4dFJlbGF0aXZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNwYXRoIj5wYXRoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNyZWRpcmVjdCI+cmVkaXJlY3Q8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwjRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQoKSI+Rm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCBkZWZhdWx0IHZhbHVlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sI0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBwYXRoLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2ZyZWV6ZSgpIj5mcmVlemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2dldENvbnRleHRSZWxhdGl2ZSgpIj5nZXRDb250ZXh0UmVsYXRpdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjZ2V0UGF0aCgpIj5nZXRQYXRoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNnZXRSZWRpcmVjdCgpIj5nZXRSZWRpcmVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjc2V0Q29udGV4dFJlbGF0aXZlKGJvb2xlYW4pIj5zZXRDb250ZXh0UmVsYXRpdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI3NldFBhdGgoamF2YS5sYW5nLlN0cmluZykiPnNldFBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI3NldFJlZGlyZWN0KGJvb2xlYW4pIj5zZXRSZWRpcmVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQoKSI+PCEtLSAtLT48L0E+PEgzPgorRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvQj4oKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgdmFsdWVzLgorPFA+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJGb3J3YXJkaW5nQWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBwYXRoLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhdGg8L0NPREU+IC0gUGF0aCBmb3IgdGhpcyBpbnN0YW5jZTwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRXhjZXB0aW9uSGFuZGxlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUGx1Z0luLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1NGY5YTIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sCkBAIC0wLDAgKzEsMjYzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorUGx1Z0luIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUGx1Z0luLFBsdWdJbiBpbnRlcmZhY2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlBsdWdJbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9QbHVnSW4uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQbHVnSW4uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0ludGVyZmFjZSBQbHVnSW48L0gyPgorPERMPgorPERUPjxCPkFsbCBLbm93biBJbXBsZW1lbnRpbmcgQ2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCI+VGlsZXNQbHVnaW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwiPlZhbGlkYXRvclBsdWdJbjwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgaW50ZXJmYWNlIDxCPlBsdWdJbjwvQj48L0RMPgorCis8UD4KKzxwPkEgPHN0cm9uZz5QbHVnSW48L3N0cm9uZz4gaXMgYSBjb25maWd1cmF0aW9uIHdyYXBwZXIgZm9yIGEKKyBtb2R1bGUtc3BlY2lmaWMgcmVzb3VyY2Ugb3Igc2VydmljZSB0aGF0IG5lZWRzIHRvIGJlIG5vdGlmaWVkIGFib3V0CisgYXBwbGljYXRpb24gc3RhcnR1cCBhbmQgYXBwbGljYXRpb24gc2h1dGRvd24gZXZlbnRzIChjb3JyZXNwb25kaW5nIHRvIHdoZW4KKyB0aGUgY29udGFpbmVyIGNhbGxzIDxjb2RlPmluaXQoKTwvY29kZT4gYW5kIDxjb2RlPmRlc3Ryb3koKTwvY29kZT4gb24gdGhlCisgY29ycmVzcG9uZGluZyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Q09ERT5BY3Rpb25TZXJ2bGV0PC9DT0RFPjwvQT4gaW5zdGFuY2UpLiAgUGx1Z0luIEFjdGlvbnMgY2FuIGJlCisgY29uZmlndXJlZCBpbiB0aGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+IGZpbGUsIHdpdGhvdXQgdGhlIG5lZWQKKyB0byBzdWJjbGFzcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Q09ERT5BY3Rpb25TZXJ2bGV0PC9DT0RFPjwvQT4gc2ltcGx5IHRvIHBlcmZvcm0gYXBwbGljYXRpb24gbGlmZWN5Y2xlCisgYWN0aXZpdGllcy48L3A+CisKKyA8cD5JbXBsZW1lbnRhdGlvbnMgb2YgdGhpcyBpbnRlcmZhY2UgbXVzdCBzdXBwbHkgYSB6ZXJvLWFyZ3VtZW50IGNvbnN0cnVjdG9yCisgZm9yIHVzZSBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Q09ERT5BY3Rpb25TZXJ2bGV0PC9DT0RFPjwvQT4uICBDb25maWd1cmF0aW9uIGNhbiBiZSBhY2NvbXBsaXNoZWQgYnkKKyBwcm92aWRpbmcgc3RhbmRhcmQgSmF2YUJlYW5zIHByb3BlcnR5IHNldHRlciBtZXRob2RzLCB3aGljaCB3aWxsIGFsbCBoYXZlCisgYmVlbiBjYWxsZWQgYmVmb3JlIHRoZSA8Y29kZT5pbml0KCk8L2NvZGU+IG1ldGhvZCBpcyBpbnZva2VkLjwvcD4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUGx1Z0luLmh0bWwjZGVzdHJveSgpIj5kZXN0cm95PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCBvdXIgb3duaW5nIG1vZHVsZSBpcyBiZWluZworIHNodXQgZG93bi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUGx1Z0luLmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQsCisgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlY2VpdmUgbm90aWZpY2F0aW9uIHRoYXQgdGhlIHNwZWNpZmllZCBtb2R1bGUgaXMgYmVpbmcKKyBzdGFydGVkIHVwLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZGVzdHJveSgpIj48IS0tIC0tPjwvQT48SDM+CitkZXN0cm95PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5kZXN0cm95PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PHA+UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCBvdXIgb3duaW5nIG1vZHVsZSBpcyBiZWluZworIHNodXQgZG93bi48L3A+Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48IS0tIC0tPjwvQT48SDM+Citpbml0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5pbml0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQsCisgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZykKKyAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PHA+UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCB0aGUgc3BlY2lmaWVkIG1vZHVsZSBpcyBiZWluZworIHN0YXJ0ZWQgdXAuPC9wPgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0PC9DT0RFPiAtIEFjdGlvblNlcnZsZXQgdGhhdCBpcyBtYW5hZ2luZyBhbGwgdGhlCisgIG1vZHVsZXMgaW4gdGhpcyB3ZWIgYXBwbGljYXRpb248REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIE1vZHVsZUNvbmZpZyBmb3IgdGhlIG1vZHVsZSB3aXRoIHdoaWNoCisgIHRoaXMgcGx1Zy1pbiBpcyBhc3NvY2lhdGVkCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyA8Y29kZT5QbHVnSW48L2NvZGU+IGNhbm5vdAorICBiZSBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1BsdWdJbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBsdWdJbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2ODY1NDMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sCkBAIC0wLDAgKzEsMjcxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjEwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLFJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZCBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZyI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzIFJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQ8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQ8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0RMPgorCis8UD4KK0Egc3ViY2xhc3Mgb2YgPHN0cm9uZz5BY3Rpb25Gb3J3YXJkPC9zdHJvbmc+IHRoYXQgZGVmYXVsdHMgdGhlCisgPGNvZGU+cmVkaXJlY3Q8L2NvZGU+IGF0dHJpYnV0ZSB0byA8Y29kZT50cnVlPC9jb2RlPi4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZCI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjY29uZmlndXJlZCI+Y29uZmlndXJlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjY29udGV4dFJlbGF0aXZlIj5jb250ZXh0UmVsYXRpdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI3BhdGgiPnBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI3JlZGlyZWN0Ij5yZWRpcmVjdDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwjUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkKCkiPlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sI1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+UmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhdGguPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjZnJlZXplKCkiPmZyZWV6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjZ2V0Q29udGV4dFJlbGF0aXZlKCkiPmdldENvbnRleHRSZWxhdGl2ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNnZXRQYXRoKCkiPmdldFBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2dldFJlZGlyZWN0KCkiPmdldFJlZGlyZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNzZXRDb250ZXh0UmVsYXRpdmUoYm9vbGVhbikiPnNldENvbnRleHRSZWxhdGl2ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjc2V0UGF0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGF0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjc2V0UmVkaXJlY3QoYm9vbGVhbikiPnNldFJlZGlyZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJSZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQoKSI+PCEtLSAtLT48L0E+PEgzPgorUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggZGVmYXVsdCB2YWx1ZXMuCis8UD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHBhdGguCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0aDwvQ09ERT4gLSBQYXRoIGZvciB0aGlzIGluc3RhbmNlPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZyI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTlkMWQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbApAQCAtMCwwICsxLDI2NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDoxMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1JlcXVlc3RBY3Rpb25NYXBwaW5nIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdEFjdGlvbk1hcHBpbmcsUmVxdWVzdEFjdGlvbk1hcHBpbmcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlJlcXVlc3RBY3Rpb25NYXBwaW5nIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZyI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzIFJlcXVlc3RBY3Rpb25NYXBwaW5nPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlJlcXVlc3RBY3Rpb25NYXBwaW5nPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9ETD4KKworPFA+CitTdWJjbGFzcyBvZiA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPiB0aGF0IGRlZmF1bHRzIHRoZSBmb3JtIGJlYW4KKyBzY29wZSB0byA8Y29kZT5yZXF1ZXN0PC9jb2RlPi4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJlcXVlc3RBY3Rpb25NYXBwaW5nIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2NvbmZpZ3VyZWQiPmNvbmZpZ3VyZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZXhjZXB0aW9ucyI+ZXhjZXB0aW9uczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNmb3J3YXJkIj5mb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2ZvcndhcmRzIj5mb3J3YXJkczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNpbmNsdWRlIj5pbmNsdWRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2lucHV0Ij5pbnB1dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNtb2R1bGVDb25maWciPm1vZHVsZUNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNtdWx0aXBhcnRDbGFzcyI+bXVsdGlwYXJ0Q2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNwYXRoIj5wYXRoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3ByZWZpeCI+cHJlZml4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3JvbGVOYW1lcyI+cm9sZU5hbWVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3JvbGVzIj5yb2xlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc3VmZml4Ij5zdWZmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjdHlwZSI+dHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCN1bmtub3duIj51bmtub3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3ZhbGlkYXRlIj52YWxpZGF0ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCNSZXF1ZXN0QWN0aW9uTWFwcGluZygpIj5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIHdpdGggdGhlIGRlc2lyZWQgZGVmYXVsdAorIGZvcm0gYmVhbiBzY29wZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNmaW5kRXhjZXB0aW9uKGphdmEubGFuZy5DbGFzcykiPmZpbmRFeGNlcHRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2ZpbmRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZmluZEZvcndhcmRzKCkiPmZpbmRGb3J3YXJkczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZ2V0SW5wdXRGb3J3YXJkKCkiPmdldElucHV0Rm9yd2FyZDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2FkZEV4Y2VwdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnKSI+YWRkRXhjZXB0aW9uQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2FkZEZvcndhcmRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj5hZGRGb3J3YXJkQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2ZpbmRFeGNlcHRpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRFeGNlcHRpb25Db25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZmluZEV4Y2VwdGlvbkNvbmZpZ3MoKSI+ZmluZEV4Y2VwdGlvbkNvbmZpZ3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZmluZEZvcndhcmRDb25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRGb3J3YXJkQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2ZpbmRGb3J3YXJkQ29uZmlncygpIj5maW5kRm9yd2FyZENvbmZpZ3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZnJlZXplKCkiPmZyZWV6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRBcHBsaWNhdGlvbkNvbmZpZygpIj5nZXRBcHBsaWNhdGlvbkNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRBdHRyaWJ1dGUoKSI+Z2V0QXR0cmlidXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldEZvcndhcmQoKSI+Z2V0Rm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRJbmNsdWRlKCkiPmdldEluY2x1ZGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0SW5wdXQoKSI+Z2V0SW5wdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0TW9kdWxlQ29uZmlnKCkiPmdldE1vZHVsZUNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRNdWx0aXBhcnRDbGFzcygpIj5nZXRNdWx0aXBhcnRDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRQYXRoKCkiPmdldFBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0UHJlZml4KCkiPmdldFByZWZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRSb2xlTmFtZXMoKSI+Z2V0Um9sZU5hbWVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFJvbGVzKCkiPmdldFJvbGVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFN1ZmZpeCgpIj5nZXRTdWZmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0VHlwZSgpIj5nZXRUeXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFVua25vd24oKSI+Z2V0VW5rbm93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRWYWxpZGF0ZSgpIj5nZXRWYWxpZGF0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNyZW1vdmVFeGNlcHRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZykiPnJlbW92ZUV4Y2VwdGlvbkNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNyZW1vdmVGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+cmVtb3ZlRm9yd2FyZENvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRBcHBsaWNhdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+c2V0QXBwbGljYXRpb25Db25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0Rm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRJbmNsdWRlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJbmNsdWRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldElucHV0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRJbnB1dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRNb2R1bGVDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPnNldE1vZHVsZUNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRNdWx0aXBhcnRDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TXVsdGlwYXJ0Q2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRQYXRoKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXRoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldFByZWZpeChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJlZml4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldFJvbGVzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0U3VmZml4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdWZmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRVbmtub3duKGJvb2xlYW4pIj5zZXRVbmtub3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldFZhbGlkYXRlKGJvb2xlYW4pIj5zZXRWYWxpZGF0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJSZXF1ZXN0QWN0aW9uTWFwcGluZygpIj48IS0tIC0tPjwvQT48SDM+CitSZXF1ZXN0QWN0aW9uTWFwcGluZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJlcXVlc3RBY3Rpb25NYXBwaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2l0aCB0aGUgZGVzaXJlZCBkZWZhdWx0CisgZm9ybSBiZWFuIHNjb3BlLgorPFA+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBkMWNiYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sCkBAIC0wLDAgKzEsMTI5MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDoxMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1JlcXVlc3RQcm9jZXNzb3IgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0UHJvY2Vzc29yLFJlcXVlc3RQcm9jZXNzb3IgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlJlcXVlc3RQcm9jZXNzb3IgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUmVxdWVzdFByb2Nlc3Nvci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlcXVlc3RQcm9jZXNzb3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzIFJlcXVlc3RQcm9jZXNzb3I8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdFByb2Nlc3NvcjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlJlcXVlc3RQcm9jZXNzb3I8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDwvREw+CisKKzxQPgorPHA+PHN0cm9uZz5SZXF1ZXN0UHJvY2Vzc29yPC9zdHJvbmc+IGNvbnRhaW5zIHRoZSBwcm9jZXNzaW5nIGxvZ2ljIHRoYXQKKyB0aGUgU3RydXRzIGNvbnRyb2xsZXIgc2VydmxldCBwZXJmb3JtcyBhcyBpdCByZWNlaXZlcyBlYWNoIHNlcnZsZXQgcmVxdWVzdAorIGZyb20gdGhlIGNvbnRhaW5lci4gIFlvdSBjYW4gY3VzdG9taXplIHRoZSByZXF1ZXN0IHByb2Nlc3NpbmcgYmVoYXZpb3IgYnkKKyBzdWJjbGFzc2luZyB0aGlzIGNsYXNzIGFuZCBvdmVycmlkaW5nIHRoZSBtZXRob2Qocykgd2hvc2UgYmVoYXZpb3IgeW91IGFyZQorIGludGVyZXN0ZWQgaW4gY2hhbmdpbmcuPC9wPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuLCBDZWRyaWMgRHVtb3VsaW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNoTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjYWN0aW9ucyI+YWN0aW9uczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2V0IG9mIEFjdGlvbiBpbnN0YW5jZXMgdGhhdCBoYXZlIGJlZW4gY3JlYXRlZCBhbmQgaW5pdGlhbGl6ZWQsCisga2V5ZWQgYnkgdGhlIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIEFjdGlvbiBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2FwcENvbmZpZyI+YXBwQ29uZmlnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSBtb2R1bGVDb25maWcgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNJTkNMVURFX1BBVEhfSU5GTyI+SU5DTFVERV9QQVRIX0lORk88L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlcXVlc3QgYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZSBwYXRoIGluZm9ybWF0aW9uIGlzIHN0b3JlZCBmb3IKKyBwcm9jZXNzaW5nIGR1cmluZyBhIFJlcXVlc3REaXNwYXRjaGVyLmluY2x1ZGUoKSBjYWxsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjSU5DTFVERV9TRVJWTEVUX1BBVEgiPklOQ0xVREVfU0VSVkxFVF9QQVRIPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSByZXF1ZXN0IGF0dHJpYnV0ZSB1bmRlciB3aGljaCB0aGUgc2VydmxldCBwYXRoIGluZm9ybWF0aW9uIGlzIHN0b3JlZAorIGZvciBwcm9jZXNzaW5nIGR1cmluZyBhIFJlcXVlc3REaXNwYXRjaGVyLmluY2x1ZGUoKSBjYWxsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjbG9nIj5sb2c8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjbW9kdWxlQ29uZmlnIj5tb2R1bGVDb25maWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIE1vZHVsZUNvbmZpZ3VyYXRpb24gd2UgYXJlIGFzc29jaWF0ZWQgd2l0aC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udHJvbGxlciBzZXJ2bGV0IHdlIGFyZSBhc3NvY2lhdGVkIHdpdGguPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI1JlcXVlc3RQcm9jZXNzb3IoKSI+UmVxdWVzdFByb2Nlc3NvcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNkZXN0cm95KCkiPmRlc3Ryb3k8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDbGVhbiB1cCBpbiBwcmVwYXJhdGlvbiBmb3IgYSBzaHV0ZG93biBvZiB0aGlzIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2RvRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmRvRm9yd2FyZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCisgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RvIGEgZm9yd2FyZCB0byBzcGVjaWZpZWQgdXJpIHVzaW5nIHJlcXVlc3QgZGlzcGF0Y2hlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNkb0luY2x1ZGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5kb0luY2x1ZGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJpLAorICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEbyBhbiBpbmNsdWRlIG9mIHNwZWNpZmllZCB1cmkgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNnZXREZWJ1ZygpIj5nZXREZWJ1ZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkNvbmZpZ3VyZSB0aGUgbG9nZ2luZyBkZXRhaWwgbGV2ZWwgaW4geW91cgorICB1bmRlcmx5aW5nIGxvZ2dpbmcgaW1wbGVtZW50YXRpb248L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNnZXRJbnRlcm5hbCgpIj5nZXRJbnRlcm5hbDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW5zdGFuY2UgY29udGFpbmluZyBvdXIKKyBpbnRlcm5hbCBtZXNzYWdlIHN0cmluZ3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjZ2V0U2VydmxldENvbnRleHQoKSI+Z2V0U2VydmxldENvbnRleHQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIFNlcnZsZXRDb250ZXh0IGZvciB0aGUgd2ViIGFwcGxpY2F0aW9uIHdlIGFyZSBydW5uaW5nIGluLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQsCisgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO21vZHVsZUNvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgdGhpcyByZXF1ZXN0IHByb2Nlc3NvciBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNpbnRlcm5hbE1vZHVsZVJlbGF0aXZlRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmludGVybmFsTW9kdWxlUmVsYXRpdmVGb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RvIGEgbW9kdWxlIHJlbGF0aXZlIGZvcndhcmQgdG8gc3BlY2lmaWVkIHVyaSB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjaW50ZXJuYWxNb2R1bGVSZWxhdGl2ZUluY2x1ZGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5pbnRlcm5hbE1vZHVsZVJlbGF0aXZlSW5jbHVkZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEbyBhIG1vZHVsZSByZWxhdGl2ZSBpbmNsdWRlIHRvIHNwZWNpZmllZCB1cmkgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nKSI+bG9nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb2cgdGhlIHNwZWNpZmllZCBtZXNzYWdlIHRvIHRoZSBzZXJ2bGV0IGNvbnRleHQgbG9nIGZvciB0aGlzCisgd2ViIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+bG9nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UsCisgICAgamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO2V4Y2VwdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0xvZyB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UgYW5kIGV4Y2VwdGlvbiB0byB0aGUgc2VydmxldCBjb250ZXh0IGxvZworIGZvciB0aGlzIHdlYiBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3MoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIGFuIDxjb2RlPkh0dHBTZXJ2bGV0UmVxdWVzdDwvY29kZT4gYW5kIGNyZWF0ZSB0aGUKKyBjb3JyZXNwb25kaW5nIDxjb2RlPkh0dHBTZXJ2bGV0UmVzcG9uc2U8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0FjdGlvbkNyZWF0ZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzQWN0aW9uQ3JlYXRlPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBhbiA8Y29kZT5BY3Rpb248L2NvZGU+IGluc3RhbmNlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHByb2Nlc3MKKyB0aGUgY3VycmVudCByZXF1ZXN0LCBjcmVhdGluZyBhIG5ldyBvbmUgaWYgbmVjZXNzYXJ5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzQWN0aW9uRm9ybShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzQWN0aW9uRm9ybTwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlIGFuZCByZXR1cm4gdGhlIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4gYXNzb2NpYXRlZCB3aXRoCisgdGhpcyBtYXBwaW5nLCBjcmVhdGluZyBhbmQgc3Rhc2hpbmcgb25lIGlmIG5lY2Vzc2FyeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzQWN0aW9uRm9yd2FyZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQpIj5wcm9jZXNzQWN0aW9uRm9yd2FyZDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBwcm9jZXNzRm9yd2FyZENvbmZpZygpIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzQWN0aW9uUGVyZm9ybShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+cHJvY2Vzc0FjdGlvblBlcmZvcm08L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4mbmJzcDthY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBc2sgdGhlIHNwZWNpZmllZCA8Y29kZT5BY3Rpb248L2NvZGU+IGluc3RhbmNlIHRvIGhhbmRsZSB0aGlzCisgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzQ29udGVudChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NDb250ZW50PC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBkZWZhdWx0IGNvbnRlbnQgdHlwZSAod2l0aCBvcHRpb25hbCBjaGFyYWN0ZXIgZW5jb2RpbmcpIGZvcgorIGFsbCByZXNwb25zZXMgaWYgcmVxdWVzdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzRXhjZXB0aW9uKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZhLmxhbmcuRXhjZXB0aW9uLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzRXhjZXB0aW9uPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgIGphdmEubGFuZy5FeGNlcHRpb24mbmJzcDtleGNlcHRpb24sCisgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXNrIG91ciBleGNlcHRpb24gaGFuZGxlciB0byBoYW5kbGUgdGhlIGV4Y2VwdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzRm9yd2FyZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzRm9yd2FyZDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgYSBmb3J3YXJkIHJlcXVlc3RlZCBieSB0aGlzIG1hcHBpbmcgKGlmIGFueSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0ZvcndhcmRDb25maWcoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+cHJvY2Vzc0ZvcndhcmRDb25maWc8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPiZuYnNwO2ZvcndhcmQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGb3J3YXJkIG9yIHJlZGlyZWN0IHRvIHRoZSBzcGVjaWZpZWQgZGVzdGluYXRpb24sIGJ5IHRoZSBzcGVjaWZpZWQKKyBtZWNoYW5pc20uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0luY2x1ZGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+cHJvY2Vzc0luY2x1ZGU8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIGFuIGluY2x1ZGUgcmVxdWVzdGVkIGJ5IHRoaXMgbWFwcGluZyAoaWYgYW55KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzTG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cHJvY2Vzc0xvY2FsZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXV0b21hdGljYWxseSBzZWxlY3QgYSBMb2NhbGUgZm9yIHRoZSBjdXJyZW50IHVzZXIsIGlmIHJlcXVlc3RlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc01hcHBpbmcoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmEubGFuZy5TdHJpbmcpIj5wcm9jZXNzTWFwcGluZzwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2VsZWN0IHRoZSBtYXBwaW5nIHVzZWQgdG8gcHJvY2VzcyB0aGUgc2VsZWN0aW9uIHBhdGggZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzTXVsdGlwYXJ0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5wcm9jZXNzTXVsdGlwYXJ0PC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJZiB0aGlzIGlzIGEgbXVsdGlwYXJ0IHJlcXVlc3QsIHdyYXAgaXQgd2l0aCBhIHNwZWNpYWwgd3JhcHBlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzTm9DYWNoZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NOb0NhY2hlPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBuby1jYWNoZSBoZWFkZXJzIGZvciBhbGwgcmVzcG9uc2VzLCBpZiByZXF1ZXN0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc1BhdGgoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzUGF0aDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0lkZW50aWZ5IGFuZCByZXR1cm4gdGhlIHBhdGggY29tcG9uZW50IChmcm9tIHRoZSByZXF1ZXN0IFVSSSkgdGhhdAorIHdlIHdpbGwgdXNlIHRvIHNlbGVjdCBhbiBBY3Rpb25NYXBwaW5nIHRvIGRpc3BhdGNoIHdpdGguPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc1BvcHVsYXRlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzUG9wdWxhdGU8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQb3B1bGF0ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgc3BlY2lmaWVkIEFjdGlvbkZvcm0gaW5zdGFuY2UgZnJvbQorIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMgaW5jbHVkZWQgd2l0aCB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc1ByZXByb2Nlc3MoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzUHJlcHJvY2VzczwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dlbmVyYWwtcHVycG9zZSBwcmVwcm9jZXNzaW5nIGhvb2sgdGhhdCBjYW4gYmUgb3ZlcnJpZGRlbiBhcyByZXF1aXJlZAorIGJ5IHN1YmNsYXNzZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc1JvbGVzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnByb2Nlc3NSb2xlczwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SWYgdGhpcyBhY3Rpb24gaXMgcHJvdGVjdGVkIGJ5IHNlY3VyaXR5IHJvbGVzLCBtYWtlIHN1cmUgdGhhdCB0aGUKKyBjdXJyZW50IHVzZXIgcG9zc2Vzc2VzIGF0IGxlYXN0IG9uZSBvZiB0aGVtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NWYWxpZGF0ZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+cHJvY2Vzc1ZhbGlkYXRlPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SWYgdGhpcyByZXF1ZXN0IHdhcyBub3QgY2FuY2VsbGVkLCBhbmQgdGhlIHJlcXVlc3QncworIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPjxDT0RFPkFjdGlvbk1hcHBpbmc8L0NPREU+PC9BPiBoYXMgbm90IGRpc2FibGVkIHZhbGlkYXRpb24sIGNhbGwgdGhlCisgPGNvZGU+dmFsaWRhdGUoKTwvY29kZT4gbWV0aG9kIG9mIHRoZSBzcGVjaWZpZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+PENPREU+QWN0aW9uRm9ybTwvQ09ERT48L0E+LAorIGFuZCBmb3J3YXJkIGJhY2sgdG8gdGhlIGlucHV0IGZvcm0gaWYgdGhlcmUgd2VyZSBhbnkgZXJyb3JzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iSU5DTFVERV9QQVRIX0lORk8iPjwhLS0gLS0+PC9BPjxIMz4KK0lOQ0xVREVfUEFUSF9JTkZPPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+SU5DTFVERV9QQVRIX0lORk88L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlcXVlc3QgYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZSBwYXRoIGluZm9ybWF0aW9uIGlzIHN0b3JlZCBmb3IKKyBwcm9jZXNzaW5nIGR1cmluZyBhIFJlcXVlc3REaXNwYXRjaGVyLmluY2x1ZGUoKSBjYWxsLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdFByb2Nlc3Nvci5JTkNMVURFX1BBVEhfSU5GTyI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJJTkNMVURFX1NFUlZMRVRfUEFUSCI+PCEtLSAtLT48L0E+PEgzPgorSU5DTFVERV9TRVJWTEVUX1BBVEg8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5JTkNMVURFX1NFUlZMRVRfUEFUSDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVxdWVzdCBhdHRyaWJ1dGUgdW5kZXIgd2hpY2ggdGhlIHNlcnZsZXQgcGF0aCBpbmZvcm1hdGlvbiBpcyBzdG9yZWQKKyBmb3IgcHJvY2Vzc2luZyBkdXJpbmcgYSBSZXF1ZXN0RGlzcGF0Y2hlci5pbmNsdWRlKCkgY2FsbC4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJlcXVlc3RQcm9jZXNzb3IuSU5DTFVERV9TRVJWTEVUX1BBVEgiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWN0aW9ucyI+PCEtLSAtLT48L0E+PEgzPgorYWN0aW9uczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5IYXNoTWFwIDxCPmFjdGlvbnM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBBY3Rpb24gaW5zdGFuY2VzIHRoYXQgaGF2ZSBiZWVuIGNyZWF0ZWQgYW5kIGluaXRpYWxpemVkLAorIGtleWVkIGJ5IHRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBBY3Rpb24gY2xhc3MuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhcHBDb25maWciPjwhLS0gLS0+PC9BPjxIMz4KK2FwcENvbmZpZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiA8Qj5hcHBDb25maWc8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+dXNlIG1vZHVsZUNvbmZpZyBpbnN0ZWFkLjwvST4KKzxQPgorPEREPlRoZSBNb2R1bGVDb25maWd1cmF0aW9uIHdlIGFyZSBhc3NvY2lhdGVkIHdpdGguCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtb2R1bGVDb25maWciPjwhLS0gLS0+PC9BPjxIMz4KK21vZHVsZUNvbmZpZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiA8Qj5tb2R1bGVDb25maWc8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIE1vZHVsZUNvbmZpZ3VyYXRpb24gd2UgYXJlIGFzc29jaWF0ZWQgd2l0aC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvZyI+PCEtLSAtLT48L0E+PEgzPgorbG9nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZyA8Qj5sb2c8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2VydmxldCI+PCEtLSAtLT48L0E+PEgzPgorc2VydmxldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPnNlcnZsZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRyb2xsZXIgc2VydmxldCB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlJlcXVlc3RQcm9jZXNzb3IoKSI+PCEtLSAtLT48L0E+PEgzPgorUmVxdWVzdFByb2Nlc3NvcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJlcXVlc3RQcm9jZXNzb3I8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRlc3Ryb3koKSI+PCEtLSAtLT48L0E+PEgzPgorZGVzdHJveTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZGVzdHJveTwvQj4oKTwvUFJFPgorPERMPgorPEREPkNsZWFuIHVwIGluIHByZXBhcmF0aW9uIGZvciBhIHNodXRkb3duIG9mIHRoaXMgYXBwbGljYXRpb24uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48IS0tIC0tPjwvQT48SDM+Citpbml0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5pbml0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQsCisgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO21vZHVsZUNvbmZpZykKKyAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+SW5pdGlhbGl6ZSB0aGlzIHJlcXVlc3QgcHJvY2Vzc29yIGluc3RhbmNlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0PC9DT0RFPiAtIFRoZSBBY3Rpb25TZXJ2bGV0IHdlIGFyZSBhc3NvY2lhdGVkIHdpdGg8REQ+PENPREU+bW9kdWxlQ29uZmlnPC9DT0RFPiAtIFRoZSBNb2R1bGVDb25maWcgd2UgYXJlIGFzc29jaWF0ZWQgd2l0aC4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBJZiBhbiBlcnJvciBvY2NvciBkdXJpbmcgaW5pdGlhbGl6YXRpb248L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3MoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcm9jZXNzPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PHA+UHJvY2VzcyBhbiA8Y29kZT5IdHRwU2VydmxldFJlcXVlc3Q8L2NvZGU+IGFuZCBjcmVhdGUgdGhlCisgY29ycmVzcG9uZGluZyA8Y29kZT5IdHRwU2VydmxldFJlc3BvbnNlPC9jb2RlPi48L3A+Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgc2VydmxldCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VycworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHByb2Nlc3NpbmcgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0FjdGlvbkNyZWF0ZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzQWN0aW9uQ3JlYXRlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+IDxCPnByb2Nlc3NBY3Rpb25DcmVhdGU8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gYW4gPGNvZGU+QWN0aW9uPC9jb2RlPiBpbnN0YW5jZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBwcm9jZXNzCisgdGhlIGN1cnJlbnQgcmVxdWVzdCwgY3JlYXRpbmcgYSBuZXcgb25lIGlmIG5lY2Vzc2FyeS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZzxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBtYXBwaW5nIHdlIGFyZSB1c2luZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzQWN0aW9uRm9ybShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzQWN0aW9uRm9ybTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+IDxCPnByb2Nlc3NBY3Rpb25Gb3JtPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9QUkU+Cis8REw+Cis8REQ+UmV0cmlldmUgYW5kIHJldHVybiB0aGUgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gYmVhbiBhc3NvY2lhdGVkIHdpdGgKKyB0aGlzIG1hcHBpbmcsIGNyZWF0aW5nIGFuZCBzdGFzaGluZyBvbmUgaWYgbmVjZXNzYXJ5LiAgSWYgdGhlcmUgaXMgbm8KKyBmb3JtIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFwcGluZywgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nPEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIG1hcHBpbmcgd2UgYXJlIHVzaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzQWN0aW9uRm9yd2FyZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzQWN0aW9uRm9yd2FyZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJvY2Vzc0FjdGlvbkZvcndhcmQ8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgcHJvY2Vzc0ZvcndhcmRDb25maWcoKSBpbnN0ZWFkLjwvST4KKzxQPgorPEREPkZvcndhcmQgb3IgcmVkaXJlY3QgdG8gdGhlIHNwZWNpZmllZCBkZXN0aW5hdGlvbiwgYnkgdGhlIHNwZWNpZmllZAorIG1lY2hhbmlzbS4KKworIFRoaXMgbWV0aG9kIHRha2VzIHRoZSBvbGQgQWN0aW9uRm9yd2FyZCBvYmplY3QgYXMgcGFyYW1ldGVyLiBVc2VyIHNob3VsZAorIHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NGb3J3YXJkQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPjxDT0RFPnByb2Nlc3NGb3J3YXJkQ29uZmlnKEh0dHBTZXJ2bGV0UmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSxGb3J3YXJkQ29uZmlnKTwvQ09ERT48L0E+IHdoZW4gcG9zc2libGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgc2VydmxldCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmc8REQ+PENPREU+Zm9yd2FyZDwvQ09ERT4gLSBUaGUgQWN0aW9uRm9yd2FyZCBjb250cm9sbGluZyB3aGVyZSB3ZSBnbyBuZXh0Cis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NGb3J3YXJkQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NGb3J3YXJkQ29uZmlnPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5wcm9jZXNzRm9yd2FyZENvbmZpZzwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4mbmJzcDtmb3J3YXJkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkZvcndhcmQgb3IgcmVkaXJlY3QgdG8gdGhlIHNwZWNpZmllZCBkZXN0aW5hdGlvbiwgYnkgdGhlIHNwZWNpZmllZAorIG1lY2hhbmlzbS4gIFRoaXMgbWV0aG9kIHVzZXMgYSBGb3J3YXJkQ29uZmlnIG9iamVjdCBpbnN0ZWFkIGFuIEFjdGlvbkZvcndhcmQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgc2VydmxldCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmc8REQ+PENPREU+Zm9yd2FyZDwvQ09ERT4gLSBUaGUgRm9yd2FyZENvbmZpZyBjb250cm9sbGluZyB3aGVyZSB3ZSBnbyBuZXh0Cis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NBY3Rpb25QZXJmb3JtKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzQWN0aW9uUGVyZm9ybTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPnByb2Nlc3NBY3Rpb25QZXJmb3JtPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4mbmJzcDthY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+QXNrIHRoZSBzcGVjaWZpZWQgPGNvZGU+QWN0aW9uPC9jb2RlPiBpbnN0YW5jZSB0byBoYW5kbGUgdGhpcworIHJlcXVlc3QuICBSZXR1cm4gdGhlIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIChpZiBhbnkpCisgcmV0dXJuZWQgYnkgdGhlIGNhbGxlZCA8Y29kZT5BY3Rpb248L2NvZGU+IGZvciBmdXJ0aGVyIHByb2Nlc3NpbmcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgc2VydmxldCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmc8REQ+PENPREU+YWN0aW9uPC9DT0RFPiAtIFRoZSBBY3Rpb24gaW5zdGFuY2UgdG8gYmUgdXNlZDxERD48Q09ERT5mb3JtPC9DT0RFPiAtIFRoZSBBY3Rpb25Gb3JtIGluc3RhbmNlIHRvIHBhc3MgdG8gdGhpcyBBY3Rpb248REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyBpbnN0YW5jZSB0byBwYXNzIHRvIHRoaXMgQWN0aW9uCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NDb250ZW50KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc0NvbnRlbnQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPnByb2Nlc3NDb250ZW50PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBkZWZhdWx0IGNvbnRlbnQgdHlwZSAod2l0aCBvcHRpb25hbCBjaGFyYWN0ZXIgZW5jb2RpbmcpIGZvcgorIGFsbCByZXNwb25zZXMgaWYgcmVxdWVzdGVkLiAgPHN0cm9uZz5OT1RFPC9zdHJvbmc+IC0gVGhpcyBoZWFkZXIgd2lsbAorIGJlIG92ZXJyaWRkZW4gYXV0b21hdGljYWxseSBpZiBhCisgPGNvZGU+UmVxdWVzdERpc3BhdGNoZXIuZm9yd2FyZCgpPC9jb2RlPiBjYWxsIGlzCisgdWx0aW1hdGVseSBpbnZva2VkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzRXhjZXB0aW9uKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZhLmxhbmcuRXhjZXB0aW9uLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzRXhjZXB0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+cHJvY2Vzc0V4Y2VwdGlvbjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5FeGNlcHRpb24mbmJzcDtleGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Bc2sgb3VyIGV4Y2VwdGlvbiBoYW5kbGVyIHRvIGhhbmRsZSB0aGUgZXhjZXB0aW9uLiAgUmV0dXJuIHRoZQorIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIChpZiBhbnkpIHJldHVybmVkIGJ5IHRoZQorIGNhbGxlZCA8Y29kZT5FeGNlcHRpb25IYW5kbGVyPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlc3BvbnNlIHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPmV4Y2VwdGlvbjwvQ09ERT4gLSBUaGUgZXhjZXB0aW9uIGJlaW5nIGhhbmRsZWQ8REQ+PENPREU+Zm9ybTwvQ09ERT4gLSBUaGUgQWN0aW9uRm9ybSB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHdlIGFyZSB1c2luZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzCis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzRm9yd2FyZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzRm9yd2FyZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+cHJvY2Vzc0ZvcndhcmQ8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIGEgZm9yd2FyZCByZXF1ZXN0ZWQgYnkgdGhpcyBtYXBwaW5nIChpZiBhbnkpLiAgUmV0dXJuCisgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgc3RhbmRhcmQgcHJvY2Vzc2luZyBzaG91bGQgY29udGludWUsIG9yCisgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIHdlIGhhdmUgYWxyZWFkeSBoYW5kbGVkIHRoaXMgcmVxdWVzdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZzxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHdlIGFyZSB1c2luZworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0luY2x1ZGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc0luY2x1ZGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnByb2Nlc3NJbmNsdWRlPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyBhbiBpbmNsdWRlIHJlcXVlc3RlZCBieSB0aGlzIG1hcHBpbmcgKGlmIGFueSkuICBSZXR1cm4KKyA8Y29kZT50cnVlPC9jb2RlPiBpZiBzdGFuZGFyZCBwcm9jZXNzaW5nIHNob3VsZCBjb250aW51ZSwgb3IKKyA8Y29kZT5mYWxzZTwvY29kZT4gaWYgd2UgaGF2ZSBhbHJlYWR5IGhhbmRsZWQgdGhpcyByZXF1ZXN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nPEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgd2UgYXJlIHVzaW5nCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzTG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc0xvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJvY2Vzc0xvY2FsZTwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9QUkU+Cis8REw+Cis8REQ+QXV0b21hdGljYWxseSBzZWxlY3QgYSBMb2NhbGUgZm9yIHRoZSBjdXJyZW50IHVzZXIsIGlmIHJlcXVlc3RlZC4KKyA8c3Ryb25nPk5PVEU8L3N0cm9uZz4gLSBjb25maWd1cmluZyBMb2NhbGUgc2VsZWN0aW9uIHdpbGwgdHJpZ2dlcgorIHRoZSBjcmVhdGlvbiBvZiBhIG5ldyA8Y29kZT5IdHRwU2Vzc2lvbjwvY29kZT4gaWYgbmVjZXNzYXJ5LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzTWFwcGluZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NNYXBwaW5nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4gPEI+cHJvY2Vzc01hcHBpbmc8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlNlbGVjdCB0aGUgbWFwcGluZyB1c2VkIHRvIHByb2Nlc3MgdGhlIHNlbGVjdGlvbiBwYXRoIGZvciB0aGlzIHJlcXVlc3QuCisgSWYgbm8gbWFwcGluZyBjYW4gYmUgaWRlbnRpZmllZCwgY3JlYXRlIGFuIGVycm9yIHJlc3BvbnNlIGFuZCByZXR1cm4KKyA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZzxERD48Q09ERT5wYXRoPC9DT0RFPiAtIFRoZSBwb3J0aW9uIG9mIHRoZSByZXF1ZXN0IFVSSSBmb3Igc2VsZWN0aW5nIGEgbWFwcGluZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzTXVsdGlwYXJ0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzTXVsdGlwYXJ0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCA8Qj5wcm9jZXNzTXVsdGlwYXJ0PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5JZiB0aGlzIGlzIGEgbXVsdGlwYXJ0IHJlcXVlc3QsIHdyYXAgaXQgd2l0aCBhIHNwZWNpYWwgd3JhcHBlci4KKyBPdGhlcndpc2UsIHJldHVybiB0aGUgcmVxdWVzdCB1bmNoYW5nZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIEh0dHBTZXJ2bGV0UmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc05vQ2FjaGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzTm9DYWNoZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJvY2Vzc05vQ2FjaGU8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIG5vLWNhY2hlIGhlYWRlcnMgZm9yIGFsbCByZXNwb25zZXMsIGlmIHJlcXVlc3RlZC4KKyA8c3Ryb25nPk5PVEU8L3N0cm9uZz4gLSBUaGlzIGhlYWRlciB3aWxsIGJlIG92ZXJyaWRkZW4KKyBhdXRvbWF0aWNhbGx5IGlmIGEgPGNvZGU+UmVxdWVzdERpc3BhdGNoZXIuZm9yd2FyZCgpPC9jb2RlPiBjYWxsIGlzCisgdWx0aW1hdGVseSBpbnZva2VkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzUGF0aChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NQYXRoPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9jZXNzUGF0aDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPklkZW50aWZ5IGFuZCByZXR1cm4gdGhlIHBhdGggY29tcG9uZW50IChmcm9tIHRoZSByZXF1ZXN0IFVSSSkgdGhhdAorIHdlIHdpbGwgdXNlIHRvIHNlbGVjdCBhbiBBY3Rpb25NYXBwaW5nIHRvIGRpc3BhdGNoIHdpdGguICBJZiBubyBzdWNoCisgcGF0aCBjYW4gYmUgaWRlbnRpZmllZCwgY3JlYXRlIGFuIGVycm9yIHJlc3BvbnNlIGFuZCByZXR1cm4KKyA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzUG9wdWxhdGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NQb3B1bGF0ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJvY2Vzc1BvcHVsYXRlPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UG9wdWxhdGUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNwZWNpZmllZCBBY3Rpb25Gb3JtIGluc3RhbmNlIGZyb20KKyB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzIGluY2x1ZGVkIHdpdGggdGhpcyByZXF1ZXN0LiAgSW4gYWRkaXRpb24sCisgcmVxdWVzdCBhdHRyaWJ1dGUgPGNvZGU+R2xvYmFscy5DQU5DRUxfS0VZPC9jb2RlPiB3aWxsIGJlIHNldCBpZgorIHRoZSByZXF1ZXN0IHdhcyBzdWJtaXR0ZWQgd2l0aCBhIGJ1dHRvbiBjcmVhdGVkIGJ5CisgPGNvZGU+Q2FuY2VsVGFnPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZzxERD48Q09ERT5mb3JtPC9DT0RFPiAtIFRoZSBBY3Rpb25Gb3JtIGluc3RhbmNlIHdlIGFyZSBwb3B1bGF0aW5nPEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgd2UgYXJlIHVzaW5nCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhyb3duIGJ5IFJlcXVlc3RVdGlscy5wb3B1bGF0ZSgpPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzUHJlcHJvY2VzcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NQcmVwcm9jZXNzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5wcm9jZXNzUHJlcHJvY2VzczwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvUFJFPgorPERMPgorPEREPkdlbmVyYWwtcHVycG9zZSBwcmVwcm9jZXNzaW5nIGhvb2sgdGhhdCBjYW4gYmUgb3ZlcnJpZGRlbiBhcyByZXF1aXJlZAorIGJ5IHN1YmNsYXNzZXMuICBSZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgeW91IHdhbnQgc3RhbmRhcmQgcHJvY2Vzc2luZworIHRvIGNvbnRpbnVlLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgdGhlIHJlc3BvbnNlIGhhcyBhbHJlYWR5IGJlZW4KKyBjb21wbGV0ZWQuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdGhpbmcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgc2VydmxldCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NSb2xlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzUm9sZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnByb2Nlc3NSb2xlczwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5JZiB0aGlzIGFjdGlvbiBpcyBwcm90ZWN0ZWQgYnkgc2VjdXJpdHkgcm9sZXMsIG1ha2Ugc3VyZSB0aGF0IHRoZQorIGN1cnJlbnQgdXNlciBwb3NzZXNzZXMgYXQgbGVhc3Qgb25lIG9mIHRoZW0uICBSZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4KKyB0byBjb250aW51ZSBub3JtYWwgcHJvY2Vzc2luZywgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGFuIGFwcHJvcHJpYXRlCisgcmVzcG9uc2UgaGFzIGJlZW4gY3JlYXRlZCBhbmQgcHJvY2Vzc2luZyBzaG91bGQgdGVybWluYXRlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nPEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIG1hcHBpbmcgd2UgYXJlIHVzaW5nCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NWYWxpZGF0ZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc1ZhbGlkYXRlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5wcm9jZXNzVmFsaWRhdGU8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxwPklmIHRoaXMgcmVxdWVzdCB3YXMgbm90IGNhbmNlbGxlZCwgYW5kIHRoZSByZXF1ZXN0J3MKKyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj48Q09ERT5BY3Rpb25NYXBwaW5nPC9DT0RFPjwvQT4gaGFzIG5vdCBkaXNhYmxlZCB2YWxpZGF0aW9uLCBjYWxsIHRoZQorIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiB0aGUgc3BlY2lmaWVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPjxDT0RFPkFjdGlvbkZvcm08L0NPREU+PC9BPiwKKyBhbmQgZm9yd2FyZCBiYWNrIHRvIHRoZSBpbnB1dCBmb3JtIGlmIHRoZXJlIHdlcmUgYW55IGVycm9ycy4KKyBSZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgd2Ugc2hvdWxkIGNvbnRpbnVlIHByb2Nlc3NpbmcsCisgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIHdlIGhhdmUgYWxyZWFkeSBmb3J3YXJkZWQgY29udHJvbCBiYWNrCisgdG8gdGhlIGlucHV0IGZvcm0uPC9wPgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nPEREPjxDT0RFPmZvcm08L0NPREU+IC0gVGhlIEFjdGlvbkZvcm0gaW5zdGFuY2Ugd2UgYXJlIHBvcHVsYXRpbmc8REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB3ZSBhcmUgdXNpbmcKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VycworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW50ZXJuYWxNb2R1bGVSZWxhdGl2ZUZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitpbnRlcm5hbE1vZHVsZVJlbGF0aXZlRm9yd2FyZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+aW50ZXJuYWxNb2R1bGVSZWxhdGl2ZUZvcndhcmQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RG8gYSBtb2R1bGUgcmVsYXRpdmUgZm9yd2FyZCB0byBzcGVjaWZpZWQgdXJpIHVzaW5nIHJlcXVlc3QgZGlzcGF0Y2hlci4KKyBVcmkgaXMgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgbW9kdWxlLiBUaGUgcmVhbCB1cmkgaXMgY29tcHV0ZSBieSBwcmVmaXhpbmcKKyB0aGUgbW9kdWxlIG5hbWUuCisgVGhpcyBtZXRob2QgaXMgdXNlZCBpbnRlcm5hbGx5IGFuZCBpcyBub3QgcGFydCBvZiB0aGUgcHVibGljIEFQSS4gSXQgaXMKKyBhZHZpc2VkIHRvIG5vdCB1c2UgaXQgaW4gc3ViY2xhc3Nlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dXJpPC9DT0RFPiAtIE1vZHVsZS1yZWxhdGl2ZSBVUkkgdG8gZm9yd2FyZCB0bzxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcGFnZSByZXF1ZXN0PEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIEN1cnJlbnQgcGFnZSByZXNwb25zZQorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbnRlcm5hbE1vZHVsZVJlbGF0aXZlSW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK2ludGVybmFsTW9kdWxlUmVsYXRpdmVJbmNsdWRlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5pbnRlcm5hbE1vZHVsZVJlbGF0aXZlSW5jbHVkZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5EbyBhIG1vZHVsZSByZWxhdGl2ZSBpbmNsdWRlIHRvIHNwZWNpZmllZCB1cmkgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLgorIFVyaSBpcyByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBtb2R1bGUuIFRoZSByZWFsIHVyaSBpcyBjb21wdXRlIGJ5IHByZWZpeGluZworIHRoZSBtb2R1bGUgbmFtZS4KKyBUaGlzIG1ldGhvZCBpcyB1c2VkIGludGVybmFsbHkgYW5kIGlzIG5vdCBwYXJ0IG9mIHRoZSBwdWJsaWMgQVBJLiBJdCBpcworIGFkdmlzZWQgdG8gbm90IHVzZSBpdCBpbiBzdWJjbGFzc2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT51cmk8L0NPREU+IC0gTW9kdWxlLXJlbGF0aXZlIFVSSSB0byBpbmNsdWRlPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCBwYWdlIHJlcXVlc3Q8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gQ3VycmVudCBwYWdlIHJlc3BvbnNlCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+PERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRm9yd2FyZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+ZG9Gb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5EbyBhIGZvcndhcmQgdG8gc3BlY2lmaWVkIHVyaSB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuCisgVGhpcyBtZXRob2QgaXMgdXNlZCBieSBhbGwgaW50ZXJuYWwgbWV0aG9kIG5lZWRpbmcgdG8gZG8gYSBmb3J3YXJkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT51cmk8L0NPREU+IC0gQ29udGV4dC1yZWxhdGl2ZSBVUkkgdG8gZm9yd2FyZCB0bzxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcGFnZSByZXF1ZXN0PEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIEN1cnJlbnQgcGFnZSByZXNwb25zZQorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0luY2x1ZGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+Citkb0luY2x1ZGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmRvSW5jbHVkZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RG8gYW4gaW5jbHVkZSBvZiBzcGVjaWZpZWQgdXJpIHVzaW5nIHJlcXVlc3QgZGlzcGF0Y2hlci4KKyBUaGlzIG1ldGhvZCBpcyB1c2VkIGJ5IGFsbCBpbnRlcm5hbCBtZXRob2QgbmVlZGluZyB0byBkbyBhbiBpbmNsdWRlCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnVyaTwvQ09ERT4gLSBDb250ZXh0LXJlbGF0aXZlIFVSSSB0byBpbmNsdWRlPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCBwYWdlIHJlcXVlc3Q8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gQ3VycmVudCBwYWdlIHJlc3BvbnNlCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+PERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldERlYnVnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERlYnVnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldERlYnVnPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+Q29uZmlndXJlIHRoZSBsb2dnaW5nIGRldGFpbCBsZXZlbCBpbiB5b3VyCisgIHVuZGVybHlpbmcgbG9nZ2luZyBpbXBsZW1lbnRhdGlvbjwvST4KKzxQPgorPEREPlJldHVybiB0aGUgZGVidWdnaW5nIGRldGFpbCBsZXZlbCB0aGF0IGhhcyBiZWVuIGNvbmZpZ3VyZWQgZm9yIG91cgorIGNvbnRyb2xsZXIgc2VydmxldC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SW50ZXJuYWwoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SW50ZXJuYWw8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+Z2V0SW50ZXJuYWw8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGluc3RhbmNlIGNvbnRhaW5pbmcgb3VyCisgaW50ZXJuYWwgbWVzc2FnZSBzdHJpbmdzLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTZXJ2bGV0Q29udGV4dCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTZXJ2bGV0Q29udGV4dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQgPEI+Z2V0U2VydmxldENvbnRleHQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIFNlcnZsZXRDb250ZXh0IGZvciB0aGUgd2ViIGFwcGxpY2F0aW9uIHdlIGFyZSBydW5uaW5nIGluLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2coamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+bG9nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSk8L1BSRT4KKzxETD4KKzxERD5Mb2cgdGhlIHNwZWNpZmllZCBtZXNzYWdlIHRvIHRoZSBzZXJ2bGV0IGNvbnRleHQgbG9nIGZvciB0aGlzCisgd2ViIGFwcGxpY2F0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tZXNzYWdlPC9DT0RFPiAtIFRoZSBtZXNzYWdlIHRvIGJlIGxvZ2dlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9nKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5UaHJvd2FibGUpIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmxvZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO2V4Y2VwdGlvbik8L1BSRT4KKzxETD4KKzxERD5Mb2cgdGhlIHNwZWNpZmllZCBtZXNzYWdlIGFuZCBleGNlcHRpb24gdG8gdGhlIHNlcnZsZXQgY29udGV4dCBsb2cKKyBmb3IgdGhpcyB3ZWIgYXBwbGljYXRpb24uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1lc3NhZ2U8L0NPREU+IC0gVGhlIG1lc3NhZ2UgdG8gYmUgbG9nZ2VkPEREPjxDT0RFPmV4Y2VwdGlvbjwvQ09ERT4gLSBUaGUgZXhjZXB0aW9uIHRvIGJlIGxvZ2dlZDwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUmVxdWVzdFByb2Nlc3Nvci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlcXVlc3RQcm9jZXNzb3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1Nlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1Nlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWM5ZGU1ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbApAQCAtMCwwICsxLDI2NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDoxMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1Nlc3Npb25BY3Rpb25NYXBwaW5nIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uU2Vzc2lvbkFjdGlvbk1hcHBpbmcsU2Vzc2lvbkFjdGlvbk1hcHBpbmcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlNlc3Npb25BY3Rpb25NYXBwaW5nIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1Nlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9GT05UPgorPEJSPgorQ2xhc3MgU2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWc8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlNlc3Npb25BY3Rpb25NYXBwaW5nPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+U2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0RMPgorCis8UD4KK1N1YmNsYXNzIG9mIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IHRoYXQgZGVmYXVsdHMgdGhlIGZvcm0gYmVhbgorIHNjb3BlIHRvIDxjb2RlPnNlc3Npb248L2NvZGU+LgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uU2Vzc2lvbkFjdGlvbk1hcHBpbmciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjY29uZmlndXJlZCI+Y29uZmlndXJlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNleGNlcHRpb25zIj5leGNlcHRpb25zPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2ZvcndhcmQiPmZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZm9yd2FyZHMiPmZvcndhcmRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2luY2x1ZGUiPmluY2x1ZGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjaW5wdXQiPmlucHV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI21vZHVsZUNvbmZpZyI+bW9kdWxlQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI211bHRpcGFydENsYXNzIj5tdWx0aXBhcnRDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3BhdGgiPnBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjcHJlZml4Ij5wcmVmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjcm9sZU5hbWVzIj5yb2xlTmFtZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjcm9sZXMiPnJvbGVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzdWZmaXgiPnN1ZmZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCN0eXBlIj50eXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3Vua25vd24iPnVua25vd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjdmFsaWRhdGUiPnZhbGlkYXRlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9TZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sI1Nlc3Npb25BY3Rpb25NYXBwaW5nKCkiPlNlc3Npb25BY3Rpb25NYXBwaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2l0aCB0aGUgZGVzaXJlZCBkZWZhdWx0CisgZm9ybSBiZWFuIHNjb3BlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2ZpbmRFeGNlcHRpb24oamF2YS5sYW5nLkNsYXNzKSI+ZmluZEV4Y2VwdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwjZmluZEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPmZpbmRGb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNmaW5kRm9yd2FyZHMoKSI+ZmluZEZvcndhcmRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCNnZXRJbnB1dEZvcndhcmQoKSI+Z2V0SW5wdXRGb3J3YXJkPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjYWRkRXhjZXB0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcpIj5hZGRFeGNlcHRpb25Db25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjYWRkRm9yd2FyZENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPmFkZEZvcndhcmRDb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZmluZEV4Y2VwdGlvbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEV4Y2VwdGlvbkNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNmaW5kRXhjZXB0aW9uQ29uZmlncygpIj5maW5kRXhjZXB0aW9uQ29uZmlnczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNmaW5kRm9yd2FyZENvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcndhcmRDb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZmluZEZvcndhcmRDb25maWdzKCkiPmZpbmRGb3J3YXJkQ29uZmlnczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNmcmVlemUoKSI+ZnJlZXplPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldEFwcGxpY2F0aW9uQ29uZmlnKCkiPmdldEFwcGxpY2F0aW9uQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldEF0dHJpYnV0ZSgpIj5nZXRBdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0Rm9yd2FyZCgpIj5nZXRGb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldEluY2x1ZGUoKSI+Z2V0SW5jbHVkZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRJbnB1dCgpIj5nZXRJbnB1dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRNb2R1bGVDb25maWcoKSI+Z2V0TW9kdWxlQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldE11bHRpcGFydENsYXNzKCkiPmdldE11bHRpcGFydENsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRQYXJhbWV0ZXIoKSI+Z2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFBhdGgoKSI+Z2V0UGF0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRQcmVmaXgoKSI+Z2V0UHJlZml4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFJvbGVOYW1lcygpIj5nZXRSb2xlTmFtZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0Um9sZXMoKSI+Z2V0Um9sZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0U3VmZml4KCkiPmdldFN1ZmZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRUeXBlKCkiPmdldFR5cGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0VW5rbm93bigpIj5nZXRVbmtub3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFZhbGlkYXRlKCkiPmdldFZhbGlkYXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3JlbW92ZUV4Y2VwdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnKSI+cmVtb3ZlRXhjZXB0aW9uQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3JlbW92ZUZvcndhcmRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj5yZW1vdmVGb3J3YXJkQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldEFwcGxpY2F0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5zZXRBcHBsaWNhdGlvbkNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPnNldEF0dHJpYnV0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldEluY2x1ZGUoamF2YS5sYW5nLlN0cmluZykiPnNldEluY2x1ZGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0SW5wdXQoamF2YS5sYW5nLlN0cmluZykiPnNldElucHV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldE1vZHVsZUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+c2V0TW9kdWxlQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldE11bHRpcGFydENsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNdWx0aXBhcnRDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldFBhdGgoamF2YS5sYW5nLlN0cmluZykiPnNldFBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0UHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcmVmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0Um9sZXMoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRTdWZmaXgoamF2YS5sYW5nLlN0cmluZykiPnNldFN1ZmZpeDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUeXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldFVua25vd24oYm9vbGVhbikiPnNldFVua25vd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0VmFsaWRhdGUoYm9vbGVhbikiPnNldFZhbGlkYXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlNlc3Npb25BY3Rpb25NYXBwaW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1Nlc3Npb25BY3Rpb25NYXBwaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+U2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyB3aXRoIHRoZSBkZXNpcmVkIGRlZmF1bHQKKyBmb3JtIGJlYW4gc2NvcGUuCis8UD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9TZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZyI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzNTk4ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb24uaHRtbApAQCAtMCwwICsxLDM3OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb248L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSBhY3Rpb24gcGFja2FnZSBpcyB0aGUgY29yZSBvZiB0aGUgc3RydXRzIGZyYW1ld29yaywKKyAgICBwcm92aWRpbmcgdGhlICJDb250cm9sbGVyIiBhc3BlY3Qgb2YgYSBNVkMgbW9kZWwuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvQj48L0E+PC9URD4KKzxURD4gVGhlIGFjdGlvbnMgcGFja2FnZSBwcm92aWRlcyBzcGVjaWFsIGFkYXB0ZXJzIGJldHdlZW4gdGhlIGluY29taW5nICBIVFRQCisgcmVxdWVzdCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYnVzaW5lc3MgbG9naWMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvQT48L1REPgorPFREPjxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnM8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RQcm9jZXNzb3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0FjdGlvbkNyZWF0ZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzQWN0aW9uQ3JlYXRlPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBhbiA8Y29kZT5BY3Rpb248L2NvZGU+IGluc3RhbmNlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHByb2Nlc3MKKyB0aGUgY3VycmVudCByZXF1ZXN0LCBjcmVhdGluZyBhIG5ldyBvbmUgaWYgbmVjZXNzYXJ5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RQcm9jZXNzb3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0FjdGlvblBlcmZvcm0oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnByb2Nlc3NBY3Rpb25QZXJmb3JtPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Jm5ic3A7YWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXNrIHRoZSBzcGVjaWZpZWQgPGNvZGU+QWN0aW9uPC9jb2RlPiBpbnN0YW5jZSB0byBoYW5kbGUgdGhpcworIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCI+RGlzcGF0Y2hBY3Rpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW4gYWJzdHJhY3QgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBkaXNwYXRjaGVzIHRvIGEgcHVibGljCisgbWV0aG9kIHRoYXQgaXMgbmFtZWQgYnkgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHdob3NlIG5hbWUgaXMgc3BlY2lmaWVkCisgYnkgdGhlIDxjb2RlPnBhcmFtZXRlcjwvY29kZT4gcHJvcGVydHkgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyBBY3Rpb25NYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCI+Rm9yd2FyZEFjdGlvbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGZvcndhcmRzIHRvIHRoZSBjb250ZXh0LXJlbGF0aXZlCisgVVJJIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+cGFyYW1ldGVyPC9jb2RlPiBwcm9wZXJ0eSBvZiBvdXIgYXNzb2NpYXRlZAorIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCI+SW5jbHVkZUFjdGlvbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGluY2x1ZGVzIHRoZSBjb250ZXh0LXJlbGF0aXZlCisgVVJJIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+cGFyYW1ldGVyPC9jb2RlPiBwcm9wZXJ0eSBvZiBvdXIgYXNzb2NpYXRlZAorIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiPkxvb2t1cERpc3BhdGNoQWN0aW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOworCisgIEFuIGFic3RyYWN0IDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgZGlzcGF0Y2hlcyB0byB0aGUgc3ViY2xhc3MgbWFwcGVkCisgIDxjb2RlPmV4ZWN1dGU8L2NvZGU+IG1ldGhvZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Td2l0Y2hBY3Rpb24uaHRtbCI+U3dpdGNoQWN0aW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Egc3RhbmRhcmQgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBzd2l0Y2hlcyB0byBhIG5ldyBtb2R1bGUKKyBhbmQgdGhlbiBmb3J3YXJkcyBjb250cm9sIHRvIGEgVVJJIChzcGVjaWZpZWQgaW4gYSBudW1iZXIgb2YgcG9zc2libGUgd2F5cykKKyB3aXRoaW4gdGhlIG5ldyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+RmllbGRzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25Db250cm9sbGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db250cm9sbGVyLmh0bWwjYWN0aW9uIj5hY3Rpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U3RydXRzIGFjdGlvbiB3cmFwcGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNvbnN0cnVjdG9ycyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbnRyb2xsZXIuaHRtbCNBY3Rpb25Db250cm9sbGVyKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24pIj5BY3Rpb25Db250cm9sbGVyPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Jm5ic3A7YWN0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9uczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9uczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24uaHRtbCI+RGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW4gPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBkaXNwYXRjaGVzIHRvIGEgVGlsZXMgRGVmaW5pdGlvbgorIHRoYXQgaXMgbmFtZWQgYnkgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHdob3NlIG5hbWUgaXMgc3BlY2lmaWVkCisgYnkgdGhlIDxjb2RlPnBhcmFtZXRlcjwvY29kZT4gcHJvcGVydHkgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyBBY3Rpb25NYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL05vT3BBY3Rpb24uaHRtbCI+Tm9PcEFjdGlvbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2Ugby5hLnMuYS5Gb3J3YXJkQWN0aW9uIGluc3RlYWQgd2l0aCB0aGUgcGFyYW1ldGVyIGF0dHJpYnV0ZToKKyA8Y29kZT4KKyAgICAmbHQ7YWN0aW9uIHBhdGg9ImFQYXRoIgorICAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuRm9yd2FyZEFjdGlvbiIKKyAgICAgICAgICAgICAgICBwYXJhbWV0ZXI9InRpbGVzLmRlZi5uYW1lIiAvJmd0OworIDwvY29kZT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb24uaHRtbCI+UmVsb2FkRGVmaW5pdGlvbnNBY3Rpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBzdGFuZGFyZCA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGNhbGxzIHRoZQorIDxjb2RlPnJlbG9hZCgpPC9jb2RlPiBtZXRob2Qgb2Ygb3VyIGNvbnRyb2xsZXIgc2VydmxldCB0bworIHJlbG9hZCBpdHMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjb25maWd1cmF0aW9uCisgZmlsZXMgKHdoaWNoIGhhdmUgcHJlc3VtYWJseSBiZWVuIHVwZGF0ZWQpIGR5bmFtaWNhbGx5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1RpbGVzQWN0aW9uLmh0bWwiPlRpbGVzQWN0aW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Jhc2UgY2xhc3MgZm9yIFRpbGVzIEFjdGlvbnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVmlld0RlZmluaXRpb25zQWN0aW9uLmh0bWwiPlZpZXdEZWZpbml0aW9uc0FjdGlvbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IHdyaXRlcyB0aGUKKyBkZWZpbml0aW9ucyBvZiB0aGUgVGlsZXMgZmFjdG9yeS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRXJyb3IuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkVycm9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDYwM2ZhNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkVycm9yLmh0bWwKQEAgLTAsMCArMSwyODIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3IgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25FcnJvci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcjwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSBhY3Rpb24gcGFja2FnZSBpcyB0aGUgY29yZSBvZiB0aGUgc3RydXRzIGZyYW1ld29yaywKKyAgICBwcm92aWRpbmcgdGhlICJDb250cm9sbGVyIiBhc3BlY3Qgb2YgYSBNVkMgbW9kZWwuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudXRpbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQj48L0E+PC9URD4KKzxURD5UaGUgVXRpbGl0aWVzIHBhY2thZ2UgcHJvdmlkZXMgYSB2YXJpZXR5IG9mIGZhbWlsaWVzIG9mIGNsYXNzZXMsCit0byBzb2x2ZSBwcm9ibGVtcyB0aGF0IGFyZSBjb21tb25seSBlbmNvdW50ZXJlZCBpbiBidWlsZGluZyB3ZWIgYXBwbGljYXRpb25zLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9CPjwvQT48L1REPgorPFREPiBUaGUgdmFsaWRhdG9yIHBhY2thZ2UgcHJvdmlkZXMgYSBzZXJpZXMgb2YgY2xhc3NlcyB0byB2YWxpZGF0ZSAKKyAgIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IHR5cGUgb2YgaW5wdXQuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uRXhjZXB0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXhjZXB0aW9uLmh0bWwjZ2V0RXJyb3IoKSI+Z2V0RXJyb3I8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm5zIGFuIGluc3RhbmNlIG9mIGFuIDxiPkFjdGlvbkVycm9yPC9iPiBjb25maWd1cmVkIGZvcgordGhpcyBleGNlcHRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RXhjZXB0aW9uSGFuZGxlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCNzdG9yZUV4Y2VwdGlvbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3IsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkLCBqYXZhLmxhbmcuU3RyaW5nKSI+c3RvcmVFeGNlcHRpb248L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSwKKyAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT4mbmJzcDtlcnJvciwKKyAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCwKKyAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIGhhbmRsaW5nIGFuIDxiPkFjdGlvbkVycm9yPC9iPiBnZW5lcmF0ZWQKKyBmcm9tIGFuIEV4Y2VwdGlvbiBkdXJpbmcgPGI+QWN0aW9uPC9iPiBkZWxlZ2F0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkVycm9ycy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sI2FkZChqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3IpIj5hZGQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHksCisgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPiZuYnNwO2Vycm9yKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGFuIGVycm9yIG1lc3NhZ2UgdG8gdGhlIHNldCBvZiBlcnJvcnMgZm9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPiBkZWNsYXJlZCBhcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVFeGNlcHRpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwjZXJyb3IiPmVycm9yPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5TdHJ1dHNWYWxpZGF0b3JVdGlsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCNnZXRBY3Rpb25FcnJvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPmdldEFjdGlvbkVycm9yPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sI2dldEFjdGlvbkVycm9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkKSI+PENPREU+UmVzb3VyY2VzLmdldEFjdGlvbkVycm9yKEh0dHBTZXJ2bGV0UmVxdWVzdCwgVmFsaWRhdG9yQWN0aW9uLCBGaWVsZCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVFeGNlcHRpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwjZ2V0RXJyb3IoKSI+Z2V0RXJyb3I8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBlcnJvciBhc3NvY2lhdGVkIHdpdGggdGhlIGV4Y2VwdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXNvdXJjZXMuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRBY3Rpb25FcnJvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPmdldEFjdGlvbkVycm9yPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0cyB0aGUgPGNvZGU+QWN0aW9uRXJyb3I8L2NvZGU+IGJhc2VkIG9uIHRoZSA8Y29kZT5WYWxpZGF0b3JBY3Rpb248L2NvZGU+IG1lc3NhZ2UgYW5kIHRoZQorIDxjb2RlPkZpZWxkPC9jb2RlPidzIGFyZyBvYmplY3RzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRXJyb3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRXJyb3JzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25FcnJvcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODUxMWMyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRXJyb3JzLmh0bWwKQEAgLTAsMCArMSw3ODggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25FcnJvcnMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9CPjwvQT48L1REPgorPFREPiBUaGUgYWN0aW9uIHBhY2thZ2UgaXMgdGhlIGNvcmUgb2YgdGhlIHN0cnV0cyBmcmFtZXdvcmssCisgICAgcHJvdmlkaW5nIHRoZSAiQ29udHJvbGxlciIgYXNwZWN0IG9mIGEgTVZDIG1vZGVsLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9CPjwvQT48L1REPgorPFREPlRoZSAiY29uZmlnIiBwYWNrYWdlIGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyB0aGF0IGNvcnJlc3BvbmQgdG8KK2VsZW1lbnRzIHRoYXQgbWF5IGJlIHNwZWNpZmllZCBpbiB0aGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+Cittb2R1bGUgY29uZmlndXJhdGlvbiBmaWxlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIFV0aWxpdGllcyBwYWNrYWdlIHByb3ZpZGVzIGEgdmFyaWV0eSBvZiBmYW1pbGllcyBvZiBjbGFzc2VzLAordG8gc29sdmUgcHJvYmxlbXMgdGhhdCBhcmUgY29tbW9ubHkgZW5jb3VudGVyZWQgaW4gYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQj48L0E+PC9URD4KKzxURD4gVGhlIHZhbGlkYXRvciBwYWNrYWdlIHByb3ZpZGVzIGEgc2VyaWVzIG9mIGNsYXNzZXMgdG8gdmFsaWRhdGUgCisgICA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiB0eXBlIG9mIGlucHV0LiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkZvcm0uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VmFsaWRhdGUgdGhlIHByb3BlcnRpZXMgdGhhdCBoYXZlIGJlZW4gc2V0IGZvciB0aGlzIG5vbi1IVFRQIHJlcXVlc3QsCisgYW5kIHJldHVybiBhbiA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyBhbnkKKyB2YWxpZGF0aW9uIGVycm9ycyB0aGF0IGhhdmUgYmVlbiBmb3VuZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkZvcm0uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VmFsaWRhdGUgdGhlIHByb3BlcnRpZXMgdGhhdCBoYXZlIGJlZW4gc2V0IGZvciB0aGlzIEhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZUVycm9ycyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzKSI+c2F2ZUVycm9yczwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTYXZlIHRoZSBzcGVjaWZpZWQgZXJyb3IgbWVzc2FnZXMga2V5cyBpbnRvIHRoZSBhcHByb3ByaWF0ZSByZXF1ZXN0CisgYXR0cmlidXRlIGZvciB1c2UgYnkgdGhlICZsdDtodG1sOmVycm9ycyZndDsgdGFnLCBpZiBhbnkgbWVzc2FnZXMKKyBhcmUgcmVxdWlyZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q29uc3RydWN0b3JzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwjQWN0aW9uRXJyb3JzKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMpIj5BY3Rpb25FcnJvcnM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDttZXNzYWdlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbiA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCBpbml0aWFsaXplZCB3aXRoIHRoZSBnaXZlbiAKKyBtZXNzYWdlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db25maWdIZWxwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRBY3Rpb25FcnJvcnMoKSI+Z2V0QWN0aW9uRXJyb3JzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCwKKyBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29uZmlnSGVscGVySW50ZXJmYWNlLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uRXJyb3JzKCkiPmdldEFjdGlvbkVycm9yczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QsCisgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RVdGlscy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRBY3Rpb25FcnJvcnMoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRBY3Rpb25FcnJvcnM8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbU5hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZXMgdGhlIHZhbHVlIGZyb20gcmVxdWVzdCBzY29wZSBhbmQgaWYgaXQgaXNuJ3QgYWxyZWFkeSBhbiA8Y29kZT5FcnJvck1lc3NhZ2VzPC9jb2RlPgorIHNvbWUgY2xhc3NlcyBhcmUgY29udmVydGVkIHRvIG9uZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+U3RydXRzVmFsaWRhdG9yVXRpbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjaW5pdFZhbGlkYXRvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBpbnQpIj5pbml0VmFsaWRhdG9yPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDthcHBsaWNhdGlvbiwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgaW50Jm5ic3A7cGFnZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNpbml0VmFsaWRhdG9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGludCkiPjxDT0RFPlJlc291cmNlcy5pbml0VmFsaWRhdG9yKFN0cmluZyxPYmplY3QsU2VydmxldENvbnRleHQsSHR0cFNlcnZsZXRSZXF1ZXN0LEFjdGlvbkVycm9ycyxpbnQpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+U3RydXRzVmFsaWRhdG9yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlUmVxdWlyZWQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZVJlcXVpcmVkPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlUmVxdWlyZWQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZVJlcXVpcmVkKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5TdHJ1dHNWYWxpZGF0b3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVNYXNrKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVNYXNrPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVNYXNrKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVNYXNrKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLkJ5dGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+U3RydXRzVmFsaWRhdG9yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlQnl0ZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlQnl0ZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlQnl0ZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlQnl0ZShPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TaG9ydDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5TdHJ1dHNWYWxpZGF0b3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVTaG9ydChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlU2hvcnQ8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVTaG9ydChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlU2hvcnQoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuSW50ZWdlcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5TdHJ1dHNWYWxpZGF0b3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVJbnRlZ2VyKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVJbnRlZ2VyPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVJbnRlZ2VyKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVJbnRlZ2VyKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLkxvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+U3RydXRzVmFsaWRhdG9yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlTG9uZyhqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlTG9uZzwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlTG9uZyhqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlTG9uZyhPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5GbG9hdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5TdHJ1dHNWYWxpZGF0b3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVGbG9hdChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlRmxvYXQ8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVGbG9hdChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlRmxvYXQoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuRG91YmxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlN0cnV0c1ZhbGlkYXRvci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZURvdWJsZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlRG91YmxlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZURvdWJsZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlRG91YmxlKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS51dGlsLkRhdGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+U3RydXRzVmFsaWRhdG9yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlRGF0ZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlRGF0ZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRGF0ZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlRGF0ZShPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+U3RydXRzVmFsaWRhdG9yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlUmFuZ2UoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZVJhbmdlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlSW50UmFuZ2UoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUludFJhbmdlKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLkxvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+U3RydXRzVmFsaWRhdG9yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlQ3JlZGl0Q2FyZChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlQ3JlZGl0Q2FyZDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlQ3JlZGl0Q2FyZChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlQ3JlZGl0Q2FyZChPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT4KKworICBUcmFuc2xhdGVkIHRvIEphdmEgYnkgVGVkIEh1c3RlZCAoPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vb3JnXGFwYWNoZVxzdHJ1dHNcdXRpbC9tYWlsdG86aHVzdGVkQGFwYWNoZS5vcmciPmh1c3RlZEBhcGFjaGUub3JnCisgIDwvYT4pLjxicj4KKyAgJm5ic3A7Jm5ic3A7Jm5ic3A7IFJlZmVyZW5jZSBTZWFuIE0uIEJ1cmtlJ3Mgc2NyaXB0IGF0IGh0dHA6Ly93d3cubGluZy5ud3UuZWR1L35zYnVya2UvcHViL2x1aG5fbGliLnBsCisgIDwvcD48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+U3RydXRzVmFsaWRhdG9yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlRW1haWwoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZUVtYWlsPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRW1haWwoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUVtYWlsKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPgorCisgIEJhc2VkIG9uIGEgc2NyaXB0IGJ5IFNhbmRlZXAgVi4gVGFtaGFua2FyIChzdGFtaGFua2FyQGhvdG1haWwuY29tKSwgaHR0cDovL2phdmFzY3JpcHQuaW50ZXJuZXQuY29tCisgIDwvcD48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+U3RydXRzVmFsaWRhdG9yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlTWF4TGVuZ3RoKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVNYXhMZW5ndGg8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlTWF4TGVuZ3RoKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVNYXhMZW5ndGgoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlN0cnV0c1ZhbGlkYXRvci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZU1pbkxlbmd0aChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlTWluTGVuZ3RoPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZU1pbkxlbmd0aChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlTWluTGVuZ3RoKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5WYWxpZGF0b3JGb3JtLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sI3ZhbGlkYXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ZhbGlkYXRlIHRoZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBiZWVuIHNldCBmcm9tIHRoaXMgSFRUUCByZXF1ZXN0LAorIGFuZCByZXR1cm4gYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgYW55CisgdmFsaWRhdGlvbiBlcnJvcnMgdGhhdCBoYXZlIGJlZW4gZm91bmQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EeW5hVmFsaWRhdG9yRm9ybS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VmFsaWRhdGUgdGhlIHByb3BlcnRpZXMgdGhhdCBoYXZlIGJlZW4gc2V0IGZyb20gdGhpcyBIVFRQIHJlcXVlc3QsCisgYW5kIHJldHVybiBhbiA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyBhbnkKKyB2YWxpZGF0aW9uIGVycm9ycyB0aGF0IGhhdmUgYmVlbiBmb3VuZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkR5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtWYWxpZGF0ZSB0aGUgcHJvcGVydGllcyB0aGF0IGhhdmUgYmVlbiBzZXQgZnJvbSB0aGlzIEhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VmFsaWRhdG9yQWN0aW9uRm9ybS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtWYWxpZGF0ZSB0aGUgcHJvcGVydGllcyB0aGF0IGhhdmUgYmVlbiBzZXQgZnJvbSB0aGlzIEhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVzb3VyY2VzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjaW5pdFZhbGlkYXRvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBpbnQpIj5pbml0VmFsaWRhdG9yPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDthcHBsaWNhdGlvbiwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgaW50Jm5ic3A7cGFnZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgdGhlIDxjb2RlPlZhbGlkYXRvcjwvY29kZT4gdG8gcGVyZm9ybSB2YWxpZGF0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZpZWxkQ2hlY2tzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZVJlcXVpcmVkKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVSZXF1aXJlZDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDaGVja3MgaWYgdGhlIGZpZWxkIGlzbid0IG51bGwgYW5kIGxlbmd0aCBvZiB0aGUgZmllbGQgaXMgZ3JlYXRlciB0aGFuIHplcm8gbm90IAorIGluY2x1ZGluZyB3aGl0ZXNwYWNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZpZWxkQ2hlY2tzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZVJlcXVpcmVkSWYoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVSZXF1aXJlZElmPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yJm5ic3A7dmFsaWRhdG9yLAorICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2hlY2tzIGlmIHRoZSBmaWVsZCBpc24ndCBudWxsIGJhc2VkIG9uIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZpZWxkQ2hlY2tzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZU1hc2soamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZU1hc2s8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDaGVja3MgaWYgdGhlIGZpZWxkIG1hdGNoZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBpbiB0aGUgZmllbGQncyBtYXNrIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLkJ5dGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RmllbGRDaGVja3MuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlQnl0ZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlQnl0ZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiB0aGUgZmllbGQgY2FuIHNhZmVseSBiZSBjb252ZXJ0ZWQgdG8gYSBieXRlIHByaW1pdGl2ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlNob3J0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZpZWxkQ2hlY2tzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZVNob3J0KGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVTaG9ydDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDaGVja3MgaWYgdGhlIGZpZWxkIGNhbiBzYWZlbHkgYmUgY29udmVydGVkIHRvIGEgc2hvcnQgcHJpbWl0aXZlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuSW50ZWdlcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5GaWVsZENoZWNrcy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVJbnRlZ2VyKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVJbnRlZ2VyPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2hlY2tzIGlmIHRoZSBmaWVsZCBjYW4gc2FmZWx5IGJlIGNvbnZlcnRlZCB0byBhbiBpbnQgcHJpbWl0aXZlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuTG9uZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5GaWVsZENoZWNrcy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVMb25nKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVMb25nPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2hlY2tzIGlmIHRoZSBmaWVsZCBjYW4gc2FmZWx5IGJlIGNvbnZlcnRlZCB0byBhIGxvbmcgcHJpbWl0aXZlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuRmxvYXQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RmllbGRDaGVja3MuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRmxvYXQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZUZsb2F0PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiB0aGUgZmllbGQgY2FuIHNhZmVseSBiZSBjb252ZXJ0ZWQgdG8gYSBmbG9hdCBwcmltaXRpdmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5Eb3VibGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RmllbGRDaGVja3MuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRG91YmxlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVEb3VibGU8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiB0aGUgZmllbGQgY2FuIHNhZmVseSBiZSBjb252ZXJ0ZWQgdG8gYSBkb3VibGUgcHJpbWl0aXZlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLnV0aWwuRGF0ZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5GaWVsZENoZWNrcy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVEYXRlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVEYXRlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2hlY2tzIGlmIHRoZSBmaWVsZCBpcyBhIHZhbGlkIGRhdGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RmllbGRDaGVja3MuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlUmFuZ2UoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZVJhbmdlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlSW50UmFuZ2UoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUludFJhbmdlKGphdmEubGFuZy5PYmplY3Qsb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCxvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RmllbGRDaGVja3MuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlSW50UmFuZ2UoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZUludFJhbmdlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiBhIGZpZWxkcyB2YWx1ZSBpcyB3aXRoaW4gYSByYW5nZSAobWluICZhbXA7IG1heCBzcGVjaWZpZWQgaW4gdGhlCisgdmFycyBhdHRyaWJ1dGUpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZpZWxkQ2hlY2tzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZURvdWJsZVJhbmdlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVEb3VibGVSYW5nZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDaGVja3MgaWYgYSBmaWVsZHMgdmFsdWUgaXMgd2l0aGluIGEgcmFuZ2UgKG1pbiAmYW1wOyBtYXggc3BlY2lmaWVkIGluIHRoZQorICB2YXJzIGF0dHJpYnV0ZSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RmllbGRDaGVja3MuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRmxvYXRSYW5nZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlRmxvYXRSYW5nZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiBhIGZpZWxkcyB2YWx1ZSBpcyB3aXRoaW4gYSByYW5nZSAobWluICZhbXA7IG1heCBzcGVjaWZpZWQgaW4gdGhlCisgIHZhcnMgYXR0cmlidXRlKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLkxvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RmllbGRDaGVja3MuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlQ3JlZGl0Q2FyZChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlQ3JlZGl0Q2FyZDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiB0aGUgZmllbGQgaXMgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RmllbGRDaGVja3MuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRW1haWwoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZUVtYWlsPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiBhIGZpZWxkIGhhcyBhIHZhbGlkIGUtbWFpbCBhZGRyZXNzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZpZWxkQ2hlY2tzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZU1heExlbmd0aChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlTWF4TGVuZ3RoPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDaGVja3MgaWYgdGhlIGZpZWxkJ3MgbGVuZ3RoIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgbWF4aW11bSB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5GaWVsZENoZWNrcy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVNaW5MZW5ndGgoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZU1pbkxlbmd0aDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2hlY2tzIGlmIHRoZSBmaWVsZCdzIGxlbmd0aCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG1pbmltdW0gdmFsdWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRXJyb3JzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkV4Y2VwdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjA4NzAyZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkV4Y2VwdGlvbi5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FeGNlcHRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkV4Y2VwdGlvbjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXhjZXB0aW9uCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkZvcm0uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDAzNDE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRm9ybS5odG1sCkBAIC0wLDAgKzEsNjk4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSBhY3Rpb24gcGFja2FnZSBpcyB0aGUgY29yZSBvZiB0aGUgc3RydXRzIGZyYW1ld29yaywKKyAgICBwcm92aWRpbmcgdGhlICJDb250cm9sbGVyIiBhc3BlY3Qgb2YgYSBNVkMgbW9kZWwuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvQj48L0E+PC9URD4KKzxURD4gVGhlIGFjdGlvbnMgcGFja2FnZSBwcm92aWRlcyBzcGVjaWFsIGFkYXB0ZXJzIGJldHdlZW4gdGhlIGluY29taW5nICBIVFRQCisgcmVxdWVzdCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYnVzaW5lc3MgbG9naWMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlICJjb25maWciIHBhY2thZ2UgY29udGFpbnMgY29uZmlndXJhdGlvbiBvYmplY3RzIHRoYXQgY29ycmVzcG9uZCB0bworZWxlbWVudHMgdGhhdCBtYXkgYmUgc3BlY2lmaWVkIGluIHRoZSA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4KK21vZHVsZSBjb25maWd1cmF0aW9uIGZpbGUuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvQT48L1REPgorPFREPjxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnM8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudXRpbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQj48L0E+PC9URD4KKzxURD5UaGUgVXRpbGl0aWVzIHBhY2thZ2UgcHJvdmlkZXMgYSB2YXJpZXR5IG9mIGZhbWlsaWVzIG9mIGNsYXNzZXMsCit0byBzb2x2ZSBwcm9ibGVtcyB0aGF0IGFyZSBjb21tb25seSBlbmNvdW50ZXJlZCBpbiBidWlsZGluZyB3ZWIgYXBwbGljYXRpb25zLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9CPjwvQT48L1REPgorPFREPiBUaGUgdmFsaWRhdG9yIHBhY2thZ2UgcHJvdmlkZXMgYSBzZXJpZXMgb2YgY2xhc3NlcyB0byB2YWxpZGF0ZSAKKyAgIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IHR5cGUgb2YgaW5wdXQuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPkR5bmFBY3Rpb25Gb3JtPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NwZWNpYWxpemVkIHN1YmNsYXNzIG9mIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IHRoYXQgYWxsb3dzIHRoZSBjcmVhdGlvbgorIG9mIGZvcm0gYmVhbnMgd2l0aCBkeW5hbWljIHNldHMgb2YgcHJvcGVydGllcywgd2l0aG91dCByZXF1aXJpbmcgdGhlCisgZGV2ZWxvcGVyIHRvIGNyZWF0ZSBhIEphdmEgY2xhc3MgZm9yIGVhY2ggdHlwZSBvZiBmb3JtIGJlYW4uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0UHJvY2Vzc29yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NBY3Rpb25Gb3JtKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnByb2Nlc3NBY3Rpb25Gb3JtPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmUgYW5kIHJldHVybiB0aGUgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gYmVhbiBhc3NvY2lhdGVkIHdpdGgKKyB0aGlzIG1hcHBpbmcsIGNyZWF0aW5nIGFuZCBzdGFzaGluZyBvbmUgaWYgbmVjZXNzYXJ5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVxdWVzdFByb2Nlc3Nvci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzQWN0aW9uUGVyZm9ybShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+cHJvY2Vzc0FjdGlvblBlcmZvcm08L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4mbmJzcDthY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBc2sgdGhlIHNwZWNpZmllZCA8Y29kZT5BY3Rpb248L2NvZGU+IGluc3RhbmNlIHRvIGhhbmRsZSB0aGlzCisgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RQcm9jZXNzb3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0V4Y2VwdGlvbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YS5sYW5nLkV4Y2VwdGlvbiwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+cHJvY2Vzc0V4Y2VwdGlvbjwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuRXhjZXB0aW9uJm5ic3A7ZXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FzayBvdXIgZXhjZXB0aW9uIGhhbmRsZXIgdG8gaGFuZGxlIHRoZSBleGNlcHRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RQcm9jZXNzb3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc1BvcHVsYXRlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzUG9wdWxhdGU8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQb3B1bGF0ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgc3BlY2lmaWVkIEFjdGlvbkZvcm0gaW5zdGFuY2UgZnJvbQorIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMgaW5jbHVkZWQgd2l0aCB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RQcm9jZXNzb3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc1ZhbGlkYXRlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzVmFsaWRhdGU8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJZiB0aGlzIHJlcXVlc3Qgd2FzIG5vdCBjYW5jZWxsZWQsIGFuZCB0aGUgcmVxdWVzdCdzCisgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+PENPREU+QWN0aW9uTWFwcGluZzwvQ09ERT48L0E+IGhhcyBub3QgZGlzYWJsZWQgdmFsaWRhdGlvbiwgY2FsbCB0aGUKKyA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2Qgb2YgdGhlIHNwZWNpZmllZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj48Q09ERT5BY3Rpb25Gb3JtPC9DT0RFPjwvQT4sCisgYW5kIGZvcndhcmQgYmFjayB0byB0aGUgaW5wdXQgZm9ybSBpZiB0aGVyZSB3ZXJlIGFueSBlcnJvcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgbm9uLUhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUKKyBjb3JyZXNwb25kaW5nIG5vbi1IVFRQIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViCisgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLCB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcKKyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCksCisgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHRoZSBidXNpbmVzcyBsb2dpYy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSB0aGUgPGNvZGU+ZXhlY3V0ZSgpPC9jb2RlPiBtZXRob2QgaW5zdGVhZDwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSB0aGUgPGNvZGU+ZXhlY3V0ZSgpPC9jb2RlPiBtZXRob2QgaW5zdGVhZDwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RXhjZXB0aW9uSGFuZGxlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCNleGVjdXRlKGphdmEubGFuZy5FeGNlcHRpb24sIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oamF2YS5sYW5nLkV4Y2VwdGlvbiZuYnNwO2V4LAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4mbmJzcDthZSwKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm1JbnN0YW5jZSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtIYW5kbGUgdGhlIGV4Y2VwdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkxvb2t1cERpc3BhdGNoQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorICByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZvcndhcmRBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRpc3BhdGNoQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRpc3BhdGNoQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjdW5zcGVjaWZpZWQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnVuc3BlY2lmaWVkPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TWV0aG9kIHdoaWNoIGlzIGRpc3BhdGNoZWQgdG8gd2hlbiB0aGVyZSBpcyBubyB2YWx1ZSBmb3Igc3BlY2lmaWVkCisgcmVxdWVzdCBwYXJhbWV0ZXIgaW5jbHVkZWQgaW4gdGhlIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EaXNwYXRjaEFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI2Rpc3BhdGNoTWV0aG9kKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmEubGFuZy5TdHJpbmcpIj5kaXNwYXRjaE1ldGhvZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGlzcGF0Y2ggdG8gdGhlIHNwZWNpZmllZCBtZXRob2QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlN3aXRjaEFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Td2l0Y2hBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkluY2x1ZGVBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29uZmlnSGVscGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0QWN0aW9uRm9ybSgpIj5nZXRBY3Rpb25Gb3JtPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbmZpZ0hlbHBlckludGVyZmFjZS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbkZvcm0oKSI+Z2V0QWN0aW9uRm9ybTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25Db21wb25lbnRTZXJ2bGV0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwjcHJvY2Vzc0FjdGlvbkZvcndhcmQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzQWN0aW9uRm9yd2FyZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+Jm5ic3A7Zm9yd2FyZCwKKyAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybUluc3RhbmNlLAorICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7T3ZlcmxvYWQgc3RydXRzMS4wIGNvdW50ZXJwYXJ0IGluIG9yZGVyIHRvIGNhdGNoIGZvcndhcmQgY2FsbHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkNvbXBvbmVudFNlcnZsZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCNwcm9jZXNzVmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NWYWxpZGF0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm1JbnN0YW5jZSwKKyAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7T3ZlcmxvYWQgc3RydXRzMS4wIGNvdW50ZXJwYXJ0IGluIG9yZGVyIHRvIGNhdGNoIGZvcndhcmQgY2FsbHMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnM8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZWxvYWREZWZpbml0aW9uc0FjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9SZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCksCisgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHRoZSBidXNpbmVzcyBsb2dpYy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlZpZXdEZWZpbml0aW9uc0FjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9WaWV3RGVmaW5pdGlvbnNBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlRpbGVzQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1RpbGVzQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO09yaWdpbmFsIFN0cnV0cyBBY3Rpb24ncyBtZXRob2QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlRpbGVzQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1RpbGVzQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4mbmJzcDtjb250ZXh0LAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0IGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwKKyB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc0FjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+Jm5ic3A7Y29udGV4dCwKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSA8Y29kZT5leGVjdXRlKCk8L2NvZGU+IG1ldGhvZCBpbnN0ZWFkPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Ob09wQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL05vT3BBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0VXRpbHMuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjY3JlYXRlQWN0aW9uRm9ybShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5jcmVhdGVBY3Rpb25Gb3JtPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnLAorICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgKGlmIG5lY2Vzc2FyeSkgYW5kIHJldHVybiBhbiBBY3Rpb25Gb3JtIGluc3RhbmNlIGFwcHJvcHJpYXRlCisgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCI+RHluYVZhbGlkYXRvckFjdGlvbkZvcm08L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBjbGFzcyBleHRlbmRzIDxzdHJvbmc+RHluYVZhbGlkYXRvckZvcm08L3N0cm9uZz4gYW5kIHByb3ZpZGVzCisgYmFzaWMgZmllbGQgdmFsaWRhdGlvbiBiYXNlZCBvbiBhbiBYTUwgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JGb3JtPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgY2xhc3MgZXh0ZW5kcyA8c3Ryb25nPkR5bmFBY3Rpb25Gb3JtPC9zdHJvbmc+IGFuZCBwcm92aWRlcworIGJhc2ljIGZpZWxkIHZhbGlkYXRpb24gYmFzZWQgb24gYW4gWE1MIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPlZhbGlkYXRvckFjdGlvbkZvcm08L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBjbGFzcyBleHRlbmRzIDxzdHJvbmc+VmFsaWRhdG9yRm9ybTwvc3Ryb25nPiBhbmQgcHJvdmlkZXMKKyBiYXNpYyBmaWVsZCB2YWxpZGF0aW9uIGJhc2VkIG9uIGFuIFhNTCBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj5WYWxpZGF0b3JGb3JtPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgY2xhc3MgZXh0ZW5kcyA8c3Ryb25nPkFjdGlvbkZvcm08L3N0cm9uZz4gYW5kIHByb3ZpZGVzCisgYmFzaWMgZmllbGQgdmFsaWRhdGlvbiBiYXNlZCBvbiBhbiBYTUwgZmlsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25Gb3JtQmVhbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRm9ybUJlYW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDkxNGJhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRm9ybUJlYW4uaHRtbApAQCAtMCwwICsxLDIzNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkZvcm1CZWFuLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQj48L0E+PC9URD4KKzxURD4gVGhlIGFjdGlvbiBwYWNrYWdlIGlzIHRoZSBjb3JlIG9mIHRoZSBzdHJ1dHMgZnJhbWV3b3JrLAorICAgIHByb3ZpZGluZyB0aGUgIkNvbnRyb2xsZXIiIGFzcGVjdCBvZiBhIE1WQyBtb2RlbC4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQj48L0E+PC9URD4KKzxURD5UaGUgImNvbmZpZyIgcGFja2FnZSBjb250YWlucyBjb25maWd1cmF0aW9uIG9iamVjdHMgdGhhdCBjb3JyZXNwb25kIHRvCitlbGVtZW50cyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPgorbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25TZXJ2bGV0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ZpbmRGb3JtQmVhbihqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcm1CZWFuPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBNb2R1bGVDb25maWcuZmluZEZvcm1CZWFuQ29uZmlnKCk8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uRm9ybUJlYW5zLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwjZmluZEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9ybUJlYW48L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgZm9ybUJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkZvcm1CZWFucy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sI2FkZEZvcm1CZWFuKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbikiPmFkZEZvcm1CZWFuPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPiZuYnNwO2Zvcm1CZWFuKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVnaXN0ZXIgYSBmb3JtIGJlYW4gdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uRm9ybUJlYW5zLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwjcmVtb3ZlRm9ybUJlYW4ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuKSI+cmVtb3ZlRm9ybUJlYW48L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+Jm5ic3A7Zm9ybUJlYW4pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtEZXJlZ2lzdGVyIGEgZm9ybUJlYW4gZnJvbSB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db25maWdIZWxwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRGb3JtQmVhbihqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0Rm9ybUJlYW48L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9ybSBiZWFuIGRlZmluaXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQKKyBsb2dpY2FsIG5hbWUsIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db25maWdIZWxwZXJJbnRlcmZhY2UuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRGb3JtQmVhbihqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0Rm9ybUJlYW48L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9ybSBiZWFuIGRlZmluaXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQKKyBsb2dpY2FsIG5hbWUsIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkZvcm1CZWFuLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkZvcm1CZWFucy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRm9ybUJlYW5zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk4ZDMyMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkZvcm1CZWFucy5odG1sCkBAIC0wLDAgKzEsMTczIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW5zIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbnMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRm9ybUJlYW5zLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuczwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCI+QWN0aW9uRm9ybUJlYW5zPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQj48L0E+PC9URD4KKzxURD5UaGUgImNvbmZpZyIgcGFja2FnZSBjb250YWlucyBjb25maWd1cmF0aW9uIG9iamVjdHMgdGhhdCBjb3JyZXNwb25kIHRvCitlbGVtZW50cyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPgorbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj5BY3Rpb25Gb3JtQmVhbnM8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPkFjdGlvbkZvcm1CZWFuczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCI+QWN0aW9uRm9ybUJlYW5zPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db25maWdIZWxwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRBY3Rpb25Gb3JtQmVhbnMoKSI+Z2V0QWN0aW9uRm9ybUJlYW5zPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbnM8L2NvZGU+IGNvbGxlY3Rpb24KKyBmb3IgdGhpcyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj5BY3Rpb25Gb3JtQmVhbnM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbmZpZ0hlbHBlckludGVyZmFjZS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbkZvcm1CZWFucygpIj5nZXRBY3Rpb25Gb3JtQmVhbnM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuczwvY29kZT4gY29sbGVjdGlvbgorIGZvciB0aGlzIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkZvcm1CZWFucy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25Gb3J3YXJkLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25Gb3J3YXJkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWVjNWZlMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkZvcndhcmQuaHRtbApAQCAtMCwwICsxLDY3NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkZvcndhcmQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9CPjwvQT48L1REPgorPFREPiBUaGUgYWN0aW9uIHBhY2thZ2UgaXMgdGhlIGNvcmUgb2YgdGhlIHN0cnV0cyBmcmFtZXdvcmssCisgICAgcHJvdmlkaW5nIHRoZSAiQ29udHJvbGxlciIgYXNwZWN0IG9mIGEgTVZDIG1vZGVsLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSBhY3Rpb25zIHBhY2thZ2UgcHJvdmlkZXMgc3BlY2lhbCBhZGFwdGVycyBiZXR3ZWVuIHRoZSBpbmNvbWluZyAgSFRUUAorIHJlcXVlc3QgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGJ1c2luZXNzIGxvZ2ljLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9CPjwvQT48L1REPgorPFREPlRoZSAiY29uZmlnIiBwYWNrYWdlIGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyB0aGF0IGNvcnJlc3BvbmQgdG8KK2VsZW1lbnRzIHRoYXQgbWF5IGJlIHNwZWNpZmllZCBpbiB0aGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+Cittb2R1bGUgY29uZmlndXJhdGlvbiBmaWxlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQj48L0E+PC9URD4KKzxURD48ZGl2IGNsYXNzPSJtYWluQ29udGVudCI+CisgICAgVGhlIFRpbGVzIHRhZ2xpYiBhbmQgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyB3ZWIgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSAKKyAgICBwaWVjZXMgb2YgcGFnZXMsIGNhbGxlZCBUaWxlcy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zPC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sIj5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIHN1YmNsYXNzIG9mIDxzdHJvbmc+QWN0aW9uRm9yd2FyZDwvc3Ryb25nPiB0aGF0IGRlZmF1bHRzIHRoZQorIDxjb2RlPnJlZGlyZWN0PC9jb2RlPiBhdHRyaWJ1dGUgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIHN1YmNsYXNzIG9mIDxzdHJvbmc+QWN0aW9uRm9yd2FyZDwvc3Ryb25nPiB0aGF0IGRlZmF1bHRzIHRoZQorIDxjb2RlPnJlZGlyZWN0PC9jb2RlPiBhdHRyaWJ1dGUgdG8gPGNvZGU+dHJ1ZTwvY29kZT4uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvblNlcnZsZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZmluZEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPmZpbmRGb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBNb2R1bGVDb25maWcuZmluZEZvcndhcmRDb25maWcoKTwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RQcm9jZXNzb3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0FjdGlvblBlcmZvcm0oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnByb2Nlc3NBY3Rpb25QZXJmb3JtPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Jm5ic3A7YWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXNrIHRoZSBzcGVjaWZpZWQgPGNvZGU+QWN0aW9uPC9jb2RlPiBpbnN0YW5jZSB0byBoYW5kbGUgdGhpcworIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0UHJvY2Vzc29yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NFeGNlcHRpb24oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmEubGFuZy5FeGNlcHRpb24sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnByb2Nlc3NFeGNlcHRpb248L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgamF2YS5sYW5nLkV4Y2VwdGlvbiZuYnNwO2V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBc2sgb3VyIGV4Y2VwdGlvbiBoYW5kbGVyIHRvIGhhbmRsZSB0aGUgZXhjZXB0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIG5vbi1IVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlCisgY29ycmVzcG9uZGluZyBub24tSFRUUCByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYgorIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nCisgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIDxjb2RlPmV4ZWN1dGUoKTwvY29kZT4gbWV0aG9kIGluc3RlYWQ8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIDxjb2RlPmV4ZWN1dGUoKTwvY29kZT4gbWV0aG9kIGluc3RlYWQ8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkZvcndhcmRzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCNmaW5kRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcndhcmQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgZm9yd2FyZGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBsb2dpY2FsIG5hbWUsCisgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25NYXBwaW5nLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2ZpbmRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9yd2FyZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RmluZCBhbmQgcmV0dXJuIHRoZSA8Y29kZT5Gb3J3YXJkQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSBkZWZpbmluZworIGhvdyBmb3J3YXJkaW5nIHRvIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lIHNob3VsZCBiZSBoYW5kbGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25NYXBwaW5nLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2dldElucHV0Rm9yd2FyZCgpIj5nZXRJbnB1dEZvcndhcmQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgKGlmIG5lY2Vzc2FyeSkgYW5kIHJldHVybiBhbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj48Q09ERT5BY3Rpb25Gb3J3YXJkPC9DT0RFPjwvQT4gdGhhdAorIGNvcnJlc3BvbmRzIHRvIHRoZSA8Y29kZT5pbnB1dDwvY29kZT4gcHJvcGVydHkgb2YgdGhpcyBBY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkV4Y2VwdGlvbkhhbmRsZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9FeGNlcHRpb25IYW5kbGVyLmh0bWwjZXhlY3V0ZShqYXZhLmxhbmcuRXhjZXB0aW9uLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KGphdmEubGFuZy5FeGNlcHRpb24mbmJzcDtleCwKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Jm5ic3A7YWUsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtSW5zdGFuY2UsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFuZGxlIHRoZSBleGNlcHRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RQcm9jZXNzb3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0FjdGlvbkZvcndhcmQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkKSI+cHJvY2Vzc0FjdGlvbkZvcndhcmQ8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiZuYnNwO2ZvcndhcmQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgcHJvY2Vzc0ZvcndhcmRDb25maWcoKSBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25Gb3J3YXJkcy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwjYWRkRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCkiPmFkZEZvcndhcmQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiZuYnNwO2ZvcndhcmQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZWdpc3RlciBhIGxvZ2ljYWwgZm9yd2FyZGluZyB0byB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25Gb3J3YXJkcy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwjcmVtb3ZlRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCkiPnJlbW92ZUZvcndhcmQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiZuYnNwO2ZvcndhcmQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtEZXJlZ2lzdGVyIGEgZm9yd2FyZGluZyBmcm9tIHRoZSBzZXQgY29uZmlndXJlZCBmb3IgdGhpcyBzZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5FeGNlcHRpb25IYW5kbGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRXhjZXB0aW9uSGFuZGxlci5odG1sI3N0b3JlRXhjZXB0aW9uKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvciwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQsIGphdmEubGFuZy5TdHJpbmcpIj5zdG9yZUV4Y2VwdGlvbjwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5LAorICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPiZuYnNwO2Vycm9yLAorICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4mbmJzcDtmb3J3YXJkLAorICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3IgaGFuZGxpbmcgYW4gPGI+QWN0aW9uRXJyb3I8L2I+IGdlbmVyYXRlZAorIGZyb20gYW4gRXhjZXB0aW9uIGR1cmluZyA8Yj5BY3Rpb248L2I+IGRlbGVnYXRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Mb29rdXBEaXNwYXRjaEFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Mb29rdXBEaXNwYXRjaEFjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyAgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Gb3J3YXJkQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EaXNwYXRjaEFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EaXNwYXRjaEFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI3Vuc3BlY2lmaWVkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj51bnNwZWNpZmllZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01ldGhvZCB3aGljaCBpcyBkaXNwYXRjaGVkIHRvIHdoZW4gdGhlcmUgaXMgbm8gdmFsdWUgZm9yIHNwZWNpZmllZAorIHJlcXVlc3QgcGFyYW1ldGVyIGluY2x1ZGVkIGluIHRoZSByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGlzcGF0Y2hBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCNkaXNwYXRjaE1ldGhvZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZhLmxhbmcuU3RyaW5nKSI+ZGlzcGF0Y2hNZXRob2Q8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Rpc3BhdGNoIHRvIHRoZSBzcGVjaWZpZWQgbWV0aG9kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Td2l0Y2hBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvU3dpdGNoQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwKKyB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5JbmNsdWRlQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+RmllbGRzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiBkZWNsYXJlZCBhcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db25maWdIZWxwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNmb3J3YXJkIj5mb3J3YXJkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBmb3J3YXJkIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db25maWdIZWxwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRBY3Rpb25Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5nZXRBY3Rpb25Gb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcndhcmRpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29uZmlnSGVscGVySW50ZXJmYWNlLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QWN0aW9uRm9yd2FyZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3J3YXJkaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGxvZ2ljYWwgbmFtZSwKKyBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29uZmlnSGVscGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjc2V0Rm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCkiPnNldEZvcndhcmQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiZuYnNwO2ZvcndhcmQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGZvcndhcmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkNvbXBvbmVudFNlcnZsZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCNwcm9jZXNzQWN0aW9uRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NBY3Rpb25Gb3J3YXJkPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4mbmJzcDtmb3J3YXJkLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtSW5zdGFuY2UsCisgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtPdmVybG9hZCBzdHJ1dHMxLjAgY291bnRlcnBhcnQgaW4gb3JkZXIgdG8gY2F0Y2ggZm9yd2FyZCBjYWxscy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9uczwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlbG9hZERlZmluaXRpb25zQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1JlbG9hZERlZmluaXRpb25zQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwKKyB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCksCisgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHRoZSBidXNpbmVzcyBsb2dpYy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Vmlld0RlZmluaXRpb25zQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1ZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCksCisgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHRoZSBidXNpbmVzcyBsb2dpYy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVGlsZXNBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3JpZ2luYWwgU3RydXRzIEFjdGlvbidzIG1ldGhvZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVGlsZXNBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiZuYnNwO2NvbnRleHQsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlRpbGVzQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1RpbGVzQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4mbmJzcDtjb250ZXh0LAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIDxjb2RlPmV4ZWN1dGUoKTwvY29kZT4gbWV0aG9kIGluc3RlYWQ8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk5vT3BBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvTm9PcEFjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCksCisgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHRoZSBidXNpbmVzcyBsb2dpYy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uRm9yd2FyZC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25Gb3J3YXJkcy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRm9yd2FyZHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjk3N2YwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRm9yd2FyZHMuaHRtbApAQCAtMCwwICsxLDE3MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmRzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkZvcndhcmRzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmRzPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPkFjdGlvbkZvcndhcmRzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQj48L0E+PC9URD4KKzxURD5UaGUgImNvbmZpZyIgcGFja2FnZSBjb250YWlucyBjb25maWd1cmF0aW9uIG9iamVjdHMgdGhhdCBjb3JyZXNwb25kIHRvCitlbGVtZW50cyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPgorbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPkFjdGlvbkZvcndhcmRzPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPkFjdGlvbkZvcndhcmRzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPkFjdGlvbkZvcndhcmRzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db25maWdIZWxwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRBY3Rpb25Gb3J3YXJkcygpIj5nZXRBY3Rpb25Gb3J3YXJkczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZHM8L2NvZGU+IGNvbGxlY3Rpb24KKyBmb3IgdGhpcyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPkFjdGlvbkZvcndhcmRzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db25maWdIZWxwZXJJbnRlcmZhY2UuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRBY3Rpb25Gb3J3YXJkcygpIj5nZXRBY3Rpb25Gb3J3YXJkczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZHM8L2NvZGU+IGNvbGxlY3Rpb24KKyBmb3IgdGhpcyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkZvcndhcmRzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbk1hcHBpbmcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbk1hcHBpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmMyNTM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uTWFwcGluZy5odG1sCkBAIC0wLDAgKzEsMTA5MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9CPjwvQT48L1REPgorPFREPiBUaGUgYWN0aW9uIHBhY2thZ2UgaXMgdGhlIGNvcmUgb2YgdGhlIHN0cnV0cyBmcmFtZXdvcmssCisgICAgcHJvdmlkaW5nIHRoZSAiQ29udHJvbGxlciIgYXNwZWN0IG9mIGEgTVZDIG1vZGVsLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSBhY3Rpb25zIHBhY2thZ2UgcHJvdmlkZXMgc3BlY2lhbCBhZGFwdGVycyBiZXR3ZWVuIHRoZSBpbmNvbWluZyAgSFRUUAorIHJlcXVlc3QgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGJ1c2luZXNzIGxvZ2ljLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9CPjwvQT48L1REPgorPFREPlRoZSAiY29uZmlnIiBwYWNrYWdlIGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyB0aGF0IGNvcnJlc3BvbmQgdG8KK2VsZW1lbnRzIHRoYXQgbWF5IGJlIHNwZWNpZmllZCBpbiB0aGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+Cittb2R1bGUgY29uZmlndXJhdGlvbiBmaWxlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQj48L0E+PC9URD4KKzxURD48YSBuYW1lPSJkb2MuRGVzY3JpcHRpb24iPlRoZSAic3RydXRzLWh0bWwiIHRhZyBsaWJyYXJ5PC9hPgorICBjb250YWlucyBKU1AgY3VzdG9tIHRhZ3MgdXNlZnVsIGluIGNyZWF0aW5nIGR5bmFtaWMgSFRNTCB1c2VyIGludGVyZmFjZXMsCitpbmNsdWRpbmcgaW5wdXQgZm9ybXMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvQT48L1REPgorPFREPjxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnM8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSB1cGxvYWQgcGFja2FnZSBmYWNpbGl0aWVzIHRvIHVwbG9hZCBmaWxlcyB1c2luZworIG11bHRpLXBhcnQgcmVxdWVzdHMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudXRpbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQj48L0E+PC9URD4KKzxURD5UaGUgVXRpbGl0aWVzIHBhY2thZ2UgcHJvdmlkZXMgYSB2YXJpZXR5IG9mIGZhbWlsaWVzIG9mIGNsYXNzZXMsCit0byBzb2x2ZSBwcm9ibGVtcyB0aGF0IGFyZSBjb21tb25seSBlbmNvdW50ZXJlZCBpbiBidWlsZGluZyB3ZWIgYXBwbGljYXRpb25zLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9CPjwvQT48L1REPgorPFREPiBUaGUgdmFsaWRhdG9yIHBhY2thZ2UgcHJvdmlkZXMgYSBzZXJpZXMgb2YgY2xhc3NlcyB0byB2YWxpZGF0ZSAKKyAgIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IHR5cGUgb2YgaW5wdXQuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiPlJlcXVlc3RBY3Rpb25NYXBwaW5nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1N1YmNsYXNzIG9mIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IHRoYXQgZGVmYXVsdHMgdGhlIGZvcm0gYmVhbgorIHNjb3BlIHRvIDxjb2RlPnJlcXVlc3Q8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCI+U2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U3ViY2xhc3Mgb2YgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gdGhhdCBkZWZhdWx0cyB0aGUgZm9ybSBiZWFuCisgc2NvcGUgdG8gPGNvZGU+c2Vzc2lvbjwvY29kZT4uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+RmllbGRzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiBkZWNsYXJlZCBhcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbk1hcHBpbmdzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCN1bmtub3duIj51bmtub3duPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBBY3Rpb25NYXBwaW5nIHRoYXQgc2hvdWxkIGhhbmRsZSB1bmtub3duIHJlcXVlc3QgcGF0aHMsIGlmIGFueS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uU2VydmxldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNmaW5kTWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZE1hcHBpbmc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IE1vZHVsZUNvbmZpZy5maW5kQWN0aW9uQ29uZmlnKCk8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0UHJvY2Vzc29yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NNYXBwaW5nKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZhLmxhbmcuU3RyaW5nKSI+cHJvY2Vzc01hcHBpbmc8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NlbGVjdCB0aGUgbWFwcGluZyB1c2VkIHRvIHByb2Nlc3MgdGhlIHNlbGVjdGlvbiBwYXRoIGZvciB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbk1hcHBpbmdzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNnZXRVbmtub3duKGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj5nZXRVbmtub3duPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIEFjdGlvbiB0aGF0IHNob3VsZCBoYW5kbGUgdW5rbm93biByZXF1ZXN0IHBhdGhzLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbk1hcHBpbmdzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNnZXRVbmtub3duKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRVbmtub3duPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIEFjdGlvbiB0aGF0IHNob3VsZCBoYW5kbGUgdW5rbm93biByZXF1ZXN0IHBhdGhzLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbk1hcHBpbmdzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNmaW5kTWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZE1hcHBpbmc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgbWFwcGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBsb2dpY2FsIG5hbWUsCisgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RQcm9jZXNzb3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0FjdGlvbkNyZWF0ZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzQWN0aW9uQ3JlYXRlPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBhbiA8Y29kZT5BY3Rpb248L2NvZGU+IGluc3RhbmNlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHByb2Nlc3MKKyB0aGUgY3VycmVudCByZXF1ZXN0LCBjcmVhdGluZyBhIG5ldyBvbmUgaWYgbmVjZXNzYXJ5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVxdWVzdFByb2Nlc3Nvci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzQWN0aW9uRm9ybShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzQWN0aW9uRm9ybTwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlIGFuZCByZXR1cm4gdGhlIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4gYXNzb2NpYXRlZCB3aXRoCisgdGhpcyBtYXBwaW5nLCBjcmVhdGluZyBhbmQgc3Rhc2hpbmcgb25lIGlmIG5lY2Vzc2FyeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RQcm9jZXNzb3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0FjdGlvblBlcmZvcm0oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnByb2Nlc3NBY3Rpb25QZXJmb3JtPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Jm5ic3A7YWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXNrIHRoZSBzcGVjaWZpZWQgPGNvZGU+QWN0aW9uPC9jb2RlPiBpbnN0YW5jZSB0byBoYW5kbGUgdGhpcworIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0UHJvY2Vzc29yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NFeGNlcHRpb24oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmEubGFuZy5FeGNlcHRpb24sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnByb2Nlc3NFeGNlcHRpb248L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgamF2YS5sYW5nLkV4Y2VwdGlvbiZuYnNwO2V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBc2sgb3VyIGV4Y2VwdGlvbiBoYW5kbGVyIHRvIGhhbmRsZSB0aGUgZXhjZXB0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0UHJvY2Vzc29yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NGb3J3YXJkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnByb2Nlc3NGb3J3YXJkPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyBhIGZvcndhcmQgcmVxdWVzdGVkIGJ5IHRoaXMgbWFwcGluZyAoaWYgYW55KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVxdWVzdFByb2Nlc3Nvci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzSW5jbHVkZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzSW5jbHVkZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgYW4gaW5jbHVkZSByZXF1ZXN0ZWQgYnkgdGhpcyBtYXBwaW5nIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0UHJvY2Vzc29yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NQb3B1bGF0ZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+cHJvY2Vzc1BvcHVsYXRlPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UG9wdWxhdGUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNwZWNpZmllZCBBY3Rpb25Gb3JtIGluc3RhbmNlIGZyb20KKyB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzIGluY2x1ZGVkIHdpdGggdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0UHJvY2Vzc29yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NSb2xlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzUm9sZXM8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0lmIHRoaXMgYWN0aW9uIGlzIHByb3RlY3RlZCBieSBzZWN1cml0eSByb2xlcywgbWFrZSBzdXJlIHRoYXQgdGhlCisgY3VycmVudCB1c2VyIHBvc3Nlc3NlcyBhdCBsZWFzdCBvbmUgb2YgdGhlbS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVxdWVzdFByb2Nlc3Nvci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzVmFsaWRhdGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnByb2Nlc3NWYWxpZGF0ZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0lmIHRoaXMgcmVxdWVzdCB3YXMgbm90IGNhbmNlbGxlZCwgYW5kIHRoZSByZXF1ZXN0J3MKKyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj48Q09ERT5BY3Rpb25NYXBwaW5nPC9DT0RFPjwvQT4gaGFzIG5vdCBkaXNhYmxlZCB2YWxpZGF0aW9uLCBjYWxsIHRoZQorIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiB0aGUgc3BlY2lmaWVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPjxDT0RFPkFjdGlvbkZvcm08L0NPREU+PC9BPiwKKyBhbmQgZm9yd2FyZCBiYWNrIHRvIHRoZSBpbnB1dCBmb3JtIGlmIHRoZXJlIHdlcmUgYW55IGVycm9ycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25Gb3JtLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3Jlc2V0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0KSI+cmVzZXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Jlc2V0IGFsbCBiZWFuIHByb3BlcnRpZXMgdG8gdGhlaXIgZGVmYXVsdCBzdGF0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25Gb3JtLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3Jlc2V0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVzZXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Jlc2V0IGFsbCBiZWFuIHByb3BlcnRpZXMgdG8gdGhlaXIgZGVmYXVsdCBzdGF0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkZvcm0uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VmFsaWRhdGUgdGhlIHByb3BlcnRpZXMgdGhhdCBoYXZlIGJlZW4gc2V0IGZvciB0aGlzIG5vbi1IVFRQIHJlcXVlc3QsCisgYW5kIHJldHVybiBhbiA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyBhbnkKKyB2YWxpZGF0aW9uIGVycm9ycyB0aGF0IGhhdmUgYmVlbiBmb3VuZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkZvcm0uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VmFsaWRhdGUgdGhlIHByb3BlcnRpZXMgdGhhdCBoYXZlIGJlZW4gc2V0IGZvciB0aGlzIEhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIG5vbi1IVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlCisgY29ycmVzcG9uZGluZyBub24tSFRUUCByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYgorIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nCisgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIDxjb2RlPmV4ZWN1dGUoKTwvY29kZT4gbWV0aG9kIGluc3RlYWQ8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIDxjb2RlPmV4ZWN1dGUoKTwvY29kZT4gbWV0aG9kIGluc3RlYWQ8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RHluYUFjdGlvbkZvcm0uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2luaXRpYWxpemUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5pbml0aWFsaXplPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSBhbGwgYmVhbiBwcm9wZXJ0aWVzIHRvIHRoZWlyIGluaXRpYWwgdmFsdWVzLCBhcyBzcGVjaWZpZWQKKyBpbiB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj48Q09ERT5Gb3JtUHJvcGVydHlDb25maWc8L0NPREU+PC9BPiBlbGVtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhlCisgZGVmaW5pdGlvbiBvZiB0aGlzIDxjb2RlPkR5bmFBY3Rpb25Gb3JtPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EeW5hQWN0aW9uRm9ybS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjcmVzZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj5yZXNldDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVzZXQgYWxsIGJlYW4gcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHN0YXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkR5bmFBY3Rpb25Gb3JtLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldCBhbGwgYmVhbiBwcm9wZXJ0aWVzIHRvIHRoZWlyIGRlZmF1bHQgc3RhdGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkV4Y2VwdGlvbkhhbmRsZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9FeGNlcHRpb25IYW5kbGVyLmh0bWwjZXhlY3V0ZShqYXZhLmxhbmcuRXhjZXB0aW9uLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KGphdmEubGFuZy5FeGNlcHRpb24mbmJzcDtleCwKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Jm5ic3A7YWUsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtSW5zdGFuY2UsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFuZGxlIHRoZSBleGNlcHRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uTWFwcGluZ3MuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI2FkZE1hcHBpbmcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5hZGRNYXBwaW5nPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVnaXN0ZXIgYSBsb2dpY2FsIG1hcHBpbmcgdG8gdGhlIHNldCBjb25maWd1cmVkIGZvciB0aGlzIHNlcnZsZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uTWFwcGluZ3MuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI3JlbW92ZU1hcHBpbmcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5yZW1vdmVNYXBwaW5nPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7RGVyZWdpc3RlciBhIG1hcHBpbmcgZnJvbSB0aGUgc2V0IGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2VydmxldC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkxvb2t1cERpc3BhdGNoQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorICByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZvcndhcmRBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRpc3BhdGNoQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRpc3BhdGNoQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjdW5zcGVjaWZpZWQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnVuc3BlY2lmaWVkPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TWV0aG9kIHdoaWNoIGlzIGRpc3BhdGNoZWQgdG8gd2hlbiB0aGVyZSBpcyBubyB2YWx1ZSBmb3Igc3BlY2lmaWVkCisgcmVxdWVzdCBwYXJhbWV0ZXIgaW5jbHVkZWQgaW4gdGhlIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EaXNwYXRjaEFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI2Rpc3BhdGNoTWV0aG9kKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmEubGFuZy5TdHJpbmcpIj5kaXNwYXRjaE1ldGhvZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGlzcGF0Y2ggdG8gdGhlIHNwZWNpZmllZCBtZXRob2QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlN3aXRjaEFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Td2l0Y2hBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkluY2x1ZGVBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29uZmlnSGVscGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0TWFwcGluZygpIj5nZXRNYXBwaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLkFjdGlvbk1hcHBpbmc8L2NvZGU+CisgaW5zdGFuY2UgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29uZmlnSGVscGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0QWN0aW9uTWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QWN0aW9uTWFwcGluZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBtYXBwaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHJlcXVlc3QgcGF0aCwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbmZpZ0hlbHBlckludGVyZmFjZS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldE1hcHBpbmcoKSI+Z2V0TWFwcGluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5BY3Rpb25NYXBwaW5nPC9jb2RlPgorIGluc3RhbmNlIGZvciB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbmZpZ0hlbHBlckludGVyZmFjZS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbk1hcHBpbmcoamF2YS5sYW5nLlN0cmluZykiPmdldEFjdGlvbk1hcHBpbmc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbWFwcGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCByZXF1ZXN0IHBhdGgsIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+RmllbGRzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Gb3JtVGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjbWFwcGluZyI+bWFwcGluZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgQWN0aW9uTWFwcGluZyBkZWZpbmluZyB3aGVyZSB3ZSB3aWxsIGJlIHN1Ym1pdHRpbmcgdGhpcyBmb3JtPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkNvbXBvbmVudFNlcnZsZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCNwcm9jZXNzQWN0aW9uRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NBY3Rpb25Gb3J3YXJkPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4mbmJzcDtmb3J3YXJkLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtSW5zdGFuY2UsCisgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtPdmVybG9hZCBzdHJ1dHMxLjAgY291bnRlcnBhcnQgaW4gb3JkZXIgdG8gY2F0Y2ggZm9yd2FyZCBjYWxscy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uQ29tcG9uZW50U2VydmxldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI3Byb2Nlc3NWYWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cHJvY2Vzc1ZhbGlkYXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybUluc3RhbmNlLAorICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtPdmVybG9hZCBzdHJ1dHMxLjAgY291bnRlcnBhcnQgaW4gb3JkZXIgdG8gY2F0Y2ggZm9yd2FyZCBjYWxscy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uQ29tcG9uZW50U2VydmxldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI3Byb2Nlc3NGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NGb3J3YXJkPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7T3ZlcmxvYWQgc3RydXRzMS4wIGNvdW50ZXJwYXJ0IGluIG9yZGVyIHRvIGNhdGNoIGZvcndhcmQgY2FsbHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkNvbXBvbmVudFNlcnZsZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCNwcm9jZXNzSW5jbHVkZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzSW5jbHVkZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO092ZXJsb2FkIHN0cnV0czEuMCBjb3VudGVycGFydCBpbiBvcmRlciB0byBjYXRjaCBpbmNsdWRlIGNhbGxzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9uczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVsb2FkRGVmaW5pdGlvbnNBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL0RlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwKKyB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5WaWV3RGVmaW5pdGlvbnNBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVmlld0RlZmluaXRpb25zQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwKKyB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc0FjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPcmlnaW5hbCBTdHJ1dHMgQWN0aW9uJ3MgbWV0aG9kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc0FjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+Jm5ic3A7Y29udGV4dCwKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCksCisgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHRoZSBidXNpbmVzcyBsb2dpYy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVGlsZXNBY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiZuYnNwO2NvbnRleHQsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSB0aGUgPGNvZGU+ZXhlY3V0ZSgpPC9jb2RlPiBtZXRob2QgaW5zdGVhZDwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Tm9PcEFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9Ob09wQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwKKyB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+RmllbGRzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9BPiBkZWNsYXJlZCBhcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNtYXBwaW5nIj5tYXBwaW5nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhY3Rpb24gbWFwcGluZyAgd2l0aCB3aGljaCB0aGlzIGhhbmRsZXIgaXMgYXNzb2NpYXRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI21hcHBpbmciPm1hcHBpbmc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEFjdGlvbk1hcHBpbmcgaW5zdGFuY2UgdXNlZCBmb3IgdGhpcyBjbGFzcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldE1hcHBpbmcoKSI+Z2V0TWFwcGluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgQWN0aW9uTWFwcGluZyBpbnN0YW5jZSBmb3IgdGhpcyByZXF1ZXN0PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldE1hcHBpbmcoKSI+Z2V0TWFwcGluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlcyB0aGUgYWN0aW9uIG1hcHBpbmcgd2l0aCB3aGljaCB0aGlzIGhhbmRsZXIgaXMgYXNzb2NpYXRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0TWFwcGluZygpIj5nZXRNYXBwaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3NldE1hcHBpbmcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5zZXRNYXBwaW5nPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udmllbmllbmNlIG1ldGhvZCB0byBzZXQgYSByZWZlcmVuY2UgdG8gYSB3b3JraW5nCisgQWN0aW9uTWFwcGluZyBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXRNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+c2V0TWFwcGluZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIGFjdGlvbiBtYXBwaW5nIHdpdGggd2hpY2ggdGhpcyBoYW5kbGVyIGlzIGFzc29jaWF0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2V0TWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnNldE1hcHBpbmc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RVdGlscy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNjcmVhdGVBY3Rpb25Gb3JtKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPmNyZWF0ZUFjdGlvbkZvcm08L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttb2R1bGVDb25maWcsCisgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSAoaWYgbmVjZXNzYXJ5KSBhbmQgcmV0dXJuIGFuIEFjdGlvbkZvcm0gaW5zdGFuY2UgYXBwcm9wcmlhdGUKKyBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5WYWxpZGF0b3JGb3JtLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sI3ZhbGlkYXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ZhbGlkYXRlIHRoZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBiZWVuIHNldCBmcm9tIHRoaXMgSFRUUCByZXF1ZXN0LAorIGFuZCByZXR1cm4gYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgYW55CisgdmFsaWRhdGlvbiBlcnJvcnMgdGhhdCBoYXZlIGJlZW4gZm91bmQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VmFsaWRhdG9yRm9ybS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldCBhbGwgcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHZhbHVlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkR5bmFWYWxpZGF0b3JGb3JtLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtWYWxpZGF0ZSB0aGUgcHJvcGVydGllcyB0aGF0IGhhdmUgYmVlbiBzZXQgZnJvbSB0aGlzIEhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkR5bmFWYWxpZGF0b3JGb3JtLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldCBhbGwgcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHZhbHVlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkR5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtWYWxpZGF0ZSB0aGUgcHJvcGVydGllcyB0aGF0IGhhdmUgYmVlbiBzZXQgZnJvbSB0aGlzIEhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VmFsaWRhdG9yQWN0aW9uRm9ybS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtWYWxpZGF0ZSB0aGUgcHJvcGVydGllcyB0aGF0IGhhdmUgYmVlbiBzZXQgZnJvbSB0aGlzIEhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25NYXBwaW5nLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbk1hcHBpbmdzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25NYXBwaW5ncy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNDI5OWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25NYXBwaW5ncy5odG1sCkBAIC0wLDAgKzEsMTc3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZ3MgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uTWFwcGluZ3MuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZ3M8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9CPjwvQT48L1REPgorPFREPlRoZSAiY29uZmlnIiBwYWNrYWdlIGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyB0aGF0IGNvcnJlc3BvbmQgdG8KK2VsZW1lbnRzIHRoYXQgbWF5IGJlIHNwZWNpZmllZCBpbiB0aGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+Cittb2R1bGUgY29uZmlndXJhdGlvbiBmaWxlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbmZpZ0hlbHBlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEFjdGlvbk1hcHBpbmdzKCkiPmdldEFjdGlvbk1hcHBpbmdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzPC9jb2RlPiBjb2xsZWN0aW9uCisgaXMgbm9ybWFsbHkgc3RvcmVkLCB1bmxlc3Mgb3ZlcnJpZGRlbiB3aGVuIGluaXRpYWxpemluZyBvdXIKKyBBY3Rpb25TZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbmZpZ0hlbHBlckludGVyZmFjZS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbk1hcHBpbmdzKCkiPmdldEFjdGlvbk1hcHBpbmdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzPC9jb2RlPiBjb2xsZWN0aW9uCisgaXMgbm9ybWFsbHkgc3RvcmVkLCB1bmxlc3Mgb3ZlcnJpZGRlbiB3aGVuIGluaXRpYWxpemluZyBvdXIKKyBBY3Rpb25TZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uTWFwcGluZ3MuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uTWVzc2FnZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uTWVzc2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMjRmYmYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25NZXNzYWdlLmh0bWwKQEAgLTAsMCArMSwxODMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25NZXNzYWdlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2U8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj5BY3Rpb25NZXNzYWdlPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQj48L0E+PC9URD4KKzxURD4gVGhlIGFjdGlvbiBwYWNrYWdlIGlzIHRoZSBjb3JlIG9mIHRoZSBzdHJ1dHMgZnJhbWV3b3JrLAorICAgIHByb3ZpZGluZyB0aGUgIkNvbnRyb2xsZXIiIGFzcGVjdCBvZiBhIE1WQyBtb2RlbC4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+QWN0aW9uTWVzc2FnZTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+QWN0aW9uTWVzc2FnZTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW4gZW5jYXBzdWxhdGlvbiBvZiBhbiBpbmRpdmlkdWFsIGVycm9yIG1lc3NhZ2UgcmV0dXJuZWQgYnkgdGhlCisgPGNvZGU+dmFsaWRhdGUoKTwvY29kZT4gbWV0aG9kIG9mIGFuIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+LCBjb25zaXN0aW5nCisgb2YgYSBtZXNzYWdlIGtleSAodG8gYmUgdXNlZCB0byBsb29rIHVwIG1lc3NhZ2UgdGV4dCBpbiBhbiBhcHByb3ByaWF0ZQorIG1lc3NhZ2UgcmVzb3VyY2VzIGRhdGFiYXNlKSBwbHVzIHVwIHRvIGZvdXIgcGxhY2Vob2xkZXIgb2JqZWN0cyB0aGF0IGNhbgorIGJlIHVzZWQgZm9yIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgaW4gdGhlIG1lc3NhZ2UgdGV4dC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj5BY3Rpb25NZXNzYWdlPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25NZXNzYWdlcy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwjYWRkKGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlKSI+YWRkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5LAorICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlLmh0bWwiPkFjdGlvbk1lc3NhZ2U8L0E+Jm5ic3A7bWVzc2FnZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG1lc3NhZ2UgdG8gdGhlIHNldCBvZiBtZXNzYWdlcyBmb3IgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uTWVzc2FnZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTIyNmViCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbQorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uTWVzc2FnZXMuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbk1lc3NhZ2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU2NDRjNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbk1lc3NhZ2VzLmh0bWwKQEAgLTAsMCArMSwyNzggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25NZXNzYWdlcy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlczwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSBhY3Rpb24gcGFja2FnZSBpcyB0aGUgY29yZSBvZiB0aGUgc3RydXRzIGZyYW1ld29yaywKKyAgICBwcm92aWRpbmcgdGhlICJDb250cm9sbGVyIiBhc3BlY3Qgb2YgYSBNVkMgbW9kZWwuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlICJjb25maWciIHBhY2thZ2UgY29udGFpbnMgY29uZmlndXJhdGlvbiBvYmplY3RzIHRoYXQgY29ycmVzcG9uZCB0bworZWxlbWVudHMgdGhhdCBtYXkgYmUgc3BlY2lmaWVkIGluIHRoZSA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4KK21vZHVsZSBjb25maWd1cmF0aW9uIGZpbGUuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudXRpbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQj48L0E+PC9URD4KKzxURD5UaGUgVXRpbGl0aWVzIHBhY2thZ2UgcHJvdmlkZXMgYSB2YXJpZXR5IG9mIGZhbWlsaWVzIG9mIGNsYXNzZXMsCit0byBzb2x2ZSBwcm9ibGVtcyB0aGF0IGFyZSBjb21tb25seSBlbmNvdW50ZXJlZCBpbiBidWlsZGluZyB3ZWIgYXBwbGljYXRpb25zLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIGNsYXNzIHRoYXQgZW5jYXBzdWxhdGVzIHRoZSBlcnJvciBtZXNzYWdlcyBiZWluZyByZXBvcnRlZCBieQorIHRoZSA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2Qgb2YgYW4gPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPkFjdGlvbk1lc3NhZ2VzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZU1lc3NhZ2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcykiPnNhdmVNZXNzYWdlczwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT4mbmJzcDttZXNzYWdlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NhdmUgdGhlIHNwZWNpZmllZCBtZXNzYWdlcyBrZXlzIGludG8gdGhlIGFwcHJvcHJpYXRlIHJlcXVlc3QKKyBhdHRyaWJ1dGUgZm9yIHVzZSBieSB0aGUgJmx0O2h0bWw6bWVzc2FnZXMmZ3Q7IHRhZyAoaWYKKyBtZXNzYWdlcz0idHJ1ZSIgaXMgc2V0KSwgaWYgYW55IG1lc3NhZ2VzIGFyZSByZXF1aXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25NZXNzYWdlcy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwjYWRkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcykiPmFkZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT4mbmJzcDttZXNzYWdlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZHMgdGhlIG1lc3NhZ2VzIGZyb20gdGhlIGdpdmVuIDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPiBvYmplY3QgdG8KKyB0aGlzIHNldCBvZiBtZXNzYWdlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5Db25zdHJ1Y3RvcnMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCNBY3Rpb25NZXNzYWdlcyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZXMpIj5BY3Rpb25NZXNzYWdlczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT4mbmJzcDttZXNzYWdlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbiA8Y29kZT5BY3Rpb25NZXNzYWdlczwvY29kZT4gb2JqZWN0IGluaXRpYWxpemVkIHdpdGggdGhlIGdpdmVuIAorIG1lc3NhZ2VzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbmZpZ0hlbHBlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEFjdGlvbk1lc3NhZ2VzKCkiPmdldEFjdGlvbk1lc3NhZ2VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29uZmlnSGVscGVySW50ZXJmYWNlLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uTWVzc2FnZXMoKSI+Z2V0QWN0aW9uTWVzc2FnZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuczwvY29kZT4gY29sbGVjdGlvbgorIGZvciB0aGlzIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPkFjdGlvbk1lc3NhZ2VzPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVxdWVzdFV0aWxzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2dldEFjdGlvbk1lc3NhZ2VzKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QWN0aW9uTWVzc2FnZXM8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlcyB0aGUgdmFsdWUgZnJvbSByZXF1ZXN0IHNjb3BlIGFuZCBpZiBpdCBpc24ndCBhbHJlYWR5IGFuIDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPgorIHNvbWUgY2xhc3NlcyBhcmUgY29udmVydGVkIHRvIG9uZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbk1lc3NhZ2VzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvblNlcnZsZXQuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvblNlcnZsZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2VlNTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uU2VydmxldC5odG1sCkBAIC0wLDAgKzEsNjM2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uU2VydmxldC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0PC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSBhY3Rpb24gcGFja2FnZSBpcyB0aGUgY29yZSBvZiB0aGUgc3RydXRzIGZyYW1ld29yaywKKyAgICBwcm92aWRpbmcgdGhlICJDb250cm9sbGVyIiBhc3BlY3Qgb2YgYSBNVkMgbW9kZWwuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2luczwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+PGEgbmFtZT0iZG9jLkRlc2NyaXB0aW9uIj5UaGUgInN0cnV0cy1odG1sIiB0YWcgbGlicmFyeTwvYT4KKyAgY29udGFpbnMgSlNQIGN1c3RvbSB0YWdzIHVzZWZ1bCBpbiBjcmVhdGluZyBkeW5hbWljIEhUTUwgdXNlciBpbnRlcmZhY2VzLAoraW5jbHVkaW5nIGlucHV0IGZvcm1zLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQj48L0E+PC9URD4KKzxURD48ZGl2IGNsYXNzPSJtYWluQ29udGVudCI+CisgICAgVGhlIFRpbGVzIHRhZ2xpYiBhbmQgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyB3ZWIgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSAKKyAgICBwaWVjZXMgb2YgcGFnZXMsIGNhbGxlZCBUaWxlcy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQj48L0E+PC9URD4KKzxURD4gVGhlIHVwbG9hZCBwYWNrYWdlIGZhY2lsaXRpZXMgdG8gdXBsb2FkIGZpbGVzIHVzaW5nCisgbXVsdGktcGFydCByZXF1ZXN0cy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy51dGlsIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9CPjwvQT48L1REPgorPFREPlRoZSBVdGlsaXRpZXMgcGFja2FnZSBwcm92aWRlcyBhIHZhcmlldHkgb2YgZmFtaWxpZXMgb2YgY2xhc3NlcywKK3RvIHNvbHZlIHByb2JsZW1zIHRoYXQgYXJlIGNvbW1vbmx5IGVuY291bnRlcmVkIGluIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSB2YWxpZGF0b3IgcGFja2FnZSBwcm92aWRlcyBhIHNlcmllcyBvZiBjbGFzc2VzIHRvIHZhbGlkYXRlIAorICAgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gdHlwZSBvZiBpbnB1dC4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0UHJvY2Vzc29yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRyb2xsZXIgc2VydmxldCB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uU2VydmxldFdyYXBwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRyb2xsZXIgc2VydmxldCBpbnN0YW5jZSB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25Gb3JtLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRyb2xsZXIgc2VydmxldCBpbnN0YW5jZSB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250cm9sbGVyIHNlcnZsZXQgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uTWFwcGluZ3MuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2Ugb2Ygb3VyIG93bmluZyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkZvcm0uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBjb250cm9sbGVyIHNlcnZsZXQgaW5zdGFuY2UgdG8gd2hpY2ggd2UgYXJlIGF0dGFjaGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRTZXJ2bGV0KCkiPmdldFNlcnZsZXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGNvbnRyb2xsZXIgc2VydmxldCBpbnN0YW5jZSB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbk1hcHBpbmdzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNnZXRTZXJ2bGV0KCkiPmdldFNlcnZsZXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+IGluc3RhbmNlIG9mIG91ciBvd25pbmcKKyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0UHJvY2Vzc29yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2luaXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5pbml0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0LAorICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttb2R1bGVDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0aWFsaXplIHRoaXMgcmVxdWVzdCBwcm9jZXNzb3IgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uRm9ybS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+c2V0U2VydmxldDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgY29udHJvbGxlciBzZXJ2bGV0IGluc3RhbmNlIHRvIHdoaWNoIHdlIGFyZSBhdHRhY2hlZCAoaWYKKyA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBpcyBub24tbnVsbCksIG9yIHJlbGVhc2UgYW55IGFsbG9jYXRlZCByZXNvdXJjZXMKKyAoaWYgPGNvZGU+c2VydmxldDwvY29kZT4gaXMgbnVsbCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGNvbnRyb2xsZXIgc2VydmxldCBpbnN0YW5jZSB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQgKGlmCisgPGNvZGU+c2VydmxldDwvY29kZT4gaXMgbm9uLW51bGwpLCBvciByZWxlYXNlIGFueSBhbGxvY2F0ZWQgcmVzb3VyY2VzCisgKGlmIDxjb2RlPnNlcnZsZXQ8L2NvZGU+IGlzIG51bGwpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbk1hcHBpbmdzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+c2V0U2VydmxldDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1NldCB0aGUgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4gaW5zdGFuY2Ugb2Ygb3VyIG93bmluZyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5QbHVnSW4uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCwKKyAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCB0aGUgc3BlY2lmaWVkIG1vZHVsZSBpcyBiZWluZworIHN0YXJ0ZWQgdXAuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q29uc3RydWN0b3JzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sI0FjdGlvblNlcnZsZXRXcmFwcGVyKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+QWN0aW9uU2VydmxldFdyYXBwZXI8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgb2JqZWN0IGFuZCBzZXQgc2VydmxldCBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zPC9BPiBkZWNsYXJlZCBhcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+PENPREU+QWN0aW9uU2VydmxldDwvQ09ERT48L0E+IGluc3RhbmNlIHdlIGFyZSBhc3NvY2lhdGVkIHdpdGguPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWdWZXJpZmllci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sI2luaXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5pbml0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0LAorICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWNlaXZlIG5vdGlmaWNhdGlvbiB0aGF0IHRoZSBzcGVjaWZpZWQgbW9kdWxlIGlzIGJlaW5nCisgc3RhcnRlZCB1cC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0E+IGRlY2xhcmVkIGFzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Rm9ybVRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2Ugd2UgYXJlIGFzc29jaWF0ZWQgd2l0aCAoc28gdGhhdCB3ZSBjYW4KKyBpbml0aWFsaXplIHRoZSA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBwcm9wZXJ0eSBvbiBhbnkgZm9ybSBiZWFuIHRoYXQKKyB3ZSBjcmVhdGUpLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwiPkFjdGlvbkNvbXBvbmVudFNlcnZsZXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGlsZXMgbm93IHVzZXMgQWN0aW9uU2VydmxldCB3aXRoIFRpbGVzUGx1Z2luIGFuZCBUaWxlc1JlcXVlc3RQcm9jZXNzb3IuPC9JPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1BsdWdpbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCwKKyAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCB0aGUgc3BlY2lmaWVkIG1vZHVsZSBpcyBiZWluZworIHN0YXJ0ZWQgdXAuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1BsdWdpbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCNyZWFkRmFjdG9yeUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPnJlYWRGYWN0b3J5Q29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0LAorICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIEZhY3RvcnlDb25maWcgYW5kIGluaXRpYWxpemUgaXQgZnJvbSB3ZWIueG1sIGFuZCBzdHJ1dHMtY29uZmlnLnhtbC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5NYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNQbHVnaW4uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjZmluZFN0cnV0c1BsdWdJbkNvbmZpZ1Byb3BlcnRpZXMob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5maW5kU3RydXRzUGx1Z0luQ29uZmlnUHJvcGVydGllczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZpbmQgb3JpZ2luYWwgcHJvcGVydGllcyBzZXQgaW4gdGhlIFN0cnV0cyBQbHVnSW5Db25maWcgb2JqZWN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlRpbGVzUmVxdWVzdFByb2Nlc3Nvci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQsCisgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO21vZHVsZUNvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgdGhpcyByZXF1ZXN0IHByb2Nlc3NvciBpbnN0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2VydmxldCB3aXRoIHdoaWNoIHRoaXMgaGFuZGxlciBpcyBhc3NvY2lhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgQWN0aW9uU2VydmxldCBpbnN0YW5jZSB1c2VkIGZvciB0aGlzIGNsYXNzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldFNlcnZsZXQoKSI+Z2V0U2VydmxldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlcyB0aGUgc2VydmxldCB3aXRoIHdoaWNoIHRoaXMgaGFuZGxlciBpcyBhc3NvY2lhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRTZXJ2bGV0KCkiPmdldFNlcnZsZXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb252aWVuaWVuY2UgbWV0aG9kIHRvIHNldCBhIHJlZmVyZW5jZSB0byBhIHdvcmtpbmcKKyBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgc2VydmxldCB3aXRoIHdoaWNoIHRoaXMgaGFuZGxlciBpcyBhc3NvY2lhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0VXRpbHMuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjY3JlYXRlQWN0aW9uRm9ybShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5jcmVhdGVBY3Rpb25Gb3JtPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnLAorICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgKGlmIG5lY2Vzc2FyeSkgYW5kIHJldHVybiBhbiBBY3Rpb25Gb3JtIGluc3RhbmNlIGFwcHJvcHJpYXRlCisgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VmFsaWRhdG9yUGx1Z0luLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+PENPREU+QWN0aW9uU2VydmxldDwvQ09ERT48L0E+IG93bmluZyB0aGlzIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlZhbGlkYXRvclBsdWdJbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sI2luaXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5pbml0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0LAorICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0aWFsaXplIGFuZCBsb2FkIG91ciByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvblNlcnZsZXQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uU2VydmxldFdyYXBwZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NkNTM2OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwKQEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0V3JhcHBlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldFdyYXBwZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0V3JhcHBlcjwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sIj5BY3Rpb25TZXJ2bGV0V3JhcHBlcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSBhY3Rpb24gcGFja2FnZSBpcyB0aGUgY29yZSBvZiB0aGUgc3RydXRzIGZyYW1ld29yaywKKyAgICBwcm92aWRpbmcgdGhlICJDb250cm9sbGVyIiBhc3BlY3Qgb2YgYSBNVkMgbW9kZWwuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sIj5BY3Rpb25TZXJ2bGV0V3JhcHBlcjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sIj5BY3Rpb25TZXJ2bGV0V3JhcHBlcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sIj5BY3Rpb25TZXJ2bGV0V3JhcHBlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uRm9ybS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNnZXRTZXJ2bGV0V3JhcHBlcigpIj5nZXRTZXJ2bGV0V3JhcHBlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgY29udHJvbGxlciBzZXJ2bGV0IGluc3RhbmNlIHRvIHdoaWNoIHdlIGFyZSBhdHRhY2hlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvblNlcnZsZXRXcmFwcGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0R5bmFBY3Rpb25Gb3JtLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9EeW5hQWN0aW9uRm9ybS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxYzc2MTQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9EeW5hQWN0aW9uRm9ybS5odG1sCkBAIC0wLDAgKzEsMTcyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRHluYUFjdGlvbkZvcm0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkR5bmFBY3Rpb25Gb3JtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRHluYUFjdGlvbkZvcm0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRHluYUFjdGlvbkZvcm08L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCI+RHluYUFjdGlvbkZvcm08L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9CPjwvQT48L1REPgorPFREPiBUaGUgdmFsaWRhdG9yIHBhY2thZ2UgcHJvdmlkZXMgYSBzZXJpZXMgb2YgY2xhc3NlcyB0byB2YWxpZGF0ZSAKKyAgIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IHR5cGUgb2YgaW5wdXQuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj5EeW5hQWN0aW9uRm9ybTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPkR5bmFBY3Rpb25Gb3JtPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIj5EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGNsYXNzIGV4dGVuZHMgPHN0cm9uZz5EeW5hVmFsaWRhdG9yRm9ybTwvc3Ryb25nPiBhbmQgcHJvdmlkZXMKKyBiYXNpYyBmaWVsZCB2YWxpZGF0aW9uIGJhc2VkIG9uIGFuIFhNTCBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCI+RHluYVZhbGlkYXRvckZvcm08L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBjbGFzcyBleHRlbmRzIDxzdHJvbmc+RHluYUFjdGlvbkZvcm08L3N0cm9uZz4gYW5kIHByb3ZpZGVzCisgYmFzaWMgZmllbGQgdmFsaWRhdGlvbiBiYXNlZCBvbiBhbiBYTUwgZmlsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkR5bmFBY3Rpb25Gb3JtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzk0M2VjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sCkBAIC0wLDAgKzEsMTk1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRHluYUFjdGlvbkZvcm1DbGFzcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRHluYUFjdGlvbkZvcm1DbGFzcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5EeW5hQWN0aW9uRm9ybUNsYXNzPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSBhY3Rpb24gcGFja2FnZSBpcyB0aGUgY29yZSBvZiB0aGUgc3RydXRzIGZyYW1ld29yaywKKyAgICBwcm92aWRpbmcgdGhlICJDb250cm9sbGVyIiBhc3BlY3Qgb2YgYSBNVkMgbW9kZWwuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5GaWVsZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IGRlY2xhcmVkIGFzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RHluYUFjdGlvbkZvcm0uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2R5bmFDbGFzcyI+ZHluYUNsYXNzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBEeW5hQWN0aW9uRm9ybUNsYXNzIHdpdGggd2hpY2ggd2UgYXJlIGFzc29jaWF0ZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkR5bmFBY3Rpb25Gb3JtQ2xhc3MuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjY3JlYXRlRHluYUFjdGlvbkZvcm1DbGFzcyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWcpIj5jcmVhdGVEeW5hQWN0aW9uRm9ybUNsYXNzPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSAoaWYgbmVjZXNzYXJ5KSBhbmQgcmV0dXJuIGEgbmV3IDxjb2RlPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L2NvZGU+CisgaW5zdGFuY2UgZm9yIHRoZSBzcGVjaWZpZWQgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPihwYWNrYWdlIHByaXZhdGUpICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RHluYUFjdGlvbkZvcm0uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI3NldER5bmFBY3Rpb25Gb3JtQ2xhc3Mob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkR5bmFBY3Rpb25Gb3JtQ2xhc3MpIj5zZXREeW5hQWN0aW9uRm9ybUNsYXNzPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4mbmJzcDtkeW5hQ2xhc3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIER5bmFBY3Rpb25Gb3JtQ2xhc3MgaW5zdGFuY2UgdGhhdCB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWEwMWJjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvRXhjZXB0aW9uSGFuZGxlci5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRXhjZXB0aW9uSGFuZGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRXhjZXB0aW9uSGFuZGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0V4Y2VwdGlvbkhhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRXhjZXB0aW9uSGFuZGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5FeGNlcHRpb25IYW5kbGVyPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5FeGNlcHRpb25IYW5kbGVyCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9FeGNlcHRpb25IYW5kbGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkV4Y2VwdGlvbkhhbmRsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDNhYjQ1OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL1BsdWdJbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvUGx1Z0luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzZkZjQxNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL1BsdWdJbi5odG1sCkBAIC0wLDAgKzEsMjI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlBsdWdJbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlBsdWdJbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQbHVnSW4uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBJbnRlcmZhY2U8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlBsdWdJbjwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCI+UGx1Z0luPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zPC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQj48L0E+PC9URD4KKzxURD48ZGl2IGNsYXNzPSJtYWluQ29udGVudCI+CisgICAgVGhlIFRpbGVzIHRhZ2xpYiBhbmQgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyB3ZWIgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSAKKyAgICBwaWVjZXMgb2YgcGFnZXMsIGNhbGxlZCBUaWxlcy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQj48L0E+PC9URD4KKzxURD4gVGhlIHZhbGlkYXRvciBwYWNrYWdlIHByb3ZpZGVzIGEgc2VyaWVzIG9mIGNsYXNzZXMgdG8gdmFsaWRhdGUgCisgICA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiB0eXBlIG9mIGlucHV0LiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj5QbHVnSW48L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2luczwvQT4gdGhhdCBpbXBsZW1lbnQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj5QbHVnSW48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnZlbmllbnQgaW1wbGVtZW50YXRpb24gb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj48Q09ERT5QbHVnSW48L0NPREU+PC9BPiB0aGF0IHBlcmZvcm1zIGFzIG1hbnkKKyB2ZXJpZmljYXRpb24gdGVzdHMgb24gdGhlIGluZm9ybWF0aW9uIHN0b3JlZCBpbiB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPgorIGZvciB0aGlzIGFwcGxpY2F0aW9uIG1vZHVsZSBhcyBpcyBwcmFjdGljYWwuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj5QbHVnSW48L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHRoYXQgaW1wbGVtZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCI+UGx1Z0luPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCI+VGlsZXNQbHVnaW48L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGlsZXMgUGx1Z2luIHVzZWQgdG8gaW5pdGlhbGl6ZSBUaWxlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj5QbHVnSW48L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5DbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9BPiB0aGF0IGltcGxlbWVudCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUGx1Z0luLmh0bWwiPlBsdWdJbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCI+VmFsaWRhdG9yUGx1Z0luPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0xvYWRzIDxjb2RlPlZhbGlkYXRvclJlc291cmNlczwvY29kZT4gYmFzZWQgb24KKyBjb25maWd1cmF0aW9uIGluIHRoZSBzdHJ1dHMtY29uZmlnLnhtbC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQbHVnSW4uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNmVlNzk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvUmVxdWVzdEFjdGlvbk1hcHBpbmcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc5N2VkNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0QWN0aW9uTWFwcGluZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdEFjdGlvbk1hcHBpbmcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdEFjdGlvbk1hcHBpbmcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL1JlcXVlc3RQcm9jZXNzb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODE3Njk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvUmVxdWVzdFByb2Nlc3Nvci5odG1sCkBAIC0wLDAgKzEsMjEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdFByb2Nlc3NvciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdFByb2Nlc3NvciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVxdWVzdFByb2Nlc3Nvci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0UHJvY2Vzc29yPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSBhY3Rpb24gcGFja2FnZSBpcyB0aGUgY29yZSBvZiB0aGUgc3RydXRzIGZyYW1ld29yaywKKyAgICBwcm92aWRpbmcgdGhlICJDb250cm9sbGVyIiBhc3BlY3Qgb2YgYSBNVkMgbW9kZWwuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvQT48L1REPgorPFREPjxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+RmllbGRzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiBkZWNsYXJlZCBhcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlJlcXVlc3RQcm9jZXNzb3I8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvblNlcnZsZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjcHJvY2Vzc29yIj5wcm9jZXNzb3I8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPlJlcXVlc3RQcm9jZXNzb3I8L2NvZGU+IGluc3RhbmNlIHdlIHdpbGwgdXNlIHRvIHByb2Nlc3MKKyBhbGwgaW5jb21pbmcgcmVxdWVzdHMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25TZXJ2bGV0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldFJlcXVlc3RQcm9jZXNzb3Iob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmdldFJlcXVlc3RQcm9jZXNzb3I8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb29rIHVwIGFuZCByZXR1cm4gdGhlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPjxDT0RFPlJlcXVlc3RQcm9jZXNzb3I8L0NPREU+PC9BPiByZXNwb25zaWJsZSBmb3IgdGhlCisgc3BlY2lmaWVkIG1vZHVsZSwgY3JlYXRpbmcgYSBuZXcgb25lIGlmIG5lY2Vzc2FyeS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlRpbGVzUmVxdWVzdFByb2Nlc3NvcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3Ryb25nPlJlcXVlc3RQcm9jZXNzb3I8L3N0cm9uZz4gY29udGFpbnMgdGhlIHByb2Nlc3NpbmcgbG9naWMgdGhhdAorIHRoZSBTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0IHBlcmZvcm1zIGFzIGl0IHJlY2VpdmVzIGVhY2ggc2VydmxldCByZXF1ZXN0CisgZnJvbSB0aGUgY29udGFpbmVyLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL1Nlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9TZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkZDBhODYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9TZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uU2Vzc2lvbkFjdGlvbk1hcHBpbmcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlNlc3Npb25BY3Rpb25NYXBwaW5nIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uU2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlNlc3Npb25BY3Rpb25NYXBwaW5nCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9TZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2RvYy1maWxlcy9hY3Rpb25VTUwuZ2lmIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9kb2MtZmlsZXMvYWN0aW9uVU1MLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzc0MTE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9kb2MtZmlsZXMvYWN0aW9uVU1MLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2UtZnJhbWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMTdkZTcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2UtZnJhbWUuaHRtbApAQCAtMCwwICsxLDg4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjUyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24gcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+Cis8Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lVGl0bGVGb250Ij4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorSW50ZXJmYWNlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9IlBsdWdJbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPjxJPlBsdWdJbjwvST48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitDbGFzc2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uRXJyb3IuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25FcnJvcjwvQT4KKzxCUj4KKzxBIEhSRUY9IkFjdGlvbkVycm9ycy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkVycm9yczwvQT4KKzxCUj4KKzxBIEhSRUY9IkFjdGlvbkV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkV4Y2VwdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9IkFjdGlvbkZvcm0uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25Gb3JtPC9BPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uRm9ybUJlYW4uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25Gb3JtQmVhbjwvQT4KKzxCUj4KKzxBIEhSRUY9IkFjdGlvbkZvcm1CZWFucy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkZvcm1CZWFuczwvQT4KKzxCUj4KKzxBIEhSRUY9IkFjdGlvbkZvcndhcmQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25Gb3J3YXJkPC9BPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uRm9yd2FyZHMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25Gb3J3YXJkczwvQT4KKzxCUj4KKzxBIEhSRUY9IkFjdGlvbk1hcHBpbmcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25NYXBwaW5nPC9BPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uTWFwcGluZ3MuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25NYXBwaW5nczwvQT4KKzxCUj4KKzxBIEhSRUY9IkFjdGlvbk1lc3NhZ2UuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25NZXNzYWdlPC9BPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uTWVzc2FnZXMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25NZXNzYWdlczwvQT4KKzxCUj4KKzxBIEhSRUY9IkFjdGlvblNlcnZsZXQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25TZXJ2bGV0PC9BPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uU2VydmxldFdyYXBwZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25TZXJ2bGV0V3JhcHBlcjwvQT4KKzxCUj4KKzxBIEhSRUY9IkR5bmFBY3Rpb25Gb3JtLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RHluYUFjdGlvbkZvcm08L0E+Cis8QlI+Cis8QSBIUkVGPSJEeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT4KKzxCUj4KKzxBIEhSRUY9IkV4Y2VwdGlvbkhhbmRsZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5FeGNlcHRpb25IYW5kbGVyPC9BPgorPEJSPgorPEEgSFJFRj0iRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvQT4KKzxCUj4KKzxBIEhSRUY9IlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvQT4KKzxCUj4KKzxBIEhSRUY9IlJlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVxdWVzdEFjdGlvbk1hcHBpbmc8L0E+Cis8QlI+Cis8QSBIUkVGPSJSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVxdWVzdFByb2Nlc3NvcjwvQT4KKzxCUj4KKzxBIEhSRUY9IlNlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+U2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWZjNDNhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbApAQCAtMCwwICsxLDMxOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1MiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24KKzwvSDI+CisgVGhlIGFjdGlvbiBwYWNrYWdlIGlzIHRoZSBjb3JlIG9mIHRoZSBzdHJ1dHMgZnJhbWV3b3JrLAorICAgIHByb3ZpZGluZyB0aGUgIkNvbnRyb2xsZXIiIGFzcGVjdCBvZiBhIE1WQyBtb2RlbC4KKzxQPgorPEI+U2VlOjwvQj4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxBIEhSRUY9IiNwYWNrYWdlX2Rlc2NyaXB0aW9uIj48Qj5EZXNjcmlwdGlvbjwvQj48L0E+Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+SW50ZXJmYWNlIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUGx1Z0luLmh0bWwiPjxJPlBsdWdJbjwvST48L0E+PC9CPjwvVEQ+Cis8VEQ+QSA8c3Ryb25nPlBsdWdJbjwvc3Ryb25nPiBpcyBhIGNvbmZpZ3VyYXRpb24gd3JhcHBlciBmb3IgYQorIG1vZHVsZS1zcGVjaWZpYyByZXNvdXJjZSBvciBzZXJ2aWNlIHRoYXQgbmVlZHMgdG8gYmUgbm90aWZpZWQgYWJvdXQKKyBhcHBsaWNhdGlvbiBzdGFydHVwIGFuZCBhcHBsaWNhdGlvbiBzaHV0ZG93biBldmVudHMgKGNvcnJlc3BvbmRpbmcgdG8gd2hlbgorIHRoZSBjb250YWluZXIgY2FsbHMgPGNvZGU+aW5pdCgpPC9jb2RlPiBhbmQgPGNvZGU+ZGVzdHJveSgpPC9jb2RlPiBvbiB0aGUKKyBjb3JyZXNwb25kaW5nIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPjxDT0RFPkFjdGlvblNlcnZsZXQ8L0NPREU+PC9BPiBpbnN0YW5jZSkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9CPjwvVEQ+Cis8VEQ+QW4gPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gaXMgYW4gYWRhcHRlciBiZXR3ZWVuIHRoZSBjb250ZW50cyBvZiBhbiBpbmNvbWluZworIEhUVFAgcmVxdWVzdCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYnVzaW5lc3MgbG9naWMgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQgdG8KKyBwcm9jZXNzIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPjwvQj48L1REPgorPFREPkFuIGVuY2Fwc3VsYXRpb24gb2YgYW4gaW5kaXZpZHVhbCBlcnJvciBtZXNzYWdlIHJldHVybmVkIGJ5IHRoZQorIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiBhbiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiwgY29uc2lzdGluZworIG9mIGEgbWVzc2FnZSBrZXkgKHRvIGJlIHVzZWQgdG8gbG9vayB1cCBtZXNzYWdlIHRleHQgaW4gYW4gYXBwcm9wcmlhdGUKKyBtZXNzYWdlIHJlc291cmNlcyBkYXRhYmFzZSkgcGx1cyB1cCB0byBmb3VyIHBsYWNlaG9sZGVyIG9iamVjdHMgdGhhdCBjYW4KKyBiZSB1c2VkIGZvciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IGluIHRoZSBtZXNzYWdlIHRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJBY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPjwvQj48L1REPgorPFREPkEgY2xhc3MgdGhhdCBlbmNhcHN1bGF0ZXMgdGhlIGVycm9yIG1lc3NhZ2VzIGJlaW5nIHJlcG9ydGVkIGJ5CisgdGhlIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiBhbiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbkV4Y2VwdGlvbi5odG1sIj5BY3Rpb25FeGNlcHRpb248L0E+PC9CPjwvVEQ+Cis8VEQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZzwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT48L0I+PC9URD4KKzxURD5BbiA8c3Ryb25nPkFjdGlvbkZvcm08L3N0cm9uZz4gaXMgYSBKYXZhQmVhbiBvcHRpb25hbGx5IGFzc29jaWF0ZWQgd2l0aAorIG9uZSBvciBtb3JlIDxjb2RlPkFjdGlvbk1hcHBpbmdzPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPjwvQj48L1REPgorPFREPkFuIDxzdHJvbmc+QWN0aW9uRm9ybUJlYW48L3N0cm9uZz4gaXMgdGhlIGRlZmluaXRpb24gb2YgYSBmb3JtIGJlYW4gdGhhdAorIGlzIGxvYWRlZCBmcm9tIGEgPGNvZGU+Jmx0O2Zvcm0tYmVhbiZndDs8L2NvZGU+IGVsZW1lbnQgaW4gdGhlIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbkZvcm1CZWFucy5odG1sIj5BY3Rpb25Gb3JtQmVhbnM8L0E+PC9CPjwvVEQ+Cis8VEQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgY29sbGVjdGlvbiBvZiBGb3JtQmVhbkNvbmZpZyBpbnN0YW5jZXMKKyAgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0I+PC9URD4KKzxURD5BbiA8c3Ryb25nPkFjdGlvbkZvcndhcmQ8L3N0cm9uZz4gcmVwcmVzZW50cyBhIGRlc3RpbmF0aW9uIHRvIHdoaWNoIHRoZQorIGNvbnRyb2xsZXIgc2VydmxldCwgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4sIG1pZ2h0IGJlIGRpcmVjdGVkIHRvCisgcGVyZm9ybSBhIDxjb2RlPlJlcXVlc3REaXNwYXRjaGVyLmZvcndhcmQoKTwvY29kZT4gb3IKKyA8Y29kZT5IdHRwU2VydmxldFJlc3BvbnNlLnNlbmRSZWRpcmVjdCgpPC9jb2RlPiB0bywgYXMgYSByZXN1bHQgb2YKKyBwcm9jZXNzaW5nIGFjdGl2aXRpZXMgb2YgYW4gPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbkZvcndhcmRzLmh0bWwiPkFjdGlvbkZvcndhcmRzPC9BPjwvQj48L1REPgorPFREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IGNvbGxlY3Rpb24gb2YgRm9yd2FyZENvbmZpZyBpbnN0YW5jZXMgaW4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPiBhbmQgQWN0aW9uQ29uZmlnPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvQj48L1REPgorPFREPkFuIDxzdHJvbmc+QWN0aW9uTWFwcGluZzwvc3Ryb25nPiByZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHRoZQorIGNvbnRyb2xsZXIgc2VydmxldCwgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4sIGtub3dzIGFib3V0IHRoZSBtYXBwaW5nCisgb2YgYSBwYXJ0aWN1bGFyIHJlcXVlc3QgdG8gYW4gaW5zdGFuY2Ugb2YgYSBwYXJ0aWN1bGFyIGFjdGlvbiBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPjwvQj48L1REPgorPFREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IGNvbGxlY3Rpb24gb2YgQWN0aW9uQ29uZmlnIGluc3RhbmNlcyBpbgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQWN0aW9uTWVzc2FnZS5odG1sIj5BY3Rpb25NZXNzYWdlPC9BPjwvQj48L1REPgorPFREPkFuIGVuY2Fwc3VsYXRpb24gb2YgYW4gaW5kaXZpZHVhbCBtZXNzYWdlIHJldHVybmVkIGJ5IHRoZQorIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiBhbiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiwgY29uc2lzdGluZworIG9mIGEgbWVzc2FnZSBrZXkgKHRvIGJlIHVzZWQgdG8gbG9vayB1cCBtZXNzYWdlIHRleHQgaW4gYW4gYXBwcm9wcmlhdGUKKyBtZXNzYWdlIHJlc291cmNlcyBkYXRhYmFzZSkgcGx1cyB1cCB0byBmb3VyIHBsYWNlaG9sZGVyIG9iamVjdHMgdGhhdCBjYW4KKyBiZSB1c2VkIGZvciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IGluIHRoZSBtZXNzYWdlIHRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJBY3Rpb25NZXNzYWdlcy5odG1sIj5BY3Rpb25NZXNzYWdlczwvQT48L0I+PC9URD4KKzxURD5BIGNsYXNzIHRoYXQgZW5jYXBzdWxhdGVzIG1lc3NhZ2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQj48L1REPgorPFREPjxzdHJvbmc+QWN0aW9uU2VydmxldDwvc3Ryb25nPiByZXByZXNlbnRzIHRoZSAiY29udHJvbGxlciIgaW4gdGhlCisgTW9kZWwtVmlldy1Db250cm9sbGVyIChNVkMpIGRlc2lnbiBwYXR0ZXJuIGZvciB3ZWIgYXBwbGljYXRpb25zIHRoYXQgaXMKKyBjb21tb25seSBrbm93biBhcyAiTW9kZWwgMiIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJBY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sIj5BY3Rpb25TZXJ2bGV0V3JhcHBlcjwvQT48L0I+PC9URD4KKzxURD5Qcm92aWRlIGEgd3JhcHBlciBhcm91bmQgYW4gQWN0aW9uU2VydmxldCB0byBleHBvc2Ugb25seQorIHRob3NlIG1ldGhvZHMgbmVlZGVkIGJ5IG90aGVyIG9iamVjdHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJEeW5hQWN0aW9uRm9ybS5odG1sIj5EeW5hQWN0aW9uRm9ybTwvQT48L0I+PC9URD4KKzxURD5TcGVjaWFsaXplZCBzdWJjbGFzcyBvZiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiB0aGF0IGFsbG93cyB0aGUgY3JlYXRpb24KKyBvZiBmb3JtIGJlYW5zIHdpdGggZHluYW1pYyBzZXRzIG9mIHByb3BlcnRpZXMsIHdpdGhvdXQgcmVxdWlyaW5nIHRoZQorIGRldmVsb3BlciB0byBjcmVhdGUgYSBKYXZhIGNsYXNzIGZvciBlYWNoIHR5cGUgb2YgZm9ybSBiZWFuLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sIj5EeW5hQWN0aW9uRm9ybUNsYXNzPC9BPjwvQj48L1REPgorPFREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPkR5bmFDbGFzczwvY29kZT4gZm9yCisgPGNvZGU+RHluYUFjdGlvbkZvcm08L2NvZGU+IGNsYXNzZXMgdGhhdCBhbGxvdyBkZXZlbG9wZXJzIHRvIGRlZmluZQorIEFjdGlvbkZvcm1zIHdpdGhvdXQgaGF2aW5nIHRvIGluZGl2aWR1YWxseSBjb2RlIGFsbCBvZiB0aGUgY2xhc3Nlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkV4Y2VwdGlvbkhhbmRsZXIuaHRtbCI+RXhjZXB0aW9uSGFuZGxlcjwvQT48L0I+PC9URD4KKzxURD5BbiBFeGNlcHRpb25IYW5kbGVyIGlzIGNvbmZpZ3VyZWQgaW4gdGhlIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGUgdG8gaGFuZGxlIGEgc3BlY2lmaWMKKyB0eXBlIG9mIGV4Y2VwdGlvbiB0aHJvd24gYnkgYW4gQWN0aW9uJ3MgZXhlY3V0ZSBtZXRob2QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJGb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sIj5Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZDwvQT48L0I+PC9URD4KKzxURD5BIHN1YmNsYXNzIG9mIDxzdHJvbmc+QWN0aW9uRm9yd2FyZDwvc3Ryb25nPiB0aGF0IGRlZmF1bHRzIHRoZQorIDxjb2RlPnJlZGlyZWN0PC9jb2RlPiBhdHRyaWJ1dGUgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvQT48L0I+PC9URD4KKzxURD5BIHN1YmNsYXNzIG9mIDxzdHJvbmc+QWN0aW9uRm9yd2FyZDwvc3Ryb25nPiB0aGF0IGRlZmF1bHRzIHRoZQorIDxjb2RlPnJlZGlyZWN0PC9jb2RlPiBhdHRyaWJ1dGUgdG8gPGNvZGU+dHJ1ZTwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sIj5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQT48L0I+PC9URD4KKzxURD5TdWJjbGFzcyBvZiA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPiB0aGF0IGRlZmF1bHRzIHRoZSBmb3JtIGJlYW4KKyBzY29wZSB0byA8Y29kZT5yZXF1ZXN0PC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlJlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT48L0I+PC9URD4KKzxURD48c3Ryb25nPlJlcXVlc3RQcm9jZXNzb3I8L3N0cm9uZz4gY29udGFpbnMgdGhlIHByb2Nlc3NpbmcgbG9naWMgdGhhdAorIHRoZSBTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0IHBlcmZvcm1zIGFzIGl0IHJlY2VpdmVzIGVhY2ggc2VydmxldCByZXF1ZXN0CisgZnJvbSB0aGUgY29udGFpbmVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iU2Vzc2lvbkFjdGlvbk1hcHBpbmcuaHRtbCI+U2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0E+PC9CPjwvVEQ+Cis8VEQ+U3ViY2xhc3Mgb2YgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gdGhhdCBkZWZhdWx0cyB0aGUgZm9ybSBiZWFuCisgc2NvcGUgdG8gPGNvZGU+c2Vzc2lvbjwvY29kZT4uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEEgTkFNRT0icGFja2FnZV9kZXNjcmlwdGlvbiI+PCEtLSAtLT48L0E+PEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24gRGVzY3JpcHRpb24KKzwvSDI+CisKKzxQPgorPHA+IFRoZSBhY3Rpb24gcGFja2FnZSBpcyB0aGUgY29yZSBvZiB0aGUgc3RydXRzIGZyYW1ld29yaywKKyAgICBwcm92aWRpbmcgdGhlICJDb250cm9sbGVyIiBhc3BlY3Qgb2YgYSBNVkMgbW9kZWwuPC9wPgorIDxicj4KKyA8YnI+CisgPGltZyBzcmM9ImRvYy1maWxlcy9hY3Rpb25VTUwuZ2lmIiBhbHQ9IkFjdGlvbiBQYWNrYWdlIFVNTCIgPgorIDxicj4KKyAKKzxoMj5QYWNrYWdlIFNwZWNpZmljYXRpb248L2gyPgorICAgICAgIyMjIyMgRklMTCBJTiBBTlkgU1BFQ1MgTkVFREVEIEJZIEpBVkEgQ09NUEFUSUJJTElUWSBLSVQgIyMjIyMgICAgIAorPHVsPgorICAgPGxpPjxhIGhyZWY9IiI+IyMjIyMgUkVGRVIgVE8gQU5ZIEZSQU1FTUFLRVIgU1BFQ0lGSUNBVElPTiBIRVJFICMjIyMjPC9hPgorICAgPC9saT4KKyAKKzwvdWw+CisgCis8aDI+UmVsYXRlZCBEb2N1bWVudGF0aW9uPC9oMj4KKyAgICAgIEZvciBvdmVydmlld3MsIHR1dG9yaWFscywgZXhhbXBsZXMsIGd1aWRlcywgYW5kIHRvb2wgZG9jdW1lbnRhdGlvbiwgCitwbGVhc2UgIHNlZTogICAgIAorPHVsPgorICAgPGxpPjxhIGhyZWY9IiI+IyMjIyMgUkVGRVIgVE8gTk9OLVNQRUMgRE9DVU1FTlRBVElPTiBIRVJFICMjIyMjPC9hPgorICAgPC9saT4KKyAKKzwvdWw+CisgPCEtLSBQdXQgQHNlZSBhbmQgQHNpbmNlIHRhZ3MgZG93biBoZXJlLiAtLT4KKzxQPgorCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2UtdHJlZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTlhYTdhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXRyZWUuaHRtbApAQCAtMCwwICsxLDE3OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1MiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+CitIaWVyYXJjaHkgRm9yIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXRyZWUuaHRtbCI+QWxsIFBhY2thZ2VzPC9BPjwvREw+Cis8SFI+Cis8SDI+CitDbGFzcyBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuT2JqZWN0PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+PEI+QWN0aW9uPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj48Qj5BY3Rpb25Db25maWc8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj48Qj5BY3Rpb25NYXBwaW5nPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiPjxCPlJlcXVlc3RBY3Rpb25NYXBwaW5nPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1Nlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwiPjxCPlNlc3Npb25BY3Rpb25NYXBwaW5nPC9CPjwvQT48L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj48Qj5BY3Rpb25Gb3JtPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPjxCPkR5bmFBY3Rpb25Gb3JtPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5EeW5hQmVhbikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj48Qj5BY3Rpb25Gb3JtQmVhbnM8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+PEI+QWN0aW9uRm9yd2FyZHM8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+PEI+QWN0aW9uTWFwcGluZ3M8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj48Qj5BY3Rpb25NZXNzYWdlPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPjxCPkFjdGlvbkVycm9yPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj48Qj5BY3Rpb25NZXNzYWdlczwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+PEI+QWN0aW9uRXJyb3JzPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sIj48Qj5BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbTwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sIj48Qj5BY3Rpb25TZXJ2bGV0V3JhcHBlcjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiPjxCPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFDbGFzcywgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj48Qj5FeGNlcHRpb25Db25maWc8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXhjZXB0aW9uLmh0bWwiPjxCPkFjdGlvbkV4Y2VwdGlvbjwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRXhjZXB0aW9uSGFuZGxlci5odG1sIj48Qj5FeGNlcHRpb25IYW5kbGVyPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPjxCPkZvcm1CZWFuQ29uZmlnPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPjxCPkFjdGlvbkZvcm1CZWFuPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPjxCPkZvcndhcmRDb25maWc8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj48Qj5BY3Rpb25Gb3J3YXJkPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0ZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIj48Qj5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQ8L0I+PC9BPjwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5HZW5lcmljU2VydmxldCAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5TZXJ2bGV0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQgKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+PEI+QWN0aW9uU2VydmxldDwvQj48L0E+PC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+PEI+UmVxdWVzdFByb2Nlc3NvcjwvQj48L0E+PC9VTD4KKzwvVUw+Cis8SDI+CitJbnRlcmZhY2UgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUGx1Z0luLmh0bWwiPjxCPlBsdWdJbjwvQj48L0E+PC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2UtdXNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2UtdXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2YzYjZhOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS11c2UuaHRtbApAQCAtMCwwICsxLDcyNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIFBhY2thZ2U8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9CPjwvQT48L1REPgorPFREPiBUaGUgYWN0aW9uIHBhY2thZ2UgaXMgdGhlIGNvcmUgb2YgdGhlIHN0cnV0cyBmcmFtZXdvcmssCisgICAgcHJvdmlkaW5nIHRoZSAiQ29udHJvbGxlciIgYXNwZWN0IG9mIGEgTVZDIG1vZGVsLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSBhY3Rpb25zIHBhY2thZ2UgcHJvdmlkZXMgc3BlY2lhbCBhZGFwdGVycyBiZXR3ZWVuIHRoZSBpbmNvbWluZyAgSFRUUAorIHJlcXVlc3QgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGJ1c2luZXNzIGxvZ2ljLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9CPjwvQT48L1REPgorPFREPlRoZSAiY29uZmlnIiBwYWNrYWdlIGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyB0aGF0IGNvcnJlc3BvbmQgdG8KK2VsZW1lbnRzIHRoYXQgbWF5IGJlIHNwZWNpZmllZCBpbiB0aGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+Cittb2R1bGUgY29uZmlndXJhdGlvbiBmaWxlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnM8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9CPjwvQT48L1REPgorPFREPjxhIG5hbWU9ImRvYy5EZXNjcmlwdGlvbiI+VGhlICJzdHJ1dHMtaHRtbCIgdGFnIGxpYnJhcnk8L2E+CisgIGNvbnRhaW5zIEpTUCBjdXN0b20gdGFncyB1c2VmdWwgaW4gY3JlYXRpbmcgZHluYW1pYyBIVE1MIHVzZXIgaW50ZXJmYWNlcywKK2luY2x1ZGluZyBpbnB1dCBmb3Jtcy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0I+PC9BPjwvVEQ+Cis8VEQ+PGRpdiBjbGFzcz0ibWFpbkNvbnRlbnQiPgorICAgIFRoZSBUaWxlcyB0YWdsaWIgYW5kIGZyYW1ld29yayBhbGxvd3MgYnVpbGRpbmcgd2ViIHBhZ2VzIGJ5IGFzc2VtYmxpbmcgcmV1c2FibGUgCisgICAgcGllY2VzIG9mIHBhZ2VzLCBjYWxsZWQgVGlsZXMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9uczwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQj48L0E+PC9URD4KKzxURD4gVGhlIHVwbG9hZCBwYWNrYWdlIGZhY2lsaXRpZXMgdG8gdXBsb2FkIGZpbGVzIHVzaW5nCisgbXVsdGktcGFydCByZXF1ZXN0cy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy51dGlsIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9CPjwvQT48L1REPgorPFREPlRoZSBVdGlsaXRpZXMgcGFja2FnZSBwcm92aWRlcyBhIHZhcmlldHkgb2YgZmFtaWxpZXMgb2YgY2xhc3NlcywKK3RvIHNvbHZlIHByb2JsZW1zIHRoYXQgYXJlIGNvbW1vbmx5IGVuY291bnRlcmVkIGluIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSB2YWxpZGF0b3IgcGFja2FnZSBwcm92aWRlcyBhIHNlcmllcyBvZiBjbGFzc2VzIHRvIHZhbGlkYXRlIAorICAgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gdHlwZSBvZiBpbnB1dC4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb24uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPkFjdGlvbjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiBpcyBhbiBhZGFwdGVyIGJldHdlZW4gdGhlIGNvbnRlbnRzIG9mIGFuIGluY29taW5nCisgSFRUUCByZXF1ZXN0IGFuZCB0aGUgY29ycmVzcG9uZGluZyBidXNpbmVzcyBsb2dpYyB0aGF0IHNob3VsZCBiZSBleGVjdXRlZCB0bworIHByb2Nlc3MgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25FcnJvci5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+QWN0aW9uRXJyb3I8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW4gZW5jYXBzdWxhdGlvbiBvZiBhbiBpbmRpdmlkdWFsIGVycm9yIG1lc3NhZ2UgcmV0dXJuZWQgYnkgdGhlCisgPGNvZGU+dmFsaWRhdGUoKTwvY29kZT4gbWV0aG9kIG9mIGFuIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+LCBjb25zaXN0aW5nCisgb2YgYSBtZXNzYWdlIGtleSAodG8gYmUgdXNlZCB0byBsb29rIHVwIG1lc3NhZ2UgdGV4dCBpbiBhbiBhcHByb3ByaWF0ZQorIG1lc3NhZ2UgcmVzb3VyY2VzIGRhdGFiYXNlKSBwbHVzIHVwIHRvIGZvdXIgcGxhY2Vob2xkZXIgb2JqZWN0cyB0aGF0IGNhbgorIGJlIHVzZWQgZm9yIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgaW4gdGhlIG1lc3NhZ2UgdGV4dC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRXJyb3JzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5BY3Rpb25FcnJvcnM8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBjbGFzcyB0aGF0IGVuY2Fwc3VsYXRlcyB0aGUgZXJyb3IgbWVzc2FnZXMgYmVpbmcgcmVwb3J0ZWQgYnkKKyB0aGUgPGNvZGU+dmFsaWRhdGUoKTwvY29kZT4gbWV0aG9kIG9mIGFuIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25Gb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5BY3Rpb25Gb3JtPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FuIDxzdHJvbmc+QWN0aW9uRm9ybTwvc3Ryb25nPiBpcyBhIEphdmFCZWFuIG9wdGlvbmFsbHkgYXNzb2NpYXRlZCB3aXRoCisgb25lIG9yIG1vcmUgPGNvZGU+QWN0aW9uTWFwcGluZ3M8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25Gb3JtQmVhbi5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+QWN0aW9uRm9ybUJlYW48L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW4gPHN0cm9uZz5BY3Rpb25Gb3JtQmVhbjwvc3Ryb25nPiBpcyB0aGUgZGVmaW5pdGlvbiBvZiBhIGZvcm0gYmVhbiB0aGF0CisgaXMgbG9hZGVkIGZyb20gYSA8Y29kZT4mbHQ7Zm9ybS1iZWFuJmd0OzwvY29kZT4gZWxlbWVudCBpbiB0aGUgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25Gb3J3YXJkLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5BY3Rpb25Gb3J3YXJkPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FuIDxzdHJvbmc+QWN0aW9uRm9yd2FyZDwvc3Ryb25nPiByZXByZXNlbnRzIGEgZGVzdGluYXRpb24gdG8gd2hpY2ggdGhlCisgY29udHJvbGxlciBzZXJ2bGV0LCA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiwgbWlnaHQgYmUgZGlyZWN0ZWQgdG8KKyBwZXJmb3JtIGEgPGNvZGU+UmVxdWVzdERpc3BhdGNoZXIuZm9yd2FyZCgpPC9jb2RlPiBvcgorIDxjb2RlPkh0dHBTZXJ2bGV0UmVzcG9uc2Uuc2VuZFJlZGlyZWN0KCk8L2NvZGU+IHRvLCBhcyBhIHJlc3VsdCBvZgorIHByb2Nlc3NpbmcgYWN0aXZpdGllcyBvZiBhbiA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25NYXBwaW5nLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5BY3Rpb25NYXBwaW5nPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FuIDxzdHJvbmc+QWN0aW9uTWFwcGluZzwvc3Ryb25nPiByZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHRoZQorIGNvbnRyb2xsZXIgc2VydmxldCwgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4sIGtub3dzIGFib3V0IHRoZSBtYXBwaW5nCisgb2YgYSBwYXJ0aWN1bGFyIHJlcXVlc3QgdG8gYW4gaW5zdGFuY2Ugb2YgYSBwYXJ0aWN1bGFyIGFjdGlvbiBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uTWVzc2FnZS5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+QWN0aW9uTWVzc2FnZTwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiBlbmNhcHN1bGF0aW9uIG9mIGFuIGluZGl2aWR1YWwgbWVzc2FnZSByZXR1cm5lZCBieSB0aGUKKyA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2Qgb2YgYW4gPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4sIGNvbnNpc3RpbmcKKyBvZiBhIG1lc3NhZ2Uga2V5ICh0byBiZSB1c2VkIHRvIGxvb2sgdXAgbWVzc2FnZSB0ZXh0IGluIGFuIGFwcHJvcHJpYXRlCisgbWVzc2FnZSByZXNvdXJjZXMgZGF0YWJhc2UpIHBsdXMgdXAgdG8gZm91ciBwbGFjZWhvbGRlciBvYmplY3RzIHRoYXQgY2FuCisgYmUgdXNlZCBmb3IgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBpbiB0aGUgbWVzc2FnZSB0ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25NZXNzYWdlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+QWN0aW9uTWVzc2FnZXM8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBjbGFzcyB0aGF0IGVuY2Fwc3VsYXRlcyBtZXNzYWdlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uU2VydmxldC5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+QWN0aW9uU2VydmxldDwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3Ryb25nPkFjdGlvblNlcnZsZXQ8L3N0cm9uZz4gcmVwcmVzZW50cyB0aGUgImNvbnRyb2xsZXIiIGluIHRoZQorIE1vZGVsLVZpZXctQ29udHJvbGxlciAoTVZDKSBkZXNpZ24gcGF0dGVybiBmb3Igd2ViIGFwcGxpY2F0aW9ucyB0aGF0IGlzCisgY29tbW9ubHkga25vd24gYXMgIk1vZGVsIDIiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+QWN0aW9uU2VydmxldFdyYXBwZXI8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvdmlkZSBhIHdyYXBwZXIgYXJvdW5kIGFuIEFjdGlvblNlcnZsZXQgdG8gZXhwb3NlIG9ubHkKKyB0aG9zZSBtZXRob2RzIG5lZWRlZCBieSBvdGhlciBvYmplY3RzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5EeW5hQWN0aW9uRm9ybUNsYXNzPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ltcGxlbWVudGF0aW9uIG9mIDxjb2RlPkR5bmFDbGFzczwvY29kZT4gZm9yCisgPGNvZGU+RHluYUFjdGlvbkZvcm08L2NvZGU+IGNsYXNzZXMgdGhhdCBhbGxvdyBkZXZlbG9wZXJzIHRvIGRlZmluZQorIEFjdGlvbkZvcm1zIHdpdGhvdXQgaGF2aW5nIHRvIGluZGl2aWR1YWxseSBjb2RlIGFsbCBvZiB0aGUgY2xhc3Nlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvUmVxdWVzdFByb2Nlc3Nvci5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+UmVxdWVzdFByb2Nlc3NvcjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3Ryb25nPlJlcXVlc3RQcm9jZXNzb3I8L3N0cm9uZz4gY29udGFpbnMgdGhlIHByb2Nlc3NpbmcgbG9naWMgdGhhdAorIHRoZSBTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0IHBlcmZvcm1zIGFzIGl0IHJlY2VpdmVzIGVhY2ggc2VydmxldCByZXF1ZXN0CisgZnJvbSB0aGUgY29udGFpbmVyLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbi5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMiPjxCPkFjdGlvbjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiBpcyBhbiBhZGFwdGVyIGJldHdlZW4gdGhlIGNvbnRlbnRzIG9mIGFuIGluY29taW5nCisgSFRUUCByZXF1ZXN0IGFuZCB0aGUgY29ycmVzcG9uZGluZyBidXNpbmVzcyBsb2dpYyB0aGF0IHNob3VsZCBiZSBleGVjdXRlZCB0bworIHByb2Nlc3MgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25Gb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucyI+PEI+QWN0aW9uRm9ybTwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiA8c3Ryb25nPkFjdGlvbkZvcm08L3N0cm9uZz4gaXMgYSBKYXZhQmVhbiBvcHRpb25hbGx5IGFzc29jaWF0ZWQgd2l0aAorIG9uZSBvciBtb3JlIDxjb2RlPkFjdGlvbk1hcHBpbmdzPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRm9yd2FyZC5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMiPjxCPkFjdGlvbkZvcndhcmQ8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW4gPHN0cm9uZz5BY3Rpb25Gb3J3YXJkPC9zdHJvbmc+IHJlcHJlc2VudHMgYSBkZXN0aW5hdGlvbiB0byB3aGljaCB0aGUKKyBjb250cm9sbGVyIHNlcnZsZXQsIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCBtaWdodCBiZSBkaXJlY3RlZCB0bworIHBlcmZvcm0gYSA8Y29kZT5SZXF1ZXN0RGlzcGF0Y2hlci5mb3J3YXJkKCk8L2NvZGU+IG9yCisgPGNvZGU+SHR0cFNlcnZsZXRSZXNwb25zZS5zZW5kUmVkaXJlY3QoKTwvY29kZT4gdG8sIGFzIGEgcmVzdWx0IG9mCisgcHJvY2Vzc2luZyBhY3Rpdml0aWVzIG9mIGFuIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbk1hcHBpbmcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zIj48Qj5BY3Rpb25NYXBwaW5nPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FuIDxzdHJvbmc+QWN0aW9uTWFwcGluZzwvc3Ryb25nPiByZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHRoZQorIGNvbnRyb2xsZXIgc2VydmxldCwgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4sIGtub3dzIGFib3V0IHRoZSBtYXBwaW5nCisgb2YgYSBwYXJ0aWN1bGFyIHJlcXVlc3QgdG8gYW4gaW5zdGFuY2Ugb2YgYSBwYXJ0aWN1bGFyIGFjdGlvbiBjbGFzcy48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25FcnJvcnMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPkFjdGlvbkVycm9yczwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIGNsYXNzIHRoYXQgZW5jYXBzdWxhdGVzIHRoZSBlcnJvciBtZXNzYWdlcyBiZWluZyByZXBvcnRlZCBieQorIHRoZSA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2Qgb2YgYW4gPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPkFjdGlvbkZvcm08L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW4gPHN0cm9uZz5BY3Rpb25Gb3JtPC9zdHJvbmc+IGlzIGEgSmF2YUJlYW4gb3B0aW9uYWxseSBhc3NvY2lhdGVkIHdpdGgKKyBvbmUgb3IgbW9yZSA8Y29kZT5BY3Rpb25NYXBwaW5nczwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkZvcm1CZWFuLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5BY3Rpb25Gb3JtQmVhbjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiA8c3Ryb25nPkFjdGlvbkZvcm1CZWFuPC9zdHJvbmc+IGlzIHRoZSBkZWZpbml0aW9uIG9mIGEgZm9ybSBiZWFuIHRoYXQKKyBpcyBsb2FkZWQgZnJvbSBhIDxjb2RlPiZsdDtmb3JtLWJlYW4mZ3Q7PC9jb2RlPiBlbGVtZW50IGluIHRoZSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkZvcm1CZWFucy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+QWN0aW9uRm9ybUJlYW5zPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlJlcGxhY2VkIGJ5IGNvbGxlY3Rpb24gb2YgRm9ybUJlYW5Db25maWcgaW5zdGFuY2VzCisgIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkZvcndhcmQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPkFjdGlvbkZvcndhcmQ8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW4gPHN0cm9uZz5BY3Rpb25Gb3J3YXJkPC9zdHJvbmc+IHJlcHJlc2VudHMgYSBkZXN0aW5hdGlvbiB0byB3aGljaCB0aGUKKyBjb250cm9sbGVyIHNlcnZsZXQsIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCBtaWdodCBiZSBkaXJlY3RlZCB0bworIHBlcmZvcm0gYSA8Y29kZT5SZXF1ZXN0RGlzcGF0Y2hlci5mb3J3YXJkKCk8L2NvZGU+IG9yCisgPGNvZGU+SHR0cFNlcnZsZXRSZXNwb25zZS5zZW5kUmVkaXJlY3QoKTwvY29kZT4gdG8sIGFzIGEgcmVzdWx0IG9mCisgcHJvY2Vzc2luZyBhY3Rpdml0aWVzIG9mIGFuIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkZvcndhcmRzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5BY3Rpb25Gb3J3YXJkczwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIG9mIEZvcndhcmRDb25maWcgaW5zdGFuY2VzIGluCisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4gYW5kIEFjdGlvbkNvbmZpZzwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uTWFwcGluZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+QWN0aW9uTWFwcGluZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiA8c3Ryb25nPkFjdGlvbk1hcHBpbmc8L3N0cm9uZz4gcmVwcmVzZW50cyB0aGUgaW5mb3JtYXRpb24gdGhhdCB0aGUKKyBjb250cm9sbGVyIHNlcnZsZXQsIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCBrbm93cyBhYm91dCB0aGUgbWFwcGluZworIG9mIGEgcGFydGljdWxhciByZXF1ZXN0IHRvIGFuIGluc3RhbmNlIG9mIGEgcGFydGljdWxhciBhY3Rpb24gY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbk1hcHBpbmdzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5BY3Rpb25NYXBwaW5nczwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5SZXBsYWNlZCBieSBjb2xsZWN0aW9uIG9mIEFjdGlvbkNvbmZpZyBpbnN0YW5jZXMgaW4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uTWVzc2FnZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPkFjdGlvbk1lc3NhZ2VzPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgY2xhc3MgdGhhdCBlbmNhcHN1bGF0ZXMgbWVzc2FnZXMuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uU2VydmxldC5odG1sI29yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMiPjxCPkFjdGlvblNlcnZsZXQ8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PHN0cm9uZz5BY3Rpb25TZXJ2bGV0PC9zdHJvbmc+IHJlcHJlc2VudHMgdGhlICJjb250cm9sbGVyIiBpbiB0aGUKKyBNb2RlbC1WaWV3LUNvbnRyb2xsZXIgKE1WQykgZGVzaWduIHBhdHRlcm4gZm9yIHdlYiBhcHBsaWNhdGlvbnMgdGhhdCBpcworIGNvbW1vbmx5IGtub3duIGFzICJNb2RlbCAyIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvUGx1Z0luLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucyI+PEI+UGx1Z0luPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgPHN0cm9uZz5QbHVnSW48L3N0cm9uZz4gaXMgYSBjb25maWd1cmF0aW9uIHdyYXBwZXIgZm9yIGEKKyBtb2R1bGUtc3BlY2lmaWMgcmVzb3VyY2Ugb3Igc2VydmljZSB0aGF0IG5lZWRzIHRvIGJlIG5vdGlmaWVkIGFib3V0CisgYXBwbGljYXRpb24gc3RhcnR1cCBhbmQgYXBwbGljYXRpb24gc2h1dGRvd24gZXZlbnRzIChjb3JyZXNwb25kaW5nIHRvIHdoZW4KKyB0aGUgY29udGFpbmVyIGNhbGxzIDxjb2RlPmluaXQoKTwvY29kZT4gYW5kIDxjb2RlPmRlc3Ryb3koKTwvY29kZT4gb24gdGhlCisgY29ycmVzcG9uZGluZyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Q09ERT5BY3Rpb25TZXJ2bGV0PC9DT0RFPjwvQT4gaW5zdGFuY2UpLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbk1hcHBpbmcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PEI+QWN0aW9uTWFwcGluZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiA8c3Ryb25nPkFjdGlvbk1hcHBpbmc8L3N0cm9uZz4gcmVwcmVzZW50cyB0aGUgaW5mb3JtYXRpb24gdGhhdCB0aGUKKyBjb250cm9sbGVyIHNlcnZsZXQsIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCBrbm93cyBhYm91dCB0aGUgbWFwcGluZworIG9mIGEgcGFydGljdWxhciByZXF1ZXN0IHRvIGFuIGluc3RhbmNlIG9mIGEgcGFydGljdWxhciBhY3Rpb24gY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvblNlcnZsZXQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PEI+QWN0aW9uU2VydmxldDwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3Ryb25nPkFjdGlvblNlcnZsZXQ8L3N0cm9uZz4gcmVwcmVzZW50cyB0aGUgImNvbnRyb2xsZXIiIGluIHRoZQorIE1vZGVsLVZpZXctQ29udHJvbGxlciAoTVZDKSBkZXNpZ24gcGF0dGVybiBmb3Igd2ViIGFwcGxpY2F0aW9ucyB0aGF0IGlzCisgY29tbW9ubHkga25vd24gYXMgIk1vZGVsIDIiLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbi5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5BY3Rpb248L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW4gPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gaXMgYW4gYWRhcHRlciBiZXR3ZWVuIHRoZSBjb250ZW50cyBvZiBhbiBpbmNvbWluZworIEhUVFAgcmVxdWVzdCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYnVzaW5lc3MgbG9naWMgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQgdG8KKyBwcm9jZXNzIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5BY3Rpb25Gb3JtPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FuIDxzdHJvbmc+QWN0aW9uRm9ybTwvc3Ryb25nPiBpcyBhIEphdmFCZWFuIG9wdGlvbmFsbHkgYXNzb2NpYXRlZCB3aXRoCisgb25lIG9yIG1vcmUgPGNvZGU+QWN0aW9uTWFwcGluZ3M8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25Gb3J3YXJkLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPkFjdGlvbkZvcndhcmQ8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW4gPHN0cm9uZz5BY3Rpb25Gb3J3YXJkPC9zdHJvbmc+IHJlcHJlc2VudHMgYSBkZXN0aW5hdGlvbiB0byB3aGljaCB0aGUKKyBjb250cm9sbGVyIHNlcnZsZXQsIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCBtaWdodCBiZSBkaXJlY3RlZCB0bworIHBlcmZvcm0gYSA8Y29kZT5SZXF1ZXN0RGlzcGF0Y2hlci5mb3J3YXJkKCk8L2NvZGU+IG9yCisgPGNvZGU+SHR0cFNlcnZsZXRSZXNwb25zZS5zZW5kUmVkaXJlY3QoKTwvY29kZT4gdG8sIGFzIGEgcmVzdWx0IG9mCisgcHJvY2Vzc2luZyBhY3Rpdml0aWVzIG9mIGFuIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbk1hcHBpbmcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+QWN0aW9uTWFwcGluZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiA8c3Ryb25nPkFjdGlvbk1hcHBpbmc8L3N0cm9uZz4gcmVwcmVzZW50cyB0aGUgaW5mb3JtYXRpb24gdGhhdCB0aGUKKyBjb250cm9sbGVyIHNlcnZsZXQsIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCBrbm93cyBhYm91dCB0aGUgbWFwcGluZworIG9mIGEgcGFydGljdWxhciByZXF1ZXN0IHRvIGFuIGluc3RhbmNlIG9mIGEgcGFydGljdWxhciBhY3Rpb24gY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvblNlcnZsZXQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+QWN0aW9uU2VydmxldDwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3Ryb25nPkFjdGlvblNlcnZsZXQ8L3N0cm9uZz4gcmVwcmVzZW50cyB0aGUgImNvbnRyb2xsZXIiIGluIHRoZQorIE1vZGVsLVZpZXctQ29udHJvbGxlciAoTVZDKSBkZXNpZ24gcGF0dGVybiBmb3Igd2ViIGFwcGxpY2F0aW9ucyB0aGF0IGlzCisgY29tbW9ubHkga25vd24gYXMgIk1vZGVsIDIiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9QbHVnSW4uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+UGx1Z0luPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgPHN0cm9uZz5QbHVnSW48L3N0cm9uZz4gaXMgYSBjb25maWd1cmF0aW9uIHdyYXBwZXIgZm9yIGEKKyBtb2R1bGUtc3BlY2lmaWMgcmVzb3VyY2Ugb3Igc2VydmljZSB0aGF0IG5lZWRzIHRvIGJlIG5vdGlmaWVkIGFib3V0CisgYXBwbGljYXRpb24gc3RhcnR1cCBhbmQgYXBwbGljYXRpb24gc2h1dGRvd24gZXZlbnRzIChjb3JyZXNwb25kaW5nIHRvIHdoZW4KKyB0aGUgY29udGFpbmVyIGNhbGxzIDxjb2RlPmluaXQoKTwvY29kZT4gYW5kIDxjb2RlPmRlc3Ryb3koKTwvY29kZT4gb24gdGhlCisgY29ycmVzcG9uZGluZyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Q09ERT5BY3Rpb25TZXJ2bGV0PC9DT0RFPjwvQT4gaW5zdGFuY2UpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPlJlcXVlc3RQcm9jZXNzb3I8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PHN0cm9uZz5SZXF1ZXN0UHJvY2Vzc29yPC9zdHJvbmc+IGNvbnRhaW5zIHRoZSBwcm9jZXNzaW5nIGxvZ2ljIHRoYXQKKyB0aGUgU3RydXRzIGNvbnRyb2xsZXIgc2VydmxldCBwZXJmb3JtcyBhcyBpdCByZWNlaXZlcyBlYWNoIHNlcnZsZXQgcmVxdWVzdAorIGZyb20gdGhlIGNvbnRhaW5lci48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnM8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb24uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zIj48Qj5BY3Rpb248L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW4gPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gaXMgYW4gYWRhcHRlciBiZXR3ZWVuIHRoZSBjb250ZW50cyBvZiBhbiBpbmNvbWluZworIEhUVFAgcmVxdWVzdCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYnVzaW5lc3MgbG9naWMgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQgdG8KKyBwcm9jZXNzIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMiPjxCPkFjdGlvbkZvcm08L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW4gPHN0cm9uZz5BY3Rpb25Gb3JtPC9zdHJvbmc+IGlzIGEgSmF2YUJlYW4gb3B0aW9uYWxseSBhc3NvY2lhdGVkIHdpdGgKKyBvbmUgb3IgbW9yZSA8Y29kZT5BY3Rpb25NYXBwaW5nczwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkZvcndhcmQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zIj48Qj5BY3Rpb25Gb3J3YXJkPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FuIDxzdHJvbmc+QWN0aW9uRm9yd2FyZDwvc3Ryb25nPiByZXByZXNlbnRzIGEgZGVzdGluYXRpb24gdG8gd2hpY2ggdGhlCisgY29udHJvbGxlciBzZXJ2bGV0LCA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiwgbWlnaHQgYmUgZGlyZWN0ZWQgdG8KKyBwZXJmb3JtIGEgPGNvZGU+UmVxdWVzdERpc3BhdGNoZXIuZm9yd2FyZCgpPC9jb2RlPiBvcgorIDxjb2RlPkh0dHBTZXJ2bGV0UmVzcG9uc2Uuc2VuZFJlZGlyZWN0KCk8L2NvZGU+IHRvLCBhcyBhIHJlc3VsdCBvZgorIHByb2Nlc3NpbmcgYWN0aXZpdGllcyBvZiBhbiA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25NYXBwaW5nLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucyI+PEI+QWN0aW9uTWFwcGluZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiA8c3Ryb25nPkFjdGlvbk1hcHBpbmc8L3N0cm9uZz4gcmVwcmVzZW50cyB0aGUgaW5mb3JtYXRpb24gdGhhdCB0aGUKKyBjb250cm9sbGVyIHNlcnZsZXQsIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCBrbm93cyBhYm91dCB0aGUgbWFwcGluZworIG9mIGEgcGFydGljdWxhciByZXF1ZXN0IHRvIGFuIGluc3RhbmNlIG9mIGEgcGFydGljdWxhciBhY3Rpb24gY2xhc3MuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uTWFwcGluZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZCI+PEI+QWN0aW9uTWFwcGluZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiA8c3Ryb25nPkFjdGlvbk1hcHBpbmc8L3N0cm9uZz4gcmVwcmVzZW50cyB0aGUgaW5mb3JtYXRpb24gdGhhdCB0aGUKKyBjb250cm9sbGVyIHNlcnZsZXQsIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCBrbm93cyBhYm91dCB0aGUgbWFwcGluZworIG9mIGEgcGFydGljdWxhciByZXF1ZXN0IHRvIGFuIGluc3RhbmNlIG9mIGEgcGFydGljdWxhciBhY3Rpb24gY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvblNlcnZsZXQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQiPjxCPkFjdGlvblNlcnZsZXQ8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PHN0cm9uZz5BY3Rpb25TZXJ2bGV0PC9zdHJvbmc+IHJlcHJlc2VudHMgdGhlICJjb250cm9sbGVyIiBpbiB0aGUKKyBNb2RlbC1WaWV3LUNvbnRyb2xsZXIgKE1WQykgZGVzaWduIHBhdHRlcm4gZm9yIHdlYiBhcHBsaWNhdGlvbnMgdGhhdCBpcworIGNvbW1vbmx5IGtub3duIGFzICJNb2RlbCAyIi48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25FcnJvci5odG1sI29yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjxCPkFjdGlvbkVycm9yPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FuIGVuY2Fwc3VsYXRpb24gb2YgYW4gaW5kaXZpZHVhbCBlcnJvciBtZXNzYWdlIHJldHVybmVkIGJ5IHRoZQorIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiBhbiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiwgY29uc2lzdGluZworIG9mIGEgbWVzc2FnZSBrZXkgKHRvIGJlIHVzZWQgdG8gbG9vayB1cCBtZXNzYWdlIHRleHQgaW4gYW4gYXBwcm9wcmlhdGUKKyBtZXNzYWdlIHJlc291cmNlcyBkYXRhYmFzZSkgcGx1cyB1cCB0byBmb3VyIHBsYWNlaG9sZGVyIG9iamVjdHMgdGhhdCBjYW4KKyBiZSB1c2VkIGZvciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IGluIHRoZSBtZXNzYWdlIHRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkVycm9ycy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjxCPkFjdGlvbkVycm9yczwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIGNsYXNzIHRoYXQgZW5jYXBzdWxhdGVzIHRoZSBlcnJvciBtZXNzYWdlcyBiZWluZyByZXBvcnRlZCBieQorIHRoZSA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2Qgb2YgYW4gPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbkZvcm0uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51dGlsIj48Qj5BY3Rpb25Gb3JtPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FuIDxzdHJvbmc+QWN0aW9uRm9ybTwvc3Ryb25nPiBpcyBhIEphdmFCZWFuIG9wdGlvbmFsbHkgYXNzb2NpYXRlZCB3aXRoCisgb25lIG9yIG1vcmUgPGNvZGU+QWN0aW9uTWFwcGluZ3M8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25NYXBwaW5nLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXRpbCI+PEI+QWN0aW9uTWFwcGluZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiA8c3Ryb25nPkFjdGlvbk1hcHBpbmc8L3N0cm9uZz4gcmVwcmVzZW50cyB0aGUgaW5mb3JtYXRpb24gdGhhdCB0aGUKKyBjb250cm9sbGVyIHNlcnZsZXQsIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCBrbm93cyBhYm91dCB0aGUgbWFwcGluZworIG9mIGEgcGFydGljdWxhciByZXF1ZXN0IHRvIGFuIGluc3RhbmNlIG9mIGEgcGFydGljdWxhciBhY3Rpb24gY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vY2xhc3MtdXNlL0FjdGlvbk1lc3NhZ2VzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXRpbCI+PEI+QWN0aW9uTWVzc2FnZXM8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBjbGFzcyB0aGF0IGVuY2Fwc3VsYXRlcyBtZXNzYWdlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uU2VydmxldC5odG1sI29yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjxCPkFjdGlvblNlcnZsZXQ8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PHN0cm9uZz5BY3Rpb25TZXJ2bGV0PC9zdHJvbmc+IHJlcHJlc2VudHMgdGhlICJjb250cm9sbGVyIiBpbiB0aGUKKyBNb2RlbC1WaWV3LUNvbnRyb2xsZXIgKE1WQykgZGVzaWduIHBhdHRlcm4gZm9yIHdlYiBhcHBsaWNhdGlvbnMgdGhhdCBpcworIGNvbW1vbmx5IGtub3duIGFzICJNb2RlbCAyIi48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25FcnJvci5odG1sI29yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciI+PEI+QWN0aW9uRXJyb3I8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW4gZW5jYXBzdWxhdGlvbiBvZiBhbiBpbmRpdmlkdWFsIGVycm9yIG1lc3NhZ2UgcmV0dXJuZWQgYnkgdGhlCisgPGNvZGU+dmFsaWRhdGUoKTwvY29kZT4gbWV0aG9kIG9mIGFuIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+LCBjb25zaXN0aW5nCisgb2YgYSBtZXNzYWdlIGtleSAodG8gYmUgdXNlZCB0byBsb29rIHVwIG1lc3NhZ2UgdGV4dCBpbiBhbiBhcHByb3ByaWF0ZQorIG1lc3NhZ2UgcmVzb3VyY2VzIGRhdGFiYXNlKSBwbHVzIHVwIHRvIGZvdXIgcGxhY2Vob2xkZXIgb2JqZWN0cyB0aGF0IGNhbgorIGJlIHVzZWQgZm9yIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgaW4gdGhlIG1lc3NhZ2UgdGV4dC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uRXJyb3JzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48Qj5BY3Rpb25FcnJvcnM8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBjbGFzcyB0aGF0IGVuY2Fwc3VsYXRlcyB0aGUgZXJyb3IgbWVzc2FnZXMgYmVpbmcgcmVwb3J0ZWQgYnkKKyB0aGUgPGNvZGU+dmFsaWRhdGUoKTwvY29kZT4gbWV0aG9kIG9mIGFuIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25Gb3JtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48Qj5BY3Rpb25Gb3JtPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FuIDxzdHJvbmc+QWN0aW9uRm9ybTwvc3Ryb25nPiBpcyBhIEphdmFCZWFuIG9wdGlvbmFsbHkgYXNzb2NpYXRlZCB3aXRoCisgb25lIG9yIG1vcmUgPGNvZGU+QWN0aW9uTWFwcGluZ3M8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9BY3Rpb25NYXBwaW5nLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48Qj5BY3Rpb25NYXBwaW5nPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FuIDxzdHJvbmc+QWN0aW9uTWFwcGluZzwvc3Ryb25nPiByZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiB0aGF0IHRoZQorIGNvbnRyb2xsZXIgc2VydmxldCwgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4sIGtub3dzIGFib3V0IHRoZSBtYXBwaW5nCisgb2YgYSBwYXJ0aWN1bGFyIHJlcXVlc3QgdG8gYW4gaW5zdGFuY2Ugb2YgYSBwYXJ0aWN1bGFyIGFjdGlvbiBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvQWN0aW9uU2VydmxldC5odG1sI29yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciI+PEI+QWN0aW9uU2VydmxldDwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8c3Ryb25nPkFjdGlvblNlcnZsZXQ8L3N0cm9uZz4gcmVwcmVzZW50cyB0aGUgImNvbnRyb2xsZXIiIGluIHRoZQorIE1vZGVsLVZpZXctQ29udHJvbGxlciAoTVZDKSBkZXNpZ24gcGF0dGVybiBmb3Igd2ViIGFwcGxpY2F0aW9ucyB0aGF0IGlzCisgY29tbW9ubHkga25vd24gYXMgIk1vZGVsIDIiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL2NsYXNzLXVzZS9EeW5hQWN0aW9uRm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciI+PEI+RHluYUFjdGlvbkZvcm08L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U3BlY2lhbGl6ZWQgc3ViY2xhc3Mgb2YgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gdGhhdCBhbGxvd3MgdGhlIGNyZWF0aW9uCisgb2YgZm9ybSBiZWFucyB3aXRoIGR5bmFtaWMgc2V0cyBvZiBwcm9wZXJ0aWVzLCB3aXRob3V0IHJlcXVpcmluZyB0aGUKKyBkZXZlbG9wZXIgdG8gY3JlYXRlIGEgSmF2YSBjbGFzcyBmb3IgZWFjaCB0eXBlIG9mIGZvcm0gYmVhbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9jbGFzcy11c2UvUGx1Z0luLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48Qj5QbHVnSW48L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSA8c3Ryb25nPlBsdWdJbjwvc3Ryb25nPiBpcyBhIGNvbmZpZ3VyYXRpb24gd3JhcHBlciBmb3IgYQorIG1vZHVsZS1zcGVjaWZpYyByZXNvdXJjZSBvciBzZXJ2aWNlIHRoYXQgbmVlZHMgdG8gYmUgbm90aWZpZWQgYWJvdXQKKyBhcHBsaWNhdGlvbiBzdGFydHVwIGFuZCBhcHBsaWNhdGlvbiBzaHV0ZG93biBldmVudHMgKGNvcnJlc3BvbmRpbmcgdG8gd2hlbgorIHRoZSBjb250YWluZXIgY2FsbHMgPGNvZGU+aW5pdCgpPC9jb2RlPiBhbmQgPGNvZGU+ZGVzdHJveSgpPC9jb2RlPiBvbiB0aGUKKyBjb3JyZXNwb25kaW5nIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPjxDT0RFPkFjdGlvblNlcnZsZXQ8L0NPREU+PC9BPiBpbnN0YW5jZSkuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGNjN2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbApAQCAtMCwwICsxLDU1MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0Rpc3BhdGNoQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkRpc3BhdGNoQWN0aW9uLERpc3BhdGNoQWN0aW9uIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJEaXNwYXRjaEFjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EaXNwYXRjaEFjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRpc3BhdGNoQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9GT05UPgorPEJSPgorQ2xhc3MgRGlzcGF0Y2hBY3Rpb248L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb248L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5EaXNwYXRjaEFjdGlvbjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCI+TG9va3VwRGlzcGF0Y2hBY3Rpb248L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGFic3RyYWN0IGNsYXNzIDxCPkRpc3BhdGNoQWN0aW9uPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvREw+CisKKzxQPgorPHA+QW4gYWJzdHJhY3QgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBkaXNwYXRjaGVzIHRvIGEgcHVibGljCisgbWV0aG9kIHRoYXQgaXMgbmFtZWQgYnkgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHdob3NlIG5hbWUgaXMgc3BlY2lmaWVkCisgYnkgdGhlIDxjb2RlPnBhcmFtZXRlcjwvY29kZT4gcHJvcGVydHkgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyBBY3Rpb25NYXBwaW5nLiAgVGhpcyBBY3Rpb24gaXMgdXNlZnVsIGZvciBkZXZlbG9wZXJzIHdobyBwcmVmZXIgdG8KKyBjb21iaW5lIG1hbnkgc2ltaWxhciBhY3Rpb25zIGludG8gYSBzaW5nbGUgQWN0aW9uIGNsYXNzLCBpbiBvcmRlciB0bworIHNpbXBsaWZ5IHRoZWlyIGFwcGxpY2F0aW9uIGRlc2lnbi48L3A+CisKKyA8cD5UbyBjb25maWd1cmUgdGhlIHVzZSBvZiB0aGlzIGFjdGlvbiBpbiB5b3VyCisgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+IGZpbGUsIGNyZWF0ZSBhbiBlbnRyeSBsaWtlIHRoaXM6PC9wPgorCisgPGNvZGU+CisgICAmbHQ7YWN0aW9uIHBhdGg9Ii9zYXZlU3Vic2NyaXB0aW9uIgorICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkRpc3BhdGNoQWN0aW9uIgorICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb25Gb3JtIgorICAgICAgICAgIHNjb3BlPSJyZXF1ZXN0IgorICAgICAgICAgIGlucHV0PSIvc3Vic2NyaXB0aW9uLmpzcCIKKyAgICAgIHBhcmFtZXRlcj0ibWV0aG9kIi8mZ3Q7CisgPC9jb2RlPgorCisgPHA+d2hpY2ggd2lsbCB1c2UgdGhlIHZhbHVlIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciBuYW1lZCAibWV0aG9kIgorIHRvIHBpY2sgdGhlIGFwcHJvcHJpYXRlICJleGVjdXRlIiBtZXRob2QsIHdoaWNoIG11c3QgaGF2ZSB0aGUgc2FtZQorIHNpZ25hdHVyZSAob3RoZXIgdGhhbiBtZXRob2QgbmFtZSkgb2YgdGhlIHN0YW5kYXJkIEFjdGlvbi5leGVjdXRlCisgbWV0aG9kLiAgRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBoYXZlIHRoZSBmb2xsb3dpbmcgdGhyZWUgbWV0aG9kcyBpbiB0aGUKKyBzYW1lIGFjdGlvbjo8L3A+CisgPHVsPgorIDxsaT5wdWJsaWMgQWN0aW9uRm9yd2FyZCBkZWxldGUoQWN0aW9uTWFwcGluZyBtYXBwaW5nLCBBY3Rpb25Gb3JtIGZvcm0sCisgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKQorICAgICB0aHJvd3MgRXhjZXB0aW9uPC9saT4KKyA8bGk+cHVibGljIEFjdGlvbkZvcndhcmQgaW5zZXJ0KEFjdGlvbk1hcHBpbmcgbWFwcGluZywgQWN0aW9uRm9ybSBmb3JtLAorICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkKKyAgICAgdGhyb3dzIEV4Y2VwdGlvbjwvbGk+CisgPGxpPnB1YmxpYyBBY3Rpb25Gb3J3YXJkIHVwZGF0ZShBY3Rpb25NYXBwaW5nIG1hcHBpbmcsIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgIHRocm93cyBFeGNlcHRpb248L2xpPgorIDwvdWw+CisgPHA+YW5kIGNhbGwgb25lIG9mIHRoZSBtZXRob2RzIHdpdGggYSBVUkwgbGlrZSB0aGlzOjwvcD4KKyA8Y29kZT4KKyAgIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9teWFwcC9zYXZlU3Vic2NyaXB0aW9uLmRvP21ldGhvZD11cGRhdGUKKyA8L2NvZGU+CisKKyA8cD48c3Ryb25nPk5PVEU8L3N0cm9uZz4gLSBBbGwgb2YgdGhlIG90aGVyIG1hcHBpbmcgY2hhcmFjdGVyaXN0aWNzIG9mCisgdGhpcyBhY3Rpb24gbXVzdCBiZSBzaGFyZWQgYnkgdGhlIHZhcmlvdXMgaGFuZGxlcnMuICBUaGlzIHBsYWNlcyBzb21lCisgY29uc3RyYWludHMgb3ZlciB3aGF0IHR5cGVzIG9mIGhhbmRsZXJzIG1heSByZWFzb25hYmx5IGJlIHBhY2thZ2VkIGludG8KKyB0aGUgc2FtZSA8Y29kZT5EaXNwYXRjaEFjdGlvbjwvY29kZT4gc3ViY2xhc3MuPC9wPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+TmlhbGwgUGVtYmVydG9uIDxuaWFsbC5wZW1iZXJ0b25AYnRJbnRlcm5ldC5jb20+LCBDcmFpZyBSLiBNY0NsYW5haGFuLCBUZWQgSHVzdGVkPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuQ2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI2NsYXp6Ij5jbGF6ejwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgQ2xhc3MgaW5zdGFuY2Ugb2YgdGhpcyA8Y29kZT5EaXNwYXRjaEFjdGlvbjwvY29kZT4gY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI2xvZyI+bG9nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkhhc2hNYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI21ldGhvZHMiPm1ldGhvZHM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBNZXRob2Qgb2JqZWN0cyB3ZSBoYXZlIGludHJvc3BlY3RlZCBmb3IgdGhpcyBjbGFzcywKKyBrZXllZCBieSBtZXRob2QgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5DbGFzc1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCN0eXBlcyI+dHlwZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBhcmd1bWVudCB0eXBlIGNsYXNzZXMgZm9yIHRoZSByZWZsZWN0ZWQgbWV0aG9kIGNhbGwuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNBQ1RJT05fU0VSVkxFVF9LRVkiPkFDVElPTl9TRVJWTEVUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNBUFBMSUNBVElPTl9LRVkiPkFQUExJQ0FUSU9OX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNEQVRBX1NPVVJDRV9LRVkiPkRBVEFfU09VUkNFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VSUk9SX0tFWSI+RVJST1JfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VYQ0VQVElPTl9LRVkiPkVYQ0VQVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9STV9CRUFOU19LRVkiPkZPUk1fQkVBTlNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUldBUkRTX0tFWSI+Rk9SV0FSRFNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0xPQ0FMRV9LRVkiPkxPQ0FMRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR19LRVkiPk1BUFBJTkdfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdTX0tFWSI+TUFQUElOR1NfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01FU1NBR0VfS0VZIj5NRVNTQUdFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFU19LRVkiPk1FU1NBR0VTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNVUxUSVBBUlRfS0VZIj5NVUxUSVBBUlRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1BMVUdfSU5TX0tFWSI+UExVR19JTlNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1JFUVVFU1RfUFJPQ0VTU09SX0tFWSI+UkVRVUVTVF9QUk9DRVNTT1JfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjU0VSVkxFVF9LRVkiPlNFUlZMRVRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1RSQU5TQUNUSU9OX1RPS0VOX0tFWSI+VFJBTlNBQ1RJT05fVE9LRU5fS0VZPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCNEaXNwYXRjaEFjdGlvbigpIj5EaXNwYXRjaEFjdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjZGlzcGF0Y2hNZXRob2Qob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YS5sYW5nLlN0cmluZykiPmRpc3BhdGNoTWV0aG9kPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEaXNwYXRjaCB0byB0aGUgc3BlY2lmaWVkIG1ldGhvZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI2dldE1ldGhvZChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0TWV0aG9kPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbnRyb3NwZWN0IHRoZSBjdXJyZW50IGNsYXNzIHRvIGlkZW50aWZ5IGEgbWV0aG9kIG9mIHRoZSBzcGVjaWZpZWQKKyBuYW1lIHRoYXQgYWNjZXB0cyB0aGUgc2FtZSBwYXJhbWV0ZXIgdHlwZXMgYXMgdGhlIDxjb2RlPmV4ZWN1dGU8L2NvZGU+CisgbWV0aG9kIGRvZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjdW5zcGVjaWZpZWQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnVuc3BlY2lmaWVkPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TWV0aG9kIHdoaWNoIGlzIGRpc3BhdGNoZWQgdG8gd2hlbiB0aGVyZSBpcyBubyB2YWx1ZSBmb3Igc3BlY2lmaWVkCisgcmVxdWVzdCBwYXJhbWV0ZXIgaW5jbHVkZWQgaW4gdGhlIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2VuZXJhdGVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2VuZXJhdGVUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXREYXRhU291cmNlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXREYXRhU291cmNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldERhdGFTb3VyY2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPmdldERhdGFTb3VyY2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKCkiPmdldFJlc291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldFJlc291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPmdldFJlc291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRTZXJ2bGV0KCkiPmdldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNDYW5jZWxsZWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzQ2FuY2VsbGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzVG9rZW5WYWxpZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aXNUb2tlblZhbGlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzVG9rZW5WYWxpZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBib29sZWFuKSI+aXNUb2tlblZhbGlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNyZXNldFRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5yZXNldFRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVFcnJvcnMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycykiPnNhdmVFcnJvcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZU1lc3NhZ2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcykiPnNhdmVNZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnNhdmVUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS51dGlsLkxvY2FsZSkiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+c2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCN0b0hleChieXRlW10pIj50b0hleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjbGF6eiI+PCEtLSAtLT48L0E+PEgzPgorY2xheno8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuQ2xhc3MgPEI+Y2xheno8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIENsYXNzIGluc3RhbmNlIG9mIHRoaXMgPGNvZGU+RGlzcGF0Y2hBY3Rpb248L2NvZGU+IGNsYXNzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9nIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWV0aG9kcyI+PCEtLSAtLT48L0E+PEgzPgorbWV0aG9kczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5IYXNoTWFwIDxCPm1ldGhvZHM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBNZXRob2Qgb2JqZWN0cyB3ZSBoYXZlIGludHJvc3BlY3RlZCBmb3IgdGhpcyBjbGFzcywKKyBrZXllZCBieSBtZXRob2QgbmFtZS4gIFRoaXMgY29sbGVjdGlvbiBpcyBwb3B1bGF0ZWQgYXMgZGlmZmVyZW50CisgbWV0aG9kcyBhcmUgY2FsbGVkLCBzbyB0aGF0IGludHJvc3BlY3Rpb24gbmVlZHMgdG8gb2NjdXIgb25seQorIG9uY2UgcGVyIG1ldGhvZCBuYW1lLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idHlwZXMiPjwhLS0gLS0+PC9BPjxIMz4KK3R5cGVzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLkNsYXNzW10gPEI+dHlwZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBhcmd1bWVudCB0eXBlIGNsYXNzZXMgZm9yIHRoZSByZWZsZWN0ZWQgbWV0aG9kIGNhbGwuICBUaGVzZQorIGFyZSB0aGUgc2FtZSBmb3IgYWxsIGNhbGxzLCBzbyBjYWxjdWxhdGUgdGhlbSBvbmx5IG9uY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRGlzcGF0Y2hBY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorRGlzcGF0Y2hBY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5EaXNwYXRjaEFjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorZXhlY3V0ZTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPmV4ZWN1dGU8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKyBSZXR1cm4gYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2UgZGVzY3JpYmluZyB3aGVyZSBhbmQgaG93CisgY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgcmVzcG9uc2UgaGFzCisgYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZTxERD48Q09ERT5mb3JtPC9DT0RFPiAtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KTxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIEhUVFAgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InVuc3BlY2lmaWVkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+Cit1bnNwZWNpZmllZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPnVuc3BlY2lmaWVkPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+TWV0aG9kIHdoaWNoIGlzIGRpc3BhdGNoZWQgdG8gd2hlbiB0aGVyZSBpcyBubyB2YWx1ZSBmb3Igc3BlY2lmaWVkCisgcmVxdWVzdCBwYXJhbWV0ZXIgaW5jbHVkZWQgaW4gdGhlIHJlcXVlc3QuICBTdWJjbGFzc2VzIG9mCisgPGNvZGU+RGlzcGF0Y2hBY3Rpb248L2NvZGU+IHNob3VsZCBvdmVycmlkZSB0aGlzIG1ldGhvZCBpZiB0aGV5IHdpc2gKKyB0byBwcm92aWRlIGRlZmF1bHQgYmVoYXZpb3IgZGlmZmVyZW50IHRoYW4gcHJvZHVjaW5nIGFuIEhUVFAKKyAiQmFkIFJlcXVlc3QiIGVycm9yLgorPFA+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRpc3BhdGNoTWV0aG9kKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitkaXNwYXRjaE1ldGhvZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPmRpc3BhdGNoTWV0aG9kPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5EaXNwYXRjaCB0byB0aGUgc3BlY2lmaWVkIG1ldGhvZC4KKzxQPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEubGFuZy5FeGNlcHRpb248L0NPREU+PERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1ldGhvZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWV0aG9kPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kIDxCPmdldE1ldGhvZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+SW50cm9zcGVjdCB0aGUgY3VycmVudCBjbGFzcyB0byBpZGVudGlmeSBhIG1ldGhvZCBvZiB0aGUgc3BlY2lmaWVkCisgbmFtZSB0aGF0IGFjY2VwdHMgdGhlIHNhbWUgcGFyYW1ldGVyIHR5cGVzIGFzIHRoZSA8Y29kZT5leGVjdXRlPC9jb2RlPgorIG1ldGhvZCBkb2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIG1ldGhvZCB0byBiZSBpbnRyb3NwZWN0ZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5Ob1N1Y2hNZXRob2RFeGNlcHRpb248L0NPREU+IC0gaWYgbm8gc3VjaCBtZXRob2QgY2FuIGJlIGZvdW5kPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EaXNwYXRjaEFjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRpc3BhdGNoQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzZGM2ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Gb3J3YXJkQWN0aW9uLmh0bWwKQEAgLTAsMCArMSwzNDQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitGb3J3YXJkQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkZvcndhcmRBY3Rpb24sRm9yd2FyZEFjdGlvbiBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRm9yd2FyZEFjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Gb3J3YXJkQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcndhcmRBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBGb3J3YXJkQWN0aW9uPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuRm9yd2FyZEFjdGlvbjwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Gb3J3YXJkQWN0aW9uPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvREw+CisKKzxQPgorPHA+QW4gPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBmb3J3YXJkcyB0byB0aGUgY29udGV4dC1yZWxhdGl2ZQorIFVSSSBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPnBhcmFtZXRlcjwvY29kZT4gcHJvcGVydHkgb2Ygb3VyIGFzc29jaWF0ZWQKKyA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPi4gIFRoaXMgY2FuIGJlIHVzZWQgdG8gaW50ZWdyYXRlIFN0cnV0cyB3aXRoCisgb3RoZXIgYnVzaW5lc3MgbG9naWMgY29tcG9uZW50cyB0aGF0IGFyZSBpbXBsZW1lbnRlZCBhcyBzZXJ2bGV0cyAob3IgSlNQCisgcGFnZXMpLCBidXQgc3RpbGwgdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIFN0cnV0cyBjb250cm9sbGVyIHNlcnZsZXQncworIGZ1bmN0aW9uYWxpdHkgKHN1Y2ggYXMgcHJvY2Vzc2luZyBvZiBmb3JtIGJlYW5zKS48L3A+CisKKyA8cD5UbyBjb25maWd1cmUgdGhlIHVzZSBvZiB0aGlzIEFjdGlvbiBpbiB5b3VyCisgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+IGZpbGUsIGNyZWF0ZSBhbiBlbnRyeSBsaWtlIHRoaXM6PC9wPgorCisgPGNvZGU+CisgICAmbHQ7YWN0aW9uIHBhdGg9Ii9zYXZlU3Vic2NyaXB0aW9uIgorICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkZvcndhcmRBY3Rpb24iCisgICAgICAgICAgIG5hbWU9InN1YnNjcmlwdGlvbkZvcm0iCisgICAgICAgICAgc2NvcGU9InJlcXVlc3QiCisgICAgICAgICAgaW5wdXQ9Ii9zdWJzY3JpcHRpb24uanNwIgorICAgICAgcGFyYW1ldGVyPSIvcGF0aC90by9wcm9jZXNzaW5nL3NlcnZsZXQiLyZndDsKKyA8L2NvZGU+CisKKyA8cD53aGljaCB3aWxsIGZvcndhcmQgY29udHJvbCB0byB0aGUgY29udGV4dC1yZWxhdGl2ZSBVUkkgc3BlY2lmaWVkIGJ5IHRoZQorIDxjb2RlPnBhcmFtZXRlcjwvY29kZT4gYXR0cmlidXRlLjwvcD4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNBQ1RJT05fU0VSVkxFVF9LRVkiPkFDVElPTl9TRVJWTEVUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNBUFBMSUNBVElPTl9LRVkiPkFQUExJQ0FUSU9OX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNEQVRBX1NPVVJDRV9LRVkiPkRBVEFfU09VUkNFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VSUk9SX0tFWSI+RVJST1JfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VYQ0VQVElPTl9LRVkiPkVYQ0VQVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9STV9CRUFOU19LRVkiPkZPUk1fQkVBTlNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUldBUkRTX0tFWSI+Rk9SV0FSRFNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0xPQ0FMRV9LRVkiPkxPQ0FMRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR19LRVkiPk1BUFBJTkdfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdTX0tFWSI+TUFQUElOR1NfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01FU1NBR0VfS0VZIj5NRVNTQUdFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFU19LRVkiPk1FU1NBR0VTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNVUxUSVBBUlRfS0VZIj5NVUxUSVBBUlRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1BMVUdfSU5TX0tFWSI+UExVR19JTlNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1JFUVVFU1RfUFJPQ0VTU09SX0tFWSI+UkVRVUVTVF9QUk9DRVNTT1JfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjU0VSVkxFVF9LRVkiPlNFUlZMRVRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1RSQU5TQUNUSU9OX1RPS0VOX0tFWSI+VFJBTlNBQ1RJT05fVE9LRU5fS0VZPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sI0ZvcndhcmRBY3Rpb24oKSI+Rm9yd2FyZEFjdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2VuZXJhdGVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2VuZXJhdGVUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXREYXRhU291cmNlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXREYXRhU291cmNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldERhdGFTb3VyY2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPmdldERhdGFTb3VyY2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKCkiPmdldFJlc291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldFJlc291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPmdldFJlc291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRTZXJ2bGV0KCkiPmdldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNDYW5jZWxsZWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzQ2FuY2VsbGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzVG9rZW5WYWxpZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aXNUb2tlblZhbGlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzVG9rZW5WYWxpZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBib29sZWFuKSI+aXNUb2tlblZhbGlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNyZXNldFRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5yZXNldFRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVFcnJvcnMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycykiPnNhdmVFcnJvcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZU1lc3NhZ2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcykiPnNhdmVNZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnNhdmVUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS51dGlsLkxvY2FsZSkiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+c2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCN0b0hleChieXRlW10pIj50b0hleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkZvcndhcmRBY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorRm9yd2FyZEFjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkZvcndhcmRBY3Rpb248L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImV4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK2V4ZWN1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiA8Qj5leGVjdXRlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCisgUmV0dXJuIGFuIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIGRlc2NyaWJpbmcgd2hlcmUgYW5kIGhvdworIGNvbnRyb2wgc2hvdWxkIGJlIGZvcndhcmRlZCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlIHJlc3BvbnNlIGhhcworIGFscmVhZHkgYmVlbiBjb21wbGV0ZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+Zm9ybTwvQ09ERT4gLSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSk8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0ZvcndhcmRBY3Rpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRm9yd2FyZEFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGU5MWVhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sCkBAIC0wLDAgKzEsMzQ0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorSW5jbHVkZUFjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5JbmNsdWRlQWN0aW9uLEluY2x1ZGVBY3Rpb24gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkluY2x1ZGVBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvSW5jbHVkZUFjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbmNsdWRlQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9GT05UPgorPEJSPgorQ2xhc3MgSW5jbHVkZUFjdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbjwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkluY2x1ZGVBY3Rpb248L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+SW5jbHVkZUFjdGlvbjwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0RMPgorCis8UD4KKzxwPkFuIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgaW5jbHVkZXMgdGhlIGNvbnRleHQtcmVsYXRpdmUKKyBVUkkgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+IHByb3BlcnR5IG9mIG91ciBhc3NvY2lhdGVkCisgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4uICBUaGlzIGNhbiBiZSB1c2VkIHRvIGludGVncmF0ZSBTdHJ1dHMgd2l0aAorIG90aGVyIGJ1c2luZXNzIGxvZ2ljIGNvbXBvbmVudHMgdGhhdCBhcmUgaW1wbGVtZW50ZWQgYXMgc2VydmxldHMgKG9yIEpTUAorIHBhZ2VzKSwgYnV0IHN0aWxsIHRha2UgYWR2YW50YWdlIG9mIHRoZSBTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0J3MKKyBmdW5jdGlvbmFsaXR5IChzdWNoIGFzIHByb2Nlc3Npbmcgb2YgZm9ybSBiZWFucykuPC9wPgorCisgPHA+VG8gY29uZmlndXJlIHRoZSB1c2Ugb2YgdGhpcyBBY3Rpb24gaW4geW91cgorIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPiBmaWxlLCBjcmVhdGUgYW4gZW50cnkgbGlrZSB0aGlzOjwvcD4KKworIDxjb2RlPgorICAgJmx0O2FjdGlvbiBwYXRoPSIvc2F2ZVN1YnNjcmlwdGlvbiIKKyAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5JbmNsdWRlQWN0aW9uIgorICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb25Gb3JtIgorICAgICAgICAgIHNjb3BlPSJyZXF1ZXN0IgorICAgICAgICAgIGlucHV0PSIvc3Vic2NyaXB0aW9uLmpzcCIKKyAgICAgIHBhcmFtZXRlcj0iL3BhdGgvdG8vcHJvY2Vzc2luZy9zZXJ2bGV0IiZndDsKKyA8L2NvZGU+CisKKyA8cD53aGljaCB3aWxsIGluY2x1ZGUgdGhlIGNvbnRleHQtcmVsYXRpdmUgVVJJIHNwZWNpZmllZCBieSB0aGUKKyA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+IGF0dHJpYnV0ZS48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9JbmNsdWRlQWN0aW9uLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjQUNUSU9OX1NFUlZMRVRfS0VZIj5BQ1RJT05fU0VSVkxFVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjQVBQTElDQVRJT05fS0VZIj5BUFBMSUNBVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjREFUQV9TT1VSQ0VfS0VZIj5EQVRBX1NPVVJDRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFUlJPUl9LRVkiPkVSUk9SX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFWENFUFRJT05fS0VZIj5FWENFUFRJT05fS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUk1fQkVBTlNfS0VZIj5GT1JNX0JFQU5TX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JXQVJEU19LRVkiPkZPUldBUkRTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdfS0VZIj5NQVBQSU5HX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HU19LRVkiPk1BUFBJTkdTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFX0tFWSI+TUVTU0FHRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUVTU0FHRVNfS0VZIj5NRVNTQUdFU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTVVMVElQQVJUX0tFWSI+TVVMVElQQVJUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNQTFVHX0lOU19LRVkiPlBMVUdfSU5TX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNSRVFVRVNUX1BST0NFU1NPUl9LRVkiPlJFUVVFU1RfUFJPQ0VTU09SX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1NFUlZMRVRfS0VZIj5TRVJWTEVUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNUUkFOU0FDVElPTl9UT0tFTl9LRVkiPlRSQU5TQUNUSU9OX1RPS0VOX0tFWTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCNJbmNsdWRlQWN0aW9uKCkiPkluY2x1ZGVBY3Rpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dlbmVyYXRlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdlbmVyYXRlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0RGF0YVNvdXJjZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0RGF0YVNvdXJjZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXREYXRhU291cmNlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXREYXRhU291cmNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcygpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzQ2FuY2VsbGVkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc0NhbmNlbGxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzVG9rZW5WYWxpZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgYm9vbGVhbikiPmlzVG9rZW5WYWxpZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcmVzZXRUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVzZXRUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlRXJyb3JzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMpIj5zYXZlRXJyb3JzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVNZXNzYWdlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZXMpIj5zYXZlTWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5zYXZlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEudXRpbC5Mb2NhbGUpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjdG9IZXgoYnl0ZVtdKSI+dG9IZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJJbmNsdWRlQWN0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0luY2x1ZGVBY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5JbmNsdWRlQWN0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitleGVjdXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+ZXhlY3V0ZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorIFJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlIGFuZCBob3cKKyBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSByZXNwb25zZSBoYXMKKyBhbHJlYWR5IGJlZW4gY29tcGxldGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlPEREPjxDT0RFPmZvcm08L0NPREU+IC0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9JbmNsdWRlQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkluY2x1ZGVBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Mb29rdXBEaXNwYXRjaEFjdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjkxYjdlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbApAQCAtMCwwICsxLDQ3NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0xvb2t1cERpc3BhdGNoQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkxvb2t1cERpc3BhdGNoQWN0aW9uLExvb2t1cERpc3BhdGNoQWN0aW9uIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJMb29rdXBEaXNwYXRjaEFjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Mb29rdXBEaXNwYXRjaEFjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1N3aXRjaEFjdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBMb29rdXBEaXNwYXRjaEFjdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbjwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuRGlzcGF0Y2hBY3Rpb248L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5Mb29rdXBEaXNwYXRjaEFjdGlvbjwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBhYnN0cmFjdCBjbGFzcyA8Qj5Mb29rdXBEaXNwYXRjaEFjdGlvbjwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPkRpc3BhdGNoQWN0aW9uPC9BPjwvREw+CisKKzxQPgorPHA+CisKKyAgQW4gYWJzdHJhY3QgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBkaXNwYXRjaGVzIHRvIHRoZSBzdWJjbGFzcyBtYXBwZWQKKyAgPGNvZGU+ZXhlY3V0ZTwvY29kZT4gbWV0aG9kLiBUaGlzIGlzIHVzZWZ1bCBpbgorICBjYXNlcyB3aGVyZSBhbiBIVE1MIGZvcm0gaGFzIG11bHRpcGxlIHN1Ym1pdCBidXR0b25zIHdpdGggdGhlIHNhbWUgbmFtZS4gVGhlCisgIGJ1dHRvbiBuYW1lIGlzIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+cGFyYW1ldGVyPC9jb2RlPiBwcm9wZXJ0eSBvZiB0aGUKKyAgY29ycmVzcG9uZGluZyBBY3Rpb25NYXBwaW5nLiBUbyBjb25maWd1cmUgdGhlIHVzZSBvZiB0aGlzIGFjdGlvbiBpbiB5b3VyCisgIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPiBmaWxlLCBjcmVhdGUgYW4gZW50cnkgbGlrZSB0aGlzOjwvcD4gPHByZT4KKyAgICZsdDthY3Rpb24gcGF0aD0iL3Rlc3QiCisgICAgICAgICAgIHR5cGU9Im9yZy5leGFtcGxlLk15QWN0aW9uIgorICAgICAgICAgICBuYW1lPSJNeUZvcm0iCisgICAgICAgICAgc2NvcGU9InJlcXVlc3QiCisgICAgICAgICAgaW5wdXQ9Ii90ZXN0LmpzcCIKKyAgICAgIHBhcmFtZXRlcj0iYWN0aW9uIi8mZ3Q7CisgPC9wcmU+IDxwPgorCisgIHdoaWNoIHdpbGwgdXNlIHRoZSB2YWx1ZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZWQgImFjdGlvbiIgdG8gbG9jYXRlCisgIHRoZSBjb3JyZXNwb25kaW5nIGtleSBpbiBBcHBsaWNhdGlvblJlc291cmNlcy4gRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBoYXZlCisgIHRoZSBmb2xsb3dpbmcgQXBwbGljYXRpb25SZXNvdXJjZXMucHJvcGVydGllczo8L3A+IDxwcmU+CisgICAgYnV0dG9uLmFkZD1BZGQgUmVjb3JkCisgICAgYnV0dG9uLmRlbGV0ZT1EZWxldGUgUmVjb3JkCisgIDwvcHJlPjxwPgorCisgIEFuZCB5b3VyIEpTUCB3b3VsZCBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybWF0IGZvciBzdWJtaXQgYnV0dG9uczo8L3A+IDxwcmU+CisgICAmbHQ7aHRtbDpmb3JtIGFjdGlvbj0iL3Rlc3QiJmd0OworICAgICZsdDtodG1sOnN1Ym1pdCBwcm9wZXJ0eT0iYWN0aW9uIiZndDsKKyAgICAgICZsdDtiZWFuOm1lc3NhZ2Uga2V5PSJidXR0b24uYWRkIi8mZ3Q7CisgICAgJmx0Oy9odG1sOnN1Ym1pdCZndDsKKyAgICAmbHQ7aHRtbDpzdWJtaXQgcHJvcGVydHk9ImFjdGlvbiImZ3Q7CisgICAgICAmbHQ7YmVhbjptZXNzYWdlIGtleT0iYnV0dG9uLmRlbGV0ZSIvJmd0OworICAgICZsdDsvaHRtbDpzdWJtaXQmZ3Q7CisgICZsdDsvaHRtbDpmb3JtJmd0OworICA8L3ByZT4gPHA+CisKKyAgWW91ciBzdWJjbGFzcyBtdXN0IGltcGxlbWVudCBib3RoIGdldEtleU1ldGhvZE1hcCBhbmQgdGhlCisgIG1ldGhvZHMgZGVmaW5lZCBpbiB0aGUgbWFwLiBBbiBleGFtcGxlIG9mIHN1Y2ggaW1wbGVtZW50YXRpb25zIGFyZTo8L3A+CisgPHByZT4KKyAgcHJvdGVjdGVkIE1hcCBnZXRLZXlNZXRob2RNYXAoKSB7CisgICAgICBNYXAgbWFwID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgIG1hcC5wdXQoImJ1dHRvbi5hZGQiLCAiYWRkIik7CisgICAgICBtYXAucHV0KCJidXR0b24uZGVsZXRlIiwgImRlbGV0ZSIpOworICAgICAgcmV0dXJuIG1hcDsKKyAgfQorCisgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkIGFkZChBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uLCBTZXJ2bGV0RXhjZXB0aW9uIHsKKyAgICAgIC8vIGRvIGFkZAorICAgICAgcmV0dXJuIG1hcHBpbmcuZmluZEZvcndhcmQoInN1Y2Nlc3MiKTsKKyAgfQorCisgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkIGRlbGV0ZShBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uLCBTZXJ2bGV0RXhjZXB0aW9uIHsKKyAgICAgIC8vIGRvIGRlbGV0ZQorICAgICAgcmV0dXJuIG1hcHBpbmcuZmluZEZvcndhcmQoInN1Y2Nlc3MiKTsKKyAgfQorICA8cD4KKworICA8c3Ryb25nPk5vdGVzPC9zdHJvbmc+IC0gSWYgZHVwbGljYXRlIHZhbHVlcyBleGlzdCBmb3IgdGhlIGtleXMgcmV0dXJuZWQgYnkKKyAgZ2V0S2V5cywgb25seSB0aGUgZmlyc3Qgb25lIGZvdW5kIHdpbGwgYmUgcmV0dXJuZWQuIElmIG5vIGNvcnJlc3BvbmRpbmcga2V5CisgIGlzIGZvdW5kIHRoZW4gYW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkVyaWsgSGF0Y2hlciwgU2NvdHQgQ2FybHNvbiwgRGF2aWQgR3JhaGFtPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCNrZXlNZXRob2RNYXAiPmtleU1ldGhvZE1hcDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNvdXJjZSBrZXkgdG8gbWV0aG9kIG5hbWUgbG9va3VwLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLk1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwjbG9jYWxlTWFwIj5sb2NhbGVNYXA8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV2ZXJzZSBsb29rdXAgbWFwIGZyb20gcmVzb3VyY2UgdmFsdWUgdG8gcmVzb3VyY2Uga2V5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkRpc3BhdGNoQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj5EaXNwYXRjaEFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwjY2xhenoiPmNsYXp6PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI2xvZyI+bG9nPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCNtZXRob2RzIj5tZXRob2RzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI3R5cGVzIj50eXBlczwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNBQ1RJT05fU0VSVkxFVF9LRVkiPkFDVElPTl9TRVJWTEVUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNBUFBMSUNBVElPTl9LRVkiPkFQUExJQ0FUSU9OX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNEQVRBX1NPVVJDRV9LRVkiPkRBVEFfU09VUkNFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VSUk9SX0tFWSI+RVJST1JfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VYQ0VQVElPTl9LRVkiPkVYQ0VQVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9STV9CRUFOU19LRVkiPkZPUk1fQkVBTlNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUldBUkRTX0tFWSI+Rk9SV0FSRFNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0xPQ0FMRV9LRVkiPkxPQ0FMRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR19LRVkiPk1BUFBJTkdfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdTX0tFWSI+TUFQUElOR1NfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01FU1NBR0VfS0VZIj5NRVNTQUdFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFU19LRVkiPk1FU1NBR0VTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNVUxUSVBBUlRfS0VZIj5NVUxUSVBBUlRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1BMVUdfSU5TX0tFWSI+UExVR19JTlNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1JFUVVFU1RfUFJPQ0VTU09SX0tFWSI+UkVRVUVTVF9QUk9DRVNTT1JfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjU0VSVkxFVF9LRVkiPlNFUlZMRVRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1RSQU5TQUNUSU9OX1RPS0VOX0tFWSI+VFJBTlNBQ1RJT05fVE9LRU5fS0VZPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCNMb29rdXBEaXNwYXRjaEFjdGlvbigpIj5Mb29rdXBEaXNwYXRjaEFjdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIGFic3RyYWN0ICZuYnNwO2phdmEudXRpbC5NYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Mb29rdXBEaXNwYXRjaEFjdGlvbi5odG1sI2dldEtleU1ldGhvZE1hcCgpIj5nZXRLZXlNZXRob2RNYXA8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm92aWRlcyB0aGUgbWFwcGluZyBmcm9tIHJlc291cmNlIGtleSB0byBtZXRob2QgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCNpbml0TG9va3VwTWFwKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEudXRpbC5Mb2NhbGUpIj5pbml0TG9va3VwTWFwPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgIGphdmEudXRpbC5Mb2NhbGUmbmJzcDt1c2VyTG9jYWxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyB0aGUgZmlyc3QgdGltZSB0aGlzIExvY2FsZSBpcyB1c2VkIHNvIGJ1aWxkIHRoZSByZXZlcnNlIGxvb2t1cCBNYXAuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkRpc3BhdGNoQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCI+RGlzcGF0Y2hBY3Rpb248L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI2Rpc3BhdGNoTWV0aG9kKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmEubGFuZy5TdHJpbmcpIj5kaXNwYXRjaE1ldGhvZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCNnZXRNZXRob2QoamF2YS5sYW5nLlN0cmluZykiPmdldE1ldGhvZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCN1bnNwZWNpZmllZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+dW5zcGVjaWZpZWQ8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dlbmVyYXRlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdlbmVyYXRlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0RGF0YVNvdXJjZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0RGF0YVNvdXJjZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXREYXRhU291cmNlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXREYXRhU291cmNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcygpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzQ2FuY2VsbGVkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc0NhbmNlbGxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzVG9rZW5WYWxpZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgYm9vbGVhbikiPmlzVG9rZW5WYWxpZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcmVzZXRUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVzZXRUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlRXJyb3JzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMpIj5zYXZlRXJyb3JzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVNZXNzYWdlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZXMpIj5zYXZlTWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5zYXZlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEudXRpbC5Mb2NhbGUpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjdG9IZXgoYnl0ZVtdKSI+dG9IZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibG9jYWxlTWFwIj48IS0tIC0tPjwvQT48SDM+Citsb2NhbGVNYXA8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuTWFwIDxCPmxvY2FsZU1hcDwvQj48L1BSRT4KKzxETD4KKzxERD5SZXZlcnNlIGxvb2t1cCBtYXAgZnJvbSByZXNvdXJjZSB2YWx1ZSB0byByZXNvdXJjZSBrZXkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJrZXlNZXRob2RNYXAiPjwhLS0gLS0+PC9BPjxIMz4KK2tleU1ldGhvZE1hcDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5NYXAgPEI+a2V5TWV0aG9kTWFwPC9CPjwvUFJFPgorPERMPgorPEREPlJlc291cmNlIGtleSB0byBtZXRob2QgbmFtZSBsb29rdXAuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTG9va3VwRGlzcGF0Y2hBY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorTG9va3VwRGlzcGF0Y2hBY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Mb29rdXBEaXNwYXRjaEFjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorZXhlY3V0ZTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPmV4ZWN1dGU8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorICByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCisgIFJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlIGFuZCBob3cKKyAgY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgcmVzcG9uc2UgaGFzCisgIGFscmVhZHkgYmVlbiBjb21wbGV0ZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPkRpc3BhdGNoQWN0aW9uPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZTxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIEhUVFAgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nPEREPjxDT0RFPmZvcm08L0NPREU+IC0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkRlc2NyaWJlcyB3aGVyZSBhbmQgaG93IGNvbnRyb2wgc2hvdWxkIGJlIGZvcndhcmRlZC4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0TG9va3VwTWFwKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEudXRpbC5Mb2NhbGUpIj48IS0tIC0tPjwvQT48SDM+Citpbml0TG9va3VwTWFwPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEudXRpbC5NYXAgPEI+aW5pdExvb2t1cE1hcDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTG9jYWxlJm5ic3A7dXNlckxvY2FsZSk8L1BSRT4KKzxETD4KKzxERD5UaGlzIGlzIHRoZSBmaXJzdCB0aW1lIHRoaXMgTG9jYWxlIGlzIHVzZWQgc28gYnVpbGQgdGhlIHJldmVyc2UgbG9va3VwIE1hcC4KKyBTZWFyY2ggZm9yIG1lc3NhZ2Uga2V5cyBpbiBhbGwgY29uZmlndXJlZCBNZXNzYWdlUmVzb3VyY2VzIGZvcgorIHRoZSBjdXJyZW50IG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0S2V5TWV0aG9kTWFwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEtleU1ldGhvZE1hcDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGFic3RyYWN0IGphdmEudXRpbC5NYXAgPEI+Z2V0S2V5TWV0aG9kTWFwPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UHJvdmlkZXMgdGhlIG1hcHBpbmcgZnJvbSByZXNvdXJjZSBrZXkgdG8gbWV0aG9kIG5hbWUuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+UmVzb3VyY2Uga2V5IC8gbWV0aG9kIG5hbWUgbWFwLjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9JbmNsdWRlQWN0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Td2l0Y2hBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikxvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvU3dpdGNoQWN0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Td2l0Y2hBY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWMzNmY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvU3dpdGNoQWN0aW9uLmh0bWwKQEAgLTAsMCArMSwzNjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitTd2l0Y2hBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuU3dpdGNoQWN0aW9uLFN3aXRjaEFjdGlvbiBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iU3dpdGNoQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1N3aXRjaEFjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTd2l0Y2hBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBTd2l0Y2hBY3Rpb248L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb248L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5Td2l0Y2hBY3Rpb248L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+U3dpdGNoQWN0aW9uPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvREw+CisKKzxQPgorPHA+QSBzdGFuZGFyZCA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IHN3aXRjaGVzIHRvIGEgbmV3IG1vZHVsZQorIGFuZCB0aGVuIGZvcndhcmRzIGNvbnRyb2wgdG8gYSBVUkkgKHNwZWNpZmllZCBpbiBhIG51bWJlciBvZiBwb3NzaWJsZSB3YXlzKQorIHdpdGhpbiB0aGUgbmV3IG1vZHVsZS48L3A+CisKKyA8cD5WYWxpZCByZXF1ZXN0IHBhcmFtZXRlcnMgZm9yIHRoaXMgQWN0aW9uIGFyZTo8L3A+CisgPHVsPgorIDxsaT48c3Ryb25nPnBhZ2U8L3N0cm9uZz4gLSBNb2R1bGUtcmVsYXRpdmUgVVJJIChiZWdpbm5pbmcgd2l0aCAiLyIpCisgICAgIHRvIHdoaWNoIGNvbnRyb2wgc2hvdWxkIGJlIGZvcndhcmRlZCBhZnRlciBzd2l0Y2hpbmcuPC9saT4KKyA8bGk+PHN0cm9uZz5wcmVmaXg8L3N0cm9uZz4gLSBUaGUgbW9kdWxlIHByZWZpeCAoYmVnaW5uaW5nIHdpdGggIi8iKQorICAgICBvZiB0aGUgbW9kdWxlIHRvIHdoaWNoIGNvbnRyb2wgc2hvdWxkIGJlIHN3aXRjaGVkLiAgVXNlIGEKKyAgICAgemVyby1sZW5ndGggc3RyaW5nIGZvciB0aGUgZGVmYXVsdCBtb2R1bGUuICBUaGUKKyAgICAgYXBwcm9wcmlhdGUgPGNvZGU+TW9kdWxlQ29uZmlnPC9jb2RlPiBvYmplY3Qgd2lsbCBiZSBzdG9yZWQgYXMgYQorICAgICByZXF1ZXN0IGF0dHJpYnV0ZSwgc28gYW55IHN1YnNlcXVlbnQgbG9naWMgd2lsbCBhc3N1bWUgdGhlIG5ldworICAgICBtb2R1bGUuPC9saT4KKyA8L3VsPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Td2l0Y2hBY3Rpb24uaHRtbCNsb2ciPmxvZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Td2l0Y2hBY3Rpb24uaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNBQ1RJT05fU0VSVkxFVF9LRVkiPkFDVElPTl9TRVJWTEVUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNBUFBMSUNBVElPTl9LRVkiPkFQUExJQ0FUSU9OX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNEQVRBX1NPVVJDRV9LRVkiPkRBVEFfU09VUkNFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VSUk9SX0tFWSI+RVJST1JfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0VYQ0VQVElPTl9LRVkiPkVYQ0VQVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9STV9CRUFOU19LRVkiPkZPUk1fQkVBTlNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUldBUkRTX0tFWSI+Rk9SV0FSRFNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0xPQ0FMRV9LRVkiPkxPQ0FMRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR19LRVkiPk1BUFBJTkdfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdTX0tFWSI+TUFQUElOR1NfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01FU1NBR0VfS0VZIj5NRVNTQUdFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFU19LRVkiPk1FU1NBR0VTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNVUxUSVBBUlRfS0VZIj5NVUxUSVBBUlRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1BMVUdfSU5TX0tFWSI+UExVR19JTlNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1JFUVVFU1RfUFJPQ0VTU09SX0tFWSI+UkVRVUVTVF9QUk9DRVNTT1JfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjU0VSVkxFVF9LRVkiPlNFUlZMRVRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1RSQU5TQUNUSU9OX1RPS0VOX0tFWSI+VFJBTlNBQ1RJT05fVE9LRU5fS0VZPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvU3dpdGNoQWN0aW9uLmh0bWwjU3dpdGNoQWN0aW9uKCkiPlN3aXRjaEFjdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvU3dpdGNoQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwKKyB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dlbmVyYXRlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdlbmVyYXRlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0RGF0YVNvdXJjZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0RGF0YVNvdXJjZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXREYXRhU291cmNlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXREYXRhU291cmNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcygpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzQ2FuY2VsbGVkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc0NhbmNlbGxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzVG9rZW5WYWxpZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgYm9vbGVhbikiPmlzVG9rZW5WYWxpZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcmVzZXRUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVzZXRUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlRXJyb3JzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMpIj5zYXZlRXJyb3JzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVNZXNzYWdlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZXMpIj5zYXZlTWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5zYXZlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEudXRpbC5Mb2NhbGUpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjdG9IZXgoYnl0ZVtdKSI+dG9IZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibG9nIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlN3aXRjaEFjdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitTd2l0Y2hBY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Td2l0Y2hBY3Rpb248L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImV4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK2V4ZWN1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiA8Qj5leGVjdXRlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCksCisgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHRoZSBidXNpbmVzcyBsb2dpYy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZTxERD48Q09ERT5mb3JtPC9DT0RFPiAtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KTxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIEhUVFAgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBhcHBsaWNhdGlvbiBidXNpbmVzcyBsb2dpYyB0aHJvd3MKKyAgYW4gZXhjZXB0aW9uPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Td2l0Y2hBY3Rpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Mb29rdXBEaXNwYXRjaEFjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU3dpdGNoQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvY2xhc3MtdXNlL0Rpc3BhdGNoQWN0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9jbGFzcy11c2UvRGlzcGF0Y2hBY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzcyYmU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvY2xhc3MtdXNlL0Rpc3BhdGNoQWN0aW9uLmh0bWwKQEAgLTAsMCArMSwxNjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuRGlzcGF0Y2hBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5EaXNwYXRjaEFjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEaXNwYXRjaEFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuRGlzcGF0Y2hBY3Rpb248L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPkRpc3BhdGNoQWN0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9CPjwvQT48L1REPgorPFREPiBUaGUgYWN0aW9ucyBwYWNrYWdlIHByb3ZpZGVzIHNwZWNpYWwgYWRhcHRlcnMgYmV0d2VlbiB0aGUgaW5jb21pbmcgIEhUVFAKKyByZXF1ZXN0IGFuZCB0aGUgY29ycmVzcG9uZGluZyBidXNpbmVzcyBsb2dpYy4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCI+RGlzcGF0Y2hBY3Rpb248L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj5EaXNwYXRjaEFjdGlvbjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCI+TG9va3VwRGlzcGF0Y2hBY3Rpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7CisKKyAgQW4gYWJzdHJhY3QgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBkaXNwYXRjaGVzIHRvIHRoZSBzdWJjbGFzcyBtYXBwZWQKKyAgPGNvZGU+ZXhlY3V0ZTwvY29kZT4gbWV0aG9kLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0Rpc3BhdGNoQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRpc3BhdGNoQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL2NsYXNzLXVzZS9Gb3J3YXJkQWN0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9jbGFzcy11c2UvRm9yd2FyZEFjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwZWM2M2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9jbGFzcy11c2UvRm9yd2FyZEFjdGlvbi5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkZvcndhcmRBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5Gb3J3YXJkQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRm9yd2FyZEFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuRm9yd2FyZEFjdGlvbjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkZvcndhcmRBY3Rpb24KKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Gb3J3YXJkQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcndhcmRBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvY2xhc3MtdXNlL0luY2x1ZGVBY3Rpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL2NsYXNzLXVzZS9JbmNsdWRlQWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjczMmMwMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL2NsYXNzLXVzZS9JbmNsdWRlQWN0aW9uLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuSW5jbHVkZUFjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkluY2x1ZGVBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbmNsdWRlQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5JbmNsdWRlQWN0aW9uPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuSW5jbHVkZUFjdGlvbgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW5jbHVkZUFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9jbGFzcy11c2UvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL2NsYXNzLXVzZS9Mb29rdXBEaXNwYXRjaEFjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0MzAxZTgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9jbGFzcy11c2UvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5Mb29rdXBEaXNwYXRjaEFjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkxvb2t1cERpc3BhdGNoQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikxvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5Mb29rdXBEaXNwYXRjaEFjdGlvbjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkxvb2t1cERpc3BhdGNoQWN0aW9uCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvY2xhc3MtdXNlL1N3aXRjaEFjdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvY2xhc3MtdXNlL1N3aXRjaEFjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0MzhhMzUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9jbGFzcy11c2UvU3dpdGNoQWN0aW9uLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuU3dpdGNoQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuU3dpdGNoQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1N3aXRjaEFjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTd2l0Y2hBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLlN3aXRjaEFjdGlvbjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLlN3aXRjaEFjdGlvbgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1N3aXRjaEFjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTd2l0Y2hBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvZG9jLWZpbGVzL2FjdGlvbnNVTUwuZ2lmIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvZG9jLWZpbGVzL2FjdGlvbnNVTUwuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhMzA1ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9kb2MtZmlsZXMvYWN0aW9uc1VNTC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmZDhkMDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1MiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0E+PC9GT05UPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorQ2xhc3NlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9IkRpc3BhdGNoQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGlzcGF0Y2hBY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJGb3J3YXJkQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Rm9yd2FyZEFjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9IkluY2x1ZGVBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JbmNsdWRlQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0iTG9va3VwRGlzcGF0Y2hBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Mb29rdXBEaXNwYXRjaEFjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9IlN3aXRjaEFjdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlN3aXRjaEFjdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2JiMWU1NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sCkBAIC0wLDAgKzEsMjA0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjUyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucyBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMKKzwvSDI+CisgVGhlIGFjdGlvbnMgcGFja2FnZSBwcm92aWRlcyBzcGVjaWFsIGFkYXB0ZXJzIGJldHdlZW4gdGhlIGluY29taW5nICBIVFRQCisgcmVxdWVzdCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYnVzaW5lc3MgbG9naWMuCis8UD4KKzxCPlNlZTo8L0I+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8QSBIUkVGPSIjcGFja2FnZV9kZXNjcmlwdGlvbiI+PEI+RGVzY3JpcHRpb248L0I+PC9BPgorPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRGlzcGF0Y2hBY3Rpb24uaHRtbCI+RGlzcGF0Y2hBY3Rpb248L0E+PC9CPjwvVEQ+Cis8VEQ+QW4gYWJzdHJhY3QgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBkaXNwYXRjaGVzIHRvIGEgcHVibGljCisgbWV0aG9kIHRoYXQgaXMgbmFtZWQgYnkgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHdob3NlIG5hbWUgaXMgc3BlY2lmaWVkCisgYnkgdGhlIDxjb2RlPnBhcmFtZXRlcjwvY29kZT4gcHJvcGVydHkgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyBBY3Rpb25NYXBwaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRm9yd2FyZEFjdGlvbi5odG1sIj5Gb3J3YXJkQWN0aW9uPC9BPjwvQj48L1REPgorPFREPkFuIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgZm9yd2FyZHMgdG8gdGhlIGNvbnRleHQtcmVsYXRpdmUKKyBVUkkgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+IHByb3BlcnR5IG9mIG91ciBhc3NvY2lhdGVkCisgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJJbmNsdWRlQWN0aW9uLmh0bWwiPkluY2x1ZGVBY3Rpb248L0E+PC9CPjwvVEQ+Cis8VEQ+QW4gPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBpbmNsdWRlcyB0aGUgY29udGV4dC1yZWxhdGl2ZQorIFVSSSBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPnBhcmFtZXRlcjwvY29kZT4gcHJvcGVydHkgb2Ygb3VyIGFzc29jaWF0ZWQKKyA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ikxvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiPkxvb2t1cERpc3BhdGNoQWN0aW9uPC9BPjwvQj48L1REPgorPFREPgorCisgIEFuIGFic3RyYWN0IDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgZGlzcGF0Y2hlcyB0byB0aGUgc3ViY2xhc3MgbWFwcGVkCisgIDxjb2RlPmV4ZWN1dGU8L2NvZGU+IG1ldGhvZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlN3aXRjaEFjdGlvbi5odG1sIj5Td2l0Y2hBY3Rpb248L0E+PC9CPjwvVEQ+Cis8VEQ+QSBzdGFuZGFyZCA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IHN3aXRjaGVzIHRvIGEgbmV3IG1vZHVsZQorIGFuZCB0aGVuIGZvcndhcmRzIGNvbnRyb2wgdG8gYSBVUkkgKHNwZWNpZmllZCBpbiBhIG51bWJlciBvZiBwb3NzaWJsZSB3YXlzKQorIHdpdGhpbiB0aGUgbmV3IG1vZHVsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+Cis8QSBOQU1FPSJwYWNrYWdlX2Rlc2NyaXB0aW9uIj48IS0tIC0tPjwvQT48SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMgRGVzY3JpcHRpb24KKzwvSDI+CisKKzxQPgorPHA+IFRoZSBhY3Rpb25zIHBhY2thZ2UgcHJvdmlkZXMgc3BlY2lhbCBhZGFwdGVycyBiZXR3ZWVuIHRoZSBpbmNvbWluZyAgSFRUUAorIHJlcXVlc3QgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGJ1c2luZXNzIGxvZ2ljLjwvcD4KKyA8YnI+CisgPGJyPgorIDxpbWcgc3JjPSJkb2MtZmlsZXMvYWN0aW9uc1VNTC5naWYiIGFsdD0iQWN0aW9uIFBhY2thZ2UgVU1MIiA+CisgPGJyPgorIAorPGgyPlBhY2thZ2UgU3BlY2lmaWNhdGlvbjwvaDI+CisgICAgICAjIyMjIyBGSUxMIElOIEFOWSBTUEVDUyBORUVERUQgQlkgSkFWQSBDT01QQVRJQklMSVRZIEtJVCAjIyMjIyAgICAgCis8dWw+CisgICA8bGk+PGEgaHJlZj0iIj4jIyMjIyBSRUZFUiBUTyBBTlkgRlJBTUVNQUtFUiBTUEVDSUZJQ0FUSU9OIEhFUkUgIyMjIyM8L2E+CisgICA8L2xpPgorIAorPC91bD4KKyAKKzxoMj5SZWxhdGVkIERvY3VtZW50YXRpb248L2gyPgorICAgICAgRm9yIG92ZXJ2aWV3cywgdHV0b3JpYWxzLCBleGFtcGxlcywgZ3VpZGVzLCBhbmQgdG9vbCBkb2N1bWVudGF0aW9uLCAKK3BsZWFzZSAgc2VlOiAgICAgCis8dWw+CisgICA8bGk+PGEgaHJlZj0iIj4jIyMjIyBSRUZFUiBUTyBOT04tU1BFQyBET0NVTUVOVEFUSU9OIEhFUkUgIyMjIyM8L2E+CisgICA8L2xpPgorIAorPC91bD4KKyA8IS0tIFB1dCBAc2VlIGFuZCBAc2luY2UgdGFncyBkb3duIGhlcmUuIC0tPgorPFA+CisKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2UtdHJlZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjA5MmQ1ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTM4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjUyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucyBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+UFJFVjwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorSGllcmFyY2h5IEZvciBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMKKzwvSDI+Cis8L0NFTlRFUj4KKzxETD4KKzxEVD48Qj5QYWNrYWdlIEhpZXJhcmNoaWVzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctdHJlZS5odG1sIj5BbGwgUGFja2FnZXM8L0E+PC9ETD4KKzxIUj4KKzxIMj4KK0NsYXNzIEhpZXJhcmNoeQorPC9IMj4KKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEubGFuZy5PYmplY3Q8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj48Qj5BY3Rpb248L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sIj48Qj5EaXNwYXRjaEFjdGlvbjwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0xvb2t1cERpc3BhdGNoQWN0aW9uLmh0bWwiPjxCPkxvb2t1cERpc3BhdGNoQWN0aW9uPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0ZvcndhcmRBY3Rpb24uaHRtbCI+PEI+Rm9yd2FyZEFjdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL0luY2x1ZGVBY3Rpb24uaHRtbCI+PEI+SW5jbHVkZUFjdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1N3aXRjaEFjdGlvbi5odG1sIj48Qj5Td2l0Y2hBY3Rpb248L0I+PC9BPjwvVUw+Cis8L1VMPgorPC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLXVzZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS11c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTY4NzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS11c2UuaHRtbApAQCAtMCwwICsxLDE1NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgUGFja2FnZTxicj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvQj48L0E+PC9URD4KKzxURD4gVGhlIGFjdGlvbnMgcGFja2FnZSBwcm92aWRlcyBzcGVjaWFsIGFkYXB0ZXJzIGJldHdlZW4gdGhlIGluY29taW5nICBIVFRQCisgcmVxdWVzdCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgYnVzaW5lc3MgbG9naWMuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9jbGFzcy11c2UvRGlzcGF0Y2hBY3Rpb24uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zIj48Qj5EaXNwYXRjaEFjdGlvbjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiBhYnN0cmFjdCA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGRpc3BhdGNoZXMgdG8gYSBwdWJsaWMKKyBtZXRob2QgdGhhdCBpcyBuYW1lZCBieSB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgd2hvc2UgbmFtZSBpcyBzcGVjaWZpZWQKKyBieSB0aGUgPGNvZGU+cGFyYW1ldGVyPC9jb2RlPiBwcm9wZXJ0eSBvZiB0aGUgY29ycmVzcG9uZGluZworIEFjdGlvbk1hcHBpbmcuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY2xhc3MtdXNlL0dsb2JhbHMuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jbGFzcy11c2UvR2xvYmFscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5NTBmNjUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY2xhc3MtdXNlL0dsb2JhbHMuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikdsb2JhbHMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHMKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvR2xvYmFscy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJHbG9iYWxzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmMmMxYjMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sCkBAIC0wLDAgKzEsMTg2NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0FjdGlvbkNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZyxBY3Rpb25Db25maWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkFjdGlvbkNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb25Db25maWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbk1hcHBpbmdGYWN0b3J5Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25Db25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvRk9OVD4KKzxCUj4KK0NsYXNzIEFjdGlvbkNvbmZpZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkFjdGlvbkNvbmZpZzwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KKzxwPkEgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGFuCisgPGNvZGU+Jmx0O2FjdGlvbiZndDs8L2NvZGU+IGVsZW1lbnQgZnJvbSBhIFN0cnV0cworIG1vZHVsZSBjb25maWd1cmF0aW9uIGZpbGUuPC9wPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlcXVlc3Qtc2NvcGUgb3Igc2Vzc2lvbi1zY29wZSBhdHRyaWJ1dGUgbmFtZSB1bmRlciB3aGljaCBvdXIKKyBmb3JtIGJlYW4gaXMgYWNjZXNzZWQsIGlmIGl0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBmb3JtIGJlYW4ncworIHNwZWNpZmllZCA8Y29kZT5uYW1lPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2NvbmZpZ3VyZWQiPmNvbmZpZ3VyZWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5kaWNhdGVzIGlmIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBjb21wb25lbnQgYmVlbiBjb21wbGV0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZXhjZXB0aW9ucyI+ZXhjZXB0aW9uczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2V0IG9mIGV4Y2VwdGlvbiBoYW5kbGluZyBjb25maWd1cmF0aW9ucyBmb3IgdGhpcworIGFjdGlvbiwgaWYgYW55LCBrZXllZCBieSB0aGUgPGNvZGU+dHlwZTwvY29kZT4gcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNmb3J3YXJkIj5mb3J3YXJkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIHRoYXQgd2lsbCBwcm9jZXNzCisgdGhpcyByZXF1ZXN0IHZpYSBSZXF1ZXN0RGlzcGF0Y2hlci5mb3J3YXJkKCksIGluc3RlYWQgb2YgaW5zdGFudGlhdGluZworIGFuZCBjYWxsaW5nIHRoZSA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzIHNwZWNpZmllZCBieSAidHlwZSIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZm9yd2FyZHMiPmZvcndhcmRzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXQgb2YgbG9jYWwgZm9yd2FyZCBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBhY3Rpb24sIGlmIGFueSwKKyBrZXllZCBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNpbmNsdWRlIj5pbmNsdWRlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIHRoYXQgd2lsbCBwcm9jZXNzCisgdGhpcyByZXF1ZXN0IHZpYSBSZXF1ZXN0RGlzcGF0Y2hlci5pbmNsdWRlKCksIGluc3RlYWQgb2YgaW5zdGFudGlhdGluZworIGFuZCBjYWxsaW5nIHRoZSA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzIHNwZWNpZmllZCBieSAidHlwZSIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNpbnB1dCI+aW5wdXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udGV4dC1yZWxhdGl2ZSBwYXRoIG9mIHRoZSBpbnB1dCBmb3JtIHRvIHdoaWNoIGNvbnRyb2wgc2hvdWxkIGJlCisgcmV0dXJuZWQgaWYgYSB2YWxpZGF0aW9uIGVycm9yIGlzIGVuY291bnRlcmVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNtb2R1bGVDb25maWciPm1vZHVsZUNvbmZpZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gd2l0aCB3aGljaCB3ZSBhcmUgYXNzb2NpYXRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI211bHRpcGFydENsYXNzIj5tdWx0aXBhcnRDbGFzczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZQorIDxjb2RlPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9jb2RlPiBpbXBsZW1lbnRhdGlvbiBjbGFzcyB1c2VkIHRvCisgcHJvY2VzcyBtdWx0aS1wYXJ0IHJlcXVlc3QgZGF0YSBmb3IgdGhpcyBBY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05hbWUgb2YgdGhlIGZvcm0gYmVhbiwgaWYgYW55LCBhc3NvY2lhdGVkIHdpdGggdGhpcyBBY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmFsIHB1cnBvc2UgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBwYXNzCisgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIEFjdGlvbiBpbnN0YW5jZSBzZWxlY3RlZCBieSB0aGlzIEFjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3BhdGgiPnBhdGg8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udGV4dC1yZWxhdGl2ZSBwYXRoIG9mIHRoZSBzdWJtaXR0ZWQgcmVxdWVzdCwgc3RhcnRpbmcgd2l0aCBhCisgc2xhc2ggKCIvIikgY2hhcmFjdGVyLCBhbmQgb21pdHRpbmcgYW55IGZpbGVuYW1lIGV4dGVuc2lvbiBpZgorIGV4dGVuc2lvbiBtYXBwaW5nIGlzIGJlaW5nIHVzZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNwcmVmaXgiPnByZWZpeDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmVmaXggdXNlZCB0byBtYXRjaCByZXF1ZXN0IHBhcmFtZXRlciBuYW1lcyB0byBmb3JtIGJlYW4gcHJvcGVydHkKKyBuYW1lcywgaWYgYW55LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZ1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNyb2xlTmFtZXMiPnJvbGVOYW1lczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2V0IG9mIHNlY3VyaXR5IHJvbGUgbmFtZXMgdXNlZCB0byBhdXRob3JpemUgYWNjZXNzIHRvIHRoaXMKKyBBY3Rpb24sIGFzIGFuIGFycmF5IGZvciBmYXN0ZXIgYWNjZXNzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjcm9sZXMiPnJvbGVzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbW1hLWRlbGltaXRlZCBsaXN0IG9mIHNlY3VyaXR5IHJvbGUgbmFtZXMgYWxsb3dlZCB0byByZXF1ZXN0CisgdGhpcyBBY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzY29wZSI+c2NvcGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SWRlbnRpZmllciBvZiB0aGUgc2NvcGUgKCJyZXF1ZXN0IiBvciAic2Vzc2lvbiIpIHdpdGhpbiB3aGljaAorIG91ciBmb3JtIGJlYW4gaXMgYWNjZXNzZWQsIGlmIGFueS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3N1ZmZpeCI+c3VmZml4PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1N1ZmZpeCB1c2VkIHRvIG1hdGNoIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVzIHRvIGZvcm0gYmVhbiBwcm9wZXJ0eQorIG5hbWVzLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCN0eXBlIj50eXBlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Z1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MKKyB0byBiZSB1c2VkIHRvIHByb2Nlc3MgcmVxdWVzdHMgZm9yIHRoaXMgbWFwcGluZyBpZiB0aGUKKyA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhbmQgPGNvZGU+aW5jbHVkZTwvY29kZT4gcHJvcGVydGllcyBhcmUgbm90IHNldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3Vua25vd24iPnVua25vd248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5kaWNhdGVzIEFjdGlvbiBiZSBjb25maWd1cmVkIGFzIHRoZSBkZWZhdWx0IG9uZSBmb3IgdGhpcworIGFwcGxpY2F0aW9uLCB3aGVuIHRydWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCN2YWxpZGF0ZSI+dmFsaWRhdGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2hvdWxkIHRoZSA8Y29kZT52YWxpZGF0ZSgpPC9jb2RlPiBtZXRob2Qgb2YgdGhlIGZvcm0gYmVhbiBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIGFjdGlvbiBiZSBjYWxsZWQ/PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjQWN0aW9uQ29uZmlnKCkiPkFjdGlvbkNvbmZpZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2FkZEV4Y2VwdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnKSI+YWRkRXhjZXB0aW9uQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IDxjb2RlPkV4Y2VwdGlvbkNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIGFjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjYWRkRm9yd2FyZENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPmFkZEZvcndhcmRDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ldyA8Y29kZT5Gb3J3YXJkQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IG9mIGdsb2JhbAorIGZvcndhcmRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGFjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNmaW5kRXhjZXB0aW9uQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRXhjZXB0aW9uQ29uZmlnPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHR5cGUsIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT5bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZmluZEV4Y2VwdGlvbkNvbmZpZ3MoKSI+ZmluZEV4Y2VwdGlvbkNvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBhY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNmaW5kRm9yd2FyZENvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcndhcmRDb25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9yd2FyZCBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2ZpbmRGb3J3YXJkQ29uZmlncygpIj5maW5kRm9yd2FyZENvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZnJlZXplKCkiPmZyZWV6ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZyZWV6ZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIGFjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRBcHBsaWNhdGlvbkNvbmZpZygpIj5nZXRBcHBsaWNhdGlvbkNvbmZpZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRNb2R1bGVDb25maWcoKSI+PENPREU+Z2V0TW9kdWxlQ29uZmlnKCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0QXR0cmlidXRlKCkiPmdldEF0dHJpYnV0ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIHJlcXVlc3Qtc2NvcGUgb3Igc2Vzc2lvbi1zY29wZSBhdHRyaWJ1dGUgbmFtZSB1bmRlciB3aGljaCBvdXIKKyBmb3JtIGJlYW4gaXMgYWNjZXNzZWQsIGlmIGl0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBmb3JtIGJlYW4ncworIHNwZWNpZmllZCA8Y29kZT5uYW1lPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0Rm9yd2FyZCgpIj5nZXRGb3J3YXJkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBjb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSB0aGF0IHdpbGwgcHJvY2VzcworIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0SW5jbHVkZSgpIj5nZXRJbmNsdWRlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udGV4dC1yZWxhdGl2ZSBwYXRoIG9mIHRoZSB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgdGhhdCB3aWxsIHByb2Nlc3MKKyB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldElucHV0KCkiPmdldElucHV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBjb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIGlucHV0IGZvcm0gdG8gd2hpY2ggY29udHJvbCBzaG91bGQgYmUKKyByZXR1cm5lZCBpZiBhIHZhbGlkYXRpb24gZXJyb3IgaXMgZW5jb3VudGVyZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0TW9kdWxlQ29uZmlnKCkiPmdldE1vZHVsZUNvbmZpZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtb2R1bGUgY29uZmlndXJhdGlvbiB3aXRoIHdoaWNoIHdlIGFyZSBhc3NvY2lhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRNdWx0aXBhcnRDbGFzcygpIj5nZXRNdWx0aXBhcnRDbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUKKyA8Y29kZT5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvY29kZT4gaW1wbGVtZW50YXRpb24gY2xhc3MgdXNlZCB0bworIHByb2Nlc3MgbXVsdGktcGFydCByZXF1ZXN0IGRhdGEgZm9yIHRoaXMgQWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gbmFtZSBvZiB0aGUgZm9ybSBiZWFuLCBpZiBhbnksIGFzc29jaWF0ZWQgd2l0aCB0aGlzIEFjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBnZW5lcmFsIHB1cnBvc2UgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBwYXNzCisgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIEFjdGlvbiBpbnN0YW5jZSBzZWxlY3RlZCBieSB0aGlzIEFjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0UGF0aCgpIj5nZXRQYXRoPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgc3VibWl0dGVkIHJlcXVlc3QsIHN0YXJ0aW5nIHdpdGggYQorIHNsYXNoICgiLyIpIGNoYXJhY3RlciwgYW5kIG9taXR0aW5nIGFueSBmaWxlbmFtZSBleHRlbnNpb24gaWYKKyBleHRlbnNpb24gbWFwcGluZyBpcyBiZWluZyB1c2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRQcmVmaXgoKSI+Z2V0UHJlZml4PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cnVucyBwcmVmaXggdXNlZCB0byBtYXRjaCByZXF1ZXN0IHBhcmFtZXRlciBuYW1lcyB0byBmb3JtIGJlYW4gcHJvcGVydHkKKyBuYW1lcywgaWYgYW55LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFJvbGVOYW1lcygpIj5nZXRSb2xlTmFtZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYXJyYXkgb2Ygc2VjdXJpdHkgcm9sZSBuYW1lcyB1c2VkIHRvIGF1dGhvcml6ZSBhY2Nlc3MgdG8gdGhpcworIEFjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0Um9sZXMoKSI+Z2V0Um9sZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIHNjb3BlICgicmVxdWVzdCIgb3IgInNlc3Npb24iKSB3aXRoaW4gd2hpY2gKKyBvdXIgZm9ybSBiZWFuIGlzIGFjY2Vzc2VkLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFN1ZmZpeCgpIj5nZXRTdWZmaXg8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gc3VmZml4IHVzZWQgdG8gbWF0Y2ggcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZXMgdG8gZm9ybSBiZWFuIHByb3BlcnR5CisgbmFtZXMsIGlmIGFueS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0VHlwZSgpIj5nZXRUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2dldFVua25vd24oKSI+Z2V0VW5rbm93bjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RldGVybWluZSB3aGV0aGVyIEFjdGlvbiBpcyBjb25maWd1cmVkIGFzIHRoZSBkZWZhdWx0IG9uZSBmb3IgdGhpcworIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRWYWxpZGF0ZSgpIj5nZXRWYWxpZGF0ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNyZW1vdmVFeGNlcHRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZykiPnJlbW92ZUV4Y2VwdGlvbkNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbW92ZSB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9uIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNyZW1vdmVGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+cmVtb3ZlRm9yd2FyZENvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZm9yd2FyZCBjb25maWd1cmF0aW9uIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRBcHBsaWNhdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+c2V0QXBwbGljYXRpb25Db25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttb2R1bGVDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0TW9kdWxlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48Q09ERT5zZXRNb2R1bGVDb25maWcoTW9kdWxlQ29uZmlnKTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPnNldEF0dHJpYnV0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthdHRyaWJ1dGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHJlcXVlc3Qtc2NvcGUgb3Igc2Vzc2lvbi1zY29wZSBhdHRyaWJ1dGUgbmFtZSB1bmRlciB3aGljaCBvdXIKKyBmb3JtIGJlYW4gaXMgYWNjZXNzZWQsIGlmIGl0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBmb3JtIGJlYW4ncworIHNwZWNpZmllZCA8Y29kZT5uYW1lPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0Rm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9yd2FyZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3J3YXJkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBjb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSB0aGF0IHdpbGwgcHJvY2VzcworIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0SW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW5jbHVkZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpbmNsdWRlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIHRoYXQgd2lsbCBwcm9jZXNzCisgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRJbnB1dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW5wdXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aW5wdXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgaW5wdXQgZm9ybSB0byB3aGljaCBjb250cm9sIHNob3VsZCBiZQorIHJldHVybmVkIGlmIGEgdmFsaWRhdGlvbiBlcnJvciBpcyBlbmNvdW50ZXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0TW9kdWxlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5zZXRNb2R1bGVDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttb2R1bGVDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gd2l0aCB3aGljaCB3ZSBhcmUgYXNzb2NpYXRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0TXVsdGlwYXJ0Q2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE11bHRpcGFydENsYXNzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO211bHRpcGFydENsYXNzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZQorIDxjb2RlPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9jb2RlPiBpbXBsZW1lbnRhdGlvbiBjbGFzcyB1c2VkIHRvCisgcHJvY2VzcyBtdWx0aS1wYXJ0IHJlcXVlc3QgZGF0YSBmb3IgdGhpcyBBY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbWV0ZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmFsIHB1cnBvc2UgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBwYXNzCisgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIEFjdGlvbiBpbnN0YW5jZSBzZWxlY3RlZCBieSB0aGlzIEFjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0UGF0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGF0aDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgc3VibWl0dGVkIHJlcXVlc3QsIHN0YXJ0aW5nIHdpdGggYQorIHNsYXNoICgiLyIpIGNoYXJhY3RlciwgYW5kIG9taXR0aW5nIGFueSBmaWxlbmFtZSBleHRlbnNpb24gaWYKKyBleHRlbnNpb24gbWFwcGluZyBpcyBiZWluZyB1c2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRQcmVmaXgoamF2YS5sYW5nLlN0cmluZykiPnNldFByZWZpeDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0Um9sZXMoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGVzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3JvbGVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRTdWZmaXgoamF2YS5sYW5nLlN0cmluZykiPnNldFN1ZmZpeDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdWZmaXgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VHlwZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldFVua25vd24oYm9vbGVhbikiPnNldFVua25vd248L0E+PC9CPihib29sZWFuJm5ic3A7dW5rbm93bik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRWYWxpZGF0ZShib29sZWFuKSI+c2V0VmFsaWRhdGU8L0E+PC9CPihib29sZWFuJm5ic3A7dmFsaWRhdGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbmZpZ3VyZWQiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmZpZ3VyZWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmZpZ3VyZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SW5kaWNhdGVzIGlmIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBjb21wb25lbnQgYmVlbiBjb21wbGV0ZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJleGNlcHRpb25zIj48IS0tIC0tPjwvQT48SDM+CitleGNlcHRpb25zPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2hNYXAgPEI+ZXhjZXB0aW9uczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIGV4Y2VwdGlvbiBoYW5kbGluZyBjb25maWd1cmF0aW9ucyBmb3IgdGhpcworIGFjdGlvbiwgaWYgYW55LCBrZXllZCBieSB0aGUgPGNvZGU+dHlwZTwvY29kZT4gcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmb3J3YXJkcyI+PCEtLSAtLT48L0E+PEgzPgorZm9yd2FyZHM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuSGFzaE1hcCA8Qj5mb3J3YXJkczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIGxvY2FsIGZvcndhcmQgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgYWN0aW9uLCBpZiBhbnksCisga2V5ZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IHByb3BlcnR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibW9kdWxlQ29uZmlnIj48IS0tIC0tPjwvQT48SDM+Cittb2R1bGVDb25maWc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4gPEI+bW9kdWxlQ29uZmlnPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtb2R1bGUgY29uZmlndXJhdGlvbiB3aXRoIHdoaWNoIHdlIGFyZSBhc3NvY2lhdGVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYXR0cmlidXRlIj48IS0tIC0tPjwvQT48SDM+CithdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmF0dHJpYnV0ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVxdWVzdC1zY29wZSBvciBzZXNzaW9uLXNjb3BlIGF0dHJpYnV0ZSBuYW1lIHVuZGVyIHdoaWNoIG91cgorIGZvcm0gYmVhbiBpcyBhY2Nlc3NlZCwgaWYgaXQgaXMgZGlmZmVyZW50IGZyb20gdGhlIGZvcm0gYmVhbidzCisgc3BlY2lmaWVkIDxjb2RlPm5hbWU8L2NvZGU+LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZm9yd2FyZCI+PCEtLSAtLT48L0E+PEgzPgorZm9yd2FyZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Zm9yd2FyZDwvQj48L1BSRT4KKzxETD4KKzxERD5Db250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSB0aGF0IHdpbGwgcHJvY2VzcworIHRoaXMgcmVxdWVzdCB2aWEgUmVxdWVzdERpc3BhdGNoZXIuZm9yd2FyZCgpLCBpbnN0ZWFkIG9mIGluc3RhbnRpYXRpbmcKKyBhbmQgY2FsbGluZyB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcyBzcGVjaWZpZWQgYnkgInR5cGUiLgorIEV4YWN0bHkgb25lIG9mIDxjb2RlPmZvcndhcmQ8L2NvZGU+LCA8Y29kZT5pbmNsdWRlPC9jb2RlPiwgb3IKKyA8Y29kZT50eXBlPC9jb2RlPiBtdXN0IGJlIHNwZWNpZmllZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluY2x1ZGUiPjwhLS0gLS0+PC9BPjxIMz4KK2luY2x1ZGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmluY2x1ZGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29udGV4dC1yZWxhdGl2ZSBwYXRoIG9mIHRoZSB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgdGhhdCB3aWxsIHByb2Nlc3MKKyB0aGlzIHJlcXVlc3QgdmlhIFJlcXVlc3REaXNwYXRjaGVyLmluY2x1ZGUoKSwgaW5zdGVhZCBvZiBpbnN0YW50aWF0aW5nCisgYW5kIGNhbGxpbmcgdGhlIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3Mgc3BlY2lmaWVkIGJ5ICJ0eXBlIi4KKyBFeGFjdGx5IG9uZSBvZiA8Y29kZT5mb3J3YXJkPC9jb2RlPiwgPGNvZGU+aW5jbHVkZTwvY29kZT4sIG9yCisgPGNvZGU+dHlwZTwvY29kZT4gbXVzdCBiZSBzcGVjaWZpZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbnB1dCI+PCEtLSAtLT48L0E+PEgzPgoraW5wdXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmlucHV0PC9CPjwvUFJFPgorPERMPgorPEREPkNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgaW5wdXQgZm9ybSB0byB3aGljaCBjb250cm9sIHNob3VsZCBiZQorIHJldHVybmVkIGlmIGEgdmFsaWRhdGlvbiBlcnJvciBpcyBlbmNvdW50ZXJlZC4gIFJlcXVpcmVkIGlmICJuYW1lIgorIGlzIHNwZWNpZmllZCBhbmQgdGhlIGlucHV0IGJlYW4gcmV0dXJucyB2YWxpZGF0aW9uIGVycm9ycy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im11bHRpcGFydENsYXNzIj48IS0tIC0tPjwvQT48SDM+CittdWx0aXBhcnRDbGFzczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bXVsdGlwYXJ0Q2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+RnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUKKyA8Y29kZT5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvY29kZT4gaW1wbGVtZW50YXRpb24gY2xhc3MgdXNlZCB0bworIHByb2Nlc3MgbXVsdGktcGFydCByZXF1ZXN0IGRhdGEgZm9yIHRoaXMgQWN0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5OYW1lIG9mIHRoZSBmb3JtIGJlYW4sIGlmIGFueSwgYXNzb2NpYXRlZCB3aXRoIHRoaXMgQWN0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyYW1ldGVyIj48IS0tIC0tPjwvQT48SDM+CitwYXJhbWV0ZXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtZXRlcjwvQj48L1BSRT4KKzxETD4KKzxERD5HZW5lcmFsIHB1cnBvc2UgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBwYXNzCisgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIEFjdGlvbiBpbnN0YW5jZSBzZWxlY3RlZCBieSB0aGlzIEFjdGlvbi4KKyBTdHJ1dHMgZG9lcyBub3QgaXRzZWxmIHVzZSB0aGlzIHZhbHVlIGluIGFueSB3YXkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXRoIj48IS0tIC0tPjwvQT48SDM+CitwYXRoPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYXRoPC9CPjwvUFJFPgorPERMPgorPEREPkNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgc3VibWl0dGVkIHJlcXVlc3QsIHN0YXJ0aW5nIHdpdGggYQorIHNsYXNoICgiLyIpIGNoYXJhY3RlciwgYW5kIG9taXR0aW5nIGFueSBmaWxlbmFtZSBleHRlbnNpb24gaWYKKyBleHRlbnNpb24gbWFwcGluZyBpcyBiZWluZyB1c2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJlZml4Ij48IS0tIC0tPjwvQT48SDM+CitwcmVmaXg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByZWZpeDwvQj48L1BSRT4KKzxETD4KKzxERD5QcmVmaXggdXNlZCB0byBtYXRjaCByZXF1ZXN0IHBhcmFtZXRlciBuYW1lcyB0byBmb3JtIGJlYW4gcHJvcGVydHkKKyBuYW1lcywgaWYgYW55LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icm9sZXMiPjwhLS0gLS0+PC9BPjxIMz4KK3JvbGVzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5yb2xlczwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tYS1kZWxpbWl0ZWQgbGlzdCBvZiBzZWN1cml0eSByb2xlIG5hbWVzIGFsbG93ZWQgdG8gcmVxdWVzdAorIHRoaXMgQWN0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icm9sZU5hbWVzIj48IS0tIC0tPjwvQT48SDM+Cityb2xlTmFtZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nW10gPEI+cm9sZU5hbWVzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2Ygc2VjdXJpdHkgcm9sZSBuYW1lcyB1c2VkIHRvIGF1dGhvcml6ZSBhY2Nlc3MgdG8gdGhpcworIEFjdGlvbiwgYXMgYW4gYXJyYXkgZm9yIGZhc3RlciBhY2Nlc3MuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzY29wZSI+PCEtLSAtLT48L0E+PEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPklkZW50aWZpZXIgb2YgdGhlIHNjb3BlICgicmVxdWVzdCIgb3IgInNlc3Npb24iKSB3aXRoaW4gd2hpY2gKKyBvdXIgZm9ybSBiZWFuIGlzIGFjY2Vzc2VkLCBpZiBhbnkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzdWZmaXgiPjwhLS0gLS0+PC9BPjxIMz4KK3N1ZmZpeDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c3VmZml4PC9CPjwvUFJFPgorPERMPgorPEREPlN1ZmZpeCB1c2VkIHRvIG1hdGNoIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVzIHRvIGZvcm0gYmVhbiBwcm9wZXJ0eQorIG5hbWVzLCBpZiBhbnkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0eXBlIj48IS0tIC0tPjwvQT48SDM+Cit0eXBlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj50eXBlPC9CPjwvUFJFPgorPERMPgorPEREPkZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MKKyB0byBiZSB1c2VkIHRvIHByb2Nlc3MgcmVxdWVzdHMgZm9yIHRoaXMgbWFwcGluZyBpZiB0aGUKKyA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhbmQgPGNvZGU+aW5jbHVkZTwvY29kZT4gcHJvcGVydGllcyBhcmUgbm90IHNldC4KKyBFeGFjdGx5IG9uZSBvZiA8Y29kZT5mb3J3YXJkPC9jb2RlPiwgPGNvZGU+aW5jbHVkZTwvY29kZT4sIG9yCisgPGNvZGU+dHlwZTwvY29kZT4gbXVzdCBiZSBzcGVjaWZpZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ1bmtub3duIj48IS0tIC0tPjwvQT48SDM+Cit1bmtub3duPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj51bmtub3duPC9CPjwvUFJFPgorPERMPgorPEREPkluZGljYXRlcyBBY3Rpb24gYmUgY29uZmlndXJlZCBhcyB0aGUgZGVmYXVsdCBvbmUgZm9yIHRoaXMKKyBhcHBsaWNhdGlvbiwgd2hlbiB0cnVlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj52YWxpZGF0ZTwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgdGhlIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZCBvZiB0aGUgZm9ybSBiZWFuIGFzc29jaWF0ZWQKKyB3aXRoIHRoaXMgYWN0aW9uIGJlIGNhbGxlZD8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJBY3Rpb25Db25maWcoKSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uQ29uZmlnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRBcHBsaWNhdGlvbkNvbmZpZygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBcHBsaWNhdGlvbkNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiA8Qj5nZXRBcHBsaWNhdGlvbkNvbmZpZzwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNnZXRNb2R1bGVDb25maWcoKSI+PENPREU+Z2V0TW9kdWxlQ29uZmlnKCk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPlRoZSBtb2R1bGUgY29uZmlndXJhdGlvbiB3aXRoIHdoaWNoIHdlIGFyZSBhc3NvY2lhdGVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNb2R1bGVDb25maWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TW9kdWxlQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+IDxCPmdldE1vZHVsZUNvbmZpZzwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoZSBtb2R1bGUgY29uZmlndXJhdGlvbiB3aXRoIHdoaWNoIHdlIGFyZSBhc3NvY2lhdGVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBcHBsaWNhdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QXBwbGljYXRpb25Db25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEFwcGxpY2F0aW9uQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttb2R1bGVDb25maWcpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3NldE1vZHVsZUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PENPREU+c2V0TW9kdWxlQ29uZmlnKE1vZHVsZUNvbmZpZyk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPlRoZSBtb2R1bGUgY29uZmlndXJhdGlvbiB3aXRoIHdoaWNoIHdlIGFyZSBhc3NvY2lhdGVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNb2R1bGVDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE1vZHVsZUNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TW9kdWxlQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttb2R1bGVDb25maWcpPC9QUkU+Cis8REw+Cis8REQ+VGhlIG1vZHVsZSBjb25maWd1cmF0aW9uIHdpdGggd2hpY2ggd2UgYXJlIGFzc29jaWF0ZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEF0dHJpYnV0ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEF0dHJpYnV0ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIHJlcXVlc3Qtc2NvcGUgb3Igc2Vzc2lvbi1zY29wZSBhdHRyaWJ1dGUgbmFtZSB1bmRlciB3aGljaCBvdXIKKyBmb3JtIGJlYW4gaXMgYWNjZXNzZWQsIGlmIGl0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBmb3JtIGJlYW4ncworIHNwZWNpZmllZCA8Y29kZT5uYW1lPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5hdHRyaWJ1dGUgbmFtZSB1bmRlciB3aGljaCBvdXIgZm9ybSBiZWFuIGlzIGFjY2Vzc2VkLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEF0dHJpYnV0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2F0dHJpYnV0ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHJlcXVlc3Qtc2NvcGUgb3Igc2Vzc2lvbi1zY29wZSBhdHRyaWJ1dGUgbmFtZSB1bmRlciB3aGljaCBvdXIKKyBmb3JtIGJlYW4gaXMgYWNjZXNzZWQsIGlmIGl0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBmb3JtIGJlYW4ncworIHNwZWNpZmllZCA8Y29kZT5uYW1lPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YXR0cmlidXRlPC9DT0RFPiAtIHRoZSByZXF1ZXN0LXNjb3BlIG9yIHNlc3Npb24tc2NvcGUgYXR0cmlidXRlIG5hbWUgdW5kZXIgd2hpY2ggb3VyCisgZm9ybSBiZWFuIGlzIGFjY2Vzcy48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZvcndhcmQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Rm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Rm9yd2FyZDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgY29udGV4dC1yZWxhdGl2ZSBwYXRoIG9mIHRoZSB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgdGhhdCB3aWxsIHByb2Nlc3MKKyB0aGlzIHJlcXVlc3QuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Y29udGV4dC1yZWxhdGl2ZSBwYXRoIG9mIHRoZSB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgdGhhdCB3aWxsIHByb2Nlc3MKKyB0aGlzIHJlcXVlc3QuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9yd2FyZCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIHRoYXQgd2lsbCBwcm9jZXNzCisgdGhpcyByZXF1ZXN0LgorIEV4YWN0bHkgb25lIG9mIDxjb2RlPmZvcndhcmQ8L2NvZGU+LCA8Y29kZT5pbmNsdWRlPC9jb2RlPiwgb3IKKyA8Y29kZT50eXBlPC9jb2RlPiBtdXN0IGJlIHNwZWNpZmllZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Zm9yd2FyZDwvQ09ERT4gLSBjb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSB0aGF0IHdpbGwgcHJvY2VzcworIHRoaXMgcmVxdWVzdC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEluY2x1ZGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SW5jbHVkZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SW5jbHVkZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIHRoYXQgd2lsbCBwcm9jZXNzCisgdGhpcyByZXF1ZXN0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIHRoYXQgd2lsbCBwcm9jZXNzCisgdGhpcyByZXF1ZXN0LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SW5jbHVkZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SW5jbHVkZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2luY2x1ZGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIHRoYXQgd2lsbCBwcm9jZXNzCisgdGhpcyByZXF1ZXN0LgorIEV4YWN0bHkgb25lIG9mIDxjb2RlPmZvcndhcmQ8L2NvZGU+LCA8Y29kZT5pbmNsdWRlPC9jb2RlPiwgb3IKKyA8Y29kZT50eXBlPC9jb2RlPiBtdXN0IGJlIHNwZWNpZmllZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aW5jbHVkZTwvQ09ERT4gLSBjb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSB0aGF0IHdpbGwgcHJvY2VzcworIHRoaXMgcmVxdWVzdC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldElucHV0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElucHV0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRJbnB1dDwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgY29udGV4dC1yZWxhdGl2ZSBwYXRoIG9mIHRoZSBpbnB1dCBmb3JtIHRvIHdoaWNoIGNvbnRyb2wgc2hvdWxkIGJlCisgcmV0dXJuZWQgaWYgYSB2YWxpZGF0aW9uIGVycm9yIGlzIGVuY291bnRlcmVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgaW5wdXQgZm9ybSB0byB3aGljaCBjb250cm9sIHNob3VsZCBiZQorIHJldHVybmVkIGlmIGEgdmFsaWRhdGlvbiBlcnJvciBpcyBlbmNvdW50ZXJlZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldElucHV0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRJbnB1dDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SW5wdXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpbnB1dCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgaW5wdXQgZm9ybSB0byB3aGljaCBjb250cm9sIHNob3VsZCBiZQorIHJldHVybmVkIGlmIGEgdmFsaWRhdGlvbiBlcnJvciBpcyBlbmNvdW50ZXJlZC4gIFJlcXVpcmVkIGlmICJuYW1lIgorIGlzIHNwZWNpZmllZCBhbmQgdGhlIGlucHV0IGJlYW4gcmV0dXJucyB2YWxpZGF0aW9uIGVycm9ycy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aW5wdXQ8L0NPREU+IC0gY29udGV4dC1yZWxhdGl2ZSBwYXRoIG9mIHRoZSBpbnB1dCBmb3JtIHRvIHdoaWNoIGNvbnRyb2wgc2hvdWxkIGJlCisgcmV0dXJuZWQgaWYgYSB2YWxpZGF0aW9uIGVycm9yIGlzIGVuY291bnRlcmVkLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TXVsdGlwYXJ0Q2xhc3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TXVsdGlwYXJ0Q2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE11bHRpcGFydENsYXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZQorIDxjb2RlPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9jb2RlPiBpbXBsZW1lbnRhdGlvbiBjbGFzcyB1c2VkIHRvCisgcHJvY2VzcyBtdWx0aS1wYXJ0IHJlcXVlc3QgZGF0YSBmb3IgdGhpcyBBY3Rpb24uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE11bHRpcGFydENsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNdWx0aXBhcnRDbGFzczwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TXVsdGlwYXJ0Q2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttdWx0aXBhcnRDbGFzcyk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlCisgPGNvZGU+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L2NvZGU+IGltcGxlbWVudGF0aW9uIGNsYXNzIHVzZWQgdG8KKyBwcm9jZXNzIG11bHRpLXBhcnQgcmVxdWVzdCBkYXRhIGZvciB0aGlzIEFjdGlvbi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bXVsdGlwYXJ0Q2xhc3M8L0NPREU+IC0gZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgb2YgdGhlCisgPGNvZGU+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L2NvZGU+IGltcGxlbWVudGF0aW9uIGNsYXNzLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIG5hbWUgb2YgdGhlIGZvcm0gYmVhbiwgaWYgYW55LCBhc3NvY2lhdGVkIHdpdGggdGhpcyBBY3Rpb24uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBuYW1lIG9mIHRoZSBmb3JtIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgQWN0aW9uLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFyYW1ldGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhcmFtZXRlcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFyYW1ldGVyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGdlbmVyYWwgcHVycG9zZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciB0aGF0IGNhbiBiZSB1c2VkIHRvIHBhc3MKKyBleHRyYSBpbmZvcm1hdGlvbiB0byB0aGUgQWN0aW9uIGluc3RhbmNlIHNlbGVjdGVkIGJ5IHRoaXMgQWN0aW9uLgorIFN0cnV0cyBkb2VzIG5vdCBpdHNlbGYgdXNlIHRoaXMgdmFsdWUgaW4gYW55IHdheS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbWV0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtZXRlcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtZXRlcik8L1BSRT4KKzxETD4KKzxERD5HZW5lcmFsIHB1cnBvc2UgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBwYXNzCisgZXh0cmEgaW5mb3JtYXRpb24gdG8gdGhlIEFjdGlvbiBpbnN0YW5jZSBzZWxlY3RlZCBieSB0aGlzIEFjdGlvbi4KKyBTdHJ1dHMgZG9lcyBub3QgaXRzZWxmIHVzZSB0aGlzIHZhbHVlIGluIGFueSB3YXkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhcmFtZXRlcjwvQ09ERT4gLSBHZW5lcmFsIHB1cnBvc2UgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXRoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhdGg8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhdGg8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gY29udGV4dC1yZWxhdGl2ZSBwYXRoIG9mIHRoZSBzdWJtaXR0ZWQgcmVxdWVzdCwgc3RhcnRpbmcgd2l0aCBhCisgc2xhc2ggKCIvIikgY2hhcmFjdGVyLCBhbmQgb21pdHRpbmcgYW55IGZpbGVuYW1lIGV4dGVuc2lvbiBpZgorIGV4dGVuc2lvbiBtYXBwaW5nIGlzIGJlaW5nIHVzZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhdGgoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhdGg8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhdGg8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvUFJFPgorPERMPgorPEREPlNldCBjb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHN1Ym1pdHRlZCByZXF1ZXN0LCBzdGFydGluZyB3aXRoIGEKKyBzbGFzaCAoIi8iKSBjaGFyYWN0ZXIsIGFuZCBvbWl0dGluZyBhbnkgZmlsZW5hbWUgZXh0ZW5zaW9uIGlmCisgZXh0ZW5zaW9uIG1hcHBpbmcgaXMgYmVpbmcgdXNlZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0aDwvQ09ERT4gLSBjb250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHN1Ym1pdHRlZCByZXF1ZXN0LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJlZml4KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByZWZpeDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJlZml4PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0cnVucyBwcmVmaXggdXNlZCB0byBtYXRjaCByZXF1ZXN0IHBhcmFtZXRlciBuYW1lcyB0byBmb3JtIGJlYW4gcHJvcGVydHkKKyBuYW1lcywgaWYgYW55LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcmVmaXgoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByZWZpeDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJlZml4PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJlZml4PC9DT0RFPiAtIFByZWZpeCB1c2VkIHRvIG1hdGNoIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVzIHRvCisgZm9ybSBiZWFuIHByb3BlcnR5IG5hbWVzLCBpZiBhbnkuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSb2xlcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSb2xlczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Um9sZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFJvbGVzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRSb2xlczwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Um9sZXM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlcyk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJvbGVOYW1lcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSb2xlTmFtZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nW10gPEI+Z2V0Um9sZU5hbWVzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IGFycmF5IG9mIHNlY3VyaXR5IHJvbGUgbmFtZXMgdXNlZCB0byBhdXRob3JpemUgYWNjZXNzIHRvIHRoaXMKKyBBY3Rpb24uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNjb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTY29wZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgc2NvcGUgKCJyZXF1ZXN0IiBvciAic2Vzc2lvbiIpIHdpdGhpbiB3aGljaAorIG91ciBmb3JtIGJlYW4gaXMgYWNjZXNzZWQsIGlmIGFueS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTY29wZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2NvcGU8L0NPREU+IC0gc2NvcGUgKCJyZXF1ZXN0IiBvciAic2Vzc2lvbiIpIHdpdGhpbiB3aGljaAorIG91ciBmb3JtIGJlYW4gaXMgYWNjZXNzZWQsIGlmIGFueS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFN1ZmZpeCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTdWZmaXg8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFN1ZmZpeDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiBzdWZmaXggdXNlZCB0byBtYXRjaCByZXF1ZXN0IHBhcmFtZXRlciBuYW1lcyB0byBmb3JtIGJlYW4gcHJvcGVydHkKKyBuYW1lcywgaWYgYW55LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTdWZmaXgoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFN1ZmZpeDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U3VmZml4PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3VmZml4KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c3VmZml4PC9DT0RFPiAtIFN1ZmZpeCB1c2VkIHRvIG1hdGNoIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVzIHRvIGZvcm0gYmVhbiBwcm9wZXJ0eQorIG5hbWVzLCBpZiBhbnkuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUeXBlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFR5cGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFR5cGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VW5rbm93bigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRVbmtub3duPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRVbmtub3duPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+RGV0ZXJtaW5lIHdoZXRoZXIgQWN0aW9uIGlzIGNvbmZpZ3VyZWQgYXMgdGhlIGRlZmF1bHQgb25lIGZvciB0aGlzCisgYXBwbGljYXRpb24uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFVua25vd24oYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFVua25vd248L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFVua25vd248L0I+KGJvb2xlYW4mbmJzcDt1bmtub3duKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dW5rbm93bjwvQ09ERT4gLSBJbmRpY2F0ZXMgQWN0aW9uIGlzIGNvbmZpZ3VyZWQgYXMgdGhlIGRlZmF1bHQgb25lIGZvciB0aGlzCisgYXBwbGljYXRpb24sIHdoZW4gdHJ1ZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbGlkYXRlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbGlkYXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRWYWxpZGF0ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsaWRhdGUoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbGlkYXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWxpZGF0ZTwvQj4oYm9vbGVhbiZuYnNwO3ZhbGlkYXRlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkRXhjZXB0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CithZGRFeGNlcHRpb25Db25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZEV4Y2VwdGlvbkNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgorPERMPgorPEREPkFkZCBhIG5ldyA8Y29kZT5FeGNlcHRpb25Db25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBhY3Rpb24uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgdG8gYmUgYWRkZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgorICBoYXMgYmVlbiBmcm96ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZEZvcndhcmRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CithZGRGb3J3YXJkQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRGb3J3YXJkQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5BZGQgYSBuZXcgPGNvZGU+Rm9yd2FyZENvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBvZiBnbG9iYWwKKyBmb3J3YXJkcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBhY3Rpb24uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgdG8gYmUgYWRkZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgorICBoYXMgYmVlbiBmcm96ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRFeGNlcHRpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRFeGNlcHRpb25Db25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4gPEI+ZmluZEV4Y2VwdGlvbkNvbmZpZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBleGNlcHRpb24gY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCB0eXBlLCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dHlwZTwvQ09ERT4gLSBFeGNlcHRpb24gY2xhc3MgbmFtZSB0byBmaW5kIGEgY29uZmlndXJhdGlvbiBmb3I8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRFeGNlcHRpb25Db25maWdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRFeGNlcHRpb25Db25maWdzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+W10gPEI+ZmluZEV4Y2VwdGlvbkNvbmZpZ3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBhY3Rpb24uICBJZiB0aGVyZQorIGFyZSBub25lLCBhIHplcm8tbGVuZ3RoIGFycmF5IGlzIHJldHVybmVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRm9yd2FyZENvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZEZvcndhcmRDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPiA8Qj5maW5kRm9yd2FyZENvbmZpZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gdG8gcmV0dXJuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRm9yd2FyZENvbmZpZ3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZEZvcndhcmRDb25maWdzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT5bXSA8Qj5maW5kRm9yd2FyZENvbmZpZ3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBhcHBsaWNhdGlvbi4gIElmIHRoZXJlCisgYXJlIG5vbmUsIGEgemVyby1sZW5ndGggYXJyYXkgaXMgcmV0dXJuZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZyZWV6ZSgpIj48IS0tIC0tPjwvQT48SDM+CitmcmVlemU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmZyZWV6ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkZyZWV6ZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIGFjdGlvbi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlRXhjZXB0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmVFeGNlcHRpb25Db25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbW92ZUV4Y2VwdGlvbkNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgorPERMPgorPEREPlJlbW92ZSB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9uIGluc3RhbmNlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gRXhjZXB0aW9uQ29uZmlnIGluc3RhbmNlIHRvIGJlIHJlbW92ZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgorICBoYXMgYmVlbiBmcm96ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbW92ZUZvcndhcmRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmVGb3J3YXJkQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZW1vdmVGb3J3YXJkQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5SZW1vdmUgdGhlIHNwZWNpZmllZCBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBGb3J3YXJkQ29uZmlnIGluc3RhbmNlIHRvIGJlIHJlbW92ZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgorICBoYXMgYmVlbiBmcm96ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRvU3RyaW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3RvU3RyaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj50b1N0cmluZzwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT50b1N0cmluZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FjdGlvbkNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uTWFwcGluZ0ZhY3RvcnkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uTWFwcGluZ0ZhY3RvcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uTWFwcGluZ0ZhY3RvcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjFjYTcxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25NYXBwaW5nRmFjdG9yeS5odG1sCkBAIC0wLDAgKzEsMjg1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQWN0aW9uTWFwcGluZ0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25NYXBwaW5nRmFjdG9yeSxBY3Rpb25NYXBwaW5nRmFjdG9yeSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQWN0aW9uTWFwcGluZ0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQWN0aW9uTWFwcGluZ0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BZGREYXRhU291cmNlUHJvcGVydHlSdWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25NYXBwaW5nRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkFic3RyYWN0T2JqZWN0Q3JlYXRpb25GYWN0b3J5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0ZPTlQ+Cis8QlI+CitDbGFzcyBBY3Rpb25NYXBwaW5nRmFjdG9yeTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLW9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5BYnN0cmFjdE9iamVjdENyZWF0aW9uRmFjdG9yeQorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25NYXBwaW5nRmFjdG9yeTwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPm9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5PYmplY3RDcmVhdGlvbkZhY3Rvcnk8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5maW5hbCBjbGFzcyA8Qj5BY3Rpb25NYXBwaW5nRmFjdG9yeTwvQj48RFQ+ZXh0ZW5kcyBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuQWJzdHJhY3RPYmplY3RDcmVhdGlvbkZhY3Rvcnk8L0RMPgorCis8UD4KK0FuIG9iamVjdCBjcmVhdGlvbiBmYWN0b3J5IHdoaWNoIGNyZWF0ZXMgYWN0aW9uIG1hcHBpbmcgaW5zdGFuY2VzLCB0YWtpbmcKKyBpbnRvIGFjY291bnQgdGhlIGRlZmF1bHQgY2xhc3MgbmFtZSwgd2hpY2ggbWF5IGhhdmUgYmVlbiBzcGVjaWZpZWQgb24gdGhlCisgcGFyZW50IGVsZW1lbnQgYW5kIHdoaWNoIGlzIG1hZGUgYXZhaWxhYmxlIHRocm91Z2ggdGhlIG9iamVjdCBvbiB0aGUgdG9wCisgb2YgdGhlIHN0YWNrLCB3aGljaCBtdXN0IGJlIGEKKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnPC9jb2RlPi4KKzxQPgorCis8UD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkFic3RyYWN0T2JqZWN0Q3JlYXRpb25GYWN0b3J5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5BYnN0cmFjdE9iamVjdENyZWF0aW9uRmFjdG9yeTwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRpZ2VzdGVyPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4ocGFja2FnZSBwcml2YXRlKTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uTWFwcGluZ0ZhY3RvcnkuaHRtbCNBY3Rpb25NYXBwaW5nRmFjdG9yeSgpIj5BY3Rpb25NYXBwaW5nRmFjdG9yeTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbk1hcHBpbmdGYWN0b3J5Lmh0bWwjY3JlYXRlT2JqZWN0KG9yZy54bWwuc2F4LkF0dHJpYnV0ZXMpIj5jcmVhdGVPYmplY3Q8L0E+PC9CPihvcmcueG1sLnNheC5BdHRyaWJ1dGVzJm5ic3A7YXR0cmlidXRlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkFic3RyYWN0T2JqZWN0Q3JlYXRpb25GYWN0b3J5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuQWJzdHJhY3RPYmplY3RDcmVhdGlvbkZhY3Rvcnk8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXREaWdlc3Rlciwgc2V0RGlnZXN0ZXI8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQWN0aW9uTWFwcGluZ0ZhY3RvcnkoKSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uTWFwcGluZ0ZhY3Rvcnk8L0gzPgorPFBSRT4KKzxCPkFjdGlvbk1hcHBpbmdGYWN0b3J5PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjcmVhdGVPYmplY3Qob3JnLnhtbC5zYXguQXR0cmlidXRlcykiPjwhLS0gLS0+PC9BPjxIMz4KK2NyZWF0ZU9iamVjdDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Y3JlYXRlT2JqZWN0PC9CPihvcmcueG1sLnNheC5BdHRyaWJ1dGVzJm5ic3A7YXR0cmlidXRlcyk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Y3JlYXRlT2JqZWN0PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+b3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLk9iamVjdENyZWF0aW9uRmFjdG9yeTwvQ09ERT48RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Y3JlYXRlT2JqZWN0PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuQWJzdHJhY3RPYmplY3RDcmVhdGlvbkZhY3Rvcnk8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BY3Rpb25NYXBwaW5nRmFjdG9yeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGUuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbk1hcHBpbmdGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuQWJzdHJhY3RPYmplY3RDcmVhdGlvbkZhY3RvcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0OTkzZDgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGUuaHRtbApAQCAtMCwwICsxLDI4MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0FkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BZGREYXRhU291cmNlUHJvcGVydHlSdWxlLEFkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGUgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkFkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uTWFwcGluZ0ZhY3RvcnkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQXBwbGljYXRpb25Db25maWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0ZPTlQ+Cis8QlI+CitDbGFzcyBBZGREYXRhU291cmNlUHJvcGVydHlSdWxlPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLlJ1bGUKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZTwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPmZpbmFsIGNsYXNzIDxCPkFkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGU8L0I+PERUPmV4dGVuZHMgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLlJ1bGU8L0RMPgorCis8UD4KK0NsYXNzIHRoYXQgY2FsbHMgPGNvZGU+YWRkUHJvcGVydHkoKTwvY29kZT4gZm9yIHRoZSB0b3Agb2JqZWN0Cisgb24gdGhlIHN0YWNrLCB3aGljaCBtdXN0IGJlIGEKKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRGF0YVNvdXJjZUNvbmZpZzwvY29kZT4uCis8UD4KKworPFA+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZGlnZXN0ZXIsIG5hbWVzcGFjZVVSSTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BZGREYXRhU291cmNlUHJvcGVydHlSdWxlLmh0bWwjQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZSgpIj5BZGREYXRhU291cmNlUHJvcGVydHlSdWxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZS5odG1sI2JlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZXMpIj5iZWdpbjwvQT48L0I+KG9yZy54bWwuc2F4LkF0dHJpYnV0ZXMmbmJzcDthdHRyaWJ1dGVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLlJ1bGU8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5iZWdpbiwgYm9keSwgYm9keSwgZW5kLCBlbmQsIGZpbmlzaCwgZ2V0RGlnZXN0ZXIsIGdldE5hbWVzcGFjZVVSSSwgc2V0RGlnZXN0ZXIsIHNldE5hbWVzcGFjZVVSSTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJBZGREYXRhU291cmNlUHJvcGVydHlSdWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5BZGREYXRhU291cmNlUHJvcGVydHlSdWxlPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJiZWdpbihvcmcueG1sLnNheC5BdHRyaWJ1dGVzKSI+PCEtLSAtLT48L0E+PEgzPgorYmVnaW48L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmJlZ2luPC9CPihvcmcueG1sLnNheC5BdHRyaWJ1dGVzJm5ic3A7YXR0cmlidXRlcykKKyAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+YmVnaW48L0NPREU+IGluIGNsYXNzIDxDT0RFPm9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEubGFuZy5FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BZGREYXRhU291cmNlUHJvcGVydHlSdWxlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25NYXBwaW5nRmFjdG9yeS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BcHBsaWNhdGlvbkNvbmZpZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLlJ1bGUiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWJhNGU1ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQXBwbGljYXRpb25Db25maWcuaHRtbApAQCAtMCwwICsxLDI4NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0FwcGxpY2F0aW9uQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQXBwbGljYXRpb25Db25maWcsQXBwbGljYXRpb25Db25maWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkFwcGxpY2F0aW9uQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BZGREYXRhU291cmNlUHJvcGVydHlSdWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQXBwbGljYXRpb25Db25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLk1vZHVsZUNvbmZpZ0ltcGwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5Nb2R1bGVDb25maWdJbXBsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9GT05UPgorPEJSPgorQ2xhc3MgQXBwbGljYXRpb25Db25maWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLk1vZHVsZUNvbmZpZ0ltcGw8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFwcGxpY2F0aW9uQ29uZmlnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNhZ2UgcmVwbGFjZWQgYnkgTW9kdWxlQ29uZmlnIEludGVyZmFjZS48L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QXBwbGljYXRpb25Db25maWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPjwvREw+CisKKzxQPgorPHA+VGhlIGNvbGxlY3Rpb24gb2Ygc3RhdGljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gdGhhdCBkZXNjcmliZXMgYQorIFN0cnV0cy1iYXNlZCBhcHBsaWNhdGlvbiBtb2R1bGUuICBNdWx0aXBsZSBhcHBsaWNhdGlvbiBtb2R1bGVzCisgYXJlIGlkZW50aWZpZWQgYnkgYSA8ZW0+cHJlZml4PC9lbT4gYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgY29udGV4dAorIHJlbGF0aXZlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgVVJJLiAgSWYgbm8gYXBwbGljYXRpb24gcHJlZml4IGNhbiBiZQorIG1hdGNoZWQsIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gKHdpdGggYSBwcmVmaXggZXF1YWwgdG8gYSB6ZXJvLWxlbmd0aAorIHN0cmluZykgaXMgc2VsZWN0ZWQsIHdoaWNoIGlzIGVsZWdhbnRseSBiYWNrd2FyZHMgY29tcGF0aWJsZSB3aXRoIHRoZQorIHByZXZpb3VzIFN0cnV0cyBiZWhhdmlvciB0aGF0IG9ubHkgc3VwcG9ydGVkIG9uZSBhcHBsaWNhdGlvbi48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFwcGxpY2F0aW9uQ29uZmlnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuTW9kdWxlQ29uZmlnSW1wbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2FjdGlvbkNvbmZpZ3MiPmFjdGlvbkNvbmZpZ3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjYWN0aW9uTWFwcGluZ0NsYXNzIj5hY3Rpb25NYXBwaW5nQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjY29uZmlndXJlZCI+Y29uZmlndXJlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNjb250cm9sbGVyQ29uZmlnIj5jb250cm9sbGVyQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2RhdGFTb3VyY2VzIj5kYXRhU291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNleGNlcHRpb25zIj5leGNlcHRpb25zPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2Zvcm1CZWFucyI+Zm9ybUJlYW5zPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZvcndhcmRzIj5mb3J3YXJkczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNtZXNzYWdlUmVzb3VyY2VzIj5tZXNzYWdlUmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI3BsdWdJbnMiPnBsdWdJbnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcHJlZml4Ij5wcmVmaXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwjQXBwbGljYXRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuTW9kdWxlQ29uZmlnSW1wbCkiPkFwcGxpY2F0aW9uQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPiZuYnNwO21vZHVsZUNvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPk9ubHkgdXNlZCB3aGlsZSB3ZSBhcmUgZGVwcmVjYXRpbmcgQXBwbGljYXRpb25Db25maWcgdG8gaW5zdXJlIG1heGltdW0gY29tcGF0YWJpbGl0eS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQXBwbGljYXRpb25Db25maWcuaHRtbCNBcHBsaWNhdGlvbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+QXBwbGljYXRpb25Db25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29uc3RydWN0IGFuIEFwcGxpY2F0aW9uQ29uZmlnIG9iamVjdCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuTW9kdWxlQ29uZmlnSW1wbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGRBY3Rpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZykiPmFkZEFjdGlvbkNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGREYXRhU291cmNlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnKSI+YWRkRGF0YVNvdXJjZUNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGRFeGNlcHRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZykiPmFkZEV4Y2VwdGlvbkNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGRGb3JtQmVhbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWcpIj5hZGRGb3JtQmVhbkNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGRGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+YWRkRm9yd2FyZENvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnKSI+YWRkTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGRQbHVnSW5Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLlBsdWdJbkNvbmZpZykiPmFkZFBsdWdJbkNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kQWN0aW9uQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kQWN0aW9uQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRBY3Rpb25Db25maWdzKCkiPmZpbmRBY3Rpb25Db25maWdzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmREYXRhU291cmNlQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRGF0YVNvdXJjZUNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kRGF0YVNvdXJjZUNvbmZpZ3MoKSI+ZmluZERhdGFTb3VyY2VDb25maWdzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRFeGNlcHRpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRFeGNlcHRpb25Db25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEV4Y2VwdGlvbkNvbmZpZ3MoKSI+ZmluZEV4Y2VwdGlvbkNvbmZpZ3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEZvcm1CZWFuQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9ybUJlYW5Db25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEZvcm1CZWFuQ29uZmlncygpIj5maW5kRm9ybUJlYW5Db25maWdzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRGb3J3YXJkQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9yd2FyZENvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kRm9yd2FyZENvbmZpZ3MoKSI+ZmluZEZvcndhcmRDb25maWdzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZ3MoKSI+ZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWdzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRQbHVnSW5Db25maWdzKCkiPmZpbmRQbHVnSW5Db25maWdzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZyZWV6ZSgpIj5mcmVlemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZ2V0QWN0aW9uTWFwcGluZ0NsYXNzKCkiPmdldEFjdGlvbk1hcHBpbmdDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNnZXRDb25maWd1cmVkKCkiPmdldENvbmZpZ3VyZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZ2V0Q29udHJvbGxlckNvbmZpZygpIj5nZXRDb250cm9sbGVyQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2dldFByZWZpeCgpIj5nZXRQcmVmaXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcmVtb3ZlQWN0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWcpIj5yZW1vdmVBY3Rpb25Db25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcmVtb3ZlRGF0YVNvdXJjZUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRGF0YVNvdXJjZUNvbmZpZykiPnJlbW92ZURhdGFTb3VyY2VDb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcmVtb3ZlRXhjZXB0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcpIj5yZW1vdmVFeGNlcHRpb25Db25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcmVtb3ZlRm9ybUJlYW5Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnKSI+cmVtb3ZlRm9ybUJlYW5Db25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcmVtb3ZlRm9yd2FyZENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPnJlbW92ZUZvcndhcmRDb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcmVtb3ZlTWVzc2FnZVJlc291cmNlc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTWVzc2FnZVJlc291cmNlc0NvbmZpZykiPnJlbW92ZU1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjc2V0QWN0aW9uTWFwcGluZ0NsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY3Rpb25NYXBwaW5nQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjc2V0Q29udHJvbGxlckNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29udHJvbGxlckNvbmZpZykiPnNldENvbnRyb2xsZXJDb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjc2V0UHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcmVmaXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFwcGxpY2F0aW9uQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitBcHBsaWNhdGlvbkNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFwcGxpY2F0aW9uQ29uZmlnPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db25zdHJ1Y3QgYW4gQXBwbGljYXRpb25Db25maWcgb2JqZWN0IGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHZhbHVlcy4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcmVmaXg8L0NPREU+IC0gQ29udGV4dC1yZWxhdGl2ZSBVUkkgcHJlZml4IGZvciB0aGlzIG1vZHVsZTwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkFwcGxpY2F0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLk1vZHVsZUNvbmZpZ0ltcGwpIj48IS0tIC0tPjwvQT48SDM+CitBcHBsaWNhdGlvbkNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFwcGxpY2F0aW9uQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPk9ubHkgdXNlZCB3aGlsZSB3ZSBhcmUgZGVwcmVjYXRpbmcgQXBwbGljYXRpb25Db25maWcgdG8gaW5zdXJlIG1heGltdW0gY29tcGF0YWJpbGl0eS48L0k+Cis8UD4KKzxERD5Pbmx5IHVzZWQgd2hpbGUgd2UgYXJlIGRlcHJlY2F0aW5nIEFwcGxpY2F0aW9uQ29uZmlnLgorIHBlcmZvcm1zIGEgc2hhbGxvdyBjb3B5IHRvIGVuc3VyZSB0aGF0IGFueSBvcGVyYXRpb25zCisgcGVyZm9ybWVkIG9uIGFuIEFwcGxpY2F0aW9uQ29uZmlnIG9iamVjdCBpcworIHBlcmZvcm1lZCBvbiB0aGUgc2FtZSB1bmRlcmx5aW5nCisgTW9kdWxlQ29uZmlnSW1wbCBzdWIgb2JqZWN0cworPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1vZHVsZUNvbmZpZzwvQ09ERT4gLSA8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQXBwbGljYXRpb25Db25maWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGUuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBcHBsaWNhdGlvbkNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuTW9kdWxlQ29uZmlnSW1wbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLk1vZHVsZUNvbmZpZ0ltcGwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc0MzRmNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwKQEAgLTAsMCArMSwxNjg2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQ29uZmlnSGVscGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29uZmlnSGVscGVyLENvbmZpZ0hlbHBlciBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQ29uZmlnSGVscGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbmZpZ0hlbHBlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQXBwbGljYXRpb25Db25maWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnUnVsZVNldC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29uZmlnSGVscGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0ZPTlQ+Cis8QlI+CitDbGFzcyBDb25maWdIZWxwZXI8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29uZmlnSGVscGVyPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkNvbmZpZ0hlbHBlcjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9ETD4KKworPFA+CitOT1RFOiBUSElTIENMQVNTIElTIFVOREVSIEFDVElWRSBERVZFTE9QTUVOVC4KKyBUSEUgQ1VSUkVOVCBDT0RFIElTIFdSSVRURU4gRk9SIENMQVJJVFkgTk9UIEVGRklDSUVOQ1kuCisgTk9UIEVWRVJZIEFQSSBGVU5DVElPTiBIQVMgQkVFTiBJTVBMRU1FTlRFRCBZRVQuCisKKyBBIGhlbHBlciBvYmplY3QgdG8gZXhwb3NlIHRoZSBTdHJ1dHMgc2hhcmVkIHJlc291cmNlcywKKyB3aGljaCBhcmUgYmUgc3RvcmVkIGluIHRoZSBhcHBsaWNhdGlvbiwgc2Vzc2lvbiwgb3IKKyByZXF1ZXN0IGNvbnRleHRzLCBhcyBhcHByb3ByaWF0ZS4KKworIEFuIGluc3RhbmNlIHNob3VsZCBiZSBjcmVhdGVkIGZvciBlYWNoIHJlcXVlc3QKKyBwcm9jZXNzZWQuIFRoZSAgbWV0aG9kcyB3aGljaCByZXR1cm4gcmVzb3VyY2VzIGZyb20KKyB0aGUgcmVxdWVzdCBvciBzZXNzaW9uIGNvbnRleHRzIGFyZSBub3QgdGhyZWFkLXNhZmUuCisKKyBQcm92aWRlZCBmb3IgdXNlIGJ5IG90aGVyIHNlcnZsZXRzIGluIHRoZSBhcHBsaWNhdGlvbgorIHNvIHRoZXkgY2FuIGVhc2lseSBhY2Nlc3MgdGhlIFN0cnV0cyBzaGFyZWQgcmVzb3VyY2VzLgorCisgVGhlIHJlc291cmNlcyBhcmUgc3RvcmVkIHVuZGVyIGF0dHJpYnV0ZXMgaW4gdGhlCisgYXBwbGljYXRpb24sIHNlc3Npb24sIG9yIHJlcXVlc3QgY29udGV4dHMuCisKKyBUaGUgQWN0aW9uQ29uZmlnIG1ldGhvZHMgc2ltcGx5IHJldHVybiB0aGUgcmVzb3VyY2VzCisgZnJvbSB1bmRlciB0aGUgY29udGV4dCBhbmQga2V5IHVzZWQgYnkgdGhlIFN0cnV0cworIEFjdGlvblNlcnZsZXQgd2hlbiB0aGUgcmVzb3VyY2VzIGFyZSBjcmVhdGVkLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+MS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPlRlZCBIdXN0ZWQsIEx1aXMgQXJpYXMgPGx1aXNAZWx5c2lhLmNvbT48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNhcHBsaWNhdGlvbiI+YXBwbGljYXRpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGFwcGxpY2F0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNmb3J3YXJkIj5mb3J3YXJkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBmb3J3YXJkIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI3JlcXVlc3QiPnJlcXVlc3Q8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlcXVlc3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI3Jlc3BvbnNlIj5yZXNwb25zZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVzcG9uc2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNzZXNzaW9uIj5zZXNzaW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI0NvbmZpZ0hlbHBlcigpIj5Db25maWdIZWxwZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNDb25maWdIZWxwZXIoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5Db25maWdIZWxwZXI8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7YXBwbGljYXRpb24sCisgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2FjdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+YWN0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXcmFwcGVyIGZvciBnZXRBY3Rpb24oU3RyaW5nKTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNlcnJvck91dHB1dCgpIj5lcnJvck91dHB1dDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1dyYXBwZXIgZm9yIGdldEVycm9yTWFya3VwKCk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZXJyb3JPdXRwdXQoamF2YS5sYW5nLlN0cmluZykiPmVycm9yT3V0cHV0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V3JhcHBlciBmb3IgZ2V0RXJyb3JNYXJrdXAoU3RyaW5nKTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSXRlcmF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2Vycm9ycygpIj5lcnJvcnM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXcmFwcGVyIGZvciBnZXRFcnJvcnMoKTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSXRlcmF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2Vycm9ycyhqYXZhLmxhbmcuU3RyaW5nKSI+ZXJyb3JzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V3JhcHBlciBmb3IgZ2V0RXJyb3JzKFN0cmluZyk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZXJyb3JzRW1wdHkoKSI+ZXJyb3JzRW1wdHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXcmFwcGVyIGZvciBnZXRFcnJvckVtcHR5KCk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNlcnJvclNpemUoKSI+ZXJyb3JTaXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWxpYXMgZm9yIGdldEVycm9yU2l6ZSgpPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZXJyb3JTaXplKGphdmEubGFuZy5TdHJpbmcpIj5lcnJvclNpemU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXcmFwcGVyIGZvciBnZXRFcnJvclNpemUoU3RyaW5nKTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRBY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPmdldEFjdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBVUkwgZm9yIHRoZSBzcGVjaWZpZWQgQWN0aW9uTWFwcGluZywKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEFjdGlvbkVycm9ycygpIj5nZXRBY3Rpb25FcnJvcnM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0LAorIGZvciB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRBY3Rpb25Gb3JtKCkiPmdldEFjdGlvbkZvcm08L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj5BY3Rpb25Gb3JtQmVhbnM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRBY3Rpb25Gb3JtQmVhbnMoKSI+Z2V0QWN0aW9uRm9ybUJlYW5zPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbnM8L2NvZGU+IGNvbGxlY3Rpb24KKyBmb3IgdGhpcyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEFjdGlvbkZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPmdldEFjdGlvbkZvcndhcmQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9yd2FyZGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBsb2dpY2FsIG5hbWUsCisgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+QWN0aW9uRm9yd2FyZHM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRBY3Rpb25Gb3J3YXJkcygpIj5nZXRBY3Rpb25Gb3J3YXJkczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZHM8L2NvZGU+IGNvbGxlY3Rpb24KKyBmb3IgdGhpcyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEFjdGlvbk1hcHBpbmcoamF2YS5sYW5nLlN0cmluZykiPmdldEFjdGlvbk1hcHBpbmc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbWFwcGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCByZXF1ZXN0IHBhdGgsIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRBY3Rpb25NYXBwaW5nTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QWN0aW9uTWFwcGluZ05hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWN0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3JtIGFjdGlvbiBjb252ZXJ0ZWQgaW50byBhbiBhY3Rpb24gbWFwcGluZyBwYXRoLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+QWN0aW9uTWFwcGluZ3M8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRBY3Rpb25NYXBwaW5ncygpIj5nZXRBY3Rpb25NYXBwaW5nczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91cgorIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nczwvY29kZT4gY29sbGVjdGlvbgorIGlzIG5vcm1hbGx5IHN0b3JlZCwgdW5sZXNzIG92ZXJyaWRkZW4gd2hlbiBpbml0aWFsaXppbmcgb3VyCisgQWN0aW9uU2VydmxldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0QWN0aW9uTWFwcGluZ1VSTChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QWN0aW9uTWFwcGluZ1VSTDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcm0gYWN0aW9uIGNvbnZlcnRlZCBpbnRvIGEgc2VydmVyLXJlbGF0aXZlIFVSTC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPkFjdGlvbk1lc3NhZ2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0QWN0aW9uTWVzc2FnZXMoKSI+Z2V0QWN0aW9uTWVzc2FnZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuczwvY29kZT4gY29sbGVjdGlvbgorIGZvciB0aGlzIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRCYXNlUmVmKCkiPmdldEJhc2VSZWY8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW5kZXJzIHRoZSByZWZlcmVuY2UgZm9yIGEgSFRNTCA8YmFzZT4gZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YXguc3FsLkRhdGFTb3VyY2U8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldERhdGFTb3VyY2UoKSI+Z2V0RGF0YVNvdXJjZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPgorIGNvbmZpZ3VyZWQgZGF0YSBzb3VyY2UgKHdoaWNoIG11c3QgaW1wbGVtZW50CisgPGNvZGU+amF2YXguc3FsLkRhdGFTb3VyY2U8L2NvZGU+KSwKKyBpZiBvbmUgaXMgY29uZmlndXJlZCBmb3IgdGhpcyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0RW5jb2RlVVJMKGphdmEubGFuZy5TdHJpbmcpIj5nZXRFbmNvZGVVUkw8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJsKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSB1cmwgZW5jb2RlZCB0byBtYWludGFpbiB0aGUgdXNlciBzZXNzaW9uLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEVycm9yT3V0cHV0KCkiPmdldEVycm9yT3V0cHV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V3JhcHBlciBmb3IgZ2V0RXJyb3JNYXJrdXAobnVsbCk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0RXJyb3JPdXRwdXQoamF2YS5sYW5nLlN0cmluZykiPmdldEVycm9yT3V0cHV0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgZXJyb3JzLmhlYWRlciwgYW55IGVycm9ycywgYW5kIHRoZSBlcnJvcnMuZm9vdGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSXRlcmF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEVycm9ycygpIj5nZXRFcnJvcnM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGVycm9yIG1lc3NhZ2VzPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5JdGVyYXRvcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0RXJyb3JzKGphdmEubGFuZy5TdHJpbmcpIj5nZXRFcnJvcnM8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYW4gQWN0aW9uRXJyb3IgZm9yIGEgcHJvcGVydHk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0RXJyb3JzRW1wdHkoKSI+Z2V0RXJyb3JzRW1wdHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBhcmUgbm8gZXJyb3JzIHF1ZXVlZDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEVycm9yU2l6ZSgpIj5nZXRFcnJvclNpemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG51bWJlciBvZiBlcnJvciBtZXNzYWdlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRFcnJvclNpemUoamF2YS5sYW5nLlN0cmluZykiPmdldEVycm9yU2l6ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbnVtYmVyIG9mIGVycm9yIG1lc3NhZ2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuVGhyb3dhYmxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRFeGNlcHRpb24oKSI+Z2V0RXhjZXB0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJ1bnRpbWUgSnNwRXhjZXB0aW9uIHRoYXQgbWF5IGJlIGJlZW4gdGhyb3duIGJ5IGEgU3RydXRzIHRhZworIGV4dGVuc2lvbiwgb3IgY29tcGF0aWJsZSBwcmVzZW50YXRpb24gZXh0ZW5zaW9uLCBhbmQgcGxhY2VkCisgaW4gdGhlIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj5nZXRGb3JtQmVhbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3JtIGJlYW4gZGVmaW5pdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZAorIGxvZ2ljYWwgbmFtZSwgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRMaW5rKGphdmEubGFuZy5TdHJpbmcpIj5nZXRMaW5rPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHBhdGggZm9yIHRoZSBzcGVjaWZpZWQgZm9yd2FyZCwKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuTG9jYWxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRMb2NhbGUoKSI+Z2V0TG9jYWxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPmphdmEudXRpbC5Mb2NhbGU8L2NvZGU+IGZvciB0aGUgdXNlciwgaWYgYW55LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0TWFwcGluZygpIj5nZXRNYXBwaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLkFjdGlvbk1hcHBpbmc8L2NvZGU+CisgaW5zdGFuY2UgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0TWVzc2FnZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGxvY2FsaXplZCBtZXNzYWdlIGZvciB0aGUgc3BlY2lmaWVkIGtleSwKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3RbXSkiPmdldE1lc3NhZ2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0W10mbmJzcDthcmdzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TG9vayB1cCBhbmQgcmV0dXJuIGEgbWVzc2FnZSBzdHJpbmcsIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRNZXNzYWdlUmVzb3VyY2VzKCkiPmdldE1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYXBwbGljYXRpb24gcmVzb3VyY2VzIGZvciB0aGlzIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcigpIj5nZXRNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtdWx0aXBhcnQgb2JqZWN0IGZvciB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldE9yaWdSZWYoKSI+Z2V0T3JpZ1JlZjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlcnMgdGhlIHJlZmVyZW5jZSBmb3IgYSBIVE1MIDxiYXNlPiBlbGVtZW50PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldFNlcnZsZXRNYXBwaW5nKCkiPmdldFNlcnZsZXRNYXBwaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHBhdGgtbWFwcGVkIHBhdHRlcm4gKDxjb2RlPi9hY3Rpb24vKjwvY29kZT4pIG9yCisgZXh0ZW5zaW9uIG1hcHBlZCBwYXR0ZXJuICgoPGNvZGU+Ki5kbzwvY29kZT4pCisgdXNlZCB0byBkZXRlcm1pbmUgb3VyIEFjdGlvbiBVUklzIGluIHRoaXMgYXBwbGljYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2dldFRva2VuKCkiPmdldFRva2VuPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHRyYW5zYWN0aW9uIHRva2VuIHN0b3JlZCBpbiB0aGlzIHNlc3Npb24sIGlmIGl0IGlzIHVzZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI2lzTWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nKSI+aXNNZXNzYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0cnVlIGlmIGEgbWVzc2FnZSBzdHJpbmcgZm9yIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSBrZXkKKyBpcyBwcmVzZW50IGZvciB0aGUgdXNlcidzIExvY2FsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjbGluayhqYXZhLmxhbmcuU3RyaW5nKSI+bGluazwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V3JhcHBlciBmb3IgZ2V0TGluayhTdHJpbmcpPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V3JhcHBlciBmb3IgZ2V0TWVzc2FnZShTdHJpbmcpPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+bWVzc2FnZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgIGphdmEubGFuZy5PYmplY3RbXSZuYnNwO2FyZ3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXcmFwcGVyIGZvciBnZXRNZXNzYWdlKFN0cmluZyxPYmplY3RbXSk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjc2V0QXBwbGljYXRpb24oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPnNldEFwcGxpY2F0aW9uPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2FwcGxpY2F0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBhcHBsaWNhdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjc2V0Rm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCkiPnNldEZvcndhcmQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiZuYnNwO2ZvcndhcmQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGZvcndhcmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI3NldFJlcXVlc3QoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnNldFJlcXVlc3Q8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgcmVxdWVzdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBvYmplY3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI3NldFJlc291cmNlcyhqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnNldFJlc291cmNlczwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDthcHBsaWNhdGlvbiwKKyAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBhcHBsaWNhdGlvbiBhbmQgcmVxdWVzdCBmb3IgdGhpcyBvYmplY3QgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sI3NldFJlc3BvbnNlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+c2V0UmVzcG9uc2U8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSByZXNwb25zZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBpc250YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwjc2V0U2Vzc2lvbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb24pIj5zZXRTZXNzaW9uPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uJm5ic3A7c2Vzc2lvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgc2Vzc2lvbiBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbnN0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImFwcGxpY2F0aW9uIj48IS0tIC0tPjwvQT48SDM+CithcHBsaWNhdGlvbjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0IDxCPmFwcGxpY2F0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhcHBsaWNhdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbnN0YW5jZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNlc3Npb24iPjwhLS0gLS0+PC9BPjxIMz4KK3Nlc3Npb248L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uIDxCPnNlc3Npb248L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlc3Npb24gYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXF1ZXN0Ij48IS0tIC0tPjwvQT48SDM+CityZXF1ZXN0PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QgPEI+cmVxdWVzdDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVxdWVzdCBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbnN0YW5jZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlc3BvbnNlIj48IS0tIC0tPjwvQT48SDM+CityZXNwb25zZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSA8Qj5yZXNwb25zZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVzcG9uc2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmb3J3YXJkIj48IS0tIC0tPjwvQT48SDM+Citmb3J3YXJkPC9IMz4KKzxQUkU+Citwcml2YXRlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPmZvcndhcmQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZvcndhcmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29uZmlnSGVscGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0NvbmZpZ0hlbHBlcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbmZpZ0hlbHBlcjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQ29uZmlnSGVscGVyKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorQ29uZmlnSGVscGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Q29uZmlnSGVscGVyPC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7YXBwbGljYXRpb24sCisgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ic2V0QXBwbGljYXRpb24oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFwcGxpY2F0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBcHBsaWNhdGlvbjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2FwcGxpY2F0aW9uKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgYXBwbGljYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UuCisgW3NlcnZsZXQuZ2V0U2VydmxldENvbnRleHQoKV0KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2Vzc2lvbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb24pIj48IS0tIC0tPjwvQT48SDM+CitzZXRTZXNzaW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTZXNzaW9uPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb24mbmJzcDtzZXNzaW9uKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgc2Vzc2lvbiBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbnN0YW5jZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UmVxdWVzdChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UmVxdWVzdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UmVxdWVzdDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSByZXF1ZXN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9iamVjdC4KKyBTZXNzaW9uIG9iamVjdCBpcyBhbHNvIHNldCBvciBjbGVhcmVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRSZXNwb25zZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFJlc3BvbnNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRSZXNwb25zZTwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHJlc3BvbnNlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGlzbnRhbmNlLgorIFNlc3Npb24gb2JqZWN0IGlzIGFsc28gc2V0IG9yIGNsZWFyZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZvcndhcmQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGb3J3YXJkPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiZuYnNwO2ZvcndhcmQpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBmb3J3YXJkIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGluc3RhbmNlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRSZXNvdXJjZXMoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitzZXRSZXNvdXJjZXM8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFJlc291cmNlczwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2FwcGxpY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBhcHBsaWNhdGlvbiBhbmQgcmVxdWVzdCBmb3IgdGhpcyBvYmplY3QgaW5zdGFuY2UuCisgVGhlIFNlcnZsZXRDb250ZXh0IGNhbiBiZSBzZXQgYnkgYW55IHNlcnZsZXQgaW4gdGhlIGFwcGxpY2F0aW9uLgorIFRoZSByZXF1ZXN0IHNob3VsZCBiZSB0aGUgaW5zdGFudCByZXF1ZXN0LgorIE1vc3Qgb2YgdGhlIG90aGVyIG1ldGhvZHMgcmV0cmlldmUgdGhlaXIgb3duIG9iamVjdHMKKyBieSByZWZlcmVuY2UgdG8gdGhlIGFwcGxpY2F0aW9uLCByZXF1ZXN0LCBvciBzZXNzaW9uCisgYXR0cmlidXRlcy4KKyBEbyBub3QgY2FsbCBvdGhlciBtZXRob2RzIHdpdGhvdXQgc2V0dGluZyB0aGVzZSBmaXJzdCEKKyBUaGlzIGlzIGFsc28gY2FsbGVkIGJ5IHRoZSBjb252ZW5pZW5jZSBjb25zdHJ1Y3Rvci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YXBwbGljYXRpb248L0NPREU+IC0gLSBUaGUgYXNzb2NpYXRlZCBTZXJ2bGV0Q29udGV4dC48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSAtIFRoZSBhc3NvY2lhdGVkIEhUVFAgcmVxdWVzdC48REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gLSBUaGUgYXNzb2NpYXRlZCBIVFRQIHJlc3BvbnNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGF0YVNvdXJjZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXREYXRhU291cmNlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc3FsLkRhdGFTb3VyY2UgPEI+Z2V0RGF0YVNvdXJjZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoZSBzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPgorIGNvbmZpZ3VyZWQgZGF0YSBzb3VyY2UgKHdoaWNoIG11c3QgaW1wbGVtZW50CisgPGNvZGU+amF2YXguc3FsLkRhdGFTb3VyY2U8L2NvZGU+KSwKKyBpZiBvbmUgaXMgY29uZmlndXJlZCBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0RGF0YVNvdXJjZSgpIj5nZXREYXRhU291cmNlPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbk1lc3NhZ2VzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdGlvbk1lc3NhZ2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPkFjdGlvbk1lc3NhZ2VzPC9BPiA8Qj5nZXRBY3Rpb25NZXNzYWdlczwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9DT0RFPjwvQj48L0REPgorPEREPlRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW5zPC9jb2RlPiBjb2xsZWN0aW9uCisgZm9yIHRoaXMgYXBwbGljYXRpb24uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbk1lc3NhZ2VzKCkiPmdldEFjdGlvbk1lc3NhZ2VzPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbkZvcm1CZWFucygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBY3Rpb25Gb3JtQmVhbnM8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPkFjdGlvbkZvcm1CZWFuczwvQT4gPEI+Z2V0QWN0aW9uRm9ybUJlYW5zPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbnM8L2NvZGU+IGNvbGxlY3Rpb24KKyBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uRm9ybUJlYW5zKCkiPmdldEFjdGlvbkZvcm1CZWFuczwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBY3Rpb25Gb3J3YXJkcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBY3Rpb25Gb3J3YXJkczwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT4gPEI+Z2V0QWN0aW9uRm9yd2FyZHM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmRzPC9jb2RlPiBjb2xsZWN0aW9uCisgZm9yIHRoaXMgYXBwbGljYXRpb24uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbkZvcndhcmRzKCkiPmdldEFjdGlvbkZvcndhcmRzPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbk1hcHBpbmdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdGlvbk1hcHBpbmdzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPiA8Qj5nZXRBY3Rpb25NYXBwaW5nczwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91cgorIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nczwvY29kZT4gY29sbGVjdGlvbgorIGlzIG5vcm1hbGx5IHN0b3JlZCwgdW5sZXNzIG92ZXJyaWRkZW4gd2hlbiBpbml0aWFsaXppbmcgb3VyCisgQWN0aW9uU2VydmxldC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uTWFwcGluZ3MoKSI+Z2V0QWN0aW9uTWFwcGluZ3M8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZVJlc291cmNlcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPmdldE1lc3NhZ2VSZXNvdXJjZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGUgYXBwbGljYXRpb24gcmVzb3VyY2VzIGZvciB0aGlzIGFwcGxpY2F0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRNZXNzYWdlUmVzb3VyY2VzKCkiPmdldE1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2VydmxldE1hcHBpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2VydmxldE1hcHBpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFNlcnZsZXRNYXBwaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhlIHBhdGgtbWFwcGVkIHBhdHRlcm4gKDxjb2RlPi9hY3Rpb24vKjwvY29kZT4pIG9yCisgZXh0ZW5zaW9uIG1hcHBlZCBwYXR0ZXJuICgoPGNvZGU+Ki5kbzwvY29kZT4pCisgdXNlZCB0byBkZXRlcm1pbmUgb3VyIEFjdGlvbiBVUklzIGluIHRoaXMgYXBwbGljYXRpb24uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldFNlcnZsZXRNYXBwaW5nKCkiPmdldFNlcnZsZXRNYXBwaW5nPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExvY2FsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMb2NhbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuTG9jYWxlIDxCPmdldExvY2FsZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoZSA8Y29kZT5qYXZhLnV0aWwuTG9jYWxlPC9jb2RlPiBmb3IgdGhlIHVzZXIsIGlmIGFueS4KKyBJZiBhIGRlZmF1bHQgbG9jYWxlIG9iamVjdCBpcyBub3QgaW4gdGhlIHVzZXIncyBzZXNzaW9uLAorIHRoZSBzeXN0ZW0gZGVmYXVsdCBsb2NhbGUgaXMgcmV0dXJuZWQuCisgSWYgdXNlZCwgdGhlIHVzZXIgbG9jYWxlIGlzIHR5cGljYWxseSBzZXQgZHVyaW5nIGxvZ2luCisgcHJvY2Vzc2luZyB1bmRlciB0aGUga2V5IDxjb2RlPkdsb2JhbHMuTE9DQUxFX0tFWTwvY29kZT4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VG9rZW4oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VG9rZW48L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFRva2VuPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhlIHRyYW5zYWN0aW9uIHRva2VuIHN0b3JlZCBpbiB0aGlzIHNlc3Npb24sIGlmIGl0IGlzIHVzZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldFRva2VuKCkiPmdldFRva2VuPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbkVycm9ycygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBY3Rpb25FcnJvcnM8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4gPEI+Z2V0QWN0aW9uRXJyb3JzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCwKKyBmb3IgdGhpcyByZXF1ZXN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRBY3Rpb25FcnJvcnMoKSI+Z2V0QWN0aW9uRXJyb3JzPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEV4Y2VwdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFeGNlcHRpb248L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuVGhyb3dhYmxlIDxCPmdldEV4Y2VwdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoZSBydW50aW1lIEpzcEV4Y2VwdGlvbiB0aGF0IG1heSBiZSBiZWVuIHRocm93biBieSBhIFN0cnV0cyB0YWcKKyBleHRlbnNpb24sIG9yIGNvbXBhdGlibGUgcHJlc2VudGF0aW9uIGV4dGVuc2lvbiwgYW5kIHBsYWNlZAorIGluIHRoZSByZXF1ZXN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRFeGNlcHRpb24oKSI+Z2V0RXhjZXB0aW9uPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE11bHRpcGFydFJlcXVlc3RXcmFwcGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPiA8Qj5nZXRNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoZSBtdWx0aXBhcnQgb2JqZWN0IGZvciB0aGlzIHJlcXVlc3QuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldE11bHRpcGFydFJlcXVlc3RXcmFwcGVyKCkiPmdldE11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1hcHBpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWFwcGluZzwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IDxCPmdldE1hcHBpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuQWN0aW9uTWFwcGluZzwvY29kZT4KKyBpbnN0YW5jZSBmb3IgdGhpcyByZXF1ZXN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRNYXBwaW5nKCkiPmdldE1hcHBpbmc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Citpc01lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzTWVzc2FnZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdHJ1ZSBpZiBhIG1lc3NhZ2Ugc3RyaW5nIGZvciB0aGUgc3BlY2lmaWVkIG1lc3NhZ2Uga2V5CisgaXMgcHJlc2VudCBmb3IgdGhlIHVzZXIncyBMb2NhbGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2lzTWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nKSI+aXNNZXNzYWdlPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWN0aW9uRm9ybSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBY3Rpb25Gb3JtPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4gPEI+Z2V0QWN0aW9uRm9ybTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uRm9ybSgpIj5nZXRBY3Rpb25Gb3JtPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGb3JtQmVhbjwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT4gPEI+Z2V0Rm9ybUJlYW48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgZm9ybSBiZWFuIGRlZmluaXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQKKyBsb2dpY2FsIG5hbWUsIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0Rm9ybUJlYW4oamF2YS5sYW5nLlN0cmluZykiPmdldEZvcm1CZWFuPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTG9naWNhbCBuYW1lIG9mIHRoZSByZXF1ZXN0ZWQgZm9ybSBiZWFuIGRlZmluaXRpb248L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbkZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdGlvbkZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiA8Qj5nZXRBY3Rpb25Gb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGZvcndhcmRpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBuYW1lLAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIExvZ2ljYWwgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIGZvcndhcmRpbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbk1hcHBpbmcoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdGlvbk1hcHBpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiA8Qj5nZXRBY3Rpb25NYXBwaW5nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG1hcHBpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXRoLCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uTWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QWN0aW9uTWFwcGluZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYXRoPC9DT0RFPiAtIFJlcXVlc3QgcGF0aCBmb3Igd2hpY2ggYSBtYXBwaW5nIGlzIHJlcXVlc3RlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWN0aW9uTWFwcGluZ05hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdGlvbk1hcHBpbmdOYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBY3Rpb25NYXBwaW5nTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FjdGlvbik8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYWN0aW9uIGNvbnZlcnRlZCBpbnRvIGFuIGFjdGlvbiBtYXBwaW5nIHBhdGguICBUaGUKKyB2YWx1ZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBwcm9wZXJ0eSBpcyBtYW5pcHVsYXRlZCBhcyBmb2xsb3dzIGluCisgY29tcHV0aW5nIHRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0ZWQgbWFwcGluZzoKKyA8dWw+CisgPGxpPkFueSBmaWxlbmFtZSBleHRlbnNpb24gaXMgcmVtb3ZlZCAob24gdGhlIHRoZW9yeSB0aGF0IGV4dGVuc2lvbgorICAgICBtYXBwaW5nIGlzIGJlaW5nIHVzZWQgdG8gc2VsZWN0IHRoZSBjb250cm9sbGVyIHNlcnZsZXQpLjwvbGk+CisgPGxpPklmIHRoZSByZXN1bHRpbmcgdmFsdWUgZG9lcyBub3Qgc3RhcnQgd2l0aCBhIHNsYXNoLCB0aGVuIGEKKyAgICAgc2xhc2ggaXMgcHJlcGVuZGVkLjwvbGk+CisgPC91bD4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uTWFwcGluZ05hbWUoamF2YS5sYW5nLlN0cmluZykiPmdldEFjdGlvbk1hcHBpbmdOYW1lPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbk1hcHBpbmdVUkwoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdGlvbk1hcHBpbmdVUkw8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFjdGlvbk1hcHBpbmdVUkw8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb24pPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIGFjdGlvbiBjb252ZXJ0ZWQgaW50byBhIHNlcnZlci1yZWxhdGl2ZSBVUkwuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbk1hcHBpbmdVUkwoamF2YS5sYW5nLlN0cmluZykiPmdldEFjdGlvbk1hcHBpbmdVUkw8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RW5jb2RlVVJMKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFbmNvZGVVUkw8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEVuY29kZVVSTDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VybCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHVybCBlbmNvZGVkIHRvIG1haW50YWluIHRoZSB1c2VyIHNlc3Npb24sIGlmIGFueS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0RW5jb2RlVVJMKGphdmEubGFuZy5TdHJpbmcpIj5nZXRFbmNvZGVVUkw8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0T3JpZ1JlZigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRPcmlnUmVmPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPcmlnUmVmPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVycyB0aGUgcmVmZXJlbmNlIGZvciBhIEhUTUwgPGJhc2U+IGVsZW1lbnQKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0T3JpZ1JlZigpIj5nZXRPcmlnUmVmPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEJhc2VSZWYoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QmFzZVJlZjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QmFzZVJlZjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbmRlcnMgdGhlIHJlZmVyZW5jZSBmb3IgYSBIVE1MIDxiYXNlPiBlbGVtZW50LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRCYXNlUmVmKCkiPmdldEJhc2VSZWY8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TGluayhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TGluazwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TGluazwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBwYXRoIGZvciB0aGUgc3BlY2lmaWVkIGZvcndhcmQsCisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0TGluayhqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0TGluazwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgZ2l2ZW4gdG8gbG9jYWwgb3IgZ2xvYmFsIGZvcndhcmQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbG9jYWxpemVkIG1lc3NhZ2UgZm9yIHRoZSBzcGVjaWZpZWQga2V5LAorIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZykiPmdldE1lc3NhZ2U8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIE1lc3NhZ2Uga2V5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3RbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3RbXSZuYnNwO2FyZ3MpPC9QUkU+Cis8REw+Cis8REQ+TG9vayB1cCBhbmQgcmV0dXJuIGEgbWVzc2FnZSBzdHJpbmcsIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj5nZXRNZXNzYWdlPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleSB0byBiZSBsb29rZWQgdXAgYW5kIHJldHVybmVkPEREPjxDT0RFPmFyZ3M8L0NPREU+IC0gUmVwbGFjZW1lbnQgcGFyYW1ldGVycyBmb3IgdGhpcyBtZXNzYWdlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWN0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIFVSTCBmb3IgdGhlIHNwZWNpZmllZCBBY3Rpb25NYXBwaW5nLAorIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QWN0aW9uPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhdGg8L0NPREU+IC0gTmFtZSBnaXZlbiB0byBsb2NhbCBvciBnbG9iYWwgZm9yd2FyZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEVycm9yU2l6ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFcnJvclNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0RXJyb3JTaXplPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBudW1iZXIgb2YgZXJyb3IgbWVzc2FnZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEVycm9yU2l6ZSgpIj5nZXRFcnJvclNpemU8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RXJyb3JzRW1wdHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RXJyb3JzRW1wdHk8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldEVycm9yc0VtcHR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRydWUgaWYgdGhlcmUgYXJlIG5vIGVycm9ycyBxdWV1ZWQKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0RXJyb3JzRW1wdHkoKSI+Z2V0RXJyb3JzRW1wdHk8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RXJyb3JzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEVycm9yczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5JdGVyYXRvciA8Qj5nZXRFcnJvcnM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGVycm9yIG1lc3NhZ2VzCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEVycm9ycygpIj5nZXRFcnJvcnM8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RXJyb3JzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFcnJvcnM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuSXRlcmF0b3IgPEI+Z2V0RXJyb3JzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGFuIEFjdGlvbkVycm9yIGZvciBhIHByb3BlcnR5Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEVycm9ycyhqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0RXJyb3JzPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIFByb3BlcnR5IG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEVycm9yU2l6ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RXJyb3JTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldEVycm9yU2l6ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbnVtYmVyIG9mIGVycm9yIG1lc3NhZ2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRFcnJvclNpemUoamF2YS5sYW5nLlN0cmluZykiPmdldEVycm9yU2l6ZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBQcm9wZXJ0eSBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRFcnJvck91dHB1dChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RXJyb3JPdXRwdXQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEVycm9yT3V0cHV0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgZXJyb3JzLmhlYWRlciwgYW55IGVycm9ycywgYW5kIHRoZSBlcnJvcnMuZm9vdGVyLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRFcnJvck91dHB1dChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0RXJyb3JPdXRwdXQ8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJvcGVydHk8L0NPREU+IC0gUHJvcGVydHkgbmFtZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RXJyb3JPdXRwdXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RXJyb3JPdXRwdXQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEVycm9yT3V0cHV0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+V3JhcHBlciBmb3IgZ2V0RXJyb3JNYXJrdXAobnVsbCkKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0RXJyb3JPdXRwdXQoKSI+Z2V0RXJyb3JPdXRwdXQ8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGluayhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorbGluazwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+bGluazwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+V3JhcHBlciBmb3IgZ2V0TGluayhTdHJpbmcpCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBnaXZlbiB0byBsb2NhbCBvciBnbG9iYWwgZm9yd2FyZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPm1lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+V3JhcHBlciBmb3IgZ2V0TWVzc2FnZShTdHJpbmcpCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0W10pIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5tZXNzYWdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0W10mbmJzcDthcmdzKTwvUFJFPgorPERMPgorPEREPldyYXBwZXIgZm9yIGdldE1lc3NhZ2UoU3RyaW5nLE9iamVjdFtdKQorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSBrZXkgdG8gYmUgbG9va2VkIHVwIGFuZCByZXR1cm5lZDxERD48Q09ERT5hcmdzPC9DT0RFPiAtIFJlcGxhY2VtZW50IHBhcmFtZXRlcnMgZm9yIHRoaXMgbWVzc2FnZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWN0aW9uKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CithY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmFjdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9QUkU+Cis8REw+Cis8REQ+V3JhcHBlciBmb3IgZ2V0QWN0aW9uKFN0cmluZykKKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0aDwvQ09ERT4gLSBOYW1lIGdpdmVuIHRvIGxvY2FsIG9yIGdsb2JhbCBmb3J3YXJkLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZXJyb3JTaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2Vycm9yU2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5lcnJvclNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5BbGlhcyBmb3IgZ2V0RXJyb3JTaXplKCkKKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZXJyb3JzRW1wdHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZXJyb3JzRW1wdHk8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmVycm9yc0VtcHR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+V3JhcHBlciBmb3IgZ2V0RXJyb3JFbXB0eSgpCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVycm9ycygpIj48IS0tIC0tPjwvQT48SDM+CitlcnJvcnM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuSXRlcmF0b3IgPEI+ZXJyb3JzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+V3JhcHBlciBmb3IgZ2V0RXJyb3JzKCkKKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZXJyb3JzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitlcnJvcnM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuSXRlcmF0b3IgPEI+ZXJyb3JzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+V3JhcHBlciBmb3IgZ2V0RXJyb3JzKFN0cmluZykKKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZXJyb3JTaXplKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitlcnJvclNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZXJyb3JTaXplPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+V3JhcHBlciBmb3IgZ2V0RXJyb3JTaXplKFN0cmluZykKKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJvcGVydHk8L0NPREU+IC0gUHJvcGVydHkgbmFtZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZXJyb3JPdXRwdXQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2Vycm9yT3V0cHV0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5lcnJvck91dHB1dDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPldyYXBwZXIgZm9yIGdldEVycm9yTWFya3VwKFN0cmluZykKKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZXJyb3JPdXRwdXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZXJyb3JPdXRwdXQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmVycm9yT3V0cHV0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+V3JhcHBlciBmb3IgZ2V0RXJyb3JNYXJrdXAoKQorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db25maWdIZWxwZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ1J1bGVTZXQuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbmZpZ0hlbHBlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiNzE4MmMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sCkBAIC0wLDAgKzEsOTgwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQ29uZmlnSGVscGVySW50ZXJmYWNlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29uZmlnSGVscGVySW50ZXJmYWNlLENvbmZpZ0hlbHBlckludGVyZmFjZSBpbnRlcmZhY2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkNvbmZpZ0hlbHBlckludGVyZmFjZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0ZPTlQ+Cis8QlI+CitJbnRlcmZhY2UgQ29uZmlnSGVscGVySW50ZXJmYWNlPC9IMj4KKzxETD4KKzxEVD48Qj5BbGwgS25vd24gSW1wbGVtZW50aW5nIENsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGludGVyZmFjZSA8Qj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0I+PC9ETD4KKworPFA+CitOT1RFOiBUSElTIENMQVNTIElTIFVOREVSIEFDVElWRSBERVZFTE9QTUVOVC4KKyBUSEUgQ1VSUkVOVCBDT0RFIElTIFdSSVRURU4gRk9SIENMQVJJVFkgTk9UIEVGRklDSUVOQ1kuCisgTk9UIEVWRVJZIEFQSSBGVU5DVElPTiBIQVMgQkVFTiBJTVBMRU1FTlRFRCBZRVQuCisKKyBBIGhlbHBlciBvYmplY3QgdG8gZXhwb3NlIHRoZSBTdHJ1dHMgc2hhcmVkIHJlc291cmNlcywKKyB3aGljaCBhcmUgYmUgc3RvcmVkIGluIHRoZSBhcHBsaWNhdGlvbiwgc2Vzc2lvbiwgb3IKKyByZXF1ZXN0IGNvbnRleHRzLCBhcyBhcHByb3ByaWF0ZS4KKworIEFuIGluc3RhbmNlIHNob3VsZCBiZSBjcmVhdGVkIGZvciBlYWNoIHJlcXVlc3QKKyBwcm9jZXNzZWQuIFRoZSAgbWV0aG9kcyB3aGljaCByZXR1cm4gcmVzb3VyY2VzIGZyb20KKyB0aGUgcmVxdWVzdCBvciBzZXNzaW9uIGNvbnRleHRzIGFyZSBub3QgdGhyZWFkLXNhZmUuCisKKyBQcm92aWRlZCBmb3IgdXNlIGJ5IG90aGVyIHNlcnZsZXRzIGluIHRoZSBhcHBsaWNhdGlvbgorIHNvIHRoZXkgY2FuIGVhc2lseSBhY2Nlc3MgdGhlIFN0cnV0cyBzaGFyZWQgcmVzb3VyY2VzLgorCisgVGhlIHJlc291cmNlcyBhcmUgc3RvcmVkIHVuZGVyIGF0dHJpYnV0ZXMgaW4gdGhlCisgYXBwbGljYXRpb24sIHNlc3Npb24sIG9yIHJlcXVlc3QgY29udGV4dHMuCisKKyBUaGUgQWN0aW9uQ29uZmlnIG1ldGhvZHMgc2ltcGx5IHJldHVybiB0aGUgcmVzb3VyY2VzCisgZnJvbSB1bmRlciB0aGUgY29udGV4dCBhbmQga2V5IHVzZWQgYnkgdGhlIFN0cnV0cworIEFjdGlvblNlcnZsZXQgd2hlbiB0aGUgcmVzb3VyY2VzIGFyZSBjcmVhdGVkLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+MS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPlRlZCBIdXN0ZWQsIEx1aXMgQXJpYXMgPGx1aXNAZWx5c2lhLmNvbT48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QWN0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIFVSTCBmb3IgdGhlIHNwZWNpZmllZCBBY3Rpb25NYXBwaW5nLAorIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uRXJyb3JzKCkiPmdldEFjdGlvbkVycm9yczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QsCisgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbkZvcm0oKSI+Z2V0QWN0aW9uRm9ybTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPkFjdGlvbkZvcm1CZWFuczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbkZvcm1CZWFucygpIj5nZXRBY3Rpb25Gb3JtQmVhbnM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuczwvY29kZT4gY29sbGVjdGlvbgorIGZvciB0aGlzIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QWN0aW9uRm9yd2FyZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3J3YXJkaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGxvZ2ljYWwgbmFtZSwKKyBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbkZvcndhcmRzKCkiPmdldEFjdGlvbkZvcndhcmRzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkczwvY29kZT4gY29sbGVjdGlvbgorIGZvciB0aGlzIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0QWN0aW9uTWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QWN0aW9uTWFwcGluZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBtYXBwaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHJlcXVlc3QgcGF0aCwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbk1hcHBpbmdOYW1lKGphdmEubGFuZy5TdHJpbmcpIj5nZXRBY3Rpb25NYXBwaW5nTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcm0gYWN0aW9uIGNvbnZlcnRlZCBpbnRvIGFuIGFjdGlvbiBtYXBwaW5nIHBhdGguPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5BY3Rpb25NYXBwaW5nczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEFjdGlvbk1hcHBpbmdzKCkiPmdldEFjdGlvbk1hcHBpbmdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzPC9jb2RlPiBjb2xsZWN0aW9uCisgaXMgbm9ybWFsbHkgc3RvcmVkLCB1bmxlc3Mgb3ZlcnJpZGRlbiB3aGVuIGluaXRpYWxpemluZyBvdXIKKyBBY3Rpb25TZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRBY3Rpb25NYXBwaW5nVVJMKGphdmEubGFuZy5TdHJpbmcpIj5nZXRBY3Rpb25NYXBwaW5nVVJMPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FjdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9ybSBhY3Rpb24gY29udmVydGVkIGludG8gYSBzZXJ2ZXItcmVsYXRpdmUgVVJMLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRBY3Rpb25NZXNzYWdlcygpIj5nZXRBY3Rpb25NZXNzYWdlczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW5zPC9jb2RlPiBjb2xsZWN0aW9uCisgZm9yIHRoaXMgYXBwbGljYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEJhc2VSZWYoKSI+Z2V0QmFzZVJlZjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlcnMgdGhlIHJlZmVyZW5jZSBmb3IgYSBIVE1MIDxiYXNlPiBlbGVtZW50PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmF4LnNxbC5EYXRhU291cmNlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXREYXRhU291cmNlKCkiPmdldERhdGFTb3VyY2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0RW5jb2RlVVJMKGphdmEubGFuZy5TdHJpbmcpIj5nZXRFbmNvZGVVUkw8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJsKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSB1cmwgZW5jb2RlZCB0byBtYWludGFpbiB0aGUgdXNlciBzZXNzaW9uLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEVycm9yT3V0cHV0KCkiPmdldEVycm9yT3V0cHV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgZXJyb3JzLmhlYWRlciwgYW55IGVycm9ycywgYW5kIHRoZSBlcnJvcnMuZm9vdGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRFcnJvck91dHB1dChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0RXJyb3JPdXRwdXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBlcnJvcnMuaGVhZGVyLCBhbnkgZXJyb3JzLCBhbmQgdGhlIGVycm9ycy5mb290ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5JdGVyYXRvcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0RXJyb3JzKCkiPmdldEVycm9yczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZXJyb3IgbWVzc2FnZXM8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLkl0ZXJhdG9yPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRFcnJvcnMoamF2YS5sYW5nLlN0cmluZykiPmdldEVycm9yczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBhbiBBY3Rpb25FcnJvciBmb3IgYSBwcm9wZXJ0eTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRFcnJvcnNFbXB0eSgpIj5nZXRFcnJvcnNFbXB0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0cnVlIGlmIHRoZXJlIGFyZSBubyBlcnJvcnMgcXVldWVkPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0RXJyb3JTaXplKCkiPmdldEVycm9yU2l6ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbnVtYmVyIG9mIGVycm9yIG1lc3NhZ2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEVycm9yU2l6ZShqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0RXJyb3JTaXplPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBudW1iZXIgb2YgZXJyb3IgbWVzc2FnZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5UaHJvd2FibGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldEV4Y2VwdGlvbigpIj5nZXRFeGNlcHRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcnVudGltZSBKc3BFeGNlcHRpb24gdGhhdCBtYXkgYmUgYmVlbiB0aHJvd24gYnkgYSBTdHJ1dHMgdGFnCisgZXh0ZW5zaW9uLCBvciBjb21wYXRpYmxlIHByZXNlbnRhdGlvbiBleHRlbnNpb24sIGFuZCBwbGFjZWQKKyBpbiB0aGUgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPkFjdGlvbkZvcm1CZWFuPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0Rm9ybUJlYW4oamF2YS5sYW5nLlN0cmluZykiPmdldEZvcm1CZWFuPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcm0gYmVhbiBkZWZpbml0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkCisgbG9naWNhbCBuYW1lLCBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldExpbmsoamF2YS5sYW5nLlN0cmluZykiPmdldExpbms8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgcGF0aCBmb3IgdGhlIHNwZWNpZmllZCBmb3J3YXJkLAorIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5Mb2NhbGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgPGNvZGU+amF2YS51dGlsLkxvY2FsZTwvY29kZT4gZm9yIHRoZSB1c2VyLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRNYXBwaW5nKCkiPmdldE1hcHBpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuQWN0aW9uTWFwcGluZzwvY29kZT4KKyBpbnN0YW5jZSBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj5nZXRNZXNzYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbG9jYWxpemVkIG1lc3NhZ2UgZm9yIHRoZSBzcGVjaWZpZWQga2V5LAorIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+Z2V0TWVzc2FnZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3RbXSZuYnNwO2FyZ3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb29rIHVwIGFuZCByZXR1cm4gYSBtZXNzYWdlIHN0cmluZywgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldE1lc3NhZ2VSZXNvdXJjZXMoKSI+Z2V0TWVzc2FnZVJlc291cmNlczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhcHBsaWNhdGlvbiByZXNvdXJjZXMgZm9yIHRoaXMgYXBwbGljYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI2dldE11bHRpcGFydFJlcXVlc3RXcmFwcGVyKCkiPmdldE11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG11bHRpcGFydCBvYmplY3QgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0T3JpZ1JlZigpIj5nZXRPcmlnUmVmPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVuZGVycyB0aGUgcmVmZXJlbmNlIGZvciBhIEhUTUwgPGJhc2U+IGVsZW1lbnQ8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0U2VydmxldE1hcHBpbmcoKSI+Z2V0U2VydmxldE1hcHBpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcGF0aC1tYXBwZWQgcGF0dGVybiAoPGNvZGU+L2FjdGlvbi8qPC9jb2RlPikgb3IKKyBleHRlbnNpb24gbWFwcGVkIHBhdHRlcm4gKCg8Y29kZT4qLmRvPC9jb2RlPikKKyB1c2VkIHRvIGRldGVybWluZSBvdXIgQWN0aW9uIFVSSXMgaW4gdGhpcyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0VG9rZW4oKSI+Z2V0VG9rZW48L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdHJhbnNhY3Rpb24gdG9rZW4gc3RvcmVkIGluIHRoaXMgc2Vzc2lvbiwgaWYgaXQgaXMgdXNlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjaXNNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj5pc01lc3NhZ2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRydWUgaWYgYSBtZXNzYWdlIHN0cmluZyBmb3IgdGhlIHNwZWNpZmllZCBtZXNzYWdlIGtleQorIGlzIHByZXNlbnQgZm9yIHRoZSB1c2VyJ3MgTG9jYWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0RGF0YVNvdXJjZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXREYXRhU291cmNlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc3FsLkRhdGFTb3VyY2UgPEI+Z2V0RGF0YVNvdXJjZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWN0aW9uTWVzc2FnZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWN0aW9uTWVzc2FnZXM8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+QWN0aW9uTWVzc2FnZXM8L0E+IDxCPmdldEFjdGlvbk1lc3NhZ2VzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbnM8L2NvZGU+IGNvbGxlY3Rpb24KKyBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWN0aW9uRm9ybUJlYW5zKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdGlvbkZvcm1CZWFuczwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbnMuaHRtbCI+QWN0aW9uRm9ybUJlYW5zPC9BPiA8Qj5nZXRBY3Rpb25Gb3JtQmVhbnM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFuczwvY29kZT4gY29sbGVjdGlvbgorIGZvciB0aGlzIGFwcGxpY2F0aW9uLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBY3Rpb25Gb3J3YXJkcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBY3Rpb25Gb3J3YXJkczwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkcy5odG1sIj5BY3Rpb25Gb3J3YXJkczwvQT4gPEI+Z2V0QWN0aW9uRm9yd2FyZHM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmRzPC9jb2RlPiBjb2xsZWN0aW9uCisgZm9yIHRoaXMgYXBwbGljYXRpb24uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbk1hcHBpbmdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdGlvbk1hcHBpbmdzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmdzLmh0bWwiPkFjdGlvbk1hcHBpbmdzPC9BPiA8Qj5nZXRBY3Rpb25NYXBwaW5nczwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91cgorIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nczwvY29kZT4gY29sbGVjdGlvbgorIGlzIG5vcm1hbGx5IHN0b3JlZCwgdW5sZXNzIG92ZXJyaWRkZW4gd2hlbiBpbml0aWFsaXppbmcgb3VyCisgQWN0aW9uU2VydmxldC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZVJlc291cmNlcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPmdldE1lc3NhZ2VSZXNvdXJjZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGUgYXBwbGljYXRpb24gcmVzb3VyY2VzIGZvciB0aGlzIGFwcGxpY2F0aW9uLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTZXJ2bGV0TWFwcGluZygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTZXJ2bGV0TWFwcGluZzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U2VydmxldE1hcHBpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGUgcGF0aC1tYXBwZWQgcGF0dGVybiAoPGNvZGU+L2FjdGlvbi8qPC9jb2RlPikgb3IKKyBleHRlbnNpb24gbWFwcGVkIHBhdHRlcm4gKCg8Y29kZT4qLmRvPC9jb2RlPikKKyB1c2VkIHRvIGRldGVybWluZSBvdXIgQWN0aW9uIFVSSXMgaW4gdGhpcyBhcHBsaWNhdGlvbi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TG9jYWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5Mb2NhbGUgPEI+Z2V0TG9jYWxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhlIDxjb2RlPmphdmEudXRpbC5Mb2NhbGU8L2NvZGU+IGZvciB0aGUgdXNlciwgaWYgYW55LgorIElmIGEgZGVmYXVsdCBsb2NhbGUgb2JqZWN0IGlzIG5vdCBpbiB0aGUgdXNlcidzIHNlc3Npb24sCisgdGhlIHN5c3RlbSBkZWZhdWx0IGxvY2FsZSBpcyByZXR1cm5lZC4KKyBJZiB1c2VkLCB0aGUgdXNlciBsb2NhbGUgaXMgdHlwaWNhbGx5IHNldCBkdXJpbmcgbG9naW4KKyBwcm9jZXNzaW5nIHVuZGVyIHRoZSBrZXkgPGNvZGU+R2xvYmFscy5MT0NBTEVfS0VZPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VG9rZW4oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VG9rZW48L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFRva2VuPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhlIHRyYW5zYWN0aW9uIHRva2VuIHN0b3JlZCBpbiB0aGlzIHNlc3Npb24sIGlmIGl0IGlzIHVzZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbkVycm9ycygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBY3Rpb25FcnJvcnM8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4gPEI+Z2V0QWN0aW9uRXJyb3JzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCwKKyBmb3IgdGhpcyByZXF1ZXN0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRFeGNlcHRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlRocm93YWJsZSA8Qj5nZXRFeGNlcHRpb248L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGUgcnVudGltZSBKc3BFeGNlcHRpb24gdGhhdCBtYXkgYmUgYmVlbiB0aHJvd24gYnkgYSBTdHJ1dHMgdGFnCisgZXh0ZW5zaW9uLCBvciBjb21wYXRpYmxlIHByZXNlbnRhdGlvbiBleHRlbnNpb24sIGFuZCBwbGFjZWQKKyBpbiB0aGUgcmVxdWVzdC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+IDxCPmdldE11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhlIG11bHRpcGFydCBvYmplY3QgZm9yIHRoaXMgcmVxdWVzdC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWFwcGluZygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNYXBwaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4gPEI+Z2V0TWFwcGluZzwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5BY3Rpb25NYXBwaW5nPC9jb2RlPgorIGluc3RhbmNlIGZvciB0aGlzIHJlcXVlc3QuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzTWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgoraXNNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc01lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRydWUgaWYgYSBtZXNzYWdlIHN0cmluZyBmb3IgdGhlIHNwZWNpZmllZCBtZXNzYWdlIGtleQorIGlzIHByZXNlbnQgZm9yIHRoZSB1c2VyJ3MgTG9jYWxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSBrZXk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbkZvcm0oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWN0aW9uRm9ybTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+IDxCPmdldEFjdGlvbkZvcm08L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGb3JtQmVhbjwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtQmVhbi5odG1sIj5BY3Rpb25Gb3JtQmVhbjwvQT4gPEI+Z2V0Rm9ybUJlYW48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgZm9ybSBiZWFuIGRlZmluaXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQKKyBsb2dpY2FsIG5hbWUsIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBMb2dpY2FsIG5hbWUgb2YgdGhlIHJlcXVlc3RlZCBmb3JtIGJlYW4gZGVmaW5pdGlvbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWN0aW9uRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWN0aW9uRm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+IDxCPmdldEFjdGlvbkZvcndhcmQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgZm9yd2FyZGluZyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBsb2dpY2FsIG5hbWUsCisgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIExvZ2ljYWwgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIGZvcndhcmRpbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbk1hcHBpbmcoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdGlvbk1hcHBpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiA8Qj5nZXRBY3Rpb25NYXBwaW5nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG1hcHBpbmcgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXRoLCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0aDwvQ09ERT4gLSBSZXF1ZXN0IHBhdGggZm9yIHdoaWNoIGEgbWFwcGluZyBpcyByZXF1ZXN0ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbk1hcHBpbmdOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBY3Rpb25NYXBwaW5nTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWN0aW9uTWFwcGluZ05hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb24pPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIGFjdGlvbiBjb252ZXJ0ZWQgaW50byBhbiBhY3Rpb24gbWFwcGluZyBwYXRoLiAgVGhlCisgdmFsdWUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gcHJvcGVydHkgaXMgbWFuaXB1bGF0ZWQgYXMgZm9sbG93cyBpbgorIGNvbXB1dGluZyB0aGUgbmFtZSBvZiB0aGUgcmVxdWVzdGVkIG1hcHBpbmc6CisgPHVsPgorIDxsaT5BbnkgZmlsZW5hbWUgZXh0ZW5zaW9uIGlzIHJlbW92ZWQgKG9uIHRoZSB0aGVvcnkgdGhhdCBleHRlbnNpb24KKyAgICAgbWFwcGluZyBpcyBiZWluZyB1c2VkIHRvIHNlbGVjdCB0aGUgY29udHJvbGxlciBzZXJ2bGV0KS48L2xpPgorIDxsaT5JZiB0aGUgcmVzdWx0aW5nIHZhbHVlIGRvZXMgbm90IHN0YXJ0IHdpdGggYSBzbGFzaCwgdGhlbiBhCisgICAgIHNsYXNoIGlzIHByZXBlbmRlZC48L2xpPgorIDwvdWw+CisgOkZJWE1FOiBCYWQgYXNzdW1wdGlvbiA9Om8pCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbk1hcHBpbmdVUkwoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdGlvbk1hcHBpbmdVUkw8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFjdGlvbk1hcHBpbmdVUkw8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb24pPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIGFjdGlvbiBjb252ZXJ0ZWQgaW50byBhIHNlcnZlci1yZWxhdGl2ZSBVUkwuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEVuY29kZVVSTChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RW5jb2RlVVJMPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRFbmNvZGVVUkw8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmwpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSB1cmwgZW5jb2RlZCB0byBtYWludGFpbiB0aGUgdXNlciBzZXNzaW9uLCBpZiBhbnkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9yaWdSZWYoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0T3JpZ1JlZjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0T3JpZ1JlZjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbmRlcnMgdGhlIHJlZmVyZW5jZSBmb3IgYSBIVE1MIDxiYXNlPiBlbGVtZW50Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEJhc2VSZWYoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QmFzZVJlZjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QmFzZVJlZjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbmRlcnMgdGhlIHJlZmVyZW5jZSBmb3IgYSBIVE1MIDxiYXNlPiBlbGVtZW50Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExpbmsoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExpbms8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldExpbms8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgcGF0aCBmb3IgdGhlIHNwZWNpZmllZCBmb3J3YXJkLAorIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBnaXZlbiB0byBsb2NhbCBvciBnbG9iYWwgZm9yd2FyZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBsb2NhbGl6ZWQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZCBrZXksCisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIE1lc3NhZ2Uga2V5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3RbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3RbXSZuYnNwO2FyZ3MpPC9QUkU+Cis8REw+Cis8REQ+TG9vayB1cCBhbmQgcmV0dXJuIGEgbWVzc2FnZSBzdHJpbmcsIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIE1lc3NhZ2Uga2V5IHRvIGJlIGxvb2tlZCB1cCBhbmQgcmV0dXJuZWQ8REQ+PENPREU+YXJnczwvQ09ERT4gLSBSZXBsYWNlbWVudCBwYXJhbWV0ZXJzIGZvciB0aGlzIG1lc3NhZ2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBY3Rpb248L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgVVJMIGZvciB0aGUgc3BlY2lmaWVkIEFjdGlvbk1hcHBpbmcsCisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGF0aDwvQ09ERT4gLSBOYW1lIGdpdmVuIHRvIGxvY2FsIG9yIGdsb2JhbCBmb3J3YXJkLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RXJyb3JTaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEVycm9yU2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5nZXRFcnJvclNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG51bWJlciBvZiBlcnJvciBtZXNzYWdlcy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RXJyb3JzRW1wdHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RXJyb3JzRW1wdHk8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldEVycm9yc0VtcHR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRydWUgaWYgdGhlcmUgYXJlIG5vIGVycm9ycyBxdWV1ZWQKKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RXJyb3JzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEVycm9yczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5JdGVyYXRvciA8Qj5nZXRFcnJvcnM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGVycm9yIG1lc3NhZ2VzCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEVycm9yT3V0cHV0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEVycm9yT3V0cHV0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRFcnJvck91dHB1dDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIGVycm9ycy5oZWFkZXIsIGFueSBlcnJvcnMsIGFuZCB0aGUgZXJyb3JzLmZvb3Rlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RXJyb3JTaXplKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFcnJvclNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0RXJyb3JTaXplPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBudW1iZXIgb2YgZXJyb3IgbWVzc2FnZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIFByb3BlcnR5IG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEVycm9yT3V0cHV0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFcnJvck91dHB1dDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RXJyb3JPdXRwdXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBlcnJvcnMuaGVhZGVyLCBhbnkgZXJyb3JzLCBhbmQgdGhlIGVycm9ycy5mb290ZXIuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIFByb3BlcnR5IG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEVycm9ycyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RXJyb3JzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkl0ZXJhdG9yIDxCPmdldEVycm9yczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPlJldHVybiBhbiBBY3Rpb25FcnJvciBmb3IgYSBwcm9wZXJ0eQorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBQcm9wZXJ0eSBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdSdWxlU2V0Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ1J1bGVTZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGQ2MzhkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdSdWxlU2V0Lmh0bWwKQEAgLTAsMCArMSwyOTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitDb25maWdSdWxlU2V0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29uZmlnUnVsZVNldCxDb25maWdSdWxlU2V0IGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJDb25maWdSdWxlU2V0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbmZpZ1J1bGVTZXQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb25maWdSdWxlU2V0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZVNldEJhc2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvRk9OVD4KKzxCUj4KK0NsYXNzIENvbmZpZ1J1bGVTZXQ8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZVNldEJhc2UKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29uZmlnUnVsZVNldDwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPm9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlU2V0PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkNvbmZpZ1J1bGVTZXQ8L0I+PERUPmV4dGVuZHMgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLlJ1bGVTZXRCYXNlPC9ETD4KKworPFA+Cis8cD5UaGUgc2V0IG9mIERpZ2VzdGVyIHJ1bGVzIHJlcXVpcmVkIHRvIHBhcnNlIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlICg8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4pLjwvcD4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZVNldEJhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLlJ1bGVTZXRCYXNlPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+bmFtZXNwYWNlVVJJPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ1J1bGVTZXQuaHRtbCNDb25maWdSdWxlU2V0KCkiPkNvbmZpZ1J1bGVTZXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdSdWxlU2V0Lmh0bWwjYWRkUnVsZUluc3RhbmNlcyhvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuRGlnZXN0ZXIpIj5hZGRSdWxlSW5zdGFuY2VzPC9BPjwvQj4ob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyJm5ic3A7ZGlnZXN0ZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgdGhlIHNldCBvZiBSdWxlIGluc3RhbmNlcyBkZWZpbmVkIGluIHRoaXMgUnVsZVNldCB0byB0aGUKKyBzcGVjaWZpZWQgPGNvZGU+RGlnZXN0ZXI8L2NvZGU+IGluc3RhbmNlLCBhc3NvY2lhdGluZyB0aGVtIHdpdGgKKyBvdXIgbmFtZXNwYWNlIFVSSSAoaWYgYW55KS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlU2V0QmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLlJ1bGVTZXRCYXNlPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0TmFtZXNwYWNlVVJJPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkNvbmZpZ1J1bGVTZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorQ29uZmlnUnVsZVNldDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbmZpZ1J1bGVTZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImFkZFJ1bGVJbnN0YW5jZXMob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkUnVsZUluc3RhbmNlczwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkUnVsZUluc3RhbmNlczwvQj4ob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyJm5ic3A7ZGlnZXN0ZXIpPC9QUkU+Cis8REw+Cis8REQ+PHA+QWRkIHRoZSBzZXQgb2YgUnVsZSBpbnN0YW5jZXMgZGVmaW5lZCBpbiB0aGlzIFJ1bGVTZXQgdG8gdGhlCisgc3BlY2lmaWVkIDxjb2RlPkRpZ2VzdGVyPC9jb2RlPiBpbnN0YW5jZSwgYXNzb2NpYXRpbmcgdGhlbSB3aXRoCisgb3VyIG5hbWVzcGFjZSBVUkkgKGlmIGFueSkuICBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSBjYWxsZWQKKyBieSBhIERpZ2VzdGVyIGluc3RhbmNlLiAgVGhlc2UgcnVsZXMgYXNzdW1lIHRoYXQgYW4gaW5zdGFuY2Ugb2YKKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnPC9jb2RlPiBpcyBwdXNoZWQKKyBvbnRvIHRoZSBldmFsdWF0aW9uIHN0YWNrIGJlZm9yZSBwYXJzaW5nIGJlZ2lucy48L3A+Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+YWRkUnVsZUluc3RhbmNlczwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPm9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlU2V0PC9DT0RFPjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5hZGRSdWxlSW5zdGFuY2VzPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZVNldEJhc2U8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kaWdlc3RlcjwvQ09ERT4gLSBEaWdlc3RlciBpbnN0YW5jZSB0byB3aGljaCB0aGUgbmV3IFJ1bGUgaW5zdGFuY2VzCisgIHNob3VsZCBiZSBhZGRlZC48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbmZpZ1J1bGVTZXQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb25maWdSdWxlU2V0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZVNldEJhc2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjZmFmNWQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbApAQCAtMCwwICsxLDEyMDkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitDb250cm9sbGVyQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29udHJvbGxlckNvbmZpZyxDb250cm9sbGVyQ29uZmlnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJDb250cm9sbGVyQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ1J1bGVTZXQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29udHJvbGxlckNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9GT05UPgorPEJSPgorQ2xhc3MgQ29udHJvbGxlckNvbmZpZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Db250cm9sbGVyQ29uZmlnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+Q29udHJvbGxlckNvbmZpZzwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KKzxwPkEgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7Y29udHJvbGxlciZndDs8L2NvZGU+IGVsZW1lbnQgaW4gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9wPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Db250cm9sbGVyQ29uZmlnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI2J1ZmZlclNpemUiPmJ1ZmZlclNpemU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGlucHV0IGJ1ZmZlciBzaXplIGZvciBmaWxlIHVwbG9hZHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjY29uZmlndXJlZCI+Y29uZmlndXJlZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtIYXMgdGhpcyBjb21wb25lbnQgYmVlbiBjb21wbGV0ZWx5IGNvbmZpZ3VyZWQ/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjY29udGVudFR5cGUiPmNvbnRlbnRUeXBlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250ZW50IHR5cGUgYW5kIGNoYXJhY3RlciBlbmNvZGluZyB0byBiZSBzZXQgb24gZWFjaCByZXNwb25zZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI2RlYnVnIj5kZWJ1ZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Db25maWd1cmUgdGhlIGxvZ2dpbmcgZGV0YWlsIGxldmVsIGluIHlvdXIgdW5kZXJseWluZworICBsb2dnaW5nIGltcGxlbWVuYXRpb248L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjZm9yd2FyZFBhdHRlcm4iPmZvcndhcmRQYXR0ZXJuPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSByZXBsYWNlbWVudCBwYXR0ZXJuIHVzZWQgdG8gZGV0ZXJtaW5lIGEgY29udGV4dC1yZWxhdGl2ZSBVUkwKKyBmcm9tIGEgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+PENPREU+Rm9yd2FyZENvbmZpZzwvQ09ERT48L0E+IGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjaW5wdXRGb3J3YXJkIj5pbnB1dEZvcndhcmQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2hvdWxkIHRoZSA8Y29kZT5pbnB1dDwvY29kZT4gcHJvcGVydHkgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj48Q09ERT5BY3Rpb25Db25maWc8L0NPREU+PC9BPgorIGluc3RhbmNlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBtb2R1bGUgYmUgdHJlYXRlZCBhcyB0aGUKKyBuYW1lIG9mIGEgY29ycmVzcG9uZGluZyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj48Q09ERT5Gb3J3YXJkQ29uZmlnPC9DT0RFPjwvQT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjbG9jYWxlIj5sb2NhbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2hvdWxkIHdlIHN0b3JlIGEgTG9jYWxlIG9iamVjdCBpbiB0aGUgdXNlcidzIHNlc3Npb24gaWYgbmVlZGVkPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI21heEZpbGVTaXplIj5tYXhGaWxlU2l6ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWF4aW11bSBmaWxlIHNpemUgdG8gcHJvY2VzcyBmb3IgZmlsZSB1cGxvYWRzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI21lbUZpbGVTaXplIj5tZW1GaWxlU2l6ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWF4aW11bSBmaWxlIHNpemUgdG8gcmV0YWluIGluIG1lbW9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNtdWx0aXBhcnRDbGFzcyI+bXVsdGlwYXJ0Q2xhc3M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyCisgY2xhc3MgdG8gYmUgdXNlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNub2NhY2hlIj5ub2NhY2hlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Nob3VsZCB3ZSBzZXQgbm8tY2FjaGUgSFRUUCBoZWFkZXJzIG9uIGVhY2ggcmVzcG9uc2U/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjcGFnZVBhdHRlcm4iPnBhZ2VQYXR0ZXJuPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSByZXBsYWNlbWVudCBwYXR0ZXJuIHVzZWQgdG8gZGV0ZXJtaW5lIGEgY29udGV4dC1yZWxhdGl2ZSBVUkwKKyBmcm9tIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUgb2YgU3RydXRzIHRhZ3MgYW5kIGNvbmZpZ3VyYXRpb24KKyBwcm9wZXJ0aWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3Byb2Nlc3NvckNsYXNzIj5wcm9jZXNzb3JDbGFzczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgb2YgdGhlIFJlcXVlc3RQcm9jZXNzb3IgaW1wbGVtZW50YXRpb24KKyBjbGFzcyB0byBiZSB1c2VkIGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCN0ZW1wRGlyIj50ZW1wRGlyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB0ZW1wb3Jhcnkgd29ya2luZyBkaXJlY3RvcnkgdG8gdXNlIGZvciBmaWxlIHVwbG9hZHMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI0NvbnRyb2xsZXJDb25maWcoKSI+Q29udHJvbGxlckNvbmZpZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNmcmVlemUoKSI+ZnJlZXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RnJlZXplIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoaXMgY29tcG9uZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNnZXRCdWZmZXJTaXplKCkiPmdldEJ1ZmZlclNpemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI2dldENvbnRlbnRUeXBlKCkiPmdldENvbnRlbnRUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI2dldERlYnVnKCkiPmdldERlYnVnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNnZXRGb3J3YXJkUGF0dGVybigpIj5nZXRGb3J3YXJkUGF0dGVybjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjZ2V0SW5wdXRGb3J3YXJkKCkiPmdldElucHV0Rm9yd2FyZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjZ2V0TWF4RmlsZVNpemUoKSI+Z2V0TWF4RmlsZVNpemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI2dldE1lbUZpbGVTaXplKCkiPmdldE1lbUZpbGVTaXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNnZXRNdWx0aXBhcnRDbGFzcygpIj5nZXRNdWx0aXBhcnRDbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjZ2V0Tm9jYWNoZSgpIj5nZXROb2NhY2hlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNnZXRQYWdlUGF0dGVybigpIj5nZXRQYWdlUGF0dGVybjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjZ2V0UHJvY2Vzc29yQ2xhc3MoKSI+Z2V0UHJvY2Vzc29yQ2xhc3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI2dldFRlbXBEaXIoKSI+Z2V0VGVtcERpcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjc2V0QnVmZmVyU2l6ZShpbnQpIj5zZXRCdWZmZXJTaXplPC9BPjwvQj4oaW50Jm5ic3A7YnVmZmVyU2l6ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjc2V0Q29udGVudFR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRlbnRUeXBlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRlbnRUeXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNzZXREZWJ1ZyhpbnQpIj5zZXREZWJ1ZzwvQT48L0I+KGludCZuYnNwO2RlYnVnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNzZXRGb3J3YXJkUGF0dGVybihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9yd2FyZFBhdHRlcm48L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9yd2FyZFBhdHRlcm4pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3NldElucHV0Rm9yd2FyZChib29sZWFuKSI+c2V0SW5wdXRGb3J3YXJkPC9BPjwvQj4oYm9vbGVhbiZuYnNwO2lucHV0Rm9yd2FyZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjc2V0TG9jYWxlKGJvb2xlYW4pIj5zZXRMb2NhbGU8L0E+PC9CPihib29sZWFuJm5ic3A7bG9jYWxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNzZXRNYXhGaWxlU2l6ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWF4RmlsZVNpemU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWF4RmlsZVNpemUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3NldE1lbUZpbGVTaXplKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNZW1GaWxlU2l6ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZW1GaWxlU2l6ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjc2V0TXVsdGlwYXJ0Q2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE11bHRpcGFydENsYXNzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO211bHRpcGFydENsYXNzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNzZXROb2NhY2hlKGJvb2xlYW4pIj5zZXROb2NhY2hlPC9BPjwvQj4oYm9vbGVhbiZuYnNwO25vY2FjaGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3NldFBhZ2VQYXR0ZXJuKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYWdlUGF0dGVybjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlUGF0dGVybik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwjc2V0UHJvY2Vzc29yQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFByb2Nlc3NvckNsYXNzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb2Nlc3NvckNsYXNzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCNzZXRUZW1wRGlyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUZW1wRGlyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RlbXBEaXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb25maWd1cmVkIj48IS0tIC0tPjwvQT48SDM+Citjb25maWd1cmVkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25maWd1cmVkPC9CPjwvUFJFPgorPERMPgorPEREPkhhcyB0aGlzIGNvbXBvbmVudCBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZD8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJ1ZmZlclNpemUiPjwhLS0gLS0+PC9BPjxIMz4KK2J1ZmZlclNpemU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+YnVmZmVyU2l6ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgaW5wdXQgYnVmZmVyIHNpemUgZm9yIGZpbGUgdXBsb2Fkcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbnRlbnRUeXBlIj48IS0tIC0tPjwvQT48SDM+Citjb250ZW50VHlwZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Y29udGVudFR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRlbnQgdHlwZSBhbmQgY2hhcmFjdGVyIGVuY29kaW5nIHRvIGJlIHNldCBvbiBlYWNoIHJlc3BvbnNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVidWciPjwhLS0gLS0+PC9BPjxIMz4KK2RlYnVnPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPmRlYnVnPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkNvbmZpZ3VyZSB0aGUgbG9nZ2luZyBkZXRhaWwgbGV2ZWwgaW4geW91ciB1bmRlcmx5aW5nCisgIGxvZ2dpbmcgaW1wbGVtZW5hdGlvbjwvST4KKzxQPgorPEREPlRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIHRoYXQgZGV0ZXJtaW5lcyBsb2dnaW5nIHZlcmJvc2l0eS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvcndhcmRQYXR0ZXJuIj48IS0tIC0tPjwvQT48SDM+Citmb3J3YXJkUGF0dGVybjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Zm9yd2FyZFBhdHRlcm48L0I+PC9QUkU+Cis8REw+Cis8REQ+PHA+VGhlIHJlcGxhY2VtZW50IHBhdHRlcm4gdXNlZCB0byBkZXRlcm1pbmUgYSBjb250ZXh0LXJlbGF0aXZlIFVSTAorIGZyb20gYSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj48Q09ERT5Gb3J3YXJkQ29uZmlnPC9DT0RFPjwvQT4gZWxlbWVudC4gIFRoZSBwYXR0ZXJuIG1heSBjb25zaXN0IG9mIGFueQorIGNvbWJpbmF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgbWFya2VycyBhbmQgY2hhcmFjdGVyczo8L3A+CisgPHVsPgorIDxsaT48Y29kZT48c3Ryb25nPiRNPC9zdHJvbmc+PC9jb2RlPiAtIFJlcGxhY2VkIGJ5IHRoZSBtb2R1bGUKKyAgICAgcHJlZml4IGZvciB0aGUgY3VycmVudCBtb2R1bGUuPC9saT4KKyA8bGk+PGNvZGU+PHN0cm9uZz4kUDwvc3Ryb25nPjwvY29kZT4gLSBSZXBsYWNlZCBieSB0aGUgPGNvZGU+cGF0aDwvY29kZT4KKyAgICAgcHJvcGVydHkgb2YgYSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj48Q09ERT5Gb3J3YXJkQ29uZmlnPC9DT0RFPjwvQT4gaW5zdGFuY2UuPC9saT4KKyA8bGk+PGNvZGU+PHN0cm9uZz4kJDwvc3Ryb25nPjwvY29kZT4gLSBSZW5kZXJzIGEgbGl0ZXJhbCBkb2xsYXIgc2lnbgorICAgICAoIiQiKSBjaGFyYWN0ZXIgaW4gdGhlIHJlc3VsdGluZyBVUkwuPC9saT4KKyA8bGk+QSBkb2xsYXIgc2lnbiBmb2xsb3dlZCBieSBhbnkgb3RoZXIgY2hhcmFjdGVyIGlzIHJlc2VydmVkIGZvcgorICAgICBmdXR1cmUgdXNlLCBhbmQgYm90aCBjaGFyYWN0ZXJzIGFyZSBzaWxlbnRseSBzd2FsbG93ZWQuPC9saT4KKyA8bGk+QWxsIG90aGVyIGNoYXJhY3RlcnMgaW4gdGhlIHBhdHRlcm4gYXJlIHBhc3NlZCB0aHJvdWdoIHVuY2hhbmdlZC4KKyAgICAgPC9saT4KKyA8L3VsPgorCisgPHA+SWYgdGhpcyBwcm9wZXJ0eSBpcyBzZXQgdG8gPGNvZGU+bnVsbDwvY29kZT4sIGEgZGVmYXVsdCBwYXR0ZXJuIG9mCisgPGNvZGU+JE0kUDwvY29kZT4gaXMgdXRpbGl6ZWQsIHdoaWNoIGlzIGJhY2t3YXJkcyBjb21wYXRpYmxlIHdpdGgKKyB0aGUgaGFyZCBjb2RlZCBmdW5jdGlvbmFsaXR5IGluIHByaW9yIHZlcnNpb25zLjwvcD4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlucHV0Rm9yd2FyZCI+PCEtLSAtLT48L0E+PEgzPgoraW5wdXRGb3J3YXJkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5pbnB1dEZvcndhcmQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+PHA+U2hvdWxkIHRoZSA8Y29kZT5pbnB1dDwvY29kZT4gcHJvcGVydHkgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj48Q09ERT5BY3Rpb25Db25maWc8L0NPREU+PC9BPgorIGluc3RhbmNlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBtb2R1bGUgYmUgdHJlYXRlZCBhcyB0aGUKKyBuYW1lIG9mIGEgY29ycmVzcG9uZGluZyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj48Q09ERT5Gb3J3YXJkQ29uZmlnPC9DT0RFPjwvQT4uICBBIDxjb2RlPmZhbHNlPC9jb2RlPgorIHZhbHVlIHRyZWF0cyB0aGVtIGFzIGEgbW9kdWxlLXJlbGF0aXZlIHBhdGggKGNvbnNpc3RlbnQKKyB3aXRoIHRoZSBoYXJkIGNvZGVkIGJlaGF2aW9yIG9mIGVhcmxpZXIgdmVyc2lvbnMgb2YgU3RydXRzLjwvcD4KKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9jYWxlIj48IS0tIC0tPjwvQT48SDM+Citsb2NhbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmxvY2FsZTwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgd2Ugc3RvcmUgYSBMb2NhbGUgb2JqZWN0IGluIHRoZSB1c2VyJ3Mgc2Vzc2lvbiBpZiBuZWVkZWQ/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXhGaWxlU2l6ZSI+PCEtLSAtLT48L0E+PEgzPgorbWF4RmlsZVNpemU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm1heEZpbGVTaXplPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtYXhpbXVtIGZpbGUgc2l6ZSB0byBwcm9jZXNzIGZvciBmaWxlIHVwbG9hZHMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZW1GaWxlU2l6ZSI+PCEtLSAtLT48L0E+PEgzPgorbWVtRmlsZVNpemU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm1lbUZpbGVTaXplPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtYXhpbXVtIGZpbGUgc2l6ZSB0byByZXRhaW4gaW4gbWVtb3J5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibXVsdGlwYXJ0Q2xhc3MiPjwhLS0gLS0+PC9BPjxIMz4KK211bHRpcGFydENsYXNzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5tdWx0aXBhcnRDbGFzczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIKKyBjbGFzcyB0byBiZSB1c2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibm9jYWNoZSI+PCEtLSAtLT48L0E+PEgzPgorbm9jYWNoZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+bm9jYWNoZTwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgd2Ugc2V0IG5vLWNhY2hlIEhUVFAgaGVhZGVycyBvbiBlYWNoIHJlc3BvbnNlPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFnZVBhdHRlcm4iPjwhLS0gLS0+PC9BPjxIMz4KK3BhZ2VQYXR0ZXJuPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlUGF0dGVybjwvQj48L1BSRT4KKzxETD4KKzxERD48cD5UaGUgcmVwbGFjZW1lbnQgcGF0dGVybiB1c2VkIHRvIGRldGVybWluZSBhIGNvbnRleHQtcmVsYXRpdmUgVVJMCisgZnJvbSB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIG9mIFN0cnV0cyB0YWdzIGFuZCBjb25maWd1cmF0aW9uCisgcHJvcGVydGllcy4gIFRoZSBwYXR0ZXJuIG1heSBjb25zaXN0IG9mIGFueSBjb21iaW5hdGlvbiBvZiB0aGUKKyBmb2xsb3dpbmcgbWFya2VycyBhbmQgY2hhcmFjdGVyczo8L3A+CisgPHVsPgorIDxsaT48Y29kZT48c3Ryb25nPiRNPC9zdHJvbmc+PC9jb2RlPiAtIFJlcGxhY2VkIGJ5IHRoZSBtb2R1bGUKKyAgICAgcHJlZml4IGZvciB0aGUgY3VycmVudCBtb2R1bGUuPC9saT4KKyA8bGk+PGNvZGU+PHN0cm9uZz4kUDwvc3Ryb25nPjwvY29kZT4gLSBSZXBsYWNlZCBieSB0aGUgPGNvZGU+cGFnZTwvY29kZT4KKyAgICAgYXR0cmlidXRlIHZhbHVlIGJlaW5nIGV2YWx1YXRlZC48L2xpPgorIDxsaT48Y29kZT48c3Ryb25nPiQkPC9zdHJvbmc+PC9jb2RlPiAtIFJlbmRlcnMgYSBsaXRlcmFsIGRvbGxhciBzaWduCisgICAgICgiJCIpIGNoYXJhY3RlciBpbiB0aGUgcmVzdWx0aW5nIFVSTC48L2xpPgorIDxsaT5BIGRvbGxhciBzaWduIGZvbGxvd2VkIGJ5IGFueSBvdGhlciBjaGFyYWN0ZXIgaXMgcmVzZXJ2ZWQgZm9yCisgICAgIGZ1dHVyZSB1c2UsIGFuZCBib3RoIGNoYXJhY3RlcnMgYXJlIHNpbGVudGx5IHN3YWxsb3dlZC48L2xpPgorIDxsaT5BbGwgb3RoZXIgY2hhcmFjdGVycyBpbiB0aGUgcGF0dGVybiBhcmUgcGFzc2VkIHRocm91Z2ggdW5jaGFuZ2VkLgorICAgICA8L2xpPgorIDwvdWw+CisKKyA8cD5JZiB0aGlzIHByb3BlcnR5IGlzIHNldCB0byA8Y29kZT5udWxsPC9jb2RlPiwgYSBkZWZhdWx0IHBhdHRlcm4gb2YKKyA8Y29kZT4kTSRQPC9jb2RlPiBpcyB1dGlsaXplZCwgd2hpY2ggaXMgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aAorIHRoZSBoYXJkIGNvZGVkIGZ1bmN0aW9uYWxpdHkgaW4gcHJpb3IgdmVyc2lvbnMuPC9wPgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc29yQ2xhc3MiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NvckNsYXNzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9jZXNzb3JDbGFzczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgb2YgdGhlIFJlcXVlc3RQcm9jZXNzb3IgaW1wbGVtZW50YXRpb24KKyBjbGFzcyB0byBiZSB1c2VkIGZvciB0aGlzIG1vZHVsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRlbXBEaXIiPjwhLS0gLS0+PC9BPjxIMz4KK3RlbXBEaXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRlbXBEaXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHRlbXBvcmFyeSB3b3JraW5nIGRpcmVjdG9yeSB0byB1c2UgZm9yIGZpbGUgdXBsb2Fkcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJDb250cm9sbGVyQ29uZmlnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0NvbnRyb2xsZXJDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Db250cm9sbGVyQ29uZmlnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRCdWZmZXJTaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEJ1ZmZlclNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0QnVmZmVyU2l6ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QnVmZmVyU2l6ZShpbnQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRCdWZmZXJTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRCdWZmZXJTaXplPC9CPihpbnQmbmJzcDtidWZmZXJTaXplKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Q29udGVudFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29udGVudFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldENvbnRlbnRUeXBlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb250ZW50VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Q29udGVudFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbnRlbnRUeXBlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udGVudFR5cGUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXREZWJ1ZygpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWJ1ZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5nZXREZWJ1ZzwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RGVidWcoaW50KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RGVidWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldERlYnVnPC9CPihpbnQmbmJzcDtkZWJ1Zyk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZvcndhcmRQYXR0ZXJuKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZvcndhcmRQYXR0ZXJuPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGb3J3YXJkUGF0dGVybjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Rm9yd2FyZFBhdHRlcm4oamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZvcndhcmRQYXR0ZXJuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGb3J3YXJkUGF0dGVybjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZvcndhcmRQYXR0ZXJuKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SW5wdXRGb3J3YXJkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElucHV0Rm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0SW5wdXRGb3J3YXJkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJbnB1dEZvcndhcmQoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElucHV0Rm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SW5wdXRGb3J3YXJkPC9CPihib29sZWFuJm5ic3A7aW5wdXRGb3J3YXJkKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TG9jYWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0TG9jYWxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMb2NhbGUoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TG9jYWxlPC9CPihib29sZWFuJm5ic3A7bG9jYWxlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWF4RmlsZVNpemUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWF4RmlsZVNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1heEZpbGVTaXplPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNYXhGaWxlU2l6ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TWF4RmlsZVNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE1heEZpbGVTaXplPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWF4RmlsZVNpemUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZW1GaWxlU2l6ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZW1GaWxlU2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TWVtRmlsZVNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE1lbUZpbGVTaXplKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNZW1GaWxlU2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TWVtRmlsZVNpemU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZW1GaWxlU2l6ZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE11bHRpcGFydENsYXNzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE11bHRpcGFydENsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNdWx0aXBhcnRDbGFzczwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TXVsdGlwYXJ0Q2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE11bHRpcGFydENsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRNdWx0aXBhcnRDbGFzczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO211bHRpcGFydENsYXNzKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Tm9jYWNoZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROb2NhY2hlPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXROb2NhY2hlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROb2NhY2hlKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXROb2NhY2hlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROb2NhY2hlPC9CPihib29sZWFuJm5ic3A7bm9jYWNoZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhZ2VQYXR0ZXJuKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhZ2VQYXR0ZXJuPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYWdlUGF0dGVybjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFnZVBhdHRlcm4oamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhZ2VQYXR0ZXJuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYWdlUGF0dGVybjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2VQYXR0ZXJuKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvY2Vzc29yQ2xhc3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvY2Vzc29yQ2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb2Nlc3NvckNsYXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9jZXNzb3JDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvY2Vzc29yQ2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb2Nlc3NvckNsYXNzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvY2Vzc29yQ2xhc3MpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUZW1wRGlyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFRlbXBEaXI8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFRlbXBEaXI8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFRlbXBEaXIoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFRlbXBEaXI8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFRlbXBEaXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0ZW1wRGlyKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZnJlZXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZyZWV6ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZnJlZXplPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+RnJlZXplIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoaXMgY29tcG9uZW50LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0b1N0cmluZygpIj48IS0tIC0tPjwvQT48SDM+Cit0b1N0cmluZzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+dG9TdHJpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gYSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+dG9TdHJpbmc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEubGFuZy5PYmplY3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db250cm9sbGVyQ29uZmlnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdSdWxlU2V0Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbnRyb2xsZXJDb25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1ODM1ODYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbApAQCAtMCwwICsxLDUyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0RhdGFTb3VyY2VDb25maWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnLERhdGFTb3VyY2VDb25maWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkRhdGFTb3VyY2VDb25maWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRhdGFTb3VyY2VDb25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvRk9OVD4KKzxCUj4KK0NsYXNzIERhdGFTb3VyY2VDb25maWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRGF0YVNvdXJjZUNvbmZpZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkRhdGFTb3VyY2VDb25maWc8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ETD4KKworPFA+Cis8cD5BIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O2RhdGEtc291cmNlJmd0OzwvY29kZT4gZWxlbWVudCBmcm9tIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjwvcD4KKworIDxwPjxzdHJvbmc+V0FSTklORzwvc3Ryb25nPiAtIFRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgY29uZmlndXJhdGlvbiBiZWFuCisgYXJlIHJlY29nbml6ZWQgYnkgdGhlIGRlZmF1bHQgZGF0YSBzb3VyY2UgaW1wbGVtZW50YXRpb24sIGJ1dCBzb21lIG9yIGFsbAorIG9mIHRoZW0gbWF5IGJlIGlnbm9yZWQgYnkgY3VzdG9tIGRhdGEgc291cmNlIGltcGxlbWVudGF0aW9ucy48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkRhdGFTb3VyY2VDb25maWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sI2NvbmZpZ3VyZWQiPmNvbmZpZ3VyZWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFzIHRoaXMgY29tcG9uZW50IGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sI2tleSI+a2V5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSB1bmRlciB3aGljaCB0aGlzIGRhdGEgc291cmNlCisgaXMgc3RvcmVkIGFuZCBtYWRlIGF2YWlsYWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNoTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwjcHJvcGVydGllcyI+cHJvcGVydGllczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY3VzdG9tIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhpcyBkYXRhIHNvdXJjZSBpbXBsZW1lbnRhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCN0eXBlIj50eXBlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSBvZiB0aGUgPGNvZGU+amF2YXguc3FsLkRhdGFTb3VyY2U8L2NvZGU+CisgaW1wbGVtZW50YXRpb24gY2xhc3MuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sI0RhdGFTb3VyY2VDb25maWcoKSI+RGF0YVNvdXJjZUNvbmZpZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCNhZGRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+YWRkUHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ldyBjdXN0b20gY29uZmlndXJhdGlvbiBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sI2ZyZWV6ZSgpIj5mcmVlemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGcmVlemUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBkYXRhIHNvdXJjZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sI2dldEtleSgpIj5nZXRLZXk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLk1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sI2dldFByb3BlcnRpZXMoKSI+Z2V0UHJvcGVydGllczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwjZ2V0VHlwZSgpIj5nZXRUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCNzZXRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEtleTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldFR5cGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbmZpZ3VyZWQiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmZpZ3VyZWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmZpZ3VyZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SGFzIHRoaXMgY29tcG9uZW50IGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ia2V5Ij48IS0tIC0tPjwvQT48SDM+CitrZXk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmtleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggdGhpcyBkYXRhIHNvdXJjZQorIGlzIHN0b3JlZCBhbmQgbWFkZSBhdmFpbGFibGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0aWVzIj48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0aWVzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2hNYXAgPEI+cHJvcGVydGllczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY3VzdG9tIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhpcyBkYXRhIHNvdXJjZSBpbXBsZW1lbnRhdGlvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KK3R5cGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIG9mIHRoZSA8Y29kZT5qYXZheC5zcWwuRGF0YVNvdXJjZTwvY29kZT4KKyBpbXBsZW1lbnRhdGlvbiBjbGFzcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJEYXRhU291cmNlQ29uZmlnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0RhdGFTb3VyY2VDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5EYXRhU291cmNlQ29uZmlnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRLZXkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0S2V5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRLZXk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEtleShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0S2V5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRLZXk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0aWVzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnRpZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuTWFwIDxCPmdldFByb3BlcnRpZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VHlwZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VHlwZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkUHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5BZGQgYSBuZXcgY3VzdG9tIGNvbmZpZ3VyYXRpb24gcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gQ3VzdG9tIHByb3BlcnR5IG5hbWU8REQ+PENPREU+dmFsdWU8L0NPREU+IC0gQ3VzdG9tIHByb3BlcnR5IHZhbHVlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmcmVlemUoKSI+PCEtLSAtLT48L0E+PEgzPgorZnJlZXplPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5mcmVlemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5GcmVlemUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBkYXRhIHNvdXJjZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9TdHJpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgordG9TdHJpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU3RyaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnRvU3RyaW5nPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRhdGFTb3VyY2VDb25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzM3ZTRmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbApAQCAtMCwwICsxLDcyMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0V4Y2VwdGlvbkNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZyxFeGNlcHRpb25Db25maWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkV4Y2VwdGlvbkNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9FeGNlcHRpb25Db25maWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkV4Y2VwdGlvbkNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9GT05UPgorPEJSPgorQ2xhc3MgRXhjZXB0aW9uQ29uZmlnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkV4Y2VwdGlvbi5odG1sIj5BY3Rpb25FeGNlcHRpb248L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkV4Y2VwdGlvbkNvbmZpZzwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KKzxwPkEgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGFuCisgPGNvZGU+Jmx0O2V4Y2VwdGlvbiZndDs8L2NvZGU+IGVsZW1lbnQgZnJvbSBhIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNidW5kbGUiPmJ1bmRsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSB1bmRlciB3aGljaCB0aGUgbWVzc2FnZSByZXNvdXJjZXMgYnVuZGxlCisgdG8gYmUgdXNlZCBmb3IgdGhpcyBleGNlcHRpb24gaXMgbG9jYXRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI2NvbmZpZ3VyZWQiPmNvbmZpZ3VyZWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFzIHRoaXMgY29tcG9uZW50IGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjaGFuZGxlciI+aGFuZGxlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgZXhjZXB0aW9uIGhhbmRsZXIgY2xhc3MKKyB3aGljaCBzaG91bGQgYmUgaW5zdGFudGlhdGVkIHRvIGhhbmRsZSB0aGlzIGV4Y2VwdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI2tleSI+a2V5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgc3BlY2lmeWluZyB0aGUgZXJyb3IgbWVzc2FnZQorIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGV4Y2VwdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI3BhdGgiPnBhdGg8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIG9mIHRoZSByZXNvdXJjZSB0byBmb3J3YXJkIHRvIGlmIHRoaXMKKyBleGNlcHRpb24gb2NjdXJzIGR1cmluZyBhbiA8Y29kZT5BY3Rpb248L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjc2NvcGUiPnNjb3BlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzY29wZSBpbiB3aGljaCB3ZSBzaG91bGQgZXhwb3NlIHRoZSBBY3Rpb25FcnJvciBmb3IgdGhpcyBleGNlcHRpb24KKyBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjdHlwZSI+dHlwZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgZXhjZXB0aW9uIHRoYXQgaXMgdG8gYmUKKyBoYW5kbGVkIGJ5IHRoaXMgaGFuZGxlci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNFeGNlcHRpb25Db25maWcoKSI+RXhjZXB0aW9uQ29uZmlnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjZnJlZXplKCkiPmZyZWV6ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZyZWV6ZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIGNvbXBvbmVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNnZXRIYW5kbGVyKCkiPmdldEhhbmRsZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjZ2V0S2V5KCkiPmdldEtleTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNnZXRQYXRoKCkiPmdldFBhdGg8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjZ2V0VHlwZSgpIj5nZXRUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QnVuZGxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNzZXRIYW5kbGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIYW5kbGVyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2hhbmRsZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjc2V0S2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRLZXk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI3NldFBhdGgoamF2YS5sYW5nLlN0cmluZykiPnNldFBhdGg8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VHlwZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb25maWd1cmVkIj48IS0tIC0tPjwvQT48SDM+Citjb25maWd1cmVkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25maWd1cmVkPC9CPjwvUFJFPgorPERMPgorPEREPkhhcyB0aGlzIGNvbXBvbmVudCBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZD8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJ1bmRsZSI+PCEtLSAtLT48L0E+PEgzPgorYnVuZGxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5idW5kbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUgdW5kZXIgd2hpY2ggdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGJ1bmRsZQorIHRvIGJlIHVzZWQgZm9yIHRoaXMgZXhjZXB0aW9uIGlzIGxvY2F0ZWQuICBJZiBub3Qgc2V0LCB0aGUgZGVmYXVsdAorIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGUgY3VycmVudCBtb2R1bGUgaXMgYXNzdW1lZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImhhbmRsZXIiPjwhLS0gLS0+PC9BPjxIMz4KK2hhbmRsZXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmhhbmRsZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyIGNsYXNzCisgd2hpY2ggc2hvdWxkIGJlIGluc3RhbnRpYXRlZCB0byBoYW5kbGUgdGhpcyBleGNlcHRpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJrZXkiPjwhLS0gLS0+PC9BPjxIMz4KK2tleTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+a2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgc3BlY2lmeWluZyB0aGUgZXJyb3IgbWVzc2FnZQorIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGV4Y2VwdGlvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhdGgiPjwhLS0gLS0+PC9BPjxIMz4KK3BhdGg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhdGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIG9mIHRoZSByZXNvdXJjZSB0byBmb3J3YXJkIHRvIGlmIHRoaXMKKyBleGNlcHRpb24gb2NjdXJzIGR1cmluZyBhbiA8Y29kZT5BY3Rpb248L2NvZGU+LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2NvcGUiPjwhLS0gLS0+PC9BPjxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgaW4gd2hpY2ggd2Ugc2hvdWxkIGV4cG9zZSB0aGUgQWN0aW9uRXJyb3IgZm9yIHRoaXMgZXhjZXB0aW9uCisgaGFuZGxlci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KK3R5cGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGV4Y2VwdGlvbiB0aGF0IGlzIHRvIGJlCisgaGFuZGxlZCBieSB0aGlzIGhhbmRsZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRXhjZXB0aW9uQ29uZmlnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0V4Y2VwdGlvbkNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkV4Y2VwdGlvbkNvbmZpZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0QnVuZGxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QnVuZGxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QnVuZGxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SGFuZGxlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRIYW5kbGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRIYW5kbGVyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRIYW5kbGVyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRIYW5kbGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRIYW5kbGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aGFuZGxlcik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEtleSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRLZXk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEtleTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0S2V5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRLZXk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEtleTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhdGgoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGF0aDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGF0aDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGF0aChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGF0aDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGF0aDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTY29wZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U2NvcGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VHlwZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VHlwZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmcmVlemUoKSI+PCEtLSAtLT48L0E+PEgzPgorZnJlZXplPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5mcmVlemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5GcmVlemUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBjb21wb25lbnQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRvU3RyaW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3RvU3RyaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj50b1N0cmluZzwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT50b1N0cmluZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRXhjZXB0aW9uQ29uZmlnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4MzBjMWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwKQEAgLTAsMCArMSw3NTkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitGb3JtQmVhbkNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnLEZvcm1CZWFuQ29uZmlnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJGb3JtQmVhbkNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Gb3JtQmVhbkNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRm9ybUJlYW5Db25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvRk9OVD4KKzxCUj4KK0NsYXNzIEZvcm1CZWFuQ29uZmlnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkZvcm1CZWFuQ29uZmlnPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorPHA+QSBKYXZhQmVhbiByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgYQorIDxjb2RlPiZsdDtmb3JtLWJlYW4mZ3Q7PC9jb2RlPiBlbGVtZW50IGluIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjxwPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2NvbmZpZ3VyZWQiPmNvbmZpZ3VyZWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFzIHRoaXMgY29tcG9uZW50IGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNkeW5hbWljIj5keW5hbWljPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0lzIHRoZSBmb3JtIGJlYW4gY2xhc3MgYW4gaW5zdGFuY2Ugb2YgRHluYUFjdGlvbkZvcm0gd2l0aCBkeW5hbWljCisgcHJvcGVydGllcz88L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNoTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2Zvcm1Qcm9wZXJ0aWVzIj5mb3JtUHJvcGVydGllczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2V0IG9mIEZvcm1Qcm9wZXJ0eSBlbGVtZW50cyBkZWZpbmluZyBkeW5hbWljIGZvcm0gcHJvcGVydGllcyBmb3IKKyB0aGlzIGZvcm0gYmVhbiwga2V5ZWQgYnkgcHJvcGVydHkgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNtb2R1bGVDb25maWciPm1vZHVsZUNvbmZpZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPiB3aXRoIHdoaWNoIHRoaXMgZm9ybSBiZWFuIGRlZmluaXRpb24KKyBpcyBhc3NvY2lhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGlzIGZvcm0gYmVhbiwgd2hpY2ggaXMgdXNlZCB0byByZWZlcmVuY2UgdGhpcworIGJlYW4gaW4gPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gaW5zdGFuY2VzIGFzIHdlbGwgYXMgZm9yIHRoZSBuYW1lIG9mCisgdGhlIHJlcXVlc3Qgb3Igc2Vzc2lvbiBhdHRyaWJ1dGUgdW5kZXIgd2hpY2ggdGhlIGNvcnJlc3BvbmRpbmcgZm9ybSBiZWFuCisgaW5zdGFuY2UgaXMgY3JlYXRlZCBvciBhY2Nlc3NlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjdHlwZSI+dHlwZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3MKKyB0byBiZSB1c2VkIG9yIGdlbmVyYXRlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI0Zvcm1CZWFuQ29uZmlnKCkiPkZvcm1CZWFuQ29uZmlnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNhZGRGb3JtUHJvcGVydHlDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1Qcm9wZXJ0eUNvbmZpZykiPmFkZEZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ldyA8Y29kZT5Gb3JtUHJvcGVydHlDb25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNmaW5kRm9ybVByb3BlcnR5Q29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9ybVByb3BlcnR5Q29uZmlnPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcm0gcHJvcGVydHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eQorIG5hbWUsIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj5Gb3JtUHJvcGVydHlDb25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjZmluZEZvcm1Qcm9wZXJ0eUNvbmZpZ3MoKSI+ZmluZEZvcm1Qcm9wZXJ0eUNvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcm0gcHJvcGVydHkgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLkNsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2Zvcm1CZWFuQ2xhc3MoKSI+Zm9ybUJlYW5DbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgPGNvZGU+Q2xhc3M8L2NvZGU+IGluc3RhbmNlIGZvciB0aGUgZm9ybSBiZWFuIGltcGxlbWVudGF0aW9uCisgY29uZmlndXJlZCBieSB0aGlzIDxjb2RlPkZvcm1CZWFuQ29uZmlnPC9jb2RlPiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNmcmVlemUoKSI+ZnJlZXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RnJlZXplIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoaXMgY29tcG9uZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2dldER5bmFtaWMoKSI+Z2V0RHluYW1pYzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjZ2V0TW9kdWxlQ29uZmlnKCkiPmdldE1vZHVsZUNvbmZpZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPiB3aXRoIHdoaWNoIHRoaXMgZm9ybSBiZWFuIGRlZmluaXRpb24KKyBpcyBhc3NvY2lhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2dldFR5cGUoKSI+Z2V0VHlwZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI3JlbW92ZUZvcm1Qcm9wZXJ0eUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybVByb3BlcnR5Q29uZmlnKSI+cmVtb3ZlRm9ybVByb3BlcnR5Q29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj5Gb3JtUHJvcGVydHlDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZm9ybSBwcm9wZXJ0eSBjb25maWd1cmF0aW9uIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI3NldER5bmFtaWMoYm9vbGVhbikiPnNldER5bmFtaWM8L0E+PC9CPihib29sZWFuJm5ic3A7ZHluYW1pYyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlRoZSB2YWx1ZSB0byBiZSByZXR1cm5lZCBieSA8Y29kZT5nZXREeW5hbWljKCk8L2NvZGU+CisgaXMgbm93IGNvbXB1dGVkIGF1dG9tYXRpY2FsbHkgaW4gPGNvZGU+c2V0VHlwZSgpPC9jb2RlPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNzZXRNb2R1bGVDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPnNldE1vZHVsZUNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO21vZHVsZUNvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPiB3aXRoIHdoaWNoIHRoaXMgZm9ybSBiZWFuIGRlZmluaXRpb24KKyBpcyBhc3NvY2lhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldFR5cGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb25maWd1cmVkIj48IS0tIC0tPjwvQT48SDM+Citjb25maWd1cmVkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25maWd1cmVkPC9CPjwvUFJFPgorPERMPgorPEREPkhhcyB0aGlzIGNvbXBvbmVudCBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZD8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvcm1Qcm9wZXJ0aWVzIj48IS0tIC0tPjwvQT48SDM+Citmb3JtUHJvcGVydGllczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5IYXNoTWFwIDxCPmZvcm1Qcm9wZXJ0aWVzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgRm9ybVByb3BlcnR5IGVsZW1lbnRzIGRlZmluaW5nIGR5bmFtaWMgZm9ybSBwcm9wZXJ0aWVzIGZvcgorIHRoaXMgZm9ybSBiZWFuLCBrZXllZCBieSBwcm9wZXJ0eSBuYW1lLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZHluYW1pYyI+PCEtLSAtLT48L0E+PEgzPgorZHluYW1pYzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+ZHluYW1pYzwvQj48L1BSRT4KKzxETD4KKzxERD5JcyB0aGUgZm9ybSBiZWFuIGNsYXNzIGFuIGluc3RhbmNlIG9mIER5bmFBY3Rpb25Gb3JtIHdpdGggZHluYW1pYworIHByb3BlcnRpZXM/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtb2R1bGVDb25maWciPjwhLS0gLS0+PC9BPjxIMz4KK21vZHVsZUNvbmZpZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiA8Qj5tb2R1bGVDb25maWc8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4gd2l0aCB3aGljaCB0aGlzIGZvcm0gYmVhbiBkZWZpbml0aW9uCisgaXMgYXNzb2NpYXRlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoaXMgZm9ybSBiZWFuLCB3aGljaCBpcyB1c2VkIHRvIHJlZmVyZW5jZSB0aGlzCisgYmVhbiBpbiA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPiBpbnN0YW5jZXMgYXMgd2VsbCBhcyBmb3IgdGhlIG5hbWUgb2YKKyB0aGUgcmVxdWVzdCBvciBzZXNzaW9uIGF0dHJpYnV0ZSB1bmRlciB3aGljaCB0aGUgY29ycmVzcG9uZGluZyBmb3JtIGJlYW4KKyBpbnN0YW5jZSBpcyBjcmVhdGVkIG9yIGFjY2Vzc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idHlwZSI+PCEtLSAtLT48L0E+PEgzPgordHlwZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3MKKyB0byBiZSB1c2VkIG9yIGdlbmVyYXRlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJGb3JtQmVhbkNvbmZpZygpIj48IS0tIC0tPjwvQT48SDM+CitGb3JtQmVhbkNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkZvcm1CZWFuQ29uZmlnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXREeW5hbWljKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldER5bmFtaWM8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldER5bmFtaWM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldER5bmFtaWMoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldER5bmFtaWM8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldER5bmFtaWM8L0I+KGJvb2xlYW4mbmJzcDtkeW5hbWljKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlRoZSB2YWx1ZSB0byBiZSByZXR1cm5lZCBieSA8Y29kZT5nZXREeW5hbWljKCk8L2NvZGU+CisgaXMgbm93IGNvbXB1dGVkIGF1dG9tYXRpY2FsbHkgaW4gPGNvZGU+c2V0VHlwZSgpPC9jb2RlPjwvST4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TW9kdWxlQ29uZmlnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1vZHVsZUNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiA8Qj5nZXRNb2R1bGVDb25maWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4gd2l0aCB3aGljaCB0aGlzIGZvcm0gYmVhbiBkZWZpbml0aW9uCisgaXMgYXNzb2NpYXRlZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TW9kdWxlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNb2R1bGVDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE1vZHVsZUNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPiB3aXRoIHdoaWNoIHRoaXMgZm9ybSBiZWFuIGRlZmluaXRpb24KKyBpcyBhc3NvY2lhdGVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tb2R1bGVDb25maWc8L0NPREU+IC0gVGhlIG5ldyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+IG9yIDxjb2RlPm51bGw8L2NvZGU+CisgIHRvIGRpc2Fzc29jaWF0ZSB0aGlzIGZvcm0gYmVhbiBjb25maWd1cmF0aW9uIGZyb20gYW55IG1vZHVsZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VHlwZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VHlwZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGRGb3JtUHJvcGVydHlDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1Qcm9wZXJ0eUNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZEZvcm1Qcm9wZXJ0eUNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkRm9ybVByb3BlcnR5Q29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGEgbmV3IDxjb2RlPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIFRoZSBuZXcgY29uZmlndXJhdGlvbiBpbnN0YW5jZSB0byBiZSBhZGRlZAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIHByb3BlcnR5IG5hbWUgaGFzIGFscmVhZHkKKyAgYmVlbiBkZWZpbmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRm9ybVByb3BlcnR5Q29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRm9ybVByb3BlcnR5Q29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj5Gb3JtUHJvcGVydHlDb25maWc8L0E+IDxCPmZpbmRGb3JtUHJvcGVydHlDb25maWc8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgZm9ybSBwcm9wZXJ0eSBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5CisgbmFtZSwgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIEZvcm0gcHJvcGVydHkgbmFtZSB0byBmaW5kIGEgY29uZmlndXJhdGlvbiBmb3I8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRGb3JtUHJvcGVydHlDb25maWdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRGb3JtUHJvcGVydHlDb25maWdzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj5Gb3JtUHJvcGVydHlDb25maWc8L0E+W10gPEI+ZmluZEZvcm1Qcm9wZXJ0eUNvbmZpZ3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGZvcm0gcHJvcGVydHkgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLiAgSWYgdGhlcmUKKyBhcmUgbm9uZSwgYSB6ZXJvLWxlbmd0aCBhcnJheSBpcyByZXR1cm5lZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZnJlZXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZyZWV6ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZnJlZXplPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+RnJlZXplIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoaXMgY29tcG9uZW50LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW1vdmVGb3JtUHJvcGVydHlDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1Qcm9wZXJ0eUNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbW92ZUZvcm1Qcm9wZXJ0eUNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVtb3ZlRm9ybVByb3BlcnR5Q29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZm9ybSBwcm9wZXJ0eSBjb25maWd1cmF0aW9uIGluc3RhbmNlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gRm9ybVByb3BlcnR5Q29uZmlnIGluc3RhbmNlIHRvIGJlIHJlbW92ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRvU3RyaW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3RvU3RyaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj50b1N0cmluZzwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT50b1N0cmluZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvcm1CZWFuQ2xhc3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZm9ybUJlYW5DbGFzczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5DbGFzcyA8Qj5mb3JtQmVhbkNsYXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSA8Y29kZT5DbGFzczwvY29kZT4gaW5zdGFuY2UgZm9yIHRoZSBmb3JtIGJlYW4gaW1wbGVtZW50YXRpb24KKyBjb25maWd1cmVkIGJ5IHRoaXMgPGNvZGU+Rm9ybUJlYW5Db25maWc8L2NvZGU+IGluc3RhbmNlLiAgVGhpcyBtZXRob2QKKyB1c2VzIHRoZSBzYW1lIGFsZ29yaXRobSBhcyA8Y29kZT5SZXF1ZXN0VXRpbHMuYXBwbGljYXRpb25DbGFzcygpPC9jb2RlPgorIGJ1dCBpcyByZXByb2R1Y2VkIHRvIGF2b2lkIGEgcnVudGltZSBkZXBlbmRlbmNlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Gb3JtQmVhbkNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRm9ybUJlYW5Db25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGQ2N2UzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbApAQCAtMCwwICsxLDcxMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0Zvcm1Qcm9wZXJ0eUNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1Qcm9wZXJ0eUNvbmZpZyxGb3JtUHJvcGVydHlDb25maWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkZvcm1Qcm9wZXJ0eUNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9GT05UPgorPEJSPgorQ2xhc3MgRm9ybVByb3BlcnR5Q29uZmlnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KKzxwPkEgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7Zm9ybS1wcm9wZXJ0eSZndDs8L2NvZGU+IGVsZW1lbnQgaW4gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPHA+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1Qcm9wZXJ0eUNvbmZpZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCNjb25maWd1cmVkIj5jb25maWd1cmVkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0hhcyB0aGlzIGNvbXBvbmVudCBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZD88L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sI2luaXRpYWwiPmluaXRpYWw8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbml0aWFsIHZhbHVlIGZvciB0aGlzIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSmF2YUJlYW4gcHJvcGVydHkgbmFtZSBvZiB0aGUgcHJvcGVydHkgZGVzY3JpYmVkIGJ5IHRoaXMgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwjc2l6ZSI+c2l6ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2l6ZSBvZiB0aGUgYXJyYXkgdG8gYmUgY3JlYXRlZCBpZiB0aGlzIHByb3BlcnR5IGlzIGFuIGFycmF5CisgdHlwZSBhbmQgdGhlcmUgaXMgbm8gc3BlY2lmaWVkIDxjb2RlPmluaXRpYWw8L2NvZGU+IHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwjdHlwZSI+dHlwZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3MKKyBvZiB0aGlzIGJlYW4gcHJvcGVydHksIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkgPGNvZGU+W108L2NvZGU+IHRvCisgaW5kaWNhdGUgdGhhdCB0aGUgcHJvcGVydHkgaXMgaW5kZXhlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCNGb3JtUHJvcGVydHlDb25maWcoKSI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U3RhbmRhcmQgbm8tYXJndW1lbnRzIGNvbnN0cnVjdG9yIGZvciBkeW5hbWljIGluc3RhbnRpYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwjRm9ybVByb3BlcnR5Q29uZmlnKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5Gb3JtUHJvcGVydHlDb25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSwKKyAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aW5pdGlhbCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yIHRoYXQgcHJlY29uZmlndXJlcyB0aGUgcmVsZXZhbnQgcHJvcGVydGllcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCNGb3JtUHJvcGVydHlDb25maWcoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgaW50KSI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUsCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2luaXRpYWwsCisgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7c2l6ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yIHRoYXQgcHJlY29uZmlndXJlcyB0aGUgcmVsZXZhbnQgcHJvcGVydGllcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCNmcmVlemUoKSI+ZnJlZXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RnJlZXplIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoaXMgY29tcG9uZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCNnZXRJbml0aWFsKCkiPmdldEluaXRpYWw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwjZ2V0U2l6ZSgpIj5nZXRTaXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sI2dldFR5cGUoKSI+Z2V0VHlwZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuQ2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sI2dldFR5cGVDbGFzcygpIj5nZXRUeXBlQ2xhc3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYSBDbGFzcyBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgc3BlY2lmaWVkIGZvciB0aGUKKyA8Y29kZT50eXBlPC9jb2RlPiBwcm9wZXJ0eSwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgdHJhaWxpbmcgIltdIgorIGZvciBhcnJheXMgKGFzIHdlbGwgYXMgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSBwcmltaXRpdmUgSmF2YSB0eXBlcykuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sI2luaXRpYWwoKSI+aW5pdGlhbDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBhbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBpbml0aWFsIHZhbHVlIG9mIHRoaXMgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sI3NldEluaXRpYWwoamF2YS5sYW5nLlN0cmluZykiPnNldEluaXRpYWw8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aW5pdGlhbCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwjc2V0U2l6ZShpbnQpIj5zZXRTaXplPC9BPjwvQj4oaW50Jm5ic3A7c2l6ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCNzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUeXBlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbmZpZ3VyZWQiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmZpZ3VyZWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmZpZ3VyZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SGFzIHRoaXMgY29tcG9uZW50IGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdGlhbCI+PCEtLSAtLT48L0E+PEgzPgoraW5pdGlhbDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aW5pdGlhbDwvQj48L1BSRT4KKzxETD4KKzxERD5TdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGluaXRpYWwgdmFsdWUgZm9yIHRoaXMgcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKYXZhQmVhbiBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBkZXNjcmliZWQgYnkgdGhpcyBlbGVtZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2l6ZSI+PCEtLSAtLT48L0E+PEgzPgorc2l6ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGludCA8Qj5zaXplPC9CPjwvUFJFPgorPERMPgorPEREPjxwPlRoZSBzaXplIG9mIHRoZSBhcnJheSB0byBiZSBjcmVhdGVkIGlmIHRoaXMgcHJvcGVydHkgaXMgYW4gYXJyYXkKKyB0eXBlIGFuZCB0aGVyZSBpcyBubyBzcGVjaWZpZWQgPGNvZGU+aW5pdGlhbDwvY29kZT4gdmFsdWUuICBUaGlzCisgdmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUuPC9wPgorPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0eXBlIj48IS0tIC0tPjwvQT48SDM+Cit0eXBlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj50eXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBpbXBsZW1lbnRhdGlvbiBjbGFzcworIG9mIHRoaXMgYmVhbiBwcm9wZXJ0eSwgb3B0aW9uYWxseSBmb2xsb3dlZCBieSA8Y29kZT5bXTwvY29kZT4gdG8KKyBpbmRpY2F0ZSB0aGF0IHRoZSBwcm9wZXJ0eSBpcyBpbmRleGVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkZvcm1Qcm9wZXJ0eUNvbmZpZygpIj48IS0tIC0tPjwvQT48SDM+CitGb3JtUHJvcGVydHlDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Gb3JtUHJvcGVydHlDb25maWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5TdGFuZGFyZCBuby1hcmd1bWVudHMgY29uc3RydWN0b3IgZm9yIGR5bmFtaWMgaW5zdGFudGlhdGlvbi4KKzxQPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRm9ybVByb3BlcnR5Q29uZmlnKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitGb3JtUHJvcGVydHlDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Gb3JtUHJvcGVydHlDb25maWc8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2luaXRpYWwpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IgdGhhdCBwcmVjb25maWd1cmVzIHRoZSByZWxldmFudCBwcm9wZXJ0aWVzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGlzIHByb3BlcnR5PEREPjxDT0RFPnR5cGU8L0NPREU+IC0gRnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgb2YgdGhpcyBwcm9wZXJ0eTxERD48Q09ERT5pbml0aWFsPC9DT0RFPiAtIEluaXRpYWwgdmFsdWUgb2YgdGhpcyBwcm9wZXJ0eSAoaWYgYW55KTwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkZvcm1Qcm9wZXJ0eUNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj48IS0tIC0tPjwvQT48SDM+CitGb3JtUHJvcGVydHlDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Gb3JtUHJvcGVydHlDb25maWc8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2luaXRpYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3NpemUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IgdGhhdCBwcmVjb25maWd1cmVzIHRoZSByZWxldmFudCBwcm9wZXJ0aWVzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGlzIHByb3BlcnR5PEREPjxDT0RFPnR5cGU8L0NPREU+IC0gRnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgb2YgdGhpcyBwcm9wZXJ0eTxERD48Q09ERT5pbml0aWFsPC9DT0RFPiAtIEluaXRpYWwgdmFsdWUgb2YgdGhpcyBwcm9wZXJ0eSAoaWYgYW55KTxERD48Q09ERT5zaXplPC9DT0RFPiAtIFNpemUgb2YgdGhlIGFycmF5IHRvIGJlIGNyZWF0ZWQgaWYgdGhpcyBwcm9wZXJ0eSBpcyBhbgorICBhcnJheSB3aXRoIG5vIGRlZmluZWQgaW5pdGlhbCB2YWx1ZTwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEluaXRpYWwoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SW5pdGlhbDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SW5pdGlhbDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SW5pdGlhbChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SW5pdGlhbDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SW5pdGlhbDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2luaXRpYWwpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2l6ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldFNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNpemUoaW50KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2l6ZTwvQj4oaW50Jm5ic3A7c2l6ZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VHlwZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VHlwZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUeXBlQ2xhc3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VHlwZUNsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLkNsYXNzIDxCPmdldFR5cGVDbGFzczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiBhIENsYXNzIGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBzcGVjaWZpZWQgZm9yIHRoZQorIDxjb2RlPnR5cGU8L2NvZGU+IHByb3BlcnR5LCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSB0cmFpbGluZyAiW10iCisgZm9yIGFycmF5cyAoYXMgd2VsbCBhcyB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IHByaW1pdGl2ZSBKYXZhIHR5cGVzKS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdGlhbCgpIj48IS0tIC0tPjwvQT48SDM+Citpbml0aWFsPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5pbml0aWFsPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PHA+UmV0dXJuIGFuIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIGluaXRpYWwgdmFsdWUgb2YgdGhpcyBwcm9wZXJ0eS4KKyBUaGlzIGlzIGNhbGN1bGF0ZWQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtOjwvcD4KKyA8dWw+CisgPGxpPklmIHRoZSB2YWx1ZSB5b3UgaGF2ZSBzcGVjaWZpZWQgZm9yIHRoZSA8Y29kZT50eXBlPC9jb2RlPgorICAgICBwcm9wZXJ0eSByZXByZXNlbnRzIGFuIGFycmF5IChpLmUuIGl0IGVuZHMgd2l0aCAiW10iKToKKyAgICAgPHVsPgorICAgICA8bGk+SWYgeW91IGhhdmUgc3BlY2lmaWVkIGEgdmFsdWUgZm9yIHRoZSA8Y29kZT5pbml0aWFsPC9jb2RlPgorICAgICAgICAgcHJvcGVydHksIDxjb2RlPkNvbnZlcnRVdGlscy5jb252ZXJ0KCk8L2NvZGU+IHdpbGwgYmUKKyAgICAgICAgIGNhbGxlZCB0byBjb252ZXJ0IGl0IGludG8gYW4gaW5zdGFuY2Ugb2YgdGhlIHNwZWNpZmllZAorICAgICAgICAgYXJyYXkgdHlwZS48L2xpPgorICAgICA8bGk+SWYgeW91IGhhdmUgbm90IHNwZWNpZmllZCBhIHZhbHVlIGZvciB0aGUgPGNvZGU+aW5pdGlhbDwvY29kZT4KKyAgICAgICAgIHByb3BlcnR5LCBhbiBhcnJheSBvZiB0aGUgbGVuZ3RoIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgIDxjb2RlPnNpemU8L2NvZGU+IHByb3BlcnR5IHdpbGwgYmUgY3JlYXRlZC4gIEVhY2ggZWxlbWVudAorICAgICAgICAgb2YgdGhlIGFycmF5IHdpbGwgYmUgaW5zdGFudGlhdGVkIHZpYSB0aGUgemVyby1hcmdzIGNvbnN0cnVjdG9yCisgICAgICAgICBvbiB0aGUgc3BlY2lmaWVkIGNsYXNzIChpZiBhbnkpLiAgT3RoZXJ3aXNlLCA8Y29kZT5udWxsPC9jb2RlPgorICAgICAgICAgd2lsbCBiZSByZXR1cm5lZC48L2xpPgorICAgICA8L3VsPjwvbGk+CisgPGxpPklmIHRoZSB2YWx1ZSB5b3UgaGF2ZSBzcGVjaWZpZWQgZm9yIHRoZSA8Y29kZT50eXBlPC9jb2RlPgorICAgICBwcm9wZXJ0eSBkb2VzIG5vdCByZXByZXNlbnQgYW4gYXJyYXk6CisgICAgIDx1bD4KKyAgICAgPGxpPklmIHlvdSBoYXZlIHNwZWNpZmllZCBhIHZhbHVlIGZvciB0aGUgPGNvZGU+aW5pdGlhbDwvY29kZT4KKyAgICAgICAgIHByb3BlcnR5LCA8Y29kZT5Db252ZXJ0VXRpbHMuY29udmVydCgpPC9jb2RlPgorICAgICAgICAgd2lsbCBiZSBjYWxsZWQgdG8gY29udmVydCBpdCBpbnRvIGFuIG9iamVjdCBpbnN0YW5jZS48L2xpPgorICAgICA8bGk+SWYgeW91IGhhdmUgbm90IHNwZWNpZmllZCBhIHZhbHVlIGZvciB0aGUgPGNvZGU+aW5pdGlhbDwvY29kZT4KKyAgICAgICAgIGF0dHJpYnV0ZSwgU3RydXRzIHdpbGwgaW5zdGFudGlhdGUgYW4gaW5zdGFuY2UgdmlhIHRoZQorICAgICAgICAgemVyby1hcmdzIGNvbnN0cnVjdG9yIG9uIHRoZSBzcGVjaWZpZWQgY2xhc3MgKGlmIGFueSkuCisgICAgICAgICBPdGhlcndpc2UsIDxjb2RlPm51bGw8L2NvZGU+IHdpbGwgYmUgcmV0dXJuZWQuPC9saT4KKyAgICAgPC91bD48L2xpPgorIDwvdWw+Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZyZWV6ZSgpIj48IS0tIC0tPjwvQT48SDM+CitmcmVlemU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmZyZWV6ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkZyZWV6ZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIGNvbXBvbmVudC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9TdHJpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgordG9TdHJpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU3RyaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnRvU3RyaW5nPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGb3JtUHJvcGVydHlDb25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3ZDUzZmEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbApAQCAtMCwwICsxLDY0NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0ZvcndhcmRDb25maWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnLEZvcndhcmRDb25maWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkZvcndhcmRDb25maWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRm9yd2FyZENvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcndhcmRDb25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvRk9OVD4KKzxCUj4KK0NsYXNzIEZvcndhcmRDb25maWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+Rm9yd2FyZENvbmZpZzwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KKzxwPkEgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7Zm9yd2FyZCZndDs8L2NvZGU+IGVsZW1lbnQgZnJvbSBhIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2NvbmZpZ3VyZWQiPmNvbmZpZ3VyZWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFzIHRoaXMgY29tcG9uZW50IGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2NvbnRleHRSZWxhdGl2ZSI+Y29udGV4dFJlbGF0aXZlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Nob3VsZCB0aGUgdmFsdWUgb2YgdGhlIDxjb2RlPnBhdGg8L2NvZGU+IHByb3BlcnR5IGJlIGNvbnNpZGVyZWQKKyBjb250ZXh0LXJlbGF0aXZlIGlmIGl0IHN0YXJ0cyB3aXRoIGEgc2xhc2ggKGFuZCB0aGVyZWZvcmUgbm90CisgcHJlZml4ZWQgd2l0aCB0aGUgbW9kdWxlIHByZWZpeD88L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGlzIGZvcndhcmQsIHdoaWNoIGlzIHVzZWQgdG8gcmVmZXJlbmNlIGl0CisgaW4gPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzc2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI3BhdGgiPnBhdGg8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIFVSTCB0byB3aGljaCB0aGlzIDxjb2RlPkZvcndhcmRDb25maWc8L2NvZGU+IGVudHJ5IHBvaW50cywKKyB3aGljaCBtdXN0IHN0YXJ0IHdpdGggYSBzbGFzaCAoIi8iKSBjaGFyYWN0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjcmVkaXJlY3QiPnJlZGlyZWN0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Nob3VsZCBhIHJlZGlyZWN0IGJlIHVzZWQgdG8gdHJhbnNmZXIgY29udHJvbCB0byB0aGUgc3BlY2lmaWVkIHBhdGg/PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI0ZvcndhcmRDb25maWcoKSI+Rm9yd2FyZENvbmZpZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIGRlZmF1bHQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNGb3J3YXJkQ29uZmlnKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj5Gb3J3YXJkQ29uZmlnPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoLAorICAgICAgICAgICAgICBib29sZWFuJm5ic3A7cmVkaXJlY3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIHZhbHVlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjRm9yd2FyZENvbmZpZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuLCBib29sZWFuKSI+Rm9yd2FyZENvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCwKKyAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO3JlZGlyZWN0LAorICAgICAgICAgICAgICBib29sZWFuJm5ic3A7Y29udGV4dFJlbGF0aXZlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2ZyZWV6ZSgpIj5mcmVlemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGcmVlemUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBjb21wb25lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNnZXRDb250ZXh0UmVsYXRpdmUoKSI+Z2V0Q29udGV4dFJlbGF0aXZlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI2dldFBhdGgoKSI+Z2V0UGF0aDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjZ2V0UmVkaXJlY3QoKSI+Z2V0UmVkaXJlY3Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI3NldENvbnRleHRSZWxhdGl2ZShib29sZWFuKSI+c2V0Q29udGV4dFJlbGF0aXZlPC9BPjwvQj4oYm9vbGVhbiZuYnNwO2NvbnRleHRSZWxhdGl2ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCNzZXRQYXRoKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXRoPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sI3NldFJlZGlyZWN0KGJvb2xlYW4pIj5zZXRSZWRpcmVjdDwvQT48L0I+KGJvb2xlYW4mbmJzcDtyZWRpcmVjdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYSBTdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbmZpZ3VyZWQiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmZpZ3VyZWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmZpZ3VyZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SGFzIHRoaXMgY29tcG9uZW50IGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udGV4dFJlbGF0aXZlIj48IS0tIC0tPjwvQT48SDM+Citjb250ZXh0UmVsYXRpdmU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbnRleHRSZWxhdGl2ZTwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgdGhlIHZhbHVlIG9mIHRoZSA8Y29kZT5wYXRoPC9jb2RlPiBwcm9wZXJ0eSBiZSBjb25zaWRlcmVkCisgY29udGV4dC1yZWxhdGl2ZSBpZiBpdCBzdGFydHMgd2l0aCBhIHNsYXNoIChhbmQgdGhlcmVmb3JlIG5vdAorIHByZWZpeGVkIHdpdGggdGhlIG1vZHVsZSBwcmVmaXg/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGlzIGZvcndhcmQsIHdoaWNoIGlzIHVzZWQgdG8gcmVmZXJlbmNlIGl0CisgaW4gPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzc2VzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGF0aCI+PCEtLSAtLT48L0E+PEgzPgorcGF0aDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGF0aDwvQj48L1BSRT4KKzxETD4KKzxERD48cD5UaGUgVVJMIHRvIHdoaWNoIHRoaXMgPGNvZGU+Rm9yd2FyZENvbmZpZzwvY29kZT4gZW50cnkgcG9pbnRzLAorIHdoaWNoIG11c3Qgc3RhcnQgd2l0aCBhIHNsYXNoICgiLyIpIGNoYXJhY3Rlci4gIEl0IGlzCisgaW50ZXJwcmV0ZWQgYWNjb3JkaW5nIHRvIHRoZSBmb2xsb3dpbmcgcnVsZXM6PC9wPgorIDxsaT5JZiA8Y29kZT5jb250ZXh0UmVsYXRpdmU8L2NvZGU+IHByb3BlcnR5IGlzIDxjb2RlPnRydWU8L2NvZGU+LCB0aGUKKyAgICAgcGF0aCBpcyBjb25zaWRlcmVkIHRvIGJlIGNvbnRleHQtcmVsYXRpdmUgd2l0aGluIHRoZSBjdXJyZW50IHdlYgorICAgICBhcHBsaWNhdGlvbiAoZXZlbiBpZiB3ZSBhcmUgaW4gYSBuYW1lZCBtb2R1bGUpLiAgSXQgd2lsbCBiZQorICAgICBwcmVmaXhlZCBieSB0aGUgY29udGV4dCBwYXRoIHRvIGNyZWF0ZSBhIHNlcnZlci1yZWxhdGl2ZSBVUkwuPC9saT4KKyA8bGk+SWYgdGhlIDxjb2RlPmNvbnRleHRSZWxhdGl2ZTwvY29kZT4gcHJvcGVydHkgaXMgZmFsc2UsIHRoZSBwYXRoIGlzCisgICAgIGNvbnNpZGVyZWQgdG8gYmUgdGhlIG1vZHVsZS1yZWxhdGl2ZSBwb3J0aW9uIG9mIHRoZSBVUkwuCisgICAgIEl0IHdpbGwgYmUgdXNlZCBhcyB0aGUgcmVwbGFjZW1lbnQgZm9yIHRoZSA8Y29kZT4kUDwvY29kZT4KKyAgICAgbWFya2VyIGluIHRoZSA8Y29kZT5mb3J3YXJkUGF0dGVybjwvY29kZT4gcHJvcGVydHkgZGVmaW5lZCBvbiB0aGUKKyAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+PENPREU+Q29udHJvbGxlckNvbmZpZzwvQ09ERT48L0E+IGVsZW1lbnQgZm9yIG91ciBjdXJyZW50IG1vZHVsZS4KKyAgICAgRm9yIHRoZSBkZWZhdWx0IDxjb2RlPmZvcndhcmRQYXR0ZXJuPC9jb2RlPiB2YWx1ZSBvZgorICAgICA8Y29kZT4kQyRNJFA8L2NvZGU+LCB0aGUgcmVzdWx0aW5nIHNlcnZlci1yZWxhdGl2ZSBVUkwgd2lsbCBiZQorICAgICB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGUgY29udGV4dCBwYXRoLCB0aGUgbW9kdWxlIHByZWZpeCwKKyAgICAgYW5kIHRoZSA8Y29kZT5wYXRoPC9jb2RlPiBmcm9tIHRoaXMgPGNvZGU+Rm9yd2FyZENvbmZpZzwvY29kZT4uPC9saT4KKyA8L3VsPgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVkaXJlY3QiPjwhLS0gLS0+PC9BPjxIMz4KK3JlZGlyZWN0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5yZWRpcmVjdDwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgYSByZWRpcmVjdCBiZSB1c2VkIHRvIHRyYW5zZmVyIGNvbnRyb2wgdG8gdGhlIHNwZWNpZmllZCBwYXRoPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkZvcndhcmRDb25maWcoKSI+PCEtLSAtLT48L0E+PEgzPgorRm9yd2FyZENvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkZvcndhcmRDb25maWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugd2l0aCBkZWZhdWx0IHZhbHVlcy4KKzxQPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRm9yd2FyZENvbmZpZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorRm9yd2FyZENvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkZvcndhcmRDb25maWc8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgsCisgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7cmVkaXJlY3QpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCB2YWx1ZXMuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoaXMgZm9yd2FyZDxERD48Q09ERT5wYXRoPC9DT0RFPiAtIFBhdGggdG8gd2hpY2ggY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkIG9yIHJlZGlyZWN0ZWQ8REQ+PENPREU+cmVkaXJlY3Q8L0NPREU+IC0gU2hvdWxkIHdlIGRvIGEgcmVkaXJlY3Q/PC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRm9yd2FyZENvbmZpZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuLCBib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorRm9yd2FyZENvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkZvcndhcmRDb25maWc8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgsCisgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7cmVkaXJlY3QsCisgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7Y29udGV4dFJlbGF0aXZlKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgdmFsdWVzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGlzIGZvcndhcmQ8REQ+PENPREU+cGF0aDwvQ09ERT4gLSBQYXRoIHRvIHdoaWNoIGNvbnRyb2wgc2hvdWxkIGJlIGZvcndhcmRlZCBvciByZWRpcmVjdGVkPEREPjxDT0RFPnJlZGlyZWN0PC9DT0RFPiAtIFNob3VsZCB3ZSBkbyBhIHJlZGlyZWN0PzxERD48Q09ERT5jb250ZXh0UmVsYXRpdmU8L0NPREU+IC0gSXMgdGhpcyBwYXRoIGNvbnRleHQgcmVsYXRpdmU/PC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0Q29udGV4dFJlbGF0aXZlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbnRleHRSZWxhdGl2ZTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0Q29udGV4dFJlbGF0aXZlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb250ZXh0UmVsYXRpdmUoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENvbnRleHRSZWxhdGl2ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Q29udGV4dFJlbGF0aXZlPC9CPihib29sZWFuJm5ic3A7Y29udGV4dFJlbGF0aXZlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhdGgoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGF0aDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGF0aDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGF0aChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGF0aDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGF0aDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZWRpcmVjdCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSZWRpcmVjdDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0UmVkaXJlY3Q8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFJlZGlyZWN0KGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRSZWRpcmVjdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UmVkaXJlY3Q8L0I+KGJvb2xlYW4mbmJzcDtyZWRpcmVjdCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZyZWV6ZSgpIj48IS0tIC0tPjwvQT48SDM+CitmcmVlemU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmZyZWV6ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkZyZWV6ZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIGNvbXBvbmVudC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9TdHJpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgordG9TdHJpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU3RyaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnRvU3RyaW5nPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRm9yd2FyZENvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcndhcmRDb25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0M2M5MTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbApAQCAtMCwwICsxLDU4MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK01lc3NhZ2VSZXNvdXJjZXNDb25maWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLE1lc3NhZ2VSZXNvdXJjZXNDb25maWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik1lc3NhZ2VSZXNvdXJjZXNDb25maWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0ZPTlQ+Cis8QlI+CitDbGFzcyBNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorPHA+QSBKYXZhQmVhbiByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgYQorIDxjb2RlPiZsdDttZXNzYWdlLXJlc291cmNlcyZndDs8L2NvZGU+IGVsZW1lbnQgaW4gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9wPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCNjb25maWd1cmVkIj5jb25maWd1cmVkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0hhcyB0aGlzIGNvbXBvbmVudCBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZD88L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCNmYWN0b3J5Ij5mYWN0b3J5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Z1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IGNsYXNzCisgd2Ugc2hvdWxkIHVzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCNrZXkiPmtleTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHRoaXMgTWVzc2FnZVJlc291cmNlcworIGluc3RhbmNlIGlzIHN0b3JlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCNudWxsVmFsdWUiPm51bGxWYWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTaG91bGQgd2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+IGZvciB1bmtub3duIG1lc3NhZ2Uga2V5cz88L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQYXJhbWV0ZXIgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIDxjb2RlPmNyZWF0ZVJlc291cmNlcygpPC9jb2RlPiBtZXRob2QKKyBvZiBvdXIgTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgaW1wbGVtZW50YXRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sI01lc3NhZ2VSZXNvdXJjZXNDb25maWcoKSI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCNmcmVlemUoKSI+ZnJlZXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RnJlZXplIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoaXMgY29tcG9uZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwjZ2V0RmFjdG9yeSgpIj5nZXRGYWN0b3J5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCNnZXRLZXkoKSI+Z2V0S2V5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCNnZXROdWxsKCkiPmdldE51bGw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sI3NldEZhY3RvcnkoamF2YS5sYW5nLlN0cmluZykiPnNldEZhY3Rvcnk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZmFjdG9yeSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwjc2V0S2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRLZXk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCNzZXROdWxsKGJvb2xlYW4pIj5zZXROdWxsPC9BPjwvQj4oYm9vbGVhbiZuYnNwO251bGxWYWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbWV0ZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1ldGVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBhIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY29uZmlndXJlZCI+PCEtLSAtLT48L0E+PEgzPgorY29uZmlndXJlZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+Y29uZmlndXJlZDwvQj48L1BSRT4KKzxETD4KKzxERD5IYXMgdGhpcyBjb21wb25lbnQgYmVlbiBjb21wbGV0ZWx5IGNvbmZpZ3VyZWQ/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmYWN0b3J5Ij48IS0tIC0tPjwvQT48SDM+CitmYWN0b3J5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5mYWN0b3J5PC9CPjwvUFJFPgorPERMPgorPEREPkZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IGNsYXNzCisgd2Ugc2hvdWxkIHVzZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImtleSI+PCEtLSAtLT48L0E+PEgzPgora2V5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5rZXk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCB0aGlzIE1lc3NhZ2VSZXNvdXJjZXMKKyBpbnN0YW5jZSBpcyBzdG9yZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJudWxsVmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK251bGxWYWx1ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+bnVsbFZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlNob3VsZCB3ZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4gZm9yIHVua25vd24gbWVzc2FnZSBrZXlzPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyYW1ldGVyIj48IS0tIC0tPjwvQT48SDM+CitwYXJhbWV0ZXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtZXRlcjwvQj48L1BSRT4KKzxETD4KKzxERD5QYXJhbWV0ZXIgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIDxjb2RlPmNyZWF0ZVJlc291cmNlcygpPC9jb2RlPiBtZXRob2QKKyBvZiBvdXIgTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgaW1wbGVtZW50YXRpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTWVzc2FnZVJlc291cmNlc0NvbmZpZygpIj48IS0tIC0tPjwvQT48SDM+CitNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0RmFjdG9yeSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGYWN0b3J5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGYWN0b3J5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGYWN0b3J5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGYWN0b3J5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGYWN0b3J5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZmFjdG9yeSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEtleSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRLZXk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEtleTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0S2V5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRLZXk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEtleTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE51bGwoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TnVsbDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0TnVsbDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TnVsbChib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TnVsbDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TnVsbDwvQj4oYm9vbGVhbiZuYnNwO251bGxWYWx1ZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtZXRlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJhbWV0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhcmFtZXRlcjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbWV0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtZXRlcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtZXRlcik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZyZWV6ZSgpIj48IS0tIC0tPjwvQT48SDM+CitmcmVlemU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmZyZWV6ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkZyZWV6ZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIGNvbXBvbmVudC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9TdHJpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgordG9TdHJpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU3RyaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnRvU3RyaW5nPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQzNzY5MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwKQEAgLTAsMCArMSwxMDA1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTW9kdWxlQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnLE1vZHVsZUNvbmZpZyBpbnRlcmZhY2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik1vZHVsZUNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Nb2R1bGVDb25maWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTW9kdWxlQ29uZmlnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0ZPTlQ+Cis8QlI+CitJbnRlcmZhY2UgTW9kdWxlQ29uZmlnPC9IMj4KKzxETD4KKzxEVD48Qj5BbGwgS25vd24gSW1wbGVtZW50aW5nIENsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBpbnRlcmZhY2UgPEI+TW9kdWxlQ29uZmlnPC9CPjwvREw+CisKKzxQPgorPHA+VGhlIGNvbGxlY3Rpb24gb2Ygc3RhdGljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gdGhhdCBkZXNjcmliZXMgYQorIFN0cnV0cy1iYXNlZCBtb2R1bGUuICBNdWx0aXBsZSBtb2R1bGVzIGFyZSBpZGVudGlmaWVkIGJ5CisgYSA8ZW0+cHJlZml4PC9lbT4gYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgY29udGV4dAorIHJlbGF0aXZlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgVVJJLiAgSWYgbm8gbW9kdWxlIHByZWZpeCBjYW4gYmUKKyBtYXRjaGVkLCB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uICh3aXRoIGEgcHJlZml4IGVxdWFsIHRvIGEgemVyby1sZW5ndGgKKyBzdHJpbmcpIGlzIHNlbGVjdGVkLCB3aGljaCBpcyBlbGVnYW50bHkgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCB0aGUKKyBwcmV2aW91cyBTdHJ1dHMgYmVoYXZpb3IgdGhhdCBvbmx5IHN1cHBvcnRlZCBvbmUgbW9kdWxlLjwvcD4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Um9iIExlbGFuZDwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjYWRkQWN0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWcpIj5hZGRBY3Rpb25Db25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYSBuZXcgPGNvZGU+QWN0aW9uQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKKyB3aXRoIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGREYXRhU291cmNlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnKSI+YWRkRGF0YVNvdXJjZUNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IDxjb2RlPkRhdGFTb3VyY2VDb25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2FkZEV4Y2VwdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnKSI+YWRkRXhjZXB0aW9uQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IDxjb2RlPkV4Y2VwdGlvbkNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjYWRkRm9ybUJlYW5Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnKSI+YWRkRm9ybUJlYW5Db25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IDxjb2RlPkZvcm1CZWFuQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKKyB3aXRoIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+YWRkRm9yd2FyZENvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IDxjb2RlPkZvcndhcmRDb25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgb2YgZ2xvYmFsCisgZm9yd2FyZHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnKSI+YWRkTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQKKyBhc3NvY2lhdGVkIHdpdGggdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2FkZFBsdWdJbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuUGx1Z0luQ29uZmlnKSI+YWRkUGx1Z0luQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj5QbHVnSW5Db25maWc8L0E+Jm5ic3A7cGx1Z0luQ29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3bHkgY29uZmlndXJlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPjxDT0RFPlBsdWdJbkNvbmZpZzwvQ09ERT48L0E+IGluc3RhbmNlIHRvIHRoZSBzZXQgb2YKKyBwbHVnLWluIEFjdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRBY3Rpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRBY3Rpb25Db25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgYWN0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgcGF0aCwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPltdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kQWN0aW9uQ29uZmlncygpIj5maW5kQWN0aW9uQ29uZmlnczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgYWN0aW9uIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmREYXRhU291cmNlQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRGF0YVNvdXJjZUNvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGRhdGEgc291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT5bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZERhdGFTb3VyY2VDb25maWdzKCkiPmZpbmREYXRhU291cmNlQ29uZmlnczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRFeGNlcHRpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRFeGNlcHRpb25Db25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZXhjZXB0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdHlwZSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPltdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kRXhjZXB0aW9uQ29uZmlncygpIj5maW5kRXhjZXB0aW9uQ29uZmlnczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZXhjZXB0aW9uIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZEZvcm1CZWFuQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9ybUJlYW5Db25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPltdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kRm9ybUJlYW5Db25maWdzKCkiPmZpbmRGb3JtQmVhbkNvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kRm9yd2FyZENvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcndhcmRDb25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9yd2FyZCBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRGb3J3YXJkQ29uZmlncygpIj5maW5kRm9yd2FyZENvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBtZXNzYWdlIHJlc291cmNlcyBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwKKyBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlncygpIj5maW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj5QbHVnSW5Db25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRQbHVnSW5Db25maWdzKCkiPmZpbmRQbHVnSW5Db25maWdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBjb25maWd1cmVkIHBsdWctaW4gYWN0aW9ucyBmb3IgdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZyZWV6ZSgpIj5mcmVlemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGcmVlemUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2dldEFjdGlvbk1hcHBpbmdDbGFzcygpIj5nZXRBY3Rpb25NYXBwaW5nQ2xhc3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCBjbGFzcyBuYW1lIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhY3Rpb24gbWFwcGluZworIGluc3RhbmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZ2V0Q29uZmlndXJlZCgpIj5nZXRDb25maWd1cmVkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFzIHRoaXMgbW9kdWxlIGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkIHlldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2dldENvbnRyb2xsZXJDb25maWcoKSI+Z2V0Q29udHJvbGxlckNvbmZpZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZ2V0UHJlZml4KCkiPmdldFByZWZpeDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBwcmVmaXggb2YgdGhlIGNvbnRleHQtcmVsYXRpdmUgcG9ydGlvbiBvZiB0aGUgcmVxdWVzdCBVUkksIHVzZWQgdG8KKyBzZWxlY3QgdGhpcyBjb25maWd1cmF0aW9uIHZlcnN1cyBvdGhlcnMgc3VwcG9ydGVkIGJ5IHRoZSBjb250cm9sbGVyCisgc2VydmxldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjcmVtb3ZlQWN0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWcpIj5yZW1vdmVBY3Rpb25Db25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW1vdmUgdGhlIHNwZWNpZmllZCBhY3Rpb24gY29uZmlndXJhdGlvbiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjcmVtb3ZlRGF0YVNvdXJjZUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRGF0YVNvdXJjZUNvbmZpZykiPnJlbW92ZURhdGFTb3VyY2VDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbW92ZSB0aGUgc3BlY2lmaWVkIGRhdGEgc291cmNlIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI3JlbW92ZUV4Y2VwdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnKSI+cmVtb3ZlRXhjZXB0aW9uQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZXhjZXB0aW9uIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI3JlbW92ZUZvcm1CZWFuQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPnJlbW92ZUZvcm1CZWFuQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbW92ZSB0aGUgc3BlY2lmaWVkIGZvcm0gYmVhbiBjb25maWd1cmF0aW9uIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNyZW1vdmVGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+cmVtb3ZlRm9yd2FyZENvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZm9yd2FyZCBjb25maWd1cmF0aW9uIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNyZW1vdmVNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnKSI+cmVtb3ZlTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSByZXNvdXJjZXMgY29uZmlndXJhdGlvbiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjc2V0QWN0aW9uTWFwcGluZ0NsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY3Rpb25NYXBwaW5nQ2xhc3M8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWN0aW9uTWFwcGluZ0NsYXNzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGRlZmF1bHQgY2xhc3MgbmFtZSB0byBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgYWN0aW9uIG1hcHBpbmcKKyBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI3NldENvbnRyb2xsZXJDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkNvbnRyb2xsZXJDb25maWcpIj5zZXRDb250cm9sbGVyQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4mbmJzcDtjYyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjc2V0UHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcmVmaXg8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHByZWZpeCBvZiB0aGUgY29udGV4dC1yZWxhdGl2ZSBwb3J0aW9uIG9mIHRoZSByZXF1ZXN0IFVSSSwgdXNlZCB0bworIHNlbGVjdCB0aGlzIGNvbmZpZ3VyYXRpb24gdmVyc3VzIG90aGVycyBzdXBwb3J0ZWQgYnkgdGhlIGNvbnRyb2xsZXIKKyBzZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0Q29uZmlndXJlZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDb25maWd1cmVkPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRDb25maWd1cmVkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+SGFzIHRoaXMgbW9kdWxlIGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkIHlldC4gIE9uY2UgdGhpcyBmbGFnCisgaGFzIGJlZW4gc2V0LCBhbnkgYXR0ZW1wdCB0byBtb2RpZnkgdGhlIGNvbmZpZ3VyYXRpb24gd2lsbCByZXR1cm4gYW4KKyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldENvbnRyb2xsZXJDb25maWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29udHJvbGxlckNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+IDxCPmdldENvbnRyb2xsZXJDb25maWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGUgY29udHJvbGxlciBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhpcyBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENvbnRyb2xsZXJDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkNvbnRyb2xsZXJDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb250cm9sbGVyQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDb250cm9sbGVyQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPiZuYnNwO2NjKTwvUFJFPgorPERMPgorPEREPlRoZSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGlzIG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y2M8L0NPREU+IC0gVGhlIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoaXMgbW9kdWxlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJlZml4KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByZWZpeDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJlZml4PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhlIHByZWZpeCBvZiB0aGUgY29udGV4dC1yZWxhdGl2ZSBwb3J0aW9uIG9mIHRoZSByZXF1ZXN0IFVSSSwgdXNlZCB0bworIHNlbGVjdCB0aGlzIGNvbmZpZ3VyYXRpb24gdmVyc3VzIG90aGVycyBzdXBwb3J0ZWQgYnkgdGhlIGNvbnRyb2xsZXIKKyBzZXJ2bGV0LiAgQSBjb25maWd1cmF0aW9uIHdpdGggYSBwcmVmaXggb2YgYSB6ZXJvLWxlbmd0aCBTdHJpbmcgaXMgdGhlCisgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGlzIHdlYiBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByZWZpeChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJlZml4PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcmVmaXg8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgpPC9QUkU+Cis8REw+Cis8REQ+VGhlIHByZWZpeCBvZiB0aGUgY29udGV4dC1yZWxhdGl2ZSBwb3J0aW9uIG9mIHRoZSByZXF1ZXN0IFVSSSwgdXNlZCB0bworIHNlbGVjdCB0aGlzIGNvbmZpZ3VyYXRpb24gdmVyc3VzIG90aGVycyBzdXBwb3J0ZWQgYnkgdGhlIGNvbnRyb2xsZXIKKyBzZXJ2bGV0LiAgQSBjb25maWd1cmF0aW9uIHdpdGggYSBwcmVmaXggb2YgYSB6ZXJvLWxlbmd0aCBTdHJpbmcgaXMgdGhlCisgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGlzIHdlYiBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByZWZpeDwvQ09ERT4gLSBUaGUgcHJlZml4IG9mIHRoZSBjb250ZXh0LXJlbGF0aXZlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgVVJJLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWN0aW9uTWFwcGluZ0NsYXNzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdGlvbk1hcHBpbmdDbGFzczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWN0aW9uTWFwcGluZ0NsYXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgY2xhc3MgbmFtZSB0byBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgYWN0aW9uIG1hcHBpbmcKKyBpbnN0YW5jZXMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEFjdGlvbk1hcHBpbmdDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QWN0aW9uTWFwcGluZ0NsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBY3Rpb25NYXBwaW5nQ2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb25NYXBwaW5nQ2xhc3MpPC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgY2xhc3MgbmFtZSB0byBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgYWN0aW9uIG1hcHBpbmcKKyBpbnN0YW5jZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmFjdGlvbk1hcHBpbmdDbGFzczwvQ09ERT4gLSBkZWZhdWx0IGNsYXNzIG5hbWUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGFjdGlvbiBtYXBwaW5nCisgaW5zdGFuY2VzLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkQWN0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CithZGRBY3Rpb25Db25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZEFjdGlvbkNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgorPERMPgorPEREPkFkZCBhIG5ldyA8Y29kZT5BY3Rpb25Db25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgdG8gYmUgYWRkZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgorICBoYXMgYmVlbiBmcm96ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZERhdGFTb3VyY2VDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkRhdGFTb3VyY2VDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CithZGREYXRhU291cmNlQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGREYXRhU291cmNlQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5BZGQgYSBuZXcgPGNvZGU+RGF0YVNvdXJjZUNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIFRoZSBuZXcgY29uZmlndXJhdGlvbiBpbnN0YW5jZSB0byBiZSBhZGRlZAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIG1vZHVsZSBjb25maWd1cmF0aW9uCisgIGhhcyBiZWVuIGZyb3plbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkRXhjZXB0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CithZGRFeGNlcHRpb25Db25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZEV4Y2VwdGlvbkNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgorPERMPgorPEREPkFkZCBhIG5ldyA8Y29kZT5FeGNlcHRpb25Db25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgdG8gYmUgYWRkZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgorICBoYXMgYmVlbiBmcm96ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZEZvcm1CZWFuQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZEZvcm1CZWFuQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRGb3JtQmVhbkNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5BZGQgYSBuZXcgPGNvZGU+Rm9ybUJlYW5Db25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgdG8gYmUgYWRkZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgorICBoYXMgYmVlbiBmcm96ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZEZvcndhcmRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CithZGRGb3J3YXJkQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRGb3J3YXJkQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5BZGQgYSBuZXcgPGNvZGU+Rm9yd2FyZENvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBvZiBnbG9iYWwKKyBmb3J3YXJkcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgdG8gYmUgYWRkZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgorICBoYXMgYmVlbiBmcm96ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZE1lc3NhZ2VSZXNvdXJjZXNDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1lc3NhZ2VSZXNvdXJjZXNDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CithZGRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5BZGQgYSBuZXcgPGNvZGU+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldAorIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIFRoZSBuZXcgY29uZmlndXJhdGlvbiBpbnN0YW5jZSB0byBiZSBhZGRlZAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIG1vZHVsZSBjb25maWd1cmF0aW9uCisgIGhhcyBiZWVuIGZyb3plbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkUGx1Z0luQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5QbHVnSW5Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CithZGRQbHVnSW5Db25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZFBsdWdJbkNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj5QbHVnSW5Db25maWc8L0E+Jm5ic3A7cGx1Z0luQ29uZmlnKTwvUFJFPgorPERMPgorPEREPkFkZCBhIG5ld2x5IGNvbmZpZ3VyZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj48Q09ERT5QbHVnSW5Db25maWc8L0NPREU+PC9BPiBpbnN0YW5jZSB0byB0aGUgc2V0IG9mCisgcGx1Zy1pbiBBY3Rpb25zIGZvciB0aGlzIG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGx1Z0luQ29uZmlnPC9DT0RFPiAtIFRoZSBuZXcgY29uZmlndXJhdGlvbiBpbnN0YW5jZSB0byBiZSBhZGRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZEFjdGlvbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZEFjdGlvbkNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPiA8Qj5maW5kQWN0aW9uQ29uZmlnPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGFjdGlvbiBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHBhdGgsIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYXRoPC9DT0RFPiAtIFBhdGggb2YgdGhlIGFjdGlvbiBjb25maWd1cmF0aW9uIHRvIHJldHVybjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZEFjdGlvbkNvbmZpZ3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZEFjdGlvbkNvbmZpZ3M8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT5bXSA8Qj5maW5kQWN0aW9uQ29uZmlnczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgYWN0aW9uIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4gIElmIHRoZXJlIGFyZQorIG5vbmUsIGEgemVyby1sZW5ndGggYXJyYXkgaXMgcmV0dXJuZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmREYXRhU291cmNlQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRGF0YVNvdXJjZUNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+IDxCPmZpbmREYXRhU291cmNlQ29uZmlnPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gS2V5IG9mIHRoZSBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9uIHRvIHJldHVybjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZERhdGFTb3VyY2VDb25maWdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmREYXRhU291cmNlQ29uZmlnczwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+W10gPEI+ZmluZERhdGFTb3VyY2VDb25maWdzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuICBJZiB0aGVyZQorIGFyZSBub25lLCBhIHplcm8tbGVuZ3RoIGFycmF5IGlzIHJldHVybmVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRXhjZXB0aW9uQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRXhjZXB0aW9uQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+IDxCPmZpbmRFeGNlcHRpb25Db25maWc8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgZXhjZXB0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdHlwZSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnR5cGU8L0NPREU+IC0gRXhjZXB0aW9uIGNsYXNzIG5hbWUgdG8gZmluZCBhIGNvbmZpZ3VyYXRpb24gZm9yPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRXhjZXB0aW9uQ29uZmlncygpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRXhjZXB0aW9uQ29uZmlnczwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPltdIDxCPmZpbmRFeGNlcHRpb25Db25maWdzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBleGNlcHRpb24gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLiAgSWYgdGhlcmUKKyBhcmUgbm9uZSwgYSB6ZXJvLWxlbmd0aCBhcnJheSBpcyByZXR1cm5lZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZEZvcm1CZWFuQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRm9ybUJlYW5Db25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+IDxCPmZpbmRGb3JtQmVhbkNvbmZpZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIGJlYW4gY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9uIHRvIHJldHVybjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZEZvcm1CZWFuQ29uZmlncygpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRm9ybUJlYW5Db25maWdzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPltdIDxCPmZpbmRGb3JtQmVhbkNvbmZpZ3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuICBJZiB0aGVyZQorIGFyZSBub25lLCBhIHplcm8tbGVuZ3RoIGFycmF5IGlzIHJldHVybmVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRm9yd2FyZENvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZEZvcndhcmRDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPiA8Qj5maW5kRm9yd2FyZENvbmZpZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gdG8gcmV0dXJuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRm9yd2FyZENvbmZpZ3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZEZvcndhcmRDb25maWdzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT5bXSA8Qj5maW5kRm9yd2FyZENvbmZpZ3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuICBJZiB0aGVyZQorIGFyZSBub25lLCBhIHplcm8tbGVuZ3RoIGFycmF5IGlzIHJldHVybmVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPiA8Qj5maW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIEtleSBvZiB0aGUgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbiB0byByZXR1cm48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlncygpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZ3M8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPltdIDxCPmZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbWVzc2FnZSByZXNvdXJjZXMgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLgorIElmIHRoZXJlIGFyZSBub25lLCBhIHplcm8tbGVuZ3RoIGFycmF5IGlzIHJldHVybmVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kUGx1Z0luQ29uZmlncygpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kUGx1Z0luQ29uZmlnczwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+UGx1Z0luQ29uZmlnPC9BPltdIDxCPmZpbmRQbHVnSW5Db25maWdzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBjb25maWd1cmVkIHBsdWctaW4gYWN0aW9ucyBmb3IgdGhpcyBtb2R1bGUuICBJZiB0aGVyZQorIGFyZSBub25lLCBhIHplcm8tbGVuZ3RoIGFycmF5IGlzIHJldHVybmVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmcmVlemUoKSI+PCEtLSAtLT48L0E+PEgzPgorZnJlZXplPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5mcmVlemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5GcmVlemUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBtb2R1bGUuICBBZnRlciB0aGlzIG1ldGhvZAorIHJldHVybnMsIGFueSBhdHRlbXB0IHRvIG1vZGlmeSB0aGUgY29uZmlndXJhdGlvbiB3aWxsIHJldHVybgorIGFuIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlQWN0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmVBY3Rpb25Db25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbW92ZUFjdGlvbkNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgorPERMPgorPEREPlJlbW92ZSB0aGUgc3BlY2lmaWVkIGFjdGlvbiBjb25maWd1cmF0aW9uIGluc3RhbmNlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gQWN0aW9uQ29uZmlnIGluc3RhbmNlIHRvIGJlIHJlbW92ZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgorICBoYXMgYmVlbiBmcm96ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbW92ZUV4Y2VwdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorcmVtb3ZlRXhjZXB0aW9uQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZW1vdmVFeGNlcHRpb25Db25maWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5SZW1vdmUgdGhlIHNwZWNpZmllZCBleGNlcHRpb24gY29uZmlndXJhdGlvbiBpbnN0YW5jZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIEFjdGlvbkNvbmZpZyBpbnN0YW5jZSB0byBiZSByZW1vdmVkCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbFN0YXRlRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgbW9kdWxlIGNvbmZpZ3VyYXRpb24KKyAgaGFzIGJlZW4gZnJvemVuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW1vdmVEYXRhU291cmNlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorcmVtb3ZlRGF0YVNvdXJjZUNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVtb3ZlRGF0YVNvdXJjZUNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbiBpbnN0YW5jZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIERhdGFTb3VyY2VDb25maWcgaW5zdGFuY2UgdG8gYmUgcmVtb3ZlZAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIG1vZHVsZSBjb25maWd1cmF0aW9uCisgIGhhcyBiZWVuIGZyb3plbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlRm9ybUJlYW5Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorcmVtb3ZlRm9ybUJlYW5Db25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbW92ZUZvcm1CZWFuQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgorPERMPgorPEREPlJlbW92ZSB0aGUgc3BlY2lmaWVkIGZvcm0gYmVhbiBjb25maWd1cmF0aW9uIGluc3RhbmNlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gRm9ybUJlYW5Db25maWcgaW5zdGFuY2UgdG8gYmUgcmVtb3ZlZAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIG1vZHVsZSBjb25maWd1cmF0aW9uCisgIGhhcyBiZWVuIGZyb3plbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlRm9yd2FyZENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbW92ZUZvcndhcmRDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbW92ZUZvcndhcmRDb25maWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgorPERMPgorPEREPlJlbW92ZSB0aGUgc3BlY2lmaWVkIGZvcndhcmQgY29uZmlndXJhdGlvbiBpbnN0YW5jZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIEZvcndhcmRDb25maWcgaW5zdGFuY2UgdG8gYmUgcmVtb3ZlZAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIG1vZHVsZSBjb25maWd1cmF0aW9uCisgIGhhcyBiZWVuIGZyb3plbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlTWVzc2FnZVJlc291cmNlc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTWVzc2FnZVJlc291cmNlc0NvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbW92ZU1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbW92ZU1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgorPERMPgorPEREPlJlbW92ZSB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBNZXNzYWdlUmVzb3VyY2VzQ29uZmlnIGluc3RhbmNlIHRvIGJlIHJlbW92ZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgorICBoYXMgYmVlbiBmcm96ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL01vZHVsZUNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNb2R1bGVDb25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5MDUxMGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbApAQCAtMCwwICsxLDQxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK01vZHVsZUNvbmZpZ0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWdGYWN0b3J5LE1vZHVsZUNvbmZpZ0ZhY3RvcnkgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik1vZHVsZUNvbmZpZ0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvRk9OVD4KKzxCUj4KK0NsYXNzIE1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnRmFjdG9yeTwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL0RlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPkRlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5PC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBhYnN0cmFjdCBjbGFzcyA8Qj5Nb2R1bGVDb25maWdGYWN0b3J5PC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8L0RMPgorCis8UD4KK0EgZmFjdG9yeSBpbnRlcmZhY2UgZm9yIGNyZWF0aW5nIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT5zLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Um9iZXJ0IExlbGFuZDwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO2phdmEubGFuZy5DbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sI2NsYXp6Ij5jbGF6ejwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSmF2YSBjbGFzcyB0byBiZSB1c2VkIGZvcgorIDxjb2RlPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCNmYWN0b3J5Q2xhc3MiPmZhY3RvcnlDbGFzczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgdG8gYmUgdXNlZCBmb3IKKyA8Y29kZT5Nb2R1bGVDb25maWdGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwjTE9HIj5MT0c8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCNNb2R1bGVDb25maWdGYWN0b3J5KCkiPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj5Nb2R1bGVDb25maWdGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sI2NyZWF0ZUZhY3RvcnkoKSI+Y3JlYXRlRmFjdG9yeTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbmQgcmV0dXJuIGEgPGNvZGU+TW9kdWxlQ29uZmlnRmFjdG9yeTwvY29kZT4gaW5zdGFuY2Ugb2YgdGhlCisgYXBwcm9wcmlhdGUgY2xhc3MsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBjdXN0b21pemVkCisgPGNvZGU+TW9kdWxlQ29uZmlnPC9jb2RlPiBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPmFic3RyYWN0ICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sI2NyZWF0ZU1vZHVsZUNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlTW9kdWxlQ29uZmlnPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ByZWZpeCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3bHkgaW5zdGFuc2lhdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCNnZXRGYWN0b3J5Q2xhc3MoKSI+Z2V0RmFjdG9yeUNsYXNzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIHRoYXQgaXMgdXNlZCBmb3IKKyA8Y29kZT5Nb2R1bGVDb25maWdGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCNzZXRGYWN0b3J5Q2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldEZhY3RvcnlDbGFzczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmYWN0b3J5Q2xhc3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIHRoYXQgaXMgdXNlZCBmb3IKKyA8Y29kZT5Nb2R1bGVDb25maWdGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjbGF6eiI+PCEtLSAtLT48L0E+PEgzPgorY2xheno8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgamF2YS5sYW5nLkNsYXNzIDxCPmNsYXp6PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKYXZhIGNsYXNzIHRvIGJlIHVzZWQgZm9yCisgPGNvZGU+TW9kdWxlQ29uZmlnRmFjdG9yeTwvY29kZT4gaW5zdGFuY2VzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTE9HIj48IS0tIC0tPjwvQT48SDM+CitMT0c8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZyA8Qj5MT0c8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmFjdG9yeUNsYXNzIj48IS0tIC0tPjwvQT48SDM+CitmYWN0b3J5Q2xhc3M8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5mYWN0b3J5Q2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIHRvIGJlIHVzZWQgZm9yCisgPGNvZGU+TW9kdWxlQ29uZmlnRmFjdG9yeTwvY29kZT4gaW5zdGFuY2VzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik1vZHVsZUNvbmZpZ0ZhY3RvcnkoKSI+PCEtLSAtLT48L0E+PEgzPgorTW9kdWxlQ29uZmlnRmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIDxCPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNyZWF0ZU1vZHVsZUNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorY3JlYXRlTW9kdWxlQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgYWJzdHJhY3QgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+IDxCPmNyZWF0ZU1vZHVsZUNvbmZpZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ByZWZpeCk8L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgYW5kIHJldHVybiBhIG5ld2x5IGluc3RhbnNpYXRlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+LgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJlZml4PC9DT0RFPiAtIE1vZHVsZSBwcmVmaXggZm9yIENvbmZpZ3VyYXRpb248L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZhY3RvcnlDbGFzcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGYWN0b3J5Q2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGYWN0b3J5Q2xhc3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgdGhhdCBpcyB1c2VkIGZvcgorIDxjb2RlPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlcy4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5jbGFzcyBuYW1lIHRoYXQgaXMgdXNlZCBmb3IKKyAgIDxjb2RlPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RmFjdG9yeUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGYWN0b3J5Q2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5zZXRGYWN0b3J5Q2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmYWN0b3J5Q2xhc3MpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSB0aGF0IGlzIHVzZWQgZm9yCisgPGNvZGU+TW9kdWxlQ29uZmlnRmFjdG9yeTwvY29kZT4gaW5zdGFuY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mYWN0b3J5Q2xhc3M8L0NPREU+IC0gbmFtZSB0aGF0IGlzIHVzZWQgZm9yCisgICA8Y29kZT5Nb2R1bGVDb25maWdGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZXM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNyZWF0ZUZhY3RvcnkoKSI+PCEtLSAtLT48L0E+PEgzPgorY3JlYXRlRmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj5Nb2R1bGVDb25maWdGYWN0b3J5PC9BPiA8Qj5jcmVhdGVGYWN0b3J5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIGFuZCByZXR1cm4gYSA8Y29kZT5Nb2R1bGVDb25maWdGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZSBvZiB0aGUKKyBhcHByb3ByaWF0ZSBjbGFzcywgd2hpY2ggY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGN1c3RvbWl6ZWQKKyA8Y29kZT5Nb2R1bGVDb25maWc8L2NvZGU+IGluc3RhbmNlcy4gIElmIG5vIHN1Y2ggZmFjdG9yeSBjYW4gYmUKKyBjcmVhdGVkLCByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4gaW5zdGVhZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGNjOTdjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbApAQCAtMCwwICsxLDQzOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1BsdWdJbkNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLlBsdWdJbkNvbmZpZyxQbHVnSW5Db25maWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlBsdWdJbkNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9QbHVnSW5Db25maWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luU2V0UHJvcGVydHlSdWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQbHVnSW5Db25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvRk9OVD4KKzxCUj4KK0NsYXNzIFBsdWdJbkNvbmZpZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5QbHVnSW5Db25maWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5QbHVnSW5Db25maWc8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ETD4KKworPFA+Cis8cD5BIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O3BsdWctaW4mZ3Q7PC9jb2RlPiBlbGVtZW50IGluIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjwvcD4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuUGx1Z0luQ29uZmlnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sI2NsYXNzTmFtZSI+Y2xhc3NOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSA8Y29kZT5QbHVnSW48L2NvZGU+CisgaW1wbGVtZW50YXRpb24gY2xhc3MgYmVpbmcgY29uZmlndXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sI2NvbmZpZ3VyZWQiPmNvbmZpZ3VyZWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFzIHRoaXMgY29tcG9uZW50IGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLk1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwjcHJvcGVydGllcyI+cHJvcGVydGllczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIDxjb2RlPk1hcDwvY29kZT4gb2YgdGhlIG5hbWUtdmFsdWUgcGFpcnMgdGhhdCB3aWxsIGJlIHVzZWQgdG8KKyBjb25maWd1cmUgdGhlIHByb3BlcnR5IHZhbHVlcyBvZiBhIDxjb2RlPlBsdWdJbjwvY29kZT4gaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwjUGx1Z0luQ29uZmlnKCkiPlBsdWdJbkNvbmZpZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sI2FkZFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5hZGRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IHByb3BlcnR5IG5hbWUgYW5kIHZhbHVlIHRvIHRoZSBzZXQgdGhhdCB3aWxsIGJlIHVzZWQgdG8KKyBjb25maWd1cmUgdGhlIDxjb2RlPlBsdWdJbjwvY29kZT4gaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sI2ZyZWV6ZSgpIj5mcmVlemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGcmVlemUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBjb21wb25lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sI2dldENsYXNzTmFtZSgpIj5nZXRDbGFzc05hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLk1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwjZ2V0UHJvcGVydGllcygpIj5nZXRQcm9wZXJ0aWVzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBwcm9wZXJ0aWVzIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGNvbmZpZ3VyZSBhCisgPGNvZGU+UGx1Z0luPC9jb2RlPiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwjc2V0Q2xhc3NOYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDbGFzc05hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NOYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb25maWd1cmVkIj48IS0tIC0tPjwvQT48SDM+Citjb25maWd1cmVkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25maWd1cmVkPC9CPjwvUFJFPgorPERMPgorPEREPkhhcyB0aGlzIGNvbXBvbmVudCBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZD8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnRpZXMiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnRpZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuTWFwIDxCPnByb3BlcnRpZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+QSA8Y29kZT5NYXA8L2NvZGU+IG9mIHRoZSBuYW1lLXZhbHVlIHBhaXJzIHRoYXQgd2lsbCBiZSB1c2VkIHRvCisgY29uZmlndXJlIHRoZSBwcm9wZXJ0eSB2YWx1ZXMgb2YgYSA8Y29kZT5QbHVnSW48L2NvZGU+IGluc3RhbmNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2xhc3NOYW1lIj48IS0tIC0tPjwvQT48SDM+CitjbGFzc05hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmNsYXNzTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgPGNvZGU+UGx1Z0luPC9jb2RlPgorIGltcGxlbWVudGF0aW9uIGNsYXNzIGJlaW5nIGNvbmZpZ3VyZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUGx1Z0luQ29uZmlnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1BsdWdJbkNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlBsdWdJbkNvbmZpZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0Q2xhc3NOYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENsYXNzTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Q2xhc3NOYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDbGFzc05hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENsYXNzTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Q2xhc3NOYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NOYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGEgbmV3IHByb3BlcnR5IG5hbWUgYW5kIHZhbHVlIHRvIHRoZSBzZXQgdGhhdCB3aWxsIGJlIHVzZWQgdG8KKyBjb25maWd1cmUgdGhlIDxjb2RlPlBsdWdJbjwvY29kZT4gaW5zdGFuY2UuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gUHJvcGVydHkgbmFtZTxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBQcm9wZXJ0eSB2YWx1ZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZnJlZXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZyZWV6ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZnJlZXplPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+RnJlZXplIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoaXMgY29tcG9uZW50LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0aWVzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnRpZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuTWFwIDxCPmdldFByb3BlcnRpZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnRpZXMgdGhhdCB3aWxsIGJlIHVzZWQgdG8gY29uZmlndXJlIGEKKyA8Y29kZT5QbHVnSW48L2NvZGU+IGluc3RhbmNlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9QbHVnSW5Db25maWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luU2V0UHJvcGVydHlSdWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQbHVnSW5Db25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJblNldFByb3BlcnR5UnVsZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5TZXRQcm9wZXJ0eVJ1bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmUxNGM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5TZXRQcm9wZXJ0eVJ1bGUuaHRtbApAQCAtMCwwICsxLDI3OSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1BsdWdJblNldFByb3BlcnR5UnVsZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLlBsdWdJblNldFByb3BlcnR5UnVsZSxQbHVnSW5TZXRQcm9wZXJ0eVJ1bGUgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlBsdWdJblNldFByb3BlcnR5UnVsZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9QbHVnSW5TZXRQcm9wZXJ0eVJ1bGUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQbHVnSW5TZXRQcm9wZXJ0eVJ1bGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0ZPTlQ+Cis8QlI+CitDbGFzcyBQbHVnSW5TZXRQcm9wZXJ0eVJ1bGU8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZQorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5QbHVnSW5TZXRQcm9wZXJ0eVJ1bGU8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5maW5hbCBjbGFzcyA8Qj5QbHVnSW5TZXRQcm9wZXJ0eVJ1bGU8L0I+PERUPmV4dGVuZHMgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLlJ1bGU8L0RMPgorCis8UD4KK0NsYXNzIHRoYXQgcmVjb3JkcyB0aGUgbmFtZSBhbmQgdmFsdWUgb2YgYSBjb25maWd1cmF0aW9uIHByb3BlcnR5IHRvIGJlCisgdXNlZCBpbiBjb25maWd1cmluZyBhIDxjb2RlPlBsdWdJbjwvY29kZT4gaW5zdGFuY2Ugd2hlbiBpbnN0YW50aWF0ZWQuCis8UD4KKworPFA+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZGlnZXN0ZXIsIG5hbWVzcGFjZVVSSTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5TZXRQcm9wZXJ0eVJ1bGUuaHRtbCNQbHVnSW5TZXRQcm9wZXJ0eVJ1bGUoKSI+UGx1Z0luU2V0UHJvcGVydHlSdWxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luU2V0UHJvcGVydHlSdWxlLmh0bWwjYmVnaW4ob3JnLnhtbC5zYXguQXR0cmlidXRlcykiPmJlZ2luPC9BPjwvQj4ob3JnLnhtbC5zYXguQXR0cmlidXRlcyZuYnNwO2F0dHJpYnV0ZXMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZTwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJlZ2luLCBib2R5LCBib2R5LCBlbmQsIGVuZCwgZmluaXNoLCBnZXREaWdlc3RlciwgZ2V0TmFtZXNwYWNlVVJJLCBzZXREaWdlc3Rlciwgc2V0TmFtZXNwYWNlVVJJPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlBsdWdJblNldFByb3BlcnR5UnVsZSgpIj48IS0tIC0tPjwvQT48SDM+CitQbHVnSW5TZXRQcm9wZXJ0eVJ1bGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5QbHVnSW5TZXRQcm9wZXJ0eVJ1bGU8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImJlZ2luKG9yZy54bWwuc2F4LkF0dHJpYnV0ZXMpIj48IS0tIC0tPjwvQT48SDM+CitiZWdpbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YmVnaW48L0I+KG9yZy54bWwuc2F4LkF0dHJpYnV0ZXMmbmJzcDthdHRyaWJ1dGVzKQorICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5iZWdpbjwvQ09ERT4gaW4gY2xhc3MgPENPREU+b3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLlJ1bGU8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1BsdWdJblNldFByb3BlcnR5UnVsZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1NldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBsdWdJblNldFByb3BlcnR5UnVsZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLlJ1bGUiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1NldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvU2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlMTBlNjYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1NldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUuaHRtbApAQCAtMCwwICsxLDI4MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1NldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlLFNldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlNldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvU2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luU2V0UHJvcGVydHlSdWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9GT05UPgorPEJSPgorQ2xhc3MgU2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLW9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLlNldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGU8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5maW5hbCBjbGFzcyA8Qj5TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlPC9CPjxEVD5leHRlbmRzIG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlPC9ETD4KKworPFA+CitDbGFzcyB0aGF0IHNldHMgdGhlIG5hbWUgb2YgdGhlIGNsYXNzIHRvIHVzZSB3aGVuIGNyZWF0aW5nIGFjdGlvbiBtYXBwaW5nCisgaW5zdGFuY2VzLiBUaGUgdmFsdWUgaXMgc2V0IG9uIHRoZSBvYmplY3Qgb24gdGhlIHRvcCBvZiB0aGUgc3RhY2ssIHdoaWNoCisgbXVzdCBiZSBhIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWc8L2NvZGU+LgorPFA+CisKKzxQPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZTwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRpZ2VzdGVyLCBuYW1lc3BhY2VVUkk8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvU2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZS5odG1sI1NldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUoKSI+U2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1NldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUuaHRtbCNiZWdpbihvcmcueG1sLnNheC5BdHRyaWJ1dGVzKSI+YmVnaW48L0E+PC9CPihvcmcueG1sLnNheC5BdHRyaWJ1dGVzJm5ic3A7YXR0cmlidXRlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLlJ1bGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+YmVnaW4sIGJvZHksIGJvZHksIGVuZCwgZW5kLCBmaW5pc2gsIGdldERpZ2VzdGVyLCBnZXROYW1lc3BhY2VVUkksIHNldERpZ2VzdGVyLCBzZXROYW1lc3BhY2VVUkk8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iU2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZSgpIj48IS0tIC0tPjwvQT48SDM+CitTZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+U2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYmVnaW4ob3JnLnhtbC5zYXguQXR0cmlidXRlcykiPjwhLS0gLS0+PC9BPjxIMz4KK2JlZ2luPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5iZWdpbjwvQj4ob3JnLnhtbC5zYXguQXR0cmlidXRlcyZuYnNwO2F0dHJpYnV0ZXMpCisgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmJlZ2luPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmxhbmcuRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvU2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luU2V0UHJvcGVydHlSdWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0FjdGlvbkNvbmZpZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQWN0aW9uQ29uZmlnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc5ZTY5MQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0FjdGlvbkNvbmZpZy5odG1sCkBAIC0wLDAgKzEsMzQ0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uQ29uZmlnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQj48L0E+PC9URD4KKzxURD4gVGhlIGFjdGlvbiBwYWNrYWdlIGlzIHRoZSBjb3JlIG9mIHRoZSBzdHJ1dHMgZnJhbWV3b3JrLAorICAgIHByb3ZpZGluZyB0aGUgIkNvbnRyb2xsZXIiIGFzcGVjdCBvZiBhIE1WQyBtb2RlbC4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQj48L0E+PC9URD4KKzxURD5UaGUgImNvbmZpZyIgcGFja2FnZSBjb250YWlucyBjb25maWd1cmF0aW9uIG9iamVjdHMgdGhhdCBjb3JyZXNwb25kIHRvCitlbGVtZW50cyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPgorbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudXRpbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQj48L0E+PC9URD4KKzxURD5UaGUgVXRpbGl0aWVzIHBhY2thZ2UgcHJvdmlkZXMgYSB2YXJpZXR5IG9mIGZhbWlsaWVzIG9mIGNsYXNzZXMsCit0byBzb2x2ZSBwcm9ibGVtcyB0aGF0IGFyZSBjb21tb25seSBlbmNvdW50ZXJlZCBpbiBidWlsZGluZyB3ZWIgYXBwbGljYXRpb25zLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiA8c3Ryb25nPkFjdGlvbk1hcHBpbmc8L3N0cm9uZz4gcmVwcmVzZW50cyB0aGUgaW5mb3JtYXRpb24gdGhhdCB0aGUKKyBjb250cm9sbGVyIHNlcnZsZXQsIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+LCBrbm93cyBhYm91dCB0aGUgbWFwcGluZworIG9mIGEgcGFydGljdWxhciByZXF1ZXN0IHRvIGFuIGluc3RhbmNlIG9mIGEgcGFydGljdWxhciBhY3Rpb24gY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0QWN0aW9uTWFwcGluZy5odG1sIj5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTdWJjbGFzcyBvZiA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPiB0aGF0IGRlZmF1bHRzIHRoZSBmb3JtIGJlYW4KKyBzY29wZSB0byA8Y29kZT5yZXF1ZXN0PC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1Nlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwiPlNlc3Npb25BY3Rpb25NYXBwaW5nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1N1YmNsYXNzIG9mIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IHRoYXQgZGVmYXVsdHMgdGhlIGZvcm0gYmVhbgorIHNjb3BlIHRvIDxjb2RlPnNlc3Npb248L2NvZGU+LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRBY3Rpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRBY3Rpb25Db25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgYWN0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgcGF0aCwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPltdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRBY3Rpb25Db25maWdzKCkiPmZpbmRBY3Rpb25Db25maWdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBhY3Rpb24gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRBY3Rpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZykiPmFkZEFjdGlvbkNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ldyA8Y29kZT5BY3Rpb25Db25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjcmVtb3ZlQWN0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25Db25maWcpIj5yZW1vdmVBY3Rpb25Db25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW1vdmUgdGhlIHNwZWNpZmllZCBhY3Rpb24gY29uZmlndXJhdGlvbiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRBY3Rpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRBY3Rpb25Db25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgYWN0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgcGF0aCwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPltdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZ0ltcGwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kQWN0aW9uQ29uZmlncygpIj5maW5kQWN0aW9uQ29uZmlnczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgYWN0aW9uIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZ0ltcGwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGRBY3Rpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZykiPmFkZEFjdGlvbkNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ldyA8Y29kZT5BY3Rpb25Db25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI3JlbW92ZUFjdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnKSI+cmVtb3ZlQWN0aW9uQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgYWN0aW9uIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVxdWVzdFV0aWxzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2FjdGlvblVSTChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnLCBqYXZhLmxhbmcuU3RyaW5nKSI+YWN0aW9uVVJMPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Jm5ic3A7YWN0aW9uLAorICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXR0ZXJuKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBjb250ZXh0LXJlbGF0aXZlIFVSTCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBzcGVjaWZpZWQKKyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPjxDT0RFPkFjdGlvbkNvbmZpZzwvQ09ERT48L0E+LCByZWxhdGl2ZSB0byB0aGUgbW9kdWxlIGFzc29jaWF0ZWQKKyB3aXRoIHRoZSBjdXJyZW50IG1vZHVsZXMncyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9BY3Rpb25NYXBwaW5nRmFjdG9yeS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQWN0aW9uTWFwcGluZ0ZhY3RvcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjgzYzRjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQWN0aW9uTWFwcGluZ0ZhY3RvcnkuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbk1hcHBpbmdGYWN0b3J5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25NYXBwaW5nRmFjdG9yeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbk1hcHBpbmdGYWN0b3J5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbk1hcHBpbmdGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbk1hcHBpbmdGYWN0b3J5PC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BY3Rpb25NYXBwaW5nRmFjdG9yeQorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uTWFwcGluZ0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uTWFwcGluZ0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkZTM2MjUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9BZGREYXRhU291cmNlUHJvcGVydHlSdWxlLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BZGREYXRhU291cmNlUHJvcGVydHlSdWxlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BZGREYXRhU291cmNlUHJvcGVydHlSdWxlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBZGREYXRhU291cmNlUHJvcGVydHlSdWxlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGU8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGUKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9BcHBsaWNhdGlvbkNvbmZpZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQXBwbGljYXRpb25Db25maWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2E4NWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQXBwbGljYXRpb25Db25maWcuaHRtbApAQCAtMCwwICsxLDE3MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFwcGxpY2F0aW9uQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BcHBsaWNhdGlvbkNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFwcGxpY2F0aW9uQ29uZmlnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFwcGxpY2F0aW9uQ29uZmlnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwiPkFwcGxpY2F0aW9uQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQj48L0E+PC9URD4KKzxURD4gVGhlIGFjdGlvbiBwYWNrYWdlIGlzIHRoZSBjb3JlIG9mIHRoZSBzdHJ1dHMgZnJhbWV3b3JrLAorICAgIHByb3ZpZGluZyB0aGUgIkNvbnRyb2xsZXIiIGFzcGVjdCBvZiBhIE1WQyBtb2RlbC4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwiPkFwcGxpY2F0aW9uQ29uZmlnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwiPkFwcGxpY2F0aW9uQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BcHBsaWNhdGlvbkNvbmZpZy5odG1sIj5BcHBsaWNhdGlvbkNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uU2VydmxldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRBcHBsaWNhdGlvbkNvbmZpZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0QXBwbGljYXRpb25Db25maWc8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldE1vZHVsZUNvbmZpZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+QWN0aW9uU2VydmxldC5nZXRNb2R1bGVDb25maWcoSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwiPkFwcGxpY2F0aW9uQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25TZXJ2bGV0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRBcHBsaWNhdGlvbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+aW5pdEFwcGxpY2F0aW9uQ29uZmlnPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRNb2R1bGVDb25maWcoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjxDT0RFPkFjdGlvblNlcnZsZXQuaW5pdE1vZHVsZUNvbmZpZyhTdHJpbmcsU3RyaW5nKTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQXBwbGljYXRpb25Db25maWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQXBwbGljYXRpb25Db25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQ29uZmlnSGVscGVyLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Db25maWdIZWxwZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjBjNThlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQ29uZmlnSGVscGVyLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Db25maWdIZWxwZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkNvbmZpZ0hlbHBlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb25maWdIZWxwZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29uZmlnSGVscGVyPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Db25maWdIZWxwZXIKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb25maWdIZWxwZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2ZhMjcwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwKQEAgLTAsMCArMSwxNjMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIEludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29uZmlnSGVscGVySW50ZXJmYWNlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIEludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29uZmlnSGVscGVySW50ZXJmYWNlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIEludGVyZmFjZTxicj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29uZmlnSGVscGVySW50ZXJmYWNlPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9CPjwvQT48L1REPgorPFREPlRoZSAiY29uZmlnIiBwYWNrYWdlIGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyB0aGF0IGNvcnJlc3BvbmQgdG8KK2VsZW1lbnRzIHRoYXQgbWF5IGJlIHNwZWNpZmllZCBpbiB0aGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+Cittb2R1bGUgY29uZmlndXJhdGlvbiBmaWxlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHRoYXQgaW1wbGVtZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj5Db25maWdIZWxwZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Tk9URTogVEhJUyBDTEFTUyBJUyBVTkRFUiBBQ1RJVkUgREVWRUxPUE1FTlQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0NvbmZpZ1J1bGVTZXQuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0NvbmZpZ1J1bGVTZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGFjYjVmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQ29uZmlnUnVsZVNldC5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29uZmlnUnVsZVNldCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29uZmlnUnVsZVNldCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ1J1bGVTZXQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29uZmlnUnVsZVNldC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Db25maWdSdWxlU2V0PC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Db25maWdSdWxlU2V0Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdSdWxlU2V0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbmZpZ1J1bGVTZXQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQ29udHJvbGxlckNvbmZpZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQ29udHJvbGxlckNvbmZpZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzNTVjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Db250cm9sbGVyQ29uZmlnLmh0bWwKQEAgLTAsMCArMSwyNDAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Db250cm9sbGVyQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Db250cm9sbGVyQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb250cm9sbGVyQ29uZmlnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkNvbnRyb2xsZXJDb25maWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQj48L0E+PC9URD4KKzxURD5UaGUgImNvbmZpZyIgcGFja2FnZSBjb250YWlucyBjb25maWd1cmF0aW9uIG9iamVjdHMgdGhhdCBjb3JyZXNwb25kIHRvCitlbGVtZW50cyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPgorbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZ2V0Q29udHJvbGxlckNvbmZpZygpIj5nZXRDb250cm9sbGVyQ29uZmlnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI3NldENvbnRyb2xsZXJDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkNvbnRyb2xsZXJDb25maWcpIj5zZXRDb250cm9sbGVyQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4mbmJzcDtjYyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0E+IGRlY2xhcmVkIGFzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2NvbnRyb2xsZXJDb25maWciPmNvbnRyb2xsZXJDb25maWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2dldENvbnRyb2xsZXJDb25maWcoKSI+Z2V0Q29udHJvbGxlckNvbmZpZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI3NldENvbnRyb2xsZXJDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkNvbnRyb2xsZXJDb25maWcpIj5zZXRDb250cm9sbGVyQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4mbmJzcDtjYyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29udHJvbGxlckNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9EYXRhU291cmNlQ29uZmlnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9EYXRhU291cmNlQ29uZmlnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDljZjgzYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0RhdGFTb3VyY2VDb25maWcuaHRtbApAQCAtMCwwICsxLDI2MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkRhdGFTb3VyY2VDb25maWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkRhdGFTb3VyY2VDb25maWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRhdGFTb3VyY2VDb25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRGF0YVNvdXJjZUNvbmZpZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9CPjwvQT48L1REPgorPFREPlRoZSAiY29uZmlnIiBwYWNrYWdlIGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyB0aGF0IGNvcnJlc3BvbmQgdG8KK2VsZW1lbnRzIHRoYXQgbWF5IGJlIHNwZWNpZmllZCBpbiB0aGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+Cittb2R1bGUgY29uZmlndXJhdGlvbiBmaWxlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kRGF0YVNvdXJjZUNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZERhdGFTb3VyY2VDb25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZERhdGFTb3VyY2VDb25maWdzKCkiPmZpbmREYXRhU291cmNlQ29uZmlnczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2FkZERhdGFTb3VyY2VDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkRhdGFTb3VyY2VDb25maWcpIj5hZGREYXRhU291cmNlQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYSBuZXcgPGNvZGU+RGF0YVNvdXJjZUNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNyZW1vdmVEYXRhU291cmNlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnKSI+cmVtb3ZlRGF0YVNvdXJjZUNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmREYXRhU291cmNlQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRGF0YVNvdXJjZUNvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGRhdGEgc291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT5bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWdJbXBsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZERhdGFTb3VyY2VDb25maWdzKCkiPmZpbmREYXRhU291cmNlQ29uZmlnczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWdJbXBsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjYWRkRGF0YVNvdXJjZUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRGF0YVNvdXJjZUNvbmZpZykiPmFkZERhdGFTb3VyY2VDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ldyA8Y29kZT5EYXRhU291cmNlQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKKyB3aXRoIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZ0ltcGwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNyZW1vdmVEYXRhU291cmNlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnKSI+cmVtb3ZlRGF0YVNvdXJjZUNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGF0YVNvdXJjZUNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9FeGNlcHRpb25Db25maWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0V4Y2VwdGlvbkNvbmZpZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2YmM5NzQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9FeGNlcHRpb25Db25maWcuaHRtbApAQCAtMCwwICsxLDM2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkV4Y2VwdGlvbkNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSBhY3Rpb24gcGFja2FnZSBpcyB0aGUgY29yZSBvZiB0aGUgc3RydXRzIGZyYW1ld29yaywKKyAgICBwcm92aWRpbmcgdGhlICJDb250cm9sbGVyIiBhc3BlY3Qgb2YgYSBNVkMgbW9kZWwuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlICJjb25maWciIHBhY2thZ2UgY29udGFpbnMgY29uZmlndXJhdGlvbiBvYmplY3RzIHRoYXQgY29ycmVzcG9uZCB0bworZWxlbWVudHMgdGhhdCBtYXkgYmUgc3BlY2lmaWVkIGluIHRoZSA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4KK21vZHVsZSBjb25maWd1cmF0aW9uIGZpbGUuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkV4Y2VwdGlvbi5odG1sIj5BY3Rpb25FeGNlcHRpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+UmVwbGFjZWQgYnkgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZzwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25NYXBwaW5nLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sI2ZpbmRFeGNlcHRpb24oamF2YS5sYW5nLkNsYXNzKSI+ZmluZEV4Y2VwdGlvbjwvQT48L0I+KGphdmEubGFuZy5DbGFzcyZuYnNwO3R5cGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGaW5kIGFuZCByZXR1cm4gdGhlIDxjb2RlPkV4Y2VwdGlvbkNvbmZpZzwvY29kZT4gaW5zdGFuY2UgZGVmaW5pbmcKKyBob3cgZXhjZXB0aW9ucyBvZiB0aGUgc3BlY2lmaWVkIHR5cGUgc2hvdWxkIGJlIGhhbmRsZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5FeGNlcHRpb25IYW5kbGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRXhjZXB0aW9uSGFuZGxlci5odG1sI2V4ZWN1dGUoamF2YS5sYW5nLkV4Y2VwdGlvbiwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPihqYXZhLmxhbmcuRXhjZXB0aW9uJm5ic3A7ZXgsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPiZuYnNwO2FlLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybUluc3RhbmNlLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0hhbmRsZSB0aGUgZXhjZXB0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRFeGNlcHRpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRFeGNlcHRpb25Db25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZXhjZXB0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdHlwZSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPltdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRFeGNlcHRpb25Db25maWdzKCkiPmZpbmRFeGNlcHRpb25Db25maWdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBleGNlcHRpb24gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uQ29uZmlnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZmluZEV4Y2VwdGlvbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEV4Y2VwdGlvbkNvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBleGNlcHRpb24gY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCB0eXBlLCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uQ29uZmlnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZmluZEV4Y2VwdGlvbkNvbmZpZ3MoKSI+ZmluZEV4Y2VwdGlvbkNvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBhY3Rpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2FkZEV4Y2VwdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnKSI+YWRkRXhjZXB0aW9uQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IDxjb2RlPkV4Y2VwdGlvbkNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNyZW1vdmVFeGNlcHRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZykiPnJlbW92ZUV4Y2VwdGlvbkNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbW92ZSB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9uIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI2FkZEV4Y2VwdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnKSI+YWRkRXhjZXB0aW9uQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IDxjb2RlPkV4Y2VwdGlvbkNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIGFjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25Db25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNyZW1vdmVFeGNlcHRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZykiPnJlbW92ZUV4Y2VwdGlvbkNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbW92ZSB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9uIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWdJbXBsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEV4Y2VwdGlvbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEV4Y2VwdGlvbkNvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBleGNlcHRpb24gY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCB0eXBlLCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRFeGNlcHRpb25Db25maWdzKCkiPmZpbmRFeGNlcHRpb25Db25maWdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBleGNlcHRpb24gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2FkZEV4Y2VwdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnKSI+YWRkRXhjZXB0aW9uQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IDxjb2RlPkV4Y2VwdGlvbkNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWdJbXBsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcmVtb3ZlRXhjZXB0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcpIj5yZW1vdmVFeGNlcHRpb25Db25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW1vdmUgdGhlIHNwZWNpZmllZCBleGNlcHRpb24gY29uZmlndXJhdGlvbiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJFeGNlcHRpb25Db25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvRm9ybUJlYW5Db25maWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0Zvcm1CZWFuQ29uZmlnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzYwNTQxMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0Zvcm1CZWFuQ29uZmlnLmh0bWwKQEAgLTAsMCArMSwzNDkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGb3JtQmVhbkNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSBhY3Rpb24gcGFja2FnZSBpcyB0aGUgY29yZSBvZiB0aGUgc3RydXRzIGZyYW1ld29yaywKKyAgICBwcm92aWRpbmcgdGhlICJDb250cm9sbGVyIiBhc3BlY3Qgb2YgYSBNVkMgbW9kZWwuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlICJjb25maWciIHBhY2thZ2UgY29udGFpbnMgY29uZmlndXJhdGlvbiBvYmplY3RzIHRoYXQgY29ycmVzcG9uZCB0bworZWxlbWVudHMgdGhhdCBtYXkgYmUgc3BlY2lmaWVkIGluIHRoZSA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4KK21vZHVsZSBjb25maWd1cmF0aW9uIGZpbGUuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW4uaHRtbCI+QWN0aW9uRm9ybUJlYW48L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW4gPHN0cm9uZz5BY3Rpb25Gb3JtQmVhbjwvc3Ryb25nPiBpcyB0aGUgZGVmaW5pdGlvbiBvZiBhIGZvcm0gYmVhbiB0aGF0CisgaXMgbG9hZGVkIGZyb20gYSA8Y29kZT4mbHQ7Zm9ybS1iZWFuJmd0OzwvY29kZT4gZWxlbWVudCBpbiB0aGUgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RHluYUFjdGlvbkZvcm1DbGFzcy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNjb25maWciPmNvbmZpZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gZm9yIHRoaXMgY2xhc3MuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+RHluYUFjdGlvbkZvcm1DbGFzczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RHluYUFjdGlvbkZvcm1DbGFzcy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNjcmVhdGVEeW5hQWN0aW9uRm9ybUNsYXNzKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPmNyZWF0ZUR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIChpZiBuZWNlc3NhcnkpIGFuZCByZXR1cm4gYSBuZXcgPGNvZGU+RHluYUFjdGlvbkZvcm1DbGFzczwvY29kZT4KKyBpbnN0YW5jZSBmb3IgdGhlIHNwZWNpZmllZCBmb3JtIGJlYW4gY29uZmlndXJhdGlvbiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RHluYUFjdGlvbkZvcm1DbGFzcy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNpbnRyb3NwZWN0KG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPmludHJvc3BlY3Q8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW50cm9zcGVjdCBvdXIgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb24gdG8gaWRlbnRpZnkgdGhlIHN1cHBvcnRlZAorIHByb3BlcnRpZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q29uc3RydWN0b3JzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCNEeW5hQWN0aW9uRm9ybUNsYXNzKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IER5bmFBY3Rpb25Gb3JtQ2xhc3MgZm9yIHRoZSBzcGVjaWZpZWQgZm9ybSBiZWFuCisgY29uZmlndXJhdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kRm9ybUJlYW5Db25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRGb3JtQmVhbkNvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3JtIGJlYW4gY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZEZvcm1CZWFuQ29uZmlncygpIj5maW5kRm9ybUJlYW5Db25maWdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3JtIGJlYW4gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjYWRkRm9ybUJlYW5Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnKSI+YWRkRm9ybUJlYW5Db25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IDxjb2RlPkZvcm1CZWFuQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKKyB3aXRoIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI3JlbW92ZUZvcm1CZWFuQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPnJlbW92ZUZvcm1CZWFuQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbW92ZSB0aGUgc3BlY2lmaWVkIGZvcm0gYmVhbiBjb25maWd1cmF0aW9uIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWdJbXBsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEZvcm1CZWFuQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9ybUJlYW5Db25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPltdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZ0ltcGwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kRm9ybUJlYW5Db25maWdzKCkiPmZpbmRGb3JtQmVhbkNvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2FkZEZvcm1CZWFuQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPmFkZEZvcm1CZWFuQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPkZvcm1CZWFuQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ldyA8Y29kZT5Gb3JtQmVhbkNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWdJbXBsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcmVtb3ZlRm9ybUJlYW5Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnKSI+cmVtb3ZlRm9ybUJlYW5Db25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGb3JtQmVhbkNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxY2JjYmQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Gb3JtUHJvcGVydHlDb25maWcuaHRtbApAQCAtMCwwICsxLDE5NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1Qcm9wZXJ0eUNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybVByb3BlcnR5Q29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtUHJvcGVydHlDb25maWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlICJjb25maWciIHBhY2thZ2UgY29udGFpbnMgY29uZmlndXJhdGlvbiBvYmplY3RzIHRoYXQgY29ycmVzcG9uZCB0bworZWxlbWVudHMgdGhhdCBtYXkgYmUgc3BlY2lmaWVkIGluIHRoZSA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4KK21vZHVsZSBjb25maWd1cmF0aW9uIGZpbGUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj5Gb3JtUHJvcGVydHlDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Rm9ybUJlYW5Db25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sI2ZpbmRGb3JtUHJvcGVydHlDb25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRGb3JtUHJvcGVydHlDb25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9ybSBwcm9wZXJ0eSBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5CisgbmFtZSwgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT5bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Gb3JtQmVhbkNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjZmluZEZvcm1Qcm9wZXJ0eUNvbmZpZ3MoKSI+ZmluZEZvcm1Qcm9wZXJ0eUNvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcm0gcHJvcGVydHkgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Gb3JtQmVhbkNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjYWRkRm9ybVByb3BlcnR5Q29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtUHJvcGVydHlDb25maWcpIj5hZGRGb3JtUHJvcGVydHlDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybVByb3BlcnR5Q29uZmlnLmh0bWwiPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYSBuZXcgPGNvZGU+Rm9ybVByb3BlcnR5Q29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKKyB3aXRoIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZvcm1CZWFuQ29uZmlnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCNyZW1vdmVGb3JtUHJvcGVydHlDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1Qcm9wZXJ0eUNvbmZpZykiPnJlbW92ZUZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbW92ZSB0aGUgc3BlY2lmaWVkIGZvcm0gcHJvcGVydHkgY29uZmlndXJhdGlvbiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGb3JtUHJvcGVydHlDb25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvRm9yd2FyZENvbmZpZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvRm9yd2FyZENvbmZpZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4NDEyYzUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Gb3J3YXJkQ29uZmlnLmh0bWwKQEAgLTAsMCArMSw0MzAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGb3J3YXJkQ29uZmlnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQj48L0E+PC9URD4KKzxURD4gVGhlIGFjdGlvbiBwYWNrYWdlIGlzIHRoZSBjb3JlIG9mIHRoZSBzdHJ1dHMgZnJhbWV3b3JrLAorICAgIHByb3ZpZGluZyB0aGUgIkNvbnRyb2xsZXIiIGFzcGVjdCBvZiBhIE1WQyBtb2RlbC4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQj48L0E+PC9URD4KKzxURD5UaGUgImNvbmZpZyIgcGFja2FnZSBjb250YWlucyBjb25maWd1cmF0aW9uIG9iamVjdHMgdGhhdCBjb3JyZXNwb25kIHRvCitlbGVtZW50cyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPgorbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvQT48L1REPgorPFREPjxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIFV0aWxpdGllcyBwYWNrYWdlIHByb3ZpZGVzIGEgdmFyaWV0eSBvZiBmYW1pbGllcyBvZiBjbGFzc2VzLAordG8gc29sdmUgcHJvYmxlbXMgdGhhdCBhcmUgY29tbW9ubHkgZW5jb3VudGVyZWQgaW4gYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucy4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FuIDxzdHJvbmc+QWN0aW9uRm9yd2FyZDwvc3Ryb25nPiByZXByZXNlbnRzIGEgZGVzdGluYXRpb24gdG8gd2hpY2ggdGhlCisgY29udHJvbGxlciBzZXJ2bGV0LCA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiwgbWlnaHQgYmUgZGlyZWN0ZWQgdG8KKyBwZXJmb3JtIGEgPGNvZGU+UmVxdWVzdERpc3BhdGNoZXIuZm9yd2FyZCgpPC9jb2RlPiBvcgorIDxjb2RlPkh0dHBTZXJ2bGV0UmVzcG9uc2Uuc2VuZFJlZGlyZWN0KCk8L2NvZGU+IHRvLCBhcyBhIHJlc3VsdCBvZgorIHByb2Nlc3NpbmcgYWN0aXZpdGllcyBvZiBhbiA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+Rm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBzdWJjbGFzcyBvZiA8c3Ryb25nPkFjdGlvbkZvcndhcmQ8L3N0cm9uZz4gdGhhdCBkZWZhdWx0cyB0aGUKKyA8Y29kZT5yZWRpcmVjdDwvY29kZT4gYXR0cmlidXRlIHRvIDxjb2RlPmZhbHNlPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIj5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBzdWJjbGFzcyBvZiA8c3Ryb25nPkFjdGlvbkZvcndhcmQ8L3N0cm9uZz4gdGhhdCBkZWZhdWx0cyB0aGUKKyA8Y29kZT5yZWRpcmVjdDwvY29kZT4gYXR0cmlidXRlIHRvIDxjb2RlPnRydWU8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0UHJvY2Vzc29yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NGb3J3YXJkQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPnByb2Nlc3NGb3J3YXJkQ29uZmlnPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4mbmJzcDtmb3J3YXJkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Rm9yd2FyZCBvciByZWRpcmVjdCB0byB0aGUgc3BlY2lmaWVkIGRlc3RpbmF0aW9uLCBieSB0aGUgc3BlY2lmaWVkCisgbWVjaGFuaXNtLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRGb3J3YXJkQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9yd2FyZENvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT5bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kRm9yd2FyZENvbmZpZ3MoKSI+ZmluZEZvcndhcmRDb25maWdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3JtIGJlYW4gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25Db25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNmaW5kRm9yd2FyZENvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcndhcmRDb25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9yd2FyZCBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uQ29uZmlnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZmluZEZvcndhcmRDb25maWdzKCkiPmZpbmRGb3J3YXJkQ29uZmlnczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2FkZEZvcndhcmRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj5hZGRGb3J3YXJkQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYSBuZXcgPGNvZGU+Rm9yd2FyZENvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBvZiBnbG9iYWwKKyBmb3J3YXJkcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjcmVtb3ZlRm9yd2FyZENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPnJlbW92ZUZvcndhcmRDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbW92ZSB0aGUgc3BlY2lmaWVkIGZvcndhcmQgY29uZmlndXJhdGlvbiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25Db25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNhZGRGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+YWRkRm9yd2FyZENvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IDxjb2RlPkZvcndhcmRDb25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgb2YgZ2xvYmFsCisgZm9yd2FyZHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgYWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sI3JlbW92ZUZvcndhcmRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj5yZW1vdmVGb3J3YXJkQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW1vdmUgdGhlIHNwZWNpZmllZCBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZ0ltcGwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kRm9yd2FyZENvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcndhcmRDb25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9yd2FyZCBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRGb3J3YXJkQ29uZmlncygpIj5maW5kRm9yd2FyZENvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZ0ltcGwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGRGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+YWRkRm9yd2FyZENvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IDxjb2RlPkZvcndhcmRDb25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgb2YgZ2xvYmFsCisgZm9yd2FyZHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZ0ltcGwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNyZW1vdmVGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+cmVtb3ZlRm9yd2FyZENvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZm9yd2FyZCBjb25maWd1cmF0aW9uIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1JlcXVlc3RQcm9jZXNzb3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NGb3J3YXJkQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPnByb2Nlc3NGb3J3YXJkQ29uZmlnPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4mbmJzcDtmb3J3YXJkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcmxvYWRlZCBtZXRob2QgZnJvbSBTdHJ1dHMnIFJlcXVlc3RQcm9jZXNzb3IuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RVdGlscy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNmb3J3YXJkVVJMKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+Zm9yd2FyZFVSTDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPiZuYnNwO2ZvcndhcmQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGNvbnRleHQtcmVsYXRpdmUgVVJMIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIHNwZWNpZmllZAorIEZvcndhcmRDb25maWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcndhcmRDb25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhNzBmZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwKQEAgLTAsMCArMSwyNjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQj48L0E+PC9URD4KKzxURD5UaGUgImNvbmZpZyIgcGFja2FnZSBjb250YWlucyBjb25maWd1cmF0aW9uIG9iamVjdHMgdGhhdCBjb3JyZXNwb25kIHRvCitlbGVtZW50cyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPgorbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbWVzc2FnZSByZXNvdXJjZXMgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBrZXksCisgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPltdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlncygpIj5maW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnKSI+YWRkTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgbmV3IDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQKKyBhc3NvY2lhdGVkIHdpdGggdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjcmVtb3ZlTWVzc2FnZVJlc291cmNlc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTWVzc2FnZVJlc291cmNlc0NvbmZpZykiPnJlbW92ZU1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbW92ZSB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZ0ltcGwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBtZXNzYWdlIHJlc291cmNlcyBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwKKyBpZiBhbnk7IG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlncygpIj5maW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2FkZE1lc3NhZ2VSZXNvdXJjZXNDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1lc3NhZ2VSZXNvdXJjZXNDb25maWcpIj5hZGRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYSBuZXcgPGNvZGU+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldAorIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWdJbXBsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcmVtb3ZlTWVzc2FnZVJlc291cmNlc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTWVzc2FnZVJlc291cmNlc0NvbmZpZykiPnJlbW92ZU1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbW92ZSB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvTW9kdWxlQ29uZmlnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Nb2R1bGVDb25maWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDIzMWI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvTW9kdWxlQ29uZmlnLmh0bWwKQEAgLTAsMCArMSw4NjMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIEludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIEludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1vZHVsZUNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIEludGVyZmFjZTxicj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9CPjwvQT48L1REPgorPFREPiBUaGUgYWN0aW9uIHBhY2thZ2UgaXMgdGhlIGNvcmUgb2YgdGhlIHN0cnV0cyBmcmFtZXdvcmssCisgICAgcHJvdmlkaW5nIHRoZSAiQ29udHJvbGxlciIgYXNwZWN0IG9mIGEgTVZDIG1vZGVsLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9CPjwvQT48L1REPgorPFREPlRoZSAiY29uZmlnIiBwYWNrYWdlIGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyB0aGF0IGNvcnJlc3BvbmQgdG8KK2VsZW1lbnRzIHRoYXQgbWF5IGJlIHNwZWNpZmllZCBpbiB0aGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+Cittb2R1bGUgY29uZmlndXJhdGlvbiBmaWxlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zPC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQj48L0E+PC9URD4KKzxURD48YSBuYW1lPSJkb2MuRGVzY3JpcHRpb24iPlRoZSAic3RydXRzLWh0bWwiIHRhZyBsaWJyYXJ5PC9hPgorICBjb250YWlucyBKU1AgY3VzdG9tIHRhZ3MgdXNlZnVsIGluIGNyZWF0aW5nIGR5bmFtaWMgSFRNTCB1c2VyIGludGVyZmFjZXMsCitpbmNsdWRpbmcgaW5wdXQgZm9ybXMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvQT48L1REPgorPFREPjxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9CPjwvQT48L1REPgorPFREPiBUaGUgdXBsb2FkIHBhY2thZ2UgZmFjaWxpdGllcyB0byB1cGxvYWQgZmlsZXMgdXNpbmcKKyBtdWx0aS1wYXJ0IHJlcXVlc3RzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIFV0aWxpdGllcyBwYWNrYWdlIHByb3ZpZGVzIGEgdmFyaWV0eSBvZiBmYW1pbGllcyBvZiBjbGFzc2VzLAordG8gc29sdmUgcHJvYmxlbXMgdGhhdCBhcmUgY29tbW9ubHkgZW5jb3VudGVyZWQgaW4gYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQj48L0E+PC9URD4KKzxURD4gVGhlIHZhbGlkYXRvciBwYWNrYWdlIHByb3ZpZGVzIGEgc2VyaWVzIG9mIGNsYXNzZXMgdG8gdmFsaWRhdGUgCisgICA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiB0eXBlIG9mIGlucHV0LiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RQcm9jZXNzb3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjYXBwQ29uZmlnIj5hcHBDb25maWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+dXNlIG1vZHVsZUNvbmZpZyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0UHJvY2Vzc29yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI21vZHVsZUNvbmZpZyI+bW9kdWxlQ29uZmlnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBNb2R1bGVDb25maWd1cmF0aW9uIHdlIGFyZSBhc3NvY2lhdGVkIHdpdGguPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvblNlcnZsZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZ2V0TW9kdWxlQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRNb2R1bGVDb25maWc8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGUgY3VycmVudGx5IHNlbGVjdGVkCisgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvblNlcnZsZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdE1vZHVsZUNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+aW5pdE1vZHVsZUNvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgsCisgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRocyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgdGhlIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gZm9yIHRoZQorIHNwZWNpZmllZCBtb2R1bGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uU2VydmxldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRSZXF1ZXN0UHJvY2Vzc29yKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5nZXRSZXF1ZXN0UHJvY2Vzc29yPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TG9vayB1cCBhbmQgcmV0dXJuIHRoZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj48Q09ERT5SZXF1ZXN0UHJvY2Vzc29yPC9DT0RFPjwvQT4gcmVzcG9uc2libGUgZm9yIHRoZQorIHNwZWNpZmllZCBtb2R1bGUsIGNyZWF0aW5nIGEgbmV3IG9uZSBpZiBuZWNlc3NhcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25TZXJ2bGV0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3BhcnNlTW9kdWxlQ29uZmlnRmlsZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnLCBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuRGlnZXN0ZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wYXJzZU1vZHVsZUNvbmZpZ0ZpbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4LAorICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRocywKKyAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyJm5ic3A7ZGlnZXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQYXJzZXMgb25lIG1vZHVsZSBjb25maWcgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uU2VydmxldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0QXBwbGljYXRpb25EYXRhU291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdEFwcGxpY2F0aW9uRGF0YVNvdXJjZXM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2UgaW5pdE1vZHVsZURhdGFTb3VyY2VzKE1vZHVsZUNvbmZpZyk8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvblNlcnZsZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdE1vZHVsZURhdGFTb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5pbml0TW9kdWxlRGF0YVNvdXJjZXM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0aWFsaXplIHRoZSBkYXRhIHNvdXJjZXMgZm9yIHRoZSBzcGVjaWZpZWQgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25TZXJ2bGV0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRBcHBsaWNhdGlvblBsdWdJbnMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXRBcHBsaWNhdGlvblBsdWdJbnM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0TW9kdWxlUGx1Z0lucyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PENPREU+QWN0aW9uU2VydmxldC5pbml0TW9kdWxlUGx1Z0lucyhNb2R1bGVDb25maWcpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvblNlcnZsZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdE1vZHVsZVBsdWdJbnMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXRNb2R1bGVQbHVnSW5zPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSB0aGUgcGx1ZyBpbnMgZm9yIHRoZSBzcGVjaWZpZWQgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25TZXJ2bGV0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRBcHBsaWNhdGlvbk1lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXRBcHBsaWNhdGlvbk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2UgaW5pdE1vZHVsZU1lc3NhZ2VSZXNvdXJjZXMoKTwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uU2VydmxldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0TW9kdWxlTWVzc2FnZVJlc291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdE1vZHVsZU1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0aWFsaXplIHRoZSBhcHBsaWNhdGlvbiBNZXNzYWdlUmVzb3VyY2VzIGZvciB0aGUgc3BlY2lmaWVkCisgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uU2VydmxldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZWZhdWx0Q29udHJvbGxlckNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+ZGVmYXVsdENvbnRyb2xsZXJDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5XaWxsIGJlIHJlbW92ZWQgaW4gYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjEuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uU2VydmxldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZWZhdWx0Rm9ybUJlYW5zQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5kZWZhdWx0Rm9ybUJlYW5zQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+V2lsbCBiZSByZW1vdmVkIGluIGEgcmVsZWFzZSBhZnRlciBTdHJ1dHMgMS4xLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvblNlcnZsZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVmYXVsdEZvcndhcmRzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5kZWZhdWx0Rm9yd2FyZHNDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5XaWxsIGJlIHJlbW92ZWQgaW4gYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjEuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uU2VydmxldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZWZhdWx0TWFwcGluZ3NDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmRlZmF1bHRNYXBwaW5nc0NvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPldpbGwgYmUgcmVtb3ZlZCBpbiBhIHJlbGVhc2UgYWZ0ZXIgU3RydXRzIDEuMS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25TZXJ2bGV0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2RlZmF1bHRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5kZWZhdWx0TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPldpbGwgYmUgcmVtb3ZlZCBpbiBhIHJlbGVhc2UgYWZ0ZXIgU3RydXRzIDEuMS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVxdWVzdFByb2Nlc3Nvci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCwKKyAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSB0aGlzIHJlcXVlc3QgcHJvY2Vzc29yIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlBsdWdJbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sI2luaXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5pbml0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0LAorICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWNlaXZlIG5vdGlmaWNhdGlvbiB0aGF0IHRoZSBzcGVjaWZpZWQgbW9kdWxlIGlzIGJlaW5nCisgc3RhcnRlZCB1cC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5DbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiB0aGF0IGltcGxlbWVudCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BcHBsaWNhdGlvbkNvbmZpZy5odG1sIj5BcHBsaWNhdGlvbkNvbmZpZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2FnZSByZXBsYWNlZCBieSBNb2R1bGVDb25maWcgSW50ZXJmYWNlLjwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5GaWVsZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IGRlY2xhcmVkIGFzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Gb3JtQmVhbkNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjbW9kdWxlQ29uZmlnIj5tb2R1bGVDb25maWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4gd2l0aCB3aGljaCB0aGlzIGZvcm0gYmVhbiBkZWZpbml0aW9uCisgaXMgYXNzb2NpYXRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25Db25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNtb2R1bGVDb25maWciPm1vZHVsZUNvbmZpZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gd2l0aCB3aGljaCB3ZSBhcmUgYXNzb2NpYXRlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPmFic3RyYWN0ICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWdGYWN0b3J5LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sI2NyZWF0ZU1vZHVsZUNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlTW9kdWxlQ29uZmlnPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ByZWZpeCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3bHkgaW5zdGFuc2lhdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Gb3JtQmVhbkNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjZ2V0TW9kdWxlQ29uZmlnKCkiPmdldE1vZHVsZUNvbmZpZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPiB3aXRoIHdoaWNoIHRoaXMgZm9ybSBiZWFuIGRlZmluaXRpb24KKyBpcyBhc3NvY2lhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uQ29uZmlnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0QXBwbGljYXRpb25Db25maWcoKSI+Z2V0QXBwbGljYXRpb25Db25maWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0TW9kdWxlQ29uZmlnKCkiPjxDT0RFPkFjdGlvbkNvbmZpZy5nZXRNb2R1bGVDb25maWcoKTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uQ29uZmlnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjZ2V0TW9kdWxlQ29uZmlnKCkiPmdldE1vZHVsZUNvbmZpZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtb2R1bGUgY29uZmlndXJhdGlvbiB3aXRoIHdoaWNoIHdlIGFyZSBhc3NvY2lhdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Gb3JtQmVhbkNvbmZpZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwjc2V0TW9kdWxlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5zZXRNb2R1bGVDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttb2R1bGVDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4gd2l0aCB3aGljaCB0aGlzIGZvcm0gYmVhbiBkZWZpbml0aW9uCisgaXMgYXNzb2NpYXRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25Db25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRBcHBsaWNhdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+c2V0QXBwbGljYXRpb25Db25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttb2R1bGVDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwjc2V0TW9kdWxlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48Q09ERT5BY3Rpb25Db25maWcuc2V0TW9kdWxlQ29uZmlnKE1vZHVsZUNvbmZpZyk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25Db25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCNzZXRNb2R1bGVDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPnNldE1vZHVsZUNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO21vZHVsZUNvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtb2R1bGUgY29uZmlndXJhdGlvbiB3aXRoIHdoaWNoIHdlIGFyZSBhc3NvY2lhdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPiB0aGF0IGltcGxlbWVudCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29sbGVjdGlvbiBvZiBzdGF0aWMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiB0aGF0IGRlc2NyaWJlcyBhCisgU3RydXRzLWJhc2VkIG1vZHVsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL0RlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwjY3JlYXRlTW9kdWxlQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5jcmVhdGVNb2R1bGVDb25maWc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGFuZCByZXR1cm4gYSBuZXdseSBpbnN0YW5zaWF0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5GaWVsZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2luczwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjY29uZmlnIj5jb25maWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4gaW5zdGFuY2UgZm9yIG91ciBhcHBsaWNhdGlvbiBtb2R1bGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TW9kdWxlQ29uZmlnVmVyaWZpZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvTW9kdWxlQ29uZmlnVmVyaWZpZXIuaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCwKKyAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCB0aGUgc3BlY2lmaWVkIG1vZHVsZSBpcyBiZWluZworIHN0YXJ0ZWQgdXAuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+RmllbGRzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZvcm1UYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNtb2R1bGVDb25maWciPm1vZHVsZUNvbmZpZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gZm9yIG91ciBtb2R1bGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCNnZXRNb2R1bGVDb25maWcoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldE1vZHVsZUNvbmZpZzwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgY3VycmVudCBNb2R1bGVDb25maWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5nZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGRlZmluaXRpb24gZmFjdG9yeSBmb3IgdGhlIG1vZHVsZSBhdHRhY2hlZCB0byBzcGVjaWZpZWQgbW9kdWxlQ29uZmlnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1V0aWxTdHJ1dHNJbXBsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5nZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGRlZmluaXRpb24gZmFjdG9yeSBmb3IgdGhlIG1vZHVsZSBhdHRhY2hlZCB0byB0aGUgc3BlY2lmaWVkIG1vZHVsZUNvbmZpZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1BsdWdpbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCwKKyAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCB0aGUgc3BlY2lmaWVkIG1vZHVsZSBpcyBiZWluZworIHN0YXJ0ZWQgdXAuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1BsdWdpbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCNyZWFkRmFjdG9yeUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPnJlYWRGYWN0b3J5Q29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0LAorICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIEZhY3RvcnlDb25maWcgYW5kIGluaXRpYWxpemUgaXQgZnJvbSB3ZWIueG1sIGFuZCBzdHJ1dHMtY29uZmlnLnhtbC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5NYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNQbHVnaW4uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjZmluZFN0cnV0c1BsdWdJbkNvbmZpZ1Byb3BlcnRpZXMob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5maW5kU3RydXRzUGx1Z0luQ29uZmlnUHJvcGVydGllczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZpbmQgb3JpZ2luYWwgcHJvcGVydGllcyBzZXQgaW4gdGhlIFN0cnV0cyBQbHVnSW5Db25maWcgb2JqZWN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1BsdWdpbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCNpbml0UmVxdWVzdFByb2Nlc3NvckNsYXNzKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5pbml0UmVxdWVzdFByb2Nlc3NvckNsYXNzPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IFJlcXVlc3RQcm9jZXNzb3IgdG8gYXBwcm9wcmlhdGUgVGlsZXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+PENPREU+UmVxdWVzdFByb2Nlc3NvcjwvQ09ERT48L0E+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlRpbGVzUmVxdWVzdFByb2Nlc3Nvci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQsCisgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO21vZHVsZUNvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgdGhpcyByZXF1ZXN0IHByb2Nlc3NvciBpbnN0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtsb25nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldFNpemVNYXgob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmdldFNpemVNYXg8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttYyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIG1heGltdW0gYWxsb3dhYmxlIHNpemUsIGluIGJ5dGVzLCBvZiBhbiB1cGxvYWRlZCBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7bG9uZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRTaXplVGhyZXNob2xkKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5nZXRTaXplVGhyZXNob2xkPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bWMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBzaXplIHRocmVzaG9sZCB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIgYW4gdXBsb2FkZWQgZmlsZQorIHdpbGwgYmUgd3JpdHRlbiB0byBkaXNrIG9yIGNhY2hlZCBpbiBtZW1vcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldFJlcG9zaXRvcnlQYXRoKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5nZXRSZXBvc2l0b3J5UGF0aDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO21jKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgcGF0aCB0byB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byBiZSB1c2VkIGZvciB1cGxvYWRlZAorIGZpbGVzIHdoaWNoIGFyZSB3cml0dGVuIHRvIGRpc2suPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3JldHJpZXZlVGVtcERpcihvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+cmV0cmlldmVUZW1wRGlyPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmVzIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZyb20gZWl0aGVyIEFjdGlvblNlcnZsZXQsIGEgY29udGV4dAorIHByb3BlcnR5LCBvciBhIHN5c3RlbSBwcm9wZXJ0eSwgaW4gdGhhdCBvcmRlci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RVdGlscy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRSZXF1ZXN0TW9kdWxlQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRSZXF1ZXN0TW9kdWxlQ29uZmlnPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGN1cnJlbnQgTW9kdWxlQ29uZmlnIG9iamVjdCBzdG9yZWQgaW4gcmVxdWVzdCwgaWYgaXQgZXhpc3RzLAorIG51bGwgb3RoZXJ3aXNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVxdWVzdFV0aWxzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2dldE1vZHVsZUNvbmZpZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0TW9kdWxlQ29uZmlnPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIE1vZHVsZUNvbmZpZyBvYmplY3QgaXMgaXQgZXhpc3RzLCBudWxsIG90aGVyd2lzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RVdGlscy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRNb2R1bGVDb25maWcoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj5nZXRNb2R1bGVDb25maWc8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBNb2R1bGVDb25maWcgb2JqZWN0IGlmIGl0IGV4aXN0cywgbnVsbCBpZiBvdGhlcndpc2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RVdGlscy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNjcmVhdGVBY3Rpb25Gb3JtKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPmNyZWF0ZUFjdGlvbkZvcm08L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttb2R1bGVDb25maWcsCisgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSAoaWYgbmVjZXNzYXJ5KSBhbmQgcmV0dXJuIGFuIEFjdGlvbkZvcm0gaW5zdGFuY2UgYXBwcm9wcmlhdGUKKyBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5WYWxpZGF0b3JQbHVnSW4uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCNjb25maWciPmNvbmZpZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gZm9yIG91ciBvd25pbmcgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5WYWxpZGF0b3JQbHVnSW4uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCwKKyAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSBhbmQgbG9hZCBvdXIgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1vZHVsZUNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA2NTg2YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbApAQCAtMCwwICsxLDE5NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZ0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZ0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnRmFjdG9yeTwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9CPjwvQT48L1REPgorPFREPlRoZSAiY29uZmlnIiBwYWNrYWdlIGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyB0aGF0IGNvcnJlc3BvbmQgdG8KK2VsZW1lbnRzIHRoYXQgbWF5IGJlIHNwZWNpZmllZCBpbiB0aGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+Cittb2R1bGUgY29uZmlndXJhdGlvbiBmaWxlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCI+TW9kdWxlQ29uZmlnRmFjdG9yeTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj5Nb2R1bGVDb25maWdGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWdGYWN0b3J5LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sI2NyZWF0ZUZhY3RvcnkoKSI+Y3JlYXRlRmFjdG9yeTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbmQgcmV0dXJuIGEgPGNvZGU+TW9kdWxlQ29uZmlnRmFjdG9yeTwvY29kZT4gaW5zdGFuY2Ugb2YgdGhlCisgYXBwcm9wcmlhdGUgY2xhc3MsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBjdXN0b21pemVkCisgPGNvZGU+TW9kdWxlQ29uZmlnPC9jb2RlPiBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCI+TW9kdWxlQ29uZmlnRmFjdG9yeTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL0RlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPkRlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgZmFjdG9yeSBmb3IgY3JlYXRpbmcgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPiBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvUGx1Z0luQ29uZmlnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9QbHVnSW5Db25maWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTRhODRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvUGx1Z0luQ29uZmlnLmh0bWwKQEAgLTAsMCArMSwyNzQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5QbHVnSW5Db25maWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLlBsdWdJbkNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQbHVnSW5Db25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuUGx1Z0luQ29uZmlnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj5QbHVnSW5Db25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9CPjwvQT48L1REPgorPFREPlRoZSAiY29uZmlnIiBwYWNrYWdlIGNvbnRhaW5zIGNvbmZpZ3VyYXRpb24gb2JqZWN0cyB0aGF0IGNvcnJlc3BvbmQgdG8KK2VsZW1lbnRzIHRoYXQgbWF5IGJlIHNwZWNpZmllZCBpbiB0aGUgPGNvZGU+c3RydXRzLWNvbmZpZy54bWw8L2NvZGU+Cittb2R1bGUgY29uZmlndXJhdGlvbiBmaWxlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0I+PC9BPjwvVEQ+Cis8VEQ+PGRpdiBjbGFzcz0ibWFpbkNvbnRlbnQiPgorICAgIFRoZSBUaWxlcyB0YWdsaWIgYW5kIGZyYW1ld29yayBhbGxvd3MgYnVpbGRpbmcgd2ViIHBhZ2VzIGJ5IGFzc2VtYmxpbmcgcmV1c2FibGUgCisgICAgcGllY2VzIG9mIHBhZ2VzLCBjYWxsZWQgVGlsZXMuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+UGx1Z0luQ29uZmlnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj5QbHVnSW5Db25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT5bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kUGx1Z0luQ29uZmlncygpIj5maW5kUGx1Z0luQ29uZmlnczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgY29uZmlndXJlZCBwbHVnLWluIGFjdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+UGx1Z0luQ29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRQbHVnSW5Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLlBsdWdJbkNvbmZpZykiPmFkZFBsdWdJbkNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+UGx1Z0luQ29uZmlnPC9BPiZuYnNwO3BsdWdJbkNvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ld2x5IGNvbmZpZ3VyZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj48Q09ERT5QbHVnSW5Db25maWc8L0NPREU+PC9BPiBpbnN0YW5jZSB0byB0aGUgc2V0IG9mCisgcGx1Zy1pbiBBY3Rpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj5QbHVnSW5Db25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT5bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Nb2R1bGVDb25maWdJbXBsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZFBsdWdJbkNvbmZpZ3MoKSI+ZmluZFBsdWdJbkNvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGNvbmZpZ3VyZWQgcGx1Zy1pbiBhY3Rpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj5QbHVnSW5Db25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1vZHVsZUNvbmZpZ0ltcGwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGRQbHVnSW5Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLlBsdWdJbkNvbmZpZykiPmFkZFBsdWdJbkNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+UGx1Z0luQ29uZmlnPC9BPiZuYnNwO3BsdWdJbkNvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ld2x5IGNvbmZpZ3VyZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj48Q09ERT5QbHVnSW5Db25maWc8L0NPREU+PC9BPiBpbnN0YW5jZSB0byB0aGUgc2V0IG9mCisgcGx1Zy1pbiBBY3Rpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5GaWVsZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPiBkZWNsYXJlZCBhcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNQbHVnaW4uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjY3VycmVudFBsdWdJbkNvbmZpZ09iamVjdCI+Y3VycmVudFBsdWdJbkNvbmZpZ09iamVjdDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcGx1Z2luIGNvbmZpZyBvYmplY3QgcHJvdmlkZWQgYnkgdGhlIEFjdGlvblNlcnZsZXQgaW5pdGlhbGl6aW5nCisgIHRoaXMgcGx1Z2luLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNQbHVnaW4uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjc2V0Q3VycmVudFBsdWdJbkNvbmZpZ09iamVjdChvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuUGx1Z0luQ29uZmlnKSI+c2V0Q3VycmVudFBsdWdJbkNvbmZpZ09iamVjdDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+UGx1Z0luQ29uZmlnPC9BPiZuYnNwO3BsdWdJbkNvbmZpZ09iamVjdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01ldGhvZCB1c2VkIGJ5IHRoZSBBY3Rpb25TZXJ2bGV0IGluaXRpYWxpemluZyB0aGlzIHBsdWdpbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQbHVnSW5Db25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvUGx1Z0luU2V0UHJvcGVydHlSdWxlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9QbHVnSW5TZXRQcm9wZXJ0eVJ1bGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmIxOTAyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvUGx1Z0luU2V0UHJvcGVydHlSdWxlLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5QbHVnSW5TZXRQcm9wZXJ0eVJ1bGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLlBsdWdJblNldFByb3BlcnR5UnVsZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJblNldFByb3BlcnR5UnVsZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQbHVnSW5TZXRQcm9wZXJ0eVJ1bGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuUGx1Z0luU2V0UHJvcGVydHlSdWxlPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5QbHVnSW5TZXRQcm9wZXJ0eVJ1bGUKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJblNldFByb3BlcnR5UnVsZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQbHVnSW5TZXRQcm9wZXJ0eVJ1bGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvU2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvU2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljNzM4NzkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvU2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLlNldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGU8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLlNldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1NldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2RvYy1maWxlcy9jb25maWdVTUwuZ2lmIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9kb2MtZmlsZXMvY29uZmlnVU1MLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWQ4MjkyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9kb2MtZmlsZXMvY29uZmlnVU1MLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzMmNlZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbApAQCAtMCwwICsxLDI5MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0RlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeSxEZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWdGYWN0b3J5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvRk9OVD4KKzxCUj4KK0NsYXNzIERlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5PC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeTwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj5Nb2R1bGVDb25maWdGYWN0b3J5PC9BPjxEVD5pbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ETD4KKworPFA+CitBIGZhY3RvcnkgZm9yIGNyZWF0aW5nIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4gaW5zdGFuY2VzLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kSWQkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5Sb2JlcnQgTGVsYW5kPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4sIAorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnRmFjdG9yeTwvQ09ERT48L0E+LCAKKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLkRlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5Ij5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZ0ZhY3RvcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCNjbGF6eiI+Y2xheno8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sI2ZhY3RvcnlDbGFzcyI+ZmFjdG9yeUNsYXNzPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL0RlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwjRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkoKSI+RGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCNjcmVhdGVNb2R1bGVDb25maWcoamF2YS5sYW5nLlN0cmluZykiPmNyZWF0ZU1vZHVsZUNvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYW5kIHJldHVybiBhIG5ld2x5IGluc3RhbnNpYXRlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZ0ZhY3RvcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj5Nb2R1bGVDb25maWdGYWN0b3J5PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwjY3JlYXRlRmFjdG9yeSgpIj5jcmVhdGVGYWN0b3J5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCNnZXRGYWN0b3J5Q2xhc3MoKSI+Z2V0RmFjdG9yeUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCNzZXRGYWN0b3J5Q2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldEZhY3RvcnlDbGFzczwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkoKSI+PCEtLSAtLT48L0E+PEgzPgorRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY3JlYXRlTW9kdWxlQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVNb2R1bGVDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4gPEI+Y3JlYXRlTW9kdWxlQ29uZmlnPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4KTwvUFJFPgorPERMPgorPEREPkNyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3bHkgaW5zdGFuc2lhdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4uCisgVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBjb25jcmV0ZSBzdWJjbGFzc2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwjY3JlYXRlTW9kdWxlQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5jcmVhdGVNb2R1bGVDb25maWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj5Nb2R1bGVDb25maWdGYWN0b3J5PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByZWZpeDwvQ09ERT4gLSBNb2R1bGUgcHJlZml4IGZvciBDb25maWd1cmF0aW9uPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZ0ZhY3RvcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NGJiNTNiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbApAQCAtMCwwICsxLDE0MzMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitNb2R1bGVDb25maWdJbXBsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5Nb2R1bGVDb25maWdJbXBsLE1vZHVsZUNvbmZpZ0ltcGwgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik1vZHVsZUNvbmZpZ0ltcGwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTW9kdWxlQ29uZmlnSW1wbC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBNb2R1bGVDb25maWdJbXBsPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuTW9kdWxlQ29uZmlnSW1wbDwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiwgamF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQXBwbGljYXRpb25Db25maWcuaHRtbCI+QXBwbGljYXRpb25Db25maWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk1vZHVsZUNvbmZpZ0ltcGw8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0RMPgorCis8UD4KKzxwPlRoZSBjb2xsZWN0aW9uIG9mIHN0YXRpYyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIGEKKyBTdHJ1dHMtYmFzZWQgbW9kdWxlLiAgTXVsdGlwbGUgbW9kdWxlcyBhcmUgaWRlbnRpZmllZCBieQorIGEgPGVtPnByZWZpeDwvZW0+IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNvbnRleHQKKyByZWxhdGl2ZSBwb3J0aW9uIG9mIHRoZSByZXF1ZXN0IFVSSS4gIElmIG5vIG1vZHVsZSBwcmVmaXggY2FuIGJlCisgbWF0Y2hlZCwgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiAod2l0aCBhIHByZWZpeCBlcXVhbCB0byBhIHplcm8tbGVuZ3RoCisgc3RyaW5nKSBpcyBzZWxlY3RlZCwgd2hpY2ggaXMgZWxlZ2FudGx5IGJhY2t3YXJkcyBjb21wYXRpYmxlIHdpdGggdGhlCisgcHJldmlvdXMgU3RydXRzIGJlaGF2aW9yIHRoYXQgb25seSBzdXBwb3J0ZWQgb25lIG1vZHVsZS48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuTW9kdWxlQ29uZmlnSW1wbCI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjYWN0aW9uQ29uZmlncyI+YWN0aW9uQ29uZmlnczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2V0IG9mIGFjdGlvbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUsIGlmIGFueSwKKyBrZXllZCBieSB0aGUgPGNvZGU+cGF0aDwvY29kZT4gcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhY3Rpb25NYXBwaW5nQ2xhc3MiPmFjdGlvbk1hcHBpbmdDbGFzczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCBjbGFzcyBuYW1lIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhY3Rpb24gbWFwcGluZworIGluc3RhbmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2NvbmZpZ3VyZWQiPmNvbmZpZ3VyZWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFzIHRoaXMgbW9kdWxlIGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkIHlldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNjb250cm9sbGVyQ29uZmlnIj5jb250cm9sbGVyQ29uZmlnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNoTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNkYXRhU291cmNlcyI+ZGF0YVNvdXJjZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBKREJDIGRhdGEgc291cmNlIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzCisgbW9kdWxlLCBpZiBhbnksIGtleWVkIGJ5IHRoZSA8Y29kZT5rZXk8L2NvZGU+IHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkhhc2hNYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2V4Y2VwdGlvbnMiPmV4Y2VwdGlvbnM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBleGNlcHRpb24gaGFuZGxpbmcgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMKKyBtb2R1bGUsIGlmIGFueSwga2V5ZWQgYnkgdGhlIDxjb2RlPnR5cGU8L2NvZGU+IHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkhhc2hNYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2Zvcm1CZWFucyI+Zm9ybUJlYW5zPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXQgb2YgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZSwgaWYgYW55LAorIGtleWVkIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNoTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmb3J3YXJkcyI+Zm9yd2FyZHM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBnbG9iYWwgZm9yd2FyZCBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUsIGlmIGFueSwKKyBrZXllZCBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjbWVzc2FnZVJlc291cmNlcyI+bWVzc2FnZVJlc291cmNlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2V0IG9mIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzCisgbW9kdWxlLCBpZiBhbnksIGtleWVkIGJ5IHRoZSA8Y29kZT5rZXk8L2NvZGU+IHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkFycmF5TGlzdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcGx1Z0lucyI+cGx1Z0luczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2V0IG9mIGNvbmZpZ3VyZWQgcGx1Zy1pbiBBY3Rpb25zIGZvciB0aGlzIG1vZHVsZSwKKyBpZiBhbnksIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgZGVjbGFyZWQgYW5kIGNvbmZpZ3VyZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNwcmVmaXgiPnByZWZpeDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcHJlZml4IG9mIHRoZSBjb250ZXh0LXJlbGF0aXZlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgVVJJLCB1c2VkIHRvCisgc2VsZWN0IHRoaXMgY29uZmlndXJhdGlvbiB2ZXJzdXMgb3RoZXJzIHN1cHBvcnRlZCBieSB0aGUgY29udHJvbGxlcgorIHNlcnZsZXQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjTW9kdWxlQ29uZmlnSW1wbChvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5Nb2R1bGVDb25maWdJbXBsKSI+TW9kdWxlQ29uZmlnSW1wbDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4mbmJzcDttb2R1bGVDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Pbmx5IHVzZWQgd2hpbGUgd2UgYXJlIGRlcHJlY2F0aW5nIEFwcGxpY2F0aW9uQ29uZmlnIHRvIGluc3VyZSBtYXhpbXVtIGNvbXBhdGFiaWxpdHkuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI01vZHVsZUNvbmZpZ0ltcGwoamF2YS5sYW5nLlN0cmluZykiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGFuIE1vZHVsZUNvbmZpZ0ltcGwgb2JqZWN0IGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGRBY3Rpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZykiPmFkZEFjdGlvbkNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIG5ldyA8Y29kZT5BY3Rpb25Db25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2FkZERhdGFTb3VyY2VDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkRhdGFTb3VyY2VDb25maWcpIj5hZGREYXRhU291cmNlQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYSBuZXcgPGNvZGU+RGF0YVNvdXJjZUNvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBhc3NvY2lhdGVkCisgd2l0aCB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjYWRkRXhjZXB0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcpIj5hZGRFeGNlcHRpb25Db25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYSBuZXcgPGNvZGU+RXhjZXB0aW9uQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKKyB3aXRoIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNhZGRGb3JtQmVhbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWcpIj5hZGRGb3JtQmVhbkNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYSBuZXcgPGNvZGU+Rm9ybUJlYW5Db25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2FkZEZvcndhcmRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj5hZGRGb3J3YXJkQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYSBuZXcgPGNvZGU+Rm9yd2FyZENvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldCBvZiBnbG9iYWwKKyBmb3J3YXJkcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2FkZE1lc3NhZ2VSZXNvdXJjZXNDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1lc3NhZ2VSZXNvdXJjZXNDb25maWcpIj5hZGRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYSBuZXcgPGNvZGU+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvY29kZT4gaW5zdGFuY2UgdG8gdGhlIHNldAorIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjYWRkUGx1Z0luQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5QbHVnSW5Db25maWcpIj5hZGRQbHVnSW5Db25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT4mbmJzcDtwbHVnSW5Db25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYSBuZXdseSBjb25maWd1cmVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+PENPREU+UGx1Z0luQ29uZmlnPC9DT0RFPjwvQT4gaW5zdGFuY2UgdG8gdGhlIHNldCBvZgorIHBsdWctaW4gQWN0aW9ucyBmb3IgdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEFjdGlvbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEFjdGlvbkNvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBhY3Rpb24gY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBwYXRoLCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRBY3Rpb25Db25maWdzKCkiPmZpbmRBY3Rpb25Db25maWdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBhY3Rpb24gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZERhdGFTb3VyY2VDb25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmREYXRhU291cmNlQ29uZmlnPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPltdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kRGF0YVNvdXJjZUNvbmZpZ3MoKSI+ZmluZERhdGFTb3VyY2VDb25maWdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEV4Y2VwdGlvbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEV4Y2VwdGlvbkNvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBleGNlcHRpb24gY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCB0eXBlLCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRFeGNlcHRpb25Db25maWdzKCkiPmZpbmRFeGNlcHRpb25Db25maWdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBleGNlcHRpb24gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNmaW5kRm9ybUJlYW5Db25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRGb3JtQmVhbkNvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3JtIGJlYW4gY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+W108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRGb3JtQmVhbkNvbmZpZ3MoKSI+ZmluZEZvcm1CZWFuQ29uZmlnczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRGb3J3YXJkQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kRm9yd2FyZENvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT5bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZEZvcndhcmRDb25maWdzKCkiPmZpbmRGb3J3YXJkQ29uZmlnczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI2ZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj5maW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT5bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWdzKCkiPmZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbWVzc2FnZSByZXNvdXJjZXMgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT5bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZmluZFBsdWdJbkNvbmZpZ3MoKSI+ZmluZFBsdWdJbkNvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGNvbmZpZ3VyZWQgcGx1Zy1pbiBhY3Rpb25zIGZvciB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZnJlZXplKCkiPmZyZWV6ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZyZWV6ZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGlzIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZ2V0QWN0aW9uTWFwcGluZ0NsYXNzKCkiPmdldEFjdGlvbk1hcHBpbmdDbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWZhdWx0IGNsYXNzIG5hbWUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGFjdGlvbiBtYXBwaW5nCisgaW5zdGFuY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNnZXRDb25maWd1cmVkKCkiPmdldENvbmZpZ3VyZWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtIYXMgdGhpcyBtb2R1bGUgYmVlbiBjb21wbGV0ZWx5IGNvbmZpZ3VyZWQgeWV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjZ2V0Q29udHJvbGxlckNvbmZpZygpIj5nZXRDb250cm9sbGVyQ29uZmlnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNnZXRQcmVmaXgoKSI+Z2V0UHJlZml4PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHByZWZpeCBvZiB0aGUgY29udGV4dC1yZWxhdGl2ZSBwb3J0aW9uIG9mIHRoZSByZXF1ZXN0IFVSSSwgdXNlZCB0bworIHNlbGVjdCB0aGlzIGNvbmZpZ3VyYXRpb24gdmVyc3VzIG90aGVycyBzdXBwb3J0ZWQgYnkgdGhlIGNvbnRyb2xsZXIKKyBzZXJ2bGV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNyZW1vdmVBY3Rpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZykiPnJlbW92ZUFjdGlvbkNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbW92ZSB0aGUgc3BlY2lmaWVkIGFjdGlvbiBjb25maWd1cmF0aW9uIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNyZW1vdmVEYXRhU291cmNlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnKSI+cmVtb3ZlRGF0YVNvdXJjZUNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcmVtb3ZlRXhjZXB0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcpIj5yZW1vdmVFeGNlcHRpb25Db25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW1vdmUgdGhlIHNwZWNpZmllZCBleGNlcHRpb24gY29uZmlndXJhdGlvbiBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjcmVtb3ZlRm9ybUJlYW5Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnKSI+cmVtb3ZlRm9ybUJlYW5Db25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI3JlbW92ZUZvcndhcmRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj5yZW1vdmVGb3J3YXJkQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW1vdmUgdGhlIHNwZWNpZmllZCBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sI3JlbW92ZU1lc3NhZ2VSZXNvdXJjZXNDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1lc3NhZ2VSZXNvdXJjZXNDb25maWcpIj5yZW1vdmVNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW1vdmUgdGhlIHNwZWNpZmllZCBtZXNzYWdlIHJlc291cmNlcyBjb25maWd1cmF0aW9uIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNzZXRBY3Rpb25NYXBwaW5nQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldEFjdGlvbk1hcHBpbmdDbGFzczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb25NYXBwaW5nQ2xhc3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCBjbGFzcyBuYW1lIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhY3Rpb24gbWFwcGluZworIGluc3RhbmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwjc2V0Q29udHJvbGxlckNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29udHJvbGxlckNvbmZpZykiPnNldENvbnRyb2xsZXJDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPiZuYnNwO2NjKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNzZXRQcmVmaXgoamF2YS5sYW5nLlN0cmluZykiPnNldFByZWZpeDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcHJlZml4IG9mIHRoZSBjb250ZXh0LXJlbGF0aXZlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgVVJJLCB1c2VkIHRvCisgc2VsZWN0IHRoaXMgY29uZmlndXJhdGlvbiB2ZXJzdXMgb3RoZXJzIHN1cHBvcnRlZCBieSB0aGUgY29udHJvbGxlcgorIHNlcnZsZXQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJhY3Rpb25Db25maWdzIj48IS0tIC0tPjwvQT48SDM+CithY3Rpb25Db25maWdzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2hNYXAgPEI+YWN0aW9uQ29uZmlnczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIGFjdGlvbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUsIGlmIGFueSwKKyBrZXllZCBieSB0aGUgPGNvZGU+cGF0aDwvY29kZT4gcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkYXRhU291cmNlcyI+PCEtLSAtLT48L0E+PEgzPgorZGF0YVNvdXJjZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuSGFzaE1hcCA8Qj5kYXRhU291cmNlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIEpEQkMgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMKKyBtb2R1bGUsIGlmIGFueSwga2V5ZWQgYnkgdGhlIDxjb2RlPmtleTwvY29kZT4gcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJleGNlcHRpb25zIj48IS0tIC0tPjwvQT48SDM+CitleGNlcHRpb25zPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2hNYXAgPEI+ZXhjZXB0aW9uczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIGV4Y2VwdGlvbiBoYW5kbGluZyBjb25maWd1cmF0aW9ucyBmb3IgdGhpcworIG1vZHVsZSwgaWYgYW55LCBrZXllZCBieSB0aGUgPGNvZGU+dHlwZTwvY29kZT4gcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmb3JtQmVhbnMiPjwhLS0gLS0+PC9BPjxIMz4KK2Zvcm1CZWFuczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5IYXNoTWFwIDxCPmZvcm1CZWFuczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIGZvcm0gYmVhbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUsIGlmIGFueSwKKyBrZXllZCBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmb3J3YXJkcyI+PCEtLSAtLT48L0E+PEgzPgorZm9yd2FyZHM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuSGFzaE1hcCA8Qj5mb3J3YXJkczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIGdsb2JhbCBmb3J3YXJkIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZSwgaWYgYW55LAorIGtleWVkIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBwcm9wZXJ0eS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VSZXNvdXJjZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VSZXNvdXJjZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuSGFzaE1hcCA8Qj5tZXNzYWdlUmVzb3VyY2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgbWVzc2FnZSByZXNvdXJjZXMgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMKKyBtb2R1bGUsIGlmIGFueSwga2V5ZWQgYnkgdGhlIDxjb2RlPmtleTwvY29kZT4gcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwbHVnSW5zIj48IS0tIC0tPjwvQT48SDM+CitwbHVnSW5zPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkFycmF5TGlzdCA8Qj5wbHVnSW5zPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgY29uZmlndXJlZCBwbHVnLWluIEFjdGlvbnMgZm9yIHRoaXMgbW9kdWxlLAorIGlmIGFueSwgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBkZWNsYXJlZCBhbmQgY29uZmlndXJlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbmZpZ3VyZWQiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmZpZ3VyZWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmZpZ3VyZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SGFzIHRoaXMgbW9kdWxlIGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkIHlldC4gIE9uY2UgdGhpcyBmbGFnCisgaGFzIGJlZW4gc2V0LCBhbnkgYXR0ZW1wdCB0byBtb2RpZnkgdGhlIGNvbmZpZ3VyYXRpb24gd2lsbCByZXR1cm4gYW4KKyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb250cm9sbGVyQ29uZmlnIj48IS0tIC0tPjwvQT48SDM+Citjb250cm9sbGVyQ29uZmlnPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4gPEI+Y29udHJvbGxlckNvbmZpZzwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29udHJvbGxlciBjb25maWd1cmF0aW9uIG9iamVjdCBmb3IgdGhpcyBtb2R1bGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmVmaXgiPjwhLS0gLS0+PC9BPjxIMz4KK3ByZWZpeDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJlZml4PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcmVmaXggb2YgdGhlIGNvbnRleHQtcmVsYXRpdmUgcG9ydGlvbiBvZiB0aGUgcmVxdWVzdCBVUkksIHVzZWQgdG8KKyBzZWxlY3QgdGhpcyBjb25maWd1cmF0aW9uIHZlcnN1cyBvdGhlcnMgc3VwcG9ydGVkIGJ5IHRoZSBjb250cm9sbGVyCisgc2VydmxldC4gIEEgY29uZmlndXJhdGlvbiB3aXRoIGEgcHJlZml4IG9mIGEgemVyby1sZW5ndGggU3RyaW5nIGlzIHRoZQorIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgdGhpcyB3ZWIgbW9kdWxlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWN0aW9uTWFwcGluZ0NsYXNzIj48IS0tIC0tPjwvQT48SDM+CithY3Rpb25NYXBwaW5nQ2xhc3M8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFjdGlvbk1hcHBpbmdDbGFzczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCBjbGFzcyBuYW1lIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhY3Rpb24gbWFwcGluZworIGluc3RhbmNlcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNb2R1bGVDb25maWdJbXBsKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitNb2R1bGVDb25maWdJbXBsPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TW9kdWxlQ29uZmlnSW1wbDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ByZWZpeCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYW4gTW9kdWxlQ29uZmlnSW1wbCBvYmplY3QgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgdmFsdWVzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByZWZpeDwvQ09ERT4gLSBDb250ZXh0LXJlbGF0aXZlIFVSSSBwcmVmaXggZm9yIHRoaXMgbW9kdWxlPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTW9kdWxlQ29uZmlnSW1wbChvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5Nb2R1bGVDb25maWdJbXBsKSI+PCEtLSAtLT48L0E+PEgzPgorTW9kdWxlQ29uZmlnSW1wbDwvSDM+Cis8UFJFPgorcHVibGljIDxCPk1vZHVsZUNvbmZpZ0ltcGw8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4mbmJzcDttb2R1bGVDb25maWcpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+T25seSB1c2VkIHdoaWxlIHdlIGFyZSBkZXByZWNhdGluZyBBcHBsaWNhdGlvbkNvbmZpZyB0byBpbnN1cmUgbWF4aW11bSBjb21wYXRhYmlsaXR5LjwvST4KKzxQPgorPEREPk9ubHkgdXNlZCB3aGlsZSB3ZSBhcmUgZGVwcmVjYXRpbmcgQXBwbGljYXRpb25Db25maWcuCisgcGVyZm9ybXMgYSBzaGFsbG93IGNvcHkgdG8gZW5zdXJlIHRoYXQgYW55IG9wZXJhdGlvbnMKKyBwZXJmb3JtZWQgb24gYW4gQXBwbGljYXRpb25Db25maWcgb2JqZWN0IGlzCisgcGVyZm9ybWVkIG9uIHRoZSBzYW1lIHVuZGVybHlpbmcKKyBNb2R1bGVDb25maWdJbXBsIHN1YiBvYmplY3RzCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bW9kdWxlQ29uZmlnPC9DT0RFPiAtIDwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldENvbmZpZ3VyZWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29uZmlndXJlZDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0Q29uZmlndXJlZDwvQj4oKTwvUFJFPgorPERMPgorPEREPkhhcyB0aGlzIG1vZHVsZSBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZCB5ZXQuICBPbmNlIHRoaXMgZmxhZworIGhhcyBiZWVuIHNldCwgYW55IGF0dGVtcHQgdG8gbW9kaWZ5IHRoZSBjb25maWd1cmF0aW9uIHdpbGwgcmV0dXJuIGFuCisgSWxsZWdhbFN0YXRlRXhjZXB0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNnZXRDb25maWd1cmVkKCkiPmdldENvbmZpZ3VyZWQ8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Q29udHJvbGxlckNvbmZpZygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDb250cm9sbGVyQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+Q29udHJvbGxlckNvbmZpZzwvQT4gPEI+Z2V0Q29udHJvbGxlckNvbmZpZzwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoZSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGlzIG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZ2V0Q29udHJvbGxlckNvbmZpZygpIj5nZXRDb250cm9sbGVyQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENvbnRyb2xsZXJDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkNvbnRyb2xsZXJDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb250cm9sbGVyQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDb250cm9sbGVyQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj5Db250cm9sbGVyQ29uZmlnPC9BPiZuYnNwO2NjKTwvUFJFPgorPERMPgorPEREPlRoZSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0aGlzIG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjc2V0Q29udHJvbGxlckNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQ29udHJvbGxlckNvbmZpZykiPnNldENvbnRyb2xsZXJDb25maWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y2M8L0NPREU+IC0gVGhlIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoaXMgbW9kdWxlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJlZml4KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByZWZpeDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJlZml4PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhlIHByZWZpeCBvZiB0aGUgY29udGV4dC1yZWxhdGl2ZSBwb3J0aW9uIG9mIHRoZSByZXF1ZXN0IFVSSSwgdXNlZCB0bworIHNlbGVjdCB0aGlzIGNvbmZpZ3VyYXRpb24gdmVyc3VzIG90aGVycyBzdXBwb3J0ZWQgYnkgdGhlIGNvbnRyb2xsZXIKKyBzZXJ2bGV0LiAgQSBjb25maWd1cmF0aW9uIHdpdGggYSBwcmVmaXggb2YgYSB6ZXJvLWxlbmd0aCBTdHJpbmcgaXMgdGhlCisgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGlzIHdlYiBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2dldFByZWZpeCgpIj5nZXRQcmVmaXg8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcmVmaXg8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByZWZpeDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ByZWZpeCk8L1BSRT4KKzxETD4KKzxERD5UaGUgcHJlZml4IG9mIHRoZSBjb250ZXh0LXJlbGF0aXZlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgVVJJLCB1c2VkIHRvCisgc2VsZWN0IHRoaXMgY29uZmlndXJhdGlvbiB2ZXJzdXMgb3RoZXJzIHN1cHBvcnRlZCBieSB0aGUgY29udHJvbGxlcgorIHNlcnZsZXQuICBBIGNvbmZpZ3VyYXRpb24gd2l0aCBhIHByZWZpeCBvZiBhIHplcm8tbGVuZ3RoIFN0cmluZyBpcyB0aGUKKyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgd2ViIG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjc2V0UHJlZml4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcmVmaXg8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJlZml4PC9DT0RFPiAtIFRoZSBwcmVmaXggb2YgdGhlIGNvbnRleHQtcmVsYXRpdmUgcG9ydGlvbiBvZiB0aGUgcmVxdWVzdCBVUkkuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBY3Rpb25NYXBwaW5nQ2xhc3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWN0aW9uTWFwcGluZ0NsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBY3Rpb25NYXBwaW5nQ2xhc3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCBjbGFzcyBuYW1lIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhY3Rpb24gbWFwcGluZworIGluc3RhbmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZ2V0QWN0aW9uTWFwcGluZ0NsYXNzKCkiPmdldEFjdGlvbk1hcHBpbmdDbGFzczwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBY3Rpb25NYXBwaW5nQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFjdGlvbk1hcHBpbmdDbGFzczwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QWN0aW9uTWFwcGluZ0NsYXNzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWN0aW9uTWFwcGluZ0NsYXNzKTwvUFJFPgorPERMPgorPEREPlRoZSBkZWZhdWx0IGNsYXNzIG5hbWUgdG8gYmUgdXNlZCB3aGVuIGNyZWF0aW5nIGFjdGlvbiBtYXBwaW5nCisgaW5zdGFuY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNzZXRBY3Rpb25NYXBwaW5nQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldEFjdGlvbk1hcHBpbmdDbGFzczwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5hY3Rpb25NYXBwaW5nQ2xhc3M8L0NPREU+IC0gZGVmYXVsdCBjbGFzcyBuYW1lIHRvIGJlIHVzZWQgd2hlbiBjcmVhdGluZyBhY3Rpb24gbWFwcGluZworIGluc3RhbmNlcy48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZEFjdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkQWN0aW9uQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRBY3Rpb25Db25maWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5BZGQgYSBuZXcgPGNvZGU+QWN0aW9uQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKKyB3aXRoIHRoaXMgbW9kdWxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRBY3Rpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZykiPmFkZEFjdGlvbkNvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gVGhlIG5ldyBjb25maWd1cmF0aW9uIGluc3RhbmNlIHRvIGJlIGFkZGVkCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbFN0YXRlRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgbW9kdWxlIGNvbmZpZ3VyYXRpb24KKyAgaGFzIGJlZW4gZnJvemVuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGREYXRhU291cmNlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkRGF0YVNvdXJjZUNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkRGF0YVNvdXJjZUNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGEgbmV3IDxjb2RlPkRhdGFTb3VyY2VDb25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgYXNzb2NpYXRlZAorIHdpdGggdGhpcyBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2FkZERhdGFTb3VyY2VDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkRhdGFTb3VyY2VDb25maWcpIj5hZGREYXRhU291cmNlQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgdG8gYmUgYWRkZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgorICBoYXMgYmVlbiBmcm96ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZEV4Y2VwdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkRXhjZXB0aW9uQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRFeGNlcHRpb25Db25maWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9FeGNlcHRpb25Db25maWcuaHRtbCI+RXhjZXB0aW9uQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5BZGQgYSBuZXcgPGNvZGU+RXhjZXB0aW9uQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKKyB3aXRoIHRoaXMgbW9kdWxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRFeGNlcHRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZykiPmFkZEV4Y2VwdGlvbkNvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gVGhlIG5ldyBjb25maWd1cmF0aW9uIGluc3RhbmNlIHRvIGJlIGFkZGVkCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbFN0YXRlRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgbW9kdWxlIGNvbmZpZ3VyYXRpb24KKyAgaGFzIGJlZW4gZnJvemVuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGRGb3JtQmVhbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CithZGRGb3JtQmVhbkNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkRm9ybUJlYW5Db25maWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGEgbmV3IDxjb2RlPkZvcm1CZWFuQ29uZmlnPC9jb2RlPiBpbnN0YW5jZSB0byB0aGUgc2V0IGFzc29jaWF0ZWQKKyB3aXRoIHRoaXMgbW9kdWxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRGb3JtQmVhbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWcpIj5hZGRGb3JtQmVhbkNvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gVGhlIG5ldyBjb25maWd1cmF0aW9uIGluc3RhbmNlIHRvIGJlIGFkZGVkCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbFN0YXRlRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgbW9kdWxlIGNvbmZpZ3VyYXRpb24KKyAgaGFzIGJlZW4gZnJvemVuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGRGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkRm9yd2FyZENvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkRm9yd2FyZENvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGEgbmV3IDxjb2RlPkZvcndhcmRDb25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQgb2YgZ2xvYmFsCisgZm9yd2FyZHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbW9kdWxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNhZGRGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+YWRkRm9yd2FyZENvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gVGhlIG5ldyBjb25maWd1cmF0aW9uIGluc3RhbmNlIHRvIGJlIGFkZGVkCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbFN0YXRlRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgbW9kdWxlIGNvbmZpZ3VyYXRpb24KKyAgaGFzIGJlZW4gZnJvemVuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGEgbmV3IDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L2NvZGU+IGluc3RhbmNlIHRvIHRoZSBzZXQKKyBhc3NvY2lhdGVkIHdpdGggdGhpcyBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2FkZE1lc3NhZ2VSZXNvdXJjZXNDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1lc3NhZ2VSZXNvdXJjZXNDb25maWcpIj5hZGRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgdG8gYmUgYWRkZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgorICBoYXMgYmVlbiBmcm96ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZFBsdWdJbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuUGx1Z0luQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkUGx1Z0luQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRQbHVnSW5Db25maWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+UGx1Z0luQ29uZmlnPC9BPiZuYnNwO3BsdWdJbkNvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5BZGQgYSBuZXdseSBjb25maWd1cmVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+PENPREU+UGx1Z0luQ29uZmlnPC9DT0RFPjwvQT4gaW5zdGFuY2UgdG8gdGhlIHNldCBvZgorIHBsdWctaW4gQWN0aW9ucyBmb3IgdGhpcyBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2FkZFBsdWdJbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuUGx1Z0luQ29uZmlnKSI+YWRkUGx1Z0luQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBsdWdJbkNvbmZpZzwvQ09ERT4gLSBUaGUgbmV3IGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UgdG8gYmUgYWRkZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRBY3Rpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRBY3Rpb25Db25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4gPEI+ZmluZEFjdGlvbkNvbmZpZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBhY3Rpb24gY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBwYXRoLCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZEFjdGlvbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEFjdGlvbkNvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYXRoPC9DT0RFPiAtIFBhdGggb2YgdGhlIGFjdGlvbiBjb25maWd1cmF0aW9uIHRvIHJldHVybjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZEFjdGlvbkNvbmZpZ3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZEFjdGlvbkNvbmZpZ3M8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT5bXSA8Qj5maW5kQWN0aW9uQ29uZmlnczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgYWN0aW9uIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4gIElmIHRoZXJlIGFyZQorIG5vbmUsIGEgemVyby1sZW5ndGggYXJyYXkgaXMgcmV0dXJuZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRBY3Rpb25Db25maWdzKCkiPmZpbmRBY3Rpb25Db25maWdzPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmREYXRhU291cmNlQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRGF0YVNvdXJjZUNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPkRhdGFTb3VyY2VDb25maWc8L0E+IDxCPmZpbmREYXRhU291cmNlQ29uZmlnPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGlmIGFueTsKKyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kRGF0YVNvdXJjZUNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZERhdGFTb3VyY2VDb25maWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIEtleSBvZiB0aGUgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbiB0byByZXR1cm48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmREYXRhU291cmNlQ29uZmlncygpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRGF0YVNvdXJjZUNvbmZpZ3M8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPltdIDxCPmZpbmREYXRhU291cmNlQ29uZmlnczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgZGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLiAgSWYgdGhlcmUKKyBhcmUgbm9uZSwgYSB6ZXJvLWxlbmd0aCBhcnJheSBpcyByZXR1cm5lZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZERhdGFTb3VyY2VDb25maWdzKCkiPmZpbmREYXRhU291cmNlQ29uZmlnczwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRXhjZXB0aW9uQ29uZmlnKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRXhjZXB0aW9uQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+IDxCPmZpbmRFeGNlcHRpb25Db25maWc8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgZXhjZXB0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdHlwZSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRFeGNlcHRpb25Db25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRFeGNlcHRpb25Db25maWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dHlwZTwvQ09ERT4gLSBFeGNlcHRpb24gY2xhc3MgbmFtZSB0byBmaW5kIGEgY29uZmlndXJhdGlvbiBmb3I8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRFeGNlcHRpb25Db25maWdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRFeGNlcHRpb25Db25maWdzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+W10gPEI+ZmluZEV4Y2VwdGlvbkNvbmZpZ3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9ucyBmb3IgdGhpcyBtb2R1bGUuICBJZiB0aGVyZQorIGFyZSBub25lLCBhIHplcm8tbGVuZ3RoIGFycmF5IGlzIHJldHVybmVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kRXhjZXB0aW9uQ29uZmlncygpIj5maW5kRXhjZXB0aW9uQ29uZmlnczwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRm9ybUJlYW5Db25maWcoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRGb3JtQmVhbkNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4gPEI+ZmluZEZvcm1CZWFuQ29uZmlnPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGZvcm0gYmVhbiBjb25maWd1cmF0aW9uIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgaWYgYW55OworIG90aGVyd2lzZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRGb3JtQmVhbkNvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcm1CZWFuQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb24gdG8gcmV0dXJuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRm9ybUJlYW5Db25maWdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRGb3JtQmVhbkNvbmZpZ3M8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+W10gPEI+ZmluZEZvcm1CZWFuQ29uZmlnczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4gIElmIHRoZXJlCisgYXJlIG5vbmUsIGEgemVyby1sZW5ndGggYXJyYXkgaXMgcmV0dXJuZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI2ZpbmRGb3JtQmVhbkNvbmZpZ3MoKSI+ZmluZEZvcm1CZWFuQ29uZmlnczwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kRm9yd2FyZENvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZEZvcndhcmRDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPiA8Qj5maW5kRm9yd2FyZENvbmZpZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmb3J3YXJkIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBpZiBhbnk7Cisgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZEZvcndhcmRDb25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRGb3J3YXJkQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgZm9yd2FyZCBjb25maWd1cmF0aW9uIHRvIHJldHVybjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZEZvcndhcmRDb25maWdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRGb3J3YXJkQ29uZmlnczwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+W10gPEI+ZmluZEZvcndhcmRDb25maWdzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmb3JtIGJlYW4gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLiAgSWYgdGhlcmUKKyBhcmUgbm9uZSwgYSB6ZXJvLWxlbmd0aCBhcnJheSBpcyByZXR1cm5lZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZEZvcndhcmRDb25maWdzKCkiPmZpbmRGb3J3YXJkQ29uZmlnczwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPiA8Qj5maW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQga2V5LAorIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWcoamF2YS5sYW5nLlN0cmluZykiPmZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBLZXkgb2YgdGhlIGRhdGEgc291cmNlIGNvbmZpZ3VyYXRpb24gdG8gcmV0dXJuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZ3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWdzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT5bXSA8Qj5maW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZ3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzIG1vZHVsZS4KKyBJZiB0aGVyZSBhcmUgbm9uZSwgYSB6ZXJvLWxlbmd0aCBhcnJheSBpcyByZXR1cm5lZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWdzKCkiPmZpbmRNZXNzYWdlUmVzb3VyY2VzQ29uZmlnczwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kUGx1Z0luQ29uZmlncygpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kUGx1Z0luQ29uZmlnczwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+UGx1Z0luQ29uZmlnPC9BPltdIDxCPmZpbmRQbHVnSW5Db25maWdzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBjb25maWd1cmVkIHBsdWctaW4gYWN0aW9ucyBmb3IgdGhpcyBtb2R1bGUuICBJZiB0aGVyZQorIGFyZSBub25lLCBhIHplcm8tbGVuZ3RoIGFycmF5IGlzIHJldHVybmVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNmaW5kUGx1Z0luQ29uZmlncygpIj5maW5kUGx1Z0luQ29uZmlnczwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmcmVlemUoKSI+PCEtLSAtLT48L0E+PEgzPgorZnJlZXplPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5mcmVlemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5GcmVlemUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBtb2R1bGUuICBBZnRlciB0aGlzIG1ldGhvZAorIHJldHVybnMsIGFueSBhdHRlbXB0IHRvIG1vZGlmeSB0aGUgY29uZmlndXJhdGlvbiB3aWxsIHJldHVybgorIGFuIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjZnJlZXplKCkiPmZyZWV6ZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW1vdmVBY3Rpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbW92ZUFjdGlvbkNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVtb3ZlQWN0aW9uQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPkFjdGlvbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+UmVtb3ZlIHRoZSBzcGVjaWZpZWQgYWN0aW9uIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI3JlbW92ZUFjdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnKSI+cmVtb3ZlQWN0aW9uQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBBY3Rpb25Db25maWcgaW5zdGFuY2UgdG8gYmUgcmVtb3ZlZAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIG1vZHVsZSBjb25maWd1cmF0aW9uCisgIGhhcyBiZWVuIGZyb3plbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlRXhjZXB0aW9uQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmVFeGNlcHRpb25Db25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbW92ZUV4Y2VwdGlvbkNvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5FeGNlcHRpb25Db25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvUFJFPgorPERMPgorPEREPlJlbW92ZSB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBjb25maWd1cmF0aW9uIGluc3RhbmNlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNyZW1vdmVFeGNlcHRpb25Db25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZykiPnJlbW92ZUV4Y2VwdGlvbkNvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gQWN0aW9uQ29uZmlnIGluc3RhbmNlIHRvIGJlIHJlbW92ZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsU3RhdGVFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyBtb2R1bGUgY29uZmlndXJhdGlvbgorICBoYXMgYmVlbiBmcm96ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbW92ZURhdGFTb3VyY2VDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkRhdGFTb3VyY2VDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmVEYXRhU291cmNlQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZW1vdmVEYXRhU291cmNlQ29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5EYXRhU291cmNlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5SZW1vdmUgdGhlIHNwZWNpZmllZCBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9uIGluc3RhbmNlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNyZW1vdmVEYXRhU291cmNlQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5EYXRhU291cmNlQ29uZmlnKSI+cmVtb3ZlRGF0YVNvdXJjZUNvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gRGF0YVNvdXJjZUNvbmZpZyBpbnN0YW5jZSB0byBiZSByZW1vdmVkCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbFN0YXRlRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgbW9kdWxlIGNvbmZpZ3VyYXRpb24KKyAgaGFzIGJlZW4gZnJvemVuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW1vdmVGb3JtQmVhbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmVGb3JtQmVhbkNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVtb3ZlRm9ybUJlYW5Db25maWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb24gaW5zdGFuY2UuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sI3JlbW92ZUZvcm1CZWFuQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtQmVhbkNvbmZpZykiPnJlbW92ZUZvcm1CZWFuQ29uZmlnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBGb3JtQmVhbkNvbmZpZyBpbnN0YW5jZSB0byBiZSByZW1vdmVkCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbFN0YXRlRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgbW9kdWxlIGNvbmZpZ3VyYXRpb24KKyAgaGFzIGJlZW4gZnJvemVuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW1vdmVGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorcmVtb3ZlRm9yd2FyZENvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVtb3ZlRm9yd2FyZENvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+UmVtb3ZlIHRoZSBzcGVjaWZpZWQgZm9yd2FyZCBjb25maWd1cmF0aW9uIGluc3RhbmNlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCNyZW1vdmVGb3J3YXJkQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+cmVtb3ZlRm9yd2FyZENvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gRm9yd2FyZENvbmZpZyBpbnN0YW5jZSB0byBiZSByZW1vdmVkCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuSWxsZWdhbFN0YXRlRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgbW9kdWxlIGNvbmZpZ3VyYXRpb24KKyAgaGFzIGJlZW4gZnJvemVuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW1vdmVNZXNzYWdlUmVzb3VyY2VzQ29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorcmVtb3ZlTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVtb3ZlTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+UmVtb3ZlIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSByZXNvdXJjZXMgY29uZmlndXJhdGlvbiBpbnN0YW5jZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwjcmVtb3ZlTWVzc2FnZVJlc291cmNlc0NvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTWVzc2FnZVJlc291cmNlc0NvbmZpZykiPnJlbW92ZU1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIE1lc3NhZ2VSZXNvdXJjZXNDb25maWcgaW5zdGFuY2UgdG8gYmUgcmVtb3ZlZAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxTdGF0ZUV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIG1vZHVsZSBjb25maWd1cmF0aW9uCisgIGhhcyBiZWVuIGZyb3plbjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTW9kdWxlQ29uZmlnSW1wbC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9jbGFzcy11c2UvRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9jbGFzcy11c2UvRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzZmY2M4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL2NsYXNzLXVzZS9EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeQorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9EZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvY2xhc3MtdXNlL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9jbGFzcy11c2UvTW9kdWxlQ29uZmlnSW1wbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2NGEzZWUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvY2xhc3MtdXNlL01vZHVsZUNvbmZpZ0ltcGwuaHRtbApAQCAtMCwwICsxLDIwNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuTW9kdWxlQ29uZmlnSW1wbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5Nb2R1bGVDb25maWdJbXBsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1vZHVsZUNvbmZpZ0ltcGwuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5Nb2R1bGVDb25maWdJbXBsPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQj48L0E+PC9URD4KKzxURD5UaGUgImNvbmZpZyIgcGFja2FnZSBjb250YWlucyBjb25maWd1cmF0aW9uIG9iamVjdHMgdGhhdCBjb3JyZXNwb25kIHRvCitlbGVtZW50cyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPgorbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BcHBsaWNhdGlvbkNvbmZpZy5odG1sIj5BcHBsaWNhdGlvbkNvbmZpZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2FnZSByZXBsYWNlZCBieSBNb2R1bGVDb25maWcgSW50ZXJmYWNlLjwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5Db25zdHJ1Y3RvcnMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQXBwbGljYXRpb25Db25maWcuaHRtbCNBcHBsaWNhdGlvbkNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5Nb2R1bGVDb25maWdJbXBsKSI+QXBwbGljYXRpb25Db25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+T25seSB1c2VkIHdoaWxlIHdlIGFyZSBkZXByZWNhdGluZyBBcHBsaWNhdGlvbkNvbmZpZyB0byBpbnN1cmUgbWF4aW11bSBjb21wYXRhYmlsaXR5LjwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q29uc3RydWN0b3JzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNNb2R1bGVDb25maWdJbXBsKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLk1vZHVsZUNvbmZpZ0ltcGwpIj5Nb2R1bGVDb25maWdJbXBsPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5Nb2R1bGVDb25maWdJbXBsPC9BPiZuYnNwO21vZHVsZUNvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPk9ubHkgdXNlZCB3aGlsZSB3ZSBhcmUgZGVwcmVjYXRpbmcgQXBwbGljYXRpb25Db25maWcgdG8gaW5zdXJlIG1heGltdW0gY29tcGF0YWJpbGl0eS48L0k+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTW9kdWxlQ29uZmlnSW1wbC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2UtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjFjMjcwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2UtZnJhbWUuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+Cis8Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lVGl0bGVGb250Ij4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPjwvRk9OVD4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0NsYXNzZXM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJEZWZhdWx0TW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5PC9BPgorPEJSPgorPEEgSFJFRj0iTW9kdWxlQ29uZmlnSW1wbC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk1vZHVsZUNvbmZpZ0ltcGw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U5Y2NmMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXN1bW1hcnkuaHRtbApAQCAtMCwwICsxLDE0MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwKKzwvSDI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCI+RGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+PC9CPjwvVEQ+Cis8VEQ+QSBmYWN0b3J5IGZvciBjcmVhdGluZyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+IGluc3RhbmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik1vZHVsZUNvbmZpZ0ltcGwuaHRtbCI+TW9kdWxlQ29uZmlnSW1wbDwvQT48L0I+PC9URD4KKzxURD5UaGUgY29sbGVjdGlvbiBvZiBzdGF0aWMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiB0aGF0IGRlc2NyaWJlcyBhCisgU3RydXRzLWJhc2VkIG1vZHVsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXRyZWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDE5MzY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTM4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorSGllcmFyY2h5IEZvciBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXRyZWUuaHRtbCI+QWxsIFBhY2thZ2VzPC9BPjwvREw+Cis8SFI+Cis8SDI+CitDbGFzcyBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuT2JqZWN0PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPjxCPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL0RlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPjxCPkRlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5PC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj48Qj5Nb2R1bGVDb25maWdJbXBsPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUpCis8L1VMPgorPC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2UtdXNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS11c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDI2NWU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2UtdXNlLmh0bWwKQEAgLTAsMCArMSwxNzQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgUGFja2FnZTxicj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlICJjb25maWciIHBhY2thZ2UgY29udGFpbnMgY29uZmlndXJhdGlvbiBvYmplY3RzIHRoYXQgY29ycmVzcG9uZCB0bworZWxlbWVudHMgdGhhdCBtYXkgYmUgc3BlY2lmaWVkIGluIHRoZSA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4KK21vZHVsZSBjb25maWd1cmF0aW9uIGZpbGUuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvY2xhc3MtdXNlL01vZHVsZUNvbmZpZ0ltcGwuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPk1vZHVsZUNvbmZpZ0ltcGw8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbGxlY3Rpb24gb2Ygc3RhdGljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gdGhhdCBkZXNjcmliZXMgYQorIFN0cnV0cy1iYXNlZCBtb2R1bGUuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbDwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9jbGFzcy11c2UvTW9kdWxlQ29uZmlnSW1wbC5odG1sI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIj48Qj5Nb2R1bGVDb25maWdJbXBsPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb2xsZWN0aW9uIG9mIHN0YXRpYyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIGEKKyBTdHJ1dHMtYmFzZWQgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLWZyYW1lLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2UtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTg5YjAzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw3OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1MiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPjwvRk9OVD4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0ludGVyZmFjZXM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJDb25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0k+PC9BPgorPEJSPgorPEEgSFJFRj0iTW9kdWxlQ29uZmlnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+TW9kdWxlQ29uZmlnPC9JPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0NsYXNzZXM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJBY3Rpb25Db25maWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BY3Rpb25Db25maWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJBY3Rpb25NYXBwaW5nRmFjdG9yeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbk1hcHBpbmdGYWN0b3J5PC9BPgorPEJSPgorPEEgSFJFRj0iQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJBcHBsaWNhdGlvbkNvbmZpZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFwcGxpY2F0aW9uQ29uZmlnPC9BPgorPEJSPgorPEEgSFJFRj0iQ29uZmlnSGVscGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29uZmlnSGVscGVyPC9BPgorPEJSPgorPEEgSFJFRj0iQ29uZmlnUnVsZVNldC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbmZpZ1J1bGVTZXQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJDb250cm9sbGVyQ29uZmlnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29udHJvbGxlckNvbmZpZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkRhdGFTb3VyY2VDb25maWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EYXRhU291cmNlQ29uZmlnPC9BPgorPEJSPgorPEEgSFJFRj0iRXhjZXB0aW9uQ29uZmlnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RXhjZXB0aW9uQ29uZmlnPC9BPgorPEJSPgorPEEgSFJFRj0iRm9ybUJlYW5Db25maWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Gb3JtQmVhbkNvbmZpZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkZvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkZvcndhcmRDb25maWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Gb3J3YXJkQ29uZmlnPC9BPgorPEJSPgorPEEgSFJFRj0iTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJNb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TW9kdWxlQ29uZmlnRmFjdG9yeTwvQT4KKzxCUj4KKzxBIEhSRUY9IlBsdWdJbkNvbmZpZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlBsdWdJbkNvbmZpZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlBsdWdJblNldFByb3BlcnR5UnVsZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlBsdWdJblNldFByb3BlcnR5UnVsZTwvQT4KKzxCUj4KKzxBIEhSRUY9IlNldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJkYjZkMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKQEAgLTAsMCArMSwyNjggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnCis8L0gyPgorVGhlICJjb25maWciIHBhY2thZ2UgY29udGFpbnMgY29uZmlndXJhdGlvbiBvYmplY3RzIHRoYXQgY29ycmVzcG9uZCB0bworZWxlbWVudHMgdGhhdCBtYXkgYmUgc3BlY2lmaWVkIGluIHRoZSA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4KK21vZHVsZSBjb25maWd1cmF0aW9uIGZpbGUuCis8UD4KKzxCPlNlZTo8L0I+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8QSBIUkVGPSIjcGFja2FnZV9kZXNjcmlwdGlvbiI+PEI+RGVzY3JpcHRpb248L0I+PC9BPgorPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkludGVyZmFjZSBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj48ST5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0k+PC9BPjwvQj48L1REPgorPFREPk5PVEU6IFRISVMgQ0xBU1MgSVMgVU5ERVIgQUNUSVZFIERFVkVMT1BNRU5ULjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTW9kdWxlQ29uZmlnLmh0bWwiPjxJPk1vZHVsZUNvbmZpZzwvST48L0E+PC9CPjwvVEQ+Cis8VEQ+VGhlIGNvbGxlY3Rpb24gb2Ygc3RhdGljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gdGhhdCBkZXNjcmliZXMgYQorIFN0cnV0cy1iYXNlZCBtb2R1bGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+PC9CPjwvVEQ+Cis8VEQ+QSBKYXZhQmVhbiByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgYW4KKyA8Y29kZT4mbHQ7YWN0aW9uJmd0OzwvY29kZT4gZWxlbWVudCBmcm9tIGEgU3RydXRzCisgbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbk1hcHBpbmdGYWN0b3J5Lmh0bWwiPkFjdGlvbk1hcHBpbmdGYWN0b3J5PC9BPjwvQj48L1REPgorPFREPkFuIG9iamVjdCBjcmVhdGlvbiBmYWN0b3J5IHdoaWNoIGNyZWF0ZXMgYWN0aW9uIG1hcHBpbmcgaW5zdGFuY2VzLCB0YWtpbmcKKyBpbnRvIGFjY291bnQgdGhlIGRlZmF1bHQgY2xhc3MgbmFtZSwgd2hpY2ggbWF5IGhhdmUgYmVlbiBzcGVjaWZpZWQgb24gdGhlCisgcGFyZW50IGVsZW1lbnQgYW5kIHdoaWNoIGlzIG1hZGUgYXZhaWxhYmxlIHRocm91Z2ggdGhlIG9iamVjdCBvbiB0aGUgdG9wCisgb2YgdGhlIHN0YWNrLCB3aGljaCBtdXN0IGJlIGEKKyA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGUuaHRtbCI+QWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZTwvQT48L0I+PC9URD4KKzxURD5DbGFzcyB0aGF0IGNhbGxzIDxjb2RlPmFkZFByb3BlcnR5KCk8L2NvZGU+IGZvciB0aGUgdG9wIG9iamVjdAorIG9uIHRoZSBzdGFjaywgd2hpY2ggbXVzdCBiZSBhCisgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkRhdGFTb3VyY2VDb25maWc8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQXBwbGljYXRpb25Db25maWcuaHRtbCI+QXBwbGljYXRpb25Db25maWc8L0E+PC9CPjwvVEQ+Cis8VEQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNhZ2UgcmVwbGFjZWQgYnkgTW9kdWxlQ29uZmlnIEludGVyZmFjZS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJDb25maWdIZWxwZXIuaHRtbCI+Q29uZmlnSGVscGVyPC9BPjwvQj48L1REPgorPFREPk5PVEU6IFRISVMgQ0xBU1MgSVMgVU5ERVIgQUNUSVZFIERFVkVMT1BNRU5ULjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQ29uZmlnUnVsZVNldC5odG1sIj5Db25maWdSdWxlU2V0PC9BPjwvQj48L1REPgorPFREPlRoZSBzZXQgb2YgRGlnZXN0ZXIgcnVsZXMgcmVxdWlyZWQgdG8gcGFyc2UgYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUgKDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPikuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJDb250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+PC9CPjwvVEQ+Cis8VEQ+QSBKYXZhQmVhbiByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgYQorIDxjb2RlPiZsdDtjb250cm9sbGVyJmd0OzwvY29kZT4gZWxlbWVudCBpbiBhIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkRhdGFTb3VyY2VDb25maWcuaHRtbCI+RGF0YVNvdXJjZUNvbmZpZzwvQT48L0I+PC9URD4KKzxURD5BIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O2RhdGEtc291cmNlJmd0OzwvY29kZT4gZWxlbWVudCBmcm9tIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRXhjZXB0aW9uQ29uZmlnLmh0bWwiPkV4Y2VwdGlvbkNvbmZpZzwvQT48L0I+PC9URD4KKzxURD5BIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhbgorIDxjb2RlPiZsdDtleGNlcHRpb24mZ3Q7PC9jb2RlPiBlbGVtZW50IGZyb20gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJGb3JtQmVhbkNvbmZpZy5odG1sIj5Gb3JtQmVhbkNvbmZpZzwvQT48L0I+PC9URD4KKzxURD5BIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O2Zvcm0tYmVhbiZndDs8L2NvZGU+IGVsZW1lbnQgaW4gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJGb3JtUHJvcGVydHlDb25maWcuaHRtbCI+Rm9ybVByb3BlcnR5Q29uZmlnPC9BPjwvQj48L1REPgorPFREPkEgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7Zm9ybS1wcm9wZXJ0eSZndDs8L2NvZGU+IGVsZW1lbnQgaW4gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJGb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+PC9CPjwvVEQ+Cis8VEQ+QSBKYXZhQmVhbiByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgYQorIDxjb2RlPiZsdDtmb3J3YXJkJmd0OzwvY29kZT4gZWxlbWVudCBmcm9tIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzQ29uZmlnPC9BPjwvQj48L1REPgorPFREPkEgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7bWVzc2FnZS1yZXNvdXJjZXMmZ3Q7PC9jb2RlPiBlbGVtZW50IGluIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj5Nb2R1bGVDb25maWdGYWN0b3J5PC9BPjwvQj48L1REPgorPFREPkEgZmFjdG9yeSBpbnRlcmZhY2UgZm9yIGNyZWF0aW5nIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT5zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT48L0I+PC9URD4KKzxURD5BIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O3BsdWctaW4mZ3Q7PC9jb2RlPiBlbGVtZW50IGluIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUGx1Z0luU2V0UHJvcGVydHlSdWxlLmh0bWwiPlBsdWdJblNldFByb3BlcnR5UnVsZTwvQT48L0I+PC9URD4KKzxURD5DbGFzcyB0aGF0IHJlY29yZHMgdGhlIG5hbWUgYW5kIHZhbHVlIG9mIGEgY29uZmlndXJhdGlvbiBwcm9wZXJ0eSB0byBiZQorIHVzZWQgaW4gY29uZmlndXJpbmcgYSA8Y29kZT5QbHVnSW48L2NvZGU+IGluc3RhbmNlIHdoZW4gaW5zdGFudGlhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iU2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZS5odG1sIj5TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlPC9BPjwvQj48L1REPgorPFREPkNsYXNzIHRoYXQgc2V0cyB0aGUgbmFtZSBvZiB0aGUgY2xhc3MgdG8gdXNlIHdoZW4gY3JlYXRpbmcgYWN0aW9uIG1hcHBpbmcKKyBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEEgTkFNRT0icGFja2FnZV9kZXNjcmlwdGlvbiI+PCEtLSAtLT48L0E+PEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcgRGVzY3JpcHRpb24KKzwvSDI+CisKKzxQPgorPHA+VGhlICJjb25maWciIHBhY2thZ2UgY29udGFpbnMgY29uZmlndXJhdGlvbiBvYmplY3RzIHRoYXQgY29ycmVzcG9uZCB0bworZWxlbWVudHMgdGhhdCBtYXkgYmUgc3BlY2lmaWVkIGluIHRoZSA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4KK21vZHVsZSBjb25maWd1cmF0aW9uIGZpbGUuPC9wPgorPGltZyBzcmM9ImRvYy1maWxlcy9jb25maWdVTUwuZ2lmIiBhbHQ9IkNvbmZpZyBVTUwiPgorPGJyPgorPFA+CisKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS10cmVlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0MGI2MGYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTYwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjUzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcKKzwvSDI+Cis8L0NFTlRFUj4KKzxETD4KKzxEVD48Qj5QYWNrYWdlIEhpZXJhcmNoaWVzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctdHJlZS5odG1sIj5BbGwgUGFja2FnZXM8L0E+PC9ETD4KKzxIUj4KKzxIMj4KK0NsYXNzIEhpZXJhcmNoeQorPC9IMj4KKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEubGFuZy5PYmplY3Q8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuQWJzdHJhY3RPYmplY3RDcmVhdGlvbkZhY3RvcnkgKGltcGxlbWVudHMgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLk9iamVjdENyZWF0aW9uRmFjdG9yeSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uTWFwcGluZ0ZhY3RvcnkuaHRtbCI+PEI+QWN0aW9uTWFwcGluZ0ZhY3Rvcnk8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj48Qj5BY3Rpb25Db25maWc8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVyLmh0bWwiPjxCPkNvbmZpZ0hlbHBlcjwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwiPkNvbmZpZ0hlbHBlckludGVyZmFjZTwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+PEI+Q29udHJvbGxlckNvbmZpZzwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9EYXRhU291cmNlQ29uZmlnLmh0bWwiPjxCPkRhdGFTb3VyY2VDb25maWc8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRXhjZXB0aW9uQ29uZmlnLmh0bWwiPjxCPkV4Y2VwdGlvbkNvbmZpZzwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj48Qj5Gb3JtQmVhbkNvbmZpZzwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+PEI+Rm9ybVByb3BlcnR5Q29uZmlnPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+PEI+Rm9yd2FyZENvbmZpZzwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9NZXNzYWdlUmVzb3VyY2VzQ29uZmlnLmh0bWwiPjxCPk1lc3NhZ2VSZXNvdXJjZXNDb25maWc8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sIj48Qj5Nb2R1bGVDb25maWdGYWN0b3J5PC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9Nb2R1bGVDb25maWdJbXBsLmh0bWwiPjxCPk1vZHVsZUNvbmZpZ0ltcGw8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQXBwbGljYXRpb25Db25maWcuaHRtbCI+PEI+QXBwbGljYXRpb25Db25maWc8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj48Qj5QbHVnSW5Db25maWc8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BZGREYXRhU291cmNlUHJvcGVydHlSdWxlLmh0bWwiPjxCPkFkZERhdGFTb3VyY2VQcm9wZXJ0eVJ1bGU8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luU2V0UHJvcGVydHlSdWxlLmh0bWwiPjxCPlBsdWdJblNldFByb3BlcnR5UnVsZTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlLmh0bWwiPjxCPlNldEFjdGlvbk1hcHBpbmdDbGFzc1J1bGU8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZVNldEJhc2UgKGltcGxlbWVudHMgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLlJ1bGVTZXQpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ1J1bGVTZXQuaHRtbCI+PEI+Q29uZmlnUnVsZVNldDwvQj48L0E+PC9VTD4KKzwvVUw+Cis8L1VMPgorPEgyPgorSW50ZXJmYWNlIEhpZXJhcmNoeQorPC9IMj4KKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj48Qj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Qj5Nb2R1bGVDb25maWc8L0I+PC9BPjwvVUw+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXVzZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXVzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0YWYyYjYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2UtdXNlLmh0bWwKQEAgLTAsMCArMSw1NDYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBQYWNrYWdlPGJyPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQj48L0E+PC9URD4KKzxURD4gVGhlIGFjdGlvbiBwYWNrYWdlIGlzIHRoZSBjb3JlIG9mIHRoZSBzdHJ1dHMgZnJhbWV3b3JrLAorICAgIHByb3ZpZGluZyB0aGUgIkNvbnRyb2xsZXIiIGFzcGVjdCBvZiBhIE1WQyBtb2RlbC4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQj48L0E+PC9URD4KKzxURD5UaGUgImNvbmZpZyIgcGFja2FnZSBjb250YWlucyBjb25maWd1cmF0aW9uIG9iamVjdHMgdGhhdCBjb3JyZXNwb25kIHRvCitlbGVtZW50cyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPgorbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2luczwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+PGEgbmFtZT0iZG9jLkRlc2NyaXB0aW9uIj5UaGUgInN0cnV0cy1odG1sIiB0YWcgbGlicmFyeTwvYT4KKyAgY29udGFpbnMgSlNQIGN1c3RvbSB0YWdzIHVzZWZ1bCBpbiBjcmVhdGluZyBkeW5hbWljIEhUTUwgdXNlciBpbnRlcmZhY2VzLAoraW5jbHVkaW5nIGlucHV0IGZvcm1zLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQj48L0E+PC9URD4KKzxURD48ZGl2IGNsYXNzPSJtYWluQ29udGVudCI+CisgICAgVGhlIFRpbGVzIHRhZ2xpYiBhbmQgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyB3ZWIgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSAKKyAgICBwaWVjZXMgb2YgcGFnZXMsIGNhbGxlZCBUaWxlcy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQj48L0E+PC9URD4KKzxURD4gVGhlIHVwbG9hZCBwYWNrYWdlIGZhY2lsaXRpZXMgdG8gdXBsb2FkIGZpbGVzIHVzaW5nCisgbXVsdGktcGFydCByZXF1ZXN0cy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy51dGlsIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9CPjwvQT48L1REPgorPFREPlRoZSBVdGlsaXRpZXMgcGFja2FnZSBwcm92aWRlcyBhIHZhcmlldHkgb2YgZmFtaWxpZXMgb2YgY2xhc3NlcywKK3RvIHNvbHZlIHByb2JsZW1zIHRoYXQgYXJlIGNvbW1vbmx5IGVuY291bnRlcmVkIGluIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSB2YWxpZGF0b3IgcGFja2FnZSBwcm92aWRlcyBhIHNlcmllcyBvZiBjbGFzc2VzIHRvIHZhbGlkYXRlIAorICAgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gdHlwZSBvZiBpbnB1dC4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9BY3Rpb25Db25maWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPkFjdGlvbkNvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhbgorIDxjb2RlPiZsdDthY3Rpb24mZ3Q7PC9jb2RlPiBlbGVtZW50IGZyb20gYSBTdHJ1dHMKKyBtb2R1bGUgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9BcHBsaWNhdGlvbkNvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+QXBwbGljYXRpb25Db25maWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNhZ2UgcmVwbGFjZWQgYnkgTW9kdWxlQ29uZmlnIEludGVyZmFjZS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0V4Y2VwdGlvbkNvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+RXhjZXB0aW9uQ29uZmlnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGFuCisgPGNvZGU+Jmx0O2V4Y2VwdGlvbiZndDs8L2NvZGU+IGVsZW1lbnQgZnJvbSBhIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvRm9ybUJlYW5Db25maWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPkZvcm1CZWFuQ29uZmlnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7Zm9ybS1iZWFuJmd0OzwvY29kZT4gZWxlbWVudCBpbiBhIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvRm9yd2FyZENvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+Rm9yd2FyZENvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O2ZvcndhcmQmZ3Q7PC9jb2RlPiBlbGVtZW50IGZyb20gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL01vZHVsZUNvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+TW9kdWxlQ29uZmlnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb2xsZWN0aW9uIG9mIHN0YXRpYyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIGEKKyBTdHJ1dHMtYmFzZWQgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0FjdGlvbkNvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+QWN0aW9uQ29uZmlnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGFuCisgPGNvZGU+Jmx0O2FjdGlvbiZndDs8L2NvZGU+IGVsZW1lbnQgZnJvbSBhIFN0cnV0cworIG1vZHVsZSBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05PVEU6IFRISVMgQ0xBU1MgSVMgVU5ERVIgQUNUSVZFIERFVkVMT1BNRU5ULjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Db250cm9sbGVyQ29uZmlnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5Db250cm9sbGVyQ29uZmlnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7Y29udHJvbGxlciZndDs8L2NvZGU+IGVsZW1lbnQgaW4gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0RhdGFTb3VyY2VDb25maWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPkRhdGFTb3VyY2VDb25maWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBKYXZhQmVhbiByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgYQorIDxjb2RlPiZsdDtkYXRhLXNvdXJjZSZndDs8L2NvZGU+IGVsZW1lbnQgZnJvbSBhIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvRXhjZXB0aW9uQ29uZmlnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5FeGNlcHRpb25Db25maWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBKYXZhQmVhbiByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgYW4KKyA8Y29kZT4mbHQ7ZXhjZXB0aW9uJmd0OzwvY29kZT4gZWxlbWVudCBmcm9tIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Gb3JtQmVhbkNvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+Rm9ybUJlYW5Db25maWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBKYXZhQmVhbiByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgYQorIDxjb2RlPiZsdDtmb3JtLWJlYW4mZ3Q7PC9jb2RlPiBlbGVtZW50IGluIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPkZvcm1Qcm9wZXJ0eUNvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O2Zvcm0tcHJvcGVydHkmZ3Q7PC9jb2RlPiBlbGVtZW50IGluIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Gb3J3YXJkQ29uZmlnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5Gb3J3YXJkQ29uZmlnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7Zm9yd2FyZCZndDs8L2NvZGU+IGVsZW1lbnQgZnJvbSBhIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O21lc3NhZ2UtcmVzb3VyY2VzJmd0OzwvY29kZT4gZWxlbWVudCBpbiBhIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvTW9kdWxlQ29uZmlnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5Nb2R1bGVDb25maWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbGxlY3Rpb24gb2Ygc3RhdGljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gdGhhdCBkZXNjcmliZXMgYQorIFN0cnV0cy1iYXNlZCBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL01vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBmYWN0b3J5IGludGVyZmFjZSBmb3IgY3JlYXRpbmcgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL1BsdWdJbkNvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZyI+PEI+UGx1Z0luQ29uZmlnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7cGx1Zy1pbiZndDs8L2NvZGU+IGVsZW1lbnQgaW4gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvQWN0aW9uQ29uZmlnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwiPjxCPkFjdGlvbkNvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhbgorIDxjb2RlPiZsdDthY3Rpb24mZ3Q7PC9jb2RlPiBlbGVtZW50IGZyb20gYSBTdHJ1dHMKKyBtb2R1bGUgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Db250cm9sbGVyQ29uZmlnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwiPjxCPkNvbnRyb2xsZXJDb25maWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBKYXZhQmVhbiByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgYQorIDxjb2RlPiZsdDtjb250cm9sbGVyJmd0OzwvY29kZT4gZWxlbWVudCBpbiBhIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvRGF0YVNvdXJjZUNvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIj48Qj5EYXRhU291cmNlQ29uZmlnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7ZGF0YS1zb3VyY2UmZ3Q7PC9jb2RlPiBlbGVtZW50IGZyb20gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0V4Y2VwdGlvbkNvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIj48Qj5FeGNlcHRpb25Db25maWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBKYXZhQmVhbiByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gb2YgYW4KKyA8Y29kZT4mbHQ7ZXhjZXB0aW9uJmd0OzwvY29kZT4gZWxlbWVudCBmcm9tIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Gb3JtQmVhbkNvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIj48Qj5Gb3JtQmVhbkNvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O2Zvcm0tYmVhbiZndDs8L2NvZGU+IGVsZW1lbnQgaW4gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0ZvcndhcmRDb25maWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCI+PEI+Rm9yd2FyZENvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O2ZvcndhcmQmZ3Q7PC9jb2RlPiBlbGVtZW50IGZyb20gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCI+PEI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O21lc3NhZ2UtcmVzb3VyY2VzJmd0OzwvY29kZT4gZWxlbWVudCBpbiBhIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvTW9kdWxlQ29uZmlnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwiPjxCPk1vZHVsZUNvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29sbGVjdGlvbiBvZiBzdGF0aWMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiB0aGF0IGRlc2NyaWJlcyBhCisgU3RydXRzLWJhc2VkIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvTW9kdWxlQ29uZmlnRmFjdG9yeS5odG1sI29yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsIj48Qj5Nb2R1bGVDb25maWdGYWN0b3J5PC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgZmFjdG9yeSBpbnRlcmZhY2UgZm9yIGNyZWF0aW5nIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT5zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9QbHVnSW5Db25maWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbCI+PEI+UGx1Z0luQ29uZmlnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7cGx1Zy1pbiZndDs8L2NvZGU+IGVsZW1lbnQgaW4gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvTW9kdWxlQ29uZmlnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucyI+PEI+TW9kdWxlQ29uZmlnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb2xsZWN0aW9uIG9mIHN0YXRpYyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIGEKKyBTdHJ1dHMtYmFzZWQgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL01vZHVsZUNvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sIj48Qj5Nb2R1bGVDb25maWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbGxlY3Rpb24gb2Ygc3RhdGljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gdGhhdCBkZXNjcmliZXMgYQorIFN0cnV0cy1iYXNlZCBtb2R1bGUuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvRm9yd2FyZENvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5Gb3J3YXJkQ29uZmlnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgSmF2YUJlYW4gcmVwcmVzZW50aW5nIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIG9mIGEKKyA8Y29kZT4mbHQ7Zm9yd2FyZCZndDs8L2NvZGU+IGVsZW1lbnQgZnJvbSBhIFN0cnV0cworIGNvbmZpZ3VyYXRpb24gZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvTW9kdWxlQ29uZmlnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPk1vZHVsZUNvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29sbGVjdGlvbiBvZiBzdGF0aWMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiB0aGF0IGRlc2NyaWJlcyBhCisgU3RydXRzLWJhc2VkIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9jbGFzcy11c2UvUGx1Z0luQ29uZmlnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPlBsdWdJbkNvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O3BsdWctaW4mZ3Q7PC9jb2RlPiBlbGVtZW50IGluIGEgU3RydXRzCisgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL01vZHVsZUNvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZCI+PEI+TW9kdWxlQ29uZmlnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb2xsZWN0aW9uIG9mIHN0YXRpYyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIGEKKyBTdHJ1dHMtYmFzZWQgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL0FjdGlvbkNvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjxCPkFjdGlvbkNvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhbgorIDxjb2RlPiZsdDthY3Rpb24mZ3Q7PC9jb2RlPiBlbGVtZW50IGZyb20gYSBTdHJ1dHMKKyBtb2R1bGUgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Gb3J3YXJkQ29uZmlnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXRpbCI+PEI+Rm9yd2FyZENvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIEphdmFCZWFuIHJlcHJlc2VudGluZyB0aGUgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBvZiBhCisgPGNvZGU+Jmx0O2ZvcndhcmQmZ3Q7PC9jb2RlPiBlbGVtZW50IGZyb20gYSBTdHJ1dHMKKyBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvY2xhc3MtdXNlL01vZHVsZUNvbmZpZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjxCPk1vZHVsZUNvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29sbGVjdGlvbiBvZiBzdGF0aWMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiB0aGF0IGRlc2NyaWJlcyBhCisgU3RydXRzLWJhc2VkIG1vZHVsZS48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2NsYXNzLXVzZS9Nb2R1bGVDb25maWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IiPjxCPk1vZHVsZUNvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29sbGVjdGlvbiBvZiBzdGF0aWMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiB0aGF0IGRlc2NyaWJlcyBhCisgU3RydXRzLWJhc2VkIG1vZHVsZS48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kb2MtZmlsZXMvU3RhbXAuZ2lmIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2RvYy1maWxlcy9TdGFtcC5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzIwZTI4NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kb2MtZmlsZXMvU3RhbXAuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kb2MtZmlsZXMvamFrYXJ0YS1mZWF0aGVyLXNtYWxsLmdpZiBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9kb2MtZmlsZXMvamFrYXJ0YS1mZWF0aGVyLXNtYWxsLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDc5YmRiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL2RvYy1maWxlcy9qYWthcnRhLWZlYXRoZXItc21hbGwuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9wYWNrYWdlLWZyYW1lLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvcGFja2FnZS1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNmIzY2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvcGFja2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHM8L0E+PC9GT05UPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorQ2xhc3NlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9Ikdsb2JhbHMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5HbG9iYWxzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3BhY2thZ2Utc3VtbWFyeS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3BhY2thZ2Utc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMDg0MTUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKQEAgLTAsMCArMSwxMzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIFBBQ0tBR0UmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cworPC9IMj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJHbG9iYWxzLmh0bWwiPkdsb2JhbHM8L0E+PC9CPjwvVEQ+Cis8VEQ+R2xvYmFsIG1hbmlmZXN0IGNvbnN0YW50cyBmb3IgdGhlIGVudGlyZSBTdHJ1dHMgRnJhbWV3b3JrLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIFBBQ0tBR0UmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9wYWNrYWdlLXRyZWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9wYWNrYWdlLXRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmI2Y2RmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTM1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjUyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cyBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cworPC9IMj4KKzwvQ0VOVEVSPgorPERMPgorPERUPjxCPlBhY2thZ2UgSGllcmFyY2hpZXM6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi9vdmVydmlldy10cmVlLmh0bWwiPkFsbCBQYWNrYWdlczwvQT48L0RMPgorPEhSPgorPEgyPgorQ2xhc3MgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLk9iamVjdDxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLjxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCI+PEI+R2xvYmFsczwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPC9VTD4KKzwvVUw+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvcGFja2FnZS11c2UuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9wYWNrYWdlLXVzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkZTdmZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvcGFja2FnZS11c2UuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBQYWNrYWdlPGJyPm9yZy5hcGFjaGUuc3RydXRzPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvTW9kdWxlQ29uZmlnVmVyaWZpZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTI3OGI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvTW9kdWxlQ29uZmlnVmVyaWZpZXIuaHRtbApAQCAtMCwwICsxLDU2NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK01vZHVsZUNvbmZpZ1ZlcmlmaWVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zLk1vZHVsZUNvbmZpZ1ZlcmlmaWVyLE1vZHVsZUNvbmZpZ1ZlcmlmaWVyIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJNb2R1bGVDb25maWdWZXJpZmllciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zPC9GT05UPgorPEJSPgorQ2xhc3MgTW9kdWxlQ29uZmlnVmVyaWZpZXI8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zLk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj5QbHVnSW48L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUGx1Z0luLmh0bWwiPlBsdWdJbjwvQT48L0RMPgorCis8UD4KKzxwPkNvbnZlbmllbnQgaW1wbGVtZW50YXRpb24gb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj48Q09ERT5QbHVnSW48L0NPREU+PC9BPiB0aGF0IHBlcmZvcm1zIGFzIG1hbnkKKyB2ZXJpZmljYXRpb24gdGVzdHMgb24gdGhlIGluZm9ybWF0aW9uIHN0b3JlZCBpbiB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Q09ERT5Nb2R1bGVDb25maWc8L0NPREU+PC9BPgorIGZvciB0aGlzIGFwcGxpY2F0aW9uIG1vZHVsZSBhcyBpcyBwcmFjdGljYWwuICBCYXNlZCBvbiB0aGUgc2V0dGluZyBvZiB0aGUKKyA8Y29kZT5mYXRhbDwvY29kZT4gcHJvcGVydHkgKHdoaWNoIGRlZmF1bHRzIHRvIDxjb2RlPnRydWU8L2NvZGU+KSwgdGhlCisgZGV0ZWN0aW9uIG9mIGFueSBzdWNoIGVycm9ycyB3aWxsIGNhdXNlIGEgPGNvZGU+U2VydmxldEV4Y2VwdGlvbjwvY29kZT4KKyB0byBiZSB0aHJvd24gZnJvbSB0aGUgPGNvZGU+aW5pdCgpPC9jb2RlPiBtZXRob2QsIHdoaWNoIHdpbGwgdWx0aW1hdGVseQorIGNhdXNlIHRoZSBpbml0aWFsaXphdGlvbiBvZiB5b3VyIFN0cnV0cyBjb250cm9sbGVyIHNlcnZsZXQgdG8gZmFpbC48L3A+CisKKyA8cD5VbmRlciBhbGwgY2lyY3Vtc3RhbmNlcywgZXJyb3JzIHRoYXQgYXJlIGRldGVjdGVkIHdpbGwgYmUgbG9nZ2VkIHZpYQorIGNhbGxzIHRvIDxjb2RlPlNlcnZsZXRDb250ZXh0LmxvZygpPC9jb2RlPi48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjY29uZmlnIj5jb25maWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4gaW5zdGFuY2UgZm9yIG91ciBhcHBsaWNhdGlvbiBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjZmF0YWwiPmZhdGFsPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Nob3VsZCB0aGUgZXhpc3RlbmNlIG9mIGNvbmZpZ3VyYXRpb24gZXJyb3JzIGJlIGZhdGFsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPjxDT0RFPkFjdGlvblNlcnZsZXQ8L0NPREU+PC9BPiBpbnN0YW5jZSB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sI01vZHVsZUNvbmZpZ1ZlcmlmaWVyKCkiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjZGVzdHJveSgpIj5kZXN0cm95PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCBvdXIgb3duaW5nIG1vZHVsZSBpcyBiZWluZworIHNodXQgZG93bi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQsCisgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlY2VpdmUgbm90aWZpY2F0aW9uIHRoYXQgdGhlIHNwZWNpZmllZCBtb2R1bGUgaXMgYmVpbmcKKyBzdGFydGVkIHVwLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvTW9kdWxlQ29uZmlnVmVyaWZpZXIuaHRtbCNpc0ZhdGFsKCkiPmlzRmF0YWw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlICJjb25maWd1YXRpb24gZXJyb3JzIGFyZSBmYXRhbCIgZmxhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nKSI+bG9nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb2cgdGhlIHNwZWNpZmllZCBtZXNzYWdlIHRvIG91ciBzZXJ2bGV0IGNvbnRleHQgbG9nLCBhZnRlciBhCisgaGVhZGVyIGluY2x1ZGluZyB0aGUgbW9kdWxlIHByZWZpeC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjc2V0RmF0YWwoYm9vbGVhbikiPnNldEZhdGFsPC9BPjwvQj4oYm9vbGVhbiZuYnNwO2ZhdGFsKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSAiY29uZmlndXJhdGlvbiBlcnJvcnMgYXJlIGZhdGFsIiBmbGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjdmVyaWZ5QWN0aW9uTWFwcGluZ0NsYXNzKCkiPnZlcmlmeUFjdGlvbk1hcHBpbmdDbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiBpbmZvcm1hdGlvbiByZXR1cm5lZCBieQorIDxjb2RlPmNvbmZpZy5nZXRBY3Rpb25NYXBwaW5nQ2xhc3MoKTwvY29kZT4gaXMgYWxsIHZhbGlkOworIG90aGVyd2lzZSwgbG9nIGVycm9yIG1lc3NhZ2VzIGFuZCByZXR1cm4gPGNvZGU+ZmFsc2U8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjdmVyaWZ5Rm9yd2FyZENvbmZpZ3MoKSI+dmVyaWZ5Rm9yd2FyZENvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgaW5mb3JtYXRpb24gcmV0dXJuZWQgYnkKKyA8Y29kZT5jb25maWcuZmluZEZvcndhcmRDb25maWdzKCkgaXMgYWxsIHZhbGlkOworIG90aGVyd2lzZSwgbG9nIGVycm9yIG1lc3NhZ2VzIGFuZCByZXR1cm4gPGNvZGU+ZmFsc2U8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjdmVyaWZ5TWVzc2FnZVJlc291cmNlc0NvbmZpZ3MoKSI+dmVyaWZ5TWVzc2FnZVJlc291cmNlc0NvbmZpZ3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgaW5mb3JtYXRpb24gcmV0dXJuZWQgYnkKKyA8Y29kZT5jb25maWcuZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWdzKCkgaXMgYWxsIHZhbGlkOworIG90aGVyd2lzZSwgbG9nIGVycm9yIG1lc3NhZ2VzIGFuZCByZXR1cm4gPGNvZGU+ZmFsc2U8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwjdmVyaWZ5UGx1Z0luQ29uZmlncygpIj52ZXJpZnlQbHVnSW5Db25maWdzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIGluZm9ybWF0aW9uIHJldHVybmVkIGJ5CisgPGNvZGU+Y29uZmlnLmZpbmRQbHVnaW5Db25maWdzKCkgaXMgYWxsIHZhbGlkOworIG90aGVyd2lzZSwgbG9nIGVycm9yIG1lc3NhZ2VzIGFuZCByZXR1cm4gPGNvZGU+ZmFsc2U8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY29uZmlnIj48IS0tIC0tPjwvQT48SDM+Citjb25maWc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4gPEI+Y29uZmlnPC9CPjwvUFJFPgorPERMPgorPEREPjxwPlRoZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+IGluc3RhbmNlIGZvciBvdXIgYXBwbGljYXRpb24gbW9kdWxlLjwvcD4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNlcnZsZXQiPjwhLS0gLS0+PC9BPjxIMz4KK3NlcnZsZXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiA8Qj5zZXJ2bGV0PC9CPjwvUFJFPgorPERMPgorPEREPjxwPlRoZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Q09ERT5BY3Rpb25TZXJ2bGV0PC9DT0RFPjwvQT4gaW5zdGFuY2Ugd2UgYXJlIGFzc29jaWF0ZWQgd2l0aC48L3A+Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmYXRhbCI+PCEtLSAtLT48L0E+PEgzPgorZmF0YWw8L0gzPgorPFBSRT4KK3ByaXZhdGUgYm9vbGVhbiA8Qj5mYXRhbDwvQj48L1BSRT4KKzxETD4KKzxERD48cD5TaG91bGQgdGhlIGV4aXN0ZW5jZSBvZiBjb25maWd1cmF0aW9uIGVycm9ycyBiZSBmYXRhbC48L3A+Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTW9kdWxlQ29uZmlnVmVyaWZpZXIoKSI+PCEtLSAtLT48L0E+PEgzPgorTW9kdWxlQ29uZmlnVmVyaWZpZXI8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Nb2R1bGVDb25maWdWZXJpZmllcjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iaXNGYXRhbCgpIj48IS0tIC0tPjwvQT48SDM+Citpc0ZhdGFsPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc0ZhdGFsPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PHA+UmV0dXJuIHRoZSAiY29uZmlndWF0aW9uIGVycm9ycyBhcmUgZmF0YWwiIGZsYWcuPC9wPgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGYXRhbChib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RmF0YWw8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZhdGFsPC9CPihib29sZWFuJm5ic3A7ZmF0YWwpPC9QUkU+Cis8REw+Cis8REQ+PHA+U2V0IHRoZSAiY29uZmlndXJhdGlvbiBlcnJvcnMgYXJlIGZhdGFsIiBmbGFnLjwvcD4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmF0YWw8L0NPREU+IC0gVGhlIG5ldyBmbGFnIHZhbHVlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZXN0cm95KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2Rlc3Ryb3k8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmRlc3Ryb3k8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48cD5SZWNlaXZlIG5vdGlmaWNhdGlvbiB0aGF0IG91ciBvd25pbmcgbW9kdWxlIGlzIGJlaW5nCisgc2h1dCBkb3duLjwvcD4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUGx1Z0luLmh0bWwjZGVzdHJveSgpIj5kZXN0cm95PC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCI+UGx1Z0luPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48IS0tIC0tPjwvQT48SDM+Citpbml0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5pbml0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQsCisgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZykKKyAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PHA+UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCB0aGUgc3BlY2lmaWVkIG1vZHVsZSBpcyBiZWluZworIHN0YXJ0ZWQgdXAuPC9wPgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUGx1Z0luLmh0bWwiPlBsdWdJbjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0PC9DT0RFPiAtIEFjdGlvblNlcnZsZXQgdGhhdCBpcyBtYW5hZ2luZyBhbGwgdGhlCisgIG1vZHVsZXMgaW4gdGhpcyB3ZWIgYXBwbGljYXRpb248REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIE1vZHVsZUNvbmZpZyBmb3IgdGhlIG1vZHVsZSB3aXRoIHdoaWNoCisgIHRoaXMgcGx1Zy1pbiBpcyBhc3NvY2lhdGVkCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyA8Y29kZT5QbHVnSW48L2NvZGU+IGNhbm5vdAorICBiZSBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvZyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorbG9nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5sb2c8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXNzYWdlKTwvUFJFPgorPERMPgorPEREPjxwPkxvZyB0aGUgc3BlY2lmaWVkIG1lc3NhZ2UgdG8gb3VyIHNlcnZsZXQgY29udGV4dCBsb2csIGFmdGVyIGEKKyBoZWFkZXIgaW5jbHVkaW5nIHRoZSBtb2R1bGUgcHJlZml4LjwvcD4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWVzc2FnZTwvQ09ERT4gLSBUaGUgbWVzc2FnZSB0byBiZSBsb2dnZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZlcmlmeUFjdGlvbk1hcHBpbmdDbGFzcygpIj48IS0tIC0tPjwvQT48SDM+Cit2ZXJpZnlBY3Rpb25NYXBwaW5nQ2xhc3M8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnZlcmlmeUFjdGlvbk1hcHBpbmdDbGFzczwvQj4oKTwvUFJFPgorPERMPgorPEREPjxwPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiBpbmZvcm1hdGlvbiByZXR1cm5lZCBieQorIDxjb2RlPmNvbmZpZy5nZXRBY3Rpb25NYXBwaW5nQ2xhc3MoKTwvY29kZT4gaXMgYWxsIHZhbGlkOworIG90aGVyd2lzZSwgbG9nIGVycm9yIG1lc3NhZ2VzIGFuZCByZXR1cm4gPGNvZGU+ZmFsc2U8L2NvZGU+LjwvcD4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmVyaWZ5Rm9yd2FyZENvbmZpZ3MoKSI+PCEtLSAtLT48L0E+PEgzPgordmVyaWZ5Rm9yd2FyZENvbmZpZ3M8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnZlcmlmeUZvcndhcmRDb25maWdzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PHA+UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIGluZm9ybWF0aW9uIHJldHVybmVkIGJ5CisgPGNvZGU+Y29uZmlnLmZpbmRGb3J3YXJkQ29uZmlncygpIGlzIGFsbCB2YWxpZDsKKyBvdGhlcndpc2UsIGxvZyBlcnJvciBtZXNzYWdlcyBhbmQgcmV0dXJuIDxjb2RlPmZhbHNlPC9jb2RlPi48L3A+Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZlcmlmeU1lc3NhZ2VSZXNvdXJjZXNDb25maWdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZlcmlmeU1lc3NhZ2VSZXNvdXJjZXNDb25maWdzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj52ZXJpZnlNZXNzYWdlUmVzb3VyY2VzQ29uZmlnczwvQj4oKTwvUFJFPgorPERMPgorPEREPjxwPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiBpbmZvcm1hdGlvbiByZXR1cm5lZCBieQorIDxjb2RlPmNvbmZpZy5maW5kTWVzc2FnZVJlc291cmNlc0NvbmZpZ3MoKSBpcyBhbGwgdmFsaWQ7Cisgb3RoZXJ3aXNlLCBsb2cgZXJyb3IgbWVzc2FnZXMgYW5kIHJldHVybiA8Y29kZT5mYWxzZTwvY29kZT4uPC9wPgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2ZXJpZnlQbHVnSW5Db25maWdzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZlcmlmeVBsdWdJbkNvbmZpZ3M8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnZlcmlmeVBsdWdJbkNvbmZpZ3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48cD5SZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgaW5mb3JtYXRpb24gcmV0dXJuZWQgYnkKKyA8Y29kZT5jb25maWcuZmluZFBsdWdpbkNvbmZpZ3MoKSBpcyBhbGwgdmFsaWQ7Cisgb3RoZXJ3aXNlLCBsb2cgZXJyb3IgbWVzc2FnZXMgYW5kIHJldHVybiA8Y29kZT5mYWxzZTwvY29kZT4uPC9wPgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvY2xhc3MtdXNlL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9jbGFzcy11c2UvTW9kdWxlQ29uZmlnVmVyaWZpZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzBiNGE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvY2xhc3MtdXNlL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMuTW9kdWxlQ29uZmlnVmVyaWZpZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy5Nb2R1bGVDb25maWdWZXJpZmllciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9Nb2R1bGVDb25maWdWZXJpZmllci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNb2R1bGVDb25maWdWZXJpZmllci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMuTW9kdWxlQ29uZmlnVmVyaWZpZXI8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy5Nb2R1bGVDb25maWdWZXJpZmllcgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3BhY2thZ2UtZnJhbWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3BhY2thZ2UtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWU0MzY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcGFja2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zPC9BPjwvRk9OVD4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0NsYXNzZXM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJNb2R1bGVDb25maWdWZXJpZmllci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9wYWNrYWdlLXN1bW1hcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTQ0ZjdmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKQEAgLTAsMCArMSwxMzkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMKKzwvSDI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTW9kdWxlQ29uZmlnVmVyaWZpZXIuaHRtbCI+TW9kdWxlQ29uZmlnVmVyaWZpZXI8L0E+PC9CPjwvVEQ+Cis8VEQ+Q29udmVuaWVudCBpbXBsZW1lbnRhdGlvbiBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUGx1Z0luLmh0bWwiPjxDT0RFPlBsdWdJbjwvQ09ERT48L0E+IHRoYXQgcGVyZm9ybXMgYXMgbWFueQorIHZlcmlmaWNhdGlvbiB0ZXN0cyBvbiB0aGUgaW5mb3JtYXRpb24gc3RvcmVkIGluIHRoZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+CisgZm9yIHRoaXMgYXBwbGljYXRpb24gbW9kdWxlIGFzIGlzIHByYWN0aWNhbC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3BhY2thZ2UtdHJlZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcGFja2FnZS10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzJjMmYwOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTM1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucyBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXRyZWUuaHRtbCI+QWxsIFBhY2thZ2VzPC9BPjwvREw+Cis8SFI+Cis8SDI+CitDbGFzcyBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuT2JqZWN0PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPjxCPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCI+UGx1Z0luPC9BPikKKzwvVUw+Cis8L1VMPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+UFJFVjwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9wYWNrYWdlLXVzZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcGFja2FnZS11c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjk3MjdkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcGFja2FnZS11c2UuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgUGFja2FnZTxicj5vcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDU3Y2M3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sCkBAIC0wLDAgKzEsNTkwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQ29va2llVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5Db29raWVUYWcsQ29va2llVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJDb29raWVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQ29va2llVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29va2llVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzIENvb2tpZVRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uQ29va2llVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+Q29va2llVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitEZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIHZhbHVlKHMpIG9mIHRoZSBzcGVjaWZpZWQKKyBjb29raWUgcmVjZWl2ZWQgd2l0aCB0aGlzIHJlcXVlc3QuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkNvb2tpZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI2lkIj5pZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI211bHRpcGxlIj5tdWx0aXBsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYW4gYXJyYXkgb2YgQ29va2llcyBpZiA8Y29kZT5tdWx0aXBsZTwvY29kZT4gaXMgbm9uLW51bGwuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGNvb2tpZSB3aG9zZSB2YWx1ZSBpcyB0byBiZSBleHBvc2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIG5vIGNvb2tpZSBvZiB0aGUgc3BlY2lmaWVkIG5hbWUgaXMgZm91bmQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI0Nvb2tpZVRhZygpIj5Db29raWVUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjZ2V0SWQoKSI+Z2V0SWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNnZXRNdWx0aXBsZSgpIj5nZXRNdWx0aXBsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNzZXRNdWx0aXBsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TXVsdGlwbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bXVsdGlwbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvRW5kVGFnLCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iaWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtdWx0aXBsZSI+PCEtLSAtLT48L0E+PEgzPgorbXVsdGlwbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm11bHRpcGxlPC9CPjwvUFJFPgorPERMPgorPEREPlJldHVybiBhbiBhcnJheSBvZiBDb29raWVzIGlmIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcyBub24tbnVsbC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGNvb2tpZSB3aG9zZSB2YWx1ZSBpcyB0byBiZSBleHBvc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCB2YWx1ZSB0byByZXR1cm4gaWYgbm8gY29va2llIG9mIHRoZSBzcGVjaWZpZWQgbmFtZSBpcyBmb3VuZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJDb29raWVUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorQ29va2llVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Q29va2llVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRJZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRJZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lkKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5zZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNdWx0aXBsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNdWx0aXBsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TXVsdGlwbGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE11bHRpcGxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNdWx0aXBsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TXVsdGlwbGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttdWx0aXBsZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VmFsdWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VmFsdWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQ29va2llVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29va2llVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5ZGM0MGMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGVpLmh0bWwKQEAgLTAsMCArMSwyODUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitDb29raWVUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkNvb2tpZVRlaSxDb29raWVUZWkgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkNvb2tpZVRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db29raWVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb29raWVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgQ29va2llVGVpPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbworICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkNvb2tpZVRlaTwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Db29raWVUZWk8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvREw+CisKKzxQPgorSW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPmNvb2tpZTwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGVpLmh0bWwjQ29va2llVGVpKCkiPkNvb2tpZVRlaTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5WYXJpYWJsZUluZm9bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUZWkuaHRtbCNnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj5nZXRWYXJpYWJsZUluZm88L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSZuYnNwO2RhdGEpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRUYWdJbmZvLCBpc1ZhbGlkLCBzZXRUYWdJbmZvPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkNvb2tpZVRlaSgpIj48IS0tIC0tPjwvQT48SDM+CitDb29raWVUZWk8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Db29raWVUZWk8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhcmlhYmxlSW5mbzwvSDM+Cis8UFJFPgorcHVibGljIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5WYXJpYWJsZUluZm9bXSA8Qj5nZXRWYXJpYWJsZUluZm88L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXRWYXJpYWJsZUluZm88L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db29raWVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb29raWVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDlkYmYwNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbApAQCAtMCwwICsxLDg4MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0RlZmluZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uRGVmaW5lVGFnLERlZmluZVRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRGVmaW5lVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0RlZmluZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUZWkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0ZPTlQ+Cis8QlI+CitDbGFzcyBEZWZpbmVUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkRlZmluZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUYWcuaHRtbCI+TmVzdGVkRGVmaW5lVGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5EZWZpbmVUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9ETD4KKworPFA+CitEZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIHZhbHVlKHMpIG9mIHRoZSBzcGVjaWZpZWQKKyBiZWFuIHByb3BlcnR5LgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5EZWZpbmVUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNib2R5Ij5ib2R5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2lkIj5pZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGJlYW4gb3duaW5nIHRoZSBwcm9wZXJ0eSB0byBiZSBleHBvc2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIHJldHJpZXZlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2NvcGUiPnNjb3BlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgc3BlY2lmaWVkIGJlYW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3RvU2NvcGUiPnRvU2NvcGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0aGUgbmV3bHkgZGVmaW5lZCBiZWFuIHdpbGwgYmUgY3JlYXRkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCN0eXBlIj50eXBlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSB2YWx1ZSB0byBiZSBleHBvc2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIChTdHJpbmcpIHZhbHVlIHRvIHdoaWNoIHRoZSBkZWZpbmVkIGJlYW4gd2lsbCBiZSBzZXQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjRGVmaW5lVGFnKCkiPkRlZmluZVRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NhdmUgdGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KSwgb3IgdGhyb3cgYSBKc3BFeGNlcHRpb24KKyBpZiB0aGUgdmFsdWUgd2FzIGFscmVhZHkgZGVmaW5lZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDaGVjayBpZiB3ZSBuZWVkIHRvIGV2YWx1YXRlIHRoZSBib2R5IG9mIHRoZSB0YWc8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNnZXRJZCgpIj5nZXRJZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNnZXRUb1Njb3BlKCkiPmdldFRvU2NvcGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNnZXRUeXBlKCkiPmdldFR5cGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPnNldElkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2V0VG9TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VG9TY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0b1Njb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VHlwZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYm9keSI+PCEtLSAtLT48L0E+PEgzPgorYm9keTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Ym9keTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gb3duaW5nIHRoZSBwcm9wZXJ0eSB0byBiZSBleHBvc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYmUgcmV0cmlldmVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2NvcGUiPjwhLS0gLS0+PC9BPjxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIHNwZWNpZmllZCBiZWFuLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9TY29wZSI+PCEtLSAtLT48L0E+PEgzPgordG9TY29wZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dG9TY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRoZSBuZXdseSBkZWZpbmVkIGJlYW4gd2lsbCBiZSBjcmVhdGQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0eXBlIj48IS0tIC0tPjwvQT48SDM+Cit0eXBlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj50eXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSB2YWx1ZSB0byBiZSBleHBvc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgKFN0cmluZykgdmFsdWUgdG8gd2hpY2ggdGhlIGRlZmluZWQgYmVhbiB3aWxsIGJlIHNldC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJEZWZpbmVUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorRGVmaW5lVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RGVmaW5lVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRJZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRJZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lkKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5zZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTY29wZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U2NvcGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFRvU2NvcGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VG9TY29wZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VG9TY29wZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VG9TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VG9TY29wZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VG9TY29wZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RvU2NvcGUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUeXBlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFR5cGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFR5cGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNoZWNrIGlmIHdlIG5lZWQgdG8gZXZhbHVhdGUgdGhlIGJvZHkgb2YgdGhlIHRhZworPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9BZnRlckJvZHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9BZnRlckJvZHk8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9BZnRlckJvZHk8L0I+KCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+U2F2ZSB0aGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLCBvciB0aHJvdyBhIEpzcEV4Y2VwdGlvbgorIGlmIHRoZSB2YWx1ZSB3YXMgYWxyZWFkeSBkZWZpbmVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvQWZ0ZXJCb2R5PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvQWZ0ZXJCb2R5PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgdmFsdWUgd2FzIGRlZmluZWQgYnkgYW4gYXR0cmlidXRlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXRyaWV2ZSB0aGUgcmVxdWlyZWQgcHJvcGVydHkgYW5kIGV4cG9zZSBpdCBhcyBhIHNjcmlwdGluZyB2YXJpYWJsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRGVmaW5lVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGVmaW5lVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRlaS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzYjE2ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGVpLmh0bWwKQEAgLTAsMCArMSwyODUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitEZWZpbmVUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkRlZmluZVRlaSxEZWZpbmVUZWkgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkRlZmluZVRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbmVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbmVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgRGVmaW5lVGVpPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbworICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkRlZmluZVRlaTwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5EZWZpbmVUZWk8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvREw+CisKKzxQPgorSW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPmRlZmluZTwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGVpLmh0bWwjRGVmaW5lVGVpKCkiPkRlZmluZVRlaTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5WYXJpYWJsZUluZm9bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUZWkuaHRtbCNnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj5nZXRWYXJpYWJsZUluZm88L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSZuYnNwO2RhdGEpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRUYWdJbmZvLCBpc1ZhbGlkLCBzZXRUYWdJbmZvPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkRlZmluZVRlaSgpIj48IS0tIC0tPjwvQT48SDM+CitEZWZpbmVUZWk8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5EZWZpbmVUZWk8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhcmlhYmxlSW5mbzwvSDM+Cis8UFJFPgorcHVibGljIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5WYXJpYWJsZUluZm9bXSA8Qj5nZXRWYXJpYWJsZUluZm88L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXRWYXJpYWJsZUluZm88L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbmVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbmVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWUyMTc2YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbApAQCAtMCwwICsxLDU5MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0hlYWRlclRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSGVhZGVyVGFnLEhlYWRlclRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iSGVhZGVyVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0hlYWRlclRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUZWkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkhlYWRlclRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0ZPTlQ+Cis8QlI+CitDbGFzcyBIZWFkZXJUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkhlYWRlclRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkhlYWRlclRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvREw+CisKKzxQPgorRGVmaW5lIGEgc2NyaXB0aW5nIHZhcmlhYmxlIGJhc2VkIG9uIHRoZSB2YWx1ZShzKSBvZiB0aGUgc3BlY2lmaWVkCisgaGVhZGVyIHJlY2VpdmVkIHdpdGggdGhpcyByZXF1ZXN0LgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5IZWFkZXJUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNpZCI+aWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNtdWx0aXBsZSI+bXVsdGlwbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGFuIGFycmF5IG9mIGhlYWRlciB2YWx1ZXMgaWYgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGlzIG5vbi1udWxsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBoZWFkZXIgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZXhwb3NlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiBubyBoZWFkZXIgb2YgdGhlIHNwZWNpZmllZCBuYW1lIGlzIGZvdW5kLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNIZWFkZXJUYWcoKSI+SGVhZGVyVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlIHRoZSByZXF1aXJlZCBwcm9wZXJ0eSBhbmQgZXhwb3NlIGl0IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI2dldElkKCkiPmdldElkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjZ2V0TXVsdGlwbGUoKSI+Z2V0TXVsdGlwbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPnNldElkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjc2V0TXVsdGlwbGUoamF2YS5sYW5nLlN0cmluZykiPnNldE11bHRpcGxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO211bHRpcGxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0VuZFRhZywgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImlkIj48IS0tIC0tPjwvQT48SDM+CitpZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibXVsdGlwbGUiPjwhLS0gLS0+PC9BPjxIMz4KK211bHRpcGxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5tdWx0aXBsZTwvQj48L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gYW4gYXJyYXkgb2YgaGVhZGVyIHZhbHVlcyBpZiA8Y29kZT5tdWx0aXBsZTwvY29kZT4gaXMgbm9uLW51bGwuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBoZWFkZXIgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZXhwb3NlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbHVlIj48IS0tIC0tPjwvQT48SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIG5vIGhlYWRlciBvZiB0aGUgc3BlY2lmaWVkIG5hbWUgaXMgZm91bmQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iSGVhZGVyVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0hlYWRlclRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkhlYWRlclRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0SWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldElkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldElkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldElkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRJZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SWQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpZCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+c2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TXVsdGlwbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TXVsdGlwbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE11bHRpcGxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNdWx0aXBsZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TXVsdGlwbGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE11bHRpcGxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bXVsdGlwbGUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHJpZXZlIHRoZSByZXF1aXJlZCBwcm9wZXJ0eSBhbmQgZXhwb3NlIGl0IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0hlYWRlclRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUZWkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkhlYWRlclRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUZWkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUZWkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZGE0ODdmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sCkBAIC0wLDAgKzEsMjg1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorSGVhZGVyVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5IZWFkZXJUZWksSGVhZGVyVGVpIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJIZWFkZXJUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvSGVhZGVyVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkhlYWRlclRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0ZPTlQ+Cis8QlI+CitDbGFzcyBIZWFkZXJUZWk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSGVhZGVyVGVpPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkhlYWRlclRlaTwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9ETD4KKworPFA+CitJbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+aGVhZGVyPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUZWkuaHRtbCNIZWFkZXJUZWkoKSI+SGVhZGVyVGVpPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPmdldFZhcmlhYmxlSW5mbzwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFRhZ0luZm8sIGlzVmFsaWQsIHNldFRhZ0luZm88L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iSGVhZGVyVGVpKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0hlYWRlclRlaTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkhlYWRlclRlaTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFyaWFibGVJbmZvPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdIDxCPmdldFZhcmlhYmxlSW5mbzwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvUFJFPgorPERMPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldFZhcmlhYmxlSW5mbzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0hlYWRlclRlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJIZWFkZXJUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWQyNTdkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbApAQCAtMCwwICsxLDc2MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0luY2x1ZGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkluY2x1ZGVUYWcsSW5jbHVkZVRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iSW5jbHVkZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9JbmNsdWRlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkluY2x1ZGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgSW5jbHVkZVRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSW5jbHVkZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkluY2x1ZGVUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK0RlZmluZSB0aGUgY29udGVudHMgb2YgYSBzcGVjaWZpZWQgaW50cmEtYXBwbGljYXRpb24gcmVxdWVzdCBhcyBhCisgcGFnZSBzY29wZSBhdHRyaWJ1dGUgb2YgdHlwZSA8Y29kZT5qYXZhLmxhbmcuU3RyaW5nPC9jb2RlPi4gIElmIHRoZQorIGN1cnJlbnQgcmVxdWVzdCBpcyBwYXJ0IG9mIGEgc2Vzc2lvbiwgdGhlIHNlc3Npb24gaWRlbnRpZmllciB3aWxsIGJlCisgaW5jbHVkZWQgaW4gdGhlIGdlbmVyYXRlZCByZXF1ZXN0LCBzbyBpdCB3aWxsIGJlIHBhcnQgb2YgdGhlIHNhbWUKKyBzZXNzaW9uLgorIDxwPgorIDxzdHJvbmc+RklYTUU8L3N0cm9uZz46ICBJbiBhIHNlcnZsZXQgMi4zIGVudmlyb25tZW50LCB3ZSBjYW4gdXNlIGEKKyB3cmFwcGVkIHJlc3BvbnNlIHBhc3NlZCB0byBSZXF1ZXN0RGlzcGF0Y2hlci5pbmNsdWRlKCkuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkluY2x1ZGVUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjYW5jaG9yIj5hbmNob3I8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGFuY2hvciB0byBiZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNCVUZGRVJfU0laRSI+QlVGRkVSX1NJWkU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QnVmZmVyIHNpemUgdG8gdXNlIHdoZW4gcmVhZGluZyB0aGUgaW5wdXQgc3RyZWFtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjZm9yd2FyZCI+Zm9yd2FyZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRoYXQgY29udGFpbnMgYQorIHBhdGggdG8gb3VyIHJlcXVlc3RlZCByZXNvdXJjZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2hyZWYiPmhyZWY8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGFic29sdXRlIFVSTCB0byB0aGUgcmVzb3VyY2UgdG8gYmUgaW5jbHVkZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNpZCI+aWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3BhZ2UiPnBhZ2U8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRleHQtcmVsYXRpdmUgVVJJIG9mIHRoZSBwYWdlIG9yIHNlcnZsZXQgdG8gYmUgaW5jbHVkZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCN0cmFuc2FjdGlvbiI+dHJhbnNhY3Rpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5jbHVkZSB0cmFuc2FjdGlvbiB0b2tlbiAoaWYgYW55KSBpbiB0aGUgaHlwZXJsaW5rPzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjSW5jbHVkZVRhZygpIj5JbmNsdWRlVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWZpbmUgdGhlIGNvbnRlbnRzIHJldHVybmVkIGZvciB0aGUgc3BlY2lmaWVkIHJlc291cmNlIGFzIGEKKyBwYWdlIHNjb3BlIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjZ2V0QW5jaG9yKCkiPmdldEFuY2hvcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNnZXRGb3J3YXJkKCkiPmdldEZvcndhcmQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjZ2V0SHJlZigpIj5nZXRIcmVmPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2dldElkKCkiPmdldElkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI2dldFBhZ2UoKSI+Z2V0UGFnZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNnZXRUcmFuc2FjdGlvbigpIj5nZXRUcmFuc2FjdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNzZXRBbmNob3IoamF2YS5sYW5nLlN0cmluZykiPnNldEFuY2hvcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthbmNob3IpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjc2V0Rm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9yd2FyZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3J3YXJkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI3NldEhyZWYoamF2YS5sYW5nLlN0cmluZykiPnNldEhyZWY8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aHJlZik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+dXNlIHNldFBhZ2UoU3RyaW5nKSBpbnN0ZWFkPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwjc2V0VHJhbnNhY3Rpb24oYm9vbGVhbikiPnNldFRyYW5zYWN0aW9uPC9BPjwvQj4oYm9vbGVhbiZuYnNwO3RyYW5zYWN0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0VuZFRhZywgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkJVRkZFUl9TSVpFIj48IS0tIC0tPjwvQT48SDM+CitCVUZGRVJfU0laRTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgPEI+QlVGRkVSX1NJWkU8L0I+PC9QUkU+Cis8REw+Cis8REQ+QnVmZmVyIHNpemUgdG8gdXNlIHdoZW4gcmVhZGluZyB0aGUgaW5wdXQgc3RyZWFtLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5JbmNsdWRlVGFnLkJVRkZFUl9TSVpFIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFuY2hvciI+PCEtLSAtLT48L0E+PEgzPgorYW5jaG9yPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5hbmNob3I8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFuY2hvciB0byBiZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZm9yd2FyZCI+PCEtLSAtLT48L0E+PEgzPgorZm9yd2FyZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Zm9yd2FyZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRoYXQgY29udGFpbnMgYQorIHBhdGggdG8gb3VyIHJlcXVlc3RlZCByZXNvdXJjZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImhyZWYiPjwhLS0gLS0+PC9BPjxIMz4KK2hyZWY8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmhyZWY8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFic29sdXRlIFVSTCB0byB0aGUgcmVzb3VyY2UgdG8gYmUgaW5jbHVkZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpZCI+PCEtLSAtLT48L0E+PEgzPgoraWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhZ2UiPjwhLS0gLS0+PC9BPjxIMz4KK3BhZ2U8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRleHQtcmVsYXRpdmUgVVJJIG9mIHRoZSBwYWdlIG9yIHNlcnZsZXQgdG8gYmUgaW5jbHVkZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0cmFuc2FjdGlvbiI+PCEtLSAtLT48L0E+PEgzPgordHJhbnNhY3Rpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnRyYW5zYWN0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPkluY2x1ZGUgdHJhbnNhY3Rpb24gdG9rZW4gKGlmIGFueSkgaW4gdGhlIGh5cGVybGluaz8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJJbmNsdWRlVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0luY2x1ZGVUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5JbmNsdWRlVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRBbmNob3IoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QW5jaG9yPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBbmNob3I8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEFuY2hvcihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QW5jaG9yPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBbmNob3I8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthbmNob3IpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGb3J3YXJkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEZvcndhcmQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZvcndhcmQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3J3YXJkKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SHJlZigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRIcmVmPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRIcmVmPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRIcmVmKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRIcmVmPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRIcmVmPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aHJlZik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldElkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRJZDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldElkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnNldElkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSBzZXRQYWdlKFN0cmluZykgaW5zdGVhZDwvST4KKzxQPgorPEREPkRlcHJlY2F0ZWQgbWV0aG9kIHRvIHNldCB0aGUgIm5hbWUiIGF0dHJpYnV0ZSwgd2hpY2ggaGFzIGJlZW4KKyByZXBsYWNlZCBieSB0aGUgInBhZ2UiIGF0dHJpYnV0ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFnZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYWdlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYWdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFRyYW5zYWN0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFRyYW5zYWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRUcmFuc2FjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VHJhbnNhY3Rpb24oYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFRyYW5zYWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRUcmFuc2FjdGlvbjwvQj4oYm9vbGVhbiZuYnNwO3RyYW5zYWN0aW9uKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5EZWZpbmUgdGhlIGNvbnRlbnRzIHJldHVybmVkIGZvciB0aGUgc3BlY2lmaWVkIHJlc291cmNlIGFzIGEKKyBwYWdlIHNjb3BlIGF0dHJpYnV0ZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0luY2x1ZGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW5jbHVkZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGVpLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlYmZmNDIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRlaS5odG1sCkBAIC0wLDAgKzEsMjg1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorSW5jbHVkZVRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSW5jbHVkZVRlaSxJbmNsdWRlVGVpIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJJbmNsdWRlVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0luY2x1ZGVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkluY2x1ZGVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgSW5jbHVkZVRlaTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5JbmNsdWRlVGVpPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkluY2x1ZGVUZWk8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvREw+CisKKzxQPgorSW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPmluY2x1ZGU8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCNJbmNsdWRlVGVpKCkiPkluY2x1ZGVUZWk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPmdldFZhcmlhYmxlSW5mbzwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFRhZ0luZm8sIGlzVmFsaWQsIHNldFRhZ0luZm88L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iSW5jbHVkZVRlaSgpIj48IS0tIC0tPjwvQT48SDM+CitJbmNsdWRlVGVpPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+SW5jbHVkZVRlaTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFyaWFibGVJbmZvPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdIDxCPmdldFZhcmlhYmxlSW5mbzwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvUFJFPgorPERMPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldFZhcmlhYmxlSW5mbzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0luY2x1ZGVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkluY2x1ZGVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMmQ1NDA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbApAQCAtMCwwICsxLDEwMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitNZXNzYWdlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5NZXNzYWdlVGFnLE1lc3NhZ2VUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik1lc3NhZ2VUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTWVzc2FnZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWVzc2FnZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0ZPTlQ+Cis8QlI+CitDbGFzcyBNZXNzYWdlVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5NZXNzYWdlVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlVGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5NZXNzYWdlVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitDdXN0b20gdGFnIHRoYXQgcmV0cmlldmVzIGFuIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzIHN0cmluZyAod2l0aAorIG9wdGlvbmFsIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQpIGZyb20gdGhlIDxjb2RlPkFjdGlvblJlc291cmNlczwvY29kZT4KKyBvYmplY3Qgc3RvcmVkIGFzIGEgY29udGV4dCBhdHRyaWJ1dGUgYnkgb3VyIGFzc29jaWF0ZWQKKyA8Y29kZT5BY3Rpb25TZXJ2bGV0PC9jb2RlPiBpbXBsZW1lbnRhdGlvbi4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uTWVzc2FnZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNhcmcwIj5hcmcwPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBmaXJzdCBvcHRpb25hbCBhcmd1bWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2FyZzEiPmFyZzE8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNlY29uZCBvcHRpb25hbCBhcmd1bWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2FyZzIiPmFyZzI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHRoaXJkIG9wdGlvbmFsIGFyZ3VtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjYXJnMyI+YXJnMzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZm91cnRoIG9wdGlvbmFsIGFyZ3VtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjYXJnNCI+YXJnNDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZmlmdGggb3B0aW9uYWwgYXJndW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNidW5kbGUiPmJ1bmRsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtqYXZhLnV0aWwuTG9jYWxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWZhdWx0IExvY2FsZSBmb3Igb3VyIHNlcnZlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2tleSI+a2V5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIGtleSBvZiB0aGUgbWVzc2FnZSB0byBiZSByZXRyaWV2ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNsb2NhbGVLZXkiPmxvY2FsZUtleTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2Vzc2lvbiBzY29wZSBrZXkgdW5kZXIgd2hpY2ggb3VyIExvY2FsZSBpcyBzdG9yZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmFtZSBvZiB0aGUgYmVhbiB0aGF0IGNvbnRhaW5zIHRoZSBtZXNzYWdlIGtleS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBiZSBhY2Nlc3NlZCBvbiB0aGUgc3BlY2lmaWVkIGJlYW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzY29wZSI+c2NvcGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNjb3BlIHRvIGJlIHNlYXJjaGVkIHRvIHJldHJpZXZlIHRoZSBzcGVjaWZpZWQgYmVhbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNNZXNzYWdlVGFnKCkiPk1lc3NhZ2VUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHN0YXJ0IHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0QXJnMCgpIj5nZXRBcmcwPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2dldEFyZzEoKSI+Z2V0QXJnMTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNnZXRBcmcyKCkiPmdldEFyZzI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0QXJnMygpIj5nZXRBcmczPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2dldEFyZzQoKSI+Z2V0QXJnNDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNnZXRCdW5kbGUoKSI+Z2V0QnVuZGxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2dldEtleSgpIj5nZXRLZXk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRBcmcwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBcmcwPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FyZzApPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjc2V0QXJnMShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QXJnMTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthcmcxKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldEFyZzIoamF2YS5sYW5nLlN0cmluZykiPnNldEFyZzI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YXJnMik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRBcmczKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBcmczPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FyZzMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjc2V0QXJnNChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QXJnNDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthcmc0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QnVuZGxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEtleTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlS2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0VuZFRhZywgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYXJnMCI+PCEtLSAtLT48L0E+PEgzPgorYXJnMDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+YXJnMDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZmlyc3Qgb3B0aW9uYWwgYXJndW1lbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhcmcxIj48IS0tIC0tPjwvQT48SDM+CithcmcxPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5hcmcxPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZWNvbmQgb3B0aW9uYWwgYXJndW1lbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhcmcyIj48IS0tIC0tPjwvQT48SDM+CithcmcyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5hcmcyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB0aGlyZCBvcHRpb25hbCBhcmd1bWVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFyZzMiPjwhLS0gLS0+PC9BPjxIMz4KK2FyZzM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFyZzM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZvdXJ0aCBvcHRpb25hbCBhcmd1bWVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFyZzQiPjwhLS0gLS0+PC9BPjxIMz4KK2FyZzQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFyZzQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZpZnRoIG9wdGlvbmFsIGFyZ3VtZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYnVuZGxlIj48IS0tIC0tPjwvQT48SDM+CitidW5kbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmJ1bmRsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciByZXNvdXJjZXMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZWZhdWx0TG9jYWxlIj48IS0tIC0tPjwvQT48SDM+CitkZWZhdWx0TG9jYWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGphdmEudXRpbC5Mb2NhbGUgPEI+ZGVmYXVsdExvY2FsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCBMb2NhbGUgZm9yIG91ciBzZXJ2ZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJrZXkiPjwhLS0gLS0+PC9BPjxIMz4KK2tleTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+a2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIGtleSBvZiB0aGUgbWVzc2FnZSB0byBiZSByZXRyaWV2ZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPk5hbWUgb2YgdGhlIGJlYW4gdGhhdCBjb250YWlucyB0aGUgbWVzc2FnZSBrZXkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPk5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIGFjY2Vzc2VkIG9uIHRoZSBzcGVjaWZpZWQgYmVhbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNjb3BlIj48IS0tIC0tPjwvQT48SDM+CitzY29wZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIHRvIGJlIHNlYXJjaGVkIHRvIHJldHJpZXZlIHRoZSBzcGVjaWZpZWQgYmVhbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvY2FsZUtleSI+PCEtLSAtLT48L0E+PEgzPgorbG9jYWxlS2V5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5sb2NhbGVLZXk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlc3Npb24gc2NvcGUga2V5IHVuZGVyIHdoaWNoIG91ciBMb2NhbGUgaXMgc3RvcmVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNZXNzYWdlVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK01lc3NhZ2VUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NZXNzYWdlVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRBcmcwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFyZzA8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFyZzA8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEFyZzAoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFyZzA8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEFyZzA8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthcmcwKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QXJnMSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBcmcxPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBcmcxPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBcmcxKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRBcmcxPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBcmcxPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YXJnMSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFyZzIoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QXJnMjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QXJnMjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QXJnMihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QXJnMjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QXJnMjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FyZzIpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBcmczKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFyZzM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFyZzM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEFyZzMoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFyZzM8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEFyZzM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthcmczKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QXJnNCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBcmc0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBcmc0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBcmc0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRBcmc0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBcmc0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YXJnNCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEJ1bmRsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRCdW5kbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEJ1bmRsZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRCdW5kbGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEJ1bmRsZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEtleSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRLZXk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEtleTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0S2V5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRLZXk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEtleTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNjb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTY29wZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTY29wZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TG9jYWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TG9jYWxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TG9jYWxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlS2V5KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9NZXNzYWdlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZXNzYWdlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY4MGRhNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwKQEAgLTAsMCArMSw0NzYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitQYWdlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYWdlVGFnLFBhZ2VUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlBhZ2VUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUGFnZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUGFnZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0ZPTlQ+Cis8QlI+CitDbGFzcyBQYWdlVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYWdlVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UGFnZVRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvREw+CisKKzxQPgorRGVmaW5lIGEgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgZXhwb3NlcyB0aGUgcmVxdWVzdGVkIHBhZ2UgY29udGV4dAorIGl0ZW0gYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUgYW5kIGEgcGFnZSBzY29wZSBiZWFuLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYWdlVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sI2lkIj5pZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBwYWdlIGNvbnRleHQgcHJvcGVydHkgdG8gYmUgcmV0cmlldmVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjUGFnZVRhZygpIj5QYWdlVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZSB0aGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiBvYmplY3QgYW5kIGV4cG9zZSBpdCBhcyBhCisgc2NyaXB0aW5nIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCNnZXRJZCgpIj5nZXRJZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0VuZFRhZywgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImlkIj48IS0tIC0tPjwvQT48SDM+CitpZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcGFnZSBjb250ZXh0IHByb3BlcnR5IHRvIGJlIHJldHJpZXZlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJQYWdlVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1BhZ2VUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5QYWdlVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRJZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRJZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lkKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5zZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGFuZCBleHBvc2UgaXQgYXMgYQorIHNjcmlwdGluZyB2YXJpYWJsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9QYWdlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQYWdlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUZWkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGVpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTUxYzNmMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGVpLmh0bWwKQEAgLTAsMCArMSwyODUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitQYWdlVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYWdlVGVpLFBhZ2VUZWkgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlBhZ2VUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUGFnZVRlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQYWdlVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzIFBhZ2VUZWk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFnZVRlaTwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5QYWdlVGVpPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0RMPgorCis8UD4KK0ltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5wYWdlPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGVpLmh0bWwjUGFnZVRlaSgpIj5QYWdlVGVpPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUZWkuaHRtbCNnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj5nZXRWYXJpYWJsZUluZm88L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSZuYnNwO2RhdGEpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRUYWdJbmZvLCBpc1ZhbGlkLCBzZXRUYWdJbmZvPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlBhZ2VUZWkoKSI+PCEtLSAtLT48L0E+PEgzPgorUGFnZVRlaTwvSDM+Cis8UFJFPgorcHVibGljIDxCPlBhZ2VUZWk8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhcmlhYmxlSW5mbzwvSDM+Cis8UFJFPgorcHVibGljIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5WYXJpYWJsZUluZm9bXSA8Qj5nZXRWYXJpYWJsZUluZm88L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXRWYXJpYWJsZUluZm88L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9QYWdlVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBhZ2VUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA0ZTk2MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbApAQCAtMCwwICsxLDU5NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1BhcmFtZXRlclRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFyYW1ldGVyVGFnLFBhcmFtZXRlclRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iUGFyYW1ldGVyVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1BhcmFtZXRlclRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQYXJhbWV0ZXJUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgUGFyYW1ldGVyVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYXJhbWV0ZXJUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5QYXJhbWV0ZXJUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK0RlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSBiYXNlZCBvbiB0aGUgdmFsdWUocykgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciByZWNlaXZlZCB3aXRoIHRoaXMgcmVxdWVzdC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFyYW1ldGVyVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjaWQiPmlkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjbXVsdGlwbGUiPm11bHRpcGxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBhbiBhcnJheSBvZiBwYXJhbWV0ZXIgdmFsdWVzIGlmIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcworIG5vbi1udWxsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZXhwb3NlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiBubyBwYXJhbWV0ZXIgb2YgdGhlIHNwZWNpZmllZCBuYW1lIGlzCisgZm91bmQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI1BhcmFtZXRlclRhZygpIj5QYXJhbWV0ZXJUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjZ2V0SWQoKSI+Z2V0SWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNnZXRNdWx0aXBsZSgpIj5nZXRNdWx0aXBsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNzZXRNdWx0aXBsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TXVsdGlwbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bXVsdGlwbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvRW5kVGFnLCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iaWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtdWx0aXBsZSI+PCEtLSAtLT48L0E+PEgzPgorbXVsdGlwbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm11bHRpcGxlPC9CPjwvUFJFPgorPERMPgorPEREPlJldHVybiBhbiBhcnJheSBvZiBwYXJhbWV0ZXIgdmFsdWVzIGlmIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcworIG5vbi1udWxsLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHdob3NlIHZhbHVlIGlzIHRvIGJlIGV4cG9zZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiBubyBwYXJhbWV0ZXIgb2YgdGhlIHNwZWNpZmllZCBuYW1lIGlzCisgZm91bmQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUGFyYW1ldGVyVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1BhcmFtZXRlclRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlBhcmFtZXRlclRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0SWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldElkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldElkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldElkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRJZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SWQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpZCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+c2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TXVsdGlwbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TXVsdGlwbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE11bHRpcGxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNdWx0aXBsZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TXVsdGlwbGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE11bHRpcGxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bXVsdGlwbGUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHJpZXZlIHRoZSByZXF1aXJlZCBwcm9wZXJ0eSBhbmQgZXhwb3NlIGl0IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1BhcmFtZXRlclRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQYXJhbWV0ZXJUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzIwZTAzZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUZWkuaHRtbApAQCAtMCwwICsxLDI4NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1BhcmFtZXRlclRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFyYW1ldGVyVGVpLFBhcmFtZXRlclRlaSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iUGFyYW1ldGVyVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1BhcmFtZXRlclRlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUGFyYW1ldGVyVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzIFBhcmFtZXRlclRlaTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYXJhbWV0ZXJUZWk8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UGFyYW1ldGVyVGVpPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0RMPgorCis8UD4KK0ltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5wYXJhbWV0ZXI8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRlaS5odG1sI1BhcmFtZXRlclRlaSgpIj5QYXJhbWV0ZXJUZWk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+Z2V0VmFyaWFibGVJbmZvPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0VGFnSW5mbywgaXNWYWxpZCwgc2V0VGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJQYXJhbWV0ZXJUZWkoKSI+PCEtLSAtLT48L0E+PEgzPgorUGFyYW1ldGVyVGVpPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UGFyYW1ldGVyVGVpPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYXJpYWJsZUluZm88L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW10gPEI+Z2V0VmFyaWFibGVJbmZvPC9CPihqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSZuYnNwO2RhdGEpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0VmFyaWFibGVJbmZvPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUGFyYW1ldGVyVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQYXJhbWV0ZXJUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiMzMzMzcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbApAQCAtMCwwICsxLDU1NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1Jlc291cmNlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5SZXNvdXJjZVRhZyxSZXNvdXJjZVRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iUmVzb3VyY2VUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUmVzb3VyY2VUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlc291cmNlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzIFJlc291cmNlVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5SZXNvdXJjZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlJlc291cmNlVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitEZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQKKyB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlJlc291cmNlVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI0JVRkZFUl9TSVpFIj5CVUZGRVJfU0laRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtCdWZmZXIgc2l6ZSB0byB1c2Ugd2hlbiByZWFkaW5nIHRoZSBpbnB1dCBzdHJlYW0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjaWQiPmlkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI2lucHV0Ij5pbnB1dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYW4gSW5wdXRTdHJlYW0gdG8gdGhlIHNwZWNpZmllZCByZXNvdXJjZSBpZiB0aGlzIGlzIG5vbi1udWxsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1vZHVsZS1yZWxhdGl2ZSBVUkkgb2YgdGhlIHJlc291cmNlIHdob3NlIGNvbnRlbnRzIGFyZSB0bworIGJlIGV4cG9zZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjUmVzb3VyY2VUYWcoKSI+UmVzb3VyY2VUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZSB0aGUgcmVxdWlyZWQgcHJvcGVydHkgYW5kIGV4cG9zZSBpdCBhcyBhIHNjcmlwdGluZyB2YXJpYWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI2dldElkKCkiPmdldElkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNnZXRJbnB1dCgpIj5nZXRJbnB1dDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPnNldElkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCNzZXRJbnB1dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW5wdXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aW5wdXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9FbmRUYWcsIGZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJCVUZGRVJfU0laRSI+PCEtLSAtLT48L0E+PEgzPgorQlVGRkVSX1NJWkU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgZmluYWwgaW50IDxCPkJVRkZFUl9TSVpFPC9CPjwvUFJFPgorPERMPgorPEREPkJ1ZmZlciBzaXplIHRvIHVzZSB3aGVuIHJlYWRpbmcgdGhlIGlucHV0IHN0cmVhbS4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUmVzb3VyY2VUYWcuQlVGRkVSX1NJWkUiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlucHV0Ij48IS0tIC0tPjwvQT48SDM+CitpbnB1dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aW5wdXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGFuIElucHV0U3RyZWFtIHRvIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2UgaWYgdGhpcyBpcyBub24tbnVsbC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtb2R1bGUtcmVsYXRpdmUgVVJJIG9mIHRoZSByZXNvdXJjZSB3aG9zZSBjb250ZW50cyBhcmUgdG8KKyBiZSBleHBvc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlJlc291cmNlVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1Jlc291cmNlVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UmVzb3VyY2VUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldElkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRJZDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldElkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnNldElkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldElucHV0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElucHV0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRJbnB1dDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SW5wdXQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElucHV0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRJbnB1dDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lucHV0KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5IGFuZCBleHBvc2UgaXQgYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUmVzb3VyY2VUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlc291cmNlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUZWkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNGI5ZTE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwKQEAgLTAsMCArMSwyODUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitSZXNvdXJjZVRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUmVzb3VyY2VUZWksUmVzb3VyY2VUZWkgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlJlc291cmNlVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1Jlc291cmNlVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVzb3VyY2VUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgUmVzb3VyY2VUZWk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUmVzb3VyY2VUZWk8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UmVzb3VyY2VUZWk8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvREw+CisKKzxQPgorSW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPnJlc291cmNlPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRlaS5odG1sI1Jlc291cmNlVGVpKCkiPlJlc291cmNlVGVpPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+Z2V0VmFyaWFibGVJbmZvPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0VGFnSW5mbywgaXNWYWxpZCwgc2V0VGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJSZXNvdXJjZVRlaSgpIj48IS0tIC0tPjwvQT48SDM+CitSZXNvdXJjZVRlaTwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJlc291cmNlVGVpPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYXJpYWJsZUluZm88L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW10gPEI+Z2V0VmFyaWFibGVJbmZvPC9CPihqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSZuYnNwO2RhdGEpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0VmFyaWFibGVJbmZvPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUmVzb3VyY2VUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXNvdXJjZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiYjA3N2EKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sCkBAIC0wLDAgKzEsNjUxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorU2l6ZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU2l6ZVRhZyxTaXplVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJTaXplVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1NpemVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUZWkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTaXplVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzIFNpemVUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlNpemVUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRTaXplVGFnLmh0bWwiPk5lc3RlZFNpemVUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlNpemVUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK0RlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgY29udGFpbiB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzCisgZm91bmQgaW4gYSBzcGVjaWZpZWQgYXJyYXksIENvbGxlY3Rpb24sIG9yIE1hcC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU2l6ZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNjb2xsZWN0aW9uIj5jb2xsZWN0aW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhY3R1YWwgY29sbGVjdGlvbiB0byBiZSBjb3VudGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjaWQiPmlkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBiZWFuIG93bmluZyB0aGUgcHJvcGVydHkgdG8gYmUgY291bnRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYmUgcmV0cmlldmVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjc2NvcGUiPnNjb3BlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgc3BlY2lmaWVkIGJlYW4uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNTaXplVGFnKCkiPlNpemVUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlIHRoZSByZXF1aXJlZCBwcm9wZXJ0eSBhbmQgZXhwb3NlIGl0IGFzIGEgc2NyaXB0aW5nIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNnZXRDb2xsZWN0aW9uKCkiPmdldENvbGxlY3Rpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjZ2V0SWQoKSI+Z2V0SWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3NldENvbGxlY3Rpb24oamF2YS5sYW5nLk9iamVjdCkiPnNldENvbGxlY3Rpb248L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7Y29sbGVjdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvRW5kVGFnLCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY29sbGVjdGlvbiI+PCEtLSAtLT48L0E+PEgzPgorY29sbGVjdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5PYmplY3QgPEI+Y29sbGVjdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWN0dWFsIGNvbGxlY3Rpb24gdG8gYmUgY291bnRlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlkIj48IS0tIC0tPjwvQT48SDM+CitpZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBvd25pbmcgdGhlIHByb3BlcnR5IHRvIGJlIGNvdW50ZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBiZSByZXRyaWV2ZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzY29wZSI+PCEtLSAtLT48L0E+PEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgc3BlY2lmaWVkIGJlYW4uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iU2l6ZVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitTaXplVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+U2l6ZVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0Q29sbGVjdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDb2xsZWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5nZXRDb2xsZWN0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb2xsZWN0aW9uKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb2xsZWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDb2xsZWN0aW9uPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7Y29sbGVjdGlvbik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldElkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRJZDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldElkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnNldElkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNjb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTY29wZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTY29wZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXRyaWV2ZSB0aGUgcmVxdWlyZWQgcHJvcGVydHkgYW5kIGV4cG9zZSBpdCBhcyBhIHNjcmlwdGluZyB2YXJpYWJsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9TaXplVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU2l6ZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2MDMwMDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sCkBAIC0wLDAgKzEsMjg1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorU2l6ZVRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU2l6ZVRlaSxTaXplVGVpIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJTaXplVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1NpemVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU2l6ZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0ZPTlQ+Cis8QlI+CitDbGFzcyBTaXplVGVpPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbworICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlNpemVUZWk8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+U2l6ZVRlaTwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9ETD4KKworPFA+CitJbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+c2l6ZTwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sI1NpemVUZWkoKSI+U2l6ZVRlaTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5WYXJpYWJsZUluZm9bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+Z2V0VmFyaWFibGVJbmZvPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0VGFnSW5mbywgaXNWYWxpZCwgc2V0VGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJTaXplVGVpKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1NpemVUZWk8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5TaXplVGVpPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYXJpYWJsZUluZm88L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW10gPEI+Z2V0VmFyaWFibGVJbmZvPC9CPihqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSZuYnNwO2RhdGEpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0VmFyaWFibGVJbmZvPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvU2l6ZVRlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTaXplVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzNWNlMTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwKQEAgLTAsMCArMSw1OTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitTdHJ1dHNUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlN0cnV0c1RhZyxTdHJ1dHNUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlN0cnV0c1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9TdHJ1dHNUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU3RydXRzVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzIFN0cnV0c1RhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU3RydXRzVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+U3RydXRzVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitEZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCBleHBvc2VzIHRoZSByZXF1ZXN0ZWQgU3RydXRzCisgaW50ZXJuYWwgY29uZmlndXJhdG9uIG9iamVjdC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU3RydXRzVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjZm9ybUJlYW4iPmZvcm1CZWFuPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb25Gb3JtQmVhbjwvY29kZT4gb2JqZWN0IHRvIGJlIGV4cG9zZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2ZvcndhcmQiPmZvcndhcmQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IG9iamVjdCB0byBiZSBleHBvc2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNpZCI+aWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI21hcHBpbmciPm1hcHBpbmc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IG9iamVjdCB0byBiZSBleHBvc2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjU3RydXRzVGFnKCkiPlN0cnV0c1RhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZSB0aGUgcmVxdWlyZWQgY29uZmlndXJhdGlvbiBvYmplY3QgYW5kIGV4cG9zZSBpdCBhcyBhCisgc2NyaXB0aW5nIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI2dldEZvcm1CZWFuKCkiPmdldEZvcm1CZWFuPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjZ2V0Rm9yd2FyZCgpIj5nZXRGb3J3YXJkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwjZ2V0SWQoKSI+Z2V0SWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNnZXRNYXBwaW5nKCkiPmdldE1hcHBpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI3NldEZvcm1CZWFuKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3JtQmVhbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3JtQmVhbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI3NldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcndhcmQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9yd2FyZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI3NldE1hcHBpbmcoamF2YS5sYW5nLlN0cmluZykiPnNldE1hcHBpbmc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9FbmRUYWcsIGZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJpZCI+PCEtLSAtLT48L0E+PEgzPgoraWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvcm1CZWFuIj48IS0tIC0tPjwvQT48SDM+Citmb3JtQmVhbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Zm9ybUJlYW48L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbkZvcm1CZWFuPC9jb2RlPiBvYmplY3QgdG8gYmUgZXhwb3NlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvcndhcmQiPjwhLS0gLS0+PC9BPjxIMz4KK2ZvcndhcmQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmZvcndhcmQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IG9iamVjdCB0byBiZSBleHBvc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWFwcGluZyI+PCEtLSAtLT48L0E+PEgzPgorbWFwcGluZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bWFwcGluZzwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gb2JqZWN0IHRvIGJlIGV4cG9zZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iU3RydXRzVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1N0cnV0c1RhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlN0cnV0c1RhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0SWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldElkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldElkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldElkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRJZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SWQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpZCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+c2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Rm9ybUJlYW4oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Rm9ybUJlYW48L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEZvcm1CZWFuPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGb3JtQmVhbihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Rm9ybUJlYW48L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZvcm1CZWFuPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9ybUJlYW4pPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGb3J3YXJkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEZvcndhcmQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZvcndhcmQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3J3YXJkKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWFwcGluZygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNYXBwaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNYXBwaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNYXBwaW5nKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNYXBwaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRNYXBwaW5nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWFwcGluZyk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0cmlldmUgdGhlIHJlcXVpcmVkIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGFuZCBleHBvc2UgaXQgYXMgYQorIHNjcmlwdGluZyB2YXJpYWJsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9TdHJ1dHNUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU3RydXRzVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlMmU2OGMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGVpLmh0bWwKQEAgLTAsMCArMSwyODUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDggRURUIDIwMDMgLS0+Cis8VElUTEU+CitTdHJ1dHNUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlN0cnV0c1RlaSxTdHJ1dHNUZWkgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlN0cnV0c1RlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9TdHJ1dHNUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlN0cnV0c1RlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0ZPTlQ+Cis8QlI+CitDbGFzcyBTdHJ1dHNUZWk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU3RydXRzVGVpPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlN0cnV0c1RlaTwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9ETD4KKworPFA+CitJbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+c3RydXRzPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUZWkuaHRtbCNTdHJ1dHNUZWkoKSI+U3RydXRzVGVpPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPmdldFZhcmlhYmxlSW5mbzwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFRhZ0luZm8sIGlzVmFsaWQsIHNldFRhZ0luZm88L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iU3RydXRzVGVpKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1N0cnV0c1RlaTwvSDM+Cis8UFJFPgorcHVibGljIDxCPlN0cnV0c1RlaTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFyaWFibGVJbmZvPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdIDxCPmdldFZhcmlhYmxlSW5mbzwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvUFJFPgorPERMPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldFZhcmlhYmxlSW5mbzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1N0cnV0c1RlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU3RydXRzVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2ViMjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwKQEAgLTAsMCArMSwxMDYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorV3JpdGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLldyaXRlVGFnLFdyaXRlVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJXcml0ZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Xcml0ZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUZWkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IldyaXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzIFdyaXRlVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5Xcml0ZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFdyaXRlVGFnLmh0bWwiPk5lc3RlZFdyaXRlVGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Xcml0ZVRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvREw+CisKKzxQPgorVGFnIHRoYXQgcmV0cmlldmVzIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZCBiZWFuLCBjb252ZXJ0cworIGl0IHRvIGEgU3RyaW5nIHJlcHJlc2VudGF0aW9uIChpZiBuZWNlc3NhcnkpLCBhbmQgd3JpdGVzIGl0IHRvIHRoZSBjdXJyZW50Cisgb3V0cHV0IHN0cmVhbSwgb3B0aW9uYWxseSBmaWx0ZXJpbmcgY2hhcmFjdGVycyB0aGF0IGFyZSBzZW5zaXRpdmUgaW4gSFRNTC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uV3JpdGVUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2J1bmRsZSI+YnVuZGxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3Igb3VyIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI0RBVEVfRk9STUFUX0tFWSI+REFURV9GT1JNQVRfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBrZXkgdG8gc2VhcmNoIGRlZmF1bHQgZm9ybWF0IHN0cmluZyBmb3IgCisgamF2YS51dGlsLkRhdGUgaW4gcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2ZpbHRlciI+ZmlsdGVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZpbHRlciB0aGUgcmVuZGVyZWQgb3V0cHV0IGZvciBjaGFyYWN0ZXJzIHRoYXQgYXJlIHNlbnNpdGl2ZSBpbiBIVE1MPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjRkxPQVRfRk9STUFUX0tFWSI+RkxPQVRfRk9STUFUX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUga2V5IHRvIHNlYXJjaCBkZWZhdWx0IGZvcm1hdCBzdHJpbmcgZm9yIGZsb2F0CisgKGRvdWJsZSwgQmlnRGVjaW1hbCkgaW4gcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2Zvcm1hdEtleSI+Zm9ybWF0S2V5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBrZXkgdG8gc2VhcmNoIGZvcm1hdCBzdHJpbmcgaW4gYXBwbGNpYXRpb24gcmVzb3VyY2VzPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjZm9ybWF0U3RyIj5mb3JtYXRTdHI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGZvcm1hdCBzdHJpbmcgdG8gYmUgdXNlZCBhcyBmb3JtYXQgdG8gY29udmVydCAKKyB2YWx1ZSB0byBTdHJpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjaWdub3JlIj5pZ25vcmU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2hvdWxkIHdlIGlnbm9yZSBtaXNzaW5nIGJlYW5zIGFuZCBzaW1wbHkgb3V0cHV0IG5vdGhpbmc/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNJTlRfRk9STUFUX0tFWSI+SU5UX0ZPUk1BVF9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGtleSB0byBzZWFyY2ggZGVmYXVsdCBmb3JtYXQgc3RyaW5nIGZvciBpbnQKKyAoYnl0ZSwgc2hvcnQsIGV0Yy4pIGluIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNsb2NhbGVLZXkiPmxvY2FsZUtleTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2Vzc2lvbiBzY29wZSBrZXkgdW5kZXIgd2hpY2ggb3VyIExvY2FsZSBpcyBzdG9yZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOYW1lIG9mIHRoZSBiZWFuIHRoYXQgY29udGFpbnMgdGhlIGRhdGEgd2Ugd2lsbCBiZSByZW5kZXJpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIGFjY2Vzc2VkIG9uIHRoZSBzcGVjaWZpZWQgYmVhbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNzY29wZSI+c2NvcGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNjb3BlIHRvIGJlIHNlYXJjaGVkIHRvIHJldHJpZXZlIHRoZSBzcGVjaWZpZWQgYmVhbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI1NRTF9EQVRFX0ZPUk1BVF9LRVkiPlNRTF9EQVRFX0ZPUk1BVF9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGtleSB0byBzZWFyY2ggZGVmYXVsdCBmb3JtYXQgc3RyaW5nIGZvciAKKyBqYXZhLnNxbC5EYXRlIGluIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI1NRTF9USU1FX0ZPUk1BVF9LRVkiPlNRTF9USU1FX0ZPUk1BVF9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGtleSB0byBzZWFyY2ggZGVmYXVsdCBmb3JtYXQgc3RyaW5nIGZvciAKKyBqYXZhLnNxbC5UaW1lIGluIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI1NRTF9USU1FU1RBTVBfRk9STUFUX0tFWSI+U1FMX1RJTUVTVEFNUF9GT1JNQVRfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBrZXkgdG8gc2VhcmNoIGRlZmF1bHQgZm9ybWF0IHN0cmluZyBmb3IgCisgamF2YS5zcWwuVGltZXN0YW1wIGluIHJlc291cmNlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjV3JpdGVUYWcoKSI+V3JpdGVUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzdGFydCB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjZm9ybWF0VmFsdWUoamF2YS5sYW5nLk9iamVjdCkiPmZvcm1hdFZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlVG9Gb3JtYXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGb3JtYXQgdmFsdWUgYWNjb3JkaW5nIHRvIHNwZWNpZmllZCBmb3JtYXQgc3RyaW5nIChhcyB0YWcgYXR0cmlidXRlIG9yCisgYXMgc3RyaW5nIGZyb20gbWVzc2FnZSByZXNvdXJjZXMpIG9yIHRvIGN1cnJlbnQgdXNlciBsb2NhbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNnZXRCdW5kbGUoKSI+Z2V0QnVuZGxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNnZXRGaWx0ZXIoKSI+Z2V0RmlsdGVyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNnZXRGb3JtYXQoKSI+Z2V0Rm9ybWF0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNnZXRGb3JtYXRLZXkoKSI+Z2V0Rm9ybWF0S2V5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNnZXRJZ25vcmUoKSI+Z2V0SWdub3JlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNnZXRMb2NhbGUoKSI+Z2V0TG9jYWxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNyZXRyaWV2ZUZvcm1hdFN0cmluZyhqYXZhLmxhbmcuU3RyaW5nKSI+cmV0cmlldmVGb3JtYXRTdHJpbmc8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9ybWF0S2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmUgZm9ybWF0IHN0cmluZyBmcm9tIG1lc3NhZ2UgYnVuZGxlIGFuZCByZXR1cm4gbnVsbCBpZgorIG1lc3NhZ2Ugbm90IGZvdW5kIG9yIG1lc3NhZ2Ugc3RyaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNzZXRGaWx0ZXIoYm9vbGVhbikiPnNldEZpbHRlcjwvQT48L0I+KGJvb2xlYW4mbmJzcDtmaWx0ZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3NldEZvcm1hdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9ybWF0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2Zvcm1hdFN0cik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2V0Rm9ybWF0S2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3JtYXRLZXk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9ybWF0S2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNzZXRJZ25vcmUoYm9vbGVhbikiPnNldElnbm9yZTwvQT48L0I+KGJvb2xlYW4mbmJzcDtpZ25vcmUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG9jYWxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsZUtleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9FbmRUYWcsIGZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlNRTF9USU1FU1RBTVBfRk9STUFUX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorU1FMX1RJTUVTVEFNUF9GT1JNQVRfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+U1FMX1RJTUVTVEFNUF9GT1JNQVRfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBrZXkgdG8gc2VhcmNoIGRlZmF1bHQgZm9ybWF0IHN0cmluZyBmb3IgCisgamF2YS5zcWwuVGltZXN0YW1wIGluIHJlc291cmNlcy4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uV3JpdGVUYWcuU1FMX1RJTUVTVEFNUF9GT1JNQVRfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlNRTF9EQVRFX0ZPUk1BVF9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK1NRTF9EQVRFX0ZPUk1BVF9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5TUUxfREFURV9GT1JNQVRfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBrZXkgdG8gc2VhcmNoIGRlZmF1bHQgZm9ybWF0IHN0cmluZyBmb3IgCisgamF2YS5zcWwuRGF0ZSBpbiByZXNvdXJjZXMuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLldyaXRlVGFnLlNRTF9EQVRFX0ZPUk1BVF9LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iU1FMX1RJTUVfRk9STUFUX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorU1FMX1RJTUVfRk9STUFUX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPlNRTF9USU1FX0ZPUk1BVF9LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGtleSB0byBzZWFyY2ggZGVmYXVsdCBmb3JtYXQgc3RyaW5nIGZvciAKKyBqYXZhLnNxbC5UaW1lIGluIHJlc291cmNlcy4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uV3JpdGVUYWcuU1FMX1RJTUVfRk9STUFUX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJEQVRFX0ZPUk1BVF9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK0RBVEVfRk9STUFUX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkRBVEVfRk9STUFUX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUga2V5IHRvIHNlYXJjaCBkZWZhdWx0IGZvcm1hdCBzdHJpbmcgZm9yIAorIGphdmEudXRpbC5EYXRlIGluIHJlc291cmNlcy4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uV3JpdGVUYWcuREFURV9GT1JNQVRfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IklOVF9GT1JNQVRfS0VZIj48IS0tIC0tPjwvQT48SDM+CitJTlRfRk9STUFUX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPklOVF9GT1JNQVRfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBrZXkgdG8gc2VhcmNoIGRlZmF1bHQgZm9ybWF0IHN0cmluZyBmb3IgaW50CisgKGJ5dGUsIHNob3J0LCBldGMuKSBpbiByZXNvdXJjZXMuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLldyaXRlVGFnLklOVF9GT1JNQVRfS0VZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkZMT0FUX0ZPUk1BVF9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK0ZMT0FUX0ZPUk1BVF9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5GTE9BVF9GT1JNQVRfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBrZXkgdG8gc2VhcmNoIGRlZmF1bHQgZm9ybWF0IHN0cmluZyBmb3IgZmxvYXQKKyAoZG91YmxlLCBCaWdEZWNpbWFsKSBpbiByZXNvdXJjZXMuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLldyaXRlVGFnLkZMT0FUX0ZPUk1BVF9LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbHRlciI+PCEtLSAtLT48L0E+PEgzPgorZmlsdGVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5maWx0ZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+RmlsdGVyIHRoZSByZW5kZXJlZCBvdXRwdXQgZm9yIGNoYXJhY3RlcnMgdGhhdCBhcmUgc2Vuc2l0aXZlIGluIEhUTUw/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpZ25vcmUiPjwhLS0gLS0+PC9BPjxIMz4KK2lnbm9yZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+aWdub3JlPC9CPjwvUFJFPgorPERMPgorPEREPlNob3VsZCB3ZSBpZ25vcmUgbWlzc2luZyBiZWFucyBhbmQgc2ltcGx5IG91dHB1dCBub3RoaW5nPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5OYW1lIG9mIHRoZSBiZWFuIHRoYXQgY29udGFpbnMgdGhlIGRhdGEgd2Ugd2lsbCBiZSByZW5kZXJpbmcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPk5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIGFjY2Vzc2VkIG9uIHRoZSBzcGVjaWZpZWQgYmVhbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNjb3BlIj48IS0tIC0tPjwvQT48SDM+CitzY29wZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIHRvIGJlIHNlYXJjaGVkIHRvIHJldHJpZXZlIHRoZSBzcGVjaWZpZWQgYmVhbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvcm1hdFN0ciI+PCEtLSAtLT48L0E+PEgzPgorZm9ybWF0U3RyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5mb3JtYXRTdHI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZvcm1hdCBzdHJpbmcgdG8gYmUgdXNlZCBhcyBmb3JtYXQgdG8gY29udmVydCAKKyB2YWx1ZSB0byBTdHJpbmcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmb3JtYXRLZXkiPjwhLS0gLS0+PC9BPjxIMz4KK2Zvcm1hdEtleTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Zm9ybWF0S2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBrZXkgdG8gc2VhcmNoIGZvcm1hdCBzdHJpbmcgaW4gYXBwbGNpYXRpb24gcmVzb3VyY2VzCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2NhbGVLZXkiPjwhLS0gLS0+PC9BPjxIMz4KK2xvY2FsZUtleTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bG9jYWxlS2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXNzaW9uIHNjb3BlIGtleSB1bmRlciB3aGljaCBvdXIgTG9jYWxlIGlzIHN0b3JlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJ1bmRsZSI+PCEtLSAtLT48L0E+PEgzPgorYnVuZGxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5idW5kbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciBvdXIgcmVzb3VyY2VzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IldyaXRlVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1dyaXRlVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+V3JpdGVUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEZpbHRlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGaWx0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldEZpbHRlcjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RmlsdGVyKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRGaWx0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZpbHRlcjwvQj4oYm9vbGVhbiZuYnNwO2ZpbHRlcik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldElnbm9yZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJZ25vcmU8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldElnbm9yZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SWdub3JlKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRJZ25vcmU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldElnbm9yZTwvQj4oYm9vbGVhbiZuYnNwO2lnbm9yZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNjb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTY29wZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTY29wZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Rm9ybWF0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZvcm1hdDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Rm9ybWF0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGb3JtYXQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZvcm1hdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Rm9ybWF0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9ybWF0U3RyKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Rm9ybWF0S2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZvcm1hdEtleTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Rm9ybWF0S2V5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGb3JtYXRLZXkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZvcm1hdEtleTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Rm9ybWF0S2V5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9ybWF0S2V5KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TG9jYWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TG9jYWxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TG9jYWxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlS2V5KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QnVuZGxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QnVuZGxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QnVuZGxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJldHJpZXZlRm9ybWF0U3RyaW5nKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CityZXRyaWV2ZUZvcm1hdFN0cmluZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cmV0cmlldmVGb3JtYXRTdHJpbmc8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3JtYXRLZXkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXRyaWV2ZSBmb3JtYXQgc3RyaW5nIGZyb20gbWVzc2FnZSBidW5kbGUgYW5kIHJldHVybiBudWxsIGlmCisgbWVzc2FnZSBub3QgZm91bmQgb3IgbWVzc2FnZSBzdHJpbmcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZvcm1hdEtleTwvQ09ERT4gLSB2YWx1ZSB0byB1c2UgYXMga2V5IHRvIHNlYXJjaCBtZXNzYWdlIGluIGJ1bmRsZQorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvcm1hdFZhbHVlKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+Citmb3JtYXRWYWx1ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Zm9ybWF0VmFsdWU8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZVRvRm9ybWF0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Rm9ybWF0IHZhbHVlIGFjY29yZGluZyB0byBzcGVjaWZpZWQgZm9ybWF0IHN0cmluZyAoYXMgdGFnIGF0dHJpYnV0ZSBvcgorIGFzIHN0cmluZyBmcm9tIG1lc3NhZ2UgcmVzb3VyY2VzKSBvciB0byBjdXJyZW50IHVzZXIgbG9jYWxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZVRvRm9ybWF0PC9DT0RFPiAtIHZhbHVlIHRvIHByb2Nlc3MgYW5kIGNvbnZlcnQgdG8gU3RyaW5nCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Xcml0ZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUZWkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IldyaXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9Db29raWVUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvQ29va2llVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ3NGY2MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvQ29va2llVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkNvb2tpZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5Db29raWVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb29raWVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5Db29raWVUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uQ29va2llVGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb29raWVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9Db29raWVUZWkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvQ29va2llVGVpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDU5ODAzMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvQ29va2llVGVpLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkNvb2tpZVRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5Db29raWVUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb29raWVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5Db29raWVUZWk8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uQ29va2llVGVpCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb29raWVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9EZWZpbmVUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvRGVmaW5lVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY3YzBiZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvRGVmaW5lVGFnLmh0bWwKQEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkRlZmluZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5EZWZpbmVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbmVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5EZWZpbmVUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4iPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGJlYW4gdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9jb2RlPgorICAgICB0YWdzIHRvIGFsbG93IHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUYWcuaHRtbCI+TmVzdGVkRGVmaW5lVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZERlZmluZVRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vY2xhc3MtdXNlL0RlZmluZVRlaS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9EZWZpbmVUZWkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzM5YmYzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9EZWZpbmVUZWkuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uRGVmaW5lVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkRlZmluZVRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkRlZmluZVRlaTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5EZWZpbmVUZWkKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vY2xhc3MtdXNlL0hlYWRlclRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9IZWFkZXJUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDQ5NjJhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9IZWFkZXJUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSGVhZGVyVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkhlYWRlclRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkhlYWRlclRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkhlYWRlclRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5IZWFkZXJUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkhlYWRlclRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vY2xhc3MtdXNlL0hlYWRlclRlaS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9IZWFkZXJUZWkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjE5MTkzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9IZWFkZXJUZWkuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSGVhZGVyVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkhlYWRlclRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkhlYWRlclRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkhlYWRlclRlaTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5IZWFkZXJUZWkKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkhlYWRlclRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vY2xhc3MtdXNlL0luY2x1ZGVUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvSW5jbHVkZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhZTBlMDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vY2xhc3MtdXNlL0luY2x1ZGVUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSW5jbHVkZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5JbmNsdWRlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkluY2x1ZGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5JbmNsdWRlVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkluY2x1ZGVUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbmNsdWRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvSW5jbHVkZVRlaS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9JbmNsdWRlVGVpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWM2NDM2ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvSW5jbHVkZVRlaS5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5JbmNsdWRlVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkluY2x1ZGVUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW5jbHVkZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkluY2x1ZGVUZWk8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSW5jbHVkZVRlaQorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkluY2x1ZGVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9NZXNzYWdlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vY2xhc3MtdXNlL01lc3NhZ2VUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzk2ZmUyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9NZXNzYWdlVGFnLmh0bWwKQEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLk1lc3NhZ2VUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uTWVzc2FnZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZXNzYWdlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uTWVzc2FnZVRhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW48L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBiZWFuIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvY29kZT4KKyAgICAgdGFncyB0byBhbGxvdyB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRXcml0ZVRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZXNzYWdlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvUGFnZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9QYWdlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDA2NGM5ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvUGFnZVRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYWdlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlBhZ2VUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUGFnZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlBhZ2VUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFnZVRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBhZ2VUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9QYWdlVGVpLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vY2xhc3MtdXNlL1BhZ2VUZWkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNjE0MDk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9QYWdlVGVpLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlBhZ2VUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFnZVRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQYWdlVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFnZVRlaTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYWdlVGVpCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUGFnZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vY2xhc3MtdXNlL1BhcmFtZXRlclRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9QYXJhbWV0ZXJUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDg1M2ZiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9QYXJhbWV0ZXJUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFyYW1ldGVyVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlBhcmFtZXRlclRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBhcmFtZXRlclRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlBhcmFtZXRlclRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYXJhbWV0ZXJUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBhcmFtZXRlclRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vY2xhc3MtdXNlL1BhcmFtZXRlclRlaS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9QYXJhbWV0ZXJUZWkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTRjMDEzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9QYXJhbWV0ZXJUZWkuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFyYW1ldGVyVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlBhcmFtZXRlclRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBhcmFtZXRlclRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlBhcmFtZXRlclRlaTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYXJhbWV0ZXJUZWkKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBhcmFtZXRlclRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vY2xhc3MtdXNlL1Jlc291cmNlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vY2xhc3MtdXNlL1Jlc291cmNlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NiNmIxYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvUmVzb3VyY2VUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUmVzb3VyY2VUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUmVzb3VyY2VUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlc291cmNlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUmVzb3VyY2VUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUmVzb3VyY2VUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVzb3VyY2VUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9SZXNvdXJjZVRlaS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9SZXNvdXJjZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxM2I5ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vY2xhc3MtdXNlL1Jlc291cmNlVGVpLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlJlc291cmNlVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlJlc291cmNlVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXNvdXJjZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlJlc291cmNlVGVpPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlJlc291cmNlVGVpCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlc291cmNlVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvU2l6ZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9TaXplVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDI4YjkyNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvU2l6ZVRhZy5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5TaXplVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlNpemVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU2l6ZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlNpemVUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgYmVhbiB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L2NvZGU+CisgICAgIHRhZ3MgdG8gYWxsb3cgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+U2l6ZVRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRTaXplVGFnLmh0bWwiPk5lc3RlZFNpemVUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkU2l6ZVRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTaXplVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvU2l6ZVRlaS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9TaXplVGVpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA0NjNhYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvU2l6ZVRlaS5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5TaXplVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlNpemVUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU2l6ZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlNpemVUZWk8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU2l6ZVRlaQorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlNpemVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9TdHJ1dHNUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvU3RydXRzVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDg1OTllMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvU3RydXRzVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlN0cnV0c1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5TdHJ1dHNUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdHJ1dHNUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5TdHJ1dHNUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU3RydXRzVGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdHJ1dHNUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9TdHJ1dHNUZWkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvU3RydXRzVGVpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU4ZjE0YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvU3RydXRzVGVpLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlN0cnV0c1RlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5TdHJ1dHNUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdHJ1dHNUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5TdHJ1dHNUZWk8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU3RydXRzVGVpCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdHJ1dHNUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9Xcml0ZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9Xcml0ZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxMjkzYmIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vY2xhc3MtdXNlL1dyaXRlVGFnLmh0bWwKQEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLldyaXRlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLldyaXRlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJXcml0ZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLldyaXRlVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgYmVhbiB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L2NvZGU+CisgICAgIHRhZ3MgdG8gYWxsb3cgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCI+TmVzdGVkV3JpdGVUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkV3JpdGVUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IldyaXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9kb2MtZmlsZXMvYmVhblVNTC5naWYgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vZG9jLWZpbGVzL2JlYW5VTUwuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxOTI1MGMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vZG9jLWZpbGVzL2JlYW5VTUwuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9wYWNrYWdlLWZyYW1lLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4YjgzMWUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNzEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4gcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0E+PC9GT05UPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorQ2xhc3NlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9IkNvb2tpZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvb2tpZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkNvb2tpZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvb2tpZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9IkRlZmluZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRlZmluZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkRlZmluZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRlZmluZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9IkhlYWRlclRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkhlYWRlclRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkhlYWRlclRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkhlYWRlclRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9IkluY2x1ZGVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JbmNsdWRlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iSW5jbHVkZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkluY2x1ZGVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJNZXNzYWdlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TWVzc2FnZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlBhZ2VUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QYWdlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iUGFnZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlBhZ2VUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJQYXJhbWV0ZXJUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QYXJhbWV0ZXJUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJQYXJhbWV0ZXJUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QYXJhbWV0ZXJUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJSZXNvdXJjZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlc291cmNlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iUmVzb3VyY2VUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZXNvdXJjZVRlaTwvQT4KKzxCUj4KKzxBIEhSRUY9IlNpemVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TaXplVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iU2l6ZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlNpemVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJTdHJ1dHNUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TdHJ1dHNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJTdHJ1dHNUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TdHJ1dHNUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJXcml0ZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPldyaXRlVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlYjAxODAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwKQEAgLTAsMCArMSw2NTYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4gcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4KKzwvSDI+CitUaGUgInN0cnV0cy1iZWFuIiB0YWcgbGlicmFyeSBjb250YWlucyBKU1AgY3VzdG9tIHRhZ3MgdXNlZnVsIGluIGRlZmluaW5nCituZXcgYmVhbnMgKGluIGFueSBkZXNpcmVkIHNjb3BlKSBmcm9tIGEgdmFyaWV0eSBvZiBwb3NzaWJsZSBzb3VyY2VzLCBhcyB3ZWxsCithcyBhIHRhZyB0byByZW5kZXIgYSBwYXJ0aWN1bGFyIGJlYW4gKG9yIGJlYW4gcHJvcGVydHkpIHRvIHRoZSBvdXRwdXQgcmVzcG9uc2UuCis8UD4KKzxCPlNlZTo8L0I+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8QSBIUkVGPSIjcGFja2FnZV9kZXNjcmlwdGlvbiI+PEI+RGVzY3JpcHRpb248L0I+PC9BPgorPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQ29va2llVGFnLmh0bWwiPkNvb2tpZVRhZzwvQT48L0I+PC9URD4KKzxURD5EZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIHZhbHVlKHMpIG9mIHRoZSBzcGVjaWZpZWQKKyBjb29raWUgcmVjZWl2ZWQgd2l0aCB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJDb29raWVUZWkuaHRtbCI+Q29va2llVGVpPC9BPjwvQj48L1REPgorPFREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5jb29raWU8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJEZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPjwvQj48L1REPgorPFREPkRlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSBiYXNlZCBvbiB0aGUgdmFsdWUocykgb2YgdGhlIHNwZWNpZmllZAorIGJlYW4gcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJEZWZpbmVUZWkuaHRtbCI+RGVmaW5lVGVpPC9BPjwvQj48L1REPgorPFREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5kZWZpbmU8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJIZWFkZXJUYWcuaHRtbCI+SGVhZGVyVGFnPC9BPjwvQj48L1REPgorPFREPkRlZmluZSBhIHNjcmlwdGluZyB2YXJpYWJsZSBiYXNlZCBvbiB0aGUgdmFsdWUocykgb2YgdGhlIHNwZWNpZmllZAorIGhlYWRlciByZWNlaXZlZCB3aXRoIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkhlYWRlclRlaS5odG1sIj5IZWFkZXJUZWk8L0E+PC9CPjwvVEQ+Cis8VEQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPmhlYWRlcjwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkluY2x1ZGVUYWcuaHRtbCI+SW5jbHVkZVRhZzwvQT48L0I+PC9URD4KKzxURD5EZWZpbmUgdGhlIGNvbnRlbnRzIG9mIGEgc3BlY2lmaWVkIGludHJhLWFwcGxpY2F0aW9uIHJlcXVlc3QgYXMgYQorIHBhZ2Ugc2NvcGUgYXR0cmlidXRlIG9mIHR5cGUgPGNvZGU+amF2YS5sYW5nLlN0cmluZzwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJJbmNsdWRlVGVpLmh0bWwiPkluY2x1ZGVUZWk8L0E+PC9CPjwvVEQ+Cis8VEQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPmluY2x1ZGU8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJNZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+Q3VzdG9tIHRhZyB0aGF0IHJldHJpZXZlcyBhbiBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcyBzdHJpbmcgKHdpdGgKKyBvcHRpb25hbCBwYXJhbWV0cmljIHJlcGxhY2VtZW50KSBmcm9tIHRoZSA8Y29kZT5BY3Rpb25SZXNvdXJjZXM8L2NvZGU+Cisgb2JqZWN0IHN0b3JlZCBhcyBhIGNvbnRleHQgYXR0cmlidXRlIGJ5IG91ciBhc3NvY2lhdGVkCisgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4gaW1wbGVtZW50YXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJQYWdlVGFnLmh0bWwiPlBhZ2VUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RGVmaW5lIGEgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgZXhwb3NlcyB0aGUgcmVxdWVzdGVkIHBhZ2UgY29udGV4dAorIGl0ZW0gYXMgYSBzY3JpcHRpbmcgdmFyaWFibGUgYW5kIGEgcGFnZSBzY29wZSBiZWFuLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUGFnZVRlaS5odG1sIj5QYWdlVGVpPC9BPjwvQj48L1REPgorPFREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5wYWdlPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUGFyYW1ldGVyVGFnLmh0bWwiPlBhcmFtZXRlclRhZzwvQT48L0I+PC9URD4KKzxURD5EZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIHZhbHVlKHMpIG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcmVjZWl2ZWQgd2l0aCB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJQYXJhbWV0ZXJUZWkuaHRtbCI+UGFyYW1ldGVyVGVpPC9BPjwvQj48L1REPgorPFREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5wYXJhbWV0ZXI8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSZXNvdXJjZVRhZy5odG1sIj5SZXNvdXJjZVRhZzwvQT48L0I+PC9URD4KKzxURD5EZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQKKyB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSZXNvdXJjZVRlaS5odG1sIj5SZXNvdXJjZVRlaTwvQT48L0I+PC9URD4KKzxURD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+cmVzb3VyY2U8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJTaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RGVmaW5lIGEgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBjb250YWluIHRoZSBudW1iZXIgb2YgZWxlbWVudHMKKyBmb3VuZCBpbiBhIHNwZWNpZmllZCBhcnJheSwgQ29sbGVjdGlvbiwgb3IgTWFwLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iU2l6ZVRlaS5odG1sIj5TaXplVGVpPC9BPjwvQj48L1REPgorPFREPkltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5zaXplPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iU3RydXRzVGFnLmh0bWwiPlN0cnV0c1RhZzwvQT48L0I+PC9URD4KKzxURD5EZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCBleHBvc2VzIHRoZSByZXF1ZXN0ZWQgU3RydXRzCisgaW50ZXJuYWwgY29uZmlndXJhdG9uIG9iamVjdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlN0cnV0c1RlaS5odG1sIj5TdHJ1dHNUZWk8L0E+PC9CPjwvVEQ+Cis8VEQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPnN0cnV0czwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IldyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPjwvQj48L1REPgorPFREPlRhZyB0aGF0IHJldHJpZXZlcyB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQgYmVhbiwgY29udmVydHMKKyBpdCB0byBhIFN0cmluZyByZXByZXNlbnRhdGlvbiAoaWYgbmVjZXNzYXJ5KSwgYW5kIHdyaXRlcyBpdCB0byB0aGUgY3VycmVudAorIG91dHB1dCBzdHJlYW0sIG9wdGlvbmFsbHkgZmlsdGVyaW5nIGNoYXJhY3RlcnMgdGhhdCBhcmUgc2Vuc2l0aXZlIGluIEhUTUwuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEEgTkFNRT0icGFja2FnZV9kZXNjcmlwdGlvbiI+PCEtLSAtLT48L0E+PEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbiBEZXNjcmlwdGlvbgorPC9IMj4KKworPFA+CitUaGUgInN0cnV0cy1iZWFuIiB0YWcgbGlicmFyeSBjb250YWlucyBKU1AgY3VzdG9tIHRhZ3MgdXNlZnVsIGluIGRlZmluaW5nCituZXcgYmVhbnMgKGluIGFueSBkZXNpcmVkIHNjb3BlKSBmcm9tIGEgdmFyaWV0eSBvZiBwb3NzaWJsZSBzb3VyY2VzLCBhcyB3ZWxsCithcyBhIHRhZyB0byByZW5kZXIgYSBwYXJ0aWN1bGFyIGJlYW4gKG9yIGJlYW4gcHJvcGVydHkpIHRvIHRoZSBvdXRwdXQgcmVzcG9uc2UuIAorPGJyPgorPGJyPgorIDxhIG5hbWU9ImRvYy5EZXNjcmlwdGlvbiI+PC9hPgorIAorPGRpdiBhbGlnbj0iQ2VudGVyIj4gPGEgaHJlZj0iI2RvYy5JbnRybyI+W0ludHJvZHVjdGlvbl08L2E+CisgPGEgaHJlZj0iI2RvYy5Qcm9wZXJ0aWVzIj5bQmVhbiBQcm9wZXJ0aWVzXTwvYT4KKyA8YSBocmVmPSIjZG9jLkNyZWF0aW9uIj5bQmVhbiBDcmVhdGlvbl08L2E+CisgPGEgaHJlZj0iI2RvYy5PdXRwdXQiPltCZWFuIE91dHB1dF08L2E+CisgPC9kaXY+CisgIAorPGhyPiAgPGEgbmFtZT0iZG9jLkludHJvIj48L2E+CisgCis8aDM+SW50cm9kdWN0aW9uPC9oMz4KKyAgCis8cD5NdWNoIG9mIHRoZSBwb3dlciBvZiBKYXZhU2VydmVyIFBhZ2VzIChKU1ApIHRlY2hub2xvZ3kgY29tZXMgZnJvbSB0aGUKK3NpbXBsZSBhbmQgcG93ZXJmdWwgbWVjaGFuaXNtcyBieSB3aGljaCB0aGUgc2VydmxldCB0aGF0IGlzIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IAorZnJvbSB5b3VyIEpTUCBzb3VyY2UgcGFnZSBjYW4gaW50ZXJhY3Qgd2l0aCBKYXZhQmVhbnMgdGhhdCByZXByZXNlbnQgdGhlIGNvbXB1dGF0aW9uYWwKK3N0YXRlIG9mIHlvdXIgYXBwbGljYXRpb24uICBJbiBzdGFuZGFyZCBKU1AgcGFnZXMsIHRoZSA8Y29kZT4mbHQ7anNwOnVzZUJlYW4mZ3Q7PC9jb2RlPgorIHRhZyBpcyB1c2VkIGNyZWF0ZSBhIGJlYW4gKGlmIG5lY2Vzc2FyeSksIGFzIHdlbGwgYXMgYSAic2NyaXB0aW5nIHZhcmlhYmxlIgordGhhdCBjYW4gYmUgdXNlZCB3aXRoaW4gc2NyaXB0bGV0cyB0byByZWZlciB0byB0aGVzZSBiZWFucy48L3A+CisgIAorPHA+VGhlICJzdHJ1dHMtYmVhbiIgdGFnIGxpYnJhcnkgcHJvdmlkZXMgc3Vic3RhbnRpYWwgZW5oYW5jZW1lbnRzIHRvIHRoZSAKK2Jhc2ljIGNhcGFiaWxpdHkgcHJvdmlkZWQgYnkgPGNvZGU+Jmx0O2pzcDp1c2VCZWFuJmd0OzwvY29kZT4sIGFzIGRpc2N1c3NlZCAKK2luIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnM6PC9wPgorIAorPHVsPgorIDxsaT48YSBocmVmPSIjZG9jLlByb3BlcnRpZXMiPkJlYW4gUHJvcGVydGllczwvYT4KKyAtIEV4dGVuZGVkIHN5bnRheCB0byByZWZlciB0byAgICAgSmF2YUJlYW4gcHJvcGVydGllcyB3aXRoIHNpbXBsZSBuYW1lcworKHNhbWUgYXMgdGhlIHN0YW5kYXJkIEpTUCB0YWdzICAgICA8Y29kZT4mbHQ7anNwOmdldFByb3BlcnR5Jmd0OzwvY29kZT4gYW5kIAorICAgIDxjb2RlPiZsdDtqc3A6c2V0UHJvcGVydHkmZ3Q7PC9jb2RlPiksIG5lc3RlZCBuYW1lcyAoYSBwcm9wZXJ0eSBuYW1lZCAKKyAgICA8Y29kZT5hZGRyZXNzLmNpdHk8L2NvZGU+IHJldHVybnMgdGhlIHZhbHVlIHJldHJpZXZlZCBieSB0aGUgSmF2YSAgIAorIGV4cHJlc3Npb24gPGNvZGU+Z2V0QWRkcmVzcygpLmdldENpdHkoKTwvY29kZT4pLCBhbmQgaW5kZXhlZCBuYW1lcyAgICAgKGEKK3Byb3BlcnR5IG5hbWVkIDxjb2RlPmFkZHJlc3NbM108L2NvZGU+IHJldHJpZXZlcyB0aGUgZm91cnRoIGFkZHJlc3MgICAgIGZyb20KK3RoZSBpbmRleGVkICJhZGRyZXNzIiBwcm9wZXJ0eSBvZiBhIGJlYW4pLjwvbGk+CisgPGxpPjxhIGhyZWY9IiNkb2MuQ3JlYXRpb24iPkJlYW4gQ3JlYXRpb248L2E+CisgLSBOZXcgSlNQIGJlYW5zLCBpbiBhbnkgc2NvcGUsICAgICBjYW4gYmUgY3JlYXRlZCBmcm9tIGEgdmFyaWV0eSBvZiBvYmplY3RzCithbmQgQVBJcyBhc3NvY2lhdGVkIHdpdGggdGhlICAgICBjdXJyZW50IHJlcXVlc3QsIG9yIHdpdGggdGhlIHNlcnZsZXQgY29udGFpbmVyCitpbiB3aGljaCB0aGlzIHBhZ2UgaXMgICAgIHJ1bm5pbmcuPC9saT4KKyA8bGk+PGEgaHJlZj0iI2RvYy5PdXRwdXQiPkJlYW4gT3V0cHV0PC9hPgorIC0gU3VwcG9ydHMgdGhlIHJlbmRlcmluZyBvZiB0ZXh0dWFsICAgICBvdXRwdXQgZnJvbSBhIGJlYW4gKG9yIGJlYW4gcHJvcGVydHkpLAord2hpY2ggd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgICAgIHJlc3BvbnNlIGJlaW5nIGNyZWF0ZWQgYnkgeW91ciBKU1AgcGFnZS48L2xpPgorIAorPC91bD4KKyAgCis8cD5TZWUgdGhlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9zdHJ1dHMtYmVhbi5odG1sIj5CZWFuIFRhZ3MgUmVmZXJlbmNlPC9hPgorIGZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYXZhaWxhYmxlIHRhZ3MgaW4gdGhpcyB0YWcgbGlicmFyeSwgYW5kCit0aGUgdmFsaWQgYXR0cmlidXRlcyBmb3IgZWFjaCB0YWcuPGJyPgorPGltZyBzcmM9ImRvYy1maWxlcy9iZWFuVU1MLmdpZiIgYWx0PSJCZWFuIFRhZyBVTUwiPgorPGJyPgorPC9wPgorICAgPGEgbmFtZT0iZG9jLlByb3BlcnRpZXMiPjwvYT4KKyAKKzxoMz5CZWFuIFByb3BlcnRpZXM8L2gzPgorICAKKzxoNT5Db21tb24gVGFnIEF0dHJpYnV0ZXM8L2g1PgorICAKKzxwPlRoZSB0YWdzIGluIHRoZSAic3RydXRzLWJlYW4iIHRhZyBsaWJyYXJ5IChhbmQsIGdlbmVyYWxseSwgaW4gYWxsIHRhZyBsaWJyYXJpZXMKK2luY2x1ZGVkIHdpdGggdGhlIFN0cnV0cyBmcmFtZXdvcmspIHNoYXJlIGEgY29tbW9uIHNldCBvZiB0YWcgYXR0cmlidXRlcwordGhhdCBoYXZlIHRoZSBzYW1lIG1lYW5pbmcsIG5vIG1hdHRlciB3aGF0IHRhZyB0aGV5IGFyZSB1c2VkIG9uLiBUaGVzZSBjb21tb24KK2F0dHJpYnV0ZXMgaW5jbHVkZTo8L3A+CisgCis8dWw+CisgPGxpPjxlbT5pZDwvZW0+IC0gTmFtZXMgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgICAgIGNyZWF0ZWQKK2J5IHRoaXMgY3VzdG9tIHRhZywgYXMgd2VsbCBhcyB0aGUga2V5IHZhbHVlIHVzZWQgdG8gbG9jYXRlIHRoaXMgICAgIGJlYW4KK2luIHRoZSBzY29wZSBkZWZpbmVkIGJ5IHRoZSA8Y29kZT5zY29wZTwvY29kZT4gYXR0cmlidXRlLjwvbGk+CisgPGxpPjxlbT5uYW1lPC9lbT4gLSBEZWZpbmVzIHRoZSBrZXkgdmFsdWUgYnkgd2hpY2ggYW4gZXhpc3RpbmcgYmVhbiB3aWxsCitiZSAgICAgbG9va2VkIHVwIGluIHRoZSBzY29wZSBkZWZpbmVkIGJ5IHRoZSA8Y29kZT5zY29wZTwvY29kZT4gYXR0cmlidXRlIAorICAgIChpZiBhbnkpLCBvciBieSBzZWFyY2hpbmcgdGhyb3VnaCB0aGUgdmFyaW91cyBzY29wZXMgaW4gdGhlIHN0YW5kYXJkIAorICAgb3JkZXIgKHBhZ2UsIHJlcXVlc3QsIHNlc3Npb24sIGFwcGxpY2F0aW9uKS48L2xpPgorIDxsaT48ZW0+cHJvcGVydHk8L2VtPiAtIERlZmluZXMgdGhlIG5hbWUgb2YgYSBKYXZhQmVhbnMgcHJvcGVydHksIG9mIHRoZQorSlNQICAgICBiZWFuIGlkZW50aWZpZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGFuZCAob3B0aW9uYWwpIDxjb2RlPnNjb3BlPC9jb2RlPgorICAgICBhdHRyaWJ1dGVzLCB3aG9zZSB2YWx1ZSBpcyB0byBiZSB1c2VkIGJ5IHRoaXMgY3VzdG9tIHRhZy4gIElmIG5vdCAgCisgIHNwZWNpZmllZCwgdGhlIGJlYW4gaWRlbnRpZmllZCBieSA8Y29kZT5uYW1lPC9jb2RlPiBpcyBpdHNlbGYgdXNlZCAgICAKK2FzIHRoZSB2YWx1ZSBvZiBpbnRlcmVzdC4gIFNlZSBiZWxvdyBmb3IgbW9yZSBkaXNjdXNzaW9uIGFib3V0IGhvdyBhICAgIAorcHJvcGVydHkgY2FuIGJlIHJlZmVyZW5jZWQuPC9saT4KKyA8bGk+PGVtPnNjb3BlPC9lbT4gLSBJZGVudGlmaWVzIHRoZSBKU1Agc2NvcGUgKCJwYWdlIiwgInJlcXVlc3QiLCAic2Vzc2lvbiIsIAorICAgIG9yICJhcHBsaWNhdGlvbiIgd2l0aGluIHdoaWNoIGEgcGFydGljdWxhciBiZWFuIHdpbGwgYmUgc2VhcmNoZWQgZm9yIAorICAgKHVuZGVyIHRoZSBrZXkgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUpIG9yIGNyZWF0ZWQgCisgICAgKHVuZGVyIHRoZSBrZXkgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5pZDwvY29kZT4gYXR0cmlidXRlKS4gIElmIG5vdCAKKyAgIHNwZWNpZmllZCwgYmVhbnMgd2lsbCBnZW5lcmFsbHkgYmUgc2VhcmNoZWQgZm9yIGluIHRoZSBvcmRlciBsaXN0ZWQgYWJvdmUsIAorICAgIG9yIGNyZWF0ZWQgaW4gcGFnZSBzY29wZS48L2xpPgorIAorPC91bD4KKyAgPGEgbmFtZT0iZG9jLlByb3BlcnRpZXMuUmVmZXJlbmNlcyI+PC9hPgorIAorPGg1PlByb3BlcnR5IFJlZmVyZW5jZXM8L2g1PgorICAKKzxwPlN0cnV0cyB0YWdzIHRoYXQgc3VwcG9ydCB0aGUgPGNvZGU+cHJvcGVydHk8L2NvZGU+IHRhZyBnZW5lcmFsbHkgYWxzbyByZWNvZ25pemUKK2EgcmljaCBzeW50YXggZm9yIGdldHRpbmcgYW5kIHNldHRpbmcgcHJvcGVydGllcy4gIFRoZXJlIGFyZSB0aHJlZSB0eXBlcworb2YgcmVmZXJlbmNlcyBzdXBwb3J0ZWQ6ICBzaW1wbGUsIG5lc3RlZCwgYW5kIGluZGV4ZWQuPC9wPgorICAKKzxwPjxlbT5TaW1wbGUgUmVmZXJlbmNlczwvZW0+IC0gVGhlc2UgYXJlIGVxdWl2YWxlbnQgdG8gdGhlIHN5bnRheCB5b3UgdXNlCit3aXRoIHRoZSBzdGFuZGFyZCA8Y29kZT4mbHQ7anNwOmdldFByb3BlcnR5Jmd0OzwvY29kZT4gYW5kIDxjb2RlPiZsdDtqc3A6c2V0UHJvcGVydHkmZ3Q7PC9jb2RlPgorIHRhZ3MuICBBIHJlZmVyZW5jZSB0byBhIHByb3BlcnR5IG5hbWVkICJmb28iIGlzIGNvbnZlcnRlZCBpbnRvIGEgbWV0aG9kCitjYWxsIHRvIDxjb2RlPmdldEZvbygpPC9jb2RlPiBvciA8Y29kZT5zZXRGb28odmFsdWUpPC9jb2RlPiAoYXMgYXBwcm9wcmlhdGUpLAordXNpbmcgdGhlIHN0YW5kYXJkIEphdmFCZWFucyBTcGVjaWZpY2F0aW9uIG5hbWluZyBjb252ZW50aW9ucyBmb3IgYmVhbiBwcm9wZXJ0aWVzLgorIFN0cnV0cyB1c2VzIHRoZSBzdGFuZGFyZCBKYXZhIGludHJvc3BlY3Rpb24gQVBJcyB0byBpZGVudGlmeSB0aGUgbmFtZXMgb2YKK3RoZSBhY3R1YWwgcHJvcGVydHkgZ2V0dGVyIGFuZCBzZXR0ZXIgbWV0aG9kcywgc28geW91ciBiZWFucyBjYW4gcHJvdmlkZWQKK2N1c3RvbWl6ZWQgbWV0aG9kIG5hbWVzIHRocm91Z2ggdGhlIHVzZSBvZiBhIDxjb2RlPkJlYW5JbmZvPC9jb2RlPiBjbGFzcy4KKyBTZWUgdGhlIEphdmFCZWFucyBTcGVjaWZpY2F0aW9uLCBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9qYXZhYmVhbnMvIj4KKyBodHRwOi8vamF2YS5zdW4uY29tL3Byb2R1Y3RzL2phdmFiZWFucy88L2E+CissIGZvciBtb3JlIGluZm9ybWF0aW9uLjwvcD4KKyAgCis8cD48ZW0+TmVzdGVkIFJlZmVyZW5jZXM8L2VtPiAtIE5lc3RlZCByZWZlcmVuY2VzIGFyZSB1c2VkIHRvIGFjY2VzcyBhIHByb3BlcnR5Cit0aHJvdWdoIGEgaGllcmFyY2h5IG9mIHByb3BlcnR5IG5hbWVzIHNlcGFyYXRlZCBieSBwZXJpb2RzICgiLiIpLCBzaW1pbGFyCit0byB0aGUgd2F5IHRoYXQgbmVzdGVkIHByb3BlcnRpZXMgYXJlIGFjY2Vzc2VkIGluIEphdmFTY3JpcHQuICBGb3IgZXhhbXBsZSwKK3RoZSBmb2xsb3dpbmcgcHJvcGVydHkgcmVmZXJlbmNlIGluIGEgZ2V0dGVyIChzdWNoIGFzIHRoZSA8Y29kZT4mbHQ7YmVhbjpkZWZpbmUmZ3Q7PC9jb2RlPgorIHRhZyBkaXNjdXNzZWQgYmVsb3cpOjwvcD4KKyAKKzxwcmU+ICAgIHByb3BlcnR5PSJmb28uYmFyLmJheiI8YnI+PC9wcmU+CisgCis8cD5pcyB0cmFuc2xhdGVkIGludG8gdGhlIGVxdWl2YWxlbnQgdGhlIEphdmEgZXhwcmVzc2lvbjo8L3A+CisgCis8cHJlPiAgICBnZXRGb28oKS5nZXRCYXIoKS5nZXRCYXooKTxicj48L3ByZT4KKyAKKzxwPklmIGEgbmVzdGVkIHJlZmVyZW5jZSBpcyB1c2VkIGluIGEgc2V0dGVyIChzdWNoIGFzIHdoZW4gYW4gaW5wdXQgZm9ybQoraXMgcHJvY2Vzc2VkKSwgdGhlIHByb3BlcnR5IHNldHRlciBpcyBjYWxsZWQgb24gdGhlIDxzdHJvbmc+bGFzdDwvc3Ryb25nPgorIHByb3BlcnR5IGluIHRoZSBjaGFpbi4gIEZvciB0aGUgYWJvdmUgcHJvcGVydHkgcmVmZXJlbmNlLCB0aGUgZXF1aXZhbGVudAorSmF2YSBleHByZXNzaW9uIHdvdWxkIGJlOjwvcD4KKyAKKzxwcmU+ICAgIGdldEZvbygpLmdldEJhcigpLnNldEJheih2YWx1ZSk8YnI+PC9wcmU+CisgIAorPHA+PGVtPkluZGV4ZWQgUmVmZXJlbmNlczwvZW0+IC0gU3Vic2NyaXB0cyBjYW4gYmUgdXNlZCB0byBhY2Nlc3MgaW5kaXZpZHVhbCAKK2VsZW1lbnRzIG9mIHByb3BlcnRpZXMgd2hvc2UgdmFsdWUgaXMgYWN0dWFsbHkgYW4gYXJyYXksIG9yIHdob3NlIHVuZGVybHlpbmcgCitKYXZhQmVhbiBvZmZlcnMgaW5kZXhlZCBnZXR0ZXIgYW5kIHNldHRlciBtZXRob2RzLiAgRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgCitwcm9wZXJ0eSByZWZlcmVuY2UgaW4gYSBnZXR0ZXIgKHN1Y2ggYXMgdGhlIDxjb2RlPiZsdDtiZWFuOmRlZmluZSZndDs8L2NvZGU+CisgdGFnIGRpc2N1c3NlZCBiZWxvdyk6PC9wPgorIAorPHByZT4gICAgcHJvcGVydHk9ImZvb1syXSI8YnI+PC9wcmU+CisgCis8cD5pcyB0cmFuc2xhdGVkIGludG8gdGhlIGVxdWl2YWxlbnQgb2YgdGhlIEphdmEgZXhwcmVzc2lvbjo8L3A+CisgCis8cHJlPiAgICBnZXRGb28oMik7PGJyPjwvcHJlPgorIAorPHA+d2hpbGUgdGhlIHNhbWUgcHJvcGVydHkgcmVmZXJlbmNlIGluIGEgc2V0dGVyIHdvdWxkIGNhbGwgdGhlIGVxdWl2YWxlbnQKK29mOjwvcD4KKyAKKzxwcmU+ICAgIHNldEZvbygyLCB2YWx1ZSk8YnI+PC9wcmU+CisgCis8cD5BcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBhYm92ZSB0cmFuc2xhdGlvbnMsIHRoZSBzdWJzY3JpcHRzIHVzZWQgaW4gaW5kZXhlZCAKK3JlZmVyZW5jZXMgYXJlIDxzdHJvbmc+emVybyByZWxhdGl2ZTwvc3Ryb25nPiAodGhhdCBpcywgdGhlIGZpcnN0IGVsZW1lbnQKK2luIGFuIGFycmF5IGlzIDxjb2RlPmZvb1swXTwvY29kZT4pLCBqdXN0IGFzIGlzIHRydWUgaW4gdGhlIEphdmEgbGFuZ3VhZ2UuPC9wPgorICAKKzxwPjxlbT5Db21iaW5lZCBSZWZlcmVuY2VzPC9lbT4gLSBOZXN0aW5nIGFuZCBpbmRleGluZyBjYW4gYmUgY29tYmluZWQgaW4gCithcmJpdHJhcnkgd2F5cywgc28gdGhhdCBleHByZXNzaW9ucyBsaWtlIDxjb2RlPmZvby5iYXJbMF0uYmF6WzJdPC9jb2RlPiBhcmUgCitsZWdhbC4gIFlvdSBtdXN0IGJlIGNhcmVmdWwsIG9mIGNvdXJzZSwgdG8gZW5zdXJlIHRoYXQgdGhlIGFjdHVhbCBiZWFucyBiZWluZyAKK2FjY2Vzc2VkIGJ5IHRoZXNlIHJlZmVyZW5jZXMgaGF2ZSBwcm9wZXJ0aWVzIG9mIHRoZSBhcHByb3ByaWF0ZSBuYW1lcyBhbmQgCit0eXBlcy4gIE90aGVyd2lzZSwgSlNQIHJ1bnRpbWUgZXhjZXB0aW9ucyB3aWxsIGJlIHRocm93bi48L3A+CisgIAorPHA+U2VlIHRoZSBKYXZhRG9jcyBmb3IgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2JlYW51dGlscy9hcGkvb3JnL2FwYWNoZS9jb21tb25zL2JlYW51dGlscy9Qcm9wZXJ0eVV0aWxzLmh0bWwiPlByb3BlcnR5VXRpbHM8L2E+CisgZm9yIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIG1lY2hhbmlzbXMgdGhhdCBTdHJ1dHMgdXNlcyB0byBhY2Nlc3MgCitwcm9wZXJ0aWVzIGluIGEgZ2VuZXJhbCB3YXksIHRocm91Z2ggSmF2YSByZWZsZWN0aW9uIEFQSXMuPC9wPgorICAKKzxocj4gIDxhIG5hbWU9ImRvYy5DcmVhdGlvbiI+PC9hPgorIAorPGgzPkJlYW4gQ3JlYXRpb248L2gzPgorICAKKzxoNT5JbnRyb2R1Y3Rpb248L2g1PgorICAKKzxwPk5ldyBiZWFucyBjYW4gYmUgY3JlYXRlZCwgYW5kIGludHJvZHVjZWQgaW50byBvbmUgb2YgdGhlIGZvdXIgc3RhbmRhcmQgCitKU1Agc2NvcGVzIChwYWdlLCByZXF1ZXN0LCBzZXNzaW9uLCBhbmQgYXBwbGljYXRpb24pIHRocm91Z2ggYSB2YXJpZXR5IG9mIAordGVjaG5pcXVlcy4gIFRoZSBmb2xsb3dpbmcgc3Vic2VjdGlvbnMgZGVzY3JpYmUgdGhlIHVzZSBvZiB0aGUgZm9sbG93aW5nIGFwcHJvYWNoZXM6PC9wPgorIAorPHVsPgorIDxsaT5KYXZhIENvZGUgaW4gQWN0aW9uIENsYXNzZXM8L2xpPgorIDxsaT5KYXZhIENvZGUgaW4gU2NyaXB0bGV0czwvbGk+CisgPGxpPlRoZSBTdGFuZGFyZCA8Y29kZT4mbHQ7anNwOnVzZUJlYW4mZ3Q7PC9jb2RlPiBUYWc8L2xpPgorIDxsaT5UaGUgU3RydXRzIDxjb2RlPiZsdDtiZWFuOmRlZmluZSZndDs8L2NvZGU+IFRhZzwvbGk+CisgPGxpPk90aGVyIFN0cnV0cyBDb3B5aW5nIFRhZ3M8L2xpPgorIAorPC91bD4KKyAgCis8aDU+SmF2YSBDb2RlIGluIEFjdGlvbiBDbGFzc2VzPC9oNT4KKyAgCis8cD5CZWNhdXNlIHRoZSBKU1AgcGFnZXMgYXJlIGNvbXBpbGVkIGludG8gU2VydmxldHMsIHlvdXIgPGNvZGU+QWN0aW9uPC9jb2RlPgorIGNsYXNzZXMgdGhhdCBhcmUgaW52b2tlZCBieSB0aGUgU3RydXRzIGNvbnRyb2xsZXIgc2VydmxldCBoYXZlIGNvbnZlbmllbnQgCithY2Nlc3MgdG8gdGhyZWUgb2YgdGhlIGZvdXIgc3RhbmRhcmQgSlNQIHNjb3BlcyAocmVxdWVzdCwgc2Vzc2lvbiwgYW5kIGFwcGxpY2F0aW9uKS4KKyBJdCBpcyB2ZXJ5IGNvbW1vbiBwcmFjdGljZSBmb3IgdGhlIGJ1c2luZXNzIGxvZ2ljIGNvbnRhaW5lZCBpbiB5b3VyIDxjb2RlPgorQWN0aW9uPC9jb2RlPiBjbGFzcyB0byBjcmVhdGUgcmVzdWx0cyB0aGF0IGFyZSBzdG9yZWQgaW4gcmVxdWVzdCBvciBzZXNzaW9uCitzY29wZSwgd2hpY2ggd2lsbCBiZSB1c2VkIGJ5IGEgSlNQIHBhZ2UgeW91IGZvcndhcmQgY29udHJvbCB0byBpbiByZW5kZXJpbmcKK3RoZSBuZXh0IHBhZ2Ugb2YgdGhlIHVzZXIgaW50ZXJmYWNlLjwvcD4KKyAgCis8cD48ZW0+UmVxdWVzdCBTY29wZTwvZW0+IC0gVG8gc3RvcmUgYSBiZWFuIGluIHJlcXVlc3Qgc2NvcGUgdW5kZXIgbmFtZSAiY3VzdCIsIAoreW91ciA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzIHdvdWxkIGV4ZWN1dGUgY29kZSBzaW1pbGFyIHRvIHRoaXM6PC9wPgorIAorPHByZT4gICAgQ3VzdG9tZXIgY3VzdG9tZXIgPSAuLi4gY3JlYXRlIG9yIGFjcXVpcmUgYSBjdXN0b21lciByZWZlcmVuY2UgLi4uOzxicj4gICAgcmVxdWVzdC5zZXRBdHRyaWJ1dGUoImN1c3QiLCBjdXN0b21lcik7PGJyPjwvcHJlPgorICAKKzxwPjxlbT5TZXNzaW9uIFNjb3BlPC9lbT4gLSBUbyBzdG9yZSBhIGJlYW4gaW4gc2Vzc2lvbiBzY29wZSB1bmRlciBuYW1lICJ1c2VyIiAKKyhwZXJoYXBzIGluIGEgbG9nb24gYWN0aW9uKSwgeW91ciA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzIHdvdWxkIGV4ZWN1dGUKK2NvZGUgc2ltaWxhciB0byB0aGlzOjwvcD4KKyAKKzxwcmU+ICAgIFVzZXIgdXNlciA9IC4uLiBsb29rIHVwIHZhbGlkIHVzZXIgaW4gdGhlIGRhdGFiYXNlIC4uLjs8YnI+ICAgIEh0dHBTZXNzaW9uIHNlc3Npb24gPSByZXF1ZXN0LmdldFNlc3Npb24oKTs8YnI+ICAgIHNlc3Npb24uc2V0QXR0cmlidXRlKCJ1c2VyIiwgdXNlcik7PGJyPjwvcHJlPgorICAKKzxwPjxlbT5BcHBsaWNhdGlvbiBTY29wZTwvZW0+IC0gR2VuZXJhbGx5LCBhcHBsaWNhdGlvbiBzY29wZSBiZWFucyBhcmUgaW5pdGlhbGl6ZWQKK2luIHRoZSA8Y29kZT5pbml0KCk8L2NvZGU+IG1ldGhvZCBvZiBhIHN0YXJ0dXAgc2VydmxldC4gIEhvd2V2ZXIsIGl0IGlzIGxlZ2FsCitmb3IgYW4gPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcyB0byBjcmVhdGUgc3VjaCBiZWFucywgaWYgdGhpcyBpcyBhcHByb3ByaWF0ZSwKK2xpa2UgdGhpczo8L3A+CisgCis8cHJlPiAgICBGb28gZm9vID0gLi4uIGNyZWF0ZSBhIEZvbyAuLi47PGJyPiAgICBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkuc2V0QXR0cmlidXRlKCJmb28iLCBmb28pOzxicj48L3ByZT4KKyAgCis8aDU+SmF2YSBDb2RlIGluIFNjcmlwdGxldHM8L2g1PgorICAKKzxwPldoaWxlIGl0IGlzIG5vdCBhIHJlY29tbWVuZGVkIHByYWN0aWNlIGluIFN0cnV0cy1iYXNlZCBhcHBsaWNhdGlvbnMgKGJlY2F1c2UKK2RldmVsb3BlcnMgd2lsbCBiZSB0ZW1wdGVkIHRvIG1peCBidXNpbmVzcyBsb2dpYyBhbmQgcHJlc2VudGF0aW9uIGxvZ2ljIGluCit0aGVpciBKU1AgcGFnZXMpLCBpdCBpcyBsZWdhbCBmb3Igc2NyaXB0bGV0IGNvZGUgaW4gYSBKU1AgcGFnZSB0byBjcmVhdGUKK25ldyBKYXZhQmVhbnMgZHluYW1pY2FsbHksIGFuZCBhZGQgdGhlbSB0byBhbnkgb2YgdGhlIGZvdXIgcG9zc2libGUgc2NvcGVzLAorYXMgZGVtb25zdHJhdGVkIGluIHRoZSBjb2RlIGV4YW1wbGVzIGJlbG93OjwvcD4KKyAgCis8cD48ZW0+UGFnZSBTY29wZTwvZW0+IC0gVG8gc3RvcmUgYSBiZWFuIGluIHBhZ2Ugc2NvcGUgdW5kZXIgbmFtZSAiZm9vIiwgeW91cgorc2NyaXB0bGV0IG11c3QgZXhlY3V0ZSBjb2RlIGxpa2UgdGhpczo8L3A+CisgCis8cHJlPiZsdDslPGJyPiAgICBGb28gZm9vID0gLi4uIGNyZWF0ZSBhIGZvbyAuLi47PGJyPiAgICBwYWdlQ29udGV4dC5zZXRBdHRyaWJ1dGUoImZvbyIsIGZvbywgUGFnZUNvbnRleHQuUEFHRV9TQ09QRSk7PGJyPiUmZ3Q7PGJyPjwvcHJlPgorICAKKzxwPjxlbT5SZXF1ZXN0IFNjb3BlPC9lbT4gLSBUbyBzdG9yZSBhIGJlYW4gaW4gcmVxdWVzdCBzY29wZSB1bmRlciBuYW1lICJjdXN0IiwgCit5b3VyIHNjcmlwbGV0IG11c3QgZXhlY3V0ZSBjb2RlIGxpa2UgdGhpczo8L3A+CisgCis8cHJlPiZsdDslPGJyPiAgICBDdXN0b21lciBjdXN0b21lciA9IC4uLiBjcmVhdGUgb3IgYWNxdWlyZSBhIGN1c3RvbWVyIHJlZmVyZW5jZSAuLi47PGJyPiAgICBwYWdlQ29udGV4dC5zZXRBdHRyaWJ1dGUoImN1c3QiLCBjdXN0b21lciwgUGFnZUNvbnRleHQuUkVRVUVTVF9TQ09QRSk7PGJyPiUmZ3Q7PGJyPjwvcHJlPgorICAKKzxwPjxlbT5TZXNzaW9uIFNjb3BlPC9lbT4gLSBUbyBzdG9yZSBhIGJlYW4gaW4gc2Vzc2lvbiBzY29wZSB1bmRlciBuYW1lICJ1c2VyIiwgCisocGVyaGFwcyBhcyBhIHJlc3VsdCBvZiBhIHZhbGlkYXRlZCBsb2dpbiksIHlvdXIgc2NyaXBsZXQgbXVzdCBleGVjdXRlIGNvZGUgCitsaWtlIHRoaXM6PC9wPgorIAorPHByZT4mbHQ7JTxicj4gICAgVXNlciB1c2VyID0gLi4uIGxvb2sgdXAgdmFsaWQgdXNlciBpbiB0aGUgZGF0YWJhc2UgLi4uOzxicj4gICAgcGFnZUNvbnRleHQuc2V0QXR0cmlidXRlKCJ1c2VyIiwgdXNlciwgUGFnZUNvbnRleHQuU0VTU0lPTl9TQ09QRSk7PGJyPiUmZ3Q7PGJyPjwvcHJlPgorICAKKzxwPjxlbT5BcHBsaWNhdGlvbiBTY29wZTwvZW0+IC0gR2VuZXJhbGx5LCBhcHBsaWNhdGlvbiBzY29wZSBiZWFucyBhcmUgaW5pdGlhbGl6ZWQKK2luIHRoZSA8Y29kZT5pbml0KCk8L2NvZGU+IG1ldGhvZCBvZiBhIHN0YXJ0dXAgc2VydmxldC4gIEhvd2V2ZXIsIGEgc2NyaXB0bGV0CitjYW4gY3JlYXRlIHN1Y2ggYmVhbnMsIGlmIGFwcHJvcHJpYXRlLCBsaWtlIHRoaXM6PC9wPgorIAorPHByZT4mbHQ7JTxicj4gICAgRm9vIGZvbyA9IC4uLiBjcmVhdGUgYSBGb28gLi4uOzxicj4gICAgcGFnZUNvbnRleHQuc2V0QXR0cmlidXRlKCJmb28iLCBmb28sIFBhZ2VDb250ZXh0LkFQUExJQ0FUSU9OX1NDT1BFKTs8YnI+JSZndDs8YnI+PC9wcmU+CisgIAorPHA+PHN0cm9uZz5OT1RFPC9zdHJvbmc+IC0gQXMgbWVudGlvbmVkIGFib3ZlLCB1c2luZyBzY3JpcHRsZXRzIGluIHlvdXIgSlNQIAorcGFnZXMgaXMgc3Ryb25nbHkgZGlzY291cmFnZWQgaW4gYSBTdHJ1dHMgYmFzZWQgYXBwbGljYXRpb24sIHVubGVzcyB5b3UgYXJlIAorZXhlY3V0aW5nIGNvZGUgdGhhdCBpcyA8c3Ryb25nPm9ubHk8L3N0cm9uZz4gcmVsYXRlZCB0byBwcmVzZW50YXRpb24gb2YgZXhpc3RpbmcKK2RhdGEuICBJbiBnZW5lcmFsLCB5b3VyIGFwcGxpY2F0aW9uJ3MgcHJvY2Vzc2luZyBsb2dpYyBzaG91bGQgYmUgZW5jYXBzdWxhdGVkCitpbiA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzZXMgKG9yIGluIGJlYW5zIG9yIEVKQnMgY2FsbGVkIGJ5IHRob3NlIGNsYXNzZXMpLAorcmF0aGVyIHRoYW4gYmVpbmcgaW50ZXJtaXhlZCBpbiB5b3VyIEpTUCBwYWdlcy48L3A+CisgIAorPGg1PlRoZSBTdGFuZGFyZCA8Y29kZT4mbHQ7anNwOnVzZUJlYW4mZ3Q7PC9jb2RlPiBUYWc8L2g1PgorICAKKzxwPkphdmFTZXJ2ZXIgUGFnZXMgKEpTUCkgb2ZmZXJzIGEgc3RhbmRhcmQgdGFnLCA8Y29kZT4mbHQ7anNwOnVzZUJlYW4mZ3Q7PC9jb2RlPgorIHRoYXQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgbmV3IGJlYW4sIG9yIGludHJvZHVjZSBhIHJlZmVyZW5jZSB0byBhbiBleGlzdGluZworYmVhbiwgaW50byBhIEpTUCBwYWdlLiAgQmVhbnMgKG9yIGJlYW4gcmVmZXJlbmNlcykgaW50cm9kdWNlZCB0aHJvdWdoIHRoaXMKK21lY2hhbmlzbSBhcmUgY29tcGxldGVseSBpbnRlcm9wZXJhYmxlIHdpdGggYmVhbnMgY3JlYXRlZCBieSBhbnkgb2YgdGhlIFN0cnV0cworY3JlYXRpb24gdGVjaG5pcXVlcyBkZXNjcmliZWQgaW4gdGhpcyBzZWN0aW9uLjwvcD4KKyAgCis8cD5Zb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHVzZSA8Y29kZT4mbHQ7anNwOnVzZUJlYW4mZ3Q7PC9jb2RlPiB0byBpbnRyb2R1Y2UgCithIHJlZmVyZW5jZSB0byBhbiBleGlzdGluZyBiZWFuLCBpZiB5b3Ugd2lzaCB0byByZWZlcmVuY2UgdGhhdCBiZWFuIHdpdGgKK290aGVyIHN0YW5kYXJkIEpTUCB0YWdzIChzdWNoIGFzIDxjb2RlPiZsdDtqc3A6Z2V0UHJvcGVydHkmZ3Q7PC9jb2RlPiBvciA8Y29kZT4KKyZsdDtqc3A6c2V0UHJvcGVydHkmZ3Q7PC9jb2RlPikuICBJZiB5b3Ugb25seSB3aXNoIHRvIHJlZmVyZW5jZSBzdWNoIGJlYW5zCit3aXRoIG90aGVyIFN0cnV0cyB0YWdzLCB1c2Ugb2YgPGNvZGU+Jmx0O2pzcDp1c2VCZWFuJmd0OzwvY29kZT4gaXMgbm90IHJlcXVpcmVkLjwvcD4KKyAgCis8cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgPGNvZGU+Jmx0O2pzcDp1c2VCZWFuJmd0OzwvY29kZT4gdGFnLCBzZWUgCit0aGUgSmF2YVNlcnZlciBQYWdlcyBTcGVjaWZpY2F0aW9uLCBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9qc3AvZG93bmxvYWQuaHRtbCI+CisgaHR0cDovL2phdmEuc3VuLmNvbS9wcm9kdWN0cy9qc3AvZG93bmxvYWQuaHRtbDwvYT4KKy48L3A+CisgIAorPGg1PlRoZSBTdHJ1dHMgPGNvZGU+Jmx0O2JlYW46ZGVmaW5lJmd0OzwvY29kZT4gVGFnPC9oNT4KKyAgCis8cD5TdHJ1dHMgcHJvdmlkZXMgYSBwb3dlcmZ1bCwgZ2VuZXJhbCBwdXJwb3NlLCB0YWcgKDxjb2RlPiZsdDtiZWFuOmRlZmluZSZndDs8L2NvZGU+CispIHRoYXQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgbmV3IGJlYW4sIGluIGFueSBzY29wZSwgYnkgY29weWluZyBhbm90aGVyCitiZWFuIChvciB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IG9mIGFub3RoZXIgYmVhbikuICBUaGlzIHRhZyBzdXBwb3J0cyB0aGUKKyJwcm9wZXJ0eSIgYXR0cmlidXRlLCBhbmQgdGhlcmVmb3JlIGFsbCB0aGUgcG93ZXIgb2YgcHJvcGVydHkgcmVmZXJlbmNlcywKK2FzIGRpc2N1c2VkIDxhIGhyZWY9IiNkb2MuUHJvcGVydGllcy5SZWZlcmVuY2VzIj5hYm92ZTwvYT4KKy4gIEl0IGNhbiBiZSB1c2VkIGluIGEgdmFyaWV0eSBvZiBkaWZmZXJlbnQgd2F5cywgZGVzY3JpYmVkIGZ1cnRoZXIgYmVsb3cuCisgVW5sZXNzIHlvdSBzcGVjaWZ5IHRoZSAidG9TY29wZSIgYXR0cmlidXRlLCBhbGwgZGVmaW5lZCBiZWFucyB3aWxsIGJlIGNyZWF0ZWQKK2luIHBhZ2Ugc2NvcGUuPC9wPgorICAKKzxwPjxlbT5JbnRyb2R1Y2UgQSBTdHJpbmcgQ29uc3RhbnQ8L2VtPiAtIFlvdSBjYW4gY3JlYXRlIGEgbmV3IGJlYW4gdGhhdAoraGFzIGEgY29uc3RhbnQgU3RyaW5nIHZhbHVlIChvciB0aGUgcmVzdWx0IG9mIGNhbGN1bGF0aW5nIGEgcnVudGltZSBleHByZXNzaW9uKTogCis8L3A+CisgCis8cHJlPiAgICAmbHQ7YmVhbjpkZWZpbmUgaWQ9ImZvbyIgdmFsdWU9IlRoaXMgaXMgYSBuZXcgU3RyaW5nIi8mZ3Q7PGJyPiAgICAmbHQ7YmVhbjpkZWZpbmUgaWQ9ImJhciIgdmFsdWU9JyZsdDslPSAiSGVsbG8sICIgKyB1c2VyLmdldE5hbWUoKSAlJmd0OycvJmd0Ozxicj4gICAgJmx0O2JlYW46ZGVmaW5lIGlkPSJsYXN0IiBzY29wZT0ic2Vzc2lvbiI8YnI+ICAgICAgICAgICAgICAgICB2YWx1ZT0nJmx0OyU9IHJlcXVlc3QuZ2V0UmVxdWVzdFVSSSgpICUmZ3Q7Jy8mZ3Q7PGJyPjwvcHJlPgorICAKKzxwPjxlbT5Db3B5IEFuIEV4aXN0aW5nIEJlYW48L2VtPiAtIFlvdSBjYW4gY3JlYXRlIGEgbmV3IHJlZmVyZW5jZSB0byBhbiBleGlzdGluZworYmVhbiBvYmplY3QuICBZb3UgY2FuIHNwZWNpZnkgdGhlIEphdmEgY2xhc3Mgb3IgaW50ZXJmYWNlIHRoZSBuZXcgYmVhbiBpcworZXhwZWN0ZWQgdG8gY29uZm9ybSB0byB3aXRoIHRoZSAidHlwZSIgYXR0cmlidXRlLCBvciBhY2NlcHQgdGhlIGRlZmF1bHQgdHlwZQorb2YgPGNvZGU+amF2YS5sYW5nLk9iamVjdDwvY29kZT4gKHRoaXMgb25seSBhZmZlY3RzIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUKK3RoYXQgaXMgZXhwb3NlZCB0byBzY3JpcHRsZXRzLCBzbyBpdCBpcyBub3QgZ2VuZXJhbGx5IG1lYW5pbmdmdWwgaW4gU3RydXRzLWJhc2VkCithcHBsaWNhdGlvbnMpLjwvcD4KKyAKKzxwcmU+ICAgICZsdDtiZWFuOmRlZmluZSBpZD0iZm9vIiBuYW1lPSJiYXIiLyZndDs8YnI+ICAgICZsdDtiZWFuOmRlZmluZSBpZD0iYmF6IiBuYW1lPSJib3AiIHR5cGU9ImNvbS5teWNvbXBhbnkuTXlCb3BDbGFzcyIvJmd0Ozxicj48L3ByZT4KKyAgCis8cD48ZW0+Q29weSBBbiBFeGlzdGluZyBCZWFuIFByb3BlcnR5PC9lbT4gLSBZb3UgY2FuIGNyZWF0ZSBhIG5ldyBiZWFuIHRoYXQgCitpcyBpbml0aWFsaXplZCB0byB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgYSBwcm9wZXJ0eSBnZXR0ZXIuICBUaGUgdmFsdWUgb2YKK3RoZSAicHJvcGVydHkiIGF0dHJpYnV0ZSBjYW4gYmUgYW55IHNpbXBsZSwgbmVzdGVkLCBvciBpbmRleGVkIHByb3BlcnR5IHJlZmVyZW5jZSAKK3RoYXQgZm9sbG93cyB0aGUgcnVsZXMgZGVzY3JpYmVkIGVhcmxpZXIuICBJbiB0aGUgZmlyc3QgZXhhbXBsZSBiZWxvdywgd2UgCithbHNvIGlsbHVzdHJhdGUgYWNjZXNzaW5nIHRoZSBwcm9wZXJ0eSBvZiBhIHJlcXVlc3Qgc2NvcGUgYmVhbiwgYW5kIGNyZWF0aW5nIAordGhlIG5ldyBiZWFuIGluIHNlc3Npb24gc2NvcGUgKHJhdGhlciB0aGFuIHRoZSBkZWZhdWx0IHBhZ2Ugc2NvcGUpLjwvcD4KKyAKKzxwcmU+ICAgICZsdDtiZWFuOmRlZmluZSBpZD0iZm9vIiBuYW1lPSJiYXIiIHByb3BlcnR5PSJiYXoiIHNjb3BlPSJyZXF1ZXN0Ijxicj4gICAgIHRvU2NvcGU9InNlc3Npb24iLyZndDs8YnI+ICAgICZsdDtiZWFuOmRlZmluZSBpZD0iYm9wIiBuYW1lPSJ1c2VyIiBwcm9wZXJ0eT0icm9sZVszXS5uYW1lIi8mZ3Q7PGJyPjwvcHJlPgorICAKKzxoNT5PdGhlciBTdHJ1dHMgQ29weWluZyBUYWdzPC9oNT4KKyAgCis8cD5TdHJ1dHMgb2ZmZXJzIGEgdmFyaWV0eSBvZiBiZWFuIGNyZWF0aW9uIHRhZ3MgdGhhdCBjb3B5IGV4aXN0aW5nIGJlYW5zCisob3IgYmVhbiBwcm9wZXJ0aWVzKSBmcm9tIHRoZSBlbnZpcm9ubWVudCB3aXRoaW4gd2hpY2ggdGhpcyBwYWdlIGlzIHJ1bm5pbmcsCithbmQgdGhlIHJlcXVlc3QgdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgcHJvY2Vzc2VkLiAgTm90IGFsbCBvZiB0aGUgYXR0cmlidXRlcyAKK2ZvciBlYWNoIHRhZyBhcmUgaWxsdXN0cmF0ZWQgaW4gdGhlIGV4YW1wbGVzIGJlbG93IC0gc2VlIHRoZSA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWJlYW4uaHRtbCI+CitCZWFuIFRhZ3MgUmVmZXJlbmNlPC9hPgorIGZvciBtb3JlIGluZm9ybWF0aW9uLiAgQW55IGJlYW4gY3JlYXRlZCBieSB0aGVzZSB0YWdzIGV4aXN0cyBvbmx5IGluIHBhZ2UgCitzY29wZSwgZm9yIHRoZSByZW1haW5kZXIgb2YgdGhlIGN1cnJlbnQgcGFnZS48L3A+CisgIAorPHA+PGVtPkNvcHkgQSBDb29raWU8L2VtPiAtIFlvdSBjYW4gY3JlYXRlIGEgbmV3IGJlYW4gY29udGFpbmluZyBhIDxjb2RlPgoramF2YXguc2VydmxldC5odHRwLkNvb2tpZTwvY29kZT4gdGhhdCB3YXMgaW5jbHVkZWQgaW4gdGhlIGN1cnJlbnQgcmVxdWVzdC4KKyBJZiBubyBjb29raWUgb2YgdGhlIHNwZWNpZmllZCBuYW1lIHdhcyBpbmNsdWRlZCwgYSByZXF1ZXN0IHRpbWUgZXhwcmVzc2lvbgord2lsbCBiZSB0aHJvd24gLSB0aGVyZWZvcmUsIGl0IGlzIGNvbW1vbiB0byBuZXN0IHRoZSB1c2Ugb2YgdGhpcyB0YWcgaW5zaWRlCithIDxjb2RlPiZsdDtsb2dpYzpwcmVzZW50IGNvb2tpZT0ieHh4IiZndDs8L2NvZGU+IHRhZyB0byBlbnN1cmUgdGhhdCB0aGUKK2Nvb2tpZSB3YXMgcmVhbGx5IGluY2x1ZGVkLiAgSWYgdGhlcmUgaXMgdGhlIHBvc3NpYmlsaXR5IHRoYXQgbW9yZSB0aGFuIG9uZQorY29va2llIG9mIHRoZSBzYW1lIG5hbWUgd2FzIGluY2x1ZGVkLCBzcGVjaWZ5IHRoZSAibXVsdGlwbGUiIGF0dHJpYnV0ZSAoYW5kCit0aGUgcmVzdWx0aW5nIGJlYW4gd2lsbCBiZSBhbiBhcnJheSBvZiBDb29raWVzLCBpbnN0ZWFkIG9mIGEgc2luZ2xlIENvb2tpZSkuPC9wPgorIAorPHByZT4gICAgJmx0O2JlYW46Y29va2llIGlkPSJmb28iIG5hbWU9ImNvb2tpZW5hbWUiLyZndDs8YnI+ICAgICZsdDtiZWFuOmNvb2tpZSBpZD0iYWxsIiBuYW1lPSJKU0VTU0lPTklEIiBtdWx0aXBsZT0idHJ1ZSIvJmd0Ozxicj48L3ByZT4KKyAgCis8cD48ZW0+Q29weSBBIFJlcXVlc3QgSGVhZGVyPC9lbT4gLSBZb3UgY2FuIGNyZWF0ZSBhIG5ldyBiZWFuIGNvbnRhaW5pbmcKK3RoZSB2YWx1ZSBvZiBhbiBIVFRQIGhlYWRlciBpbmNsdWRlZCBpbiB0aGlzIHJlcXVlc3QuICBJZiBubyBoZWFkZXIgb2YgdGhlIAorc3BlY2lmaWVkIG5hbWUgd2FzIGluY2x1ZGVkLCBhIHJlcXVlc3QgdGltZSBleGNlcHRpb24gd2lsbCBiZSB0aHJvd24gLSB0aGVyZWZvcmUsCitpdCBpcyBjb21tb24gdG8gbmVzdCB0aGUgdXNlIG9mIHRoaXMgdGFnIGluc2lkZSBhIDxjb2RlPiZsdDtsb2dpYzpwcmVzZW50CitoZWFkZXI9Inh4eCImZ3Q7PC9jb2RlPiB0YWcgdG8gZW5zdXJlIHRoYXQgdGhlIGhlYWRlciB3YXMgcmVhbGx5IGluY2x1ZGVkLgorIElmIHRoZXJlIGlzIHRoZSBwb3NzaWJpbGl0eSB0aGF0IG1vcmUgdGhhbiBvbmUgaGVhZGVyIG9mIHRoZSBzYW1lIG5hbWUgd2FzCitpbmNsdWRlZCwgc3BlY2lmeSB0aGUgIm11bHRpcGxlIiBhdHRyaWJ1dGUgKGFuZCB0aGUgcmVzdWx0aW5nIHZhbHVlIGJlYW4KK3dpbGwgYmUgYW4gYXJyYXkgb2YgU3RyaW5nIHZhbHVlcywgaW5zdGVhZCBvZiBhIHNpbmdsZSBTdHJpbmcpLjwvcD4KKyAKKzxwcmU+ICAgICZsdDtiZWFuOmhlYWRlciBpZD0iYWdlbnQiIG5hbWU9IlVzZXItQWdlbnQiLyZndDs8YnI+ICAgICZsdDtiZWFuOmhlYWRlciBpZD0ibGFuZ3VhZ2VzIiBuYW1lPSJBY2NlcHQtTGFuZ3VhZ2UiIG11bHRpcGxlPSJ0cnVlIi8mZ3Q7PGJyPjwvcHJlPgorICAKKzxwPjxlbT5Db3B5IEEgRHluYW1pY2FsbHkgQ3JlYXRlZCBSZXNwb25zZTwvZW0+IC0gWW91IGNhbiBnZW5lcmF0ZSBhbiBpbnRlcm5hbCAKK3JlcXVlc3QgdG8gdGhlIGFwcGxpY2F0aW9uIHlvdSBhcmUgcnVubmluZywgYW5kIHR1cm4gdGhlIHJlc3BvbnNlIGRhdGEgdGhhdAoraXMgcmV0dXJuZWQgZnJvbSB0aGF0IHJlcXVlc3QgaW50byBhIGJlYW4gKG9mIHR5cGUgU3RyaW5nKS4gIE9uZSBwb3NzaWJsZQordXNlIGZvciB0aGlzIHRlY2huaXF1ZSBpcyB0byBhY3F1aXJlIGR5bmFtaWNhbGx5IGNyZWF0ZWQgWE1MIGZvcm1hdHRlZCBkYXRhCit0aGF0IHdpbGwgYmUgc3RvcmVkIGluIGEgYmVhbiBhbmQgbGF0ZXIgbWFuaXB1bGF0ZWQgKHN1Y2ggYXMgYnkgYXBwbHlpbmcKK2FuIFhTTFQgc3R5bGVzaGVldCkuICBJZiB0aGUgY3VycmVudCByZXF1ZXN0IGlzIHBhcnQgb2YgYSBzZXNzaW9uLCB0aGUgZ2VuZXJhdGVkIAorcmVxdWVzdCBmb3IgdGhlIGluY2x1ZGUgd2lsbCBhbHNvIGluY2x1ZGUgdGhlIHNlc3Npb24gaWRlbnRpZmllciAoYW5kIHRodXMKK2JlIGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgc2FtZSBzZXNzaW9uKS48L3A+CisgCis8cHJlPiAgICAmbHQ7YmVhbjppbmNsdWRlIGlkPSJ0ZXh0IiBuYW1lPSIvZ2VuZXJhdGVYbWw/cGFyYW0xPWEmYW1wO3BhcmFtMj1iIi8mZ3Q7PGJyPjwvcHJlPgorICAKKzxwPjxlbT5Db3B5IEEgSlNQIEltcGxpY2l0bHkgRGVmaW5lZCBPYmplY3Q8L2VtPiAtIFlvdSBjYW4gY3JlYXRlIGEgYmVhbgordGhhdCBpcyBvbmUgb2YgdGhlIEpTUCBpbXBsaWNpdGx5IGRlZmluZWQgb2JqZWN0cyAoc2VlIHRoZSBKU1Agc3BlYyBmb3IgbW9yZSAKK2RldGFpbHMpLiAgVGhpcyBpcyB1c2VmdWwgaWYgeW91IHdpc2ggdG8gcGVyZm9ybSBwcm9wZXJ0eSBnZXR0ZXIgYWN0aW9ucyBhZ2FpbnN0Cit0aGUgaW1wbGljaXQgb2JqZWN0IHdpdGggYSBjdXN0b20gdGFnIGluc3RlYWQgb2YgYSBzY3JpcHRsZXQuPC9wPgorIAorPHByZT4gICAgJmx0O2JlYW46cGFnZSBpZD0iYXBwIiBwcm9wZXJ0eT0iYXBwbGljYXRpb24iLyZndDs8YnI+ICAgICZsdDtiZWFuOnBhZ2UgaWQ9InNlc3MiIHByb3BlcnR5PSJzZXNzaW9uIi8mZ3Q7PGJyPjwvcHJlPgorICAKKzxwPjxlbT5Db3B5IEEgUmVxdWVzdCBQYXJhbWV0ZXI8L2VtPiAtIFlvdSBjYW4gY3JlYXRlIGEgbmV3IGJlYW4gY29udGFpbmluZwordGhlIHZhbHVlIG9mIGEgcGFyYW1ldGVyIGluY2x1ZGVkIGluIHRoaXMgcmVxdWVzdC4gIElmIG5vIHBhcmFtZXRlciBvZiB0aGUgCitzcGVjaWZpZWQgbmFtZSB3YXMgaW5jbHVkZWQsIGEgcmVxdWVzdCB0aW1lIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biAtIHRoZXJlZm9yZSwKK2l0IGlzIGNvbW1vbiB0byBuZXN0IHRoZSB1c2Ugb2YgdGhpcyB0YWcgaW5zaWRlIGEgPGNvZGU+Jmx0O2xvZ2ljOnByZXNlbnQKK3BhcmFtZXRlcj0ieHh4IiZndDs8L2NvZGU+IHRhZyB0byBlbnN1cmUgdGhhdCB0aGUgcGFyYW1ldGVyIHdhcyByZWFsbHkgaW5jbHVkZWQuCisgSWYgdGhlcmUgaXMgdGhlIHBvc3NpYmlsaXR5IHRoYXQgbW9yZSB0aGFuIG9uZSBwYXJhbWV0ZXIgb2YgdGhlIHNhbWUgbmFtZQord2FzIGluY2x1ZGVkLCBzcGVjaWZ5IHRoZSAibXVsdGlwbGUiIGF0dHJpYnV0ZSAoYW5kIHRoZSByZXN1bHRpbmcgdmFsdWUgYmVhbgord2lsbCBiZSBhbiBhcnJheSBvZiBTdHJpbmcgdmFsdWVzLCBpbnN0ZWFkIG9mIGEgc2luZ2xlIFN0cmluZykuPC9wPgorIAorPHByZT4gICAgJmx0O2JlYW46cGFyYW1ldGVyIGlkPSJuYW1lIiBuYW1lPSJuYW1lIi8mZ3Q7PGJyPiAgICAmbHQ7YmVhbjpoZWFkZXIgaWQ9Im9wdGlvbnMiIG5hbWU9Im9wdGlvbiIgbXVsdGlwbGU9InRydWUiLyZndDs8YnI+PC9wcmU+CisgIAorPHA+PGVtPkNvcHkgYSBXZWIgQXBwbGljYXRpb24gUmVzb3VyY2U8L2VtPiAtIFlvdSBjYW4gY3JlYXRlIGEgbmV3IGJlYW4gY29udGFpbmluZworZWl0aGVyIHRoZSB2YWx1ZSBvZiBhIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSBhcyBhIFN0cmluZywgb3IgYSA8Y29kZT5qYXZhLmlvLklucHV0U3RyZWFtPC9jb2RlPgorIGZvciByZWFkaW5nIHRoZSBjb250ZW50IG9mIHRoYXQgcmVzb3VyY2UuIFRoZSByZXNvdXJjZSBpcyBhY2Nlc3NlZCB3aXRoCithIGNvbnRleHQtcmVsYXRpdmUgcGF0aCAoYmVnaW5uaW5nIHdpdGggIi8iKSwgdXNpbmcgdGhlIDxjb2RlPlNlcnZsZXRDb250ZXh0LmdldFJlc291cmNlKCk8L2NvZGU+Cisgb3IgPGNvZGU+U2VydmxldENvbnRleHQuZ2V0UmVzb3VyY2VBc1N0cmVhbSgpPC9jb2RlPiBtZXRob2RzIG9uIHRoZSB1bmRlcmx5aW5nIAorYXBwbGljYXRpb24gb2JqZWN0LjwvcD4KKyAKKzxwcmU+ICAgICZsdDtiZWFuOnJlc291cmNlIGlkPSJkZXBsb3ltZW50IiBuYW1lPSIvV0VCLUlORi93ZWIueG1sIi8mZ3Q7PGJyPiAgICAmbHQ7YmVhbjpyZXNvdXJjZSBpZD0ic3RyZWFtIiBuYW1lPSIvV0VCLUlORi93ZWIueG1sIjxicj4gICAgICAgICAgICAgICAgICAgaW5wdXQ9InRydWUiLyZndDs8YnI+PC9wcmU+CisgIAorPHA+PGVtPkNvcHkgQSBTdHJ1dHMgQ29uZmlndXJhdGlvbiBPYmplY3Q8L2VtPiAtIFlvdSBjYW4gY3JlYXRlIGEgbmV3IGJlYW4gCitjb250YWluaW5nIG9uZSBvZiB0aGUgc3RhbmRhcmQgU3RydXRzIGZyYW1ld29yayBjb25maWd1cmF0aW9uIG9iamVjdHMuICBEb2luZyAKK3RoaXMgZ2l2ZXMgeW91IGFjY2VzcyB0byB0aGUgcHJvcGVydGllcyBvZiB0aGUgY29uZmlndXJhdGlvbiBvYmplY3QsIGlmIG5lZWRlZC4gCis8L3A+CisgCis8cHJlPiAgICAmbHQ7YmVhbjpzdHJ1dHMgaWQ9ImZvcm0iIGZvcm1CZWFuPSJDdXN0b21lckZvcm0iLyZndDs8YnI+ICAgICZsdDtiZWFuOnN0cnV0cyBpZD0iZndkIiBmb3J3YXJkPSJzdWNjZXNzIi8mZ3Q7PGJyPiAgICAmbHQ7YmVhbjpzdHJ1dHMgaWQ9Im1hcCIgbWFwcGluZz0iL3NhdmVDdXN0b21lciIvJmd0Ozxicj48L3ByZT4KKyAgIAorPGhyPiAgPGEgbmFtZT0iZG9jLk91dHB1dCI+PC9hPgorIAorPGgzPkJlYW4gT3V0cHV0PC9oMz4KKyAgCis8cD5Ob25lIG9mIHRoZSBTdHJ1dHMgQmVhbiB0YWdzIGRpc2N1c3NlZCBzbyBmYXIgcmVuZGVyIGFueSBvdXRwdXQgdG8gdGhlIAorcmVzcG9uc2UgcGFnZSB0aGF0IGlzIGJlaW5nIGdlbmVyYXRlZCBmcm9tIHRoaXMgSlNQIHBhZ2UuICBUaGV5IGFyZSBleGVjdXRlZCAKK2luIG9yZGVyIHRvIG1ha2UgcmVsZXZhbnQgSmF2YSBvYmplY3RzIHZpc2libGUgYXMgYmVhbnMgZm9yIGZ1cnRoZXIgbWFuaXB1bGF0aW9uLgorIFRoZSBmb2xsb3dpbmcgdGFncyBjYXVzZSBvdXRwdXQgdG8gYmUgd3JpdHRlbiB0byB0aGUgcmVzcG9uc2UsIGFuZCB0aGVyZWZvcmUKK21hZGUgdmlzaWJsZSB0byB0aGUgdWx0aW1hdGUgcmVxdWVzdGVyLjwvcD4KKyAgCis8cD48ZW0+UmVuZGVyIEFuIEludGVybmF0aW9uYWxpemVkIE1lc3NhZ2U8L2VtPiAtIFlvdSBjYW4gc3BlY2lmeSBhIG1lc3NhZ2UgCitrZXkgKHdpdGggb3B0aW9uYWwgcGFyYW1ldGVyIHJlcGxhY2VtZW50IG9iamVjdHMpIHRoYXQgYXJlIHBhc3NlZCB0byBhIDxhIGhyZWY9Ii4uLy4uL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj4KK01lc3NhZ2VSZXNvdXJjZXM8L2E+Cisgb2JqZWN0IHRoYXQgcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBtZXNzYWdlIHRleHQuICBUaGUgbWVzc2FnZSB0ZXh0IHdpbGwKK2JlIGNvcGllZCB0byB0aGUgcmVzcG9uc2UgY3VycmVudGx5IGJlaW5nIGNyZWF0ZWQuICBCeSBkZWZhdWx0LCBtZXNzYWdlcworYXJlIGxvb2tlZCB1cCBpbiB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2VzIGJ1bmRsZSB0aGF0IGlzIGluaXRpYWxpemVkIGZvcgoreW91IChhcyBhbiBhcHBsaWNhdGlvbiBzY29wZSBiZWFuKSBieSB0aGUgU3RydXRzIGNvbnRyb2xsZXIgc2VydmxldCwgdXNpbmcKK3RoZSBMb2NhbGUgbXVzdCByZWNlbnRseSBzdG9yZWQgaW4gdGhlIHVzZXIncyBzZXNzaW9uLiAgVGhlc2UgZGVmYXVsdHMgY2FuCitiZSBvdmVycmlkZGVuIGJ5IHNldHRpbmcgdmFsdWVzIGZvciB0aGUgImJ1bmRsZSIgYW5kICJsb2NhbGUiIGF0dHJpYnV0ZXMsCithcyBkZXNjcmliZWQgaW4gdGhlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9zdHJ1dHMtYmVhbi5odG1sI21lc3NhZ2UiPgorQmVhbiBUYWdzIFJlZmVyZW5jZTwvYT4KKy4gPC9wPgorPHByZT4gICAgJmx0O2JlYW46bWVzc2FnZSBrZXk9ImxhYmVsLkNhbmNlbCIvJmd0Ozxicj4gICAgJmx0O2JlYW46bWVzc2FnZSBrZXk9Im1lc3NhZ2UuaGVsbG8iIGFyZzA9JyZsdDslPSB1c2VyLmdldEZ1bGxOYW1lKCkgJSZndDsnLyZndDs8YnI+PC9wcmU+CisgIAorPHA+PGVtPlJlbmRlciBBIEJlYW4gb3IgQmVhbiBQcm9wZXJ0eTwvZW0+IC0gVGhlIGNvbnRlbnRzIG9mIGEgYmVhbiwgb3IgYmVhbiAKK3Byb3BlcnR5LCBhcmUgY29udmVydGVkIHRvIGEgU3RyaW5nIGFuZCB0aGVuIGNvcGllZCB0byB0aGUgcmVzcG9uc2UgY3VycmVudGx5IAorYmVpbmcgY3JlYXRlZC4gIFRoaXMgdGFnIHVuZGVyc3RhbmRzIHRoZSBzeW50YXggZm9yIHNpbXBsZSwgbmVzdGVkLCBhbmQgaW5kZXhlZAorcHJvcGVydHkgcmVmZXJlbmNlcyBkZXNjcmliZWQgPGEgaHJlZj0iI2RvYy5Qcm9wZXJ0aWVzLlJlZmVyZW5jZSI+IGFib3ZlPC9hPgorLiAgQmVhbnMgZnJvbSBhbnkgc2NvcGUgY2FuIGJlIHJlcXVlc3RlZCAtIGJ5IGRlZmF1bHQsIHRoZSBzY29wZXMgYXJlIHNlYXJjaGVkCitpbiBleHBhbmRpbmcgdmlzaWJpbGl0eSBvcmRlciAocGFnZSwgcmVxdWVzdCwgc2Vzc2lvbiwgYW5kIGFwcGxpY2F0aW9uKSB0bworbG9jYXRlIHRoZSByZXF1ZXN0ZWQgYmVhbi48L3A+CisgCis8cHJlPiAgICAmbHQ7YmVhbjp3cml0ZSBuYW1lPSJ1c2VybmFtZSIvJmd0Ozxicj4gICAgJmx0O2JlYW46d3JpdGUgbmFtZT0idXNlciIgcHJvcGVydHk9ImZ1bGxOYW1lIi8mZ3Q7PGJyPiAgICAmbHQ7YmVhbjp3cml0ZSBuYW1lPSJjdXN0b21lciIgcHJvcGVydHk9Im9yZGVyc1syXS5wYXJ0TnVtYmVyIjxicj4gICAgICAgICAgICAgICAgc2NvcGU9InNlc3Npb24iLyZndDs8YnI+PC9wcmU+Cis8UD4KKworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2UtdHJlZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwYWEwY2EKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS10cmVlLmh0bWwKQEAgLTAsMCArMSwxNDIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbiBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbgorPC9IMj4KKzwvQ0VOVEVSPgorPERMPgorPERUPjxCPlBhY2thZ2UgSGllcmFyY2hpZXM6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy10cmVlLmh0bWwiPkFsbCBQYWNrYWdlczwvQT48L0RMPgorPEhSPgorPEgyPgorQ2xhc3MgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLk9iamVjdDxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUZWkuaHRtbCI+PEI+Q29va2llVGVpPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUZWkuaHRtbCI+PEI+RGVmaW5lVGVpPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUZWkuaHRtbCI+PEI+SGVhZGVyVGVpPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9JbmNsdWRlVGVpLmh0bWwiPjxCPkluY2x1ZGVUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhZ2VUZWkuaHRtbCI+PEI+UGFnZVRlaTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFyYW1ldGVyVGVpLmh0bWwiPjxCPlBhcmFtZXRlclRlaTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUmVzb3VyY2VUZWkuaHRtbCI+PEI+UmVzb3VyY2VUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUZWkuaHRtbCI+PEI+U2l6ZVRlaTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGVpLmh0bWwiPjxCPlN0cnV0c1RlaTwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPjxCPkRlZmluZVRhZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIj48Qj5Db29raWVUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRhZy5odG1sIj48Qj5IZWFkZXJUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+PEI+SW5jbHVkZVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj48Qj5NZXNzYWdlVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPjxCPlBhZ2VUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj48Qj5QYXJhbWV0ZXJUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPjxCPlJlc291cmNlVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPjxCPlNpemVUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sIj48Qj5TdHJ1dHNUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPjxCPldyaXRlVGFnPC9CPjwvQT48L1VMPgorPC9VTD4KKzwvVUw+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2UtdXNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS11c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTRmZmI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2UtdXNlLmh0bWwKQEAgLTAsMCArMSwxNzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgUGFja2FnZTxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW48L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBiZWFuIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvY29kZT4KKyAgICAgdGFncyB0byBhbGxvdyB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL2NsYXNzLXVzZS9EZWZpbmVUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4iPjxCPkRlZmluZVRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgYmFzZWQgb24gdGhlIHZhbHVlKHMpIG9mIHRoZSBzcGVjaWZpZWQKKyBiZWFuIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vY2xhc3MtdXNlL01lc3NhZ2VUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4iPjxCPk1lc3NhZ2VUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3VzdG9tIHRhZyB0aGF0IHJldHJpZXZlcyBhbiBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcyBzdHJpbmcgKHdpdGgKKyBvcHRpb25hbCBwYXJhbWV0cmljIHJlcGxhY2VtZW50KSBmcm9tIHRoZSA8Y29kZT5BY3Rpb25SZXNvdXJjZXM8L2NvZGU+Cisgb2JqZWN0IHN0b3JlZCBhcyBhIGNvbnRleHQgYXR0cmlidXRlIGJ5IG91ciBhc3NvY2lhdGVkCisgPGNvZGU+QWN0aW9uU2VydmxldDwvY29kZT4gaW1wbGVtZW50YXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvU2l6ZVRhZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiI+PEI+U2l6ZVRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWZpbmUgYSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGNvbnRhaW4gdGhlIG51bWJlciBvZiBlbGVtZW50cworIGZvdW5kIGluIGEgc3BlY2lmaWVkIGFycmF5LCBDb2xsZWN0aW9uLCBvciBNYXAuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9jbGFzcy11c2UvV3JpdGVUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4iPjxCPldyaXRlVGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RhZyB0aGF0IHJldHJpZXZlcyB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQgYmVhbiwgY29udmVydHMKKyBpdCB0byBhIFN0cmluZyByZXByZXNlbnRhdGlvbiAoaWYgbmVjZXNzYXJ5KSwgYW5kIHdyaXRlcyBpdCB0byB0aGUgY3VycmVudAorIG91dHB1dCBzdHJlYW0sIG9wdGlvbmFsbHkgZmlsdGVyaW5nIGNoYXJhY3RlcnMgdGhhdCBhcmUgc2Vuc2l0aXZlIGluIEhUTUwuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmIzMTM2ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbApAQCAtMCwwICsxLDYxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0Jhc2VGaWVsZFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnLEJhc2VGaWVsZFRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQmFzZUZpZWxkVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0Jhc2VGaWVsZFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQmFzZUZpZWxkVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIEJhc2VGaWVsZFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwiPkZpbGVUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+SGlkZGVuVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUGFzc3dvcmRUYWcuaHRtbCI+UGFzc3dvcmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCI+VGV4dFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbCI+VGV4dFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgYWJzdHJhY3QgY2xhc3MgPEI+QmFzZUZpZWxkVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+PC9ETD4KKworPFA+CitDb252ZW5pZW5jZSBiYXNlIGNsYXNzIGZvciB0aGUgdmFyaW91cyBpbnB1dCB0YWdzIGZvciB0ZXh0IGZpZWxkcy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjYWNjZXB0Ij5hY2NlcHQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tbWEtZGVsaW1pdGVkIGxpc3Qgb2YgY29udGVudCB0eXBlcyB0aGF0IGEgc2VydmVyIHByb2Nlc3NpbmcgdGhpcyBmb3JtCisgd2lsbCBoYW5kbGUgY29ycmVjdGx5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3JlZGlzcGxheSI+cmVkaXNwbGF5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSAicmVkaXNwbGF5IGNvbnRlbnRzIiBmbGFnICh1c2VkIG9ubHkgb24gPGNvZGU+cGFzc3dvcmQ8L2NvZGU+KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjdHlwZSI+dHlwZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdHlwZSBvZiBpbnB1dCBmaWVsZCByZXByZXNlbnRlZCBieSB0aGlzIHRhZyAodGV4dCwgcGFzc3dvcmQsIG9yCisgaGlkZGVuKS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjY29scyI+Y29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI21heGxlbmd0aCI+bWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcm93cyI+cm93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2luZGV4ZWQiPmluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI0Jhc2VGaWVsZFRhZygpIj5CYXNlRmllbGRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2VuZXJhdGUgdGhlIHJlcXVpcmVkIGlucHV0IHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXRBY2NlcHQoKSI+Z2V0QWNjZXB0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0UmVkaXNwbGF5KCkiPmdldFJlZGlzcGxheTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNzZXRBY2NlcHQoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2VwdDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY2NlcHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNzZXRSZWRpc3BsYXkoYm9vbGVhbikiPnNldFJlZGlzcGxheTwvQT48L0I+KGJvb2xlYW4mbmJzcDtyZWRpc3BsYXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldENvbHMoKSI+Z2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldE1heGxlbmd0aCgpIj5nZXRNYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFJvd3MoKSI+Z2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFNpemUoKSI+Z2V0U2l6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Q29scyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldE1heGxlbmd0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Um93cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFNpemUoamF2YS5sYW5nLlN0cmluZykiPnNldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEVsZW1lbnRDbG9zZSgpIj5nZXRFbGVtZW50Q2xvc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEluZGV4ZWQoKSI+Z2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlS2V5KCkiPmdldFRpdGxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb2t1cFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRJbmRleGVkKGJvb2xlYW4pIj5zZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImFjY2VwdCI+PCEtLSAtLT48L0E+PEgzPgorYWNjZXB0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5hY2NlcHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tbWEtZGVsaW1pdGVkIGxpc3Qgb2YgY29udGVudCB0eXBlcyB0aGF0IGEgc2VydmVyIHByb2Nlc3NpbmcgdGhpcyBmb3JtCisgd2lsbCBoYW5kbGUgY29ycmVjdGx5LiAgVGhpcyBwcm9wZXJ0eSBpcyBkZWZpbmVkIG9ubHkgZm9yIHRoZQorIDxjb2RlPmZpbGU8L2NvZGU+IHRhZywgYnV0IGlzIGltcGxlbWVudGVkIGhlcmUgYmVjYXVzZSBpdCBhZmZlY3RzIHRoZQorIHJlbmRlcmVkIEhUTUwgb2YgdGhlIGNvcnJlc3BvbmRpbmcgJmx0O2lucHV0Jmd0OyB0YWcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWRpc3BsYXkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlZGlzcGxheTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+cmVkaXNwbGF5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSAicmVkaXNwbGF5IGNvbnRlbnRzIiBmbGFnICh1c2VkIG9ubHkgb24gPGNvZGU+cGFzc3dvcmQ8L2NvZGU+KS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KK3R5cGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHR5cGUgb2YgaW5wdXQgZmllbGQgcmVwcmVzZW50ZWQgYnkgdGhpcyB0YWcgKHRleHQsIHBhc3N3b3JkLCBvcgorIGhpZGRlbikuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQmFzZUZpZWxkVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0Jhc2VGaWVsZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkJhc2VGaWVsZFRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0QWNjZXB0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjY2VwdDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWNjZXB0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBY2NlcHQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFjY2VwdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QWNjZXB0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWNjZXB0KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJlZGlzcGxheSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSZWRpc3BsYXk8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldFJlZGlzcGxheTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UmVkaXNwbGF5KGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRSZWRpc3BsYXk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFJlZGlzcGxheTwvQj4oYm9vbGVhbiZuYnNwO3JlZGlzcGxheSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+R2VuZXJhdGUgdGhlIHJlcXVpcmVkIGlucHV0IHRhZy4KKyA8cD4KKyBTdXBwb3J0IGZvciBpbmRleGVkIHByb3BlcnR5IHNpbmNlIFN0cnV0cyAxLjEKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0Jhc2VGaWVsZFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQmFzZUZpZWxkVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDMwMzliCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwKQEAgLTAsMCArMSwyNTUzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQmFzZUhhbmRsZXJUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnLEJhc2VIYW5kbGVyVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJCYXNlSGFuZGxlclRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9CYXNlSGFuZGxlclRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkJhc2VIYW5kbGVyVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIEJhc2VIYW5kbGVyVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwiPkNhbmNlbFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPk11bHRpYm94VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIj5SZXNldFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBhYnN0cmFjdCBjbGFzcyA8Qj5CYXNlSGFuZGxlclRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK0Jhc2UgY2xhc3MgZm9yIHRhZ3MgdGhhdCByZW5kZXIgZm9ybSBlbGVtZW50cyBjYXBhYmxlIG9mIGluY2x1ZGluZyBKYXZhU2NyaXB0CisgZXZlbnQgaGFuZGxlcnMgYW5kL29yIENTUyBTdHlsZSBhdHRyaWJ1dGVzLiBUaGlzIGNsYXNzIGRvZXMgbm90IGltcGxlbWVudAorIHRoZSBkb1N0YXJ0VGFnKCkgb3IgZG9FbmRUYWcoKSBtZXRob2RzLiBTdWJjbGFzc2VzIHNob3VsZCBwcm92aWRlCisgYXBwcm9wcmlhdGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZXNlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+RG9uIENsYXNlbiwgSmFtZXMgVHVybmVyPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBY2Nlc3Mga2V5IGNoYXJhY3Rlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWx0Ij5hbHQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGFsdGVybmF0ZSB0ZXh0IG9mIHRoaXMgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWx0S2V5Ij5hbHRLZXk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2J1bmRsZSI+YnVuZGxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBtZXNzYWdlIHJlc291cmNlcyBidW5kbGUgZm9yIG1lc3NhZ2UgbG9va3Vwcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO2phdmEudXRpbC5Mb2NhbGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWZhdWx0IExvY2FsZSBmb3Igb3VyIHNlcnZlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGlzYWJsZWQiPmRpc2FibGVkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBvbmVudCBpcyBkaXNhYmxlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpbmRleGVkIj5pbmRleGVkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1doZXRoZXIgdG8gY3JlYXRlZCBpbmRleGVkIG5hbWVzIGZvciBmaWVsZHM8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbG9jYWxlIj5sb2NhbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3Igb3VyIGxvY2FsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb2ciPmxvZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLkNsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbG9vcFRhZ1N0YXR1c0NsYXNzIj5sb29wVGFnU3RhdHVzQ2xhc3M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbG9vcFRhZ1N0YXR1c0dldEluZGV4Ij5sb29wVGFnU3RhdHVzR2V0SW5kZXg8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLkNsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbG9vcFRhZ1N1cHBvcnRDbGFzcyI+bG9vcFRhZ1N1cHBvcnRDbGFzczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29wVGFnU3VwcG9ydEdldFN0YXR1cyI+bG9vcFRhZ1N1cHBvcnRHZXRTdGF0dXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uYmx1ciI+b25ibHVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBvbmVudCBsb3N0IGZvY3VzIGV2ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNoYW5nZSI+b25jaGFuZ2U8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udGVudCBjaGFuZ2VkIGFmdGVyIGNvbXBvbmVudCBsb3N0IGZvY3VzIGV2ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmNsaWNrIj5vbmNsaWNrPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01vdXNlIGNsaWNrIGV2ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmRibGNsaWNrIj5vbmRibGNsaWNrPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01vdXNlIGRvdWJsZSBjbGljayBldmVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25mb2N1cyI+b25mb2N1czwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wb25lbnQgaGFzIHJlY2VpdmVkIGZvY3VzIGV2ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbmtleWRvd24iPm9ua2V5ZG93bjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtLZXkgZG93biBpbiBjb21wb25lbnQgZXZlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ua2V5cHJlc3MiPm9ua2V5cHJlc3M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7S2V5IGRvd24gYW5kIHVwIHRvZ2V0aGVyIGluIGNvbXBvbmVudCBldmVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25rZXl1cCI+b25rZXl1cDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtLZXkgcmVsZWFzZWQgaW4gY29tcG9uZW50IGV2ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNlZG93biI+b25tb3VzZWRvd248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TW91c2UgcHJlc3NlZCBvbiBjb21wb25lbnQgZXZlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29ubW91c2Vtb3ZlIj5vbm1vdXNlbW92ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNb3VzZSBtb3ZlZCBvdmVyIGNvbXBvbmVudCBldmVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW91dCI+b25tb3VzZW91dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNb3VzZSBleGl0IGNvbXBvbmVudCBldmVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb25tb3VzZW92ZXIiPm9ubW91c2VvdmVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01vdXNlIG92ZXIgY29tcG9uZW50IGV2ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNvbm1vdXNldXAiPm9ubW91c2V1cDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNb3VzZSByZWxlYXNlZCBvbiBjb21wb25lbnQgZXZlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI29uc2VsZWN0Ij5vbnNlbGVjdDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUZXh0IHNlbGVjdGVkIGluIGNvbXBvbmVudCBldmVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVhZG9ubHkiPnJlYWRvbmx5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBvbmVudCBpcyByZWFkb25seS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc3R5bGUiPnN0eWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1N0eWxlIGF0dHJpYnV0ZSBhc3NvY2lhdGVkIHdpdGggY29tcG9uZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzdHlsZUNsYXNzIj5zdHlsZUNsYXNzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05hbWVkIFN0eWxlIGNsYXNzIGFzc29jaWF0ZWQgd2l0aCBjb21wb25lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3N0eWxlSWQiPnN0eWxlSWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SWRlbnRpZmllciBhc3NvY2lhdGVkIHdpdGggY29tcG9uZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUYWIgaW5kZXggdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RpdGxlIj50aXRsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYWR2aXNvcnkgdGl0bGUgb2YgdGhpcyBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0aXRsZUtleSI+dGl0bGVLZXk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWR2aXNvcnkgdGl0bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RyaWVkSnN0bEluaXQiPnRyaWVkSnN0bEluaXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RyaWVkSnN0bFN1Y2Nlc3MiPnRyaWVkSnN0bFN1Y2Nlc3M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjQmFzZUhhbmRsZXJUYWcoKSI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIGFjY2Vzc0tleSBjaGFyYWN0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBbHQoKSI+Z2V0QWx0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgYWx0ZXJuYXRlIHRleHQgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRCdW5kbGUoKSI+Z2V0QnVuZGxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgbWVzc2FnZSByZXNvdXJjZXMgYnVuZGxlIHRvIHVzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgZGlzYWJsZWQgZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgY2xvc2luZyBicmFjZSBmb3IgYW4gaW5wdXQgZWxlbWVudCBkZXBlbmRpbmcgb24geGh0bWwgc3RhdHVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0SW5kZXhlZCgpIj5nZXRJbmRleGVkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgaW5kZXhlZCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuSW50ZWdlcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEpzdGxMb29wSW5kZXgoKSI+Z2V0SnN0bExvb3BJbmRleDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIGZvciBvdXIgbG9jYWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIG9uQmx1ciBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBvbkNoYW5nZSBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jbGljaygpIj5nZXRPbmNsaWNrPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgb25DbGljayBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgb25EYmxDbGljayBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgb25Gb2N1cyBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlkb3duKCkiPmdldE9ua2V5ZG93bjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIG9uS2V5RG93biBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlwcmVzcygpIj5nZXRPbmtleXByZXNzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgb25LZXlQcmVzcyBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgb25LZXlVcCBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBvbk1vdXNlRG93biBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBvbk1vdXNlTW92ZSBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW91dCgpIj5nZXRPbm1vdXNlb3V0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgb25Nb3VzZU91dCBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBvbk1vdXNlT3ZlciBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZXVwKCkiPmdldE9ubW91c2V1cDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIG9uTW91c2VVcCBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25zZWxlY3QoKSI+Z2V0T25zZWxlY3Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBvblNlbGVjdCBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSByZWFkb25seSBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBzdHlsZSBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBzdHlsZSBjbGFzcyBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUlkKCkiPmdldFN0eWxlSWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBzdHlsZSBpZCBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIHRhYkluZGV4IHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBhZHZpc29yeSB0aXRsZSBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWR2aXNvcnkgdGl0bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWxsb3dzIEhUTUwgdGFncyB0byBmaW5kIG91dCBpZiB0aGV5J3JlIG5lc3RlZCB3aXRoaW4gYW4gJWx0O2h0bWw6aHRtbCZndDsgdGFnIHRoYXQKKyBoYXMgeGh0bWwgc2V0IHRvIHRydWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbG9va3VwUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmxvb2t1cFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2JlYW5OYW1lLAorICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2VhcmNoZXMgYWxsIHNjb3BlcyBmb3IgdGhlIGJlYW4gYW5kIGNhbGxzIEJlYW5VdGlscy5nZXRQcm9wZXJ0eSgpIHdpdGggdGhlIAorIGdpdmVuIGFyZ3VtZW50cyBhbmQgY29udmVydHMgYW55IGV4Y2VwdGlvbnMgaW50byBKc3BFeGNlcHRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsaXRlcmFsLAorICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSB0ZXh0IHNwZWNpZmllZCBieSB0aGUgbGl0ZXJhbCB2YWx1ZSBvciB0aGUgbWVzc2FnZSByZXNvdXJjZXMKKyBrZXksIGlmIGFueTsgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRXZlbnRIYW5kbGVycygpIj5wcmVwYXJlRXZlbnRIYW5kbGVyczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByZXBhcmVzIHRoZSBldmVudCBoYW5kbGVycyBmb3IgaW5jbHVzaW9uIGluIHRoZSBjb21wb25lbnQncyBIVE1MIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT48L0I+KGphdmEubGFuZy5TdHJpbmdCdWZmZXImbmJzcDtoYW5kbGVycyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByZXBhcmVzIHRoZSBmb2N1cyBldmVudCBoYW5kbGVycywgYXBwZW5kaW5nIHRoZW0gdG8gdGhlIHRoZSBnaXZlbgorIFN0cmluZ0J1ZmZlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmdCdWZmZXImbmJzcDtoYW5kbGVycywKKyAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FwcGVuZHMgYmVhbiBuYW1lIHdpdGggaW5kZXggaW4gYnJhY2tldHMgZm9yIHRhZ3Mgd2l0aAorICAndHJ1ZScgdmFsdWUgaW4gJ2luZGV4ZWQnIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlS2V5RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlS2V5RXZlbnRzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO2hhbmRsZXJzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJlcGFyZXMgdGhlIGtleWJvYXJkIGV2ZW50IGhhbmRsZXJzLCBhcHBlbmRpbmcgdGhlbSB0byB0aGUgdGhlIGdpdmVuCisgU3RyaW5nQnVmZmVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO2hhbmRsZXJzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJlcGFyZXMgdGhlIG1vdXNlIGV2ZW50IGhhbmRsZXJzLCBhcHBlbmRpbmcgdGhlbSB0byB0aGUgdGhlIGdpdmVuCisgU3RyaW5nQnVmZmVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByZXBhcmVzIHRoZSBzdHlsZSBhdHRyaWJ1dGVzIGZvciBpbmNsdXNpb24gaW4gdGhlIGNvbXBvbmVudCdzIEhUTUwgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT48L0I+KGphdmEubGFuZy5TdHJpbmdCdWZmZXImbmJzcDtoYW5kbGVycyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByZXBhcmVzIHRoZSB0ZXh0IGV2ZW50IGhhbmRsZXJzLCBhcHBlbmRpbmcgdGhlbSB0byB0aGUgdGhlIGdpdmVuCisgU3RyaW5nQnVmZmVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWNjZXNzS2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgYWNjZXNzS2V5IGNoYXJhY3Rlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FsdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIGFsdGVybmF0ZSB0ZXh0IGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FsdEtleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtidW5kbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBuYW1lIG9mIHRoZSBtZXNzYWdlIHJlc291cmNlcyBidW5kbGUgdG8gdXNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPjwvQj4oYm9vbGVhbiZuYnNwO2Rpc2FibGVkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgZGlzYWJsZWQgZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEluZGV4ZWQoYm9vbGVhbikiPnNldEluZGV4ZWQ8L0E+PC9CPihib29sZWFuJm5ic3A7aW5kZXhlZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIGluZGV4ZWQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIGF0dHJpYnV0ZSBmb3Igb3VyIGxvY2FsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uQmx1cik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIG9uQmx1ciBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uQ2hhbmdlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgb25DaGFuZ2UgZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25DbGljayk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIG9uQ2xpY2sgZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25EYmxDbGljayk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIG9uRGJsQ2xpY2sgZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25Gb2N1cyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIG9uRm9jdXMgZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uS2V5RG93bik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIG9uS2V5RG93biBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvbktleVByZXNzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgb25LZXlQcmVzcyBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvbktleVVwKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgb25LZXlVcCBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uTW91c2VEb3duKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgb25Nb3VzZURvd24gZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvbk1vdXNlTW92ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIG9uTW91c2VNb3ZlIGV2ZW50IGhhbmRsZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uTW91c2VPdXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBvbk1vdXNlT3V0IGV2ZW50IGhhbmRsZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25Nb3VzZU92ZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBvbk1vdXNlT3ZlciBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25Nb3VzZVVwKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgb25Nb3VzZVVwIGV2ZW50IGhhbmRsZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25TZWxlY3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBvblNlbGVjdCBldmVudCBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPjwvQj4oYm9vbGVhbiZuYnNwO3JlYWRvbmx5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgcmVhZG9ubHkgZXZlbnQgaGFuZGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHlsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHN0eWxlIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGVDbGFzcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHN0eWxlIGNsYXNzIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGVJZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHN0eWxlIGlkIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0YWJJbmRleCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHRhYkluZGV4IHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RpdGxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgYWR2aXNvcnkgdGl0bGUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RpdGxlS2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhZHZpc29yeSB0aXRsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvRW5kVGFnLCBkb0luaXRCb2R5LCBkb1N0YXJ0VGFnLCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJsb2ciPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZWZhdWx0TG9jYWxlIj48IS0tIC0tPjwvQT48SDM+CitkZWZhdWx0TG9jYWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGphdmEudXRpbC5Mb2NhbGUgPEI+ZGVmYXVsdExvY2FsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCBMb2NhbGUgZm9yIG91ciBzZXJ2ZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWNjZXNza2V5Ij48IS0tIC0tPjwvQT48SDM+CithY2Nlc3NrZXk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFjY2Vzc2tleTwvQj48L1BSRT4KKzxETD4KKzxERD5BY2Nlc3Mga2V5IGNoYXJhY3Rlci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRhYmluZGV4Ij48IS0tIC0tPjwvQT48SDM+Cit0YWJpbmRleDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dGFiaW5kZXg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGFiIGluZGV4IHZhbHVlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5kZXhlZCI+PCEtLSAtLT48L0E+PEgzPgoraW5kZXhlZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+aW5kZXhlZDwvQj48L1BSRT4KKzxETD4KKzxERD5XaGV0aGVyIHRvIGNyZWF0ZWQgaW5kZXhlZCBuYW1lcyBmb3IgZmllbGRzCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9uY2xpY2siPjwhLS0gLS0+PC9BPjxIMz4KK29uY2xpY2s8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vbmNsaWNrPC9CPjwvUFJFPgorPERMPgorPEREPk1vdXNlIGNsaWNrIGV2ZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib25kYmxjbGljayI+PCEtLSAtLT48L0E+PEgzPgorb25kYmxjbGljazwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9uZGJsY2xpY2s8L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2UgZG91YmxlIGNsaWNrIGV2ZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib25tb3VzZW92ZXIiPjwhLS0gLS0+PC9BPjxIMz4KK29ubW91c2VvdmVyPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25tb3VzZW92ZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2Ugb3ZlciBjb21wb25lbnQgZXZlbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvbm1vdXNlb3V0Ij48IS0tIC0tPjwvQT48SDM+Citvbm1vdXNlb3V0PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25tb3VzZW91dDwvQj48L1BSRT4KKzxETD4KKzxERD5Nb3VzZSBleGl0IGNvbXBvbmVudCBldmVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9ubW91c2Vtb3ZlIj48IS0tIC0tPjwvQT48SDM+Citvbm1vdXNlbW92ZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9ubW91c2Vtb3ZlPC9CPjwvUFJFPgorPERMPgorPEREPk1vdXNlIG1vdmVkIG92ZXIgY29tcG9uZW50IGV2ZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib25tb3VzZWRvd24iPjwhLS0gLS0+PC9BPjxIMz4KK29ubW91c2Vkb3duPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25tb3VzZWRvd248L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2UgcHJlc3NlZCBvbiBjb21wb25lbnQgZXZlbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvbm1vdXNldXAiPjwhLS0gLS0+PC9BPjxIMz4KK29ubW91c2V1cDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9ubW91c2V1cDwvQj48L1BSRT4KKzxETD4KKzxERD5Nb3VzZSByZWxlYXNlZCBvbiBjb21wb25lbnQgZXZlbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvbmtleWRvd24iPjwhLS0gLS0+PC9BPjxIMz4KK29ua2V5ZG93bjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9ua2V5ZG93bjwvQj48L1BSRT4KKzxETD4KKzxERD5LZXkgZG93biBpbiBjb21wb25lbnQgZXZlbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvbmtleXVwIj48IS0tIC0tPjwvQT48SDM+CitvbmtleXVwPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25rZXl1cDwvQj48L1BSRT4KKzxETD4KKzxERD5LZXkgcmVsZWFzZWQgaW4gY29tcG9uZW50IGV2ZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib25rZXlwcmVzcyI+PCEtLSAtLT48L0E+PEgzPgorb25rZXlwcmVzczwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9ua2V5cHJlc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+S2V5IGRvd24gYW5kIHVwIHRvZ2V0aGVyIGluIGNvbXBvbmVudCBldmVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9uc2VsZWN0Ij48IS0tIC0tPjwvQT48SDM+CitvbnNlbGVjdDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9uc2VsZWN0PC9CPjwvUFJFPgorPERMPgorPEREPlRleHQgc2VsZWN0ZWQgaW4gY29tcG9uZW50IGV2ZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib25jaGFuZ2UiPjwhLS0gLS0+PC9BPjxIMz4KK29uY2hhbmdlPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25jaGFuZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29udGVudCBjaGFuZ2VkIGFmdGVyIGNvbXBvbmVudCBsb3N0IGZvY3VzIGV2ZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib25ibHVyIj48IS0tIC0tPjwvQT48SDM+CitvbmJsdXI8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vbmJsdXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tcG9uZW50IGxvc3QgZm9jdXMgZXZlbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvbmZvY3VzIj48IS0tIC0tPjwvQT48SDM+CitvbmZvY3VzPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b25mb2N1czwvQj48L1BSRT4KKzxETD4KKzxERD5Db21wb25lbnQgaGFzIHJlY2VpdmVkIGZvY3VzIGV2ZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGlzYWJsZWQiPjwhLS0gLS0+PC9BPjxIMz4KK2Rpc2FibGVkPC9IMz4KKzxQUkU+Citwcml2YXRlIGJvb2xlYW4gPEI+ZGlzYWJsZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tcG9uZW50IGlzIGRpc2FibGVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVhZG9ubHkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWRvbmx5PC9IMz4KKzxQUkU+Citwcml2YXRlIGJvb2xlYW4gPEI+cmVhZG9ubHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tcG9uZW50IGlzIHJlYWRvbmx5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3R5bGUiPjwhLS0gLS0+PC9BPjxIMz4KK3N0eWxlPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+c3R5bGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U3R5bGUgYXR0cmlidXRlIGFzc29jaWF0ZWQgd2l0aCBjb21wb25lbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzdHlsZUNsYXNzIj48IS0tIC0tPjwvQT48SDM+CitzdHlsZUNsYXNzPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+c3R5bGVDbGFzczwvQj48L1BSRT4KKzxETD4KKzxERD5OYW1lZCBTdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggY29tcG9uZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3R5bGVJZCI+PCEtLSAtLT48L0E+PEgzPgorc3R5bGVJZDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPnN0eWxlSWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SWRlbnRpZmllciBhc3NvY2lhdGVkIHdpdGggY29tcG9uZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWx0Ij48IS0tIC0tPjwvQT48SDM+CithbHQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5hbHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFsdGVybmF0ZSB0ZXh0IG9mIHRoaXMgZWxlbWVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFsdEtleSI+PCEtLSAtLT48L0E+PEgzPgorYWx0S2V5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+YWx0S2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYnVuZGxlIj48IS0tIC0tPjwvQT48SDM+CitidW5kbGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5idW5kbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGJ1bmRsZSBmb3IgbWVzc2FnZSBsb29rdXBzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9jYWxlIj48IS0tIC0tPjwvQT48SDM+Citsb2NhbGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5sb2NhbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3Igb3VyIGxvY2FsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRpdGxlIj48IS0tIC0tPjwvQT48SDM+Cit0aXRsZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPnRpdGxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhZHZpc29yeSB0aXRsZSBvZiB0aGlzIGVsZW1lbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0aXRsZUtleSI+PCEtLSAtLT48L0E+PEgzPgordGl0bGVLZXk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj50aXRsZUtleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhZHZpc29yeSB0aXRsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Imxvb3BUYWdTdXBwb3J0Q2xhc3MiPjwhLS0gLS0+PC9BPjxIMz4KK2xvb3BUYWdTdXBwb3J0Q2xhc3M8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLkNsYXNzIDxCPmxvb3BUYWdTdXBwb3J0Q2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9vcFRhZ1N1cHBvcnRHZXRTdGF0dXMiPjwhLS0gLS0+PC9BPjxIMz4KK2xvb3BUYWdTdXBwb3J0R2V0U3RhdHVzPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZCA8Qj5sb29wVGFnU3VwcG9ydEdldFN0YXR1czwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb29wVGFnU3RhdHVzQ2xhc3MiPjwhLS0gLS0+PC9BPjxIMz4KK2xvb3BUYWdTdGF0dXNDbGFzczwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuQ2xhc3MgPEI+bG9vcFRhZ1N0YXR1c0NsYXNzPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Imxvb3BUYWdTdGF0dXNHZXRJbmRleCI+PCEtLSAtLT48L0E+PEgzPgorbG9vcFRhZ1N0YXR1c0dldEluZGV4PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZCA8Qj5sb29wVGFnU3RhdHVzR2V0SW5kZXg8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idHJpZWRKc3RsSW5pdCI+PCEtLSAtLT48L0E+PEgzPgordHJpZWRKc3RsSW5pdDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBib29sZWFuIDxCPnRyaWVkSnN0bEluaXQ8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idHJpZWRKc3RsU3VjY2VzcyI+PCEtLSAtLT48L0E+PEgzPgordHJpZWRKc3RsU3VjY2VzczwvSDM+Cis8UFJFPgorcHJpdmF0ZSBib29sZWFuIDxCPnRyaWVkSnN0bFN1Y2Nlc3M8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkJhc2VIYW5kbGVyVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0Jhc2VIYW5kbGVyVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QmFzZUhhbmRsZXJUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InNldEFjY2Vzc2tleShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QWNjZXNza2V5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBY2Nlc3NrZXk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY2Nlc3NLZXkpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgYWNjZXNzS2V5IGNoYXJhY3Rlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWNjZXNza2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjY2Vzc2tleTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWNjZXNza2V5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgYWNjZXNzS2V5IGNoYXJhY3Rlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFRhYmluZGV4PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRUYWJpbmRleDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RhYkluZGV4KTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIHRhYkluZGV4IHZhbHVlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUYWJpbmRleCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUYWJpbmRleDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VGFiaW5kZXg8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSB0YWJJbmRleCB2YWx1ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SW5kZXhlZChib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SW5kZXhlZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SW5kZXhlZDwvQj4oYm9vbGVhbiZuYnNwO2luZGV4ZWQpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgaW5kZXhlZCB2YWx1ZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJbmRleGVkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEluZGV4ZWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldEluZGV4ZWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBpbmRleGVkIHZhbHVlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE9uY2xpY2s8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE9uY2xpY2s8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvbkNsaWNrKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIG9uQ2xpY2sgZXZlbnQgaGFuZGxlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0T25jbGljaygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRPbmNsaWNrPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbmNsaWNrPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgb25DbGljayBldmVudCBoYW5kbGVyLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRPbmRibGNsaWNrPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRPbmRibGNsaWNrPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25EYmxDbGljayk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBvbkRibENsaWNrIGV2ZW50IGhhbmRsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9uZGJsY2xpY2soKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0T25kYmxjbGljazwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0T25kYmxjbGljazwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9uRGJsQ2xpY2sgZXZlbnQgaGFuZGxlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE9ubW91c2Vkb3duPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRPbm1vdXNlZG93bjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uTW91c2VEb3duKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIG9uTW91c2VEb3duIGV2ZW50IGhhbmRsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9ubW91c2Vkb3duKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE9ubW91c2Vkb3duPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbm1vdXNlZG93bjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9uTW91c2VEb3duIGV2ZW50IGhhbmRsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0T25tb3VzZXVwPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRPbm1vdXNldXA8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvbk1vdXNlVXApPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgb25Nb3VzZVVwIGV2ZW50IGhhbmRsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9ubW91c2V1cCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRPbm1vdXNldXA8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE9ubW91c2V1cDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9uTW91c2VVcCBldmVudCBoYW5kbGVyLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0T25tb3VzZW1vdmU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE9ubW91c2Vtb3ZlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25Nb3VzZU1vdmUpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgb25Nb3VzZU1vdmUgZXZlbnQgaGFuZGxlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0T25tb3VzZW1vdmUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0T25tb3VzZW1vdmU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE9ubW91c2Vtb3ZlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgb25Nb3VzZU1vdmUgZXZlbnQgaGFuZGxlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE9ubW91c2VvdmVyPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRPbm1vdXNlb3ZlcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uTW91c2VPdmVyKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIG9uTW91c2VPdmVyIGV2ZW50IGhhbmRsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9ubW91c2VvdmVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE9ubW91c2VvdmVyPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbm1vdXNlb3ZlcjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9uTW91c2VPdmVyIGV2ZW50IGhhbmRsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE9ubW91c2VvdXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE9ubW91c2VvdXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvbk1vdXNlT3V0KTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIG9uTW91c2VPdXQgZXZlbnQgaGFuZGxlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0T25tb3VzZW91dCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRPbm1vdXNlb3V0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbm1vdXNlb3V0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgb25Nb3VzZU91dCBldmVudCBoYW5kbGVyLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE9ua2V5ZG93bjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0T25rZXlkb3duPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25LZXlEb3duKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIG9uS2V5RG93biBldmVudCBoYW5kbGVyLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRPbmtleWRvd24oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0T25rZXlkb3duPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbmtleWRvd248L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBvbktleURvd24gZXZlbnQgaGFuZGxlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0T25rZXl1cDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0T25rZXl1cDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uS2V5VXApPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgb25LZXlVcCBldmVudCBoYW5kbGVyLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRPbmtleXVwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE9ua2V5dXA8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE9ua2V5dXA8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBvbktleVVwIGV2ZW50IGhhbmRsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE9ua2V5cHJlc3M8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE9ua2V5cHJlc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvbktleVByZXNzKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIG9uS2V5UHJlc3MgZXZlbnQgaGFuZGxlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0T25rZXlwcmVzcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRPbmtleXByZXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbmtleXByZXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgb25LZXlQcmVzcyBldmVudCBoYW5kbGVyLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0T25jaGFuZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE9uY2hhbmdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25DaGFuZ2UpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgb25DaGFuZ2UgZXZlbnQgaGFuZGxlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0T25jaGFuZ2UoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0T25jaGFuZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE9uY2hhbmdlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgb25DaGFuZ2UgZXZlbnQgaGFuZGxlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE9uc2VsZWN0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRPbnNlbGVjdDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uU2VsZWN0KTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIG9uU2VsZWN0IGV2ZW50IGhhbmRsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9uc2VsZWN0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE9uc2VsZWN0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbnNlbGVjdDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9uU2VsZWN0IGV2ZW50IGhhbmRsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0T25ibHVyPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRPbmJsdXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvbkJsdXIpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgb25CbHVyIGV2ZW50IGhhbmRsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9uYmx1cigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRPbmJsdXI8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE9uYmx1cjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9uQmx1ciBldmVudCBoYW5kbGVyLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRPbmZvY3VzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRPbmZvY3VzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b25Gb2N1cyk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBvbkZvY3VzIGV2ZW50IGhhbmRsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE9uZm9jdXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0T25mb2N1czwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0T25mb2N1czwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9uRm9jdXMgZXZlbnQgaGFuZGxlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RGlzYWJsZWQoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldERpc2FibGVkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXREaXNhYmxlZDwvQj4oYm9vbGVhbiZuYnNwO2Rpc2FibGVkKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIGRpc2FibGVkIGV2ZW50IGhhbmRsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldERpc2FibGVkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERpc2FibGVkPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXREaXNhYmxlZDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIGRpc2FibGVkIGV2ZW50IGhhbmRsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFJlYWRvbmx5KGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRSZWFkb25seTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UmVhZG9ubHk8L0I+KGJvb2xlYW4mbmJzcDtyZWFkb25seSk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSByZWFkb25seSBldmVudCBoYW5kbGVyLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZWFkb25seSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSZWFkb25seTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0UmVhZG9ubHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSByZWFkb25seSBldmVudCBoYW5kbGVyLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U3R5bGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFN0eWxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgc3R5bGUgYXR0cmlidXRlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTdHlsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTdHlsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U3R5bGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBzdHlsZSBhdHRyaWJ1dGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFN0eWxlQ2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFN0eWxlQ2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHlsZUNsYXNzKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIHN0eWxlIGNsYXNzIGF0dHJpYnV0ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U3R5bGVDbGFzcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTdHlsZUNsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTdHlsZUNsYXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgc3R5bGUgY2xhc3MgYXR0cmlidXRlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTdHlsZUlkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTdHlsZUlkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGVJZCk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBzdHlsZSBpZCBhdHRyaWJ1dGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFN0eWxlSWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U3R5bGVJZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U3R5bGVJZDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIHN0eWxlIGlkIGF0dHJpYnV0ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWx0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFsdDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWx0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgYWx0ZXJuYXRlIHRleHQgYXR0cmlidXRlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBbHQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFsdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QWx0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWx0KTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIGFsdGVybmF0ZSB0ZXh0IGF0dHJpYnV0ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWx0S2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFsdEtleTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWx0S2V5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QWx0S2V5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRBbHRLZXk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEFsdEtleTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FsdEtleSk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRCdW5kbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QnVuZGxlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRCdW5kbGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBuYW1lIG9mIHRoZSBtZXNzYWdlIHJlc291cmNlcyBidW5kbGUgdG8gdXNlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QnVuZGxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIG5hbWUgb2YgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGJ1bmRsZSB0byB1c2UuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExvY2FsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMb2NhbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldExvY2FsZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIGZvciBvdXIgbG9jYWxlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TG9jYWxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIGZvciBvdXIgbG9jYWxlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUaXRsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUaXRsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VGl0bGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBhZHZpc29yeSB0aXRsZSBhdHRyaWJ1dGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRUaXRsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VGl0bGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0aXRsZSk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBhZHZpc29yeSB0aXRsZSBhdHRyaWJ1dGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFRpdGxlS2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFRpdGxlS2V5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRUaXRsZUtleTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWR2aXNvcnkgdGl0bGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRUaXRsZUtleTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VGl0bGVLZXk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0aXRsZUtleSk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFkdmlzb3J5IHRpdGxlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2U8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm1lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsaXRlcmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHRleHQgc3BlY2lmaWVkIGJ5IHRoZSBsaXRlcmFsIHZhbHVlIG9yIHRoZSBtZXNzYWdlIHJlc291cmNlcworIGtleSwgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5saXRlcmFsPC9DT0RFPiAtIExpdGVyYWwgdGV4dCB2YWx1ZSBvciA8Y29kZT5udWxsPC9jb2RlPjxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSByZXNvdXJjZXMga2V5IG9yIDxjb2RlPm51bGw8L2NvZGU+Cis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYm90aCBhcmd1bWVudHMgYXJlIG5vbi1udWxsPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRKc3RsTG9vcEluZGV4KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEpzdGxMb29wSW5kZXg8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLkludGVnZXIgPEI+Z2V0SnN0bExvb3BJbmRleDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitwcmVwYXJlSW5kZXg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPnByZXBhcmVJbmRleDwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO2hhbmRsZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkFwcGVuZHMgYmVhbiBuYW1lIHdpdGggaW5kZXggaW4gYnJhY2tldHMgZm9yIHRhZ3Mgd2l0aAorICAndHJ1ZScgdmFsdWUgaW4gJ2luZGV4ZWQnIGF0dHJpYnV0ZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aGFuZGxlcnM8L0NPREU+IC0gVGhlIFN0cmluZ0J1ZmZlciB0aGF0IG91dHB1dCB3aWxsIGJlIGFwcGVuZGVkIHRvLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmICdpbmRleGVkJyB0YWcgdXNlZCBvdXRzaWRlIG9mIGl0ZXJhdGUgdGFnLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJlcGFyZVN0eWxlcygpIj48IS0tIC0tPjwvQT48SDM+CitwcmVwYXJlU3R5bGVzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcmVwYXJlU3R5bGVzPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByZXBhcmVzIHRoZSBzdHlsZSBhdHRyaWJ1dGVzIGZvciBpbmNsdXNpb24gaW4gdGhlIGNvbXBvbmVudCdzIEhUTUwgdGFnLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBwcmVwYXJlZCBTdHJpbmcgZm9yIGluY2x1c2lvbiBpbiB0aGUgSFRNTCB0YWcuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgaW52YWxpZCBhdHRyaWJ1dGVzIGFyZSBzcGVjaWZpZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByZXBhcmVFdmVudEhhbmRsZXJzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ByZXBhcmVFdmVudEhhbmRsZXJzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcmVwYXJlRXZlbnRIYW5kbGVyczwvQj4oKTwvUFJFPgorPERMPgorPEREPlByZXBhcmVzIHRoZSBldmVudCBoYW5kbGVycyBmb3IgaW5jbHVzaW9uIGluIHRoZSBjb21wb25lbnQncyBIVE1MIHRhZy4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgcHJlcGFyZWQgU3RyaW5nIGZvciBpbmNsdXNpb24gaW4gdGhlIEhUTUwgdGFnLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj48IS0tIC0tPjwvQT48SDM+CitwcmVwYXJlTW91c2VFdmVudHM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPnByZXBhcmVNb3VzZUV2ZW50czwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO2hhbmRsZXJzKTwvUFJFPgorPERMPgorPEREPlByZXBhcmVzIHRoZSBtb3VzZSBldmVudCBoYW5kbGVycywgYXBwZW5kaW5nIHRoZW0gdG8gdGhlIHRoZSBnaXZlbgorIFN0cmluZ0J1ZmZlci4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aGFuZGxlcnM8L0NPREU+IC0gVGhlIFN0cmluZ0J1ZmZlciB0aGF0IG91dHB1dCB3aWxsIGJlIGFwcGVuZGVkIHRvLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+PCEtLSAtLT48L0E+PEgzPgorcHJlcGFyZUtleUV2ZW50czwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJlcGFyZUtleUV2ZW50czwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO2hhbmRsZXJzKTwvUFJFPgorPERMPgorPEREPlByZXBhcmVzIHRoZSBrZXlib2FyZCBldmVudCBoYW5kbGVycywgYXBwZW5kaW5nIHRoZW0gdG8gdGhlIHRoZSBnaXZlbgorIFN0cmluZ0J1ZmZlci4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aGFuZGxlcnM8L0NPREU+IC0gVGhlIFN0cmluZ0J1ZmZlciB0aGF0IG91dHB1dCB3aWxsIGJlIGFwcGVuZGVkIHRvLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPjwhLS0gLS0+PC9BPjxIMz4KK3ByZXBhcmVUZXh0RXZlbnRzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5wcmVwYXJlVGV4dEV2ZW50czwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO2hhbmRsZXJzKTwvUFJFPgorPERMPgorPEREPlByZXBhcmVzIHRoZSB0ZXh0IGV2ZW50IGhhbmRsZXJzLCBhcHBlbmRpbmcgdGhlbSB0byB0aGUgdGhlIGdpdmVuCisgU3RyaW5nQnVmZmVyLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5oYW5kbGVyczwvQ09ERT4gLSBUaGUgU3RyaW5nQnVmZmVyIHRoYXQgb3V0cHV0IHdpbGwgYmUgYXBwZW5kZWQgdG8uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPjwhLS0gLS0+PC9BPjxIMz4KK3ByZXBhcmVGb2N1c0V2ZW50czwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJlcGFyZUZvY3VzRXZlbnRzPC9CPihqYXZhLmxhbmcuU3RyaW5nQnVmZmVyJm5ic3A7aGFuZGxlcnMpPC9QUkU+Cis8REw+Cis8REQ+UHJlcGFyZXMgdGhlIGZvY3VzIGV2ZW50IGhhbmRsZXJzLCBhcHBlbmRpbmcgdGhlbSB0byB0aGUgdGhlIGdpdmVuCisgU3RyaW5nQnVmZmVyLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5oYW5kbGVyczwvQ09ERT4gLSBUaGUgU3RyaW5nQnVmZmVyIHRoYXQgb3V0cHV0IHdpbGwgYmUgYXBwZW5kZWQgdG8uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1hodG1sKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzWGh0bWw8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmlzWGh0bWw8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5BbGxvd3MgSFRNTCB0YWdzIHRvIGZpbmQgb3V0IGlmIHRoZXkncmUgbmVzdGVkIHdpdGhpbiBhbiAlbHQ7aHRtbDpodG1sJmd0OyB0YWcgdGhhdAorIGhhcyB4aHRtbCBzZXQgdG8gdHJ1ZS4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD50cnVlIGlmIHRoZSB0YWcgaXMgbmVzdGVkIHdpdGhpbiBhbiBodG1sIHRhZyB3aXRoIHhodG1sIHNldCB0byB0cnVlLCBmYWxzZQorIG90aGVyd2lzZS48RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RWxlbWVudENsb3NlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEVsZW1lbnRDbG9zZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RWxlbWVudENsb3NlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgY2xvc2luZyBicmFjZSBmb3IgYW4gaW5wdXQgZWxlbWVudCBkZXBlbmRpbmcgb24geGh0bWwgc3RhdHVzLiAgVGhlIHRhZworIG11c3QgYmUgbmVzdGVkIHdpdGhpbiBhbiAlbHQ7aHRtbDpodG1sJmd0OyB0YWcgdGhhdCBoYXMgeGh0bWwgc2V0IHRvIHRydWUuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+U3RyaW5nIC0gJmd0OyBpZiB4aHRtbCBpcyBmYWxzZSwgLyZndDsgaWYgeGh0bWwgaXMgdHJ1ZTxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorbG9va3VwUHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmxvb2t1cFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YmVhbk5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5TZWFyY2hlcyBhbGwgc2NvcGVzIGZvciB0aGUgYmVhbiBhbmQgY2FsbHMgQmVhblV0aWxzLmdldFByb3BlcnR5KCkgd2l0aCB0aGUgCisgZ2l2ZW4gYXJndW1lbnRzIGFuZCBjb252ZXJ0cyBhbnkgZXhjZXB0aW9ucyBpbnRvIEpzcEV4Y2VwdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbk5hbWU8L0NPREU+IC0gVGhlIG5hbWUgb2YgdGhlIG9iamVjdCB0byBnZXQgdGhlIHByb3BlcnR5IGZyb20uPEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBnZXQuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQmFzZUhhbmRsZXJUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmFmMGNhZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbApAQCAtMCwwICsxLDc5NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0Jhc2VJbnB1dFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnLEJhc2VJbnB1dFRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQmFzZUlucHV0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0Jhc2VJbnB1dFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkJhc2VJbnB1dFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBCYXNlSW5wdXRUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj5UZXh0YXJlYVRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgYWJzdHJhY3QgY2xhc3MgPEI+QmFzZUlucHV0VGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvREw+CisKKzxQPgorQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgdGhlIHZhcmlvdXMgaW5wdXQgdGFncy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjY29scyI+Y29sczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbnVtYmVyIG9mIGNoYXJhY3RlciBjb2x1bW5zIGZvciB0aGlzIGZpZWxkLCBvciBuZWdhdGl2ZQorIGZvciBubyBsaW1pdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWF4bGVuZ3RoIj5tYXhsZW5ndGg8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgYWxsb3dlZCwgb3IgbmVnYXRpdmUgZm9yIG5vIGxpbWl0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBmaWVsZCAoYW5kIGFzc29jaWF0ZWQgcHJvcGVydHkpIGJlaW5nIHByb2Nlc3NlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcm93cyI+cm93czwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbnVtYmVyIG9mIHJvd3MgZm9yIHRoaXMgZmllbGQsIG9yIG5lZ2F0aXZlIGZvciBubyBsaW1pdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB2YWx1ZSBmb3IgdGhpcyBmaWVsZCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gdG8gcmV0cmlldmUgdGhlCisgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBmcm9tIG91ciBhc3NvY2lhdGVkIGJlYW4uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2luZGV4ZWQiPmluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI0Jhc2VJbnB1dFRhZygpIj5CYXNlSW5wdXRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRDb2xzKCkiPmdldENvbHM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG51bWJlciBvZiBjb2x1bW5zIGZvciB0aGlzIGZpZWxkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldE1heGxlbmd0aCgpIj5nZXRNYXhsZW5ndGg8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIG1heGltdW0gbGVuZ3RoIGFsbG93ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0Um93cygpIj5nZXRSb3dzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBudW1iZXIgb2Ygcm93cyBmb3IgdGhpcyBmaWVsZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRTaXplKCkiPmdldFNpemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHNpemUgb2YgdGhpcyBmaWVsZCAoc3lub255bSBmb3IgPGNvZGU+Z2V0Q29scygpPC9jb2RlPikuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZpZWxkIHZhbHVlIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRDb2xzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb2xzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbHMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIG51bWJlciBvZiBjb2x1bW5zIGZvciB0aGlzIGZpZWxkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldE1heGxlbmd0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWF4bGVuZ3RoPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21heGxlbmd0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgbWF4aW11bSBsZW5ndGggYWxsb3dlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Um93cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um93czwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb3dzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBudW1iZXIgb2Ygcm93cyBmb3IgdGhpcyBmaWVsZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRTaXplKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTaXplPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NpemUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHNpemUgb2YgdGhpcyBmaWVsZCAoc3lub255bSBmb3IgPGNvZGU+c2V0Q29scygpPC9jb2RlPikuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBmaWVsZCB2YWx1ZSAoaWYgYW55KS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb2xzIj48IS0tIC0tPjwvQT48SDM+Citjb2xzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jb2xzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBudW1iZXIgb2YgY2hhcmFjdGVyIGNvbHVtbnMgZm9yIHRoaXMgZmllbGQsIG9yIG5lZ2F0aXZlCisgZm9yIG5vIGxpbWl0LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWF4bGVuZ3RoIj48IS0tIC0tPjwvQT48SDM+CittYXhsZW5ndGg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm1heGxlbmd0aDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyBhbGxvd2VkLCBvciBuZWdhdGl2ZSBmb3Igbm8gbGltaXQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZmllbGQgKGFuZCBhc3NvY2lhdGVkIHByb3BlcnR5KSBiZWluZyBwcm9jZXNzZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyb3dzIj48IS0tIC0tPjwvQT48SDM+Cityb3dzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5yb3dzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBudW1iZXIgb2Ygcm93cyBmb3IgdGhpcyBmaWVsZCwgb3IgbmVnYXRpdmUgZm9yIG5vIGxpbWl0LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgZm9yIHRoaXMgZmllbGQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IHRvIHJldHJpZXZlIHRoZQorIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgZnJvbSBvdXIgYXNzb2NpYXRlZCBiZWFuLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkJhc2VJbnB1dFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitCYXNlSW5wdXRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5CYXNlSW5wdXRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldENvbHMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29sczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Q29sczwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgZm9yIHRoaXMgZmllbGQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENvbHMoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENvbHM8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbHM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb2xzKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgZm9yIHRoaXMgZmllbGQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbHM8L0NPREU+IC0gVGhlIG5ldyBudW1iZXIgb2YgY29sdW1uczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWF4bGVuZ3RoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1heGxlbmd0aDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TWF4bGVuZ3RoPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBtYXhpbXVtIGxlbmd0aCBhbGxvd2VkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNYXhsZW5ndGgoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE1heGxlbmd0aDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TWF4bGVuZ3RoPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWF4bGVuZ3RoKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgbWF4aW11bSBsZW5ndGggYWxsb3dlZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWF4bGVuZ3RoPC9DT0RFPiAtIFRoZSBuZXcgbWF4aW11bSBsZW5ndGg8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgcHJvcGVydHkgbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJvcGVydHk8L0NPREU+IC0gVGhlIG5ldyBwcm9wZXJ0eSBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSb3dzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJvd3M8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFJvd3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG51bWJlciBvZiByb3dzIGZvciB0aGlzIGZpZWxkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRSb3dzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRSb3dzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRSb3dzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cm93cyk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIG51bWJlciBvZiByb3dzIGZvciB0aGlzIGZpZWxkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yb3dzPC9DT0RFPiAtIFRoZSBuZXcgbnVtYmVyIG9mIHJvd3M8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNpemUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U2l6ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgc2l6ZSBvZiB0aGlzIGZpZWxkIChzeW5vbnltIGZvciA8Y29kZT5nZXRDb2xzKCk8L2NvZGU+KS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2l6ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2l6ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NpemUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBzaXplIG9mIHRoaXMgZmllbGQgKHN5bm9ueW0gZm9yIDxjb2RlPnNldENvbHMoKTwvY29kZT4pLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zaXplPC9DT0RFPiAtIFRoZSBuZXcgc2l6ZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmaWVsZCB2YWx1ZSAoaWYgYW55KS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWx1ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgZmllbGQgdmFsdWUgKGlmIGFueSkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFRoZSBuZXcgZmllbGQgdmFsdWUsIG9yIDxjb2RlPm51bGw8L2NvZGU+IHRvIHJldHJpZXZlIHRoZQorICBjb3JyZXNwb25kaW5nIHByb3BlcnR5IGZyb20gdGhlIGJlYW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdGhpbmcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdGhpbmcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9CYXNlSW5wdXRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJCYXNlSW5wdXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTBlYzc2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbApAQCAtMCwwICsxLDQ4MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0Jhc2VUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VUYWcsQmFzZVRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQmFzZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9CYXNlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQmFzZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBCYXNlVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QmFzZVRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvREw+CisKKzxQPgorUmVuZGVycyBhbiBIVE1MIDxiYXNlPiBlbGVtZW50IHdpdGggYW4gaHJlZiAKKyBhdHRyaWJ1dGUgcG9pbnRpbmcgdG8gdGhlIGFic29sdXRlIGxvY2F0aW9uIG9mIHRoZSBlbmNsb3NpbmcgSlNQIHBhZ2UuIFRoaXMgCisgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbiBuZXN0ZWQgaW5zaWRlIGEgaGVhZCB0YWcgYm9keS4gVGhlIHByZXNlbmNlIAorIG9mIHRoaXMgdGFnIGFsbG93cyB0aGUgYnJvd3NlciB0byByZXNvbHZlIHJlbGF0aXZlIFVSTCdzIHRvIGltYWdlcywKKyBDU1Mgc3R5bGVzaGVldHMgIGFuZCBvdGhlciByZXNvdXJjZXMgaW4gYSBtYW5uZXIgaW5kZXBlbmRlbnQgb2YgdGhlIFVSTAorIHVzZWQgdG8gY2FsbCB0aGUgQWN0aW9uU2VydmxldC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkx1aXMgQXJpYXMgPGx1aXNAZWx5c2lhLmNvbT4sIERhdmlkIEdyYWhhbTwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjc2VydmVyIj5zZXJ2ZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNlcnZlciBuYW1lIHRvIHVzZSBpbnN0ZWFkIG9mIHJlcXVlc3QuZ2V0U2VydmVyTmFtZSgpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjdGFyZ2V0Ij50YXJnZXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHRhcmdldCB3aW5kb3cgZm9yIHRoaXMgYmFzZSByZWZlcmVuY2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjQmFzZVRhZygpIj5CYXNlVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjZ2V0U2VydmVyKCkiPmdldFNlcnZlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIHNlcnZlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjZ2V0VGFyZ2V0KCkiPmdldFRhcmdldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjcmVuZGVyQmFzZUVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgaW50LCBqYXZhLmxhbmcuU3RyaW5nKSI+cmVuZGVyQmFzZUVsZW1lbnQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NoZW1lLAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3NlcnZlck5hbWUsCisgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtwb3J0LAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlciBhIGZ1bGx5IGZvcm1lZCBIVE1MICZsdDtiYXNlJmd0OyBlbGVtZW50IGFuZCByZXR1cm4gaXQgYXMgYSBTdHJpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sI3NldFNlcnZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2VydmVyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NlcnZlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHNlcnZlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjc2V0VGFyZ2V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYXJnZXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGFyZ2V0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0VuZFRhZywgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZWxlYXNlLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNlcnZlciI+PCEtLSAtLT48L0E+PEgzPgorc2VydmVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zZXJ2ZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZlciBuYW1lIHRvIHVzZSBpbnN0ZWFkIG9mIHJlcXVlc3QuZ2V0U2VydmVyTmFtZSgpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGFyZ2V0Ij48IS0tIC0tPjwvQT48SDM+Cit0YXJnZXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRhcmdldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdGFyZ2V0IHdpbmRvdyBmb3IgdGhpcyBiYXNlIHJlZmVyZW5jZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJCYXNlVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0Jhc2VUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5CYXNlVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRUYXJnZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VGFyZ2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRUYXJnZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFRhcmdldChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VGFyZ2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRUYXJnZXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0YXJnZXQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW5kZXJCYXNlRWxlbWVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CityZW5kZXJCYXNlRWxlbWVudDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cmVuZGVyQmFzZUVsZW1lbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY2hlbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2VydmVyTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3BvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJpKTwvUFJFPgorPERMPgorPEREPlJlbmRlciBhIGZ1bGx5IGZvcm1lZCBIVE1MICZsdDtiYXNlJmd0OyBlbGVtZW50IGFuZCByZXR1cm4gaXQgYXMgYSBTdHJpbmcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNjaGVtZTwvQ09ERT4gLSBUaGUgc2NoZW1lIHVzZWQgaW4gdGhlIHVybCAoaWUuIGh0dHAgb3IgaHR0cHMpLjxERD48Q09ERT5zZXJ2ZXJOYW1lPC9DT0RFPiAtIDxERD48Q09ERT5wb3J0PC9DT0RFPiAtIDxERD48Q09ERT51cmk8L0NPREU+IC0gVGhlIHBvcnRpb24gb2YgdGhlIHVybCBmcm9tIHRoZSBwcm90b2NvbCBuYW1lIHVwIHRvIHRoZSBxdWVyeSAKKyBzdHJpbmcuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlN0cmluZyBBbiBIVE1MICZsdDtiYXNlJmd0OyBlbGVtZW50LjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTZXJ2ZXIoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2VydmVyPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTZXJ2ZXI8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBzZXJ2ZXIuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+U3RyaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTZXJ2ZXIoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNlcnZlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2VydmVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2VydmVyKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIHNlcnZlci4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmVyPC9DT0RFPiAtIFRoZSBzZXJ2ZXIgdG8gc2V0PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9CYXNlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQmFzZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzcxNjJkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sCkBAIC0wLDAgKzEsNTg3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQnV0dG9uVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CdXR0b25UYWcsQnV0dG9uVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJCdXR0b25UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQnV0dG9uVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkJ1dHRvblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBCdXR0b25UYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJ1dHRvblRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5CdXR0b25UYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9ETD4KKworPFA+CitSZW5kZXJzIGFuIEhUTUwgQlVUVE9OIHRhZyB3aXRoaW4gdGhlIFN0cnV0cyBmcmFtZXdvcmsuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5Eb24gQ2xhc2VuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJ1dHRvblRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGJ1dHRvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjdGV4dCI+dGV4dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2luZGV4ZWQiPmluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjQnV0dG9uVGFnKCkiPkJ1dHRvblRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NhdmUgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50IChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgcHJvcGVydHkgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbGFiZWwgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgcHJvcGVydHkgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGxhYmVsIHZhbHVlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEVsZW1lbnRDbG9zZSgpIj5nZXRFbGVtZW50Q2xvc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEluZGV4ZWQoKSI+Z2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlS2V5KCkiPmdldFRpdGxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb2t1cFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRJbmRleGVkKGJvb2xlYW4pIj5zZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGJ1dHRvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRleHQiPjwhLS0gLS0+PC9BPjxIMz4KK3RleHQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbHVlIj48IS0tIC0tPjwvQT48SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQnV0dG9uVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0J1dHRvblRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkJ1dHRvblRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBUaGUgcHJvcGVydHkgbmFtZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBsYWJlbCB2YWx1ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWx1ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgbGFiZWwgdmFsdWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFRoZSBsYWJlbCB2YWx1ZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvQWZ0ZXJCb2R5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvQWZ0ZXJCb2R5PC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvQWZ0ZXJCb2R5PC9CPigpCisgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlNhdmUgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50IChpZiBhbnkpLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvQWZ0ZXJCb2R5PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvQWZ0ZXJCb2R5PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorIDxwPgorIFN1cHBvcnQgZm9yIGluZGV4ZWQgcHJvcGVydHkgc2luY2UgU3RydXRzIDEuMQorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQnV0dG9uVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkJ1dHRvblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODE3MjNhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sCkBAIC0wLDAgKzEsNjA1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQ2FuY2VsVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DYW5jZWxUYWcsQ2FuY2VsVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJDYW5jZWxUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQ2FuY2VsVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDYW5jZWxUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgQ2FuY2VsVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DYW5jZWxUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+Q2FuY2VsVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvREw+CisKKzxQPgorVGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiY2FuY2VsIi4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkplZmYgSHV0Y2hpbnNvbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DYW5jZWxUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgYnV0dG9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCN0ZXh0Ij50ZXh0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+aW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjQ2FuY2VsVGFnKCkiPkNhbmNlbFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NhdmUgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgcHJvcGVydHkgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbGFiZWwgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgcHJvcGVydHkgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGxhYmVsIHZhbHVlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEVsZW1lbnRDbG9zZSgpIj5nZXRFbGVtZW50Q2xvc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEluZGV4ZWQoKSI+Z2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlS2V5KCkiPmdldFRpdGxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb2t1cFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRJbmRleGVkKGJvb2xlYW4pIj5zZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBidXR0b24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0ZXh0Ij48IS0tIC0tPjwvQT48SDM+Cit0ZXh0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj50ZXh0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB2YWx1ZSBvZiB0aGUgYnV0dG9uIGxhYmVsLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkNhbmNlbFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitDYW5jZWxUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5DYW5jZWxUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgcHJvcGVydHkgbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJvcGVydHk8L0NPREU+IC0gVGhlIHByb3BlcnR5IG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbGFiZWwgdmFsdWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VmFsdWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGxhYmVsIHZhbHVlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBUaGUgbGFiZWwgdmFsdWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0FmdGVyQm9keSgpIj48IS0tIC0tPjwvQT48SDM+Citkb0FmdGVyQm9keTwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0FmdGVyQm9keTwvQj4oKQorICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5TYXZlIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGZyb20gdGhlIGJvZHkgY29udGVudC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NhbmNlbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ2FuY2VsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjk3ZGUyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwKQEAgLTAsMCArMSw2NjggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitDaGVja2JveFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2hlY2tib3hUYWcsQ2hlY2tib3hUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkNoZWNrYm94VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NoZWNrYm94VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ2hlY2tib3hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgQ2hlY2tib3hUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNoZWNrYm94VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwiPk5lc3RlZENoZWNrYm94VGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5DaGVja2JveFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0RMPgorCis8UD4KK1RhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImNoZWNrYm94Ii4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2hlY2tib3hUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHByb3BlcnR5IG5hbWUgZm9yIHRoaXMgZmllbGQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjdGV4dCI+dGV4dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2VydmVyIHZhbHVlIGZvciB0aGlzIG9wdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+aW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNDaGVja2JveFRhZygpIj5DaGVja2JveFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPmRvQWZ0ZXJCb2R5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgcmVtYWluZGVyIG9mIHRoaXMgcGFnZSBub3JtYWxseS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2VuZXJhdGUgdGhlIHJlcXVpcmVkIGlucHV0IHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc2VydmVyIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHNlcnZlciB2YWx1ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGZvciB0aGlzIGZpZWxkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGV4dCI+PCEtLSAtLT48L0E+PEgzPgordGV4dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmVyIHZhbHVlIGZvciB0aGlzIG9wdGlvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJDaGVja2JveFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitDaGVja2JveFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNoZWNrYm94VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBUaGUgbmV3IHByb3BlcnR5IG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgc2VydmVyIHZhbHVlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBzZXJ2ZXIgdmFsdWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFRoZSBuZXcgc2VydmVyIHZhbHVlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkdlbmVyYXRlIHRoZSByZXF1aXJlZCBpbnB1dCB0YWcuCisgPHA+CisgU3VwcG9ydCBmb3IgaW5kZXhlZCBwcm9wZXJ0eSBzaW5jZSBTdHJ1dHMgMS4xCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0FmdGVyQm9keSgpIj48IS0tIC0tPjwvQT48SDM+Citkb0FmdGVyQm9keTwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0FmdGVyQm9keTwvQj4oKQorICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5TYXZlIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGZyb20gdGhlIGJvZHkgY29udGVudC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHJlbWFpbmRlciBvZiB0aGlzIHBhZ2Ugbm9ybWFsbHkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9DaGVja2JveFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNoZWNrYm94VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZDZlNGEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwKQEAgLTAsMCArMSwzNjkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitDb25zdGFudHMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNvbnN0YW50cyxDb25zdGFudHMgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkNvbnN0YW50cyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db25zdGFudHMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbnN0YW50cy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIENvbnN0YW50czwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNvbnN0YW50czwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Db25zdGFudHM8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDwvREw+CisKKzxQPgorTWFuaWZlc3QgY29uc3RhbnRzIGZvciB0aGlzIHBhY2thZ2UuCis8UD4KKworPFA+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwjQkVBTl9LRVkiPkJFQU5fS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhdHRyaWJ1dGUga2V5IGZvciB0aGUgYmVhbiBvdXIgZm9ybSBpcyByZWxhdGVkIHRvLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sI0NBTkNFTF9QUk9QRVJUWSI+Q0FOQ0VMX1BST1BFUlRZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBwcm9wZXJ0eSB1bmRlciB3aGljaCBhIENhbmNlbCBidXR0b24gcHJlc3MgaXMgcmVwb3J0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwjQ0FOQ0VMX1BST1BFUlRZX1giPkNBTkNFTF9QUk9QRVJUWV9YPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBwcm9wZXJ0eSB1bmRlciB3aGljaCBhIENhbmNlbCBidXR0b24gcHJlc3MgaXMgcmVwb3J0ZWQsIGlmIHRoZQorIENhbmNlbCBidXR0b24gaXMgcmVuZGVyZWQgYXMgYW4gaW1hZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwjRk9STV9LRVkiPkZPUk1fS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhdHRyaWJ1dGUga2V5IGZvciB0aGUgZm9ybSB0YWcgaXRzZWxmLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sI1BhY2thZ2UiPlBhY2thZ2U8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sI1NFTEVDVF9LRVkiPlNFTEVDVF9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBzZWxlY3QgdGFnIGl0c2VsZi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCNUT0tFTl9LRVkiPlRPS0VOX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcHJvcGVydHkgdW5kZXIgd2hpY2ggYSB0cmFuc2FjdGlvbiB0b2tlbiBpcyByZXBvcnRlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sI0NvbnN0YW50cygpIj5Db25zdGFudHM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJQYWNrYWdlIj48IS0tIC0tPjwvQT48SDM+CitQYWNrYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+UGFja2FnZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGlzIHBhY2thZ2UuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNvbnN0YW50cy5QYWNrYWdlIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkJFQU5fS0VZIj48IS0tIC0tPjwvQT48SDM+CitCRUFOX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkJFQU5fS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhdHRyaWJ1dGUga2V5IGZvciB0aGUgYmVhbiBvdXIgZm9ybSBpcyByZWxhdGVkIHRvLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5Db25zdGFudHMuQkVBTl9LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQ0FOQ0VMX1BST1BFUlRZIj48IS0tIC0tPjwvQT48SDM+CitDQU5DRUxfUFJPUEVSVFk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5DQU5DRUxfUFJPUEVSVFk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHByb3BlcnR5IHVuZGVyIHdoaWNoIGEgQ2FuY2VsIGJ1dHRvbiBwcmVzcyBpcyByZXBvcnRlZC4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ29uc3RhbnRzLkNBTkNFTF9QUk9QRVJUWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJDQU5DRUxfUFJPUEVSVFlfWCI+PCEtLSAtLT48L0E+PEgzPgorQ0FOQ0VMX1BST1BFUlRZX1g8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5DQU5DRUxfUFJPUEVSVFlfWDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgdW5kZXIgd2hpY2ggYSBDYW5jZWwgYnV0dG9uIHByZXNzIGlzIHJlcG9ydGVkLCBpZiB0aGUKKyBDYW5jZWwgYnV0dG9uIGlzIHJlbmRlcmVkIGFzIGFuIGltYWdlLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5Db25zdGFudHMuQ0FOQ0VMX1BST1BFUlRZX1giPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRk9STV9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK0ZPUk1fS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+Rk9STV9LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBmb3JtIHRhZyBpdHNlbGYuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNvbnN0YW50cy5GT1JNX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJTRUxFQ1RfS0VZIj48IS0tIC0tPjwvQT48SDM+CitTRUxFQ1RfS0VZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+U0VMRUNUX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYXR0cmlidXRlIGtleSBmb3IgdGhlIHNlbGVjdCB0YWcgaXRzZWxmLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5Db25zdGFudHMuU0VMRUNUX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJUT0tFTl9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK1RPS0VOX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPlRPS0VOX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgdW5kZXIgd2hpY2ggYSB0cmFuc2FjdGlvbiB0b2tlbiBpcyByZXBvcnRlZC4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ29uc3RhbnRzLlRPS0VOX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29uc3RhbnRzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0NvbnN0YW50czwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbnN0YW50czwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbnN0YW50cy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29uc3RhbnRzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjYyN2ZhZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbApAQCAtMCwwICsxLDY0NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0Vycm9yc1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRXJyb3JzVGFnLEVycm9yc1RhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRXJyb3JzVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0Vycm9yc1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Db25zdGFudHMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJFcnJvcnNUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgRXJyb3JzVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5FcnJvcnNUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRFcnJvcnNUYWcuaHRtbCI+TmVzdGVkRXJyb3JzVGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5FcnJvcnNUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK0N1c3RvbSB0YWcgdGhhdCByZW5kZXJzIGVycm9yIG1lc3NhZ2VzIGlmIGFuIGFwcHJvcHJpYXRlIHJlcXVlc3QgYXR0cmlidXRlCisgaGFzIGJlZW4gY3JlYXRlZC4gIFRoZSB0YWcgbG9va3MgZm9yIGEgcmVxdWVzdCBhdHRyaWJ1dGUgd2l0aCBhIHJlc2VydmVkCisga2V5LCBhbmQgYXNzdW1lcyB0aGF0IGl0IGlzIGVpdGhlciBhIFN0cmluZywgYSBTdHJpbmcgYXJyYXksIGNvbnRhaW5pbmcKKyBtZXNzYWdlIGtleXMgdG8gYmUgbG9va2VkIHVwIGluIHRoZSBtb2R1bGUncyBNZXNzYWdlUmVzb3VyY2VzLCBvcgorIGFuIG9iamVjdCBvZiB0eXBlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnM8L2NvZGU+LgorIDxwPgorIFRoZSBmb2xsb3dpbmcgb3B0aW9uYWwgbWVzc2FnZSBrZXlzIHdpbGwgYmUgdXRpbGl6ZWQgaWYgY29ycmVzcG9uZGluZworIG1lc3NhZ2VzIGV4aXN0IGZvciB0aGVtIGluIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZXM6CisgPHVsPgorIDxsaT48Yj5lcnJvcnMuaGVhZGVyPC9iPiAtIElmIHByZXNlbnQsIHRoZSBjb3JyZXNwb25kaW5nIG1lc3NhZ2Ugd2lsbCBiZQorICAgICByZW5kZXJlZCBwcmlvciB0byB0aGUgaW5kaXZpZHVhbCBsaXN0IG9mIGVycm9yIG1lc3NhZ2VzLjwvbGk+CisgPGxpPjxiPmVycm9ycy5mb290ZXI8L2I+IC0gSWYgcHJlc2VudCwgdGhlIGNvcnJlc3BvbmRpbmcgbWVzc2FnZSB3aWxsIGJlCisgICAgIHJlbmRlcmVkIGZvbGxvd2luZyB0aGUgaW5kaXZpZHVhbCBsaXN0IG9mIGVycm9yIG1lc3NhZ2VzLjwvbGk+CisgPGxpPjxiPmVycm9ycy5wcmVmaXg8L2I+IC0gSWYgcHJlc2VudCwgdGhlIGNvcnJlc3BvbmRpbmcgbWVzc2FnZSB3aWxsIGJlCisgICAgIHJlbmRlcmVkIGJlZm9yZSBlYWNoIGluZGl2aWR1YWwgZXJyb3IgbWVzc2FnZS48L2xpPgorIDxsaT48Yj5lcnJvcnMuc3VmZml4PC9iPiAtIElmIHByZXNlbnQsIHRoZSBjb3JyZXNwb25kaW5nIG1lc3NhZ2Ugd2lsbCBiZQorICAgICByZW5kZXJlZCBhZnRlciBlYWNoIGluZGl2aWR1YWwgZXJyb3IgbWVzc2FnZS48L2xpPgorIDwvdWw+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkVycm9yc1RhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2J1bmRsZSI+YnVuZGxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3Igb3VyIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO2phdmEudXRpbC5Mb2NhbGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgTG9jYWxlLmdldERlZmF1bHQoKSBkaXJlY3RseS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2xpbmVFbmQiPmxpbmVFbmQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGxpbmUgZW5kaW5nIHN0cmluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjbG9jYWxlIj5sb2NhbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3Igb3VyIGxvY2FsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlcXVlc3QgYXR0cmlidXRlIGtleSBmb3Igb3VyIGVycm9yIG1lc3NhZ2VzIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGZvciB3aGljaCBlcnJvciBtZXNzYWdlcyBzaG91bGQgYmUgcmV0dXJuZWQsCisgb3IgPGNvZGU+bnVsbDwvY29kZT4gdG8gcmV0dXJuIGFsbCBlcnJvcnMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNFcnJvcnNUYWcoKSI+RXJyb3JzVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlciB0aGUgc3BlY2lmaWVkIGVycm9yIG1lc3NhZ2VzIGlmIHRoZXJlIGFyZSBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtidW5kbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvRW5kVGFnLCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJidW5kbGUiPjwhLS0gLS0+PC9BPjxIMz4KK2J1bmRsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+YnVuZGxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3Igb3VyIHJlc291cmNlcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRlZmF1bHRMb2NhbGUiPjwhLS0gLS0+PC9BPjxIMz4KK2RlZmF1bHRMb2NhbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgamF2YS51dGlsLkxvY2FsZSA8Qj5kZWZhdWx0TG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBMb2NhbGUuZ2V0RGVmYXVsdCgpIGRpcmVjdGx5LjwvST4KKzxQPgorPEREPlRoZSBkZWZhdWx0IGxvY2FsZSBvbiBvdXIgc2VydmVyLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGluZUVuZCI+PCEtLSAtLT48L0E+PEgzPgorbGluZUVuZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmxpbmVFbmQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGxpbmUgZW5kaW5nIHN0cmluZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvY2FsZSI+PCEtLSAtLT48L0E+PEgzPgorbG9jYWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5sb2NhbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3Igb3VyIGxvY2FsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSByZXF1ZXN0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciBlcnJvciBtZXNzYWdlcyAoaWYgYW55KS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGZvciB3aGljaCBlcnJvciBtZXNzYWdlcyBzaG91bGQgYmUgcmV0dXJuZWQsCisgb3IgPGNvZGU+bnVsbDwvY29kZT4gdG8gcmV0dXJuIGFsbCBlcnJvcnMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRXJyb3JzVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0Vycm9yc1RhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkVycm9yc1RhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0QnVuZGxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QnVuZGxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QnVuZGxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TG9jYWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TG9jYWxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TG9jYWxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZW5kZXIgdGhlIHNwZWNpZmllZCBlcnJvciBtZXNzYWdlcyBpZiB0aGVyZSBhcmUgYW55LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRXJyb3JzVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZpbGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkVycm9yc1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMTBhOTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sCkBAIC0wLDAgKzEsMzYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorRmlsZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRmlsZVRhZyxGaWxlVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJGaWxlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0ZpbGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRmlsZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBGaWxlVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRmlsZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwiPk5lc3RlZEZpbGVUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkZpbGVUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0RMPgorCis8UD4KK0N1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJmaWxlIi4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRmlsZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2FjY2VwdCI+YWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3JlZGlzcGxheSI+cmVkaXNwbGF5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjdHlwZSI+dHlwZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2NvbHMiPmNvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtYXhsZW5ndGgiPm1heGxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3Jvd3MiPnJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpbmRleGVkIj5pbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwjRmlsZVRhZygpIj5GaWxlVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXRBY2NlcHQoKSI+Z2V0QWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0UmVkaXNwbGF5KCkiPmdldFJlZGlzcGxheTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldEFjY2VwdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldFJlZGlzcGxheShib29sZWFuKSI+c2V0UmVkaXNwbGF5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldENvbHMoKSI+Z2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldE1heGxlbmd0aCgpIj5nZXRNYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFJvd3MoKSI+Z2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFNpemUoKSI+Z2V0U2l6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Q29scyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldE1heGxlbmd0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Um93cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFNpemUoamF2YS5sYW5nLlN0cmluZykiPnNldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEVsZW1lbnRDbG9zZSgpIj5nZXRFbGVtZW50Q2xvc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEluZGV4ZWQoKSI+Z2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlS2V5KCkiPmdldFRpdGxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb2t1cFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRJbmRleGVkKGJvb2xlYW4pIj5zZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJGaWxlVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0ZpbGVUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5GaWxlVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLgorPFA+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRmlsZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGaWxlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWciPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU2NjY1OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwKQEAgLTAsMCArMSwxNTc3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorRm9ybVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRm9ybVRhZyxGb3JtVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJGb3JtVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0Zvcm1UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGb3JtVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIEZvcm1UYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZvcm1UYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwiPk5lc3RlZEZvcm1UYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkZvcm1UYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK0N1c3RvbSB0YWcgdGhhdCByZXByZXNlbnRzIGFuIGlucHV0IGZvcm0sIGFzc29jaWF0ZWQgd2l0aCBhIGJlYW4gd2hvc2UKKyBwcm9wZXJ0aWVzIGNvcnJlc3BvbmQgdG8gdGhlIHZhcmlvdXMgZmllbGRzIG9mIHRoZSBmb3JtLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbiwgTWFydGluIENvb3BlciwgSmFtZXMgVHVybmVyLCBEYXZpZCBHcmFoYW08L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRm9ybVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNhY3Rpb24iPmFjdGlvbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYWN0aW9uIFVSTCB0byB3aGljaCB0aGlzIGZvcm0gc2hvdWxkIGJlIHN1Ym1pdHRlZCwgaWYgYW55LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjYmVhbk5hbWUiPmJlYW5OYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBmb3JtIGJlYW4gdG8gKGNyZWF0ZSBhbmQpIHVzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2JlYW5TY29wZSI+YmVhblNjb3BlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzY29wZSBvZiB0aGUgZm9ybSBiZWFuIHRvIChjcmVhdGUgYW5kKSB1c2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNiZWFuVHlwZSI+YmVhblR5cGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHR5cGUgb2YgdGhlIGZvcm0gYmVhbiB0byAoY3JlYXRlIGFuZCkgdXNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZW5jdHlwZSI+ZW5jdHlwZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29udGVudCBlbmNvZGluZyB0byBiZSB1c2VkIG9uIGEgUE9TVCBzdWJtaXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNmb2N1cyI+Zm9jdXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGZpZWxkIHRvIHJlY2VpdmUgZm9jdXMsIGlmIGFueS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2ZvY3VzSW5kZXgiPmZvY3VzSW5kZXg8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGluZGV4IGluIHRoZSBmb2N1cyBmaWVsZCBhcnJheSB0byByZWNlaXZlIGZvY3VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjbGluZUVuZCI+bGluZUVuZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbGluZSBlbmRpbmcgc3RyaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI21hcHBpbmciPm1hcHBpbmc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEFjdGlvbk1hcHBpbmcgZGVmaW5pbmcgd2hlcmUgd2Ugd2lsbCBiZSBzdWJtaXR0aW5nIHRoaXMgZm9ybTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNtZXRob2QiPm1ldGhvZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVxdWVzdCBtZXRob2QgdXNlZCB3aGVuIHN1Ym1pdHRpbmcgdGhpcyBmb3JtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNtb2R1bGVDb25maWciPm1vZHVsZUNvbmZpZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gZm9yIG91ciBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhdHRyaWJ1dGUga2V5IHVuZGVyIHdoaWNoIG91ciBhc3NvY2lhdGVkIGJlYW4gaXMgc3RvcmVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjb25yZXNldCI+b25yZXNldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgb25SZXNldCBldmVudCBzY3JpcHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNvbnN1Ym1pdCI+b25zdWJtaXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG9uU3VibWl0IGV2ZW50IHNjcmlwdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3Njb3BlIj5zY29wZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2NvcGUgKHJlcXVlc3Qgb3Igc2Vzc2lvbikgdW5kZXIgd2hpY2ggb3VyIGFzc29jaWF0ZWQgYmVhbgorIGlzIHN0b3JlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlIHdlIGFyZSBhc3NvY2lhdGVkIHdpdGggKHNvIHRoYXQgd2UgY2FuCisgaW5pdGlhbGl6ZSB0aGUgPGNvZGU+c2VydmxldDwvY29kZT4gcHJvcGVydHkgb24gYW55IGZvcm0gYmVhbiB0aGF0Cisgd2UgY3JlYXRlKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3N0eWxlIj5zdHlsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc3R5bGUgYXR0cmlidXRlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3N0eWxlQ2xhc3MiPnN0eWxlQ2xhc3M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHN0eWxlIGNsYXNzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3N0eWxlSWQiPnN0eWxlSWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGlkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjdGFyZ2V0Ij50YXJnZXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHdpbmRvdyB0YXJnZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCN0eXBlIj50eXBlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGJlYW4gdG8gYmUgY3JlYXRlZCwgaWYgbmVjZXNzYXJ5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI0Zvcm1UYWcoKSI+Rm9ybVRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW5kZXIgdGhlIGVuZCBvZiB0aGlzIGZvcm0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVuZGVyIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBmb3JtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRBY3Rpb24oKSI+Z2V0QWN0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBhY3Rpb24gVVJMIHRvIHdoaWNoIHRoaXMgZm9ybSBzaG91bGQgYmUgc3VibWl0dGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRCZWFuTmFtZSgpIj5nZXRCZWFuTmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgbmFtZSBvZiB0aGUgZm9ybSBiZWFuIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldEVuY3R5cGUoKSI+Z2V0RW5jdHlwZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgY29udGVudCBlbmNvZGluZyB1c2VkIHdoZW4gc3VibWl0dGluZyB0aGlzIGZvcm0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldEZvY3VzKCkiPmdldEZvY3VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmb2N1cyBmaWVsZCBuYW1lIGZvciB0aGlzIGZvcm0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldEZvY3VzSW5kZXgoKSI+Z2V0Rm9jdXNJbmRleDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIGZvY3VzSW5kZXguPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldE1ldGhvZCgpIj5nZXRNZXRob2Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHJlcXVlc3QgbWV0aG9kIHVzZWQgd2hlbiBzdWJtaXR0aW5nIHRoaXMgZm9ybS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBhdHRyaWJ1dGUga2V5IG5hbWUgb2Ygb3VyIGJlYW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldE9ucmVzZXQoKSI+Z2V0T25yZXNldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgb25SZXNldCBldmVudCBzY3JpcHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldE9uc3VibWl0KCkiPmdldE9uc3VibWl0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBvblN1Ym1pdCBldmVudCBzY3JpcHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBhdHRyaWJ1dGUgc2NvcGUgb2Ygb3VyIGJlYW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBzdHlsZSBhdHRyaWJ1dGUgZm9yIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHN0eWxlIGNsYXNzIGZvciB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBzdHlsZSBpZGVudGlmaWVyIGZvciB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0VGFyZ2V0KCkiPmdldFRhcmdldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgd2luZG93IHRhcmdldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0VHlwZSgpIj5nZXRUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBKYXZhIGNsYXNzIG9mIG91ciBiZWFuLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjaW5pdEZvcm1CZWFuKCkiPmluaXRGb3JtQmVhbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0xvY2F0ZSBvciBjcmVhdGUgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIG91ciBmb3JtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2lzWGh0bWwoKSI+aXNYaHRtbDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdHJ1ZSBpZiB0aGlzIHRhZyBzaG91bGQgcmVuZGVyIGFzIHhodG1sLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjbG9va3VwKCkiPmxvb2t1cDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0xvb2sgdXAgdmFsdWVzIGZvciB0aGUgPGNvZGU+bmFtZTwvY29kZT4sIDxjb2RlPnNjb3BlPC9jb2RlPiwgYW5kCisgPGNvZGU+dHlwZTwvY29kZT4gcHJvcGVydGllcyBpZiBuZWNlc3NhcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3JlbmRlckZvY3VzSmF2YXNjcmlwdCgpIj5yZW5kZXJGb2N1c0phdmFzY3JpcHQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmF0ZXMgamF2YXNjcmlwdCB0byBzZXQgdGhlIGluaXRpYWwgZm9jdXMgdG8gdGhlIGZvcm0gZWxlbWVudCBnaXZlbiBpbiB0aGUKKyB0YWcncyAiZm9jdXMiIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3JlbmRlckZvcm1TdGFydEVsZW1lbnQoKSI+cmVuZGVyRm9ybVN0YXJ0RWxlbWVudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dlbmVyYXRlcyB0aGUgb3BlbmluZyA8Y29kZT4mbHQ7Zm9ybSZndDs8L2NvZGU+IGVsZW1lbnQgd2l0aCBhcHByb3ByaWF0ZQorIGF0dHJpYnV0ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNyZW5kZXJUb2tlbigpIj5yZW5kZXJUb2tlbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dlbmVyYXRlcyBhIGhpZGRlbiBpbnB1dCBmaWVsZCB3aXRoIHRva2VuIGluZm9ybWF0aW9uLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldEFjdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWN0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FjdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgYWN0aW9uIFVSTCB0byB3aGljaCB0aGlzIGZvcm0gc2hvdWxkIGJlIHN1Ym1pdHRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0RW5jdHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0RW5jdHlwZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtlbmN0eXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBjb250ZW50IGVuY29kaW5nIHVzZWQgd2hlbiBzdWJtaXR0aW5nIHRoaXMgZm9ybS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0Rm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldEZvY3VzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZvY3VzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBmb2N1cyBmaWVsZCBuYW1lIGZvciB0aGlzIGZvcm0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldEZvY3VzSW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldEZvY3VzSW5kZXg8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9jdXNJbmRleCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIGZvY3VzSW5kZXguPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldE1ldGhvZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWV0aG9kPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgcmVxdWVzdCBtZXRob2QgdXNlZCB3aGVuIHN1Ym1pdHRpbmcgdGhpcyBmb3JtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGF0dHJpYnV0ZSBrZXkgbmFtZSBvZiBvdXIgYmVhbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0T25yZXNldChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25yZXNldDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvblJlc2V0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBvblJlc2V0IGV2ZW50IHNjcmlwdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0T25zdWJtaXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc3VibWl0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uU3VibWl0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBvblN1Ym1pdCBldmVudCBzY3JpcHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgYXR0cmlidXRlIHNjb3BlIG9mIG91ciBiZWFuLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHN0eWxlIGF0dHJpYnV0ZSBmb3IgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGVDbGFzcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgc3R5bGUgY2xhc3MgZm9yIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3N0eWxlSWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHN0eWxlIGlkZW50aWZpZXIgZm9yIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRUYXJnZXQoamF2YS5sYW5nLlN0cmluZykiPnNldFRhcmdldDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0YXJnZXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHdpbmRvdyB0YXJnZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldFR5cGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgSmF2YSBjbGFzcyBvZiBvdXIgYmVhbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImFjdGlvbiI+PCEtLSAtLT48L0E+PEgzPgorYWN0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5hY3Rpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFjdGlvbiBVUkwgdG8gd2hpY2ggdGhpcyBmb3JtIHNob3VsZCBiZSBzdWJtaXR0ZWQsIGlmIGFueS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1vZHVsZUNvbmZpZyI+PCEtLSAtLT48L0E+PEgzPgorbW9kdWxlQ29uZmlnPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+IDxCPm1vZHVsZUNvbmZpZzwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbW9kdWxlIGNvbmZpZ3VyYXRpb24gZm9yIG91ciBtb2R1bGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbmN0eXBlIj48IS0tIC0tPjwvQT48SDM+CitlbmN0eXBlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5lbmN0eXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZW50IGVuY29kaW5nIHRvIGJlIHVzZWQgb24gYSBQT1NUIHN1Ym1pdC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvY3VzIj48IS0tIC0tPjwvQT48SDM+Citmb2N1czwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Zm9jdXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGZpZWxkIHRvIHJlY2VpdmUgZm9jdXMsIGlmIGFueS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvY3VzSW5kZXgiPjwhLS0gLS0+PC9BPjxIMz4KK2ZvY3VzSW5kZXg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmZvY3VzSW5kZXg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGluZGV4IGluIHRoZSBmb2N1cyBmaWVsZCBhcnJheSB0byByZWNlaXZlIGZvY3VzLiAgVGhpcyBvbmx5IGFwcGxpZXMgaWYgdGhlIGZpZWxkCisgZ2l2ZW4gaW4gdGhlIGZvY3VzIGF0dHJpYnV0ZSBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBmaWVsZHMuICBUaGlzIGFsbG93cyBhIHNwZWNpZmljCisgZmllbGQgaW4gYSByYWRpbyBidXR0b24gYXJyYXkgdG8gcmVjZWl2ZSBmb2N1cyB3aGlsZSBzdGlsbCBhbGxvd2luZyBpbmRleGVkIGZpZWxkCisgbmFtZXMgbGlrZSAibXlSYWRpb0J1dHRvbkZpZWxkWzFdIiB0byBiZSBwYXNzZWQgaW4gdGhlIGZvY3VzIGF0dHJpYnV0ZS4KKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGluZUVuZCI+PCEtLSAtLT48L0E+PEgzPgorbGluZUVuZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmxpbmVFbmQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGxpbmUgZW5kaW5nIHN0cmluZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1hcHBpbmciPjwhLS0gLS0+PC9BPjxIMz4KK21hcHBpbmc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiA8Qj5tYXBwaW5nPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBBY3Rpb25NYXBwaW5nIGRlZmluaW5nIHdoZXJlIHdlIHdpbGwgYmUgc3VibWl0dGluZyB0aGlzIGZvcm0KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXRob2QiPjwhLS0gLS0+PC9BPjxIMz4KK21ldGhvZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bWV0aG9kPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSByZXF1ZXN0IG1ldGhvZCB1c2VkIHdoZW4gc3VibWl0dGluZyB0aGlzIGZvcm0uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhdHRyaWJ1dGUga2V5IHVuZGVyIHdoaWNoIG91ciBhc3NvY2lhdGVkIGJlYW4gaXMgc3RvcmVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib25yZXNldCI+PCEtLSAtLT48L0E+PEgzPgorb25yZXNldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+b25yZXNldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgb25SZXNldCBldmVudCBzY3JpcHQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvbnN1Ym1pdCI+PCEtLSAtLT48L0E+PEgzPgorb25zdWJtaXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm9uc3VibWl0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBvblN1Ym1pdCBldmVudCBzY3JpcHQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzY29wZSI+PCEtLSAtLT48L0E+PEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSAocmVxdWVzdCBvciBzZXNzaW9uKSB1bmRlciB3aGljaCBvdXIgYXNzb2NpYXRlZCBiZWFuCisgaXMgc3RvcmVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2VydmxldCI+PCEtLSAtLT48L0E+PEgzPgorc2VydmxldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPnNlcnZsZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2Ugd2UgYXJlIGFzc29jaWF0ZWQgd2l0aCAoc28gdGhhdCB3ZSBjYW4KKyBpbml0aWFsaXplIHRoZSA8Y29kZT5zZXJ2bGV0PC9jb2RlPiBwcm9wZXJ0eSBvbiBhbnkgZm9ybSBiZWFuIHRoYXQKKyB3ZSBjcmVhdGUpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3R5bGUiPjwhLS0gLS0+PC9BPjxIMz4KK3N0eWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3R5bGUgYXR0cmlidXRlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InN0eWxlQ2xhc3MiPjwhLS0gLS0+PC9BPjxIMz4KK3N0eWxlQ2xhc3M8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnN0eWxlQ2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHN0eWxlIGNsYXNzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InN0eWxlSWQiPjwhLS0gLS0+PC9BPjxIMz4KK3N0eWxlSWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnN0eWxlSWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGlkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGFyZ2V0Ij48IS0tIC0tPjwvQT48SDM+Cit0YXJnZXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRhcmdldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgd2luZG93IHRhcmdldC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KK3R5cGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgYmVhbiB0byBiZSBjcmVhdGVkLCBpZiBuZWNlc3NhcnkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJiZWFuTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorYmVhbk5hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmJlYW5OYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBmb3JtIGJlYW4gdG8gKGNyZWF0ZSBhbmQpIHVzZS4gVGhpcyBpcyBlaXRoZXIgdGhlIHNhbWUKKyBhcyB0aGUgJ25hbWUnIGF0dHJpYnV0ZSwgaWYgdGhhdCB3YXMgc3BlY2lmaWVkLCBvciBpcyBvYnRhaW5lZCBmcm9tIHRoZQorIGFzc29jaWF0ZWQgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gb3RoZXJ3aXNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYmVhblNjb3BlIj48IS0tIC0tPjwvQT48SDM+CitiZWFuU2NvcGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmJlYW5TY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgb2YgdGhlIGZvcm0gYmVhbiB0byAoY3JlYXRlIGFuZCkgdXNlLiBUaGlzIGlzIGVpdGhlciB0aGUgc2FtZQorIGFzIHRoZSAnc2NvcGUnIGF0dHJpYnV0ZSwgaWYgdGhhdCB3YXMgc3BlY2lmaWVkLCBvciBpcyBvYnRhaW5lZCBmcm9tIHRoZQorIGFzc29jaWF0ZWQgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gb3RoZXJ3aXNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYmVhblR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KK2JlYW5UeXBlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5iZWFuVHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdHlwZSBvZiB0aGUgZm9ybSBiZWFuIHRvIChjcmVhdGUgYW5kKSB1c2UuIFRoaXMgaXMgZWl0aGVyIHRoZSBzYW1lCisgYXMgdGhlICd0eXBlJyBhdHRyaWJ1dGUsIGlmIHRoYXQgd2FzIHNwZWNpZmllZCwgb3IgaXMgb2J0YWluZWQgZnJvbSB0aGUKKyBhc3NvY2lhdGVkIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IG90aGVyd2lzZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJGb3JtVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0Zvcm1UYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Gb3JtVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRCZWFuTmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRCZWFuTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QmVhbk5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGZvcm0gYmVhbiBjb3JyZXNwb25kaW5nIHRvIHRoaXMgdGFnLiBUaGVyZSBpcworIG5vIGNvcnJlc3BvbmRpbmcgc2V0dGVyIG1ldGhvZDsgdGhpcyBtZXRob2QgZXhpc3RzIHNvIHRoYXQgdGhlIG5lc3RlZAorIHRhZyBjbGFzc2VzIGNhbiBvYnRhaW4gdGhlIGFjdHVhbCBiZWFuIG5hbWUgZGVyaXZlZCBmcm9tIG90aGVyCisgYXR0cmlidXRlcyBvZiB0aGUgdGFnLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBY3Rpb248L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGFjdGlvbiBVUkwgdG8gd2hpY2ggdGhpcyBmb3JtIHNob3VsZCBiZSBzdWJtaXR0ZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEFjdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBY3Rpb248L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb24pPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBhY3Rpb24gVVJMIHRvIHdoaWNoIHRoaXMgZm9ybSBzaG91bGQgYmUgc3VibWl0dGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5hY3Rpb248L0NPREU+IC0gVGhlIG5ldyBhY3Rpb24gVVJMPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRFbmN0eXBlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEVuY3R5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEVuY3R5cGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGNvbnRlbnQgZW5jb2RpbmcgdXNlZCB3aGVuIHN1Ym1pdHRpbmcgdGhpcyBmb3JtLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRFbmN0eXBlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRFbmN0eXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRFbmN0eXBlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZW5jdHlwZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGNvbnRlbnQgZW5jb2RpbmcgdXNlZCB3aGVuIHN1Ym1pdHRpbmcgdGhpcyBmb3JtLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5lbmN0eXBlPC9DT0RFPiAtIFRoZSBuZXcgY29udGVudCBlbmNvZGluZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Rm9jdXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Rm9jdXM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEZvY3VzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBmb2N1cyBmaWVsZCBuYW1lIGZvciB0aGlzIGZvcm0uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGb2N1czwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Rm9jdXM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb2N1cyk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGZvY3VzIGZpZWxkIG5hbWUgZm9yIHRoaXMgZm9ybS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Zm9jdXM8L0NPREU+IC0gVGhlIG5ldyBmb2N1cyBmaWVsZCBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXRob2QoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWV0aG9kPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXRob2Q8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHJlcXVlc3QgbWV0aG9kIHVzZWQgd2hlbiBzdWJtaXR0aW5nIHRoaXMgZm9ybS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TWV0aG9kKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNZXRob2Q8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE1ldGhvZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21ldGhvZCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHJlcXVlc3QgbWV0aG9kIHVzZWQgd2hlbiBzdWJtaXR0aW5nIHRoaXMgZm9ybS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWV0aG9kPC9DT0RFPiAtIFRoZSBuZXcgcmVxdWVzdCBtZXRob2Q8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgYXR0cmlidXRlIGtleSBuYW1lIG9mIG91ciBiZWFuLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGF0dHJpYnV0ZSBrZXkgbmFtZSBvZiBvdXIgYmVhbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBUaGUgbmV3IGF0dHJpYnV0ZSBrZXkgbmFtZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0T25yZXNldCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRPbnJlc2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRPbnJlc2V0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBvblJlc2V0IGV2ZW50IHNjcmlwdC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0T25yZXNldChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0T25yZXNldDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0T25yZXNldDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29uUmVzZXQpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBvblJlc2V0IGV2ZW50IHNjcmlwdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+b25SZXNldDwvQ09ERT4gLSBUaGUgbmV3IGV2ZW50IHNjcmlwdDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0T25zdWJtaXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0T25zdWJtaXQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE9uc3VibWl0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBvblN1Ym1pdCBldmVudCBzY3JpcHQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE9uc3VibWl0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRPbnN1Ym1pdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0T25zdWJtaXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtvblN1Ym1pdCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIG9uU3VibWl0IGV2ZW50IHNjcmlwdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+b25TdWJtaXQ8L0NPREU+IC0gVGhlIG5ldyBldmVudCBzY3JpcHQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNjb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTY29wZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgYXR0cmlidXRlIHNjb3BlIG9mIG91ciBiZWFuLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNjb3BlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBhdHRyaWJ1dGUgc2NvcGUgb2Ygb3VyIGJlYW4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNjb3BlPC9DT0RFPiAtIFRoZSBuZXcgYXR0cmlidXRlIHNjb3BlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTdHlsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTdHlsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U3R5bGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHN0eWxlIGF0dHJpYnV0ZSBmb3IgdGhpcyB0YWcuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTdHlsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U3R5bGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHlsZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHN0eWxlIGF0dHJpYnV0ZSBmb3IgdGhpcyB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnN0eWxlPC9DT0RFPiAtIFRoZSBuZXcgc3R5bGUgYXR0cmlidXRlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTdHlsZUNsYXNzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFN0eWxlQ2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFN0eWxlQ2xhc3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHN0eWxlIGNsYXNzIGZvciB0aGlzIHRhZy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U3R5bGVDbGFzczwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U3R5bGVDbGFzczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3N0eWxlQ2xhc3MpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBzdHlsZSBjbGFzcyBmb3IgdGhpcyB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnN0eWxlQ2xhc3M8L0NPREU+IC0gVGhlIG5ldyBzdHlsZSBjbGFzczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U3R5bGVJZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTdHlsZUlkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTdHlsZUlkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBzdHlsZSBpZGVudGlmaWVyIGZvciB0aGlzIHRhZy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U3R5bGVJZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U3R5bGVJZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3N0eWxlSWQpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBzdHlsZSBpZGVudGlmaWVyIGZvciB0aGlzIHRhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c3R5bGVJZDwvQ09ERT4gLSBUaGUgbmV3IHN0eWxlIGlkZW50aWZpZXI8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFRhcmdldCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUYXJnZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFRhcmdldDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgd2luZG93IHRhcmdldC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VGFyZ2V0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRUYXJnZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFRhcmdldDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RhcmdldCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHdpbmRvdyB0YXJnZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnRhcmdldDwvQ09ERT4gLSBUaGUgbmV3IHdpbmRvdyB0YXJnZXQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VHlwZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgSmF2YSBjbGFzcyBvZiBvdXIgYmVhbi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VHlwZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBKYXZhIGNsYXNzIG9mIG91ciBiZWFuLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT50eXBlPC9DT0RFPiAtIFRoZSBuZXcgSmF2YSBjbGFzczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZW5kZXIgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGZvcm0uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXRGb3JtQmVhbigpIj48IS0tIC0tPjwvQT48SDM+Citpbml0Rm9ybUJlYW48L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmluaXRGb3JtQmVhbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkxvY2F0ZSBvciBjcmVhdGUgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIG91ciBmb3JtLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbmRlckZvcm1TdGFydEVsZW1lbnQoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVuZGVyRm9ybVN0YXJ0RWxlbWVudDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cmVuZGVyRm9ybVN0YXJ0RWxlbWVudDwvQj4oKTwvUFJFPgorPERMPgorPEREPkdlbmVyYXRlcyB0aGUgb3BlbmluZyA8Y29kZT4mbHQ7Zm9ybSZndDs8L2NvZGU+IGVsZW1lbnQgd2l0aCBhcHByb3ByaWF0ZQorIGF0dHJpYnV0ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVuZGVyVG9rZW4oKSI+PCEtLSAtLT48L0E+PEgzPgorcmVuZGVyVG9rZW48L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnJlbmRlclRva2VuPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2VuZXJhdGVzIGEgaGlkZGVuIGlucHV0IGZpZWxkIHdpdGggdG9rZW4gaW5mb3JtYXRpb24sIGlmIGFueS4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5BIGhpZGRlbiBpbnB1dCBmaWVsZCBjb250YWluaW5nIHRoZSB0b2tlbi48RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVyIHRoZSBlbmQgb2YgdGhpcyBmb3JtLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbmRlckZvY3VzSmF2YXNjcmlwdCgpIj48IS0tIC0tPjwvQT48SDM+CityZW5kZXJGb2N1c0phdmFzY3JpcHQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnJlbmRlckZvY3VzSmF2YXNjcmlwdDwvQj4oKTwvUFJFPgorPERMPgorPEREPkdlbmVyYXRlcyBqYXZhc2NyaXB0IHRvIHNldCB0aGUgaW5pdGlhbCBmb2N1cyB0byB0aGUgZm9ybSBlbGVtZW50IGdpdmVuIGluIHRoZQorIHRhZydzICJmb2N1cyIgYXR0cmlidXRlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb29rdXAoKSI+PCEtLSAtLT48L0E+PEgzPgorbG9va3VwPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5sb29rdXA8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Mb29rIHVwIHZhbHVlcyBmb3IgdGhlIDxjb2RlPm5hbWU8L2NvZGU+LCA8Y29kZT5zY29wZTwvY29kZT4sIGFuZAorIDxjb2RlPnR5cGU8L2NvZGU+IHByb3BlcnRpZXMgaWYgbmVjZXNzYXJ5LgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSByZXF1aXJlZCB2YWx1ZSBjYW5ub3QgYmUgbG9va2VkIHVwPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1hodG1sKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzWGh0bWw8L0gzPgorPFBSRT4KK3ByaXZhdGUgYm9vbGVhbiA8Qj5pc1hodG1sPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0cnVlIGlmIHRoaXMgdGFnIHNob3VsZCByZW5kZXIgYXMgeGh0bWwuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZvY3VzSW5kZXgoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Rm9jdXNJbmRleDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Rm9jdXNJbmRleDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIGZvY3VzSW5kZXguCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+U3RyaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGb2N1c0luZGV4KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGb2N1c0luZGV4PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGb2N1c0luZGV4PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9jdXNJbmRleCk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBmb2N1c0luZGV4LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mb2N1c0luZGV4PC9DT0RFPiAtIFRoZSBmb2N1c0luZGV4IHRvIHNldDwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRm9ybVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcm1UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmMDVjODIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbApAQCAtMCwwICsxLDg1NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0ZyYW1lVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5GcmFtZVRhZyxGcmFtZVRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRnJhbWVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRnJhbWVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRnJhbWVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgRnJhbWVUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTGlua1RhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5GcmFtZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5GcmFtZVRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+PC9ETD4KKworPFA+CitHZW5lcmF0ZSBhbiBIVE1MIDxjb2RlPiZsdDtmcmFtZSZndDs8L2NvZGU+IHRhZyB3aXRoIHNpbWlsYXIgY2FwYWJpbGl0aWVzCisgYXMgdGhvc2UgdGhlIDxjb2RlPiZsdDtodG1sOmxpbmsmZ3Q7PC9jb2RlPiB0YWcgcHJvdmlkZXMgZm9yIGh5cGVybGluaworIGVsZW1lbnRzLiAgVGhlIDxjb2RlPnNyYzwvY29kZT4gZWxlbWVudCBpcyByZW5kZXJlZCB1c2luZyB0aGUgc2FtZSB0ZWNobmlxdWUKKyB0aGF0IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+PENPREU+TGlua1RhZzwvQ09ERT48L0E+IHVzZXMgdG8gcmVuZGVyIHRoZSA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUgb2YgYQorIGh5cGVybGluay4gIEFkZGl0aW9uYWxsLCB0aGUgSFRNTCA0LjAKKyBmcmFtZSB0YWcgYXR0cmlidXRlcyA8Y29kZT5ub3Jlc2l6ZTwvY29kZT4sIDxjb2RlPnNjcm9sbGluZzwvY29kZT4sCisgPGNvZGU+bWFyZ2luaGVpZ2h0PC9jb2RlPiwgPGNvZGU+bWFyZ2lud2lkdGg8L2NvZGU+LAorIDxjb2RlPmZyYW1lYm9yZGVyPC9jb2RlPiwgYW5kIDxjb2RlPmxvbmdkZXNjPC9jb2RlPiBhcmUgc3VwcG9ydGVkLgorIFRoZSBmcmFtZQorIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBpcyByZW5kZXJlZCBiYXNlZCBvbiB0aGUgPGNvZGU+ZnJhbWVOYW1lPC9jb2RlPgorIHByb3BlcnR5LgorCisgTm90ZSB0aGF0IHRoZSB2YWx1ZSBvZiA8Y29kZT5sb25nZGVzYzwvY29kZT4gaXMgaW50ZW5kZWQgdG8gYmUgYSBVUkksIGJ1dAorIGN1cnJlbnRseSBubyByZXdyaXRpbmcgaXMgc3VwcG9ydGVkLiAgVGhlIGF0dHJpYnV0ZSBpcyBzZXQgZGlyZWN0bHkgZnJvbQorIHRoZSBwcm9wZXJ0eSB2YWx1ZS4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Sm9lIEdlcm11c2thLCBDcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZyYW1lVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNmcmFtZWJvcmRlciI+ZnJhbWVib3JkZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGZyYW1lYm9yZGVyIGF0dHJpYnV0ZSB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCAoMSwgMCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjZnJhbWVOYW1lIj5mcmFtZU5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCBmb3IgdGhpcyBmcmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNsb25nZGVzYyI+bG9uZ2Rlc2M8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VVJJIG9mIGEgbG9uZyBkZXNjcmlwdGlvbiBvZiB0aGlzIGZyYW1lIChjb21wbGVtZW50cyB0aXRsZSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNtYXJnaW5oZWlnaHQiPm1hcmdpbmhlaWdodDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWFyZ2luIGhlaWdodCBpbiBwaXhlbHMsIG9yIHplcm8gZm9yIG5vIHNldHRpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNtYXJnaW53aWR0aCI+bWFyZ2lud2lkdGg8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1hcmdpbiB3aWR0aCBpbiBwaXhlbHMsIG9yIHplcm8gZm9yIG5vIHNldHRpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjbm9yZXNpemUiPm5vcmVzaXplPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Nob3VsZCB1c2VycyBiZSBkaXNhbGxvd2VkIHRvIHJlc2l6ZSB0aGUgZnJhbWU/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjc2Nyb2xsaW5nIj5zY3JvbGxpbmc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V2hhdCB0eXBlIG9mIHNjcm9sbGluZyBzaG91bGQgYmUgc3VwcG9ydGVkICh5ZXMsIG5vLCBhdXRvKT88L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTGlua1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2FjdGlvbiI+YWN0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2FuY2hvciI+YW5jaG9yPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2ZvcndhcmQiPmZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjaHJlZiI+aHJlZjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNpbmRleElkIj5pbmRleElkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2xpbmtOYW1lIj5saW5rTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNwYWdlIj5wYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3BhcmFtSWQiPnBhcmFtSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFyYW1OYW1lIj5wYXJhbU5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFyYW1Qcm9wZXJ0eSI+cGFyYW1Qcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNwYXJhbVNjb3BlIj5wYXJhbVNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjdGFyZ2V0Ij50YXJnZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjdGV4dCI+dGV4dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCN0cmFuc2FjdGlvbiI+dHJhbnNhY3Rpb248L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpbmRleGVkIj5pbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI0ZyYW1lVGFnKCkiPkZyYW1lVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJZ25vcmUgdGhlIGVuZCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVuZGVyIHRoZSBhcHByb3ByaWF0ZWx5IGVuY29kZWQgVVJJLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjZ2V0RnJhbWVib3JkZXIoKSI+Z2V0RnJhbWVib3JkZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI2dldEZyYW1lTmFtZSgpIj5nZXRGcmFtZU5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI2dldExvbmdkZXNjKCkiPmdldExvbmdkZXNjPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI2dldE1hcmdpbmhlaWdodCgpIj5nZXRNYXJnaW5oZWlnaHQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjZ2V0TWFyZ2lud2lkdGgoKSI+Z2V0TWFyZ2lud2lkdGg8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI2dldE5vcmVzaXplKCkiPmdldE5vcmVzaXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNnZXRTY3JvbGxpbmcoKSI+Z2V0U2Nyb2xsaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNzZXRGcmFtZWJvcmRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0RnJhbWVib3JkZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZnJhbWVib3JkZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI3NldEZyYW1lTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0RnJhbWVOYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZyYW1lTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwjc2V0TG9uZ2Rlc2MoamF2YS5sYW5nLlN0cmluZykiPnNldExvbmdkZXNjPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvbmdkZXNjKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNzZXRNYXJnaW5oZWlnaHQoaW50KSI+c2V0TWFyZ2luaGVpZ2h0PC9BPjwvQj4oaW50Jm5ic3A7bWFyZ2luaGVpZ2h0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNzZXRNYXJnaW53aWR0aChpbnQpIj5zZXRNYXJnaW53aWR0aDwvQT48L0I+KGludCZuYnNwO21hcmdpbndpZHRoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCNzZXROb3Jlc2l6ZShib29sZWFuKSI+c2V0Tm9yZXNpemU8L0E+PC9CPihib29sZWFuJm5ic3A7bm9yZXNpemUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sI3NldFNjcm9sbGluZyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2Nyb2xsaW5nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njcm9sbGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTGlua1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNjYWxjdWxhdGVVUkwoKSI+Y2FsY3VsYXRlVVJMPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPmRvQWZ0ZXJCb2R5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldEFjdGlvbigpIj5nZXRBY3Rpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0QW5jaG9yKCkiPmdldEFuY2hvcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRGb3J3YXJkKCkiPmdldEZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0SHJlZigpIj5nZXRIcmVmPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldEluZGV4SWQoKSI+Z2V0SW5kZXhJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRMaW5rTmFtZSgpIj5nZXRMaW5rTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UGFnZSgpIj5nZXRQYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFBhcmFtSWQoKSI+Z2V0UGFyYW1JZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYXJhbU5hbWUoKSI+Z2V0UGFyYW1OYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFBhcmFtUHJvcGVydHkoKSI+Z2V0UGFyYW1Qcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYXJhbVNjb3BlKCkiPmdldFBhcmFtU2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0VGFyZ2V0KCkiPmdldFRhcmdldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRUcmFuc2FjdGlvbigpIj5nZXRUcmFuc2FjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRBY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPnNldEFjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRBbmNob3IoamF2YS5sYW5nLlN0cmluZykiPnNldEFuY2hvcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldEhyZWYoamF2YS5sYW5nLlN0cmluZykiPnNldEhyZWY8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0SW5kZXhJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW5kZXhJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRMaW5rTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TGlua05hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFBhcmFtSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1OYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbU5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1Qcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1Qcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRQYXJhbVNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbVNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0VGFyZ2V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYXJnZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0VHJhbnNhY3Rpb24oYm9vbGVhbikiPnNldFRyYW5zYWN0aW9uPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImZyYW1lYm9yZGVyIj48IS0tIC0tPjwvQT48SDM+CitmcmFtZWJvcmRlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+ZnJhbWVib3JkZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZyYW1lYm9yZGVyIGF0dHJpYnV0ZSB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCAoMSwgMCkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmcmFtZU5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK2ZyYW1lTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+ZnJhbWVOYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgZm9yIHRoaXMgZnJhbWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb25nZGVzYyI+PCEtLSAtLT48L0E+PEgzPgorbG9uZ2Rlc2M8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmxvbmdkZXNjPC9CPjwvUFJFPgorPERMPgorPEREPlVSSSBvZiBhIGxvbmcgZGVzY3JpcHRpb24gb2YgdGhpcyBmcmFtZSAoY29tcGxlbWVudHMgdGl0bGUpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWFyZ2luaGVpZ2h0Ij48IS0tIC0tPjwvQT48SDM+CittYXJnaW5oZWlnaHQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+bWFyZ2luaGVpZ2h0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtYXJnaW4gaGVpZ2h0IGluIHBpeGVscywgb3IgemVybyBmb3Igbm8gc2V0dGluZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1hcmdpbndpZHRoIj48IS0tIC0tPjwvQT48SDM+CittYXJnaW53aWR0aDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGludCA8Qj5tYXJnaW53aWR0aDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWFyZ2luIHdpZHRoIGluIHBpeGVscywgb3IgemVybyBmb3Igbm8gc2V0dGluZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5vcmVzaXplIj48IS0tIC0tPjwvQT48SDM+Citub3Jlc2l6ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+bm9yZXNpemU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHVzZXJzIGJlIGRpc2FsbG93ZWQgdG8gcmVzaXplIHRoZSBmcmFtZT8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNjcm9sbGluZyI+PCEtLSAtLT48L0E+PEgzPgorc2Nyb2xsaW5nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zY3JvbGxpbmc8L0I+PC9QUkU+Cis8REw+Cis8REQ+V2hhdCB0eXBlIG9mIHNjcm9sbGluZyBzaG91bGQgYmUgc3VwcG9ydGVkICh5ZXMsIG5vLCBhdXRvKT8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJGcmFtZVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitGcmFtZVRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkZyYW1lVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRGcmFtZWJvcmRlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGcmFtZWJvcmRlcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RnJhbWVib3JkZXI8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZyYW1lYm9yZGVyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGcmFtZWJvcmRlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RnJhbWVib3JkZXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmcmFtZWJvcmRlcik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZyYW1lTmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGcmFtZU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEZyYW1lTmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RnJhbWVOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGcmFtZU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZyYW1lTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZyYW1lTmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExvbmdkZXNjKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExvbmdkZXNjPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRMb25nZGVzYzwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TG9uZ2Rlc2MoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExvbmdkZXNjPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRMb25nZGVzYzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvbmdkZXNjKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWFyZ2luaGVpZ2h0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1hcmdpbmhlaWdodDwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5nZXRNYXJnaW5oZWlnaHQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE1hcmdpbmhlaWdodChpbnQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNYXJnaW5oZWlnaHQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE1hcmdpbmhlaWdodDwvQj4oaW50Jm5ic3A7bWFyZ2luaGVpZ2h0KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWFyZ2lud2lkdGgoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWFyZ2lud2lkdGg8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0TWFyZ2lud2lkdGg8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE1hcmdpbndpZHRoKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE1hcmdpbndpZHRoPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRNYXJnaW53aWR0aDwvQj4oaW50Jm5ic3A7bWFyZ2lud2lkdGgpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROb3Jlc2l6ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROb3Jlc2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0Tm9yZXNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5vcmVzaXplKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXROb3Jlc2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Tm9yZXNpemU8L0I+KGJvb2xlYW4mbmJzcDtub3Jlc2l6ZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNjcm9sbGluZygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTY3JvbGxpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFNjcm9sbGluZzwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2Nyb2xsaW5nKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTY3JvbGxpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNjcm9sbGluZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njcm9sbGluZyk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVyIHRoZSBhcHByb3ByaWF0ZWx5IGVuY29kZWQgVVJJLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5JZ25vcmUgdGhlIGVuZCBvZiB0aGlzIHRhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0ZyYW1lVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZyYW1lVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNDA0MTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwKQEAgLTAsMCArMSw0OTEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitIaWRkZW5UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkhpZGRlblRhZyxIaWRkZW5UYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkhpZGRlblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9IaWRkZW5UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJIaWRkZW5UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgSGlkZGVuVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSGlkZGVuVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEhpZGRlblRhZy5odG1sIj5OZXN0ZWRIaWRkZW5UYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkhpZGRlblRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvREw+CisKKzxQPgorQ3VzdG9tIHRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImhpZGRlbiIuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkhpZGRlblRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sI3dyaXRlIj53cml0ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTaG91bGQgdGhlIHZhbHVlIG9mIHRoaXMgZmllbGQgYWxzbyBiZSByZW5kZXJlZCB0byB0aGUgcmVzcG9uc2U/PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2FjY2VwdCI+YWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3JlZGlzcGxheSI+cmVkaXNwbGF5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjdHlwZSI+dHlwZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2NvbHMiPmNvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtYXhsZW5ndGgiPm1heGxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3Jvd3MiPnJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpbmRleGVkIj5pbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCNIaWRkZW5UYWcoKSI+SGlkZGVuVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmF0ZSB0aGUgcmVxdWlyZWQgaW5wdXQgdGFnLCBmb2xsb3dlZCBieSB0aGUgb3B0aW9uYWwgcmVuZGVyZWQgdGV4dC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCNnZXRXcml0ZSgpIj5nZXRXcml0ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCNzZXRXcml0ZShib29sZWFuKSI+c2V0V3JpdGU8L0E+PC9CPihib29sZWFuJm5ic3A7d3JpdGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXRBY2NlcHQoKSI+Z2V0QWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0UmVkaXNwbGF5KCkiPmdldFJlZGlzcGxheTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldEFjY2VwdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldFJlZGlzcGxheShib29sZWFuKSI+c2V0UmVkaXNwbGF5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldENvbHMoKSI+Z2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldE1heGxlbmd0aCgpIj5nZXRNYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFJvd3MoKSI+Z2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFNpemUoKSI+Z2V0U2l6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Q29scyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldE1heGxlbmd0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Um93cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFNpemUoamF2YS5sYW5nLlN0cmluZykiPnNldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEVsZW1lbnRDbG9zZSgpIj5nZXRFbGVtZW50Q2xvc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEluZGV4ZWQoKSI+Z2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlS2V5KCkiPmdldFRpdGxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb2t1cFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRJbmRleGVkKGJvb2xlYW4pIj5zZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IndyaXRlIj48IS0tIC0tPjwvQT48SDM+Cit3cml0ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+d3JpdGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHRoZSB2YWx1ZSBvZiB0aGlzIGZpZWxkIGFsc28gYmUgcmVuZGVyZWQgdG8gdGhlIHJlc3BvbnNlPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkhpZGRlblRhZygpIj48IS0tIC0tPjwvQT48SDM+CitIaWRkZW5UYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5IaWRkZW5UYWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyB0YWcuCis8UD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFdyaXRlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFdyaXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRXcml0ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0V3JpdGUoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFdyaXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRXcml0ZTwvQj4oYm9vbGVhbiZuYnNwO3dyaXRlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5HZW5lcmF0ZSB0aGUgcmVxdWlyZWQgaW5wdXQgdGFnLCBmb2xsb3dlZCBieSB0aGUgb3B0aW9uYWwgcmVuZGVyZWQgdGV4dC4KKyBTdXBwb3J0IGZvciA8Y29kZT53cml0ZTwvY29kZT4gcHJvcGVydHkgc2luY2UgU3RydXRzIDEuMS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0hpZGRlblRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkhpZGRlblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3ZTVlYTcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sCkBAIC0wLDAgKzEsNTQ2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorSHRtbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSHRtbFRhZyxIdG1sVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJIdG1sVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0h0bWxUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikh0bWxUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgSHRtbFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSHRtbFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkh0bWxUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK1JlbmRlcnMgYW4gSFRNTCA8aHRtbD4gZWxlbWVudCB3aXRoIGFwcHJvcHJpYXRlIGxhbmd1YWdlIGF0dHJpYnV0ZXMgaWYKKyB0aGVyZSBpcyBhIGN1cnJlbnQgTG9jYWxlIGF2YWlsYWJsZSBpbiB0aGUgdXNlcidzIHNlc3Npb24uCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuLCBEYXZpZCBHcmFoYW08L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSHRtbFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNsb2NhbGUiPmxvY2FsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTaG91bGQgd2Ugc2V0IHRoZSBjdXJyZW50IExvY2FsZSBmb3IgdGhpcyB1c2VyIGlmIG5lZWRlZD88L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjeGh0bWwiPnhodG1sPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FyZSB3ZSByZW5kZXJpbmcgYW4geGh0bWwgcGFnZT88L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNIdG1sVGFnKCkiPkh0bWxUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkxvY2FsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjY3VycmVudExvY2FsZSgpIj5jdXJyZW50TG9jYWxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGdldEN1cnJlbnRMb2NhbGUgaW5zdGVhZCBiZWNhdXNlIGl0IG1ha2VzIHRoZSBkaXNwbGF5IGxvZ2ljCisgZWFzaWVyLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5Mb2NhbGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sI2dldEN1cnJlbnRMb2NhbGUoKSI+Z2V0Q3VycmVudExvY2FsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgY3VycmVudCBMb2NhbGUgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNnZXRYaHRtbCgpIj5nZXRYaHRtbDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sI3NldExvY2FsZShib29sZWFuKSI+c2V0TG9jYWxlPC9BPjwvQj4oYm9vbGVhbiZuYnNwO2xvY2FsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCNzZXRYaHRtbChib29sZWFuKSI+c2V0WGh0bWw8L0E+PC9CPihib29sZWFuJm5ic3A7eGh0bWwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2NhbGUiPjwhLS0gLS0+PC9BPjxIMz4KK2xvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+bG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPlNob3VsZCB3ZSBzZXQgdGhlIGN1cnJlbnQgTG9jYWxlIGZvciB0aGlzIHVzZXIgaWYgbmVlZGVkPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ieGh0bWwiPjwhLS0gLS0+PC9BPjxIMz4KK3hodG1sPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj54aHRtbDwvQj48L1BSRT4KKzxETD4KKzxERD5BcmUgd2UgcmVuZGVyaW5nIGFuIHhodG1sIHBhZ2U/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iSHRtbFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitIdG1sVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+SHRtbFRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TG9jYWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0TG9jYWxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMb2NhbGUoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TG9jYWxlPC9CPihib29sZWFuJm5ic3A7bG9jYWxlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0WGh0bWwoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0WGh0bWw8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldFhodG1sPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRYaHRtbChib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0WGh0bWw8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFhodG1sPC9CPihib29sZWFuJm5ic3A7eGh0bWwpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImN1cnJlbnRMb2NhbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorY3VycmVudExvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5Mb2NhbGUgPEI+Y3VycmVudExvY2FsZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBnZXRDdXJyZW50TG9jYWxlIGluc3RlYWQgYmVjYXVzZSBpdCBtYWtlcyB0aGUgZGlzcGxheSBsb2dpYworIGVhc2llci48L0k+Cis8UD4KKzxERD5SZXR1cm4gdGhlIGN1cnJlbnQgTG9jYWxlIGZvciB0aGlzIHJlcXVlc3QsIGNyZWF0aW5nIGEgbmV3IG9uZSBpZgorIG5lY2Vzc2FyeS4gIElmIHRoZXJlIGlzIG5vIGN1cnJlbnQgTG9jYWxlLCBhbmQgbG9jYWxlIHN1cHBvcnQgaXMgbm90CisgcmVxdWVzdGVkLCByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEN1cnJlbnRMb2NhbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q3VycmVudExvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5Mb2NhbGUgPEI+Z2V0Q3VycmVudExvY2FsZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgY3VycmVudCBMb2NhbGUgZm9yIHRoaXMgcmVxdWVzdC4gIElmIHRoZXJlIGlzIG5vIGxvY2FsZSBpbiB0aGUgc2Vzc2lvbiBhbmQKKyB0aGUgbG9jYWxlIGF0dHJpYnV0ZSBpcyBzZXQgdG8gInRydWUiLCB0aGlzIG1ldGhvZCB3aWxsIGNyZWF0ZSBhIExvY2FsZSBiYXNlZCBvbiB0aGUgCisgY2xpZW50J3MgQWNjZXB0LUxhbmd1YWdlIGhlYWRlciBvciB0aGUgc2VydmVyJ3MgZGVmYXVsdCBsb2NhbGUgYW5kIHN0b3JlIGl0IGluIHRoZSAKKyBzZXNzaW9uLiAgVGhpcyB3aWxsIGFsd2F5cyByZXR1cm4gYSBMb2NhbGUgYW5kIG5ldmVyIG51bGwuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvSHRtbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSHRtbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdiZjhkMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sCkBAIC0wLDAgKzEsODg4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorSW1hZ2VUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltYWdlVGFnLEltYWdlVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJJbWFnZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9JbWFnZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbWFnZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBJbWFnZVRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlN1Ym1pdFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWFnZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWFnZVRhZy5odG1sIj5OZXN0ZWRJbWFnZVRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+SW1hZ2VUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT48L0RMPgorCis8UD4KK1RhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImltYWdlIi4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPk9sZWcgViBBbGV4ZWV2PC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltYWdlVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNhbGlnbiI+YWxpZ248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGFsaWdubWVudCBmb3IgdGhpcyBpbWFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNib3JkZXIiPmJvcmRlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYm9yZGVyIHNpemUgYXJvdW5kIHRoZSBpbWFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNwYWdlIj5wYWdlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtb2R1bGUtcmVsYXRpdmUgVVJJIG9mIHRoZSBpbWFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNwYWdlS2V5Ij5wYWdlS2V5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIG1vZHVsZS1yZWxhdGl2ZSBVUkkgb2YgdGhlIGltYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBhdHRyaWJ1dGUgZm9yIHRoZSBpbWFnZSBidXR0b24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc3JjIj5zcmM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIFVSTCBvZiB0aGlzIGltYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NyY0tleSI+c3JjS2V5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBVUkwgb2YgdGhpcyBpbWFnZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU3VibWl0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjdGV4dCI+dGV4dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2luZGV4ZWQiPmluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjSW1hZ2VUYWcoKSI+SW1hZ2VUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNnZXRBbGlnbigpIj5nZXRBbGlnbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFsaWduIGF0dHJpYnV0ZSBpcyBkZXByZWNhdGVkIGluIEhUTUwgNC54LjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldEJvcmRlcigpIj5nZXRCb3JkZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldFBhZ2UoKSI+Z2V0UGFnZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZ2V0UGFnZUtleSgpIj5nZXRQYWdlS2V5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNnZXRTcmMoKSI+Z2V0U3JjPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNnZXRTcmNLZXkoKSI+Z2V0U3JjS2V5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzZXRBbGlnbihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWxpZ248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWxpZ24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BbGlnbiBhdHRyaWJ1dGUgaXMgZGVwcmVjYXRlZCBpbiBIVE1MIDQueC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzZXRCb3JkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEJvcmRlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtib3JkZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldFBhZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldFBhZ2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc2V0UGFnZUtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFnZUtleTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlS2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzZXRTcmMoamF2YS5sYW5nLlN0cmluZykiPnNldFNyYzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzcmMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldFNyY0tleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3JjS2V5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NyY0tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NyYygpIj5zcmM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGJhc2Ugc291cmNlIFVSTCB0aGF0IHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIDxjb2RlPnNyYzwvY29kZT4KKyBwcm9wZXJ0eSBmb3IgdGhpcyBnZW5lcmF0ZWQgZWxlbWVudCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlcmUgaXMKKyBubyBzdWNoIFVSTC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlN1Ym1pdFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImFsaWduIj48IS0tIC0tPjwvQT48SDM+CithbGlnbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+YWxpZ248L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFsaWdubWVudCBmb3IgdGhpcyBpbWFnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJvcmRlciI+PCEtLSAtLT48L0E+PEgzPgorYm9yZGVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5ib3JkZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvcmRlciBzaXplIGFyb3VuZCB0aGUgaW1hZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYWdlIj48IS0tIC0tPjwvQT48SDM+CitwYWdlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtb2R1bGUtcmVsYXRpdmUgVVJJIG9mIHRoZSBpbWFnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhZ2VLZXkiPjwhLS0gLS0+PC9BPjxIMz4KK3BhZ2VLZXk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhZ2VLZXk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgbW9kdWxlLXJlbGF0aXZlIFVSSSBvZiB0aGUgaW1hZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIGF0dHJpYnV0ZSBmb3IgdGhlIGltYWdlIGJ1dHRvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNyYyI+PCEtLSAtLT48L0E+PEgzPgorc3JjPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zcmM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIFVSTCBvZiB0aGlzIGltYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3JjS2V5Ij48IS0tIC0tPjwvQT48SDM+CitzcmNLZXk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNyY0tleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgVVJMIG9mIHRoaXMgaW1hZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iSW1hZ2VUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorSW1hZ2VUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5JbWFnZVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0QWxpZ24oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWxpZ248L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFsaWduPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QWxpZ24gYXR0cmlidXRlIGlzIGRlcHJlY2F0ZWQgaW4gSFRNTCA0LnguPC9JPgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBbGlnbihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QWxpZ248L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEFsaWduPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWxpZ24pPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QWxpZ24gYXR0cmlidXRlIGlzIGRlcHJlY2F0ZWQgaW4gSFRNTCA0LnguPC9JPgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRCb3JkZXIoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Qm9yZGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRCb3JkZXI8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEJvcmRlcihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Qm9yZGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRCb3JkZXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtib3JkZXIpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYWdlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhZ2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhZ2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFnZUtleSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYWdlS2V5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYWdlS2V5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYWdlS2V5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYWdlS2V5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYWdlS2V5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZUtleSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGNsYXNzOiA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPjwvQ09ERT48L0I+PC9ERD4KKzxERD5SZXR1cm4gdGhlIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVzY3JpcHRpb24gY29waWVkIGZyb20gY2xhc3M6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+PC9DT0RFPjwvQj48L0REPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIFRoZSBwcm9wZXJ0eSBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTcmMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U3JjPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTcmM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNyYyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U3JjPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTcmM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzcmMpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTcmNLZXkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U3JjS2V5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTcmNLZXk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNyY0tleShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U3JjS2V5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTcmNLZXk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzcmNLZXkpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuCisgW0luZGV4ZWQgcHJvcGVydHkgc2luY2UgU3RydXRzIDEuMV0KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNyYygpIj48IS0tIC0tPjwvQT48SDM+CitzcmM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNyYzwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgYmFzZSBzb3VyY2UgVVJMIHRoYXQgd2lsbCBiZSByZW5kZXJlZCBpbiB0aGUgPGNvZGU+c3JjPC9jb2RlPgorIHByb3BlcnR5IGZvciB0aGlzIGdlbmVyYXRlZCBlbGVtZW50LCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGVyZSBpcworIG5vIHN1Y2ggVVJMLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9JbWFnZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbWFnZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTYyYjZjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sCkBAIC0wLDAgKzEsMTczMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0ltZ1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSW1nVGFnLEltZ1RhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iSW1nVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0ltZ1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkltZ1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBJbWdUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltZ1RhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWdUYWcuaHRtbCI+TmVzdGVkSW1nVGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5JbWdUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9ETD4KKworPFA+CitHZW5lcmF0ZSBhbiBJTUcgdGFnIHRvIHRoZSBzcGVjaWZpZWQgaW1hZ2UgVVJJLgorIDxwPgorIFRPRE86CisgPHVsPgorICAgPGxpPk1ha2UgdGhlIDxzdHJvbmc+YWx0PC9zdHJvbmc+LCA8c3Ryb25nPnNyYzwvc3Ryb25nPiwgYW5kCisgICAgICAgPHN0cm9uZz5sb3dzcmM8L3N0cm9uZz4gc2V0dGFibGUgZnJvbSBwcm9wZXJ0aWVzIChmb3IgaTE4bik8L2xpPgorIDwvdWw+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPk1pY2hhZWwgV2VzdGJheSwgQ3JhaWcgTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWdUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNhbGlnbiI+YWxpZ248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHByb3BlcnR5IHRvIHNwZWNpZnkgd2hlcmUgdG8gYWxpZ24gdGhlIGltYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNib3JkZXIiPmJvcmRlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYm9yZGVyIHNpemUgYXJvdW5kIHRoZSBpbWFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjaGVpZ2h0Ij5oZWlnaHQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGltYWdlIGhlaWdodC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjaHNwYWNlIj5oc3BhY2U8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGhvcml6b250YWwgc3BhY2luZyBhcm91bmQgdGhlIGltYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNpbWFnZU5hbWUiPmltYWdlTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgaW1hZ2UgbmFtZSBmb3IgbmFtZWQgaW1hZ2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNpc21hcCI+aXNtYXA8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2VydmVyLXNpZGUgaW1hZ2UgbWFwIGRlY2xhcmF0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNsb3dzcmMiPmxvd3NyYzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5UaGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBIVE1MIDQuMDEgc3BlYyBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEKKyBmdXR1cmUgdmVyc2lvbiBvZiBTdHJ1dHMuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSlNQIGJlYW4gbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcGFnZSI+cGFnZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbW9kdWxlLXJlbGF0aXZlIHBhdGgsIHN0YXJ0aW5nIHdpdGggYSBzbGFzaCBjaGFyYWN0ZXIsIG9mIHRoZQorIGltYWdlIHRvIGJlIGRpc3BsYXllZCBieSB0aGlzIHJlbmRlcmVkIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcGFnZUtleSI+cGFnZUtleTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IHVuZGVyIHdoaWNoIHdlIHNob3VsZCBsb29rIHVwIHRoZQorIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdGFnLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3BhcmFtSWQiPnBhcmFtSWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW4gc2l0dWF0aW9ucyB3aGVyZSBhbiBpbWFnZSBpcyBkeW5hbWljYWxseSBnZW5lcmF0ZWQgKHN1Y2ggYXMgdG8gY3JlYXRlCisgYSBjaGFydCBncmFwaCksIHRoaXMgc3BlY2lmaWVzIHRoZSBzaW5nbGUtcGFyYW1ldGVyIHJlcXVlc3QgcGFyYW1ldGVyCisgbmFtZSB0byBnZW5lcmF0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcGFyYW1OYW1lIj5wYXJhbU5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcGFyYW1Qcm9wZXJ0eSI+cGFyYW1Qcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcGFyYW1TY29wZSI+cGFyYW1TY29wZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBzY29wZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBKU1AgYmVhbiBwcm9wZXJ0eSBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzY29wZSI+c2NvcGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNjb3BlIG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZSBwcm9wZXJ0eSwgaWYgYW55LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzcmMiPnNyYzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgaW1hZ2Ugc291cmNlIFVSSS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc3JjS2V5Ij5zcmNLZXk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSB1bmRlciB3aGljaCB3ZSBzaG91bGQgbG9vayB1cCB0aGUKKyA8Y29kZT5zcmM8L2NvZGU+IGF0dHJpYnV0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdGFnLCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3VzZW1hcCI+dXNlbWFwPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NsaWVudC1zaWRlIGltYWdlIG1hcCBkZWNsYXJhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjdnNwYWNlIj52c3BhY2U8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHZlcnRpY2FsIHNwYWNpbmcgYXJvdW5kIHRoZSBpbWFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjd2lkdGgiPndpZHRoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBpbWFnZSB3aWR0aC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+aW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjSW1nVGFnKCkiPkltZ1RhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlciB0aGUgZW5kIG9mIHRoZSBJTUcgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVuZGVyIHRoZSBiZWdpbm5pbmcgb2YgdGhlIElNRyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0QWxpZ24oKSI+Z2V0QWxpZ248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRCb3JkZXIoKSI+Z2V0Qm9yZGVyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0SGVpZ2h0KCkiPmdldEhlaWdodDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldEhzcGFjZSgpIj5nZXRIc3BhY2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRJbWFnZU5hbWUoKSI+Z2V0SW1hZ2VOYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0SXNtYXAoKSI+Z2V0SXNtYXA8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRMb3dzcmMoKSI+Z2V0TG93c3JjPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgSFRNTCA0LjAxIHNwZWMgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhCisgZnV0dXJlIHZlcnNpb24gb2YgU3RydXRzLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRQYWdlKCkiPmdldFBhZ2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRQYWdlS2V5KCkiPmdldFBhZ2VLZXk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRQYXJhbUlkKCkiPmdldFBhcmFtSWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRQYXJhbU5hbWUoKSI+Z2V0UGFyYW1OYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0UGFyYW1Qcm9wZXJ0eSgpIj5nZXRQYXJhbVByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0UGFyYW1TY29wZSgpIj5nZXRQYXJhbVNjb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFNyYygpIj5nZXRTcmM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRTcmNLZXkoKSI+Z2V0U3JjS2V5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0VXNlbWFwKCkiPmdldFVzZW1hcDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFZzcGFjZSgpIj5nZXRWc3BhY2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRXaWR0aCgpIj5nZXRXaWR0aDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRBbGlnbihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWxpZ248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWxpZ24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRCb3JkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEJvcmRlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtib3JkZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRIZWlnaHQoamF2YS5sYW5nLlN0cmluZykiPnNldEhlaWdodDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtoZWlnaHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRIc3BhY2UoamF2YS5sYW5nLlN0cmluZykiPnNldEhzcGFjZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtoc3BhY2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRJbWFnZU5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldEltYWdlTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpbWFnZU5hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRJc21hcChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SXNtYXA8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aXNtYXApPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRMb3dzcmMoamF2YS5sYW5nLlN0cmluZykiPnNldExvd3NyYzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb3dzcmMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRQYWdlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYWdlS2V5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2VLZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRQYXJhbUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbUlkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtSWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRQYXJhbU5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbU5hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRQYXJhbVByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbVByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtUHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRQYXJhbVNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbVNjb3BlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtU2NvcGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRTcmMoamF2YS5sYW5nLlN0cmluZykiPnNldFNyYzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzcmMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRTcmNLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFNyY0tleTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzcmNLZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRVc2VtYXAoamF2YS5sYW5nLlN0cmluZykiPnNldFVzZW1hcDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1c2VtYXApPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRWc3BhY2UoamF2YS5sYW5nLlN0cmluZykiPnNldFZzcGFjZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2c3BhY2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRXaWR0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0V2lkdGg8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7d2lkdGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc3JjKCkiPnNyYzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgYmFzZSBzb3VyY2UgVVJMIHRoYXQgd2lsbCBiZSByZW5kZXJlZCBpbiB0aGUgPGNvZGU+c3JjPC9jb2RlPgorIHByb3BlcnR5IGZvciB0aGlzIGdlbmVyYXRlZCBlbGVtZW50LCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGVyZSBpcworIG5vIHN1Y2ggVVJMLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCN1cmwoamF2YS5sYW5nLlN0cmluZykiPnVybDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHNwZWNpZmllZCBzcmMgVVJMLCBtb2RpZmllZCBhcyBuZWNlc3Nhcnkgd2l0aCBvcHRpb25hbAorIHJlcXVlc3QgcGFyYW1ldGVycy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJhbGlnbiI+PCEtLSAtLT48L0E+PEgzPgorYWxpZ248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFsaWduPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSB0byBzcGVjaWZ5IHdoZXJlIHRvIGFsaWduIHRoZSBpbWFnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJvcmRlciI+PCEtLSAtLT48L0E+PEgzPgorYm9yZGVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5ib3JkZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvcmRlciBzaXplIGFyb3VuZCB0aGUgaW1hZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJoZWlnaHQiPjwhLS0gLS0+PC9BPjxIMz4KK2hlaWdodDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aGVpZ2h0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBpbWFnZSBoZWlnaHQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJoc3BhY2UiPjwhLS0gLS0+PC9BPjxIMz4KK2hzcGFjZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aHNwYWNlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBob3Jpem9udGFsIHNwYWNpbmcgYXJvdW5kIHRoZSBpbWFnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImltYWdlTmFtZSI+PCEtLSAtLT48L0E+PEgzPgoraW1hZ2VOYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pbWFnZU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGltYWdlIG5hbWUgZm9yIG5hbWVkIGltYWdlcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzbWFwIj48IS0tIC0tPjwvQT48SDM+Citpc21hcDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aXNtYXA8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2VydmVyLXNpZGUgaW1hZ2UgbWFwIGRlY2xhcmF0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG93c3JjIj48IS0tIC0tPjwvQT48SDM+Citsb3dzcmM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmxvd3NyYzwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5UaGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBIVE1MIDQuMDEgc3BlYyBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEKKyBmdXR1cmUgdmVyc2lvbiBvZiBTdHJ1dHMuPC9JPgorPFA+Cis8REQ+VGhlIGxvdyByZXNvbHV0aW9uIGltYWdlIHNvdXJjZSBVUkkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSlNQIGJlYW4gbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhZ2UiPjwhLS0gLS0+PC9BPjxIMz4KK3BhZ2U8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoLCBzdGFydGluZyB3aXRoIGEgc2xhc2ggY2hhcmFjdGVyLCBvZiB0aGUKKyBpbWFnZSB0byBiZSBkaXNwbGF5ZWQgYnkgdGhpcyByZW5kZXJlZCB0YWcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYWdlS2V5Ij48IS0tIC0tPjwvQT48SDM+CitwYWdlS2V5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlS2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgdW5kZXIgd2hpY2ggd2Ugc2hvdWxkIGxvb2sgdXAgdGhlCisgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0YWcsIGlmIGFueS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcmFtSWQiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcmFtSWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtSWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SW4gc2l0dWF0aW9ucyB3aGVyZSBhbiBpbWFnZSBpcyBkeW5hbWljYWxseSBnZW5lcmF0ZWQgKHN1Y2ggYXMgdG8gY3JlYXRlCisgYSBjaGFydCBncmFwaCksIHRoaXMgc3BlY2lmaWVzIHRoZSBzaW5nbGUtcGFyYW1ldGVyIHJlcXVlc3QgcGFyYW1ldGVyCisgbmFtZSB0byBnZW5lcmF0ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcmFtTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorcGFyYW1OYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gbmFtZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcmFtUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcmFtUHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJhbVNjb3BlIj48IS0tIC0tPjwvQT48SDM+CitwYXJhbVNjb3BlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbVNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHNjb3BlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSlNQIGJlYW4gcHJvcGVydHkgbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNjb3BlIj48IS0tIC0tPjwvQT48SDM+CitzY29wZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZSBwcm9wZXJ0eSwgaWYgYW55LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3JjIj48IS0tIC0tPjwvQT48SDM+CitzcmM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNyYzwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgaW1hZ2Ugc291cmNlIFVSSS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNyY0tleSI+PCEtLSAtLT48L0E+PEgzPgorc3JjS2V5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zcmNLZXk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSB1bmRlciB3aGljaCB3ZSBzaG91bGQgbG9vayB1cCB0aGUKKyA8Y29kZT5zcmM8L2NvZGU+IGF0dHJpYnV0ZSBmb3IgdGhpcyBnZW5lcmF0ZWQgdGFnLCBpZiBhbnkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ1c2VtYXAiPjwhLS0gLS0+PC9BPjxIMz4KK3VzZW1hcDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dXNlbWFwPC9CPjwvUFJFPgorPERMPgorPEREPkNsaWVudC1zaWRlIGltYWdlIG1hcCBkZWNsYXJhdGlvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZzcGFjZSI+PCEtLSAtLT48L0E+PEgzPgordnNwYWNlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52c3BhY2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZlcnRpY2FsIHNwYWNpbmcgYXJvdW5kIHRoZSBpbWFnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IndpZHRoIj48IS0tIC0tPjwvQT48SDM+Cit3aWR0aDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+d2lkdGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGltYWdlIHdpZHRoLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkltZ1RhZygpIj48IS0tIC0tPjwvQT48SDM+CitJbWdUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5JbWdUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEFsaWduKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFsaWduPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBbGlnbjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QWxpZ24oamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEFsaWduPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBbGlnbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FsaWduKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Qm9yZGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEJvcmRlcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Qm9yZGVyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRCb3JkZXIoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJvcmRlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Qm9yZGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Ym9yZGVyKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SGVpZ2h0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEhlaWdodDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SGVpZ2h0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRIZWlnaHQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEhlaWdodDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SGVpZ2h0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aGVpZ2h0KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SHNwYWNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEhzcGFjZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SHNwYWNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRIc3BhY2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEhzcGFjZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SHNwYWNlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aHNwYWNlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SW1hZ2VOYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEltYWdlTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SW1hZ2VOYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJbWFnZU5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEltYWdlTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SW1hZ2VOYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aW1hZ2VOYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SXNtYXAoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SXNtYXA8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldElzbWFwPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJc21hcChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SXNtYXA8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldElzbWFwPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aXNtYXApPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRMb3dzcmMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TG93c3JjPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRMb3dzcmM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5UaGlzIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBIVE1MIDQuMDEgc3BlYyBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEKKyBmdXR1cmUgdmVyc2lvbiBvZiBTdHJ1dHMuPC9JPgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMb3dzcmMoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExvd3NyYzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TG93c3JjPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG93c3JjKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhZ2UoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFnZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFnZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFnZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGFnZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGFnZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2UpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYWdlS2V5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhZ2VLZXk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhZ2VLZXk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhZ2VLZXkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhZ2VLZXk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhZ2VLZXk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlS2V5KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFyYW1JZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJhbUlkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYXJhbUlkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYXJhbUlkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbUlkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYXJhbUlkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1JZCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtTmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJhbU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhcmFtTmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFyYW1OYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtTmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtUHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFyYW1Qcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFyYW1Qcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFyYW1Qcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGFyYW1Qcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGFyYW1Qcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtUHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXJhbVNjb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhcmFtU2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhcmFtU2NvcGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhcmFtU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhcmFtU2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtU2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbVNjb3BlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTY29wZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U2NvcGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNyYygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTcmM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFNyYzwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U3JjKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTcmM8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNyYzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NyYyk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNyY0tleSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTcmNLZXk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFNyY0tleTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U3JjS2V5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTcmNLZXk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNyY0tleTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NyY0tleSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFVzZW1hcCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRVc2VtYXA8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFVzZW1hcDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VXNlbWFwKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRVc2VtYXA8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFVzZW1hcDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VzZW1hcCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZzcGFjZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWc3BhY2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZzcGFjZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VnNwYWNlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRWc3BhY2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZzcGFjZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZzcGFjZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFdpZHRoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFdpZHRoPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRXaWR0aDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0V2lkdGgoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFdpZHRoPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRXaWR0aDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3dpZHRoKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZW5kZXIgdGhlIGJlZ2lubmluZyBvZiB0aGUgSU1HIHRhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlbmRlciB0aGUgZW5kIG9mIHRoZSBJTUcgdGFnLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3JjKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NyYzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c3JjPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBiYXNlIHNvdXJjZSBVUkwgdGhhdCB3aWxsIGJlIHJlbmRlcmVkIGluIHRoZSA8Y29kZT5zcmM8L2NvZGU+CisgcHJvcGVydHkgZm9yIHRoaXMgZ2VuZXJhdGVkIGVsZW1lbnQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZXJlIGlzCisgbm8gc3VjaCBVUkwuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InVybChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgordXJsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj51cmw8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBzcGVjaWZpZWQgc3JjIFVSTCwgbW9kaWZpZWQgYXMgbmVjZXNzYXJ5IHdpdGggb3B0aW9uYWwKKyByZXF1ZXN0IHBhcmFtZXRlcnMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnVybDwvQ09ERT4gLSBUaGUgVVJMIHRvIGJlIG1vZGlmaWVkIChvciBudWxsIGlmIHRoaXMgdXJsIHdpbGwgbm90IGJlIHVzZWQpCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gZXJyb3Igb2NjdXJzIHByZXBhcmluZyB0aGUgVVJMPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9JbWdUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbWdUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjE4MGJkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbApAQCAtMCwwICsxLDExNzEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitKYXZhc2NyaXB0VmFsaWRhdG9yVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLEphdmFzY3JpcHRWYWxpZGF0b3JUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkphdmFzY3JpcHRWYWxpZGF0b3JUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJKYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIEphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK0N1c3RvbSB0YWcgdGhhdCBnZW5lcmF0ZXMgSmF2YVNjcmlwdCBmb3IgY2xpZW50IHNpZGUgdmFsaWRhdGlvbiBiYXNlZAorIG9uIHRoZSB2YWxpZGF0aW9uIHJ1bGVzIGxvYWRlZCBieSB0aGUgPGNvZGU+VmFsaWRhdG9yUGx1Z0luPC9jb2RlPgorIGRlZmluZWQgaW4gdGhlIHN0cnV0cy1jb25maWcueG1sIGZpbGUuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkRhdmlkIFdpbnRlcmZlbGR0PC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkphdmFzY3JpcHRWYWxpZGF0b3JUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjYnVuZGxlIj5idW5kbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciBvdXIgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjY2RhdGEiPmNkYXRhPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0hpZGUgSmF2YVNjcmlwdCBtZXRob2RzIGluIGEgQ0RBVEEgc2VjdGlvbiBmb3IgWEhUTUwgd2hlbiAidHJ1ZSIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtqYXZhLnV0aWwuTG9jYWxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlRoaXMgdmFyaWFibGUgaXMgbm8gbG9uZ2VyIHVzZWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZHluYW1pY0phdmFzY3JpcHQiPmR5bmFtaWNKYXZhc2NyaXB0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkeW5hbWljIEphdmFTY3JpcHQgb2JqZWN0cyB3aWxsIG9ubHkgYmUgZ2VuZXJhdGVkIGlmIHRoaXMgaXMgc2V0IHRvICJ0cnVlIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI2Zvcm1OYW1lIj5mb3JtTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgZm9ybSB0aGF0IGNvcnJlc3BvbmRzIHdpdGggdGhlIGFjdGlvbiBuYW1lCisgaW4gc3RydXRzLWNvbmZpZy54bWwuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjaHRtbEJlZ2luQ29tbWVudCI+aHRtbEJlZ2luQ29tbWVudDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI2h0bWxDb21tZW50Ij5odG1sQ29tbWVudDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSmF2YVNjcmlwdCBtZXRob2RzIHdpbGwgZW5jbG9zZWQgd2l0aCBodG1sIGNvbW1lbnRzIGlmIHRoaXMgaXMgc2V0IHRvICJ0cnVlIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNodG1sRW5kQ29tbWVudCI+aHRtbEVuZENvbW1lbnQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNsaW5lRW5kIj5saW5lRW5kPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBsaW5lIGVuZGluZyBzdHJpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNtZXRob2ROYW1lIj5tZXRob2ROYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgd2lsbCBiZSB1c2VkIGFzIGlzIGZvciB0aGUgSmF2YVNjcmlwdCB2YWxpZGF0aW9uIG1ldGhvZCBuYW1lIGlmIGl0IGhhcyBhIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNwYWdlIj5wYWdlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIG9mIGEgbXVsdGktcGFydCBmb3JtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjc3JjIj5zcmM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNyYyBhdHRyaWJ1dGUgZm9yIGh0bWwgc2NyaXB0IGVsZW1lbnQgKHVzZWQgdG8gaW5jbHVkZSBhbiBleHRlcm5hbCBzY3JpcHQKKyByZXNvdXJjZSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNzdGF0aWNKYXZhc2NyaXB0Ij5zdGF0aWNKYXZhc2NyaXB0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzdGF0aWMgSmF2YVNjcmlwdCBtZXRob2RzIHdpbGwgb25seSBiZSBwcmludGVkIGlmIHRoaXMgaXMgc2V0IHRvICJ0cnVlIi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI0phdmFzY3JpcHRWYWxpZGF0b3JUYWcoKSI+SmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVuZGVyIHRoZSBKYXZhU2NyaXB0IGZvciB0byBwZXJmb3JtIHZhbGlkYXRpb25zIGJhc2VkIG9uIHRoZSBmb3JtIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI2dldENkYXRhKCkiPmdldENkYXRhPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgY2RhdGEgc2V0dGluZyAidHJ1ZSIgb3IgImZhbHNlIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZ2V0RHluYW1pY0phdmFzY3JpcHQoKSI+Z2V0RHluYW1pY0phdmFzY3JpcHQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHdoZXRoZXIgb3Igbm90IHRvIGdlbmVyYXRlIHRoZSBkeW5hbWljCisgSmF2YVNjcmlwdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZ2V0Rm9ybU5hbWUoKSI+Z2V0Rm9ybU5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHRoZSBrZXkgKGZvcm0gbmFtZSkgdGhhdCB3aWxsIGJlIHVzZWQKKyB0byByZXRyaWV2ZSBhIHNldCBvZiB2YWxpZGF0aW9uIHJ1bGVzIHRvIGJlCisgcGVyZm9ybWVkIG9uIHRoZSBiZWFuIHBhc3NlZCBpbiBmb3IgdmFsaWRhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZ2V0SHRtbENvbW1lbnQoKSI+Z2V0SHRtbENvbW1lbnQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHdoZXRoZXIgb3Igbm90IHRvIGRlbGltaXQgdGhlCisgSmF2YVNjcmlwdCB3aXRoIGh0bWwgY29tbWVudHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNnZXRKYXZhc2NyaXB0QmVnaW4oamF2YS5sYW5nLlN0cmluZykiPmdldEphdmFzY3JpcHRCZWdpbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXRob2RzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgb3BlbmluZyBzY3JpcHQgZWxlbWVudCBhbmQgc29tZSBpbml0aWFsIGphdmFzY3JpcHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNnZXRKYXZhc2NyaXB0RW5kKCkiPmdldEphdmFzY3JpcHRFbmQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBjbG9zaW5nIHNjcmlwdCBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZ2V0SmF2YXNjcmlwdFN0YXRpY01ldGhvZHMob3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JSZXNvdXJjZXMpIj5nZXRKYXZhc2NyaXB0U3RhdGljTWV0aG9kczwvQT48L0I+KG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzb3VyY2VzJm5ic3A7cmVzb3VyY2VzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI2dldE1ldGhvZCgpIj5nZXRNZXRob2Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHRoZSBtZXRob2QgbmFtZSB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgdGhlIEphdmFzY3JpcHQKKyB2YWxpZGF0aW9uIG1ldGhvZCBuYW1lIGlmIGl0IGhhcyBhIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI2dldE5leHRWYXIoamF2YS5sYW5nLlN0cmluZykiPmdldE5leHRWYXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aW5wdXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdmFsdWUgPGNvZGU+bnVsbDwvY29kZT4gd2lsbCBiZSByZXR1cm5lZCBhdCB0aGUgZW5kIG9mIHRoZSBzZXF1ZW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNnZXRQYWdlKCkiPmdldFBhZ2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIG9mIGEgbXVsdGktcGFydCBmb3JtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNnZXRTcmMoKSI+Z2V0U3JjPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0cyB0aGUgc3JjIGF0dHJpYnV0ZSdzIHZhbHVlIHdoZW4gZGVmaW5pbmcKKyB0aGUgaHRtbCBzY3JpcHQgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNnZXRTdGFydEVsZW1lbnQoKSI+Z2V0U3RhcnRFbGVtZW50PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0cyB0aGUgYmVnaW5uaW5nICZsdDtzY3JpcHQmZ3Q7IGVsZW1lbnQgZGVwZW5kaW5nIG9uIHhodG1sIHN0YXR1cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjZ2V0U3RhdGljSmF2YXNjcmlwdCgpIj5nZXRTdGF0aWNKYXZhc2NyaXB0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0cyB3aGV0aGVyIG9yIG5vdCB0byBnZW5lcmF0ZSB0aGUgc3RhdGljCisgSmF2YVNjcmlwdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRydWUgaWYgdGhpcyBpcyBhbiB4aHRtbCBwYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjcmVwbGFjZUNoYXIoamF2YS5sYW5nLlN0cmluZywgaW50LCBjaGFyKSI+cmVwbGFjZUNoYXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aW5wdXQsCisgICAgICAgICAgICBpbnQmbmJzcDtwb3MsCisgICAgICAgICAgICBjaGFyJm5ic3A7Yyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlcGxhY2VzIGEgc2luZ2xlIGNoYXJhY3RlciBpbiBhIDxjb2RlPlN0cmluZzwvY29kZT48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjc2V0Q2RhdGEoamF2YS5sYW5nLlN0cmluZykiPnNldENkYXRhPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NkYXRhKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgY2RhdGEgc3RhdHVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNzZXREeW5hbWljSmF2YXNjcmlwdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0RHluYW1pY0phdmFzY3JpcHQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZHluYW1pY0phdmFzY3JpcHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHdoZXRoZXIgb3Igbm90IHRvIGdlbmVyYXRlIHRoZSBkeW5hbWljCisgSmF2YVNjcmlwdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjc2V0Rm9ybU5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcm1OYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2Zvcm1OYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUga2V5IChmb3JtIG5hbWUpIHRoYXQgd2lsbCBiZSB1c2VkCisgdG8gcmV0cmlldmUgYSBzZXQgb2YgdmFsaWRhdGlvbiBydWxlcyB0byBiZQorIHBlcmZvcm1lZCBvbiB0aGUgYmVhbiBwYXNzZWQgaW4gZm9yIHZhbGlkYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI3NldEh0bWxDb21tZW50KGphdmEubGFuZy5TdHJpbmcpIj5zZXRIdG1sQ29tbWVudDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtodG1sQ29tbWVudCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgd2hldGhlciBvciBub3QgdG8gZGVsaW1pdCB0aGUKKyBKYXZhU2NyaXB0IHdpdGggaHRtbCBjb21tZW50cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwjc2V0TWV0aG9kKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNZXRob2Q8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWV0aG9kTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIG1ldGhvZCBuYW1lIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgSmF2YXNjcmlwdAorIHZhbGlkYXRpb24gbWV0aG9kIG5hbWUgaWYgaXQgaGFzIGEgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sI3NldFBhZ2UoaW50KSI+c2V0UGFnZTwvQT48L0I+KGludCZuYnNwO3BhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIG9mIGEgbXVsdGktcGFydCBmb3JtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNzZXRTcmMoamF2YS5sYW5nLlN0cmluZykiPnNldFNyYzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzcmMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBzcmMgYXR0cmlidXRlJ3MgdmFsdWUgd2hlbiBkZWZpbmluZworIHRoZSBodG1sIHNjcmlwdCBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCNzZXRTdGF0aWNKYXZhc2NyaXB0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdGF0aWNKYXZhc2NyaXB0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3N0YXRpY0phdmFzY3JpcHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHdoZXRoZXIgb3Igbm90IHRvIGdlbmVyYXRlIHRoZSBzdGF0aWMKKyBKYXZhU2NyaXB0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZG9FbmRUYWcsIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImJ1bmRsZSI+PCEtLSAtLT48L0E+PEgzPgorYnVuZGxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5idW5kbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciBvdXIgcmVzb3VyY2VzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmYXVsdExvY2FsZSI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdExvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIDxCPmRlZmF1bHRMb2NhbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyB2YXJpYWJsZSBpcyBubyBsb25nZXIgdXNlZC48L0k+Cis8UD4KKzxERD5UaGUgZGVmYXVsdCBsb2NhbGUgb24gb3VyIHNlcnZlci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZvcm1OYW1lIj48IS0tIC0tPjwvQT48SDM+Citmb3JtTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Zm9ybU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGZvcm0gdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBhY3Rpb24gbmFtZQorIGluIHN0cnV0cy1jb25maWcueG1sLiBTcGVjaWZ5aW5nIGEgZm9ybSBuYW1lIHBsYWNlcyBhCisgJmx0O3NjcmlwdCZndDsgJmx0Oy9zY3JpcHQmZ3Q7IGFyb3VuZCB0aGUgamF2YXNjcmlwdC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxpbmVFbmQiPjwhLS0gLS0+PC9BPjxIMz4KK2xpbmVFbmQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5saW5lRW5kPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsaW5lIGVuZGluZyBzdHJpbmcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYWdlIj48IS0tIC0tPjwvQT48SDM+CitwYWdlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPnBhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgb2YgYSBtdWx0aS1wYXJ0IGZvcm0uCisgT25seSB2YWxpZCB3aGVuIHRoZSBmb3JtTmFtZSBhdHRyaWJ1dGUgaXMgc2V0LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWV0aG9kTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbWV0aG9kTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bWV0aG9kTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGlzIHdpbGwgYmUgdXNlZCBhcyBpcyBmb3IgdGhlIEphdmFTY3JpcHQgdmFsaWRhdGlvbiBtZXRob2QgbmFtZSBpZiBpdCBoYXMgYSB2YWx1ZS4gIFRoaXMgaXMKKyB0aGUgbWV0aG9kIG5hbWUgb2YgdGhlIG1haW4gSmF2YVNjcmlwdCBtZXRob2QgdGhhdCB0aGUgZm9ybSBjYWxscyB0byBwZXJmb3JtIHZhbGlkYXRpb25zLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3RhdGljSmF2YXNjcmlwdCI+PCEtLSAtLT48L0E+PEgzPgorc3RhdGljSmF2YXNjcmlwdDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c3RhdGljSmF2YXNjcmlwdDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3RhdGljIEphdmFTY3JpcHQgbWV0aG9kcyB3aWxsIG9ubHkgYmUgcHJpbnRlZCBpZiB0aGlzIGlzIHNldCB0byAidHJ1ZSIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkeW5hbWljSmF2YXNjcmlwdCI+PCEtLSAtLT48L0E+PEgzPgorZHluYW1pY0phdmFzY3JpcHQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmR5bmFtaWNKYXZhc2NyaXB0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBkeW5hbWljIEphdmFTY3JpcHQgb2JqZWN0cyB3aWxsIG9ubHkgYmUgZ2VuZXJhdGVkIGlmIHRoaXMgaXMgc2V0IHRvICJ0cnVlIi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNyYyI+PCEtLSAtLT48L0E+PEgzPgorc3JjPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zcmM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNyYyBhdHRyaWJ1dGUgZm9yIGh0bWwgc2NyaXB0IGVsZW1lbnQgKHVzZWQgdG8gaW5jbHVkZSBhbiBleHRlcm5hbCBzY3JpcHQKKyByZXNvdXJjZSkuIFRoZSBzcmMgYXR0cmlidXRlIGlzIG9ubHkgcmVjb2duaXplZAorIHdoZW4gdGhlIGZvcm1OYW1lIGF0dHJpYnV0ZSBpcyBzcGVjaWZpZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJodG1sQ29tbWVudCI+PCEtLSAtLT48L0E+PEgzPgoraHRtbENvbW1lbnQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmh0bWxDb21tZW50PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKYXZhU2NyaXB0IG1ldGhvZHMgd2lsbCBlbmNsb3NlZCB3aXRoIGh0bWwgY29tbWVudHMgaWYgdGhpcyBpcyBzZXQgdG8gInRydWUiLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2RhdGEiPjwhLS0gLS0+PC9BPjxIMz4KK2NkYXRhPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jZGF0YTwvQj48L1BSRT4KKzxETD4KKzxERD5IaWRlIEphdmFTY3JpcHQgbWV0aG9kcyBpbiBhIENEQVRBIHNlY3Rpb24gZm9yIFhIVE1MIHdoZW4gInRydWUiLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaHRtbEJlZ2luQ29tbWVudCI+PCEtLSAtLT48L0E+PEgzPgoraHRtbEJlZ2luQ29tbWVudDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPmh0bWxCZWdpbkNvbW1lbnQ8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaHRtbEVuZENvbW1lbnQiPjwhLS0gLS0+PC9BPjxIMz4KK2h0bWxFbmRDb21tZW50PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+aHRtbEVuZENvbW1lbnQ8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkphdmFzY3JpcHRWYWxpZGF0b3JUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorSmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEZvcm1OYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZvcm1OYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGb3JtTmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldHMgdGhlIGtleSAoZm9ybSBuYW1lKSB0aGF0IHdpbGwgYmUgdXNlZAorIHRvIHJldHJpZXZlIGEgc2V0IG9mIHZhbGlkYXRpb24gcnVsZXMgdG8gYmUKKyBwZXJmb3JtZWQgb24gdGhlIGJlYW4gcGFzc2VkIGluIGZvciB2YWxpZGF0aW9uLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGb3JtTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Rm9ybU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZvcm1OYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9ybU5hbWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUga2V5IChmb3JtIG5hbWUpIHRoYXQgd2lsbCBiZSB1c2VkCisgdG8gcmV0cmlldmUgYSBzZXQgb2YgdmFsaWRhdGlvbiBydWxlcyB0byBiZQorIHBlcmZvcm1lZCBvbiB0aGUgYmVhbiBwYXNzZWQgaW4gZm9yIHZhbGlkYXRpb24uCisgU3BlY2lmeWluZyBhIGZvcm0gbmFtZSBwbGFjZXMgYQorICZsdDtzY3JpcHQmZ3Q7ICZsdDsvc2NyaXB0Jmd0OyB0YWcgYXJvdW5kIHRoZSBqYXZhc2NyaXB0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYWdlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0UGFnZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldHMgdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIgb2YgYSBtdWx0aS1wYXJ0IGZvcm0uCisgT25seSBmaWVsZCB2YWxpZGF0aW9ucyB3aXRoIGEgbWF0Y2hpbmcgcGFnZSBudW1lcgorIHdpbGwgYmUgZ2VuZXJhdGVkIHRoYXQgbWF0Y2ggdGhlIGN1cnJlbnQgcGFnZSBudW1iZXIuCisgT25seSB2YWxpZCB3aGVuIHRoZSBmb3JtTmFtZSBhdHRyaWJ1dGUgaXMgc2V0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYWdlKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhZ2U8L0I+KGludCZuYnNwO3BhZ2UpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgY3VycmVudCBwYWdlIG51bWJlciBvZiBhIG11bHRpLXBhcnQgZm9ybS4KKyBPbmx5IGZpZWxkIHZhbGlkYXRpb25zIHdpdGggYSBtYXRjaGluZyBwYWdlIG51bWVyCisgd2lsbCBiZSBnZW5lcmF0ZWQgdGhhdCBtYXRjaCB0aGUgY3VycmVudCBwYWdlIG51bWJlci4KKyBPbmx5IHZhbGlkIHdoZW4gdGhlIGZvcm1OYW1lIGF0dHJpYnV0ZSBpcyBzZXQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1ldGhvZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXRob2Q8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1ldGhvZDwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldHMgdGhlIG1ldGhvZCBuYW1lIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgSmF2YXNjcmlwdAorIHZhbGlkYXRpb24gbWV0aG9kIG5hbWUgaWYgaXQgaGFzIGEgdmFsdWUuICBUaGlzIG92ZXJyaWRlcworIHRoZSBhdXRvLWdlbmVyYXRlZCBtZXRob2QgbmFtZSBiYXNlZCBvbiB0aGUga2V5IChmb3JtIG5hbWUpCisgcGFzc2VkIGluLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNZXRob2QoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE1ldGhvZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TWV0aG9kPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWV0aG9kTmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBtZXRob2QgbmFtZSB0aGF0IHdpbGwgYmUgdXNlZCBmb3IgdGhlIEphdmFzY3JpcHQKKyB2YWxpZGF0aW9uIG1ldGhvZCBuYW1lIGlmIGl0IGhhcyBhIHZhbHVlLiAgVGhpcyBvdmVycmlkZXMKKyB0aGUgYXV0by1nZW5lcmF0ZWQgbWV0aG9kIG5hbWUgYmFzZWQgb24gdGhlIGtleSAoZm9ybSBuYW1lKQorIHBhc3NlZCBpbi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U3RhdGljSmF2YXNjcmlwdCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTdGF0aWNKYXZhc2NyaXB0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTdGF0aWNKYXZhc2NyaXB0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0cyB3aGV0aGVyIG9yIG5vdCB0byBnZW5lcmF0ZSB0aGUgc3RhdGljCisgSmF2YVNjcmlwdC4gIElmIHRoaXMgaXMgc2V0IHRvICd0cnVlJywgd2hpY2gKKyBpcyB0aGUgZGVmYXVsdCwgdGhlIHN0YXRpYyBKYXZhU2NyaXB0IHdpbGwgYmUgZ2VuZXJhdGVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTdGF0aWNKYXZhc2NyaXB0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTdGF0aWNKYXZhc2NyaXB0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTdGF0aWNKYXZhc2NyaXB0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3RhdGljSmF2YXNjcmlwdCk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHdoZXRoZXIgb3Igbm90IHRvIGdlbmVyYXRlIHRoZSBzdGF0aWMKKyBKYXZhU2NyaXB0LiAgSWYgdGhpcyBpcyBzZXQgdG8gJ3RydWUnLCB3aGljaAorIGlzIHRoZSBkZWZhdWx0LCB0aGUgc3RhdGljIEphdmFTY3JpcHQgd2lsbCBiZSBnZW5lcmF0ZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldER5bmFtaWNKYXZhc2NyaXB0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldER5bmFtaWNKYXZhc2NyaXB0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXREeW5hbWljSmF2YXNjcmlwdDwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldHMgd2hldGhlciBvciBub3QgdG8gZ2VuZXJhdGUgdGhlIGR5bmFtaWMKKyBKYXZhU2NyaXB0LiAgSWYgdGhpcyBpcyBzZXQgdG8gJ3RydWUnLCB3aGljaAorIGlzIHRoZSBkZWZhdWx0LCB0aGUgZHluYW1pYyBKYXZhU2NyaXB0IHdpbGwgYmUgZ2VuZXJhdGVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXREeW5hbWljSmF2YXNjcmlwdChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RHluYW1pY0phdmFzY3JpcHQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldER5bmFtaWNKYXZhc2NyaXB0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZHluYW1pY0phdmFzY3JpcHQpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB3aGV0aGVyIG9yIG5vdCB0byBnZW5lcmF0ZSB0aGUgZHluYW1pYworIEphdmFTY3JpcHQuICBJZiB0aGlzIGlzIHNldCB0byAndHJ1ZScsIHdoaWNoCisgaXMgdGhlIGRlZmF1bHQsIHRoZSBkeW5hbWljIEphdmFTY3JpcHQgd2lsbCBiZSBnZW5lcmF0ZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEh0bWxDb21tZW50KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEh0bWxDb21tZW50PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRIdG1sQ29tbWVudDwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldHMgd2hldGhlciBvciBub3QgdG8gZGVsaW1pdCB0aGUKKyBKYXZhU2NyaXB0IHdpdGggaHRtbCBjb21tZW50cy4gIElmIHRoaXMgaXMgc2V0IHRvICd0cnVlJywgd2hpY2gKKyBpcyB0aGUgZGVmYXVsdCwgdGhlIGh0bWxDb21tZW50IHdpbGwgYmUgc3Vycm91bmQgdGhlIEphdmFTY3JpcHQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEh0bWxDb21tZW50KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRIdG1sQ29tbWVudDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SHRtbENvbW1lbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtodG1sQ29tbWVudCk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHdoZXRoZXIgb3Igbm90IHRvIGRlbGltaXQgdGhlCisgSmF2YVNjcmlwdCB3aXRoIGh0bWwgY29tbWVudHMuICBJZiB0aGlzIGlzIHNldCB0byAndHJ1ZScsIHdoaWNoCisgaXMgdGhlIGRlZmF1bHQsIHRoZSBodG1sQ29tbWVudCB3aWxsIGJlIHN1cnJvdW5kIHRoZSBKYXZhU2NyaXB0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTcmMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U3JjPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTcmM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXRzIHRoZSBzcmMgYXR0cmlidXRlJ3MgdmFsdWUgd2hlbiBkZWZpbmluZworIHRoZSBodG1sIHNjcmlwdCBlbGVtZW50LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTcmMoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNyYzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U3JjPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3JjKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIHNyYyBhdHRyaWJ1dGUncyB2YWx1ZSB3aGVuIGRlZmluaW5nCisgdGhlIGh0bWwgc2NyaXB0IGVsZW1lbnQuIFRoZSBzcmMgYXR0cmlidXRlIGlzIG9ubHkgcmVjb2duaXplZAorIHdoZW4gdGhlIGZvcm1OYW1lIGF0dHJpYnV0ZSBpcyBzcGVjaWZpZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVyIHRoZSBKYXZhU2NyaXB0IGZvciB0byBwZXJmb3JtIHZhbGlkYXRpb25zIGJhc2VkIG9uIHRoZSBmb3JtIG5hbWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEphdmFzY3JpcHRCZWdpbihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SmF2YXNjcmlwdEJlZ2luPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRKYXZhc2NyaXB0QmVnaW48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXRob2RzKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIG9wZW5pbmcgc2NyaXB0IGVsZW1lbnQgYW5kIHNvbWUgaW5pdGlhbCBqYXZhc2NyaXB0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRKYXZhc2NyaXB0U3RhdGljTWV0aG9kcyhvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvclJlc291cmNlcykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEphdmFzY3JpcHRTdGF0aWNNZXRob2RzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRKYXZhc2NyaXB0U3RhdGljTWV0aG9kczwvQj4ob3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JSZXNvdXJjZXMmbmJzcDtyZXNvdXJjZXMpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRKYXZhc2NyaXB0RW5kKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEphdmFzY3JpcHRFbmQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEphdmFzY3JpcHRFbmQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBjbG9zaW5nIHNjcmlwdCBlbGVtZW50LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROZXh0VmFyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXROZXh0VmFyPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmV4dFZhcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lucHV0KTwvUFJFPgorPERMPgorPEREPlRoZSB2YWx1ZSA8Y29kZT5udWxsPC9jb2RlPiB3aWxsIGJlIHJldHVybmVkIGF0IHRoZSBlbmQgb2YgdGhlIHNlcXVlbmNlLgorICZuYnNwOyZuYnNwOyZuYnNwOyBleDogInp6IiB3aWxsIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXBsYWNlQ2hhcihqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGNoYXIpIj48IS0tIC0tPjwvQT48SDM+CityZXBsYWNlQ2hhcjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPnJlcGxhY2VDaGFyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7cG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXImbmJzcDtjKTwvUFJFPgorPERMPgorPEREPlJlcGxhY2VzIGEgc2luZ2xlIGNoYXJhY3RlciBpbiBhIDxjb2RlPlN0cmluZzwvY29kZT4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U3RhcnRFbGVtZW50KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFN0YXJ0RWxlbWVudDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFN0YXJ0RWxlbWVudDwvQj4oKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdHMgdGhlIGJlZ2lubmluZyAmbHQ7c2NyaXB0Jmd0OyBlbGVtZW50IGRlcGVuZGluZyBvbiB4aHRtbCBzdGF0dXMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzWGh0bWwoKSI+PCEtLSAtLT48L0E+PEgzPgoraXNYaHRtbDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBib29sZWFuIDxCPmlzWGh0bWw8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRydWUgaWYgdGhpcyBpcyBhbiB4aHRtbCBwYWdlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDZGF0YSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDZGF0YTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Q2RhdGE8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBjZGF0YSBzZXR0aW5nICJ0cnVlIiBvciAiZmFsc2UiLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlN0cmluZyAtICJ0cnVlIiBpZiBKYXZhU2NyaXB0IHdpbGwgYmUgaGlkZGVuIGluIGEgQ0RBVEEgc2VjdGlvbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Q2RhdGEoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENkYXRhPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDZGF0YTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NkYXRhKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIGNkYXRhIHN0YXR1cy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y2RhdGE8L0NPREU+IC0gVGhlIGNkYXRhIHRvIHNldDwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJKYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRmZTIzYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwKQEAgLTAsMCArMSwxNDQzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTGlua1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTGlua1RhZyxMaW5rVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJMaW5rVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0xpbmtUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJMaW5rVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIExpbmtUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj5GcmFtZVRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwiPk5lc3RlZExpbmtUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwiPlJld3JpdGVUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkxpbmtUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9ETD4KKworPFA+CitHZW5lcmF0ZSBhIFVSTC1lbmNvZGVkIGh5cGVybGluayB0byB0aGUgc3BlY2lmaWVkIFVSSS4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW4sIEphbWVzIFR1cm5lcjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5MaW5rVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2FjdGlvbiI+YWN0aW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtb2R1bGUtcmVsYXRpdmUgYWN0aW9uIChiZWdpbm5pbmcgd2l0aCBhIHNsYXNoKSB3aGljaCB3aWxsIGJlCisgY2FsbGVkIGJ5IHRoaXMgbGluazwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjYW5jaG9yIj5hbmNob3I8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGFuY2hvciB0byBiZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZm9yd2FyZCI+Zm9yd2FyZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbG9naWNhbCBmb3J3YXJkIG5hbWUgZnJvbSB3aGljaCB0byByZXRyaWV2ZSB0aGUgaHlwZXJsaW5rIFVSSS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2hyZWYiPmhyZWY8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGh5cGVybGluayBVUkkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNpbmRleElkIj5pbmRleElkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05hbWUgb2YgcGFyYW1ldGVyIHRvIGdlbmVyYXRlIHRvIGhvbGQgaW5kZXggbnVtYmVyPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNsaW5rTmFtZSI+bGlua05hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGxpbmsgbmFtZSBmb3IgbmFtZWQgbGlua3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEpTUCBiZWFuIG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNwYWdlIj5wYWdlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtb2R1bGUtcmVsYXRpdmUgcGFnZSBVUkwgKGJlZ2lubmluZyB3aXRoIGEgc2xhc2gpIHRvIHdoaWNoCisgdGhpcyBoeXBlcmxpbmsgd2lsbCBiZSByZW5kZXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3BhcmFtSWQiPnBhcmFtSWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNpbmdsZS1wYXJhbWV0ZXIgcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZSB0byBnZW5lcmF0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3BhcmFtTmFtZSI+cGFyYW1OYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNwYXJhbVByb3BlcnR5Ij5wYXJhbVByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFyYW1TY29wZSI+cGFyYW1TY29wZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBzY29wZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSlNQIGJlYW4gcHJvcGVydHkgbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3Njb3BlIj5zY29wZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2NvcGUgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCN0YXJnZXQiPnRhcmdldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgd2luZG93IHRhcmdldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3RleHQiPnRleHQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3RyYW5zYWN0aW9uIj50cmFuc2FjdGlvbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbmNsdWRlIHRyYW5zYWN0aW9uIHRva2VuIChpZiBhbnkpIGluIHRoZSBoeXBlcmxpbms/PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2luZGV4ZWQiPmluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNMaW5rVGFnKCkiPkxpbmtUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjY2FsY3VsYXRlVVJMKCkiPmNhbGN1bGF0ZVVSTDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgY29tcGxldGUgVVJMIHRvIHdoaWNoIHRoaXMgaHlwZXJsaW5rIHdpbGwgZGlyZWN0IHRoZSB1c2VyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPmRvQWZ0ZXJCb2R5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW5kZXIgdGhlIGVuZCBvZiB0aGUgaHlwZXJsaW5rLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlciB0aGUgYmVnaW5uaW5nIG9mIHRoZSBoeXBlcmxpbmsuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldEFjdGlvbigpIj5nZXRBY3Rpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0QW5jaG9yKCkiPmdldEFuY2hvcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRGb3J3YXJkKCkiPmdldEZvcndhcmQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0SHJlZigpIj5nZXRIcmVmPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldEluZGV4SWQoKSI+Z2V0SW5kZXhJZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRMaW5rTmFtZSgpIj5nZXRMaW5rTmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UGFnZSgpIj5nZXRQYWdlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFBhcmFtSWQoKSI+Z2V0UGFyYW1JZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYXJhbU5hbWUoKSI+Z2V0UGFyYW1OYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFBhcmFtUHJvcGVydHkoKSI+Z2V0UGFyYW1Qcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYXJhbVNjb3BlKCkiPmdldFBhcmFtU2NvcGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0VGFyZ2V0KCkiPmdldFRhcmdldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRUcmFuc2FjdGlvbigpIj5nZXRUcmFuc2FjdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldEFjdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWN0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FjdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRBbmNob3IoamF2YS5sYW5nLlN0cmluZykiPnNldEFuY2hvcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthbmNob3IpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0Rm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9yd2FyZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3J3YXJkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldEhyZWYoamF2YS5sYW5nLlN0cmluZykiPnNldEhyZWY8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aHJlZik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRJbmRleElkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJbmRleElkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2luZGV4SWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0TGlua05hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldExpbmtOYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xpbmtOYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1JZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1JZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbUlkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFBhcmFtTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1OYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRQYXJhbVByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbVByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtUHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1TY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbVNjb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0VGFyZ2V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYXJnZXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGFyZ2V0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFRyYW5zYWN0aW9uKGJvb2xlYW4pIj5zZXRUcmFuc2FjdGlvbjwvQT48L0I+KGJvb2xlYW4mbmJzcDt0cmFuc2FjdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEVsZW1lbnRDbG9zZSgpIj5nZXRFbGVtZW50Q2xvc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEluZGV4ZWQoKSI+Z2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlS2V5KCkiPmdldFRpdGxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb2t1cFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRJbmRleGVkKGJvb2xlYW4pIj5zZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0idGV4dCI+PCEtLSAtLT48L0E+PEgzPgordGV4dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYW5jaG9yIj48IS0tIC0tPjwvQT48SDM+CithbmNob3I8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFuY2hvcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYW5jaG9yIHRvIGJlIGFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmb3J3YXJkIj48IS0tIC0tPjwvQT48SDM+Citmb3J3YXJkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5mb3J3YXJkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsb2dpY2FsIGZvcndhcmQgbmFtZSBmcm9tIHdoaWNoIHRvIHJldHJpZXZlIHRoZSBoeXBlcmxpbmsgVVJJLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaHJlZiI+PCEtLSAtLT48L0E+PEgzPgoraHJlZjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aHJlZjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgaHlwZXJsaW5rIFVSSS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxpbmtOYW1lIj48IS0tIC0tPjwvQT48SDM+CitsaW5rTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bGlua05hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGxpbmsgbmFtZSBmb3IgbmFtZWQgbGlua3MuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSlNQIGJlYW4gbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhZ2UiPjwhLS0gLS0+PC9BPjxIMz4KK3BhZ2U8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYWdlIFVSTCAoYmVnaW5uaW5nIHdpdGggYSBzbGFzaCkgdG8gd2hpY2gKKyB0aGlzIGh5cGVybGluayB3aWxsIGJlIHJlbmRlcmVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWN0aW9uIj48IS0tIC0tPjwvQT48SDM+CithY3Rpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFjdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbW9kdWxlLXJlbGF0aXZlIGFjdGlvbiAoYmVnaW5uaW5nIHdpdGggYSBzbGFzaCkgd2hpY2ggd2lsbCBiZQorIGNhbGxlZCBieSB0aGlzIGxpbmsKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcmFtSWQiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcmFtSWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtSWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZSB0byBnZW5lcmF0ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcmFtTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorcGFyYW1OYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gbmFtZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcmFtUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcmFtUHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJhbVNjb3BlIj48IS0tIC0tPjwvQT48SDM+CitwYXJhbVNjb3BlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbVNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHNjb3BlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSlNQIGJlYW4gcHJvcGVydHkgbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNjb3BlIj48IS0tIC0tPjwvQT48SDM+CitzY29wZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZSBwcm9wZXJ0eSwgaWYgYW55LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGFyZ2V0Ij48IS0tIC0tPjwvQT48SDM+Cit0YXJnZXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRhcmdldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgd2luZG93IHRhcmdldC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRyYW5zYWN0aW9uIj48IS0tIC0tPjwvQT48SDM+Cit0cmFuc2FjdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+dHJhbnNhY3Rpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+SW5jbHVkZSB0cmFuc2FjdGlvbiB0b2tlbiAoaWYgYW55KSBpbiB0aGUgaHlwZXJsaW5rPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5kZXhJZCI+PCEtLSAtLT48L0E+PEgzPgoraW5kZXhJZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aW5kZXhJZDwvQj48L1BSRT4KKzxETD4KKzxERD5OYW1lIG9mIHBhcmFtZXRlciB0byBnZW5lcmF0ZSB0byBob2xkIGluZGV4IG51bWJlcgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkxpbmtUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTGlua1RhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkxpbmtUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEFuY2hvcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBbmNob3I8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFuY2hvcjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QW5jaG9yKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRBbmNob3I8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEFuY2hvcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FuY2hvcik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZvcndhcmQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Rm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Rm9yd2FyZDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Rm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Rm9yd2FyZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Rm9yd2FyZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZvcndhcmQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRIcmVmKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEhyZWY8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEhyZWY8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEhyZWYoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEhyZWY8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEhyZWY8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtocmVmKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TGlua05hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TGlua05hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldExpbmtOYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMaW5rTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TGlua05hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldExpbmtOYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bGlua05hbWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFnZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYWdlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYWdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QWN0aW9uKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRBY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEFjdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FjdGlvbik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtSWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFyYW1JZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFyYW1JZDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFyYW1JZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGFyYW1JZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGFyYW1JZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtSWQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXJhbU5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFyYW1OYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYXJhbU5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhcmFtTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGFyYW1OYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYXJhbU5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbU5hbWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXJhbVByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhcmFtUHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhcmFtUHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhcmFtUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhcmFtUHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtUHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbVByb3BlcnR5KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFyYW1TY29wZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJhbVNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYXJhbVNjb3BlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYXJhbVNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbVNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYXJhbVNjb3BlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1TY29wZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2NvcGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFNjb3BlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNjb3BlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUYXJnZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VGFyZ2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRUYXJnZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFRhcmdldChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VGFyZ2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRUYXJnZXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0YXJnZXQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUcmFuc2FjdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUcmFuc2FjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0VHJhbnNhY3Rpb248L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFRyYW5zYWN0aW9uKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRUcmFuc2FjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VHJhbnNhY3Rpb248L0I+KGJvb2xlYW4mbmJzcDt0cmFuc2FjdGlvbik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEluZGV4SWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SW5kZXhJZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SW5kZXhJZDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SW5kZXhJZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SW5kZXhJZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SW5kZXhJZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2luZGV4SWQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlbmRlciB0aGUgYmVnaW5uaW5nIG9mIHRoZSBoeXBlcmxpbmsuCisgPHA+CisgU3VwcG9ydCBmb3IgaW5kZXhlZCBwcm9wZXJ0eSBzaW5jZSBTdHJ1dHMgMS4xCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0FmdGVyQm9keSgpIj48IS0tIC0tPjwvQT48SDM+Citkb0FmdGVyQm9keTwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0FmdGVyQm9keTwvQj4oKQorICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5TYXZlIHRoZSBhc3NvY2lhdGVkIGxhYmVsIGZyb20gdGhlIGJvZHkgY29udGVudC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlbmRlciB0aGUgZW5kIG9mIHRoZSBoeXBlcmxpbmsuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjYWxjdWxhdGVVUkwoKSI+PCEtLSAtLT48L0E+PEgzPgorY2FsY3VsYXRlVVJMPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jYWxjdWxhdGVVUkw8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGNvbXBsZXRlIFVSTCB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIGRpcmVjdCB0aGUgdXNlci4KKyBTdXBwb3J0IGZvciBpbmRleGVkIHByb3BlcnR5IHNpbmNlIFN0cnV0cyAxLjEKKzxQPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24gY2FsY3VsYXRpbmcgdGhlIHZhbHVlPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9MaW5rVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTGlua1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY0NzRmMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sCkBAIC0wLDAgKzEsOTkwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTWVzc2FnZXNUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk1lc3NhZ2VzVGFnLE1lc3NhZ2VzVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJNZXNzYWdlc1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9NZXNzYWdlc1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VzVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIE1lc3NhZ2VzVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5NZXNzYWdlc1RhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc1RhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TWVzc2FnZXNUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9ETD4KKworPFA+CitDdXN0b20gdGFnIHRoYXQgaXRlcmF0ZXMgdGhlIGVsZW1lbnRzIG9mIGEgbWVzc2FnZSBjb2xsZWN0aW9uLgorIEl0IGRlZmF1bHRzIHRvIHJldHJpZXZpbmcgdGhlIG1lc3NhZ2VzIGZyb20gPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+LAorIGJ1dCBpZiB0aGUgbWVzc2FnZSBhdHRyaWJ1dGUgaXMgc2V0IHRvIHRydWUgdGhlbiB0aGUgbWVzc2FnZXMgd2lsbCBiZQorIHJldHJpZXZlZCBmcm9tIDxjb2RlPkdsb2JhbHMuTUVTU0FHRV9LRVk8L2NvZGU+LiBUaGlzIGlzIGFuIGFsdGVybmF0aXZlCisgdG8gdGhlIGRlZmF1bHQgPGNvZGU+RXJyb3JzVGFnPC9jb2RlPi4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+RGF2aWQgV2ludGVyZmVsZHQ8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTWVzc2FnZXNUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2J1bmRsZSI+YnVuZGxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3Igb3VyIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNmb290ZXIiPmZvb3RlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZSBrZXkgZm9yIGVycm9ycyBmb290ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IGZvciBlcnJvcnMgaGVhZGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2lkIj5pZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRvIGJlIGV4cG9zZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSXRlcmF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNpdGVyYXRvciI+aXRlcmF0b3I8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SXRlcmF0b3Igb2YgdGhlIGVsZW1lbnRzIG9mIHRoaXMgZXJyb3IgY29sbGVjdGlvbiwgd2hpbGUgd2UgYXJlIGFjdHVhbGx5CisgcnVubmluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNsb2NhbGUiPmxvY2FsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2Vzc2lvbiBhdHRyaWJ1dGUga2V5IGZvciBvdXIgbG9jYWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2xvZyI+bG9nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNtZXNzYWdlIj5tZXNzYWdlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0lmIHRoaXMgaXMgc2V0IHRvICd0cnVlJywgdGhlbiB0aGUgPGNvZGU+R2xvYmFscy5NRVNTQUdFX0tFWTwvY29kZT4gd2lsbAorIGJlIHVzZWQgdG8gcmV0cmlldmUgdGhlIG1lc3NhZ2VzIGZyb20gc2NvcGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNtZXNzYWdlUmVzb3VyY2VzIj5tZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlcXVlc3QgYXR0cmlidXRlIGtleSBmb3Igb3VyIGVycm9yIG1lc3NhZ2VzIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI3Byb2Nlc3NlZCI+cHJvY2Vzc2VkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1doZXRoZXIgb3Igbm90IGFueSBlcnJvciBtZXNzYWdlcyBoYXZlIGJlZW4gcHJvY2Vzc2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgZm9yIHdoaWNoIGVycm9yIG1lc3NhZ2VzIHNob3VsZCBiZSByZXR1cm5lZCwKKyBvciA8Y29kZT5udWxsPC9jb2RlPiB0byByZXR1cm4gYWxsIGVycm9ycy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI01lc3NhZ2VzVGFnKCkiPk1lc3NhZ2VzVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+ZG9BZnRlckJvZHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNYWtlIHRoZSBuZXh0IGNvbGxlY3Rpb24gZWxlbWVudCBhdmFpbGFibGUgYW5kIGxvb3AsIG9yCisgZmluaXNoIHRoZSBpdGVyYXRpb25zIGlmIHRoZXJlIGFyZSBubyBtb3JlIGVsZW1lbnRzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NsZWFuIHVwIGFmdGVyIHByb2Nlc3NpbmcgdGhpcyBlbnVtZXJhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGFuIGl0ZXJhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGNvbGxlY3Rpb24sIGFuZCBiZWdpbgorIGxvb3BpbmcgdGhyb3VnaCB0aGUgYm9keSBvbmNlIHBlciBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZ2V0Rm9vdGVyKCkiPmdldEZvb3RlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZ2V0SWQoKSI+Z2V0SWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2dldE1lc3NhZ2UoKSI+Z2V0TWVzc2FnZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QnVuZGxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjc2V0Rm9vdGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb290ZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9vdGVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtoZWFkZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI3NldElkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNzZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNZXNzYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJtZXNzYWdlUmVzb3VyY2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlUmVzb3VyY2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlUmVzb3VyY2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9nIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZyA8Qj5sb2c8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXRlcmF0b3IiPjwhLS0gLS0+PC9BPjxIMz4KK2l0ZXJhdG9yPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkl0ZXJhdG9yIDxCPml0ZXJhdG9yPC9CPjwvUFJFPgorPERMPgorPEREPkl0ZXJhdG9yIG9mIHRoZSBlbGVtZW50cyBvZiB0aGlzIGVycm9yIGNvbGxlY3Rpb24sIHdoaWxlIHdlIGFyZSBhY3R1YWxseQorIHJ1bm5pbmcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzZWQiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NlZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+cHJvY2Vzc2VkPC9CPjwvUFJFPgorPERMPgorPEREPldoZXRoZXIgb3Igbm90IGFueSBlcnJvciBtZXNzYWdlcyBoYXZlIGJlZW4gcHJvY2Vzc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRvIGJlIGV4cG9zZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJidW5kbGUiPjwhLS0gLS0+PC9BPjxIMz4KK2J1bmRsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+YnVuZGxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3Igb3VyIHJlc291cmNlcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvY2FsZSI+PCEtLSAtLT48L0E+PEgzPgorbG9jYWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5sb2NhbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3Igb3VyIGxvY2FsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlcXVlc3QgYXR0cmlidXRlIGtleSBmb3Igb3VyIGVycm9yIG1lc3NhZ2VzIChpZiBhbnkpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgZm9yIHdoaWNoIGVycm9yIG1lc3NhZ2VzIHNob3VsZCBiZSByZXR1cm5lZCwKKyBvciA8Y29kZT5udWxsPC9jb2RlPiB0byByZXR1cm4gYWxsIGVycm9ycy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImhlYWRlciI+PCEtLSAtLT48L0E+PEgzPgoraGVhZGVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5oZWFkZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IGZvciBlcnJvcnMgaGVhZGVyLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZm9vdGVyIj48IS0tIC0tPjwvQT48SDM+Citmb290ZXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmZvb3RlcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZSBrZXkgZm9yIGVycm9ycyBmb290ZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5tZXNzYWdlPC9CPjwvUFJFPgorPERMPgorPEREPklmIHRoaXMgaXMgc2V0IHRvICd0cnVlJywgdGhlbiB0aGUgPGNvZGU+R2xvYmFscy5NRVNTQUdFX0tFWTwvY29kZT4gd2lsbAorIGJlIHVzZWQgdG8gcmV0cmlldmUgdGhlIG1lc3NhZ2VzIGZyb20gc2NvcGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTWVzc2FnZXNUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTWVzc2FnZXNUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NZXNzYWdlc1RhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0SWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldElkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldElkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldElkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRJZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SWQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpZCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+c2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QnVuZGxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QnVuZGxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QnVuZGxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TG9jYWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TG9jYWxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TG9jYWxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SGVhZGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEhlYWRlcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SGVhZGVyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEhlYWRlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SGVhZGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aGVhZGVyKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Rm9vdGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZvb3RlcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Rm9vdGVyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGb290ZXIoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZvb3RlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Rm9vdGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9vdGVyKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRNZXNzYWdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIGl0ZXJhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGNvbGxlY3Rpb24sIGFuZCBiZWdpbgorIGxvb3BpbmcgdGhyb3VnaCB0aGUgYm9keSBvbmNlIHBlciBlbGVtZW50LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9BZnRlckJvZHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9BZnRlckJvZHk8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9BZnRlckJvZHk8L0I+KCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+TWFrZSB0aGUgbmV4dCBjb2xsZWN0aW9uIGVsZW1lbnQgYXZhaWxhYmxlIGFuZCBsb29wLCBvcgorIGZpbmlzaCB0aGUgaXRlcmF0aW9ucyBpZiB0aGVyZSBhcmUgbm8gbW9yZSBlbGVtZW50cy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNsZWFuIHVwIGFmdGVyIHByb2Nlc3NpbmcgdGhpcyBlbnVtZXJhdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTWVzc2FnZXNUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZXNzYWdlc1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RlaS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGVpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODAxNWI1NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RlaS5odG1sCkBAIC0wLDAgKzEsMjgzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTWVzc2FnZXNUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk1lc3NhZ2VzVGVpLE1lc3NhZ2VzVGVpIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJNZXNzYWdlc1RlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9NZXNzYWdlc1RlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZXNzYWdlc1RlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBNZXNzYWdlc1RlaTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5NZXNzYWdlc1RlaTwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5NZXNzYWdlc1RlaTwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9ETD4KKworPFA+CitJbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+bWVzc2FnZXM8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+RGF2aWQgV2ludGVyZmVsZHQ8L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUZWkuaHRtbCNNZXNzYWdlc1RlaSgpIj5NZXNzYWdlc1RlaTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5WYXJpYWJsZUluZm9bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPmdldFZhcmlhYmxlSW5mbzwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFRhZ0luZm8sIGlzVmFsaWQsIHNldFRhZ0luZm88L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTWVzc2FnZXNUZWkoKSI+PCEtLSAtLT48L0E+PEgzPgorTWVzc2FnZXNUZWk8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NZXNzYWdlc1RlaTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFyaWFibGVJbmZvPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdIDxCPmdldFZhcmlhYmxlSW5mbzwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvUFJFPgorPERMPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldFZhcmlhYmxlSW5mbzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL01lc3NhZ2VzVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VzVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNThhNTM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwKQEAgLTAsMCArMSw2NzYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitNdWx0aWJveFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTXVsdGlib3hUYWcsTXVsdGlib3hUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik11bHRpYm94VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL011bHRpYm94VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik11bHRpYm94VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIE11bHRpYm94VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5NdWx0aWJveFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sIj5OZXN0ZWRNdWx0aWJveFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TXVsdGlib3hUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9ETD4KKworPFA+CitUYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJjaGVja2JveCIuICBUaGlzIGRpZmZlcnMgZnJvbSBDaGVja2JveFRhZworIGJlY2F1c2UgaXQgYXNzdW1lcyB0aGF0IHRoZSB1bmRlcmx5aW5nIHByb3BlcnR5IGlzIGFuIGFycmF5IGdldHRlciAob2YgYW55Cisgc3VwcG9ydGVkIHByaW1pdGl2ZSB0eXBlLCBvciBTdHJpbmcpLCBhbmQgdGhlIGNoZWNrYm94IGlzIGluaXRpYWxpemVkIHRvCisgImNoZWNrZWQiIGlmIHRoZSB2YWx1ZSBsaXN0ZWQgZm9yIHRoZSAidmFsdWUiIGF0dHJpYnV0ZSBpcyBwcmVzZW50IGluIHRoZQorIHZhbHVlcyByZXR1cm5lZCBieSB0aGUgcHJvcGVydHkgZ2V0dGVyLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+UmFscGggU2NoYWVyLCBDcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk11bHRpYm94VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNjb25zdGFudCI+Y29uc3RhbnQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnN0YW50IFN0cmluZyB2YWx1ZSB0byBiZSByZXR1cm5lZCB3aGVuIHRoaXMgY2hlY2tib3ggaXMKKyBzZWxlY3RlZCBhbmQgdGhlIGZvcm0gaXMgc3VibWl0dGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHByb3BlcnR5IG5hbWUgZm9yIHRoaXMgZmllbGQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB2YWx1ZSB3aGljaCB3aWxsIG1hcmsgdGhpcyBjaGVja2JveCBhcyAiY2hlY2tlZCIgaWYgcHJlc2VudAorIGluIHRoZSBhcnJheSByZXR1cm5lZCBieSBvdXIgcHJvcGVydHkgZ2V0dGVyLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpbmRleGVkIj5pbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI011bHRpYm94VGFnKCkiPk11bHRpYm94VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+ZG9BZnRlckJvZHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTYXZlIHRoZSBib2R5IGNvbnRlbnRzIG9mIHRoaXMgdGFnIGFzIHRoZSBjb25zdGFudCB0aGF0IHdlIHdpbGwKKyBiZSByZXR1cm5pbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVuZGVyIGFuIGlucHV0IGVsZW1lbnQgZm9yIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHNlcnZlciB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBzZXJ2ZXIgdmFsdWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+Z2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBbHQoKSI+Z2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBbHRLZXkoKSI+Z2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRCdW5kbGUoKSI+Z2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RWxlbWVudENsb3NlKCkiPmdldEVsZW1lbnRDbG9zZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0SW5kZXhlZCgpIj5nZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRMb2NhbGUoKSI+Z2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmJsdXIoKSI+Z2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNoYW5nZSgpIj5nZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jbGljaygpIj5nZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmRibGNsaWNrKCkiPmdldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZm9jdXMoKSI+Z2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlkb3duKCkiPmdldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlwcmVzcygpIj5nZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXVwKCkiPmdldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vkb3duKCkiPmdldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlbW92ZSgpIj5nZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW91dCgpIj5nZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3ZlcigpIj5nZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZXVwKCkiPmdldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25zZWxlY3QoKSI+Z2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFJlYWRvbmx5KCkiPmdldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZSgpIj5nZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj5nZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUlkKCkiPmdldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRhYmluZGV4KCkiPmdldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZSgpIj5nZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGVLZXkoKSI+Z2V0VGl0bGVLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2lzWGh0bWwoKSI+aXNYaHRtbDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbG9va3VwUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmxvb2t1cFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNtZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5tZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRXZlbnRIYW5kbGVycygpIj5wcmVwYXJlRXZlbnRIYW5kbGVyczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUZvY3VzRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlRm9jdXNFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVJbmRleChqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLmxhbmcuU3RyaW5nKSI+cHJlcGFyZUluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlS2V5RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlS2V5RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlTW91c2VFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVNb3VzZUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVN0eWxlcygpIj5wcmVwYXJlU3R5bGVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlVGV4dEV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZVRleHRFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFjY2Vzc2tleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHQoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0S2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXREaXNhYmxlZChib29sZWFuKSI+c2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEluZGV4ZWQoYm9vbGVhbikiPnNldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmJsdXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZUtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGVLZXk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb25zdGFudCI+PCEtLSAtLT48L0E+PEgzPgorY29uc3RhbnQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbnN0YW50PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb25zdGFudCBTdHJpbmcgdmFsdWUgdG8gYmUgcmV0dXJuZWQgd2hlbiB0aGlzIGNoZWNrYm94IGlzCisgc2VsZWN0ZWQgYW5kIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGZvciB0aGlzIGZpZWxkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgd2hpY2ggd2lsbCBtYXJrIHRoaXMgY2hlY2tib3ggYXMgImNoZWNrZWQiIGlmIHByZXNlbnQKKyBpbiB0aGUgYXJyYXkgcmV0dXJuZWQgYnkgb3VyIHByb3BlcnR5IGdldHRlci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNdWx0aWJveFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitNdWx0aWJveFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk11bHRpYm94VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBUaGUgbmV3IHByb3BlcnR5IG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgc2VydmVyIHZhbHVlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBzZXJ2ZXIgdmFsdWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFRoZSBuZXcgc2VydmVyIHZhbHVlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIGJlZ2lubmluZyBvZiB0aGlzIHRhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvQWZ0ZXJCb2R5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvQWZ0ZXJCb2R5PC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvQWZ0ZXJCb2R5PC9CPigpCisgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlNhdmUgdGhlIGJvZHkgY29udGVudHMgb2YgdGhpcyB0YWcgYXMgdGhlIGNvbnN0YW50IHRoYXQgd2Ugd2lsbAorIGJlIHJldHVybmluZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlbmRlciBhbiBpbnB1dCBlbGVtZW50IGZvciB0aGlzIHRhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL011bHRpYm94VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik11bHRpYm94VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1NTg5YWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwKQEAgLTAsMCArMSwxMDM3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorT3B0aW9uVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25UYWcsT3B0aW9uVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJPcHRpb25UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvT3B0aW9uVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iT3B0aW9uVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIE9wdGlvblRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk9wdGlvblRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK1RhZyBmb3Igc2VsZWN0IG9wdGlvbnMuICBUaGUgYm9keSBvZiB0aGlzIHRhZyBpcyBwcmVzZW50ZWQgdG8gdGhlIHVzZXIKKyBpbiB0aGUgb3B0aW9uIGxpc3QsIHdoaWxlIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXMgdGhlIHZhbHVlIHJldHVybmVkIHRvCisgdGhlIHNlcnZlciBpZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW4sIERhdmlkIEdyYWhhbTwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25UYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNidW5kbGUiPmJ1bmRsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBjb250YWluaW5nIG91ciBtZXNzYWdlCisgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7amF2YS51dGlsLkxvY2FsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBMb2NhbGUuZ2V0RGVmYXVsdCgpIGRpcmVjdGx5LjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZGlzYWJsZWQiPmRpc2FibGVkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0lzIHRoaXMgb3B0aW9uIGRpc2FibGVkPzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNrZXkiPmtleTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUga2V5IHVzZWQgdG8gbG9vayB1cCB0aGUgdGV4dCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgZm9yIHRoaXMKKyBvcHRpb24sIGlmIGFueS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjbG9jYWxlIj5sb2NhbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZSBjb250YWluaW5nIHRoZSBMb2NhbGUgdG8gYmUgdXNlZCBmb3IKKyBsb29raW5nIHVwIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3N0eWxlIj5zdHlsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc3R5bGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc3R5bGVDbGFzcyI+c3R5bGVDbGFzczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZWQgc3R5bGUgY2xhc3MgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNzdHlsZUlkIj5zdHlsZUlkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBpZGVudGlmaWVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjdGV4dCI+dGV4dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSB0ZXh0IHRvIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgdGhpcyB0YWcgKGlmIGFueSk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXJ2ZXIgdmFsdWUgZm9yIHRoaXMgb3B0aW9uLCBhbHNvIHVzZWQgdG8gbWF0Y2ggYWdhaW5zdCB0aGUKKyBjdXJyZW50IHByb3BlcnR5IHZhbHVlIHRvIGRldGVybWluZSB3aGV0aGVyIHRoaXMgb3B0aW9uIHNob3VsZCBiZQorIG1hcmtlZCBhcyBzZWxlY3RlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjT3B0aW9uVGFnKCkiPk9wdGlvblRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIGJvZHkgdGV4dCBvZiB0aGlzIHRhZyAoaWYgYW55KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZ2V0S2V5KCkiPmdldEtleTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNnZXRTdHlsZSgpIj5nZXRTdHlsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgc3R5bGUgaWRlbnRpZmllciBmb3IgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3JlbmRlck9wdGlvbkVsZW1lbnQoKSI+cmVuZGVyT3B0aW9uRWxlbWVudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dlbmVyYXRlIGFuIEhUTUwgJWx0O29wdGlvbiZndDsgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25UYWcuaHRtbCNzZWxlY3RUYWcoKSI+c2VsZWN0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWNxdWlyZSB0aGUgc2VsZWN0IHRhZyB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QnVuZGxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT48L0I+KGJvb2xlYW4mbmJzcDtkaXNhYmxlZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3NldEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0S2V5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG9jYWxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHlsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGVDbGFzcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGVJZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgc3R5bGUgaWRlbnRpZmllciBmb3IgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sI3RleHQoKSI+dGV4dDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgdGV4dCB0byBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgZm9yIHRoaXMgb3B0aW9uIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkZWZhdWx0TG9jYWxlIj48IS0tIC0tPjwvQT48SDM+CitkZWZhdWx0TG9jYWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGphdmEudXRpbC5Mb2NhbGUgPEI+ZGVmYXVsdExvY2FsZTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgTG9jYWxlLmdldERlZmF1bHQoKSBkaXJlY3RseS48L0k+Cis8UD4KKzxERD5UaGUgZGVmYXVsdCBsb2NhbGUgZm9yIG91ciBzZXJ2ZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGV4dCI+PCEtLSAtLT48L0E+PEgzPgordGV4dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSB0ZXh0IHRvIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgdGhpcyB0YWcgKGlmIGFueSkKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJ1bmRsZSI+PCEtLSAtLT48L0E+PEgzPgorYnVuZGxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5idW5kbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUgY29udGFpbmluZyBvdXIgbWVzc2FnZQorIHJlc291cmNlcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRpc2FibGVkIj48IS0tIC0tPjwvQT48SDM+CitkaXNhYmxlZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+ZGlzYWJsZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SXMgdGhpcyBvcHRpb24gZGlzYWJsZWQ/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJrZXkiPjwhLS0gLS0+PC9BPjxIMz4KK2tleTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+a2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBrZXkgdXNlZCB0byBsb29rIHVwIHRoZSB0ZXh0IGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgdGhpcworIG9wdGlvbiwgaWYgYW55LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9jYWxlIj48IS0tIC0tPjwvQT48SDM+Citsb2NhbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmxvY2FsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIGNvbnRhaW5pbmcgdGhlIExvY2FsZSB0byBiZSB1c2VkIGZvcgorIGxvb2tpbmcgdXAgaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzdHlsZSI+PCEtLSAtLT48L0E+PEgzPgorc3R5bGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3R5bGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3R5bGVDbGFzcyI+PCEtLSAtLT48L0E+PEgzPgorc3R5bGVDbGFzczwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPnN0eWxlQ2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWVkIHN0eWxlIGNsYXNzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InN0eWxlSWQiPjwhLS0gLS0+PC9BPjxIMz4KK3N0eWxlSWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnN0eWxlSWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGlkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmVyIHZhbHVlIGZvciB0aGlzIG9wdGlvbiwgYWxzbyB1c2VkIHRvIG1hdGNoIGFnYWluc3QgdGhlCisgY3VycmVudCBwcm9wZXJ0eSB2YWx1ZSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGlzIG9wdGlvbiBzaG91bGQgYmUKKyBtYXJrZWQgYXMgc2VsZWN0ZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iT3B0aW9uVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK09wdGlvblRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk9wdGlvblRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0QnVuZGxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QnVuZGxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJ1bmRsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QnVuZGxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGlzYWJsZWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RGlzYWJsZWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldERpc2FibGVkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXREaXNhYmxlZChib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RGlzYWJsZWQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldERpc2FibGVkPC9CPihib29sZWFuJm5ic3A7ZGlzYWJsZWQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRLZXkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0S2V5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRLZXk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEtleShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0S2V5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRLZXk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRMb2NhbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TG9jYWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRMb2NhbGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TG9jYWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRMb2NhbGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTdHlsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTdHlsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U3R5bGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTdHlsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U3R5bGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHlsZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFN0eWxlQ2xhc3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U3R5bGVDbGFzczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U3R5bGVDbGFzczwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U3R5bGVDbGFzczwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U3R5bGVDbGFzczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3N0eWxlQ2xhc3MpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTdHlsZUlkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFN0eWxlSWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFN0eWxlSWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHN0eWxlIGlkZW50aWZpZXIgZm9yIHRoaXMgdGFnLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTdHlsZUlkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTdHlsZUlkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGVJZCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHN0eWxlIGlkZW50aWZpZXIgZm9yIHRoaXMgdGFnLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zdHlsZUlkPC9DT0RFPiAtIFRoZSBuZXcgc3R5bGUgaWRlbnRpZmllcjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9BZnRlckJvZHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9BZnRlckJvZHk8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9BZnRlckJvZHk8L0I+KCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgYm9keSB0ZXh0IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvQWZ0ZXJCb2R5PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvQWZ0ZXJCb2R5PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW5kZXJPcHRpb25FbGVtZW50KCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbmRlck9wdGlvbkVsZW1lbnQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnJlbmRlck9wdGlvbkVsZW1lbnQ8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+R2VuZXJhdGUgYW4gSFRNTCAlbHQ7b3B0aW9uJmd0OyBlbGVtZW50LgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNlbGVjdFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitzZWxlY3RUYWc8L0gzPgorPFBSRT4KK3ByaXZhdGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4gPEI+c2VsZWN0VGFnPC9CPigpCisgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+QWNxdWlyZSB0aGUgc2VsZWN0IHRhZyB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRleHQoKSI+PCEtLSAtLT48L0E+PEgzPgordGV4dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dGV4dDwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIHRleHQgdG8gYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGlzIG9wdGlvbiAoaWYgYW55KS4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGVycm9yIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvT3B0aW9uVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iT3B0aW9uVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTI3Y2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwKQEAgLTAsMCArMSw4MzEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitPcHRpb25zQ29sbGVjdGlvblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uc0NvbGxlY3Rpb25UYWcsT3B0aW9uc0NvbGxlY3Rpb25UYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik9wdGlvbnNDb2xsZWN0aW9uVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgT3B0aW9uc0NvbGxlY3Rpb25UYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+TmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitUYWcgZm9yIGNyZWF0aW5nIG11bHRpcGxlICZsdDtzZWxlY3QmZ3Q7IG9wdGlvbnMgZnJvbSBhIGNvbGxlY3Rpb24uIFRoZQorIGNvbGxlY3Rpb24gbWF5IGJlIHBhcnQgb2YgdGhlIGVuY2xvc2luZyBmb3JtLCBvciBtYXkgYmUgaW5kZXBlbmRlbnQgb2YKKyB0aGUgZm9ybS4gRWFjaCBlbGVtZW50IG9mIHRoZSBjb2xsZWN0aW9uIG11c3QgZXhwb3NlIGEgJ2xhYmVsJyBhbmQgYQorICd2YWx1ZScsIHRoZSBwcm9wZXJ0eSBuYW1lcyBvZiB3aGljaCBhcmUgY29uZmlndXJhYmxlIGJ5IGF0dHJpYnV0ZXMgb2YKKyB0aGlzIHRhZy4KKyA8cD4KKyBUaGUgY29sbGVjdGlvbiBtYXkgYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cywgYSBDb2xsZWN0aW9uLCBhbiBFbnVtZXJhdGlvbiwKKyBhbiBJdGVyYXRvciwgb3IgYSBNYXAuCisgPHA+CisgPGI+Tk9URTwvYj4gLSBUaGlzIHRhZyByZXF1aXJlcyBhIEphdmEyIChKREsgMS4yIG9yIGxhdGVyKSBwbGF0Zm9ybS4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+TWFydGluIENvb3BlcjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25zQ29sbGVjdGlvblRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjZmlsdGVyIj5maWx0ZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2hvdWxkIHRoZSBsYWJlbCB2YWx1ZXMgYmUgZmlsdGVyZWQgZm9yIEhUTUwgc2Vuc2l0aXZlIGNoYXJhY3RlcnM/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjbGFiZWwiPmxhYmVsPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBiZWFuIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIGxhYmVsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyB0aGUgdmFsdWVzIGNvbGxlY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byB1c2UgdG8gYnVpbGQgdGhlIHZhbHVlcyBjb2xsZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNzdHlsZSI+c3R5bGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHN0eWxlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjc3R5bGVDbGFzcyI+c3R5bGVDbGFzczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZWQgc3R5bGUgY2xhc3MgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgYmVhbiBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSB2YWx1ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjT3B0aW9uc0NvbGxlY3Rpb25UYWcoKSI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI2FkZE9wdGlvbihqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+YWRkT3B0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO3NiLAorICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsYWJlbCwKKyAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUsCisgICAgICAgICAgYm9vbGVhbiZuYnNwO21hdGNoZWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYW4gb3B0aW9uIGVsZW1lbnQgdG8gdGhlIHNwZWNpZmllZCBTdHJpbmdCdWZmZXIgYmFzZWQgb24gdGhlCisgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjZ2V0RmlsdGVyKCkiPmdldEZpbHRlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkl0ZXJhdG9yPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjZ2V0SXRlcmF0b3IoamF2YS5sYW5nLk9iamVjdCkiPmdldEl0ZXJhdG9yPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2NvbGxlY3Rpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYW4gaXRlcmF0b3IgZm9yIHRoZSBvcHRpb25zIGNvbGxlY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNnZXRMYWJlbCgpIj5nZXRMYWJlbDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI3NldEZpbHRlcihib29sZWFuKSI+c2V0RmlsdGVyPC9BPjwvQj4oYm9vbGVhbiZuYnNwO2ZpbHRlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjc2V0TGFiZWwoamF2YS5sYW5nLlN0cmluZykiPnNldExhYmVsPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xhYmVsKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3N0eWxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3N0eWxlQ2xhc3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9FbmRUYWcsIGZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaWx0ZXIiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbHRlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+ZmlsdGVyPC9CPjwvUFJFPgorPERMPgorPEREPlNob3VsZCB0aGUgbGFiZWwgdmFsdWVzIGJlIGZpbHRlcmVkIGZvciBIVE1MIHNlbnNpdGl2ZSBjaGFyYWN0ZXJzPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGFiZWwiPjwhLS0gLS0+PC9BPjxIMz4KK2xhYmVsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5sYWJlbDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSBsYWJlbC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyB0aGUgdmFsdWVzIGNvbGxlY3Rpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byB1c2UgdG8gYnVpbGQgdGhlIHZhbHVlcyBjb2xsZWN0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3R5bGUiPjwhLS0gLS0+PC9BPjxIMz4KK3N0eWxlPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+c3R5bGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHN0eWxlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InN0eWxlQ2xhc3MiPjwhLS0gLS0+PC9BPjxIMz4KK3N0eWxlQ2xhc3M8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZUNsYXNzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lZCBzdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIHZhbHVlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik9wdGlvbnNDb2xsZWN0aW9uVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK09wdGlvbnNDb2xsZWN0aW9uVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEZpbHRlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGaWx0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldEZpbHRlcjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RmlsdGVyKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRGaWx0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZpbHRlcjwvQj4oYm9vbGVhbiZuYnNwO2ZpbHRlcik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExhYmVsKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExhYmVsPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRMYWJlbDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TGFiZWwoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExhYmVsPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRMYWJlbDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xhYmVsKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U3R5bGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U3R5bGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFN0eWxlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U3R5bGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFN0eWxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTdHlsZUNsYXNzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFN0eWxlQ2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFN0eWxlQ2xhc3M8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFN0eWxlQ2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFN0eWxlQ2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHlsZUNsYXNzKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkT3B0aW9uKGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CithZGRPcHRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmFkZE9wdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO3NiLAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO21hdGNoZWQpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGFuIG9wdGlvbiBlbGVtZW50IHRvIHRoZSBzcGVjaWZpZWQgU3RyaW5nQnVmZmVyIGJhc2VkIG9uIHRoZQorIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPHA+CisgTm90ZSB0aGF0IHRoaXMgdGFnIHNwZWNpZmljYWxseSBkb2VzIG5vdCBzdXBwb3J0IHRoZQorIDxjb2RlPnN0eWxlSWQ8L2NvZGU+IHRhZyBhdHRyaWJ1dGUsIHdoaWNoIGNhdXNlcyB0aGUgSFRNTAorIDxjb2RlPmlkPC9jb2RlPiBhdHRyaWJ1dGUgdG8gYmUgZW1pdHRlZC4gIFRoaXMgaXMgYmVjYXVzZSB0aGUgSFRNTAorIHNwZWNpZmljYXRpb24gc3RhdGVzIHRoYXQgYWxsICJpZCIgYXR0cmlidXRlcyBpbiBhIGRvY3VtZW50IGhhdmUgdG8gYmUKKyB1bmlxdWUuICBUaGlzIHRhZyB3aWxsIGxpa2VseSBnZW5lcmF0ZSBtb3JlIHRoYW4gb25lIDxjb2RlPm9wdGlvbjwvY29kZT4KKyBlbGVtZW50IGVsZW1lbnQsIGJ1dCBpdCBjYW5ub3QgdXNlIHRoZSBzYW1lIDxjb2RlPmlkPC9jb2RlPiB2YWx1ZS4gIEl0J3MKKyBjb25jZWl2YWJsZSBzb21lIHNvcnQgb2YgbWVjaGFuaXNtIHRvIHN1cHBseSBhbiBhcnJheSBvZiA8Y29kZT5pZDwvY29kZT4KKyB2YWx1ZXMgY291bGQgYmUgZGV2aXNlZCwgYnV0IHRoYXQgZG9lc24ndCBzZWVtIHRvIGJlIHdvcnRoIHRoZSB0cm91YmxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zYjwvQ09ERT4gLSBTdHJpbmdCdWZmZXIgYWNjdW11bGF0aW5nIG91ciByZXN1bHRzPEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFZhbHVlIHRvIGJlIHJldHVybmVkIHRvIHRoZSBzZXJ2ZXIgZm9yIHRoaXMgb3B0aW9uPEREPjxDT0RFPmxhYmVsPC9DT0RFPiAtIFZhbHVlIHRvIGJlIHNob3duIHRvIHRoZSB1c2VyIGZvciB0aGlzIG9wdGlvbjxERD48Q09ERT5tYXRjaGVkPC9DT0RFPiAtIFNob3VsZCB0aGlzIHZhbHVlIGJlIG1hcmtlZCBhcyBzZWxlY3RlZD88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEl0ZXJhdG9yKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJdGVyYXRvcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5JdGVyYXRvciA8Qj5nZXRJdGVyYXRvcjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2NvbGxlY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHVybiBhbiBpdGVyYXRvciBmb3IgdGhlIG9wdGlvbnMgY29sbGVjdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29sbGVjdGlvbjwvQ09ERT4gLSBDb2xsZWN0aW9uIHRvIGJlIGl0ZXJhdGVkIG92ZXIKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBlcnJvciBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTg5NWIyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbApAQCAtMCwwICsxLDkxNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK09wdGlvbnNUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvbnNUYWcsT3B0aW9uc1RhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iT3B0aW9uc1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9PcHRpb25zVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJPcHRpb25zVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIE9wdGlvbnNUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvbnNUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwiPk5lc3RlZE9wdGlvbnNUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk9wdGlvbnNUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK1RhZyBmb3IgY3JlYXRpbmcgbXVsdGlwbGUgJmx0O3NlbGVjdCZndDsgb3B0aW9ucyBmcm9tIGEgY29sbGVjdGlvbi4gIFRoZQorIGFzc29jaWF0ZWQgdmFsdWVzIGRpc3BsYXllZCB0byB0aGUgdXNlciBtYXkgb3B0aW9uYWxseSBiZSBzcGVjaWZpZWQgYnkgYQorIHNlY29uZCBjb2xsZWN0aW9uLCBvciB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSB2YWx1ZXMgdGhlbXNlbHZlcy4gIEVhY2gKKyBjb2xsZWN0aW9uIG1heSBiZSBhbiBhcnJheSBvZiBvYmplY3RzLCBhIENvbGxlY3Rpb24sIGFuIEVudW1lcmF0aW9uLAorIGFuIEl0ZXJhdG9yLCBvciBhIE1hcC4KKyA8Yj5OT1RFPC9iPiAtIFRoaXMgdGFnIHJlcXVpcmVzIGEgSmF2YTIgKEpESyAxLjIgb3IgbGF0ZXIpIHBsYXRmb3JtLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkZsb3JlbnQgQ2FycGVudGllciwgQ3JhaWcgTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25zVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2NvbGxlY3Rpb24iPmNvbGxlY3Rpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGNvbGxlY3Rpb24gY29udGFpbmluZyBiZWFucyB0aGF0IGhhdmUgcHJvcGVydGllcyB0bworIHByb3ZpZGUgYm90aCB0aGUgdmFsdWVzIGFuZCB0aGUgbGFiZWxzIChpZGVudGlmaWVkIGJ5IHRoZQorIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhbmQgPGNvZGU+bGFiZWxQcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlcykuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNmaWx0ZXIiPmZpbHRlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTaG91bGQgdGhlIGxhYmVsIHZhbHVlcyBiZSBmaWx0ZXJlZCBmb3IgSFRNTCBzZW5zaXRpdmUgY2hhcmFjdGVycz88L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2xhYmVsTmFtZSI+bGFiZWxOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgdGhlIGxhYmVscyBjb2xsZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjbGFiZWxQcm9wZXJ0eSI+bGFiZWxQcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYmVhbiBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSBsYWJlbHMgY29sbGVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIHRoZSB2YWx1ZXMgY29sbGVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gdXNlIHRvIGJ1aWxkIHRoZSB2YWx1ZXMgY29sbGVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzdHlsZSI+c3R5bGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHN0eWxlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzdHlsZUNsYXNzIj5zdHlsZUNsYXNzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lZCBzdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjT3B0aW9uc1RhZygpIj5PcHRpb25zVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2FkZE9wdGlvbihqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+YWRkT3B0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO3NiLAorICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSwKKyAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bGFiZWwsCisgICAgICAgICAgYm9vbGVhbiZuYnNwO21hdGNoZWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYW4gb3B0aW9uIGVsZW1lbnQgdG8gdGhlIHNwZWNpZmllZCBTdHJpbmdCdWZmZXIgYmFzZWQgb24gdGhlCisgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldENvbGxlY3Rpb24oKSI+Z2V0Q29sbGVjdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXRGaWx0ZXIoKSI+Z2V0RmlsdGVyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSXRlcmF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldEl0ZXJhdG9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRJdGVyYXRvcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGFuIGl0ZXJhdG9yIGZvciB0aGUgb3B0aW9uIGxhYmVscyBvciB2YWx1ZXMsIGJhc2VkIG9uIG91cgorIGNvbmZpZ3VyZWQgcHJvcGVydGllcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjZ2V0TGFiZWxOYW1lKCkiPmdldExhYmVsTmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXRMYWJlbFByb3BlcnR5KCkiPmdldExhYmVsUHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3NldENvbGxlY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPnNldENvbGxlY3Rpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29sbGVjdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXRGaWx0ZXIoYm9vbGVhbikiPnNldEZpbHRlcjwvQT48L0I+KGJvb2xlYW4mbmJzcDtmaWx0ZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjc2V0TGFiZWxOYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMYWJlbE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bGFiZWxOYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3NldExhYmVsUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldExhYmVsUHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bGFiZWxQcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHlsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3N0eWxlQ2xhc3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb2xsZWN0aW9uIj48IS0tIC0tPjwvQT48SDM+Citjb2xsZWN0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jb2xsZWN0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBjb2xsZWN0aW9uIGNvbnRhaW5pbmcgYmVhbnMgdGhhdCBoYXZlIHByb3BlcnRpZXMgdG8KKyBwcm92aWRlIGJvdGggdGhlIHZhbHVlcyBhbmQgdGhlIGxhYmVscyAoaWRlbnRpZmllZCBieSB0aGUKKyA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYW5kIDxjb2RlPmxhYmVsUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmlsdGVyIj48IS0tIC0tPjwvQT48SDM+CitmaWx0ZXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmZpbHRlcjwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgdGhlIGxhYmVsIHZhbHVlcyBiZSBmaWx0ZXJlZCBmb3IgSFRNTCBzZW5zaXRpdmUgY2hhcmFjdGVycz8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxhYmVsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbGFiZWxOYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5sYWJlbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyB0aGUgbGFiZWxzIGNvbGxlY3Rpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsYWJlbFByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitsYWJlbFByb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5sYWJlbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBiZWFuIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIGxhYmVscyBjb2xsZWN0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIHRoZSB2YWx1ZXMgY29sbGVjdGlvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHVzZSB0byBidWlsZCB0aGUgdmFsdWVzIGNvbGxlY3Rpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzdHlsZSI+PCEtLSAtLT48L0E+PEgzPgorc3R5bGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3R5bGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3R5bGVDbGFzcyI+PCEtLSAtLT48L0E+PEgzPgorc3R5bGVDbGFzczwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPnN0eWxlQ2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWVkIHN0eWxlIGNsYXNzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJPcHRpb25zVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK09wdGlvbnNUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5PcHRpb25zVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRDb2xsZWN0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbGxlY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldENvbGxlY3Rpb248L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENvbGxlY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENvbGxlY3Rpb248L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbGxlY3Rpb248L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb2xsZWN0aW9uKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmlsdGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZpbHRlcjwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0RmlsdGVyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGaWx0ZXIoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZpbHRlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RmlsdGVyPC9CPihib29sZWFuJm5ic3A7ZmlsdGVyKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TGFiZWxOYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExhYmVsTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TGFiZWxOYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMYWJlbE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExhYmVsTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TGFiZWxOYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bGFiZWxOYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TGFiZWxQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMYWJlbFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRMYWJlbFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMYWJlbFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRMYWJlbFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRMYWJlbFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bGFiZWxQcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFN0eWxlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFN0eWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTdHlsZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFN0eWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTdHlsZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3N0eWxlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U3R5bGVDbGFzcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTdHlsZUNsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTdHlsZUNsYXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTdHlsZUNsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTdHlsZUNsYXNzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3R5bGVDbGFzcyk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3RhcnQgb2YgdGhpcyB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIGVuZCBvZiB0aGlzIHRhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkT3B0aW9uKGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CithZGRPcHRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmFkZE9wdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZ0J1ZmZlciZuYnNwO3NiLAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bGFiZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO21hdGNoZWQpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGFuIG9wdGlvbiBlbGVtZW50IHRvIHRoZSBzcGVjaWZpZWQgU3RyaW5nQnVmZmVyIGJhc2VkIG9uIHRoZQorIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPHA+CisgTm90ZSB0aGF0IHRoaXMgdGFnIHNwZWNpZmljYWxseSBkb2VzIG5vdCBzdXBwb3J0IHRoZQorIDxjb2RlPnN0eWxlSWQ8L2NvZGU+IHRhZyBhdHRyaWJ1dGUsIHdoaWNoIGNhdXNlcyB0aGUgSFRNTAorIDxjb2RlPmlkPC9jb2RlPiBhdHRyaWJ1dGUgdG8gYmUgZW1pdHRlZC4gIFRoaXMgaXMgYmVjYXVzZSB0aGUgSFRNTAorIHNwZWNpZmljYXRpb24gc3RhdGVzIHRoYXQgYWxsICJpZCIgYXR0cmlidXRlcyBpbiBhIGRvY3VtZW50IGhhdmUgdG8gYmUKKyB1bmlxdWUuICBUaGlzIHRhZyB3aWxsIGxpa2VseSBnZW5lcmF0ZSBtb3JlIHRoYW4gb25lIDxjb2RlPm9wdGlvbjwvY29kZT4KKyBlbGVtZW50IGVsZW1lbnQsIGJ1dCBpdCBjYW5ub3QgdXNlIHRoZSBzYW1lIDxjb2RlPmlkPC9jb2RlPiB2YWx1ZS4gIEl0J3MKKyBjb25jZWl2YWJsZSBzb21lIHNvcnQgb2YgbWVjaGFuaXNtIHRvIHN1cHBseSBhbiBhcnJheSBvZiA8Y29kZT5pZDwvY29kZT4KKyB2YWx1ZXMgY291bGQgYmUgZGV2aXNlZCwgYnV0IHRoYXQgZG9lc24ndCBzZWVtIHRvIGJlIHdvcnRoIHRoZSB0cm91YmxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zYjwvQ09ERT4gLSBTdHJpbmdCdWZmZXIgYWNjdW11bGF0aW5nIG91ciByZXN1bHRzPEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFZhbHVlIHRvIGJlIHJldHVybmVkIHRvIHRoZSBzZXJ2ZXIgZm9yIHRoaXMgb3B0aW9uPEREPjxDT0RFPmxhYmVsPC9DT0RFPiAtIFZhbHVlIHRvIGJlIHNob3duIHRvIHRoZSB1c2VyIGZvciB0aGlzIG9wdGlvbjxERD48Q09ERT5tYXRjaGVkPC9DT0RFPiAtIFNob3VsZCB0aGlzIHZhbHVlIGJlIG1hcmtlZCBhcyBzZWxlY3RlZD88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEl0ZXJhdG9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJdGVyYXRvcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5JdGVyYXRvciA8Qj5nZXRJdGVyYXRvcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGFuIGl0ZXJhdG9yIGZvciB0aGUgb3B0aW9uIGxhYmVscyBvciB2YWx1ZXMsIGJhc2VkIG9uIG91cgorIGNvbmZpZ3VyZWQgcHJvcGVydGllcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBiZWFuIGF0dHJpYnV0ZSAoaWYgYW55KTxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBiZWFuIHByb3BlcnR5IChpZiBhbnkpCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gZXJyb3Igb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9PcHRpb25zVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJPcHRpb25zVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Bhc3N3b3JkVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUGFzc3dvcmRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDRlMGFlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Bhc3N3b3JkVGFnLmh0bWwKQEAgLTAsMCArMSwzNjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitQYXNzd29yZFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUGFzc3dvcmRUYWcsUGFzc3dvcmRUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlBhc3N3b3JkVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1Bhc3N3b3JkVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQYXNzd29yZFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBQYXNzd29yZFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlBhc3N3b3JkVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwiPk5lc3RlZFBhc3N3b3JkVGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5QYXNzd29yZFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvREw+CisKKzxQPgorQ3VzdG9tIHRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInBhc3N3b3JkIi4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUGFzc3dvcmRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNhY2NlcHQiPmFjY2VwdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNyZWRpc3BsYXkiPnJlZGlzcGxheTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3R5cGUiPnR5cGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNjb2xzIj5jb2xzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWF4bGVuZ3RoIj5tYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNyb3dzIj5yb3dzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+aW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUGFzc3dvcmRUYWcuaHRtbCNQYXNzd29yZFRhZygpIj5QYXNzd29yZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0QWNjZXB0KCkiPmdldEFjY2VwdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2dldFJlZGlzcGxheSgpIj5nZXRSZWRpc3BsYXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNzZXRBY2NlcHQoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2VwdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNzZXRSZWRpc3BsYXkoYm9vbGVhbikiPnNldFJlZGlzcGxheTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRDb2xzKCkiPmdldENvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRNYXhsZW5ndGgoKSI+Z2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRSb3dzKCkiPmdldFJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRTaXplKCkiPmdldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldENvbHMoamF2YS5sYW5nLlN0cmluZykiPnNldENvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRNYXhsZW5ndGgoamF2YS5sYW5nLlN0cmluZykiPnNldE1heGxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFJvd3MoamF2YS5sYW5nLlN0cmluZykiPnNldFJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRTaXplKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTaXplPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUGFzc3dvcmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorUGFzc3dvcmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5QYXNzd29yZFRhZzwvQj4oKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIHRhZy4KKzxQPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1Bhc3N3b3JkVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQYXNzd29yZFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmMxOTFiOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sCkBAIC0wLDAgKzEsODI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorUmFkaW9UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJhZGlvVGFnLFJhZGlvVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJSYWRpb1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9SYWRpb1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSYWRpb1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBSYWRpb1RhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmFkaW9UYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCI+TmVzdGVkUmFkaW9UYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlJhZGlvVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvREw+CisKKzxQPgorVGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAicmFkaW8iLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbiwgVGVkIEh1c3RlZCwgRGF2aWQgR3JhaGFtPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJhZGlvVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNpZE5hbWUiPmlkTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOYW1lIG9mIHRoZSBiZWFuIChpbiBzb21lIHNjb3BlKSB0aGF0IHdpbGwgcmV0dXJuIHRoZQorIHZhbHVlIG9mIHRoZSByYWRpbyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcHJvcGVydHkgbmFtZSBmb3IgdGhpcyBmaWVsZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCN0ZXh0Ij50ZXh0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXJ2ZXIgdmFsdWUgZm9yIHRoaXMgb3B0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpbmRleGVkIj5pbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI1JhZGlvVGFnKCkiPlJhZGlvVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjY3VycmVudFZhbHVlKCkiPmN1cnJlbnRWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FjcXVpcmUgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiAKKyBhdHRyaWJ1dGUgYW5kIHRoZSBwcm9wZXJ0eSBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPmRvQWZ0ZXJCb2R5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3B0aW9uYWxseSByZW5kZXIgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmF0ZSB0aGUgcmVxdWlyZWQgaW5wdXQgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjZ2V0SWROYW1lKCkiPmdldElkTmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgaWROYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgcHJvcGVydHkgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBzZXJ2ZXIgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjcmVuZGVyUmFkaW9FbGVtZW50KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5yZW5kZXJSYWRpb0VsZW1lbnQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2VydmVyVmFsdWUsCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NoZWNrZWRWYWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQgdHlwZT0icmFkaW8iJmd0OyBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNzZXJ2ZXJWYWx1ZSgpIj5zZXJ2ZXJWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgU3RyaW5nIHRvIGJlIHVzZWQgaW4gdGhlIHJhZGlvIHRhZydzIDxjb2RlPnZhbHVlPC9jb2RlPiBhdHRyaWJ1dGUgCisgdGhhdCBnZXRzIHNlbnQgdG8gdGhlIHNlcnZlciBvbiBmb3JtIHN1Ym1pc3Npb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNzZXRJZE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldElkTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtpZE5hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGlkTmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBzZXJ2ZXIgdmFsdWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+Z2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBbHQoKSI+Z2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBbHRLZXkoKSI+Z2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRCdW5kbGUoKSI+Z2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RWxlbWVudENsb3NlKCkiPmdldEVsZW1lbnRDbG9zZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0SW5kZXhlZCgpIj5nZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRMb2NhbGUoKSI+Z2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmJsdXIoKSI+Z2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNoYW5nZSgpIj5nZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jbGljaygpIj5nZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmRibGNsaWNrKCkiPmdldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZm9jdXMoKSI+Z2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlkb3duKCkiPmdldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlwcmVzcygpIj5nZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXVwKCkiPmdldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vkb3duKCkiPmdldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlbW92ZSgpIj5nZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW91dCgpIj5nZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3ZlcigpIj5nZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZXVwKCkiPmdldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25zZWxlY3QoKSI+Z2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFJlYWRvbmx5KCkiPmdldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZSgpIj5nZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj5nZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUlkKCkiPmdldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRhYmluZGV4KCkiPmdldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZSgpIj5nZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGVLZXkoKSI+Z2V0VGl0bGVLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2lzWGh0bWwoKSI+aXNYaHRtbDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbG9va3VwUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmxvb2t1cFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNtZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5tZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRXZlbnRIYW5kbGVycygpIj5wcmVwYXJlRXZlbnRIYW5kbGVyczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUZvY3VzRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlRm9jdXNFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVJbmRleChqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLmxhbmcuU3RyaW5nKSI+cHJlcGFyZUluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlS2V5RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlS2V5RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlTW91c2VFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVNb3VzZUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVN0eWxlcygpIj5wcmVwYXJlU3R5bGVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlVGV4dEV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZVRleHRFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFjY2Vzc2tleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHQoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0S2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXREaXNhYmxlZChib29sZWFuKSI+c2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEluZGV4ZWQoYm9vbGVhbikiPnNldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmJsdXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZUtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGVLZXk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBmb3IgdGhpcyBmaWVsZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRleHQiPjwhLS0gLS0+PC9BPjxIMz4KK3RleHQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbHVlIj48IS0tIC0tPjwvQT48SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZlciB2YWx1ZSBmb3IgdGhpcyBvcHRpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpZE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK2lkTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+aWROYW1lPC9CPjwvUFJFPgorPERMPgorPEREPk5hbWUgb2YgdGhlIGJlYW4gKGluIHNvbWUgc2NvcGUpIHRoYXQgd2lsbCByZXR1cm4gdGhlCisgdmFsdWUgb2YgdGhlIHJhZGlvIHRhZy4KKyA8cD4KKyBJZiBhbiBpdGVyYXRvciBpcyB1c2VkIHRvIHJlbmRlciBhIHNlcmllcyBvZiByYWRpbyB0YWdzLAorIHRoaXMgZmllbGQgbWF5IGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgYmVhbgorIGV4cG9zZWQgYnkgdGhlIGl0ZXJhdG9yLiBJbiB0aGlzIGNhc2UsIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXMKKyB1c2VkIGFzIHRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb24gdGhlIDxjb2RlPmlkTmFtZTwvY29kZT4gYmVhbgorIHRoYXQgcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIHJhZGlvIHRhZyBpbiB0aGlzIGl0ZXJhdGlvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJSYWRpb1RhZygpIj48IS0tIC0tPjwvQT48SDM+CitSYWRpb1RhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJhZGlvVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBUaGUgbmV3IHByb3BlcnR5IG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgc2VydmVyIHZhbHVlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBzZXJ2ZXIgdmFsdWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFRoZSBuZXcgc2VydmVyIHZhbHVlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJZE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SWROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRJZE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGlkTmFtZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJZE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElkTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SWROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWROYW1lKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgaWROYW1lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5pZE5hbWU8L0NPREU+IC0gVGhlIG5ldyBpZE5hbWU8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5HZW5lcmF0ZSB0aGUgcmVxdWlyZWQgaW5wdXQgdGFnLgorIFtJbmRleGVkIHByb3BlcnR5IHNpbmNlIFN0cnV0cyAxLjFdCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXJ2ZXJWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitzZXJ2ZXJWYWx1ZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPnNlcnZlclZhbHVlPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBTdHJpbmcgdG8gYmUgdXNlZCBpbiB0aGUgcmFkaW8gdGFnJ3MgPGNvZGU+dmFsdWU8L2NvZGU+IGF0dHJpYnV0ZSAKKyB0aGF0IGdldHMgc2VudCB0byB0aGUgc2VydmVyIG9uIGZvcm0gc3VibWlzc2lvbi4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3VycmVudFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2N1cnJlbnRWYWx1ZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPmN1cnJlbnRWYWx1ZTwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5BY3F1aXJlIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gCisgYXR0cmlidXRlIGFuZCB0aGUgcHJvcGVydHkgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlLgorIFRoaXMgcmFkaW8gYnV0dG9uIHdpdGggdGhpcyB2YWx1ZSB3aWxsIGJlIGNoZWNrZWQuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbmRlclJhZGlvRWxlbWVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorcmVuZGVyUmFkaW9FbGVtZW50PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5yZW5kZXJSYWRpb0VsZW1lbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzZXJ2ZXJWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2hlY2tlZFZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQgdHlwZT0icmFkaW8iJmd0OyBlbGVtZW50LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2ZXJWYWx1ZTwvQ09ERT4gLSBUaGUgZGF0YSB0byBiZSB1c2VkIGluIHRoZSB0YWcncyA8Y29kZT52YWx1ZTwvY29kZT4gCisgYXR0cmlidXRlIGFuZCBzZW50IHRvIHRoZSBzZXJ2ZXIgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuPEREPjxDT0RFPmNoZWNrZWRWYWx1ZTwvQ09ERT4gLSBJZiB0aGUgc2VydmVyVmFsdWUgZXF1YWxzIHRoaXMgdmFsdWUgdGhlIHJhZGlvIGJ1dHRvbiAKKyB3aWxsIGJlIGNoZWNrZWQuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgcmFkaW8gaW5wdXQgZWxlbWVudC4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9BZnRlckJvZHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9BZnRlckJvZHk8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9BZnRlckJvZHk8L0I+KCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9BZnRlckJvZHk8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9BZnRlckJvZHk8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5PcHRpb25hbGx5IHJlbmRlciB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9SYWRpb1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSYWRpb1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTMwNzc2NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sCkBAIC0wLDAgKzEsNjU1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorUmVzZXRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJlc2V0VGFnLFJlc2V0VGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJSZXNldFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9SZXNldFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jld3JpdGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlc2V0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIFJlc2V0VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SZXNldFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5SZXNldFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0RMPgorCis8UD4KK1RhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInJlc2V0Ii4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW4sIERhdmlkIEdyYWhhbTwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SZXNldFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgaW5wdXQgZmllbGQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjdGV4dCI+dGV4dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+aW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNSZXNldFRhZygpIj5SZXNldFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPmRvQWZ0ZXJCb2R5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgZW5kIG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBmaWVsZCBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGxhYmVsIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sI2xhYmVsKCkiPmxhYmVsPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBsYWJlbCB2YWx1ZSB0byBkaXNwbGF5IGluIHRoZSByZXNldCBidXR0b24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjcmVuZGVyUmVzZXRFbGVtZW50KGphdmEubGFuZy5TdHJpbmcpIj5yZW5kZXJSZXNldEVsZW1lbnQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bGFiZWwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmF0ZSBhbiBIVE1MIHJlc2V0IGJ1dHRvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgZmllbGQgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgbGFiZWwgdmFsdWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+Z2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBbHQoKSI+Z2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBbHRLZXkoKSI+Z2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRCdW5kbGUoKSI+Z2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RWxlbWVudENsb3NlKCkiPmdldEVsZW1lbnRDbG9zZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0SW5kZXhlZCgpIj5nZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRMb2NhbGUoKSI+Z2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmJsdXIoKSI+Z2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNoYW5nZSgpIj5nZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jbGljaygpIj5nZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmRibGNsaWNrKCkiPmdldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZm9jdXMoKSI+Z2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlkb3duKCkiPmdldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlwcmVzcygpIj5nZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXVwKCkiPmdldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vkb3duKCkiPmdldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlbW92ZSgpIj5nZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW91dCgpIj5nZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3ZlcigpIj5nZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZXVwKCkiPmdldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25zZWxlY3QoKSI+Z2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFJlYWRvbmx5KCkiPmdldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZSgpIj5nZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj5nZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUlkKCkiPmdldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRhYmluZGV4KCkiPmdldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZSgpIj5nZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGVLZXkoKSI+Z2V0VGl0bGVLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2lzWGh0bWwoKSI+aXNYaHRtbDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbG9va3VwUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmxvb2t1cFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNtZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5tZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRXZlbnRIYW5kbGVycygpIj5wcmVwYXJlRXZlbnRIYW5kbGVyczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUZvY3VzRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlRm9jdXNFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVJbmRleChqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLmxhbmcuU3RyaW5nKSI+cHJlcGFyZUluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlS2V5RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlS2V5RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlTW91c2VFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVNb3VzZUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVN0eWxlcygpIj5wcmVwYXJlU3R5bGVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlVGV4dEV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZVRleHRFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFjY2Vzc2tleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHQoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0S2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXREaXNhYmxlZChib29sZWFuKSI+c2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEluZGV4ZWQoYm9vbGVhbikiPnNldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmJsdXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZUtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGVLZXk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGlucHV0IGZpZWxkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGV4dCI+PCEtLSAtLT48L0E+PEgzPgordGV4dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJSZXNldFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitSZXNldFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJlc2V0VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGZpZWxkIG5hbWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGZpZWxkIG5hbWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIFRoZSBmaWVsZCBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VmFsdWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGxhYmVsIHZhbHVlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBsYWJlbCB2YWx1ZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gVGhlIGxhYmVsIHZhbHVlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9BZnRlckJvZHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9BZnRlckJvZHk8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9BZnRlckJvZHk8L0I+KCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9BZnRlckJvZHk8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9BZnRlckJvZHk8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxhYmVsKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2xhYmVsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5sYWJlbDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgbGFiZWwgdmFsdWUgdG8gZGlzcGxheSBpbiB0aGUgcmVzZXQgYnV0dG9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbmRlclJlc2V0RWxlbWVudChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorcmVuZGVyUmVzZXRFbGVtZW50PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5yZW5kZXJSZXNldEVsZW1lbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsYWJlbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5HZW5lcmF0ZSBhbiBIVE1MIHJlc2V0IGJ1dHRvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bGFiZWw8L0NPREU+IC0gVGhlIHRleHQgdG8gYmUgZGlzcGxheWVkIG9uIHRoZSBidXR0b24uCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgZnVsbHkgZm9ybWVkIEhUTUwgcmVzZXQgYnV0dG9uLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUmVzZXRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXNldFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1OGJlZDEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sCkBAIC0wLDAgKzEsNDA0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorUmV3cml0ZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmV3cml0ZVRhZyxSZXdyaXRlVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJSZXdyaXRlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1Jld3JpdGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJld3JpdGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgUmV3cml0ZVRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5MaW5rVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJld3JpdGVUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UmV3cml0ZVRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+PC9ETD4KKworPFA+CitHZW5lcmF0ZSBhIFVSTC1lbmNvZGVkIFVSSSBhcyBhIHN0cmluZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmV3cml0ZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNhY3Rpb24iPmFjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNhbmNob3IiPmFuY2hvcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNmb3J3YXJkIj5mb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2hyZWYiPmhyZWY8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjaW5kZXhJZCI+aW5kZXhJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNsaW5rTmFtZSI+bGlua05hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFnZSI+cGFnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNwYXJhbUlkIj5wYXJhbUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3BhcmFtTmFtZSI+cGFyYW1OYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3BhcmFtUHJvcGVydHkiPnBhcmFtUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFyYW1TY29wZSI+cGFyYW1TY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3RhcmdldCI+dGFyZ2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3RleHQiPnRleHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjdHJhbnNhY3Rpb24iPnRyYW5zYWN0aW9uPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+aW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sI1Jld3JpdGVUYWcoKSI+UmV3cml0ZVRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJZ25vcmUgdGhlIGVuZCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jld3JpdGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW5kZXIgdGhlIGFwcHJvcHJpYXRlbHkgZW5jb2RlZCBVUkkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5MaW5rVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2NhbGN1bGF0ZVVSTCgpIj5jYWxjdWxhdGVVUkw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+ZG9BZnRlckJvZHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0QWN0aW9uKCkiPmdldEFjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRBbmNob3IoKSI+Z2V0QW5jaG9yPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldEZvcndhcmQoKSI+Z2V0Rm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRIcmVmKCkiPmdldEhyZWY8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0SW5kZXhJZCgpIj5nZXRJbmRleElkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldExpbmtOYW1lKCkiPmdldExpbmtOYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYWdlKCkiPmdldFBhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UGFyYW1JZCgpIj5nZXRQYXJhbUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFBhcmFtTmFtZSgpIj5nZXRQYXJhbU5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UGFyYW1Qcm9wZXJ0eSgpIj5nZXRQYXJhbVByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFBhcmFtU2NvcGUoKSI+Z2V0UGFyYW1TY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRUYXJnZXQoKSI+Z2V0VGFyZ2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFRyYW5zYWN0aW9uKCkiPmdldFRyYW5zYWN0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRBY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPnNldEFjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRBbmNob3IoamF2YS5sYW5nLlN0cmluZykiPnNldEFuY2hvcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldEhyZWYoamF2YS5sYW5nLlN0cmluZykiPnNldEhyZWY8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0SW5kZXhJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW5kZXhJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRMaW5rTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TGlua05hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFBhcmFtSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1OYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbU5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1Qcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1Qcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRQYXJhbVNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbVNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0VGFyZ2V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYXJnZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0VHJhbnNhY3Rpb24oYm9vbGVhbikiPnNldFRyYW5zYWN0aW9uPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJSZXdyaXRlVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1Jld3JpdGVUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5SZXdyaXRlVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlbmRlciB0aGUgYXBwcm9wcmlhdGVseSBlbmNvZGVkIFVSSS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+SWdub3JlIHRoZSBlbmQgb2YgdGhpcyB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1Jld3JpdGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJld3JpdGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VlY2I5MgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbApAQCAtMCwwICsxLDg4MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1NlbGVjdFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU2VsZWN0VGFnLFNlbGVjdFRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iU2VsZWN0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1NlbGVjdFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZWxlY3RUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgU2VsZWN0VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TZWxlY3RUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU2VsZWN0VGFnLmh0bWwiPk5lc3RlZFNlbGVjdFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+U2VsZWN0VGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvREw+CisKKzxQPgorQ3VzdG9tIHRhZyB0aGF0IHJlcHJlc2VudHMgYW4gSFRNTCBzZWxlY3QgZWxlbWVudCwgYXNzb2NpYXRlZCB3aXRoIGEKKyBiZWFuIHByb3BlcnR5IHNwZWNpZmllZCBieSBvdXIgYXR0cmlidXRlcy4gIFRoaXMgdGFnIG11c3QgYmUgbmVzdGVkCisgaW5zaWRlIGEgZm9ybSB0YWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuLCBEYXZpZCBHcmFoYW08L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU2VsZWN0VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmdbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNtYXRjaCI+bWF0Y2g8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGFjdHVhbCB2YWx1ZXMgd2Ugd2lsbCBtYXRjaCBhZ2FpbnN0LCBjYWxjdWxhdGVkIGluIGRvU3RhcnRUYWcoKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI211bHRpcGxlIj5tdWx0aXBsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTaG91bGQgbXVsdGlwbGUgc2VsZWN0aW9ucyBiZSBhbGxvd2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcHJvcGVydHkgbmFtZSB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNzYXZlQm9keSI+c2F2ZUJvZHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNhdmVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjc2l6ZSI+c2l6ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtIb3cgbWFueSBhdmFpbGFibGUgb3B0aW9ucyBzaG91bGQgYmUgZGlzcGxheWVkIHdoZW4gdGhpcyBlbGVtZW50CisgaXMgcmVuZGVyZWQ/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdmFsdWUgdG8gY29tcGFyZSB3aXRoIGZvciBtYXJraW5nIGFuIG9wdGlvbiBzZWxlY3RlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+aW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjU2VsZWN0VGFnKCkiPlNlbGVjdFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNjYWxjdWxhdGVNYXRjaFZhbHVlcygpIj5jYWxjdWxhdGVNYXRjaFZhbHVlczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NhbGN1bGF0ZSB0aGUgbWF0Y2ggdmFsdWVzIHdlIHdpbGwgYWN0dWFsbHkgYmUgdXNpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NhdmUgYW55IGJvZHkgY29udGVudCBvZiB0aGlzIHRhZywgd2hpY2ggd2lsbCBnZW5lcmFsbHkgYmUgdGhlCisgb3B0aW9uKHMpIHJlcHJlc2VudGluZyB0aGUgdmFsdWVzIGRpc3BsYXllZCB0byB0aGUgdXNlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVuZGVyIHRoZSBlbmQgb2YgdGhpcyBmb3JtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVuZGVyIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBzZWxlY3QgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2dldE11bHRpcGxlKCkiPmdldE11bHRpcGxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjZ2V0U2l6ZSgpIj5nZXRTaXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGNvbXBhcmlzb24gdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjaXNNYXRjaGVkKGphdmEubGFuZy5TdHJpbmcpIj5pc01hdGNoZWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEb2VzIHRoZSBzcGVjaWZpZWQgdmFsdWUgbWF0Y2ggb25lIG9mIHRob3NlIHdlIGFyZSBsb29raW5nIGZvcj88L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3JlbmRlclNlbGVjdFN0YXJ0RWxlbWVudCgpIj5yZW5kZXJTZWxlY3RTdGFydEVsZW1lbnQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYW4gYXBwcm9wcmlhdGUgc2VsZWN0IHN0YXJ0IGVsZW1lbnQgYmFzZWQgb24gb3VyIHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjc2V0TXVsdGlwbGUoamF2YS5sYW5nLlN0cmluZykiPnNldE11bHRpcGxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO211bHRpcGxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBwcm9wZXJ0eSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3NldFNpemUoamF2YS5sYW5nLlN0cmluZykiPnNldFNpemU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2l6ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgY29tcGFyaXNvbiB2YWx1ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1hdGNoIj48IS0tIC0tPjwvQT48SDM+CittYXRjaDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmdbXSA8Qj5tYXRjaDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWN0dWFsIHZhbHVlcyB3ZSB3aWxsIG1hdGNoIGFnYWluc3QsIGNhbGN1bGF0ZWQgaW4gZG9TdGFydFRhZygpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im11bHRpcGxlIj48IS0tIC0tPjwvQT48SDM+CittdWx0aXBsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bXVsdGlwbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIG11bHRpcGxlIHNlbGVjdGlvbnMgYmUgYWxsb3dlZC4gIEFueSBub24tbnVsbCB2YWx1ZSB3aWxsCisgdHJpZ2dlciByZW5kZXJpbmcgdGhpcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHByb3BlcnR5IG5hbWUgd2UgYXJlIGFzc29jaWF0ZWQgd2l0aC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNhdmVCb2R5Ij48IS0tIC0tPjwvQT48SDM+CitzYXZlQm9keTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c2F2ZUJvZHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNhdmVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNpemUiPjwhLS0gLS0+PC9BPjxIMz4KK3NpemU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNpemU8L0I+PC9QUkU+Cis8REw+Cis8REQ+SG93IG1hbnkgYXZhaWxhYmxlIG9wdGlvbnMgc2hvdWxkIGJlIGRpc3BsYXllZCB3aGVuIHRoaXMgZWxlbWVudAorIGlzIHJlbmRlcmVkPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgdG8gY29tcGFyZSB3aXRoIGZvciBtYXJraW5nIGFuIG9wdGlvbiBzZWxlY3RlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJTZWxlY3RUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorU2VsZWN0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+U2VsZWN0VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRNdWx0aXBsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNdWx0aXBsZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TXVsdGlwbGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE11bHRpcGxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRNdWx0aXBsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TXVsdGlwbGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttdWx0aXBsZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNpemUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNpemU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzaXplKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNNYXRjaGVkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Citpc01hdGNoZWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzTWF0Y2hlZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPkRvZXMgdGhlIHNwZWNpZmllZCB2YWx1ZSBtYXRjaCBvbmUgb2YgdGhvc2Ugd2UgYXJlIGxvb2tpbmcgZm9yPworPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBWYWx1ZSB0byBiZSBjb21wYXJlZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgcHJvcGVydHkgbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgcHJvcGVydHkgbmFtZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJvcGVydHk8L0NPREU+IC0gVGhlIG5ldyBwcm9wZXJ0eSBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VmFsdWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGNvbXBhcmlzb24gdmFsdWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VmFsdWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGNvbXBhcmlzb24gdmFsdWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFRoZSBuZXcgY29tcGFyaXNvbiB2YWx1ZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZW5kZXIgdGhlIGJlZ2lubmluZyBvZiB0aGlzIHNlbGVjdCB0YWcuCisgPHA+CisgU3VwcG9ydCBmb3IgaW5kZXhlZCBwcm9wZXJ0eSBzaW5jZSBTdHJ1dHMgMS4xCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW5kZXJTZWxlY3RTdGFydEVsZW1lbnQoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVuZGVyU2VsZWN0U3RhcnRFbGVtZW50PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5yZW5kZXJTZWxlY3RTdGFydEVsZW1lbnQ8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgYW4gYXBwcm9wcmlhdGUgc2VsZWN0IHN0YXJ0IGVsZW1lbnQgYmFzZWQgb24gb3VyIHBhcmFtZXRlcnMuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2FsY3VsYXRlTWF0Y2hWYWx1ZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorY2FsY3VsYXRlTWF0Y2hWYWx1ZXM8L0gzPgorPFBSRT4KK3ByaXZhdGUgdm9pZCA8Qj5jYWxjdWxhdGVNYXRjaFZhbHVlczwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNhbGN1bGF0ZSB0aGUgbWF0Y2ggdmFsdWVzIHdlIHdpbGwgYWN0dWFsbHkgYmUgdXNpbmcuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvQWZ0ZXJCb2R5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvQWZ0ZXJCb2R5PC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvQWZ0ZXJCb2R5PC9CPigpCisgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlNhdmUgYW55IGJvZHkgY29udGVudCBvZiB0aGlzIHRhZywgd2hpY2ggd2lsbCBnZW5lcmFsbHkgYmUgdGhlCisgb3B0aW9uKHMpIHJlcHJlc2VudGluZyB0aGUgdmFsdWVzIGRpc3BsYXllZCB0byB0aGUgdXNlci4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlbmRlciB0aGUgZW5kIG9mIHRoaXMgZm9ybS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1NlbGVjdFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZWxlY3RUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTUyMTEwYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbApAQCAtMCwwICsxLDYxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1N1Ym1pdFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU3VibWl0VGFnLFN1Ym1pdFRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iU3VibWl0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1N1Ym1pdFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU3VibWl0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIFN1Ym1pdFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU3VibWl0VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwiPk5lc3RlZFN1Ym1pdFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+U3VibWl0VGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvREw+CisKKzxQPgorVGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAic3VibWl0Ii4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU3VibWl0VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIGlucHV0IGZpZWxkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCN0ZXh0Ij50ZXh0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+aW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjU3VibWl0VGFnKCkiPlN1Ym1pdFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NhdmUgdGhlIGFzc29jaWF0ZWQgbGFiZWwgZnJvbSB0aGUgYm9keSBjb250ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzdGFydCBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGxhYmVsIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBsYWJlbCB2YWx1ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgaW5wdXQgZmllbGQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0ZXh0Ij48IS0tIC0tPjwvQT48SDM+Cit0ZXh0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj50ZXh0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB2YWx1ZSBvZiB0aGUgYnV0dG9uIGxhYmVsLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlN1Ym1pdFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitTdWJtaXRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5TdWJtaXRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHByb3BlcnR5IG5hbWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIFRoZSBwcm9wZXJ0eSBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VmFsdWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGxhYmVsIHZhbHVlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBsYWJlbCB2YWx1ZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gVGhlIGxhYmVsIHZhbHVlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IG9mIHRoaXMgdGFnLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9BZnRlckJvZHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9BZnRlckJvZHk8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9BZnRlckJvZHk8L0I+KCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+U2F2ZSB0aGUgYXNzb2NpYXRlZCBsYWJlbCBmcm9tIHRoZSBib2R5IGNvbnRlbnQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9BZnRlckJvZHk8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9BZnRlckJvZHk8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgb2YgdGhpcyB0YWcuCisgPHA+CisgU3VwcG9ydCBmb3IgSW5kZXhlZCBwcm9wZXJ0eSBzaW5jZSBTdHJ1dHMgMS4xCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9TdWJtaXRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlN1Ym1pdFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5ZWQyZDEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sCkBAIC0wLDAgKzEsMzYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVGV4dFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVGV4dFRhZyxUZXh0VGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJUZXh0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1RleHRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9YaHRtbFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGV4dFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBUZXh0VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVGV4dFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwiPk5lc3RlZFRleHRUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlRleHRUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0RMPgorCis8UD4KK0N1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJ0ZXh0Ii4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVGV4dFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2FjY2VwdCI+YWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3JlZGlzcGxheSI+cmVkaXNwbGF5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjdHlwZSI+dHlwZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2NvbHMiPmNvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtYXhsZW5ndGgiPm1heGxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3Jvd3MiPnJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpbmRleGVkIj5pbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0VGFnLmh0bWwjVGV4dFRhZygpIj5UZXh0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXRBY2NlcHQoKSI+Z2V0QWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0UmVkaXNwbGF5KCkiPmdldFJlZGlzcGxheTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldEFjY2VwdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldFJlZGlzcGxheShib29sZWFuKSI+c2V0UmVkaXNwbGF5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldENvbHMoKSI+Z2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldE1heGxlbmd0aCgpIj5nZXRNYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFJvd3MoKSI+Z2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFNpemUoKSI+Z2V0U2l6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Q29scyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldE1heGxlbmd0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Um93cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFNpemUoamF2YS5sYW5nLlN0cmluZykiPnNldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEVsZW1lbnRDbG9zZSgpIj5nZXRFbGVtZW50Q2xvc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEluZGV4ZWQoKSI+Z2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlS2V5KCkiPmdldFRpdGxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb2t1cFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRJbmRleGVkKGJvb2xlYW4pIj5zZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJUZXh0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1RleHRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5UZXh0VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgdGFnLgorPFA+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVGV4dFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1hodG1sVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUZXh0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWciPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWciPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDg5ZmIwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwKQEAgLTAsMCArMSw1MjEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitUZXh0YXJlYVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVGV4dGFyZWFUYWcsVGV4dGFyZWFUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlRleHRhcmVhVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1RleHRhcmVhVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRleHRhcmVhVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIFRleHRhcmVhVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlRleHRhcmVhVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwiPk5lc3RlZFRleHRhcmVhVGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5UZXh0YXJlYVRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvREw+CisKKzxQPgorQ3VzdG9tIHRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInRleHRhcmVhIi4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW4sIERhdmlkIEdyYWhhbTwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0YXJlYVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNjb2xzIj5jb2xzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWF4bGVuZ3RoIj5tYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNyb3dzIj5yb3dzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+aW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCNUZXh0YXJlYVRhZygpIj5UZXh0YXJlYVRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dlbmVyYXRlIHRoZSByZXF1aXJlZCBpbnB1dCB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYW55IGFjcXVpcmVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCNyZW5kZXJEYXRhKCkiPnJlbmRlckRhdGE8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW5kZXJzIHRoZSB2YWx1ZSBkaXNwbGF5ZWQgaW4gdGhlICZsdDt0ZXh0YXJlYSZndDsgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sI3JlbmRlclRleHRhcmVhRWxlbWVudCgpIj5yZW5kZXJUZXh0YXJlYUVsZW1lbnQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmF0ZSBhbiBIVE1MICZsdDt0ZXh0YXJlYSZndDsgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRDb2xzKCkiPmdldENvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRNYXhsZW5ndGgoKSI+Z2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRSb3dzKCkiPmdldFJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRTaXplKCkiPmdldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldENvbHMoamF2YS5sYW5nLlN0cmluZykiPnNldENvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRNYXhsZW5ndGgoamF2YS5sYW5nLlN0cmluZykiPnNldE1heGxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFJvd3MoamF2YS5sYW5nLlN0cmluZykiPnNldFJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRTaXplKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTaXplPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iVGV4dGFyZWFUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorVGV4dGFyZWFUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5UZXh0YXJlYVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+R2VuZXJhdGUgdGhlIHJlcXVpcmVkIGlucHV0IHRhZy4KKyBTdXBwb3J0IGZvciBpbmRleGVkIHNpbmNlIFN0cnV0cyAxLjEKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVuZGVyVGV4dGFyZWFFbGVtZW50KCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbmRlclRleHRhcmVhRWxlbWVudDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cmVuZGVyVGV4dGFyZWFFbGVtZW50PC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+R2VuZXJhdGUgYW4gSFRNTCAmbHQ7dGV4dGFyZWEmZ3Q7IHRhZy4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW5kZXJEYXRhKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbmRlckRhdGE8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnJlbmRlckRhdGE8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVycyB0aGUgdmFsdWUgZGlzcGxheWVkIGluIHRoZSAmbHQ7dGV4dGFyZWEmZ3Q7IHRhZy4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFueSBhY3F1aXJlZCByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVGV4dGFyZWFUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGV4dGFyZWFUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvWGh0bWxUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9YaHRtbFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlYjgzN2YKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvWGh0bWxUYWcuaHRtbApAQCAtMCwwICsxLDMwMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowOCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1hodG1sVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5YaHRtbFRhZyxYaHRtbFRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iWGh0bWxUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvWGh0bWxUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iWGh0bWxUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIFhodG1sVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5YaHRtbFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlhodG1sVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitUaGlzIHRhZyB0ZWxscyBhbGwgb3RoZXIgaHRtbCB0YWdsaWIgdGFncyB0byByZW5kZXIgdGhlbXNlbHZlcyBpbiB4aHRtbC4gIEl0IGhhcyBubyAKKyBhdHRyaWJ1dGVzOyBpdCdzIHByZXNlbmNlIGluIGEgcGFnZSB0dXJucyBvbiB4aHRtbC4KKyA8cD4KKyBFeGFtcGxlOjxici8+CisgJmx0O2h0bWw6eGh0bWwvJmd0OworIDwvcD4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5EYXZpZCBHcmFoYW08L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuWGh0bWxUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvWGh0bWxUYWcuaHRtbCNYaHRtbFRhZygpIj5YaHRtbFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yIGZvciBYaHRtbFRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvWGh0bWxUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9TdGFydFRhZywgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZWxlYXNlLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlhodG1sVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1hodG1sVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+WGh0bWxUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3RvciBmb3IgWGh0bWxUYWcuCis8UD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PENPREU+VGFnLmRvRW5kVGFnKCk8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9YaHRtbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJYaHRtbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0Jhc2VGaWVsZFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9CYXNlRmllbGRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODgzYzVmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9CYXNlRmllbGRUYWcuaHRtbApAQCAtMCwwICsxLDI2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkJhc2VGaWVsZFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQj48L0E+PC9URD4KKzxURD48YSBuYW1lPSJkb2MuRGVzY3JpcHRpb24iPlRoZSAic3RydXRzLWh0bWwiIHRhZyBsaWJyYXJ5PC9hPgorICBjb250YWlucyBKU1AgY3VzdG9tIHRhZ3MgdXNlZnVsIGluIGNyZWF0aW5nIGR5bmFtaWMgSFRNTCB1c2VyIGludGVyZmFjZXMsCitpbmNsdWRpbmcgaW5wdXQgZm9ybXMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4KKyB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dDwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sIj5GaWxlVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0N1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJmaWxlIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwiPkhpZGRlblRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiaGlkZGVuIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUGFzc3dvcmRUYWcuaHRtbCI+UGFzc3dvcmRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3VzdG9tIHRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInBhc3N3b3JkIi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sIj5OZXN0ZWRGaWxlVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEZpbGVUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCI+TmVzdGVkSGlkZGVuVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEhpZGRlblRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwiPk5lc3RlZFBhc3N3b3JkVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZFBhc3N3b3JkVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sIj5OZXN0ZWRUZXh0VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZFRleHRUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCI+VGV4dFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2Ugby5hLnMudGFnbGliLmh0bWwuVGV4dFRhZyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkJhc2VGaWVsZFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0Jhc2VIYW5kbGVyVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0Jhc2VIYW5kbGVyVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM0ODdiZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvQmFzZUhhbmRsZXJUYWcuaHRtbApAQCAtMCwwICsxLDQ2NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkJhc2VIYW5kbGVyVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9CPjwvQT48L1REPgorPFREPjxhIG5hbWU9ImRvYy5EZXNjcmlwdGlvbiI+VGhlICJzdHJ1dHMtaHRtbCIgdGFnIGxpYnJhcnk8L2E+CisgIGNvbnRhaW5zIEpTUCBjdXN0b20gdGFncyB1c2VmdWwgaW4gY3JlYXRpbmcgZHluYW1pYyBIVE1MIHVzZXIgaW50ZXJmYWNlcywKK2luY2x1ZGluZyBpbnB1dCBmb3Jtcy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGh0bWwgdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPgorIHRhZ3MgdG8gYWxsb3cgICB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0Ij48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0PC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udmVuaWVuY2UgYmFzZSBjbGFzcyBmb3IgdGhlIHZhcmlvdXMgaW5wdXQgdGFncyBmb3IgdGV4dCBmaWVsZHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgdGhlIHZhcmlvdXMgaW5wdXQgdGFncy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQnV0dG9uVGFnLmh0bWwiPkJ1dHRvblRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW5kZXJzIGFuIEhUTUwgQlVUVE9OIHRhZyB3aXRoaW4gdGhlIFN0cnV0cyBmcmFtZXdvcmsuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIj5DYW5jZWxUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiY2FuY2VsIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiY2hlY2tib3giLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwiPkZpbGVUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3VzdG9tIHRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImZpbGUiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj5GcmFtZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmF0ZSBhbiBIVE1MIDxjb2RlPiZsdDtmcmFtZSZndDs8L2NvZGU+IHRhZyB3aXRoIHNpbWlsYXIgY2FwYWJpbGl0aWVzCisgYXMgdGhvc2UgdGhlIDxjb2RlPiZsdDtodG1sOmxpbmsmZ3Q7PC9jb2RlPiB0YWcgcHJvdmlkZXMgZm9yIGh5cGVybGluaworIGVsZW1lbnRzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+SGlkZGVuVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0N1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJoaWRkZW4iLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJpbWFnZSIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2VuZXJhdGUgYW4gSU1HIHRhZyB0byB0aGUgc3BlY2lmaWVkIGltYWdlIFVSSS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dlbmVyYXRlIGEgVVJMLWVuY29kZWQgaHlwZXJsaW5rIHRvIHRoZSBzcGVjaWZpZWQgVVJJLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJjaGVja2JveCIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Bhc3N3b3JkVGFnLmh0bWwiPlBhc3N3b3JkVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0N1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJwYXNzd29yZCIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInJhZGlvIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+UmVzZXRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAicmVzZXQiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwiPlJld3JpdGVUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2VuZXJhdGUgYSBVUkwtZW5jb2RlZCBVUkkgYXMgYSBzdHJpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3VzdG9tIHRhZyB0aGF0IHJlcHJlc2VudHMgYW4gSFRNTCBzZWxlY3QgZWxlbWVudCwgYXNzb2NpYXRlZCB3aXRoIGEKKyBiZWFuIHByb3BlcnR5IHNwZWNpZmllZCBieSBvdXIgYXR0cmlidXRlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJzdWJtaXQiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj5UZXh0YXJlYVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAidGV4dGFyZWEiLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwiPk5lc3RlZENoZWNrYm94VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZENoZWNrYm94VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sIj5OZXN0ZWRGaWxlVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEZpbGVUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCI+TmVzdGVkSGlkZGVuVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEhpZGRlblRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwiPk5lc3RlZEltYWdlVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE11bHRpYm94VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwiPk5lc3RlZEltZ1RhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRJbWdUYWcsIHJlbmRlcnMgdGhlIG5lc3RlZCB2ZXJzaW9uIG9mIHRoZSA8aW1nPiB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwiPk5lc3RlZExpbmtUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTGlua1RhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwiPk5lc3RlZE11bHRpYm94VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE11bHRpYm94VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCI+TmVzdGVkUGFzc3dvcmRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkUGFzc3dvcmRUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRSYWRpb1RhZy5odG1sIj5OZXN0ZWRSYWRpb1RhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRSYWRpb1RhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sIj5OZXN0ZWRTZWxlY3RUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkU2VsZWN0VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwiPk5lc3RlZFN1Ym1pdFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRTdWJtaXRUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIj5OZXN0ZWRUZXh0YXJlYVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRUZXh0YXJlYVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRUYWcuaHRtbCI+TmVzdGVkVGV4dFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRUZXh0VGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCI+VGV4dFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2Ugby5hLnMudGFnbGliLmh0bWwuVGV4dFRhZyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQmFzZUhhbmRsZXJUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9CYXNlSW5wdXRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvQmFzZUlucHV0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBjOWU4NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvQmFzZUlucHV0VGFnLmh0bWwKQEAgLTAsMCArMSwyODYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJCYXNlSW5wdXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+PGEgbmFtZT0iZG9jLkRlc2NyaXB0aW9uIj5UaGUgInN0cnV0cy1odG1sIiB0YWcgbGlicmFyeTwvYT4KKyAgY29udGFpbnMgSlNQIGN1c3RvbSB0YWdzIHVzZWZ1bCBpbiBjcmVhdGluZyBkeW5hbWljIEhUTUwgdXNlciBpbnRlcmZhY2VzLAoraW5jbHVkaW5nIGlucHV0IGZvcm1zLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+CisgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQ8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udmVuaWVuY2UgYmFzZSBjbGFzcyBmb3IgdGhlIHZhcmlvdXMgaW5wdXQgdGFncyBmb3IgdGV4dCBmaWVsZHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZpbGVUYWcuaHRtbCI+RmlsZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiZmlsZSIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj5IaWRkZW5UYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3VzdG9tIHRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImhpZGRlbiIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Bhc3N3b3JkVGFnLmh0bWwiPlBhc3N3b3JkVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0N1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJwYXNzd29yZCIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0N1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJ0ZXh0YXJlYSIuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZpbGVUYWcuaHRtbCI+TmVzdGVkRmlsZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRGaWxlVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSGlkZGVuVGFnLmh0bWwiPk5lc3RlZEhpZGRlblRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRIaWRkZW5UYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRQYXNzd29yZFRhZy5odG1sIj5OZXN0ZWRQYXNzd29yZFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRQYXNzd29yZFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwiPk5lc3RlZFRleHRhcmVhVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZFRleHRhcmVhVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sIj5OZXN0ZWRUZXh0VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZFRleHRUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCI+VGV4dFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2Ugby5hLnMudGFnbGliLmh0bWwuVGV4dFRhZyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkJhc2VJbnB1dFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0Jhc2VUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvQmFzZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjYjM4MjQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0Jhc2VUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkJhc2VUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJCYXNlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvQnV0dG9uVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0J1dHRvblRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwMDYwNzkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0J1dHRvblRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CdXR0b25UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQnV0dG9uVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQnV0dG9uVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQnV0dG9uVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJ1dHRvblRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQnV0dG9uVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvQ2FuY2VsVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0NhbmNlbFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlNmMyZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0NhbmNlbFRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DYW5jZWxUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2FuY2VsVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ2FuY2VsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2FuY2VsVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNhbmNlbFRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ2FuY2VsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvQ2hlY2tib3hUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvQ2hlY2tib3hUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MGEwYWM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9DaGVja2JveFRhZy5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DaGVja2JveFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DaGVja2JveFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ2hlY2tib3hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DaGVja2JveFRhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGh0bWwgdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPgorIHRhZ3MgdG8gYWxsb3cgICB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sIj5OZXN0ZWRDaGVja2JveFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRDaGVja2JveFRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ2hlY2tib3hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9Db25zdGFudHMuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvQ29uc3RhbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTllNjg5OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvQ29uc3RhbnRzLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNvbnN0YW50cyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5Db25zdGFudHMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb25zdGFudHMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5Db25zdGFudHM8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ29uc3RhbnRzCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb25zdGFudHMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9FcnJvcnNUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvRXJyb3JzVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg2NTAwZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvRXJyb3JzVGFnLmh0bWwKQEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkVycm9yc1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5FcnJvcnNUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJFcnJvcnNUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5FcnJvcnNUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGh0bWwgdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPgorIHRhZ3MgdG8gYWxsb3cgICB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPkVycm9yc1RhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwiPk5lc3RlZEVycm9yc1RhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRFcnJvcnNUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJFcnJvcnNUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9GaWxlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0ZpbGVUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODk3M2NkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9GaWxlVGFnLmh0bWwKQEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZpbGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRmlsZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGaWxlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRmlsZVRhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZpbGVUYWcuaHRtbCI+RmlsZVRhZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4KKyB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZpbGVUYWcuaHRtbCI+RmlsZVRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sIj5GaWxlVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwiPk5lc3RlZEZpbGVUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkRmlsZVRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGaWxlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvRm9ybVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9Gb3JtVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWEyOTJlNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvRm9ybVRhZy5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5Gb3JtVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZvcm1UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRm9ybVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZvcm1UYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+CisgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRm9ybVRhZy5odG1sIj5OZXN0ZWRGb3JtVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEZvcm1UYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRm9ybVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0ZyYW1lVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0ZyYW1lVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTYzNmRkZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvRnJhbWVUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRnJhbWVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRnJhbWVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZyYW1lVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRnJhbWVUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRnJhbWVUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRnJhbWVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9IaWRkZW5UYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvSGlkZGVuVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDI5OThiNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvSGlkZGVuVGFnLmh0bWwKQEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkhpZGRlblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5IaWRkZW5UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJIaWRkZW5UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5IaWRkZW5UYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+SGlkZGVuVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGh0bWwgdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPgorIHRhZ3MgdG8gYWxsb3cgICB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwiPkhpZGRlblRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwiPkhpZGRlblRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSGlkZGVuVGFnLmh0bWwiPk5lc3RlZEhpZGRlblRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRIaWRkZW5UYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJIaWRkZW5UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9IdG1sVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0h0bWxUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZWIzZjVlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9IdG1sVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkh0bWxUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSHRtbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJIdG1sVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSHRtbFRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5IdG1sVGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0h0bWxUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSHRtbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0ltYWdlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0ltYWdlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk0Yjk1YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvSW1hZ2VUYWcuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSW1hZ2VUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSW1hZ2VUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkltYWdlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSW1hZ2VUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4KKyB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1hZ2VUYWcuaHRtbCI+TmVzdGVkSW1hZ2VUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTXVsdGlib3hUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkltYWdlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvSW1nVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0ltZ1RhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllODRjYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0ltZ1RhZy5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWdUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSW1nVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW1nVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSW1nVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4KKyB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltZ1RhZy5odG1sIj5OZXN0ZWRJbWdUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkSW1nVGFnLCByZW5kZXJzIHRoZSBuZXN0ZWQgdmVyc2lvbiBvZiB0aGUgPGltZz4gdGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW1nVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjgxZDdkZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkphdmFzY3JpcHRWYWxpZGF0b3JUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSmF2YXNjcmlwdFZhbGlkYXRvclRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkphdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9MaW5rVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0xpbmtUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGM0NTExCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9MaW5rVGFnLmh0bWwKQEAgLTAsMCArMSwyMDMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTGlua1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJMaW5rVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTGlua1RhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9CPjwvQT48L1REPgorPFREPjxhIG5hbWU9ImRvYy5EZXNjcmlwdGlvbiI+VGhlICJzdHJ1dHMtaHRtbCIgdGFnIGxpYnJhcnk8L2E+CisgIGNvbnRhaW5zIEpTUCBjdXN0b20gdGFncyB1c2VmdWwgaW4gY3JlYXRpbmcgZHluYW1pYyBIVE1MIHVzZXIgaW50ZXJmYWNlcywKK2luY2x1ZGluZyBpbnB1dCBmb3Jtcy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGh0bWwgdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPgorIHRhZ3MgdG8gYWxsb3cgICB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZyYW1lVGFnLmh0bWwiPkZyYW1lVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dlbmVyYXRlIGFuIEhUTUwgPGNvZGU+Jmx0O2ZyYW1lJmd0OzwvY29kZT4gdGFnIHdpdGggc2ltaWxhciBjYXBhYmlsaXRpZXMKKyBhcyB0aG9zZSB0aGUgPGNvZGU+Jmx0O2h0bWw6bGluayZndDs8L2NvZGU+IHRhZyBwcm92aWRlcyBmb3IgaHlwZXJsaW5rCisgZWxlbWVudHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jld3JpdGVUYWcuaHRtbCI+UmV3cml0ZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmF0ZSBhIFVSTC1lbmNvZGVkIFVSSSBhcyBhIHN0cmluZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCI+TmVzdGVkTGlua1RhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRMaW5rVGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkxpbmtUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9NZXNzYWdlc1RhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9NZXNzYWdlc1RhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwYjY3ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL01lc3NhZ2VzVGFnLmh0bWwKQEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk1lc3NhZ2VzVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk1lc3NhZ2VzVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZXNzYWdlc1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk1lc3NhZ2VzVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+CisgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE1lc3NhZ2VzVGFnLmh0bWwiPk5lc3RlZE1lc3NhZ2VzVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE1lc3NhZ2VzVGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZXNzYWdlc1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL01lc3NhZ2VzVGVpLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL01lc3NhZ2VzVGVpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDJjN2JjMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvTWVzc2FnZXNUZWkuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTWVzc2FnZXNUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTWVzc2FnZXNUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VzVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTWVzc2FnZXNUZWk8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTWVzc2FnZXNUZWkKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWVzc2FnZXNUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9NdWx0aWJveFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9NdWx0aWJveFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiNjhmOTYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL011bHRpYm94VGFnLmh0bWwKQEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk11bHRpYm94VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk11bHRpYm94VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aWJveFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk11bHRpYm94VGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+CisgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwiPk5lc3RlZE11bHRpYm94VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE11bHRpYm94VGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aWJveFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL09wdGlvblRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9PcHRpb25UYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODdkZWYyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9PcHRpb25UYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik9wdGlvblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvblRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25UYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik9wdGlvblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdjMDE0NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uc0NvbGxlY3Rpb25UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uc0NvbGxlY3Rpb25UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uc0NvbGxlY3Rpb25UYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5PcHRpb25zQ29sbGVjdGlvblRhZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4KKyB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5PcHRpb25zQ29sbGVjdGlvblRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+TmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvT3B0aW9uc1RhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9PcHRpb25zVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZThmMWRiOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvT3B0aW9uc1RhZy5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25zVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvbnNUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iT3B0aW9uc1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvbnNUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+CisgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc1RhZy5odG1sIj5OZXN0ZWRPcHRpb25zVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE9wdGlvbnNUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iT3B0aW9uc1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL1Bhc3N3b3JkVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL1Bhc3N3b3JkVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmUxNjg3NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvUGFzc3dvcmRUYWcuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUGFzc3dvcmRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUGFzc3dvcmRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Bhc3N3b3JkVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBhc3N3b3JkVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUGFzc3dvcmRUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj5QYXNzd29yZFRhZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4KKyB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Bhc3N3b3JkVGFnLmh0bWwiPlBhc3N3b3JkVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj5QYXNzd29yZFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCI+TmVzdGVkUGFzc3dvcmRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkUGFzc3dvcmRUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Bhc3N3b3JkVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBhc3N3b3JkVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvUmFkaW9UYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvUmFkaW9UYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWJlYWI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9SYWRpb1RhZy5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SYWRpb1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SYWRpb1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmFkaW9UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SYWRpb1RhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGh0bWwgdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPgorIHRhZ3MgdG8gYWxsb3cgICB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRSYWRpb1RhZy5odG1sIj5OZXN0ZWRSYWRpb1RhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRSYWRpb1RhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmFkaW9UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9SZXNldFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9SZXNldFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhMGQwZGEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL1Jlc2V0VGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJlc2V0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJlc2V0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXNldFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJlc2V0VGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJlc2V0VGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlc2V0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvUmV3cml0ZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9SZXdyaXRlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTViZmI1ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvUmV3cml0ZVRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SZXdyaXRlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJld3JpdGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jld3JpdGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmV3cml0ZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJld3JpdGVUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmV3cml0ZVRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXdyaXRlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJld3JpdGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9TZWxlY3RUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvU2VsZWN0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBhN2YzMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvU2VsZWN0VGFnLmh0bWwKQEAgLTAsMCArMSwxOTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlNlbGVjdFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TZWxlY3RUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZWxlY3RUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TZWxlY3RUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+PGEgbmFtZT0iZG9jLkRlc2NyaXB0aW9uIj5UaGUgInN0cnV0cy1odG1sIiB0YWcgbGlicmFyeTwvYT4KKyAgY29udGFpbnMgSlNQIGN1c3RvbSB0YWdzIHVzZWZ1bCBpbiBjcmVhdGluZyBkeW5hbWljIEhUTUwgdXNlciBpbnRlcmZhY2VzLAoraW5jbHVkaW5nIGlucHV0IGZvcm1zLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+CisgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk9wdGlvblRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjc2VsZWN0VGFnKCkiPnNlbGVjdFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FjcXVpcmUgdGhlIHNlbGVjdCB0YWcgd2UgYXJlIGFzc29jaWF0ZWQgd2l0aC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU2VsZWN0VGFnLmh0bWwiPk5lc3RlZFNlbGVjdFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRTZWxlY3RUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZWxlY3RUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9TdWJtaXRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvU3VibWl0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTlmYWFhZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvU3VibWl0VGFnLmh0bWwKQEAgLTAsMCArMSwyMDEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlN1Ym1pdFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TdWJtaXRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdWJtaXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TdWJtaXRUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+PGEgbmFtZT0iZG9jLkRlc2NyaXB0aW9uIj5UaGUgInN0cnV0cy1odG1sIiB0YWcgbGlicmFyeTwvYT4KKyAgY29udGFpbnMgSlNQIGN1c3RvbSB0YWdzIHVzZWZ1bCBpbiBjcmVhdGluZyBkeW5hbWljIEhUTUwgdXNlciBpbnRlcmZhY2VzLAoraW5jbHVkaW5nIGlucHV0IGZvcm1zLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+CisgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJpbWFnZSIuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwiPk5lc3RlZEltYWdlVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE11bHRpYm94VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwiPk5lc3RlZFN1Ym1pdFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRTdWJtaXRUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdWJtaXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9UZXh0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL1RleHRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDM5YWI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9UZXh0VGFnLmh0bWwKQEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlRleHRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVGV4dFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUZXh0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVGV4dFRhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbCI+VGV4dFRhZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4KKyB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbCI+VGV4dFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sIj5UZXh0VGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwiPk5lc3RlZFRleHRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkVGV4dFRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUZXh0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvVGV4dGFyZWFUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvVGV4dGFyZWFUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjFhZmFlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9UZXh0YXJlYVRhZy5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0YXJlYVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0YXJlYVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGV4dGFyZWFUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0YXJlYVRhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGh0bWwgdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPgorIHRhZ3MgdG8gYWxsb3cgICB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+VGV4dGFyZWFUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIj5OZXN0ZWRUZXh0YXJlYVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRUZXh0YXJlYVRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGV4dGFyZWFUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9YaHRtbFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9YaHRtbFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjMGMyYzcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL1hodG1sVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlhodG1sVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlhodG1sVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9YaHRtbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJYaHRtbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlhodG1sVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlhodG1sVGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1hodG1sVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlhodG1sVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9kb2MtZmlsZXMvaHRtbFVNTC5naWYgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvZG9jLWZpbGVzL2h0bWxVTUwuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkYWNiYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvZG9jLWZpbGVzL2h0bWxVTUwuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLWZyYW1lLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5MDVkMDgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsOTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0E+PC9GT05UPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorQ2xhc3NlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9IkJhc2VGaWVsZFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkJhc2VGaWVsZFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkJhc2VIYW5kbGVyVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QmFzZUhhbmRsZXJUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJCYXNlSW5wdXRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5CYXNlSW5wdXRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJCYXNlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QmFzZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkJ1dHRvblRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkJ1dHRvblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkNhbmNlbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNhbmNlbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkNoZWNrYm94VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q2hlY2tib3hUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJDb25zdGFudHMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db25zdGFudHM8L0E+Cis8QlI+Cis8QSBIUkVGPSJFcnJvcnNUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5FcnJvcnNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJGaWxlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RmlsZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkZvcm1UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Gb3JtVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iRnJhbWVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5GcmFtZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkhpZGRlblRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkhpZGRlblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ikh0bWxUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5IdG1sVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iSW1hZ2VUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JbWFnZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkltZ1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkltZ1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkphdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTGlua1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkxpbmtUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJNZXNzYWdlc1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk1lc3NhZ2VzVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTWVzc2FnZXNUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NZXNzYWdlc1RlaTwvQT4KKzxCUj4KKzxBIEhSRUY9Ik11bHRpYm94VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TXVsdGlib3hUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iT3B0aW9uc1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk9wdGlvbnNUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJPcHRpb25UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5PcHRpb25UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJQYXNzd29yZFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlBhc3N3b3JkVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iUmFkaW9UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SYWRpb1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlJlc2V0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVzZXRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJSZXdyaXRlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmV3cml0ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlNlbGVjdFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlNlbGVjdFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlN1Ym1pdFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlN1Ym1pdFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlRleHRhcmVhVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VGV4dGFyZWFUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJUZXh0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VGV4dFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlhodG1sVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+WGh0bWxUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQxN2E1NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbApAQCAtMCwwICsxLDEwMDEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbAorPC9IMj4KKzxhIG5hbWU9ImRvYy5EZXNjcmlwdGlvbiI+VGhlICJzdHJ1dHMtaHRtbCIgdGFnIGxpYnJhcnk8L2E+CisgIGNvbnRhaW5zIEpTUCBjdXN0b20gdGFncyB1c2VmdWwgaW4gY3JlYXRpbmcgZHluYW1pYyBIVE1MIHVzZXIgaW50ZXJmYWNlcywKK2luY2x1ZGluZyBpbnB1dCBmb3Jtcy4KKzxQPgorPEI+U2VlOjwvQj4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxBIEhSRUY9IiNwYWNrYWdlX2Rlc2NyaXB0aW9uIj48Qj5EZXNjcmlwdGlvbjwvQj48L0E+Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJCYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQj48L1REPgorPFREPkNvbnZlbmllbmNlIGJhc2UgY2xhc3MgZm9yIHRoZSB2YXJpb3VzIGlucHV0IHRhZ3MgZm9yIHRleHQgZmllbGRzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+QmFzZSBjbGFzcyBmb3IgdGFncyB0aGF0IHJlbmRlciBmb3JtIGVsZW1lbnRzIGNhcGFibGUgb2YgaW5jbHVkaW5nIEphdmFTY3JpcHQKKyBldmVudCBoYW5kbGVycyBhbmQvb3IgQ1NTIFN0eWxlIGF0dHJpYnV0ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJCYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQj48L1REPgorPFREPkFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIHRoZSB2YXJpb3VzIGlucHV0IHRhZ3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJCYXNlVGFnLmh0bWwiPkJhc2VUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+UmVuZGVycyBhbiBIVE1MIDxiYXNlPiBlbGVtZW50IHdpdGggYW4gaHJlZiAKKyBhdHRyaWJ1dGUgcG9pbnRpbmcgdG8gdGhlIGFic29sdXRlIGxvY2F0aW9uIG9mIHRoZSBlbmNsb3NpbmcgSlNQIHBhZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJCdXR0b25UYWcuaHRtbCI+QnV0dG9uVGFnPC9BPjwvQj48L1REPgorPFREPlJlbmRlcnMgYW4gSFRNTCBCVVRUT04gdGFnIHdpdGhpbiB0aGUgU3RydXRzIGZyYW1ld29yay48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNhbmNlbFRhZy5odG1sIj5DYW5jZWxUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiY2FuY2VsIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPjwvQj48L1REPgorPFREPlRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImNoZWNrYm94Ii48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNvbnN0YW50cy5odG1sIj5Db25zdGFudHM8L0E+PC9CPjwvVEQ+Cis8VEQ+TWFuaWZlc3QgY29uc3RhbnRzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJFcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPjwvQj48L1REPgorPFREPkN1c3RvbSB0YWcgdGhhdCByZW5kZXJzIGVycm9yIG1lc3NhZ2VzIGlmIGFuIGFwcHJvcHJpYXRlIHJlcXVlc3QgYXR0cmlidXRlCisgaGFzIGJlZW4gY3JlYXRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkZpbGVUYWcuaHRtbCI+RmlsZVRhZzwvQT48L0I+PC9URD4KKzxURD5DdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiZmlsZSIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJGb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+Q3VzdG9tIHRhZyB0aGF0IHJlcHJlc2VudHMgYW4gaW5wdXQgZm9ybSwgYXNzb2NpYXRlZCB3aXRoIGEgYmVhbiB3aG9zZQorIHByb3BlcnRpZXMgY29ycmVzcG9uZCB0byB0aGUgdmFyaW91cyBmaWVsZHMgb2YgdGhlIGZvcm0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJGcmFtZVRhZy5odG1sIj5GcmFtZVRhZzwvQT48L0I+PC9URD4KKzxURD5HZW5lcmF0ZSBhbiBIVE1MIDxjb2RlPiZsdDtmcmFtZSZndDs8L2NvZGU+IHRhZyB3aXRoIHNpbWlsYXIgY2FwYWJpbGl0aWVzCisgYXMgdGhvc2UgdGhlIDxjb2RlPiZsdDtodG1sOmxpbmsmZ3Q7PC9jb2RlPiB0YWcgcHJvdmlkZXMgZm9yIGh5cGVybGluaworIGVsZW1lbnRzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iSGlkZGVuVGFnLmh0bWwiPkhpZGRlblRhZzwvQT48L0I+PC9URD4KKzxURD5DdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiaGlkZGVuIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ikh0bWxUYWcuaHRtbCI+SHRtbFRhZzwvQT48L0I+PC9URD4KKzxURD5SZW5kZXJzIGFuIEhUTUwgPGh0bWw+IGVsZW1lbnQgd2l0aCBhcHByb3ByaWF0ZSBsYW5ndWFnZSBhdHRyaWJ1dGVzIGlmCisgdGhlcmUgaXMgYSBjdXJyZW50IExvY2FsZSBhdmFpbGFibGUgaW4gdGhlIHVzZXIncyBzZXNzaW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiaW1hZ2UiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT48L0I+PC9URD4KKzxURD5HZW5lcmF0ZSBhbiBJTUcgdGFnIHRvIHRoZSBzcGVjaWZpZWQgaW1hZ2UgVVJJLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9BPjwvQj48L1REPgorPFREPkN1c3RvbSB0YWcgdGhhdCBnZW5lcmF0ZXMgSmF2YVNjcmlwdCBmb3IgY2xpZW50IHNpZGUgdmFsaWRhdGlvbiBiYXNlZAorIG9uIHRoZSB2YWxpZGF0aW9uIHJ1bGVzIGxvYWRlZCBieSB0aGUgPGNvZGU+VmFsaWRhdG9yUGx1Z0luPC9jb2RlPgorIGRlZmluZWQgaW4gdGhlIHN0cnV0cy1jb25maWcueG1sIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJMaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+R2VuZXJhdGUgYSBVUkwtZW5jb2RlZCBoeXBlcmxpbmsgdG8gdGhlIHNwZWNpZmllZCBVUkkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJNZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT48L0I+PC9URD4KKzxURD5DdXN0b20gdGFnIHRoYXQgaXRlcmF0ZXMgdGhlIGVsZW1lbnRzIG9mIGEgbWVzc2FnZSBjb2xsZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTWVzc2FnZXNUZWkuaHRtbCI+TWVzc2FnZXNUZWk8L0E+PC9CPjwvVEQ+Cis8VEQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPm1lc3NhZ2VzPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+VGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAiY2hlY2tib3giLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+VGFnIGZvciBjcmVhdGluZyBtdWx0aXBsZSAmbHQ7c2VsZWN0Jmd0OyBvcHRpb25zIGZyb20gYSBjb2xsZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPjwvQj48L1REPgorPFREPlRhZyBmb3IgY3JlYXRpbmcgbXVsdGlwbGUgJmx0O3NlbGVjdCZndDsgb3B0aW9ucyBmcm9tIGEgY29sbGVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik9wdGlvblRhZy5odG1sIj5PcHRpb25UYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+VGFnIGZvciBzZWxlY3Qgb3B0aW9ucy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlBhc3N3b3JkVGFnLmh0bWwiPlBhc3N3b3JkVGFnPC9BPjwvQj48L1REPgorPFREPkN1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJwYXNzd29yZCIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT48L0I+PC9URD4KKzxURD5UYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJyYWRpbyIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSZXNldFRhZy5odG1sIj5SZXNldFRhZzwvQT48L0I+PC9URD4KKzxURD5UYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJyZXNldCIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSZXdyaXRlVGFnLmh0bWwiPlJld3JpdGVUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+R2VuZXJhdGUgYSBVUkwtZW5jb2RlZCBVUkkgYXMgYSBzdHJpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJTZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPjwvQj48L1REPgorPFREPkN1c3RvbSB0YWcgdGhhdCByZXByZXNlbnRzIGFuIEhUTUwgc2VsZWN0IGVsZW1lbnQsIGFzc29jaWF0ZWQgd2l0aCBhCisgYmVhbiBwcm9wZXJ0eSBzcGVjaWZpZWQgYnkgb3VyIGF0dHJpYnV0ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJTdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPjwvQj48L1REPgorPFREPlRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInN1Ym1pdCIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJUZXh0YXJlYVRhZy5odG1sIj5UZXh0YXJlYVRhZzwvQT48L0I+PC9URD4KKzxURD5DdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAidGV4dGFyZWEiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iVGV4dFRhZy5odG1sIj5UZXh0VGFnPC9BPjwvQj48L1REPgorPFREPkN1c3RvbSB0YWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJ0ZXh0Ii48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlhodG1sVGFnLmh0bWwiPlhodG1sVGFnPC9BPjwvQj48L1REPgorPFREPlRoaXMgdGFnIHRlbGxzIGFsbCBvdGhlciBodG1sIHRhZ2xpYiB0YWdzIHRvIHJlbmRlciB0aGVtc2VsdmVzIGluIHhodG1sLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworCis8UD4KKzxBIE5BTUU9InBhY2thZ2VfZGVzY3JpcHRpb24iPjwhLS0gLS0+PC9BPjxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwgRGVzY3JpcHRpb24KKzwvSDI+CisKKzxQPgorPHA+PGEgbmFtZT0iZG9jLkRlc2NyaXB0aW9uIj5UaGUgInN0cnV0cy1odG1sIiB0YWcgbGlicmFyeTwvYT4KKyAgY29udGFpbnMgSlNQIGN1c3RvbSB0YWdzIHVzZWZ1bCBpbiBjcmVhdGluZyBkeW5hbWljIEhUTUwgdXNlciBpbnRlcmZhY2VzLAoraW5jbHVkaW5nIGlucHV0IGZvcm1zLjwvcD4KKworPGRpdiBhbGlnbj0iQ2VudGVyIj4KKzxwPiA8YSBocmVmPSIjZG9jLkludHJvIj5bSW50cm9kdWN0aW9uXTwvYT4KKyAgPGEgaHJlZj0iI2RvYy5Gb3JtIj5bSFRNTCBGb3JtIFRhZ3NdPC9hPgorICAgICAgPGEgaHJlZj0iI2RvYy5PdGhlciI+W090aGVyIEhUTUwgVGFnc108L2E+CisgIDwvcD4KKyAgPC9kaXY+CisKKzxocj4KKzxoMz48YSBuYW1lPSJkb2MuSW50cm8iPkludHJvZHVjdGlvbjwvYT4KKyA8L2gzPgorCis8cD5UaGUgdGFncyBpbiB0aGUgU3RydXRzIEhUTUwgbGlicmFyeSBmb3JtIGEgYnJpZGdlIGJldHdlZW4gYSBKU1AgdmlldyBhbmQKK3RoZSAgIG90aGVyIGNvbXBvbmVudHMgb2YgYSBXZWIgYXBwbGljYXRpb24uIFNpbmNlIGEgZHluYW1pYyBXZWIgYXBwbGljYXRpb24KK29mdGVuICAgZGVwZW5kcyBvbiBnYXRoZXJpbmcgZGF0YSBmcm9tIGEgdXNlciwgaW5wdXQgZm9ybXMgcGxheSBhbiBpbXBvcnRhbnQKK3JvbGUgaW4gICB0aGUgU3RydXRzIGZyYW1ld29yay4gQ29uc2VxdWVudGx5LCB0aGUgbWFqb3JpdHkgb2YgdGhlIEhUTUwgdGFncworaW52b2x2ZSA8YSBocmVmPSIjZG9jLkZvcm0iPkhUTUw8L2E+CisgICAgZm9ybXMuIE90aGVyIGltcG9ydGFudCBpc3N1ZXMgYWRkcmVzc2VkIGJ5IHRoZSBTdHJ1dHMtSFRNTCB0YWdzIGFyZSA8YSBocmVmPSIjZG9jLk90aGVyLm1lc3NhZ2VzIj4KKyBtZXNzYWdlczwvYT4KKyAsICAgIDxhIGhyZWY9IiNkb2MuT3RoZXIuZXJyb3JzIj5lcnJvciBtZXNzYWdlczwvYT4KKyAsIDxhIGhyZWY9IiNkb2MuT3RoZXIuaHlwZXJsaW5raW5nIj5oeXBlcmxpbmtpbmc8L2E+CisgIGFuZCA8YSBocmVmPSIjZG9jLk90aGVyLmkxOG4iPmludGVybmF0aW9uYWxpemF0aW9uPC9hPgorIC48YnI+Cis8L3A+Cis8ZGl2IGFsaWduPSJDZW50ZXIiPiA8aW1nIHNyYz0iZG9jLWZpbGVzL2h0bWxVTUwuZ2lmIiBhbHQ9IlRhZ3MgdGhhdCB3cmFwIHRoZSBodG1sIHRhZ3MiPgorIDxicj4KKyA8L2Rpdj4KKworCisKKzxocj4KKzxoMz48YSBuYW1lPSJkb2MuRm9ybSI+SFRNTCAiZm9ybSIgdGFnczwvYT4KKyA8L2gzPgorCis8dWw+CisgICAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1odG1sLmh0bWwjYnV0dG9uIj5idXR0b248L2E+CisgICA8L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9zdHJ1dHMtaHRtbC5odG1sI2NhbmNlbCI+Y2FuY2VsPC9hPgorICAgPC9saT4KKyAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWh0bWwuaHRtbCNjaGVja2JveCI+Y2hlY2tib3hlczwvYT4KKyAgIDwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1odG1sLmh0bWwjZmlsZSI+ZmlsZTwvYT4KKyAgIDwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1odG1sLmh0bWwjaGlkZGVuIj5oaWRkZW48L2E+CisgICA8L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9zdHJ1dHMtaHRtbC5odG1sI2ltYWdlIj5pbWFnZTwvYT4KKyAgIDwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1odG1sLmh0bWwjbXVsdGlib3giPm11bHRpYm94PC9hPgorICAgPC9saT4KKyAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWh0bWwuaHRtbCNwYXNzd29yZCI+cGFzc3dvcmQ8L2E+CisgIGlucHV0IGZpZWxkczwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1odG1sLmh0bWwjcmFkaW8iPnJhZGlvPC9hPgorICBidXR0b25zPC9saT4KKyAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWh0bWwuaHRtbCNyZXNldCI+cmVzZXQ8L2E+CisgIGJ1dHRvbnM8L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9zdHJ1dHMtaHRtbC5odG1sI3NlbGVjdCI+c2VsZWN0PC9hPgorICBsaXN0cyB3aXRoIGVtYmVkZGVkPC9saT4KKyAgICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWh0bWwuaHRtbCNvcHRpb24iPm9wdGlvbjwvYT4KKyAgIDwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1odG1sLmh0bWwjb3B0aW9ucyI+b3B0aW9uczwvYT4KKyAgIDwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1odG1sLmh0bWwjc3VibWl0Ij5zdWJtaXQ8L2E+CisgIGJ1dHRvbnM8L2xpPgorICAgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9zdHJ1dHMtaHRtbC5odG1sI3RleHQiPnRleHQ8L2E+CisgIGlucHV0IGZpZWxkczwvbGk+CisgICAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1odG1sLmh0bWwjdGV4dGFyZWEiPnRleHRhcmVhczwvYT4KKyAgIDwvbGk+CisKKzwvdWw+CisKKzxwPkVhY2ggb2YgdGhlc2UgdGFncyBtdXN0IGJlIG5lc3RlZCB3aXRoaW4gYSAmbHQ7aHRtbDpmb3JtJmd0OyB0YWcuPC9wPgorCis8aDQ+PGEgbmFtZT0iZG9jLkZvcm0uZm9ybVRhZyI+QWJvdXQgdGhlIGZvcm0gdGFnPC9hPgorIDwvaDQ+CisKKzxwPlRoZSBTdHJ1dHMgPGNvZGU+Zm9ybTwvY29kZT4gdGFnIG91dHB1dHMgYSBzdGFuZGFyZCBIVE1MIGZvcm0gdGFnLCBhbmQKK2Fsc28gbGlua3MgdGhlIGlucHV0IGZvcm0gd2l0aCBhIEphdmFCZWFuIHN1YmNsYXNzZWQgZnJvbSB0aGUgU3RydXRzCis8YSBocmVmPSIuLi8uLi9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9hPm9iamVjdC4KK0VhY2ggZmllbGQgaW4gICB0aGUgZm9ybSBzaG91bGQgY29ycmVzcG9uZCB0byBhIHByb3BlcnR5IG9mIHRoZSBmb3JtJ3MKK2JlYW4uIFdoZW4gYSBmaWVsZCBhbmQgICBwcm9wZXJ0eSBjb3JyZXNwb25kLCB0aGUgYmVhbiBpcyBmaXJzdCB1c2VkIHRvIHBvcHVsYXRlCit0aGUgZm9ybSwgYW5kIHRoZW4gdG8gICBzdG9yZSB0aGUgdXNlcidzIGlucHV0IHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkCit0byB0aGUgY29udHJvbGxlciBzZXJ2bGV0LjwvcD4KKworPHA+VGhlIG5hbWUgb2YgdGhlIGJlYW4gYW5kIGl0cyBjbGFzcyBjYW4gYmUgc3BlY2lmaWVkIGFzIGEgcHJvcGVydHkgdG8gdGhlCitmb3JtIHRhZywgYnV0IG1heSBhbHNvIGJlIG9taXR0ZWQuIElmIG9taXR0ZWQsIHRoZSA8Y29kZT5BY3Rpb25NYXBwaW5nczwvY29kZT4KKyAgZGF0YWJhc2UgKGxvYWRlZCBmcm9tIHRoZSA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4gZmlsZSkgaXMgY29uc3VsdGVkLgorSWYgdGhlIGN1cnJlbnQgcGFnZSBpcyBzcGVjaWZpZWQgYXMgdGhlIDxjb2RlPmlucHV0PC9jb2RlPiBwcm9wZXJ0eSBmb3IgYW4KKzxjb2RlPmFjdGlvbjwvY29kZT4sIHRoZSBuYW1lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGlzIHVzZWQuIFRoZSA8Y29kZT4KKyB0eXBlPC9jb2RlPiBwcm9wZXJ0eSBmb3IgdGhlIGJlYW4gaXMgYWxzbyB0aGVuIHRha2VuIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24sCit2aWEgYSBGb3JtIEJlYW4gZGVmaW5pdGlvbi48L3A+CisKKzxwPkhlcmUncyBhIGNsaXAgZnJvbSB0aGUgU3RydXRzIEV4YW1wbGUgY29uZmlndXJhdGlvbjo8L3A+CisKKzxwcmU+Jmx0O2FjdGlvbi1tYXBwaW5ncyZndDs8YnI+ICAmbHQ7IS0tIFByb2Nlc3MgYSB1c2VyIGxvZ29uIC0tJmd0Ozxicj4gICZsdDthY3Rpb24gcGF0aD0iL2xvZ29uIjxicj4gICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLmV4YW1wbGUuTG9nb25BY3Rpb24iPGJyPiAgICBuYW1lPSJsb2dvbkZvcm0iPGJyPiAgICBzY29wZT0icmVxdWVzdCI8YnI+ICAgIGlucHV0PSIvbG9nb24uanNwIiZndDs8YnI+ICAmbHQ7L2FjdGlvbiZndDs8YnI+ICAmbHQ7IC4uLiAvJmd0Ozxicj4mbHQ7L2FjdGlvbi1tYXBwaW5ncyZndDs8YnI+Jmx0O2Zvcm0tYmVhbnMmZ3Q7PGJyPiAgJmx0OyEtLSBMb2dvbiBmb3JtIGJlYW4gLS0mZ3Q7PGJyPiAgJmx0O2Zvcm0tYmVhbiBuYW1lPSJsb2dvbkZvcm0iPGJyPiAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAuZXhhbXBsZS5Mb2dvbkZvcm0iLyZndDs8YnI+ICAmbHQ7IC4uLiAvJmd0Ozxicj4gICZsdDsvZm9ybS1iZWFucyZndDs8YnI+Jmx0Oy9wcmUmZ3Q7PGJyPjwvcHJlPgorCis8cD5HaXZlbiB0aGlzIGNvbmZpZ3VyYXRpb24sIHRoZSBIVE1MIGZvcm0gdGFnIGZvciA8Y29kZT5sb2dvbi5qc3A8L2NvZGU+CisgIHdpbGwgZGVmYXVsdCB0byB1c2luZyAiPGNvZGU+bG9nb25Gb3JtPC9jb2RlPiIgYXMgaXRzIG5hbWUgcHJvcGVydHkgYW5kCisiPGNvZGU+IG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC5leGFtcGxlLkxvZ29uRm9ybTwvY29kZT4iIGFzIHRoZSBhdHRyaWJ1dGUncyB0eXBlLgorVGhpcyB3YXkgeW91IGNhbiBtYW5hZ2UgdGhlIG5hbWVzcGFjZSBmb3IgeW91ciBmcmFtZXdvcmsgY29tcG9uZW50cyBmcm9tCit0aGUgY29uZmlndXJhdGlvbiBmaWxlLjwvcD4KKworPHA+SWYgdGhlIGZvcm0gdGFnIGRvZXMgbm90IGZpbmQgdGhlIGZvcm0gYmVhbiBpbiBhbnkgb2YgdGhlIHNjb3BlcyAocGFnZSwKK3JlcXVlc3QsIHNlc3Npb24sIGFwcGxpY2F0aW9uKSwgaXQgY3JlYXRlcyBvbmUgdXNpbmcgdGhlIHNwZWNpZmllZCB0eXBlLjwvcD4KKworPHA+VGhlIFN0cnV0cyA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBjbGFzcyBpcyBlcXVpcHBlZCB3aXRoIHN0YW5kYXJkIDxjb2RlPgorIHJlc2V0KCk8L2NvZGU+ICAgYW5kIDxjb2RlPnZhbGlkYXRlKCk8L2NvZGU+IG1ldGhvZHMsIHRoYXQgY2FuIGJlIHVzZWQgYnkKK3RoZSBjb250cm9sbGVyIHRvIGVuYWJsZSAgIGF1dG9tYXRpYyBkYXRhIHZhbGlkYXRpb24uIFNlZSB0aGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL2J1aWxkaW5nX3ZpZXcuaHRtbCNmb3JtX3ZhbGlkYXRpb24iPgorICAgIFVzZXJzIEd1aWRlPC9hPgorICBmb3IgbW9yZSBhYm91dCBGb3JtIFZhbGlkYXRpb24uIEFuIGltcG9ydGFudCBhc3BlY3Qgb2YgdmFsaWRhdGlvbiAgIGlzCityZXBvcnRpbmcgZXJyb3JzIHRvIHRoZSB1c2VyLiBUaGlzIGNhbiBiZSBoYW5kbGVkIGJ5IHRoZSBTdHJ1dHMgPGNvZGU+ZXJyb3JzPC9jb2RlPgorICAgIHRhZywgd2hpY2ggaXMgZGlzY3Vzc2VkIDxhIGhyZWY9IiNkb2MuT3RoZXIuZXJyb3JzIj5sYXRlciBpbiB0aGlzIGRvY3VtZW50PC9hPgorIC48L3A+CisKKzxocj4KKzxoND48YSBuYW1lPSJkb2MuRm9ybS5hdHRyaWJ1dGVzIj5Db21tb24gRm9ybSBUYWcgQXR0cmlidXRlczwvYT4KKyA8L2g0PgorCis8cD5UaGUgZm9ybSAiZmllbGQiIHRhZ3MgaW4gdGhlIFN0cnV0cy1IVE1MIHRhZyBsaWJyYXJ5IHNoYXJlIGEgY29tbW9uIHNldAorb2YgICB0YWcgYXR0cmlidXRlcyB0aGF0IGhhdmUgdGhlIHNhbWUgbWVhbmluZywgbm8gbWF0dGVyIHdoYXQgZmllbGQgdGFnIHRoZXkKK2FyZSAgIHVzZWQgd2l0aC4gVGhlc2UgcHJvcGVydGllcyBhbHNvIGFjY2VwdCBSdW50aW1lIEV4cHJlc3Npb25zLCBtZWFuaW5nCit5b3UgY2FuICAgc2V0IHRoZW0gd2l0aCBhIHNjcmlwdGxldC4gVGhlIGNvbW1vbiBhdHRyaWJ1dGVzIGZhbGwgaW50byBmb3VyCitjYXRlZ29yaWVzOiAgIDxhIGhyZWY9IiNkb2MuRm9ybS5hdHRyaWJ1dGVzLnN0cnV0cyI+U3RydXRzIENvbW1vbiw8L2E+CisgIDxhIGhyZWY9IiNkb2MuRm9ybS5hdHRyaWJ1dGVzLm5hdmlnYXRpb24iPkhUTUwgICBOYXZpZ2F0aW9uPC9hPgorICwgPGEgaHJlZj0iI2RvYy5Gb3JtLmF0dHJpYnV0ZXMuamF2YXNjcmlwdCI+SmF2YXNjcmlwdDwvYT4KKyAsIGFuZCAgIDxhIGhyZWY9IiNkb2MuRm9ybS5hdHRyaWJ1dGVzLmNzcyI+Q1NTPC9hPgorIC48L3A+CisKKzxoNT48YSBuYW1lPSJkb2MuRm9ybS5hdHRyaWJ1dGVzLnN0cnV0cyI+U3RydXRzIENvbW1vbjwvYT4KKyA8L2g1PgorCis8ZGl2IGFsaWduPSJDZW50ZXIiPgorPGNlbnRlcj4KKzx0YWJsZSB3aWR0aD0iOTAlIiBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSI0Ij4KKyAgICAgICAgPHRib2R5PgorICAgICA8dHI+CisgICAgICAgICAgPHRkPiBuYW1lIDwvdGQ+CisgICAgICAgICAgPHRkPiBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4gd2hvc2UKK3Byb3BlcnRpZXMgICAgICAgICAgIGFyZSBjb25zdWx0ZWQgd2hlbiByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcworaW5wdXQgZmllbGQuICAgICAgICAgICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0KK3RhZyB3ZSBhcmUgbmVzdGVkICAgICAgICAgICB3aXRoaW4gaXMgdXRpbGl6ZWQuIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+IHByb3BlcnR5IDwvdGQ+CisgICAgICAgICAgPHRkPiBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCitzdWJtaXNzaW9uLCAgICAgICAgICAgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+IHZhbHVlIDwvdGQ+CisgICAgICAgICAgPHRkPiBWYWx1ZSBvZiB0aGUgbGFiZWwgdG8gYmUgdXNlZCB3aXRoIHRoaXMgZWxlbWVudC4gVGhpcyB2YWx1ZQord2lsbCAgICAgICAgICAgYWxzbyBiZSBzdWJtaXR0ZWQgYXMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXJhbWV0ZXIuCitbQm9keSAgICAgICAgICAgb2YgdGhpcyB0YWcgKGlmIGFueSksIG9yICJDbGljayJdJm5ic3A7IDwvdGQ+CisgICAgICAgIDwvdHI+CisKKyAgPC90Ym9keT4KKzwvdGFibGU+CisgICAgPC9jZW50ZXI+CisgIDwvZGl2PgorCis8cD4mbmJzcDs8L3A+CisKKzxwPkxpa2UgPGEgaHJlZj0iLi4vYmVhbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCNkb2MuUHJvcGVydGllcyI+U3RydXRzLUJlYW48L2E+CisgICAgdGFncywgdGhlIHByb3BlcnR5IGF0dHJpYnV0ZSBmb3IgdGhlIFN0cnV0cy1IVE1MIHRhZ3MgYWNjZXB0IHNpbXBsZSwKK25lc3RlZCwgICAgYW5kIGluZGV4ZWQgZXhwcmVzc2lvbnMuIEZvciBleGFtcGxlLCB0aGlzIHRhZzo8L3A+CisKKzxwcmU+ICAmbHQ7aHRtbDp0ZXh0IHByb3BlcnR5PSJtYWlsaW5nQWRkcmVzcy5zdHJlZXQiLyZndDs8YnI+PC9wcmU+CisKKzxwPmNvcnJlc3BvbmRzIHRvOjwvcD4KKworPHByZT4gIGdldE1haWxpbmdBZGRyZXNzKCkuZ2V0U3RyZWV0KCk8YnI+PC9wcmU+CisKKzxwPkZvciBtb3JlIGFib3V0IHVzaW5nIHNpbXBsZSwgbmVzdGVkLCBhbmQgaW5kZXhlZCBleHByZXNzaW9ucyB3aXRoIFN0cnV0cywKK3NlZSAgIHRoZSA8YSBocmVmPSIuLi9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sI2RvYy5Qcm9wZXJ0aWVzIj5TdHJ1dHMtQmVhbgorRGV2ZWxvcGVycyAgIEd1aWRlLjwvYT4KKyAgPC9wPgorCis8aDU+PGEgbmFtZT0iZG9jLkZvcm0uYXR0cmlidXRlcy5qYXZhc2NyaXB0Ij5KYXZhc2NyaXB0IEV2ZW50IEhhbmRsZXJzPC9hPgorIDwvaDU+CisKKzxkaXYgYWxpZ249IkNlbnRlciI+Cis8Y2VudGVyPgorPHRhYmxlIHdpZHRoPSI5MCUiIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjQiPgorICAgICAgICA8dGJvZHk+CisgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+IG9uYmx1ciA8L3RkPgorICAgICAgICAgIDx0ZD4gRXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQgZm9jdXMuIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+IG9uY2hhbmdlIDwvdGQ+CisgICAgICAgICAgPHRkPiBFeGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dCBmb2N1cyBhbmQgaXRzIHZhbHVlCitoYXMgY2hhbmdlZC4gICAgICAgICA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkPiBvbmNsaWNrIDwvdGQ+CisgICAgICAgICAgPHRkPiBFeGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIG1vdXNlIGNsaWNrLiA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkPiBvbmRibGNsaWNrIDwvdGQ+CisgICAgICAgICAgPHRkPiBFeGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIG1vdXNlIC0gZG91YmxlIGNsaWNrLgorICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZD4gb25mb2N1cyA8L3RkPgorICAgICAgICAgIDx0ZD4gRXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQgZm9jdXMuIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+IG9ua2V5ZG93biA8L3RkPgorICAgICAgICAgIDx0ZD4gRXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhIGtleSBpcyBkZXByZXNzZWQuJm5ic3A7CisgICAgICAgICA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkPiBvbmtleXByZXNzIDwvdGQ+CisgICAgICAgICAgPHRkPiBFeGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEga2V5IGlzIGRlcHJlc3NlZAorYW5kIHJlbGVhc2VkICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZD4gb25rZXl1cCA8L3RkPgorICAgICAgICAgIDx0ZD4gRXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhIGtleSBpcyByZWxlYXNlZAorICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZD4gb25tb3VzZWRvd24gPC90ZD4KKyAgICAgICAgICA8dGQ+IEV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZSBwb2ludGVyIGFuZAorYSBtb3VzZSAgICAgICAgICAgYnV0dG9uIGlzIGRlcHJlc3NlZC4gPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZD4gb25tb3VzZW1vdmUgPC90ZD4KKyAgICAgICAgICA8dGQ+IEV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZSBwb2ludGVyIGFuZAordGhlIHBvaW50ZXIgICAgICAgICAgIGlzIG1vdmVkLiA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkPiBvbm1vdXNlb3V0IDwvdGQ+CisgICAgICAgICAgPHRkPiBFeGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlIG1vdXNlIHBvaW50ZXIgYnV0Cit0aGUgcG9pbnRlciAgICAgICAgICAgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+IG9ubW91c2VvdmVyIDwvdGQ+CisgICAgICAgICAgPHRkPiBFeGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyIHRoZSBtb3VzZSBwb2ludGVyCitidXQgdGhlICAgICAgICAgICBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4gPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZD4gb25tb3VzZXVwIDwvdGQ+CisgICAgICAgICAgPHRkPiBFeGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UgcG9pbnRlciBhbmQKK2EgbW91c2UgICAgICAgICAgIGJ1dHRvbiBpcyByZWxlYXNlZC4mbmJzcDsgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZD4mbmJzcDsgPC90ZD4KKyAgICAgICAgICA8dGQ+IDxiPiJwYXJlbnQiIGZvcm0gdGFnIG9ubHk8L2I+IDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+IG9ucmVzZXQgPC90ZD4KKyAgICAgICAgICA8dGQ+IEV4ZWN1dGVkIGlmIHRoZSBmb3JtIGlzIHJlc2V0LiA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkPiBvbnN1Ym1pdCA8L3RkPgorICAgICAgICAgIDx0ZD4gRXhlY3V0ZWQgaWYgdGhlIGZvcm0gaXMgc3VibWl0dGVkLiZuYnNwOyA8L3RkPgorICAgICAgICA8L3RyPgorCisgIDwvdGJvZHk+Cis8L3RhYmxlPgorICAgIDwvY2VudGVyPgorICA8L2Rpdj4KKworPGg1PiZuYnNwOzwvaDU+CisKKzxoNT48YSBuYW1lPSJkb2MuRm9ybS5hdHRyaWJ1dGVzLm5hdmlnYXRpb24iPkhUTUwgTmF2aWdhdGlvbiBBdHRyaWJ1dGVzPC9hPgorIDwvaDU+CisKKzxkaXYgYWxpZ249IkNlbnRlciI+Cis8Y2VudGVyPgorPHRhYmxlIHdpZHRoPSI5MCUiIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjQiPgorICAgICAgICA8dGJvZHk+CisgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+IGFjY2Vzc2tleSA8L3RkPgorICAgICAgICAgIDx0ZD4gVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworZWxlbWVudC4gICAgICAgICA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkPiB0YWJpbmRleCA8L3RkPgorICAgICAgICAgIDx0ZD4gVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKworICA8L3Rib2R5PgorPC90YWJsZT4KKyAgICA8L2NlbnRlcj4KKyAgPC9kaXY+CisKKzxoNT4mbmJzcDs8L2g1PgorCis8aDU+PGEgbmFtZT0iZG9jLkZvcm0uYXR0cmlidXRlcy5jc3MiPkNTUyBBdHRyaWJ1dGVzPC9hPgorIDwvaDU+CisKKzxkaXYgYWxpZ249IkNlbnRlciI+Cis8Y2VudGVyPgorPHRhYmxlIHdpZHRoPSI5MCUiIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjQiPgorICAgICAgICA8dGJvZHk+CisgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+IHN0eWxlIDwvdGQ+CisgICAgICAgICAgPHRkPiBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQ+IHN0eWxlQ2xhc3MgPC90ZD4KKyAgICAgICAgICA8dGQ+IENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuIDwvdGQ+CisgICAgICAgIDwvdHI+CisKKyAgPC90Ym9keT4KKzwvdGFibGU+CisgICAgPC9jZW50ZXI+CisgIDwvZGl2PgorCis8cD4mbmJzcDs8L3A+CisKKzxwPlNlZSB0aGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1odG1sLmh0bWwiPkhUTUwgVGFncyBSZWZlcmVuY2U8L2E+CisgICAgZm9yIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhdmFpbGFibGUgdGFncyBpbiB0aGlzIHRhZyBsaWJyYXJ5LAorYW5kIHRoZSAgIGNvbXBsZXRlIGxpc3Qgb2YgdmFsaWQgYXR0cmlidXRlcyBmb3IgZWFjaCB0YWcuPC9wPgorCis8aHI+Cis8aDM+PGEgbmFtZT0iZG9jLk90aGVyIj5PdGhlciBIVE1MIHRhZ3M8L2E+CisgPC9oMz4KKworPHA+QXNpZGUgZnJvbSBmb3JtIHByb2Nlc3NpbmcsIHRoZSBTdHJ1dHMtSFRNTCBvZmZlcnMgc2V2ZXJhbCBvdGhlciB0YWdzIG9yCit0YWcgICBwcm9wZXJ0aWVzIHRvIGhlbHAgd2l0aCBkaXNwbGF5aW5nIGVycm9yIG1lc3NhZ2VzLCBtZXNzYWdlcywgbWFpbnRhaW5pbmcKK2h5cGVybGlua3MsIGFuZCAgIHdpdGggaW50ZXJuYXRpb25hbGl6aW5nIHlvdXIgYXBwbGljYXRpb24uPC9wPgorCis8aDQ+PGEgbmFtZT0iZG9jLk90aGVyLm1lc3NhZ2VzIj5EaXNwbGF5aW5nIE1lc3NhZ2VzPC9hPgorIDwvaDQ+CisKKzxwPk1lc3NhZ2UgaGFuZGxpbmcgaXMgYW4gaW1wb3J0YW50IHBhcnQgb2YgYW55IGFwcGxpY2F0aW9uLiAgVGhlc2UgbWVzc2FnZXMKKyAgIGNhbiBiZSBpbmZvcm1hdGl2ZSBtZXNzYWdlcyBhbmQvb3IgZXJyb3IgbWVzc2FnZXMgZm9yIHRoZSB1c2VyLiAgU3RydXRzCitwcm92aWRlcyBhICAgIGdlbmVyYWxpemVkIG1ldGhvZCBmb3IgY29tbXVuaWNhdGluZyBydW50aW1lIG1lc3NhZ2VzIHRvIHVzZXJzLAorYmFzZWQgb24gdGhlICAgIHNhbWUgdGVjaG5vbG9neSB1c2VkIHRvIHByb3ZpZGUgaW50ZXJuYXRpb25hbGl6YXRpb24uIE1lc3NhZ2VzCithbmQgICAgZXJyb3IgbWVzc2FnZXMgY2FuIGJvdGggYmUgdXNlZCBieSB0aGUgbWVzc2FnZXMgdGFnLjwvcD4KKworPHA+VGhlIG1lc3NhZ2VzIHRhZyBbc2luY2UgdmVyc2lvbiAxLjFdIGhhcyBiYXNpY2FsbHkgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eQorYXMgdGhlIGVycm9ycyB0YWcsIGJ1dCAgICBpdCBpdGVyYXRlcyB0aHJvdWdoIHRoZSBtZXNzYWdlcyBzbyBhbnkgZm9ybWF0dGluZworb2YgbWVzc2FnZXMgY2FuIGJlIGRvbmUgICAgaW4gdGhlIEpTUCBwYWdlLiAgQWxzbyB0aGUgaGVhZGVyIGFuZCBmb290ZXIgZm9yCit0aGUgbWVzc2FnZSB0YWcgYXJlIG9wdGlvbmFsLiA8L3A+CisKKzxwPkJ5IGRlZmF1bHQsIHRoZSBtZXNzYWdlcyB0YWcgd2lsbCBpdGVyYXRlIHRocm91Z2ggYWxsIHBlbmRpbmcgbWVzc2FnZXMuCitZb3UgY2FuIGFsc28gc3BlY2lmeSAgIGEgcHJvcGVydHkgd2hlbiBxdWV1aW5nIGEgbWVzc2FnZSwgYW5kIHRoZW4gcmVmZXIgdG8KK3RoYXQgcHJvcGVydHkgaW4gdGhlIG1lc3NhZ2VzICAgdGFnLiBJbiB0aGF0IGNhc2UsIG9ubHkgdGhlIG1lc3NhZ2UocykgZm9yCit0aGF0IHByb3BlcnR5IHdpbGwgYmUgZGlzcGxheWVkLiBUaGlzICAgaXMgaGVscGZ1bCB3aGVuIHlvdSB3b3VsZCBsaWtlIHRvCitwbGFjZSB0aGUgbWVzc2FnZSBmb3IgYSBmaWVsZCBuZXh0IHRvIHRoZSAgIGFjdHVhbCBmaWVsZC48L3A+CisKKzxwPk1lc3NhZ2VzIGFyZSBvZnRlbiBxdWV1ZWQgaW4gdGhlIEFjdGlvbi4gIFRoZSB2YXJpYWJsZSBpbmZvIGlzIHRoZSBBY3Rpb25Gb3JtCisgICAgY29ycmVzcG9uZGluZyB0byB0aGlzIEFjdGlvbi4gOjwvcD4KKworPHByZT4gIDxicj4gICAgICAgQWN0aW9uTWVzc2FnZXMgbWVzc2FnZXMgPSBuZXcgQWN0aW9uTWVzc2FnZXMoKTs8YnI+ICAgICAgIG1lc3NhZ2VzLmFkZChBY3Rpb25NZXNzYWdlcy5HTE9CQUxfTUVTU0FHRSwgbmV3IEFjdGlvbk1lc3NhZ2UoInVzZXJGb3JtLmluc2VydCIsIGluZm8uZ2V0VXNlck5hbWUoKSk7PGJyPiAgICAgICBtZXNzYWdlcy5hZGQoImFjdGl2YXRpb25EYXRlIiwgbmV3IEFjdGlvbk1lc3NhZ2UoInVzZXJGb3JtLmFjdGl2ZSIsIGluZm8uZ2V0U3Vic2NyaXB0aW9uTGVuZ3RoKCkpOzxicj48L3ByZT4KKworPHA+VGhpcyBxdWV1ZXMgdHdvIG1lc3NhZ2VzLCBvbmUgaXMgYSBnbG9iYWwgbWVzc2FnZSBhbmQgYW5vdGhlciBmb3IgICB0aGUKKyJhY3RpdmF0aW9uRGF0ZSIgZmllbGQuIFRvIHByaW50IGFsbCB0aGUgbWVzc2FnZXMgdG9nZXRoZXIsIHNpbXBseSBwbGFjZSB0aGUKK21lc3NhZ2VzICAgdGFnIGFueXdoZXJlIGluIHlvdXIgSlNQLjwvcD4KKworPHByZT4gICZsdDtib2R5IGJnY29sb3I9IndoaXRlIiZndDs8YnI+ICAmbHQ7dWwmZ3Q7PGJyPiAgJmx0O2h0bWw6bWVzc2FnZXMgaWQ9Im1lc3NhZ2UiJmd0Ozxicj4gICAgICZsdDtsaSZndDsmbHQ7YmVhbjp3cml0ZSBuYW1lPSJtZXNzYWdlIi8mZ3Q7Jmx0Oy9saSZndDs8YnI+ICAmbHQ7L2h0bWw6bWVzc2FnZXMmZ3Q7PGJyPiAgJmx0Oy91bCZndDs8YnI+PC9wcmU+CisKKzxwPk9yLCB5b3UgY2FuIHBsYWNlIHNwZWNpZmljIG1lc3NhZ2VzIGF0IGRpZmZlcmVudCBsb2NhdGlvbnM8L3A+CisKKzxwcmU+ICAmbHQ7dWwmZ3Q7PGJyPiAgICAgJmx0O2h0bWw6bWVzc2FnZXMgaWQ9Im1lc3NhZ2UiIHByb3BlcnR5PSImbHQ7JT0gb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzLkdMT0JBTF9NRVNTQUdFICUmZ3Q7IiZndDs8YnI+ICAgICAgICAmbHQ7bGkmZ3Q7Jmx0O2JlYW46d3JpdGUgbmFtZT0ibWVzc2FnZSIvJmd0OyZsdDsvbGkmZ3Q7PGJyPiAgICAgJmx0Oy9odG1sOm1lc3NhZ2VzJmd0Ozxicj4gICZsdDsvdWwmZ3Q7PGJyPiAgJmx0O3RhYmxlJmd0Ozxicj4gICAgICZsdDt0ciZndDs8YnI+ICAgICAgICAmbHQ7dGQgYWxpZ249ImxlZnQiJmd0Ozxicj4gICAgICAgICAgJmx0O2h0bWw6dGV4dCBwcm9wZXJ0eT0idXNlcm5hbWUiIHNpemU9IjE2IiBtYXhsZW5ndGg9IjE2Ii8mZ3Q7PGJyPiAgICAgICAgJmx0Oy90ZCZndDs8YnI+ICAgICAmbHQ7L3RyJmd0Ozxicj4gICAgICZsdDt0ciZndDs8YnI+ICAgICAgICAmbHQ7dGQgYWxpZ249ImxlZnQiJmd0Ozxicj4gICAgICAgICAgJmx0O2h0bWw6dGV4dCBwcm9wZXJ0eT0iYWN0aXZhdGlvbkRhdGUiIHNpemU9IjEwIiBtYXhsZW5ndGg9IjEwIi8mZ3Q7PGJyPiAgICAgICAgICAmbHQ7YnImZ3Q7PGJyPiAgICAgICAgICAmbHQ7aHRtbDptZXNzYWdlcyBpZD0ibWVzc2FnZSIgcHJvcGVydHk9ImFjdGl2YXRpb25EYXRlIiZndDs8YnI+ICAgICAgICAgICAgICZsdDtiZWFuOndyaXRlIG5hbWU9Im1lc3NhZ2UiLyZndDsmbHQ7YnImZ3Q7PGJyPiAgICAgICAgICAmbHQ7L2h0bWw6bWVzc2FnZXMmZ3Q7PGJyPiAgICAgICAgJmx0Oy90ZCZndDs8YnI+ICAgICAmbHQ7L3RyJmd0Ozxicj4gICZsdDsvdGFibGUmZ3Q7PGJyPjwvcHJlPgorCis8cD5CeSBkZWZhdWx0LCB0aGUgYWN0dWFsIG1lc3NhZ2UgaXMgcmV0cmlldmVkIGZyb20gdGhlIGFwcGxpY2F0aW9uJ3Mgc3RhbmRhcmQKKyAgIG1lc3NhZ2UgcmVzb3VyY2UuIFRoaXMgZ2l2ZXMgeW91IGEgbWFzdGVyIGxpc3Qgb2YgdGhlIG1lc3NhZ2VzIHVzZWQgYnkKKyAgeW91ciBhcHBsaWNhdGlvbiwgYW5kIHByb3ZpZGVzIGZvciBpbnRlcm5hdGlvbmFsaXphdGlvbi4gSW4gdGhlIGNvZGUgc25pcHBldCwKKyAgIHRoZSBtZXNzYWdlIGNvcnJlc3BvbmRpbmcgdG8gInVzZXJGb3JtLmluc2VydCIgd291bGQgYmUgcmV0cmlldmVkIGFuZAorICBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgYXQgcnVudGltZS4gPC9wPgorCis8cHJlPiAgdXNlckZvcm0uaW5zZXJ0PXswfSBoYXMgc3VjY2Vzc2Z1bGx5IGJlZW4gaW5zZXJ0ZWQuPGJyPiAgdXNlckZvcm0uYWN0aXZlPVRoZSBhY2NvdW50IHdpbGwgYmUgYWN0aXZlIGZvciB7MH0gbW9udGhzLjxicj48L3ByZT4KKworPHA+QSBoZWFkZXIgYW5kIGZvb3RlciBhcmUgb3B0aW9uYWwuICBUaGUgaGVhZGVyIHdpbGwgYmUgcmVuZGVyZWQgYmVmb3JlIGl0ZXJhdGlvbgorYmVnaW5zICAgICBhbmQgdGhlIGZvb3RlciB3aWxsIGJlIHJlbmRlcmVkIGFmdGVyIGl0ZXJhdGlvbiBpcyBvdmVyLiAgSWYgYQordmFsdWUgaXMgbm90IGFzc2lnbmVkICAgICB0byB0aGUgYXR0cmlidXRlLCB0aGVuIG5vdGhpbmcgd2lsbCBiZSByZW5kZXJlZAorZm9yIHRoYXQgYXR0cmlidXRlLjwvcD4KKworPHByZT4gICZsdDtodG1sOm1lc3NhZ2VzIGlkPSJtZXNzYWdlIiBoZWFkZXI9ImVycm9ycy5oZWFkZXIiIGZvb3Rlcj0iZXJyb3JzLmZvb3RlciImZ3Q7PGJyPiAgICAgJmx0O2xpJmd0OyZsdDtiZWFuOndyaXRlIG5hbWU9Im1lc3NhZ2UiLyZndDsmbHQ7L2xpJmd0Ozxicj4gICZsdDsvaHRtbDptZXNzYWdlcyZndDs8YnI+PGJyPiAgZXJyb3JzLmhlYWRlcj0mbHQ7aDMmZ3Q7Jmx0O2ZvbnQgY29sb3I9InJlZCImZ3Q7VmFsaWRhdGlvbiBFcnJvciZsdDsvZm9udCZndDsmbHQ7L2gzJmd0Ozxicj4gICAgWW91IG11c3QgY29ycmVjdCB0aGUgZm9sbG93aW5nIGVycm9yKHMpIGJlZm9yZSBwcm9jZWVkaW5nOiZsdDtVTCZndDs8YnI+ICBlcnJvcnMuZm9vdGVyPSZsdDsvdWwmZ3Q7Jmx0O2hyJmd0Ozxicj48L3ByZT4KKworPGg0PjxhIG5hbWU9ImRvYy5PdGhlci5lcnJvcnMiPkRpc3BsYXlpbmcgRXJyb3IgTWVzc2FnZXM8L2E+CisgPC9oND4KKworPHA+RXJyb3IgaGFuZGxpbmcgaXMgYW4gaW1wb3J0YW50IHBhcnQgb2YgYW55IGFwcGxpY2F0aW9uLCBhbmQgY3VyaW5nIGFuIGVycm9yCisgIG9mdGVuIGludm9sdmVzIGdldHRpbmcgdGhlIHVzZXIncyBoZWxwLiBTdHJ1dHMgcHJvdmlkZXMgYSBnZW5lcmFsaXplZCBtZXRob2QKKyAgZm9yIGNvbW11bmljYXRpbmcgcnVudGltZSBtZXNzYWdlcyB0byB1c2VycywgYmFzZWQgb24gdGhlIHNhbWUgdGVjaG5vbG9neQordXNlZCAgIHRvIHByb3ZpZGUgaW50ZXJuYXRpb25hbGl6YXRpb24uIDwvcD4KKworPHA+SW4gYSBXZWIgYXBwbGljYXRpb24sIGl0IGlzIGNvbW1vbiB0byByZXVzZSB0aGUgaW5wdXQgcGFnZSB0byBkaXNwbGF5IGVycm9yCisgIG1lc3NhZ2VzLiBUaGUgU3RydXRzIGVycm9yIG1lc3NhZ2UgdGFnIGNhbiBiZSBwbGFjZWQgd2hlcmV2ZXIgeW91IHdvdWxkCitsaWtlICAgdGhlIG1lc3NhZ2VzIHRvIGRpc3BsYXkuIElmIG5vIG1lc3NhZ2VzIGFyZSBwZW5kaW5nLCBub3RoaW5nIGlzIHByaW50ZWQuPC9wPgorCis8cD5CeSBkZWZhdWx0LCB0aGUgZXJyb3JzIHRhZyB3aWxsIHByaW50IGFsbCBwZW5kaW5nIG1lc3NhZ2VzLiBZb3UgY2FuIGFsc28KK3NwZWNpZnkgICBhIHByb3BlcnR5IHdoZW4gcXVldWluZyBhIG1lc3NhZ2UsIGFuZCB0aGVuIHJlZmVyIHRvIHRoYXQgcHJvcGVydHkKK2luIHRoZSBlcnJvcnMgICB0YWcuIEluIHRoYXQgY2FzZSwgb25seSB0aGUgbWVzc2FnZSBmb3IgdGhhdCBwcm9wZXJ0eSB3aWxsCitiZSBkaXNwbGF5ZWQuIFRoaXMgICBpcyBoZWxwZnVsIHdoZW4geW91IHdvdWxkIGxpa2UgdG8gcGxhY2UgdGhlIG1lc3NhZ2UgZm9yCithIGZpZWxkIG5leHQgdG8gdGhlICAgYWN0dWFsIGZpZWxkLjwvcD4KKworPHA+RXJyb3IgbWVzc2FnZXMgYXJlIG9mdGVuIHF1ZXVlZCBpbiB0aGUgQWN0aW9uRm9ybSB2YWxpZGF0ZSBtZXRob2QuIEhlcmUncworYSAgIHNuaXBwZXQgZnJvbSB0aGUgU3RydXRzIEV4YW1wbGUgYXBwbGljYXRpb246PC9wPgorCis8cHJlPiAgQWN0aW9uRXJyb3JzIGVycm9ycyA9IG5ldyBBY3Rpb25FcnJvcnMoKTs8YnI+ICBpZiAoKHVzZXJuYW1lID09IG51bGwpIHx8ICh1c2VybmFtZS5sZW5ndGgoKSAmbHQ7IDEpKTxicj4gICAgICBlcnJvcnMuYWRkKCJ1c2VybmFtZSIsIG5ldyBBY3Rpb25FcnJvcigiZXJyb3IudXNlcm5hbWUucmVxdWlyZWQiKSk7PGJyPiAgaWYgKChwYXNzd29yZCA9PSBudWxsKSB8fCAocGFzc3dvcmQubGVuZ3RoKCkgJmx0OyAxKSk8YnI+ICAgICAgZXJyb3JzLmFkZCgicGFzc3dvcmQiLDxicj4gICAgICAgIG5ldyBBY3Rpb25FcnJvcigiZXJyb3IucGFzc3dvcmQucmVxdWlyZWQiKSk7PGJyPjwvcHJlPgorCis8cD5UaGlzIHF1ZXVlcyB0d28gZXJyb3IgbWVzc2FnZXMsIG9uZSBmb3IgdGhlICJ1c2VybmFtZSIgZmllbGQgYW5kIGFub3RoZXIKK2ZvciAgIHRoZSAicGFzc3dvcmQiIGZpZWxkLiBUbyBwcmludCBhbGwgdGhlIG1lc3NhZ2VzIHRvZ2V0aGVyLCBzaW1wbHkgcGxhY2UKK3RoZSBlcnJvciAgIHRhZyBhbnl3aGVyZSBpbiB5b3VyIEpTUC48L3A+CisKKzxwcmU+ICAmbHQ7Ym9keSBiZ2NvbG9yPSJ3aGl0ZSImZ3Q7PGJyPiAgJmx0O2h0bWw6ZXJyb3JzLyZndDs8YnI+PC9wcmU+CisKKzxwPk9yLCB5b3UgY2FuIHBsYWNlIHNwZWNpZmljIGVycm9yIG1lc3NhZ2VzIGF0IGRpZmZlcmVudCBsb2NhdGlvbnM8L3A+CisKKzxwcmU+ICAmbHQ7dGQgYWxpZ249ImxlZnQiJmd0Ozxicj4gICAgJmx0O2h0bWw6dGV4dCBwcm9wZXJ0eT0idXNlcm5hbWUiIHNpemU9IjE2IiBtYXhsZW5ndGg9IjE2Ii8mZ3Q7PGJyPiAgICAmbHQ7aHRtbDplcnJvcnMgcHJvcGVydHk9InVzZXJuYW1lIi8mZ3Q7PGJyPiAgJmx0Oy90ZCZndDs8YnI+ICAmbHQ7L3RyJmd0OyZsdDt0ciZndDs8YnI+ICAmbHQ7dGQgYWxpZ249ImxlZnQiJmd0Ozxicj4gICAgJmx0O2h0bWw6dGV4dCBwcm9wZXJ0eT0icGFzc3dvcmQiIHNpemU9IjE2IiBtYXhsZW5ndGg9IjE2Ii8mZ3Q7PGJyPiAgICAmbHQ7aHRtbDplcnJvcnMgcHJvcGVydHk9InBhc3N3b3JkIi8mZ3Q7PGJyPiAgJmx0Oy90ZCZndDs8YnI+PC9wcmU+CisKKzxwPkJ5IGRlZmF1bHQsIHRoZSBhY3R1YWwgZXJyb3IgbWVzc2FnZSBpcyByZXRyaWV2ZWQgZnJvbSB0aGUgYXBwbGljYXRpb24ncworc3RhbmRhcmQgICBtZXNzYWdlIHJlc291cmNlLiBUaGlzIGdpdmVzIHlvdSBhIG1hc3RlciBsaXN0IG9mIHRoZSBlcnJvciBtZXNzYWdlcwordXNlZCBieSAgIHlvdXIgYXBwbGljYXRpb24sIGFuZCBwcm92aWRlcyBmb3IgaW50ZXJuYXRpb25hbGl6YXRpb24uIEluIHRoZQorY29kZSBzbmlwcGV0LCAgIHRoZSBtZXNzYWdlIGNvcnJlc3BvbmRpbmcgdG8gImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIiB3b3VsZAorYmUgcmV0cmlldmVkIGFuZCAgIGRpc3BsYXllZCB0byB0aGUgdXNlciBhdCBydW50aW1lLiA8L3A+CisKKzxwcmU+ICBlcnJvci51c2VybmFtZS5yZXF1aXJlZD0mbHQ7bGkmZ3Q7VXNlcm5hbWUgaXMgcmVxdWlyZWQmbHQ7L2xpJmd0Ozxicj48L3ByZT4KKworPHA+TW9zdCBvZnRlbiwgZXJyb3IgbWVzc2FnZXMgYXJlIGRpc3BsYXllZCBpbiBhIHBhcnRpY3VsYXIgd2F5LiBUbyBtYWtlIGl0CitlYXN5ICAgdG8gZm9ybWF0IHlvdXIgbWVzc2FnZXMsIHlvdSBjYW4gYWxzbyBzcGVjaWZpYyBhbiA8Y29kZT5lcnJvcnMuaGVhZGVyPC9jb2RlPgorICAgIGFuZCA8Y29kZT5lcnJvcnMuZm9vdGVyPC9jb2RlPiBzdHJpbmcgaW4geW91ciBtZXNzYWdlIHJlc291cmNlLiBUeXBpY2FsbHksCit5b3UgICBtaWdodCB3YW50IHRvIHJlbmRlciB0aGUgbWVzc2FnZXMgaW4gYSBkaWZmZXJlbnQgY29sb3IsIG9yIHNldCB0aGVtCit1cCAgIHRvIGFwcGVhciBpbiBhbiB1bm9yZGVyZWQgbGlzdC4gVXNpbmcgdGhlIDxjb2RlPmVycm9ycy5oZWFkZXI8L2NvZGU+CisgIGFuZCA8Y29kZT5lcnJvcnMuZm9vdGVyPC9jb2RlPiAgIHN0cmluZ3Mga2VlcHMgdGhlIHNldHVwIGNvZGVzIG91dCBvZiB5b3VyCitKU1AgdW50aWwgYSBtZXNzYWdlIGFjdHVhbGx5IHByaW50cy48L3A+CisKKzxwcmU+ICBlcnJvcnMuaGVhZGVyPSZsdDtoMyZndDsmbHQ7Zm9udCBjb2xvcj0icmVkIiZndDtWYWxpZGF0aW9uIEVycm9yJmx0Oy9mb250Jmd0OyZsdDsvaDMmZ3Q7PGJyPiAgICBZb3UgbXVzdCBjb3JyZWN0IHRoZSBmb2xsb3dpbmcgZXJyb3IocykgYmVmb3JlIHByb2NlZWRpbmc6Jmx0O1VMJmd0Ozxicj4gIGVycm9ycy5mb290ZXI9Jmx0Oy91bCZndDsmbHQ7aHImZ3Q7PGJyPjwvcHJlPgorCis8aDQ+PGEgbmFtZT0iZG9jLk90aGVyLmh5cGVybGlua2luZyI+TWFpbnRhaW5pbmcgSHlwZXJsaW5rczwvYT4KKyA8L2g0PgorCis8dWw+CisgICAgPGxpPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9zdHJ1dHMtaHRtbC5odG1sI2Jhc2UiPmJhc2U8L2E+CisgICA8L2xpPgorCis8L3VsPgorCis8cD5XaGVuIGltcGxlbWVudGluZyBhIFdlYiBhcHBsaWNhdGlvbiwgaXQgaXMgdXN1YWxseSBhIGdvb2QgaWRlYSB0byB1c2UgcmVsYXRpdmUKKyAgcmVmZXJlbmNlcyB0byBvdGhlciBmaWxlcyBpbiB0aGUgc2FtZSBhcHBsaWNhdGlvbi4gQnV0IGluIGEgZHluYW1pYyBhcHBsaWNhdGlvbiwKKyAgdGhlIGNvbnRyb2xsZXIgc2VydmxldCBvZnRlbiByZXR1cm5zIGEgY29tcGxldGVseSBkaWZmZXJlbnQgZmlsZSB0aGFuIHRoZQorb25lICAgcmVxdWVzdGVkLiAoT2Z0ZW4sIHRoZSByZXF1ZXN0ZWQgImZpbGUiIGRvZXNuJ3QgYWN0dWFsbHkgZXhpc3QsIGJ1dAorcmVwcmVzZW50cyAgIGFuIGFjdGlvbiBmb3IgdGhlIGNvbnRyb2xsZXIgdG8gaW50ZXJwcmV0LikgU2luY2UgcmVsYXRpdmUgcmVmZXJlbmNlcworYXJlIHJlc29sdmVkICAgYnkgdGhlIGJyb3dzZXIsIHRoZXkgb2Z0ZW4gd29uJ3Qgd29yayBpbiBhIGR5bmFtaWMgYXBwbGljYXRpb24uPC9wPgorCis8cD5UbyBhY2NvbW1vZGF0ZSB0aGlzLCB0aGUgU3RydXRzLUhUTUwgdGFnbGliIHByb3ZpZGVzIGEgPGNvZGU+Jmx0O2Jhc2UmZ3Q7PC9jb2RlPgorICAgIHRhZyB0aGF0IHJlbmRlcnMgYW4gSFRNTCAgICAgIGVsZW1lbnQgd2l0aCBhbiBocmVmIGF0dHJpYnV0ZSBwb2ludGluZwordG8gdGhlIGFic29sdXRlIGxvY2F0aW9uIG9mIGl0cyBwYWdlLiA8L3A+CisKKzxwPkFzIGEgcnVsZSwgeW91IHNob3VsZCBwbGFjZSB0aGUgU3RydXRzLUhUTUwgYmFzZSB0YWcgaW4gdGhlICZsdDtoZWFkJmd0Oworc2VjdGlvbiAgIG9mIGFueSBKU1AgdGhhdCB1c2VzIHJlbGF0aXZlIHJlZmVyZW5jZXMgdG8gb3RoZXIgZmlsZXMuPC9wPgorCis8cHJlPiAgJmx0O2hlYWQmZ3Q7PGJyPiAgICAmbHQ7aHRtbDpiYXNlLyZndDs8YnI+ICAmbHQ7L2hlYWQmZ3Q7PGJyPjwvcHJlPgorCis8aDQ+PGEgbmFtZT0iZG9jLk90aGVyLnNlc3Npb25zIj5TZXNzaW9uIFRyYWNraW5nPC9hPgorIDwvaDQ+CisKKzxwPlRoZSBKYXZhIFNlcnZsZXQgZnJhbWV3b3JrIGhhcyBidWlsdC1pbiBzdXBwb3J0IGZvciB0cmFja2luZyBhIGNsaWVudCB0aHJvdWdoCisgIGEgc2Vzc2lvbi4gU2Vzc2lvbnMgYXJlIGEgdXNlZnVsIHdheSB0byBjb21wZW5zYXRlIGZvciB0aGUgc3RhdGVsZXNzIG5hdHVyZQorICBvZiBIVFRQLiBUcmFja2luZyBhIGNsaWVudCBjYW4gYmUgZG9uZSB3aXRoIGVpdGhlciBjb29raWVzIG9yIFVSTCByZXdyaXRpbmcsCisgIGNvb2tpZXMgYmVpbmcgcHJlZmVycmVkIHdoZW4gYXZhaWxhYmxlLiBTdHJ1dHMgb2ZmZXJzIHRocmVlIHRhZ3MgdGhhdCBtYWtlCitpdCAgIGVhc3kgdG8gd3JpdGUgInNlc3Npb24tYXdhcmUiIGh5cGVybGluayByZWZlcmVuY2VzOjwvcD4KKworPHVsPgorICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWh0bWwuaHRtbCNsaW5rIj5saW5rPC9hPgorICAtIFJlbmRlcnMgYW4gICAgIEhUTUwgYW5jaG9yIG9yIGh5cGVybGluay48L2xpPgorICAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWh0bWwuaHRtbCNyZXdyaXRlIj5yZXdyaXRlPC9hPgorICAtIFJlbmRlcnMgICAgIGEgcmVxdWVzdCBVUkksIGJ1dCB3aXRob3V0IGNyZWF0aW5nIHRoZSAmbHQ7YSZndDsgaHlwZXJsaW5rLgorVGhpcyB0YWcgaXMgdXNlZnVsICAgICB3aGVuIHlvdSB3YW50IHRvIGdlbmVyYXRlIGEgc3RyaW5nIGNvbnN0YW50IGZvciB1c2UKK2J5IGEgSmF2YVNjcmlwdCBwcm9jZWR1cmUuPC9saT4KKyAgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1odG1sLmh0bWwjaW1nIj5pbWc8L2E+CisgIC0gUmVuZGVycyBhbiBIVE1MICAgICAmbHQ7aW1nJmd0OyBlbGVtZW50IHdpdGggdGhlIGltYWdlIGF0IHRoZSBzcGVjaWZpZWQKK1VSTC48L2xpPgorCis8L3VsPgorCis8cD5FYWNoIG9mIHRoZXNlIHRhZ3Mgd2lsbCBhdXRvbWF0aWNhbGx5IGFwcGx5IFVSTCByZXdyaXRpbmcsIHRvIG1haW50YWluCitzZXNzaW9uICAgc3RhdGUgaW4gdGhlIGFic2VuY2Ugb2YgY29va2llcy4gVGhlIGNvbnRlbnQgZGlzcGxheWVkIGZvciB0aGUgaHlwZXJsaW5rCit3aWxsICAgYmUgdGFrZW4gZnJvbSB0aGUgYm9keSBvZiB0aGUgdGFnLiBUaGUgYmFzZSBVUkwgZm9yIHRoZSBoeXBlcmxpbmsKK2lzIGNhbGN1bGF0ZWQgICBiYXNlZCBvbiBwcm9wZXJ0aWVzIGdpdmVuIHdpdGggdGhlIHRhZy48L3A+CisKKzxwPk5vcm1hbGx5LCB0aGUgaHlwZXJsaW5rIG9yIFVSSSB5b3Ugc3BlY2lmeSBpcyBsZWZ0IHVuY2hhbmdlZC4gSWYgeW91IHdvdWxkCisgICBsaWtlIHRvIGluY2x1ZGUgZHluYW1pYyBwYXJhbWV0ZXJzIHRvIHRoZSBoeXBlcmxpbmsgb3IgVVJJLCB5b3UgY2FuIHBhc3MKK3Rob3NlICAgdG8gdGhlIHRhZ3MgdmlhIGEgSmF2YUJlYW4uIElmIHRoZXJlIG1heSBiZSBuYW1pbmcgY29uZmxpY3RzLCB5b3UKK2NhbiBhbHNvIHNwZWNpZnkgICB0aGUgc2NvcGUgdGhhdCB0aGUgdGFnIHNlYXJjaGVzIChyZXF1ZXN0LCBwYWdlLCBzZXNzaW9uLAorYXBwbGljYXRpb24pLiA8L3A+CisKKzxwPlRvIHBhc3MgYSBzaW5nbGUgZHluYW1pYyBwYXJhbWV0ZXIsIHNwZWNpZnkgdGhlIHBhcmFtZXRlcidzIG5hbWUgdXNpbmcKK3RoZSAgIDxjb2RlPnBhcmFtSWQ8L2NvZGU+IGF0dHJpYnV0ZS4gWW91IGNhbiB0aGVuIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlCitKYXZhQmVhbiAgIGhvbGRpbmcgdGhlIHZhbHVlIHVzaW5nIHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZSwgYW5kCithIHBhcnRpY3VsYXIgICBwcm9wZXJ0eSB1c2luZyA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPi4gPC9wPgorCis8cD5TbywgYSB0YWcgbGlrZTwvcD4KKworPHByZT4gICAmbHQ7aHRtbDpsaW5rIHBhcmFtSWQ9InRhcmdldCI8YnI+ICAgICBwYXJhbU5hbWU9ImxpbmtQYXJhbXMiIDxicj4gICAgIHBhcmFtUHJvcGVydHk9InRhcmdldCI8YnI+ICAgICBwYXJhbVNjb3BlPSJyZXF1ZXN0Ijxicj4gICAmZ3Q7ZGV0YWlsLmh0bWwmbHQ7L2h0bWw6bGluayZndDs8L3ByZT4KKworPHA+d291bGQgY29ycmVzcG9uZCB0byBzb21ldGhpbmcgbGlrZTwvcD4KKworPHByZT4gICZsdDtBIEhSRUY9ImRldGFpbC5odG1sPyZsdDslPSA8YnI+ICAgIHJlcXVlc3QuZ2V0QXR0cmlidXRlKCJsaW5rUGFyYW1zIikuZ2V0VGFyZ2V0KCk8YnI+ICAlJmd0OyImZ3Q7Jmx0Oy9BJmd0Ozxicj48L3ByZT4KKworPHA+VG8gc2VhcmNoIGFsbCBzY29wZXMgKHJlcXVlc3QsIHBhZ2UsIHNlc3Npb24sIGFuZCBhcHBsaWNhdGlvbiksIG9taXQgPGNvZGU+CisgcGFyYW1TY29wZTwvY29kZT4uIDwvcD4KKworPHA+VGhlIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZSBtYXkgYWxzbyBiZSBvbWl0dGVkLCBzbyBsb25nIGFzCit0aGUgICBuYW1lZCBiZWFuIGlkZW50aWZpZXMgYSB2YWx1ZSB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuICA8L3A+CisKKzxwPlRvIHBhc3MgbXVsdGlwbGUgZHluYW1pYyBwYXJhbWV0ZXJzLCB5b3UgY2FuIHN0b3JlIHRoZW0gaW4gYSA8Y29kZT48YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS4zL2RvY3MvYXBpL2phdmEvdXRpbC9NYXAuaHRtbCI+CisgamF2YS51dGlsLk1hcDwvYT4KKyA8L2NvZGU+LCAgIGFuZCB1c2UgdGhlIG5hbWUgb2YgdGhlIG1hcCBmb3IgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4uIFRoZQorbWFwIG11c3QgdGhlbiAgIGNvbnRhaW4gb25lIG9yIG1vcmUgPGNvZGU+cGFyYW1JZHM8L2NvZGU+IGFuZCB0aGVpciBjb3JyZXNwb25kaW5nCit2YWx1ZXMuIEFzICAgdGhlIE1hcCBpcyBwcm9jZXNzZWQsIHRoZSBrZXlzIGFyZSBhc3N1bWVkIHRvIGJlIHRoZSBuYW1lcyBvZgorcXVlcnkgcGFyYW1ldGVycyAgIHRvIGJlIGFwcGVuZGVkLiBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGVhY2gga2V5IG11c3QKK2JlIGVpdGhlciBhIFN0cmluZyBvciAgIGEgU3RyaW5nIGFycmF5IHJlcHJlc2VudGluZyB0aGUgcGFyYW1ldGVyIHZhbHVlKHMpLgorSWYgYSBTdHJpbmcgYXJyYXkgaXMgc3BlY2lmaWVkLCAgIG1vcmUgdGhhbiBvbmUgdmFsdWUgZm9yIHRoZSBzYW1lIHF1ZXJ5IHBhcmFtZXRlcgorbmFtZSB3aWxsIGJlIGNyZWF0ZWQuIDwvcD4KKworPHA+VGhlIEhUTUwgc2Vzc2lvbiB0cmFja2luZyB0YWdzIHVzZSBzZXZlcmFsIGNvbW1vbiBhdHRyaWJ1dGVzLCB0aGF0IGNhbgorYmUgb3JnYW5pemVkICAgaW50byB0aHJlZSBncm91cHMsIGFzIGZvbGxvd3MuIEFsbCBvZiB0aGVzZSBhdHRyaWJ1dGVzIGFyZQorbm90IHVzZWQgYnkgYWxsIHRocmVlICAgdGFncyAoPGNvZGU+bGluazwvY29kZT4sIDxjb2RlPnJld3JpdGU8L2NvZGU+LCBhbmQKKzxjb2RlPmltZzwvY29kZT4pLCBhbmQgc28gICB0aGUgdGFncyB1c2luZyBlYWNoIGF0dHJpYnV0ZSBpcyBnaXZlbi4gPC9wPgorCis8cD4mbmJzcDsKKzx0YWJsZSB3aWR0aD0iOTAlIiBib3JkZXI9IjEiIGNlbGxwYWRkaW5nPSI0Ij4KKyAgICA8dGJvZHk+CisgICAgIDx0cj4KKyAgICAgIDx0aCBjb2xzcGFuPSIyIj5mb3J3YXJkLCBocmVmLCBhbmQgcGFnZTwvdGg+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+IGZvcndhcmQgPC90ZD4KKyAgICAgIDx0ZD4gWyBsaW5rIHJld3JpdGUgXSAtIExvZ2ljYWwgbmFtZSBvZiBhIGdsb2JhbCBBY3Rpb25Gb3J3YXJkIHRoYXQKK2NvbnRhaW5zICAgICAgIHRoZSBhY3R1YWwgY29udGVudC1yZWxhdGl2ZSBVUkkgb2YgdGhlIGRlc3RpbmF0aW9uIG9mIHRoaXMKK3RyYW5zZmVyLiBUaGlzICAgICAgIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQgYnkgdGhlIGluY2x1c2lvbgorb2YgcXVlcnkgcGFyYW1ldGVycywgICAgICAgYXMgZGVzY3JpYmVkIGluIHRoZSB0YWcgZGVzY3JpcHRpb24uIFlvdSBtdXN0IHNwZWNpZnkKK2V4YWN0bHkgb25lIG9mIHRoZSAgICAgICBmb3J3YXJkIGF0dHJpYnV0ZSwgdGhlIGhyZWYgYXR0cmlidXRlLCB0aGUgbGlua05hbWUKK2F0dHJpYnV0ZSwgb3IgdGhlIHBhZ2UgICAgICAgYXR0cmlidXRlIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+IGhyZWYgPC90ZD4KKyAgICAgIDx0ZD4gWyBsaW5rIHJld3JpdGUgXSAtIFRoZSBVUkwgdG8gd2hpY2ggdGhpcyBoeXBlcmxpbmsgd2lsbCB0cmFuc2ZlcgorY29udHJvbCAgICAgICBpZiBhY3RpdmF0ZWQuIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZCBieQordGhlIGluY2x1c2lvbiAgICAgICBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQgaW4gdGhlIHRhZyBkZXNjcmlwdGlvbi4KK1lvdSBtdXN0IHNwZWNpZnkgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIGZvcndhcmQgYXR0cmlidXRlLCB0aGUgaHJlZiBhdHRyaWJ1dGUsCit0aGUgbGlua05hbWUgYXR0cmlidXRlLCAgICAgICBvciB0aGUgcGFnZSBhdHRyaWJ1dGUuIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+IHBhZ2UgPC90ZD4KKyAgICAgIDx0ZD4gWyBsaW5rIHJld3JpdGUgXSAtIFRoZSBjb250ZXh0LXJlbGF0aXZlIHBhdGgsIHN0YXJ0aW5nIHdpdGggYQorc2xhc2gsICAgICAgICBvZiB0aGUgaW1hZ2UgdG8gYmUgZGlzcGxheWVkIGJ5IHRoaXMgdGFnLiBUaGUgcmVuZGVyZWQgVVJMCitmb3IgdGhpcyBpbWFnZSAgICAgICB3aWxsIGF1dG9tYXRpY2FsbHkgcHJlcGVuZCB0aGUgY29udGV4dCBwYXRoIG9mIHRoaXMKK3dlYiBhcHBsaWNhdGlvbiAoaW4gICAgICAgdGhlIHNhbWUgbWFubmVyIGFzIHRoZSBwYWdlIGF0dHJpYnV0ZSBvbiB0aGUgbGluawordGFnIHdvcmtzKSwgaW4gYWRkaXRpb24gICAgICAgdG8gYW55IG5lY2Vzc2FyeSBVUkwgcmV3cml0aW5nLiBZb3UgbXVzdCBzcGVjaWZ5CitlaXRoZXIgdGhlIHBhZ2UgYXR0cmlidXRlICAgICAgIG9yIHRoZSBzcmMgYXR0cmlidXRlLiA8L3RkPgorICAgIDwvdHI+CisKKyAgPC90Ym9keT4KKzwvdGFibGU+CisgIDwvcD4KKworPHA+Jm5ic3A7Cis8dGFibGUgd2lkdGg9IjkwJSIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iNCI+CisgICAgPHRib2R5PgorICAgICA8dHI+CisgICAgICA8dGggY29sc3Bhbj0iMiI+bGlua05hbWUsIFRhcmdldCAsIGFuZCBzcmM8L3RoPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPiBsaW5rTmFtZSA8L3RkPgorICAgICAgPHRkPgorICAgICAgPHA+WyBsaW5rIF0gLSBUaGUgYW5jaG9yIG5hbWUgdG8gYmUgZGVmaW5lZCB3aXRoaW4gdGhpcyBwYWdlLCBzbyB0aGF0Cit5b3UgICAgICAgICBjYW4gcmVmZXJlbmNlIGl0IHdpdGggaW50cmEtcGFnZSBoeXBlcmxpbmtzLiBJbiBvdGhlciB3b3JkcywgdGhlCit2YWx1ZSAgICAgICAgIHNwZWNpZmllZCBoZXJlIHdpbGwgcmVuZGVyIGEgIm5hbWUiIGVsZW1lbnQgaW4gdGhlIGdlbmVyYXRlZAorYW5jaG9yIHRhZy4gICAgICAgPC9wPgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD4gdGFyZ2V0IDwvdGQ+CisgICAgICA8dGQ+IFsgbGluayBpbWcgXSAtIFRoZSB3aW5kb3cgdGFyZ2V0IGluIHdoaWNoIHRoZSByZXNvdXJjZSByZXF1ZXN0ZWQKK2J5IHRoaXMgICAgICAgaHlwZXJsaW5rIHdpbGwgYmUgZGlzcGxheWVkLCBmb3IgZXhhbXBsZSBpbiBhIGZyYW1lZCBwcmVzZW50YXRpb24uCisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPiBzcmMgPC90ZD4KKyAgICAgIDx0ZD4gWyBpbWcgXSAtIFRoZSBVUkwgdG8gd2hpY2ggdGhpcyBpbWFnZSB3aWxsIGJlIHRyYW5zZmVycmVkIGZyb20KK1RoaXMgaW1hZ2UgICAgICAgbWF5IGJlIGR5bmFtaWNhbGx5IG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywKK2FzIGRlc2NyaWJlZCAgICAgICBpbiB0aGUgdGFnIGRlc2NyaXB0aW9uLiBUaGlzIHZhbHVlIHdpbGwgYmUgdXNlZCB1bm1vZGlmaWVkCisob3RoZXIgdGhhbiBwb3RlbnRpYWwgICAgICAgVVJMIHJld3JpdGluZykgYXMgdGhlIHZhbHVlIG9mIHRoZSAic3JjIiBhdHRyaWJ1dGUKK2luIHRoZSByZW5kZXJlZCB0YWcuICAgICAgIFlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIHRoZSBwYWdlIGF0dHJpYnV0ZSBvciB0aGUKK3RoZSBzcmMgYXR0cmlidXRlLiA8L3RkPgorICAgIDwvdHI+CisKKyAgPC90Ym9keT4KKzwvdGFibGU+CisgIDwvcD4KKworPHA+Jm5ic3A7Cis8dGFibGUgd2lkdGg9IjkwJSIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iNCI+CisgICAgPHRib2R5PgorICAgICA8dHI+CisgICAgICA8dGggY29sc3Bhbj0iMiI+cGFyYW1JZCwgcGFyYW1OYW1lLCBwYXJhbVByb3BlcnR5LCBwYXJhbVNjb3BlIDwvdGg+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+IHBhcmFtSWQgPC90ZD4KKyAgICAgIDx0ZD4gWyBsaW5rIGltZyBdIC0gVGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZQorZHluYW1pY2FsbHkgICAgICAgIGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQgc3JjIFVSTC4gVGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUKK2lzIGRlZmluZWQgYnkgdGhlICAgICAgIHBhcmFtTmFtZSBhbmQgKG9wdGlvbmFsKSBwYXJhbVByb3BlcnR5IGF0dHJpYnV0ZXMsCitvcHRpb25hbGx5IHNjb3BlZCBieSAgICAgICB0aGUgcGFyYW1TY29wZSBhdHRyaWJ1dGU8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPiBwYXJhbU5hbWUgPC90ZD4KKyAgICAgIDx0ZD4gWyBsaW5rIGltZyBdIC0gVGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGlzIGEgU3RyaW5nIGNvbnRhaW5pbmcKK3RoZSAgICAgICB2YWx1ZSBmb3IgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVkIGJ5IHBhcmFtSWQgKGlmIHBhcmFtUHJvcGVydHkKK2lzIG5vdCAgICAgICBzcGVjaWZpZWQpLCBvciBhIEpTUCBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcyBjYWxsZWQgdG8KK3JldHVybiBhIFN0cmluZyAgICAgICAoaWYgcGFyYW1Qcm9wZXJ0eSBpcyBzcGVjaWZpZWQpLiBUaGUgSlNQIGJlYW4gaXMgY29uc3RyYWluZWQKK3RvIHRoZSBiZWFuICAgICAgIHNjb3BlIHNwZWNpZmllZCBieSB0aGUgcGFyYW1TY29wZSBwcm9wZXJ0eSwgaWYgaXQgaXMgc3BlY2lmaWVkLgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD4gcGFyYW1Qcm9wZXJ0eSA8L3RkPgorICAgICAgPHRkPiBbIGxpbmsgaW1nIF0gLSBUaGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieQordGhlIHBhcmFtTmFtZSAgICAgICBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0IGJlIGEgU3RyaW5nIGNvbnRhaW5pbmcKK3RoZSB2YWx1ZSBvZiB0aGUgICAgICAgcmVxdWVzdCBwYXJhbWV0ZXIgKG5hbWVkIGJ5IHRoZSBwYXJhbUlkIGF0dHJpYnV0ZSkKK3RoYXQgd2lsbCBiZSBkeW5hbWljYWxseSAgICAgICBhZGRlZCB0byB0aGlzIGh5cGVybGluayBvciBzcmMgVVJMPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD4gcGFyYW1TY29wZSA8L3RkPgorICAgICAgPHRkPiBbIGxpbmsgaW1nIF0gLSBUaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgYnkgdGhlIHBhcmFtTmFtZSBhdHRyaWJ1dGUuIElmIG5vdCBzcGVjaWZpZWQsIGFsbCBzY29wZXMgYXJlIHNlYXJjaGVkLgorICAgICAgPC90ZD4KKyAgICA8L3RyPgorCisgIDwvdGJvZHk+Cis8L3RhYmxlPgorICA8L3A+CisKKzxwPiZuYnNwOworPHRhYmxlIHdpZHRoPSI5MCUiIGJvcmRlcj0iMSIgY2VsbHBhZGRpbmc9IjQiPgorICAgIDx0Ym9keT4KKyAgICAgPHRyPgorICAgICAgPHRoIGNvbHNwYW49IjIiPgorICAgICAgPHA+bmFtZSwgcHJvcGVydHksIHNjb3BlICAgICA8L3A+CisgICAgICAgPC90aD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD4gbmFtZSA8L3RkPgorICAgICAgPHRkPiBbIGxpbmsgcmV3cml0ZSBpbWcgXSAtIFRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gdGhhdCBjb250YWlucyBhCisgICAgICA8Y29kZT48YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS4zL2RvY3MvYXBpL2phdmEvdXRpbC9NYXAuaHRtbCI+CisgTWFwPC9hPgorICAgICAgIDwvY29kZT4gICAgICAgcmVwcmVzZW50aW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgaXMgbm90IHNwZWNpZmllZCksICAgICAgIG9yIGEgSlNQIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzIGNhbGxlZAordG8gcmV0dXJuIGEgPGNvZGU+TWFwPC9jb2RlPiAgICAgICAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZCkuCisgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPiBwcm9wZXJ0eSA8L3RkPgorICAgICAgPHRkPlsgbGluayByZXdyaXRlIGltZyBdIC0gVGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQKK2J5ICAgICAgIHRoZSBuYW1lIGF0dHJpYnV0ZSwgd2hvc2UgcmV0dXJuIHZhbHVlIG11c3QgYmUgYSA8Y29kZT48YSBocmVmPSJodHRwOi8vamF2YS5zdW4uY29tL2oyc2UvMS4zL2RvY3MvYXBpL2phdmEvdXRpbC9NYXAuaHRtbCI+CisgTWFwPC9hPgorICAgICAgIDwvY29kZT4gICAgICAgY29udGFpbmluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyB0byBiZSBhZGRlZCB0byB0aGUgc3JjCitVUkwuIFlvdSA8Yj5tdXN0PC9iPiAgICAgICBzcGVjaWZ5IHRoZSBuYW1lIGF0dHJpYnV0ZSBpZiB5b3Ugc3BlY2lmeSB0aGlzCithdHRyaWJ1dGUgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD4gc2NvcGUgPC90ZD4KKyAgICAgIDx0ZD4gWyBsaW5rIHJld3JpdGUgaW1nIF0gLSBUaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlCitiZWFuICAgICAgIHNwZWNpZmllZCBieSB0aGUgbmFtZSBhdHRyaWJ1dGUuIElmIG5vdCBzcGVjaWZpZWQsIGFsbCBzY29wZXMgYXJlCitzZWFyY2hlZC4gICAgIDwvdGQ+CisgICAgPC90cj4KKworICA8L3Rib2R5PgorPC90YWJsZT4KKyAgPC9wPgorCis8cD5TZWUgdGhlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9zdHJ1dHMtaHRtbC5odG1sIj5IVE1MIFRhZ3MgUmVmZXJlbmNlPC9hPgorICAgIGZvciB0aGUgY29tcGxldGUgbGlzdCBvZiB2YWxpZCBhdHRyaWJ1dGVzIGZvciBlYWNoIHRhZy4uIDwvcD4KKworPGg0PjxhIG5hbWU9ImRvYy5PdGhlci5pMThuIj5JbnRlcm5hdGlvbmFsaXphdGlvbjwvYT4KKyA8L2g0PgorCis8cD5JbnRlcm5hdGlvbmFsaXphdGlvbiBpcyBhdXRvbWF0aWNhbGx5IHN1cHBvcnRlZCBieSB0aGUgSFRNTCB0YWdzIHdoZXJlCithcHByb3ByaWF0ZS4gPC9wPgorCis8cD48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWh0bWwuaHRtbCNlcnJvcnMiPkVycm9yczwvYT4KKyAgLSBCeSBkZWZhdWx0LCAgIHRoZSB0ZXh0IGZvciB5b3VyIG1lc3NhZ2VzIHdpbGwgYmUgcmV0dXJuZWQgYnkgdGhlIGRlZmF1bHQKK21lc3NhZ2UgcmVzb3VyY2UsICAgd2hpY2ggd2lsbCBzZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGxhbmd1YWdlIGZvciB0aGUgdXNlci4KK1lvdSBtYXkgYWxzbyBzcGVjaWZ5ICAgYW5vdGhlciBtZXNzYWdlIHJlc291cmNlIHVzaW5nIHRoZSA8Y29kZT5idW5kbGU8L2NvZGU+CisgIGF0dHJpYnV0ZS48L3A+CisKKzxwPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9zdHJ1dHMtaHRtbC5odG1sI2h0bWwiPkhUTUw8L2E+CisgIC0gUmVuZGVycyBhbiBIVE1MICAgZWxlbWVudCB3aXRoIGxhbmd1YWdlIGF0dHJpYnV0ZXMgZXh0cmFjdGVkIGZyb20gdGhlCit1c2VyJ3MgY3VycmVudCBMb2NhbGUgb2JqZWN0LCAgIGlmIHRoZXJlIGlzIG9uZS4gPC9wPgorCis8cD48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWh0bWwuaHRtbCNpbWFnZSI+aW1hZ2U8L2E+CisgIGFuZCA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWh0bWwuaHRtbCNpbWciPmltZzwvYT4KKyAgICAtIENhbiBvcHRpb25hbGx5IHJldHJpZXZlIHRoZSB2YWx1ZSBmb3IgaXRzIGJpbmFyeSBzb3VyY2UgYW5kIGFsdCB0ZXh0Citmcm9tICAgdGhlIG1lc3NhZ2UgcmVzb3VyY2UsIHNvIHRoYXQgZGlmZmVyZW50IGltYWdlcyBhbmQvb3IgdGV4dCBjYW4gYmUgcHJvdmlkZWQKK2ZvciAgIGRpZmZlcmVudCBsb2NhbGVzLiBTZWUgdGhlIHRhZydzIDxjb2RlPmFsdEtleTwvY29kZT4sIDxjb2RlPiBzcmNLZXk8L2NvZGU+CissIGFuZCAgIDxjb2RlPmJ1bmRsZTwvY29kZT4gYXR0cmlidXRlcyBpbiB0aGUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1odG1sLmh0bWwiPgorIEhUTUwgICBUYWdzIFJlZmVyZW5jZTwvYT4KKyAuPC9wPgorCis8cD48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWh0bWwuaHRtbCNtZXNzYWdlcyI+TWVzc2FnZXM8L2E+CisgIC0gQnkgZGVmYXVsdCwgICB0aGUgdGV4dCBmb3IgeW91ciBtZXNzYWdlcyB3aWxsIGJlIHJldHVybmVkIGJ5IHRoZSBkZWZhdWx0CittZXNzYWdlIHJlc291cmNlLCAgIHdoaWNoIHdpbGwgc2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBsYW5ndWFnZSBmb3IgdGhlIHVzZXIuCitZb3UgbWF5IGFsc28gc3BlY2lmeSAgIGFub3RoZXIgbWVzc2FnZSByZXNvdXJjZSB1c2luZyB0aGUgPGNvZGU+YnVuZGxlPC9jb2RlPgorICBhdHRyaWJ1dGUuPC9wPgorCis8cD5TZWUgdGhlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9idWlsZGluZ192aWV3Lmh0bWwjaTE4biI+CisgVXNlcnMgICBHdWlkZTwvYT4KKyAgZm9yIG1vcmUgb24gaG93IFN0cnV0cyBoZWxwcyB5b3UgaW50ZXJuYXRpb25hbGl6ZSB5b3VyIGFwcGxpY2F0aW9ucy48L3A+CisKKzxwPiZuYnNwOzwvcD4KKzxQPgorCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXRyZWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Y2ZhNGZhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTUyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbAorPC9IMj4KKzwvQ0VOVEVSPgorPERMPgorPERUPjxCPlBhY2thZ2UgSGllcmFyY2hpZXM6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy10cmVlLmh0bWwiPkFsbCBQYWNrYWdlczwvQT48L0RMPgorPEhSPgorPEgyPgorQ2xhc3MgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLk9iamVjdDxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NvbnN0YW50cy5odG1sIj48Qj5Db25zdGFudHM8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RlaS5odG1sIj48Qj5NZXNzYWdlc1RlaTwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZVRhZy5odG1sIj48Qj5CYXNlVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQgKGltcGxlbWVudHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj48Qj5CYXNlSGFuZGxlclRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPjxCPkJhc2VJbnB1dFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPjxCPkJhc2VGaWVsZFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sIj48Qj5GaWxlVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+PEI+SGlkZGVuVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj48Qj5QYXNzd29yZFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dFRhZy5odG1sIj48Qj5UZXh0VGFnPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+PEI+VGV4dGFyZWFUYWc8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+PEI+QnV0dG9uVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DYW5jZWxUYWcuaHRtbCI+PEI+Q2FuY2VsVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj48Qj5DaGVja2JveFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPjxCPkltZ1RhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj48Qj5MaW5rVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj48Qj5GcmFtZVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIj48Qj5SZXdyaXRlVGFnPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+PEI+TXVsdGlib3hUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPjxCPlJhZGlvVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SZXNldFRhZy5odG1sIj48Qj5SZXNldFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPjxCPlNlbGVjdFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPjxCPlN1Ym1pdFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+PEI+SW1hZ2VUYWc8L0I+PC9BPjwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSmF2YXNjcmlwdFZhbGlkYXRvclRhZy5odG1sIj48Qj5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj48Qj5NZXNzYWdlc1RhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPjxCPk9wdGlvblRhZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj48Qj5FcnJvcnNUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+PEI+Rm9ybVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sIj48Qj5IdG1sVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj48Qj5PcHRpb25zQ29sbGVjdGlvblRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj48Qj5PcHRpb25zVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9YaHRtbFRhZy5odG1sIj48Qj5YaHRtbFRhZzwvQj48L0E+PC9VTD4KKzwvVUw+Cis8L1VMPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+UFJFVjwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2UtdXNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS11c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGNkNzg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2UtdXNlLmh0bWwKQEAgLTAsMCArMSwzNjEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgUGFja2FnZTxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9CPjwvQT48L1REPgorPFREPjxhIG5hbWU9ImRvYy5EZXNjcmlwdGlvbiI+VGhlICJzdHJ1dHMtaHRtbCIgdGFnIGxpYnJhcnk8L2E+CisgIGNvbnRhaW5zIEpTUCBjdXN0b20gdGFncyB1c2VmdWwgaW4gY3JlYXRpbmcgZHluYW1pYyBIVE1MIHVzZXIgaW50ZXJmYWNlcywKK2luY2x1ZGluZyBpbnB1dCBmb3Jtcy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGh0bWwgdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPgorIHRhZ3MgdG8gYWxsb3cgICB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0Ij48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0PC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0Jhc2VGaWVsZFRhZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sIj48Qj5CYXNlRmllbGRUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udmVuaWVuY2UgYmFzZSBjbGFzcyBmb3IgdGhlIHZhcmlvdXMgaW5wdXQgdGFncyBmb3IgdGV4dCBmaWVsZHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvQmFzZUhhbmRsZXJUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PEI+QmFzZUhhbmRsZXJUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QmFzZSBjbGFzcyBmb3IgdGFncyB0aGF0IHJlbmRlciBmb3JtIGVsZW1lbnRzIGNhcGFibGUgb2YgaW5jbHVkaW5nIEphdmFTY3JpcHQKKyBldmVudCBoYW5kbGVycyBhbmQvb3IgQ1NTIFN0eWxlIGF0dHJpYnV0ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvQmFzZUlucHV0VGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwiPjxCPkJhc2VJbnB1dFRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciB0aGUgdmFyaW91cyBpbnB1dCB0YWdzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0xpbmtUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PEI+TGlua1RhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmF0ZSBhIFVSTC1lbmNvZGVkIGh5cGVybGluayB0byB0aGUgc3BlY2lmaWVkIFVSSS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9TZWxlY3RUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PEI+U2VsZWN0VGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0N1c3RvbSB0YWcgdGhhdCByZXByZXNlbnRzIGFuIEhUTUwgc2VsZWN0IGVsZW1lbnQsIGFzc29jaWF0ZWQgd2l0aCBhCisgYmVhbiBwcm9wZXJ0eSBzcGVjaWZpZWQgYnkgb3VyIGF0dHJpYnV0ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvU3VibWl0VGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwiPjxCPlN1Ym1pdFRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJzdWJtaXQiLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0Jhc2VGaWVsZFRhZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PEI+QmFzZUZpZWxkVGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnZlbmllbmNlIGJhc2UgY2xhc3MgZm9yIHRoZSB2YXJpb3VzIGlucHV0IHRhZ3MgZm9yIHRleHQgZmllbGRzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0Jhc2VIYW5kbGVyVGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5CYXNlSGFuZGxlclRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtCYXNlIGNsYXNzIGZvciB0YWdzIHRoYXQgcmVuZGVyIGZvcm0gZWxlbWVudHMgY2FwYWJsZSBvZiBpbmNsdWRpbmcgSmF2YVNjcmlwdAorIGV2ZW50IGhhbmRsZXJzIGFuZC9vciBDU1MgU3R5bGUgYXR0cmlidXRlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9CYXNlSW5wdXRUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPkJhc2VJbnB1dFRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciB0aGUgdmFyaW91cyBpbnB1dCB0YWdzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0NoZWNrYm94VGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5DaGVja2JveFRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJjaGVja2JveCIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvRXJyb3JzVGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5FcnJvcnNUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3VzdG9tIHRhZyB0aGF0IHJlbmRlcnMgZXJyb3IgbWVzc2FnZXMgaWYgYW4gYXBwcm9wcmlhdGUgcmVxdWVzdCBhdHRyaWJ1dGUKKyBoYXMgYmVlbiBjcmVhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0ZpbGVUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPkZpbGVUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3VzdG9tIHRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImZpbGUiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0Zvcm1UYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPkZvcm1UYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3VzdG9tIHRhZyB0aGF0IHJlcHJlc2VudHMgYW4gaW5wdXQgZm9ybSwgYXNzb2NpYXRlZCB3aXRoIGEgYmVhbiB3aG9zZQorIHByb3BlcnRpZXMgY29ycmVzcG9uZCB0byB0aGUgdmFyaW91cyBmaWVsZHMgb2YgdGhlIGZvcm0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvSGlkZGVuVGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5IaWRkZW5UYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3VzdG9tIHRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImhpZGRlbiIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvSW1hZ2VUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPkltYWdlVGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImltYWdlIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9JbWdUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPkltZ1RhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmF0ZSBhbiBJTUcgdGFnIHRvIHRoZSBzcGVjaWZpZWQgaW1hZ2UgVVJJLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0xpbmtUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPkxpbmtUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2VuZXJhdGUgYSBVUkwtZW5jb2RlZCBoeXBlcmxpbmsgdG8gdGhlIHNwZWNpZmllZCBVUkkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvTWVzc2FnZXNUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPk1lc3NhZ2VzVGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0N1c3RvbSB0YWcgdGhhdCBpdGVyYXRlcyB0aGUgZWxlbWVudHMgb2YgYSBtZXNzYWdlIGNvbGxlY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvTXVsdGlib3hUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPk11bHRpYm94VGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgImNoZWNrYm94Ii48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PEI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGFnIGZvciBjcmVhdGluZyBtdWx0aXBsZSAmbHQ7c2VsZWN0Jmd0OyBvcHRpb25zIGZyb20gYSBjb2xsZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL09wdGlvbnNUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPk9wdGlvbnNUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGFnIGZvciBjcmVhdGluZyBtdWx0aXBsZSAmbHQ7c2VsZWN0Jmd0OyBvcHRpb25zIGZyb20gYSBjb2xsZWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL1Bhc3N3b3JkVGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5QYXNzd29yZFRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAicGFzc3dvcmQiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL1JhZGlvVGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5SYWRpb1RhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJyYWRpbyIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9jbGFzcy11c2UvU2VsZWN0VGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5TZWxlY3RUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3VzdG9tIHRhZyB0aGF0IHJlcHJlc2VudHMgYW4gSFRNTCBzZWxlY3QgZWxlbWVudCwgYXNzb2NpYXRlZCB3aXRoIGEKKyBiZWFuIHByb3BlcnR5IHNwZWNpZmllZCBieSBvdXIgYXR0cmlidXRlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9TdWJtaXRUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPlN1Ym1pdFRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUYWcgZm9yIGlucHV0IGZpZWxkcyBvZiB0eXBlICJzdWJtaXQiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL1RleHRhcmVhVGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5UZXh0YXJlYVRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDdXN0b20gdGFnIGZvciBpbnB1dCBmaWVsZHMgb2YgdHlwZSAidGV4dGFyZWEiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL1RleHRUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPlRleHRUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3VzdG9tIHRhZyBmb3IgaW5wdXQgZmllbGRzIG9mIHR5cGUgInRleHQiLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQ8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0Jhc2VGaWVsZFRhZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQiPjxCPkJhc2VGaWVsZFRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb252ZW5pZW5jZSBiYXNlIGNsYXNzIGZvciB0aGUgdmFyaW91cyBpbnB1dCB0YWdzIGZvciB0ZXh0IGZpZWxkcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL2NsYXNzLXVzZS9CYXNlSGFuZGxlclRhZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQiPjxCPkJhc2VIYW5kbGVyVGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Jhc2UgY2xhc3MgZm9yIHRhZ3MgdGhhdCByZW5kZXIgZm9ybSBlbGVtZW50cyBjYXBhYmxlIG9mIGluY2x1ZGluZyBKYXZhU2NyaXB0CisgZXZlbnQgaGFuZGxlcnMgYW5kL29yIENTUyBTdHlsZSBhdHRyaWJ1dGVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvY2xhc3MtdXNlL0Jhc2VJbnB1dFRhZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQiPjxCPkJhc2VJbnB1dFRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciB0aGUgdmFyaW91cyBpbnB1dCB0YWdzLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyNzI5YzEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwKQEAgLTAsMCArMSw1MjkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitDb21wYXJlVGFnQmFzZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlLENvbXBhcmVUYWdCYXNlIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJDb21wYXJlVGFnQmFzZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db21wYXJlVGFnQmFzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb21wYXJlVGFnQmFzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgQ29tcGFyZVRhZ0Jhc2U8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2U8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIj5FcXVhbFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbCI+R3JlYXRlckVxdWFsVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwiPkdyZWF0ZXJUaGFuVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sIj5MZXNzRXF1YWxUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbCI+TGVzc1RoYW5UYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCI+Tm90RXF1YWxUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGFic3RyYWN0IGNsYXNzIDxCPkNvbXBhcmVUYWdCYXNlPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvREw+CisKKzxQPgorQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgY29tcGFyaXNvbiB0YWdzLiAgQ29uY3JldGUgc3ViY2xhc3NlcyBuZWVkIG9ubHkKKyBkZWZpbmUgdmFsdWVzIGZvciBkZXNpcmVkMSBhbmQgZGVzaXJlZDIuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjRE9VQkxFX0NPTVBBUkUiPkRPVUJMRV9DT01QQVJFPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1dlIHdpbGwgZG8gYSBkb3VibGUvZmxvYXQgY29tcGFyaXNvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNMT05HX0NPTVBBUkUiPkxPTkdfQ09NUEFSRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXZSB3aWxsIGRvIGEgbG9uZy9pbnQgY29tcGFyaXNvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjU1RSSU5HX0NPTVBBUkUiPlNUUklOR19DT01QQVJFPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1dlIHdpbGwgZG8gYSBTdHJpbmcgY29tcGFyaXNvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHZhbHVlIHRvIHdoaWNoIHRoZSB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgb3RoZXIgYXR0cmlidXRlcyBvZiB0aGlzCisgdGFnIHdpbGwgYmUgY29tcGFyZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPmNvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNoZWFkZXIiPmhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0NvbXBhcmVUYWdCYXNlKCkiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIGFic3RyYWN0ICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oaW50LCBpbnQpIj5jb25kaXRpb248L0E+PC9CPihpbnQmbmJzcDtkZXNpcmVkMSwKKyAgICAgICAgICBpbnQmbmJzcDtkZXNpcmVkMik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj5nZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0VXNlcigpIj5nZXRVc2VyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldENvb2tpZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFVzZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRE9VQkxFX0NPTVBBUkUiPjwhLS0gLS0+PC9BPjxIMz4KK0RPVUJMRV9DT01QQVJFPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIGludCA8Qj5ET1VCTEVfQ09NUEFSRTwvQj48L1BSRT4KKzxETD4KKzxERD5XZSB3aWxsIGRvIGEgZG91YmxlL2Zsb2F0IGNvbXBhcmlzb24uCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZS5ET1VCTEVfQ09NUEFSRSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJMT05HX0NPTVBBUkUiPjwhLS0gLS0+PC9BPjxIMz4KK0xPTkdfQ09NUEFSRTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgPEI+TE9OR19DT01QQVJFPC9CPjwvUFJFPgorPERMPgorPEREPldlIHdpbGwgZG8gYSBsb25nL2ludCBjb21wYXJpc29uLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UuTE9OR19DT01QQVJFIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlNUUklOR19DT01QQVJFIj48IS0tIC0tPjwvQT48SDM+CitTVFJJTkdfQ09NUEFSRTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBpbnQgPEI+U1RSSU5HX0NPTVBBUkU8L0I+PC9QUkU+Cis8REw+Cis8REQ+V2Ugd2lsbCBkbyBhIFN0cmluZyBjb21wYXJpc29uLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UuU1RSSU5HX0NPTVBBUkUiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbHVlIj48IS0tIC0tPjwvQT48SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIHRvIHdoaWNoIHRoZSB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgb3RoZXIgYXR0cmlidXRlcyBvZiB0aGlzCisgdGFnIHdpbGwgYmUgY29tcGFyZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29tcGFyZVRhZ0Jhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorQ29tcGFyZVRhZ0Jhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Db21wYXJlVGFnQmFzZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0VmFsdWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29uZGl0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmRpdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGFic3RyYWN0IGJvb2xlYW4gPEI+Y29uZGl0aW9uPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCisgVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBjb25jcmV0ZSBzdWJjbGFzc2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbmRpdGlvbihpbnQsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmRpdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+Y29uZGl0aW9uPC9CPihpbnQmbmJzcDtkZXNpcmVkMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtkZXNpcmVkMikKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKyBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGNvbmNyZXRlIHN1YmNsYXNzZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRlc2lyZWQxPC9DT0RFPiAtIEZpcnN0IGRlc2lyZWQgdmFsdWUgZm9yIGEgdHJ1ZSByZXN1bHQgKC0xLCAwLCArMSk8REQ+PENPREU+ZGVzaXJlZDI8L0NPREU+IC0gU2Vjb25kIGRlc2lyZWQgdmFsdWUgZm9yIGEgdHJ1ZSByZXN1bHQgKC0xLCAwLCArMSkKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db21wYXJlVGFnQmFzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb21wYXJlVGFnQmFzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhZGNlZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sCkBAIC0wLDAgKzEsODgwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQ29uZGl0aW9uYWxUYWdCYXNlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlLENvbmRpdGlvbmFsVGFnQmFzZSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQ29uZGl0aW9uYWxUYWdCYXNlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbmRpdGlvbmFsVGFnQmFzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgQ29uZGl0aW9uYWxUYWdCYXNlPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCI+RW1wdHlUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPk1lc3NhZ2VzUHJlc2VudFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPlByZXNlbnRUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGFic3RyYWN0IGNsYXNzIDxCPkNvbmRpdGlvbmFsVGFnQmFzZTwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvREw+CisKKzxQPgorQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgdGhlIHZhcmlvdXMgY29uZGl0aW9uYWwgZXZhbHVhdGlvbiB0YWdzLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2Nvb2tpZSI+Y29va2llPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBjb29raWUgdG8gYmUgdXNlZCBhcyBhIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIEhUVFAgcmVxdWVzdCBoZWFkZXIgdG8gYmUgdXNlZCBhcyBhIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBKU1AgYmVhbiB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUgKGlmCisgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQpLCBvciB3aG9zZSBwcm9wZXJ0eSBpcyB0byBiZQorIGFjY2Vzc2VkIChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBIVFRQIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGJlIHVzZWQgYXMgYSB2YXJpYWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgYmVhbiBwcm9wZXJ0eSB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj5yb2xlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBzZWN1cml0eSByb2xlIHRvIGJlIGNoZWNrZWQgZm9yLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzY29wZSB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIG5hbWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBvcgorICJhbnkgc2NvcGUiIGlmIG51bGwuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB1c2VyIHByaW5jaXBhbCBuYW1lIHRvIGJlIGNoZWNrZWQgZm9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI0NvbmRpdGlvbmFsVGFnQmFzZSgpIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgYWJzdHJhY3QgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIHJlbWFpbmRlciBvZiB0aGUgY3VycmVudCBwYWdlIG5vcm1hbGx5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BlcmZvcm0gdGhlIHRlc3QgcmVxdWlyZWQgZm9yIHRoaXMgcGFydGljdWxhciB0YWcsIGFuZCBlaXRoZXIgZXZhbHVhdGUKKyBvciBza2lwIHRoZSBib2R5IG9mIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb29raWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aGVhZGVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbWV0ZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cm9sZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1c2VyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb29raWUiPjwhLS0gLS0+PC9BPjxIMz4KK2Nvb2tpZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Y29va2llPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBjb29raWUgdG8gYmUgdXNlZCBhcyBhIHZhcmlhYmxlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaGVhZGVyIj48IS0tIC0tPjwvQT48SDM+CitoZWFkZXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmhlYWRlcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgSFRUUCByZXF1ZXN0IGhlYWRlciB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgSlNQIGJlYW4gdG8gYmUgdXNlZCBhcyBhIHZhcmlhYmxlIChpZgorIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkKSwgb3Igd2hvc2UgcHJvcGVydHkgaXMgdG8gYmUKKyBhY2Nlc3NlZCAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZCkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJhbWV0ZXIiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcmFtZXRlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1ldGVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBIVFRQIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGJlIHVzZWQgYXMgYSB2YXJpYWJsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gcHJvcGVydHkgdG8gYmUgdXNlZCBhcyBhIHZhcmlhYmxlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icm9sZSI+PCEtLSAtLT48L0E+PEgzPgorcm9sZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cm9sZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2VjdXJpdHkgcm9sZSB0byBiZSBjaGVja2VkIGZvci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNjb3BlIj48IS0tIC0tPjwvQT48SDM+CitzY29wZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gbmFtZWQgYnkgdGhlIG5hbWUgcHJvcGVydHksIG9yCisgImFueSBzY29wZSIgaWYgbnVsbC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InVzZXIiPjwhLS0gLS0+PC9BPjxIMz4KK3VzZXI8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnVzZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHVzZXIgcHJpbmNpcGFsIG5hbWUgdG8gYmUgY2hlY2tlZCBmb3IuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29uZGl0aW9uYWxUYWdCYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0NvbmRpdGlvbmFsVGFnQmFzZTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbmRpdGlvbmFsVGFnQmFzZTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0Q29va2llKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvb2tpZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Q29va2llPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENvb2tpZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Q29va2llPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29va2llKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SGVhZGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEhlYWRlcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SGVhZGVyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEhlYWRlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SGVhZGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aGVhZGVyKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtZXRlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJhbWV0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhcmFtZXRlcjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbWV0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtZXRlcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtZXRlcik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Um9sZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSb2xlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRSb2xlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRSb2xlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRSb2xlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cm9sZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNjb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTY29wZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTY29wZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VXNlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRVc2VyPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRVc2VyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRVc2VyPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRVc2VyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXNlcik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UGVyZm9ybSB0aGUgdGVzdCByZXF1aXJlZCBmb3IgdGhpcyBwYXJ0aWN1bGFyIHRhZywgYW5kIGVpdGhlciBldmFsdWF0ZQorIG9yIHNraXAgdGhlIGJvZHkgb2YgdGhpcyB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSByZW1haW5kZXIgb2YgdGhlIGN1cnJlbnQgcGFnZSBub3JtYWxseS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbmRpdGlvbigpIj48IS0tIC0tPjwvQT48SDM+Citjb25kaXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBhYnN0cmFjdCBib29sZWFuIDxCPmNvbmRpdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbmRpdGlvbmFsVGFnQmFzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDM0NThkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sCkBAIC0wLDAgKzEsMzU5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorRW1wdHlUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FbXB0eVRhZyxFbXB0eVRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRW1wdHlUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRW1wdHlUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRW1wdHlUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzIEVtcHR5VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkVtcHR5VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwiPk5lc3RlZEVtcHR5VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVtcHR5VGFnLmh0bWwiPk5vdEVtcHR5VGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5FbXB0eVRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0RMPgorCis8UD4KK0V2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIGVtcHR5IGZvciB0aGlzIHJlcXVlc3QuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPk1hcnRpbiBDb29wZXIsIERhdmlkIEdyYWhhbTwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuRW1wdHlUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcGFyYW1ldGVyIj5wYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3VzZXIiPnVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VtcHR5VGFnLmh0bWwjRW1wdHlUYWcoKSI+RW1wdHlUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sI2NvbmRpdGlvbihib29sZWFuKSI+Y29uZGl0aW9uPC9BPjwvQj4oYm9vbGVhbiZuYnNwO2Rlc2lyZWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj5nZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0VXNlcigpIj5nZXRVc2VyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJFbXB0eVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitFbXB0eVRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkVtcHR5VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb25kaXRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorY29uZGl0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25kaXRpb248L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKyBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGNvbmNyZXRlIHN1YmNsYXNzZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29uZGl0aW9uKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+Citjb25kaXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmRpdGlvbjwvQj4oYm9vbGVhbiZuYnNwO2Rlc2lyZWQpCisgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCisgVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBjb25jcmV0ZSBzdWJjbGFzc2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kZXNpcmVkPC9DT0RFPiAtIERlc2lyZWQgb3V0Y29tZSBmb3IgYSB0cnVlIHJlc3VsdAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0VtcHR5VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkVtcHR5VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0YWEwYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwKQEAgLTAsMCArMSwzNDggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkVxdWFsVGFnLEVxdWFsVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9FcXVhbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRXF1YWxUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgRXF1YWxUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FcXVhbFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sIj5OZXN0ZWRFcXVhbFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+RXF1YWxUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvREw+CisKKzxQPgorRXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGFuZCB2YWx1ZSBhcmUgZXF1YWwuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FcXVhbFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0RPVUJMRV9DT01QQVJFIj5ET1VCTEVfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0xPTkdfQ09NUEFSRSI+TE9OR19DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjU1RSSU5HX0NPTVBBUkUiPlNUUklOR19DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2Nvb2tpZSI+Y29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2hlYWRlciI+aGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcGFyYW1ldGVyIj5wYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3VzZXIiPnVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwjRXF1YWxUYWcoKSI+RXF1YWxUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjY29uZGl0aW9uKGludCwgaW50KSI+Y29uZGl0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Q29va2llKCkiPmdldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRIZWFkZXIoKSI+Z2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQYXJhbWV0ZXIoKSI+Z2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRVc2VyKCkiPmdldFVzZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRXF1YWxUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorRXF1YWxUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5FcXVhbFRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY29uZGl0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmRpdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+Y29uZGl0aW9uPC9CPigpCisgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCisgVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBjb25jcmV0ZSBzdWJjbGFzc2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0VxdWFsVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWYyZWY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwKQEAgLTAsMCArMSw0MzkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitGb3J3YXJkVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuRm9yd2FyZFRhZyxGb3J3YXJkVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJGb3J3YXJkVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0ZvcndhcmRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRm9yd2FyZFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgRm9yd2FyZFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkZvcndhcmRUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Gb3J3YXJkVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitQZXJmb3JtIGEgZm9yd2FyZCBvciByZWRpcmVjdCB0byBhIHBhZ2UgdGhhdCBpcyBsb29rZWQgdXAgaW4gdGhlCisgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggb3VyIGFwcGxpY2F0aW9uLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuRm9yd2FyZFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbG9naWNhbCBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBlbnRyeSB0byBiZQorIGxvb2tlZCB1cC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwjRm9yd2FyZFRhZygpIj5Gb3J3YXJkVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb29rIHVwIHRoZSBBY3Rpb25Gb3J3YXJkIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUsCisgYW5kIHBlcmZvcm0gYSBmb3J3YXJkIG9yIHJlZGlyZWN0IHRvIHRoYXQgcGF0aCBhcyBpbmRpY2F0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlZmVyIHByb2Nlc3NpbmcgdW50aWwgdGhlIGVuZCBvZiB0aGlzIHRhZyBpcyBlbmNvdW50ZXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWVzc2FnZXMiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGxvZ2ljYWwgbmFtZSBvZiB0aGUgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gZW50cnkgdG8gYmUKKyBsb29rZWQgdXAuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRm9yd2FyZFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitGb3J3YXJkVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Rm9yd2FyZFRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RGVmZXIgcHJvY2Vzc2luZyB1bnRpbCB0aGUgZW5kIG9mIHRoaXMgdGFnIGlzIGVuY291bnRlcmVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Mb29rIHVwIHRoZSBBY3Rpb25Gb3J3YXJkIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUsCisgYW5kIHBlcmZvcm0gYSBmb3J3YXJkIG9yIHJlZGlyZWN0IHRvIHRoYXQgcGF0aCBhcyBpbmRpY2F0ZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Gb3J3YXJkVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcndhcmRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZGQwMTEyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbApAQCAtMCwwICsxLDM0OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0dyZWF0ZXJFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkdyZWF0ZXJFcXVhbFRhZyxHcmVhdGVyRXF1YWxUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkdyZWF0ZXJFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9HcmVhdGVyRXF1YWxUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkdyZWF0ZXJFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBHcmVhdGVyRXF1YWxUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5HcmVhdGVyRXF1YWxUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwiPk5lc3RlZEdyZWF0ZXJFcXVhbFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+R3JlYXRlckVxdWFsVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0RMPgorCis8UD4KK0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkdyZWF0ZXJFcXVhbFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0RPVUJMRV9DT01QQVJFIj5ET1VCTEVfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0xPTkdfQ09NUEFSRSI+TE9OR19DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjU1RSSU5HX0NPTVBBUkUiPlNUUklOR19DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2Nvb2tpZSI+Y29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2hlYWRlciI+aGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcGFyYW1ldGVyIj5wYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3VzZXIiPnVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sI0dyZWF0ZXJFcXVhbFRhZygpIj5HcmVhdGVyRXF1YWxUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2NvbmRpdGlvbihpbnQsIGludCkiPmNvbmRpdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj5nZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0VXNlcigpIj5nZXRVc2VyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldENvb2tpZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFVzZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkdyZWF0ZXJFcXVhbFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitHcmVhdGVyRXF1YWxUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5HcmVhdGVyRXF1YWxUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbmRpdGlvbigpIj48IS0tIC0tPjwvQT48SDM+Citjb25kaXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmRpdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9HcmVhdGVyRXF1YWxUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkdyZWF0ZXJFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3ZGZkMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwKQEAgLTAsMCArMSwzNDggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitHcmVhdGVyVGhhblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkdyZWF0ZXJUaGFuVGFnLEdyZWF0ZXJUaGFuVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJHcmVhdGVyVGhhblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9HcmVhdGVyVGhhblRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkdyZWF0ZXJUaGFuVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzIEdyZWF0ZXJUaGFuVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuR3JlYXRlclRoYW5UYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCI+TmVzdGVkR3JlYXRlclRoYW5UYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkdyZWF0ZXJUaGFuVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0RMPgorCis8UD4KK0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBncmVhdGVyIHRoYW4gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkdyZWF0ZXJUaGFuVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjRE9VQkxFX0NPTVBBUkUiPkRPVUJMRV9DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjTE9OR19DT01QQVJFIj5MT05HX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNTVFJJTkdfQ09NUEFSRSI+U1RSSU5HX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcm9sZSI+cm9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+dXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCNHcmVhdGVyVGhhblRhZygpIj5HcmVhdGVyVGhhblRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oaW50LCBpbnQpIj5jb25kaXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJHcmVhdGVyVGhhblRhZygpIj48IS0tIC0tPjwvQT48SDM+CitHcmVhdGVyVGhhblRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkdyZWF0ZXJUaGFuVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb25kaXRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorY29uZGl0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25kaXRpb248L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKyBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGNvbmNyZXRlIHN1YmNsYXNzZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvR3JlYXRlclRoYW5UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJHcmVhdGVyVGhhblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzBlZTljCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwKQEAgLTAsMCArMSwxMTEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorSXRlcmF0ZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkl0ZXJhdGVUYWcsSXRlcmF0ZVRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iSXRlcmF0ZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9JdGVyYXRlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJdGVyYXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBJdGVyYXRlVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuSXRlcmF0ZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sIj5OZXN0ZWRJdGVyYXRlVGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5JdGVyYXRlVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvREw+CisKKzxQPgorQ3VzdG9tIHRhZyB0aGF0IGl0ZXJhdGVzIHRoZSBlbGVtZW50cyBvZiBhIGNvbGxlY3Rpb24sIHdoaWNoIGNhbiBiZQorIGVpdGhlciBhbiBhdHRyaWJ1dGUgb3IgdGhlIHByb3BlcnR5IG9mIGFuIGF0dHJpYnV0ZS4gIFRoZSBjb2xsZWN0aW9uCisgY2FuIGJlIGFueSBvZiB0aGUgZm9sbG93aW5nOiAgYW4gYXJyYXkgb2Ygb2JqZWN0cywgYW4gRW51bWVyYXRpb24sCisgYW4gSXRlcmF0b3IsIGEgQ29sbGVjdGlvbiAod2hpY2ggaW5jbHVkZXMgTGlzdHMsIFNldHMgYW5kIFZlY3RvcnMpLAorIG9yIGEgTWFwICh3aGljaCBpbmNsdWRlcyBIYXNodGFibGVzKSB3aG9zZSBlbGVtZW50cyB3aWxsIGJlIGl0ZXJhdGVkIG92ZXIuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5JdGVyYXRlVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNjb2xsZWN0aW9uIj5jb2xsZWN0aW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb2xsZWN0aW9uIG92ZXIgd2hpY2ggd2Ugd2lsbCBiZSBpdGVyYXRpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjaWQiPmlkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdG8gYmUgZXhwb3NlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNpbmRleElkIj5pbmRleElkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdG8gYmUgZXhwb3NlZCBhcyB0aGUgY3VycmVudCBpbmRleC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5JdGVyYXRvcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2l0ZXJhdG9yIj5pdGVyYXRvcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJdGVyYXRvciBvZiB0aGUgZWxlbWVudHMgb2YgdGhpcyBjb2xsZWN0aW9uLCB3aGlsZSB3ZSBhcmUgYWN0dWFsbHkKKyBydW5uaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2xlbmd0aCI+bGVuZ3RoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBsZW5ndGggdmFsdWUgb3IgYXR0cmlidXRlIG5hbWUgKDw9MCBtZWFucyBubyBsaW1pdCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNsZW5ndGhDb3VudCI+bGVuZ3RoQ291bnQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG51bWJlciBvZiBlbGVtZW50cyB3ZSBoYXZlIGFscmVhZHkgcmVuZGVyZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNsZW5ndGhWYWx1ZSI+bGVuZ3RoVmFsdWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGFjdHVhbCBsZW5ndGggdmFsdWUgKGNhbGN1bGF0ZWQgaW4gdGhlIHN0YXJ0IHRhZykuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgY29sbGVjdGlvbiBvciBvd25pbmcgYmVhbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNvZmZzZXQiPm9mZnNldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc3RhcnRpbmcgb2Zmc2V0ICh6ZXJvIHJlbGF0aXZlKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI29mZnNldFZhbHVlIj5vZmZzZXRWYWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYWN0dWFsIG9mZnNldCB2YWx1ZSAoY2FsY3VsYXRlZCBpbiB0aGUgc3RhcnQgdGFnKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHByb3BlcnR5IG5hbWUgY29udGFpbmluZyB0aGUgY29sbGVjdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzY29wZSI+c2NvcGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNjb3BlIG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZSBwcm9wZXJ0eSwgaWYgYW55LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3N0YXJ0ZWQiPnN0YXJ0ZWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFzIHRoaXMgdGFnIGluc3RhbmNlIGJlZW4gc3RhcnRlZD88L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCN0eXBlIj50eXBlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBKYXZhIGNsYXNzIG9mIGVhY2ggZXhwb3NlZCBlbGVtZW50IG9mIHRoZSBjb2xsZWN0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjSXRlcmF0ZVRhZygpIj5JdGVyYXRlVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+ZG9BZnRlckJvZHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNYWtlIHRoZSBuZXh0IGNvbGxlY3Rpb24gZWxlbWVudCBhdmFpbGFibGUgYW5kIGxvb3AsIG9yCisgZmluaXNoIHRoZSBpdGVyYXRpb25zIGlmIHRoZXJlIGFyZSBubyBtb3JlIGVsZW1lbnRzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NsZWFuIHVwIGFmdGVyIHByb2Nlc3NpbmcgdGhpcyBlbnVtZXJhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGFuIGl0ZXJhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGNvbGxlY3Rpb24sIGFuZCBiZWdpbgorIGxvb3BpbmcgdGhyb3VnaCB0aGUgYm9keSBvbmNlIHBlciBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0Q29sbGVjdGlvbigpIj5nZXRDb2xsZWN0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNnZXRJZCgpIj5nZXRJZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNnZXRJbmRleCgpIj5nZXRJbmRleDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgemVyby1yZWxhdGl2ZSBpbmRleCBvZiB0aGUgY3VycmVudCBpdGVyYXRpb24gdGhyb3VnaCB0aGUKKyBsb29wLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0SW5kZXhJZCgpIj5nZXRJbmRleElkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNnZXRMZW5ndGgoKSI+Z2V0TGVuZ3RoPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldE9mZnNldCgpIj5nZXRPZmZzZXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0VHlwZSgpIj5nZXRUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0Q29sbGVjdGlvbihqYXZhLmxhbmcuT2JqZWN0KSI+c2V0Q29sbGVjdGlvbjwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtjb2xsZWN0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldEluZGV4SWQoamF2YS5sYW5nLlN0cmluZykiPnNldEluZGV4SWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aW5kZXhJZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0TGVuZ3RoKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMZW5ndGg8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bGVuZ3RoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldE9mZnNldChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T2Zmc2V0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO29mZnNldCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldFR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldFR5cGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iaXRlcmF0b3IiPjwhLS0gLS0+PC9BPjxIMz4KK2l0ZXJhdG9yPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkl0ZXJhdG9yIDxCPml0ZXJhdG9yPC9CPjwvUFJFPgorPERMPgorPEREPkl0ZXJhdG9yIG9mIHRoZSBlbGVtZW50cyBvZiB0aGlzIGNvbGxlY3Rpb24sIHdoaWxlIHdlIGFyZSBhY3R1YWxseQorIHJ1bm5pbmcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsZW5ndGhDb3VudCI+PCEtLSAtLT48L0E+PEgzPgorbGVuZ3RoQ291bnQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+bGVuZ3RoQ291bnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG51bWJlciBvZiBlbGVtZW50cyB3ZSBoYXZlIGFscmVhZHkgcmVuZGVyZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsZW5ndGhWYWx1ZSI+PCEtLSAtLT48L0E+PEgzPgorbGVuZ3RoVmFsdWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+bGVuZ3RoVmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFjdHVhbCBsZW5ndGggdmFsdWUgKGNhbGN1bGF0ZWQgaW4gdGhlIHN0YXJ0IHRhZykuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib2Zmc2V0VmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK29mZnNldFZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPm9mZnNldFZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhY3R1YWwgb2Zmc2V0IHZhbHVlIChjYWxjdWxhdGVkIGluIHRoZSBzdGFydCB0YWcpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic3RhcnRlZCI+PCEtLSAtLT48L0E+PEgzPgorc3RhcnRlZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+c3RhcnRlZDwvQj48L1BSRT4KKzxETD4KKzxERD5IYXMgdGhpcyB0YWcgaW5zdGFuY2UgYmVlbiBzdGFydGVkPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29sbGVjdGlvbiI+PCEtLSAtLT48L0E+PEgzPgorY29sbGVjdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5PYmplY3QgPEI+Y29sbGVjdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29sbGVjdGlvbiBvdmVyIHdoaWNoIHdlIHdpbGwgYmUgaXRlcmF0aW5nLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRvIGJlIGV4cG9zZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbmRleElkIj48IS0tIC0tPjwvQT48SDM+CitpbmRleElkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5pbmRleElkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdG8gYmUgZXhwb3NlZCBhcyB0aGUgY3VycmVudCBpbmRleC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Imxlbmd0aCI+PCEtLSAtLT48L0E+PEgzPgorbGVuZ3RoPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5sZW5ndGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGxlbmd0aCB2YWx1ZSBvciBhdHRyaWJ1dGUgbmFtZSAoPD0wIG1lYW5zIG5vIGxpbWl0KS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGNvbGxlY3Rpb24gb3Igb3duaW5nIGJlYW4uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvZmZzZXQiPjwhLS0gLS0+PC9BPjxIMz4KK29mZnNldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+b2Zmc2V0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzdGFydGluZyBvZmZzZXQgKHplcm8gcmVsYXRpdmUpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBjb250YWluaW5nIHRoZSBjb2xsZWN0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2NvcGUiPjwhLS0gLS0+PC9BPjxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBpZiBhbnkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0eXBlIj48IS0tIC0tPjwvQT48SDM+Cit0eXBlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj50eXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKYXZhIGNsYXNzIG9mIGVhY2ggZXhwb3NlZCBlbGVtZW50IG9mIHRoZSBjb2xsZWN0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ikl0ZXJhdGVUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorSXRlcmF0ZVRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkl0ZXJhdGVUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldENvbGxlY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29sbGVjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Z2V0Q29sbGVjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Q29sbGVjdGlvbihqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Q29sbGVjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Q29sbGVjdGlvbjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2NvbGxlY3Rpb24pPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRJZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lkKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5zZXRJZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJbmRleCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJbmRleDwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5nZXRJbmRleDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxwPlJldHVybiB0aGUgemVyby1yZWxhdGl2ZSBpbmRleCBvZiB0aGUgY3VycmVudCBpdGVyYXRpb24gdGhyb3VnaCB0aGUKKyBsb29wLiAgSWYgeW91IHNwZWNpZnkgYW4gPGNvZGU+b2Zmc2V0PC9jb2RlPiwgdGhlIGZpcnN0IGl0ZXJhdGlvbgorIHRocm91Z2ggdGhlIGxvb3Agd2lsbCBoYXZlIHRoYXQgdmFsdWU7IG90aGVyd2lzZSwgdGhlIGZpcnN0IGl0ZXJhdGlvbgorIHdpbGwgcmV0dXJuIHplcm8uPC9wPgorCisgPHA+VGhpcyBwcm9wZXJ0eSBpcyByZWFkLW9ubHksIGFuZCBnaXZlcyBuZXN0ZWQgY3VzdG9tIHRhZ3MgYWNjZXNzIHRvCisgdGhpcyBpbmZvcm1hdGlvbi4gIFRoZXJlZm9yZSwgaXQgaXMgPHN0cm9uZz5vbmx5PC9zdHJvbmc+IHZhbGlkIGluCisgYmV0d2VlbiBjYWxscyB0byA8Y29kZT5kb1N0YXJ0VGFnKCk8L2NvZGU+IGFuZCA8Y29kZT5kb0VuZFRhZygpPC9jb2RlPi4KKyA8L3A+Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEluZGV4SWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SW5kZXhJZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SW5kZXhJZDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SW5kZXhJZChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SW5kZXhJZDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SW5kZXhJZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2luZGV4SWQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRMZW5ndGgoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TGVuZ3RoPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRMZW5ndGg8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldExlbmd0aChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TGVuZ3RoPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRMZW5ndGg8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsZW5ndGgpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0T2Zmc2V0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE9mZnNldDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0T2Zmc2V0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRPZmZzZXQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE9mZnNldDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0T2Zmc2V0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7b2Zmc2V0KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTY29wZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U2NvcGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VHlwZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VHlwZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhbiBpdGVyYXRvciBmb3IgdGhlIHNwZWNpZmllZCBjb2xsZWN0aW9uLCBhbmQgYmVnaW4KKyBsb29waW5nIHRocm91Z2ggdGhlIGJvZHkgb25jZSBwZXIgZWxlbWVudC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvQWZ0ZXJCb2R5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvQWZ0ZXJCb2R5PC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvQWZ0ZXJCb2R5PC9CPigpCisgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk1ha2UgdGhlIG5leHQgY29sbGVjdGlvbiBlbGVtZW50IGF2YWlsYWJsZSBhbmQgbG9vcCwgb3IKKyBmaW5pc2ggdGhlIGl0ZXJhdGlvbnMgaWYgdGhlcmUgYXJlIG5vIG1vcmUgZWxlbWVudHMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9BZnRlckJvZHk8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9BZnRlckJvZHk8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5DbGVhbiB1cCBhZnRlciBwcm9jZXNzaW5nIHRoaXMgZW51bWVyYXRpb24uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0l0ZXJhdGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikl0ZXJhdGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwZGMwMWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbApAQCAtMCwwICsxLDI4OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0l0ZXJhdGVUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5JdGVyYXRlVGVpLEl0ZXJhdGVUZWkgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ikl0ZXJhdGVUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvSXRlcmF0ZVRlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzRXF1YWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikl0ZXJhdGVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzIEl0ZXJhdGVUZWk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkl0ZXJhdGVUZWk8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGVpLmh0bWwiPk5lc3RlZERlZmluZVRlaTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRlaS5odG1sIj5OZXN0ZWRJdGVyYXRlVGVpPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5JdGVyYXRlVGVpPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0RMPgorCis8UD4KK0ltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5pdGVyYXRlPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sI0l0ZXJhdGVUZWkoKSI+SXRlcmF0ZVRlaTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5WYXJpYWJsZUluZm9bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sI2dldFZhcmlhYmxlSW5mbyhqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSkiPmdldFZhcmlhYmxlSW5mbzwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhJm5ic3A7ZGF0YSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFRhZ0luZm8sIGlzVmFsaWQsIHNldFRhZ0luZm88L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iSXRlcmF0ZVRlaSgpIj48IS0tIC0tPjwvQT48SDM+CitJdGVyYXRlVGVpPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+SXRlcmF0ZVRlaTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFyaWFibGVJbmZvPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlZhcmlhYmxlSW5mb1tdIDxCPmdldFZhcmlhYmxlSW5mbzwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvUFJFPgorPERMPgorPEREPlJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlcyB0byBiZSBjcmVhdGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldFZhcmlhYmxlSW5mbzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0l0ZXJhdGVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJdGVyYXRlVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzRXF1YWxUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI5ZTEwMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwKQEAgLTAsMCArMSwzNDggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitMZXNzRXF1YWxUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5MZXNzRXF1YWxUYWcsTGVzc0VxdWFsVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJMZXNzRXF1YWxUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTGVzc0VxdWFsVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJMZXNzRXF1YWxUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgTGVzc0VxdWFsVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTGVzc0VxdWFsVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sIj5OZXN0ZWRMZXNzRXF1YWxUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkxlc3NFcXVhbFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9ETD4KKworPFA+CitFdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5MZXNzRXF1YWxUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNET1VCTEVfQ09NUEFSRSI+RE9VQkxFX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNMT05HX0NPTVBBUkUiPkxPTkdfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI1NUUklOR19DT01QQVJFIj5TVFJJTkdfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPmNvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNoZWFkZXIiPmhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzRXF1YWxUYWcuaHRtbCNMZXNzRXF1YWxUYWcoKSI+TGVzc0VxdWFsVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oaW50LCBpbnQpIj5jb25kaXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJMZXNzRXF1YWxUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTGVzc0VxdWFsVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TGVzc0VxdWFsVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb25kaXRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorY29uZGl0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25kaXRpb248L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKyBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGNvbmNyZXRlIHN1YmNsYXNzZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTGVzc0VxdWFsVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJMZXNzRXF1YWxUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTc3ZmQyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sCkBAIC0wLDAgKzEsMzQ4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTGVzc1RoYW5UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5MZXNzVGhhblRhZyxMZXNzVGhhblRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTGVzc1RoYW5UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTGVzc1RoYW5UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTGVzc1RoYW5UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgTGVzc1RoYW5UYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5MZXNzVGhhblRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sIj5OZXN0ZWRMZXNzVGhhblRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TGVzc1RoYW5UYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvREw+CisKKzxQPgorRXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGlzIGxlc3MgdGhhbiB0aGUgc3BlY2lmaWVkIHZhbHVlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTGVzc1RoYW5UYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNET1VCTEVfQ09NUEFSRSI+RE9VQkxFX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNMT05HX0NPTVBBUkUiPkxPTkdfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI1NUUklOR19DT01QQVJFIj5TVFJJTkdfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPmNvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNoZWFkZXIiPmhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sI0xlc3NUaGFuVGFnKCkiPkxlc3NUaGFuVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2NvbmRpdGlvbihpbnQsIGludCkiPmNvbmRpdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj5nZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0VXNlcigpIj5nZXRVc2VyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldENvb2tpZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFVzZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ikxlc3NUaGFuVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0xlc3NUaGFuVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TGVzc1RoYW5UYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbmRpdGlvbigpIj48IS0tIC0tPjwvQT48SDM+Citjb25kaXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmRpdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9MZXNzVGhhblRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJMZXNzVGhhblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4MDIzNzQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwKQEAgLTAsMCArMSw1MDcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitNYXRjaFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1hdGNoVGFnLE1hdGNoVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJNYXRjaFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9NYXRjaFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNYXRjaFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgTWF0Y2hUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWF0Y2hUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbCI+TmVzdGVkTWF0Y2hUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCI+Tm90TWF0Y2hUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk1hdGNoVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvREw+CisKKzxQPgorRXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgYSBzdWJzdHJpbmcgb2YgdGhlIHNwZWNpZmllZCB2YXJpYWJsZS4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1hdGNoVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjbG9jYXRpb24iPmxvY2F0aW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBsb2NhdGlvbiB3aGVyZSB0aGUgbWF0Y2ggbXVzdCBleGlzdCAoPGNvZGU+c3RhcnQ8L2NvZGU+IG9yCisgPGNvZGU+ZW5kPC9jb2RlPiksIG9yIDxjb2RlPm51bGw8L2NvZGU+IGZvciBhbnl3aGVyZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB2YWx1ZSB0byB3aGljaCB0aGUgdmFyaWFibGUgc3BlY2lmaWVkIGJ5IG90aGVyIGF0dHJpYnV0ZXMgb2YgdGhpcworIHRhZyB3aWxsIGJlIG1hdGNoZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPmNvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNoZWFkZXIiPmhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcm9sZSI+cm9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+dXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNNYXRjaFRhZygpIj5NYXRjaFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjY29uZGl0aW9uKGJvb2xlYW4pIj5jb25kaXRpb248L0E+PC9CPihib29sZWFuJm5ic3A7ZGVzaXJlZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2dldExvY2F0aW9uKCkiPmdldExvY2F0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI3NldExvY2F0aW9uKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Q29va2llKCkiPmdldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRIZWFkZXIoKSI+Z2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQYXJhbWV0ZXIoKSI+Z2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRVc2VyKCkiPmdldFVzZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJsb2NhdGlvbiI+PCEtLSAtLT48L0E+PEgzPgorbG9jYXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmxvY2F0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgbWF0Y2ggbXVzdCBleGlzdCAoPGNvZGU+c3RhcnQ8L2NvZGU+IG9yCisgPGNvZGU+ZW5kPC9jb2RlPiksIG9yIDxjb2RlPm51bGw8L2NvZGU+IGZvciBhbnl3aGVyZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbHVlIj48IS0tIC0tPjwvQT48SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIHRvIHdoaWNoIHRoZSB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgb3RoZXIgYXR0cmlidXRlcyBvZiB0aGlzCisgdGFnIHdpbGwgYmUgbWF0Y2hlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNYXRjaFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitNYXRjaFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk1hdGNoVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRMb2NhdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMb2NhdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TG9jYXRpb248L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldExvY2F0aW9uKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRMb2NhdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TG9jYXRpb248L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhdGlvbik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWx1ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbmRpdGlvbigpIj48IS0tIC0tPjwvQT48SDM+Citjb25kaXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmRpdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb25kaXRpb24oYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmRpdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+Y29uZGl0aW9uPC9CPihib29sZWFuJm5ic3A7ZGVzaXJlZCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKyBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGNvbmNyZXRlIHN1YmNsYXNzZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRlc2lyZWQ8L0NPREU+IC0gRGVzaXJlZCB2YWx1ZSBmb3IgYSB0cnVlIHJlc3VsdAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL01hdGNoVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1hdGNoVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg0ZDA2ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwKQEAgLTAsMCArMSwzNTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitNZXNzYWdlc05vdFByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NZXNzYWdlc05vdFByZXNlbnRUYWcsTWVzc2FnZXNOb3RQcmVzZW50VGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJNZXNzYWdlc05vdFByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1lc3NhZ2VzUHJlc2VudFRhZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgTWVzc2FnZXNOb3RQcmVzZW50VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWVzc2FnZXNQcmVzZW50VGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NZXNzYWdlc05vdFByZXNlbnRUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TWVzc2FnZXNOb3RQcmVzZW50VGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TWVzc2FnZXNQcmVzZW50VGFnPC9BPjwvREw+CisKKzxQPgorRXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgbm90IHByZXNlbnQgZm9yIHRoaXMgcmVxdWVzdC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+RGF2aWQgV2ludGVyZmVsZHQ8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1lc3NhZ2VzTm90UHJlc2VudFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NZXNzYWdlc1ByZXNlbnRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TWVzc2FnZXNQcmVzZW50VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCNtZXNzYWdlIj5tZXNzYWdlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2Nvb2tpZSI+Y29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2hlYWRlciI+aGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCNNZXNzYWdlc05vdFByZXNlbnRUYWcoKSI+TWVzc2FnZXNOb3RQcmVzZW50VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NZXNzYWdlc1ByZXNlbnRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPk1lc3NhZ2VzUHJlc2VudFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjY29uZGl0aW9uKGJvb2xlYW4pIj5jb25kaXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjZ2V0TWVzc2FnZSgpIj5nZXRNZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCNzZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNZXNzYWdlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj5nZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0VXNlcigpIj5nZXRVc2VyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldENvb2tpZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFVzZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik1lc3NhZ2VzTm90UHJlc2VudFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitNZXNzYWdlc05vdFByZXNlbnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NZXNzYWdlc05vdFByZXNlbnRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbmRpdGlvbigpIj48IS0tIC0tPjwvQT48SDM+Citjb25kaXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmRpdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TWVzc2FnZXNQcmVzZW50VGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9NZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWVzc2FnZXNQcmVzZW50VGFnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ1MTM0YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwKQEAgLTAsMCArMSw0NTEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitNZXNzYWdlc1ByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NZXNzYWdlc1ByZXNlbnRUYWcsTWVzc2FnZXNQcmVzZW50VGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJNZXNzYWdlc1ByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgTWVzc2FnZXNQcmVzZW50VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1lc3NhZ2VzUHJlc2VudFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj5NZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk1lc3NhZ2VzUHJlc2VudFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0RMPgorCis8UD4KK0V2YWx1dGUgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgYW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IGNsYXNzIG9yIGEKKyBjbGFzcyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IGNsYXNzIGlzIGluCisgcmVxdWVzdCBzY29wZSB1bmRlciB0aGUgc3BlY2lmaWVkIGtleSBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG1lc3NhZ2UgaW4gdGhlCisgY2xhc3Mgb3IgZm9yIHRoZSBwcm9wZXJ0eSBzcGVjaWZpZWQuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkRhdmlkIFdpbnRlcmZlbGR0PC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NZXNzYWdlc1ByZXNlbnRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjbWVzc2FnZSI+bWVzc2FnZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJZiB0aGlzIGlzIHNldCB0byAndHJ1ZScsIHRoZW4gdGhlIDxjb2RlPkdsb2JhbHMuTUVTU0FHRV9LRVk8L2NvZGU+IHdpbGwKKyBiZSB1c2VkIHRvIHJldHJpZXZlIHRoZSBtZXNzYWdlcyBmcm9tIHNjb3BlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcGFyYW1ldGVyIj5wYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3VzZXIiPnVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sI01lc3NhZ2VzUHJlc2VudFRhZygpIj5NZXNzYWdlc1ByZXNlbnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjY29uZGl0aW9uKGJvb2xlYW4pIj5jb25kaXRpb248L0E+PC9CPihib29sZWFuJm5ic3A7ZGVzaXJlZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBtZXNzYWdlIGluIHRoZQorIGNsYXNzIG9yIGZvciB0aGUgcHJvcGVydHkgc3BlY2lmaWVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCNnZXRNZXNzYWdlKCkiPmdldE1lc3NhZ2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjc2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWVzc2FnZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXNzYWdlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1lc3NhZ2UiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2U8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm1lc3NhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+SWYgdGhpcyBpcyBzZXQgdG8gJ3RydWUnLCB0aGVuIHRoZSA8Y29kZT5HbG9iYWxzLk1FU1NBR0VfS0VZPC9jb2RlPiB3aWxsCisgYmUgdXNlZCB0byByZXRyaWV2ZSB0aGUgbWVzc2FnZXMgZnJvbSBzY29wZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNZXNzYWdlc1ByZXNlbnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTWVzc2FnZXNQcmVzZW50VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TWVzc2FnZXNQcmVzZW50VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE1lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXNzYWdlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29uZGl0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmRpdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+Y29uZGl0aW9uPC9CPigpCisgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCisgVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBjb25jcmV0ZSBzdWJjbGFzc2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbmRpdGlvbihib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorY29uZGl0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25kaXRpb248L0I+KGJvb2xlYW4mbmJzcDtkZXNpcmVkKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBtZXNzYWdlIGluIHRoZQorIGNsYXNzIG9yIGZvciB0aGUgcHJvcGVydHkgc3BlY2lmaWVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZGVzaXJlZDwvQ09ERT4gLSBEZXNpcmVkIG91dGNvbWUgZm9yIGEgdHJ1ZSByZXN1bHQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDEyZTIxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFbXB0eVRhZy5odG1sCkBAIC0wLDAgKzEsMzQxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTm90RW1wdHlUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RFbXB0eVRhZyxOb3RFbXB0eVRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTm90RW1wdHlUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTm90RW1wdHlUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTm90RW1wdHlUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzIE5vdEVtcHR5VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VtcHR5VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FbXB0eVRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90RW1wdHlUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCI+TmVzdGVkTm90RW1wdHlUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5vdEVtcHR5VGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIj5FbXB0eVRhZzwvQT48L0RMPgorCis8UD4KK0V2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIG5vdCBlbXB0eSBmb3IgdGhpcyByZXF1ZXN0LgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5NYXJ0aW4gQ29vcGVyPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RFbXB0eVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPmNvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNoZWFkZXIiPmhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcm9sZSI+cm9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+dXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbCNOb3RFbXB0eVRhZygpIj5Ob3RFbXB0eVRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFbXB0eVRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FbXB0eVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIj5FbXB0eVRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCNjb25kaXRpb24oYm9vbGVhbikiPmNvbmRpdGlvbjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTm90RW1wdHlUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTm90RW1wdHlUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Ob3RFbXB0eVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY29uZGl0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmRpdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+Y29uZGl0aW9uPC9CPigpCisgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCisgVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBjb25jcmV0ZSBzdWJjbGFzc2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCI+RW1wdHlUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05vdEVtcHR5VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5vdEVtcHR5VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzMjY1MTgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVxdWFsVGFnLmh0bWwKQEAgLTAsMCArMSwzNDggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOb3RFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdEVxdWFsVGFnLE5vdEVxdWFsVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOb3RFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Ob3RFcXVhbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5vdEVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzIE5vdEVxdWFsVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90RXF1YWxUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCI+TmVzdGVkTm90RXF1YWxUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5vdEVxdWFsVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0RMPgorCis8UD4KK0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBhbmQgdmFsdWUgYXJlIG5vdCBlcXVhbC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdEVxdWFsVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjRE9VQkxFX0NPTVBBUkUiPkRPVUJMRV9DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjTE9OR19DT01QQVJFIj5MT05HX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNTVFJJTkdfQ09NUEFSRSI+U1RSSU5HX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcm9sZSI+cm9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+dXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCNOb3RFcXVhbFRhZygpIj5Ob3RFcXVhbFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oaW50LCBpbnQpIj5jb25kaXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOb3RFcXVhbFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOb3RFcXVhbFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk5vdEVxdWFsVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb25kaXRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorY29uZGl0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5jb25kaXRpb248L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKyBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGNvbmNyZXRlIHN1YmNsYXNzZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTm90RXF1YWxUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVtcHR5VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOb3RFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxMGZmOGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwKQEAgLTAsMCArMSwzNDggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOb3RNYXRjaFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdE1hdGNoVGFnLE5vdE1hdGNoVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOb3RNYXRjaFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Ob3RNYXRjaFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTm90TWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NYXRjaFRhZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgTm90TWF0Y2hUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1hdGNoVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RNYXRjaFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIj5OZXN0ZWROb3RNYXRjaFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+Tm90TWF0Y2hUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPk1hdGNoVGFnPC9BPjwvREw+CisKKzxQPgorRXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgbm90IGEgc3Vic3RyaW5nIG9mIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RNYXRjaFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NYXRjaFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPk1hdGNoVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2xvY2F0aW9uIj5sb2NhdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPmNvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNoZWFkZXIiPmhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcm9sZSI+cm9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+dXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCNOb3RNYXRjaFRhZygpIj5Ob3RNYXRjaFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NYXRjaFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNjb25kaXRpb24oYm9vbGVhbikiPmNvbmRpdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2dldExvY2F0aW9uKCkiPmdldExvY2F0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNzZXRMb2NhdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG9jYXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Q29va2llKCkiPmdldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRIZWFkZXIoKSI+Z2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQYXJhbWV0ZXIoKSI+Z2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRVc2VyKCkiPmdldFVzZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTm90TWF0Y2hUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTm90TWF0Y2hUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Ob3RNYXRjaFRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY29uZGl0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmRpdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+Y29uZGl0aW9uPC9CPigpCisgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCisgVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBjb25jcmV0ZSBzdWJjbGFzc2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05vdE1hdGNoVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOb3RNYXRjaFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1hdGNoVGFnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTM1YzA4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwKQEAgLTAsMCArMSwzNDggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOb3RQcmVzZW50VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90UHJlc2VudFRhZyxOb3RQcmVzZW50VGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOb3RQcmVzZW50VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05vdFByZXNlbnRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5vdFByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5QcmVzZW50VGFnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBOb3RQcmVzZW50VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlByZXNlbnRUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdFByZXNlbnRUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWROb3RQcmVzZW50VGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Ob3RQcmVzZW50VGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPlByZXNlbnRUYWc8L0E+PC9ETD4KKworPFA+CitFdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBub3QgcHJlc2VudCBmb3IgdGhpcyByZXF1ZXN0LgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90UHJlc2VudFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5QcmVzZW50VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj5QcmVzZW50VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwjUk9MRV9ERUxJTUlURVIiPlJPTEVfREVMSU1JVEVSPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2Nvb2tpZSI+Y29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2hlYWRlciI+aGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwjTm90UHJlc2VudFRhZygpIj5Ob3RQcmVzZW50VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUHJlc2VudFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPlByZXNlbnRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCNjb25kaXRpb24oYm9vbGVhbikiPmNvbmRpdGlvbjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTm90UHJlc2VudFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOb3RQcmVzZW50VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Tm90UHJlc2VudFRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY29uZGl0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmRpdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+Y29uZGl0aW9uPC9CPigpCisgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RXZhbHVhdGUgdGhlIGNvbmRpdGlvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZCBieSB0aGlzIHBhcnRpY3VsYXIgdGFnLAorIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcKKyBzaG91bGQgYmUgZXZhbHVhdGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgc2hvdWxkIGJlIHNraXBwZWQuCisgVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBjb25jcmV0ZSBzdWJjbGFzc2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPlByZXNlbnRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05vdFByZXNlbnRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5vdFByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5QcmVzZW50VGFnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmM3ZDgzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwKQEAgLTAsMCArMSwzODEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitQcmVzZW50VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUHJlc2VudFRhZyxQcmVzZW50VGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJQcmVzZW50VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1ByZXNlbnRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzIFByZXNlbnRUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUHJlc2VudFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwiPk5lc3RlZFByZXNlbnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sIj5Ob3RQcmVzZW50VGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5QcmVzZW50VGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvREw+CisKKzxQPgorRXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgcHJlc2VudCBmb3IgdGhpcyByZXF1ZXN0LgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUHJlc2VudFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCNST0xFX0RFTElNSVRFUiI+Uk9MRV9ERUxJTUlURVI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPmNvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNoZWFkZXIiPmhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcm9sZSI+cm9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+dXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sI1ByZXNlbnRUYWcoKSI+UHJlc2VudFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sI2NvbmRpdGlvbihib29sZWFuKSI+Y29uZGl0aW9uPC9BPjwvQj4oYm9vbGVhbiZuYnNwO2Rlc2lyZWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj5nZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0VXNlcigpIj5nZXRVc2VyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlJPTEVfREVMSU1JVEVSIj48IS0tIC0tPjwvQT48SDM+CitST0xFX0RFTElNSVRFUjwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPlJPTEVfREVMSU1JVEVSPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlByZXNlbnRUYWcuUk9MRV9ERUxJTUlURVIiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlByZXNlbnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorUHJlc2VudFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlByZXNlbnRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbmRpdGlvbigpIj48IS0tIC0tPjwvQT48SDM+Citjb25kaXRpb248L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbmRpdGlvbjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkV2YWx1YXRlIHRoZSBjb25kaXRpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQgYnkgdGhpcyBwYXJ0aWN1bGFyIHRhZywKKyBhbmQgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnCisgc2hvdWxkIGJlIGV2YWx1YXRlZCwgb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIGl0IHNob3VsZCBiZSBza2lwcGVkLgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb25kaXRpb24oYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmRpdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+Y29uZGl0aW9uPC9CPihib29sZWFuJm5ic3A7ZGVzaXJlZCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5FdmFsdWF0ZSB0aGUgY29uZGl0aW9uIHRoYXQgaXMgYmVpbmcgdGVzdGVkIGJ5IHRoaXMgcGFydGljdWxhciB0YWcsCisgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZworIHNob3VsZCBiZSBldmFsdWF0ZWQsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBpdCBzaG91bGQgYmUgc2tpcHBlZC4KKyBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGNvbmNyZXRlIHN1YmNsYXNzZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRlc2lyZWQ8L0NPREU+IC0gRGVzaXJlZCBvdXRjb21lIGZvciBhIHRydWUgcmVzdWx0Cis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUHJlc2VudFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMGZhNDY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sCkBAIC0wLDAgKzEsMTA3NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1JlZGlyZWN0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUmVkaXJlY3RUYWcsUmVkaXJlY3RUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlJlZGlyZWN0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1JlZGlyZWN0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZWRpcmVjdFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgUmVkaXJlY3RUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5SZWRpcmVjdFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlJlZGlyZWN0VGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitHZW5lcmF0ZSBhIFVSTC1lbmNvZGVkIHJlZGlyZWN0IHRvIHRoZSBzcGVjaWZpZWQgVVJJLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUmVkaXJlY3RUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNhbmNob3IiPmFuY2hvcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYW5jaG9yIHRvIGJlIGFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2ZvcndhcmQiPmZvcndhcmQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGxvZ2ljYWwgZm9yd2FyZCBuYW1lIGZyb20gd2hpY2ggdG8gcmV0cmlldmUgdGhlIHJlZGlyZWN0IFVSSS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjaHJlZiI+aHJlZjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVkaXJlY3QgVVJJLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSlNQIGJlYW4gbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjcGFnZSI+cGFnZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbW9kdWxlLXJlbGF0aXZlIHBhZ2UgVVJMIChiZWdpbm5pbmcgd2l0aCBhIHNsYXNoKSB0byB3aGljaAorIHRoaXMgcmVkaXJlY3Qgd2lsbCBiZSByZW5kZXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjcGFyYW1JZCI+cGFyYW1JZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2luZ2xlLXBhcmFtZXRlciByZXF1ZXN0IHBhcmFtZXRlciBuYW1lIHRvIGdlbmVyYXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNwYXJhbU5hbWUiPnBhcmFtTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNwYXJhbVByb3BlcnR5Ij5wYXJhbVByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNwYXJhbVNjb3BlIj5wYXJhbVNjb3BlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHNjb3BlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEpTUCBiZWFuIHByb3BlcnR5IG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3Njb3BlIj5zY29wZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2NvcGUgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBpZiBhbnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3RyYW5zYWN0aW9uIj50cmFuc2FjdGlvbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbmNsdWRlIG91ciB0cmFuc2FjdGlvbiBjb250cm9sIHRva2VuPzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjUmVkaXJlY3RUYWcoKSI+UmVkaXJlY3RUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZW5kZXIgdGhlIHJlZGlyZWN0IGFuZCBza2lwIHRoZSByZW1haW5kZXIgb2YgdGhpcyBwYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGVmZXIgZ2VuZXJhdGlvbiB1bnRpbCB0aGUgZW5kIG9mIHRoaXMgdGFnIGlzIGVuY291bnRlcmVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldEFuY2hvcigpIj5nZXRBbmNob3I8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXRGb3J3YXJkKCkiPmdldEZvcndhcmQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXRIcmVmKCkiPmdldEhyZWY8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXRQYWdlKCkiPmdldFBhZ2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXRQYXJhbUlkKCkiPmdldFBhcmFtSWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXRQYXJhbU5hbWUoKSI+Z2V0UGFyYW1OYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjZ2V0UGFyYW1Qcm9wZXJ0eSgpIj5nZXRQYXJhbVByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjZ2V0UGFyYW1TY29wZSgpIj5nZXRQYXJhbVNjb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI2dldFRyYW5zYWN0aW9uKCkiPmdldFRyYW5zYWN0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldEFuY2hvcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QW5jaG9yPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FuY2hvcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPnNldEZvcndhcmQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9yd2FyZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldEhyZWYoamF2YS5sYW5nLlN0cmluZykiPnNldEhyZWY8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aHJlZik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFBhZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldFBhZ2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFBhcmFtSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtSWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1JZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFBhcmFtTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1OYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFBhcmFtUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtUHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1Qcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFBhcmFtU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtU2NvcGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1TY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI3NldFRyYW5zYWN0aW9uKGJvb2xlYW4pIj5zZXRUcmFuc2FjdGlvbjwvQT48L0I+KGJvb2xlYW4mbmJzcDt0cmFuc2FjdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYW5jaG9yIj48IS0tIC0tPjwvQT48SDM+CithbmNob3I8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmFuY2hvcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYW5jaG9yIHRvIGJlIGFkZGVkIHRvIHRoZSBlbmQgb2YgdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmb3J3YXJkIj48IS0tIC0tPjwvQT48SDM+Citmb3J3YXJkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5mb3J3YXJkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsb2dpY2FsIGZvcndhcmQgbmFtZSBmcm9tIHdoaWNoIHRvIHJldHJpZXZlIHRoZSByZWRpcmVjdCBVUkkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJocmVmIj48IS0tIC0tPjwvQT48SDM+CitocmVmPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5ocmVmPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSByZWRpcmVjdCBVUkkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSlNQIGJlYW4gbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhZ2UiPjwhLS0gLS0+PC9BPjxIMz4KK3BhZ2U8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYWdlIFVSTCAoYmVnaW5uaW5nIHdpdGggYSBzbGFzaCkgdG8gd2hpY2gKKyB0aGlzIHJlZGlyZWN0IHdpbGwgYmUgcmVuZGVyZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJhbUlkIj48IS0tIC0tPjwvQT48SDM+CitwYXJhbUlkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbUlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWUgdG8gZ2VuZXJhdGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJhbU5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcmFtTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1OYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIG5hbWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJhbVByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitwYXJhbVByb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbVByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHByb3BlcnR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyYW1TY29wZSI+PCEtLSAtLT48L0E+PEgzPgorcGFyYW1TY29wZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1TY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBzY29wZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEpTUCBiZWFuIHByb3BlcnR5IG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzY29wZSI+PCEtLSAtLT48L0E+PEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIG5hbWUgcHJvcGVydHksIGlmIGFueS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRyYW5zYWN0aW9uIj48IS0tIC0tPjwvQT48SDM+Cit0cmFuc2FjdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+dHJhbnNhY3Rpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+SW5jbHVkZSBvdXIgdHJhbnNhY3Rpb24gY29udHJvbCB0b2tlbj8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJSZWRpcmVjdFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitSZWRpcmVjdFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJlZGlyZWN0VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRBbmNob3IoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QW5jaG9yPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBbmNob3I8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEFuY2hvcihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QW5jaG9yPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBbmNob3I8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthbmNob3IpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGb3J3YXJkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEZvcndhcmQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZvcndhcmQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZvcndhcmQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3J3YXJkKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SHJlZigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRIcmVmPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRIcmVmPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRIcmVmKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRIcmVmPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRIcmVmPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aHJlZik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYWdlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhZ2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhZ2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFyYW1JZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJhbUlkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYXJhbUlkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYXJhbUlkKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbUlkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYXJhbUlkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1JZCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtTmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXJhbU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhcmFtTmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFyYW1OYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJhbU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtTmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtUHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFyYW1Qcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFyYW1Qcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFyYW1Qcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGFyYW1Qcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGFyYW1Qcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtUHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXJhbVNjb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhcmFtU2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFBhcmFtU2NvcGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhcmFtU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhcmFtU2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcmFtU2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbVNjb3BlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTY29wZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U2NvcGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFRyYW5zYWN0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFRyYW5zYWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRUcmFuc2FjdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VHJhbnNhY3Rpb24oYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFRyYW5zYWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRUcmFuc2FjdGlvbjwvQj4oYm9vbGVhbiZuYnNwO3RyYW5zYWN0aW9uKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5EZWZlciBnZW5lcmF0aW9uIHVudGlsIHRoZSBlbmQgb2YgdGhpcyB0YWcgaXMgZW5jb3VudGVyZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlbmRlciB0aGUgcmVkaXJlY3QgYW5kIHNraXAgdGhlIHJlbWFpbmRlciBvZiB0aGlzIHBhZ2UuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbnkgYWNxdWlyZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1JlZGlyZWN0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZWRpcmVjdFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL0NvbXBhcmVUYWdCYXNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9Db21wYXJlVGFnQmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxOTIyOGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9Db21wYXJlVGFnQmFzZS5odG1sCkBAIC0wLDAgKzEsMjc5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29tcGFyZVRhZ0Jhc2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2U8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9CPjwvQT48L1REPgorPFREPlRoZSAic3RydXRzLWxvZ2ljIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbiBtYW5hZ2luZworY29uZGl0aW9uYWwgZ2VuZXJhdGlvbiBvZiBvdXRwdXQgdGV4dCwgbG9vcGluZyBvdmVyIG9iamVjdCBjb2xsZWN0aW9ucworZm9yIHJlcGV0aXRpdmUgZ2VuZXJhdGlvbiBvZiBvdXRwdXQgdGV4dCwgYW5kIGFwcGxpY2F0aW9uIGZsb3cgbWFuYWdlbWVudC4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPgorICAgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbCI+RXF1YWxUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGFuZCB2YWx1ZSBhcmUgZXF1YWwuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbCI+R3JlYXRlckVxdWFsVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwiPkdyZWF0ZXJUaGFuVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBncmVhdGVyIHRoYW4gdGhlIHNwZWNpZmllZCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sIj5MZXNzRXF1YWxUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbCI+TGVzc1RoYW5UYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGlzIGxlc3MgdGhhbiB0aGUgc3BlY2lmaWVkIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCI+Tm90RXF1YWxUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGFuZCB2YWx1ZSBhcmUgbm90IGVxdWFsLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRXF1YWxUYWcuaHRtbCI+TmVzdGVkRXF1YWxUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkRXF1YWxUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwiPk5lc3RlZEdyZWF0ZXJFcXVhbFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRHcmVhdGVyRXF1YWxUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCI+TmVzdGVkR3JlYXRlclRoYW5UYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkR3JlYXRlclRoYW5UYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwiPk5lc3RlZExlc3NFcXVhbFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRMZXNzRXF1YWxUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc1RoYW5UYWcuaHRtbCI+TmVzdGVkTGVzc1RoYW5UYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTGVzc1RoYW5UYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCI+TmVzdGVkTm90RXF1YWxUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTm90RXF1YWxUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb21wYXJlVGFnQmFzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkODRmNmMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbApAQCAtMCwwICsxLDQyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbmRpdGlvbmFsVGFnQmFzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlICJzdHJ1dHMtbG9naWMiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluIG1hbmFnaW5nCitjb25kaXRpb25hbCBnZW5lcmF0aW9uIG9mIG91dHB1dCB0ZXh0LCBsb29waW5nIG92ZXIgb2JqZWN0IGNvbGxlY3Rpb25zCitmb3IgcmVwZXRpdGl2ZSBnZW5lcmF0aW9uIG9mIG91dHB1dCB0ZXh0LCBhbmQgYXBwbGljYXRpb24gZmxvdyBtYW5hZ2VtZW50LiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+CisgICB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgY29tcGFyaXNvbiB0YWdzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCI+RW1wdHlUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgZW1wdHkgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwiPkVxdWFsVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBhbmQgdmFsdWUgYXJlIGVxdWFsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwiPkdyZWF0ZXJFcXVhbFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIj5HcmVhdGVyVGhhblRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgaXMgZ3JlYXRlciB0aGFuIHRoZSBzcGVjaWZpZWQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzRXF1YWxUYWcuaHRtbCI+TGVzc0VxdWFsVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwiPkxlc3NUaGFuVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBsZXNzIHRoYW4gdGhlIHNwZWNpZmllZCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPk1hdGNoVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIGEgc3Vic3RyaW5nIG9mIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+TWVzc2FnZXNOb3RQcmVzZW50VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIG5vdCBwcmVzZW50IGZvciB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TWVzc2FnZXNQcmVzZW50VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1dGUgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgYW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IGNsYXNzIG9yIGEKKyBjbGFzcyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IGNsYXNzIGlzIGluCisgcmVxdWVzdCBzY29wZSB1bmRlciB0aGUgc3BlY2lmaWVkIGtleSBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG1lc3NhZ2UgaW4gdGhlCisgY2xhc3Mgb3IgZm9yIHRoZSBwcm9wZXJ0eSBzcGVjaWZpZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFbXB0eVRhZy5odG1sIj5Ob3RFbXB0eVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBub3QgZW1wdHkgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVxdWFsVGFnLmh0bWwiPk5vdEVxdWFsVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBhbmQgdmFsdWUgYXJlIG5vdCBlcXVhbC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPk5vdE1hdGNoVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIG5vdCBhIHN1YnN0cmluZyBvZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sIj5Ob3RQcmVzZW50VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIG5vdCBwcmVzZW50IGZvciB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPlByZXNlbnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgcHJlc2VudCBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwiPk5lc3RlZEVtcHR5VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEVtcHR5VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwiPk5lc3RlZEVxdWFsVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEVxdWFsVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJFcXVhbFRhZy5odG1sIj5OZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkR3JlYXRlckVxdWFsVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwiPk5lc3RlZEdyZWF0ZXJUaGFuVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEdyZWF0ZXJUaGFuVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sIj5OZXN0ZWRMZXNzRXF1YWxUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTGVzc0VxdWFsVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NUaGFuVGFnLmh0bWwiPk5lc3RlZExlc3NUaGFuVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZExlc3NUaGFuVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1hdGNoVGFnLmh0bWwiPk5lc3RlZE1hdGNoVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE1hdGNoVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwiPk5lc3RlZE5vdEVtcHR5VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE5vdEVtcHR5VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVxdWFsVGFnLmh0bWwiPk5lc3RlZE5vdEVxdWFsVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE5vdEVxdWFsVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdE1hdGNoVGFnLmh0bWwiPk5lc3RlZE5vdE1hdGNoVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE5vdE1hdGNoVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkTm90UHJlc2VudFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWROb3RQcmVzZW50VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkUHJlc2VudFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRQcmVzZW50VGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbmRpdGlvbmFsVGFnQmFzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9FbXB0eVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvRW1wdHlUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWRjODA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvRW1wdHlUYWcuaHRtbApAQCAtMCwwICsxLDIwMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkVtcHR5VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FbXB0eVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VtcHR5VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkVtcHR5VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkVtcHR5VGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VtcHR5VGFnLmh0bWwiPkVtcHR5VGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvQj48L0E+PC9URD4KKzxURD5UaGUgInN0cnV0cy1sb2dpYyIgdGFnIGxpYnJhcnkgY29udGFpbnMgdGFncyB0aGF0IGFyZSB1c2VmdWwgaW4gbWFuYWdpbmcKK2NvbmRpdGlvbmFsIGdlbmVyYXRpb24gb2Ygb3V0cHV0IHRleHQsIGxvb3Bpbmcgb3ZlciBvYmplY3QgY29sbGVjdGlvbnMKK2ZvciByZXBldGl0aXZlIGdlbmVyYXRpb24gb2Ygb3V0cHV0IHRleHQsIGFuZCBhcHBsaWNhdGlvbiBmbG93IG1hbmFnZW1lbnQuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGh0bWwgdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvY29kZT4KKyAgIHRhZ3MgdG8gYWxsb3cgICB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VtcHR5VGFnLmh0bWwiPkVtcHR5VGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCI+RW1wdHlUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVtcHR5VGFnLmh0bWwiPk5vdEVtcHR5VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIG5vdCBlbXB0eSBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VtcHR5VGFnLmh0bWwiPkVtcHR5VGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIj5FbXB0eVRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRW1wdHlUYWcuaHRtbCI+TmVzdGVkRW1wdHlUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkRW1wdHlUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCI+TmVzdGVkTm90RW1wdHlUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTm90RW1wdHlUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJFbXB0eVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9FcXVhbFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvRXF1YWxUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGM5ZjlhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvRXF1YWxUYWcuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkVxdWFsVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkVxdWFsVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwiPkVxdWFsVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPgorICAgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwiPkVxdWFsVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIj5FcXVhbFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRXF1YWxUYWcuaHRtbCI+TmVzdGVkRXF1YWxUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkRXF1YWxUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9Gb3J3YXJkVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9Gb3J3YXJkVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTA0MWUwMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL0ZvcndhcmRUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkZvcndhcmRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkZvcndhcmRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZvcndhcmRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuRm9yd2FyZFRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuRm9yd2FyZFRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGb3J3YXJkVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL0dyZWF0ZXJFcXVhbFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvR3JlYXRlckVxdWFsVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2YzYzA1MAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL0dyZWF0ZXJFcXVhbFRhZy5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuR3JlYXRlckVxdWFsVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5HcmVhdGVyRXF1YWxUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iR3JlYXRlckVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkdyZWF0ZXJFcXVhbFRhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbCI+R3JlYXRlckVxdWFsVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPgorICAgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIj5HcmVhdGVyRXF1YWxUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIj5HcmVhdGVyRXF1YWxUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJFcXVhbFRhZy5odG1sIj5OZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkR3JlYXRlckVxdWFsVGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkdyZWF0ZXJFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9HcmVhdGVyVGhhblRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvR3JlYXRlclRoYW5UYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZWRmNGY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvR3JlYXRlclRoYW5UYWcuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkdyZWF0ZXJUaGFuVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5HcmVhdGVyVGhhblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkdyZWF0ZXJUaGFuVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkdyZWF0ZXJUaGFuVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwiPkdyZWF0ZXJUaGFuVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPgorICAgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwiPkdyZWF0ZXJUaGFuVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIj5HcmVhdGVyVGhhblRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCI+TmVzdGVkR3JlYXRlclRoYW5UYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkR3JlYXRlclRoYW5UYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJHcmVhdGVyVGhhblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9JdGVyYXRlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9JdGVyYXRlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBhODM2NQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL0l0ZXJhdGVUYWcuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkl0ZXJhdGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkl0ZXJhdGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikl0ZXJhdGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuSXRlcmF0ZVRhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+CisgICB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCI+TmVzdGVkSXRlcmF0ZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRJdGVyYXRlVGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJdGVyYXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL0l0ZXJhdGVUZWkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL0l0ZXJhdGVUZWkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzJhY2M1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvSXRlcmF0ZVRlaS5odG1sCkBAIC0wLDAgKzEsMTk2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuSXRlcmF0ZVRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuSXRlcmF0ZVRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSXRlcmF0ZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5JdGVyYXRlVGVpPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCI+SXRlcmF0ZVRlaTwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW48L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBiZWFuIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvY29kZT4KKyAgICAgdGFncyB0byBhbGxvdyB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPgorICAgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sIj5JdGVyYXRlVGVpPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sIj5JdGVyYXRlVGVpPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUZWkuaHRtbCI+TmVzdGVkRGVmaW5lVGVpPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZERlZmluZVRlaSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgaW1wbGllZCBzZXR0aW5nIG9mIHRoZSBuYW1lIHByb3BlcnR5Cisgb2YgYSBuZXN0ZWQgdGFnIGlzIHByb3Blcmx5IGhhbmRlZCBpbiB0aGUgY2FzdGluZyBvZiB0aGUgZGVmaW5lZCBvYmplY3QuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sIj5JdGVyYXRlVGVpPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPkl0ZXJhdGVUZWk8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUZWkuaHRtbCI+TmVzdGVkSXRlcmF0ZVRlaTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRJdGVyYXRlVGVpCisgRXh0ZW5kaW5nIHRoZSBvcmlnaW5hbCB0YWcncyB0ZWkgY2xhc3MsIHNvIHRoYXQgd2UgY2FuIG1ha2UgdGhlICJpZCIKKyBhdHRyaWJ1dGUgb3B0aW9uYWwsIHNvIHRoYXQgdGhvc2Ugd2hvIHdhbnQgdG8gc2NyaXB0IGNhbiBhZGQgaXQgaWYgdGhleSBuZWVkCisgaXQgb3RoZXJ3aXNlIHdlIGNhbiBtYWludGFpbiB0aGUgbmljZSBsZWFuIHRhZyBtYXJrdXAuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikl0ZXJhdGVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvTGVzc0VxdWFsVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9MZXNzRXF1YWxUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmI1NTZlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvTGVzc0VxdWFsVGFnLmh0bWwKQEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5MZXNzRXF1YWxUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkxlc3NFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJMZXNzRXF1YWxUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTGVzc0VxdWFsVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sIj5MZXNzRXF1YWxUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+CisgICB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiPkxlc3NFcXVhbFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiPkxlc3NFcXVhbFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwiPk5lc3RlZExlc3NFcXVhbFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRMZXNzRXF1YWxUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzRXF1YWxUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTGVzc0VxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL0xlc3NUaGFuVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9MZXNzVGhhblRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNTljNmEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9MZXNzVGhhblRhZy5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTGVzc1RoYW5UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkxlc3NUaGFuVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTGVzc1RoYW5UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTGVzc1RoYW5UYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbCI+TGVzc1RoYW5UYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+CisgICB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbCI+TGVzc1RoYW5UYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwiPkxlc3NUaGFuVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sIj5OZXN0ZWRMZXNzVGhhblRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRMZXNzVGhhblRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikxlc3NUaGFuVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL01hdGNoVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9NYXRjaFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1YjlmYTIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9NYXRjaFRhZy5odG1sCkBAIC0wLDAgKzEsMjAyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWF0Y2hUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1hdGNoVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWF0Y2hUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9CPjwvQT48L1REPgorPFREPlRoZSAic3RydXRzLWxvZ2ljIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbiBtYW5hZ2luZworY29uZGl0aW9uYWwgZ2VuZXJhdGlvbiBvZiBvdXRwdXQgdGV4dCwgbG9vcGluZyBvdmVyIG9iamVjdCBjb2xsZWN0aW9ucworZm9yIHJlcGV0aXRpdmUgZ2VuZXJhdGlvbiBvZiBvdXRwdXQgdGV4dCwgYW5kIGFwcGxpY2F0aW9uIGZsb3cgbWFuYWdlbWVudC4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPgorICAgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCI+Tm90TWF0Y2hUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgbm90IGEgc3Vic3RyaW5nIG9mIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPk1hdGNoVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNYXRjaFRhZy5odG1sIj5OZXN0ZWRNYXRjaFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRNYXRjaFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIj5OZXN0ZWROb3RNYXRjaFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWROb3RNYXRjaFRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1hdGNoVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL01lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ1ZjU5NQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL01lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWVzc2FnZXNOb3RQcmVzZW50VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NZXNzYWdlc05vdFByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+TWVzc2FnZXNOb3RQcmVzZW50VGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPgorICAgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj5NZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj5NZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzZTRhY2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbApAQCAtMCwwICsxLDIwMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1lc3NhZ2VzUHJlc2VudFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWVzc2FnZXNQcmVzZW50VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NZXNzYWdlc1ByZXNlbnRUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPk1lc3NhZ2VzUHJlc2VudFRhZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlICJzdHJ1dHMtbG9naWMiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluIG1hbmFnaW5nCitjb25kaXRpb25hbCBnZW5lcmF0aW9uIG9mIG91dHB1dCB0ZXh0LCBsb29waW5nIG92ZXIgb2JqZWN0IGNvbGxlY3Rpb25zCitmb3IgcmVwZXRpdGl2ZSBnZW5lcmF0aW9uIG9mIG91dHB1dCB0ZXh0LCBhbmQgYXBwbGljYXRpb24gZmxvdyBtYW5hZ2VtZW50LiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+CisgICB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TWVzc2FnZXNQcmVzZW50VGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPk1lc3NhZ2VzUHJlc2VudFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPk1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBub3QgcHJlc2VudCBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5NZXNzYWdlc1ByZXNlbnRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5NZXNzYWdlc1ByZXNlbnRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9Ob3RFbXB0eVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvTm90RW1wdHlUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjI2NjBmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvTm90RW1wdHlUYWcuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdEVtcHR5VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RFbXB0eVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVtcHR5VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5vdEVtcHR5VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdEVtcHR5VGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVtcHR5VGFnLmh0bWwiPk5vdEVtcHR5VGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPgorICAgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVtcHR5VGFnLmh0bWwiPk5vdEVtcHR5VGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFbXB0eVRhZy5odG1sIj5Ob3RFbXB0eVRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCI+TmVzdGVkTm90RW1wdHlUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTm90RW1wdHlUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFbXB0eVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOb3RFbXB0eVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9Ob3RFcXVhbFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvTm90RXF1YWxUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGNhN2U2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvTm90RXF1YWxUYWcuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdEVxdWFsVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVxdWFsVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5vdEVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdEVxdWFsVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVxdWFsVGFnLmh0bWwiPk5vdEVxdWFsVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPgorICAgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVxdWFsVGFnLmh0bWwiPk5vdEVxdWFsVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIj5Ob3RFcXVhbFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCI+TmVzdGVkTm90RXF1YWxUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTm90RXF1YWxUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOb3RFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9Ob3RNYXRjaFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvTm90TWF0Y2hUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGU3MGNjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvTm90TWF0Y2hUYWcuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdE1hdGNoVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RNYXRjaFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5vdE1hdGNoVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdE1hdGNoVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPk5vdE1hdGNoVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPgorICAgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPk5vdE1hdGNoVGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sIj5Ob3RNYXRjaFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCI+TmVzdGVkTm90TWF0Y2hUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTm90TWF0Y2hUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOb3RNYXRjaFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9Ob3RQcmVzZW50VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9Ob3RQcmVzZW50VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMzODg0NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL05vdFByZXNlbnRUYWcuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdFByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdFByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5vdFByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90UHJlc2VudFRhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwiPk5vdFByZXNlbnRUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+CisgICB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sIj5Ob3RQcmVzZW50VGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwiPk5vdFByZXNlbnRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkTm90UHJlc2VudFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWROb3RQcmVzZW50VGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOb3RQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL1ByZXNlbnRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL1ByZXNlbnRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjMwZGU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvUHJlc2VudFRhZy5odG1sCkBAIC0wLDAgKzEsMjAyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUHJlc2VudFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUHJlc2VudFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5QcmVzZW50VGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+UHJlc2VudFRhZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlICJzdHJ1dHMtbG9naWMiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluIG1hbmFnaW5nCitjb25kaXRpb25hbCBnZW5lcmF0aW9uIG9mIG91dHB1dCB0ZXh0LCBsb29waW5nIG92ZXIgb2JqZWN0IGNvbGxlY3Rpb25zCitmb3IgcmVwZXRpdGl2ZSBnZW5lcmF0aW9uIG9mIG91dHB1dCB0ZXh0LCBhbmQgYXBwbGljYXRpb24gZmxvdyBtYW5hZ2VtZW50LiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+CisgICB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPlByZXNlbnRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPlByZXNlbnRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbCI+Tm90UHJlc2VudFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBub3QgcHJlc2VudCBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+UHJlc2VudFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj5QcmVzZW50VGFnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE5vdFByZXNlbnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTm90UHJlc2VudFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwiPk5lc3RlZFByZXNlbnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkUHJlc2VudFRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9SZWRpcmVjdFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvUmVkaXJlY3RUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDVlZjJlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvUmVkaXJlY3RUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlJlZGlyZWN0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5SZWRpcmVjdFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1JlZGlyZWN0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlZGlyZWN0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlJlZGlyZWN0VGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5SZWRpcmVjdFRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVkaXJlY3RUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9kb2MtZmlsZXMvbG9naWNVTUwuZ2lmIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9kb2MtZmlsZXMvbG9naWNVTUwuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNGJjZjkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2RvYy1maWxlcy9sb2dpY1VNTC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLWZyYW1lLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2UtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjU3ZjlhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9BPjwvRk9OVD4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0NsYXNzZXM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJDb21wYXJlVGFnQmFzZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbXBhcmVUYWdCYXNlPC9BPgorPEJSPgorPEEgSFJFRj0iQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPgorPEJSPgorPEEgSFJFRj0iRW1wdHlUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5FbXB0eVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RXF1YWxUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJGb3J3YXJkVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Rm9yd2FyZFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkdyZWF0ZXJFcXVhbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkdyZWF0ZXJFcXVhbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkdyZWF0ZXJUaGFuVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+R3JlYXRlclRoYW5UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJJdGVyYXRlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+SXRlcmF0ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ikl0ZXJhdGVUZWkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JdGVyYXRlVGVpPC9BPgorPEJSPgorPEEgSFJFRj0iTGVzc0VxdWFsVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TGVzc0VxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTGVzc1RoYW5UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5MZXNzVGhhblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik1hdGNoVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TWF0Y2hUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NZXNzYWdlc1ByZXNlbnRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJOb3RFbXB0eVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5vdEVtcHR5VGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTm90RXF1YWxUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Ob3RFcXVhbFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5vdE1hdGNoVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Tm90TWF0Y2hUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJOb3RQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Tm90UHJlc2VudFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QcmVzZW50VGFnPC9BPgorPEJSPgorPEEgSFJFRj0iUmVkaXJlY3RUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZWRpcmVjdFRhZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0NTBhNzkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sCkBAIC0wLDAgKzEsNjU2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYworPC9IMj4KK1RoZSAic3RydXRzLWxvZ2ljIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbiBtYW5hZ2luZworY29uZGl0aW9uYWwgZ2VuZXJhdGlvbiBvZiBvdXRwdXQgdGV4dCwgbG9vcGluZyBvdmVyIG9iamVjdCBjb2xsZWN0aW9ucworZm9yIHJlcGV0aXRpdmUgZ2VuZXJhdGlvbiBvZiBvdXRwdXQgdGV4dCwgYW5kIGFwcGxpY2F0aW9uIGZsb3cgbWFuYWdlbWVudC4KKzxQPgorPEI+U2VlOjwvQj4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxBIEhSRUY9IiNwYWNrYWdlX2Rlc2NyaXB0aW9uIj48Qj5EZXNjcmlwdGlvbjwvQj48L0E+Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJDb21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+PC9URD4KKzxURD5BYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBjb21wYXJpc29uIHRhZ3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJDb25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPFREPkFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIHRoZSB2YXJpb3VzIGNvbmRpdGlvbmFsIGV2YWx1YXRpb24gdGFncy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkVtcHR5VGFnLmh0bWwiPkVtcHR5VGFnPC9BPjwvQj48L1REPgorPFREPkV2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIGVtcHR5IGZvciB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJFcXVhbFRhZy5odG1sIj5FcXVhbFRhZzwvQT48L0I+PC9URD4KKzxURD5FdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgYW5kIHZhbHVlIGFyZSBlcXVhbC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkZvcndhcmRUYWcuaHRtbCI+Rm9yd2FyZFRhZzwvQT48L0I+PC9URD4KKzxURD5QZXJmb3JtIGEgZm9yd2FyZCBvciByZWRpcmVjdCB0byBhIHBhZ2UgdGhhdCBpcyBsb29rZWQgdXAgaW4gdGhlCisgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkIHdpdGggb3VyIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iR3JlYXRlckVxdWFsVGFnLmh0bWwiPkdyZWF0ZXJFcXVhbFRhZzwvQT48L0I+PC9URD4KKzxURD5FdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJHcmVhdGVyVGhhblRhZy5odG1sIj5HcmVhdGVyVGhhblRhZzwvQT48L0I+PC9URD4KKzxURD5FdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgaXMgZ3JlYXRlciB0aGFuIHRoZSBzcGVjaWZpZWQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJJdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+Q3VzdG9tIHRhZyB0aGF0IGl0ZXJhdGVzIHRoZSBlbGVtZW50cyBvZiBhIGNvbGxlY3Rpb24sIHdoaWNoIGNhbiBiZQorIGVpdGhlciBhbiBhdHRyaWJ1dGUgb3IgdGhlIHByb3BlcnR5IG9mIGFuIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ikl0ZXJhdGVUZWkuaHRtbCI+SXRlcmF0ZVRlaTwvQT48L0I+PC9URD4KKzxURD5JbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+aXRlcmF0ZTwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ikxlc3NFcXVhbFRhZy5odG1sIj5MZXNzRXF1YWxUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTGVzc1RoYW5UYWcuaHRtbCI+TGVzc1RoYW5UYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGlzIGxlc3MgdGhhbiB0aGUgc3BlY2lmaWVkIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgYSBzdWJzdHJpbmcgb2YgdGhlIHNwZWNpZmllZCB2YXJpYWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj5NZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgbm90IHByZXNlbnQgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5NZXNzYWdlc1ByZXNlbnRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RXZhbHV0ZSB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiBhbiA8Y29kZT5BY3Rpb25NZXNzYWdlczwvY29kZT4gY2xhc3Mgb3IgYQorIGNsYXNzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhbiA8Y29kZT5BY3Rpb25NZXNzYWdlczwvY29kZT4gY2xhc3MgaXMgaW4KKyByZXF1ZXN0IHNjb3BlIHVuZGVyIHRoZSBzcGVjaWZpZWQga2V5IGFuZCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgbWVzc2FnZSBpbiB0aGUKKyBjbGFzcyBvciBmb3IgdGhlIHByb3BlcnR5IHNwZWNpZmllZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5vdEVtcHR5VGFnLmh0bWwiPk5vdEVtcHR5VGFnPC9BPjwvQj48L1REPgorPFREPkV2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIG5vdCBlbXB0eSBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTm90RXF1YWxUYWcuaHRtbCI+Tm90RXF1YWxUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGFuZCB2YWx1ZSBhcmUgbm90IGVxdWFsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTm90TWF0Y2hUYWcuaHRtbCI+Tm90TWF0Y2hUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgbm90IGEgc3Vic3RyaW5nIG9mIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOb3RQcmVzZW50VGFnLmh0bWwiPk5vdFByZXNlbnRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgbm90IHByZXNlbnQgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlByZXNlbnRUYWcuaHRtbCI+UHJlc2VudFRhZzwvQT48L0I+PC9URD4KKzxURD5FdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBwcmVzZW50IGZvciB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSZWRpcmVjdFRhZy5odG1sIj5SZWRpcmVjdFRhZzwvQT48L0I+PC9URD4KKzxURD5HZW5lcmF0ZSBhIFVSTC1lbmNvZGVkIHJlZGlyZWN0IHRvIHRoZSBzcGVjaWZpZWQgVVJJLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworCis8UD4KKzxBIE5BTUU9InBhY2thZ2VfZGVzY3JpcHRpb24iPjwhLS0gLS0+PC9BPjxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIERlc2NyaXB0aW9uCis8L0gyPgorCis8UD4KKzxwPlRoZSAic3RydXRzLWxvZ2ljIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbiBtYW5hZ2luZworY29uZGl0aW9uYWwgZ2VuZXJhdGlvbiBvZiBvdXRwdXQgdGV4dCwgbG9vcGluZyBvdmVyIG9iamVjdCBjb2xsZWN0aW9ucworZm9yIHJlcGV0aXRpdmUgZ2VuZXJhdGlvbiBvZiBvdXRwdXQgdGV4dCwgYW5kIGFwcGxpY2F0aW9uIGZsb3cgbWFuYWdlbWVudC4KKzwvcD4KKzxhIG5hbWU9ImRvYy5EZXNjcmlwdGlvbiI+PC9hPgorICAgIAorPHA+ICA8L3A+Cis8ZGl2IGFsaWduPSJDZW50ZXIiPiA8YSBocmVmPSIjZG9jLkludHJvZHVjdGlvbiI+W0ludHJvZHVjdGlvbl08L2E+CisgPGEgaHJlZj0iI2RvYy5GdW5jdGlvbmFsaXR5Ij5bTG9naWMgICBGdW5jdGlvbmFsaXR5XTwvYT4KKyA8YSBocmVmPSIjZG9jLlByb3BlcnRpZXMiPltMb2dpYyBQcm9wZXJ0aWVzXTwvYT4KKyA8YSBocmVmPSIjZG9jLkV4YW1wbGVzIj5bTG9naWMgICBFeGFtcGxlc108L2E+CisgPC9kaXY+CisgICAKKzxwPjwvcD4KKyAgICAKKzxociAvPSIiPiA8YSBuYW1lPSJkb2MuSW50cm8iPjwvYT4KKyAKKzxoMz5JbnRyb2R1Y3Rpb248YSBuYW1lPSJkb2MuSW50cm9kdWN0aW9uIj48L2E+Cis8L2gzPgorICAgIAorPHA+ICAgICBUaGUgTG9naWMgbGlicmFyeSBzdXBwbGllcyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBmb3IgbWFuaXB1bGF0aW5nCitwcmVzZW50YXRpb24gbG9naWMgICAgIHdpdGhvdXQgdGhlIHVzZSBvZiBzY3JpcHRsZXRzLjwvcD4KKzxwPjxicj4KKzwvcD4KKzxkaXYgYWxpZ249IkNlbnRlciI+PGltZyBzcmM9ImRvYy1maWxlcy9sb2dpY1VNTC5naWYiIGFsdD0iTG9naWMgVGFnIFVNTCIgPgorPGJyPgorICAgPC9kaXY+Cis8cD48L3A+CisgICA8YSBuYW1lPSJkb2MuRnVuY3Rpb25hbGl0eSI+PC9hPgorIAorPGgzPkxvZ2ljIFRhZyBGdW5jdGlvbmFsaXR5PGEgbmFtZT0iZG9jLkZ1bmN0aW9uYWxpdHkiPjwvYT4KKzwvaDM+CisgCis8cD4gVGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGxvZ2ljIHRhZ3MgY2FuIGJlIGRpdmlkZWQgaW50byBmb3VyIGdyb3Vwczo8L3A+CisgCis8cD48Yj5WYWx1ZSBDb21wYXJpc29ucyAtPC9iPiBUaGUgcHVycG9zZSBvZiB0aGVzZSB0YWdzIGlzIHRvIHByaW50IG91dCB0aGUKK2JvZHkgICBvZiB0aGUgdGFnIGlmIHRoZSBjb21wYXJpc29uIGV2YWx1YXRlcyB0byA8aT50cnVlLiA8L2k+PC9wPgorIAorPHVsPgorICAgPGxpPjxiPjxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9zdHJ1dHMtbG9naWMuaHRtbCNlcXVhbCI+ZXF1YWwsPC9hPgorIDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9zdHJ1dHMtbG9naWMuaHRtbCNub3RFcXVhbCI+bm90RXF1YWw8L2E+CisgICAgPC9iPiAgIDwvbGk+CisgICA8bGk+PGI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1sb2dpYy5odG1sI2dyZWF0ZXJFcXVhbCI+Z3JlYXRlckVxdWFsPC9hPgorLCA8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWxvZ2ljLmh0bWwjbGVzc0VxdWFsIj5sZXNzRXF1YWw8L2E+CisgICAgPC9iPjwvbGk+CisgICA8bGk+PGI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1sb2dpYy5odG1sI2dyZWF0ZXJUaGFuIj5ncmVhdGVyVGhhbjwvYT4KKyw8YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWxvZ2ljLmh0bWwjbGVzc1RoYW4iPiAgICAgbGVzc1RoYW48L2E+CisgICAgPC9iPjwvbGk+CisgCis8L3VsPgorIAorPHA+PGI+U3Vic3RyaW5nIE1hdGNoaW5nIC08L2I+IFRoZSBwdXJwb3NlIG9mIHRoZXNlIHRhZ3MgaXMgdG8gbWF0Y2ggc3Vic3RyaW5ncyAKKyAgaW5zaWRlIG9mIG90aGVyIFN0cmluZ3M8L3A+CisgCis8dWw+CisgICA8bGk+PGI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1sb2dpYy5odG1sI21hdGNoIj5tYXRjaDwvYT4KKywgPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1sb2dpYy5odG1sI25vdE1hdGNoIj5ub3RNYXRjaDwvYT4KKyAgICA8L2I+PC9saT4KKyAKKzwvdWw+CisgCis8cD48Yj5QcmVzZW50YXRpb24gTG9jYXRpb24gLTwvYj4gVGhlIHB1cnBvc2Ugb2YgdGhlc2UgdGFncyBpcyB0byBjaGFuZ2UKK3RoZSBsb2NhdGlvbiAgIG9mIHRoZSBwcmVzZW50YXRpb24gcGFnZTwvcD4KKyAKKzx1bD4KKyAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWxvZ2ljLmh0bWwjZm9yd2FyZCI+PGI+Zm9yd2FyZDwvYj48L2E+CisgIDwvbGk+CisgICA8bGk+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy1sb2dpYy5odG1sI3JlZGlyZWN0Ij48Yj5yZWRpcmVjdDwvYj48L2E+CisgIDwvbGk+CisgCis8L3VsPgorIAorPHA+PGI+Q29sbGVjdGlvbiBVdGlsaXRpZXMgLTwvYj5UaGUgcHVycG9zZSBvZiB0aGVzZSB0YWdzIGlzIHRvIGhhbmRsZSBDb2xsZWN0aW9uczwvcD4KKyAKKzx1bD4KKyAgIDxsaT48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLWxvZ2ljLmh0bWwjaXRlcmF0ZSI+PGI+aXRlcmF0ZTwvYj48L2E+CisgPC9saT4KKyAKKzwvdWw+CisgCis8aDM+TG9naWMgVGFnIFByb3BlcnRpZXM8YSBuYW1lPSJkb2MuUHJvcGVydGllcyI+PC9hPgorPC9oMz4KKyAKKzxwPkVhY2ggb2YgdGhlIGZvdXIgZ3JvdXBzIG9mIGxvZ2ljIHRhZ3MgaGF2ZSBhIGNvbW1vbiBzZXQgb2YgYXR0cmlidXRlcworYXNzb2NpYXRlZCAgIHdpdGggdGhlbS4gOjwvcD4KKyAKKzxibG9ja3F1b3RlPiAgIAorICA8cD48Yj5WYWx1ZSBDb21wYXJpc29uczwvYj4gKGVxdWFsLCBub3RFcXVhbCwgZ3JlYXRlckVxdWFsLCBsZXNzRXF1YWwsCitncmVhdGVyVGhhbiwgICAgIGxlc3NUaGFuLCBwcmVzZW50LCBub3RQcmVzZW50KTwvcD4KKyAgIAorICA8cD5FYWNoIG9mIHRoZSB2YWx1ZSBjb21wYXJpc29uIHRhZ3MgdGFrZXMgYSA8aT52YWx1ZTwvaT4gYW5kIGNvbXBhcmVzCitpdCB0byAgICAgdGhlIHZhbHVlIG9mIGEgY29tcGFyaXNvbiBhdHRyaWJ1dGUuIElmIHRoZSB2YWx1ZSBnaXZlbiBjYW4gYmUKK3N1Y2Nlc3NmdWxseSAgICAgY29udmVydGVkIHRvIGEgPGk+ZmxvYXQ8L2k+IG9yIDxpPmRvdWJsZTwvaT4sIHRoZW4gYSBudW1iZXIKK2NvbXBhcmlzb24gaXMgICAgIHBlcmZvcm1lZCBvbiB0aGUgdmFsdWUgZ2l2ZW4gYW5kIHRoZSB2YWx1ZSBvZiB0aGUgY29tcGFyaXNvbgorYXR0cmlidXRlLiBPdGhlcndpc2UgICAgIGEgU3RyaW5nIGNvbXBhcmlzb24gaXMgcGVyZm9ybWVkLiBZb3UgaGF2ZSB0byBzcGVjaWZ5CitvbmUgb2YgdGhlIGNvbXBhcmlzb24gICAgIGF0dHJpYnV0ZXM6IDxpPmNvb2tpZTwvaT4sIDxpPmhlYWRlcjwvaT4sIDxpPnBhcmFtZXRlcjwvaT4KKywgPGk+cHJvcGVydHk8L2k+ICAgICBvciA8aT5uYW1lLiA8L2k+Rm9yIGVhY2ggb2YgdGhlIGV4YW1wbGVzLCB0aGUgdGFnICI8aT4KK3NvbWVDb21wYXJpc29uVGFnIjwvaT5jYW4gICAgIGJlIHJlcGxhY2VkIGJ5IGFueSBvZiB0aGUgdmFsdWUgY29tcGFyaXNvbgordGFncy48L3A+CisgICAKKyAgPHVsPgorICAgICA8bGk+dmFsdWUgLSB0aGUgdmFsdWUgdG8gd2hpY2ggdGhpcyB0YWcgaXMgZ29pbmcgdG8gY29tcGFyZSwgdXNlZCBpbgorY29uanVuY3Rpb24gICAgICAgd2l0aCBvbmUgb2YgdGhlIGNvbXBhcmlzb24gYXR0cmlidXRlczogPGk+Y29va2llPC9pPiwgPGk+CitoZWFkZXI8L2k+LCA8aT5wYXJhbWV0ZXI8L2k+LCAgICAgICA8aT5hbmQgcHJvcGVydHk8L2k+IGFuZC9vciA8aT5uYW1lLiA8L2k+PC9saT4KKyAgICAgPGxpPmNvb2tpZSAtIHRoZSBuYW1lIG9mIHRoZSBjb29raWUgdG8gY29tcGFyZSB0byA8aT52YWx1ZTwvaT4gICAgIAorIAorICAgICAgPHVsPgorICAgICAgICAgPGxpPmV4YW1wbGU6ICAgICAgICAgICAKKyAgICAgICAgICA8cHJlPiZsdDtsb2dpYzo8aT5zb21lQ29tcGFyaXNvblRhZzwvaT4gdmFsdWU9InNvbWVVc2VyTmFtZSIgY29va2llPSJ1c2VyTmFtZSImZ3Q7PGJyPiAgVXNlciBMb2dnZWQgSW48YnI+Jmx0Oy9sb2dpYzo8aT5zb21lQ29tcGFyaXNvblRhZzwvaT4mZ3Q7PGJyPjwvcHJlPgorICAgICAgICAgPC9saT4KKyAgICAgICAKKyAgICAgIDwvdWw+CisgICAgIDwvbGk+CisgICAgIDxsaT5oZWFkZXIgLSB0aGUgbmFtZSBvZiB0aGUgSFRUUCBoZWFkZXIgdG8gY29tcGFyZSB0byA8aT52YWx1ZTwvaT4gCisgICAgIAorICAgICAgPHVsPgorICAgICAgICAgPGxpPmV4YW1wbGU6ICAgICAgICAgICAKKyAgICAgICAgICA8cHJlPiZsdDtsb2dpYzo8aT5zb21lQ29tcGFyaXNvblRhZzwvaT4gdmFsdWU9ImVuX1VTIiBoZWFkZXI9IkFjY2VwdC1MYW5ndWFnZSImZ3Q7PGJyPiAgV2VsY29tZSBFbmdsaXNoLXNwZWFraW5nIFVzZXIqPGJyPiZsdDsvbG9naWM6PGk+c29tZUNvbXBhcmlzb25UYWc8L2k+Jmd0Ozxicj48L3ByZT4KKyAgICAgICAgIDwvbGk+CisgICAgICAgICA8bGk+ICAgICAgICAgICAKKyAgICAgICAgICA8cD4qTm90ZTogU2VlIHRoZSBzZWN0aW9uIGluIHRoZSB1c2VyJ3MgZ3VpZGUgb24gPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL2J1aWxkaW5nX3ZpZXcuaHRtbCNpMThuIj4KK0ludGVybmF0aW9uYWxpemVkICAgICAgICAgICAgIE1lc3NhZ2VzPC9hPgorIHRvIGRvIHRoaW5ncyBsaWtlIHRoaXMgYmV0dGVyLjwvcD4KKyAgICAgICAgIDwvbGk+CisgICAgICAgCisgICAgICA8L3VsPgorICAgICA8L2xpPgorICAgICA8bGk+bmFtZSAtIHRoZSB2YXJpYWJsZSB0byBiZSBjb21wYXJlZCB0byA8aT52YWx1ZTwvaT4gaXMgdGhlIEpTUCBiZWFuCitzcGVjaWZpZWQgICAgICAgYnkgdGhpcyBhdHRyaWJ1dGUsIGlmIHByb3BlcnR5IGlzIG5vdCBzcGVjaWZpZWQsIG9yIHRoZSB2YWx1ZQorb2YgdGhlIHNwZWNpZmllZCAgICAgICBwcm9wZXJ0eSBvZiB0aGlzIGJlYW4sIGlmIHByb3BlcnR5IGlzIHNwZWNpZmllZC4gCisgICAgIAorICAgICAgPHVsPgorICAgICAgICAgPGxpPmV4YW1wbGU6ICAgICAgICAgICAKKyAgICAgICAgICA8cHJlPiZsdDslPGJyPiAgU3RyaW5nIHRlc3RTdHJpbmcgPSAicGFudGFsb25lcyI7PGJyPiAgcGFnZUNvbnRleHQuc2V0QXR0cmlidXRlKCJ0ZXN0U3RyaW5nIiwgdGVzdFN0cmluZywgUGFnZUNvbnRleHQuUEFHRV9TQ09QRSk7PGJyPiUmZ3Q7PGJyPiZsdDtqc3A6dXNlQmVhbiBpZD0idGVzdFN0cmluZyIgc2NvcGU9InBhZ2UiIHR5cGU9ImphdmEubGFuZy5TdHJpbmciIC8mZ3Q7PGJyPiZsdDtsb2dpYzo8aT5zb21lQ29tcGFyaXNvblRhZzwvaT4gbmFtZT0idGVzdFN0cmluZyIgdmFsdWU9InBhbnRhbG9uZXMiJmd0Ozxicj4gIFVzdGVkIHRpZW5lIHBhbnRhbG9uZXMhPGJyPiZsdDsvbG9naWM6PGk+c29tZUNvbXBhcmlzb248L2k+Jmd0Ozxicj48L3ByZT4KKyAgICAgICAgIDwvbGk+CisgICAgICAgCisgICAgICA8L3VsPgorICAgICA8L2xpPgorICAgICA8bGk+cGFyYW1ldGVyIC0gdGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGNvbXBhcmUgdG8gPGk+dmFsdWU8L2k+CisgICAgICAgCisgICAgICA8dWw+CisgICAgICAgICA8bGk+ZXhhbXBsZTogICAgICAgICAgIAorICAgICAgICAgIDxwcmU+Jmx0O2xvZ2ljOjxpPnNvbWVDb21wYXJpc29uVGFnPC9pPiB2YWx1ZT0iIiBwYXJhbWV0ZXI9InVzZXJuYW1lIiZndDs8YnI+ICBFcnJvcjogYSB1c2VybmFtZSBtdXN0IGJlIHNwZWNpZmllZDxicj4mbHQ7L2xvZ2ljOjxpPnNvbWVDb21wYXJpc29uVGFnPC9pPiZndDs8YnI+PC9wcmU+CisgICAgICAgICA8L2xpPgorICAgICAgIAorICAgICAgPC91bD4KKyAgICAgPC9saT4KKyAgICAgPGxpPnByb3BlcnR5IC0gdGhlIHZhcmlhYmxlIHRvIGJlIGNvbXBhcmVkIHdpdGggPGk+dmFsdWU8L2k+IGlzIHRoZQorcHJvcGVydHkgICAgICAgKG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZSBhdHRyaWJ1dGUpIHNwZWNpZmllZCBieQordGhpcyBhdHRyaWJ1dGUuICAgICAgIFRoZSBwcm9wZXJ0eSByZWZlcmVuY2UgY2FuIGJlIHNpbXBsZSwgbmVzdGVkLCBhbmQvb3IKK2luZGV4ZWQuIDxpPnByb3BlcnR5PC9pPiAgICAgICBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggPGk+bmFtZTwvaT4gdG8KK3NwZWNpZnkgYSBwcm9wZXJ0eSBpbiB0aGUgYmVhbiAgICAgICBzcGVjaWZpZWQgYnkgPGk+bmFtZTwvaT4uIEZvciB0aGUgdHlwZQorb2Ygc3ludGF4IHVzZWQgZm9yIHByb3BlcnR5LCBzZWUgICAgICAgdGhlIHVzZXJzIGd1aWRlIG9uIHRoZSBCZWFuIFRhZ3MuPC9saT4KKyAgICAgPGxpPnNjb3BlIC0gdGhlIGJlYW4gc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gbmFtZWQKK2J5IHRoZSAgICAgICBuYW1lIHByb3BlcnR5LCBvciAiYW55IHNjb3BlIiBpZiBub3Qgc3BlY2lmaWVkLiBQb3NzaWJsZSB2YWx1ZXMKK2FyZSAicGFnZSIsICAgICAgICJyZXF1ZXN0IiwgInNlc3Npb24iLCAiYXBwbGljYXRpb24iLCBvciAiYW55ICAgICAgIHNjb3BlIgorICAgIDwvbGk+CisgICAKKyAgPC91bD4KKyAgIAorICA8cD48Yj5TdWJzdHJpbmcgTWF0Y2hpbmc8L2I+IChtYXRjaCwgbm90TWF0Y2gpPC9wPgorICAgCisgIDxwPlRoZSBzdWJzdHJpbmcgbWF0Y2hpbmcgdGFncyB0YWtlIGFsbCB0aGUgc2FtZSBhcmd1bWVudHMgYXMgdGhlIHZhbHVlCitjb21wYXJpc29uICAgICB0YWdzLiBZb3UgY29tcGFyZSB0aGUgU3RyaW5nIHNwZWNpZmllZCBieSA8aT52YWx1ZTwvaT4gdG8KK2FueSBvZiB0aGUgY29tcGFyaXNvbiAgICAgdmFsdWVzIHlvdSBnaXZlIGl0LCBzcGVjaWZpZWQgYnkgPGk+Y29va2llPC9pPiwKKyAgPGk+aGVhZGVyPC9pPiwgPGk+cGFyYW1ldGVyPC9pPiwgICAgIDxpPnByb3BlcnR5PC9pPiBvciA8aT5uYW1lLjwvaT4gTm90ZQordGhhdCBpbiB0aGUgZXhhbXBsZXMsIDxpPm1hdGNoVGFnPC9pPiAgICAgY29ycmVzcG9uZHMgZWl0aGVyIHRoZSA8aT5tYXRjaAorICA8L2k+b3IgPGk+bm90TWF0Y2g8L2k+IHRhZy4gTWF0Y2hpbmcgdGFncyAgICAgYWxzbyBoYXZlIGFuIGFkZGl0aW9uYWwgPGk+Citsb2NhdGlvbjwvaT4gYXR0cmlidXRlIGFkZGVkOjwvcD4KKyAgIAorICA8dWw+CisgICAgIDxsaT5sb2NhdGlvbiAtIGhhcyB0d28gcG9zc2libGUgdmFsdWVzLCAic3RhcnQiIGFuZCAiZW5kIi4gICAgICAgSWYKKyJzdGFydCIsIHRoZSBzdWJzdHJpbmcgaXMgYXR0ZW1wdGVkIHRvIGJlIG1hdGNoZWQgYXQgdGhlIGJlZ2lubmluZyAgICAgIAorb2YgdGhlIFN0cmluZywgaWYgImVuZCIsIHRoZW4gdGhlIHN1YnN0cmluZyBpcyBhdHRlbXB0ZWQgdG8gYmUgICAgICAgbWF0Y2hlZAordG8gdGhlIGVuZCBvZiB0aGUgU3RyaW5nICAgICAgIAorICAgICAgPHVsPgorICAgICAgICAgPGxpPmV4YW1wbGU6ICAgICAgICAgICAKKyAgICAgICAgICA8cHJlPiZsdDtsb2dpYzo8aT5tYXRjaFRhZzwvaT4gcGFyYW1ldGVyPSJhY3Rpb24iIHZhbHVlPSJwcm9jZXNzTG9naW4iIGxvY2F0aW9uPSJzdGFydCImZ3Q7PGJyPiAgUHJvY2Vzc2luZyBMb2dpbi4uLi48YnI+Jmx0Oy9sb2dpYzo8aT5tYXRjaFRhZzwvaT4mZ3Q7PGJyPjxicj5JbiB0aGlzIGV4YW1wbGUsIGEgcmVxdWVzdCBwYXJhbWV0ZXIgImFjdGlvbiIgd2FzIGNvbXBhcmVkIHRvIHNlZSBpZjxicj5pdHMgdmFsdWUgc3RhcnRlZCB3aXRoIHRoZSBTdHJpbmcgInByb2Nlc3NMb2dpbiIuIEluIHRoaXMgY2FzZSw8YnI+PGk+bWF0Y2hUYWc8L2k+IHdvdWxkIGhhdmUgdG8gYmUgJmx0O2xvZ2ljOm1hdGNoJmd0Oy48YnI+PC9wcmU+CisgICAgICAgICA8L2xpPgorICAgICAgIAorICAgICAgPC91bD4KKyAgICAgPC9saT4KKyAgIAorICA8L3VsPgorICAgCisgIDxwPjxiPlByZXNlbnRhdGlvbiBMb2NhdGlvbjwvYj4gKGZvcndhcmQsIHJlZGlyZWN0KTwvcD4KKyAgIAorICA8cD5UaGUgPGk+cmVkaXJlY3Q8L2k+IHRhZyBpcyByZXNwb3NpYmxlIGZvciBzZW5kaW5nIGEgcmUtZGlyZWN0IHRvIHRoZQorY2xpZW50J3MgICAgIGJyb3dzZXIsIGNvbXBsZXRlIHdpdGggVVJMLXJld3JpdGluZyBpZiBpdCdzIHN1cHBvcnRlZCBieSB0aGUKK2NvbnRhaW5lci4gSXRzICAgICBhdHRyaWJ1dGVzIGFyZSBjb25zaXN0ZW50IHdpdGggdGhlIFN0cnV0cyBIVE1MIDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0cnV0cy1odG1sLmh0bWwjbGluayI+PGNvZGU+CitsaW5rPC9jb2RlPjwvYT4KKyAgICAgdGFnLiBUaGUgYmFzZSBVUkwgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB3aGljaCBvZiB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgCisgICAgeW91IHNwZWNpZnkgKHlvdSBtdXN0IHNwZWNpZnkgZXhhY3RseSBvbmUgb2YgdGhlbSk6PC9wPgorICAgCisgIDx1bD4KKyAgICAgPGxpPiBmb3J3YXJkIC0gVXNlIHRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSBhcyB0aGUgbmFtZSBvZiBhIGdsb2JhbAorQWN0aW9uRm9yd2FyZCAgICAgICB0byBiZSBsb29rZWQgdXAsIGFuZCB1c2UgdGhlIGNvbnRleHQtcmVsYXRpdmUgVVJJIGZvdW5kCit0aGVyZS4gPC9saT4KKyAgICAgPGxpPmhyZWYgLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIHVuY2hhbmdlZC4gPC9saT4KKyAgICAgPGxpPnBhZ2UgLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIGEgY29udGV4dC1yZWxhdGl2ZSBVUkksCithbmQgICAgICAgZ2VuZXJhdGUgYSBzZXJ2ZXItcmVsYXRpdmUgVVJJIGJ5IGluY2x1ZGluZyB0aGUgY29udGV4dCBwYXRoLiA8L2xpPgorICAgCisgIDwvdWw+CisgICAKKyAgPHA+VGhlIDxpPmZvcndhcmQ8L2k+IHRhZyBpcyByZXNwb25zaWJsZSBmb3IgZWl0aGVyIHJlZGlyZWN0aW5nIG9yIGZvcndhcmRpbmcgCisgICAgdG8gYSBzcGVjaWZpZWQgZ2xvYmFsIGFjdGlvbiBmb3J3YXJkLiBUbyBkZWZpbmUgYSBnbG9iYWwgQWN0aW9uRm9yd2FyZCwKK3NlZSAgICAgVGhlIDxhIGhyZWY9Ii4uLy4uLy4uLy4uLy4uLy4uL3VzZXJHdWlkZS9idWlsZGluZ19jb250cm9sbGVyLmh0bWwjY29uZmlnIj4KK0FjdGlvbiAgICAgTWFwcGluZ3MgQ29uZmlndXJhdGlvbiBGaWxlPC9hPgorLiBZb3UgY2FuIHNwZWNpZnkgd2hldGhlciB0aGUgZm9yd2FyZCByZS1kaXJlY3RzICAgICBvciBmb3J3YXJkcyB3aGVuIGV4ZWN1dGVkCitpbiB0aGUgY29uZmlnIGZpbGUuIFRoZSBmb3J3YXJkIHRhZyBoYXMgb25lIGF0dHJpYnV0ZTo8L3A+CisgICAKKyAgPHVsPgorICAgICA8bGk+bmFtZSAtIFRoZSBsb2dpY2FsIG5hbWUgb2YgdGhlIEFjdGlvbkZvcndhcmQgdG8gdXNlPC9saT4KKyAgIAorICA8L3VsPgorICAgCisgIDxwPjxiPkNvbGxlY3Rpb24gVXRpbGl0aWVzPC9iPiAoaXRlcmF0ZSk8L3A+CisgICAKKyAgPHA+VGhlIDxpPml0ZXJhdGU8L2k+IHRhZyBpcyByZXNwb25zaWJsZSBmb3IgZXhlY3V0aW5nIGl0cyBib2R5IGNvbnRlbnQKK29uY2UgICAgIGZvciBldmVyeSBlbGVtZW50IGluc2lkZSBvZiB0aGUgc3BlY2lmaWVkIENvbGxlY3Rpb24uIFRoZXJlIGlzIG9uZQorcmVxdWlyZWQgICAgIGF0dHJpYnV0ZTo8L3A+CisgICAKKyAgPHVsPgorICAgICA8bGk+aWQgLSBUaGUgbmFtZSBvZiBhIHBhZ2Ugc2NvcGUgSlNQIGJlYW4gdGhhdCB3aWxsIGNvbnRhaW4gdGhlIGN1cnJlbnQKK2VsZW1lbnQgICAgICAgb2YgdGhlIGNvbGxlY3Rpb24gb24gZWFjaCBpdGVyYXRpb248L2xpPgorICAgCisgIDwvdWw+CisgICAKKyAgPHA+VGhlIG90aGVyIGF0dHJpYnV0ZXMgYWxsb3cgZm9yIG1vcmUgZmxleGliaWxpdHkgb24gd2hpY2ggQ29sbGVjdGlvbgordG8gaXRlcmF0ZSAgICAgYW5kIGhvdyB0byBkbyBpdDo8L3A+CisgICAKKyAgPHVsPgorICAgICA8bGk+Y29sbGVjdGlvbiAtIGEgcnVudGltZSBleHByZXNzaW9uIHRoYXQgZXZhbHVhdGVzIHRvIGEgQ29sbGVjdGlvbgordG8gYmUgICAgICAgaXRlcmF0ZWQgICAgICAgCisgICAgICA8dWw+CisgICAgICAgICA8bGk+ZXhhbXBsZTogICAgICAgICAgIAorICAgICAgICAgIDxwcmU+Jmx0OyU8YnI+ICBqYXZhLnV0aWwuVmVjdG9yIHZlY3RvciA9IG5ldyBqYXZhLnV0aWwuVmVjdG9yKCk7PGJyPiAgdmVjdG9yLmFkZChuZXcgSW50ZWdlcigxMikpOzxicj4gIHZlY3Rvci5hZGQobmV3IEludGVnZXIoNSkpOzxicj4gJSZndDs8YnI+PC9wcmU+CisgICAgICAgICA8L2xpPgorICAgICAgIAorICAgICAgPC91bD4KKyAgICAgPC9saT4KKyAgIAorICA8L3VsPgorICAgCisgIDxibG9ja3F1b3RlPiAgICAgCisgICAgPGJsb2NrcXVvdGU+ICAgICAgIAorICAgICAgPHByZT4mbHQ7bG9naWM6aXRlcmF0ZSBpZD0ibXlDb2xsZWN0aW9uRWxlbWVudCIgY29sbGVjdGlvbj0iJmx0OyU9IHZlY3RvciAlJmd0OyImZ3Q7PGJyPjxpPiBEbyBzb21ldGhpbmcgd2l0aCBteUNvbGxlY3Rpb25FbGVtZW50PC9pPgorJmx0Oy9sb2dpYzppdGVyYXRlJmd0OworPC9wcmU+CisgICAgIDwvYmxvY2txdW90ZT4KKyAgIDwvYmxvY2txdW90ZT4KKyAgIAorICAgICAgPHVsPgorICAgICA8bGk+bGVuZ3RoIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgKGZyb20gdGhlIHVuZGVybHlpbmcgY29sbGVjdGlvbikgCisgICAgICB0byBiZSBpdGVyYXRlZCB0aHJvdWdoIG9uIHRoaXMgcGFnZS4gVGhpcyBjYW4gYmUgZWl0aGVyIGFuIGludGVnZXIKK3RoYXQgICAgICAgZGlyZWN0bHkgZXhwcmVzc2VzIHRoZSBkZXNpcmVkIHZhbHVlLCBvciB0aGUgbmFtZSBvZiBhIEpTUCBiZWFuCisoaW4gYW55ICAgICAgIHNjb3BlKSBvZiB0eXBlIGphdmEubGFuZy5JbnRlZ2VyIHRoYXQgZGVmaW5lcyB0aGUgZGVzaXJlZCB2YWx1ZS4KK0lmIG5vdCAgICAgICBwcmVzZW50LCB0aGVyZSB3aWxsIGJlIG5vIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucworcGVyZm9ybWVkPC9saT4KKyAgICAgPGxpPm5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgSlNQIGJlYW4gY29udGFpbmluZyB0aGUgY29sbGVjdGlvbiB0byBiZQoraXRlcmF0ZWQgICAgICAgKGlmIHByb3BlcnR5IGlzIG5vdCBzcGVjaWZpZWQpLCBvciB0aGUgSlNQIGJlYW4gd2hvc2UgcHJvcGVydHkKK2dldHRlciByZXR1cm5zICAgICAgIHRoZSBjb2xsZWN0aW9uIHRvIGJlIGl0ZXJhdGVkIChpZiBwcm9wZXJ0eSBpcyBzcGVjaWZpZWQpLiAKKyAgICAgIAorICAgICAgICAgIDx1bD4KKyAgICAgICAgIDxsaT5leGFtcGxlOiAgICAgICAgICAgCisgICAgICAgICAgICAgIDxwcmU+Jmx0OyU8YnI+CisgICAgamF2YS51dGlsLkFycmF5TGlzdCBsaXN0ID0gbmV3IGphdmEudXRpbC5BcnJheUxpc3QoKTsKKyAgICBsaXN0LmFkZCgiRmlyc3QiKTsKKyAgICBsaXN0LmFkZCgiU2Vjb25kIik7CisgICAgbGlzdC5hZGQoIlRoaXJkIik7CisgICAgbGlzdC5hZGQoIkZvdXJ0aCIpOworICAgIGxpc3QuYWRkKCJGaWZ0aCIpOworICAgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZSgibGlzdCIsIGxpc3QsIFBhZ2VDb250ZXh0LlBBR0VfU0NPUEUpOworJSZndDsKKworJmx0O2xvZ2ljOml0ZXJhdGUgaWQ9Im15Q29sbGVjdGlvbkVsZW1lbnQiIG5hbWU9Imxpc3QiJmd0OworICA8aT5EbyBzb21ldGhpbmcgd2l0aCBteUNvbGxlY3Rpb25FbGVtZW50PC9pPgorJmx0Oy9sb2dpYzppdGVyYXRlJmd0OzwvcHJlPgorICAgICAgICAgPC9saT4KKyAgICAgICAKKyAgICAgICAgICA8L3VsPgorICAgICA8L2xpPgorICAgICA8bGk+b2Zmc2V0IC0gVGhlIHplcm8tcmVsYXRpdmUgaW5kZXggb2YgdGhlIHN0YXJ0aW5nIHBvaW50IGF0IHdoaWNoCitlbnRyaWVzICAgICAgIGZyb20gdGhlIHVuZGVybHlpbmcgY29sbGVjdGlvbiB3aWxsIGJlIGl0ZXJhdGVkIHRocm91Z2guIFRoaXMKK2NhbiBiZSBlaXRoZXIgICAgICAgYW4gaW50ZWdlciB0aGF0IGRpcmVjdGx5IGV4cHJlc3NlcyB0aGUgZGVzaXJlZCB2YWx1ZSwKK29yIHRoZSBuYW1lIG9mIGEgSlNQICAgICAgIGJlYW4gKGluIGFueSBzY29wZSkgb2YgdHlwZSBqYXZhLmxhbmcuSW50ZWdlcgordGhhdCBkZWZpbmVzIHRoZSBkZXNpcmVkIHZhbHVlLiAgICAgICBJZiBub3QgcHJlc2VudCwgemVybyBpcyBhc3N1bWVkIChtZWFuaW5nCit0aGF0IHRoZSBjb2xsZWN0aW9uIHdpbGwgYmUgaXRlcmF0ZWQgICAgICAgZnJvbSB0aGUgYmVnaW5uaW5nLiA8L2xpPgorICAgICA8bGk+cHJvcGVydHkgLSBOYW1lIG9mIHRoZSBwcm9wZXJ0eSwgb2YgdGhlIEpTUCBiZWFuIHNwZWNpZmllZCBieSBuYW1lLAord2hvc2UgICAgICAgZ2V0dGVyIHJldHVybnMgdGhlIGNvbGxlY3Rpb24gdG8gYmUgaXRlcmF0ZWQuIFNlZSB0aGUgdXNlcidzCitndWlkZSBmb3IgdGhlICAgICAgIGJlYW4gdGFnIGxpYnJhcnkgZm9yIHRoZSBzeW50YXggb2YgdGhlIHByb3BlcnR5IGF0dHJpYnV0ZTwvbGk+CisgICAgIDxsaT5zY29wZSAtIFRoZSBiZWFuIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIG5hbWVkCitieSB0aGUgICAgICAgbmFtZSBwcm9wZXJ0eSwgb3IgImFueSBzY29wZSIgaWYgbm90IHNwZWNpZmllZC4gUG9zc2libGUgdmFsdWVzCithcmUgInBhZ2UiLCAgICAgICAicmVxdWVzdCIsICJzZXNzaW9uIiwgImFwcGxpY2F0aW9uIiwgb3IgImFueSAgICAgICBzY29wZSIKKyAgICAgICAgPC9saT4KKyAgICAgPGxpPnR5cGUgLSBGdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBlbGVtZW50IHRvIGJlIGV4cG9zZWQKK3Rocm91Z2ggICAgICAgdGhlIEpTUCBiZWFuIG5hbWVkIGZyb20gdGhlIGlkIGF0dHJpYnV0ZS4gSWYgbm90IHByZXNlbnQsIG5vCit0eXBlIGNvbnZlcnNpb25zICAgICAgIHdpbGwgYmUgcGVyZm9ybWVkLiBOT1RFOiBUaGUgYWN0dWFsIGVsZW1lbnRzIG9mIHRoZQorY29sbGVjdGlvbiBtdXN0IGJlIGFzc2lnbm1lbnQtY29tcGF0aWJsZSAgICAgICB3aXRoIHRoaXMgY2xhc3MsIG9yIGEgcmVxdWVzdAordGltZSBDbGFzc0Nhc3RFeGNlcHRpb24gd2lsbCBvY2N1ci4gICAgICAgCisgICAgICAgICAgPHVsPgorICAgICAgICAgPGxpPmV4YW1wbGU6ICAgICAgICAgICAKKyAgICAgICAgICAgICAgPHByZT4mbHQ7JSAgICBqYXZhLnV0aWwuQXJyYXlMaXN0IGxpc3QgPSBuZXcgamF2YS51dGlsLkFycmF5TGlzdCgpOzxicj5saXN0LmFkZCgiRmlyc3QiKTs8YnI+bGlzdC5hZGQoIlNlY29uZCIpOzxicj5saXN0LmFkZCgiVGhpcmQiKTs8YnI+bGlzdC5hZGQoIkZvdXJ0aCIpOzxicj5saXN0LmFkZCgiRmlmdGgiKTs8YnI+ICAgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZSgibGlzdCIsIGxpc3QsIFBhZ2VDb250ZXh0LlBBR0VfU0NPUEUpOzxicj4gJSZndDs8YnI+PGJyPiZsdDtsb2dpYzppdGVyYXRlIGlkPSJteUNvbGxlY3Rpb25FbGVtZW50IiBuYW1lPSJsaXN0IiB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIiZndDs8YnI+ICA8aT5EbyBzb21ldGhpbmcgd2l0aCBteUNvbGxlY3Rpb25FbGVtZW50PC9pPgorJmx0Oy9sb2dpYzppdGVyYXRlJmd0OzwvcHJlPgorICAgICAgICAgPC9saT4KKyAgICAgICAKKyAgICAgICAgICA8L3VsPgorICAgICA8L2xpPgorICAgCisgICAgICA8L3VsPgorIDwvYmxvY2txdW90ZT4KKyAKKyAgICAgIDxoMz5Mb2dpYyBFeGFtcGxlczwvaDM+CisgCisgICAgICA8YmxvY2txdW90ZT4gICAKKyAgICAgICAgPHA+PGI+VmFsdWUgQ29tcGFyaXNvbnM8L2I+PC9wPgorICAgCisgICAgICAgIDxibG9ja3F1b3RlPiAgICAgCisgICAgICAgICAgPHA+PHU+PC91Pjx1PjwvdT48dT5Mb2dpYyBFcXVpdmFsZW5jZSBUYWdzIChlcXVhbCwgbm90RXF1YWwsIGdyZWF0ZXJFcXVhbCwgCisgICAgICBsZXNzRXF1YWwsIGxlc3NUaGFuLCBncmVhdGVyVGhhbik8L3U+PC9wPgorICAgICAKKyAgICAgICAgICA8YmxvY2txdW90ZT4gICAgICAgCisgICAgICAgICAgICA8cD5Zb3UgY2FuIGNvbXBhcmUgdGhlc2UgdGFncyB0byB0aGUgIj09IiwgIiE9IiAsIiZndDs9IiwgICAKKyAgICAgIiZsdDs9IiwgIiZsdDsiLCBhbmQgIiZndDsibG9naWMgb3BlcmF0b3JzICAgICAgICAgaW4gbW9zdCBsYW5ndWFnZXMuCitUaGVpciB1c2FnZSBpcyBmYWlybHkgc3RyYWlnaHRmb3J3YXJkIGZvciBudW1iZXJzLiAgICAgICAgIEZvciBhbiBleGFtcGxlLAord2UnbGwgY3JlYXRlIGEgc21hbGwgIkd1ZXNzIFRoYXQgTnVtYmVyIiBnYW1lICAgICAgICAgdGhhdCB1c2VzIHJlcXVlc3QgcGFyYW1ldGVycworZnJvbSBhIGZvcm0gaW5wdXQgdG8gcGxheS4gVGhlIG51bWJlciB3aWxsICAgICAgICAgYmUgaGFyZGNvZGVkIGFzICI3IiwgYmVjYXVzZQordGhpcyBpcyBqdXN0IGFuIGV4YW1wbGUuIE5vdGUgdGhhdCAgICAgICAgIHRoaXMgaXMgYWN0dWFsbHkgcHV0dGluZyBhcHBsaWNhdGlvbgorbG9naWMgaW5zaWRlIG9mIGpzcCBwYWdlcywgYW5kIGlzbid0ICAgICAgICAgdGhlIHJlY29tbWVuZGVkIGRldmVsb3BtZW50CittZXRob2QgZm9yIFN0cnV0cy4gSXQncyBqdXN0IGFuIGVhc3kgd2F5IHRvICAgICAgICAgc2hvdyBob3cgdGhlc2UgdGFncyBhcmUKK3VzZWQ6PC9wPgorICAgICAgIAorICAgICAgICAgICAgPHA+VGhlIGZpcnN0IHN0ZXAgaXMgdG8gZGV2ZWxvcCB0aGUgZm9ybSB0aGF0IHdpbGwgY2FsbCBvbiB0aGUKK3Byb2Nlc3NpbmcgICAgICAgICBqc3AgcGFnZS4gVGhpcyBmb3JtIHdpbGwgdXNlIHRoZSAiR0VUIiBtZXRob2Qgc28gdGhhdAoreW91IGNhbiAgICAgICAgIHNlZSB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgaW4gdGhlIFVSTC4gVGhlIFBPU1QgbWV0aG9kIGNhbgorYWxzbyBiZSB1c2VkICAgICAgICAgd2l0aCBubyBwcm9ibGVtIG9yIGNoYW5nZXMuPC9wPgorICAgICAgIAorICAgICAgICAgICAgPHA+W251bWJlckd1ZXNzLmpzcF08L3A+CisgCisgICAgICAgICAgICA8cHJlPiZsdDtmb3JtIGFjdGlvbj0ibnVtYmVyUHJvY2Vzcy5qc3AiIG1ldGhvZD0iR0VUIiZndDs8YnI+UGxlYXNlIEVudGVyIGEgTnVtYmVyIEZyb20gMS0xMDogJmx0O2lucHV0IHR5cGU9InRleHQiIG5hbWU9Im51bWJlciIgLyZndDsmbHQ7YnIgLyZndDs8YnI+ICAmbHQ7Y2VudGVyJmd0Ozxicj4gICAgJmx0O2lucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iR3Vlc3MgTnVtYmVyIiAvJmd0Ozxicj4gICZsdDsvY2VudGVyJmd0Ozxicj4mbHQ7L2Zvcm0mZ3Q7PGJyPjwvcHJlPgorICAgICAgIFRoZSBuZXh0IHN0ZXAgaXMgdG8gY3JlYXRlIHRoZSBwcm9jZXNzaW5nIHBhZ2UuIEl0IHVzZXMgdGhlIHN0cnV0cy1sb2dpYyAKKyAgICAgIHRhZ2xpYi4gRm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byBzZXQgdGhpcyB0YWcgbGlicmFyeSB1cCBpbiB5b3VyIGFwcGxpY2F0aW9uIAorICAgICAgdG8gdXNlLCBzZWUgPGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL2J1aWxkaW5nX2NvbnRyb2xsZXIuaHRtbCNkZF9jb25maWciPgorVGhlICAgICAgIFdlYiBBcHBsaWNhdGlvbiBEZXBsb3ltZW50IERlc2NyaXB0b3I8L2E+CisgICAgICAgIAorICAgICAgICAgICAgPHA+W251bWJlclByb2Nlc3MuanNwXTwvcD4KKyAKKyAgICAgICAgICAgIDxwcmU+Jmx0OyVAIHBhZ2UgbGFuZ3VhZ2U9ImphdmEiICUmZ3Q7PGJyPiZsdDslQCB0YWdsaWIgdXJpPSIvV0VCLUlORi9zdHJ1dHMtbG9naWMudGxkIiBwcmVmaXg9ImxvZ2ljIiAlJmd0Ozxicj48L3ByZT4KKyAKKyAgICAgICAgICAgIDxwcmU+Jmx0OyEtLSBJcyB0aGUgbnVtYmVyIGd1ZXNzIHJpZ2h0PyAtLSZndDs8YnI+Jmx0O2xvZ2ljOmVxdWFsIHBhcmFtZXRlcj0ibnVtYmVyIiB2YWx1ZT0iNyImZ3Q7PGJyPiAgWW91IGd1ZXNzZWQgcmlnaHQhIFlvdSB3aW4gYSBoaWdoIHNwZWVkIGJsZW5kZXIhPGJyPiZsdDsvbG9naWM6ZXF1YWwmZ3Q7PGJyPjwvcHJlPgorIAorICAgICAgICAgICAgPHByZT4mbHQ7IS0tIElmIHRoZSBudW1iZXIgZ3Vlc3NlZCB3YXMgd3JvbmcgLS0mZ3Q7PGJyPiZsdDtsb2dpYzpub3RFcXVhbCBwYXJhbWV0ZXI9Im51bWJlciIgdmFsdWU9IjciJmd0Ozxicj4gICZsdDshLS0gTGVzcyBUaGFuIC0tJmd0Ozxicj4gICZsdDtsb2dpYzpsZXNzVGhhbiBwYXJhbWV0ZXI9Im51bWJlciIgdmFsdWU9IjciJmd0Ozxicj4gICAgICAgICBBIGxpdHRsZSBoaWdoZXIuLi48YnI+ICAmbHQ7L2xvZ2ljOmxlc3NUaGFuJmd0Ozxicj4gICZsdDshLS0gR3JlYXRlciBUaGFuIC0tJmd0Ozxicj4gICZsdDtsb2dpYzpncmVhdGVyVGhhbiBwYXJhbWV0ZXI9Im51bWJlciIgdmFsdWU9IjciJmd0Ozxicj4gICAgICAgICBBIGxpdHRsZSBsb3dlci4uLjxicj4gICZsdDsvbG9naWM6Z3JlYXRlclRoYW4mZ3Q7PGJyPiZsdDsvbG9naWM6bm90RXF1YWwmZ3Q7PGJyPjwvcHJlPgorICAgICAgIAorICAgICAgICAgICAgPHA+QmFzaWNhbGx5LCB0aGUgbnVtYmVyUHJvY2Vzcy5qc3AgcGFnZSB1c2VzIHRoZSBlcXVhbCB0YWcgdG8KK2NoZWNrIGlmICAgICAgICAgdGhlIGd1ZXNzIGlzIDcsIGFuZCBpZiBzbywgcHJpbnRzIG91dCBhIGNvbmdyYXR1bGF0b3J5IG1lc3NhZ2UuCitJZiB0aGUgICAgICAgICBudW1iZXIgaXNuJ3QgZXF1YWwsIHNwZWNpZmllZCBieSB0aGUgdXNlIG9mIHRoZSAmbHQ7bG9naWM6bm90RXF1YWwmZ3Q7IAorICAgICAgICB0YWcsIGl0IHVzZXMgdGhlIGdyZWF0ZXJUaGFuIGFuZCBsZXNzVGhhbiB0YWdzIHRvIGNoZWNrIGlmIHRoZSBudW1iZXIgCisgICAgICAgIGlzIGhpZ2hlciBvciBsb3dlciB0aGFuIDcsIGFuZCBwcmludHMgb3V0IGEgaGludC4gQXMgc2FpZCBiZWZvcmUsCit0aGlzICAgICAgICAgaXMgYSBob3JyaWJseSBkZXNpZ25lZCBzbWFsbCBhcHBsaWNhdGlvbiwgd2l0aCBubyB2YWxpZGl0eSBjaGVja3MKK29uIHRoZSAgICAgICAgIG51bWJlciBpbnB1dCwgYnV0IHNob3dzIHRoZSBiYXNpYyB1c2FnZSBvZiB0aGUgbG9naWMgZXF1YWwKK3RhZ3M8L3A+CisgICAgICAgCisgICAgICAgICAgICA8cD5Gb3IgU3RyaW5nIGNvbXBhcmlzb25zLCB0aGUgZXF1YWwgdGFncyB1c2UgdGhlIGphdmEubGFuZy5TdHJpbmcuY29tcGFyZVRvKCkgCisgICAgICAgIG1ldGhvZC4gU2VlIHRoZSBqYXZhZG9jcyBvbiB0aGUgY29tcGFyZVRvKCkgbWV0aG9kIGZvciBtb3JlIGluZm9ybWF0aW9uLCAKKyAgICAgICAgbG9jYXRlZCA8YSBocmVmPSJodHRwOi8vd3d3LmphdmFzb2Z0LmNvbS9wcm9kdWN0cy9qZGsvMS4yL2RvY3MvYXBpL2phdmEvbGFuZy9TdHJpbmcuaHRtbCNjb21wYXJlVG8lMjhqYXZhLmxhbmcuT2JqZWN0JTI5Ij4KK2hlcmU8L2E+CisuPC9wPgorICAgICA8L2Jsb2NrcXVvdGU+CisgICAgIAorICAgICAgICAgICAgPHA+PHU+TWF0Y2ggYW5kIFByZXNlbnQgVGFncyAobWF0Y2gsIG5vdE1hdGNoLCBwcmVzZW50LCBub3RQcmVzZW50KTwvdT48L3A+CisgICAgIAorICAgICAgICAgICAgPGJsb2NrcXVvdGU+ICAgICAgIAorICAgICAgICAgICAgICA8cD5Zb3UgdXNlIHRoZSBtYXRjaCB0YWdzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIHByZXNlbnQgdGFncworaW4gb3JkZXIgICAgICAgICB0byBkbyBzdWJzdHJpbmcgbWF0Y2hlcy4gRm9yIGFuIGV4YW1wbGUgdXNpbmcgdGhpcyB3ZSdsbAordXNlIGhlYWRlcnMsICAgICAgICAgc3BlY2lmaWNhbGx5IHRoZSAiUmVmZXJlciIgaGVhZGVyLiBUaGUgSFRUUCByZWZlcmVyCitoZWFkZXIgZ2l2ZXMgICAgICAgICB0aGUgVVJMIG9mIHRoZSBkb2N1bWVudCB0aGF0IHJlZmVycyB0byB0aGUgcmVxdWVzdGVkCitVUkwuIFdlJ2xsIHVzZSB0aGlzICAgICAgICAgdG8gY2hlY2sgaWYgdGhlIHVzZXIgaXMgY29taW5nIGZyb20gYSBsaW5rIHNwZWNpZmllZAorYnkgYSA8YSBocmVmPSJodHRwOi8vd3d3Lmdvb2dsZS5jb20iPkdvb2dsZTwvYT4KKyAgICAgICAgIHNlYXJjaCwgYW5kIG9mZmVyIGEgcGVyc29uYWxpemVkIGdyZWV0aW5nLCBmcmlnaHRlbmluZyB1c2VycyB0aGF0CitmaW5kICAgICAgICAgb3VyIHNpdGUgdGhyb3VnaCB0aGUgc2VhcmNoIGVuZ2luZSB3aXRoIG91ciBhbWF6aW5nIGludGltYXRlCitrbm93bGVkZ2UgICAgICAgICBvZiB0aGVpciBicm93c2luZyBoYWJpdHM6PC9wPgorICAgICAgIAorICAgICAgICAgICAgICA8cD5bc25lYWt5LmpzcF08L3A+CisgICAgICAgCisgICAgICAgICAgICAgIDxwcmU+Jmx0OyVAIHBhZ2UgbGFuZ3VhZ2U9ImphdmEiICUmZ3Q7PGJyPiZsdDslQCB0YWdsaWIgdXJpPSIvV0VCLUlORi9zdHJ1dHMtbG9naWMudGxkIiBwcmVmaXg9ImxvZ2ljIiAlJmd0Ozxicj48YnI+PGJyPiZsdDshLS0gQ2hlY2sgdG8gc2VlIGlmIHRoZSAiUmVmZXJlciIgaGVhZGVyIGlzIHByZXNlbnQgLS0mZ3Q7PGJyPiZsdDtsb2dpYzpwcmVzZW50IGhlYWRlcj0iUmVmZXJlciImZ3Q7PGJyPiAgJmx0O2xvZ2ljOm1hdGNoIGhlYWRlcj0iUmVmZXJlciIgdmFsdWU9Imdvb2dsZS5jb20iJmd0Ozxicj4gICAgSSBzZWUgeW91IGZvdW5kIG91ciBzaXRlIHRocm91Z2ggR29vZ2xlLi4uIGludGVyZXN0aW5nLjxicj4gICZsdDsvbG9naWM6bWF0Y2gmZ3Q7PGJyPiAgJmx0O2xvZ2ljOm5vdE1hdGNoIGhlYWRlcj0iUmVmZXJlciIgdmFsdWU9Imdvb2dsZS5jb20iJmd0Ozxicj4gICAgV2VsY29tZSB0byB0aGUgc2l0ZSwgd2UncmUgc2VjcmV0bHkgbG9nZ2luZyB3aGF0IHNpdGUgeW91IGNhbWUgZnJvbSw8YnI+ICAgIGJlY2F1c2Ugd2UncmUgc2hhZHkuLi48YnI+ICAmbHQ7L2xvZ2ljOm5vdE1hdGNoJmd0Ozxicj4mbHQ7L2xvZ2ljOnByZXNlbnQmZ3Q7PGJyPjxicj4mbHQ7IS0tIElmIHRoZSBoZWFkZXIgaXMgbm90IHByZXNlbnQgLS0mZ3Q7PGJyPiZsdDtsb2dpYzpub3RQcmVzZW50IGhlYWRlcj0iUmVmZXJlciImZ3Q7PGJyPiAgSGksIHdlbGNvbWUgdG8gb3VyIHNpdGUuICBQbGVhc2UgZmlsbCBvdXQgb3VyPGJyPiAgJmx0O2EgaHJlZj0ibm9uRXhpc3RhbnRGb3JtLmpzcCImZ3Q7Rm9ybSZsdDsvYSZndDsgYW5kPGJyPiAgdGVsbCB1cyB3aGVyZSB5b3UncmUgY29taW5nIGZyb20uPGJyPiZsdDsvbG9naWM6bm90UHJlc2VudCZndDs8L3ByZT4KKyAgICAgICAKKyAgICAgICAgICAgICAgPHA+Tm90ZTogQW5vdGhlciBpbnRlcmVzdGluZyB1c2FnZSBvZiB0aGVzZSB0YWdzIGFuZCBoZWFkZXJzCit3b3VsZCBiZSB0byAgICAgICAgIHVzZSB0aGUgIlVzZXItQWdlbnQiIGhlYWRlciB0byBkaXNwbGF5IGJyb3dzZXItc3BlY2lmaWMKK2phdmFzY3JpcHQuPC9wPgorICAgICA8L2Jsb2NrcXVvdGU+CisgICA8L2Jsb2NrcXVvdGU+CisgICAKKyAgICAgICAgICAgICAgPHA+PGI+Q29sbGVjdGlvbiBVdGlsaXRpZXMgKGl0ZXJhdGUpPC9iPjwvcD4KKyAgIAorICAgICAgICAgICAgICA8YmxvY2txdW90ZT4gICAgIAorICAgICAgICAgICAgICAgIDxwPkZvciBhbiBleGFtcGxlIG9mIHVzaW5nIHRoZSAmbHQ7bG9naWM6aXRlcmF0ZSZndDsgdGFnLAord2UnbGwgdXNlIG9uZSBvZiAgICAgICB0aGUgcHJldmlvdXMgZXhhbXBsZXMgZ2l2ZW4sIGluIGl0J3MgZW50aXJldHkuIFRoaXMKK2V4YW1wbGUgdXNlcyB0aGUgJmx0O2JlYW46d3JpdGUmZ3Q7ICAgICAgIHRhZyBmcm9tIHRoZSBCZWFuIFRhZyBMaWJyYXJ5LAorc2VlIHRoZSBVc2VyJ3MgR3VpZGUgb24gdGhlIGJlYW4gdGFnIGxpYnJhcnkgICAgICAgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24KK2l0J3MgdXNhZ2U6PC9wPgorICAgICAKKyAgICAgICAgICAgICAgICA8cD5baXRlcmF0ZS5qc3BdPC9wPgorIAorICAgICAgICAgICAgICAgIDxwcmU+Jmx0OyVAIHBhZ2UgbGFuZ3VhZ2U9ImphdmEiICUmZ3Q7PGJyPiZsdDslQCB0YWdsaWIgdXJpPSIvV0VCLUlORi9zdHJ1dHMtYmVhbi50bGQiIHByZWZpeD0iYmVhbiIgJSZndDs8YnI+Jmx0OyVAIHRhZ2xpYiB1cmk9Ii9XRUItSU5GL3N0cnV0cy1sb2dpYy50bGQiIHByZWZpeD0ibG9naWMiICUmZ3Q7PGJyPjwvcHJlPgorIAorICAgICAgICAgICAgICAgIDxwcmU+Jmx0OyU8YnI+amF2YS51dGlsLkFycmF5TGlzdCBsaXN0ID0gbmV3IGphdmEudXRpbC5BcnJheUxpc3QoKTs8YnI+ICBsaXN0LmFkZCgiRmlyc3QiKTs8YnI+ICBsaXN0LmFkZCgiU2Vjb25kIik7PGJyPiAgbGlzdC5hZGQoIlRoaXJkIik7PGJyPiAgbGlzdC5hZGQoIkZvdXJ0aCIpOzxicj4gIGxpc3QuYWRkKCJGaWZ0aCIpOzxicj4gIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZSgibGlzdCIsIGxpc3QsIFBhZ2VDb250ZXh0LlBBR0VfU0NPUEUpOzxicj4lJmd0Ozxicj48YnI+Jmx0O2xvZ2ljOml0ZXJhdGUgaWQ9Im15Q29sbGVjdGlvbkVsZW1lbnQiIG5hbWU9Imxpc3QiJmd0Ozxicj4gIEVsZW1lbnQgVmFsdWU6ICZsdDtiZWFuOndyaXRlIG5hbWU9Im15Q29sbGVjdGlvbkVsZW1lbnQiIC8mZ3Q7Jmx0O2JyIC8mZ3Q7PGJyPiZsdDsvbG9naWM6aXRlcmF0ZSZndDs8L3ByZT4KKyA8L2Jsb2NrcXVvdGU+CisgPC9ibG9ja3F1b3RlPgorPFA+CisKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS10cmVlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3ZjQ5NDgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTU0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+UFJFVjwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMKKzwvSDI+Cis8L0NFTlRFUj4KKzxETD4KKzxEVD48Qj5QYWNrYWdlIEhpZXJhcmNoaWVzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctdHJlZS5odG1sIj5BbGwgUGFja2FnZXM8L0E+PC9ETD4KKzxIUj4KKzxIMj4KK0NsYXNzIEhpZXJhcmNoeQorPC9IMj4KKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEubGFuZy5PYmplY3Q8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPjxCPkl0ZXJhdGVUZWk8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZykKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCAoaW1wbGVtZW50cyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZykKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj48Qj5JdGVyYXRlVGFnPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+PEI+Q29uZGl0aW9uYWxUYWdCYXNlPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPjxCPkNvbXBhcmVUYWdCYXNlPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwiPjxCPkVxdWFsVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIj48Qj5HcmVhdGVyRXF1YWxUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCI+PEI+R3JlYXRlclRoYW5UYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiPjxCPkxlc3NFcXVhbFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sIj48Qj5MZXNzVGhhblRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIj48Qj5Ob3RFcXVhbFRhZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCI+PEI+RW1wdHlUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbCI+PEI+Tm90RW1wdHlUYWc8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPjxCPk1hdGNoVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPjxCPk5vdE1hdGNoVGFnPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+PEI+TWVzc2FnZXNQcmVzZW50VGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj48Qj5NZXNzYWdlc05vdFByZXNlbnRUYWc8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+PEI+UHJlc2VudFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwiPjxCPk5vdFByZXNlbnRUYWc8L0I+PC9BPjwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Gb3J3YXJkVGFnLmh0bWwiPjxCPkZvcndhcmRUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+PEI+UmVkaXJlY3RUYWc8L0I+PC9BPjwvVUw+Cis8L1VMPgorPC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2UtdXNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2UtdXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhiNzI1MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS11c2UuaHRtbApAQCAtMCwwICsxLDM1MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIFBhY2thZ2U8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9CPjwvQT48L1REPgorPFREPlRoZSAic3RydXRzLWxvZ2ljIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbiBtYW5hZ2luZworY29uZGl0aW9uYWwgZ2VuZXJhdGlvbiBvZiBvdXRwdXQgdGV4dCwgbG9vcGluZyBvdmVyIG9iamVjdCBjb2xsZWN0aW9ucworZm9yIHJlcGV0aXRpdmUgZ2VuZXJhdGlvbiBvZiBvdXRwdXQgdGV4dCwgYW5kIGFwcGxpY2F0aW9uIGZsb3cgbWFuYWdlbWVudC4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4iPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGJlYW4gdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9jb2RlPgorICAgICB0YWdzIHRvIGFsbG93IHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+CisgICB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMiPjxCPkNvbXBhcmVUYWdCYXNlPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Fic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGNvbXBhcmlzb24gdGFncy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIj48Qj5Db25kaXRpb25hbFRhZ0Jhc2U8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgdGhlIHZhcmlvdXMgY29uZGl0aW9uYWwgZXZhbHVhdGlvbiB0YWdzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9FbXB0eVRhZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYyI+PEI+RW1wdHlUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgZW1wdHkgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvTWF0Y2hUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMiPjxCPk1hdGNoVGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIGEgc3Vic3RyaW5nIG9mIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYyI+PEI+TWVzc2FnZXNQcmVzZW50VGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1dGUgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgYW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IGNsYXNzIG9yIGEKKyBjbGFzcyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IGNsYXNzIGlzIGluCisgcmVxdWVzdCBzY29wZSB1bmRlciB0aGUgc3BlY2lmaWVkIGtleSBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG1lc3NhZ2UgaW4gdGhlCisgY2xhc3Mgb3IgZm9yIHRoZSBwcm9wZXJ0eSBzcGVjaWZpZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL1ByZXNlbnRUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMiPjxCPlByZXNlbnRUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgcHJlc2VudCBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL0l0ZXJhdGVUZWkuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4iPjxCPkl0ZXJhdGVUZWk8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPml0ZXJhdGU8L2I+CisgdGFnLCBpZGVudGlmeWluZyB0aGUgc2NyaXB0aW5nIG9iamVjdChzKSB0byBiZSBtYWRlIHZpc2libGUuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5Db21wYXJlVGFnQmFzZTwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBjb21wYXJpc29uIHRhZ3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjxCPkNvbmRpdGlvbmFsVGFnQmFzZTwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciB0aGUgdmFyaW91cyBjb25kaXRpb25hbCBldmFsdWF0aW9uIHRhZ3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL0VtcHR5VGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyI+PEI+RW1wdHlUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgZW1wdHkgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvRXF1YWxUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5FcXVhbFRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgYW5kIHZhbHVlIGFyZSBlcXVhbC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvR3JlYXRlckVxdWFsVGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyI+PEI+R3JlYXRlckVxdWFsVGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvR3JlYXRlclRoYW5UYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5HcmVhdGVyVGhhblRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdWF0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlCisgaXMgZ3JlYXRlciB0aGFuIHRoZSBzcGVjaWZpZWQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL0l0ZXJhdGVUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5JdGVyYXRlVGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0N1c3RvbSB0YWcgdGhhdCBpdGVyYXRlcyB0aGUgZWxlbWVudHMgb2YgYSBjb2xsZWN0aW9uLCB3aGljaCBjYW4gYmUKKyBlaXRoZXIgYW4gYXR0cmlidXRlIG9yIHRoZSBwcm9wZXJ0eSBvZiBhbiBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL0l0ZXJhdGVUZWkuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5JdGVyYXRlVGVpPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ltcGxlbWVudGF0aW9uIG9mIDxjb2RlPlRhZ0V4dHJhSW5mbzwvY29kZT4gZm9yIHRoZSA8Yj5pdGVyYXRlPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9MZXNzRXF1YWxUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5MZXNzRXF1YWxUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9MZXNzVGhhblRhZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjxCPkxlc3NUaGFuVGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFyaWFibGUKKyBpcyBsZXNzIHRoYW4gdGhlIHNwZWNpZmllZCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvTWF0Y2hUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5NYXRjaFRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBhIHN1YnN0cmluZyBvZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9NZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5NZXNzYWdlc05vdFByZXNlbnRUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgbm90IHByZXNlbnQgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9jbGFzcy11c2UvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyI+PEI+TWVzc2FnZXNQcmVzZW50VGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1dGUgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgYW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IGNsYXNzIG9yIGEKKyBjbGFzcyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+IGNsYXNzIGlzIGluCisgcmVxdWVzdCBzY29wZSB1bmRlciB0aGUgc3BlY2lmaWVkIGtleSBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIG1lc3NhZ2UgaW4gdGhlCisgY2xhc3Mgb3IgZm9yIHRoZSBwcm9wZXJ0eSBzcGVjaWZpZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL05vdEVtcHR5VGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyI+PEI+Tm90RW1wdHlUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHV0ZSB0aGUgbmVzdGVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyBpZiB0aGUgc3BlY2lmaWVkIHZhbHVlCisgaXMgbm90IGVtcHR5IGZvciB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvY2xhc3MtdXNlL05vdEVxdWFsVGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyI+PEI+Tm90RXF1YWxUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YXJpYWJsZQorIGFuZCB2YWx1ZSBhcmUgbm90IGVxdWFsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9Ob3RNYXRjaFRhZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjxCPk5vdE1hdGNoVGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1dGUgdGhlIG5lc3RlZCBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZQorIGlzIG5vdCBhIHN1YnN0cmluZyBvZiB0aGUgc3BlY2lmaWVkIHZhcmlhYmxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9Ob3RQcmVzZW50VGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyI+PEI+Tm90UHJlc2VudFRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBub3QgcHJlc2VudCBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL2NsYXNzLXVzZS9QcmVzZW50VGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyI+PEI+UHJlc2VudFRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFdmFsdXRlIHRoZSBuZXN0ZWQgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIGlmIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyBpcyBwcmVzZW50IGZvciB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTVlYWVhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbApAQCAtMCwwICsxLDI2MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZE5hbWVTdXBwb3J0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0LE5lc3RlZE5hbWVTdXBwb3J0IGludGVyZmFjZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTmVzdGVkTmFtZVN1cHBvcnQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQYXJlbnRTdXBwb3J0Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWROYW1lU3VwcG9ydC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvRk9OVD4KKzxCUj4KK0ludGVyZmFjZSBOZXN0ZWROYW1lU3VwcG9ydDwvSDI+Cis8REw+Cis8RFQ+PEI+QWxsIFN1cGVyaW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT48L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5BbGwgS25vd24gU3ViaW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFBhcmVudFN1cHBvcnQuaHRtbCI+TmVzdGVkUGFyZW50U3VwcG9ydDwvQT48L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5BbGwgS25vd24gSW1wbGVtZW50aW5nIENsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwiPk5lc3RlZENoZWNrYm94VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRhZy5odG1sIj5OZXN0ZWREZWZpbmVUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwiPk5lc3RlZEVtcHR5VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sIj5OZXN0ZWRFcXVhbFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRFcnJvcnNUYWcuaHRtbCI+TmVzdGVkRXJyb3JzVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZpbGVUYWcuaHRtbCI+TmVzdGVkRmlsZVRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwiPk5lc3RlZEZvcm1UYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJFcXVhbFRhZy5odG1sIj5OZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwiPk5lc3RlZEdyZWF0ZXJUaGFuVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEhpZGRlblRhZy5odG1sIj5OZXN0ZWRIaWRkZW5UYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwiPk5lc3RlZEltZ1RhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sIj5OZXN0ZWRJdGVyYXRlVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCI+TmVzdGVkTGVzc0VxdWFsVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sIj5OZXN0ZWRMZXNzVGhhblRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwiPk5lc3RlZExpbmtUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1hdGNoVGFnLmh0bWwiPk5lc3RlZE1hdGNoVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE1lc3NhZ2VzVGFnLmh0bWwiPk5lc3RlZE1lc3NhZ2VzVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZVRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sIj5OZXN0ZWRNdWx0aWJveFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCI+TmVzdGVkTm90RW1wdHlUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVxdWFsVGFnLmh0bWwiPk5lc3RlZE5vdEVxdWFsVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIj5OZXN0ZWROb3RNYXRjaFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWROb3RQcmVzZW50VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCI+TmVzdGVkT3B0aW9uc1RhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRQYXNzd29yZFRhZy5odG1sIj5OZXN0ZWRQYXNzd29yZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkUHJlc2VudFRhZy5odG1sIj5OZXN0ZWRQcmVzZW50VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIj5OZXN0ZWRQcm9wZXJ0eVRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRSYWRpb1RhZy5odG1sIj5OZXN0ZWRSYWRpb1RhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sIj5OZXN0ZWRSb290VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sIj5OZXN0ZWRTZWxlY3RUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sIj5OZXN0ZWRTaXplVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwiPk5lc3RlZFRleHRhcmVhVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRUYWcuaHRtbCI+TmVzdGVkVGV4dFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRXcml0ZVRhZy5odG1sIj5OZXN0ZWRXcml0ZVRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgaW50ZXJmYWNlIDxCPk5lc3RlZE5hbWVTdXBwb3J0PC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0RMPgorCis8UD4KK1RoaXMgaXMgc28gdGhhdCBtYW5hZ2luZyBjbGFzc2VzIGNhbiB0ZWxsIGlmIGEgbmVzdGVkIHRhZyBuZWVkcyB0byBoYXZlIGl0cworIDxpPm5hbWU8L2k+IHByb3BlcnR5IHNldC4gRnJvbSB3aGF0IEkga25vdywgdGhlc2UgdGFncyB1c2UgdGhlIHByb3BlcnR5IAorIHByb3BlcnR5LCBhbmQgdGhlIG5hbWUgaXMgYW4gYWRkaXRpb24uCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZ2V0dGVycyBhbmQgc2V0dGVycyByZXF1aXJlZCB0byBzZXQgYSB0YWdzIDxpPm5hbWU8L2k+IHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25ld05hbWVkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldHRlciBmb3IgdGhlIDxpPm5hbWU8L2k+IHByb3BlcnR5PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGUgZ2V0dGVycyBhbmQgc2V0dGVycyByZXF1aXJlZCB0byBzZXQgYSB0YWdzIDxpPm5hbWU8L2k+IHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlN0cmluZyB2YWx1ZSBvZiB0aGUgdGFncycgbmFtZSBwcm9wZXJ0eTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25ld05hbWVkKTwvUFJFPgorPERMPgorPEREPlRoZSBzZXR0ZXIgZm9yIHRoZSA8aT5uYW1lPC9pPiBwcm9wZXJ0eQorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uZXdOYW1lZDwvQ09ERT4gLSBuZXcgU3RyaW5nIHZhbHVlIHRvIHNldCB0aGUgbmFtZSBwcm9wZXJ0eSB0bzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQYXJlbnRTdXBwb3J0Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWROYW1lU3VwcG9ydC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFBhcmVudFN1cHBvcnQuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFBhcmVudFN1cHBvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYmQ3MmRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUGFyZW50U3VwcG9ydC5odG1sCkBAIC0wLDAgKzEsMjQ0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkUGFyZW50U3VwcG9ydCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQYXJlbnRTdXBwb3J0LE5lc3RlZFBhcmVudFN1cHBvcnQgaW50ZXJmYWNlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRQYXJlbnRTdXBwb3J0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZFBhcmVudFN1cHBvcnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRQYXJlbnRTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkPC9GT05UPgorPEJSPgorSW50ZXJmYWNlIE5lc3RlZFBhcmVudFN1cHBvcnQ8L0gyPgorPERMPgorPERUPjxCPkFsbCBTdXBlcmludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBpbnRlcmZhY2UgPEI+TmVzdGVkUGFyZW50U3VwcG9ydDwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvREw+CisKKzxQPgorVGhpcyBpbnRlcmZhY2UgaXMgc28gbWFuYWdpbmcgY2xhc3NlcyBvZiB0aGUgbmVzdGVkIHRhZyBjYW4gaWRlbnRpZnkgYSB0YWcKKyBhcyBhIHBhcmVudCB0YWcgdGhhdCBvdGhlciB0YWdzIHJldHJpZXZlIG5lc3RlZCBwcm9wZXJ0aWVzIGZyb20uCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCI+PENPREU+TmVzdGVkUHJvcGVydHlUYWc8L0NPREU+PC9BPiwgCis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCI+PENPREU+TmVzdGVkSXRlcmF0ZVRhZzwvQ09ERT48L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQYXJlbnRTdXBwb3J0Lmh0bWwjZ2V0TmVzdGVkUHJvcGVydHkoKSI+Z2V0TmVzdGVkUHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGlzIHJlcXVpcmVkIGJ5IGFsbCBwYXJlbnQgdGFncyBzbyB0aGF0IHRoZSBjaGlsZCB0YWdzIGNhbiBnZXQgYSBob2xkCisgb2YgdGhlaXIgbmVzdGVkIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TmVzdGVkUHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmVzdGVkUHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5lc3RlZFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhpcyBpcyByZXF1aXJlZCBieSBhbGwgcGFyZW50IHRhZ3Mgc28gdGhhdCB0aGUgY2hpbGQgdGFncyBjYW4gZ2V0IGEgaG9sZAorIG9mIHRoZWlyIG5lc3RlZCBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5TdHJpbmcgb2YgdGhlIHFhdWxpZmllZCBuZXN0ZWQgcHJvcGVydHkgdG8gdGhpcyBpbXBsZW1lbnRpbmcgdGFnPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRQYXJlbnRTdXBwb3J0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkUGFyZW50U3VwcG9ydC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmMjgzZTQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sCkBAIC0wLDAgKzEsNDk3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkUHJvcGVydHlIZWxwZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlIZWxwZXIsTmVzdGVkUHJvcGVydHlIZWxwZXIgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZFByb3BlcnR5SGVscGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkUHJvcGVydHlIZWxwZXI8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5SGVscGVyPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5lc3RlZFByb3BlcnR5SGVscGVyPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8L0RMPgorCis8UD4KKzxwPkEgc2ltcGxlIGhlbHBlciBjbGFzcyB0aGF0IGRvZXMgZXZlcnl0aGluZyB0aGF0IG5lZWRzIHRvIGJlIGRvbmUgdG8gZ2V0CisgdGhlIG5lc3RlZCB0YWcgZXh0ZW5zaW9uIHRvIHdvcmsuIFRoZSB0YWdzIHdpbGwgcGFzcyBpbiB0aGVpciByZWxhdGl2ZQorIHByb3BlcnRpZXMgYW5kIHRoaXMgY2xhc3Mgd2lsbCBsZXZlcmFnZSB0aGUgYWNjZXNzaWJpbGl0eSBvZiB0aGUgcmVxdWVzdAorIG9iamVjdCB0byBjYWxjdWxhdGUgdGhlIG5lc3RlZCByZWZlcmVuY2VzIGFuZCBtYW5hZ2UgdGhlbSBmcm9tIGEgY2VudHJhbAorIHBsYWNlLjwvcD4KKworIDxwPlRoZSBoZWxwZXIgbWV0aG9kIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlIZWxwZXIuaHRtbCNzZXROZXN0ZWRQcm9wZXJ0aWVzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlTdXBwb3J0KSI+PENPREU+c2V0TmVzdGVkUHJvcGVydGllcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCk8L0NPREU+PC9BPiB0YWtlcyBhIHJlZmVyZW5jZSB0byB0aGUKKyB0YWcgaXRzZWxmIHNvIGFsbCB0aGUgc2ltcGxlciB0YWdzIGNhbiBoYXZlIHRoZWlyIHJlZmVyZW5jZXMgbWFuYWdlZCBmcm9tIGEKKyBjZW50cmFsIGxvY2F0aW9uLiBGcm9tIGhlcmUsIHRoZSByZWZlcmVuY2UgdG8gYSBwcm92aWRlZCBuYW1lIGlzIGFsc28KKyBwcmVzZXJ2ZWQgZm9yIHVzZS48L3A+CisKKyA8cD5XaXRoIGFsbCB0YWdzIGtlZXBpbmcgdHJhY2sgb2YgdGhlbXNlbHZlcywgd2Ugb25seSBoYXZlIHRvIHNlZWsgdG8gdGhlCisgbmV4dCBsZXZlbCwgb3IgcGFyZW50IHRhZywgd2VyZSBhIHRhZyB3aWxsIGFwcGVuZCBhIGRvdCBhbmQgaXQncyBvd24KKyBwcm9wZXJ0eS48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sI05FU1RFRF9JTkNMVURFU19LRVkiPk5FU1RFRF9JTkNMVURFU19LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwjTmVzdGVkUHJvcGVydHlIZWxwZXIoKSI+TmVzdGVkUHJvcGVydHlIZWxwZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sI2NhbGN1bGF0ZVJlbGF0aXZlUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmNhbGN1bGF0ZVJlbGF0aXZlUHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJlbnQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwjZGVsZXRlUmVmZXJlbmNlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5kZWxldGVSZWZlcmVuY2U8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlbGV0ZXMgdGhlIG5lc3RlZCByZWZlcmVuY2UgZnJvbSB0aGUgcmVxdWVzdCBvYmplY3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sI2dldEFkanVzdGVkUHJvcGVydHkoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPmdldEFkanVzdGVkUHJvcGVydHk8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBhZGp1c3RlZCBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwjZ2V0Q3VycmVudE5hbWUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCkiPmdldEN1cnJlbnROYW1lPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiZuYnNwO25lc3RlZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIGJlYW4gbmFtZSBmcm9tIHRoZSByZXF1ZXN0IG9iamVjdCB0aGF0IHRoZSBwcm9wZXJ0aWVzIGFyZQorIG5lc3RpbmcgYWdhaW5zdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwjZ2V0Q3VycmVudFByb3BlcnR5KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRDdXJyZW50UHJvcGVydHk8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIGN1cnJlbnQgbmVzdGluZyBwcm9wZXJ0eSBmcm9tIHRoZSByZXF1ZXN0IG9iamVjdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj5OZXN0ZWRSZWZlcmVuY2U8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlIZWxwZXIuaHRtbCNyZWZlcmVuY2VJbnN0YW5jZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVmZXJlbmNlSW5zdGFuY2U8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1B1bGxzIHRoZSBjdXJyZW50IG5lc3RpbmcgcmVmZXJlbmNlIGZyb20gdGhlIHJlcXVlc3Qgb2JqZWN0LCBhbmQgaWYgdGhlcmUKKyBpc24ndCBvbmUgdGhlcmUsIHRoZW4gaXQgd2lsbCBjcmVhdGUgb25lIGFuZCBzZXQgaXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sI3NldE5hbWUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBwcm92aWRlZCBuYW1lIGludG8gdGhlIHJlcXVlc3Qgb2JqZWN0IGZvciByZWZlcmVuY2UgYnkgdGhlCisgb3RoZXIgbmVzdGVkIHRhZ3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sI3NldE5lc3RlZFByb3BlcnRpZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQpIj5zZXROZXN0ZWRQcm9wZXJ0aWVzPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4mbmJzcDt0YWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtIZWxwZXIgbWV0aG9kIHRoYXQgd2lsbCBzZXQgYWxsIHRoZSByZWxldmFudCBuZXN0aW5nIHByb3BlcnRpZXMgZm9yIHRoZQorIHByb3ZpZGVkIHRhZyByZWZlcmVuY2UgZGVwZW5kaW5nIG9uIHRoZSBpbXBsZW1lbnRhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwjc2V0UHJvcGVydHkoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBwcm92aWRlZCBwcm9wZXJ0eSBpbnRvIHRoZSByZXF1ZXN0IG9iamVjdCBmb3IgcmVmZXJlbmNlIGJ5IHRoZQorIG90aGVyIG5lc3RlZCB0YWdzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTkVTVEVEX0lOQ0xVREVTX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorTkVTVEVEX0lOQ0xVREVTX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPk5FU1RFRF9JTkNMVURFU19LRVk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5SGVscGVyLk5FU1RFRF9JTkNMVURFU19LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5lc3RlZFByb3BlcnR5SGVscGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZFByb3BlcnR5SGVscGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkUHJvcGVydHlIZWxwZXI8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEN1cnJlbnRQcm9wZXJ0eShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q3VycmVudFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Q3VycmVudFByb3BlcnR5PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBjdXJyZW50IG5lc3RpbmcgcHJvcGVydHkgZnJvbSB0aGUgcmVxdWVzdCBvYmplY3QuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gb2JqZWN0IHRvIGZldGNoIHRoZSBwcm9wZXJ0eSByZWZlcmVuY2UgZnJvbQorPERUPjxCPlJldHVybnM6PC9CPjxERD5TdHJpbmcgb2YgdGhlIGJlYW4gbmFtZSB0byBuZXN0IGFnYWluc3Q8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEN1cnJlbnROYW1lKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkTmFtZVN1cHBvcnQpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDdXJyZW50TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEN1cnJlbnROYW1lPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiZuYnNwO25lc3RlZCk8L1BSRT4KKzxETD4KKzxERD48cD5SZXR1cm5zIHRoZSBiZWFuIG5hbWUgZnJvbSB0aGUgcmVxdWVzdCBvYmplY3QgdGhhdCB0aGUgcHJvcGVydGllcyBhcmUKKyBuZXN0aW5nIGFnYWluc3QuPC9wPgorCisgPHA+VGhlIHJlcXVpcmVtZW50IG9mIHRoZSB0YWcgaXRzZWxmIGNvdWxkIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZSwgYnV0IGlzCisgcmVxdWlyZWQgaWYgc3VwcG9ydCBmb3IgdGhlIDxodG1sOmZvcm0+IHRhZyBpcyBtYWludGFpbmVkLjwvcD4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBvYmplY3QgdG8gZmV0Y2ggdGhlIGJlYW4gcmVmZXJlbmNlIGZyb208REQ+PENPREU+bmVzdGVkPC9DT0RFPiAtIHRhZyBmcm9tIHdoaWNoIHRvIHN0YXJ0IHRoZSBzZWFyY2ggZnJvbQorPERUPjxCPlJldHVybnM6PC9CPjxERD50aGUgc3RyaW5nIG9mIHRoZSBiZWFuIG5hbWUgdG8gYmUgbmVzdGluZyBhZ2FpbnN0PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBZGp1c3RlZFByb3BlcnR5KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBZGp1c3RlZFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QWRqdXN0ZWRQcm9wZXJ0eTwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBhZGp1c3RlZCBwcm9wZXJ0eS4gCisgQXBwbHkgdGhlIHByb3ZpZGVkIHByb3BlcnR5LCB0byB0aGUgcHJvcGVydHkgYWxyZWFkeSBzdG9yZWQgCisgaW4gdGhlIHJlcXVlc3Qgb2JqZWN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIHRvIHB1bGwgdGhlIHJlZmVyZW5jZSBmcm9tPEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIHRvIHJldHJpZXZlIHRoZSBldmFsdWF0ZWQgbmVzdGVkIHByb3BlcnR5IHdpdGgKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+U3RyaW5nIG9mIHRoZSBmaW5hbCBuZXN0ZWQgcHJvcGVydHkgcmVmZXJlbmNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBwcm92aWRlZCBwcm9wZXJ0eSBpbnRvIHRoZSByZXF1ZXN0IG9iamVjdCBmb3IgcmVmZXJlbmNlIGJ5IHRoZQorIG90aGVyIG5lc3RlZCB0YWdzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIG9iamVjdCB0byBzZXQgdGhlIG5ldyBwcm9wZXJ0eSBpbnRvPEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIFN0cmluZyB0byBzZXQgdGhlIHByb3BlcnR5IHRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBwcm92aWRlZCBuYW1lIGludG8gdGhlIHJlcXVlc3Qgb2JqZWN0IGZvciByZWZlcmVuY2UgYnkgdGhlCisgb3RoZXIgbmVzdGVkIHRhZ3MuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gb2JqZWN0IHRvIHNldCB0aGUgbmV3IG5hbWUgaW50bzxERD48Q09ERT5uYW1lPC9DT0RFPiAtIFN0cmluZyB0byBzZXQgdGhlIG5hbWUgdG88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRlbGV0ZVJlZmVyZW5jZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorZGVsZXRlUmVmZXJlbmNlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIHZvaWQgPEI+ZGVsZXRlUmVmZXJlbmNlPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5EZWxldGVzIHRoZSBuZXN0ZWQgcmVmZXJlbmNlIGZyb20gdGhlIHJlcXVlc3Qgb2JqZWN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIG9iamVjdCB0byByZW1vdmUgdGhlIHJlZmVyZW5jZSBmcm9tPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROZXN0ZWRQcm9wZXJ0aWVzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlTdXBwb3J0KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmVzdGVkUHJvcGVydGllczwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyB2b2lkIDxCPnNldE5lc3RlZFByb3BlcnRpZXM8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiZuYnNwO3RhZyk8L1BSRT4KKzxETD4KKzxERD5IZWxwZXIgbWV0aG9kIHRoYXQgd2lsbCBzZXQgYWxsIHRoZSByZWxldmFudCBuZXN0aW5nIHByb3BlcnRpZXMgZm9yIHRoZQorIHByb3ZpZGVkIHRhZyByZWZlcmVuY2UgZGVwZW5kaW5nIG9uIHRoZSBpbXBsZW1lbnRhdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBvYmplY3QgdG8gcHVsbCByZWZlcmVuY2VzIGZyb208REQ+PENPREU+dGFnPC9DT0RFPiAtIHRvIHNldCB0aGUgbmVzdGluZyB2YWx1ZXMgaW50bzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVmZXJlbmNlSW5zdGFuY2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlZmVyZW5jZUluc3RhbmNlPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj5OZXN0ZWRSZWZlcmVuY2U8L0E+IDxCPnJlZmVyZW5jZUluc3RhbmNlPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5QdWxscyB0aGUgY3VycmVudCBuZXN0aW5nIHJlZmVyZW5jZSBmcm9tIHRoZSByZXF1ZXN0IG9iamVjdCwgYW5kIGlmIHRoZXJlCisgaXNuJ3Qgb25lIHRoZXJlLCB0aGVuIGl0IHdpbGwgY3JlYXRlIG9uZSBhbmQgc2V0IGl0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIG9iamVjdCB0byBtYW5pcHVsYXRlIHRoZSByZWZlcmVuY2UgaW50bworPERUPjxCPlJldHVybnM6PC9CPjxERD5jdXJyZW50IG5lc3RpbmcgcmVmZXJlbmNlIGFzIHN0b3JlZCBpbiB0aGUgcmVxdWVzdCBvYmplY3Q8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNhbGN1bGF0ZVJlbGF0aXZlUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2NhbGN1bGF0ZVJlbGF0aXZlUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPEI+Y2FsY3VsYXRlUmVsYXRpdmVQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJlbnQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmYwNjMyZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sCkBAIC0wLDAgKzEsMjUzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkUHJvcGVydHlTdXBwb3J0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCxOZXN0ZWRQcm9wZXJ0eVN1cHBvcnQgaW50ZXJmYWNlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRQcm9wZXJ0eVN1cHBvcnQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUGFyZW50U3VwcG9ydC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkPC9GT05UPgorPEJSPgorSW50ZXJmYWNlIE5lc3RlZFByb3BlcnR5U3VwcG9ydDwvSDI+Cis8REw+Cis8RFQ+PEI+QWxsIFN1cGVyaW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT48L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5BbGwgS25vd24gU3ViaW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQYXJlbnRTdXBwb3J0Lmh0bWwiPk5lc3RlZFBhcmVudFN1cHBvcnQ8L0E+PC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+QWxsIEtub3duIEltcGxlbWVudGluZyBDbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sIj5OZXN0ZWRDaGVja2JveFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUYWcuaHRtbCI+TmVzdGVkRGVmaW5lVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFbXB0eVRhZy5odG1sIj5OZXN0ZWRFbXB0eVRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRXF1YWxUYWcuaHRtbCI+TmVzdGVkRXF1YWxUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwiPk5lc3RlZEVycm9yc1RhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwiPk5lc3RlZEZpbGVUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRm9ybVRhZy5odG1sIj5OZXN0ZWRGb3JtVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCI+TmVzdGVkR3JlYXRlckVxdWFsVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sIj5OZXN0ZWRHcmVhdGVyVGhhblRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCI+TmVzdGVkSGlkZGVuVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwiPk5lc3RlZEltYWdlVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltZ1RhZy5odG1sIj5OZXN0ZWRJbWdUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCI+TmVzdGVkSXRlcmF0ZVRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwiPk5lc3RlZExlc3NFcXVhbFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc1RoYW5UYWcuaHRtbCI+TmVzdGVkTGVzc1RoYW5UYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTGlua1RhZy5odG1sIj5OZXN0ZWRMaW5rVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNYXRjaFRhZy5odG1sIj5OZXN0ZWRNYXRjaFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc1RhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRNZXNzYWdlVGFnLmh0bWwiPk5lc3RlZE1lc3NhZ2VUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTXVsdGlib3hUYWcuaHRtbCI+TmVzdGVkTXVsdGlib3hUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwiPk5lc3RlZE5vdEVtcHR5VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sIj5OZXN0ZWROb3RFcXVhbFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCI+TmVzdGVkTm90TWF0Y2hUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkTm90UHJlc2VudFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwiPk5lc3RlZE9wdGlvbnNUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCI+TmVzdGVkUGFzc3dvcmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkUHJlc2VudFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCI+TmVzdGVkUHJvcGVydHlUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCI+TmVzdGVkUmFkaW9UYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCI+TmVzdGVkUm9vdFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTZWxlY3RUYWcuaHRtbCI+TmVzdGVkU2VsZWN0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCI+TmVzdGVkU2l6ZVRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTdWJtaXRUYWcuaHRtbCI+TmVzdGVkU3VibWl0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwiPk5lc3RlZFRleHRhcmVhVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRUYWcuaHRtbCI+TmVzdGVkVGV4dFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRXcml0ZVRhZy5odG1sIj5OZXN0ZWRXcml0ZVRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgaW50ZXJmYWNlIDxCPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK1RoaXMgaW50ZXJmYWNlIGlzIGZvciBtYW5hZ2luZyBjbGFzc2VzIG9mIHRoZSBuZXN0ZWQgZXh0ZW5zaW9uLCBzbyB0aGV5IGNhbgorIGtub3cgdG8gc2V0IHRoZSB0YWcncyA8aT5wcm9wZXJ0eTwvaT4gcHJvcGVydHkuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZ2V0dGVycyBhbmQgc2V0dGVycyByZXF1aXJlZCB0byBzZXQgYSB0YWdzIDxpPnByb3BlcnR5PC9pPiBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuZXdQcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXR0ZXIgZm9yIHRoZSBwb3JvcGVydHkgcHJvcGVydHk8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoZSBnZXR0ZXJzIGFuZCBzZXR0ZXJzIHJlcXVpcmVkIHRvIHNldCBhIHRhZ3MgPGk+cHJvcGVydHk8L2k+IHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlN0cmluZyB2YWx1ZSBvZiB0aGUgdGFncycgcHJvcGVydHkgcHJvcGVydHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuZXdQcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0dGVyIGZvciB0aGUgcG9yb3BlcnR5IHByb3BlcnR5Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5ld1Byb3BlcnR5PC9DT0RFPiAtIG5ldyBTdHJpbmcgdmFsdWUgdG8gc2V0IHRoZSBwcm9wZXJ0eSBwcm9wZXJ0eSB0bzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUGFyZW50U3VwcG9ydC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU1ZDVjMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5VGFnLmh0bWwKQEAgLTAsMCArMSw2MDcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWRQcm9wZXJ0eVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVRhZyxOZXN0ZWRQcm9wZXJ0eVRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTmVzdGVkUHJvcGVydHlUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUmVmZXJlbmNlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZFByb3BlcnR5VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5lc3RlZFByb3BlcnR5VGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9ETD4KKworPFA+CitOZXN0ZWRQcm9wZXJ0eVRhZy4KKworIFRoZSBvbmUgb2Ygb25seSB0d28gYWRkaXRpb25zIGluIHRoaXMgbmVzdGVkIHN1aXRlIG9mIHRhZ3MuIFRoaXMgaXMgc28gdGhhdAorIHlvdSBjYW4gc3BlY2lmeSBleHRyYSBsZXZlbHMgb2YgbmVzdGluZyBpbiBvbmUgZWxlZ2FudCB0YWcgcmF0aGVyIHRoYW4gaGF2aW5nCisgdG8gcHJvcGFnYXRlIGFuZCBtYW5hZ2UgYW4gZXh0cmEgZG90IG5vdGF0ZWQgcHJvcGVydHkgaW4gbmVzdGVkIGNoaWxkIHRhZ3MuCisKKyBJdCdzIHNpbXBseSByZWNvZ25pc2VkIGJ5IHRoZSBoZWxwZXIgY2xhc3MgYW5kIGl0J3MgcHJvcGVydHkgaXMgYWRkZWQgdG8gdGhlCisgbmVzdGluZyBsaXN0LgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlczwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPm9yaWdpbmFsTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCNvcmlnaW5hbE5lc3QiPm9yaWdpbmFsTmVzdDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij5vcmlnaW5hbFByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sI05lc3RlZFByb3BlcnR5VGFnKCkiPk5lc3RlZFByb3BlcnR5VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlciB0aGUgcmVzdWx0aW5nIGNvbnRlbnQgZXZhbHVhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V2YWx1YXRlIHRoZSByZXN0IG9mIHRoZSBwYWdlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBnZXR0ZXJzIGFuZCBzZXR0ZXJzIHJlcXVpcmVkIHRvIHNldCBhIHRhZ3MgPGk+bmFtZTwvaT4gcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0dGVyIG1ldGhvZCBmb3IgdGhlIDxpPnByb3BlcnR5PC9pPiBwcm9wZXJ0eTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtKU1AgbWV0aG9kIHRvIHJlbGVhc2UgYWxsIHJlc291cmNlcyBoZWxkIGJ5IHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmV3TmFtZWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2V0dGVyIGZvciB0aGUgPGk+bmFtZTwvaT4gcHJvcGVydHk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25ld1Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0dGVyIG1ldGhvZCBmb3IgdGhlIDxpPnByb3BlcnR5PC9pPiBwcm9wZXJ0eQorIEFsc28sIG9ubHkgc2V0dGluZyB0aGUgb3JpZ2luYWwgcHJvcGVydHkgdmFsdWUgdG8gdGhvc2UgdmFsdWVzIG5vdAorIHNldCBieSB0aGUgbmVzdGVkIGxvZ2ljLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJwcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvcmlnaW5hbE5lc3QiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmVzdDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmVzdDwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvcmlnaW5hbE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvcmlnaW5hbFByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTmVzdGVkUHJvcGVydHlUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTmVzdGVkUHJvcGVydHlUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRQcm9wZXJ0eVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVzY3JpcHRpb24gY29waWVkIGZyb20gaW50ZXJmYWNlOiA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQ09ERT48L0I+PC9ERD4KKzxERD5UaGUgZ2V0dGVycyBhbmQgc2V0dGVycyByZXF1aXJlZCB0byBzZXQgYSB0YWdzIDxpPm5hbWU8L2k+IHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlN0cmluZyB2YWx1ZSBvZiB0aGUgdGFncycgbmFtZSBwcm9wZXJ0eTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25ld05hbWVkKTwvUFJFPgorPERMPgorPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0NPREU+PC9CPjwvREQ+Cis8REQ+VGhlIHNldHRlciBmb3IgdGhlIDxpPm5hbWU8L2k+IHByb3BlcnR5Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uZXdOYW1lZDwvQ09ERT4gLSBuZXcgU3RyaW5nIHZhbHVlIHRvIHNldCB0aGUgbmFtZSBwcm9wZXJ0eSB0bzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0dGVyIG1ldGhvZCBmb3IgdGhlIDxpPnByb3BlcnR5PC9pPiBwcm9wZXJ0eQorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+U3RyaW5nIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBwcm9wZXJ0eTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25ld1Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPlNldHRlciBtZXRob2QgZm9yIHRoZSA8aT5wcm9wZXJ0eTwvaT4gcHJvcGVydHkKKyBBbHNvLCBvbmx5IHNldHRpbmcgdGhlIG9yaWdpbmFsIHByb3BlcnR5IHZhbHVlIHRvIHRob3NlIHZhbHVlcyBub3QKKyBzZXQgYnkgdGhlIG5lc3RlZCBsb2dpYy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmV3UHJvcGVydHk8L0NPREU+IC0gbmV3IHZhbHVlIGZvciB0aGUgcHJvcGVydHkgcHJvcGVydHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSB0YWcuIEdldHMgdGhlIHJlbGF0aXZlIHByb3BlcnR5CisgYW5kIHRlbGxzIHRoZSBKU1AgZW5naW5lIHRvIGV2YWx1YXRlIGl0cyBib2R5IGNvbnRlbnQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IEpTUCBjb250aW51YXRpb24gZGlyZWN0aXZlLgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvQWZ0ZXJCb2R5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvQWZ0ZXJCb2R5PC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvQWZ0ZXJCb2R5PC9CPigpCisgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlbmRlciB0aGUgcmVzdWx0aW5nIGNvbnRlbnQgZXZhbHVhdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0FmdGVyQm9keTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RXZhbHVhdGUgdGhlIHJlc3Qgb2YgdGhlIHBhZ2UKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5KU1AgbWV0aG9kIHRvIHJlbGVhc2UgYWxsIHJlc291cmNlcyBoZWxkIGJ5IHRoZSB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZFByb3BlcnR5VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlIZWxwZXIuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkUHJvcGVydHlUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSZWZlcmVuY2UuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlNjFmMDMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSZWZlcmVuY2UuaHRtbApAQCAtMCwwICsxLDQwNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZFJlZmVyZW5jZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRSZWZlcmVuY2UsTmVzdGVkUmVmZXJlbmNlIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRSZWZlcmVuY2UgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkUmVmZXJlbmNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFJlZmVyZW5jZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZFJlZmVyZW5jZTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUmVmZXJlbmNlPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkUmVmZXJlbmNlPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorU28gdGhhdCBhIG5lc3RlZCBoaWVyYXJjaHkgY2FuIHBlbmV0cmF0ZSBhIGR5bmFtaWMgSlNQIGluY2x1ZGUsIHRoaXMgY2xhc3MKKyB3aWxsIGhvbGQgdGhlIGRldGFpbHMgb2YgYSBiZWFuIG5hbWUgYW5kIG5lc3RlZCBwcm9wZXJ0eS4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlczwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFJlZmVyZW5jZSI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sI2JlYW5OYW1lIj5iZWFuTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUmVmZXJlbmNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSZWZlcmVuY2UuaHRtbCNOZXN0ZWRSZWZlcmVuY2UoKSI+TmVzdGVkUmVmZXJlbmNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RW1wdHkgY29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sI05lc3RlZFJlZmVyZW5jZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+TmVzdGVkUmVmZXJlbmNlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IgdGFrZXMgdGhlIGFsbCB0aGUgcmVsZXZhbnQgZGV0YWlscyB0byBpbml0IHRoZSBvYmplY3QuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sI2dldEJlYW5OYW1lKCkiPmdldEJlYW5OYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0dGVyIGZvciB0aGUgYmVhbiBuYW1lPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSZWZlcmVuY2UuaHRtbCNnZXROZXN0ZWRQcm9wZXJ0eSgpIj5nZXROZXN0ZWRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHRlciBmb3IgdGhlIG5lc3RlZCBwcm9wZXJ0eTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUmVmZXJlbmNlLmh0bWwjc2V0QmVhbk5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldEJlYW5OYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25ld05hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXR0ZXIgZm9yIHRoZSBiZWFuIG5hbWU8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sI3NldE5lc3RlZFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXROZXN0ZWRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuZXdQcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHRlciBmb3IgdGhlIG5lc3RlZCBwcm9wZXJ0eTwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYmVhbk5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK2JlYW5OYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+YmVhbk5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5lc3RlZFJlZmVyZW5jZSgpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRSZWZlcmVuY2U8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRSZWZlcmVuY2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5FbXB0eSBjb25zdHJ1Y3Rvci4KKzxQPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTmVzdGVkUmVmZXJlbmNlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRSZWZlcmVuY2U8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRSZWZlcmVuY2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IgdGFrZXMgdGhlIGFsbCB0aGUgcmVsZXZhbnQgZGV0YWlscyB0byBpbml0IHRoZSBvYmplY3QuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBTdHJpbmcgbmFtZSBvZiB0aGUgYmVhbiB0aGF0IHRoZSBpbmNsdWRlIGlzIHRvIHJlZmVyZW5jZTxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBTdHJpbmcgbmVzdGVkIHByb3BlcnR5IHZhbHVlIHRoYXQgdGhlIGluY2x1ZGUgd2lsbCBiZQorICAgICAgICAgICAgICAgICBjb250aW51aW5nIG9uIHdpdGguPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0QmVhbk5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QmVhbk5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEJlYW5OYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0dGVyIGZvciB0aGUgYmVhbiBuYW1lCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+U3RyaW5nIHZhbHVlIHRoYXQgd2lsbCBiZSB0aGUgYmVhbidzIHJlZmVyZW5jZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QmVhbk5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJlYW5OYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRCZWFuTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25ld05hbWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0dGVyIGZvciB0aGUgYmVhbiBuYW1lCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5ld05hbWU8L0NPREU+IC0gU3RyaW5nIHZhbHVlIHRvIHNldCB0aGUgYmVhbiByZWZlcmVuY2UuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROZXN0ZWRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROZXN0ZWRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmVzdGVkUHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXR0ZXIgZm9yIHRoZSBuZXN0ZWQgcHJvcGVydHkKKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5TdHJpbmcgdmFsdWUgdGhhdCBpcyB0aGUgbmVzdGVkIHByb3BlcnR5IGZvciB0aGUgY3VycmVudCBuZXN0aW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROZXN0ZWRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmVzdGVkUHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5lc3RlZFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmV3UHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+U2V0dGVyIGZvciB0aGUgbmVzdGVkIHByb3BlcnR5Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5ld1Byb3BlcnR5PC9DT0RFPiAtIFN0cmluZyB2YWx1ZSBvZiB0aGUgbmV3IGN1cnJlbnQgbmVzdGluZyBsZXZlbDwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkUmVmZXJlbmNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFJlZmVyZW5jZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWMzYzQzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sCkBAIC0wLDAgKzEsNjA2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkUm9vdFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRSb290VGFnLE5lc3RlZFJvb3RUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZFJvb3RUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkUm9vdFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRSb290VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkUm9vdFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRSb290VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5lc3RlZFJvb3RUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZFJvb3RUYWcuCisKKyBUaGUgb25seSBvdGhlciBhZGRpdGlvbiBpbiB0aGlzIG5lc3RlZCBzdWl0ZSBvZiB0YWdzLgorIFRoaXMgdGFnIGFsbG93cyBmb3IgYSBuZXN0ZWQgc3RydWN0dXJlIHRvIHN0YXJ0IHdpdGhvdXQgcmVseWluZyBvbiB0aGUgYmVhbgorIGFuZCB3b3JraW5ncyBvZiB0aGUgRm9ybVRhZy4gVXNlZnVsIGZvciB2aWV3IHBhZ2VzIHRoYXQgZG9uJ3QgdXBkYXRlIHdoZW4KKyByZXR1cm5pbmcgdG8gdGhlIHNlcnZlciwgb3IgdXNlIGh5cGVybGlua3MgcmF0aGVyIHRoYW4gZm9ybSBzdWJtaXRzLgorCisgVGhlIEJlYW4gdGhhdCBpdCB1c2VzIGNhbiBjb21lIG91dCBvZiBhIGpzcDp1c2VCZWFuIHRhZyBvciBkZWZpbmUgYW5vdGhlcgorIGJlYW4gdGhhdCdzIGFscmVhZHkgaW4gc2NvcGUuIEFzIGxvbmcgYXMgdGhlIG90aGVyIFN0cnV0cyB0YWdzIGNhbiBmaW5kIHRoZQorIGJlYW4gYnkgbmFtZSwgaXQnbGwgd29yay4KKworIEl0J3Mgc2ltcGx5IHJlY29nbmlzZWQgYnkgdGhlIGhlbHBlciBjbGFzcyBhbmQgaXQncyBwcm9wZXJ0eSBpcyBhZGRlZCB0byB0aGUKKyBuZXN0aW5nIGxpc3QuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUm9vdFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSb290VGFnLmh0bWwjb3JpZ2luYWxOYW1lIj5vcmlnaW5hbE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCNvcmlnaW5hbE5lc3RpbmciPm9yaWdpbmFsTmVzdGluZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sI29yaWdpbmFsTmVzdGluZ05hbWUiPm9yaWdpbmFsTmVzdGluZ05hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sI05lc3RlZFJvb3RUYWcoKSI+TmVzdGVkUm9vdFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbmRlciB0aGUgcmVzdWx0aW5nIGNvbnRlbnQgZXZhbHVhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXZhbHVhdGUgdGhlIHJlc3Qgb2YgdGhlIHBhZ2U8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHRlciBtZXRob2QgZm9yIHRoZSA8aT5uYW1lPC9pPiBwcm9wZXJ0eTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0dGVyIG1ldGhvZCBmb3IgdGhlIDxpPnByb3BlcnR5PC9pPiBwcm9wZXJ0eTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0pTUCBtZXRob2QgdG8gcmVsZWFzZSBhbGwgcmVzb3VyY2VzIGhlbGQgYnkgdGhlIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXR0ZXIgbWV0aG9kIGZvciB0aGUgPGk+bmFtZTwvaT4gcHJvcGVydHk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXR0ZXIgbWV0aG9kIGZvciB0aGUgPGk+cHJvcGVydHk8L2k+IHByb3BlcnR5PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmVzdGluZyI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOZXN0aW5nPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOZXN0aW5nPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmVzdGluZ05hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmVzdGluZ05hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5lc3RpbmdOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRSb290VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZFJvb3RUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRSb290VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXR0ZXIgbWV0aG9kIGZvciB0aGUgPGk+cHJvcGVydHk8L2k+IHByb3BlcnR5Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5TdHJpbmcgdmFsdWUgb2YgdGhlIHByb3BlcnR5IHByb3BlcnR5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFByb3BlcnR5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHkpPC9QUkU+Cis8REw+Cis8REQ+U2V0dGVyIG1ldGhvZCBmb3IgdGhlIDxpPnByb3BlcnR5PC9pPiBwcm9wZXJ0eQorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBuZXcgdmFsdWUgZm9yIHRoZSBwcm9wZXJ0eSBwcm9wZXJ0eTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0dGVyIG1ldGhvZCBmb3IgdGhlIDxpPm5hbWU8L2k+IHByb3BlcnR5Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+U3RyaW5nIHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXR0ZXIgbWV0aG9kIGZvciB0aGUgPGk+bmFtZTwvaT4gcHJvcGVydHkKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gbmV3IHZhbHVlIGZvciB0aGUgbmFtZSBwcm9wZXJ0eTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIHRhZy4gR2V0cyB0aGUgcmVsYXRpdmUgcHJvcGVydHkKKyBhbmQgdGVsbHMgdGhlIEpTUCBlbmdpbmUgdG8gZXZhbHVhdGUgaXRzIGJvZHkgY29udGVudC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9BZnRlckJvZHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9BZnRlckJvZHk8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9BZnRlckJvZHk8L0I+KCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVuZGVyIHRoZSByZXN1bHRpbmcgY29udGVudCBldmFsdWF0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvQWZ0ZXJCb2R5PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvQWZ0ZXJCb2R5PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5FdmFsdWF0ZSB0aGUgcmVzdCBvZiB0aGUgcGFnZQorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IEpTUCBjb250aW51YXRpb24gZGlyZWN0aXZlLgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkpTUCBtZXRob2QgdG8gcmVsZWFzZSBhbGwgcmVzb3VyY2VzIGhlbGQgYnkgdGhlIHRhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkUm9vdFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRSb290VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxYTk0MGYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwKQEAgLTAsMCArMSwxODkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWRUYWdTdXBwb3J0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFRhZ1N1cHBvcnQsTmVzdGVkVGFnU3VwcG9ydCBpbnRlcmZhY2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZFRhZ1N1cHBvcnQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkVGFnU3VwcG9ydC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQ8L0ZPTlQ+Cis8QlI+CitJbnRlcmZhY2UgTmVzdGVkVGFnU3VwcG9ydDwvSDI+Cis8REw+Cis8RFQ+PEI+QWxsIEtub3duIFN1YmludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUGFyZW50U3VwcG9ydC5odG1sIj5OZXN0ZWRQYXJlbnRTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkFsbCBLbm93biBJbXBsZW1lbnRpbmcgQ2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkQ2hlY2tib3hUYWcuaHRtbCI+TmVzdGVkQ2hlY2tib3hUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGFnLmh0bWwiPk5lc3RlZERlZmluZVRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRW1wdHlUYWcuaHRtbCI+TmVzdGVkRW1wdHlUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwiPk5lc3RlZEVxdWFsVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEVycm9yc1RhZy5odG1sIj5OZXN0ZWRFcnJvcnNUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sIj5OZXN0ZWRGaWxlVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCI+TmVzdGVkRm9ybVRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwiPk5lc3RlZEdyZWF0ZXJFcXVhbFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCI+TmVzdGVkR3JlYXRlclRoYW5UYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSGlkZGVuVGFnLmh0bWwiPk5lc3RlZEhpZGRlblRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWFnZVRhZy5odG1sIj5OZXN0ZWRJbWFnZVRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWdUYWcuaHRtbCI+TmVzdGVkSW1nVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPk5lc3RlZEl0ZXJhdGVUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sIj5OZXN0ZWRMZXNzRXF1YWxUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NUaGFuVGFnLmh0bWwiPk5lc3RlZExlc3NUaGFuVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCI+TmVzdGVkTGlua1RhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbCI+TmVzdGVkTWF0Y2hUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwiPk5lc3RlZE11bHRpYm94VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFbXB0eVRhZy5odG1sIj5OZXN0ZWROb3RFbXB0eVRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCI+TmVzdGVkTm90RXF1YWxUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdE1hdGNoVGFnLmh0bWwiPk5lc3RlZE5vdE1hdGNoVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE5vdFByZXNlbnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+TmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc1RhZy5odG1sIj5OZXN0ZWRPcHRpb25zVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwiPk5lc3RlZFBhc3N3b3JkVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwiPk5lc3RlZFByZXNlbnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5VGFnLmh0bWwiPk5lc3RlZFByb3BlcnR5VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFJhZGlvVGFnLmh0bWwiPk5lc3RlZFJhZGlvVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSb290VGFnLmh0bWwiPk5lc3RlZFJvb3RUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU2VsZWN0VGFnLmh0bWwiPk5lc3RlZFNlbGVjdFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRTaXplVGFnLmh0bWwiPk5lc3RlZFNpemVUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwiPk5lc3RlZFN1Ym1pdFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIj5OZXN0ZWRUZXh0YXJlYVRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwiPk5lc3RlZFRleHRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCI+TmVzdGVkV3JpdGVUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGludGVyZmFjZSA8Qj5OZXN0ZWRUYWdTdXBwb3J0PC9CPjwvREw+CisKKzxQPgorVGhpcyBpcyB0byBzaW1wbHkgYWxsb3cgbWFuYWdpbmcgY2xhc3NlcyB0byBpZGVudGlmeSB0aGUgdGFncyB0byBpbnZva2UKKyBjb21tb24gbWV0aG9kcyBhZ2FpbnN0IHRoZW0uCisgVGhpcyBpbnRlcmZhY2UgaXMgZW1wdHkgYW5kIGlzIGZvciBpZGVudGlmaWNhdGlvbiBvbmx5LgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlczwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFRhZ1N1cHBvcnQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjgzODViCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwKQEAgLTAsMCArMSw1MzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWRXcml0ZU5lc3RpbmdUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkV3JpdGVOZXN0aW5nVGFnLE5lc3RlZFdyaXRlTmVzdGluZ1RhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTmVzdGVkV3JpdGVOZXN0aW5nVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZFdyaXRlTmVzdGluZ1RhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRXcml0ZU5lc3RpbmdUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkV3JpdGVOZXN0aW5nVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvREw+CisKKzxQPgorTmVzdGVkV3JpdGVOZXN0aW5nVGFnLgorCisgQ3JlYXRlZCBzbyBkZXZlbG9wZXJzIGNvdWxkIGhhdmUgYSBtb3JlIGVsZWdhbnQgd2F5IG9mIGdldHRpbmcgdG8gdGhlCisgdW5kZXJseWluZyBuZXN0ZWQgcHJvcGVydHkgdGhlaXIgdGFnIHByb3BlcnRpZXMgYXJlIHJlZmVyZW5jaW5nLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkV3JpdGVOZXN0aW5nVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwjZmlsdGVyIj5maWx0ZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuaHRtbCNOZXN0ZWRXcml0ZU5lc3RpbmdUYWcoKSI+TmVzdGVkV3JpdGVOZXN0aW5nVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuaHRtbCNnZXRGaWx0ZXIoKSI+Z2V0RmlsdGVyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0dGVyIG1ldGhvZCBmb3IgdGhlIDxpPmZpbHRlcjwvaT4gcHJvcGVydHk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0dGVyIG1ldGhvZCBmb3IgdGhlIDxpPnByb3BlcnR5PC9pPiBwcm9wZXJ0eTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SlNQIG1ldGhvZCB0byByZWxlYXNlIGFsbCByZXNvdXJjZXMgaGVsZCBieSB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwjc2V0RmlsdGVyKGJvb2xlYW4pIj5zZXRGaWx0ZXI8L0E+PC9CPihib29sZWFuJm5ic3A7bmV3RmlsdGVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0dGVyIG1ldGhvZCBmb3IgdGhlIDxpPmZpbHRlcjwvaT4gcHJvcGVydHk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuZXdQcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHRlciBtZXRob2QgZm9yIHRoZSA8aT5wcm9wZXJ0eTwvaT4gcHJvcGVydHk8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImZpbHRlciI+PCEtLSAtLT48L0E+PEgzPgorZmlsdGVyPC9IMz4KKzxQUkU+Citwcml2YXRlIGJvb2xlYW4gPEI+ZmlsdGVyPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRXcml0ZU5lc3RpbmdUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTmVzdGVkV3JpdGVOZXN0aW5nVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkV3JpdGVOZXN0aW5nVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXR0ZXIgbWV0aG9kIGZvciB0aGUgPGk+cHJvcGVydHk8L2k+IHByb3BlcnR5Cis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+U3RyaW5nIHZhbHVlIG9mIHRoZSBwcm9wZXJ0eSBwcm9wZXJ0eTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25ld1Byb3BlcnR5KTwvUFJFPgorPERMPgorPEREPlNldHRlciBtZXRob2QgZm9yIHRoZSA8aT5wcm9wZXJ0eTwvaT4gcHJvcGVydHkKKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmV3UHJvcGVydHk8L0NPREU+IC0gbmV3IHZhbHVlIGZvciB0aGUgcHJvcGVydHkgcHJvcGVydHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZpbHRlcigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGaWx0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldEZpbHRlcjwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldHRlciBtZXRob2QgZm9yIHRoZSA8aT5maWx0ZXI8L2k+IHByb3BlcnR5Cis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+U3RyaW5nIHZhbHVlIG9mIHRoZSBmaWx0ZXIgcHJvcGVydHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZpbHRlcihib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RmlsdGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGaWx0ZXI8L0I+KGJvb2xlYW4mbmJzcDtuZXdGaWx0ZXIpPC9QUkU+Cis8REw+Cis8REQ+U2V0dGVyIG1ldGhvZCBmb3IgdGhlIDxpPmZpbHRlcjwvaT4gcHJvcGVydHkKKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmV3RmlsdGVyPC9DT0RFPiAtIG5ldyB2YWx1ZSBmb3IgdGhlIGZpbHRlciBwcm9wZXJ0eTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIHRhZy4gR2V0cyB0aGUgcmVsYXRpdmUgcHJvcGVydHkKKyBhbmQgdGVsbHMgdGhlIEpTUCBlbmdpbmUgdG8gZXZhbHVhdGUgaXRzIGJvZHkgY29udGVudC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5KU1AgbWV0aG9kIHRvIHJlbGVhc2UgYWxsIHJlc291cmNlcyBoZWxkIGJ5IHRoZSB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2NDNhYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRhZy5odG1sCkBAIC0wLDAgKzEsNDc1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkRGVmaW5lVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkRGVmaW5lVGFnLE5lc3RlZERlZmluZVRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTmVzdGVkRGVmaW5lVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZERlZmluZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGVpLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWREZWZpbmVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZERlZmluZVRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkRlZmluZVRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkRGVmaW5lVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5lc3RlZERlZmluZVRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPjxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9ETD4KKworPFA+CitOZXN0ZWREZWZpbmVUYWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWREZWZpbmVUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRhZy5odG1sI29yaWdpbmFsTmFtZSI+b3JpZ2luYWxOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkRlZmluZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2JvZHkiPmJvZHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNpZCI+aWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjdG9TY29wZSI+dG9TY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3R5cGUiPnR5cGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUYWcuaHRtbCNOZXN0ZWREZWZpbmVUYWcoKSI+TmVzdGVkRGVmaW5lVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkRlZmluZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPkRlZmluZVRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2dldElkKCkiPmdldElkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2dldFRvU2NvcGUoKSI+Z2V0VG9TY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2dldFR5cGUoKSI+Z2V0VHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPnNldElkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3NldFRvU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRvU2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUeXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWREZWZpbmVUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTmVzdGVkRGVmaW5lVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkRGVmaW5lVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCisgICAgICAgICAgICAgVGhpcyBpcyBpbiB0aGUgaGFuZHMgb2YgdGhlIHN1cGVyIGNsYXNzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuIFRoZSBuZXN0ZWQgdGFncyBoZXJlIHdpbGwgcmVzdG9yZQorIGFsbCB0aGUgb3JpZ2luYWwgdmFsdWUgZm9yIHRoZSB0YWcgaXRzZWxmIGFuZCB0aGUgbmVzdGluZyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+RGVmaW5lVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRhZy5odG1sIj5EZWZpbmVUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkRGVmaW5lVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZERlZmluZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGVpLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmZTRlYWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRlaS5odG1sCkBAIC0wLDAgKzEsMjkxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkRGVmaW5lVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkRGVmaW5lVGVpLE5lc3RlZERlZmluZVRlaSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTmVzdGVkRGVmaW5lVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZERlZmluZVRlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZERlZmluZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkRGVmaW5lVGVpPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbworICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5JdGVyYXRlVGVpPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWREZWZpbmVUZWk8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkRGVmaW5lVGVpPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPkl0ZXJhdGVUZWk8L0E+PC9ETD4KKworPFA+CitOZXN0ZWREZWZpbmVUZWkgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGltcGxpZWQgc2V0dGluZyBvZiB0aGUgbmFtZSBwcm9wZXJ0eQorIG9mIGEgbmVzdGVkIHRhZyBpcyBwcm9wZXJseSBoYW5kZWQgaW4gdGhlIGNhc3Rpbmcgb2YgdGhlIGRlZmluZWQgb2JqZWN0LgorIEN1cnJlbnRseSBnb2VzIHRvIFN0cmluZywgYnV0IGZvciB0aGUgcHVycG9zZXMgb2YgbW9zdCBuZXN0ZWQgb2JqZWN0cyB0aGV5Cisgd2lsbCBiZW5lZml0IG1vcmUgZnJvbSBhIHNpbXBsZSBPYmplY3QgY2FzdGluZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlczwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGVpLmh0bWwjTmVzdGVkRGVmaW5lVGVpKCkiPk5lc3RlZERlZmluZVRlaTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5WYXJpYWJsZUluZm9bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+Z2V0VmFyaWFibGVJbmZvPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0VGFnSW5mbywgaXNWYWxpZCwgc2V0VGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWREZWZpbmVUZWkoKSI+PCEtLSAtLT48L0E+PEgzPgorTmVzdGVkRGVmaW5lVGVpPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkRGVmaW5lVGVpPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYXJpYWJsZUluZm88L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW10gPEI+Z2V0VmFyaWFibGVJbmZvPC9CPihqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSZuYnNwO2RhdGEpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCNnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj5nZXRWYXJpYWJsZUluZm88L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sIj5JdGVyYXRlVGVpPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZERlZmluZVRlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZERlZmluZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRNZXNzYWdlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU4ZDEyOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sCkBAIC0wLDAgKzEsNDM3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkTWVzc2FnZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLk5lc3RlZE1lc3NhZ2VUYWcsTmVzdGVkTWVzc2FnZVRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTmVzdGVkTWVzc2FnZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRNZXNzYWdlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUZWkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTWVzc2FnZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkTWVzc2FnZVRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5NZXNzYWdlVGFnPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWRNZXNzYWdlVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkTWVzc2FnZVRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZFdyaXRlVGFnLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWRNZXNzYWdlVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRNZXNzYWdlVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj5vcmlnaW5hbE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLk1lc3NhZ2VUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNhcmcwIj5hcmcwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2FyZzEiPmFyZzE8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjYXJnMiI+YXJnMjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNhcmczIj5hcmczPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2FyZzQiPmFyZzQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjYnVuZGxlIj5idW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNrZXkiPmtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNsb2NhbGVLZXkiPmxvY2FsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjc2NvcGUiPnNjb3BlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRNZXNzYWdlVGFnLmh0bWwjTmVzdGVkTWVzc2FnZVRhZygpIj5OZXN0ZWRNZXNzYWdlVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRNZXNzYWdlVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLk1lc3NhZ2VUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+TWVzc2FnZVRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0QXJnMCgpIj5nZXRBcmcwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2dldEFyZzEoKSI+Z2V0QXJnMTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNnZXRBcmcyKCkiPmdldEFyZzI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0QXJnMygpIj5nZXRBcmczPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2dldEFyZzQoKSI+Z2V0QXJnNDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNnZXRCdW5kbGUoKSI+Z2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI2dldEtleSgpIj5nZXRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjc2V0QXJnMChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QXJnMDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRBcmcxKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBcmcxPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldEFyZzIoamF2YS5sYW5nLlN0cmluZykiPnNldEFyZzI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjc2V0QXJnMyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QXJnMzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNzZXRBcmc0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBcmc0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJvcmlnaW5hbE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvcmlnaW5hbFByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTmVzdGVkTWVzc2FnZVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRNZXNzYWdlVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkTWVzc2FnZVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4gR2V0cyB0aGUgcmVsYXRpdmUgcHJvcGVydHkKKyBhbmQgbGVhdmVzIHRoZSByZXN0IHVwIHRvIHRoZSBvcmlnaW5hbCB0YWcgaW1wbGVtZW50YXRpb24uIFN3ZWV0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj5NZXNzYWdlVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IEpTUCBjb250aW51YXRpb24gZGlyZWN0aXZlLgorICAgICAgICAgICAgIFRoaXMgaXMgaW4gdGhlIGhhbmRzIG9mIHRoZSBzdXBlciBjbGFzcy4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLiBUaGUgbmVzdGVkIHRhZ3MgaGVyZSB3aWxsIHJlc3RvcmUKKyBhbGwgdGhlIG9yaWdpbmFsIHZhbHVlIGZvciB0aGUgdGFnIGl0c2VsZiBhbmQgdGhlIG5lc3RpbmcgY29udGV4dC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPk1lc3NhZ2VUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkTWVzc2FnZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGVpLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE1lc3NhZ2VUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkODBmY2MKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbApAQCAtMCwwICsxLDQzNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZFNpemVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWRTaXplVGFnLE5lc3RlZFNpemVUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZFNpemVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkU2l6ZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRXcml0ZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkU2l6ZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkU2l6ZVRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5TaXplVGFnPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWRTaXplVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkU2l6ZVRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPlNpemVUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZFNpemVUYWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWRTaXplVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRTaXplVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj5vcmlnaW5hbE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlNpemVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNjb2xsZWN0aW9uIj5jb2xsZWN0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2lkIj5pZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjc2NvcGUiPnNjb3BlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCNOZXN0ZWRTaXplVGFnKCkiPk5lc3RlZFNpemVUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRTaXplVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uU2l6ZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCNnZXRDb2xsZWN0aW9uKCkiPmdldENvbGxlY3Rpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjZ2V0SWQoKSI+Z2V0SWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3NldENvbGxlY3Rpb24oamF2YS5sYW5nLk9iamVjdCkiPnNldENvbGxlY3Rpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPnNldElkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkTmFtZVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ib3JpZ2luYWxOYW1lIj48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib3JpZ2luYWxQcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5lc3RlZFNpemVUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTmVzdGVkU2l6ZVRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk5lc3RlZFNpemVUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEdldHMgdGhlIHJlbGF0aXZlIHByb3BlcnR5CisgYW5kIGxlYXZlcyB0aGUgcmVzdCB1cCB0byB0aGUgb3JpZ2luYWwgdGFnIGltcGxlbWVudGF0aW9uLiBTd2VldC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1NpemVUYWcuaHRtbCI+U2l6ZVRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgICBUaGlzIGlzIGluIHRoZSBoYW5kcyBvZiB0aGUgc3VwZXIgY2xhc3MuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4gVGhlIG5lc3RlZCB0YWdzIGhlcmUgd2lsbCByZXN0b3JlCisgYWxsIHRoZSBvcmlnaW5hbCB2YWx1ZSBmb3IgdGhlIHRhZyBpdHNlbGYgYW5kIHRoZSBuZXN0aW5nIGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCB0byBkZXNjcmliZSB0aGUgbmV4dCBzdGVwIGZvciB0aGUgSlNQIHByb2Nlc3NvcgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGZvciB0aGUgYmFkIHRoaW5ncyBKU1AncyBkbzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5TaXplVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZFNpemVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFNpemVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFdyaXRlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFdyaXRlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk2YzFjZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbApAQCAtMCwwICsxLDQzNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZFdyaXRlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkV3JpdGVUYWcsTmVzdGVkV3JpdGVUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZFdyaXRlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZFdyaXRlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRTaXplVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRXcml0ZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkV3JpdGVUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLldyaXRlVGFnPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWRXcml0ZVRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5lc3RlZFdyaXRlVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPldyaXRlVGFnPC9BPjxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9ETD4KKworPFA+CitOZXN0ZWRXcml0ZVRhZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+QXJyb24gQmF0ZXM8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLk5lc3RlZFdyaXRlVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRXcml0ZVRhZy5odG1sI29yaWdpbmFsTmFtZSI+b3JpZ2luYWxOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFdyaXRlVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+b3JpZ2luYWxQcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uV3JpdGVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNidW5kbGUiPmJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjREFURV9GT1JNQVRfS0VZIj5EQVRFX0ZPUk1BVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2ZpbHRlciI+ZmlsdGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNGTE9BVF9GT1JNQVRfS0VZIj5GTE9BVF9GT1JNQVRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNmb3JtYXRLZXkiPmZvcm1hdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjZm9ybWF0U3RyIj5mb3JtYXRTdHI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2lnbm9yZSI+aWdub3JlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNJTlRfRk9STUFUX0tFWSI+SU5UX0ZPUk1BVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2xvY2FsZUtleSI+bG9jYWxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNTUUxfREFURV9GT1JNQVRfS0VZIj5TUUxfREFURV9GT1JNQVRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNTUUxfVElNRV9GT1JNQVRfS0VZIj5TUUxfVElNRV9GT1JNQVRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNTUUxfVElNRVNUQU1QX0ZPUk1BVF9LRVkiPlNRTF9USU1FU1RBTVBfRk9STUFUX0tFWTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCNOZXN0ZWRXcml0ZVRhZygpIj5OZXN0ZWRXcml0ZVRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5Xcml0ZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNmb3JtYXRWYWx1ZShqYXZhLmxhbmcuT2JqZWN0KSI+Zm9ybWF0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldEZpbHRlcigpIj5nZXRGaWx0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldEZvcm1hdCgpIj5nZXRGb3JtYXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldEZvcm1hdEtleSgpIj5nZXRGb3JtYXRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldElnbm9yZSgpIj5nZXRJZ25vcmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNyZXRyaWV2ZUZvcm1hdFN0cmluZyhqYXZhLmxhbmcuU3RyaW5nKSI+cmV0cmlldmVGb3JtYXRTdHJpbmc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNzZXRGaWx0ZXIoYm9vbGVhbikiPnNldEZpbHRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2V0Rm9ybWF0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3JtYXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3NldEZvcm1hdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Rm9ybWF0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNzZXRJZ25vcmUoYm9vbGVhbikiPnNldElnbm9yZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRXcml0ZVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRXcml0ZVRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk5lc3RlZFdyaXRlVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+V3JpdGVUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCisgICAgICAgICAgICAgVGhpcyBpcyBpbiB0aGUgaGFuZHMgb2YgdGhlIHN1cGVyIGNsYXNzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuIFRoZSBuZXN0ZWQgdGFncyBoZXJlIHdpbGwgcmVzdG9yZQorIGFsbCB0aGUgb3JpZ2luYWwgdmFsdWUgZm9yIHRoZSB0YWcgaXRzZWxmIGFuZCB0aGUgbmVzdGluZyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgdG8gZGVzY3JpYmUgdGhlIG5leHQgc3RlcCBmb3IgdGhlIEpTUCBwcm9jZXNzb3IKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBmb3IgdGhlIGJhZCB0aGluZ3MgSlNQJ3MgZG88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Xcml0ZVRhZy5odG1sIj5Xcml0ZVRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRXcml0ZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkV3JpdGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL2NsYXNzLXVzZS9OZXN0ZWREZWZpbmVUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vY2xhc3MtdXNlL05lc3RlZERlZmluZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiMDBiOWQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL2NsYXNzLXVzZS9OZXN0ZWREZWZpbmVUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLk5lc3RlZERlZmluZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkRGVmaW5lVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZERlZmluZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWREZWZpbmVUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLk5lc3RlZERlZmluZVRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZERlZmluZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL2NsYXNzLXVzZS9OZXN0ZWREZWZpbmVUZWkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vY2xhc3MtdXNlL05lc3RlZERlZmluZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzNDEzZmYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL2NsYXNzLXVzZS9OZXN0ZWREZWZpbmVUZWkuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLk5lc3RlZERlZmluZVRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkRGVmaW5lVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZERlZmluZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWREZWZpbmVUZWk8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLk5lc3RlZERlZmluZVRlaQorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZERlZmluZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL2NsYXNzLXVzZS9OZXN0ZWRNZXNzYWdlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL2NsYXNzLXVzZS9OZXN0ZWRNZXNzYWdlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTA2ZjljMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vY2xhc3MtdXNlL05lc3RlZE1lc3NhZ2VUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLk5lc3RlZE1lc3NhZ2VUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLk5lc3RlZE1lc3NhZ2VUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRNZXNzYWdlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE1lc3NhZ2VUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkTWVzc2FnZVRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkTWVzc2FnZVRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRNZXNzYWdlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vY2xhc3MtdXNlL05lc3RlZFNpemVUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vY2xhc3MtdXNlL05lc3RlZFNpemVUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YWRjZjJiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9jbGFzcy11c2UvTmVzdGVkU2l6ZVRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkU2l6ZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkU2l6ZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkU2l6ZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWRTaXplVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWRTaXplVGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRTaXplVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFNpemVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9jbGFzcy11c2UvTmVzdGVkV3JpdGVUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vY2xhc3MtdXNlL05lc3RlZFdyaXRlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E0OGJiMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vY2xhc3MtdXNlL05lc3RlZFdyaXRlVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWRXcml0ZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkV3JpdGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWRXcml0ZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRXcml0ZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWRXcml0ZVRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkV3JpdGVUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFdyaXRlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFdyaXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vZG9jLWZpbGVzL25lc3RlZC1iZWFuLmdpZiBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vZG9jLWZpbGVzL25lc3RlZC1iZWFuLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWY2YTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9kb2MtZmlsZXMvbmVzdGVkLWJlYW4uZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFkMjI3ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQT48L0ZPTlQ+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitDbGFzc2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkRGVmaW5lVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkRGVmaW5lVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkRGVmaW5lVGVpLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkRGVmaW5lVGVpPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkTWVzc2FnZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZE1lc3NhZ2VUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJOZXN0ZWRTaXplVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkU2l6ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZFdyaXRlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkV3JpdGVUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLXN1bW1hcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWU0Y2EwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLXN1bW1hcnkuaHRtbApAQCAtMCwwICsxLDE4MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuCis8L0gyPgorVGhlIG5lc3RlZCBiZWFuIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvY29kZT4KKyAgICAgdGFncyB0byBhbGxvdyB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4KKzxQPgorPEI+U2VlOjwvQj4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxBIEhSRUY9IiNwYWNrYWdlX2Rlc2NyaXB0aW9uIj48Qj5EZXNjcmlwdGlvbjwvQj48L0E+Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWREZWZpbmVUYWcuaHRtbCI+TmVzdGVkRGVmaW5lVGFnPC9BPjwvQj48L1REPgorPFREPk5lc3RlZERlZmluZVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZERlZmluZVRlaS5odG1sIj5OZXN0ZWREZWZpbmVUZWk8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkRGVmaW5lVGVpIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBpbXBsaWVkIHNldHRpbmcgb2YgdGhlIG5hbWUgcHJvcGVydHkKKyBvZiBhIG5lc3RlZCB0YWcgaXMgcHJvcGVybHkgaGFuZGVkIGluIHRoZSBjYXN0aW5nIG9mIHRoZSBkZWZpbmVkIG9iamVjdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZVRhZzwvQT48L0I+PC9URD4KKzxURD5OZXN0ZWRXcml0ZVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZFNpemVUYWcuaHRtbCI+TmVzdGVkU2l6ZVRhZzwvQT48L0I+PC9URD4KKzxURD5OZXN0ZWRTaXplVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTmVzdGVkV3JpdGVUYWcuaHRtbCI+TmVzdGVkV3JpdGVUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkV3JpdGVUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEEgTkFNRT0icGFja2FnZV9kZXNjcmlwdGlvbiI+PCEtLSAtLT48L0E+PEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4gRGVzY3JpcHRpb24KKzwvSDI+CisKKzxQPgorVGhlIG5lc3RlZCBiZWFuIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvY29kZT4KKyAgICAgdGFncyB0byBhbGxvdyB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4gVGhlIGZ1bmRhbWVudGFsCisgIGxvZ2ljIG9mIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvY29kZT4gdGFncyBkb24ndCBjaGFuZ2UsIAorZXhjZXB0IGluIHRoYXQgYWxsIHJlZmVyZW5jZXMgdG8gIGJlYW5zIGFuZCAgYmVhbiBwcm9wZXJ0aWVzIHdpbGwgYmUgbWFuYWdlZCAKK2luIGEgbmVzdGVkIGNvbnRleHQuIDxicj4KKyA8YnI+CisgPGltZyBzcmM9ImRvYy1maWxlcy9uZXN0ZWQtYmVhbi5naWYiIGFsdD0iTmVzdGVkIGJlYW4gdGFnbGliIj4KKyA8YnI+CisgPGJyIC89IiI+CisgPGJyPgorIDxicj4KKyA8YnI+CisgPGJyPgorPFA+CisKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL3BhY2thZ2UtdHJlZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLXRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzIyODM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLXRyZWUuaHRtbApAQCAtMCwwICsxLDE1NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+UFJFVjwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorSGllcmFyY2h5IEZvciBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbgorPC9IMj4KKzwvQ0VOVEVSPgorPERMPgorPERUPjxCPlBhY2thZ2UgSGllcmFyY2hpZXM6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy10cmVlLmh0bWwiPkFsbCBQYWNrYWdlczwvQT48L0RMPgorPEhSPgorPEgyPgorQ2xhc3MgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLk9iamVjdDxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCI+PEI+SXRlcmF0ZVRlaTwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUZWkuaHRtbCI+PEI+TmVzdGVkRGVmaW5lVGVpPC9CPjwvQT48L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vRGVmaW5lVGFnLmh0bWwiPjxCPkRlZmluZVRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUYWcuaHRtbCI+PEI+TmVzdGVkRGVmaW5lVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sIj48Qj5NZXNzYWdlVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+PEI+TmVzdGVkTWVzc2FnZVRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj48Qj5TaXplVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCI+PEI+TmVzdGVkU2l6ZVRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+PEI+V3JpdGVUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCI+PEI+TmVzdGVkV3JpdGVUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzwvVUw+Cis8L1VMPgorPC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+UFJFVjwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLXVzZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLXVzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkNGU1OWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL3BhY2thZ2UtdXNlLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBQYWNrYWdlPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4KKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvY2xhc3MtdXNlL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZlN2QwYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWROYW1lU3VwcG9ydC5odG1sCkBAIC0wLDAgKzEsNTUxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWROYW1lU3VwcG9ydC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIEludGVyZmFjZTxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0PC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvQj48L0E+PC9URD4KKzxURD5OZXN0ZWQgdGFncyAmYW1wOyBzdXBwb3J0aW5nIGNsYXNzZXMgZXh0ZW5kIHRoZSBiYXNlIHN0cnV0cyB0YWdzIHRvCithbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgYmVhbiB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L2NvZGU+CisgICAgIHRhZ3MgdG8gYWxsb3cgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4KKyB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGh0bWwgdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvY29kZT4KKyAgIHRhZ3MgdG8gYWxsb3cgICB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmludGVyZmFjZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludGVyZmFjZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFBhcmVudFN1cHBvcnQuaHRtbCI+TmVzdGVkUGFyZW50U3VwcG9ydDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGludGVyZmFjZSBpcyBzbyBtYW5hZ2luZyBjbGFzc2VzIG9mIHRoZSBuZXN0ZWQgdGFnIGNhbiBpZGVudGlmeSBhIHRhZworIGFzIGEgcGFyZW50IHRhZyB0aGF0IG90aGVyIHRhZ3MgcmV0cmlldmUgbmVzdGVkIHByb3BlcnRpZXMgZnJvbS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5DbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQ8L0E+IHRoYXQgaW1wbGVtZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5VGFnLmh0bWwiPk5lc3RlZFByb3BlcnR5VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZFByb3BlcnR5VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCI+TmVzdGVkUm9vdFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRSb290VGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TmVzdGVkUHJvcGVydHlIZWxwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlIZWxwZXIuaHRtbCNnZXRDdXJyZW50TmFtZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0KSI+Z2V0Q3VycmVudE5hbWU8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+Jm5ic3A7bmVzdGVkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgYmVhbiBuYW1lIGZyb20gdGhlIHJlcXVlc3Qgb2JqZWN0IHRoYXQgdGhlIHByb3BlcnRpZXMgYXJlCisgbmVzdGluZyBhZ2FpbnN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQT4gdGhhdCBpbXBsZW1lbnQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUYWcuaHRtbCI+TmVzdGVkRGVmaW5lVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZERlZmluZVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRXcml0ZVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCI+TmVzdGVkU2l6ZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRTaXplVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCI+TmVzdGVkV3JpdGVUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkV3JpdGVUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5DbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9BPiB0aGF0IGltcGxlbWVudCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwiPk5lc3RlZENoZWNrYm94VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZENoZWNrYm94VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwiPk5lc3RlZEVycm9yc1RhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRFcnJvcnNUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwiPk5lc3RlZEZpbGVUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkRmlsZVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCI+TmVzdGVkRm9ybVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRGb3JtVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSGlkZGVuVGFnLmh0bWwiPk5lc3RlZEhpZGRlblRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRIaWRkZW5UYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWdUYWcuaHRtbCI+TmVzdGVkSW1nVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEltZ1RhZywgcmVuZGVycyB0aGUgbmVzdGVkIHZlcnNpb24gb2YgdGhlIDxpbWc+IHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCI+TmVzdGVkTGlua1RhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRMaW5rVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTWVzc2FnZXNUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sIj5OZXN0ZWRNdWx0aWJveFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRNdWx0aWJveFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc1RhZy5odG1sIj5OZXN0ZWRPcHRpb25zVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE9wdGlvbnNUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRQYXNzd29yZFRhZy5odG1sIj5OZXN0ZWRQYXNzd29yZFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRQYXNzd29yZFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFJhZGlvVGFnLmh0bWwiPk5lc3RlZFJhZGlvVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZFJhZGlvVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU2VsZWN0VGFnLmh0bWwiPk5lc3RlZFNlbGVjdFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRTZWxlY3RUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIj5OZXN0ZWRUZXh0YXJlYVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRUZXh0YXJlYVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRUYWcuaHRtbCI+TmVzdGVkVGV4dFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRUZXh0VGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPiB0aGF0IGltcGxlbWVudCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFbXB0eVRhZy5odG1sIj5OZXN0ZWRFbXB0eVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRFbXB0eVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sIj5OZXN0ZWRFcXVhbFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRFcXVhbFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCI+TmVzdGVkR3JlYXRlckVxdWFsVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEdyZWF0ZXJFcXVhbFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sIj5OZXN0ZWRHcmVhdGVyVGhhblRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRHcmVhdGVyVGhhblRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPk5lc3RlZEl0ZXJhdGVUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkSXRlcmF0ZVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCI+TmVzdGVkTGVzc0VxdWFsVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZExlc3NFcXVhbFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sIj5OZXN0ZWRMZXNzVGhhblRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRMZXNzVGhhblRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNYXRjaFRhZy5odG1sIj5OZXN0ZWRNYXRjaFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRNYXRjaFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFbXB0eVRhZy5odG1sIj5OZXN0ZWROb3RFbXB0eVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWROb3RFbXB0eVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sIj5OZXN0ZWROb3RFcXVhbFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWROb3RFcXVhbFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIj5OZXN0ZWROb3RNYXRjaFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWROb3RNYXRjaFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE5vdFByZXNlbnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTm90UHJlc2VudFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwiPk5lc3RlZFByZXNlbnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkUHJlc2VudFRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWROYW1lU3VwcG9ydC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9jbGFzcy11c2UvTmVzdGVkUGFyZW50U3VwcG9ydC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvY2xhc3MtdXNlL05lc3RlZFBhcmVudFN1cHBvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MDg3Mzc1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvY2xhc3MtdXNlL05lc3RlZFBhcmVudFN1cHBvcnQuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgSW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUGFyZW50U3VwcG9ydCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQYXJlbnRTdXBwb3J0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFBhcmVudFN1cHBvcnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkUGFyZW50U3VwcG9ydC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIEludGVyZmFjZTxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFBhcmVudFN1cHBvcnQ8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQYXJlbnRTdXBwb3J0Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUGFyZW50U3VwcG9ydC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRQYXJlbnRTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvY2xhc3MtdXNlL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjllYzAyNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5SGVscGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlIZWxwZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlIZWxwZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkUHJvcGVydHlIZWxwZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5SGVscGVyPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlIZWxwZXIKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9jbGFzcy11c2UvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9jbGFzcy11c2UvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjU1Y2FhYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbApAQCAtMCwwICsxLDU3NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgSW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlTdXBwb3J0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIEludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgSW50ZXJmYWNlPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlTdXBwb3J0PC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkPC9CPjwvQT48L1REPgorPFREPk5lc3RlZCB0YWdzICZhbXA7IHN1cHBvcnRpbmcgY2xhc3NlcyBleHRlbmQgdGhlIGJhc2Ugc3RydXRzIHRhZ3MgdG8KK2FsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW48L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBiZWFuIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvY29kZT4KKyAgICAgdGFncyB0byBhbGxvdyB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGh0bWwgdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPgorIHRhZ3MgdG8gYWxsb3cgICB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPgorICAgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJpbnRlcmZhY2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludGVyZmFjZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgaXMgc28gdGhhdCBtYW5hZ2luZyBjbGFzc2VzIGNhbiB0ZWxsIGlmIGEgbmVzdGVkIHRhZyBuZWVkcyB0byBoYXZlIGl0cworIDxpPm5hbWU8L2k+IHByb3BlcnR5IHNldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50ZXJmYWNlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUGFyZW50U3VwcG9ydC5odG1sIj5OZXN0ZWRQYXJlbnRTdXBwb3J0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgaW50ZXJmYWNlIGlzIHNvIG1hbmFnaW5nIGNsYXNzZXMgb2YgdGhlIG5lc3RlZCB0YWcgY2FuIGlkZW50aWZ5IGEgdGFnCisgYXMgYSBwYXJlbnQgdGFnIHRoYXQgb3RoZXIgdGFncyByZXRyaWV2ZSBuZXN0ZWQgcHJvcGVydGllcyBmcm9tLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvQT4gdGhhdCBpbXBsZW1lbnQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIj5OZXN0ZWRQcm9wZXJ0eVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRQcm9wZXJ0eVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSb290VGFnLmh0bWwiPk5lc3RlZFJvb3RUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkUm9vdFRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQ8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TmVzdGVkUHJvcGVydHlIZWxwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlIZWxwZXIuaHRtbCNzZXROZXN0ZWRQcm9wZXJ0aWVzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlTdXBwb3J0KSI+c2V0TmVzdGVkUHJvcGVydGllczwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+Jm5ic3A7dGFnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGVscGVyIG1ldGhvZCB0aGF0IHdpbGwgc2V0IGFsbCB0aGUgcmVsZXZhbnQgbmVzdGluZyBwcm9wZXJ0aWVzIGZvciB0aGUKKyBwcm92aWRlZCB0YWcgcmVmZXJlbmNlIGRlcGVuZGluZyBvbiB0aGUgaW1wbGVtZW50YXRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW48L0E+IHRoYXQgaW1wbGVtZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUYWcuaHRtbCI+TmVzdGVkRGVmaW5lVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZERlZmluZVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRXcml0ZVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCI+TmVzdGVkU2l6ZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRTaXplVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCI+TmVzdGVkV3JpdGVUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkV3JpdGVUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+IHRoYXQgaW1wbGVtZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sIj5OZXN0ZWRDaGVja2JveFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRDaGVja2JveFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEVycm9yc1RhZy5odG1sIj5OZXN0ZWRFcnJvcnNUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkRXJyb3JzVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sIj5OZXN0ZWRGaWxlVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEZpbGVUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwiPk5lc3RlZEZvcm1UYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkRm9ybVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEhpZGRlblRhZy5odG1sIj5OZXN0ZWRIaWRkZW5UYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkSGlkZGVuVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1hZ2VUYWcuaHRtbCI+TmVzdGVkSW1hZ2VUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTXVsdGlib3hUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWdUYWcuaHRtbCI+TmVzdGVkSW1nVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEltZ1RhZywgcmVuZGVycyB0aGUgbmVzdGVkIHZlcnNpb24gb2YgdGhlIDxpbWc+IHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCI+TmVzdGVkTGlua1RhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRMaW5rVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTWVzc2FnZXNUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sIj5OZXN0ZWRNdWx0aWJveFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRNdWx0aWJveFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc1RhZy5odG1sIj5OZXN0ZWRPcHRpb25zVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE9wdGlvbnNUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRQYXNzd29yZFRhZy5odG1sIj5OZXN0ZWRQYXNzd29yZFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRQYXNzd29yZFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFJhZGlvVGFnLmh0bWwiPk5lc3RlZFJhZGlvVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZFJhZGlvVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU2VsZWN0VGFnLmh0bWwiPk5lc3RlZFNlbGVjdFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRTZWxlY3RUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTdWJtaXRUYWcuaHRtbCI+TmVzdGVkU3VibWl0VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZFN1Ym1pdFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwiPk5lc3RlZFRleHRhcmVhVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZFRleHRhcmVhVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sIj5OZXN0ZWRUZXh0VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZFRleHRUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQT4gdGhhdCBpbXBsZW1lbnQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFbXB0eVRhZy5odG1sIj5OZXN0ZWRFbXB0eVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRFbXB0eVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sIj5OZXN0ZWRFcXVhbFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRFcXVhbFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCI+TmVzdGVkR3JlYXRlckVxdWFsVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEdyZWF0ZXJFcXVhbFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sIj5OZXN0ZWRHcmVhdGVyVGhhblRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRHcmVhdGVyVGhhblRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPk5lc3RlZEl0ZXJhdGVUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkSXRlcmF0ZVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCI+TmVzdGVkTGVzc0VxdWFsVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZExlc3NFcXVhbFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sIj5OZXN0ZWRMZXNzVGhhblRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRMZXNzVGhhblRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNYXRjaFRhZy5odG1sIj5OZXN0ZWRNYXRjaFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRNYXRjaFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFbXB0eVRhZy5odG1sIj5OZXN0ZWROb3RFbXB0eVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWROb3RFbXB0eVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sIj5OZXN0ZWROb3RFcXVhbFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWROb3RFcXVhbFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIj5OZXN0ZWROb3RNYXRjaFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWROb3RNYXRjaFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwiPk5lc3RlZE5vdFByZXNlbnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTm90UHJlc2VudFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwiPk5lc3RlZFByZXNlbnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkUHJlc2VudFRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvY2xhc3MtdXNlL05lc3RlZFByb3BlcnR5VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmI2YzFmZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkUHJvcGVydHlUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5VGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9jbGFzcy11c2UvTmVzdGVkUmVmZXJlbmNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9jbGFzcy11c2UvTmVzdGVkUmVmZXJlbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTkwYWFkMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWRSZWZlcmVuY2UuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRSZWZlcmVuY2UgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRSZWZlcmVuY2UgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUmVmZXJlbmNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFJlZmVyZW5jZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUmVmZXJlbmNlPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSZWZlcmVuY2UuaHRtbCI+TmVzdGVkUmVmZXJlbmNlPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkPC9CPjwvQT48L1REPgorPFREPk5lc3RlZCB0YWdzICZhbXA7IHN1cHBvcnRpbmcgY2xhc3NlcyBleHRlbmQgdGhlIGJhc2Ugc3RydXRzIHRhZ3MgdG8KK2FsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj5OZXN0ZWRSZWZlcmVuY2U8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSZWZlcmVuY2UuaHRtbCI+TmVzdGVkUmVmZXJlbmNlPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj5OZXN0ZWRSZWZlcmVuY2U8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk5lc3RlZFByb3BlcnR5SGVscGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwjcmVmZXJlbmNlSW5zdGFuY2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlZmVyZW5jZUluc3RhbmNlPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQdWxscyB0aGUgY3VycmVudCBuZXN0aW5nIHJlZmVyZW5jZSBmcm9tIHRoZSByZXF1ZXN0IG9iamVjdCwgYW5kIGlmIHRoZXJlCisgaXNuJ3Qgb25lIHRoZXJlLCB0aGVuIGl0IHdpbGwgY3JlYXRlIG9uZSBhbmQgc2V0IGl0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRSZWZlcmVuY2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvY2xhc3MtdXNlL05lc3RlZFJvb3RUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWRSb290VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmE3MWMyNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWRSb290VGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUm9vdFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFJvb3RUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUm9vdFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRSb290VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRSb290VGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUm9vdFRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkUm9vdFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9jbGFzcy11c2UvTmVzdGVkVGFnU3VwcG9ydC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvY2xhc3MtdXNlL05lc3RlZFRhZ1N1cHBvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjliY2QwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvY2xhc3MtdXNlL05lc3RlZFRhZ1N1cHBvcnQuaHRtbApAQCAtMCwwICsxLDU2NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgSW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkVGFnU3VwcG9ydCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRUYWdTdXBwb3J0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkVGFnU3VwcG9ydC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIEludGVyZmFjZTxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFRhZ1N1cHBvcnQ8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvQj48L0E+PC9URD4KKzxURD5OZXN0ZWQgdGFncyAmYW1wOyBzdXBwb3J0aW5nIGNsYXNzZXMgZXh0ZW5kIHRoZSBiYXNlIHN0cnV0cyB0YWdzIHRvCithbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgYmVhbiB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L2NvZGU+CisgICAgIHRhZ3MgdG8gYWxsb3cgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4KKyB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGh0bWwgdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvY29kZT4KKyAgIHRhZ3MgdG8gYWxsb3cgICB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJpbnRlcmZhY2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50ZXJmYWNlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyBzbyB0aGF0IG1hbmFnaW5nIGNsYXNzZXMgY2FuIHRlbGwgaWYgYSBuZXN0ZWQgdGFnIG5lZWRzIHRvIGhhdmUgaXRzCisgPGk+bmFtZTwvaT4gcHJvcGVydHkgc2V0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnRlcmZhY2U8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQYXJlbnRTdXBwb3J0Lmh0bWwiPk5lc3RlZFBhcmVudFN1cHBvcnQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpbnRlcmZhY2UgaXMgc28gbWFuYWdpbmcgY2xhc3NlcyBvZiB0aGUgbmVzdGVkIHRhZyBjYW4gaWRlbnRpZnkgYSB0YWcKKyBhcyBhIHBhcmVudCB0YWcgdGhhdCBvdGhlciB0YWdzIHJldHJpZXZlIG5lc3RlZCBwcm9wZXJ0aWVzIGZyb20uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludGVyZmFjZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpbnRlcmZhY2UgaXMgZm9yIG1hbmFnaW5nIGNsYXNzZXMgb2YgdGhlIG5lc3RlZCBleHRlbnNpb24sIHNvIHRoZXkgY2FuCisga25vdyB0byBzZXQgdGhlIHRhZydzIDxpPnByb3BlcnR5PC9pPiBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5DbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQ8L0E+IHRoYXQgaW1wbGVtZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIj5OZXN0ZWRQcm9wZXJ0eVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRQcm9wZXJ0eVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRSb290VGFnLmh0bWwiPk5lc3RlZFJvb3RUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkUm9vdFRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5DbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuPC9BPiB0aGF0IGltcGxlbWVudCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9OZXN0ZWREZWZpbmVUYWcuaHRtbCI+TmVzdGVkRGVmaW5lVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZERlZmluZVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRXcml0ZVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFNpemVUYWcuaHRtbCI+TmVzdGVkU2l6ZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRTaXplVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCI+TmVzdGVkV3JpdGVUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkV3JpdGVUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQT4gdGhhdCBpbXBsZW1lbnQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkQ2hlY2tib3hUYWcuaHRtbCI+TmVzdGVkQ2hlY2tib3hUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkQ2hlY2tib3hUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRFcnJvcnNUYWcuaHRtbCI+TmVzdGVkRXJyb3JzVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEVycm9yc1RhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZpbGVUYWcuaHRtbCI+TmVzdGVkRmlsZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRGaWxlVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRm9ybVRhZy5odG1sIj5OZXN0ZWRGb3JtVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEZvcm1UYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCI+TmVzdGVkSGlkZGVuVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEhpZGRlblRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwiPk5lc3RlZEltYWdlVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE11bHRpYm94VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwiPk5lc3RlZEltZ1RhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRJbWdUYWcsIHJlbmRlcnMgdGhlIG5lc3RlZCB2ZXJzaW9uIG9mIHRoZSA8aW1nPiB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwiPk5lc3RlZExpbmtUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTGlua1RhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE1lc3NhZ2VzVGFnLmh0bWwiPk5lc3RlZE1lc3NhZ2VzVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE1lc3NhZ2VzVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTXVsdGlib3hUYWcuaHRtbCI+TmVzdGVkTXVsdGlib3hUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTXVsdGlib3hUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCI+TmVzdGVkT3B0aW9uc1RhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRPcHRpb25zVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCI+TmVzdGVkUGFzc3dvcmRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkUGFzc3dvcmRUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRSYWRpb1RhZy5odG1sIj5OZXN0ZWRSYWRpb1RhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRSYWRpb1RhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sIj5OZXN0ZWRTZWxlY3RUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkU2VsZWN0VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwiPk5lc3RlZFN1Ym1pdFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRTdWJtaXRUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIj5OZXN0ZWRUZXh0YXJlYVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRUZXh0YXJlYVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRUYWcuaHRtbCI+TmVzdGVkVGV4dFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRUZXh0VGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQT4gdGhhdCBpbXBsZW1lbnQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwiPk5lc3RlZEVtcHR5VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEVtcHR5VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwiPk5lc3RlZEVxdWFsVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEVxdWFsVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJFcXVhbFRhZy5odG1sIj5OZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkR3JlYXRlckVxdWFsVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwiPk5lc3RlZEdyZWF0ZXJUaGFuVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZEdyZWF0ZXJUaGFuVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCI+TmVzdGVkSXRlcmF0ZVRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRJdGVyYXRlVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sIj5OZXN0ZWRMZXNzRXF1YWxUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTGVzc0VxdWFsVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NUaGFuVGFnLmh0bWwiPk5lc3RlZExlc3NUaGFuVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZExlc3NUaGFuVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1hdGNoVGFnLmh0bWwiPk5lc3RlZE1hdGNoVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE1hdGNoVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwiPk5lc3RlZE5vdEVtcHR5VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE5vdEVtcHR5VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVxdWFsVGFnLmh0bWwiPk5lc3RlZE5vdEVxdWFsVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE5vdEVxdWFsVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdE1hdGNoVGFnLmh0bWwiPk5lc3RlZE5vdE1hdGNoVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05lc3RlZE5vdE1hdGNoVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkTm90UHJlc2VudFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWROb3RQcmVzZW50VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkUHJlc2VudFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOZXN0ZWRQcmVzZW50VGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkVGFnU3VwcG9ydC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9jbGFzcy11c2UvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9jbGFzcy11c2UvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Y3YjgyNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRXcml0ZU5lc3RpbmdUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRXcml0ZU5lc3RpbmdUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkV3JpdGVOZXN0aW5nVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkV3JpdGVOZXN0aW5nVGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFdyaXRlTmVzdGluZ1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9kb2MtZmlsZXMvbmVzdGVkVU1MLmdpZiBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2RvYy1maWxlcy9uZXN0ZWRVTUwuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmOGM5NDIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9kb2MtZmlsZXMvbmVzdGVkVU1MLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ1ZWRhNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkQ2hlY2tib3hUYWcuaHRtbApAQCAtMCwwICsxLDQ5NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZENoZWNrYm94VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkQ2hlY2tib3hUYWcsTmVzdGVkQ2hlY2tib3hUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZENoZWNrYm94VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZENoZWNrYm94VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRFcnJvcnNUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZENoZWNrYm94VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBOZXN0ZWRDaGVja2JveFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2hlY2tib3hUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZENoZWNrYm94VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5lc3RlZENoZWNrYm94VGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPjxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9ETD4KKworPFA+CitOZXN0ZWRDaGVja2JveFRhZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+QXJyb24gQmF0ZXM8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZENoZWNrYm94VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sI29yaWdpbmFsTmFtZSI+b3JpZ2luYWxOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+b3JpZ2luYWxQcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2hlY2tib3hUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCI+Q2hlY2tib3hUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjdGV4dCI+dGV4dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+aW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwjTmVzdGVkQ2hlY2tib3hUYWcoKSI+TmVzdGVkQ2hlY2tib3hUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2hlY2tib3hUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+ZG9BZnRlckJvZHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2hlY2tib3hUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+Z2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBbHQoKSI+Z2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBbHRLZXkoKSI+Z2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRCdW5kbGUoKSI+Z2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RWxlbWVudENsb3NlKCkiPmdldEVsZW1lbnRDbG9zZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0SW5kZXhlZCgpIj5nZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRMb2NhbGUoKSI+Z2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmJsdXIoKSI+Z2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNoYW5nZSgpIj5nZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jbGljaygpIj5nZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmRibGNsaWNrKCkiPmdldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZm9jdXMoKSI+Z2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlkb3duKCkiPmdldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlwcmVzcygpIj5nZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXVwKCkiPmdldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vkb3duKCkiPmdldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlbW92ZSgpIj5nZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW91dCgpIj5nZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3ZlcigpIj5nZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZXVwKCkiPmdldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25zZWxlY3QoKSI+Z2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFJlYWRvbmx5KCkiPmdldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZSgpIj5nZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj5nZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUlkKCkiPmdldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRhYmluZGV4KCkiPmdldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZSgpIj5nZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGVLZXkoKSI+Z2V0VGl0bGVLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2lzWGh0bWwoKSI+aXNYaHRtbDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbG9va3VwUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmxvb2t1cFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNtZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5tZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRXZlbnRIYW5kbGVycygpIj5wcmVwYXJlRXZlbnRIYW5kbGVyczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUZvY3VzRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlRm9jdXNFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVJbmRleChqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLmxhbmcuU3RyaW5nKSI+cHJlcGFyZUluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlS2V5RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlS2V5RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlTW91c2VFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVNb3VzZUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVN0eWxlcygpIj5wcmVwYXJlU3R5bGVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlVGV4dEV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZVRleHRFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFjY2Vzc2tleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHQoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0S2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXREaXNhYmxlZChib29sZWFuKSI+c2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEluZGV4ZWQoYm9vbGVhbikiPnNldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmJsdXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZUtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGVLZXk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkTmFtZVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJvcmlnaW5hbE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvcmlnaW5hbFByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTmVzdGVkQ2hlY2tib3hUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTmVzdGVkQ2hlY2tib3hUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRDaGVja2JveFRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4gR2V0cyB0aGUgcmVsYXRpdmUgcHJvcGVydHkKKyBhbmQgbGVhdmVzIHRoZSByZXN0IHVwIHRvIHRoZSBvcmlnaW5hbCB0YWcgaW1wbGVtZW50YXRpb24uIFN3ZWV0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IEpTUCBjb250aW51YXRpb24gZGlyZWN0aXZlLgorICAgICAgICAgICAgIFRoaXMgaXMgaW4gdGhlIGhhbmRzIG9mIHRoZSBzdXBlciBjbGFzcy4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLiBUaGUgbmVzdGVkIHRhZ3MgaGVyZSB3aWxsIHJlc3RvcmUKKyBhbGwgdGhlIG9yaWdpbmFsIHZhbHVlIGZvciB0aGUgdGFnIGl0c2VsZiBhbmQgdGhlIG5lc3RpbmcgY29udGV4dC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj5DaGVja2JveFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCB0byBkZXNjcmliZSB0aGUgbmV4dCBzdGVwIGZvciB0aGUgSlNQIHByb2Nlc3NvcgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGZvciB0aGUgYmFkIHRoaW5ncyBKU1AncyBkbzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPkNoZWNrYm94VGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZENoZWNrYm94VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRFcnJvcnNUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZENoZWNrYm94VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRFcnJvcnNUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZmMzAwMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwKQEAgLTAsMCArMSw0MzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWRFcnJvcnNUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRFcnJvcnNUYWcsTmVzdGVkRXJyb3JzVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRFcnJvcnNUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkRXJyb3JzVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRFcnJvcnNUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZEVycm9yc1RhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkVycm9yc1RhZzwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkRXJyb3JzVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkRXJyb3JzVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZEVycm9yc1RhZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+QXJyb24gQmF0ZXMsIERhdmlkIFdpbnRlcmZlbGR0PC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRFcnJvcnNUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEVycm9yc1RhZy5odG1sI29yaWdpbmFsTmFtZSI+b3JpZ2luYWxOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEVycm9yc1RhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkVycm9yc1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2J1bmRsZSI+YnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2xpbmVFbmQiPmxpbmVFbmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNsb2NhbGUiPmxvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEVycm9yc1RhZy5odG1sI05lc3RlZEVycm9yc1RhZygpIj5OZXN0ZWRFcnJvcnNUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEVycm9yc1RhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRFcnJvcnNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRXJyb3JzVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNnZXRMb2NhbGUoKSI+Z2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRXJyb3JzVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJvcmlnaW5hbE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvcmlnaW5hbFByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTmVzdGVkRXJyb3JzVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZEVycm9yc1RhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk5lc3RlZEVycm9yc1RhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4gR2V0cyB0aGUgcmVsYXRpdmUgcHJvcGVydHkKKyBhbmQgbGVhdmVzIHRoZSByZXN0IHVwIHRvIHRoZSBvcmlnaW5hbCB0YWcgaW1wbGVtZW50YXRpb24uIFN3ZWV0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+RXJyb3JzVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IEpTUCBjb250aW51YXRpb24gZGlyZWN0aXZlLgorICAgICAgICAgICAgIFRoaXMgaXMgaW4gdGhlIGhhbmRzIG9mIHRoZSBzdXBlciBjbGFzcy4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLiBUaGUgbmVzdGVkIHRhZ3MgaGVyZSB3aWxsIHJlc3RvcmUKKyBhbGwgdGhlIG9yaWdpbmFsIHZhbHVlIGZvciB0aGUgdGFnIGl0c2VsZiBhbmQgdGhlIG5lc3RpbmcgY29udGV4dC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj5FcnJvcnNUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkRXJyb3JzVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRFcnJvcnNUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZpbGVUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjZTA4OWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZpbGVUYWcuaHRtbApAQCAtMCwwICsxLDUxNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZEZpbGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRGaWxlVGFnLE5lc3RlZEZpbGVUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZEZpbGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkRmlsZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEZpbGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZEZpbGVUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZpbGVUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEZpbGVUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkRmlsZVRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwiPkZpbGVUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZEZpbGVUYWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+QXJyb24gQmF0ZXM8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEZpbGVUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZpbGVUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPm9yaWdpbmFsTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+b3JpZ2luYWxQcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjYWNjZXB0Ij5hY2NlcHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjcmVkaXNwbGF5Ij5yZWRpc3BsYXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCN0eXBlIj50eXBlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjY29scyI+Y29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI21heGxlbmd0aCI+bWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcm93cyI+cm93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2luZGV4ZWQiPmluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwjTmVzdGVkRmlsZVRhZygpIj5OZXN0ZWRGaWxlVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZpbGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXRBY2NlcHQoKSI+Z2V0QWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0UmVkaXNwbGF5KCkiPmdldFJlZGlzcGxheTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldEFjY2VwdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldFJlZGlzcGxheShib29sZWFuKSI+c2V0UmVkaXNwbGF5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRDb2xzKCkiPmdldENvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRNYXhsZW5ndGgoKSI+Z2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRSb3dzKCkiPmdldFJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRTaXplKCkiPmdldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldENvbHMoamF2YS5sYW5nLlN0cmluZykiPnNldENvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRNYXhsZW5ndGgoamF2YS5sYW5nLlN0cmluZykiPnNldE1heGxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFJvd3MoamF2YS5sYW5nLlN0cmluZykiPnNldFJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRTaXplKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTaXplPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkTmFtZVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJvcmlnaW5hbE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvcmlnaW5hbFByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTmVzdGVkRmlsZVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRGaWxlVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkRmlsZVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4gR2V0cyB0aGUgcmVsYXRpdmUgcHJvcGVydHkKKyBhbmQgbGVhdmVzIHRoZSByZXN0IHVwIHRvIHRoZSBvcmlnaW5hbCB0YWcgaW1wbGVtZW50YXRpb24uIFN3ZWV0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IEpTUCBjb250aW51YXRpb24gZGlyZWN0aXZlLgorICAgICAgICAgICAgIFRoaXMgaXMgaW4gdGhlIGhhbmRzIG9mIHRoZSBzdXBlciBjbGFzcy4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLiBUaGUgbmVzdGVkIHRhZ3MgaGVyZSB3aWxsIHJlc3RvcmUKKyBhbGwgdGhlIG9yaWdpbmFsIHZhbHVlIGZvciB0aGUgdGFnIGl0c2VsZiBhbmQgdGhlIG5lc3RpbmcgY29udGV4dC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCB0byBkZXNjcmliZSB0aGUgbmV4dCBzdGVwIGZvciB0aGUgSlNQIHByb2Nlc3NvcgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGZvciB0aGUgYmFkIHRoaW5ncyBKU1AncyBkbzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZEZpbGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEVycm9yc1RhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRGaWxlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDEzNTExCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwKQEAgLTAsMCArMSw0NzYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWRGb3JtVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkRm9ybVRhZyxOZXN0ZWRGb3JtVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRGb3JtVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZEZvcm1UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZpbGVUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSGlkZGVuVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRGb3JtVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBOZXN0ZWRGb3JtVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZvcm1UYWc8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEZvcm1UYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWRGb3JtVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT48RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvREw+CisKKzxQPgorTmVzdGVkRm9ybVRhZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+QXJyb24gQmF0ZXM8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEZvcm1UYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCNvcmlnaW5hbE5lc3RpbmciPm9yaWdpbmFsTmVzdGluZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwjb3JpZ2luYWxOZXN0aW5nTmFtZSI+b3JpZ2luYWxOZXN0aW5nTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRm9ybVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2FjdGlvbiI+YWN0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2JlYW5OYW1lIj5iZWFuTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNiZWFuU2NvcGUiPmJlYW5TY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNiZWFuVHlwZSI+YmVhblR5cGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZW5jdHlwZSI+ZW5jdHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNmb2N1cyI+Zm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZm9jdXNJbmRleCI+Zm9jdXNJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNsaW5lRW5kIj5saW5lRW5kPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI21hcHBpbmciPm1hcHBpbmc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI21ldGhvZCI+bWV0aG9kPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI21vZHVsZUNvbmZpZyI+bW9kdWxlQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjb25yZXNldCI+b25yZXNldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNvbnN1Ym1pdCI+b25zdWJtaXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc3R5bGUiPnN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3N0eWxlQ2xhc3MiPnN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc3R5bGVJZCI+c3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCN0YXJnZXQiPnRhcmdldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCN0eXBlIj50eXBlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwjTmVzdGVkRm9ybVRhZygpIj5OZXN0ZWRGb3JtVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGlzIG9ubHkgb3ZlcnJpZGVuIHRvIGNsZWFuIHVwIHRoZSBpbmNsdWRlIHJlZmVyZW5jZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPdmVycmlkaW5nIHRvIGFsbG93IHRoZSBjaGFuY2UgdG8gc2V0IHRoZSBkZXRhaWxzIG9mIHRoZSBzeXN0ZW0sIHNvIHRoYXQKKyBkeW5hbWljIGluY2x1ZGVzIGNhbiBiZSBwb3NzaWJsZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIHN0cmluZyB2YWx1ZSBvZiB0aGUgInByb3BlcnR5IiBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRm9ybVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRm9ybVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuZXdQcm9wZXJ0eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHRlciBmb3IgdGhlICJwcm9wZXJ0eSIgcHJvcGVydHk8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZvcm1UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0QWN0aW9uKCkiPmdldEFjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRCZWFuTmFtZSgpIj5nZXRCZWFuTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRFbmN0eXBlKCkiPmdldEVuY3R5cGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0Rm9jdXMoKSI+Z2V0Rm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0Rm9jdXNJbmRleCgpIj5nZXRGb2N1c0luZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldE1ldGhvZCgpIj5nZXRNZXRob2Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldE9ucmVzZXQoKSI+Z2V0T25yZXNldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRPbnN1Ym1pdCgpIj5nZXRPbnN1Ym1pdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRTdHlsZSgpIj5nZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2dldFRhcmdldCgpIj5nZXRUYXJnZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjZ2V0VHlwZSgpIj5nZXRUeXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI2luaXRGb3JtQmVhbigpIj5pbml0Rm9ybUJlYW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjbG9va3VwKCkiPmxvb2t1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNyZW5kZXJGb2N1c0phdmFzY3JpcHQoKSI+cmVuZGVyRm9jdXNKYXZhc2NyaXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3JlbmRlckZvcm1TdGFydEVsZW1lbnQoKSI+cmVuZGVyRm9ybVN0YXJ0RWxlbWVudDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNyZW5kZXJUb2tlbigpIj5yZW5kZXJUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRBY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPnNldEFjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRFbmN0eXBlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRFbmN0eXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldEZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRGb2N1c0luZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb2N1c0luZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldE1ldGhvZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWV0aG9kPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0T25yZXNldChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25yZXNldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRPbnN1Ym1pdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zdWJtaXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0VGFyZ2V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYXJnZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VHlwZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJvcmlnaW5hbE5lc3RpbmciPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmVzdGluZzwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmVzdGluZzwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvcmlnaW5hbE5lc3RpbmdOYW1lIj48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbE5lc3RpbmdOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOZXN0aW5nTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTmVzdGVkRm9ybVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRGb3JtVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkRm9ybVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0UHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlICJwcm9wZXJ0eSIgcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD50aGUgcHJvcGVydHkgcHJvcGVydHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuZXdQcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD5TZXR0ZXIgZm9yIHRoZSAicHJvcGVydHkiIHByb3BlcnR5Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5ld1Byb3BlcnR5PC9DT0RFPiAtIG5ldyB2YWx1ZSBmb3IgdGhlIHByb3BlcnR5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgdG8gYWxsb3cgdGhlIGNoYW5jZSB0byBzZXQgdGhlIGRldGFpbHMgb2YgdGhlIHN5c3RlbSwgc28gdGhhdAorIGR5bmFtaWMgaW5jbHVkZXMgY2FuIGJlIHBvc3NpYmxlCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+VGhpcyBpcyBvbmx5IG92ZXJyaWRlbiB0byBjbGVhbiB1cCB0aGUgaW5jbHVkZSByZWZlcmVuY2UKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+Rm9ybVRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9Gb3JtVGFnLmh0bWwiPkZvcm1UYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkRm9ybVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEZvcm1UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEhpZGRlblRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjA4OTIwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbApAQCAtMCwwICsxLDUzNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZEhpZGRlblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEhpZGRlblRhZyxOZXN0ZWRIaWRkZW5UYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZEhpZGRlblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRIaWRkZW5UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1hZ2VUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEhpZGRlblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkSGlkZGVuVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkhpZGRlblRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkSGlkZGVuVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5lc3RlZEhpZGRlblRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+SGlkZGVuVGFnPC9BPjxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9ETD4KKworPFA+CitOZXN0ZWRIaWRkZW5UYWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRIaWRkZW5UYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEhpZGRlblRhZy5odG1sI29yaWdpbmFsTmFtZSI+b3JpZ2luYWxOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEhpZGRlblRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkhpZGRlblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+SGlkZGVuVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sI3dyaXRlIj53cml0ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2FjY2VwdCI+YWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3JlZGlzcGxheSI+cmVkaXNwbGF5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjdHlwZSI+dHlwZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2NvbHMiPmNvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtYXhsZW5ndGgiPm1heGxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3Jvd3MiPnJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpbmRleGVkIj5pbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSGlkZGVuVGFnLmh0bWwjTmVzdGVkSGlkZGVuVGFnKCkiPk5lc3RlZEhpZGRlblRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSGlkZGVuVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEhpZGRlblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5IaWRkZW5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj5IaWRkZW5UYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwjZ2V0V3JpdGUoKSI+Z2V0V3JpdGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCNzZXRXcml0ZShib29sZWFuKSI+c2V0V3JpdGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2dldEFjY2VwdCgpIj5nZXRBY2NlcHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXRSZWRpc3BsYXkoKSI+Z2V0UmVkaXNwbGF5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0QWNjZXB0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2NlcHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0UmVkaXNwbGF5KGJvb2xlYW4pIj5zZXRSZWRpc3BsYXk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldENvbHMoKSI+Z2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldE1heGxlbmd0aCgpIj5nZXRNYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFJvd3MoKSI+Z2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFNpemUoKSI+Z2V0U2l6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Q29scyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldE1heGxlbmd0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Um93cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFNpemUoamF2YS5sYW5nLlN0cmluZykiPnNldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEVsZW1lbnRDbG9zZSgpIj5nZXRFbGVtZW50Q2xvc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEluZGV4ZWQoKSI+Z2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlS2V5KCkiPmdldFRpdGxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb2t1cFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRJbmRleGVkKGJvb2xlYW4pIj5zZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRIaWRkZW5UYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTmVzdGVkSGlkZGVuVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkSGlkZGVuVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj5IaWRkZW5UYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCisgICAgICAgICAgICAgVGhpcyBpcyBpbiB0aGUgaGFuZHMgb2YgdGhlIHN1cGVyIGNsYXNzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuIFRoZSBuZXN0ZWQgdGFncyBoZXJlIHdpbGwgcmVzdG9yZQorIGFsbCB0aGUgb3JpZ2luYWwgdmFsdWUgZm9yIHRoZSB0YWcgaXRzZWxmIGFuZCB0aGUgbmVzdGluZyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj5IaWRkZW5UYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkSGlkZGVuVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRIaWRkZW5UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkyYTIzZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1hZ2VUYWcuaHRtbApAQCAtMCwwICsxLDQ4OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZEltYWdlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkSW1hZ2VUYWcsTmVzdGVkSW1hZ2VUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZEltYWdlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZEltYWdlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRIaWRkZW5UYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRJbWFnZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkSW1hZ2VUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TdWJtaXRUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSW1hZ2VUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEltYWdlVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkSW1hZ2VUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvREw+CisKKzxQPgorTmVzdGVkTXVsdGlib3hUYWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRJbWFnZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1hZ2VUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij5vcmlnaW5hbFByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWFnZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2FsaWduIj5hbGlnbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjYm9yZGVyIj5ib3JkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3BhZ2UiPnBhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3BhZ2VLZXkiPnBhZ2VLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc3JjIj5zcmM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NyY0tleSI+c3JjS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU3VibWl0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjdGV4dCI+dGV4dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2luZGV4ZWQiPmluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWFnZVRhZy5odG1sI05lc3RlZEltYWdlVGFnKCkiPk5lc3RlZEltYWdlVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWFnZVRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWFnZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWFnZVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltYWdlVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sIj5JbWFnZVRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldEFsaWduKCkiPmdldEFsaWduPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNnZXRCb3JkZXIoKSI+Z2V0Qm9yZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNnZXRQYWdlKCkiPmdldFBhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldFBhZ2VLZXkoKSI+Z2V0UGFnZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldFNyYygpIj5nZXRTcmM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI2dldFNyY0tleSgpIj5nZXRTcmNLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldEFsaWduKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbGlnbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc2V0Qm9yZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCb3JkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldFBhZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldFBhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldFBhZ2VLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFBhZ2VLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjc2V0U3JjKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTcmM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWFnZVRhZy5odG1sI3NldFNyY0tleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3JjS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNzcmMoKSI+c3JjPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlN1Ym1pdFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRJbWFnZVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRJbWFnZVRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk5lc3RlZEltYWdlVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCisgICAgICAgICAgICAgVGhpcyBpcyBpbiB0aGUgaGFuZHMgb2YgdGhlIHN1cGVyIGNsYXNzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuIFRoZSBuZXN0ZWQgdGFncyBoZXJlIHdpbGwgcmVzdG9yZQorIGFsbCB0aGUgb3JpZ2luYWwgdmFsdWUgZm9yIHRoZSB0YWcgaXRzZWxmIGFuZCB0aGUgbmVzdGluZyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPkltYWdlVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+SW1hZ2VUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkSW1hZ2VUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEhpZGRlblRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWdUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEltYWdlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWdUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2ZhYWUwMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwKQEAgLTAsMCArMSw0OTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWRJbWdUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRJbWdUYWcsTmVzdGVkSW1nVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRJbWdUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkSW1nVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWFnZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRJbWdUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZEltZ1RhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltZ1RhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkSW1nVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5lc3RlZEltZ1RhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+SW1nVGFnPC9BPjxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9ETD4KKworPFA+CitOZXN0ZWRJbWdUYWcsIHJlbmRlcnMgdGhlIG5lc3RlZCB2ZXJzaW9uIG9mIHRoZSA8aW1nPiB0YWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+QXJyb24gQmF0ZXM8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEltZ1RhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj5vcmlnaW5hbE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+b3JpZ2luYWxQcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSW1nVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjYWxpZ24iPmFsaWduPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjYm9yZGVyIj5ib3JkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNoZWlnaHQiPmhlaWdodDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2hzcGFjZSI+aHNwYWNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjaW1hZ2VOYW1lIj5pbWFnZU5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNpc21hcCI+aXNtYXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNsb3dzcmMiPmxvd3NyYzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNwYWdlIj5wYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcGFnZUtleSI+cGFnZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3BhcmFtSWQiPnBhcmFtSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNwYXJhbU5hbWUiPnBhcmFtTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3BhcmFtUHJvcGVydHkiPnBhcmFtUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNwYXJhbVNjb3BlIj5wYXJhbVNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc3JjIj5zcmM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzcmNLZXkiPnNyY0tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3VzZW1hcCI+dXNlbWFwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjdnNwYWNlIj52c3BhY2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCN3aWR0aCI+d2lkdGg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpbmRleGVkIj5pbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwjTmVzdGVkSW1nVGFnKCkiPk5lc3RlZEltZ1RhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltZ1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWdUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWdUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0QWxpZ24oKSI+Z2V0QWxpZ248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRCb3JkZXIoKSI+Z2V0Qm9yZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0SGVpZ2h0KCkiPmdldEhlaWdodDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldEhzcGFjZSgpIj5nZXRIc3BhY2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRJbWFnZU5hbWUoKSI+Z2V0SW1hZ2VOYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0SXNtYXAoKSI+Z2V0SXNtYXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRMb3dzcmMoKSI+Z2V0TG93c3JjPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0UGFnZSgpIj5nZXRQYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0UGFnZUtleSgpIj5nZXRQYWdlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0UGFyYW1JZCgpIj5nZXRQYXJhbUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0UGFyYW1OYW1lKCkiPmdldFBhcmFtTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFBhcmFtUHJvcGVydHkoKSI+Z2V0UGFyYW1Qcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFBhcmFtU2NvcGUoKSI+Z2V0UGFyYW1TY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRTcmMoKSI+Z2V0U3JjPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0U3JjS2V5KCkiPmdldFNyY0tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI2dldFVzZW1hcCgpIj5nZXRVc2VtYXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNnZXRWc3BhY2UoKSI+Z2V0VnNwYWNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZ2V0V2lkdGgoKSI+Z2V0V2lkdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRBbGlnbihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWxpZ248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRCb3JkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEJvcmRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldEhlaWdodChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGVpZ2h0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0SHNwYWNlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIc3BhY2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRJbWFnZU5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldEltYWdlTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldElzbWFwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJc21hcDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldExvd3NyYyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG93c3JjPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFBhZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldFBhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRQYWdlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYWdlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0UGFyYW1JZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1JZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFBhcmFtTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1OYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0UGFyYW1Qcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1Qcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFBhcmFtU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtU2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRTcmMoamF2YS5sYW5nLlN0cmluZykiPnNldFNyYzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFNyY0tleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3JjS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjc2V0VXNlbWFwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VtYXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNzZXRWc3BhY2UoamF2YS5sYW5nLlN0cmluZykiPnNldFZzcGFjZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NldFdpZHRoKGphdmEubGFuZy5TdHJpbmcpIj5zZXRXaWR0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI3NyYygpIj5zcmM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCN1cmwoamF2YS5sYW5nLlN0cmluZykiPnVybDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBY2Nlc3NrZXkoKSI+Z2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBbHQoKSI+Z2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRBbHRLZXkoKSI+Z2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRCdW5kbGUoKSI+Z2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXREaXNhYmxlZCgpIj5nZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RWxlbWVudENsb3NlKCkiPmdldEVsZW1lbnRDbG9zZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0SW5kZXhlZCgpIj5nZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRMb2NhbGUoKSI+Z2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmJsdXIoKSI+Z2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNoYW5nZSgpIj5nZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jbGljaygpIj5nZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmRibGNsaWNrKCkiPmdldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZm9jdXMoKSI+Z2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlkb3duKCkiPmdldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXlwcmVzcygpIj5nZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXVwKCkiPmdldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vkb3duKCkiPmdldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlbW92ZSgpIj5nZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW91dCgpIj5nZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3ZlcigpIj5nZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZXVwKCkiPmdldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25zZWxlY3QoKSI+Z2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFJlYWRvbmx5KCkiPmdldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZSgpIj5nZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj5nZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUlkKCkiPmdldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRhYmluZGV4KCkiPmdldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZSgpIj5nZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGVLZXkoKSI+Z2V0VGl0bGVLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2lzWGh0bWwoKSI+aXNYaHRtbDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbG9va3VwUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmxvb2t1cFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNtZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5tZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRXZlbnRIYW5kbGVycygpIj5wcmVwYXJlRXZlbnRIYW5kbGVyczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUZvY3VzRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlRm9jdXNFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVJbmRleChqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLmxhbmcuU3RyaW5nKSI+cHJlcGFyZUluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlS2V5RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlS2V5RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlTW91c2VFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVNb3VzZUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVN0eWxlcygpIj5wcmVwYXJlU3R5bGVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlVGV4dEV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZVRleHRFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFjY2Vzc2tleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHQoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0S2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEJ1bmRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXREaXNhYmxlZChib29sZWFuKSI+c2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEluZGV4ZWQoYm9vbGVhbikiPnNldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmJsdXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jaGFuZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmRibGNsaWNrKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmZvY3VzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5ZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlwcmVzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXl1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZWRvd24oamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlbW92ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdXQoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2VvdmVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3ZlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uc2VsZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0UmVhZG9ubHkoYm9vbGVhbikiPnNldFJlYWRvbmx5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRhYmluZGV4KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZUtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGVLZXk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ib3JpZ2luYWxOYW1lIj48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib3JpZ2luYWxQcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5lc3RlZEltZ1RhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRJbWdUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRJbWdUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEdldHMgdGhlIHJlbGF0aXZlIHByb3BlcnR5CisgYW5kIGxlYXZlcyB0aGUgcmVzdCB1cCB0byB0aGUgb3JpZ2luYWwgdGFnIGltcGxlbWVudGF0aW9uLiBTd2VldC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgICBUaGlzIGlzIGluIHRoZSBoYW5kcyBvZiB0aGUgc3VwZXIgY2xhc3MuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4gVGhlIG5lc3RlZCB0YWdzIGhlcmUgd2lsbCByZXN0b3JlCisgYWxsIHRoZSBvcmlnaW5hbCB2YWx1ZSBmb3IgdGhlIHRhZyBpdHNlbGYgYW5kIHRoZSBuZXN0aW5nIGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sIj5JbWdUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgdG8gZGVzY3JpYmUgdGhlIG5leHQgc3RlcCBmb3IgdGhlIEpTUCBwcm9jZXNzb3IKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBmb3IgdGhlIGJhZCB0aGluZ3MgSlNQJ3MgZG88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPkltZ1RhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRJbWdUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEltZ1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTGlua1RhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFiNGMyMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTGlua1RhZy5odG1sCkBAIC0wLDAgKzEsNTEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkTGlua1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZExpbmtUYWcsTmVzdGVkTGlua1RhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTmVzdGVkTGlua1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRMaW5rVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWdUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZExpbmtUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZExpbmtUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTGlua1RhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkTGlua1RhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWRMaW5rVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+TGlua1RhZzwvQT48RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvREw+CisKKzxQPgorTmVzdGVkTGlua1RhZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+QXJyb24gQmF0ZXM8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZExpbmtUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCNvcmlnTmFtZSI+b3JpZ05hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTGlua1RhZy5odG1sI29yaWdQYXJhbVByb3BlcnR5Ij5vcmlnUGFyYW1Qcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwjb3JpZ1Byb3BlcnR5Ij5vcmlnUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNhY3Rpb24iPmFjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNhbmNob3IiPmFuY2hvcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNmb3J3YXJkIj5mb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2hyZWYiPmhyZWY8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjaW5kZXhJZCI+aW5kZXhJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNsaW5rTmFtZSI+bGlua05hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFnZSI+cGFnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNwYXJhbUlkIj5wYXJhbUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3BhcmFtTmFtZSI+cGFyYW1OYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3BhcmFtUHJvcGVydHkiPnBhcmFtUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjcGFyYW1TY29wZSI+cGFyYW1TY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3RhcmdldCI+dGFyZ2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3RleHQiPnRleHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjdHJhbnNhY3Rpb24iPnRyYW5zYWN0aW9uPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+aW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCNOZXN0ZWRMaW5rVGFnKCkiPk5lc3RlZExpbmtUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTGlua1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTGlua1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNjYWxjdWxhdGVVUkwoKSI+Y2FsY3VsYXRlVVJMPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPmRvQWZ0ZXJCb2R5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldEFjdGlvbigpIj5nZXRBY3Rpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0QW5jaG9yKCkiPmdldEFuY2hvcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRGb3J3YXJkKCkiPmdldEZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0SHJlZigpIj5nZXRIcmVmPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldEluZGV4SWQoKSI+Z2V0SW5kZXhJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRMaW5rTmFtZSgpIj5nZXRMaW5rTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UGFnZSgpIj5nZXRQYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFBhcmFtSWQoKSI+Z2V0UGFyYW1JZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYXJhbU5hbWUoKSI+Z2V0UGFyYW1OYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2dldFBhcmFtUHJvcGVydHkoKSI+Z2V0UGFyYW1Qcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRQYXJhbVNjb3BlKCkiPmdldFBhcmFtU2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjZ2V0VGFyZ2V0KCkiPmdldFRhcmdldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNnZXRUcmFuc2FjdGlvbigpIj5nZXRUcmFuc2FjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRBY3Rpb24oamF2YS5sYW5nLlN0cmluZykiPnNldEFjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRBbmNob3IoamF2YS5sYW5nLlN0cmluZykiPnNldEFuY2hvcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRGb3J3YXJkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb3J3YXJkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldEhyZWYoamF2YS5sYW5nLlN0cmluZykiPnNldEhyZWY8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0SW5kZXhJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW5kZXhJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRMaW5rTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TGlua05hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFBhcmFtSWQoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtSWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1OYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbU5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0UGFyYW1Qcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1Qcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRQYXJhbVNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbVNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0VGFyZ2V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUYXJnZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwjc2V0VHJhbnNhY3Rpb24oYm9vbGVhbikiPnNldFRyYW5zYWN0aW9uPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdOYW1lIj48IS0tIC0tPjwvQT48SDM+CitvcmlnTmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdQcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ1Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ1Byb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdQYXJhbVByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitvcmlnUGFyYW1Qcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdQYXJhbVByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRMaW5rVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZExpbmtUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRMaW5rVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCisgICAgICAgICAgICAgVGhpcyBpcyBpbiB0aGUgaGFuZHMgb2YgdGhlIHN1cGVyIGNsYXNzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuIFRoZSBuZXN0ZWQgdGFncyBoZXJlIHdpbGwgcmVzdG9yZQorIGFsbCB0aGUgb3JpZ2luYWwgdmFsdWUgZm9yIHRoZSB0YWcgaXRzZWxmIGFuZCB0aGUgbmVzdGluZyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sIj5MaW5rVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPkxpbmtUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkTGlua1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1nVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE1lc3NhZ2VzVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRMaW5rVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4YzdhODgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE1lc3NhZ2VzVGFnLmh0bWwKQEAgLTAsMCArMSw0NzUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWRNZXNzYWdlc1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE1lc3NhZ2VzVGFnLE5lc3RlZE1lc3NhZ2VzVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRNZXNzYWdlc1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTGlua1RhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZE1lc3NhZ2VzVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5NZXNzYWdlc1RhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkTWVzc2FnZXNUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkTWVzc2FnZXNUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZE1lc3NhZ2VzVGFnLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlcywgRGF2aWQgV2ludGVyZmVsZHQ8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE1lc3NhZ2VzVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sI29yaWdpbmFsTmFtZSI+b3JpZ2luYWxOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE1lc3NhZ2VzVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+b3JpZ2luYWxQcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTWVzc2FnZXNUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNidW5kbGUiPmJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZm9vdGVyIj5mb290ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2hlYWRlciI+aGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNpZCI+aWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2l0ZXJhdG9yIj5pdGVyYXRvcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjbG9jYWxlIj5sb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI21lc3NhZ2UiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI21lc3NhZ2VSZXNvdXJjZXMiPm1lc3NhZ2VSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI3Byb2Nlc3NlZCI+cHJvY2Vzc2VkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sI05lc3RlZE1lc3NhZ2VzVGFnKCkiPk5lc3RlZE1lc3NhZ2VzVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk1lc3NhZ2VzVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPmRvQWZ0ZXJCb2R5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNnZXRCdW5kbGUoKSI+Z2V0QnVuZGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNnZXRGb290ZXIoKSI+Z2V0Rm9vdGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNnZXRIZWFkZXIoKSI+Z2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNnZXRJZCgpIj5nZXRJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjZ2V0TWVzc2FnZSgpIj5nZXRNZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwjc2V0Rm9vdGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGb290ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI3NldEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI3NldExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNzZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ib3JpZ2luYWxOYW1lIj48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib3JpZ2luYWxQcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5lc3RlZE1lc3NhZ2VzVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZE1lc3NhZ2VzVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkTWVzc2FnZXNUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEdldHMgdGhlIHJlbGF0aXZlIHByb3BlcnR5CisgYW5kIGxlYXZlcyB0aGUgcmVzdCB1cCB0byB0aGUgb3JpZ2luYWwgdGFnIGltcGxlbWVudGF0aW9uLiBTd2VldC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgICBUaGlzIGlzIGluIHRoZSBoYW5kcyBvZiB0aGUgc3VwZXIgY2xhc3MuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4gVGhlIG5lc3RlZCB0YWdzIGhlcmUgd2lsbCByZXN0b3JlCisgYWxsIHRoZSBvcmlnaW5hbCB2YWx1ZSBmb3IgdGhlIHRhZyBpdHNlbGYgYW5kIHRoZSBuZXN0aW5nIGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCI+TWVzc2FnZXNUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgdG8gZGVzY3JpYmUgdGhlIG5leHQgc3RlcCBmb3IgdGhlIEpTUCBwcm9jZXNzb3IKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBmb3IgdGhlIGJhZCB0aGluZ3MgSlNQJ3MgZG88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5NZXNzYWdlc1RhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTGlua1RhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODcyMmUwMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTXVsdGlib3hUYWcuaHRtbApAQCAtMCwwICsxLDQ5NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZE11bHRpYm94VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkTXVsdGlib3hUYWcsTmVzdGVkTXVsdGlib3hUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZE11bHRpYm94VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZE11bHRpYm94VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTXVsdGlib3hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZE11bHRpYm94VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5NdWx0aWJveFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkTXVsdGlib3hUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkTXVsdGlib3hUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZE11bHRpYm94VGFnLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlczwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkTXVsdGlib3hUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwjb3JpZ2luYWxOYW1lIj5vcmlnaW5hbE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTXVsdGlib3hUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij5vcmlnaW5hbFByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5NdWx0aWJveFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI2NvbnN0YW50Ij5jb25zdGFudDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2luZGV4ZWQiPmluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sI05lc3RlZE11bHRpYm94VGFnKCkiPk5lc3RlZE11bHRpYm94VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk11bHRpYm94VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPmRvQWZ0ZXJCb2R5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEVsZW1lbnRDbG9zZSgpIj5nZXRFbGVtZW50Q2xvc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEluZGV4ZWQoKSI+Z2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlS2V5KCkiPmdldFRpdGxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb2t1cFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRJbmRleGVkKGJvb2xlYW4pIj5zZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ib3JpZ2luYWxOYW1lIj48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib3JpZ2luYWxQcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5lc3RlZE11bHRpYm94VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZE11bHRpYm94VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkTXVsdGlib3hUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEdldHMgdGhlIHJlbGF0aXZlIHByb3BlcnR5CisgYW5kIGxlYXZlcyB0aGUgcmVzdCB1cCB0byB0aGUgb3JpZ2luYWwgdGFnIGltcGxlbWVudGF0aW9uLiBTd2VldC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgICBUaGlzIGlzIGluIHRoZSBoYW5kcyBvZiB0aGUgc3VwZXIgY2xhc3MuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4gVGhlIG5lc3RlZCB0YWdzIGhlcmUgd2lsbCByZXN0b3JlCisgYWxsIHRoZSBvcmlnaW5hbCB2YWx1ZSBmb3IgdGhlIHRhZyBpdHNlbGYgYW5kIHRoZSBuZXN0aW5nIGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCI+TXVsdGlib3hUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgdG8gZGVzY3JpYmUgdGhlIG5leHQgc3RlcCBmb3IgdGhlIEpTUCBwcm9jZXNzb3IKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBmb3IgdGhlIGJhZCB0aGluZ3MgSlNQJ3MgZG88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTXVsdGlib3hUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj5NdWx0aWJveFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRNdWx0aWJveFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE11bHRpYm94VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkNzRiM2EKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwKQEAgLTAsMCArMSw0MzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLE5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTXVsdGlib3hUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc1RhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25zQ29sbGVjdGlvblRhZzwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5PcHRpb25zQ29sbGVjdGlvblRhZzwvQT48RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvREw+CisKKzxQPgorTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+QXJyb24gQmF0ZXM8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI29yaWdpbmFsTmFtZSI+b3JpZ2luYWxOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+b3JpZ2luYWxQcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uc0NvbGxlY3Rpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNmaWx0ZXIiPmZpbHRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjbGFiZWwiPmxhYmVsPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnKCkiPk5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvbnNDb2xsZWN0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5PcHRpb25zQ29sbGVjdGlvblRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI2FkZE9wdGlvbihqYXZhLmxhbmcuU3RyaW5nQnVmZmVyLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+YWRkT3B0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNnZXRGaWx0ZXIoKSI+Z2V0RmlsdGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNnZXRJdGVyYXRvcihqYXZhLmxhbmcuT2JqZWN0KSI+Z2V0SXRlcmF0b3I8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI2dldExhYmVsKCkiPmdldExhYmVsPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNnZXRTdHlsZSgpIj5nZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjZ2V0U3R5bGVDbGFzcygpIj5nZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjc2V0RmlsdGVyKGJvb2xlYW4pIj5zZXRGaWx0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI3NldExhYmVsKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMYWJlbDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCNzZXRTdHlsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI3NldFN0eWxlQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJvcmlnaW5hbE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvcmlnaW5hbFByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4gR2V0cyB0aGUgcmVsYXRpdmUgcHJvcGVydHkKKyBhbmQgbGVhdmVzIHRoZSByZXN0IHVwIHRvIHRoZSBvcmlnaW5hbCB0YWcgaW1wbGVtZW50YXRpb24uIFN3ZWV0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPk9wdGlvbnNDb2xsZWN0aW9uVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IEpTUCBjb250aW51YXRpb24gZGlyZWN0aXZlLgorICAgICAgICAgICAgIFRoaXMgaXMgaW4gdGhlIGhhbmRzIG9mIHRoZSBzdXBlciBjbGFzcy4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLiBUaGUgbmVzdGVkIHRhZ3MgaGVyZSB3aWxsIHJlc3RvcmUKKyBhbGwgdGhlIG9yaWdpbmFsIHZhbHVlIGZvciB0aGUgdGFnIGl0c2VsZiBhbmQgdGhlIG5lc3RpbmcgY29udGV4dC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzhmMjZlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwKQEAgLTAsMCArMSw0NTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWRPcHRpb25zVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkT3B0aW9uc1RhZyxOZXN0ZWRPcHRpb25zVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRPcHRpb25zVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZE9wdGlvbnNUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRPcHRpb25zVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBOZXN0ZWRPcHRpb25zVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvbnNUYWc8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE9wdGlvbnNUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWRPcHRpb25zVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT48RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvREw+CisKKzxQPgorTmVzdGVkT3B0aW9uc1RhZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+QXJyb24gQmF0ZXM8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE9wdGlvbnNUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCNvcmlnaW5hbExhYmVsUHJvcGVydHkiPm9yaWdpbmFsTGFiZWxQcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj5vcmlnaW5hbE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc1RhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvbnNUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNjb2xsZWN0aW9uIj5jb2xsZWN0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2ZpbHRlciI+ZmlsdGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2xhYmVsTmFtZSI+bGFiZWxOYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2xhYmVsUHJvcGVydHkiPmxhYmVsUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwjTmVzdGVkT3B0aW9uc1RhZygpIj5OZXN0ZWRPcHRpb25zVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc1RhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvbnNUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+T3B0aW9uc1RhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjYWRkT3B0aW9uKGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj5hZGRPcHRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjZ2V0Q29sbGVjdGlvbigpIj5nZXRDb2xsZWN0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldEZpbHRlcigpIj5nZXRGaWx0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjZ2V0SXRlcmF0b3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmdldEl0ZXJhdG9yPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldExhYmVsTmFtZSgpIj5nZXRMYWJlbE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjZ2V0TGFiZWxQcm9wZXJ0eSgpIj5nZXRMYWJlbFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXRTdHlsZSgpIj5nZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjc2V0Q29sbGVjdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29sbGVjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXRGaWx0ZXIoYm9vbGVhbikiPnNldEZpbHRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXRMYWJlbE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldExhYmVsTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXRMYWJlbFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRMYWJlbFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsTGFiZWxQcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxMYWJlbFByb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxMYWJlbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRPcHRpb25zVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZE9wdGlvbnNUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRPcHRpb25zVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCisgICAgICAgICAgICAgVGhpcyBpcyBpbiB0aGUgaGFuZHMgb2YgdGhlIHN1cGVyIGNsYXNzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuIFRoZSBuZXN0ZWQgdGFncyBoZXJlIHdpbGwgcmVzdG9yZQorIGFsbCB0aGUgb3JpZ2luYWwgdmFsdWUgZm9yIHRoZSB0YWcgaXRzZWxmIGFuZCB0aGUgbmVzdGluZyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj5PcHRpb25zVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPk9wdGlvbnNUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkT3B0aW9uc1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE9wdGlvbnNUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFlMzJmOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbApAQCAtMCwwICsxLDUxNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowNCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZFBhc3N3b3JkVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkUGFzc3dvcmRUYWcsTmVzdGVkUGFzc3dvcmRUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZFBhc3N3b3JkVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFJhZGlvVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRQYXNzd29yZFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkUGFzc3dvcmRUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5QYXNzd29yZFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkUGFzc3dvcmRUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkUGFzc3dvcmRUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUGFzc3dvcmRUYWcuaHRtbCI+UGFzc3dvcmRUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZFBhc3N3b3JkVGFnLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlczwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkUGFzc3dvcmRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj5vcmlnaW5hbE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij5vcmlnaW5hbFByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNhY2NlcHQiPmFjY2VwdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNyZWRpc3BsYXkiPnJlZGlzcGxheTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3R5cGUiPnR5cGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNjb2xzIj5jb2xzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWF4bGVuZ3RoIj5tYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNyb3dzIj5yb3dzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+aW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwjTmVzdGVkUGFzc3dvcmRUYWcoKSI+TmVzdGVkUGFzc3dvcmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2dldEFjY2VwdCgpIj5nZXRBY2NlcHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXRSZWRpc3BsYXkoKSI+Z2V0UmVkaXNwbGF5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0QWNjZXB0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2NlcHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0UmVkaXNwbGF5KGJvb2xlYW4pIj5zZXRSZWRpc3BsYXk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldENvbHMoKSI+Z2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldE1heGxlbmd0aCgpIj5nZXRNYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFJvd3MoKSI+Z2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFNpemUoKSI+Z2V0U2l6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Q29scyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldE1heGxlbmd0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Um93cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFNpemUoamF2YS5sYW5nLlN0cmluZykiPnNldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEVsZW1lbnRDbG9zZSgpIj5nZXRFbGVtZW50Q2xvc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEluZGV4ZWQoKSI+Z2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlS2V5KCkiPmdldFRpdGxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb2t1cFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRJbmRleGVkKGJvb2xlYW4pIj5zZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRQYXNzd29yZFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRQYXNzd29yZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk5lc3RlZFBhc3N3b3JkVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCisgICAgICAgICAgICAgVGhpcyBpcyBpbiB0aGUgaGFuZHMgb2YgdGhlIHN1cGVyIGNsYXNzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuIFRoZSBuZXN0ZWQgdGFncyBoZXJlIHdpbGwgcmVzdG9yZQorIGFsbCB0aGUgb3JpZ2luYWwgdmFsdWUgZm9yIHRoZSB0YWcgaXRzZWxmIGFuZCB0aGUgbmVzdGluZyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFBhc3N3b3JkVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRSYWRpb1RhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRSYWRpb1RhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjZDMxNDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFJhZGlvVGFnLmh0bWwKQEAgLTAsMCArMSw0OTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWRSYWRpb1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZFJhZGlvVGFnLE5lc3RlZFJhZGlvVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRSYWRpb1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRSYWRpb1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU2VsZWN0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRSYWRpb1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkUmFkaW9UYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJhZGlvVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRSYWRpb1RhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWRSYWRpb1RhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT48RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvREw+CisKKzxQPgorTmVzdGVkUmFkaW9UYWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRSYWRpb1RhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCNvcmlnaW5hbE5hbWUiPm9yaWdpbmFsTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRSYWRpb1RhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJhZGlvVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwiPlJhZGlvVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjaWROYW1lIj5pZE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCN0ZXh0Ij50ZXh0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpbmRleGVkIj5pbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCNOZXN0ZWRSYWRpb1RhZygpIj5OZXN0ZWRSYWRpb1RhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SYWRpb1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNkb0FmdGVyQm9keSgpIj5kb0FmdGVyQm9keTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjZ2V0SWROYW1lKCkiPmdldElkTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI3JlbmRlclJhZGlvRWxlbWVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+cmVuZGVyUmFkaW9FbGVtZW50PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNzZXRJZE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldElkTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1JhZGlvVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEVsZW1lbnRDbG9zZSgpIj5nZXRFbGVtZW50Q2xvc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEluZGV4ZWQoKSI+Z2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlS2V5KCkiPmdldFRpdGxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb2t1cFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRJbmRleGVkKGJvb2xlYW4pIj5zZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ib3JpZ2luYWxOYW1lIj48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib3JpZ2luYWxQcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5lc3RlZFJhZGlvVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZFJhZGlvVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkUmFkaW9UYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEdldHMgdGhlIHJlbGF0aXZlIHByb3BlcnR5CisgYW5kIGxlYXZlcyB0aGUgcmVzdCB1cCB0byB0aGUgb3JpZ2luYWwgdGFnIGltcGxlbWVudGF0aW9uLiBTd2VldC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgICBUaGlzIGlzIGluIHRoZSBoYW5kcyBvZiB0aGUgc3VwZXIgY2xhc3MuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4gVGhlIG5lc3RlZCB0YWdzIGhlcmUgd2lsbCByZXN0b3JlCisgYWxsIHRoZSBvcmlnaW5hbCB2YWx1ZSBmb3IgdGhlIHRhZyBpdHNlbGYgYW5kIHRoZSBuZXN0aW5nIGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+UmFkaW9UYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgdG8gZGVzY3JpYmUgdGhlIG5leHQgc3RlcCBmb3IgdGhlIEpTUCBwcm9jZXNzb3IKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBmb3IgdGhlIGJhZCB0aGluZ3MgSlNQJ3MgZG88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj5SYWRpb1RhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRSYWRpb1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU2VsZWN0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRSYWRpb1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU2VsZWN0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2YzdlZjUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sCkBAIC0wLDAgKzEsNDk1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkU2VsZWN0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkU2VsZWN0VGFnLE5lc3RlZFNlbGVjdFRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTmVzdGVkU2VsZWN0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZFNlbGVjdFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRTZWxlY3RUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZFNlbGVjdFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlNlbGVjdFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkU2VsZWN0VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5lc3RlZFNlbGVjdFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPjxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9ETD4KKworPFA+CitOZXN0ZWRTZWxlY3RUYWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRTZWxlY3RUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sI29yaWdpbmFsTmFtZSI+b3JpZ2luYWxOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlNlbGVjdFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI21hdGNoIj5tYXRjaDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI211bHRpcGxlIj5tdWx0aXBsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNzYXZlQm9keSI+c2F2ZUJvZHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNzaXplIj5zaXplPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+aW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sI05lc3RlZFNlbGVjdFRhZygpIj5OZXN0ZWRTZWxlY3RUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTZWxlY3RUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU2VsZWN0VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU2VsZWN0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCI+U2VsZWN0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPmRvQWZ0ZXJCb2R5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjZ2V0TXVsdGlwbGUoKSI+Z2V0TXVsdGlwbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2dldFNpemUoKSI+Z2V0U2l6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjaXNNYXRjaGVkKGphdmEubGFuZy5TdHJpbmcpIj5pc01hdGNoZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNyZW5kZXJTZWxlY3RTdGFydEVsZW1lbnQoKSI+cmVuZGVyU2VsZWN0U3RhcnRFbGVtZW50PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjc2V0TXVsdGlwbGUoamF2YS5sYW5nLlN0cmluZykiPnNldE11bHRpcGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI3NldFNpemUoamF2YS5sYW5nLlN0cmluZykiPnNldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEVsZW1lbnRDbG9zZSgpIj5nZXRFbGVtZW50Q2xvc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEluZGV4ZWQoKSI+Z2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlS2V5KCkiPmdldFRpdGxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb2t1cFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRJbmRleGVkKGJvb2xlYW4pIj5zZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ib3JpZ2luYWxOYW1lIj48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib3JpZ2luYWxQcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5lc3RlZFNlbGVjdFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRTZWxlY3RUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRTZWxlY3RUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEdldHMgdGhlIHJlbGF0aXZlIHByb3BlcnR5CisgYW5kIGxlYXZlcyB0aGUgcmVzdCB1cCB0byB0aGUgb3JpZ2luYWwgdGFnIGltcGxlbWVudGF0aW9uLiBTd2VldC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgICBUaGlzIGlzIGluIHRoZSBoYW5kcyBvZiB0aGUgc3VwZXIgY2xhc3MuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4gVGhlIG5lc3RlZCB0YWdzIGhlcmUgd2lsbCByZXN0b3JlCisgYWxsIHRoZSBvcmlnaW5hbCB2YWx1ZSBmb3IgdGhlIHRhZyBpdHNlbGYgYW5kIHRoZSBuZXN0aW5nIGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TZWxlY3RUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj5TZWxlY3RUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgdG8gZGVzY3JpYmUgdGhlIG5leHQgc3RlcCBmb3IgdGhlIEpTUCBwcm9jZXNzb3IKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBmb3IgdGhlIGJhZCB0aGluZ3MgSlNQJ3MgZG88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPlNlbGVjdFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRTZWxlY3RUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFJhZGlvVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFN1Ym1pdFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkU2VsZWN0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTdWJtaXRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBjNWQwMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwKQEAgLTAsMCArMSw0NjggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWRTdWJtaXRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRTdWJtaXRUYWcsTmVzdGVkU3VibWl0VGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRTdWJtaXRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkU3VibWl0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTZWxlY3RUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dGFyZWFUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFN1Ym1pdFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkU3VibWl0VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU3VibWl0VGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRTdWJtaXRUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWRTdWJtaXRUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPlN1Ym1pdFRhZzwvQT48RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+PC9ETD4KKworPFA+CitOZXN0ZWRTdWJtaXRUYWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRTdWJtaXRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFN1Ym1pdFRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlN1Ym1pdFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3RleHQiPnRleHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2FjY2Vzc2tleSI+YWNjZXNza2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpbmRleGVkIj5pbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCN0YWJpbmRleCI+dGFiaW5kZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfVEFHPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwjTmVzdGVkU3VibWl0VGFnKCkiPk5lc3RlZFN1Ym1pdFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFN1Ym1pdFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTdWJtaXRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TdWJtaXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+ZG9BZnRlckJvZHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRTdWJtaXRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTmVzdGVkU3VibWl0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkU3VibWl0VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCisgICAgICAgICAgICAgVGhpcyBpcyBpbiB0aGUgaGFuZHMgb2YgdGhlIHN1cGVyIGNsYXNzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuIFRoZSBuZXN0ZWQgdGFncyBoZXJlIHdpbGwgcmVzdG9yZQorIGFsbCB0aGUgb3JpZ2luYWwgdmFsdWUgZm9yIHRoZSB0YWcgaXRzZWxmIGFuZCB0aGUgbmVzdGluZyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCI+U3VibWl0VGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5TdWJtaXRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkU3VibWl0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTZWxlY3RUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dGFyZWFUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFN1Ym1pdFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM2Mjk0NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sCkBAIC0wLDAgKzEsNTE3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjA0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkVGV4dFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZFRleHRUYWcsTmVzdGVkVGV4dFRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTmVzdGVkVGV4dFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRUZXh0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkVGV4dFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkVGV4dFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVGV4dFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkVGV4dFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWRUZXh0VGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbCI+VGV4dFRhZzwvQT48RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvREw+CisKKzxQPgorTmVzdGVkVGV4dFRhZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+QXJyb24gQmF0ZXM8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZFRleHRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPm9yaWdpbmFsTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+b3JpZ2luYWxQcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjYWNjZXB0Ij5hY2NlcHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjcmVkaXNwbGF5Ij5yZWRpc3BsYXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCN0eXBlIj50eXBlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjY29scyI+Y29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI21heGxlbmd0aCI+bWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcm93cyI+cm93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2luZGV4ZWQiPmluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwjTmVzdGVkVGV4dFRhZygpIj5OZXN0ZWRUZXh0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXRBY2NlcHQoKSI+Z2V0QWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0UmVkaXNwbGF5KCkiPmdldFJlZGlzcGxheTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldEFjY2VwdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldFJlZGlzcGxheShib29sZWFuKSI+c2V0UmVkaXNwbGF5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRDb2xzKCkiPmdldENvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRNYXhsZW5ndGgoKSI+Z2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRSb3dzKCkiPmdldFJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRTaXplKCkiPmdldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldENvbHMoamF2YS5sYW5nLlN0cmluZykiPnNldENvbHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRNYXhsZW5ndGgoamF2YS5sYW5nLlN0cmluZykiPnNldE1heGxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFJvd3MoamF2YS5sYW5nLlN0cmluZykiPnNldFJvd3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRTaXplKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTaXplPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5CYXNlSGFuZGxlclRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFjY2Vzc2tleSgpIj5nZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdCgpIj5nZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEFsdEtleSgpIj5nZXRBbHRLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEJ1bmRsZSgpIj5nZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldERpc2FibGVkKCkiPmdldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRFbGVtZW50Q2xvc2UoKSI+Z2V0RWxlbWVudENsb3NlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRJbmRleGVkKCkiPmdldEluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldExvY2FsZSgpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uYmx1cigpIj5nZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2hhbmdlKCkiPmdldE9uY2hhbmdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmNsaWNrKCkiPmdldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uZGJsY2xpY2soKSI+Z2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25mb2N1cygpIj5nZXRPbmZvY3VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleWRvd24oKSI+Z2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmtleXByZXNzKCkiPmdldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5dXAoKSI+Z2V0T25rZXl1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZWRvd24oKSI+Z2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2Vtb3ZlKCkiPmdldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlb3V0KCkiPmdldE9ubW91c2VvdXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdmVyKCkiPmdldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNldXAoKSI+Z2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbnNlbGVjdCgpIj5nZXRPbnNlbGVjdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0UmVhZG9ubHkoKSI+Z2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlKCkiPmdldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRTdHlsZUNsYXNzKCkiPmdldFN0eWxlQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlSWQoKSI+Z2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGFiaW5kZXgoKSI+Z2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlKCkiPmdldFRpdGxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUaXRsZUtleSgpIj5nZXRUaXRsZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaXNYaHRtbCgpIj5pc1hodG1sPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNsb29rdXBQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI21lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVFdmVudEhhbmRsZXJzKCkiPnByZXBhcmVFdmVudEhhbmRsZXJzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlRm9jdXNFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVGb2N1c0V2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUluZGV4KGphdmEubGFuZy5TdHJpbmdCdWZmZXIsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVwYXJlSW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVLZXlFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVLZXlFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVNb3VzZUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZU1vdXNlRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlU3R5bGVzKCkiPnByZXBhcmVTdHlsZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVUZXh0RXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlVGV4dEV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWNjZXNza2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBbHRLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QnVuZGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCdW5kbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldERpc2FibGVkKGJvb2xlYW4pIj5zZXREaXNhYmxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0SW5kZXhlZChib29sZWFuKSI+c2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0TG9jYWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uYmx1cihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25ibHVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmNoYW5nZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZGJsY2xpY2soamF2YS5sYW5nLlN0cmluZykiPnNldE9uZGJsY2xpY2s8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uZm9jdXMoamF2YS5sYW5nLlN0cmluZykiPnNldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5ZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25rZXlkb3duPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXByZXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXByZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbmtleXVwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlZG93bihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vtb3ZlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlbW92ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW91dChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW92ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2VvdmVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNldXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2V1cDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25zZWxlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRSZWFkb25seShib29sZWFuKSI+c2V0UmVhZG9ubHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFN0eWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGVJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U3R5bGVJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGFiaW5kZXgoamF2YS5sYW5nLlN0cmluZykiPnNldFRhYmluZGV4PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUaXRsZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlS2V5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZUtleTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvQWZ0ZXJCb2R5LCBkb0luaXRCb2R5LCBnZXRCb2R5Q29udGVudCwgZ2V0UHJldmlvdXNPdXQsIHNldEJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkTmFtZVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0UGFyZW50LCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJvcmlnaW5hbE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvcmlnaW5hbFByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTmVzdGVkVGV4dFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRUZXh0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkVGV4dFRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4gR2V0cyB0aGUgcmVsYXRpdmUgcHJvcGVydHkKKyBhbmQgbGVhdmVzIHRoZSByZXN0IHVwIHRvIHRoZSBvcmlnaW5hbCB0YWcgaW1wbGVtZW50YXRpb24uIFN3ZWV0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IEpTUCBjb250aW51YXRpb24gZGlyZWN0aXZlLgorICAgICAgICAgICAgIFRoaXMgaXMgaW4gdGhlIGhhbmRzIG9mIHRoZSBzdXBlciBjbGFzcy4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLiBUaGUgbmVzdGVkIHRhZ3MgaGVyZSB3aWxsIHJlc3RvcmUKKyBhbGwgdGhlIG9yaWdpbmFsIHZhbHVlIGZvciB0aGUgdGFnIGl0c2VsZiBhbmQgdGhlIG5lc3RpbmcgY29udGV4dC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCB0byBkZXNjcmliZSB0aGUgbmV4dCBzdGVwIGZvciB0aGUgSlNQIHByb2Nlc3NvcgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGZvciB0aGUgYmFkIHRoaW5ncyBKU1AncyBkbzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZFRleHRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRUZXh0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxNmQwY2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwKQEAgLTAsMCArMSw1MTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWRUZXh0YXJlYVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZFRleHRhcmVhVGFnLE5lc3RlZFRleHRhcmVhVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRUZXh0YXJlYVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFRleHRhcmVhVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBOZXN0ZWRUZXh0YXJlYVRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0YXJlYVRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkVGV4dGFyZWFUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkVGV4dGFyZWFUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+VGV4dGFyZWFUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZFRleHRhcmVhVGFnLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlczwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkVGV4dGFyZWFUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj5vcmlnaW5hbE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dGFyZWFUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij5vcmlnaW5hbFByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0YXJlYVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj5UZXh0YXJlYVRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNjb2xzIj5jb2xzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWF4bGVuZ3RoIj5tYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNyb3dzIj5yb3dzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+QmFzZUhhbmRsZXJUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNhY2Nlc3NrZXkiPmFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjaW5kZXhlZCI+aW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjdGFiaW5kZXgiPnRhYmluZGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwjTmVzdGVkVGV4dGFyZWFUYWcoKSI+TmVzdGVkVGV4dGFyZWFUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVGV4dGFyZWFUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPlRleHRhcmVhVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCNyZW5kZXJEYXRhKCkiPnJlbmRlckRhdGE8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sI3JlbmRlclRleHRhcmVhRWxlbWVudCgpIj5yZW5kZXJUZXh0YXJlYUVsZW1lbnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldENvbHMoKSI+Z2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldE1heGxlbmd0aCgpIj5nZXRNYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFJvd3MoKSI+Z2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFNpemUoKSI+Z2V0U2l6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Q29scyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldE1heGxlbmd0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Um93cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFNpemUoamF2YS5sYW5nLlN0cmluZykiPnNldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEVsZW1lbnRDbG9zZSgpIj5nZXRFbGVtZW50Q2xvc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEluZGV4ZWQoKSI+Z2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlS2V5KCkiPmdldFRpdGxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb2t1cFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRJbmRleGVkKGJvb2xlYW4pIj5zZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRUZXh0YXJlYVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRUZXh0YXJlYVRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk5lc3RlZFRleHRhcmVhVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+VGV4dGFyZWFUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCisgICAgICAgICAgICAgVGhpcyBpcyBpbiB0aGUgaGFuZHMgb2YgdGhlIHN1cGVyIGNsYXNzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuIFRoZSBuZXN0ZWQgdGFncyBoZXJlIHdpbGwgcmVzdG9yZQorIGFsbCB0aGUgb3JpZ2luYWwgdmFsdWUgZm9yIHRoZSB0YWcgaXRzZWxmIGFuZCB0aGUgbmVzdGluZyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+QmFzZUlucHV0VGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+VGV4dGFyZWFUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkVGV4dGFyZWFUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFN1Ym1pdFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRUZXh0YXJlYVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZENoZWNrYm94VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL2NsYXNzLXVzZS9OZXN0ZWRDaGVja2JveFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjYjRlNGEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL2NsYXNzLXVzZS9OZXN0ZWRDaGVja2JveFRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkQ2hlY2tib3hUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZENoZWNrYm94VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkQ2hlY2tib3hUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkQ2hlY2tib3hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkQ2hlY2tib3hUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZENoZWNrYm94VGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRDaGVja2JveFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL2NsYXNzLXVzZS9OZXN0ZWRFcnJvcnNUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZEVycm9yc1RhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiNmU4NTUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL2NsYXNzLXVzZS9OZXN0ZWRFcnJvcnNUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEVycm9yc1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkRXJyb3JzVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEVycm9yc1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRFcnJvcnNUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEVycm9yc1RhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEVycm9yc1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL2NsYXNzLXVzZS9OZXN0ZWRGaWxlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL2NsYXNzLXVzZS9OZXN0ZWRGaWxlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkwYjM2YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZEZpbGVUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEZpbGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEZpbGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEZpbGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkRmlsZVRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkRmlsZVRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRGaWxlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZEZvcm1UYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZEZvcm1UYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTQ3M2NiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkRm9ybVRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkRm9ybVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkRm9ybVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkRm9ybVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRGb3JtVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRGb3JtVGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEZvcm1UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkSGlkZGVuVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL2NsYXNzLXVzZS9OZXN0ZWRIaWRkZW5UYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2RjZWY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkSGlkZGVuVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRIaWRkZW5UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEhpZGRlblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEhpZGRlblRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRIaWRkZW5UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkSGlkZGVuVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRIaWRkZW5UYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEhpZGRlblRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRIaWRkZW5UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkSW1hZ2VUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZEltYWdlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ3OTkwYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZEltYWdlVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRJbWFnZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkSW1hZ2VUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWFnZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRJbWFnZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRJbWFnZVRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkSW1hZ2VUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEltYWdlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZEltZ1RhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkSW1nVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzRkMGVlMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZEltZ1RhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkSW1nVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRJbWdUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWdUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkSW1nVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEltZ1RhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkSW1nVGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWdUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkSW1nVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZExpbmtUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZExpbmtUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzMyNGEwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkTGlua1RhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkTGlua1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkTGlua1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZExpbmtUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTGlua1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRMaW5rVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRMaW5rVGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZExpbmtUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkTWVzc2FnZXNUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZE1lc3NhZ2VzVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkxZjgxNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZE1lc3NhZ2VzVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRNZXNzYWdlc1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkTWVzc2FnZXNUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRNZXNzYWdlc1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRNZXNzYWdlc1RhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkTWVzc2FnZXNUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE1lc3NhZ2VzVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE1lc3NhZ2VzVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZE11bHRpYm94VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL2NsYXNzLXVzZS9OZXN0ZWRNdWx0aWJveFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2ZDkyOGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL2NsYXNzLXVzZS9OZXN0ZWRNdWx0aWJveFRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkTXVsdGlib3hUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE11bHRpYm94VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTXVsdGlib3hUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTXVsdGlib3hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkTXVsdGlib3hUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE11bHRpYm94VGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRNdWx0aWJveFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL2NsYXNzLXVzZS9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTE2M2NjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkT3B0aW9uc1RhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkT3B0aW9uc1RhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyNDliYTQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL2NsYXNzLXVzZS9OZXN0ZWRPcHRpb25zVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRPcHRpb25zVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRPcHRpb25zVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRPcHRpb25zVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE9wdGlvbnNUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE9wdGlvbnNUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkT3B0aW9uc1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL2NsYXNzLXVzZS9OZXN0ZWRQYXNzd29yZFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODU3YTVlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZFBhc3N3b3JkVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRQYXNzd29yZFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFBhc3N3b3JkVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZFBhc3N3b3JkVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRQYXNzd29yZFRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkUmFkaW9UYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZFJhZGlvVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFlY2VkNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZFJhZGlvVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRSYWRpb1RhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkUmFkaW9UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRSYWRpb1RhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRSYWRpb1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRSYWRpb1RhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkUmFkaW9UYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFJhZGlvVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFJhZGlvVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZFNlbGVjdFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkU2VsZWN0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q2NjlhMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZFNlbGVjdFRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkU2VsZWN0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRTZWxlY3RUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTZWxlY3RUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkU2VsZWN0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZFNlbGVjdFRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkU2VsZWN0VGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTZWxlY3RUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkU2VsZWN0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZFN1Ym1pdFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkU3VibWl0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk3MzE2ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZFN1Ym1pdFRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkU3VibWl0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRTdWJtaXRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTdWJtaXRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkU3VibWl0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZFN1Ym1pdFRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkU3VibWl0VGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTdWJtaXRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkU3VibWl0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZFRleHRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZFRleHRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTM2MzNlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkVGV4dFRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkVGV4dFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkVGV4dFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkVGV4dFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRUZXh0VGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRUZXh0VGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFRleHRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9jbGFzcy11c2UvTmVzdGVkVGV4dGFyZWFUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZFRleHRhcmVhVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjNhYWRkZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvY2xhc3MtdXNlL05lc3RlZFRleHRhcmVhVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRUZXh0YXJlYVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkVGV4dGFyZWFUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRUZXh0YXJlYVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRUZXh0YXJlYVRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkVGV4dGFyZWFUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFRleHRhcmVhVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFRleHRhcmVhVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvZG9jLWZpbGVzL25lc3RlZC1odG1sLmdpZiBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvZG9jLWZpbGVzL25lc3RlZC1odG1sLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTA1Y2MyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9kb2MtZmlsZXMvbmVzdGVkLWh0bWwuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkxZWRmZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQT48L0ZPTlQ+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitDbGFzc2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkQ2hlY2tib3hUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRDaGVja2JveFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZEVycm9yc1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZEVycm9yc1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZEZpbGVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRGaWxlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkRm9ybVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZEZvcm1UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJOZXN0ZWRIaWRkZW5UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRIaWRkZW5UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJOZXN0ZWRJbWFnZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZEltYWdlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkSW1nVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkSW1nVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkTGlua1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZExpbmtUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJOZXN0ZWRNZXNzYWdlc1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZE1lc3NhZ2VzVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkTXVsdGlib3hUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRNdWx0aWJveFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJOZXN0ZWRPcHRpb25zVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkT3B0aW9uc1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZFBhc3N3b3JkVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkUGFzc3dvcmRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJOZXN0ZWRSYWRpb1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZFJhZGlvVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkU2VsZWN0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkU2VsZWN0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkU3VibWl0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkU3VibWl0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkVGV4dGFyZWFUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRUZXh0YXJlYVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZFRleHRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRUZXh0VGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZiMjY2OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKQEAgLTAsMCArMSwyMzAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbAorPC9IMj4KK1RoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L2NvZGU+CisgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLgorPFA+Cis8Qj5TZWU6PC9CPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEEgSFJFRj0iI3BhY2thZ2VfZGVzY3JpcHRpb24iPjxCPkRlc2NyaXB0aW9uPC9CPjwvQT4KKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZENoZWNrYm94VGFnLmh0bWwiPk5lc3RlZENoZWNrYm94VGFnPC9BPjwvQj48L1REPgorPFREPk5lc3RlZENoZWNrYm94VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTmVzdGVkRXJyb3JzVGFnLmh0bWwiPk5lc3RlZEVycm9yc1RhZzwvQT48L0I+PC9URD4KKzxURD5OZXN0ZWRFcnJvcnNUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWRGaWxlVGFnLmh0bWwiPk5lc3RlZEZpbGVUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkRmlsZVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZEZvcm1UYWcuaHRtbCI+TmVzdGVkRm9ybVRhZzwvQT48L0I+PC9URD4KKzxURD5OZXN0ZWRGb3JtVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTmVzdGVkSGlkZGVuVGFnLmh0bWwiPk5lc3RlZEhpZGRlblRhZzwvQT48L0I+PC9URD4KKzxURD5OZXN0ZWRIaWRkZW5UYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWRJbWFnZVRhZy5odG1sIj5OZXN0ZWRJbWFnZVRhZzwvQT48L0I+PC9URD4KKzxURD5OZXN0ZWRNdWx0aWJveFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZEltZ1RhZy5odG1sIj5OZXN0ZWRJbWdUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkSW1nVGFnLCByZW5kZXJzIHRoZSBuZXN0ZWQgdmVyc2lvbiBvZiB0aGUgPGltZz4gdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTmVzdGVkTGlua1RhZy5odG1sIj5OZXN0ZWRMaW5rVGFnPC9BPjwvQj48L1REPgorPFREPk5lc3RlZExpbmtUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWRNZXNzYWdlc1RhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc1RhZzwvQT48L0I+PC9URD4KKzxURD5OZXN0ZWRNZXNzYWdlc1RhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZE11bHRpYm94VGFnLmh0bWwiPk5lc3RlZE11bHRpYm94VGFnPC9BPjwvQj48L1REPgorPFREPk5lc3RlZE11bHRpYm94VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+TmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWRPcHRpb25zVGFnLmh0bWwiPk5lc3RlZE9wdGlvbnNUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkT3B0aW9uc1RhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZFBhc3N3b3JkVGFnLmh0bWwiPk5lc3RlZFBhc3N3b3JkVGFnPC9BPjwvQj48L1REPgorPFREPk5lc3RlZFBhc3N3b3JkVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTmVzdGVkUmFkaW9UYWcuaHRtbCI+TmVzdGVkUmFkaW9UYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkUmFkaW9UYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWRTZWxlY3RUYWcuaHRtbCI+TmVzdGVkU2VsZWN0VGFnPC9BPjwvQj48L1REPgorPFREPk5lc3RlZFNlbGVjdFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZFN1Ym1pdFRhZy5odG1sIj5OZXN0ZWRTdWJtaXRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkU3VibWl0VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTmVzdGVkVGV4dGFyZWFUYWcuaHRtbCI+TmVzdGVkVGV4dGFyZWFUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkVGV4dGFyZWFUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWRUZXh0VGFnLmh0bWwiPk5lc3RlZFRleHRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkVGV4dFRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+Cis8QSBOQU1FPSJwYWNrYWdlX2Rlc2NyaXB0aW9uIj48IS0tIC0tPjwvQT48SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCBEZXNjcmlwdGlvbgorPC9IMj4KKworPFA+CitUaGUgbmVzdGVkIGh0bWwgdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9jb2RlPgorIHRhZ3MgdG8gYWxsb3cgICB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4gVGhlIGZ1bmRhbWVudGFsCitsb2dpYyBvZiAgIHRoZSBodG1sIHRhZ3MgZG9uJ3QgY2hhbmdlLCBleGNlcHQgaW4gdGhhdCBhbGwgcmVmZXJlbmNlcyB0byBiZWFucworYW5kICBiZWFuIHByb3BlcnRpZXMgd2lsbCBiZSBtYW5hZ2VkIGluIGEgbmVzdGVkIGNvbnRleHQuIDxicj4KKzxicj4KKzxpbWcgc3JjPSJkb2MtZmlsZXMvbmVzdGVkLWh0bWwuZ2lmIiBhbHQ9Ik5lc3RlZCBodG1sIHRhZ2xpYiI+Cis8YnI+Cis8YnIgLz0iIj4KKzxicj4KKzxicj4KKzxQPgorCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXRyZWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTNiZGZlZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS10cmVlLmh0bWwKQEAgLTAsMCArMSwyMDAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+UFJFVjwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwKKzwvSDI+Cis8L0NFTlRFUj4KKzxETD4KKzxEVD48Qj5QYWNrYWdlIEhpZXJhcmNoaWVzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctdHJlZS5odG1sIj5BbGwgUGFja2FnZXM8L0E+PC9ETD4KKzxIUj4KKzxIMj4KK0NsYXNzIEhpZXJhcmNoeQorPC9IMj4KKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEubGFuZy5PYmplY3Q8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZykKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCAoaW1wbGVtZW50cyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZykKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPjxCPkJhc2VIYW5kbGVyVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+PEI+QmFzZUlucHV0VGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+PEI+QmFzZUZpZWxkVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GaWxlVGFnLmh0bWwiPjxCPkZpbGVUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sIj48Qj5OZXN0ZWRGaWxlVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IaWRkZW5UYWcuaHRtbCI+PEI+SGlkZGVuVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEhpZGRlblRhZy5odG1sIj48Qj5OZXN0ZWRIaWRkZW5UYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Bhc3N3b3JkVGFnLmh0bWwiPjxCPlBhc3N3b3JkVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFBhc3N3b3JkVGFnLmh0bWwiPjxCPk5lc3RlZFBhc3N3b3JkVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0VGFnLmh0bWwiPjxCPlRleHRUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sIj48Qj5OZXN0ZWRUZXh0VGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvVGV4dGFyZWFUYWcuaHRtbCI+PEI+VGV4dGFyZWFUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dGFyZWFUYWcuaHRtbCI+PEI+TmVzdGVkVGV4dGFyZWFUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj48Qj5DaGVja2JveFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRDaGVja2JveFRhZy5odG1sIj48Qj5OZXN0ZWRDaGVja2JveFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1nVGFnLmh0bWwiPjxCPkltZ1RhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWdUYWcuaHRtbCI+PEI+TmVzdGVkSW1nVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPjxCPkxpbmtUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTGlua1RhZy5odG1sIj48Qj5OZXN0ZWRMaW5rVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sIj48Qj5NdWx0aWJveFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNdWx0aWJveFRhZy5odG1sIj48Qj5OZXN0ZWRNdWx0aWJveFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+PEI+UmFkaW9UYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUmFkaW9UYWcuaHRtbCI+PEI+TmVzdGVkUmFkaW9UYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj48Qj5TZWxlY3RUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU2VsZWN0VGFnLmh0bWwiPjxCPk5lc3RlZFNlbGVjdFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPjxCPlN1Ym1pdFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+PEI+SW1hZ2VUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1hZ2VUYWcuaHRtbCI+PEI+TmVzdGVkSW1hZ2VUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTdWJtaXRUYWcuaHRtbCI+PEI+TmVzdGVkU3VibWl0VGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+KQorPC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj48Qj5NZXNzYWdlc1RhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRNZXNzYWdlc1RhZy5odG1sIj48Qj5OZXN0ZWRNZXNzYWdlc1RhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj48Qj5FcnJvcnNUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwiPjxCPk5lc3RlZEVycm9yc1RhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRm9ybVRhZy5odG1sIj48Qj5Gb3JtVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEZvcm1UYWcuaHRtbCI+PEI+TmVzdGVkRm9ybVRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+PEI+T3B0aW9uc0NvbGxlY3Rpb25UYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+PEI+TmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvbnNUYWcuaHRtbCI+PEI+T3B0aW9uc1RhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zVGFnLmh0bWwiPjxCPk5lc3RlZE9wdGlvbnNUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzwvVUw+Cis8L1VMPgorPC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXVzZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXVzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5YWYxZWQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2UtdXNlLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBQYWNrYWdlPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFbXB0eVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4YWFkNTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFbXB0eVRhZy5odG1sCkBAIC0wLDAgKzEsNDQ4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkRW1wdHlUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkRW1wdHlUYWcsTmVzdGVkRW1wdHlUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZEVtcHR5VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZEVtcHR5VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRXF1YWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEVtcHR5VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkRW1wdHlUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkVtcHR5VGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkRW1wdHlUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWRFbXB0eVRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCI+RW1wdHlUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZEVtcHR5VGFnLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlczwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEVtcHR5VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRW1wdHlUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPm9yaWdpbmFsTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRW1wdHlUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij5vcmlnaW5hbFByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcGFyYW1ldGVyIj5wYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3VzZXIiPnVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFbXB0eVRhZy5odG1sI05lc3RlZEVtcHR5VGFnKCkiPk5lc3RlZEVtcHR5VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRW1wdHlUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFbXB0eVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FbXB0eVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIj5FbXB0eVRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VtcHR5VGFnLmh0bWwjY29uZGl0aW9uKGJvb2xlYW4pIj5jb25kaXRpb248L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRFbXB0eVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRFbXB0eVRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk5lc3RlZEVtcHR5VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgICBUaGlzIGlzIGluIHRoZSBoYW5kcyBvZiB0aGUgc3VwZXIgY2xhc3MuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4gVGhlIG5lc3RlZCB0YWdzIGhlcmUgd2lsbCByZXN0b3JlCisgYWxsIHRoZSBvcmlnaW5hbCB2YWx1ZSBmb3IgdGhlIHRhZyBpdHNlbGYgYW5kIHRoZSBuZXN0aW5nIGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCB0byBkZXNjcmliZSB0aGUgbmV4dCBzdGVwIGZvciB0aGUgSlNQIHByb2Nlc3NvcgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGZvciB0aGUgYmFkIHRoaW5ncyBKU1AncyBkbzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkRW1wdHlUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkRW1wdHlUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRXF1YWxUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTYwMWIyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRXF1YWxUYWcuaHRtbApAQCAtMCwwICsxLDQ2OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZEVxdWFsVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEVxdWFsVGFnLE5lc3RlZEVxdWFsVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRFcXVhbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkRXF1YWxUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuRXF1YWxUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRFcXVhbFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5lc3RlZEVxdWFsVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIj5FcXVhbFRhZzwvQT48RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvREw+CisKKzxQPgorTmVzdGVkRXF1YWxUYWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkRXF1YWxUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sI29yaWdpbmFsTmFtZSI+b3JpZ2luYWxOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0RPVUJMRV9DT01QQVJFIj5ET1VCTEVfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0xPTkdfQ09NUEFSRSI+TE9OR19DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjU1RSSU5HX0NPTVBBUkUiPlNUUklOR19DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2Nvb2tpZSI+Y29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2hlYWRlciI+aGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcGFyYW1ldGVyIj5wYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3VzZXIiPnVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sI05lc3RlZEVxdWFsVGFnKCkiPk5lc3RlZEVxdWFsVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRXF1YWxUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FcXVhbFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIj5FcXVhbFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oaW50LCBpbnQpIj5jb25kaXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj5nZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0VXNlcigpIj5nZXRVc2VyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldENvb2tpZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFVzZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkTmFtZVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ib3JpZ2luYWxOYW1lIj48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib3JpZ2luYWxQcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5lc3RlZEVxdWFsVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZEVxdWFsVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkRXF1YWxUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEdldHMgdGhlIHJlbGF0aXZlIHByb3BlcnR5CisgYW5kIGxlYXZlcyB0aGUgcmVzdCB1cCB0byB0aGUgb3JpZ2luYWwgdGFnIGltcGxlbWVudGF0aW9uLiBTd2VldC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IEpTUCBjb250aW51YXRpb24gZGlyZWN0aXZlLgorICAgICAgICAgICAgIFRoaXMgaXMgaW4gdGhlIGhhbmRzIG9mIHRoZSBzdXBlciBjbGFzcy4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLiBUaGUgbmVzdGVkIHRhZ3MgaGVyZSB3aWxsIHJlc3RvcmUKKyBhbGwgdGhlIG9yaWdpbmFsIHZhbHVlIGZvciB0aGUgdGFnIGl0c2VsZiBhbmQgdGhlIG5lc3RpbmcgY29udGV4dC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRFcXVhbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDg3ODMxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwKQEAgLTAsMCArMSw0NjggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWRHcmVhdGVyRXF1YWxUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkR3JlYXRlckVxdWFsVGFnLE5lc3RlZEdyZWF0ZXJFcXVhbFRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTmVzdGVkR3JlYXRlckVxdWFsVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZEdyZWF0ZXJFcXVhbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkR3JlYXRlckVxdWFsVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlckVxdWFsVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5HcmVhdGVyRXF1YWxUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIj5HcmVhdGVyRXF1YWxUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZEdyZWF0ZXJFcXVhbFRhZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+QXJyb24gQmF0ZXM8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRHcmVhdGVyRXF1YWxUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPm9yaWdpbmFsTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+b3JpZ2luYWxQcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjRE9VQkxFX0NPTVBBUkUiPkRPVUJMRV9DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjTE9OR19DT01QQVJFIj5MT05HX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNTVFJJTkdfQ09NUEFSRSI+U1RSSU5HX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcm9sZSI+cm9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+dXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJFcXVhbFRhZy5odG1sI05lc3RlZEdyZWF0ZXJFcXVhbFRhZygpIj5OZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJFcXVhbFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkdyZWF0ZXJFcXVhbFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbCI+R3JlYXRlckVxdWFsVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oaW50LCBpbnQpIj5jb25kaXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj5nZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0VXNlcigpIj5nZXRVc2VyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldENvb2tpZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFVzZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkTmFtZVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ib3JpZ2luYWxOYW1lIj48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib3JpZ2luYWxQcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5lc3RlZEdyZWF0ZXJFcXVhbFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEdldHMgdGhlIHJlbGF0aXZlIHByb3BlcnR5CisgYW5kIGxlYXZlcyB0aGUgcmVzdCB1cCB0byB0aGUgb3JpZ2luYWwgdGFnIGltcGxlbWVudGF0aW9uLiBTd2VldC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IEpTUCBjb250aW51YXRpb24gZGlyZWN0aXZlLgorICAgICAgICAgICAgIFRoaXMgaXMgaW4gdGhlIGhhbmRzIG9mIHRoZSBzdXBlciBjbGFzcy4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLiBUaGUgbmVzdGVkIHRhZ3MgaGVyZSB3aWxsIHJlc3RvcmUKKyBhbGwgdGhlIG9yaWdpbmFsIHZhbHVlIGZvciB0aGUgdGFnIGl0c2VsZiBhbmQgdGhlIG5lc3RpbmcgY29udGV4dC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEdyZWF0ZXJFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3ZTA5ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sCkBAIC0wLDAgKzEsNDY4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkR3JlYXRlclRoYW5UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkR3JlYXRlclRoYW5UYWcsTmVzdGVkR3JlYXRlclRoYW5UYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZEdyZWF0ZXJUaGFuVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZEdyZWF0ZXJUaGFuVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkdyZWF0ZXJUaGFuVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkR3JlYXRlclRoYW5UYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWRHcmVhdGVyVGhhblRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCI+R3JlYXRlclRoYW5UYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZEdyZWF0ZXJUaGFuVGFnLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlczwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEdyZWF0ZXJUaGFuVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCNvcmlnaW5hbE5hbWUiPm9yaWdpbmFsTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij5vcmlnaW5hbFByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNET1VCTEVfQ09NUEFSRSI+RE9VQkxFX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNMT05HX0NPTVBBUkUiPkxPTkdfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI1NUUklOR19DT01QQVJFIj5TVFJJTkdfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPmNvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNoZWFkZXIiPmhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCNOZXN0ZWRHcmVhdGVyVGhhblRhZygpIj5OZXN0ZWRHcmVhdGVyVGhhblRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuR3JlYXRlclRoYW5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvR3JlYXRlclRoYW5UYWcuaHRtbCI+R3JlYXRlclRoYW5UYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjY29uZGl0aW9uKGludCwgaW50KSI+Y29uZGl0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRHcmVhdGVyVGhhblRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWRHcmVhdGVyVGhhblRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk5lc3RlZEdyZWF0ZXJUaGFuVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgICBUaGlzIGlzIGluIHRoZSBoYW5kcyBvZiB0aGUgc3VwZXIgY2xhc3MuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4gVGhlIG5lc3RlZCB0YWdzIGhlcmUgd2lsbCByZXN0b3JlCisgYWxsIHRoZSBvcmlnaW5hbCB2YWx1ZSBmb3IgdGhlIHRhZyBpdHNlbGYgYW5kIHRoZSBuZXN0aW5nIGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCB0byBkZXNjcmliZSB0aGUgbmV4dCBzdGVwIGZvciB0aGUgSlNQIHByb2Nlc3NvcgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGZvciB0aGUgYmFkIHRoaW5ncyBKU1AncyBkbzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmMWM4ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwKQEAgLTAsMCArMSw1ODYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWRJdGVyYXRlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEl0ZXJhdGVUYWcsTmVzdGVkSXRlcmF0ZVRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTmVzdGVkSXRlcmF0ZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEl0ZXJhdGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBOZXN0ZWRJdGVyYXRlVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuSXRlcmF0ZVRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEl0ZXJhdGVUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZywgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkSXRlcmF0ZVRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPjxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9ETD4KKworPFA+CitOZXN0ZWRJdGVyYXRlVGFnLgorIFNsaWdodGx5IG1vcmUgY29tcGxleCB0aGF0IHRoZSBvdGhlciBleHRlbnNpb25zLiBUaGlzIG9uZSBoYXMgdG8geWllbGQgYQorIHByb3BlciBpbmRleCBwcm9wZXJ0eS4gVmVyeSB0YXhpbmcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkSXRlcmF0ZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCNuZXN0aW5nIj5uZXN0aW5nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj5vcmlnaW5hbE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCNvcmlnaW5hbE5lc3RpbmciPm9yaWdpbmFsTmVzdGluZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sI29yaWdpbmFsTmVzdGluZ05hbWUiPm9yaWdpbmFsTmVzdGluZ05hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij5vcmlnaW5hbFByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuSXRlcmF0ZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2NvbGxlY3Rpb24iPmNvbGxlY3Rpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2lkIj5pZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjaW5kZXhJZCI+aW5kZXhJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjaXRlcmF0b3IiPml0ZXJhdG9yPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNsZW5ndGgiPmxlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjbGVuZ3RoQ291bnQiPmxlbmd0aENvdW50PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNsZW5ndGhWYWx1ZSI+bGVuZ3RoVmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjb2Zmc2V0Ij5vZmZzZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI29mZnNldFZhbHVlIj5vZmZzZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3N0YXJ0ZWQiPnN0YXJ0ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3R5cGUiPnR5cGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Ym9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sI05lc3RlZEl0ZXJhdGVUYWcoKSI+TmVzdGVkSXRlcmF0ZVRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCNkZXJpdmVOZXN0ZWRQcm9wZXJ0eSgpIj5kZXJpdmVOZXN0ZWRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBvbmx5IGFkZGVkIHByb3BlcnR5IHRvIHRoZSBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sI2RvQWZ0ZXJCb2R5KCkiPmRvQWZ0ZXJCb2R5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyBvbmx5IG92ZXJyaWRlbiBhcyB0aGUgaW5jbHVkZSByZWZlcmVuY2Ugd2lsbCBuZWVkIGl0J3MgaW5kZXgKKyB1cGRhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkl0ZXJhdGVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0Q29sbGVjdGlvbigpIj5nZXRDb2xsZWN0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNnZXRJZCgpIj5nZXRJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0SW5kZXgoKSI+Z2V0SW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldEluZGV4SWQoKSI+Z2V0SW5kZXhJZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0TGVuZ3RoKCkiPmdldExlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNnZXRPZmZzZXQoKSI+Z2V0T2Zmc2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI2dldFR5cGUoKSI+Z2V0VHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0Q29sbGVjdGlvbihqYXZhLmxhbmcuT2JqZWN0KSI+c2V0Q29sbGVjdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0SWQoamF2YS5sYW5nLlN0cmluZykiPnNldElkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzZXRJbmRleElkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJbmRleElkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzZXRMZW5ndGgoamF2YS5sYW5nLlN0cmluZykiPnNldExlbmd0aDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0T2Zmc2V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPZmZzZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUeXBlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9Jbml0Qm9keSwgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im5lc3RpbmciPjwhLS0gLS0+PC9BPjxIMz4KK25lc3Rpbmc8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5uZXN0aW5nPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmVzdGluZyI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOZXN0aW5nPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOZXN0aW5nPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmVzdGluZ05hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmVzdGluZ05hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5lc3RpbmdOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRJdGVyYXRlVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZEl0ZXJhdGVUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRJdGVyYXRlVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCI+SXRlcmF0ZVRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgICBUaGlzIGlzIGluIHRoZSBoYW5kcyBvZiB0aGUgc3VwZXIgY2xhc3MuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVyaXZlTmVzdGVkUHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZGVyaXZlTmVzdGVkUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5kZXJpdmVOZXN0ZWRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoZSBvbmx5IGFkZGVkIHByb3BlcnR5IHRvIHRoZSBjbGFzcy4gRm9yIHVzZSBpbiBwcm9wZXIgbmVzdGluZy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5TdHJpbmcgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGFuZCB0aGUgY3VycmVudCBpbmRleCBvciBtYXBwaW5nLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9BZnRlckJvZHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9BZnRlckJvZHk8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9BZnRlckJvZHk8L0I+KCkKKyAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+VGhpcyBpcyBvbmx5IG92ZXJyaWRlbiBhcyB0aGUgaW5jbHVkZSByZWZlcmVuY2Ugd2lsbCBuZWVkIGl0J3MgaW5kZXgKKyB1cGRhdGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvQWZ0ZXJCb2R5PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwjZG9BZnRlckJvZHkoKSI+ZG9BZnRlckJvZHk8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IEpTUCBjb250aW51YXRpb24gZGlyZWN0aXZlLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuIFRoZSBuZXN0ZWQgdGFncyBoZXJlIHdpbGwgcmVzdG9yZQorIGFsbCB0aGUgb3JpZ2luYWwgdmFsdWUgZm9yIHRoZSB0YWcgaXRzZWxmIGFuZCB0aGUgbmVzdGluZyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPkl0ZXJhdGVUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgdG8gZGVzY3JpYmUgdGhlIG5leHQgc3RlcCBmb3IgdGhlIEpTUCBwcm9jZXNzb3IKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBmb3IgdGhlIGJhZCB0aGluZ3MgSlNQJ3MgZG88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj5JdGVyYXRlVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRlaS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkSXRlcmF0ZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUZWkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUZWkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDMwZGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRlaS5odG1sCkBAIC0wLDAgKzEsMjk3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkSXRlcmF0ZVRlaSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRJdGVyYXRlVGVpLE5lc3RlZEl0ZXJhdGVUZWkgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZEl0ZXJhdGVUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkSXRlcmF0ZVRlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkSXRlcmF0ZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZEl0ZXJhdGVUZWk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvCisgICAgICAgIHwKKyAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkl0ZXJhdGVUZWk8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRJdGVyYXRlVGVpPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5lc3RlZEl0ZXJhdGVUZWk8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCI+SXRlcmF0ZVRlaTwvQT48L0RMPgorCis8UD4KK05lc3RlZEl0ZXJhdGVUZWkKKyBFeHRlbmRpbmcgdGhlIG9yaWdpbmFsIHRhZydzIHRlaSBjbGFzcywgc28gdGhhdCB3ZSBjYW4gbWFrZSB0aGUgImlkIgorIGF0dHJpYnV0ZSBvcHRpb25hbCwgc28gdGhhdCB0aG9zZSB3aG8gd2FudCB0byBzY3JpcHQgY2FuIGFkZCBpdCBpZiB0aGV5IG5lZWQKKyBpdCBvdGhlcndpc2Ugd2UgY2FuIG1haW50YWluIHRoZSBuaWNlIGxlYW4gdGFnIG1hcmt1cC4KKworICBUT0RPIC0gTG9vayBhdCBkZWxldGluZyB0aGlzIGNsYXNzLiBQb3RlbnRpYWxseSBhIHBvaW50bGVzcyBleGlzdGFuY2Ugbm93CisgICAgICAgICB0aGF0IHRoZSBzdXBlciBjbGFzcyBpcyB0b3dpbmcgdGhlIGxpbmUuIExlZnQgYWxvbmUgYmVjYXVzZSBpdCdzIG5vdAorICAgICAgICAgaHVydGluZyBhbnl0aGluZyBhcy1pcy4KKyAgICAgICAgIE5vdGU6IFdoZW4gZG9uZSwgaXQgcmVxdWlyZXMgcG9pbnRpbmcgdGhlIHRlaSByZWZlcmVuY2UgaW4gdGhlCisgICAgICAgICAgICAgICBzdHJ1dHMtbmVzdGVkLnRsZCB0byBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuSXRlcmF0ZVRlaQorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlczwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUZWkuaHRtbCNOZXN0ZWRJdGVyYXRlVGVpKCkiPk5lc3RlZEl0ZXJhdGVUZWk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+Z2V0VmFyaWFibGVJbmZvPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0VGFnSW5mbywgaXNWYWxpZCwgc2V0VGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRJdGVyYXRlVGVpKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZEl0ZXJhdGVUZWk8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRJdGVyYXRlVGVpPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYXJpYWJsZUluZm88L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW10gPEI+Z2V0VmFyaWFibGVJbmZvPC9CPihqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSZuYnNwO2RhdGEpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0l0ZXJhdGVUZWkuaHRtbCNnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj5nZXRWYXJpYWJsZUluZm88L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sIj5JdGVyYXRlVGVpPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZEl0ZXJhdGVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEl0ZXJhdGVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzYTZjNDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbApAQCAtMCwwICsxLDQ2OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZExlc3NFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRMZXNzRXF1YWxUYWcsTmVzdGVkTGVzc0VxdWFsVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRMZXNzRXF1YWxUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc1RoYW5UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZExlc3NFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZExlc3NFcXVhbFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTGVzc0VxdWFsVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTGVzc0VxdWFsVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkTGVzc0VxdWFsVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzRXF1YWxUYWcuaHRtbCI+TGVzc0VxdWFsVGFnPC9BPjxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9ETD4KKworPFA+CitOZXN0ZWRMZXNzRXF1YWxUYWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTGVzc0VxdWFsVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj5vcmlnaW5hbE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0RPVUJMRV9DT01QQVJFIj5ET1VCTEVfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0xPTkdfQ09NUEFSRSI+TE9OR19DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjU1RSSU5HX0NPTVBBUkUiPlNUUklOR19DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2Nvb2tpZSI+Y29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2hlYWRlciI+aGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcGFyYW1ldGVyIj5wYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3VzZXIiPnVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCNOZXN0ZWRMZXNzRXF1YWxUYWcoKSI+TmVzdGVkTGVzc0VxdWFsVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5MZXNzRXF1YWxUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiPkxlc3NFcXVhbFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjY29uZGl0aW9uKGludCwgaW50KSI+Y29uZGl0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRMZXNzRXF1YWxUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTmVzdGVkTGVzc0VxdWFsVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkTGVzc0VxdWFsVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgICBUaGlzIGlzIGluIHRoZSBoYW5kcyBvZiB0aGUgc3VwZXIgY2xhc3MuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4gVGhlIG5lc3RlZCB0YWdzIGhlcmUgd2lsbCByZXN0b3JlCisgYWxsIHRoZSBvcmlnaW5hbCB2YWx1ZSBmb3IgdGhlIHRhZyBpdHNlbGYgYW5kIHRoZSBuZXN0aW5nIGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCB0byBkZXNjcmliZSB0aGUgbmV4dCBzdGVwIGZvciB0aGUgSlNQIHByb2Nlc3NvcgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGZvciB0aGUgYmFkIHRoaW5ncyBKU1AncyBkbzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRlaS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc1RoYW5UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZExlc3NFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NUaGFuVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkOGRjNTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sCkBAIC0wLDAgKzEsNDY4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkTGVzc1RoYW5UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTGVzc1RoYW5UYWcsTmVzdGVkTGVzc1RoYW5UYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZExlc3NUaGFuVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZExlc3NUaGFuVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNYXRjaFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTGVzc1RoYW5UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBOZXN0ZWRMZXNzVGhhblRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5MZXNzVGhhblRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZExlc3NUaGFuVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkTGVzc1RoYW5UYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwiPkxlc3NUaGFuVGFnPC9BPjxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9ETD4KKworPFA+CitOZXN0ZWRMZXNzVGhhblRhZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+QXJyb24gQmF0ZXM8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRMZXNzVGhhblRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NUaGFuVGFnLmh0bWwjb3JpZ2luYWxOYW1lIj5vcmlnaW5hbE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NUaGFuVGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+b3JpZ2luYWxQcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+Q29tcGFyZVRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjRE9VQkxFX0NPTVBBUkUiPkRPVUJMRV9DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjTE9OR19DT01QQVJFIj5MT05HX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNTVFJJTkdfQ09NUEFSRSI+U1RSSU5HX0NPTVBBUkU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcm9sZSI+cm9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+dXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NUaGFuVGFnLmh0bWwjTmVzdGVkTGVzc1RoYW5UYWcoKSI+TmVzdGVkTGVzc1RoYW5UYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc1RoYW5UYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NUaGFuVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkxlc3NUaGFuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwiPkxlc3NUaGFuVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9MZXNzVGhhblRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2NvbmRpdGlvbihpbnQsIGludCkiPmNvbmRpdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Q29va2llKCkiPmdldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRIZWFkZXIoKSI+Z2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQYXJhbWV0ZXIoKSI+Z2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRVc2VyKCkiPmdldFVzZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJvcmlnaW5hbE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvcmlnaW5hbFByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTmVzdGVkTGVzc1RoYW5UYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTmVzdGVkTGVzc1RoYW5UYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRMZXNzVGhhblRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4gR2V0cyB0aGUgcmVsYXRpdmUgcHJvcGVydHkKKyBhbmQgbGVhdmVzIHRoZSByZXN0IHVwIHRvIHRoZSBvcmlnaW5hbCB0YWcgaW1wbGVtZW50YXRpb24uIFN3ZWV0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCisgICAgICAgICAgICAgVGhpcyBpcyBpbiB0aGUgaGFuZHMgb2YgdGhlIHN1cGVyIGNsYXNzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuIFRoZSBuZXN0ZWQgdGFncyBoZXJlIHdpbGwgcmVzdG9yZQorIGFsbCB0aGUgb3JpZ2luYWwgdmFsdWUgZm9yIHRoZSB0YWcgaXRzZWxmIGFuZCB0aGUgbmVzdGluZyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgdG8gZGVzY3JpYmUgdGhlIG5leHQgc3RlcCBmb3IgdGhlIEpTUCBwcm9jZXNzb3IKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBmb3IgdGhlIGJhZCB0aGluZ3MgSlNQJ3MgZG88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZExlc3NUaGFuVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNYXRjaFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTGVzc1RoYW5UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNYXRjaFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNWIyMjY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbApAQCAtMCwwICsxLDQ1NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZE1hdGNoVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE1hdGNoVGFnLE5lc3RlZE1hdGNoVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRNYXRjaFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRNYXRjaFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NUaGFuVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE1hdGNoVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkTWF0Y2hUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1hdGNoVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTWF0Y2hUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWRNYXRjaFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZE1hdGNoVGFnLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlczwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE1hdGNoVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPm9yaWdpbmFsTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij5vcmlnaW5hbFByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWF0Y2hUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNsb2NhdGlvbiI+bG9jYXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcGFyYW1ldGVyIj5wYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3VzZXIiPnVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNYXRjaFRhZy5odG1sI05lc3RlZE1hdGNoVGFnKCkiPk5lc3RlZE1hdGNoVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1hdGNoVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNYXRjaFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NYXRjaFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjY29uZGl0aW9uKGJvb2xlYW4pIj5jb25kaXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNnZXRMb2NhdGlvbigpIj5nZXRMb2NhdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjc2V0TG9jYXRpb24oamF2YS5sYW5nLlN0cmluZykiPnNldExvY2F0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Q29va2llKCkiPmdldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRIZWFkZXIoKSI+Z2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQYXJhbWV0ZXIoKSI+Z2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRVc2VyKCkiPmdldFVzZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJvcmlnaW5hbE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvcmlnaW5hbFByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTmVzdGVkTWF0Y2hUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTmVzdGVkTWF0Y2hUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRNYXRjaFRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4gR2V0cyB0aGUgcmVsYXRpdmUgcHJvcGVydHkKKyBhbmQgbGVhdmVzIHRoZSByZXN0IHVwIHRvIHRoZSBvcmlnaW5hbCB0YWcgaW1wbGVtZW50YXRpb24uIFN3ZWV0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCisgICAgICAgICAgICAgVGhpcyBpcyBpbiB0aGUgaGFuZHMgb2YgdGhlIHN1cGVyIGNsYXNzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuIFRoZSBuZXN0ZWQgdGFncyBoZXJlIHdpbGwgcmVzdG9yZQorIGFsbCB0aGUgb3JpZ2luYWwgdmFsdWUgZm9yIHRoZSB0YWcgaXRzZWxmIGFuZCB0aGUgbmVzdGluZyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgdG8gZGVzY3JpYmUgdGhlIG5leHQgc3RlcCBmb3IgdGhlIEpTUCBwcm9jZXNzb3IKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBmb3IgdGhlIGJhZCB0aGluZ3MgSlNQJ3MgZG88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPk1hdGNoVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZE1hdGNoVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc1RoYW5UYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3ZTJjNTgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbApAQCAtMCwwICsxLDQ2OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcsTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWVzc2FnZXNQcmVzZW50VGFnPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPk1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT48RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvREw+CisKKzxQPgorTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlcywgRGF2aWQgV2ludGVyZmVsZHQ8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPm9yaWdpbmFsTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwjb3JpZ2luYWxQcm9wZXJ0eSI+b3JpZ2luYWxQcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1lc3NhZ2VzUHJlc2VudFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5NZXNzYWdlc1ByZXNlbnRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sI21lc3NhZ2UiPm1lc3NhZ2U8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcGFyYW1ldGVyIj5wYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3VzZXIiPnVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCNOZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcoKSI+TmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NZXNzYWdlc05vdFByZXNlbnRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPk1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWVzc2FnZXNQcmVzZW50VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5NZXNzYWdlc1ByZXNlbnRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sI2NvbmRpdGlvbihib29sZWFuKSI+Y29uZGl0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sI2dldE1lc3NhZ2UoKSI+Z2V0TWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCNzZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRNZXNzYWdlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Q29va2llKCkiPmdldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRIZWFkZXIoKSI+Z2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQYXJhbWV0ZXIoKSI+Z2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRVc2VyKCkiPmdldFVzZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJvcmlnaW5hbE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvcmlnaW5hbFByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4gR2V0cyB0aGUgcmVsYXRpdmUgcHJvcGVydHkKKyBhbmQgbGVhdmVzIHRoZSByZXN0IHVwIHRvIHRoZSBvcmlnaW5hbCB0YWcgaW1wbGVtZW50YXRpb24uIFN3ZWV0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCisgICAgICAgICAgICAgVGhpcyBpcyBpbiB0aGUgaGFuZHMgb2YgdGhlIHN1cGVyIGNsYXNzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuIFRoZSBuZXN0ZWQgdGFncyBoZXJlIHdpbGwgcmVzdG9yZQorIGFsbCB0aGUgb3JpZ2luYWwgdmFsdWUgZm9yIHRoZSB0YWcgaXRzZWxmIGFuZCB0aGUgbmVzdGluZyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgdG8gZGVzY3JpYmUgdGhlIG5leHQgc3RlcCBmb3IgdGhlIEpTUCBwcm9jZXNzb3IKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBmb3IgdGhlIGJhZCB0aGluZ3MgSlNQJ3MgZG88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TWVzc2FnZXNQcmVzZW50VGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1hdGNoVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzBlMmI3NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sCkBAIC0wLDAgKzEsNDU3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZyxOZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBOZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NZXNzYWdlc1ByZXNlbnRUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5NZXNzYWdlc1ByZXNlbnRUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+QXJyb24gQmF0ZXMsIERhdmlkIFdpbnRlcmZlbGR0PC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjb3JpZ2luYWxOYW1lIj5vcmlnaW5hbE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NZXNzYWdlc1ByZXNlbnRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+TWVzc2FnZXNQcmVzZW50VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCNtZXNzYWdlIj5tZXNzYWdlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2Nvb2tpZSI+Y29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2hlYWRlciI+aGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnKCkiPk5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWVzc2FnZXNQcmVzZW50VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5NZXNzYWdlc1ByZXNlbnRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sI2NvbmRpdGlvbigpIj5jb25kaXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjY29uZGl0aW9uKGJvb2xlYW4pIj5jb25kaXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjZ2V0TWVzc2FnZSgpIj5nZXRNZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sI3NldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldE1lc3NhZ2U8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgICBUaGlzIGlzIGluIHRoZSBoYW5kcyBvZiB0aGUgc3VwZXIgY2xhc3MuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4gVGhlIG5lc3RlZCB0YWdzIGhlcmUgd2lsbCByZXN0b3JlCisgYWxsIHRoZSBvcmlnaW5hbCB2YWx1ZSBmb3IgdGhlIHRhZyBpdHNlbGYgYW5kIHRoZSBuZXN0aW5nIGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCB0byBkZXNjcmliZSB0aGUgbmV4dCBzdGVwIGZvciB0aGUgSlNQIHByb2Nlc3NvcgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGZvciB0aGUgYmFkIHRoaW5ncyBKU1AncyBkbzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5NZXNzYWdlc1ByZXNlbnRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFbXB0eVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzExZWZkZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwKQEAgLTAsMCArMSw0NTkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWROb3RFbXB0eVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWROb3RFbXB0eVRhZyxOZXN0ZWROb3RFbXB0eVRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTmVzdGVkTm90RW1wdHlUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVxdWFsVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWROb3RFbXB0eVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZE5vdEVtcHR5VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VtcHR5VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FbXB0eVRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdEVtcHR5VGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTm90RW1wdHlUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWROb3RFbXB0eVRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbCI+Tm90RW1wdHlUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZE5vdEVtcHR5VGFnLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlczwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE5vdEVtcHR5VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPm9yaWdpbmFsTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij5vcmlnaW5hbFByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcGFyYW1ldGVyIj5wYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3VzZXIiPnVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFbXB0eVRhZy5odG1sI05lc3RlZE5vdEVtcHR5VGFnKCkiPk5lc3RlZE5vdEVtcHR5VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFbXB0eVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RFbXB0eVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFbXB0eVRhZy5odG1sIj5Ob3RFbXB0eVRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FbXB0eVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIj5FbXB0eVRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCNjb25kaXRpb24oYm9vbGVhbikiPmNvbmRpdGlvbjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj5nZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0VXNlcigpIj5nZXRVc2VyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldENvb2tpZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFVzZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkTmFtZVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ib3JpZ2luYWxOYW1lIj48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib3JpZ2luYWxQcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5lc3RlZE5vdEVtcHR5VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZE5vdEVtcHR5VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkTm90RW1wdHlUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEdldHMgdGhlIHJlbGF0aXZlIHByb3BlcnR5CisgYW5kIGxlYXZlcyB0aGUgcmVzdCB1cCB0byB0aGUgb3JpZ2luYWwgdGFnIGltcGxlbWVudGF0aW9uLiBTd2VldC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IEpTUCBjb250aW51YXRpb24gZGlyZWN0aXZlLgorICAgICAgICAgICAgIFRoaXMgaXMgaW4gdGhlIGhhbmRzIG9mIHRoZSBzdXBlciBjbGFzcy4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLiBUaGUgbmVzdGVkIHRhZ3MgaGVyZSB3aWxsIHJlc3RvcmUKKyBhbGwgdGhlIG9yaWdpbmFsIHZhbHVlIGZvciB0aGUgdGFnIGl0c2VsZiBhbmQgdGhlIG5lc3RpbmcgY29udGV4dC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWROb3RFbXB0eVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE5vdEVtcHR5VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVxdWFsVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQyN2JlNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVxdWFsVGFnLmh0bWwKQEAgLTAsMCArMSw0NjggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOZXN0ZWROb3RFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWROb3RFcXVhbFRhZyxOZXN0ZWROb3RFcXVhbFRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTmVzdGVkTm90RXF1YWxUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFbXB0eVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE5vdEVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9GT05UPgorPEJSPgorQ2xhc3MgTmVzdGVkTm90RXF1YWxUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90RXF1YWxUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWROb3RFcXVhbFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+TmVzdGVkVGFnU3VwcG9ydDwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk5lc3RlZE5vdEVxdWFsVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIj5Ob3RFcXVhbFRhZzwvQT48RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvREw+CisKKzxQPgorTmVzdGVkTm90RXF1YWxUYWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTm90RXF1YWxUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sI29yaWdpbmFsTmFtZSI+b3JpZ2luYWxOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwiPkNvbXBhcmVUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0RPVUJMRV9DT01QQVJFIj5ET1VCTEVfQ09NUEFSRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI0xPTkdfQ09NUEFSRSI+TE9OR19DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjU1RSSU5HX0NPTVBBUkUiPlNUUklOR19DT01QQVJFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2Nvb2tpZSI+Y29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2hlYWRlciI+aGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcGFyYW1ldGVyIj5wYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3VzZXIiPnVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sI05lc3RlZE5vdEVxdWFsVGFnKCkiPk5lc3RlZE5vdEVxdWFsVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVxdWFsVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RFcXVhbFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIj5Ob3RFcXVhbFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db21wYXJlVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNjb25kaXRpb24oaW50LCBpbnQpIj5jb25kaXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldENvb2tpZSgpIj5nZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0SGVhZGVyKCkiPmdldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UGFyYW1ldGVyKCkiPmdldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0VXNlcigpIj5nZXRVc2VyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldENvb2tpZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFVzZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkTmFtZVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ib3JpZ2luYWxOYW1lIj48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib3JpZ2luYWxQcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5lc3RlZE5vdEVxdWFsVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZE5vdEVxdWFsVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkTm90RXF1YWxUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEdldHMgdGhlIHJlbGF0aXZlIHByb3BlcnR5CisgYW5kIGxlYXZlcyB0aGUgcmVzdCB1cCB0byB0aGUgb3JpZ2luYWwgdGFnIGltcGxlbWVudGF0aW9uLiBTd2VldC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IEpTUCBjb250aW51YXRpb24gZGlyZWN0aXZlLgorICAgICAgICAgICAgIFRoaXMgaXMgaW4gdGhlIGhhbmRzIG9mIHRoZSBzdXBlciBjbGFzcy4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLiBUaGUgbmVzdGVkIHRhZ3MgaGVyZSB3aWxsIHJlc3RvcmUKKyBhbGwgdGhlIG9yaWdpbmFsIHZhbHVlIGZvciB0aGUgdGFnIGl0c2VsZiBhbmQgdGhlIG5lc3RpbmcgY29udGV4dC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+aW50IHRvIGRlc2NyaWJlIHRoZSBuZXh0IHN0ZXAgZm9yIHRoZSBKU1AgcHJvY2Vzc29yCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gZm9yIHRoZSBiYWQgdGhpbmdzIEpTUCdzIGRvPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5Db21wYXJlVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWROb3RFcXVhbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTm90RXF1YWxUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWQ2ZjZlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbApAQCAtMCwwICsxLDQ2OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZE5vdE1hdGNoVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE5vdE1hdGNoVGFnLE5lc3RlZE5vdE1hdGNoVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWROb3RNYXRjaFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVxdWFsVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWROb3RNYXRjaFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZE5vdE1hdGNoVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NYXRjaFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdE1hdGNoVGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTm90TWF0Y2hUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWROb3RNYXRjaFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCI+Tm90TWF0Y2hUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZE5vdE1hdGNoVGFnLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlczwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE5vdE1hdGNoVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPm9yaWdpbmFsTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij5vcmlnaW5hbFByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWF0Y2hUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNsb2NhdGlvbiI+bG9jYXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjY29va2llIj5jb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjaGVhZGVyIj5oZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI25hbWUiPm5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcGFyYW1ldGVyIj5wYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2NvcGUiPnNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3VzZXIiPnVzZXI8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sI05lc3RlZE5vdE1hdGNoVGFnKCkiPk5lc3RlZE5vdE1hdGNoVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdE1hdGNoVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RNYXRjaFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sIj5Ob3RNYXRjaFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NYXRjaFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5NYXRjaFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNjb25kaXRpb24oYm9vbGVhbikiPmNvbmRpdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sI2dldExvY2F0aW9uKCkiPmdldExvY2F0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNzZXRMb2NhdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TG9jYXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWROb3RNYXRjaFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWROb3RNYXRjaFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPk5lc3RlZE5vdE1hdGNoVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgICBUaGlzIGlzIGluIHRoZSBoYW5kcyBvZiB0aGUgc3VwZXIgY2xhc3MuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4gVGhlIG5lc3RlZCB0YWdzIGhlcmUgd2lsbCByZXN0b3JlCisgYWxsIHRoZSBvcmlnaW5hbCB2YWx1ZSBmb3IgdGhlIHRhZyBpdHNlbGYgYW5kIHRoZSBuZXN0aW5nIGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCB0byBkZXNjcmliZSB0aGUgbmV4dCBzdGVwIGZvciB0aGUgSlNQIHByb2Nlc3NvcgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGZvciB0aGUgYmFkIHRoaW5ncyBKU1AncyBkbzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+TWF0Y2hUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90UHJlc2VudFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGEwMTMyNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbApAQCAtMCwwICsxLDQ2OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK05lc3RlZE5vdFByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTm90UHJlc2VudFRhZyxOZXN0ZWROb3RQcmVzZW50VGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJOZXN0ZWROb3RQcmVzZW50VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkUHJlc2VudFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTm90UHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvRk9OVD4KKzxCUj4KK0NsYXNzIE5lc3RlZE5vdFByZXNlbnRUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZTwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUHJlc2VudFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90UHJlc2VudFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE5vdFByZXNlbnRUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwiPk5lc3RlZFRhZ1N1cHBvcnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5OZXN0ZWROb3RQcmVzZW50VGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwiPk5vdFByZXNlbnRUYWc8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0RMPgorCis8UD4KK05lc3RlZE5vdFByZXNlbnRUYWcuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkFycm9uIEJhdGVzPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTm90UHJlc2VudFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCNvcmlnaW5hbE5hbWUiPm9yaWdpbmFsTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90UHJlc2VudFRhZy5odG1sI29yaWdpbmFsUHJvcGVydHkiPm9yaWdpbmFsUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5QcmVzZW50VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj5QcmVzZW50VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwjUk9MRV9ERUxJTUlURVIiPlJPTEVfREVMSU1JVEVSPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2Nvb2tpZSI+Y29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2hlYWRlciI+aGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3BhcmFtZXRlciI+cGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3Njb3BlIj5zY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCN1c2VyIj51c2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90UHJlc2VudFRhZy5odG1sI05lc3RlZE5vdFByZXNlbnRUYWcoKSI+TmVzdGVkTm90UHJlc2VudFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtPdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIHRoZSB0YWcncyByZXNvdXJjZXMgYW5kIHJlc2V0IHRoZSB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90UHJlc2VudFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwiPk5vdFByZXNlbnRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbCNjb25kaXRpb24oKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5QcmVzZW50VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+UHJlc2VudFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sI2NvbmRpdGlvbihib29sZWFuKSI+Y29uZGl0aW9uPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Q29va2llKCkiPmdldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRIZWFkZXIoKSI+Z2V0SGVhZGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRQYXJhbWV0ZXIoKSI+Z2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRVc2VyKCkiPmdldFVzZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Q29va2llKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb29raWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZykiPnNldFBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0U2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjc2V0VXNlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWROYW1lU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI2dldFByb3BlcnR5KCkiPmdldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCNzZXRQcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UHJvcGVydHk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJvcmlnaW5hbE5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJvcmlnaW5hbFByb3BlcnR5Ij48IS0tIC0tPjwvQT48SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTmVzdGVkTm90UHJlc2VudFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitOZXN0ZWROb3RQcmVzZW50VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TmVzdGVkTm90UHJlc2VudFRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5PdmVycmlkaW5nIG1ldGhvZCBvZiB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4gR2V0cyB0aGUgcmVsYXRpdmUgcHJvcGVydHkKKyBhbmQgbGVhdmVzIHRoZSByZXN0IHVwIHRvIHRoZSBvcmlnaW5hbCB0YWcgaW1wbGVtZW50YXRpb24uIFN3ZWV0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgSlNQIGNvbnRpbnVhdGlvbiBkaXJlY3RpdmUuCisgICAgICAgICAgICAgVGhpcyBpcyBpbiB0aGUgaGFuZHMgb2YgdGhlIHN1cGVyIGNsYXNzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNvbXBsZXRlIHRoZSBwcm9jZXNzaW5nIG9mIHRoZSB0YWcuIFRoZSBuZXN0ZWQgdGFncyBoZXJlIHdpbGwgcmVzdG9yZQorIGFsbCB0aGUgb3JpZ2luYWwgdmFsdWUgZm9yIHRoZSB0YWcgaXRzZWxmIGFuZCB0aGUgbmVzdGluZyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5pbnQgdG8gZGVzY3JpYmUgdGhlIG5leHQgc3RlcCBmb3IgdGhlIEpTUCBwcm9jZXNzb3IKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBmb3IgdGhlIGJhZCB0aGluZ3MgSlNQJ3MgZG88L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgdGhlIHRhZydzIHJlc291cmNlcyBhbmQgcmVzZXQgdGhlIHZhbHVlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkUHJlc2VudFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTm90UHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZFByZXNlbnRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZFByZXNlbnRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjRlNTAyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkUHJlc2VudFRhZy5odG1sCkBAIC0wLDAgKzEsNDU3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorTmVzdGVkUHJlc2VudFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRQcmVzZW50VGFnLE5lc3RlZFByZXNlbnRUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5lc3RlZFByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkUHJlc2VudFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBOZXN0ZWRQcmVzZW50VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlByZXNlbnRUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRQcmVzZW50VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkVGFnU3VwcG9ydC5odG1sIj5OZXN0ZWRUYWdTdXBwb3J0PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TmVzdGVkUHJlc2VudFRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj5QcmVzZW50VGFnPC9BPjxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+PC9ETD4KKworPFA+CitOZXN0ZWRQcmVzZW50VGFnLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5BcnJvbiBCYXRlczwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZFByZXNlbnRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwjb3JpZ2luYWxOYW1lIj5vcmlnaW5hbE5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZFByZXNlbnRUYWcuaHRtbCNvcmlnaW5hbFByb3BlcnR5Ij5vcmlnaW5hbFByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuUHJlc2VudFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+UHJlc2VudFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sI1JPTEVfREVMSU1JVEVSIj5ST0xFX0RFTElNSVRFUjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNjb29raWUiPmNvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNoZWFkZXIiPmhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwYXJhbWV0ZXIiPnBhcmFtZXRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNwcm9wZXJ0eSI+cHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcm9sZSI+cm9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzY29wZSI+c2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjdXNlciI+dXNlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZFByZXNlbnRUYWcuaHRtbCNOZXN0ZWRQcmVzZW50VGFnKCkiPk5lc3RlZFByZXNlbnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wbGV0ZSB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcnJpZGluZyBtZXRob2Qgb2YgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlByZXNlbnRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUHJlc2VudFRhZy5odG1sIj5QcmVzZW50VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwjY29uZGl0aW9uKCkiPmNvbmRpdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwjY29uZGl0aW9uKGJvb2xlYW4pIj5jb25kaXRpb248L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbmRpdGlvbmFsVGFnQmFzZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCI+Q29uZGl0aW9uYWxUYWdCYXNlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNnZXRDb29raWUoKSI+Z2V0Q29va2llPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldEhlYWRlcigpIj5nZXRIZWFkZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFBhcmFtZXRlcigpIj5nZXRQYXJhbWV0ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI2dldFVzZXIoKSI+Z2V0VXNlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRDb29raWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvb2tpZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPnNldEhlYWRlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNzZXRVc2VyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRVc2VyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZE5hbWVTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5U3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI3NldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRQcm9wZXJ0eTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im9yaWdpbmFsTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im9yaWdpbmFsUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJOZXN0ZWRQcmVzZW50VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK05lc3RlZFByZXNlbnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5OZXN0ZWRQcmVzZW50VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk92ZXJyaWRpbmcgbWV0aG9kIG9mIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBHZXRzIHRoZSByZWxhdGl2ZSBwcm9wZXJ0eQorIGFuZCBsZWF2ZXMgdGhlIHJlc3QgdXAgdG8gdGhlIG9yaWdpbmFsIHRhZyBpbXBsZW1lbnRhdGlvbi4gU3dlZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCBKU1AgY29udGludWF0aW9uIGRpcmVjdGl2ZS4KKyAgICAgICAgICAgICBUaGlzIGlzIGluIHRoZSBoYW5kcyBvZiB0aGUgc3VwZXIgY2xhc3MuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIG9jY3VyczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29tcGxldGUgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIHRhZy4gVGhlIG5lc3RlZCB0YWdzIGhlcmUgd2lsbCByZXN0b3JlCisgYWxsIHRoZSBvcmlnaW5hbCB2YWx1ZSBmb3IgdGhlIHRhZyBpdHNlbGYgYW5kIHRoZSBuZXN0aW5nIGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPkNvbmRpdGlvbmFsVGFnQmFzZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmludCB0byBkZXNjcmliZSB0aGUgbmV4dCBzdGVwIGZvciB0aGUgSlNQIHByb2Nlc3NvcgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGZvciB0aGUgYmFkIHRoaW5ncyBKU1AncyBkbzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSB0aGUgdGFnJ3MgcmVzb3VyY2VzIGFuZCByZXNldCB0aGUgdmFsdWVzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5Db25kaXRpb25hbFRhZ0Jhc2U8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTmVzdGVkUHJlc2VudFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkRW1wdHlUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL2NsYXNzLXVzZS9OZXN0ZWRFbXB0eVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxMzEyMmUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkRW1wdHlUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRFbXB0eVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEVtcHR5VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEVtcHR5VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRFbXB0eVRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEVtcHR5VGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRW1wdHlUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkRW1wdHlUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZEVxdWFsVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkRXF1YWxUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzM0OWI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZEVxdWFsVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkRXF1YWxUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkRXF1YWxUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRFcXVhbFRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL2NsYXNzLXVzZS9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL2NsYXNzLXVzZS9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmExNTkzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZEdyZWF0ZXJFcXVhbFRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEdyZWF0ZXJFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEdyZWF0ZXJFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRHcmVhdGVyRXF1YWxUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL2NsYXNzLXVzZS9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZjOTI4OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL2NsYXNzLXVzZS9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEdyZWF0ZXJUaGFuVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkR3JlYXRlclRoYW5UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEdyZWF0ZXJUaGFuVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkR3JlYXRlclRoYW5UYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRHcmVhdGVyVGhhblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkSXRlcmF0ZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZEl0ZXJhdGVUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDhkMWU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZEl0ZXJhdGVUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRJdGVyYXRlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkSXRlcmF0ZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEl0ZXJhdGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEl0ZXJhdGVUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRJdGVyYXRlVGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRJdGVyYXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL2NsYXNzLXVzZS9OZXN0ZWRJdGVyYXRlVGVpLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkSXRlcmF0ZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5OTk1NTMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkSXRlcmF0ZVRlaS5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEl0ZXJhdGVUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRJdGVyYXRlVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkSXRlcmF0ZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkSXRlcmF0ZVRlaTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEl0ZXJhdGVUZWkKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZEl0ZXJhdGVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZExlc3NFcXVhbFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZExlc3NFcXVhbFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4NjYyNjAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkTGVzc0VxdWFsVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTGVzc0VxdWFsVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTGVzc0VxdWFsVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZExlc3NFcXVhbFRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZExlc3NFcXVhbFRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZExlc3NUaGFuVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkTGVzc1RoYW5UYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzVlNmRmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZExlc3NUaGFuVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTGVzc1RoYW5UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRMZXNzVGhhblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRMZXNzVGhhblRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTGVzc1RoYW5UYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRMZXNzVGhhblRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NUaGFuVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZExlc3NUaGFuVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL2NsYXNzLXVzZS9OZXN0ZWRNYXRjaFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZE1hdGNoVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYThhOGUxZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL2NsYXNzLXVzZS9OZXN0ZWRNYXRjaFRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE1hdGNoVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTWF0Y2hUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE1hdGNoVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTWF0Y2hUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNYXRjaFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWRNYXRjaFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGJhMmI5MAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL2NsYXNzLXVzZS9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjhlMGJiMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL2NsYXNzLXVzZS9OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL2NsYXNzLXVzZS9OZXN0ZWROb3RFbXB0eVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwMWEwODEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkTm90RW1wdHlUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWROb3RFbXB0eVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE5vdEVtcHR5VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE5vdEVtcHR5VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWROb3RFbXB0eVRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE5vdEVtcHR5VGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTm90RW1wdHlUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZE5vdEVxdWFsVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkTm90RXF1YWxUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2JmNjlkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZE5vdEVxdWFsVGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTm90RXF1YWxUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWROb3RFcXVhbFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWROb3RFcXVhbFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTm90RXF1YWxUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWROb3RFcXVhbFRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVxdWFsVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE5vdEVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL2NsYXNzLXVzZS9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZE5vdE1hdGNoVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQyODdiZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL2NsYXNzLXVzZS9OZXN0ZWROb3RNYXRjaFRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE5vdE1hdGNoVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTm90TWF0Y2hUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE5vdE1hdGNoVGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTm90TWF0Y2hUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWROb3RNYXRjaFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkTm90UHJlc2VudFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjA3YTdjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvY2xhc3MtdXNlL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWROb3RQcmVzZW50VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTm90UHJlc2VudFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE5vdFByZXNlbnRUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWROb3RQcmVzZW50VGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90UHJlc2VudFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL2NsYXNzLXVzZS9OZXN0ZWRQcmVzZW50VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkUHJlc2VudFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2YmZkNTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9jbGFzcy11c2UvTmVzdGVkUHJlc2VudFRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZFByZXNlbnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRQcmVzZW50VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZFByZXNlbnRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTmVzdGVkUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkUHJlc2VudFRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZFByZXNlbnRUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5lc3RlZFByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvZG9jLWZpbGVzL25lc3RlZC1sb2dpYy5naWYgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9kb2MtZmlsZXMvbmVzdGVkLWxvZ2ljLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTMxOTVmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvZG9jLWZpbGVzL25lc3RlZC1sb2dpYy5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmYzdlZjQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0E+PC9GT05UPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorQ2xhc3NlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZEVtcHR5VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkRW1wdHlUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJOZXN0ZWRFcXVhbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZEVxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkR3JlYXRlckVxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRHcmVhdGVyVGhhblRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZEl0ZXJhdGVUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRJdGVyYXRlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkSXRlcmF0ZVRlaS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZEl0ZXJhdGVUZWk8L0E+Cis8QlI+Cis8QSBIUkVGPSJOZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRMZXNzRXF1YWxUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJOZXN0ZWRMZXNzVGhhblRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZExlc3NUaGFuVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkTWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRNYXRjaFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZE5vdEVtcHR5VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkTm90RW1wdHlUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJOZXN0ZWROb3RFcXVhbFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZE5vdEVxdWFsVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWROb3RNYXRjaFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWROb3RQcmVzZW50VGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkUHJlc2VudFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZFByZXNlbnRUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiYTUzYTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbApAQCAtMCwwICsxLDIyNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljCis8L0gyPgorVGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+CisgICB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuCis8UD4KKzxCPlNlZTo8L0I+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8QSBIUkVGPSIjcGFja2FnZV9kZXNjcmlwdGlvbiI+PEI+RGVzY3JpcHRpb248L0I+PC9BPgorPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTmVzdGVkRW1wdHlUYWcuaHRtbCI+TmVzdGVkRW1wdHlUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkRW1wdHlUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWRFcXVhbFRhZy5odG1sIj5OZXN0ZWRFcXVhbFRhZzwvQT48L0I+PC9URD4KKzxURD5OZXN0ZWRFcXVhbFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZEdyZWF0ZXJFcXVhbFRhZy5odG1sIj5OZXN0ZWRHcmVhdGVyRXF1YWxUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkR3JlYXRlckVxdWFsVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCI+TmVzdGVkR3JlYXRlclRoYW5UYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkR3JlYXRlclRoYW5UYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPk5lc3RlZEl0ZXJhdGVUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkSXRlcmF0ZVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZEl0ZXJhdGVUZWkuaHRtbCI+TmVzdGVkSXRlcmF0ZVRlaTwvQT48L0I+PC9URD4KKzxURD5OZXN0ZWRJdGVyYXRlVGVpCisgRXh0ZW5kaW5nIHRoZSBvcmlnaW5hbCB0YWcncyB0ZWkgY2xhc3MsIHNvIHRoYXQgd2UgY2FuIG1ha2UgdGhlICJpZCIKKyBhdHRyaWJ1dGUgb3B0aW9uYWwsIHNvIHRoYXQgdGhvc2Ugd2hvIHdhbnQgdG8gc2NyaXB0IGNhbiBhZGQgaXQgaWYgdGhleSBuZWVkCisgaXQgb3RoZXJ3aXNlIHdlIGNhbiBtYWludGFpbiB0aGUgbmljZSBsZWFuIHRhZyBtYXJrdXAuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCI+TmVzdGVkTGVzc0VxdWFsVGFnPC9BPjwvQj48L1REPgorPFREPk5lc3RlZExlc3NFcXVhbFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZExlc3NUaGFuVGFnLmh0bWwiPk5lc3RlZExlc3NUaGFuVGFnPC9BPjwvQj48L1REPgorPFREPk5lc3RlZExlc3NUaGFuVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTmVzdGVkTWF0Y2hUYWcuaHRtbCI+TmVzdGVkTWF0Y2hUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkTWF0Y2hUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+TmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnPC9BPjwvQj48L1REPgorPFREPk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTmVzdGVkTm90RW1wdHlUYWcuaHRtbCI+TmVzdGVkTm90RW1wdHlUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkTm90RW1wdHlUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWROb3RFcXVhbFRhZy5odG1sIj5OZXN0ZWROb3RFcXVhbFRhZzwvQT48L0I+PC9URD4KKzxURD5OZXN0ZWROb3RFcXVhbFRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZE5vdE1hdGNoVGFnLmh0bWwiPk5lc3RlZE5vdE1hdGNoVGFnPC9BPjwvQj48L1REPgorPFREPk5lc3RlZE5vdE1hdGNoVGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTmVzdGVkTm90UHJlc2VudFRhZy5odG1sIj5OZXN0ZWROb3RQcmVzZW50VGFnPC9BPjwvQj48L1REPgorPFREPk5lc3RlZE5vdFByZXNlbnRUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWRQcmVzZW50VGFnLmh0bWwiPk5lc3RlZFByZXNlbnRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+TmVzdGVkUHJlc2VudFRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+Cis8QSBOQU1FPSJwYWNrYWdlX2Rlc2NyaXB0aW9uIj48IS0tIC0tPjwvQT48SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMgRGVzY3JpcHRpb24KKzwvSDI+CisKKzxQPgorVGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L2NvZGU+CisgICB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuIFRoZSBmdW5kYW1lbnRhbAorIGxvZ2ljIG9mICAgdGhlIGxvZ2ljIHRhZ3MgZG9uJ3QgY2hhbmdlLCBleGNlcHQgaW4gdGhhdCBhbGwgcmVmZXJlbmNlcyB0byAKK2JlYW5zIGFuZCAgYmVhbiBwcm9wZXJ0aWVzIHdpbGwgYmUgbWFuYWdlZCBpbiBhIG5lc3RlZCBjb250ZXh0LiA8YnI+Cis8YnI+Cis8aW1nIHNyYz0iZG9jLWZpbGVzL25lc3RlZC1sb2dpYy5naWYiIGFsdD0iTmVzdGVkIGxvZ2ljIHRhZ2xpYiI+Cis8YnI+Cis8YnIgLz0iIj4KKzxicj4KKzxicj4KKzxicj4KKzxQPgorCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXRyZWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiOTEyMjQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXRyZWUuaHRtbApAQCAtMCwwICsxLDE5MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXRyZWUuaHRtbCI+QWxsIFBhY2thZ2VzPC9BPjwvREw+Cis8SFI+Cis8SDI+CitDbGFzcyBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuT2JqZWN0PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRlaS5odG1sIj48Qj5JdGVyYXRlVGVpPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRlaS5odG1sIj48Qj5OZXN0ZWRJdGVyYXRlVGVpPC9CPjwvQT48L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPjxCPkl0ZXJhdGVUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPjxCPk5lc3RlZEl0ZXJhdGVUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj48Qj5Db25kaXRpb25hbFRhZ0Jhc2U8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29tcGFyZVRhZ0Jhc2UuaHRtbCI+PEI+Q29tcGFyZVRhZ0Jhc2U8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRXF1YWxUYWcuaHRtbCI+PEI+RXF1YWxUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFcXVhbFRhZy5odG1sIj48Qj5OZXN0ZWRFcXVhbFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbCI+PEI+R3JlYXRlckVxdWFsVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwiPjxCPk5lc3RlZEdyZWF0ZXJFcXVhbFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIj48Qj5HcmVhdGVyVGhhblRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwiPjxCPk5lc3RlZEdyZWF0ZXJUaGFuVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sIj48Qj5MZXNzRXF1YWxUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzRXF1YWxUYWcuaHRtbCI+PEI+TmVzdGVkTGVzc0VxdWFsVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwiPjxCPkxlc3NUaGFuVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTGVzc1RoYW5UYWcuaHRtbCI+PEI+TmVzdGVkTGVzc1RoYW5UYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RXF1YWxUYWcuaHRtbCI+PEI+Tm90RXF1YWxUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFcXVhbFRhZy5odG1sIj48Qj5OZXN0ZWROb3RFcXVhbFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCI+PEI+RW1wdHlUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRFbXB0eVRhZy5odG1sIj48Qj5OZXN0ZWRFbXB0eVRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVtcHR5VGFnLmh0bWwiPjxCPk5vdEVtcHR5VGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RW1wdHlUYWcuaHRtbCI+PEI+TmVzdGVkTm90RW1wdHlUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01hdGNoVGFnLmh0bWwiPjxCPk1hdGNoVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWF0Y2hUYWcuaHRtbCI+PEI+TmVzdGVkTWF0Y2hUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RNYXRjaFRhZy5odG1sIj48Qj5Ob3RNYXRjaFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdE1hdGNoVGFnLmh0bWwiPjxCPk5lc3RlZE5vdE1hdGNoVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+PEI+TWVzc2FnZXNQcmVzZW50VGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj48Qj5NZXNzYWdlc05vdFByZXNlbnRUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWcuaHRtbCI+PEI+TmVzdGVkTWVzc2FnZXNOb3RQcmVzZW50VGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPjxCPk5lc3RlZE1lc3NhZ2VzUHJlc2VudFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9QcmVzZW50VGFnLmh0bWwiPjxCPlByZXNlbnRUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwiPjxCPk5lc3RlZFByZXNlbnRUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RQcmVzZW50VGFnLmh0bWwiPjxCPk5vdFByZXNlbnRUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RQcmVzZW50VGFnLmh0bWwiPjxCPk5lc3RlZE5vdFByZXNlbnRUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzwvVUw+Cis8L1VMPgorPC9VTD4KKzwvVUw+Cis8L1VMPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2UtdXNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXVzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjOWM5ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9wYWNrYWdlLXVzZS5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBQYWNrYWdlPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWM8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmMGU2NmEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQ8L0E+PC9GT05UPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorSW50ZXJmYWNlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+TmVzdGVkTmFtZVN1cHBvcnQ8L0k+PC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkUGFyZW50U3VwcG9ydC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPjxJPk5lc3RlZFBhcmVudFN1cHBvcnQ8L0k+PC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZFRhZ1N1cHBvcnQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5OZXN0ZWRUYWdTdXBwb3J0PC9JPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0NsYXNzZXM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJOZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZFByb3BlcnR5SGVscGVyPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkUHJvcGVydHlUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRQcm9wZXJ0eVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZFJlZmVyZW5jZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk5lc3RlZFJlZmVyZW5jZTwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5lc3RlZFJvb3RUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5OZXN0ZWRSb290VGFnPC9BPgorPEJSPgorPEEgSFJFRj0iTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TmVzdGVkV3JpdGVOZXN0aW5nVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXN1bW1hcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzA0YjJiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKQEAgLTAsMCArMSw2MTEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZAorPC9IMj4KK05lc3RlZCB0YWdzICZhbXA7IHN1cHBvcnRpbmcgY2xhc3NlcyBleHRlbmQgdGhlIGJhc2Ugc3RydXRzIHRhZ3MgdG8KK2FsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuCis8UD4KKzxCPlNlZTo8L0I+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8QSBIUkVGPSIjcGFja2FnZV9kZXNjcmlwdGlvbiI+PEI+RGVzY3JpcHRpb248L0I+PC9BPgorPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkludGVyZmFjZSBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPjxJPk5lc3RlZE5hbWVTdXBwb3J0PC9JPjwvQT48L0I+PC9URD4KKzxURD5UaGlzIGlzIHNvIHRoYXQgbWFuYWdpbmcgY2xhc3NlcyBjYW4gdGVsbCBpZiBhIG5lc3RlZCB0YWcgbmVlZHMgdG8gaGF2ZSBpdHMKKyA8aT5uYW1lPC9pPiBwcm9wZXJ0eSBzZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWRQYXJlbnRTdXBwb3J0Lmh0bWwiPjxJPk5lc3RlZFBhcmVudFN1cHBvcnQ8L0k+PC9BPjwvQj48L1REPgorPFREPlRoaXMgaW50ZXJmYWNlIGlzIHNvIG1hbmFnaW5nIGNsYXNzZXMgb2YgdGhlIG5lc3RlZCB0YWcgY2FuIGlkZW50aWZ5IGEgdGFnCisgYXMgYSBwYXJlbnQgdGFnIHRoYXQgb3RoZXIgdGFncyByZXRyaWV2ZSBuZXN0ZWQgcHJvcGVydGllcyBmcm9tLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPjxJPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvST48L0E+PC9CPjwvVEQ+Cis8VEQ+VGhpcyBpbnRlcmZhY2UgaXMgZm9yIG1hbmFnaW5nIGNsYXNzZXMgb2YgdGhlIG5lc3RlZCBleHRlbnNpb24sIHNvIHRoZXkgY2FuCisga25vdyB0byBzZXQgdGhlIHRhZydzIDxpPnByb3BlcnR5PC9pPiBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+PEk+TmVzdGVkVGFnU3VwcG9ydDwvST48L0E+PC9CPjwvVEQ+Cis8VEQ+VGhpcyBpcyB0byBzaW1wbHkgYWxsb3cgbWFuYWdpbmcgY2xhc3NlcyB0byBpZGVudGlmeSB0aGUgdGFncyB0byBpbnZva2UKKyBjb21tb24gbWV0aG9kcyBhZ2FpbnN0IHRoZW0uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwiPk5lc3RlZFByb3BlcnR5SGVscGVyPC9BPjwvQj48L1REPgorPFREPkEgc2ltcGxlIGhlbHBlciBjbGFzcyB0aGF0IGRvZXMgZXZlcnl0aGluZyB0aGF0IG5lZWRzIHRvIGJlIGRvbmUgdG8gZ2V0CisgdGhlIG5lc3RlZCB0YWcgZXh0ZW5zaW9uIHRvIHdvcmsuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIj5OZXN0ZWRQcm9wZXJ0eVRhZzwvQT48L0I+PC9URD4KKzxURD5OZXN0ZWRQcm9wZXJ0eVRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZFJlZmVyZW5jZS5odG1sIj5OZXN0ZWRSZWZlcmVuY2U8L0E+PC9CPjwvVEQ+Cis8VEQ+U28gdGhhdCBhIG5lc3RlZCBoaWVyYXJjaHkgY2FuIHBlbmV0cmF0ZSBhIGR5bmFtaWMgSlNQIGluY2x1ZGUsIHRoaXMgY2xhc3MKKyB3aWxsIGhvbGQgdGhlIGRldGFpbHMgb2YgYSBiZWFuIG5hbWUgYW5kIG5lc3RlZCBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik5lc3RlZFJvb3RUYWcuaHRtbCI+TmVzdGVkUm9vdFRhZzwvQT48L0I+PC9URD4KKzxURD5OZXN0ZWRSb290VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiPk5lc3RlZFdyaXRlTmVzdGluZ1RhZzwvQT48L0I+PC9URD4KKzxURD5OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEEgTkFNRT0icGFja2FnZV9kZXNjcmlwdGlvbiI+PCEtLSAtLT48L0E+PEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkIERlc2NyaXB0aW9uCis8L0gyPgorCis8UD4KK05lc3RlZCB0YWdzICZhbXA7IHN1cHBvcnRpbmcgY2xhc3NlcyBleHRlbmQgdGhlIGJhc2Ugc3RydXRzIHRhZ3MgdG8KK2FsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuIFRoZSBmdW5kYW1lbnRhbAorbG9naWMgb2YgICB0aGUgb3JpZ2luYWwgdGFncyBkb24ndCBjaGFuZ2UsIGV4Y2VwdCBpbiB0aGF0IGFsbCByZWZlcmVuY2VzCit0byBiZWFucyBhbmQgICBiZWFuIHByb3BlcnRpZXMgd2lsbCBiZSBtYW5hZ2VkIGluIGEgbmVzdGVkIGNvbnRleHQuIDxicj4KKzxicj4KKzxhIG5hbWU9ImRvYy5EZXNjcmlwdGlvbiI+PC9hPgorPGRpdiBhbGlnbj0iQ2VudGVyIj4gWyZuYnNwOzxhIGhyZWY9IiNkb2MuSW50cm8iPkludHJvZHVjdGlvbjwvYT4KKyAgICAmbmJzcDtdIFsmbmJzcDs8YSBocmVmPSIjZG9jLkZvdW5kYXRpb25Db25jZXB0cyI+Rm91bmRhdGlvbiZuYnNwO0NvbmNlcHRzJm5ic3A7LSZuYnNwO21vZGVsPC9hPgorICAgICZuYnNwO10gWyZuYnNwOzxhIGhyZWY9IiNkb2MuVGFnZ2luZ0NvbmNlcHRzIj5Gb3VuZGF0aW9uJm5ic3A7Q29uY2VwdHMmbmJzcDstJm5ic3A7dGFnczwvYT4KKyAgICAmbmJzcDtdIFsmbmJzcDs8YSBocmVmPSIjZG9jLlRhZ0xpc3QiPk5lc3RlZCZuYnNwO1RhZyZuYnNwO0xpc3Q8L2E+CisgICAgJm5ic3A7XSBbJm5ic3A7PGEgaHJlZj0iI2RvYy5Qcm9wZXJ0eVByb3BlcnR5Ij5UaGUmbmJzcDsicHJvcGVydHkiJm5ic3A7UHJvcGVydHk8L2E+CisgICAgJm5ic3A7XSBbJm5ic3A7PGEgaHJlZj0iI2RvYy5JbXBsZW1lbnRhdGlvbkRldGFpbHMiPkltcGxlbWVudGF0aW9uJm5ic3A7RGV0YWlsczwvYT4KKyAgICAmbmJzcDtdIDwvZGl2PgorPGhyPjxhIG5hbWU9ImRvYy5JbnRybyI+PC9hPgorPGgzPkludHJvZHVjdGlvbjwvaDM+Cis8cD5UaGUgbmVzdGluZyBleHRlbnNpb24gcHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gZGVmaW5lIGEgbmVzdGVkIG9iamVjdCBtb2RlbAorICBhbmQgICBlZmZpY2llbnRseSByZXByZXNlbnQgYW5kIG1hbmFnZSB0aGF0IG1vZGVsIHRocm91Z2ggSlNQJ3MgY3VzdG9tCit0YWdzLjwvcD4KKzxwPkl0J3Mgd3JpdHRlbiBpbiBhIGxheWVyIHRoYXQgZXh0ZW5kcyB0aGUgY3VycmVudCBTdHJ1dHMgdGFncywgYnVpbGRpbmcKKyAgb24gICB0aGVpciBsb2dpYyBhbmQgZnVuY3Rpb25hbGl0eS4gVGhlIGxheWVyIGVuYWJsZXMgdGhlIHRhZ3MgdG8gYmUgYXdhcmUKKyAgb2YgdGhlICAgdGFncyB3aGljaCBzdXJyb3VuZCB0aGVtIHNvIHRoZXkgY2FuIGNvcnJlY3RseSBwcm92aWRlIHRoZSBuZXN0aW5nCisgIHByb3BlcnR5ICAgcmVmZXJlbmNlIHRvIHRoZSBTdHJ1dHMgc3lzdGVtLiBTdHJ1dHMgYWxyZWFkeSBzdXBwb3J0ZWQgcHJvcGVydGllcworICB3aGljaCB1c2UgICAiZG90IG5vdGF0aW9uIiBpbiBhY2Nlc3NpbmcgbmVzdGVkIG9iamVjdHMgYW5kIHByb3BlcnRpZXMuPC9wPgorPHByZT5lLmcuIG15UHJvcGVydHkuY2hpbGRQcm9wZXJ0eS5maW5hbFByb3BlcnR5PC9wcmU+Cis8cD5CZWNhdXNlIG9mIHRoaXMgdGhlIGNvbnRyb2xsZXIgc2VydmxldCBleGNlbGxlbnRseSBtYW5hZ2VzIHRoaXMgbmVzdGVkIAorICAgIG1vZGVsLiBUaGVzZSB0YWdzIGFyZSBhYm91dCBicmluZ2luZyBzdWNoIGVhc2Ugb2YgbWFuYWdlbWVudCB0byB0aGUgSlNQCisgIHZpZXcgICBvZiB0aGUgYXJjaGl0ZWN0dXJlLjwvcD4KKzxocj48YSBuYW1lPSJkb2MuRm91bmRhdGlvbkNvbmNlcHRzIj48L2E+Cis8aDM+Rm91bmRhdGlvbiBDb25jZXB0cyAtIG1vZGVsLjwvaDM+Cis8cD4gICBBIGJlYW4gaG9sZHMgYSByZWZlcmVuY2UgdG8gYW5vdGhlciBiZWFuIGludGVybmFsbHksIGFuZCBhbGwgYWNjZXNzCisgIHRvIHRoYXQgICAgYmVhbiBpcyBoYW5kbGVkIHRocm91Z2ggdGhlIGN1cnJlbnQgYmVhbi4gVGhpcyBhY3Qgb2YgaGF2aW5nCitvbmUgIGJlYW4ncyBhY2Nlc3MgICAgZ28gdGhyb3VnaCBhbm90aGVyIGJlYW4gaXMga25vd24gYXMgIm5lc3RpbmcgYmVhbnMiLgorVGhlICBmaXJzdCBiZWFuIGlzIGtub3duICAgIGFzIHRoZSBwYXJlbnQgYmVhbi4gVGhlIGJlYW4gd2hpY2ggaXQgcmVmZXJlbmNlcywKKyBpcyBrbm93biBhcyBhIGNoaWxkIGJlYW4uICAgIFRoZSB0ZXJtcyAicGFyZW50IiBhbmQgImNoaWxkIiBhcmUgY29tbW9ubHkKK3VzZWQgdG8gZGVzY3JpYmUgdGhlIG1vZGVsJ3MgICAgaGllcmFyY2h5LiAgIDwvcD4KKzxwPjxiPkEgc2ltcGxlIGV4YW1wbGUuLi48L2I+PGJyIC8+CisgICAgICAgVGFrZSBhbiBvYmplY3Qgd2hpY2ggcmVwcmVzZW50cyBhIG1vbmtleS4gVGhlIG1vbmtleSdzIGpvYiBpcyB0byBwaWNrCisgIGJ1bmNoZXMgICAgb2YgYmFuYW5hcy4gT24gZWFjaCBidW5jaCBwaWNrZWQgaGFuZ3MgbWFueSBiYW5hbmFzLiBJZiB0aGlzCitjYXNlICB3YXMgICAgdHJhbnNsYXRlZCB0byBiZWFuIG9iamVjdHMsIHRoZSBtb25rZXkgb2JqZWN0IHdvdWxkIGhhdmUgYSByZWZlcmVuY2UKKyAgdG8gdGhlICAgIGJ1bmNoIG9iamVjdHMgaGUgcGlja2VkLCBhbmQgZWFjaCBidW5jaCBvYmplY3Qgd291bGQgaG9sZCBhIHJlZmVyZW5jZQorICB0byB0aGUgICAgYmFuYW5hcyBoYW5naW5nIGluIHRoZSBidW5jaC4gICA8L3A+Cis8cD48Yj5UbyBkZXNjcmliZSB0aGlzLi4uPC9iPjxiciAvPgorICAgICAgIFRoZSBtb25rZXkgb2JqZWN0IGlzIHRoZSBwYXJlbnQgdG8gdGhlIGJ1bmNoIG9iamVjdCwgYW5kIHRoZSBidW5jaCAKK29iamVjdCAgaXMgYSAgICBjaGlsZCBvZiB0aGUgbW9ua2V5IG9iamVjdC4gVGhlIGJ1bmNoIG9iamVjdCBpcyBwYXJlbnQgdG8gCitpdHMgY2hpbGQgIGJhbmFuYSAgICBvYmplY3RzLCBhbmQgdGhlIGNoaWxkIGJhbmFuYSBvYmplY3RzIGNoaWxkcmVuIG9mIHRoZSAKK2J1bmNoIG9iamVjdC4gIFRoZSBtb25rZXkgICAgaXMgaGlnaGVyIGluIHRoZSBoaWVyYXJjaHkgdGhhbiB0aGUgYmFuYW5hcywgCithbmQgdGhlIGJhbmFuYXMgIGxvd2VyIGluIHRoZSAgICBoaWVyYXJjaHkgdG8gdGhlIGJ1bmNoZXMuICAgPC9wPgorPHA+ICAgT25lIHNwZWNpYWwgdGVybSB0byByZW1lbWJlciBpcyBmb3IgdGhlIG1vc3QgcGFyZW50IGNsYXNzLCB3aGljaCBpcworICBrbm93biBhcyAgICB0aGUgInJvb3QiIG9iamVjdCB3aGljaCBzdGFydHMgdGhlIGhpZXJhcmNoeS4gICA8L3A+Cis8aHI+PGEgbmFtZT0iZG9jLlRhZ2dpbmdDb25jZXB0cyI+PC9hPgorPGgzPkZvdW5kYXRpb24gQ29uY2VwdHMgLSB0YWdzLjwvaDM+Cis8cD4gICBXaGF0IHRoZSB0YWdzIHByb3ZpZGUgaXMgYW4gZWZmaWNpZW50IHdheSBvciByZXByZXNlbnRpbmcgdGhlIGFib3ZlCisgIG1vZGVscyAgIHdpdGhpbiBKU1AgdGFnIG1hcmt1cC4gQXMgYSByZXN1bHQgdGhlIHRhZ3MgdGFrZSBvbiBzaW1pbGFyIHJlbGF0aW9uc2hpcHMKKyAgdG8gICBlYWNoIG90aGVyLiBBIHRhZyBjYW4gYmUgdGhlIHBhcmVudCBvZiBhbm90aGVyLCBhbmQgc2ltaWxhcmx5IGJlIGEKK2NoaWxkICBvZiBhICAgcGFyZW50IHRhZy4gSG93ZXZlciB0aGUgbW9zdCBpbXBvcnRhbnQgcGFydCB0byByZW1lbWJlciwgaXMKK3RoYXQgdGhlICAgIHByb3BlcnRpZXMgb2YgcGFyZW50IHRhZ3MgZGVmaW5lIHRoZSBuZXN0ZWQgcHJvcGVydHkgZm9yIHRoZQorY2hpbGQgdGFncycgICAgcHJvcGVydGllcy4gICA8L3A+Cis8cD4gICBPbmUgaXNzdWUgd2hpY2ggbWF5IGNvbmZ1c2UgdGhlIG5ldyBkZXZlbG9wZXIsIGlzIHRoYXQgZXZlbiB0aG91Z2gKK2EgdGFnICAgaXMgYSBwYXJlbnQgdGFnIGluIGEgbWFya3VwIHNlbnNlICh0aGUgb3BlbmluZyB0YWcgYW5kIGNsb3NpbmcgdGFnCithcmUgZWl0aGVyICAgc2lkZSBvZiBhbm90aGVyIHRhZykgZG9lcyBub3QgaW1tZWRpYXRlbHkgbWVhbiB0aGF0IHRoZSBjaGlsZAordGFnIHdpbGwgYmUgICByZWxhdGl2ZSB0byB0aGF0IHRhZy4gV2h5PyBTb21lIHRhZ3MgbWFrZSBiYWQgcGFyZW50cy4gSW4gb3RoZXIKKyAgd29yZHMsIHRoZXkncmUgICBub3QgbG9naWNhbCBzdGVwcyBpbiBkZWZpbmluZyBhIGhpZXJhcmNoeS4gICA8L3A+Cis8cD4gICBGb3IgZXhhbXBsZSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIHNlbGVjdCB0YWcgYW5kIHRoZSBvcHRpb25zCisgIHRhZy4gVGhlICAgaHRtbDpvcHRpb25zIHRhZyAibXVzdCIgYmUgc3Vycm91bmRlZCBieSBhIHBhcmVudCBodG1sOnNlbGVjdAorIHRhZy4gICA8L3A+Cis8cHJlPmVnOjxicj4gICZsdDtodG1sOnNlbGVjdCBuYW1lPSJteUJlYW4iIHByb3BlcnR5PSJteVNlbGVjdFByb3BlcnR5IiAmZ3Q7PGJyPiAgICAmbHQ7aHRtbDpvcHRpb25zIG5hbWU9Im15QmVhbiIgcHJvcGVydHk9Im15T3B0aW9uc1Byb3BlcnR5IiAmZ3Q7PGJyPiAgJmx0Oy9odG1sOnNlbGVjdCZndDs8L3ByZT4KKzxwPiAgIEluIHRoZSBuZXN0ZWQgY29udGV4dCwgdGhpcyB3b3VsZCBjYXVzZSB1bmRlc2lyZWQgcmVzdWx0cyBpZiB0aGUgc2VsZWN0CisgIHRhZyAgIHdhcyBhIHBhcmVudC4gVGhlIGJlYW4gcmVmZXJlbmNlIHdvdWxkIGJlY29tZS4uLiAgIDwvcD4KKzxwcmU+ICBteVNlbGVjdFByb3BlcnR5Lm15T3B0aW9uc1Byb3BlcnR5PC9wcmU+CisgICAgICAgLi4ud2hpY2ggd2hlbiB0cmFuc2xhdGVkLCBTdHJ1dHMgd291bGQgZ28gdG8gdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3QgCisgcHJvcGVydHkgICAgYW5kIHRoZW4gdHJ5IHRvIGdldCB5b3VyIG9wdGlvbnMgbGlzdCBmcm9tIHRoYXQgcmV0dXJuZWQgdmFsdWUuIAorIFRoZSBleHRlbmRlZCAgICBsb2dpYyB0YWdzIGFyZSB0aGUgc2FtZS4gWW91IGRvbid0IHdhbnQgdG8gZXh0ZW5kIHlvdXIgcHJvcGVydGllcyAKKyB3aXRoaW4gdGhlICAgb2JqZWN0cyB0aGUgbG9naWMgdGFncyBhcmUgZXZhbHVhdGluZy4gICAgICAgCis8cD4gICBUbyBnZXQgbWFuYWdlIHRoaXMsIHRoZSB0YWdzIGluIHRoZSBuZXN0ZWQgZXh0ZW5zaW9uIGFyZSBjYXRlZ29yaXNlZAorICBpbnRvICAgcGFyZW50IHRhZ3MgYW5kIG5vbi1wYXJlbnQgdGFncy4gVGhvc2Ugd2hpY2ggaW1wbGVtZW50ICAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRQYXJlbnRTdXBwb3J0PC9jb2RlPgorICAgICBhcmUgY2xhc3NlZCAgIGFzIHBhcmVudHMsIGFuZCB0aGUgbmVzdGVkIHN5c3RlbSBrbm93cyB0aGV5IGRlZmluZSBsZXZlbHMKKyAgaW4gdGhlIG5lc3RlZCAgIGhpZXJhcmNoeS4gRXZlcnkgb3RoZXIgdGFnLCBkb2VzIG5vdCwgYW5kIHdpbGwgYmUgc2tpcHBlZAorICBpZiBmb3VuZCB0byBiZSBhICAgIm1hcmt1cCBwYXJlbnQiIChsaWtlIG91ciBzZWxlY3QgdGFnKSBhbmQgbm90IGEgIm5lc3RlZAorICBwYXJlbnQiLiAgIDwvcD4KKzxwPiAgIFRoZXJlIGFyZSBhbHNvIHRoZSBzcGVjaWFsIGNhc2Ugb2Ygc3RhcnRpbmcgb2ZmIHRoZSBoaWVyYXJjaHkgd2l0aAorYSAicm9vdCIgICB0YWcuIFRoZXNlIHRhZ3MgYXJlIHdoYXQgdGhlIGV4dGVuc2lvbiByZXF1aXJlcyB0byBwcm92aWRlIHRoZW0KK3dpdGggdGhlIGJlYW4gICBieSB3aGljaCB0aGUgc3RydWN0dXJlIHdpbGwgYmUgYmFzZWQgb24uICAgPC9wPgorPGhyPjxhIG5hbWU9ImRvYy5UYWdMaXN0Ij48L2E+Cis8aDM+TmVzdGVkIFRhZyBMaXN0LjwvaDM+Cis8cD4gICBIZXJlJ3MgYSBsaXN0IG9mIHRhZ3MgaW4gdGhlIG5lc3RlZCBleHRlbnNpb24sIGdyb3VwZWQgYnkgcGFyZW50L2NvbnRleHQgCisgICAgZnVuY3Rpb25hbGl0eS4gInJvb3QiLCAibmVzdGVkIHBhcmVudCIsICJtYXJrdXAgcGFyZW50IiAmYW1wOyAiYmFzaWMiLiAKKyAgIDwvcD4KKzxwPjxiPlJvb3QgVGFnczwvYj4KKzx0YWJsZSBib3JkZXI9IjEiPgorICA8dGJvZHk+CisgICAgPHRyPgorICAgICAgPHRoPm1hcmt1cCBuYW1lPC90aD4KKyAgICAgIDx0aD5icmllZiBkZXNjcmlwdGlvbjwvdGg+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+aHRtbDpmb3JtPC90ZD4KKyAgICAgIDx0ZD5Gb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHlvdSBjYW4gdXNlIHRoZSB0eXBpY2FsIGZvcm0gdGFnIAordG8gICAgICAgICAgICAgaW1wbGVtZW50IHlvdXIgbmVzdGVkIGhpZXJhcmNoeS48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPm5lc3RlZDpmb3JtPC90ZD4KKyAgICAgIDx0ZD5BbiBleHRlbnNpb24gb2YgdGhlIGFib3ZlIDxjb2RlPmh0bWw6Zm9ybTwvY29kZT4sIHRoaXMgaXMganVzdAorICB0byAgICAgICAgICAgICBwcm92aWRlIGRlZmluaXRpb24gaW4gdGhlIG5lc3RlZCB0YWcgbGlicmFyeS48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPm5lc3RlZDpyb290PC90ZD4KKyAgICAgIDx0ZD5XaGVuIHlvdSBkb24ndCB3YW50IHRvIGNvbmZpZ3VyZSBhIGZvcm0sIHlvdSBjYW4gdXNlIGFueSBiZWFuIAord2hpY2ggICAgICAgICAgICAgaXMgaW4gInNjb3BlIiBieSBzcGVjaWZ5aW5nIGl0cyBuYW1lIHdpdGhpbiB0aGlzIHRhZy48L3RkPgorICAgIDwvdHI+CisgIDwvdGJvZHk+Cis8L3RhYmxlPgorPC9wPgorPGJyIC8+Cis8cD48Yj5OZXN0ZWQgUGFyZW50IFRhZ3M8L2I+IChBZmZlY3QgdGhlIGhpZXJhcmNoeSkgICAgICAgCis8dGFibGUgYm9yZGVyPSIxIj4KKyAgPHRib2R5PgorICAgIDx0cj4KKyAgICAgIDx0aD5tYXJrdXAgbmFtZTwvdGg+CisgICAgICA8dGg+YnJpZWYgZGVzY3JpcHRpb248L3RoPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPm5lc3RlZDpuZXN0PC90ZD4KKyAgICAgIDx0ZD5UaGlzIHRhZyBleGVjdXRlcyBubyBsb2dpYywgc2ltcGx5IHJlcHJlc2VudGluZyBhIG5lc3RpbmcgbGV2ZWwgCisgICAgICAgICAgICAgIGZvciB0aGUgcmVzdCBvZiB0aGUgbWFya3VwIHRvIHJlbGF0ZSB0by48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPm5lc3RlZDppdGVyYXRlPC90ZD4KKyAgICAgIDx0ZD5FeHRlbnNpb24gb2YgPGNvZGU+bG9naWM6aXRlcmF0ZTwvY29kZT4geW91IGNhbiB1c2UgaXQgdG8gaXRlcmF0ZSAKKyAgICAgICAgICAgICAgdGhyb3VnaCBhIGxpc3QsIGFuZCBoYXZlIGFsbCBjaGlsZCByZWZlcmVuY2VzIG5lc3Qgd2l0aGluIHRoZQorICBiZWFucyAgICAgICAgICAgICByZXR1cm5lZCBmcm9tIHRoaXMgaXRlcmF0ZWQgY29sbGVjdGlvbi48L3RkPgorICAgIDwvdHI+CisgIDwvdGJvZHk+Cis8L3RhYmxlPgorPC9wPgorPGJyIC8+Cis8cD48Yj5NYXJrdXAgUGFyZW50IFRhZ3M8L2I+IChtYXJrZWQtdXAgbGlrZSBwYXJlbnQgdGFncywgYnV0IGRvbid0IGFmZmVjdAorICB0aGUgaGllcmFyY2h5KSAgICAgICAKKzx0YWJsZSBib3JkZXI9IjEiPgorICA8dGJvZHk+CisgICAgPHRyPgorICAgICAgPHRoPm1hcmt1cCBuYW1lPC90aD4KKyAgICAgIDx0aD5icmllZiBkZXNjcmlwdGlvbjwvdGg+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+bmVzdGVkOnNlbGVjdDwvdGQ+CisgICAgICA8dGQ+PGNvZGU+aHRtbDpzZWxlY3Q8L2NvZGU+IGV4dGVuc2lvbi4gUHJvdmlkZXMgdGhlIGxvZ2ljIHRvIHJlbmRlciAKKyAgICAgICAgICAgICAgYSBzZWxlY3QgYm94IGluIEh0bWwuPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5uZXN0ZWQ6ZW1wdHk8L3RkPgorICAgICAgPHRkPjxjb2RlPmxvZ2ljOmVtcHR5PC9jb2RlPiBleHRlbnNpb24uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5uZXN0ZWQ6bm90RW1wdHk8L3RkPgorICAgICAgPHRkPjxjb2RlPmxvZ2ljOm5vdEVtcHR5PC9jb2RlPiBleHRlbnNpb24uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5uZXN0ZWQ6ZXF1YWw8L3RkPgorICAgICAgPHRkPjxjb2RlPmxvZ2ljOmVxdWFsPC9jb2RlPiBleHRlbnNpb24uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5uZXN0ZWQ6bm90RXF1YWw8L3RkPgorICAgICAgPHRkPjxjb2RlPmxvZ2ljOm5vdEVxdWFsPC9jb2RlPiBleHRlbnNpb24uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5uZXN0ZWQ6Z3JlYXRlckVxdWFsPC90ZD4KKyAgICAgIDx0ZD48Y29kZT5sb2dpYzpncmVhdGVyRXF1YWw8L2NvZGU+IGV4dGVuc2lvbi48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPm5lc3RlZDpncmVhdGVyVGhhbjwvdGQ+CisgICAgICA8dGQ+PGNvZGU+bG9naWM6Z3JlYXRlclRoYW48L2NvZGU+IGV4dGVuc2lvbi48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPm5lc3RlZDpsZXNzRXF1YWw8L3RkPgorICAgICAgPHRkPjxjb2RlPmxvZ2ljOmxlc3NFcXVhbDwvY29kZT4gZXh0ZW5zaW9uLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+bmVzdGVkOmxlc3NUaGFuPC90ZD4KKyAgICAgIDx0ZD48Y29kZT5sb2dpYzpsZXNzVGhhbjwvY29kZT4gZXh0ZW5zaW9uLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+bmVzdGVkOm1hdGNoPC90ZD4KKyAgICAgIDx0ZD48Y29kZT5sb2dpYzptYXRjaDwvY29kZT4gZXh0ZW5zaW9uLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+bmVzdGVkOm5vdE1hdGNoPC90ZD4KKyAgICAgIDx0ZD48Y29kZT5sb2dpYzpub3RNYXRjaDwvY29kZT4gZXh0ZW5zaW9uLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+bmVzdGVkOnByZXNlbnQ8L3RkPgorICAgICAgPHRkPjxjb2RlPmxvZ2ljOnByZXNlbnQ8L2NvZGU+IGV4dGVuc2lvbi48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPm5lc3RlZDpub3RQcmVzZW50PC90ZD4KKyAgICAgIDx0ZD48Y29kZT5sb2dpYzpub3RQcmVzZW50PC9jb2RlPiBleHRlbnNpb24uPC90ZD4KKyAgICA8L3RyPgorICA8L3Rib2R5PgorPC90YWJsZT4KKzwvcD4KKzxiciAvPgorPHA+PGI+QmFzaWMgdGFnczwvYj4gKHVzdWFsbHkgYSB0YWcgd2hpY2ggaGFzIG5vIGJvZHkgY29udGVudCkKKzx0YWJsZSBib3JkZXI9IjEiPgorICA8dGJvZHk+CisgICAgPHRyPgorICAgICAgPHRoPm1hcmt1cCBuYW1lPC90aD4KKyAgICAgIDx0aD5icmllZiBkZXNjcmlwdGlvbjwvdGg+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+bmVzdGVkOmNoZWNrYm94PC90ZD4KKyAgICAgIDx0ZD48Y29kZT5odG1sOjwvY29kZT4gZXh0ZW5zaW9uLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+bmVzdGVkOmhpZGRlbjwvdGQ+CisgICAgICA8dGQ+PGNvZGU+aHRtbDpoaWRkZW48L2NvZGU+IGV4dGVuc2lvbi48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPm5lc3RlZDpkZWZpbmU8L3RkPgorICAgICAgPHRkPjxjb2RlPmJlYW46ZGVmaW5lPC9jb2RlPiBleHRlbnNpb24uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5uZXN0ZWQ6aW1hZ2U8L3RkPgorICAgICAgPHRkPjxjb2RlPmh0bWw6aW1hZ2U8L2NvZGU+IGV4dGVuc2lvbi48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPm5lc3RlZDppbWc8L3RkPgorICAgICAgPHRkPjxjb2RlPmh0bWw6aW1nPC9jb2RlPiBleHRlbnNpb24uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5uZXN0ZWQ6bGluazwvdGQ+CisgICAgICA8dGQ+PGNvZGU+aHRtbDpsaW5rPC9jb2RlPiBleHRlbnNpb24uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5uZXN0ZWQ6bWVzc2FnZTwvdGQ+CisgICAgICA8dGQ+PGNvZGU+YmVhbjptZXNzYWdlPC9jb2RlPiBleHRlbnNpb24uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5uZXN0ZWQ6bXVsdGlib3g8L3RkPgorICAgICAgPHRkPjxjb2RlPmh0bWw6bXVsdGlib3g8L2NvZGU+IGV4dGVuc2lvbi48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPm5lc3RlZDpvcHRpb25zPC90ZD4KKyAgICAgIDx0ZD48Y29kZT5odG1sOm9wdGlvbnM8L2NvZGU+IGV4dGVuc2lvbi48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPm5lc3RlZDpvcHRpb25zQ29sbGVjdGlvbjwvdGQ+CisgICAgICA8dGQ+PGNvZGU+aHRtbDpvcHRpb25zQ29sbGVjdGlvbjwvY29kZT4gZXh0ZW5zaW9uLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+bmVzdGVkOnBhc3N3b3JkPC90ZD4KKyAgICAgIDx0ZD48Y29kZT5odG1sOnBhc3N3b3JkPC9jb2RlPiBleHRlbnNpb24uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5uZXN0ZWQ6cmFkaW88L3RkPgorICAgICAgPHRkPjxjb2RlPmh0bWw6cmFkaW88L2NvZGU+IGV4dGVuc2lvbi48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPm5lc3RlZDpzZWxlY3Q8L3RkPgorICAgICAgPHRkPjxjb2RlPmh0bWw6c2VsZWN0PC9jb2RlPiBleHRlbnNpb24uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5uZXN0ZWQ6c2l6ZTwvdGQ+CisgICAgICA8dGQ+PGNvZGU+YmVhbjpzaXplPC9jb2RlPiBleHRlbnNpb24uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5uZXN0ZWQ6c3VibWl0PC90ZD4KKyAgICAgIDx0ZD48Y29kZT5odG1sOnN1Ym1pdDwvY29kZT4gZXh0ZW5zaW9uLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+bmVzdGVkOnRleHQ8L3RkPgorICAgICAgPHRkPjxjb2RlPmh0bWw6dGV4dDwvY29kZT4gZXh0ZW5zaW9uLjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+bmVzdGVkOnRleHRhcmVhPC90ZD4KKyAgICAgIDx0ZD48Y29kZT5odG1sOnRleHRhcmVhPC9jb2RlPiBleHRlbnNpb24uPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5uZXN0ZWQ6d3JpdGU8L3RkPgorICAgICAgPHRkPjxjb2RlPmJlYW46d3JpdGU8L2NvZGU+IGV4dGVuc2lvbi48L3RkPgorICAgIDwvdHI+CisgIDwvdGJvZHk+Cis8L3RhYmxlPgorPC9wPgorPGhyPjxhIG5hbWU9ImRvYy5Qcm9wZXJ0eVByb3BlcnR5Ij48L2E+Cis8aDM+VGhlIHJlbGF0aXZlIHJlZmVyZW5jZXMgYW5kIHRoZSAicHJvcGVydHkiIHByb3BlcnR5LjwvaDM+Cis8cD5Vc2Ugb2YgdGhlICJwcm9wZXJ0eSIgcHJvcGVydHkgaXMgZXhhY3RseSB0aGUgc2FtZSBhcyB0aGUgb3JpZ2luYWwgU3RydXRzCisgIHRhZyAgICB3aXRoIG1pbm9yIGFkZGl0aW9uLiBBcHBlbmRzIHRoZSBwcm92aWRlZCBwcm9wZXJ0eSB0byB0aGUgbmVzdGVkCitwcm9wZXJ0eSAgb2YgICB0aGUgdGFncyB0aGF0IHN1cnJvdW5kIGl0LiBZb3UgY2FuIHVzZSBhZGRpdGlvbmFsIG5lc3RpbmcKKyh1c2UgImRvdCBub3RhdGlvbiIpICAgd2l0aGluIHRoZSBwcm92aWRlZCBwcm9wZXJ0eSBhcyB0aGUgY3VycmVudCBzdHJ1dHMKK3N5c3RlbSBhbGxvd3MgYnV0IHRoZXJlIGlzICAgbm93IGEgdGFnIHdoaWNoIGNhbiBwcm92aWRlIHRoaXMgaW4gYSAiY2xlYW5lciIKK2Zhc2hpb24uICA6KTwvcD4KKzxwPlRoZSBvbmUgb3RoZXIgYWRkaXRpb24gdG8gdGhlICJwcm9wZXJ0eSIgcHJvcGVydHksIGlzIHRoZSBhYmlsaXR5IHRvIHN0ZXAgCisgICAgYmFja3dhcmRzIGluIHRoZSBoZWlyYXJjaHkgaW4gdGhlIGZhbWlsaWFyIGRpcmVjdG9yeSBmYXNoaW9uOyAgIGUuZy4gIi4uLy4uL215UHJvcGVydHlOYW1lIjwvcD4KKzxwPkFzIGV4cGVjdGVkIHRoaXMgYWxsb3dzIHlvdSB0byBzdGVwIGJhY2t3YXJkcyBpbiB0aGUgbmVzdGVkIG1vZGVsIHRvIGFjY2VzcyAKKyAgICBhIGhpZ2hlciBsZXZlbCBpbiB0aGUgb2JqZWN0IHRyZWUuIFRoZSBpbXBsZW1lbnRhdGlvbiB1c2VzIHRoZSBTdHJpbmdUb2tlbml6ZXIgCisgICAgd29ya2luZyBvZmYgdGhlICIvIiBkZWxpbWl0ZXIgYW5kIGNvdW50cyB0aGUgdG9rZW5zLiBUaGlzIHdhcyBnb2luZyB0bworICBiZSAgIGRlbmllZCwgZW5mb3JjaW5nIHRoZSAiLi4iIGZhc2hpb24sIGJ1dCBvbiBjb25zaWRlcmF0aW9uLCBhbGxvd2VkCitmb3IgICBzb21lICAgZWFzaWVyLXRvLXJlYWQgbmFtaW5nIHBvc3NpYmlsaXRpZXMuPC9wPgorPHA+Q29uc2lkZXIgInByb3BlcnR5T25lLnByb3BlcnR5VHdvLnByb3BlcnR5VGhyZWUucHJvcGVydHlGb3VyIi4gV2l0aCB0aGUKKyAgICAgY3VycmVudCBuZXN0aW5nIGxldmVsIGJlbmVhdGggInByb3BlcnR5Rm91ciIgeW91IGNhbiBpbnN0ZWFkIHVzZSAgICJ0d28vdGhyZWUvZm91ci9hbm90aGVyUHJvcGVydHkiCisgIHdoaWNoIGlzIGVhc2llciB0byB1bmRlcnN0YW5kIHRoYW4gICAiLi4vLi4vLi4vYW5vdGhlclByb3BlcnR5Ii4gRG9lc24ndAorIHNvdW5kIGxpa2UgbXVjaCwgYnV0IG1ha2VzIGxpZmUgZWFzaWVyICAgd2hlbiB0cmF2ZXJzaW5nIGxhcmdlIGpzcCBwYWdlcworZm9yIHRhZ3MgZGVmaW5pbmcgeW91ciBvYmplY3QgbW9kZWwuPC9wPgorPHA+QWxzbyBpbXBsZW1lbnRlZCBpcyB0aGUgYWxzbyBmYW1pbGlhciBkaXJlY3RvcnkgZmFzaGlvbiBvZiBhIGxlYWRpbmcgIi8iCisgIHRvICAgcmVmZXJlbmNlIGZyb20gdGhlIHJvb3Qgb2YgdGhlIG1vZGVsIGFuZCBzdGFydCBvdmVyLiBlLmcuICIvcHJvcGVydHlPbmUiLiAKKyAgICBUaGlzIGFsbG93IGEgY29udmVuaWVudCB3YXkgdG8gbW92ZSBhcm91bmQgYSBmZXcgbGV2ZWxzIGFzIHdlbGwgYXMgImZvcmtpbmciIAorICAgIGluIHRoZSBvYmplY3Qgc3RydWN0dXJlIGFtb25nIG90aGVyIGZlbGl4YmxlIGFwcHJvYWNoZXMgdG8gc3RydWN0dXJlLjwvcD4KKzxwPjxiPlBhcmVudCBSZWZlcmVuY2VzLi4uPC9iPjxiciAvPgorICAgICAgICJwcm9wZXJ0eSIgcHJvcGVydGllcywgaW5jbHVkaW5nIHRoZSByZWxhdGl2ZSBwcm9wZXJ0aWVzIGRlc2NyaWJlZCAKK2Fib3ZlLCAgYWxsICAgIGVuZCB1cCByZWZlcmVuY2luZyBhIHByb3BlcnR5IG9mIGEgY2hpbGQgYmVhbi4gRm9yIGV4YW1wbGUgCisiL215UHJvcGVydHkiICB3aWxsICAgcmV0dXJuIGFuIG9iamVjdCBmcm9tIHRoZSAibXlQcm9wZXJ0eSIgb2YgdGhlIHJvb3QgYmVhbi4KK1RoZSBmYWN0IHRoYXQgYSAgIHByb3BlcnR5IGlzIHNwZWNpZmllZCBtZWFucyB0aGF0IHlvdSBhcmUgYWNjZXNzaW5nIHRoZQorcmVzdWx0IG9mIHRoYXQgICBwcm9wZXJ0eS4gVGhpcyByZXN1bHRzIGluIG5ldmVyIGJlaW5nIGFibGUgdG8gcHJvcGVybHkgYWNjZXNzCithIHBhcmVudCBvYmplY3QgICBpdHNlbGYgd2l0aGluIGl0cyBjdXJyZW50IHJlbGF0ZWQgY29udGV4dC4gICA8L3A+Cis8cD4gICBUYWtlIGZvciBleGFtcGxlIHlvdSBzaW1wbHkgd2FudCB0byBwcmludCBvdXQgYSBsaXN0IG9mIFN0cmluZyBvYmplY3RzLgorICBJbiBhICAgIGJlYW4geW91IGNyZWF0ZSBhIGxpc3Qgb2YgdGhlbSwgb2ZmZXIgdGhlbSBvdXQgdG8gdGhlIHN5c3RlbSB2aWEKKyBhIGdldHRlciwgYW5kICAgeW91IG1hcmt1cCB1c2luZyB0aGUgbmVzdGVkOml0ZXJhdGUgb3IgbG9naWM6aXRlcmF0ZSB0YWcKKyhib3RoIGNvbnRhaW4gdGhlICAgIHNhbWUgaXNzdWVzKS4gVGhlIG9ubHkgd2F5IHRvIGdldCBhdCB0aGUgb2JqZWN0IGl0c2VsZgoraXMgZ2V0IHRoZSBpdGVyYXRlIHRhZyAgIHRvIGRlY2xhcmUgYSBzY3JpcHRpbmcgdmFyaWFibGUuIFdpdGggdGhlIG5lc3RlZAordGFncyB5b3UgY2FuIG5vdyBzaW1wbHkgICByZWZlcmVuY2UgdGhlIG9iamVjdCB1c2luZyBhIHBhcmVudCByZWZlcmVuY2Ugb2YKKyIuLyIgb3IgInRoaXMvIi4gQW55IHByb3BlcnR5ICAgZW5kaW5nIGluIHRoZSAiLyIgd2lsbCBiZSB0cmVhZGVkIGFzIGEgcGFyZW50CityZWZlcmVuY2UuIFNvIGlmIHlvdSB1c2UgICAicGFyZW50LyIgYXMgeW91ciBwcm9wZXJ0eSwgaXQgd2lsbCBzdGVwIGJhY2sKK29uZSBwYXJlbnQgYW5kIHVzZSB0aGlzIGJsb2NrJ3MgICBwYXJlbnQuIFRoZSBzcGVjaWFsIGNhc2VzIHRvIHVzZSB0aGUgcGFyZW50CitvZiB0aGUgY3VycmVudCBuZXN0ZWQgYmxvY2sgYXJlICAgIi4vIiBvciAidGhpcy8iLiBOb3QganVzdCB0aGUgaXRlcmF0ZSB0YWcsCit0aGlzIHdpbGwgcmV0dXJuIHRoZSBvYmplY3QgICByZXByZXNlbnRlZCBieSBhbnkgbmVzdGVkIHBhcmVudCB0YWcuICAgPC9wPgorPHA+ICAgVGhpcyBhbGxvd3MgeW91IHRvIGJlIGluIGEgbmVzdGVkIHRhZyBibG9jayBhbmQgdXNlIHRoZSBjdXN0b20gdGFncworICB3b3JrICAgIGRpcmVjdGx5IGFnYWluc3QgdGhlIHBhcmVudCBkZWZpbmVkIG9iamVjdCwgaW5kZXhlZCBvciBvdGhlcndpc2UuCisgIFNvIHRvIGJlIGluICAgIGFuIGl0ZXJhdGUgYmxvY2ssIGFuZCB0byBwcmludCBvdXQgdGhlIFN0cmluZyByZXByZXNlbnRhdGlvbgorICBvZiB0aGUgY3VycmVudCAgICBpdGVyYXRlZCBvYmplY3QsIHlvdSBjYW4gbm93IHVzZS4uLiAgIDwvcD4KKzxwcmU+ZWc6PGJyPiAgJmx0O25lc3RlZDppdGVyYXRlIHByb3BlcnR5PSJteUl0ZW1MaXN0IiAmZ3Q7PGJyPiAgICAmbHQ7aHRtbDp3cml0ZSBwcm9wZXJ0eT0idGhpcy8iICZndDsmbHQ7YnImZ3Q7PGJyPiAgJmx0Oy9odG1sOml0ZXJhdGUmZ3Q7PC9wcmU+Cis8cD4gICBvciBpZiB5b3Ugd2FudCB0byBwcmludCB0aGUgc3RyaW5nIHZhbHVlIG9mIGEgcGFyZW50IHRoZSBvdGhlciBzaWRlCisgIG9mIHRoZSAgICBvYmplY3QuLi4gICA8L3A+Cis8cHJlPmVnOjxicj4gICZsdDtuZXN0ZWQ6aXRlcmF0ZSBwcm9wZXJ0eT0ibXlCZWFuTGlzdCIgJmd0Ozxicj4gICAgJmx0O25lc3RlZDppdGVyYXRlIHByb3BlcnR5PSJteUl0ZW1MaXN0IiAmZ3Q7PGJyPiAgICAgICZsdDtodG1sOndyaXRlIHByb3BlcnR5PSJiZWFuTGlzdE9iamVjdC8iICZndDsmbHQ7YnImZ3Q7PGJyPiAgICAmbHQ7L2h0bWw6aXRlcmF0ZSZndDs8YnI+ICAmbHQ7L2h0bWw6aXRlcmF0ZSZndDs8L3ByZT4KKzxwPiAgIFRoZSBmYWN0IHRoYXQgaXQgZGlkbid0IHVzZSB0aGUgc3BlY2lhbCBjYXNlcyBvZiAiLi8iIG9yICJ0aGlzLyIgbWVhbnMKKyAgdGhhdCBpdCAgIHN0ZXBzIGJhY2sgaW4gdGhlIGhpZXJhcmNoeSBhcyBhIHR5cGljYWwgcmVsYXRpdmUgcmVmZXJlbmNlLgorVGhpcyAgIGlzIHVubGltaXRlZCAgIHRoZSBhbW91bnQgb2Ygc3RlcHMgeW91IGNhbiB0YWtlIGJhY2sgaW4gdGhlIGhpZXJhcmNoeS4KK0ZvciAgIGV4YW1wbGUsIHRvIGdvICAgYmFjayB0aHJlZSBwYXJlbnRzIHlvdXIgcHJvcGVydHkgd291bGQgYmUgIm9uZS90d28vdGhyZWUvIi4gCisgICAgPC9wPgorPHA+PGI+Tm90ZTo8L2I+IFRoZSBsb2dpYyBpZGVudGlmaWVzIHRoZSBsZWFkaW5nICIvIiBhbmQgdGhlbiByZWFkcyB0aGUgcHJvcGVydHkgCisgICAgZnJvbSB0aGUgbGFzdCBpbmRleCBvZiAiLyIuICBSZXN1bHRpbmcgaW4gIi90aHJlZS9mb3VyL2Fub3RoZXJQcm9wZXJ0eSIKKyAgd29ya2luZyAgIHRoZSBzYW1lIGFzICIvYW5vdGhlclByb3BlcnR5Ii48L3A+Cis8cD48Yj5Ob3RlOjwvYj4gSWYgeW91J3JlIGJ1c2lseSBuZXN0aW5nIGF3YXksIGFuZCBhIHBhcmVudCB0YWcgaGFzIGEgbGVhZGluZworICAiLyIgICBwcm9wZXJ0eSwgdGhlICBjb250YWluZWQgdGFncyB3aWxsIGFwcGVuZCB0byB0aGlzIG5ldyBzdHJ1Y3R1cmUuCitIYW5keSwgICBidXQgICB5b3UgaGF2ZSB0byBrZWVwIGl0IGluIG1pbmQuPC9wPgorPHA+PGI+Tm90ZTo8L2I+IElmIHlvdSB0cnkgdG8gcmVmZXJlbmNlIGJlbmVhdGggdGhlIGxldmVsIG9mIHRoZSBuZXN0aW5nLAorICBpdCB3aWxsICAgc2ltcGx5IGFjdCBsaWtlIGFzIGlmIGEgbGVhZGluZyAiLyIgcHJvcGVydHkgd2FzIGRlZmluZWQuPC9wPgorPHA+PGI+UGFyZW50IFJlZmVyZW5jZSBOb3RlOjwvYj4gICBUaGUgb25seSB0aGluZyB0byBrZWVwIGluIG1pbmQgd2l0aCBwYXJlbnQKKyAgcmVmZXJlbmNlcyBpcyB0aGF0ICAgeW91IGNhbm5vdCBwYXJlbnQgcmVmZXJlbmNlIHRoZSByb290IGJlYW4uIFRoaXMgaXMKK2JlY2F1c2UgIHRoZSByZXN1bHRpbmcgICBwcm9wZXJ0eSB3b3VsZCBiZSBhbiBlbXB0eSBzdHJpbmcuIFNvbWV0aGluZyB0aGF0Cit0aGUgQmVhblV0aWxzL1Byb3BlcnR5VXRpbHMgICAgY2Fubm90IGhhbmRsZSAoaWYgdGhpcyBpcyBhIHJlcXVpcmVtZW50LCB5b3UKK2NvdWxkIHVzZSBhICJmYWtlIG5lc3RlZCAgIHByb3BlcnR5Ii4gQSBnZXR0ZXIgd2hpY2ggc2ltcGx5IHJldHVybnMgdGhlIHNhbWUKK2JlYW4gaW5zdGFuY2UgKCJ0aGlzIikgIGFuZCAgIHNpbXBseSBhZGQgYW4gZXh0cmEgPGNvZGU+bmVzdGVkOm5lc3Q8L2NvZGU+CisgIGxldmVsIGF0IHRoZSBzdGFydCBvZiB5b3VyICAgaGllcmFyY2h5LiBXb3JrcyBqdXN0IGZpbmUpLiAgIDwvcD4KKzxocj48YnIgLz4KKzxpbWcgc3JjPSJkb2MtZmlsZXMvbmVzdGVkVU1MLmdpZiIgYWx0PSJuZXN0ZWQgVU1MIj4KKzxhIG5hbWU9ImRvYy5JbXBsZW1lbnRhdGlvbkRldGFpbHMiPjwvYT4KKzxoMz5JbXBsZW1lbnRhdGlvbiBEZXRhaWxzLjwvaDM+Cis8Yj5OZXN0ZWRQcm9wZXJ0eUhlbHBlcjwvYj4KKzxkaXI+Cis8cD5UaGlzIGNsYXNzIGVtYm9kaWVzIGFsbCBvZiB0aGUgbG9naWMgdGhhdCBydW5zIHRoZSBuZXN0ZWQgdGFnZ2luZyBzeXN0ZW0uCisgIEl0ICAgZGVmaW5lcyBhIHN0YXRpYyBtZXRob2QsICJzZXROZXN0ZWRQcm9wZXJ0aWVzIiwgd2hpY2ggdGhlIG5lc3RlZCB0YWdzCisgIHBhc3MgICB0aGVtc2VsdmVzIGludG8gdG8gaGF2ZSB0aGVpciBhcHByb3ByaWF0ZSBwcm9wZXJ0aWVzIHNldC48L3A+Cis8cD5UaGUgdGFnIGV4dGVuc2lvbnMgdGhlbXNlbHZlcyBpbXBsZW1lbnQgb3B0aW9ucyBvZiB0aHJlZSBpbnRlcmZhY2VzIHdoaWNoIAorICAgIGRlZmluZSBmdW5jdGlvbmFsaXR5IGZvciB0aGUgdmFyaW91cyB0eXBlcyBvZiBuZXN0ZWQgdXNhZ2UuIFdoZW4gdHJhdmVyc2luZyAKKyAgICB0aGUgdGFnIGhpZXJhcmNoeSBiYWNrIHVwIHRvIHRoZSByb290IG9mIHRoZSBzdHJ1Y3R1cmUsIHRoZXNlIHRhZ3MgZGVmaW5lCisgIHRoZSAgIHJlc3VsdCBvZiB0aGUgY3VycmVudCB0YWcuPC9wPgorPC9kaXI+Cis8Yj5OZXN0ZWRUYWdTdXBwb3J0IEludGVyZmFjZS4uLjwvYj4KKzxkaXI+Cis8cD5UaGlzIGlzIHRoZSBiYXNlIG9mIHRoZSBpbnRlcmZhY2VzLiBTaW1wbHkgcHV0LCBhbnkgdGFnIHRoYXQgd2UgbmVlZCB0bworICBzaW5nbGUgICBvdXQgb2YgdGhlIHN0YW5kYXJkIHN0cnV0cyB0YWdzIGZvciB1c2UgYnkgdGhlIG5lc3Rpbmcgc3lzdGVtCitjYW4gICBpbXBsZW1lbnQgICB0aGlzIG9yIGl0cyBjaGlsZHJlbi48L3A+Cis8L2Rpcj4KKzxiPk5lc3RlZFByb3BlcnR5U3VwcG9ydCBJbnRlcmZhY2UuLi48L2I+Cis8ZGlyPgorPHA+VGFncyB0aGF0IGltcGxlbWVudCB0aGlzIGludGVyZmFjZSB3aWxsIGhhdmUgdGhlIHByb3ZpZGVkIHByb3BlcnR5IGF0dHJpYnV0ZSAKKyAgICBhcHBlbmRlZCB0byB0aGUgcGFyZW50aW5nIG5lc3RlZCBhdHRyaWJ1dGUuIFRoaXMgaXMgdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuCisgICAgPC9wPgorPHA+VGhpcyBpcyB0aGUgYmFzaWMgcHJvcGVydHksIGFuZCBzbyBmYXIgYWxsIHRoZSBuZXN0ZWQgdGFncyBzdXBwb3J0IHRoaXMgCisgICAgdG8gaGF2ZSB0aGVpciBuZXN0ZWQgcHJvcGVydGllcyB3cml0dGVuIGNvcnJlY3RseS48L3A+Cis8L2Rpcj4KKzxiPk5lc3RlZE5hbWVTdXBwb3J0IEludGVyZmFjZS4uLjwvYj4KKzxkaXI+Cis8cD5UaGlzIGludGVyZmFjZSBtZWFucyB0aGF0IHRoZSBpbXBsZW1lbnRpbmcgdGFnIHdhbnRzIHRvIGhhdmUgaXQncyBuYW1lCisgIHRhZyAgIGxvb2tlZCBhZnRlciBieSB0aGUgbmVzdGluZyBzeXN0ZW0uIFRoaXMgaXMgYXV0b21hdGljLCBhbmQgdGhlIG5hbWUKKyAgaXMgd3JpdHRlbiAgIGZvciB0aGUgdGFnIGZyb20gdGhlIHJvb3QgdGFnLiBJZiB0aGUgSlNQIGlzIGEgZm9ybSwgdGhlbgoraXQgICB3aWxsIGxvb2sgdG8gdGhlICAgZm9ybSB0YWcgYW5kIGdldCBhIGhvbGQgb2YgdGhlIGJlYW4gbmFtZSB0aGF0IGlzCitkZWZpbmVkICAgaW4gdGhlICAgc3RydXRzLWNvbmZpZy54bWwgZmlsZSBmb3IgdGhlIGFjdGlvbiwgb3RoZXJ3aXNlLCBhIG5lc3RlZDpyb290CisgdGFnIG11c3QgYmUgICBwcm92aWRlZCBmb3IgdGhpcyBtZWFucy48L3A+Cis8cD5UaGlzIGV4dGVuZHMgdGhlIE5lc3RlZFByb3BlcnR5U3VwcG9ydCBpbnRlcmZhY2UgYXMsIGF0IHRpbWUgb2Ygd3JpdGluZywgCisgICAgYWxsIHRhZ3Mgd2hpY2ggdXNlZCBhICJuYW1lIiBhdHRyaWJ1dGUsIHJlcXVpcmVkIGEgcHJvcGVydHkgYXR0cmlidXRlIAoraW4gc29tZSAgIHdheSB0byBtYWtlIGl0IHVzZWZ1bC4gVGhpcyBjb3VsZCBjaGFuZ2UsIGFuZCBpdCdzIG9ubHkgYSBzbWFsbCAKK3JlZmFjdG9yaW5nIHRvICAgbWFrZSBpdCB3b3JrIGZvciB0aGUgaW5zdGFuY2UgaWYgaXQncyByZWxldmFudCBmb3IgbmVzdGluZy48L3A+Cis8cD48Yj5Ob3RlOjwvYj4gQXQgdGhlIG1vbWVudCwgaWYgdGhlIHRhZyBpbXBsZW1lbnRzIHRoaXMgaW50ZXJmYWNlLCB0aGUKK25hbWUgICBhdHRyaWJ1dGUgd2lsbCBiZSByZXdyaXR0ZW4gYnkgdGhlIHN5c3RlbSBvbiBhbGwgY291bnRzLiBJIGZpbmQgaXQKK2hhcmQgdG8gICBwaWN0dXJlIGEgdmFsaWQgcmVxdWlyZW1lbnQgZm9yIGludGVyLW1peGluZyBtdWx0aXBsZSBvYmplY3Qgc3RydWN0dXJlcworICAod2hpY2ggICBkaXN0aW5ndWlzaGFibGUgbmFtZXMgd291bGQgYWxsb3cpIGluIHRoZSBvbmUgSlNQIHBhZ2Ugd2hpY2ggY291bGRuJ3QKKyAgYmUgICBtb3JlIGVmZmljaWVudGx5IHByb3ZpZGVkIGJ5IHRoZSBjdXJyZW50IG5lc3RpbmcgbW9kZWwgd29ya2luZyBvdmVyCisgdGhlIG9uZSAgIG1vZGVsLiBUaW1lIG1heSBwcm92ZSB0aGlzIGlkZWEgd3JvbmcuPC9wPgorPC9kaXI+Cis8Yj5QYXJlbnRUYWdTdXBwb3J0PC9iPgorPGRpcj4KKzxwPlRoaXMgdGFnIGlkZW50aWZpZXMgZm9yIHRoZSBzeXN0ZW0gdGhvc2UgdGFncyB3aGljaCBkZWZpbmUgbGV2ZWxzIGluIHRoZSAKKyAgICBuZXN0ZWQgaGVpcmFyY2h5LiAgTmFtZWx5IHRoZSAiZ2V0TmVzdGVkUHJvcGVydHkoKSIgbWV0aG9kIHRoYXQgeWllbGRzCisgIHRvICAgY2FsbGluZyB0YWdzIHRoZSBmdWxseSBxdWFsaWZpZWQgbmVzdGVkIHByb3BlcnR5IG9mIHRoZSBwYXJlbnQgdGFnLgorIEluIHRoZSAgIGNhc2Ugb2YgYSBOZXN0ZWRJdGVyYXRvciBiZWluZyB0aGUgcGFyZW50IHRhZywgaXQgd2lsbCBhbHNvIGFwcGVuZAorIHRoZSBjdXJyZW50ICAgaW5kZXggcmVmZXJlbmNlLiBlLmcuIHByb3BlcnR5T25lLnByb3BlcnR5VHdvWzVdPC9wPgorPC9kaXI+Cis8YnIgLz4KKzxiciAvPgorPGJyIC8+Cis8YnIgLz4KKzxQPgorCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXRyZWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmMDNhN2MKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXRyZWUuaHRtbApAQCAtMCwwICsxLDE1NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXRyZWUuaHRtbCI+QWxsIFBhY2thZ2VzPC9BPjwvREw+Cis8SFI+Cis8SDI+CitDbGFzcyBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuT2JqZWN0PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5SGVscGVyLmh0bWwiPjxCPk5lc3RlZFByb3BlcnR5SGVscGVyPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUmVmZXJlbmNlLmh0bWwiPjxCPk5lc3RlZFJlZmVyZW5jZTwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQgKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWcpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQgKGltcGxlbWVudHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCI+PEI+TmVzdGVkUHJvcGVydHlUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCI+PEI+TmVzdGVkUm9vdFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiPjxCPk5lc3RlZFdyaXRlTmVzdGluZ1RhZzwvQj48L0E+PC9VTD4KKzwvVUw+Cis8L1VMPgorPC9VTD4KKzxIMj4KK0ludGVyZmFjZSBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5pbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+PEI+TmVzdGVkVGFnU3VwcG9ydDwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+PEI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5pbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPjxCPk5lc3RlZE5hbWVTdXBwb3J0PC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5pbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFBhcmVudFN1cHBvcnQuaHRtbCI+PEI+TmVzdGVkUGFyZW50U3VwcG9ydDwvQj48L0E+PC9VTD4KKzwvVUw+Cis8L1VMPgorPC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXVzZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS11c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWY2NTZjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS11c2UuaHRtbApAQCAtMCwwICsxLDI3OSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgUGFja2FnZTxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvQj48L0E+PC9URD4KKzxURD5OZXN0ZWQgdGFncyAmYW1wOyBzdXBwb3J0aW5nIGNsYXNzZXMgZXh0ZW5kIHRoZSBiYXNlIHN0cnV0cyB0YWdzIHRvCithbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuPC9CPjwvQT48L1REPgorPFREPlRoZSBuZXN0ZWQgYmVhbiB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L2NvZGU+CisgICAgIHRhZ3MgdG8gYWxsb3cgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4KKyB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQj48L0E+PC9URD4KKzxURD5UaGUgbmVzdGVkIGh0bWwgdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvY29kZT4KKyAgIHRhZ3MgdG8gYWxsb3cgICB0aGVtIHRvIHJlbGF0ZSB0byBlYWNoIG90aGVyIGluIGEgbmVzdGVkIG5hdHVyZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQ8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQiPjxCPk5lc3RlZE5hbWVTdXBwb3J0PC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgaXMgc28gdGhhdCBtYW5hZ2luZyBjbGFzc2VzIGNhbiB0ZWxsIGlmIGEgbmVzdGVkIHRhZyBuZWVkcyB0byBoYXZlIGl0cworIDxpPm5hbWU8L2k+IHByb3BlcnR5IHNldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvY2xhc3MtdXNlL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQiPjxCPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGludGVyZmFjZSBpcyBmb3IgbWFuYWdpbmcgY2xhc3NlcyBvZiB0aGUgbmVzdGVkIGV4dGVuc2lvbiwgc28gdGhleSBjYW4KKyBrbm93IHRvIHNldCB0aGUgdGFnJ3MgPGk+cHJvcGVydHk8L2k+IHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9jbGFzcy11c2UvTmVzdGVkUmVmZXJlbmNlLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZCI+PEI+TmVzdGVkUmVmZXJlbmNlPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NvIHRoYXQgYSBuZXN0ZWQgaGllcmFyY2h5IGNhbiBwZW5ldHJhdGUgYSBkeW5hbWljIEpTUCBpbmNsdWRlLCB0aGlzIGNsYXNzCisgd2lsbCBob2xkIHRoZSBkZXRhaWxzIG9mIGEgYmVhbiBuYW1lIGFuZCBuZXN0ZWQgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZCI+PEI+TmVzdGVkVGFnU3VwcG9ydDwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGlzIHRvIHNpbXBseSBhbGxvdyBtYW5hZ2luZyBjbGFzc2VzIHRvIGlkZW50aWZ5IHRoZSB0YWdzIHRvIGludm9rZQorIGNvbW1vbiBtZXRob2RzIGFnYWluc3QgdGhlbS48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWROYW1lU3VwcG9ydC5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbiI+PEI+TmVzdGVkTmFtZVN1cHBvcnQ8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyBzbyB0aGF0IG1hbmFnaW5nIGNsYXNzZXMgY2FuIHRlbGwgaWYgYSBuZXN0ZWQgdGFnIG5lZWRzIHRvIGhhdmUgaXRzCisgPGk+bmFtZTwvaT4gcHJvcGVydHkgc2V0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9jbGFzcy11c2UvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuIj48Qj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpbnRlcmZhY2UgaXMgZm9yIG1hbmFnaW5nIGNsYXNzZXMgb2YgdGhlIG5lc3RlZCBleHRlbnNpb24sIHNvIHRoZXkgY2FuCisga25vdyB0byBzZXQgdGhlIHRhZydzIDxpPnByb3BlcnR5PC9pPiBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvY2xhc3MtdXNlL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4iPjxCPk5lc3RlZFRhZ1N1cHBvcnQ8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyB0byBzaW1wbHkgYWxsb3cgbWFuYWdpbmcgY2xhc3NlcyB0byBpZGVudGlmeSB0aGUgdGFncyB0byBpbnZva2UKKyBjb21tb24gbWV0aG9kcyBhZ2FpbnN0IHRoZW0uPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQ8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9jbGFzcy11c2UvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwiPjxCPk5lc3RlZE5hbWVTdXBwb3J0PC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgaXMgc28gdGhhdCBtYW5hZ2luZyBjbGFzc2VzIGNhbiB0ZWxsIGlmIGEgbmVzdGVkIHRhZyBuZWVkcyB0byBoYXZlIGl0cworIDxpPm5hbWU8L2k+IHByb3BlcnR5IHNldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvY2xhc3MtdXNlL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbCI+PEI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgaW50ZXJmYWNlIGlzIGZvciBtYW5hZ2luZyBjbGFzc2VzIG9mIHRoZSBuZXN0ZWQgZXh0ZW5zaW9uLCBzbyB0aGV5IGNhbgorIGtub3cgdG8gc2V0IHRoZSB0YWcncyA8aT5wcm9wZXJ0eTwvaT4gcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sIj48Qj5OZXN0ZWRUYWdTdXBwb3J0PC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgaXMgdG8gc2ltcGx5IGFsbG93IG1hbmFnaW5nIGNsYXNzZXMgdG8gaWRlbnRpZnkgdGhlIHRhZ3MgdG8gaW52b2tlCisgY29tbW9uIG1ldGhvZHMgYWdhaW5zdCB0aGVtLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvY2xhc3MtdXNlL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyI+PEI+TmVzdGVkTmFtZVN1cHBvcnQ8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyBzbyB0aGF0IG1hbmFnaW5nIGNsYXNzZXMgY2FuIHRlbGwgaWYgYSBuZXN0ZWQgdGFnIG5lZWRzIHRvIGhhdmUgaXRzCisgPGk+bmFtZTwvaT4gcHJvcGVydHkgc2V0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9jbGFzcy11c2UvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyI+PEI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgaW50ZXJmYWNlIGlzIGZvciBtYW5hZ2luZyBjbGFzc2VzIG9mIHRoZSBuZXN0ZWQgZXh0ZW5zaW9uLCBzbyB0aGV5IGNhbgorIGtub3cgdG8gc2V0IHRoZSB0YWcncyA8aT5wcm9wZXJ0eTwvaT4gcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2NsYXNzLXVzZS9OZXN0ZWRUYWdTdXBwb3J0Lmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYyI+PEI+TmVzdGVkVGFnU3VwcG9ydDwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGlzIHRvIHNpbXBseSBhbGxvdyBtYW5hZ2luZyBjbGFzc2VzIHRvIGlkZW50aWZ5IHRoZSB0YWdzIHRvIGludm9rZQorIGNvbW1vbiBtZXRob2RzIGFnYWluc3QgdGhlbS48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4N2RjMWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sCkBAIC0wLDAgKzEsNTYwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorR2V0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuR2V0VGFnLEdldFRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iR2V0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0dldFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJHZXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvRk9OVD4KKzxCUj4KK0NsYXNzIEdldFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkdldFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+R2V0VGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitUaGlzIGlzIHRoZSB0YWcgaGFuZGxlciBmb3IgJmx0O3RlbXBsYXRlOmdldCZndDssIHdoaWNoIGdldHMgCisgY29udGVudCBmcm9tIHRoZSByZXF1ZXN0IHNjb3BlIGFuZCBlaXRoZXIgaW5jbHVkZXMgdGhlIGNvbnRlbnQgb3IgcHJpbnRzIAorIGl0LCBkZXBlbmRpbmcgdXBvbiB0aGUgdmFsdWUgb2YgdGhlIGNvbnRlbnQncyBkaXJlY3QgYXR0cmlidXRlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+RGF2aWQgR2Vhcnk8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkdldFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjZmx1c2giPmZsdXNoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1Nob3VsZCB3ZSBmbHVzaCBiZWZvcmUgaW5jbHVkaW5nIHRoaXMgdGV4dD88L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBuYW1lIG9mIHRoZSBjb250ZW50IHRoYXQgdGhpcyB0YWcgaW5jbHVkZXMgKG9yIHByaW50cykuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjcm9sZSI+cm9sZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgcm9sZSB0aGF0IHRoZSB1c2VyIG11c3QgYmUgaW4gdG8gcmV0cmlldmUgY29udGVudC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNHZXRUYWcoKSI+R2V0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI2dldEZsdXNoKCkiPmdldEZsdXNoPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI3NhdmVFeGNlcHRpb24oamF2YS5sYW5nLlRocm93YWJsZSkiPnNhdmVFeGNlcHRpb248L0E+PC9CPihqYXZhLmxhbmcuVGhyb3dhYmxlJm5ic3A7ZXhjZXB0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCNzZXRGbHVzaChib29sZWFuKSI+c2V0Rmx1c2g8L0E+PC9CPihib29sZWFuJm5ic3A7Zmx1c2gpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9FbmRUYWcsIGZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImZsdXNoIj48IS0tIC0tPjwvQT48SDM+CitmbHVzaDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBib29sZWFuIDxCPmZsdXNoPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5TaG91bGQgd2UgZmx1c2ggYmVmb3JlIGluY2x1ZGluZyB0aGlzIHRleHQ/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIG5hbWUgb2YgdGhlIGNvbnRlbnQgdGhhdCB0aGlzIHRhZyBpbmNsdWRlcyAob3IgcHJpbnRzKS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJvbGUiPjwhLS0gLS0+PC9BPjxIMz4KK3JvbGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5yb2xlPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgcm9sZSB0aGF0IHRoZSB1c2VyIG11c3QgYmUgaW4gdG8gcmV0cmlldmUgY29udGVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJHZXRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorR2V0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+R2V0VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ic2V0Rmx1c2goYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZsdXNoPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGbHVzaDwvQj4oYm9vbGVhbiZuYnNwO2ZsdXNoKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxQPgorPEREPlNldCB0aGUgZmx1c2gtYmVmb3JlLWluY2x1ZGUgcHJvcGVydHkKKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Zmx1c2g8L0NPREU+IC0gVGhlIG5ldyBmbHVzaCBwcm9wZXJ0eTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+U2V0IHRoZSBuYW1lIGF0dHJpYnV0ZQorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIFRoZSBuYW1lIG9mIHRoZSBjb250ZW50IHRvIGdldC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFJvbGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFJvbGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxQPgorPEREPlNldCB0aGUgcm9sZSBhdHRyaWJ1dGUKKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cm9sZTwvQ09ERT4gLSBUaGUgcm9sZSB0aGUgdXNlciBtdXN0IGJlIGluIHRvIHJldHJpZXZlIGNvbnRlbnQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGbHVzaCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGbHVzaDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Z2V0Rmx1c2g8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5HZXQgdGhlIGZsdXNoLWJlZm9yZS1pbmNsdWRlIGF0dHJpYnV0ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+R2V0IHRoZSBuYW1lIGF0dHJpYnV0ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Um9sZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSb2xlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRSb2xlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+R2V0IHRoZSByb2xlIGF0dHJpYnV0ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5QcmludCBjb250ZW50IG5hbWVkIGJ5IHNldE5hbWUoKSBvciBpbmNsdWRlIGl0LCBkZXBlbmRpbmcKKyBvbiB0aGUgY29udGVudCdzIGRpcmVjdCBhdHRyaWJ1dGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxQPgorPEREPlJlc2V0IG1lbWJlciB2YWx1ZXMgZm9yIHJldXNlLiBUaGlzIG1ldGhvZCBjYWxscyBzdXBlci5yZWxlYXNlKCksCisgd2hpY2ggaW52b2tlcyBUYWdTdXBwb3J0LnJlbGVhc2UoKSwgd2hpY2ggdHlwaWNhbGx5IGRvZXMgbm90aGluZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzYXZlRXhjZXB0aW9uKGphdmEubGFuZy5UaHJvd2FibGUpIj48IS0tIC0tPjwvQT48SDM+CitzYXZlRXhjZXB0aW9uPC9IMz4KKzxQUkU+Citwcml2YXRlIHZvaWQgPEI+c2F2ZUV4Y2VwdGlvbjwvQj4oamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO2V4Y2VwdGlvbik8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5TYXZlIHRoZSBzcGVjaWZpZWQgZXhjZXB0aW9uIGluIHJlcXVlc3Qgc2NvcGUgaWYgdGhlcmUgaXMgbm90IGFscmVhZHkKKyBvbmUgcHJlc2VudC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZXhjZXB0aW9uPC9DT0RFPiAtIEV4Y2VwdGlvbiB0byBiZSBjb25kaXRpb25hbGx5IHNhdmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9HZXRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iR2V0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTNiYjg3OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwKQEAgLTAsMCArMSw1MjYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitJbnNlcnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5JbnNlcnRUYWcsSW5zZXJ0VGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJJbnNlcnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvSW5zZXJ0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbnNlcnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvRk9OVD4KKzxCUj4KK0NsYXNzIEluc2VydFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkluc2VydFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+SW5zZXJ0VGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitUaGlzIGlzIHRoZSB0YWcgaGFuZGxlciBmb3IgJmx0O3RlbXBsYXRlOmluc2VydCZndDssIHdoaWNoIGluY2x1ZGVzIAorIGEgdGVtcGxhdGUuIFRoZSB0YWcncyBib2R5IGNvbnRlbnQgY29uc2lzdHMgb2YgJmx0O3RlbXBsYXRlOnB1dCZndDsKKyB0YWdzLCB3aGljaCBhcmUgYWNjZXNzZWQgYnkgJmx0O3RlbXBsYXRlOmdldCZndDsgaW4gdGhlIHRlbXBsYXRlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+RGF2aWQgR2Vhcnk8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkluc2VydFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj5Db250ZW50TWFwPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjbWFwIj5tYXA8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7RWFjaCBpbnNlcnQgdGFnIGhhcyBhIG1hcCBvZiBjb250ZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI3RlbXBsYXRlIj50ZW1wbGF0ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgYXBwbGljYXRpb24tcmVsYXRpdmUgVVJJIG9mIHRoZSB0ZW1wbGF0ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNJbnNlcnRUYWcoKSI+SW5zZXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI2dldENvbnRlbnRNYXAoKSI+Z2V0Q29udGVudE1hcDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjZ2V0VGVtcGxhdGUoKSI+Z2V0VGVtcGxhdGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI3B1dChqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50KSI+cHV0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj5Db250ZW50PC9BPiZuYnNwO2NvbnRlbnQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCNzYXZlRXhjZXB0aW9uKGphdmEubGFuZy5UaHJvd2FibGUpIj5zYXZlRXhjZXB0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO2V4Y2VwdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjc2V0VGVtcGxhdGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRlbXBsYXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RlbXBsYXRlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWFwIj48IS0tIC0tPjwvQT48SDM+CittYXA8L0gzPgorPFBSRT4KK3ByaXZhdGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj5Db250ZW50TWFwPC9BPiA8Qj5tYXA8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkVhY2ggaW5zZXJ0IHRhZyBoYXMgYSBtYXAgb2YgY29udGVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRlbXBsYXRlIj48IS0tIC0tPjwvQT48SDM+Cit0ZW1wbGF0ZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPnRlbXBsYXRlPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgYXBwbGljYXRpb24tcmVsYXRpdmUgVVJJIG9mIHRoZSB0ZW1wbGF0ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJJbnNlcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorSW5zZXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+SW5zZXJ0VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ic2V0VGVtcGxhdGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFRlbXBsYXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRUZW1wbGF0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RlbXBsYXRlKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxQPgorPEREPlNldCB0aGUgdGVtcGxhdGUgYXR0cmlidXRlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUZW1wbGF0ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUZW1wbGF0ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VGVtcGxhdGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5HZXQgdGhlIHRlbXBsYXRlIGF0dHJpYnV0ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Q29udGVudE1hcCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDb250ZW50TWFwPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj5Db250ZW50TWFwPC9BPiA8Qj5nZXRDb250ZW50TWFwPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+R2V0IHRoZSBtYXAgYXR0cmlidXRlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxQPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IHRhZyBieSBwdXNoaW5nIHRoaXMgdGFnJ3MgbWFwIG9udG8gdGhlCisgY29udGVudCBtYXAgc3RhY2suIAorIFNlZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwU3RhY2suCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxQPgorPEREPlByb2Nlc3MgdGhlIGVuZCB0YWcgYnkgaW5jbHVkaW5nIHRoZSB0ZW1wbGF0ZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwdXQoamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudCkiPjwhLS0gLS0+PC9BPjxIMz4KK3B1dDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHV0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPkNvbnRlbnQ8L0E+Jm5ic3A7Y29udGVudCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5UaGlzIG1ldGhvZCBpcyBhIGNvbnZlbmllbmNlIGZvciAmbHQ7dGVtcGxhdGU6cHV0Jmd0OyB0YWdzIGZvcgorIHB1dHRpbmcgY29udGVudCBpbnRvIHRoZSBtYXAuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxQPgorPEREPlJlc2V0IG1lbWJlciB2YWx1ZXMgZm9yIHJldXNlLiBUaGlzIG1ldGhvZCBjYWxscyBzdXBlci5yZWxlYXNlKCksCisgd2hpY2ggaW52b2tlcyBUYWdTdXBwb3J0LnJlbGVhc2UoKSwgd2hpY2ggdHlwaWNhbGx5IGRvZXMgbm90aGluZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzYXZlRXhjZXB0aW9uKGphdmEubGFuZy5UaHJvd2FibGUpIj48IS0tIC0tPjwvQT48SDM+CitzYXZlRXhjZXB0aW9uPC9IMz4KKzxQUkU+Citwcml2YXRlIHZvaWQgPEI+c2F2ZUV4Y2VwdGlvbjwvQj4oamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO2V4Y2VwdGlvbik8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5TYXZlIHRoZSBzcGVjaWZpZWQgZXhjZXB0aW9uIGluIHJlcXVlc3Qgc2NvcGUgaWYgdGhlcmUgaXMgbm90IGFscmVhZHkKKyBvbmUgcHJlc2VudC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZXhjZXB0aW9uPC9DT0RFPiAtIEV4Y2VwdGlvbiB0byBiZSBjb25kaXRpb25hbGx5IHNhdmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9JbnNlcnRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikluc2VydFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2YmU5MjEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sCkBAIC0wLDAgKzEsNzE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorUHV0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuUHV0VGFnLFB1dFRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iUHV0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1B1dFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQdXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvRk9OVD4KKzxCUj4KK0NsYXNzIFB1dFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLlB1dFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPFA+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlB1dFRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK1RhZyBoYW5kbGVyIGZvciAmbHQ7dGVtcGxhdGU6cHV0Jmd0Oywgd2hpY2ggcHV0cyBjb250ZW50IGludG8gcmVxdWVzdCBzY29wZS4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkRhdmlkIEdlYXJ5PC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5QdXRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2NvbnRlbnQiPmNvbnRlbnQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIGNvbnRlbnQncyBVUkkgKG9yIHRleHQpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2RpcmVjdCI+ZGlyZWN0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0RldGVybWluZXMgd2hldGhlciBjb250ZW50IGlzIGluY2x1ZGVkIChmYWxzZSkgb3IgcHJpbnRlZCAodHJ1ZSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgY29udGVudCdzIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjcm9sZSI+cm9sZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgcm9sZSB0aGF0IHRoZSB1c2VyIG11c3QgYmUgaW4gdG8gc3RvcmUgY29udGVudC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI1B1dFRhZygpIj5QdXRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2dldEFjdHVhbENvbnRlbnQoKSI+Z2V0QWN0dWFsQ29udGVudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjZ2V0QW5jZXN0b3IoamF2YS5sYW5nLlN0cmluZykiPmdldEFuY2VzdG9yPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjZ2V0Q29udGVudCgpIj5nZXRDb250ZW50PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNnZXREaXJlY3QoKSI+Z2V0RGlyZWN0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNoYXNCb2R5KCkiPmhhc0JvZHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjc2V0Q29udGVudChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29udGVudDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250ZW50KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9QdXRUYWcuaHRtbCNzZXREaXJlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldERpcmVjdDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtkaXJlY3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0FmdGVyQm9keSwgZG9Jbml0Qm9keSwgZG9TdGFydFRhZywgZ2V0Qm9keUNvbnRlbnQsIGdldFByZXZpb3VzT3V0LCBzZXRCb2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmdldFBhcmVudCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBjb250ZW50J3MgbmFtZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJvbGUiPjwhLS0gLS0+PC9BPjxIMz4KK3JvbGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5yb2xlPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgcm9sZSB0aGF0IHRoZSB1c2VyIG11c3QgYmUgaW4gdG8gc3RvcmUgY29udGVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbnRlbnQiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRlbnQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5jb250ZW50PC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgY29udGVudCdzIFVSSSAob3IgdGV4dCkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkaXJlY3QiPjwhLS0gLS0+PC9BPjxIMz4KK2RpcmVjdDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPmRpcmVjdDwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+RGV0ZXJtaW5lcyB3aGV0aGVyIGNvbnRlbnQgaXMgaW5jbHVkZWQgKGZhbHNlKSBvciBwcmludGVkICh0cnVlKS4KKyBDb250ZW50IGlzIGluY2x1ZGVkIChmYWxzZSkgYnkgZGVmYXVsdC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJQdXRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorUHV0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UHV0VGFnPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+U2V0IHRoZSBjb250ZW50IG5hbWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFJvbGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFJvbGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cm9sZTwvQ09ERT4gLSBUaGUgcm9sZSB0aGUgdXNlciBtdXN0IGJlIGluIHRvIHN0b3JlIGNvbnRlbnQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb250ZW50KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb250ZW50PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDb250ZW50PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udGVudCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5TZXQgdGhlIGNvbnRlbnQncyBVUkkgKGlmIGl0J3MgdG8gYmUgaW5jbHVkZWQpIG9yIHRleHQgKGlmIGl0J3MgdG8KKyBiZSBwcmludGVkKS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RGlyZWN0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXREaXJlY3Q8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldERpcmVjdDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2RpcmVjdCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5TZXQgZGlyZWN0IHRvIHRydWUsIGFuZCBjb250ZW50IHdpbGwgYmUgcHJpbnRlZCBkaXJlY3RseSwgaW5zdGVhZAorIG9mIGluY2x1ZGVkIChkaXJlY3QgPT0gZmFsc2UpLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5HZXQgdGhlIG5hbWUgYXR0cmlidXRlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSb2xlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJvbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFJvbGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5HZXQgdGhlIHJvbGUgYXR0cmlidXRlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDb250ZW50KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbnRlbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldENvbnRlbnQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5HZXQgdGhlIGNvbnRlbnQgYXR0cmlidXRlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXREaXJlY3QoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RGlyZWN0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXREaXJlY3Q8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5SZXR1cm5zIHRoZSBkaXJlY3QgYXR0cmlidXRlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+UHJvY2VzcyB0aGUgZW5kIHRhZyBieSBwdXR0aW5nIGNvbnRlbnQgaW50byB0aGUgZW5jbG9zaW5nCisgaW5zZXJ0IHRhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgdGhpcyB0YWcgaXMgbm90IGVuY2xvc2VkIGJ5IAorICZsdDt0ZW1wbGF0ZTppbnNlcnQmZ3Q7LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+UmVzZXQgbWVtYmVyIHZhbHVlcyBmb3IgcmV1c2UuIFRoaXMgbWV0aG9kIGNhbGxzIHN1cGVyLnJlbGVhc2UoKSwKKyB3aGljaCBpbnZva2VzIFRhZ1N1cHBvcnQucmVsZWFzZSgpLCB3aGljaCB0eXBpY2FsbHkgZG9lcyBub3RoaW5nLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBY3R1YWxDb250ZW50KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdHVhbENvbnRlbnQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRBY3R1YWxDb250ZW50PC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5SZXR1cm5zIHRoZSBjb250ZW50IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy4KKzxQPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Imhhc0JvZHkoKSI+PCEtLSAtLT48L0E+PEgzPgoraGFzQm9keTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBib29sZWFuIDxCPmhhc0JvZHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5SZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhpcyB0YWcgaGFzIGEgYm9keS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QW5jZXN0b3IoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFuY2VzdG9yPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0IDxCPmdldEFuY2VzdG9yPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NOYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5Db252ZW5pZW5jZSBtZXRob2QgZm9yIGxvY2F0aW5nIGFuY2VzdG9yIHRhZ3MgYnkgY2xhc3MgbmFtZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y2xhc3NOYW1lPC9DT0RFPiAtIFRoZSBuYW1lIG9mIHRoZSBhbmNlc3RvciBjbGFzcy4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9QdXRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHV0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9jbGFzcy11c2UvR2V0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL2NsYXNzLXVzZS9HZXRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDUxZjQzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9jbGFzcy11c2UvR2V0VGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5HZXRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkdldFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJHZXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuR2V0VGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5HZXRUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJHZXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9jbGFzcy11c2UvSW5zZXJ0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL2NsYXNzLXVzZS9JbnNlcnRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzZkZTA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9jbGFzcy11c2UvSW5zZXJ0VGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5JbnNlcnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkluc2VydFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbnNlcnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuSW5zZXJ0VGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5JbnNlcnRUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbnNlcnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9jbGFzcy11c2UvUHV0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL2NsYXNzLXVzZS9QdXRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjMwNGY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9jbGFzcy11c2UvUHV0VGFnLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5QdXRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLlB1dFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQdXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuUHV0VGFnPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5QdXRUYWcKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQdXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9kb2MtZmlsZXMvdGVtcGxhdGUuZ2lmIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9kb2MtZmlsZXMvdGVtcGxhdGUuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjOTM1YzYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL2RvYy1maWxlcy90ZW1wbGF0ZS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLWZyYW1lLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2UtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTEyYzFkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlPC9BPjwvRk9OVD4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0NsYXNzZXM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJHZXRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5HZXRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJJbnNlcnRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JbnNlcnRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJQdXRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QdXRUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2Utc3VtbWFyeS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLXN1bW1hcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjQ2NTJhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLXN1bW1hcnkuaHRtbApAQCAtMCwwICsxLDI5OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUKKzwvSDI+CisKKyAgIAk8Yj5Ob3RlOjwvYj4gQXMgb2YgU3RydXRzIDEuMSB0aGUgdGVtcGxhdGUgdGFnIGxpYnJhcnkgaXMgCisgICAJZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBUaWxlcy4KKzxQPgorPEI+U2VlOjwvQj4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxBIEhSRUY9IiNwYWNrYWdlX2Rlc2NyaXB0aW9uIj48Qj5EZXNjcmlwdGlvbjwvQj48L0E+Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJHZXRUYWcuaHRtbCI+R2V0VGFnPC9BPjwvQj48L1REPgorPFREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ikluc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT48L0I+PC9URD4KKzxURD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEEgTkFNRT0icGFja2FnZV9kZXNjcmlwdGlvbiI+PCEtLSAtLT48L0E+PEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUgRGVzY3JpcHRpb24KKzwvSDI+CisKKzxQPgorPHA+CisgICAJPGI+Tm90ZTo8L2I+IEFzIG9mIFN0cnV0cyAxLjEgdGhlIHRlbXBsYXRlIHRhZyBsaWJyYXJ5IGlzIAorICAgCWRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgVGlsZXMuCisgICA8L3A+Cis8cD4gICAgIFRoZSAic3RydXRzLXRlbXBsYXRlIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbgorY3JlYXRpbmcgZHluYW1pYyAgICAgSlNQIHRlbXBsYXRlcyBmb3IgcGFnZXMgd2hpY2ggc2hhcmUgYSBjb21tb24gZm9ybWF0LgorVGhlc2UgdGVtcGxhdGVzIGFyZSBiZXN0IHVzZWQgICAgIHdoZW4gaXQgaXMgbGlrZWx5IHRoYXQgYSBsYXlvdXQgc2hhcmVkCitieSBzZXZlcmFsIHBhZ2VzIGluIHlvdXIgYXBwbGljYXRpb24gd2lsbCAgICAgY2hhbmdlLiBUaGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZAorYnkgdGhlc2UgdGFncyBpcyBzaW1pbGFyIHRvIHdoYXQgY2FuIGJlICAgICBhY2hpZXZlZCB1c2luZyBzdGFuZGFyZCBKU1AgaW5jbHVkZQorZGlyZWN0aXZlLCBidXQgYXJlIGR5bmFtaWMgcmF0aGVyIHRoYW4gc3RhdGljLiAgIDwvcD4KKyAgIDxhIG5hbWU9ImRvYy5EZXNjcmlwdGlvbiI+PC9hPgorICAgIAorPHA+ICA8L3A+Cis8ZGl2IGFsaWduPSJDZW50ZXIiPiA8YSBocmVmPSIjZG9jLkludHJvZHVjdGlvbiI+W0ludHJvZHVjdGlvbl08L2E+CisgPGEgaHJlZj0iI2RvYy5GdW5jdGlvbmFsaXR5Ij5bVGVtcGxhdGUgICBGdW5jdGlvbmFsaXR5XTwvYT4KKyA8YSBocmVmPSIjVGFnTGliX1RlbXBsYXRlX1VNTF8iPltUZW1wbGF0ZSBVTUxdPC9hPgorPGEgaHJlZj0iI2RvYy5Qcm9wZXJ0aWVzIj5bVGVtcGxhdGUgUHJvcGVydGllc108L2E+CisgPGEgaHJlZj0iI2RvYy5FeGFtcGxlcyI+W1RlbXBsYXRlICAgRXhhbXBsZXNdPC9hPgorIDwvZGl2PgorICAgCis8cD48L3A+CisgICAgCis8aHIgLz0iIj4gPGEgbmFtZT0iZG9jLkludHJvIj48L2E+CisgCis8aDM+SW50cm9kdWN0aW9uPGEgbmFtZT0iZG9jLkludHJvZHVjdGlvbiI+PC9hPgorPC9oMz4KKyAgICAKKzxwPiAgICAgVGhlIFRlbXBsYXRlIGxpYnJhcnkgc3VwcGxpZXMgdGFncyB0aGF0IGFyZSB1c2VmdWwgZm9yIGNyZWF0aW5nIGR5bmFtaWMKK0pTUCB0ZW1wbGF0ZXMgICAgIGZvciBwYWdlcyB3aGljaCBzaGFyZSBhIGNvbW1vbiBmb3JtYXQuICAgPC9wPgorICAgPGEgbmFtZT0iZG9jLkZ1bmN0aW9uYWxpdHkiPjwvYT4KKyAKKzxoMz5UZW1wbGF0ZSBUYWcgRnVuY3Rpb25hbGl0eTxhIG5hbWU9ImRvYy5GdW5jdGlvbmFsaXR5Ij48L2E+Cis8L2gzPgorIAorPHA+RWFjaCBvZiB0aGUgdGhyZWUgdGVtcGxhdGUgdGFncyBoYXMgYSBzcGVjaWZpYywgaW50ZXJlbGF0ZWQgZnVuY3Rpb246PC9wPgorIAorPHA+IDwvcD4KKzx1bD4KKyAgIDxsaT48Yj48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLXRlbXBsYXRlLmh0bWwjZ2V0Ij5nZXQ8L2E+CisgICAgPC9iPiAtIFJldHJpZXZlcyBjb250ZW50IGZyb20gYSByZXF1ZXN0IHNjb3BlIGJlYW4sIGZvciB1c2UgaW4gdGhlIHRlbXBsYXRlCitsYXlvdXQuPC9saT4KKyAgIDxsaT48Yj48YSBocmVmPSIuLi8uLi8uLi8uLi8uLi8uLi91c2VyR3VpZGUvc3RydXRzLXRlbXBsYXRlLmh0bWwjaW5zZXJ0Ij5pbnNlcnQ8L2E+CisgICAgPC9iPiAtIFJldHJpZXZlcyAob3IgaW5jbHVkZXMpIHRoZSBzcGVjaWZpZWQgdGVtcGxhdGUgZmlsZSwgYW5kIHRoZW4KK2luc2VydHMgdGhlIHNwZWNpZmllZCBjb250ZW50IGludG8gdGhlIHRlbXBsYXRlJ3MgbGF5b3V0LiBCeSBjaGFuZ2luZyB0aGUKK2xheW91dCBkZWZpbmVkIGluIHRoZSB0ZW1wbGF0ZSBmaWxlLCBhbnkgb3RoZXIgZmlsZSB0aGF0IGluc2VydHMgdGhlIHRlbXBsYXRlCit3aWxsIGF1dG9tYXRpY2FsbHkgdXNlIHRoZSBuZXcgbGF5b3V0LjwvbGk+CisgICA8bGk+PGI+PGEgaHJlZj0iLi4vLi4vLi4vLi4vLi4vLi4vdXNlckd1aWRlL3N0cnV0cy10ZW1wbGF0ZS5odG1sI3B1dCI+cHV0PC9hPgorICAgIDwvYj4gLSBDcmVhdGVzIGEgcmVxdWVzdCBzY29wZSBiZWFuIHRoYXQgc3BlY2lmaWVzIHRoZSBjb250ZW50IHRvIGJlCit1c2VkIGJ5IHRoZSBnZXQgdGFnLiBDb250ZW50IGNhbiBiZSBwcmludGVkIGRpcmVjdGx5IG9yIGluY2x1ZGVkIGZyb20gYSBKU1AKK29yIEhUTUwgZmlsPC9saT4KKyAgPGxpPjxicj4KKyAgICA8YnI+CisgICAgPGJyPgorICA8L2xpPgorICA8bGk+PGEgbmFtZT0iVGFnTGliX1RlbXBsYXRlX1VNTF8iPjwvYT4KKyAgICA8aW1nIHNyYz0iZG9jLWZpbGVzL3RlbXBsYXRlLmdpZiIgYWx0PSJUYWdMaWIgVGVtcGxhdGUgVU1MIj4KKyAgPC9saT4KKyAKKzwvdWw+CisgCis8cD48L3A+CisgIAorPGgzPlRlbXBsYXRlIFRhZyBQcm9wZXJ0aWVzPGEgbmFtZT0iZG9jLlByb3BlcnRpZXMiPjwvYT4KKzwvaDM+CisgIAorPHA+VGhlIHRocmVlIHRlbXBsYXRlIHRhZ3MgdXNlIHZlcnkgc2ltcGxlIGF0dHJpYnV0ZXMgOjwvcD4KKyAKKzxibG9ja3F1b3RlPiAgIAorICA8cD48Yj5nZXQ8L2I+IC0gUmVxdWlyZXMgYSBzaW5nbGUgcHJvcGVydHksIHRoZSBuYW1lIG9mIHRoZSBjb250ZW50IHRvCitiZSBpbnNlcnRlZC4gVGhpcyB0YWcgaXMgdXNlZCBpbiB0aGUgdGVtcGxhdGUgZmlsZSB0byBpbmRpY2F0ZSB3aGVyZSBpbiB0aGUKK2xheW91dCB0byBpbnNlcnQgdGhlIGNvbnRlbnQuIFRoaXMgbmFtZSBtYXRjaGVzIHRoZSBuYW1lIHByb3BlcnR5IHVzZWQgYnkKK2EgcHV0IHRhZy48L3A+CisgICAKKyAgPHA+PGI+aW5zZXJ0PC9iPiAtIFJlcXVpcmVzIGEgc2luZ2xlIHByb3BlcnR5LCB0aGUgbmFtZSBvZiB0aGUgdGVtcGxhdGUuCitUaGlzIHRhZyBpcyB0aGUgcGFyZW50IHRvIG9uZSBvciBtb3JlIHB1dCB0YWdzLiBUaGUgcHV0IHRhZ3MgaW5kaWNhdGUgdGhlCitjb250ZW50IHRvIGJlIGluc2VydGVkIGludG8gdGhlIHRlbXBsYXRlLiBUaGUgbGF5b3V0IG9mIHRoZSBjb250ZW50IGlzIGRldGVybWluZWQKK2J5IGdldCB0YWdzIHBsYWNlZCBpbiB0aGUgdGVtcGxhdGUuPC9wPgorICAgCisgIDxwPjxiPnB1dDwvYj4gLSBSZXF1aXJlcyBhIG5hbWUgcHJvcGVydHksIHdoaWNoIHNob3VsZCBtYXRjaCBhIG5hbWUgdXNlZAoraW4gdGhlIHRlbXBsYXRlIGZpbGUuIFRoZSBjb250ZW50IHByb3BlcnR5IGluZGljYXRlcyB0aGUgc291cmNlIG9mIHRoZSBjb250ZW50LgorVGhlIG9wdGlvbmFsIGRpcmVjdCBhdHRyaWJ1dGUgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbnRlbnQgc2hvdWxkIGJlIGluY2x1ZGVkCitvciBwcmludGVkIGRpcmVjdGx5IChhcyBhIGxpdGVyYWwgc3RyaW5nKS4gVGhlIGRlZmF1bHQgaXMgZmFsc2UsIG1lYW5pbmcKK2NvbnRlbnQgaXMgaW5jbHVkZWQuPC9wPgorICAgPGEgbmFtZT0iZG9jLkV4YW1wbGVzIj48L2E+CisgCisgIDxoMz5UZW1wbGF0ZSBUYWcgRXhhbXBsZXM8L2gzPgorICAKKyAgPHAgYWxpZ249IkNlbnRlciI+PGI+QSBzYW1wbGUgdGVtcGxhdGUgZmlsZTwvYj48L3A+CisgCisgIDxibG9ja3F1b3RlPiAKKyAgICA8aHI+IAorICAgIDxwcmU+Jmx0OyVAIHRhZ2xpYiB1cmk9Jy9XRUItSU5GL3RsZHMvc3RydXRzLXRlbXBsYXRlLnRsZCcgcHJlZml4PSd0ZW1wbGF0ZScgJSZndDs8YnI+Jmx0O2h0bWwmZ3Q7Jmx0O2hlYWQmZ3Q7Jmx0O3RpdGxlJmd0OyZsdDt0ZW1wbGF0ZTpnZXQgbmFtZT0ndGl0bGUnLyZndDsmbHQ7L3RpdGxlJmd0OyZsdDsvaGVhZCZndDs8YnI+Jmx0O2JvZHkgYmFja2dyb3VuZD0nZ3JhcGhpY3MvYmx1ZUFuZFdoaXRlQmFja2dyb3VuZC5naWYnJmd0Ozxicj4mbHQ7dGFibGUmZ3Q7PGJyPiAgJmx0O3RyIHZhbGlnbj0ndG9wJyZndDsmbHQ7dGQmZ3Q7Jmx0O3RlbXBsYXRlOmdldCBuYW1lPSdzaWRlYmFyJy8mZ3Q7Jmx0Oy90ZCZndDs8YnI+ICAgICAgJmx0O3RkJmd0OyZsdDt0YWJsZSZndDs8YnI+ICAgICAgICAgICAgJmx0O3RyJmd0OyZsdDt0ZCZndDsmbHQ7dGVtcGxhdGU6Z2V0IG5hbWU9J2hlYWRlcicvJmd0OyZsdDsvdGQmZ3Q7Jmx0Oy90ciZndDs8YnI+ICAgICAgICAgICAgJmx0O3RyJmd0OyZsdDt0ZCZndDsmbHQ7dGVtcGxhdGU6Z2V0IG5hbWU9J2NvbnRlbnQnLyZndDsmbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7PGJyPiAgICAgICAgICAgICZsdDt0ciZndDsmbHQ7dGQmZ3Q7Jmx0O3RlbXBsYXRlOmdldCBuYW1lPSdmb290ZXInLyZndDsmbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7PGJyPiAgICAgICAgICAmbHQ7L3RhYmxlJmd0Ozxicj4gICAgICAmbHQ7L3RkJmd0Ozxicj4gICAmbHQ7L3RyJmd0Ozxicj4mbHQ7L3RhYmxlJmd0Ozxicj4mbHQ7L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0Ozxicj4mbHQ7JTxicj4vKjxicj4iY2hhcHRlclRlbXBsYXRlLmpzcCI8YnI+RGlzcGxheSBhICJzaWRlYmFyIiBpbiBhIGNvbHVtbiBhbG9uZyB0aGUgbGVmdCBzaWRlIG9mIHRoZSBwYWdlLjxicj5EaXNwbGF5IGEgImhlYWRlciIgb3ZlciB0aGUgcmlnaHQgY29sdW1uLjxicj5EaXNwbGF5IHRoZSBwYWdlICJjb250ZW50IiBiZWxvdyB0aGUgaGVhZGVyLjxicj5EaXNwbGF5IGEgImZvb3RlciIgYXQgYmVsb3cgdGhlIGNvbnRlbnQuPGJyPklmIHdlIGNoYW5nZSB0aGUgbGF5b3V0IG9mIHRoZSBlbGVtZW50cyBvbiB0aGlzIHBhZ2UsIGFsbCBwYWdlczxicj5pbnNlcnRpbmcgdGhpcyBwYWdlIHdpbGwgYWxzbyBjaGFuZ2UgdG8gdXNlIHRoZSBuZXcgbGF5b3V0Ljxicj4qLzxicj4lJmd0Ozxicj48L3ByZT4KKyAKKyAgICA8aHI+IDwvYmxvY2txdW90ZT4KKyAKKyAgICA8cCBhbGlnbj0iQ2VudGVyIj48Yj5BIHNhbXBsZSBKU1AgdXNpbmcgdGhlIHRlbXBsYXRlPC9iPjwvcD4KKyAKKyAgICA8YmxvY2txdW90ZT4gCisgICAgICA8aHI+IAorICAgICAgPHByZT4mbHQ7JUAgdGFnbGliIHVyaT0nL1dFQi1JTkYvdGxkcy9zdHJ1dHMtdGVtcGxhdGUudGxkJyBwcmVmaXg9J3RlbXBsYXRlJyAlJmd0Ozxicj4mbHQ7dGVtcGxhdGU6aW5zZXJ0IHRlbXBsYXRlPScvY2hhcHRlclRlbXBsYXRlLmpzcCcmZ3Q7PGJyPiAgJmx0O3RlbXBsYXRlOnB1dCBuYW1lPSd0aXRsZScgY29udGVudD0nVGVtcGxhdGVzJyBkaXJlY3Q9J3RydWUnLyZndDs8YnI+ICAmbHQ7dGVtcGxhdGU6cHV0IG5hbWU9J2hlYWRlcicgY29udGVudD0nL2hlYWRlci5odG1sJyAvJmd0Ozxicj4gICZsdDt0ZW1wbGF0ZTpwdXQgbmFtZT0nc2lkZWJhcicgY29udGVudD0nL3NpZGViYXIuanNwJyAvJmd0Ozxicj4gICZsdDt0ZW1wbGF0ZTpwdXQgbmFtZT0nY29udGVudCcgY29udGVudD0nL2ludHJvZHVjdGlvbi5odG1sJy8mZ3Q7PGJyPiAgJmx0O3RlbXBsYXRlOnB1dCBuYW1lPSdmb290ZXInIGNvbnRlbnQ9Jy9mb290ZXIuaHRtbCcgLyZndDs8YnI+Jmx0Oy90ZW1wbGF0ZTppbnNlcnQmZ3Q7PGJyPiZsdDslPGJyPi8qPGJyPiJpbnRyb2R1Y3Rpb24uanNwIjxicj5TcGVjaWZ5IHRlbXBsYXRlIGZvciB0aGlzIHBhZ2UgKGNoYXB0ZXJUZW1wbGF0ZS5qc3ApLjxicj5UaGUgY2hhcHRlclRlbXBsYXRlLmpzcCBkZWZpbmVzIHRoZSBsYXlvdXQgcG9zaXRpb25zIGZvciBmaXZlPGJyPmVsZW1lbnRzOiB0aXRsZSwgaGVhZGVyLCBzaWRlYmFyLCBjb250ZW50LCBhbmQgZm9vdGVyLjxicj5TcGVjaWZ5IHRoZSBzb3VyY2UgZmlsZSAoaHRtbCBvciBqc3ApIGZvciBlYWNoIGVsZW1lbnQuPGJyPiovPGJyPiUmZ3Q7PGJyPjwvcHJlPgorIAorICAgICAgPGhyPiA8L2Jsb2NrcXVvdGU+CisgCisgICAgICA8cCBhbGlnbj0iQ2VudGVyIj48Yj5BIHNhbXBsZSBIVE1MIGNvbnRlbnQgZmlsZSAoImhlYWRlci5odG1sIikgdXNlZAorYnkgImludHJvZHVjdGlvbi5qc3AiLCBhbmQgb3RoZXJzLjwvYj48L3A+CisgCisgICAgICA8YmxvY2txdW90ZT4gCisgICAgICAgIDxocj4gCisgICAgICAgIDxwcmU+Jmx0O3RhYmxlJmd0Ozxicj4mbHQ7dHImZ3Q7PGJyPiZsdDt0ZCZndDsmbHQ7aW1nIHNyYz0nZ3JhcGhpY3MvamF2YS5naWYnLyZndDsmbHQ7L3RkJmd0Ozxicj4mbHQ7dGQmZ3Q7Jmx0O2ltZyBzcmM9J2dyYXBoaWNzL3RlbXBsYXRlcy5naWYnLyZndDsmbHQ7L3RkJmd0Ozxicj4mbHQ7L3RyJmd0Ozxicj4mbHQ7L3RhYmxlJmd0Ozxicj48L3ByZT4KKyAKKyAgICAgICAgPGhyPiA8L2Jsb2NrcXVvdGU+CisgCisgICAgICAgIDxwIGFsaWduPSJDZW50ZXIiPjxiPkEgc2FtcGxlIEpTUCBjb250ZW50IGZpbGUgKCJzaWRlYmFyLmpzcCIpIHVzZWQKK2J5ICJpbnRyb2R1Y3Rpb24uanNwIiwgYW5kIG90aGVycy48L2I+PC9wPgorIAorICAgICAgICA8YmxvY2txdW90ZT4gCisgICAgICAgICAgPGhyPiAKKyAgICAgICAgICA8cHJlPiZsdDtmb250IHNpemU9JzUnJmd0OyZsdDthIG5hbWU9InRvcCImZ3Q7VG9waWNzJmx0Oy9hJmd0OyZsdDsvZm9udCZndDsmbHQ7cCZndDs8YnI+Jmx0O3RhYmxlIHdpZHRoPScxNDUnJmd0Ozxicj4gICAgJmx0O3RyJmd0OyZsdDt0ZCZndDsmbHQ7YSBocmVmPSdpbnRyb2R1Y3Rpb24uanNwJyZndDs8YnI+ICAgICAgICBJbnRyb2R1Y3Rpb24gJmx0Oy9hJmd0OyZsdDsvdGQmZ3Q7Jmx0Oy90ciZndDs8YnI+CisgICAgJmx0O3RyJmd0OyZsdDt0ZCZndDsmbHQ7YSBocmVmPSd1c2luZy5qc3AnJmd0Ozxicj4gICAgICAgIFVzaW5nIFRlbXBsYXRlcyAmbHQ7L2EmZ3Q7Jmx0Oy90ZCZndDsmbHQ7L3RyJmd0Ozxicj4KKyAgICAmbHQ7dHImZ3Q7Jmx0O3RkJmd0OyZsdDthIGhyZWY9J29wdGlvbmFsLmpzcCcmZ3Q7PGJyPiAgICAgICAgT3B0aW9uYWwgQ29udGVudCAmbHQ7L2EmZ3Q7Jmx0Oy90ZCZndDsmbHQ7L3RyJmd0Ozxicj4gICAgJmx0O3RyJmd0OyZsdDt0ZCZndDsmbHQ7YSBocmVmPSdtb3JlLmpzcCcmZ3Q7PGJyPiAgICAgICAgLi4uIGFuZCBtb3JlIC4uLiZsdDsvYSZndDsmbHQ7L3RkJmd0OyZsdDsvdHImZ3Q7PGJyPiAgJmx0Oy90YWJsZSZndDsmbHQ7L3AmZ3Q7PGJyPgorJmx0OyU8YnI+Lyo8YnI+U3BlY2lmeSBuYXZpZ2F0aW9uYWwgbGlua3MgZm9yIHRoaXMgYXBwbGljYXRpb24uPGJyPiovPGJyPiUmZ3Q7PGJyPjwvcHJlPgorIAorICAgICAgICAgIDxocj4gPC9ibG9ja3F1b3RlPgorIAorICAgICAgICAgIDxwIGFsaWduPSJDZW50ZXIiPjxiPkEgc2FtcGxlIEhUTUwgY29udGVudCBmaWxlIHVzZWQgYnkgImludHJvZHVjdGlvbi5qc3AiCitvbmx5LjwvYj48L3A+CisgCisgICAgICAgICAgPGJsb2NrcXVvdGU+IAorICAgICAgICAgICAgPGhyPiAKKyAgICAgICAgICAgIDxwcmU+Jmx0O2h0bWwmZ3Q7PGJyPiZsdDtoZWFkJmd0Ozxicj4mbHQ7bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy90ZW1wbGF0ZXMuY3NzIiA8YnI+Y2hhcnNldD0iSVNPLTg4NTktMSIgdHlwZT0idGV4dC9jc3MiJmd0Ozxicj4mbHQ7L2hlYWQmZ3Q7PGJyPiZsdDtib2R5Jmd0Ozxicj4mbHQ7aDMgY2xhc3M9IkNoYXBUaXRsZSImZ3Q7SW50cm9kdWN0aW9uJmx0Oy9oMyZndDs8YnI+Jmx0O3AgY2xhc3M9IlBhcmFncmFwaCImZ3Q7V2luZG93IHRvb2xraXRzIHR5cGljYWxseSBwcm92aWRlIGEgbGF5b3V0IG1lY2hhbmlzbTxicj4mbHQ7IC4uLiAvJmd0Ozxicj48aHI+Cis8L3ByZT4KKyA8L2Jsb2NrcXVvdGU+CisgPCEtLQorPGgzPk9wdGlvbmFsIENvbnRlbnQ8L2gzPgorPHA+QWxsIGNvbnRlbnQgaXMgb3B0aW9uYWwuIElmIGEgc291cmNlIHBhZ2UgZG9lcyBub3Qgc3BlY2lmeSB0aGUgY29udGVudCBmb3IgYW4gZWxlbWVudCBpbiB0aGUgdGVtcGxhdGUsIHRoYXQgZWxlbWVudCBpcyBzaW1wbHkgaWdub3JlZC4gVGhpcyBjYW4gbWFrZSB1c2luZyB0ZW1wbGF0ZXMgbW9yZSBmbGV4aWJsZSwgc2luY2UgeW91IGNhbiB1c2UgdGhlIHNhbWUgdGVtcGxhdGUgZm9yIG1vcmUgdGhhbiBvbmUgcGFnZSwgc2ltcGx5IGJ5IG9tbWl0dGluZyBvciBzcGVjaWZ5aW5nIGEgY29udGVudCBlbGVtZW50LiBIb3dldmVyLCB0aGlzIGZlYXR1cmUgYWxzbyBtZWFucyB0aGF0IGEgbWlzc3BlbGxlZCBuYW1lIGNvdWxkIGxlYWQgdGhlIHRlbXBsYXRlIHRvIHF1aWV0bHkgaWdub3JlIGNvbnRlbnQgeW91IG1lYW50IHRvIGluY2x1ZGUuPC9wPgorLS0+CisgPC9ibG9ja3F1b3RlPgorPFA+CisKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvcGFja2FnZS10cmVlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmMTNiYjMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTQwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUKKzwvSDI+Cis8L0NFTlRFUj4KKzxETD4KKzxEVD48Qj5QYWNrYWdlIEhpZXJhcmNoaWVzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctdHJlZS5odG1sIj5BbGwgUGFja2FnZXM8L0E+PC9ETD4KKzxIUj4KKzxIMj4KK0NsYXNzIEhpZXJhcmNoeQorPC9IMj4KKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEubGFuZy5PYmplY3Q8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZykKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCAoaW1wbGVtZW50cyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZykKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPjxCPlB1dFRhZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvR2V0VGFnLmh0bWwiPjxCPkdldFRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCI+PEI+SW5zZXJ0VGFnPC9CPjwvQT48L1VMPgorPC9VTD4KKzwvVUw+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLXVzZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLXVzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4ZWUzNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2UtdXNlLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBQYWNrYWdlPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjMzVjOWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sCkBAIC0wLDAgKzEsMzk2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorQ29udGVudCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudCxDb250ZW50IGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJDb250ZW50IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbnRlbnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29udGVudC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBDb250ZW50PC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudDwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+Q29udGVudDwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0EgdXRpbGl0eSBmaWxlIGZvciB0ZW1wbGF0ZXMuCisgIDxwPgorICBUaGlzIHJlcHJlc2VudHMgdGVtcGxhdGUgY29udGVudCwgd2hpY2ggaXMgaW5jbHVkZWQgYnkgdGVtcGxhdGVzLiAKKyAgVGVtcGxhdGVzIGNhbiBhbHNvIHRyZWF0IGNvbnRlbnQgYXMgcGxhaW4gdGV4dCBhbmQgcHJpbnQgaXQgdG8gdGhlCisgIGltcGxpY2l0IG91dCB2YXJpYWJsZS4KKyAKKyAgVGhpcyBzaW1wbGUgY2xhc3MgbWFpbnRhaW4gdHdvIHByb3BlcnRpZXM6CisgIDx1bD4KKyAgPGxpPjxpPmNvbnRlbnQ8L2k+OiBBIHN0cmluZyByZXByZXNlbnRpbmcgZWl0aGVyIGEgVVJJIG9yIHRleHQuPC9saT4KKyAgPGxpPjxpPmRpcmVjdDwvaT46IElmIHRydWUsIGNvbnRlbnQgaXMgcHJpbnRlZDsgb3RoZXJ3aXNlIGNvbnRlbnQgaXMgCisgIGluY2x1ZGVkIChkZWZhdWx0IGlzIGZhbHNlKS48L2xpPgorICA8L3VsPgorICA8L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkRhdmlkIEdlYXJ5PC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnQiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sI2NvbnRlbnQiPmNvbnRlbnQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGVtcGxhdGVzIHJlZ2FyZCB0aGlzIGFzIGNvbnRlbnQgdG8gYmUgZWl0aGVyIGluY2x1ZGVkIG9yIAorICBwcmludGVkIGRpcmVjdGx5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sI2RpcmVjdCI+ZGlyZWN0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JlcHJlc2VudHMgYSBib29sZWFuIC0gaWYgdHJ1ZSwgY29udGVudCBpcyBpbmNsdWRlZCwgb3RoZXJ3aXNlCisgIGNvbnRlbnQgaXMgcHJpbnRlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCNDb250ZW50KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5Db250ZW50PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRlbnQsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtkaXJlY3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwjZ2V0Q29udGVudCgpIj5nZXRDb250ZW50PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCNpc0RpcmVjdCgpIj5pc0RpcmVjdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNvbnRlbnQiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRlbnQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5jb250ZW50PC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UZW1wbGF0ZXMgcmVnYXJkIHRoaXMgYXMgY29udGVudCB0byBiZSBlaXRoZXIgaW5jbHVkZWQgb3IgCisgIHByaW50ZWQgZGlyZWN0bHkuICBUaGlzIGlzIGEgYmxhbmsgZmluYWwgdGhhdCBpcworICBzZXQgYXQgY29uc3RydWN0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGlyZWN0Ij48IS0tIC0tPjwvQT48SDM+CitkaXJlY3Q8L0gzPgorPFBSRT4KK3ByaXZhdGUgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5kaXJlY3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJlcHJlc2VudHMgYSBib29sZWFuIC0gaWYgdHJ1ZSwgY29udGVudCBpcyBpbmNsdWRlZCwgb3RoZXJ3aXNlCisgIGNvbnRlbnQgaXMgcHJpbnRlZC4gIFRoaXMgaXMgYSBibGFuayBmaW5hbCB0aGF0IGlzIHNldCBhdCAKKyAgY29uc3RydWN0aW9uLiAgVGhpcyBpcyBhIHN0cmluZyBpbnN0ZWFkIG9mIGEgYm9vbGVhbiBhcworICBhIGNvbnZlbmllbmNlIGZvciB0aGUgdGFncywgd2hvc2UgY29ycmVzcG9uZGluZyBhdHRyaWJ1dGUKKyAgaXMgYSBzdHJpbmcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29udGVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorQ29udGVudDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbnRlbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250ZW50LAorICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2RpcmVjdCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5UaGUgb25seSBjb25zdHJ1Y3Rvci4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb250ZW50PC9DT0RFPiAtIFRoZSBjb250ZW50J3MgVVJJPEREPjxDT0RFPmRpcmVjdDwvQ09ERT4gLSBJcyBjb250ZW50IHByaW50ZWQgZGlyZWN0bHkgKHRydWUpIG9yIGluY2x1ZGVkIChmYWxzZSk/PC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0Q29udGVudCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDb250ZW50PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRDb250ZW50PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+UmV0dXJuIGNvbnRlbnQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzRGlyZWN0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzRGlyZWN0PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc0RpcmVjdDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxQPgorPEREPklzIGNvbnRlbnQgdG8gYmUgcHJpbnRlZCBkaXJlY3RseSAoaXNEaXJlY3QoKSA9PSB0cnVlKQorIGluc3RlYWQgb2YgaW5jbHVkZWQgKGlzRGlyZWN0KCkgPT0gZmFsc2UpLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0b1N0cmluZygpIj48IS0tIC0tPjwvQT48SDM+Cit0b1N0cmluZzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+dG9TdHJpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5SZXR1cm5zIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb250ZW50LgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnRvU3RyaW5nPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQ29udGVudC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb250ZW50Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU3MjljNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwKQEAgLTAsMCArMSwzMzAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitDb250ZW50TWFwIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwLENvbnRlbnRNYXAgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkNvbnRlbnRNYXAgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQ29udGVudE1hcC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcFN0YWNrLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb250ZW50TWFwLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzIENvbnRlbnRNYXA8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxQPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Db250ZW50TWFwPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorQSBzaW1wbGUgZmFjYWRlIGZvciBhIGhhc2ggbWFwLiBUaGlzIGNsYXNzIHJlc3RyaWN0cyBvcGVyYXRpb25zCisgdGhhdCBjYW4gYmUgcGVyZm9ybWVkIG9uIGEgaGFzaCBtYXAgb2YgY29udGVudHMuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5EYXZpZCBHZWFyeTwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwjbWFwIj5tYXA8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIG1hcC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCNDb250ZW50TWFwKCkiPkNvbnRlbnRNYXA8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj5Db250ZW50PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwjZ2V0KGphdmEubGFuZy5TdHJpbmcpIj5nZXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwjcHV0KGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnQpIj5wdXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPkNvbnRlbnQ8L0E+Jm5ic3A7Y29udGVudCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1hcCI+PCEtLSAtLT48L0E+PEgzPgorbWFwPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEudXRpbC5IYXNoTWFwIDxCPm1hcDwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIG1hcC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJDb250ZW50TWFwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0NvbnRlbnRNYXA8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Db250ZW50TWFwPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+RXhwbGljaXRseSBkZWNsYXJlIGEgZG8tbm90aGluZywgbm8tYXJnIGNvbnN0cnVjdG9yLgorPFA+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJwdXQoamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudCkiPjwhLS0gLS0+PC9BPjxIMz4KK3B1dDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHV0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPkNvbnRlbnQ8L0E+Jm5ic3A7Y29udGVudCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5QdXQgbmFtZWQgY29udGVudCBpbnRvIG1hcC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBUaGUgY29udGVudCdzIG5hbWU8REQ+PENPREU+Y29udGVudDwvQ09ERT4gLSBUaGUgY29udGVudDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPkNvbnRlbnQ8L0E+IDxCPmdldDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+UmV0dXJucyB0aGUgY29udGVudCBhc3NvY2lhdGVkIHdpdGggbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIGNvbnRlbnQgdG8gcmV0cmlldmU8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbnRlbnRNYXAuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29udGVudE1hcC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZmY5NGM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sCkBAIC0wLDAgKzEsMzM0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorQ29udGVudE1hcFN0YWNrIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwU3RhY2ssQ29udGVudE1hcFN0YWNrIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJDb250ZW50TWFwU3RhY2sgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQ29udGVudE1hcFN0YWNrLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbnRlbnRNYXBTdGFjay5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBDb250ZW50TWFwU3RhY2s8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwU3RhY2s8L0I+Cis8L1BSRT4KKzxIUj4KKzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxQPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Db250ZW50TWFwU3RhY2s8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDwvREw+CisKKzxQPgorVGhpcyBjbGFzcyBwcm92aWRlcyBhY2Nlc3MgdG8gYSBzdGFjayBvZiBDb250ZW50TWFwcyBpbiByZXF1ZXN0IHNjb3BlCisgdGhyb3VnaCBzdGF0aWMgbWV0aG9kcy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkRhdmlkIEdlYXJ5PC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCNDb250ZW50TWFwU3RhY2soKSI+Q29udGVudE1hcFN0YWNrPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Tm8gaW5zdGFudGlhdGlvbnMgb2YgdGhpcyBjbGFzcyBhcmUgYWxsb3dlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLnV0aWwuU3RhY2s8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcFN0YWNrLmh0bWwjZ2V0U3RhY2soamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj5nZXRTdGFjazwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcFN0YWNrLmh0bWwjcGVlayhqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPnBlZWs8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BjKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sI3BvcChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPnBvcDwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcFN0YWNrLmh0bWwjcHVzaChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudE1hcCkiPnB1c2g8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BjLAorICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+Jm5ic3A7bWFwKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkNvbnRlbnRNYXBTdGFjaygpIj48IS0tIC0tPjwvQT48SDM+CitDb250ZW50TWFwU3RhY2s8L0gzPgorPFBSRT4KK3ByaXZhdGUgPEI+Q29udGVudE1hcFN0YWNrPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPk5vIGluc3RhbnRpYXRpb25zIG9mIHRoaXMgY2xhc3MgYXJlIGFsbG93ZWQuCis8UD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFN0YWNrKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U3RhY2s8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS51dGlsLlN0YWNrIDxCPmdldFN0YWNrPC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BjKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST4KKzxQPgorPEREPlJldHVybiBhIHJlZmVyZW5jZSB0byB0aGUgc3RhY2suIElmIHRoZXJlIGlzIG5vIHN0YWNrLCBvbmUgaXMKKyBjcmVhdGVkIGFuZCBwbGFjZWQgaW50byByZXF1ZXN0IHNjb3BlIGFzc29jaWF0ZWQgd2l0aCB0aGUKKyBwYWdlIGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBjPC9DT0RFPiAtIFRoZSBwYWdlIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIGEgY3VzdG9tIHRhZy48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBlZWsoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitwZWVrPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT4gPEI+cGVlazwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYyk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5QZWVrIGF0IHRoZSBtYXAgb24gdG9wIG9mIHRoZSBzdGFjay4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGM8L0NPREU+IC0gVGhlIHBhZ2UgY29udGV4dCBhc3NvY2lhdGVkIHdpdGggYSBjdXN0b20gdGFnLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHVzaChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudE1hcCkiPjwhLS0gLS0+PC9BPjxIMz4KK3B1c2g8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5wdXNoPC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BjLAorICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj5Db250ZW50TWFwPC9BPiZuYnNwO21hcCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5QdXNoIGEgY29udGVudCBtYXAgb250byB0aGUgc3RhY2suCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBjPC9DT0RFPiAtIFRoZSBwYWdlIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIGEgY3VzdG9tIHRhZy48REQ+PENPREU+bWFwPC9DT0RFPiAtIEEgY29udGVudCBtYXAgdGhhdCBnZXRzIHB1c2hlZCBvbnRvIHRoZSBzdGFjay48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBvcChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK3BvcDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+IDxCPnBvcDwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYyk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBjPC9DT0RFPiAtIFRoZSBwYWdlIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIGEgY3VzdG9tIHRhZy48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbnRlbnRNYXBTdGFjay5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb250ZW50TWFwU3RhY2suaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvY2xhc3MtdXNlL0NvbnRlbnQuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9jbGFzcy11c2UvQ29udGVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0NGZjOGMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvY2xhc3MtdXNlL0NvbnRlbnQuaHRtbApAQCAtMCwwICsxLDIxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbnRlbnQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50PC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj5Db250ZW50PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvQj48L0E+PC9URD4KKzxURD4KKyAgIAk8Yj5Ob3RlOjwvYj4gQXMgb2YgU3RydXRzIDEuMSB0aGUgdGVtcGxhdGUgdGFnIGxpYnJhcnkgaXMgCisgICAJZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBUaWxlcy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+Q29udGVudDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGU8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGU8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+Q29udGVudDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+SW5zZXJ0VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvSW5zZXJ0VGFnLmh0bWwjcHV0KGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnQpIj5wdXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPkNvbnRlbnQ8L0E+Jm5ic3A7Y29udGVudCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPkNvbnRlbnQ8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+Q29udGVudDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+Q29udGVudDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29udGVudE1hcC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sI2dldChqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+Q29udGVudDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29udGVudE1hcC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sI3B1dChqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50KSI+cHV0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj5Db250ZW50PC9BPiZuYnNwO2NvbnRlbnQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29udGVudC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvY2xhc3MtdXNlL0NvbnRlbnRNYXAuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9jbGFzcy11c2UvQ29udGVudE1hcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiY2IyZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvY2xhc3MtdXNlL0NvbnRlbnRNYXAuaHRtbApAQCAtMCwwICsxLDIzMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudE1hcCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbnRlbnRNYXAuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj5Db250ZW50TWFwPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvQj48L0E+PC9URD4KKzxURD4KKyAgIAk8Yj5Ob3RlOjwvYj4gQXMgb2YgU3RydXRzIDEuMSB0aGUgdGVtcGxhdGUgdGFnIGxpYnJhcnkgaXMgCisgICAJZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBUaWxlcy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGU8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcC5odG1sIj5Db250ZW50TWFwPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkluc2VydFRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI21hcCI+bWFwPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0VhY2ggaW5zZXJ0IHRhZyBoYXMgYSBtYXAgb2YgY29udGVudC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkluc2VydFRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0luc2VydFRhZy5odG1sI2dldENvbnRlbnRNYXAoKSI+Z2V0Q29udGVudE1hcDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29udGVudE1hcFN0YWNrLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCNwZWVrKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+cGVlazwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29udGVudE1hcFN0YWNrLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwU3RhY2suaHRtbCNwb3AoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj5wb3A8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BjKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbnRlbnRNYXBTdGFjay48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcFN0YWNrLmh0bWwjcHVzaChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudE1hcCkiPnB1c2g8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BjLAorICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+Jm5ic3A7bWFwKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbnRlbnRNYXAuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL2NsYXNzLXVzZS9Db250ZW50TWFwU3RhY2suaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9jbGFzcy11c2UvQ29udGVudE1hcFN0YWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ1OGQ3MQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9jbGFzcy11c2UvQ29udGVudE1hcFN0YWNrLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDUgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLkNvbnRlbnRNYXBTdGFjayAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwU3RhY2sgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb250ZW50TWFwU3RhY2suaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwU3RhY2s8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudE1hcFN0YWNrCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb250ZW50TWFwU3RhY2suaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2UtZnJhbWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU3ZmQ2YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbCBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbDwvQT48L0ZPTlQ+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitDbGFzc2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iQ29udGVudC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbnRlbnQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJDb250ZW50TWFwLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29udGVudE1hcDwvQT4KKzxCUj4KKzxBIEhSRUY9IkNvbnRlbnRNYXBTdGFjay5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbnRlbnRNYXBTdGFjazwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTBjMmM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sCkBAIC0wLDAgKzEsMTQ1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsCis8L0gyPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNvbnRlbnQuaHRtbCI+Q29udGVudDwvQT48L0I+PC9URD4KKzxURD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJDb250ZW50TWFwLmh0bWwiPkNvbnRlbnRNYXA8L0E+PC9CPjwvVEQ+Cis8VEQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQ29udGVudE1hcFN0YWNrLmh0bWwiPkNvbnRlbnRNYXBTdGFjazwvQT48L0I+PC9URD4KKzxURD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXRyZWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NGFhZTQzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTM2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbCBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+CitIaWVyYXJjaHkgRm9yIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwKKzwvSDI+Cis8L0NFTlRFUj4KKzxETD4KKzxEVD48Qj5QYWNrYWdlIEhpZXJhcmNoaWVzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctdHJlZS5odG1sIj5BbGwgUGFja2FnZXM8L0E+PC9ETD4KKzxIUj4KKzxIMj4KK0NsYXNzIEhpZXJhcmNoeQorPC9IMj4KKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEubGFuZy5PYmplY3Q8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50Lmh0bWwiPjxCPkNvbnRlbnQ8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+PEI+Q29udGVudE1hcDwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudE1hcFN0YWNrLmh0bWwiPjxCPkNvbnRlbnRNYXBTdGFjazwvQj48L0E+PC9VTD4KKzwvVUw+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+UFJFVjwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2UtdXNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS11c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWEyOTYzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2UtdXNlLmh0bWwKQEAgLTAsMCArMSwxODQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgUGFja2FnZTxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbDwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGU8L0I+PC9BPjwvVEQ+Cis8VEQ+CisgICAJPGI+Tm90ZTo8L2I+IEFzIG9mIFN0cnV0cyAxLjEgdGhlIHRlbXBsYXRlIHRhZyBsaWJyYXJ5IGlzIAorICAgCWRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgVGlsZXMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsPC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGU8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvY2xhc3MtdXNlL0NvbnRlbnQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUiPjxCPkNvbnRlbnQ8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvY2xhc3MtdXNlL0NvbnRlbnRNYXAuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUiPjxCPkNvbnRlbnRNYXA8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFRpbGVzIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbDwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvY2xhc3MtdXNlL0NvbnRlbnQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbCI+PEI+Q29udGVudDwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgVGlsZXMgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9jbGFzcy11c2UvQ29udGVudE1hcC5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsIj48Qj5Db250ZW50TWFwPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBUaWxlcyBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2ZTM3ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZy5odG1sCkBAIC0wLDAgKzEsMzg5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAxIEVEVCAyMDAzIC0tPgorPFRJVExFPgorQWRkVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQWRkVGFnLEFkZFRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQWRkVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FkZFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQXR0cmlidXRlVG9TY29wZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWRkVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBBZGRUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQWRkVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWRkVGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPjwvREw+CisKKzxQPgorQWRkIGFuIGVsZW1lbnQgdG8gdGhlIHN1cnJvdW5kaW5nIGxpc3QgdGFnLgorIFNhbWUgc3ludGF4IGFzIDxjb2RlPiZsdDtwdXQmZ3Q7PC9jb2RlPi4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5BZGRUYWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjYXR0cmlidXRlTmFtZSI+YXR0cmlidXRlTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNyZWFsVmFsdWUiPnJlYWxWYWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5Db21wb25lbnRDb25zdGFudHMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPkNvbXBvbmVudENvbnN0YW50czwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjQ09NUE9ORU5UX0NPTlRFWFQiPkNPTVBPTkVOVF9DT05URVhUPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sI0NPTVBPTkVOVF9TQ09QRSI+Q09NUE9ORU5UX1NDT1BFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sI0VYQ0VQVElPTl9LRVkiPkVYQ0VQVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjTE9DQUxFX0tFWSI+TE9DQUxFX0tFWTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWcuaHRtbCNBZGRUYWcoKSI+QWRkVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZGVmYXVsdCBjb25zdHJ1Y3RvcjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWcuaHRtbCNjYWxsUGFyZW50KCkiPmNhbGxQYXJlbnQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDYWxsIHBhcmVudCB0YWcgd2hpY2ggbXVzdCBpbXBsZW1lbnQgQXR0cmlidXRlQ29udGFpbmVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZ1BhcmVudC5odG1sIj5BZGRUYWdQYXJlbnQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWcuaHRtbCNmaW5kRW5jbG9zaW5nUHV0TGlzdFRhZ1BhcmVudCgpIj5maW5kRW5jbG9zaW5nUHV0TGlzdFRhZ1BhcmVudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZpbmQgcGFyZW50IHRhZyB3aGljaCBtdXN0IGltcGxlbWVudCBBdHRyaWJ1dGVDb250YWluZXIuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2NvbXB1dGVSZWFsVmFsdWUoKSI+Y29tcHV0ZVJlYWxWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjZmluZEVuY2xvc2luZ1B1dFRhZ1BhcmVudCgpIj5maW5kRW5jbG9zaW5nUHV0VGFnUGFyZW50PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2dldEJlYW5OYW1lKCkiPmdldEJlYW5OYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2dldEJlYW5Qcm9wZXJ0eSgpIj5nZXRCZWFuUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjZ2V0QmVhblNjb3BlKCkiPmdldEJlYW5TY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNnZXRDb250ZW50KCkiPmdldENvbnRlbnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2dldFJlYWxWYWx1ZSgpIj5nZXRSZWFsVmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjZ2V0UmVhbFZhbHVlRnJvbUJlYW4oKSI+Z2V0UmVhbFZhbHVlRnJvbUJlYW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2dldFR5cGUoKSI+Z2V0VHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjcmVsZWFzZUludGVybmFsKCkiPnJlbGVhc2VJbnRlcm5hbDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNzZXRCZWFuTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QmVhbk5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjc2V0QmVhblByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRCZWFuUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjc2V0QmVhblNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCZWFuU2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjc2V0Q29udGVudChqYXZhLmxhbmcuT2JqZWN0KSI+c2V0Q29udGVudDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNzZXRDb250ZW50KGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb250ZW50PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3NldERpcmVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0RGlyZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjc2V0T2JqZWN0VmFsdWUoamF2YS5sYW5nLk9iamVjdCkiPnNldE9iamVjdFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuT2JqZWN0KSI+c2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJBZGRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorQWRkVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWRkVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+ZGVmYXVsdCBjb25zdHJ1Y3RvcgorPFA+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjYWxsUGFyZW50KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NhbGxQYXJlbnQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmNhbGxQYXJlbnQ8L0I+KCkKKyAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q2FsbCBwYXJlbnQgdGFnIHdoaWNoIG11c3QgaW1wbGVtZW50IEF0dHJpYnV0ZUNvbnRhaW5lci4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjY2FsbFBhcmVudCgpIj5jYWxsUGFyZW50PC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIElmIHdlIGNhbid0IGZpbmQgYW4gYXBwcm9wcmlhdGUgZW5jbG9zaW5nIHRhZy48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRFbmNsb3NpbmdQdXRMaXN0VGFnUGFyZW50KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbmRFbmNsb3NpbmdQdXRMaXN0VGFnUGFyZW50PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZ1BhcmVudC5odG1sIj5BZGRUYWdQYXJlbnQ8L0E+IDxCPmZpbmRFbmNsb3NpbmdQdXRMaXN0VGFnUGFyZW50PC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkZpbmQgcGFyZW50IHRhZyB3aGljaCBtdXN0IGltcGxlbWVudCBBdHRyaWJ1dGVDb250YWluZXIuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBJZiB3ZSBjYW4ndCBmaW5kIGFuIGFwcHJvcHJpYXRlIGVuY2xvc2luZyB0YWcuPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BZGRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFkZFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dFRhZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZ1BhcmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhMWQyOTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZ1BhcmVudC5odG1sCkBAIC0wLDAgKzEsMjEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAxIEVEVCAyMDAzIC0tPgorPFRJVExFPgorQWRkVGFnUGFyZW50IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQWRkVGFnUGFyZW50LEFkZFRhZ1BhcmVudCBpbnRlcmZhY2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkFkZFRhZ1BhcmVudCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BZGRUYWdQYXJlbnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWRkVGFnUGFyZW50Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0ZPTlQ+Cis8QlI+CitJbnRlcmZhY2UgQWRkVGFnUGFyZW50PC9IMj4KKzxETD4KKzxEVD48Qj5BbGwgS25vd24gSW1wbGVtZW50aW5nIENsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgaW50ZXJmYWNlIDxCPkFkZFRhZ1BhcmVudDwvQj48L0RMPgorCis8UD4KK1RhZyBjbGFzc2VzIGltcGxlbWVudGluZyB0aGlzIGludGVyZmFjZSBjYW4gY29udGFpbiBuZXN0ZWQgPGNvZGU+UHV0VGFnPC9jb2RlPnMuCisgVGhpcyBpbnRlcmZhY2UgZGVmaW5lcyBhIG1ldGhvZCBjYWxsZWQgYnkgdGhlIG5lc3RlZCB0YWcuCis8UD4KKworPFA+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWdQYXJlbnQuaHRtbCNwcm9jZXNzTmVzdGVkVGFnKG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5BZGRUYWcpIj5wcm9jZXNzTmVzdGVkVGFnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZy5odG1sIj5BZGRUYWc8L0E+Jm5ic3A7bmVzdGVkVGFnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgbmVzdGVkIHRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InByb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkFkZFRhZykiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NOZXN0ZWRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByb2Nlc3NOZXN0ZWRUYWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWcuaHRtbCI+QWRkVGFnPC9BPiZuYnNwO25lc3RlZFRhZykKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgbmVzdGVkIHRhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmVzdGVkVGFnPC9DT0RFPiAtIE5lc3RlZCB0byBwcm9jZXNzLgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FkZFRhZ1BhcmVudC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBZGRUYWdQYXJlbnQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQXR0cmlidXRlVG9TY29wZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmOTgyY2YKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbApAQCAtMCwwICsxLDQ3NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0F0dHJpYnV0ZVRvU2NvcGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5BdHRyaWJ1dGVUb1Njb3BlVGFnLEF0dHJpYnV0ZVRvU2NvcGVUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkF0dHJpYnV0ZVRvU2NvcGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQXR0cmlidXRlVG9TY29wZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkF0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIEF0dHJpYnV0ZVRvU2NvcGVUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5BdHRyaWJ1dGVUb1Njb3BlVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPklzICBpdCAgc3RpbGwgIGluICB1c2UgID88L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgZmluYWwgY2xhc3MgPEI+QXR0cmlidXRlVG9TY29wZVRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvREw+CisKKzxQPgorQ3VzdG9tICB0YWcgIHRoYXQgIHB1dHMgIGNvbXBvbmVudCdzICBhdHRyaWJ1dGVzICBpbiAgYSAgc2NvcGUgIChyZXF1ZXN0LCAgcGFnZSwgIC4uLikuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQXR0cmlidXRlVG9TY29wZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQXR0cmlidXRlVG9TY29wZVRhZy5odG1sI3Byb3BlcnR5Ij5wcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgcHJvcGVydHkgbmFtZSB0byBiZSBleHBvc2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQXR0cmlidXRlVG9TY29wZVRhZy5odG1sI3Njb3BlIj5zY29wZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtUaGUgc2NvcGUgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQXR0cmlidXRlVG9TY29wZVRhZy5odG1sI3Njb3BlTmFtZSI+c2NvcGVOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBzY29wZSBuYW1lLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCNBdHRyaWJ1dGVUb1Njb3BlVGFnKCkiPkF0dHJpYnV0ZVRvU2NvcGVUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NsZWFuICB1cCAgYWZ0ZXIgIHByb2Nlc3NpbmcgIHRoaXMgIGVudW1lcmF0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtFeHBvc2UgIHRoZSAgcmVxdWVzdGVkICBwcm9wZXJ0eSAgZnJvbSAgY29tcG9uZW50ICBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwjZ2V0UHJvcGVydHkoKSI+Z2V0UHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZWxlYXNlICBhbGwgIGFsbG9jYXRlZCAgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7U2V0ICB0aGUgIHByb3BlcnR5ICBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7U2V0ICB0aGUgIHNjb3BlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ic2NvcGVOYW1lIj48IS0tIC0tPjwvQT48SDM+CitzY29wZU5hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBzY29wZSBuYW1lLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2NvcGUiPjwhLS0gLS0+PC9BPjxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+Citwcml2YXRlIGludCA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIHNjb3BlIHZhbHVlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBwcm9wZXJ0eSBuYW1lIHRvIGJlIGV4cG9zZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQXR0cmlidXRlVG9TY29wZVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitBdHRyaWJ1dGVUb1Njb3BlVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QXR0cmlidXRlVG9TY29wZVRhZzwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQcm9wZXJ0eTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlIHByb3BlcnR5IG5hbWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+U2V0ICB0aGUgIHByb3BlcnR5ICBuYW1lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcm9wZXJ0eTwvQ09ERT4gLSBUaGUgIHByb3BlcnR5ICBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNjb3BlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlNldCAgdGhlICBzY29wZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2NvcGU8L0NPREU+IC0gVGhlICBuZXcgIHNjb3BlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5FeHBvc2UgIHRoZSAgcmVxdWVzdGVkICBwcm9wZXJ0eSAgZnJvbSAgY29tcG9uZW50ICBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiAgYSAgSlNQICBleGNlcHRpb24gIGhhcyAgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5DbGVhbiAgdXAgIGFmdGVyICBwcm9jZXNzaW5nICB0aGlzICBlbnVtZXJhdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiAgYSAgSlNQICBleGNlcHRpb24gIGhhcyAgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZWxlYXNlICBhbGwgIGFsbG9jYXRlZCAgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmEzM2FiMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwKQEAgLTAsMCArMSwyNjMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDEgRURUIDIwMDMgLS0+Cis8VElUTEU+CitDb21wb25lbnRDb25zdGFudHMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5Db21wb25lbnRDb25zdGFudHMsQ29tcG9uZW50Q29uc3RhbnRzIGludGVyZmFjZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQ29tcG9uZW50Q29uc3RhbnRzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb21wb25lbnRDb25zdGFudHMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0ZPTlQ+Cis8QlI+CitJbnRlcmZhY2UgQ29tcG9uZW50Q29uc3RhbnRzPC9IMj4KKzxETD4KKzxEVD48Qj5BbGwgS25vd24gSW1wbGVtZW50aW5nIENsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwiPkRlZmluaXRpb25zVXRpbDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCI+R2V0QXR0cmlidXRlVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luaXREZWZpbml0aW9uc1RhZy5odG1sIj5Jbml0RGVmaW5pdGlvbnNUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgaW50ZXJmYWNlIDxCPkNvbXBvbmVudENvbnN0YW50czwvQj48L0RMPgorCis8UD4KK0NvbnN0YW50cyB1c2VkIGJ5IFRpbGVzL0NvbXBvbmVudHMuCis8UD4KKworPFA+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sI0NPTVBPTkVOVF9DT05URVhUIj5DT01QT05FTlRfQ09OVEVYVDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOYW1lIHVzZWQgdG8gc3RvcmUgVGlsZS9Db21wb25lbnQgY29udGV4dC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCNDT01QT05FTlRfU0NPUEUiPkNPTVBPTkVOVF9TQ09QRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjRVhDRVBUSU9OX0tFWSI+RVhDRVBUSU9OX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjTE9DQUxFX0tFWSI+TE9DQUxFX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJDT01QT05FTlRfQ09OVEVYVCI+PCEtLSAtLT48L0E+PEgzPgorQ09NUE9ORU5UX0NPTlRFWFQ8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5DT01QT05FTlRfQ09OVEVYVDwvQj48L1BSRT4KKzxETD4KKzxERD5OYW1lIHVzZWQgdG8gc3RvcmUgVGlsZS9Db21wb25lbnQgY29udGV4dC4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkNvbXBvbmVudENvbnN0YW50cy5DT01QT05FTlRfQ09OVEVYVCI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJDT01QT05FTlRfU0NPUEUiPjwhLS0gLS0+PC9BPjxIMz4KK0NPTVBPTkVOVF9TQ09QRTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgPEI+Q09NUE9ORU5UX1NDT1BFPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkNvbXBvbmVudENvbnN0YW50cy5DT01QT05FTlRfU0NPUEUiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTE9DQUxFX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorTE9DQUxFX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkxPQ0FMRV9LRVk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQ29tcG9uZW50Q29uc3RhbnRzLkxPQ0FMRV9LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRVhDRVBUSU9OX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorRVhDRVBUSU9OX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkVYQ0VQVElPTl9LRVk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQ29tcG9uZW50Q29uc3RhbnRzLkVYQ0VQVElPTl9LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZ1BhcmVudC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQ2MjIwZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sCkBAIC0wLDAgKzEsNzE5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAxIEVEVCAyMDAzIC0tPgorPFRJVExFPgorRGVmaW5pdGlvblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkRlZmluaXRpb25UYWcsRGVmaW5pdGlvblRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRGVmaW5pdGlvblRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBEZWZpbml0aW9uVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkRlZmluaXRpb25UYWdTdXBwb3J0PC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5EZWZpbml0aW9uVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCI+UHV0TGlzdFRhZ1BhcmVudDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWdQYXJlbnQuaHRtbCI+UHV0VGFnUGFyZW50PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+RGVmaW5pdGlvblRhZzwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5odG1sIj5QdXRUYWdQYXJlbnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj5QdXRMaXN0VGFnUGFyZW50PC9BPjwvREw+CisKKzxQPgorVGhpcyBpcyB0aGUgdGFnIGhhbmRsZXIgZm9yICZsdDt0aWxlczpkZWZpbml0aW9uJmd0Oywgd2hpY2ggZGVmaW5lcworIGEgdGlsZXMgKG9yIHRlbXBsYXRlIC8gY29tcG9uZW50KS4gRGVmaW5pdGlvbiBpcyBwdXQgaW4gcmVxdWVzdGVkIGNvbnRleHQgYW5kIGNhbiBiZQorIHVzZWQgaW4gJmx0O3RpbGVzOmluc2VydCZndC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNlZHJpYyBEdW1vdWxpbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuRGVmaW5pdGlvblRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI2RlZmluaXRpb24iPmRlZmluaXRpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGVtcGxhdGUgZGVmaW5pdGlvbjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCNleHRlbmRzRGVmaW5pdGlvbiI+ZXh0ZW5kc0RlZmluaXRpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXh0ZW5kcyBhdHRyaWJ1dGUgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI2lkIj5pZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWZpbml0aW9uIGlkZW50aWZpZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI3Njb3BlIj5zY29wZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTY29wZSBpbnRvIHdoaWNoIGRlZmluaXRpb24gd2lsbCBiZSBzYXZlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkRlZmluaXRpb25UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjY29udHJvbGxlck5hbWUiPmNvbnRyb2xsZXJOYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjY29udHJvbGxlclR5cGUiPmNvbnRyb2xsZXJUeXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjcGFnZSI+cGFnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3JvbGUiPnJvbGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI0RlZmluaXRpb25UYWcoKSI+RGVmaW5pdGlvblRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgZW5kIHRhZyBieSBwdXR0aW5nIHRoZSBkZWZpbml0aW9uIGluIGFwcHJvcHJpYXRlIGNvbnRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHN0YXJ0IHRhZyBieSBjcmVhdGluZyBhIG5ldyBkZWZpbml0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwjZ2V0RXh0ZW5kcygpIj5nZXRFeHRlbmRzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IDxjb2RlPmV4dGVuZHM8L2NvZGU+IChwYXJlbnQpIGRlZmluaXRpb24gbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI2dldElkKCkiPmdldElkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBJRC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI2dldFNjb3BlKCkiPmdldFNjb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBzY29wZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI3Byb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dExpc3RUYWcpIj5wcm9jZXNzTmVzdGVkVGFnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT4mbmJzcDtuZXN0ZWRUYWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIG5lc3RlZCAmbGc7cHV0TGlzdCZndDsgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnKSI+cHJvY2Vzc05lc3RlZFRhZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPiZuYnNwO25lc3RlZFRhZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgbmVzdGVkICZsZztwdXQmZ3Q7IHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI3B1dEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+cHV0QXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2NvbnRlbnQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBpcyBhIGNvbnZlbmllbmNlIGZvciBvdGhlciB0YWdzIGZvcgorIHB1dHRpbmcgY29udGVudCBpbnRvIHRoZSB0aWxlIGRlZmluaXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldCBtZW1iZXIgdmFsdWVzIGZvciByZXVzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCNyZWxlYXNlSW50ZXJuYWwoKSI+cmVsZWFzZUludGVybmFsPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBpbnRlcm5hbCByZWZlcmVuY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwjc2V0RXh0ZW5kcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0RXh0ZW5kczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtkZWZpbml0aW9uTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCA8Y29kZT5leHRlbmRzPC9jb2RlPiAocGFyZW50KSBkZWZpbml0aW9uIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCNzZXRJZChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SWQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIElELjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FTY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgc2NvcGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuRGVmaW5pdGlvblRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjZ2V0Q29udHJvbGxlck5hbWUoKSI+Z2V0Q29udHJvbGxlck5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNnZXRDb250cm9sbGVyVHlwZSgpIj5nZXRDb250cm9sbGVyVHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI2dldFBhZ2UoKSI+Z2V0UGFnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI2dldFRlbXBsYXRlKCkiPmdldFRlbXBsYXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjc2V0Q29udHJvbGxlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29udHJvbGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3NldENvbnRyb2xsZXJDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29udHJvbGxlckNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjc2V0Q29udHJvbGxlck5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRyb2xsZXJOYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjc2V0Q29udHJvbGxlclR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRyb2xsZXJUeXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjc2V0Q29udHJvbGxlclVybChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29udHJvbGxlclVybDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3NldFBhZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldFBhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjc2V0VGVtcGxhdGUoamF2YS5sYW5nLlN0cmluZykiPnNldFRlbXBsYXRlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJpZCI+PCEtLSAtLT48L0E+PEgzPgoraWQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5EZWZpbml0aW9uIGlkZW50aWZpZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzY29wZSI+PCEtLSAtLT48L0E+PEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5TY29wZSBpbnRvIHdoaWNoIGRlZmluaXRpb24gd2lsbCBiZSBzYXZlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImV4dGVuZHNEZWZpbml0aW9uIj48IS0tIC0tPjwvQT48SDM+CitleHRlbmRzRGVmaW5pdGlvbjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPmV4dGVuZHNEZWZpbml0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPkV4dGVuZHMgYXR0cmlidXRlIHZhbHVlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmaW5pdGlvbiI+PCEtLSAtLT48L0E+PEgzPgorZGVmaW5pdGlvbjwvSDM+Cis8UFJFPgorcHJpdmF0ZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+IDxCPmRlZmluaXRpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+VGVtcGxhdGUgZGVmaW5pdGlvbgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkRlZmluaXRpb25UYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorRGVmaW5pdGlvblRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkRlZmluaXRpb25UYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlc2V0IG1lbWJlciB2YWx1ZXMgZm9yIHJldXNlLiBUaGlzIG1ldGhvZCBjYWxscyBzdXBlci5yZWxlYXNlKCksCisgd2hpY2ggaW52b2tlcyBUYWdTdXBwb3J0LnJlbGVhc2UoKSwgd2hpY2ggdHlwaWNhbGx5IGRvZXMgbm90aGluZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPkRlZmluaXRpb25UYWdTdXBwb3J0PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2VJbnRlcm5hbCgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlSW50ZXJuYWw8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPnJlbGVhc2VJbnRlcm5hbDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgaW50ZXJuYWwgcmVmZXJlbmNlcy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHV0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitwdXRBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnB1dEF0dHJpYnV0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2NvbnRlbnQpPC9QUkU+Cis8REw+Cis8REQ+VGhpcyBtZXRob2QgaXMgYSBjb252ZW5pZW5jZSBmb3Igb3RoZXIgdGFncyBmb3IKKyBwdXR0aW5nIGNvbnRlbnQgaW50byB0aGUgdGlsZSBkZWZpbml0aW9uLgorIENvbnRlbnQgaXMgYWxyZWFkeSB0eXBlZCBieSBjYWxsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dFRhZykiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NOZXN0ZWRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByb2Nlc3NOZXN0ZWRUYWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPiZuYnNwO25lc3RlZFRhZykKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyBuZXN0ZWQgJmxnO3B1dCZndDsgdGFnLgorIE1ldGhvZCBpcyBjYWxsZWQgZnJvbSBuZXN0ZWQgJmxnO3B1dCZndDsgdGFncy4KKyBOZXN0ZWQgbGlzdCBpcyBhZGRlZCB0byBjdXJyZW50IGxpc3QuCisgSWYgcm9sZSBpcyBkZWZpbmVkLCBuZXN0ZWQgYXR0cmlidXRlIGlzIHdyYXBwZWQgaW50byBhbiB1bnR5cGVkIGRlZmluaXRpb24KKyBjb250YWluaW5nIGF0dHJpYnV0ZSB2YWx1ZSBhbmQgcm9sZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnUGFyZW50Lmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnKSI+cHJvY2Vzc05lc3RlZFRhZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnUGFyZW50Lmh0bWwiPlB1dFRhZ1BhcmVudDwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uZXN0ZWRUYWc8L0NPREU+IC0gTmVzdGVkIHRhZyB0byBwcm9jZXNzLgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dExpc3RUYWcpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzTmVzdGVkVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcm9jZXNzTmVzdGVkVGFnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj5QdXRMaXN0VGFnPC9BPiZuYnNwO25lc3RlZFRhZykKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyBuZXN0ZWQgJmxnO3B1dExpc3QmZ3Q7IHRhZy4KKyBNZXRob2QgaXMgY2FsbGVkIGZyb20gbmVzdGVkICZsZztwdXRMaXN0Jmd0OyB0YWdzLgorIE5lc3RlZCBsaXN0IGlzIGFkZGVkIHRvIGN1cnJlbnQgbGlzdC4KKyBJZiByb2xlIGlzIGRlZmluZWQsIG5lc3RlZCBhdHRyaWJ1dGUgaXMgd3JhcHBlZCBpbnRvIGFuIHVudHlwZWQgZGVmaW5pdGlvbgorIGNvbnRhaW5pbmcgYXR0cmlidXRlIHZhbHVlIGFuZCByb2xlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnUGFyZW50Lmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0TGlzdFRhZykiPnByb2Nlc3NOZXN0ZWRUYWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCI+UHV0TGlzdFRhZ1BhcmVudDwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uZXN0ZWRUYWc8L0NPREU+IC0gTmVzdGVkIFB1dFRhZyBkZWZpbmluZyB0aGUgYXR0cmlidXRlLgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldElkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRJZDwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgSUQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5JRDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SWQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRJZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lkKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgSUQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+c2V0SWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aWQ8L0NPREU+IC0gTmV3IElELjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2NvcGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFNjb3BlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBzY29wZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5TY29wZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthU2NvcGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBzY29wZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YVNjb3BlPC9DT0RFPiAtIFNjb3BlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RXh0ZW5kcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RXh0ZW5kczwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RXh0ZW5kczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2RlZmluaXRpb25OYW1lKTwvUFJFPgorPERMPgorPEREPlNldCA8Y29kZT5leHRlbmRzPC9jb2RlPiAocGFyZW50KSBkZWZpbml0aW9uIG5hbWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRlZmluaXRpb25OYW1lPC9DT0RFPiAtIE5hbWUgb2YgcGFyZW50IGRlZmluaXRpb24uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRFeHRlbmRzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEV4dGVuZHM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEV4dGVuZHM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgPGNvZGU+ZXh0ZW5kczwvY29kZT4gKHBhcmVudCkgZGVmaW5pdGlvbiBuYW1lLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPk5hbWUgb2YgcGFyZW50IGRlZmluaXRpb24uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IHRhZyBieSBjcmVhdGluZyBhIG5ldyBkZWZpbml0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBPbiBlcnJvcnMgcHJvY2Vzc2luZyB0YWcuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRoZSBlbmQgdGFnIGJ5IHB1dHRpbmcgdGhlIGRlZmluaXRpb24gaW4gYXBwcm9wcmlhdGUgY29udGV4dC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBPbiBlcnJvcnMgcHJvY2Vzc2luZyB0YWcuPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlZjhlOGMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwKQEAgLTAsMCArMSw3MTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDEgRURUIDIwMDMgLS0+Cis8VElUTEU+CitEZWZpbml0aW9uVGFnU3VwcG9ydCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkRlZmluaXRpb25UYWdTdXBwb3J0LERlZmluaXRpb25UYWdTdXBwb3J0IGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJEZWZpbml0aW9uVGFnU3VwcG9ydCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBEZWZpbml0aW9uVGFnU3VwcG9ydDwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkRlZmluaXRpb25UYWdTdXBwb3J0PC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sIj5EZWZpbml0aW9uVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkRlZmluaXRpb25UYWdTdXBwb3J0PC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0NvbW1vbiBiYXNlIGNsYXNzIGZvciB0YWdzIGRlYWxpbmcgd2l0aCBUaWxlcyBkZWZpbml0aW9ucy4KKyBUaGlzIGNsYXNzIGRlZmluZXMgcHJvcGVydGllcyB1c2VkIGluIERlZmluaXRpb24gVGFncy4KKyBJdCBhbHNvIGV4dGVuZHMgVGFnU3VwcG9ydC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5EZWZpbml0aW9uVGFnU3VwcG9ydCI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI2NvbnRyb2xsZXJOYW1lIj5jb250cm9sbGVyTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBc3NvY2lhdGVkIENvbnRyb2xsZXIgbmFtZSAoY2xhc3NuYW1lIG9yIHVybCk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjY29udHJvbGxlclR5cGUiPmNvbnRyb2xsZXJUeXBlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Fzc29jaWF0ZWQgQ29udHJvbGxlciB0eXBlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3BhZ2UiPnBhZ2U8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VXJpIG9mIHBhZ2UgYXNzb2ljYXRlZCB0byB0aGlzIGRlZmluaXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3JvbGUiPnJvbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Um9sZSBhc3NvY2lhdGVkIHRvIGRlZmluaXRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNEZWZpbml0aW9uVGFnU3VwcG9ydCgpIj5EZWZpbml0aW9uVGFnU3VwcG9ydDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjZ2V0Q29udHJvbGxlck5hbWUoKSI+Z2V0Q29udHJvbGxlck5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgY29udHJvbGxlciBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI2dldENvbnRyb2xsZXJUeXBlKCkiPmdldENvbnRyb2xsZXJUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGNvbnRyb2xsZXIgdHlwZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNnZXRQYWdlKCkiPmdldFBhZ2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIHBhZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGFzc29jaWF0ZWQgcm9sZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNnZXRUZW1wbGF0ZSgpIj5nZXRUZW1wbGF0ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgdGVtcGxhdGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBjbGFzcyBwcm9wZXJ0aWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3NldENvbnRyb2xsZXIoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRyb2xsZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udHJvbGxlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRDb250cm9sbGVyQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRyb2xsZXJDbGFzczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250cm9sbGVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciBuYW1lIGFzIGEgY2xhc3N0eXBlIGFuZCBjb250cm9sbGVyCisgdHlwZSBhcyAiY2xhc3NuYW1lIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRDb250cm9sbGVyTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29udHJvbGxlck5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udHJvbGxlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRDb250cm9sbGVyVHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29udHJvbGxlclR5cGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udHJvbGxlclR5cGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgYXNzb2NpYXRlZCBjb250cm9sbGVyIHR5cGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjc2V0Q29udHJvbGxlclVybChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29udHJvbGxlclVybDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250cm9sbGVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciBuYW1lIGFzIGFuIHVybCwgYW5kIGNvbnRyb2xsZXIKKyB0eXBlIGFzICJ1cmwiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3NldFBhZ2UoamF2YS5sYW5nLlN0cmluZykiPnNldFBhZ2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgcGFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3JvbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgYXNzb2NpYXRlZCByb2xlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3NldFRlbXBsYXRlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUZW1wbGF0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0ZW1wbGF0ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgdGVtcGxhdGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0VuZFRhZywgZG9TdGFydFRhZywgZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQsIHNldFZhbHVlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY29udHJvbGxlclR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRyb2xsZXJUeXBlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jb250cm9sbGVyVHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5Bc3NvY2lhdGVkIENvbnRyb2xsZXIgdHlwZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udHJvbGxlck5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRyb2xsZXJOYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jb250cm9sbGVyTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5Bc3NvY2lhdGVkIENvbnRyb2xsZXIgbmFtZSAoY2xhc3NuYW1lIG9yIHVybCkKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJvbGUiPjwhLS0gLS0+PC9BPjxIMz4KK3JvbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPnJvbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+Um9sZSBhc3NvY2lhdGVkIHRvIGRlZmluaXRpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYWdlIj48IS0tIC0tPjwvQT48SDM+CitwYWdlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlPC9CPjwvUFJFPgorPERMPgorPEREPlVyaSBvZiBwYWdlIGFzc29pY2F0ZWQgdG8gdGhpcyBkZWZpbml0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkRlZmluaXRpb25UYWdTdXBwb3J0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK0RlZmluaXRpb25UYWdTdXBwb3J0PC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgY2xhc3MgcHJvcGVydGllcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDb250cm9sbGVyVHlwZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDb250cm9sbGVyVHlwZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Q29udHJvbGxlclR5cGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgY29udHJvbGxlciB0eXBlLgorIFR5cGUgY2FuIGJlICdjbGFzc25hbWUnLCAndXJsJy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5Db250cm9sbGVyIHR5cGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDb250cm9sbGVyTmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDb250cm9sbGVyTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Q29udHJvbGxlck5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgY29udHJvbGxlciBuYW1lLgorIE5hbWUgZGVub3RlcyBhIGZ1bGx5IHF1YWxpZmllZCBjbGFzc25hbWUsIG9yIGFuIHVybC4KKyBFeGFjdCB0eXBlIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRDb250cm9sbGVyVHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PENPREU+c2V0Q29udHJvbGxlclR5cGUoamF2YS5sYW5nLlN0cmluZyk8L0NPREU+PC9BPi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5Db250cm9sbGVyIG5hbWUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb250cm9sbGVyVHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Q29udHJvbGxlclR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbnRyb2xsZXJUeXBlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udHJvbGxlclR5cGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciB0eXBlLgorIFR5cGUgZGVub3RlcyBhIGZ1bGx5IHF1YWxpZmllZCBjbGFzc25hbWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbnRyb2xsZXJUeXBlPC9DT0RFPiAtIFR5cGUgb2YgYXNzb2NpYXRlZCBjb250cm9sbGVyLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Q29udHJvbGxlcihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Q29udHJvbGxlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Q29udHJvbGxlcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRyb2xsZXIpPC9QUkU+Cis8REw+Cis8REQ+U2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciBuYW1lLgorIE5hbWUgZGVub3RlcyBhIGZ1bGx5IHF1YWxpZmllZCBjbGFzc25hbWUsIG9yIGFuIHVybC4KKyBFeGFjdCB0eXBlIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRDb250cm9sbGVyVHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PENPREU+c2V0Q29udHJvbGxlclR5cGUoamF2YS5sYW5nLlN0cmluZyk8L0NPREU+PC9BPi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29udHJvbGxlcjwvQ09ERT4gLSBDb250cm9sbGVyIGNsYXNzbmFtZSBvciB1cmwuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb250cm9sbGVyTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Q29udHJvbGxlck5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbnRyb2xsZXJOYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udHJvbGxlcik8L1BSRT4KKzxETD4KKzxERD5TZXQgYXNzb2NpYXRlZCBjb250cm9sbGVyIG5hbWUuCisgTmFtZSBkZW5vdGUgYSBmdWxseSBxdWFsaWZpZWQgY2xhc3NuYW1lLCBvciBhbiB1cmwuCisgRXhhY3QgdHlwZSBjYW4gYmUgc3BlY2lmaWVkIHdpdGggc2V0Q29udHJvbGxlclR5cGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbnRyb2xsZXI8L0NPREU+IC0gQ29udHJvbGxlciBjbGFzc25hbWUgb3IgdXJsPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb250cm9sbGVyVXJsKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb250cm9sbGVyVXJsPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDb250cm9sbGVyVXJsPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udHJvbGxlcik8L1BSRT4KKzxETD4KKzxERD5TZXQgYXNzb2NpYXRlZCBjb250cm9sbGVyIG5hbWUgYXMgYW4gdXJsLCBhbmQgY29udHJvbGxlcgorIHR5cGUgYXMgInVybCIuCisgTmFtZSBtdXN0IGJlIGFuIHVybCAobm90IGNoZWNrZWQpLgorIENvbnZlbmllbmNlIG1ldGhvZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29udHJvbGxlcjwvQ09ERT4gLSBDb250cm9sbGVyIHVybDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Q29udHJvbGxlckNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb250cm9sbGVyQ2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbnRyb2xsZXJDbGFzczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRyb2xsZXIpPC9QUkU+Cis8REw+Cis8REQ+U2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciBuYW1lIGFzIGEgY2xhc3N0eXBlIGFuZCBjb250cm9sbGVyCisgdHlwZSBhcyAiY2xhc3NuYW1lIi4KKyBOYW1lIGRlbm90ZXMgYSBmdWxseSBxdWFsaWZpZWQgY2xhc3NuYW1lLgorIENvbnZlbmllbmNlIG1ldGhvZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29udHJvbGxlcjwvQ09ERT4gLSBDb250cm9sbGVyIGNsYXNzbmFtZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJvbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Um9sZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Um9sZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCBhc3NvY2lhdGVkIHJvbGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QXNzb2NpYXRlZCByb2xlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Um9sZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Um9sZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3JvbGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IGFzc29jaWF0ZWQgcm9sZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cm9sZTwvQ09ERT4gLSBBc3NvY2lhdGVkIHJvbGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYWdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHBhZ2UuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhZ2U8L0NPREU+IC0gUGFnZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhZ2UoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFnZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFnZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgcGFnZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5QYWdlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VGVtcGxhdGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VGVtcGxhdGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFRlbXBsYXRlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSB0ZW1wbGF0ZS4KKyBTYW1lIGFzIGdldFBhZ2UoKS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UZW1wbGF0ZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFRlbXBsYXRlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRUZW1wbGF0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VGVtcGxhdGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0ZW1wbGF0ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHRlbXBsYXRlLgorIFNhbWUgYXMgc2V0UGFnZSgpLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT50ZW1wbGF0ZTwvQ09ERT4gLSBUZW1wbGF0ZS48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWVhOWI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbApAQCAtMCwwICsxLDU5NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0dldEF0dHJpYnV0ZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkdldEF0dHJpYnV0ZVRhZyxHZXRBdHRyaWJ1dGVUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkdldEF0dHJpYnV0ZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9HZXRBdHRyaWJ1dGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iR2V0QXR0cmlidXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBHZXRBdHRyaWJ1dGVUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5HZXRBdHRyaWJ1dGVUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPkNvbXBvbmVudENvbnN0YW50czwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkdldEF0dHJpYnV0ZVRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPjwvREw+CisKKzxQPgorUmV0cmlldmUgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgY29tcG9uZW50L3RlbXBsYXRlIGF0dHJpYnV0ZSBwcm9wZXJ0eSwKKyBhbmQgcmVuZGVyIGl0IHRvIHRoZSBjdXJyZW50IEpzcFdyaXRlciBhcyBhIFN0cmluZy4KKyBUaGUgdXN1YWwgdG9TdHJpbmcoKSBjb252ZXJzaW9uIGlzIGFwcGxpZWQgb24gdGhlIGZvdW5kIHZhbHVlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkdldEF0dHJpYnV0ZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0QXR0cmlidXRlVGFnLmh0bWwjYXR0cmlidXRlIj5hdHRyaWJ1dGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0QXR0cmlidXRlVGFnLmh0bWwjaXNFcnJvcklnbm9yZWQiPmlzRXJyb3JJZ25vcmVkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RvIHdlIGlnbm9yZSBlcnJvciBpZiBhdHRyaWJ1dGUgaXMgbm90IGZvdW5kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sI3JvbGUiPnJvbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Um9sZSBhdHRyaWJ1dGU8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5Db21wb25lbnRDb25zdGFudHMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPkNvbXBvbmVudENvbnN0YW50czwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjQ09NUE9ORU5UX0NPTlRFWFQiPkNPTVBPTkVOVF9DT05URVhUPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sI0NPTVBPTkVOVF9TQ09QRSI+Q09NUE9ORU5UX1NDT1BFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sI0VYQ0VQVElPTl9LRVkiPkVYQ0VQVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjTE9DQUxFX0tFWSI+TE9DQUxFX0tFWTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCNHZXRBdHRyaWJ1dGVUYWcoKSI+R2V0QXR0cmlidXRlVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGVmYXVsdCBjb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xvc2UgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCNnZXRBdHRyaWJ1dGUoKSI+Z2V0QXR0cmlidXRlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0QXR0cmlidXRlVGFnLmh0bWwjZ2V0SWdub3JlKCkiPmdldElnbm9yZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBpZ25vcmUgZmxhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0QXR0cmlidXRlVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IE5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCByb2xlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCNzZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPnNldEF0dHJpYnV0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthdHRyaWJ1dGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCNzZXRJZ25vcmUoYm9vbGVhbikiPnNldElnbm9yZTwvQT48L0I+KGJvb2xlYW4mbmJzcDtpZ25vcmUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgaWdub3JpbmcgZmxhZyB3aGVuIGF0dHJpYnV0ZSBpcyBub3QgZm91bmQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgTmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0QXR0cmlidXRlVGFnLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHJvbGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb1N0YXJ0VGFnLCBmaW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJhdHRyaWJ1dGUiPjwhLS0gLS0+PC9BPjxIMz4KK2F0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPmF0dHJpYnV0ZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyb2xlIj48IS0tIC0tPjwvQT48SDM+Cityb2xlPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+cm9sZTwvQj48L1BSRT4KKzxETD4KKzxERD5Sb2xlIGF0dHJpYnV0ZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNFcnJvcklnbm9yZWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lzRXJyb3JJZ25vcmVkPC9IMz4KKzxQUkU+Citwcml2YXRlIGJvb2xlYW4gPEI+aXNFcnJvcklnbm9yZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+RG8gd2UgaWdub3JlIGVycm9yIGlmIGF0dHJpYnV0ZSBpcyBub3QgZm91bmQuCisgRGVmYXVsdCB2YWx1ZSBpcyA8Y29kZT5mYWxzZTwvY29kZT4sIHdoaWNoIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkdldEF0dHJpYnV0ZVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitHZXRBdHRyaWJ1dGVUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5HZXRBdHRyaWJ1dGVUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5EZWZhdWx0IGNvbnN0cnVjdG9yLgorPFA+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QXR0cmlidXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBdHRyaWJ1dGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthdHRyaWJ1dGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IGF0dHJpYnV0ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YXR0cmlidXRlPC9DT0RFPiAtIEF0dHJpYnV0ZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEF0dHJpYnV0ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEF0dHJpYnV0ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCBhdHRyaWJ1dGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QXR0cmlidXRlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCBOYW1lLgorIFNhbWUgYXMgc2V0QXR0cmlidXRlKCkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIEF0dHJpYnV0ZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCBOYW1lLgorIFNldCBhcyBnZXRBdHRyaWJ1dGUoKS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5BdHRyaWJ1dGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJZ25vcmUoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElnbm9yZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SWdub3JlPC9CPihib29sZWFuJm5ic3A7aWdub3JlKTwvUFJFPgorPERMPgorPEREPlNldCBpZ25vcmluZyBmbGFnIHdoZW4gYXR0cmlidXRlIGlzIG5vdCBmb3VuZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aWdub3JlPC9DT0RFPiAtIGRlZmF1bHQ6IDxjb2RlPmZhbHNlPC9jb2RlPjogRXhjZXB0aW9uIGlzIHRocm93biB3aGVuIGF0dHJpYnV0ZSBpcyBub3QgZm91bmQsIHNldCB0byA8Y29kZT4KKyB0cnVlPC9jb2RlPiB0byBpZ25vcmUgbWlzc2luZyBhdHRyaWJ1dGVzIHNpbGVudGx5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJZ25vcmUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SWdub3JlPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRJZ25vcmU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgaWdub3JlIGZsYWcuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+PGNvZGU+ZmFsc2U8L2NvZGU+OiBFeGNlcHRpb24gaXMgdGhyb3duIHdoZW4gYXR0cmlidXRlIGlzIG5vdCBmb3VuZCwgc2V0IHRvIDxjb2RlPgorIHRydWU8L2NvZGU+IHRvIGlnbm9yZSBtaXNzaW5nIGF0dHJpYnV0ZXMgc2lsZW50bHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFJvbGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFJvbGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvUFJFPgorPERMPgorPEREPlNldCByb2xlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yb2xlPC9DT0RFPiAtIFRoZSByb2xlIHRoZSB1c2VyIG11c3QgYmUgaW4gdG8gc3RvcmUgY29udGVudC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJvbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Um9sZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Um9sZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCByb2xlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlJvbGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5DbG9zZSB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gT24gZXJyb3IgcHJvY2Vzc2luZyB0YWcuPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9HZXRBdHRyaWJ1dGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iR2V0QXR0cmlidXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdiOTBlYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0VGFnLmh0bWwKQEAgLTAsMCArMSwzNjcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDEgRURUIDIwMDMgLS0+Cis8VElUTEU+CitHZXRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5HZXRUYWcsR2V0VGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJHZXRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvR2V0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJHZXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwOzxBIEhSRUY9IiNuZXN0ZWRfY2xhc3Nlc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW5zZXJ0VGFnIj5ORVNURUQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluc2VydFRhZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9GT05UPgorPEJSPgorQ2xhc3MgR2V0VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkRlZmluaXRpb25UYWdTdXBwb3J0PC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluc2VydFRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuR2V0VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj5QdXRMaXN0VGFnUGFyZW50PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5odG1sIj5QdXRUYWdQYXJlbnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5HZXRUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+PC9ETD4KKworPFA+CitUaGlzIGlzIHRoZSB0YWcgaGFuZGxlciBmb3IgJmx0O3RpbGVzOmdldCZndDssIHdoaWNoIGdldHMKKyBjb250ZW50IGZyb20gdGhlIHJlcXVlc3Qgc2NvcGUgYW5kIGVpdGhlciBpbmNsdWRlcyB0aGUgY29udGVudCBvciBwcmludHMKKyBpdCwgZGVwZW5kaW5nIHVwb24gdGhlIHZhbHVlIG9mIHRoZSBjb250ZW50J3MgPGNvZGU+ZGlyZWN0PC9jb2RlPiBhdHRyaWJ1dGUuCisKKyBUaGlzIHRhZyBpcyBpbnRlbmRlZCB0byBiZSBjb21wYXRpYmxlIHdpdGggdGhlIHNhbWUgdGFnIGZyb20gVGVtcGxhdGVzIChEYXZpZCBHZWFyeSkuCisgSW1wbGVtZW50YXRpb24gZXh0ZW5kcyBJbnNlcnRUYWcgZm9yIGZhY2lsaXR5IChubyBzbyB3ZWxsKS4KKyBUaGUgb25seSBkaWZmZXJlbmNlIGlzIHRoZSBkZWZhdWx0IHZhbHVlIG9mIGF0dHJpYnV0ZSAnaWdub3JlJywgd2hpY2ggaXMgPGNvZGU+dHJ1ZTwvY29kZT4KKyBmb3IgdGhpcyB0YWcgKGRlZmF1bHQgYmVoYXZpb3Igb2YgRGF2aWQgR2VhcnkncyB0ZW1wbGF0ZXMpLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkdldFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0ibmVzdGVkX2NsYXNzX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TmVzdGVkIENsYXNzIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im5lc3RlZF9jbGFzc2VzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbnNlcnRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5OZXN0ZWQgY2xhc3NlcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5JbnNlcnRIYW5kbGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluc2VydFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2JlYW5OYW1lIj5iZWFuTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNiZWFuUHJvcGVydHkiPmJlYW5Qcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNiZWFuU2NvcGUiPmJlYW5TY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNjYWNoZWRDdXJyZW50Q29udGV4dCI+Y2FjaGVkQ3VycmVudENvbnRleHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZGVmaW5pdGlvbk5hbWUiPmRlZmluaXRpb25OYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2ZsdXNoIj5mbHVzaDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNpc0Vycm9ySWdub3JlZCI+aXNFcnJvcklnbm9yZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjbG9nIj5sb2c8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjbmFtZSI+bmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwYWdlQ29udGV4dCI+cGFnZUNvbnRleHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc0VuZFRhZyI+cHJvY2Vzc0VuZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNST0xFX0RFTElNSVRFUiI+Uk9MRV9ERUxJTUlURVI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjdGFnSGFuZGxlciI+dGFnSGFuZGxlcjwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5EZWZpbml0aW9uVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPkRlZmluaXRpb25UYWdTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI2NvbnRyb2xsZXJOYW1lIj5jb250cm9sbGVyTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI2NvbnRyb2xsZXJUeXBlIj5jb250cm9sbGVyVHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3BhZ2UiPnBhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNyb2xlIj5yb2xlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkNvbXBvbmVudENvbnN0YW50cyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCNDT01QT05FTlRfQ09OVEVYVCI+Q09NUE9ORU5UX0NPTlRFWFQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjQ09NUE9ORU5UX1NDT1BFIj5DT01QT05FTlRfU0NPUEU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjRVhDRVBUSU9OX0tFWSI+RVhDRVBUSU9OX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldFRhZy5odG1sI0dldFRhZygpIj5HZXRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluc2VydFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNjcmVhdGVUYWdIYW5kbGVyKCkiPmNyZWF0ZVRhZ0hhbmRsZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZG9JbmNsdWRlKGphdmEubGFuZy5TdHJpbmcpIj5kb0luY2x1ZGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2dldEJlYW5OYW1lKCkiPmdldEJlYW5OYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2dldEJlYW5Qcm9wZXJ0eSgpIj5nZXRCZWFuUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZ2V0QmVhblNjb3BlKCkiPmdldEJlYW5TY29wZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNnZXREZWZpbml0aW9uTmFtZSgpIj5nZXREZWZpbml0aW9uTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNnZXRGbHVzaCgpIj5nZXRGbHVzaDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNnZXRJZ25vcmUoKSI+Z2V0SWdub3JlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNnZXRQYWdlQ29udGV4dCgpIj5nZXRQYWdlQ29udGV4dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzQXNEZWZpbml0aW9uT3JVUkwoamF2YS5sYW5nLlN0cmluZykiPnByb2Nlc3NBc0RlZmluaXRpb25PclVSTDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj5wcm9jZXNzQXR0cmlidXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3Byb2Nlc3NCZWFuKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5wcm9jZXNzQmVhbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzRGVmaW5pdGlvbihvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uKSI+cHJvY2Vzc0RlZmluaXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc0RlZmluaXRpb25OYW1lKGphdmEubGFuZy5TdHJpbmcpIj5wcm9jZXNzRGVmaW5pdGlvbk5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc05hbWUoamF2YS5sYW5nLlN0cmluZykiPnByb2Nlc3NOYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3Byb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dExpc3RUYWcpIj5wcm9jZXNzTmVzdGVkVGFnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3Byb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dFRhZykiPnByb2Nlc3NOZXN0ZWRUYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc09iamVjdFZhbHVlKGphdmEubGFuZy5PYmplY3QpIj5wcm9jZXNzT2JqZWN0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc1R5cGVkQXR0cmlidXRlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkF0dHJpYnV0ZURlZmluaXRpb24pIj5wcm9jZXNzVHlwZWRBdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc1VybChqYXZhLmxhbmcuU3RyaW5nKSI+cHJvY2Vzc1VybDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwdXRBdHRyaWJ1dGUob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dExpc3RUYWcpIj5wdXRBdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHV0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj5wdXRBdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcmVsZWFzZUludGVybmFsKCkiPnJlbGVhc2VJbnRlcm5hbDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPnNldEF0dHJpYnV0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXRCZWFuTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QmVhbk5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjc2V0QmVhblByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj5zZXRCZWFuUHJvcGVydHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjc2V0QmVhblNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRCZWFuU2NvcGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjc2V0Q29tcG9uZW50KGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb21wb25lbnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjc2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0RGVmaW5pdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXRGbHVzaChib29sZWFuKSI+c2V0Rmx1c2g8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjc2V0Rmx1c2goamF2YS5sYW5nLlN0cmluZykiPnNldEZsdXNoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3NldElnbm9yZShib29sZWFuKSI+c2V0SWdub3JlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3NldEluc3RhbmNlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJbnN0YW5jZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3NldFBhZ2VDb250ZXh0KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+c2V0UGFnZUNvbnRleHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjdXNlckhhc1JvbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPnVzZXJIYXNSb2xlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5EZWZpbml0aW9uVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIj5EZWZpbml0aW9uVGFnU3VwcG9ydDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNnZXRDb250cm9sbGVyTmFtZSgpIj5nZXRDb250cm9sbGVyTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI2dldENvbnRyb2xsZXJUeXBlKCkiPmdldENvbnRyb2xsZXJUeXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjZ2V0UGFnZSgpIj5nZXRQYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjZ2V0VGVtcGxhdGUoKSI+Z2V0VGVtcGxhdGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRDb250cm9sbGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb250cm9sbGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjc2V0Q29udHJvbGxlckNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb250cm9sbGVyQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRDb250cm9sbGVyTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29udHJvbGxlck5hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRDb250cm9sbGVyVHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29udHJvbGxlclR5cGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRDb250cm9sbGVyVXJsKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb250cm9sbGVyVXJsPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjc2V0UGFnZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRUZW1wbGF0ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGVtcGxhdGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmluZEFuY2VzdG9yV2l0aENsYXNzLCBnZXRJZCwgZ2V0UGFyZW50LCBnZXRWYWx1ZSwgZ2V0VmFsdWVzLCByZW1vdmVWYWx1ZSwgc2V0SWQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iR2V0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0dldFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkdldFRhZzwvQj4oKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdG9yLgorIFNldCBkZWZhdWx0IHZhbHVlIGZvciAnaXNFcnJvcklnbm9yZWQnIHRvIDxjb2RlPnRydWU8L2NvZGU+LgorPFA+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvR2V0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJHZXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwOzxBIEhSRUY9IiNuZXN0ZWRfY2xhc3Nlc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW5zZXJ0VGFnIj5ORVNURUQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluc2VydFRhZyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhYzBmNGMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sCkBAIC0wLDAgKzEsNTY3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAxIEVEVCAyMDAzIC0tPgorPFRJVExFPgorSW1wb3J0QXR0cmlidXRlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW1wb3J0QXR0cmlidXRlVGFnLEltcG9ydEF0dHJpYnV0ZVRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iSW1wb3J0QXR0cmlidXRlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luaXREZWZpbml0aW9uc1RhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBJbXBvcnRBdHRyaWJ1dGVUYWc8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydAorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbXBvcnRBdHRyaWJ1dGVUYWc8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBmaW5hbCBjbGFzcyA8Qj5JbXBvcnRBdHRyaWJ1dGVUYWc8L0I+PERUPmV4dGVuZHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0RMPgorCis8UD4KK0ltcG9ydCBhdHRyaWJ1dGUgZnJvbSBjb21wb25lbnQgdG8gcmVxdWVzdGVkIHNjb3BlLgorICBBdHRyaWJ1dGUgbmFtZSBhbmQgc2NvcGUgYXJlIG9wdGlvbmFsLiBJZiBub3Qgc3BlY2lmaWVkLCBhbGwgY29tcG9uZW50CisgIGF0dHJpYnV0ZXMgYXJlIGltcG9ydGVkIGluIHBhZ2Ugc2NvcGUuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW1wb3J0QXR0cmlidXRlVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sI2lzRXJyb3JJZ25vcmVkIj5pc0Vycm9ySWdub3JlZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBcmUgZXJyb3JzIGlnbm9yZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDbGFzcyBuYW1lIG9mIG9iamVjdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sI3Njb3BlIj5zY29wZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2NvcGUgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwjc2NvcGVOYW1lIj5zY29wZU5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNjb3BlIG5hbWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwjSW1wb3J0QXR0cmlidXRlVGFnKCkiPkltcG9ydEF0dHJpYnV0ZVRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDbGVhbiB1cCBhZnRlciBwcm9jZXNzaW5nIHRoaXMgZW51bWVyYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXhwb3NlIHRoZSByZXF1ZXN0ZWQgcHJvcGVydHkgZnJvbSBjb21wb25lbnQgY29udGV4dC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwjZ2V0SWdub3JlKCkiPmdldElnbm9yZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBpZ25vcmUgZmxhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCNnZXRTY29wZSgpIj5nZXRTY29wZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBzY29wZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwjc2V0SWdub3JlKGJvb2xlYW4pIj5zZXRJZ25vcmU8L0E+PC9CPihib29sZWFuJm5ic3A7aWdub3JlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGlnbm9yZSBmbGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sI3NldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgc2NvcGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5DbGFzcyBuYW1lIG9mIG9iamVjdC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNjb3BlTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorc2NvcGVOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+c2NvcGVOYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSBuYW1lLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2NvcGUiPjwhLS0gLS0+PC9BPjxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+Citwcml2YXRlIGludCA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgdmFsdWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc0Vycm9ySWdub3JlZCI+PCEtLSAtLT48L0E+PEgzPgoraXNFcnJvcklnbm9yZWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmlzRXJyb3JJZ25vcmVkPC9CPjwvUFJFPgorPERMPgorPEREPkFyZSBlcnJvcnMgaWdub3JlZC4gVGhpcyBpcyB0aGUgcHJvcGVydHkgZm9yIGF0dHJpYnV0ZSA8Y29kZT5pZ25vcmU8L2NvZGU+LgorIERlZmF1bHQgdmFsdWUgaXMgPGNvZGU+ZmFsc2U8L2NvZGU+LCB3aGljaCB0aHJvd3MgYW4gZXhjZXB0aW9uLgorIE9ubHkgImF0dHJpYnV0ZSBub3QgZm91bmQiIC0gZXJyb3JzIGFyZSBpZ25vcmVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkltcG9ydEF0dHJpYnV0ZVRhZygpIj48IS0tIC0tPjwvQT48SDM+CitJbXBvcnRBdHRyaWJ1dGVUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5JbXBvcnRBdHRyaWJ1dGVUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBuYW1lLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPk5hbWUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIG5hbWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gVGhlIG5ldyBuYW1lPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNjb3BlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBzY29wZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2NvcGU8L0NPREU+IC0gU2NvcGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTY29wZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0U2NvcGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgc2NvcGUuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+U2NvcGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJZ25vcmUoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElnbm9yZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SWdub3JlPC9CPihib29sZWFuJm5ic3A7aWdub3JlKTwvUFJFPgorPERMPgorPEREPlNldCBpZ25vcmUgZmxhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aWdub3JlPC9DT0RFPiAtIGRlZmF1bHQ6IDxjb2RlPmZhbHNlPC9jb2RlPjogRXhjZXB0aW9uIGlzIHRocm93biB3aGVuIGF0dHJpYnV0ZSBpcyBub3QgZm91bmQsIHNldCB0byA8Y29kZT4KKyB0cnVlPC9jb2RlPiB0byBpZ25vcmUgbWlzc2luZyBhdHRyaWJ1dGVzIHNpbGVudGx5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJZ25vcmUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SWdub3JlPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRJZ25vcmU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgaWdub3JlIGZsYWcuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+ZGVmYXVsdDogPGNvZGU+ZmFsc2U8L2NvZGU+OiBFeGNlcHRpb24gaXMgdGhyb3duIHdoZW4gYXR0cmlidXRlIGlzIG5vdCBmb3VuZCwgc2V0IHRvIDxjb2RlPgorIHRydWU8L2NvZGU+IHRvIGlnbm9yZSBtaXNzaW5nIGF0dHJpYnV0ZXMgc2lsZW50bHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RXhwb3NlIHRoZSByZXF1ZXN0ZWQgcHJvcGVydHkgZnJvbSBjb21wb25lbnQgY29udGV4dC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gT24gZXJyb3JzIHByb2Nlc3NpbmcgdGFnLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q2xlYW4gdXAgYWZ0ZXIgcHJvY2Vzc2luZyB0aGlzIGVudW1lcmF0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIE9uIGVycm9ycyBwcm9jZXNzaW5nIHRhZy48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luaXREZWZpbml0aW9uc1RhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5pdERlZmluaXRpb25zVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmM4N2IwYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5pdERlZmluaXRpb25zVGFnLmh0bWwKQEAgLTAsMCArMSw0NDUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDEgRURUIDIwMDMgLS0+Cis8VElUTEU+CitJbml0RGVmaW5pdGlvbnNUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5Jbml0RGVmaW5pdGlvbnNUYWcsSW5pdERlZmluaXRpb25zVGFnIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJJbml0RGVmaW5pdGlvbnNUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvSW5pdERlZmluaXRpb25zVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbml0RGVmaW5pdGlvbnNUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIEluaXREZWZpbml0aW9uc1RhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluaXREZWZpbml0aW9uc1RhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+SW5pdERlZmluaXRpb25zVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+PC9ETD4KKworPFA+CitJbml0IGRlZmluaXRpb25zIGZhY3RvcnkuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW5pdERlZmluaXRpb25zVGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCNjbGFzc25hbWUiPmNsYXNzbmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCNmaWxlbmFtZSI+ZmlsZW5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+aWQsIHBhZ2VDb250ZXh0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQ29tcG9uZW50Q29uc3RhbnRzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sI0NPTVBPTkVOVF9DT05URVhUIj5DT01QT05FTlRfQ09OVEVYVDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCNDT01QT05FTlRfU0NPUEUiPkNPTVBPTkVOVF9TQ09QRTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCNFWENFUFRJT05fS0VZIj5FWENFUFRJT05fS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sI0xPQ0FMRV9LRVkiPkxPQ0FMRV9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX0lOQ0xVREUsIEVWQUxfUEFHRSwgU0tJUF9CT0RZLCBTS0lQX1BBR0U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5pdERlZmluaXRpb25zVGFnLmh0bWwjSW5pdERlZmluaXRpb25zVGFnKCkiPkluaXREZWZpbml0aW9uc1RhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlZmF1bHQgY29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RvIGVuZCB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5pdERlZmluaXRpb25zVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RG8gc3RhcnQgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCNzZXRDbGFzc25hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldENsYXNzbmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgY2xhc3NuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCNzZXRGaWxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGaWxlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgZmlsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImZpbGVuYW1lIj48IS0tIC0tPjwvQT48SDM+CitmaWxlbmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPmZpbGVuYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNsYXNzbmFtZSI+PCEtLSAtLT48L0E+PEgzPgorY2xhc3NuYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+Y2xhc3NuYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJJbml0RGVmaW5pdGlvbnNUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorSW5pdERlZmluaXRpb25zVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+SW5pdERlZmluaXRpb25zVGFnPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+RGVmYXVsdCBjb25zdHJ1Y3Rvci4KKzxQPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGaWxlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGaWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGaWxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgZmlsZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Q2xhc3NuYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDbGFzc25hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENsYXNzbmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzbmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgY2xhc3NuYW1lLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkRvIHN0YXJ0IHRhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9FbmRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9FbmRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9FbmRUYWc8L0I+KCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RG8gZW5kIHRhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkluaXREZWZpbml0aW9uc1RhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTZlZWYwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sCkBAIC0wLDAgKzEsMzQ3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAxIEVEVCAyMDAzIC0tPgorPFRJVExFPgorSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlcixJbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlciBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIEluc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkVuY2xvc2luZyBjbGFzczo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnByb3RlY3RlZCBjbGFzcyA8Qj5JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlcjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvREw+CisKKzxQPgorSGFuZGxlIGluc2VydCBkaXJlY3Qgc3RyaW5nLgorPFA+CisKKzxQPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO09iamVjdCB0byBwcmludCBhcyBhIGRpcmVjdCBzdHJpbmc8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sI0luc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyKGphdmEubGFuZy5PYmplY3QpIj5JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlcjwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByaW50IFN0cmluZyBpbiBwYWdlIG91dHB1dCBzdHJlYW0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEbyBub3RoaW5nLCB0aGVyZSBpcyBubyBjb250ZXh0IGZvciBhIGRpcmVjdCBzdHJpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyLmh0bWwjcHV0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj5wdXRBdHRyaWJ1dGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYXR0cmlidXRlIHRvIHN1YiBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5PYmplY3QgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+T2JqZWN0IHRvIHByaW50IGFzIGEgZGlyZWN0IHN0cmluZworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ikluc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitJbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkluc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RG8gbm90aGluZywgdGhlcmUgaXMgbm8gY29udGV4dCBmb3IgYSBkaXJlY3Qgc3RyaW5nLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InB1dEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorcHV0QXR0cmlidXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wdXRBdHRyaWJ1dGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5BZGQgYXR0cmlidXRlIHRvIHN1YiBjb250ZXh0LgorIERvIG5vdGhpbmcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwjcHV0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj5wdXRBdHRyaWJ1dGU8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByaW50IFN0cmluZyBpbiBwYWdlIG91dHB1dCBzdHJlYW0uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwjZG9FbmRUYWcoKSI+ZG9FbmRUYWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MGU3MDg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sCkBAIC0wLDAgKzEsNDc2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAxIEVEVCAyMDAzIC0tPgorPFRJVExFPgorSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcixJbnNlcnRUYWcuSW5zZXJ0SGFuZGxlciBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikluc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBJbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT48L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5FbmNsb3NpbmcgY2xhc3M6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wcm90ZWN0ZWQgY2xhc3MgPEI+SW5zZXJ0VGFnLkluc2VydEhhbmRsZXI8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT48L0RMPgorCis8UD4KK1JlYWwgaGFuZGxlciwgYWZ0ZXIgYXR0cmlidXRlIHJlc29sdXRpb24uCisgSGFuZGxlIGluY2x1ZGUgc3ViLWNvbXBvbmVudC4KKzxQPgorCis8UD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwjY29udHJvbGxlciI+Y29udHJvbGxlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwjY3VycmVudENvbnRleHQiPmN1cnJlbnRDb250ZXh0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCNwYWdlIj5wYWdlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCNyb2xlIj5yb2xlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCNzdWJDb21wQ29udGV4dCI+c3ViQ29tcENvbnRleHQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCNJbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcihqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db250cm9sbGVyKSI+SW5zZXJ0VGFnLkluc2VydEhhbmRsZXI8L0E+PC9CPihqYXZhLnV0aWwuTWFwJm5ic3A7YXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3JvbGUsCisgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+Jm5ic3A7Y29udHJvbGxlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwjSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29udHJvbGxlcikiPkluc2VydFRhZy5JbnNlcnRIYW5kbGVyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cm9sZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT4mbmJzcDtjb250cm9sbGVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5jbHVkZSByZXF1ZXN0ZWQgcGFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhIG5ldyBlbXB0eSBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCNwcm9jZXNzRXhjZXB0aW9uKGphdmEubGFuZy5UaHJvd2FibGUsIGphdmEubGFuZy5TdHJpbmcpIj5wcm9jZXNzRXhjZXB0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO2V4LAorICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bXNnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyBhbiBleGNlcHRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwjcHV0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj5wdXRBdHRyaWJ1dGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYXR0cmlidXRlIHRvIHN1YiBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icGFnZSI+PCEtLSAtLT48L0E+PEgzPgorcGFnZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGFnZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjdXJyZW50Q29udGV4dCI+PCEtLSAtLT48L0E+PEgzPgorY3VycmVudENvbnRleHQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+IDxCPmN1cnJlbnRDb250ZXh0PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InN1YkNvbXBDb250ZXh0Ij48IS0tIC0tPjwvQT48SDM+CitzdWJDb21wQ29udGV4dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4gPEI+c3ViQ29tcENvbnRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icm9sZSI+PCEtLSAtLT48L0E+PEgzPgorcm9sZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cm9sZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb250cm9sbGVyIj48IS0tIC0tPjwvQT48SDM+Citjb250cm9sbGVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPiA8Qj5jb250cm9sbGVyPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJJbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcihqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db250cm9sbGVyKSI+PCEtLSAtLT48L0E+PEgzPgorSW5zZXJ0VGFnLkluc2VydEhhbmRsZXI8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcjwvQj4oamF2YS51dGlsLk1hcCZuYnNwO2F0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3JvbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPiZuYnNwO2NvbnRyb2xsZXIpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCisgQ3JlYXRlIGluc2VydCBoYW5kbGVyIHVzaW5nIENvbXBvbmVudCBkZWZpbml0aW9uLgorPFA+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJJbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db250cm9sbGVyKSI+PCEtLSAtLT48L0E+PEgzPgorSW5zZXJ0VGFnLkluc2VydEhhbmRsZXI8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3JvbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPiZuYnNwO2NvbnRyb2xsZXIpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCisgQ3JlYXRlIGluc2VydCBoYW5kbGVyIHRvIGluc2VydCBwYWdlIGF0IHNwZWNpZmllZCBsb2NhdGlvbi4KKzxQPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgYSBuZXcgZW1wdHkgY29udGV4dC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCNkb1N0YXJ0VGFnKCkiPmRvU3RhcnRUYWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwdXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3B1dEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHV0QXR0cmlidXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGF0dHJpYnV0ZSB0byBzdWIgY29udGV4dC4KKyBEbyBub3RoaW5nLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sI3B1dEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+cHV0QXR0cmlidXRlPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5JbmNsdWRlIHJlcXVlc3RlZCBwYWdlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0V4Y2VwdGlvbihqYXZhLmxhbmcuVGhyb3dhYmxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc0V4Y2VwdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJvY2Vzc0V4Y2VwdGlvbjwvQj4oamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO2V4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bXNnKQorICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIGFuIGV4Y2VwdGlvbi4KKyBEZXBlbmRpbmcgb2YgZGVidWcgYXR0cmlidXRlLCBwcmludCBmdWxsIGV4Y2VwdGlvbiB0cmFjZSBvciBvbmx5CisgaXRzIG1lc3NhZ2UgaW4gb3V0cHV0IHBhZ2UuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmV4PC9DT0RFPiAtIEV4Y2VwdGlvbjxERD48Q09ERT5tc2c8L0NPREU+IC0gQW4gYWRkaXRpb25hbCBtZXNzYWdlIHRvIHNob3cgaW4gY29uc29sZSBhbmQgdG8gcHJvcGFnYXRlIGlmIHdlIGNhbid0IG91dHB1dCBleGNlcHRpb24uCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikluc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0Y2RhZTMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwKQEAgLTAsMCArMSwyNjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDEgRURUIDIwMDMgLS0+Cis8VElUTEU+CitJbnNlcnRUYWcuVGFnSGFuZGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluc2VydFRhZy5UYWdIYW5kbGVyLEluc2VydFRhZy5UYWdIYW5kbGVyIGludGVyZmFjZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iSW5zZXJ0VGFnLlRhZ0hhbmRsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnUGFyZW50Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9GT05UPgorPEJSPgorSW50ZXJmYWNlIEluc2VydFRhZy5UYWdIYW5kbGVyPC9IMj4KKzxETD4KKzxEVD48Qj5BbGwgS25vd24gSW1wbGVtZW50aW5nIENsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5JbnNlcnRIYW5kbGVyPC9BPjwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkVuY2xvc2luZyBpbnRlcmZhY2U6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wcm90ZWN0ZWQgc3RhdGljIGludGVyZmFjZSA8Qj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQj48L0RMPgorCis8UD4KK0lubmVyIEludGVyZmFjZS4KKyBTdWIgaGFuZGxlciBmb3IgdGFnLgorPFA+CisKKzxQPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RG8gaW5jbHVkZSBmb3IgdHlwZSBkZXBpY3RlZCBieSBpbXBsZW1lbnRhdGlvbiBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBDb21wb25lbnRDb250ZXh0IGZvciB0eXBlIGRlcGljdGVkIGJ5IGltcGxlbWVudGF0aW9uIGNsYXNzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sI3B1dEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+cHV0QXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGEgY29tcG9uZW50IHBhcmFtZXRlciAoYXR0cmlidXRlKSB0byBzdWJDb250ZXh0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgQ29tcG9uZW50Q29udGV4dCBmb3IgdHlwZSBkZXBpY3RlZCBieSBpbXBsZW1lbnRhdGlvbiBjbGFzcy4KKzxQPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkRvIGluY2x1ZGUgZm9yIHR5cGUgZGVwaWN0ZWQgYnkgaW1wbGVtZW50YXRpb24gY2xhc3MuCis8UD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwdXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3B1dEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHV0QXR0cmlidXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGEgY29tcG9uZW50IHBhcmFtZXRlciAoYXR0cmlidXRlKSB0byBzdWJDb250ZXh0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikluc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDA3NzMxOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwKQEAgLTAsMCArMSwxNzQ3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAxIEVEVCAyMDAzIC0tPgorPFRJVExFPgorSW5zZXJ0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW5zZXJ0VGFnLEluc2VydFRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iSW5zZXJ0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0luc2VydFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5pdERlZmluaXRpb25zVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbnNlcnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwOzxBIEhSRUY9IiNuZXN0ZWRfY2xhc3Nfc3VtbWFyeSI+TkVTVEVEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIEluc2VydFRhZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0CisgICAgICAgIHwKKyAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5EZWZpbml0aW9uVGFnU3VwcG9ydDwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW5zZXJ0VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj5QdXRMaXN0VGFnUGFyZW50PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5odG1sIj5QdXRUYWdQYXJlbnQ8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRUYWcuaHRtbCI+R2V0VGFnPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5JbnNlcnRUYWc8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPkRlZmluaXRpb25UYWdTdXBwb3J0PC9BPjxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWdQYXJlbnQuaHRtbCI+UHV0VGFnUGFyZW50PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj5QdXRMaXN0VGFnUGFyZW50PC9BPjwvREw+CisKKzxQPgorVGhpcyBpcyB0aGUgdGFnIGhhbmRsZXIgZm9yICZsdDt0aWxlczppbnNlcnQmZ3Q7LCB3aGljaCBpbmNsdWRlcworIGEgdGVtcGxhdGUuIFRoZSB0YWcncyBib2R5IGNvbnRlbnQgY29uc2lzdHMgb2YgJmx0O3RpbGVzOnB1dCZndDsKKyB0YWdzLCB3aGljaCBhcmUgYWNjZXNzZWQgYnkgJmx0O3RpbGVzOmdldCZndDsgaW4gdGhlIHRlbXBsYXRlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+RGF2aWQgR2VhcnksIENlZHJpYyBEdW1vdWxpbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW5zZXJ0VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJuZXN0ZWRfY2xhc3Nfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5OZXN0ZWQgQ2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SGFuZGxlIGluc2VydCBkaXJlY3Qgc3RyaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5JbnNlcnRIYW5kbGVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlYWwgaGFuZGxlciwgYWZ0ZXIgYXR0cmlidXRlIHJlc29sdXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtpbnRlcmZhY2U8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0lubmVyIEludGVyZmFjZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2F0dHJpYnV0ZSI+YXR0cmlidXRlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05hbWUgb2YgYXR0cmlidXRlIGZyb20gd2hpY2ggdG8gcmVhZCBwYWdlIG5hbWUgdG8gaW5jbHVkZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjYmVhbk5hbWUiPmJlYW5OYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05hbWUgb2YgYmVhbiB1c2VkIGFzIGVudGl0eSB0byBpbmNsdWRlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNiZWFuUHJvcGVydHkiPmJlYW5Qcm9wZXJ0eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtOYW1lIG9mIGJlYW4gcHJvcGVydHksIGlmIGFueTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjYmVhblNjb3BlIj5iZWFuU2NvcGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2NvcGUgb2YgYmVhbiwgaWYgYW55PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNjYWNoZWRDdXJyZW50Q29udGV4dCI+Y2FjaGVkQ3VycmVudENvbnRleHQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3VycmVudCBjb21wb25lbnQgY29udGV4dDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZGVmaW5pdGlvbk5hbWUiPmRlZmluaXRpb25OYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05hbWUgb2YgY29tcG9uZW50IGluc3RhbmNlIHRvIGluY2x1ZGU8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2ZsdXNoIj5mbHVzaDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGbHVzaCBhdHRyaWJ1dGUgdmFsdWU8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2lzRXJyb3JJZ25vcmVkIj5pc0Vycm9ySWdub3JlZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBcmUgZXJyb3JzIGlnbm9yZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2xvZyI+bG9nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmFtZSB0byBpbnNlcnQ8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwYWdlQ29udGV4dCI+cGFnZUNvbnRleHQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VHJpY2sgdG8gYWxsb3dzIGlubmVyIGNsYXNzZXMgdG8gYWNjZXNzIHBhZ2VDb250ZXh0PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzRW5kVGFnIj5wcm9jZXNzRW5kVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RvZXMgdGhlIGVuZCB0YWcgbmVlZCB0byBiZSBwcm9jZXNzZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI1JPTEVfREVMSU1JVEVSIj5ST0xFX0RFTElNSVRFUjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcm9sZSBkZWxpbWl0ZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCN0YWdIYW5kbGVyIj50YWdIYW5kbGVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZpbmFsZSBoYW5kbGVyIG9mIHRhZyBtZXRob2RzPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5EZWZpbml0aW9uVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPkRlZmluaXRpb25UYWdTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI2NvbnRyb2xsZXJOYW1lIj5jb250cm9sbGVyTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI2NvbnRyb2xsZXJUeXBlIj5jb250cm9sbGVyVHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3BhZ2UiPnBhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNyb2xlIj5yb2xlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkNvbXBvbmVudENvbnN0YW50cyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCNDT01QT05FTlRfQ09OVEVYVCI+Q09NUE9ORU5UX0NPTlRFWFQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjQ09NUE9ORU5UX1NDT1BFIj5DT01QT05FTlRfU0NPUEU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjRVhDRVBUSU9OX0tFWSI+RVhDRVBUSU9OX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI0luc2VydFRhZygpIj5JbnNlcnRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNjcmVhdGVUYWdIYW5kbGVyKCkiPmNyZWF0ZVRhZ0hhbmRsZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRhZyBhdHRyaWJ1dGUgYW5kIGNyZWF0ZSBjb3JyZXNwb25kaW5nIHRhZyBoYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgZW5kIHRhZyBieSBpbmNsdWRpbmcgdGhlIHRlbXBsYXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZG9JbmNsdWRlKGphdmEubGFuZy5TdHJpbmcpIj5kb0luY2x1ZGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RvIGFuIGluY2x1ZGUgb2Ygc3BlY2lmaWVkIHBhZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0aGUgc3RhcnQgdGFnIGJ5IGNoZWNraW5nIHRhZydzIGF0dHJpYnV0ZXMgYW5kIGNyZWF0aW5nIGFwcHJvcHJpYXRlIGhhbmRsZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2dldEJlYW5OYW1lKCkiPmdldEJlYW5OYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGJlYW4gbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZ2V0QmVhblByb3BlcnR5KCkiPmdldEJlYW5Qcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBiZWFuIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNnZXRCZWFuU2NvcGUoKSI+Z2V0QmVhblNjb3BlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGJlYW4gc2NvcGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZ2V0Q29udHJvbGxlcigpIj5nZXRDb250cm9sbGVyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGluc3RhbnRpYXRlZCBDb250cm9sbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2dldEN1cnJlbnRDb250ZXh0KCkiPmdldEN1cnJlbnRDb250ZXh0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGN1cnJlbnQgY29tcG9uZW50IGNvbnRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2dldERlZmluaXRpb25OYW1lKCkiPmdldERlZmluaXRpb25OYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGRlZmluaXRpb24gbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZ2V0Rmx1c2goKSI+Z2V0Rmx1c2g8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgZmx1c2guPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2dldElnbm9yZSgpIj5nZXRJZ25vcmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgaWdub3JlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2dldFBhZ2VDb250ZXh0KCkiPmdldFBhZ2VDb250ZXh0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBwYWdlQ29udGV4dCBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc0FzRGVmaW5pdGlvbk9yVVJMKGphdmEubGFuZy5TdHJpbmcpIj5wcm9jZXNzQXNEZWZpbml0aW9uT3JVUkw8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RyeSB0byBwcm9jZXNzIG5hbWUgYXMgYSBkZWZpbml0aW9uLCBvciBhcyBhbiBVUkwgaWYgbm90IGZvdW5kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj5wcm9jZXNzQXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRhZyBhdHRyaWJ1dGUgImF0dHJpYnV0ZSIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzQmVhbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+cHJvY2Vzc0JlYW48L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YmVhbk5hbWUsCisgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YmVhblByb3BlcnR5LAorICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2JlYW5TY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgYSBiZWFuLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc0RlZmluaXRpb24ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbikiPnByb2Nlc3NEZWZpbml0aW9uPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiZuYnNwO2RlZmluaXRpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFbmQgb2YgUHJvY2VzcyB0YWcgYXR0cmlidXRlICJkZWZpbml0aW9uIi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3Byb2Nlc3NEZWZpbml0aW9uTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+cHJvY2Vzc0RlZmluaXRpb25OYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRhZyBhdHRyaWJ1dGUgImRlZmluaXRpb24iLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+cHJvY2Vzc05hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0TGlzdFRhZykiPnByb2Nlc3NOZXN0ZWRUYWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj5QdXRMaXN0VGFnPC9BPiZuYnNwO25lc3RlZFRhZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgbmVzdGVkICZsZztwdXRMaXN0Jmd0OyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3Byb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dFRhZykiPnByb2Nlc3NOZXN0ZWRUYWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4mbmJzcDtuZXN0ZWRUYWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIG5lc3RlZCAmbGc7cHV0Jmd0OyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3Byb2Nlc3NPYmplY3RWYWx1ZShqYXZhLmxhbmcuT2JqZWN0KSI+cHJvY2Vzc09iamVjdFZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyBhbiBvYmplY3QgcmV0cmlldmVkIGFzIGEgYmVhbiBvciBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3Byb2Nlc3NUeXBlZEF0dHJpYnV0ZShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5BdHRyaWJ1dGVEZWZpbml0aW9uKSI+cHJvY2Vzc1R5cGVkQXR0cmlidXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sIj5BdHRyaWJ1dGVEZWZpbml0aW9uPC9BPiZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0eXBlZCBhdHRyaWJ1dGUgYWNjb3JkaW5nIHRvIGl0cyB0eXBlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzVXJsKGphdmEubGFuZy5TdHJpbmcpIj5wcm9jZXNzVXJsPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VybCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHVybC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHV0QXR0cmlidXRlKG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRMaXN0VGFnKSI+cHV0QXR0cmlidXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT4mbmJzcDtuZXN0ZWRUYWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNZXRob2QgY2FsbHMgYnkgbmVzdGVkICZsZztwdXRMaXN0Jmd0OyB0YWdzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwdXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPnB1dEF0dHJpYnV0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhIGJvZHkgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldCBtZW1iZXIgdmFsdWVzIGZvciByZXVzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3JlbGVhc2VJbnRlcm5hbCgpIj5yZWxlYXNlSW50ZXJuYWw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldCBpbnRlcm5hbCBtZW1iZXIgdmFsdWVzIGZvciByZXVzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjc2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBdHRyaWJ1dGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXRCZWFuTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QmVhbk5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgYmVhbiBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXRCZWFuUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldEJlYW5Qcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBiZWFuIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXRCZWFuU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJlYW5TY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBiZWFuIHNjb3BlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXRDb21wb25lbnQoamF2YS5sYW5nLlN0cmluZykiPnNldENvbXBvbmVudDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGNvbXBvbmVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjc2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0RGVmaW5pdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGRlZmluaXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3NldEZsdXNoKGJvb2xlYW4pIj5zZXRGbHVzaDwvQT48L0I+KGJvb2xlYW4mbmJzcDtmbHVzaCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBmbHVzaC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjc2V0Rmx1c2goamF2YS5sYW5nLlN0cmluZykiPnNldEZsdXNoPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZsdXNoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGZsdXNoLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXRJZ25vcmUoYm9vbGVhbikiPnNldElnbm9yZTwvQT48L0I+KGJvb2xlYW4mbmJzcDtpZ25vcmUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgaWdub3JlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNzZXRJbnN0YW5jZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0SW5zdGFuY2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBzZXREZWZpbml0aW9uKCkgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjc2V0UGFnZUNvbnRleHQoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj5zZXRQYWdlQ29udGV4dDwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGN1cnJlbnQgcGFnZSBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCN1c2VySGFzUm9sZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+dXNlckhhc1JvbGU8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGFyc2UgdGhlIGxpc3Qgb2Ygcm9sZXMgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBvciA8Y29kZT5mYWxzZTwvY29kZT4gYmFzZWQgb24gd2hldGhlcgorIHRoZSB1c2VyIGhhcyB0aGF0IHJvbGUgb3Igbm90LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkRlZmluaXRpb25UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPkRlZmluaXRpb25UYWdTdXBwb3J0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI2dldENvbnRyb2xsZXJOYW1lKCkiPmdldENvbnRyb2xsZXJOYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjZ2V0Q29udHJvbGxlclR5cGUoKSI+Z2V0Q29udHJvbGxlclR5cGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNnZXRQYWdlKCkiPmdldFBhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNnZXRUZW1wbGF0ZSgpIj5nZXRUZW1wbGF0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3NldENvbnRyb2xsZXIoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRyb2xsZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRDb250cm9sbGVyQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRyb2xsZXJDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3NldENvbnRyb2xsZXJOYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb250cm9sbGVyTmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3NldENvbnRyb2xsZXJUeXBlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb250cm9sbGVyVHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3NldENvbnRyb2xsZXJVcmwoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRyb2xsZXJVcmw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sI3NldFRlbXBsYXRlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUZW1wbGF0ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImxvZyI+PCEtLSAtLT48L0E+PEgzPgorbG9nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZyA8Qj5sb2c8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmx1c2giPjwhLS0gLS0+PC9BPjxIMz4KK2ZsdXNoPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5mbHVzaDwvQj48L1BSRT4KKzxETD4KKzxERD5GbHVzaCBhdHRyaWJ1dGUgdmFsdWUKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK25hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+TmFtZSB0byBpbnNlcnQKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImF0dHJpYnV0ZSI+PCEtLSAtLT48L0E+PEgzPgorYXR0cmlidXRlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5hdHRyaWJ1dGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+TmFtZSBvZiBhdHRyaWJ1dGUgZnJvbSB3aGljaCB0byByZWFkIHBhZ2UgbmFtZSB0byBpbmNsdWRlCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJiZWFuTmFtZSI+PCEtLSAtLT48L0E+PEgzPgorYmVhbk5hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmJlYW5OYW1lPC9CPjwvUFJFPgorPERMPgorPEREPk5hbWUgb2YgYmVhbiB1c2VkIGFzIGVudGl0eSB0byBpbmNsdWRlCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJiZWFuUHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK2JlYW5Qcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+YmVhblByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPk5hbWUgb2YgYmVhbiBwcm9wZXJ0eSwgaWYgYW55Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJiZWFuU2NvcGUiPjwhLS0gLS0+PC9BPjxIMz4KK2JlYW5TY29wZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+YmVhblNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlNjb3BlIG9mIGJlYW4sIGlmIGFueQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNFcnJvcklnbm9yZWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lzRXJyb3JJZ25vcmVkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5pc0Vycm9ySWdub3JlZDwvQj48L1BSRT4KKzxETD4KKzxERD5BcmUgZXJyb3JzIGlnbm9yZWQuIFRoaXMgaXMgdGhlIHByb3BlcnR5IGZvciBhdHRyaWJ1dGUgJ2lnbm9yZScuCisgRGVmYXVsdCB2YWx1ZSBpcyBmYWxzZSwgd2hpY2ggdGhyb3cgYW4gZXhjZXB0aW9uLgorIE9ubHkgJ2F0dHJpYnV0ZSBub3QgZm91bmQnIGVycm9ycyBhcmUgaWdub3JlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRlZmluaXRpb25OYW1lIj48IS0tIC0tPjwvQT48SDM+CitkZWZpbml0aW9uTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+ZGVmaW5pdGlvbk5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+TmFtZSBvZiBjb21wb25lbnQgaW5zdGFuY2UgdG8gaW5jbHVkZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0VuZFRhZyI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc0VuZFRhZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+cHJvY2Vzc0VuZFRhZzwvQj48L1BSRT4KKzxETD4KKzxERD5Eb2VzIHRoZSBlbmQgdGFnIG5lZWQgdG8gYmUgcHJvY2Vzc2VkLgorIERlZmF1bHQgdmFsdWUgaXMgdHJ1ZS4gQm9vbGVhbiBzZXQgaW4gY2FzZSBvZiBpZ25vcmVkIGVycm9ycy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNhY2hlZEN1cnJlbnRDb250ZXh0Ij48IS0tIC0tPjwvQT48SDM+CitjYWNoZWRDdXJyZW50Q29udGV4dDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4gPEI+Y2FjaGVkQ3VycmVudENvbnRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q3VycmVudCBjb21wb25lbnQgY29udGV4dAorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGFnSGFuZGxlciI+PCEtLSAtLT48L0E+PEgzPgordGFnSGFuZGxlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT4gPEI+dGFnSGFuZGxlcjwvQj48L1BSRT4KKzxETD4KKzxERD5GaW5hbGUgaGFuZGxlciBvZiB0YWcgbWV0aG9kcworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFnZUNvbnRleHQiPjwhLS0gLS0+PC9BPjxIMz4KK3BhZ2VDb250ZXh0PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQgPEI+cGFnZUNvbnRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VHJpY2sgdG8gYWxsb3dzIGlubmVyIGNsYXNzZXMgdG8gYWNjZXNzIHBhZ2VDb250ZXh0Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJST0xFX0RFTElNSVRFUiI+PCEtLSAtLT48L0E+PEgzPgorUk9MRV9ERUxJTUlURVI8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5ST0xFX0RFTElNSVRFUjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcm9sZSBkZWxpbWl0ZXIuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbnNlcnRUYWcuUk9MRV9ERUxJTUlURVIiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ikluc2VydFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitJbnNlcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5JbnNlcnRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlc2V0IG1lbWJlciB2YWx1ZXMgZm9yIHJldXNlLiBUaGlzIG1ldGhvZCBjYWxscyBzdXBlci5yZWxlYXNlKCksCisgd2hpY2ggaW52b2tlcyBUYWdTdXBwb3J0LnJlbGVhc2UoKSwgd2hpY2ggdHlwaWNhbGx5IGRvZXMgbm90aGluZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPkRlZmluaXRpb25UYWdTdXBwb3J0PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2VJbnRlcm5hbCgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlSW50ZXJuYWw8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPnJlbGVhc2VJbnRlcm5hbDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlc2V0IGludGVybmFsIG1lbWJlciB2YWx1ZXMgZm9yIHJldXNlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYWdlQ29udGV4dChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhZ2VDb250ZXh0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYWdlQ29udGV4dDwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYyk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGN1cnJlbnQgcGFnZSBjb250ZXh0LgorIENhbGxlZCBieSB0aGUgcGFnZSBpbXBsZW1lbnRhdGlvbiBwcmlvciB0byBkb1N0YXJ0VGFnKCkuCisgPHA+CisgTmVlZGVkIHRvIGFsbG93IGlubmVyIGNsYXNzZXMgdG8gYWNjZXNzIHBhZ2VDb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnNldFBhZ2VDb250ZXh0PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+c2V0UGFnZUNvbnRleHQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFnZUNvbnRleHQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFnZUNvbnRleHQ8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCA8Qj5nZXRQYWdlQ29udGV4dDwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgcGFnZUNvbnRleHQgcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IG5hbWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENvbXBvbmVudChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Q29tcG9uZW50PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDb21wb25lbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPlNldCBjb21wb25lbnQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEluc3RhbmNlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRJbnN0YW5jZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SW5zdGFuY2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBzZXREZWZpbml0aW9uKCkgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5TZXQgaW5zdGFuY2UuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldERlZmluaXRpb248L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldERlZmluaXRpb248L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPlNldCBkZWZpbml0aW9uLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXREZWZpbml0aW9uTmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZpbml0aW9uTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RGVmaW5pdGlvbk5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgZGVmaW5pdGlvbiBuYW1lLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0QXR0cmlidXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IGF0dHJpYnV0ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QmVhbk5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJlYW5OYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRCZWFuTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCBiZWFuIG5hbWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEJlYW5OYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEJlYW5OYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRCZWFuTmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCBiZWFuIG5hbWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEJlYW5Qcm9wZXJ0eShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QmVhblByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRCZWFuUHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgYmVhbiBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QmVhblByb3BlcnR5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEJlYW5Qcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QmVhblByb3BlcnR5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IGJlYW4gcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEJlYW5TY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QmVhblNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRCZWFuU2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgYmVhbiBzY29wZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QmVhblNjb3BlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEJlYW5TY29wZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QmVhblNjb3BlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IGJlYW4gc2NvcGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZsdXNoKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRGbHVzaDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Rmx1c2g8L0I+KGJvb2xlYW4mbmJzcDtmbHVzaCk8L1BSRT4KKzxETD4KKzxERD5TZXQgZmx1c2guCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZsdXNoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZsdXNoPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRGbHVzaDwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCBmbHVzaC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Rmx1c2goamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZsdXNoPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGbHVzaDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZsdXNoKTwvUFJFPgorPERMPgorPEREPlNldCBmbHVzaC4KKyBNZXRob2QgYWRkZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBKU1AxLjEKKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SWdub3JlKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRJZ25vcmU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldElnbm9yZTwvQj4oYm9vbGVhbiZuYnNwO2lnbm9yZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgaWdub3JlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJZ25vcmUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SWdub3JlPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRJZ25vcmU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgaWdub3JlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwdXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3B1dEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHV0QXR0cmlidXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGEgYm9keSBhdHRyaWJ1dGUuCisgRXJhc2UgYW55IGF0dHJpYnV0ZSB3aXRoIHNhbWUgbmFtZSBwcmV2aW91c2x5IHNldC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc05lc3RlZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJvY2Vzc05lc3RlZFRhZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+Jm5ic3A7bmVzdGVkVGFnKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIG5lc3RlZCAmbGc7cHV0Jmd0OyB0YWcuCisgTWV0aG9kIGNhbGxzIGJ5IG5lc3RlZCAmbGc7cHV0Jmd0OyB0YWdzLgorIE5lc3RlZCBsaXN0IGlzIGFkZGVkIHRvIGN1cnJlbnQgbGlzdC4KKyBJZiByb2xlIGlzIGRlZmluZWQsIGl0IGlzIGNoZWNrZWQgaW1tZWRpYXRlbHkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5odG1sI3Byb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dFRhZykiPnByb2Nlc3NOZXN0ZWRUYWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5odG1sIj5QdXRUYWdQYXJlbnQ8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmVzdGVkVGFnPC9DT0RFPiAtIE5lc3RlZCB0YWcgdG8gcHJvY2Vzcy4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzTmVzdGVkVGFnKG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRMaXN0VGFnKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc05lc3RlZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJvY2Vzc05lc3RlZFRhZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT4mbmJzcDtuZXN0ZWRUYWcpCisgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgbmVzdGVkICZsZztwdXRMaXN0Jmd0OyB0YWcuCisgTWV0aG9kIGNhbGxzIGJ5IG5lc3RlZCAmbGc7cHV0TGlzdCZndDsgdGFncy4KKyBOZXN0ZWQgbGlzdCBpcyBhZGRlZCB0byBzdWItY29tcG9uZW50IGF0dHJpYnV0ZXMKKyBJZiByb2xlIGlzIGRlZmluZWQsIGl0IGlzIGNoZWNrZWQgaW1tZWRpYXRlbHkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCNwcm9jZXNzTmVzdGVkVGFnKG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRMaXN0VGFnKSI+cHJvY2Vzc05lc3RlZFRhZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj5QdXRMaXN0VGFnUGFyZW50PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5lc3RlZFRhZzwvQ09ERT4gLSBOZXN0ZWQgUHV0VGFnIGRlZmluaW5nIHRoZSBhdHRyaWJ1dGUuCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHV0QXR0cmlidXRlKG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRMaXN0VGFnKSI+PCEtLSAtLT48L0E+PEgzPgorcHV0QXR0cmlidXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wdXRBdHRyaWJ1dGU8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+Jm5ic3A7bmVzdGVkVGFnKQorICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPk1ldGhvZCBjYWxscyBieSBuZXN0ZWQgJmxnO3B1dExpc3QmZ3Q7IHRhZ3MuCisgQSBuZXcgbGlzdCBpcyBhZGRlZCB0byBjdXJyZW50IGluc2VydCBvYmplY3QuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDdXJyZW50Q29udGV4dCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDdXJyZW50Q29udGV4dDwvSDM+Cis8UFJFPgorcHJpdmF0ZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+IDxCPmdldEN1cnJlbnRDb250ZXh0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IGN1cnJlbnQgY29tcG9uZW50IGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldENvbnRyb2xsZXIoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29udHJvbGxlcjwvSDM+Cis8UFJFPgorcHJpdmF0ZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+IDxCPmdldENvbnRyb2xsZXI8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkdldCBpbnN0YW50aWF0ZWQgQ29udHJvbGxlci4KKyBSZXR1cm4gY29udHJvbGxlciBkZW5vdGVkIGJ5IGNvbnRyb2xsZXJUeXBlLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiBjb250cm9sbGVyVHlwZQorIGlzIG51bGwuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBJZiBjb250cm9sbGVyIGNhbid0IGJlIGNyZWF0ZWQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb1N0YXJ0VGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvU3RhcnRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+ZG9TdGFydFRhZzwvQj4oKQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHN0YXJ0IHRhZyBieSBjaGVja2luZyB0YWcncyBhdHRyaWJ1dGVzIGFuZCBjcmVhdGluZyBhcHByb3ByaWF0ZSBoYW5kbGVyLgorIFBvc3NpYmxlIGhhbmRsZXJzIDoKKyA8dWw+CisgPGxpPiBVUkwKKyA8bGk+IGRlZmluaXRpb24KKyA8bGk+IGRpcmVjdCBTdHJpbmcKKyA8L3VsPgorIEhhbmRsZXJzIGFsc28gY29udGFpbiBzdWItY29tcG9uZW50IGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIGVuZCB0YWcgYnkgaW5jbHVkaW5nIHRoZSB0ZW1wbGF0ZS4KKyBTaW1wbHkgY2FsbCB0aGUgaGFuZGxlciBkb0VuZFRhZworPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNyZWF0ZVRhZ0hhbmRsZXIoKSI+PCEtLSAtLT48L0E+PEgzPgorY3JlYXRlVGFnSGFuZGxlcjwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT4gPEI+Y3JlYXRlVGFnSGFuZGxlcjwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0YWcgYXR0cmlidXRlIGFuZCBjcmVhdGUgY29ycmVzcG9uZGluZyB0YWcgaGFuZGxlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NPYmplY3RWYWx1ZShqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc09iamVjdFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPiA8Qj5wcm9jZXNzT2JqZWN0VmFsdWU8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyBhbiBvYmplY3QgcmV0cmlldmVkIGFzIGEgYmVhbiBvciBhdHRyaWJ1dGUuCisgT2JqZWN0IGNhbiBiZSBhIHR5cGVkIGF0dHJpYnV0ZSwgYSBTdHJpbmcsIG9yIGFueXRoaW5nIGVsc2UuCisgSWYgdHlwZWQgYXR0cmlidXRlLCB1c2UgYXNzb2NpYXRlZCB0eXBlLgorIE90aGVyd2lzZSwgYXBwbHkgdG9TdHJpbmcoKSBvbiBvYmplY3QsIGFuZCB1c2UgcmV0dXJuZWQgc3RyaW5nIGFzIGEgbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIC0gVGhyb3dzIGJ5IHVuZGVybHlpbmcgbmVzdGVkIGNhbGwgdG8gcHJvY2Vzc0RlZmluaXRpb25OYW1lKCk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT4gPEI+cHJvY2Vzc05hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgbmFtZS4KKyBTZWFyY2ggaW4gZm9sbG93aW5nIG9yZGVyIDoKKyA8dWw+CisgPGxpPkNvbXBvbmVudCBjb250ZXh0IC0gIGlmIGZvdW5kLCBwcm9jZXNzIGl0IGFzIHZhbHVlLjwvbGk+CisgPGxpPmRlZmluaXRpb25zIGZhY3Rvcnk8L2xpPgorIDxsaT5VUkw8L2xpPgorIDxsaT48L2xpPgorIDwvdWw+Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+YXBwcm9wcmlhdGUgdGFnIGhhbmRsZXIuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gLSBUaHJvd3MgYnkgdW5kZXJseWluZyBuZXN0ZWQgY2FsbCB0byBwcm9jZXNzRGVmaW5pdGlvbk5hbWUoKTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc1VybChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc1VybDwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT4gPEI+cHJvY2Vzc1VybDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VybCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIHVybC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIElmIGZhaWxlZCB0byBjcmVhdGUgY29udHJvbGxlcjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0RlZmluaXRpb25OYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzRGVmaW5pdGlvbk5hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+IDxCPnByb2Nlc3NEZWZpbml0aW9uTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGFnIGF0dHJpYnV0ZSAiZGVmaW5pdGlvbiIuCisgRmlyc3QsIHNlYXJjaCBkZWZpbml0aW9uIGluIHRoZSBmYWN0b3J5LCB0aGVuIGNyZWF0ZSBoYW5kbGVyIGZyb20gdGhpcyBkZWZpbml0aW9uLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIGRlZmluaXRpb24uCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkFwcHJvcHJpYXRlIFRhZ0hhbmRsZXIuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5Kc3BFeGNlcHRpb24tPC9DT0RFPiAtIE5vU3VjaERlZmluaXRpb25FeGNlcHRpb24gTm8gRGVmaW5pdGlvbiAgZm91bmQgZm9yIG5hbWUuCis8REQ+PENPREU+SnNwRXhjZXB0aW9uLTwvQ09ERT4gLSBGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24gQ2FuJ3QgZmluZCBEZWZpbml0aW9ucyBmYWN0b3J5LgorPEREPjxDT0RFPkpzcEV4Y2VwdGlvbi08L0NPREU+IC0gRGVmaW5lZENvbXBvbmVudEZhY3RvcnlFeGNlcHRpb24gR2VuZXJhbCBlcnJvciBpbiBmYWN0b3J5LgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBJbnN0YW50aWF0aW9uRXhjZXB0aW9uIENhbid0IGNyZWF0ZSByZXF1ZXN0ZWQgY29udHJvbGxlcjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0RlZmluaXRpb24ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbikiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NEZWZpbml0aW9uPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPiA8Qj5wcm9jZXNzRGVmaW5pdGlvbjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiZuYnNwO2RlZmluaXRpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RW5kIG9mIFByb2Nlc3MgdGFnIGF0dHJpYnV0ZSAiZGVmaW5pdGlvbiIuCisgT3ZlcmxvYWQgZGVmaW5pdGlvbiB3aXRoIHRhZyBhdHRyaWJ1dGVzICJ0ZW1wbGF0ZSIgYW5kICJyb2xlIi4KKyBUaGVuLCBjcmVhdGUgYXBwcm9wcmlhdGUgdGFnIGhhbmRsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRlZmluaXRpb248L0NPREU+IC0gRGVmaW5pdGlvbiB0byBwcm9jZXNzLgorPERUPjxCPlJldHVybnM6PC9CPjxERD5BcHByb3ByaWF0ZSBUYWdIYW5kbGVyLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIEluc3RhbnRpYXRpb25FeGNlcHRpb24gQ2FuJ3QgY3JlYXRlIHJlcXVlc3RlZCBjb250cm9sbGVyPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzQmVhbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc0JlYW48L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+IDxCPnByb2Nlc3NCZWFuPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YmVhbk5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2JlYW5Qcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YmVhblNjb3BlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgYSBiZWFuLgorIEdldCBiZWFuIHZhbHVlLCBldmVudHVhbGx5IHVzaW5nIHByb3BlcnR5IGFuZCBzY29wZS4gRm91bmQgdmFsdWUgaXMgcHJvY2VzcyBieSBwcm9jZXNzT2JqZWN0VmFsdWUoKS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbk5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgYmVhbjxERD48Q09ERT5iZWFuUHJvcGVydHk8L0NPREU+IC0gUHJvcGVydHkgaW4gdGhlIGJlYW4sIG9yIG51bGwuPEREPjxDT0RFPmJlYW5TY29wZTwvQ09ERT4gLSBiZWFuIHNjb3BlLCBvciBudWxsLgorPERUPjxCPlJldHVybnM6PC9CPjxERD5BcHByb3ByaWF0ZSBUYWdIYW5kbGVyLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIC0gTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbiBObyB2YWx1ZSBhc3NvY2lhdGVkIHRvIGJlYW4uCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGFuIGVycm9yIG9jY3VyIHdoaWxlIHJlYWRpbmcgYmVhbiwgb3Igbm8gZGVmaW5pdGlvbiBmb3VuZC4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gLSBUaHJvd3MgYnkgdW5kZXJseWluZyBuZXN0ZWQgY2FsbCB0byBwcm9jZXNzRGVmaW5pdGlvbk5hbWUoKTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0F0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc0F0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT4gPEI+cHJvY2Vzc0F0dHJpYnV0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHRhZyBhdHRyaWJ1dGUgImF0dHJpYnV0ZSIuCisgR2V0IHZhbHVlIGZyb20gY29tcG9uZW50IGF0dHJpYnV0ZS4KKyBGb3VuZCB2YWx1ZSBpcyBwcm9jZXNzIGJ5IHByb2Nlc3NPYmplY3RWYWx1ZSgpLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZS4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QXBwcm9wcmlhdGUgVGFnSGFuZGxlci4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSAtIE5vU3VjaERlZmluaXRpb25FeGNlcHRpb24gTm8gRGVmaW5pdGlvbiAgZm91bmQgZm9yIG5hbWUuCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIC0gVGhyb3dzIGJ5IHVuZGVybHlpbmcgbmVzdGVkIGNhbGwgdG8gcHJvY2Vzc0RlZmluaXRpb25OYW1lKCk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NBc0RlZmluaXRpb25PclVSTChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc0FzRGVmaW5pdGlvbk9yVVJMPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPiA8Qj5wcm9jZXNzQXNEZWZpbml0aW9uT3JVUkw8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5UcnkgdG8gcHJvY2VzcyBuYW1lIGFzIGEgZGVmaW5pdGlvbiwgb3IgYXMgYW4gVVJMIGlmIG5vdCBmb3VuZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIHRvIHByb2Nlc3MuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmFwcHJvcHJpYXRlIFRhZ0hhbmRsZXIKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBJbnN0YW50aWF0aW9uRXhjZXB0aW9uIENhbid0IGNyZWF0ZSByZXF1ZXN0ZWQgY29udHJvbGxlcjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc1R5cGVkQXR0cmlidXRlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkF0dHJpYnV0ZURlZmluaXRpb24pIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzVHlwZWRBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+IDxCPnByb2Nlc3NUeXBlZEF0dHJpYnV0ZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sIj5BdHRyaWJ1dGVEZWZpbml0aW9uPC9BPiZuYnNwO3ZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIHR5cGVkIGF0dHJpYnV0ZSBhY2NvcmRpbmcgdG8gaXRzIHR5cGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFR5cGVkIGF0dHJpYnV0ZSB0byBwcm9jZXNzLgorPERUPjxCPlJldHVybnM6PC9CPjxERD5hcHByb3ByaWF0ZSBUYWdIYW5kbGVyLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIC0gVGhyb3dzIGJ5IHVuZGVybHlpbmcgbmVzdGVkIGNhbGwgdG8gcHJvY2Vzc0RlZmluaXRpb25OYW1lKCk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvSW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZG9JbmNsdWRlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5kb0luY2x1ZGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlKQorICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RG8gYW4gaW5jbHVkZSBvZiBzcGVjaWZpZWQgcGFnZS4KKyBUaGlzIG1ldGhvZCBpcyB1c2VkIGludGVybmFsbHkgdG8gZG8gYWxsIGluY2x1ZGVzIGZyb20gdGhpcyBjbGFzcy4gSXQgZGVsZWdhdGVzCisgdGhlIGluY2x1ZGUgY2FsbCB0byB0aGUgVGlsZXNVdGlsLmRvSW5jbHVkZSgpLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlPC9DT0RFPiAtIFRoZSBwYWdlIHRoYXQgd2lsbCBiZSBpbmNsdWRlZAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIC0gVGhyb3duIGJ5IGNhbGwgdG8gcGFnZUNvbnRleHQuaW5jbHVkZSgpCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSAtIFRocm93biBieSBjYWxsIHRvIHBhZ2VDb250ZXh0LmluY2x1ZGUoKTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idXNlckhhc1JvbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3VzZXJIYXNSb2xlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGJvb2xlYW4gPEI+dXNlckhhc1JvbGU8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvUFJFPgorPERMPgorPEREPlBhcnNlIHRoZSBsaXN0IG9mIHJvbGVzIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gb3IgPGNvZGU+ZmFsc2U8L2NvZGU+IGJhc2VkIG9uIHdoZXRoZXIKKyB0aGUgdXNlciBoYXMgdGhhdCByb2xlIG9yIG5vdC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cm9sZTwvQ09ERT4gLSBDb21tYS1kZWxpbWl0ZWQgbGlzdCBvZiByb2xlcy48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgcmVxdWVzdC48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0luc2VydFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5pdERlZmluaXRpb25zVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbnNlcnRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwOzxBIEhSRUY9IiNuZXN0ZWRfY2xhc3Nfc3VtbWFyeSI+TkVTVEVEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNWFlY2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbApAQCAtMCwwICsxLDY3NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1B1dExpc3RUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRMaXN0VGFnLFB1dExpc3RUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlB1dExpc3RUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUHV0TGlzdFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQdXRMaXN0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBQdXRMaXN0VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0TGlzdFRhZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWdQYXJlbnQuaHRtbCI+QWRkVGFnUGFyZW50PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj5QdXRMaXN0VGFnUGFyZW50PC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UHV0TGlzdFRhZzwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZ1BhcmVudC5odG1sIj5BZGRUYWdQYXJlbnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj5QdXRMaXN0VGFnUGFyZW50PC9BPjwvREw+CisKKzxQPgorUHV0TGlzdCB0YWcgaW1wbGVtZW50YXRpb24uCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0TGlzdFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sI2F0dHJpYnV0ZU5hbWUiPmF0dHJpYnV0ZU5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmFtZSBvZiB0aGlzIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLnV0aWwuTGlzdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sI2xpc3QiPmxpc3Q8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGxpc3QgaXRzZWxmLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNyb2xlIj5yb2xlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JvbGUgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkNvbXBvbmVudENvbnN0YW50cyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCNDT01QT05FTlRfQ09OVEVYVCI+Q09NUE9ORU5UX0NPTlRFWFQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjQ09NUE9ORU5UX1NDT1BFIj5DT01QT05FTlRfU0NPUEU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjRVhDRVBUSU9OX0tFWSI+RVhDRVBUSU9OX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNQdXRMaXN0VGFnKCkiPlB1dExpc3RUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWZhdWx0IGNvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNhZGRFbGVtZW50KGphdmEubGFuZy5PYmplY3QpIj5hZGRFbGVtZW50PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RvIGVuZCB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RvIHN0YXJ0IHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnUGFyZW50Lmh0bWwiPlB1dExpc3RUYWdQYXJlbnQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwjZmluZEVuY2xvc2luZ1BhcmVudCgpIj5maW5kRW5jbG9zaW5nUGFyZW50PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RmluZCBlbmNsb3NpbmcgcGFyZW50IHRhZyBhY2NlcHRpbmcgdGhpcyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5MaXN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwjZ2V0TGlzdCgpIj5nZXRMaXN0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGxpc3QgZGVmaW5lZCBpbiB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgcm9sZSBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNwcm9jZXNzTmVzdGVkVGFnKG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5BZGRUYWcpIj5wcm9jZXNzTmVzdGVkVGFnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZy5odG1sIj5BZGRUYWc8L0E+Jm5ic3A7bmVzdGVkVGFnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyBuZXN0ZWQgJmxnO2FkZCZndDsgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0TGlzdFRhZykiPnByb2Nlc3NOZXN0ZWRUYWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj5QdXRMaXN0VGFnPC9BPiZuYnNwO25lc3RlZFRhZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgbmVzdGVkICZsZztwdXRMaXN0Jmd0OyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sI3JlbGVhc2VJbnRlcm5hbCgpIj5yZWxlYXNlSW50ZXJuYWw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxlYXNlIGFsbCBpbnRlcm5hbCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3JvbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgcm9sZSBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJhdHRyaWJ1dGVOYW1lIj48IS0tIC0tPjwvQT48SDM+CithdHRyaWJ1dGVOYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+YXR0cmlidXRlTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5OYW1lIG9mIHRoaXMgYXR0cmlidXRlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGlzdCI+PCEtLSAtLT48L0E+PEgzPgorbGlzdDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLnV0aWwuTGlzdCA8Qj5saXN0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsaXN0IGl0c2VsZi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJvbGUiPjwhLS0gLS0+PC9BPjxIMz4KK3JvbGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5yb2xlPC9CPjwvUFJFPgorPERMPgorPEREPlJvbGUgYXR0cmlidXRlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlB1dExpc3RUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorUHV0TGlzdFRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlB1dExpc3RUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5EZWZhdWx0IGNvbnN0cnVjdG9yLgorPFA+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbGVhc2VJbnRlcm5hbCgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlSW50ZXJuYWw8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPnJlbGVhc2VJbnRlcm5hbDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlbGVhc2UgYWxsIGludGVybmFsIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFJvbGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFJvbGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvUFJFPgorPERMPgorPEREPlNldCByb2xlIGF0dHJpYnV0ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cm9sZTwvQ09ERT4gLSBUaGUgcm9sZSB0aGUgdXNlciBtdXN0IGJlIGluIHRvIHN0b3JlIGNvbnRlbnQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSb2xlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJvbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFJvbGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgcm9sZSBhdHRyaWJ1dGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExpc3QoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TGlzdDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5MaXN0IDxCPmdldExpc3Q8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgbGlzdCBkZWZpbmVkIGluIHRhZy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkRWxlbWVudChqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorYWRkRWxlbWVudDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+YWRkRWxlbWVudDwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0TGlzdFRhZykiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NOZXN0ZWRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByb2Nlc3NOZXN0ZWRUYWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+Jm5ic3A7bmVzdGVkVGFnKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qcm9jZXNzIG5lc3RlZCAmbGc7cHV0TGlzdCZndDsgdGFnLgorIE1ldGhvZCBjYWxscyBieSBuZXN0ZWQgJmxnO3B1dExpc3QmZ3Q7IHRhZ3MuCisgTmVzdGVkIGxpc3QgaXMgYWRkZWQgdG8gY3VycmVudCBsaXN0LgorIElmIHJvbGUgaXMgZGVmaW5lZCwgbmVzdGVkIGF0dHJpYnV0ZSBpcyB3cmFwcGVkIGludG8gYW4gdW50eXBwZWQgZGVmaW5pdGlvbgorIGNvbnRhaW5pbmcgYXR0cmlidXRlIHZhbHVlIGFuZCByb2xlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnUGFyZW50Lmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0TGlzdFRhZykiPnByb2Nlc3NOZXN0ZWRUYWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCI+UHV0TGlzdFRhZ1BhcmVudDwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uZXN0ZWRUYWc8L0NPREU+IC0gTmVzdGVkIFB1dFRhZyBkZWZpbmluZyB0aGUgYXR0cmlidXRlLgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkFkZFRhZykiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NOZXN0ZWRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByb2Nlc3NOZXN0ZWRUYWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWcuaHRtbCI+QWRkVGFnPC9BPiZuYnNwO25lc3RlZFRhZykKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyBuZXN0ZWQgJmxnO2FkZCZndDsgdGFnLgorIE1ldGhvZCBjYWxscyBieSBuZXN0ZWQgJmxnO2FkZCZndDsgdGFncy4KKyBOZXN0ZWQgYXR0cmlidXRlIGlzIGFkZGVkIHRvIGN1cnJlbnQgbGlzdC4KKyBJZiByb2xlIGlzIGRlZmluZWQsIG5lc3RlZCBhdHRyaWJ1dGUgaXMgd3JhcHBlZCBpbnRvIGFuIHVudHlwcGVkIGRlZmluaXRpb24KKyBjb250YWluaW5nIGF0dHJpYnV0ZSB2YWx1ZSBhbmQgcm9sZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50Lmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQWRkVGFnKSI+cHJvY2Vzc05lc3RlZFRhZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50Lmh0bWwiPkFkZFRhZ1BhcmVudDwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uZXN0ZWRUYWc8L0NPREU+IC0gTmVzdGVkIHRvIHByb2Nlc3MuCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5EbyBzdGFydCB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkRvIGVuZCB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZEVuY2xvc2luZ1BhcmVudCgpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kRW5jbG9zaW5nUGFyZW50PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCI+UHV0TGlzdFRhZ1BhcmVudDwvQT4gPEI+ZmluZEVuY2xvc2luZ1BhcmVudDwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5GaW5kIGVuY2xvc2luZyBwYXJlbnQgdGFnIGFjY2VwdGluZyB0aGlzIHRhZy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIElmIHdlIGNhbid0IGZpbmQgYW4gYXBwcm9wcmlhdGUgZW5jbG9zaW5nIHRhZy48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1B1dExpc3RUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHV0TGlzdFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnUGFyZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2VlYzYwYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sCkBAIC0wLDAgKzEsMjEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAxIEVEVCAyMDAzIC0tPgorPFRJVExFPgorUHV0TGlzdFRhZ1BhcmVudCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dExpc3RUYWdQYXJlbnQsUHV0TGlzdFRhZ1BhcmVudCBpbnRlcmZhY2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlB1dExpc3RUYWdQYXJlbnQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnUGFyZW50Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQdXRMaXN0VGFnUGFyZW50Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0ZPTlQ+Cis8QlI+CitJbnRlcmZhY2UgUHV0TGlzdFRhZ1BhcmVudDwvSDI+Cis8REw+Cis8RFQ+PEI+QWxsIEtub3duIEltcGxlbWVudGluZyBDbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPkRlZmluaXRpb25UYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGludGVyZmFjZSA8Qj5QdXRMaXN0VGFnUGFyZW50PC9CPjwvREw+CisKKzxQPgorVGFnIGNsYXNzZXMgaW1wbGVtZW50aW5nIHRoaXMgaW50ZXJmYWNlIGNhbiBjb250YWlucyBuZXN0ZWQgUHV0VGFnLgorIFRoaXMgaW50ZXJmYWNlIGRlZmluZXMgYSBtZXRob2QgY2FsbGVkIGJ5IG5lc3RlZCB0YWdzLgorPFA+CisKKzxQPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sI3Byb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dExpc3RUYWcpIj5wcm9jZXNzTmVzdGVkVGFnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT4mbmJzcDtuZXN0ZWRUYWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYW4gYXR0cmlidXRlIHRvIGNvbnRhaW5lci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InByb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dExpc3RUYWcpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzTmVzdGVkVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcm9jZXNzTmVzdGVkVGFnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj5QdXRMaXN0VGFnPC9BPiZuYnNwO25lc3RlZFRhZykKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+QWRkIGFuIGF0dHJpYnV0ZSB0byBjb250YWluZXIuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5lc3RlZFRhZzwvQ09ERT4gLSBOZXN0ZWQgUHV0VGFnIGRlZmluaW5nIHRoZSBhdHRyaWJ1dGUuCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnUGFyZW50Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQdXRMaXN0VGFnUGFyZW50Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmViNDMyMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwKQEAgLTAsMCArMSwxMjU3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorUHV0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnLFB1dFRhZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iUHV0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1B1dFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlB1dFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9GT05UPgorPEJSPgorQ2xhc3MgUHV0VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnLmh0bWwiPkFkZFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UHV0VGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPjwvREw+CisKKzxQPgorUHV0IGFuIGF0dHJpYnV0ZSBpbiBlbmNsb3NpbmcgYXR0cmlidXRlIGNvbnRhaW5lciB0YWcuCisgRW5jbG9zaW5nIGF0dHJpYnV0ZSBjb250YWluZXIgdGFnIGNhbiBiZSA6ICZsdDtpbnNlcnQmZ3Q7IG9yICZsdDtkZWZpbml0aW9uJmd0Oy4KKyBFeGNlcHRpb24gaXMgdGhyb3duIGlmIG5vIGFwcHJvcHJpYXRlIHRhZyBjYW4gYmUgZm91bmQuCisgUHV0IHRhZyBjYW4gaGF2ZSBmb2xsb3dpbmcgYXRyaWJ1dGVzIDoKKyA8bGk+CisgPHVsPm5hbWUgOiBOYW1lIG9mIHRoZSBhdHRyaWJ1dGU8L3VsPgorIDx1bD52YWx1ZSB8IGNvbnRlbnQgOiB2YWx1ZSB0byBwdXQgYXMgYXR0cmlidXRlPC91bD4KKyA8dWw+dHlwZSA6IHZhbHVlIHR5cGUuIE9ubHkgdmFsaWQgaWYgdmFsdWUgaXMgYSBTdHJpbmcgYW5kIGlzIHNldCBieQorIHZhbHVlPSJzb21ldGhpbmciIG9yIGJ5IGEgYmVhbi4KKyBQb3NzaWJsZSB0eXBlIGFyZSA6IHN0cmluZyAodmFsdWUgaXMgdXNlZCBhcyBkaXJlY3Qgc3RyaW5nKSwKKyBwYWdlIHwgdGVtcGxhdGUgKHZhbHVlIGlzIHVzZWQgYXMgYSBwYWdlIHVybCB0byBpbnNlcnQpLAorIGRlZmluaXRpb24gKHZhbHVlIGlzIHVzZWQgYXMgYSBkZWZpbml0aW9uIG5hbWUgdG8gaW5zZXJ0KTwvdWw+CisgPHVsPmRpcmVjdCA6IFNwZWNpZnkgaWYgdmFsdWUgaXMgdG8gYmUgdXNlZCBhcyBhIGRpcmVjdCBzdHJpbmcgb3IgYXMgYQorIHBhZ2UgdXJsIHRvIGluc2VydC4gVGhpcyBpcyBhbm90aGVyIHdheSB0byBzcGVjaWZ5IHRoZSB0eXBlLiBJdCBvbmx5IGFwcGx5CisgaWYgdmFsdWUgaXMgc2V0IGFzIGEgc3RyaW5nLCBhbmQgdHlwZSBpcyBub3QgcHJlc2VudC48L3VsPgorIDx1bD5iZWFuTmFtZSA6IE5hbWUgb2YgYSBiZWFuIHVzZWQgZm9yIHNldHRpbmcgdmFsdWUuIE9ubHkgdmFsaWQgaWYgdmFsdWUgaXMgbm90IHNldC4KKyBJZiBwcm9wZXJ0eSBpcyBzcGVjaWZpZWQsIHZhbHVlIGNvbWUgZnJvbSBiZWFuJ3MgcHJvcGVydHkuIE90aGVyd2lzZSwgYmVhbgorIGl0c2VsZiBpcyB1c2VkIGZvciB2YWx1ZS48L3VsPgorIDx1bD5iZWFuUHJvcGVydHkgOiBOYW1lIG9mIHRoZSBwcm9wZXJ0eSB1c2VkIGZvciByZXRyaWV2aW5nIHZhbHVlLjwvdWw+CisgPHVsPmJlYW5TY29wZSA6IFNjb3BlIGNvbnRhaW5pbmcgYmVhbi4gPC91bD4KKyA8dWw+cm9sZSA6IFJvbGUgdG8gY2hlY2sgd2hlbiAnaW5zZXJ0JyB3aWxsIGJlIGNhbGxlZC4gSWYgZW5jbG9zaW5nIHRhZyBpcworICZsdDtpbnNlcnQmZ3Q7LCByb2xlIGlzIGNoZWNrZWQgaW1tZWRpYXRlbHkuIElmIGVuY2xvc2luZyB0YWcgaXMKKyAmbHQ7ZGVmaW5pdGlvbiZndDssIHJvbGUgd2lsbCBiZSBjaGVja2VkIHdoZW4gdGhpcyBkZWZpbml0aW9uIHdpbGwgYmUKKyBpbnNlcnRlZC48L3VsPgorIDwvbGk+CisgVmFsdWUgY2FuIGFsc28gY29tZSBmcm9tIHRhZyBib2R5LiBUYWcgYm9keSBpcyB0YWtlbiBpbnRvIGFjY291bnQgb25seSBpZgorIHZhbHVlIGlzIG5vdCBzZXQgYnkgb25lIG9mIHRoZSB0YWcgYXR0cmlidXRlcy4gSW4gdGhpcyBjYXNlIEF0dHJpYnV0ZSB0eXBlIGlzCisgInN0cmluZyIsIHVubGVzcyB0YWcgYm9keSBkZWZpbmUgYW5vdGhlciB0eXBlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dFRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNhdHRyaWJ1dGVOYW1lIj5hdHRyaWJ1dGVOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05hbWUgb2YgYXR0cmlidXRlIHRvIHB1dCBpbiBjb21wb25lbnQgY29udGV4dDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2JlYW5OYW1lIj5iZWFuTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtCZWFuIG5hbWUgYXR0cmlidXRlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjYmVhblByb3BlcnR5Ij5iZWFuUHJvcGVydHk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QmVhbiBwcm9wZXJ0eSBhdHRyaWJ1dGU8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNiZWFuU2NvcGUiPmJlYW5TY29wZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtCZWFuIHNjb3BlIGF0dHJpYnV0ZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2RpcmVjdCI+ZGlyZWN0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0pTUCBUZW1wbGF0ZSBjb21wYXRpYmlsaXR5PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNyZWFsVmFsdWUiPnJlYWxWYWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtjYWNoZWQgcmVhbCB2YWx1ZSBjb21wdXRlZCBmcm9tIHRhZyBhdHRyaWJ1dGVzPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjcm9sZSI+cm9sZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSb2xlIGF0dHJpYnV0ZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDthc3NvY2lhdGVkIGF0dHJpYnV0ZSB2YWx1ZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3ZhbHVlVHlwZSI+dmFsdWVUeXBlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlcXVlc3RlZCB0eXBlIGZvciB0aGUgdmFsdWU8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmJvZHlDb250ZW50PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkNvbXBvbmVudENvbnN0YW50cyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCNDT01QT05FTlRfQ09OVEVYVCI+Q09NUE9ORU5UX0NPTlRFWFQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjQ09NUE9ORU5UX1NDT1BFIj5DT01QT05FTlRfU0NPUEU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjRVhDRVBUSU9OX0tFWSI+RVhDRVBUSU9OX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+RVZBTF9CT0RZX1RBRzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI1B1dFRhZygpIj5QdXRUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWZhdWx0IGNvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNjYWxsUGFyZW50KCkiPmNhbGxQYXJlbnQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGaW5kIHBhcmVudCB0YWcgd2hpY2ggbXVzdCBpbXBsZW1lbnQgQXR0cmlidXRlQ29udGFpbmVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjY29tcHV0ZVJlYWxWYWx1ZSgpIj5jb21wdXRlUmVhbFZhbHVlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcHV0ZSByZWFsIHZhbHVlIGFjY29yZGluZyB0byB0YWcgYXR0cmlidXRlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RvIGVuZCB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RG8gc3RhcnQgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5odG1sIj5QdXRUYWdQYXJlbnQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNmaW5kRW5jbG9zaW5nUHV0VGFnUGFyZW50KCkiPmZpbmRFbmNsb3NpbmdQdXRUYWdQYXJlbnQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGaW5kIHBhcmVudCB0YWcgd2hpY2ggbXVzdCBpbXBsZW1lbnQgQXR0cmlidXRlQ29udGFpbmVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNnZXRCZWFuTmFtZSgpIj5nZXRCZWFuTmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBiZWFuIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2dldEJlYW5Qcm9wZXJ0eSgpIj5nZXRCZWFuUHJvcGVydHk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYmVhbiBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjZ2V0QmVhblNjb3BlKCkiPmdldEJlYW5TY29wZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBiZWFuIHNjb3BlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNnZXRDb250ZW50KCkiPmdldENvbnRlbnQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgY29udGVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2dldFJlYWxWYWx1ZSgpIj5nZXRSZWFsVmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgcmVhbCB2YWx1ZSBhY2NvcmRpbmcgdG8gdGFnIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2dldFJlYWxWYWx1ZUZyb21CZWFuKCkiPmdldFJlYWxWYWx1ZUZyb21CZWFuPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXh0cmFjdCByZWFsIHZhbHVlIGZyb20gc3BlY2lmaWVkIGJlYW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCByb2xlIGF0dHJpYnV0ZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNnZXRUeXBlKCkiPmdldFR5cGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdHlwZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNyZWxlYXNlSW50ZXJuYWwoKSI+cmVsZWFzZUludGVybmFsPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsZWFzZSBpbnRlcm5hbCBwcm9wZXJ0aWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNzZXRCZWFuTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QmVhbk5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgYmVhbiBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNzZXRCZWFuUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldEJlYW5Qcm9wZXJ0eTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBiZWFuIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNzZXRCZWFuU2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJlYW5TY29wZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBiZWFuIHNjb3BlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNzZXRDb250ZW50KGphdmEubGFuZy5PYmplY3QpIj5zZXRDb250ZW50PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGNvbnRlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3NldENvbnRlbnQoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRlbnQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgY29udGVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjc2V0RGlyZWN0KGphdmEubGFuZy5TdHJpbmcpIj5zZXREaXJlY3Q8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aXNEaXJlY3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgZGlyZWN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3NldE9iamVjdFZhbHVlKGphdmEubGFuZy5PYmplY3QpIj5zZXRPYmplY3RWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBwcm9wZXJ0eSB2YWx1ZSBhcyBhbiBvYmplY3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cm9sZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCByb2xlIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VHlwZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0eXBlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuT2JqZWN0KSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB2YWx1ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImF0dHJpYnV0ZU5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK2F0dHJpYnV0ZU5hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmF0dHJpYnV0ZU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+TmFtZSBvZiBhdHRyaWJ1dGUgdG8gcHV0IGluIGNvbXBvbmVudCBjb250ZXh0Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLk9iamVjdCA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5hc3NvY2lhdGVkIGF0dHJpYnV0ZSB2YWx1ZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGlyZWN0Ij48IS0tIC0tPjwvQT48SDM+CitkaXJlY3Q8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5kaXJlY3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+SlNQIFRlbXBsYXRlIGNvbXBhdGliaWxpdHkKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbHVlVHlwZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWVUeXBlPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+dmFsdWVUeXBlPC9CPjwvUFJFPgorPERMPgorPEREPlJlcXVlc3RlZCB0eXBlIGZvciB0aGUgdmFsdWUKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJlYW5OYW1lIj48IS0tIC0tPjwvQT48SDM+CitiZWFuTmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPmJlYW5OYW1lPC9CPjwvUFJFPgorPERMPgorPEREPkJlYW4gbmFtZSBhdHRyaWJ1dGUKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJlYW5Qcm9wZXJ0eSI+PCEtLSAtLT48L0E+PEgzPgorYmVhblByb3BlcnR5PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+YmVhblByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPkJlYW4gcHJvcGVydHkgYXR0cmlidXRlCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJiZWFuU2NvcGUiPjwhLS0gLS0+PC9BPjxIMz4KK2JlYW5TY29wZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPmJlYW5TY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5CZWFuIHNjb3BlIGF0dHJpYnV0ZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icm9sZSI+PCEtLSAtLT48L0E+PEgzPgorcm9sZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPnJvbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+Um9sZSBhdHRyaWJ1dGUKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWxWYWx1ZSI+PCEtLSAtLT48L0E+PEgzPgorcmVhbFZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLk9iamVjdCA8Qj5yZWFsVmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+Y2FjaGVkIHJlYWwgdmFsdWUgY29tcHV0ZWQgZnJvbSB0YWcgYXR0cmlidXRlcworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlB1dFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitQdXRUYWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5QdXRUYWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5EZWZhdWx0IGNvbnN0cnVjdG9yLgorPFA+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJyZWxlYXNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbGVhc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbGVhc2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWxlYXNlSW50ZXJuYWwoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZUludGVybmFsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5yZWxlYXNlSW50ZXJuYWw8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZWxlYXNlIGludGVybmFsIHByb3BlcnRpZXMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IG5hbWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VmFsdWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdmFsdWUuCisgTWV0aG9kIGFkZGVkIHRvIHNhdGlzZnkgVG9tY2F0IChidWcgPykuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB2YWx1ZS4KKyBNZXRob2QgYWRkZWQgdG8gc2F0aXNmeSBUb21jYXQgKGJ1ZyA/KS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsdWUoamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWx1ZTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCB2YWx1ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0T2JqZWN0VmFsdWUoamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE9iamVjdFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRPYmplY3RWYWx1ZTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCBwcm9wZXJ0eSB2YWx1ZSBhcyBhbiBvYmplY3QuCisgQWRkZWQgYmVjYXVzZSBzb21lIHdlYiBjb250YWluZXJzIHJlYWN0IGJhZGx5IHRvIHZhbHVlIGFzIDxjb2RlPk9iamVjdDwvY29kZT4uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENvbnRlbnQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENvbnRlbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbnRlbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgY29udGVudC4KKyBNZXRob2QgYWRkZWQgdG8gc2F0aXNmeSBUb21jYXQgKGJ1ZyA/KS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Q29udGVudCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDb250ZW50PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRDb250ZW50PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IGNvbnRlbnQuCisgTWV0aG9kIGFkZGVkIHRvIHNhdGlzZnkgVG9tY2F0IChidWcgPykuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENvbnRlbnQoamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENvbnRlbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbnRlbnQ8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgY29udGVudC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RGlyZWN0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXREaXJlY3Q8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldERpcmVjdDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2lzRGlyZWN0KTwvUFJFPgorPERMPgorPEREPlNldCBkaXJlY3QuCisgTWV0aG9kIGFkZGVkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggSlNQMS4xLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRUeXBlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHR5cGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VHlwZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0eXBlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRCZWFuTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QmVhbk5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEJlYW5OYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IGJlYW4gbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QmVhbk5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QmVhbk5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEJlYW5OYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IGJlYW4gbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QmVhblByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRCZWFuUHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEJlYW5Qcm9wZXJ0eTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCBiZWFuIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRCZWFuUHJvcGVydHkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QmVhblByb3BlcnR5PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRCZWFuUHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgYmVhbiBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QmVhblNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRCZWFuU2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEJlYW5TY29wZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCBiZWFuIHNjb3BlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRCZWFuU2NvcGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QmVhblNjb3BlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRCZWFuU2NvcGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgYmVhbiBzY29wZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Um9sZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Um9sZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3JvbGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHJvbGUgYXR0cmlidXRlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yb2xlPC9DT0RFPiAtIFRoZSByb2xlIHRoZSB1c2VyIG11c3QgYmUgaW4gdG8gc3RvcmUgY29udGVudC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJvbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Um9sZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Um9sZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCByb2xlIGF0dHJpYnV0ZQorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSByb2xlIGRlZmluZWQgaW4gdGhlIHRhZyBvciA8Y29kZT5udWxsPC9jb2RlPi48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJlYWxWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSZWFsVmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPmdldFJlYWxWYWx1ZTwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkdldCByZWFsIHZhbHVlIGFjY29yZGluZyB0byB0YWcgYXR0cmlidXRlLgorIFJlYWwgdmFsdWUgaXMgdGhlIHZhbHVlIGNvbXB1dGVkIGFmdGVyIGF0dHJpYnV0ZSBwcm9jZXNzaW5nLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlJlYWwgdmFsdWUuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gSWYgc29tZXRoaW5nIGdvZXMgd3Jvbmcgd2hpbGUgZ2V0dGluZyB2YWx1ZSBmcm9tIGJlYW4uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb21wdXRlUmVhbFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbXB1dGVSZWFsVmFsdWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmNvbXB1dGVSZWFsVmFsdWU8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29tcHV0ZSByZWFsIHZhbHVlIGFjY29yZGluZyB0byB0YWcgYXR0cmlidXRlcy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIElmIHNvbWV0aGluZyBnb2VzIHdyb25nIHdoaWxlIGdldHRpbmcgdmFsdWUgZnJvbSBiZWFuLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UmVhbFZhbHVlRnJvbUJlYW4oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVhbFZhbHVlRnJvbUJlYW48L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmdldFJlYWxWYWx1ZUZyb21CZWFuPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5FeHRyYWN0IHJlYWwgdmFsdWUgZnJvbSBzcGVjaWZpZWQgYmVhbi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIElmIHNvbWV0aGluZyBnb2VzIHdyb25nIHdoaWxlIGdldHRpbmcgdmFsdWUgZnJvbSBiZWFuLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5EbyBzdGFydCB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0VuZFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb0VuZFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb0VuZFRhZzwvQj4oKQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5EbyBlbmQgdGFnLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+ZG9FbmRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjYWxsUGFyZW50KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NhbGxQYXJlbnQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmNhbGxQYXJlbnQ8L0I+KCkKKyAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RmluZCBwYXJlbnQgdGFnIHdoaWNoIG11c3QgaW1wbGVtZW50IEF0dHJpYnV0ZUNvbnRhaW5lci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIElmIHdlIGNhbid0IGZpbmQgYW4gYXBwcm9wcmlhdGUgZW5jbG9zaW5nIHRhZy48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRFbmNsb3NpbmdQdXRUYWdQYXJlbnQoKSI+PCEtLSAtLT48L0E+PEgzPgorZmluZEVuY2xvc2luZ1B1dFRhZ1BhcmVudDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWdQYXJlbnQuaHRtbCI+UHV0VGFnUGFyZW50PC9BPiA8Qj5maW5kRW5jbG9zaW5nUHV0VGFnUGFyZW50PC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RmluZCBwYXJlbnQgdGFnIHdoaWNoIG11c3QgaW1wbGVtZW50IEF0dHJpYnV0ZUNvbnRhaW5lci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIElmIHdlIGNhbid0IGZpbmQgYW4gYXBwcm9wcmlhdGUgZW5jbG9zaW5nIHRhZy48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1B1dFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlB1dFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnUGFyZW50Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNzIwOGUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5odG1sCkBAIC0wLDAgKzEsMjEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAxIEVEVCAyMDAzIC0tPgorPFRJVExFPgorUHV0VGFnUGFyZW50IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnUGFyZW50LFB1dFRhZ1BhcmVudCBpbnRlcmZhY2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlB1dFRhZ1BhcmVudCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9QdXRUYWdQYXJlbnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlB1dFRhZ1BhcmVudC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9GT05UPgorPEJSPgorSW50ZXJmYWNlIFB1dFRhZ1BhcmVudDwvSDI+Cis8REw+Cis8RFQ+PEI+QWxsIEtub3duIEltcGxlbWVudGluZyBDbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPkRlZmluaXRpb25UYWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgaW50ZXJmYWNlIDxCPlB1dFRhZ1BhcmVudDwvQj48L0RMPgorCis8UD4KK1RhZyBjbGFzc2VzIGltcGxlbWVudGluZyB0aGlzIGludGVyZmFjZSBjYW4gY29udGFpbiBuZXN0ZWQgUHV0VGFnLgorIFRoaXMgaW50ZXJmYWNlIGRlZmluZXMgYSBtZXRob2QgY2FsbGVkIGJ5IG5lc3RlZCB0YWdzLgorPFA+CisKKzxQPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnUGFyZW50Lmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnKSI+cHJvY2Vzc05lc3RlZFRhZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPiZuYnNwO25lc3RlZFRhZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIG5lc3RlZCB0YWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJwcm9jZXNzTmVzdGVkVGFnKG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRUYWcpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzTmVzdGVkVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcm9jZXNzTmVzdGVkVGFnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4mbmJzcDtuZXN0ZWRUYWcpCisgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlByb2Nlc3MgdGhlIG5lc3RlZCB0YWcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5lc3RlZFRhZzwvQ09ERT4gLSBOZXN0ZWQgdGFnIHRvIHByb2Nlc3MuCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUHV0VGFnUGFyZW50Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnUGFyZW50Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQdXRUYWdQYXJlbnQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGVhZjgwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbApAQCAtMCwwICsxLDYyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZUF0dHJpYnV0ZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlVzZUF0dHJpYnV0ZVRhZyxVc2VBdHRyaWJ1dGVUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZUF0dHJpYnV0ZVRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlVzZUF0dHJpYnV0ZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9GT05UPgorPEJSPgorQ2xhc3MgVXNlQXR0cmlidXRlVGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuVXNlQXR0cmlidXRlVGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgZmluYWwgY2xhc3MgPEI+VXNlQXR0cmlidXRlVGFnPC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9ETD4KKworPFA+CitDdXN0b20gdGFnIGV4cG9zaW5nIGEgY29tcG9uZW50IGF0dHJpYnV0ZSB0byBwYWdlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlVzZUF0dHJpYnV0ZVRhZyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwjYXR0cmlidXRlTmFtZSI+YXR0cmlidXRlTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYXR0cmlidXRlIG5hbWUgdG8gYmUgZXhwb3NlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCNjbGFzc25hbWUiPmNsYXNzbmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDbGFzcyBuYW1lIG9mIG9iamVjdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sI2lzRXJyb3JJZ25vcmVkIj5pc0Vycm9ySWdub3JlZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBcmUgZXJyb3JzIGlnbm9yZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCNzY29wZSI+c2NvcGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNjb3BlIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sI3Njb3BlTmFtZSI+c2NvcGVOYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzY29wZSBuYW1lLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmlkLCBwYWdlQ29udGV4dDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2UgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9JTkNMVURFLCBFVkFMX1BBR0UsIFNLSVBfQk9EWSwgU0tJUF9QQUdFPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sI1VzZUF0dHJpYnV0ZVRhZygpIj5Vc2VBdHRyaWJ1dGVUYWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sI2RvRW5kVGFnKCkiPmRvRW5kVGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xlYW4gdXAgYWZ0ZXIgcHJvY2Vzc2luZyB0aGlzIGVudW1lcmF0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sI2RvU3RhcnRUYWcoKSI+ZG9TdGFydFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V4cG9zZSB0aGUgcmVxdWVzdGVkIGF0dHJpYnV0ZSBmcm9tIGNvbXBvbmVudCBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCNnZXRDbGFzc25hbWUoKSI+Z2V0Q2xhc3NuYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGNsYXNzIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sI2dldElnbm9yZSgpIj5nZXRJZ25vcmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgaWdub3JlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwjZ2V0U2NvcGUoKSI+Z2V0U2NvcGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgc2NvcGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sI3JlbGVhc2UoKSI+cmVsZWFzZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sI3NldENsYXNzbmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q2xhc3NuYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGNsYXNzIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sI3NldElnbm9yZShib29sZWFuKSI+c2V0SWdub3JlPC9BPjwvQj4oYm9vbGVhbiZuYnNwO2lnbm9yZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBpZ25vcmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwjc2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPnNldFNjb3BlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBzY29wZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbmRBbmNlc3RvcldpdGhDbGFzcywgZ2V0SWQsIGdldFBhcmVudCwgZ2V0VmFsdWUsIGdldFZhbHVlcywgcmVtb3ZlVmFsdWUsIHNldElkLCBzZXRQYWdlQ29udGV4dCwgc2V0UGFyZW50LCBzZXRWYWx1ZTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNsYXNzbmFtZSI+PCEtLSAtLT48L0E+PEgzPgorY2xhc3NuYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+Y2xhc3NuYW1lPC9CPjwvUFJFPgorPERMPgorPEREPkNsYXNzIG5hbWUgb2Ygb2JqZWN0LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2NvcGVOYW1lIj48IS0tIC0tPjwvQT48SDM+CitzY29wZU5hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIG5hbWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzY29wZSI+PCEtLSAtLT48L0E+PEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgaW50IDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSB2YWx1ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImF0dHJpYnV0ZU5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK2F0dHJpYnV0ZU5hbWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5hdHRyaWJ1dGVOYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhdHRyaWJ1dGUgbmFtZSB0byBiZSBleHBvc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNFcnJvcklnbm9yZWQiPjwhLS0gLS0+PC9BPjxIMz4KK2lzRXJyb3JJZ25vcmVkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5pc0Vycm9ySWdub3JlZDwvQj48L1BSRT4KKzxETD4KKzxERD5BcmUgZXJyb3JzIGlnbm9yZWQuIFRoaXMgaXMgdGhlIHByb3BlcnR5IGZvciBhdHRyaWJ1dGUgJ2lnbm9yZScuCisgRGVmYXVsdCB2YWx1ZSBpcyA8Y29kZT5mYWxzZTwvY29kZT4sIHdoaWNoIHRocm93cyBhbiBleGNlcHRpb24uCisgT25seSAiYXR0cmlidXRlIG5vdCBmb3VuZCIgLSBlcnJvcnMgYXJlIGlnbm9yZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iVXNlQXR0cmlidXRlVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1VzZUF0dHJpYnV0ZVRhZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPlVzZUF0dHJpYnV0ZVRhZzwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icmVsZWFzZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWxlYXNlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxlYXNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWxlYXNlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVsZWFzZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDbGFzc25hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q2xhc3NuYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRDbGFzc25hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgY2xhc3MgbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Q2xhc3NuYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDbGFzc25hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENsYXNzbmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBjbGFzcyBuYW1lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIFRoZSBuZXcgY2xhc3MgbmFtZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IG5hbWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFNjb3BlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTY29wZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2NvcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHNjb3BlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zY29wZTwvQ09ERT4gLSBUaGUgbmV3IHNjb3BlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2NvcGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFNjb3BlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHNjb3BlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJZ25vcmUoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldElnbm9yZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SWdub3JlPC9CPihib29sZWFuJm5ic3A7aWdub3JlKTwvUFJFPgorPERMPgorPEREPlNldCBpZ25vcmUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldElnbm9yZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJZ25vcmU8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldElnbm9yZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCBpZ25vcmUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvU3RhcnRUYWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZG9TdGFydFRhZzwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5kb1N0YXJ0VGFnPC9CPigpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RXhwb3NlIHRoZSByZXF1ZXN0ZWQgYXR0cmlidXRlIGZyb20gY29tcG9uZW50IGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+ZG9TdGFydFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvU3RhcnRUYWc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgSlNQIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvRW5kVGFnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvRW5kVGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvRW5kVGFnPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNsZWFuIHVwIGFmdGVyIHByb2Nlc3NpbmcgdGhpcyBlbnVtZXJhdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb0VuZFRhZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0NPREU+PERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmRvRW5kVGFnPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIEpTUCBleGNlcHRpb24gaGFzIG9jY3VycmVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUZWkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlVzZUF0dHJpYnV0ZVRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGVpLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRlaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlOTZhZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRlaS5odG1sCkBAIC0wLDAgKzEsMjc5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlQXR0cmlidXRlVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuVXNlQXR0cmlidXRlVGVpLFVzZUF0dHJpYnV0ZVRlaSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlQXR0cmlidXRlVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1VzZUF0dHJpYnV0ZVRlaS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJVc2VBdHRyaWJ1dGVUZWkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIFVzZUF0dHJpYnV0ZVRlaTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm8KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuVXNlQXR0cmlidXRlVGVpPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGZpbmFsIGNsYXNzIDxCPlVzZUF0dHJpYnV0ZVRlaTwvQj48RFQ+ZXh0ZW5kcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9ETD4KKworPFA+CitJbXBsZW1lbnRhdGlvbiBvZiA8Y29kZT5UYWdFeHRyYUluZm88L2NvZGU+IGZvciB0aGUgPGI+VXNlQXR0cmlidXRlPC9iPgorIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLgorPFA+CisKKzxQPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdFeHRyYUluZm88L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGVpLmh0bWwjVXNlQXR0cmlidXRlVGVpKCkiPlVzZUF0dHJpYnV0ZVRlaTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5WYXJpYWJsZUluZm9bXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGVpLmh0bWwjZ2V0VmFyaWFibGVJbmZvKGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdEYXRhKSI+Z2V0VmFyaWFibGVJbmZvPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEmbmJzcDtkYXRhKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0VGFnSW5mbywgaXNWYWxpZCwgc2V0VGFnSW5mbzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJVc2VBdHRyaWJ1dGVUZWkoKSI+PCEtLSAtLT48L0E+PEgzPgorVXNlQXR0cmlidXRlVGVpPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+VXNlQXR0cmlidXRlVGVpPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRWYXJpYWJsZUluZm8oamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0RhdGEpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYXJpYWJsZUluZm88L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVmFyaWFibGVJbmZvW10gPEI+Z2V0VmFyaWFibGVJbmZvPC9CPihqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YSZuYnNwO2RhdGEpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzY3JpcHRpbmcgdmFyaWFibGVzIHRvIGJlIGNyZWF0ZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Z2V0VmFyaWFibGVJbmZvPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVXNlQXR0cmlidXRlVGVpLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlVzZUF0dHJpYnV0ZVRlaS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbyI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0FkZFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvQWRkVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFhNmIwOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0FkZFRhZy5odG1sCkBAIC0wLDAgKzEsMTcwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQWRkVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5BZGRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWRkVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkFkZFRhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWcuaHRtbCI+QWRkVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQj48L0E+PC9URD4KKzxURD4gICAgIFRoZSAic3RydXRzLXRpbGVzIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbgorY3JlYXRpbmcgZHluYW1pYyByZXVzYWJsZSBjb21wb25lbnRzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnLmh0bWwiPkFkZFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWcuaHRtbCI+QWRkVGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5QdXRMaXN0VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sI3Byb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkFkZFRhZykiPnByb2Nlc3NOZXN0ZWRUYWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnLmh0bWwiPkFkZFRhZzwvQT4mbmJzcDtuZXN0ZWRUYWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIG5lc3RlZCAmbGc7YWRkJmd0OyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWRkVGFnUGFyZW50LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50Lmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQWRkVGFnKSI+cHJvY2Vzc05lc3RlZFRhZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWcuaHRtbCI+QWRkVGFnPC9BPiZuYnNwO25lc3RlZFRhZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIG5lc3RlZCB0YWcuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWRkVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0FkZFRhZ1BhcmVudC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvQWRkVGFnUGFyZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE1YzBkNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0FkZFRhZ1BhcmVudC5odG1sCkBAIC0wLDAgKzEsMTc4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkFkZFRhZ1BhcmVudCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkFkZFRhZ1BhcmVudCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZ1BhcmVudC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBZGRUYWdQYXJlbnQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBJbnRlcmZhY2U8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkFkZFRhZ1BhcmVudDwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWdQYXJlbnQuaHRtbCI+QWRkVGFnUGFyZW50PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQj48L0E+PC9URD4KKzxURD4gICAgIFRoZSAic3RydXRzLXRpbGVzIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbgorY3JlYXRpbmcgZHluYW1pYyByZXVzYWJsZSBjb21wb25lbnRzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50Lmh0bWwiPkFkZFRhZ1BhcmVudDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+IHRoYXQgaW1wbGVtZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWdQYXJlbnQuaHRtbCI+QWRkVGFnUGFyZW50PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQdXRMaXN0IHRhZyBpbXBsZW1lbnRhdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50Lmh0bWwiPkFkZFRhZ1BhcmVudDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50Lmh0bWwiPkFkZFRhZ1BhcmVudDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWRkVGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnLmh0bWwjZmluZEVuY2xvc2luZ1B1dExpc3RUYWdQYXJlbnQoKSI+ZmluZEVuY2xvc2luZ1B1dExpc3RUYWdQYXJlbnQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGaW5kIHBhcmVudCB0YWcgd2hpY2ggbXVzdCBpbXBsZW1lbnQgQXR0cmlidXRlQ29udGFpbmVyLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFkZFRhZ1BhcmVudC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2NsYXNzLXVzZS9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2NsYXNzLXVzZS9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJkZmUwNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0F0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkF0dHJpYnV0ZVRvU2NvcGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkF0dHJpYnV0ZVRvU2NvcGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkF0dHJpYnV0ZVRvU2NvcGVUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQXR0cmlidXRlVG9TY29wZVRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQXR0cmlidXRlVG9TY29wZVRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQXR0cmlidXRlVG9TY29wZVRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0NvbXBvbmVudENvbnN0YW50cy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODAwMzhkNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0NvbXBvbmVudENvbnN0YW50cy5odG1sCkBAIC0wLDAgKzEsMjQ1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkNvbXBvbmVudENvbnN0YW50cyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkNvbXBvbmVudENvbnN0YW50cyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb21wb25lbnRDb25zdGFudHMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBJbnRlcmZhY2U8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkNvbXBvbmVudENvbnN0YW50czwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQj48L0E+PC9URD4KKzxURD4gICAgIFRoZSAic3RydXRzLXRpbGVzIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbgorY3JlYXRpbmcgZHluYW1pYyByZXVzYWJsZSBjb21wb25lbnRzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQj48L0E+PC9URD4KKzxURD48ZGl2IGNsYXNzPSJtYWluQ29udGVudCI+CisgICAgVGhlIFRpbGVzIHRhZ2xpYiBhbmQgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyB3ZWIgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSAKKyAgICBwaWVjZXMgb2YgcGFnZXMsIGNhbGxlZCBUaWxlcy4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5DbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9BPiB0aGF0IGltcGxlbWVudCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPkNvbXBvbmVudENvbnN0YW50czwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWcuaHRtbCI+QWRkVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhbiBlbGVtZW50IHRvIHRoZSBzdXJyb3VuZGluZyBsaXN0IHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIj5HZXRBdHRyaWJ1dGVUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmUgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgY29tcG9uZW50L3RlbXBsYXRlIGF0dHJpYnV0ZSBwcm9wZXJ0eSwKKyBhbmQgcmVuZGVyIGl0IHRvIHRoZSBjdXJyZW50IEpzcFdyaXRlciBhcyBhIFN0cmluZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyB0aGUgdGFnIGhhbmRsZXIgZm9yICZsdDt0aWxlczpnZXQmZ3Q7LCB3aGljaCBnZXRzCisgY29udGVudCBmcm9tIHRoZSByZXF1ZXN0IHNjb3BlIGFuZCBlaXRoZXIgaW5jbHVkZXMgdGhlIGNvbnRlbnQgb3IgcHJpbnRzCisgaXQsIGRlcGVuZGluZyB1cG9uIHRoZSB2YWx1ZSBvZiB0aGUgY29udGVudCdzIDxjb2RlPmRpcmVjdDwvY29kZT4gYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5pdERlZmluaXRpb25zVGFnLmh0bWwiPkluaXREZWZpbml0aW9uc1RhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0IGRlZmluaXRpb25zIGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgaXMgdGhlIHRhZyBoYW5kbGVyIGZvciAmbHQ7dGlsZXM6aW5zZXJ0Jmd0Oywgd2hpY2ggaW5jbHVkZXMKKyBhIHRlbXBsYXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj5QdXRMaXN0VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1B1dExpc3QgdGFnIGltcGxlbWVudGF0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQdXQgYW4gYXR0cmlidXRlIGluIGVuY2xvc2luZyBhdHRyaWJ1dGUgY29udGFpbmVyIHRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPkNvbXBvbmVudENvbnN0YW50czwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5DbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT4gdGhhdCBpbXBsZW1lbnQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCI+RGVmaW5pdGlvbnNVdGlsPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKSI+PENPREU+VGlsZXNVdGlsLmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCwgRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbXBvbmVudENvbnN0YW50cy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uVGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGMzYWFhZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0RlZmluaXRpb25UYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkRlZmluaXRpb25UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkRlZmluaXRpb25UYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25UYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuRGVmaW5pdGlvblRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuRGVmaW5pdGlvblRhZworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5N2VkYzQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sCkBAIC0wLDAgKzEsMTgyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuRGVmaW5pdGlvblRhZ1N1cHBvcnQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkRlZmluaXRpb25UYWdTdXBwb3J0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuRGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9CPjwvQT48L1REPgorPFREPiAgICAgVGhlICJzdHJ1dHMtdGlsZXMiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluCitjcmVhdGluZyBkeW5hbWljIHJldXNhYmxlIGNvbXBvbmVudHMuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIj5EZWZpbml0aW9uVGFnU3VwcG9ydDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPkRlZmluaXRpb25UYWdTdXBwb3J0PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPkRlZmluaXRpb25UYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyB0aGUgdGFnIGhhbmRsZXIgZm9yICZsdDt0aWxlczpkZWZpbml0aW9uJmd0Oywgd2hpY2ggZGVmaW5lcworIGEgdGlsZXMgKG9yIHRlbXBsYXRlIC8gY29tcG9uZW50KS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyB0aGUgdGFnIGhhbmRsZXIgZm9yICZsdDt0aWxlczpnZXQmZ3Q7LCB3aGljaCBnZXRzCisgY29udGVudCBmcm9tIHRoZSByZXF1ZXN0IHNjb3BlIGFuZCBlaXRoZXIgaW5jbHVkZXMgdGhlIGNvbnRlbnQgb3IgcHJpbnRzCisgaXQsIGRlcGVuZGluZyB1cG9uIHRoZSB2YWx1ZSBvZiB0aGUgY29udGVudCdzIDxjb2RlPmRpcmVjdDwvY29kZT4gYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGlzIHRoZSB0YWcgaGFuZGxlciBmb3IgJmx0O3RpbGVzOmluc2VydCZndDssIHdoaWNoIGluY2x1ZGVzCisgYSB0ZW1wbGF0ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0dldEF0dHJpYnV0ZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvR2V0QXR0cmlidXRlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTVlYTVjZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0dldEF0dHJpYnV0ZVRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuR2V0QXR0cmlidXRlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5HZXRBdHRyaWJ1dGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iR2V0QXR0cmlidXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkdldEF0dHJpYnV0ZVRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuR2V0QXR0cmlidXRlVGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iR2V0QXR0cmlidXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0dldFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvR2V0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEzMGZmYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0dldFRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuR2V0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5HZXRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iR2V0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkdldFRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuR2V0VGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iR2V0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI2YjM4NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0ltcG9ydEF0dHJpYnV0ZVRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW1wb3J0QXR0cmlidXRlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbXBvcnRBdHRyaWJ1dGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkltcG9ydEF0dHJpYnV0ZVRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW1wb3J0QXR0cmlidXRlVGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0luaXREZWZpbml0aW9uc1RhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvSW5pdERlZmluaXRpb25zVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmViOWViOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0luaXREZWZpbml0aW9uc1RhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW5pdERlZmluaXRpb25zVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5Jbml0RGVmaW5pdGlvbnNUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW5pdERlZmluaXRpb25zVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluaXREZWZpbml0aW9uc1RhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW5pdERlZmluaXRpb25zVGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW5pdERlZmluaXRpb25zVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0luc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2NsYXNzLXVzZS9JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhZTQ3MDgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2NsYXNzLXVzZS9JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW5zZXJ0VGFnLkRpcmVjdFN0cmluZ0hhbmRsZXI8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2NsYXNzLXVzZS9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGE2Mjc0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluc2VydFRhZy5JbnNlcnRIYW5kbGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikluc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluc2VydFRhZy5JbnNlcnRIYW5kbGVyPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdmMTg0MQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwKQEAgLTAsMCArMSwyNzYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIEludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW5zZXJ0VGFnLlRhZ0hhbmRsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgSW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbnNlcnRUYWcuVGFnSGFuZGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikluc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgSW50ZXJmYWNlPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0I+PC9BPjwvVEQ+Cis8VEQ+ICAgICBUaGUgInN0cnV0cy10aWxlcyIgdGFnIGxpYnJhcnkgY29udGFpbnMgdGFncyB0aGF0IGFyZSB1c2VmdWwgaW4KK2NyZWF0aW5nIGR5bmFtaWMgcmV1c2FibGUgY29tcG9uZW50cy4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT4gdGhhdCBpbXBsZW1lbnQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtIYW5kbGUgaW5zZXJ0IGRpcmVjdCBzdHJpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLkluc2VydEhhbmRsZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVhbCBoYW5kbGVyLCBhZnRlciBhdHRyaWJ1dGUgcmVzb2x1dGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5GaWVsZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+IGRlY2xhcmVkIGFzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkluc2VydFRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3RhZ0hhbmRsZXIiPnRhZ0hhbmRsZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RmluYWxlIGhhbmRsZXIgb2YgdGFnIG1ldGhvZHM8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkluc2VydFRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI2NyZWF0ZVRhZ0hhbmRsZXIoKSI+Y3JlYXRlVGFnSGFuZGxlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGFnIGF0dHJpYnV0ZSBhbmQgY3JlYXRlIGNvcnJlc3BvbmRpbmcgdGFnIGhhbmRsZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+SW5zZXJ0VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc09iamVjdFZhbHVlKGphdmEubGFuZy5PYmplY3QpIj5wcm9jZXNzT2JqZWN0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIGFuIG9iamVjdCByZXRyaWV2ZWQgYXMgYSBiZWFuIG9yIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5JbnNlcnRUYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+cHJvY2Vzc05hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5JbnNlcnRUYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzVXJsKGphdmEubGFuZy5TdHJpbmcpIj5wcm9jZXNzVXJsPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VybCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHVybC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+SW5zZXJ0VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc0RlZmluaXRpb25OYW1lKGphdmEubGFuZy5TdHJpbmcpIj5wcm9jZXNzRGVmaW5pdGlvbk5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGFnIGF0dHJpYnV0ZSAiZGVmaW5pdGlvbiIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkluc2VydFRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3Byb2Nlc3NEZWZpbml0aW9uKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb24pIj5wcm9jZXNzRGVmaW5pdGlvbjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4mbmJzcDtkZWZpbml0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RW5kIG9mIFByb2Nlc3MgdGFnIGF0dHJpYnV0ZSAiZGVmaW5pdGlvbiIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkluc2VydFRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3Byb2Nlc3NCZWFuKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5wcm9jZXNzQmVhbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtiZWFuTmFtZSwKKyAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtiZWFuUHJvcGVydHksCisgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YmVhblNjb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyBhIGJlYW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+SW5zZXJ0VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc0F0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+cHJvY2Vzc0F0dHJpYnV0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJvY2VzcyB0YWcgYXR0cmlidXRlICJhdHRyaWJ1dGUiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkluc2VydFRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sI3Byb2Nlc3NBc0RlZmluaXRpb25PclVSTChqYXZhLmxhbmcuU3RyaW5nKSI+cHJvY2Vzc0FzRGVmaW5pdGlvbk9yVVJMPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUcnkgdG8gcHJvY2VzcyBuYW1lIGFzIGEgZGVmaW5pdGlvbiwgb3IgYXMgYW4gVVJMIGlmIG5vdCBmb3VuZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5JbnNlcnRUYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzVHlwZWRBdHRyaWJ1dGUob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQXR0cmlidXRlRGVmaW5pdGlvbikiPnByb2Nlc3NUeXBlZEF0dHJpYnV0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCI+QXR0cmlidXRlRGVmaW5pdGlvbjwvQT4mbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdHlwZWQgYXR0cmlidXRlIGFjY29yZGluZyB0byBpdHMgdHlwZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikluc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0luc2VydFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvSW5zZXJ0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc5NTM1MQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0luc2VydFRhZy5odG1sCkBAIC0wLDAgKzEsMTY0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW5zZXJ0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbnNlcnRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSW5zZXJ0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluc2VydFRhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQj48L0E+PC9URD4KKzxURD4gICAgIFRoZSAic3RydXRzLXRpbGVzIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbgorY3JlYXRpbmcgZHluYW1pYyByZXVzYWJsZSBjb21wb25lbnRzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPkluc2VydFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldFRhZy5odG1sIj5HZXRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyB0aGUgdGFnIGhhbmRsZXIgZm9yICZsdDt0aWxlczpnZXQmZ3Q7LCB3aGljaCBnZXRzCisgY29udGVudCBmcm9tIHRoZSByZXF1ZXN0IHNjb3BlIGFuZCBlaXRoZXIgaW5jbHVkZXMgdGhlIGNvbnRlbnQgb3IgcHJpbnRzCisgaXQsIGRlcGVuZGluZyB1cG9uIHRoZSB2YWx1ZSBvZiB0aGUgY29udGVudCdzIDxjb2RlPmRpcmVjdDwvY29kZT4gYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ikluc2VydFRhZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2NsYXNzLXVzZS9QdXRMaXN0VGFnLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2NsYXNzLXVzZS9QdXRMaXN0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWJlNjhiNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL1B1dExpc3RUYWcuaHRtbApAQCAtMCwwICsxLDE5NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dExpc3RUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dExpc3RUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlB1dExpc3RUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0TGlzdFRhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9CPjwvQT48L1REPgorPFREPiAgICAgVGhlICJzdHJ1dHMtdGlsZXMiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluCitjcmVhdGluZyBkeW5hbWljIHJldXNhYmxlIGNvbXBvbmVudHMuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj5QdXRMaXN0VGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5QdXRMaXN0VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sI3Byb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dExpc3RUYWcpIj5wcm9jZXNzTmVzdGVkVGFnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT4mbmJzcDtuZXN0ZWRUYWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIG5lc3RlZCAmbGc7cHV0TGlzdCZndDsgdGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRlZmluaXRpb25UYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0TGlzdFRhZykiPnByb2Nlc3NOZXN0ZWRUYWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj5QdXRMaXN0VGFnPC9BPiZuYnNwO25lc3RlZFRhZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgbmVzdGVkICZsZztwdXRMaXN0Jmd0OyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UHV0TGlzdFRhZ1BhcmVudC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCNwcm9jZXNzTmVzdGVkVGFnKG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRMaXN0VGFnKSI+cHJvY2Vzc05lc3RlZFRhZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+Jm5ic3A7bmVzdGVkVGFnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGFuIGF0dHJpYnV0ZSB0byBjb250YWluZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+SW5zZXJ0VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0TGlzdFRhZykiPnByb2Nlc3NOZXN0ZWRUYWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj5QdXRMaXN0VGFnPC9BPiZuYnNwO25lc3RlZFRhZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgbmVzdGVkICZsZztwdXRMaXN0Jmd0OyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+SW5zZXJ0VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHV0QXR0cmlidXRlKG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRMaXN0VGFnKSI+cHV0QXR0cmlidXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+UHV0TGlzdFRhZzwvQT4mbmJzcDtuZXN0ZWRUYWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNZXRob2QgY2FsbHMgYnkgbmVzdGVkICZsZztwdXRMaXN0Jmd0OyB0YWdzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQdXRMaXN0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL1B1dExpc3RUYWdQYXJlbnQuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL1B1dExpc3RUYWdQYXJlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGU5NzU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvUHV0TGlzdFRhZ1BhcmVudC5odG1sCkBAIC0wLDAgKzEsMjA2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dExpc3RUYWdQYXJlbnQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgSW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRMaXN0VGFnUGFyZW50IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQdXRMaXN0VGFnUGFyZW50Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgSW50ZXJmYWNlPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRMaXN0VGFnUGFyZW50PC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCI+UHV0TGlzdFRhZ1BhcmVudDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0I+PC9BPjwvVEQ+Cis8VEQ+ICAgICBUaGUgInN0cnV0cy10aWxlcyIgdGFnIGxpYnJhcnkgY29udGFpbnMgdGFncyB0aGF0IGFyZSB1c2VmdWwgaW4KK2NyZWF0aW5nIGR5bmFtaWMgcmV1c2FibGUgY29tcG9uZW50cy4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCI+UHV0TGlzdFRhZ1BhcmVudDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+IHRoYXQgaW1wbGVtZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnUGFyZW50Lmh0bWwiPlB1dExpc3RUYWdQYXJlbnQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sIj5EZWZpbml0aW9uVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgaXMgdGhlIHRhZyBoYW5kbGVyIGZvciAmbHQ7dGlsZXM6ZGVmaW5pdGlvbiZndDssIHdoaWNoIGRlZmluZXMKKyBhIHRpbGVzIChvciB0ZW1wbGF0ZSAvIGNvbXBvbmVudCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRUYWcuaHRtbCI+R2V0VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgaXMgdGhlIHRhZyBoYW5kbGVyIGZvciAmbHQ7dGlsZXM6Z2V0Jmd0Oywgd2hpY2ggZ2V0cworIGNvbnRlbnQgZnJvbSB0aGUgcmVxdWVzdCBzY29wZSBhbmQgZWl0aGVyIGluY2x1ZGVzIHRoZSBjb250ZW50IG9yIHByaW50cworIGl0LCBkZXBlbmRpbmcgdXBvbiB0aGUgdmFsdWUgb2YgdGhlIGNvbnRlbnQncyA8Y29kZT5kaXJlY3Q8L2NvZGU+IGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyB0aGUgdGFnIGhhbmRsZXIgZm9yICZsdDt0aWxlczppbnNlcnQmZ3Q7LCB3aGljaCBpbmNsdWRlcworIGEgdGVtcGxhdGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmh0bWwiPlB1dExpc3RUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHV0TGlzdCB0YWcgaW1wbGVtZW50YXRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCI+UHV0TGlzdFRhZ1BhcmVudDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj5QdXRMaXN0VGFnUGFyZW50PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5QdXRMaXN0VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sI2ZpbmRFbmNsb3NpbmdQYXJlbnQoKSI+ZmluZEVuY2xvc2luZ1BhcmVudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZpbmQgZW5jbG9zaW5nIHBhcmVudCB0YWcgYWNjZXB0aW5nIHRoaXMgdGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQdXRMaXN0VGFnUGFyZW50Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL1B1dFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvUHV0VGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjlkZGQ0NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL1B1dFRhZy5odG1sCkBAIC0wLDAgKzEsMTk0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHV0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dFRhZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQj48L0E+PC9URD4KKzxURD4gICAgIFRoZSAic3RydXRzLXRpbGVzIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbgorY3JlYXRpbmcgZHluYW1pYyByZXVzYWJsZSBjb21wb25lbnRzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj5QdXRUYWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZy5odG1sIj5BZGRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGFuIGVsZW1lbnQgdG8gdGhlIHN1cnJvdW5kaW5nIGxpc3QgdGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uVGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sI3Byb2Nlc3NOZXN0ZWRUYWcob3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dFRhZykiPnByb2Nlc3NOZXN0ZWRUYWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT4mbmJzcDtuZXN0ZWRUYWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIG5lc3RlZCAmbGc7cHV0Jmd0OyB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UHV0VGFnUGFyZW50LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnUGFyZW50Lmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnKSI+cHJvY2Vzc05lc3RlZFRhZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPiZuYnNwO25lc3RlZFRhZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIG5lc3RlZCB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+SW5zZXJ0VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjcHJvY2Vzc05lc3RlZFRhZyhvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnKSI+cHJvY2Vzc05lc3RlZFRhZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+UHV0VGFnPC9BPiZuYnNwO25lc3RlZFRhZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgbmVzdGVkICZsZztwdXQmZ3Q7IHRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQdXRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvUHV0VGFnUGFyZW50Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2NsYXNzLXVzZS9QdXRUYWdQYXJlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjMxNjc0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvUHV0VGFnUGFyZW50Lmh0bWwKQEAgLTAsMCArMSwxOTggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIEludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnUGFyZW50IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIEludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnUGFyZW50IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnUGFyZW50Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlB1dFRhZ1BhcmVudC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIEludGVyZmFjZTxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuUHV0VGFnUGFyZW50PC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5odG1sIj5QdXRUYWdQYXJlbnQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9CPjwvQT48L1REPgorPFREPiAgICAgVGhlICJzdHJ1dHMtdGlsZXMiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluCitjcmVhdGluZyBkeW5hbWljIHJldXNhYmxlIGNvbXBvbmVudHMuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWdQYXJlbnQuaHRtbCI+UHV0VGFnUGFyZW50PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT4gdGhhdCBpbXBsZW1lbnQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5odG1sIj5QdXRUYWdQYXJlbnQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sIj5EZWZpbml0aW9uVGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgaXMgdGhlIHRhZyBoYW5kbGVyIGZvciAmbHQ7dGlsZXM6ZGVmaW5pdGlvbiZndDssIHdoaWNoIGRlZmluZXMKKyBhIHRpbGVzIChvciB0ZW1wbGF0ZSAvIGNvbXBvbmVudCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRUYWcuaHRtbCI+R2V0VGFnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgaXMgdGhlIHRhZyBoYW5kbGVyIGZvciAmbHQ7dGlsZXM6Z2V0Jmd0Oywgd2hpY2ggZ2V0cworIGNvbnRlbnQgZnJvbSB0aGUgcmVxdWVzdCBzY29wZSBhbmQgZWl0aGVyIGluY2x1ZGVzIHRoZSBjb250ZW50IG9yIHByaW50cworIGl0LCBkZXBlbmRpbmcgdXBvbiB0aGUgdmFsdWUgb2YgdGhlIGNvbnRlbnQncyA8Y29kZT5kaXJlY3Q8L2NvZGU+IGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj5JbnNlcnRUYWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyB0aGUgdGFnIGhhbmRsZXIgZm9yICZsdDt0aWxlczppbnNlcnQmZ3Q7LCB3aGljaCBpbmNsdWRlcworIGEgdGVtcGxhdGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5odG1sIj5QdXRUYWdQYXJlbnQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5odG1sIj5QdXRUYWdQYXJlbnQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlB1dFRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dFRhZy5odG1sI2ZpbmRFbmNsb3NpbmdQdXRUYWdQYXJlbnQoKSI+ZmluZEVuY2xvc2luZ1B1dFRhZ1BhcmVudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZpbmQgcGFyZW50IHRhZyB3aGljaCBtdXN0IGltcGxlbWVudCBBdHRyaWJ1dGVDb250YWluZXIuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWdQYXJlbnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHV0VGFnUGFyZW50Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL1VzZUF0dHJpYnV0ZVRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvVXNlQXR0cmlidXRlVGFnLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDY1NzE5MgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL1VzZUF0dHJpYnV0ZVRhZy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuVXNlQXR0cmlidXRlVGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5Vc2VBdHRyaWJ1dGVUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVXNlQXR0cmlidXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlVzZUF0dHJpYnV0ZVRhZzwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuVXNlQXR0cmlidXRlVGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVXNlQXR0cmlidXRlVGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL1VzZUF0dHJpYnV0ZVRlaS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvVXNlQXR0cmlidXRlVGVpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk1ZDQ1ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL1VzZUF0dHJpYnV0ZVRlaS5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ1IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuVXNlQXR0cmlidXRlVGVpIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5Vc2VBdHRyaWJ1dGVUZWkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVXNlQXR0cmlidXRlVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlVzZUF0dHJpYnV0ZVRlaTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuVXNlQXR0cmlidXRlVGVpCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUZWkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVXNlQXR0cmlidXRlVGVpLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZG9jLWZpbGVzL3RpbGVzVU1MLmdpZiBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZG9jLWZpbGVzL3RpbGVzVU1MLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YThkZmFlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9kb2MtZmlsZXMvdGlsZXNVTUwuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGY0MjJhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvVGV4dFRhZy5odG1sCkBAIC0wLDAgKzEsNDkwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVGV4dFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dC5UZXh0VGFnLFRleHRUYWcgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlRleHRUYWcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVGV4dFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRleHRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQ8L0ZPTlQ+Cis8QlI+CitDbGFzcyBUZXh0VGFnPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQKKyAgICAgICAgfAorICAgICAgICArLS1qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlRmllbGRUYWc8L0E+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dC5UZXh0VGFnPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcsIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9ERD4KKzwvREw+Cis8SFI+Cis8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2Ugby5hLnMudGFnbGliLmh0bWwuVGV4dFRhZyBpbnN0ZWFkLjwvST4KKzxQPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5UZXh0VGFnPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9ETD4KKworPFA+CitDb252ZW5pZW5jZSBiYXNlIGNsYXNzIGZvciB0aGUgdmFyaW91cyBpbnB1dCB0YWdzIGZvciB0ZXh0IGZpZWxkcy4KKyBNb2RpZmljYXRpb24gOiBhZGQgYW4gcHJlZml4IHByb3BlcnR5Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuLCBDZWRyaWMgRHVtb3VsaW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dC5UZXh0VGFnIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9UZXh0VGFnLmh0bWwjcHJlZml4Ij5wcmVmaXg8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VGhlIHByZWZpeCB0byBiZSBhZGRlZCBiZWZvcmUgdGhlIGh0bWwgbmFtZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj5CYXNlRmllbGRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjYWNjZXB0Ij5hY2NlcHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjcmVkaXNwbGF5Ij5yZWRpc3BsYXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCN0eXBlIj50eXBlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5CYXNlSW5wdXRUYWc8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjY29scyI+Y29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI21heGxlbmd0aCI+bWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjcm93cyI+cm93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VIYW5kbGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjYWNjZXNza2V5Ij5hY2Nlc3NrZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2luZGV4ZWQiPmluZGV4ZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3RhYmluZGV4Ij50YWJpbmRleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5ib2R5Q29udGVudDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5pZCwgcGFnZUNvbnRleHQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZzwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPkVWQUxfQk9EWV9UQUc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5FVkFMX0JPRFlfSU5DTFVERSwgRVZBTF9QQUdFLCBTS0lQX0JPRFksIFNLSVBfUEFHRTwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvVGV4dFRhZy5odG1sI1RleHRUYWcoKSI+VGV4dFRhZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIHRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9UZXh0VGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7R2VuZXJhdGUgdGhlIHJlcXVpcmVkIGlucHV0IHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCNnZXRQcmVmaXgoKSI+Z2V0UHJlZml4PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9UZXh0VGFnLmh0bWwjcmVsZWFzZSgpIj5yZWxlYXNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCNzZXRQcmVmaXgoamF2YS5sYW5nLlN0cmluZykiPnNldFByZWZpeDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNnZXRBY2NlcHQoKSI+Z2V0QWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0TmFtZSgpIj5nZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZ2V0UmVkaXNwbGF5KCkiPmdldFJlZGlzcGxheTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldEFjY2VwdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWNjZXB0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sI3NldFJlZGlzcGxheShib29sZWFuKSI+c2V0UmVkaXNwbGF5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VJbnB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPkJhc2VJbnB1dFRhZzwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNkb0VuZFRhZygpIj5kb0VuZFRhZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldENvbHMoKSI+Z2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldE1heGxlbmd0aCgpIj5nZXRNYXhsZW5ndGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFJvd3MoKSI+Z2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFNpemUoKSI+Z2V0U2l6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Q29scyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29sczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldE1heGxlbmd0aChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TWF4bGVuZ3RoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwjc2V0Um93cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um93czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI3NldFNpemUoamF2YS5sYW5nLlN0cmluZykiPnNldFNpemU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSW5wdXRUYWcuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUhhbmRsZXJUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwiPkJhc2VIYW5kbGVyVGFnPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWNjZXNza2V5KCkiPmdldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0KCkiPmdldEFsdDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QWx0S2V5KCkiPmdldEFsdEtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0QnVuZGxlKCkiPmdldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0RGlzYWJsZWQoKSI+Z2V0RGlzYWJsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEVsZW1lbnRDbG9zZSgpIj5nZXRFbGVtZW50Q2xvc2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldEluZGV4ZWQoKSI+Z2V0SW5kZXhlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25ibHVyKCkiPmdldE9uYmx1cjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25jaGFuZ2UoKSI+Z2V0T25jaGFuZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uY2xpY2soKSI+Z2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25kYmxjbGljaygpIj5nZXRPbmRibGNsaWNrPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbmZvY3VzKCkiPmdldE9uZm9jdXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5ZG93bigpIj5nZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ua2V5cHJlc3MoKSI+Z2V0T25rZXlwcmVzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25rZXl1cCgpIj5nZXRPbmtleXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRPbm1vdXNlZG93bigpIj5nZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW1vdmUoKSI+Z2V0T25tb3VzZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2VvdXQoKSI+Z2V0T25tb3VzZW91dDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0T25tb3VzZW92ZXIoKSI+Z2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9ubW91c2V1cCgpIj5nZXRPbm1vdXNldXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldE9uc2VsZWN0KCkiPmdldE9uc2VsZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRSZWFkb25seSgpIj5nZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGUoKSI+Z2V0U3R5bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFN0eWxlQ2xhc3MoKSI+Z2V0U3R5bGVDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0U3R5bGVJZCgpIj5nZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNnZXRUYWJpbmRleCgpIj5nZXRUYWJpbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjZ2V0VGl0bGUoKSI+Z2V0VGl0bGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2dldFRpdGxlS2V5KCkiPmdldFRpdGxlS2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNpc1hodG1sKCkiPmlzWGh0bWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI2xvb2t1cFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5sb29rdXBQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjbWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUV2ZW50SGFuZGxlcnMoKSI+cHJlcGFyZUV2ZW50SGFuZGxlcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVGb2N1c0V2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUZvY3VzRXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNwcmVwYXJlSW5kZXgoamF2YS5sYW5nLlN0cmluZ0J1ZmZlciwgamF2YS5sYW5nLlN0cmluZykiPnByZXBhcmVJbmRleDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZUtleUV2ZW50cyhqYXZhLmxhbmcuU3RyaW5nQnVmZmVyKSI+cHJlcGFyZUtleUV2ZW50czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZU1vdXNlRXZlbnRzKGphdmEubGFuZy5TdHJpbmdCdWZmZXIpIj5wcmVwYXJlTW91c2VFdmVudHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3ByZXBhcmVTdHlsZXMoKSI+cHJlcGFyZVN0eWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjcHJlcGFyZVRleHRFdmVudHMoamF2YS5sYW5nLlN0cmluZ0J1ZmZlcikiPnByZXBhcmVUZXh0RXZlbnRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRBY2Nlc3NrZXkoamF2YS5sYW5nLlN0cmluZykiPnNldEFjY2Vzc2tleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0QWx0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRBbHQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldEFsdEtleShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0QWx0S2V5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRCdW5kbGUoamF2YS5sYW5nLlN0cmluZykiPnNldEJ1bmRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0RGlzYWJsZWQoYm9vbGVhbikiPnNldERpc2FibGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRJbmRleGVkKGJvb2xlYW4pIj5zZXRJbmRleGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25ibHVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmJsdXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9uY2hhbmdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmNoYW5nZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25jbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25jbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25kYmxjbGljayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25kYmxjbGljazwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25mb2N1cyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25mb2N1czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25rZXlkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbmtleWRvd248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5cHJlc3MoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5cHJlc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ua2V5dXAoamF2YS5sYW5nLlN0cmluZykiPnNldE9ua2V5dXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2Vkb3duKGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlZG93bjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0T25tb3VzZW1vdmUoamF2YS5sYW5nLlN0cmluZykiPnNldE9ubW91c2Vtb3ZlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3V0KGphdmEubGFuZy5TdHJpbmcpIj5zZXRPbm1vdXNlb3V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbm1vdXNlb3ZlcihqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZW92ZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldE9ubW91c2V1cChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25tb3VzZXVwPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRPbnNlbGVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0T25zZWxlY3Q8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFJlYWRvbmx5KGJvb2xlYW4pIj5zZXRSZWFkb25seTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0U3R5bGUoamF2YS5sYW5nLlN0cmluZykiPnNldFN0eWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRTdHlsZUlkKGphdmEubGFuZy5TdHJpbmcpIj5zZXRTdHlsZUlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNzZXRUYWJpbmRleChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGFiaW5kZXg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sI3NldFRpdGxlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUaXRsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VIYW5kbGVyVGFnLmh0bWwjc2V0VGl0bGVLZXkoamF2YS5sYW5nLlN0cmluZykiPnNldFRpdGxlS2V5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZG9BZnRlckJvZHksIGRvSW5pdEJvZHksIGdldEJvZHlDb250ZW50LCBnZXRQcmV2aW91c091dCwgc2V0Qm9keUNvbnRlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5kQW5jZXN0b3JXaXRoQ2xhc3MsIGdldElkLCBnZXRQYXJlbnQsIGdldFZhbHVlLCBnZXRWYWx1ZXMsIHJlbW92ZVZhbHVlLCBzZXRJZCwgc2V0UGFnZUNvbnRleHQsIHNldFBhcmVudCwgc2V0VmFsdWU8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWc8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5nZXRQYXJlbnQsIHNldFBhZ2VDb250ZXh0LCBzZXRQYXJlbnQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InByZWZpeCI+PCEtLSAtLT48L0E+PEgzPgorcHJlZml4PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcmVmaXg8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBwcmVmaXggdG8gYmUgYWRkZWQgYmVmb3JlIHRoZSBodG1sIG5hbWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iVGV4dFRhZygpIj48IS0tIC0tPjwvQT48SDM+CitUZXh0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+VGV4dFRhZzwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhpcyB0YWcuCis8UD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InJlbGVhc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVsZWFzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVsZWFzZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZWxlYXNlIGFsbCBhbGxvY2F0ZWQgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbGVhc2U8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnPC9DT0RFPjxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCNyZWxlYXNlKCkiPnJlbGVhc2U8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+QmFzZUZpZWxkVGFnPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFByZWZpeCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcmVmaXg8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByZWZpeDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByZWZpeChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UHJlZml4PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQcmVmaXg8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9TdGFydFRhZygpIj48IS0tIC0tPjwvQT48SDM+Citkb1N0YXJ0VGFnPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmRvU3RhcnRUYWc8L0I+KCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+R2VuZXJhdGUgdGhlIHJlcXVpcmVkIGlucHV0IHRhZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5kb1N0YXJ0VGFnPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZzwvQ09ERT48RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwjZG9TdGFydFRhZygpIj5kb1N0YXJ0VGFnPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPkJhc2VGaWVsZFRhZzwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZDwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVGV4dFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRleHRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9jbGFzcy11c2UvVGV4dFRhZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvY2xhc3MtdXNlL1RleHRUYWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDZiMjQyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvY2xhc3MtdXNlL1RleHRUYWcuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dC5UZXh0VGFnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQuVGV4dFRhZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9UZXh0VGFnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRleHRUYWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0LlRleHRUYWc8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dC5UZXh0VGFnCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvVGV4dFRhZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUZXh0VGFnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L3BhY2thZ2UtZnJhbWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L3BhY2thZ2UtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGNhN2I1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvcGFja2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0IHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9wYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0PC9BPjwvRk9OVD4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0NsYXNzZXM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJUZXh0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VGV4dFRhZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L3BhY2thZ2Utc3VtbWFyeS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGZlMTRlOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L3BhY2thZ2Utc3VtbWFyeS5odG1sCkBAIC0wLDAgKzEsMTM3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dCBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dAorPC9IMj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJUZXh0VGFnLmh0bWwiPlRleHRUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIG8uYS5zLnRhZ2xpYi5odG1sLlRleHRUYWcgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvcGFja2FnZS10cmVlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9wYWNrYWdlLXRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzI5ZThiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvcGFja2FnZS10cmVlLmh0bWwKQEAgLTAsMCArMSwxNDYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0IENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dCBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0Cis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXRyZWUuaHRtbCI+QWxsIFBhY2thZ2VzPC9BPjwvREw+Cis8SFI+Cis8SDI+CitDbGFzcyBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuT2JqZWN0PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQgKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWcpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZ1N1cHBvcnQgKGltcGxlbWVudHMgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWcpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj48Qj5CYXNlSGFuZGxlclRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUlucHV0VGFnLmh0bWwiPjxCPkJhc2VJbnB1dFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUZpZWxkVGFnLmh0bWwiPjxCPkJhc2VGaWVsZFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dC48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCI+PEI+VGV4dFRhZzwvQj48L0E+PC9VTD4KKzwvVUw+Cis8L1VMPgorPC9VTD4KKzwvVUw+Cis8L1VMPgorPC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L3BhY2thZ2UtdXNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9wYWNrYWdlLXVzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkYzQ4YWQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9wYWNrYWdlLXVzZS5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuZXh0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBQYWNrYWdlPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQ8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dAorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLWZyYW1lLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2UtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGZlOTFiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw3NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9BPjwvRk9OVD4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0ludGVyZmFjZXM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJBZGRUYWdQYXJlbnQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5BZGRUYWdQYXJlbnQ8L0k+PC9BPgorPEJSPgorPEEgSFJFRj0iQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+Q29tcG9uZW50Q29uc3RhbnRzPC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9Ikluc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0k+PC9BPgorPEJSPgorPEEgSFJFRj0iUHV0TGlzdFRhZ1BhcmVudC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPjxJPlB1dExpc3RUYWdQYXJlbnQ8L0k+PC9BPgorPEJSPgorPEEgSFJFRj0iUHV0VGFnUGFyZW50Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+UHV0VGFnUGFyZW50PC9JPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0NsYXNzZXM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJBZGRUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BZGRUYWc8L0E+Cis8QlI+Cis8QSBIUkVGPSJBdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QXR0cmlidXRlVG9TY29wZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkRlZmluaXRpb25UYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EZWZpbml0aW9uVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EZWZpbml0aW9uVGFnU3VwcG9ydDwvQT4KKzxCUj4KKzxBIEhSRUY9IkdldEF0dHJpYnV0ZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkdldEF0dHJpYnV0ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkdldFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkdldFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkltcG9ydEF0dHJpYnV0ZVRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkltcG9ydEF0dHJpYnV0ZVRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IkluaXREZWZpbml0aW9uc1RhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkluaXREZWZpbml0aW9uc1RhZzwvQT4KKzxCUj4KKzxBIEhSRUY9Ikluc2VydFRhZy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkluc2VydFRhZzwvQT4KKzxCUj4KKzxBIEhSRUY9IlB1dExpc3RUYWcuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5QdXRMaXN0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0iUHV0VGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UHV0VGFnPC9BPgorPEJSPgorPEEgSFJFRj0iVXNlQXR0cmlidXRlVGFnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VXNlQXR0cmlidXRlVGFnPC9BPgorPEJSPgorPEEgSFJFRj0iVXNlQXR0cmlidXRlVGVpLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VXNlQXR0cmlidXRlVGVpPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc5M2VhMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKQEAgLTAsMCArMSwyMzkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzCis8L0gyPgorICAgICBUaGUgInN0cnV0cy10aWxlcyIgdGFnIGxpYnJhcnkgY29udGFpbnMgdGFncyB0aGF0IGFyZSB1c2VmdWwgaW4KK2NyZWF0aW5nIGR5bmFtaWMgcmV1c2FibGUgY29tcG9uZW50cy4KKzxQPgorPEI+U2VlOjwvQj4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxBIEhSRUY9IiNwYWNrYWdlX2Rlc2NyaXB0aW9uIj48Qj5EZXNjcmlwdGlvbjwvQj48L0E+Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+SW50ZXJmYWNlIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQWRkVGFnUGFyZW50Lmh0bWwiPjxJPkFkZFRhZ1BhcmVudDwvST48L0E+PC9CPjwvVEQ+Cis8VEQ+VGFnIGNsYXNzZXMgaW1wbGVtZW50aW5nIHRoaXMgaW50ZXJmYWNlIGNhbiBjb250YWluIG5lc3RlZCA8Y29kZT5QdXRUYWc8L2NvZGU+cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNvbXBvbmVudENvbnN0YW50cy5odG1sIj48ST5Db21wb25lbnRDb25zdGFudHM8L0k+PC9BPjwvQj48L1REPgorPFREPkNvbnN0YW50cyB1c2VkIGJ5IFRpbGVzL0NvbXBvbmVudHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJJbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj48ST5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvST48L0E+PC9CPjwvVEQ+Cis8VEQ+SW5uZXIgSW50ZXJmYWNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUHV0TGlzdFRhZ1BhcmVudC5odG1sIj48ST5QdXRMaXN0VGFnUGFyZW50PC9JPjwvQT48L0I+PC9URD4KKzxURD5UYWcgY2xhc3NlcyBpbXBsZW1lbnRpbmcgdGhpcyBpbnRlcmZhY2UgY2FuIGNvbnRhaW5zIG5lc3RlZCBQdXRUYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJQdXRUYWdQYXJlbnQuaHRtbCI+PEk+UHV0VGFnUGFyZW50PC9JPjwvQT48L0I+PC9URD4KKzxURD5UYWcgY2xhc3NlcyBpbXBsZW1lbnRpbmcgdGhpcyBpbnRlcmZhY2UgY2FuIGNvbnRhaW4gbmVzdGVkIFB1dFRhZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQWRkVGFnLmh0bWwiPkFkZFRhZzwvQT48L0I+PC9URD4KKzxURD5BZGQgYW4gZWxlbWVudCB0byB0aGUgc3Vycm91bmRpbmcgbGlzdCB0YWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJBdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiPkF0dHJpYnV0ZVRvU2NvcGVUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+SXMgIGl0ICBzdGlsbCAgaW4gIHVzZSAgPzwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkRlZmluaXRpb25UYWcuaHRtbCI+RGVmaW5pdGlvblRhZzwvQT48L0I+PC9URD4KKzxURD5UaGlzIGlzIHRoZSB0YWcgaGFuZGxlciBmb3IgJmx0O3RpbGVzOmRlZmluaXRpb24mZ3Q7LCB3aGljaCBkZWZpbmVzCisgYSB0aWxlcyAob3IgdGVtcGxhdGUgLyBjb21wb25lbnQpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCI+RGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8VEQ+Q29tbW9uIGJhc2UgY2xhc3MgZm9yIHRhZ3MgZGVhbGluZyB3aXRoIFRpbGVzIGRlZmluaXRpb25zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iR2V0QXR0cmlidXRlVGFnLmh0bWwiPkdldEF0dHJpYnV0ZVRhZzwvQT48L0I+PC9URD4KKzxURD5SZXRyaWV2ZSB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBjb21wb25lbnQvdGVtcGxhdGUgYXR0cmlidXRlIHByb3BlcnR5LAorIGFuZCByZW5kZXIgaXQgdG8gdGhlIGN1cnJlbnQgSnNwV3JpdGVyIGFzIGEgU3RyaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iR2V0VGFnLmh0bWwiPkdldFRhZzwvQT48L0I+PC9URD4KKzxURD5UaGlzIGlzIHRoZSB0YWcgaGFuZGxlciBmb3IgJmx0O3RpbGVzOmdldCZndDssIHdoaWNoIGdldHMKKyBjb250ZW50IGZyb20gdGhlIHJlcXVlc3Qgc2NvcGUgYW5kIGVpdGhlciBpbmNsdWRlcyB0aGUgY29udGVudCBvciBwcmludHMKKyBpdCwgZGVwZW5kaW5nIHVwb24gdGhlIHZhbHVlIG9mIHRoZSBjb250ZW50J3MgPGNvZGU+ZGlyZWN0PC9jb2RlPiBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJJbXBvcnRBdHRyaWJ1dGVUYWcuaHRtbCI+SW1wb3J0QXR0cmlidXRlVGFnPC9BPjwvQj48L1REPgorPFREPkltcG9ydCBhdHRyaWJ1dGUgZnJvbSBjb21wb25lbnQgdG8gcmVxdWVzdGVkIHNjb3BlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iSW5pdERlZmluaXRpb25zVGFnLmh0bWwiPkluaXREZWZpbml0aW9uc1RhZzwvQT48L0I+PC9URD4KKzxURD5Jbml0IGRlZmluaXRpb25zIGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJJbnNlcnRUYWcuaHRtbCI+SW5zZXJ0VGFnPC9BPjwvQj48L1REPgorPFREPlRoaXMgaXMgdGhlIHRhZyBoYW5kbGVyIGZvciAmbHQ7dGlsZXM6aW5zZXJ0Jmd0Oywgd2hpY2ggaW5jbHVkZXMKKyBhIHRlbXBsYXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUHV0TGlzdFRhZy5odG1sIj5QdXRMaXN0VGFnPC9BPjwvQj48L1REPgorPFREPlB1dExpc3QgdGFnIGltcGxlbWVudGF0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUHV0VGFnLmh0bWwiPlB1dFRhZzwvQT48L0I+PC9URD4KKzxURD5QdXQgYW4gYXR0cmlidXRlIGluIGVuY2xvc2luZyBhdHRyaWJ1dGUgY29udGFpbmVyIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlVzZUF0dHJpYnV0ZVRhZy5odG1sIj5Vc2VBdHRyaWJ1dGVUYWc8L0E+PC9CPjwvVEQ+Cis8VEQ+Q3VzdG9tIHRhZyBleHBvc2luZyBhIGNvbXBvbmVudCBhdHRyaWJ1dGUgdG8gcGFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlVzZUF0dHJpYnV0ZVRlaS5odG1sIj5Vc2VBdHRyaWJ1dGVUZWk8L0E+PC9CPjwvVEQ+Cis8VEQ+SW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPlVzZUF0dHJpYnV0ZTwvYj4KKyB0YWcsIGlkZW50aWZ5aW5nIHRoZSBzY3JpcHRpbmcgb2JqZWN0KHMpIHRvIGJlIG1hZGUgdmlzaWJsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+Cis8QSBOQU1FPSJwYWNrYWdlX2Rlc2NyaXB0aW9uIj48IS0tIC0tPjwvQT48SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyBEZXNjcmlwdGlvbgorPC9IMj4KKworPFA+Cis8cD4gICAgIFRoZSAic3RydXRzLXRpbGVzIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbgorY3JlYXRpbmcgZHluYW1pYyByZXVzYWJsZSBjb21wb25lbnRzLiA8L3A+Cis8aW1nIHNyYz0iZG9jLWZpbGVzL3RpbGVzVU1MLmdpZiIgYWx0PSJUYWdMaWIgVGlsZXMgVU1MIj4KKzxQPgorCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2UtdHJlZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXRyZWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTY5YzhhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXRyZWUuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+CitIaWVyYXJjaHkgRm9yIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXRyZWUuaHRtbCI+QWxsIFBhY2thZ2VzPC9BPjwvREw+Cis8SFI+Cis8SDI+CitDbGFzcyBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuT2JqZWN0PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlci5odG1sIj48Qj5JbnNlcnRUYWcuRGlyZWN0U3RyaW5nSGFuZGxlcjwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sIj48Qj5JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcjwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGVpLmh0bWwiPjxCPlVzZUF0dHJpYnV0ZVRlaTwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiPjxCPkF0dHJpYnV0ZVRvU2NvcGVUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydCAoaW1wbGVtZW50cyBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuQm9keVRhZykKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPjxCPlB1dFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPkNvbXBvbmVudENvbnN0YW50czwvQT4pCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZy5odG1sIj48Qj5BZGRUYWc8L0I+PC9BPjwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIj48Qj5EZWZpbml0aW9uVGFnU3VwcG9ydDwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmh0bWwiPjxCPkRlZmluaXRpb25UYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCI+UHV0TGlzdFRhZ1BhcmVudDwvQT4sIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnUGFyZW50Lmh0bWwiPlB1dFRhZ1BhcmVudDwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5odG1sIj48Qj5JbnNlcnRUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+LCBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCI+UHV0TGlzdFRhZ1BhcmVudDwvQT4sIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnUGFyZW50Lmh0bWwiPlB1dFRhZ1BhcmVudDwvQT4pCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldFRhZy5odG1sIj48Qj5HZXRUYWc8L0I+PC9BPjwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCI+PEI+R2V0QXR0cmlidXRlVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwiPjxCPkltcG9ydEF0dHJpYnV0ZVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Jbml0RGVmaW5pdGlvbnNUYWcuaHRtbCI+PEI+SW5pdERlZmluaXRpb25zVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5odG1sIj48Qj5QdXRMaXN0VGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWdQYXJlbnQuaHRtbCI+QWRkVGFnUGFyZW50PC9BPiwgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPiwgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnUGFyZW50Lmh0bWwiPlB1dExpc3RUYWdQYXJlbnQ8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuaHRtbCI+PEI+VXNlQXR0cmlidXRlVGFnPC9CPjwvQT48L1VMPgorPC9VTD4KKzwvVUw+Cis8SDI+CitJbnRlcmZhY2UgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50Lmh0bWwiPjxCPkFkZFRhZ1BhcmVudDwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPjxCPkNvbXBvbmVudENvbnN0YW50czwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+PEI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCI+PEI+UHV0TGlzdFRhZ1BhcmVudDwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnUGFyZW50Lmh0bWwiPjxCPlB1dFRhZ1BhcmVudDwvQj48L0E+PC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2UtdXNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2UtdXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UyMzhkOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS11c2UuaHRtbApAQCAtMCwwICsxLDIyOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIFBhY2thZ2U8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9CPjwvQT48L1REPgorPFREPiAgICAgVGhlICJzdHJ1dHMtdGlsZXMiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluCitjcmVhdGluZyBkeW5hbWljIHJldXNhYmxlIGNvbXBvbmVudHMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvQT48L1REPgorPFREPjxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0FkZFRhZy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyI+PEI+QWRkVGFnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhbiBlbGVtZW50IHRvIHRoZSBzdXJyb3VuZGluZyBsaXN0IHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvQWRkVGFnUGFyZW50Lmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIj48Qj5BZGRUYWdQYXJlbnQ8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGFnIGNsYXNzZXMgaW1wbGVtZW50aW5nIHRoaXMgaW50ZXJmYWNlIGNhbiBjb250YWluIG5lc3RlZCA8Y29kZT5QdXRUYWc8L2NvZGU+cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIj48Qj5Db21wb25lbnRDb25zdGFudHM8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RhbnRzIHVzZWQgYnkgVGlsZXMvQ29tcG9uZW50cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvRGVmaW5pdGlvblRhZ1N1cHBvcnQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjxCPkRlZmluaXRpb25UYWdTdXBwb3J0PC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbW1vbiBiYXNlIGNsYXNzIGZvciB0YWdzIGRlYWxpbmcgd2l0aCBUaWxlcyBkZWZpbml0aW9ucy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvSW5zZXJ0VGFnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIj48Qj5JbnNlcnRUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyB0aGUgdGFnIGhhbmRsZXIgZm9yICZsdDt0aWxlczppbnNlcnQmZ3Q7LCB3aGljaCBpbmNsdWRlcworIGEgdGVtcGxhdGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIj48Qj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbm5lciBJbnRlcmZhY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL1B1dExpc3RUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjxCPlB1dExpc3RUYWc8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHV0TGlzdCB0YWcgaW1wbGVtZW50YXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvY2xhc3MtdXNlL1B1dExpc3RUYWdQYXJlbnQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjxCPlB1dExpc3RUYWdQYXJlbnQ8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGFnIGNsYXNzZXMgaW1wbGVtZW50aW5nIHRoaXMgaW50ZXJmYWNlIGNhbiBjb250YWlucyBuZXN0ZWQgUHV0VGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2NsYXNzLXVzZS9QdXRUYWcuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjxCPlB1dFRhZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQdXQgYW4gYXR0cmlidXRlIGluIGVuY2xvc2luZyBhdHRyaWJ1dGUgY29udGFpbmVyIHRhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvUHV0VGFnUGFyZW50Lmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIj48Qj5QdXRUYWdQYXJlbnQ8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGFnIGNsYXNzZXMgaW1wbGVtZW50aW5nIHRoaXMgaW50ZXJmYWNlIGNhbiBjb250YWluIG5lc3RlZCBQdXRUYWcuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9jbGFzcy11c2UvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPkNvbXBvbmVudENvbnN0YW50czwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdGFudHMgdXNlZCBieSBUaWxlcy9Db21wb25lbnRzLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2MzNjI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwKQEAgLTAsMCArMSw1NjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitUYWdVdGlscyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWwuVGFnVXRpbHMsVGFnVXRpbHMgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlRhZ1V0aWxzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1RhZ1V0aWxzLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGFnVXRpbHMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsPC9GT05UPgorPEJSPgorQ2xhc3MgVGFnVXRpbHM8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbC5UYWdVdGlsczwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5UYWdVdGlsczwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4KKworPFA+CitDb2xsZWN0aW9uIG9mIHV0aWxpdGllcy4KKyBUaGlzIGNsYXNzIGFsc28gc2VydmVzIGFzIGFuIGludGVyZmFjZSBiZXR3ZWVuIENvbXBvbmVudHMgYW5kIFN0cnV0cy4gSWYKKyB5b3Ugd2FudCB0byByaXAgYXdheSBTdHJ1dHMsIHNpbXBseSByZWltcGxlbWVudCBzb21lIG1ldGhvZHMgaW4gdGhpcyBjbGFzcy4KKyBZb3UgY2FuIGNvcHkgdGhlbSBmcm9tIFN0cnV0cy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DZWRyaWMgRHVtb3VsaW4sIERhdmlkIEdyYWhhbTwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwjZGVidWciPmRlYnVnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlYnVnIGZsYWc8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwjVGFnVXRpbHMoKSI+VGFnVXRpbHM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwjZmluZEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPmZpbmRBdHRyaWJ1dGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YmVhbk5hbWUsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZWFyY2ggYXR0cmlidXRlIGluIGRpZmZlcmVudCBjb250ZXh0cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9UYWdVdGlscy5odG1sI2dldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+Z2V0QXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2JlYW5OYW1lLAorICAgICAgICAgICAgIGludCZuYnNwO3Njb3BlLAorICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgb2JqZWN0IGZyb20gcmVxdWVzdGVkIGNvbnRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCNnZXRDb21wb25lbnREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+Z2V0Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGNvbXBvbmVudCBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwjZ2V0UHJvcGVydHkoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPmdldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sCisgbm8gbWF0dGVyIHdoaWNoIHByb3BlcnR5IHJlZmVyZW5jZSBmb3JtYXQgaXMgdXNlZCwgd2l0aCBubworIHR5cGUgY29udmVyc2lvbnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCNnZXRSZWFsVmFsdWVGcm9tQmVhbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPmdldFJlYWxWYWx1ZUZyb21CZWFuPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2JlYW5OYW1lLAorICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2JlYW5Qcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtiZWFuU2NvcGUsCisgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TG9jYXRlIGFuZCByZXR1cm4gdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sIGZyb20KKyBhbiBvcHRpb25hbGx5IHNwZWNpZmllZCBzY29wZSwgaW4gdGhlIHNwZWNpZmllZCBwYWdlIGNvbnRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9UYWdVdGlscy5odG1sI2dldFNjb3BlKGphdmEubGFuZy5TdHJpbmcsIGludCkiPmdldFNjb3BlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlTmFtZSwKKyAgICAgICAgIGludCZuYnNwO2RlZmF1bHRWYWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBzY29wZSB2YWx1ZSBmcm9tIHN0cmluZyB2YWx1ZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwjcmV0cmlldmVCZWFuKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+cmV0cmlldmVCZWFuPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2JlYW5OYW1lLAorICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZU5hbWUsCisgICAgICAgICAgICAgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlIGJlYW4gZnJvbSBwYWdlIGNvbnRleHQsIHVzaW5nIHNwZWNpZmllZCBzY29wZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9UYWdVdGlscy5odG1sI3NhdmVFeGNlcHRpb24oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5UaHJvd2FibGUpIj5zYXZlRXhjZXB0aW9uPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO2V4Y2VwdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NhdmUgdGhlIHNwZWNpZmllZCBleGNlcHRpb24gYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZSBmb3IgbGF0ZXIgdXNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwjc2V0QXR0cmlidXRlKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+c2V0QXR0cmlidXRlPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhblZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U3RvcmUgYmVhbiBpbiBSRVFVRVNUX1NDT1BFIGNvbnRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCNzZXRBdHRyaWJ1dGUoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj5zZXRBdHRyaWJ1dGU8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSwKKyAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTdG9yZSBiZWFuIGluIHJlcXVlc3RlZCBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZGVidWciPjwhLS0gLS0+PC9BPjxIMz4KK2RlYnVnPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gPEI+ZGVidWc8L0I+PC9QUkU+Cis8REw+Cis8REQ+RGVidWcgZmxhZworPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbC5UYWdVdGlscy5kZWJ1ZyI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iVGFnVXRpbHMoKSI+PCEtLSAtLT48L0E+PEgzPgorVGFnVXRpbHM8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5UYWdVdGlsczwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZywgaW50KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgaW50IDxCPmdldFNjb3BlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGVOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7ZGVmYXVsdFZhbHVlKQorICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+R2V0IHNjb3BlIHZhbHVlIGZyb20gc3RyaW5nIHZhbHVlCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNjb3BlTmFtZTwvQ09ERT4gLSBTY29wZSBhcyBhIFN0cmluZy48REQ+PENPREU+ZGVmYXVsdFZhbHVlPC9DT0RFPiAtIFJldHVybmVkIGRlZmF1bHQgdmFsdWUsIGlmIG5vdCBmb3VuZC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+U2NvcGUgYXMgYW4gPGNvZGU+aW50PC9jb2RlPiwgb3IgPGNvZGU+ZGVmYXVsdFZhbHVlPC9jb2RlPiBpZiBzY29wZSBpcyA8Y29kZT5udWxsPC9jb2RlPi4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBTY29wZSBuYW1lIGlzIG5vdCByZWNvZ25pemVkIGFzIGEgdmFsaWQgc2NvcGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvcGVydHk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLk9iamVjdCA8Qj5nZXRQcm9wZXJ0eTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBzcGVjaWZpZWQgYmVhbiwKKyBubyBtYXR0ZXIgd2hpY2ggcHJvcGVydHkgcmVmZXJlbmNlIGZvcm1hdCBpcyB1c2VkLCB3aXRoIG5vCisgdHlwZSBjb252ZXJzaW9ucy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBCZWFuIHdob3NlIHByb3BlcnR5IGlzIHRvIGJlIGV4dHJhY3RlZC48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBQb3NzaWJseSBpbmRleGVkIGFuZC9vciBuZXN0ZWQgbmFtZSBvZiB0aGUgcHJvcGVydHkKKyAgdG8gYmUgZXh0cmFjdGVkLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlCisgIGFjY2VzcyB0byB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kCis8REQ+PENPREU+amF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kCisgIHRocm93cyBhbiBleGNlcHRpb24KKzxERD48Q09ERT5qYXZhLmxhbmcuTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGFjY2Vzc29yIG1ldGhvZCBmb3IgdGhpcworICBwcm9wZXR5IGNhbm5vdCBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmV0cmlldmVCZWFuKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorcmV0cmlldmVCZWFuPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5PYmplY3QgPEI+cmV0cmlldmVCZWFuPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YmVhbk5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHJpZXZlIGJlYW4gZnJvbSBwYWdlIGNvbnRleHQsIHVzaW5nIHNwZWNpZmllZCBzY29wZS4KKyBJZiBzY29wZSBpcyBub3Qgc2V0LCB1c2UgPGNvZGU+ZmluZEF0dHJpYnV0ZSgpPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbk5hbWU8L0NPREU+IC0gTmFtZSBvZiBiZWFuIHRvIHJldHJpZXZlLjxERD48Q09ERT5zY29wZU5hbWU8L0NPREU+IC0gU2NvcGUgb3IgPGNvZGU+bnVsbDwvY29kZT4uIElmIDxjb2RlPm51bGw8L2NvZGU+LCBiZWFuIGlzIHNlYXJjaGVkIHVzaW5nCisgIGZpbmRBdHRyaWJ1dGUoKS48REQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+IC0gQ3VycmVudCBwYWdlQ29udGV4dC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+UmVxdWVzdGVkIGJlYW4gb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgbm90IGZvdW5kLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIFNjb3BlIG5hbWUgaXMgbm90IHJlY29nbml6ZWQgYXMgYSB2YWxpZCBzY29wZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kQXR0cmlidXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5PYmplY3QgPEI+ZmluZEF0dHJpYnV0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2JlYW5OYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCk8L1BSRT4KKzxETD4KKzxERD5TZWFyY2ggYXR0cmlidXRlIGluIGRpZmZlcmVudCBjb250ZXh0cy4KKyBGaXJzdCwgY2hlY2sgaW4gY29tcG9uZW50IGNvbnRleHQsIHRoZW4gdXNlIHBhZ2VDb250ZXh0LmZpbmRBdHRyaWJ1dGUoKS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbk5hbWU8L0NPREU+IC0gTmFtZSBvZiBiZWFuIHRvIHJldHJpZXZlLjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBDdXJyZW50IHBhZ2VDb250ZXh0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5SZXF1ZXN0ZWQgYmVhbiBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiBub3QgZm91bmQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgaW50LCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPmdldEF0dHJpYnV0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2JlYW5OYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtzY29wZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCk8L1BSRT4KKzxETD4KKzxERD5HZXQgb2JqZWN0IGZyb20gcmVxdWVzdGVkIGNvbnRleHQuIFJldHVybiA8Y29kZT5udWxsPC9jb2RlPiBpZiBub3QgZm91bmQuCisgQ29udGV4dCBjYW4gYmUgImNvbXBvbmVudCIgb3Igbm9ybWFsIEpTUCBjb250ZXh0cy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbk5hbWU8L0NPREU+IC0gTmFtZSBvZiBiZWFuIHRvIHJldHJpZXZlLjxERD48Q09ERT5zY29wZTwvQ09ERT4gLSBTY29wZSBmcm9tIHdoaWNoIGJlYW4gbXVzdCBiZSByZXRyaWV2ZWQuPEREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPiAtIEN1cnJlbnQgcGFnZUNvbnRleHQuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlJlcXVlc3RlZCBiZWFuIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIG5vdCBmb3VuZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJlYWxWYWx1ZUZyb21CZWFuKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVhbFZhbHVlRnJvbUJlYW48L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLk9iamVjdCA8Qj5nZXRSZWFsVmFsdWVGcm9tQmVhbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2JlYW5OYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtiZWFuUHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2JlYW5TY29wZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkxvY2F0ZSBhbmQgcmV0dXJuIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlIHNwZWNpZmllZCBiZWFuLCBmcm9tCisgYW4gb3B0aW9uYWxseSBzcGVjaWZpZWQgc2NvcGUsIGluIHRoZSBzcGVjaWZpZWQgcGFnZSBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBQYWdlIGNvbnRleHQgdG8gYmUgc2VhcmNoZWQuPEREPjxDT0RFPmJlYW5OYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIGJlYW4gdG8gYmUgcmV0cmlldmVkLjxERD48Q09ERT5iZWFuUHJvcGVydHk8L0NPREU+IC0gTmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYmUgcmV0cmlldmVkLCBvcgorICA8Y29kZT5udWxsPC9jb2RlPiB0byByZXRyaWV2ZSB0aGUgYmVhbiBpdHNlbGYuPEREPjxDT0RFPmJlYW5TY29wZTwvQ09ERT4gLSBTY29wZSB0byBiZSBzZWFyY2hlZCAocGFnZSwgcmVxdWVzdCwgc2Vzc2lvbiwgYXBwbGljYXRpb24pCisgIG9yIDxjb2RlPm51bGw8L2NvZGU+IHRvIHVzZSA8Y29kZT5maW5kQXR0cmlidXRlKCk8L2NvZGU+IGluc3RlYWQuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gU2NvcGUgbmFtZSBpcyBub3QgcmVjb2duaXplZCBhcyBhIHZhbGlkIHNjb3BlCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBzcGVjaWZpZWQgYmVhbiBpcyBub3QgZm91bmQKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYWNjZXNzaW5nIHRoaXMgcHJvcGVydHkgY2F1c2VzIGFuCisgIElsbGVnYWxBY2Nlc3NFeGNlcHRpb24sIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiwKKyAgSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiwgb3IgTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRBdHRyaWJ1dGUoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5zZXRBdHRyaWJ1dGU8L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+U3RvcmUgYmVhbiBpbiByZXF1ZXN0ZWQgY29udGV4dC4KKyBJZiBzY29wZSBpcyA8Y29kZT5udWxsPC9jb2RlPiwgc2F2ZSBpdCBpbiBSRVFVRVNUX1NDT1BFIGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPiAtIEN1cnJlbnQgcGFnZUNvbnRleHQuPEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgYmVhbi48REQ+PENPREU+c2NvcGU8L0NPREU+IC0gU2NvcGUgdW5kZXIgd2hpY2ggYmVhbiBpcyBzYXZlZCAocGFnZSwgcmVxdWVzdCwgc2Vzc2lvbiwgYXBwbGljYXRpb24pCisgIG9yIDxjb2RlPm51bGw8L2NvZGU+IHRvIHN0b3JlIGluIDxjb2RlPnJlcXVlc3QoKTwvY29kZT4gaW5zdGVhZC48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gQmVhbiB2YWx1ZSB0byBzdG9yZS4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBTY29wZSBuYW1lIGlzIG5vdCByZWNvZ25pemVkIGFzIGEgdmFsaWQgc2NvcGU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEF0dHJpYnV0ZShqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyB2b2lkIDxCPnNldEF0dHJpYnV0ZTwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuVmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlN0b3JlIGJlYW4gaW4gUkVRVUVTVF9TQ09QRSBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBDdXJyZW50IHBhZ2VDb250ZXh0LjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIGJlYW4uPEREPjxDT0RFPmJlYW5WYWx1ZTwvQ09ERT4gLSBCZWFuIHZhbHVlIHRvIHN0b3JlLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIFNjb3BlIG5hbWUgaXMgbm90IHJlY29nbml6ZWQgYXMgYSB2YWxpZCBzY29wZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2F2ZUV4Y2VwdGlvbihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlRocm93YWJsZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3NhdmVFeGNlcHRpb248L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5zYXZlRXhjZXB0aW9uPC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO2V4Y2VwdGlvbik8L1BSRT4KKzxETD4KKzxERD5TYXZlIHRoZSBzcGVjaWZpZWQgZXhjZXB0aW9uIGFzIGEgcmVxdWVzdCBhdHRyaWJ1dGUgZm9yIGxhdGVyIHVzZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+IC0gVGhlIFBhZ2VDb250ZXh0IGZvciB0aGUgY3VycmVudCBwYWdlLjxERD48Q09ERT5leGNlcHRpb248L0NPREU+IC0gVGhlIGV4Y2VwdGlvbiB0byBiZSBzYXZlZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldENvbXBvbmVudERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDb21wb25lbnREZWZpbml0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4gPEI+Z2V0Q29tcG9uZW50RGVmaW5pdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+R2V0IGNvbXBvbmVudCBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIERlZmluaXRpb24gbmFtZS48REQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+IC0gVGhlIFBhZ2VDb250ZXh0IGZvciB0aGUgY3VycmVudCBwYWdlLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIC08L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1RhZ1V0aWxzLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGFnVXRpbHMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvY2xhc3MtdXNlL1RhZ1V0aWxzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvY2xhc3MtdXNlL1RhZ1V0aWxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIxOGQ3ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9jbGFzcy11c2UvVGFnVXRpbHMuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWwuVGFnVXRpbHMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWwuVGFnVXRpbHMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRhZ1V0aWxzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWwuVGFnVXRpbHM8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWwuVGFnVXRpbHMKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGFnVXRpbHMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL3BhY2thZ2UtZnJhbWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9wYWNrYWdlLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2IxZWM4NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbCBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbDwvQT48L0ZPTlQ+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitDbGFzc2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iVGFnVXRpbHMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UYWdVdGlsczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDc3MDRjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sCkBAIC0wLDAgKzEsMTM3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsCis8L0gyPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlRhZ1V0aWxzLmh0bWwiPlRhZ1V0aWxzPC9BPjwvQj48L1REPgorPFREPkNvbGxlY3Rpb24gb2YgdXRpbGl0aWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvcGFja2FnZS10cmVlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvcGFja2FnZS10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWM1NGUwOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9wYWNrYWdlLXRyZWUuaHRtbApAQCAtMCwwICsxLDEzNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWwgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorSGllcmFyY2h5IEZvciBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXRyZWUuaHRtbCI+QWxsIFBhY2thZ2VzPC9BPjwvREw+Cis8SFI+Cis8SDI+CitDbGFzcyBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuT2JqZWN0PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCI+PEI+VGFnVXRpbHM8L0I+PC9BPjwvVUw+Cis8L1VMPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9wYWNrYWdlLXVzZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL3BhY2thZ2UtdXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZmYzJjNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9wYWNrYWdlLXVzZS5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIFBhY2thZ2U8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWw8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWwKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhNTEyNjgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sCkBAIC0wLDAgKzEsNjA1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQWN0aW9uQ29tcG9uZW50U2VydmxldCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQWN0aW9uQ29tcG9uZW50U2VydmxldCxBY3Rpb25Db21wb25lbnRTZXJ2bGV0IGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJBY3Rpb25Db21wb25lbnRTZXJ2bGV0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29udHJvbGxlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBBY3Rpb25Db21wb25lbnRTZXJ2bGV0PC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YXguc2VydmxldC5HZW5lcmljU2VydmxldAorICAgICAgICB8CisgICAgICAgICstLWphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldAorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0PC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkFjdGlvbkNvbXBvbmVudFNlcnZsZXQ8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5TZXJ2bGV0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWc8L0REPgorPC9ETD4KKzxIUj4KKzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlRpbGVzIG5vdyB1c2VzIEFjdGlvblNlcnZsZXQgd2l0aCBUaWxlc1BsdWdpbiBhbmQgVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLjwvST4KKzxQPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5BY3Rpb25Db21wb25lbnRTZXJ2bGV0PC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9ETD4KKworPFA+CitBY3Rpb24gU2VydmxldCB0byBiZSB1c2VkIHdpdGggVGlsZXMgYW5kIFN0cnV0cyAxLjAueC4KKyBGb3IgU3RydXRzIDEuMSwgdXNlIFRpbGVzUGx1Z2luIGFuZCBldmVudHVhbHkgVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLgorIFRoaXMgc2VydmxldCBleHRlbmRzIHN0cnV0cyBvbmUuIEl0IGFkZHMgY2hhbm5lbHMgYW5kIHNjcmVlbnMgZGlzcGF0Y2hpbmcKKyBjYXBhYmlsaXRpZXMuCisgV2Ugb3ZlcmlkZSBhbGwgbWV0aG9kcyB0aGF0IGRvIHJlcXVlc3QgZm9yd2FyZCAoaS5lLiAncHJvY2Vzc0FjdGlvbkZvcndhcmQnCisgYW5kICdwcm9jZXNzVmFsaWRhdGUnKSBpbiBvcmRlciB0byBjYWxsIGEgbmV3IG1ldGhvZCBwZXJmb3JtaW5nIGZvcndhcmQuCisgSW4gZmFjdCwgd2UgY29weSAgbWV0aG9kcyB0byBvdmVyaWRlLCBhbmQgY2hhbmdlIGxpbmVzIGRvaW5nIGZvcndhcmQgd2hpY2gKKyBub3cgY2FsbCAncHJvY2Vzc0ZvcndhcmQoKScuIFJlc3Qgb2YgdGhlIG1ldGhvZCBpcyB1bmNoYW5nZWQuCisgVGhpcyBuZXcgbWV0aG9kIGNvdWxkIG5vdyBiZSBvdmVyaWRlbiBpbiBvcmRlciB0byBkaXNwYXRjaCByZXF1ZXN0IGJlZm9yZQorIGZvcndhcmRpbmcuCisgQ29tcGxpYW50IHRvIEFjdGlvblNlcnZsZXQgZnJvbSBzdHJ1dHMgMjAwMS8wNi8yNSAwMDowMjoyNworPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQWN0aW9uQ29tcG9uZW50U2VydmxldCI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI2RlZmluaXRpb25zRmFjdG9yeSI+ZGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0RlZmluaXRpb25zIGZhY3Rvcnk8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNjb25maWciPmNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjY29uZmlnRGlnZXN0ZXIiPmNvbmZpZ0RpZ2VzdGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNjb252ZXJ0TnVsbCI+Y29udmVydE51bGw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2RhdGFTb3VyY2VzIj5kYXRhU291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVidWciPmRlYnVnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbnRlcm5hbCI+aW50ZXJuYWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ludGVybmFsTmFtZSI+aW50ZXJuYWxOYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNsb2ciPmxvZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjcHJvY2Vzc29yIj5wcm9jZXNzb3I8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3JlZ2lzdHJhdGlvbnMiPnJlZ2lzdHJhdGlvbnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI3NlcnZsZXRNYXBwaW5nIj5zZXJ2bGV0TWFwcGluZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjc2VydmxldE5hbWUiPnNlcnZsZXROYW1lPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCNBY3Rpb25Db21wb25lbnRTZXJ2bGV0KCkiPkFjdGlvbkNvbXBvbmVudFNlcnZsZXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwjZG9Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZG9Gb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7RG8gYSBmb3J3YXJkLCBhbmQgZXZlbnR1YWxseSBjYXRjaCB1cmkgY29udGFpbmluZyBUaWxlcyBkZWZpbml0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCNpbml0KCkiPmluaXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtJbml0IG1ldGhvZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwjaW5pdENvbXBvbmVudERlZmluaXRpb25zTWFwcGluZygpIj5pbml0Q29tcG9uZW50RGVmaW5pdGlvbnNNYXBwaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVhZCBjb21wb25lbnQgaW5zdGFuY2UgbWFwcGluZyBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCNwcm9jZXNzQWN0aW9uRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NBY3Rpb25Gb3J3YXJkPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4mbmJzcDtmb3J3YXJkLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtSW5zdGFuY2UsCisgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtPdmVybG9hZCBzdHJ1dHMxLjAgY291bnRlcnBhcnQgaW4gb3JkZXIgdG8gY2F0Y2ggZm9yd2FyZCBjYWxscy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI3Byb2Nlc3NGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NGb3J3YXJkPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7T3ZlcmxvYWQgc3RydXRzMS4wIGNvdW50ZXJwYXJ0IGluIG9yZGVyIHRvIGNhdGNoIGZvcndhcmQgY2FsbHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCNwcm9jZXNzRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NGb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKKyAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSBkb0ZvcndhcmQgaW5zdGVhZDwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sI3Byb2Nlc3NJbmNsdWRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NJbmNsdWRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7T3ZlcmxvYWQgc3RydXRzMS4wIGNvdW50ZXJwYXJ0IGluIG9yZGVyIHRvIGNhdGNoIGluY2x1ZGUgY2FsbHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCNwcm9jZXNzVmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NWYWxpZGF0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm1JbnN0YW5jZSwKKyAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7T3ZlcmxvYWQgc3RydXRzMS4wIGNvdW50ZXJwYXJ0IGluIG9yZGVyIHRvIGNhdGNoIGZvcndhcmQgY2FsbHMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNhZGRTZXJ2bGV0TWFwcGluZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+YWRkU2VydmxldE1hcHBpbmc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2Rlc3Ryb3koKSI+ZGVzdHJveTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZGVzdHJveUFwcGxpY2F0aW9ucygpIj5kZXN0cm95QXBwbGljYXRpb25zPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZXN0cm95Q29uZmlnRGlnZXN0ZXIoKSI+ZGVzdHJveUNvbmZpZ0RpZ2VzdGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZXN0cm95RGF0YVNvdXJjZXMoKSI+ZGVzdHJveURhdGFTb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZXN0cm95SW50ZXJuYWwoKSI+ZGVzdHJveUludGVybmFsPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNkZXN0cm95TW9kdWxlcygpIj5kZXN0cm95TW9kdWxlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZG9HZXQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5kb0dldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZG9Qb3N0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZG9Qb3N0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNmaW5kRGF0YVNvdXJjZShqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZERhdGFTb3VyY2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ZpbmRGb3JtQmVhbihqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcm1CZWFuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNmaW5kRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nKSI+ZmluZEZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2ZpbmRNYXBwaW5nKGphdmEubGFuZy5TdHJpbmcpIj5maW5kTWFwcGluZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZ2V0QXBwbGljYXRpb25Db25maWcoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldEFwcGxpY2F0aW9uQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXREZWJ1ZygpIj5nZXREZWJ1ZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZ2V0SW50ZXJuYWwoKSI+Z2V0SW50ZXJuYWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2dldE1vZHVsZUNvbmZpZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0TW9kdWxlQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRSZXF1ZXN0UHJvY2Vzc29yKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5nZXRSZXF1ZXN0UHJvY2Vzc29yPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRSZXNvdXJjZXMoKSI+Z2V0UmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0QXBwbGljYXRpb25Db25maWcoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmluaXRBcHBsaWNhdGlvbkNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdEFwcGxpY2F0aW9uRGF0YVNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXRBcHBsaWNhdGlvbkRhdGFTb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0QXBwbGljYXRpb25NZXNzYWdlUmVzb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5pbml0QXBwbGljYXRpb25NZXNzYWdlUmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0QXBwbGljYXRpb25QbHVnSW5zKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5pbml0QXBwbGljYXRpb25QbHVnSW5zPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0Q29uZmlnRGlnZXN0ZXIoKSI+aW5pdENvbmZpZ0RpZ2VzdGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0RGF0YVNvdXJjZXMoKSI+aW5pdERhdGFTb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0SW50ZXJuYWwoKSI+aW5pdEludGVybmFsPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0TW9kdWxlQ29uZmlnKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5pbml0TW9kdWxlQ29uZmlnPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0TW9kdWxlRGF0YVNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXRNb2R1bGVEYXRhU291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW5pdE1vZHVsZU1lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXRNb2R1bGVNZXNzYWdlUmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0TW9kdWxlUGx1Z0lucyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdE1vZHVsZVBsdWdJbnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRPdGhlcigpIj5pbml0T3RoZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sI2luaXRTZXJ2bGV0KCkiPmluaXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZywgaW50KSI+bG9nPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNwcm9jZXNzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cHJvY2VzczwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRvRGVsZXRlLCBkb09wdGlvbnMsIGRvUHV0LCBkb1RyYWNlLCBnZXRMYXN0TW9kaWZpZWQsIHNlcnZpY2UsIHNlcnZpY2U8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LkdlbmVyaWNTZXJ2bGV0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0LkdlbmVyaWNTZXJ2bGV0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Z2V0SW5pdFBhcmFtZXRlciwgZ2V0SW5pdFBhcmFtZXRlck5hbWVzLCBnZXRTZXJ2bGV0Q29uZmlnLCBnZXRTZXJ2bGV0Q29udGV4dCwgZ2V0U2VydmxldEluZm8sIGdldFNlcnZsZXROYW1lLCBpbml0LCBsb2csIGxvZzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRlZmluaXRpb25zRmFjdG9yeSI+PCEtLSAtLT48L0E+PEgzPgorZGVmaW5pdGlvbnNGYWN0b3J5PC9IMz4KKzxQUkU+Citwcml2YXRlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmRlZmluaXRpb25zRmFjdG9yeTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+RGVmaW5pdGlvbnMgZmFjdG9yeQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFjdGlvbkNvbXBvbmVudFNlcnZsZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorQWN0aW9uQ29tcG9uZW50U2VydmxldDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFjdGlvbkNvbXBvbmVudFNlcnZsZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJpbml0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmluaXQ8L0I+KCkKKyAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkluaXQgbWV0aG9kLgorIFRoaXMgbWV0aG9kIGlzIGNhbGwgb24gYW55IHNlcnZsZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNpbml0KCkiPmluaXQ8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB3ZSBjYW5ub3QgY29uZmlndXJlIG91cnNlbHZlcyBjb3JyZWN0bHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXRDb21wb25lbnREZWZpbml0aW9uc01hcHBpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdENvbXBvbmVudERlZmluaXRpb25zTWFwcGluZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+aW5pdENvbXBvbmVudERlZmluaXRpb25zTWFwcGluZzwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmVhZCBjb21wb25lbnQgaW5zdGFuY2UgbWFwcGluZyBjb25maWd1cmF0aW9uIGZpbGUuCisgVGhpcyBpcyB3aGVyZSB3ZSByZWFkIGZpbGVzIHByb3BlcnRpZXMuCis8UD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzQWN0aW9uRm9yd2FyZChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NBY3Rpb25Gb3J3YXJkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5wcm9jZXNzQWN0aW9uRm9yd2FyZDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4mbmJzcDtmb3J3YXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtSW5zdGFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPk92ZXJsb2FkIHN0cnV0czEuMCBjb3VudGVycGFydCBpbiBvcmRlciB0byBjYXRjaCBmb3J3YXJkIGNhbGxzLgorIFRoaXMgaXMgYW4gZXhhY3QgY29weSwgZXhjZXB0IHRoZSBjYWxsIHRvIFJlcXVlc3REaXNwYXRjaGVyLmZvcndhcmQoKQorIHJlcGxhY2VkIGJ5IGRvRm9yd2FyZCgpLgorIFRoaXMgbWV0aG9kIGlzIG9ubHkgdXNlZCB3aXRoIFN0cnV0czEuMC54CisKKyBGb3J3YXJkIHRvIHRoZSBzcGVjaWZpZWQgZGVzdGluYXRpb24sIGJ5IHRoZSBzcGVjaWZpZWQgbWVjaGFuaXNtLAorIGlmIGFuIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIHdhcyByZXR1cm5lZCBieSB0aGUKKyA8Y29kZT5BY3Rpb248L2NvZGU+LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mb3J3YXJkPC9DT0RFPiAtIFRoZSBBY3Rpb25Gb3J3YXJkIHJldHVybmVkIGJ5IG91ciBhY3Rpb248REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5mb3JtSW5zdGFuY2U8L0NPREU+IC0gVGhlIEFjdGlvbkZvcm0gd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzCis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzVmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NWYWxpZGF0ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+cHJvY2Vzc1ZhbGlkYXRlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtSW5zdGFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5PdmVybG9hZCBzdHJ1dHMxLjAgY291bnRlcnBhcnQgaW4gb3JkZXIgdG8gY2F0Y2ggZm9yd2FyZCBjYWxscy4KKyBUaGlzIGlzIGFuIGV4YWN0IGNvcHksIGV4Y2VwdCB0aGUgY2FsbCB0byBSZXF1ZXN0RGlzcGF0Y2hlci5mb3J3YXJkKCkKKyByZXBsYWNlZCBieSBkb0ZvcndhcmQoKS4KKyBUaGlzIG1ldGhvZCBpcyBvbmx5IHVzZWQgd2l0aCBTdHJ1dHMxLjAueAorCisgQ2FsbCB0aGUgPGNvZGU+dmFsaWRhdGUoKTwvY29kZT4gbWV0aG9kIG9mIHRoZSBzcGVjaWZpZWQgQWN0aW9uRm9ybSwKKyBhbmQgZm9yd2FyZCBiYWNrIHRvIHRoZSBpbnB1dCBmb3JtIGlmIHRoZXJlIGFyZSBhbnkgZXJyb3JzLiAgUmV0dXJuCisgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgd2Ugc2hvdWxkIGNvbnRpbnVlIHByb2Nlc3NpbmcgKGFuZCBjYWxsIHRoZQorIDxjb2RlPkFjdGlvbjwvY29kZT4gY2xhc3MgPGNvZGU+cGVyZm9ybSgpPC9jb2RlPiBtZXRob2QpLCBvciByZXR1cm4KKyA8Y29kZT5mYWxzZTwvY29kZT4gaWYgd2UgaGF2ZSBhbHJlYWR5IGZvcndhcmRlZCBjb250cm9sIGJhY2sgdG8gdGhlCisgaW5wdXQgZm9ybS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5mb3JtSW5zdGFuY2U8L0NPREU+IC0gVGhlIEFjdGlvbkZvcm0gd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlc3BvbnNlIHdlIGFyZSBwcm9jZXNzaW5nCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb2Nlc3NGb3J3YXJkKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb2Nlc3NGb3J3YXJkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5wcm9jZXNzRm9yd2FyZDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5PdmVybG9hZCBzdHJ1dHMxLjAgY291bnRlcnBhcnQgaW4gb3JkZXIgdG8gY2F0Y2ggZm9yd2FyZCBjYWxscy4KKyBUaGlzIGlzIGFuIGV4YWN0IGNvcHksIGV4Y2VwdCB0aGUgY2FsbCB0byBSZXF1ZXN0RGlzcGF0Y2hlci5mb3J3YXJkKCkKKyByZXBsYWNlZCBieSBkb0ZvcndhcmQoKS4KKyBUaGlzIG1ldGhvZCBpcyBvbmx5IHVzZWQgd2l0aCBTdHJ1dHMxLjAueAorCisgUHJvY2VzcyBhIGZvcndhcmQgcmVxdWVzdGVkIGJ5IHRoaXMgbWFwcGluZywgaWYgYW55LiAgUmV0dXJuCisgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgcHJvY2Vzc2luZyBvZiB0aGlzIHJlcXVlc3Qgc2hvdWxkIGNvbnRpbnVlIChpLmUuCisgYmUgcHJvY2Vzc2VkIGJ5IGFuIEFjdGlvbiBjbGFzcyksIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiB3ZSBoYXZlCisgYWxyZWFkeSBoYW5kbGVkIHRoaXMgcmVxdWVzdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSByZXNwb25zZSB3ZSBhcmUgcHJvY2Vzc2luZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgaW5jbHVkZWQgcmVzb3VyY2UgdGhyb3dzIGFuIGV4Y2VwdGlvbgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgaW5jbHVkZWQgcmVzb3VyY2UgdGhyb3dzIGFuCisgIGV4Y2VwdGlvbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0luY2x1ZGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc0luY2x1ZGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPnByb2Nlc3NJbmNsdWRlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPk92ZXJsb2FkIHN0cnV0czEuMCBjb3VudGVycGFydCBpbiBvcmRlciB0byBjYXRjaCBpbmNsdWRlIGNhbGxzLgorIFRoaXMgaXMgYW4gZXhhY3QgY29weSwgZXhjZXB0IHRoZSBjYWxsIHRvIFJlcXVlc3REaXNwYXRjaGVyLmluY2x1ZGUoKQorIHJlcGxhY2VkIGJ5IGRvSW5jbHVkZSgpLgorIFRoaXMgbWV0aG9kIGlzIG9ubHkgdXNlZCB3aXRoIFN0cnV0czEuMC54CisKKyBQcm9jZXNzIGFuIGluY2x1ZGUgcmVxdWVzdGVkIGJ5IHRoaXMgbWFwcGluZywgaWYgYW55LiAgUmV0dXJuCisgPGNvZGU+dHJ1ZTwvY29kZT4gaWYgcHJvY2Vzc2luZyBvZiB0aGlzIHJlcXVlc3Qgc2hvdWxkIGNvbnRpbnVlIChpLmUuCisgYmUgcHJvY2Vzc2VkIGJ5IGFuIEFjdGlvbiBjbGFzcyksIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiB3ZSBoYXZlCisgYWxyZWFkeSBoYW5kbGVkIHRoaXMgcmVxdWVzdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSByZXNwb25zZSB3ZSBhcmUgcHJvY2Vzc2luZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgaW5jbHVkZWQgcmVzb3VyY2UgdGhyb3dzIGFuIGV4Y2VwdGlvbgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgaW5jbHVkZWQgcmVzb3VyY2UgdGhyb3dzIGFuCisgIGV4Y2VwdGlvbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0ZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+Citwcm9jZXNzRm9yd2FyZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJvY2Vzc0ZvcndhcmQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+dXNlIGRvRm9yd2FyZCBpbnN0ZWFkPC9JPgorPFA+Cis8REQ+RG8gZm9yd2FyZCwgYW5kIGV2ZW50dWFsbHkgY2F0Y2ggdXJpIGNvbnRhaW5pbmcgVGlsZXMgZGVmaW5pdGlvbi4KKyBNZXRob2QgbGVmdCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT51cmk8L0NPREU+IC0gVXJpIG9yIERlZmluaXRpb24gbmFtZSB0byBmb3J3YXJkPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCBwYWdlIHJlcXVlc3Q8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gQ3VycmVudCBwYWdlIHJlc3BvbnNlCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0ZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+Citkb0ZvcndhcmQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmRvRm9yd2FyZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkRvIGEgZm9yd2FyZCwgYW5kIGV2ZW50dWFsbHkgY2F0Y2ggdXJpIGNvbnRhaW5pbmcgVGlsZXMgZGVmaW5pdGlvbi4KKyBJZiB1cmkgaXMgYSB2YWxpZCB1cmksIGRvIGEgZm9yd2FyZCB0byBpdC4KKyBJZiB1cmkgaXMgYSB2YWxpZCBkZWZpbml0aW9uIG5hbWUsIFRpbGVzIGNvbnRleHQgaXMgY3JlYXRlZCBmcm9tIGRlZmluaXRpb24sCisgYW5kIGRlZmluaXRpb24gcGF0aCBpcyB1c2VkIGFzIHVyaS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dXJpPC9DT0RFPiAtIFVyaSBvciBEZWZpbml0aW9uIG5hbWUgdG8gZm9yd2FyZDxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcGFnZSByZXF1ZXN0PEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIEN1cnJlbnQgcGFnZSByZXNwb25zZQorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db250cm9sbGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbnRyb2xsZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db250cm9sbGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGEzNDZjOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db250cm9sbGVyLmh0bWwKQEAgLTAsMCArMSwzMDEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitBY3Rpb25Db250cm9sbGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5BY3Rpb25Db250cm9sbGVyLEFjdGlvbkNvbnRyb2xsZXIgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkFjdGlvbkNvbnRyb2xsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQWN0aW9uQ29udHJvbGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uQ29udHJvbGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBBY3Rpb25Db250cm9sbGVyPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQWN0aW9uQ29udHJvbGxlcjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+QWN0aW9uQ29udHJvbGxlcjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPjwvREw+CisKKzxQPgorU3RydXRzIHdyYXBwZXIgaW1wbGVtZW50YXRpb24gb2YgQ29udHJvbGxlci4KKyBUaGlzIGltcGxlbWVudGF0aW9uIGFsbG93cyB0byB3cmFwIGEgU3RydXRzIEFjdGlvbiBpbiBhIENvbnRyb2xsZXIuCis8UD4KKworPFA+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbnRyb2xsZXIuaHRtbCNhY3Rpb24iPmFjdGlvbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTdHJ1dHMgYWN0aW9uIHdyYXBwZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db250cm9sbGVyLmh0bWwjQWN0aW9uQ29udHJvbGxlcihvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uKSI+QWN0aW9uQ29udHJvbGxlcjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPiZuYnNwO2FjdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29udHJvbGxlci5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5wZXJmb3JtPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiZuYnNwO3RpbGVDb250ZXh0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TWV0aG9kIGFzc29jaWF0ZWQgdG8gYSB0aWxlIGFuZCBjYWxsZWQgaW1tZWRpYXRlbHkgYmVmb3JlIHRpbGUgaXMgaW5jbHVkZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJhY3Rpb24iPjwhLS0gLS0+PC9BPjxIMz4KK2FjdGlvbjwvSDM+Cis8UFJFPgorcHJpdmF0ZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT4gPEI+YWN0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPlN0cnV0cyBhY3Rpb24gd3JhcHBlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJBY3Rpb25Db250cm9sbGVyKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24pIj48IS0tIC0tPjwvQT48SDM+CitBY3Rpb25Db250cm9sbGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QWN0aW9uQ29udHJvbGxlcjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+Jm5ic3A7YWN0aW9uKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdG9yLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmFjdGlvbjwvQ09ERT4gLSBBY3Rpb24gdG8gYmUgd3JhcHBlZC48L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorcGVyZm9ybTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cGVyZm9ybTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiZuYnNwO3RpbGVDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5NZXRob2QgYXNzb2NpYXRlZCB0byBhIHRpbGUgYW5kIGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUgdGlsZSBpcyBpbmNsdWRlZC4KKyBUaGlzIGltcGxlbWVudGF0aW9uIGNhbGxzIGEgU3RydXRzIEFjdGlvbi4gTm8gc2VydmxldCBpcyBzZXQgYnkgdGhpcyBtZXRob2QuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5wZXJmb3JtPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT50aWxlQ29udGV4dDwvQ09ERT4gLSBDdXJyZW50IHRpbGUgY29udGV4dC48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHJlcXVlc3QuPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIEN1cnJlbnQgcmVzcG9uc2UuPEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIEN1cnJlbnQgc2VydmxldCBjb250ZXh0LgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQWN0aW9uQ29udHJvbGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uQ29udHJvbGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliNjRmOGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sCkBAIC0wLDAgKzEsMjQwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQXR0cmlidXRlRGVmaW5pdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQXR0cmlidXRlRGVmaW5pdGlvbixBdHRyaWJ1dGVEZWZpbml0aW9uIGludGVyZmFjZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQXR0cmlidXRlRGVmaW5pdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0ZPTlQ+Cis8QlI+CitJbnRlcmZhY2UgQXR0cmlidXRlRGVmaW5pdGlvbjwvSDI+Cis8REw+Cis8RFQ+PEI+QWxsIFN1cGVyaW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkFsbCBLbm93biBJbXBsZW1lbnRpbmcgQ2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj5VbnR5cHBlZEF0dHJpYnV0ZTwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgaW50ZXJmYWNlIDxCPkF0dHJpYnV0ZURlZmluaXRpb248L0I+PERUPmV4dGVuZHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0F0dHJpYnV0ZSBkZWZpbml0aW9uIHVzZWQgaW4gYSBjb21wb25lbnQgZGVmaW5pdGlvbi4KKzxQPgorCis8UD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHZhbHVlIGhvbGQgYnkgdGhpcyB0eXBlZCBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cm9sZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCByb2xlIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB2YWx1ZSBob2xkIGJ5IHRoaXMgdHlwZWQgYXR0cmlidXRlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRSb2xlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRSb2xlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cm9sZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgcm9sZSBhdHRyaWJ1dGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmZlMTdiNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwKQEAgLTAsMCArMSw1NjEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitDb21wb25lbnRDb250ZXh0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0LENvbXBvbmVudENvbnRleHQgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkNvbXBvbmVudENvbnRleHQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQ29tcG9uZW50Q29udGV4dC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db250cm9sbGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29tcG9uZW50Q29udGV4dC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBDb21wb25lbnRDb250ZXh0PC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dDwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkNvbXBvbmVudENvbnRleHQ8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ETD4KKworPFA+CitDb21wb25lbnQgY29udGV4dC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEudXRpbC5NYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI2F0dHJpYnV0ZXMiPmF0dHJpYnV0ZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcG9uZW50IGF0dHJpYnV0ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS51dGlsLkl0ZXJhdG9yPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCNFTVBUWV9JVEVSQVRPUiI+RU1QVFlfSVRFUkFUT1I8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RW1wdHlJdGVyYXRvciBvdmVyIGNvbXBvbmVudCBhdHRyaWJ1dGVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI0NvbXBvbmVudENvbnRleHQoKSI+Q29tcG9uZW50Q29udGV4dDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI0NvbXBvbmVudENvbnRleHQob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbikiPkNvbXBvbmVudENvbnRleHQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Jm5ic3A7aW5zdGFuY2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI0NvbXBvbmVudENvbnRleHQoamF2YS51dGlsLk1hcCkiPjxDT0RFPkNvbXBvbmVudENvbnRleHQoTWFwIGF0dHJpYnV0ZXMpPC9DT0RFPjwvQT4gaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwjQ29tcG9uZW50Q29udGV4dChqYXZhLnV0aWwuTWFwKSI+Q29tcG9uZW50Q29udGV4dDwvQT48L0I+KGphdmEudXRpbC5NYXAmbmJzcDthdHRyaWJ1dGVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwjYWRkQWxsKGphdmEudXRpbC5NYXApIj5hZGRBbGw8L0E+PC9CPihqYXZhLnV0aWwuTWFwJm5ic3A7bmV3QXR0cmlidXRlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhbGwgYXR0cmlidXRlcyB0byB0aGlzIGNvbnRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI2FkZE1pc3NpbmcoamF2YS51dGlsLk1hcCkiPmFkZE1pc3Npbmc8L0E+PC9CPihqYXZhLnV0aWwuTWFwJm5ic3A7ZGVmYXVsdEF0dHJpYnV0ZXMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYWxsIG1pc3NpbmcgYXR0cmlidXRlcyB0byB0aGlzIGNvbnRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI2ZpbmRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj5maW5kQXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2JlYW5OYW1lLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RmluZCBvYmplY3QgaW4gb25lIG9mIHRoZSBjb250ZXh0cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwjZ2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj5nZXRBdHRyaWJ1dGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBhbiBhdHRyaWJ1dGUgZnJvbSBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCNnZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgaW50LCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPmdldEF0dHJpYnV0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtiZWFuTmFtZSwKKyAgICAgICAgICAgICBpbnQmbmJzcDtzY29wZSwKKyAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IG9iamVjdCBmcm9tIHJlcXVlc3RlZCBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSXRlcmF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI2dldEF0dHJpYnV0ZU5hbWVzKCkiPmdldEF0dHJpYnV0ZU5hbWVzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IG5hbWVzIG9mIGFsbCBhdHRyaWJ1dGVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCNnZXRDb250ZXh0KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj5nZXRDb250ZXh0PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgY29tcG9uZW50IGNvbnRleHQgZnJvbSByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCNwdXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPnB1dEF0dHJpYnV0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1B1dCBhIG5ldyBhdHRyaWJ1dGUgdG8gY29udGV4dC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwjc2V0Q29udGV4dChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0KSI+c2V0Q29udGV4dDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4mbmJzcDtjb250ZXh0LAorICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1N0b3JlIGNvbXBvbmVudCBjb250ZXh0IGludG8gcmVxdWVzdC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImF0dHJpYnV0ZXMiPjwhLS0gLS0+PC9BPjxIMz4KK2F0dHJpYnV0ZXM8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS51dGlsLk1hcCA8Qj5hdHRyaWJ1dGVzPC9CPjwvUFJFPgorPERMPgorPEREPkNvbXBvbmVudCBhdHRyaWJ1dGVzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRU1QVFlfSVRFUkFUT1IiPjwhLS0gLS0+PC9BPjxIMz4KK0VNUFRZX0lURVJBVE9SPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBqYXZhLnV0aWwuSXRlcmF0b3IgPEI+RU1QVFlfSVRFUkFUT1I8L0I+PC9QUkU+Cis8REw+Cis8REQ+RW1wdHlJdGVyYXRvciBvdmVyIGNvbXBvbmVudCBhdHRyaWJ1dGVzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkNvbXBvbmVudENvbnRleHQoKSI+PCEtLSAtLT48L0E+PEgzPgorQ29tcG9uZW50Q29udGV4dDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbXBvbmVudENvbnRleHQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3Rvci4KKzxQPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQ29tcG9uZW50Q29udGV4dChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uKSI+PCEtLSAtLT48L0E+PEgzPgorQ29tcG9uZW50Q29udGV4dDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbXBvbmVudENvbnRleHQ8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4mbmJzcDtpbnN0YW5jZSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI0NvbXBvbmVudENvbnRleHQoamF2YS51dGlsLk1hcCkiPjxDT0RFPkNvbXBvbmVudENvbnRleHQoTWFwIGF0dHJpYnV0ZXMpPC9DT0RFPjwvQT4gaW5zdGVhZC48L0k+Cis8UD4KKzxERD5Db25zdHJ1Y3Rvci4KKzxQPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQ29tcG9uZW50Q29udGV4dChqYXZhLnV0aWwuTWFwKSI+PCEtLSAtLT48L0E+PEgzPgorQ29tcG9uZW50Q29udGV4dDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbXBvbmVudENvbnRleHQ8L0I+KGphdmEudXRpbC5NYXAmbmJzcDthdHRyaWJ1dGVzKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdG9yLgorIENyZWF0ZSBhIGNvbnRleHQgYW5kIHNldCBzcGVjaWZpZWQgYXR0cmlidXRlcy4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5hdHRyaWJ1dGVzPC9DT0RFPiAtIEF0dHJpYnV0ZXMgdG8gaW5pdGlhbGl6ZSBjb250ZXh0LjwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImFkZEFsbChqYXZhLnV0aWwuTWFwKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkQWxsPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRBbGw8L0I+KGphdmEudXRpbC5NYXAmbmJzcDtuZXdBdHRyaWJ1dGVzKTwvUFJFPgorPERMPgorPEREPkFkZCBhbGwgYXR0cmlidXRlcyB0byB0aGlzIGNvbnRleHQuCisgQ29waWVzIGFsbCBvZiB0aGUgbWFwcGluZ3MgZnJvbSB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZSBtYXAgdG8gdGhpcyBjb250ZXh0LgorIE5ldyBhdHRyaWJ1dGUgbWFwcGluZ3Mgd2lsbCByZXBsYWNlIGFueSBtYXBwaW5ncyB0aGF0IHRoaXMgY29udGV4dCBoYWQgZm9yIGFueSBvZiB0aGUga2V5cworIGN1cnJlbnRseSBpbiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZSBtYXAuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5ld0F0dHJpYnV0ZXM8L0NPREU+IC0gQXR0cmlidXRlcyB0byBhZGQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGRNaXNzaW5nKGphdmEudXRpbC5NYXApIj48IS0tIC0tPjwvQT48SDM+CithZGRNaXNzaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRNaXNzaW5nPC9CPihqYXZhLnV0aWwuTWFwJm5ic3A7ZGVmYXVsdEF0dHJpYnV0ZXMpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGFsbCBtaXNzaW5nIGF0dHJpYnV0ZXMgdG8gdGhpcyBjb250ZXh0LgorIENvcGllcyBhbGwgb2YgdGhlIG1hcHBpbmdzIGZyb20gdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGVzIG1hcCB0byB0aGlzIGNvbnRleHQuCisgTmV3IGF0dHJpYnV0ZSBtYXBwaW5ncyB3aWxsIGJlIGFkZGVkIG9ubHkgaWYgdGhleSBkb24ndCBhbHJlYWR5IGV4aXN0IGluCisgdGhpcyBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kZWZhdWx0QXR0cmlidXRlczwvQ09ERT4gLSBBdHRyaWJ1dGVzIHRvIGFkZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QXR0cmlidXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5nZXRBdHRyaWJ1dGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPkdldCBhbiBhdHRyaWJ1dGUgZnJvbSBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZS4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+PHtPYmplY3R9PjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QXR0cmlidXRlTmFtZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QXR0cmlidXRlTmFtZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuSXRlcmF0b3IgPEI+Z2V0QXR0cmlidXRlTmFtZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgbmFtZXMgb2YgYWxsIGF0dHJpYnV0ZXMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+PHtPYmplY3R9PjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHV0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitwdXRBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnB1dEF0dHJpYnV0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlB1dCBhIG5ldyBhdHRyaWJ1dGUgdG8gY29udGV4dC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBhdHRyaWJ1dGUuPEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5kQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZmluZEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+ZmluZEF0dHJpYnV0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2JlYW5OYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KTwvUFJFPgorPERMPgorPEREPkZpbmQgb2JqZWN0IGluIG9uZSBvZiB0aGUgY29udGV4dHMuCisgT3JkZXIgOiBjb21wb25lbnQgdGhlbiBwYWdlQ29udGV4dC5maW5kQXR0cmlidXRlKCkKKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbk5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgYmVhbiB0byBmaW5kLjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBQYWdlIGNvbnRleHQuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlJlcXVlc3RlZCBiZWFuIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIG5vdCBmb3VuZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBpbnQsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QXR0cmlidXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5nZXRBdHRyaWJ1dGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtiZWFuTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtzY29wZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KTwvUFJFPgorPERMPgorPEREPkdldCBvYmplY3QgZnJvbSByZXF1ZXN0ZWQgY29udGV4dC4KKyBDb250ZXh0IGNhbiBiZSAnY29tcG9uZW50Jy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbk5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgYmVhbiB0byBmaW5kLjxERD48Q09ERT5zY29wZTwvQ09ERT4gLSBTZWFyY2ggc2NvcGUgKHNlZSA8Q09ERT5QYWdlQ29udGV4dDwvQ09ERT4pLjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBQYWdlIGNvbnRleHQuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnJlcXVlc3RlZCBiZWFuIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIG5vdCBmb3VuZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldENvbnRleHQoamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbnRleHQ8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiA8Qj5nZXRDb250ZXh0PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5HZXQgY29tcG9uZW50IGNvbnRleHQgZnJvbSByZXF1ZXN0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFNlcnZsZXRSZXF1ZXN0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5Db21wb25lbnRDb250ZXh0PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb250ZXh0KG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb250ZXh0PC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+c2V0Q29udGV4dDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiZuYnNwO2NvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5TdG9yZSBjb21wb25lbnQgY29udGV4dCBpbnRvIHJlcXVlc3QuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbnRleHQ8L0NPREU+IC0gQ29tcG9uZW50Q29udGV4dCB0byBzdG9yZS48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBSZXF1ZXN0IHRvIHN0b3JlIENvbXBvbmVudENvbnRleHQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db21wb25lbnRDb250ZXh0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbnRyb2xsZXIuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb21wb25lbnRDb250ZXh0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWEyZTUxNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwKQEAgLTAsMCArMSwxMzEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQ29tcG9uZW50RGVmaW5pdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbixDb21wb25lbnREZWZpbml0aW9uIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJDb21wb25lbnREZWZpbml0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXJTdXBwb3J0Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb21wb25lbnREZWZpbml0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIENvbXBvbmVudERlZmluaXRpb248L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCI+WG1sRGVmaW5pdGlvbjwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0RlZmluaXRpb24gb2YgYSB0ZW1wbGF0ZSAvIGNvbXBvbmVudCBhdHRyaWJ1dGVzLgorIEF0dHJpYnV0ZXMgb2YgYSBjb21wb25lbnQgY2FuIGJlIGRlZmluZWQgd2l0aCB0aGUgaGVscCBvZiB0aGlzIGNsYXNzLgorIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgY2FuIGJlIHVzZWQgYXMgYSBiZWFuLCBhbmQgcGFzc2VkIHRvICdpbnNlcnQnIHRhZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb24iPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNBQ1RJT04iPkFDVElPTjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb250cm9sbGVyIG5hbWUgdHlwZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLk1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjYXR0cmlidXRlcyI+YXR0cmlidXRlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdHRyaWJ1dGVzIGRlZmluZWQgZm9yIHRoZSBjb21wb25lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNjb250cm9sbGVyIj5jb250cm9sbGVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Fzc29jaWF0ZWQgQ29udHJvbGxlciBVUkwgb3IgY2xhc3NuYW1lLCBpZiBkZWZpbmVkPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI0NPTlRST0xMRVIiPkNPTlRST0xMRVI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udHJvbGxlciBuYW1lIHR5cGU8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNjb250cm9sbGVySW5zdGFuY2UiPmNvbnRyb2xsZXJJbnN0YW5jZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb250cm9sbGVyIGFzc29jaWF0ZWQgdG8gRGVmaW5pdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2NvbnRyb2xsZXJUeXBlIj5jb250cm9sbGVyVHlwZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBc3NvY2lhdGVkIENvbnRyb2xsZXIgdHlwZW5hbWUsIGlmIGNvbnRyb2xsZXJOYW1lIGRlZmluZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2xvZyI+bG9nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI25hbWUiPm5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGVmaW5pdGlvbiBuYW1lPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNwYXRoIj5wYXRoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBvbmVudCAvIHRlbXBsYXRlIHBhdGggKFVSTCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNyb2xlIj5yb2xlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3JvbGUgYXNzb2NpYXRlZCB0byBkZWZpbml0aW9uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI1VSTCI+VVJMPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnRyb2xsZXIgbmFtZSB0eXBlPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjQ29tcG9uZW50RGVmaW5pdGlvbigpIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjQ29tcG9uZW50RGVmaW5pdGlvbihvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uKSI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4mbmJzcDtkZWZpbml0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29weSBDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNDb21wb25lbnREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEudXRpbC5NYXApIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoLAorICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7YXR0cmlidXRlcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI0NvbXBvbmVudERlZmluaXRpb24ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uKSI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj5YbWxEZWZpbml0aW9uPC9BPiZuYnNwO2RlZmluaXRpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNjcmVhdGVDb250cm9sbGVyKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5jcmVhdGVDb250cm9sbGVyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250cm9sbGVyVHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiBjb250cm9sbGVyIG5hbWVkIGluIHBhcmFtZXRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjY3JlYXRlQ29udHJvbGxlckZyb21DbGFzc25hbWUoamF2YS5sYW5nLlN0cmluZykiPmNyZWF0ZUNvbnRyb2xsZXJGcm9tQ2xhc3NuYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzbmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhIGNvbnRyb2xsZXIgZnJvbSBzcGVjaWZpZWQgY2xhc3NuYW1lPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2dldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBuYW1lZCBhdHRyaWJ1dGUgYXMgYW4gT2JqZWN0LCBvciBudWxsIGlmIG5vCisgYXR0cmlidXRlIG9mIHRoZSBnaXZlbiBuYW1lIGV4aXN0cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLk1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjZ2V0QXR0cmlidXRlcygpIj5nZXRBdHRyaWJ1dGVzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWNjZXNzIG1ldGhvZCBmb3IgdGhlIGF0dHJpYnV0ZXMgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2dldENvbnRyb2xsZXIoKSI+Z2V0Q29udHJvbGxlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgbG9jYWwgVVJMLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNnZXRDb250cm9sbGVySW5zdGFuY2UoKSI+Z2V0Q29udHJvbGxlckluc3RhbmNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGNvbnRyb2xsZXIgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2dldENvbnRyb2xsZXJUeXBlKCkiPmdldENvbnRyb2xsZXJUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciB0eXBlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBY2Nlc3MgbWV0aG9kIGZvciB0aGUgbmFtZSBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjZ2V0T3JDcmVhdGVDb250cm9sbGVyKCkiPmdldE9yQ3JlYXRlQ29udHJvbGxlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBvciBjcmVhdGUgY29udHJvbGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjZ2V0UGFnZSgpIj5nZXRQYWdlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWNjZXNzIG1ldGhvZCBmb3IgdGhlIHBhdGggcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2dldFBhdGgoKSI+Z2V0UGF0aDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FjY2VzcyBtZXRob2QgZm9yIHRoZSBwYXRoIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBY2Nlc3MgbWV0aG9kIGZvciB0aGUgcm9sZSBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjZ2V0VGVtcGxhdGUoKSI+Z2V0VGVtcGxhdGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBY2Nlc3MgbWV0aG9kIGZvciB0aGUgdGVtcGxhdGUgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3B1dChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+cHV0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2NvbnRlbnQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQdXQgYW4gYXR0cmlidXRlIGluIGNvbXBvbmVudCAvIHRlbXBsYXRlIGRlZmluaXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3B1dChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBib29sZWFuKSI+cHV0PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2NvbnRlbnQsCisgICAgYm9vbGVhbiZuYnNwO2RpcmVjdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1B1dCBhbiBhdHRyaWJ1dGUgaW4gdGVtcGxhdGUgZGVmaW5pdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjcHV0KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGJvb2xlYW4sIGphdmEubGFuZy5TdHJpbmcpIj5wdXQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7Y29udGVudCwKKyAgICBib29sZWFuJm5ic3A7ZGlyZWN0LAorICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHV0IGFuIGF0dHJpYnV0ZSBpbiB0ZW1wbGF0ZSBkZWZpbml0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNwdXQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPnB1dDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDtjb250ZW50LAorICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt0eXBlLAorICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHV0IGFuIGF0dHJpYnV0ZSBpbiB0ZW1wbGF0ZSBkZWZpbml0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNwdXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPnB1dEF0dHJpYnV0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHV0IGEgbmV3IGF0dHJpYnV0ZSBpbiB0aGlzIGNvbXBvbmVudDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNzZXRDb250cm9sbGVyKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb250cm9sbGVyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VybCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgVVJMLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNzZXRDb250cm9sbGVyQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRyb2xsZXJDbGFzczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250cm9sbGVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciBuYW1lIGFzIGEgY2xhc3N0eXBlLCBhbmQgY29udHJvbGxlcgorIHR5cGUgYXMgImNsYXNzbmFtZSIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3NldENvbnRyb2xsZXJJbnN0YW5jZShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db250cm9sbGVyKSI+c2V0Q29udHJvbGxlckluc3RhbmNlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPiZuYnNwO2NvbnRyb2xsZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgY29udHJvbGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjc2V0Q29udHJvbGxlclR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRyb2xsZXJUeXBlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRyb2xsZXJUeXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciB0eXBlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNzZXRDb250cm9sbGVyVXJsKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb250cm9sbGVyVXJsPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRyb2xsZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgYXNzb2NpYXRlZCBjb250cm9sbGVyIG5hbWUgYXMgYW4gdXJsLCBhbmQgY29udHJvbGxlcgorIHR5cGUgYXMgInVybCIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YU5hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgbmFtZSBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjc2V0UGFnZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFnZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgdmFsdWUgb2YgdGhlIHBhdGggcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3NldFBhdGgoamF2YS5sYW5nLlN0cmluZykiPnNldFBhdGg8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YVBhdGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgcGF0aCBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgdmFsdWUgb2YgdGhlIHJvbGUgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3NldFRlbXBsYXRlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUZW1wbGF0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0ZW1wbGF0ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHZhbHVlIG9mIHRoZSB0ZW1wbGF0ZSBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibG9nIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPkRlZmluaXRpb24gbmFtZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGF0aCI+PCEtLSAtLT48L0E+PEgzPgorcGF0aDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+cGF0aDwvQj48L1BSRT4KKzxETD4KKzxERD5Db21wb25lbnQgLyB0ZW1wbGF0ZSBwYXRoIChVUkwpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYXR0cmlidXRlcyI+PCEtLSAtLT48L0E+PEgzPgorYXR0cmlidXRlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5NYXAgPEI+YXR0cmlidXRlczwvQj48L1BSRT4KKzxETD4KKzxERD5BdHRyaWJ1dGVzIGRlZmluZWQgZm9yIHRoZSBjb21wb25lbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyb2xlIj48IS0tIC0tPjwvQT48SDM+Cityb2xlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5yb2xlPC9CPjwvUFJFPgorPERMPgorPEREPnJvbGUgYXNzb2NpYXRlZCB0byBkZWZpbml0aW9uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb250cm9sbGVyIj48IS0tIC0tPjwvQT48SDM+Citjb250cm9sbGVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jb250cm9sbGVyPC9CPjwvUFJFPgorPERMPgorPEREPkFzc29jaWF0ZWQgQ29udHJvbGxlciBVUkwgb3IgY2xhc3NuYW1lLCBpZiBkZWZpbmVkCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb250cm9sbGVyVHlwZSI+PCEtLSAtLT48L0E+PEgzPgorY29udHJvbGxlclR5cGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbnRyb2xsZXJUeXBlPC9CPjwvUFJFPgorPERMPgorPEREPkFzc29jaWF0ZWQgQ29udHJvbGxlciB0eXBlbmFtZSwgaWYgY29udHJvbGxlck5hbWUgZGVmaW5lZC4KKyAgQ2FuIGJlIENPTlRST0xMRVIsIEFDVElPTiBvciBVUkwsIG9yIG51bGwKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlVSTCI+PCEtLSAtLT48L0E+PEgzPgorVVJMPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+VVJMPC9CPjwvUFJFPgorPERMPgorPEREPkNvbnRyb2xsZXIgbmFtZSB0eXBlCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb24uVVJMIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkNPTlRST0xMRVIiPjwhLS0gLS0+PC9BPjxIMz4KK0NPTlRST0xMRVI8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5DT05UUk9MTEVSPC9CPjwvUFJFPgorPERMPgorPEREPkNvbnRyb2xsZXIgbmFtZSB0eXBlCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb24uQ09OVFJPTExFUiI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJBQ1RJT04iPjwhLS0gLS0+PC9BPjxIMz4KK0FDVElPTjwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkFDVElPTjwvQj48L1BSRT4KKzxETD4KKzxERD5Db250cm9sbGVyIG5hbWUgdHlwZQorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uLkFDVElPTiI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb250cm9sbGVySW5zdGFuY2UiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRyb2xsZXJJbnN0YW5jZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+IDxCPmNvbnRyb2xsZXJJbnN0YW5jZTwvQj48L1BSRT4KKzxETD4KKzxERD5Db250cm9sbGVyIGFzc29jaWF0ZWQgdG8gRGVmaW5pdGlvbi4KKyBMYXp5IGNyZWF0aW9uIDogb25seSBvbiBmaXJzdCByZXF1ZXN0Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29tcG9uZW50RGVmaW5pdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitDb21wb25lbnREZWZpbml0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdG9yLgorPFA+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJDb21wb25lbnREZWZpbml0aW9uKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb24pIj48IS0tIC0tPjwvQT48SDM+CitDb21wb25lbnREZWZpbml0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiZuYnNwO2RlZmluaXRpb24pPC9QUkU+Cis8REw+Cis8REQ+Q29weSBDb25zdHJ1Y3Rvci4KKyBDcmVhdGUgYSBuZXcgZGVmaW5pdGlvbiBpbml0aWFsaXplZCB3aXRoIHBhcmVudCBkZWZpbml0aW9uLgorIERvIGEgc2hhbGxvdyBjb3B5IDogYXR0cmlidXRlcyBhcmUgc2hhcmVkIGJldHdlZW4gY29waWVzLCBidXQgbm90IHRoZSBNYXAKKyBjb250YWluaW5nIGF0dHJpYnV0ZXMuCis8UD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkNvbXBvbmVudERlZmluaXRpb24ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uKSI+PCEtLSAtLT48L0E+PEgzPgorQ29tcG9uZW50RGVmaW5pdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbXBvbmVudERlZmluaXRpb248L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj5YbWxEZWZpbml0aW9uPC9BPiZuYnNwO2RlZmluaXRpb24pPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCisgQ3JlYXRlIGEgbmV3IGRlZmluaXRpb24gaW5pdGlhbGl6ZWQgZnJvbSBhIFJhd0RlZmluaXRpb24uCisgUmF3IGRlZmluaXRpb25zIGFyZSB1c2VkIHRvIHJlYWQgZGVmaW5pdGlvbiBmcm9tIGEgZGF0YSBzb3VyY2UgKHhtbCBmaWxlLCBkYiwgLi4uKS4KKyBBIFJhd0RlZmluaXRpb24gbWFpbmx5IGNvbnRhaW5zIHByb3BlcnRpZXMgb2YgdHlwZSBTdHJpbmcsIHdoaWxlIERlZmluaXRpb24KKyBjb250YWlucyBtb3JlIGNvbXBsZXggdHlwZSAoZXggOiBDb250cm9sbGVyKS4KKyBEbyBhIHNoYWxsb3cgY29weSA6IGF0dHJpYnV0ZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIG9iamVjdHMsIGJ1dCBub3QgdGhlIE1hcAorIGNvbnRhaW5pbmcgYXR0cmlidXRlcy4KKyBPTyBEZXNpZ24gaXNzdWVzIDogQWN0dWFsbHkgUmF3RGVmaW5pdGlvbiAoWG1sRGVmaW5pdGlvbikgZXh0ZW5kcyBDb21wb25lbnREZWZpbml0aW9uLgorIFRoaXMgbXVzdCBub3QgYmUgdGhlIGNhc2UuIEkgaGF2ZSBkbyBpdCBiZWNhdXNlIEkgYW0gbGF6eS4KKzxQPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuSW5zdGFudGlhdGlvbkV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBpbnN0YW5jaWF0aW5nIENvbnRyb2xsZXIgOgorIChjbGFzc25hbWUgY2FuJ3QgYmUgaW5zdGFuY2lhdGVkLCBJbGxlZ2FsIGFjY2VzcyB3aXRoIGluc3RhbmNpYXRlZCBjbGFzcywKKyBFcnJvciB3aGlsZSBpbnN0YW5jaWF0aW5nIGNsYXNzLCBjbGFzc25hbWUgY2FuJ3QgYmUgaW5zdGFuY2lhdGVkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkNvbXBvbmVudERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS51dGlsLk1hcCkiPjwhLS0gLS0+PC9BPjxIMz4KK0NvbXBvbmVudERlZmluaXRpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Db21wb25lbnREZWZpbml0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS51dGlsLk1hcCZuYnNwO2F0dHJpYnV0ZXMpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkFjY2VzcyBtZXRob2QgZm9yIHRoZSBuYW1lIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXROYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXROYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YU5hbWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgdmFsdWUgb2YgdGhlIG5hbWUgcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmFOYW1lPC9DT0RFPiAtIHRoZSBuZXcgdmFsdWUgb2YgdGhlIG5hbWUgcHJvcGVydHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhZ2UoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFnZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGFnZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkFjY2VzcyBtZXRob2QgZm9yIHRoZSBwYXRoIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBwYXRoIHByb3BlcnR5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYWdlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSB2YWx1ZSBvZiB0aGUgcGF0aCBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGF0aCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXRoPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYXRoPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+QWNjZXNzIG1ldGhvZCBmb3IgdGhlIHBhdGggcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHBhdGggcHJvcGVydHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhdGgoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhdGg8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhdGg8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthUGF0aCk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSB2YWx1ZSBvZiB0aGUgcGF0aCBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YVBhdGg8L0NPREU+IC0gdGhlIG5ldyB2YWx1ZSBvZiB0aGUgcGF0aCBwcm9wZXJ0eTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VGVtcGxhdGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VGVtcGxhdGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFRlbXBsYXRlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+QWNjZXNzIG1ldGhvZCBmb3IgdGhlIHRlbXBsYXRlIHByb3BlcnR5LgorIFNhbWUgYXMgZ2V0UGF0aCgpCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHRlbXBsYXRlIHByb3BlcnR5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRUZW1wbGF0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VGVtcGxhdGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFRlbXBsYXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGVtcGxhdGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgdmFsdWUgb2YgdGhlIHRlbXBsYXRlIHByb3BlcnR5LgorIFNhbWUgYXMgc2V0UGF0aCgpCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnRlbXBsYXRlPC9DT0RFPiAtIHRoZSBuZXcgdmFsdWUgb2YgdGhlIHBhdGggcHJvcGVydHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJvbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Um9sZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Um9sZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkFjY2VzcyBtZXRob2QgZm9yIHRoZSByb2xlIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSByb2xlIHByb3BlcnR5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRSb2xlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRSb2xlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cm9sZSk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSB2YWx1ZSBvZiB0aGUgcm9sZSBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cm9sZTwvQ09ERT4gLSB0aGUgbmV3IHZhbHVlIG9mIHRoZSBwYXRoIHByb3BlcnR5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBdHRyaWJ1dGVzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEF0dHJpYnV0ZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuTWFwIDxCPmdldEF0dHJpYnV0ZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5BY2Nlc3MgbWV0aG9kIGZvciB0aGUgYXR0cmlidXRlcyBwcm9wZXJ0eS4KKyBJZiB0aGVyZSBpcyBubyBhdHRyaWJ1dGVzLCByZXR1cm4gYW4gZW1wdHkgbWFwLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGVzIHByb3BlcnR5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Z2V0QXR0cmlidXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBuYW1lZCBhdHRyaWJ1dGUgYXMgYW4gT2JqZWN0LCBvciBudWxsIGlmIG5vCisgYXR0cmlidXRlIG9mIHRoZSBnaXZlbiBuYW1lIGV4aXN0cy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5yZXF1ZXN0ZWQgYXR0cmlidXRlIG9yIG51bGwgaWYgbm90IGZvdW5kPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwdXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3B1dEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHV0QXR0cmlidXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5QdXQgYSBuZXcgYXR0cmlidXRlIGluIHRoaXMgY29tcG9uZW50Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBTdHJpbmcga2V5IGZvciBhdHRyaWJ1dGU8REQ+PENPREU+dmFsdWU8L0NPREU+IC0gQXR0aWJ1dGUgdmFsdWUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwdXQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3B1dDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHV0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7Y29udGVudCk8L1BSRT4KKzxETD4KKzxERD5QdXQgYW4gYXR0cmlidXRlIGluIGNvbXBvbmVudCAvIHRlbXBsYXRlIGRlZmluaXRpb24uCisgQXR0cmlidXRlIGNhbiBiZSB1c2VkIGFzIGNvbnRlbnQgZm9yIHRhZyBnZXQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gQXR0cmlidXRlIG5hbWU8REQ+PENPREU+Y29udGVudDwvQ09ERT4gLSBBdHRyaWJ1dGUgdmFsdWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InB1dChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorcHV0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wdXQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDtjb250ZW50LAorICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtkaXJlY3QpPC9QUkU+Cis8REw+Cis8REQ+UHV0IGFuIGF0dHJpYnV0ZSBpbiB0ZW1wbGF0ZSBkZWZpbml0aW9uLgorIEF0dHJpYnV0ZSBjYW4gYmUgdXNlZCBhcyBjb250ZW50IGZvciB0YWcgZ2V0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIEF0dHJpYnV0ZSBuYW1lPEREPjxDT0RFPmNvbnRlbnQ8L0NPREU+IC0gQXR0cmlidXRlIHZhbHVlILU8REQ+PENPREU+ZGlyZWN0PC9DT0RFPiAtIERldGVybWluZXMgaG93IGNvbnRlbnQgaXMgaGFuZGxlZCBieSBnZXQgdGFnOiB0cnVlIG1lYW5zIGNvbnRlbnQgaXMgcHJpbnRlZCBkaXJlY3RseTsgZmFsc2UsIHRoZSBkZWZhdWx0LCBtZWFucyBjb250ZW50IGlzIGluY2x1ZGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwdXQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgYm9vbGVhbiwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3B1dDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHV0PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7Y29udGVudCwKKyAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7ZGlyZWN0LAorICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlKTwvUFJFPgorPERMPgorPEREPlB1dCBhbiBhdHRyaWJ1dGUgaW4gdGVtcGxhdGUgZGVmaW5pdGlvbi4KKyBBdHRyaWJ1dGUgY2FuIGJlIHVzZWQgYXMgY29udGVudCBmb3IgdGFnIGdldC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBBdHRyaWJ1dGUgbmFtZTxERD48Q09ERT5jb250ZW50PC9DT0RFPiAtIEF0dHJpYnV0ZSB2YWx1ZTxERD48Q09ERT5kaXJlY3Q8L0NPREU+IC0gRGV0ZXJtaW5lcyBob3cgY29udGVudCBpcyBoYW5kbGVkIGJ5IGdldCB0YWc6IHRydWUgbWVhbnMgY29udGVudCBpcyBwcmludGVkIGRpcmVjdGx5OyBmYWxzZSwgdGhlIGRlZmF1bHQsIG1lYW5zIGNvbnRlbnQgaXMgaW5jbHVkZWQ8REQ+PENPREU+cm9sZTwvQ09ERT4gLSBEZXRlcm1pbmUgaWYgY29udGVudCBpcyB1c2VkIGJ5IGdldCB0YWcuIElmIHVzZXIgaXMgaW4gcm9sZSwgY29udGVudCBpcyB1c2VkLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHV0KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitwdXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnB1dDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2NvbnRlbnQsCisgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3R5cGUsCisgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3JvbGUpPC9QUkU+Cis8REw+Cis8REQ+UHV0IGFuIGF0dHJpYnV0ZSBpbiB0ZW1wbGF0ZSBkZWZpbml0aW9uLgorIEF0dHJpYnV0ZSBjYW4gYmUgdXNlZCBhcyBjb250ZW50IGZvciB0YWcgZ2V0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIEF0dHJpYnV0ZSBuYW1lPEREPjxDT0RFPmNvbnRlbnQ8L0NPREU+IC0gQXR0cmlidXRlIHZhbHVlPEREPjxDT0RFPnR5cGU8L0NPREU+IC0gYXR0cmlidXRlIHR5cGU6IHRlbXBsYXRlLCBzdHJpbmcsIGRlZmluaXRpb248REQ+PENPREU+cm9sZTwvQ09ERT4gLSBEZXRlcm1pbmUgaWYgY29udGVudCBpcyB1c2VkIGJ5IGdldCB0YWcuIElmIHVzZXIgaXMgaW4gcm9sZSwgY29udGVudCBpcyB1c2VkLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9TdHJpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgordG9TdHJpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU3RyaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnRvU3RyaW5nPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Q29udHJvbGxlclR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29udHJvbGxlclR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldENvbnRyb2xsZXJUeXBlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciB0eXBlLgorIFR5cGUgZGVub3RlIGEgZnVsbHkgcXVhbGlmaWVkIGNsYXNzbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Q29udHJvbGxlclR5cGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENvbnRyb2xsZXJUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDb250cm9sbGVyVHlwZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRyb2xsZXJUeXBlKTwvUFJFPgorPERMPgorPEREPlNldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgdHlwZS4KKyBUeXBlIGRlbm90ZSBhIGZ1bGx5IHF1YWxpZmllZCBjbGFzc25hbWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbnRyb2xsZXJUeXBlPC9DT0RFPiAtIFR5cGVvZiBhc3NvY2lhdGVkIGNvbnRyb2xsZXI8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENvbnRyb2xsZXJVcmwoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENvbnRyb2xsZXJVcmw8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbnRyb2xsZXJVcmw8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250cm9sbGVyKTwvUFJFPgorPERMPgorPEREPlNldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgbmFtZSBhcyBhbiB1cmwsIGFuZCBjb250cm9sbGVyCisgdHlwZSBhcyAidXJsIi4KKyBOYW1lIG11c3QgYmUgYW4gdXJsIChub3QgY2hlY2tlZCkuCisgQ29udmVuaWVuY2UgbWV0aG9kLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb250cm9sbGVyPC9DT0RFPiAtIENvbnRyb2xsZXIgdXJsPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb250cm9sbGVyQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENvbnRyb2xsZXJDbGFzczwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Q29udHJvbGxlckNsYXNzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udHJvbGxlcik8L1BSRT4KKzxETD4KKzxERD5TZXQgYXNzb2NpYXRlZCBjb250cm9sbGVyIG5hbWUgYXMgYSBjbGFzc3R5cGUsIGFuZCBjb250cm9sbGVyCisgdHlwZSBhcyAiY2xhc3NuYW1lIi4KKyBOYW1lIGRlbm90ZSBhIGZ1bGx5IHF1YWxpZmllZCBjbGFzc25hbWUKKyBDb252ZW5pZW5jZSBtZXRob2QuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbnRyb2xsZXI8L0NPREU+IC0gQ29udHJvbGxlciBjbGFzc25hbWUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDb250cm9sbGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbnRyb2xsZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldENvbnRyb2xsZXI8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgYXNzb2NpYXRlZCBjb250cm9sbGVyIGxvY2FsIFVSTC4KKyBVUkwgc2hvdWxkIGJlIGxvY2FsIHRvIHdlYmNvbnRhaW5lciBpbiBvcmRlciB0byBhbGxvdyByZXF1ZXN0IGNvbnRleHQgZm9sbG93dXAuCisgVVJMIGNvbWVzIGFzIGEgc3RyaW5nLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb250cm9sbGVyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb250cm9sbGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDb250cm9sbGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJsKTwvUFJFPgorPERMPgorPEREPlNldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgVVJMLgorIFVSTCBzaG91bGQgYmUgbG9jYWwgdG8gd2ViY29udGFpbmVyIGluIG9yZGVyIHRvIGFsbG93IHJlcXVlc3QgY29udGV4dCBmb2xsb3d1cC4KKyBVUkwgaXMgc3BlY2lmaWVkIGFzIGEgc3RyaW5nLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT51cmw8L0NPREU+IC0gVXJsIGNhbGxlZCBsb2NhbGx5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDb250cm9sbGVySW5zdGFuY2UoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29udHJvbGxlckluc3RhbmNlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPiA8Qj5nZXRDb250cm9sbGVySW5zdGFuY2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgY29udHJvbGxlciBpbnN0YW5jZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5jb250cm9sbGVyIGluc3RhbmNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0T3JDcmVhdGVDb250cm9sbGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE9yQ3JlYXRlQ29udHJvbGxlcjwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT4gPEI+Z2V0T3JDcmVhdGVDb250cm9sbGVyPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkluc3RhbnRpYXRpb25FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5HZXQgb3IgY3JlYXRlIGNvbnRyb2xsZXIuCisgR2V0IGNvbnRyb2xsZXIsIGNyZWF0ZSBpdCBpZiBuZWNlc3NhcnkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Y29udHJvbGxlciBpZiBjb250cm9sbGVyIG9yIGNvbnRyb2xsZXJUeXBlIGlzIHNldCwgbnVsbCBvdGhlcndpc2UuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuSW5zdGFudGlhdGlvbkV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBpbnN0YW5jaWF0aW5nIENvbnRyb2xsZXIgOgorIChjbGFzc25hbWUgY2FuJ3QgYmUgaW5zdGFuY2lhdGVkLCBJbGxlZ2FsIGFjY2VzcyB3aXRoIGluc3RhbmNpYXRlZCBjbGFzcywKKyBFcnJvciB3aGlsZSBpbnN0YW5jaWF0aW5nIGNsYXNzLCBjbGFzc25hbWUgY2FuJ3QgYmUgaW5zdGFuY2lhdGVkLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Q29udHJvbGxlckluc3RhbmNlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbnRyb2xsZXIpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb250cm9sbGVySW5zdGFuY2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbnRyb2xsZXJJbnN0YW5jZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPiZuYnNwO2NvbnRyb2xsZXIpPC9QUkU+Cis8REw+Cis8REQ+U2V0IGNvbnRyb2xsZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNyZWF0ZUNvbnRyb2xsZXIoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2NyZWF0ZUNvbnRyb2xsZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPiA8Qj5jcmVhdGVDb250cm9sbGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250cm9sbGVyVHlwZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5JbnN0YW50aWF0aW9uRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIGNvbnRyb2xsZXIgbmFtZWQgaW4gcGFyYW1ldGVyLgorIElmIGNvbnRyb2xsZXJUeXBlIGlzIHNwZWNpZmllZCwgY3JlYXRlIGNvbnRyb2xsZXIgYWNjb3JkaW5nbHkuCisgT3RoZXJ3aXNlLCBpZiBuYW1lIGRlbm90ZSBhIGNsYXNzbmFtZSwgY3JlYXRlIGFuIGluc3RhbmNlIG9mIGl0LiBJZiBjbGFzcyBpcworICBzdWJjbGFzcyBvZiBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uLCB3cmFwIGNvbnRyb2xsZXIKKyBhcHByb3ByaWF0ZWx5LgorIE90aGVyd2lzZSwgY29uc2lkZXIgbmFtZSBhcyBhbiB1cmwuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gQ29udHJvbGxlciBuYW1lIChjbGFzc25hbWUsIHVybCwgLi4uKTxERD48Q09ERT5jb250cm9sbGVyVHlwZTwvQ09ERT4gLSBFeHBlY3RlZCBDb250cm9sbGVyIHR5cGUKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29udHJvbGxlcgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLkluc3RhbnRpYXRpb25FeGNlcHRpb248L0NPREU+IC0gaWYgYW4gZXJyb3Igb2NjdXIgd2hpbGUgaW5zdGFuY2lhdGluZyBDb250cm9sbGVyIDoKKyAoY2xhc3NuYW1lIGNhbid0IGJlIGluc3RhbmNpYXRlZCwgSWxsZWdhbCBhY2Nlc3Mgd2l0aCBpbnN0YW5jaWF0ZWQgY2xhc3MsCisgRXJyb3Igd2hpbGUgaW5zdGFuY2lhdGluZyBjbGFzcywgY2xhc3NuYW1lIGNhbid0IGJlIGluc3RhbmNpYXRlZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNyZWF0ZUNvbnRyb2xsZXJGcm9tQ2xhc3NuYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVDb250cm9sbGVyRnJvbUNsYXNzbmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+IDxCPmNyZWF0ZUNvbnRyb2xsZXJGcm9tQ2xhc3NuYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5JbnN0YW50aWF0aW9uRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIGEgY29udHJvbGxlciBmcm9tIHNwZWNpZmllZCBjbGFzc25hbWUKKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y2xhc3NuYW1lPC9DT0RFPiAtIENvbnRyb2xsZXIgY2xhc3NuYW1lLgorPERUPjxCPlJldHVybnM6PC9CPjxERD5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db250cm9sbGVyCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuSW5zdGFudGlhdGlvbkV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBpbnN0YW5jaWF0aW5nIENvbnRyb2xsZXIgOgorIChjbGFzc25hbWUgY2FuJ3QgYmUgaW5zdGFuY2lhdGVkLCBJbGxlZ2FsIGFjY2VzcyB3aXRoIGluc3RhbmNpYXRlZCBjbGFzcywKKyBFcnJvciB3aGlsZSBpbnN0YW5jaWF0aW5nIGNsYXNzLCBjbGFzc25hbWUgY2FuJ3QgYmUgaW5zdGFuY2lhdGVkLjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlclN1cHBvcnQuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbXBvbmVudERlZmluaXRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA3NzU2YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbApAQCAtMCwwICsxLDI2NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5LENvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeSBpbnRlcmZhY2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0ZPTlQ+Cis8QlI+CitJbnRlcmZhY2UgQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9IMj4KKzxETD4KKzxEVD48Qj5BbGwgU3VwZXJpbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+QWxsIEtub3duIEltcGxlbWVudGluZyBDbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sIj5GYWN0b3J5U2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgRGVmaW5pdGlvbnNGYWN0b3J5IGluc3RlYWQuPC9JPgorPFA+Cis8REw+Cis8RFQ+cHVibGljIGludGVyZmFjZSA8Qj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0I+PERUPmV4dGVuZHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0NvbXBvbmVudCByZXBvc2l0b3J5IGludGVyZmFjZS4KKyBUaGlzIGludGVyZmFjZSBhbGxvd3MgdG8gcmV0cmlldmUgYW4gZGVmaW5pdGlvbiBieSBpdHMgbmFtZSwgaW5kZXBlbmRlbnRseSBvZiB0aGUKKyBmYWN0b3J5IGltcGxlbWVudGF0aW9uLgorIEltcGxlbWVudGF0aW9uIG11c3QgYmUgU2VyaWFsaXphYmxlLCBpbiBvcmRlciB0byBiZSBjb21wbGlhbnQgd2l0aCB3ZWIgQ29udGFpbmVyCisgaGF2aW5nIHRoaXMgY29uc3RyYWludCAoV2VibG9naWMgNi54KS4KKzxQPgorCis8UD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7R2V0IGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNpbml0RmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+aW5pdEZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0luaXQgZmFjdG9yeS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERlZmluaXRpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+IDxCPmdldERlZmluaXRpb248L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiPk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0E+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5HZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgcmVxdWVzdGVkIGRlZmluaXRpb24uPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCBzZXJ2ZWxldCByZXF1ZXN0PEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIGN1cnJlbnQgc2VydmxldCBjb250ZXh0Cis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBBbiBlcnJvciBvY2N1ciB3aGlsZSBnZXR0aW5nIGRlZmluaXRpb24uCis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBObyBkZWZpbml0aW9uIGZvdW5kIGZvciBzcGVjaWZpZWQgbmFtZQorIEltcGxlbWVudGF0aW9uIGNhbiB0aHJvdyBtb3JlIGFjY3VyYXRlIGV4Y2VwdGlvbiBhcyBhIHN1YmNsYXNzIG9mIHRoaXMgZXhjZXB0aW9uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0RmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdEZhY3Rvcnk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmluaXRGYWN0b3J5PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcykKKyAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkluaXQgZmFjdG9yeS4KKyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgZXhhY3RseSBvbmNlIGltbWVkaWF0ZWx5IGFmdGVyIGZhY3RvcnkgY3JlYXRpb24gaW4KKyBjYXNlIG9mIGludGVybmFsIGNyZWF0aW9uIChieSBEZWZpbml0aW9uVXRpbCkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIFNlcnZsZXQgQ29udGV4dCBwYXNzZWQgdG8gbmV3bHkgY3JlYXRlZCBmYWN0b3J5LjxERD48Q09ERT5wcm9wZXJ0aWVzPC9DT0RFPiAtIE1hcCBvZiBuYW1lL3Byb3BlcnR5IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuCisgTWFwIGNhbiBjb250YWlucyBtb3JlIHByb3BlcnRpZXMgdGhhbiByZXF1ZXN0ZWQuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBBbiBlcnJvciBvY2N1ciBkdXJpbmcgaW5pdGlhbGl6YXRpb24uPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4ZGY3YzgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sCkBAIC0wLDAgKzEsMjIyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQ29udHJvbGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29udHJvbGxlcixDb250cm9sbGVyIGludGVyZmFjZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQ29udHJvbGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db250cm9sbGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29udHJvbGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0ZPTlQ+Cis8QlI+CitJbnRlcmZhY2UgQ29udHJvbGxlcjwvSDI+Cis8REw+Cis8RFQ+PEI+QWxsIEtub3duIEltcGxlbWVudGluZyBDbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbnRyb2xsZXIuaHRtbCI+QWN0aW9uQ29udHJvbGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXJTdXBwb3J0Lmh0bWwiPkNvbnRyb2xsZXJTdXBwb3J0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVXJsQ29udHJvbGxlci5odG1sIj5VcmxDb250cm9sbGVyPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBpbnRlcmZhY2UgPEI+Q29udHJvbGxlcjwvQj48L0RMPgorCis8UD4KK0EgY29udHJvbGxlciBpcyBhIHBpZWNlIG9mIGNvZGUgY2FsbGVkIGJlZm9yZSByZW5kZXJpbmcgYSBqc3AgcGFnZS4KKyBBIGNvbnRyb2xsZXIgY2FuIGJlIGFzc29jaWF0ZWQgdG8gYSB0aWxlLiBTZWUgPGluc2VydD4gb3IgPGRlZmluaXRpb24+IGZvcgorIGFzc29jaWF0aW9uIHN5bnRheC4KKzxQPgorCis8UD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5wZXJmb3JtPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiZuYnNwO3RpbGVDb250ZXh0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TWV0aG9kIGFzc29jaWF0ZWQgdG8gYSB0aWxlIGFuZCBjYWxsZWQgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSB0aWxlIGlzIGluY2x1ZGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK3BlcmZvcm08L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnBlcmZvcm08L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4mbmJzcDt0aWxlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+TWV0aG9kIGFzc29jaWF0ZWQgdG8gYSB0aWxlIGFuZCBjYWxsZWQgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSB0aWxlIGlzIGluY2x1ZGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT50aWxlQ29udGV4dDwvQ09ERT4gLSBDdXJyZW50IHRpbGUgY29udGV4dC48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHJlcXVlc3Q8REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gQ3VycmVudCByZXNwb25zZTxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBDdXJyZW50IHNlcnZsZXQgY29udGV4dAorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQ29udHJvbGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbnRyb2xsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlclN1cHBvcnQuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyU3VwcG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzNGJjNDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlclN1cHBvcnQuaHRtbApAQCAtMCwwICsxLDI2NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0NvbnRyb2xsZXJTdXBwb3J0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db250cm9sbGVyU3VwcG9ydCxDb250cm9sbGVyU3VwcG9ydCBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQ29udHJvbGxlclN1cHBvcnQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQ29udHJvbGxlclN1cHBvcnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25BdHRyaWJ1dGUuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbnRyb2xsZXJTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIENvbnRyb2xsZXJTdXBwb3J0PC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29udHJvbGxlclN1cHBvcnQ8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkNvbnRyb2xsZXJTdXBwb3J0PC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+PC9ETD4KKworPFA+CitCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiBDb250cm9sbGVyLgorPFA+CisKKzxQPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXJTdXBwb3J0Lmh0bWwjQ29udHJvbGxlclN1cHBvcnQoKSI+Q29udHJvbGxlclN1cHBvcnQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXJTdXBwb3J0Lmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPnBlcmZvcm08L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+Jm5ic3A7dGlsZUNvbnRleHQsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNZXRob2QgYXNzb2NpYXRlZCB0byBhIHRpbGUgYW5kIGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUgdGlsZSBpcyBpbmNsdWRlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJDb250cm9sbGVyU3VwcG9ydCgpIj48IS0tIC0tPjwvQT48SDM+CitDb250cm9sbGVyU3VwcG9ydDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbnRyb2xsZXJTdXBwb3J0PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorcGVyZm9ybTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cGVyZm9ybTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiZuYnNwO3RpbGVDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5NZXRob2QgYXNzb2NpYXRlZCB0byBhIHRpbGUgYW5kIGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUgdGlsZSBpcyBpbmNsdWRlZC4KKyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXMgbm90aGluZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPnBlcmZvcm08L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnRpbGVDb250ZXh0PC9DT0RFPiAtIEN1cnJlbnQgdGlsZSBjb250ZXh0LjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdDxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBDdXJyZW50IHJlc3BvbnNlPEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIEN1cnJlbnQgc2VydmxldCBjb250ZXh0Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db250cm9sbGVyU3VwcG9ydC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbkF0dHJpYnV0ZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29udHJvbGxlclN1cHBvcnQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbkF0dHJpYnV0ZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25BdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2ZmYzRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25BdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDI0NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0RlZmluaXRpb25BdHRyaWJ1dGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25BdHRyaWJ1dGUsRGVmaW5pdGlvbkF0dHJpYnV0ZSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRGVmaW5pdGlvbkF0dHJpYnV0ZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uQXR0cmlidXRlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXJTdXBwb3J0Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGUuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25BdHRyaWJ1dGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlVudHlwcGVkQXR0cmlidXRlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVW50eXBwZWRBdHRyaWJ1dGUiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIERlZmluaXRpb25BdHRyaWJ1dGU8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZTwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uQXR0cmlidXRlPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sIj5BdHRyaWJ1dGVEZWZpbml0aW9uPC9BPiwgamF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+RGVmaW5pdGlvbkF0dHJpYnV0ZTwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj5VbnR5cHBlZEF0dHJpYnV0ZTwvQT48L0RMPgorCis8UD4KK0F0dHJpYnV0ZSByZXByZXNlbnRpbmcgYSBDb21wb25lbnQgRGVmaW5pdGlvbi4KKyBUaGlzIGF0dHJpYnV0ZSBkZWZpbml0aW9uIGNvbnRhaW5zIGEgQ29tcG9uZW50IGRlZmluaXRpb24uCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uQXR0cmlidXRlIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVW50eXBwZWRBdHRyaWJ1dGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbkF0dHJpYnV0ZS5odG1sI0RlZmluaXRpb25BdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPkRlZmluaXRpb25BdHRyaWJ1dGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuT2JqZWN0KSI+c2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkRlZmluaXRpb25BdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK0RlZmluaXRpb25BdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5EZWZpbml0aW9uQXR0cmlidXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRGVmaW5pdGlvbkF0dHJpYnV0ZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyU3VwcG9ydC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25OYW1lQXR0cmlidXRlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uQXR0cmlidXRlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlVudHlwcGVkQXR0cmlidXRlIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25OYW1lQXR0cmlidXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Y0NDQ2YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sCkBAIC0wLDAgKzEsMjY3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorRGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25OYW1lQXR0cmlidXRlLERlZmluaXRpb25OYW1lQXR0cmlidXRlIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJEZWZpbml0aW9uTmFtZUF0dHJpYnV0ZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uQXR0cmlidXRlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVW50eXBwZWRBdHRyaWJ1dGUiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9GT05UPgorPEJSPgorQ2xhc3MgRGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGU8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZTwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZTwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCI+QXR0cmlidXRlRGVmaW5pdGlvbjwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkRlZmluaXRpb25OYW1lQXR0cmlidXRlPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwiPlVudHlwcGVkQXR0cmlidXRlPC9BPjwvREw+CisKKzxQPgorQ29tcG9uZW50IGF0dHJpYnV0ZS4KKyBTdWNoIGF0dHJpYnV0ZSB2YWx1ZSByZXByZXNlbnQgYW4gaW5zdGFuY2UgbmFtZS4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25OYW1lQXR0cmlidXRlIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVW50eXBwZWRBdHRyaWJ1dGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGUuaHRtbCNEZWZpbml0aW9uTmFtZUF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+RGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25OYW1lQXR0cmlidXRlLmh0bWwjRGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPkRlZmluaXRpb25OYW1lQXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3JvbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuT2JqZWN0KSI+c2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkRlZmluaXRpb25OYW1lQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitEZWZpbml0aW9uTmFtZUF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkRlZmluaXRpb25OYW1lQXR0cmlidXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkRlZmluaXRpb25OYW1lQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitEZWZpbml0aW9uTmFtZUF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkRlZmluaXRpb25OYW1lQXR0cmlidXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3JvbGUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uQXR0cmlidXRlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVW50eXBwZWRBdHRyaWJ1dGUiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTUyYWY5YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbApAQCAtMCwwICsxLDM1MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0RlZmluaXRpb25zRmFjdG9yeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5LERlZmluaXRpb25zRmFjdG9yeSBpbnRlcmZhY2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkRlZmluaXRpb25zRmFjdG9yeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvRk9OVD4KKzxCUj4KK0ludGVyZmFjZSBEZWZpbml0aW9uc0ZhY3Rvcnk8L0gyPgorPERMPgorPERUPjxCPkFsbCBTdXBlcmludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5BbGwgS25vd24gSW1wbGVtZW50aW5nIENsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXI8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGludGVyZmFjZSA8Qj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0I+PERUPmV4dGVuZHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK1RpbGVzIERlZmluaXRpb24gZmFjdG9yeS4KKyBUaGlzIGludGVyZmFjZSByZXBsYWNlIG9sZCBDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuCisgTWFpbiBtZXRob2QgZ2V0RGVmaW5pdGlvbigpIGlzIGV4YWN0bHkgdGhlIHNhbWUuIEluaXRpYWxpemF0aW9uIG1ldGhvZCBjaGFuZ2UuCisgVGhpcyBpbnRlcmZhY2UgYWxsb3dzIHRvIHJldHJpZXZlIGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZSwgaW5kZXBlbmRlbnRseSBvZgorIHRoZSBmYWN0b3J5IGltcGxlbWVudGF0aW9uLgorIE9iamVjdCBsaWZlIGN5Y2xlIGlzIGFzIGZvbGxvdzoKKyA8dWw+CisgPGxpPkNvbnN0cnVjdG9yOiBjcmVhdGUgb2JqZWN0PC9saT4KKyA8bGk+c2V0Q29uZmlnOiBzZXQgY29uZmlnIGFuZCBpbml0aWFsaXplIGZhY3RvcnkuIEFmdGVyIGZpcnN0IGNhbGwgdG8gdGhpcworIG1ldGhvZCwgZmFjdG9yeSBpcyBvcGVyYXRpb25hbC48L2xpPgorIDxsaT5kZXN0cm95OiBmYWN0b3J5IGlzIGJlaW5nIHNodXRkb3duLjwvbGk+CisgPC91bD4KKyBJbXBsZW1lbnRhdGlvbiBtdXN0IGJlIFNlcmlhbGl6YWJsZSwgaW4gb3JkZXIgdG8gYmUgY29tcGxpYW50IHdpdGggd2ViIENvbnRhaW5lcgorIGhhdmluZyB0aGlzIGNvbnN0cmFpbnQgKFdlYmxvZ2ljIDYueCkuCis8UD4KKworPFA+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI2Rlc3Ryb3koKSI+ZGVzdHJveTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlY2VpdmUgbm90aWZpY2F0aW9uIHRoYXQgdGhlIGZhY3RvcnkgaXMgYmVpbmcKKyBzaHV0IGRvd24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI2dldENvbmZpZygpIj5nZXRDb25maWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgZmFjdG9yeSBjb25maWd1cmF0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5pbml0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtjb25maWcsCisgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXQgZGVmaW5pdGlvbiBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI3NldENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5zZXRDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2NvbmZpZywKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgZmFjdG9yeSBjb25maWd1cmF0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RGVmaW5pdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4gPEI+Z2V0RGVmaW5pdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+R2V0IGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHJlcXVlc3RlZCBkZWZpbml0aW9uLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgc2VydmVsZXQgcmVxdWVzdDxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBjdXJyZW50IHNlcnZsZXQgY29udGV4dAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gQW4gZXJyb3Igb2NjdXIgd2hpbGUgZ2V0dGluZyBkZWZpbml0aW9uLgorPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT48L0NPREU+IC0gTm8gZGVmaW5pdGlvbiBmb3VuZCBmb3Igc3BlY2lmaWVkIG5hbWUKKyBJbXBsZW1lbnRhdGlvbiBjYW4gdGhyb3cgbW9yZSBhY2N1cmF0ZSBleGNlcHRpb24gYXMgYSBzdWJjbGFzcyBvZiB0aGlzIGV4Y2VwdGlvbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+Citpbml0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5pbml0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2NvbmZpZywKKyAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KQorICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPkluaXQgZGVmaW5pdGlvbiBmYWN0b3J5LgorIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBpbW1lZGlhdGVseSBhZnRlciBmYWN0b3J5IGNyZWF0aW9uLCBhbmQgcHJpb3IgYW55IGNhbGwKKyB0byBzZXRDb25maWcoKS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIENvbmZpZ3VyYXRpb24gb2JqZWN0IHVzZWQgdG8gc2V0IGZhY3RvcnkgY29uZmlndXJhdGlvbi48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBmYWN0b3J5LgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gQW4gZXJyb3Igb2NjdXIgZHVyaW5nIGluaXRpYWxpemF0aW9uLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVzdHJveSgpIj48IS0tIC0tPjwvQT48SDM+CitkZXN0cm95PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5kZXN0cm95PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PHA+UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCB0aGUgZmFjdG9yeSBpcyBiZWluZworIHNodXQgZG93bi48L3A+Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KQorICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+U2V0IGZhY3RvcnkgY29uZmlndXJhdGlvbi4KKyBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGNoYW5nZSBmYWN0b3J5IGNvbmZpZ3VyYXRpb24uCisgVGhpcyBtZXRob2QgaXMgb3B0aW9uYWwsIGFuZCBjYW4gc2VuZCBhbiBleGNlcHRpb24gaWYgaW1wbGVtZW50YXRpb24KKyBkb2Vzbid0IGFsbG93IGNoYW5nZSBpbiBjb25maWd1cmF0aW9uLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gQ29uZmlndXJhdGlvbiBvYmplY3QgdXNlZCB0byBzZXQgZmFjdG9yeSBjb25maWd1cmF0aW9uLjxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBTZXJ2bGV0IENvbnRleHQgcGFzc2VkIHRvIGZhY3RvcnkuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBBbiBlcnJvciBvY2N1ciBkdXJpbmcgaW5pdGlhbGl6YXRpb24uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDb25maWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4gPEI+Z2V0Q29uZmlnPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IGZhY3RvcnkgY29uZmlndXJhdGlvbi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UaWxlc0NvbmZpZzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25zRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDIzYTVkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sCkBAIC0wLDAgKzEsMTA0OSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0EgVGlsZXNGYWN0b3J5Q29uZmlnIG9iamVjdCBob2xkIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlcyBmb3IgYSB0aWxlCisgZGVmaW5pdGlvbiBmYWN0b3J5LgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+MS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNlZHJpYyBEdW1vdWxpbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWciPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI2RlYnVnTGV2ZWwiPmRlYnVnTGV2ZWw8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbnMtbG9nZ2luZyBtZWNoYW5pc20uPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNkZWZpbml0aW9uQ29uZmlnRmlsZXMiPmRlZmluaXRpb25Db25maWdGaWxlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWZpbml0aW9uIGNvbmZpZ3VyYXRpb24gZmlsZSBzcGVjaWZpZWQgYnkgdXNlcjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI0RFRklOSVRJT05TX0NPTkZJR19QQVJBTUVURVJfTkFNRSI+REVGSU5JVElPTlNfQ09ORklHX1BBUkFNRVRFUl9OQU1FPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FsdGVybmF0ZSBuYW1lIGZvciBkZWZpbml0aW9uIGZpbGVzIHByb3BlcnRpZXMgaW4gY29uZmlndXJhdGlvbiBmaWxlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS51dGlsLk1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNleHRyYUF0dHJpYnV0ZXMiPmV4dHJhQXR0cmlidXRlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNYXAgb2YgZXh0cmEgYXR0cmlidXRlIGF2YWlsYWJsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNGQUNUT1JZX0NMQVNTTkFNRV9QQVJBTUVURVJfTkFNRSI+RkFDVE9SWV9DTEFTU05BTUVfUEFSQU1FVEVSX05BTUU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWx0ZXJuYXRlIG5hbWUgZm9yIGZhY3RvcnkgY2xhc3NuYW1lIHByb3BlcnRpZXMgaW4gY29uZmlndXJhdGlvbiBmaWxlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI2ZhY3RvcnlDbGFzc25hbWUiPmZhY3RvcnlDbGFzc25hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RnVsbHkgcXVhbGlmaWVkIGNsYXNzbmFtZSBvZiB0aGUgZmFjdG9yeSB0byBjcmVhdGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI2ZhY3RvcnlOYW1lIj5mYWN0b3J5TmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBhc3NvY2lhdGVkIHRvIHRoaXMgZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjbW9kdWxlQXdhcmUiPm1vZHVsZUF3YXJlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NwZWNpZmllcyB3aGV0aGVyIHRoZSBmYWN0b3J5IGlzICJtb2R1bGUtYXdhcmUiLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI1BBUlNFUl9ERVRBSUxTX1BBUkFNRVRFUl9OQU1FIj5QQVJTRVJfREVUQUlMU19QQVJBTUVURVJfTkFNRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbHRlcm5hdGUgbmFtZSBmb3IgcGFyc2VyIGRlYnVnIGRldGFpbHMgcHJvcGVydGllcyBpbiBjb25maWd1cmF0aW9uIGZpbGU8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNQQVJTRVJfVkFMSURBVEVfUEFSQU1FVEVSX05BTUUiPlBBUlNFUl9WQUxJREFURV9QQVJBTUVURVJfTkFNRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbHRlcm5hdGUgbmFtZSBmb3IgcGFyc2VyIHZhbGlkYXRlIHByb3BlcnRpZXMgaW4gY29uZmlndXJhdGlvbiBmaWxlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjcGFyc2VyRGVidWdMZXZlbCI+cGFyc2VyRGVidWdMZXZlbDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgY29tbW9ucy1sb2dnaW5nIG1lY2hhbmlzbS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI3BhcnNlclZhbGlkYXRlIj5wYXJzZXJWYWxpZGF0ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTcGVjaWZpZXMgd2hldGhlciB0aGUgcGFyc2VyIHdpbGwgdmFsaWRhdGUgY29uZmlndXJhdGlvbiBmaWxlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNUSUxFU19ERVRBSUxTX1BBUkFNRVRFUl9OQU1FIj5USUxFU19ERVRBSUxTX1BBUkFNRVRFUl9OQU1FPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FsdGVybmF0ZSBuYW1lIGZvciBkZWZpbml0aW9uIGRlYnVnIGRldGFpbHMgcHJvcGVydGllcyBpbiBjb25maWd1cmF0aW9uIGZpbGU8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZygpIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWZhdWx0IGNvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKGphdmEudXRpbC5NYXApIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+PC9CPihqYXZhLnV0aWwuTWFwJm5ic3A7aW5pdFBhcmFtZXRlcnMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI2dldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdmFsdWUgb2YgYW4gYWRkaXRpb25hbCBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5NYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjZ2V0QXR0cmlidXRlcygpIj5nZXRBdHRyaWJ1dGVzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGFkZGl0aW9uYWwgYXR0cmlidXRlcyBhcyBhIE1hcC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI2dldERlYnVnTGV2ZWwoKSI+Z2V0RGVidWdMZXZlbDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjb21tb25zLWxvZ2dpbmcgbWVjaGFuaXNtLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNnZXREZWZpbml0aW9uQ29uZmlnRmlsZXMoKSI+Z2V0RGVmaW5pdGlvbkNvbmZpZ0ZpbGVzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBkZWZpbml0aW9uIGNvbmZpZyBmaWxlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNnZXRGYWN0b3J5Q2xhc3NuYW1lKCkiPmdldEZhY3RvcnlDbGFzc25hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIGNsYXNzbmFtZSBvZiB0aGUgZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNnZXRGYWN0b3J5TmFtZSgpIj5nZXRGYWN0b3J5TmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgZmFjdG9yeSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjZ2V0UGFyc2VyRGVidWdMZXZlbCgpIj5nZXRQYXJzZXJEZWJ1Z0xldmVsPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbnMtbG9nZ2luZyBtZWNoYW5pc20uPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI2dldFBhcnNlclZhbGlkYXRlKCkiPmdldFBhcnNlclZhbGlkYXRlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGV0ZXJtaW5lcyBpZiB0aGUgcGFyc2VyIGlzIHZhbGlkYXRpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjaXNNb2R1bGVBd2FyZSgpIj5pc01vZHVsZUF3YXJlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBtb2R1bGUgYXdhcmUgZmxhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNsaW5rT2xkUHJvcGVydHlOYW1lcyhqYXZhLnV0aWwuTWFwKSI+bGlua09sZFByb3BlcnR5TmFtZXM8L0E+PC9CPihqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0xpbmsgb2xkIHByb3BlcnR5IG5hbWVzIHRvIG5ldyBwcm9wZXJ0eSBuYW1lcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNwb3B1bGF0ZShqYXZhLnV0aWwuTWFwKSI+cG9wdWxhdGU8L0E+PC9CPihqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BvcHVsYXRlIHRoaXMgY29uZmlnIG9iamVjdCBmcm9tIHByb3BlcnRpZXMgbWFwLCBiYXNlZCBvbgorIHRoZSBzcGVjaWZpZWQgbmFtZS92YWx1ZSBwYWlycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNzZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPnNldEF0dHJpYnV0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB2YWx1ZSBvZiBhbiBhZGRpdGlvbmFsIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNzZXREZWJ1Z0xldmVsKGludCkiPnNldERlYnVnTGV2ZWw8L0E+PC9CPihpbnQmbmJzcDthRGVidWdMZXZlbCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjb21tb25zLWxvZ2dpbmcgbWVjaGFuaXNtLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNzZXREZWZpbml0aW9uQ29uZmlnRmlsZXMoamF2YS5sYW5nLlN0cmluZykiPnNldERlZmluaXRpb25Db25maWdGaWxlczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthRGVmaW5pdGlvbkNvbmZpZ0ZpbGVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBkZWZpbml0aW9uIGNvbmZpZyBmaWxlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCNzZXRGYWN0b3J5Q2xhc3NuYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGYWN0b3J5Q2xhc3NuYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FGYWN0b3J5Q2xhc3NuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBjbGFzc25hbWUgb2YgdGhlIGZhY3RvcnkuLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI3NldEZhY3RvcnlOYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGYWN0b3J5TmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmYWN0b3J5TmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgZmFjdG9yeSBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sI3NldE1vZHVsZUF3YXJlKGJvb2xlYW4pIj5zZXRNb2R1bGVBd2FyZTwvQT48L0I+KGJvb2xlYW4mbmJzcDttb2R1bGVBd2FyZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgbW9kdWxlIGF3YXJlIGZsYWcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjc2V0UGFyc2VyRGVidWdMZXZlbChpbnQpIj5zZXRQYXJzZXJEZWJ1Z0xldmVsPC9BPjwvQj4oaW50Jm5ic3A7YVBhcnNlckRlYnVnTGV2ZWwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgY29tbW9ucy1sb2dnaW5nIG1lY2hhbmlzbS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjc2V0UGFyc2VyVmFsaWRhdGUoYm9vbGVhbikiPnNldFBhcnNlclZhbGlkYXRlPC9BPjwvQj4oYm9vbGVhbiZuYnNwO2FQYXJzZXJWYWxpZGF0ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgdmFsaWRhdGluZyBtb2RlIGZvciB0aGUgcGFyc2VyLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZmFjdG9yeUNsYXNzbmFtZSI+PCEtLSAtLT48L0E+PEgzPgorZmFjdG9yeUNsYXNzbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+ZmFjdG9yeUNsYXNzbmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5GdWxseSBxdWFsaWZpZWQgY2xhc3NuYW1lIG9mIHRoZSBmYWN0b3J5IHRvIGNyZWF0ZS4KKyBJZiBubyBjbGFzc25hbWUgaXMgc2V0LCBhIGRlZmF1bHQgZmFjdG9yeSBpcyBjcmVhdGVkCisgKG9mIGNsYXNzICJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkkxOG5GYWN0b3J5U2V0IikuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZWJ1Z0xldmVsIj48IS0tIC0tPjwvQT48SDM+CitkZWJ1Z0xldmVsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPmRlYnVnTGV2ZWw8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbnMtbG9nZ2luZyBtZWNoYW5pc20uPC9JPgorPFA+Cis8REQ+RGVidWcgbGV2ZWwgdmFsdWUuIDA9bm8gZGVidWcgaW5mbyA+MCA9IGRlYnVnIGluZm8uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJzZXJEZWJ1Z0xldmVsIj48IS0tIC0tPjwvQT48SDM+CitwYXJzZXJEZWJ1Z0xldmVsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPnBhcnNlckRlYnVnTGV2ZWw8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbnMtbG9nZ2luZyBtZWNoYW5pc20uPC9JPgorPFA+Cis8REQ+RGVidWcgbGV2ZWwgdmFsdWUgdXNlZCB3aGVuIHBhcnNpbmcgY29uZmlndXJhdGlvbiBmaWxlLgorIDA9bm8gZGVidWcgaW5mbzsgPjAgPSBkZWJ1ZyBpbmZvLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyc2VyVmFsaWRhdGUiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcnNlclZhbGlkYXRlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5wYXJzZXJWYWxpZGF0ZTwvQj48L1BSRT4KKzxETD4KKzxERD5TcGVjaWZpZXMgd2hldGhlciB0aGUgcGFyc2VyIHdpbGwgdmFsaWRhdGUgY29uZmlndXJhdGlvbiBmaWxlcy4KKyBEZWZhdWx0IHZhbHVlIGlzIHRydWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZWZpbml0aW9uQ29uZmlnRmlsZXMiPjwhLS0gLS0+PC9BPjxIMz4KK2RlZmluaXRpb25Db25maWdGaWxlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+ZGVmaW5pdGlvbkNvbmZpZ0ZpbGVzPC9CPjwvUFJFPgorPERMPgorPEREPkRlZmluaXRpb24gY29uZmlndXJhdGlvbiBmaWxlIHNwZWNpZmllZCBieSB1c2VyCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtb2R1bGVBd2FyZSI+PCEtLSAtLT48L0E+PEgzPgorbW9kdWxlQXdhcmU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPm1vZHVsZUF3YXJlPC9CPjwvUFJFPgorPERMPgorPEREPlNwZWNpZmllcyB3aGV0aGVyIHRoZSBmYWN0b3J5IGlzICJtb2R1bGUtYXdhcmUiLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmFjdG9yeU5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK2ZhY3RvcnlOYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5mYWN0b3J5TmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBhc3NvY2lhdGVkIHRvIHRoaXMgZmFjdG9yeS4KKyA8YnI+CisgV2l0aCBTdHJ1dHMgMS4xLCB0aGlzIG5hbWUgaXMgdGhlIG1vZHVsZSBuYW1lIHRvIHdoaWNoIHRoaXMgZmFjdG9yeQorIGJlbG9uZy4gSXQgaXMgc2V0IGJ5IHRoZSBzeXN0ZW0uCisgPGJyPgorIEluIHByaW9yIHZlcnNpb25zLCB0aGlzIHByb3BlcnR5IGlzIG5vdCB1c2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iUEFSU0VSX0RFVEFJTFNfUEFSQU1FVEVSX05BTUUiPjwhLS0gLS0+PC9BPjxIMz4KK1BBUlNFUl9ERVRBSUxTX1BBUkFNRVRFUl9OQU1FPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+UEFSU0VSX0RFVEFJTFNfUEFSQU1FVEVSX05BTUU8L0I+PC9QUkU+Cis8REw+Cis8REQ+QWx0ZXJuYXRlIG5hbWUgZm9yIHBhcnNlciBkZWJ1ZyBkZXRhaWxzIHByb3BlcnRpZXMgaW4gY29uZmlndXJhdGlvbiBmaWxlCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5QQVJTRVJfREVUQUlMU19QQVJBTUVURVJfTkFNRSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJQQVJTRVJfVkFMSURBVEVfUEFSQU1FVEVSX05BTUUiPjwhLS0gLS0+PC9BPjxIMz4KK1BBUlNFUl9WQUxJREFURV9QQVJBTUVURVJfTkFNRTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPlBBUlNFUl9WQUxJREFURV9QQVJBTUVURVJfTkFNRTwvQj48L1BSRT4KKzxETD4KKzxERD5BbHRlcm5hdGUgbmFtZSBmb3IgcGFyc2VyIHZhbGlkYXRlIHByb3BlcnRpZXMgaW4gY29uZmlndXJhdGlvbiBmaWxlCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5QQVJTRVJfVkFMSURBVEVfUEFSQU1FVEVSX05BTUUiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRkFDVE9SWV9DTEFTU05BTUVfUEFSQU1FVEVSX05BTUUiPjwhLS0gLS0+PC9BPjxIMz4KK0ZBQ1RPUllfQ0xBU1NOQU1FX1BBUkFNRVRFUl9OQU1FPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+RkFDVE9SWV9DTEFTU05BTUVfUEFSQU1FVEVSX05BTUU8L0I+PC9QUkU+Cis8REw+Cis8REQ+QWx0ZXJuYXRlIG5hbWUgZm9yIGZhY3RvcnkgY2xhc3NuYW1lIHByb3BlcnRpZXMgaW4gY29uZmlndXJhdGlvbiBmaWxlCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5GQUNUT1JZX0NMQVNTTkFNRV9QQVJBTUVURVJfTkFNRSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJERUZJTklUSU9OU19DT05GSUdfUEFSQU1FVEVSX05BTUUiPjwhLS0gLS0+PC9BPjxIMz4KK0RFRklOSVRJT05TX0NPTkZJR19QQVJBTUVURVJfTkFNRTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkRFRklOSVRJT05TX0NPTkZJR19QQVJBTUVURVJfTkFNRTwvQj48L1BSRT4KKzxETD4KKzxERD5BbHRlcm5hdGUgbmFtZSBmb3IgZGVmaW5pdGlvbiBmaWxlcyBwcm9wZXJ0aWVzIGluIGNvbmZpZ3VyYXRpb24gZmlsZQorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuREVGSU5JVElPTlNfQ09ORklHX1BBUkFNRVRFUl9OQU1FIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlRJTEVTX0RFVEFJTFNfUEFSQU1FVEVSX05BTUUiPjwhLS0gLS0+PC9BPjxIMz4KK1RJTEVTX0RFVEFJTFNfUEFSQU1FVEVSX05BTUU8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5USUxFU19ERVRBSUxTX1BBUkFNRVRFUl9OQU1FPC9CPjwvUFJFPgorPERMPgorPEREPkFsdGVybmF0ZSBuYW1lIGZvciBkZWZpbml0aW9uIGRlYnVnIGRldGFpbHMgcHJvcGVydGllcyBpbiBjb25maWd1cmF0aW9uIGZpbGUKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLlRJTEVTX0RFVEFJTFNfUEFSQU1FVEVSX05BTUUiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZXh0cmFBdHRyaWJ1dGVzIj48IS0tIC0tPjwvQT48SDM+CitleHRyYUF0dHJpYnV0ZXM8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS51dGlsLk1hcCA8Qj5leHRyYUF0dHJpYnV0ZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+TWFwIG9mIGV4dHJhIGF0dHJpYnV0ZSBhdmFpbGFibGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIDxCPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQj4oKTwvUFJFPgorPERMPgorPEREPkRlZmF1bHQgY29uc3RydWN0b3IuCis8UD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZyhqYXZhLnV0aWwuTWFwKSI+PCEtLSAtLT48L0E+PEgzPgorRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9CPihqYXZhLnV0aWwuTWFwJm5ic3A7aW5pdFBhcmFtZXRlcnMpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCisgQ3JlYXRlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LCBhbmQgaW5pdGlhbGl6ZSBpdCB3aXRoIHBhcmFtZXRlcnMgZnJvbSBNYXAuCisgUGFyYW1ldGVycyBjb3JyZXNwb25kaW5nIHRvIGFuIGF0dHJpYnV0ZSBhcmUgZmlsdGVyZWQgYW5kIHN0b3JlZCBpbiBhcHByb3ByaWF0ZQorIGF0dHJpYnV0ZS4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5pbml0UGFyYW1ldGVyczwvQ09ERT4gLSBNYXAuPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iaXNNb2R1bGVBd2FyZSgpIj48IS0tIC0tPjwvQT48SDM+Citpc01vZHVsZUF3YXJlPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc01vZHVsZUF3YXJlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBtb2R1bGUgYXdhcmUgZmxhZy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD48Y29kZT50cnVlPC9jb2RlPjogdXNlciB3YW50cyBhIHNpbmdsZSBmYWN0b3J5IGluc3RhbmNlLAorIDxjb2RlPmZhbHNlPC9jb2RlPjogdXNlciB3YW50cyBtdWx0aXBsZSBmYWN0b3J5IGluc3RhbmNlcyAob25lIHBlciBtb2R1bGUgd2l0aCBTdHJ1dHMpPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNb2R1bGVBd2FyZShib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TW9kdWxlQXdhcmU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE1vZHVsZUF3YXJlPC9CPihib29sZWFuJm5ic3A7bW9kdWxlQXdhcmUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBtb2R1bGUgYXdhcmUgZmxhZy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bW9kdWxlQXdhcmU8L0NPREU+IC0gPGNvZGU+dHJ1ZTwvY29kZT46IHVzZXIgd2FudHMgYSBzaW5nbGUgZmFjdG9yeSBpbnN0YW5jZSwKKyA8Y29kZT5mYWxzZTwvY29kZT46IHVzZXIgd2FudHMgbXVsdGlwbGUgZmFjdG9yeSBpbnN0YW5jZXMgKG9uZSBwZXIgbW9kdWxlIHdpdGggU3RydXRzKTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmFjdG9yeUNsYXNzbmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGYWN0b3J5Q2xhc3NuYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGYWN0b3J5Q2xhc3NuYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBjbGFzc25hbWUgb2YgdGhlIGZhY3RvcnkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Q2xhc3NuYW1lLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RmFjdG9yeUNsYXNzbmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RmFjdG9yeUNsYXNzbmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RmFjdG9yeUNsYXNzbmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FGYWN0b3J5Q2xhc3NuYW1lKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgY2xhc3NuYW1lIG9mIHRoZSBmYWN0b3J5Li4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YUZhY3RvcnlDbGFzc25hbWU8L0NPREU+IC0gQ2xhc3NuYW1lIG9mIHRoZSBmYWN0b3J5LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVidWdMZXZlbCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWJ1Z0xldmVsPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldERlYnVnTGV2ZWw8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgY29tbW9ucy1sb2dnaW5nIG1lY2hhbmlzbS48L0k+Cis8UD4KKzxERD5HZXQgZGVidWcgbGV2ZWwuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+RGVidWcgbGV2ZWwuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXREZWJ1Z0xldmVsKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldERlYnVnTGV2ZWw8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldERlYnVnTGV2ZWw8L0I+KGludCZuYnNwO2FEZWJ1Z0xldmVsKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjb21tb25zLWxvZ2dpbmcgbWVjaGFuaXNtLjwvST4KKzxQPgorPEREPlNldCBkZWJ1ZyBsZXZlbC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YURlYnVnTGV2ZWw8L0NPREU+IC0gRGVidWcgbGV2ZWwuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXJzZXJEZWJ1Z0xldmVsKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhcnNlckRlYnVnTGV2ZWw8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0UGFyc2VyRGVidWdMZXZlbDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjb21tb25zLWxvZ2dpbmcgbWVjaGFuaXNtLjwvST4KKzxQPgorPEREPkdldCB0aGUgZGVidWcgbGV2ZWwgZm9yIHRoZSBwYXJzZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+RGVidWcgbGV2ZWwuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYXJzZXJEZWJ1Z0xldmVsKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhcnNlckRlYnVnTGV2ZWw8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhcnNlckRlYnVnTGV2ZWw8L0I+KGludCZuYnNwO2FQYXJzZXJEZWJ1Z0xldmVsKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjb21tb25zLWxvZ2dpbmcgbWVjaGFuaXNtLjwvST4KKzxQPgorPEREPlNldCB0aGUgZGVidWcgbGV2ZWwgZm9yIHRoZSBwYXJzZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmFQYXJzZXJEZWJ1Z0xldmVsPC9DT0RFPiAtIERlYnVnIGxldmVsLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFyc2VyVmFsaWRhdGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFyc2VyVmFsaWRhdGU8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldFBhcnNlclZhbGlkYXRlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+RGV0ZXJtaW5lcyBpZiB0aGUgcGFyc2VyIGlzIHZhbGlkYXRpbmcuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+PGNvZGU+dHJ1ZTxjb2RlPiB3aGVuIGluIHZhbGlkYXRpbmcgbW9kZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhcnNlclZhbGlkYXRlKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYXJzZXJWYWxpZGF0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGFyc2VyVmFsaWRhdGU8L0I+KGJvb2xlYW4mbmJzcDthUGFyc2VyVmFsaWRhdGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSB2YWxpZGF0aW5nIG1vZGUgZm9yIHRoZSBwYXJzZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmFQYXJzZXJWYWxpZGF0ZTwvQ09ERT4gLSA8Y29kZT50cnVlPC9jb2RlPiBmb3IgdmFsaWRhdGlvbiwgPGNvZGU+ZmFsc2U8L2NvZGU+IG90aGVyd2lzZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVmaW5pdGlvbkNvbmZpZ0ZpbGVzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERlZmluaXRpb25Db25maWdGaWxlczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RGVmaW5pdGlvbkNvbmZpZ0ZpbGVzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBkZWZpbml0aW9uIGNvbmZpZyBmaWxlcy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5EZWZpdGlvbiBjb25maWcgZmlsZXMuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXREZWZpbml0aW9uQ29uZmlnRmlsZXMoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldERlZmluaXRpb25Db25maWdGaWxlczwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RGVmaW5pdGlvbkNvbmZpZ0ZpbGVzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YURlZmluaXRpb25Db25maWdGaWxlcyk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGRlZmluaXRpb24gY29uZmlnIGZpbGVzLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5hRGVmaW5pdGlvbkNvbmZpZ0ZpbGVzPC9DT0RFPiAtIERlZmluaXRpb24gY29uZmlnIGZpbGVzLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitzZXRBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEF0dHJpYnV0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCB2YWx1ZSBvZiBhbiBhZGRpdGlvbmFsIGF0dHJpYnV0ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBhdHRyaWJ1dGUuPEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Z2V0QXR0cmlidXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5HZXQgdmFsdWUgb2YgYW4gYWRkaXRpb25hbCBhdHRyaWJ1dGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgYXR0cmlidXRlLgorPERUPjxCPlJldHVybnM6PC9CPjxERD5WYWx1ZSBvZiB0aGUgYXR0cmlidXRlLCBvciBudWxsIGlmIG5vdCBmb3VuZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEF0dHJpYnV0ZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QXR0cmlidXRlczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5NYXAgPEI+Z2V0QXR0cmlidXRlczwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgYXMgYSBNYXAuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+TWFwIEEgTWFwIGNvbnRhaW5pbmcgYXR0cmlidXRlIG5hbWUgLSB2YWx1ZSBwYWlycy48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBvcHVsYXRlKGphdmEudXRpbC5NYXApIj48IS0tIC0tPjwvQT48SDM+Citwb3B1bGF0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cG9wdWxhdGU8L0I+KGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKQorICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UG9wdWxhdGUgdGhpcyBjb25maWcgb2JqZWN0IGZyb20gcHJvcGVydGllcyBtYXAsIGJhc2VkIG9uCisgdGhlIHNwZWNpZmllZCBuYW1lL3ZhbHVlIHBhaXJzLiAgVGhpcyBtZXRob2QgdXNlcyB0aGUgcG9wdWxhdGUoKSBtZXRob2QgZnJvbQorIG9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuQmVhblV0aWwuCisgPHA+CisgUHJvcGVydGllcyBrZXlzIGFyZSBzY2FubmVkIGZvciBvbGQgcHJvcGVydHkgbmFtZXMsIGFuZCBsaW5rZWQgdG8gdGhlIG5ldyBuYW1lCisgaWYgbmVjZXNzYXJ5LiBUaGlzIG1vZGlmaWVzIHRoZSBwcm9wZXJ0aWVzIG1hcC4KKyA8cD4KKyBUaGUgcGFydGljdWxhciBzZXR0ZXIgbWV0aG9kIHRvIGJlIGNhbGxlZCBmb3IgZWFjaCBwcm9wZXJ0eSBpcworIGRldGVybWluZWQgdXNpbmcgdGhlIHVzdWFsIEphdmFCZWFucyBpbnRyb3NwZWN0aW9uIG1lY2hhbmlzbXMuICBUaHVzLAorIHlvdSBtYXkgaWRlbnRpZnkgY3VzdG9tIHNldHRlciBtZXRob2RzIHVzaW5nIGEgQmVhbkluZm8gY2xhc3MgdGhhdCBpcworIGFzc29jaWF0ZWQgd2l0aCB0aGUgY2xhc3Mgb2YgdGhlIGJlYW4gaXRzZWxmLiAgSWYgbm8gc3VjaCBCZWFuSW5mbworIGNsYXNzIGlzIGF2YWlsYWJsZSwgdGhlIHN0YW5kYXJkIG1ldGhvZCBuYW1lIGNvbnZlcnNpb24gKCJzZXQiIHBsdXMKKyB0aGUgY2FwaXRhbGl6ZWQgbmFtZSBvZiB0aGUgcHJvcGVydHkgaW4gcXVlc3Rpb24pIGlzIHVzZWQuCisgPHA+CisgPHN0cm9uZz5OT1RFPC9zdHJvbmc+OiAgSXQgaXMgY29udHJhcnkgdG8gdGhlIEphdmFCZWFucyBTcGVjaWZpY2F0aW9uCisgdG8gaGF2ZSBtb3JlIHRoYW4gb25lIHNldHRlciBtZXRob2QgKHdpdGggZGlmZmVyZW50IGFyZ3VtZW50Cisgc2lnbmF0dXJlcykgZm9yIHRoZSBzYW1lIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcm9wZXJ0aWVzPC9DT0RFPiAtIE1hcCBrZXllZCBieSBwcm9wZXJ0eSBuYW1lLCB3aXRoIHRoZQorICBjb3JyZXNwb25kaW5nIChTdHJpbmcgb3IgU3RyaW5nW10pIHZhbHVlKHMpIHRvIGJlIHNldC4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5JbGxlZ2FsQWNjZXNzRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZQorICBhY2Nlc3MgdG8gdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZC4KKzxERD48Q09ERT5qYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QKKyAgdGhyb3dzIGFuIGV4Y2VwdGlvbi48RFQ+PEI+U2VlIEFsc286PC9CPjxERD48Q09ERT5CZWFuVXRpbHM8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsaW5rT2xkUHJvcGVydHlOYW1lcyhqYXZhLnV0aWwuTWFwKSI+PCEtLSAtLT48L0E+PEgzPgorbGlua09sZFByb3BlcnR5TmFtZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5saW5rT2xkUHJvcGVydHlOYW1lczwvQj4oamF2YS51dGlsLk1hcCZuYnNwO3Byb3BlcnRpZXMpPC9QUkU+Cis8REw+Cis8REQ+TGluayBvbGQgcHJvcGVydHkgbmFtZXMgdG8gbmV3IHByb3BlcnR5IG5hbWVzLgorIFRoaXMgbW9kaWZpZXMgdGhlIG1hcC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cHJvcGVydGllczwvQ09ERT4gLSBNYXAga2V5ZWQgYnkgcHJvcGVydHkgbmFtZSwgd2l0aCB0aGUKKyAgY29ycmVzcG9uZGluZyAoU3RyaW5nIG9yIFN0cmluZ1tdKSB2YWx1ZShzKSB0byBiZSBzZXQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGYWN0b3J5TmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGYWN0b3J5TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RmFjdG9yeU5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIGZhY3RvcnkgbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RmFjdG9yeU5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZhY3RvcnlOYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGYWN0b3J5TmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZhY3RvcnlOYW1lKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgZmFjdG9yeSBuYW1lLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mYWN0b3J5TmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBmYWN0b3J5LjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25OYW1lQXR0cmlidXRlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2JkYzc4OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbApAQCAtMCwwICsxLDQxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZhLmxhbmcuVGhyb3dhYmxlCisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YS5sYW5nLkV4Y2VwdGlvbgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzRXhjZXB0aW9uPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiPkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwiPlRpbGVzRXhjZXB0aW9uPC9BPjwvREw+CisKKzxQPgorRXhjZXB0aW9uIHRocm93biB3aGVuIGFuIGVycm9yIG9jY3VycyB3aGlsZSB0aGUgZmFjdG9yeSB0cmllcyB0bworIGNyZWF0ZSBhIG5ldyBpbnN0YW5jZSBtYXBwZXIuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24iPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5FeGNlcHRpb248L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwjZXhjZXB0aW9uIj5leGNlcHRpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW55ICJ3cmFwcGVkIiBleGNlcHRpb24gd2lsbCBiZSBleHBvc2VkIHdoZW4gdGhpcyBpcyBzZXJpYWxpemVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuRXhjZXB0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5FeGNlcHRpb248L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5UaHJvd2FibGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLlRocm93YWJsZTwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sI0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbigpIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sI0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbihqYXZhLmxhbmcuRXhjZXB0aW9uKSI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQj4oamF2YS5sYW5nLkV4Y2VwdGlvbiZuYnNwO2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYSBuZXcgPGNvZGU+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9jb2RlPiB3cmFwcGluZyBhbiBleGlzdGluZyBleGNlcHRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCNEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZykiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXNzYWdlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCNEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLkV4Y2VwdGlvbikiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5FeGNlcHRpb24mbmJzcDtlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGEgbmV3IDxjb2RlPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvY29kZT4gZnJvbSBhbiBleGlzdGluZyBleGNlcHRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCNnZXRFeGNlcHRpb24oKSI+Z2V0RXhjZXB0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBlbWJlZGRlZCBleGNlcHRpb24sIGlmIGFueS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCNnZXRNZXNzYWdlKCkiPmdldE1lc3NhZ2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYSBkZXRhaWwgbWVzc2FnZSBmb3IgdGhpcyBleGNlcHRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuVGhyb3dhYmxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuVGhyb3dhYmxlPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmlsbEluU3RhY2tUcmFjZSwgZ2V0Q2F1c2UsIGdldExvY2FsaXplZE1lc3NhZ2UsIGdldFN0YWNrVHJhY2UsIGluaXRDYXVzZSwgcHJpbnRTdGFja1RyYWNlLCBwcmludFN0YWNrVHJhY2UsIHByaW50U3RhY2tUcmFjZSwgc2V0U3RhY2tUcmFjZSwgdG9TdHJpbmc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImV4Y2VwdGlvbiI+PCEtLSAtLT48L0E+PEgzPgorZXhjZXB0aW9uPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5FeGNlcHRpb24gPEI+ZXhjZXB0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPkFueSAid3JhcHBlZCIgZXhjZXB0aW9uIHdpbGwgYmUgZXhwb3NlZCB3aGVuIHRoaXMgaXMgc2VyaWFsaXplZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3Rvci4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tZXNzYWdlPC9DT0RFPiAtIFRoZSBlcnJvciBvciB3YXJuaW5nIG1lc3NhZ2UuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uKGphdmEubGFuZy5FeGNlcHRpb24pIj48IS0tIC0tPjwvQT48SDM+CitEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0I+KGphdmEubGFuZy5FeGNlcHRpb24mbmJzcDtlKTwvUFJFPgorPERMPgorPEREPkNyZWF0ZSBhIG5ldyA8Y29kZT5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L2NvZGU+IHdyYXBwaW5nIGFuIGV4aXN0aW5nIGV4Y2VwdGlvbi4KKworIDxwPlRoZSBleGlzdGluZyBleGNlcHRpb24gd2lsbCBiZSBlbWJlZGRlZCBpbiB0aGUgbmV3Cisgb25lIGFuZCBpdHMgbWVzc2FnZSB3aWxsIGJlY29tZSB0aGUgZGVmYXVsdCBtZXNzYWdlIGZvcgorIHRoZSBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uPC9wPgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmU8L0NPREU+IC0gVGhlIGV4Y2VwdGlvbiB0byBiZSB3cmFwcGVkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuRXhjZXB0aW9uKSI+PCEtLSAtLT48L0E+PEgzPgorRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLkV4Y2VwdGlvbiZuYnNwO2UpPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIGEgbmV3IDxjb2RlPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvY29kZT4gZnJvbSBhbiBleGlzdGluZyBleGNlcHRpb24uCisKKyA8cD5UaGUgZXhpc3RpbmcgZXhjZXB0aW9uIHdpbGwgYmUgZW1iZWRkZWQgaW4gdGhlIG5ldworIG9uZSwgYnV0IHRoZSBuZXcgZXhjZXB0aW9uIHdpbGwgaGF2ZSBpdHMgb3duIG1lc3NhZ2UuPC9wPgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1lc3NhZ2U8L0NPREU+IC0gVGhlIGRldGFpbCBtZXNzYWdlLjxERD48Q09ERT5lPC9DT0RFPiAtIFRoZSBleGNlcHRpb24gdG8gYmUgd3JhcHBlZC48L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gYSBkZXRhaWwgbWVzc2FnZSBmb3IgdGhpcyBleGNlcHRpb24uCisKKyA8cD5JZiB0aGVyZSBpcyBhIGVtYmVkZGVkIGV4Y2VwdGlvbiwgYW5kIGlmIHRoZSBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24KKyBoYXMgbm8gZGV0YWlsIG1lc3NhZ2Ugb2YgaXRzIG93biwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4KKyB0aGUgZGV0YWlsIG1lc3NhZ2UgZnJvbSB0aGUgZW1iZWRkZWQgZXhjZXB0aW9uLjwvcD4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc0V4Y2VwdGlvbi5odG1sI2dldE1lc3NhZ2UoKSI+Z2V0TWVzc2FnZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwiPlRpbGVzRXhjZXB0aW9uPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VGhlIGVycm9yIG9yIHdhcm5pbmcgbWVzc2FnZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEV4Y2VwdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFeGNlcHRpb248L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuRXhjZXB0aW9uIDxCPmdldEV4Y2VwdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgZW1iZWRkZWQgZXhjZXB0aW9uLCBpZiBhbnkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNFeGNlcHRpb24uaHRtbCNnZXRFeGNlcHRpb24oKSI+Z2V0RXhjZXB0aW9uPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNFeGNlcHRpb24uaHRtbCI+VGlsZXNFeGNlcHRpb248L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgZW1iZWRkZWQgZXhjZXB0aW9uLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGVyZSBpcyBub25lLjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0MTQ5MDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwKQEAgLTAsMCArMSwyODUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitEZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXAgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcCxEZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXAgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkRlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGlyZWN0U3RyaW5nQXR0cmlidXRlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEudXRpbC5IYXNoTWFwIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLkhhc2hNYXAiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIERlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcDwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmEudXRpbC5BYnN0cmFjdE1hcAorICAgICAgICB8CisgICAgICAgICstLWphdmEudXRpbC5IYXNoTWFwCisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5sYW5nLkNsb25lYWJsZSwgamF2YS51dGlsLk1hcCwgamF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5FbmNsb3NpbmcgY2xhc3M6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCI+RGVmaW5pdGlvbnNVdGlsPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnN0YXRpYyBjbGFzcyA8Qj5EZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXA8L0I+PERUPmV4dGVuZHMgamF2YS51dGlsLkhhc2hNYXA8L0RMPgorCis8UD4KK0lubmVyIGNsYXNzLgorIFdyYXBwZXIgZm9yIFNlcnZsZXRDb250ZXh0IGluaXQgcGFyYW1ldGVycy4KKyBPYmplY3Qgb2YgdGhpcyBjbGFzcyBpcyBhbiBoYXNobWFwIGNvbnRhaW5pbmcgcGFyYW1ldGVycyBhbmQgdmFsdWVzCisgZGVmaW5lZCBpbiB0aGUgc2VydmxldCBjb25maWcgZmlsZSAod2ViLnhtbCkuCis8UD4KKworPFA+Cis8REw+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLnV0aWwuSGFzaE1hcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLnV0aWwuSGFzaE1hcDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLkFic3RyYWN0TWFwIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEudXRpbC5BYnN0cmFjdE1hcDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+KHBhY2thZ2UgcHJpdmF0ZSk8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwjRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwKGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZykiPkRlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcDwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZyZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEudXRpbC5IYXNoTWFwIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLnV0aWwuSGFzaE1hcDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsZWFyLCBjbG9uZSwgY29udGFpbnNLZXksIGNvbnRhaW5zVmFsdWUsIGVudHJ5U2V0LCBnZXQsIGlzRW1wdHksIGtleVNldCwgcHV0LCBwdXRBbGwsIHJlbW92ZSwgc2l6ZSwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLkFic3RyYWN0TWFwIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLnV0aWwuQWJzdHJhY3RNYXA8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5lcXVhbHMsIGhhc2hDb2RlLCB0b1N0cmluZzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5hbGl6ZSwgZ2V0Q2xhc3MsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLk1hcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmEudXRpbC5NYXA8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5lcXVhbHMsIGhhc2hDb2RlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwKGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK0RlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcDwvSDM+Cis8UFJFPgorPEI+RGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwPC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcmbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGlyZWN0U3RyaW5nQXR0cmlidXRlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEudXRpbC5IYXNoTWFwIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLkhhc2hNYXAiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNTg0MzkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwKQEAgLTAsMCArMSw5NDggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitEZWZpbml0aW9uc1V0aWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zVXRpbCxEZWZpbml0aW9uc1V0aWwgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkRlZmluaXRpb25zVXRpbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uc1V0aWwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uc1V0aWwuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwOzxBIEhSRUY9IiNuZXN0ZWRfY2xhc3Nfc3VtbWFyeSI+TkVTVEVEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9GT05UPgorPEJSPgorQ2xhc3MgRGVmaW5pdGlvbnNVdGlsPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbDwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc1V0aWw8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPkNvbXBvbmVudENvbnN0YW50czwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKSI+PENPREU+VGlsZXNVdGlsLmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCwgRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKTwvQ09ERT48L0E+PC9JPgorPFA+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkRlZmluaXRpb25zVXRpbDwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCI+VGlsZXNVdGlsPC9BPjxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPjwvREw+CisKKzxQPgorVXRpbGl0aWVzIGNsYXNzIGZvciBkZWZpbml0aW9ucyBmYWN0b3J5LgorIEFsc28gZGVmaW5lIHVzZXJEZWJ1Z0xldmVsIHByb3BlcnR5ICh0byBiZSBtb3ZlZCBmcm9tIHRoaXMgY2xhc3MgPykuCisgKHRvIGRvKS4KKzxQPgorCis8UD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJuZXN0ZWRfY2xhc3Nfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5OZXN0ZWQgQ2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPihwYWNrYWdlIHByaXZhdGUpIHN0YXRpYyZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sIj5EZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXA8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7SW5uZXIgY2xhc3MuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjQUNUSU9OX0RFRklOSVRJT04iPkFDVElPTl9ERUZJTklUSU9OPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0YW50IG5hbWUgdXNlZCB0byBzdG9yZSBkZWZpbml0aW9uIGluIGpzcCBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI0RFRklOSVRJT05TX0NPTkZJR19VU0VSX0RFQlVHX0xFVkVMIj5ERUZJTklUSU9OU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtOYW1lIG9mIGluaXQgcHJvcGVydHkgY2FycnlpbmcgZGVidWcgbGV2ZWw8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNERUZJTklUSU9OU19GQUNUT1JZIj5ERUZJTklUSU9OU19GQUNUT1JZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0YW50IG5hbWUgdXNlZCB0byBzdG9yZSBmYWN0b3J5IGluIGNvbnRleHQ8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNERUZJTklUSU9OU19GQUNUT1JZX0NMQVNTTkFNRSI+REVGSU5JVElPTlNfRkFDVE9SWV9DTEFTU05BTUU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7TmFtZSBvZiBpbml0IHByb3BlcnR5IGNhcnJ5aW5nIGZhY3RvcnkgY2xhc3MgbmFtZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI0lOU1RBTkNFU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTCI+SU5TVEFOQ0VTX0NPTkZJR19VU0VSX0RFQlVHX0xFVkVMPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSBERUZJTklUSU9OU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTCBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNsb2ciPmxvZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNOT19ERUJVRyI+Tk9fREVCVUc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7VXNlciBEZWJ1ZyBsZXZlbDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjdXNlckRlYnVnTGV2ZWwiPnVzZXJEZWJ1Z0xldmVsPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0dsb2JhbCB1c2VyIGRlZmluZWQgZGVidWcgbGV2ZWw8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj5UaWxlc1V0aWw8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjdGlsZXNVdGlsSW1wbCI+dGlsZXNVdGlsSW1wbDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5Db21wb25lbnRDb25zdGFudHMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPkNvbXBvbmVudENvbnN0YW50czwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjQ09NUE9ORU5UX0NPTlRFWFQiPkNPTVBPTkVOVF9DT05URVhUPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sI0NPTVBPTkVOVF9TQ09QRSI+Q09NUE9ORU5UX1NDT1BFPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sI0VYQ0VQVElPTl9LRVkiPkVYQ0VQVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwjTE9DQUxFX0tFWSI+TE9DQUxFX0tFWTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNEZWZpbml0aW9uc1V0aWwoKSI+RGVmaW5pdGlvbnNVdGlsPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjY3JlYXRlRGVmaW5pdGlvbkZhY3RvcnlJbnN0YW5jZShqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlRGVmaW5pdGlvbkZhY3RvcnlJbnN0YW5jZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5ObyBkaXJlY3QgcmVwbGFjZW1lbnQuIFVzZSBjcmVhdGVEZWZpbml0aW9uRmFjdG9yeQorIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj48Q09ERT5UaWxlc1V0aWwuY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0LCBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpPC9DT0RFPjwvQT4uPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS51dGlsLk1hcCkiPmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NyZWF0ZSBkZWZhdWx0IERlZmluaXRpb24gZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXAsIGphdmEubGFuZy5TdHJpbmcpIj5jcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS51dGlsLk1hcCZuYnNwO3Byb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzbmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQsIFNlcnZsZXRDb25maWcgc2VydmxldENvbmZpZyk8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpIj5jcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnJm5ic3A7c2VydmxldENvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NyZWF0ZSBEZWZpbml0aW9uIGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcsIGJvb2xlYW4pIj5jcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnJm5ic3A7c2VydmxldENvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7Y2hlY2tJZkV4aXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q3JlYXRlIERlZmluaXRpb24gZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNnZXRBY3Rpb25EZWZpbml0aW9uKGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj5nZXRBY3Rpb25EZWZpbml0aW9uPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtHZXQgRGVmaW5pdGlvbiBzdG9yZWQgaW4ganNwIGNvbnRleHQgYnkgYW4gYWN0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj5nZXREZWZpbml0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2RlZmluaXRpb25OYW1lLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxDT0RFPlRpbGVzVXRpbC5nZXREZWZpbml0aW9uKFN0cmluZywgU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNnZXREZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb25zRmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNnZXREZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxDT0RFPlRpbGVzVXRpbC5nZXREZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2luaXRVc2VyRGVidWdMZXZlbChqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpIj5pbml0VXNlckRlYnVnTGV2ZWw8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcmbmJzcDtzZXJ2bGV0Q29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbnMtbG9nZ2luZyBwYWNrYWdlIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI21ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPm1ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4mbmJzcDtmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj48Q09ERT5UaWxlc1V0aWwuY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0LCBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjcG9wdWxhdGVEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpIj5wb3B1bGF0ZURlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Jm5ic3A7ZmFjdG9yeUNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZyZuYnNwO3NlcnZsZXRDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtQb3B1bGF0ZSBEZWZpbml0aW9uIEZhY3RvcnkgQ29uZmlnIGZyb20gd2ViLnhtbCBwcm9wZXJ0aWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjcmVhZEZhY3RvcnlDb25maWcoamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnKSI+cmVhZEZhY3RvcnlDb25maWc8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcmbmJzcDtzZXJ2bGV0Q29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q3JlYXRlIEZhY3RvcnlDb25maWcgYW5kIGluaXRpYWxpemUgaXQgZnJvbSB3ZWIueG1sLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI3JlbW92ZUFjdGlvbkRlZmluaXRpb24oamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbikiPnJlbW92ZUFjdGlvbkRlZmluaXRpb248L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiZuYnNwO2RlZmluaXRpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZW1vdmUgRGVmaW5pdGlvbiBzdG9yZWQgaW4ganNwIGNvbnRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjc2V0QWN0aW9uRGVmaW5pdGlvbihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uKSI+c2V0QWN0aW9uRGVmaW5pdGlvbjwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Jm5ic3A7ZGVmaW5pdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1N0b3JlIGRlZmluaXRpb24gaW4ganNwIGNvbnRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI3NldERlZmluaXRpb25zRmFjdG9yeShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnksIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5zZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiZuYnNwO2ZhY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+c2luY2UgMjAwMjA3MDguIFJlcGxhY2VkIGJ5IG1ha2VGYWN0b3J5QWNjZXNzaWJsZSgpPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI3NldFVzZXJEZWJ1Z0xldmVsKGludCkiPnNldFVzZXJEZWJ1Z0xldmVsPC9BPjwvQj4oaW50Jm5ic3A7bGV2ZWwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgY29tbW9ucy1sb2dnaW5nIHBhY2thZ2UgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj5UaWxlc1V0aWw8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjYXBwbGljYXRpb25DbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+YXBwbGljYXRpb25DbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj5jcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNkb0ZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5kb0ZvcndhcmQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNkb0luY2x1ZGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5kb0luY2x1ZGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNkb0luY2x1ZGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj5kb0luY2x1ZGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNnZXRUaWxlc1V0aWwoKSI+Z2V0VGlsZXNVdGlsPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjaXNUaWxlc1V0aWxJbXBsU2V0KCkiPmlzVGlsZXNVdGlsSW1wbFNldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI3NldFRpbGVzVXRpbChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxJbXBsKSI+c2V0VGlsZXNVdGlsPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjdGVzdFJlc2V0KCkiPnRlc3RSZXNldDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJsb2ciPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2cgPEI+bG9nPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ1c2VyRGVidWdMZXZlbCI+PCEtLSAtLT48L0E+PEgzPgordXNlckRlYnVnTGV2ZWw8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgaW50IDxCPnVzZXJEZWJ1Z0xldmVsPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5HbG9iYWwgdXNlciBkZWZpbmVkIGRlYnVnIGxldmVsCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJOT19ERUJVRyI+PCEtLSAtLT48L0E+PEgzPgorTk9fREVCVUc8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgaW50IDxCPk5PX0RFQlVHPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Vc2VyIERlYnVnIGxldmVsCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zVXRpbC5OT19ERUJVRyI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJJTlNUQU5DRVNfQ09ORklHX1VTRVJfREVCVUdfTEVWRUwiPjwhLS0gLS0+PC9BPjxIMz4KK0lOU1RBTkNFU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPklOU1RBTkNFU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTDwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2UgREVGSU5JVElPTlNfQ09ORklHX1VTRVJfREVCVUdfTEVWRUwgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5OYW1lIG9mIGluaXQgcHJvcGVydHkgY2FycnlpbmcgZGVidWcgbGV2ZWwKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNVdGlsLklOU1RBTkNFU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTCI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJERUZJTklUSU9OU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTCI+PCEtLSAtLT48L0E+PEgzPgorREVGSU5JVElPTlNfQ09ORklHX1VTRVJfREVCVUdfTEVWRUw8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5ERUZJTklUSU9OU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTDwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+TmFtZSBvZiBpbml0IHByb3BlcnR5IGNhcnJ5aW5nIGRlYnVnIGxldmVsCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zVXRpbC5ERUZJTklUSU9OU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTCI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJERUZJTklUSU9OU19GQUNUT1JZX0NMQVNTTkFNRSI+PCEtLSAtLT48L0E+PEgzPgorREVGSU5JVElPTlNfRkFDVE9SWV9DTEFTU05BTUU8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5ERUZJTklUSU9OU19GQUNUT1JZX0NMQVNTTkFNRTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+TmFtZSBvZiBpbml0IHByb3BlcnR5IGNhcnJ5aW5nIGZhY3RvcnkgY2xhc3MgbmFtZQorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc1V0aWwuREVGSU5JVElPTlNfRkFDVE9SWV9DTEFTU05BTUUiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iREVGSU5JVElPTlNfRkFDVE9SWSI+PCEtLSAtLT48L0E+PEgzPgorREVGSU5JVElPTlNfRkFDVE9SWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkRFRklOSVRJT05TX0ZBQ1RPUlk8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNvbnN0YW50IG5hbWUgdXNlZCB0byBzdG9yZSBmYWN0b3J5IGluIGNvbnRleHQKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNVdGlsLkRFRklOSVRJT05TX0ZBQ1RPUlkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQUNUSU9OX0RFRklOSVRJT04iPjwhLS0gLS0+PC9BPjxIMz4KK0FDVElPTl9ERUZJTklUSU9OPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+QUNUSU9OX0RFRklOSVRJT048L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNvbnN0YW50IG5hbWUgdXNlZCB0byBzdG9yZSBkZWZpbml0aW9uIGluIGpzcCBjb250ZXh0LgorICBVc2VkIHRvIHBhc3MgZGVmaW5pdGlvbiBmcm9tIGEgU3RydXRzIGFjdGlvbiB0byBzZXJ2bGV0IGZvcndhcmQKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNVdGlsLkFDVElPTl9ERUZJTklUSU9OIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJEZWZpbml0aW9uc1V0aWwoKSI+PCEtLSAtLT48L0E+PEgzPgorRGVmaW5pdGlvbnNVdGlsPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RGVmaW5pdGlvbnNVdGlsPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ic2V0VXNlckRlYnVnTGV2ZWwoaW50KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VXNlckRlYnVnTGV2ZWw8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5zZXRVc2VyRGVidWdMZXZlbDwvQj4oaW50Jm5ic3A7bGV2ZWwpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbnMtbG9nZ2luZyBwYWNrYWdlIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+U2V0IHVzZXIgZGVidWcgbGV2ZWwuIFRoaXMgcHJvcGVydHkgY29udHJvbCBsZXZlbCBvZiBlcnJvcnMgb3V0cHV0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5sZXZlbDwvQ09ERT4gLSA8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXRVc2VyRGVidWdMZXZlbChqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpIj48IS0tIC0tPjwvQT48SDM+Citpbml0VXNlckRlYnVnTGV2ZWw8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5pbml0VXNlckRlYnVnTGV2ZWw8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZyZuYnNwO3NlcnZsZXRDb25maWcpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbnMtbG9nZ2luZyBwYWNrYWdlIGluc3RlYWQuPC9JPgorPFA+Cis8REQ+SW5pdCB1c2VyIGRlYnVnIGxldmVsLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0Q29uZmlnPC9DT0RFPiAtIDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXAsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4gPEI+Y3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS51dGlsLk1hcCZuYnNwO3Byb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQsIFNlcnZsZXRDb25maWcgc2VydmxldENvbmZpZyk8L0k+Cis8UD4KKzxERD5DcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5LgorIElmIGEgZmFjdG9yeSBjbGFzcyBuYW1lIGlzIHByb3ZpZGVkLCBhIGZhY3Rvcnkgb2YgdGhpcyBjbGFzcyBpcyBjcmVhdGVkLiBPdGhlcndpc2UsCisgZGVmYXVsdCBmYWN0b3J5IGlzIGNyZWF0ZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNsYXNzbmFtZTwvQ09ERT4gLSBDbGFzcyBuYW1lIG9mIHRoZSBmYWN0b3J5IHRvIGNyZWF0ZS48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuPEREPjxDT0RFPnByb3BlcnRpZXM8L0NPREU+IC0gTWFwIG9mIG5hbWUvcHJvcGVydHkgdXNlZCB0byBpbml0aWFsaXplIGZhY3RvcnkgY29uZmlndXJhdGlvbiBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPm5ld2x5IGNyZWF0ZWQgZmFjdG9yeS4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9DT0RFPiAtIElmIGFuIGVycm9yIG9jY3VyIHdoaWxlIGluaXRpYWxpemluZyBmYWN0b3J5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS51dGlsLk1hcCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiA8Qj5jcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5DcmVhdGUgZGVmYXVsdCBEZWZpbml0aW9uIGZhY3RvcnkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIFNlcnZsZXQgQ29udGV4dCBwYXNzZWQgdG8gbmV3bHkgY3JlYXRlZCBmYWN0b3J5LjxERD48Q09ERT5wcm9wZXJ0aWVzPC9DT0RFPiAtIE1hcCBvZiBuYW1lL3Byb3BlcnR5IHVzZWQgdG8gaW5pdGlhbGl6ZSBmYWN0b3J5IGNvbmZpZ3VyYXRpb24gb2JqZWN0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5uZXdseSBjcmVhdGVkIGZhY3Rvcnkgb2YgdHlwZSBDb25maWd1cmFibGVEZWZpbml0aW9uc0ZhY3RvcnkuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBJZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBpbml0aWFsaXppbmcgZmFjdG9yeTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiA8Qj5jcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcmbmJzcDtzZXJ2bGV0Q29uZmlnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNyZWF0ZSBEZWZpbml0aW9uIGZhY3RvcnkuCisgQ3JlYXRlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZyb20gc2VydmxldCB3ZWIueG1sIGZpbGUsIHRoZW4gY3JlYXRlCisgQ29uZmlndXJhYmxlRGVmaW5pdGlvbnNGYWN0b3J5IGFuZCBpbml0aWFsaXplZCBpdCB3aXRoIG9iamVjdC4KKyA8cD4KKyBDb252ZW5pZW5jZSBtZXRob2QuIENhbGxzIGNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCwgRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnIGZhY3RvcnlDb25maWcpCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIFNlcnZsZXQgQ29udGV4dCBwYXNzZWQgdG8gbmV3bHkgY3JlYXRlZCBmYWN0b3J5LjxERD48Q09ERT5zZXJ2bGV0Q29uZmlnPC9DT0RFPiAtIFNlcnZsZXQgY29uZmlnIGNvbnRhaW5pbmcgcGFyYW1ldGVycyB0byBiZSBwYXNzZWQgdG8gZmFjdG9yeSBjb25maWd1cmF0aW9uIG9iamVjdC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+bmV3bHkgY3JlYXRlZCBmYWN0b3J5IG9mIHR5cGUgQ29uZmlndXJhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gSWYgYW4gZXJyb3Igb2NjdXIgd2hpbGUgaW5pdGlhbGl6aW5nIGZhY3Rvcnk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcsIGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4gPEI+Y3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnJm5ic3A7c2VydmxldENvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7Y2hlY2tJZkV4aXN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNyZWF0ZSBEZWZpbml0aW9uIGZhY3RvcnkuCisgQ3JlYXRlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZyb20gc2VydmxldCB3ZWIueG1sIGZpbGUsIHRoZW4gY3JlYXRlCisgQ29uZmlndXJhYmxlRGVmaW5pdGlvbnNGYWN0b3J5IGFuZCBpbml0aWFsaXplZCBpdCB3aXRoIG9iamVjdC4KKyA8cD4KKyBJZiBjaGVja0lmRXhpc3QgaXMgdHJ1ZSwgc3RhcnQgYnkgY2hlY2tpbmcgaWYgZmFjdG9yeSBhbHJlYWR5IGV4aXN0LiBJZiB5ZXMsCisgcmV0dXJuIGl0LiBJZiBubywgY3JlYXRlIGEgbmV3IG9uZS4KKyA8cD4KKyBJZiBjaGVja0lmRXhpc3QgaXMgZmFsc2UsIGZhY3RvcnkgaXMgYWx3YXlzIGNyZWF0ZWQuCisgPHA+CisgQ29udmVuaWVuY2UgbWV0aG9kLiBDYWxscyBjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQsIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyBmYWN0b3J5Q29uZmlnKQorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBTZXJ2bGV0IENvbnRleHQgcGFzc2VkIHRvIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS48REQ+PENPREU+c2VydmxldENvbmZpZzwvQ09ERT4gLSBTZXJ2bGV0IGNvbmZpZyBjb250YWluaW5nIHBhcmFtZXRlcnMgdG8gYmUgcGFzc2VkIHRvIGZhY3RvcnkgY29uZmlndXJhdGlvbiBvYmplY3QuPEREPjxDT0RFPmNoZWNrSWZFeGlzdDwvQ09ERT4gLSBDaGVjayBpZiBmYWN0b3J5IGFscmVhZHkgZXhpc3QuIElmIHRydWUgYW5kIGZhY3RvcnkgZXhpc3QsIHJldHVybiBpdC4KKyBJZiB0cnVlIGFuZCBmYWN0b3J5IGRvZXNuJ3QgZXhpc3QsIGNyZWF0ZSBpdC4gSWYgZmFsc2UsIGNyZWF0ZSBpdCBpbiBhbGwgY2FzZXMuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPm5ld2x5IGNyZWF0ZWQgZmFjdG9yeSBvZiB0eXBlIENvbmZpZ3VyYWJsZURlZmluaXRpb25zRmFjdG9yeS4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9DT0RFPiAtIElmIGFuIGVycm9yIG9jY3VyIHdoaWxlIGluaXRpYWxpemluZyBmYWN0b3J5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjcmVhdGVEZWZpbml0aW9uRmFjdG9yeUluc3RhbmNlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVEZWZpbml0aW9uRmFjdG9yeUluc3RhbmNlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmNyZWF0ZURlZmluaXRpb25GYWN0b3J5SW5zdGFuY2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+Tm8gZGlyZWN0IHJlcGxhY2VtZW50LiBVc2UgY3JlYXRlRGVmaW5pdGlvbkZhY3RvcnkKKyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKSI+PENPREU+VGlsZXNVdGlsLmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCwgRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKTwvQ09ERT48L0E+LjwvST4KKzxQPgorPEREPkNyZWF0ZSBEZWZpbml0aW9uIGZhY3RvcnkgZnJvbSBwcm92aWRlZCBjbGFzc25hbWUuCisgRmFjdG9yeSBjbGFzcyBtdXN0IGV4dGVuZHMgVGlsZXNEZWZpbml0aW9uc0ZhY3RvcnkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNsYXNzbmFtZTwvQ09ERT4gLSBDbGFzcyBuYW1lIG9mIHRoZSBmYWN0b3J5IHRvIGNyZWF0ZS4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+bmV3bHkgY3JlYXRlZCBmYWN0b3J5LgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gSWYgYW4gZXJyb3Igb2NjdXIgd2hpbGUgaW5pdGlhbGl6aW5nIGZhY3Rvcnk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldERlZmluaXRpb25zRmFjdG9yeShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnksIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitzZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgdm9pZCA8Qj5zZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Jm5ic3A7ZmFjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnNpbmNlIDIwMDIwNzA4LiBSZXBsYWNlZCBieSBtYWtlRmFjdG9yeUFjY2Vzc2libGUoKTwvST4KKzxQPgorPEREPlNldCBkZWZpbml0aW9uIGZhY3RvcnkgaW4gYXBwcm9wcmlhdGUgc2VydmxldCBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mYWN0b3J5PC9DT0RFPiAtIEZhY3RvcnkgdG8gc3RvcmUuPEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIFNlcnZsZXQgY29udGV4dCB0aGF0IHdpbGwgaG9sZCBmYWN0b3J5LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERlZmluaXRpb248L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiA8Qj5nZXREZWZpbml0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZGVmaW5pdGlvbk5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiPkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjwvQT4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Q09ERT5UaWxlc1V0aWwuZ2V0RGVmaW5pdGlvbihTdHJpbmcsIFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPkdldCBhIGNvbXBvbmVudCAvIHRlbXBsYXRlIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuCisgRmlyc3QsIHJldHJpZXZlIGluc3RhbmNlIGZhY3RvcnksIGFuZCB0aGVuIGdldCByZXF1ZXN0ZWQgaW5zdGFuY2UuCisgVGhyb3cgYXBwcm9wcmlhdGUgZXhjZXB0aW9uIGlmIGRlZmluaXRpb24gaXMgbm90IGZvdW5kLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kZWZpbml0aW9uTmFtZTwvQ09ERT4gLSBOYW1lIG9mIHJlcXVlc3RlZCBkZWZpbml0aW9uLjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBDdXJyZW50IHBhZ2VDb250ZXh0Cis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCI+RmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBDYW4ndCBmaW5kIGRlZmluaXRpb24gZmFjdG9yeS4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBHZW5lcmFsIGVycm9yIGluIGZhY3Rvcnkgd2hpbGUgZ2V0dGluZyBkZWZpbml0aW9uLgorPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT48L0NPREU+IC0gTm8gZGVmaW5pdGlvbiBmb3VuZCBmb3Igc3BlY2lmaWVkIG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldERlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RGVmaW5pdGlvbnNGYWN0b3J5PC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmdldERlZmluaXRpb25zRmFjdG9yeTwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNnZXREZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxDT0RFPlRpbGVzVXRpbC5nZXREZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQ09ERT48L0E+PC9JPgorPFA+Cis8REQ+R2V0IGRlZmluaXRpb24gZmFjdG9yeSBmcm9tIGFwcHJvcHJpYXRlIHNlcnZsZXQgY29udGV4dC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5EZWZpbml0aW9ucyBmYWN0b3J5IG9yIG51bGwgaWYgbm90IGZvdW5kLjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPjIwMDIwNzA4PC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWFrZURlZmluaXRpb25zRmFjdG9yeUFjY2Vzc2libGUob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorbWFrZURlZmluaXRpb25zRmFjdG9yeUFjY2Vzc2libGU8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5tYWtlRGVmaW5pdGlvbnNGYWN0b3J5QWNjZXNzaWJsZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4mbmJzcDtmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZykiPjxDT0RFPlRpbGVzVXRpbC5jcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldENvbnRleHQsIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPk1ha2UgZGVmaW5pdGlvbiBmYWN0b3J5IGFjY2Vzc2libGUgdG8gVGFncy4KKyBGYWN0b3J5IGlzIHN0b3JlZCBpbiBzZXJ2bGV0IGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZhY3Rvcnk8L0NPREU+IC0gRmFjdG9yeSB0byBtYWtlIGFjY2Vzc2libGU8REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQ8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD4yMDAyMDcwODwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbkRlZmluaXRpb24oamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFjdGlvbkRlZmluaXRpb248L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiA8Qj5nZXRBY3Rpb25EZWZpbml0aW9uPC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+R2V0IERlZmluaXRpb24gc3RvcmVkIGluIGpzcCBjb250ZXh0IGJ5IGFuIGFjdGlvbi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5Db21wb25lbnREZWZpbml0aW9uIG9yIG51bGwgaWYgbm90IGZvdW5kLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QWN0aW9uRGVmaW5pdGlvbihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QWN0aW9uRGVmaW5pdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyB2b2lkIDxCPnNldEFjdGlvbkRlZmluaXRpb248L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiZuYnNwO2RlZmluaXRpb24pPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlN0b3JlIGRlZmluaXRpb24gaW4ganNwIGNvbnRleHQuCisgTWFpbmx5IHVzZWQgYnkgU3RydXRzIHRvIHBhc3MgYSBkZWZpbml0aW9uIGRlZmluZWQgaW4gYW4gQWN0aW9uIHRvIHRoZSBmb3J3YXJkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW1vdmVBY3Rpb25EZWZpbml0aW9uKGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb24pIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmVBY3Rpb25EZWZpbml0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+cmVtb3ZlQWN0aW9uRGVmaW5pdGlvbjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Jm5ic3A7ZGVmaW5pdGlvbik8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmVtb3ZlIERlZmluaXRpb24gc3RvcmVkIGluIGpzcCBjb250ZXh0LgorIE1haW5seSB1c2VkIGJ5IFN0cnV0cyB0byBwYXNzIGEgZGVmaW5pdGlvbiBkZWZpbmVkIGluIGFuIEFjdGlvbiB0byB0aGUgZm9yd2FyZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icG9wdWxhdGVEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpIj48IS0tIC0tPjwvQT48SDM+Citwb3B1bGF0ZURlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyB2b2lkIDxCPnBvcHVsYXRlRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2ZhY3RvcnlDb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnJm5ic3A7c2VydmxldENvbmZpZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlBvcHVsYXRlIERlZmluaXRpb24gRmFjdG9yeSBDb25maWcgZnJvbSB3ZWIueG1sIHByb3BlcnRpZXMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZhY3RvcnlDb25maWc8L0NPREU+IC0gRGVmaW5pdGlvbiBGYWN0b3J5IENvbmZpZyB0byBwb3B1bGF0ZS48REQ+PENPREU+c2VydmxldENvbmZpZzwvQ09ERT4gLSBDdXJyZW50IHNlcnZsZXQgY29uZmlnIGNvbnRhaW5pbmcgd2ViLnhtbCBwcm9wZXJ0aWVzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlCisgIGFjY2VzcyB0byB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kCis8REQ+PENPREU+amF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kCisgIHRocm93cyBhbiBleGNlcHRpb248RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD50aWxlcyAyMDAyMDcwODwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48Q09ERT5CZWFuVXRpbHM8L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWFkRmFjdG9yeUNvbmZpZyhqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CityZWFkRmFjdG9yeUNvbmZpZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiA8Qj5yZWFkRmFjdG9yeUNvbmZpZzwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnJm5ic3A7c2VydmxldENvbmZpZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNyZWF0ZSBGYWN0b3J5Q29uZmlnIGFuZCBpbml0aWFsaXplIGl0IGZyb20gd2ViLnhtbC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldENvbmZpZzwvQ09ERT4gLSBTZXJ2bGV0Q29uZmlnIGZvciB0aGUgbW9kdWxlIHdpdGggd2hpY2gKKyAgdGhpcyBwbHVnIGluIGlzIGFzc29jaWF0ZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9DT0RFPiAtIGlmIHRoaXMgPGNvZGU+UGx1Z0luPC9jb2RlPiBjYW5ub3QKKyAgYmUgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uc1V0aWwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uc1V0aWwuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwOzxBIEhSRUY9IiNuZXN0ZWRfY2xhc3Nfc3VtbWFyeSI+TkVTVEVEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGlyZWN0U3RyaW5nQXR0cmlidXRlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGlyZWN0U3RyaW5nQXR0cmlidXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg3NWEyMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDI0NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0RpcmVjdFN0cmluZ0F0dHJpYnV0ZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGlyZWN0U3RyaW5nQXR0cmlidXRlLERpcmVjdFN0cmluZ0F0dHJpYnV0ZSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRGlyZWN0U3RyaW5nQXR0cmlidXRlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0RpcmVjdFN0cmluZ0F0dHJpYnV0ZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9FbXB0eUl0ZXJhdG9yLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEaXJlY3RTdHJpbmdBdHRyaWJ1dGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlVudHlwcGVkQXR0cmlidXRlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVW50eXBwZWRBdHRyaWJ1dGUiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIERpcmVjdFN0cmluZ0F0dHJpYnV0ZTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlVudHlwcGVkQXR0cmlidXRlPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRpcmVjdFN0cmluZ0F0dHJpYnV0ZTwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCI+QXR0cmlidXRlRGVmaW5pdGlvbjwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkRpcmVjdFN0cmluZ0F0dHJpYnV0ZTwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj5VbnR5cHBlZEF0dHJpYnV0ZTwvQT48L0RMPgorCis8UD4KK0NvbXBvbmVudCBhdHRyaWJ1dGUuCisgU3VjaCBhdHRyaWJ1dGUgdmFsdWUgcmVwcmVzZW50IGEgcGF0aCB1c2VkIHRvIGluY2x1ZGUgYSBKU1AuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EaXJlY3RTdHJpbmdBdHRyaWJ1dGUiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj5VbnR5cHBlZEF0dHJpYnV0ZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI3JvbGUiPnJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuaHRtbCNEaXJlY3RTdHJpbmdBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPkRpcmVjdFN0cmluZ0F0dHJpYnV0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlVudHlwcGVkQXR0cmlidXRlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj5VbnR5cHBlZEF0dHJpYnV0ZTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI3NldFZhbHVlKGphdmEubGFuZy5PYmplY3QpIj5zZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRGlyZWN0U3RyaW5nQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitEaXJlY3RTdHJpbmdBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5EaXJlY3RTdHJpbmdBdHRyaWJ1dGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRW1wdHlJdGVyYXRvci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGlyZWN0U3RyaW5nQXR0cmlidXRlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlVudHlwcGVkQXR0cmlidXRlIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9FbXB0eUl0ZXJhdG9yLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRW1wdHlJdGVyYXRvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlNmU3OTUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRW1wdHlJdGVyYXRvci5odG1sCkBAIC0wLDAgKzEsMjk0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorRW1wdHlJdGVyYXRvciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRW1wdHlJdGVyYXRvcixFbXB0eUl0ZXJhdG9yIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJFbXB0eUl0ZXJhdG9yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0VtcHR5SXRlcmF0b3IuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGlyZWN0U3RyaW5nQXR0cmlidXRlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvUGF0aEF0dHJpYnV0ZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRW1wdHlJdGVyYXRvci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBFbXB0eUl0ZXJhdG9yPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRW1wdHlJdGVyYXRvcjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEudXRpbC5JdGVyYXRvcjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPiBjbGFzcyA8Qj5FbXB0eUl0ZXJhdG9yPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLnV0aWwuSXRlcmF0b3I8L0RMPgorCis8UD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPihwYWNrYWdlIHByaXZhdGUpPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0VtcHR5SXRlcmF0b3IuaHRtbCNFbXB0eUl0ZXJhdG9yKCkiPkVtcHR5SXRlcmF0b3I8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0VtcHR5SXRlcmF0b3IuaHRtbCNoYXNOZXh0KCkiPmhhc05leHQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9FbXB0eUl0ZXJhdG9yLmh0bWwjbmV4dCgpIj5uZXh0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRW1wdHlJdGVyYXRvci5odG1sI3JlbW92ZSgpIj5yZW1vdmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJFbXB0eUl0ZXJhdG9yKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0VtcHR5SXRlcmF0b3I8L0gzPgorPFBSRT4KKzxCPkVtcHR5SXRlcmF0b3I8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Imhhc05leHQoKSI+PCEtLSAtLT48L0E+PEgzPgoraGFzTmV4dDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+aGFzTmV4dDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5oYXNOZXh0PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YS51dGlsLkl0ZXJhdG9yPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmV4dCgpIj48IS0tIC0tPjwvQT48SDM+CituZXh0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5uZXh0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPm5leHQ8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZhLnV0aWwuSXRlcmF0b3I8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZW1vdmUoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVtb3ZlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZW1vdmU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVtb3ZlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YS51dGlsLkl0ZXJhdG9yPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRW1wdHlJdGVyYXRvci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9QYXRoQXR0cmlidXRlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJFbXB0eUl0ZXJhdG9yLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmZDAxNzUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwKQEAgLTAsMCArMSwyOTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDAgRURUIDIwMDMgLS0+Cis8VElUTEU+CitGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbixGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24iPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIEZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmEubGFuZy5UaHJvd2FibGUKKyAgICAgICAgfAorICAgICAgICArLS1qYXZhLmxhbmcuRXhjZXB0aW9uCisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNFeGNlcHRpb24uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNFeGNlcHRpb248L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb248L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb248L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0RMPgorCis8UD4KK0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBkZWZpbml0aW9ucyBmYWN0b3J5IGlzIG5vdCBmb3VuZC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbiI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLkV4Y2VwdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuVGhyb3dhYmxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5UaHJvd2FibGU8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCNGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24oKSI+RmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCNGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZykiPkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttc2cpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwjZ2V0RXhjZXB0aW9uKCkiPmdldEV4Y2VwdGlvbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sI2dldE1lc3NhZ2UoKSI+Z2V0TWVzc2FnZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuVGhyb3dhYmxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuVGhyb3dhYmxlPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmlsbEluU3RhY2tUcmFjZSwgZ2V0Q2F1c2UsIGdldExvY2FsaXplZE1lc3NhZ2UsIGdldFN0YWNrVHJhY2UsIGluaXRDYXVzZSwgcHJpbnRTdGFja1RyYWNlLCBwcmludFN0YWNrVHJhY2UsIHByaW50U3RhY2tUcmFjZSwgc2V0U3RhY2tUcmFjZSwgdG9TdHJpbmc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bXNnKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdG9yLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1zZzwvQ09ERT4gLSBNZXNzYWdlLjwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24iPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFkNThlZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwKQEAgLTAsMCArMSwyOTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDAgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLE5vU3VjaERlZmluaXRpb25FeGNlcHRpb24gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik5vU3VjaERlZmluaXRpb25FeGNlcHRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc0V4Y2VwdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YS5sYW5nLlRocm93YWJsZQorICAgICAgICB8CisgICAgICAgICstLWphdmEubGFuZy5FeGNlcHRpb24KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc0V4Y2VwdGlvbi5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc0V4Y2VwdGlvbjwvQT4KKyAgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPgorICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9ETD4KKworPFA+CitFeGNlcHRpb24gdGhyb3duIHdoZW4gYSBkZWZpbml0aW9uIGlzIG5vdCBmb3VuZC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLk5vU3VjaERlZmluaXRpb25FeGNlcHRpb24iPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5FeGNlcHRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLkV4Y2VwdGlvbjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLlRocm93YWJsZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuVGhyb3dhYmxlPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sI05vU3VjaERlZmluaXRpb25FeGNlcHRpb24oKSI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sI05vU3VjaERlZmluaXRpb25FeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZykiPk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bXNnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sI2dldEV4Y2VwdGlvbigpIj5nZXRFeGNlcHRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCNnZXRNZXNzYWdlKCkiPmdldE1lc3NhZ2U8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLlRocm93YWJsZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLlRocm93YWJsZTwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbGxJblN0YWNrVHJhY2UsIGdldENhdXNlLCBnZXRMb2NhbGl6ZWRNZXNzYWdlLCBnZXRTdGFja1RyYWNlLCBpbml0Q2F1c2UsIHByaW50U3RhY2tUcmFjZSwgcHJpbnRTdGFja1RyYWNlLCBwcmludFN0YWNrVHJhY2UsIHNldFN0YWNrVHJhY2UsIHRvU3RyaW5nPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdG9yLgorPFA+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21zZyk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3Rvci4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tc2c8L0NPREU+IC0gTWVzc2FnZS48L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc0V4Y2VwdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9QYXRoQXR0cmlidXRlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvUGF0aEF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliOGEwNWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvUGF0aEF0dHJpYnV0ZS5odG1sCkBAIC0wLDAgKzEsMjQ3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorUGF0aEF0dHJpYnV0ZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuUGF0aEF0dHJpYnV0ZSxQYXRoQXR0cmlidXRlIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJQYXRoQXR0cmlidXRlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1BhdGhBdHRyaWJ1dGUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRW1wdHlJdGVyYXRvci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQYXRoQXR0cmlidXRlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlVudHlwcGVkQXR0cmlidXRlIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7TUVUSE9EPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBQYXRoQXR0cmlidXRlPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVW50eXBwZWRBdHRyaWJ1dGU8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuUGF0aEF0dHJpYnV0ZTwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCI+QXR0cmlidXRlRGVmaW5pdGlvbjwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlBhdGhBdHRyaWJ1dGU8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+PC9ETD4KKworPFA+CitDb21wb25lbnQgYXR0cmlidXRlLgorIEF0dHJpYnV0ZSB2YWx1ZSByZXByZXNlbnRzIGEgcGF0aCB1c2VkIHRvIGluY2x1ZGUgYSBKU1AuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5QYXRoQXR0cmlidXRlIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVW50eXBwZWRBdHRyaWJ1dGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNyb2xlIj5yb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvUGF0aEF0dHJpYnV0ZS5odG1sI1BhdGhBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPlBhdGhBdHRyaWJ1dGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNnZXRSb2xlKCkiPmdldFJvbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuT2JqZWN0KSI+c2V0VmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlBhdGhBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK1BhdGhBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5QYXRoQXR0cmlidXRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUGF0aEF0dHJpYnV0ZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9FbXB0eUl0ZXJhdG9yLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlBhdGhBdHRyaWJ1dGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlVudHlwcGVkQXR0cmlidXRlIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVW50eXBwZWRBdHRyaWJ1dGUiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNFeGNlcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWM5YWM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwKQEAgLTAsMCArMSw0MTEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDAgRURUIDIwMDMgLS0+Cis8VElUTEU+CitUaWxlc0V4Y2VwdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNFeGNlcHRpb24sVGlsZXNFeGNlcHRpb24gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlRpbGVzRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1RpbGVzRXhjZXB0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRpbGVzRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIFRpbGVzRXhjZXB0aW9uPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YS5sYW5nLlRocm93YWJsZQorICAgICAgICB8CisgICAgICAgICstLWphdmEubGFuZy5FeGNlcHRpb24KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc0V4Y2VwdGlvbjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+VGlsZXNFeGNlcHRpb248L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLkV4Y2VwdGlvbjwvREw+CisKKzxQPgorUm9vdCBjbGFzcyBmb3IgYWxsIFRpbGVzLWV4Y2VwdGlvbnMuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q2VkcmljIER1bW91bGluPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzRXhjZXB0aW9uIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuRXhjZXB0aW9uPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwjZXhjZXB0aW9uIj5leGNlcHRpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QW55ICJ3cmFwcGVkIiBleGNlcHRpb24gd2lsbCBiZSBleHBvc2VkIHdoZW4gdGhpcyBpcyBzZXJpYWxpemVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuRXhjZXB0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5FeGNlcHRpb248L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5UaHJvd2FibGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLlRocm93YWJsZTwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwjVGlsZXNFeGNlcHRpb24oKSI+VGlsZXNFeGNlcHRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwjVGlsZXNFeGNlcHRpb24oamF2YS5sYW5nLkV4Y2VwdGlvbikiPlRpbGVzRXhjZXB0aW9uPC9BPjwvQj4oamF2YS5sYW5nLkV4Y2VwdGlvbiZuYnNwO2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYSBuZXcgPGNvZGU+VGlsZXNFeGNlcHRpb248L2NvZGU+IHdyYXBwaW5nIGFuIGV4aXN0aW5nIGV4Y2VwdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwjVGlsZXNFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZykiPlRpbGVzRXhjZXB0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwjVGlsZXNFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLkV4Y2VwdGlvbikiPlRpbGVzRXhjZXB0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UsCisgICAgICAgICAgICAgICBqYXZhLmxhbmcuRXhjZXB0aW9uJm5ic3A7ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhIG5ldyA8Y29kZT5UaWxlc0V4Y2VwdGlvbjwvY29kZT4gZnJvbSBhbiBleGlzdGluZyBleGNlcHRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc0V4Y2VwdGlvbi5odG1sI2dldEV4Y2VwdGlvbigpIj5nZXRFeGNlcHRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGVtYmVkZGVkIGV4Y2VwdGlvbiwgaWYgYW55LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwjZ2V0TWVzc2FnZSgpIj5nZXRNZXNzYWdlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIGEgZGV0YWlsIG1lc3NhZ2UgZm9yIHRoaXMgZXhjZXB0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLlRocm93YWJsZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLlRocm93YWJsZTwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmZpbGxJblN0YWNrVHJhY2UsIGdldENhdXNlLCBnZXRMb2NhbGl6ZWRNZXNzYWdlLCBnZXRTdGFja1RyYWNlLCBpbml0Q2F1c2UsIHByaW50U3RhY2tUcmFjZSwgcHJpbnRTdGFja1RyYWNlLCBwcmludFN0YWNrVHJhY2UsIHNldFN0YWNrVHJhY2UsIHRvU3RyaW5nPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJleGNlcHRpb24iPjwhLS0gLS0+PC9BPjxIMz4KK2V4Y2VwdGlvbjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuRXhjZXB0aW9uIDxCPmV4Y2VwdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5BbnkgIndyYXBwZWQiIGV4Y2VwdGlvbiB3aWxsIGJlIGV4cG9zZWQgd2hlbiB0aGlzIGlzIHNlcmlhbGl6ZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iVGlsZXNFeGNlcHRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorVGlsZXNFeGNlcHRpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5UaWxlc0V4Y2VwdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdG9yLgorPFA+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJUaWxlc0V4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorVGlsZXNFeGNlcHRpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5UaWxlc0V4Y2VwdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWVzc2FnZTwvQ09ERT4gLSBUaGUgZXJyb3Igb3Igd2FybmluZyBtZXNzYWdlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlRpbGVzRXhjZXB0aW9uKGphdmEubGFuZy5FeGNlcHRpb24pIj48IS0tIC0tPjwvQT48SDM+CitUaWxlc0V4Y2VwdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPlRpbGVzRXhjZXB0aW9uPC9CPihqYXZhLmxhbmcuRXhjZXB0aW9uJm5ic3A7ZSk8L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgYSBuZXcgPGNvZGU+VGlsZXNFeGNlcHRpb248L2NvZGU+IHdyYXBwaW5nIGFuIGV4aXN0aW5nIGV4Y2VwdGlvbi4KKworIDxwPlRoZSBleGlzdGluZyBleGNlcHRpb24gd2lsbCBiZSBlbWJlZGRlZCBpbiB0aGUgbmV3Cisgb25lLCBhbmQgaXRzIG1lc3NhZ2Ugd2lsbCBiZWNvbWUgdGhlIGRlZmF1bHQgbWVzc2FnZSBmb3IKKyB0aGUgVGlsZXNFeGNlcHRpb24uPC9wPgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmU8L0NPREU+IC0gVGhlIGV4Y2VwdGlvbiB0byBiZSB3cmFwcGVkLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlRpbGVzRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5FeGNlcHRpb24pIj48IS0tIC0tPjwvQT48SDM+CitUaWxlc0V4Y2VwdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPlRpbGVzRXhjZXB0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuRXhjZXB0aW9uJm5ic3A7ZSk8L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgYSBuZXcgPGNvZGU+VGlsZXNFeGNlcHRpb248L2NvZGU+IGZyb20gYW4gZXhpc3RpbmcgZXhjZXB0aW9uLgorCisgPHA+VGhlIGV4aXN0aW5nIGV4Y2VwdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGluIHRoZSBuZXcKKyBvbmUsIGJ1dCB0aGUgbmV3IGV4Y2VwdGlvbiB3aWxsIGhhdmUgaXRzIG93biBtZXNzYWdlLjwvcD4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tZXNzYWdlPC9DT0RFPiAtIFRoZSBkZXRhaWwgbWVzc2FnZS48REQ+PENPREU+ZTwvQ09ERT4gLSBUaGUgZXhjZXB0aW9uIHRvIGJlIHdyYXBwZWQuPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGEgZGV0YWlsIG1lc3NhZ2UgZm9yIHRoaXMgZXhjZXB0aW9uLgorCisgPHA+SWYgdGhlcmUgaXMgYSBlbWJlZGRlZCBleGNlcHRpb24sIGFuZCBpZiB0aGUgVGlsZXNFeGNlcHRpb24KKyBoYXMgbm8gZGV0YWlsIG1lc3NhZ2Ugb2YgaXRzIG93biwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4KKyB0aGUgZGV0YWlsIG1lc3NhZ2UgZnJvbSB0aGUgZW1iZWRkZWQgZXhjZXB0aW9uLjwvcD4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5nZXRNZXNzYWdlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmxhbmcuVGhyb3dhYmxlPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgZXJyb3Igb3Igd2FybmluZyBtZXNzYWdlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RXhjZXB0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEV4Y2VwdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5FeGNlcHRpb24gPEI+Z2V0RXhjZXB0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBlbWJlZGRlZCBleGNlcHRpb24sIGlmIGFueS4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgZW1iZWRkZWQgZXhjZXB0aW9uLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGVyZSBpcyBub25lLjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVGlsZXNFeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGlsZXNFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlM2U1NzUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbApAQCAtMCwwICsxLDY1NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1RpbGVzUGx1Z2luIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1BsdWdpbixUaWxlc1BsdWdpbiBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVGlsZXNQbHVnaW4gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVGlsZXNQbHVnaW4uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvUGF0aEF0dHJpYnV0ZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGlsZXNQbHVnaW4uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9GT05UPgorPEJSPgorQ2xhc3MgVGlsZXNQbHVnaW48L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1BsdWdpbjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCI+UGx1Z0luPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5UaWxlc1BsdWdpbjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj5QbHVnSW48L0E+PC9ETD4KKworPFA+CitUaWxlcyBQbHVnaW4gdXNlZCB0byBpbml0aWFsaXplIFRpbGVzLgorIFRoaXMgcGx1Z2luIGlzIHRvIGJlIHVzZWQgd2l0aCBTdHJ1dHMgMS4xIGluIGFzc29jaWF0aW9uIHdpdGgKKyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+PENPREU+VGlsZXNSZXF1ZXN0UHJvY2Vzc29yPC9DT0RFPjwvQT4uCisgPGJyPgorIFRoaXMgcGx1Z2luIGNyZWF0ZXMgb25lIGRlZmluaXRpb24gZmFjdG9yeSBmb3IgZWFjaCBTdHJ1dHMtbW9kdWxlLiBUaGUgZGVmaW5pdGlvbiBmYWN0b3J5CisgY29uZmlndXJhdGlvbiBpcyByZWFkIGZpcnN0IGZyb20gJ3dlYi54bWwnIChiYWNrd2FyZCBjb21wYXRpYmlsaXR5KSwgdGhlbiBpdCBpcworIG92ZXJsb2FkZWQgd2l0aCB2YWx1ZXMgZm91bmQgaW4gdGhlIHBsdWdpbiBwcm9wZXJ0eSB2YWx1ZXMuCisgPGJyPgorIFRoZSBwbHVnaW4gY2hhbmdlcyB0aGUgU3RydXRzIGNvbmZpZ3VyYXRpb24gYnkgc3BlY2lmeWluZyBhIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj48Q09ERT5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0NPREU+PC9BPiBhcworIHJlcXVlc3QgcHJvY2Vzc29yLiBJZiB5b3Ugd2FudCB0byB1c2UgeW91ciBvd24gUmVxdWVzdFByb2Nlc3NvciwKKyBpdCBzaG91bGQgc3ViY2xhc3MgVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLgorIDxicj4KKyBUaGlzIHBsdWdpbiBjYW4gYWxzbyBiZSB1c2VkIHRvIGNyZWF0ZSBvbmUgc2luZ2xlIGZhY3RvcnkgZm9yIGFsbCBtb2R1bGVzLgorIFRoaXMgYmVoYXZpb3IgaXMgZW5hYmxlZCBieSBzcGVjaWZ5aW5nIDxjb2RlPm1vZHVsZUF3YXJlPWZhbHNlPC9jb2RlPiBpbiBlYWNoCisgcGx1Z2luIHByb3BlcnRpZXMuIEluIHRoaXMgY2FzZSwgdGhlIGRlZmluaXRpb24gZmFjdG9yeQorIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyByZWFkIGJ5IHRoZSBmaXJzdCBUaWxlcyBwbHVnaW4gdG8gYmUgaW5pdGlhbGl6ZWQuIFRoZSBvcmRlciBpcworIGRldGVybWluZWQgYnkgdGhlIG9yZGVyIG9mIG1vZHVsZXMgZGVjbGFyYXRpb24gaW4gd2ViLnhtbC4gVGhlIGZpcnN0IG1vZHVsZQorIGlzIGFsd2F5cyB0aGUgZGVmYXVsdCBvbmUgaWYgaXQgZXhpc3RzLgorIFRoZSBwbHVnaW4gc2hvdWxkIGJlIGRlY2xhcmVkIGluIGVhY2ggc3RydXRzLWNvbmZpZy54bWwgZmlsZSBpbiBvcmRlciB0bworIHByb3Blcmx5IGluaXRpYWxpemUgdGhlIHJlcXVlc3QgcHJvY2Vzc29yLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+MS4xPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DZWRyaWMgRHVtb3VsaW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9QbHVnSW5Db25maWcuaHRtbCI+UGx1Z0luQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sI2N1cnJlbnRQbHVnSW5Db25maWdPYmplY3QiPmN1cnJlbnRQbHVnSW5Db25maWdPYmplY3Q8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHBsdWdpbiBjb25maWcgb2JqZWN0IHByb3ZpZGVkIGJ5IHRoZSBBY3Rpb25TZXJ2bGV0IGluaXRpYWxpemluZworICB0aGlzIHBsdWdpbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjZGVmaW5pdGlvbkZhY3RvcnkiPmRlZmluaXRpb25GYWN0b3J5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Fzc29jaWF0ZWQgZGVmaW5pdGlvbiBmYWN0b3J5PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCNsb2ciPmxvZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjbW9kdWxlQXdhcmUiPm1vZHVsZUF3YXJlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0lzIHRoZSBmYWN0b3J5IG1vZHVsZSBhd2FyZSA/PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjdGlsZXNVdGlsSW1wbENsYXNzbmFtZSI+dGlsZXNVdGlsSW1wbENsYXNzbmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaWxlcyB1dGlsIGltcGxlbWVudGF0aW9uIGNsYXNzbmFtZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjVGlsZXNQbHVnaW4oKSI+VGlsZXNQbHVnaW48L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjZGVzdHJveSgpIj5kZXN0cm95PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RW5kIHBsdWdpbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5NYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCNmaW5kU3RydXRzUGx1Z0luQ29uZmlnUHJvcGVydGllcyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmZpbmRTdHJ1dHNQbHVnSW5Db25maWdQcm9wZXJ0aWVzPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RmluZCBvcmlnaW5hbCBwcm9wZXJ0aWVzIHNldCBpbiB0aGUgU3RydXRzIFBsdWdJbkNvbmZpZyBvYmplY3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCNnZXRUaWxlc1V0aWxJbXBsQ2xhc3NuYW1lKCkiPmdldFRpbGVzVXRpbEltcGxDbGFzc25hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgVGlsZXMgdXRpbCBpbXBsZW1lbnRpb24gY2xhc3NuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQsCisgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO21vZHVsZUNvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlY2VpdmUgbm90aWZpY2F0aW9uIHRoYXQgdGhlIHNwZWNpZmllZCBtb2R1bGUgaXMgYmVpbmcKKyBzdGFydGVkIHVwLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sI2luaXRSZXF1ZXN0UHJvY2Vzc29yQ2xhc3Mob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXRSZXF1ZXN0UHJvY2Vzc29yQ2xhc3M8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgUmVxdWVzdFByb2Nlc3NvciB0byBhcHByb3ByaWF0ZSBUaWxlcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj48Q09ERT5SZXF1ZXN0UHJvY2Vzc29yPC9DT0RFPjwvQT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCNpc01vZHVsZUF3YXJlKCkiPmlzTW9kdWxlQXdhcmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIG1vZHVsZSBhd2FyZSBmbGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCNyZWFkRmFjdG9yeUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPnJlYWRGYWN0b3J5Q29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0LAorICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIEZhY3RvcnlDb25maWcgYW5kIGluaXRpYWxpemUgaXQgZnJvbSB3ZWIueG1sIGFuZCBzdHJ1dHMtY29uZmlnLnhtbC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sI3NldEN1cnJlbnRQbHVnSW5Db25maWdPYmplY3Qob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLlBsdWdJbkNvbmZpZykiPnNldEN1cnJlbnRQbHVnSW5Db25maWdPYmplY3Q8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT4mbmJzcDtwbHVnSW5Db25maWdPYmplY3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNZXRob2QgdXNlZCBieSB0aGUgQWN0aW9uU2VydmxldCBpbml0aWFsaXppbmcgdGhpcyBwbHVnaW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCNzZXRNb2R1bGVBd2FyZShib29sZWFuKSI+c2V0TW9kdWxlQXdhcmU8L0E+PC9CPihib29sZWFuJm5ic3A7bW9kdWxlQXdhcmUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIG1vZHVsZSBhd2FyZSBmbGFnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjc2V0VGlsZXNVdGlsSW1wbENsYXNzbmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGlsZXNVdGlsSW1wbENsYXNzbmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0aWxlc1V0aWxJbXBsQ2xhc3NuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IFRpbGVzIHV0aWwgaW1wbGVtZW50aW9uIGNsYXNzbmFtZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImxvZyI+PCEtLSAtLT48L0E+PEgzPgorbG9nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZyA8Qj5sb2c8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibW9kdWxlQXdhcmUiPjwhLS0gLS0+PC9BPjxIMz4KK21vZHVsZUF3YXJlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5tb2R1bGVBd2FyZTwvQj48L1BSRT4KKzxETD4KKzxERD5JcyB0aGUgZmFjdG9yeSBtb2R1bGUgYXdhcmUgPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGlsZXNVdGlsSW1wbENsYXNzbmFtZSI+PCEtLSAtLT48L0E+PEgzPgordGlsZXNVdGlsSW1wbENsYXNzbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+dGlsZXNVdGlsSW1wbENsYXNzbmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaWxlcyB1dGlsIGltcGxlbWVudGF0aW9uIGNsYXNzbmFtZS4gVGhpcyBwcm9wZXJ0eSBjYW4gYmUgc2V0CisgIGJ5IHVzZXIgaW4gdGhlIHBsdWdpbiBkZWNsYXJhdGlvbgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmaW5pdGlvbkZhY3RvcnkiPjwhLS0gLS0+PC9BPjxIMz4KK2RlZmluaXRpb25GYWN0b3J5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4gPEI+ZGVmaW5pdGlvbkZhY3Rvcnk8L0I+PC9QUkU+Cis8REw+Cis8REQ+QXNzb2NpYXRlZCBkZWZpbml0aW9uIGZhY3RvcnkKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImN1cnJlbnRQbHVnSW5Db25maWdPYmplY3QiPjwhLS0gLS0+PC9BPjxIMz4KK2N1cnJlbnRQbHVnSW5Db25maWdPYmplY3Q8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT4gPEI+Y3VycmVudFBsdWdJbkNvbmZpZ09iamVjdDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcGx1Z2luIGNvbmZpZyBvYmplY3QgcHJvdmlkZWQgYnkgdGhlIEFjdGlvblNlcnZsZXQgaW5pdGlhbGl6aW5nCisgIHRoaXMgcGx1Z2luLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlRpbGVzUGx1Z2luKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1RpbGVzUGx1Z2luPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+VGlsZXNQbHVnaW48L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImlzTW9kdWxlQXdhcmUoKSI+PCEtLSAtLT48L0E+PEgzPgoraXNNb2R1bGVBd2FyZTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+aXNNb2R1bGVBd2FyZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgbW9kdWxlIGF3YXJlIGZsYWcuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+PGNvZGU+dHJ1ZTwvY29kZT46IHVzZXIgd2FudHMgYSBzaW5nbGUgZmFjdG9yeSBpbnN0YW5jZSwKKyA8Y29kZT5mYWxzZTo8L2NvZGU+IHVzZXIgd2FudHMgbXVsdGlwbGUgZmFjdG9yeSBpbnN0YW5jZXMgKG9uZSBwZXIgbW9kdWxlIHdpdGggU3RydXRzKTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TW9kdWxlQXdhcmUoYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE1vZHVsZUF3YXJlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRNb2R1bGVBd2FyZTwvQj4oYm9vbGVhbiZuYnNwO21vZHVsZUF3YXJlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgbW9kdWxlIGF3YXJlIGZsYWcuCisgVGhpcyBmbGFnIGlzIG9ubHkgbWVhbmluZ2Z1bCBpZiB0aGUgcHJvcGVydHkgPGNvZGU+dGlsZXNVdGlsSW1wbENsYXNzbmFtZTwvY29kZT4gaXMgbm90Cisgc2V0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tb2R1bGVBd2FyZTwvQ09ERT4gLSA8Y29kZT50cnVlPC9jb2RlPjogdXNlciB3YW50cyBhIHNpbmdsZSBmYWN0b3J5IGluc3RhbmNlLAorIDxjb2RlPmZhbHNlOjwvY29kZT4gdXNlciB3YW50cyBtdWx0aXBsZSBmYWN0b3J5IGluc3RhbmNlcyAob25lIHBlciBtb2R1bGUgd2l0aCBTdHJ1dHMpPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+aW5pdDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0LAorICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttb2R1bGVDb25maWcpCisgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxwPlJlY2VpdmUgbm90aWZpY2F0aW9uIHRoYXQgdGhlIHNwZWNpZmllZCBtb2R1bGUgaXMgYmVpbmcKKyBzdGFydGVkIHVwLjwvcD4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUGx1Z0luLmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXQ8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj5QbHVnSW48L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldDwvQ09ERT4gLSBBY3Rpb25TZXJ2bGV0IHRoYXQgaXMgbWFuYWdpbmcgYWxsIHRoZSBtb2R1bGVzCisgIGluIHRoaXMgd2ViIGFwcGxpY2F0aW9uLjxERD48Q09ERT5tb2R1bGVDb25maWc8L0NPREU+IC0gTW9kdWxlQ29uZmlnIGZvciB0aGUgbW9kdWxlIHdpdGggd2hpY2gKKyAgdGhpcyBwbHVnaW4gaXMgYXNzb2NpYXRlZC4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGlzIDxjb2RlPlBsdWdJbjwvY29kZT4gY2Fubm90CisgIGJlIHN1Y2Nlc3NmdWxseSBpbml0aWFsaXplZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRlc3Ryb3koKSI+PCEtLSAtLT48L0E+PEgzPgorZGVzdHJveTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZGVzdHJveTwvQj4oKTwvUFJFPgorPERMPgorPEREPkVuZCBwbHVnaW4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sI2Rlc3Ryb3koKSI+ZGVzdHJveTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUGx1Z0luLmh0bWwiPlBsdWdJbjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWFkRmFjdG9yeUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWRGYWN0b3J5Q29uZmlnPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4gPEI+cmVhZEZhY3RvcnlDb25maWc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgRmFjdG9yeUNvbmZpZyBhbmQgaW5pdGlhbGl6ZSBpdCBmcm9tIHdlYi54bWwgYW5kIHN0cnV0cy1jb25maWcueG1sLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0PC9DT0RFPiAtIEFjdGlvblNlcnZsZXQgdGhhdCBpcyBtYW5hZ2luZyBhbGwgdGhlIG1vZHVsZXMKKyAgaW4gdGhpcyB3ZWIgYXBwbGljYXRpb24uPEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBNb2R1bGVDb25maWcgZm9yIHRoZSBtb2R1bGUgd2l0aCB3aGljaAorICB0aGlzIHBsdWdpbiBpcyBhc3NvY2lhdGVkLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgPGNvZGU+UGx1Z0luPC9jb2RlPiBjYW5ub3QKKyAgYmUgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluZFN0cnV0c1BsdWdJbkNvbmZpZ1Byb3BlcnRpZXMob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CitmaW5kU3RydXRzUGx1Z0luQ29uZmlnUHJvcGVydGllczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5NYXAgPEI+ZmluZFN0cnV0c1BsdWdJbkNvbmZpZ1Byb3BlcnRpZXM8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkZpbmQgb3JpZ2luYWwgcHJvcGVydGllcyBzZXQgaW4gdGhlIFN0cnV0cyBQbHVnSW5Db25maWcgb2JqZWN0LgorIEZpcnN0LCB3ZSBuZWVkIHRvIGZpbmQgdGhlIGluZGV4IG9mIHRoaXMgcGx1Z2luLiBUaGVuIHdlIHJldHJpZXZlIHRoZSBhcnJheSBvZiBjb25maWdzCisgYW5kIHRoZW4gdGhlIG9iamVjdCBmb3IgdGhpcyBwbHVnaW4uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNlcnZsZXQ8L0NPREU+IC0gQWN0aW9uU2VydmxldCB0aGF0IGlzIG1hbmFnaW5nIGFsbCB0aGUgbW9kdWxlcworICBpbiB0aGlzIHdlYiBhcHBsaWNhdGlvbi48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIE1vZHVsZUNvbmZpZyBmb3IgdGhlIG1vZHVsZSB3aXRoIHdoaWNoCisgIHRoaXMgcGx1ZyBpbiBpcyBhc3NvY2lhdGVkLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgPGNvZGU+UGx1Z0luPC9jb2RlPiBjYW5ub3QKKyAgYmUgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdFJlcXVlc3RQcm9jZXNzb3JDbGFzcyhvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdFJlcXVlc3RQcm9jZXNzb3JDbGFzczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+aW5pdFJlcXVlc3RQcm9jZXNzb3JDbGFzczwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7Y29uZmlnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5TZXQgUmVxdWVzdFByb2Nlc3NvciB0byBhcHByb3ByaWF0ZSBUaWxlcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj48Q09ERT5SZXF1ZXN0UHJvY2Vzc29yPC9DT0RFPjwvQT4uCisgRmlyc3QsIGNoZWNrIGlmIGEgUmVxdWVzdFByb2Nlc3NvciBpcyBzcGVjaWZpZWQuIElmIHllcywgY2hlY2sgaWYgaXQgZXh0ZW5kcworIHRoZSBhcHByb3ByaWF0ZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+PENPREU+VGlsZXNSZXF1ZXN0UHJvY2Vzc29yPC9DT0RFPjwvQT4gY2xhc3MuIElmIG5vdCwgc2V0IHByb2Nlc3NvciBjbGFzcyB0bworIFRpbGVzUmVxdWVzdFByb2Nlc3Nvci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIE1vZHVsZUNvbmZpZyBmb3IgdGhlIG1vZHVsZSB3aXRoIHdoaWNoCisgIHRoaXMgcGx1Z2luIGlzIGFzc29jaWF0ZWQuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gT24gZXJyb3JzLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VGlsZXNVdGlsSW1wbENsYXNzbmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VGlsZXNVdGlsSW1wbENsYXNzbmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VGlsZXNVdGlsSW1wbENsYXNzbmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3RpbGVzVXRpbEltcGxDbGFzc25hbWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IFRpbGVzIHV0aWwgaW1wbGVtZW50aW9uIGNsYXNzbmFtZS4KKyBJZiB0aGlzIHByb3BlcnR5IGlzIHNldCwgdGhlIGZsYWcgPGNvZGU+bW9kdWxlQXdhcmU8L2NvZGU+IHdpbGwgbm90IGJlIHVzZWQgYW55bW9yZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dGlsZXNVdGlsSW1wbENsYXNzbmFtZTwvQ09ERT4gLSBDbGFzc25hbWUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUaWxlc1V0aWxJbXBsQ2xhc3NuYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFRpbGVzVXRpbEltcGxDbGFzc25hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFRpbGVzVXRpbEltcGxDbGFzc25hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgVGlsZXMgdXRpbCBpbXBsZW1lbnRpb24gY2xhc3NuYW1lLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBjbGFzc25hbWUgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgbm9uZSBpcyBzZXQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDdXJyZW50UGx1Z0luQ29uZmlnT2JqZWN0KG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5QbHVnSW5Db25maWcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDdXJyZW50UGx1Z0luQ29uZmlnT2JqZWN0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDdXJyZW50UGx1Z0luQ29uZmlnT2JqZWN0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPlBsdWdJbkNvbmZpZzwvQT4mbmJzcDtwbHVnSW5Db25maWdPYmplY3QpPC9QUkU+Cis8REw+Cis8REQ+TWV0aG9kIHVzZWQgYnkgdGhlIEFjdGlvblNlcnZsZXQgaW5pdGlhbGl6aW5nIHRoaXMgcGx1Z2luLgorIFNldCB0aGUgcGx1Z2luIGNvbmZpZyBvYmplY3QgcmVhZCBmcm9tIG1vZHVsZSBjb25maWcuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBsdWdJbkNvbmZpZ09iamVjdDwvQ09ERT4gLSBQbHVnSW5Db25maWcuPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9UaWxlc1BsdWdpbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9QYXRoQXR0cmlidXRlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUaWxlc1BsdWdpbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzJiYjU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sCkBAIC0wLDAgKzEsNTgwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVGlsZXNSZXF1ZXN0UHJvY2Vzc29yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1JlcXVlc3RQcm9jZXNzb3IsVGlsZXNSZXF1ZXN0UHJvY2Vzc29yIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJUaWxlc1JlcXVlc3RQcm9jZXNzb3IgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNTZXJ2bGV0Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9GT05UPgorPEJSPgorQ2xhc3MgVGlsZXNSZXF1ZXN0UHJvY2Vzc29yPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJlcXVlc3RQcm9jZXNzb3I8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNSZXF1ZXN0UHJvY2Vzc29yPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlRpbGVzUmVxdWVzdFByb2Nlc3NvcjwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPjwvREw+CisKKzxQPgorPHA+PHN0cm9uZz5SZXF1ZXN0UHJvY2Vzc29yPC9zdHJvbmc+IGNvbnRhaW5zIHRoZSBwcm9jZXNzaW5nIGxvZ2ljIHRoYXQKKyB0aGUgU3RydXRzIGNvbnRyb2xsZXIgc2VydmxldCBwZXJmb3JtcyBhcyBpdCByZWNlaXZlcyBlYWNoIHNlcnZsZXQgcmVxdWVzdAorIGZyb20gdGhlIGNvbnRhaW5lci48L3A+CisgPHA+VGhpcyBwcm9jZXNzb3Igc3ViY2xhc3NlcyB0aGUgU3RydXRzIFJlcXVlc3RQcm9jZXNzb3IgaW4gb3JkZXIgdG8gaW50ZXJjZXB0IGNhbGxzIHRvIGZvcndhcmQKKyBvciBpbmNsdWRlLiBXaGVuIHN1Y2ggY2FsbHMgYXJlIGRvbmUsIHRoZSBUaWxlcyBwcm9jZXNzb3IgY2hlY2tzIGlmIHRoZSBzcGVjaWZpZWQgVVJJCisgaXMgYSBkZWZpbml0aW9uIG5hbWUuIElmIHRydWUsIHRoZSBkZWZpbml0aW9uIGlzIHJldHJpZXZlZCBhbmQgaW5jbHVkZWQuIElmCisgZmFsc2UsIHRoZSBvcmlnaW5hbCBVUkkgaXMgaW5jbHVkZWQgb3IgYSBmb3J3YXJkIGlzIHBlcmZvcm1lZC4KKyA8cD4KKyBBY3R1YWxseSwgY2F0Y2hpbmcgaXMgZG9uZSBieSBvdmVybG9hZGluZyB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CisgPHVsPgorIDxsaT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzRm9yd2FyZENvbmZpZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWcpIj48Q09ERT5wcm9jZXNzRm9yd2FyZENvbmZpZyhIdHRwU2VydmxldFJlcXVlc3QsSHR0cFNlcnZsZXRSZXNwb25zZSxGb3J3YXJkQ29uZmlnKTwvQ09ERT48L0E+PC9saT4KKyA8bGk+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwjaW50ZXJuYWxNb2R1bGVSZWxhdGl2ZUZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48Q09ERT5pbnRlcm5hbE1vZHVsZVJlbGF0aXZlRm9yd2FyZChTdHJpbmcsIEh0dHBTZXJ2bGV0UmVxdWVzdCAsIEh0dHBTZXJ2bGV0UmVzcG9uc2UpPC9DT0RFPjwvQT48L2xpPgorIDxsaT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNpbnRlcm5hbE1vZHVsZVJlbGF0aXZlSW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjxDT0RFPmludGVybmFsTW9kdWxlUmVsYXRpdmVJbmNsdWRlKFN0cmluZywgSHR0cFNlcnZsZXRSZXF1ZXN0ICwgSHR0cFNlcnZsZXRSZXNwb25zZSk8L0NPREU+PC9BPjwvbGk+CisgPC91bD4KKyA8L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DZWRyaWMgRHVtb3VsaW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sI2RlZmluaXRpb25zRmFjdG9yeSI+ZGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlZmluaXRpb25zIGZhY3Rvcnk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNsb2ciPmxvZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0UHJvY2Vzc29yIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjYWN0aW9ucyI+YWN0aW9uczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjYXBwQ29uZmlnIj5hcHBDb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI0lOQ0xVREVfUEFUSF9JTkZPIj5JTkNMVURFX1BBVEhfSU5GTzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjSU5DTFVERV9TRVJWTEVUX1BBVEgiPklOQ0xVREVfU0VSVkxFVF9QQVRIPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNtb2R1bGVDb25maWciPm1vZHVsZUNvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNUaWxlc1JlcXVlc3RQcm9jZXNzb3IoKSI+VGlsZXNSZXF1ZXN0UHJvY2Vzc29yPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwjZG9Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZG9Gb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RG8gYSBmb3J3YXJkIHVzaW5nIHJlcXVlc3QgZGlzcGF0Y2hlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KCkiPmdldERlZmluaXRpb25zRmFjdG9yeTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBhc3NvY2lhdGVkIGRlZmluaXRpb24gZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCwKKyAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdGlhbGl6ZSB0aGlzIHJlcXVlc3QgcHJvY2Vzc29yIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNpbml0RGVmaW5pdGlvbnNNYXBwaW5nKCkiPmluaXREZWZpbml0aW9uc01hcHBpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWFkIGNvbXBvbmVudCBpbnN0YW5jZSBtYXBwaW5nIGNvbmZpZ3VyYXRpb24gZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwjaW50ZXJuYWxNb2R1bGVSZWxhdGl2ZUZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5pbnRlcm5hbE1vZHVsZVJlbGF0aXZlRm9yd2FyZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDYXRjaCB0aGUgY2FsbCB0byBhIG1vZHVsZSByZWxhdGl2ZSBmb3J3YXJkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNpbnRlcm5hbE1vZHVsZVJlbGF0aXZlSW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmludGVybmFsTW9kdWxlUmVsYXRpdmVJbmNsdWRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RvIGEgbW9kdWxlIHJlbGF0aXZlIGluY2x1ZGUgdG8gc3BlY2lmaWVkIHVyaSB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NGb3J3YXJkQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPnByb2Nlc3NGb3J3YXJkQ29uZmlnPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4mbmJzcDtmb3J3YXJkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcmxvYWRlZCBtZXRob2QgZnJvbSBTdHJ1dHMnIFJlcXVlc3RQcm9jZXNzb3IuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NUaWxlc0RlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbiwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzVGlsZXNEZWZpbml0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2RlZmluaXRpb25OYW1lLAorICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7Y29udGV4dFJlbGF0aXZlLAorICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgYSBUaWxlIGRlZmluaXRpb24gbmFtZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0UHJvY2Vzc29yIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2Rlc3Ryb3koKSI+ZGVzdHJveTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjZG9JbmNsdWRlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZG9JbmNsdWRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNnZXREZWJ1ZygpIj5nZXREZWJ1ZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjZ2V0SW50ZXJuYWwoKSI+Z2V0SW50ZXJuYWw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2dldFNlcnZsZXRDb250ZXh0KCkiPmdldFNlcnZsZXRDb250ZXh0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZykiPmxvZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjbG9nKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5UaHJvd2FibGUpIj5sb2c8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3MoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzQWN0aW9uQ3JlYXRlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnByb2Nlc3NBY3Rpb25DcmVhdGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NBY3Rpb25Gb3JtKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnByb2Nlc3NBY3Rpb25Gb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzQWN0aW9uRm9yd2FyZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQpIj5wcm9jZXNzQWN0aW9uRm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0FjdGlvblBlcmZvcm0oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24sIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnByb2Nlc3NBY3Rpb25QZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzQ29udGVudChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NDb250ZW50PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzRXhjZXB0aW9uKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZhLmxhbmcuRXhjZXB0aW9uLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzRXhjZXB0aW9uPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzRm9yd2FyZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzRm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0luY2x1ZGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+cHJvY2Vzc0luY2x1ZGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI3Byb2Nlc3NMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzTG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzTWFwcGluZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YS5sYW5nLlN0cmluZykiPnByb2Nlc3NNYXBwaW5nPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzTXVsdGlwYXJ0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5wcm9jZXNzTXVsdGlwYXJ0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzTm9DYWNoZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NOb0NhY2hlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzUGF0aChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnByb2Nlc3NQYXRoPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNwcm9jZXNzUG9wdWxhdGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnByb2Nlc3NQb3B1bGF0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc1ByZXByb2Nlc3MoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wcm9jZXNzUHJlcHJvY2VzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc1JvbGVzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnByb2Nlc3NSb2xlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc1ZhbGlkYXRlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5wcm9jZXNzVmFsaWRhdGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZGVmaW5pdGlvbnNGYWN0b3J5Ij48IS0tIC0tPjwvQT48SDM+CitkZWZpbml0aW9uc0ZhY3Rvcnk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiA8Qj5kZWZpbml0aW9uc0ZhY3Rvcnk8L0I+PC9QUkU+Cis8REw+Cis8REQ+RGVmaW5pdGlvbnMgZmFjdG9yeQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9nIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iVGlsZXNSZXF1ZXN0UHJvY2Vzc29yKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1RpbGVzUmVxdWVzdFByb2Nlc3NvcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPlRpbGVzUmVxdWVzdFByb2Nlc3NvcjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iaW5pdChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmluaXQ8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCwKKyAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKQorICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Jbml0aWFsaXplIHRoaXMgcmVxdWVzdCBwcm9jZXNzb3IgaW5zdGFuY2UuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdDwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlJlcXVlc3RQcm9jZXNzb3I8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldDwvQ09ERT4gLSBUaGUgQWN0aW9uU2VydmxldCB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLjxERD48Q09ERT5tb2R1bGVDb25maWc8L0NPREU+IC0gVGhlIE1vZHVsZUNvbmZpZyB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIElmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgaW5pdGlhbGl6YXRpb24uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0RGVmaW5pdGlvbnNNYXBwaW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXREZWZpbml0aW9uc01hcHBpbmc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmluaXREZWZpbml0aW9uc01hcHBpbmc8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmVhZCBjb21wb25lbnQgaW5zdGFuY2UgbWFwcGluZyBjb25maWd1cmF0aW9uIGZpbGUuCisgVGhpcyBpcyB3aGVyZSB3ZSByZWFkIGZpbGVzIHByb3BlcnRpZXMuCis8UD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcm9jZXNzVGlsZXNEZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc1RpbGVzRGVmaW5pdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+cHJvY2Vzc1RpbGVzRGVmaW5pdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2RlZmluaXRpb25OYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7Y29udGV4dFJlbGF0aXZlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyBhIFRpbGUgZGVmaW5pdGlvbiBuYW1lLgorIFRoaXMgbWV0aG9kIHRyaWVzIHRvIHByb2Nlc3MgdGhlIHBhcmFtZXRlciA8Y29kZT5kZWZpbml0aW9uTmFtZTwvY29kZT4gYXMgYSBkZWZpbml0aW9uIG5hbWUuCisgSXQgcmV0dXJucyA8Y29kZT50cnVlPC9jb2RlPiBpZiBhIGRlZmluaXRpb24gaGFzIGJlZW4gcHJvY2Vzc2VkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gb3RoZXJ3aXNlLgorIFBhcmFtZXRlciA8Y29kZT5jb250ZXh0UmVsYXRpdmU8L2NvZGU+IGlzIG5vdCB1c2VkIGluIHRoaXMgaW1wbGVtZW50YXRpb24uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRlZmluaXRpb25OYW1lPC9DT0RFPiAtIERlZmluaXRpb24gbmFtZSB0byBpbnNlcnQuPEREPjxDT0RFPmNvbnRleHRSZWxhdGl2ZTwvQ09ERT4gLSBJcyB0aGUgZGVmaW5pdGlvbiBtYXJrZWQgY29udGV4dFJlbGF0aXZlID88REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHBhZ2UgcmVxdWVzdC48REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gQ3VycmVudCBwYWdlIHJlc3BvbnNlLgorPERUPjxCPlJldHVybnM6PC9CPjxERD48Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgbWV0aG9kIGhhcyBwcm9jZXNzZWQgdXJpIGFzIGEgZGVmaW5pdGlvbiBuYW1lLCA8Y29kZT5mYWxzZTwvY29kZT4gb3RoZXJ3aXNlLgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgorZG9Gb3J3YXJkPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5kb0ZvcndhcmQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkRvIGEgZm9yd2FyZCB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuCisgVXJpIGlzIGEgdmFsaWQgdXJpLiBJZiByZXNwb25zZSBoYXMgYWxyZWFkeSBiZWVuIGNvbW1pdGVkLCBkbyBhbiBpbmNsdWRlCisgaW5zdGVhZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2RvRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmRvRm9yd2FyZDwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlJlcXVlc3RQcm9jZXNzb3I8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dXJpPC9DT0RFPiAtIFVyaSBvciBEZWZpbml0aW9uIG5hbWUgdG8gZm9yd2FyZC48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHBhZ2UgcmVxdWVzdC48REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gQ3VycmVudCBwYWdlIHJlc3BvbnNlLgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJvY2Vzc0ZvcndhcmRDb25maWcoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorcHJvY2Vzc0ZvcndhcmRDb25maWc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPnByb2Nlc3NGb3J3YXJkQ29uZmlnPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj5Gb3J3YXJkQ29uZmlnPC9BPiZuYnNwO2ZvcndhcmQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+T3ZlcmxvYWRlZCBtZXRob2QgZnJvbSBTdHJ1dHMnIFJlcXVlc3RQcm9jZXNzb3IuCisgRm9yd2FyZCBvciByZWRpcmVjdCB0byB0aGUgc3BlY2lmaWVkIGRlc3RpbmF0aW9uIGJ5IHRoZSBzcGVjaWZpZWQKKyBtZWNoYW5pc20uCisgVGhpcyBtZXRob2QgY2F0Y2hlcyB0aGUgU3RydXRzJyBhY3Rpb25Gb3J3YXJkIGNhbGwuIEl0IGNoZWNrcyBpZiB0aGUKKyBhY3Rpb25Gb3J3YXJkIGlzIGRvbmUgb24gYSBUaWxlcyBkZWZpbml0aW9uIG5hbWUuIElmIHRydWUsIHByb2Nlc3MgdGhlCisgZGVmaW5pdGlvbiBhbmQgaW5zZXJ0IGl0LiBJZiBmYWxzZSwgY2FsbCB0aGUgb3JpZ2luYWwgcGFyZW50J3MgbWV0aG9kLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwjcHJvY2Vzc0ZvcndhcmRDb25maWcoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3J3YXJkQ29uZmlnKSI+cHJvY2Vzc0ZvcndhcmRDb25maWc8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZy48REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nLjxERD48Q09ERT5mb3J3YXJkPC9DT0RFPiAtIFRoZSBBY3Rpb25Gb3J3YXJkIGNvbnRyb2xsaW5nIHdoZXJlIHdlIGdvIG5leHQuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMuCis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW50ZXJuYWxNb2R1bGVSZWxhdGl2ZUZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitpbnRlcm5hbE1vZHVsZVJlbGF0aXZlRm9yd2FyZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+aW50ZXJuYWxNb2R1bGVSZWxhdGl2ZUZvcndhcmQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q2F0Y2ggdGhlIGNhbGwgdG8gYSBtb2R1bGUgcmVsYXRpdmUgZm9yd2FyZC4KKyBJZiB0aGUgc3BlY2lmaWVkIHVyaSBpcyBhIHRpbGVzIGRlZmluaXRpb24gbmFtZSwgaW5zZXJ0IGl0LgorIE90aGVyd2lzZSwgcGFyZW50IHByb2Nlc3NpbmcgaXMgY2FsbGVkLgorIERvIGEgbW9kdWxlIHJlbGF0aXZlIGZvcndhcmQgdG8gc3BlY2lmaWVkIHVyaSB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuCisgVXJpIGlzIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IG1vZHVsZS4gVGhlIHJlYWwgdXJpIGlzIGNvbXB1dGVkIGJ5IHByZWZpeGluZworIHRoZSBtb2R1bGUgbmFtZS4KKyA8c3Ryb25nPlRoaXMgbWV0aG9kIGlzIHVzZWQgaW50ZXJuYWxseSBhbmQgaXMgbm90IHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkuIEl0IGlzCisgYWR2aXNlZCB0byBub3QgdXNlIGl0IGluIHN1YmNsYXNzZXMuPC9zdHJvbmc+Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNpbnRlcm5hbE1vZHVsZVJlbGF0aXZlRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmludGVybmFsTW9kdWxlUmVsYXRpdmVGb3J3YXJkPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT51cmk8L0NPREU+IC0gTW9kdWxlLXJlbGF0aXZlIFVSSSB0byBmb3J3YXJkIHRvLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcGFnZSByZXF1ZXN0LjxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBDdXJyZW50IHBhZ2UgcmVzcG9uc2UuCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+PERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImludGVybmFsTW9kdWxlUmVsYXRpdmVJbmNsdWRlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+PCEtLSAtLT48L0E+PEgzPgoraW50ZXJuYWxNb2R1bGVSZWxhdGl2ZUluY2x1ZGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmludGVybmFsTW9kdWxlUmVsYXRpdmVJbmNsdWRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkRvIGEgbW9kdWxlIHJlbGF0aXZlIGluY2x1ZGUgdG8gc3BlY2lmaWVkIHVyaSB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuCisgVXJpIGlzIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IG1vZHVsZS4gVGhlIHJlYWwgdXJpIGlzIGNvbXB1dGVkIGJ5IHByZWZpeGluZworIHRoZSBtb2R1bGUgbmFtZS4KKyA8c3Ryb25nPlRoaXMgbWV0aG9kIGlzIHVzZWQgaW50ZXJuYWxseSBhbmQgaXMgbm90IHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkuIEl0IGlzCisgYWR2aWNlIHRvIG5vdCB1c2UgaXQgaW4gc3ViY2xhc3Nlcy48L3N0cm9uZz4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2ludGVybmFsTW9kdWxlUmVsYXRpdmVJbmNsdWRlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+aW50ZXJuYWxNb2R1bGVSZWxhdGl2ZUluY2x1ZGU8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5SZXF1ZXN0UHJvY2Vzc29yPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnVyaTwvQ09ERT4gLSBNb2R1bGUtcmVsYXRpdmUgVVJJIHRvIGZvcndhcmQgdG8uPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCBwYWdlIHJlcXVlc3QuPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIEN1cnJlbnQgcGFnZSByZXNwb25zZS4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT48RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERlZmluaXRpb25zRmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmdldERlZmluaXRpb25zRmFjdG9yeTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCBhc3NvY2lhdGVkIGRlZmluaXRpb24gZmFjdG9yeS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNTZXJ2bGV0Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNTZXJ2bGV0Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNTZXJ2bGV0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTE2Njk3NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1NlcnZsZXQuaHRtbApAQCAtMCwwICsxLDMzOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1RpbGVzU2VydmxldCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNTZXJ2bGV0LFRpbGVzU2VydmxldCBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVGlsZXNTZXJ2bGV0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1RpbGVzU2VydmxldC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRpbGVzU2VydmxldC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBUaWxlc1NlcnZsZXQ8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZheC5zZXJ2bGV0LkdlbmVyaWNTZXJ2bGV0CisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNTZXJ2bGV0PC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGUsIGphdmF4LnNlcnZsZXQuU2VydmxldCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnPC9ERD4KKzwvREw+Cis8SFI+Cis8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIEFjdGlvblNlcnZsZXQgaW5zdGVhZC48L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+VGlsZXNTZXJ2bGV0PC9CPjxEVD5leHRlbmRzIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldDwvREw+CisKKzxQPgorQSBzaW1wbGUgc2VydmxldCBpbml0aWFsaXppbmcgYW5kIGxvYWRpbmcgVGlsZXMgZmFjdG9yeS4KKyBUaGlzIHNlcnZsZXQgY2FuIGJlIGRlY2xhcmVkIGluIHdlYi54bWwsIGFzIHdlbGwgYXMgYWxsIGluaXRpYWxpemF0aW9uCisgcGFyYW1ldGVycyBhdmFpbGFibGUgd2l0aCB0aGUgc3BlY2lmaWVkIGZhY3RvcnkuCisgVGhpcyBzZXJ2bGV0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgaW4gYXBwbGljYXRpb24gdXNpbmcgVGlsZXMgd2l0aG91dCBTdHJ1dHMuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q2VkcmljIER1bW91bGluPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzU2VydmxldCI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNTZXJ2bGV0Lmh0bWwjbG9nIj5sb2c8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZheC5zZXJ2bGV0LkdlbmVyaWNTZXJ2bGV0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmF4LnNlcnZsZXQuR2VuZXJpY1NlcnZsZXQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1NlcnZsZXQuaHRtbCNUaWxlc1NlcnZsZXQoKSI+VGlsZXNTZXJ2bGV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1NlcnZsZXQuaHRtbCNpbml0KCkiPmluaXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtJbml0aWFsaXplIHRoaXMgc2VydmxldDwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQ8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5kb0RlbGV0ZSwgZG9HZXQsIGRvT3B0aW9ucywgZG9Qb3N0LCBkb1B1dCwgZG9UcmFjZSwgZ2V0TGFzdE1vZGlmaWVkLCBzZXJ2aWNlLCBzZXJ2aWNlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YXguc2VydmxldC5HZW5lcmljU2VydmxldCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YXguc2VydmxldC5HZW5lcmljU2VydmxldDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmRlc3Ryb3ksIGdldEluaXRQYXJhbWV0ZXIsIGdldEluaXRQYXJhbWV0ZXJOYW1lcywgZ2V0U2VydmxldENvbmZpZywgZ2V0U2VydmxldENvbnRleHQsIGdldFNlcnZsZXRJbmZvLCBnZXRTZXJ2bGV0TmFtZSwgaW5pdCwgbG9nLCBsb2c8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJsb2ciPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2cgPEI+bG9nPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iVGlsZXNTZXJ2bGV0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK1RpbGVzU2VydmxldDwvSDM+Cis8UFJFPgorcHVibGljIDxCPlRpbGVzU2VydmxldDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImluaXQoKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+aW5pdDwvQj4oKQorICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+SW5pdGlhbGl6ZSB0aGlzIHNlcnZsZXQKKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5pbml0PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZheC5zZXJ2bGV0LkdlbmVyaWNTZXJ2bGV0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHdlIGNhbm5vdCBjb25maWd1cmUgb3Vyc2VsdmVzIGNvcnJlY3RseTwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVGlsZXNTZXJ2bGV0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGlsZXNTZXJ2bGV0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhNzRkZmQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwKQEAgLTAsMCArMSw2MTYgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDAgRURUIDIwMDMgLS0+Cis8VElUTEU+CitUaWxlc1V0aWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbCxUaWxlc1V0aWwgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlRpbGVzVXRpbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9UaWxlc1V0aWwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNTZXJ2bGV0Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGlsZXNVdGlsLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIFRpbGVzVXRpbDwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbDwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlRpbGVzVXRpbDwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4KKworPFA+CitDbGFzcyBjb250YWluaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3IgVGlsZXMuCisgTWV0aG9kcyBvZiB0aGlzIGNsYXNzIGFyZSBzdGF0aWMgYW5kIHRoZXJlYnkgYWNjZXNzaWJsZSBmcm9tIGFueXdoZXJlLgorIFRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGNhbiBiZSBjaGFuZ2VkIHdpdGgKKyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNzZXRUaWxlc1V0aWwob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsSW1wbCkiPjxDT0RFPnNldFRpbGVzVXRpbChUaWxlc1V0aWxJbXBsKTwvQ09ERT48L0E+LgorIDxicj4KKyBSZWFsIGltcGxlbWVudGF0aW9uIGNsYXNzZXMgc2hvdWxkIGRlcml2ZSBmcm9tIHRoZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPjxDT0RFPlRpbGVzVXRpbEltcGw8L0NPREU+PC9BPiBjbGFzcy4KKyA8YnI+CisgU29tZSBtZXRob2RzIGFyZSBzcGVjaWZpZWQgdG8gdGhyb3cgdGhlIDxjb2RlPlVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uPC9jb2RlPgorIGlmIHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgb3BlcmF0aW9uLgorPFA+CisKKzxQPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjaW1wbEFscmVhZHlTZXQiPmltcGxBbHJlYWR5U2V0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZsYWcgdG8ga25vdyBpZiBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBoYXMgYmVlbiBzZXQgYnkgdGhlIHNldHRlciBtZXRob2Q8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNsb2ciPmxvZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPlRpbGVzVXRpbEltcGw8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI3RpbGVzVXRpbEltcGwiPnRpbGVzVXRpbEltcGw8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGltcGxlbWVudGF0aW9uIG9mIHRpbGVzVXRpbEltcGw8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI1RpbGVzVXRpbCgpIj5UaWxlc1V0aWw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuQ2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjYXBwbGljYXRpb25DbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+YXBwbGljYXRpb25DbGFzczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc05hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgUmVxdWVzdFV0aWxzLmFwcGxpY2F0aW9uQ2xhc3MoKSBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZykiPmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2ZhY3RvcnlDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gb2JqZWN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2RvRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmRvRm9yd2FyZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCisgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEbyBhIGZvcndhcmQgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2RvSW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmRvSW5jbHVkZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCisgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEbyBhbiBpbmNsdWRlIHVzaW5nIHJlcXVlc3QgZGlzcGF0Y2hlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNkb0luY2x1ZGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj5kb0luY2x1ZGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJpLAorICAgICAgICAgIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEbyBhbiBpbmNsdWRlIHVzaW5nIFBhZ2VDb250ZXh0LmluY2x1ZGUoKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2RlZmluaXRpb25OYW1lLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgZGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gYXBwcm9wcmlhdGUgc2VydmxldCBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPlRpbGVzVXRpbEltcGw8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2dldFRpbGVzVXRpbCgpIj5nZXRUaWxlc1V0aWw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIHJlYWwgaW1wbGVtZW50YXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPihwYWNrYWdlIHByaXZhdGUpIHN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjaXNUaWxlc1V0aWxJbXBsU2V0KCkiPmlzVGlsZXNVdGlsSW1wbFNldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHRlciB0byBrbm93IGlmIHRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIGlzIGFscmVhZHkgc2V0IHRvIGFub3RoZXIKKyB2YWx1ZSB0aGFuIHRoZSBkZWZhdWx0IHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI3NldFRpbGVzVXRpbChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxJbXBsKSI+c2V0VGlsZXNVdGlsPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5UaWxlc1V0aWxJbXBsPC9BPiZuYnNwO3RpbGVzVXRpbCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgcmVhbCBpbXBsZW1lbnRhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjdGVzdFJlc2V0KCkiPnRlc3RSZXNldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Jlc2V0IGludGVybmFsIHN0YXRlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibG9nIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0aWxlc1V0aWxJbXBsIj48IS0tIC0tPjwvQT48SDM+Cit0aWxlc1V0aWxJbXBsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+VGlsZXNVdGlsSW1wbDwvQT4gPEI+dGlsZXNVdGlsSW1wbDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgaW1wbGVtZW50YXRpb24gb2YgdGlsZXNVdGlsSW1wbAorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW1wbEFscmVhZHlTZXQiPjwhLS0gLS0+PC9BPjxIMz4KK2ltcGxBbHJlYWR5U2V0PC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBib29sZWFuIDxCPmltcGxBbHJlYWR5U2V0PC9CPjwvUFJFPgorPERMPgorPEREPkZsYWcgdG8ga25vdyBpZiBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiBoYXMgYmVlbiBzZXQgYnkgdGhlIHNldHRlciBtZXRob2QKKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJUaWxlc1V0aWwoKSI+PCEtLSAtLT48L0E+PEgzPgorVGlsZXNVdGlsPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+VGlsZXNVdGlsPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRUaWxlc1V0aWwoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VGlsZXNVdGlsPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+VGlsZXNVdGlsSW1wbDwvQT4gPEI+Z2V0VGlsZXNVdGlsPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSByZWFsIGltcGxlbWVudGF0aW9uLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSB1bmRlcmx5aW5nIGltcGxlbWVudGF0aW9uIG9iamVjdC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFRpbGVzVXRpbChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxJbXBsKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VGlsZXNVdGlsPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+c2V0VGlsZXNVdGlsPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPlRpbGVzVXRpbEltcGw8L0E+Jm5ic3A7dGlsZXNVdGlsKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgcmVhbCBpbXBsZW1lbnRhdGlvbi4KKyBUaGlzIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkIG9ubHkgb25jZS4KKyBTdWNjZXNzaXZlIGNhbGxzIGhhdmUgbm8gZWZmZWN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT50aWxlc1V0aWw8L0NPREU+IC0gVGhlIGltcGxlbWVudGFpb24uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1RpbGVzVXRpbEltcGxTZXQoKSI+PCEtLSAtLT48L0E+PEgzPgoraXNUaWxlc1V0aWxJbXBsU2V0PC9IMz4KKzxQUkU+CitzdGF0aWMgYm9vbGVhbiA8Qj5pc1RpbGVzVXRpbEltcGxTZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXR0ZXIgdG8ga25vdyBpZiB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBpcyBhbHJlYWR5IHNldCB0byBhbm90aGVyCisgdmFsdWUgdGhhbiB0aGUgZGVmYXVsdCB2YWx1ZS4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD48Y29kZT50cnVlPC9jb2RlPiBpZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNzZXRUaWxlc1V0aWwob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsSW1wbCkiPjxDT0RFPnNldFRpbGVzVXRpbChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxJbXBsKTwvQ09ERT48L0E+IGhhcyBhbHJlYWR5IGJlZW4gY2FsbGVkLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZG9Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZG9Gb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+ZG9Gb3J3YXJkPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5EbyBhIGZvcndhcmQgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLgorCisgVGhpcyBtZXRob2QgaXMgdXNlZCBieSB0aGUgVGlsZXMgcGFja2FnZSBhbnl0aW1lIGEgZm9yd2FyZCBpcyByZXF1aXJlZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dXJpPC9DT0RFPiAtIFVyaSBvciBEZWZpbml0aW9uIG5hbWUgdG8gZm9yd2FyZC48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHBhZ2UgcmVxdWVzdC48REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gQ3VycmVudCBwYWdlIHJlc3BvbnNlLjxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBDdXJyZW50IHNlcnZsZXQgY29udGV4dC4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvSW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvSW5jbHVkZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyB2b2lkIDxCPmRvSW5jbHVkZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RG8gYW4gaW5jbHVkZSB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuCisKKyBUaGlzIG1ldGhvZCBpcyB1c2VkIGJ5IHRoZSBUaWxlcyBwYWNrYWdlIHdoZW4gYW4gaW5jbHVkZSBpcyByZXF1aXJlZC4KKyBUaGUgVGlsZXMgcGFja2FnZSBjYW4gdXNlIGluZGlmZmVyZW50bHkgYW55IGZvcm0gb2YgdGhpcyBtZXRob2QuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnVyaTwvQ09ERT4gLSBVcmkgb3IgRGVmaW5pdGlvbiBuYW1lIHRvIGZvcndhcmQuPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCBwYWdlIHJlcXVlc3QuPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIEN1cnJlbnQgcGFnZSByZXNwb25zZS48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQuCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0luY2x1ZGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+Citkb0luY2x1ZGU8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5kb0luY2x1ZGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQpCisgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkRvIGFuIGluY2x1ZGUgdXNpbmcgUGFnZUNvbnRleHQuaW5jbHVkZSgpLgorCisgVGhpcyBtZXRob2QgaXMgdXNlZCBieSB0aGUgVGlsZXMgcGFja2FnZSB3aGVuIGFuIGluY2x1ZGUgaXMgcmVxdWlyZWQuCisgVGhlIFRpbGVzIHBhY2thZ2UgY2FuIHVzZSBpbmRpZmZlcmVudGx5IGFueSBmb3JtIG9mIHRoaXMgbWV0aG9kLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT51cmk8L0NPREU+IC0gVXJpIG9yIERlZmluaXRpb24gbmFtZSB0byBmb3J3YXJkLgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4gPEI+Z2V0RGVmaW5pdGlvbnNGYWN0b3J5PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9QUkU+Cis8REw+Cis8REQ+R2V0IGRlZmluaXRpb24gZmFjdG9yeSBmcm9tIGFwcHJvcHJpYXRlIHNlcnZsZXQgY29udGV4dC4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5EZWZpbml0aW9ucyBmYWN0b3J5IG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIG5vdCBmb3VuZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4gPEI+Y3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtmYWN0b3J5Q29uZmlnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIERlZmluaXRpb24gZmFjdG9yeSBmcm9tIHNwZWNpZmllZCBjb25maWd1cmF0aW9uIG9iamVjdC4KKyBDcmVhdGUgYSBDb25maWd1cmFibGVEZWZpbml0aW9uc0ZhY3RvcnkgYW5kIGluaXRpYWxpemUgaXQgd2l0aCB0aGUgY29uZmlndXJhdGlvbgorIG9iamVjdC4gVGhpcyBsYXRlciBjYW4gY29udGFpbiB0aGUgZmFjdG9yeSBjbGFzc25hbWUgdG8gdXNlLgorIEZhY3RvcnkgaXMgbWFkZSBhY2Nlc3NpYmxlIGZyb20gdGFncy4KKyA8cD4KKyBGYWxsYmFjayBvZiBzZXZlcmFsIGZhY3RvcnkgY3JlYXRpb24gbWV0aG9kcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuPEREPjxDT0RFPmZhY3RvcnlDb25maWc8L0NPREU+IC0gQ29uZmlndXJhdGlvbiBvYmplY3QgcGFzc2VkIHRvIGZhY3RvcnkuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPm5ld2x5IGNyZWF0ZWQgZmFjdG9yeSBvZiB0eXBlIENvbmZpZ3VyYWJsZURlZmluaXRpb25zRmFjdG9yeS4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9DT0RFPiAtIElmIGFuIGVycm9yIG9jY3VyIHdoaWxlIGluaXRpYWxpemluZyBmYWN0b3J5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZpbml0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4gPEI+Z2V0RGVmaW5pdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2RlZmluaXRpb25OYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCI+RmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9BPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+R2V0IGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZS4KKyBGaXJzdCwgcmV0cmlldmUgZGVmaW5pdGlvbiBmYWN0b3J5IGFuZCB0aGVuIGdldCByZXF1ZXN0ZWQgZGVmaW5pdGlvbi4KKyBUaHJvdyBhcHByb3ByaWF0ZSBleGNlcHRpb24gaWYgZGVmaW5pdGlvbiBvciBkZWZpbml0aW9uIGZhY3RvcnkgaXMgbm90IGZvdW5kLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kZWZpbml0aW9uTmFtZTwvQ09ERT4gLSBOYW1lIG9mIHJlcXVlc3RlZCBkZWZpbml0aW9uLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgc2VydmVsZXQgcmVxdWVzdC48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gY3VycmVudCBzZXJ2bGV0IGNvbnRleHQuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCI+RmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBDYW4ndCBmaW5kIGRlZmluaXRpb24gZmFjdG9yeS4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBHZW5lcmFsIGVycm9yIGluIGZhY3Rvcnkgd2hpbGUgZ2V0dGluZyBkZWZpbml0aW9uLgorPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT48L0NPREU+IC0gTm8gZGVmaW5pdGlvbiBmb3VuZCBmb3Igc3BlY2lmaWVkIG5hbWU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFwcGxpY2F0aW9uQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2FwcGxpY2F0aW9uQ2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLkNsYXNzIDxCPmFwcGxpY2F0aW9uQ2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc05hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5DbGFzc05vdEZvdW5kRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFJlcXVlc3RVdGlscy5hcHBsaWNhdGlvbkNsYXNzKCkgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5SZXR1cm4gdGhlIDxjb2RlPkNsYXNzPC9jb2RlPiBvYmplY3QgZm9yIHRoZSBzcGVjaWZpZWQgZnVsbHkgcXVhbGlmaWVkCisgY2xhc3MgbmFtZSBmcm9tIHRoZSB1bmRlcmx5aW5nIGNsYXNzIGxvYWRlci4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y2xhc3NOYW1lPC9DT0RFPiAtIEZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIHRvIGJlIGxvYWRlZC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Q2xhc3Mgb2JqZWN0LgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNsYXNzIGNhbm5vdCBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idGVzdFJlc2V0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK3Rlc3RSZXNldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyB2b2lkIDxCPnRlc3RSZXNldDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJlc2V0IGludGVybmFsIHN0YXRlLgorIFRoaXMgbWV0aG9kIGlzIHVzZWQgYnkgdGVzdCBzdWl0ZXMgdG8gcmVzZXQgdGhlIGNsYXNzIHRvIGl0cyBvcmlnaW5hbCBzdGF0ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVGlsZXNVdGlsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzU2VydmxldC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRpbGVzVXRpbC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzNWI5MTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sCkBAIC0wLDAgKzEsNTQ4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVGlsZXNVdGlsSW1wbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsSW1wbCxUaWxlc1V0aWxJbXBsIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJUaWxlc1V0aWxJbXBsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1RpbGVzVXRpbEltcGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzSW1wbC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGlsZXNVdGlsSW1wbC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBUaWxlc1V0aWxJbXBsPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsSW1wbDwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzSW1wbC5odG1sIj5UaWxlc1V0aWxTdHJ1dHNJbXBsPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5UaWxlc1V0aWxJbXBsPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBUaWxlc1V0aWwuCisgVGhpcyBjbGFzcyBjb250YWlucyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHV0aWxpdGllcy4gVGhpcyBpbXBsZW1lbnRhdGlvbgorIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aG91dCBTdHJ1dHMuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxJbXBsIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjREVGSU5JVElPTlNfRkFDVE9SWSI+REVGSU5JVElPTlNfRkFDVE9SWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdGFudCBuYW1lIHVzZWQgdG8gc3RvcmUgZmFjdG9yeSBpbiBzZXJ2bGV0IGNvbnRleHQ8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjbG9nIj5sb2c8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI1RpbGVzVXRpbEltcGwoKSI+VGlsZXNVdGlsSW1wbDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5DbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjYXBwbGljYXRpb25DbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+YXBwbGljYXRpb25DbGFzczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc05hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgUmVxdWVzdFV0aWxzLmFwcGxpY2F0aW9uQ2xhc3MoKSBpbnN0ZWFkLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCNjcmVhdGVEZWZpbml0aW9uRmFjdG9yeUluc3RhbmNlKGphdmEubGFuZy5TdHJpbmcpIj5jcmVhdGVEZWZpbml0aW9uRmFjdG9yeUluc3RhbmNlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzbmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBEZWZpbml0aW9uIGZhY3Rvcnkgb2Ygc3BlY2lmaWVkIGNsYXNzbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj5jcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtmYWN0b3J5Q29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIERlZmluaXRpb24gZmFjdG9yeSBmcm9tIHNwZWNpZmllZCBjb25maWd1cmF0aW9uIG9iamVjdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjZG9Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+ZG9Gb3J3YXJkPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RvIGEgZm9yd2FyZCB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI2RvSW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmRvSW5jbHVkZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCisgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEbyBhbiBpbmNsdWRlIHVzaW5nIHJlcXVlc3QgZGlzcGF0Y2hlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjZG9JbmNsdWRlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+ZG9JbmNsdWRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RG8gYW4gaW5jbHVkZSB1c2luZyBQYWdlQ29udGV4dC5pbmNsdWRlKCkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCNnZXREZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb25zRmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBkZWZpbml0aW9uIGZhY3RvcnkgZnJvbSBhcHByb3ByaWF0ZSBzZXJ2bGV0IGNvbnRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCNtYWtlRGVmaW5pdGlvbnNGYWN0b3J5QWNjZXNzaWJsZShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnksIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5tYWtlRGVmaW5pdGlvbnNGYWN0b3J5QWNjZXNzaWJsZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Jm5ic3A7ZmFjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01ha2UgZGVmaW5pdGlvbiBmYWN0b3J5IGFjY2Vzc2libGUgdG8gVGFncy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImxvZyI+PCEtLSAtLT48L0E+PEgzPgorbG9nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJERUZJTklUSU9OU19GQUNUT1JZIj48IS0tIC0tPjwvQT48SDM+CitERUZJTklUSU9OU19GQUNUT1JZPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+REVGSU5JVElPTlNfRkFDVE9SWTwvQj48L1BSRT4KKzxETD4KKzxERD5Db25zdGFudCBuYW1lIHVzZWQgdG8gc3RvcmUgZmFjdG9yeSBpbiBzZXJ2bGV0IGNvbnRleHQKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsSW1wbC5ERUZJTklUSU9OU19GQUNUT1JZIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJUaWxlc1V0aWxJbXBsKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1RpbGVzVXRpbEltcGw8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5UaWxlc1V0aWxJbXBsPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJkb0ZvcndhcmQoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+Citkb0ZvcndhcmQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmRvRm9yd2FyZDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkRvIGEgZm9yd2FyZCB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuCisKKyBUaGlzIG1ldGhvZCBpcyB1c2VkIGJ5IHRoZSBUaWxlcyBwYWNrYWdlIGFueXRpbWUgYSBmb3J3YXJkIGlzIHJlcXVpcmVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT51cmk8L0NPREU+IC0gVXJpIG9yIERlZmluaXRpb24gbmFtZSB0byBmb3J3YXJkLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcGFnZSByZXF1ZXN0LjxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBDdXJyZW50IHNlcnZsZXQgY29udGV4dC4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRvSW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK2RvSW5jbHVkZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZG9JbmNsdWRlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJpLAorICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KQorICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+RG8gYW4gaW5jbHVkZSB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuCisKKyBUaGlzIG1ldGhvZCBpcyB1c2VkIGJ5IHRoZSBUaWxlcyBwYWNrYWdlIHdoZW4gYW4gaW5jbHVkZSBpcyByZXF1aXJlZC4KKyBUaGUgVGlsZXMgcGFja2FnZSBjYW4gdXNlIGluZGlmZmVyZW50bHkgYW55IGZvcm0gb2YgdGhpcyBtZXRob2QuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnVyaTwvQ09ERT4gLSBVcmkgb3IgRGVmaW5pdGlvbiBuYW1lIHRvIGZvcndhcmQuPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCBwYWdlIHJlcXVlc3QuPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIEN1cnJlbnQgcGFnZSByZXNwb25zZS48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQuCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0luY2x1ZGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+Citkb0luY2x1ZGU8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5kb0luY2x1ZGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQpCisgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkRvIGFuIGluY2x1ZGUgdXNpbmcgUGFnZUNvbnRleHQuaW5jbHVkZSgpLgorCisgVGhpcyBtZXRob2QgaXMgdXNlZCBieSB0aGUgVGlsZXMgcGFja2FnZSB3aGVuIGFuIGluY2x1ZGUgaXMgcmVxdWlyZWQuCisgVGhlIFRpbGVzIHBhY2thZ2UgY2FuIHVzZSBpbmRpZmZlcmVudGx5IGFueSBmb3JtIG9mIHRoaXMgbWV0aG9kLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT51cmk8L0NPREU+IC0gVXJpIG9yIERlZmluaXRpb24gbmFtZSB0byBmb3J3YXJkLgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiA8Qj5nZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvUFJFPgorPERMPgorPEREPkdldCBkZWZpbml0aW9uIGZhY3RvcnkgZnJvbSBhcHByb3ByaWF0ZSBzZXJ2bGV0IGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+RGVmaW5pdGlvbnMgZmFjdG9yeSBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiBub3QgZm91bmQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5PC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4gPEI+Y3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2ZhY3RvcnlDb25maWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPkNyZWF0ZSBEZWZpbml0aW9uIGZhY3RvcnkgZnJvbSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbiBvYmplY3QuCisgQ3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBmYWN0b3J5IHdpdGggdGhlIGNsYXNzIHNwZWNpZmllZCBpbiB0aGUgY29uZmlnCisgb2JqZWN0LiBUaGVuLCBpbml0aWFsaXplIHRoaXMgZmFjdG9yeSBhbmQgZmluYWxseSBzdG9yZSB0aGUgZmFjdG9yeSBpbgorIGFwcHJvcHJpYXRlIGNvbnRleHQgYnkgY2FsbGluZworIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCNtYWtlRGVmaW5pdGlvbnNGYWN0b3J5QWNjZXNzaWJsZShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnksIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Q09ERT5tYWtlRGVmaW5pdGlvbnNGYWN0b3J5QWNjZXNzaWJsZShEZWZpbml0aW9uc0ZhY3RvcnksIFNlcnZsZXRDb250ZXh0KTwvQ09ERT48L0E+LgorIEZhY3RvcnkgY3JlYXRpb24gaXMgZG9uZSBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjY3JlYXRlRGVmaW5pdGlvbkZhY3RvcnlJbnN0YW5jZShqYXZhLmxhbmcuU3RyaW5nKSI+PENPREU+Y3JlYXRlRGVmaW5pdGlvbkZhY3RvcnlJbnN0YW5jZShTdHJpbmcpPC9DT0RFPjwvQT4uCisgPHA+Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIFNlcnZsZXQgQ29udGV4dCBwYXNzZWQgdG8gbmV3bHkgY3JlYXRlZCBmYWN0b3J5LjxERD48Q09ERT5mYWN0b3J5Q29uZmlnPC9DT0RFPiAtIENvbmZpZ3VyYXRpb24gb2JqZWN0IHBhc3NlZCB0byBmYWN0b3J5LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5uZXdseSBjcmVhdGVkIGZhY3Rvcnkgb2YgdHlwZSBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZyBvYmplY3QuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBJZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBpbml0aWFsaXppbmcgZmFjdG9yeTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlRGVmaW5pdGlvbkZhY3RvcnlJbnN0YW5jZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorY3JlYXRlRGVmaW5pdGlvbkZhY3RvcnlJbnN0YW5jZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmNyZWF0ZURlZmluaXRpb25GYWN0b3J5SW5zdGFuY2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5IG9mIHNwZWNpZmllZCBjbGFzc25hbWUuCisgRmFjdG9yeSBjbGFzcyBtdXN0IGV4dGVuZCB0aGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPjxDT0RFPkRlZmluaXRpb25zRmFjdG9yeTwvQ09ERT48L0E+IGNsYXNzLgorIFRoZSBmYWN0b3J5IGlzIHdyYXBwZWQgYXBwcm9wcmlhdGVseSB3aXRoIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sIj48Q09ERT5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyPC9DT0RFPjwvQT4KKyBpZiBpdCBpcyBhbiBpbnN0YW5jZSBvZiB0aGUgZGVwcmVjYXRlZCBDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkgY2xhc3MuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNsYXNzbmFtZTwvQ09ERT4gLSBDbGFzcyBuYW1lIG9mIHRoZSBmYWN0b3J5IHRvIGNyZWF0ZS4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+bmV3bHkgY3JlYXRlZCBmYWN0b3J5LgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gSWYgYW4gZXJyb3Igb2NjdXIgd2hpbGUgaW5pdGlhbGl6aW5nIGZhY3Rvcnk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK21ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5tYWtlRGVmaW5pdGlvbnNGYWN0b3J5QWNjZXNzaWJsZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4mbmJzcDtmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvUFJFPgorPERMPgorPEREPk1ha2UgZGVmaW5pdGlvbiBmYWN0b3J5IGFjY2Vzc2libGUgdG8gVGFncy4KKyBGYWN0b3J5IGlzIHN0b3JlZCBpbiBzZXJ2bGV0IGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZhY3Rvcnk8L0NPREU+IC0gRmFjdG9yeSB0byBiZSBtYWRlIGFjY2Vzc2libGUuPEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIEN1cnJlbnQgc2VydmxldCBjb250ZXh0LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYXBwbGljYXRpb25DbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorYXBwbGljYXRpb25DbGFzczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5DbGFzcyA8Qj5hcHBsaWNhdGlvbkNsYXNzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NOYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubGFuZy5DbGFzc05vdEZvdW5kRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIFJlcXVlc3RVdGlscy5hcHBsaWNhdGlvbkNsYXNzKCkgaW5zdGVhZC48L0k+Cis8UD4KKzxERD5SZXR1cm4gdGhlIDxjb2RlPkNsYXNzPC9jb2RlPiBvYmplY3QgZm9yIHRoZSBzcGVjaWZpZWQgZnVsbHkgcXVhbGlmaWVkCisgY2xhc3MgbmFtZSBmcm9tIHRoZSB1bmRlcmx5aW5nIGNsYXNzIGxvYWRlci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y2xhc3NOYW1lPC9DT0RFPiAtIEZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIHRvIGJlIGxvYWRlZC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Q2xhc3Mgb2JqZWN0LgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNsYXNzIGNhbm5vdCBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVGlsZXNVdGlsSW1wbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUaWxlc1V0aWxJbXBsLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTdlMmRjYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwKQEAgLTAsMCArMSwzMjAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDAgRURUIDIwMDMgLS0+Cis8VElUTEU+CitUaWxlc1V0aWxTdHJ1dHNJbXBsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxTdHJ1dHNJbXBsLFRpbGVzVXRpbFN0cnV0c0ltcGwgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlRpbGVzVXRpbFN0cnV0c0ltcGwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVGlsZXNVdGlsU3RydXRzSW1wbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbEltcGwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9GT05UPgorPEJSPgorQ2xhc3MgVGlsZXNVdGlsU3RydXRzSW1wbDwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsSW1wbDwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxTdHJ1dHNJbXBsPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sIj5UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbDwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+VGlsZXNVdGlsU3RydXRzSW1wbDwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPlRpbGVzVXRpbEltcGw8L0E+PC9ETD4KKworPFA+CitUaWxlc1V0aWwgaW1wbGVtZW50YXRpb24gZm9yIFN0cnV0cyAxLjEgd2l0aCBvbmUgc2luZ2xlIGZhY3RvcnkuCisgVGhpcyBjbGFzcyBjb250YWlucyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHV0aWxpdGllcy4gVGhpcyBpbXBsZW1lbnRhdGlvbgorIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCBTdHJ1dHMgMS4xLgorIFRoaXMgY2xhc3MgaXMgdXNlZCBhcyB0aGUgYmFzZSBjbGFzcyBmb3IgYWxsIFN0cnV0cyAxLjEgaW1wbGVtZW50YXRpb25zIG9mIFRpbGVzVXRpbC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbFN0cnV0c0ltcGwiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxJbXBsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+VGlsZXNVdGlsSW1wbDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjREVGSU5JVElPTlNfRkFDVE9SWSI+REVGSU5JVElPTlNfRkFDVE9SWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCNsb2ciPmxvZzwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwjVGlsZXNVdGlsU3RydXRzSW1wbCgpIj5UaWxlc1V0aWxTdHJ1dHNJbXBsPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLkNsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCNhcHBsaWNhdGlvbkNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5hcHBsaWNhdGlvbkNsYXNzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBSZXF1ZXN0VXRpbHMuYXBwbGljYXRpb25DbGFzcygpIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5nZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGRlZmluaXRpb24gZmFjdG9yeSBmb3IgdGhlIG1vZHVsZSBhdHRhY2hlZCB0byB0aGUgc3BlY2lmaWVkIG1vZHVsZUNvbmZpZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbEltcGwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+VGlsZXNVdGlsSW1wbDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjY3JlYXRlRGVmaW5pdGlvbkZhY3RvcnlJbnN0YW5jZShqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlRGVmaW5pdGlvbkZhY3RvcnlJbnN0YW5jZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCNjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKSI+Y3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI2RvRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmRvRm9yd2FyZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCNkb0luY2x1ZGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5kb0luY2x1ZGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjZG9JbmNsdWRlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+ZG9JbmNsdWRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI2dldERlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI21ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPm1ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJUaWxlc1V0aWxTdHJ1dHNJbXBsKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1RpbGVzVXRpbFN0cnV0c0ltcGw8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5UaWxlc1V0aWxTdHJ1dHNJbXBsPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJhcHBsaWNhdGlvbkNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CithcHBsaWNhdGlvbkNsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLkNsYXNzIDxCPmFwcGxpY2F0aW9uQ2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc05hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgUmVxdWVzdFV0aWxzLmFwcGxpY2F0aW9uQ2xhc3MoKSBpbnN0ZWFkLjwvST4KKzxQPgorPEREPlJldHVybiB0aGUgPGNvZGU+Q2xhc3M8L2NvZGU+IG9iamVjdCBmb3IgdGhlIHNwZWNpZmllZCBmdWxseSBxdWFsaWZpZWQKKyBjbGFzcyBuYW1lIGZyb20gdGhlIFN0cnV0cyBjbGFzcyBsb2FkZXIuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI2FwcGxpY2F0aW9uQ2xhc3MoamF2YS5sYW5nLlN0cmluZykiPmFwcGxpY2F0aW9uQ2xhc3M8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPlRpbGVzVXRpbEltcGw8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y2xhc3NOYW1lPC9DT0RFPiAtIEZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIHRvIGJlIGxvYWRlZC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Q2xhc3Mgb2JqZWN0LgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNsYXNzIGNhbm5vdCBiZSBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiA8Qj5nZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO21vZHVsZUNvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5HZXQgZGVmaW5pdGlvbiBmYWN0b3J5IGZvciB0aGUgbW9kdWxlIGF0dGFjaGVkIHRvIHRoZSBzcGVjaWZpZWQgbW9kdWxlQ29uZmlnLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBDdXJyZW50IHNlcnZsZXQgY29udGV4dDxERD48Q09ERT5tb2R1bGVDb25maWc8L0NPREU+IC0gTW9kdWxlIGNvbmZpZyBvZiB0aGUgbW9kdWxlIGZvciB3aGljaCB0aGUgZmFjdG9yeSBpcyByZXF1ZXN0ZWQuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkRlZmluaXRpb25zIGZhY3Rvcnkgb3IgbnVsbCBpZiBub3QgZm91bmQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGlsZXNVdGlsU3RydXRzSW1wbC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsSW1wbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzIwYTFjYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sCkBAIC0wLDAgKzEsNDg0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLFRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJUaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxJbXBsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvRk9OVD4KKzxCUj4KK0NsYXNzIFRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxJbXBsPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsU3RydXRzSW1wbDwvQT4KKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbDwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCI+VGlsZXNVdGlsU3RydXRzSW1wbDwvQT48L0RMPgorCis8UD4KK0ltcGxlbWVudGF0aW9uIG9mIFRpbGVzVXRpbCBmb3IgU3RydXRzIG11bHRpIG1vZHVsZXMuCisgTWV0aG9kcyBpbiB0aGlzIGltcGxlbWVudGF0aW9uIGFyZSBhd2FyZSBvZiB0aGUgU3RydXRzIG1vZHVsZSBjb250ZXh0LgorIDxicj4KKyA8dWw+CisgPGxpPlRoZSBtZXRob2QgZ2V0RmFjdG9yeSguLi4pIHJldHVybnMgdGhlIGZhY3RvcnkgZm9yIHRoZSBjdXJyZW50IFN0cnV0cworIG1vZHVsZS48L2xpPgorIDxsaT5NZXRob2RzIGRvRm9yd2FyZCgpIGFuZCBkb0luY2x1ZGUoKSB1c2UgdGhlaXIgY291bnRlcnBhcnRzIGluIHRoZQorIGN1cnJlbnQgUmVxdWVzdFByb2Nlc3NvciAodG9kbykuPC9saT4KKyA8bGk+VGhlIG1ldGhvZCBjcmVhdGVGYWN0b3J5KC4uLikgY3JlYXRlcyBhIGZhY3RvcnkgZm9yIHRoZSBjdXJyZW50IG1vZHVsZSBhbmQKKyBzdG9yZXMgaXQgdW5kZXIgdGhlIGFwcHJvcHJpYXRlIHByb3BlcnR5IG5hbWUuPC9saT4KKyA8L3VsPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxJbXBsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+VGlsZXNVdGlsSW1wbDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjREVGSU5JVElPTlNfRkFDVE9SWSI+REVGSU5JVElPTlNfRkFDVE9SWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCNsb2ciPmxvZzwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sI1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsKCkiPlRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sI2RvRm9yd2FyZChqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmRvRm9yd2FyZDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCisgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEbyBhIGZvcndhcmQgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwjZG9JbmNsdWRlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+ZG9JbmNsdWRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RvIGFuIGluY2x1ZGUgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sI2dldERlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+Z2V0RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO21vZHVsZUNvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBkZWZpbml0aW9uIGZhY3RvcnkgZm9yIHRoZSBtb2R1bGUgYXR0YWNoZWQgdG8gc3BlY2lmaWVkIG1vZHVsZUNvbmZpZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCNnZXREZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb25zRmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgZGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gYXBwcm9wcmlhdGUgc2VydmxldCBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwjZ2V0TW9kdWxlQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXRNb2R1bGVDb25maWc8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIGN1cnJlbnQgTW9kdWxlQ29uZmlnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlRpbGVzUmVxdWVzdFByb2Nlc3NvcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCNnZXRSZXF1ZXN0UHJvY2Vzc29yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXRSZXF1ZXN0UHJvY2Vzc29yPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBUaWxlcyBSZXF1ZXN0UHJvY2Vzc29yIGFzc29jaWF0ZWQgdG8gdGhlIGN1cnJlbnQgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sI21ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPm1ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4mbmJzcDtmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TWFrZSBkZWZpbml0aW9uIGZhY3RvcnkgYWNjZXNzaWJsZSB0byB0YWdzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsU3RydXRzSW1wbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzSW1wbC5odG1sIj5UaWxlc1V0aWxTdHJ1dHNJbXBsPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCNhcHBsaWNhdGlvbkNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5hcHBsaWNhdGlvbkNsYXNzPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbEltcGwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+VGlsZXNVdGlsSW1wbDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjY3JlYXRlRGVmaW5pdGlvbkZhY3RvcnlJbnN0YW5jZShqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlRGVmaW5pdGlvbkZhY3RvcnlJbnN0YW5jZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCNjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKSI+Y3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI2RvSW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPmRvSW5jbHVkZTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwoKSI+PCEtLSAtLT48L0E+PEgzPgorVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGw8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbDwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZG9Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZG9Gb3J3YXJkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5kb0ZvcndhcmQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmksCisgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpCisgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5EbyBhIGZvcndhcmQgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLgorCisgVGhpcyBtZXRob2QgaXMgdXNlZCBieSB0aGUgVGlsZXMgcGFja2FnZSBhbnl0aW1lIGEgZm9yd2FyZCBpcyByZXF1aXJlZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjZG9Gb3J3YXJkKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+ZG9Gb3J3YXJkPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5UaWxlc1V0aWxJbXBsPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnVyaTwvQ09ERT4gLSBVcmkgb3IgRGVmaW5pdGlvbiBuYW1lIHRvIGZvcndhcmQuPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCBwYWdlIHJlcXVlc3QuPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIEN1cnJlbnQgcGFnZSByZXNwb25zZS48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQuCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkb0luY2x1ZGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+Citkb0luY2x1ZGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmRvSW5jbHVkZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VyaSwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkRvIGFuIGluY2x1ZGUgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLgorCisgVGhpcyBtZXRob2QgaXMgdXNlZCBieSB0aGUgVGlsZXMgcGFja2FnZSBhbnl0aW1lIGFuIGluY2x1ZGUgaXMgcmVxdWlyZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI2RvSW5jbHVkZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmRvSW5jbHVkZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+VGlsZXNVdGlsSW1wbDwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT51cmk8L0NPREU+IC0gVXJpIG9yIERlZmluaXRpb24gbmFtZSB0byBmb3J3YXJkLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcGFnZSByZXF1ZXN0LjxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBDdXJyZW50IHBhZ2UgcmVzcG9uc2UuPEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIEN1cnJlbnQgc2VydmxldCBjb250ZXh0LgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiA8Qj5nZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgZGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gYXBwcm9wcmlhdGUgc2VydmxldCBjb250ZXh0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCNnZXREZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+VGlsZXNVdGlsSW1wbDwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdC48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkRlZmluaXRpb25zIGZhY3Rvcnkgb3IgbnVsbCBpZiBub3QgZm91bmQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXREZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERlZmluaXRpb25zRmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmdldERlZmluaXRpb25zRmFjdG9yeTwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKTwvUFJFPgorPERMPgorPEREPkdldCBkZWZpbml0aW9uIGZhY3RvcnkgZm9yIHRoZSBtb2R1bGUgYXR0YWNoZWQgdG8gc3BlY2lmaWVkIG1vZHVsZUNvbmZpZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5nZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwiPlRpbGVzVXRpbFN0cnV0c0ltcGw8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQuPEREPjxDT0RFPm1vZHVsZUNvbmZpZzwvQ09ERT4gLSBNb2R1bGUgY29uZmlnIG9mIHRoZSBtb2R1bGUgZm9yIHdoaWNoIHRoZSBmYWN0b3J5IGlzIHJlcXVlc3RlZC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+RGVmaW5pdGlvbnMgZmFjdG9yeSBvciBudWxsIGlmIG5vdCBmb3VuZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK21ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5tYWtlRGVmaW5pdGlvbnNGYWN0b3J5QWNjZXNzaWJsZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4mbmJzcDtmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvUFJFPgorPERMPgorPEREPk1ha2UgZGVmaW5pdGlvbiBmYWN0b3J5IGFjY2Vzc2libGUgdG8gdGFncy4KKyBGYWN0b3J5IGlzIHN0b3JlZCBpbiBzZXJ2bGV0IGNvbnRleHQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI21ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPm1ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5UaWxlc1V0aWxJbXBsPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZhY3Rvcnk8L0NPREU+IC0gRmFjdG9yeSB0byBiZSBtYWRlIGFjY2Vzc2libGUuPEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIEN1cnJlbnQgc2VydmxldCBjb250ZXh0LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UmVxdWVzdFByb2Nlc3NvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVxdWVzdFByb2Nlc3NvcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0E+IDxCPmdldFJlcXVlc3RQcm9jZXNzb3I8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L1BSRT4KKzxETD4KKzxERD5HZXQgVGlsZXMgUmVxdWVzdFByb2Nlc3NvciBhc3NvY2lhdGVkIHRvIHRoZSBjdXJyZW50IG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHJlcXVlc3QuPEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIEN1cnJlbnQgc2VydmxldCBjb250ZXh0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPjxDT0RFPlRpbGVzUmVxdWVzdFByb2Nlc3NvcjwvQ09ERT48L0E+IGZvciB0aGUgY3VycmVudCByZXF1ZXN0LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TW9kdWxlQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNb2R1bGVDb25maWc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4gPEI+Z2V0TW9kdWxlQ29uZmlnPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIGN1cnJlbnQgTW9kdWxlQ29uZmlnLgorIDxicj4KKyBMb29rdXAgaW4gdGhlIHJlcXVlc3QgYW5kIGRvIHNlbGVjdE1vZHVsZSBpZiBub3QgZm91bmQuIFRoZSBzaWRlIGVmZmVjdAorIGlzLCB0aGF0IHRoZSBNb2R1bGVDb25maWcgb2JqZWN0IGlzIHNldCBpbiB0aGUgcmVxdWVzdCBpZiBpdCB3YXMgbm90IHByZXNlbnQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCByZXF1ZXN0LjxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBDdXJyZW50IHNlcnZsZXQgY29udGV4dCouCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBNb2R1bGVDb25maWcgZm9yIGN1cnJlbnQgcmVxdWVzdC48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbEltcGwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyYjg0YmYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDQyNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VudHlwcGVkQXR0cmlidXRlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZSxVbnR5cHBlZEF0dHJpYnV0ZSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVW50eXBwZWRBdHRyaWJ1dGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VcmxDb250cm9sbGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJVbnR5cHBlZEF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBVbnR5cHBlZEF0dHJpYnV0ZTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlVudHlwcGVkQXR0cmlidXRlPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sIj5BdHRyaWJ1dGVEZWZpbml0aW9uPC9BPiwgamF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uQXR0cmlidXRlLmh0bWwiPkRlZmluaXRpb25BdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIj5EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RpcmVjdFN0cmluZ0F0dHJpYnV0ZS5odG1sIj5EaXJlY3RTdHJpbmdBdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9QYXRoQXR0cmlidXRlLmh0bWwiPlBhdGhBdHRyaWJ1dGU8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlVudHlwcGVkQXR0cmlidXRlPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwiPkF0dHJpYnV0ZURlZmluaXRpb248L0E+PC9ETD4KKworPFA+CitDb21tb24gaW1wbGVtZW50YXRpb24gb2YgYXR0cmlidXRlIGRlZmluaXRpb24uCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZSI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwjcm9sZSI+cm9sZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSb2xlIGFzc29jaWF0ZWQgdG8gdGhpcyBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNVbnR5cHBlZEF0dHJpYnV0ZShqYXZhLmxhbmcuT2JqZWN0KSI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwjVW50eXBwZWRBdHRyaWJ1dGUoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZykiPlVudHlwcGVkQXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlLAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3JvbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHJvbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cm9sZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCByb2xlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLk9iamVjdCkiPnNldFZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJyb2xlIj48IS0tIC0tPjwvQT48SDM+Cityb2xlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5yb2xlPC9CPjwvUFJFPgorPERMPgorPEREPlJvbGUgYXNzb2NpYXRlZCB0byB0aGlzIGF0dHJpYnV0ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbHVlIj48IS0tIC0tPjwvQT48SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5PYmplY3QgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlVudHlwcGVkQXR0cmlidXRlKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitVbnR5cHBlZEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIDxCPlVudHlwcGVkQXR0cmlidXRlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gT2JqZWN0IHRvIHN0b3JlLjwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlVudHlwcGVkQXR0cmlidXRlKGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitVbnR5cHBlZEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIDxCPlVudHlwcGVkQXR0cmlidXRlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3JvbGUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gT2JqZWN0IHRvIHN0b3JlLjxERD48Q09ERT5yb2xlPC9DT0RFPiAtIEFzb2NpYXRlZCByb2xlLjwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFJvbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Um9sZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Um9sZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCByb2xlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRSb2xlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRSb2xlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cm9sZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgcm9sZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwiPkF0dHJpYnV0ZURlZmluaXRpb248L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cm9sZTwvQ09ERT4gLSBBc3NvY2lhdGVkIHJvbGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Z2V0VmFsdWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdmFsdWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCI+QXR0cmlidXRlRGVmaW5pdGlvbjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHZhbHVlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBOZXcgdmFsdWUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0b1N0cmluZygpIj48IS0tIC0tPjwvQT48SDM+Cit0b1N0cmluZzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+dG9TdHJpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnRvU3RyaW5nPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VcmxDb250cm9sbGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJVbnR5cHBlZEF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VcmxDb250cm9sbGVyLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVXJsQ29udHJvbGxlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1YjgyNjMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVXJsQ29udHJvbGxlci5odG1sCkBAIC0wLDAgKzEsMzA0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXJsQ29udHJvbGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVXJsQ29udHJvbGxlcixVcmxDb250cm9sbGVyIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVcmxDb250cm9sbGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1VybENvbnRyb2xsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlVybENvbnRyb2xsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9GT05UPgorPEJSPgorQ2xhc3MgVXJsQ29udHJvbGxlcjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlVybENvbnRyb2xsZXI8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlVybENvbnRyb2xsZXI8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT48L0RMPgorCis8UD4KK1RpbGVzIGNvbnRyb2xsZXIgaW5jbHVkaW5nIGEgbG9jYWwgVVJMLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNlZHJpYyBEdW1vdWxpbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VcmxDb250cm9sbGVyLmh0bWwjdXJsIj51cmw8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VXJsIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbnRyb2xsZXIuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VcmxDb250cm9sbGVyLmh0bWwjVXJsQ29udHJvbGxlcihqYXZhLmxhbmcuU3RyaW5nKSI+VXJsQ29udHJvbGxlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VybENvbnRyb2xsZXIuaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+cGVyZm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4mbmJzcDt0aWxlQ29udGV4dCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01ldGhvZCBhc3NvY2lhdGVkIHRvIGEgdGlsZSBhbmQgY2FsbGVkIGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgdGlsZSBpcyBpbmNsdWRlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InVybCI+PCEtLSAtLT48L0E+PEgzPgordXJsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj51cmw8L0I+PC9QUkU+Cis8REw+Cis8REQ+VXJsIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbnRyb2xsZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iVXJsQ29udHJvbGxlcihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorVXJsQ29udHJvbGxlcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPlVybENvbnRyb2xsZXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmwpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dXJsPC9DT0RFPiAtIFVSTC48L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorcGVyZm9ybTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cGVyZm9ybTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiZuYnNwO3RpbGVDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KQorICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5NZXRob2QgYXNzb2NpYXRlZCB0byBhIHRpbGUgYW5kIGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIHRpbGUgaXMgaW5jbHVkZWQuCisgVGhpcyBpbXBsZW1lbnRhdGlvbiBjYWxscyBhIFN0cnV0cyBBY3Rpb24uIE5vIHNlcnZsZXQgaXMgc2V0IGJ5IHRoaXMgbWV0aG9kLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+cGVyZm9ybTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dGlsZUNvbnRleHQ8L0NPREU+IC0gQ3VycmVudCB0aWxlIGNvbnRleHQuPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCByZXF1ZXN0LjxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBDdXJyZW50IHJlc3BvbnNlLjxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBDdXJyZW50IHNlcnZsZXQgY29udGV4dC4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+Cis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1VybENvbnRyb2xsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlVybENvbnRyb2xsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44N2E3MmI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24uaHRtbApAQCAtMCwwICsxLDM3MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0RlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLkRlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLERlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJEZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL05vT3BBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zPC9GT05UPgorPEJSPgorQ2xhc3MgRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb248L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb248L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbjwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbjwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0RMPgorCis8UD4KKzxwPkFuIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgZGlzcGF0Y2hlcyB0byBhIFRpbGVzIERlZmluaXRpb24KKyB0aGF0IGlzIG5hbWVkIGJ5IHRoZSByZXF1ZXN0IHBhcmFtZXRlciB3aG9zZSBuYW1lIGlzIHNwZWNpZmllZAorIGJ5IHRoZSA8Y29kZT5wYXJhbWV0ZXI8L2NvZGU+IHByb3BlcnR5IG9mIHRoZSBjb3JyZXNwb25kaW5nCisgQWN0aW9uTWFwcGluZy4KKyBUaGlzIGFjdGlvbiBpcyB1c2VmdWxsIGluIGZvbGxvd2luZyBzaXR1YXRpb25zIDoKKyA8bGk+CisgPHVsPlRvIGFzc29jaWF0ZSBhbiBVcmwgdG8gYSBkZWZpbml0aW9uPC91bD4KKyA8dWw+VG8gdXNlIFN0cnV0cyAmbHQ7aHRtbDpsaW5rJmd0OyB0YWcgb24gYSBkZWZpbml0aW9uPC91bD4KKyA8L2xpPgorIDxwPlRvIGNvbmZpZ3VyZSB0aGUgdXNlIG9mIHRoaXMgYWN0aW9uIGluIHlvdXIKKyA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4gZmlsZSwgY3JlYXRlIGFuIGVudHJ5IGxpa2UgdGhpczo8L3A+CisKKyA8Y29kZT4KKyAgICZsdDthY3Rpb24gcGF0aD0iL3NhdmVTdWJzY3JpcHRpb24iCisgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24iCisgICAgICAgICAgIHBhcmFtZXRlcj0iZGVmIi8mZ3Q7CisgICAgICZsdDtmb3J3YXJkIG5hbWU9InN1Y2Nlc3MiICAgcGF0aD0iYW55dGhpbmciIC8vJmd0OworICAgICAmbHQ7Zm9yd2FyZCBuYW1lPSJlcnJvciIgICAgIHBhdGg9InBhdGgudG8uZXJyb3IucGFnZSIgLy8mZ3Q7CisgPC9jb2RlPgorCisgPHA+d2hpY2ggd2lsbCB1c2UgdGhlIHZhbHVlIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciBuYW1lZCAiZGVmIgorIHRvIHBpY2sgdGhlIGFwcHJvcHJpYXRlIGRlZmluaXRpb24gbmFtZS4KKyA8cD4gIFRoZSB2YWx1ZSBmb3Igc3VjY2VzcyBkb2Vzbid0IG1hdHRlci4gVGhlIGZvcndhcmQgd2lsbCBmb3J3YXJkIHRvCisgYXBwcm9wcmlhdGUgZGVmaW5pdGlvbi4KKyA8cD4gVGhlIHZhbHVlIGZvciBlcnJvciBzaG91bGQgZGVub3RlIGEgdmFsaWQganNwIHBhdGggb3IgZGVmaW5pdGlvbiBuYW1lLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+TmlhbGwgUGVtYmVydG9uIDxuaWFsbC5wZW1iZXJ0b25AYnRJbnRlcm5ldC5jb20+LCBDcmFpZyBSLiBNY0NsYW5haGFuLCBDZWRyaWMgRHVtb3VsaW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL0RlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwjbG9nIj5sb2c8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjQUNUSU9OX1NFUlZMRVRfS0VZIj5BQ1RJT05fU0VSVkxFVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjQVBQTElDQVRJT05fS0VZIj5BUFBMSUNBVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjREFUQV9TT1VSQ0VfS0VZIj5EQVRBX1NPVVJDRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFUlJPUl9LRVkiPkVSUk9SX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFWENFUFRJT05fS0VZIj5FWENFUFRJT05fS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUk1fQkVBTlNfS0VZIj5GT1JNX0JFQU5TX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JXQVJEU19LRVkiPkZPUldBUkRTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdfS0VZIj5NQVBQSU5HX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HU19LRVkiPk1BUFBJTkdTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFX0tFWSI+TUVTU0FHRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUVTU0FHRVNfS0VZIj5NRVNTQUdFU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTVVMVElQQVJUX0tFWSI+TVVMVElQQVJUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNQTFVHX0lOU19LRVkiPlBMVUdfSU5TX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNSRVFVRVNUX1BST0NFU1NPUl9LRVkiPlJFUVVFU1RfUFJPQ0VTU09SX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1NFUlZMRVRfS0VZIj5TRVJWTEVUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNUUkFOU0FDVElPTl9UT0tFTl9LRVkiPlRSQU5TQUNUSU9OX1RPS0VOX0tFWTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL0RlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwjRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24oKSI+RGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL0RlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwKKyB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL0RlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwjcHJpbnRFcnJvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YS5sYW5nLlN0cmluZykiPnByaW50RXJyb3I8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bXNnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2VuZXJhdGVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2VuZXJhdGVUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXREYXRhU291cmNlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXREYXRhU291cmNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldERhdGFTb3VyY2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPmdldERhdGFTb3VyY2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKCkiPmdldFJlc291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldFJlc291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPmdldFJlc291cmNlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRTZXJ2bGV0KCkiPmdldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNDYW5jZWxsZWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzQ2FuY2VsbGVkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzVG9rZW5WYWxpZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aXNUb2tlblZhbGlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzVG9rZW5WYWxpZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBib29sZWFuKSI+aXNUb2tlblZhbGlkPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNyZXNldFRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5yZXNldFRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVFcnJvcnMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycykiPnNhdmVFcnJvcnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZU1lc3NhZ2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcykiPnNhdmVNZXNzYWdlczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnNhdmVUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS51dGlsLkxvY2FsZSkiPnNldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+c2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCN0b0hleChieXRlW10pIj50b0hleDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJsb2ciPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2cgPEI+bG9nPC9CPjwvUFJFPgorPERMPgorPEREPkNvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJEZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitEZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkRlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitleGVjdXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+ZXhlY3V0ZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+Zm9ybTwvQ09ERT4gLSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSk8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgYXBwbGljYXRpb24gYnVzaW5lc3MgbG9naWMgdGhyb3dzCisgIGFuIGV4Y2VwdGlvbjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludEVycm9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorcHJpbnRFcnJvcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+cHJpbnRFcnJvcjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO21zZykKKyAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL05vT3BBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvTm9PcEFjdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvTm9PcEFjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0M2QyMmEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9Ob09wQWN0aW9uLmh0bWwKQEAgLTAsMCArMSwzMDggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDEgRURUIDIwMDMgLS0+Cis8VElUTEU+CitOb09wQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLk5vT3BBY3Rpb24sTm9PcEFjdGlvbiBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTm9PcEFjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Ob09wQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1JlbG9hZERlZmluaXRpb25zQWN0aW9uLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOb09wQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zPC9GT05UPgorPEJSPgorQ2xhc3MgTm9PcEFjdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbjwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLk5vT3BBY3Rpb248L0I+Cis8L1BSRT4KKzxIUj4KKzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBvLmEucy5hLkZvcndhcmRBY3Rpb24gaW5zdGVhZCB3aXRoIHRoZSBwYXJhbWV0ZXIgYXR0cmlidXRlOgorIDxjb2RlPgorICAgICZsdDthY3Rpb24gcGF0aD0iYVBhdGgiCisgICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5Gb3J3YXJkQWN0aW9uIgorICAgICAgICAgICAgICAgIHBhcmFtZXRlcj0idGlsZXMuZGVmLm5hbWUiIC8mZ3Q7CisgPC9jb2RlPjwvST4KKzxQPgorPERMPgorPERUPnB1YmxpYyBmaW5hbCBjbGFzcyA8Qj5Ob09wQWN0aW9uPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvREw+CisKKzxQPgorSW1wbGVtZW50YXRpb24gb2YgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBkb2VzIG5vdGhpbmcgYnV0IGZvcndhcmQgdG8KKyAic3VjY2VzcyIuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DZWRyaWMgRHVtb3VsaW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0FDVElPTl9TRVJWTEVUX0tFWSI+QUNUSU9OX1NFUlZMRVRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0FQUExJQ0FUSU9OX0tFWSI+QVBQTElDQVRJT05fS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0RBVEFfU09VUkNFX0tFWSI+REFUQV9TT1VSQ0VfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRVJST1JfS0VZIj5FUlJPUl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRVhDRVBUSU9OX0tFWSI+RVhDRVBUSU9OX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JNX0JFQU5TX0tFWSI+Rk9STV9CRUFOU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9SV0FSRFNfS0VZIj5GT1JXQVJEU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTE9DQUxFX0tFWSI+TE9DQUxFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HX0tFWSI+TUFQUElOR19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR1NfS0VZIj5NQVBQSU5HU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUVTU0FHRV9LRVkiPk1FU1NBR0VfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01FU1NBR0VTX0tFWSI+TUVTU0FHRVNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01VTFRJUEFSVF9LRVkiPk1VTFRJUEFSVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjUExVR19JTlNfS0VZIj5QTFVHX0lOU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjUkVRVUVTVF9QUk9DRVNTT1JfS0VZIj5SRVFVRVNUX1BST0NFU1NPUl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNTRVJWTEVUX0tFWSI+U0VSVkxFVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjVFJBTlNBQ1RJT05fVE9LRU5fS0VZIj5UUkFOU0FDVElPTl9UT0tFTl9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9Ob09wQWN0aW9uLmh0bWwjTm9PcEFjdGlvbigpIj5Ob09wQWN0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9Ob09wQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwKKyB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dlbmVyYXRlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdlbmVyYXRlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0RGF0YVNvdXJjZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0RGF0YVNvdXJjZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXREYXRhU291cmNlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXREYXRhU291cmNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcygpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2lzQ2FuY2VsbGVkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc0NhbmNlbGxlZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmlzVG9rZW5WYWxpZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgYm9vbGVhbikiPmlzVG9rZW5WYWxpZDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcmVzZXRUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVzZXRUb2tlbjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlRXJyb3JzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMpIj5zYXZlRXJyb3JzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVNZXNzYWdlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZXMpIj5zYXZlTWVzc2FnZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5zYXZlVG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0TG9jYWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEudXRpbC5Mb2NhbGUpIj5zZXRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjdG9IZXgoYnl0ZVtdKSI+dG9IZXg8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5vT3BBY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorTm9PcEFjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPk5vT3BBY3Rpb248L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitleGVjdXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+ZXhlY3V0ZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwKKyB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlPEREPjxDT0RFPmZvcm08L0NPREU+IC0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5FeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGFwcGxpY2F0aW9uIGJ1c2luZXNzIGxvZ2ljIHRocm93cworICBhbiBleGNlcHRpb248RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTm9PcEFjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL0RlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9SZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTm9PcEFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1JlbG9hZERlZmluaXRpb25zQWN0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9SZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiN2MyOTgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9SZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sCkBAIC0wLDAgKzEsMzAzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAxIEVEVCAyMDAzIC0tPgorPFRJVExFPgorUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb24sUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb24gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlJlbG9hZERlZmluaXRpb25zQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1JlbG9hZERlZmluaXRpb25zQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvTm9PcEFjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVGlsZXNBY3Rpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlbG9hZERlZmluaXRpb25zQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zPC9GT05UPgorPEJSPgorQ2xhc3MgUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb248L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb248L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5SZWxvYWREZWZpbml0aW9uc0FjdGlvbjwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5SZWxvYWREZWZpbml0aW9uc0FjdGlvbjwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0RMPgorCis8UD4KKzxwPkEgc3RhbmRhcmQgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBjYWxscyB0aGUKKyA8Y29kZT5yZWxvYWQoKTwvY29kZT4gbWV0aG9kIG9mIG91ciBjb250cm9sbGVyIHNlcnZsZXQgdG8KKyByZWxvYWQgaXRzIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gZnJvbSB0aGUgY29uZmlndXJhdGlvbgorIGZpbGVzICh3aGljaCBoYXZlIHByZXN1bWFibHkgYmVlbiB1cGRhdGVkKSBkeW5hbWljYWxseS48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuLCBDZWRyaWMgRHVtb3VsaW48L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0FDVElPTl9TRVJWTEVUX0tFWSI+QUNUSU9OX1NFUlZMRVRfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0FQUExJQ0FUSU9OX0tFWSI+QVBQTElDQVRJT05fS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0RBVEFfU09VUkNFX0tFWSI+REFUQV9TT1VSQ0VfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRVJST1JfS0VZIj5FUlJPUl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRVhDRVBUSU9OX0tFWSI+RVhDRVBUSU9OX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JNX0JFQU5TX0tFWSI+Rk9STV9CRUFOU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjRk9SV0FSRFNfS0VZIj5GT1JXQVJEU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTE9DQUxFX0tFWSI+TE9DQUxFX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HX0tFWSI+TUFQUElOR19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUFQUElOR1NfS0VZIj5NQVBQSU5HU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUVTU0FHRV9LRVkiPk1FU1NBR0VfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01FU1NBR0VTX0tFWSI+TUVTU0FHRVNfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01VTFRJUEFSVF9LRVkiPk1VTFRJUEFSVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjUExVR19JTlNfS0VZIj5QTFVHX0lOU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjUkVRVUVTVF9QUk9DRVNTT1JfS0VZIj5SRVFVRVNUX1BST0NFU1NPUl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNTRVJWTEVUX0tFWSI+U0VSVkxFVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjVFJBTlNBQ1RJT05fVE9LRU5fS0VZIj5UUkFOU0FDVElPTl9UT0tFTl9LRVk8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9SZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sI1JlbG9hZERlZmluaXRpb25zQWN0aW9uKCkiPlJlbG9hZERlZmluaXRpb25zQWN0aW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9SZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCksCisgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHRoZSBidXNpbmVzcyBsb2dpYy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZW5lcmF0ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZW5lcmF0ZVRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldERhdGFTb3VyY2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldERhdGFTb3VyY2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0RGF0YVNvdXJjZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0RGF0YVNvdXJjZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoKSI+Z2V0UmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0UmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0UmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFNlcnZsZXQoKSI+Z2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc0NhbmNlbGxlZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aXNDYW5jZWxsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc1Rva2VuVmFsaWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGJvb2xlYW4pIj5pc1Rva2VuVmFsaWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3Jlc2V0VG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0VG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZUVycm9ycyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzKSI+c2F2ZUVycm9yczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlTWVzc2FnZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzKSI+c2F2ZU1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+c2F2ZVRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLnV0aWwuTG9jYWxlKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3RvSGV4KGJ5dGVbXSkiPnRvSGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJSZWxvYWREZWZpbml0aW9uc0FjdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitSZWxvYWREZWZpbml0aW9uc0FjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJlbG9hZERlZmluaXRpb25zQWN0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitleGVjdXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+ZXhlY3V0ZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+Zm9ybTwvQ09ERT4gLSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSk8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgYXBwbGljYXRpb24gYnVzaW5lc3MgbG9naWMgdGhyb3dzCisgIGFuIGV4Y2VwdGlvbjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9SZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL05vT3BBY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1RpbGVzQWN0aW9uLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1RpbGVzQWN0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjMzcyNjQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sCkBAIC0wLDAgKzEsMzg0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAxIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVGlsZXNBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuVGlsZXNBY3Rpb24sVGlsZXNBY3Rpb24gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlRpbGVzQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1RpbGVzQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1ZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGlsZXNBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBUaWxlc0FjdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbjwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLlRpbGVzQWN0aW9uPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGFic3RyYWN0IGNsYXNzIDxCPlRpbGVzQWN0aW9uPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+QWN0aW9uPC9BPjwvREw+CisKKzxQPgorQmFzZSBjbGFzcyBmb3IgVGlsZXMgQWN0aW9ucy4KKyBUaGlzIGNsYXNzIGhhcyB0aGUgc2FtZSByb2xlIGFzIFN0cnV0cyBBY3Rpb24uIEl0IHByb3ZpZGVzIGEgbWV0aG9kIGV4ZWN1dGUoLi4uKQorIGNhbGxlZCB3aGVuIGFjdGlvbiBpcyBpbnZva2VkLiBUaGUgZGlmZmVyZW5jZSBpcywgdGhhdCB0aGUgZXhlY3V0ZSgpIG1ldGhvZCB0YWtlcworIGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyIDogdGlsZSBjb250ZXh0LgorIFRoaXMgY2xhc3MgZXh0ZW5kcyBTdHJ1dHMgQWN0aW9uLiBTdWJjbGFzc2VzIHNob3VsZCBvdmVycmlkZQorIGV4ZWN1dGUoQ29tcG9uZW50Q29udGV4dCAuLi4pIG1ldGhvZCBpbnN0ZWFkIG9mIFN0cnV0cworIGV4ZWN1dGUoQWN0aW9uTWFwcGluZyAuLi4pIG1ldGhvZC4KKyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGlzIGVuc3VyZWQgd2l0aCB0aGUgcGVyZm9ybShDb21wb25lbnRDb250ZXh0IC4uLikgbWV0aG9kLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjQUNUSU9OX1NFUlZMRVRfS0VZIj5BQ1RJT05fU0VSVkxFVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjQVBQTElDQVRJT05fS0VZIj5BUFBMSUNBVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjREFUQV9TT1VSQ0VfS0VZIj5EQVRBX1NPVVJDRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFUlJPUl9LRVkiPkVSUk9SX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFWENFUFRJT05fS0VZIj5FWENFUFRJT05fS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUk1fQkVBTlNfS0VZIj5GT1JNX0JFQU5TX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JXQVJEU19LRVkiPkZPUldBUkRTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdfS0VZIj5NQVBQSU5HX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HU19LRVkiPk1BUFBJTkdTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFX0tFWSI+TUVTU0FHRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUVTU0FHRVNfS0VZIj5NRVNTQUdFU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTVVMVElQQVJUX0tFWSI+TVVMVElQQVJUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNQTFVHX0lOU19LRVkiPlBMVUdfSU5TX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNSRVFVRVNUX1BST0NFU1NPUl9LRVkiPlJFUVVFU1RfUFJPQ0VTU09SX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1NFUlZMRVRfS0VZIj5TRVJWTEVUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNUUkFOU0FDVElPTl9UT0tFTl9LRVkiPlRSQU5TQUNUSU9OX1RPS0VOX0tFWTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1RpbGVzQWN0aW9uLmh0bWwjVGlsZXNBY3Rpb24oKSI+VGlsZXNBY3Rpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1RpbGVzQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO09yaWdpbmFsIFN0cnV0cyBBY3Rpb24ncyBtZXRob2QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVGlsZXNBY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiZuYnNwO2NvbnRleHQsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVGlsZXNBY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiZuYnNwO2NvbnRleHQsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSB0aGUgPGNvZGU+ZXhlY3V0ZSgpPC9jb2RlPiBtZXRob2QgaW5zdGVhZDwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZW5lcmF0ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZW5lcmF0ZVRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldERhdGFTb3VyY2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldERhdGFTb3VyY2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0RGF0YVNvdXJjZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0RGF0YVNvdXJjZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoKSI+Z2V0UmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0UmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0UmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFNlcnZsZXQoKSI+Z2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc0NhbmNlbGxlZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aXNDYW5jZWxsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc1Rva2VuVmFsaWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGJvb2xlYW4pIj5pc1Rva2VuVmFsaWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3Jlc2V0VG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0VG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZUVycm9ycyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzKSI+c2F2ZUVycm9yczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlTWVzc2FnZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzKSI+c2F2ZU1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+c2F2ZVRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLnV0aWwuTG9jYWxlKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3RvSGV4KGJ5dGVbXSkiPnRvSGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJUaWxlc0FjdGlvbigpIj48IS0tIC0tPjwvQT48SDM+CitUaWxlc0FjdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPlRpbGVzQWN0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitleGVjdXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+ZXhlY3V0ZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+T3JpZ2luYWwgU3RydXRzIEFjdGlvbidzIG1ldGhvZC4KKyBSZXRyaWV2ZSBjdXJyZW50IFRpbGUgY29udGV4dCBhbmQgY2FsbCBUaWxlc0FjdGlvbiBleGVjdXRlIG1ldGhvZC4KKyBEbyBub3Qgb3ZlcmxvYWQgdGhpcyBtZXRob2QgIQorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj5leGVjdXRlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlLjxERD48Q09ERT5mb3JtPC9DT0RFPiAtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KS48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nLjxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBhcHBsaWNhdGlvbiBidXNpbmVzcyBsb2dpYyB0aHJvd3MKKyAgYW4gZXhjZXB0aW9uPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImV4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPjwhLS0gLS0+PC9BPjxIMz4KK2V4ZWN1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPiA8Qj5leGVjdXRlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+Jm5ic3A7Y29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCksCisgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHRoZSBidXNpbmVzcyBsb2dpYy4KKyA8YnI+CisgT3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcHJvdmlkZSBmdW5jdGlvbmFsaXR5LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb250ZXh0PC9DT0RFPiAtIFRoZSBjdXJyZW50IFRpbGUgY29udGV4dCwgY29udGFpbmluZyBUaWxlIGF0dHJpYnV0ZXMuPEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZS48REQ+PENPREU+Zm9ybTwvQ09ERT4gLSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSkuPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZy48REQ+PENPREU+cmVzcG9uc2U8L0NPREU+IC0gVGhlIEhUVFAgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgYXBwbGljYXRpb24gYnVzaW5lc3MgbG9naWMgdGhyb3dzCisgIGFuIGV4Y2VwdGlvbjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitwZXJmb3JtPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+cGVyZm9ybTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiZuYnNwO2NvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4mbmJzcDtmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSkKKyAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSA8Y29kZT5leGVjdXRlKCk8L2NvZGU+IG1ldGhvZCBpbnN0ZWFkPC9JPgorPFA+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCisgUmV0dXJuIGFuIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIGRlc2NyaWJpbmcgd2hlcmUgYW5kIGhvdworIGNvbnRyb2wgc2hvdWxkIGJlIGZvcndhcmRlZCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlIHJlc3BvbnNlIGhhcworIGFscmVhZHkgYmVlbiBjb21wbGV0ZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbnRleHQ8L0NPREU+IC0gVGhlIGN1cnJlbnQgVGlsZSBjb250ZXh0LCBjb250YWluaW5nIFRpbGUgYXR0cmlidXRlcy48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlLjxERD48Q09ERT5mb3JtPC9DT0RFPiAtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KS48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nLjxERD48Q09ERT5yZXNwb25zZTwvQ09ERT4gLSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnM8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1RpbGVzQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1ZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGlsZXNBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9WaWV3RGVmaW5pdGlvbnNBY3Rpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1ZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjYjQ2YjUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9WaWV3RGVmaW5pdGlvbnNBY3Rpb24uaHRtbApAQCAtMCwwICsxLDMwMSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1ZpZXdEZWZpbml0aW9uc0FjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5WaWV3RGVmaW5pdGlvbnNBY3Rpb24sVmlld0RlZmluaXRpb25zQWN0aW9uIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJWaWV3RGVmaW5pdGlvbnNBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVmlld0RlZmluaXRpb25zQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVGlsZXNBY3Rpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbiI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9uczwvRk9OVD4KKzxCUj4KK0NsYXNzIFZpZXdEZWZpbml0aW9uc0FjdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbjwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLlZpZXdEZWZpbml0aW9uc0FjdGlvbjwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5WaWV3RGVmaW5pdGlvbnNBY3Rpb248L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sIj5BY3Rpb248L0E+PC9ETD4KKworPFA+Cis8cD5BbiA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IHdyaXRlcyB0aGUKKyBkZWZpbml0aW9ucyBvZiB0aGUgVGlsZXMgZmFjdG9yeS4KKyBVc2VmdWwgdG8gY2hlY2sgd2hhdCBpcyBlZmZlY3Rpdmx5IGxvYWRlZCBpbiBhCisgVGlsZXMgZmFjdG9yeQorPFA+CisKKzxQPgorPERMPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNlZHJpYyBEdW1vdWxpbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjQUNUSU9OX1NFUlZMRVRfS0VZIj5BQ1RJT05fU0VSVkxFVF9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjQVBQTElDQVRJT05fS0VZIj5BUFBMSUNBVElPTl9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjREFUQV9TT1VSQ0VfS0VZIj5EQVRBX1NPVVJDRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZGVmYXVsdExvY2FsZSI+ZGVmYXVsdExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFUlJPUl9LRVkiPkVSUk9SX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNFWENFUFRJT05fS0VZIj5FWENFUFRJT05fS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI0ZPUk1fQkVBTlNfS0VZIj5GT1JNX0JFQU5TX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNGT1JXQVJEU19LRVkiPkZPUldBUkRTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNMT0NBTEVfS0VZIj5MT0NBTEVfS0VZPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI01BUFBJTkdfS0VZIj5NQVBQSU5HX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNQVBQSU5HU19LRVkiPk1BUFBJTkdTX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNNRVNTQUdFX0tFWSI+TUVTU0FHRV9LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTUVTU0FHRVNfS0VZIj5NRVNTQUdFU19LRVk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjTVVMVElQQVJUX0tFWSI+TVVMVElQQVJUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNQTFVHX0lOU19LRVkiPlBMVUdfSU5TX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNSRVFVRVNUX1BST0NFU1NPUl9LRVkiPlJFUVVFU1RfUFJPQ0VTU09SX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI1NFUlZMRVRfS0VZIj5TRVJWTEVUX0tFWTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNUUkFOU0FDVElPTl9UT0tFTl9LRVkiPlRSQU5TQUNUSU9OX1RPS0VOX0tFWTwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1ZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sI1ZpZXdEZWZpbml0aW9uc0FjdGlvbigpIj5WaWV3RGVmaW5pdGlvbnNBY3Rpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1ZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCksCisgd2l0aCBwcm92aXNpb24gZm9yIGhhbmRsaW5nIGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHRoZSBidXNpbmVzcyBsb2dpYy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZW5lcmF0ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZW5lcmF0ZVRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldERhdGFTb3VyY2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldERhdGFTb3VyY2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0RGF0YVNvdXJjZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0RGF0YVNvdXJjZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldExvY2FsZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoKSI+Z2V0UmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0UmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFJlc291cmNlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0UmVzb3VyY2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2dldFNlcnZsZXQoKSI+Z2V0U2VydmxldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNpc0NhbmNlbGxlZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aXNDYW5jZWxsZWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5pc1Rva2VuVmFsaWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGJvb2xlYW4pIj5pc1Rva2VuVmFsaWQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjcGVyZm9ybShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+cGVyZm9ybTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVzcG9uc2UpIj5wZXJmb3JtPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3Jlc2V0VG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0VG9rZW48L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjc2F2ZUVycm9ycyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzKSI+c2F2ZUVycm9yczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNzYXZlTWVzc2FnZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzKSI+c2F2ZU1lc3NhZ2VzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NhdmVUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+c2F2ZVRva2VuPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLnV0aWwuTG9jYWxlKSI+c2V0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI3RvSGV4KGJ5dGVbXSkiPnRvSGV4PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJWaWV3RGVmaW5pdGlvbnNBY3Rpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorVmlld0RlZmluaXRpb25zQWN0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Vmlld0RlZmluaXRpb25zQWN0aW9uPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJleGVjdXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UpIj48IS0tIC0tPjwvQT48SDM+CitleGVjdXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmQuaHRtbCI+QWN0aW9uRm9yd2FyZDwvQT4gPEI+ZXhlY3V0ZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKQorICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLAorIHdpdGggcHJvdmlzaW9uIGZvciBoYW5kbGluZyBleGNlcHRpb25zIHRocm93biBieSB0aGUgYnVzaW5lc3MgbG9naWMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbi5odG1sI2V4ZWN1dGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPmV4ZWN1dGU8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPkFjdGlvbjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2U8REQ+PENPREU+Zm9ybTwvQ09ERT4gLSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSk8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPnJlc3BvbnNlPC9DT0RFPiAtIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5sYW5nLkV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgYXBwbGljYXRpb24gYnVzaW5lc3MgbG9naWMgdGhyb3dzCisgIGFuIGV4Y2VwdGlvbjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9WaWV3RGVmaW5pdGlvbnNBY3Rpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVmlld0RlZmluaXRpb25zQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvY2xhc3MtdXNlL0RlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9jbGFzcy11c2UvRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMThiZjJiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvY2xhc3MtdXNlL0RlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb248L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL0RlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL2NsYXNzLXVzZS9Ob09wQWN0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9jbGFzcy11c2UvTm9PcEFjdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyMTA1NzQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9jbGFzcy11c2UvTm9PcEFjdGlvbi5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLk5vT3BBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5Ob09wQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL05vT3BBY3Rpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTm9PcEFjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuTm9PcEFjdGlvbjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLk5vT3BBY3Rpb24KKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9Ob09wQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5vT3BBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvY2xhc3MtdXNlL1JlbG9hZERlZmluaXRpb25zQWN0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9jbGFzcy11c2UvUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjVhNTkyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvY2xhc3MtdXNlL1JlbG9hZERlZmluaXRpb25zQWN0aW9uLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5SZWxvYWREZWZpbml0aW9uc0FjdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9SZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb248L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5SZWxvYWREZWZpbml0aW9uc0FjdGlvbgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1JlbG9hZERlZmluaXRpb25zQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlbG9hZERlZmluaXRpb25zQWN0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL2NsYXNzLXVzZS9UaWxlc0FjdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvY2xhc3MtdXNlL1RpbGVzQWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQzODczYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL2NsYXNzLXVzZS9UaWxlc0FjdGlvbi5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLlRpbGVzQWN0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuVGlsZXNBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVGlsZXNBY3Rpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGlsZXNBY3Rpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLlRpbGVzQWN0aW9uPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuVGlsZXNBY3Rpb24KKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUaWxlc0FjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9jbGFzcy11c2UvVmlld0RlZmluaXRpb25zQWN0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9jbGFzcy11c2UvVmlld0RlZmluaXRpb25zQWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk0OTE5NQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL2NsYXNzLXVzZS9WaWV3RGVmaW5pdGlvbnNBY3Rpb24uaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5WaWV3RGVmaW5pdGlvbnNBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5WaWV3RGVmaW5pdGlvbnNBY3Rpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVmlld0RlZmluaXRpb25zQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuVmlld0RlZmluaXRpb25zQWN0aW9uPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuVmlld0RlZmluaXRpb25zQWN0aW9uCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvVmlld0RlZmluaXRpb25zQWN0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9wYWNrYWdlLWZyYW1lLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9wYWNrYWdlLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBjZWY2ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL3BhY2thZ2UtZnJhbWUuaHRtbApAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucyBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+Cis8Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lVGl0bGVGb250Ij4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9uczwvQT48L0ZPTlQ+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitDbGFzc2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iRGVmaW5pdGlvbkRpc3BhdGNoZXJBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9Ik5vT3BBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Ob09wQWN0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0iUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZWxvYWREZWZpbml0aW9uc0FjdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9IlRpbGVzQWN0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VGlsZXNBY3Rpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJWaWV3RGVmaW5pdGlvbnNBY3Rpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5WaWV3RGVmaW5pdGlvbnNBY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmMmI1YTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbApAQCAtMCwwICsxLDE2NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucworPC9IMj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJEZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi5odG1sIj5EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbjwvQT48L0I+PC9URD4KKzxURD5BbiA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGRpc3BhdGNoZXMgdG8gYSBUaWxlcyBEZWZpbml0aW9uCisgdGhhdCBpcyBuYW1lZCBieSB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgd2hvc2UgbmFtZSBpcyBzcGVjaWZpZWQKKyBieSB0aGUgPGNvZGU+cGFyYW1ldGVyPC9jb2RlPiBwcm9wZXJ0eSBvZiB0aGUgY29ycmVzcG9uZGluZworIEFjdGlvbk1hcHBpbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJOb09wQWN0aW9uLmh0bWwiPk5vT3BBY3Rpb248L0E+PC9CPjwvVEQ+Cis8VEQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIG8uYS5zLmEuRm9yd2FyZEFjdGlvbiBpbnN0ZWFkIHdpdGggdGhlIHBhcmFtZXRlciBhdHRyaWJ1dGU6CisgPGNvZGU+CisgICAgJmx0O2FjdGlvbiBwYXRoPSJhUGF0aCIKKyAgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkZvcndhcmRBY3Rpb24iCisgICAgICAgICAgICAgICAgcGFyYW1ldGVyPSJ0aWxlcy5kZWYubmFtZSIgLyZndDsKKyA8L2NvZGU+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb24uaHRtbCI+UmVsb2FkRGVmaW5pdGlvbnNBY3Rpb248L0E+PC9CPjwvVEQ+Cis8VEQ+QSBzdGFuZGFyZCA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IGNhbGxzIHRoZQorIDxjb2RlPnJlbG9hZCgpPC9jb2RlPiBtZXRob2Qgb2Ygb3VyIGNvbnRyb2xsZXIgc2VydmxldCB0bworIHJlbG9hZCBpdHMgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjb25maWd1cmF0aW9uCisgZmlsZXMgKHdoaWNoIGhhdmUgcHJlc3VtYWJseSBiZWVuIHVwZGF0ZWQpIGR5bmFtaWNhbGx5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iVGlsZXNBY3Rpb24uaHRtbCI+VGlsZXNBY3Rpb248L0E+PC9CPjwvVEQ+Cis8VEQ+QmFzZSBjbGFzcyBmb3IgVGlsZXMgQWN0aW9ucy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sIj5WaWV3RGVmaW5pdGlvbnNBY3Rpb248L0E+PC9CPjwvVEQ+Cis8VEQ+QW4gPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCB3cml0ZXMgdGhlCisgZGVmaW5pdGlvbnMgb2YgdGhlIFRpbGVzIGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9wYWNrYWdlLXRyZWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1NzZmZDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9wYWNrYWdlLXRyZWUuaHRtbApAQCAtMCwwICsxLDEzNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+UFJFVjwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+CitIaWVyYXJjaHkgRm9yIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucworPC9IMj4KKzwvQ0VOVEVSPgorPERMPgorPERUPjxCPlBhY2thZ2UgSGllcmFyY2hpZXM6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy10cmVlLmh0bWwiPkFsbCBQYWNrYWdlczwvQT48L0RMPgorPEhSPgorPEgyPgorQ2xhc3MgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLk9iamVjdDxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPjxCPkFjdGlvbjwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL0RlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwiPjxCPkRlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvTm9PcEFjdGlvbi5odG1sIj48Qj5Ob09wQWN0aW9uPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvUmVsb2FkRGVmaW5pdGlvbnNBY3Rpb24uaHRtbCI+PEI+UmVsb2FkRGVmaW5pdGlvbnNBY3Rpb248L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sIj48Qj5UaWxlc0FjdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1ZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sIj48Qj5WaWV3RGVmaW5pdGlvbnNBY3Rpb248L0I+PC9BPjwvVUw+Cis8L1VMPgorPC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvcGFja2FnZS11c2UuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL3BhY2thZ2UtdXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Y1YjY0ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL3BhY2thZ2UtdXNlLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIFBhY2thZ2U8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9uczwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3YjVhYzcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbApAQCAtMCwwICsxLDM4NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK01lbnVJdGVtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucy5NZW51SXRlbSxNZW51SXRlbSBpbnRlcmZhY2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik1lbnVJdGVtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL01lbnVJdGVtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWVudUl0ZW0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zPC9GT05UPgorPEJSPgorSW50ZXJmYWNlIE1lbnVJdGVtPC9IMj4KKzxETD4KKzxEVD48Qj5BbGwgU3VwZXJpbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+QWxsIEtub3duIEltcGxlbWVudGluZyBDbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwiPlNpbXBsZU1lbnVJdGVtPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBpbnRlcmZhY2UgPEI+TWVudUl0ZW08L0I+PERUPmV4dGVuZHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0ludGVyZmFjZSBmb3IgTWVudUl0ZW1zLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCI+PENPREU+U2ltcGxlTWVudUl0ZW08L0NPREU+PC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwjZ2V0SWNvbigpIj5nZXRJY29uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGljb24gcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCNnZXRMaW5rKCkiPmdldExpbms8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgbGluayBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sI2dldFRvb2x0aXAoKSI+Z2V0VG9vbHRpcDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0b29sdGlwIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdmFsdWUgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCNzZXRJY29uKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJY29uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xpbmspPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgaWNvbiBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sI3NldExpbmsoamF2YS5sYW5nLlN0cmluZykiPnNldExpbms8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bGluayk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBsaW5rIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwjc2V0VG9vbHRpcChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VG9vbHRpcDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsaW5rKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRvb2x0aXAgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdmFsdWUgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJzZXRWYWx1ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsdWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbHVlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHZhbHVlIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VmFsdWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdmFsdWUgcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldExpbmsoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldExpbms8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldExpbms8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsaW5rKTwvUFJFPgorPERMPgorPEREPlNldCBsaW5rIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRMaW5rKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExpbms8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldExpbms8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgbGluayBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SWNvbihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SWNvbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SWNvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xpbmspPC9QUkU+Cis8REw+Cis8REQ+U2V0IGljb24gcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEljb24oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SWNvbjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SWNvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCBpY29uIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRUb29sdGlwKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRUb29sdGlwPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRUb29sdGlwPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bGluayk8L1BSRT4KKzxETD4KKzxERD5TZXQgdG9vbHRpcCBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VG9vbHRpcCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUb29sdGlwPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRUb29sdGlwPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRvb2x0aXAgcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL01lbnVJdGVtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWVudUl0ZW0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmOWJkZjQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbApAQCAtMCwwICsxLDUzNiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1NpbXBsZU1lbnVJdGVtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucy5TaW1wbGVNZW51SXRlbSxTaW1wbGVNZW51SXRlbSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iU2ltcGxlTWVudUl0ZW0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvU2ltcGxlTWVudUl0ZW0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTaW1wbGVNZW51SXRlbS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnM8L0ZPTlQ+Cis8QlI+CitDbGFzcyBTaW1wbGVNZW51SXRlbTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLlNpbXBsZU1lbnVJdGVtPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCI+TWVudUl0ZW08L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5TaW1wbGVNZW51SXRlbTwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCI+TWVudUl0ZW08L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorQSBNZW51SXRlbSBpbXBsZW1lbnRhdGlvbi4KKyBVc2VkIHRvIHJlYWQgbWVudSBpdGVtcyBpbiBkZWZpbml0aW9ucy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLlNpbXBsZU1lbnVJdGVtIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwjaWNvbiI+aWNvbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwjbGluayI+bGluazwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwjdG9vbHRpcCI+dG9vbHRpcDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCNTaW1wbGVNZW51SXRlbSgpIj5TaW1wbGVNZW51SXRlbTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCNnZXRJY29uKCkiPmdldEljb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgaWNvbiBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sI2dldExpbmsoKSI+Z2V0TGluazwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBsaW5rIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwjZ2V0VG9vbHRpcCgpIj5nZXRUb29sdGlwPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRvb2x0aXAgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB2YWx1ZSBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sI3NldEljb24oamF2YS5sYW5nLlN0cmluZykiPnNldEljb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aWNvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBpY29uIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwjc2V0TGluayhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TGluazwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsaW5rKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGxpbmsgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCNzZXRUb29sdGlwKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUb29sdGlwPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Rvb2x0aXApPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdG9vbHRpcCBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB2YWx1ZSBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGluayI+PCEtLSAtLT48L0E+PEgzPgorbGluazwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPmxpbms8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaWNvbiI+PCEtLSAtLT48L0E+PEgzPgoraWNvbjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPmljb248L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9vbHRpcCI+PCEtLSAtLT48L0E+PEgzPgordG9vbHRpcDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvb2x0aXA8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlNpbXBsZU1lbnVJdGVtKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1NpbXBsZU1lbnVJdGVtPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+U2ltcGxlTWVudUl0ZW08L0I+KCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3Rvci4KKzxQPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ic2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWx1ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldCB2YWx1ZSBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sIj5NZW51SXRlbTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0VmFsdWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdmFsdWUgcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sIj5NZW51SXRlbTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMaW5rKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRMaW5rPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRMaW5rPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bGluayk8L1BSRT4KKzxETD4KKzxERD5TZXQgbGluayBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sI3NldExpbmsoamF2YS5sYW5nLlN0cmluZykiPnNldExpbms8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCI+TWVudUl0ZW08L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TGluaygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMaW5rPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRMaW5rPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IGxpbmsgcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCNnZXRMaW5rKCkiPmdldExpbms8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCI+TWVudUl0ZW08L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0SWNvbihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SWNvbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0SWNvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ljb24pPC9QUkU+Cis8REw+Cis8REQ+U2V0IGljb24gcHJvcGVydHkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCNzZXRJY29uKGphdmEubGFuZy5TdHJpbmcpIj5zZXRJY29uPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwiPk1lbnVJdGVtPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEljb24oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SWNvbjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0SWNvbjwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCBpY29uIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwjZ2V0SWNvbigpIj5nZXRJY29uPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwiPk1lbnVJdGVtPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFRvb2x0aXAoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFRvb2x0aXA8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFRvb2x0aXA8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt0b29sdGlwKTwvUFJFPgorPERMPgorPEREPlNldCB0b29sdGlwIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwjc2V0VG9vbHRpcChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VG9vbHRpcDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sIj5NZW51SXRlbTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUb29sdGlwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFRvb2x0aXA8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFRvb2x0aXA8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdG9vbHRpcCBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sI2dldFRvb2x0aXAoKSI+Z2V0VG9vbHRpcDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sIj5NZW51SXRlbTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0b1N0cmluZygpIj48IS0tIC0tPjwvQT48SDM+Cit0b1N0cmluZzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+dG9TdHJpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gU3RyaW5nIHJlcHJlc2VudGF0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnRvU3RyaW5nPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvU2ltcGxlTWVudUl0ZW0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTaW1wbGVNZW51SXRlbS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9jbGFzcy11c2UvTWVudUl0ZW0uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9jbGFzcy11c2UvTWVudUl0ZW0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmM3ZTE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL2NsYXNzLXVzZS9NZW51SXRlbS5odG1sCkBAIC0wLDAgKzEsMTYxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuTWVudUl0ZW0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgSW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLk1lbnVJdGVtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZW51SXRlbS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIEludGVyZmFjZTxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucy5NZW51SXRlbTwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwiPk1lbnVJdGVtPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnM8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCI+TWVudUl0ZW08L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFuczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnM8L0E+IHRoYXQgaW1wbGVtZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwiPk1lbnVJdGVtPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCI+U2ltcGxlTWVudUl0ZW08L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBNZW51SXRlbSBpbXBsZW1lbnRhdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWVudUl0ZW0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL2NsYXNzLXVzZS9TaW1wbGVNZW51SXRlbS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL2NsYXNzLXVzZS9TaW1wbGVNZW51SXRlbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzN2IzM2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvY2xhc3MtdXNlL1NpbXBsZU1lbnVJdGVtLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLlNpbXBsZU1lbnVJdGVtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLlNpbXBsZU1lbnVJdGVtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTaW1wbGVNZW51SXRlbS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLlNpbXBsZU1lbnVJdGVtPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLlNpbXBsZU1lbnVJdGVtCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlNpbXBsZU1lbnVJdGVtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9wYWNrYWdlLWZyYW1lLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvcGFja2FnZS1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwNzhlNGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvcGFja2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnM8L0E+PC9GT05UPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorSW50ZXJmYWNlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9Ik1lbnVJdGVtLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+TWVudUl0ZW08L0k+PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKworPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorQ2xhc3NlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9IlNpbXBsZU1lbnVJdGVtLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+U2ltcGxlTWVudUl0ZW08L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZkYzQyYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9wYWNrYWdlLXN1bW1hcnkuaHRtbApAQCAtMCwwICsxLDE1MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucyBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zCis8L0gyPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5JbnRlcmZhY2UgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJNZW51SXRlbS5odG1sIj48ST5NZW51SXRlbTwvST48L0E+PC9CPjwvVEQ+Cis8VEQ+SW50ZXJmYWNlIGZvciBNZW51SXRlbXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlNpbXBsZU1lbnVJdGVtLmh0bWwiPlNpbXBsZU1lbnVJdGVtPC9BPjwvQj48L1REPgorPFREPkEgTWVudUl0ZW0gaW1wbGVtZW50YXRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL3BhY2thZ2UtdHJlZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyOGRlNjEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvcGFja2FnZS10cmVlLmh0bWwKQEAgLTAsMCArMSwxNDIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucyBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorSGllcmFyY2h5IEZvciBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXRyZWUuaHRtbCI+QWxsIFBhY2thZ2VzPC9BPjwvREw+Cis8SFI+Cis8SDI+CitDbGFzcyBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuT2JqZWN0PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uaHRtbCI+PEI+U2ltcGxlTWVudUl0ZW08L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9NZW51SXRlbS5odG1sIj5NZW51SXRlbTwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPC9VTD4KKzwvVUw+Cis8SDI+CitJbnRlcmZhY2UgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIGphdmEuaW8uU2VyaWFsaXphYmxlPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwiPjxCPk1lbnVJdGVtPC9CPjwvQT48L1VMPgorPC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+UFJFVjwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9wYWNrYWdlLXVzZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL3BhY2thZ2UtdXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODhjZGExZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9wYWNrYWdlLXVzZS5odG1sCkBAIC0wLDAgKzEsMTUxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIFBhY2thZ2U8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnM8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFuczwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnM8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL2NsYXNzLXVzZS9NZW51SXRlbS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zIj48Qj5NZW51SXRlbTwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbnRlcmZhY2UgZm9yIE1lbnVJdGVtcy48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkyYTliNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5BY3Rpb25Db21wb25lbnRTZXJ2bGV0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkFjdGlvbkNvbXBvbmVudFNlcnZsZXQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkFjdGlvbkNvbXBvbmVudFNlcnZsZXQ8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQWN0aW9uQ29tcG9uZW50U2VydmxldAorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFjdGlvbkNvbXBvbmVudFNlcnZsZXQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9BY3Rpb25Db250cm9sbGVyLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0FjdGlvbkNvbnRyb2xsZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDQ2ZDI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9BY3Rpb25Db250cm9sbGVyLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkFjdGlvbkNvbnRyb2xsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQWN0aW9uQ29udHJvbGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29udHJvbGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBY3Rpb25Db250cm9sbGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQWN0aW9uQ29udHJvbGxlcjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5BY3Rpb25Db250cm9sbGVyCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbnRyb2xsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQWN0aW9uQ29udHJvbGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0NzA5ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbApAQCAtMCwwICsxLDIyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgSW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkF0dHJpYnV0ZURlZmluaXRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgSW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkF0dHJpYnV0ZURlZmluaXRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIEludGVyZmFjZTxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5BdHRyaWJ1dGVEZWZpbml0aW9uPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sIj5BdHRyaWJ1dGVEZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQj48L0E+PC9URD4KKzxURD4gICAgIFRoZSAic3RydXRzLXRpbGVzIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbgorY3JlYXRpbmcgZHluYW1pYyByZXVzYWJsZSBjb21wb25lbnRzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQj48L0E+PC9URD4KKzxURD48ZGl2IGNsYXNzPSJtYWluQ29udGVudCI+CisgICAgVGhlIFRpbGVzIHRhZ2xpYiBhbmQgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyB3ZWIgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSAKKyAgICBwaWVjZXMgb2YgcGFnZXMsIGNhbGxlZCBUaWxlcy4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sIj5BdHRyaWJ1dGVEZWZpbml0aW9uPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sIj5BdHRyaWJ1dGVEZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5JbnNlcnRUYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzVHlwZWRBdHRyaWJ1dGUob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQXR0cmlidXRlRGVmaW5pdGlvbikiPnByb2Nlc3NUeXBlZEF0dHJpYnV0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCI+QXR0cmlidXRlRGVmaW5pdGlvbjwvQT4mbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Byb2Nlc3MgdHlwZWQgYXR0cmlidXRlIGFjY29yZGluZyB0byBpdHMgdHlwZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwiPkF0dHJpYnV0ZURlZmluaXRpb248L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHRoYXQgaW1wbGVtZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCI+QXR0cmlidXRlRGVmaW5pdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25BdHRyaWJ1dGUuaHRtbCI+RGVmaW5pdGlvbkF0dHJpYnV0ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdHRyaWJ1dGUgcmVwcmVzZW50aW5nIGEgQ29tcG9uZW50IERlZmluaXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25OYW1lQXR0cmlidXRlLmh0bWwiPkRlZmluaXRpb25OYW1lQXR0cmlidXRlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBvbmVudCBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RpcmVjdFN0cmluZ0F0dHJpYnV0ZS5odG1sIj5EaXJlY3RTdHJpbmdBdHRyaWJ1dGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcG9uZW50IGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvUGF0aEF0dHJpYnV0ZS5odG1sIj5QYXRoQXR0cmlidXRlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBvbmVudCBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwiPlVudHlwcGVkQXR0cmlidXRlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbW1vbiBpbXBsZW1lbnRhdGlvbiBvZiBhdHRyaWJ1dGUgZGVmaW5pdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvQ29tcG9uZW50Q29udGV4dC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9Db21wb25lbnRDb250ZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkwMmUzZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvQ29tcG9uZW50Q29udGV4dC5odG1sCkBAIC0wLDAgKzEsMzMzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29tcG9uZW50Q29udGV4dC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQ8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9CPjwvQT48L1REPgorPFREPiAgICAgVGhlICJzdHJ1dHMtdGlsZXMiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluCitjcmVhdGluZyBkeW5hbWljIHJldXNhYmxlIGNvbXBvbmVudHMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvQT48L1REPgorPFREPjxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnM8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+SW5zZXJ0VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjY2FjaGVkQ3VycmVudENvbnRleHQiPmNhY2hlZEN1cnJlbnRDb250ZXh0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0N1cnJlbnQgY29tcG9uZW50IGNvbnRleHQ8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+SW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sI2N1cnJlbnRDb250ZXh0Ij5jdXJyZW50Q29udGV4dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+SW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sI3N1YkNvbXBDb250ZXh0Ij5zdWJDb21wQ29udGV4dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+SW5zZXJ0VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwjZ2V0Q3VycmVudENvbnRleHQoKSI+Z2V0Q3VycmVudENvbnRleHQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgY3VycmVudCBjb21wb25lbnQgY29udGV4dC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29tcG9uZW50Q29udGV4dC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sI2dldENvbnRleHQoamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPmdldENvbnRleHQ8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBjb21wb25lbnQgY29udGV4dCBmcm9tIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29udHJvbGxlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5wZXJmb3JtPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiZuYnNwO3RpbGVDb250ZXh0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2UmbmJzcDtyZXNwb25zZSwKKyAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TWV0aG9kIGFzc29jaWF0ZWQgdG8gYSB0aWxlIGFuZCBjYWxsZWQgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSB0aWxlIGlzIGluY2x1ZGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkNvbnRyb2xsZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbnRyb2xsZXIuaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+cGVyZm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4mbmJzcDt0aWxlQ29udGV4dCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01ldGhvZCBhc3NvY2lhdGVkIHRvIGEgdGlsZSBhbmQgY2FsbGVkIGltbWVkaWF0ZWx5IGJlZm9yZSB0aWxlIGlzIGluY2x1ZGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbXBvbmVudENvbnRleHQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCNzZXRDb250ZXh0KG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj5zZXRDb250ZXh0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiZuYnNwO2NvbnRleHQsCisgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U3RvcmUgY29tcG9uZW50IGNvbnRleHQgaW50byByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlVybENvbnRyb2xsZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VybENvbnRyb2xsZXIuaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+cGVyZm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4mbmJzcDt0aWxlQ29udGV4dCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01ldGhvZCBhc3NvY2lhdGVkIHRvIGEgdGlsZSBhbmQgY2FsbGVkIGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgdGlsZSBpcyBpbmNsdWRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db250cm9sbGVyU3VwcG9ydC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlclN1cHBvcnQuaHRtbCNwZXJmb3JtKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+cGVyZm9ybTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4mbmJzcDt0aWxlQ29udGV4dCwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UsCisgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01ldGhvZCBhc3NvY2lhdGVkIHRvIGEgdGlsZSBhbmQgY2FsbGVkIGltbWVkaWF0ZWx5IGJlZm9yZSB0aWxlIGlzIGluY2x1ZGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnM8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPkFjdGlvbkZvcndhcmQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlRpbGVzQWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1RpbGVzQWN0aW9uLmh0bWwjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0sIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlKSI+ZXhlY3V0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCI+Q29tcG9uZW50Q29udGV4dDwvQT4mbmJzcDtjb250ZXh0LAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+Jm5ic3A7Zm9ybSwKKyAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlJm5ic3A7cmVzcG9uc2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0IGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KSwKKyB3aXRoIHByb3Zpc2lvbiBmb3IgaGFuZGxpbmcgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIGJ1c2luZXNzIGxvZ2ljLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZC5odG1sIj5BY3Rpb25Gb3J3YXJkPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc0FjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sI3BlcmZvcm0ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSkiPnBlcmZvcm08L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPkNvbXBvbmVudENvbnRleHQ8L0E+Jm5ic3A7Y29udGV4dCwKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5BY3Rpb25Gb3JtPC9BPiZuYnNwO2Zvcm0sCisgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSZuYnNwO3Jlc3BvbnNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSA8Y29kZT5leGVjdXRlKCk8L2NvZGU+IG1ldGhvZCBpbnN0ZWFkPC9JPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbXBvbmVudENvbnRleHQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9Db21wb25lbnREZWZpbml0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0NvbXBvbmVudERlZmluaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODBlM2YyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9Db21wb25lbnREZWZpbml0aW9uLmh0bWwKQEAgLTAsMCArMSw0MzggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb21wb25lbnREZWZpbml0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbjwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0I+PC9BPjwvVEQ+Cis8VEQ+ICAgICBUaGUgInN0cnV0cy10aWxlcyIgdGFnIGxpYnJhcnkgY29udGFpbnMgdGFncyB0aGF0IGFyZSB1c2VmdWwgaW4KK2NyZWF0aW5nIGR5bmFtaWMgcmV1c2FibGUgY29tcG9uZW50cy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbCI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWw8L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvQT48L1REPgorPFREPjxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+RmllbGRzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9BPiBkZWNsYXJlZCBhcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGVmaW5pdGlvblRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCNkZWZpbml0aW9uIj5kZWZpbml0aW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RlbXBsYXRlIGRlZmluaXRpb248L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5UYWdIYW5kbGVyLmh0bWwiPkluc2VydFRhZy5UYWdIYW5kbGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5JbnNlcnRUYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNwcm9jZXNzRGVmaW5pdGlvbihvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uKSI+cHJvY2Vzc0RlZmluaXRpb248L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+Jm5ic3A7ZGVmaW5pdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0VuZCBvZiBQcm9jZXNzIHRhZyBhdHRyaWJ1dGUgImRlZmluaXRpb24iLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbDwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UYWdVdGlscy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuaHRtbCNnZXRDb21wb25lbnREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+Z2V0Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGNvbXBvbmVudCBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZGVmaW5pdGlvbk5hbWUsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7R2V0IGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGVmaW5pdGlvbnNVdGlsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtkZWZpbml0aW9uTmFtZSwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Q09ERT5UaWxlc1V0aWwuZ2V0RGVmaW5pdGlvbihTdHJpbmcsIFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2dldEFjdGlvbkRlZmluaXRpb24oamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPmdldEFjdGlvbkRlZmluaXRpb248L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0dldCBEZWZpbml0aW9uIHN0b3JlZCBpbiBqc3AgY29udGV4dCBieSBhbiBhY3Rpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGVmaW5pdGlvbnNVdGlsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNzZXRBY3Rpb25EZWZpbml0aW9uKGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb24pIj5zZXRBY3Rpb25EZWZpbml0aW9uPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4mbmJzcDtkZWZpbml0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7U3RvcmUgZGVmaW5pdGlvbiBpbiBqc3AgY29udGV4dC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI3JlbW92ZUFjdGlvbkRlZmluaXRpb24oamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbikiPnJlbW92ZUFjdGlvbkRlZmluaXRpb248L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiZuYnNwO2RlZmluaXRpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZW1vdmUgRGVmaW5pdGlvbiBzdG9yZWQgaW4ganNwIGNvbnRleHQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q29uc3RydWN0b3JzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCNDb21wb25lbnRDb250ZXh0KG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb24pIj5Db21wb25lbnRDb250ZXh0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiZuYnNwO2luc3RhbmNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudENvbnRleHQuaHRtbCNDb21wb25lbnRDb250ZXh0KGphdmEudXRpbC5NYXApIj48Q09ERT5Db21wb25lbnRDb250ZXh0LkNvbXBvbmVudENvbnRleHQoTWFwIGF0dHJpYnV0ZXMpPC9DT0RFPjwvQT4gaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjQ29tcG9uZW50RGVmaW5pdGlvbihvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uKSI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4mbmJzcDtkZWZpbml0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29weSBDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCByZXF1ZXN0ZWQgZGVmaW5pdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2RlZmluaXRpb25OYW1lLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCI+WG1sRGVmaW5pdGlvbjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIGRlZmluaXRpb24gcmVhZCBmcm9tIGFuIFhNTCBkZWZpbml0aW9ucyBmaWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5GYWN0b3J5U2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRlZmluaXRpb25zRmFjdG9yeS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjcHV0RGVmaW5pdGlvbihvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uKSI+cHV0RGVmaW5pdGlvbjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4mbmJzcDtkZWZpbml0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHV0IGRlZmluaXRpb24gaW4gc2V0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbXBvbmVudERlZmluaXRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWE1MTEwNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwKQEAgLTAsMCArMSwzMjggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIEludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgSW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIEludGVyZmFjZTxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0I+PC9BPjwvVEQ+Cis8VEQ+PGRpdiBjbGFzcz0ibWFpbkNvbnRlbnQiPgorICAgIFRoZSBUaWxlcyB0YWdsaWIgYW5kIGZyYW1ld29yayBhbGxvd3MgYnVpbGRpbmcgd2ViIHBhZ2VzIGJ5IGFzc2VtYmxpbmcgcmV1c2FibGUgCisgICAgcGllY2VzIG9mIHBhZ2VzLCBjYWxsZWQgVGlsZXMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbjwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI3NldERlZmluaXRpb25zRmFjdG9yeShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnksIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5zZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiZuYnNwO2ZhY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+c2luY2UgMjAwMjA3MDguIFJlcGxhY2VkIGJ5IG1ha2VGYWN0b3J5QWNjZXNzaWJsZSgpPC9JPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uPC9BPiB0aGF0IGltcGxlbWVudCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSByZWxvYWRhYmxlIGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+RmllbGRzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0E+IGRlY2xhcmVkIGFzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sI2ZhY3RvcnkiPmZhY3Rvcnk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHVuZGVybHlpbmcgZmFjdG9yeTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZmFjdG9yeSI+ZmFjdG9yeTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVhbCBmYWN0b3J5IGluc3RhbmNlPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjZ2V0SW50ZXJuYWxGYWN0b3J5KCkiPmdldEludGVybmFsRmFjdG9yeTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBpbnRlcm5hbCBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjY3JlYXRlRmFjdG9yeUluc3RhbmNlKGphdmEubGFuZy5TdHJpbmcpIj5jcmVhdGVGYWN0b3J5SW5zdGFuY2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIERlZmluaXRpb24gZmFjdG9yeSBmcm9tIHByb3ZpZGVkIGNsYXNzbmFtZSB3aGljaCBtdXN0IGltcGxlbWVudCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PENPREU+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9DT0RFPjwvQT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI2NyZWF0ZUZhY3RvcnlGcm9tQ2xhc3NuYW1lKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXAsIGphdmEubGFuZy5TdHJpbmcpIj5jcmVhdGVGYWN0b3J5RnJvbUNsYXNzbmFtZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzbmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBEZWZpbml0aW9uIGZhY3RvcnkgZnJvbSBwcm92aWRlZCBjbGFzc25hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI2NyZWF0ZURlZmF1bHRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj5jcmVhdGVEZWZhdWx0RmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGRlZmF1bHQgRGVmaW5pdGlvbiBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNjcmVhdGVGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj5jcmVhdGVGYWN0b3J5PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBEZWZpbml0aW9uIGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI2dldEZhY3RvcnkoKSI+Z2V0RmFjdG9yeTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB1bmRlcmx5aW5nIGZhY3RvcnkgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q29uc3RydWN0b3JzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcihvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkpIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQT4mbmJzcDtmYWN0b3J5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5DbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0E+IHRoYXQgaW1wbGVtZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+RmFjdG9yeVNldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wb25lbnQgRGVmaW5pdGlvbnMgZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj5JMThuRmFjdG9yeVNldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWZpbml0aW9ucyBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvQ29udHJvbGxlci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9Db250cm9sbGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTkxNzAwNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvQ29udHJvbGxlci5odG1sCkBAIC0wLDAgKzEsMzIzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29udHJvbGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29udHJvbGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb250cm9sbGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgSW50ZXJmYWNlPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbnRyb2xsZXI8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9CPjwvQT48L1REPgorPFREPiAgICAgVGhlICJzdHJ1dHMtdGlsZXMiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluCitjcmVhdGluZyBkeW5hbWljIHJldXNhYmxlIGNvbXBvbmVudHMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvQT48L1REPgorPFREPjxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5GaWVsZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+IGRlY2xhcmVkIGFzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkluc2VydFRhZy5JbnNlcnRIYW5kbGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIuaHRtbCNjb250cm9sbGVyIj5jb250cm9sbGVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5JbnNlcnRUYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCNnZXRDb250cm9sbGVyKCkiPmdldENvbnRyb2xsZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgaW5zdGFudGlhdGVkIENvbnRyb2xsZXIuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q29uc3RydWN0b3JzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwjSW5zZXJ0VGFnLkluc2VydEhhbmRsZXIoamF2YS51dGlsLk1hcCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29udHJvbGxlcikiPkluc2VydFRhZy5JbnNlcnRIYW5kbGVyPC9BPjwvQj4oamF2YS51dGlsLk1hcCZuYnNwO2F0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtyb2xlLAorICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPiZuYnNwO2NvbnRyb2xsZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlci5odG1sI0luc2VydFRhZy5JbnNlcnRIYW5kbGVyKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbnRyb2xsZXIpIj5JbnNlcnRUYWcuSW5zZXJ0SGFuZGxlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3JvbGUsCisgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+Jm5ic3A7Y29udHJvbGxlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5DbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT4gdGhhdCBpbXBsZW1lbnQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29udHJvbGxlci5odG1sIj5BY3Rpb25Db250cm9sbGVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1N0cnV0cyB3cmFwcGVyIGltcGxlbWVudGF0aW9uIG9mIENvbnRyb2xsZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXJTdXBwb3J0Lmh0bWwiPkNvbnRyb2xsZXJTdXBwb3J0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Jhc2ljIGltcGxlbWVudGF0aW9uIG9mIENvbnRyb2xsZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VybENvbnRyb2xsZXIuaHRtbCI+VXJsQ29udHJvbGxlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaWxlcyBjb250cm9sbGVyIGluY2x1ZGluZyBhIGxvY2FsIFVSTC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5GaWVsZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPiBkZWNsYXJlZCBhcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29tcG9uZW50RGVmaW5pdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2NvbnRyb2xsZXJJbnN0YW5jZSI+Y29udHJvbGxlckluc3RhbmNlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnRyb2xsZXIgYXNzb2NpYXRlZCB0byBEZWZpbml0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbXBvbmVudERlZmluaXRpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNnZXRDb250cm9sbGVySW5zdGFuY2UoKSI+Z2V0Q29udHJvbGxlckluc3RhbmNlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGNvbnRyb2xsZXIgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29tcG9uZW50RGVmaW5pdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2dldE9yQ3JlYXRlQ29udHJvbGxlcigpIj5nZXRPckNyZWF0ZUNvbnRyb2xsZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgb3IgY3JlYXRlIGNvbnRyb2xsZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29tcG9uZW50RGVmaW5pdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2NyZWF0ZUNvbnRyb2xsZXIoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmNyZWF0ZUNvbnRyb2xsZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRyb2xsZXJUeXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIGNvbnRyb2xsZXIgbmFtZWQgaW4gcGFyYW1ldGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbXBvbmVudERlZmluaXRpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNjcmVhdGVDb250cm9sbGVyRnJvbUNsYXNzbmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlQ29udHJvbGxlckZyb21DbGFzc25hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGEgY29udHJvbGxlciBmcm9tIHNwZWNpZmllZCBjbGFzc25hbWU8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db21wb25lbnREZWZpbml0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjc2V0Q29udHJvbGxlckluc3RhbmNlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbnRyb2xsZXIpIj5zZXRDb250cm9sbGVySW5zdGFuY2U8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+Jm5ic3A7Y29udHJvbGxlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBjb250cm9sbGVyLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbnRyb2xsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9Db250cm9sbGVyU3VwcG9ydC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9Db250cm9sbGVyU3VwcG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2OTdlOGEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0NvbnRyb2xsZXJTdXBwb3J0Lmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbnRyb2xsZXJTdXBwb3J0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbnRyb2xsZXJTdXBwb3J0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyU3VwcG9ydC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb250cm9sbGVyU3VwcG9ydC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbnRyb2xsZXJTdXBwb3J0PC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbnRyb2xsZXJTdXBwb3J0Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXJTdXBwb3J0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbnRyb2xsZXJTdXBwb3J0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvRGVmaW5pdGlvbkF0dHJpYnV0ZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uQXR0cmlidXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NlN2YxMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvRGVmaW5pdGlvbkF0dHJpYnV0ZS5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uQXR0cmlidXRlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25BdHRyaWJ1dGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25BdHRyaWJ1dGUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGVmaW5pdGlvbkF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25BdHRyaWJ1dGU8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbkF0dHJpYnV0ZQorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uQXR0cmlidXRlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25BdHRyaWJ1dGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2NTA3MGEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0RlZmluaXRpb25OYW1lQXR0cmlidXRlLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25OYW1lQXR0cmlidXRlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25OYW1lQXR0cmlidXRlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25OYW1lQXR0cmlidXRlPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25OYW1lQXR0cmlidXRlCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25OYW1lQXR0cmlidXRlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25OYW1lQXR0cmlidXRlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0RlZmluaXRpb25zRmFjdG9yeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzYWI4ODEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0RlZmluaXRpb25zRmFjdG9yeS5odG1sCkBAIC0wLDAgKzEsMzg1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIEludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBJbnRlcmZhY2U8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5PC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvQT48L1REPgorPFREPjxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5GaWVsZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPiBkZWNsYXJlZCBhcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb25Db21wb25lbnRTZXJ2bGV0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwjZGVmaW5pdGlvbnNGYWN0b3J5Ij5kZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7RGVmaW5pdGlvbnMgZmFjdG9yeTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNQbHVnaW4uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjZGVmaW5pdGlvbkZhY3RvcnkiPmRlZmluaXRpb25GYWN0b3J5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Fzc29jaWF0ZWQgZGVmaW5pdGlvbiBmYWN0b3J5PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1JlcXVlc3RQcm9jZXNzb3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sI2RlZmluaXRpb25zRmFjdG9yeSI+ZGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlZmluaXRpb25zIGZhY3Rvcnk8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlRpbGVzVXRpbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgZGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gYXBwcm9wcmlhdGUgc2VydmxldCBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj5jcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtmYWN0b3J5Q29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIERlZmluaXRpb24gZmFjdG9yeSBmcm9tIHNwZWNpZmllZCBjb25maWd1cmF0aW9uIG9iamVjdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNVdGlsSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI2dldERlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGRlZmluaXRpb24gZmFjdG9yeSBmcm9tIGFwcHJvcHJpYXRlIHNlcnZsZXQgY29udGV4dC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNVdGlsSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj5jcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtmYWN0b3J5Q29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIERlZmluaXRpb24gZmFjdG9yeSBmcm9tIHNwZWNpZmllZCBjb25maWd1cmF0aW9uIG9iamVjdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlRpbGVzVXRpbEltcGwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCNjcmVhdGVEZWZpbml0aW9uRmFjdG9yeUluc3RhbmNlKGphdmEubGFuZy5TdHJpbmcpIj5jcmVhdGVEZWZpbml0aW9uRmFjdG9yeUluc3RhbmNlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzbmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBEZWZpbml0aW9uIGZhY3Rvcnkgb2Ygc3BlY2lmaWVkIGNsYXNzbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIGRlZmluaXRpb24gZmFjdG9yeSBmcm9tIGFwcHJvcHJpYXRlIHNlcnZsZXQgY29udGV4dC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5nZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGRlZmluaXRpb24gZmFjdG9yeSBmb3IgdGhlIG1vZHVsZSBhdHRhY2hlZCB0byBzcGVjaWZpZWQgbW9kdWxlQ29uZmlnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1V0aWxTdHJ1dHNJbXBsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5nZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGRlZmluaXRpb24gZmFjdG9yeSBmb3IgdGhlIG1vZHVsZSBhdHRhY2hlZCB0byB0aGUgc3BlY2lmaWVkIG1vZHVsZUNvbmZpZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGVmaW5pdGlvbnNVdGlsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS51dGlsLk1hcCwgamF2YS5sYW5nLlN0cmluZykiPmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCwgU2VydmxldENvbmZpZyBzZXJ2bGV0Q29uZmlnKTwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGVmaW5pdGlvbnNVdGlsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS51dGlsLk1hcCkiPmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NyZWF0ZSBkZWZhdWx0IERlZmluaXRpb24gZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGVmaW5pdGlvbnNVdGlsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnKSI+Y3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZyZuYnNwO3NlcnZsZXRDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcsIGJvb2xlYW4pIj5jcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnJm5ic3A7c2VydmxldENvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7Y2hlY2tJZkV4aXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q3JlYXRlIERlZmluaXRpb24gZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGVmaW5pdGlvbnNVdGlsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNjcmVhdGVEZWZpbml0aW9uRmFjdG9yeUluc3RhbmNlKGphdmEubGFuZy5TdHJpbmcpIj5jcmVhdGVEZWZpbml0aW9uRmFjdG9yeUluc3RhbmNlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzbmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPk5vIGRpcmVjdCByZXBsYWNlbWVudC4gVXNlIGNyZWF0ZURlZmluaXRpb25GYWN0b3J5CisgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZykiPjxDT0RFPlRpbGVzVXRpbC5jcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldENvbnRleHQsIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyk8L0NPREU+PC9BPi48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRlZmluaXRpb25zVXRpbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Q09ERT5UaWxlc1V0aWwuZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNSZXF1ZXN0UHJvY2Vzc29yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNnZXREZWZpbml0aW9uc0ZhY3RvcnkoKSI+Z2V0RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGFzc29jaWF0ZWQgZGVmaW5pdGlvbiBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNVdGlsSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI21ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPm1ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4mbmJzcDtmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TWFrZSBkZWZpbml0aW9uIGZhY3RvcnkgYWNjZXNzaWJsZSB0byBUYWdzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCNtYWtlRGVmaW5pdGlvbnNGYWN0b3J5QWNjZXNzaWJsZShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnksIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5tYWtlRGVmaW5pdGlvbnNGYWN0b3J5QWNjZXNzaWJsZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Jm5ic3A7ZmFjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01ha2UgZGVmaW5pdGlvbiBmYWN0b3J5IGFjY2Vzc2libGUgdG8gdGFncy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI21ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPm1ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4mbmJzcDtmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj48Q09ERT5UaWxlc1V0aWwuY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0LCBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5DbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0E+IHRoYXQgaW1wbGVtZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXcmFwcGVyIGZyb20gbmV3IGRlZmluaXRpb24gZmFjdG9yeSBpbnRlcmZhY2UgdG8gb2xkIGludGVyZmFjZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25zRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTk2MTIwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbApAQCAtMCwwICsxLDMxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQj48L0E+PC9URD4KKzxURD48ZGl2IGNsYXNzPSJtYWluQ29udGVudCI+CisgICAgVGhlIFRpbGVzIHRhZ2xpYiBhbmQgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyB3ZWIgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSAKKyAgICBwaWVjZXMgb2YgcGFnZXMsIGNhbGxlZCBUaWxlcy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uPC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI2dldENvbmZpZygpIj5nZXRDb25maWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgZmFjdG9yeSBjb25maWd1cmF0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNQbHVnaW4uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwjcmVhZEZhY3RvcnlDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5yZWFkRmFjdG9yeUNvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCwKKyAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBGYWN0b3J5Q29uZmlnIGFuZCBpbml0aWFsaXplIGl0IGZyb20gd2ViLnhtbCBhbmQgc3RydXRzLWNvbmZpZy54bWwuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI3JlYWRGYWN0b3J5Q29uZmlnKGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZykiPnJlYWRGYWN0b3J5Q29uZmlnPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnJm5ic3A7c2VydmxldENvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NyZWF0ZSBGYWN0b3J5Q29uZmlnIGFuZCBpbml0aWFsaXplIGl0IGZyb20gd2ViLnhtbC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlRpbGVzVXRpbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZykiPmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2ZhY3RvcnlDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gb2JqZWN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1V0aWxJbXBsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZykiPmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2ZhY3RvcnlDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gb2JqZWN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRlZmluaXRpb25zRmFjdG9yeS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5pbml0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtjb25maWcsCisgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXQgZGVmaW5pdGlvbiBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRlZmluaXRpb25zRmFjdG9yeS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjc2V0Q29uZmlnKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZywgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPnNldENvbmZpZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Jm5ic3A7Y29uZmlnLAorICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCBmYWN0b3J5IGNvbmZpZ3VyYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGVmaW5pdGlvbnNVdGlsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNwb3B1bGF0ZURlZmluaXRpb25zRmFjdG9yeUNvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZykiPnBvcHVsYXRlRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtmYWN0b3J5Q29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnJm5ic3A7c2VydmxldENvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1BvcHVsYXRlIERlZmluaXRpb24gRmFjdG9yeSBDb25maWcgZnJvbSB3ZWIueG1sIHByb3BlcnRpZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5GaWVsZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbjwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjY29uZmlnIj5jb25maWc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RmFjdG9yeSBjb25maWd1cmF0aW9uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjZ2V0Q29uZmlnKCkiPmdldENvbmZpZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB1bmRlcmx5aW5nIGZhY3RvcnkgY29uZmlndXJhdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sI2luaXQob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+aW5pdDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Jm5ic3A7Y29uZmlnLAorICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDYWxsIHVuZGVybHlpbmcgZmFjdG9yeSBpbml0IG1ldGhvZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCNzZXRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+c2V0Q29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtjb25maWcsCisgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHVuZGVybHlpbmcgZmFjdG9yeSBjb25maWd1cmF0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sI2NyZWF0ZUNvbmZpZ01hcChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj5jcmVhdGVDb25maWdNYXA8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBtYXAgb2YgY29uZmlndXJhdGlvbiBhdHRyaWJ1dGVzIGZyb20gY29uZmlndXJhdGlvbiBvYmplY3QuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FmYmZmNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwKQEAgLTAsMCArMSw2MDEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0I+PC9BPjwvVEQ+Cis8VEQ+PGRpdiBjbGFzcz0ibWFpbkNvbnRlbnQiPgorICAgIFRoZSBUaWxlcyB0YWdsaWIgYW5kIGZyYW1ld29yayBhbGxvd3MgYnVpbGRpbmcgd2ViIHBhZ2VzIGJ5IGFzc2VtYmxpbmcgcmV1c2FibGUgCisgICAgcGllY2VzIG9mIHBhZ2VzLCBjYWxsZWQgVGlsZXMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbjwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCI+RmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBkZWZpbml0aW9ucyBmYWN0b3J5IGlzIG5vdCBmb3VuZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBhIGRlZmluaXRpb24gaXMgbm90IGZvdW5kLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPiB0aGF0IHRocm93IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj5jcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtmYWN0b3J5Q29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIERlZmluaXRpb24gZmFjdG9yeSBmcm9tIHNwZWNpZmllZCBjb25maWd1cmF0aW9uIG9iamVjdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZGVmaW5pdGlvbk5hbWUsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7R2V0IGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sI2luaXRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj5pbml0RmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7SW5pdCBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1V0aWxJbXBsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwjY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZykiPmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2ZhY3RvcnlDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gb2JqZWN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VGlsZXNVdGlsSW1wbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sI2NyZWF0ZURlZmluaXRpb25GYWN0b3J5SW5zdGFuY2UoamF2YS5sYW5nLlN0cmluZykiPmNyZWF0ZURlZmluaXRpb25GYWN0b3J5SW5zdGFuY2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIERlZmluaXRpb24gZmFjdG9yeSBvZiBzcGVjaWZpZWQgY2xhc3NuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRlZmluaXRpb25zRmFjdG9yeS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI2luaXQob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+aW5pdDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Jm5ic3A7Y29uZmlnLAorICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0IGRlZmluaXRpb24gZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI3NldENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5zZXRDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2NvbmZpZywKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgZmFjdG9yeSBjb25maWd1cmF0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LCBTZXJ2bGV0Q29uZmlnIHNlcnZsZXRDb25maWcpPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+Y3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q3JlYXRlIGRlZmF1bHQgRGVmaW5pdGlvbiBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpIj5jcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnJm5ic3A7c2VydmxldENvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NyZWF0ZSBEZWZpbml0aW9uIGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRlZmluaXRpb25zVXRpbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZywgYm9vbGVhbikiPmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcmbmJzcDtzZXJ2bGV0Q29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtjaGVja0lmRXhpc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25GYWN0b3J5SW5zdGFuY2UoamF2YS5sYW5nLlN0cmluZykiPmNyZWF0ZURlZmluaXRpb25GYWN0b3J5SW5zdGFuY2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+Tm8gZGlyZWN0IHJlcGxhY2VtZW50LiBVc2UgY3JlYXRlRGVmaW5pdGlvbkZhY3RvcnkKKyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCNjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKSI+PENPREU+VGlsZXNVdGlsLmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCwgRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKTwvQ09ERT48L0E+LjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EZWZpbml0aW9uc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQpIj5nZXREZWZpbml0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2RlZmluaXRpb25OYW1lLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxDT0RFPlRpbGVzVXRpbC5nZXREZWZpbml0aW9uKFN0cmluZywgU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGVmaW5pdGlvbnNVdGlsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuaHRtbCNyZWFkRmFjdG9yeUNvbmZpZyhqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpIj5yZWFkRmFjdG9yeUNvbmZpZzwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZyZuYnNwO3NlcnZsZXRDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDcmVhdGUgRmFjdG9yeUNvbmZpZyBhbmQgaW5pdGlhbGl6ZSBpdCBmcm9tIHdlYi54bWwuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0E+IHRoYXQgdGhyb3cgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHJlcXVlc3RlZCBkZWZpbml0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sI2luaXQob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+aW5pdDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+Jm5ic3A7Y29uZmlnLAorICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDYWxsIHVuZGVybHlpbmcgZmFjdG9yeSBpbml0IG1ldGhvZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCNzZXRDb25maWcob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+c2V0Q29uZmlnPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtjb25maWcsCisgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHVuZGVybHlpbmcgZmFjdG9yeSBjb25maWd1cmF0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjY3JlYXRlRmFjdG9yeUluc3RhbmNlKGphdmEubGFuZy5TdHJpbmcpIj5jcmVhdGVGYWN0b3J5SW5zdGFuY2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIERlZmluaXRpb24gZmFjdG9yeSBmcm9tIHByb3ZpZGVkIGNsYXNzbmFtZSB3aGljaCBtdXN0IGltcGxlbWVudCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PENPREU+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9DT0RFPjwvQT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI2NyZWF0ZUZhY3RvcnlGcm9tQ2xhc3NuYW1lKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXAsIGphdmEubGFuZy5TdHJpbmcpIj5jcmVhdGVGYWN0b3J5RnJvbUNsYXNzbmFtZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzbmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBEZWZpbml0aW9uIGZhY3RvcnkgZnJvbSBwcm92aWRlZCBjbGFzc25hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI2NyZWF0ZURlZmF1bHRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj5jcmVhdGVEZWZhdWx0RmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGRlZmF1bHQgRGVmaW5pdGlvbiBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNjcmVhdGVGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj5jcmVhdGVGYWN0b3J5PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBEZWZpbml0aW9uIGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtkZWZpbml0aW9uTmFtZSwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjcmVsb2FkKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5yZWxvYWQ8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWxvYWQgdW5kZXJseWluZyBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI2luaXRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj5pbml0RmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdCBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNvbnN0cnVjdG9ycyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uPC9BPiB0aGF0IHRocm93IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpIj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcmbmJzcDtzZXJ2bGV0Q29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNSZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9BPiB0aGF0IHRocm93IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkkxOG5GYWN0b3J5U2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjaW5pdEZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS51dGlsLk1hcCkiPmluaXRGYWN0b3J5PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgamF2YS51dGlsLk1hcCZuYnNwO3Byb3BlcnRpZXMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0aWFsaXphdGlvbiBtZXRob2QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkkxOG5GYWN0b3J5U2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjaW5pdEZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS5sYW5nLlN0cmluZykiPmluaXRGYWN0b3J5PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3Bvc2VkRmlsZW5hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0aWFsaXphdGlvbiBtZXRob2QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkkxOG5GYWN0b3J5U2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjY3JlYXRlRGVmYXVsdEZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmNyZWF0ZURlZmF1bHRGYWN0b3J5PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGRlZmF1bHQgZmFjdG9yeSAuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkkxOG5GYWN0b3J5U2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjY3JlYXRlRmFjdG9yeShqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Y3JlYXRlRmFjdG9yeTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtrZXksCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYSBmYWN0b3J5IGZvciBzcGVjaWZpZWQga2V5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkkxOG5GYWN0b3J5U2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjcGFyc2VYbWxGaWxlcyhqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb25zU2V0KSI+cGFyc2VYbWxGaWxlczwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Bvc3RmaXgsCisgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+Jm5ic3A7eG1sRGVmaW5pdGlvbnMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQYXJzZSBmaWxlcyBhc3NvY2lhdGVkIHRvIHBvc3RpeCBpZiB0aGV5IGV4aXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkkxOG5GYWN0b3J5U2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjcGFyc2VYbWxGaWxlKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbnNTZXQpIj5wYXJzZVhtbEZpbGU8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZpbGVuYW1lLAorICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+Jm5ic3A7eG1sRGVmaW5pdGlvbnMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQYXJzZSBzcGVjaWZpZWQgeG1sIGZpbGUgYW5kIGFkZCBkZWZpbml0aW9uIHRvIHNwZWNpZmllZCBkZWZpbml0aW9ucyBzZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZhY3RvcnlTZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sI2dldEZhY3RvcnkoamF2YS5sYW5nLk9iamVjdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldEZhY3Rvcnk8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5LAorICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGEgZmFjdG9yeSBieSBpdHMga2V5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZhY3RvcnlTZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBhYnN0cmFjdCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZhY3RvcnlTZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sI2NyZWF0ZUZhY3RvcnkoamF2YS5sYW5nLk9iamVjdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmNyZWF0ZUZhY3Rvcnk8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGEgZmFjdG9yeSBmb3Igc3BlY2lmaWVkIGtleS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+YWJzdHJhY3QgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5GYWN0b3J5U2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNpbml0RmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+aW5pdEZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXQgZmFjdG9yeSBzZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGVmaW5pdGlvbnNGYWN0b3J5LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q29uc3RydWN0b3JzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0E+IHRoYXQgdGhyb3cgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjSTE4bkZhY3RvcnlTZXQoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS51dGlsLk1hcCkiPkkxOG5GYWN0b3J5U2V0PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgICAgamF2YS51dGlsLk1hcCZuYnNwO3Byb3BlcnRpZXMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0RlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzljZjBmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcDwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXAKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25zVXRpbC5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0RlZmluaXRpb25zVXRpbC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uc1V0aWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmYwMjVjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uc1V0aWwuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNVdGlsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zVXRpbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25zVXRpbC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zVXRpbDwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc1V0aWwKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25zVXRpbC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0RpcmVjdFN0cmluZ0F0dHJpYnV0ZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTY5NTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGlyZWN0U3RyaW5nQXR0cmlidXRlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRpcmVjdFN0cmluZ0F0dHJpYnV0ZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGlyZWN0U3RyaW5nQXR0cmlidXRlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRpcmVjdFN0cmluZ0F0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRpcmVjdFN0cmluZ0F0dHJpYnV0ZTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EaXJlY3RTdHJpbmdBdHRyaWJ1dGUKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGlyZWN0U3RyaW5nQXR0cmlidXRlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRpcmVjdFN0cmluZ0F0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0VtcHR5SXRlcmF0b3IuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvRW1wdHlJdGVyYXRvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2NGNjNTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0VtcHR5SXRlcmF0b3IuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRW1wdHlJdGVyYXRvciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5FbXB0eUl0ZXJhdG9yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9FbXB0eUl0ZXJhdG9yLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkVtcHR5SXRlcmF0b3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5FbXB0eUl0ZXJhdG9yPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkVtcHR5SXRlcmF0b3IKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRW1wdHlJdGVyYXRvci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJFbXB0eUl0ZXJhdG9yLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ODljOGYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sCkBAIC0wLDAgKzEsMjA1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiPkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvQT48L1REPgorPFREPjxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiPkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT4gdGhhdCB0aHJvdyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCI+RmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZGVmaW5pdGlvbk5hbWUsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRlZmluaXRpb25zVXRpbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPmdldERlZmluaXRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZGVmaW5pdGlvbk5hbWUsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PENPREU+VGlsZXNVdGlsLmdldERlZmluaXRpb24oU3RyaW5nLCBTZXJ2bGV0UmVxdWVzdCwgU2VydmxldENvbnRleHQpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCI+RmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0E+IHRoYXQgdGhyb3cgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiPkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtkZWZpbml0aW9uTmFtZSwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWM0NGY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwKQEAgLTAsMCArMSwyNzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLk5vU3VjaERlZmluaXRpb25FeGNlcHRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvQT48L1REPgorPFREPjxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiPk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHRoYXQgdGhyb3cgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0dldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGVmaW5pdGlvbnNGYWN0b3J5LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0E+IHRoYXQgdGhyb3cgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgcmVxdWVzdGVkIGRlZmluaXRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiPk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT4gdGhhdCB0aHJvdyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiPk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlhtbERlZmluaXRpb25zU2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwjcmVzb2x2ZUluaGVyaXRhbmNlcygpIj5yZXNvbHZlSW5oZXJpdGFuY2VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVzb2x2ZSBleHRlbmRlZCBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+WG1sRGVmaW5pdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwjcmVzb2x2ZUluaGVyaXRhbmNlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbnNTZXQpIj5yZXNvbHZlSW5oZXJpdGFuY2U8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPiZuYnNwO2RlZmluaXRpb25zU2V0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVzb2x2ZSBpbmhlcml0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5GYWN0b3J5U2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkRlZmluaXRpb25zRmFjdG9yeS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNvbnN0cnVjdG9ycyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9BPiB0aGF0IHRocm93IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI0RlZmluaXRpb25zRmFjdG9yeShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb25zU2V0KSI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT4mbmJzcDt4bWxEZWZpbml0aW9ucyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik5vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9QYXRoQXR0cmlidXRlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL1BhdGhBdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzAwYTE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9QYXRoQXR0cmlidXRlLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlBhdGhBdHRyaWJ1dGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuUGF0aEF0dHJpYnV0ZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvUGF0aEF0dHJpYnV0ZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQYXRoQXR0cmlidXRlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuUGF0aEF0dHJpYnV0ZTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5QYXRoQXR0cmlidXRlCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1BhdGhBdHRyaWJ1dGUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUGF0aEF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL1RpbGVzRXhjZXB0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL1RpbGVzRXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU0ODdlNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVGlsZXNFeGNlcHRpb24uaHRtbApAQCAtMCwwICsxLDE4MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNFeGNlcHRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNFeGNlcHRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRpbGVzRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNFeGNlcHRpb248L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc0V4Y2VwdGlvbi5odG1sIj5UaWxlc0V4Y2VwdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvQT48L1REPgorPFREPjxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwiPlRpbGVzRXhjZXB0aW9uPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNFeGNlcHRpb24uaHRtbCI+VGlsZXNFeGNlcHRpb248L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXhjZXB0aW9uIHRocm93biB3aGVuIGFuIGVycm9yIG9jY3VycyB3aGlsZSB0aGUgZmFjdG9yeSB0cmllcyB0bworIGNyZWF0ZSBhIG5ldyBpbnN0YW5jZSBtYXBwZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sIj5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXhjZXB0aW9uIHRocm93biB3aGVuIGRlZmluaXRpb25zIGZhY3RvcnkgaXMgbm90IGZvdW5kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiPk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXhjZXB0aW9uIHRocm93biB3aGVuIGEgZGVmaW5pdGlvbiBpcyBub3QgZm91bmQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzRXhjZXB0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRpbGVzRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVGlsZXNQbHVnaW4uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVGlsZXNQbHVnaW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTY2NzY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9UaWxlc1BsdWdpbi5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1BsdWdpbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1BsdWdpbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGlsZXNQbHVnaW4uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1BsdWdpbjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1BsdWdpbgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1BsdWdpbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUaWxlc1BsdWdpbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTAwM2U0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbApAQCAtMCwwICsxLDE2NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNSZXF1ZXN0UHJvY2Vzc29yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzUmVxdWVzdFByb2Nlc3NvciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzUmVxdWVzdFByb2Nlc3NvcjwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQj48L0E+PC9URD4KKzxURD48ZGl2IGNsYXNzPSJtYWluQ29udGVudCI+CisgICAgVGhlIFRpbGVzIHRhZ2xpYiBhbmQgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyB3ZWIgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSAKKyAgICBwaWVjZXMgb2YgcGFnZXMsIGNhbGxlZCBUaWxlcy4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+VGlsZXNSZXF1ZXN0UHJvY2Vzc29yPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+VGlsZXNSZXF1ZXN0UHJvY2Vzc29yPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sI2dldFJlcXVlc3RQcm9jZXNzb3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldFJlcXVlc3RQcm9jZXNzb3I8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IFRpbGVzIFJlcXVlc3RQcm9jZXNzb3IgYXNzb2NpYXRlZCB0byB0aGUgY3VycmVudCBtb2R1bGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9UaWxlc1NlcnZsZXQuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVGlsZXNTZXJ2bGV0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZkNTlmZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVGlsZXNTZXJ2bGV0Lmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzU2VydmxldCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1NlcnZsZXQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzU2VydmxldC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUaWxlc1NlcnZsZXQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1NlcnZsZXQ8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNTZXJ2bGV0Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzU2VydmxldC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUaWxlc1NlcnZsZXQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9UaWxlc1V0aWwuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVGlsZXNVdGlsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNmMzdiYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVGlsZXNVdGlsLmh0bWwKQEAgLTAsMCArMSwxNjMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUaWxlc1V0aWwuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWw8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWwuaHRtbCI+VGlsZXNVdGlsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0I+PC9BPjwvVEQ+Cis8VEQ+PGRpdiBjbGFzcz0ibWFpbkNvbnRlbnQiPgorICAgIFRoZSBUaWxlcyB0YWdsaWIgYW5kIGZyYW1ld29yayBhbGxvd3MgYnVpbGRpbmcgd2ViIHBhZ2VzIGJ5IGFzc2VtYmxpbmcgcmV1c2FibGUgCisgICAgcGllY2VzIG9mIHBhZ2VzLCBjYWxsZWQgVGlsZXMuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwiPlRpbGVzVXRpbDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj5UaWxlc1V0aWw8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj48Q09ERT5jcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldENvbnRleHQsIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRpbGVzVXRpbC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL1RpbGVzVXRpbEltcGwuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVGlsZXNVdGlsSW1wbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzMGQxNGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL1RpbGVzVXRpbEltcGwuaHRtbApAQCAtMCwwICsxLDIxOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsSW1wbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxJbXBsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRpbGVzVXRpbEltcGwuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxJbXBsPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5UaWxlc1V0aWxJbXBsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0I+PC9BPjwvVEQ+Cis8VEQ+PGRpdiBjbGFzcz0ibWFpbkNvbnRlbnQiPgorICAgIFRoZSBUaWxlcyB0YWdsaWIgYW5kIGZyYW1ld29yayBhbGxvd3MgYnVpbGRpbmcgd2ViIHBhZ2VzIGJ5IGFzc2VtYmxpbmcgcmV1c2FibGUgCisgICAgcGllY2VzIG9mIHBhZ2VzLCBjYWxsZWQgVGlsZXMuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5UaWxlc1V0aWxJbXBsPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5UaWxlc1V0aWxJbXBsPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwiPlRpbGVzVXRpbFN0cnV0c0ltcGw8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGlsZXNVdGlsIGltcGxlbWVudGF0aW9uIGZvciBTdHJ1dHMgMS4xIHdpdGggb25lIHNpbmdsZSBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sIj5UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbXBsZW1lbnRhdGlvbiBvZiBUaWxlc1V0aWwgZm9yIFN0cnV0cyBtdWx0aSBtb2R1bGVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IGRlY2xhcmVkIGFzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+VGlsZXNVdGlsSW1wbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPlRpbGVzVXRpbEltcGw8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlRpbGVzVXRpbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjdGlsZXNVdGlsSW1wbCI+dGlsZXNVdGlsSW1wbDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgaW1wbGVtZW50YXRpb24gb2YgdGlsZXNVdGlsSW1wbDwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPlRpbGVzVXRpbEltcGw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPlRpbGVzVXRpbEltcGw8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlRpbGVzVXRpbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwjZ2V0VGlsZXNVdGlsKCkiPmdldFRpbGVzVXRpbDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgcmVhbCBpbXBsZW1lbnRhdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5UaWxlc1V0aWxJbXBsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5UaWxlc1V0aWwuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI3NldFRpbGVzVXRpbChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxJbXBsKSI+c2V0VGlsZXNVdGlsPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj5UaWxlc1V0aWxJbXBsPC9BPiZuYnNwO3RpbGVzVXRpbCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgcmVhbCBpbXBsZW1lbnRhdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUaWxlc1V0aWxJbXBsLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVGlsZXNVdGlsU3RydXRzSW1wbC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDdjNWZmNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVGlsZXNVdGlsU3RydXRzSW1wbC5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1V0aWxTdHJ1dHNJbXBsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbFN0cnV0c0ltcGwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGlsZXNVdGlsU3RydXRzSW1wbC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbFN0cnV0c0ltcGw8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwiPlRpbGVzVXRpbFN0cnV0c0ltcGw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQj48L0E+PC9URD4KKzxURD48ZGl2IGNsYXNzPSJtYWluQ29udGVudCI+CisgICAgVGhlIFRpbGVzIHRhZ2xpYiBhbmQgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyB3ZWIgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSAKKyAgICBwaWVjZXMgb2YgcGFnZXMsIGNhbGxlZCBUaWxlcy4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwiPlRpbGVzVXRpbFN0cnV0c0ltcGw8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwiPlRpbGVzVXRpbFN0cnV0c0ltcGw8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwiPlRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ltcGxlbWVudGF0aW9uIG9mIFRpbGVzVXRpbCBmb3IgU3RydXRzIG11bHRpIG1vZHVsZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGlsZXNVdGlsU3RydXRzSW1wbC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZiODQ4NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGw8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4OTdkZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL1VudHlwcGVkQXR0cmlidXRlLmh0bWwKQEAgLTAsMCArMSwxODcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlVudHlwcGVkQXR0cmlidXRlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlVudHlwcGVkQXR0cmlidXRlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJVbnR5cHBlZEF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlVudHlwcGVkQXR0cmlidXRlPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQj48L0E+PC9URD4KKzxURD48ZGl2IGNsYXNzPSJtYWluQ29udGVudCI+CisgICAgVGhlIFRpbGVzIHRhZ2xpYiBhbmQgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyB3ZWIgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSAKKyAgICBwaWVjZXMgb2YgcGFnZXMsIGNhbGxlZCBUaWxlcy4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj5VbnR5cHBlZEF0dHJpYnV0ZTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1VudHlwcGVkQXR0cmlidXRlLmh0bWwiPlVudHlwcGVkQXR0cmlidXRlPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uQXR0cmlidXRlLmh0bWwiPkRlZmluaXRpb25BdHRyaWJ1dGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXR0cmlidXRlIHJlcHJlc2VudGluZyBhIENvbXBvbmVudCBEZWZpbml0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIj5EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wb25lbnQgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuaHRtbCI+RGlyZWN0U3RyaW5nQXR0cmlidXRlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBvbmVudCBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1BhdGhBdHRyaWJ1dGUuaHRtbCI+UGF0aEF0dHJpYnV0ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wb25lbnQgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJVbnR5cHBlZEF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL1VybENvbnRyb2xsZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVXJsQ29udHJvbGxlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4ZDBlMzQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL1VybENvbnRyb2xsZXIuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVXJsQ29udHJvbGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VcmxDb250cm9sbGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VcmxDb250cm9sbGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlVybENvbnRyb2xsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VcmxDb250cm9sbGVyPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlVybENvbnRyb2xsZXIKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVXJsQ29udHJvbGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJVcmxDb250cm9sbGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMmI5YWIxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sCkBAIC0wLDAgKzEsNTYwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLENvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXI8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9ETD4KKworPFA+CitXcmFwcGVyIGZyb20gbmV3IGRlZmluaXRpb24gZmFjdG9yeSBpbnRlcmZhY2UgdG8gb2xkIGludGVyZmFjZS4KKyBUaGlzIGNsYXNzIHByb3ZpZGVzIG1hcHBpbmcgZnJvbSB0aGUgb2xkIGludGVyZmFjZSdzIGxpZmUgY3ljbGUgdG8gdGhlIG5ldyBsaWZlIGN5Y2xlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+MjAwMjA3MDg8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNlZHJpYyBEdW1vdWxpbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sI2NvbmZpZyI+Y29uZmlnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZhY3RvcnkgY29uZmlndXJhdGlvbjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sI2ZhY3RvcnkiPmZhY3Rvcnk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHVuZGVybHlpbmcgZmFjdG9yeTwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcigpIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCNDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeSkiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXI8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiZuYnNwO2ZhY3RvcnkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sI2NyZWF0ZUNvbmZpZ01hcChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj5jcmVhdGVDb25maWdNYXA8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBtYXAgb2YgY29uZmlndXJhdGlvbiBhdHRyaWJ1dGVzIGZyb20gY29uZmlndXJhdGlvbiBvYmplY3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCNjcmVhdGVGYWN0b3J5SW5zdGFuY2UoamF2YS5sYW5nLlN0cmluZykiPmNyZWF0ZUZhY3RvcnlJbnN0YW5jZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gcHJvdmlkZWQgY2xhc3NuYW1lIHdoaWNoIG11c3QgaW1wbGVtZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Q09ERT5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0NPREU+PC9BPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCNkZXN0cm95KCkiPmRlc3Ryb3k8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEbyBub3RoaW5nIGJlY2F1c2Ugb2xkIGxpZmUgY3ljbGUgaGFzIG5vIGVxdWl2YWxlbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sI2dldENvbmZpZygpIj5nZXRDb25maWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdW5kZXJseWluZyBmYWN0b3J5IGNvbmZpZ3VyYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHJlcXVlc3RlZCBkZWZpbml0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCNnZXRJbnRlcm5hbEZhY3RvcnkoKSI+Z2V0SW50ZXJuYWxGYWN0b3J5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGludGVybmFsIGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5pbml0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtjb25maWcsCisgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NhbGwgdW5kZXJseWluZyBmYWN0b3J5IGluaXQgbWV0aG9kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sI3NldENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5zZXRDb25maWc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2NvbmZpZywKKyAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdW5kZXJseWluZyBmYWN0b3J5IGNvbmZpZ3VyYXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gU3RyaW5nIHJlcHJlc2VudGF0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJmYWN0b3J5Ij48IS0tIC0tPjwvQT48SDM+CitmYWN0b3J5PC9IMz4KKzxQUkU+Citwcml2YXRlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmZhY3Rvcnk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHVuZGVybHlpbmcgZmFjdG9yeQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29uZmlnIj48IS0tIC0tPjwvQT48SDM+Citjb25maWc8L0gzPgorPFBSRT4KK3ByaXZhdGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4gPEI+Y29uZmlnPC9CPjwvUFJFPgorPERMPgorPEREPkZhY3RvcnkgY29uZmlndXJhdGlvbgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5KSI+PCEtLSAtLT48L0E+PEgzPgorQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXI8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+Jm5ic3A7ZmFjdG9yeSk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3Rvci4KKyBDcmVhdGUgbmV3IHdyYXBwZXIgZm9yIHNwZWNpZmllZCBmYWN0b3J5LgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZhY3Rvcnk8L0NPREU+IC0gVGhlIGZhY3RvcnkgdG8gY3JlYXRlIGEgd3JhcHBlciBmb3IuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcigpIj48IS0tIC0tPjwvQT48SDM+CitDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcjwvQj4oKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdG9yLgorIENyZWF0ZSBuZXcgd3JhcHBlci4KKyBUaGUgY29uZmlnIG9iamVjdCBwYXNzZWQgdG8gaW5pdCBtZXRob2Qgc2hvdWxkIHJlZmVyZW5jZSBhIGZhY3RvcnkgaW1wbGVtZW50aW5nCisgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPjxDT0RFPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQ09ERT48L0E+LgorPFA+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZpbml0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiA8Qj5nZXREZWZpbml0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9BPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L1BSRT4KKzxETD4KKzxERD5HZXQgcmVxdWVzdGVkIGRlZmluaXRpb24uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbjwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiB0aGUgZGVmaW5pdGlvbi48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZy48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gT3VyIHNlcnZsZXQgY29udGV4dC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Q29tcG9uZW50RGVmaXRpb24KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT48L0NPREU+IC0gTm8gZGVmaW5pdGlvbiBmb3VuZCBmb3Igc3BlY2lmaWVkIG5hbWUKKyBJbXBsZW1lbnRhdGlvbiBjYW4gdGhyb3cgbW9yZSBhY2N1cmF0ZSBleGNlcHRpb24gYXMgYSBzdWJjbGFzcyBvZiB0aGlzIGV4Y2VwdGlvbgorPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9DT0RFPiAtIEFuIGVycm9yIG9jY3VyIHdoaWxlIGdldHRpbmcgZGVmaW5pdGlvbi48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXQob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+aW5pdDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtjb25maWcsCisgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L1BSRT4KKzxETD4KKzxERD5DYWxsIHVuZGVybHlpbmcgZmFjdG9yeSBpbml0IG1ldGhvZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZywgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmluaXQ8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLjxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBPdXIgc2VydmxldCBjb250ZXh0LgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gQW4gZXJyb3Igb2NjdXIgZHVyaW5nIGluaXRpYWxpemF0aW9uLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVzdHJveSgpIj48IS0tIC0tPjwvQT48SDM+CitkZXN0cm95PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5kZXN0cm95PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+RG8gbm90aGluZyBiZWNhdXNlIG9sZCBsaWZlIGN5Y2xlIGhhcyBubyBlcXVpdmFsZW50LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI2Rlc3Ryb3koKSI+ZGVzdHJveTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbmZpZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT4mbmJzcDtjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KQorICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+U2V0IHVuZGVybHlpbmcgZmFjdG9yeSBjb25maWd1cmF0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI3NldENvbmZpZyhvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5zZXRDb25maWc8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnIHRvIHVzZS48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gT3VyIHNlcnZsZXQgY29udGV4dC4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9DT0RFPiAtIEFuIGVycm9yIG9jY3VyIGR1cmluZyBpbml0aWFsaXphdGlvbi48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldENvbmZpZygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDb25maWc8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiA8Qj5nZXRDb25maWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdW5kZXJseWluZyBmYWN0b3J5IGNvbmZpZ3VyYXRpb24uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZ2V0Q29uZmlnKCkiPmdldENvbmZpZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SW50ZXJuYWxGYWN0b3J5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEludGVybmFsRmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmdldEludGVybmFsRmFjdG9yeTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCBpbnRlcm5hbCBmYWN0b3J5LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBpbnRlcm5hbCBDb21wb25lbnREZWZpdGlvbnNGYWN0b3J5LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlRmFjdG9yeUluc3RhbmNlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVGYWN0b3J5SW5zdGFuY2U8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiA8Qj5jcmVhdGVGYWN0b3J5SW5zdGFuY2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPkNyZWF0ZSBEZWZpbml0aW9uIGZhY3RvcnkgZnJvbSBwcm92aWRlZCBjbGFzc25hbWUgd2hpY2ggbXVzdCBpbXBsZW1lbnQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPjxDT0RFPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQ09ERT48L0E+LgorIEZhY3RvcnkgY2xhc3MgbXVzdCBleHRlbmQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPjxDT0RFPkRlZmluaXRpb25zRmFjdG9yeTwvQ09ERT48L0E+LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jbGFzc25hbWU8L0NPREU+IC0gQ2xhc3MgbmFtZSBvZiB0aGUgZmFjdG9yeSB0byBjcmVhdGUuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPm5ld2x5IGNyZWF0ZWQgZmFjdG9yeS4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9DT0RFPiAtIElmIGFuIGVycm9yIG9jY3VyIHdoaWxlIGluaXRpYWxpemluZyBmYWN0b3J5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0b1N0cmluZygpIj48IS0tIC0tPjwvQT48SDM+Cit0b1N0cmluZzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+dG9TdHJpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gU3RyaW5nIHJlcHJlc2VudGF0aW9uLgorIENhbGxzIHRvU3RyaW5nKCkgb24gdW5kZXJseWluZyBmYWN0b3J5LgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnRvU3RyaW5nPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5TdHJpbmcgcmVwcmVzZW50YXRpb24uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjcmVhdGVDb25maWdNYXAob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorY3JlYXRlQ29uZmlnTWFwPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEudXRpbC5NYXAgPEI+Y3JlYXRlQ29uZmlnTWFwPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgbWFwIG9mIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlcyBmcm9tIGNvbmZpZ3VyYXRpb24gb2JqZWN0LgorIE1hcHBpbmcgaXMgZG9uZSBiZXR3ZWVuIG9sZCBuYW1lcyBhbmQgbmV3IG5hbWVzLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gVGhlIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyB0byB1c2UuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPk1hcCBNYXAgb2YgbmFtZS92YWx1ZSBwYWlycy48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2NGUxNGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwKQEAgLTAsMCArMSwyODUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDEgRURUIDIwMDMgLS0+Cis8VElUTEU+CitSZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXAsUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcCBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLkhhc2hNYXAiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLnV0aWwuSGFzaE1hcCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBSZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YS51dGlsLkFic3RyYWN0TWFwCisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YS51dGlsLkhhc2hNYXAKKyAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXA8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmxhbmcuQ2xvbmVhYmxlLCBqYXZhLnV0aWwuTWFwLCBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkVuY2xvc2luZyBjbGFzczo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sIj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPiBjbGFzcyA8Qj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwPC9CPjxEVD5leHRlbmRzIGphdmEudXRpbC5IYXNoTWFwPC9ETD4KKworPFA+CitJbm5lciBjbGFzcy4KKyBXcmFwcGVyIGZvciBTZXJ2bGV0Q29udGV4dCBpbml0IHBhcmFtZXRlcnMuCisgT2JqZWN0IG9mIHRoaXMgY2xhc3MgaXMgYW4gSGFzaE1hcCBjb250YWluaW5nIHBhcmFtZXRlcnMgYW5kIHZhbHVlcworIGRlZmluZWQgaW4gdGhlIHNlcnZsZXQgY29uZmlnIGZpbGUgKHdlYi54bWwpLgorPFA+CisKKzxQPgorPERMPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLkhhc2hNYXAiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS51dGlsLkhhc2hNYXA8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEudXRpbC5BYnN0cmFjdE1hcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLnV0aWwuQWJzdHJhY3RNYXA8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPihwYWNrYWdlIHByaXZhdGUpPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sI1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXAoamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnKSI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcDwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZyZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEudXRpbC5IYXNoTWFwIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLnV0aWwuSGFzaE1hcDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsZWFyLCBjbG9uZSwgY29udGFpbnNLZXksIGNvbnRhaW5zVmFsdWUsIGVudHJ5U2V0LCBnZXQsIGlzRW1wdHksIGtleVNldCwgcHV0LCBwdXRBbGwsIHJlbW92ZSwgc2l6ZSwgdmFsdWVzPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLkFic3RyYWN0TWFwIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLnV0aWwuQWJzdHJhY3RNYXA8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5lcXVhbHMsIGhhc2hDb2RlLCB0b1N0cmluZzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maW5hbGl6ZSwgZ2V0Q2xhc3MsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLk1hcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gaW50ZXJmYWNlIGphdmEudXRpbC5NYXA8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5lcXVhbHMsIGhhc2hDb2RlPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcChqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CitSZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwPC9IMz4KKzxQUkU+Cis8Qj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwPC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcmbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS51dGlsLkhhc2hNYXAiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLnV0aWwuSGFzaE1hcCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTJhN2U5NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbApAQCAtMCwwICsxLDYwNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeSxSZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5IGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJSZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDs8QSBIUkVGPSIjbmVzdGVkX2NsYXNzX3N1bW1hcnkiPk5FU1RFRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uPC9GT05UPgorPEJSPgorQ2xhc3MgUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeTwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5PC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvREw+CisKKzxQPgorQSByZWxvYWRhYmxlIGZhY3RvcnkuCisgVGhpcyBmYWN0b3J5IGlzIHRoZSBtYWluIGVudHJhbmNlIHRvIGFueSBmYWN0b3J5IGltcGxlbWVudGF0aW9uLiBJdCB0YWtlcyBpbgorIGNoYXJnZSByZWFsIGltcGxlbWVudGF0aW9uIGluc3RhbmNlLCBhbmQgYWxsb3dzIHJlbG9hZGluZyBieSBjcmVhdGluZyBhIG5ldworIGluc3RhbmNlLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+MS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNlZHJpYyBEdW1vdWxpbjwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im5lc3RlZF9jbGFzc19zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk5lc3RlZCBDbGFzcyBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+KHBhY2thZ2UgcHJpdmF0ZSkgJm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXA8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5uZXIgY2xhc3MuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjREVGSU5JVElPTlNfRkFDVE9SWV9DTEFTU05BTUUiPkRFRklOSVRJT05TX0ZBQ1RPUllfQ0xBU1NOQU1FPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO05hbWUgb2YgaW5pdCBwcm9wZXJ0eSBjYXJyeWluZyBmYWN0b3J5IGNsYXNzIG5hbWU8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI2ZhY3RvcnkiPmZhY3Rvcnk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlYWwgZmFjdG9yeSBpbnN0YW5jZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLk1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNwcm9wZXJ0aWVzIj5wcm9wZXJ0aWVzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemF0aW9uIHBhcmFtZXRlcnM8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS51dGlsLk1hcCkiPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNSZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZykiPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZyZuYnNwO3NlcnZsZXRDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNjcmVhdGVEZWZhdWx0RmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+Y3JlYXRlRGVmYXVsdEZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBkZWZhdWx0IERlZmluaXRpb24gZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjY3JlYXRlRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+Y3JlYXRlRmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgamF2YS51dGlsLk1hcCZuYnNwO3Byb3BlcnRpZXMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNjcmVhdGVGYWN0b3J5RnJvbUNsYXNzbmFtZShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlRmFjdG9yeUZyb21DbGFzc25hbWU8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gcHJvdmlkZWQgY2xhc3NuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZGVmaW5pdGlvbk5hbWUsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNnZXRGYWN0b3J5KCkiPmdldEZhY3Rvcnk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdW5kZXJseWluZyBmYWN0b3J5IGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI2luaXRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj5pbml0RmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdCBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sI3JlbG9hZChqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+cmVsb2FkPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVsb2FkIHVuZGVybHlpbmcgZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBTdHJpbmcgcmVwcmVzZW50YXRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImZhY3RvcnkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZhY3Rvcnk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiA8Qj5mYWN0b3J5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSByZWFsIGZhY3RvcnkgaW5zdGFuY2UKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByb3BlcnRpZXMiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnRpZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuTWFwIDxCPnByb3BlcnRpZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+SW5pdGlhbGl6YXRpb24gcGFyYW1ldGVycworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iREVGSU5JVElPTlNfRkFDVE9SWV9DTEFTU05BTUUiPjwhLS0gLS0+PC9BPjxIMz4KK0RFRklOSVRJT05TX0ZBQ1RPUllfQ0xBU1NOQU1FPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+REVGSU5JVElPTlNfRkFDVE9SWV9DTEFTU05BTUU8L0I+PC9QUkU+Cis8REw+Cis8REQ+TmFtZSBvZiBpbml0IHByb3BlcnR5IGNhcnJ5aW5nIGZhY3RvcnkgY2xhc3MgbmFtZQorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuREVGSU5JVElPTlNfRkFDVE9SWV9DTEFTU05BTUUiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZyZuYnNwO3NlcnZsZXRDb25maWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdG9yLgorIENyZWF0ZSBhIGZhY3RvcnkgYWNjb3JkaW5nIHRvIHNlcnZsZXQgc2V0dGluZ3MuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gT3VyIHNlcnZsZXQgY29udGV4dC48REQ+PENPREU+c2VydmxldENvbmZpZzwvQ09ERT4gLSBPdXIgc2VydmxldCBjb25maWcuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBJZiBmYWN0b3J5IGNyZWF0aW9uIGZhaWwuPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+PCEtLSAtLT48L0E+PEgzPgorUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIDxCPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3Rvcnk8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3Rvci4KKyBDcmVhdGUgYSBmYWN0b3J5IGFjY29yZGluZyB0byBzZXJ2bGV0IHNldHRpbmdzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIE91ciBzZXJ2bGV0IGNvbnRleHQuPEREPjxDT0RFPnByb3BlcnRpZXM8L0NPREU+IC0gTWFwIGNvbnRhaW5pbmcgYWxsIHByb3BlcnRpZXMuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBJZiBmYWN0b3J5IGNyZWF0aW9uIGZhaWwuPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY3JlYXRlRmFjdG9yeUZyb21DbGFzc25hbWUoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS51dGlsLk1hcCwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2NyZWF0ZUZhY3RvcnlGcm9tQ2xhc3NuYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQT4gPEI+Y3JlYXRlRmFjdG9yeUZyb21DbGFzc25hbWU8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS51dGlsLk1hcCZuYnNwO3Byb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIERlZmluaXRpb24gZmFjdG9yeSBmcm9tIHByb3ZpZGVkIGNsYXNzbmFtZS4KKyBJZiBhIGZhY3RvcnkgY2xhc3MgbmFtZSBpcyBwcm92aWRlZCwgYSBmYWN0b3J5IG9mIHRoaXMgY2xhc3MgaXMgY3JlYXRlZC4gT3RoZXJ3aXNlLAorIGEgZGVmYXVsdCBmYWN0b3J5IGlzIGNyZWF0ZWQuCisgRmFjdG9yeSBtdXN0IGhhdmUgYSBjb25zdHJ1Y3RvciB0YWtpbmcgU2VydmxldENvbnRleHQgYW5kIE1hcCBhcyBwYXJhbWV0ZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNsYXNzbmFtZTwvQ09ERT4gLSBDbGFzcyBuYW1lIG9mIHRoZSBmYWN0b3J5IHRvIGNyZWF0ZS48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuPEREPjxDT0RFPnByb3BlcnRpZXM8L0NPREU+IC0gTWFwIG9mIG5hbWUvcHJvcGVydHkgcGFzc2VkIHRvIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+bmV3bHkgY3JlYXRlZCBmYWN0b3J5LgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gSWYgYW4gZXJyb3Igb2NjdXIgd2hpbGUgaW5pdGlhbGl6aW5nIGZhY3Rvcnk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNyZWF0ZURlZmF1bHRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVEZWZhdWx0RmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmNyZWF0ZURlZmF1bHRGYWN0b3J5PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPkNyZWF0ZSBkZWZhdWx0IERlZmluaXRpb24gZmFjdG9yeS4KKyBGYWN0b3J5IG11c3QgaGF2ZSBhIGNvbnN0cnVjdG9yIHRha2luZyBTZXJ2bGV0Q29udGV4dCBhbmQgTWFwIGFzIHBhcmFtZXRlci4KKyBJbiB0aGlzIGltcGxlbWVudGF0aW9uLCBkZWZhdWx0IGZhY3RvcnkgaXMgb2YgY2xhc3MgSTE4bkZhY3RvcnlTZXQKKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuPEREPjxDT0RFPnByb3BlcnRpZXM8L0NPREU+IC0gTWFwIG9mIG5hbWUvcHJvcGVydHkgcGFzc2VkIHRvIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+bmV3bHkgY3JlYXRlZCBmYWN0b3J5LgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gSWYgYW4gZXJyb3Igb2NjdXIgd2hpbGUgaW5pdGlhbGl6aW5nIGZhY3Rvcnk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNyZWF0ZUZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS51dGlsLk1hcCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NyZWF0ZUZhY3Rvcnk8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiA8Qj5jcmVhdGVGYWN0b3J5PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS51dGlsLk1hcCZuYnNwO3Byb3BlcnRpZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5LgorIENvbnZlbmllbmNlIG1ldGhvZC4gU2VydmxldENvbmZpZyBpcyB3cmFwcGVkIGludG8gYSBNYXAgYWxsb3dpbmcgcmV0cmlldmFsCisgb2YgaW5pdCBwYXJhbWV0ZXJzLiBGYWN0b3J5IGNsYXNzbmFtZSBpcyBhbHNvIHJldHJpZXZlZCwgYXMgd2VsbCBhcyBkZWJ1ZyBsZXZlbC4KKyBGaW5hbGx5LCBhcHByb3JpYXRlIGNyZWF0ZURlZmluaXRpb25zRmFjdG9yeSgpIGlzIGNhbGxlZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuPEREPjxDT0RFPnByb3BlcnRpZXM8L0NPREU+IC0gTWFwIGNvbnRhaW5pbmcgYWxsIHByb3BlcnRpZXMuCis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZpbml0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiA8Qj5nZXREZWZpbml0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZGVmaW5pdGlvbk5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sIj5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb248L0E+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPkdldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuCisgQ2FsbCBhcHByb3ByaWF0ZSBtZXRob2Qgb24gdW5kZXJseWluZyBmYWN0b3J5IGluc3RhbmNlLgorIFRocm93IGFwcHJvcHJpYXRlIGV4Y2VwdGlvbiBpZiBkZWZpbml0aW9uIG9yIGRlZmluaXRpb24gZmFjdG9yeSBpcyBub3QgZm91bmQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbjwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRlZmluaXRpb25OYW1lPC9DT0RFPiAtIE5hbWUgb2YgcmVxdWVzdGVkIGRlZmluaXRpb24uPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCBzZXJ2bGV0IHJlcXVlc3QuPEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIEN1cnJlbnQgc2VydmxldCBjb250ZXh0LgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiPkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjwvQT48L0NPREU+IC0gQ2FuJ3QgZmluZCBkZWZpbml0aW9uIGZhY3RvcnkuCis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gR2VuZXJhbCBlcnJvciBpbiBmYWN0b3J5IHdoaWxlIGdldHRpbmcgZGVmaW5pdGlvbi48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlbG9hZChqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorcmVsb2FkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZWxvYWQ8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPlJlbG9hZCB1bmRlcmx5aW5nIGZhY3RvcnkuCisgUmVsb2FkIGlzIGRvbmUgYnkgY3JlYXRpbmcgYSBuZXcgZmFjdG9yeSBpbnN0YW5jZSwgYW5kIHJlcGxhY2luZyB0aGUgb2xkIGluc3RhbmNlCisgd2l0aCB0aGUgbmV3IG9uZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBJZiBmYWN0b3J5IGNyZWF0aW9uIGZhaWxzLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmFjdG9yeSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGYWN0b3J5PC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQT4gPEI+Z2V0RmFjdG9yeTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB1bmRlcmx5aW5nIGZhY3RvcnkgaW5zdGFuY2UuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0RmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdEZhY3Rvcnk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmluaXRGYWN0b3J5PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cHJvcGVydGllcykKKyAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+SW5pdCBmYWN0b3J5LgorIFRoaXMgbWV0aG9kIGlzIHJlcXVpcmVkIGJ5IGludGVyZmFjZSBDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuIEl0IGlzCisgbm90IHVzZWQgaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiwgYXMgaXQgbWFuYWdlcyBpdHNlbGYgdGhlIHVuZGVybHlpbmcgY3JlYXRpb24KKyBhbmQgaW5pdGlhbGl6YXRpb24uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjaW5pdEZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS51dGlsLk1hcCkiPmluaXRGYWN0b3J5PC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuPEREPjxDT0RFPnByb3BlcnRpZXM8L0NPREU+IC0gTWFwIG9mIG5hbWUvcHJvcGVydHkgcGFzc2VkIHRvIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS4KKyBNYXAgY2FuIGNvbnRhaW4gbW9yZSBwcm9wZXJ0aWVzIHRoYW4gcmVxdWVzdGVkLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gQW4gZXJyb3Igb2NjdXIgZHVyaW5nIGluaXRpYWxpemF0aW9uLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9TdHJpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgordG9TdHJpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU3RyaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT50b1N0cmluZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+U3RyaW5nIHJlcHJlc2VudGF0aW9uLjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwOzxBIEhSRUY9IiNuZXN0ZWRfY2xhc3Nfc3VtbWFyeSI+TkVTVEVEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9jbGFzcy11c2UvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vY2xhc3MtdXNlL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZmJmMGVjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vY2xhc3MtdXNlL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXI8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL2NsYXNzLXVzZS9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9jbGFzcy11c2UvUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlYWI1M2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9jbGFzcy11c2UvUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXAgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcDwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXAKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vY2xhc3MtdXNlL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL2NsYXNzLXVzZS9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFiYmNlOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL2NsYXNzLXVzZS9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5PC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeQorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9wYWNrYWdlLWZyYW1lLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9wYWNrYWdlLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNmYjFkNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2UtZnJhbWUuaHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbiBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+Cis8Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lVGl0bGVGb250Ij4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbjwvQT48L0ZPTlQ+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitDbGFzc2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXI8L0E+Cis8QlI+Cis8QSBIUkVGPSJSZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeTwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFiMGNlMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sCkBAIC0wLDAgKzEsMTQxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbiBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24KKzwvSDI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyPC9BPjwvQj48L1REPgorPFREPldyYXBwZXIgZnJvbSBuZXcgZGVmaW5pdGlvbiBmYWN0b3J5IGludGVyZmFjZSB0byBvbGQgaW50ZXJmYWNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5odG1sIj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQj48L1REPgorPFREPkEgcmVsb2FkYWJsZSBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9wYWNrYWdlLXRyZWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiZGIxYmUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9wYWNrYWdlLXRyZWUuaHRtbApAQCAtMCwwICsxLDE0MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24gQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+UFJFVjwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXRyZWUuaHRtbCI+QWxsIFBhY2thZ2VzPC9BPjwvREw+Cis8SFI+Cis8SDI+CitDbGFzcyBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuT2JqZWN0PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS51dGlsLkFic3RyYWN0TWFwIChpbXBsZW1lbnRzIGphdmEudXRpbC5NYXApCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLnV0aWwuSGFzaE1hcCAoaW1wbGVtZW50cyBqYXZhLmxhbmcuQ2xvbmVhYmxlLCBqYXZhLnV0aWwuTWFwLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiPjxCPlJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuU2VydmxldFByb3BlcnRpZXNNYXA8L0I+PC9BPjwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCI+PEI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcjwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeTwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+KQorPC9VTD4KKzwvVUw+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS11c2UuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2UtdXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDQ1NGJjZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2UtdXNlLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIFBhY2thZ2U8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZG9jLWZpbGVzL2ltYWdlMDAxLmdpZiBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kb2MtZmlsZXMvaW1hZ2UwMDEuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2NzVjMTIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZG9jLWZpbGVzL2ltYWdlMDAxLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZG9jLWZpbGVzL3RpbGVzVU1MLmdpZiBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kb2MtZmlsZXMvdGlsZXNVTUwuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NDQ4MjIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZG9jLWZpbGVzL3RpbGVzVU1MLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2UtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGNhYWRlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2UtZnJhbWUuaHRtbApAQCAtMCwwICsxLDEwOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0ZPTlQ+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitJbnRlcmZhY2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPjxJPkF0dHJpYnV0ZURlZmluaXRpb248L0k+PC9BPgorPEJSPgorPEEgSFJFRj0iQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+PEk+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9IkNvbnRyb2xsZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5Db250cm9sbGVyPC9JPjwvQT4KKzxCUj4KKzxBIEhSRUY9IkRlZmluaXRpb25zRmFjdG9yeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPjxJPkRlZmluaXRpb25zRmFjdG9yeTwvST48L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitDbGFzc2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkFjdGlvbkNvbXBvbmVudFNlcnZsZXQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJBY3Rpb25Db250cm9sbGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QWN0aW9uQ29udHJvbGxlcjwvQT4KKzxCUj4KKzxBIEhSRUY9IkNvbXBvbmVudENvbnRleHQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db21wb25lbnRDb250ZXh0PC9BPgorPEJSPgorPEEgSFJFRj0iQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbXBvbmVudERlZmluaXRpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJDb250cm9sbGVyU3VwcG9ydC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbnRyb2xsZXJTdXBwb3J0PC9BPgorPEJSPgorPEEgSFJFRj0iRGVmaW5pdGlvbkF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRlZmluaXRpb25BdHRyaWJ1dGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJEZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRlZmluaXRpb25OYW1lQXR0cmlidXRlPC9BPgorPEJSPgorPEEgSFJFRj0iRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPgorPEJSPgorPEEgSFJFRj0iRGVmaW5pdGlvbnNVdGlsLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGVmaW5pdGlvbnNVdGlsPC9BPgorPEJSPgorPEEgSFJFRj0iRGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwPC9BPgorPEJSPgorPEEgSFJFRj0iRGlyZWN0U3RyaW5nQXR0cmlidXRlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RGlyZWN0U3RyaW5nQXR0cmlidXRlPC9BPgorPEJSPgorPEEgSFJFRj0iRW1wdHlJdGVyYXRvci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkVtcHR5SXRlcmF0b3I8L0E+Cis8QlI+Cis8QSBIUkVGPSJQYXRoQXR0cmlidXRlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UGF0aEF0dHJpYnV0ZTwvQT4KKzxCUj4KKzxBIEhSRUY9IlRpbGVzUGx1Z2luLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VGlsZXNQbHVnaW48L0E+Cis8QlI+Cis8QSBIUkVGPSJUaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0E+Cis8QlI+Cis8QSBIUkVGPSJUaWxlc1NlcnZsZXQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UaWxlc1NlcnZsZXQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJUaWxlc1V0aWwuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UaWxlc1V0aWw8L0E+Cis8QlI+Cis8QSBIUkVGPSJUaWxlc1V0aWxJbXBsLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VGlsZXNVdGlsSW1wbDwvQT4KKzxCUj4KKzxBIEhSRUY9IlRpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UaWxlc1V0aWxTdHJ1dHNJbXBsPC9BPgorPEJSPgorPEEgSFJFRj0iVGlsZXNVdGlsU3RydXRzTW9kdWxlc0ltcGwuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbDwvQT4KKzxCUj4KKzxBIEhSRUY9IlVudHlwcGVkQXR0cmlidXRlLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+Cis8QlI+Cis8QSBIUkVGPSJVcmxDb250cm9sbGVyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VXJsQ29udHJvbGxlcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0V4Y2VwdGlvbnM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT4KKzxCUj4KKzxBIEhSRUY9IlRpbGVzRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VGlsZXNFeGNlcHRpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFhN2I5ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbApAQCAtMCwwICsxLDYwOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcworPC9IMj4KKzxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLgorPFA+Cis8Qj5TZWU6PC9CPgorPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEEgSFJFRj0iI3BhY2thZ2VfZGVzY3JpcHRpb24iPjxCPkRlc2NyaXB0aW9uPC9CPjwvQT4KKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5JbnRlcmZhY2UgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJBdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwiPjxJPkF0dHJpYnV0ZURlZmluaXRpb248L0k+PC9BPjwvQj48L1REPgorPFREPkF0dHJpYnV0ZSBkZWZpbml0aW9uIHVzZWQgaW4gYSBjb21wb25lbnQgZGVmaW5pdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj48ST5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0k+PC9BPjwvQj48L1REPgorPFREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBEZWZpbml0aW9uc0ZhY3RvcnkgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJDb250cm9sbGVyLmh0bWwiPjxJPkNvbnRyb2xsZXI8L0k+PC9BPjwvQj48L1REPgorPFREPkEgY29udHJvbGxlciBpcyBhIHBpZWNlIG9mIGNvZGUgY2FsbGVkIGJlZm9yZSByZW5kZXJpbmcgYSBqc3AgcGFnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkRlZmluaXRpb25zRmFjdG9yeS5odG1sIj48ST5EZWZpbml0aW9uc0ZhY3Rvcnk8L0k+PC9BPjwvQj48L1REPgorPFREPlRpbGVzIERlZmluaXRpb24gZmFjdG9yeS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sIj5BY3Rpb25Db21wb25lbnRTZXJ2bGV0PC9BPjwvQj48L1REPgorPFREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlRpbGVzIG5vdyB1c2VzIEFjdGlvblNlcnZsZXQgd2l0aCBUaWxlc1BsdWdpbiBhbmQgVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkFjdGlvbkNvbnRyb2xsZXIuaHRtbCI+QWN0aW9uQ29udHJvbGxlcjwvQT48L0I+PC9URD4KKzxURD5TdHJ1dHMgd3JhcHBlciBpbXBsZW1lbnRhdGlvbiBvZiBDb250cm9sbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPjwvQj48L1REPgorPFREPkNvbXBvbmVudCBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQj48L1REPgorPFREPkRlZmluaXRpb24gb2YgYSB0ZW1wbGF0ZSAvIGNvbXBvbmVudCBhdHRyaWJ1dGVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQ29udHJvbGxlclN1cHBvcnQuaHRtbCI+Q29udHJvbGxlclN1cHBvcnQ8L0E+PC9CPjwvVEQ+Cis8VEQ+QmFzaWMgaW1wbGVtZW50YXRpb24gb2YgQ29udHJvbGxlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkRlZmluaXRpb25BdHRyaWJ1dGUuaHRtbCI+RGVmaW5pdGlvbkF0dHJpYnV0ZTwvQT48L0I+PC9URD4KKzxURD5BdHRyaWJ1dGUgcmVwcmVzZW50aW5nIGEgQ29tcG9uZW50IERlZmluaXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJEZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIj5EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZTwvQT48L0I+PC9URD4KKzxURD5Db21wb25lbnQgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQT48L0I+PC9URD4KKzxURD5BIFRpbGVzRmFjdG9yeUNvbmZpZyBvYmplY3QgaG9sZCBjb25maWd1cmF0aW9uIGF0dHJpYnV0ZXMgZm9yIGEgdGlsZQorIGRlZmluaXRpb24gZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkRlZmluaXRpb25zVXRpbC5odG1sIj5EZWZpbml0aW9uc1V0aWw8L0E+PC9CPjwvVEQ+Cis8VEQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sI2NyZWF0ZURlZmluaXRpb25zRmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpIj48Q09ERT5UaWxlc1V0aWwuY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0LCBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJEZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbCI+RGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwPC9BPjwvQj48L1REPgorPFREPklubmVyIGNsYXNzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRGlyZWN0U3RyaW5nQXR0cmlidXRlLmh0bWwiPkRpcmVjdFN0cmluZ0F0dHJpYnV0ZTwvQT48L0I+PC9URD4KKzxURD5Db21wb25lbnQgYXR0cmlidXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRW1wdHlJdGVyYXRvci5odG1sIj5FbXB0eUl0ZXJhdG9yPC9BPjwvQj48L1REPgorPFREPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUGF0aEF0dHJpYnV0ZS5odG1sIj5QYXRoQXR0cmlidXRlPC9BPjwvQj48L1REPgorPFREPkNvbXBvbmVudCBhdHRyaWJ1dGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJUaWxlc1BsdWdpbi5odG1sIj5UaWxlc1BsdWdpbjwvQT48L0I+PC9URD4KKzxURD5UaWxlcyBQbHVnaW4gdXNlZCB0byBpbml0aWFsaXplIFRpbGVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPlRpbGVzUmVxdWVzdFByb2Nlc3NvcjwvQT48L0I+PC9URD4KKzxURD48c3Ryb25nPlJlcXVlc3RQcm9jZXNzb3I8L3N0cm9uZz4gY29udGFpbnMgdGhlIHByb2Nlc3NpbmcgbG9naWMgdGhhdAorIHRoZSBTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0IHBlcmZvcm1zIGFzIGl0IHJlY2VpdmVzIGVhY2ggc2VydmxldCByZXF1ZXN0CisgZnJvbSB0aGUgY29udGFpbmVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iVGlsZXNTZXJ2bGV0Lmh0bWwiPlRpbGVzU2VydmxldDwvQT48L0I+PC9URD4KKzxURD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIEFjdGlvblNlcnZsZXQgaW5zdGVhZC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJUaWxlc1V0aWwuaHRtbCI+VGlsZXNVdGlsPC9BPjwvQj48L1REPgorPFREPkNsYXNzIGNvbnRhaW5pbmcgdXRpbGl0eSBtZXRob2RzIGZvciBUaWxlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlRpbGVzVXRpbEltcGwuaHRtbCI+VGlsZXNVdGlsSW1wbDwvQT48L0I+PC9URD4KKzxURD5EZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIFRpbGVzVXRpbC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlRpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCI+VGlsZXNVdGlsU3RydXRzSW1wbDwvQT48L0I+PC9URD4KKzxURD5UaWxlc1V0aWwgaW1wbGVtZW50YXRpb24gZm9yIFN0cnV0cyAxLjEgd2l0aCBvbmUgc2luZ2xlIGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJUaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sIj5UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbDwvQT48L0I+PC9URD4KKzxURD5JbXBsZW1lbnRhdGlvbiBvZiBUaWxlc1V0aWwgZm9yIFN0cnV0cyBtdWx0aSBtb2R1bGVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+VW50eXBwZWRBdHRyaWJ1dGU8L0E+PC9CPjwvVEQ+Cis8VEQ+Q29tbW9uIGltcGxlbWVudGF0aW9uIG9mIGF0dHJpYnV0ZSBkZWZpbml0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iVXJsQ29udHJvbGxlci5odG1sIj5VcmxDb250cm9sbGVyPC9BPjwvQj48L1REPgorPFREPlRpbGVzIGNvbnRyb2xsZXIgaW5jbHVkaW5nIGEgbG9jYWwgVVJMLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworCis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RXhjZXB0aW9uIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0I+PC9URD4KKzxURD5FeGNlcHRpb24gdGhyb3duIHdoZW4gYW4gZXJyb3Igb2NjdXJzIHdoaWxlIHRoZSBmYWN0b3J5IHRyaWVzIHRvCisgY3JlYXRlIGEgbmV3IGluc3RhbmNlIG1hcHBlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sIj5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb248L0E+PC9CPjwvVEQ+Cis8VEQ+RXhjZXB0aW9uIHRocm93biB3aGVuIGRlZmluaXRpb25zIGZhY3RvcnkgaXMgbm90IGZvdW5kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9BPjwvQj48L1REPgorPFREPkV4Y2VwdGlvbiB0aHJvd24gd2hlbiBhIGRlZmluaXRpb24gaXMgbm90IGZvdW5kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iVGlsZXNFeGNlcHRpb24uaHRtbCI+VGlsZXNFeGNlcHRpb248L0E+PC9CPjwvVEQ+Cis8VEQ+Um9vdCBjbGFzcyBmb3IgYWxsIFRpbGVzLWV4Y2VwdGlvbnMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEEgTkFNRT0icGFja2FnZV9kZXNjcmlwdGlvbiI+PCEtLSAtLT48L0E+PEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyBEZXNjcmlwdGlvbgorPC9IMj4KKworPFA+Cis8ZGl2IGNsYXNzPSJtYWluQ29udGVudCI+CisgICAgVGhlIFRpbGVzIHRhZ2xpYiBhbmQgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyB3ZWIgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSAKKyAgICBwaWVjZXMgb2YgcGFnZXMsIGNhbGxlZCBUaWxlcy4gQSBUaWxlcyBpcyB1c3VhbGx5IGEgc2ltcGxlIEpTUCBwYWdlLgorPGltZyBzcmM9ImRvYy1maWxlcy90aWxlc1VNTC5naWYiIGFsdD0iVGFnTGliIFRpbGVzIFVNTCI+CisKKzxkaXYgY2xhc3M9InNlY3Rpb24iPgorPGgyPkludHJvZHVjdGlvbjwvaDI+CisgICAgPHA+VGhlIFRpbGVzIGZyYW1ld29yayBhbGxvd3MgYnVpbGRpbmcgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSBUaWxlcy4gCisgICAgICBBcyBhbiBleGFtcGxlLCB0aGUgcGFnZSBpbiB0aGUgbmV4dCBmaWd1cmUgY2FuIGJlIGJ1aWxkIGJ5IGFzc2VtYmxpbmcgYSAKKyAgICAgIGhlYWRlciwgYSBmb290ZXIsIGEgbWVudSBhbmQgYSBib2R5LjwvcD4KKyAgICA8cD48aW1nIHNyYz0iZG9jLWZpbGVzL2ltYWdlMDAxLmdpZiIgaGVpZ2h0PSIxNjkiIHdpZHRoPSIxNDUiIGFsdD0iZG9jLWZpbGVzL2ltYWdlMDAxIj48L3A+CisgICAgPHA+RWFjaCBUaWxlcyAoaGVhZGVyLCBtZW51LCBib2R5LCAuLi4pIGlzIGEgSlNQIHBhZ2UgYW5kIGNhbiBpdHNlbGYgYmUgYnVpbGQgCisgICAgICBieSBhc3NlbWJsaW5nIG90aGVyIFRpbGVzLjwvcD4KKzxwPlVzaW5nIFRpbGVzIGNhbiBiZSBjb21wYXJlZCBhcyB1c2luZyBKYXZhIG1ldGhvZHM6ICBZb3UgbmVlZCB0byBkZWZpbmUgdGhlIFRpbGVzICh0aGUgbWV0aG9kIGJvZHkpLCBhbmQgdGhlbiB5b3UgY2FuICJjYWxsIiB0aGlzIGJvZHkgYW55d2hlcmUgeW91IHdhbnQsIHBhc3NpbmcgaXQgc29tZSBwYXJhbWV0ZXJzLiBJbiBUaWxlcywgcGFyYW1ldGVycyBhcmUgY2FsbGVkICJhdHRyaWJ1dGVzIiBpbiBvcmRlciB0byBhdm9pZCBjb25mdXNpb24gd2l0aCB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzLjwvcD4KKyAgICA8cD5UaGUgVGlsZXMgYm9keSBjYW4gYmUgYSBzaW1wbGUgSlNQIHBhZ2UsIGEgU3RydXRzIGFjdGlvbiBvciBhbnkgVVJJIHBvaW50aW5nIAorICAgICAgdG8gYSByZXNvdXJjZSBpbnNpZGUgdGhlIGN1cnJlbnQgd2ViIHNpdGUuPC9wPgorICAgIDxwPkluc2VydGluZyB0aGUgYm9keSwgb3IgY2FsbGluZyBpdCwgaXMgZG9uZSB3aXRoIHRoZSB0YWcgJmx0O3RpbGVzOmluc2VydCAKKyAgICAgIC4uLiZndDsgYW55d2hlcmUgaW4gYSBKU1AgcGFnZS4gSW5zZXJ0aW9uIGNhbiBhbHNvIGJlIGRvbmUgYnkgc3BlY2lmeWluZyAKKyAgICAgIGEgPGVtPmRlZmluaXRpb24gbmFtZSA8L2VtPmFzIHRoZSBwYXRoIG9mIGEgU3RydXRzIGZvcndhcmQgb3IgYXMgaW5wdXQsIAorICAgICAgZm9yd2FyZCBvciBpbmNsdWRlIGF0dHJpYnV0ZXMgb2YgYSBTdHJ1dHMgYWN0aW9uLjwvcD4KKyAgICA8cD5UaWxlcyBib2RpZXMgYXJlIHVzZWQgdG8gY3JlYXRlIGxheW91dHMsIHJldXNhYmxlIHBhcnRzLCAuLi4gVGlsZXMgaW5zZXJ0aW9ucyAKKyAgICAgIGFyZSB1c2VkIHRvIGluc2VydCBUaWxlcy4gVGhlIHNhbWUgVGlsZXMgY2FuIGJlIHJldXNlZCBzZXZlcmFsIHRpbWVzIGluIAorICAgICAgdGhlIHNhbWUgc2l0ZSwgb3IgZXZlbiBpbiB0aGUgc2FtZSBwYWdlLjwvcD4KKzxwPkluc2VydGlvbiBvZiBhIFRpbGVzIGJvZHkgY2FuIGJlIGFzc29jaWF0ZWQgdG8gYSBsb2dpY2FsIG5hbWUgaW4gd2hhdCBUaWxlcyBjYWxscyBhICJkZWZpbml0aW9uIi4gQSBkZWZpbml0aW9uIGNvbnRhaW5zIGEgbG9naWNhbCBuYW1lLCBhIHBhZ2UgdXNlZCBhcyBib2R5IGFuZCBzb21lIGF0dHJpYnV0ZSB2YWx1ZXMuIFRoZSBkZWZpbml0aW9uIGRlY2xhcmF0aW9uIGRvZXNuJ3QgaW5zZXJ0IHRoZSBhc3NvY2lhdGVkIFRpbGVzIGJvZHkuIEl0IGp1c3QgYXNzb2NpYXRlcyBpdCB3aXRoIHRoZSBuYW1lLiBBIGRlZmluaXRpb24gbmFtZSBjYW4gYmUgdXNlZCBhbnl3aGVyZSBpbnNlcnRpb24gb2YgYSBUaWxlcyBib2R5IGNhbiBvY2N1ci4gVGhlIGFzc29jaWF0ZWQgVGlsZXMgYm9keSBpcyB0aGVuIGluc2VydGVkIHdpdGggYXNzb2NpYXRlZCBhdHRyaWJ1dGVzLjwvcD4KKyAgICA8cD5UaGUgZGVmaW5pdGlvbiBkZWNsYXJhdGlvbnMgY2FuIGJlIGRvbmUgaW4gSlNQIHBhZ2VzIG9yIGluIG9uZSBvciBtb3JlIAorICAgICAgY2VudHJhbGl6ZWQgZmlsZXMuIEEgZGVmaW5pdGlvbiBjYW4gZXh0ZW5kIGFub3RoZXIgb25lLCBvdmVybG9hZCBzb21lIGF0dHJpYnV0ZXMsIAorICAgICAgYWRkIG5ldyBhdHRyaWJ1dGVzIC4uLiBUaGlzIGFsbG93cyB0aGUgZGVjbGFyYXRpb24gb2YgYSAibWFzdGVyIiBkZWZpbml0aW9uIAorICAgICAgZGVjbGFyaW5nIHRoZSBjb21tb24gbGF5b3V0LCBoZWFkZXIsIG1lbnUgYW5kIGZvb3Rlci4gQWxsIG90aGVyIGRlZmluaXRpb25zIAorICAgICAgZXh0ZW5kIHRoaXMgbWFzdGVyIGxheW91dCB0aGVyZWJ5IG1ha2luZyBpdCBwb3NzaWJsZSB0byBjaGFuZ2UgdGhlIGVudGlyZSAKKyAgICAgIHNpdGUgbG9vayAmYW1wOyBmZWVsIHNpbXBseSBieSBjaGFuZ2luZyB0aGUgbWFzdGVyIGRlZmluaXRpb24uIDwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdGlvbiI+Cis8aDI+U2ltcGxlIEV4YW1wbGVzPC9oMj4KKzxkaXYgY2xhc3M9InN1YnNlY3Rpb24xIj4KKyAgICAgIDxoMz5JbnNlcnQgYSBKU1AgcGFnZTwvaDM+CisgICAgICA8cHJlPiZsdDt0aWxlczppbnNlcnQgPHN0cm9uZz5wYWdlPC9zdHJvbmc+PSIvbGF5b3V0cy9jb21tb25MYXlvdXQuanNwIiBmbHVzaD0idHJ1ZSIgLyZndDsKKzwvcHJlPgorPHA+VGhpcyBleGFtcGxlIGluc2VydHMgdGhlIHNwZWNpZmllZCBwYWdlIGluIHBsYWNlIG9mIHRoZSB0YWcuIFRoZSBwYWdlIGF0dHJpYnV0ZSBpcyBhbnkgdmFsaWQgVVJMIHBvaW50aW5nIHRvIGEgcmVzb3VyY2UgaW5zaWRlIHRoZSBjdXJyZW50IHNpdGUuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzdWJzZWN0aW9uMSI+Cis8aDM+SW5zZXJ0IGEgVGlsZXMgcGFzc2luZyBzb21lIGF0dHJpYnV0ZXM8L2gzPgorPHByZT4KKyZsdDt0aWxlczppbnNlcnQgcGFnZT0iL2xheW91dHMvY2xhc3NpY0xheW91dC5qc3AiIGZsdXNoPSJ0cnVlIiZndDsKKyAgJmx0O3RpbGVzOnB1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJQYWdlIFRpdGxlIiAvJmd0OworICAmbHQ7dGlsZXM6cHV0IG5hbWU9ImhlYWRlciIgdmFsdWU9Ii9jb21tb24vaGVhZGVyLmpzcCIgLyZndDsKKyAgJmx0O3RpbGVzOnB1dCBuYW1lPSJmb290ZXIiIHZhbHVlPSIvY29tbW9uL2Zvb3Rlci5qc3AiIC8mZ3Q7CisgICZsdDt0aWxlczpwdXQgbmFtZT0ibWVudSIgICB2YWx1ZT0iL2NvbW1vbi9tZW51LmpzcCIgLyZndDsKKyAgJmx0O3RpbGVzOnB1dCBuYW1lPSJib2R5IiAgIHZhbHVlPSIvdGlsZXMvbWFpbkJvZHkuanNwIiAvJmd0OworJmx0Oy90aWxlczppbnNlcnQmZ3Q7Cis8L3ByZT4KKyAgICAgIDxwPlRoaXMgZXhhbXBsZSBpbnNlcnRzIHRoZSBzcGVjaWZpZWQgcGFnZSwgcGFzc2luZyBpdCB0aGUgYXR0cmlidXRlcy4gQXR0cmlidXRlcyAKKyAgICAgICAgYXJlIHN0b3JlZCBpbiBhIFRpbGVzIGNvbnRleHQgd2hpY2ggaXMgcGFzc2VkIHRvIHRoZSBpbnNlcnRlZCBwYWcgYW5kIAorICAgICAgICBjYW4gdGhlbiBiZSBhY2Nlc3NzZWQgYnkgdGhlaXIgbmFtZXMuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzdWJzZWN0aW9uMSI+Cis8aDM+UmV0cmlldmUgYW4gYXR0cmlidXRlIHZhbHVlIGFzIFN0cmluZzwvaDM+Cis8cHJlPgorJmx0O3RpbGVzOmdldEFzU3RyaW5nIG5hbWU9InRpdGxlIiAvJmd0OworPC9wcmU+Cis8cD5UaGlzIGV4YW1wbGUgcmV0cmlldmVzIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlICJ0aXRsZSIgYW5kIHByaW50cyBpdCBhcyBhIFN0cmluZyBpbiB0aGUgY3VycmVudCBvdXRwdXQgc3RyZWFtLiBUaGUgbWV0aG9kIHRvU3RyaW5nKCkgaXMgYXBwbGllZCBvbiB0aGUgYXR0cmlidXRlIHZhbHVlLCBhbGxvd2luZyB0byBwYXNzIGFueSBraW5kIG9mIG9iamVjdCBhcyB2YWx1ZS48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InN1YnNlY3Rpb24xIj4KKzxoMz5JbnNlcnQgVGlsZXMgcmVmZXJlbmNlZCBieSBhbiBhdHRyaWJ1dGU8L2gzPgorPHByZT4KKyZsdDt0aWxlczppbnNlcnQgYXR0cmlidXRlPSdtZW51JyAvJmd0OworPC9wcmU+CisgICAgICA8cD5UaGlzIGluc2VydHMgdGhlIFRpbGVzIHJlZmVyZW5jZWQgYnkgdGhlIGF0dHJpYnV0ZSAibWVudSIgdmFsdWUuIFRoZSAKKyAgICAgICAgc3BlY2lmaWVkIGF0dHJpYnV0ZSB2YWx1ZSBpcyBmaXJzdCByZXRyaWV2ZWQgZnJvbSBjdXJyZW50IFRpbGVzJ3MgY29udGV4dCwgCisgICAgICAgIGFuZCB0aGVuIHRoZSB2YWx1ZSBpcyB1c2VkIGFzIGEgcGFnZSB0YXJnZXQgdG8gaW5zZXJ0LjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic3Vic2VjdGlvbjEiPgorPGgzPkNsYXNzaWMgTGF5b3V0IDwvaDM+CisgICAgICA8cD5UaGlzIGV4YW1wbGUgaXMgYSBsYXlvdXQgYXNzZW1ibGluZyBhIHBhZ2UgaW4gdGhlIGNsYXNzaWMgaGVhZGVyLWZvb3Rlci1tZW51LWJvZHkgCisgICAgICAgIGZhc2hpb24uPC9wPgorICAgICAgPHByZT4KKyZsdDslQCB0YWdsaWIgdXJpPSIvV0VCLUlORi9zdHJ1dHMtdGlsZXMudGxkIiBwcmVmaXg9InRpbGVzIiAlJmd0OworJmx0O0hUTUwmZ3Q7CisgICZsdDtIRUFEJmd0OworICAgICZsdDtsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iJmx0OyU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJSZndDsvbGF5b3V0cy9zdHlsZXNoZWV0LmNzcyIgCisgICAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0L2NzcyIvJmd0OworICAgICZsdDt0aXRsZSZndDsmbHQ7dGlsZXM6Z2V0QXNTdHJpbmcgbmFtZT0idGl0bGUiLyZndDsmbHQ7L3RpdGxlJmd0OworICAmbHQ7L0hFQUQmZ3Q7CismbHQ7Ym9keSZndDsKKyZsdDt0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iNSImZ3Q7CismbHQ7dHImZ3Q7CisgICZsdDt0ZCBjb2xzcGFuPSIyIiZndDsmbHQ7dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0iaGVhZGVyIiAvJmd0OyZsdDsvdGQmZ3Q7CismbHQ7L3RyJmd0OworJmx0O3RyJmd0OworICAmbHQ7dGQgd2lkdGg9IjE0MCIgdmFsaWduPSJ0b3AiJmd0OworICAgICZsdDt0aWxlczppbnNlcnQgYXR0cmlidXRlPSdtZW51JyAvJmd0OworICAmbHQ7L3RkJmd0OworICAmbHQ7dGQgdmFsaWduPSJ0b3AiICBhbGlnbj0ibGVmdCImZ3Q7CisgICAgJmx0O3RpbGVzOmluc2VydCBhdHRyaWJ1dGU9J2JvZHknIC8mZ3Q7CisgICZsdDsvdGQmZ3Q7CismbHQ7L3RyJmd0OworJmx0O3RyJmd0OworICAmbHQ7dGQgY29sc3Bhbj0iMiImZ3Q7CisgICAgJmx0O3RpbGVzOmluc2VydCBhdHRyaWJ1dGU9ImZvb3RlciIgLyZndDsKKyAgJmx0Oy90ZCZndDsKKyZsdDsvdHImZ3Q7CismbHQ7L3RhYmxlJmd0OworJmx0Oy9ib2R5Jmd0OworJmx0Oy9odG1sJmd0OworPC9wcmU+CisgICAgICA8cD5UaGUgbGF5b3V0IGlzIGRlY2xhcmVkIGluIGEgSlNQIHBhZ2UgKGV4OiAvbGF5b3V0cy9jbGFzc2ljTGF5b3V0LmpzcCkuIAorICAgICAgICBJdCBjYW4gYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSB0YWcgZGVzY3JpYmVkIGluICI8YSBocmVmPSIjX0luc2VydF9hX3BhZ2VfcGFzc2luZyBzb21lIGF0dHJpYnV0Ij5JbnNlcnQgCisgICAgICAgIGEgcGFnZSBwYXNzaW5nIHNvbWUgYXR0cmlidXRlczwvYT4iLiA8L3A+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic2VjdGlvbiI+Cis8aDI+RGVmaW5pdGlvbnM8L2gyPgorICAgIDxwPkEgZGVmaW5pdGlvbiBhc3NvY2lhdGVzIGEgbG9naWNhbCBuYW1lIHdpdGggdGhlIFVSTCBvZiBhIFRpbGVzIHRvIGJlIGluc2VydGVkIAorICAgICAgYW5kIHNvbWUgYXR0cmlidXRlIHZhbHVlcy4gQSBkZWZpbml0aW9uIGRvZXNuJ3QgaW5zZXJ0IHRoZSBUaWxlcy4gVGhpcyBpcyAKKyAgICAgIGRvbmUgbGF0ZXIgdXNpbmcgdGhlIGRlZmluaXRpb24gbmFtZS4gQSBkZWZpbml0aW9uIG5hbWUgY2FuIGJlIGluc2VydGVkIAorICAgICAgYXMgb2Z0ZW4gYXMgeW91IHdhbnQgaW4geW91ciBzaXRlLCBtYWtpbmcgaXQgZWFzeSB0byByZXVzZSBhIFRpbGVzLiA8L3A+CisgICAgPHA+QSBkZWZpbml0aW9uIGNhbiBleHRlbmQgYW5vdGhlciBkZWZpbml0aW9uIGFuZCBvdmVybG9hZCBzb21lIGF0dHJpYnV0ZXMgCisgICAgICBvciBhZGQgbmV3IG9uZXMuIFRoaXMgbWFrZXMgZWFzeSBmYWN0b3JpemF0aW9uIG9mIGRlZmluaXRpb25zIGRpZmZlcmluZyAKKyAgICAgIGJ5IHNvbWUgYXR0cmlidXRlcy4gRm9yIGV4YW1wbGUsIHlvdSBjYW4gZGVmaW5lIGEgbWFzdGVyIGRlZmluaXRpb24gZGVjbGFyaW5nIAorICAgICAgdGhlIG1haW4gaGVhZGVyLCBtZW51LCBmb290ZXIsIGFuZCBhIGRlZmF1bHQgdGl0bGUuIFRoZW4gbGV0IGVhY2ggb2YgeW91ciAKKyAgICAgIHBhZ2UgZGVmaW5pdGlvbnMgZXh0ZW5kIHRoaXMgbWFzdGVyIGRlZmluaXRpb24gYW5kIG92ZXJsb2FkIHRoZSB0aXRsZSBhbmQgCisgICAgICB0aGUgYm9keS48L3A+CisgICAgPHA+RGVmaW5pdGlvbnMgY2FuIGJlIGRlY2xhcmVkIGluIGEgSlNQIHBhZ2UsIG9yIGluIG9uZSBvciBtb3JlIGNlbnRyYWxpemVkIAorICAgICAgZmlsZXMuIFRvIGVuYWJsZSB0aGUgZGVmaW5pdGlvbnMgZnJvbSBjZW50cmFsaXplZCBmaWxlcywgeW91IG5lZWQgdG8gaW5pdGlhbGl6ZSAKKyAgICAgIHRoZSAiZGVmaW5pdGlvbnMgZmFjdG9yeSIgd2hpY2ggd2lsbCBwYXJzZSB0aGUgZGVmaW5pdGlvbnMgZnJvbSB0aGUgZmlsZXMgCisgICAgICBhbmQgcHJvdmlkZSB0aGVtIHRvIHRoZSBUaWxlcyBmcmFtZXdvcmsuPC9wPgorPGRpdiBjbGFzcz0ic3Vic2VjdGlvbjEiPgorPGgzPkVuYWJsaW5nIERlZmluaXRpb24gRmFjdG9yeTwvaDM+Cis8cD5UbyBlbmFibGUgVGlsZXMgZGVmaW5pdGlvbnMgZGVzY3JpYmVkIGluIG9uZSBvciBtb3JlIGZpbGVzLCB5b3UgbmVlZCB0byB3cml0ZSB0aGVzZSBmaWxlcyBhbmQgdG8gaW5pdGlhbGl6ZSB0aGUgZGVmaW5pdGlvbiBmYWN0b3J5LiA8L3A+CisgICAgICA8cD5Jbml0aWFsaXphdGlvbiBpcyBkaWZmZXJlbnQgZGVwZW5kaW5nIG9uIHRoZSBTdHJ1dHMgdmVyc2lvbiB5b3UgdXNlLCAKKyAgICAgICAgb3IgaWYgeW91IGRvIG5vdCB1c2UgU3RydXRzIGF0IGFsbC48L3A+Cis8ZGl2IGNsYXNzPSJzdWJzZWN0aW9uMiI+Cis8aDQ+U3RydXRzMS4xPC9oND4KKyAgICAgICAgPHA+VXNlIHRoZSBUaWxlcyBwbHVnLWluIHRvIGVuYWJsZSBUaWxlcyBkZWZpbml0aW9ucy4gVGhpcyBwbHVnLWluIGNyZWF0ZXMgCisgICAgICAgICAgdGhlIGRlZmluaXRpb24gZmFjdG9yeSBhbmQgcGFzc2VzZSBpdCBhIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHBvcHVsYXRlZCAKKyAgICAgICAgICB3aXRoIHBhcmFtZXRlcnMuIFBhcmFtZXRlcnMgY2FuIGJlIHNwZWNpZmllZCBpbiB0aGUgd2ViLnhtbCBmaWxlIG9yIAorICAgICAgICAgIGFzIHBsdWctaW4gcGFyYW1ldGVycy4gVGhlIHBsdWctaW4gZmlyc3QgcmVhZHMgcGFyYW1ldGVycyBmcm9tIHdlYi54bWwsIAorICAgICAgICAgIGFuZCB0aGVuIG92ZXJsb2FkcyB0aGVtIHdpdGggdGhlIG9uZXMgZm91bmQgaW4gdGhlIHBsdWctaW4uIEFsbCBwYXJhbWV0ZXJzIAorICAgICAgICAgIGFyZSBvcHRpb25hbCBhbmQgY2FuIGJlIG9taXR0ZWQuIFRoZSBwbHVnLWluIHNob3VsZCBiZSBkZWNsYXJlZCBpbiBlYWNoIAorICAgICAgICAgIHN0cnV0cy1jb25maWcgZmlsZTo8L3A+Cis8cHJlPgorICAmbHQ7cGx1Zy1pbiBjbGFzc05hbWU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzUGx1Z2luIiAmZ3Q7CisgICAgJmx0O3NldC1wcm9wZXJ0eSBwcm9wZXJ0eT0iZGVmaW5pdGlvbnMtY29uZmlnIiAKKwkgICAgICAgICAgICAgICAgIHZhbHVlPSIvV0VCLUlORi90aWxlcy1kZWZzLnhtbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvV0VCLUlORi90aWxlcy10ZXN0cy1kZWZzLnhtbCwvV0VCLUlORi90aWxlcy10dXRvcmlhbC1kZWZzLnhtbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvV0VCLUlORi90aWxlcy1leGFtcGxlcy1kZWZzLnhtbCIgLyZndDsKKyAgICAmbHQ7c2V0LXByb3BlcnR5IHByb3BlcnR5PSJtb2R1bGVBd2FyZSIgdmFsdWU9InRydWUiIC8mZ3Q7CisgICAgJmx0O3NldC1wcm9wZXJ0eSBwcm9wZXJ0eT0iZGVmaW5pdGlvbnMtcGFyc2VyLXZhbGlkYXRlIiB2YWx1ZT0idHJ1ZSIgLyZndDsKKyAgJmx0Oy9wbHVnLWluJmd0OworPC9wcmU+Cis8dWw+Cis8bGk+ZGVmaW5pdGlvbnMtY29uZmlnOiAob3B0aW9uYWwpIDx1bD4KKzxsaT5TcGVjaWZ5IGNvbmZpZ3VyYXRpb24gZmlsZSBuYW1lcy4gVGhlcmUgY2FuIGJlIHNldmVyYWwgY29tbWEgc2VwYXJhdGVkIGZpbGUgbmFtZXMgKGRlZmF1bHQ6ID8/ICk8L2xpPgorPC91bD4KKzwvbGk+CisgICAgICAgICAgPGxpPmRlZmluaXRpb25zLXBhcnNlci12YWxpZGF0ZTogKG9wdGlvbmFsKQorPHVsPgorICAgICAgICAgICAgICA8bGk+U3BlY2lmeSBpZiBYTUwgcGFyc2VyIHNob3VsZCB2YWxpZGF0ZSB0aGUgVGlsZXMgY29uZmlndXJhdGlvbiAKKyAgICAgICAgICAgICAgICBmaWxlIAorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgIDxsaT50cnVlIDogdmFsaWRhdGUuIERURCBzaG91bGQgYmUgc3BlY2lmaWVkIGluIGZpbGUgaGVhZGVyIChkZWZhdWx0KTwvbGk+Cis8bGk+ZmFsc2UgOiBubyB2YWxpZGF0aW9uCSAgPC9saT4KKworPC91bD4KKzwvbGk+Cis8L3VsPgorPC9saT4KKworICAgICAgICAgIDxsaT5tb2R1bGVBd2FyZTogKG9wdGlvbmFsKQorICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgIDxsaT5TcGVjaWZ5IGlmIHRoZSBUaWxlcyBkZWZpbml0aW9uIGZhY3RvcnkgaXMgbW9kdWxlIGF3YXJlLiBJZiB0cnVlIChkZWZhdWx0KSwgCisJCQl0aGVyZSB3aWxsIGJlIG9uZSBmYWN0b3J5IGZvciBlYWNoIFN0cnV0cyBtb2R1bGUuIAorCQkJSWYgZmFsc2UsIHRoZXJlIHdpbGwgYmUgb25lIGNvbW1vbiBmYWN0b3J5IGZvciBhbGwgbW9kdWxlLiBJbiB0aGlzIGxhdGVyIGNhc2UsIAorCQkJaXQgaXMgc3RpbGwgbmVlZGVkIHRvIGRlY2xhcmUgb25lIHBsdWdpbiBwZXIgbW9kdWxlLiBUaGUgZmFjdG9yeSB3aWxsIGJlIAorCQkJaW5pdGlhbGl6ZWQgd2l0aCBwYXJhbWV0ZXJzIGZvdW5kIGluIHRoZSBmaXJzdCBpbml0aWFsaXplZCBwbHVnaW4gKGdlbmVyYWxseSB0aGUKKwkJCW9uZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRlZmF1bHQgbW9kdWxlKS4gCisgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgPGxpPnRydWUgOiBUaWxlcyBmcmFtZXdvcmsgaXMgbW9kdWxlIGF3YXJlIDwvbGk+CisgICAgICAgICAgICAgPGxpPmZhbHNlIDpUaWxlcyBmcmFtZXdvcmsgaGFzIG9uZSBzaW5nbGUgZmFjdG95IHNoYXJlZCBhbW9uZyBtb2R1bGVzIChkZWZhdWx0KTwvbGk+CisgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICA8L2xpPgorPC91bD4KKzwvbGk+CisKKzxsaT50aWxlc1V0aWxJbXBsQ2xhc3NuYW1lOiAob3B0aW9uYWwgLSBmb3IgYWR2YW5jZWQgdXNlcikKKyA8dWw+CisgICAgPGxpPlNwZWNpZnkgVGhlIGNsYXNzbmFtZSBvZiB0aGUgVGlsZXNVdGlsIGltcGxlbWVudGF0aW9uIHRvIHVzZS4gVGhlIHNwZWNpZmllZCBjbGFzcyBzaG91bGQKKwliZSBhIHN1YmNsYXNzIG9mIFRpbGVzVXRpbFN0cnV0c0ltcGwuIFRoaXMgb3B0aW9uIGRpc2FibGUgdGhlIG1vZHVsZUF3YXJlIG9wdGlvbi4KKwk8YnI+U3BlY2lmeWluZyAiVGlsZXNVdGlsU3RydXRzSW1wbCIgaXMgZXF1aXZhbGVudCB0byBtb2R1bGVBd2FyZSA9IGZhbHNlLjwvYnI+CisJPGJyPlNwZWNpZnlpbmcgIlRpbGVzVXRpbFN0cnV0c01vZHVsZUltcGwiIGlzIGVxdWl2YWxlbnQgdG8gbW9kdWxlQXdhcmUgPSB0cnVlLjwvYnI+CisJVGhpcyBvcHRpb24gaXMgdGFrZW4gaW50byBhY2NvdW50IG9ubHkgb25jZSwgd2hlbiBpdCBpcyBmaXJzdCBlbmNvdW50ZXJlZC4gVG8gYXZvaWQgcHJvYmxlbXMsCisJaXQgaXMgYWR2aWNlIHRvIHNwZWNpZnkgdGhlIHNhbWUgdmFsdWVzIGluIGFsbCBUaWxlc1BsdWdpbiBkZWNsYXJhdGlvbi4KKyAgICA8L2xpPgorIDwvdWw+Cis8L2xpPgorCis8L3VsPgorICAgICAgICA8cD5UaGUgVGlsZXNQbHVnaW4gY2xhc3MgY3JlYXRlcyBvbmUgZGVmaW5pdGlvbiBmYWN0b3J5IGZvciBlYWNoIHN0cnV0cyBtb2R1bGUuCisJCTwvcD4KKwkJPHA+CisJCUlmIHRoZSBmbGFnIG1vZHVsZUF3YXJlIGlzIGZhbHNlLCBvbmx5IG9uZSBzaGFyZWQgZmFjdG9yeSBpcyBjcmVhdGVkIGZvciBhbGwgbW9kdWxlcy4gCisJCUluIHRoaXMgbGF0ZXIgY2FzZSwgdGhlIGZhY3RvcnkgaXMgaW5pdGlhbGl6ZWQgd2l0aCBwYXJhbWV0ZXJzIGZvdW5kIGluIHRoZSBmaXJzdCBwbHVnaW4uCisJCVRoZSBwbHVnaW5zIHNob3VsZCBiZSBkZWNsYXJlZCBpbiBhbGwgbW9kdWxlcywgYW5kIHRoZSBtb2R1bGVBd2FyZSBmbGFnIHNob3VsZCBiZSAKKwkJdGhlIHNhbWUgZm9yIHRoZSBlbnRpcmUgYXBwbGljYXRpb24uPC9wPiAKKwkJPHA+CisgICAgICAgICAgUGF0aHMgZm91bmQgaW4gVGlsZXMgZGVmaW5pdGlvbnMgYXJlIHJlbGF0aXZlIHRvIHRoZSBtYWluIGNvbnRleHQuPC9wPgorICAgICAgICA8cD5Zb3UgZG9uJ3QgbmVlZCB0byBzcGVjaWZ5IGEgVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgCisgICAgICAgICAgZG9uZSBieSB0aGUgcGx1Zy1pbi4gSWYsIGhvd2V2ZXIsIHlvdSB3YW50IHRvIHNwZWNpZnkgeW91ciBvd24gUmVxdWVzdFByb2Nlc3NvciwgCisgICAgICAgICAgaXQgc2hvdWxkIGV4dGVuZCB0aGUgVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLiBUaGUgcGx1Zy1pbiBjaGVja3MgdGhpcyAKKyAgICAgICAgICBjb25zdHJhaW50LjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic3Vic2VjdGlvbjIiPgorPGg0PlN0cnV0czEuMC54PC9oND4KKzxwPllvdSBuZWVkIHRvIHVzZSBhIHNwZWNpYWwgc2VydmxldCBleHRlbmRpbmcgdGhlIFN0cnV0cyBzZXJ2bGV0LiBUaGlzIGlzIHNwZWNpZmllZCBpbiB0aGUgd2ViLnhtbCBmaWxlIG9mIHlvdXIgYXBwbGljYXRpb246PC9wPgorICAgICAgICA8cHJlPgorICAmbHQ7c2VydmxldCZndDsKKyAgICAmbHQ7c2VydmxldC1uYW1lJmd0O2FjdGlvbiZsdDsvc2VydmxldC1uYW1lJmd0OworCSZsdDtzZXJ2bGV0LWNsYXNzJmd0O29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkFjdGlvbkNvbXBvbmVudFNlcnZsZXQmbHQ7L3NlcnZsZXQtY2xhc3MmZ3Q7ICAgCisgICAgICAgICZsdDshLS0gVGlsZXMgU2VydmxldCBwYXJhbWV0ZXIgCisJCSAgU3BlY2lmeSBjb25maWd1cmF0aW9uIGZpbGUgbmFtZXMuIFRoZXJlIGNhbiBiZSBzZXZlcmFsIGNvbW1hIAorCQkgIHNlcGFyYXRlZCBmaWxlIG5hbWVzCisJCS0tJmd0OyAJCisJJmx0O2luaXQtcGFyYW0mZ3Q7CisgICAgICAmbHQ7cGFyYW0tbmFtZSZndDtkZWZpbml0aW9ucy1jb25maWcmbHQ7L3BhcmFtLW5hbWUmZ3Q7CisgICAgICAmbHQ7cGFyYW0tdmFsdWUmZ3Q7L1dFQi1JTkYvdGlsZXMtZGVmcy54bWwmbHQ7L3BhcmFtLXZhbHVlJmd0OworICAgICZsdDsvaW5pdC1wYXJhbSZndDsKKyAgICAgICAgJmx0OyEtLSBUaWxlcyBTZXJ2bGV0IHBhcmFtZXRlciAKKwkJU3BlY2lmeSBpZiBYTUwgcGFyc2VyIHNob3VsZCB2YWxpZGF0ZSB0aGUgVGlsZXMgY29uZmlndXJhdGlvbiBmaWxlKHMpLgorCQl0cnVlIDogdmFsaWRhdGUuIERURCBzaG91bGQgYmUgc3BlY2lmaWVkIGluIGZpbGUgaGVhZGVyLgorCQlmYWxzZSA6IG5vIHZhbGlkYXRpb24KKwkJLS0mZ3Q7IAkKKyAgICAmbHQ7aW5pdC1wYXJhbSZndDsKKyAgICAgICZsdDtwYXJhbS1uYW1lJmd0O2RlZmluaXRpb25zLXBhcnNlci12YWxpZGF0ZSZsdDsvcGFyYW0tbmFtZSZndDsKKyAgICAgICZsdDtwYXJhbS12YWx1ZSZndDt0cnVlJmx0Oy9wYXJhbS12YWx1ZSZndDsKKyAgICAmbHQ7L2luaXQtcGFyYW0mZ3Q7CisgICAgIC4uLgorICAmbHQ7L3NlcnZsZXQmZ3Q7Cis8L3ByZT4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic3Vic2VjdGlvbjIiPgorPGg0PldpdGhvdXQgU3RydXRzPC9oND4KKzxwPlRpbGVzIGNhbiBiZSB1c2VkIHdpdGhvdXQgU3RydXRzLiBUbyBpbml0aWFsaXplIHRoZSBkZWZpbml0aW9uIGZhY3RvcnksIHlvdSBjYW4gdXNlIHRoZSBwcm92aWRlZCBzZXJ2bGV0LiBEZWNsYXJlIGl0IGluIHRoZSB3ZWIueG1sIGZpbGUgb2YgeW91ciBhcHBsaWNhdGlvbjo8L3A+Cis8cHJlPgorICAmbHQ7c2VydmxldCZndDsKKyAgICAmbHQ7c2VydmxldC1uYW1lJmd0O2FjdGlvbiZsdDsvc2VydmxldC1uYW1lJmd0OworICAgICZsdDtzZXJ2bGV0LWNsYXNzJmd0O29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzU2VydmxldCZsdDsvc2VydmxldC1jbGFzcyZndDsKKworCisJJmx0O2luaXQtcGFyYW0mZ3Q7CisgICAgICAmbHQ7cGFyYW0tbmFtZSZndDtkZWZpbml0aW9ucy1jb25maWcmbHQ7L3BhcmFtLW5hbWUmZ3Q7CisgICAgICAmbHQ7cGFyYW0tdmFsdWUmZ3Q7L1dFQi1JTkYvdGlsZXMtZGVmcy54bWwmbHQ7L3BhcmFtLXZhbHVlJmd0OworICAgICZsdDsvaW5pdC1wYXJhbSZndDsKKyAgICAmbHQ7aW5pdC1wYXJhbSZndDsKKyAgICAgICZsdDtwYXJhbS1uYW1lJmd0O2RlZmluaXRpb25zLXBhcnNlci12YWxpZGF0ZSZsdDsvcGFyYW0tbmFtZSZndDsKKyAgICAgICZsdDtwYXJhbS12YWx1ZSZndDt0cnVlJmx0Oy9wYXJhbS12YWx1ZSZndDsKKyAgICAmbHQ7L2luaXQtcGFyYW0mZ3Q7CisgICAuLi4KKzwvcHJlPgorPHA+VGhlIHBhcmFtZXRlcnMgYXJlIHRoZSBzYW1lIGFzIGZvciBTdHJ1dHMxLjEgb3IgMS4wLjwvcD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzdWJzZWN0aW9uMSI+Cis8aDM+RGVmaW5pdGlvbiBGaWxlIFN5bnRheDwvaDM+Cis8cD5UaGUgZGVmaW5pdGlvbiBmaWxlIHN5bnRheCBjYW4gYmUgZm91bmQgaW4gdGhlIAorPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvZHRkcy90aWxlcy1jb25maWdfMV8xLmR0ZCI+dGlsZXMtY29uZmlnXzFfMS5kdGQgZmlsZTwvYT4uIAorPC9wPgorPHA+Rm9sbG93aW5nIGlzIGEgc2ltcGxlIGV4YW1wbGU6PC9wPgorICAgICAgPHByZT4KKyZsdDshRE9DVFlQRSB0aWxlcy1kZWZpbml0aW9ucyBQVUJMSUMKKyAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBUaWxlcyBDb25maWd1cmF0aW9uLy9FTiIKKyAgICAgICAiaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvZHRkcy90aWxlcy1jb25maWdfMV8xLmR0ZCImZ3Q7CisKKyZsdDshLS0gRGVmaW5pdGlvbnMgZm9yIFRpbGVzIGRvY3VtZW50YXRpb24gICAtLSZndDsKKyZsdDt0aWxlcy1kZWZpbml0aW9ucyZndDsKKworICAmbHQ7IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0mZ3Q7CisgICZsdDshLS0gTWFzdGVyIGRlZmluaXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSZndDsKKyAgJmx0OyEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tJmd0OworICAmbHQ7IS0tIE1haW4gcGFnZSBsYXlvdXQgdXNlZCBhcyBhIHJvb3QgZm9yIG90aGVyIHBhZ2UgZGVmaW5pdGlvbnMgLS0mZ3Q7CisKKyAgJmx0O2RlZmluaXRpb24gbmFtZT0ic2l0ZS5tYWluTGF5b3V0IiBwYXRoPSIvbGF5b3V0cy9jbGFzc2ljTGF5b3V0LmpzcCImZ3Q7CisJICAmbHQ7cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRpbGVzIEJsYW5rIFNpdGUiIC8mZ3Q7CisJICAmbHQ7cHV0IG5hbWU9ImhlYWRlciIgdmFsdWU9Ii90aWxlcy9jb21tb24vaGVhZGVyLmpzcCIgLyZndDsKKwkgICZsdDtwdXQgbmFtZT0ibWVudSIgICB2YWx1ZT0ic2l0ZS5tZW51LmJhciIgLyZndDsKKwkgICZsdDtwdXQgbmFtZT0iZm9vdGVyIiB2YWx1ZT0iL3RpbGVzL2NvbW1vbi9mb290ZXIuanNwIiAvJmd0OworCSAgJmx0O3B1dCBuYW1lPSJib2R5IiAgIHZhbHVlPSIvdGlsZXMvYm9keS5qc3AiIC8mZ3Q7CisgICZsdDsvZGVmaW5pdGlvbiZndDsKKworICAmbHQ7IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0mZ3Q7CisgICZsdDshLS0gSW5kZXggcGFnZSBkZWZpbml0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSZndDsKKyAgJmx0OyEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tJmd0OworICAgICZsdDshLS0gVGhpcyBkZWZpbml0aW9uIGluaGVyaXRzIGZyb20gdGhlIG1haW4gZGVmaW5pdGlvbi4KKwkgIEl0IG92ZXJsb2FkcyB0aGUgcGFnZSB0aXRsZSBhbmQgdGhlIGJvZHkgdXNlZC4KKwkgIFVzZSB0aGUgc2FtZSBtZWNoYW5pc20gdG8gZGVmaW5lIG5ldyBwYWdlcyBzaGFyaW5nIGNvbW1vbiAKKwkgIHByb3BlcnRpZXMgKGhlcmUgaGVhZGVyLCBtZW51LCBmb290ZXIsIGxheW91dCkKKwktLSZndDsKKworICAmbHQ7ZGVmaW5pdGlvbiBuYW1lPSJzaXRlLmluZGV4LnBhZ2UiIGV4dGVuZHM9InNpdGUubWFpbkxheW91dCIgJmd0OworCSAgJmx0O3B1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJUaWxlcyBCbGFuayBTaXRlIEluZGV4IiAvJmd0OworCSAgJmx0O3B1dCBuYW1lPSJib2R5IiAgIHZhbHVlPSIvdGlsZXMvYm9keS5qc3AiIC8mZ3Q7CisgICZsdDsvZGVmaW5pdGlvbiZndDsKKworJmx0Oy90aWxlcy1kZWZpbml0aW9uJmd0OworPC9wcmU+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InN1YnNlY3Rpb24xIj4KKzxoMz5EZWJ1Z2dpbmc8L2gzPgorPHA+VG8gZGVidWcgYSBwYWdlIG1hZGUgb2YgVGlsZXMsIHlvdSBjYW4gdXNlIGZvbGxvd2luZyBhZHZpY2VzOjwvcD4KKzx1bD4KKyAgPGxpPkNoZWNrIGVhY2ggVGlsZXMgc2VwYXJhdGx5LiBUcnkgdG8gYWNjZXNzIG5lc3RlZCBUaWxlcyBkaXJlY3RseSB0byB0ZXN0IAorICBpZiB0aGVzIHdvcmsgcHJvcGVybHkuPC9saT4KKyAgPGxpPkVuYWJsZSBUaWxlcyBsb2dnaW5nLiBTZWUgdGhlIGNvbW1vbnMtbG9nZ2luZyBwYWNrYWdlIGhlbHAuPC9saT4KKzwvdWw+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8UD4KKworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2UtdHJlZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjZWU4MzIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS10cmVlLmh0bWwKQEAgLTAsMCArMSwxODUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+UFJFVjwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcworPC9IMj4KKzwvQ0VOVEVSPgorPERMPgorPERUPjxCPlBhY2thZ2UgSGllcmFyY2hpZXM6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy10cmVlLmh0bWwiPkFsbCBQYWNrYWdlczwvQT48L0RMPgorPEhSPgorPEgyPgorQ2xhc3MgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLk9iamVjdDxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEudXRpbC5BYnN0cmFjdE1hcCAoaW1wbGVtZW50cyBqYXZhLnV0aWwuTWFwKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS51dGlsLkhhc2hNYXAgKGltcGxlbWVudHMgamF2YS5sYW5nLkNsb25lYWJsZSwgamF2YS51dGlsLk1hcCwgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbCI+PEI+RGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwPC9CPjwvQT48L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbnRyb2xsZXIuaHRtbCI+PEI+QWN0aW9uQ29udHJvbGxlcjwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnRDb250ZXh0Lmh0bWwiPjxCPkNvbXBvbmVudENvbnRleHQ8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+PEI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlclN1cHBvcnQuaHRtbCI+PEI+Q29udHJvbGxlclN1cHBvcnQ8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwiPjxCPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRW1wdHlJdGVyYXRvci5odG1sIj48Qj5FbXB0eUl0ZXJhdG9yPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS51dGlsLkl0ZXJhdG9yKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5HZW5lcmljU2VydmxldCAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSwgamF2YXguc2VydmxldC5TZXJ2bGV0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb25maWcpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQgKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+PEI+QWN0aW9uU2VydmxldDwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sIj48Qj5BY3Rpb25Db21wb25lbnRTZXJ2bGV0PC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNTZXJ2bGV0Lmh0bWwiPjxCPlRpbGVzU2VydmxldDwvQj48L0E+PC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+PEI+UmVxdWVzdFByb2Nlc3NvcjwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNSZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPjxCPlRpbGVzUmVxdWVzdFByb2Nlc3NvcjwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEubGFuZy5UaHJvd2FibGUgKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuRXhjZXB0aW9uPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNFeGNlcHRpb24uaHRtbCI+PEI+VGlsZXNFeGNlcHRpb248L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj48Qj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sIj48Qj5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb248L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCI+PEI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQj48L0E+PC9VTD4KKzwvVUw+Cis8L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUGx1Z2luLmh0bWwiPjxCPlRpbGVzUGx1Z2luPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCI+UGx1Z0luPC9BPikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbC5odG1sIj48Qj5UaWxlc1V0aWw8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zVXRpbC5odG1sIj48Qj5EZWZpbml0aW9uc1V0aWw8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+KQorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbEltcGwuaHRtbCI+PEI+VGlsZXNVdGlsSW1wbDwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsU3RydXRzSW1wbC5odG1sIj48Qj5UaWxlc1V0aWxTdHJ1dHNJbXBsPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbC5odG1sIj48Qj5UaWxlc1V0aWxTdHJ1dHNNb2R1bGVzSW1wbDwvQj48L0E+PC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj48Qj5VbnR5cHBlZEF0dHJpYnV0ZTwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCI+QXR0cmlidXRlRGVmaW5pdGlvbjwvQT4pCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uQXR0cmlidXRlLmh0bWwiPjxCPkRlZmluaXRpb25BdHRyaWJ1dGU8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25OYW1lQXR0cmlidXRlLmh0bWwiPjxCPkRlZmluaXRpb25OYW1lQXR0cmlidXRlPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuaHRtbCI+PEI+RGlyZWN0U3RyaW5nQXR0cmlidXRlPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9QYXRoQXR0cmlidXRlLmh0bWwiPjxCPlBhdGhBdHRyaWJ1dGU8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VcmxDb250cm9sbGVyLmh0bWwiPjxCPlVybENvbnRyb2xsZXI8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyLmh0bWwiPkNvbnRyb2xsZXI8L0E+KQorPC9VTD4KKzwvVUw+Cis8SDI+CitJbnRlcmZhY2UgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+PEI+Q29udHJvbGxlcjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIGphdmEuaW8uU2VyaWFsaXphYmxlPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCI+PEI+QXR0cmlidXRlRGVmaW5pdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Qj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEI+RGVmaW5pdGlvbnNGYWN0b3J5PC9CPjwvQT48L1VMPgorPC9VTD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlRyZWU8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9wYWNrYWdlLXRyZWUuaHRtbCI+PEI+TkVYVDwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS11c2UuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXVzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwOWIzY2YKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS11c2UuaHRtbApAQCAtMCwwICsxLDQxOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBQYWNrYWdlPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQj48L0E+PC9URD4KKzxURD4gICAgIFRoZSAic3RydXRzLXRpbGVzIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbgorY3JlYXRpbmcgZHluYW1pYyByZXVzYWJsZSBjb21wb25lbnRzLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbDwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0I+PC9BPjwvVEQ+Cis8VEQ+PGRpdiBjbGFzcz0ibWFpbkNvbnRlbnQiPgorICAgIFRoZSBUaWxlcyB0YWdsaWIgYW5kIGZyYW1ld29yayBhbGxvd3MgYnVpbGRpbmcgd2ViIHBhZ2VzIGJ5IGFzc2VtYmxpbmcgcmV1c2FibGUgCisgICAgcGllY2VzIG9mIHBhZ2VzLCBjYWxsZWQgVGlsZXMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9uczwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uPC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0I+PC9BPjwvVEQ+Cis8VEQ+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvQXR0cmlidXRlRGVmaW5pdGlvbi5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyI+PEI+QXR0cmlidXRlRGVmaW5pdGlvbjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdHRyaWJ1dGUgZGVmaW5pdGlvbiB1c2VkIGluIGEgY29tcG9uZW50IGRlZmluaXRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvQ29tcG9uZW50Q29udGV4dC5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcyI+PEI+Q29tcG9uZW50Q29udGV4dDwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wb25lbnQgY29udGV4dC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIj48Qj5Db21wb25lbnREZWZpbml0aW9uPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlZmluaXRpb24gb2YgYSB0ZW1wbGF0ZSAvIGNvbXBvbmVudCBhdHRyaWJ1dGVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0NvbnRyb2xsZXIuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMiPjxCPkNvbnRyb2xsZXI8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBjb250cm9sbGVyIGlzIGEgcGllY2Ugb2YgY29kZSBjYWxsZWQgYmVmb3JlIHJlbmRlcmluZyBhIGpzcCBwYWdlLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWw8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbCI+PEI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWZpbml0aW9uIG9mIGEgdGVtcGxhdGUgLyBjb21wb25lbnQgYXR0cmlidXRlcy48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9BdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPkF0dHJpYnV0ZURlZmluaXRpb248L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXR0cmlidXRlIGRlZmluaXRpb24gdXNlZCBpbiBhIGNvbXBvbmVudCBkZWZpbml0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0NvbXBvbmVudENvbnRleHQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+Q29tcG9uZW50Q29udGV4dDwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wb25lbnQgY29udGV4dC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPkNvbXBvbmVudERlZmluaXRpb248L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGVmaW5pdGlvbiBvZiBhIHRlbXBsYXRlIC8gY29tcG9uZW50IGF0dHJpYnV0ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgRGVmaW5pdGlvbnNGYWN0b3J5IGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0NvbnRyb2xsZXIuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+Q29udHJvbGxlcjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIGNvbnRyb2xsZXIgaXMgYSBwaWVjZSBvZiBjb2RlIGNhbGxlZCBiZWZvcmUgcmVuZGVyaW5nIGEganNwIHBhZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPkRlZmluaXRpb25zRmFjdG9yeTwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaWxlcyBEZWZpbml0aW9uIGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZzwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIFRpbGVzRmFjdG9yeUNvbmZpZyBvYmplY3QgaG9sZCBjb25maWd1cmF0aW9uIGF0dHJpYnV0ZXMgZm9yIGEgdGlsZQorIGRlZmluaXRpb24gZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgdGhlIGZhY3RvcnkgdHJpZXMgdG8KKyBjcmVhdGUgYSBuZXcgaW5zdGFuY2UgbWFwcGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb248L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXhjZXB0aW9uIHRocm93biB3aGVuIGRlZmluaXRpb25zIGZhY3RvcnkgaXMgbm90IGZvdW5kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFeGNlcHRpb24gdGhyb3duIHdoZW4gYSBkZWZpbml0aW9uIGlzIG5vdCBmb3VuZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9UaWxlc0V4Y2VwdGlvbi5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5UaWxlc0V4Y2VwdGlvbjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSb290IGNsYXNzIGZvciBhbGwgVGlsZXMtZXhjZXB0aW9ucy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9UaWxlc1JlcXVlc3RQcm9jZXNzb3IuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+VGlsZXNSZXF1ZXN0UHJvY2Vzc29yPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxzdHJvbmc+UmVxdWVzdFByb2Nlc3Nvcjwvc3Ryb25nPiBjb250YWlucyB0aGUgcHJvY2Vzc2luZyBsb2dpYyB0aGF0CisgdGhlIFN0cnV0cyBjb250cm9sbGVyIHNlcnZsZXQgcGVyZm9ybXMgYXMgaXQgcmVjZWl2ZXMgZWFjaCBzZXJ2bGV0IHJlcXVlc3QKKyBmcm9tIHRoZSBjb250YWluZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVGlsZXNVdGlsLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPlRpbGVzVXRpbDwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDbGFzcyBjb250YWluaW5nIHV0aWxpdHkgbWV0aG9kcyBmb3IgVGlsZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVGlsZXNVdGlsSW1wbC5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5UaWxlc1V0aWxJbXBsPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgVGlsZXNVdGlsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL1RpbGVzVXRpbFN0cnV0c0ltcGwuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+VGlsZXNVdGlsU3RydXRzSW1wbDwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaWxlc1V0aWwgaW1wbGVtZW50YXRpb24gZm9yIFN0cnV0cyAxLjEgd2l0aCBvbmUgc2luZ2xlIGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+VW50eXBwZWRBdHRyaWJ1dGU8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tbW9uIGltcGxlbWVudGF0aW9uIG9mIGF0dHJpYnV0ZSBkZWZpbml0aW9uLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnM8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0NvbXBvbmVudENvbnRleHQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zIj48Qj5Db21wb25lbnRDb250ZXh0PC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBvbmVudCBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uIj48Qj5Db21wb25lbnREZWZpbml0aW9uPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlZmluaXRpb24gb2YgYSB0ZW1wbGF0ZSAvIGNvbXBvbmVudCBhdHRyaWJ1dGVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24iPjxCPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgRGVmaW5pdGlvbnNGYWN0b3J5IGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24iPjxCPkRlZmluaXRpb25zRmFjdG9yeTwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaWxlcyBEZWZpbml0aW9uIGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9jbGFzcy11c2UvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbiI+PEI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgVGlsZXNGYWN0b3J5Q29uZmlnIG9iamVjdCBob2xkIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlcyBmb3IgYSB0aWxlCisgZGVmaW5pdGlvbiBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24iPjxCPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFeGNlcHRpb24gdGhyb3duIHdoZW4gYW4gZXJyb3Igb2NjdXJzIHdoaWxlIHRoZSBmYWN0b3J5IHRyaWVzIHRvCisgY3JlYXRlIGEgbmV3IGluc3RhbmNlIG1hcHBlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uIj48Qj5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb248L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXhjZXB0aW9uIHRocm93biB3aGVuIGRlZmluaXRpb25zIGZhY3RvcnkgaXMgbm90IGZvdW5kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uIj48Qj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V4Y2VwdGlvbiB0aHJvd24gd2hlbiBhIGRlZmluaXRpb24gaXMgbm90IGZvdW5kLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIj48Qj5Db21wb25lbnREZWZpbml0aW9uPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlZmluaXRpb24gb2YgYSB0ZW1wbGF0ZSAvIGNvbXBvbmVudCBhdHRyaWJ1dGVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24iPjxCPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgRGVmaW5pdGlvbnNGYWN0b3J5IGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvY2xhc3MtdXNlL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24iPjxCPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFeGNlcHRpb24gdGhyb3duIHdoZW4gYW4gZXJyb3Igb2NjdXJzIHdoaWxlIHRoZSBmYWN0b3J5IHRyaWVzIHRvCisgY3JlYXRlIGEgbmV3IGluc3RhbmNlIG1hcHBlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2NsYXNzLXVzZS9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiI+PEI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtFeGNlcHRpb24gdGhyb3duIHdoZW4gYSBkZWZpbml0aW9uIGlzIG5vdCBmb3VuZC48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDg0NjE0ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sCkBAIC0wLDAgKzEsMzU3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorRGVmaW5pdGlvbnNGYWN0b3J5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkRlZmluaXRpb25zRmFjdG9yeSxEZWZpbml0aW9uc0ZhY3RvcnkgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkRlZmluaXRpb25zRmFjdG9yeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBEZWZpbml0aW9uc0ZhY3Rvcnk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkRlZmluaXRpb25zRmFjdG9yeTwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkRlZmluaXRpb25zRmFjdG9yeTwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0EgZmFjdG9yeSBmb3IgZGVmaW5pdGlvbnMuCisgVGhpcyBmYWN0b3J5IGFsbG93cyB0byByZXRyaWV2ZSBkZWZpbml0aW9ucyBieSB0aGVpciBrZXlzLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5EZWZpbml0aW9uc0ZhY3RvcnkiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLk1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI2RlZmluaXRpb25zIj5kZWZpbml0aW9uczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtVbmRlcmx5aW5nIG1hcCBjb250YWluaW5nIGFsbCBkZWZpbml0aW9ucy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjRGVmaW5pdGlvbnNGYWN0b3J5KG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbnNTZXQpIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPiZuYnNwO3htbERlZmluaXRpb25zKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNwdXREZWZpbml0aW9uKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb24pIj5wdXREZWZpbml0aW9uPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiZuYnNwO2RlZmluaXRpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQdXQgZGVmaW5pdGlvbiBpbiBzZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBTdHJpbmcgcmVwcmVzZW50YXRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRlZmluaXRpb25zIj48IS0tIC0tPjwvQT48SDM+CitkZWZpbml0aW9uczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5NYXAgPEI+ZGVmaW5pdGlvbnM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VW5kZXJseWluZyBtYXAgY29udGFpbmluZyBhbGwgZGVmaW5pdGlvbnMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRGVmaW5pdGlvbnNGYWN0b3J5KG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbnNTZXQpIj48IS0tIC0tPjwvQT48SDM+CitEZWZpbml0aW9uc0ZhY3Rvcnk8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+Jm5ic3A7eG1sRGVmaW5pdGlvbnMpCisgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL05vU3VjaERlZmluaXRpb25FeGNlcHRpb24uaHRtbCI+Tm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjwvQT48L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3Rvci4KKyBDcmVhdGUgYSBmYWN0b3J5IGluaXRpYWxpemVkIHdpdGggZGVmaW5pdGlvbnMgZnJvbSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPjxDT0RFPlhtbERlZmluaXRpb25zU2V0PC9DT0RFPjwvQT4uCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+eG1sRGVmaW5pdGlvbnM8L0NPREU+IC0gUmVzb2x2ZWQgZGVmaW5pdGlvbiBmcm9tIFhtbERlZmluaXRpb25TZXQuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiPk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0E+PC9DT0RFPiAtIElmIGFuIGVycm9yIG9jY3VycyB3aGlsZSByZXNvbHZpbmcgaW5oZXJpdGFuY2U8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZpbml0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiA8Qj5nZXREZWZpbml0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9BPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L1BSRT4KKzxETD4KKzxERD5HZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIGRlZmluaXRpb24uPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gU2VydmxldCByZXF1ZXN0LjxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBTZXJ2bGV0IGNvbnRleHQuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBBbiBlcnJvciBvY2N1ciB3aGlsZSBnZXR0aW5nCisgZGVmaW5pdGlvbi4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiPk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0E+PC9DT0RFPiAtIE5vIGRlZmluaXRpb24gZm91bmQgZm9yIHNwZWNpZmllZCBuYW1lCisgSW1wbGVtZW50YXRpb24gY2FuIHRocm93IG1vcmUgYWNjdXJhdGUgZXhjZXB0aW9uIGFzIGEgc3ViY2xhc3Mgb2YgdGhpcworIGV4Y2VwdGlvbi48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InB1dERlZmluaXRpb24ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbikiPjwhLS0gLS0+PC9BPjxIMz4KK3B1dERlZmluaXRpb248L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnB1dERlZmluaXRpb248L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT4mbmJzcDtkZWZpbml0aW9uKTwvUFJFPgorPERMPgorPEREPlB1dCBkZWZpbml0aW9uIGluIHNldC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZGVmaW5pdGlvbjwvQ09ERT4gLSBEZWZpbml0aW9uIHRvIHB1dC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRvU3RyaW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3RvU3RyaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj50b1N0cmluZzwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiBTdHJpbmcgcmVwcmVzZW50YXRpb24uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+dG9TdHJpbmc8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEubGFuZy5PYmplY3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlN0cmluZyByZXByZXNlbnRhdGlvbi48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25zRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NThlNTdmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sCkBAIC0wLDAgKzEsNDgyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorRmFjdG9yeVNldCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5GYWN0b3J5U2V0LEZhY3RvcnlTZXQgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkZhY3RvcnlTZXQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRmFjdG9yeVNldC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZhY3RvcnlTZXQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBGYWN0b3J5U2V0PC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5GYWN0b3J5U2V0PC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQT4sIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj5JMThuRmFjdG9yeVNldDwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgYWJzdHJhY3QgY2xhc3MgPEI+RmFjdG9yeVNldDwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQT48L0RMPgorCis8UD4KK0NvbXBvbmVudCBEZWZpbml0aW9ucyBmYWN0b3J5LgorIFRoaXMgZmFjdG9yeSBjb250YWlucyBzZXZlcmFsIGZhY3RvcmllcyBpZGVudGlmaWVkIGJ5IGEga2V5LiBUaGUKKyBnZXREZWZpbml0aW9uKCkgbWV0aG9kIGZpcnN0IGxvb2tzIGZvciB0aGUgZmFjdG9yeSBrZXksIHJldHJpZXZlcyBvciBjcmVhdGVzIHRoaXMKKyBmYWN0b3J5IGFuZCB0aGVuIGNhbGxzIGl0cyBnZXREZWZpbml0aW9uKCkuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkZhY3RvcnlTZXQiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLk1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNmYWN0b3JpZXMiPmZhY3RvcmllczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb2FkZWQgZmFjdG9yaWVzPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNGYWN0b3J5U2V0KCkiPkZhY3RvcnlTZXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgYWJzdHJhY3QgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNjcmVhdGVGYWN0b3J5KGphdmEubGFuZy5PYmplY3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5jcmVhdGVGYWN0b3J5PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2tleSwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhIGZhY3RvcnkgZm9yIHNwZWNpZmllZCBrZXkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBhYnN0cmFjdCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sI2dldERlZmF1bHRGYWN0b3J5KCkiPmdldERlZmF1bHRGYWN0b3J5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGRlZmF1bHQgZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgYWJzdHJhY3QgJm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNnZXREZWZpbml0aW9uc0ZhY3RvcnlLZXkoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb25zRmFjdG9yeUtleTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V4dHJhY3Qga2V5IHRoYXQgd2lsbCBiZSB1c2VkIHRvIGdldCB0aGUgc3ViIGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sI2dldEZhY3RvcnkoamF2YS5sYW5nLk9iamVjdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldEZhY3Rvcnk8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5LAorICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGEgZmFjdG9yeSBieSBpdHMga2V5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5hYnN0cmFjdCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sI2luaXRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj5pbml0RmFjdG9yeTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdCBmYWN0b3J5IHNldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBTdHJpbmcgcmVwcmVzZW50YXRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImZhY3RvcmllcyI+PCEtLSAtLT48L0E+PEgzPgorZmFjdG9yaWVzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLk1hcCA8Qj5mYWN0b3JpZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+TG9hZGVkIGZhY3RvcmllcworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkZhY3RvcnlTZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorRmFjdG9yeVNldDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkZhY3RvcnlTZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3Rvci4KKzxQPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0RGVmaW5pdGlvbnNGYWN0b3J5S2V5KGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZpbml0aW9uc0ZhY3RvcnlLZXk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBhYnN0cmFjdCBqYXZhLmxhbmcuT2JqZWN0IDxCPmdldERlZmluaXRpb25zRmFjdG9yeUtleTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvUFJFPgorPERMPgorPEREPkV4dHJhY3Qga2V5IHRoYXQgd2lsbCBiZSB1c2VkIHRvIGdldCB0aGUgc3ViIGZhY3RvcnkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiByZXF1ZXN0ZWQgZGVmaW5pdGlvbi48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHNlcnZsZXQgcmVxdWVzdC48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPk9iamVjdC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldERlZmF1bHRGYWN0b3J5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERlZmF1bHRGYWN0b3J5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYWJzdHJhY3QgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiA8Qj5nZXREZWZhdWx0RmFjdG9yeTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCBkZWZhdWx0IGZhY3RvcnkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+RGVmYXVsdCBmYWN0b3J5LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmFjdG9yeShqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmFjdG9yeTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4gPEI+Z2V0RmFjdG9yeTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L1BSRT4KKzxETD4KKzxERD5HZXQgYSBmYWN0b3J5IGJ5IGl0cyBrZXkuCisgSWYga2V5IGlzIDxjb2RlPm51bGw8L2NvZGU+LCByZXR1cm4gZGVmYXVsdEZhY3RvcnkuCisgU2VhcmNoIGluIGxvYWRlZCBmYWN0b3JpZXMuIElmIG5vdCBmb3VuZCwgY3JlYXRlIGZhY3RvcnkgYW5kIHN0b3JlIHJldHVybiB2YWx1ZSBpbgorIGxvYWRlZCBmYWN0b3JpZXMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBLZXkgb2YgcmVxdWVzdGVkIGRlZmluaXRpb24uPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCBzZXJ2bGV0IHJlcXVlc3QuPEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIEN1cnJlbnQgc2VydmxldCBjb250ZXh0LgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gSWYgYW4gZXJyb3Igb2NjdXIgd2hpbGUgY3JlYXRpbmcgZmFjdG9yeS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldERlZmluaXRpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+IDxCPmdldERlZmluaXRpb248L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiPk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0E+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPkdldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbjwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZSBvZiByZXF1ZXN0ZWQgZGVmaW5pdGlvbi48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHNlcnZsZXQgcmVxdWVzdC48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiPk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0E+PC9DT0RFPiAtIE5vIGRlZmluaXRpb24gZm91bmQgZm9yIHNwZWNpZmllZCBuYW1lCis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gR2VuZXJhbCBleGNlcHRpb248L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNyZWF0ZUZhY3RvcnkoamF2YS5sYW5nLk9iamVjdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NyZWF0ZUZhY3Rvcnk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBhYnN0cmFjdCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmNyZWF0ZUZhY3Rvcnk8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIGEgZmFjdG9yeSBmb3Igc3BlY2lmaWVkIGtleS4KKyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgZ2V0RmFjdG9yeSgpIHdoZW4gdGhlIHJlcXVlc3RlZCBmYWN0b3J5IGRvZXNuJ3QgYWxyZWFkeSBleGlzdC4KKyBNdXN0IHJldHVybiBhIGZhY3RvcnksIG9yIGEgZGVmYXVsdCBvbmUuCisgUmVhbCBpbXBsZW1lbnRhdGlvbiBuZWVkcyB0byBwcm92aWRlIHRoaXMgbWV0aG9kLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gS2V5IG9mIHJlcXVlc3RlZCBkZWZpbml0aW9uLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgc2VydmxldCByZXF1ZXN0LjxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBDdXJyZW50IHNlcnZsZXQgY29udGV4dAorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gSWYgYW4gZXJyb3Igb2NjdXIgd2hpbGUgY3JlYXRpbmcgZmFjdG9yeS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj48IS0tIC0tPjwvQT48SDM+Citpbml0RmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIGFic3RyYWN0IHZvaWQgPEI+aW5pdEZhY3Rvcnk8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKQorICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L1BSRT4KKzxETD4KKzxERD5Jbml0IGZhY3Rvcnkgc2V0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sI2luaXRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj5pbml0RmFjdG9yeTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIEN1cnJlbnQgc2VydmxldCBjb250ZXh0PEREPjxDT0RFPnByb3BlcnRpZXM8L0NPREU+IC0gcHJvcGVydGllcyB1c2VkIHRvIGluaXRpYWxpemVkIGZhY3Rvcnkgc2V0OworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gQW4gZXJyb3Igb2NjdXIgZHVyaW5nIGluaXRpYWxpemF0aW9uLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9TdHJpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgordG9TdHJpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU3RyaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT50b1N0cmluZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+U3RyaW5nIHJlcHJlc2VudGF0aW9uLjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRmFjdG9yeVNldC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZhY3RvcnlTZXQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjgyNDBhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbApAQCAtMCwwICsxLDkxNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0kxOG5GYWN0b3J5U2V0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkkxOG5GYWN0b3J5U2V0LEkxOG5GYWN0b3J5U2V0IGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJJMThuRmFjdG9yeVNldCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9JMThuRmFjdG9yeVNldC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSTE4bkZhY3RvcnlTZXQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBJMThuRmFjdG9yeVNldDwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkZhY3RvcnlTZXQ8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5JMThuRmFjdG9yeVNldDwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+LCBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5JMThuRmFjdG9yeVNldDwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+RmFjdG9yeVNldDwvQT48L0RMPgorCis8UD4KK0RlZmluaXRpb25zIGZhY3RvcnkuCisgVGhpcyBpbXBsZW1lbnRhdGlvbiBhbGxvd3MgdG8gaGF2ZSBhIHNldCBvZiBkZWZpbml0aW9uIGZhY3Rvcmllcy4KKyBUaGVyZSBpcyBhIG1haW4gZmFjdG9yeSBhbmQgb25lIGZhY3RvcnkgZm9yIGVhY2ggZmlsZSBhc3NvY2lhdGVkIHRvIGEgTG9jYWxlLgorCisgVG8gcmV0cmlldmUgYSBkZWZpbml0aW9uLCB3ZSBmaXJzdCBzZWFyY2ggZm9yIHRoZSBhcHByb3ByaWF0ZSBmYWN0b3J5IHVzaW5nCisgdGhlIExvY2FsZSBmb3VuZCBpbiBzZXNzaW9uIGNvbnRleHQuIElmIG5vIGZhY3RvcnkgaXMgZm91bmQsIHVzZSB0aGUKKyBkZWZhdWx0IG9uZS4gVGhlbiB3ZSBhc2sgdGhlIGZhY3RvcnkgZm9yIHRoZSBkZWZpbml0aW9uLgorCisgQSBkZWZpbml0aW9uIGZhY3RvcnkgZmlsZSBpcyBsb2FkZWQgdXNpbmcgbWFpbiBmaWxlbmFtZSBleHRlbmRlZCB3aXRoIGxvY2FsZSBjb2RlCisgKGV4IDogPGNvZGU+dGVtcGxhdGVEZWZpbml0aW9uc19mci54bWw8L2NvZGU+KS4gSWYgbm8gZmlsZSBpcyBmb3VuZCB1bmRlciB0aGlzIG5hbWUsIHVzZSBkZWZhdWx0IGZpbGUuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkkxOG5GYWN0b3J5U2V0Ij5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZ1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNERUZBVUxUX0RFRklOSVRJT05fRklMRU5BTUVTIj5ERUZBVUxUX0RFRklOSVRJT05fRklMRU5BTUVTPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Bvc3NpYmxlIGRlZmluaXRpb24gZmlsZW5hbWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjZGVmYXVsdEZhY3RvcnkiPmRlZmF1bHRGYWN0b3J5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlZmF1bHQgZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjREVGSU5JVElPTlNfQ09ORklHX1BBUkFNRVRFUl9OQU1FIj5ERUZJTklUSU9OU19DT05GSUdfUEFSQU1FVEVSX05BTUU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uZmlnIGZpbGUgcGFyYW1ldGVyIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI0ZJTEVOQU1FX0VYVEVOU0lPTiI+RklMRU5BTUVfRVhURU5TSU9OPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlZmF1bHQgZmlsZW5hbWVzIGV4dGVuc2lvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLnV0aWwuTGlzdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjZmlsZW5hbWVzIj5maWxlbmFtZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TmFtZXMgb2YgZmlsZXMgY29udGFpbmluZyBpbnN0YW5jZXMgZGVzY3JpcHRpb25zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNJTlNUQU5DRVNfQ09ORklHX1BBUkFNRVRFUl9OQU1FIj5JTlNUQU5DRVNfQ09ORklHX1BBUkFNRVRFUl9OQU1FPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSBERUZJTklUSU9OU19DT05GSUdfUEFSQU1FVEVSX05BTUU8L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNpc1ZhbGlkYXRpbmdQYXJzZXIiPmlzVmFsaWRhdGluZ1BhcnNlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEbyB3ZSB3YW50IHZhbGlkYXRpbmcgcGFyc2VyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEudXRpbC5NYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI2xvYWRlZCI+bG9hZGVkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbGxlY3Rpb24gb2YgYWxyZWFkeSBsb2FkZWQgZGVmaW5pdGlvbnMgc2V0LCByZWZlcmVuY2VkIGJ5IHRoZWlyIHN1ZmZpeC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjbG9nIj5sb2c8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjTUFYX0JVTkRMRVNfU0VBUkNIRUQiPk1BWF9CVU5ETEVTX1NFQVJDSEVEPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01heGltdW0gbGVuZ3RoIG9mIG9uZSBicmFuY2ggb2YgdGhlIHJlc291cmNlIHNlYXJjaCBwYXRoIHRyZWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI1BBUlNFUl9ERVRBSUxTX1BBUkFNRVRFUl9OQU1FIj5QQVJTRVJfREVUQUlMU19QQVJBTUVURVJfTkFNRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25maWcgZmlsZSBwYXJhbWV0ZXIgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjUEFSU0VSX1ZBTElEQVRFX1BBUkFNRVRFUl9OQU1FIj5QQVJTRVJfVkFMSURBVEVfUEFSQU1FVEVSX05BTUU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uZmlnIGZpbGUgcGFyYW1ldGVyIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI3BhcnNlckRldGFpbExldmVsIj5wYXJzZXJEZXRhaWxMZXZlbDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQYXJzZXIgZGV0YWlsIGxldmVsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCI+WG1sUGFyc2VyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjeG1sUGFyc2VyIj54bWxQYXJzZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7WG1sIHBhcnNlciB1c2VkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkZhY3RvcnlTZXQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+RmFjdG9yeVNldDwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNmYWN0b3JpZXMiPmZhY3RvcmllczwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjSTE4bkZhY3RvcnlTZXQoKSI+STE4bkZhY3RvcnlTZXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQYXJhbWV0ZXJsZXNzIENvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI0kxOG5GYWN0b3J5U2V0KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj5JMThuRmFjdG9yeVNldDwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLnV0aWwuTGlzdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjY2FsY3VsYXRlUG9zdGl4ZXMoamF2YS5sYW5nLlN0cmluZywgamF2YS51dGlsLkxvY2FsZSkiPmNhbGN1bGF0ZVBvc3RpeGVzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2Jhc2VOYW1lLAorICAgICAgICAgICAgICAgICAgamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NhbGN1bGF0ZSB0aGUgcG9zdGl4ZXMgYWxvbmcgdGhlIHNlYXJjaCBwYXRoIGZyb20gdGhlIGJhc2UgYnVuZGxlIHRvIHRoZQorIGJ1bmRsZSBzcGVjaWZpZWQgYnkgYmFzZU5hbWUgYW5kIGxvY2FsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNjb25jYXRQb3N0Zml4KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5jb25jYXRQb3N0Zml4PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwb3N0Zml4KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uY2F0IHBvc3RmaXggdG8gdGhlIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNjcmVhdGVEZWZhdWx0RmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Y3JlYXRlRGVmYXVsdEZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgZGVmYXVsdCBmYWN0b3J5IC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI2NyZWF0ZUZhY3RvcnkoamF2YS5sYW5nLk9iamVjdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmNyZWF0ZUZhY3Rvcnk8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGEgZmFjdG9yeSBmb3Igc3BlY2lmaWVkIGtleS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI2dldERlZmF1bHRGYWN0b3J5KCkiPmdldERlZmF1bHRGYWN0b3J5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGRlZmF1bHQgZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI2dldERlZmluaXRpb25zRmFjdG9yeUtleShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0RGVmaW5pdGlvbnNGYWN0b3J5S2V5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RXh0cmFjdCBrZXkgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZ2V0IHRoZSBzdWIgZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjaW5pdEZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS51dGlsLk1hcCkiPmluaXRGYWN0b3J5PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgamF2YS51dGlsLk1hcCZuYnNwO3Byb3BlcnRpZXMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0aWFsaXphdGlvbiBtZXRob2QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNpbml0RmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nKSI+aW5pdEZhY3Rvcnk8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcG9zZWRGaWxlbmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemF0aW9uIG1ldGhvZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjcGFyc2VYbWxGaWxlKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbnNTZXQpIj5wYXJzZVhtbEZpbGU8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZpbGVuYW1lLAorICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+Jm5ic3A7eG1sRGVmaW5pdGlvbnMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQYXJzZSBzcGVjaWZpZWQgeG1sIGZpbGUgYW5kIGFkZCBkZWZpbml0aW9uIHRvIHNwZWNpZmllZCBkZWZpbml0aW9ucyBzZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI3BhcnNlWG1sRmlsZXMoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uc1NldCkiPnBhcnNlWG1sRmlsZXM8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwb3N0Zml4LAorICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPiZuYnNwO3htbERlZmluaXRpb25zKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGFyc2UgZmlsZXMgYXNzb2NpYXRlZCB0byBwb3N0aXggaWYgdGhleSBleGlzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gU3RyaW5nIHJlcHJlc2VudGF0aW9uLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5GYWN0b3J5U2V0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sIj5GYWN0b3J5U2V0PC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldERlZmluaXRpb248L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNnZXRGYWN0b3J5KGphdmEubGFuZy5PYmplY3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXRGYWN0b3J5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibG9nIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJJTlNUQU5DRVNfQ09ORklHX1BBUkFNRVRFUl9OQU1FIj48IS0tIC0tPjwvQT48SDM+CitJTlNUQU5DRVNfQ09ORklHX1BBUkFNRVRFUl9OQU1FPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+SU5TVEFOQ0VTX0NPTkZJR19QQVJBTUVURVJfTkFNRTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2UgREVGSU5JVElPTlNfQ09ORklHX1BBUkFNRVRFUl9OQU1FPC9JPgorPFA+Cis8REQ+Q29uZmlnIGZpbGUgcGFyYW1ldGVyIG5hbWUuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uSTE4bkZhY3RvcnlTZXQuSU5TVEFOQ0VTX0NPTkZJR19QQVJBTUVURVJfTkFNRSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJERUZJTklUSU9OU19DT05GSUdfUEFSQU1FVEVSX05BTUUiPjwhLS0gLS0+PC9BPjxIMz4KK0RFRklOSVRJT05TX0NPTkZJR19QQVJBTUVURVJfTkFNRTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkRFRklOSVRJT05TX0NPTkZJR19QQVJBTUVURVJfTkFNRTwvQj48L1BSRT4KKzxETD4KKzxERD5Db25maWcgZmlsZSBwYXJhbWV0ZXIgbmFtZS4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5JMThuRmFjdG9yeVNldC5ERUZJTklUSU9OU19DT05GSUdfUEFSQU1FVEVSX05BTUUiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iUEFSU0VSX0RFVEFJTFNfUEFSQU1FVEVSX05BTUUiPjwhLS0gLS0+PC9BPjxIMz4KK1BBUlNFUl9ERVRBSUxTX1BBUkFNRVRFUl9OQU1FPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+UEFSU0VSX0RFVEFJTFNfUEFSQU1FVEVSX05BTUU8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29uZmlnIGZpbGUgcGFyYW1ldGVyIG5hbWUuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uSTE4bkZhY3RvcnlTZXQuUEFSU0VSX0RFVEFJTFNfUEFSQU1FVEVSX05BTUUiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iUEFSU0VSX1ZBTElEQVRFX1BBUkFNRVRFUl9OQU1FIj48IS0tIC0tPjwvQT48SDM+CitQQVJTRVJfVkFMSURBVEVfUEFSQU1FVEVSX05BTUU8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5QQVJTRVJfVkFMSURBVEVfUEFSQU1FVEVSX05BTUU8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29uZmlnIGZpbGUgcGFyYW1ldGVyIG5hbWUuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uSTE4bkZhY3RvcnlTZXQuUEFSU0VSX1ZBTElEQVRFX1BBUkFNRVRFUl9OQU1FIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkRFRkFVTFRfREVGSU5JVElPTl9GSUxFTkFNRVMiPjwhLS0gLS0+PC9BPjxIMz4KK0RFRkFVTFRfREVGSU5JVElPTl9GSUxFTkFNRVM8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZ1tdIDxCPkRFRkFVTFRfREVGSU5JVElPTl9GSUxFTkFNRVM8L0I+PC9QUkU+Cis8REw+Cis8REQ+UG9zc2libGUgZGVmaW5pdGlvbiBmaWxlbmFtZXMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZWZhdWx0RmFjdG9yeSI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdEZhY3Rvcnk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmRlZmF1bHRGYWN0b3J5PC9CPjwvUFJFPgorPERMPgorPEREPkRlZmF1bHQgZmFjdG9yeS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InhtbFBhcnNlciI+PCEtLSAtLT48L0E+PEgzPgoreG1sUGFyc2VyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdHJhbnNpZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwiPlhtbFBhcnNlcjwvQT4gPEI+eG1sUGFyc2VyPC9CPjwvUFJFPgorPERMPgorPEREPlhtbCBwYXJzZXIgdXNlZC4KKyAgQXR0cmlidXRlIGlzIHRyYW5zaWVudCB0byBhbGxvdyBzZXJpYWxpemF0aW9uLiBJbiB0aGlzIGltcGxlbWVudGFpdG9uLAorICB4bWxQYXJzZXIgaXMgY3JlYXRlZCBlYWNoIHRpbWUgd2UgbmVlZCBpdCA7LSguCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1ZhbGlkYXRpbmdQYXJzZXIiPjwhLS0gLS0+PC9BPjxIMz4KK2lzVmFsaWRhdGluZ1BhcnNlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+aXNWYWxpZGF0aW5nUGFyc2VyPC9CPjwvUFJFPgorPERMPgorPEREPkRvIHdlIHdhbnQgdmFsaWRhdGluZyBwYXJzZXIuIERlZmF1bHQgaXMgPGNvZGU+ZmFsc2U8L2NvZGU+LgorICBDYW4gYmUgc2V0IGZyb20gc2VydmxldCBjb25maWcgZmlsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcnNlckRldGFpbExldmVsIj48IS0tIC0tPjwvQT48SDM+CitwYXJzZXJEZXRhaWxMZXZlbDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGludCA8Qj5wYXJzZXJEZXRhaWxMZXZlbDwvQj48L1BSRT4KKzxETD4KKzxERD5QYXJzZXIgZGV0YWlsIGxldmVsLiBEZWZhdWx0IGlzIDAuCisgIENhbiBiZSBzZXQgZnJvbSBzZXJ2bGV0IGNvbmZpZyBmaWxlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTUFYX0JVTkRMRVNfU0VBUkNIRUQiPjwhLS0gLS0+PC9BPjxIMz4KK01BWF9CVU5ETEVTX1NFQVJDSEVEPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgPEI+TUFYX0JVTkRMRVNfU0VBUkNIRUQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+TWF4aW11bSBsZW5ndGggb2Ygb25lIGJyYW5jaCBvZiB0aGUgcmVzb3VyY2Ugc2VhcmNoIHBhdGggdHJlZS4KKyBVc2VkIGluIGdldEJ1bmRsZSgpLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkkxOG5GYWN0b3J5U2V0Lk1BWF9CVU5ETEVTX1NFQVJDSEVEIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkZJTEVOQU1FX0VYVEVOU0lPTiI+PCEtLSAtLT48L0E+PEgzPgorRklMRU5BTUVfRVhURU5TSU9OPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+RklMRU5BTUVfRVhURU5TSU9OPC9CPjwvUFJFPgorPERMPgorPEREPkRlZmF1bHQgZmlsZW5hbWVzIGV4dGVuc2lvbi4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5JMThuRmFjdG9yeVNldC5GSUxFTkFNRV9FWFRFTlNJT04iPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmlsZW5hbWVzIj48IS0tIC0tPjwvQT48SDM+CitmaWxlbmFtZXM8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS51dGlsLkxpc3QgPEI+ZmlsZW5hbWVzPC9CPjwvUFJFPgorPERMPgorPEREPk5hbWVzIG9mIGZpbGVzIGNvbnRhaW5pbmcgaW5zdGFuY2VzIGRlc2NyaXB0aW9ucy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvYWRlZCI+PCEtLSAtLT48L0E+PEgzPgorbG9hZGVkPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEudXRpbC5NYXAgPEI+bG9hZGVkPC9CPjwvUFJFPgorPERMPgorPEREPkNvbGxlY3Rpb24gb2YgYWxyZWFkeSBsb2FkZWQgZGVmaW5pdGlvbnMgc2V0LCByZWZlcmVuY2VkIGJ5IHRoZWlyIHN1ZmZpeC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJJMThuRmFjdG9yeVNldCgpIj48IS0tIC0tPjwvQT48SDM+CitJMThuRmFjdG9yeVNldDwvSDM+Cis8UFJFPgorcHVibGljIDxCPkkxOG5GYWN0b3J5U2V0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UGFyYW1ldGVybGVzcyBDb25zdHJ1Y3Rvci4KKyBNZXRob2QgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI2luaXRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj48Q09ERT5pbml0RmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKTwvQ09ERT48L0E+IG11c3QgYmUgY2FsbGVkIHByaW9yIHRvIGFueSB1c2Ugb2YgY3JlYXRlZCBmYWN0b3J5LgorPFA+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJJMThuRmFjdG9yeVNldChqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+PCEtLSAtLT48L0E+PEgzPgorSTE4bkZhY3RvcnlTZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5JMThuRmFjdG9yeVNldDwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKQorICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCisgSW5pdCB0aGUgZmFjdG9yeSBieSByZWFkaW5nIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gZmlsZS4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBTZXJ2bGV0IGNvbnRleHQuPEREPjxDT0RFPnByb3BlcnRpZXM8L0NPREU+IC0gTWFwIGNvbnRhaW5pbmcgYWxsIHByb3BlcnRpZXMuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24uaHRtbCI+RmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBDYW4ndCBmaW5kIGZhY3RvcnkgY29uZmlndXJhdGlvbiBmaWxlLgorPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9DT0RFPjwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImluaXRGYWN0b3J5KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEudXRpbC5NYXApIj48IS0tIC0tPjwvQT48SDM+Citpbml0RmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+aW5pdEZhY3Rvcnk8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwcm9wZXJ0aWVzKQorICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L1BSRT4KKzxETD4KKzxERD5Jbml0aWFsaXphdGlvbiBtZXRob2QuCisgSW5pdCB0aGUgZmFjdG9yeSBieSByZWFkaW5nIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gZmlsZS4KKyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgZXhhY3RseSBvbmNlIGltbWVkaWF0ZWx5IGFmdGVyIGZhY3RvcnkgY3JlYXRpb24gaW4KKyBjYXNlIG9mIGludGVybmFsIGNyZWF0aW9uIChieSBEZWZpbml0aW9uVXRpbCkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwjaW5pdEZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS51dGlsLk1hcCkiPmluaXRGYWN0b3J5PC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNpbml0RmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLnV0aWwuTWFwKSI+aW5pdEZhY3Rvcnk8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+RmFjdG9yeVNldDwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBTZXJ2bGV0IENvbnRleHQgcGFzc2VkIHRvIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS48REQ+PENPREU+cHJvcGVydGllczwvQ09ERT4gLSBNYXAgb2YgbmFtZS9wcm9wZXJ0eSBwYXNzZWQgdG8gbmV3bHkgY3JlYXRlZCBmYWN0b3J5LiBNYXAgY2FuIGNvbnRhaW5zCisgbW9yZSBwcm9wZXJ0aWVzIHRoYW4gcmVxdWVzdGVkLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gQW4gZXJyb3Igb2NjdXIgZHVyaW5nIGluaXRpYWxpemF0aW9uLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdEZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXRGYWN0b3J5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5pbml0RmFjdG9yeTwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3Bvc2VkRmlsZW5hbWUpCisgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+SW5pdGlhbGl6YXRpb24gbWV0aG9kLgorIEluaXQgdGhlIGZhY3RvcnkgYnkgcmVhZGluZyBhcHByb3ByaWF0ZSBjb25maWd1cmF0aW9uIGZpbGUuCisgVGhpcyBtZXRob2QgaXMgY2FsbGVkIGV4YWN0bHkgb25jZSBpbW1lZGlhdGVseSBhZnRlciBmYWN0b3J5IGNyZWF0aW9uIGluCisgY2FzZSBvZiBpbnRlcm5hbCBjcmVhdGlvbiAoYnkgRGVmaW5pdGlvblV0aWwpLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBTZXJ2bGV0IENvbnRleHQgcGFzc2VkIHRvIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS48REQ+PENPREU+cHJvcG9zZWRGaWxlbmFtZTwvQ09ERT4gLSBGaWxlIG5hbWVzLCBjb21tYSBzZXBhcmF0ZWQsIHRvIHVzZSBhcyAgYmFzZSBmaWxlIG5hbWVzLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gQW4gZXJyb3Igb2NjdXIgZHVyaW5nIGluaXRpYWxpemF0aW9uLgorPEREPjxDT0RFPmphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVmYXVsdEZhY3RvcnkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RGVmYXVsdEZhY3Rvcnk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmdldERlZmF1bHRGYWN0b3J5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IGRlZmF1bHQgZmFjdG9yeS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNnZXREZWZhdWx0RmFjdG9yeSgpIj5nZXREZWZhdWx0RmFjdG9yeTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sIj5GYWN0b3J5U2V0PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+RGVmYXVsdCBmYWN0b3J5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjcmVhdGVEZWZhdWx0RmFjdG9yeShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorY3JlYXRlRGVmYXVsdEZhY3Rvcnk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmNyZWF0ZURlZmF1bHRGYWN0b3J5PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkNyZWF0ZSBkZWZhdWx0IGZhY3RvcnkgLgorIENyZWF0ZSBJbnN0YW5jZXNNYXBwZXIgZm9yIHNwZWNpZmllZCBMb2NhbGUuCisgSWYgY3JlYXRpb24gZmFpbGVzLCB1c2UgZGVmYXVsdCBtYXBwZXIgYW5kIGxvZyBlcnJvciBtZXNzYWdlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0Q29udGV4dDwvQ09ERT4gLSBDdXJyZW50IHNlcnZsZXQgY29udGV4dC4gVXNlZCB0byBvcGVuIGZpbGUuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkNyZWF0ZWQgZGVmYXVsdCBkZWZpbml0aW9uIGZhY3RvcnkuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBJZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBjcmVhdGluZyBmYWN0b3J5LgorPEREPjxDT0RFPmphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGZhY3RvcnkgY2FuJ3QgYmUgbG9hZGVkIGZyb20gZmlsZW5hbWVzLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGVmaW5pdGlvbnNGYWN0b3J5S2V5KGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZpbml0aW9uc0ZhY3RvcnlLZXk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuT2JqZWN0IDxCPmdldERlZmluaXRpb25zRmFjdG9yeUtleTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvUFJFPgorPERMPgorPEREPkV4dHJhY3Qga2V5IHRoYXQgd2lsbCBiZSB1c2VkIHRvIGdldCB0aGUgc3ViIGZhY3RvcnkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0Lmh0bWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5S2V5KGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXREZWZpbml0aW9uc0ZhY3RvcnlLZXk8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+RmFjdG9yeVNldDwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgcmVxdWVzdGVkIGRlZmluaXRpb248REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHNlcnZsZXQgcmVxdWVzdC48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBrZXkgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgbm90IGZvdW5kLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlRmFjdG9yeShqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorY3JlYXRlRmFjdG9yeTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4gPEI+Y3JlYXRlRmFjdG9yeTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgYSBmYWN0b3J5IGZvciBzcGVjaWZpZWQga2V5LgorIElmIGNyZWF0aW9uIGZhaWxlcywgcmV0dXJuIGRlZmF1bHQgZmFjdG9yeSBhbmQgbG9nIGFuIGVycm9yIG1lc3NhZ2UuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0Lmh0bWwjY3JlYXRlRmFjdG9yeShqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Y3JlYXRlRmFjdG9yeTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sIj5GYWN0b3J5U2V0PC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBUaGUga2V5LjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFNlcnZsZXQgcmVxdWVzdC48REQ+PENPREU+c2VydmxldENvbnRleHQ8L0NPREU+IC0gU2VydmxldCBjb250ZXh0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5EZWZpbml0aW9uIGZhY3RvcnkgZm9yIHNwZWNpZmllZCBrZXkuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvQ09ERT4gLSBJZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBjcmVhdGluZyBmYWN0b3J5LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2FsY3VsYXRlUG9zdGl4ZXMoamF2YS5sYW5nLlN0cmluZywgamF2YS51dGlsLkxvY2FsZSkiPjwhLS0gLS0+PC9BPjxIMz4KK2NhbGN1bGF0ZVBvc3RpeGVzPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBqYXZhLnV0aWwuTGlzdCA8Qj5jYWxjdWxhdGVQb3N0aXhlczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2Jhc2VOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSk8L1BSRT4KKzxETD4KKzxERD5DYWxjdWxhdGUgdGhlIHBvc3RpeGVzIGFsb25nIHRoZSBzZWFyY2ggcGF0aCBmcm9tIHRoZSBiYXNlIGJ1bmRsZSB0byB0aGUKKyBidW5kbGUgc3BlY2lmaWVkIGJ5IGJhc2VOYW1lIGFuZCBsb2NhbGUuCisgTWV0aG9kIGNvcGllZCBmcm9tIGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZQorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iYXNlTmFtZTwvQ09ERT4gLSB0aGUgYmFzZSBidW5kbGUgbmFtZTxERD48Q09ERT5sb2NhbGU8L0NPREU+IC0gdGhlIGxvY2FsZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFyc2VYbWxGaWxlcyhqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb25zU2V0KSI+PCEtLSAtLT48L0E+PEgzPgorcGFyc2VYbWxGaWxlczwvSDM+Cis8UFJFPgorcHJpdmF0ZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPiA8Qj5wYXJzZVhtbEZpbGVzPC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Bvc3RmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT4mbmJzcDt4bWxEZWZpbml0aW9ucykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPlBhcnNlIGZpbGVzIGFzc29jaWF0ZWQgdG8gcG9zdGl4IGlmIHRoZXkgZXhpc3QuCisgRm9yIGVhY2ggbmFtZSBpbiBmaWxlbmFtZXMsIGFwcGVuZCBwb3N0Zml4IGJlZm9yZSBmaWxlIGV4dGVuc2lvbiwKKyB0aGVuIHRyeSB0byBsb2FkIHRoZSBjb3JyZXNwb25kaW5nIGZpbGUuCisgSWYgZmlsZSBkb2Vzbid0IGV4aXN0LCB0cnkgbmV4dCBvbmUuIEVhY2ggZmlsZSBkZXNjcmlwdGlvbiBpcyBhZGRlZCB0bworIHRoZSBYbWxEZWZpbml0aW9uc1NldCBkZXNjcmlwdGlvbi4KKyBUaGUgWG1sRGVmaW5pdGlvbnNTZXQgZGVzY3JpcHRpb24gaXMgY3JlYXRlZCBvbmx5IGlmIHRoZXJlIGlzIGEgZGVmaW5pdGlvbiBmaWxlLgorIEluaGVyaXRhbmNlIGlzIG5vdCByZXNvbHZlZCBpbiB0aGUgcmV0dXJuZWQgWG1sRGVmaW5pdGlvbnNTZXQuCisgSWYgbm8gZGVzY3JpcHRpb24gZmlsZSBjYW4gYmUgb3BlbmVkIGFuZCBubyBkZWZpbmlpb24gc2V0IGlzIHByb3ZpZGVkLCByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBvc3RmaXg8L0NPREU+IC0gUG9zdGZpeCB0byBhZGQgdG8gZWFjaCBkZXNjcmlwdGlvbiBmaWxlLjxERD48Q09ERT54bWxEZWZpbml0aW9uczwvQ09ERT4gLSBEZWZpbml0aW9ucyBzZXQgdG8gd2hpY2ggZGVmaW5pdGlvbnMgd2lsbCBiZSBhZGRlZC4gSWYgPGNvZGU+bnVsbDwvY29kZT4sIGEgZGVmaW5pdGlvbnMKKyBzZXQgaXMgY3JlYXRlZCBvbiByZXF1ZXN0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5YbWxEZWZpbml0aW9uc1NldCBUaGUgZGVmaW5pdGlvbnMgc2V0IGNyZWF0ZWQgb3IgcGFzc2VkIGFzIHBhcmFtZXRlci4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi5odG1sIj5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L0E+PC9DT0RFPiAtIE9uIGVycm9ycyBwYXJzaW5nIGZpbGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJzZVhtbEZpbGUoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uc1NldCkiPjwhLS0gLS0+PC9BPjxIMz4KK3BhcnNlWG1sRmlsZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPiA8Qj5wYXJzZVhtbEZpbGU8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+Jm5ic3A7eG1sRGVmaW5pdGlvbnMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPlBhcnNlIHNwZWNpZmllZCB4bWwgZmlsZSBhbmQgYWRkIGRlZmluaXRpb24gdG8gc3BlY2lmaWVkIGRlZmluaXRpb25zIHNldC4KKyBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGxvYWQgc2V2ZXJhbCBkZXNjcmlwdGlvbiBmaWxlcyBpbiBvbmUgaW5zdGFuY2VzIGxpc3QuCisgSWYgZmlsZW5hbWUgZXhpc3RzIGFuZCBkZWZpbml0aW9uIHNldCBpcyA8Y29kZT5udWxsPC9jb2RlPiwgY3JlYXRlIGEgbmV3IHNldC4gT3RoZXJ3aXNlLCByZXR1cm4KKyBwYXNzZWQgZGVmaW5pdGlvbiBzZXQgKGNhbiBiZSA8Y29kZT5udWxsPC9jb2RlPikuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNlcnZsZXRDb250ZXh0PC9DT0RFPiAtIEN1cnJlbnQgc2VydmxldCBjb250ZXh0LiBVc2VkIHRvIG9wZW4gZmlsZS48REQ+PENPREU+ZmlsZW5hbWU8L0NPREU+IC0gTmFtZSBvZiBmaWxlIHRvIHBhcnNlLjxERD48Q09ERT54bWxEZWZpbml0aW9uczwvQ09ERT4gLSBEZWZpbml0aW9ucyBzZXQgdG8gd2hpY2ggZGVmaW5pdGlvbnMgd2lsbCBiZSBhZGRlZC4gSWYgbnVsbCwgYSBkZWZpbml0aW9ucworIHNldCBpcyBjcmVhdGVkIG9uIHJlcXVlc3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlhtbERlZmluaXRpb25zU2V0IFRoZSBkZWZpbml0aW9ucyBzZXQgY3JlYXRlZCBvciBwYXNzZWQgYXMgcGFyYW1ldGVyLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQT48L0NPREU+IC0gT24gZXJyb3JzIHBhcnNpbmcgZmlsZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbmNhdFBvc3RmaXgoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmNhdFBvc3RmaXg8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj5jb25jYXRQb3N0Zml4PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwb3N0Zml4KTwvUFJFPgorPERMPgorPEREPkNvbmNhdCBwb3N0Zml4IHRvIHRoZSBuYW1lLiBUYWtlIGNhcmUgb2YgZXhpc3RpbmcgZmlsZW5hbWUgZXh0ZW5zaW9uLgorIFRyYW5zZm9ybSB0aGUgZ2l2ZW4gbmFtZSAibmFtZS5leHQiIHRvIGhhdmUgIm5hbWUiICsgInBvc3RmaXgiICsgImV4dCIuCisgSWYgdGhlcmUgaXMgbm8gZXh0LCByZXR1cm4gIm5hbWUiICsgInBvc3RmaXgiLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIEZpbGVuYW1lLjxERD48Q09ERT5wb3N0Zml4PC9DT0RFPiAtIFBvc3RmaXggdG8gYWRkLgorPERUPjxCPlJldHVybnM6PC9CPjxERD5Db25jYXRlbmF0ZWQgZmlsZW5hbWUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0b1N0cmluZygpIj48IS0tIC0tPjwvQT48SDM+Cit0b1N0cmluZzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+dG9TdHJpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gU3RyaW5nIHJlcHJlc2VudGF0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0Lmh0bWwiPkZhY3RvcnlTZXQ8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5TdHJpbmcgcmVwcmVzZW50YXRpb24uPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9JMThuRmFjdG9yeVNldC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSTE4bkZhY3RvcnlTZXQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4MjY3MTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDY2NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDowMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1htbEF0dHJpYnV0ZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxBdHRyaWJ1dGUsWG1sQXR0cmlidXRlIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJYbWxBdHRyaWJ1dGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvWG1sQXR0cmlidXRlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlhtbEF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzIFhtbEF0dHJpYnV0ZTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sQXR0cmlidXRlPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmh0bWwiPlhtbExpc3RBdHRyaWJ1dGU8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlhtbEF0dHJpYnV0ZTwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4KKworPFA+CitBIHByb3BlcnR5IGtleS12YWx1ZSBwYWlyLgorIFRoaXMgY2xhc3MgaXMgdXNlZCB0byByZWFkIGNvbmZpZ3VyYXRpb24gZmlsZXMuCis8UD4KKworPFA+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI2RpcmVjdCI+ZGlyZWN0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0F0dHJpYnV0ZSB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdHRyaWJ1dGUgbmFtZSBvciBrZXkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI3JlYWxWYWx1ZSI+cmVhbFZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JlYWwgYXR0cmlidXRlIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNyb2xlIj5yb2xlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0F0dHJpYnV0ZSB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwjdmFsdWUiPnZhbHVlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0F0dHJpYnV0ZSB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwjdmFsdWVUeXBlIj52YWx1ZVR5cGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXR0cmlidXRlIHZhbHVlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNYbWxBdHRyaWJ1dGUoKSI+WG1sQXR0cmlidXRlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI1htbEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+WG1sQXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNjb21wdXRlUmVhbFZhbHVlKCkiPmNvbXB1dGVSZWFsVmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wdXRlICByZWFsIHZhbHVlIGZyb20gYXR0cmlidXRlcyBzZXR0aW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwjZ2V0QXR0cmlidXRlKCkiPmdldEF0dHJpYnV0ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Fub3RoZXIgYWNjZXNzIG1ldGhvZCBmb3IgdGhlIG5hbWUgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBY2Nlc3MgbWV0aG9kIGZvciB0aGUgbmFtZSBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI2dldFJvbGUoKSI+Z2V0Um9sZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FjY2VzcyBtZXRob2QgZm9yIHRoZSBuYW1lIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBY2Nlc3MgbWV0aG9kIGZvciB0aGUgdmFsdWUgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNzZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZykiPnNldEF0dHJpYnV0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwjc2V0Qm9keShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Qm9keTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtib2R5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgdmFsdWUgb2YgdGhlIHZhbHVlIHByb3BlcnR5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwjc2V0Q29udGVudChqYXZhLmxhbmcuT2JqZWN0KSI+c2V0Q29udGVudDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDthVmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgdmFsdWUgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNzZXREaXJlY3QoamF2YS5sYW5nLlN0cmluZykiPnNldERpcmVjdDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHZhbHVlIG9mIHRoZSB2YWx1ZSBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YU5hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI3NldFJvbGUoamF2YS5sYW5nLlN0cmluZykiPnNldFJvbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cm9sZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwjc2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VHlwZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIHZhbHVlIG9mIHRoZSB2YWx1ZSBwcm9wZXJ0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI3NldFZhbHVlKGphdmEubGFuZy5PYmplY3QpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDthVmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgdmFsdWUgcHJvcGVydHkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJuYW1lIj48IS0tIC0tPjwvQT48SDM+CituYW1lPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5BdHRyaWJ1dGUgbmFtZSBvciBrZXkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLk9iamVjdCA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5BdHRyaWJ1dGUgdmFsdWUuCisgVmFsdWUgcmVhZCBmcm9tIGRlc2NyaXB0aW9uIGZpbGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkaXJlY3QiPjwhLS0gLS0+PC9BPjxIMz4KK2RpcmVjdDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPmRpcmVjdDwvQj48L1BSRT4KKzxETD4KKzxERD5BdHRyaWJ1dGUgdmFsdWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZVR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlVHlwZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlVHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5BdHRyaWJ1dGUgdmFsdWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyb2xlIj48IS0tIC0tPjwvQT48SDM+Cityb2xlPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+cm9sZTwvQj48L1BSRT4KKzxETD4KKzxERD5BdHRyaWJ1dGUgdmFsdWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWFsVmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWxWYWx1ZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLmxhbmcuT2JqZWN0IDxCPnJlYWxWYWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5SZWFsIGF0dHJpYnV0ZSB2YWx1ZS4KKyBSZWFsIHZhbHVlIGlzIHRoZSB2YWx1ZSBhZnRlciBwcm9jZXNzaW5nIG9mIHZhbHVlVHlwZS4KKyBJLmUuIGlmIGEgdHlwZSBpcyBkZWZpbmVkLCByZWFsVmFsdWUgY29udGFpbnMgd3JhcHBlciBmb3IgdGhpcyB0eXBlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlhtbEF0dHJpYnV0ZSgpIj48IS0tIC0tPjwvQT48SDM+CitYbWxBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5YbWxBdHRyaWJ1dGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3Rvci4KKzxQPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iWG1sQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitYbWxBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5YbWxBdHRyaWJ1dGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkFjY2VzcyBtZXRob2QgZm9yIHRoZSBuYW1lIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRSb2xlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRSb2xlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cm9sZSk8L1BSRT4KKzxETD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dm9pZAorIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Um9sZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSb2xlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRSb2xlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+QWNjZXNzIG1ldGhvZCBmb3IgdGhlIG5hbWUgcHJvcGVydHkuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIG5hbWUgcHJvcGVydHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthTmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmFOYW1lPC9DT0RFPiAtIHRoZSBuZXcgdmFsdWUgb2YgdGhlIG5hbWUgcHJvcGVydHkKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dm9pZAorIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QXR0cmlidXRlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEF0dHJpYnV0ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0QXR0cmlidXRlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+QW5vdGhlciBhY2Nlc3MgbWV0aG9kIGZvciB0aGUgbmFtZSBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD50aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgbmFtZSBwcm9wZXJ0eTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEF0dHJpYnV0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FOYW1lKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5hTmFtZTwvQ09ERT4gLSB0aGUgbmV3IHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5PYmplY3QgPEI+Z2V0VmFsdWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5BY2Nlc3MgbWV0aG9kIGZvciB0aGUgdmFsdWUgcHJvcGVydHkuCisgUmV0dXJuIHRoZSB2YWx1ZSBvciBhIFF1YWxpZmllZEF0dHJpYnV0ZSBjb250YWluaW5nIHRoZSB2YWx1ZQorIGlmICdkaXJlY3QnIGlzIHNldC4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD50aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgdmFsdWUgcHJvcGVydHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFZhbHVlKGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitzZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VmFsdWU8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDthVmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgdmFsdWUgb2YgdGhlIHZhbHVlIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5hVmFsdWU8L0NPREU+IC0gdGhlIG5ldyB2YWx1ZSBvZiB0aGUgdmFsdWUgcHJvcGVydHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENvbnRlbnQoamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENvbnRlbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbnRlbnQ8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDthVmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgdmFsdWUgb2YgdGhlIHZhbHVlIHByb3BlcnR5LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5hVmFsdWU8L0NPREU+IC0gdGhlIG5ldyB2YWx1ZSBvZiB0aGUgdmFsdWUgcHJvcGVydHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEJvZHkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJvZHk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEJvZHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtib2R5KTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIHZhbHVlIG9mIHRoZSB2YWx1ZSBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RGlyZWN0KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXREaXJlY3Q8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldERpcmVjdDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIHZhbHVlIG9mIHRoZSB2YWx1ZSBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VHlwZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIHZhbHVlIG9mIHRoZSB2YWx1ZSBwcm9wZXJ0eS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29tcHV0ZVJlYWxWYWx1ZSgpIj48IS0tIC0tPjwvQT48SDM+Citjb21wdXRlUmVhbFZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLk9iamVjdCA8Qj5jb21wdXRlUmVhbFZhbHVlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29tcHV0ZSAgcmVhbCB2YWx1ZSBmcm9tIGF0dHJpYnV0ZXMgc2V0dGluZy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvWG1sQXR0cmlidXRlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlhtbEF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjk0N2ExCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sCkBAIC0wLDAgKzEsNDg0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorWG1sRGVmaW5pdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uLFhtbERlZmluaXRpb24gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlhtbERlZmluaXRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvWG1sRGVmaW5pdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlhtbERlZmluaXRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBYbWxEZWZpbml0aW9uPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlhtbERlZmluaXRpb248L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPjwvREw+CisKKzxQPgorQSBkZWZpbml0aW9uIHJlYWQgZnJvbSBhbiBYTUwgZGVmaW5pdGlvbnMgZmlsZS4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbiI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCNpbmhlcml0Ij5pbmhlcml0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0V4dGVuZHMgYXR0cmlidXRlIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwjaXNWaXNpdGVkIj5pc1Zpc2l0ZWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VXNlZCBmb3IgcmVzb2x2aW5nIGluaGVyaXRhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sI2xvZyI+bG9nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI0FDVElPTiI+QUNUSU9OPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2F0dHJpYnV0ZXMiPmF0dHJpYnV0ZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjY29udHJvbGxlciI+Y29udHJvbGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNDT05UUk9MTEVSIj5DT05UUk9MTEVSPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2NvbnRyb2xsZXJUeXBlIj5jb250cm9sbGVyVHlwZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNuYW1lIj5uYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3BhdGgiPnBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjcm9sZSI+cm9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNVUkwiPlVSTDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCNYbWxEZWZpbml0aW9uKCkiPlhtbERlZmluaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3Rvci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sI2FkZEF0dHJpYnV0ZShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbEF0dHJpYnV0ZSkiPmFkZEF0dHJpYnV0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwiPlhtbEF0dHJpYnV0ZTwvQT4mbmJzcDthdHRyaWJ1dGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYW4gYXR0cmlidXRlIHRvIHRoaXMgY29tcG9uZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sI2dldEV4dGVuZHMoKSI+Z2V0RXh0ZW5kczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBleHRlbmRzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sI2lzRXh0ZW5kaW5nKCkiPmlzRXh0ZW5kaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGV4dGVuZHMgZmxhZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCNvdmVybG9hZChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb24pIj5vdmVybG9hZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj5YbWxEZWZpbml0aW9uPC9BPiZuYnNwO2NoaWxkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7T3ZlcmxvYWQgdGhpcyBkZWZpbml0aW9uIHdpdGggcGFzc2VkIGNoaWxkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sI3Jlc29sdmVJbmhlcml0YW5jZShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb25zU2V0KSI+cmVzb2x2ZUluaGVyaXRhbmNlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT4mbmJzcDtkZWZpbml0aW9uc1NldCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Jlc29sdmUgaW5oZXJpdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwjc2V0RXh0ZW5kcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0RXh0ZW5kczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGV4dGVuZHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwjc2V0SXNWaXNpdGVkKGJvb2xlYW4pIj5zZXRJc1Zpc2l0ZWQ8L0E+PC9CPihib29sZWFuJm5ic3A7aXNWaXNpdGVkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IGlzVmlzaXRlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjY3JlYXRlQ29udHJvbGxlcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlQ29udHJvbGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNjcmVhdGVDb250cm9sbGVyRnJvbUNsYXNzbmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlQ29udHJvbGxlckZyb21DbGFzc25hbWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjZ2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj5nZXRBdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjZ2V0QXR0cmlidXRlcygpIj5nZXRBdHRyaWJ1dGVzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2dldENvbnRyb2xsZXIoKSI+Z2V0Q29udHJvbGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNnZXRDb250cm9sbGVySW5zdGFuY2UoKSI+Z2V0Q29udHJvbGxlckluc3RhbmNlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2dldENvbnRyb2xsZXJUeXBlKCkiPmdldENvbnRyb2xsZXJUeXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNnZXRPckNyZWF0ZUNvbnRyb2xsZXIoKSI+Z2V0T3JDcmVhdGVDb250cm9sbGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2dldFBhZ2UoKSI+Z2V0UGFnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNnZXRQYXRoKCkiPmdldFBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI2dldFRlbXBsYXRlKCkiPmdldFRlbXBsYXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3B1dChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+cHV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3B1dChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBib29sZWFuKSI+cHV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3B1dChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBib29sZWFuLCBqYXZhLmxhbmcuU3RyaW5nKSI+cHV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3B1dChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+cHV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3B1dEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+cHV0QXR0cmlidXRlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3NldENvbnRyb2xsZXIoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRyb2xsZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjc2V0Q29udHJvbGxlckNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb250cm9sbGVyQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjc2V0Q29udHJvbGxlckluc3RhbmNlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbnRyb2xsZXIpIj5zZXRDb250cm9sbGVySW5zdGFuY2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjc2V0Q29udHJvbGxlclR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRyb2xsZXJUeXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3NldENvbnRyb2xsZXJVcmwoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRyb2xsZXJVcmw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjc2V0TmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNzZXRQYWdlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRQYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sI3NldFBhdGgoamF2YS5sYW5nLlN0cmluZykiPnNldFBhdGg8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjc2V0Um9sZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Um9sZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNzZXRUZW1wbGF0ZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0VGVtcGxhdGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJpbmhlcml0Ij48IS0tIC0tPjwvQT48SDM+Citpbmhlcml0PC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+aW5oZXJpdDwvQj48L1BSRT4KKzxETD4KKzxERD5FeHRlbmRzIGF0dHJpYnV0ZSB2YWx1ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvZyI+PCEtLSAtLT48L0E+PEgzPgorbG9nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZyA8Qj5sb2c8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNWaXNpdGVkIj48IS0tIC0tPjwvQT48SDM+Citpc1Zpc2l0ZWQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgYm9vbGVhbiA8Qj5pc1Zpc2l0ZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VXNlZCBmb3IgcmVzb2x2aW5nIGluaGVyaXRhbmNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlhtbERlZmluaXRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorWG1sRGVmaW5pdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPlhtbERlZmluaXRpb248L0I+KCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3Rvci4KKzxQPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYWRkQXR0cmlidXRlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sQXR0cmlidXRlKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkQXR0cmlidXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRBdHRyaWJ1dGU8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwiPlhtbEF0dHJpYnV0ZTwvQT4mbmJzcDthdHRyaWJ1dGUpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGFuIGF0dHJpYnV0ZSB0byB0aGlzIGNvbXBvbmVudC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YXR0cmlidXRlPC9DT0RFPiAtIEF0dHJpYnV0ZSB0byBhZGQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRFeHRlbmRzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRFeHRlbmRzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRFeHRlbmRzPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgZXh0ZW5kcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBleHRlbmRlZCBkZWZpbml0aW9uLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RXh0ZW5kcygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFeHRlbmRzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRFeHRlbmRzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IGV4dGVuZHMuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+TmFtZSBvZiB0aGUgZXh0ZW5kZWQgZGVmaW5pdGlvbi48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzRXh0ZW5kaW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzRXh0ZW5kaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc0V4dGVuZGluZzwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCBleHRlbmRzIGZsYWcuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldElzVmlzaXRlZChib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SXNWaXNpdGVkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRJc1Zpc2l0ZWQ8L0I+KGJvb2xlYW4mbmJzcDtpc1Zpc2l0ZWQpPC9QUkU+Cis8REw+Cis8REQ+U2V0IGlzVmlzaXRlZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVzb2x2ZUluaGVyaXRhbmNlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbnNTZXQpIj48IS0tIC0tPjwvQT48SDM+CityZXNvbHZlSW5oZXJpdGFuY2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlc29sdmVJbmhlcml0YW5jZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT4mbmJzcDtkZWZpbml0aW9uc1NldCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiPk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0E+PC9QUkU+Cis8REw+Cis8REQ+UmVzb2x2ZSBpbmhlcml0YW5jZS4KKyBGaXJzdCwgcmVzb2x2ZSBwYXJlbnQncyBpbmhlcml0YW5jZSwgdGhlbiBzZXQgcGF0aCB0byB0aGUgcGFyZW50J3MgcGF0aC4KKyBBbHNvIGNvcHkgYXR0cmlidXRlcyBzZXR0ZWQgaW4gcGFyZW50LCBhbmQgbm90IHNldCBpbiBjaGlsZAorIElmIGluc3RhbmNlIGRvZXNuJ3QgZXh0ZW5kIGFueXRoaW5nLCBkbyBub3RoaW5nLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiPk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0E+PC9DT0RFPiAtIElmIGFuIGluaGVyaXRhbmNlIGNhbiBub3QgYmUgc29sdmVkLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ib3ZlcmxvYWQob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uKSI+PCEtLSAtLT48L0E+PEgzPgorb3ZlcmxvYWQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPm92ZXJsb2FkPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCI+WG1sRGVmaW5pdGlvbjwvQT4mbmJzcDtjaGlsZCk8L1BSRT4KKzxETD4KKzxERD5PdmVybG9hZCB0aGlzIGRlZmluaXRpb24gd2l0aCBwYXNzZWQgY2hpbGQuCisgQWxsIGF0dHJpYnV0ZXMgZnJvbSBjaGlsZCBhcmUgY29waWVkIHRvIHRoaXMgZGVmaW5pdGlvbi4gUHJldmlvdXMgYXR0cmlidXRlcyB3aXRoCisgc2FtZSBuYW1lIGFyZSBkaXNndWFyZGVkLgorIFNwZWNpYWwgYXR0cmlidXRlICdwYXRoJywncm9sZScgYW5kICdleHRlbmRzJyBhcmUgb3ZlcmxvYWRlZCBpZiBkZWZpbmVkIGluIGNoaWxkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jaGlsZDwvQ09ERT4gLSBDaGlsZCB1c2VkIHRvIG92ZXJsb2FkIHRoaXMgZGVmaW5pdGlvbi48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1htbERlZmluaXRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJYbWxEZWZpbml0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTJiNjFjNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwKQEAgLTAsMCArMSwzOTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDQ6MDAgRURUIDIwMDMgLS0+Cis8VElUTEU+CitYbWxEZWZpbml0aW9uc1NldCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uc1NldCxYbWxEZWZpbml0aW9uc1NldCBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iWG1sRGVmaW5pdGlvbnNTZXQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJYbWxEZWZpbml0aW9uc1NldC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvRk9OVD4KKzxCUj4KK0NsYXNzIFhtbERlZmluaXRpb25zU2V0PC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uc1NldDwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5YbWxEZWZpbml0aW9uc1NldDwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4KKworPFA+CitBIHNldCBvZiBkZWZpbml0aW9ucyByZWFkIGZyb20gWE1MIGRlZmluaXRpb25zIGZpbGUuCis8UD4KKworPFA+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCNkZWZpbml0aW9ucyI+ZGVmaW5pdGlvbnM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGVmaW5lZCBkZWZpbml0aW9ucy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCNYbWxEZWZpbml0aW9uc1NldCgpIj5YbWxEZWZpbml0aW9uc1NldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sI2V4dGVuZChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb25zU2V0KSI+ZXh0ZW5kPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT4mbmJzcDtjaGlsZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBkZWZpbml0aW9ucyBmcm9tIHNwZWNpZmllZCBjaGlsZCBkZWZpbml0aW9ucyBzZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj5YbWxEZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwjZ2V0RGVmaW5pdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0RGVmaW5pdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHJlcXVlc3RlZCBkZWZpbml0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCNnZXREZWZpbml0aW9ucygpIj5nZXREZWZpbml0aW9uczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBkZWZpbml0aW9ucyBtYXAuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sI3B1dERlZmluaXRpb24ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uKSI+cHV0RGVmaW5pdGlvbjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj5YbWxEZWZpbml0aW9uPC9BPiZuYnNwO2RlZmluaXRpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQdXQgZGVmaW5pdGlvbiBpbiBzZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sI3Jlc29sdmVJbmhlcml0YW5jZXMoKSI+cmVzb2x2ZUluaGVyaXRhbmNlczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Jlc29sdmUgZXh0ZW5kZWQgaW5zdGFuY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBTdHJpbmcgcmVwcmVzZW50YXRpb24uPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImRlZmluaXRpb25zIj48IS0tIC0tPjwvQT48SDM+CitkZWZpbml0aW9uczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5NYXAgPEI+ZGVmaW5pdGlvbnM8L0I+PC9QUkU+Cis8REw+Cis8REQ+RGVmaW5lZCBkZWZpbml0aW9ucy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJYbWxEZWZpbml0aW9uc1NldCgpIj48IS0tIC0tPjwvQT48SDM+CitYbWxEZWZpbml0aW9uc1NldDwvSDM+Cis8UFJFPgorcHVibGljIDxCPlhtbERlZmluaXRpb25zU2V0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InB1dERlZmluaXRpb24ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uKSI+PCEtLSAtLT48L0E+PEgzPgorcHV0RGVmaW5pdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHV0RGVmaW5pdGlvbjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwiPlhtbERlZmluaXRpb248L0E+Jm5ic3A7ZGVmaW5pdGlvbik8L1BSRT4KKzxETD4KKzxERD5QdXQgZGVmaW5pdGlvbiBpbiBzZXQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRlZmluaXRpb248L0NPREU+IC0gRGVmaW5pdGlvbiB0byBhZGQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXREZWZpbml0aW9uKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZpbml0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwiPlhtbERlZmluaXRpb248L0E+IDxCPmdldERlZmluaXRpb248L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPkdldCByZXF1ZXN0ZWQgZGVmaW5pdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bmFtZTwvQ09ERT4gLSBEZWZpbml0aW9uIG5hbWUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXREZWZpbml0aW9ucygpIj48IS0tIC0tPjwvQT48SDM+CitnZXREZWZpbml0aW9uczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5NYXAgPEI+Z2V0RGVmaW5pdGlvbnM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgZGVmaW5pdGlvbnMgbWFwLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXNvbHZlSW5oZXJpdGFuY2VzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3Jlc29sdmVJbmhlcml0YW5jZXM8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlc29sdmVJbmhlcml0YW5jZXM8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9BPjwvUFJFPgorPERMPgorPEREPlJlc29sdmUgZXh0ZW5kZWQgaW5zdGFuY2VzLgorPFA+Cis8REQ+PERMPgorCis8REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImV4dGVuZChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb25zU2V0KSI+PCEtLSAtLT48L0E+PEgzPgorZXh0ZW5kPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5leHRlbmQ8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+Jm5ic3A7Y2hpbGQpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGRlZmluaXRpb25zIGZyb20gc3BlY2lmaWVkIGNoaWxkIGRlZmluaXRpb25zIHNldC4KKyBGb3IgZWFjaCBkZWZpbml0aW9uIGluIGNoaWxkLCBsb29rIGlmIGl0IGFscmVhZHkgZXhpc3RzIGluIHRoaXMgc2V0LgorIElmIG5vdCwgYWRkIGl0LCBpZiB5ZXMsIG92ZXJsb2FkIHBhcmVudCdzIGRlZmluaXRpb24gd2l0aCBjaGlsZCBkZWZpbml0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jaGlsZDwvQ09ERT4gLSBEZWZpbml0aW9uIHVzZWQgdG8gb3ZlcmxvYWQgdGhpcyBvYmplY3QuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0b1N0cmluZygpIj48IS0tIC0tPjwvQT48SDM+Cit0b1N0cmluZzwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+dG9TdHJpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgU3RyaW5nIHJlcHJlc2VudGF0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnRvU3RyaW5nPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJYbWxEZWZpbml0aW9uc1NldC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbExpc3RBdHRyaWJ1dGUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbExpc3RBdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmMzYWYyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5odG1sCkBAIC0wLDAgKzEsMzcwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorWG1sTGlzdEF0dHJpYnV0ZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxMaXN0QXR0cmlidXRlLFhtbExpc3RBdHRyaWJ1dGUgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlhtbExpc3RBdHRyaWJ1dGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvWG1sTGlzdEF0dHJpYnV0ZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlhtbExpc3RBdHRyaWJ1dGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBYbWxMaXN0QXR0cmlidXRlPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxBdHRyaWJ1dGU8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxMaXN0QXR0cmlidXRlPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlhtbExpc3RBdHRyaWJ1dGU8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCI+WG1sQXR0cmlidXRlPC9BPjwvREw+CisKKzxQPgorQW4gYXR0cmlidXRlIGFzIGEgPGNvZGU+TGlzdDwvY29kZT4uCisgVGhpcyBhdHRyaWJ1dGUgYXNzb2NpYXRlcyBhIG5hbWUgd2l0aCBhIGxpc3QuIFRoZSBsaXN0IGNhbiBiZSBmb3VuZCBieSB0aGUKKyBwcm9wZXJ0eSBuYW1lLgorIEVsZW1lbnRzIGluIGxpc3QgYXJlIHJldHJpZXZlZCB1c2luZyBMaXN0IG1ldGhvZHMuCisgVGhpcyBjbGFzcyBpcyB1c2VkIHRvIHJlYWQgY29uZmlndXJhdGlvbiBmaWxlcy4KKzxQPgorCis8UD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLnV0aWwuTGlzdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbExpc3RBdHRyaWJ1dGUuaHRtbCNsaXN0Ij5saXN0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0xpc3QuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sQXR0cmlidXRlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCI+WG1sQXR0cmlidXRlPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5odG1sI1htbExpc3RBdHRyaWJ1dGUoKSI+WG1sTGlzdEF0dHJpYnV0ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmh0bWwjWG1sTGlzdEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnV0aWwuTGlzdCkiPlhtbExpc3RBdHRyaWJ1dGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgamF2YS51dGlsLkxpc3QmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmh0bWwjYWRkKGphdmEubGFuZy5PYmplY3QpIj5hZGQ8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYW4gZWxlbWVudCBpbiBsaXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5odG1sI2FkZChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbEF0dHJpYnV0ZSkiPmFkZDwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwiPlhtbEF0dHJpYnV0ZTwvQT4mbmJzcDtlbGVtZW50KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkIGFuIGVsZW1lbnQgaW4gbGlzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbExpc3RBdHRyaWJ1dGUuaHRtbCNhZGRPYmplY3QoamF2YS5sYW5nLk9iamVjdCkiPmFkZE9iamVjdDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBhbiBlbGVtZW50IGluIGxpc3QuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbEF0dHJpYnV0ZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj5YbWxBdHRyaWJ1dGU8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNjb21wdXRlUmVhbFZhbHVlKCkiPmNvbXB1dGVSZWFsVmFsdWU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI2dldEF0dHJpYnV0ZSgpIj5nZXRBdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI2dldE5hbWUoKSI+Z2V0TmFtZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwjZ2V0Um9sZSgpIj5nZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNnZXRWYWx1ZSgpIj5nZXRWYWx1ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwjc2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRBdHRyaWJ1dGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI3NldEJvZHkoamF2YS5sYW5nLlN0cmluZykiPnNldEJvZHk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI3NldENvbnRlbnQoamF2YS5sYW5nLk9iamVjdCkiPnNldENvbnRlbnQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sI3NldERpcmVjdChqYXZhLmxhbmcuU3RyaW5nKSI+c2V0RGlyZWN0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNzZXROYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXROYW1lPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNzZXRSb2xlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRSb2xlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNzZXRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRUeXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCNzZXRWYWx1ZShqYXZhLmxhbmcuT2JqZWN0KSI+c2V0VmFsdWU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibGlzdCI+PCEtLSAtLT48L0E+PEgzPgorbGlzdDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLnV0aWwuTGlzdCA8Qj5saXN0PC9CPjwvUFJFPgorPERMPgorPEREPkxpc3QuCisgV2UgZGVjbGFyZSBhIExpc3QgdG8gYXZvaWQgY2FzdC4KKyBQYXJlbnQgInZhbHVlIiBwcm9wZXJ0eSBwb2ludHMgdG8gdGhlIHNhbWUgbGlzdC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJYbWxMaXN0QXR0cmlidXRlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1htbExpc3RBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5YbWxMaXN0QXR0cmlidXRlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCis8UD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlhtbExpc3RBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS51dGlsLkxpc3QpIj48IS0tIC0tPjwvQT48SDM+CitYbWxMaXN0QXR0cmlidXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+WG1sTGlzdEF0dHJpYnV0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTGlzdCZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdG9yLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gTmFtZS48REQ+PENPREU+dmFsdWU8L0NPREU+IC0gTGlzdC48L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJhZGQob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxBdHRyaWJ1dGUpIj48IS0tIC0tPjwvQT48SDM+CithZGQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCI+WG1sQXR0cmlidXRlPC9BPiZuYnNwO2VsZW1lbnQpPC9QUkU+Cis8REw+Cis8REQ+QWRkIGFuIGVsZW1lbnQgaW4gbGlzdC4KKyBXZSB1c2UgYSBwcm9wZXJ0eSB0byBhdm9pZCByZXdyaXRpbmcgYSBuZXcgY2xhc3MuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmVsZW1lbnQ8L0NPREU+IC0gWG1sQXR0cmlidXRlIHRvIGFkZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZChqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorYWRkPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGQ8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5BZGQgYW4gZWxlbWVudCBpbiBsaXN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBPYmplY3QgdG8gYWRkLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYWRkT2JqZWN0KGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CithZGRPYmplY3Q8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmFkZE9iamVjdDwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPkFkZCBhbiBlbGVtZW50IGluIGxpc3QuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIE9iamVjdCB0byBhZGQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9YbWxMaXN0QXR0cmlidXRlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iWG1sTGlzdEF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU5MWEzZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sCkBAIC0wLDAgKzEsNDg4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQ0OjAwIEVEVCAyMDAzIC0tPgorPFRJVExFPgorWG1sUGFyc2VyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbFBhcnNlcixYbWxQYXJzZXIgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlhtbFBhcnNlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9YbWxQYXJzZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJYbWxQYXJzZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0ZPTlQ+Cis8QlI+CitDbGFzcyBYbWxQYXJzZXI8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbFBhcnNlcjwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5YbWxQYXJzZXI8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDwvREw+CisKKzxQPgorUGFyc2UgYW4gWE1MIGRlZmluaXRpb25zIGZpbGUuCis8UD4KKworPFA+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuRGlnZXN0ZXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCNkaWdlc3RlciI+ZGlnZXN0ZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXNzb2NpYXRlZCBkaWdlc3Rlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmdbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sI3JlZ2lzdHJhdGlvbnMiPnJlZ2lzdHJhdGlvbnM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNldCBvZiBwdWJsaWMgaWRlbnRpZmllcnMsIGFuZCBjb3JyZXNwb25kaW5nIHJlc291cmNlIG5hbWVzIGZvcgorIHRoZSB2ZXJzaW9ucyBvZiB0aGUgY29uZmlndXJhdGlvbiBmaWxlIERURHMgd2Uga25vdyBhYm91dC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCN2YWxpZGF0aW5nIj52YWxpZGF0aW5nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Nob3VsZCB3ZSB1c2UgYSB2YWxpZGF0aW5nIFhNTCBwYXJzZXIgdG8gcmVhZCB0aGUgY29uZmlndXJhdGlvbiBmaWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCNYbWxQYXJzZXIoKSI+WG1sUGFyc2VyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCNpbml0RGlnZXN0ZXIob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyKSI+aW5pdERpZ2VzdGVyPC9BPjwvQj4ob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyJm5ic3A7ZGlnZXN0ZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0IGRpZ2VzdGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCNpbml0RGlnZXN0ZXJGb3JDb21wb25lbnRzRGVmaW5pdGlvbnNTeW50YXgob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyKSI+aW5pdERpZ2VzdGVyRm9yQ29tcG9uZW50c0RlZmluaXRpb25zU3ludGF4PC9BPjwvQj4ob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyJm5ic3A7ZGlnZXN0ZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0IGRpZ2VzdGVyIGZvciBjb21wb25lbnRzIHN5bnRheC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwjaW5pdERpZ2VzdGVyRm9ySW5zdGFuY2VzU3ludGF4KG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5EaWdlc3RlcikiPmluaXREaWdlc3RlckZvckluc3RhbmNlc1N5bnRheDwvQT48L0I+KG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5EaWdlc3RlciZuYnNwO2RpZ2VzdGVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7SW5pdCBkaWdlc3RlciBpbiBvcmRlciB0byBwYXJzZSBpbnN0YW5jZXMgZGVmaW5pdGlvbiBmaWxlIHN5bnRheC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwjaW5pdERpZ2VzdGVyRm9yVGlsZXNEZWZpbml0aW9uc1N5bnRheChvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuRGlnZXN0ZXIpIj5pbml0RGlnZXN0ZXJGb3JUaWxlc0RlZmluaXRpb25zU3ludGF4PC9BPjwvQj4ob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyJm5ic3A7ZGlnZXN0ZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0IGRpZ2VzdGVyIGZvciBUaWxlcyBzeW50YXguPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCNtYWluKGphdmEubGFuZy5TdHJpbmdbXSkiPm1haW48L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nW10mbmJzcDthcmdzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TWFpbiBtZXRob2QgdG8gY2hlY2sgZmlsZSBzeW50YXguPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCNwYXJzZShqYXZhLmlvLklucHV0U3RyZWFtLCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb25zU2V0KSI+cGFyc2U8L0E+PC9CPihqYXZhLmlvLklucHV0U3RyZWFtJm5ic3A7aW4sCisgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPiZuYnNwO2RlZmluaXRpb25zKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGFyc2UgaW5wdXQgcmVhZGVyIGFuZCBhZGQgZW5jb3VudGVyZWQgZGVmaW5pdGlvbnMgdG8gZGVmaW5pdGlvbnMgc2V0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwjc2V0RGV0YWlsTGV2ZWwoaW50KSI+c2V0RGV0YWlsTGV2ZWw8L0E+PC9CPihpbnQmbmJzcDtkZXRhaWxMZXZlbCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSB0aGUgY29tbW9ucy1sb2dnaW5nIHRvIHNldCBkaWdlc3RlciBkZWJ1ZyBsZXZlbC48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCNzZXRWYWxpZGF0aW5nKGJvb2xlYW4pIj5zZXRWYWxpZGF0aW5nPC9BPjwvQj4oYm9vbGVhbiZuYnNwO3ZhbGlkYXRpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgZGlnZXN0ZXIgdmFsaWRhdGluZyBmbGFnLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZGlnZXN0ZXIiPjwhLS0gLS0+PC9BPjxIMz4KK2RpZ2VzdGVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyIDxCPmRpZ2VzdGVyPC9CPjwvUFJFPgorPERMPgorPEREPkFzc29jaWF0ZWQgZGlnZXN0ZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWxpZGF0aW5nIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0aW5nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj52YWxpZGF0aW5nPC9CPjwvUFJFPgorPERMPgorPEREPlNob3VsZCB3ZSB1c2UgYSB2YWxpZGF0aW5nIFhNTCBwYXJzZXIgdG8gcmVhZCB0aGUgY29uZmlndXJhdGlvbiBmaWxlLgorIERlZmF1bHQgaXMgPGNvZGU+ZmFsc2U8L2NvZGU+LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVnaXN0cmF0aW9ucyI+PCEtLSAtLT48L0E+PEgzPgorcmVnaXN0cmF0aW9uczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmdbXSA8Qj5yZWdpc3RyYXRpb25zPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgcHVibGljIGlkZW50aWZpZXJzLCBhbmQgY29ycmVzcG9uZGluZyByZXNvdXJjZSBuYW1lcyBmb3IKKyB0aGUgdmVyc2lvbnMgb2YgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBEVERzIHdlIGtub3cgYWJvdXQuICBUaGVyZQorIDxzdHJvbmc+TVVTVDwvc3Ryb25nPiBiZSBhbiBldmVuIG51bWJlciBvZiBTdHJpbmdzIGluIHRoaXMgbGlzdCEKKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJYbWxQYXJzZXIoKSI+PCEtLSAtLT48L0E+PEgzPgorWG1sUGFyc2VyPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+WG1sUGFyc2VyPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0b3IuCisgQ3JlYXRlcyBhIGRpZ2VzdGVyIHBhcnNlciBhbmQgaW5pdGlhbGl6ZXMgc3ludGF4IHJ1bGVzLgorPFA+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJzZXRWYWxpZGF0aW5nKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRWYWxpZGF0aW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWxpZGF0aW5nPC9CPihib29sZWFuJm5ic3A7dmFsaWRhdGluZyk8L1BSRT4KKzxETD4KKzxERD5TZXQgZGlnZXN0ZXIgdmFsaWRhdGluZyBmbGFnLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXREZXRhaWxMZXZlbChpbnQpIj48IS0tIC0tPjwvQT48SDM+CitzZXREZXRhaWxMZXZlbDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RGV0YWlsTGV2ZWw8L0I+KGludCZuYnNwO2RldGFpbExldmVsKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSB0aGUgY29tbW9ucy1sb2dnaW5nIHRvIHNldCBkaWdlc3RlciBkZWJ1ZyBsZXZlbC48L0k+Cis8UD4KKzxERD5TZXQgZGlnZXN0ZXIgZGV0YWlsIGxldmVsLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0RGlnZXN0ZXJGb3JDb21wb25lbnRzRGVmaW5pdGlvbnNTeW50YXgob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdERpZ2VzdGVyRm9yQ29tcG9uZW50c0RlZmluaXRpb25zU3ludGF4PC9IMz4KKzxQUkU+Citwcml2YXRlIHZvaWQgPEI+aW5pdERpZ2VzdGVyRm9yQ29tcG9uZW50c0RlZmluaXRpb25zU3ludGF4PC9CPihvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuRGlnZXN0ZXImbmJzcDtkaWdlc3Rlcik8L1BSRT4KKzxETD4KKzxERD5Jbml0IGRpZ2VzdGVyIGZvciBjb21wb25lbnRzIHN5bnRheC4KKyBUaGlzIGlzIGFuIG9sZCBzZXQgb2YgcnVsZXMsIGxlZnQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRpZ2VzdGVyPC9DT0RFPiAtIERpZ2VzdGVyIGluc3RhbmNlIHRvIHVzZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXREaWdlc3RlckZvclRpbGVzRGVmaW5pdGlvbnNTeW50YXgob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdERpZ2VzdGVyRm9yVGlsZXNEZWZpbml0aW9uc1N5bnRheDwvSDM+Cis8UFJFPgorcHJpdmF0ZSB2b2lkIDxCPmluaXREaWdlc3RlckZvclRpbGVzRGVmaW5pdGlvbnNTeW50YXg8L0I+KG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5EaWdlc3RlciZuYnNwO2RpZ2VzdGVyKTwvUFJFPgorPERMPgorPEREPkluaXQgZGlnZXN0ZXIgZm9yIFRpbGVzIHN5bnRheC4KKyBTYW1lIGFzIGNvbXBvbmVudHMsIGJ1dCB3aXRoIGZpcnN0IGVsZW1lbnQgPSB0aWxlcy1kZWZpbml0aW9ucworPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kaWdlc3RlcjwvQ09ERT4gLSBEaWdlc3RlciBpbnN0YW5jZSB0byB1c2UuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0RGlnZXN0ZXJGb3JJbnN0YW5jZXNTeW50YXgob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdERpZ2VzdGVyRm9ySW5zdGFuY2VzU3ludGF4PC9IMz4KKzxQUkU+Citwcml2YXRlIHZvaWQgPEI+aW5pdERpZ2VzdGVyRm9ySW5zdGFuY2VzU3ludGF4PC9CPihvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuRGlnZXN0ZXImbmJzcDtkaWdlc3Rlcik8L1BSRT4KKzxETD4KKzxERD5Jbml0IGRpZ2VzdGVyIGluIG9yZGVyIHRvIHBhcnNlIGluc3RhbmNlcyBkZWZpbml0aW9uIGZpbGUgc3ludGF4LgorIEluc3RhbmNlcyBpcyBhbiBvbGQgbmFtZSBmb3IgImRlZmluaXRpb24iLiBUaGlzIG1ldGhvZCBpcyBsZWZ0IGZvcgorIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kaWdlc3RlcjwvQ09ERT4gLSBEaWdlc3RlciBpbnN0YW5jZSB0byB1c2UuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0RGlnZXN0ZXIob3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyKSI+PCEtLSAtLT48L0E+PEgzPgoraW5pdERpZ2VzdGVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5pbml0RGlnZXN0ZXI8L0I+KG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5EaWdlc3RlciZuYnNwO2RpZ2VzdGVyKTwvUFJFPgorPERMPgorPEREPkluaXQgZGlnZXN0ZXIuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmRpZ2VzdGVyPC9DT0RFPiAtIERpZ2VzdGVyIGluc3RhbmNlIHRvIHVzZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcnNlKGphdmEuaW8uSW5wdXRTdHJlYW0sIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbnNTZXQpIj48IS0tIC0tPjwvQT48SDM+CitwYXJzZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cGFyc2U8L0I+KGphdmEuaW8uSW5wdXRTdHJlYW0mbmJzcDtpbiwKKyAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+Jm5ic3A7ZGVmaW5pdGlvbnMpCisgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UGFyc2UgaW5wdXQgcmVhZGVyIGFuZCBhZGQgZW5jb3VudGVyZWQgZGVmaW5pdGlvbnMgdG8gZGVmaW5pdGlvbnMgc2V0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5pbjwvQ09ERT4gLSBJbnB1dCBzdHJlYW0uPEREPjxDT0RFPmRlZmluaXRpb25zPC9DT0RFPiAtIFhtbCBEZWZpbml0aW9ucyBzZXQgdG8gd2hpY2ggZW5jb3VudGVyZWQgZGVmaW5pdGlvbiBhcmUgYWRkZWQuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIE9uIGVycm9ycyBkdXJpbmcgZmlsZSBwYXJzaW5nLgorPEREPjxDT0RFPm9yZy54bWwuc2F4LlNBWEV4Y2VwdGlvbjwvQ09ERT4gLSBPbiBlcnJvcnMgcGFyc2luZyBYTUwuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYWluKGphdmEubGFuZy5TdHJpbmdbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK21haW48L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5tYWluPC9CPihqYXZhLmxhbmcuU3RyaW5nW10mbmJzcDthcmdzKTwvUFJFPgorPERMPgorPEREPk1haW4gbWV0aG9kIHRvIGNoZWNrIGZpbGUgc3ludGF4LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9YbWxQYXJzZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJYbWxQYXJzZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9jbGFzcy11c2UvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9jbGFzcy11c2UvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY2NGZiZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL2NsYXNzLXVzZS9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbApAQCAtMCwwICsxLDIyMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5EZWZpbml0aW9uc0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5EZWZpbml0aW9uc0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25zRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uRGVmaW5pdGlvbnNGYWN0b3J5PC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5GaWVsZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+STE4bkZhY3RvcnlTZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNkZWZhdWx0RmFjdG9yeSI+ZGVmYXVsdEZhY3Rvcnk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGVmYXVsdCBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+STE4bkZhY3RvcnlTZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNnZXREZWZhdWx0RmFjdG9yeSgpIj5nZXREZWZhdWx0RmFjdG9yeTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBkZWZhdWx0IGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkkxOG5GYWN0b3J5U2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjY3JlYXRlRGVmYXVsdEZhY3RvcnkoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmNyZWF0ZURlZmF1bHRGYWN0b3J5PC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGRlZmF1bHQgZmFjdG9yeSAuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkkxOG5GYWN0b3J5U2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjY3JlYXRlRmFjdG9yeShqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Y3JlYXRlRmFjdG9yeTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtrZXksCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYSBmYWN0b3J5IGZvciBzcGVjaWZpZWQga2V5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgYWJzdHJhY3QgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5GYWN0b3J5U2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNnZXREZWZhdWx0RmFjdG9yeSgpIj5nZXREZWZhdWx0RmFjdG9yeTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCBkZWZhdWx0IGZhY3RvcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZhY3RvcnlTZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sI2dldEZhY3RvcnkoamF2YS5sYW5nLk9iamVjdCwgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldEZhY3Rvcnk8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7a2V5LAorICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGEgZmFjdG9yeSBieSBpdHMga2V5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgYWJzdHJhY3QgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5GYWN0b3J5U2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCNjcmVhdGVGYWN0b3J5KGphdmEubGFuZy5PYmplY3QsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5jcmVhdGVGYWN0b3J5PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2tleSwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhIGZhY3RvcnkgZm9yIHNwZWNpZmllZCBrZXkuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRlZmluaXRpb25zRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9jbGFzcy11c2UvRmFjdG9yeVNldC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vY2xhc3MtdXNlL0ZhY3RvcnlTZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Y2NjNjFjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vY2xhc3MtdXNlL0ZhY3RvcnlTZXQuaHRtbApAQCAtMCwwICsxLDE2MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5GYWN0b3J5U2V0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uRmFjdG9yeVNldCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZhY3RvcnlTZXQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkZhY3RvcnlTZXQ8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+RmFjdG9yeVNldDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sIj5GYWN0b3J5U2V0PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5TdWJjbGFzc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sIj5GYWN0b3J5U2V0PC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj5JMThuRmFjdG9yeVNldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWZpbml0aW9ucyBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRmFjdG9yeVNldC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9jbGFzcy11c2UvSTE4bkZhY3RvcnlTZXQuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL2NsYXNzLXVzZS9JMThuRmFjdG9yeVNldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkZTVjZjgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9jbGFzcy11c2UvSTE4bkZhY3RvcnlTZXQuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0NCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5JMThuRmFjdG9yeVNldCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkkxOG5GYWN0b3J5U2V0IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkkxOG5GYWN0b3J5U2V0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5JMThuRmFjdG9yeVNldDwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkkxOG5GYWN0b3J5U2V0Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iSTE4bkZhY3RvcnlTZXQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vY2xhc3MtdXNlL1htbEF0dHJpYnV0ZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vY2xhc3MtdXNlL1htbEF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMzE3ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9jbGFzcy11c2UvWG1sQXR0cmlidXRlLmh0bWwKQEAgLTAsMCArMSwxODUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sQXR0cmlidXRlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sQXR0cmlidXRlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJYbWxBdHRyaWJ1dGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbEF0dHJpYnV0ZTwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwiPlhtbEF0dHJpYnV0ZTwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwiPlhtbEF0dHJpYnV0ZTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj5YbWxBdHRyaWJ1dGU8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbExpc3RBdHRyaWJ1dGUuaHRtbCI+WG1sTGlzdEF0dHJpYnV0ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBbiBhdHRyaWJ1dGUgYXMgYSA8Y29kZT5MaXN0PC9jb2RlPi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwiPlhtbEF0dHJpYnV0ZTwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+WG1sTGlzdEF0dHJpYnV0ZS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmh0bWwjYWRkKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sQXR0cmlidXRlKSI+YWRkPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCI+WG1sQXR0cmlidXRlPC9BPiZuYnNwO2VsZW1lbnQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYW4gZWxlbWVudCBpbiBsaXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlhtbERlZmluaXRpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sI2FkZEF0dHJpYnV0ZShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbEF0dHJpYnV0ZSkiPmFkZEF0dHJpYnV0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmh0bWwiPlhtbEF0dHJpYnV0ZTwvQT4mbmJzcDthdHRyaWJ1dGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGQgYW4gYXR0cmlidXRlIHRvIHRoaXMgY29tcG9uZW50LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJYbWxBdHRyaWJ1dGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vY2xhc3MtdXNlL1htbERlZmluaXRpb24uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL2NsYXNzLXVzZS9YbWxEZWZpbml0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc3OTIxMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL2NsYXNzLXVzZS9YbWxEZWZpbml0aW9uLmh0bWwKQEAgLTAsMCArMSwyMTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJYbWxEZWZpbml0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwiPlhtbERlZmluaXRpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRpbGVzIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQj48L0E+PC9URD4KKzxURD48ZGl2IGNsYXNzPSJtYWluQ29udGVudCI+CisgICAgVGhlIFRpbGVzIHRhZ2xpYiBhbmQgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyB3ZWIgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSAKKyAgICBwaWVjZXMgb2YgcGFnZXMsIGNhbGxlZCBUaWxlcy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj5YbWxEZWZpbml0aW9uPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNvbnN0cnVjdG9ycyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj5YbWxEZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb24uaHRtbCNDb21wb25lbnREZWZpbml0aW9uKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbikiPkNvbXBvbmVudERlZmluaXRpb248L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCI+WG1sRGVmaW5pdGlvbjwvQT4mbmJzcDtkZWZpbml0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0b3IuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCI+WG1sRGVmaW5pdGlvbjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCI+WG1sRGVmaW5pdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj5YbWxEZWZpbml0aW9uPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5YbWxEZWZpbml0aW9uc1NldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sI2dldERlZmluaXRpb24oamF2YS5sYW5nLlN0cmluZykiPmdldERlZmluaXRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCByZXF1ZXN0ZWQgZGVmaW5pdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj5YbWxEZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5YbWxEZWZpbml0aW9uc1NldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sI3B1dERlZmluaXRpb24ob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uKSI+cHV0RGVmaW5pdGlvbjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj5YbWxEZWZpbml0aW9uPC9BPiZuYnNwO2RlZmluaXRpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQdXQgZGVmaW5pdGlvbiBpbiBzZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+WG1sRGVmaW5pdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwjb3ZlcmxvYWQob3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uKSI+b3ZlcmxvYWQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uaHRtbCI+WG1sRGVmaW5pdGlvbjwvQT4mbmJzcDtjaGlsZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO092ZXJsb2FkIHRoaXMgZGVmaW5pdGlvbiB3aXRoIHBhc3NlZCBjaGlsZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlhtbERlZmluaXRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vY2xhc3MtdXNlL1htbERlZmluaXRpb25zU2V0Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9jbGFzcy11c2UvWG1sRGVmaW5pdGlvbnNTZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzhmZjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vY2xhc3MtdXNlL1htbERlZmluaXRpb25zU2V0Lmh0bWwKQEAgLTAsMCArMSwyNDAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbnNTZXQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uc1NldCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJYbWxEZWZpbml0aW9uc1NldC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbnNTZXQ8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9CPjwvQT48L1REPgorPFREPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5JMThuRmFjdG9yeVNldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI3BhcnNlWG1sRmlsZXMoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uc1NldCkiPnBhcnNlWG1sRmlsZXM8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7c2VydmxldENvbnRleHQsCisgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwb3N0Zml4LAorICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPiZuYnNwO3htbERlZmluaXRpb25zKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGFyc2UgZmlsZXMgYXNzb2NpYXRlZCB0byBwb3N0aXggaWYgdGhleSBleGlzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5JMThuRmFjdG9yeVNldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sI3BhcnNlWG1sRmlsZShqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb25zU2V0KSI+cGFyc2VYbWxGaWxlPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlbmFtZSwKKyAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPiZuYnNwO3htbERlZmluaXRpb25zKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGFyc2Ugc3BlY2lmaWVkIHhtbCBmaWxlIGFuZCBhZGQgZGVmaW5pdGlvbiB0byBzcGVjaWZpZWQgZGVmaW5pdGlvbnMgc2V0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+WG1sUGFyc2VyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sI3BhcnNlKGphdmEuaW8uSW5wdXRTdHJlYW0sIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbnNTZXQpIj5wYXJzZTwvQT48L0I+KGphdmEuaW8uSW5wdXRTdHJlYW0mbmJzcDtpbiwKKyAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+Jm5ic3A7ZGVmaW5pdGlvbnMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQYXJzZSBpbnB1dCByZWFkZXIgYW5kIGFkZCBlbmNvdW50ZXJlZCBkZWZpbml0aW9ucyB0byBkZWZpbml0aW9ucyBzZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+STE4bkZhY3RvcnlTZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNwYXJzZVhtbEZpbGVzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbnNTZXQpIj5wYXJzZVhtbEZpbGVzPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO3NlcnZsZXRDb250ZXh0LAorICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cG9zdGZpeCwKKyAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT4mbmJzcDt4bWxEZWZpbml0aW9ucyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BhcnNlIGZpbGVzIGFzc29jaWF0ZWQgdG8gcG9zdGl4IGlmIHRoZXkgZXhpc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+STE4bkZhY3RvcnlTZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCNwYXJzZVhtbEZpbGUoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uc1NldCkiPnBhcnNlWG1sRmlsZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZmlsZW5hbWUsCisgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT4mbmJzcDt4bWxEZWZpbml0aW9ucyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BhcnNlIHNwZWNpZmllZCB4bWwgZmlsZSBhbmQgYWRkIGRlZmluaXRpb24gdG8gc3BlY2lmaWVkIGRlZmluaXRpb25zIHNldC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5YbWxEZWZpbml0aW9uc1NldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sI2V4dGVuZChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb25zU2V0KSI+ZXh0ZW5kPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT4mbmJzcDtjaGlsZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FkZCBkZWZpbml0aW9ucyBmcm9tIHNwZWNpZmllZCBjaGlsZCBkZWZpbml0aW9ucyBzZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+WG1sRGVmaW5pdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwjcmVzb2x2ZUluaGVyaXRhbmNlKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbnNTZXQpIj5yZXNvbHZlSW5oZXJpdGFuY2U8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPlhtbERlZmluaXRpb25zU2V0PC9BPiZuYnNwO2RlZmluaXRpb25zU2V0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVzb2x2ZSBpbmhlcml0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5Db25zdHJ1Y3RvcnMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sI0RlZmluaXRpb25zRmFjdG9yeShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb25zU2V0KSI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5odG1sIj5YbWxEZWZpbml0aW9uc1NldDwvQT4mbmJzcDt4bWxEZWZpbml0aW9ucyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlhtbERlZmluaXRpb25zU2V0Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL2NsYXNzLXVzZS9YbWxMaXN0QXR0cmlidXRlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9jbGFzcy11c2UvWG1sTGlzdEF0dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3MDY1NDEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9jbGFzcy11c2UvWG1sTGlzdEF0dHJpYnV0ZS5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ0IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbExpc3RBdHRyaWJ1dGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxMaXN0QXR0cmlidXRlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbExpc3RBdHRyaWJ1dGUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iWG1sTGlzdEF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sTGlzdEF0dHJpYnV0ZTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbExpc3RBdHRyaWJ1dGUKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlhtbExpc3RBdHRyaWJ1dGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vY2xhc3MtdXNlL1htbFBhcnNlci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vY2xhc3MtdXNlL1htbFBhcnNlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkNDAyNjgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9jbGFzcy11c2UvWG1sUGFyc2VyLmh0bWwKQEAgLTAsMCArMSwxNjEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDQgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sUGFyc2VyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sUGFyc2VyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJYbWxQYXJzZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbFBhcnNlcjwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwiPlhtbFBhcnNlcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwiPlhtbFBhcnNlcjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+RmllbGRzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0E+IGRlY2xhcmVkIGFzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwiPlhtbFBhcnNlcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sIj5YbWxQYXJzZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkkxOG5GYWN0b3J5U2V0LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0Lmh0bWwjeG1sUGFyc2VyIj54bWxQYXJzZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7WG1sIHBhcnNlciB1c2VkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJYbWxQYXJzZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhMzhjOTQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24gcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0E+PC9GT05UPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorQ2xhc3NlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9IkRlZmluaXRpb25zRmFjdG9yeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4KKzxCUj4KKzxBIEhSRUY9IkZhY3RvcnlTZXQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5GYWN0b3J5U2V0PC9BPgorPEJSPgorPEEgSFJFRj0iSTE4bkZhY3RvcnlTZXQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5JMThuRmFjdG9yeVNldDwvQT4KKzxCUj4KKzxBIEhSRUY9IlhtbEF0dHJpYnV0ZS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlhtbEF0dHJpYnV0ZTwvQT4KKzxCUj4KKzxBIEhSRUY9IlhtbERlZmluaXRpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5YbWxEZWZpbml0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0iWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5YbWxEZWZpbml0aW9uc1NldDwvQT4KKzxCUj4KKzxBIEhSRUY9IlhtbExpc3RBdHRyaWJ1dGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5YbWxMaXN0QXR0cmlidXRlPC9BPgorPEJSPgorPEEgSFJFRj0iWG1sUGFyc2VyLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+WG1sUGFyc2VyPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmM0MjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwKQEAgLTAsMCArMSwxNjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIHBhY2thZ2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5ORVhUIFBBQ0tBR0U8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24KKzwvSDI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT48L0I+PC9URD4KKzxURD5BIGZhY3RvcnkgZm9yIGRlZmluaXRpb25zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRmFjdG9yeVNldC5odG1sIj5GYWN0b3J5U2V0PC9BPjwvQj48L1REPgorPFREPkNvbXBvbmVudCBEZWZpbml0aW9ucyBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iSTE4bkZhY3RvcnlTZXQuaHRtbCI+STE4bkZhY3RvcnlTZXQ8L0E+PC9CPjwvVEQ+Cis8VEQ+RGVmaW5pdGlvbnMgZmFjdG9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlhtbEF0dHJpYnV0ZS5odG1sIj5YbWxBdHRyaWJ1dGU8L0E+PC9CPjwvVEQ+Cis8VEQ+QSBwcm9wZXJ0eSBrZXktdmFsdWUgcGFpci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlhtbERlZmluaXRpb24uaHRtbCI+WG1sRGVmaW5pdGlvbjwvQT48L0I+PC9URD4KKzxURD5BIGRlZmluaXRpb24gcmVhZCBmcm9tIGFuIFhNTCBkZWZpbml0aW9ucyBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+WG1sRGVmaW5pdGlvbnNTZXQ8L0E+PC9CPjwvVEQ+Cis8VEQ+QSBzZXQgb2YgZGVmaW5pdGlvbnMgcmVhZCBmcm9tIFhNTCBkZWZpbml0aW9ucyBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iWG1sTGlzdEF0dHJpYnV0ZS5odG1sIj5YbWxMaXN0QXR0cmlidXRlPC9BPjwvQj48L1REPgorPFREPkFuIGF0dHJpYnV0ZSBhcyBhIDxjb2RlPkxpc3Q8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iWG1sUGFyc2VyLmh0bWwiPlhtbFBhcnNlcjwvQT48L0I+PC9URD4KKzxURD5QYXJzZSBhbiBYTUwgZGVmaW5pdGlvbnMgZmlsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2UtdHJlZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI1NDliYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTQzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiBDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24gQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXRyZWUuaHRtbCI+QWxsIFBhY2thZ2VzPC9BPjwvREw+Cis8SFI+Cis8SDI+CitDbGFzcyBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuT2JqZWN0PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj48Qj5Db21wb25lbnREZWZpbml0aW9uPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbi5odG1sIj48Qj5YbWxEZWZpbml0aW9uPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Qj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0Lmh0bWwiPjxCPkZhY3RvcnlTZXQ8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+Q29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5PC9BPikKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9JMThuRmFjdG9yeVNldC5odG1sIj48Qj5JMThuRmFjdG9yeVNldDwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuaHRtbCI+PEI+WG1sQXR0cmlidXRlPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5odG1sIj48Qj5YbWxMaXN0QXR0cmlidXRlPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0Lmh0bWwiPjxCPlhtbERlZmluaXRpb25zU2V0PC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sUGFyc2VyLmh0bWwiPjxCPlhtbFBhcnNlcjwvQj48L0E+PC9VTD4KKzwvVUw+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2UtdXNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXVzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwNDBmYWUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXVzZS5odG1sCkBAIC0wLDAgKzEsMjAyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBQYWNrYWdlPGJyPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcyI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0I+PC9BPjwvVEQ+Cis8VEQ+PGRpdiBjbGFzcz0ibWFpbkNvbnRlbnQiPgorICAgIFRoZSBUaWxlcyB0YWdsaWIgYW5kIGZyYW1ld29yayBhbGxvd3MgYnVpbGRpbmcgd2ViIHBhZ2VzIGJ5IGFzc2VtYmxpbmcgcmV1c2FibGUgCisgICAgcGllY2VzIG9mIHBhZ2VzLCBjYWxsZWQgVGlsZXMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQj48L0E+PC9URD4KKzxURD4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL2NsYXNzLXVzZS9YbWxEZWZpbml0aW9uLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMiPjxCPlhtbERlZmluaXRpb248L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBkZWZpbml0aW9uIHJlYWQgZnJvbSBhbiBYTUwgZGVmaW5pdGlvbnMgZmlsZS48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL2NsYXNzLXVzZS9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIj48Qj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBmYWN0b3J5IGZvciBkZWZpbml0aW9ucy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vY2xhc3MtdXNlL0ZhY3RvcnlTZXQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIj48Qj5GYWN0b3J5U2V0PC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXBvbmVudCBEZWZpbml0aW9ucyBmYWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9jbGFzcy11c2UvWG1sQXR0cmlidXRlLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiI+PEI+WG1sQXR0cmlidXRlPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgcHJvcGVydHkga2V5LXZhbHVlIHBhaXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL2NsYXNzLXVzZS9YbWxEZWZpbml0aW9uLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbiI+PEI+WG1sRGVmaW5pdGlvbjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIGRlZmluaXRpb24gcmVhZCBmcm9tIGFuIFhNTCBkZWZpbml0aW9ucyBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9jbGFzcy11c2UvWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIj48Qj5YbWxEZWZpbml0aW9uc1NldDwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIHNldCBvZiBkZWZpbml0aW9ucyByZWFkIGZyb20gWE1MIGRlZmluaXRpb25zIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL2NsYXNzLXVzZS9YbWxQYXJzZXIuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uIj48Qj5YbWxQYXJzZXI8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGFyc2UgYW4gWE1MIGRlZmluaXRpb25zIGZpbGUuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4ODdiNjUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbApAQCAtMCwwICsxLDgxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLEJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWIENMQVNTJm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJCdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0ZPTlQ+Cis8QlI+CitDbGFzcyBCdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YS5pby5JbnB1dFN0cmVhbQorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0I+PERUPmV4dGVuZHMgamF2YS5pby5JbnB1dFN0cmVhbTwvREw+CisKKzxQPgorVGhpcyBjbGFzcyBpbXBsZW1lbnRzIGJ1ZmZlcmluZyBmb3IgYW4gSW5wdXRTdHJlYW0gYXMgd2VsbCBhcyBhCisgcmVhZExpbmUgbWV0aG9kLiAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBpcyB0byBwcm92aWRlIGEgcmVsaWFibGUKKyByZWFkTGluZSgpIG1ldGhvZC4KKzxQPgorCis8UD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2J5dGVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2J1ZmZlciI+YnVmZmVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBieXRlIGFycmF5IHVzZWQgdG8gaG9sZCBidWZmZXJlZCBkYXRhPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNidWZmZXJMZW5ndGgiPmJ1ZmZlckxlbmd0aDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWQgZnJvbSB0aGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbSB0aGF0IGFyZQorIGluIHRoZSBidWZmZXI8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2J1ZmZlck9mZnNldCI+YnVmZmVyT2Zmc2V0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjdXJyZW50IG9mZnNldCB3ZSdyZSBhdCBpbiB0aGUgYnVmZmVyJ3MgYnl0ZSBhcnJheTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjYnVmZmVyU2l6ZSI+YnVmZmVyU2l6ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2l6ZSBvZiB0aGUgYnl0ZSBhcnJheSBidWZmZXI8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2xvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNjb250ZW50TGVuZ3RoIj5jb250ZW50TGVuZ3RoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250ZW50IGxlbmd0aCBvZiB0aGUgbXVsdGlwYXJ0IGRhdGE8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNjb250ZW50TGVuZ3RoTWV0Ij5jb250ZW50TGVuZ3RoTWV0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1doZXRoZXIgb3Igbm90IGJ5dGVzIHVwIHRvIHRoZSBDb250ZW50LUxlbmd0aCBoYXZlIGJlZW4gcmVhZDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2lucHV0U3RyZWFtIj5pbnB1dFN0cmVhbTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbSB1c2VkIGJ5IHRoaXMgY2xhc3M8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNtYXhMZW5ndGhNZXQiPm1heExlbmd0aE1ldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXaGV0aGVyIG9yIG5vdCBieXRlcyB1cCB0byB0aGUgbWF4aW11bSBsZW5ndGggaGF2ZSBiZWVuIHJlYWQ8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2xvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNtYXhTaXplIj5tYXhTaXplPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtYXhpbXVtIGFsbG93ZWQgc2l6ZSBmb3IgdGhlIG11bHRpcGFydCBkYXRhLCBvciAtMSBmb3IgYW4gdW5saW1pdGVkCisgbWF4aW11bSBmaWxlIGxlbmd0aDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjdG90YWxMZW5ndGgiPnRvdGFsTGVuZ3RoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgcmVhZCBzbyBmYXI8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5pby5JbnB1dFN0cmVhbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmlvLklucHV0U3RyZWFtPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNCdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtKGphdmEuaW8uSW5wdXRTdHJlYW0sIGludCwgbG9uZywgbG9uZykiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+PC9CPihqYXZhLmlvLklucHV0U3RyZWFtJm5ic3A7aW5wdXRTdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO2J1ZmZlclNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcmbmJzcDtjb250ZW50TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nJm5ic3A7bWF4U2l6ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1B1YmxpYyBjb25zdHJ1Y3RvciBmb3IgdGhpcyBjbGFzcywganVzdCB3cmFwcyB0aGUgSW5wdXRTdHJlYW0KKyBnaXZlbjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI2F2YWlsYWJsZSgpIj5hdmFpbGFibGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIGJ5dGVzIGxlZnQgdG8gcmVhZAorIGluIHRoZSBidWZmZXIgYmVmb3JlIGl0IGhhcyB0byBiZSByZWZpbGxlZDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjY2xvc2UoKSI+Y2xvc2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBhdHRlbXB0cyB0byBjbG9zZSB0aGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjY29udGVudExlbmd0aE1ldCgpIj5jb250ZW50TGVuZ3RoTWV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjZmlsbCgpIj5maWxsPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RmlsbHMgdGhlIGJ1ZmZlciB3aXRoIGRhdGEgZnJvbSB0aGUgdW5kZXJseWluZyBpbnB1dFN0cmVhbS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI21hcmsoaW50KSI+bWFyazwvQT48L0I+KGludCZuYnNwO3Bvc2l0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgY2FsbHMgb24gdGhlIG1hcmsoKSBtZXRob2Qgb2YgdGhlIHVuZGVybHlpbmcgSW5wdXRTdHJlYW08L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI21hcmtTdXBwb3J0ZWQoKSI+bWFya1N1cHBvcnRlZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIGNhbGxzIG9uIHRoZSBtYXJrU3VwcG9ydGVkKCkgbWV0aG9kIG9mIHRoZSB1bmRlcmx5aW5nIElucHV0U3RyZWFtPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNtYXhMZW5ndGhNZXQoKSI+bWF4TGVuZ3RoTWV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI3JlYWQoKSI+cmVhZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIHJldHVybnMgdGhlIG5leHQgYnl0ZSBpbiB0aGUgYnVmZmVyLCBhbmQgcmVmaWxscyBpdCBpZiBuZWNlc3NhcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI3JlYWQoYnl0ZVtdKSI+cmVhZDwvQT48L0I+KGJ5dGVbXSZuYnNwO2IpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBwb3B1bGF0ZXMgdGhlIGJ5dGUgYXJyYXkgPGNvZGU+YjwvY29kZT4gd2l0aCBkYXRhIHVwIHRvCisgPGNvZGU+Yi5sZW5ndGg8L2NvZGU+IGJ5dGVzPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sI3JlYWQoYnl0ZVtdLCBpbnQsIGludCkiPnJlYWQ8L0E+PC9CPihieXRlW10mbmJzcDtiLAorICAgICBpbnQmbmJzcDtvZmZzZXQsCisgICAgIGludCZuYnNwO2xlbmd0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIHBvcHVsYXRlcyB0aGUgYnl0ZSBhcnJheSA8Y29kZT5iPC9jb2RlPiB3aXRoIGRhdGEgdXAgdG8gCisgPGNvZGU+bGVuZ3RoPC9jb2RlPiBzdGFydGluZyBhdCBiW29mZnNldF08L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ynl0ZVtdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjcmVhZExpbmUoKSI+cmVhZExpbmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCByZWFkcyBhIGxpbmUsIHJlZ2FyZGxlc3Mgb2YgbGVuZ3RoLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCNyZWFkTGluZShieXRlW10sIGludCwgaW50KSI+cmVhZExpbmU8L0E+PC9CPihieXRlW10mbmJzcDtiLAorICAgICAgICAgaW50Jm5ic3A7b2Zmc2V0LAorICAgICAgICAgaW50Jm5ic3A7bGVuZ3RoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgcmVhZHMgaW50byB0aGUgYnl0ZSBhcnJheSA8Y29kZT5iPC9jb2RlPiB1bnRpbAorIGEgbmV3bGluZSAoJ1xuJykgY2hhcmFjdGVyIGlzIGVuY291bnRlcmVkIG9yIHRoZSBudW1iZXIgb2YgYnl0ZXMKKyBzcGVjaWZpZWQgYnkgPGNvZGU+bGVuZ3RoPC9jb2RlPiBoYXZlIGJlZW4gcmVhZDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwjcmVzZXQoKSI+cmVzZXQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBtYWtlcyBhIGNhbGwgdG8gdGhlIHJlc2V0KCkgbWV0aG9kIG9mIHRoZSB1bmRlcmx5aW5nCisgSW5wdXRTdHJlYW08L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEuaW8uSW5wdXRTdHJlYW0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEuaW8uSW5wdXRTdHJlYW08L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5za2lwPC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iaW5wdXRTdHJlYW0iPjwhLS0gLS0+PC9BPjxIMz4KK2lucHV0U3RyZWFtPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5pby5JbnB1dFN0cmVhbSA8Qj5pbnB1dFN0cmVhbTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbSB1c2VkIGJ5IHRoaXMgY2xhc3MKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJ1ZmZlciI+PCEtLSAtLT48L0E+PEgzPgorYnVmZmVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYnl0ZVtdIDxCPmJ1ZmZlcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYnl0ZSBhcnJheSB1c2VkIHRvIGhvbGQgYnVmZmVyZWQgZGF0YQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYnVmZmVyT2Zmc2V0Ij48IS0tIC0tPjwvQT48SDM+CitidWZmZXJPZmZzZXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+YnVmZmVyT2Zmc2V0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjdXJyZW50IG9mZnNldCB3ZSdyZSBhdCBpbiB0aGUgYnVmZmVyJ3MgYnl0ZSBhcnJheQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYnVmZmVyU2l6ZSI+PCEtLSAtLT48L0E+PEgzPgorYnVmZmVyU2l6ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGludCA8Qj5idWZmZXJTaXplPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaXplIG9mIHRoZSBieXRlIGFycmF5IGJ1ZmZlcgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYnVmZmVyTGVuZ3RoIj48IS0tIC0tPjwvQT48SDM+CitidWZmZXJMZW5ndGg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+YnVmZmVyTGVuZ3RoPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCBmcm9tIHRoZSB1bmRlcmx5aW5nIElucHV0U3RyZWFtIHRoYXQgYXJlCisgaW4gdGhlIGJ1ZmZlcgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG90YWxMZW5ndGgiPjwhLS0gLS0+PC9BPjxIMz4KK3RvdGFsTGVuZ3RoPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPnRvdGFsTGVuZ3RoPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgcmVhZCBzbyBmYXIKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbnRlbnRMZW5ndGgiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRlbnRMZW5ndGg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBsb25nIDxCPmNvbnRlbnRMZW5ndGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRlbnQgbGVuZ3RoIG9mIHRoZSBtdWx0aXBhcnQgZGF0YQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWF4U2l6ZSI+PCEtLSAtLT48L0E+PEgzPgorbWF4U2l6ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGxvbmcgPEI+bWF4U2l6ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWF4aW11bSBhbGxvd2VkIHNpemUgZm9yIHRoZSBtdWx0aXBhcnQgZGF0YSwgb3IgLTEgZm9yIGFuIHVubGltaXRlZAorIG1heGltdW0gZmlsZSBsZW5ndGgKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbnRlbnRMZW5ndGhNZXQiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRlbnRMZW5ndGhNZXQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmNvbnRlbnRMZW5ndGhNZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+V2hldGhlciBvciBub3QgYnl0ZXMgdXAgdG8gdGhlIENvbnRlbnQtTGVuZ3RoIGhhdmUgYmVlbiByZWFkCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXhMZW5ndGhNZXQiPjwhLS0gLS0+PC9BPjxIMz4KK21heExlbmd0aE1ldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+bWF4TGVuZ3RoTWV0PC9CPjwvUFJFPgorPERMPgorPEREPldoZXRoZXIgb3Igbm90IGJ5dGVzIHVwIHRvIHRoZSBtYXhpbXVtIGxlbmd0aCBoYXZlIGJlZW4gcmVhZAorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0oamF2YS5pby5JbnB1dFN0cmVhbSwgaW50LCBsb25nLCBsb25nKSI+PCEtLSAtLT48L0E+PEgzPgorQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvSDM+Cis8UFJFPgorcHVibGljIDxCPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0I+KGphdmEuaW8uSW5wdXRTdHJlYW0mbmJzcDtpbnB1dFN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO2J1ZmZlclNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nJm5ic3A7Y29udGVudExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcmbmJzcDttYXhTaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlB1YmxpYyBjb25zdHJ1Y3RvciBmb3IgdGhpcyBjbGFzcywganVzdCB3cmFwcyB0aGUgSW5wdXRTdHJlYW0KKyBnaXZlbgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmlucHV0U3RyZWFtPC9DT0RFPiAtIFRoZSB1bmRlcmx5aW5nIHN0cmVhbSB0byByZWFkIGZyb208REQ+PENPREU+YnVmZmVyU2l6ZTwvQ09ERT4gLSBUaGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgaW50ZXJuYWwgYnVmZmVyPEREPjxDT0RFPmNvbnRlbnRMZW5ndGg8L0NPREU+IC0gVGhlIGNvbnRlbnQgbGVuZ3RoIGZvciB0aGlzIHJlcXVlc3Q8REQ+PENPREU+bWF4U2l6ZTwvQ09ERT4gLSBUaGUgbWF4aW11bSBzaXplIGluIGJ5dGVzIHRoYXQgdGhpcyBtdWx0aXBhcnQKKyAgICAgICAgICAgICAgICByZXF1ZXN0IGNhbiBiZSwgb3IgLTEgZm9yIGFuIHVubGltaXRlZCBsZW5ndGg8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJhdmFpbGFibGUoKSI+PCEtLSAtLT48L0E+PEgzPgorYXZhaWxhYmxlPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmF2YWlsYWJsZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgdGhlIG51bWJlciBvZiBhdmFpbGFibGUgYnl0ZXMgbGVmdCB0byByZWFkCisgaW4gdGhlIGJ1ZmZlciBiZWZvcmUgaXQgaGFzIHRvIGJlIHJlZmlsbGVkCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+YXZhaWxhYmxlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLklucHV0U3RyZWFtPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2xvc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorY2xvc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmNsb3NlPC9CPigpCisgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+VGhpcyBtZXRob2QgYXR0ZW1wdHMgdG8gY2xvc2UgdGhlIHVuZGVybHlpbmcgSW5wdXRTdHJlYW0KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5jbG9zZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWFyayhpbnQpIj48IS0tIC0tPjwvQT48SDM+CittYXJrPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5tYXJrPC9CPihpbnQmbmJzcDtwb3NpdGlvbik8L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBjYWxscyBvbiB0aGUgbWFyaygpIG1ldGhvZCBvZiB0aGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbQorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPm1hcms8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uSW5wdXRTdHJlYW08L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXJrU3VwcG9ydGVkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK21hcmtTdXBwb3J0ZWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPm1hcmtTdXBwb3J0ZWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBjYWxscyBvbiB0aGUgbWFya1N1cHBvcnRlZCgpIG1ldGhvZCBvZiB0aGUgdW5kZXJseWluZyBJbnB1dFN0cmVhbQorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPm1hcmtTdXBwb3J0ZWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uSW5wdXRTdHJlYW08L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPldoZXRoZXIgb3Igbm90IHRoZSB1bmRlcmx5aW5nIElucHV0U3RyZWFtIHN1cHBvcnRzIG1hcmtpbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1heExlbmd0aE1ldCgpIj48IS0tIC0tPjwvQT48SDM+CittYXhMZW5ndGhNZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPm1heExlbmd0aE1ldDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD50cnVlIGlmIHRoZSBtYXhpbXVtIGxlbmd0aCBoYXMgYmVlbiByZWFjaGVkLCBmYWxzZSBvdGhlcndpc2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbnRlbnRMZW5ndGhNZXQoKSI+PCEtLSAtLT48L0E+PEgzPgorY29udGVudExlbmd0aE1ldDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+Y29udGVudExlbmd0aE1ldDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD50cnVlIGlmIHRoZSBjb250ZW50IGxlbmd0aCBoYXMgYmVlbiByZWFjaGVkLCBmYWxzZSBvdGhlcndpc2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWQoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVhZDwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5yZWFkPC9CPigpCisgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgdGhlIG5leHQgYnl0ZSBpbiB0aGUgYnVmZmVyLCBhbmQgcmVmaWxscyBpdCBpZiBuZWNlc3NhcnkuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+cmVhZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VGhlIG5leHQgYnl0ZSByZWFkIGluIHRoZSBidWZmZXIsIG9yIC0xIGlmIHRoZSBlbmQgb2YgdGhlIHN0cmVhbSBoYXMKKyAgICAgICAgIGJlZW4gcmVhY2hlZAorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWFkKGJ5dGVbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+cmVhZDwvQj4oYnl0ZVtdJm5ic3A7YikKKyAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+VGhpcyBtZXRob2QgcG9wdWxhdGVzIHRoZSBieXRlIGFycmF5IDxjb2RlPmI8L2NvZGU+IHdpdGggZGF0YSB1cCB0bworIDxjb2RlPmIubGVuZ3RoPC9jb2RlPiBieXRlcworPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlYWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uSW5wdXRTdHJlYW08L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWQoYnl0ZVtdLCBpbnQsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+cmVhZDwvQj4oYnl0ZVtdJm5ic3A7YiwKKyAgICAgICAgICAgICAgICBpbnQmbmJzcDtvZmZzZXQsCisgICAgICAgICAgICAgICAgaW50Jm5ic3A7bGVuZ3RoKQorICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBwb3B1bGF0ZXMgdGhlIGJ5dGUgYXJyYXkgPGNvZGU+YjwvY29kZT4gd2l0aCBkYXRhIHVwIHRvIAorIDxjb2RlPmxlbmd0aDwvY29kZT4gc3RhcnRpbmcgYXQgYltvZmZzZXRdCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVhZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVhZExpbmUoYnl0ZVtdLCBpbnQsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWRMaW5lPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPnJlYWRMaW5lPC9CPihieXRlW10mbmJzcDtiLAorICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO2xlbmd0aCkKKyAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIHJlYWRzIGludG8gdGhlIGJ5dGUgYXJyYXkgPGNvZGU+YjwvY29kZT4gdW50aWwKKyBhIG5ld2xpbmUgKCdcbicpIGNoYXJhY3RlciBpcyBlbmNvdW50ZXJlZCBvciB0aGUgbnVtYmVyIG9mIGJ5dGVzCisgc3BlY2lmaWVkIGJ5IDxjb2RlPmxlbmd0aDwvY29kZT4gaGF2ZSBiZWVuIHJlYWQKKzxQPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWFkTGluZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWFkTGluZTwvSDM+Cis8UFJFPgorcHVibGljIGJ5dGVbXSA8Qj5yZWFkTGluZTwvQj4oKQorICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+VGhpcyBtZXRob2QgcmVhZHMgYSBsaW5lLCByZWdhcmRsZXNzIG9mIGxlbmd0aC4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5BIGJ5dGUgYXJyYXkgcmVwcmVzZW50aW5nIHRoZSBsaW5lLgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXNldCgpIj48IS0tIC0tPjwvQT48SDM+CityZXNldDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVzZXQ8L0I+KCkKKyAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBtYWtlcyBhIGNhbGwgdG8gdGhlIHJlc2V0KCkgbWV0aG9kIG9mIHRoZSB1bmRlcmx5aW5nCisgSW5wdXRTdHJlYW0KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5yZXNldDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmlsbCgpIj48IS0tIC0tPjwvQT48SDM+CitmaWxsPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5maWxsPC9CPigpCisgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5GaWxscyB0aGUgYnVmZmVyIHdpdGggZGF0YSBmcm9tIHRoZSB1bmRlcmx5aW5nIGlucHV0U3RyZWFtLiAgSWYgaXQgY2FuJ3QKKyBmaWxsIHRoZSBlbnRpcmUgYnVmZmVyIGluIG9uZSByZWFkLCBpdCB3aWxsIHJlYWQgYXMgbWFueSB0aW1lcyBhcyBuZWNlc3NhcnkKKyB0byBmaWxsIHRoZSBidWZmZXIKKzxQPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NDdmOTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbApAQCAtMCwwICsxLDU3MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLENvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0ZPTlQ+Cis8QlI+CitDbGFzcyBDb21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGU8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+PC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RW5jbG9zaW5nIGNsYXNzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+c3RhdGljIGNsYXNzIDxCPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGU8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT48L0RMPgorCis8UD4KK1RoaXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgU3RydXRzIDxjb2RlPkZvcm1GaWxlPC9jb2RlPiBpbnRlcmZhY2UgYnkKKyB3cmFwcGluZyB0aGUgQ29tbW9ucyBGaWxlVXBsb2FkIDxjb2RlPkZpbGVJdGVtPC9jb2RlPiBpbnRlcmZhY2UuIFRoaXMKKyBpbXBsZW1lbnRhdGlvbiBpcyA8aT5yZWFkLW9ubHk8L2k+OyBhbnkgYXR0ZW1wdCB0byBtb2RpZnkgYW4gaW5zdGFuY2UKKyBvZiB0aGlzIGNsYXNzIHdpbGwgcmVzdWx0IGluIGFuIDxjb2RlPlVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uPC9jb2RlPi4KKzxQPgorCis8UD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+KHBhY2thZ2UgcHJpdmF0ZSkgJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLmZpbGV1cGxvYWQuRmlsZUl0ZW08L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCNmaWxlSXRlbSI+ZmlsZUl0ZW08L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPkZpbGVJdGVtPC9jb2RlPiBpbnN0YW5jZSB3cmFwcGVkIGJ5IHRoaXMgb2JqZWN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCNDb21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlKG9yZy5hcGFjaGUuY29tbW9ucy5maWxldXBsb2FkLkZpbGVJdGVtKSI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZTwvQT48L0I+KG9yZy5hcGFjaGUuY29tbW9ucy5maWxldXBsb2FkLkZpbGVJdGVtJm5ic3A7ZmlsZUl0ZW0pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3RzIGFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2hpY2ggd3JhcHMgdGhlIHN1cHBsaWVkCisgZmlsZSBpdGVtLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCNkZXN0cm95KCkiPmRlc3Ryb3k8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZXN0cm95IGFsbCBjb250ZW50IGZvciB0aGlzIGZvcm0gZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCNnZXRCYXNlRmlsZU5hbWUoamF2YS5sYW5nLlN0cmluZykiPmdldEJhc2VGaWxlTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlUGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIGJhc2UgZmlsZSBuYW1lIGZyb20gdGhlIHN1cHBsaWVkIGZpbGUgcGF0aC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI2dldENvbnRlbnRUeXBlKCkiPmdldENvbnRlbnRUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgY29udGVudCB0eXBlIGZvciB0aGlzIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2J5dGVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI2dldEZpbGVEYXRhKCkiPmdldEZpbGVEYXRhPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgZGF0YSBmb3IgdGhpcyBmaWxlIGFzIGEgYnl0ZSBhcnJheS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI2dldEZpbGVOYW1lKCkiPmdldEZpbGVOYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgKGNsaWVudC1zaWRlKSBmaWxlIG5hbWUgZm9yIHRoaXMgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwjZ2V0RmlsZVNpemUoKSI+Z2V0RmlsZVNpemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBzaXplLCBpbiBieXRlcywgb2YgdGhpcyBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmlvLklucHV0U3RyZWFtPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwjZ2V0SW5wdXRTdHJlYW0oKSI+Z2V0SW5wdXRTdHJlYW08L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgYW4gSW5wdXRTdHJlYW0gdGhhdCByZXByZXNlbnRzIHRoaXMgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI3NldENvbnRlbnRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb250ZW50VHlwZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250ZW50VHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhpcyBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwjc2V0RmlsZU5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldEZpbGVOYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZpbGVOYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgKGNsaWVudC1zaWRlKSBmaWxlIG5hbWUgZm9yIHRoaXMgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI3NldEZpbGVTaXplKGludCkiPnNldEZpbGVTaXplPC9BPjwvQj4oaW50Jm5ic3A7ZmlsZXNpemUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBzaXplLCBpbiBieXRlcywgZm9yIHRoaXMgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI3RvU3RyaW5nKCkiPnRvU3RyaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgKGNsaWVudC1zaWRlKSBmaWxlIG5hbWUgZm9yIHRoaXMgZmlsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZmlsZUl0ZW0iPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbGVJdGVtPC9IMz4KKzxQUkU+CitvcmcuYXBhY2hlLmNvbW1vbnMuZmlsZXVwbG9hZC5GaWxlSXRlbSA8Qj5maWxlSXRlbTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgPGNvZGU+RmlsZUl0ZW08L2NvZGU+IGluc3RhbmNlIHdyYXBwZWQgYnkgdGhpcyBvYmplY3QuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZShvcmcuYXBhY2hlLmNvbW1vbnMuZmlsZXVwbG9hZC5GaWxlSXRlbSkiPjwhLS0gLS0+PC9BPjxIMz4KK0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlPC9CPihvcmcuYXBhY2hlLmNvbW1vbnMuZmlsZXVwbG9hZC5GaWxlSXRlbSZuYnNwO2ZpbGVJdGVtKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdHMgYW4gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcyB3aGljaCB3cmFwcyB0aGUgc3VwcGxpZWQKKyBmaWxlIGl0ZW0uCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmlsZUl0ZW08L0NPREU+IC0gVGhlIENvbW1vbnMgZmlsZSBpdGVtIHRvIGJlIHdyYXBwZWQuPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0Q29udGVudFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29udGVudFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldENvbnRlbnRUeXBlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgY29udGVudCB0eXBlIGZvciB0aGlzIGZpbGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjZ2V0Q29udGVudFR5cGUoKSI+Z2V0Q29udGVudFR5cGU8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSBTdHJpbmcgcmVwcmVzZW50aW5nIGNvbnRlbnQgdHlwZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENvbnRlbnRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDb250ZW50VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Q29udGVudFR5cGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250ZW50VHlwZSk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBjb250ZW50IHR5cGUgZm9yIHRoaXMgZmlsZS4KKyA8cD4KKyBOT1RFOiBUaGlzIG1ldGhvZCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgaW1wbGVtZW50YXRpb24uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjc2V0Q29udGVudFR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRlbnRUeXBlPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb250ZW50VHlwZTwvQ09ERT4gLSBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGNvbnRlbnQgdHlwZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZpbGVTaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZpbGVTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldEZpbGVTaXplPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgc2l6ZSwgaW4gYnl0ZXMsIG9mIHRoaXMgZmlsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNnZXRGaWxlU2l6ZSgpIj5nZXRGaWxlU2l6ZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgc2l6ZSBvZiB0aGUgZmlsZSwgaW4gYnl0ZXMuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGaWxlU2l6ZShpbnQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGaWxlU2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RmlsZVNpemU8L0I+KGludCZuYnNwO2ZpbGVzaXplKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIHNpemUsIGluIGJ5dGVzLCBmb3IgdGhpcyBmaWxlLgorIDxwPgorIE5PVEU6IFRoaXMgbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBpbXBsZW1lbnRhdGlvbi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNzZXRGaWxlU2l6ZShpbnQpIj5zZXRGaWxlU2l6ZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmlsZXNpemU8L0NPREU+IC0gVGhlIHNpemUgb2YgdGhlIGZpbGUsIGluIGJ5dGVzLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmlsZU5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmlsZU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEZpbGVOYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgKGNsaWVudC1zaWRlKSBmaWxlIG5hbWUgZm9yIHRoaXMgZmlsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNnZXRGaWxlTmFtZSgpIj5nZXRGaWxlTmFtZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgY2xpZW50LXNpemUgZmlsZSBuYW1lLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RmlsZU5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZpbGVOYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGaWxlTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZpbGVOYW1lKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIChjbGllbnQtc2lkZSkgZmlsZSBuYW1lIGZvciB0aGlzIGZpbGUuCisgPHA+CisgTk9URTogVGhpcyBtZXRob2QgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGltcGxlbWVudGF0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI3NldEZpbGVOYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGaWxlTmFtZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmlsZU5hbWU8L0NPREU+IC0gVGhlIGNsaWVudC1zaWRlIG5hbWUgZm9yIHRoZSBmaWxlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmlsZURhdGEoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmlsZURhdGE8L0gzPgorPFBSRT4KK3B1YmxpYyBieXRlW10gPEI+Z2V0RmlsZURhdGE8L0I+KCkKKyAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBkYXRhIGZvciB0aGlzIGZpbGUgYXMgYSBieXRlIGFycmF5LiBOb3RlIHRoYXQgdGhpcyBtYXkKKyByZXN1bHQgaW4gZXhjZXNzaXZlIG1lbW9yeSB1c2FnZSBmb3IgbGFyZ2UgdXBsb2Fkcy4gVGhlIHVzZSBvZiB0aGUKKyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sI2dldElucHV0U3RyZWFtKCkiPjxDT0RFPmdldElucHV0U3RyZWFtPC9DT0RFPjwvQT4gbWV0aG9kIGlzIGVuY291cmFnZWQKKyBhcyBhbiBhbHRlcm5hdGl2ZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNnZXRGaWxlRGF0YSgpIj5nZXRGaWxlRGF0YTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5BbiBhcnJheSBvZiBieXRlcyByZXByZXNlbnRpbmcgdGhlIGRhdGEgY29udGFpbmVkIGluIHRoaXMKKyAgICAgICAgIGZvcm0gZmlsZS4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uPC9DT0RFPiAtIElmIHNvbWUgc29ydCBvZiBmaWxlIHJlcHJlc2VudGF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Fubm90IGJlIGZvdW5kIGZvciB0aGUgRm9ybUZpbGUKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIElmIHRoZXJlIGlzIHNvbWUgc29ydCBvZiBJT0V4Y2VwdGlvbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SW5wdXRTdHJlYW0oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SW5wdXRTdHJlYW08L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmlvLklucHV0U3RyZWFtIDxCPmdldElucHV0U3RyZWFtPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5HZXQgYW4gSW5wdXRTdHJlYW0gdGhhdCByZXByZXNlbnRzIHRoaXMgZmlsZS4gIFRoaXMgaXMgdGhlIHByZWZlcnJlZAorIG1ldGhvZCBvZiBnZXR0aW5nIGZpbGUgZGF0YS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNnZXRJbnB1dFN0cmVhbSgpIj5nZXRJbnB1dFN0cmVhbTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb248L0NPREU+IC0gSWYgc29tZSBzb3J0IG9mIGZpbGUgcmVwcmVzZW50YXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5ub3QgYmUgZm91bmQgZm9yIHRoZSBGb3JtRmlsZQorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gSWYgdGhlcmUgaXMgc29tZSBzb3J0IG9mIElPRXhjZXB0aW9uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZXN0cm95KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2Rlc3Ryb3k8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmRlc3Ryb3k8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5EZXN0cm95IGFsbCBjb250ZW50IGZvciB0aGlzIGZvcm0gZmlsZS4KKyBJbXBsZW1lbnRhdGlvbnMgc2hvdWxkIHJlbW92ZSBhbnkgdGVtcG9yYXJ5CisgZmlsZXMgb3IgYW55IHRlbXBvcmFyeSBmaWxlIGRhdGEgc3RvcmVkIHNvbWV3aGVyZQorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2Rlc3Ryb3koKSI+ZGVzdHJveTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QmFzZUZpbGVOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRCYXNlRmlsZU5hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEJhc2VGaWxlTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZpbGVQYXRoKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIGJhc2UgZmlsZSBuYW1lIGZyb20gdGhlIHN1cHBsaWVkIGZpbGUgcGF0aC4gT24gdGhlIHN1cmZhY2UsCisgdGhpcyB3b3VsZCBhcHBlYXIgdG8gYmUgYSB0cml2aWFsIHRhc2suIEFwcGFyZW50bHksIGhvd2V2ZXIsIHNvbWUgTGludXgKKyBKREtzIGRvIG5vdCBpbXBsZW1lbnQgPGNvZGU+RmlsZS5nZXROYW1lKCk8L2NvZGU+IGNvcnJlY3RseSBmb3IgV2luZG93cworIHBhdGhzLCBzbyB3ZSBhdHRlbXB0IHRvIHRha2UgY2FyZSBvZiB0aGF0IGhlcmUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZpbGVQYXRoPC9DT0RFPiAtIFRoZSBmdWxsIHBhdGggdG8gdGhlIGZpbGUuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBiYXNlIGZpbGUgbmFtZSwgZnJvbSB0aGUgZW5kIG9mIHRoZSBwYXRoLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9TdHJpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgordG9TdHJpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU3RyaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgKGNsaWVudC1zaWRlKSBmaWxlIG5hbWUgZm9yIHRoaXMgZmlsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT50b1N0cmluZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VGhlIGNsaWVudC1zaXplIGZpbGUgbmFtZS48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2MDA5YTIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sCkBAIC0wLDAgKzEsODc5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLENvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwOzxBIEhSRUY9IiNuZXN0ZWRfY2xhc3Nfc3VtbWFyeSI+TkVTVEVEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvRk9OVD4KKzxCUj4KK0NsYXNzIENvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvREw+CisKKzxQPgorVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHRoZSA8Y29kZT5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvY29kZT4gaW50ZXJmYWNlCisgYnkgcHJvdmlkaW5nIGEgd3JhcHBlciBhcm91bmQgdGhlIEpha2FydGEgQ29tbW9ucyBGaWxlVXBsb2FkIGxpYnJhcnkuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPk1hcnRpbiBDb29wZXI8L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJuZXN0ZWRfY2xhc3Nfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5OZXN0ZWQgQ2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPihwYWNrYWdlIHByaXZhdGUpIHN0YXRpYyZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBjbGFzcyBpbXBsZW1lbnRzIHRoZSBTdHJ1dHMgPGNvZGU+Rm9ybUZpbGU8L2NvZGU+IGludGVyZmFjZSBieQorIHdyYXBwaW5nIHRoZSBDb21tb25zIEZpbGVVcGxvYWQgPGNvZGU+RmlsZUl0ZW08L2NvZGU+IGludGVyZmFjZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7bG9uZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjREVGQVVMVF9TSVpFX01BWCI+REVGQVVMVF9TSVpFX01BWDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIG1heGltdW0gYWxsb3dhYmxlIHNpemUsIGluIGJ5dGVzLCBvZiBhbgorIHVwbG9hZGVkIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjREVGQVVMVF9TSVpFX1RIUkVTSE9MRCI+REVGQVVMVF9TSVpFX1RIUkVTSE9MRDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHRocmVzaG9sZCB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIgYW4gdXBsb2FkZWQKKyBmaWxlIHdpbGwgYmUgd3JpdHRlbiB0byBkaXNrIG9yIGNhY2hlZCBpbiBtZW1vcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS51dGlsLkhhc2h0YWJsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZWxlbWVudHNBbGwiPmVsZW1lbnRzQWxsPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb21iaW5lZCB0ZXh0IGFuZCBmaWxlIHJlcXVlc3QgcGFyYW1ldGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLnV0aWwuSGFzaHRhYmxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNlbGVtZW50c0ZpbGUiPmVsZW1lbnRzRmlsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZmlsZSByZXF1ZXN0IHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS51dGlsLkhhc2h0YWJsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZWxlbWVudHNUZXh0Ij5lbGVtZW50c1RleHQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHRleHQgcmVxdWVzdCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNsb2ciPmxvZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI21hcHBpbmciPm1hcHBpbmc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGFjdGlvbiBtYXBwaW5nICB3aXRoIHdoaWNoIHRoaXMgaGFuZGxlciBpcyBhc3NvY2lhdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXJ2bGV0IHdpdGggd2hpY2ggdGhpcyBoYW5kbGVyIGlzIGFzc29jaWF0ZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBpbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNBVFRSSUJVVEVfTUFYX0xFTkdUSF9FWENFRURFRCI+QVRUUklCVVRFX01BWF9MRU5HVEhfRVhDRUVERUQ8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcigpIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjYWRkRmlsZVBhcmFtZXRlcihvcmcuYXBhY2hlLmNvbW1vbnMuZmlsZXVwbG9hZC5GaWxlSXRlbSkiPmFkZEZpbGVQYXJhbWV0ZXI8L0E+PC9CPihvcmcuYXBhY2hlLmNvbW1vbnMuZmlsZXVwbG9hZC5GaWxlSXRlbSZuYnNwO2l0ZW0pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZGRzIGEgZmlsZSBwYXJhbWV0ZXIgdG8gdGhlIHNldCBvZiBmaWxlIHBhcmFtZXRlcnMgZm9yIHRoaXMgcmVxdWVzdAorIGFuZCBhbHNvIHRvIHRoZSBsaXN0IG9mIGFsbCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjYWRkVGV4dFBhcmFtZXRlcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLmNvbW1vbnMuZmlsZXVwbG9hZC5GaWxlSXRlbSkiPmFkZFRleHRQYXJhbWV0ZXI8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLmZpbGV1cGxvYWQuRmlsZUl0ZW0mbmJzcDtpdGVtKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QWRkcyBhIHJlZ3VsYXIgdGV4dCBwYXJhbWV0ZXIgdG8gdGhlIHNldCBvZiB0ZXh0IHBhcmFtZXRlcnMgZm9yIHRoaXMKKyByZXF1ZXN0IGFuZCBhbHNvIHRvIHRoZSBsaXN0IG9mIGFsbCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7bG9uZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjY29udmVydFNpemVUb0J5dGVzKGphdmEubGFuZy5TdHJpbmcsIGxvbmcpIj5jb252ZXJ0U2l6ZVRvQnl0ZXM8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2l6ZVN0cmluZywKKyAgICAgICAgICAgICAgICAgICBsb25nJm5ic3A7ZGVmYXVsdFNpemUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb252ZXJ0cyBhIHNpemUgdmFsdWUgZnJvbSBhIHN0cmluZyByZXByZXNlbnRhdGlvbiB0byBpdHMgbnVtZXJpYyB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZmluaXNoKCkiPmZpbmlzaDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NsZWFucyB1cCBhdCB0aGUgZW5kIG9mIGEgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLkhhc2h0YWJsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0QWxsRWxlbWVudHMoKSI+Z2V0QWxsRWxlbWVudHM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGEgaGFzaCB0YWJsZSBjb250YWluaW5nIGJvdGggdGV4dCBhbmQgZmlsZSByZXF1ZXN0IHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5IYXNodGFibGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldEZpbGVFbGVtZW50cygpIj5nZXRGaWxlRWxlbWVudHM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGEgaGFzaCB0YWJsZSBjb250YWluaW5nIHRoZSBmaWxlICh0aGF0IGlzLCBub24tdGV4dCkgcmVxdWVzdAorIHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRNYXBwaW5nKCkiPmdldE1hcHBpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZXMgdGhlIGFjdGlvbiBtYXBwaW5nIHdpdGggd2hpY2ggdGhpcyBoYW5kbGVyIGlzIGFzc29jaWF0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRSZXBvc2l0b3J5UGF0aChvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+Z2V0UmVwb3NpdG9yeVBhdGg8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttYyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIHBhdGggdG8gdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gYmUgdXNlZCBmb3IgdXBsb2FkZWQKKyBmaWxlcyB3aGljaCBhcmUgd3JpdHRlbiB0byBkaXNrLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmVzIHRoZSBzZXJ2bGV0IHdpdGggd2hpY2ggdGhpcyBoYW5kbGVyIGlzIGFzc29jaWF0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtsb25nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRTaXplTWF4KG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5nZXRTaXplTWF4PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bWMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBtYXhpbXVtIGFsbG93YWJsZSBzaXplLCBpbiBieXRlcywgb2YgYW4gdXBsb2FkZWQgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2xvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldFNpemVUaHJlc2hvbGQob3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmdldFNpemVUaHJlc2hvbGQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttYyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIHNpemUgdGhyZXNob2xkIHdoaWNoIGRldGVybWluZXMgd2hldGhlciBhbiB1cGxvYWRlZCBmaWxlCisgd2lsbCBiZSB3cml0dGVuIHRvIGRpc2sgb3IgY2FjaGVkIGluIG1lbW9yeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLkhhc2h0YWJsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0VGV4dEVsZW1lbnRzKCkiPmdldFRleHRFbGVtZW50czwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgYSBoYXNoIHRhYmxlIGNvbnRhaW5pbmcgdGhlIHRleHQgKHRoYXQgaXMsIG5vbi1maWxlKSByZXF1ZXN0CisgcGFyYW1ldGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjaGFuZGxlUmVxdWVzdChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aGFuZGxlUmVxdWVzdDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGFyc2VzIHRoZSBpbnB1dCBzdHJlYW0gYW5kIHBhcnRpdGlvbnMgdGhlIHBhcnNlZCBpdGVtcyBpbnRvIGEgc2V0IG9mCisgZm9ybSBmaWVsZHMgYW5kIGEgc2V0IG9mIGZpbGUgaXRlbXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3JvbGxiYWNrKCkiPnJvbGxiYWNrPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xlYW5zIHVwIHdoZW4gYSBwcm9ibGVtIG9jY3VycyBkdXJpbmcgcmVxdWVzdCBwcm9jZXNzaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXRNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+c2V0TWFwcGluZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldHMgdGhlIGFjdGlvbiBtYXBwaW5nIHdpdGggd2hpY2ggdGhpcyBoYW5kbGVyIGlzIGFzc29jaWF0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgc2VydmxldCB3aXRoIHdoaWNoIHRoaXMgaGFuZGxlciBpcyBhc3NvY2lhdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iREVGQVVMVF9TSVpFX01BWCI+PCEtLSAtLT48L0E+PEgzPgorREVGQVVMVF9TSVpFX01BWDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBsb25nIDxCPkRFRkFVTFRfU0laRV9NQVg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBtYXhpbXVtIGFsbG93YWJsZSBzaXplLCBpbiBieXRlcywgb2YgYW4KKyB1cGxvYWRlZCBmaWxlLiBUaGUgdmFsdWUgaXMgZXF1aXZhbGVudCB0byAyNTBNQi4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5ERUZBVUxUX1NJWkVfTUFYIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkRFRkFVTFRfU0laRV9USFJFU0hPTEQiPjwhLS0gLS0+PC9BPjxIMz4KK0RFRkFVTFRfU0laRV9USFJFU0hPTEQ8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgaW50IDxCPkRFRkFVTFRfU0laRV9USFJFU0hPTEQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSB0aHJlc2hvbGQgd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyIGFuIHVwbG9hZGVkCisgZmlsZSB3aWxsIGJlIHdyaXR0ZW4gdG8gZGlzayBvciBjYWNoZWQgaW4gbWVtb3J5LiBUaGUgdmFsdWUgaXMgZXF1aXZhbGVudAorIHRvIDI1MEtCLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkRFRkFVTFRfU0laRV9USFJFU0hPTEQiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9nIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbGVtZW50c0FsbCI+PCEtLSAtLT48L0E+PEgzPgorZWxlbWVudHNBbGw8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj5lbGVtZW50c0FsbDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29tYmluZWQgdGV4dCBhbmQgZmlsZSByZXF1ZXN0IHBhcmFtZXRlcnMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbGVtZW50c0ZpbGUiPjwhLS0gLS0+PC9BPjxIMz4KK2VsZW1lbnRzRmlsZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLnV0aWwuSGFzaHRhYmxlIDxCPmVsZW1lbnRzRmlsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZmlsZSByZXF1ZXN0IHBhcmFtZXRlcnMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbGVtZW50c1RleHQiPjwhLS0gLS0+PC9BPjxIMz4KK2VsZW1lbnRzVGV4dDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLnV0aWwuSGFzaHRhYmxlIDxCPmVsZW1lbnRzVGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdGV4dCByZXF1ZXN0IHBhcmFtZXRlcnMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXBwaW5nIj48IS0tIC0tPjwvQT48SDM+CittYXBwaW5nPC9IMz4KKzxQUkU+Citwcml2YXRlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IDxCPm1hcHBpbmc8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFjdGlvbiBtYXBwaW5nICB3aXRoIHdoaWNoIHRoaXMgaGFuZGxlciBpcyBhc3NvY2lhdGVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2VydmxldCI+PCEtLSAtLT48L0E+PEgzPgorc2VydmxldDwvSDM+Cis8UFJFPgorcHJpdmF0ZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiA8Qj5zZXJ2bGV0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXJ2bGV0IHdpdGggd2hpY2ggdGhpcyBoYW5kbGVyIGlzIGFzc29jaWF0ZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0U2VydmxldCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTZXJ2bGV0PC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4gPEI+Z2V0U2VydmxldDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHJpZXZlcyB0aGUgc2VydmxldCB3aXRoIHdoaWNoIHRoaXMgaGFuZGxlciBpcyBhc3NvY2lhdGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldFNlcnZsZXQoKSI+Z2V0U2VydmxldDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgYXNzb2NpYXRlZCBzZXJ2bGV0LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFNlcnZsZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFNlcnZsZXQ8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+Jm5ic3A7c2VydmxldCk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBzZXJ2bGV0IHdpdGggd2hpY2ggdGhpcyBoYW5kbGVyIGlzIGFzc29jaWF0ZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnNlcnZsZXQ8L0NPREU+IC0gVGhlIGFzc29jaWF0ZWQgc2VydmxldC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1hcHBpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWFwcGluZzwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IDxCPmdldE1hcHBpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXRyaWV2ZXMgdGhlIGFjdGlvbiBtYXBwaW5nIHdpdGggd2hpY2ggdGhpcyBoYW5kbGVyIGlzIGFzc29jaWF0ZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0TWFwcGluZygpIj5nZXRNYXBwaW5nPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBhc3NvY2lhdGVkIGFjdGlvbiBtYXBwaW5nLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE1hcHBpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE1hcHBpbmc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBhY3Rpb24gbWFwcGluZyB3aXRoIHdoaWNoIHRoaXMgaGFuZGxlciBpcyBhc3NvY2lhdGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3NldE1hcHBpbmcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5zZXRNYXBwaW5nPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBhc3NvY2lhdGVkIGFjdGlvbiBtYXBwaW5nLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaGFuZGxlUmVxdWVzdChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgoraGFuZGxlUmVxdWVzdDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+aGFuZGxlUmVxdWVzdDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpCisgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlBhcnNlcyB0aGUgaW5wdXQgc3RyZWFtIGFuZCBwYXJ0aXRpb25zIHRoZSBwYXJzZWQgaXRlbXMgaW50byBhIHNldCBvZgorIGZvcm0gZmllbGRzIGFuZCBhIHNldCBvZiBmaWxlIGl0ZW1zLiBJbiB0aGUgcHJvY2VzcywgdGhlIHBhcnNlZCBpdGVtcworIGFyZSB0cmFuc2xhdGVkIGZyb20gQ29tbW9ucyBGaWxlVXBsb2FkIDxjb2RlPkZpbGVJdGVtPC9jb2RlPiBpbnN0YW5jZXMKKyB0byBTdHJ1dHMgPGNvZGU+Rm9ybUZpbGU8L2NvZGU+IGluc3RhbmNlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNoYW5kbGVSZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5oYW5kbGVSZXF1ZXN0PC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBtdWx0aXBhcnQgcmVxdWVzdCB0byBiZSBwcm9jZXNzZWQuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gdW5yZWNvdmVyYWJsZSBlcnJvciBvY2N1cnMuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRUZXh0RWxlbWVudHMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VGV4dEVsZW1lbnRzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj5nZXRUZXh0RWxlbWVudHM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgaGFzaCB0YWJsZSBjb250YWluaW5nIHRoZSB0ZXh0ICh0aGF0IGlzLCBub24tZmlsZSkgcmVxdWVzdAorIHBhcmFtZXRlcnMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0VGV4dEVsZW1lbnRzKCkiPmdldFRleHRFbGVtZW50czwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgdGV4dCByZXF1ZXN0IHBhcmFtZXRlcnMuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGaWxlRWxlbWVudHMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmlsZUVsZW1lbnRzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj5nZXRGaWxlRWxlbWVudHM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgaGFzaCB0YWJsZSBjb250YWluaW5nIHRoZSBmaWxlICh0aGF0IGlzLCBub24tdGV4dCkgcmVxdWVzdAorIHBhcmFtZXRlcnMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0RmlsZUVsZW1lbnRzKCkiPmdldEZpbGVFbGVtZW50czwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgZmlsZSByZXF1ZXN0IHBhcmFtZXRlcnMuPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPjxDT0RFPkZvcm1GaWxlPC9DT0RFPjwvQT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFsbEVsZW1lbnRzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFsbEVsZW1lbnRzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj5nZXRBbGxFbGVtZW50czwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgYSBoYXNoIHRhYmxlIGNvbnRhaW5pbmcgYm90aCB0ZXh0IGFuZCBmaWxlIHJlcXVlc3QgcGFyYW1ldGVycy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRBbGxFbGVtZW50cygpIj5nZXRBbGxFbGVtZW50czwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgdGV4dCBhbmQgZmlsZSByZXF1ZXN0IHBhcmFtZXRlcnMuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyb2xsYmFjaygpIj48IS0tIC0tPjwvQT48SDM+Cityb2xsYmFjazwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cm9sbGJhY2s8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5DbGVhbnMgdXAgd2hlbiBhIHByb2JsZW0gb2NjdXJzIGR1cmluZyByZXF1ZXN0IHByb2Nlc3NpbmcuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjcm9sbGJhY2soKSI+cm9sbGJhY2s8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmlzaCgpIj48IS0tIC0tPjwvQT48SDM+CitmaW5pc2g8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmZpbmlzaDwvQj4oKTwvUFJFPgorPERMPgorPEREPkNsZWFucyB1cCBhdCB0aGUgZW5kIG9mIGEgcmVxdWVzdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNmaW5pc2goKSI+ZmluaXNoPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTaXplTWF4KG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTaXplTWF4PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgbG9uZyA8Qj5nZXRTaXplTWF4PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttYyk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBtYXhpbXVtIGFsbG93YWJsZSBzaXplLCBpbiBieXRlcywgb2YgYW4gdXBsb2FkZWQgZmlsZS4gVGhlCisgdmFsdWUgaXMgb2J0YWluZWQgZnJvbSB0aGUgY3VycmVudCBtb2R1bGUncyBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1jPC9DT0RFPiAtIFRoZSBjdXJyZW50IG1vZHVsZSdzIGNvbmZpZ3VyYXRpb24uCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBtYXhpbXVtIGFsbG93YWJsZSBmaWxlIHNpemUsIGluIGJ5dGVzLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2l6ZVRocmVzaG9sZChvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2l6ZVRocmVzaG9sZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGxvbmcgPEI+Z2V0U2l6ZVRocmVzaG9sZDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bWMpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgc2l6ZSB0aHJlc2hvbGQgd2hpY2ggZGV0ZXJtaW5lcyB3aGV0aGVyIGFuIHVwbG9hZGVkIGZpbGUKKyB3aWxsIGJlIHdyaXR0ZW4gdG8gZGlzayBvciBjYWNoZWQgaW4gbWVtb3J5LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYzwvQ09ERT4gLSBUaGUgY3VycmVudCBtb2R1bGUncyBjb25maWd1cmF0aW9uLgorPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgc2l6ZSB0aHJlc2hvbGQsIGluIGJ5dGVzLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udmVydFNpemVUb0J5dGVzKGphdmEubGFuZy5TdHJpbmcsIGxvbmcpIj48IS0tIC0tPjwvQT48SDM+Citjb252ZXJ0U2l6ZVRvQnl0ZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBsb25nIDxCPmNvbnZlcnRTaXplVG9CeXRlczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3NpemVTdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyZuYnNwO2RlZmF1bHRTaXplKTwvUFJFPgorPERMPgorPEREPkNvbnZlcnRzIGEgc2l6ZSB2YWx1ZSBmcm9tIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIHRvIGl0cyBudW1lcmljIHZhbHVlLgorIFRoZSBzdHJpbmcgbXVzdCBiZSBvZiB0aGUgZm9ybSBubm5tLCB3aGVyZSBubm4gaXMgYW4gYXJiaXRyYXJ5IGRlY2ltYWwKKyB2YWx1ZSwgYW5kIG0gaXMgYSBtdWx0aXBsaWVyLiBUaGUgbXVsdGlwbGllciBtdXN0IGJlIG9uZSBvZiAnSycsICdNJyBhbmQKKyAnRycsIHJlcHJlc2VudGluZyBraWxvYnl0ZXMsIG1lZ2FieXRlcyBhbmQgZ2lnYWJ5dGVzIHJlc3BlY3RpdmVseS4KKworIElmIHRoZSBzaXplIHZhbHVlIGNhbm5vdCBiZSBjb252ZXJ0ZWQsIGZvciBleGFtcGxlIGR1ZSB0byBpbnZhbGlkIHN5bnRheCwKKyB0aGUgc3VwcGxpZWQgZGVmYXVsdCBpcyByZXR1cm5lZCBpbnN0ZWFkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zaXplU3RyaW5nPC9DT0RFPiAtIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHNpemUgdG8gYmUgY29udmVydGVkLjxERD48Q09ERT5kZWZhdWx0U2l6ZTwvQ09ERT4gLSBUaGUgdmFsdWUgdG8gYmUgcmV0dXJuZWQgaWYgdGhlIHN0cmluZyBpcyBpbnZhbGlkLgorPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgYWN0dWFsIHNpemUgaW4gYnl0ZXMuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZXBvc2l0b3J5UGF0aChvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVwb3NpdG9yeVBhdGg8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFJlcG9zaXRvcnlQYXRoPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttYyk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBwYXRoIHRvIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRvIGJlIHVzZWQgZm9yIHVwbG9hZGVkCisgZmlsZXMgd2hpY2ggYXJlIHdyaXR0ZW4gdG8gZGlzay4gVGhlIGRpcmVjdG9yeSB1c2VkIGlzIGRldGVybWluZWQgZnJvbQorIHRoZSBmaXJzdCBvZiB0aGUgZm9sbG93aW5nIHRvIGJlIG5vbi1lbXB0eS4KKyA8b2w+CisgPGxpPkEgdGVtcCBkaXIgZXhwbGljaXRseSBkZWZpbmVkIGVpdGhlciB1c2luZyB0aGUgPGNvZGU+dGVtcERpcjwvY29kZT4KKyAgICAgc2VydmxldCBpbml0IHBhcmFtLCBvciB0aGUgPGNvZGU+dGVtcERpcjwvY29kZT4gYXR0cmlidXRlIG9mIHRoZQorICAgICAmbHQ7Y29udHJvbGxlciZndDsgZWxlbWVudCBpbiB0aGUgU3RydXRzIGNvbmZpZyBmaWxlLjwvbGk+CisgPGxpPlRoZSBjb250YWluZXItc3BlY2lmaWVkIHRlbXAgZGlyLCBvYnRhaW5lZCBmcm9tIHRoZQorICAgICA8Y29kZT5qYXZheC5zZXJ2bGV0LmNvbnRleHQudGVtcGRpcjwvY29kZT4gc2VydmxldCBjb250ZXh0CisgICAgIGF0dHJpYnV0ZS48L2xpPgorIDxsaT5UaGUgdGVtcCBkaXIgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5qYXZhLmlvLnRtcGRpcjwvY29kZT4gc3lzdGVtCisgICAgIHByb3BlcnR5LjwvbGk+CisgKC9vbD4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWM8L0NPREU+IC0gVGhlIG1vZHVsZSBjb25maWcgaW5zdGFuY2UgZm9yIHdoaWNoIHRoZSBwYXRoIHNob3VsZCBiZQorICAgICAgICAgICBkZXRlcm1pbmVkLgorPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgcGF0aCB0byB0aGUgZGlyZWN0b3J5IHRvIGJlIHVzZWQgdG8gc3RvcmUgdXBsb2FkZWQgZmlsZXMuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhZGRUZXh0UGFyYW1ldGVyKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuY29tbW9ucy5maWxldXBsb2FkLkZpbGVJdGVtKSI+PCEtLSAtLT48L0E+PEgzPgorYWRkVGV4dFBhcmFtZXRlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+YWRkVGV4dFBhcmFtZXRlcjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy5maWxldXBsb2FkLkZpbGVJdGVtJm5ic3A7aXRlbSk8L1BSRT4KKzxETD4KKzxERD5BZGRzIGEgcmVndWxhciB0ZXh0IHBhcmFtZXRlciB0byB0aGUgc2V0IG9mIHRleHQgcGFyYW1ldGVycyBmb3IgdGhpcworIHJlcXVlc3QgYW5kIGFsc28gdG8gdGhlIGxpc3Qgb2YgYWxsIHBhcmFtZXRlcnMuIEhhbmRsZXMgdGhlIGNhc2Ugb2YKKyBtdWx0aXBsZSB2YWx1ZXMgZm9yIHRoZSBzYW1lIHBhcmFtZXRlciBieSB1c2luZyBhbiBhcnJheSBmb3IgdGhlCisgcGFyYW1ldGVyIHZhbHVlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSByZXF1ZXN0IGluIHdoaWNoIHRoZSBwYXJhbWV0ZXIgd2FzIHNwZWNpZmllZC48REQ+PENPREU+aXRlbTwvQ09ERT4gLSBUaGUgZmlsZSBpdGVtIGZvciB0aGUgcGFyYW1ldGVyIHRvIGFkZC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFkZEZpbGVQYXJhbWV0ZXIob3JnLmFwYWNoZS5jb21tb25zLmZpbGV1cGxvYWQuRmlsZUl0ZW0pIj48IS0tIC0tPjwvQT48SDM+CithZGRGaWxlUGFyYW1ldGVyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5hZGRGaWxlUGFyYW1ldGVyPC9CPihvcmcuYXBhY2hlLmNvbW1vbnMuZmlsZXVwbG9hZC5GaWxlSXRlbSZuYnNwO2l0ZW0pPC9QUkU+Cis8REw+Cis8REQ+QWRkcyBhIGZpbGUgcGFyYW1ldGVyIHRvIHRoZSBzZXQgb2YgZmlsZSBwYXJhbWV0ZXJzIGZvciB0aGlzIHJlcXVlc3QKKyBhbmQgYWxzbyB0byB0aGUgbGlzdCBvZiBhbGwgcGFyYW1ldGVycy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aXRlbTwvQ09ERT4gLSBUaGUgZmlsZSBpdGVtIGZvciB0aGUgcGFyYW1ldGVyIHRvIGFkZC48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwOzxBIEhSRUY9IiNuZXN0ZWRfY2xhc3Nfc3VtbWFyeSI+TkVTVEVEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTY1MjRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbApAQCAtMCwwICsxLDMzMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbixDb250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvRk9OVD4KKzxCUj4KK0NsYXNzIENvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmEubGFuZy5UaHJvd2FibGUKKyAgICAgICAgfAorICAgICAgICArLS1qYXZhLmxhbmcuRXhjZXB0aW9uCisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tamF2YS5pby5JT0V4Y2VwdGlvbgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0I+PERUPmV4dGVuZHMgamF2YS5pby5JT0V4Y2VwdGlvbjwvREw+CisKKzxQPgorVGhpcyBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gbXVsdGlwYXJ0IHBvc3QgZGF0YSBleGNlZWRzIHRoZSB2YWx1ZQorIGdpdmVuIGJ5IHRoZSBDb250ZW50LUxlbmd0aCBoZWFkZXIKKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24iPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjbWVzc2FnZSI+bWVzc2FnZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLkV4Y2VwdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuVGhyb3dhYmxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5UaHJvd2FibGU8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKCkiPkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sI0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbihsb25nKSI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPjwvQj4obG9uZyZuYnNwO2NvbnRlbnRMZW5ndGgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCNnZXRNZXNzYWdlKCkiPmdldE1lc3NhZ2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5UaHJvd2FibGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5UaHJvd2FibGU8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maWxsSW5TdGFja1RyYWNlLCBnZXRDYXVzZSwgZ2V0TG9jYWxpemVkTWVzc2FnZSwgZ2V0U3RhY2tUcmFjZSwgaW5pdENhdXNlLCBwcmludFN0YWNrVHJhY2UsIHByaW50U3RhY2tUcmFjZSwgcHJpbnRTdGFja1RyYWNlLCBzZXRTdGFja1RyYWNlLCB0b1N0cmluZzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibWVzc2FnZSI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bWVzc2FnZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKGxvbmcpIj48IS0tIC0tPjwvQT48SDM+CitDb250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0I+KGxvbmcmbmJzcDtjb250ZW50TGVuZ3RoKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldE1lc3NhZ2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEubGFuZy5UaHJvd2FibGU8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjcyOWExMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbApAQCAtMCwwICsxLDYxNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0Rpc2tGaWxlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuRGlza0ZpbGUsRGlza0ZpbGUgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkRpc2tGaWxlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0Rpc2tGaWxlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGlza0ZpbGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvRk9OVD4KKzxCUj4KK0NsYXNzIERpc2tGaWxlPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkRpc2tGaWxlPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5EaXNrRmlsZTwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPjwvREw+CisKKzxQPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNjb250ZW50VHlwZSI+Y29udGVudFR5cGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgZmlsZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNmaWxlTmFtZSI+ZmlsZU5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG5hbWUgb2YgdGhlIGZpbGU8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjZmlsZVBhdGgiPmZpbGVQYXRoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBmaWxlcGF0aCB0byB0aGUgdGVtcG9yYXJ5IGZpbGU8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNmaWxlU2l6ZSI+ZmlsZVNpemU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIGZpbGU8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI0Rpc2tGaWxlKGphdmEubGFuZy5TdHJpbmcpIj5EaXNrRmlsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlUGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjZGVzdHJveSgpIj5kZXN0cm95PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RGVsZXRlIHRoZSB0ZW1wb3JhcnkgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNnZXRDb250ZW50VHlwZSgpIj5nZXRDb250ZW50VHlwZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgY29udGVudCB0eXBlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2J5dGVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNnZXRGaWxlRGF0YSgpIj5nZXRGaWxlRGF0YTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0F0dGVtcHQgdG8gcmVhZCB0aGUgdGVtcG9yYXJ5IGZpbGUgYW5kIGdldCBpdCdzIGRhdGEgaW4gYnl0ZQorIGFycmF5IGZvcm0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2J5dGVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNnZXRGaWxlRGF0YShpbnQpIj5nZXRGaWxlRGF0YTwvQT48L0I+KGludCZuYnNwO2J1ZmZlclNpemUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdHRlbXB0cyB0byByZWFkIGEgZmlsZSBuIGJ5dGVzIGF0IGEgdGltZSwgbiBiZWluZyBlcXVhbCB0byAiYnVmZmVyU2l6ZSIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjZ2V0RmlsZU5hbWUoKSI+Z2V0RmlsZU5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIGZpbGUgbmFtZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldEZpbGVQYXRoKCkiPmdldEZpbGVQYXRoPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSB0ZW1wb3JhcnkgZmlsZSBwYXRoIGZvciB0aGlzIGZvcm0gZmlsZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjZ2V0RmlsZVNpemUoKSI+Z2V0RmlsZVNpemU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIGZpbGUgc2l6ZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmlvLklucHV0U3RyZWFtPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldElucHV0U3RyZWFtKCkiPmdldElucHV0U3RyZWFtPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIEZpbGVJbnB1dFN0cmVhbSB0byB0aGUgZmlsZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI3NldENvbnRlbnRUeXBlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRDb250ZW50VHlwZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250ZW50VHlwZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgY29udGVudCB0eXBlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjc2V0RmlsZU5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldEZpbGVOYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZpbGVuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBmaWxlIG5hbWU8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNzZXRGaWxlU2l6ZShpbnQpIj5zZXRGaWxlU2l6ZTwvQT48L0I+KGludCZuYnNwO2ZpbGVTaXplKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBmaWxlIHNpemU8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImZpbGVQYXRoIj48IS0tIC0tPjwvQT48SDM+CitmaWxlUGF0aDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+ZmlsZVBhdGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZpbGVwYXRoIHRvIHRoZSB0ZW1wb3JhcnkgZmlsZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY29udGVudFR5cGUiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRlbnRUeXBlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5jb250ZW50VHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29udGVudCB0eXBlIG9mIHRoZSBmaWxlCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaWxlU2l6ZSI+PCEtLSAtLT48L0E+PEgzPgorZmlsZVNpemU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+ZmlsZVNpemU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlIGZpbGUKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbGVOYW1lIj48IS0tIC0tPjwvQT48SDM+CitmaWxlTmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+ZmlsZU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGZpbGUKKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJEaXNrRmlsZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorRGlza0ZpbGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5EaXNrRmlsZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZpbGVQYXRoKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0RmlsZURhdGEoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmlsZURhdGE8L0gzPgorPFBSRT4KK3B1YmxpYyBieXRlW10gPEI+Z2V0RmlsZURhdGE8L0I+KCkKKyAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5BdHRlbXB0IHRvIHJlYWQgdGhlIHRlbXBvcmFyeSBmaWxlIGFuZCBnZXQgaXQncyBkYXRhIGluIGJ5dGUKKyBhcnJheSBmb3JtLiAgVHJpZXMgdG8gcmVhZCB0aGUgZW50aXJlIGZpbGUgKHVzaW5nIGEgYnl0ZSBhcnJheQorIHRoZSBzaXplIG9mIGdldEZpbGVTaXplKCkpIGF0IG9uY2UsIGluIG9uZSBjYWxsIHRvIEZpbGVJbnB1dFN0cmVhbS5yZWFkKGJ5dGVbXSkuCisgRm9yIGJ1ZmZlcmVkIHJlYWRpbmcsIHNlZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNnZXRGaWxlRGF0YShpbnQpIj48Q09ERT5nZXRGaWxlRGF0YShpbnQpPC9DT0RFPjwvQT4uCisgTm90ZSB0aGF0IHRoaXMgbWV0aG9kIGNhbiBiZSBkYW5nZXJvdXMsIGFuZCB0aGF0IHRoZSBzaXplIG9mIGEgZmlsZQorIGNhbiBjYXVzZSBhbiBPdXRPZk1lbW9yeUVycm9yIHF1aXRlIGVhc2lseS4gIFlvdSBzaG91bGQgdXNlIAorIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sI2dldElucHV0U3RyZWFtKCkiPjxDT0RFPmdldElucHV0U3RyZWFtPC9DT0RFPjwvQT4gYW5kIGRvIHlvdXIgb3duIHRoaW5nLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2dldEZpbGVEYXRhKCkiPmdldEZpbGVEYXRhPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBmaWxlIGRhdGEgYXMgYSBieXRlIGFycmF5LgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb248L0NPREU+IC0gSWYgdGhlIHRlbXAgZmlsZSBubyBsb25nZXIgZXhpc3RzCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGVyZSBpcyBzb21lIHNvcnQgb2YgSU8gcHJvYmxlbS48RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCNnZXRGaWxlRGF0YShpbnQpIj48Q09ERT5nZXRGaWxlRGF0YShpbnQpPC9DT0RFPjwvQT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZpbGVEYXRhKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZpbGVEYXRhPC9IMz4KKzxQUkU+CitwdWJsaWMgYnl0ZVtdIDxCPmdldEZpbGVEYXRhPC9CPihpbnQmbmJzcDtidWZmZXJTaXplKQorICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkF0dGVtcHRzIHRvIHJlYWQgYSBmaWxlIG4gYnl0ZXMgYXQgYSB0aW1lLCBuIGJlaW5nIGVxdWFsIHRvICJidWZmZXJTaXplIi4KKyBOb3RlIHRoYXQgdGhpcyBtZXRob2QgY2FuIGJlIGRhbmdlcm91cywgYW5kIHRoYXQgdGhlIHNpemUgb2YgYSBmaWxlCisgY2FuIGNhdXNlIGFuIE91dE9mTWVtb3J5RXJyb3IgcXVpdGUgZWFzaWx5LiAgWW91IHNob3VsZCB1c2UgCisgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwjZ2V0SW5wdXRTdHJlYW0oKSI+PENPREU+Z2V0SW5wdXRTdHJlYW08L0NPREU+PC9BPiBhbmQgZG8geW91ciBvd24gdGhpbmcuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJ1ZmZlclNpemU8L0NPREU+IC0gVGhlIHNpemUgaW4gYnl0ZXMgdGhhdCBhcmUgcmVhZCBmcm9tIHRoZSBmaWxlIGF0IGEgdGltZQorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb248L0NPREU+IC0gSWYgdGhlIHRlbXAgZmlsZSBubyBsb25nZXIgZXhpc3RzCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImRlc3Ryb3koKSI+PCEtLSAtLT48L0E+PEgzPgorZGVzdHJveTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+ZGVzdHJveTwvQj4oKTwvUFJFPgorPERMPgorPEREPkRlbGV0ZSB0aGUgdGVtcG9yYXJ5IGZpbGUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjZGVzdHJveSgpIj5kZXN0cm95PC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGaWxlUGF0aCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGaWxlUGF0aDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RmlsZVBhdGg8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIHRlbXBvcmFyeSBmaWxlIHBhdGggZm9yIHRoaXMgZm9ybSBmaWxlCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSBmaWxlcGF0aCB0byB0aGUgdGVtcG9yYXJ5IGZpbGU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZpbGVOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGaWxlTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RmlsZU5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlbmFtZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGZpbGUgbmFtZQorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI3NldEZpbGVOYW1lKGphdmEubGFuZy5TdHJpbmcpIj5zZXRGaWxlTmFtZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmlsZW5hbWU8L0NPREU+IC0gVGhlIGJhc2UgZmlsZSBuYW1lLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Q29udGVudFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENvbnRlbnRUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDb250ZW50VHlwZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRlbnRUeXBlKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgY29udGVudCB0eXBlCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjc2V0Q29udGVudFR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRlbnRUeXBlPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb250ZW50VHlwZTwvQ09ERT4gLSBUaGUgY29udGVudCB0eXBlIGZvciB0aGUgZmlsZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZpbGVTaXplKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZpbGVTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGaWxlU2l6ZTwvQj4oaW50Jm5ic3A7ZmlsZVNpemUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBmaWxlIHNpemUKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNzZXRGaWxlU2l6ZShpbnQpIj5zZXRGaWxlU2l6ZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmlsZVNpemU8L0NPREU+IC0gVGhlIHNpemUgb2YgdGhlIGZpbGUgaW4gYnl0ZXM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZpbGVOYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZpbGVOYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGaWxlTmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgZmlsZSBuYW1lCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjZ2V0RmlsZU5hbWUoKSI+Z2V0RmlsZU5hbWU8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VGhlIGJhc2UgZmlsZSBuYW1lLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Q29udGVudFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29udGVudFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldENvbnRlbnRUeXBlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBjb250ZW50IHR5cGUKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNnZXRDb250ZW50VHlwZSgpIj5nZXRDb250ZW50VHlwZTwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5BIFN0cmluZyByZXByZXNlbnRpbmcgY29udGVudCB0eXBlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmlsZVNpemUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmlsZVNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0RmlsZVNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIGZpbGUgc2l6ZQorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2dldEZpbGVTaXplKCkiPmdldEZpbGVTaXplPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj5Gb3JtRmlsZTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBzaXplIG9mIHRoaXMgZmlsZSBpbiBieXRlczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SW5wdXRTdHJlYW0oKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SW5wdXRTdHJlYW08L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmlvLklucHV0U3RyZWFtIDxCPmdldElucHV0U3RyZWFtPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgRmlsZUlucHV0U3RyZWFtIHRvIHRoZSBmaWxlCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjZ2V0SW5wdXRTdHJlYW0oKSI+Z2V0SW5wdXRTdHJlYW08L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSB1cGxvYWRlZCBmaWxlIGlzIG5vdCBmb3VuZC4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHJlYWRpbmcgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0Rpc2tGaWxlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGlza0ZpbGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWMwMWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbApAQCAtMCwwICsxLDc2NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcixEaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9GT05UPgorPEJSPgorQ2xhc3MgRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9ETD4KKworPFA+CitUaGlzIGlzIGEgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgdGhhdCB3cml0ZXMgZmlsZSBkYXRhIGRpcmVjdGx5IHRvCisgdG8gdGVtcG9yYXJ5IGZpbGVzIG9uIGRpc2suCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+TWlrZSBTY2hhY2h0ZXI8L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNodGFibGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2FsbEVsZW1lbnRzIj5hbGxFbGVtZW50czwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBIEhhc2h0YWJsZSByZXByZXNlbnRpbmcgYWxsIGVsZW1uZW50cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEudXRpbC5IYXNodGFibGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2ZpbGVFbGVtZW50cyI+ZmlsZUVsZW1lbnRzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0EgSGFzaHRhYmxlIHJlcHJlc2VudGluZyB0aGUgZm9ybSBmaWxlcyB1cGxvYWRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjbG9nIj5sb2c8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI21hcHBpbmciPm1hcHBpbmc8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIEFjdGlvbk1hcHBpbmcgaW5zdGFuY2UgdXNlZCBmb3IgdGhpcyBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXJ2bGV0Ij5zZXJ2bGV0PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlIHVzZWQgZm9yIHRoaXMgY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCN0ZW1wRGlyIj50ZW1wRGlyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkhhc2h0YWJsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjdGV4dEVsZW1lbnRzIj50ZXh0RWxlbWVudHM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBIYXNodGFibGUgcmVwcmVzZW50aW5nIHRoZSBmb3JtIHRleHQgaW5wdXQgbmFtZXMgYW5kIHZhbHVlcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RIYW5kbGVyIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI0FUVFJJQlVURV9NQVhfTEVOR1RIX0VYQ0VFREVEIj5BVFRSSUJVVEVfTUFYX0xFTkdUSF9FWENFRURFRDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyKCkiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNjcmVhdGVEaXNrRmlsZShvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0RWxlbWVudCkiPmNyZWF0ZURpc2tGaWxlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4mbmJzcDtlbGVtZW50KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNjcmVhdGVUZXh0RWxlbWVudChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0RWxlbWVudCkiPmNyZWF0ZVRleHRFbGVtZW50PC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPiZuYnNwO2VsZW1lbnQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZmluaXNoKCkiPmZpbmlzaDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NhbGxzIG9uIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNyb2xsYmFjaygpIj48Q09ERT5yb2xsYmFjaygpPC9DT0RFPjwvQT4gdG8gZGVsZXRlCisgdGVtcG9yYXJ5IGZpbGVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSGFzaHRhYmxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRBbGxFbGVtZW50cygpIj5nZXRBbGxFbGVtZW50czwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIHJldHVybnMgYWxsIGVsZW1lbnRzIG9mIGEgbXVsdGlwYXJ0IHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5IYXNodGFibGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldEZpbGVFbGVtZW50cygpIj5nZXRGaWxlRWxlbWVudHM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdG8gcmV0cmlldmUgYWxsIHRoZSBGb3JtRmlsZQorIGlucHV0IGVsZW1lbnRzIG9mIHRoZSByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0TWFwcGluZygpIj5nZXRNYXBwaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBBY3Rpb25NYXBwaW5nIGluc3RhbmNlIGZvciB0aGlzIHJlcXVlc3Q8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2xvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldE1heFNpemUoamF2YS5sYW5nLlN0cmluZykiPmdldE1heFNpemU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3RyaW5nU2l6ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHMgdGhlIG1heGltdW0gcG9zdCBkYXRhIHNpemUgaW4gYnl0ZXMgZnJvbSB0aGUgc3RyaW5nCisgcmVwcmVzZW50YXRpb24gaW4gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldFNlcnZsZXQoKSI+Z2V0U2VydmxldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgQWN0aW9uU2VydmxldCBpbnN0YW5jZTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSGFzaHRhYmxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRUZXh0RWxlbWVudHMoKSI+Z2V0VGV4dEVsZW1lbnRzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRvIHJldHJpZXZlIGFsbCB0aGUgdGV4dAorIGlucHV0IGVsZW1lbnRzIG9mIHRoZSByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNoYW5kbGVSZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5oYW5kbGVSZXF1ZXN0PC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBwb3B1bGF0ZXMgdGhlIGludGVybmFsIGhhc2h0YWJsZXMgd2l0aCBtdWx0aXBhcnQgcmVxdWVzdCBkYXRhLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjcmV0cmlldmVUZW1wRGlyKG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj5yZXRyaWV2ZVRlbXBEaXI8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttb2R1bGVDb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZXMgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgZnJvbSBlaXRoZXIgQWN0aW9uU2VydmxldCwgYSBjb250ZXh0CisgcHJvcGVydHksIG9yIGEgc3lzdGVtIHByb3BlcnR5LCBpbiB0aGF0IG9yZGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNyb2xsYmFjaygpIj5yb2xsYmFjazwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0RlbGV0ZSBhbGwgdGhlIGZpbGVzIHVwbG9hZGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNzZXRNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+c2V0TWFwcGluZzwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnZpZW5pZW5jZSBtZXRob2QgdG8gc2V0IGEgcmVmZXJlbmNlIHRvIGEgd29ya2luZworIEFjdGlvbk1hcHBpbmcgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udmllbmllbmNlIG1ldGhvZCB0byBzZXQgYSByZWZlcmVuY2UgdG8gYSB3b3JraW5nCisgQWN0aW9uU2VydmxldCBpbnN0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImxvZyI+PCEtLSAtLT48L0E+PEgzPgorbG9nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZyA8Qj5sb2c8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2VydmxldCI+PCEtLSAtLT48L0E+PEgzPgorc2VydmxldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPnNlcnZsZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEFjdGlvblNlcnZsZXQgaW5zdGFuY2UgdXNlZCBmb3IgdGhpcyBjbGFzcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1hcHBpbmciPjwhLS0gLS0+PC9BPjxIMz4KK21hcHBpbmc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiA8Qj5tYXBwaW5nPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBBY3Rpb25NYXBwaW5nIGluc3RhbmNlIHVzZWQgZm9yIHRoaXMgY2xhc3MuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaWxlRWxlbWVudHMiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbGVFbGVtZW50czwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5IYXNodGFibGUgPEI+ZmlsZUVsZW1lbnRzPC9CPjwvUFJFPgorPERMPgorPEREPkEgSGFzaHRhYmxlIHJlcHJlc2VudGluZyB0aGUgZm9ybSBmaWxlcyB1cGxvYWRlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRleHRFbGVtZW50cyI+PCEtLSAtLT48L0E+PEgzPgordGV4dEVsZW1lbnRzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj50ZXh0RWxlbWVudHM8L0I+PC9QUkU+Cis8REw+Cis8REQ+QSBIYXNodGFibGUgcmVwcmVzZW50aW5nIHRoZSBmb3JtIHRleHQgaW5wdXQgbmFtZXMgYW5kIHZhbHVlcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFsbEVsZW1lbnRzIj48IS0tIC0tPjwvQT48SDM+CithbGxFbGVtZW50czwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5IYXNodGFibGUgPEI+YWxsRWxlbWVudHM8L0I+PC9QUkU+Cis8REw+Cis8REQ+QSBIYXNodGFibGUgcmVwcmVzZW50aW5nIGFsbCBlbGVtbmVudHMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0ZW1wRGlyIj48IS0tIC0tPjwvQT48SDM+Cit0ZW1wRGlyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj50ZW1wRGlyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcigpIj48IS0tIC0tPjwvQT48SDM+CitEaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImhhbmRsZVJlcXVlc3QoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2hhbmRsZVJlcXVlc3Q8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmhhbmRsZVJlcXVlc3Q8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KQorICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBwb3B1bGF0ZXMgdGhlIGludGVybmFsIGhhc2h0YWJsZXMgd2l0aCBtdWx0aXBhcnQgcmVxdWVzdCBkYXRhLgorIElmIHRoZSByZXF1ZXN0IGFyZ3VtZW50IGlzIGFuIGluc3RhbmNlIG9mIE11bHRpcGFydFJlcXVlc3RXcmFwcGVyLAorIHRoZSByZXF1ZXN0IHdyYXBwZXIgd2lsbCBiZSBwb3B1bGF0ZWQgYXMgd2VsbC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNoYW5kbGVSZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5oYW5kbGVSZXF1ZXN0PC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gdGhyb3duIGlmIHNvbWV0aGluZyBnb2VzIHdyb25nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjcmVhdGVUZXh0RWxlbWVudChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0RWxlbWVudCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NyZWF0ZVRleHRFbGVtZW50PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5jcmVhdGVUZXh0RWxlbWVudDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPiZuYnNwO2VsZW1lbnQpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjcmVhdGVEaXNrRmlsZShvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0RWxlbWVudCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NyZWF0ZURpc2tGaWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5jcmVhdGVEaXNrRmlsZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4mbmJzcDtlbGVtZW50KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWxsRWxlbWVudHMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWxsRWxlbWVudHM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuSGFzaHRhYmxlIDxCPmdldEFsbEVsZW1lbnRzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVzY3JpcHRpb24gY29waWVkIGZyb20gaW50ZXJmYWNlOiA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvQj48L0REPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgYWxsIGVsZW1lbnRzIG9mIGEgbXVsdGlwYXJ0IHJlcXVlc3QuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0QWxsRWxlbWVudHMoKSI+Z2V0QWxsRWxlbWVudHM8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSBIYXNodGFibGUgd2hlcmUgdGhlIGtleXMgYXJlIGlucHV0IG5hbWVzIGFuZCB2YWx1ZXMKKyAgIGFyZSBlaXRoZXIgU3RyaW5ncyBvciBGb3JtRmlsZXM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFRleHRFbGVtZW50cygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUZXh0RWxlbWVudHM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuSGFzaHRhYmxlIDxCPmdldFRleHRFbGVtZW50czwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0I+PC9ERD4KKzxERD5UaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdG8gcmV0cmlldmUgYWxsIHRoZSB0ZXh0CisgaW5wdXQgZWxlbWVudHMgb2YgdGhlIHJlcXVlc3QuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0VGV4dEVsZW1lbnRzKCkiPmdldFRleHRFbGVtZW50czwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5BIEhhc2h0YWJsZSB3aGVyZSB0aGUga2V5cyBhbmQgdmFsdWVzIGFyZSB0aGUgbmFtZXMgYW5kCisgIHZhbHVlcyBvZiB0aGUgcmVxdWVzdCBpbnB1dCBwYXJhbWV0ZXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGaWxlRWxlbWVudHMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmlsZUVsZW1lbnRzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj5nZXRGaWxlRWxlbWVudHM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXNjcmlwdGlvbiBjb3BpZWQgZnJvbSBpbnRlcmZhY2U6IDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9CPjwvREQ+Cis8REQ+VGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRvIHJldHJpZXZlIGFsbCB0aGUgRm9ybUZpbGUKKyBpbnB1dCBlbGVtZW50cyBvZiB0aGUgcmVxdWVzdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRGaWxlRWxlbWVudHMoKSI+Z2V0RmlsZUVsZW1lbnRzPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgSGFzaHRhYmxlIHdoZXJlIHRoZSBrZXlzIGFyZSB0aGUgaW5wdXQgbmFtZXMgb2YgdGhlCisgIGZpbGVzIGFuZCB0aGUgdmFsdWVzIGFyZSBGb3JtRmlsZSBvYmplY3RzPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPjxDT0RFPkZvcm1GaWxlPC9DT0RFPjwvQT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJvbGxiYWNrKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JvbGxiYWNrPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yb2xsYmFjazwvQj4oKTwvUFJFPgorPERMPgorPEREPkRlbGV0ZSBhbGwgdGhlIGZpbGVzIHVwbG9hZGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3JvbGxiYWNrKCkiPnJvbGxiYWNrPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5pc2goKSI+PCEtLSAtLT48L0E+PEgzPgorZmluaXNoPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5maW5pc2g8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5DYWxscyBvbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjcm9sbGJhY2soKSI+PENPREU+cm9sbGJhY2soKTwvQ09ERT48L0E+IHRvIGRlbGV0ZQorIHRlbXBvcmFyeSBmaWxlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNmaW5pc2goKSI+ZmluaXNoPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRTZXJ2bGV0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0U2VydmxldDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0U2VydmxldDwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0KTwvUFJFPgorPERMPgorPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0I+PC9ERD4KKzxERD5Db252aWVuaWVuY2UgbWV0aG9kIHRvIHNldCBhIHJlZmVyZW5jZSB0byBhIHdvcmtpbmcKKyBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRNYXBwaW5nKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TWFwcGluZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TWFwcGluZzwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nKTwvUFJFPgorPERMPgorPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0I+PC9ERD4KKzxERD5Db252aWVuaWVuY2UgbWV0aG9kIHRvIHNldCBhIHJlZmVyZW5jZSB0byBhIHdvcmtpbmcKKyBBY3Rpb25NYXBwaW5nIGluc3RhbmNlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3NldE1hcHBpbmcob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcpIj5zZXRNYXBwaW5nPC9BPjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTZXJ2bGV0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNlcnZsZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiA8Qj5nZXRTZXJ2bGV0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVzY3JpcHRpb24gY29waWVkIGZyb20gaW50ZXJmYWNlOiA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvQj48L0REPgorPEREPkdldCB0aGUgQWN0aW9uU2VydmxldCBpbnN0YW5jZQorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldFNlcnZsZXQoKSI+Z2V0U2VydmxldDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWFwcGluZygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNYXBwaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4gPEI+Z2V0TWFwcGluZzwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlc2NyaXB0aW9uIGNvcGllZCBmcm9tIGludGVyZmFjZTogPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQ09ERT48L0I+PC9ERD4KKzxERD5HZXQgdGhlIEFjdGlvbk1hcHBpbmcgaW5zdGFuY2UgZm9yIHRoaXMgcmVxdWVzdAorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldE1hcHBpbmcoKSI+Z2V0TWFwcGluZzwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWF4U2l6ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWF4U2l6ZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGxvbmcgPEI+Z2V0TWF4U2l6ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3N0cmluZ1NpemUpCisgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkdldHMgdGhlIG1heGltdW0gcG9zdCBkYXRhIHNpemUgaW4gYnl0ZXMgZnJvbSB0aGUgc3RyaW5nCisgcmVwcmVzZW50YXRpb24gaW4gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJldHJpZXZlVGVtcERpcihvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+PCEtLSAtLT48L0E+PEgzPgorcmV0cmlldmVUZW1wRGlyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5yZXRyaWV2ZVRlbXBEaXI8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO21vZHVsZUNvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5SZXRyaWV2ZXMgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgZnJvbSBlaXRoZXIgQWN0aW9uU2VydmxldCwgYSBjb250ZXh0CisgcHJvcGVydHksIG9yIGEgc3lzdGVtIHByb3BlcnR5LCBpbiB0aGF0IG9yZGVyLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tGaWxlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjY3M2Y0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sCkBAIC0wLDAgKzEsNDAzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorRm9ybUZpbGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5Gb3JtRmlsZSxGb3JtRmlsZSBpbnRlcmZhY2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkZvcm1GaWxlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0Zvcm1GaWxlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRm9ybUZpbGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvRk9OVD4KKzxCUj4KK0ludGVyZmFjZSBGb3JtRmlsZTwvSDI+Cis8REw+Cis8RFQ+PEI+QWxsIEtub3duIEltcGxlbWVudGluZyBDbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGludGVyZmFjZSA8Qj5Gb3JtRmlsZTwvQj48L0RMPgorCis8UD4KK1RoaXMgaW50ZXJmYWNlIHJlcHJlc2VudHMgYSBmaWxlIHRoYXQgaGFzIGJlZW4gdXBsb2FkZWQgYnkgYSBjbGllbnQuIEl0IGlzCisgdGhlIG9ubHkgaW50ZXJmYWNlIG9yIGNsYXNzIGluIHVwbG9hZCBwYWNrYWdlIHdoaWNoIGlzIHR5cGljYWxseSByZWZlcmVuY2VkCisgZGlyZWN0bHkgYnkgYSBTdHJ1dHMgYXBwbGljYXRpb24uCis8UD4KKworPFA+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2Rlc3Ryb3koKSI+ZGVzdHJveTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Rlc3Ryb3lzIGFsbCBjb250ZW50IGZvciB0aGUgdXBsb2FkZWQgZmlsZSwgaW5jbHVkaW5nIGFueSB1bmRlcmx5aW5nCisgZGF0YSBmaWxlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNnZXRDb250ZW50VHlwZSgpIj5nZXRDb250ZW50VHlwZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhpcyBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtieXRlW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwjZ2V0RmlsZURhdGEoKSI+Z2V0RmlsZURhdGE8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBkYXRhIGZvciB0aGUgZW50aXJlIGZpbGUgYXMgYnl0ZSBhcnJheS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNnZXRGaWxlTmFtZSgpIj5nZXRGaWxlTmFtZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIGZpbGUgbmFtZSBvZiB0aGlzIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNnZXRGaWxlU2l6ZSgpIj5nZXRGaWxlU2l6ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIHNpemUgb2YgdGhpcyBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmlvLklucHV0U3RyZWFtPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2dldElucHV0U3RyZWFtKCkiPmdldElucHV0U3RyZWFtPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhbiBpbnB1dCBzdHJlYW0gZm9yIHRoaXMgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNzZXRDb250ZW50VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0Q29udGVudFR5cGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udGVudFR5cGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBjb250ZW50IHR5cGUgZm9yIHRoaXMgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCNzZXRGaWxlTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+c2V0RmlsZU5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZmlsZU5hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBmaWxlIG5hbWUgb2YgdGhpcyBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI3NldEZpbGVTaXplKGludCkiPnNldEZpbGVTaXplPC9BPjwvQj4oaW50Jm5ic3A7ZmlsZVNpemUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHRoZSBmaWxlIHNpemUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRDb250ZW50VHlwZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDb250ZW50VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0Q29udGVudFR5cGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBjb250ZW50IHR5cGUgZm9yIHRoaXMgZmlsZS4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5BIFN0cmluZyByZXByZXNlbnRpbmcgY29udGVudCB0eXBlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0Q29udGVudFR5cGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldENvbnRlbnRUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRDb250ZW50VHlwZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRlbnRUeXBlKTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIGNvbnRlbnQgdHlwZSBmb3IgdGhpcyBmaWxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb250ZW50VHlwZTwvQ09ERT4gLSBUaGUgY29udGVudCB0eXBlIGZvciB0aGUgZmlsZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZpbGVTaXplKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZpbGVTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldEZpbGVTaXplPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgc2l6ZSBvZiB0aGlzIGZpbGUuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VGhlIHNpemUgb2YgdGhlIGZpbGUsIGluIGJ5dGVzLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RmlsZVNpemUoaW50KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RmlsZVNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZpbGVTaXplPC9CPihpbnQmbmJzcDtmaWxlU2l6ZSk8L1BSRT4KKzxETD4KKzxERD5TZXRzIHRoZSBmaWxlIHNpemUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZpbGVTaXplPC9DT0RFPiAtIFRoZSBzaXplIG9mIHRoZSBmaWxlLCBpbiBieXRlcyw8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEZpbGVOYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEZpbGVOYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRGaWxlTmFtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIGZpbGUgbmFtZSBvZiB0aGlzIGZpbGUuIFRoaXMgaXMgdGhlIGJhc2UgbmFtZSBvZiB0aGUgZmlsZSwKKyBhcyBzdXBwbGllZCBieSB0aGUgdXNlciB3aGVuIHRoZSBmaWxlIHdhcyB1cGxvYWRlZC4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgYmFzZSBmaWxlIG5hbWUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRGaWxlTmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RmlsZU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldEZpbGVOYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZmlsZU5hbWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyB0aGUgZmlsZSBuYW1lIG9mIHRoaXMgZmlsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmlsZU5hbWU8L0NPREU+IC0gVGhlIGJhc2UgZmlsZSBuYW1lLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmlsZURhdGEoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmlsZURhdGE8L0gzPgorPFBSRT4KK3B1YmxpYyBieXRlW10gPEI+Z2V0RmlsZURhdGE8L0I+KCkKKyAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5GaWxlTm90Rm91bmRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBkYXRhIGZvciB0aGUgZW50aXJlIGZpbGUgYXMgYnl0ZSBhcnJheS4gQ2FyZSBpcyBuZWVkZWQgd2hlbgorIHVzaW5nIHRoaXMgbWV0aG9kLCBzaW5jZSBhIGxhcmdlIHVwbG9hZCBjb3VsZCBlYXNpbHkgZXhoYXVzdCBhdmFpbGFibGUKKyBtZW1vcnkuIFRoZSBwcmVmZXJyZWQgbWV0aG9kIGZvciBhY2Nlc3NpbmcgdGhlIGZpbGUgZGF0YSBpcworIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sI2dldElucHV0U3RyZWFtKCkiPjxDT0RFPmdldElucHV0U3RyZWFtPC9DT0RFPjwvQT4uCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VGhlIGZpbGUgZGF0YSBhcyBhIGJ5dGUgYXJyYXkuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgdXBsb2FkZWQgZmlsZSBpcyBub3QgZm91bmQuCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBlcnJvciBvY2N1cnJlZCB3aGlsZSByZWFkaW5nIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRJbnB1dFN0cmVhbSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRJbnB1dFN0cmVhbTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEuaW8uSW5wdXRTdHJlYW0gPEI+Z2V0SW5wdXRTdHJlYW08L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHVybnMgYW4gaW5wdXQgc3RyZWFtIGZvciB0aGlzIGZpbGUuIFRoZSBjYWxsZXIgbXVzdCBjbG9zZSB0aGUKKyBzdHJlYW0gd2hlbiBpdCBpcyBubyBsb25nZXIgbmVlZGVkLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmlvLkZpbGVOb3RGb3VuZEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgdXBsb2FkZWQgZmlsZSBpcyBub3QgZm91bmQuCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBlcnJvciBvY2N1cnJlZCB3aGlsZSByZWFkaW5nIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZXN0cm95KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2Rlc3Ryb3k8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmRlc3Ryb3k8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5EZXN0cm95cyBhbGwgY29udGVudCBmb3IgdGhlIHVwbG9hZGVkIGZpbGUsIGluY2x1ZGluZyBhbnkgdW5kZXJseWluZworIGRhdGEgZmlsZXMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0Zvcm1GaWxlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRm9ybUZpbGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDtGSUVMRCZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwO0ZJRUxEJm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE0OTM1ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbApAQCAtMCwwICsxLDMzMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24sTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0ZPTlQ+Cis8QlI+CitDbGFzcyBNYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmEubGFuZy5UaHJvd2FibGUKKyAgICAgICAgfAorICAgICAgICArLS1qYXZhLmxhbmcuRXhjZXB0aW9uCisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tamF2YS5pby5JT0V4Y2VwdGlvbgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9CPjxEVD5leHRlbmRzIGphdmEuaW8uSU9FeGNlcHRpb248L0RMPgorCis8UD4KK1RoaXMgZXhjZXB0aW9uIGlzIHRocm93biB3aGVuIG11bHRpcGFydCBwb3N0IGRhdGEgZXhjZWVkcyB0aGUgbWF4aW11bQorIHZhbHVlIHNldAorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjbWVzc2FnZSI+bWVzc2FnZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLkV4Y2VwdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuVGhyb3dhYmxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5UaHJvd2FibGU8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCNNYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbigpIj5NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24obG9uZykiPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPjwvQj4obG9uZyZuYnNwO21heExlbmd0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwjZ2V0TWVzc2FnZSgpIj5nZXRNZXNzYWdlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuVGhyb3dhYmxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuVGhyb3dhYmxlPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+ZmlsbEluU3RhY2tUcmFjZSwgZ2V0Q2F1c2UsIGdldExvY2FsaXplZE1lc3NhZ2UsIGdldFN0YWNrVHJhY2UsIGluaXRDYXVzZSwgcHJpbnRTdGFja1RyYWNlLCBwcmludFN0YWNrVHJhY2UsIHByaW50U3RhY2tUcmFjZSwgc2V0U3RhY2tUcmFjZSwgdG9TdHJpbmc8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1lc3NhZ2UiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2U8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPm1lc3NhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Ik1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uKGxvbmcpIj48IS0tIC0tPjwvQT48SDM+CitNYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9CPihsb25nJm5ic3A7bWF4TGVuZ3RoKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPmdldE1lc3NhZ2U8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEubGFuZy5UaHJvd2FibGU8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ0N2M0YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sCkBAIC0wLDAgKzEsMTg2MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLE11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvRk9OVD4KKzxCUj4KK0NsYXNzIE11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZhLmlvLklucHV0U3RyZWFtCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmlvLklucHV0U3RyZWFtPC9ETD4KKworPFA+CitUaGlzIGNsYXNzIGVuY2Fwc3VsYXRlcyBwYXJzaW5nIGZ1bmN0aW9uYWxpdHkgZm9yIFJGQzE4NjcsIG11bHRpcGFydC9mb3JtLWRhdGEuIFNlZSBNdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtVGVzdAorIGFuZCBNdWx0aXBhcnRJdGVyYXRvciBmb3IgdXNhZ2UgZXhhbXBsZXMuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+TWlrZSBTY2hhY2h0ZXI8L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNib3VuZGFyeSI+Ym91bmRhcnk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGJvdW5kYXJ5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2J5dGVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2JvdW5kYXJ5Qnl0ZXMiPmJvdW5kYXJ5Qnl0ZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjYm91bmRhcnlFbmNvdW50ZXJlZCI+Ym91bmRhcnlFbmNvdW50ZXJlZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXaGV0aGVyIG9yIG5vdCB0aGUgYm91bmRhcnkgaGFzIGJlZW4gZW5jb3VudGVyZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtsb25nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjYnl0ZXNSZWFkIj5ieXRlc1JlYWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHRvdGFsIG51bWJlciBvZiBieXRlcyByZWFkIHNvIGZhci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtieXRlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjQ0FSUklBR0VfUkVUVVJOIj5DQVJSSUFHRV9SRVRVUk48L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI0NPTlRFTlRfVFlQRV9BUFBMSUNBVElPTl9PQ1RFVF9TVFJFQU0iPkNPTlRFTlRfVFlQRV9BUFBMSUNBVElPTl9PQ1RFVF9TVFJFQU08L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI0NPTlRFTlRfVFlQRV9URVhUX1BMQUlOIj5DT05URU5UX1RZUEVfVEVYVF9QTEFJTjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtieXRlW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNDUkxGIj5DUkxGPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNERUZBVUxUX0NPTlRFTlRfRElTUE9TSVRJT04iPkRFRkFVTFRfQ09OVEVOVF9ESVNQT1NJVElPTjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNERUZBVUxUX0xJTkVfU0laRSI+REVGQVVMVF9MSU5FX1NJWkU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI0RPVUJMRV9EQVNIX1NUUklORyI+RE9VQkxFX0RBU0hfU1RSSU5HPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2VsZW1lbnRDaGFyc2V0Ij5lbGVtZW50Q2hhcnNldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY2hhcmFjdGVyIGVuY29kaW5nIG9mIHRoZSBlbGVtZW50LCBzcGVjaWZpZWQgaW4gdGhlIGVsZW1lbnQncyBDb250ZW50LVR5cGUgaGVhZGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2VsZW1lbnRDb250ZW50RGlzcG9zaXRpb24iPmVsZW1lbnRDb250ZW50RGlzcG9zaXRpb248L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIENvbnRlbnQtRGlzcG9zaXRpb24gZm9yIHRoZSBjdXJyZW50IGZvcm0gZWxlbWVudCBiZWluZyByZWFkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2VsZW1lbnRDb250ZW50VHlwZSI+ZWxlbWVudENvbnRlbnRUeXBlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBDb250ZW50LVR5cGUgb2YgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50IGJlaW5nIHJlYWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZWxlbWVudEZpbGVOYW1lIj5lbGVtZW50RmlsZU5hbWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGZpbGVuYW1lIG9mIHRoZSBjdXJyZW50IGZvcm0gZWxlbWVudCBiZWluZyByZWFkLCA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgY3VycmVudCBmb3JtIGVsZW1lbnQgaXMKKyB0ZXh0IGRhdGEuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZWxlbWVudE5hbWUiPmVsZW1lbnROYW1lPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGZvcm0gZWxlbWVudCBiZWluZyByZWFkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2VuZE9mU3RyZWFtIj5lbmRPZlN0cmVhbTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXaGV0aGVyIG9yIG5vdCB0aGUgZW5kIG9mIHRoZSBzdHJlYW0gaGFzIGJlZW4gcmVhZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtieXRlW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNmaW5hbEJvdW5kYXJ5Qnl0ZXMiPmZpbmFsQm91bmRhcnlCeXRlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNmaW5hbEJvdW5kYXJ5RW5jb3VudGVyZWQiPmZpbmFsQm91bmRhcnlFbmNvdW50ZXJlZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXaGV0aGVyIG9yIG5vdCB0aGUgZmluYWwgYm91bmRhcnkgaGFzIGJlZW4gZW5jb3VudGVyZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmlvLklucHV0U3RyZWFtPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjaW5wdXRTdHJlYW0iPmlucHV0U3RyZWFtPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBJbnB1dFN0cmVhbSB0byByZWFkIGZyb20uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ynl0ZVtdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjbGluZSI+bGluZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjbGluZUhhc0NhcnJpYWdlIj5saW5lSGFzQ2FycmlhZ2U8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2xpbmVIYXNOZXdsaW5lIj5saW5lSGFzTmV3bGluZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNsaW5lSW5kZXgiPmxpbmVJbmRleDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNsaW5lTGVuZ3RoIj5saW5lTGVuZ3RoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2xpbmVTaXplIj5saW5lU2l6ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2xvbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNtYXhMZW5ndGgiPm1heExlbmd0aDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWF4aW11bSBsZW5ndGggaW4gYnl0ZXMgdG8gcmVhZCBmcm9tIHRoZSBzdHJlYW0gYXQgYSB0aW1lLCBvciAtMSBmb3IgdW5saW1pdGVkIGxlbmd0aC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNtYXhMZW5ndGhNZXQiPm1heExlbmd0aE1ldDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXaGV0aGVyIG9yIG5vdCB0aGUgbWF4aW11bSBsZW5ndGggaGFzIGJlZW4gbWV0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNNRVNTQUdFX0lOVkFMSURfU1RBUlQiPk1FU1NBR0VfSU5WQUxJRF9TVEFSVDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtieXRlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjTkVXTElORV9CWVRFIj5ORVdMSU5FX0JZVEU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI1BBUkFNRVRFUl9DSEFSU0VUIj5QQVJBTUVURVJfQ0hBUlNFVDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjUEFSQU1FVEVSX0ZJTEVOQU1FIj5QQVJBTUVURVJfRklMRU5BTUU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI1BBUkFNRVRFUl9OQU1FIj5QQVJBTUVURVJfTkFNRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtjaGFyPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjVE9LRU5fQ09MT04iPlRPS0VOX0NPTE9OPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNUT0tFTl9FUVVBTFMiPlRPS0VOX0VRVUFMUzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtjaGFyPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjVE9LRU5fUVVPVEUiPlRPS0VOX1FVT1RFPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2NoYXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNUT0tFTl9TRU1JX0NPTE9OIj5UT0tFTl9TRU1JX0NPTE9OPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2NoYXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNUT0tFTl9TUEFDRSI+VE9LRU5fU1BBQ0U8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEuaW8uSW5wdXRTdHJlYW0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5pby5JbnB1dFN0cmVhbTwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbSgpIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNhdmFpbGFibGVJbkxpbmUoKSI+YXZhaWxhYmxlSW5MaW5lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2J5dGVSZWFkKCkiPmJ5dGVSZWFkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2NoZWNrQW5kRml4RmlsZW5hbWUoamF2YS5sYW5nLlN0cmluZykiPmNoZWNrQW5kRml4RmlsZW5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZmlsZW5hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjY2hlY2tGb3JCb3VuZGFyeSgpIj5jaGVja0ZvckJvdW5kYXJ5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2VxdWFscyhieXRlW10sIGludCwgaW50LCBieXRlW10pIj5lcXVhbHM8L0E+PC9CPihieXRlW10mbmJzcDtjb21wLAorICAgICAgIGludCZuYnNwO29mZnNldCwKKyAgICAgICBpbnQmbmJzcDtsZW5ndGgsCisgICAgICAgYnl0ZVtdJm5ic3A7c291cmNlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2hlY2tzIGJ5dGVzIGZvciBlcXVhbGl0eS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZmlsbExpbmUoKSI+ZmlsbExpbmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZmlsbExpbmVCdWZmZXIoKSI+ZmlsbExpbmVCdWZmZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7bG9uZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2dldEJ5dGVzUmVhZCgpIj5nZXRCeXRlc1JlYWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2dldEVsZW1lbnRDaGFyc2V0KCkiPmdldEVsZW1lbnRDaGFyc2V0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0cyB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNnZXRFbGVtZW50Q29udGVudERpc3Bvc2l0aW9uKCkiPmdldEVsZW1lbnRDb250ZW50RGlzcG9zaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHRoZSB2YWx1ZSBmb3IgdGhlICJDb250ZW50LURpc3Bvc2l0aW8iIGhlYWRlciBmb3IgdGhlIGN1cnJlbnQgbXVsdGlwYXJ0IGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNnZXRFbGVtZW50Q29udGVudFR5cGUoKSI+Z2V0RWxlbWVudENvbnRlbnRUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0cyB0aGUgIkNvbnRlbnQtVHlwZSIgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2dldEVsZW1lbnRGaWxlTmFtZSgpIj5nZXRFbGVtZW50RmlsZU5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHRoZSBmaWxlbmFtZSBvZiB0aGUgY3VycmVudCBlbGVtZW50LCB3aGljaCB3aWxsIGJlIG51bGwgaWYgdGhlIGN1cnJlbnQgZWxlbWVudAorIGlzbid0IGEgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2dldEVsZW1lbnROYW1lKCkiPmdldEVsZW1lbnROYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0cyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtsb25nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjZ2V0TWF4TGVuZ3RoKCkiPmdldE1heExlbmd0aDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjaXNCb3VuZGFyeUVuY291bnRlcmVkKCkiPmlzQm91bmRhcnlFbmNvdW50ZXJlZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgd2hldGhlciBvciBub3QgdGhlIGJvdW5kYXJ5IGhhcyBiZWVuIGVuY291bnRlcmVkIHdoaWxlIHJlYWRpbmcgZGF0YS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2lzRWxlbWVudEZpbGUoKSI+aXNFbGVtZW50RmlsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHMgd2hldGhlciBvciBub3QgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50IGJlaW5nIHJlYWQgaXMgYSBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjaXNFbmRPZlN0cmVhbSgpIj5pc0VuZE9mU3RyZWFtPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V2hldGhlciBvciBub3QgYW4gRU9GIGhhcyBiZWVuIHJlYWQgb24gdGhlIHN0cmVhbS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI2lzRmluYWxCb3VuZGFyeUVuY291bnRlcmVkKCkiPmlzRmluYWxCb3VuZGFyeUVuY291bnRlcmVkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgZmluYWwgYm91bmRhcnkgaGFzIGJlZW4gZW5jb3VudGVyZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNpc01heExlbmd0aE1ldCgpIj5pc01heExlbmd0aE1ldDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1doZXRoZXIgb3Igbm90IHRoZSBtYXhpbXVtIGxlbmd0aCBoYXMgYmVlbiBtZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNtYXJrKGludCkiPm1hcms8L0E+PC9CPihpbnQmbmJzcDtpKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TWFya3MgdGhlIHVuZGVybHlpbmcgc3RyZWFtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNwYXJzZUZvclBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+cGFyc2VGb3JQYXJhbWV0ZXI8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1ldGVyLAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcnNlU3RyaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3BhcnNlSGVhZGVyVmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnBhcnNlSGVhZGVyVmFsdWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7aGVhZGVyTGluZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZWFkKCkiPnJlYWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWFkcyBmcm9tIHRoZSBzdHJlYW0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3JlYWQoYnl0ZVtdKSI+cmVhZDwvQT48L0I+KGJ5dGVbXSZuYnNwO2J1ZmZlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZWFkKGJ5dGVbXSwgaW50LCBpbnQpIj5yZWFkPC9BPjwvQj4oYnl0ZVtdJm5ic3A7YnVmZmVyLAorICAgICBpbnQmbmJzcDtvZmZzZXQsCisgICAgIGludCZuYnNwO2xlbmd0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZWFkQ29udGVudERpc3Bvc2l0aW9uKCkiPnJlYWRDb250ZW50RGlzcG9zaXRpb248L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjcmVhZENvbnRlbnRUeXBlKCkiPnJlYWRDb250ZW50VHlwZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZWFkRWxlbWVudEhlYWRlcnMoKSI+cmVhZEVsZW1lbnRIZWFkZXJzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3JlYWRGaXJzdEVsZW1lbnQoKSI+cmVhZEZpcnN0RWxlbWVudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3JlYWRGcm9tTGluZSgpIj5yZWFkRnJvbUxpbmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjcmVhZExpbmUoKSI+cmVhZExpbmU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3Jlc2V0KCkiPnJlc2V0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVzZXRzIHRoZSB1bmRlcmx5aW5nIGlucHV0IHN0cmVhbS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjcmVzZXRDcmxmKCkiPnJlc2V0Q3JsZjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjcmVzZXRGb3JOZXh0Qm91bmRhcnkoKSI+cmVzZXRGb3JOZXh0Qm91bmRhcnk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldHMgdGhpcyBzdHJlYW0gZm9yIHVzZSB3aXRoIHRoZSBuZXh0IGVsZW1lbnQsIHRvIGJlIHVzZWQgYWZ0ZXIgYSBib3VuZGFyeSBpcyBlbmNvdW50ZXJlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjcmVzZXRMaW5lKCkiPnJlc2V0TGluZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNyZXNldFN0cmVhbSgpIj5yZXNldFN0cmVhbTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjc2V0Qm91bmRhcnkoamF2YS5sYW5nLlN0cmluZykiPnNldEJvdW5kYXJ5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2JvdW5kYXJ5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgYm91bmRhcnkgdGhhdCB0ZXJtaW5hdGVzIHRoZSBkYXRhIGZvciB0aGUgc3RyZWFtLCBhZnRlciBhZGRpbmcgdGhlIHByZWZpeCAiLS0iPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCNzZXRJbnB1dFN0cmVhbShqYXZhLmlvLklucHV0U3RyZWFtKSI+c2V0SW5wdXRTdHJlYW08L0E+PC9CPihqYXZhLmlvLklucHV0U3RyZWFtJm5ic3A7c3RyZWFtKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyB0aGUgaW5wdXQgc3RyZWFtIHVzZWQgdG8gcmVhZCBtdWx0aXBhcnQgZGF0YS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sI3NldExpbmVTaXplKGludCkiPnNldExpbmVTaXplPC9BPjwvQj4oaW50Jm5ic3A7c2l6ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjc2V0TWF4TGVuZ3RoKGxvbmcpIj5zZXRNYXhMZW5ndGg8L0E+PC9CPihsb25nJm5ic3A7bWF4TGVuZ3RoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBtYXhpbXVtIGxlbmd0aCBpbiBieXRlcyB0byByZWFkLCBvciAtMSBmb3IgYW4gdW5saW1pdGVkIGxlbmd0aC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjc2tpcEN1cnJlbnRMaW5lSWZCbGFuaygpIj5za2lwQ3VycmVudExpbmVJZkJsYW5rPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmlvLklucHV0U3RyZWFtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmlvLklucHV0U3RyZWFtPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+YXZhaWxhYmxlLCBjbG9zZSwgbWFya1N1cHBvcnRlZCwgc2tpcDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik5FV0xJTkVfQllURSI+PCEtLSAtLT48L0E+PEgzPgorTkVXTElORV9CWVRFPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBieXRlIDxCPk5FV0xJTkVfQllURTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLk5FV0xJTkVfQllURSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJDQVJSSUFHRV9SRVRVUk4iPjwhLS0gLS0+PC9BPjxIMz4KK0NBUlJJQUdFX1JFVFVSTjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZSA8Qj5DQVJSSUFHRV9SRVRVUk48L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5DQVJSSUFHRV9SRVRVUk4iPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQ1JMRiI+PCEtLSAtLT48L0E+PEgzPgorQ1JMRjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgYnl0ZVtdIDxCPkNSTEY8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRE9VQkxFX0RBU0hfU1RSSU5HIj48IS0tIC0tPjwvQT48SDM+CitET1VCTEVfREFTSF9TVFJJTkc8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+RE9VQkxFX0RBU0hfU1RSSU5HPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uRE9VQkxFX0RBU0hfU1RSSU5HIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkRFRkFVTFRfTElORV9TSVpFIj48IS0tIC0tPjwvQT48SDM+CitERUZBVUxUX0xJTkVfU0laRTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IDxCPkRFRkFVTFRfTElORV9TSVpFPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uREVGQVVMVF9MSU5FX1NJWkUiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iVE9LRU5fRVFVQUxTIj48IS0tIC0tPjwvQT48SDM+CitUT0tFTl9FUVVBTFM8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+VE9LRU5fRVFVQUxTPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uVE9LRU5fRVFVQUxTIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlRPS0VOX1FVT1RFIj48IS0tIC0tPjwvQT48SDM+CitUT0tFTl9RVU9URTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciA8Qj5UT0tFTl9RVU9URTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLlRPS0VOX1FVT1RFIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlRPS0VOX0NPTE9OIj48IS0tIC0tPjwvQT48SDM+CitUT0tFTl9DT0xPTjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2hhciA8Qj5UT0tFTl9DT0xPTjwvQj48L1BSRT4KKzxETD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLlRPS0VOX0NPTE9OIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlRPS0VOX1NFTUlfQ09MT04iPjwhLS0gLS0+PC9BPjxIMz4KK1RPS0VOX1NFTUlfQ09MT048L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXIgPEI+VE9LRU5fU0VNSV9DT0xPTjwvQj48L1BSRT4KKzxETD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLlRPS0VOX1NFTUlfQ09MT04iPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iVE9LRU5fU1BBQ0UiPjwhLS0gLS0+PC9BPjxIMz4KK1RPS0VOX1NQQUNFPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBjaGFyIDxCPlRPS0VOX1NQQUNFPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uVE9LRU5fU1BBQ0UiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iREVGQVVMVF9DT05URU5UX0RJU1BPU0lUSU9OIj48IS0tIC0tPjwvQT48SDM+CitERUZBVUxUX0NPTlRFTlRfRElTUE9TSVRJT048L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+REVGQVVMVF9DT05URU5UX0RJU1BPU0lUSU9OPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uREVGQVVMVF9DT05URU5UX0RJU1BPU0lUSU9OIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlBBUkFNRVRFUl9OQU1FIj48IS0tIC0tPjwvQT48SDM+CitQQVJBTUVURVJfTkFNRTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5QQVJBTUVURVJfTkFNRTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLlBBUkFNRVRFUl9OQU1FIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlBBUkFNRVRFUl9GSUxFTkFNRSI+PCEtLSAtLT48L0E+PEgzPgorUEFSQU1FVEVSX0ZJTEVOQU1FPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPlBBUkFNRVRFUl9GSUxFTkFNRTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLlBBUkFNRVRFUl9GSUxFTkFNRSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJQQVJBTUVURVJfQ0hBUlNFVCI+PCEtLSAtLT48L0E+PEgzPgorUEFSQU1FVEVSX0NIQVJTRVQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+UEFSQU1FVEVSX0NIQVJTRVQ8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5QQVJBTUVURVJfQ0hBUlNFVCI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJDT05URU5UX1RZUEVfVEVYVF9QTEFJTiI+PCEtLSAtLT48L0E+PEgzPgorQ09OVEVOVF9UWVBFX1RFWFRfUExBSU48L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+Q09OVEVOVF9UWVBFX1RFWFRfUExBSU48L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5DT05URU5UX1RZUEVfVEVYVF9QTEFJTiI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJDT05URU5UX1RZUEVfQVBQTElDQVRJT05fT0NURVRfU1RSRUFNIj48IS0tIC0tPjwvQT48SDM+CitDT05URU5UX1RZUEVfQVBQTElDQVRJT05fT0NURVRfU1RSRUFNPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkNPTlRFTlRfVFlQRV9BUFBMSUNBVElPTl9PQ1RFVF9TVFJFQU08L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5DT05URU5UX1RZUEVfQVBQTElDQVRJT05fT0NURVRfU1RSRUFNIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Ik1FU1NBR0VfSU5WQUxJRF9TVEFSVCI+PCEtLSAtLT48L0E+PEgzPgorTUVTU0FHRV9JTlZBTElEX1NUQVJUPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPk1FU1NBR0VfSU5WQUxJRF9TVEFSVDwvQj48L1BSRT4KKzxETD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLk1FU1NBR0VfSU5WQUxJRF9TVEFSVCI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbnB1dFN0cmVhbSI+PCEtLSAtLT48L0E+PEgzPgoraW5wdXRTdHJlYW08L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmlvLklucHV0U3RyZWFtIDxCPmlucHV0U3RyZWFtPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBJbnB1dFN0cmVhbSB0byByZWFkIGZyb20uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJib3VuZGFyeSI+PCEtLSAtLT48L0E+PEgzPgorYm91bmRhcnk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmJvdW5kYXJ5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib3VuZGFyeS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJvdW5kYXJ5RW5jb3VudGVyZWQiPjwhLS0gLS0+PC9BPjxIMz4KK2JvdW5kYXJ5RW5jb3VudGVyZWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmJvdW5kYXJ5RW5jb3VudGVyZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+V2hldGhlciBvciBub3QgdGhlIGJvdW5kYXJ5IGhhcyBiZWVuIGVuY291bnRlcmVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmluYWxCb3VuZGFyeUVuY291bnRlcmVkIj48IS0tIC0tPjwvQT48SDM+CitmaW5hbEJvdW5kYXJ5RW5jb3VudGVyZWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmZpbmFsQm91bmRhcnlFbmNvdW50ZXJlZDwvQj48L1BSRT4KKzxETD4KKzxERD5XaGV0aGVyIG9yIG5vdCB0aGUgZmluYWwgYm91bmRhcnkgaGFzIGJlZW4gZW5jb3VudGVyZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbmRPZlN0cmVhbSI+PCEtLSAtLT48L0E+PEgzPgorZW5kT2ZTdHJlYW08L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPmVuZE9mU3RyZWFtPC9CPjwvUFJFPgorPERMPgorPEREPldoZXRoZXIgb3Igbm90IHRoZSBlbmQgb2YgdGhlIHN0cmVhbSBoYXMgYmVlbiByZWFkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZWxlbWVudENvbnRlbnREaXNwb3NpdGlvbiI+PCEtLSAtLT48L0E+PEgzPgorZWxlbWVudENvbnRlbnREaXNwb3NpdGlvbjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+ZWxlbWVudENvbnRlbnREaXNwb3NpdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgQ29udGVudC1EaXNwb3NpdGlvbiBmb3IgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50IGJlaW5nIHJlYWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbGVtZW50TmFtZSI+PCEtLSAtLT48L0E+PEgzPgorZWxlbWVudE5hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmVsZW1lbnROYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGZvcm0gZWxlbWVudCBiZWluZyByZWFkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZWxlbWVudENvbnRlbnRUeXBlIj48IS0tIC0tPjwvQT48SDM+CitlbGVtZW50Q29udGVudFR5cGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmVsZW1lbnRDb250ZW50VHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgQ29udGVudC1UeXBlIG9mIHRoZSBjdXJyZW50IGZvcm0gZWxlbWVudCBiZWluZyByZWFkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZWxlbWVudEZpbGVOYW1lIj48IS0tIC0tPjwvQT48SDM+CitlbGVtZW50RmlsZU5hbWU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmVsZW1lbnRGaWxlTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZmlsZW5hbWUgb2YgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50IGJlaW5nIHJlYWQsIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSBjdXJyZW50IGZvcm0gZWxlbWVudCBpcworIHRleHQgZGF0YS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVsZW1lbnRDaGFyc2V0Ij48IS0tIC0tPjwvQT48SDM+CitlbGVtZW50Q2hhcnNldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+ZWxlbWVudENoYXJzZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiB0aGUgZWxlbWVudCwgc3BlY2lmaWVkIGluIHRoZSBlbGVtZW50J3MgQ29udGVudC1UeXBlIGhlYWRlci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1heExlbmd0aCI+PCEtLSAtLT48L0E+PEgzPgorbWF4TGVuZ3RoPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgbG9uZyA8Qj5tYXhMZW5ndGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1heGltdW0gbGVuZ3RoIGluIGJ5dGVzIHRvIHJlYWQgZnJvbSB0aGUgc3RyZWFtIGF0IGEgdGltZSwgb3IgLTEgZm9yIHVubGltaXRlZCBsZW5ndGguCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXhMZW5ndGhNZXQiPjwhLS0gLS0+PC9BPjxIMz4KK21heExlbmd0aE1ldDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+bWF4TGVuZ3RoTWV0PC9CPjwvUFJFPgorPERMPgorPEREPldoZXRoZXIgb3Igbm90IHRoZSBtYXhpbXVtIGxlbmd0aCBoYXMgYmVlbiBtZXQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJieXRlc1JlYWQiPjwhLS0gLS0+PC9BPjxIMz4KK2J5dGVzUmVhZDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGxvbmcgPEI+Ynl0ZXNSZWFkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgcmVhZCBzbyBmYXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJib3VuZGFyeUJ5dGVzIj48IS0tIC0tPjwvQT48SDM+Citib3VuZGFyeUJ5dGVzPC9IMz4KKzxQUkU+Citwcml2YXRlIGJ5dGVbXSA8Qj5ib3VuZGFyeUJ5dGVzPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbmFsQm91bmRhcnlCeXRlcyI+PCEtLSAtLT48L0E+PEgzPgorZmluYWxCb3VuZGFyeUJ5dGVzPC9IMz4KKzxQUkU+Citwcml2YXRlIGJ5dGVbXSA8Qj5maW5hbEJvdW5kYXJ5Qnl0ZXM8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGluZSI+PCEtLSAtLT48L0E+PEgzPgorbGluZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBieXRlW10gPEI+bGluZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsaW5lU2l6ZSI+PCEtLSAtLT48L0E+PEgzPgorbGluZVNpemU8L0gzPgorPFBSRT4KK3ByaXZhdGUgaW50IDxCPmxpbmVTaXplPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxpbmVMZW5ndGgiPjwhLS0gLS0+PC9BPjxIMz4KK2xpbmVMZW5ndGg8L0gzPgorPFBSRT4KK3ByaXZhdGUgaW50IDxCPmxpbmVMZW5ndGg8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGluZUhhc05ld2xpbmUiPjwhLS0gLS0+PC9BPjxIMz4KK2xpbmVIYXNOZXdsaW5lPC9IMz4KKzxQUkU+Citwcml2YXRlIGJvb2xlYW4gPEI+bGluZUhhc05ld2xpbmU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGluZUhhc0NhcnJpYWdlIj48IS0tIC0tPjwvQT48SDM+CitsaW5lSGFzQ2FycmlhZ2U8L0gzPgorPFBSRT4KK3ByaXZhdGUgYm9vbGVhbiA8Qj5saW5lSGFzQ2FycmlhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibGluZUluZGV4Ij48IS0tIC0tPjwvQT48SDM+CitsaW5lSW5kZXg8L0gzPgorPFBSRT4KK3ByaXZhdGUgaW50IDxCPmxpbmVJbmRleDwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbSgpIj48IS0tIC0tPjwvQT48SDM+CitNdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ic2V0Qm91bmRhcnkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEJvdW5kYXJ5PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRCb3VuZGFyeTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2JvdW5kYXJ5KTwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIGJvdW5kYXJ5IHRoYXQgdGVybWluYXRlcyB0aGUgZGF0YSBmb3IgdGhlIHN0cmVhbSwgYWZ0ZXIgYWRkaW5nIHRoZSBwcmVmaXggIi0tIgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXNldEZvck5leHRCb3VuZGFyeSgpIj48IS0tIC0tPjwvQT48SDM+CityZXNldEZvck5leHRCb3VuZGFyeTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVzZXRGb3JOZXh0Qm91bmRhcnk8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXNldHMgdGhpcyBzdHJlYW0gZm9yIHVzZSB3aXRoIHRoZSBuZXh0IGVsZW1lbnQsIHRvIGJlIHVzZWQgYWZ0ZXIgYSBib3VuZGFyeSBpcyBlbmNvdW50ZXJlZC4KKzxQPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRJbnB1dFN0cmVhbShqYXZhLmlvLklucHV0U3RyZWFtKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0SW5wdXRTdHJlYW08L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldElucHV0U3RyZWFtPC9CPihqYXZhLmlvLklucHV0U3RyZWFtJm5ic3A7c3RyZWFtKQorICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlNldHMgdGhlIGlucHV0IHN0cmVhbSB1c2VkIHRvIHJlYWQgbXVsdGlwYXJ0IGRhdGEuIEZvciBlZmZpY2llbmN5IHB1cnBvc2VzLCBtYWtlIHN1cmUgdGhhdCB0aGUgc3RyZWFtCisgeW91IHNldCBvbiB0aGlzIGNsYXNzIGlzIGJ1ZmZlcmVkLiBUaGUgd2F5IHRoaXMgY2xhc3MgcmVhZHMgbGluZXMgaXMgdGhhdCBpdCBjb250aW51YWxseSBjYWxscyB0aGUgcmVhZCgpCisgbWV0aG9kIHVudGlsIGl0IHJlYWNoZXMgYSBuZXdsaW5lIGNoYXJhY3Rlci4gVGhhdCB3b3VsZCBiZSB0ZXJyaWJsZSBpZiB5b3Ugd2VyZSB0byBzZXQgYSBzb2NrZXQncyBpbnB1dCBzdHJlYW0KKyBoZXJlLCBidXQgbm90IGFzIGJhZCBvbiBhIGJ1ZmZlcmVkIHN0cmVhbS4KKzxQPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWFkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+cmVhZDwvQj4oKQorICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZWFkcyBmcm9tIHRoZSBzdHJlYW0uIFJldHVybnMgLTEgaWYgaXQncyB0aGUgZW5kIG9mIHRoZSBzdHJlYW0gb3IgaWYgYSBib3VuZGFyeSBpcyBlbmNvdW50ZXJlZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZWFkPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLklucHV0U3RyZWFtPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWFkKGJ5dGVbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+cmVhZDwvQj4oYnl0ZVtdJm5ic3A7YnVmZmVyKQorICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVhZDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVhZChieXRlW10sIGludCwgaW50KSI+PCEtLSAtLT48L0E+PEgzPgorcmVhZDwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5yZWFkPC9CPihieXRlW10mbmJzcDtidWZmZXIsCisgICAgICAgICAgICAgICAgaW50Jm5ic3A7b2Zmc2V0LAorICAgICAgICAgICAgICAgIGludCZuYnNwO2xlbmd0aCkKKyAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnJlYWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uSW5wdXRTdHJlYW08L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1hcmsoaW50KSI+PCEtLSAtLT48L0E+PEgzPgorbWFyazwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+bWFyazwvQj4oaW50Jm5ic3A7aSk8L1BSRT4KKzxETD4KKzxERD5NYXJrcyB0aGUgdW5kZXJseWluZyBzdHJlYW0uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+bWFyazwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5JbnB1dFN0cmVhbTwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlc2V0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK3Jlc2V0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yZXNldDwvQj4oKQorICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlc2V0cyB0aGUgdW5kZXJseWluZyBpbnB1dCBzdHJlYW0uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cmVzZXQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uSW5wdXRTdHJlYW08L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE1heExlbmd0aChsb25nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0TWF4TGVuZ3RoPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRNYXhMZW5ndGg8L0I+KGxvbmcmbmJzcDttYXhMZW5ndGgpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBtYXhpbXVtIGxlbmd0aCBpbiBieXRlcyB0byByZWFkLCBvciAtMSBmb3IgYW4gdW5saW1pdGVkIGxlbmd0aC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWF4TGVuZ3RoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1heExlbmd0aDwvSDM+Cis8UFJFPgorcHVibGljIGxvbmcgPEI+Z2V0TWF4TGVuZ3RoPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc01heExlbmd0aE1ldCgpIj48IS0tIC0tPjwvQT48SDM+Citpc01heExlbmd0aE1ldDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+aXNNYXhMZW5ndGhNZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5XaGV0aGVyIG9yIG5vdCB0aGUgbWF4aW11bSBsZW5ndGggaGFzIGJlZW4gbWV0LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRFbGVtZW50Q29udGVudERpc3Bvc2l0aW9uKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEVsZW1lbnRDb250ZW50RGlzcG9zaXRpb248L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEVsZW1lbnRDb250ZW50RGlzcG9zaXRpb248L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXRzIHRoZSB2YWx1ZSBmb3IgdGhlICJDb250ZW50LURpc3Bvc2l0aW8iIGhlYWRlciBmb3IgdGhlIGN1cnJlbnQgbXVsdGlwYXJ0IGVsZW1lbnQuCisgVXN1YWxseSAiZm9ybS1kYXRhIi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RWxlbWVudE5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RWxlbWVudE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEVsZW1lbnROYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0cyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBlbGVtZW50LiBUaGUgbmFtZSBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgb2YKKyB0aGUgIm5hbWUiIGF0dHJpYnV0ZSBvZiB0aGUgZm9ybSBlbGVtZW50LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRFbGVtZW50Q2hhcnNldCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFbGVtZW50Q2hhcnNldDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RWxlbWVudENoYXJzZXQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXRzIHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC4gVGhlIGNoYXJhY3RlciBlbmNvZGluZyB3b3VsZCBoYXZlIGJlZW4gc3BlY2lmaWVkCisgaW4gdGhlIENvbnRlbnQtVHlwZSBoZWFkZXIgZm9yIHRoaXMgZWxlbWVudCwgaWYgaXQgd2Fzbid0IHRoaXMgaXMgbnVsbC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RWxlbWVudENvbnRlbnRUeXBlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEVsZW1lbnRDb250ZW50VHlwZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RWxlbWVudENvbnRlbnRUeXBlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0cyB0aGUgIkNvbnRlbnQtVHlwZSIgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC4gSWYgdGhpcyBpcyBhIHRleHQgZWxlbWVudCwKKyB0aGUgY29udGVudCB0eXBlIHdpbGwgcHJvYmFibHkgYmUgInRleHQvcGxhaW4iLCBvdGhlcndpc2UgaXQgd2lsbCBiZSB0aGUKKyBjb250ZW50IHR5cGUgb2YgdGhlIGZpbGUgZWxlbWVudC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RWxlbWVudEZpbGVOYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEVsZW1lbnRGaWxlTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RWxlbWVudEZpbGVOYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0cyB0aGUgZmlsZW5hbWUgb2YgdGhlIGN1cnJlbnQgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBudWxsIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQKKyBpc24ndCBhIGZpbGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzRWxlbWVudEZpbGUoKSI+PCEtLSAtLT48L0E+PEgzPgoraXNFbGVtZW50RmlsZTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+aXNFbGVtZW50RmlsZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldHMgd2hldGhlciBvciBub3QgdGhlIGN1cnJlbnQgZm9ybSBlbGVtZW50IGJlaW5nIHJlYWQgaXMgYSBmaWxlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc0JvdW5kYXJ5RW5jb3VudGVyZWQoKSI+PCEtLSAtLT48L0E+PEgzPgoraXNCb3VuZGFyeUVuY291bnRlcmVkPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc0JvdW5kYXJ5RW5jb3VudGVyZWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBib3VuZGFyeSBoYXMgYmVlbiBlbmNvdW50ZXJlZCB3aGlsZSByZWFkaW5nIGRhdGEuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzRmluYWxCb3VuZGFyeUVuY291bnRlcmVkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzRmluYWxCb3VuZGFyeUVuY291bnRlcmVkPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc0ZpbmFsQm91bmRhcnlFbmNvdW50ZXJlZDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgd2hldGhlciBvciBub3QgdGhlIGZpbmFsIGJvdW5kYXJ5IGhhcyBiZWVuIGVuY291bnRlcmVkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc0VuZE9mU3RyZWFtKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzRW5kT2ZTdHJlYW08L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzRW5kT2ZTdHJlYW08L0I+KCk8L1BSRT4KKzxETD4KKzxERD5XaGV0aGVyIG9yIG5vdCBhbiBFT0YgaGFzIGJlZW4gcmVhZCBvbiB0aGUgc3RyZWFtLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRMaW5lU2l6ZShpbnQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRMaW5lU2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TGluZVNpemU8L0I+KGludCZuYnNwO3NpemUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRCeXRlc1JlYWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Qnl0ZXNSZWFkPC9IMz4KKzxQUkU+CitwdWJsaWMgbG9uZyA8Qj5nZXRCeXRlc1JlYWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWRGaXJzdEVsZW1lbnQoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVhZEZpcnN0RWxlbWVudDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCB2b2lkIDxCPnJlYWRGaXJzdEVsZW1lbnQ8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVhZEVsZW1lbnRIZWFkZXJzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWRFbGVtZW50SGVhZGVyczwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCB2b2lkIDxCPnJlYWRFbGVtZW50SGVhZGVyczwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWRDb250ZW50RGlzcG9zaXRpb24oKSI+PCEtLSAtLT48L0E+PEgzPgorcmVhZENvbnRlbnREaXNwb3NpdGlvbjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCB2b2lkIDxCPnJlYWRDb250ZW50RGlzcG9zaXRpb248L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2hlY2tBbmRGaXhGaWxlbmFtZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorY2hlY2tBbmRGaXhGaWxlbmFtZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPmNoZWNrQW5kRml4RmlsZW5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlbmFtZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhcnNlRm9yUGFyYW1ldGVyKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitwYXJzZUZvclBhcmFtZXRlcjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcnNlRm9yUGFyYW1ldGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1ldGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJzZVN0cmluZyk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWRDb250ZW50VHlwZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWFkQ29udGVudFR5cGU8L0gzPgorPFBSRT4KK3ByaXZhdGUgZmluYWwgYm9vbGVhbiA8Qj5yZWFkQ29udGVudFR5cGU8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwYXJzZUhlYWRlclZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitwYXJzZUhlYWRlclZhbHVlPC9IMz4KKzxQUkU+Citwcml2YXRlIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+cGFyc2VIZWFkZXJWYWx1ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2hlYWRlckxpbmUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJza2lwQ3VycmVudExpbmVJZkJsYW5rKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NraXBDdXJyZW50TGluZUlmQmxhbms8L0gzPgorPFBSRT4KK3ByaXZhdGUgZmluYWwgdm9pZCA8Qj5za2lwQ3VycmVudExpbmVJZkJsYW5rPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlc2V0Q3JsZigpIj48IS0tIC0tPjwvQT48SDM+CityZXNldENybGY8L0gzPgorPFBSRT4KK3ByaXZhdGUgZmluYWwgdm9pZCA8Qj5yZXNldENybGY8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlc2V0U3RyZWFtKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3Jlc2V0U3RyZWFtPC9IMz4KKzxQUkU+Citwcml2YXRlIGZpbmFsIHZvaWQgPEI+cmVzZXRTdHJlYW08L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWRMaW5lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWRMaW5lPC9IMz4KKzxQUkU+Citwcml2YXRlIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+cmVhZExpbmU8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWRGcm9tTGluZSgpIj48IS0tIC0tPjwvQT48SDM+CityZWFkRnJvbUxpbmU8L0gzPgorPFBSRT4KK3ByaXZhdGUgZmluYWwgaW50IDxCPnJlYWRGcm9tTGluZTwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYXZhaWxhYmxlSW5MaW5lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2F2YWlsYWJsZUluTGluZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCBpbnQgPEI+YXZhaWxhYmxlSW5MaW5lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaWxsTGluZSgpIj48IS0tIC0tPjwvQT48SDM+CitmaWxsTGluZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCB2b2lkIDxCPmZpbGxMaW5lPC9CPigpCisgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXNldExpbmUoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVzZXRMaW5lPC9IMz4KKzxQUkU+Citwcml2YXRlIGZpbmFsIHZvaWQgPEI+cmVzZXRMaW5lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaWxsTGluZUJ1ZmZlcigpIj48IS0tIC0tPjwvQT48SDM+CitmaWxsTGluZUJ1ZmZlcjwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCB2b2lkIDxCPmZpbGxMaW5lQnVmZmVyPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJieXRlUmVhZCgpIj48IS0tIC0tPjwvQT48SDM+CitieXRlUmVhZDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCB2b2lkIDxCPmJ5dGVSZWFkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjaGVja0ZvckJvdW5kYXJ5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NoZWNrRm9yQm91bmRhcnk8L0gzPgorPFBSRT4KK3ByaXZhdGUgZmluYWwgdm9pZCA8Qj5jaGVja0ZvckJvdW5kYXJ5PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlcXVhbHMoYnl0ZVtdLCBpbnQsIGludCwgYnl0ZVtdKSI+PCEtLSAtLT48L0E+PEgzPgorZXF1YWxzPC9IMz4KKzxQUkU+Citwcml2YXRlIGZpbmFsIGJvb2xlYW4gPEI+ZXF1YWxzPC9CPihieXRlW10mbmJzcDtjb21wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO2xlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdJm5ic3A7c291cmNlKTwvUFJFPgorPERMPgorPEREPkNoZWNrcyBieXRlcyBmb3IgZXF1YWxpdHkuICBUd28gYnl0ZSBhcnJheXMgYXJlIGVxdWFsIGlmIGVhY2ggb2YgdGhlaXIgZWxlbWVudHMgYXJlCisgdGhlIHNhbWUuICBUaGlzIG1ldGhvZCBjaGVja3MgY29tcFtvZmZzZXRdIHdpdGggc291cmNlWzBdIHRvIHNvdXJjZVtsZW5ndGgtMV0gd2l0aAorIGNvbXBbb2Zmc2V0ICsgbGVuZ3RoIC0gMV0KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29tcDwvQ09ERT4gLSBUaGUgYnl0ZSB0byBjb21wYXJlIHRvIDxjb2RlPnNvdXJjZTwvY29kZT48REQ+PENPREU+b2Zmc2V0PC9DT0RFPiAtIFRoZSBvZmZzZXQgdG8gc3RhcnQgYXQgaW4gPGNvZGU+Y29tcDwvY29kZT48REQ+PENPREU+bGVuZ3RoPC9DT0RFPiAtIFRoZSBsZW5ndGggb2YgPGNvZGU+Y29tcDwvY29kZT4gdG8gY29tcGFyZSB0bzxERD48Q09ERT5zb3VyY2U8L0NPREU+IC0gVGhlIHJlZmVyZW5jZSBieXRlIGFycmF5IHRvIHRlc3QgZm9yIGVxdWFsaXR5PC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE5MDRjZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sCkBAIC0wLDAgKzEsNzI2IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTXVsdGlwYXJ0RWxlbWVudCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEVsZW1lbnQsTXVsdGlwYXJ0RWxlbWVudCBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTXVsdGlwYXJ0RWxlbWVudCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRFbGVtZW50Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0ZPTlQ+Cis8QlI+CitDbGFzcyBNdWx0aXBhcnRFbGVtZW50PC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEVsZW1lbnQ8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TXVsdGlwYXJ0RWxlbWVudDwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4KKworPFA+CitUaGlzIGNsYXNzIHJlcHJlc2VudHMgYW4gZWxlbWVudCBpbiBhIG11bHRpcGFydCByZXF1ZXN0LgorIEl0IGhhcyBhIGZldyBtZXRob2RzIGZvciBkZXRlcm1pbmluZyAqIHdoZXRoZXIgb3Igbm90IHRoZSBlbGVtZW50IGlzIGEKKyBTdHJpbmcgb3IgYSBmaWxlLCBhbmQgbWV0aG9kcyB0byByZXRyaWV2ZSB0aGUgZGF0YSBvZiB0aGUgYWZvcmVtZW50aW9uZWQKKyBlbGVtZW50LiAgVGV4dCBpbnB1dCBlbGVtZW50cyBoYXZlIGEgPGNvZGU+bnVsbDwvY29kZT4gY29udGVudCB0eXBlLAorIGZpbGVzIGhhdmUgYSBub24tbnVsbCBjb250ZW50IHR5cGUuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+TWlrZSBTY2hhY2h0ZXI8L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNjb250ZW50VHlwZSI+Y29udGVudFR5cGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGNvbnRlbnQgdHlwZSBvZiB0aGlzIGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtieXRlW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNkYXRhIj5kYXRhPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlRoaXMgc2hvdWxkIG5ldmVyIGJlIHVzZWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5pby5GaWxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjZmlsZSI+ZmlsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZWxlbWVudCdzIGRhdGEgcmVwcmVzZW50ZWQgaW4gYSAocG9zc2libHkgdGVtcG9yYXJ5KSBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2ZpbGVOYW1lIj5maWxlTmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZWxlbWVudCdzIGZpbGVuYW1lLCBudWxsIGZvciB0ZXh0IGVsZW1lbnRzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2lzRmlsZSI+aXNGaWxlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1doZXRoZXIgb3Igbm90IHRoaXMgZWxlbWVudCBpcyBhIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjbmFtZSI+bmFtZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZWxlbWVudCBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI3ZhbHVlIj52YWx1ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZWxlbWVudCdzIHRleHQgdmFsdWUsIG51bGwgZm9yIGZpbGUgZWxlbWVudHM8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjTXVsdGlwYXJ0RWxlbWVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+TXVsdGlwYXJ0RWxlbWVudDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3RvciBmb3IgYSB0ZXh0IGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI011bHRpcGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgYnl0ZVtdKSI+TXVsdGlwYXJ0RWxlbWVudDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZmlsZU5hbWUsCisgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250ZW50VHlwZSwKKyAgICAgICAgICAgICAgICAgYnl0ZVtdJm5ic3A7ZGF0YSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSB0aGUgY29uc3RydWN0b3IgdGhhdCB0YWtlcyBhbiBGaWxlIGFzIGFuIGFyZ3VtZW50CisgICAgICAgICAgICAgYXMgb3Bwb3NlZCB0byBhIGJ5dGUgYXJyYXkgYXJndW1lbnQsIHdoaWNoIGNhbiBjYXVzZQorICAgICAgICAgICAgIG1lbW9yeSBwcm9ibGVtcy48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI011bHRpcGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5pby5GaWxlKSI+TXVsdGlwYXJ0RWxlbWVudDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZmlsZU5hbWUsCisgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250ZW50VHlwZSwKKyAgICAgICAgICAgICAgICAgamF2YS5pby5GaWxlJm5ic3A7ZmlsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdG9yIGZvciBhIGZpbGUgZWxlbWVudC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjZ2V0Q29udGVudFR5cGUoKSI+Z2V0Q29udGVudFR5cGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZSB0aGUgY29udGVudCB0eXBlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtieXRlW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNnZXREYXRhKCkiPmdldERhdGE8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIGdldEZpbGUgbWV0aG9kIHRvIGdldCBhIEZpbGUgcmVwcmVzZW50aW5nIHRoZQorICAgICAgICAgICAgIGRhdGEgZm9yIHRoaXMgZWxlbWVudDwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5pby5GaWxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjZ2V0RmlsZSgpIj5nZXRGaWxlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBGaWxlIHRoYXQgaG9sZHMgdGhlIGRhdGEgZm9yIHRoaXMgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2dldEZpbGVOYW1lKCkiPmdldEZpbGVOYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmUgdGhlIGZpbGVuYW1lLCBjYW4gcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+CisgZm9yIHRleHQgZWxlbWVudHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNnZXROYW1lKCkiPmdldE5hbWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZSB0aGUgbmFtZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2dldFZhbHVlKCkiPmdldFZhbHVlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgdmFsdWUgb2YgdGhpcyBtdWx0aXBhcnQgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI2lzRmlsZSgpIj5pc0ZpbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJcyB0aGlzIGVsZW1lbnQgYSBmaWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjc2V0Q29udGVudFR5cGUoamF2YS5sYW5nLlN0cmluZykiPnNldENvbnRlbnRUeXBlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbnRlbnRUeXBlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBjb250ZW50IHR5cGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCNzZXREYXRhKGJ5dGVbXSkiPnNldERhdGE8L0E+PC9CPihieXRlW10mbmJzcDtkYXRhKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSBzZXRGaWxlIG1ldGhvZCB0byBzZXQgdGhlIGZpbGUKKyAgICAgICAgICAgICB0aGF0IHJlcHJlc2VudHMgdGhlIGRhdGEgb2YgdGhpcyBlbGVtZW50PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjc2V0RmlsZShqYXZhLmlvLkZpbGUpIj5zZXRGaWxlPC9BPjwvQj4oamF2YS5pby5GaWxlJm5ic3A7ZmlsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgZmlsZSB0aGF0IHJlcHJlc2VudHMgdGhpcyBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjc2V0RmlsZU5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldEZpbGVOYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZpbGVOYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBmaWxlIG5hbWUgZm9yIHRoaXMgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sI3NldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPnNldE5hbWU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCB0aGUgbmFtZSBmb3IgdGhpcyBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwjc2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPnNldFZhbHVlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJjb250ZW50VHlwZSI+PCEtLSAtLT48L0E+PEgzPgorY29udGVudFR5cGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbnRlbnRUeXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZW50IHR5cGUgb2YgdGhpcyBlbGVtZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGF0YSI+PCEtLSAtLT48L0E+PEgzPgorZGF0YTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJ5dGVbXSA8Qj5kYXRhPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlRoaXMgc2hvdWxkIG5ldmVyIGJlIHVzZWQuPC9JPgorPFA+Cis8REQ+VGhlIGVsZW1lbnQgZGF0YS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZpbGUiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmlvLkZpbGUgPEI+ZmlsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZWxlbWVudCdzIGRhdGEgcmVwcmVzZW50ZWQgaW4gYSAocG9zc2libHkgdGVtcG9yYXJ5KSBmaWxlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmFtZSI+PCEtLSAtLT48L0E+PEgzPgorbmFtZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZWxlbWVudCBuYW1lLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmlsZU5hbWUiPjwhLS0gLS0+PC9BPjxIMz4KK2ZpbGVOYW1lPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5maWxlTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZWxlbWVudCdzIGZpbGVuYW1lLCBudWxsIGZvciB0ZXh0IGVsZW1lbnRzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsdWUiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZWxlbWVudCdzIHRleHQgdmFsdWUsIG51bGwgZm9yIGZpbGUgZWxlbWVudHMKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzRmlsZSI+PCEtLSAtLT48L0E+PEgzPgoraXNGaWxlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5pc0ZpbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+V2hldGhlciBvciBub3QgdGhpcyBlbGVtZW50IGlzIGEgZmlsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNdWx0aXBhcnRFbGVtZW50KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJ5dGVbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK011bHRpcGFydEVsZW1lbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NdWx0aXBhcnRFbGVtZW50PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtmaWxlTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb250ZW50VHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVbXSZuYnNwO2RhdGEpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSBjb25zdHJ1Y3RvciB0aGF0IHRha2VzIGFuIEZpbGUgYXMgYW4gYXJndW1lbnQKKyAgICAgICAgICAgICBhcyBvcHBvc2VkIHRvIGEgYnl0ZSBhcnJheSBhcmd1bWVudCwgd2hpY2ggY2FuIGNhdXNlCisgICAgICAgICAgICAgbWVtb3J5IHByb2JsZW1zLjwvST4KKzxQPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTXVsdGlwYXJ0RWxlbWVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmlvLkZpbGUpIj48IS0tIC0tPjwvQT48SDM+CitNdWx0aXBhcnRFbGVtZW50PC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TXVsdGlwYXJ0RWxlbWVudDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZmlsZU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udGVudFR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmlvLkZpbGUmbmJzcDtmaWxlKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdG9yIGZvciBhIGZpbGUgZWxlbWVudC4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIFRoZSBmb3JtIG5hbWUgb2YgdGhlIGVsZW1lbnQ8REQ+PENPREU+ZmlsZU5hbWU8L0NPREU+IC0gVGhlIGZpbGUgbmFtZSBvZiB0aGUgZWxlbWVudCBpZiB0aGlzIGVsZW1lbnQgaXMgYSBmaWxlPEREPjxDT0RFPmNvbnRlbnRUeXBlPC9DT0RFPiAtIFRoZSBjb250ZW50IHR5cGUgb2YgdGhlIGVsZW1lbnQgaWYgYSBmaWxlPEREPjxDT0RFPmZpbGU8L0NPREU+IC0gVGhlIChwb3NzaWJseSB0ZW1wb3JhcnkpIGZpbGUgcmVwcmVzZW50aW5nIHRoaXMgZWxlbWVudCBpZgorICAgICAgICAgICAgIGl0J3MgYSBmaWxlPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTXVsdGlwYXJ0RWxlbWVudChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorTXVsdGlwYXJ0RWxlbWVudDwvSDM+Cis8UFJFPgorcHVibGljIDxCPk11bHRpcGFydEVsZW1lbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdG9yIGZvciBhIHRleHQgZWxlbWVudC4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5uYW1lPC9DT0RFPiAtIFRoZSBuYW1lIG9mIHRoZSBlbGVtZW50PEREPjxDT0RFPnZhbHVlPC9DT0RFPiAtIFRoZSB2YWx1ZSBvZiB0aGUgZWxlbWVudDwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldENvbnRlbnRUeXBlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldENvbnRlbnRUeXBlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRDb250ZW50VHlwZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHJpZXZlIHRoZSBjb250ZW50IHR5cGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldERhdGEoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RGF0YTwvSDM+Cis8UFJFPgorcHVibGljIGJ5dGVbXSA8Qj5nZXREYXRhPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIHRoZSBnZXRGaWxlIG1ldGhvZCB0byBnZXQgYSBGaWxlIHJlcHJlc2VudGluZyB0aGUKKyAgICAgICAgICAgICBkYXRhIGZvciB0aGlzIGVsZW1lbnQ8L0k+Cis8UD4KKzxERD5SZXRyaWV2ZSB0aGUgZGF0YS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmlsZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGaWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5pby5GaWxlIDxCPmdldEZpbGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIEZpbGUgdGhhdCBob2xkcyB0aGUgZGF0YSBmb3IgdGhpcyBlbGVtZW50LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROYW1lKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE5hbWU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXRyaWV2ZSB0aGUgbmFtZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmlsZU5hbWUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmlsZU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEZpbGVOYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0cmlldmUgdGhlIGZpbGVuYW1lLCBjYW4gcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+CisgZm9yIHRleHQgZWxlbWVudHMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIHZhbHVlIG9mIHRoaXMgbXVsdGlwYXJ0IGVsZW1lbnQuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSBTdHJpbmcgaWYgdGhlIGVsZW1lbnQgaXMgYSB0ZXh0IGVsZW1lbnQsIDxjb2RlPm51bGw8L2NvZGU+CisgICAgICAgICBvdGhlcndpc2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEZpbGUoamF2YS5pby5GaWxlKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RmlsZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RmlsZTwvQj4oamF2YS5pby5GaWxlJm5ic3A7ZmlsZSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGZpbGUgdGhhdCByZXByZXNlbnRzIHRoaXMgZWxlbWVudC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RmlsZU5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldEZpbGVOYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRGaWxlTmFtZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZpbGVOYW1lKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgZmlsZSBuYW1lIGZvciB0aGlzIGVsZW1lbnQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE5hbWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgbmFtZSBmb3IgdGhpcyBlbGVtZW50LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRDb250ZW50VHlwZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0Q29udGVudFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldENvbnRlbnRUeXBlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29udGVudFR5cGUpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBjb250ZW50IHR5cGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzRmlsZSgpIj48IS0tIC0tPjwvQT48SDM+Citpc0ZpbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzRmlsZTwvQj4oKTwvUFJFPgorPERMPgorPEREPklzIHRoaXMgZWxlbWVudCBhIGZpbGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRWYWx1ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VmFsdWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldERhdGEoYnl0ZVtdKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0RGF0YTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RGF0YTwvQj4oYnl0ZVtdJm5ic3A7ZGF0YSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgdGhlIHNldEZpbGUgbWV0aG9kIHRvIHNldCB0aGUgZmlsZQorICAgICAgICAgICAgIHRoYXQgcmVwcmVzZW50cyB0aGUgZGF0YSBvZiB0aGlzIGVsZW1lbnQ8L0k+Cis8UD4KKzxERD5TZXQgdGhlIGRhdGEuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL011bHRpcGFydEVsZW1lbnQuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik11bHRpcGFydEVsZW1lbnQuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGZmMWU1MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbApAQCAtMCwwICsxLDk2MCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OSBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK011bHRpcGFydEl0ZXJhdG9yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0SXRlcmF0b3IsTXVsdGlwYXJ0SXRlcmF0b3IgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik11bHRpcGFydEl0ZXJhdG9yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRJdGVyYXRvci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9GT05UPgorPEJSPgorQ2xhc3MgTXVsdGlwYXJ0SXRlcmF0b3I8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0SXRlcmF0b3I8L0I+Cis8L1BSRT4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TXVsdGlwYXJ0SXRlcmF0b3I8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDwvREw+CisKKzxQPgorVGhlIE11bHRpcGFydEl0ZXJhdG9yIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciByZWFkaW5nIHRoZQorIGlucHV0IGRhdGEgb2YgYSBtdWx0aXBhcnQgcmVxdWVzdCBhbmQgc3BsaXR0aW5nIGl0IHVwIGludG8KKyBpbnB1dCBlbGVtZW50cywgd3JhcHBlZCBpbnNpZGUgb2YgYQorIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPjxDT0RFPk11bHRpcGFydEVsZW1lbnQ8L0NPREU+PC9BPgorIGZvciBlYXN5IGRlZmluaXRpb24uICBUbyB1c2UgdGhpcyBjbGFzcywgY3JlYXRlIGEgbmV3IGluc3RhbmNlCisgb2YgTXVsdGlwYXJ0SXRlcmF0b3IgcGFzc2luZyBpdCBhIEh0dHBTZXJ2bGV0UmVxdWVzdCBpbiB0aGUKKyBjb25zdHJ1Y3Rvci4gIFRoZW4gdXNlIHRoZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNnZXROZXh0RWxlbWVudCgpIj48Q09ERT5nZXROZXh0RWxlbWVudDwvQ09ERT48L0E+CisgbWV0aG9kIHVudGlsIGl0IHJldHVybnMgbnVsbCwgdGhlbiB5b3UncmUgZmluaXNoZWQuICBFeGFtcGxlOiA8YnI+CisgPHByZT4KKyAgICAgIE11bHRpcGFydEl0ZXJhdG9yIGl0ZXJhdG9yID0gbmV3IE11bHRpcGFydEl0ZXJhdG9yKHJlcXVlc3QpOworICAgICAgTXVsdGlwYXJ0RWxlbWVudCBlbGVtZW50OworCisgICAgICB3aGlsZSAoKGVsZW1lbnQgPSBpdGVyYXRvci5nZXROZXh0RWxlbWVudCgpKSAhPSBudWxsKSB7CisgICAgICAgICAgIC8vZG8gc29tZXRoaW5nIHdpdGggZWxlbWVudAorICAgICAgfQorIDwvcHJlPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPk1pa2UgU2NoYWNodGVyPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPjxDT0RFPk11bHRpcGFydEVsZW1lbnQ8L0NPREU+PC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2JvdW5kYXJ5Ij5ib3VuZGFyeTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYm91bmRhcnkgZm9yIHRoaXMgbXVsdGlwYXJ0IHJlcXVlc3Q8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNidWZmZXJTaXplIj5idWZmZXJTaXplPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBhbW91bnQgb2YgZGF0YSByZWFkIGZyb20gYSByZXF1ZXN0IGF0IGEgdGltZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNjb250ZW50TGVuZ3RoIj5jb250ZW50TGVuZ3RoPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250ZW50IGxlbmd0aCBvZiB0aGlzIHJlcXVlc3Q8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjY29udGVudFR5cGUiPmNvbnRlbnRUeXBlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250ZW50LXR5cGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNERUZBVUxUX0VOQ09ESU5HIj5ERUZBVUxUX0VOQ09ESU5HPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWZhdWx0IGVuY29kaW5nIG9mIGEgdGV4dCBlbGVtZW50IGlmIG5vbmUgaXMgc3BlY2lmaWVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2Rpc2tCdWZmZXJTaXplIj5kaXNrQnVmZmVyU2l6ZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2l6ZSBpbiBieXRlcyB3cml0dGVuIHRvIHRoZSBmaWxlc3lzdGVtIGF0IGEgdGltZSBbMjBLXTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjRklMRV9QUkVGSVgiPkZJTEVfUFJFRklYPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI0hFQURFUl9DT05URU5UX0RJU1BPU0lUSU9OIj5IRUFERVJfQ09OVEVOVF9ESVNQT1NJVElPTjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgQ29udGVudC1EaXNwb3NpdGlvbiBoZWFkZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjSEVBREVSX0NPTlRFTlRfVFlQRSI+SEVBREVSX0NPTlRFTlRfVFlQRTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbmFtZSBvZiB0aGUgQ29udGVudC1UeXBlIGhlYWRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2lucHV0U3RyZWFtIj5pbnB1dFN0cmVhbTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSW5wdXRTdHJlYW0gdG8gdXNlIHRvIHJlYWQgdGhlIG11bHRpcGFydCBkYXRhLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNtYXhMZW5ndGhFeGNlZWRlZCI+bWF4TGVuZ3RoRXhjZWVkZWQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V2hldGhlciB0aGUgbWF4aW11bSBsZW5ndGggaGFzIGJlZW4gZXhjZWVkZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtsb25nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI21heFNpemUiPm1heFNpemU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1heGltdW0gZmlsZSBzaXplIGluIGJ5dGVzIGFsbG93ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjTUVTU0FHRV9DQU5OT1RfUkVUUklFVkVfQk9VTkRBUlkiPk1FU1NBR0VfQ0FOTk9UX1JFVFJJRVZFX0JPVU5EQVJZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBleGNlcHRpb24gbWVzc2FnZSBmb3Igd2hlbiB0aGUgYm91bmRhcnkgb2YgYSBtdWx0aXBhcnQgcmVxdWVzdCBjYW4ndCBiZSBkZXRlcm1pbmVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjUEFSQU1FVEVSX0JPVU5EQVJZIj5QQVJBTUVURVJfQk9VTkRBUlk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI3JlcXVlc3QiPnJlcXVlc3Q8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlcXVlc3QgaW5zdGFuY2UgZm9yIHRoaXMgY2xhc3M8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjdGVtcERpciI+dGVtcERpcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byBzdG9yZSBmaWxlczwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNURVhUX0JVRkZFUl9TSVpFIj5URVhUX0JVRkZFUl9TSVpFPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzaXplIGluIGJ5dGVzIHRvIGNvcHkgb2YgdGV4dCBkYXRhIGF0IGEgdGltZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI011bHRpcGFydEl0ZXJhdG9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5NdWx0aXBhcnRJdGVyYXRvcjwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0cyBhIE11bHRpcGFydEl0ZXJhdG9yIHdpdGggYSBkZWZhdWx0IGJ1ZmZlciBzaXplIGFuZCBubyBmaWxlIHNpemUKKyBsaW1pdDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjTXVsdGlwYXJ0SXRlcmF0b3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgaW50KSI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgIGludCZuYnNwO2J1ZmZlclNpemUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3RzIGEgTXVsdGlwYXJ0SXRlcmF0b3Igd2l0aCB0aGUgc3BlY2lmaWVkIGJ1ZmZlciBzaXplIGFuZAorIG5vIGZpbGUgc2l6ZSBsaW1pdDwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjTXVsdGlwYXJ0SXRlcmF0b3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgaW50LCBsb25nKSI+TXVsdGlwYXJ0SXRlcmF0b3I8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgIGludCZuYnNwO2J1ZmZlclNpemUsCisgICAgICAgICAgICAgICAgICBsb25nJm5ic3A7bWF4U2l6ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdHMgYSBNdWx0aXBhcnRJdGVyYXRvciB3aXRoIHRoZSBzcGVjaWZpZWQgYnVmZmVyIHNpemUgYW5kCisgdGhlIHNwZWNpZmllZCBmaWxlIHNpemUgbGltaXQgaW4gYnl0ZXM8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI011bHRpcGFydEl0ZXJhdG9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGludCwgbG9uZywgamF2YS5sYW5nLlN0cmluZykiPk11bHRpcGFydEl0ZXJhdG9yPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtidWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgbG9uZyZuYnNwO21heFNpemUsCisgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGVtcERpcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNjcmVhdGVGaWxlTXVsdGlwYXJ0RWxlbWVudCgpIj5jcmVhdGVGaWxlTXVsdGlwYXJ0RWxlbWVudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhIG11bHRpcGFydCBlbGVtZW50IGluc3RhbmNlIHJlcHJlc2VudGluZyB0aGUgZmlsZSBpbiB0aGUgc3RyZWFtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5pby5GaWxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2NyZWF0ZUxvY2FsRmlsZSgpIj5jcmVhdGVMb2NhbEZpbGU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGVzIGEgZmlsZSBvbiBkaXNrIGZyb20gdGhlIGN1cnJlbnQgbXVsaXRwYXJ0IGVsZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNjcmVhdGVUZXh0TXVsdGlwYXJ0RWxlbWVudChqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlVGV4dE11bHRpcGFydEVsZW1lbnQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZW5jb2RpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYSB0ZXh0IGVsZW1lbnQgZnJvbSB0aGUgZGF0YSBpbiB0aGUgYm9keSBvZiB0aGUgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2dldEJvdW5kYXJ5RnJvbUNvbnRlbnRUeXBlKCkiPmdldEJvdW5kYXJ5RnJvbUNvbnRlbnRUeXBlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UGFyc2VzIGEgY29udGVudC10eXBlIFN0cmluZyBmb3IgdGhlIGJvdW5kYXJ5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjZ2V0QnVmZmVyU2l6ZSgpIj5nZXRCdWZmZXJTaXplPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBtYXhpbXVtIGFtb3VudCBvZiBieXRlcyByZWFkIGZyb20gYSBsaW5lIGF0IG9uZSB0aW1lPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNnZXRDb250ZW50VHlwZU9mUmVxdWVzdCgpIj5nZXRDb250ZW50VHlwZU9mUmVxdWVzdDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHMgdGhlIHZhbHVlIG9mIHRoZSBDb250ZW50LVR5cGUgaGVhZGVyIG9mIHRoZSByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNnZXRFbGVtZW50RW5jb2RpbmcoKSI+Z2V0RWxlbWVudEVuY29kaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBjaGFyYWN0ZXIgZW5jb2RpbmcgdXNlZCBmb3IgdGhpcyBjdXJyZW50IG11bHRpcGFydCBlbGVtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtsb25nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2dldE1heFNpemUoKSI+Z2V0TWF4U2l6ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCB0aGUgbWF4aW11bSBwb3N0IGRhdGEgc2l6ZSBhbGxvd2VkIGZvciBhIG11bHRpcGFydCByZXF1ZXN0PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI2dldE5leHRFbGVtZW50KCkiPmdldE5leHRFbGVtZW50PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmVzIHRoZSBuZXh0IGVsZW1lbnQgaW4gdGhlIGl0ZXJhdG9yIGlmIG9uZSBleGlzdHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjaXNNYXhMZW5ndGhFeGNlZWRlZCgpIj5pc01heExlbmd0aEV4Y2VlZGVkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V2hldGhlciBvciBub3QgdGhlIG1heGltdW0gbGVuZ3RoIGhhcyBiZWVuIGV4Y2VlZGVkIGJ5IHRoZSBjbGllbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sI3BhcnNlUmVxdWVzdCgpIj5wYXJzZVJlcXVlc3Q8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtIYW5kbGVzIHJldHJpZXZpbmcgdGhlIGJvdW5kYXJ5IGFuZCBzZXR0aW5nIHRoZSBpbnB1dCBzdHJlYW08L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNzZXRCdWZmZXJTaXplKGludCkiPnNldEJ1ZmZlclNpemU8L0E+PC9CPihpbnQmbmJzcDtidWZmZXJTaXplKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBtYXhpbXVtIGFtb3VudCBvZiBieXRlcyByZWFkIGZyb20gYSBsaW5lIGF0IG9uZSB0aW1lPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjc2V0TWF4U2l6ZShsb25nKSI+c2V0TWF4U2l6ZTwvQT48L0I+KGxvbmcmbmJzcDttYXhTaXplKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBtYXhpbXVtIHBvc3QgZGF0YSBzaXplIGFsbG93ZWQgZm9yIGEgbXVsdGlwYXJ0IHJlcXVlc3Q8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkRFRkFVTFRfRU5DT0RJTkciPjwhLS0gLS0+PC9BPjxIMz4KK0RFRkFVTFRfRU5DT0RJTkc8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+REVGQVVMVF9FTkNPRElORzwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCBlbmNvZGluZyBvZiBhIHRleHQgZWxlbWVudCBpZiBub25lIGlzIHNwZWNpZmllZC4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEl0ZXJhdG9yLkRFRkFVTFRfRU5DT0RJTkciPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iVEVYVF9CVUZGRVJfU0laRSI+PCEtLSAtLT48L0E+PEgzPgorVEVYVF9CVUZGRVJfU0laRTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IDxCPlRFWFRfQlVGRkVSX1NJWkU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpemUgaW4gYnl0ZXMgdG8gY29weSBvZiB0ZXh0IGRhdGEgYXQgYSB0aW1lLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0SXRlcmF0b3IuVEVYVF9CVUZGRVJfU0laRSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJIRUFERVJfQ09OVEVOVF9UWVBFIj48IS0tIC0tPjwvQT48SDM+CitIRUFERVJfQ09OVEVOVF9UWVBFPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPEI+SEVBREVSX0NPTlRFTlRfVFlQRTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgQ29udGVudC1UeXBlIGhlYWRlci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkhFQURFUl9DT05URU5UX0RJU1BPU0lUSU9OIj48IS0tIC0tPjwvQT48SDM+CitIRUFERVJfQ09OVEVOVF9ESVNQT1NJVElPTjwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkhFQURFUl9DT05URU5UX0RJU1BPU0lUSU9OPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBDb250ZW50LURpc3Bvc2l0aW9uIGhlYWRlci4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEl0ZXJhdG9yLkhFQURFUl9DT05URU5UX0RJU1BPU0lUSU9OIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Ik1FU1NBR0VfQ0FOTk9UX1JFVFJJRVZFX0JPVU5EQVJZIj48IS0tIC0tPjwvQT48SDM+CitNRVNTQUdFX0NBTk5PVF9SRVRSSUVWRV9CT1VOREFSWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPk1FU1NBR0VfQ0FOTk9UX1JFVFJJRVZFX0JPVU5EQVJZPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBleGNlcHRpb24gbWVzc2FnZSBmb3Igd2hlbiB0aGUgYm91bmRhcnkgb2YgYSBtdWx0aXBhcnQgcmVxdWVzdCBjYW4ndCBiZSBkZXRlcm1pbmVkLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0SXRlcmF0b3IuTUVTU0FHRV9DQU5OT1RfUkVUUklFVkVfQk9VTkRBUlkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iUEFSQU1FVEVSX0JPVU5EQVJZIj48IS0tIC0tPjwvQT48SDM+CitQQVJBTUVURVJfQk9VTkRBUlk8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+UEFSQU1FVEVSX0JPVU5EQVJZPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEl0ZXJhdG9yLlBBUkFNRVRFUl9CT1VOREFSWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJGSUxFX1BSRUZJWCI+PCEtLSAtLT48L0E+PEgzPgorRklMRV9QUkVGSVg8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+RklMRV9QUkVGSVg8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0SXRlcmF0b3IuRklMRV9QUkVGSVgiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVxdWVzdCI+PCEtLSAtLT48L0E+PEgzPgorcmVxdWVzdDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QgPEI+cmVxdWVzdDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVxdWVzdCBpbnN0YW5jZSBmb3IgdGhpcyBjbGFzcworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5wdXRTdHJlYW0iPjwhLS0gLS0+PC9BPjxIMz4KK2lucHV0U3RyZWFtPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4gPEI+aW5wdXRTdHJlYW08L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIElucHV0U3RyZWFtIHRvIHVzZSB0byByZWFkIHRoZSBtdWx0aXBhcnQgZGF0YS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJvdW5kYXJ5Ij48IS0tIC0tPjwvQT48SDM+Citib3VuZGFyeTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Ym91bmRhcnk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvdW5kYXJ5IGZvciB0aGlzIG11bHRpcGFydCByZXF1ZXN0Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXhTaXplIj48IS0tIC0tPjwvQT48SDM+CittYXhTaXplPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgbG9uZyA8Qj5tYXhTaXplPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtYXhpbXVtIGZpbGUgc2l6ZSBpbiBieXRlcyBhbGxvd2VkLiBJZ25vcmVkIGlmIC0xCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb250ZW50TGVuZ3RoIj48IS0tIC0tPjwvQT48SDM+Citjb250ZW50TGVuZ3RoPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPmNvbnRlbnRMZW5ndGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRlbnQgbGVuZ3RoIG9mIHRoaXMgcmVxdWVzdAorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGlza0J1ZmZlclNpemUiPjwhLS0gLS0+PC9BPjxIMz4KK2Rpc2tCdWZmZXJTaXplPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPmRpc2tCdWZmZXJTaXplPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaXplIGluIGJ5dGVzIHdyaXR0ZW4gdG8gdGhlIGZpbGVzeXN0ZW0gYXQgYSB0aW1lIFsyMEtdCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJidWZmZXJTaXplIj48IS0tIC0tPjwvQT48SDM+CitidWZmZXJTaXplPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgaW50IDxCPmJ1ZmZlclNpemU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFtb3VudCBvZiBkYXRhIHJlYWQgZnJvbSBhIHJlcXVlc3QgYXQgYSB0aW1lLgorIFRoaXMgYWxzbyByZXByZXNlbnRzIHRoZSBtYXhpbXVtIHNpemUgaW4gYnl0ZXMgb2YKKyBhIGxpbmUgcmVhZCBmcm9tIHRoZSByZXF1ZXN0IFs0S0JdCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0ZW1wRGlyIj48IS0tIC0tPjwvQT48SDM+Cit0ZW1wRGlyPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj50ZW1wRGlyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRvIHN0b3JlIGZpbGVzCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb250ZW50VHlwZSI+PCEtLSAtLT48L0E+PEgzPgorY29udGVudFR5cGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbnRlbnRUeXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZW50LXR5cGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtYXhMZW5ndGhFeGNlZWRlZCI+PCEtLSAtLT48L0E+PEgzPgorbWF4TGVuZ3RoRXhjZWVkZWQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBib29sZWFuIDxCPm1heExlbmd0aEV4Y2VlZGVkPC9CPjwvUFJFPgorPERMPgorPEREPldoZXRoZXIgdGhlIG1heGltdW0gbGVuZ3RoIGhhcyBiZWVuIGV4Y2VlZGVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ik11bHRpcGFydEl0ZXJhdG9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitNdWx0aXBhcnRJdGVyYXRvcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPk11bHRpcGFydEl0ZXJhdG9yPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCkKKyAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0cyBhIE11bHRpcGFydEl0ZXJhdG9yIHdpdGggYSBkZWZhdWx0IGJ1ZmZlciBzaXplIGFuZCBubyBmaWxlIHNpemUKKyBsaW1pdAorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIG11bHRpcGFydCByZXF1ZXN0IHRvIGl0ZXJhdGU8L0RMPgorPEhSPgorCis8QSBOQU1FPSJNdWx0aXBhcnRJdGVyYXRvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBpbnQpIj48IS0tIC0tPjwvQT48SDM+CitNdWx0aXBhcnRJdGVyYXRvcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPk11bHRpcGFydEl0ZXJhdG9yPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtidWZmZXJTaXplKQorICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3RzIGEgTXVsdGlwYXJ0SXRlcmF0b3Igd2l0aCB0aGUgc3BlY2lmaWVkIGJ1ZmZlciBzaXplIGFuZAorIG5vIGZpbGUgc2l6ZSBsaW1pdAorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIG11bHRpcGFydCByZXF1ZXN0IHRvIGl0ZXJhdGU8REQ+PENPREU+YnVmZmVyU2l6ZTwvQ09ERT4gLSBUaGUgc2l6ZSBpbiBieXRlcyB0aGF0IHNob3VsZCBiZSByZWFkIGZyb20gdGhlIGlucHV0CisgICAgICAgICAgICAgICAgICAgc3RyZWFtIGF0IGEgdGltZXM8L0RMPgorPEhSPgorCis8QSBOQU1FPSJNdWx0aXBhcnRJdGVyYXRvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBpbnQsIGxvbmcpIj48IS0tIC0tPjwvQT48SDM+CitNdWx0aXBhcnRJdGVyYXRvcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPk11bHRpcGFydEl0ZXJhdG9yPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtidWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcmbmJzcDttYXhTaXplKQorICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3RzIGEgTXVsdGlwYXJ0SXRlcmF0b3Igd2l0aCB0aGUgc3BlY2lmaWVkIGJ1ZmZlciBzaXplIGFuZAorIHRoZSBzcGVjaWZpZWQgZmlsZSBzaXplIGxpbWl0IGluIGJ5dGVzCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgbXVsdGlwYXJ0IHJlcXVlc3QgdG8gaXRlcmF0ZTxERD48Q09ERT5idWZmZXJTaXplPC9DT0RFPiAtIFRoZSBzaXplIGluIGJ5dGVzIHRoYXQgc2hvdWxkIGJlIHJlYWQgZnJvbSB0aGUgaW5wdXQKKyAgICAgICAgICAgICAgICAgICBzdHJlYW0gYXQgYSB0aW1lczxERD48Q09ERT5tYXhTaXplPC9DT0RFPiAtIFRoZSBtYXhpbXVtIHNpemUgaW4gYnl0ZXMgYWxsb3dlZCBmb3IgYSBtdWx0aXBhcnQgZWxlbWVudCdzIGRhdGE8L0RMPgorPEhSPgorCis8QSBOQU1FPSJNdWx0aXBhcnRJdGVyYXRvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBpbnQsIGxvbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitNdWx0aXBhcnRJdGVyYXRvcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPk11bHRpcGFydEl0ZXJhdG9yPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtidWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcmbmJzcDttYXhTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt0ZW1wRGlyKQorICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InBhcnNlUmVxdWVzdCgpIj48IS0tIC0tPjwvQT48SDM+CitwYXJzZVJlcXVlc3Q8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPnBhcnNlUmVxdWVzdDwvQj4oKQorICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5IYW5kbGVzIHJldHJpZXZpbmcgdGhlIGJvdW5kYXJ5IGFuZCBzZXR0aW5nIHRoZSBpbnB1dCBzdHJlYW0KKzxQPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXROZXh0RWxlbWVudCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXROZXh0RWxlbWVudDwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+IDxCPmdldE5leHRFbGVtZW50PC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0cmlldmVzIHRoZSBuZXh0IGVsZW1lbnQgaW4gdGhlIGl0ZXJhdG9yIGlmIG9uZSBleGlzdHMuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+YSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Q09ERT5NdWx0aXBhcnRFbGVtZW50PC9DT0RFPjwvQT4KKyAgICAgICAgIHJlcHJlc2VudGluZyB0aGUgbmV4dCBlbGVtZW50IGluIHRoZSByZXF1ZXN0IGRhdGEKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIHBvc3Qgc2l6ZSBleGNlZWRzIHRoZSBtYXhpbXVtIGZpbGUgc2l6ZQorICAgICAgICAgcGFzc2VkIGluIHRoZSAzIGFyZ3VtZW50IGNvbnN0cnVjdG9yIG9yIGlmIHRoZSAiSVNPLTg4NTktMSIgZW5jb2RpbmcgaXNuJ3QgZm91bmQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEVsZW1lbnRFbmNvZGluZygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFbGVtZW50RW5jb2Rpbmc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEVsZW1lbnRFbmNvZGluZzwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHVzZWQgZm9yIHRoaXMgY3VycmVudCBtdWx0aXBhcnQgZWxlbWVudC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlVGV4dE11bHRpcGFydEVsZW1lbnQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2NyZWF0ZVRleHRNdWx0aXBhcnRFbGVtZW50PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4gPEI+Y3JlYXRlVGV4dE11bHRpcGFydEVsZW1lbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtlbmNvZGluZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgYSB0ZXh0IGVsZW1lbnQgZnJvbSB0aGUgZGF0YSBpbiB0aGUgYm9keSBvZiB0aGUgZWxlbWVudC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZW5jb2Rpbmc8L0NPREU+IC0gVGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiB0aGUgc3RyaW5nLgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjcmVhdGVGaWxlTXVsdGlwYXJ0RWxlbWVudCgpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVGaWxlTXVsdGlwYXJ0RWxlbWVudDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+IDxCPmNyZWF0ZUZpbGVNdWx0aXBhcnRFbGVtZW50PC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIGEgbXVsdGlwYXJ0IGVsZW1lbnQgaW5zdGFuY2UgcmVwcmVzZW50aW5nIHRoZSBmaWxlIGluIHRoZSBzdHJlYW0uCis8UD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0QnVmZmVyU2l6ZShpbnQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRCdWZmZXJTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRCdWZmZXJTaXplPC9CPihpbnQmbmJzcDtidWZmZXJTaXplKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgbWF4aW11bSBhbW91bnQgb2YgYnl0ZXMgcmVhZCBmcm9tIGEgbGluZSBhdCBvbmUgdGltZQorPFA+Cis8REQ+PERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PENPREU+U2VydmxldElucHV0U3RyZWFtLnJlYWRMaW5lKGJ5dGVbXSwgaW50LCBpbnQpPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QnVmZmVyU2l6ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRCdWZmZXJTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldEJ1ZmZlclNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIG1heGltdW0gYW1vdW50IG9mIGJ5dGVzIHJlYWQgZnJvbSBhIGxpbmUgYXQgb25lIHRpbWUKKzxQPgorPEREPjxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxDT0RFPlNlcnZsZXRJbnB1dFN0cmVhbS5yZWFkTGluZShieXRlW10sIGludCwgaW50KTwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldE1heFNpemUobG9uZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE1heFNpemU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE1heFNpemU8L0I+KGxvbmcmbmJzcDttYXhTaXplKTwvUFJFPgorPERMPgorPEREPlNldCB0aGUgbWF4aW11bSBwb3N0IGRhdGEgc2l6ZSBhbGxvd2VkIGZvciBhIG11bHRpcGFydCByZXF1ZXN0Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1heFNpemU8L0NPREU+IC0gVGhlIG1heGltdW0gcG9zdCBkYXRhIHNpemUgaW4gYnl0ZXMsIHNldCB0byA8Y29kZT4tMTwvY29kZT4KKyAgICAgICAgICAgICAgICBmb3Igbm8gbGltaXQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1heFNpemUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWF4U2l6ZTwvSDM+Cis8UFJFPgorcHVibGljIGxvbmcgPEI+Z2V0TWF4U2l6ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgbWF4aW11bSBwb3N0IGRhdGEgc2l6ZSBhbGxvd2VkIGZvciBhIG11bHRpcGFydCByZXF1ZXN0Cis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VGhlIG1heGltdW0gcG9zdCBkYXRhIHNpemUgaW4gYnl0ZXM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzTWF4TGVuZ3RoRXhjZWVkZWQoKSI+PCEtLSAtLT48L0E+PEgzPgoraXNNYXhMZW5ndGhFeGNlZWRlZDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+aXNNYXhMZW5ndGhFeGNlZWRlZDwvQj4oKTwvUFJFPgorPERMPgorPEREPldoZXRoZXIgb3Igbm90IHRoZSBtYXhpbXVtIGxlbmd0aCBoYXMgYmVlbiBleGNlZWRlZCBieSB0aGUgY2xpZW50LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRCb3VuZGFyeUZyb21Db250ZW50VHlwZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRCb3VuZGFyeUZyb21Db250ZW50VHlwZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCB2b2lkIDxCPmdldEJvdW5kYXJ5RnJvbUNvbnRlbnRUeXBlPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlBhcnNlcyBhIGNvbnRlbnQtdHlwZSBTdHJpbmcgZm9yIHRoZSBib3VuZGFyeS4KKzxQPgorPEREPjxETD4KKworPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRDb250ZW50VHlwZU9mUmVxdWVzdCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRDb250ZW50VHlwZU9mUmVxdWVzdDwvSDM+Cis8UFJFPgorcHJpdmF0ZSBmaW5hbCB2b2lkIDxCPmdldENvbnRlbnRUeXBlT2ZSZXF1ZXN0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0cyB0aGUgdmFsdWUgb2YgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXIgb2YgdGhlIHJlcXVlc3QuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNyZWF0ZUxvY2FsRmlsZSgpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVMb2NhbEZpbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLmlvLkZpbGUgPEI+Y3JlYXRlTG9jYWxGaWxlPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlcyBhIGZpbGUgb24gZGlzayBmcm9tIHRoZSBjdXJyZW50IG11bGl0cGFydCBlbGVtZW50LgorPFA+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRJdGVyYXRvci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzdkYTg2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sCkBAIC0wLDAgKzEsNDc1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcixNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciBpbnRlcmZhY2UiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik11bHRpcGFydFJlcXVlc3RIYW5kbGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvRk9OVD4KKzxCUj4KK0ludGVyZmFjZSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvSDI+Cis8REw+Cis8RFQ+PEI+QWxsIEtub3duIEltcGxlbWVudGluZyBDbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGludGVyZmFjZSA8Qj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj48L0RMPgorCis8UD4KK011bHRpcGFydFJlcXVlc3RIYW5kbGVyIHByb3ZpZGVzIGFuIHN0YW5kYXJkIGludGVyZmFjZSBmb3Igc3RydXRzIHRvCisgZGVhbCB3aXRoIGZpbGUgdXBsb2FkcyBmcm9tIGZvcm1zIHdpdGggZW5jdHlwZXMgb2YgIm11bHRpcGFydC9mb3JtLWRhdGEiLgorIFByb3ZpZGVycyBtdXN0IHByb3ZpZGUgYSBuby1hcmd1bWVudCBjb25zdHJ1Y3RvciBmb3IgaW5pdGlhbGl6YXRpb24uCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+TWlrZSBTY2hhY2h0ZXI8L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNBVFRSSUJVVEVfTUFYX0xFTkdUSF9FWENFRURFRCI+QVRUUklCVVRFX01BWF9MRU5HVEhfRVhDRUVERUQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBpcyB0aGUgU2VydmxldFJlcXVlc3QgYXR0cmlidXRlIHRoYXQgc2hvdWxkIGJlIHNldCB3aGVuIGEgbXVsdGlwYXJ0IHJlcXVlc3QgaXMgYmVpbmcgcmVhZAorIGFuZCB0aGUgbWF4aW11bSBsZW5ndGggaXMgZXhjZWVkZWQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZmluaXNoKCkiPmZpbmlzaDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB3aGVuIGEgc3VjY2Vzc2Z1bCBmb3JtIHBvc3QKKyBoYXMgYmVlbiBtYWRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuSGFzaHRhYmxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI2dldEFsbEVsZW1lbnRzKCkiPmdldEFsbEVsZW1lbnRzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgcmV0dXJucyBhbGwgZWxlbWVudHMgb2YgYSBtdWx0aXBhcnQgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLkhhc2h0YWJsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNnZXRGaWxlRWxlbWVudHMoKSI+Z2V0RmlsZUVsZW1lbnRzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgaXMgY2FsbGVkIG9uIHRvIHJldHJpZXZlIGFsbCB0aGUgRm9ybUZpbGUKKyBpbnB1dCBlbGVtZW50cyBvZiB0aGUgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0TWFwcGluZygpIj5nZXRNYXBwaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBBY3Rpb25NYXBwaW5nIGluc3RhbmNlIGZvciB0aGlzIHJlcXVlc3Q8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5IYXNodGFibGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjZ2V0VGV4dEVsZW1lbnRzKCkiPmdldFRleHRFbGVtZW50czwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0byByZXRyaWV2ZSBhbGwgdGhlIHRleHQKKyBpbnB1dCBlbGVtZW50cyBvZiB0aGUgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNoYW5kbGVSZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5oYW5kbGVSZXF1ZXN0PC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBZnRlciBjb25zdHJ1Y3RlZCwgdGhpcyBpcyB0aGUgZmlyc3QgbWV0aG9kIGNhbGxlZCBvbgorIGJ5IEFjdGlvblNlcnZsZXQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjcm9sbGJhY2soKSI+cm9sbGJhY2s8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gd2hlbiB0aGVyZSdzIHNvbWUgc29ydCBvZiBwcm9ibGVtCisgYW5kIHRoZSBmb3JtIHBvc3QgbmVlZHMgdG8gYmUgcm9sbGVkIGJhY2suPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjc2V0TWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPnNldE1hcHBpbmc8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb252aWVuaWVuY2UgbWV0aG9kIHRvIHNldCBhIHJlZmVyZW5jZSB0byBhIHdvcmtpbmcKKyBBY3Rpb25NYXBwaW5nIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4mbmJzcDtzZXJ2bGV0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udmllbmllbmNlIG1ldGhvZCB0byBzZXQgYSByZWZlcmVuY2UgdG8gYSB3b3JraW5nCisgQWN0aW9uU2VydmxldCBpbnN0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iQVRUUklCVVRFX01BWF9MRU5HVEhfRVhDRUVERUQiPjwhLS0gLS0+PC9BPjxIMz4KK0FUVFJJQlVURV9NQVhfTEVOR1RIX0VYQ0VFREVEPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+QVRUUklCVVRFX01BWF9MRU5HVEhfRVhDRUVERUQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhpcyBpcyB0aGUgU2VydmxldFJlcXVlc3QgYXR0cmlidXRlIHRoYXQgc2hvdWxkIGJlIHNldCB3aGVuIGEgbXVsdGlwYXJ0IHJlcXVlc3QgaXMgYmVpbmcgcmVhZAorIGFuZCB0aGUgbWF4aW11bSBsZW5ndGggaXMgZXhjZWVkZWQuIFRoZSB2YWx1ZSBpcyBhIEJvb2xlYW4uIElmIHRoZSBtYXhpbXVtIGxlbmd0aCBpc24ndCBleGNlZWRlZCwKKyB0aGlzIGF0dHJpYnV0ZSBzaG91bGRuJ3QgYmUgcHV0IGluIHRoZSBTZXJ2bGV0UmVxdWVzdC4gSXQncyB0aGUgam9iIG9mIHRoZSBpbXBsZW1lbnRhdGlvbiB0byBwdXQgdGhpcworIGF0dHJpYnV0ZSBpbiB0aGUgcmVxdWVzdCBpZiB0aGUgbWF4aW11bSBsZW5ndGggaXMgZXhjZWVkZWQ7IGluIHRoZSBoYW5kbGVSZXF1ZXN0KEh0dHBTZXJ2bGV0UmVxdWVzdCkgbWV0aG9kLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQVRUUklCVVRFX01BWF9MRU5HVEhfRVhDRUVERUQiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InNldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRTZXJ2bGV0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRTZXJ2bGV0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9QUkU+Cis8REw+Cis8REQ+Q29udmllbmllbmNlIG1ldGhvZCB0byBzZXQgYSByZWZlcmVuY2UgdG8gYSB3b3JraW5nCisgQWN0aW9uU2VydmxldCBpbnN0YW5jZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0TWFwcGluZyhvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldE1hcHBpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldE1hcHBpbmc8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZyk8L1BSRT4KKzxETD4KKzxERD5Db252aWVuaWVuY2UgbWV0aG9kIHRvIHNldCBhIHJlZmVyZW5jZSB0byBhIHdvcmtpbmcKKyBBY3Rpb25NYXBwaW5nIGluc3RhbmNlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTZXJ2bGV0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNlcnZsZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiA8Qj5nZXRTZXJ2bGV0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSBBY3Rpb25TZXJ2bGV0IGluc3RhbmNlCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1hcHBpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWFwcGluZzwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IDxCPmdldE1hcHBpbmc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIEFjdGlvbk1hcHBpbmcgaW5zdGFuY2UgZm9yIHRoaXMgcmVxdWVzdAorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJoYW5kbGVSZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitoYW5kbGVSZXF1ZXN0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5oYW5kbGVSZXF1ZXN0PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCkKKyAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+QWZ0ZXIgY29uc3RydWN0ZWQsIHRoaXMgaXMgdGhlIGZpcnN0IG1ldGhvZCBjYWxsZWQgb24KKyBieSBBY3Rpb25TZXJ2bGV0LiAgVXNlIHRoaXMgbWV0aG9kIGZvciBhbGwgeW91cgorIGRhdGEtcGFyc2luZyBvZiB0aGUgU2VydmxldElucHV0U3RyZWFtIGluIHRoZSByZXF1ZXN0Cis8UD4KKzxERD48REw+CisKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSB0aHJvd24gaWYgc29tZXRoaW5nIGdvZXMgd3Jvbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFRleHRFbGVtZW50cygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRUZXh0RWxlbWVudHM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuSGFzaHRhYmxlIDxCPmdldFRleHRFbGVtZW50czwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB0byByZXRyaWV2ZSBhbGwgdGhlIHRleHQKKyBpbnB1dCBlbGVtZW50cyBvZiB0aGUgcmVxdWVzdC4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5BIEhhc2h0YWJsZSB3aGVyZSB0aGUga2V5cyBhbmQgdmFsdWVzIGFyZSB0aGUgbmFtZXMgYW5kCisgIHZhbHVlcyBvZiB0aGUgcmVxdWVzdCBpbnB1dCBwYXJhbWV0ZXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGaWxlRWxlbWVudHMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmlsZUVsZW1lbnRzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj5nZXRGaWxlRWxlbWVudHM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gdG8gcmV0cmlldmUgYWxsIHRoZSBGb3JtRmlsZQorIGlucHV0IGVsZW1lbnRzIG9mIHRoZSByZXF1ZXN0LgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgSGFzaHRhYmxlIHdoZXJlIHRoZSBrZXlzIGFyZSB0aGUgaW5wdXQgbmFtZXMgb2YgdGhlCisgIGZpbGVzIGFuZCB0aGUgdmFsdWVzIGFyZSBGb3JtRmlsZSBvYmplY3RzPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPjxDT0RFPkZvcm1GaWxlPC9DT0RFPjwvQT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFsbEVsZW1lbnRzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFsbEVsZW1lbnRzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkhhc2h0YWJsZSA8Qj5nZXRBbGxFbGVtZW50czwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgYWxsIGVsZW1lbnRzIG9mIGEgbXVsdGlwYXJ0IHJlcXVlc3QuCis8UD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSBIYXNodGFibGUgd2hlcmUgdGhlIGtleXMgYXJlIGlucHV0IG5hbWVzIGFuZCB2YWx1ZXMKKyAgIGFyZSBlaXRoZXIgU3RyaW5ncyBvciBGb3JtRmlsZXM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJvbGxiYWNrKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JvbGxiYWNrPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5yb2xsYmFjazwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBvbiB3aGVuIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIHByb2JsZW0KKyBhbmQgdGhlIGZvcm0gcG9zdCBuZWVkcyB0byBiZSByb2xsZWQgYmFjay4gIFByb3ZpZGVycworIHNob3VsZCByZW1vdmUgYW55IEZvcm1GaWxlcyB1c2VkIHRvIGhvbGQgaW5mb3JtYXRpb24KKyBieSBzZXR0aW5nIHRoZW0gdG8gbnVsbCBhbmQgYWxzbyBwaHlzaWNhbGx5IGRlbGV0ZQorIHRoZW0gaWYgdGhlIGltcGxlbWVudGF0aW9uIGNhbGxzIGZvciB3cml0aW5nIGRpcmVjdGx5CisgdG8gZGlzay4KKyBOT1RFOiBDdXJyZW50bHkgaW1wbGVtZW50ZWQgYnV0IG5vdCBhdXRvbWF0aWNhbGx5Cisgc3VwcG9ydGVkLCBBY3Rpb25Gb3JtIGltcGxlbWVudG9ycyBtdXN0IGNhbGwgcm9sbGJhY2soKQorIG1hbnVhbGx5IGZvciByb2xsaW5nIGJhY2sgZmlsZSB1cGxvYWRzLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5pc2goKSI+PCEtLSAtLT48L0E+PEgzPgorZmluaXNoPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5maW5pc2g8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBpcyBjYWxsZWQgb24gd2hlbiBhIHN1Y2Nlc3NmdWwgZm9ybSBwb3N0CisgaGFzIGJlZW4gbWFkZS4gIFNvbWUgaW1wbGVtZW50YXRpb25zIHdpbGwgdXNlIHRoaXMKKyB0byBkZXN0cm95IHRlbXBvcmFyeSBmaWxlcyBvciB3cml0ZSB0byBhIGRhdGFiYXNlCisgb3Igc29tZXRoaW5nIG9mIHRoYXQgbmF0dXJlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik11bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMzEyY2EKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwKQEAgLTAsMCArMSwxNDc3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcixNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlciBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9GT05UPgorPEJSPgorQ2xhc3MgTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0PC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9ETD4KKworPFA+CitUaGlzIGNsYXNzIGZ1bmN0aW9ucyBhcyBhIHdyYXBwZXIgYXJvdW5kIEh0dHBTZXJ2bGV0UmVxdWVzdCB0bworIHByb3ZpZGUgd29ya2luZyBnZXRQYXJhbWV0ZXIgbWV0aG9kcyBmb3IgbXVsdGlwYXJ0IHJlcXVlc3RzLiAgT25jZQorIFN0cnV0cyByZXF1aXJlcyBTZXJ2bGV0IDIuMywgdGhpcyBjbGFzcyB3aWxsIGRlZmluYXRlbHkgYmUgY2hhbmdlZCB0bworIGV4dGVuZCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0V3JhcHBlciBpbnN0ZWFkIG9mCisgaW1wbGVtZW50aW5nIEh0dHBTZXJ2bGV0UmVxdWVzdC4gIFNlcnZsZXQgMi4zIG1ldGhvZHMgYXJlIGltcGxlbWVudGVkCisgdG8gcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+IG9yIGRvIG5vdGhpbmcgaWYgY2FsbGVkIG9uLiAgVXNlCisgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UmVxdWVzdCgpIj48Q09ERT5nZXRSZXF1ZXN0PC9DT0RFPjwvQT4gdG8gcmV0cmlldmUgdGhlIHVuZGVybHlpbmcgSHR0cFNlcnZsZXRSZXF1ZXN0Cisgb2JqZWN0IGFuZCBjYWxsIG9uIHRoZSAyLjMgbWV0aG9kIHRoZXJlLCB0aGUgZW1wdHkgbWV0aG9kcyBhcmUgaGVyZSBvbmx5Cisgc28gdGhhdCB0aGlzIHdpbGwgY29tcGlsZSB3aXRoIHRoZSBTZXJ2bGV0IDIuMyBqYXIuICBUaGlzIGNsYXNzIGV4aXN0cyB0ZW1wb3JhcmlseQorIGluIHRoZSBwcm9jZXNzKCkgbWV0aG9kIG9mIEFjdGlvblNlcnZsZXQsIGp1c3QgYmVmb3JlIHRoZSBBY3Rpb25Gb3J3YXJkIGlzIHByb2Nlc3NlZAorIGFuZCBqdXN0IGFmdGVyIHRoZSBBY3Rpb24gaXMgcGVyZm9ybWVkLCB0aGUgcmVxdWVzdCBpcyBzZXQgYmFjayB0byB0aGUgb3JpZ2luYWwKKyBIdHRwU2VydmxldFJlcXVlc3Qgb2JqZWN0LgorPFA+CisKKzxQPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLk1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNwYXJhbWV0ZXJzIj5wYXJhbWV0ZXJzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBwYXJhbWV0ZXJzIGZvciB0aGlzIG11bHRpcGFydCByZXF1ZXN0PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI3JlcXVlc3QiPnJlcXVlc3Q8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHVuZGVybHlpbmcgSHR0cFNlcnZsZXRSZXF1ZXN0PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5PYmplY3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0QXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj5nZXRBdHRyaWJ1dGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuRW51bWVyYXRpb248L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0QXR0cmlidXRlTmFtZXMoKSI+Z2V0QXR0cmlidXRlTmFtZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRBdXRoVHlwZSgpIj5nZXRBdXRoVHlwZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldENoYXJhY3RlckVuY29kaW5nKCkiPmdldENoYXJhY3RlckVuY29kaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRDb250ZW50TGVuZ3RoKCkiPmdldENvbnRlbnRMZW5ndGg8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRDb250ZW50VHlwZSgpIj5nZXRDb250ZW50VHlwZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldENvbnRleHRQYXRoKCkiPmdldENvbnRleHRQYXRoPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmF4LnNlcnZsZXQuaHR0cC5Db29raWVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRDb29raWVzKCkiPmdldENvb2tpZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7bG9uZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXREYXRlSGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj5nZXREYXRlSGVhZGVyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPmdldEhlYWRlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5FbnVtZXJhdGlvbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRIZWFkZXJOYW1lcygpIj5nZXRIZWFkZXJOYW1lczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuRW51bWVyYXRpb248L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0SGVhZGVycyhqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0SGVhZGVyczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmF4LnNlcnZsZXQuU2VydmxldElucHV0U3RyZWFtPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldElucHV0U3RyZWFtKCkiPmdldElucHV0U3RyZWFtPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRJbnRIZWFkZXIoamF2YS5sYW5nLlN0cmluZykiPmdldEludEhlYWRlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5Mb2NhbGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0TG9jYWxlKCkiPmdldExvY2FsZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuRW51bWVyYXRpb248L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0TG9jYWxlcygpIj5nZXRMb2NhbGVzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0TWV0aG9kKCkiPmdldE1ldGhvZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0UGFyYW1ldGVyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBdHRlbXB0cyB0byBnZXQgYSBwYXJhbWV0ZXIgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS51dGlsLk1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRQYXJhbWV0ZXJNYXAoKSI+Z2V0UGFyYW1ldGVyTWFwPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgcmV0dXJucyBudWxsLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnV0aWwuRW51bWVyYXRpb248L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UGFyYW1ldGVyTmFtZXMoKSI+Z2V0UGFyYW1ldGVyTmFtZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRoZSBuYW1lcyBvZiB0aGUgcGFyYW1ldGVycyBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UGFyYW1ldGVyVmFsdWVzKGphdmEubGFuZy5TdHJpbmcpIj5nZXRQYXJhbWV0ZXJWYWx1ZXM8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFBhdGhJbmZvKCkiPmdldFBhdGhJbmZvPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UGF0aFRyYW5zbGF0ZWQoKSI+Z2V0UGF0aFRyYW5zbGF0ZWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRQcm90b2NvbCgpIj5nZXRQcm90b2NvbDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFF1ZXJ5U3RyaW5nKCkiPmdldFF1ZXJ5U3RyaW5nPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEuaW8uQnVmZmVyZWRSZWFkZXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UmVhZGVyKCkiPmdldFJlYWRlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlYWxQYXRoKGphdmEubGFuZy5TdHJpbmcpIj5nZXRSZWFsUGF0aDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UmVtb3RlQWRkcigpIj5nZXRSZW1vdGVBZGRyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UmVtb3RlSG9zdCgpIj5nZXRSZW1vdGVIb3N0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UmVtb3RlVXNlcigpIj5nZXRSZW1vdGVVc2VyPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UmVxdWVzdCgpIj5nZXRSZXF1ZXN0PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgdW5kZXJseWluZyBIdHRwU2VydmxldFJlcXVlc3QgZm9yIHRoaXMgd3JhcHBlcjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0LlJlcXVlc3REaXNwYXRjaGVyPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlcXVlc3REaXNwYXRjaGVyKGphdmEubGFuZy5TdHJpbmcpIj5nZXRSZXF1ZXN0RGlzcGF0Y2hlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0UmVxdWVzdGVkU2Vzc2lvbklkKCkiPmdldFJlcXVlc3RlZFNlc3Npb25JZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlcXVlc3RVUkkoKSI+Z2V0UmVxdWVzdFVSSTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nQnVmZmVyPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2dldFJlcXVlc3RVUkwoKSI+Z2V0UmVxdWVzdFVSTDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgbWV0aG9kIHJldHVybnMgbnVsbC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRTY2hlbWUoKSI+Z2V0U2NoZW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0U2VydmVyTmFtZSgpIj5nZXRTZXJ2ZXJOYW1lPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRTZXJ2ZXJQb3J0KCkiPmdldFNlcnZlclBvcnQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRTZXJ2bGV0UGF0aCgpIj5nZXRTZXJ2bGV0UGF0aDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb248L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjZ2V0U2Vzc2lvbigpIj5nZXRTZXNzaW9uPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vzc2lvbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRTZXNzaW9uKGJvb2xlYW4pIj5nZXRTZXNzaW9uPC9BPjwvQj4oYm9vbGVhbiZuYnNwO2NyZWF0ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLnNlY3VyaXR5LlByaW5jaXBhbDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNnZXRVc2VyUHJpbmNpcGFsKCkiPmdldFVzZXJQcmluY2lwYWw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNpc1JlcXVlc3RlZFNlc3Npb25JZEZyb21Db29raWUoKSI+aXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tQ29va2llPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgcmV0dXJucyBmYWxzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNpc1JlcXVlc3RlZFNlc3Npb25JZEZyb21VcmwoKSI+aXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tVXJsPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjaXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tVVJMKCkiPmlzUmVxdWVzdGVkU2Vzc2lvbklkRnJvbVVSTDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2lzUmVxdWVzdGVkU2Vzc2lvbklkVmFsaWQoKSI+aXNSZXF1ZXN0ZWRTZXNzaW9uSWRWYWxpZDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI2lzU2VjdXJlKCkiPmlzU2VjdXJlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjaXNVc2VySW5Sb2xlKGphdmEubGFuZy5TdHJpbmcpIj5pc1VzZXJJblJvbGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXNlcik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI3JlbW92ZUF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+cmVtb3ZlQXR0cmlidXRlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCNzZXRBdHRyaWJ1dGUoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPnNldEF0dHJpYnV0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDtvKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjc2V0Q2hhcmFjdGVyRW5jb2RpbmcoamF2YS5sYW5nLlN0cmluZykiPnNldENoYXJhY3RlckVuY29kaW5nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2VuY29kaW5nKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBtZXRob2QgZG9lcyBub3RoaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sI3NldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+c2V0UGFyYW1ldGVyPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0cyBhIHBhcmFtZXRlciBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icGFyYW1ldGVycyI+PCEtLSAtLT48L0E+PEgzPgorcGFyYW1ldGVyczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5NYXAgPEI+cGFyYW1ldGVyczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcGFyYW1ldGVycyBmb3IgdGhpcyBtdWx0aXBhcnQgcmVxdWVzdAorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVxdWVzdCI+PCEtLSAtLT48L0E+PEgzPgorcmVxdWVzdDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QgPEI+cmVxdWVzdDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdW5kZXJseWluZyBIdHRwU2VydmxldFJlcXVlc3QKKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJzZXRQYXJhbWV0ZXIoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhcmFtZXRlcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UGFyYW1ldGVyPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyBhIHBhcmFtZXRlciBmb3IgdGhpcyByZXF1ZXN0LiAgVGhlIHBhcmFtZXRlciBpcyBhY3R1YWxseQorIHNlcGFyYXRlIGZyb20gdGhlIHJlcXVlc3QgcGFyYW1ldGVycywgYnV0IGNhbGxpbmcgb24gdGhlCisgZ2V0UGFyYW1ldGVyKCkgbWV0aG9kcyBvZiB0aGlzIGNsYXNzIHdpbGwgd29yayBhcyBpZiB0aGV5IHdlcmVuJ3QuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtZXRlcihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFyYW1ldGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYXJhbWV0ZXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPkF0dGVtcHRzIHRvIGdldCBhIHBhcmFtZXRlciBmb3IgdGhpcyByZXF1ZXN0LiAgSXQgZmlyc3QgbG9va3MgaW4gdGhlCisgdW5kZXJseWluZyBIdHRwU2VydmxldFJlcXVlc3Qgb2JqZWN0IGZvciB0aGUgcGFyYW1ldGVyLCBhbmQgaWYgdGhhdAorIGRvZXNuJ3QgZXhpc3QgaXQgbG9va3MgZm9yIHRoZSBwYXJhbWV0ZXJzIHJldHJpZXZlZCBmcm9tIHRoZSBtdWx0aXBhcnQKKyByZXF1ZXN0Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0UGFyYW1ldGVyPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtZXRlck5hbWVzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhcmFtZXRlck5hbWVzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkVudW1lcmF0aW9uIDxCPmdldFBhcmFtZXRlck5hbWVzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgbmFtZXMgb2YgdGhlIHBhcmFtZXRlcnMgZm9yIHRoaXMgcmVxdWVzdC4KKyBUaGUgZW51bWVyYXRpb24gY29uc2lzdHMgb2YgdGhlIG5vcm1hbCByZXF1ZXN0IHBhcmFtZXRlcgorIG5hbWVzIHBsdXMgdGhlIHBhcmFtZXRlcnMgcmVhZCBmcm9tIHRoZSBtdWx0aXBhcnQgcmVxdWVzdAorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldFBhcmFtZXRlck5hbWVzPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhcmFtZXRlclZhbHVlcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGFyYW1ldGVyVmFsdWVzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZ1tdIDxCPmdldFBhcmFtZXRlclZhbHVlczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldFBhcmFtZXRlclZhbHVlczwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZXF1ZXN0KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJlcXVlc3Q8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0IDxCPmdldFJlcXVlc3Q8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSB1bmRlcmx5aW5nIEh0dHBTZXJ2bGV0UmVxdWVzdCBmb3IgdGhpcyB3cmFwcGVyCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QXR0cmlidXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5nZXRBdHRyaWJ1dGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRBdHRyaWJ1dGU8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QXR0cmlidXRlTmFtZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QXR0cmlidXRlTmFtZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLnV0aWwuRW51bWVyYXRpb24gPEI+Z2V0QXR0cmlidXRlTmFtZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0QXR0cmlidXRlTmFtZXM8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Q2hhcmFjdGVyRW5jb2RpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q2hhcmFjdGVyRW5jb2Rpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldENoYXJhY3RlckVuY29kaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldENoYXJhY3RlckVuY29kaW5nPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldENvbnRlbnRMZW5ndGgoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29udGVudExlbmd0aDwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5nZXRDb250ZW50TGVuZ3RoPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldENvbnRlbnRMZW5ndGg8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Q29udGVudFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29udGVudFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldENvbnRlbnRUeXBlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldENvbnRlbnRUeXBlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldElucHV0U3RyZWFtKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldElucHV0U3RyZWFtPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc2VydmxldC5TZXJ2bGV0SW5wdXRTdHJlYW0gPEI+Z2V0SW5wdXRTdHJlYW08L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldElucHV0U3RyZWFtPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UHJvdG9jb2woKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UHJvdG9jb2w8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFByb3RvY29sPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldFByb3RvY29sPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNjaGVtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTY2hlbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFNjaGVtZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRTY2hlbWU8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2VydmVyTmFtZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTZXJ2ZXJOYW1lPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTZXJ2ZXJOYW1lPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldFNlcnZlck5hbWU8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2VydmVyUG9ydCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTZXJ2ZXJQb3J0PC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldFNlcnZlclBvcnQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0U2VydmVyUG9ydDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZWFkZXIoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVhZGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5pby5CdWZmZXJlZFJlYWRlciA8Qj5nZXRSZWFkZXI8L0I+KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldFJlYWRlcjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8REQ+PENPREU+amF2YS5pby5JT0V4Y2VwdGlvbjwvQ09ERT48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJlbW90ZUFkZHIoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVtb3RlQWRkcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UmVtb3RlQWRkcjwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRSZW1vdGVBZGRyPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJlbW90ZUhvc3QoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVtb3RlSG9zdDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UmVtb3RlSG9zdDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRSZW1vdGVIb3N0PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldEF0dHJpYnV0ZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorc2V0QXR0cmlidXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRBdHRyaWJ1dGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDtvKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5zZXRBdHRyaWJ1dGU8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlQXR0cmlidXRlKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CityZW1vdmVBdHRyaWJ1dGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlbW92ZUF0dHJpYnV0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlbW92ZUF0dHJpYnV0ZTwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRMb2NhbGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TG9jYWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkxvY2FsZSA8Qj5nZXRMb2NhbGU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0TG9jYWxlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExvY2FsZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TG9jYWxlczwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5FbnVtZXJhdGlvbiA8Qj5nZXRMb2NhbGVzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldExvY2FsZXM8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNTZWN1cmUoKSI+PCEtLSAtLT48L0E+PEgzPgoraXNTZWN1cmU8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzU2VjdXJlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmlzU2VjdXJlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJlcXVlc3REaXNwYXRjaGVyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSZXF1ZXN0RGlzcGF0Y2hlcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmF4LnNlcnZsZXQuUmVxdWVzdERpc3BhdGNoZXIgPEI+Z2V0UmVxdWVzdERpc3BhdGNoZXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRoKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRSZXF1ZXN0RGlzcGF0Y2hlcjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZWFsUGF0aChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVhbFBhdGg8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFJlYWxQYXRoPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0UmVhbFBhdGg8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QXV0aFR5cGUoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QXV0aFR5cGU8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEF1dGhUeXBlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldEF1dGhUeXBlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldENvb2tpZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29va2llczwvSDM+Cis8UFJFPgorcHVibGljIGphdmF4LnNlcnZsZXQuaHR0cC5Db29raWVbXSA8Qj5nZXRDb29raWVzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldENvb2tpZXM8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RGF0ZUhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RGF0ZUhlYWRlcjwvSDM+Cis8UFJFPgorcHVibGljIGxvbmcgPEI+Z2V0RGF0ZUhlYWRlcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldERhdGVIZWFkZXI8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0SGVhZGVyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRIZWFkZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEhlYWRlcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldEhlYWRlcjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRIZWFkZXJzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRIZWFkZXJzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkVudW1lcmF0aW9uIDxCPmdldEhlYWRlcnM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRIZWFkZXJzPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEhlYWRlck5hbWVzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEhlYWRlck5hbWVzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLkVudW1lcmF0aW9uIDxCPmdldEhlYWRlck5hbWVzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldEhlYWRlck5hbWVzPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEludEhlYWRlcihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0SW50SGVhZGVyPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldEludEhlYWRlcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldEludEhlYWRlcjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXRob2QoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWV0aG9kPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXRob2Q8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0TWV0aG9kPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFBhdGhJbmZvKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhdGhJbmZvPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYXRoSW5mbzwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRQYXRoSW5mbzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRQYXRoVHJhbnNsYXRlZCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYXRoVHJhbnNsYXRlZDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UGF0aFRyYW5zbGF0ZWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0UGF0aFRyYW5zbGF0ZWQ8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0Q29udGV4dFBhdGgoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29udGV4dFBhdGg8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldENvbnRleHRQYXRoPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldENvbnRleHRQYXRoPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFF1ZXJ5U3RyaW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFF1ZXJ5U3RyaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRRdWVyeVN0cmluZzwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRRdWVyeVN0cmluZzwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZW1vdGVVc2VyKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJlbW90ZVVzZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFJlbW90ZVVzZXI8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0UmVtb3RlVXNlcjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1VzZXJJblJvbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2lzVXNlckluUm9sZTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+aXNVc2VySW5Sb2xlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXNlcik8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+aXNVc2VySW5Sb2xlPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFVzZXJQcmluY2lwYWwoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VXNlclByaW5jaXBhbDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEuc2VjdXJpdHkuUHJpbmNpcGFsIDxCPmdldFVzZXJQcmluY2lwYWw8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0VXNlclByaW5jaXBhbDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZXF1ZXN0ZWRTZXNzaW9uSWQoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVxdWVzdGVkU2Vzc2lvbklkPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRSZXF1ZXN0ZWRTZXNzaW9uSWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0UmVxdWVzdGVkU2Vzc2lvbklkPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJlcXVlc3RVUkkoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UmVxdWVzdFVSSTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UmVxdWVzdFVSSTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRSZXF1ZXN0VVJJPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFNlcnZsZXRQYXRoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFNlcnZsZXRQYXRoPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRTZXJ2bGV0UGF0aDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5nZXRTZXJ2bGV0UGF0aDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTZXNzaW9uKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitnZXRTZXNzaW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uIDxCPmdldFNlc3Npb248L0I+KGJvb2xlYW4mbmJzcDtjcmVhdGUpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPmdldFNlc3Npb248L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2Vzc2lvbigpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTZXNzaW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uIDxCPmdldFNlc3Npb248L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+Z2V0U2Vzc2lvbjwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1JlcXVlc3RlZFNlc3Npb25JZFZhbGlkKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2lzUmVxdWVzdGVkU2Vzc2lvbklkVmFsaWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzUmVxdWVzdGVkU2Vzc2lvbklkVmFsaWQ8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+aXNSZXF1ZXN0ZWRTZXNzaW9uSWRWYWxpZDwvQ09ERT4gaW4gaW50ZXJmYWNlIDxDT0RFPmphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1JlcXVlc3RlZFNlc3Npb25JZEZyb21VUkwoKSI+PCEtLSAtLT48L0E+PEgzPgoraXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tVVJMPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc1JlcXVlc3RlZFNlc3Npb25JZEZyb21VUkw8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+aXNSZXF1ZXN0ZWRTZXNzaW9uSWRGcm9tVVJMPC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzUmVxdWVzdGVkU2Vzc2lvbklkRnJvbVVybCgpIj48IS0tIC0tPjwvQT48SDM+Citpc1JlcXVlc3RlZFNlc3Npb25JZEZyb21Vcmw8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzUmVxdWVzdGVkU2Vzc2lvbklkRnJvbVVybDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5pc1JlcXVlc3RlZFNlc3Npb25JZEZyb21Vcmw8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UGFyYW1ldGVyTWFwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhcmFtZXRlck1hcDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5NYXAgPEI+Z2V0UGFyYW1ldGVyTWFwPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhpcyBtZXRob2QgcmV0dXJucyBudWxsLiAgVG8gdXNlIGFueSBTZXJ2bGV0IDIuMyBtZXRob2RzLAorIGNhbGwgb24gZ2V0UmVxdWVzdCgpIGFuZCB1c2UgdGhhdCByZXF1ZXN0IG9iamVjdC4gIE9uY2UgU2VydmxldCAyLjMKKyBpcyByZXF1aXJlZCB0byBidWlsZCBTdHJ1dHMsIHRoaXMgd2lsbCBubyBsb25nZXIgYmUgYW4gaXNzdWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldENoYXJhY3RlckVuY29kaW5nKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRDaGFyYWN0ZXJFbmNvZGluZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0Q2hhcmFjdGVyRW5jb2Rpbmc8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtlbmNvZGluZyk8L1BSRT4KKzxETD4KKzxERD5UaGlzIG1ldGhvZCBkb2VzIG5vdGhpbmcuICBUbyB1c2UgYW55IFNlcnZsZXQgMi4zIG1ldGhvZHMsCisgY2FsbCBvbiBnZXRSZXF1ZXN0KCkgYW5kIHVzZSB0aGF0IHJlcXVlc3Qgb2JqZWN0LiAgT25jZSBTZXJ2bGV0IDIuMworIGlzIHJlcXVpcmVkIHRvIGJ1aWxkIFN0cnV0cywgdGhpcyB3aWxsIG5vIGxvbmdlciBiZSBhbiBpc3N1ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UmVxdWVzdFVSTCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSZXF1ZXN0VVJMPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZ0J1ZmZlciA8Qj5nZXRSZXF1ZXN0VVJMPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhpcyBtZXRob2QgcmV0dXJucyBudWxsLiAgVG8gdXNlIGFueSBTZXJ2bGV0IDIuMyBtZXRob2RzLAorIGNhbGwgb24gZ2V0UmVxdWVzdCgpIGFuZCB1c2UgdGhhdCByZXF1ZXN0IG9iamVjdC4gIE9uY2UgU2VydmxldCAyLjMKKyBpcyByZXF1aXJlZCB0byBidWlsZCBTdHJ1dHMsIHRoaXMgd2lsbCBubyBsb25nZXIgYmUgYW4gaXNzdWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzUmVxdWVzdGVkU2Vzc2lvbklkRnJvbUNvb2tpZSgpIj48IS0tIC0tPjwvQT48SDM+Citpc1JlcXVlc3RlZFNlc3Npb25JZEZyb21Db29raWU8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzUmVxdWVzdGVkU2Vzc2lvbklkRnJvbUNvb2tpZTwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoaXMgbWV0aG9kIHJldHVybnMgZmFsc2UuICBUbyB1c2UgYW55IFNlcnZsZXQgMi4zIG1ldGhvZHMsCisgY2FsbCBvbiBnZXRSZXF1ZXN0KCkgYW5kIHVzZSB0aGF0IHJlcXVlc3Qgb2JqZWN0LiAgT25jZSBTZXJ2bGV0IDIuMworIGlzIHJlcXVpcmVkIHRvIGJ1aWxkIFN0cnV0cywgdGhpcyB3aWxsIG5vIGxvbmdlciBiZSBhbiBpc3N1ZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5pc1JlcXVlc3RlZFNlc3Npb25JZEZyb21Db29raWU8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODJmMjEzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sCkBAIC0wLDAgKzEsNTA5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTXVsdGlwYXJ0VmFsdWVTdHJlYW0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRWYWx1ZVN0cmVhbSxNdWx0aXBhcnRWYWx1ZVN0cmVhbSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTXVsdGlwYXJ0VmFsdWVTdHJlYW0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9GT05UPgorPEJSPgorQ2xhc3MgTXVsdGlwYXJ0VmFsdWVTdHJlYW08L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZhLmlvLklucHV0U3RyZWFtCisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFZhbHVlU3RyZWFtPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+IGNsYXNzIDxCPk11bHRpcGFydFZhbHVlU3RyZWFtPC9CPjxEVD5leHRlbmRzIGphdmEuaW8uSW5wdXRTdHJlYW08L0RMPgorCis8UD4KK1RoaXMgY2xhc3MgaW1wbGVtZW50cyBhbiBpbnB1dFN0cmVhbSB0aGF0IHJlYWRzIGFub3RoZXIgc3RyZWFtIHVudGlsIAorIGEgbXVsdGlwYXJ0IGJvdW5kYXJ5IGlzIGZvdW5kLiBUaGUgY2xhc3MgcmVwb3J0cyBlb2Ygd2hlbiBib3VuZGFyeSBmb3VuZC4KKyBUaGUgdW5kZWx5aW5nIHN0cmVhbSBpcyBub3QgY2xvc2VkLgorCisgPHA+CisgU2VlIFJGQyAxODY3IChodHRwOi8vaW5mby5pbnRlcm5ldC5pc2kuZWR1OjgwL2luLW5vdGVzL3JmYy9maWxlcy9yZmMxODY3LnR4dCkKKyBmb3IgZGV0YWlscyBhYm91dCB0aGUgcHJvdG9jb2wuCisgPHA+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+SmltbXkgTGFyc3NvbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2J5dGVbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNib3VuZGFyeUJ5dGVzIj5ib3VuZGFyeUJ5dGVzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2J5dGUgYnVmZmVyIHdpdGggdGhlIGJvdW5kYXJ5PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNib3VuZGFyeVJlYWNoZWQiPmJvdW5kYXJ5UmVhY2hlZDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtoYXZlIHdlIHJlYWNoZWQgdGhlIGJvdW5kYXJ5PzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjZmluYWxCb3VuZGFyeVJlYWNoZWQiPmZpbmFsQm91bmRhcnlSZWFjaGVkPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2lzIHRoZSBib3VuZGFyeSBmb3VuZCBhIGZpbmFsIGJvdW5kYXJ5PzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI0hFQURFUl9FTkNPRElORyI+SEVBREVSX0VOQ09ESU5HPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEuaW8uSW5wdXRTdHJlYW08L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjaW4iPmluPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3RoZSB1bmRlcmx5aW5nIHN0cmVhbTwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNtYXRjaGVkQm91bmRhcnlCeXRlcyI+bWF0Y2hlZEJvdW5kYXJ5Qnl0ZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aG93IG1hbnkgY3VycmV0bHkgbWF0Y2hlZCBib3VuZGFyeSBieXRlcz88L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjcmVhZEFoZWFkQnVmZmVyRW5kSSI+cmVhZEFoZWFkQnVmZmVyRW5kSTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZW5kIGluZGV4IGZvciB0aGUgcmVhZCBhaGVhZCBjeWNsaWMgYnVmZmVyIChwb2ludHMgdG8gdGhlIGxhc3QgYnl0ZSk8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjcmVhZEFoZWFkQnVmZmVyU3RhcnRJIj5yZWFkQWhlYWRCdWZmZXJTdGFydEk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHN0YXJ0IGluZGV4IGZvciB0aGUgcmVhZCBhaGVhZCBjeWNsaWMgYnVmZmVyIChwb2ludHMgdG8gdGhlIGZpcnN0IGJ5dGUpPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7Ynl0ZVtdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sI3JlYWRBaGVhZEJ5dGVzIj5yZWFkQWhlYWRCeXRlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt0aGUgcmVhZCBhaGVhZCBidWZmZXIgKGN5Y2xpYyk8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5pby5JbnB1dFN0cmVhbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmlvLklucHV0U3RyZWFtPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwjTXVsdGlwYXJ0VmFsdWVTdHJlYW0oamF2YS5pby5JbnB1dFN0cmVhbSwgamF2YS5sYW5nLlN0cmluZykiPk11bHRpcGFydFZhbHVlU3RyZWFtPC9BPjwvQj4oamF2YS5pby5JbnB1dFN0cmVhbSZuYnNwO2luLAorICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2JvdW5kYXJ5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGEgc3RyZWFtIHRoYXQgc3RvcHMgcmVhZGluZyBhdCB0aGUgYm91bmRhcnkKKworIE5PVEU6IHRoZSBib3VuZGFyeSBwYXJhbWV0ZXIgaXMgd2l0aG91dCB0aGUgdHJhaWxpbmcgZGFzaGVzICItLSIuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNlbmNvdW50ZXJlZEZpbmFsQm91bmRhcnkoKSI+ZW5jb3VudGVyZWRGaW5hbEJvdW5kYXJ5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCNyZWFkKCkiPnJlYWQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZWFkIHRoZSBuZXh0IGJ5dGU8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEuaW8uSW5wdXRTdHJlYW0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEuaW8uSW5wdXRTdHJlYW08L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5hdmFpbGFibGUsIGNsb3NlLCBtYXJrLCBtYXJrU3VwcG9ydGVkLCByZWFkLCByZWFkLCByZXNldCwgc2tpcDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkhFQURFUl9FTkNPRElORyI+PCEtLSAtLT48L0E+PEgzPgorSEVBREVSX0VOQ09ESU5HPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+SEVBREVSX0VOQ09ESU5HPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFZhbHVlU3RyZWFtLkhFQURFUl9FTkNPRElORyI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbiI+PCEtLSAtLT48L0E+PEgzPgoraW48L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5pby5JbnB1dFN0cmVhbSA8Qj5pbjwvQj48L1BSRT4KKzxETD4KKzxERD50aGUgdW5kZXJseWluZyBzdHJlYW0KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJvdW5kYXJ5Qnl0ZXMiPjwhLS0gLS0+PC9BPjxIMz4KK2JvdW5kYXJ5Qnl0ZXM8L0gzPgorPFBSRT4KK3ByaXZhdGUgYnl0ZVtdIDxCPmJvdW5kYXJ5Qnl0ZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+Ynl0ZSBidWZmZXIgd2l0aCB0aGUgYm91bmRhcnkKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1hdGNoZWRCb3VuZGFyeUJ5dGVzIj48IS0tIC0tPjwvQT48SDM+CittYXRjaGVkQm91bmRhcnlCeXRlczwvSDM+Cis8UFJFPgorcHJpdmF0ZSBpbnQgPEI+bWF0Y2hlZEJvdW5kYXJ5Qnl0ZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+aG93IG1hbnkgY3VycmV0bHkgbWF0Y2hlZCBib3VuZGFyeSBieXRlcz8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlYWRBaGVhZEJ5dGVzIj48IS0tIC0tPjwvQT48SDM+CityZWFkQWhlYWRCeXRlczwvSDM+Cis8UFJFPgorcHJpdmF0ZSBieXRlW10gPEI+cmVhZEFoZWFkQnl0ZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+dGhlIHJlYWQgYWhlYWQgYnVmZmVyIChjeWNsaWMpCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZWFkQWhlYWRCdWZmZXJTdGFydEkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlYWRBaGVhZEJ1ZmZlclN0YXJ0STwvSDM+Cis8UFJFPgorcHJpdmF0ZSBpbnQgPEI+cmVhZEFoZWFkQnVmZmVyU3RhcnRJPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzdGFydCBpbmRleCBmb3IgdGhlIHJlYWQgYWhlYWQgY3ljbGljIGJ1ZmZlciAocG9pbnRzIHRvIHRoZSBmaXJzdCBieXRlKQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVhZEFoZWFkQnVmZmVyRW5kSSI+PCEtLSAtLT48L0E+PEgzPgorcmVhZEFoZWFkQnVmZmVyRW5kSTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBpbnQgPEI+cmVhZEFoZWFkQnVmZmVyRW5kSTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZW5kIGluZGV4IGZvciB0aGUgcmVhZCBhaGVhZCBjeWNsaWMgYnVmZmVyIChwb2ludHMgdG8gdGhlIGxhc3QgYnl0ZSkKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImJvdW5kYXJ5UmVhY2hlZCI+PCEtLSAtLT48L0E+PEgzPgorYm91bmRhcnlSZWFjaGVkPC9IMz4KKzxQUkU+Citwcml2YXRlIGJvb2xlYW4gPEI+Ym91bmRhcnlSZWFjaGVkPC9CPjwvUFJFPgorPERMPgorPEREPmhhdmUgd2UgcmVhY2hlZCB0aGUgYm91bmRhcnk/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmaW5hbEJvdW5kYXJ5UmVhY2hlZCI+PCEtLSAtLT48L0E+PEgzPgorZmluYWxCb3VuZGFyeVJlYWNoZWQ8L0gzPgorPFBSRT4KK3ByaXZhdGUgYm9vbGVhbiA8Qj5maW5hbEJvdW5kYXJ5UmVhY2hlZDwvQj48L1BSRT4KKzxETD4KKzxERD5pcyB0aGUgYm91bmRhcnkgZm91bmQgYSBmaW5hbCBib3VuZGFyeT8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNdWx0aXBhcnRWYWx1ZVN0cmVhbShqYXZhLmlvLklucHV0U3RyZWFtLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorTXVsdGlwYXJ0VmFsdWVTdHJlYW08L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQj4oamF2YS5pby5JbnB1dFN0cmVhbSZuYnNwO2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtib3VuZGFyeSkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLmlvLklPRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIGEgc3RyZWFtIHRoYXQgc3RvcHMgcmVhZGluZyBhdCB0aGUgYm91bmRhcnkKKworIE5PVEU6IHRoZSBib3VuZGFyeSBwYXJhbWV0ZXIgaXMgd2l0aG91dCB0aGUgdHJhaWxpbmcgZGFzaGVzICItLSIuCis8UD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InJlYWQoKSI+PCEtLSAtLT48L0E+PEgzPgorcmVhZDwvSDM+Cis8UFJFPgorcHVibGljIGludCA8Qj5yZWFkPC9CPigpCisgICAgICAgICB0aHJvd3MgamF2YS5pby5JT0V4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJlYWQgdGhlIG5leHQgYnl0ZQorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPnJlYWQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uSW5wdXRTdHJlYW08L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPi0xIG9uIGJvdW5kYXJ5IHJlYWNoZWQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEuaW8uSU9FeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGVuZGluZyBib3VuZGFyeSBpcyBuZXZlciBmb3VuZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZW5jb3VudGVyZWRGaW5hbEJvdW5kYXJ5KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2VuY291bnRlcmVkRmluYWxCb3VuZGFyeTwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+ZW5jb3VudGVyZWRGaW5hbEJvdW5kYXJ5PC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRydWUgaWYgd2UgYXJlIHRoZSBsYXN0IHN0cmVhbSwgaWUuIHdlIGVuY291bnRlcmVkIGEgZmluYWwgYm91bmRhcnkKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgYm91bmRhcnkgaGFzIG5vdCB5ZXQgYmVlbiByZWFjaGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik11bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0YzRlYmYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJCdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0KKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGFlODQ1OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvY2xhc3MtdXNlL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZQorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJDb21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvY2xhc3MtdXNlL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzM2NmIyOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvY2xhc3MtdXNlL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvY2xhc3MtdXNlL0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGNmYjAzNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvY2xhc3MtdXNlL0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvY2xhc3MtdXNlL0Rpc2tGaWxlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9EaXNrRmlsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhNWY3MDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9EaXNrRmlsZS5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuRGlza0ZpbGUgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkRpc2tGaWxlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRGlza0ZpbGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuRGlza0ZpbGU8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkRpc2tGaWxlCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrRmlsZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEaXNrRmlsZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvY2xhc3MtdXNlL0Rpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlZDBlYTMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9Gb3JtRmlsZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvRm9ybUZpbGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjJhMmJmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvRm9ybUZpbGUuaHRtbApAQCAtMCwwICsxLDE3MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgSW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5Gb3JtRmlsZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkZvcm1GaWxlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRm9ybUZpbGUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBJbnRlcmZhY2U8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkZvcm1GaWxlPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQj48L0E+PC9URD4KKzxURD4gVGhlIHVwbG9hZCBwYWNrYWdlIGZhY2lsaXRpZXMgdG8gdXBsb2FkIGZpbGVzIHVzaW5nCisgbXVsdGktcGFydCByZXF1ZXN0cy4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+Q2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT4gdGhhdCBpbXBsZW1lbnQgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+KHBhY2thZ2UgcHJpdmF0ZSkgc3RhdGljJm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGNsYXNzIGltcGxlbWVudHMgdGhlIFN0cnV0cyA8Y29kZT5Gb3JtRmlsZTwvY29kZT4gaW50ZXJmYWNlIGJ5Cisgd3JhcHBpbmcgdGhlIENvbW1vbnMgRmlsZVVwbG9hZCA8Y29kZT5GaWxlSXRlbTwvY29kZT4gaW50ZXJmYWNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGb3JtRmlsZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjk2ZjM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk1heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0ZWI1OWQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwKQEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQj48L0E+PC9URD4KKzxURD4gVGhlIHVwbG9hZCBwYWNrYWdlIGZhY2lsaXRpZXMgdG8gdXBsb2FkIGZpbGVzIHVzaW5nCisgbXVsdGktcGFydCByZXF1ZXN0cy4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbS5odG1sIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5NdWx0aXBhcnRJdGVyYXRvci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjaW5wdXRTdHJlYW0iPmlucHV0U3RyZWFtPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBJbnB1dFN0cmVhbSB0byB1c2UgdG8gcmVhZCB0aGUgbXVsdGlwYXJ0IGRhdGEuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvTXVsdGlwYXJ0RWxlbWVudC5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvTXVsdGlwYXJ0RWxlbWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlN2M5NGYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9NdWx0aXBhcnRFbGVtZW50Lmh0bWwKQEAgLTAsMCArMSwyMDMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDMgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRFbGVtZW50IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRFbGVtZW50IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRFbGVtZW50Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEVsZW1lbnQ8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQj48L0E+PC9URD4KKzxURD4gVGhlIHVwbG9hZCBwYWNrYWdlIGZhY2lsaXRpZXMgdG8gdXBsb2FkIGZpbGVzIHVzaW5nCisgbXVsdGktcGFydCByZXF1ZXN0cy4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEVsZW1lbnQuaHRtbCI+TXVsdGlwYXJ0RWxlbWVudDwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5NdWx0aXBhcnRJdGVyYXRvci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwjZ2V0TmV4dEVsZW1lbnQoKSI+Z2V0TmV4dEVsZW1lbnQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZXMgdGhlIG5leHQgZWxlbWVudCBpbiB0aGUgaXRlcmF0b3IgaWYgb25lIGV4aXN0cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk11bHRpcGFydEl0ZXJhdG9yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNjcmVhdGVUZXh0TXVsdGlwYXJ0RWxlbWVudChqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlVGV4dE11bHRpcGFydEVsZW1lbnQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7ZW5jb2RpbmcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYSB0ZXh0IGVsZW1lbnQgZnJvbSB0aGUgZGF0YSBpbiB0aGUgYm9keSBvZiB0aGUgZWxlbWVudC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk11bHRpcGFydEl0ZXJhdG9yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCNjcmVhdGVGaWxlTXVsdGlwYXJ0RWxlbWVudCgpIj5jcmVhdGVGaWxlTXVsdGlwYXJ0RWxlbWVudDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhIG11bHRpcGFydCBlbGVtZW50IGluc3RhbmNlIHJlcHJlc2VudGluZyB0aGUgZmlsZSBpbiB0aGUgc3RyZWFtLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9EaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNjcmVhdGVUZXh0RWxlbWVudChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0RWxlbWVudCkiPmNyZWF0ZVRleHRFbGVtZW50PC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj5NdWx0aXBhcnRFbGVtZW50PC9BPiZuYnNwO2VsZW1lbnQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwjY3JlYXRlRGlza0ZpbGUob3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEVsZW1lbnQpIj5jcmVhdGVEaXNrRmlsZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+Jm5ic3A7ZWxlbWVudCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRFbGVtZW50Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvY2xhc3MtdXNlL011bHRpcGFydEl0ZXJhdG9yLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9NdWx0aXBhcnRJdGVyYXRvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5YmMzN2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9NdWx0aXBhcnRJdGVyYXRvci5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQzIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0SXRlcmF0b3IgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEl0ZXJhdG9yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTXVsdGlwYXJ0SXRlcmF0b3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0SXRlcmF0b3I8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydEl0ZXJhdG9yCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRJdGVyYXRvci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRJdGVyYXRvci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NmE1MzNjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbApAQCAtMCwwICsxLDI5NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgSW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBJbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RIYW5kbGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBJbnRlcmZhY2U8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQj48L0E+PC9URD4KKzxURD4gVGhlIGFjdGlvbiBwYWNrYWdlIGlzIHRoZSBjb3JlIG9mIHRoZSBzdHJ1dHMgZnJhbWV3b3JrLAorICAgIHByb3ZpZGluZyB0aGUgIkNvbnRyb2xsZXIiIGFzcGVjdCBvZiBhIE1WQyBtb2RlbC4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQj48L0E+PC9URD4KKzxURD4gVGhlIHVwbG9hZCBwYWNrYWdlIGZhY2lsaXRpZXMgdG8gdXBsb2FkIGZpbGVzIHVzaW5nCisgbXVsdGktcGFydCByZXF1ZXN0cy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy51dGlsIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9CPjwvQT48L1REPgorPFREPlRoZSBVdGlsaXRpZXMgcGFja2FnZSBwcm92aWRlcyBhIHZhcmlldHkgb2YgZmFtaWxpZXMgb2YgY2xhc3NlcywKK3RvIHNvbHZlIHByb2JsZW1zIHRoYXQgYXJlIGNvbW1vbmx5IGVuY291bnRlcmVkIGluIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uRm9ybS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNtdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciI+bXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyIGZvciB0aGlzIGZvcm0sIGNhbiBiZQorIDxjb2RlPm51bGw8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uRm9ybS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNnZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcigpIj5nZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgZm9yIHRoaXMgZm9ybQorIFRoZSByZWFzb25pbmcgYmVoaW5kIHRoaXMgaXMgdG8gZ2l2ZSBmb3JtIGJlYW4gZGV2ZWxvcGVycworIGNvbnRyb2wgb3ZlciB0aGUgbGlmZWN5Y2xlIG9mIHRoZWlyIG11bHRpcGFydCByZXF1ZXN0cworIHRocm91Z2ggdGhlIHVzZSBvZiB0aGUgZmluaXNoKCkgYW5kL29yIHJvbGxiYWNrKCkgbWV0aG9kcworIG9mIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHdpdGggcGFyYW1ldGVycyBvZiB0eXBlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uU2VydmxldFdyYXBwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sI3NldFNlcnZsZXRGb3Iob3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RIYW5kbGVyKSI+c2V0U2VydmxldEZvcjwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4mbmJzcDtvYmplY3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgc2VydmxldCB0byBhIE11bHRpcGFydFJlcXVlc3RIYW5kbGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvbkZvcm0uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjc2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIob3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RIYW5kbGVyKSI+c2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+Jm5ic3A7bXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIEhhbmRsZXIgcHJvdmlkZXMgdG8gdXNlIGluIGRlYWxpbmcgd2l0aCBmaWxlIHVwbG9hZHMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0E+IHRoYXQgaW1wbGVtZW50IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgPGNvZGU+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L2NvZGU+IGludGVyZmFjZQorIGJ5IHByb3ZpZGluZyBhIHdyYXBwZXIgYXJvdW5kIHRoZSBKYWthcnRhIENvbW1vbnMgRmlsZVVwbG9hZCBsaWJyYXJ5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGlzIGEgTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgdGhhdCB3cml0ZXMgZmlsZSBkYXRhIGRpcmVjdGx5IHRvCisgdG8gdGVtcG9yYXJ5IGZpbGVzIG9uIGRpc2suPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RVdGlscy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRNdWx0aXBhcnRIYW5kbGVyKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRNdWx0aXBhcnRIYW5kbGVyPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUcnkgdG8gbG9jYXRlIGEgbXVsdGlwYXJ0IHJlcXVlc3QgaGFuZGxlciBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RVdGlscy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRBbGxQYXJhbWV0ZXJzRm9yTXVsdGlwYXJ0UmVxdWVzdChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpIj5nZXRBbGxQYXJhbWV0ZXJzRm9yTXVsdGlwYXJ0UmVxdWVzdDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPiZuYnNwO211bHRpcGFydEhhbmRsZXIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYSBtYXAgY29udGFpbmluZyBhbGwgb2YgdGhlIHBhcmFtZXRlcnMgc3VwcGxpZWQgZm9yIGEgbXVsdGlwYXJ0CisgcmVxdWVzdCwga2V5ZWQgYnkgcGFyYW1ldGVyIG5hbWUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYmJmOTc0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbApAQCAtMCwwICsxLDE3MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RXcmFwcGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik11bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQj48L0E+PC9URD4KKzxURD5UaGUgImNvbmZpZyIgcGFja2FnZSBjb250YWlucyBjb25maWd1cmF0aW9uIG9iamVjdHMgdGhhdCBjb3JyZXNwb25kIHRvCitlbGVtZW50cyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPgorbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db25maWdIZWxwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcigpIj5nZXRNdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtdWx0aXBhcnQgb2JqZWN0IGZvciB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29uZmlnSGVscGVySW50ZXJmYWNlLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIoKSI+Z2V0TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbXVsdGlwYXJ0IG9iamVjdCBmb3IgdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvY2xhc3MtdXNlL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGYyNTczNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvY2xhc3MtdXNlL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRWYWx1ZVN0cmVhbSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0VmFsdWVTdHJlYW0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0VmFsdWVTdHJlYW0KKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik11bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvZG9jLWZpbGVzL3VwbG9hZFVNTC5qcGcgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2RvYy1maWxlcy91cGxvYWRVTUwuanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxZDJhYmQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2RvYy1maWxlcy91cGxvYWRVTUwuanBnCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk1NWEzMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTYgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZCBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT48L0ZPTlQ+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitJbnRlcmZhY2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iRm9ybUZpbGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj48ST5Gb3JtRmlsZTwvST48L0E+Cis8QlI+Cis8QSBIUkVGPSJNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPjxJPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9JPjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0NsYXNzZXM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJCdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQT4KKzxCUj4KKzxBIEhSRUY9IkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxCUj4KKzxBIEhSRUY9IkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlPC9BPgorPEJSPgorPEEgSFJFRj0iRGlza0ZpbGUuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EaXNrRmlsZTwvQT4KKzxCUj4KKzxBIEhSRUY9IkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4KKzxCUj4KKzxBIEhSRUY9Ik11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9BPgorPEJSPgorPEEgSFJFRj0iTXVsdGlwYXJ0RWxlbWVudC5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk11bHRpcGFydEVsZW1lbnQ8L0E+Cis8QlI+Cis8QSBIUkVGPSJNdWx0aXBhcnRJdGVyYXRvci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPk11bHRpcGFydEl0ZXJhdG9yPC9BPgorPEJSPgorPEEgSFJFRj0iTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQT4KKzxCUj4KKzxBIEhSRUY9Ik11bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitFeGNlcHRpb25zPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+Q29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uPC9BPgorPEJSPgorPEEgSFJFRj0iTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzZTVmMWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2Utc3VtbWFyeS5odG1sCkBAIC0wLDAgKzEsMjYxIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxIMj4KK1BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkCis8L0gyPgorIFRoZSB1cGxvYWQgcGFja2FnZSBmYWNpbGl0aWVzIHRvIHVwbG9hZCBmaWxlcyB1c2luZworIG11bHRpLXBhcnQgcmVxdWVzdHMuCis8UD4KKzxCPlNlZTo8L0I+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8QSBIUkVGPSIjcGFja2FnZV9kZXNjcmlwdGlvbiI+PEI+RGVzY3JpcHRpb248L0I+PC9BPgorPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkludGVyZmFjZSBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkZvcm1GaWxlLmh0bWwiPjxJPkZvcm1GaWxlPC9JPjwvQT48L0I+PC9URD4KKzxURD5UaGlzIGludGVyZmFjZSByZXByZXNlbnRzIGEgZmlsZSB0aGF0IGhhcyBiZWVuIHVwbG9hZGVkIGJ5IGEgY2xpZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEk+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0k+PC9BPjwvQj48L1REPgorPFREPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyIHByb3ZpZGVzIGFuIHN0YW5kYXJkIGludGVyZmFjZSBmb3Igc3RydXRzIHRvCisgZGVhbCB3aXRoIGZpbGUgdXBsb2FkcyBmcm9tIGZvcm1zIHdpdGggZW5jdHlwZXMgb2YgIm11bHRpcGFydC9mb3JtLWRhdGEiLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworCis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJCdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtLmh0bWwiPkJ1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW08L0E+PC9CPjwvVEQ+Cis8VEQ+VGhpcyBjbGFzcyBpbXBsZW1lbnRzIGJ1ZmZlcmluZyBmb3IgYW4gSW5wdXRTdHJlYW0gYXMgd2VsbCBhcyBhCisgcmVhZExpbmUgbWV0aG9kLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT48L0I+PC9URD4KKzxURD5UaGlzIGNsYXNzIGltcGxlbWVudHMgdGhlIDxjb2RlPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9jb2RlPiBpbnRlcmZhY2UKKyBieSBwcm92aWRpbmcgYSB3cmFwcGVyIGFyb3VuZCB0aGUgSmFrYXJ0YSBDb21tb25zIEZpbGVVcGxvYWQgbGlicmFyeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZTwvQT48L0I+PC9URD4KKzxURD5UaGlzIGNsYXNzIGltcGxlbWVudHMgdGhlIFN0cnV0cyA8Y29kZT5Gb3JtRmlsZTwvY29kZT4gaW50ZXJmYWNlIGJ5Cisgd3JhcHBpbmcgdGhlIENvbW1vbnMgRmlsZVVwbG9hZCA8Y29kZT5GaWxlSXRlbTwvY29kZT4gaW50ZXJmYWNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRGlza0ZpbGUuaHRtbCI+RGlza0ZpbGU8L0E+PC9CPjwvVEQ+Cis8VEQ+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJEaXNrTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+RGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPjwvQj48L1REPgorPFREPlRoaXMgaXMgYSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciB0aGF0IHdyaXRlcyBmaWxlIGRhdGEgZGlyZWN0bHkgdG8KKyB0byB0ZW1wb3JhcnkgZmlsZXMgb24gZGlzay48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQT48L0I+PC9URD4KKzxURD5UaGlzIGNsYXNzIGVuY2Fwc3VsYXRlcyBwYXJzaW5nIGZ1bmN0aW9uYWxpdHkgZm9yIFJGQzE4NjcsIG11bHRpcGFydC9mb3JtLWRhdGEuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJNdWx0aXBhcnRFbGVtZW50Lmh0bWwiPk11bHRpcGFydEVsZW1lbnQ8L0E+PC9CPjwvVEQ+Cis8VEQ+VGhpcyBjbGFzcyByZXByZXNlbnRzIGFuIGVsZW1lbnQgaW4gYSBtdWx0aXBhcnQgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik11bHRpcGFydEl0ZXJhdG9yLmh0bWwiPk11bHRpcGFydEl0ZXJhdG9yPC9BPjwvQj48L1REPgorPFREPlRoZSBNdWx0aXBhcnRJdGVyYXRvciBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgcmVhZGluZyB0aGUKKyBpbnB1dCBkYXRhIG9mIGEgbXVsdGlwYXJ0IHJlcXVlc3QgYW5kIHNwbGl0dGluZyBpdCB1cCBpbnRvCisgaW5wdXQgZWxlbWVudHMsIHdyYXBwZWQgaW5zaWRlIG9mIGEKKyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Q09ERT5NdWx0aXBhcnRFbGVtZW50PC9DT0RFPjwvQT4KKyBmb3IgZWFzeSBkZWZpbml0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXI8L0E+PC9CPjwvVEQ+Cis8VEQ+VGhpcyBjbGFzcyBmdW5jdGlvbnMgYXMgYSB3cmFwcGVyIGFyb3VuZCBIdHRwU2VydmxldFJlcXVlc3QgdG8KKyBwcm92aWRlIHdvcmtpbmcgZ2V0UGFyYW1ldGVyIG1ldGhvZHMgZm9yIG11bHRpcGFydCByZXF1ZXN0cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik11bHRpcGFydFZhbHVlU3RyZWFtLmh0bWwiPk11bHRpcGFydFZhbHVlU3RyZWFtPC9BPjwvQj48L1REPgorPFREPlRoaXMgY2xhc3MgaW1wbGVtZW50cyBhbiBpbnB1dFN0cmVhbSB0aGF0IHJlYWRzIGFub3RoZXIgc3RyZWFtIHVudGlsIAorIGEgbXVsdGlwYXJ0IGJvdW5kYXJ5IGlzIGZvdW5kLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworCis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RXhjZXB0aW9uIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT48L0I+PC9URD4KKzxURD5UaGlzIGV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiBtdWx0aXBhcnQgcG9zdCBkYXRhIGV4Y2VlZHMgdGhlIHZhbHVlCisgZ2l2ZW4gYnkgdGhlIENvbnRlbnQtTGVuZ3RoIGhlYWRlcjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+TWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0E+PC9CPjwvVEQ+Cis8VEQ+VGhpcyBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gbXVsdGlwYXJ0IHBvc3QgZGF0YSBleGNlZWRzIHRoZSBtYXhpbXVtCisgdmFsdWUgc2V0PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7CisKKzxQPgorPEEgTkFNRT0icGFja2FnZV9kZXNjcmlwdGlvbiI+PCEtLSAtLT48L0E+PEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQgRGVzY3JpcHRpb24KKzwvSDI+CisKKzxQPgorPHA+IFRoZSB1cGxvYWQgcGFja2FnZSBmYWNpbGl0aWVzIHRvIHVwbG9hZCBmaWxlcyB1c2luZworIG11bHRpLXBhcnQgcmVxdWVzdHMuPC9wPgorIDxicj4KKyA8YnI+CisgPGltZyBzcmM9ImRvYy1maWxlcy91cGxvYWRVTUwuanBnIiBhbHQ9IlVwbG9hZCBQYWNrYWdlIFVNTCIgPgorIDxicj4KKyAKKzxoMj5QYWNrYWdlIFNwZWNpZmljYXRpb248L2gyPgorICAgICAgIyMjIyMgRklMTCBJTiBBTlkgU1BFQ1MgTkVFREVEIEJZIEpBVkEgQ09NUEFUSUJJTElUWSBLSVQgIyMjIyMgICAgIAorPHVsPgorICAgPGxpPjxhIGhyZWY9IiI+IyMjIyMgUkVGRVIgVE8gQU5ZIEZSQU1FTUFLRVIgU1BFQ0lGSUNBVElPTiBIRVJFICMjIyMjPC9hPgorICAgPC9saT4KKyAKKzwvdWw+CisgCis8aDI+UmVsYXRlZCBEb2N1bWVudGF0aW9uPC9oMj4KKyAgICAgIEZvciBvdmVydmlld3MsIHR1dG9yaWFscywgZXhhbXBsZXMsIGd1aWRlcywgYW5kIHRvb2wgZG9jdW1lbnRhdGlvbiwgCitwbGVhc2UgIHNlZTogICAgIAorPHVsPgorICAgPGxpPjxhIGhyZWY9IiI+IyMjIyMgUkVGRVIgVE8gTk9OLVNQRUMgRE9DVU1FTlRBVElPTiBIRVJFICMjIyMjPC9hPgorICAgPC9saT4KKyAKKzwvdWw+CisgPCEtLSBQdXQgQHNlZSBhbmQgQHNpbmNlIHRhZ3MgZG93biBoZXJlLiAtLT4KKzxQPgorCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Qj5QUkVWIFBBQ0tBR0U8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS10cmVlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MDEzZTUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2UtdHJlZS5odG1sCkBAIC0wLDAgKzEsMTUzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU2IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorSGllcmFyY2h5IEZvciBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZAorPC9IMj4KKzwvQ0VOVEVSPgorPERMPgorPERUPjxCPlBhY2thZ2UgSGllcmFyY2hpZXM6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy10cmVlLmh0bWwiPkFsbCBQYWNrYWdlczwvQT48L0RMPgorPEhSPgorPEgyPgorQ2xhc3MgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLk9iamVjdDxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxCPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuQ29tbW9uc0Zvcm1GaWxlLmh0bWwiPjxCPkNvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGU8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+PEI+RGlza0ZpbGU8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxCPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5pby5JbnB1dFN0cmVhbTxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbS5odG1sIj48Qj5CdWZmZXJlZE11bHRpcGFydElucHV0U3RyZWFtPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW0uaHRtbCI+PEI+TXVsdGlwYXJ0Qm91bmRhcnlJbnB1dFN0cmVhbTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRWYWx1ZVN0cmVhbS5odG1sIj48Qj5NdWx0aXBhcnRWYWx1ZVN0cmVhbTwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Qj5NdWx0aXBhcnRFbGVtZW50PC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPjxCPk11bHRpcGFydEl0ZXJhdG9yPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPjxCPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEubGFuZy5UaHJvd2FibGUgKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuRXhjZXB0aW9uPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5pby5JT0V4Y2VwdGlvbjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPjxCPkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIj48Qj5NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQj48L0E+PC9VTD4KKzwvVUw+Cis8L1VMPgorPC9VTD4KKzwvVUw+Cis8SDI+CitJbnRlcmZhY2UgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+PEI+Rm9ybUZpbGU8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxCPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPjwvQT48L1VMPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPk5FWFQ8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXVzZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXVzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxZjQxMDIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2UtdXNlLmh0bWwKQEAgLTAsMCArMSwyMzUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDkgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIFBhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBQYWNrYWdlPGJyPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQj48L0E+PC9URD4KKzxURD4gVGhlIGFjdGlvbiBwYWNrYWdlIGlzIHRoZSBjb3JlIG9mIHRoZSBzdHJ1dHMgZnJhbWV3b3JrLAorICAgIHByb3ZpZGluZyB0aGUgIkNvbnRyb2xsZXIiIGFzcGVjdCBvZiBhIE1WQyBtb2RlbC4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQj48L0E+PC9URD4KKzxURD5UaGUgImNvbmZpZyIgcGFja2FnZSBjb250YWlucyBjb25maWd1cmF0aW9uIG9iamVjdHMgdGhhdCBjb3JyZXNwb25kIHRvCitlbGVtZW50cyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPgorbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQj48L0E+PC9URD4KKzxURD4gVGhlIHVwbG9hZCBwYWNrYWdlIGZhY2lsaXRpZXMgdG8gdXBsb2FkIGZpbGVzIHVzaW5nCisgbXVsdGktcGFydCByZXF1ZXN0cy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy51dGlsIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9CPjwvQT48L1REPgorPFREPlRoZSBVdGlsaXRpZXMgcGFja2FnZSBwcm92aWRlcyBhIHZhcmlldHkgb2YgZmFtaWxpZXMgb2YgY2xhc3NlcywKK3RvIHNvbHZlIHByb2JsZW1zIHRoYXQgYXJlIGNvbW1vbmx5IGVuY291bnRlcmVkIGluIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO011bHRpcGFydFJlcXVlc3RIYW5kbGVyIHByb3ZpZGVzIGFuIHN0YW5kYXJkIGludGVyZmFjZSBmb3Igc3RydXRzIHRvCisgZGVhbCB3aXRoIGZpbGUgdXBsb2FkcyBmcm9tIGZvcm1zIHdpdGggZW5jdHlwZXMgb2YgIm11bHRpcGFydC9mb3JtLWRhdGEiLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvY2xhc3MtdXNlL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5NdWx0aXBhcnRSZXF1ZXN0V3JhcHBlcjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGNsYXNzIGZ1bmN0aW9ucyBhcyBhIHdyYXBwZXIgYXJvdW5kIEh0dHBTZXJ2bGV0UmVxdWVzdCB0bworIHByb3ZpZGUgd29ya2luZyBnZXRQYXJhbWV0ZXIgbWV0aG9kcyBmb3IgbXVsdGlwYXJ0IHJlcXVlc3RzLjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvY2xhc3MtdXNlL0Zvcm1GaWxlLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIj48Qj5Gb3JtRmlsZTwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGludGVyZmFjZSByZXByZXNlbnRzIGEgZmlsZSB0aGF0IGhhcyBiZWVuIHVwbG9hZGVkIGJ5IGEgY2xpZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkIj48Qj5NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoaXMgY2xhc3MgZW5jYXBzdWxhdGVzIHBhcnNpbmcgZnVuY3Rpb25hbGl0eSBmb3IgUkZDMTg2NywgbXVsdGlwYXJ0L2Zvcm0tZGF0YS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvTXVsdGlwYXJ0RWxlbWVudC5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZCI+PEI+TXVsdGlwYXJ0RWxlbWVudDwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGNsYXNzIHJlcHJlc2VudHMgYW4gZWxlbWVudCBpbiBhIG11bHRpcGFydCByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL2NsYXNzLXVzZS9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sI29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZCI+PEI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIgcHJvdmlkZXMgYW4gc3RhbmRhcmQgaW50ZXJmYWNlIGZvciBzdHJ1dHMgdG8KKyBkZWFsIHdpdGggZmlsZSB1cGxvYWRzIGZyb20gZm9ybXMgd2l0aCBlbmN0eXBlcyBvZiAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9jbGFzcy11c2UvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51dGlsIj48Qj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciBwcm92aWRlcyBhbiBzdGFuZGFyZCBpbnRlcmZhY2UgZm9yIHN0cnV0cyB0bworIGRlYWwgd2l0aCBmaWxlIHVwbG9hZHMgZnJvbSBmb3JtcyB3aXRoIGVuY3R5cGVzIG9mICJtdWx0aXBhcnQvZm9ybS1kYXRhIi48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FwcEV4Y2VwdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXBwRXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhjMTA3YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FwcEV4Y2VwdGlvbi5odG1sCkBAIC0wLDAgKzEsMzc5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorQXBwRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkFwcEV4Y2VwdGlvbixBcHBFeGNlcHRpb24gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkFwcEV4Y2VwdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BcHBFeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFwcEV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Nb2R1bGVFeGNlcHRpb24iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1vZHVsZUV4Y2VwdGlvbiI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBBcHBFeGNlcHRpb248L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS1qYXZhLmxhbmcuVGhyb3dhYmxlCisgICAgICAgIHwKKyAgICAgICAgKy0tamF2YS5sYW5nLkV4Y2VwdGlvbgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTW9kdWxlRXhjZXB0aW9uPC9BPgorICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuQXBwRXhjZXB0aW9uPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sIj48Q09ERT5Nb2R1bGVFeGNlcHRpb248L0NPREU+PC9BPjwvST4KKzxQPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5BcHBFeGNlcHRpb248L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+TW9kdWxlRXhjZXB0aW9uPC9BPjwvREw+CisKKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5BcHBFeGNlcHRpb24iPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1vZHVsZUV4Y2VwdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwiPk1vZHVsZUV4Y2VwdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sI2Vycm9yIj5lcnJvcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLkV4Y2VwdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuRXhjZXB0aW9uPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuVGhyb3dhYmxlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5UaHJvd2FibGU8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FwcEV4Y2VwdGlvbi5odG1sI0FwcEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+QXBwRXhjZXB0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO0NvbnN0cnVjdCBhbiBtb2R1bGUgZXhjZXB0aW9uIHdpdGggbm8gcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcHBFeGNlcHRpb24uaHRtbCNBcHBFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPkFwcEV4Y2VwdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29uc3RydWN0IGFuIG1vZHVsZSBleGNlcHRpb24gd2l0aCB0aGUgc3BlY2lmaWVkIHJlcGxhY2VtZW50IHZhbHVlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXBwRXhjZXB0aW9uLmh0bWwjQXBwRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3RbXSkiPkFwcEV4Y2VwdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdFtdJm5ic3A7dmFsdWVzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcHBFeGNlcHRpb24uaHRtbCNBcHBFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPkFwcEV4Y2VwdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMCwKKyAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUxKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29uc3RydWN0IGFuIG1vZHVsZSBleGNlcHRpb24gd2l0aCB0aGUgc3BlY2lmaWVkIHJlcGxhY2VtZW50IHZhbHVlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXBwRXhjZXB0aW9uLmh0bWwjQXBwRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5BcHBFeGNlcHRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTAsCisgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMSwKKyAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29uc3RydWN0IGFuIG1vZHVsZSBleGNlcHRpb24gd2l0aCB0aGUgc3BlY2lmaWVkIHJlcGxhY2VtZW50IHZhbHVlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXBwRXhjZXB0aW9uLmh0bWwjQXBwRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5BcHBFeGNlcHRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTAsCisgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMSwKKyAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUyLAorICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtDb25zdHJ1Y3QgYW4gbW9kdWxlIGV4Y2VwdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnV0aWwuTW9kdWxlRXhjZXB0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwiPk1vZHVsZUV4Y2VwdGlvbjwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sI2dldEVycm9yKCkiPmdldEVycm9yPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5UaHJvd2FibGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5UaHJvd2FibGU8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maWxsSW5TdGFja1RyYWNlLCBnZXRDYXVzZSwgZ2V0TG9jYWxpemVkTWVzc2FnZSwgZ2V0TWVzc2FnZSwgZ2V0U3RhY2tUcmFjZSwgaW5pdENhdXNlLCBwcmludFN0YWNrVHJhY2UsIHByaW50U3RhY2tUcmFjZSwgcHJpbnRTdGFja1RyYWNlLCBzZXRTdGFja1RyYWNlLCB0b1N0cmluZzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkFwcEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorQXBwRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QXBwRXhjZXB0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db25zdHJ1Y3QgYW4gbW9kdWxlIGV4Y2VwdGlvbiB3aXRoIG5vIHJlcGxhY2VtZW50IHZhbHVlcy4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSBrZXkgZm9yIHRoaXMgZXJyb3IgbWVzc2FnZTwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkFwcEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorQXBwRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QXBwRXhjZXB0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNvbnN0cnVjdCBhbiBtb2R1bGUgZXhjZXB0aW9uIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIE1lc3NhZ2Uga2V5IGZvciB0aGlzIGVycm9yIG1lc3NhZ2U8REQ+PENPREU+dmFsdWU8L0NPREU+IC0gRmlyc3QgcmVwbGFjZW1lbnQgdmFsdWU8L0RMPgorPEhSPgorCis8QSBOQU1FPSJBcHBFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK0FwcEV4Y2VwdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFwcEV4Y2VwdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMCwKKyAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+Q29uc3RydWN0IGFuIG1vZHVsZSBleGNlcHRpb24gd2l0aCB0aGUgc3BlY2lmaWVkIHJlcGxhY2VtZW50IHZhbHVlcy4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSBrZXkgZm9yIHRoaXMgZXJyb3IgbWVzc2FnZTxERD48Q09ERT52YWx1ZTA8L0NPREU+IC0gRmlyc3QgcmVwbGFjZW1lbnQgdmFsdWU8REQ+PENPREU+dmFsdWUxPC9DT0RFPiAtIFNlY29uZCByZXBsYWNlbWVudCB2YWx1ZTwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkFwcEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorQXBwRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QXBwRXhjZXB0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwLAorICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUxLAorICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUyKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db25zdHJ1Y3QgYW4gbW9kdWxlIGV4Y2VwdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleSBmb3IgdGhpcyBlcnJvciBtZXNzYWdlPEREPjxDT0RFPnZhbHVlMDwvQ09ERT4gLSBGaXJzdCByZXBsYWNlbWVudCB2YWx1ZTxERD48Q09ERT52YWx1ZTE8L0NPREU+IC0gU2Vjb25kIHJlcGxhY2VtZW50IHZhbHVlPEREPjxDT0RFPnZhbHVlMjwvQ09ERT4gLSBUaGlyZCByZXBsYWNlbWVudCB2YWx1ZTwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkFwcEV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorQXBwRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+QXBwRXhjZXB0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwLAorICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUxLAorICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUyLAorICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUzKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db25zdHJ1Y3QgYW4gbW9kdWxlIGV4Y2VwdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleSBmb3IgdGhpcyBlcnJvciBtZXNzYWdlPEREPjxDT0RFPnZhbHVlMDwvQ09ERT4gLSBGaXJzdCByZXBsYWNlbWVudCB2YWx1ZTxERD48Q09ERT52YWx1ZTE8L0NPREU+IC0gU2Vjb25kIHJlcGxhY2VtZW50IHZhbHVlPEREPjxDT0RFPnZhbHVlMjwvQ09ERT4gLSBUaGlyZCByZXBsYWNlbWVudCB2YWx1ZTxERD48Q09ERT52YWx1ZTM8L0NPREU+IC0gRm91cnRoIHJlcGxhY2VtZW50IHZhbHVlPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iQXBwRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3RbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK0FwcEV4Y2VwdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkFwcEV4Y2VwdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdFtdJm5ic3A7dmFsdWVzKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5Db25zdHJ1Y3QgYW4gYWN0aW9uIGVycm9yIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIE1lc3NhZ2Uga2V5IGZvciB0aGlzIG1lc3NhZ2U8REQ+PENPREU+dmFsdWVzPC9DT0RFPiAtIEFycmF5IG9mIHJlcGxhY2VtZW50IHZhbHVlczwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9BcHBFeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkFwcEV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Nb2R1bGVFeGNlcHRpb24iPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1vZHVsZUV4Y2VwdGlvbiI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE4OWFiYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbApAQCAtMCwwICsxLDM2MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0Vycm9yTWVzc2FnZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRXJyb3JNZXNzYWdlcyxFcnJvck1lc3NhZ2VzIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJFcnJvck1lc3NhZ2VzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0Vycm9yTWVzc2FnZXMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRXJyb3JNZXNzYWdlcy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzIEVycm9yTWVzc2FnZXM8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkVycm9yTWVzc2FnZXM8L0I+Cis8L1BSRT4KKzxIUj4KKzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzIGluc3RlYWQ8L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+RXJyb3JNZXNzYWdlczwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4KKworPFA+CitVdGlsaXR5IGNsYXNzIHRoYXQgaXMgdXNlZnVsIGZvciBhY2N1bXVsYXRpbmcgZXJyb3IgbWVzc2FnZSBrZXlzIGluCisgYWN0aW9uIGNsYXNzZXMgb3IgdmFsaWRhdGlvbiBtZXRob2RzLiAgVXNlIHRoaXMgY2xhc3MgYXMgZm9sbG93czoKKyA8dWw+CisgPGxpPkF0IHRoZSBiZWdpbm5pbmcgb2YgeW91ciBhY3Rpb24gY2xhc3Mgb3IgdmFsaWRhdGlvbiBtZXRob2QsCisgICAgIGluc3RhbnRpYXRlIGFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgaW4gYSBsb2NhbCB2YXJpYWJsZS48L2xpPgorIDxsaT5XaGVuZXZlciB5b3Ugd2lzaCB0byBhZGQgYSBuZXcgZXJyb3IgbWVzc2FnZSBrZXksIGNhbGwgdGhlCisgICAgIDxjb2RlPmFkZEVycm9yKCk8L2NvZGU+IG1ldGhvZCB0byBhZGQgaXQuPC9saT4KKyA8bGk+VG8gcmV0dXJuIHRoZSBTdHJpbmcgYXJyYXkgb2YgZXJyb3IgbWVzc2FnZSBrZXlzIHJlcXVpcmVkIGJ5CisgICAgIG90aGVyIFN0cnV0cyBjb21wb25lbnRzLCBjYWxsIDxjb2RlPmdldEVycm9ycygpPC9jb2RlPi4KKyA8L3VsPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+RGF2aWQgR2Vhcnk8L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLnV0aWwuVmVjdG9yPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sI2Vycm9ycyI+ZXJyb3JzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1RoZSBhY2N1bXVsYXRlZCBzZXQgb2YgZXJyb3IgbWVzc2FnZSBrZXlzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwjRXJyb3JNZXNzYWdlcygpIj5FcnJvck1lc3NhZ2VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbCNhZGRFcnJvcihqYXZhLmxhbmcuU3RyaW5nKSI+YWRkRXJyb3I8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7QWRkIGFuIGVycm9yIG1lc3NhZ2Uga2V5IHRvIHRoZSBhY2N1bXVsYXRlZCBzZXQgb2YgZXJyb3JzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sI2dldEVycm9yKGludCkiPmdldEVycm9yPC9BPjwvQj4oaW50Jm5ic3A7aW5kZXgpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIGVycm9yIG1lc3NhZ2Uga2V5IGF0IHRoZSBzcGVjaWZpZWQgemVyby1yZWxhdGl2ZSBpbmRleC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZ1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sI2dldEVycm9ycygpIj5nZXRFcnJvcnM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXR1cm4gdGhlIHNldCBvZiBlcnJvciBtZXNzYWdlIGtleXMgd2UgaGF2ZSBhY2N1bXVsYXRlZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sI2dldFNpemUoKSI+Z2V0U2l6ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1JldHVybiB0aGUgbnVtYmVyIG9mIGVycm9yIG1lc3NhZ2Uga2V5cyB3ZSBoYXZlIGFjY3VtdWxhdGVkIHNvIGZhci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImVycm9ycyI+PCEtLSAtLT48L0E+PEgzPgorZXJyb3JzPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEudXRpbC5WZWN0b3IgPEI+ZXJyb3JzPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgYWNjdW11bGF0ZWQgc2V0IG9mIGVycm9yIG1lc3NhZ2Uga2V5cy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJFcnJvck1lc3NhZ2VzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0Vycm9yTWVzc2FnZXM8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5FcnJvck1lc3NhZ2VzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iYWRkRXJyb3IoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2FkZEVycm9yPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5hZGRFcnJvcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+QWRkIGFuIGVycm9yIG1lc3NhZ2Uga2V5IHRvIHRoZSBhY2N1bXVsYXRlZCBzZXQgb2YgZXJyb3JzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIGVycm9yIG1lc3NhZ2Uga2V5IHRvIGJlIGFkZGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRFcnJvcihpbnQpIj48IS0tIC0tPjwvQT48SDM+CitnZXRFcnJvcjwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RXJyb3I8L0I+KGludCZuYnNwO2luZGV4KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlIGVycm9yIG1lc3NhZ2Uga2V5IGF0IHRoZSBzcGVjaWZpZWQgemVyby1yZWxhdGl2ZSBpbmRleC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aW5kZXg8L0NPREU+IC0gWmVyby1yZWxhdGl2ZSBpbmRleCBvZiB0aGUgZXJyb3IgbWVzc2FnZSBrZXkgdG8gcmV0dXJuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRFcnJvcnMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RXJyb3JzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZ1tdIDxCPmdldEVycm9yczwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXR1cm4gdGhlIHNldCBvZiBlcnJvciBtZXNzYWdlIGtleXMgd2UgaGF2ZSBhY2N1bXVsYXRlZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0U2l6ZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRTaXplPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldFNpemU8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0dXJuIHRoZSBudW1iZXIgb2YgZXJyb3IgbWVzc2FnZSBrZXlzIHdlIGhhdmUgYWNjdW11bGF0ZWQgc28gZmFyLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9FcnJvck1lc3NhZ2VzLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYgQ0xBU1MmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkVycm9yTWVzc2FnZXMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9HZW5lcmljRGF0YVNvdXJjZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODhmZWMxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbApAQCAtMCwwICsxLDI1NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0dlbmVyaWNEYXRhU291cmNlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkdlbmVyaWNEYXRhU291cmNlLEdlbmVyaWNEYXRhU291cmNlIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJHZW5lcmljRGF0YVNvdXJjZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9HZW5lcmljRGF0YVNvdXJjZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmxlZ2FjeS5HZW5lcmljRGF0YVNvdXJjZSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmxlZ2FjeS5HZW5lcmljRGF0YVNvdXJjZSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwO01FVEhPRDwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBHZW5lcmljRGF0YVNvdXJjZTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLW9yZy5hcGFjaGUuc3RydXRzLmxlZ2FjeS5HZW5lcmljRGF0YVNvdXJjZQorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuR2VuZXJpY0RhdGFTb3VyY2U8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZheC5zcWwuRGF0YVNvdXJjZTwvREQ+Cis8L0RMPgorPEhSPgorPEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGEgPGNvZGU+QmFzaWNEYXRhU291cmNlPC9jb2RlPiBkaXJlY3RseSwgb3IgaW5kaXJlY3RseQorICBhY3F1aXJlIGEgZGF0YSBzb3VyY2UgcHJvdmlkZWQgYnkgeW91ciBjb250YWluZXI8L0k+Cis8UD4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+R2VuZXJpY0RhdGFTb3VyY2U8L0I+PERUPmV4dGVuZHMgb3JnLmFwYWNoZS5zdHJ1dHMubGVnYWN5LkdlbmVyaWNEYXRhU291cmNlPC9ETD4KKworPFA+Cis8cD5XcmFwcGVyIGFyb3VuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMubGVnYWN5LkdlbmVyaWNEYXRhU291cmNlPC9jb2RlPi4KKyBUaGUgR2VuZXJpY0RhdGFTb3VyY2UgaXMgbm93IGRpc3RyaWJ1dGVkIHNlcGFyYXRlbHkgdG8gd29yayBhcm91bmQKKyBjb21waWxhdGlvbiBpc3N1ZXMgYmV0d2VlbiBKMlNFIDEuMyBhbmQgSjJTRSAxLjQuPC9wPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbiwgVGVkIEh1c3RlZDwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5sZWdhY3kuR2VuZXJpY0RhdGFTb3VyY2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMubGVnYWN5LkdlbmVyaWNEYXRhU291cmNlPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+YWN0aXZlQ291bnQsIGF1dG9Db21taXQsIGNsb3NlZCwgY29ubmVjdGlvbnMsIGRlYnVnLCBkZXNjcmlwdGlvbiwgZHJpdmVyLCBkcml2ZXJDbGFzcywgbG9nLCBsb2dpblRpbWVvdXQsIGxvZ1dyaXRlciwgbWF4Q291bnQsIG1pbkNvdW50LCBwYXNzd29yZCwgcGluZ0NvbW1hbmQsIHBpbmdRdWVyeSwgcHJvcGVydGllcywgcmVhZE9ubHksIHVybCwgdXNlQ291bnQsIHVzZXI8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwjR2VuZXJpY0RhdGFTb3VyY2UoKSI+R2VuZXJpY0RhdGFTb3VyY2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5sZWdhY3kuR2VuZXJpY0RhdGFTb3VyY2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmxlZ2FjeS5HZW5lcmljRGF0YVNvdXJjZTwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmFkZFByb3BlcnR5LCBjbG9zZSwgY3JlYXRlQ29ubmVjdGlvbiwgZ2V0QWN0aXZlQ291bnQsIGdldEF1dG9Db21taXQsIGdldENvbm5lY3Rpb24sIGdldENvbm5lY3Rpb24sIGdldERlYnVnLCBnZXREZXNjcmlwdGlvbiwgZ2V0RHJpdmVyQ2xhc3MsIGdldExvZ2luVGltZW91dCwgZ2V0TG9nV3JpdGVyLCBnZXRNYXhDb3VudCwgZ2V0TWluQ291bnQsIGdldFBhc3N3b3JkLCBnZXRQaW5nQ29tbWFuZCwgZ2V0UGluZ1F1ZXJ5LCBnZXRSZWFkT25seSwgZ2V0VXJsLCBnZXRVc2VDb3VudCwgZ2V0VXNlciwgbG9nLCBsb2csIG9wZW4sIHBpbmcsIHNldEF1dG9Db21taXQsIHNldERlYnVnLCBzZXREZXNjcmlwdGlvbiwgc2V0RHJpdmVyQ2xhc3MsIHNldExvZ2luVGltZW91dCwgc2V0TG9nV3JpdGVyLCBzZXRNYXhDb3VudCwgc2V0TWluQ291bnQsIHNldFBhc3N3b3JkLCBzZXRQaW5nQ29tbWFuZCwgc2V0UGluZ1F1ZXJ5LCBzZXRSZWFkT25seSwgc2V0VXJsLCBzZXRVc2VyLCB0b1N0cmluZzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkdlbmVyaWNEYXRhU291cmNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0dlbmVyaWNEYXRhU291cmNlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+R2VuZXJpY0RhdGFTb3VyY2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9FcnJvck1lc3NhZ2VzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkdlbmVyaWNEYXRhU291cmNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5sZWdhY3kuR2VuZXJpY0RhdGFTb3VyY2UiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5sZWdhY3kuR2VuZXJpY0RhdGFTb3VyY2UiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDtNRVRIT0Q8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvSW1hZ2VCdXR0b25CZWFuLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDZhOWVmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvSW1hZ2VCdXR0b25CZWFuLmh0bWwKQEAgLTAsMCArMSw0NTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitJbWFnZUJ1dHRvbkJlYW4gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuSW1hZ2VCdXR0b25CZWFuLEltYWdlQnV0dG9uQmVhbiBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iSW1hZ2VCdXR0b25CZWFuIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0ltYWdlQnV0dG9uQmVhbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkltYWdlQnV0dG9uQmVhbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzIEltYWdlQnV0dG9uQmVhbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuSW1hZ2VCdXR0b25CZWFuPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+SW1hZ2VCdXR0b25CZWFuPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorQSBzaW1wbGUgSmF2YUJlYW4gdG8gZW5jYXBzdWxhdGUgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyBzZW50IGZvciBhbiBIVE1MCisgaW5wdXQgZWxlbWVudCBvZiB0eXBlIGltYWdlLiBTdWNoIGFuIGVsZW1lbnQgY2F1c2VzIHR3byBwYXJhbWV0ZXJzIHRvIGJlCisgc2VudCwgb25lIGVhY2ggZm9yIHRoZSBYIGFuZCBZIGNvb3JkaW5hdGVzIG9mIHRoZSBidXR0b24gcHJlc3MuIEFuIGluc3RhbmNlCisgb2YgdGhpcyBiZWFuIHdpdGhpbiBhbiA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBjYW4gYmUgdXNlZCB0byBjYXB0dXJlIHRoZXNlCisgYW5kIHByb3ZpZGUgYSBzaW1wbGUgbWVhbnMgb2YgZGV0ZWN0aW5nIHdoZXRoZXIgb3Igbm90IHRoZSBjb3JyZXNwb25kaW5nCisgaW1hZ2Ugd2FzIHNlbGVjdGVkLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+VGVkIEh1c3RlZCwgTWFydGluIEYgTiBDb29wZXI8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5JbWFnZUJ1dHRvbkJlYW4iPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCN4Ij54PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBYIGNvb3JkaW5hdGUgb2YgdGhlIGJ1dHRvbiBwcmVzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvSW1hZ2VCdXR0b25CZWFuLmh0bWwjeSI+eTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgWSBjb29yZGluYXRlIG9mIHRoZSBidXR0b24gcHJlc3MuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sI0ltYWdlQnV0dG9uQmVhbigpIj5JbWFnZUJ1dHRvbkJlYW48L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYW4gaW5zdGFuY2Ugd2l0aCBlbXB0eSBwcm9wZXJ0eSB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sI0ltYWdlQnV0dG9uQmVhbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+SW1hZ2VCdXR0b25CZWFuPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3gsCisgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3kpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYW4gaW5zdGFuY2Ugd2l0aCB0aGUgc3VwcGxpZWQgcHJvcGVydHkgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCNnZXRYKCkiPmdldFg8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sI2dldFkoKSI+Z2V0WTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvSW1hZ2VCdXR0b25CZWFuLmh0bWwjaXNTZWxlY3RlZCgpIj5pc1NlbGVjdGVkPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBjb252ZW5pZW5jZSBtZXRob2QgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBjb3JyZXNwb25kaW5nIGltYWdlCisgZWxlbWVudCB3YXMgc2VsZWN0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCNzZXRYKGphdmEubGFuZy5TdHJpbmcpIj5zZXRYPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3gpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sI3NldFkoamF2YS5sYW5nLlN0cmluZykiPnNldFk8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7eSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvSW1hZ2VCdXR0b25CZWFuLmh0bWwjdG9TdHJpbmcoKSI+dG9TdHJpbmc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBvYmplY3QuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IngiPjwhLS0gLS0+PC9BPjxIMz4KK3g8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj54PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBYIGNvb3JkaW5hdGUgb2YgdGhlIGJ1dHRvbiBwcmVzcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InkiPjwhLS0gLS0+PC9BPjxIMz4KK3k8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj55PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBZIGNvb3JkaW5hdGUgb2YgdGhlIGJ1dHRvbiBwcmVzcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJJbWFnZUJ1dHRvbkJlYW4oKSI+PCEtLSAtLT48L0E+PEgzPgorSW1hZ2VCdXR0b25CZWFuPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+SW1hZ2VCdXR0b25CZWFuPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIGluc3RhbmNlIHdpdGggZW1wdHkgcHJvcGVydHkgdmFsdWVzLgorPFA+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJJbWFnZUJ1dHRvbkJlYW4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK0ltYWdlQnV0dG9uQmVhbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPkltYWdlQnV0dG9uQmVhbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3gsCisgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt5KTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhbiBpbnN0YW5jZSB3aXRoIHRoZSBzdXBwbGllZCBwcm9wZXJ0eSB2YWx1ZXMuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+eDwvQ09ERT4gLSBUaGUgWCBjb29yZGluYXRlIG9mIHRoZSBidXR0b24gcHJlc3MuPEREPjxDT0RFPnk8L0NPREU+IC0gVGhlIFkgY29vcmRpbmF0ZSBvZiB0aGUgYnV0dG9uIHByZXNzLjwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFgoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0WDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0WDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0WChqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0WDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0WDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3gpPC9QUkU+Cis8REw+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRZKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFk8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldFk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFk8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt5KTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNTZWxlY3RlZCgpIj48IS0tIC0tPjwvQT48SDM+Citpc1NlbGVjdGVkPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc1NlbGVjdGVkPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+QSBjb252ZW5pZW5jZSBtZXRob2QgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBjb3JyZXNwb25kaW5nIGltYWdlCisgZWxlbWVudCB3YXMgc2VsZWN0ZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InRvU3RyaW5nKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3RvU3RyaW5nPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj50b1N0cmluZzwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT50b1N0cmluZzwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0ltYWdlQnV0dG9uQmVhbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkltYWdlQnV0dG9uQmVhbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg0OWYyZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sCkBAIC0wLDAgKzEsMzM4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorSXRlcmF0b3JBZGFwdGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkl0ZXJhdG9yQWRhcHRlcixJdGVyYXRvckFkYXB0ZXIgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ikl0ZXJhdG9yQWRhcHRlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9JdGVyYXRvckFkYXB0ZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJdGVyYXRvckFkYXB0ZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBJdGVyYXRvckFkYXB0ZXI8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkl0ZXJhdG9yQWRhcHRlcjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEudXRpbC5JdGVyYXRvcjwvREQ+Cis8L0RMPgorPEhSPgorPEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbnMtY29sbGVjdGlvbnMnIEl0ZXJhdG9yVXRpbHMuYXNJdGVyYXRvcihFbnVtZXJhdGlvbikuPC9JPgorPFA+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkl0ZXJhdG9yQWRhcHRlcjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS51dGlsLkl0ZXJhdG9yPC9ETD4KKworPFA+CitVdGlsaXR5IG1ldGhvZCBmb3IgY29udmVydGluZyBFbnVtZXJhdGlvbiB0byBhbiBJdGVyYXRvcgorIGNsYXNzLiAgSWYgeW91IGF0dGVtcHQgdG8gcmVtb3ZlKCkgYW4gT2JqZWN0IGZyb20gdGhlIGl0ZXJhdG9yLCBpdCB3aWxsCisgdGhyb3cgYW4gVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24uIEFkZGVkIGZvciB1c2UgYnkgVGFnTGliIHNvCisgRW51bWVyYXRpb24gY2FuIGJlIHN1cHBvcnRlZAorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+U2VhbiBNLiBLZWxsZXksIFJvYiBMZWxhbmQ8L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLnV0aWwuRW51bWVyYXRpb248L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCNlbnVtIj5lbnVtPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCNJdGVyYXRvckFkYXB0ZXIoamF2YS51dGlsLkVudW1lcmF0aW9uKSI+SXRlcmF0b3JBZGFwdGVyPC9BPjwvQj4oamF2YS51dGlsLkVudW1lcmF0aW9uJm5ic3A7ZW51bSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCNoYXNOZXh0KCkiPmhhc05leHQ8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLk9iamVjdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sI25leHQoKSI+bmV4dDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwjcmVtb3ZlKCkiPnJlbW92ZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZW51bSI+PCEtLSAtLT48L0E+PEgzPgorZW51bTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBqYXZhLnV0aWwuRW51bWVyYXRpb24gPEI+ZW51bTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Ikl0ZXJhdG9yQWRhcHRlcihqYXZhLnV0aWwuRW51bWVyYXRpb24pIj48IS0tIC0tPjwvQT48SDM+CitJdGVyYXRvckFkYXB0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5JdGVyYXRvckFkYXB0ZXI8L0I+KGphdmEudXRpbC5FbnVtZXJhdGlvbiZuYnNwO2VudW0pPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iaGFzTmV4dCgpIj48IS0tIC0tPjwvQT48SDM+CitoYXNOZXh0PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5oYXNOZXh0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5oYXNOZXh0PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YS51dGlsLkl0ZXJhdG9yPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibmV4dCgpIj48IS0tIC0tPjwvQT48SDM+CituZXh0PC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8Qj5uZXh0PC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5uZXh0PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+amF2YS51dGlsLkl0ZXJhdG9yPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVtb3ZlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK3JlbW92ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVtb3ZlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT5yZW1vdmU8L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT5qYXZhLnV0aWwuSXRlcmF0b3I8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9JdGVyYXRvckFkYXB0ZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJdGVyYXRvckFkYXB0ZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTGFiZWxWYWx1ZUJlYW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGVmZDUyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTGFiZWxWYWx1ZUJlYW4uaHRtbApAQCAtMCwwICsxLDQwOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0xhYmVsVmFsdWVCZWFuIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkxhYmVsVmFsdWVCZWFuLExhYmVsVmFsdWVCZWFuIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJMYWJlbFZhbHVlQmVhbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9MYWJlbFZhbHVlQmVhbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTGFiZWxWYWx1ZUJlYW4uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBMYWJlbFZhbHVlQmVhbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTGFiZWxWYWx1ZUJlYW48L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5MYWJlbFZhbHVlQmVhbjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0Egc2ltcGxlIEphdmFCZWFuIHRvIHJlcHJlc2VudCBsYWJlbC12YWx1ZSBwYWlycy4gVGhpcyBpcyBtb3N0IGNvbW1vbmx5IHVzZWQKKyB3aGVuIGNvbnN0cnVjdGluZyB1c2VyIGludGVyZmFjZSBlbGVtZW50cyB3aGljaCBoYXZlIGEgbGFiZWwgdG8gYmUgZGlzcGxheWVkCisgdG8gdGhlIHVzZXIsIGFuZCBhIGNvcnJlc3BvbmRpbmcgdmFsdWUgdG8gYmUgcmV0dXJuZWQgdG8gdGhlIHNlcnZlci4gT25lCisgZXhhbXBsZSBpcyB0aGUgPGNvZGU+Jmx0O2h0bWw6b3B0aW9ucyZndDs8L2NvZGU+IHRhZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW4sIE1hcnRpbiBGIE4gQ29vcGVyPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTGFiZWxWYWx1ZUJlYW4iPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlICZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sI2xhYmVsIj5sYWJlbDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcHJvcGVydHkgd2hpY2ggc3VwcGxpZXMgdGhlIG9wdGlvbiBsYWJlbCB2aXNpYmxlIHRvIHRoZSBlbmQgdXNlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTGFiZWxWYWx1ZUJlYW4uaHRtbCN2YWx1ZSI+dmFsdWU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHByb3BlcnR5IHdoaWNoIHN1cHBsaWVzIHRoZSB2YWx1ZSByZXR1cm5lZCB0byB0aGUgc2VydmVyLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sI0xhYmVsVmFsdWVCZWFuKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5MYWJlbFZhbHVlQmVhbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsYWJlbCwKKyAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhbiBpbnN0YW5jZSB3aXRoIHRoZSBzdXBwbGllZCBwcm9wZXJ0eSB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwjZ2V0TGFiZWwoKSI+Z2V0TGFiZWw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwjZ2V0VmFsdWUoKSI+Z2V0VmFsdWU8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwjc2V0TGFiZWwoamF2YS5sYW5nLlN0cmluZykiPnNldExhYmVsPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xhYmVsKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sI3NldFZhbHVlKGphdmEubGFuZy5TdHJpbmcpIj5zZXRWYWx1ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTGFiZWxWYWx1ZUJlYW4uaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibGFiZWwiPjwhLS0gLS0+PC9BPjxIMz4KK2xhYmVsPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+bGFiZWw8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHByb3BlcnR5IHdoaWNoIHN1cHBsaWVzIHRoZSBvcHRpb24gbGFiZWwgdmlzaWJsZSB0byB0aGUgZW5kIHVzZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWx1ZSI+PCEtLSAtLT48L0E+PEgzPgordmFsdWU8L0gzPgorPFBSRT4KK3ByaXZhdGUgamF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgd2hpY2ggc3VwcGxpZXMgdGhlIHZhbHVlIHJldHVybmVkIHRvIHRoZSBzZXJ2ZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iTGFiZWxWYWx1ZUJlYW4oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK0xhYmVsVmFsdWVCZWFuPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TGFiZWxWYWx1ZUJlYW48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIGluc3RhbmNlIHdpdGggdGhlIHN1cHBsaWVkIHByb3BlcnR5IHZhbHVlcy4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5sYWJlbDwvQ09ERT4gLSBUaGUgbGFiZWwgdG8gYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyLjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBUaGUgdmFsdWUgdG8gYmUgcmV0dXJuZWQgdG8gdGhlIHNlcnZlci48L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRMYWJlbCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRMYWJlbDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TGFiZWw8L0I+KCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldExhYmVsKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRMYWJlbDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0TGFiZWw8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsYWJlbCk8L1BSRT4KKzxETD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbHVlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRWYWx1ZTwvQj4oKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0VmFsdWUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbHVlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRWYWx1ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ZhbHVlKTwvUFJFPgorPERMPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idG9TdHJpbmcoKSI+PCEtLSAtLT48L0E+PEgzPgordG9TdHJpbmc8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU3RyaW5nPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb2JqZWN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnRvU3RyaW5nPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTGFiZWxWYWx1ZUJlYW4uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkxhYmVsVmFsdWVCZWFuLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMzlhZTUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwKQEAgLTAsMCArMSwxMTY0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTWVzc2FnZVJlc291cmNlcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzLE1lc3NhZ2VSZXNvdXJjZXMgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik1lc3NhZ2VSZXNvdXJjZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTWVzc2FnZVJlc291cmNlcy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWVzc2FnZVJlc291cmNlcy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzIE1lc3NhZ2VSZXNvdXJjZXM8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXM8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgYWJzdHJhY3QgY2xhc3MgPEI+TWVzc2FnZVJlc291cmNlczwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KK0dlbmVyYWwgcHVycG9zZSBhYnN0cmFjdCBjbGFzcyB0aGF0IGRlc2NyaWJlcyBhbiBBUEkgZm9yIHJldHJpZXZpbmcKKyBMb2NhbGUtc2Vuc2l0aXZlIG1lc3NhZ2VzIGZyb20gdW5kZXJseWluZyByZXNvdXJjZSBsb2NhdGlvbnMgb2YgYW4KKyB1bnNwZWNpZmllZCBkZXNpZ24sIGFuZCBvcHRpb25hbGx5IHV0aWxpemluZyB0aGUgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4KKyBjbGFzcyB0byBwcm9kdWNlIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzIHdpdGggcGFyYW1ldHJpYyByZXBsYWNlbWVudC4KKyA8cD4KKyBDYWxscyB0byA8Y29kZT5nZXRNZXNzYWdlKCk8L2NvZGU+IHZhcmlhbnRzIHdpdGhvdXQgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+CisgYXJndW1lbnQgYXJlIHByZXN1bWVkIHRvIGJlIHJlcXVlc3RpbmcgYSBtZXNzYWdlIHN0cmluZyBpbiB0aGUgZGVmYXVsdAorIDxjb2RlPkxvY2FsZTwvY29kZT4gZm9yIHRoaXMgSlZNLgorIDxwPgorIENhbGxzIHRvIDxjb2RlPmdldE1lc3NhZ2UoKTwvY29kZT4gd2l0aCBhbiB1bmtub3duIGtleSwgb3IgYW4gdW5rbm93bgorIDxjb2RlPkxvY2FsZTwvY29kZT4gd2lsbCByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlCisgPGNvZGU+cmV0dXJuTnVsbDwvY29kZT4gcHJvcGVydHkgaXMgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LiAgT3RoZXJ3aXNlLAorIGEgc3VpdGFibGUgZXJyb3IgbWVzc2FnZSB3aWxsIGJlIHJldHVybmVkIGluc3RlYWQuCisgPHA+CisgPHN0cm9uZz5JTVBMRU1FTlRBVElPTiBOT1RFPC9zdHJvbmc+IC0gQ2xhc3NlcyB0aGF0IGV4dGVuZCB0aGlzIGNsYXNzCisgbXVzdCBiZSBTZXJpYWxpemFibGUgc28gdGhhdCBpbnN0YW5jZXMgbWF5IGJlIHVzZWQgaW4gZGlzdHJpYnV0YWJsZQorIGFwcGxpY2F0aW9uIHNlcnZlciBlbnZpcm9ubWVudHMuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2NvbmZpZyI+Y29uZmlnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciB1c2VkIHRvIGluaXRpYWxpemUgdGhpcyBNZXNzYWdlUmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZGVmYXVsdEZhY3RvcnkiPmRlZmF1bHRGYWN0b3J5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBkZWZhdWx0IE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IHVzZWQgdG8gY3JlYXRlIE1lc3NhZ2VSZXNvdXJjZXMKKyBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuTG9jYWxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2RlZmF1bHRMb2NhbGUiPmRlZmF1bHRMb2NhbGU8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGRlZmF1bHQgTG9jYWxlIGZvciBvdXIgZW52aXJvbm1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNmYWN0b3J5Ij5mYWN0b3J5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gdGhhdCBjcmVhdGVkIHRoaXMgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNmb3JtYXRzIj5mb3JtYXRzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXQgb2YgcHJldmlvdXNseSBjcmVhdGVkIE1lc3NhZ2VGb3JtYXQgb2JqZWN0cywga2V5ZWQgYnkgdGhlCisga2V5IGNvbXB1dGVkIGluIDxjb2RlPm1lc3NhZ2VLZXkoKTwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjbG9nIj5sb2c8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNyZXR1cm5OdWxsIj5yZXR1cm5OdWxsPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luZGljYXRlIGlzIGEgPGNvZGU+bnVsbDwvY29kZT4gaXMgcmV0dXJuZWQgaW5zdGVhZCBvZiBhbiBlcnJvciBtZXNzYWdlIHN0cmluZworIHdoZW4gYW4gdW5rbm93biBMb2NhbGUgb3Iga2V5IGlzIHJlcXVlc3RlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI01lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSwgamF2YS5sYW5nLlN0cmluZykiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPiZuYnNwO2ZhY3RvcnksCisgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSBuZXcgTWVzc2FnZVJlc291cmNlcyBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjTWVzc2FnZVJlc291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+TWVzc2FnZVJlc291cmNlczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Jm5ic3A7ZmFjdG9yeSwKKyAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbmZpZywKKyAgICAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO3JldHVybk51bGwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSBuZXcgTWVzc2FnZVJlc291cmNlcyBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2VzY2FwZShqYXZhLmxhbmcuU3RyaW5nKSI+ZXNjYXBlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3N0cmluZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0VzY2FwZSBhbnkgc2luZ2xlIHF1b3RlIGNoYXJhY3RlcnMgdGhhdCBhcmUgaW5jbHVkZWQgaW4gdGhlIHNwZWNpZmllZAorIG1lc3NhZ2Ugc3RyaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldENvbmZpZygpIj5nZXRDb25maWc8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdXNlZCB0byBpbml0aWFsaXplIHRoaXMgTWVzc2FnZVJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0RmFjdG9yeSgpIj5nZXRGYWN0b3J5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiB0aGF0IGNyZWF0ZWQgdGhpcyBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+YWJzdHJhY3QgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRNZXNzYWdlPC9BPjwvQj4oamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgYSB0ZXh0IG1lc3NhZ2UgZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBmb3IgdGhlIGRlZmF1bHQgTG9jYWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPmdldE1lc3NhZ2U8L0E+PC9CPihqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3RbXSkiPmdldE1lc3NhZ2U8L0E+PC9CPihqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0W10mbmJzcDthcmdzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPmdldE1lc3NhZ2U8L0E+PC9CPihqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMCwKKyAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzEpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+Z2V0TWVzc2FnZTwvQT48L0I+KGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcwLAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMSwKKyAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+Z2V0TWVzc2FnZTwvQT48L0I+KGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcwLAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMSwKKyAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzIsCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmczKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZykiPmdldE1lc3NhZ2U8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIHRleHQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGZvciB0aGUgZGVmYXVsdCBMb2NhbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+Z2V0TWVzc2FnZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcwKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+Z2V0TWVzc2FnZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3RbXSZuYnNwO2FyZ3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+Z2V0TWVzc2FnZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcwLAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5nZXRNZXNzYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzAsCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcxLAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5nZXRNZXNzYWdlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzAsCisgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcxLAorICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMiwKKyAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlUmVzb3VyY2VzKGphdmEubGFuZy5TdHJpbmcpIj5nZXRNZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbmQgcmV0dXJuIGFuIGluc3RhbmNlIG9mIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGZvciB0aGUKKyBjcmVhdGVkIGJ5IHRoZSBkZWZhdWx0IDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRSZXR1cm5OdWxsKCkiPmdldFJldHVybk51bGw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbmRpY2F0ZXMgdGhhdCBhIDxjb2RlPm51bGw8L2NvZGU+IGlzIHJldHVybmVkIGluc3RlYWQgb2YgYW4gZXJyb3IgbWVzc2FnZSBzdHJpbmcKKyBpZiBhbiB1bmtub3duIExvY2FsZSBvciBrZXkgaXMgcmVxdWVzdGVkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2lzUHJlc2VudChqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+aXNQcmVzZW50PC9BPjwvQj4oamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGlzIGEgZGVmaW5lZCBtZXNzYWdlIGZvciB0aGUgc3BlY2lmaWVkCisga2V5IGluIHRoZSBzcGVjaWZpZWQgTG9jYWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2lzUHJlc2VudChqYXZhLmxhbmcuU3RyaW5nKSI+aXNQcmVzZW50PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBpcyBhIGRlZmluZWQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZAorIGtleSBpbiB0aGUgc3lzdGVtIGRlZmF1bHQgbG9jYWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNsb2NhbGVLZXkoamF2YS51dGlsLkxvY2FsZSkiPmxvY2FsZUtleTwvQT48L0I+KGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wdXRlIGFuZCByZXR1cm4gYSBrZXkgdG8gYmUgdXNlZCBpbiBjYWNoaW5nIGluZm9ybWF0aW9uIGJ5IGEgTG9jYWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nKSI+bG9nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb2cgYSBtZXNzYWdlIHRvIHRoZSBXcml0ZXIgdGhhdCBoYXMgYmVlbiBjb25maWd1cmVkIGZvciBvdXIgdXNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+bG9nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UsCisgICAgamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO3Rocm93YWJsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0xvZyBhIG1lc3NhZ2UgYW5kIGV4Y2VwdGlvbiB0byB0aGUgV3JpdGVyIHRoYXQgaGFzIGJlZW4gY29uZmlndXJlZAorIGZvciBvdXIgdXNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNtZXNzYWdlS2V5KGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcpIj5tZXNzYWdlS2V5PC9BPjwvQj4oamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXB1dGUgYW5kIHJldHVybiBhIGtleSB0byBiZSB1c2VkIGluIGNhY2hpbmcgaW5mb3JtYXRpb24KKyBieSBMb2NhbGUgYW5kIG1lc3NhZ2Uga2V5LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNtZXNzYWdlS2V5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5tZXNzYWdlS2V5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsZUtleSwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbXB1dGUgYW5kIHJldHVybiBhIGtleSB0byBiZSB1c2VkIGluIGNhY2hpbmcgaW5mb3JtYXRpb24KKyBieSBsb2NhbGUga2V5IGFuZCBtZXNzYWdlIGtleS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNzZXRSZXR1cm5OdWxsKGJvb2xlYW4pIj5zZXRSZXR1cm5OdWxsPC9BPjwvQj4oYm9vbGVhbiZuYnNwO3JldHVybk51bGwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbmRpY2F0ZXMgdGhhdCBhIDxjb2RlPm51bGw8L2NvZGU+IGlzIHJldHVybmVkIGluc3RlYWQgb2YgYW4gZXJyb3IgbWVzc2FnZSBzdHJpbmcKKyBpZiBhbiB1bmtub3duIExvY2FsZSBvciBrZXkgaXMgcmVxdWVzdGVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibG9nIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb25maWciPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmZpZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+Y29uZmlnPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciB1c2VkIHRvIGluaXRpYWxpemUgdGhpcyBNZXNzYWdlUmVzb3VyY2VzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZGVmYXVsdExvY2FsZSI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdExvY2FsZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5Mb2NhbGUgPEI+ZGVmYXVsdExvY2FsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCBMb2NhbGUgZm9yIG91ciBlbnZpcm9ubWVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZhY3RvcnkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZhY3Rvcnk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPiA8Qj5mYWN0b3J5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gdGhhdCBjcmVhdGVkIHRoaXMgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJmb3JtYXRzIj48IS0tIC0tPjwvQT48SDM+Citmb3JtYXRzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS51dGlsLkhhc2hNYXAgPEI+Zm9ybWF0czwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIHByZXZpb3VzbHkgY3JlYXRlZCBNZXNzYWdlRm9ybWF0IG9iamVjdHMsIGtleWVkIGJ5IHRoZQorIGtleSBjb21wdXRlZCBpbiA8Y29kZT5tZXNzYWdlS2V5KCk8L2NvZGU+LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmV0dXJuTnVsbCI+PCEtLSAtLT48L0E+PEgzPgorcmV0dXJuTnVsbDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+cmV0dXJuTnVsbDwvQj48L1BSRT4KKzxETD4KKzxERD5JbmRpY2F0ZSBpcyBhIDxjb2RlPm51bGw8L2NvZGU+IGlzIHJldHVybmVkIGluc3RlYWQgb2YgYW4gZXJyb3IgbWVzc2FnZSBzdHJpbmcKKyB3aGVuIGFuIHVua25vd24gTG9jYWxlIG9yIGtleSBpcyByZXF1ZXN0ZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZWZhdWx0RmFjdG9yeSI+PCEtLSAtLT48L0E+PEgzPgorZGVmYXVsdEZhY3Rvcnk8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4gPEI+ZGVmYXVsdEZhY3Rvcnk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgdXNlZCB0byBjcmVhdGUgTWVzc2FnZVJlc291cmNlcworIGluc3RhbmNlcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNZXNzYWdlUmVzb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitNZXNzYWdlUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TWVzc2FnZVJlc291cmNlczwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4mbmJzcDtmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBuZXcgTWVzc2FnZVJlc291cmNlcyBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZhY3Rvcnk8L0NPREU+IC0gVGhlIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IHRoYXQgY3JlYXRlZCB1czxERD48Q09ERT5jb25maWc8L0NPREU+IC0gVGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGZvciB0aGlzIE1lc3NhZ2VSZXNvdXJjZXM8L0RMPgorPEhSPgorCis8QSBOQU1FPSJNZXNzYWdlUmVzb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitNZXNzYWdlUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TWVzc2FnZVJlc291cmNlczwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4mbmJzcDtmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtyZXR1cm5OdWxsKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhIG5ldyBNZXNzYWdlUmVzb3VyY2VzIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmFjdG9yeTwvQ09ERT4gLSBUaGUgTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgdGhhdCBjcmVhdGVkIHVzPEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBUaGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgZm9yIHRoaXMgTWVzc2FnZVJlc291cmNlczxERD48Q09ERT5yZXR1cm5OdWxsPC9DT0RFPiAtIFRoZSByZXR1cm5OdWxsIHByb3BlcnR5IHdlIHNob3VsZCBpbml0aWFsaXplIHdpdGg8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRDb25maWcoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0Q29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRDb25maWc8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5UaGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdXNlZCB0byBpbml0aWFsaXplIHRoaXMgTWVzc2FnZVJlc291cmNlcy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5wYXJhbWV0ZXIgdXNlZCB0byBpbml0aWFsaXplIHRoaXMgTWVzc2FnZVJlc291cmNlczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0RmFjdG9yeSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRGYWN0b3J5PC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4gPEI+Z2V0RmFjdG9yeTwvQj4oKTwvUFJFPgorPERMPgorPEREPlRoZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gdGhhdCBjcmVhdGVkIHRoaXMgaW5zdGFuY2UuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+PGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IHRoYXQgY3JlYXRlZCBpbnN0YW5jZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0UmV0dXJuTnVsbCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSZXR1cm5OdWxsPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5nZXRSZXR1cm5OdWxsPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+SW5kaWNhdGVzIHRoYXQgYSA8Y29kZT5udWxsPC9jb2RlPiBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mIGFuIGVycm9yIG1lc3NhZ2Ugc3RyaW5nCisgaWYgYW4gdW5rbm93biBMb2NhbGUgb3Iga2V5IGlzIHJlcXVlc3RlZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD50cnVlIGlmIG51bGwgaXMgcmV0dXJuZWQgaWYgdW5rbm93biBrZXkgb3IgbG9jYWxlIGlzIHJlcXVlc3RlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UmV0dXJuTnVsbChib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UmV0dXJuTnVsbDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UmV0dXJuTnVsbDwvQj4oYm9vbGVhbiZuYnNwO3JldHVybk51bGwpPC9QUkU+Cis8REw+Cis8REQ+SW5kaWNhdGVzIHRoYXQgYSA8Y29kZT5udWxsPC9jb2RlPiBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mIGFuIGVycm9yIG1lc3NhZ2Ugc3RyaW5nCisgaWYgYW4gdW5rbm93biBMb2NhbGUgb3Iga2V5IGlzIHJlcXVlc3RlZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmV0dXJuTnVsbDwvQ09ERT4gLSB0cnVlIEluZGljYXRlcyB0aGF0IGEgPGNvZGU+bnVsbDwvY29kZT4gaXMgcmV0dXJuZWQKKyBpZiBhbiB1bmtub3duIExvY2FsZSBvciBrZXkgaXMgcmVxdWVzdGVkLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWVzc2FnZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TWVzc2FnZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgZm9yIHRoZSBkZWZhdWx0IExvY2FsZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3RbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3RbXSZuYnNwO2FyZ3MpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXA8REQ+PENPREU+YXJnczwvQ09ERT4gLSBBbiBhcnJheSBvZiByZXBsYWNlbWVudCBwYXJhbWV0ZXJzIGZvciBwbGFjZWhvbGRlcnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcwKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwPEREPjxDT0RFPmFyZzA8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7MH0gaW4gdGhlIG1lc3NhZ2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBUaGUgbWVzc2FnZSBrZXkgdG8gbG9vayB1cDxERD48Q09ERT5hcmcwPC9DT0RFPiAtIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezB9IGluIHRoZSBtZXNzYWdlPEREPjxDT0RFPmFyZzE8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7MX0gaW4gdGhlIG1lc3NhZ2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzIpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXA8REQ+PENPREU+YXJnMDwvQ09ERT4gLSBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHswfSBpbiB0aGUgbWVzc2FnZTxERD48Q09ERT5hcmcxPC9DT0RFPiAtIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezF9IGluIHRoZSBtZXNzYWdlPEREPjxDT0RFPmFyZzI8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7Mn0gaW4gdGhlIG1lc3NhZ2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmczKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwPEREPjxDT0RFPmFyZzA8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7MH0gaW4gdGhlIG1lc3NhZ2U8REQ+PENPREU+YXJnMTwvQ09ERT4gLSBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHsxfSBpbiB0aGUgbWVzc2FnZTxERD48Q09ERT5hcmcyPC9DT0RFPiAtIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezJ9IGluIHRoZSBtZXNzYWdlPEREPjxDT0RFPmFyZzM8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7M30gaW4gdGhlIG1lc3NhZ2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBhYnN0cmFjdCBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGZvciB0aGUgZGVmYXVsdCBMb2NhbGUuCisgQSBudWxsIHN0cmluZyByZXN1bHQgd2lsbCBiZSByZXR1cm5lZCBieSB0aGlzIG1ldGhvZCBpZiBubyByZWxldmFudAorIG1lc3NhZ2UgcmVzb3VyY2UgaXMgZm91bmQgZm9yIHRoaXMga2V5IG9yIExvY2FsZSwgaWYgdGhlCisgPGNvZGU+cmV0dXJuTnVsbDwvY29kZT4gcHJvcGVydHkgaXMgc2V0LiAgT3RoZXJ3aXNlLCBhbiBhcHByb3ByaWF0ZQorIGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSByZXR1cm5lZC4KKyA8cD4KKyBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGEgY29uY3JldGUgc3ViY2xhc3MuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmxvY2FsZTwvQ09ERT4gLSBUaGUgcmVxdWVzdGVkIG1lc3NhZ2UgTG9jYWxlLCBvciA8Y29kZT5udWxsPC9jb2RlPgorICBmb3IgdGhlIHN5c3RlbSBkZWZhdWx0IExvY2FsZTxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXA8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWVzc2FnZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TWVzc2FnZTwvQj4oamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdFtdJm5ic3A7YXJncyk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuICBBIG51bGwgc3RyaW5nIHJlc3VsdCB3aWxsIGJlIHJldHVybmVkIGJ5CisgdGhpcyBtZXRob2QgaWYgbm8gcmVzb3VyY2UgYnVuZGxlIGhhcyBiZWVuIGNvbmZpZ3VyZWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmxvY2FsZTwvQ09ERT4gLSBUaGUgcmVxdWVzdGVkIG1lc3NhZ2UgTG9jYWxlLCBvciA8Y29kZT5udWxsPC9jb2RlPgorICBmb3IgdGhlIHN5c3RlbSBkZWZhdWx0IExvY2FsZTxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXA8REQ+PENPREU+YXJnczwvQ09ERT4gLSBBbiBhcnJheSBvZiByZXBsYWNlbWVudCBwYXJhbWV0ZXJzIGZvciBwbGFjZWhvbGRlcnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcwKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4gIEEgbnVsbCBzdHJpbmcgcmVzdWx0IHdpbGwgbmV2ZXIgYmUgcmV0dXJuZWQKKyBieSB0aGlzIG1ldGhvZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bG9jYWxlPC9DT0RFPiAtIFRoZSByZXF1ZXN0ZWQgbWVzc2FnZSBMb2NhbGUsIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgIGZvciB0aGUgc3lzdGVtIGRlZmF1bHQgTG9jYWxlPEREPjxDT0RFPmtleTwvQ09ERT4gLSBUaGUgbWVzc2FnZSBrZXkgdG8gbG9vayB1cDxERD48Q09ERT5hcmcwPC9DT0RFPiAtIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezB9IGluIHRoZSBtZXNzYWdlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPihqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzEpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLiAgQSBudWxsIHN0cmluZyByZXN1bHQgd2lsbCBuZXZlciBiZSByZXR1cm5lZAorIGJ5IHRoaXMgbWV0aG9kLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5sb2NhbGU8L0NPREU+IC0gVGhlIHJlcXVlc3RlZCBtZXNzYWdlIExvY2FsZSwgb3IgPGNvZGU+bnVsbDwvY29kZT4KKyAgZm9yIHRoZSBzeXN0ZW0gZGVmYXVsdCBMb2NhbGU8REQ+PENPREU+a2V5PC9DT0RFPiAtIFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwPEREPjxDT0RFPmFyZzA8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7MH0gaW4gdGhlIG1lc3NhZ2U8REQ+PENPREU+YXJnMTwvQ09ERT4gLSBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHsxfSBpbiB0aGUgbWVzc2FnZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWVzc2FnZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TWVzc2FnZTwvQj4oamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMik8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuICBBIG51bGwgc3RyaW5nIHJlc3VsdCB3aWxsIG5ldmVyIGJlIHJldHVybmVkCisgYnkgdGhpcyBtZXRob2QuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmxvY2FsZTwvQ09ERT4gLSBUaGUgcmVxdWVzdGVkIG1lc3NhZ2UgTG9jYWxlLCBvciA8Y29kZT5udWxsPC9jb2RlPgorICBmb3IgdGhlIHN5c3RlbSBkZWZhdWx0IExvY2FsZTxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXA8REQ+PENPREU+YXJnMDwvQ09ERT4gLSBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHswfSBpbiB0aGUgbWVzc2FnZTxERD48Q09ERT5hcmcxPC9DT0RFPiAtIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezF9IGluIHRoZSBtZXNzYWdlPEREPjxDT0RFPmFyZzI8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7Mn0gaW4gdGhlIG1lc3NhZ2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmcwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YXJnMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2FyZzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDthcmczKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4gIEEgbnVsbCBzdHJpbmcgcmVzdWx0IHdpbGwgbmV2ZXIgYmUgcmV0dXJuZWQKKyBieSB0aGlzIG1ldGhvZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bG9jYWxlPC9DT0RFPiAtIFRoZSByZXF1ZXN0ZWQgbWVzc2FnZSBMb2NhbGUsIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgIGZvciB0aGUgc3lzdGVtIGRlZmF1bHQgTG9jYWxlPEREPjxDT0RFPmtleTwvQ09ERT4gLSBUaGUgbWVzc2FnZSBrZXkgdG8gbG9vayB1cDxERD48Q09ERT5hcmcwPC9DT0RFPiAtIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezB9IGluIHRoZSBtZXNzYWdlPEREPjxDT0RFPmFyZzE8L0NPREU+IC0gVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7MX0gaW4gdGhlIG1lc3NhZ2U8REQ+PENPREU+YXJnMjwvQ09ERT4gLSBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHsyfSBpbiB0aGUgbWVzc2FnZTxERD48Q09ERT5hcmczPC9DT0RFPiAtIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezN9IGluIHRoZSBtZXNzYWdlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1ByZXNlbnQoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2lzUHJlc2VudDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+aXNQcmVzZW50PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPlJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGVyZSBpcyBhIGRlZmluZWQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZAorIGtleSBpbiB0aGUgc3lzdGVtIGRlZmF1bHQgbG9jYWxlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXA8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImlzUHJlc2VudChqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgoraXNQcmVzZW50PC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5pc1ByZXNlbnQ8L0I+KGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgaXMgYSBkZWZpbmVkIG1lc3NhZ2UgZm9yIHRoZSBzcGVjaWZpZWQKKyBrZXkgaW4gdGhlIHNwZWNpZmllZCBMb2NhbGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmxvY2FsZTwvQ09ERT4gLSBUaGUgcmVxdWVzdGVkIG1lc3NhZ2UgTG9jYWxlLCBvciA8Y29kZT5udWxsPC9jb2RlPgorICBmb3IgdGhlIHN5c3RlbSBkZWZhdWx0IExvY2FsZTxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXA8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImVzY2FwZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZXNjYXBlPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5lc2NhcGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzdHJpbmcpPC9QUkU+Cis8REw+Cis8REQ+RXNjYXBlIGFueSBzaW5nbGUgcXVvdGUgY2hhcmFjdGVycyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgc3BlY2lmaWVkCisgbWVzc2FnZSBzdHJpbmcuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnN0cmluZzwvQ09ERT4gLSBUaGUgc3RyaW5nIHRvIGJlIGVzY2FwZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvY2FsZUtleShqYXZhLnV0aWwuTG9jYWxlKSI+PCEtLSAtLT48L0E+PEgzPgorbG9jYWxlS2V5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5sb2NhbGVLZXk8L0I+KGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUpPC9QUkU+Cis8REw+Cis8REQ+Q29tcHV0ZSBhbmQgcmV0dXJuIGEga2V5IHRvIGJlIHVzZWQgaW4gY2FjaGluZyBpbmZvcm1hdGlvbiBieSBhIExvY2FsZS4KKyA8c3Ryb25nPk5PVEU8L3N0cm9uZz4gLSBUaGUgbG9jYWxlIGtleSBmb3IgdGhlIGRlZmF1bHQgTG9jYWxlIGluIG91cgorIGVudmlyb25tZW50IGlzIGEgemVybyBsZW5ndGggU3RyaW5nLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5sb2NhbGU8L0NPREU+IC0gVGhlIGxvY2FsZSBmb3Igd2hpY2ggYSBrZXkgaXMgZGVzaXJlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZUtleShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZUtleTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmcgPEI+bWVzc2FnZUtleTwvQj4oamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD5Db21wdXRlIGFuZCByZXR1cm4gYSBrZXkgdG8gYmUgdXNlZCBpbiBjYWNoaW5nIGluZm9ybWF0aW9uCisgYnkgTG9jYWxlIGFuZCBtZXNzYWdlIGtleS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bG9jYWxlPC9DT0RFPiAtIFRoZSBMb2NhbGUgZm9yIHdoaWNoIHRoaXMgZm9ybWF0IGtleSBpcyBjYWxjdWxhdGVkPEREPjxDT0RFPmtleTwvQ09ERT4gLSBUaGUgbWVzc2FnZSBrZXkgZm9yIHdoaWNoIHRoaXMgZm9ybWF0IGtleSBpcyBjYWxjdWxhdGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlS2V5KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlS2V5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5tZXNzYWdlS2V5PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bG9jYWxlS2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPkNvbXB1dGUgYW5kIHJldHVybiBhIGtleSB0byBiZSB1c2VkIGluIGNhY2hpbmcgaW5mb3JtYXRpb24KKyBieSBsb2NhbGUga2V5IGFuZCBtZXNzYWdlIGtleS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bG9jYWxlS2V5PC9DT0RFPiAtIFRoZSBsb2NhbGUga2V5IGZvciB3aGljaCB0aGlzIGNhY2hlIGtleSBpcyBjYWxjdWxhdGVkPEREPjxDT0RFPmtleTwvQ09ERT4gLSBUaGUgbWVzc2FnZSBrZXkgZm9yIHdoaWNoIHRoaXMgY2FjaGUga2V5IGlzIGNhbGN1bGF0ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2VSZXNvdXJjZXMoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2VSZXNvdXJjZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPmdldE1lc3NhZ2VSZXNvdXJjZXM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIGFuZCByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gZm9yIHRoZQorIGNyZWF0ZWQgYnkgdGhlIGRlZmF1bHQgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgZm9yIHRoaXMgbWVzc2FnZSBidW5kbGUuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2coamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+bG9nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSk8L1BSRT4KKzxETD4KKzxERD5Mb2cgYSBtZXNzYWdlIHRvIHRoZSBXcml0ZXIgdGhhdCBoYXMgYmVlbiBjb25maWd1cmVkIGZvciBvdXIgdXNlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tZXNzYWdlPC9DT0RFPiAtIFRoZSBtZXNzYWdlIHRvIGJlIGxvZ2dlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9nKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5UaHJvd2FibGUpIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmxvZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UsCisgICAgICAgICAgICAgICAgamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO3Rocm93YWJsZSk8L1BSRT4KKzxETD4KKzxERD5Mb2cgYSBtZXNzYWdlIGFuZCBleGNlcHRpb24gdG8gdGhlIFdyaXRlciB0aGF0IGhhcyBiZWVuIGNvbmZpZ3VyZWQKKyBmb3Igb3VyIHVzZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWVzc2FnZTwvQ09ERT4gLSBUaGUgbWVzc2FnZSB0byBiZSBsb2dnZWQ8REQ+PENPREU+dGhyb3dhYmxlPC9DT0RFPiAtIFRoZSBleGNlcHRpb24gdG8gYmUgbG9nZ2VkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTGFiZWxWYWx1ZUJlYW4uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZXNzYWdlUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Y3ZWI0NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwKQEAgLTAsMCArMSw1MTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTggRURUIDIwMDMgLS0+Cis8VElUTEU+CitNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSxNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9GT05UPgorPEJSPgorQ2xhc3MgTWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgYWJzdHJhY3QgY2xhc3MgPEI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ETD4KKworPFA+CitGYWN0b3J5IGZvciA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBpbnN0YW5jZXMuICBUaGUgZ2VuZXJhbCB1c2FnZQorIHBhdHRlcm4gZm9yIHRoaXMgY2xhc3MgaXM6CisgPHVsPgorIDxsaT5DYWxsIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5KCkuY3JlYXRlRmFjdG9yeSgpPC9jb2RlPiB0byByZXRyaWV2ZQorICAgICBhIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZS48L2xpPgorIDxsaT5TZXQgcHJvcGVydGllcyBhcyByZXF1aXJlZCB0byBjb25maWd1cmUgdGhpcyBmYWN0b3J5IGluc3RhbmNlIHRvIGNyZWF0ZQorICAgICA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBpbnN0YW5jZXMgd2l0aCBkZXNpcmVkCisgICAgIGNoYXJhY3RlcmlzdGljcy48L2xpPgorIDxsaT5DYWxsIHRoZSA8Y29kZT5jcmVhdGVSZXNvdXJjZXMoKTwvY29kZT4gbWV0aG9kIG9mIHRoZSBmYWN0b3J5IHRvCisgICAgIHJldHJpZXZlIGEgbmV3bHkgaW5zdGFudGlhdGVkIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+CisgICAgIGluc3RhbmNlLjwvbGk+CisgPC91bD4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuQ2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2NsYXp6Ij5jbGF6ejwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgSmF2YSBjbGFzcyB0byBiZSB1c2VkIGZvcgorIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNmYWN0b3J5Q2xhc3MiPmZhY3RvcnlDbGFzczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgdG8gYmUgdXNlZCBmb3IKKyA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gaW5zdGFuY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjTE9HIj5MT0c8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjcmV0dXJuTnVsbCI+cmV0dXJuTnVsbDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgInJldHVybiBudWxsIiBwcm9wZXJ0eSB2YWx1ZSB0byB3aGljaCBuZXdseSBjcmVhdGVkCisgTWVzc2FnZVJlc291cmNlc3Mgc2hvdWxkIGJlIGluaXRpYWxpemVkLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5KCkiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2NyZWF0ZUZhY3RvcnkoKSI+Y3JlYXRlRmFjdG9yeTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbmQgcmV0dXJuIGEgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlIG9mIHRoZQorIGFwcHJvcHJpYXRlIGNsYXNzLCB3aGljaCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgY3VzdG9taXplZAorIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGluc3RhbmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+YWJzdHJhY3QgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNjcmVhdGVSZXNvdXJjZXMoamF2YS5sYW5nLlN0cmluZykiPmNyZWF0ZVJlc291cmNlczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYW5kIHJldHVybiBhIG5ld2x5IGluc3RhbnNpYXRlZCA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjZ2V0RmFjdG9yeUNsYXNzKCkiPmdldEZhY3RvcnlDbGFzczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSB0aGF0IGlzIHVzZWQgZm9yCisgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjZ2V0UmV0dXJuTnVsbCgpIj5nZXRSZXR1cm5OdWxsPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IGRlZmF1bHQgdmFsdWUgb2YgdGhlICJyZXR1cm5OdWxsIiBwcm9wZXJ0eSB1c2VkIHRvIGluaXRpYWxpemUgbmV3bHkgY3JlYXRlZAorIE1lc3NhZ2VSZXNvdXJjZXNzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNzZXRGYWN0b3J5Q2xhc3MoamF2YS5sYW5nLlN0cmluZykiPnNldEZhY3RvcnlDbGFzczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmYWN0b3J5Q2xhc3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIHRoYXQgaXMgdXNlZCBmb3IKKyA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gaW5zdGFuY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNzZXRSZXR1cm5OdWxsKGJvb2xlYW4pIj5zZXRSZXR1cm5OdWxsPC9BPjwvQj4oYm9vbGVhbiZuYnNwO3JldHVybk51bGwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICJyZXR1cm5OdWxsIiBwcm9wZXJ0eSBuZXdseSBjcmVhdGVkCisgTWVzc2FnZVJlc291cmNlc3MgYXJlIGluaXRpYWxpemVkIHRvLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icmV0dXJuTnVsbCI+PCEtLSAtLT48L0E+PEgzPgorcmV0dXJuTnVsbDwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGJvb2xlYW4gPEI+cmV0dXJuTnVsbDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgInJldHVybiBudWxsIiBwcm9wZXJ0eSB2YWx1ZSB0byB3aGljaCBuZXdseSBjcmVhdGVkCisgTWVzc2FnZVJlc291cmNlc3Mgc2hvdWxkIGJlIGluaXRpYWxpemVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2xhenoiPjwhLS0gLS0+PC9BPjxIMz4KK2NsYXp6PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgc3RhdGljIHRyYW5zaWVudCBqYXZhLmxhbmcuQ2xhc3MgPEI+Y2xheno8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmEgY2xhc3MgdG8gYmUgdXNlZCBmb3IKKyA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gaW5zdGFuY2VzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iTE9HIj48IS0tIC0tPjwvQT48SDM+CitMT0c8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZyA8Qj5MT0c8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZmFjdG9yeUNsYXNzIj48IS0tIC0tPjwvQT48SDM+CitmYWN0b3J5Q2xhc3M8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5mYWN0b3J5Q2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIHRvIGJlIHVzZWQgZm9yCisgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSgpIj48IS0tIC0tPjwvQT48SDM+CitNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIDxCPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRSZXR1cm5OdWxsKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJldHVybk51bGw8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmdldFJldHVybk51bGw8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgInJldHVybk51bGwiIHByb3BlcnR5IHVzZWQgdG8gaW5pdGlhbGl6ZSBuZXdseSBjcmVhdGVkCisgTWVzc2FnZVJlc291cmNlc3MuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+ZGVmYXVsdCB2YWx1ZSBvZiB0aGUgInJldHVybk51bGwiIHByb3BlcnR5IG5ld2x5IGNyZWF0ZWQKKyBNZXNzYWdlUmVzb3VyY2VzcyBhcmUgaW5pdGlhbGl6ZWQgdG8uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRSZXR1cm5OdWxsKGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CitzZXRSZXR1cm5OdWxsPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRSZXR1cm5OdWxsPC9CPihib29sZWFuJm5ic3A7cmV0dXJuTnVsbCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICJyZXR1cm5OdWxsIiBwcm9wZXJ0eSBuZXdseSBjcmVhdGVkCisgTWVzc2FnZVJlc291cmNlc3MgYXJlIGluaXRpYWxpemVkIHRvLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXR1cm5OdWxsPC9DT0RFPiAtIGRlZmF1bHQgdmFsdWUgb2YgdGhlICJyZXR1cm5OdWxsIiBNZXNzYWdlUmVzb3VyY2VzcyBhcmUgaW5pdGlhbGl6ZWQgdG8uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjcmVhdGVSZXNvdXJjZXMoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2NyZWF0ZVJlc291cmNlczwvSDM+Cis8UFJFPgorcHVibGljIGFic3RyYWN0IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5jcmVhdGVSZXNvdXJjZXM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIGFuZCByZXR1cm4gYSBuZXdseSBpbnN0YW5zaWF0ZWQgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4uCisgVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBjb25jcmV0ZSBzdWJjbGFzc2VzLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXIocykgZm9yIHRoZSByZXF1ZXN0ZWQgYnVuZGxlPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRGYWN0b3J5Q2xhc3MoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0RmFjdG9yeUNsYXNzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0RmFjdG9yeUNsYXNzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIHRoYXQgaXMgdXNlZCBmb3IKKyA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gaW5zdGFuY2VzLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmNsYXNzIG5hbWUgdGhhdCBpcyB1c2VkIGZvcgorICAgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0RmFjdG9yeUNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRGYWN0b3J5Q2xhc3M8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5zZXRGYWN0b3J5Q2xhc3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtmYWN0b3J5Q2xhc3MpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHRoZSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSB0aGF0IGlzIHVzZWQgZm9yCisgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlcy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmFjdG9yeUNsYXNzPC9DT0RFPiAtIG5hbWUgdGhhdCBpcyB1c2VkIGZvcgorICAgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY3JlYXRlRmFjdG9yeSgpIj48IS0tIC0tPjwvQT48SDM+CitjcmVhdGVGYWN0b3J5PC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+IDxCPmNyZWF0ZUZhY3Rvcnk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgYW5kIHJldHVybiBhIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZSBvZiB0aGUKKyBhcHByb3ByaWF0ZSBjbGFzcywgd2hpY2ggY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGN1c3RvbWl6ZWQKKyA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBpbnN0YW5jZXMuICBJZiBubyBzdWNoIGZhY3RvcnkgY2FuIGJlCisgY3JlYXRlZCwgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+IGluc3RlYWQuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRlODNjMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sCkBAIC0wLDAgKzEsNDg1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorTW9kdWxlRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1vZHVsZUV4Y2VwdGlvbixNb2R1bGVFeGNlcHRpb24gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik1vZHVsZUV4Y2VwdGlvbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcHBFeGNlcHRpb24uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1vZHVsZUV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzIE1vZHVsZUV4Y2VwdGlvbjwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLWphdmEubGFuZy5UaHJvd2FibGUKKyAgICAgICAgfAorICAgICAgICArLS1qYXZhLmxhbmcuRXhjZXB0aW9uCisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Nb2R1bGVFeGNlcHRpb248L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPERMPgorPERUPjxCPkRpcmVjdCBLbm93biBTdWJjbGFzc2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXBwRXhjZXB0aW9uLmh0bWwiPkFwcEV4Y2VwdGlvbjwvQT48L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+TW9kdWxlRXhjZXB0aW9uPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5FeGNlcHRpb248L0RMPgorCis8UD4KK1VzZWQgZm9yIHNwZWNpYWxpemVkIGV4Y2VwdGlvbiBoYW5kbGluZy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTW9kdWxlRXhjZXB0aW9uIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCNlcnJvciI+ZXJyb3I8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwjcHJvcGVydHkiPnByb3BlcnR5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuRXhjZXB0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5FeGNlcHRpb248L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5UaHJvd2FibGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLlRocm93YWJsZTwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwjTW9kdWxlRXhjZXB0aW9uKGphdmEubGFuZy5TdHJpbmcpIj5Nb2R1bGVFeGNlcHRpb248L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGFuIG1vZHVsZSBleGNlcHRpb24gd2l0aCBubyByZXBsYWNlbWVudCB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sI01vZHVsZUV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+TW9kdWxlRXhjZXB0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYW4gbW9kdWxlIGV4Y2VwdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCNNb2R1bGVFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+TW9kdWxlRXhjZXB0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0W10mbmJzcDt2YWx1ZXMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYW4gYWN0aW9uIGVycm9yIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sI01vZHVsZUV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+TW9kdWxlRXhjZXB0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwLAorICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTEpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYW4gbW9kdWxlIGV4Y2VwdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCNNb2R1bGVFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPk1vZHVsZUV4Y2VwdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMCwKKyAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUxLAorICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTIpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYW4gbW9kdWxlIGV4Y2VwdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCNNb2R1bGVFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPk1vZHVsZUV4Y2VwdGlvbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMCwKKyAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUxLAorICAgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDt2YWx1ZTIsCisgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhbiBtb2R1bGUgZXhjZXB0aW9uIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sI2dldEVycm9yKCkiPmdldEVycm9yPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyB0aGUgZXJyb3IgYXNzb2NpYXRlZCB3aXRoIHRoZSBleGNlcHRpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCNnZXRQcm9wZXJ0eSgpIj5nZXRQcm9wZXJ0eTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIHByb3BlcnR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZXhjZXB0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwjc2V0UHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPnNldFByb3BlcnR5PC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Byb3BlcnR5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHRoZSBwcm9wZXJ0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGV4Y2VwdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5UaHJvd2FibGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5UaHJvd2FibGU8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5maWxsSW5TdGFja1RyYWNlLCBnZXRDYXVzZSwgZ2V0TG9jYWxpemVkTWVzc2FnZSwgZ2V0TWVzc2FnZSwgZ2V0U3RhY2tUcmFjZSwgaW5pdENhdXNlLCBwcmludFN0YWNrVHJhY2UsIHByaW50U3RhY2tUcmFjZSwgcHJpbnRTdGFja1RyYWNlLCBzZXRTdGFja1RyYWNlLCB0b1N0cmluZzwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0icHJvcGVydHkiPjwhLS0gLS0+PC9BPjxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgamF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlcnJvciI+PCEtLSAtLT48L0E+PEgzPgorZXJyb3I8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+IDxCPmVycm9yPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJNb2R1bGVFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK01vZHVsZUV4Y2VwdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPk1vZHVsZUV4Y2VwdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYW4gbW9kdWxlIGV4Y2VwdGlvbiB3aXRoIG5vIHJlcGxhY2VtZW50IHZhbHVlcy4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSBrZXkgZm9yIHRoaXMgZXJyb3IgbWVzc2FnZTwvREw+Cis8SFI+CisKKzxBIE5BTUU9Ik1vZHVsZUV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorTW9kdWxlRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TW9kdWxlRXhjZXB0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIG1vZHVsZSBleGNlcHRpb24gd2l0aCB0aGUgc3BlY2lmaWVkIHJlcGxhY2VtZW50IHZhbHVlcy4KKzxQPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSBrZXkgZm9yIHRoaXMgZXJyb3IgbWVzc2FnZTxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBGaXJzdCByZXBsYWNlbWVudCB2YWx1ZTwvREw+Cis8SFI+CisKKzxBIE5BTUU9Ik1vZHVsZUV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorTW9kdWxlRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TW9kdWxlRXhjZXB0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwLAorICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUxKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhbiBtb2R1bGUgZXhjZXB0aW9uIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIE1lc3NhZ2Uga2V5IGZvciB0aGlzIGVycm9yIG1lc3NhZ2U8REQ+PENPREU+dmFsdWUwPC9DT0RFPiAtIEZpcnN0IHJlcGxhY2VtZW50IHZhbHVlPEREPjxDT0RFPnZhbHVlMTwvQ09ERT4gLSBTZWNvbmQgcmVwbGFjZW1lbnQgdmFsdWU8L0RMPgorPEhSPgorCis8QSBOQU1FPSJNb2R1bGVFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK01vZHVsZUV4Y2VwdGlvbjwvSDM+Cis8UFJFPgorcHVibGljIDxCPk1vZHVsZUV4Y2VwdGlvbjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMCwKKyAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMSwKKyAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO3ZhbHVlMik8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYW4gbW9kdWxlIGV4Y2VwdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleSBmb3IgdGhpcyBlcnJvciBtZXNzYWdlPEREPjxDT0RFPnZhbHVlMDwvQ09ERT4gLSBGaXJzdCByZXBsYWNlbWVudCB2YWx1ZTxERD48Q09ERT52YWx1ZTE8L0NPREU+IC0gU2Vjb25kIHJlcGxhY2VtZW50IHZhbHVlPEREPjxDT0RFPnZhbHVlMjwvQ09ERT4gLSBUaGlyZCByZXBsYWNlbWVudCB2YWx1ZTwvREw+Cis8SFI+CisKKzxBIE5BTUU9Ik1vZHVsZUV4Y2VwdGlvbihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgorTW9kdWxlRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TW9kdWxlRXhjZXB0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUwLAorICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUxLAorICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUyLAorICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7dmFsdWUzKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhbiBtb2R1bGUgZXhjZXB0aW9uIHdpdGggdGhlIHNwZWNpZmllZCByZXBsYWNlbWVudCB2YWx1ZXMuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+a2V5PC9DT0RFPiAtIE1lc3NhZ2Uga2V5IGZvciB0aGlzIGVycm9yIG1lc3NhZ2U8REQ+PENPREU+dmFsdWUwPC9DT0RFPiAtIEZpcnN0IHJlcGxhY2VtZW50IHZhbHVlPEREPjxDT0RFPnZhbHVlMTwvQ09ERT4gLSBTZWNvbmQgcmVwbGFjZW1lbnQgdmFsdWU8REQ+PENPREU+dmFsdWUyPC9DT0RFPiAtIFRoaXJkIHJlcGxhY2VtZW50IHZhbHVlPEREPjxDT0RFPnZhbHVlMzwvQ09ERT4gLSBGb3VydGggcmVwbGFjZW1lbnQgdmFsdWU8L0RMPgorPEhSPgorCis8QSBOQU1FPSJNb2R1bGVFeGNlcHRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+PCEtLSAtLT48L0E+PEgzPgorTW9kdWxlRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+TW9kdWxlRXhjZXB0aW9uPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0W10mbmJzcDt2YWx1ZXMpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGFuIGFjdGlvbiBlcnJvciB3aXRoIHRoZSBzcGVjaWZpZWQgcmVwbGFjZW1lbnQgdmFsdWVzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleSBmb3IgdGhpcyBtZXNzYWdlPEREPjxDT0RFPnZhbHVlczwvQ09ERT4gLSBBcnJheSBvZiByZXBsYWNlbWVudCB2YWx1ZXM8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRQcm9wZXJ0eSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0UHJvcGVydHk8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIHRoZSBwcm9wZXJ0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGV4Y2VwdGlvbi4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5WYWx1ZSBvZiBwcm9wZXJ0eS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFByb3BlcnR5KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQcm9wZXJ0eTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0UHJvcGVydHk8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcm9wZXJ0eSk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIHByb3BlcnR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZXhjZXB0aW9uLgorIEl0IGNhbiBiZSBhIG5hbWUgb2YgdGhlIGVkaXQgZmllbGQsIHdoaWNoICdjYXVzZWQnIHRoZSBleGNlcHRpb24uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEVycm9yKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEVycm9yPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPiA8Qj5nZXRFcnJvcjwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgdGhlIGVycm9yIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXhjZXB0aW9uLgorPFA+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlZhbHVlIG9mIHByb3BlcnR5IGVycm9yLjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTW9kdWxlRXhjZXB0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvQXBwRXhjZXB0aW9uLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNb2R1bGVFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2YmRmYzUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbApAQCAtMCwwICsxLDQzMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMsUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlByb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzIFByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXM8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9ETD4KKworPFA+CitDb25jcmV0ZSBzdWJjbGFzcyBvZiA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiB0aGF0IHJlYWRzIG1lc3NhZ2Uga2V5cworIGFuZCBjb3JyZXNwb25kaW5nIHN0cmluZ3MgZnJvbSBuYW1lZCBwcm9wZXJ0eSByZXNvdXJjZXMgaW4gdGhlIHNhbWUgbWFubmVyCisgdGhhdCA8Y29kZT5qYXZhLnV0aWwuUHJvcGVydHlSZXNvdXJjZUJ1bmRsZTwvY29kZT4gZG9lcy4gIFRoZQorIDxjb2RlPmJhc2U8L2NvZGU+IHByb3BlcnR5IGRlZmluZXMgdGhlIGJhc2UgcHJvcGVydHkgcmVzb3VyY2UgbmFtZSwgYW5kCisgbXVzdCBiZSBzcGVjaWZpZWQuCisgPHA+CisgPHN0cm9uZz5JTVBMRU1FTlRBVElPTiBOT1RFPC9zdHJvbmc+IC0gVGhpcyBjbGFzcyB0cmFkZXMgbWVtb3J5IGZvcgorIHNwZWVkIGJ5IGNhY2hpbmcgYWxsIG1lc3NhZ2VzIGxvY2F0ZWQgdmlhIGdlbmVyYWxpemluZyB0aGUgTG9jYWxlIHVuZGVyCisgdGhlIG9yaWdpbmFsIGxvY2FsZSBhcyB3ZWxsLgorIFRoaXMgcmVzdWx0cyBpbiBzcGVjaWZpYyBtZXNzYWdlcyBiZWluZyBzdG9yZWQgaW4gdGhlIG1lc3NhZ2UgY2FjaGUKKyBtb3JlIHRoYW4gb25jZSwgYnV0IGltcHJvdmVzIHJlc3BvbnNlIHRpbWUgb24gc3Vic2VxdWVudCByZXF1ZXN0cyBmb3IKKyB0aGUgc2FtZSBsb2NhbGUgKyBrZXkgY29tYmluYXRpb24uCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuLCBEYXZpZCBHcmFoYW08L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS51dGlsLkhhc2hNYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCNsb2NhbGVzIj5sb2NhbGVzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXQgb2YgbG9jYWxlIGtleXMgZm9yIHdoaWNoIHdlIGhhdmUgYWxyZWFkeSBsb2FkZWQgbWVzc2FnZXMsIGtleWVkCisgYnkgdGhlIHZhbHVlIGNhbGN1bGF0ZWQgaW4gPGNvZGU+bG9jYWxlS2V5KCk8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwjbG9nIj5sb2c8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPkxvZzwvY29kZT4gaW5zdGFuY2UgZm9yIHRoaXMgY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtqYXZhLnV0aWwuSGFzaE1hcDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgY2FjaGUgb2YgbWVzc2FnZXMgd2UgaGF2ZSBhY2N1bXVsYXRlZCBvdmVyIHRpbWUsIGtleWVkIGJ5IHRoZQorIHZhbHVlIGNhbGN1bGF0ZWQgaW4gPGNvZGU+bWVzc2FnZUtleSgpPC9jb2RlPi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjY29uZmlnIj5jb25maWc8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNkZWZhdWx0RmFjdG9yeSI+ZGVmYXVsdEZhY3Rvcnk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNkZWZhdWx0TG9jYWxlIj5kZWZhdWx0TG9jYWxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZmFjdG9yeSI+ZmFjdG9yeTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2Zvcm1hdHMiPmZvcm1hdHM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNyZXR1cm5OdWxsIj5yZXR1cm5OdWxsPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwjUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIGphdmEubGFuZy5TdHJpbmcpIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPiZuYnNwO2ZhY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMgYWNjb3JkaW5nIHRvIHRoZQorIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCNQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSwgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Jm5ic3A7ZmFjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtyZXR1cm5OdWxsKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IFByb3BlcnR5TWVzc2FnZVJlc291cmNlcyBhY2NvcmRpbmcgdG8gdGhlCisgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZykiPmdldE1lc3NhZ2U8L0E+PC9CPihqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJucyBhIHRleHQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZCBrZXksIGZvciB0aGUgZGVmYXVsdCBMb2NhbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwjbG9hZExvY2FsZShqYXZhLmxhbmcuU3RyaW5nKSI+bG9hZExvY2FsZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGVLZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb2FkIHRoZSBtZXNzYWdlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBMb2NhbGUga2V5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2VzY2FwZShqYXZhLmxhbmcuU3RyaW5nKSI+ZXNjYXBlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0Q29uZmlnKCkiPmdldENvbmZpZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldEZhY3RvcnkoKSI+Z2V0RmFjdG9yeTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCkiPmdldE1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3RbXSkiPmdldE1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5nZXRNZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+Z2V0TWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPmdldE1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcpIj5nZXRNZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+Z2V0TWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+Z2V0TWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLk9iamVjdCkiPmdldE1lc3NhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QsIGphdmEubGFuZy5PYmplY3QpIj5nZXRNZXNzYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuT2JqZWN0KSI+Z2V0TWVzc2FnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2VSZXNvdXJjZXMoamF2YS5sYW5nLlN0cmluZykiPmdldE1lc3NhZ2VSZXNvdXJjZXM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRSZXR1cm5OdWxsKCkiPmdldFJldHVybk51bGw8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNpc1ByZXNlbnQoamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZykiPmlzUHJlc2VudDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2lzUHJlc2VudChqYXZhLmxhbmcuU3RyaW5nKSI+aXNQcmVzZW50PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjbG9jYWxlS2V5KGphdmEudXRpbC5Mb2NhbGUpIj5sb2NhbGVLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZykiPmxvZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+bG9nPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjbWVzc2FnZUtleShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZUtleTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI21lc3NhZ2VLZXkoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPm1lc3NhZ2VLZXk8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNzZXRSZXR1cm5OdWxsKGJvb2xlYW4pIj5zZXRSZXR1cm5OdWxsPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImxvY2FsZXMiPjwhLS0gLS0+PC9BPjxIMz4KK2xvY2FsZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZhLnV0aWwuSGFzaE1hcCA8Qj5sb2NhbGVzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgbG9jYWxlIGtleXMgZm9yIHdoaWNoIHdlIGhhdmUgYWxyZWFkeSBsb2FkZWQgbWVzc2FnZXMsIGtleWVkCisgYnkgdGhlIHZhbHVlIGNhbGN1bGF0ZWQgaW4gPGNvZGU+bG9jYWxlS2V5KCk8L2NvZGU+LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9nIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgZmluYWwgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgPGNvZGU+TG9nPC9jb2RlPiBpbnN0YW5jZSBmb3IgdGhpcyBjbGFzcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEudXRpbC5IYXNoTWFwIDxCPm1lc3NhZ2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjYWNoZSBvZiBtZXNzYWdlcyB3ZSBoYXZlIGFjY3VtdWxhdGVkIG92ZXIgdGltZSwga2V5ZWQgYnkgdGhlCisgdmFsdWUgY2FsY3VsYXRlZCBpbiA8Y29kZT5tZXNzYWdlS2V5KCk8L2NvZGU+LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlByb3BlcnR5TWVzc2FnZVJlc291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPiZuYnNwO2ZhY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb25maWcpPC9QUkU+Cis8REw+Cis8REQ+Q29uc3RydWN0IGEgbmV3IFByb3BlcnR5TWVzc2FnZVJlc291cmNlcyBhY2NvcmRpbmcgdG8gdGhlCisgc3BlY2lmaWVkIHBhcmFtZXRlcnMuCis8UD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZmFjdG9yeTwvQ09ERT4gLSBUaGUgTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgdGhhdCBjcmVhdGVkIHVzPEREPjxDT0RFPmNvbmZpZzwvQ09ERT4gLSBUaGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgZm9yIHRoaXMgTWVzc2FnZVJlc291cmNlczwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlByb3BlcnR5TWVzc2FnZVJlc291cmNlcyhvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPiZuYnNwO2ZhY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtyZXR1cm5OdWxsKTwvUFJFPgorPERMPgorPEREPkNvbnN0cnVjdCBhIG5ldyBQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMgYWNjb3JkaW5nIHRvIHRoZQorIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmZhY3Rvcnk8L0NPREU+IC0gVGhlIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IHRoYXQgY3JlYXRlZCB1czxERD48Q09ERT5jb25maWc8L0NPREU+IC0gVGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGZvciB0aGlzIE1lc3NhZ2VSZXNvdXJjZXM8REQ+PENPREU+cmV0dXJuTnVsbDwvQ09ERT4gLSBUaGUgcmV0dXJuTnVsbCBwcm9wZXJ0eSB3ZSBzaG91bGQgaW5pdGlhbGl6ZSB3aXRoPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZShqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWVzc2FnZTwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TWVzc2FnZTwvQj4oamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgZm9yIHRoZSBkZWZhdWx0IExvY2FsZS4KKyBBIG51bGwgc3RyaW5nIHJlc3VsdCB3aWxsIGJlIHJldHVybmVkIGJ5IHRoaXMgbWV0aG9kIGlmIG5vIHJlbGV2YW50CisgbWVzc2FnZSByZXNvdXJjZSBpcyBmb3VuZCBmb3IgdGhpcyBrZXkgb3IgTG9jYWxlLCBpZiB0aGUKKyA8Y29kZT5yZXR1cm5OdWxsPC9jb2RlPiBwcm9wZXJ0eSBpcyBzZXQuICBPdGhlcndpc2UsIGFuIGFwcHJvcHJpYXRlCisgZXJyb3IgbWVzc2FnZSB3aWxsIGJlIHJldHVybmVkLgorIDxwPgorIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgYSBjb25jcmV0ZSBzdWJjbGFzcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TcGVjaWZpZWQgYnk6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRNZXNzYWdlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bG9jYWxlPC9DT0RFPiAtIFRoZSByZXF1ZXN0ZWQgbWVzc2FnZSBMb2NhbGUsIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgIGZvciB0aGUgc3lzdGVtIGRlZmF1bHQgTG9jYWxlPEREPjxDT0RFPmtleTwvQ09ERT4gLSBUaGUgbWVzc2FnZSBrZXkgdG8gbG9vayB1cAorPERUPjxCPlJldHVybnM6PC9CPjxERD50ZXh0IG1lc3NhZ2UgZm9yIHRoZSBzcGVjaWZpZWQga2V5IGFuZCBsb2NhbGU8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvYWRMb2NhbGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2xvYWRMb2NhbGU8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmxvYWRMb2NhbGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGVLZXkpPC9QUkU+Cis8REw+Cis8REQ+TG9hZCB0aGUgbWVzc2FnZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgTG9jYWxlIGtleS4gIEZvciB0aGlzCisgaW1wbGVtZW50YXRpb24sIHRoZSA8Y29kZT5jb25maWc8L2NvZGU+IHByb3BlcnR5IHNob3VsZCBjb250YWluIGEgZnVsbHkKKyBxdWFsaWZpZWQgcGFja2FnZSBhbmQgcmVzb3VyY2UgbmFtZSwgc2VwYXJhdGVkIGJ5IHBlcmlvZHMsIG9mIGEgc2VyaWVzCisgb2YgcHJvcGVydHkgcmVzb3VyY2VzIHRvIGJlIGxvYWRlZCBmcm9tIHRoZSBjbGFzcyBsb2FkZXIgdGhhdCBjcmVhdGVkCisgdGhpcyBQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMgaW5zdGFuY2UuICBUaGlzIGlzIGV4YWN0bHkgdGhlIHNhbWUgbmFtZQorIGZvcm1hdCB5b3Ugd291bGQgdXNlIHdoZW4gdXRpbGl6aW5nIHRoZQorIDxjb2RlPmphdmEudXRpbC5Qcm9wZXJ0eVJlc291cmNlQnVuZGxlPC9jb2RlPiBjbGFzcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bG9jYWxlS2V5PC9DT0RFPiAtIExvY2FsZSBrZXkgZm9yIHRoZSBtZXNzYWdlcyB0byBiZSByZXRyaWV2ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQ0MTYyYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbApAQCAtMCwwICsxLDI5MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSxQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDtGSUVMRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzIFByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvREw+CisKKzxQPgorRmFjdG9yeSBmb3IgPGNvZGU+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBpbnN0YW5jZXMuICBUaGUKKyBjb25maWd1cmF0aW9uIHBhcmFtdGVyIGZvciBzdWNoIGluc3RhbmNlcyBpcyB0aGUgYmFzZSBKYXZhIHBhY2thZ2UKKyBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZW50cmllcyBmcm9tIHdoaWNoIG91ciBrZXlzIGFuZCB2YWx1ZXMgd2lsbCBiZQorIGxvYWRlZC4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkNyYWlnIFIuIE1jQ2xhbmFoYW48L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Ij5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2NsYXp6Ij5jbGF6ejwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNmYWN0b3J5Q2xhc3MiPmZhY3RvcnlDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNyZXR1cm5OdWxsIj5yZXR1cm5OdWxsPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkoKSI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNjcmVhdGVSZXNvdXJjZXMoamF2YS5sYW5nLlN0cmluZykiPmNyZWF0ZVJlc291cmNlczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYW5kIHJldHVybiBhIG5ld2x5IGluc3RhbnNpYXRlZCA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjY3JlYXRlRmFjdG9yeSgpIj5jcmVhdGVGYWN0b3J5PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2dldEZhY3RvcnlDbGFzcygpIj5nZXRGYWN0b3J5Q2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjZ2V0UmV0dXJuTnVsbCgpIj5nZXRSZXR1cm5OdWxsPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI3NldEZhY3RvcnlDbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+c2V0RmFjdG9yeUNsYXNzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI3NldFJldHVybk51bGwoYm9vbGVhbikiPnNldFJldHVybk51bGw8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkoKSI+PCEtLSAtLT48L0E+PEgzPgorUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvSDM+Cis8UFJFPgorcHVibGljIDxCPlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImNyZWF0ZVJlc291cmNlcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorY3JlYXRlUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPmNyZWF0ZVJlc291cmNlczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbmZpZyk8L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgYW5kIHJldHVybiBhIG5ld2x5IGluc3RhbnNpYXRlZCA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPi4KKyBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGNvbmNyZXRlIHN1YmNsYXNzZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+U3BlY2lmaWVkIGJ5OjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2NyZWF0ZVJlc291cmNlcyhqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlUmVzb3VyY2VzPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb25maWc8L0NPREU+IC0gQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXIocykgZm9yIHRoZSByZXF1ZXN0ZWQgYnVuZGxlPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7RklFTEQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmZDMwMTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbApAQCAtMCwwICsxLDE3NjEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTggRURUIDIwMDMgLS0+Cis8VElUTEU+CitSZXF1ZXN0VXRpbHMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUmVxdWVzdFV0aWxzLFJlcXVlc3RVdGlscyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iUmVxdWVzdFV0aWxzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1JlcXVlc3RVdGlscy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlJlcXVlc3RVdGlscy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzIFJlcXVlc3RVdGlsczwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUmVxdWVzdFV0aWxzPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlJlcXVlc3RVdGlsczwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4KKworPFA+CitHZW5lcmFsIHB1cnBvc2UgdXRpbGl0eSBtZXRob2RzIHJlbGF0ZWQgdG8gcHJvY2Vzc2luZyBhIHNlcnZsZXQgcmVxdWVzdAorIGluIHRoZSBTdHJ1dHMgY29udHJvbGxlciBmcmFtZXdvcmsuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuLCBUZWQgSHVzdGVkLCBKYW1lcyBUdXJuZXIsIERhdmlkIEdyYWhhbTwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2VuY29kZSI+ZW5jb2RlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0phdmEgMS40IGVuY29kZSBtZXRob2QgdG8gdXNlIGluc3RlYWQgb2YgZGVwcmVjYXRlZCAxLjMgdmVyc2lvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2xvZyI+bG9nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI1BSRUZJWEVTX0tFWSI+UFJFRklYRVNfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBjb250ZXh0IGF0dHJpYnV0ZSB1bmRlciB3aGljaCB3ZSBzdG9yZSBvdXIgcHJlZml4ZXMgbGlzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjc2NvcGVzIj5zY29wZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TWFwcyBsb3dlcmNhc2UgSlNQIHNjb3BlIG5hbWVzIHRvIHRoZWlyIFBhZ2VDb250ZXh0IGludGVnZXIgY29uc3RhbnQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNSZXF1ZXN0VXRpbHMoKSI+UmVxdWVzdFV0aWxzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5uZXQuVVJMPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjYWJzb2x1dGVVUkwoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPmFic29sdXRlVVJMPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGF0aCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbmQgcmV0dXJuIGFuIGFic29sdXRlIFVSTCBmb3IgdGhlIHNwZWNpZmllZCBjb250ZXh0LXJlbGF0aXZlCisgcGF0aCwgYmFzZWQgb24gdGhlIHNlcnZlciBhbmQgY29udGV4dCBpbmZvcm1hdGlvbiBpbiB0aGUgc3BlY2lmaWVkCisgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2FjdGlvblVSTChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnLCBqYXZhLmxhbmcuU3RyaW5nKSI+YWN0aW9uVVJMPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj5BY3Rpb25Db25maWc8L0E+Jm5ic3A7YWN0aW9uLAorICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXR0ZXJuKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBjb250ZXh0LXJlbGF0aXZlIFVSTCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBzcGVjaWZpZWQKKyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPjxDT0RFPkFjdGlvbkNvbmZpZzwvQ09ERT48L0E+LCByZWxhdGl2ZSB0byB0aGUgbW9kdWxlIGFzc29jaWF0ZWQKKyB3aXRoIHRoZSBjdXJyZW50IG1vZHVsZXMncyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuQ2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNhcHBsaWNhdGlvbkNsYXNzKGphdmEubGFuZy5TdHJpbmcpIj5hcHBsaWNhdGlvbkNsYXNzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgPGNvZGU+Q2xhc3M8L2NvZGU+IG9iamVjdCBmb3IgdGhlIHNwZWNpZmllZCBmdWxseSBxdWFsaWZpZWQKKyBjbGFzcyBuYW1lLCBmcm9tIHRoaXMgd2ViIGFwcGxpY2F0aW9uJ3MgY2xhc3MgbG9hZGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjYXBwbGljYXRpb25JbnN0YW5jZShqYXZhLmxhbmcuU3RyaW5nKSI+YXBwbGljYXRpb25JbnN0YW5jZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjbGFzc05hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHNwZWNpZmllZCBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSwKKyBhZnRlciBsb2FkaW5nIHRoZSBjbGFzcyBmcm9tIHRoaXMgd2ViIGFwcGxpY2F0aW9uJ3MgY2xhc3MgbG9hZGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjY29tcHV0ZVBhcmFtZXRlcnMoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj5jb21wdXRlUGFyYW1ldGVyczwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1JZCwKKyAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbU5hbWUsCisgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1Qcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbVNjb3BlLAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHksCisgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGUsCisgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7dHJhbnNhY3Rpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wdXRlIGEgc2V0IG9mIHF1ZXJ5IHBhcmFtZXRlcnMgdGhhdCB3aWxsIGJlIGR5bmFtaWNhbGx5IGFkZGVkIHRvCisgYSBnZW5lcmF0ZWQgVVJMLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjY29tcHV0ZVVSTChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS51dGlsLk1hcCwgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPmNvbXB1dGVVUkw8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9yd2FyZCwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2hyZWYsCisgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlLAorICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cGFyYW1zLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YW5jaG9yLAorICAgICAgICAgICBib29sZWFuJm5ic3A7cmVkaXJlY3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5UbyBiZSByZW1vdmVkIGluIFZlcnNpb24gMS4zLgorIFVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2NvbXB1dGVVUkwoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEudXRpbC5NYXAsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48Q09ERT5jb21wdXRlVVJMKFBhZ2VDb250ZXh0LCBTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBTdHJpbmcsIE1hcCwgU3RyaW5nLCBib29sZWFuKTwvQ09ERT48L0E+IGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjY29tcHV0ZVVSTChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS51dGlsLk1hcCwgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPmNvbXB1dGVVUkw8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9yd2FyZCwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2hyZWYsCisgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWN0aW9uLAorICAgICAgICAgICBqYXZhLnV0aWwuTWFwJm5ic3A7cGFyYW1zLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YW5jaG9yLAorICAgICAgICAgICBib29sZWFuJm5ic3A7cmVkaXJlY3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wdXRlIGEgaHlwZXJsaW5rIFVSTCBiYXNlZCBvbiB0aGUgPGNvZGU+Zm9yd2FyZDwvY29kZT4sCisgPGNvZGU+aHJlZjwvY29kZT4sIDxjb2RlPmFjdGlvbjwvY29kZT4gb3IgPGNvZGU+cGFnZTwvY29kZT4gcGFyYW1ldGVyCisgdGhhdCBpcyBub3QgbnVsbC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2NvbXB1dGVVUkwoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEudXRpbC5NYXAsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4sIGJvb2xlYW4pIj5jb21wdXRlVVJMPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2ZvcndhcmQsCisgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtocmVmLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2FjdGlvbiwKKyAgICAgICAgICAgamF2YS51dGlsLk1hcCZuYnNwO3BhcmFtcywKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2FuY2hvciwKKyAgICAgICAgICAgYm9vbGVhbiZuYnNwO3JlZGlyZWN0LAorICAgICAgICAgICBib29sZWFuJm5ic3A7ZW5jb2RlU2VwYXJhdG9yKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tcHV0ZSBhIGh5cGVybGluayBVUkwgYmFzZWQgb24gdGhlIDxjb2RlPmZvcndhcmQ8L2NvZGU+LAorIDxjb2RlPmhyZWY8L2NvZGU+LCA8Y29kZT5hY3Rpb248L2NvZGU+IG9yIDxjb2RlPnBhZ2U8L2NvZGU+IHBhcmFtZXRlcgorIHRoYXQgaXMgbm90IG51bGwuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjY3JlYXRlQWN0aW9uRm9ybShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZywgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5jcmVhdGVBY3Rpb25Gb3JtPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+Jm5ic3A7bW9kdWxlQ29uZmlnLAorICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgKGlmIG5lY2Vzc2FyeSkgYW5kIHJldHVybiBhbiBBY3Rpb25Gb3JtIGluc3RhbmNlIGFwcHJvcHJpYXRlCisgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2VuY29kZVVSTChqYXZhLmxhbmcuU3RyaW5nKSI+ZW5jb2RlVVJMPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VybCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1VzZSB0aGUgbmV3IFVSTEVuY29kZXIuZW5jb2RlKCkgbWV0aG9kIGZyb20gamF2YSAxLjQgaWYgYXZhaWxhYmxlLCBlbHNlCisgdXNlIHRoZSBvbGQgZGVwcmVjYXRlZCB2ZXJzaW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjZm9yd2FyZFVSTChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPmZvcndhcmRVUkw8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+Rm9yd2FyZENvbmZpZzwvQT4mbmJzcDtmb3J3YXJkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBjb250ZXh0LXJlbGF0aXZlIFVSTCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBzcGVjaWZpZWQKKyBGb3J3YXJkQ29uZmlnLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRBY3Rpb25FcnJvcnMoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRBY3Rpb25FcnJvcnM8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXJhbU5hbWUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZXMgdGhlIHZhbHVlIGZyb20gcmVxdWVzdCBzY29wZSBhbmQgaWYgaXQgaXNuJ3QgYWxyZWFkeSBhbiA8Y29kZT5FcnJvck1lc3NhZ2VzPC9jb2RlPgorIHNvbWUgY2xhc3NlcyBhcmUgY29udmVydGVkIHRvIG9uZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2dldEFjdGlvbk1hcHBpbmdOYW1lKGphdmEubGFuZy5TdHJpbmcpIj5nZXRBY3Rpb25NYXBwaW5nTmFtZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb24pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcm0gYWN0aW9uIGNvbnZlcnRlZCBpbnRvIGFuIGFjdGlvbiBtYXBwaW5nIHBhdGguPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRBY3Rpb25NYXBwaW5nVVJMKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+Z2V0QWN0aW9uTWFwcGluZ1VSTDwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb24sCisgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGZvcm0gYWN0aW9uIGNvbnZlcnRlZCBpbnRvIGEgc2VydmVyLXJlbGF0aXZlIFVSTC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPkFjdGlvbk1lc3NhZ2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2dldEFjdGlvbk1lc3NhZ2VzKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0QWN0aW9uTWVzc2FnZXM8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlcyB0aGUgdmFsdWUgZnJvbSByZXF1ZXN0IHNjb3BlIGFuZCBpZiBpdCBpc24ndCBhbHJlYWR5IGFuIDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPgorIHNvbWUgY2xhc3NlcyBhcmUgY29udmVydGVkIHRvIG9uZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtqYXZhLnV0aWwuTWFwPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjZ2V0QWxsUGFyYW1ldGVyc0Zvck11bHRpcGFydFJlcXVlc3QoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RIYW5kbGVyKSI+Z2V0QWxsUGFyYW1ldGVyc0Zvck11bHRpcGFydFJlcXVlc3Q8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4mbmJzcDttdWx0aXBhcnRIYW5kbGVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGEgbWFwIGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBwYXJhbWV0ZXJzIHN1cHBsaWVkIGZvciBhIG11bHRpcGFydAorIHJlcXVlc3QsIGtleWVkIGJ5IHBhcmFtZXRlciBuYW1lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRBcHBsaWNhdGlvblByZWZpeGVzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXRBcHBsaWNhdGlvblByZWZpeGVzPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgZ2V0TW9kdWxlUHJlZml4ZXMoU2VydmxldENvbnRleHQpIGluc3RlYWQuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRNb2R1bGVDb25maWcoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldE1vZHVsZUNvbmZpZzwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtjb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBNb2R1bGVDb25maWcgb2JqZWN0IGlzIGl0IGV4aXN0cywgbnVsbCBvdGhlcndpc2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2dldE1vZHVsZUNvbmZpZyhqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCkiPmdldE1vZHVsZUNvbmZpZzwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIE1vZHVsZUNvbmZpZyBvYmplY3QgaWYgaXQgZXhpc3RzLCBudWxsIGlmIG90aGVyd2lzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI2dldE1vZHVsZU5hbWUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldE1vZHVsZU5hbWU8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIG1vZHVsZSBuYW1lIHRvIHdoaWNoIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBiZWxvbmcuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNnZXRNb2R1bGVOYW1lKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXRNb2R1bGVOYW1lPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21hdGNoUGF0aCwKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgdGhlIG1vZHVsZSBuYW1lIHRvIHdoaWNoIHRoZSBzcGVjaWZpZWQgdXJpIGJlbG9uZy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZ1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjZ2V0TW9kdWxlUHJlZml4ZXMoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldE1vZHVsZVByZWZpeGVzPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlIHByZWZpeGVzIHRoYXQgYXJlIGRlZmluZWQgZm9yCisgdGhpcyB3ZWIgYXBwbGljYXRpb24sIGNyZWF0aW5nIGl0IGlmIG5lY2Vzc2FyeS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjZ2V0TXVsdGlwYXJ0SGFuZGxlcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0TXVsdGlwYXJ0SGFuZGxlcjwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VHJ5IHRvIGxvY2F0ZSBhIG11bHRpcGFydCByZXF1ZXN0IGhhbmRsZXIgZm9yIHRoaXMgcmVxdWVzdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj5Nb2R1bGVDb25maWc8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjZ2V0UmVxdWVzdE1vZHVsZUNvbmZpZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0UmVxdWVzdE1vZHVsZUNvbmZpZzwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBjdXJyZW50IE1vZHVsZUNvbmZpZyBvYmplY3Qgc3RvcmVkIGluIHJlcXVlc3QsIGlmIGl0IGV4aXN0cywKKyBudWxsIG90aGVyd2lzZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7aW50PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjZ2V0U2NvcGUoamF2YS5sYW5nLlN0cmluZykiPmdldFNjb3BlPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlTmFtZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnZlcnRzIHRoZSBzY29wZSBuYW1lIGludG8gaXRzIGNvcnJlc3BvbmRpbmcgUGFnZUNvbnRleHQgY29uc3RhbnQgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNpc1hodG1sKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+aXNYaHRtbDwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIHRydWUgaWYgdGhlIGN1c3RvbSB0YWdzIGFyZSBpbiBYSFRNTCBtb2RlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjbG9va3VwKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGVOYW1lKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TG9jYXRlIGFuZCByZXR1cm4gdGhlIHNwZWNpZmllZCBiZWFuLCBmcm9tIGFuIG9wdGlvbmFsbHkgc3BlY2lmaWVkCisgc2NvcGUsIGluIHRoZSBzcGVjaWZpZWQgcGFnZSBjb250ZXh0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuT2JqZWN0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjbG9va3VwKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bG9va3VwPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHksCisgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TG9jYXRlIGFuZCByZXR1cm4gdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sIGZyb20KKyBhbiBvcHRpb25hbGx5IHNwZWNpZmllZCBzY29wZSwgaW4gdGhlIHNwZWNpZmllZCBwYWdlIGNvbnRleHQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNtZXNzYWdlKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+bWVzc2FnZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtidW5kbGUsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb29rIHVwIGFuZCByZXR1cm4gYSBtZXNzYWdlIHN0cmluZywgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjbWVzc2FnZShqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdFtdKSI+bWVzc2FnZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtidW5kbGUsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUsCisgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgIGphdmEubGFuZy5PYmplY3RbXSZuYnNwO2FyZ3MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb29rIHVwIGFuZCByZXR1cm4gYSBtZXNzYWdlIHN0cmluZywgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjcGFnZVVSTChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+cGFnZVVSTDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0aGUgY29udGV4dC1yZWxhdGl2ZSBVUkwgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgc3BlY2lmaWVkCisgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIHZhbHVlLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZQorIDxjb2RlPnBhZ2VQYXR0ZXJuPC9jb2RlPiBwcm9wZXJ0eSBvZiB0aGUgY3VycmVudCBtb2R1bGUncworIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNwb3B1bGF0ZShqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cG9wdWxhdGU8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UG9wdWxhdGUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNwZWNpZmllZCBKYXZhQmVhbiBmcm9tIHRoZSBzcGVjaWZpZWQKKyBIVFRQIHJlcXVlc3QsIGJhc2VkIG9uIG1hdGNoaW5nIGVhY2ggcGFyYW1ldGVyIG5hbWUgYWdhaW5zdCB0aGUKKyBjb3JyZXNwb25kaW5nIEphdmFCZWFucyAicHJvcGVydHkgc2V0dGVyIiBtZXRob2RzIGluIHRoZSBiZWFuJ3MgY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNwb3B1bGF0ZShqYXZhLmxhbmcuT2JqZWN0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cG9wdWxhdGU8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgsCisgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c3VmZml4LAorICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQb3B1bGF0ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgc3BlY2lmaWVkIEphdmFCZWFuIGZyb20gdGhlIHNwZWNpZmllZAorIEhUVFAgcmVxdWVzdCwgYmFzZWQgb24gbWF0Y2hpbmcgZWFjaCBwYXJhbWV0ZXIgbmFtZSAocGx1cyBhbiBvcHRpb25hbAorIHByZWZpeCBhbmQvb3Igc3VmZml4KSBhZ2FpbnN0IHRoZSBjb3JyZXNwb25kaW5nIEphdmFCZWFucyAicHJvcGVydHkKKyBzZXR0ZXIiIG1ldGhvZHMgaW4gdGhlIGJlYW4ncyBjbGFzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3ByZXNlbnQoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5wcmVzZW50PC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSwKKyAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2xvY2FsZSwKKyAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiB0cnVlIGlmIGEgbWVzc2FnZSBzdHJpbmcgZm9yIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSBrZXkKKyBpcyBwcmVzZW50IGZvciB0aGUgc3BlY2lmaWVkIExvY2FsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3ByaW50YWJsZVVSTChqYXZhLm5ldC5VUkwpIj5wcmludGFibGVVUkw8L0E+PC9CPihqYXZhLm5ldC5VUkwmbmJzcDt1cmwpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21wdXRlIHRoZSBwcmludGFibGUgcmVwcmVzZW50YXRpb24gb2YgYSBVUkwsIGxlYXZpbmcgb2ZmIHRoZQorIHNjaGVtZS9ob3N0L3BvcnQgcGFydCBpZiBubyBob3N0IGlzIHNwZWNpZmllZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5uZXQuVVJMPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjcmVxdWVzdFVSTChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVxdWVzdFVSTDwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBVUkwgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjcmV0cmlldmVNZXNzYWdlUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+cmV0cmlldmVNZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtjaGVja1BhZ2VTY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIGFwcHJvcHJpYXRlIE1lc3NhZ2VSZXNvdXJjZXMgb2JqZWN0IGZvciB0aGUgY3VycmVudCBtb2R1bGUgYW5kIAorIHRoZSBnaXZlbiBidW5kbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEudXRpbC5Mb2NhbGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNyZXRyaWV2ZVVzZXJMb2NhbGUoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcpIj5yZXRyaWV2ZVVzZXJMb2NhbGU8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtMb29rIHVwIGFuZCByZXR1cm4gY3VycmVudCB1c2VyIGxvY2FsZSwgYmFzZWQgb24gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjc2F2ZUV4Y2VwdGlvbihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlRocm93YWJsZSkiPnNhdmVFeGNlcHRpb248L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICBqYXZhLmxhbmcuVGhyb3dhYmxlJm5ic3A7ZXhjZXB0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2F2ZSB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBhcyBhIHJlcXVlc3QgYXR0cmlidXRlIGZvciBsYXRlciB1c2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNzZWxlY3RBcHBsaWNhdGlvbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+c2VsZWN0QXBwbGljYXRpb248L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtjb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+dXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjc2VsZWN0TW9kdWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Q09ERT5zZWxlY3RNb2R1bGUoSHR0cFNlcnZsZXRSZXF1ZXN0LFNlcnZsZXRDb250ZXh0KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjc2VsZWN0QXBwbGljYXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPnNlbGVjdEFwcGxpY2F0aW9uPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3ByZWZpeCwKKyAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNzZWxlY3RNb2R1bGUoamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjxDT0RFPnNlbGVjdE1vZHVsZShTdHJpbmcsSHR0cFNlcnZsZXRSZXF1ZXN0LFNlcnZsZXRDb250ZXh0KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjc2VsZWN0TW9kdWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5zZWxlY3RNb2R1bGU8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7Y29udGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NlbGVjdCB0aGUgbW9kdWxlIHRvIHdoaWNoIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBiZWxvbmdzLCBhbmQKKyBhZGQgY29ycmVzcG9uZGluZyByZXF1ZXN0IGF0dHJpYnV0ZXMgdG8gdGhpcyByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjc2VsZWN0TW9kdWxlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5zZWxlY3RNb2R1bGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4LAorICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtjb250ZXh0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2VsZWN0IHRoZSBtb2R1bGUgdG8gd2hpY2ggdGhlIHNwZWNpZmllZCByZXF1ZXN0IGJlbG9uZ3MsIGFuZAorIGFkZCBjb3JyZXNwb25kaW5nIHJlcXVlc3QgYXR0cmlidXRlcyB0byB0aGlzIHJlcXVlc3QuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubmV0LlVSTDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3NlcnZlclVSTChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+c2VydmVyVVJMPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIFVSTCByZXByZXNlbnRpbmcgdGhlIHNjaGVtZSwgc2VydmVyLCBhbmQgcG9ydCBudW1iZXIgb2YKKyB0aGUgY3VycmVudCByZXF1ZXN0LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibG9nIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJtZXNzYWdlcyI+PCEtLSAtLT48L0E+PEgzPgorbWVzc2FnZXM8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlBSRUZJWEVTX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorUFJFRklYRVNfS0VZPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPlBSRUZJWEVTX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY29udGV4dCBhdHRyaWJ1dGUgdW5kZXIgd2hpY2ggd2Ugc3RvcmUgb3VyIHByZWZpeGVzIGxpc3QuCis8UD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnV0aWwuUmVxdWVzdFV0aWxzLlBSRUZJWEVTX0tFWSI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbmNvZGUiPjwhLS0gLS0+PC9BPjxIMz4KK2VuY29kZTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kIDxCPmVuY29kZTwvQj48L1BSRT4KKzxETD4KKzxERD5KYXZhIDEuNCBlbmNvZGUgbWV0aG9kIHRvIHVzZSBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQgMS4zIHZlcnNpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzY29wZXMiPjwhLS0gLS0+PC9BPjxIMz4KK3Njb3BlczwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgamF2YS51dGlsLk1hcCA8Qj5zY29wZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+TWFwcyBsb3dlcmNhc2UgSlNQIHNjb3BlIG5hbWVzIHRvIHRoZWlyIFBhZ2VDb250ZXh0IGludGVnZXIgY29uc3RhbnQgdmFsdWVzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlJlcXVlc3RVdGlscygpIj48IS0tIC0tPjwvQT48SDM+CitSZXF1ZXN0VXRpbHM8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5SZXF1ZXN0VXRpbHM8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImFic29sdXRlVVJMKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CithYnNvbHV0ZVVSTDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLm5ldC5VUkwgPEI+YWJzb2x1dGVVUkw8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLm5ldC5NYWxmb3JtZWRVUkxFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5DcmVhdGUgYW5kIHJldHVybiBhbiBhYnNvbHV0ZSBVUkwgZm9yIHRoZSBzcGVjaWZpZWQgY29udGV4dC1yZWxhdGl2ZQorIHBhdGgsIGJhc2VkIG9uIHRoZSBzZXJ2ZXIgYW5kIGNvbnRleHQgaW5mb3JtYXRpb24gaW4gdGhlIHNwZWNpZmllZAorIHJlcXVlc3QuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5wYXRoPC9DT0RFPiAtIFRoZSBjb250ZXh0LXJlbGF0aXZlIHBhdGggKG11c3Qgc3RhcnQgd2l0aCAnLycpCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmFic29sdXRlIFVSTCBiYXNlZCBvbiBjb250ZXh0LXJlbGF0aXZlIHBhdGgKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubmV0Lk1hbGZvcm1lZFVSTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB3ZSBjYW5ub3QgY3JlYXRlIGFuIGFic29sdXRlIFVSTDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iYXBwbGljYXRpb25DbGFzcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorYXBwbGljYXRpb25DbGFzczwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuQ2xhc3MgPEI+YXBwbGljYXRpb25DbGFzczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NsYXNzTmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIDxjb2RlPkNsYXNzPC9jb2RlPiBvYmplY3QgZm9yIHRoZSBzcGVjaWZpZWQgZnVsbHkgcXVhbGlmaWVkCisgY2xhc3MgbmFtZSwgZnJvbSB0aGlzIHdlYiBhcHBsaWNhdGlvbidzIGNsYXNzIGxvYWRlci4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y2xhc3NOYW1lPC9DT0RFPiAtIEZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIHRvIGJlIGxvYWRlZAorPERUPjxCPlJldHVybnM6PC9CPjxERD5DbGFzcyBvYmplY3QKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubGFuZy5DbGFzc05vdEZvdW5kRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBjbGFzcyBjYW5ub3QgYmUgZm91bmQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImFwcGxpY2F0aW9uSW5zdGFuY2UoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2FwcGxpY2F0aW9uSW5zdGFuY2U8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLk9iamVjdCA8Qj5hcHBsaWNhdGlvbkluc3RhbmNlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y2xhc3NOYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5JbnN0YW50aWF0aW9uRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBzcGVjaWZpZWQgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUsCisgYWZ0ZXIgbG9hZGluZyB0aGUgY2xhc3MgZnJvbSB0aGlzIHdlYiBhcHBsaWNhdGlvbidzIGNsYXNzIGxvYWRlci4KKyBUaGUgc3BlY2lmaWVkIGNsYXNzIDxzdHJvbmc+TVVTVDwvc3Ryb25nPiBoYXZlIGEgcHVibGljIHplcm8tYXJndW1lbnRzCisgY29uc3RydWN0b3IuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNsYXNzTmFtZTwvQ09ERT4gLSBGdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSB0byB1c2UKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+bmV3IGluc3RhbmNlIG9mIGNsYXNzCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiB0aGUgY2xhc3MgY2Fubm90IGJlIGZvdW5kCis8REQ+PENPREU+amF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIGNsYXNzIG9yIGl0cyBjb25zdHJ1Y3RvcgorICBpcyBub3QgYWNjZXNzaWJsZQorPEREPjxDT0RFPmphdmEubGFuZy5JbnN0YW50aWF0aW9uRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgY2xhc3MgcmVwcmVzZW50cyBhbgorICBhYnN0cmFjdCBjbGFzcywgYW4gaW50ZXJmYWNlLCBhbiBhcnJheSBjbGFzcywgYSBwcmltaXRpdmUgdHlwZSwKKyAgb3Igdm9pZAorPEREPjxDT0RFPmphdmEubGFuZy5JbnN0YW50aWF0aW9uRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoaXMgY2xhc3MgaGFzIG5vCisgIHplcm8tYXJndW1lbnRzIGNvbnN0cnVjdG9yPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb21wdXRlUGFyYW1ldGVycyhqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbXB1dGVQYXJhbWV0ZXJzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEudXRpbC5NYXAgPEI+Y29tcHV0ZVBhcmFtZXRlcnM8L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1Qcm9wZXJ0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFyYW1TY29wZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3Njb3BlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDt0cmFuc2FjdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db21wdXRlIGEgc2V0IG9mIHF1ZXJ5IHBhcmFtZXRlcnMgdGhhdCB3aWxsIGJlIGR5bmFtaWNhbGx5IGFkZGVkIHRvCisgYSBnZW5lcmF0ZWQgVVJMLiAgVGhlIHJldHVybmVkIE1hcCBpcyBrZXllZCBieSBwYXJhbWV0ZXIgbmFtZSwgYW5kIHRoZQorIHZhbHVlcyBhcmUgZWl0aGVyIG51bGwgKG5vIHZhbHVlIHNwZWNpZmllZCksIGEgU3RyaW5nIChzaW5nbGUgdmFsdWUKKyBzcGVjaWZpZWQpLCBvciBhIFN0cmluZ1tdIGFycmF5IChtdWx0aXBsZSB2YWx1ZXMgc3BlY2lmaWVkKS4gIFBhcmFtZXRlcgorIG5hbWVzIGNvcnJlc3BvbmQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYXR0cmlidXRlcyBvZiB0aGUKKyA8Y29kZT4mbHQ7aHRtbDpsaW5rJmd0OzwvY29kZT4gdGFnLiAgSWYgbm8gcXVlcnkgcGFyYW1ldGVycyBhcmUKKyBpZGVudGlmaWVkLCByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPiAtIFBhZ2VDb250ZXh0IHdlIGFyZSBvcGVyYXRpbmcgaW48REQ+PENPREU+cGFyYW1JZDwvQ09ERT4gLSBTaW5nbGUtdmFsdWUgcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZSAoaWYgYW55KTxERD48Q09ERT5wYXJhbU5hbWU8L0NPREU+IC0gQmVhbiBjb250YWluaW5nIHNpbmdsZS12YWx1ZSBwYXJhbWV0ZXIgdmFsdWU8REQ+PENPREU+cGFyYW1Qcm9wZXJ0eTwvQ09ERT4gLSBQcm9wZXJ0eSAob2YgYmVhbiBuYW1lZCBieSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+CisgIGNvbnRhaW5pbmcgc2luZ2xlLXZhbHVlIHBhcmFtZXRlciB2YWx1ZTxERD48Q09ERT5wYXJhbVNjb3BlPC9DT0RFPiAtIFNjb3BlIGNvbnRhaW5pbmcgYmVhbiBuYW1lZCBieQorICA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+PEREPjxDT0RFPm5hbWU8L0NPREU+IC0gQmVhbiBjb250YWluaW5nIG11bHRpLXZhbHVlIHBhcmFtZXRlcnMgTWFwIChpZiBhbnkpPEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIFByb3BlcnR5IChvZiBiZWFuIG5hbWVkIGJ5IDxjb2RlPm5hbWU8L2NvZGU+CisgIGNvbnRhaW5pbmcgbXVsdGktdmFsdWUgcGFyYW1ldGVycyBNYXA8REQ+PENPREU+c2NvcGU8L0NPREU+IC0gU2NvcGUgY29udGFpbmluZyBiZWFuIG5hbWVkIGJ5CisgIDxjb2RlPm5hbWU8L2NvZGU+PEREPjxDT0RFPnRyYW5zYWN0aW9uPC9DT0RFPiAtIFNob3VsZCB3ZSBhZGQgb3VyIHRyYW5zYWN0aW9uIGNvbnRyb2wgdG9rZW4/Cis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPk1hcCBvZiBxdWVyeSBwYXJhbWV0ZXJzCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgd2UgY2Fubm90IGxvb2sgdXAgdGhlIHJlcXVpcmVkIGJlYW5zCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgY2xhc3MgY2FzdCBleGNlcHRpb24gb2NjdXJzIG9uIGEKKyAgbG9va2VkLXVwIGJlYW4gb3IgcHJvcGVydHk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbXB1dGVVUkwoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEudXRpbC5NYXAsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+Citjb21wdXRlVVJMPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPEI+Y29tcHV0ZVVSTDwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtmb3J3YXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2hyZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cGFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5NYXAmbmJzcDtwYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YW5jaG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO3JlZGlyZWN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5uZXQuTWFsZm9ybWVkVVJMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VG8gYmUgcmVtb3ZlZCBpbiBWZXJzaW9uIDEuMy4KKyBVc2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNjb21wdXRlVVJMKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PENPREU+Y29tcHV0ZVVSTChQYWdlQ29udGV4dCwgU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBNYXAsIFN0cmluZywgYm9vbGVhbik8L0NPREU+PC9BPiBpbnN0ZWFkLjwvST4KKzxQPgorPEREPkNvbXB1dGUgYSBoeXBlcmxpbmsgVVJMIGJhc2VkIG9uIHRoZSA8Y29kZT5mb3J3YXJkPC9jb2RlPiwKKyA8Y29kZT5ocmVmPC9jb2RlPiBvciA8Y29kZT5wYWdlPC9jb2RlPiBwYXJhbWV0ZXIKKyB0aGF0IGlzIG5vdCBudWxsLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBQYWdlQ29udGV4dCBmb3IgdGhlIHRhZyBtYWtpbmcgdGhpcyBjYWxsPEREPjxDT0RFPmZvcndhcmQ8L0NPREU+IC0gTG9naWNhbCBmb3J3YXJkIG5hbWUgZm9yIHdoaWNoIHRvIGxvb2sgdXAKKyAgdGhlIGNvbnRleHQtcmVsYXRpdmUgVVJJIChpZiBzcGVjaWZpZWQpPEREPjxDT0RFPmhyZWY8L0NPREU+IC0gVVJMIHRvIGJlIHV0aWxpemVkIHVubW9kaWZpZWQgKGlmIHNwZWNpZmllZCk8REQ+PENPREU+cGFnZTwvQ09ERT4gLSBNb2R1bGUtcmVsYXRpdmUgcGFnZSBmb3Igd2hpY2ggYSBVUkwgc2hvdWxkCisgIGJlIGNyZWF0ZWQgKGlmIHNwZWNpZmllZCk8REQ+PENPREU+cGFyYW1zPC9DT0RFPiAtIE1hcCBvZiBwYXJhbWV0ZXJzIHRvIGJlIGR5bmFtaWNhbGx5IGluY2x1ZGVkIChpZiBhbnkpPEREPjxDT0RFPmFuY2hvcjwvQ09ERT4gLSBBbmNob3IgdG8gYmUgZHluYW1pY2FsbHkgaW5jbHVkZWQgKGlmIGFueSk8REQ+PENPREU+cmVkaXJlY3Q8L0NPREU+IC0gSXMgdGhpcyBVUkwgZm9yIGEgPGNvZGU+cmVzcG9uc2Uuc2VuZFJlZGlyZWN0KCk8L2NvZGU+PworPERUPjxCPlJldHVybnM6PC9CPjxERD5VUkwgd2l0aCBzZXNzaW9uIGlkZW50aWZpZXIKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubmV0Lk1hbGZvcm1lZFVSTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIFVSTCBjYW5ub3QgYmUgY3JlYXRlZAorICBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb21wdXRlVVJMKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorY29tcHV0ZVVSTDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbXB1dGVVUkw8L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9yd2FyZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtocmVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS51dGlsLk1hcCZuYnNwO3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDthbmNob3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7cmVkaXJlY3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZhLm5ldC5NYWxmb3JtZWRVUkxFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Db21wdXRlIGEgaHlwZXJsaW5rIFVSTCBiYXNlZCBvbiB0aGUgPGNvZGU+Zm9yd2FyZDwvY29kZT4sCisgPGNvZGU+aHJlZjwvY29kZT4sIDxjb2RlPmFjdGlvbjwvY29kZT4gb3IgPGNvZGU+cGFnZTwvY29kZT4gcGFyYW1ldGVyCisgdGhhdCBpcyBub3QgbnVsbC4KKyBUaGUgcmV0dXJuZWQgVVJMIHdpbGwgaGF2ZSBhbHJlYWR5IGJlZW4gcGFzc2VkIHRvCisgPGNvZGU+cmVzcG9uc2UuZW5jb2RlVVJMKCk8L2NvZGU+IGZvciBhZGRpbmcgYSBzZXNzaW9uIGlkZW50aWZpZXIuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPiAtIFBhZ2VDb250ZXh0IGZvciB0aGUgdGFnIG1ha2luZyB0aGlzIGNhbGw8REQ+PENPREU+Zm9yd2FyZDwvQ09ERT4gLSBMb2dpY2FsIGZvcndhcmQgbmFtZSBmb3Igd2hpY2ggdG8gbG9vayB1cAorICB0aGUgY29udGV4dC1yZWxhdGl2ZSBVUkkgKGlmIHNwZWNpZmllZCk8REQ+PENPREU+aHJlZjwvQ09ERT4gLSBVUkwgdG8gYmUgdXRpbGl6ZWQgdW5tb2RpZmllZCAoaWYgc3BlY2lmaWVkKTxERD48Q09ERT5wYWdlPC9DT0RFPiAtIE1vZHVsZS1yZWxhdGl2ZSBwYWdlIGZvciB3aGljaCBhIFVSTCBzaG91bGQKKyAgYmUgY3JlYXRlZCAoaWYgc3BlY2lmaWVkKTxERD48Q09ERT5hY3Rpb248L0NPREU+IC0gTG9naWNhbCBhY3Rpb24gbmFtZSBmb3Igd2hpY2ggdG8gbG9vayB1cAorICB0aGUgY29udGV4dC1yZWxhdGl2ZSBVUkkgKGlmIHNwZWNpZmllZCk8REQ+PENPREU+cGFyYW1zPC9DT0RFPiAtIE1hcCBvZiBwYXJhbWV0ZXJzIHRvIGJlIGR5bmFtaWNhbGx5IGluY2x1ZGVkIChpZiBhbnkpPEREPjxDT0RFPmFuY2hvcjwvQ09ERT4gLSBBbmNob3IgdG8gYmUgZHluYW1pY2FsbHkgaW5jbHVkZWQgKGlmIGFueSk8REQ+PENPREU+cmVkaXJlY3Q8L0NPREU+IC0gSXMgdGhpcyBVUkwgZm9yIGEgPGNvZGU+cmVzcG9uc2Uuc2VuZFJlZGlyZWN0KCk8L2NvZGU+PworPERUPjxCPlJldHVybnM6PC9CPjxERD5VUkwgd2l0aCBzZXNzaW9uIGlkZW50aWZpZXIKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubmV0Lk1hbGZvcm1lZFVSTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIFVSTCBjYW5ub3QgYmUgY3JlYXRlZAorICBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb21wdXRlVVJMKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLnV0aWwuTWFwLCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuLCBib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorY29tcHV0ZVVSTDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbXB1dGVVUkw8L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Zm9yd2FyZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtocmVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS51dGlsLk1hcCZuYnNwO3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDthbmNob3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7cmVkaXJlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7ZW5jb2RlU2VwYXJhdG9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5uZXQuTWFsZm9ybWVkVVJMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29tcHV0ZSBhIGh5cGVybGluayBVUkwgYmFzZWQgb24gdGhlIDxjb2RlPmZvcndhcmQ8L2NvZGU+LAorIDxjb2RlPmhyZWY8L2NvZGU+LCA8Y29kZT5hY3Rpb248L2NvZGU+IG9yIDxjb2RlPnBhZ2U8L2NvZGU+IHBhcmFtZXRlcgorIHRoYXQgaXMgbm90IG51bGwuCisgVGhlIHJldHVybmVkIFVSTCB3aWxsIGhhdmUgYWxyZWFkeSBiZWVuIHBhc3NlZCB0bworIDxjb2RlPnJlc3BvbnNlLmVuY29kZVVSTCgpPC9jb2RlPiBmb3IgYWRkaW5nIGEgc2Vzc2lvbiBpZGVudGlmaWVyLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBQYWdlQ29udGV4dCBmb3IgdGhlIHRhZyBtYWtpbmcgdGhpcyBjYWxsPEREPjxDT0RFPmZvcndhcmQ8L0NPREU+IC0gTG9naWNhbCBmb3J3YXJkIG5hbWUgZm9yIHdoaWNoIHRvIGxvb2sgdXAKKyAgdGhlIGNvbnRleHQtcmVsYXRpdmUgVVJJIChpZiBzcGVjaWZpZWQpPEREPjxDT0RFPmhyZWY8L0NPREU+IC0gVVJMIHRvIGJlIHV0aWxpemVkIHVubW9kaWZpZWQgKGlmIHNwZWNpZmllZCk8REQ+PENPREU+cGFnZTwvQ09ERT4gLSBNb2R1bGUtcmVsYXRpdmUgcGFnZSBmb3Igd2hpY2ggYSBVUkwgc2hvdWxkCisgIGJlIGNyZWF0ZWQgKGlmIHNwZWNpZmllZCk8REQ+PENPREU+YWN0aW9uPC9DT0RFPiAtIExvZ2ljYWwgYWN0aW9uIG5hbWUgZm9yIHdoaWNoIHRvIGxvb2sgdXAKKyAgdGhlIGNvbnRleHQtcmVsYXRpdmUgVVJJIChpZiBzcGVjaWZpZWQpPEREPjxDT0RFPnBhcmFtczwvQ09ERT4gLSBNYXAgb2YgcGFyYW1ldGVycyB0byBiZSBkeW5hbWljYWxseSBpbmNsdWRlZCAoaWYgYW55KTxERD48Q09ERT5hbmNob3I8L0NPREU+IC0gQW5jaG9yIHRvIGJlIGR5bmFtaWNhbGx5IGluY2x1ZGVkIChpZiBhbnkpPEREPjxDT0RFPnJlZGlyZWN0PC9DT0RFPiAtIElzIHRoaXMgVVJMIGZvciBhIDxjb2RlPnJlc3BvbnNlLnNlbmRSZWRpcmVjdCgpPC9jb2RlPj88REQ+PENPREU+ZW5jb2RlU2VwYXJhdG9yPC9DT0RFPiAtIFRoaXMgaXMgb25seSBjaGVja2VkIGlmIHJlZGlyZWN0IGlzIHNldCB0byBmYWxzZSAobmV2ZXIKKyBlbmNvZGVkIGZvciBhIHJlZGlyZWN0KS4gIElmIHRydWUsIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXIgc2VwYXJhdG9ycyBhcmUgZW5jb2RlZAorIGFzICZndDthbXA7LCBlbHNlICZhbXA7IGlzIHVzZWQuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlVSTCB3aXRoIHNlc3Npb24gaWRlbnRpZmllcgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YS5uZXQuTWFsZm9ybWVkVVJMRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgVVJMIGNhbm5vdCBiZSBjcmVhdGVkCisgIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbk1hcHBpbmdOYW1lKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRBY3Rpb25NYXBwaW5nTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFjdGlvbk1hcHBpbmdOYW1lPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWN0aW9uKTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgZm9ybSBhY3Rpb24gY29udmVydGVkIGludG8gYW4gYWN0aW9uIG1hcHBpbmcgcGF0aC4gIFRoZQorIHZhbHVlIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IHByb3BlcnR5IGlzIG1hbmlwdWxhdGVkIGFzIGZvbGxvd3MgaW4KKyBjb21wdXRpbmcgdGhlIG5hbWUgb2YgdGhlIHJlcXVlc3RlZCBtYXBwaW5nOgorIDx1bD4KKyA8bGk+QW55IGZpbGVuYW1lIGV4dGVuc2lvbiBpcyByZW1vdmVkIChvbiB0aGUgdGhlb3J5IHRoYXQgZXh0ZW5zaW9uCisgICAgIG1hcHBpbmcgaXMgYmVpbmcgdXNlZCB0byBzZWxlY3QgdGhlIGNvbnRyb2xsZXIgc2VydmxldCkuPC9saT4KKyA8bGk+SWYgdGhlIHJlc3VsdGluZyB2YWx1ZSBkb2VzIG5vdCBzdGFydCB3aXRoIGEgc2xhc2gsIHRoZW4gYQorICAgICBzbGFzaCBpcyBwcmVwZW5kZWQuPC9saT4KKyA8L3VsPgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBY3Rpb25NYXBwaW5nVVJMKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWN0aW9uTWFwcGluZ1VSTDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldEFjdGlvbk1hcHBpbmdVUkw8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0KTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgZm9ybSBhY3Rpb24gY29udmVydGVkIGludG8gYSBzZXJ2ZXItcmVsYXRpdmUgVVJMLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjcmVhdGVBY3Rpb25Gb3JtKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPjwhLS0gLS0+PC9BPjxIMz4KK2NyZWF0ZUFjdGlvbkZvcm08L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT4gPEI+Y3JlYXRlQWN0aW9uRm9ybTwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4mbmJzcDttb2R1bGVDb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQpPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIChpZiBuZWNlc3NhcnkpIGFuZCByZXR1cm4gYW4gQWN0aW9uRm9ybSBpbnN0YW5jZSBhcHByb3ByaWF0ZQorIGZvciB0aGlzIHJlcXVlc3QuICBJZiBubyBBY3Rpb25Gb3JtIGluc3RhbmNlIGlzIHJlcXVpcmVkLCByZXR1cm4KKyA8Y29kZT5udWxsPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIGFjdGlvbiBtYXBwaW5nIGZvciB0aGlzIHJlcXVlc3Q8REQ+PENPREU+bW9kdWxlQ29uZmlnPC9DT0RFPiAtIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGlzIG1vZHVsZTxERD48Q09ERT5zZXJ2bGV0PC9DT0RFPiAtIFRoZSBhY3Rpb24gc2VydmxldAorPERUPjxCPlJldHVybnM6PC9CPjxERD5BY3Rpb25Gb3JtIGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3Q8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Imxvb2t1cChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2xvb2t1cDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuT2JqZWN0IDxCPmxvb2t1cDwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZU5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkxvY2F0ZSBhbmQgcmV0dXJuIHRoZSBzcGVjaWZpZWQgYmVhbiwgZnJvbSBhbiBvcHRpb25hbGx5IHNwZWNpZmllZAorIHNjb3BlLCBpbiB0aGUgc3BlY2lmaWVkIHBhZ2UgY29udGV4dC4gIElmIG5vIHN1Y2ggYmVhbiBpcyBmb3VuZCwKKyByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4gaW5zdGVhZC4gIElmIGFuIGV4Y2VwdGlvbiBpcyB0aHJvd24sIGl0IHdpbGwKKyBoYXZlIGFscmVhZHkgYmVlbiBzYXZlZCB2aWEgYSBjYWxsIHRvIDxjb2RlPnNhdmVFeGNlcHRpb24oKTwvY29kZT4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPiAtIFBhZ2UgY29udGV4dCB0byBiZSBzZWFyY2hlZDxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIGJlYW4gdG8gYmUgcmV0cmlldmVkPEREPjxDT0RFPnNjb3BlTmFtZTwvQ09ERT4gLSBTY29wZSB0byBiZSBzZWFyY2hlZCAocGFnZSwgcmVxdWVzdCwgc2Vzc2lvbiwgYXBwbGljYXRpb24pCisgIG9yIDxjb2RlPm51bGw8L2NvZGU+IHRvIHVzZSA8Y29kZT5maW5kQXR0cmlidXRlKCk8L2NvZGU+IGluc3RlYWQKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+SmF2YUJlYW4gaW4gdGhlIHNwZWNpZmllZCBwYWdlIGNvbnRleHQKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnZhbGlkIHNjb3BlIG5hbWUKKyAgaXMgcmVxdWVzdGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRTY29wZShqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0U2NvcGU8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgaW50IDxCPmdldFNjb3BlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7c2NvcGVOYW1lKQorICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+Q29udmVydHMgdGhlIHNjb3BlIG5hbWUgaW50byBpdHMgY29ycmVzcG9uZGluZyBQYWdlQ29udGV4dCBjb25zdGFudCB2YWx1ZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+c2NvcGVOYW1lPC9DT0RFPiAtIENhbiBiZSAicGFnZSIsICJyZXF1ZXN0IiwgInNlc3Npb24iLCBvciAiYXBwbGljYXRpb24iIGluIGFueQorIGNhc2UuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBjb25zdGFudCByZXByZXNlbnRpbmcgdGhlIHNjb3BlIChpZS4gUGFnZUNvbnRleHQuUkVRVUVTVF9TQ09QRSkuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgdGhlIHNjb3BlTmFtZSBpcyBub3QgYSB2YWxpZCBuYW1lLjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb29rdXAoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Citsb29rdXA8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLk9iamVjdCA8Qj5sb29rdXA8L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtzY29wZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+TG9jYXRlIGFuZCByZXR1cm4gdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sIGZyb20KKyBhbiBvcHRpb25hbGx5IHNwZWNpZmllZCBzY29wZSwgaW4gdGhlIHNwZWNpZmllZCBwYWdlIGNvbnRleHQuICBJZiBhbgorIGV4Y2VwdGlvbiBpcyB0aHJvd24sIGl0IHdpbGwgaGF2ZSBhbHJlYWR5IGJlZW4gc2F2ZWQgdmlhIGEgY2FsbCB0bworIDxjb2RlPnNhdmVFeGNlcHRpb24oKTwvY29kZT4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPiAtIFBhZ2UgY29udGV4dCB0byBiZSBzZWFyY2hlZDxERD48Q09ERT5uYW1lPC9DT0RFPiAtIE5hbWUgb2YgdGhlIGJlYW4gdG8gYmUgcmV0cmlldmVkPEREPjxDT0RFPnByb3BlcnR5PC9DT0RFPiAtIE5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIHJldHJpZXZlZCwgb3IKKyAgPGNvZGU+bnVsbDwvY29kZT4gdG8gcmV0cmlldmUgdGhlIGJlYW4gaXRzZWxmPEREPjxDT0RFPnNjb3BlPC9DT0RFPiAtIFNjb3BlIHRvIGJlIHNlYXJjaGVkIChwYWdlLCByZXF1ZXN0LCBzZXNzaW9uLCBhcHBsaWNhdGlvbikKKyAgb3IgPGNvZGU+bnVsbDwvY29kZT4gdG8gdXNlIDxjb2RlPmZpbmRBdHRyaWJ1dGUoKTwvY29kZT4gaW5zdGVhZAorPERUPjxCPlJldHVybnM6PC9CPjxERD5wcm9wZXJ0eSBvZiBzcGVjaWZpZWQgSmF2YUJlYW4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBpbnZhbGlkIHNjb3BlIG5hbWUKKyAgaXMgcmVxdWVzdGVkCis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBzcGVjaWZpZWQgYmVhbiBpcyBub3QgZm91bmQKKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYWNjZXNzaW5nIHRoaXMgcHJvcGVydHkgY2F1c2VzIGFuCisgIElsbGVnYWxBY2Nlc3NFeGNlcHRpb24sIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiwKKyAgSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiwgb3IgTm9TdWNoTWV0aG9kRXhjZXB0aW9uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXRyaWV2ZVVzZXJMb2NhbGUoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CityZXRyaWV2ZVVzZXJMb2NhbGU8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS51dGlsLkxvY2FsZSA8Qj5yZXRyaWV2ZVVzZXJMb2NhbGU8L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUpPC9QUkU+Cis8REw+Cis8REQ+TG9vayB1cCBhbmQgcmV0dXJuIGN1cnJlbnQgdXNlciBsb2NhbGUsIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+IC0gVGhlIFBhZ2VDb250ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3Q8REQ+PENPREU+bG9jYWxlPC9DT0RFPiAtIE5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIGZvciBvdXIgdXNlcidzIExvY2FsZS4gIElmIHRoaXMgaXMgCisgPGNvZGU+bnVsbDwvY29kZT4sIHRoZSBkZWZhdWx0IGxvY2FsZSBrZXkgaXMgdXNlZCBmb3IgdGhlIGxvb2t1cC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Y3VycmVudCB1c2VyIGxvY2FsZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibWVzc2FnZShqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5tZXNzYWdlPC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+TG9vayB1cCBhbmQgcmV0dXJuIGEgbWVzc2FnZSBzdHJpbmcsIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+IC0gVGhlIFBhZ2VDb250ZXh0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3Q8REQ+PENPREU+YnVuZGxlPC9DT0RFPiAtIE5hbWUgb2YgdGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUgZm9yIG91cgorICBtZXNzYWdlIHJlc291cmNlcyBidW5kbGU8REQ+PENPREU+bG9jYWxlPC9DT0RFPiAtIE5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIGZvciBvdXIgdXNlcidzIExvY2FsZTxERD48Q09ERT5rZXk8L0NPREU+IC0gTWVzc2FnZSBrZXkgdG8gYmUgbG9va2VkIHVwIGFuZCByZXR1cm5lZAorPERUPjxCPlJldHVybnM6PC9CPjxERD5tZXNzYWdlIHN0cmluZworPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGEgbG9va3VwIGVycm9yIG9jY3VycyAod2lsbCBoYXZlIGJlZW4KKyAgc2F2ZWQgaW4gdGhlIHJlcXVlc3QgYWxyZWFkeSk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9Im1lc3NhZ2UoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3RbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK21lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5tZXNzYWdlPC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdFtdJm5ic3A7YXJncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkxvb2sgdXAgYW5kIHJldHVybiBhIG1lc3NhZ2Ugc3RyaW5nLCBiYXNlZCBvbiB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPiAtIFRoZSBQYWdlQ29udGV4dCBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXF1ZXN0PEREPjxDT0RFPmJ1bmRsZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGZvciBvdXIKKyAgbWVzc2FnZSByZXNvdXJjZXMgYnVuZGxlPEREPjxDT0RFPmxvY2FsZTwvQ09ERT4gLSBOYW1lIG9mIHRoZSBzZXNzaW9uIGF0dHJpYnV0ZSBmb3Igb3VyIHVzZXIncyBMb2NhbGU8REQ+PENPREU+a2V5PC9DT0RFPiAtIE1lc3NhZ2Uga2V5IHRvIGJlIGxvb2tlZCB1cCBhbmQgcmV0dXJuZWQ8REQ+PENPREU+YXJnczwvQ09ERT4gLSBSZXBsYWNlbWVudCBwYXJhbWV0ZXJzIGZvciB0aGlzIG1lc3NhZ2UKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+bWVzc2FnZSBzdHJpbmcKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIGxvb2t1cCBlcnJvciBvY2N1cnMgKHdpbGwgaGF2ZSBiZWVuCisgIHNhdmVkIGluIHRoZSByZXF1ZXN0IGFscmVhZHkpPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJyZXRyaWV2ZU1lc3NhZ2VSZXNvdXJjZXMoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcsIGJvb2xlYW4pIj48IS0tIC0tPjwvQT48SDM+CityZXRyaWV2ZU1lc3NhZ2VSZXNvdXJjZXM8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5yZXRyaWV2ZU1lc3NhZ2VSZXNvdXJjZXM8L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiZuYnNwO2NoZWNrUGFnZVNjb3BlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0aGUgYXBwcm9wcmlhdGUgTWVzc2FnZVJlc291cmNlcyBvYmplY3QgZm9yIHRoZSBjdXJyZW50IG1vZHVsZSBhbmQgCisgdGhlIGdpdmVuIGJ1bmRsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+IC0gU2VhcmNoIHRoZSBjb250ZXh0J3Mgc2NvcGVzIGZvciB0aGUgcmVzb3VyY2VzLjxERD48Q09ERT5idW5kbGU8L0NPREU+IC0gVGhlIGJ1bmRsZSBuYW1lIHRvIGxvb2sgZm9yLiAgSWYgdGhpcyBpcyA8Y29kZT5udWxsPC9jb2RlPiwgdGhlIAorIGRlZmF1bHQgYnVuZGxlIG5hbWUgaXMgdXNlZC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+TWVzc2FnZVJlc291cmNlcyBUaGUgYnVuZGxlJ3MgcmVzb3VyY2VzIHN0b3JlZCBpbiBzb21lIHNjb3BlLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9DT0RFPiAtIGlmIHRoZSBNZXNzYWdlUmVzb3VyY2VzIG9iamVjdCBjb3VsZCBub3QgYmUgZm91bmQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwb3B1bGF0ZShqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorcG9wdWxhdGU8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5wb3B1bGF0ZTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpCisgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UG9wdWxhdGUgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNwZWNpZmllZCBKYXZhQmVhbiBmcm9tIHRoZSBzcGVjaWZpZWQKKyBIVFRQIHJlcXVlc3QsIGJhc2VkIG9uIG1hdGNoaW5nIGVhY2ggcGFyYW1ldGVyIG5hbWUgYWdhaW5zdCB0aGUKKyBjb3JyZXNwb25kaW5nIEphdmFCZWFucyAicHJvcGVydHkgc2V0dGVyIiBtZXRob2RzIGluIHRoZSBiZWFuJ3MgY2xhc3MuCisgU3VpdGFibGUgY29udmVyc2lvbiBpcyBkb25lIGZvciBhcmd1bWVudCB0eXBlcyBhcyBkZXNjcmliZWQgdW5kZXIKKyA8Y29kZT5jb252ZXJ0KCk8L2NvZGU+LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIFRoZSBKYXZhQmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSB0byBiZSBzZXQ8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IHdob3NlIHBhcmFtZXRlcnMgYXJlIHRvIGJlIHVzZWQKKyAgICAgICAgICAgICAgICB0byBwb3B1bGF0ZSBiZWFuIHByb3BlcnRpZXMKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIHdoaWxlIHNldHRpbmcKKyAgICAgICAgICAgIHByb3BlcnR5IHZhbHVlczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icG9wdWxhdGUoamF2YS5sYW5nLk9iamVjdCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3BvcHVsYXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+cG9wdWxhdGU8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3N1ZmZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCkKKyAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5Qb3B1bGF0ZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgc3BlY2lmaWVkIEphdmFCZWFuIGZyb20gdGhlIHNwZWNpZmllZAorIEhUVFAgcmVxdWVzdCwgYmFzZWQgb24gbWF0Y2hpbmcgZWFjaCBwYXJhbWV0ZXIgbmFtZSAocGx1cyBhbiBvcHRpb25hbAorIHByZWZpeCBhbmQvb3Igc3VmZml4KSBhZ2FpbnN0IHRoZSBjb3JyZXNwb25kaW5nIEphdmFCZWFucyAicHJvcGVydHkKKyBzZXR0ZXIiIG1ldGhvZHMgaW4gdGhlIGJlYW4ncyBjbGFzcy4gIFN1aXRhYmxlIGNvbnZlcnNpb24gaXMgZG9uZSBmb3IKKyBhcmd1bWVudCB0eXBlcyBhcyBkZXNjcmliZWQgdW5kZXIgPGNvZGU+c2V0UHJvcGVydGllcygpPC9jb2RlPi4KKyA8cD4KKyBJZiB5b3Ugc3BlY2lmeSBhIG5vbi1udWxsIDxjb2RlPnByZWZpeDwvY29kZT4gYW5kIGEgbm9uLW51bGwKKyA8Y29kZT5zdWZmaXg8L2NvZGU+LCB0aGUgcGFyYW1ldGVyIG5hbWUgbXVzdCBtYXRjaCA8c3Ryb25nPmJvdGg8L3N0cm9uZz4KKyBjb25kaXRpb25zIGZvciBpdHMgdmFsdWUocykgdG8gYmUgdXNlZCBpbiBwb3B1bGF0aW5nIGJlYW4gcHJvcGVydGllcy4KKyBJZiB0aGUgcmVxdWVzdCdzIGNvbnRlbnQgdHlwZSBpcyAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgYW5kIHRoZQorIG1ldGhvZCBpcyAiUE9TVCIsIHRoZSBIdHRwU2VydmxldFJlcXVlc3Qgb2JqZWN0IHdpbGwgYmUgd3JhcHBlZCBpbgorIGEgTXVsdGlwYXJ0UmVxdWVzdFdyYXBwZXIgb2JqZWN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIFRoZSBKYXZhQmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSB0byBiZSBzZXQ8REQ+PENPREU+cHJlZml4PC9DT0RFPiAtIFRoZSBwcmVmaXggKGlmIGFueSkgdG8gYmUgcHJlcGVuZCB0byBiZWFuIHByb3BlcnR5CisgICAgICAgICAgICAgICBuYW1lcyB3aGVuIGxvb2tpbmcgZm9yIG1hdGNoaW5nIHBhcmFtZXRlcnM8REQ+PENPREU+c3VmZml4PC9DT0RFPiAtIFRoZSBzdWZmaXggKGlmIGFueSkgdG8gYmUgYXBwZW5kZWQgdG8gYmVhbiBwcm9wZXJ0eQorICAgICAgICAgICAgICAgbmFtZXMgd2hlbiBsb29raW5nIGZvciBtYXRjaGluZyBwYXJhbWV0ZXJzPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIEhUVFAgcmVxdWVzdCB3aG9zZSBwYXJhbWV0ZXJzIGFyZSB0byBiZSB1c2VkCisgICAgICAgICAgICAgICAgdG8gcG9wdWxhdGUgYmVhbiBwcm9wZXJ0aWVzCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gZXhjZXB0aW9uIGlzIHRocm93biB3aGlsZSBzZXR0aW5nCisgICAgICAgICAgICBwcm9wZXJ0eSB2YWx1ZXM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE11bHRpcGFydEhhbmRsZXIoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE11bHRpcGFydEhhbmRsZXI8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4gPEI+Z2V0TXVsdGlwYXJ0SGFuZGxlcjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlRyeSB0byBsb2NhdGUgYSBtdWx0aXBhcnQgcmVxdWVzdCBoYW5kbGVyIGZvciB0aGlzIHJlcXVlc3QuIEZpcnN0LCBsb29rCisgZm9yIGEgbWFwcGluZy1zcGVjaWZpYyBoYW5kbGVyIHN0b3JlZCBmb3IgdXMgdW5kZXIgYW4gYXR0cmlidXRlLiBJZiBvbmUKKyBpcyBub3QgcHJlc2VudCwgdXNlIHRoZSBnbG9iYWwgbXVsdGlwYXJ0IGhhbmRsZXIsIGlmIHRoZXJlIGlzIG9uZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgSFRUUCByZXF1ZXN0IGZvciB3aGljaCB0aGUgbXVsdGlwYXJ0IGhhbmRsZXIgc2hvdWxkCisgICAgICAgICAgICAgICAgYmUgZm91bmQuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBtdWx0aXBhcnQgaGFuZGxlciB0byB1c2UsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIG5vbmUgaXMKKyAgICAgICAgIGZvdW5kLgorPERUPjxCPlRocm93czo8L0I+Cis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFueSBleGNlcHRpb24gaXMgdGhyb3duIHdoaWxlIGF0dGVtcHRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gbG9jYXRlIHRoZSBtdWx0aXBhcnQgaGFuZGxlci48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFsbFBhcmFtZXRlcnNGb3JNdWx0aXBhcnRSZXF1ZXN0KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcikiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFsbFBhcmFtZXRlcnNGb3JNdWx0aXBhcnRSZXF1ZXN0PC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBqYXZhLnV0aWwuTWFwIDxCPmdldEFsbFBhcmFtZXRlcnNGb3JNdWx0aXBhcnRSZXF1ZXN0PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPiZuYnNwO211bHRpcGFydEhhbmRsZXIpPC9QUkU+Cis8REw+Cis8REQ+Q3JlYXRlIGEgbWFwIGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBwYXJhbWV0ZXJzIHN1cHBsaWVkIGZvciBhIG11bHRpcGFydAorIHJlcXVlc3QsIGtleWVkIGJ5IHBhcmFtZXRlciBuYW1lLiBJbiBhZGRpdGlvbiB0byB0ZXh0IGFuZCBmaWxlIGVsZW1lbnRzCisgZnJvbSB0aGUgbXVsdGlwYXJ0IGJvZHksIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJzIGFyZSBpbmNsdWRlZCBhcyB3ZWxsLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSAod3JhcHBlZCkgSFRUUCByZXF1ZXN0IHdob3NlIHBhcmFtZXRlcnMgYXJlIHRvIGJlCisgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIG1hcC48REQ+PENPREU+bXVsdGlwYXJ0SGFuZGxlcjwvQ09ERT4gLSBUaGUgbXVsdGlwYXJ0IGhhbmRsZXIgdXNlZCB0byBwYXJzZSB0aGUgcmVxdWVzdC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dGhlIG1hcCBjb250YWluaW5nIGFsbCBwYXJhbWV0ZXJzIGZvciB0aGlzIG11bHRpcGFydCByZXF1ZXN0LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJlc2VudChqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3ByZXNlbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgYm9vbGVhbiA8Qj5wcmVzZW50PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2J1bmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KQorICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRydWUgaWYgYSBtZXNzYWdlIHN0cmluZyBmb3IgdGhlIHNwZWNpZmllZCBtZXNzYWdlIGtleQorIGlzIHByZXNlbnQgZm9yIHRoZSBzcGVjaWZpZWQgTG9jYWxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBUaGUgUGFnZUNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVxdWVzdDxERD48Q09ERT5idW5kbGU8L0NPREU+IC0gTmFtZSBvZiB0aGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBmb3Igb3VyCisgIG1lc3NhZ2UgcmVzb3VyY2VzIGJ1bmRsZTxERD48Q09ERT5sb2NhbGU8L0NPREU+IC0gTmFtZSBvZiB0aGUgc2Vzc2lvbiBhdHRyaWJ1dGUgZm9yIG91ciB1c2VyJ3MgTG9jYWxlPEREPjxDT0RFPmtleTwvQ09ERT4gLSBNZXNzYWdlIGtleSB0byBiZSBsb29rZWQgdXAgYW5kIHJldHVybmVkCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRydWUgaWYgYSBtZXNzYWdlIHN0cmluZyBmb3IgbWVzc2FnZSBrZXkgZXhpc3RzCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYSBsb29rdXAgZXJyb3Igb2NjdXJzICh3aWxsIGhhdmUgYmVlbgorICBzYXZlZCBpbiB0aGUgcmVxdWVzdCBhbHJlYWR5KTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJpbnRhYmxlVVJMKGphdmEubmV0LlVSTCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ByaW50YWJsZVVSTDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPnByaW50YWJsZVVSTDwvQj4oamF2YS5uZXQuVVJMJm5ic3A7dXJsKTwvUFJFPgorPERMPgorPEREPkNvbXB1dGUgdGhlIHByaW50YWJsZSByZXByZXNlbnRhdGlvbiBvZiBhIFVSTCwgbGVhdmluZyBvZmYgdGhlCisgc2NoZW1lL2hvc3QvcG9ydCBwYXJ0IGlmIG5vIGhvc3QgaXMgc3BlY2lmaWVkLiAgVGhpcyB3aWxsIHR5cGljYWxseQorIGJlIHRoZSBjYXNlIGZvciBVUkxzIHRoYXQgd2VyZSBvcmlnaW5hbGx5IGNyZWF0ZWQgZnJvbSByZWxhdGl2ZQorIG9yIGNvbnRleHQtcmVsYXRpdmUgVVJJcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dXJsPC9DT0RFPiAtIFVSTCB0byByZW5kZXIgaW4gYSBwcmludGFibGUgcmVwcmVzZW50YXRpb24KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+cHJpbnRhYmxlIHJlcHJlc2VudGF0aW9uIG9mIGEgVVJMPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJhY3Rpb25VUkwoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZywgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2FjdGlvblVSTDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmFjdGlvblVSTDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+QWN0aW9uQ29uZmlnPC9BPiZuYnNwO2FjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhdHRlcm4pPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBjb250ZXh0LXJlbGF0aXZlIFVSTCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBzcGVjaWZpZWQKKyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPjxDT0RFPkFjdGlvbkNvbmZpZzwvQ09ERT48L0E+LCByZWxhdGl2ZSB0byB0aGUgbW9kdWxlIGFzc29jaWF0ZWQKKyB3aXRoIHRoZSBjdXJyZW50IG1vZHVsZXMncyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPjxDT0RFPk1vZHVsZUNvbmZpZzwvQ09ERT48L0E+LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+YWN0aW9uPC9DT0RFPiAtIEFjdGlvbkNvbmZpZyB0byBiZSBldmFsdWF0ZWQ8REQ+PENPREU+cGF0dGVybjwvQ09ERT4gLSBVUkwgcGF0dGVybiB1c2VkIHRvIG1hcCB0aGUgY29udHJvbGxlciBzZXJ2bGV0Cis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmNvbnRleHQtcmVsYXRpdmUgVVJMIHJlbGF0aXZlIHRvIHRoZSBtb2R1bGU8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZm9yd2FyZFVSTChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZykiPjwhLS0gLS0+PC9BPjxIMz4KK2ZvcndhcmRVUkw8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5mb3J3YXJkVVJMPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPkZvcndhcmRDb25maWc8L0E+Jm5ic3A7Zm9yd2FyZCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGNvbnRleHQtcmVsYXRpdmUgVVJMIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIHNwZWNpZmllZAorIEZvcndhcmRDb25maWcuIFRoZSBVUkwgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgcHJvcGVydGllcyBvZiB0aGUKKyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9yd2FyZENvbmZpZy5odG1sIj48Q09ERT5Gb3J3YXJkQ29uZmlnPC9DT0RFPjwvQT4gaW5zdGFuY2UgYXMgZm9sbG93czoKKyA8dWw+CisgPGxpPklmIHRoZSA8Y29kZT5jb250ZXh0UmVsYXRpdmU8L2NvZGU+IHByb3BlcnR5IGlzIHNldCwgaXQgaXMKKyAgICAgYXNzdW1lZCB0aGF0IHRoZSA8Y29kZT5wYXRoPC9jb2RlPiBwcm9wZXJ0eSBjb250YWlucyBhIHBhdGgKKyAgICAgdGhhdCBpcyBhbHJlYWR5IGNvbnRleHQtcmVsYXRpdmU6CisgICAgIDx1bD4KKyAgICAgPGxpPklmIHRoZSA8Y29kZT5wYXRoPC9jb2RlPiBwcm9wZXJ0eSB2YWx1ZSBzdGFydHMgd2l0aCBhIHNsYXNoLAorICAgICAgICAgaXQgaXMgcmV0dXJuZWQgdW5tb2RpZmllZC48L2xpPgorICAgICA8bGk+SWYgdGhlIDxjb2RlPnBhdGg8L2NvZGU+IHByb3BlcnR5IHZhbHVlIGRvZXMgbm90IHN0YXJ0CisgICAgICAgICB3aXRoIGEgc2xhc2gsIGEgc2xhc2ggaXMgcHJlcGVuZGVkLjwvbGk+CisgICAgIDwvdWw+PC9saT4KKyA8bGk+QWNxdWlyZSB0aGUgPGNvZGU+Zm9yd2FyZFBhdHRlcm48L2NvZGU+IHByb3BlcnR5IGZyb20gdGhlCisgICAgIDxjb2RlPkNvbnRyb2xsZXJDb25maWc8L2NvZGU+IGZvciB0aGUgYXBwbGljYXRpb24gbW9kdWxlIHVzZWQKKyAgICAgdG8gcHJvY2VzcyB0aGlzIHJlcXVlc3QuICBJZiBubyBwYXR0ZXJuIHdhcyBjb25maWd1cmVkLCBkZWZhdWx0CisgICAgIHRvIGEgcGF0dGVybiBvZiA8Y29kZT4kTSRQPC9jb2RlPiwgd2hpY2ggaXMgY29tcGF0aWJsZSB3aXRoIHRoZQorICAgICBoYXJkLWNvZGVkIG1hcHBpbmcgYmVoYXZpb3IgaW4gU3RydXRzIDEuMC48L2xpPgorIDxsaT5Qcm9jZXNzIHRoZSBhY3F1aXJlZCA8Y29kZT5mb3J3YXJkUGF0dGVybjwvY29kZT4sIHBlcmZvcm1pbmcgdGhlCisgICAgIGZvbGxvd2luZyBzdWJzdGl0dXRpb25zOgorICAgICA8dWw+CisgICAgIDxsaT48c3Ryb25nPiRNPC9zdHJvbmc+IC0gUmVwbGFjZWQgYnkgdGhlIG1vZHVsZSBwcmVmaXggZm9yIHRoZQorICAgICAgICAgYXBwbGljYXRpb24gbW9kdWxlIHByb2Nlc3NpbmcgdGhpcyByZXF1ZXN0LjwvbGk+CisgICAgIDxsaT48c3Ryb25nPiRQPC9zdHJvbmc+IC0gUmVwbGFjZWQgYnkgdGhlIDxjb2RlPnBhdGg8L2NvZGU+CisgICAgICAgICBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPjxDT0RFPkZvcndhcmRDb25maWc8L0NPREU+PC9BPiwgcHJlcGVuZGVkCisgICAgICAgICB3aXRoIGEgc2xhc2ggaWYgaXQgZG9lcyBub3Qgc3RhcnQgd2l0aCBvbmUuPC9saT4KKyAgICAgPGxpPjxzdHJvbmc+JCQ8L3N0cm9uZz4gLSBSZXBsYWNlZCBieSBhIHNpbmdsZSBkb2xsYXIgc2lnbgorICAgICAgICAgY2hhcmFjdGVyLjwvbGk+CisgICAgIDxsaT48c3Ryb25nPiR4PC9zdHJvbmc+ICh3aGVyZSAieCIgaXMgYW55IGNoYXJhdGVyIG5vdCBsaXN0ZWQKKyAgICAgICAgIGFib3ZlKSAtIFNpbGVudGx5IG9taXQgdGhlc2UgdHdvIGNoYXJhY3RlcnMgZnJvbSB0aGUgcmVzdWx0CisgICAgICAgICB2YWx1ZS4gIChUaGlzIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgY2F1c2luZyBhbGwgb3RoZXIKKyAgICAgICAgICQrbGV0dGVyIGNvbWJpbmF0aW9ucyB0byBiZSByZXNlcnZlZC4pPC9saT4KKyAgICAgPC91bD48L2xpPgorIDwvdWw+Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5mb3J3YXJkPC9DT0RFPiAtIEZvcndhcmRDb25maWcgdG8gYmUgZXZhbHVhdGVkCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmNvbnRleHQtcmVsYXRpdmUgVVJMPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhZ2VVUkwoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3BhZ2VVUkw8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlVVJMPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYWdlKTwvUFJFPgorPERMPgorPEREPjxwPlJldHVybiB0aGUgY29udGV4dC1yZWxhdGl2ZSBVUkwgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgc3BlY2lmaWVkCisgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIHZhbHVlLCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZQorIDxjb2RlPnBhZ2VQYXR0ZXJuPC9jb2RlPiBwcm9wZXJ0eSBvZiB0aGUgY3VycmVudCBtb2R1bGUncworIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4uPC9wPgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+cGFnZTwvQ09ERT4gLSBUaGUgbW9kdWxlLXJlbGF0aXZlIFVSTCB0byBiZSBzdWJzdGl0dXRlZCBpbgorICB0byB0aGUgPGNvZGU+cGFnZVBhdHRlcm48L2NvZGU+IHBhdHRlcm4gZm9yIHRoZSBjdXJyZW50IG1vZHVsZQorICAoPHN0cm9uZz5NVVNUPC9zdHJvbmc+IHN0YXJ0IHdpdGggYSBzbGFzaCkKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Y29udGV4dC1yZWxhdGl2ZSBVUkw8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVxdWVzdFVSTChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorcmVxdWVzdFVSTDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLm5ldC5VUkwgPEI+cmVxdWVzdFVSTDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEubmV0Lk1hbGZvcm1lZFVSTEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgVVJMIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCByZXF1ZXN0LiAgVGhpcyBpcyBlcXVpdmFsZW50CisgdG8gPGNvZGU+SHR0cFNlcnZsZXRSZXF1ZXN0LmdldFJlcXVlc3RVUkwoKTwvY29kZT4gaW4gU2VydmxldCAyLjMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworPERUPjxCPlJldHVybnM6PC9CPjxERD5VUkwgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHJlcXVlc3QKKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmEubmV0Lk1hbGZvcm1lZFVSTEV4Y2VwdGlvbjwvQ09ERT4gLSBpZiBhIFVSTCBjYW5ub3QgYmUgY3JlYXRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2VydmVyVVJMKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitzZXJ2ZXJVUkw8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5uZXQuVVJMIDxCPnNlcnZlclVSTDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YS5uZXQuTWFsZm9ybWVkVVJMRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBVUkwgcmVwcmVzZW50aW5nIHRoZSBzY2hlbWUsIHNlcnZlciwgYW5kIHBvcnQgbnVtYmVyIG9mCisgdGhlIGN1cnJlbnQgcmVxdWVzdC4gIFNlcnZlci1yZWxhdGl2ZSBVUkxzIGNhbiBiZSBjcmVhdGVkIGJ5IHNpbXBseQorIGFwcGVuZGluZyB0aGUgc2VydmVyLXJlbGF0aXZlIHBhdGggKHN0YXJ0aW5nIHdpdGggJy8nKSB0byB0aGlzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VVJMIHJlcHJlc2VudGluZyB0aGUgc2NoZW1lLCBzZXJ2ZXIsIGFuZCBwb3J0IG51bWJlciBvZgorICAgICB0aGUgY3VycmVudCByZXF1ZXN0Cis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLm5ldC5NYWxmb3JtZWRVUkxFeGNlcHRpb248L0NPREU+IC0gaWYgYSBVUkwgY2Fubm90IGJlIGNyZWF0ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNhdmVFeGNlcHRpb24oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5UaHJvd2FibGUpIj48IS0tIC0tPjwvQT48SDM+CitzYXZlRXhjZXB0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+c2F2ZUV4Y2VwdGlvbjwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5UaHJvd2FibGUmbmJzcDtleGNlcHRpb24pPC9QUkU+Cis8REw+Cis8REQ+U2F2ZSB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBhcyBhIHJlcXVlc3QgYXR0cmlidXRlIGZvciBsYXRlciB1c2UuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPiAtIFRoZSBQYWdlQ29udGV4dCBmb3IgdGhlIGN1cnJlbnQgcGFnZTxERD48Q09ERT5leGNlcHRpb248L0NPREU+IC0gVGhlIGV4Y2VwdGlvbiB0byBiZSBzYXZlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2VsZWN0QXBwbGljYXRpb24oamF2YS5sYW5nLlN0cmluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NlbGVjdEFwcGxpY2F0aW9uPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+c2VsZWN0QXBwbGljYXRpb248L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+dXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjc2VsZWN0TW9kdWxlKGphdmEubGFuZy5TdHJpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Q09ERT5zZWxlY3RNb2R1bGUoU3RyaW5nLEh0dHBTZXJ2bGV0UmVxdWVzdCxTZXJ2bGV0Q29udGV4dCk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPlNlbGVjdCB0aGUgbW9kdWxlIHRvIHdoaWNoIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBiZWxvbmdzLCBhbmQKKyBhZGQgY29ycmVzcG9uZGluZyByZXF1ZXN0IGF0dHJpYnV0ZXMgdG8gdGhpcyByZXF1ZXN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wcmVmaXg8L0NPREU+IC0gVGhlIG1vZHVsZSBwcmVmaXggb2YgdGhlIGRlc2lyZWQgbW9kdWxlPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5jb250ZXh0PC9DT0RFPiAtIFRoZSBTZXJ2bGV0Q29udGV4dCBmb3IgdGhpcyB3ZWIgYXBwbGljYXRpb248L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNlbGVjdE1vZHVsZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorc2VsZWN0TW9kdWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+c2VsZWN0TW9kdWxlPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cHJlZml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9QUkU+Cis8REw+Cis8REQ+U2VsZWN0IHRoZSBtb2R1bGUgdG8gd2hpY2ggdGhlIHNwZWNpZmllZCByZXF1ZXN0IGJlbG9uZ3MsIGFuZAorIGFkZCBjb3JyZXNwb25kaW5nIHJlcXVlc3QgYXR0cmlidXRlcyB0byB0aGlzIHJlcXVlc3QuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnByZWZpeDwvQ09ERT4gLSBUaGUgbW9kdWxlIHByZWZpeCBvZiB0aGUgZGVzaXJlZCBtb2R1bGU8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPmNvbnRleHQ8L0NPREU+IC0gVGhlIFNlcnZsZXRDb250ZXh0IGZvciB0aGlzIHdlYiBhcHBsaWNhdGlvbjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPnN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZWxlY3RBcHBsaWNhdGlvbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorc2VsZWN0QXBwbGljYXRpb248L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgdm9pZCA8Qj5zZWxlY3RBcHBsaWNhdGlvbjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+dXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjc2VsZWN0TW9kdWxlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48Q09ERT5zZWxlY3RNb2R1bGUoSHR0cFNlcnZsZXRSZXF1ZXN0LFNlcnZsZXRDb250ZXh0KTwvQ09ERT48L0E+PC9JPgorPFA+Cis8REQ+U2VsZWN0IHRoZSBtb2R1bGUgdG8gd2hpY2ggdGhlIHNwZWNpZmllZCByZXF1ZXN0IGJlbG9uZ3MsIGFuZAorIGFkZCBjb3JyZXNwb25kaW5nIHJlcXVlc3QgYXR0cmlidXRlcyB0byB0aGlzIHJlcXVlc3QuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5jb250ZXh0PC9DT0RFPiAtIFRoZSBTZXJ2bGV0Q29udGV4dCBmb3IgdGhpcyB3ZWIgYXBwbGljYXRpb248L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNlbGVjdE1vZHVsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorc2VsZWN0TW9kdWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+c2VsZWN0TW9kdWxlPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9QUkU+Cis8REw+Cis8REQ+U2VsZWN0IHRoZSBtb2R1bGUgdG8gd2hpY2ggdGhlIHNwZWNpZmllZCByZXF1ZXN0IGJlbG9uZ3MsIGFuZAorIGFkZCBjb3JyZXNwb25kaW5nIHJlcXVlc3QgYXR0cmlidXRlcyB0byB0aGlzIHJlcXVlc3QuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5jb250ZXh0PC9DT0RFPiAtIFRoZSBTZXJ2bGV0Q29udGV4dCBmb3IgdGhpcyB3ZWIgYXBwbGljYXRpb248L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1vZHVsZU5hbWUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1vZHVsZU5hbWU8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNb2R1bGVOYW1lPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtjb250ZXh0KTwvUFJFPgorPERMPgorPEREPkdldCB0aGUgbW9kdWxlIG5hbWUgdG8gd2hpY2ggdGhlIHNwZWNpZmllZCByZXF1ZXN0IGJlbG9uZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPEREPjxDT0RFPmNvbnRleHQ8L0NPREU+IC0gVGhlIFNlcnZsZXRDb250ZXh0IGZvciB0aGlzIHdlYiBhcHBsaWNhdGlvbgorPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgbW9kdWxlIHByZWZpeCBvciAiIjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TW9kdWxlTmFtZShqYXZhLmxhbmcuU3RyaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TW9kdWxlTmFtZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1vZHVsZU5hbWU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttYXRjaFBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7Y29udGV4dCk8L1BSRT4KKzxETD4KKzxERD5HZXQgdGhlIG1vZHVsZSBuYW1lIHRvIHdoaWNoIHRoZSBzcGVjaWZpZWQgdXJpIGJlbG9uZy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWF0Y2hQYXRoPC9DT0RFPiAtIFRoZSB1cmkgZnJvbSB3aGljaCB3ZSB3YW50IHRoZSBtb2R1bGUgbmFtZS48REQ+PENPREU+Y29udGV4dDwvQ09ERT4gLSBUaGUgU2VydmxldENvbnRleHQgZm9yIHRoaXMgd2ViIGFwcGxpY2F0aW9uCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBtb2R1bGUgcHJlZml4IG9yICIiPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZXF1ZXN0TW9kdWxlQ29uZmlnKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSZXF1ZXN0TW9kdWxlQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiA8Qj5nZXRSZXF1ZXN0TW9kdWxlQ29uZmlnPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gdGhlIGN1cnJlbnQgTW9kdWxlQ29uZmlnIG9iamVjdCBzdG9yZWQgaW4gcmVxdWVzdCwgaWYgaXQgZXhpc3RzLAorIG51bGwgb3RoZXJ3aXNlLgorIFRoaXMgbWV0aG9kIGNhbiBiZSB1c2VkIGJ5IHBsdWdpbiB0byByZXRyaWV2ZSB0aGUgY3VycmVudCBtb2R1bGUgY29uZmlnCisgb2JqZWN0LiBJZiBubyBtb2R1bGVDb25maWcgaXMgZm91bmQsIHRoaXMgbWVhbnMgdGhhdCB0aGUgcmVxdWVzdCBoYXZlbid0CisgaGl0IHRoZSBzZXJ2ZXIgdGhyb3VnaHQgdGhlIHN0cnV0cyBzZXJ2bGV0LiBUaGUgYXBwcm9wcmlhdGUgbW9kdWxlIGNvbmZpZworIGNhbiBiZSBzZXQgYW5kIGZvdW5kIHdpdGgKKyA8Y29kZT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sI3NlbGVjdE1vZHVsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PENPREU+c2VsZWN0TW9kdWxlKEh0dHBTZXJ2bGV0UmVxdWVzdCwgU2VydmxldENvbnRleHQpPC9DT0RFPjwvQT4gPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBNb2R1bGVDb25maWcgb2JqZWN0IGZyb20gcmVxdWVzdCwgb3IgbnVsbCBpZiBub25lIGlzIHNldCBpbgorIHRoZSByZXF1ZXN0LjxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPjEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1vZHVsZUNvbmZpZyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TW9kdWxlQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiA8Qj5nZXRNb2R1bGVDb25maWc8L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDtjb250ZXh0KTwvUFJFPgorPERMPgorPEREPlJldHVybiB0aGUgTW9kdWxlQ29uZmlnIG9iamVjdCBpcyBpdCBleGlzdHMsIG51bGwgb3RoZXJ3aXNlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8REQ+PENPREU+Y29udGV4dDwvQ09ERT4gLSBUaGUgU2VydmxldENvbnRleHQgZm9yIHRoaXMgd2ViIGFwcGxpY2F0aW9uCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBNb2R1bGVDb25maWcgb2JqZWN0PERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+MS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TW9kdWxlQ29uZmlnKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TW9kdWxlQ29uZmlnPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiA8Qj5nZXRNb2R1bGVDb25maWc8L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBNb2R1bGVDb25maWcgb2JqZWN0IGlmIGl0IGV4aXN0cywgbnVsbCBpZiBvdGhlcndpc2UuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnBhZ2VDb250ZXh0PC9DT0RFPiAtIFRoZSBwYWdlIGNvbnRleHQuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRoZSBNb2R1bGVDb25maWcgb2JqZWN0PERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+MS4xPC9ERD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QXBwbGljYXRpb25QcmVmaXhlcyhqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QXBwbGljYXRpb25QcmVmaXhlczwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nW10gPEI+Z2V0QXBwbGljYXRpb25QcmVmaXhlczwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGdldE1vZHVsZVByZWZpeGVzKFNlcnZsZXRDb250ZXh0KSBpbnN0ZWFkLjwvST4KKzxQPgorPEREPlJldHVybiB0aGUgbGlzdCBvZiBtb2R1bGUgcHJlZml4ZXMgdGhhdCBhcmUgZGVmaW5lZCBmb3IKKyB0aGlzIHdlYiBhcHBsaWNhdGlvbiwgY3JlYXRpbmcgaXQgaWYgbmVjZXNzYXJ5LiAgPHN0cm9uZz5OT1RFPC9zdHJvbmc+IC0KKyB0aGUgIiIgcHJlZml4IGZvciB0aGUgZGVmYXVsdCBtb2R1bGUgaXMgbm90IGluY2x1ZGVkIGluIHRoaXMgbGlzdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+Y29udGV4dDwvQ09ERT4gLSBUaGUgU2VydmxldENvbnRleHQgZm9yIHRoaXMgd2ViIGFwcGxpY2F0aW9uCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPmFuIGFycmF5IG9mIG1vZHVsZSBwcmVmaXhlczwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TW9kdWxlUHJlZml4ZXMoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1vZHVsZVByZWZpeGVzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmdbXSA8Qj5nZXRNb2R1bGVQcmVmaXhlczwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZSBwcmVmaXhlcyB0aGF0IGFyZSBkZWZpbmVkIGZvcgorIHRoaXMgd2ViIGFwcGxpY2F0aW9uLCBjcmVhdGluZyBpdCBpZiBuZWNlc3NhcnkuICA8c3Ryb25nPk5PVEU8L3N0cm9uZz4gLQorIHRoZSAiIiBwcmVmaXggZm9yIHRoZSBkZWZhdWx0IG1vZHVsZSBpcyBub3QgaW5jbHVkZWQgaW4gdGhpcyBsaXN0LgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jb250ZXh0PC9DT0RFPiAtIFRoZSBTZXJ2bGV0Q29udGV4dCBmb3IgdGhpcyB3ZWIgYXBwbGljYXRpb24KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+YW4gYXJyYXkgb2YgbW9kdWxlIHByZWZpeGVzPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbk1lc3NhZ2VzKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWN0aW9uTWVzc2FnZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2VzLmh0bWwiPkFjdGlvbk1lc3NhZ2VzPC9BPiA8Qj5nZXRBY3Rpb25NZXNzYWdlczwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtTmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+UmV0cmlldmVzIHRoZSB2YWx1ZSBmcm9tIHJlcXVlc3Qgc2NvcGUgYW5kIGlmIGl0IGlzbid0IGFscmVhZHkgYW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+Cisgc29tZSBjbGFzc2VzIGFyZSBjb252ZXJ0ZWQgdG8gb25lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBUaGUgUGFnZUNvbnRleHQgZm9yIHRoZSBjdXJyZW50IHBhZ2U8REQ+PENPREU+cGFyYW1OYW1lPC9DT0RFPiAtIEtleSBmb3IgcGFyYW1ldGVyIHZhbHVlCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkFjdGlvbkVycm9zIGluIHBhZ2UgY29udGV4dC4KKzxEVD48Qj5UaHJvd3M6PC9CPgorPEREPjxDT0RFPmphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvQ09ERT4gLSBpZjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0QWN0aW9uRXJyb3JzKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWN0aW9uRXJyb3JzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiA8Qj5nZXRBY3Rpb25FcnJvcnM8L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO3BhcmFtTmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93cyBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L1BSRT4KKzxETD4KKzxERD5SZXRyaWV2ZXMgdGhlIHZhbHVlIGZyb20gcmVxdWVzdCBzY29wZSBhbmQgaWYgaXQgaXNuJ3QgYWxyZWFkeSBhbiA8Y29kZT5FcnJvck1lc3NhZ2VzPC9jb2RlPgorIHNvbWUgY2xhc3NlcyBhcmUgY29udmVydGVkIHRvIG9uZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGFnZUNvbnRleHQ8L0NPREU+IC0gVGhlIFBhZ2VDb250ZXh0IGZvciB0aGUgY3VycmVudCBwYWdlPEREPjxDT0RFPnBhcmFtTmFtZTwvQ09ERT4gLSBLZXkgZm9yIHBhcmFtZXRlciB2YWx1ZQorPERUPjxCPlJldHVybnM6PC9CPjxERD5BY3Rpb25FcnJvcnMgZnJvbSByZXF1ZXN0IHNjb3BlCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJlbmNvZGVVUkwoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2VuY29kZVVSTDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmVuY29kZVVSTDwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3VybCk8L1BSRT4KKzxETD4KKzxERD5Vc2UgdGhlIG5ldyBVUkxFbmNvZGVyLmVuY29kZSgpIG1ldGhvZCBmcm9tIGphdmEgMS40IGlmIGF2YWlsYWJsZSwgZWxzZQorIHVzZSB0aGUgb2xkIGRlcHJlY2F0ZWQgdmVyc2lvbi4gIFRoaXMgbWV0aG9kIHVzZXMgcmVmbGVjdGlvbiB0byBmaW5kIHRoZSBhcHByb3ByaWF0ZQorIG1ldGhvZDsgaWYgdGhlIHJlZmxlY3Rpb24gb3BlcmF0aW9ucyB0aHJvdyBleGNlcHRpb25zLCB0aGlzIHdpbGwgcmV0dXJuIHRoZSB1cmwKKyBlbmNvZGVkIHdpdGggdGhlIG9sZCBVUkxFbmNvZGVyLmVuY29kZSgpIG1ldGhvZC4KKzxQPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5TdHJpbmcgLSB0aGUgZW5jb2RlZCB1cmwuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1hodG1sKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgoraXNYaHRtbDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBib29sZWFuIDxCPmlzWGh0bWw8L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJucyB0cnVlIGlmIHRoZSBjdXN0b20gdGFncyBhcmUgaW4gWEhUTUwgbW9kZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9SZXF1ZXN0VXRpbHMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXF1ZXN0VXRpbHMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU1MWNkNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbApAQCAtMCwwICsxLDM1MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1Jlc3BvbnNlVXRpbHMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUmVzcG9uc2VVdGlscyxSZXNwb25zZVV0aWxzIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJSZXNwb25zZVV0aWxzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1Jlc3BvbnNlVXRpbHMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXNwb25zZVV0aWxzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9GT05UPgorPEJSPgorQ2xhc3MgUmVzcG9uc2VVdGlsczwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUmVzcG9uc2VVdGlsczwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5SZXNwb25zZVV0aWxzPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8L0RMPgorCis8UD4KK0dlbmVyYWwgcHVycG9zZSB1dGlsaXR5IG1ldGhvZHMgcmVsYXRlZCB0byBnZW5lcmF0aW5nIGEgc2VydmxldCByZXNwb25zZQorIGluIHRoZSBTdHJ1dHMgY29udHJvbGxlciBmcmFtZXdvcmsuCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwjUmVzcG9uc2VVdGlscygpIj5SZXNwb25zZVV0aWxzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCNmaWx0ZXIoamF2YS5sYW5nLlN0cmluZykiPmZpbHRlcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZpbHRlciB0aGUgc3BlY2lmaWVkIHN0cmluZyBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBzZW5zdGl2ZSB0bworIEhUTUwgaW50ZXJwcmV0ZXJzLCByZXR1cm5pbmcgdGhlIHN0cmluZyB3aXRoIHRoZXNlIGNoYXJhY3RlcnMgcmVwbGFjZWQKKyBieSB0aGUgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXIgZW50aXRpZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwjd3JpdGUoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcpIj53cml0ZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0Jm5ic3A7cGFnZUNvbnRleHQsCisgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1dyaXRlIHRoZSBzcGVjaWZpZWQgdGV4dCBhcyB0aGUgcmVzcG9uc2UgdG8gdGhlIHdyaXRlciBhc3NvY2lhdGVkIHdpdGgKKyB0aGlzIHBhZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwjd3JpdGVQcmV2aW91cyhqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCwgamF2YS5sYW5nLlN0cmluZykiPndyaXRlUHJldmlvdXM8L0E+PC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dGV4dCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1dyaXRlIHRoZSBzcGVjaWZpZWQgdGV4dCBhcyB0aGUgcmVzcG9uc2UgdG8gdGhlIHdyaXRlciBhc3NvY2lhdGVkIHdpdGgKKyB0aGUgYm9keSBjb250ZW50IGZvciB0aGUgdGFnIHdpdGhpbiB3aGljaCB3ZSBhcmUgY3VycmVudGx5IG5lc3RlZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9Im1lc3NhZ2VzIj48IS0tIC0tPjwvQT48SDM+CittZXNzYWdlczwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHN0YXRpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gPEI+bWVzc2FnZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iUmVzcG9uc2VVdGlscygpIj48IS0tIC0tPjwvQT48SDM+CitSZXNwb25zZVV0aWxzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+UmVzcG9uc2VVdGlsczwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZmlsdGVyKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitmaWx0ZXI8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5maWx0ZXI8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt2YWx1ZSk8L1BSRT4KKzxETD4KKzxERD5GaWx0ZXIgdGhlIHNwZWNpZmllZCBzdHJpbmcgZm9yIGNoYXJhY3RlcnMgdGhhdCBhcmUgc2Vuc3RpdmUgdG8KKyBIVE1MIGludGVycHJldGVycywgcmV0dXJuaW5nIHRoZSBzdHJpbmcgd2l0aCB0aGVzZSBjaGFyYWN0ZXJzIHJlcGxhY2VkCisgYnkgdGhlIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVyIGVudGl0aWVzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT52YWx1ZTwvQ09ERT4gLSBUaGUgc3RyaW5nIHRvIGJlIGZpbHRlcmVkIGFuZCByZXR1cm5lZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0id3JpdGUoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Cit3cml0ZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyB2b2lkIDxCPndyaXRlPC9CPihqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCZuYnNwO3BhZ2VDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt0ZXh0KQorICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPldyaXRlIHRoZSBzcGVjaWZpZWQgdGV4dCBhcyB0aGUgcmVzcG9uc2UgdG8gdGhlIHdyaXRlciBhc3NvY2lhdGVkIHdpdGgKKyB0aGlzIHBhZ2UuICA8c3Ryb25nPldBUk5JTkc8L3N0cm9uZz4gLSBJZiB5b3UgYXJlIHdyaXRpbmcgYm9keSBjb250ZW50CisgZnJvbSB0aGUgPGNvZGU+ZG9BZnRlckJvZHkoKTwvY29kZT4gbWV0aG9kIG9mIGEgY3VzdG9tIHRhZyBjbGFzcyB0aGF0CisgaW1wbGVtZW50cyA8Y29kZT5Cb2R5VGFnPC9jb2RlPiwgeW91IHNob3VsZCBiZSBjYWxsaW5nCisgPGNvZGU+d3JpdGVQcmV2aW91cygpPC9jb2RlPiBpbnN0ZWFkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBUaGUgUGFnZUNvbnRleHQgb2JqZWN0IGZvciB0aGlzIHBhZ2U8REQ+PENPREU+dGV4dDwvQ09ERT4gLSBUaGUgdGV4dCB0byBiZSB3cml0dGVuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VycyAoYWxyZWFkeSBzYXZlZCk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IndyaXRlUHJldmlvdXMoamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Cit3cml0ZVByZXZpb3VzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIHZvaWQgPEI+d3JpdGVQcmV2aW91czwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDt0ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+V3JpdGUgdGhlIHNwZWNpZmllZCB0ZXh0IGFzIHRoZSByZXNwb25zZSB0byB0aGUgd3JpdGVyIGFzc29jaWF0ZWQgd2l0aAorIHRoZSBib2R5IGNvbnRlbnQgZm9yIHRoZSB0YWcgd2l0aGluIHdoaWNoIHdlIGFyZSBjdXJyZW50bHkgbmVzdGVkLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlQ29udGV4dDwvQ09ERT4gLSBUaGUgUGFnZUNvbnRleHQgb2JqZWN0IGZvciB0aGlzIHBhZ2U8REQ+PENPREU+dGV4dDwvQ09ERT4gLSBUaGUgdGV4dCB0byBiZSB3cml0dGVuCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb248L0NPREU+IC0gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VycyAoYWxyZWFkeSBzYXZlZCk8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1Jlc3BvbnNlVXRpbHMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXNwb25zZVV0aWxzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRjNDk4OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwKQEAgLTAsMCArMSwxMDQ5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU4IEVEVCAyMDAzIC0tPgorPFRJVExFPgorU2VydmxldENvbnRleHRXcml0ZXIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU2VydmxldENvbnRleHRXcml0ZXIsU2VydmxldENvbnRleHRXcml0ZXIgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlNlcnZsZXRDb250ZXh0V3JpdGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzIFNlcnZsZXRDb250ZXh0V3JpdGVyPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tamF2YS5pby5Xcml0ZXIKKyAgICAgICAgfAorICAgICAgICArLS1qYXZhLmlvLlByaW50V3JpdGVyCisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmlvLlByaW50V3JpdGVyPC9ETD4KKworPFA+CitBIFByaW50V3JpdGVyIGltcGxlbWVudGF0aW9uIHRoYXQgdXNlcyB0aGUgbG9nZ2luZyBmYWNpbGl0aWVzIG9mIGEKKyA8Y29kZT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0PC9jb2RlPiB0byBvdXRwdXQgaXRzIHJlc3VsdHMuICBPdXRwdXQKKyB3aWxsIGJlIGJ1ZmZlcmVkIHVudGlsIGEgbmV3bGluZSBjaGFyYWN0ZXIgaXMgb3V0cHV0LCA8Y29kZT5mbHVzaCgpPC9jb2RlPgorIGlzIGNhbGxlZCwgb3IgdW50aWwgb25lIG9mIHRoZSA8Y29kZT5wcmludGxuKCk8L2NvZGU+IG1ldGhvZHMgaXMgY2FsbGVkLgorIEFsb25nIHRoZSB3YXksIGNhcnJpYWdlIHJldHVybiBjaGFyYWN0ZXJzIGFyZSBza2lwcGVkLgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+Q3JhaWcgUi4gTWNDbGFuYWhhbjwvREQ+Cis8L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YS5sYW5nLlN0cmluZ0J1ZmZlcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjYnVmZmVyIj5idWZmZXI8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGJ1ZmZlciBpbnRvIHdoaWNoIHdlIGFjY3VtdWxhdGUgbGluZXMgdG8gYmUgbG9nZ2VkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7amF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjY29udGV4dCI+Y29udGV4dDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2VydmxldCBjb250ZXh0IHdpdGggd2hpY2ggd2UgYXJlIGFzc29jaWF0ZWQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNlcnJvciI+ZXJyb3I8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGVycm9yIHN0YXRlIGZvciB0aGlzIHN0cmVhbS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5pby5QcmludFdyaXRlciI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmlvLlByaW50V3JpdGVyPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+b3V0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmlvLldyaXRlciI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmlvLldyaXRlcjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmxvY2s8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjU2VydmxldENvbnRleHRXcml0ZXIoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2NvbnRleHQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb25zdHJ1Y3QgYSBTZXJ2bGV0Q29udGV4dFdyaXRlciBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZAorIFNlcnZsZXRDb250ZXh0IGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI2NoZWNrRXJyb3IoKSI+Y2hlY2tFcnJvcjwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZsdXNoIHRoZSBzdHJlYW0gYW5kIGNoZWNrIGZvciBpdHMgZXJyb3Igc3RhdGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI2Nsb3NlKCkiPmNsb3NlPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2xvc2UgdGhlIHN0cmVhbS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjZmx1c2goKSI+Zmx1c2g8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGbHVzaCB0aGUgc3RyZWFtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludChib29sZWFuKSI+cHJpbnQ8L0E+PC9CPihib29sZWFuJm5ic3A7Yik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByaW50IGEgYm9vbGVhbiB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQoY2hhcikiPnByaW50PC9BPjwvQj4oY2hhciZuYnNwO2MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmludCBhIGNoYXJhY3RlciB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQoY2hhcltdKSI+cHJpbnQ8L0E+PC9CPihjaGFyW10mbmJzcDtjKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgYSBjaGFyYWN0ZXIgYXJyYXkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50KGRvdWJsZSkiPnByaW50PC9BPjwvQj4oZG91YmxlJm5ic3A7ZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByaW50IGEgZG91YmxlIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludChmbG9hdCkiPnByaW50PC9BPjwvQj4oZmxvYXQmbmJzcDtmKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgYSBmbG9hdCB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQoaW50KSI+cHJpbnQ8L0E+PC9CPihpbnQmbmJzcDtpKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgYW4gaW50ZWdlciB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnQobG9uZykiPnByaW50PC9BPjwvQj4obG9uZyZuYnNwO2wpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmludCBhIGxvbmcgdmFsdWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50KGphdmEubGFuZy5PYmplY3QpIj5wcmludDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtvKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgYW4gb2JqZWN0LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludChqYXZhLmxhbmcuU3RyaW5nKSI+cHJpbnQ8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByaW50IGEgU3RyaW5nIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludGxuKCkiPnByaW50bG48L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUZXJtaW5hdGUgdGhlIGN1cnJlbnQgbGluZSBhbmQgZmx1c2ggdGhlIGJ1ZmZlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnRsbihib29sZWFuKSI+cHJpbnRsbjwvQT48L0I+KGJvb2xlYW4mbmJzcDtiKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgYSBib29sZWFuIHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4oY2hhcikiPnByaW50bG48L0E+PC9CPihjaGFyJm5ic3A7Yyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByaW50IGEgY2hhcmFjdGVyIHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4oY2hhcltdKSI+cHJpbnRsbjwvQT48L0I+KGNoYXJbXSZuYnNwO2MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmludCBhIGNoYXJhY3RlciBhcnJheSBhbmQgdGVybWluYXRlIHRoZSBsaW5lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludGxuKGRvdWJsZSkiPnByaW50bG48L0E+PC9CPihkb3VibGUmbmJzcDtkKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgYSBkb3VibGUgdmFsdWUgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnRsbihmbG9hdCkiPnByaW50bG48L0E+PC9CPihmbG9hdCZuYnNwO2YpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmludCBhIGZsb2F0IHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4oaW50KSI+cHJpbnRsbjwvQT48L0I+KGludCZuYnNwO2kpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmludCBhbiBpbnRlZ2VyIHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3ByaW50bG4obG9uZykiPnByaW50bG48L0E+PC9CPihsb25nJm5ic3A7bCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ByaW50IGEgbG9uZyB2YWx1ZSBhbmQgdGVybWluYXRlIHRoZSBsaW5lLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCNwcmludGxuKGphdmEubGFuZy5PYmplY3QpIj5wcmludGxuPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO28pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcmludCBhbiBvYmplY3QgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjcHJpbnRsbihqYXZhLmxhbmcuU3RyaW5nKSI+cHJpbnRsbjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UHJpbnQgYSBTdHJpbmcgdmFsdWUgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjc2V0RXJyb3IoKSI+c2V0RXJyb3I8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXQgdGhlIGVycm9yIHN0YXRlIGZvciB0aGlzIHN0cmVhbS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwjd3JpdGUoY2hhcikiPndyaXRlPC9BPjwvQj4oY2hhciZuYnNwO2MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXcml0ZSBhIHNpbmdsZSBjaGFyYWN0ZXIgdG8gdGhpcyBzdHJlYW0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3dyaXRlKGNoYXJbXSkiPndyaXRlPC9BPjwvQj4oY2hhcltdJm5ic3A7YnVmKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V3JpdGUgYW4gYXJyYXkgb2YgY2hhcmF0ZXJzIHRvIHRoaXMgc3RyZWFtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCN3cml0ZShjaGFyW10sIGludCwgaW50KSI+d3JpdGU8L0E+PC9CPihjaGFyW10mbmJzcDtidWYsCisgICAgICBpbnQmbmJzcDtvZmYsCisgICAgICBpbnQmbmJzcDtsZW4pPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXcml0ZSB0aGUgc3BlY2lmaWVkIHN1YnNldCBvZiBhbiBhcnJheSBvZiBjaGFyYWN0ZXJzIHRvIHRoaXMgc3RyZWFtLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCN3cml0ZShpbnQpIj53cml0ZTwvQT48L0I+KGludCZuYnNwO2MpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXcml0ZSBhIHNpbmdsZSBjaGFyYWN0ZXIgdG8gdGhpcyBzdHJlYW0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3dyaXRlKGphdmEubGFuZy5TdHJpbmcpIj53cml0ZTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7V3JpdGUgYSBTdHJpbmcgdG8gdGhpcyBzdHJlYW0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sI3dyaXRlKGphdmEubGFuZy5TdHJpbmcsIGludCwgaW50KSI+d3JpdGU8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cywKKyAgICAgIGludCZuYnNwO29mZiwKKyAgICAgIGludCZuYnNwO2xlbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1dyaXRlIHRoZSBzcGVjaWZpZWQgcG9ydGlvbiBvZiBhIFN0cmluZyB0byB0aGlzIHN0cmVhbS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEuaW8uUHJpbnRXcml0ZXIiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEuaW8uUHJpbnRXcml0ZXI8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJidWZmZXIiPjwhLS0gLS0+PC9BPjxIMz4KK2J1ZmZlcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGphdmEubGFuZy5TdHJpbmdCdWZmZXIgPEI+YnVmZmVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBidWZmZXIgaW50byB3aGljaCB3ZSBhY2N1bXVsYXRlIGxpbmVzIHRvIGJlIGxvZ2dlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImNvbnRleHQiPjwhLS0gLS0+PC9BPjxIMz4KK2NvbnRleHQ8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0IDxCPmNvbnRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZsZXQgY29udGV4dCB3aXRoIHdoaWNoIHdlIGFyZSBhc3NvY2lhdGVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZXJyb3IiPjwhLS0gLS0+PC9BPjxIMz4KK2Vycm9yPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgYm9vbGVhbiA8Qj5lcnJvcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZXJyb3Igc3RhdGUgZm9yIHRoaXMgc3RyZWFtLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlNlcnZsZXRDb250ZXh0V3JpdGVyKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitTZXJ2bGV0Q29udGV4dFdyaXRlcjwvSDM+Cis8UFJFPgorcHVibGljIDxCPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7Y29udGV4dCk8L1BSRT4KKzxETD4KKzxERD5Db25zdHJ1Y3QgYSBTZXJ2bGV0Q29udGV4dFdyaXRlciBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZAorIFNlcnZsZXRDb250ZXh0IGluc3RhbmNlLgorPFA+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmNvbnRleHQ8L0NPREU+IC0gVGhlIGFzc29jaWF0ZWQgc2VydmxldCBjb250ZXh0PC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iY2hlY2tFcnJvcigpIj48IS0tIC0tPjwvQT48SDM+CitjaGVja0Vycm9yPC9IMz4KKzxQUkU+CitwdWJsaWMgYm9vbGVhbiA8Qj5jaGVja0Vycm9yPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Rmx1c2ggdGhlIHN0cmVhbSBhbmQgY2hlY2sgZm9yIGl0cyBlcnJvciBzdGF0ZS4gIDxzdHJvbmc+SU1QTEVNRU5UQVRJT04KKyBOT1RFPC9zdHJvbmc+IC0gb3VyIGFzc29jaWF0ZWQgc2VydmxldCBjb250ZXh0IGdpdmVzIG5vIGluZGljYXRpb24gb2YKKyBwcm9ibGVtcyB3aXRoIGxvZ2dpbmcsIHNvIHRoZSBvbmx5IHdheSB0aGlzIG1ldGhvZCB3aWxsIHJldHVybgorIDxjb2RlPnRydWU8L2NvZGU+IGlzIGlmIDxjb2RlPnNldEVycm9yKCk8L2NvZGU+IGlzIGNhbGxlZC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5jaGVja0Vycm9yPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLlByaW50V3JpdGVyPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iY2xvc2UoKSI+PCEtLSAtLT48L0E+PEgzPgorY2xvc2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmNsb3NlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+Q2xvc2UgdGhlIHN0cmVhbS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5jbG9zZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImZsdXNoKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2ZsdXNoPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5mbHVzaDwvQj4oKTwvUFJFPgorPERMPgorPEREPkZsdXNoIHRoZSBzdHJlYW0uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+Zmx1c2g8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludChib29sZWFuKSI+PCEtLSAtLT48L0E+PEgzPgorcHJpbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByaW50PC9CPihib29sZWFuJm5ic3A7Yik8L1BSRT4KKzxETD4KKzxERD5QcmludCBhIGJvb2xlYW4gdmFsdWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cHJpbnQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iPC9DT0RFPiAtIFRoZSB2YWx1ZSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludChjaGFyKSI+PCEtLSAtLT48L0E+PEgzPgorcHJpbnQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByaW50PC9CPihjaGFyJm5ic3A7Yyk8L1BSRT4KKzxETD4KKzxERD5QcmludCBhIGNoYXJhY3RlciB2YWx1ZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmM8L0NPREU+IC0gVGhlIHZhbHVlIHRvIGJlIHByaW50ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByaW50KGNoYXJbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK3ByaW50PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcmludDwvQj4oY2hhcltdJm5ic3A7Yyk8L1BSRT4KKzxETD4KKzxERD5QcmludCBhIGNoYXJhY3RlciBhcnJheS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmM8L0NPREU+IC0gVGhlIGNoYXJhY3RlciBhcnJheSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludChkb3VibGUpIj48IS0tIC0tPjwvQT48SDM+CitwcmludDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJpbnQ8L0I+KGRvdWJsZSZuYnNwO2QpPC9QUkU+Cis8REw+Cis8REQ+UHJpbnQgYSBkb3VibGUgdmFsdWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cHJpbnQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kPC9DT0RFPiAtIFRoZSB2YWx1ZSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludChmbG9hdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ByaW50PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcmludDwvQj4oZmxvYXQmbmJzcDtmKTwvUFJFPgorPERMPgorPEREPlByaW50IGEgZmxvYXQgdmFsdWUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cHJpbnQ8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5mPC9DT0RFPiAtIFRoZSB2YWx1ZSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludChpbnQpIj48IS0tIC0tPjwvQT48SDM+CitwcmludDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJpbnQ8L0I+KGludCZuYnNwO2kpPC9QUkU+Cis8REw+Cis8REQ+UHJpbnQgYW4gaW50ZWdlciB2YWx1ZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmk8L0NPREU+IC0gVGhlIHZhbHVlIHRvIGJlIHByaW50ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByaW50KGxvbmcpIj48IS0tIC0tPjwvQT48SDM+CitwcmludDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJpbnQ8L0I+KGxvbmcmbmJzcDtsKTwvUFJFPgorPERMPgorPEREPlByaW50IGEgbG9uZyB2YWx1ZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmw8L0NPREU+IC0gVGhlIHZhbHVlIHRvIGJlIHByaW50ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByaW50KGphdmEubGFuZy5PYmplY3QpIj48IS0tIC0tPjwvQT48SDM+CitwcmludDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJpbnQ8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtvKTwvUFJFPgorPERMPgorPEREPlByaW50IGFuIG9iamVjdC4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludDwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm88L0NPREU+IC0gVGhlIHZhbHVlIHRvIGJlIHByaW50ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByaW50KGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitwcmludDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJpbnQ8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzKTwvUFJFPgorPERMPgorPEREPlByaW50IGEgU3RyaW5nIHZhbHVlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnByaW50PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLlByaW50V3JpdGVyPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+czwvQ09ERT4gLSBUaGUgdmFsdWUgdG8gYmUgcHJpbnRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJpbnRsbigpIj48IS0tIC0tPjwvQT48SDM+CitwcmludGxuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcmludGxuPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+VGVybWluYXRlIHRoZSBjdXJyZW50IGxpbmUgYW5kIGZsdXNoIHRoZSBidWZmZXIuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cHJpbnRsbjwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByaW50bG4oYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK3ByaW50bG48L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByaW50bG48L0I+KGJvb2xlYW4mbmJzcDtiKTwvUFJFPgorPERMPgorPEREPlByaW50IGEgYm9vbGVhbiB2YWx1ZSBhbmQgdGVybWluYXRlIHRoZSBsaW5lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnByaW50bG48L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iPC9DT0RFPiAtIFRoZSB2YWx1ZSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludGxuKGNoYXIpIj48IS0tIC0tPjwvQT48SDM+CitwcmludGxuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcmludGxuPC9CPihjaGFyJm5ic3A7Yyk8L1BSRT4KKzxETD4KKzxERD5QcmludCBhIGNoYXJhY3RlciB2YWx1ZSBhbmQgdGVybWluYXRlIHRoZSBsaW5lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnByaW50bG48L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jPC9DT0RFPiAtIFRoZSB2YWx1ZSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludGxuKGNoYXJbXSkiPjwhLS0gLS0+PC9BPjxIMz4KK3ByaW50bG48L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByaW50bG48L0I+KGNoYXJbXSZuYnNwO2MpPC9QUkU+Cis8REw+Cis8REQ+UHJpbnQgYSBjaGFyYWN0ZXIgYXJyYXkgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludGxuPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLlByaW50V3JpdGVyPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YzwvQ09ERT4gLSBUaGUgY2hhcmFjdGVyIGFycmF5IHRvIGJlIHByaW50ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByaW50bG4oZG91YmxlKSI+PCEtLSAtLT48L0E+PEgzPgorcHJpbnRsbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJpbnRsbjwvQj4oZG91YmxlJm5ic3A7ZCk8L1BSRT4KKzxETD4KKzxERD5QcmludCBhIGRvdWJsZSB2YWx1ZSBhbmQgdGVybWluYXRlIHRoZSBsaW5lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnByaW50bG48L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5kPC9DT0RFPiAtIFRoZSB2YWx1ZSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludGxuKGZsb2F0KSI+PCEtLSAtLT48L0E+PEgzPgorcHJpbnRsbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJpbnRsbjwvQj4oZmxvYXQmbmJzcDtmKTwvUFJFPgorPERMPgorPEREPlByaW50IGEgZmxvYXQgdmFsdWUgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludGxuPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLlByaW50V3JpdGVyPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+ZjwvQ09ERT4gLSBUaGUgdmFsdWUgdG8gYmUgcHJpbnRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJpbnRsbihpbnQpIj48IS0tIC0tPjwvQT48SDM+CitwcmludGxuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcmludGxuPC9CPihpbnQmbmJzcDtpKTwvUFJFPgorPERMPgorPEREPlByaW50IGFuIGludGVnZXIgdmFsdWUgYW5kIHRlcm1pbmF0ZSB0aGUgbGluZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5wcmludGxuPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLlByaW50V3JpdGVyPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aTwvQ09ERT4gLSBUaGUgdmFsdWUgdG8gYmUgcHJpbnRlZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icHJpbnRsbihsb25nKSI+PCEtLSAtLT48L0E+PEgzPgorcHJpbnRsbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cHJpbnRsbjwvQj4obG9uZyZuYnNwO2wpPC9QUkU+Cis8REw+Cis8REQ+UHJpbnQgYSBsb25nIHZhbHVlIGFuZCB0ZXJtaW5hdGUgdGhlIGxpbmUuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+cHJpbnRsbjwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmw8L0NPREU+IC0gVGhlIHZhbHVlIHRvIGJlIHByaW50ZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InByaW50bG4oamF2YS5sYW5nLk9iamVjdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ByaW50bG48L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnByaW50bG48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtvKTwvUFJFPgorPERMPgorPEREPlByaW50IGFuIG9iamVjdCBhbmQgdGVybWluYXRlIHRoZSBsaW5lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnByaW50bG48L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5vPC9DT0RFPiAtIFRoZSB2YWx1ZSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJwcmludGxuKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitwcmludGxuPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5wcmludGxuPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7cyk8L1BSRT4KKzxETD4KKzxERD5QcmludCBhIFN0cmluZyB2YWx1ZSBhbmQgdGVybWluYXRlIHRoZSBsaW5lLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPnByaW50bG48L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zPC9DT0RFPiAtIFRoZSB2YWx1ZSB0byBiZSBwcmludGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRFcnJvcigpIj48IS0tIC0tPjwvQT48SDM+CitzZXRFcnJvcjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0RXJyb3I8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5TZXQgdGhlIGVycm9yIHN0YXRlIGZvciB0aGlzIHN0cmVhbS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT5zZXRFcnJvcjwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IndyaXRlKGNoYXIpIj48IS0tIC0tPjwvQT48SDM+Cit3cml0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+d3JpdGU8L0I+KGNoYXImbmJzcDtjKTwvUFJFPgorPERMPgorPEREPldyaXRlIGEgc2luZ2xlIGNoYXJhY3RlciB0byB0aGlzIHN0cmVhbS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YzwvQ09ERT4gLSBUaGUgY2hhcmFjdGVyIHRvIGJlIHdyaXR0ZW48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IndyaXRlKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3dyaXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj53cml0ZTwvQj4oaW50Jm5ic3A7Yyk8L1BSRT4KKzxETD4KKzxERD5Xcml0ZSBhIHNpbmdsZSBjaGFyYWN0ZXIgdG8gdGhpcyBzdHJlYW0uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+d3JpdGU8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5jPC9DT0RFPiAtIFRoZSBjaGFyYWN0ZXIgdG8gYmUgd3JpdHRlbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0id3JpdGUoY2hhcltdKSI+PCEtLSAtLT48L0E+PEgzPgord3JpdGU8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPndyaXRlPC9CPihjaGFyW10mbmJzcDtidWYpPC9QUkU+Cis8REw+Cis8REQ+V3JpdGUgYW4gYXJyYXkgb2YgY2hhcmF0ZXJzIHRvIHRoaXMgc3RyZWFtLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPndyaXRlPC9DT0RFPiBpbiBjbGFzcyA8Q09ERT5qYXZhLmlvLlByaW50V3JpdGVyPC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YnVmPC9DT0RFPiAtIFRoZSBjaGFyYWN0ZXIgYXJyYXkgdG8gYmUgd3JpdHRlbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0id3JpdGUoY2hhcltdLCBpbnQsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3dyaXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj53cml0ZTwvQj4oY2hhcltdJm5ic3A7YnVmLAorICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7b2ZmLAorICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7bGVuKTwvUFJFPgorPERMPgorPEREPldyaXRlIHRoZSBzcGVjaWZpZWQgc3Vic2V0IG9mIGFuIGFycmF5IG9mIGNoYXJhY3RlcnMgdG8gdGhpcyBzdHJlYW0uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+d3JpdGU8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5idWY8L0NPREU+IC0gVGhlIGNoYXJhY3RlciBhcnJheSBmcm9tIHdoaWNoIHRvIHdyaXRlPEREPjxDT0RFPm9mZjwvQ09ERT4gLSBUaGUgemVyby1yZWxhdGl2ZSBzdGFydGluZyBvZmZzZXQgdG8gd3JpdGU8REQ+PENPREU+bGVuPC9DT0RFPiAtIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byB3cml0ZTwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0id3JpdGUoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK3dyaXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj53cml0ZTwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO3MpPC9QUkU+Cis8REw+Cis8REQ+V3JpdGUgYSBTdHJpbmcgdG8gdGhpcyBzdHJlYW0uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+d3JpdGU8L0NPREU+IGluIGNsYXNzIDxDT0RFPmphdmEuaW8uUHJpbnRXcml0ZXI8L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zPC9DT0RFPiAtIFRoZSBzdHJpbmcgdG8gYmUgd3JpdHRlbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0id3JpdGUoamF2YS5sYW5nLlN0cmluZywgaW50LCBpbnQpIj48IS0tIC0tPjwvQT48SDM+Cit3cml0ZTwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+d3JpdGU8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtzLAorICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7b2ZmLAorICAgICAgICAgICAgICAgICAgaW50Jm5ic3A7bGVuKTwvUFJFPgorPERMPgorPEREPldyaXRlIHRoZSBzcGVjaWZpZWQgcG9ydGlvbiBvZiBhIFN0cmluZyB0byB0aGlzIHN0cmVhbS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT53cml0ZTwvQ09ERT4gaW4gY2xhc3MgPENPREU+amF2YS5pby5QcmludFdyaXRlcjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnM8L0NPREU+IC0gVGhlIFN0cmluZyBmcm9tIHdoaWNoIHRvIHdyaXRlPEREPjxDT0RFPm9mZjwvQ09ERT4gLSBUaGUgemVyby1yZWxhdGl2ZSBzdGFydGluZyBvZmZzZXQgdG8gd3JpdGU8REQ+PENPREU+bGVuPC9DT0RFPiAtIFRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0byB3cml0ZTwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXNwb25zZVV0aWxzLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlNlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzdiMWI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwKQEAgLTAsMCArMSw4ODggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTggRURUIDIwMDMgLS0+Cis8VElUTEU+CitTdHJ1dHNWYWxpZGF0b3IgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yLFN0cnV0c1ZhbGlkYXRvciBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iU3RydXRzVmFsaWRhdG9yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1N0cnV0c1ZhbGlkYXRvci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdHJ1dHNWYWxpZGF0b3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4KKzxIMj4KKzxGT05UIFNJWkU9Ii0xIj4KK29yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0ZPTlQ+Cis8QlI+CitDbGFzcyBTdHJ1dHNWYWxpZGF0b3I8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvcjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+PENPREU+RmllbGRDaGVja3M8L0NPREU+PC9BPjwvST4KKzxQPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5TdHJ1dHNWYWxpZGF0b3I8L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ETD4KKworPFA+Cis8cD4KKworICBUaGlzIGNsYXNzIGNvbnRhaW5zIHRoZSBkZWZhdWx0IHZhbGlkYXRpb25zIHRoYXQgYXJlIHVzZWQgaW4gdGhlIHZhbGlkYXRvci1ydWxlcy54bWwKKyAgZmlsZS48L3A+CisKKyBJbiBnZW5lcmFsIHBhc3NpbiBpbiBhIG51bGwgb3IgYmxhbmsgd2lsbCByZXR1cm4gYSBudWxsIE9iamVjdCBvciBhIGZhbHNlCisgYm9vbGVhbi4gSG93ZXZlciwgbnVsbHMgYW5kIGJsYW5rcyBkbyBub3QgcmVzdWx0IGluIGFuIGVycm9yIGJlaW5nIGFkZGVkIHRvIHRoZQorIGVycm9ycy4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkRhdmlkIFdpbnRlcmZlbGR0LCBKYW1lcyBUdXJuZXI8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5TdHJ1dHNWYWxpZGF0b3IiPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjRklFTERfVEVTVF9FUVVBTCI+RklFTERfVEVTVF9FUVVBTDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI0ZJRUxEX1RFU1RfTk9UTlVMTCI+RklFTERfVEVTVF9OT1ROVUxMPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjRklFTERfVEVTVF9OVUxMIj5GSUVMRF9URVNUX05VTEw8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCNTdHJ1dHNWYWxpZGF0b3IoKSI+U3RydXRzVmFsaWRhdG9yPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLkJ5dGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZUJ5dGUoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZUJ5dGU8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUJ5dGUoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUJ5dGUoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuTG9uZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlQ3JlZGl0Q2FyZChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlQ3JlZGl0Q2FyZDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlQ3JlZGl0Q2FyZChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlQ3JlZGl0Q2FyZChPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT4KKworICBUcmFuc2xhdGVkIHRvIEphdmEgYnkgVGVkIEh1c3RlZCAoPGEgaHJlZj0ibWFpbHRvOmh1c3RlZEBhcGFjaGUub3JnIj5odXN0ZWRAYXBhY2hlLm9yZworICA8L2E+KS48YnI+CisgICZuYnNwOyZuYnNwOyZuYnNwOyBSZWZlcmVuY2UgU2VhbiBNLiBCdXJrZSdzIHNjcmlwdCBhdCBodHRwOi8vd3d3Lmxpbmcubnd1LmVkdS9+c2J1cmtlL3B1Yi9sdWhuX2xpYi5wbAorICA8L3A+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLnV0aWwuRGF0ZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlRGF0ZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlRGF0ZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRGF0ZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlRGF0ZShPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5Eb3VibGU8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZURvdWJsZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlRG91YmxlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZURvdWJsZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlRG91YmxlKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlRW1haWwoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZUVtYWlsPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRW1haWwoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUVtYWlsKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPgorCisgIEJhc2VkIG9uIGEgc2NyaXB0IGJ5IFNhbmRlZXAgVi4gVGFtaGFua2FyIChzdGFtaGFua2FyQGhvdG1haWwuY29tKSwgaHR0cDovL2phdmFzY3JpcHQuaW50ZXJuZXQuY29tCisgIDwvcD48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5GbG9hdDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlRmxvYXQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZUZsb2F0PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRmxvYXQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUZsb2F0KE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLkludGVnZXI8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZUludGVnZXIoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZUludGVnZXI8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUludGVnZXIoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUludGVnZXIoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuTG9uZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlTG9uZyhqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlTG9uZzwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlTG9uZyhqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlTG9uZyhPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZU1hc2soamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZU1hc2s8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZU1hc2soamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZU1hc2soT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVNYXhMZW5ndGgoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZU1heExlbmd0aDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVNYXhMZW5ndGgoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZU1heExlbmd0aChPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCN2YWxpZGF0ZU1pbkxlbmd0aChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlTWluTGVuZ3RoPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZU1pbkxlbmd0aChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlTWluTGVuZ3RoKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlUmFuZ2UoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZVJhbmdlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlSW50UmFuZ2UoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUludFJhbmdlKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sI3ZhbGlkYXRlUmVxdWlyZWQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZVJlcXVpcmVkPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlUmVxdWlyZWQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZVJlcXVpcmVkKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlNob3J0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwjdmFsaWRhdGVTaG9ydChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlU2hvcnQ8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVTaG9ydChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlU2hvcnQoT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRklFTERfVEVTVF9OVUxMIj48IS0tIC0tPjwvQT48SDM+CitGSUVMRF9URVNUX05VTEw8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5GSUVMRF9URVNUX05VTEw8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkNvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxQPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5TdHJ1dHNWYWxpZGF0b3IuRklFTERfVEVTVF9OVUxMIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkZJRUxEX1RFU1RfTk9UTlVMTCI+PCEtLSAtLT48L0E+PEgzPgorRklFTERfVEVTVF9OT1ROVUxMPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+RklFTERfVEVTVF9OT1ROVUxMPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yLkZJRUxEX1RFU1RfTk9UTlVMTCI+Q29uc3RhbnQgRmllbGQgVmFsdWVzPC9BPjwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJGSUVMRF9URVNUX0VRVUFMIj48IS0tIC0tPjwvQT48SDM+CitGSUVMRF9URVNUX0VRVUFMPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGZpbmFsIGphdmEubGFuZy5TdHJpbmcgPEI+RklFTERfVEVTVF9FUVVBTDwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvci5GSUVMRF9URVNUX0VRVUFMIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJTdHJ1dHNWYWxpZGF0b3IoKSI+PCEtLSAtLT48L0E+PEgzPgorU3RydXRzVmFsaWRhdG9yPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+U3RydXRzVmFsaWRhdG9yPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0idmFsaWRhdGVSZXF1aXJlZChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlUmVxdWlyZWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgYm9vbGVhbiA8Qj52YWxpZGF0ZVJlcXVpcmVkPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZVJlcXVpcmVkKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVSZXF1aXJlZChPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+Cis8UD4KKzxERD48cD4KKworICBDaGVja3MgaWYgdGhlIGZpZWxkIGlzbid0IG51bGwgYW5kIGxlbmd0aCBvZiB0aGUgZmllbGQgaXMgZ3JlYXRlciB0aGFuIHplcm8KKyAgbm90IGluY2x1ZGluZyB3aGl0ZXNwYWNlLjwvcD4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBUaGUgYmVhbiB2YWxpZGF0aW9uIGlzIGJlaW5nIHBlcmZvcm1lZCBvbi48REQ+PENPREU+dmE8L0NPREU+IC0gVGhlIDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4gdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgcGVyZm9ybWVkLjxERD48Q09ERT5maWVsZDwvQ09ERT4gLSBUaGUgPGNvZGU+RmllbGQ8L2NvZGU+IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQKKyAgICAgIGZpZWxkIGJlaW5nIHZhbGlkYXRlZC48REQ+PENPREU+ZXJyb3JzPC9DT0RFPiAtIFRoZSA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0byBhZGQgZXJyb3JzIHRvIGlmIGFueQorICAgICAgdmFsaWRhdGlvbiBlcnJvcnMgb2NjdXIuPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCByZXF1ZXN0IG9iamVjdC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VHJ1ZSBpZiBtZWV0cyBzdGF0ZWQgcmVxdWlyZW1lbnRzLCBGYWxzZSBvdGhlcndpc2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbGlkYXRlTWFzayhqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlTWFzazwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBib29sZWFuIDxCPnZhbGlkYXRlTWFzazwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZU1hc2soamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZU1hc2soT2JqZWN0LFZhbGlkYXRvckFjdGlvbixGaWVsZCxBY3Rpb25FcnJvcnMsSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPgorPFA+Cis8REQ+PHA+CisKKyAgQ2hlY2tzIGlmIHRoZSBmaWVsZCBtYXRjaGVzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gaW4gdGhlIGZpZWxkJ3MgbWFzayBhdHRyaWJ1dGUuCisgIDwvcD4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBUaGUgYmVhbiB2YWxpZGF0aW9uIGlzIGJlaW5nIHBlcmZvcm1lZCBvbi48REQ+PENPREU+dmE8L0NPREU+IC0gVGhlIDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4gdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgcGVyZm9ybWVkLjxERD48Q09ERT5maWVsZDwvQ09ERT4gLSBUaGUgPGNvZGU+RmllbGQ8L2NvZGU+IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQKKyAgICAgIGZpZWxkIGJlaW5nIHZhbGlkYXRlZC48REQ+PENPREU+ZXJyb3JzPC9DT0RFPiAtIFRoZSA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0byBhZGQgZXJyb3JzIHRvIGlmIGFueQorICAgICAgdmFsaWRhdGlvbiBlcnJvcnMgb2NjdXIuPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCByZXF1ZXN0IG9iamVjdC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VHJ1ZSBpZiBmaWVsZCBtYXRjaGVzIG1hc2ssIGZhbHNlIG90aGVyd2lzZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbGlkYXRlQnl0ZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlQnl0ZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuQnl0ZSA8Qj52YWxpZGF0ZUJ5dGU8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlQnl0ZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlQnl0ZShPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+Cis8UD4KKzxERD48cD4KKworICBDaGVja3MgaWYgdGhlIGZpZWxkIGNhbiBzYWZlbHkgYmUgY29udmVydGVkIHRvIGEgYnl0ZSBwcmltaXRpdmUuPC9wPgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIFRoZSBiZWFuIHZhbGlkYXRpb24gaXMgYmVpbmcgcGVyZm9ybWVkIG9uLjxERD48Q09ERT52YTwvQ09ERT4gLSBUaGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBwZXJmb3JtZWQuPEREPjxDT0RFPmZpZWxkPC9DT0RFPiAtIFRoZSA8Y29kZT5GaWVsZDwvY29kZT4gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudAorICAgICAgZmllbGQgYmVpbmcgdmFsaWRhdGVkLjxERD48Q09ERT5lcnJvcnM8L0NPREU+IC0gVGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRvIGFkZCBlcnJvcnMgdG8gaWYgYW55CisgICAgICB2YWxpZGF0aW9uIGVycm9ycyBvY2N1ci48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHJlcXVlc3Qgb2JqZWN0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5BIEJ5dGUgaWYgdmFsaWQsIGEgbnVsbCBvdGhlcndpc2UuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWxpZGF0ZVNob3J0KGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgordmFsaWRhdGVTaG9ydDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU2hvcnQgPEI+dmFsaWRhdGVTaG9ydDwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZVNob3J0KGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVTaG9ydChPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+Cis8UD4KKzxERD48cD4KKworICBDaGVja3MgaWYgdGhlIGZpZWxkIGNhbiBzYWZlbHkgYmUgY29udmVydGVkIHRvIGEgc2hvcnQgcHJpbWl0aXZlLjwvcD4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBUaGUgYmVhbiB2YWxpZGF0aW9uIGlzIGJlaW5nIHBlcmZvcm1lZCBvbi48REQ+PENPREU+dmE8L0NPREU+IC0gVGhlIDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4gdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgcGVyZm9ybWVkLjxERD48Q09ERT5maWVsZDwvQ09ERT4gLSBUaGUgPGNvZGU+RmllbGQ8L2NvZGU+IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQKKyAgICAgIGZpZWxkIGJlaW5nIHZhbGlkYXRlZC48REQ+PENPREU+ZXJyb3JzPC9DT0RFPiAtIFRoZSA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0byBhZGQgZXJyb3JzIHRvIGlmIGFueQorICAgICAgdmFsaWRhdGlvbiBlcnJvcnMgb2NjdXIuPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCByZXF1ZXN0IG9iamVjdC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+QSBTaG9ydCBpZiB2YWxpZCwgb3RoZXJ3aXNlIGEgbnVsbC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbGlkYXRlSW50ZWdlcihqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlSW50ZWdlcjwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuSW50ZWdlciA8Qj52YWxpZGF0ZUludGVnZXI8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlSW50ZWdlcihqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlSW50ZWdlcihPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+Cis8UD4KKzxERD48cD4KKworICBDaGVja3MgaWYgdGhlIGZpZWxkIGNhbiBzYWZlbHkgYmUgY29udmVydGVkIHRvIGFuIGludCBwcmltaXRpdmUuPC9wPgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIFRoZSBiZWFuIHZhbGlkYXRpb24gaXMgYmVpbmcgcGVyZm9ybWVkIG9uLjxERD48Q09ERT52YTwvQ09ERT4gLSBUaGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBwZXJmb3JtZWQuPEREPjxDT0RFPmZpZWxkPC9DT0RFPiAtIFRoZSA8Y29kZT5GaWVsZDwvY29kZT4gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudAorICAgICAgZmllbGQgYmVpbmcgdmFsaWRhdGVkLjxERD48Q09ERT5lcnJvcnM8L0NPREU+IC0gVGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRvIGFkZCBlcnJvcnMgdG8gaWYgYW55CisgICAgICB2YWxpZGF0aW9uIGVycm9ycyBvY2N1ci48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHJlcXVlc3Qgb2JqZWN0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5BbiBJbnRlZ2VyIGlmIHZhbGlkLCBhIG51bGwgb3RoZXJ3aXNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGVMb25nKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgordmFsaWRhdGVMb25nPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5Mb25nIDxCPnZhbGlkYXRlTG9uZzwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVMb25nKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVMb25nKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPjxwPgorCisgIENoZWNrcyBpZiB0aGUgZmllbGQgY2FuIHNhZmVseSBiZSBjb252ZXJ0ZWQgdG8gYSBsb25nIHByaW1pdGl2ZS48L3A+Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gVGhlIGJlYW4gdmFsaWRhdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQgb24uPEREPjxDT0RFPnZhPC9DT0RFPiAtIFRoZSA8Y29kZT5WYWxpZGF0b3JBY3Rpb248L2NvZGU+IHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIHBlcmZvcm1lZC48REQ+PENPREU+ZmllbGQ8L0NPREU+IC0gVGhlIDxjb2RlPkZpZWxkPC9jb2RlPiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50CisgICAgICBmaWVsZCBiZWluZyB2YWxpZGF0ZWQuPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdG8gYWRkIGVycm9ycyB0byBpZiBhbnkKKyAgICAgIHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgTG9uZyBpZiB2YWxpZCwgYSBudWxsIG90aGVyd2lzZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbGlkYXRlRmxvYXQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0ZUZsb2F0PC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5GbG9hdCA8Qj52YWxpZGF0ZUZsb2F0PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRmxvYXQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUZsb2F0KE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPjxwPgorCisgIENoZWNrcyBpZiB0aGUgZmllbGQgY2FuIHNhZmVseSBiZSBjb252ZXJ0ZWQgdG8gYSBmbG9hdCBwcmltaXRpdmUuPC9wPgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIFRoZSBiZWFuIHZhbGlkYXRpb24gaXMgYmVpbmcgcGVyZm9ybWVkIG9uLjxERD48Q09ERT52YTwvQ09ERT4gLSBUaGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBwZXJmb3JtZWQuPEREPjxDT0RFPmZpZWxkPC9DT0RFPiAtIFRoZSA8Y29kZT5GaWVsZDwvY29kZT4gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudAorICAgICAgZmllbGQgYmVpbmcgdmFsaWRhdGVkLjxERD48Q09ERT5lcnJvcnM8L0NPREU+IC0gVGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRvIGFkZCBlcnJvcnMgdG8gaWYgYW55CisgICAgICB2YWxpZGF0aW9uIGVycm9ycyBvY2N1ci48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHJlcXVlc3Qgb2JqZWN0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5BIEZsb2F0IGlmIHZhbGlkLCBhIG51bGwgb3RoZXJ3aXNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGVEb3VibGUoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0ZURvdWJsZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuRG91YmxlIDxCPnZhbGlkYXRlRG91YmxlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVEb3VibGUoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZURvdWJsZShPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+Cis8UD4KKzxERD48cD4KKworICBDaGVja3MgaWYgdGhlIGZpZWxkIGNhbiBzYWZlbHkgYmUgY29udmVydGVkIHRvIGEgZG91YmxlIHByaW1pdGl2ZS48L3A+Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gVGhlIGJlYW4gdmFsaWRhdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQgb24uPEREPjxDT0RFPnZhPC9DT0RFPiAtIFRoZSA8Y29kZT5WYWxpZGF0b3JBY3Rpb248L2NvZGU+IHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIHBlcmZvcm1lZC48REQ+PENPREU+ZmllbGQ8L0NPREU+IC0gVGhlIDxjb2RlPkZpZWxkPC9jb2RlPiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50CisgICAgICBmaWVsZCBiZWluZyB2YWxpZGF0ZWQuPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdG8gYWRkIGVycm9ycyB0byBpZiBhbnkKKyAgICAgIHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgRG91YmxlIGlmIHZhbGlkLCBhIG51bGwgb3RoZXJ3aXNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGVEYXRlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgordmFsaWRhdGVEYXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEudXRpbC5EYXRlIDxCPnZhbGlkYXRlRGF0ZTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVEYXRlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+RmllbGRDaGVja3MudmFsaWRhdGVEYXRlKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPjxwPgorCisgIENoZWNrcyBpZiB0aGUgZmllbGQgaXMgYSB2YWxpZCBkYXRlLiBJZiB0aGUgZmllbGQgaGFzIGEgZGF0ZVBhdHRlcm4gdmFyaWFibGUsCisgIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGZvcm1hdCA8Y29kZT5qYXZhLnRleHQuU2ltcGxlRGF0ZUZvcm1hdDwvY29kZT4uIElmIHRoZQorICBmaWVsZCBoYXMgYSBkYXRlUGF0dGVyblN0cmljdCB2YXJpYWJsZSwgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZm9ybWF0IDxjb2RlPmphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPgorICBhbmQgdGhlIGxlbmd0aCB3aWxsIGJlIGNoZWNrZWQgc28gJzIvMTIvMTk5OScgd2lsbCBub3QgcGFzcyB2YWxpZGF0aW9uIHdpdGgKKyAgdGhlIGZvcm1hdCAnTU0vZGQveXl5eScgYmVjYXVzZSB0aGUgbW9udGggaXNuJ3QgdHdvIGRpZ2l0cy4gSWYgbm8gZGF0ZVBhdHRlcm4KKyAgdmFyaWFibGUgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBmaWVsZCBnZXRzIHRoZSBEYXRlRm9ybWF0LlNIT1JUIGZvcm1hdCBmb3IKKyAgdGhlIGxvY2FsZS4gVGhlIHNldExlbmllbnQgbWV0aG9kIGlzIHNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4gZm9yIGFsbCB2YXJpYXRpb25zLgorICA8L3A+Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gVGhlIGJlYW4gdmFsaWRhdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQgb24uPEREPjxDT0RFPnZhPC9DT0RFPiAtIFRoZSA8Y29kZT5WYWxpZGF0b3JBY3Rpb248L2NvZGU+IHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIHBlcmZvcm1lZC48REQ+PENPREU+ZmllbGQ8L0NPREU+IC0gVGhlIDxjb2RlPkZpZWxkPC9jb2RlPiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50CisgICAgICBmaWVsZCBiZWluZyB2YWxpZGF0ZWQuPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdG8gYWRkIGVycm9ycyB0byBpZiBhbnkKKyAgICAgIHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgRGF0ZSBpZiB2YWxpZCwgYSBudWxsIGlmIGJsYW5rIG9yIGludmFsaWQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWxpZGF0ZVJhbmdlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgordmFsaWRhdGVSYW5nZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBib29sZWFuIDxCPnZhbGlkYXRlUmFuZ2U8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlSW50UmFuZ2UoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUludFJhbmdlKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPjxwPgorCisgIENoZWNrcyBpZiBhIGZpZWxkcyB2YWx1ZSBpcyB3aXRoaW4gYSByYW5nZSAobWluICZhbXA7IG1heCBzcGVjaWZpZWQgaW4gdGhlCisgIHZhcnMgYXR0cmlidXRlKS48L3A+Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gVGhlIGJlYW4gdmFsaWRhdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQgb24uPEREPjxDT0RFPnZhPC9DT0RFPiAtIFRoZSA8Y29kZT5WYWxpZGF0b3JBY3Rpb248L2NvZGU+IHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIHBlcmZvcm1lZC48REQ+PENPREU+ZmllbGQ8L0NPREU+IC0gVGhlIDxjb2RlPkZpZWxkPC9jb2RlPiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50CisgICAgICBmaWVsZCBiZWluZyB2YWxpZGF0ZWQuPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdG8gYWRkIGVycm9ycyB0byBpZiBhbnkKKyAgICAgIHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRydWUgaWYgaW4gcmFuZ2UsIGZhbHNlIG90aGVyd2lzZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbGlkYXRlQ3JlZGl0Q2FyZChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlQ3JlZGl0Q2FyZDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuTG9uZyA8Qj52YWxpZGF0ZUNyZWRpdENhcmQ8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlQ3JlZGl0Q2FyZChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlQ3JlZGl0Q2FyZChPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT4KKworICBUcmFuc2xhdGVkIHRvIEphdmEgYnkgVGVkIEh1c3RlZCAoPGEgaHJlZj0ibWFpbHRvOmh1c3RlZEBhcGFjaGUub3JnIj5odXN0ZWRAYXBhY2hlLm9yZworICA8L2E+KS48YnI+CisgICZuYnNwOyZuYnNwOyZuYnNwOyBSZWZlcmVuY2UgU2VhbiBNLiBCdXJrZSdzIHNjcmlwdCBhdCBodHRwOi8vd3d3Lmxpbmcubnd1LmVkdS9+c2J1cmtlL3B1Yi9sdWhuX2xpYi5wbAorICA8L3A+PC9JPgorPFA+Cis8REQ+PHA+CisKKyAgQ2hlY2tzIGlmIHRoZSBmaWVsZCBpcyBhIHZhbGlkIGNyZWRpdCBjYXJkIG51bWJlci48L3A+IDxwPgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIFRoZSBiZWFuIHZhbGlkYXRpb24gaXMgYmVpbmcgcGVyZm9ybWVkIG9uLjxERD48Q09ERT52YTwvQ09ERT4gLSBUaGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBwZXJmb3JtZWQuPEREPjxDT0RFPmZpZWxkPC9DT0RFPiAtIFRoZSA8Y29kZT5GaWVsZDwvY29kZT4gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudAorICAgICAgZmllbGQgYmVpbmcgdmFsaWRhdGVkLjxERD48Q09ERT5lcnJvcnM8L0NPREU+IC0gVGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRvIGFkZCBlcnJvcnMgdG8gaWYgYW55CisgICAgICB2YWxpZGF0aW9uIGVycm9ycyBvY2N1ci48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHJlcXVlc3Qgb2JqZWN0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgY3JlZGl0IGNhcmQgYXMgYSBMb25nLCBhIG51bGwgaWYgaW52YWxpZCwgYmxhbmssIG9yIG51bGwuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWxpZGF0ZUVtYWlsKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgordmFsaWRhdGVFbWFpbDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBib29sZWFuIDxCPnZhbGlkYXRlRW1haWw8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRW1haWwoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZUVtYWlsKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPgorCisgIEJhc2VkIG9uIGEgc2NyaXB0IGJ5IFNhbmRlZXAgVi4gVGFtaGFua2FyIChzdGFtaGFua2FyQGhvdG1haWwuY29tKSwgaHR0cDovL2phdmFzY3JpcHQuaW50ZXJuZXQuY29tCisgIDwvcD48L0k+Cis8UD4KKzxERD48cD4KKworICBDaGVja3MgaWYgYSBmaWVsZCBoYXMgYSB2YWxpZCBlLW1haWwgYWRkcmVzcy48L3A+IDxwPgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIFRoZSBiZWFuIHZhbGlkYXRpb24gaXMgYmVpbmcgcGVyZm9ybWVkIG9uLjxERD48Q09ERT52YTwvQ09ERT4gLSBUaGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBwZXJmb3JtZWQuPEREPjxDT0RFPmZpZWxkPC9DT0RFPiAtIFRoZSA8Y29kZT5GaWVsZDwvY29kZT4gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudAorICAgICAgZmllbGQgYmVpbmcgdmFsaWRhdGVkLjxERD48Q09ERT5lcnJvcnM8L0NPREU+IC0gVGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRvIGFkZCBlcnJvcnMgdG8gaWYgYW55CisgICAgICB2YWxpZGF0aW9uIGVycm9ycyBvY2N1ci48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHJlcXVlc3Qgb2JqZWN0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5UcnVlIGlmIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWxpZGF0ZU1heExlbmd0aChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlTWF4TGVuZ3RoPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGJvb2xlYW4gPEI+dmFsaWRhdGVNYXhMZW5ndGg8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZU1heExlbmd0aChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjxDT0RFPkZpZWxkQ2hlY2tzLnZhbGlkYXRlTWF4TGVuZ3RoKE9iamVjdCxWYWxpZGF0b3JBY3Rpb24sRmllbGQsQWN0aW9uRXJyb3JzLEh0dHBTZXJ2bGV0UmVxdWVzdCk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPjxwPgorCisgIENoZWNrcyBpZiB0aGUgZmllbGQncyBsZW5ndGggaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBtYXhpbXVtIHZhbHVlLgorICBBIDxjb2RlPk51bGw8L2NvZGU+IHdpbGwgYmUgY29uc2lkZXJlZCBhbiBlcnJvci48L3A+Cis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gVGhlIGJlYW4gdmFsaWRhdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQgb24uPEREPjxDT0RFPnZhPC9DT0RFPiAtIFRoZSA8Y29kZT5WYWxpZGF0b3JBY3Rpb248L2NvZGU+IHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIHBlcmZvcm1lZC48REQ+PENPREU+ZmllbGQ8L0NPREU+IC0gVGhlIDxjb2RlPkZpZWxkPC9jb2RlPiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50CisgICAgICBmaWVsZCBiZWluZyB2YWxpZGF0ZWQuPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdG8gYWRkIGVycm9ycyB0byBpZiBhbnkKKyAgICAgIHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRydWUgaWYgc3RhdGVkIGNvbmRpdGlvbnMgbWV0LjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGVNaW5MZW5ndGgoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0ZU1pbkxlbmd0aDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBib29sZWFuIDxCPnZhbGlkYXRlTWluTGVuZ3RoPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVNaW5MZW5ndGgoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT5GaWVsZENoZWNrcy52YWxpZGF0ZU1pbkxlbmd0aChPYmplY3QsVmFsaWRhdG9yQWN0aW9uLEZpZWxkLEFjdGlvbkVycm9ycyxIdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+Cis8UD4KKzxERD48cD4KKworICBDaGVja3MgaWYgdGhlIGZpZWxkJ3MgbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgbWluaW11bSB2YWx1ZS4KKyAgQSA8Y29kZT5OdWxsPC9jb2RlPiB3aWxsIGJlIGNvbnNpZGVyZWQgYW4gZXJyb3IuPC9wPgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIFRoZSBiZWFuIHZhbGlkYXRpb24gaXMgYmVpbmcgcGVyZm9ybWVkIG9uLjxERD48Q09ERT52YTwvQ09ERT4gLSBUaGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBwZXJmb3JtZWQuPEREPjxDT0RFPmZpZWxkPC9DT0RFPiAtIFRoZSA8Y29kZT5GaWVsZDwvY29kZT4gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudAorICAgICAgZmllbGQgYmVpbmcgdmFsaWRhdGVkLjxERD48Q09ERT5lcnJvcnM8L0NPREU+IC0gVGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRvIGFkZCBlcnJvcnMgdG8gaWYgYW55CisgICAgICB2YWxpZGF0aW9uIGVycm9ycyBvY2N1ci48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHJlcXVlc3Qgb2JqZWN0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5UcnVlIGlmIHN0YXRlZCBjb25kaXRpb25zIG1ldC48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1N0cnV0c1ZhbGlkYXRvci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdHJ1dHNWYWxpZGF0b3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY3MmVkZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbApAQCAtMCwwICsxLDYwMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1OCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1N0cnV0c1ZhbGlkYXRvclV0aWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yVXRpbCxTdHJ1dHNWYWxpZGF0b3JVdGlsIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJTdHJ1dHNWYWxpZGF0b3JVdGlsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9GT05UPgorPEJSPgorQ2xhc3MgU3RydXRzVmFsaWRhdG9yVXRpbDwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yVXRpbDwvQj4KKzwvUFJFPgorPEhSPgorPEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sIj48Q09ERT5SZXNvdXJjZXM8L0NPREU+PC9BPjwvST4KKzxQPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5TdHJ1dHNWYWxpZGF0b3JVdGlsPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8L0RMPgorCis8UD4KKzxwPlRoaXMgY2xhc3MgaGVscHMgcHJvdmlkZXMgc29tZSB1c2VmdWwgbWV0aG9kcyBmb3IgcmV0cmlldmluZyBvYmplY3RzCisgZnJvbSBkaWZmZXJlbnQgc2NvcGVzIG9mIHRoZSBhcHBsaWNhdGlvbi48L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkRhdmlkIFdpbnRlcmZlbGR0LCBFZGRpZSBCdXNoPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjQUNUSU9OX0VSUk9SU19LRVkiPkFDVElPTl9FUlJPUlNfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1Jlc291cmNlcyBrZXkgdGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gaXMgc3RvcmVkIHVuZGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI0hUVFBfU0VSVkxFVF9SRVFVRVNUX0tFWSI+SFRUUF9TRVJWTEVUX1JFUVVFU1RfS0VZPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwO1Jlc291cmNlcyBrZXkgdGhlIDxjb2RlPkh0dHBTZXJ2bGV0UmVxdWVzdDwvY29kZT4gaXMgc3RvcmVkIHVuZGVyLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI1NFUlZMRVRfQ09OVEVYVF9LRVkiPlNFUlZMRVRfQ09OVEVYVF9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmVzb3VyY2VzIGtleSB0aGUgPGNvZGU+U2VydmxldENvbnRleHQ8L2NvZGU+IGlzIHN0b3JlZCB1bmRlci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI1N0cnV0c1ZhbGlkYXRvclV0aWwoKSI+U3RydXRzVmFsaWRhdG9yVXRpbDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvci5odG1sIj5BY3Rpb25FcnJvcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjZ2V0QWN0aW9uRXJyb3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj5nZXRBY3Rpb25FcnJvcjwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRBY3Rpb25FcnJvcihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPjxDT0RFPlJlc291cmNlcy5nZXRBY3Rpb25FcnJvcihIdHRwU2VydmxldFJlcXVlc3QsIFZhbGlkYXRvckFjdGlvbiwgRmllbGQpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmdbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCNnZXRBcmdzKGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPmdldEFyZ3M8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWN0aW9uTmFtZSwKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Jm5ic3A7bWVzc2FnZXMsCisgICAgICAgIGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRBcmdzKGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPjxDT0RFPlJlc291cmNlcy5nZXRBcmdzKFN0cmluZyxNZXNzYWdlUmVzb3VyY2VzLExvY2FsZSxGaWVsZCk8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS51dGlsLkxvY2FsZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCNnZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldExvY2FsZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7R2V0IHRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9mIHRoZSBjdXJyZW50IHVzZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjZ2V0TWVzc2FnZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0TWVzc2FnZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7R2V0cyB0aGUgPGNvZGU+TG9jYWxlPC9jb2RlPiBzZW5zaXRpdmUgdmFsdWUgYmFzZWQgb24gdGhlIGtleSBwYXNzZWQgaW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjZ2V0TWVzc2FnZShvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXMsIGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRNZXNzYWdlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Jm5ic3A7bWVzc2FnZXMsCisgICAgICAgICAgIGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtHZXRzIHRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHNlbnNpdGl2ZSB2YWx1ZSBiYXNlZCBvbiB0aGUga2V5IHBhc3NlZCBpbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCNnZXRNZXNzYWdlKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj5nZXRNZXNzYWdlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Jm5ic3A7bWVzc2FnZXMsCisgICAgICAgICAgIGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj48Q09ERT5SZXNvdXJjZXMuZ2V0TWVzc2FnZShNZXNzYWdlUmVzb3VyY2VzLCBMb2NhbGUsIFZhbGlkYXRvckFjdGlvbiAsIEZpZWxkKTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjZ2V0TWVzc2FnZVJlc291cmNlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0TWVzc2FnZVJlc291cmNlczwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7UmV0cmlldmUgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gZm9yIHRoZSBhcHBsaWNhdGlvbiBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCNnZXRNZXNzYWdlUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXRNZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2FwcGxpY2F0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBtZXRob2QgY2FuIG9ubHkgcmV0dXJuIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0CisgIG1vZHVsZS4gIFVzZSBnZXRNZXNzYWdlUmVzb3VyY2VzKEh0dHBTZXJ2bGV0UmVxdWVzdCkgdG8gZ2V0IHRoZQorICByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIG1vZHVsZS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzb3VyY2VzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI2dldFZhbGlkYXRvclJlc291cmNlcyhqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0VmFsaWRhdG9yUmVzb3VyY2VzPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2FwcGxpY2F0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+SW4gU3RydXRzIDEuMSBUaGlzIG1ldGhvZCBjYW4gb25seSByZXR1cm4gdGhlIHJlc291cmNlcyBmb3IgdGhlIGRlZmF1bHQKKyAgbW9kdWxlLiAgVXNlIGdldFZhbGlkYXRvclJlc291cmNlcyhIdHRwU2VydmxldFJlcXVlc3QsIFNlcnZsZXRDb250ZXh0KQorICB0byBnZXQgdGhlIHJlc291cmNlcyBmb3IgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gbW9kdWxlLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JSZXNvdXJjZXM8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjZ2V0VmFsaWRhdG9yUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRWYWxpZGF0b3JSZXNvdXJjZXM8L0E+PC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7YXBwbGljYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXRyaWV2ZSA8Y29kZT5WYWxpZGF0b3JSZXNvdXJjZXM8L2NvZGU+IGZvciB0aGUgY3VycmVudCBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sI2luaXRWYWxpZGF0b3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgaW50KSI+aW5pdFZhbGlkYXRvcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7YXBwbGljYXRpb24sCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgIGludCZuYnNwO3BhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjaW5pdFZhbGlkYXRvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBpbnQpIj48Q09ERT5SZXNvdXJjZXMuaW5pdFZhbGlkYXRvcihTdHJpbmcsT2JqZWN0LFNlcnZsZXRDb250ZXh0LEh0dHBTZXJ2bGV0UmVxdWVzdCxBY3Rpb25FcnJvcnMsaW50KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iU0VSVkxFVF9DT05URVhUX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorU0VSVkxFVF9DT05URVhUX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPlNFUlZMRVRfQ09OVEVYVF9LRVk8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlJlc291cmNlcyBrZXkgdGhlIDxjb2RlPlNlcnZsZXRDb250ZXh0PC9jb2RlPiBpcyBzdG9yZWQgdW5kZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJIVFRQX1NFUlZMRVRfUkVRVUVTVF9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK0hUVFBfU0VSVkxFVF9SRVFVRVNUX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPkhUVFBfU0VSVkxFVF9SRVFVRVNUX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmVzb3VyY2VzIGtleSB0aGUgPGNvZGU+SHR0cFNlcnZsZXRSZXF1ZXN0PC9jb2RlPiBpcyBzdG9yZWQgdW5kZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJBQ1RJT05fRVJST1JTX0tFWSI+PCEtLSAtLT48L0E+PEgzPgorQUNUSU9OX0VSUk9SU19LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5BQ1RJT05fRVJST1JTX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmVzb3VyY2VzIGtleSB0aGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBpcyBzdG9yZWQgdW5kZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iU3RydXRzVmFsaWRhdG9yVXRpbCgpIj48IS0tIC0tPjwvQT48SDM+CitTdHJ1dHNWYWxpZGF0b3JVdGlsPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+U3RydXRzVmFsaWRhdG9yVXRpbDwvQj4oKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFZhbGlkYXRvclJlc291cmNlcyhqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsaWRhdG9yUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzb3VyY2VzIDxCPmdldFZhbGlkYXRvclJlc291cmNlczwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2FwcGxpY2F0aW9uKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkluIFN0cnV0cyAxLjEgVGhpcyBtZXRob2QgY2FuIG9ubHkgcmV0dXJuIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0CisgIG1vZHVsZS4gIFVzZSBnZXRWYWxpZGF0b3JSZXNvdXJjZXMoSHR0cFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCkKKyAgdG8gZ2V0IHRoZSByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIG1vZHVsZS48L0k+Cis8UD4KKzxERD5SZXRyaWV2ZSA8Y29kZT5WYWxpZGF0b3JSZXNvdXJjZXM8L2NvZGU+IGZvciB0aGUgbW9kdWxlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRWYWxpZGF0b3JSZXNvdXJjZXMoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFZhbGlkYXRvclJlc291cmNlczwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvclJlc291cmNlcyA8Qj5nZXRWYWxpZGF0b3JSZXNvdXJjZXM8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDthcHBsaWNhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXRyaWV2ZSA8Y29kZT5WYWxpZGF0b3JSZXNvdXJjZXM8L2NvZGU+IGZvciB0aGUgY3VycmVudCBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2VSZXNvdXJjZXMoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2VSZXNvdXJjZXM8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IDxCPmdldE1lc3NhZ2VSZXNvdXJjZXM8L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDthcHBsaWNhdGlvbik8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5UaGlzIG1ldGhvZCBjYW4gb25seSByZXR1cm4gdGhlIHJlc291cmNlcyBmb3IgdGhlIGRlZmF1bHQKKyAgbW9kdWxlLiAgVXNlIGdldE1lc3NhZ2VSZXNvdXJjZXMoSHR0cFNlcnZsZXRSZXF1ZXN0KSB0byBnZXQgdGhlCisgIHJlc291cmNlcyBmb3IgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gbW9kdWxlLjwvST4KKzxQPgorPEREPlJldHJpZXZlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGZvciB0aGUgYXBwbGljYXRpb24gbW9kdWxlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5nZXRNZXNzYWdlUmVzb3VyY2VzPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+UmV0cmlldmUgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gZm9yIHRoZSBhcHBsaWNhdGlvbiBtb2R1bGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldExvY2FsZShqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TG9jYWxlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEudXRpbC5Mb2NhbGUgPEI+Z2V0TG9jYWxlPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+R2V0IHRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9mIHRoZSBjdXJyZW50IHVzZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2Uob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzLCBqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWVzc2FnZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiZuYnNwO21lc3NhZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPkdldHMgdGhlIDxjb2RlPkxvY2FsZTwvY29kZT4gc2Vuc2l0aXZlIHZhbHVlIGJhc2VkIG9uIHRoZSBrZXkgcGFzc2VkIGluLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmcgPEI+Z2V0TWVzc2FnZTwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5HZXRzIHRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHNlbnNpdGl2ZSB2YWx1ZSBiYXNlZCBvbiB0aGUga2V5IHBhc3NlZCBpbi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0TWVzc2FnZShvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXMsIGphdmEudXRpbC5Mb2NhbGUsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0TWVzc2FnZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPmdldE1lc3NhZ2U8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiZuYnNwO21lc3NhZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sI2dldE1lc3NhZ2Uob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzLCBqYXZhLnV0aWwuTG9jYWxlLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPjxDT0RFPlJlc291cmNlcy5nZXRNZXNzYWdlKE1lc3NhZ2VSZXNvdXJjZXMsIExvY2FsZSwgVmFsaWRhdG9yQWN0aW9uICwgRmllbGQpPC9DT0RFPjwvQT48L0k+Cis8UD4KKzxERD5HZXRzIHRoZSBsb2NhbGUgc2Vuc2l0aXZlIG1lc3NhZ2UgYmFzZWQgb24gdGhlIDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4gbWVzc2FnZSBhbmQgdGhlCisgPGNvZGU+RmllbGQ8L2NvZGU+J3MgYXJnIG9iamVjdHMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbkVycm9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWN0aW9uRXJyb3I8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPiA8Qj5nZXRBY3Rpb25FcnJvcjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjZ2V0QWN0aW9uRXJyb3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj48Q09ERT5SZXNvdXJjZXMuZ2V0QWN0aW9uRXJyb3IoSHR0cFNlcnZsZXRSZXF1ZXN0LCBWYWxpZGF0b3JBY3Rpb24sIEZpZWxkKTwvQ09ERT48L0E+PC9JPgorPFA+Cis8REQ+R2V0cyB0aGUgPGNvZGU+QWN0aW9uRXJyb3I8L2NvZGU+IGJhc2VkIG9uIHRoZSA8Y29kZT5WYWxpZGF0b3JBY3Rpb248L2NvZGU+IG1lc3NhZ2UgYW5kIHRoZQorIDxjb2RlPkZpZWxkPC9jb2RlPidzIGFyZyBvYmplY3RzLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRBcmdzKGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEFyZ3M8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZ1tdIDxCPmdldEFyZ3M8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDthY3Rpb25OYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4mbmJzcDttZXNzYWdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRBcmdzKGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPjxDT0RFPlJlc291cmNlcy5nZXRBcmdzKFN0cmluZyxNZXNzYWdlUmVzb3VyY2VzLExvY2FsZSxGaWVsZCk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPkdldHMgdGhlIG1lc3NhZ2UgYXJndW1lbnRzIGJhc2VkIG9uIHRoZSBjdXJyZW50IDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4KKyBhbmQgPGNvZGU+RmllbGQ8L2NvZGU+LgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpbml0VmFsaWRhdG9yKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK2luaXRWYWxpZGF0b3I8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3IgPEI+aW5pdFZhbGlkYXRvcjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7YXBwbGljYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCZuYnNwO3BhZ2UpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sI2luaXRWYWxpZGF0b3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgaW50KSI+PENPREU+UmVzb3VyY2VzLmluaXRWYWxpZGF0b3IoU3RyaW5nLE9iamVjdCxTZXJ2bGV0Q29udGV4dCxIdHRwU2VydmxldFJlcXVlc3QsQWN0aW9uRXJyb3JzLGludCk8L0NPREU+PC9BPjwvST4KKzxQPgorPEREPkluaXRpYWxpemUgdGhlIDxjb2RlPlZhbGlkYXRvcjwvY29kZT4gdG8gcGVyZm9ybSB2YWxpZGF0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIGtleSB0aGF0IHRoZSB2YWxpZGF0aW9uIHJ1bGVzIGFyZSB1bmRlcgorICAgICAgICAgICAgICAgKHRoZSBmb3JtIGVsZW1lbnRzIG5hbWUgYXR0cmlidXRlKS48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgY3VycmVudCByZXF1ZXN0IG9iamVjdC48REQ+PENPREU+ZXJyb3JzPC9DT0RFPiAtIFRoZSBvYmplY3QgYW55IGVycm9ycyB3aWxsIGJlIHN0b3JlZCBpbi48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3IuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTVkMWU1NQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwKQEAgLTAsMCArMSw0NTcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTggRURUIDIwMDMgLS0+Cis8VElUTEU+CitUb2tlblByb2Nlc3NvciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Ub2tlblByb2Nlc3NvcixUb2tlblByb2Nlc3NvciBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVG9rZW5Qcm9jZXNzb3IgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVG9rZW5Qcm9jZXNzb3IuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVCBDTEFTUzwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJUb2tlblByb2Nlc3Nvci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvRk9OVD4KKzxCUj4KK0NsYXNzIFRva2VuUHJvY2Vzc29yPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Ub2tlblByb2Nlc3NvcjwvQj4KKzwvUFJFPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5Ub2tlblByb2Nlc3NvcjwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4KKworPFA+CitUb2tlblByb2Nlc3NvciBpcyByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgYWxsIHRva2VuIHJlbGF0ZWQgZnVuY3Rpb25hbGl0eS4gIFRoZSAKKyBtZXRob2RzIGluIHRoaXMgY2xhc3MgYXJlIHN5bmNocm9uaXplZCB0byBwcm90ZWN0IHRva2VuIHByb2Nlc3NpbmcgZnJvbSBtdWx0aXBsZQorIHRocmVhZHMuICBTZXJ2bGV0IGNvbnRhaW5lcnMgYXJlIGFsbG93ZWQgdG8gcmV0dXJuIGEgZGlmZmVyZW50IEh0dHBTZXNzaW9uIG9iamVjdAorIGZvciB0d28gdGhyZWFkcyBhY2Nlc3NpbmcgdGhlIHNhbWUgc2Vzc2lvbiBzbyBpdCBpcyBub3QgcG9zc2libGUgdG8gc3luY2hyb25pemUgCisgb24gdGhlIHNlc3Npb24uCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5DcmFpZyBSLiBNY0NsYW5haGFuLCBEYXZpZCBHcmFoYW08L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwiPlRva2VuUHJvY2Vzc29yPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwjaW5zdGFuY2UiPmluc3RhbmNlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwjVG9rZW5Qcm9jZXNzb3IoKSI+VG9rZW5Qcm9jZXNzb3I8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcm90ZWN0ZWQgY29uc3RydWN0b3IgZm9yIFRva2VuUHJvY2Vzc29yLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sI2dlbmVyYXRlVG9rZW4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdlbmVyYXRlVG9rZW48L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dlbmVyYXRlIGEgbmV3IHRyYW5zYWN0aW9uIHRva2VuLCB0byBiZSB1c2VkIGZvciBlbmZvcmNpbmcgYSBzaW5nbGUKKyByZXF1ZXN0IGZvciBhIHBhcnRpY3VsYXIgdHJhbnNhY3Rpb24uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCI+VG9rZW5Qcm9jZXNzb3I8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCNnZXRJbnN0YW5jZSgpIj5nZXRJbnN0YW5jZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlcyB0aGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sI2lzVG9rZW5WYWxpZChqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+aXNUb2tlblZhbGlkPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgaXMgYSB0cmFuc2FjdGlvbiB0b2tlbiBzdG9yZWQgaW4KKyB0aGUgdXNlcidzIGN1cnJlbnQgc2Vzc2lvbiwgYW5kIHRoZSB2YWx1ZSBzdWJtaXR0ZWQgYXMgYSByZXF1ZXN0CisgcGFyYW1ldGVyIHdpdGggdGhpcyBhY3Rpb24gbWF0Y2hlcyBpdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwjaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGJvb2xlYW4pIj5pc1Rva2VuVmFsaWQ8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICBib29sZWFuJm5ic3A7cmVzZXQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgaXMgYSB0cmFuc2FjdGlvbiB0b2tlbiBzdG9yZWQgaW4KKyB0aGUgdXNlcidzIGN1cnJlbnQgc2Vzc2lvbiwgYW5kIHRoZSB2YWx1ZSBzdWJtaXR0ZWQgYXMgYSByZXF1ZXN0CisgcGFyYW1ldGVyIHdpdGggdGhpcyBhY3Rpb24gbWF0Y2hlcyBpdC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwjcmVzZXRUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVzZXRUb2tlbjwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVzZXQgdGhlIHNhdmVkIHRyYW5zYWN0aW9uIHRva2VuIGluIHRoZSB1c2VyJ3Mgc2Vzc2lvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwjc2F2ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5zYXZlVG9rZW48L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NhdmUgYSBuZXcgdHJhbnNhY3Rpb24gdG9rZW4gaW4gdGhlIHVzZXIncyBjdXJyZW50IHNlc3Npb24sIGNyZWF0aW5nCisgYSBuZXcgc2Vzc2lvbiBpZiBuZWNlc3NhcnkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sI3RvSGV4KGJ5dGVbXSkiPnRvSGV4PC9BPjwvQj4oYnl0ZVtdJm5ic3A7YnVmZmVyKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29udmVydCBhIGJ5dGUgYXJyYXkgdG8gYSBTdHJpbmcgb2YgaGV4YWRlY2ltYWwgZGlnaXRzIGFuZCByZXR1cm4gaXQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJpbnN0YW5jZSI+PCEtLSAtLT48L0E+PEgzPgoraW5zdGFuY2U8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCI+VG9rZW5Qcm9jZXNzb3I8L0E+IDxCPmluc3RhbmNlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJUb2tlblByb2Nlc3NvcigpIj48IS0tIC0tPjwvQT48SDM+CitUb2tlblByb2Nlc3NvcjwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIDxCPlRva2VuUHJvY2Vzc29yPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UHJvdGVjdGVkIGNvbnN0cnVjdG9yIGZvciBUb2tlblByb2Nlc3Nvci4gIFVzZSBUb2tlblByb2Nlc3Nvci5nZXRJbnN0YW5jZSgpCisgdG8gb2J0YWluIGEgcmVmZXJlbmNlIHRvIHRoZSBwcm9jZXNzb3IuCis8UD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldEluc3RhbmNlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldEluc3RhbmNlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCI+VG9rZW5Qcm9jZXNzb3I8L0E+IDxCPmdldEluc3RhbmNlPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+UmV0cmlldmVzIHRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcy4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaXNUb2tlblZhbGlkKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Citpc1Rva2VuVmFsaWQ8L0gzPgorPFBSRT4KK3B1YmxpYyBib29sZWFuIDxCPmlzVG9rZW5WYWxpZDwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGlzIGEgdHJhbnNhY3Rpb24gdG9rZW4gc3RvcmVkIGluCisgdGhlIHVzZXIncyBjdXJyZW50IHNlc3Npb24sIGFuZCB0aGUgdmFsdWUgc3VibWl0dGVkIGFzIGEgcmVxdWVzdAorIHBhcmFtZXRlciB3aXRoIHRoaXMgYWN0aW9uIG1hdGNoZXMgaXQuICBSZXR1cm5zIDxjb2RlPmZhbHNlPC9jb2RlPgorIHVuZGVyIGFueSBvZiB0aGUgZm9sbG93aW5nIGNpcmN1bXN0YW5jZXM6CisgPHVsPgorIDxsaT5ObyBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3Q8L2xpPgorIDxsaT5ObyB0cmFuc2FjdGlvbiB0b2tlbiBzYXZlZCBpbiB0aGUgc2Vzc2lvbjwvbGk+CisgPGxpPk5vIHRyYW5zYWN0aW9uIHRva2VuIGluY2x1ZGVkIGFzIGEgcmVxdWVzdCBwYXJhbWV0ZXI8L2xpPgorIDxsaT5UaGUgaW5jbHVkZWQgdHJhbnNhY3Rpb24gdG9rZW4gdmFsdWUgZG9lcyBub3QgbWF0Y2ggdGhlCisgICAgIHRyYW5zYWN0aW9uIHRva2VuIGluIHRoZSB1c2VyJ3Mgc2Vzc2lvbjwvbGk+CisgPC91bD4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1Rva2VuVmFsaWQoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgYm9vbGVhbikiPjwhLS0gLS0+PC9BPjxIMz4KK2lzVG9rZW5WYWxpZDwvSDM+Cis8UFJFPgorcHVibGljIGJvb2xlYW4gPEI+aXNUb2tlblZhbGlkPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuJm5ic3A7cmVzZXQpPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGlzIGEgdHJhbnNhY3Rpb24gdG9rZW4gc3RvcmVkIGluCisgdGhlIHVzZXIncyBjdXJyZW50IHNlc3Npb24sIGFuZCB0aGUgdmFsdWUgc3VibWl0dGVkIGFzIGEgcmVxdWVzdAorIHBhcmFtZXRlciB3aXRoIHRoaXMgYWN0aW9uIG1hdGNoZXMgaXQuICBSZXR1cm5zIDxjb2RlPmZhbHNlPC9jb2RlPgorIDx1bD4KKyA8bGk+Tm8gc2Vzc2lvbiBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXF1ZXN0PC9saT4KKyA8bGk+Tm8gdHJhbnNhY3Rpb24gdG9rZW4gc2F2ZWQgaW4gdGhlIHNlc3Npb248L2xpPgorIDxsaT5ObyB0cmFuc2FjdGlvbiB0b2tlbiBpbmNsdWRlZCBhcyBhIHJlcXVlc3QgcGFyYW1ldGVyPC9saT4KKyA8bGk+VGhlIGluY2x1ZGVkIHRyYW5zYWN0aW9uIHRva2VuIHZhbHVlIGRvZXMgbm90IG1hdGNoIHRoZQorICAgICB0cmFuc2FjdGlvbiB0b2tlbiBpbiB0aGUgdXNlcidzIHNlc3Npb248L2xpPgorIDwvdWw+Cis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzxERD48Q09ERT5yZXNldDwvQ09ERT4gLSBTaG91bGQgd2UgcmVzZXQgdGhlIHRva2VuIGFmdGVyIGNoZWNraW5nIGl0PzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVzZXRUb2tlbihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorcmVzZXRUb2tlbjwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVzZXRUb2tlbjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+UmVzZXQgdGhlIHNhdmVkIHRyYW5zYWN0aW9uIHRva2VuIGluIHRoZSB1c2VyJ3Mgc2Vzc2lvbi4gIFRoaXMKKyBpbmRpY2F0ZXMgdGhhdCB0cmFuc2FjdGlvbmFsIHRva2VuIGNoZWNraW5nIHdpbGwgbm90IGJlIG5lZWRlZAorIG9uIHRoZSBuZXh0IHJlcXVlc3QgdGhhdCBpcyBzdWJtaXR0ZWQuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2F2ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitzYXZlVG9rZW48L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNhdmVUb2tlbjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+U2F2ZSBhIG5ldyB0cmFuc2FjdGlvbiB0b2tlbiBpbiB0aGUgdXNlcidzIGN1cnJlbnQgc2Vzc2lvbiwgY3JlYXRpbmcKKyBhIG5ldyBzZXNzaW9uIGlmIG5lY2Vzc2FyeS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZW5lcmF0ZVRva2VuKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitnZW5lcmF0ZVRva2VuPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZW5lcmF0ZVRva2VuPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5HZW5lcmF0ZSBhIG5ldyB0cmFuc2FjdGlvbiB0b2tlbiwgdG8gYmUgdXNlZCBmb3IgZW5mb3JjaW5nIGEgc2luZ2xlCisgcmVxdWVzdCBmb3IgYSBwYXJ0aWN1bGFyIHRyYW5zYWN0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ0b0hleChieXRlW10pIj48IS0tIC0tPjwvQT48SDM+Cit0b0hleDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEubGFuZy5TdHJpbmcgPEI+dG9IZXg8L0I+KGJ5dGVbXSZuYnNwO2J1ZmZlcik8L1BSRT4KKzxETD4KKzxERD5Db252ZXJ0IGEgYnl0ZSBhcnJheSB0byBhIFN0cmluZyBvZiBoZXhhZGVjaW1hbCBkaWdpdHMgYW5kIHJldHVybiBpdC4KKzxwPgorPHN0cm9uZz5XQVJOSU5HPC9zdHJvbmc+OiBUaGlzIG1ldGhvZCBpcyBub3QgcGFydCBvZiBUb2tlblByb2Nlc3NvcidzCitwdWJsaWMgQVBJLiAgSXQncyBwcm92aWRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvbmx5LgorPC9wPgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5idWZmZXI8L0NPREU+IC0gVGhlIGJ5dGUgYXJyYXkgdG8gYmUgY29udmVydGVkPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9Ub2tlblByb2Nlc3Nvci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRva2VuUHJvY2Vzc29yLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL0FwcEV4Y2VwdGlvbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL0FwcEV4Y2VwdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3ZDVlMWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvQXBwRXhjZXB0aW9uLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuQXBwRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuQXBwRXhjZXB0aW9uIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FwcEV4Y2VwdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBcHBFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkFwcEV4Y2VwdGlvbjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkFwcEV4Y2VwdGlvbgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FwcEV4Y2VwdGlvbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJBcHBFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL0Vycm9yTWVzc2FnZXMuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9FcnJvck1lc3NhZ2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc4NmIwMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9FcnJvck1lc3NhZ2VzLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRXJyb3JNZXNzYWdlcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkVycm9yTWVzc2FnZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJFcnJvck1lc3NhZ2VzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5FcnJvck1lc3NhZ2VzPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuRXJyb3JNZXNzYWdlcworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRXJyb3JNZXNzYWdlcy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9HZW5lcmljRGF0YVNvdXJjZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NmFhNTYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5HZW5lcmljRGF0YVNvdXJjZSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkdlbmVyaWNEYXRhU291cmNlIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkdlbmVyaWNEYXRhU291cmNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5HZW5lcmljRGF0YVNvdXJjZTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkdlbmVyaWNEYXRhU291cmNlCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL0ltYWdlQnV0dG9uQmVhbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL0ltYWdlQnV0dG9uQmVhbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5M2I1NjUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvSW1hZ2VCdXR0b25CZWFuLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuSW1hZ2VCdXR0b25CZWFuIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuSW1hZ2VCdXR0b25CZWFuIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbWFnZUJ1dHRvbkJlYW4uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkltYWdlQnV0dG9uQmVhbjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkltYWdlQnV0dG9uQmVhbgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJbWFnZUJ1dHRvbkJlYW4uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL0l0ZXJhdG9yQWRhcHRlci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL0l0ZXJhdG9yQWRhcHRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1YjJmMTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvSXRlcmF0b3JBZGFwdGVyLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuSXRlcmF0b3JBZGFwdGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuSXRlcmF0b3JBZGFwdGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJdGVyYXRvckFkYXB0ZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkl0ZXJhdG9yQWRhcHRlcjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkl0ZXJhdG9yQWRhcHRlcgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0l0ZXJhdG9yQWRhcHRlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJJdGVyYXRvckFkYXB0ZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL0xhYmVsVmFsdWVCZWFuLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvTGFiZWxWYWx1ZUJlYW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzZmNmViCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL0xhYmVsVmFsdWVCZWFuLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTGFiZWxWYWx1ZUJlYW4gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5MYWJlbFZhbHVlQmVhbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJMYWJlbFZhbHVlQmVhbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTGFiZWxWYWx1ZUJlYW48L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5MYWJlbFZhbHVlQmVhbgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkxhYmVsVmFsdWVCZWFuLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9NZXNzYWdlUmVzb3VyY2VzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvTWVzc2FnZVJlc291cmNlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmOGE5YmIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvTWVzc2FnZVJlc291cmNlcy5odG1sCkBAIC0wLDAgKzEsOTA3IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWVzc2FnZVJlc291cmNlcy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlczwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQj48L0E+PC9URD4KKzxURD4gVGhlIGFjdGlvbiBwYWNrYWdlIGlzIHRoZSBjb3JlIG9mIHRoZSBzdHJ1dHMgZnJhbWV3b3JrLAorICAgIHByb3ZpZGluZyB0aGUgIkNvbnRyb2xsZXIiIGFzcGVjdCBvZiBhIE1WQyBtb2RlbC4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9CPjwvQT48L1REPgorPFREPiBUaGUgYWN0aW9ucyBwYWNrYWdlIHByb3ZpZGVzIHNwZWNpYWwgYWRhcHRlcnMgYmV0d2VlbiB0aGUgaW5jb21pbmcgIEhUVFAKKyByZXF1ZXN0IGFuZCB0aGUgY29ycmVzcG9uZGluZyBidXNpbmVzcyBsb2dpYy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQj48L0E+PC9URD4KKzxURD5UaGUgImNvbmZpZyIgcGFja2FnZSBjb250YWlucyBjb25maWd1cmF0aW9uIG9iamVjdHMgdGhhdCBjb3JyZXNwb25kIHRvCitlbGVtZW50cyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPgorbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlICJzdHJ1dHMtYmVhbiIgdGFnIGxpYnJhcnkgY29udGFpbnMgSlNQIGN1c3RvbSB0YWdzIHVzZWZ1bCBpbiBkZWZpbmluZworbmV3IGJlYW5zIChpbiBhbnkgZGVzaXJlZCBzY29wZSkgZnJvbSBhIHZhcmlldHkgb2YgcG9zc2libGUgc291cmNlcywgYXMgd2VsbAorYXMgYSB0YWcgdG8gcmVuZGVyIGEgcGFydGljdWxhciBiZWFuIChvciBiZWFuIHByb3BlcnR5KSB0byB0aGUgb3V0cHV0IHJlc3BvbnNlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQj48L0E+PC9URD4KKzxURD48YSBuYW1lPSJkb2MuRGVzY3JpcHRpb24iPlRoZSAic3RydXRzLWh0bWwiIHRhZyBsaWJyYXJ5PC9hPgorICBjb250YWlucyBKU1AgY3VzdG9tIHRhZ3MgdXNlZnVsIGluIGNyZWF0aW5nIGR5bmFtaWMgSFRNTCB1c2VyIGludGVyZmFjZXMsCitpbmNsdWRpbmcgaW5wdXQgZm9ybXMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlICJzdHJ1dHMtbG9naWMiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluIG1hbmFnaW5nCitjb25kaXRpb25hbCBnZW5lcmF0aW9uIG9mIG91dHB1dCB0ZXh0LCBsb29waW5nIG92ZXIgb2JqZWN0IGNvbGxlY3Rpb25zCitmb3IgcmVwZXRpdGl2ZSBnZW5lcmF0aW9uIG9mIG91dHB1dCB0ZXh0LCBhbmQgYXBwbGljYXRpb24gZmxvdyBtYW5hZ2VtZW50LiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIFV0aWxpdGllcyBwYWNrYWdlIHByb3ZpZGVzIGEgdmFyaWV0eSBvZiBmYW1pbGllcyBvZiBjbGFzc2VzLAordG8gc29sdmUgcHJvYmxlbXMgdGhhdCBhcmUgY29tbW9ubHkgZW5jb3VudGVyZWQgaW4gYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQj48L0E+PC9URD4KKzxURD4gVGhlIHZhbGlkYXRvciBwYWNrYWdlIHByb3ZpZGVzIGEgc2VyaWVzIG9mIGNsYXNzZXMgdG8gdmFsaWRhdGUgCisgICA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiB0eXBlIG9mIGlucHV0LiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvblNlcnZsZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjaW50ZXJuYWwiPmludGVybmFsPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSByZXNvdXJjZXMgb2JqZWN0IGZvciBvdXIgaW50ZXJuYWwgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+IHRoYXQgcmV0dXJuIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkFjdGlvblNlcnZsZXQuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwjZ2V0SW50ZXJuYWwoKSI+Z2V0SW50ZXJuYWw8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm4gdGhlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGluc3RhbmNlIGNvbnRhaW5pbmcgb3VyCisgaW50ZXJuYWwgbWVzc2FnZSBzdHJpbmdzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uU2VydmxldC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCNnZXRSZXNvdXJjZXMoKSI+Z2V0UmVzb3VyY2VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QWN0aW9ucyBzaG91bGQgY2FsbCBBY3Rpb24uZ2V0UmVzb3VyY2VzKEh0dHBTZXJ2bGV0UmVxdWVzdCkKKyAgaW5zdGVhZCBvZiB0aGlzIG1ldGhvZCwgaW4gb3JkZXIgdG8gcmV0cmlldmUgdGhlIHJlc291cmNlcyBmb3IgdGhlCisgIGN1cnJlbnQgbW9kdWxlLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0UHJvY2Vzc29yLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVxdWVzdFByb2Nlc3Nvci5odG1sI2dldEludGVybmFsKCkiPmdldEludGVybmFsPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBpbnN0YW5jZSBjb250YWluaW5nIG91cgorIGludGVybmFsIG1lc3NhZ2Ugc3RyaW5ncy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoKSI+Z2V0UmVzb3VyY2VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBtZXRob2QgY2FuIG9ubHkgcmV0dXJuIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0CisgIG1vZHVsZS4gIFVzZSBnZXRSZXNvdXJjZXMoSHR0cFNlcnZsZXRSZXF1ZXN0KSB0byBnZXQgdGhlCisgIHJlc291cmNlcyBmb3IgdGhlIGN1cnJlbnQgbW9kdWxlLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5BY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb24uaHRtbCNnZXRSZXNvdXJjZXMoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldFJlc291cmNlczwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBkZWZhdWx0IG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGUgY3VycmVudCBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjZ2V0UmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRSZXNvdXJjZXM8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0dXJuIHRoZSBzcGVjaWZpZWQgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IG1vZHVsZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5GaWVsZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZvcndhcmRBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRm9yd2FyZEFjdGlvbi5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5EaXNwYXRjaEFjdGlvbi48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9EaXNwYXRjaEFjdGlvbi5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Td2l0Y2hBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvU3dpdGNoQWN0aW9uLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkluY2x1ZGVBY3Rpb24uPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvSW5jbHVkZUFjdGlvbi5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5NZXRob2RzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db25maWdIZWxwZXIuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXIuaHRtbCNnZXRNZXNzYWdlUmVzb3VyY2VzKCkiPmdldE1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgYXBwbGljYXRpb24gcmVzb3VyY2VzIGZvciB0aGlzIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+Q29uZmlnSGVscGVySW50ZXJmYWNlLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29uZmlnSGVscGVySW50ZXJmYWNlLmh0bWwjZ2V0TWVzc2FnZVJlc291cmNlcygpIj5nZXRNZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIGFwcGxpY2F0aW9uIHJlc291cmNlcyBmb3IgdGhpcyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5GaWVsZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9BPiBkZWNsYXJlZCBhcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+RGVmaW5lVGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TWVzc2FnZVRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vTWVzc2FnZVRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Xcml0ZVRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+SW5jbHVkZVRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5TdHJ1dHNUYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5TaXplVGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlc291cmNlVGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5QYXJhbWV0ZXJUYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5QYWdlVGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkhlYWRlclRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSGVhZGVyVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNvb2tpZVRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vQ29va2llVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWw8L0E+IGRlY2xhcmVkIGFzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5PcHRpb25zVGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk9wdGlvbnNDb2xsZWN0aW9uVGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5FcnJvcnNUYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5CYXNlSGFuZGxlclRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TGlua1RhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTGlua1RhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5TZWxlY3RUYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5NZXNzYWdlc1RhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvTWVzc2FnZXNUYWcuaHRtbCNtZXNzYWdlUmVzb3VyY2VzIj5tZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNhbmNlbFRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ2FuY2VsVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk11bHRpYm94VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NdWx0aWJveFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5CYXNlSW5wdXRUYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5CYXNlVGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkNoZWNrYm94VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5JbWdUYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltZ1RhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5IdG1sVGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPkZvcm1UYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+U3VibWl0VGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9TdWJtaXRUYWcuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVzZXRUYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jlc2V0VGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk9wdGlvblRhZy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJhZGlvVGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj5GaWVsZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0E+IGRlY2xhcmVkIGFzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5JdGVyYXRlVGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Gb3J3YXJkVGFnLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db25kaXRpb25hbFRhZ0Jhc2UuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db25kaXRpb25hbFRhZ0Jhc2UuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVkaXJlY3RUYWcuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9SZWRpcmVjdFRhZy5odG1sI21lc3NhZ2VzIj5tZXNzYWdlczwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Db21wYXJlVGFnQmFzZS48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbXBhcmVUYWdCYXNlLmh0bWwjbWVzc2FnZXMiPm1lc3NhZ2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhpcyBwYWNrYWdlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtjbGFzczwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uY3JldGUgc3ViY2xhc3Mgb2YgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gdGhhdCByZWFkcyBtZXNzYWdlIGtleXMKKyBhbmQgY29ycmVzcG9uZGluZyBzdHJpbmdzIGZyb20gbmFtZWQgcHJvcGVydHkgcmVzb3VyY2VzIGluIHRoZSBzYW1lIG1hbm5lcgorIHRoYXQgPGNvZGU+amF2YS51dGlsLlByb3BlcnR5UmVzb3VyY2VCdW5kbGU8L2NvZGU+IGRvZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+RmllbGRzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+IGRlY2xhcmVkIGFzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXNwb25zZVV0aWxzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlcXVlc3RVdGlscy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCNtZXNzYWdlcyI+bWVzc2FnZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGlzIHBhY2thZ2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5TdHJ1dHNWYWxpZGF0b3JVdGlsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCNnZXRNZXNzYWdlUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXRNZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2FwcGxpY2F0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBtZXRob2QgY2FuIG9ubHkgcmV0dXJuIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0CisgIG1vZHVsZS4gIFVzZSBnZXRNZXNzYWdlUmVzb3VyY2VzKEh0dHBTZXJ2bGV0UmVxdWVzdCkgdG8gZ2V0IHRoZQorICByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIG1vZHVsZS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5TdHJ1dHNWYWxpZGF0b3JVdGlsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCNnZXRNZXNzYWdlUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRNZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtSZXRyaWV2ZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBmb3IgdGhlIGFwcGxpY2F0aW9uIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sI2NyZWF0ZVJlc291cmNlcyhqYXZhLmxhbmcuU3RyaW5nKSI+Y3JlYXRlUmVzb3VyY2VzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3bHkgaW5zdGFuc2lhdGVkIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5hYnN0cmFjdCAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNjcmVhdGVSZXNvdXJjZXMoamF2YS5sYW5nLlN0cmluZykiPmNyZWF0ZVJlc291cmNlczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb25maWcpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDcmVhdGUgYW5kIHJldHVybiBhIG5ld2x5IGluc3RhbnNpYXRlZCA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1lc3NhZ2VSZXNvdXJjZXMuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2dldE1lc3NhZ2VSZXNvdXJjZXMoamF2YS5sYW5nLlN0cmluZykiPmdldE1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGFuZCByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gZm9yIHRoZQorIGNyZWF0ZWQgYnkgdGhlIGRlZmF1bHQgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXF1ZXN0VXRpbHMuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwjcmV0cmlldmVNZXNzYWdlUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0LCBqYXZhLmxhbmcuU3RyaW5nLCBib29sZWFuKSI+cmV0cmlldmVNZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj4oamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQmbmJzcDtwYWdlQ29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YnVuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtjaGVja1BhZ2VTY29wZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgdGhlIGFwcHJvcHJpYXRlIE1lc3NhZ2VSZXNvdXJjZXMgb2JqZWN0IGZvciB0aGUgY3VycmVudCBtb2R1bGUgYW5kIAorIHRoZSBnaXZlbiBidW5kbGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+U3RydXRzVmFsaWRhdG9yVXRpbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjZ2V0TWVzc2FnZShvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXMsIGphdmEudXRpbC5Mb2NhbGUsIGphdmEubGFuZy5TdHJpbmcpIj5nZXRNZXNzYWdlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Jm5ic3A7bWVzc2FnZXMsCisgICAgICAgICAgIGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDtHZXRzIHRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IHNlbnNpdGl2ZSB2YWx1ZSBiYXNlZCBvbiB0aGUga2V5IHBhc3NlZCBpbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5TdHJ1dHNWYWxpZGF0b3JVdGlsLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCNnZXRNZXNzYWdlKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj5nZXRNZXNzYWdlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Jm5ic3A7bWVzc2FnZXMsCisgICAgICAgICAgIGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj48Q09ERT5SZXNvdXJjZXMuZ2V0TWVzc2FnZShNZXNzYWdlUmVzb3VyY2VzLCBMb2NhbGUsIFZhbGlkYXRvckFjdGlvbiAsIEZpZWxkKTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nW108L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+U3RydXRzVmFsaWRhdG9yVXRpbC48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwjZ2V0QXJncyhqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXMsIGphdmEudXRpbC5Mb2NhbGUsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj5nZXRBcmdzPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FjdGlvbk5hbWUsCisgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiZuYnNwO21lc3NhZ2VzLAorICAgICAgICBqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjZ2V0QXJncyhqYXZhLmxhbmcuU3RyaW5nLCBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXMsIGphdmEudXRpbC5Mb2NhbGUsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj48Q09ERT5SZXNvdXJjZXMuZ2V0QXJncyhTdHJpbmcsTWVzc2FnZVJlc291cmNlcyxMb2NhbGUsRmllbGQpPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVzb3VyY2VzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZVJlc291cmNlcyhqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+Z2V0TWVzc2FnZVJlc291cmNlczwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDthcHBsaWNhdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlRoaXMgbWV0aG9kIGNhbiBvbmx5IHJldHVybiB0aGUgcmVzb3VyY2VzIGZvciB0aGUgZGVmYXVsdAorICBtb2R1bGUuICBVc2UgZ2V0TWVzc2FnZVJlc291cmNlcyhIdHRwU2VydmxldFJlcXVlc3QpIHRvIGdldCB0aGUKKyAgcmVzb3VyY2VzIGZvciB0aGUgY3VycmVudCBtb2R1bGUuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVzb3VyY2VzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZVJlc291cmNlcyhqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+Z2V0TWVzc2FnZVJlc291cmNlczwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmV0cmlldmUgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gZm9yIHRoZSBtb2R1bGUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT4gd2l0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPlJlc291cmNlcy48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sI2dldE1lc3NhZ2Uob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzLCBqYXZhLnV0aWwuTG9jYWxlLCBqYXZhLmxhbmcuU3RyaW5nKSI+Z2V0TWVzc2FnZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiZuYnNwO21lc3NhZ2VzLAorICAgICAgICAgICBqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0cyB0aGUgPGNvZGU+TG9jYWxlPC9jb2RlPiBzZW5zaXRpdmUgdmFsdWUgYmFzZWQgb24gdGhlIGtleSBwYXNzZWQgaW4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+UmVzb3VyY2VzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjZ2V0TWVzc2FnZShvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXMsIGphdmEudXRpbC5Mb2NhbGUsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkKSI+Z2V0TWVzc2FnZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiZuYnNwO21lc3NhZ2VzLAorICAgICAgICAgICBqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHRoZSBsb2NhbGUgc2Vuc2l0aXZlIG1lc3NhZ2UgYmFzZWQgb24gdGhlIDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4gbWVzc2FnZSBhbmQgdGhlCisgPGNvZGU+RmllbGQ8L2NvZGU+J3MgYXJnIG9iamVjdHMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmdbXTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5SZXNvdXJjZXMuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRBcmdzKGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPmdldEFyZ3M8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWN0aW9uTmFtZSwKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Jm5ic3A7bWVzc2FnZXMsCisgICAgICAgIGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHMgdGhlIG1lc3NhZ2UgYXJndW1lbnRzIGJhc2VkIG9uIHRoZSBjdXJyZW50IDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4KKyBhbmQgPGNvZGU+RmllbGQ8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTWVzc2FnZVJlc291cmNlcy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiODU2MDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbApAQCAtMCwwICsxLDI1MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIFV0aWxpdGllcyBwYWNrYWdlIHByb3ZpZGVzIGEgdmFyaWV0eSBvZiBmYW1pbGllcyBvZiBjbGFzc2VzLAordG8gc29sdmUgcHJvYmxlbXMgdGhhdCBhcmUgY29tbW9ubHkgZW5jb3VudGVyZWQgaW4gYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucy4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0ZhY3RvcnkgZm9yIDxjb2RlPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW5zdGFuY2VzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPiBkZWNsYXJlZCBhcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1lc3NhZ2VSZXNvdXJjZXMuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2ZhY3RvcnkiPmZhY3Rvcnk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiB0aGF0IGNyZWF0ZWQgdGhpcyBpbnN0YW5jZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkIHN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1lc3NhZ2VSZXNvdXJjZXMuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI2RlZmF1bHRGYWN0b3J5Ij5kZWZhdWx0RmFjdG9yeTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgZGVmYXVsdCBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSB1c2VkIHRvIGNyZWF0ZSBNZXNzYWdlUmVzb3VyY2VzCisgaW5zdGFuY2VzLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPk1ldGhvZHMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQT4gdGhhdCByZXR1cm4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwjY3JlYXRlRmFjdG9yeSgpIj5jcmVhdGVGYWN0b3J5PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q3JlYXRlIGFuZCByZXR1cm4gYSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gaW5zdGFuY2Ugb2YgdGhlCisgYXBwcm9wcmlhdGUgY2xhc3MsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBjdXN0b21pemVkCisgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW5zdGFuY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5NZXNzYWdlUmVzb3VyY2VzLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNnZXRGYWN0b3J5KCkiPmdldEZhY3Rvcnk8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IHRoYXQgY3JlYXRlZCB0aGlzIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkNvbnN0cnVjdG9ycyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPiB3aXRoIHBhcmFtZXRlcnMgb2YgdHlwZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwjUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIGphdmEubGFuZy5TdHJpbmcpIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPiZuYnNwO2ZhY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbnN0cnVjdCBhIG5ldyBQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMgYWNjb3JkaW5nIHRvIHRoZQorIHNwZWNpZmllZCBwYXJhbWV0ZXJzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCNQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSwgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Jm5ic3A7ZmFjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtyZXR1cm5OdWxsKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IFByb3BlcnR5TWVzc2FnZVJlc291cmNlcyBhY2NvcmRpbmcgdG8gdGhlCisgc3BlY2lmaWVkIHBhcmFtZXRlcnMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNNZXNzYWdlUmVzb3VyY2VzKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3RvcnksIGphdmEubGFuZy5TdHJpbmcpIj5NZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4mbmJzcDtmYWN0b3J5LAorICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7Y29uZmlnKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IE1lc3NhZ2VSZXNvdXJjZXMgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sI01lc3NhZ2VSZXNvdXJjZXMob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSwgamF2YS5sYW5nLlN0cmluZywgYm9vbGVhbikiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPiZuYnNwO2ZhY3RvcnksCisgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtjb25maWcsCisgICAgICAgICAgICAgICAgIGJvb2xlYW4mbmJzcDtyZXR1cm5OdWxsKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29uc3RydWN0IGEgbmV3IE1lc3NhZ2VSZXNvdXJjZXMgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvTW9kdWxlRXhjZXB0aW9uLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvTW9kdWxlRXhjZXB0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdkZDQzOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9Nb2R1bGVFeGNlcHRpb24uaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Nb2R1bGVFeGNlcHRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Nb2R1bGVFeGNlcHRpb24gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ik1vZHVsZUV4Y2VwdGlvbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTW9kdWxlRXhjZXB0aW9uPC9CPjwvSDI+Cis8L0NFTlRFUj4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorUGFja2FnZXMgdGhhdCB1c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+TW9kdWxlRXhjZXB0aW9uPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy51dGlsIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9CPjwvQT48L1REPgorPFREPlRoZSBVdGlsaXRpZXMgcGFja2FnZSBwcm92aWRlcyBhIHZhcmlldHkgb2YgZmFtaWxpZXMgb2YgY2xhc3NlcywKK3RvIHNvbHZlIHByb2JsZW1zIHRoYXQgYXJlIGNvbW1vbmx5IGVuY291bnRlcmVkIGluIGJ1aWxkaW5nIHdlYiBhcHBsaWNhdGlvbnMuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sIj5Nb2R1bGVFeGNlcHRpb248L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+TW9kdWxlRXhjZXB0aW9uPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7Y2xhc3M8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9BcHBFeGNlcHRpb24uaHRtbCI+QXBwRXhjZXB0aW9uPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPnVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01vZHVsZUV4Y2VwdGlvbi5odG1sIj48Q09ERT5Nb2R1bGVFeGNlcHRpb248L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iTW9kdWxlRXhjZXB0aW9uLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDQwZDE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlByb3BlcnR5TWVzc2FnZVJlc291cmNlcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlByb3BlcnR5TWVzc2FnZVJlc291cmNlcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0I+PC9IMj4KKzwvQ0VOVEVSPgorTm8gdXNhZ2Ugb2Ygb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2ZjQwZGMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL1JlcXVlc3RVdGlscy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL1JlcXVlc3RVdGlscy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjNjE2OGYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvUmVxdWVzdFV0aWxzLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUmVxdWVzdFV0aWxzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUmVxdWVzdFV0aWxzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXF1ZXN0VXRpbHMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlJlcXVlc3RVdGlsczwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlJlcXVlc3RVdGlscworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1JlcXVlc3RVdGlscy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXF1ZXN0VXRpbHMuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL1Jlc3BvbnNlVXRpbHMuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9SZXNwb25zZVV0aWxzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUzNGI2OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9SZXNwb25zZVV0aWxzLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUmVzcG9uc2VVdGlscyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlJlc3BvbnNlVXRpbHMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJSZXNwb25zZVV0aWxzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5SZXNwb25zZVV0aWxzPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUmVzcG9uc2VVdGlscworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Jlc3BvbnNlVXRpbHMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVzcG9uc2VVdGlscy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9TZXJ2bGV0Q29udGV4dFdyaXRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3MjA2NmUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbApAQCAtMCwwICsxLDEyNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5TZXJ2bGV0Q29udGV4dFdyaXRlciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlNlcnZsZXRDb250ZXh0V3JpdGVyIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlNlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlNlcnZsZXRDb250ZXh0V3JpdGVyCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL1N0cnV0c1ZhbGlkYXRvci5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL1N0cnV0c1ZhbGlkYXRvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmYTE4NGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvU3RydXRzVmFsaWRhdG9yLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdHJ1dHNWYWxpZGF0b3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvcjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvcgorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdHJ1dHNWYWxpZGF0b3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk5MTBmNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9TdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yVXRpbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlN0cnV0c1ZhbGlkYXRvclV0aWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJTdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5TdHJ1dHNWYWxpZGF0b3JVdGlsPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yVXRpbAorPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iU3RydXRzVmFsaWRhdG9yVXRpbC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvVG9rZW5Qcm9jZXNzb3IuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9Ub2tlblByb2Nlc3Nvci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1MDFlODYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvVG9rZW5Qcm9jZXNzb3IuaHRtbApAQCAtMCwwICsxLDIwOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo0MiBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1VzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Ub2tlblByb2Nlc3NvciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLlRva2VuUHJvY2Vzc29yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlRva2VuUHJvY2Vzc29yLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Ub2tlblByb2Nlc3NvcjwvQj48L0gyPgorPC9DRU5URVI+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1BhY2thZ2VzIHRoYXQgdXNlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCI+VG9rZW5Qcm9jZXNzb3I8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9CPjwvQT48L1REPgorPFREPiBUaGUgYWN0aW9uIHBhY2thZ2UgaXMgdGhlIGNvcmUgb2YgdGhlIHN0cnV0cyBmcmFtZXdvcmssCisgICAgcHJvdmlkaW5nIHRoZSAiQ29udHJvbGxlciIgYXNwZWN0IG9mIGEgTVZDIG1vZGVsLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIFV0aWxpdGllcyBwYWNrYWdlIHByb3ZpZGVzIGEgdmFyaWV0eSBvZiBmYW1pbGllcyBvZiBjbGFzc2VzLAordG8gc29sdmUgcHJvYmxlbXMgdGhhdCBhcmUgY29tbW9ubHkgZW5jb3VudGVyZWQgaW4gYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucy4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK1VzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sIj5Ub2tlblByb2Nlc3NvcjwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT4gZGVjbGFyZWQgYXMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sIj5Ub2tlblByb2Nlc3NvcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sIj5Ub2tlblByb2Nlc3NvcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+QWN0aW9uLjwvQj48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwjdG9rZW4iPnRva2VuPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0FuIGluc3RhbmNlIG9mIFRva2VuUHJvY2Vzc29yIHRvIHVzZSBmb3IgdG9rZW4gZnVuY3Rpb25hbGl0eS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCI+VG9rZW5Qcm9jZXNzb3I8L0E+IGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPkZpZWxkcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPiBkZWNsYXJlZCBhcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwiPlRva2VuUHJvY2Vzc29yPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwiPlRva2VuUHJvY2Vzc29yPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj5Ub2tlblByb2Nlc3Nvci48L0I+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sI2luc3RhbmNlIj5pbnN0YW5jZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+TWV0aG9kcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPiB0aGF0IHJldHVybiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Rva2VuUHJvY2Vzc29yLmh0bWwiPlRva2VuUHJvY2Vzc29yPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sIj5Ub2tlblByb2Nlc3NvcjwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+VG9rZW5Qcm9jZXNzb3IuPC9CPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCNnZXRJbnN0YW5jZSgpIj5nZXRJbnN0YW5jZTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlcyB0aGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoaXMgY2xhc3MuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvVG9rZW5Qcm9jZXNzb3IuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVG9rZW5Qcm9jZXNzb3IuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1NTg4MzkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLWZyYW1lLmh0bWwKQEAgLTAsMCArMSw3NCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnV0aWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorPEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+PC9GT05UPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorQ2xhc3NlczwvRk9OVD4mbmJzcDsKKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij4KKzxCUj4KKzxBIEhSRUY9IkVycm9yTWVzc2FnZXMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5FcnJvck1lc3NhZ2VzPC9BPgorPEJSPgorPEEgSFJFRj0iR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5HZW5lcmljRGF0YVNvdXJjZTwvQT4KKzxCUj4KKzxBIEhSRUY9IkltYWdlQnV0dG9uQmVhbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkltYWdlQnV0dG9uQmVhbjwvQT4KKzxCUj4KKzxBIEhSRUY9Ikl0ZXJhdG9yQWRhcHRlci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkl0ZXJhdG9yQWRhcHRlcjwvQT4KKzxCUj4KKzxBIEhSRUY9IkxhYmVsVmFsdWVCZWFuLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TGFiZWxWYWx1ZUJlYW48L0E+Cis8QlI+Cis8QSBIUkVGPSJNZXNzYWdlUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TWVzc2FnZVJlc291cmNlczwvQT4KKzxCUj4KKzxBIEhSRUY9Ik1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+Cis8QlI+Cis8QSBIUkVGPSJQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0E+Cis8QlI+Cis8QSBIUkVGPSJQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4KKzxCUj4KKzxBIEhSRUY9IlJlcXVlc3RVdGlscy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlJlcXVlc3RVdGlsczwvQT4KKzxCUj4KKzxBIEhSRUY9IlJlc3BvbnNlVXRpbHMuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5SZXNwb25zZVV0aWxzPC9BPgorPEJSPgorPEEgSFJFRj0iU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TZXJ2bGV0Q29udGV4dFdyaXRlcjwvQT4KKzxCUj4KKzxBIEhSRUY9IlN0cnV0c1ZhbGlkYXRvci5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlN0cnV0c1ZhbGlkYXRvcjwvQT4KKzxCUj4KKzxBIEhSRUY9IlN0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5TdHJ1dHNWYWxpZGF0b3JVdGlsPC9BPgorPEJSPgorPEEgSFJFRj0iVG9rZW5Qcm9jZXNzb3IuaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Ub2tlblByb2Nlc3NvcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZUhlYWRpbmdGb250Ij4KK0V4Y2VwdGlvbnM8L0ZPTlQ+Jm5ic3A7Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+Cis8QlI+Cis8QSBIUkVGPSJBcHBFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5BcHBFeGNlcHRpb248L0E+Cis8QlI+Cis8QSBIUkVGPSJNb2R1bGVFeGNlcHRpb24uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5Nb2R1bGVFeGNlcHRpb248L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3NjBhZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbApAQCAtMCwwICsxLDUxOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnV0aWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbCAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+TkVYVCBQQUNLQUdFPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPEgyPgorUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy51dGlsCis8L0gyPgorVGhlIFV0aWxpdGllcyBwYWNrYWdlIHByb3ZpZGVzIGEgdmFyaWV0eSBvZiBmYW1pbGllcyBvZiBjbGFzc2VzLAordG8gc29sdmUgcHJvYmxlbXMgdGhhdCBhcmUgY29tbW9ubHkgZW5jb3VudGVyZWQgaW4gYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucy4KKzxQPgorPEI+U2VlOjwvQj4KKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxBIEhSRUY9IiNwYWNrYWdlX2Rlc2NyaXB0aW9uIj48Qj5EZXNjcmlwdGlvbjwvQj48L0E+Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJFcnJvck1lc3NhZ2VzLmh0bWwiPkVycm9yTWVzc2FnZXM8L0E+PC9CPjwvVEQ+Cis8VEQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMgaW5zdGVhZDwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkdlbmVyaWNEYXRhU291cmNlLmh0bWwiPkdlbmVyaWNEYXRhU291cmNlPC9BPjwvQj48L1REPgorPFREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBhIDxjb2RlPkJhc2ljRGF0YVNvdXJjZTwvY29kZT4gZGlyZWN0bHksIG9yIGluZGlyZWN0bHkKKyAgYWNxdWlyZSBhIGRhdGEgc291cmNlIHByb3ZpZGVkIGJ5IHlvdXIgY29udGFpbmVyPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iSW1hZ2VCdXR0b25CZWFuLmh0bWwiPkltYWdlQnV0dG9uQmVhbjwvQT48L0I+PC9URD4KKzxURD5BIHNpbXBsZSBKYXZhQmVhbiB0byBlbmNhcHN1bGF0ZSB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzIHNlbnQgZm9yIGFuIEhUTUwKKyBpbnB1dCBlbGVtZW50IG9mIHR5cGUgaW1hZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJJdGVyYXRvckFkYXB0ZXIuaHRtbCI+SXRlcmF0b3JBZGFwdGVyPC9BPjwvQj48L1REPgorPFREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjb21tb25zLWNvbGxlY3Rpb25zJyBJdGVyYXRvclV0aWxzLmFzSXRlcmF0b3IoRW51bWVyYXRpb24pLjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkxhYmVsVmFsdWVCZWFuLmh0bWwiPkxhYmVsVmFsdWVCZWFuPC9BPjwvQj48L1REPgorPFREPkEgc2ltcGxlIEphdmFCZWFuIHRvIHJlcHJlc2VudCBsYWJlbC12YWx1ZSBwYWlycy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9Ik1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT48L0I+PC9URD4KKzxURD5HZW5lcmFsIHB1cnBvc2UgYWJzdHJhY3QgY2xhc3MgdGhhdCBkZXNjcmliZXMgYW4gQVBJIGZvciByZXRyaWV2aW5nCisgTG9jYWxlLXNlbnNpdGl2ZSBtZXNzYWdlcyBmcm9tIHVuZGVybHlpbmcgcmVzb3VyY2UgbG9jYXRpb25zIG9mIGFuCisgdW5zcGVjaWZpZWQgZGVzaWduLCBhbmQgb3B0aW9uYWxseSB1dGlsaXppbmcgdGhlIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+CisgY2xhc3MgdG8gcHJvZHVjZSBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcyB3aXRoIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT48L0I+PC9URD4KKzxURD5GYWN0b3J5IGZvciA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj48L1REPgorPFREPkNvbmNyZXRlIHN1YmNsYXNzIG9mIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IHRoYXQgcmVhZHMgbWVzc2FnZSBrZXlzCisgYW5kIGNvcnJlc3BvbmRpbmcgc3RyaW5ncyBmcm9tIG5hbWVkIHByb3BlcnR5IHJlc291cmNlcyBpbiB0aGUgc2FtZSBtYW5uZXIKKyB0aGF0IDxjb2RlPmphdmEudXRpbC5Qcm9wZXJ0eVJlc291cmNlQnVuZGxlPC9jb2RlPiBkb2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9BPjwvQj48L1REPgorPFREPkZhY3RvcnkgZm9yIDxjb2RlPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW5zdGFuY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iUmVxdWVzdFV0aWxzLmh0bWwiPlJlcXVlc3RVdGlsczwvQT48L0I+PC9URD4KKzxURD5HZW5lcmFsIHB1cnBvc2UgdXRpbGl0eSBtZXRob2RzIHJlbGF0ZWQgdG8gcHJvY2Vzc2luZyBhIHNlcnZsZXQgcmVxdWVzdAorIGluIHRoZSBTdHJ1dHMgY29udHJvbGxlciBmcmFtZXdvcmsuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJSZXNwb25zZVV0aWxzLmh0bWwiPlJlc3BvbnNlVXRpbHM8L0E+PC9CPjwvVEQ+Cis8VEQ+R2VuZXJhbCBwdXJwb3NlIHV0aWxpdHkgbWV0aG9kcyByZWxhdGVkIHRvIGdlbmVyYXRpbmcgYSBzZXJ2bGV0IHJlc3BvbnNlCisgaW4gdGhlIFN0cnV0cyBjb250cm9sbGVyIGZyYW1ld29yay48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlNlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9BPjwvQj48L1REPgorPFREPkEgUHJpbnRXcml0ZXIgaW1wbGVtZW50YXRpb24gdGhhdCB1c2VzIHRoZSBsb2dnaW5nIGZhY2lsaXRpZXMgb2YgYQorIDxjb2RlPmphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ8L2NvZGU+IHRvIG91dHB1dCBpdHMgcmVzdWx0cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlN0cnV0c1ZhbGlkYXRvci5odG1sIj5TdHJ1dHNWYWxpZGF0b3I8L0E+PC9CPjwvVEQ+Cis8VEQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPjxDT0RFPkZpZWxkQ2hlY2tzPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJTdHJ1dHNWYWxpZGF0b3JVdGlsLmh0bWwiPlN0cnV0c1ZhbGlkYXRvclV0aWw8L0E+PC9CPjwvVEQ+Cis8VEQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+QXMgb2YgU3RydXRzIDEuMSwgcmVwbGFjZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sIj48Q09ERT5SZXNvdXJjZXM8L0NPREU+PC9BPjwvST48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlRva2VuUHJvY2Vzc29yLmh0bWwiPlRva2VuUHJvY2Vzc29yPC9BPjwvQj48L1REPgorPFREPlRva2VuUHJvY2Vzc29yIGlzIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyBhbGwgdG9rZW4gcmVsYXRlZCBmdW5jdGlvbmFsaXR5LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworCis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RXhjZXB0aW9uIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iQXBwRXhjZXB0aW9uLmh0bWwiPkFwcEV4Y2VwdGlvbjwvQT48L0I+PC9URD4KKzxURD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST51c2UgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Nb2R1bGVFeGNlcHRpb24uaHRtbCI+PENPREU+TW9kdWxlRXhjZXB0aW9uPC9DT0RFPjwvQT48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJNb2R1bGVFeGNlcHRpb24uaHRtbCI+TW9kdWxlRXhjZXB0aW9uPC9BPjwvQj48L1REPgorPFREPlVzZWQgZm9yIHNwZWNpYWxpemVkIGV4Y2VwdGlvbiBoYW5kbGluZy48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+Cis8QSBOQU1FPSJwYWNrYWdlX2Rlc2NyaXB0aW9uIj48IS0tIC0tPjwvQT48SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwgRGVzY3JpcHRpb24KKzwvSDI+CisKKzxQPgorVGhlIFV0aWxpdGllcyBwYWNrYWdlIHByb3ZpZGVzIGEgdmFyaWV0eSBvZiBmYW1pbGllcyBvZiBjbGFzc2VzLAordG8gc29sdmUgcHJvYmxlbXMgdGhhdCBhcmUgY29tbW9ubHkgZW5jb3VudGVyZWQgaW4gYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucy4KKzxicj48YnI+Cis8YSBuYW1lPSJkb2MuRGVzY3JpcHRpb24iPjwvYT4KKzxkaXYgYWxpZ249ImNlbnRlciI+Cis8YSBocmVmPSIjZG9jLkludHJvIj5bSW50cm9kdWN0aW9uXTwvYT4KKzxhIGhyZWY9IiNkb2MuQmVhbnMiPltCZWFuc108L2E+Cis8YSBocmVmPSIjZG9jLlV0aWxpdGllcyI+W1NlcnZsZXQgVXRpbGl0aWVzXTwvYT4KKzxhIGhyZWY9IiNkb2MuTWVzc2FnZXMiPltNZXNzYWdlIFJlc291cmNlc108L2E+Cis8L2Rpdj4KKworPGhyPgorCis8YSBuYW1lPSJkb2MuSW50cm8iPjwvYT4KKzxoMz5JbnRyb2R1Y3Rpb248L2gzPgorCis8cD5UaGUgU3RydXRzIFV0aWxpdGllcyBQYWNrYWdlIG9mZmVycyBzZXZlcmFsIGZhbWlsaWVzCitvZiBjbGFzc2VzIHRoYXQgYXNzaXN0IGluIHNvbHZpbmcgY29tbW9ubHkgZW5jb3VudGVyZWQgcHJvYmxlbXMgd2hlbiBidWlsZGluZword2ViIGFwcGxpY2F0aW9ucy4gIE1vc3Qgb2YgdGhlIGNsYXNzZXMgaW4gdGhpcyBwYWNrYWdlIGRvIG5vdCByZWx5IG9uIHRoZQorY29udHJvbGxlciBzZXJ2bGV0IGZyYW1ld29yaywgb3IgdGhlIGN1c3RvbSB0YWcgbGlicmFyaWVzLCBzbyB0aGV5IGFyZSBhbHNvCitzdWl0YWJsZSBmb3IgZ2VuZXJhbCBKYXZhIGFwcGxpY2F0aW9uIHByb2dyYW1taW5nLiAgVGhlIGZvbGxvd2luZyBmYW1pbGllcworYXJlIGluY2x1ZGVkOjwvcD4KKzx1bD4KKzxsaT48YSBocmVmPSIjZG9jLkJlYW5zIj5CZWFuczwvYT4gLSBBIHNtYWxsIHNldCBvZiB1dGlsaXR5IGJlYW5zIHVzZWZ1bCBmb3IgCisgICAgZW5jYXBzdWxhdGluZyBmb3JtIGVsZW1lbnRzLjwvbGk+Cis8bGk+PGEgaHJlZj0iI2RvYy5VdGlsaXRpZXMiPlNlcnZsZXQgVXRpbGl0aWVzPC9hPiAtIEEgc2V0IG9mIGNsYXNzZXMgdXNlZnVsCisgICAgZm9yIHdvcmtpbmcgd2l0aCBzZXJ2bGV0LXJlbGF0ZWQgY2xhc3Nlcy48L2xpPgorPGxpPjxhIGhyZWY9IiNkb2MuTWVzc2FnZXMiPk1lc3NhZ2UgUmVzb3VyY2VzPC9hPiAtIEEgZmFtaWx5IG9mIGNsYXNzZXMgdGhhdAorICAgIGZlYXR1cmVzIGFjY2VzcyB0byBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlIHN0cmluZ3MgYmFzZWQgb24gYSBtZXNzYWdlCisgICAga2V5IGNvdXBsZWQgd2l0aCBhIDxjb2RlPmphdmEudXRpbC5Mb2NhbGU8L2NvZGU+IG9iamVjdCByZXByZXNlbnRpbmcgYQorICAgIHBhcnRpY3VsYXIgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZS48L2xpPgorPC91bD4KKworPGhyPgorCis8YSBuYW1lPSJkb2MuQmVhbnMiPjwvYT4KKzxoMz5CZWFuczwvaDM+CisKKzxwPiBUaGUgPGNvZGU+SW1hZ2VCdXR0b25CZWFuPC9jb2RlPiBpcyBhIHNpbXBsZSBKYXZhQmVhbiB0byBlbmNhcHN1bGF0ZSB0aGUgCisgICAgcmVxdWVzdCBwYXJhbWV0ZXJzIHNlbnQgZm9yIGFuIEhUTUwgaW5wdXQgZWxlbWVudCBvZiB0eXBlIGltYWdlLiBUaGUgCisgICAgPGNvZGU+TGFiZWxWYWx1ZUJlYW48L2NvZGU+IGlzIGEgc2ltcGxlIEphdmFCZWFuIHRvIHJlcHJlc2VudCBsYWJlbC12YWx1ZSAKKyAgICBwYWlycywgZXNwZWNpYWxseSB1c2VmdWwgZm9yIGh0bWwgb3B0aW9uIGVsZW1lbnRzLgorPC9wPgorCis8aHI+CisKKzxhIG5hbWU9ImRvYy5VdGlsaXRpZXMiPjwvYT4KKzxoMz5TZXJ2bGV0IFV0aWxpdGllczwvaDM+CisKKzxwPiBUaGUgPGNvZGU+UmVxdWVzdFV0aWxzPC9jb2RlPiBpcyBhIGdlbmVyYWwgcHVycG9zZSB1dGlsaXR5IG1ldGhvZHMgCisgICAgcmVsYXRlZCB0byBwcm9jZXNzaW5nIGEgc2VydmxldCByZXF1ZXN0LiBUaGUgPGNvZGU+UmVzcG9uc2VVdGlsczwvY29kZT4KKyAgICBpcyBhIGdlbmVyYWwgcHVycG9zZSB1dGlsaXR5IG1ldGhvZHMgcmVsYXRlZCB0byBnZW5lcmF0aW5nIGEgc2VydmxldCAKKyAgICByZXNwb25zZS4gVGhlIDxjb2RlPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9jb2RlPiBpcyBhIFByaW50V3JpdGVyIAorICAgIGltcGxlbWVudGF0aW9uIHRoYXQgdXNlcyB0aGUgbG9nZ2luZyBmYWNpbGl0aWVzIG9mIGEgCisgICAgPGNvZGU+amF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDwvY29kZT4gdG8gb3V0cHV0IGl0cyByZXN1bHRzLgorPC9wPgorCis8aHI+CisKKzxhIG5hbWU9ImRvYy5NZXNzYWdlcyI+PC9hPgorPGgzPk1lc3NhZ2UgUmVzb3VyY2VzPC9oMz4KKworPGg1PkJhY2tncm91bmQ8L2g1PgorCis8cD5Nb2Rlcm4gYXBwbGljYXRpb25zIG9mdGVuIGluY2x1ZGUgdGhlIHJlcXVpcmVtZW50IHRvIHN1cHBvcnQgbXVsdGlwbGUKK2xhbmd1YWdlcywgZm9yIHVzZXJzIHdobyBwcmVmZXIgdG8gaW50ZXJhY3QgaW4gYSBsYW5ndWFnZSBvdGhlciB0aGFuIHRoZQorZGVmYXVsdCBsYW5ndWFnZSBjb25maWd1cmVkIG9uIHRoZSBzZXJ2ZXIgcGxhdGZvcm0uICBJbiBhZGRpdGlvbiwgc2VudGVuY2VzCitvZnRlbiBuZWVkIHRvIGJlIGNvbnN0cnVjdGVkLCB3aXRoIGR5bmFtaWMgY29udGVudCB3aG9zZSBwbGFjZW1lbnQgaW4gdGhlCittZXNzYWdlIGRlcGVuZHMgb24gdGhlIHN0YW5kYXJkIHNlbnRlbmNlIHN0cnVjdHVyZSBpbiB0aGF0IHBhcnRpY3VsYXIKK2xhbmd1YWdlLjwvcD4KKworPHA+VGhlIHN0YW5kYXJkIEphdmEgcGxhdGZvcm0gaW5jbHVkZXMgYSBmYW1pbHkgb2YgY2xhc3NlcworKDxjb2RlPmphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTwvY29kZT4pIGRlc2lnbmVkIHRvIHN1cHBvcnQgbG9va2luZyB1cCBtZXNzYWdlCitzdHJpbmdzIGJhc2VkIG9uIGEgc3RhbmRhcmQgImtleSIuICBUaGUgcmVzb3VyY2UgYnVuZGxlIGNsYXNzZXMgYXV0b21hdGljYWxseQorYWNjZXNzIGEgSmF2YSBjbGFzcyAob3IgcHJvcGVydGllcyBmaWxlKSB0aGF0IGlzIG5hbWVkIHdpdGggYSBuYW1pbmcKK2NvbnZlbnRpb24gdGhhdCBpbmNsdWRlcyB0aGUgTG9jYWxlIHRvIHdoaWNoIG1lc3NhZ2VzIGluIHRoYXQgY2xhc3MgKG9yIGZpbGUpCitwZXJ0YWluLiAgSG93ZXZlciwgdGhpcyBzZWxlY3Rpb24gaXMgYmFzZWQgb25seSBvbiB0aGUgZGVmYXVsdCBMb2NhbGUgb2YgdGhlCitzZXJ2ZXIgcGxhdGZvcm0sIGFuZCBjYW5ub3QgYmUgYWRqdXN0ZWQgb24gYSBwZXItdXNlciBiYXNpcyBhcyByZXF1aXJlZCBmb3IgYW4KK2ludGVybmF0aW9uYWxpemVkIHdlYiBhcHBsaWNhdGlvbi48L3A+CisKKzxwPlN0cnV0cyBpbmNsdWRlcyBhIGZhbWlseSBvZiBjbGFzc2VzCisoPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPikgdGhhdCBleHRlbmRzIHRoZSBiYXNpYworYXBwcm9hY2ggdG8gbG9va2luZyB1cCBtZXNzYWdlIHN0cmluZ3MgYnkga2V5LCBhbGxvd2luZyB5b3UgdG8gb3B0aW9uYWxseQorc3BlY2lmeSBhIExvY2FsZSBhbG9uZyB3aXRoIHRoZSBrZXkuICBJbiB0aGlzIHdheSwgeW91IGNhbiBidWlsZCBhcHBsaWNhdGlvbnMKK3RoYXQgbGV0IHlvdXIgdXNlcnMgc2VsZWN0IHdoaWNoIExvY2FsZSB0aGV5IHdpc2ggdG8gb3BlcmF0ZSB3aXRoaW4sIGFuZCB0aGVuCitsb29rIHVwIG1lc3NhZ2VzIGluIHRoYXQgbGFuZ3VhZ2UgLSB1c2luZyB0aGUgc2FtZSBtZXNzYWdlIGtleXMgbm8gbWF0dGVyIHdoYXQKK2xhbmd1YWdlIGlzIHNlbGVjdGVkLjwvcD4KKworPHA+SW4gYWRkaXRpb24gdG8gc3VwcG9ydGluZyBkeW5hbWljIHNlbGVjdGlvbiBvZiBhIExvY2FsZSBmb3IgbWVzc2FnZSBsb29rdXAsCit0aGUgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gZmFtaWx5IG9mIGNsYXNzZXMgb3B0aW9uYWxseSBhbGxvdyB5b3UgdG8KK3NwZWNpZnkgdXAgdG8gZm91ciBwYXJhbWV0ZXIgcmVwbGFjZW1lbnQgb2JqZWN0cywgd2hpY2ggYXJlIHVzZWQgdG8gcmVwbGFjZSB0aGUKK3BhcmFtZXRlciBwbGFjZWhvbGRlcnMgInswfSIgdGhyb3VnaCAiezN9IiBpbiB0aGUgcmV0cmlldmVkIG1lc3NhZ2UuICBUaGlzCityZXBsYWNlbWVudCB1c2VzIHRoZSBmYWNpbGl0aWVzIG9mIHRoZSBzdGFuZGFyZCBKYXZhCis8Y29kZT5qYXZhLnRleHQuTWVzc2FnZUZvcm1hdDwvY29kZT4gY2xhc3MsIHdoaWNoIHN1cHBvcnRzIG1hbnkgZXh0ZW5kZWQKK2Zvcm1hdHRpbmcgY2FwYWJpbGl0aWVzIGFzIHdlbGwuPC9wPgorCis8cD5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcywgY29uc3VsdCB0aGUgZm9sbG93aW5nCityZXNvdXJjZXMgaW4geW91ciBKYXZhIERldmVsb3BtZW50IEtpdCBkb2N1bWVudGF0aW9uIGJ1bmRsZTo8L3A+Cis8dWw+Cis8bGk+PGVtPkludGVybmF0aW9uYWxpemF0aW9uIEluZm88L2VtPiAtIEdlbmVyYWwgaW5mb3JtYXRpb24gb24gSmF2YSdzIHN0YW5kYXJkCisgICAgc3VwcG9ydCBmb3IgaW50ZXJuYXRpb25hbGl6ZWQgYXBwbGljYXRpb25zIGNhbiBiZSBmb3VuZCBhdAorICAgIDxjb2RlPiZsdDskSkFWQV9IT01FL2RvY3MvZ3VpZGUvaW50ZXJuYXQvaW5kZXguaHRtbCZndDs8L2NvZGU+LgorICAgIFRoZSAiSW50ZXJuYXRpb25hbGl6YXRpb24gT3ZlcnZpZXciIHNlY3Rpb24gaW5jbHVkZXMgdXNlZnVsIGluZm9ybWF0aW9uCisgICAgYWJvdXQgTG9jYWxlcywgbG9jYWxpemVkIHJlc291cmNlcywgbWVzc2FnZSBmb3JtYXR0aW5nLCBhbmQgb3RoZXIKKyAgICByZWxldmFudCB0b3BpY3MuPC9saT4KKzxsaT48ZW0+SW50ZXJuYXRpb25hbGl6YXRpb24gVHV0b3JpYWw8L2VtPiAtIFRoZSBKYXZhIExhbmd1YWdlIFR1dG9yaWFsIGhhcyBhCisgICAgY29tcHJlaGVuc2l2ZSB0cmFpbCBjb3ZlcmluZyBpbnRlcm5hdGlvbmFsaXphdGlvbiwgYXZhaWxhYmxlIGF0OgorICAgIDxhIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vZG9jcy9ib29rcy90dXRvcmlhbC9pMThuL2luZGV4Lmh0bWwiPgorICAgIGh0dHA6Ly9qYXZhLnN1bi5jb20vZG9jcy9ib29rcy90dXRvcmlhbC9pMThuL2luZGV4Lmh0bWw8L2E+LjwvbGk+Cis8bGk+PGVtPkphdmFkb2MgQVBJczwvZW0+IC0gWW91IHdpbGwgd2FudCB0byBjb25zdWx0IHRoZSBKYXZhZG9jIEFQSQorICAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBmb2xsb3dpbmcgc3RhbmRhcmQgSmF2YSBjbGFzc2VzOgorICAgIDx1bD4KKyAgICA8bGk+PGNvZGU+amF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQ8L2NvZGU+CisgICAgPGxpPjxjb2RlPmphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTwvY29kZT4KKyAgICA8bGk+PGNvZGU+amF2YS51dGlsLlByb3BlcnR5UmVzb3VyY2VCdW5kbGU8L2NvZGU+CisgICAgPGxpPjxjb2RlPmphdmEudXRpbC5Qcm9wZXJ0aWVzPC9jb2RlPiAtIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlCisgICAgICAgIDxjb2RlPmxvYWQoKTwvY29kZT4gbWV0aG9kIGZvciB0aGUgdmFsaWQgc3ludGF4IG9mIHByb3BlcnRpZXMgZmlsZXMKKyAgICAgICAgdGhhdCB5b3UgcHJlcGFyZS48L2xpPgorICAgIDwvdWw+PC9saT4KKzwvdWw+CisKKzxoNT5Vc2luZyB0aGUgU3RhbmRhcmQgTWVzc2FnZVJlc291cmNlcyBJbXBsZW1lbnRhdGlvbjwvaDU+CisKKzxwPlRoZSBzdGFuZGFyZCA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBpbXBsZW1lbnRhdGlvbiBwcm92aWRlZCBieSB0aGUKK1N0cnV0cyBsaWJyYXJ5IHVzZXMgSmF2YSBwcm9wZXJ0aWVzIGZpbGVzIHRvIGluaXRpYWxpemUgbWVzc2FnZSBzdHJpbmdzLCBpbiBhCittYW5uZXIgdmVyeSBzaW1pbGFyIHRvIHRoYXQgc3VwcG9ydGVkIGJ5IHRoZQorPGNvZGU+amF2YS51dGlsLlByb3BlcnR5UmVzb3VyY2VCdW5kbGU8L2NvZGU+IGNsYXNzLiAgVGhlIGZvbGxvd2luZyBzdGVwcyBhcmUKK3JlcXVpcmVkIHRvIHVzZSB0aGVzZSBmYWNpbGl0aWVzIGluIHlvdXIgSmF2YSBhcHBsaWNhdGlvbi48L3A+CisKKzxwPkZpcnN0LCBwcmVwYXJlIGEgSmF2YSBwcm9wZXJ0aWVzIGZpbGUgZm9yIGVhY2ggbGFuZ3VhZ2UgKG9yIExvY2FsZSkgaW4gd2hpY2gKK3lvdSB3aXNoIHRvIHN1cHBvcnQgeW91ciBtZXNzYWdlcy4gIFRoZSBmaWxlbmFtZXMgeW91IHVzZSBtdXN0IGNvbmZvcm0gdG8gdGhlCituYW1pbmcgY29udmVudGlvbiBmb3IgcHJvcGVydHkgcmVzb3VyY2UgYnVuZGxlcywgYXMgZGVzY3JpYmVkIGluIHRoZQorZG9jdW1lbnRhdGlvbiByZWZlcmVuY2VkIGFib3ZlLiAgQmUgc3VyZSB5b3UgdXNlIHRoZSBzYW1lIG1lc3NhZ2Uga2V5cyBpbiBlYWNoCitmaWxlIHRvIGlkZW50aWZ5IHRoZSBzYW1lIG1lc3NhZ2UuPC9wPgorCis8cD5Gb3IgZXhhbXBsZSwgeW91IG1pZ2h0IHByZXBhcmUgZmlsZXMgaW4gRnJlbmNoLCBTcGFuaXNoLCBhbmQgRW5nbGlzaCB0aGF0Citjb250YWluIGxhbmd1YWdlLXNwZWNpZmljIHZlcnNpb25zIG9mIHRoZSB3b3JkICJIZWxsbyIuICBUaGUgRnJlbmNoIGZpbGUgd291bGQKK2JlIG5hbWVkIDxjb2RlPk1lc3NhZ2VzX2ZyLnByb3BlcnRpZXM8L2NvZGU+IGFuZCBjb250YWluIHRoZSBmb2xsb3dpbmc6PC9wPgorPHByZT4KKyAgICBoaT1Cb25qb3VyCis8L3ByZT4KKzxwPndoaWxlIHRoZSBTcGFuaXNoIGFuZCBFbmdsaXNoIGZpbGVzIHdvdWxkIGJlIG5hbWVkCis8Y29kZT5NZXNzYWdlc19lcy5wcm9wZXJ0aWVzPC9jb2RlPiBhbmQgPGNvZGU+TWVzc2FnZXNfZW4ucHJvcGVydGllczwvY29kZT4KK3Jlc3BlY3RpdmVseS4gIFRoZSBjb3JyZXNwb25kaW5nIG1lc3NhZ2Ugc3RyaW5nIGRlZmluaXRpb25zIHdvdWxkIHNheQorPGNvZGU+aGk9SG9sYTwvY29kZT4gYW5kIDxjb2RlPmhpPUhlbGxvPC9jb2RlPiBpbiB0aGVzZSBmaWxlcy48L3A+CisKKzxwPlNlY29uZCwgcGxhY2UgdGhlc2UgcHJvcGVydGllcyBmaWxlcyBpbnRvIHRoZSBjbGFzcyBwYXRoIGZvciB5b3VyCithcHBsaWNhdGlvbiwgZXhhY3RseSBhcyB5b3Ugd291bGQgd2l0aCBjbGFzcyBmaWxlcyB0aGVtc2VsdmVzLiAgVGhlIG5hbWUKK2FjdHVhbGx5IHVzZWQgdG8gbG9hZCByZXNvdXJjZXMgd2lsbCBsb29rIGxpa2UgYSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcworbmFtZSAod2l0aCBhcHByb3ByaWF0ZSBwYWNrYWdlIHByZWZpeGVzKSwgc28gdGhlIGZpbGUgc2hvdWxkIGJlIG5lc3RlZCBpbnNpZGUKK2EgZGlyZWN0b3J5IHN0cnVjdHVyZSB0aGF0IG1hdGNoZXMgdGhlIHBhY2thZ2luZyAoZWl0aGVyIGluIGFuIHVucGFja2VkCitkaXJlY3RvcnksIG9yIHdpdGhpbiBhIEpBUiBmaWxlLCBhcyBhcHByb3ByaWF0ZSkuICBGb3IgZXhhbXBsZSwgYXNzdW1lIHlvdQorcGxhY2UgZGlyZWN0b3J5ICJmb28iIG9uIHlvdXIgY2xhc3NwYXRoLCBhbmQgc3RvcmVkIHRoZSBhYm92ZSBwcm9wZXJ0aWVzIGZpbGVzCitpbiBkaXJlY3RvcnkgImZvby9jb20vbXljb21wYW55L215cGFja2FnZSIuICAoSWYgeW91IHdlcmUgdXNpbmcgYSBKQVIgZmlsZSBsaWtlCisiZm9vLmphciIgaW5zdGVhZCwgdGhlIGZpbGVzIHdvdWxkIGJlIGluIGRpcmVjdG9yeSAiY29tL215Y29tcGFueS9teXBhY2thZ2UiCit3aXRoaW4gdGhlIEpBUiBmaWxlKS4KKworPHA+VGhpcmQsIGluaXRpYWxpemUgYSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBvYmplY3QgdGhhdCBjb3JyZXNwb25kcwordG8gdGhlIHNldCBvZiBwcm9wZXJ0aWVzIGZpbGVzIGZvciBhIHBhcnRpY3VsYXIgbmFtZSwgd2l0aGluIGEgcGFydGljdWxhcgorcGFja2FnZS4gIFRoZSBlYXNpZXN0IHdheSB0byBkbyB0aGlzIGlzIHRvIGluaXRpYWxpemUgYSB2YXJpYWJsZSBpbiB5b3VyIG1haW4KK2FwcGxpY2F0aW9uIGNsYXNzLCBsaWtlIHRoaXM6PC9wPgorPHByZT4KKyAgICBwdWJsaWMgc3RhdGljIE1lc3NhZ2VSZXNvdXJjZXMgbWVzc2FnZXMgPQorICAgICBNZXNzYWdlUmVzb3VyY2VzLmdldE1lc3NhZ2VSZXNvdXJjZXMoImNvbS5teWNvbXBhbnkubXlwYWNrYWdlLk1lc3NhZ2VzIik7Cis8L3ByZT4KKworPHA+Tm90ZSB0aGF0IHRoZSAiY29tLm15Y29tcGFueS5teXBhY2thZ2UiIHBhcnQgb2YgdGhlIG5hbWUgbWF0Y2hlcyB0aGUgcGFja2FnZQorZGlyZWN0b3J5IGludG8gd2hpY2ggeW91IHBsYWNlZCB5b3VyIHByb3BlcnRpZXMgZmlsZXMsIGFuZCAiTWVzc2FnZXMiIGlzIHRoZQorZmlsZW5hbWUgcHJlZml4IGZvciB0aGUgcGFydGljdWxhciBmYW1pbHkgb2YgcHJvcGVydGllcyBmaWxlcyBzdXBwb3J0ZWQgYnkgdGhpcworPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW5zdGFuY2UuICBEZXBlbmRpbmcgb24geW91ciBkZXZlbG9wbWVudCBwcm9jZXNzLAoreW91IG1pZ2h0IGZpbmQgaXQgY29udmVuaWVudCB0byBzdG9yZSBhbGwgbWVzc2FnZSBzdHJpbmdzIGZvciBhbiBlbnRpcmUKK2FwcGxpY2F0aW9uIGluIGEgc2luZ2xlIHByb3BlcnRpZXMgZmlsZSBmYW1pbHksIG9yIHRvIGhhdmUgc2V2ZXJhbCBmYW1pbGllcyAtCitpbiBTdHJ1dHMsIGZvciBleGFtcGxlLCB0aGVyZSBpcyBhIGZhbWlseSBvZiBwcm9wZXJ0aWVzIGZpbGVzIGZvciBlYWNoIEphdmEKK3BhY2thZ2UuPC9wPgorCis8cD5UbyBhY2Nlc3MgYSBtZXNzYWdlIHN0cmluZyB3aXRoIGEgcGFydGljdWxhciBMb2NhbGUsIGV4ZWN1dGUgYSBzdGF0ZW1lbnQKK2xpa2UgdGhpczo8L3A+Cis8cHJlPgorICAgIExvY2FsZSBsb2NhbGUgPSAuLi4gc2VsZWN0IHRoZSBsb2NhbGUgdG8gYmUgdXNlZCAuLi4KKyAgICBTdHJpbmcgbWVzc2FnZSA9IG1lc3NhZ2VzLmdldE1lc3NhZ2UobG9jYWxlLCAiaGkiKTsKKzwvcHJlPgorCis8cD5JbiB0aGlzIGNhc2UsIHRoZSB2YXJpYWJsZSA8Y29kZT5tZXNzYWdlPC9jb2RlPiB3aWxsIGNvbnRhaW4gdGhlIG1lc3NhZ2UKK3N0cmluZyBjb3JyZXNwb25kaW5nIHRvIHRoZSBrZXkgImhpIiwgaW4gdGhlIGxhbmd1YWdlIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlCitsb2NhbGUgdGhhdCB3YXMgc2VsZWN0ZWQuPC9wPgorCis8cD5Gb3IgYW4gZXhhbXBsZSBvZiBtZXNzYWdlIGZvcm1hdHRpbmcgd2l0aCByZXBsYWNlYWJsZSBwYXJhbWV0ZXJzLCBhc3N1bWUKK3RoYXQgdGhlIG1lc3NhZ2Ugc3RyaW5ncyBsb29rZWQgbGlrZSB0aGlzLCBpbnN0ZWFkIChvbmx5IHRoZSBFbmdsaXNoIHZlcnNpb24KK2lzIHNob3duIC0gY29ycmVzcG9uZGluZyBjaGFuZ2VzIHdvdWxkIGJlIG1hZGUgaW4gdGhlIG90aGVyIGZpbGVzKTo8L3A+Cis8cHJlPgorICAgIGhpPUhlbGxvIHswfQorPC9wcmU+CisKKzxwPk5vdywgeW91IGNhbiBwZXJzb25hbGl6ZSB0aGUgcmV0cmlldmVkIG1lc3NhZ2UgbGlrZSB0aGlzOjwvcD4KKzxwcmU+CisgICAgTG9jYWxlIGxvY2FsZSA9IC4uLiBzZWxlY3QgdGhlIGxvY2FsZSB0byBiZSB1c2VkIC4uLgorICAgIFN0cmluZyBuYW1lID0gIkpvZSI7CisgICAgU3RyaW5nIG1lc3NhZ2UgPSBtZXNzYWdlcy5nZXRNZXNzYWdlKGxvY2FsZSwgImhpIiwgbmFtZSk7Cis8L3ByZT4KKworPHA+YW5kIHRoZSBtYXJrZXIgInswfSIgd2lsbCBoYXZlIGJlZW4gcmVwbGFjZWQgYnkgdGhlIHNwZWNpZmllZCBuYW1lIChKb2UpLAorbm8gbWF0dGVyIHdoaWNoIGxhbmd1YWdlIGlzIGluIHVzZS4gIFNlZSB0aGUgSmF2YURvYyBBUEkgZG9jdW1lbnRhdGlvbiBmb3IgdGhlCis8Y29kZT5qYXZhLnRleHQuTWVzc2FnZUZvcm1hdDwvY29kZT4gY2xhc3MgZm9yIG1vcmUgYWR2YW5jZWQgdXNlcyBvZiB0aGUKK3BhcmFtZXRlciByZXBsYWNlbWVudCBtZWNoYW5pc20uPC9wPgorCis8aDU+RGV2ZWxvcGluZyBZb3VyIE93biBNZXNzYWdlUmVzb3VyY2VzIEltcGxlbWVudGF0aW9uPC9oNT4KKworPHA+SW4gdGhlIGFib3ZlIGV4YW1wbGUsIHdlIHdlcmUgdXNpbmcgdGhlIGRlZmF1bHQKKzxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGltcGxlbWVudGF0aW9uIHN1cHBsaWVkIGJ5IFN0cnV0cywgd2hpY2ggdXNlcworcHJvcGVydHkgZmlsZXMgdG8gc3RvcmUgdGhlIG1lc3NhZ2Ugc3RyaW5ncy4gIEl0IGlzIGFsc28gcG9zc2libGUgdG8gY3JlYXRlCitjdXN0b21pemVkIG1lY2hhbmlzbXMgdG8gcmV0cmlldmUgbWVzc2FnZXMgKHN1Y2ggYXMgbG9hZGluZyB0aGVtIG9uIGRlbWFuZAorZnJvbSBhIGRhdGFiYXNlKS4gIFRoZSBzdGVwcyByZXF1aXJlZCBhcmUgYXMgZm9sbG93czo8L3A+Cis8dWw+Cis8bGk+Q3JlYXRlIGEgY3VzdG9taXplZCBzdWJjbGFzcyBvZgorICAgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlczwvY29kZT4gdGhhdCBpbXBsZW1lbnRzCisgICAgbWVzc2FnZSBsb29rdXAgb3BlcmF0aW9ucyBhcyB5b3UgcmVxdWlyZS48L2xpPgorPGxpPkNyZWF0ZSBhIGN1c3RvbWl6ZWQgc3ViY2xhc3Mgb2YKKyAgICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiB0aGF0IHdpbGwKKyAgICBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgeW91ciBjdXN0b20gPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gY2xhc3MKKyAgICB3aGVuIHRoZSA8Y29kZT5jcmVhdGVSZXNvdXJjZXM8L2NvZGU+IG1ldGhvZCBpcyBjYWxsZWQuICBOb3RlIHRoYXQgdGhlCisgICAgImNvbmZpZyIgYXJndW1lbnQgdG8gdGhpcyBtZXRob2QgY2FuIGJlIHVzZWQgdG8gc2VsZWN0IGZhbWlsaWVzIG9mCisgICAgbWVzc2FnZXMgaW4gYW55IG1hbm5lciBhcHByb3ByaWF0ZSB0byB5b3VyIG5lZWRzIC0geW91IGFyZSBub3QgcmVxdWlyZWQKKyAgICB0byBlbXVsYXRlIHRoZSAiZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSIgYXBwcm9hY2ggdGhhdCBpcyB1c2VkCisgICAgYnkgdGhlIHN0YW5kYXJkIDxjb2RlPlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGNsYXNzLjwvbGk+Cis8bGk+VGVsbCB0aGUgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGNsYXNzIHRoZSBuYW1lIG9mIHRoZQorICAgIGN1c3RvbWl6ZWQgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGltcGxlbWVudGF0aW9uIHRvIHVzZQorICAgIHdoZW4gY3JlYXRpbmcgbmV3IGZhY3RvcnkgaW5zdGFuY2VzLjwvbGk+Cis8bGk+Q3JlYXRlIGEgbmV3IGZhY3RvcnkgaW5zdGFuY2UuPC9saT4KKzxsaT5Bc2sgdGhlIG5ldyBmYWN0b3J5IGluc3RhbmNlIHRvIGNyZWF0ZSBhIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+CisgICAgaW5zdGFuY2UgZm9yIHlvdS48L2xpPgorPC91bD4KKworPHA+QSBjb2RlIGV4YW1wbGUgdGhhdCBpbGx1c3RyYXRlcyB0aGlzIHRlY2huaXF1ZSBpczo8L3A+Cis8cHJlPgorICAgIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LnNldEZhY3RvcnlDbGFzcygiY29tLm15Y29tcGFueS5teXBrZy5NeUZhY3RvcnkiKTsKKyAgICBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSBmYWN0b3J5ID0gTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuY3JlYXRlRmFjdG9yeSgpOworICAgIE1lc3NhZ2VSZXNvdXJjZXMgcmVzb3VyY2VzID0KKyAgICAgZmFjdG9yeS5jcmVhdGVSZXNvdXJjZXMoImNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24iKTsKKzwvcHJlPgorCis8cD5PbmNlIHlvdSBoYXZlIGNyZWF0ZWQgeW91ciBjdXN0b20gTWVzc2FnZVJlc291cmNlcyBpbnN0YW5jZSwgeW91IHV0aWxpemUgaXQKK3RvIGFjY2VzcyBtZXNzYWdlIHN0cmluZ3MgKHdpdGggb3Igd2l0aG91dCBwYXJhbWV0ZXIgcmVwbGFjZW1lbnQgb2JqZWN0cyksCitleGFjdGx5IGFzIHdlIGlsbHVzdHJhdGVkIHdpdGggdGhlIHN0YW5kYXJkIGltcGxlbWVudGF0aW9uIGluIHRoZSBwcmV2aW91cworc2VjdGlvbi48L3A+CisKKzxoNT5Vc2luZyBNZXNzYWdlUmVzb3VyY2VzIFdpdGggU3RydXRzPC9oNT4KKworPHA+SWYgeW91ciBhcHBsaWNhdGlvbiB1c2VzIHRoZSBTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0LCB5b3UgY2FuIG9wdGlvbmFsbHkKK2NvbmZpZ3VyZSBTdHJ1dHMgdG8gbG9hZCBhbiBhcHBsaWNhdGlvbi1zcGVjaWZpYyBtZXNzYWdlIHJlc291cmNlcyBpbnN0YW5jZSBmb3IKK3lvdSwgYW5kIG1ha2UgaXQgYXZhaWxhYmxlIGFzIGEgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSAoaW4gSlNQIHRlcm1zLCBhbgorYXBwbGljYXRpb24tc2NvcGUgYmVhbikuICBUaGlzIG1lY2hhbmlzbSBpcyBtYW5hZ2VkIGJ5IHNldHRpbmcgdGhlIGZvbGxvd2luZworc2VydmxldCBpbml0aWFsaXphdGlvbiBwYXJhbWV0ZXJzIGluIHRoZSB3ZWIgYXBwbGljYXRpb24gZGVwbG95bWVudCBkZXNjcmlwdG9yOgorPC9wPgorPHVsPgorPGxpPjxzdHJvbmc+YXBwbGljYXRpb248L3N0cm9uZz4gLSBUaGUgY29uZmlndXJhdGlvbiBzdHJpbmcgdGhhdCB3aWxsIGJlCisgICAgcGFzc2VkIHRvIHRoZSA8Y29kZT5jcmVhdGVSZXNvdXJjZXMoKTwvY29kZT4gbWV0aG9kIG9mIHRoZSBtZXNzYWdlCisgICAgcmVzb3VyY2VzIGZhY3RvcnksIGluIG9yZGVyIHRvIGlkZW50aWZ5IHRoZSBmYW1pbHkgb2YgcmVzb3VyY2VzIHRvIGJlCisgICAgc3VwcG9ydGVkLiAgSWYgeW91IHVzZSB0aGUgc3RhbmRhcmQgbWVzc2FnZSByZXNvdXJjZXMgZmFjdG9yeSwgdGhpcyBtdXN0CisgICAgYmUgdGhlIGJhc2UgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHByb3BlcnR5IHJlc291cmNlcyBmaWxlcyB1c2VkCisgICAgdG8gY29udGFpbiB0aGVzZSBtZXNzYWdlcywgYXMgaWxsdXN0cmF0ZWQgYWJvdmUuPC9saT4KKzxsaT48c3Ryb25nPmZhY3Rvcnk8L3N0cm9uZz4gLSBGdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZQorICAgIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiB0byBiZSB1c2VkLiAgQnkgZGVmYXVsdCwgdGhlIHN0YW5kYXJkCisgICAgaW1wbGVtZW50YXRpb24gcHJvdmlkZWQgYnkgU3RydXRzCisgICAgKDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4pCisgICAgd2lsbCBiZSB1c2VkLjwvbGk+Cis8L3VsPgorCis8cD5TdHJ1dHMgcHJvdmlkZXMgc2V2ZXJhbCBKU1AgY3VzdG9tIHRhZ3MgdGhhdCBhc3N1bWUgdGhlIGV4aXN0ZW5jZSBvZiBhCis8Y29kZT5qYXZhLnV0aWwuTG9jYWxlPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIHVzZXIncyBzZXNzaW9uLCB1bmRlciB0aGUga2V5CituYW1lZCBieSB0aGUgY29uc3RhbnQgc3RyaW5nIHZhbHVlIG9mIDxjb2RlPkFjdGlvbi5MT0NBTEVfS0VZPC9jb2RlPi4gIFlvdXIgb3duCithcHBsaWNhdGlvbiBsb2dpYyBjYW4gc2V0IHRoaXMgYXR0cmlidXRlIGF0IGFueSB0aW1lLCBvciB5b3UgY2FuIGFzayBTdHJ1dHMgdG8KK3NldCBpdCBhdXRvbWF0aWNhbGx5IChpZiBub3QgYWxyZWFkeSBzZXQpIGJhc2VkIG9uIHRoZQorPGNvZGU+QWNjZXB0LUxhbmd1YWdlPC9jb2RlPiBIVFRQIGhlYWRlciBpbmNsdWRlZCB3aXRoIHRoZSByZXF1ZXN0LiAgVGhlcmUgYXJlCit0d28gbWVjaGFuaXNtcyBieSB3aGljaCB5b3UgcmVxdWVzdCBTdHJ1dHMgdG8gcGVyZm9ybSB0aGlzIHNlcnZpY2U6PC9wPgorPHVsPgorPGxpPlRvIGhhdmUgdGhpcyBzZXJ2aWNlIHBlcmZvcm1lZCBvbiBldmVyeSByZXF1ZXN0IHN1Ym1pdHRlZCB0byB0aGUgY29udHJvbGxlcgorICAgIHNlcnZsZXQsIHNldCB0aGUgc2VydmxldCBpbml0aWFsaXphdGlvbiBwYXJhbWV0ZXIgPGNvZGU+bG9jYWxlPC9jb2RlPiB0bworICAgIHRoZSB2YWx1ZSA8Y29kZT50cnVlPC9jb2RlPiBpbiB0aGUgYXBwbGljYXRpb24gZGVwbG95bWVudCBkZXNjcmlwdG9yLjwvbGk+Cis8bGk+VG8gaGF2ZSB0aGlzIHNlcnZpY2UgcGVyZm9ybWVkIGJ5IGEgSlNQIHBhZ2Ugd2hlbiBpdCBpcyBhY2Nlc3NlZCBkaXJlY3RseQorICAgIGJ5IGEgdXNlciwgdXRpbGl6ZSBhIDxjb2RlPiZsdDtmb3JtOmh0bWwgLi4uIGxvY2FsZT0idHJ1ZSIgLi4uIC8mZ3Q7PC9jb2RlPgorICAgIHRhZyBhdCB0aGUgdG9wIG9mIGVhY2ggcGFnZS48L2xpPgorPC91bD4KKzxQPgorCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlBhY2thZ2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPlBSRVYgUEFDS0FHRTwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxCPk5FWFQgUEFDS0FHRTwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXRyZWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2UtdHJlZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwNGRhOWQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXRyZWUuaHRtbApAQCAtMCwwICsxLDE1OCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK29yZy5hcGFjaGUuc3RydXRzLnV0aWwgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsIENsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KK0hpZXJhcmNoeSBGb3IgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy51dGlsCis8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXRyZWUuaHRtbCI+QWxsIFBhY2thZ2VzPC9BPjwvREw+Cis8SFI+Cis8SDI+CitDbGFzcyBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuT2JqZWN0PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0Vycm9yTWVzc2FnZXMuaHRtbCI+PEI+RXJyb3JNZXNzYWdlczwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMubGVnYWN5LkdlbmVyaWNEYXRhU291cmNlIChpbXBsZW1lbnRzIGphdmF4LnNxbC5EYXRhU291cmNlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0dlbmVyaWNEYXRhU291cmNlLmh0bWwiPjxCPkdlbmVyaWNEYXRhU291cmNlPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sIj48Qj5JbWFnZUJ1dHRvbkJlYW48L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JdGVyYXRvckFkYXB0ZXIuaHRtbCI+PEI+SXRlcmF0b3JBZGFwdGVyPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS51dGlsLkl0ZXJhdG9yKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0xhYmVsVmFsdWVCZWFuLmh0bWwiPjxCPkxhYmVsVmFsdWVCZWFuPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj48Qj5NZXNzYWdlUmVzb3VyY2VzPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmh0bWwiPjxCPlByb3BlcnR5TWVzc2FnZVJlc291cmNlczwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj48Qj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCI+PEI+UHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9SZXF1ZXN0VXRpbHMuaHRtbCI+PEI+UmVxdWVzdFV0aWxzPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sIj48Qj5SZXNwb25zZVV0aWxzPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwiPjxCPlN0cnV0c1ZhbGlkYXRvcjwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCI+PEI+U3RydXRzVmFsaWRhdG9yVXRpbDwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLlRocm93YWJsZSAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEubGFuZy5FeGNlcHRpb248VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwiPjxCPk1vZHVsZUV4Y2VwdGlvbjwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FwcEV4Y2VwdGlvbi5odG1sIj48Qj5BcHBFeGNlcHRpb248L0I+PC9BPjwvVUw+Cis8L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sIj48Qj5Ub2tlblByb2Nlc3NvcjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5pby5Xcml0ZXI8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmlvLlByaW50V3JpdGVyPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL1NlcnZsZXRDb250ZXh0V3JpdGVyLmh0bWwiPjxCPlNlcnZsZXRDb250ZXh0V3JpdGVyPC9CPjwvQT48L1VMPgorPC9VTD4KKzwvVUw+Cis8L1VMPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5ORVhUPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2UtdXNlLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXVzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjY2NkNmUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXVzZS5odG1sCkBAIC0wLDAgKzEsMzQ0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgUGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy51dGlsIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBQYWNrYWdlPGJyPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQj48L0E+PC9URD4KKzxURD4gVGhlIGFjdGlvbiBwYWNrYWdlIGlzIHRoZSBjb3JlIG9mIHRoZSBzdHJ1dHMgZnJhbWV3b3JrLAorICAgIHByb3ZpZGluZyB0aGUgIkNvbnRyb2xsZXIiIGFzcGVjdCBvZiBhIE1WQyBtb2RlbC4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9CPjwvQT48L1REPgorPFREPiBUaGUgYWN0aW9ucyBwYWNrYWdlIHByb3ZpZGVzIHNwZWNpYWwgYWRhcHRlcnMgYmV0d2VlbiB0aGUgaW5jb21pbmcgIEhUVFAKKyByZXF1ZXN0IGFuZCB0aGUgY29ycmVzcG9uZGluZyBidXNpbmVzcyBsb2dpYy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy5jb25maWciPjxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQj48L0E+PC9URD4KKzxURD5UaGUgImNvbmZpZyIgcGFja2FnZSBjb250YWlucyBjb25maWd1cmF0aW9uIG9iamVjdHMgdGhhdCBjb3JyZXNwb25kIHRvCitlbGVtZW50cyB0aGF0IG1heSBiZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnN0cnV0cy1jb25maWcueG1sPC9jb2RlPgorbW9kdWxlIGNvbmZpZ3VyYXRpb24gZmlsZS4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbiI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlICJzdHJ1dHMtYmVhbiIgdGFnIGxpYnJhcnkgY29udGFpbnMgSlNQIGN1c3RvbSB0YWdzIHVzZWZ1bCBpbiBkZWZpbmluZworbmV3IGJlYW5zIChpbiBhbnkgZGVzaXJlZCBzY29wZSkgZnJvbSBhIHZhcmlldHkgb2YgcG9zc2libGUgc291cmNlcywgYXMgd2VsbAorYXMgYSB0YWcgdG8gcmVuZGVyIGEgcGFydGljdWxhciBiZWFuIChvciBiZWFuIHByb3BlcnR5KSB0byB0aGUgb3V0cHV0IHJlc3BvbnNlLiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQj48L0E+PC9URD4KKzxURD48YSBuYW1lPSJkb2MuRGVzY3JpcHRpb24iPlRoZSAic3RydXRzLWh0bWwiIHRhZyBsaWJyYXJ5PC9hPgorICBjb250YWlucyBKU1AgY3VzdG9tIHRhZ3MgdXNlZnVsIGluIGNyZWF0aW5nIGR5bmFtaWMgSFRNTCB1c2VyIGludGVyZmFjZXMsCitpbmNsdWRpbmcgaW5wdXQgZm9ybXMuJm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlICJzdHJ1dHMtbG9naWMiIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIHRhZ3MgdGhhdCBhcmUgdXNlZnVsIGluIG1hbmFnaW5nCitjb25kaXRpb25hbCBnZW5lcmF0aW9uIG9mIG91dHB1dCB0ZXh0LCBsb29waW5nIG92ZXIgb2JqZWN0IGNvbGxlY3Rpb25zCitmb3IgcmVwZXRpdGl2ZSBnZW5lcmF0aW9uIG9mIG91dHB1dCB0ZXh0LCBhbmQgYXBwbGljYXRpb24gZmxvdyBtYW5hZ2VtZW50LiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0I+PC9BPjwvVEQ+Cis8VEQ+VGhlIFV0aWxpdGllcyBwYWNrYWdlIHByb3ZpZGVzIGEgdmFyaWV0eSBvZiBmYW1pbGllcyBvZiBjbGFzc2VzLAordG8gc29sdmUgcHJvYmxlbXMgdGhhdCBhcmUgY29tbW9ubHkgZW5jb3VudGVyZWQgaW4gYnVpbGRpbmcgd2ViIGFwcGxpY2F0aW9ucy4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQj48L0E+PC9URD4KKzxURD4gVGhlIHZhbGlkYXRvciBwYWNrYWdlIHByb3ZpZGVzIGEgc2VyaWVzIG9mIGNsYXNzZXMgdG8gdmFsaWRhdGUgCisgICA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiB0eXBlIG9mIGlucHV0LiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPk1lc3NhZ2VSZXNvdXJjZXM8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2VuZXJhbCBwdXJwb3NlIGFic3RyYWN0IGNsYXNzIHRoYXQgZGVzY3JpYmVzIGFuIEFQSSBmb3IgcmV0cmlldmluZworIExvY2FsZS1zZW5zaXRpdmUgbWVzc2FnZXMgZnJvbSB1bmRlcmx5aW5nIHJlc291cmNlIGxvY2F0aW9ucyBvZiBhbgorIHVuc3BlY2lmaWVkIGRlc2lnbiwgYW5kIG9wdGlvbmFsbHkgdXRpbGl6aW5nIHRoZSA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPgorIGNsYXNzIHRvIHByb2R1Y2UgaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMgd2l0aCBwYXJhbWV0cmljIHJlcGxhY2VtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvVG9rZW5Qcm9jZXNzb3IuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24iPjxCPlRva2VuUHJvY2Vzc29yPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Rva2VuUHJvY2Vzc29yIGlzIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyBhbGwgdG9rZW4gcmVsYXRlZCBmdW5jdGlvbmFsaXR5LjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zIj48Qj5NZXNzYWdlUmVzb3VyY2VzPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dlbmVyYWwgcHVycG9zZSBhYnN0cmFjdCBjbGFzcyB0aGF0IGRlc2NyaWJlcyBhbiBBUEkgZm9yIHJldHJpZXZpbmcKKyBMb2NhbGUtc2Vuc2l0aXZlIG1lc3NhZ2VzIGZyb20gdW5kZXJseWluZyByZXNvdXJjZSBsb2NhdGlvbnMgb2YgYW4KKyB1bnNwZWNpZmllZCBkZXNpZ24sIGFuZCBvcHRpb25hbGx5IHV0aWxpemluZyB0aGUgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4KKyBjbGFzcyB0byBwcm9kdWNlIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzIHdpdGggcGFyYW1ldHJpYyByZXBsYWNlbWVudC48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnIj48Qj5NZXNzYWdlUmVzb3VyY2VzPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dlbmVyYWwgcHVycG9zZSBhYnN0cmFjdCBjbGFzcyB0aGF0IGRlc2NyaWJlcyBhbiBBUEkgZm9yIHJldHJpZXZpbmcKKyBMb2NhbGUtc2Vuc2l0aXZlIG1lc3NhZ2VzIGZyb20gdW5kZXJseWluZyByZXNvdXJjZSBsb2NhdGlvbnMgb2YgYW4KKyB1bnNwZWNpZmllZCBkZXNpZ24sIGFuZCBvcHRpb25hbGx5IHV0aWxpemluZyB0aGUgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4KKyBjbGFzcyB0byBwcm9kdWNlIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzIHdpdGggcGFyYW1ldHJpYyByZXBsYWNlbWVudC48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4iPjxCPk1lc3NhZ2VSZXNvdXJjZXM8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2VuZXJhbCBwdXJwb3NlIGFic3RyYWN0IGNsYXNzIHRoYXQgZGVzY3JpYmVzIGFuIEFQSSBmb3IgcmV0cmlldmluZworIExvY2FsZS1zZW5zaXRpdmUgbWVzc2FnZXMgZnJvbSB1bmRlcmx5aW5nIHJlc291cmNlIGxvY2F0aW9ucyBvZiBhbgorIHVuc3BlY2lmaWVkIGRlc2lnbiwgYW5kIG9wdGlvbmFsbHkgdXRpbGl6aW5nIHRoZSA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPgorIGNsYXNzIHRvIHByb2R1Y2UgaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMgd2l0aCBwYXJhbWV0cmljIHJlcGxhY2VtZW50LjwvVEQ+Cis8L1RSPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9BPjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvY2xhc3MtdXNlL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbCI+PEI+TWVzc2FnZVJlc291cmNlczwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmFsIHB1cnBvc2UgYWJzdHJhY3QgY2xhc3MgdGhhdCBkZXNjcmliZXMgYW4gQVBJIGZvciByZXRyaWV2aW5nCisgTG9jYWxlLXNlbnNpdGl2ZSBtZXNzYWdlcyBmcm9tIHVuZGVybHlpbmcgcmVzb3VyY2UgbG9jYXRpb25zIG9mIGFuCisgdW5zcGVjaWZpZWQgZGVzaWduLCBhbmQgb3B0aW9uYWxseSB1dGlsaXppbmcgdGhlIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+CisgY2xhc3MgdG8gcHJvZHVjZSBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcyB3aXRoIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitDbGFzc2VzIGluIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWM8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvTWVzc2FnZVJlc291cmNlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYyI+PEI+TWVzc2FnZVJlc291cmNlczwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZW5lcmFsIHB1cnBvc2UgYWJzdHJhY3QgY2xhc3MgdGhhdCBkZXNjcmliZXMgYW4gQVBJIGZvciByZXRyaWV2aW5nCisgTG9jYWxlLXNlbnNpdGl2ZSBtZXNzYWdlcyBmcm9tIHVuZGVybHlpbmcgcmVzb3VyY2UgbG9jYXRpb25zIG9mIGFuCisgdW5zcGVjaWZpZWQgZGVzaWduLCBhbmQgb3B0aW9uYWxseSB1dGlsaXppbmcgdGhlIDxjb2RlPk1lc3NhZ2VGb3JtYXQ8L2NvZGU+CisgY2xhc3MgdG8gcHJvZHVjZSBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcyB3aXRoIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorQ2xhc3NlcyBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPiB1c2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvTWVzc2FnZVJlc291cmNlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnV0aWwiPjxCPk1lc3NhZ2VSZXNvdXJjZXM8L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2VuZXJhbCBwdXJwb3NlIGFic3RyYWN0IGNsYXNzIHRoYXQgZGVzY3JpYmVzIGFuIEFQSSBmb3IgcmV0cmlldmluZworIExvY2FsZS1zZW5zaXRpdmUgbWVzc2FnZXMgZnJvbSB1bmRlcmx5aW5nIHJlc291cmNlIGxvY2F0aW9ucyBvZiBhbgorIHVuc3BlY2lmaWVkIGRlc2lnbiwgYW5kIG9wdGlvbmFsbHkgdXRpbGl6aW5nIHRoZSA8Y29kZT5NZXNzYWdlRm9ybWF0PC9jb2RlPgorIGNsYXNzIHRvIHByb2R1Y2UgaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMgd2l0aCBwYXJhbWV0cmljIHJlcGxhY2VtZW50LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51dGlsIj48Qj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtGYWN0b3J5IGZvciA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBpbnN0YW5jZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9Nb2R1bGVFeGNlcHRpb24uaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51dGlsIj48Qj5Nb2R1bGVFeGNlcHRpb248L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VXNlZCBmb3Igc3BlY2lhbGl6ZWQgZXhjZXB0aW9uIGhhbmRsaW5nLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9jbGFzcy11c2UvVG9rZW5Qcm9jZXNzb3IuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy51dGlsIj48Qj5Ub2tlblByb2Nlc3NvcjwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUb2tlblByb2Nlc3NvciBpcyByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgYWxsIHRva2VuIHJlbGF0ZWQgZnVuY3Rpb25hbGl0eS48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQT4gdXNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT48VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL2NsYXNzLXVzZS9NZXNzYWdlUmVzb3VyY2VzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48Qj5NZXNzYWdlUmVzb3VyY2VzPC9CPjwvQT48L0I+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dlbmVyYWwgcHVycG9zZSBhYnN0cmFjdCBjbGFzcyB0aGF0IGRlc2NyaWJlcyBhbiBBUEkgZm9yIHJldHJpZXZpbmcKKyBMb2NhbGUtc2Vuc2l0aXZlIG1lc3NhZ2VzIGZyb20gdW5kZXJseWluZyByZXNvdXJjZSBsb2NhdGlvbnMgb2YgYW4KKyB1bnNwZWNpZmllZCBkZXNpZ24sIGFuZCBvcHRpb25hbGx5IHV0aWxpemluZyB0aGUgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4KKyBjbGFzcyB0byBwcm9kdWNlIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzIHdpdGggcGFyYW1ldHJpYyByZXBsYWNlbWVudC48L1REPgorPC9UUj4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTQ5NzVjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sCkBAIC0wLDAgKzEsMzgwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorRHluYVZhbGlkYXRvckFjdGlvbkZvcm0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybSxEeW5hVmFsaWRhdG9yQWN0aW9uRm9ybSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRHluYVZhbGlkYXRvckFjdGlvbkZvcm0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEeW5hVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9GT05UPgorPEJSPgorQ2xhc3MgRHluYVZhbGlkYXRvckFjdGlvbkZvcm08L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkR5bmFBY3Rpb25Gb3JtPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRHluYVZhbGlkYXRvckZvcm08L0E+CisgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLkR5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+b3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5EeW5hQmVhbiwgamF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxIUj4KKzxETD4KKzxEVD5wdWJsaWMgY2xhc3MgPEI+RHluYVZhbGlkYXRvckFjdGlvbkZvcm08L0I+PERUPmV4dGVuZHMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JGb3JtPC9BPjxEVD5pbXBsZW1lbnRzIG9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUJlYW4sIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ETD4KKworPFA+Cis8cD5UaGlzIGNsYXNzIGV4dGVuZHMgPHN0cm9uZz5EeW5hVmFsaWRhdG9yRm9ybTwvc3Ryb25nPiBhbmQgcHJvdmlkZXMKKyBiYXNpYyBmaWVsZCB2YWxpZGF0aW9uIGJhc2VkIG9uIGFuIFhNTCBmaWxlLiAgVGhlIGtleSBwYXNzZWQgaW50byB0aGUKKyB2YWxpZGF0b3IgaXMgdGhlIGFjdGlvbiBlbGVtZW50J3MgJ3BhdGgnIGF0dHJpYnV0ZSBmcm9tIHRoZQorIHN0cnV0cy1jb25maWcueG1sIHdoaWNoIHNob3VsZCBtYXRjaCB0aGUgZm9ybSBlbGVtZW50J3MgbmFtZSBhdHRyaWJ1dGUKKyBpbiB0aGUgdmFsaWRhdGlvbi54bWwuPC9wPgorCisgPHVsPjxsaT5TZWUgPGNvZGU+VmFsaWRhdG9yUGx1Z2luPC9jb2RlPiBkZWZpbml0aW9uIGluIHN0cnV0cy1jb25maWcueG1sCisgZm9yIHZhbGlkYXRpb24gcnVsZXMuPC9saT48L3VsPgorPFA+CisKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8RFQ+PEI+VmVyc2lvbjo8L0I+PC9EVD4KKyAgPEREPiRSZXZpc2lvbjogMS4xICQgJERhdGUkPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5EYXZpZCBXaW50ZXJmZWxkdDwvREQ+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRHluYVZhbGlkYXRvckFjdGlvbkZvcm0iPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCNsb2ciPmxvZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0iZmllbGRzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5EeW5hVmFsaWRhdG9yRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JGb3JtPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI3BhZ2UiPnBhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCN2YWxpZGF0b3JSZXN1bHRzIj52YWxpZGF0b3JSZXN1bHRzPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkR5bmFBY3Rpb25Gb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+RmllbGRzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCI+RHluYUFjdGlvbkZvcm08L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjZHluYUNsYXNzIj5keW5hQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNkeW5hVmFsdWVzIj5keW5hVmFsdWVzPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNtdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciI+bXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwjRHluYVZhbGlkYXRvckFjdGlvbkZvcm0oKSI+RHluYVZhbGlkYXRvckFjdGlvbkZvcm08L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VmFsaWRhdGUgdGhlIHByb3BlcnRpZXMgdGhhdCBoYXZlIGJlZW4gc2V0IGZyb20gdGhpcyBIVFRQIHJlcXVlc3QsCisgYW5kIHJldHVybiBhbiA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyBhbnkKKyB2YWxpZGF0aW9uIGVycm9ycyB0aGF0IGhhdmUgYmVlbiBmb3VuZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5EeW5hVmFsaWRhdG9yRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sIj5EeW5hVmFsaWRhdG9yRm9ybTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCNnZXRQYWdlKCkiPmdldFBhZ2U8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCNnZXRSZXN1bHRWYWx1ZU1hcCgpIj5nZXRSZXN1bHRWYWx1ZU1hcDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI2dldFZhbGlkYXRvclJlc3VsdHMoKSI+Z2V0VmFsaWRhdG9yUmVzdWx0czwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nKSI+bG9nPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwjbG9nKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5UaHJvd2FibGUpIj5sb2c8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwjc2V0UGFnZShpbnQpIj5zZXRQYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwjc2V0VmFsaWRhdG9yUmVzdWx0cyhvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvclJlc3VsdHMpIj5zZXRWYWxpZGF0b3JSZXN1bHRzPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5EeW5hQWN0aW9uRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj5EeW5hQWN0aW9uRm9ybTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNjb250YWlucyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+Y29udGFpbnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNnZXQoamF2YS5sYW5nLlN0cmluZykiPmdldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2dldChqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj5nZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNnZXQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmdldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2dldER5bmFDbGFzcygpIj5nZXREeW5hQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNnZXREeW5hUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPmdldER5bmFQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2dldE1hcCgpIj5nZXRNYXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNpbml0aWFsaXplKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+aW5pdGlhbGl6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2lzRHluYUFzc2lnbmFibGUoamF2YS5sYW5nLkNsYXNzLCBqYXZhLmxhbmcuQ2xhc3MpIj5pc0R5bmFBc3NpZ25hYmxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjcmVtb3ZlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5yZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjc2V0KGphdmEubGFuZy5TdHJpbmcsIGludCwgamF2YS5sYW5nLk9iamVjdCkiPnNldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI3NldChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+c2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjc2V0KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj5zZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNnZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcigpIj5nZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNnZXRTZXJ2bGV0V3JhcHBlcigpIj5nZXRTZXJ2bGV0V3JhcHBlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjc2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIob3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RIYW5kbGVyKSI+c2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUJlYW4iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFCZWFuPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y29udGFpbnMsIGdldCwgZ2V0LCBnZXQsIGdldER5bmFDbGFzcywgcmVtb3ZlLCBzZXQsIHNldCwgc2V0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJsb2ciPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRHluYVZhbGlkYXRvckFjdGlvbkZvcm0oKSI+PCEtLSAtLT48L0E+PEgzPgorRHluYVZhbGlkYXRvckFjdGlvbkZvcm08L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0idmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0ZTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiA8Qj52YWxpZGF0ZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5WYWxpZGF0ZSB0aGUgcHJvcGVydGllcyB0aGF0IGhhdmUgYmVlbiBzZXQgZnJvbSB0aGlzIEhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLiAgSWYgbm8gZXJyb3JzIGFyZSBmb3VuZCwgcmV0dXJuCisgPGNvZGU+bnVsbDwvY29kZT4gb3IgYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3Qgd2l0aCBubworIHJlY29yZGVkIGVycm9yIG1lc3NhZ2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI3ZhbGlkYXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGU8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCI+RHluYVZhbGlkYXRvckZvcm08L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgbWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkFjdGlvbkVycm9ycyBjb250YWluaW5nIHZhbGlkYXRpb24gZXJyb3JzLjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViBDTEFTUyZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEeW5hVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDBhOTEzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sCkBAIC0wLDAgKzEsNjIzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorRHluYVZhbGlkYXRvckZvcm0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5EeW5hVmFsaWRhdG9yRm9ybSxEeW5hVmFsaWRhdG9yRm9ybSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iRHluYVZhbGlkYXRvckZvcm0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRHluYVZhbGlkYXRvckZvcm0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEeW5hVmFsaWRhdG9yRm9ybS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9GT05UPgorPEJSPgorQ2xhc3MgRHluYVZhbGlkYXRvckZvcm08L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTwvQT4KKyAgICAgICAgfAorICAgICAgICArLS08QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkR5bmFBY3Rpb25Gb3JtPC9BPgorICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5EeW5hVmFsaWRhdG9yRm9ybTwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPm9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUJlYW4sIGphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8REw+Cis8RFQ+PEI+RGlyZWN0IEtub3duIFN1YmNsYXNzZXM6PC9CPiA8REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5EeW5hVmFsaWRhdG9yRm9ybTwvQj48RFQ+ZXh0ZW5kcyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCI+RHluYUFjdGlvbkZvcm08L0E+PERUPmltcGxlbWVudHMgb3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5EeW5hQmVhbiwgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KKzxwPlRoaXMgY2xhc3MgZXh0ZW5kcyA8c3Ryb25nPkR5bmFBY3Rpb25Gb3JtPC9zdHJvbmc+IGFuZCBwcm92aWRlcworIGJhc2ljIGZpZWxkIHZhbGlkYXRpb24gYmFzZWQgb24gYW4gWE1MIGZpbGUuICBUaGUga2V5IHBhc3NlZCBpbnRvIHRoZQorIHZhbGlkYXRvciBpcyB0aGUgYWN0aW9uIGVsZW1lbnQncyAnbmFtZScgYXR0cmlidXRlIGZyb20gdGhlCisgc3RydXRzLWNvbmZpZy54bWwgd2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBmb3JtIGVsZW1lbnQncyBuYW1lIGF0dHJpYnV0ZQorIGluIHRoZSB2YWxpZGF0aW9uLnhtbC48L3A+CisKKyA8dWw+PGxpPlNlZSA8Y29kZT5WYWxpZGF0b3JQbHVnaW48L2NvZGU+IGRlZmluaXRpb24gaW4gc3RydXRzLWNvbmZpZy54bWwKKyBmb3IgdmFsaWRhdGlvbiBydWxlcy48L2xpPjwvdWw+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkRhdmlkIFdpbnRlcmZlbGR0PC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPjxDT0RFPkFjdGlvbkZvcm08L0NPREU+PC9BPiwgCis8QSBIUkVGPSIuLi8uLi8uLi8uLi9zZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRHluYVZhbGlkYXRvckZvcm0iPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCNsb2ciPmxvZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwjcGFnZSI+cGFnZTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtVc2VkIHRvIGluZGljYXRlIHRoZSBjdXJyZW50IHBhZ2Ugb2YgYSBtdWx0aS1wYWdlIGZvcm0uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvclJlc3VsdHM8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwjdmFsaWRhdG9yUmVzdWx0cyI+dmFsaWRhdG9yUmVzdWx0czwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGUgcmVzdWx0cyByZXR1cm5lZCBmcm9tIHRoZSB2YWxpZGF0aW9uIHBlcmZvcm1lZAorIGJ5IHRoZSA8Y29kZT5WYWxpZGF0b3I8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRHluYUFjdGlvbkZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj5EeW5hQWN0aW9uRm9ybTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNkeW5hQ2xhc3MiPmR5bmFDbGFzczwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2R5bmFWYWx1ZXMiPmR5bmFWYWx1ZXM8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9ImZpZWxkc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPkZpZWxkcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI211bHRpcGFydFJlcXVlc3RIYW5kbGVyIj5tdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjc2VydmxldCI+c2VydmxldDwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09IENPTlNUUlVDVE9SIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCNEeW5hVmFsaWRhdG9yRm9ybSgpIj5EeW5hVmFsaWRhdG9yRm9ybTwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PT09IE1FVEhPRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2Rfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2ludDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCNnZXRQYWdlKCkiPmdldFBhZ2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHBhZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5NYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwjZ2V0UmVzdWx0VmFsdWVNYXAoKSI+Z2V0UmVzdWx0VmFsdWVNYXA8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXR1cm5zIGEgPGNvZGU+TWFwPC9jb2RlPiBvZiB2YWx1ZXMgcmV0dXJuZWQKKyBmcm9tIGFueSB2YWxpZGF0aW9uIHRoYXQgcmV0dXJucyBhIHZhbHVlIG90aGVyIHRoYW4KKyA8Y29kZT5udWxsPC9jb2RlPiBvciA8Y29kZT5Cb29sZWFuPC9jb2RlPiB3aXRoIHRoZQorIGtleSB0aGUgZnVsbCBwcm9wZXJ0eSBwYXRoIG9mIHRoZSBmaWVsZC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JSZXN1bHRzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI2dldFZhbGlkYXRvclJlc3VsdHMoKSI+Z2V0VmFsaWRhdG9yUmVzdWx0czwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldCByZXN1bHRzIG9mIHRoZSB2YWxpZGF0aW9uIHBlcmZvcm1lZCBieSB0aGUKKyA8Y29kZT5WYWxpZGF0b3I8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZykiPmxvZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXNzYWdlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbi1sb2dnaW5nLCBvciBvdGhlciBsb2dnaW5nIGltcGxlbWVudGF0aW9uIHRvIGxvZyBkZWJ1ZyBtZXNzYWdlcy48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI2xvZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+bG9nPC9BPjwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UsCisgICAgamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO3Rocm93YWJsZSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjb21tb24tbG9nZ2luZywgb3Igb3RoZXIgbG9nZ2luZyBpbXBsZW1lbnRhdGlvbiB0byBsb2cgZGVidWcgbWVzc2FnZXMuPC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI3Jlc2V0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVzZXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1Jlc2V0IGFsbCBwcm9wZXJ0aWVzIHRvIHRoZWlyIGRlZmF1bHQgdmFsdWVzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI3NldFBhZ2UoaW50KSI+c2V0UGFnZTwvQT48L0I+KGludCZuYnNwO3BhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHBhZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwjc2V0VmFsaWRhdG9yUmVzdWx0cyhvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvclJlc3VsdHMpIj5zZXRWYWxpZGF0b3JSZXN1bHRzPC9BPjwvQj4ob3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JSZXN1bHRzJm5ic3A7dmFsaWRhdG9yUmVzdWx0cyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1NldCByZXN1bHRzIG9mIHRoZSB2YWxpZGF0aW9uIHBlcmZvcm1lZCBieSB0aGUKKyA8Y29kZT5WYWxpZGF0b3I8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VmFsaWRhdGUgdGhlIHByb3BlcnRpZXMgdGhhdCBoYXZlIGJlZW4gc2V0IGZyb20gdGhpcyBIVFRQIHJlcXVlc3QsCisgYW5kIHJldHVybiBhbiA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyBhbnkKKyB2YWxpZGF0aW9uIGVycm9ycyB0aGF0IGhhdmUgYmVlbiBmb3VuZC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5EeW5hQWN0aW9uRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj5EeW5hQWN0aW9uRm9ybTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNjb250YWlucyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuU3RyaW5nKSI+Y29udGFpbnM8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNnZXQoamF2YS5sYW5nLlN0cmluZykiPmdldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2dldChqYXZhLmxhbmcuU3RyaW5nLCBpbnQpIj5nZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNnZXQoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLlN0cmluZykiPmdldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2dldER5bmFDbGFzcygpIj5nZXREeW5hQ2xhc3M8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNnZXREeW5hUHJvcGVydHkoamF2YS5sYW5nLlN0cmluZykiPmdldER5bmFQcm9wZXJ0eTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2dldE1hcCgpIj5nZXRNYXA8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNpbml0aWFsaXplKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nKSI+aW5pdGlhbGl6ZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI2lzRHluYUFzc2lnbmFibGUoamF2YS5sYW5nLkNsYXNzLCBqYXZhLmxhbmcuQ2xhc3MpIj5pc0R5bmFBc3NpZ25hYmxlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjcmVtb3ZlKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcpIj5yZW1vdmU8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjc2V0KGphdmEubGFuZy5TdHJpbmcsIGludCwgamF2YS5sYW5nLk9iamVjdCkiPnNldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sI3NldChqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0KSI+c2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwjc2V0KGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5PYmplY3QpIj5zZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCN0b1N0cmluZygpIj50b1N0cmluZzwvQT48L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNnZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcigpIj5nZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNnZXRTZXJ2bGV0V3JhcHBlcigpIj5nZXRTZXJ2bGV0V3JhcHBlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjc2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIob3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RIYW5kbGVyKSI+c2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUJlYW4iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGludGVyZmFjZSBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFCZWFuPC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y29udGFpbnMsIGdldCwgZ2V0LCBnZXQsIGdldER5bmFDbGFzcywgcmVtb3ZlLCBzZXQsIHNldCwgc2V0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJsb2ciPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWxpZGF0b3JSZXN1bHRzIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0b3JSZXN1bHRzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JSZXN1bHRzIDxCPnZhbGlkYXRvclJlc3VsdHM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlc3VsdHMgcmV0dXJuZWQgZnJvbSB0aGUgdmFsaWRhdGlvbiBwZXJmb3JtZWQKKyBieSB0aGUgPGNvZGU+VmFsaWRhdG9yPC9jb2RlPi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhZ2UiPjwhLS0gLS0+PC9BPjxIMz4KK3BhZ2U8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBpbnQgPEI+cGFnZTwvQj48L1BSRT4KKzxETD4KKzxERD5Vc2VkIHRvIGluZGljYXRlIHRoZSBjdXJyZW50IHBhZ2Ugb2YgYSBtdWx0aS1wYWdlIGZvcm0uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8IS0tID09PT09PT09PSBDT05TVFJVQ1RPUiBERVRBSUwgPT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImNvbnN0cnVjdG9yX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iRHluYVZhbGlkYXRvckZvcm0oKSI+PCEtLSAtLT48L0E+PEgzPgorRHluYVZhbGlkYXRvckZvcm08L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5EeW5hVmFsaWRhdG9yRm9ybTwvQj4oKTwvUFJFPgorPERMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT09PT0gTUVUSE9EIERFVEFJTCA9PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJtZXRob2RfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0iZ2V0UGFnZSgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRQYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgaW50IDxCPmdldFBhZ2U8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXRzIHBhZ2UuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+cGFnZSBudW1iZXIuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRQYWdlKGludCkiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFBhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFBhZ2U8L0I+KGludCZuYnNwO3BhZ2UpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyBwYWdlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYWdlPC9DT0RFPiAtIHBhZ2UgbnVtYmVyPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+IDxCPnZhbGlkYXRlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPlZhbGlkYXRlIHRoZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBiZWVuIHNldCBmcm9tIHRoaXMgSFRUUCByZXF1ZXN0LAorIGFuZCByZXR1cm4gYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgYW55CisgdmFsaWRhdGlvbiBlcnJvcnMgdGhhdCBoYXZlIGJlZW4gZm91bmQuICBJZiBubyBlcnJvcnMgYXJlIGZvdW5kLCByZXR1cm4KKyA8Y29kZT5udWxsPC9jb2RlPiBvciBhbiA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB3aXRoIG5vCisgcmVjb3JkZWQgZXJyb3IgbWVzc2FnZXMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+T3ZlcnJpZGVzOjwvQj48REQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlPC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tYXBwaW5nPC9DT0RFPiAtIFRoZSBtYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UuPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZy4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+PGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgYW55IHZhbGlkYXRpb24gZXJyb3JzLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9nKGphdmEubGFuZy5TdHJpbmcpIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmxvZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbi1sb2dnaW5nLCBvciBvdGhlciBsb2dnaW5nIGltcGxlbWVudGF0aW9uIHRvIGxvZyBkZWJ1ZyBtZXNzYWdlcy48L0k+Cis8UD4KKzxERD5Db252ZW5pZW5jZSBtZXRob2QgdGhhdCBjYWxsIHRoZSBjb21wYXJhYmxlIHNlcnZsZXQgbG9nIG1ldGhvZCBhbmQgd3JpdGVzCisgYW4gZXhwbGFuYXRvcnkgbWVzc2FnZSBhbmQgYSBzdGFjayB0cmFjZSBmb3IgYSBnaXZlbiBUaHJvd2FibGUgZXhjZXB0aW9uIHRvIHRoZQorIHNlcnZsZXQgbG9nIGZpbGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1lc3NhZ2U8L0NPREU+IC0gU3RyaW5nIHRoYXQgZGVzY3JpYmVzIHRoZSBlcnJvciBvciBleGNlcHRpb248L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImxvZyhqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuVGhyb3dhYmxlKSI+PCEtLSAtLT48L0E+PEgzPgorbG9nPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5sb2c8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXNzYWdlLAorICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5UaHJvd2FibGUmbmJzcDt0aHJvd2FibGUpPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbi1sb2dnaW5nLCBvciBvdGhlciBsb2dnaW5nIGltcGxlbWVudGF0aW9uIHRvIGxvZyBkZWJ1ZyBtZXNzYWdlcy48L0k+Cis8UD4KKzxERD5Db252ZW5pZW5jZSBtZXRob2QgdGhhdCBjYWxsIHRoZSBjb21wYXJhYmxlIHNlcnZsZXQgbG9nIG1ldGhvZCBhbmQgd3JpdGVzCisgYW4gZXhwbGFuYXRvcnkgbWVzc2FnZSBhbmQgYSBzdGFjayB0cmFjZSBmb3IgYSBnaXZlbiBUaHJvd2FibGUgZXhjZXB0aW9uIHRvIHRoZQorIHNlcnZsZXQgbG9nIGZpbGUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1lc3NhZ2U8L0NPREU+IC0gU3RyaW5nIHRoYXQgZGVzY3JpYmVzIHRoZSBlcnJvciBvciBleGNlcHRpb248REQ+PENPREU+dGhyb3dhYmxlPC9DT0RFPiAtIFRocm93YWJsZSBlcnJvciBvciBleGNlcHRpb248L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InJlc2V0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorcmVzZXQ8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnJlc2V0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5SZXNldCBhbGwgcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHZhbHVlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPjwvQ09ERT4gaW4gY2xhc3MgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPkR5bmFBY3Rpb25Gb3JtPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIG1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZTxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3Npbmc8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbGlkYXRvclJlc3VsdHMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsaWRhdG9yUmVzdWx0czwvSDM+Cis8UFJFPgorcHVibGljIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzdWx0cyA8Qj5nZXRWYWxpZGF0b3JSZXN1bHRzPC9CPigpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHJlc3VsdHMgb2YgdGhlIHZhbGlkYXRpb24gcGVyZm9ybWVkIGJ5IHRoZQorIDxjb2RlPlZhbGlkYXRvcjwvY29kZT4uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dmFsaWRhdG9yIHJlc3VsdHMgYXMgVmFsaWRhdG9yUmVzdWx0cyBvYmplY3Q8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFZhbGlkYXRvclJlc3VsdHMob3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JSZXN1bHRzKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0VmFsaWRhdG9yUmVzdWx0czwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+c2V0VmFsaWRhdG9yUmVzdWx0czwvQj4ob3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JSZXN1bHRzJm5ic3A7dmFsaWRhdG9yUmVzdWx0cyk8L1BSRT4KKzxETD4KKzxERD5TZXQgcmVzdWx0cyBvZiB0aGUgdmFsaWRhdGlvbiBwZXJmb3JtZWQgYnkgdGhlCisgPGNvZGU+VmFsaWRhdG9yPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+dmFsaWRhdG9yUmVzdWx0czwvQ09ERT4gLSBTZXQgcmVzdWx0cyBvZiB0aGUgdmFsaWRhdGlvbiBwZXJmb3JtZWQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFJlc3VsdFZhbHVlTWFwKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFJlc3VsdFZhbHVlTWFwPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS51dGlsLk1hcCA8Qj5nZXRSZXN1bHRWYWx1ZU1hcDwvQj4oKTwvUFJFPgorPERMPgorPEREPlJldHVybnMgYSA8Y29kZT5NYXA8L2NvZGU+IG9mIHZhbHVlcyByZXR1cm5lZAorIGZyb20gYW55IHZhbGlkYXRpb24gdGhhdCByZXR1cm5zIGEgdmFsdWUgb3RoZXIgdGhhbgorIDxjb2RlPm51bGw8L2NvZGU+IG9yIDxjb2RlPkJvb2xlYW48L2NvZGU+IHdpdGggdGhlCisga2V5IHRoZSBmdWxsIHByb3BlcnR5IHBhdGggb2YgdGhlIGZpZWxkLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlJldHVybnMgYSA8Y29kZT5NYXA8L2NvZGU+IG9mIHZhbHVlcywgb3RoZXJ3aXNlIHJldHVybnMgbnVsbCBpZiBubyByZXN1bHRzLjwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvRHluYVZhbGlkYXRvckZvcm0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEeW5hVmFsaWRhdG9yRm9ybS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGE4NDhmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sCkBAIC0wLDAgKzEsMTAxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK0ZpZWxkQ2hlY2tzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRmllbGRDaGVja3MsRmllbGRDaGVja3MgY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkZpZWxkQ2hlY2tzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL0ZpZWxkQ2hlY2tzLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZpZWxkQ2hlY2tzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0ZPTlQ+Cis8QlI+CitDbGFzcyBGaWVsZENoZWNrczwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5GaWVsZENoZWNrczwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPmphdmEuaW8uU2VyaWFsaXphYmxlPC9ERD4KKzwvREw+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPkZpZWxkQ2hlY2tzPC9CPjxEVD5leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8RFQ+aW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZTwvREw+CisKKzxQPgorPHA+CisgVGhpcyBjbGFzcyBjb250YWlucyB0aGUgZGVmYXVsdCB2YWxpZGF0aW9ucyB0aGF0IGFyZSB1c2VkIGluIHRoZSAKKyB2YWxpZGF0b3ItcnVsZXMueG1sIGZpbGUuCisgPC9wPgorIDxwPgorIEluIGdlbmVyYWwgcGFzc2luZyBpbiBhIG51bGwgb3IgYmxhbmsgd2lsbCByZXR1cm4gYSBudWxsIE9iamVjdCBvciBhIGZhbHNlCisgYm9vbGVhbi4gSG93ZXZlciwgbnVsbHMgYW5kIGJsYW5rcyBkbyBub3QgcmVzdWx0IGluIGFuIGVycm9yIGJlaW5nIGFkZGVkIHRvIHRoZQorIGVycm9ycy4KKyA8L3A+Cis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5BdXRob3I6PC9CPjwvRFQ+CisgIDxERD5EYXZpZCBXaW50ZXJmZWxkdCwgSmFtZXMgVHVybmVyLCBSb2IgTGVsYW5kPC9ERD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5GaWVsZENoZWNrcyI+U2VyaWFsaXplZCBGb3JtPC9BPjwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjRklFTERfVEVTVF9FUVVBTCI+RklFTERfVEVTVF9FUVVBTDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCNGSUVMRF9URVNUX05PVE5VTEwiPkZJRUxEX1RFU1RfTk9UTlVMTDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCNGSUVMRF9URVNUX05VTEwiPkZJRUxEX1RFU1RfTlVMTDwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjbG9nIj5sb2c8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjRmllbGRDaGVja3MoKSI+RmllbGRDaGVja3M8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgc3RhdGljJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCNpc1N0cmluZyhqYXZhLmxhbmcuT2JqZWN0KSI+aXNTdHJpbmc8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7byk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgc3BlY2lmaWVkIG9iamVjdCBpcyBhIFN0cmluZyBvciBhIDxjb2RlPm51bGw8L2NvZGU+CisgIHZhbHVlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuQnl0ZTwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUJ5dGUoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZUJ5dGU8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDaGVja3MgaWYgdGhlIGZpZWxkIGNhbiBzYWZlbHkgYmUgY29udmVydGVkIHRvIGEgYnl0ZSBwcmltaXRpdmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5Mb25nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlQ3JlZGl0Q2FyZChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlQ3JlZGl0Q2FyZDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiB0aGUgZmllbGQgaXMgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEudXRpbC5EYXRlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRGF0ZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlRGF0ZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiB0aGUgZmllbGQgaXMgYSB2YWxpZCBkYXRlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuRG91YmxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRG91YmxlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVEb3VibGU8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiB0aGUgZmllbGQgY2FuIHNhZmVseSBiZSBjb252ZXJ0ZWQgdG8gYSBkb3VibGUgcHJpbWl0aXZlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRG91YmxlUmFuZ2UoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZURvdWJsZVJhbmdlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiBhIGZpZWxkcyB2YWx1ZSBpcyB3aXRoaW4gYSByYW5nZSAobWluICZhbXA7IG1heCBzcGVjaWZpZWQgaW4gdGhlCisgIHZhcnMgYXR0cmlidXRlKS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUVtYWlsKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVFbWFpbDwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDaGVja3MgaWYgYSBmaWVsZCBoYXMgYSB2YWxpZCBlLW1haWwgYWRkcmVzcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLkZsb2F0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlRmxvYXQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZUZsb2F0PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiB0aGUgZmllbGQgY2FuIHNhZmVseSBiZSBjb252ZXJ0ZWQgdG8gYSBmbG9hdCBwcmltaXRpdmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVGbG9hdFJhbmdlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVGbG9hdFJhbmdlPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2hlY2tzIGlmIGEgZmllbGRzIHZhbHVlIGlzIHdpdGhpbiBhIHJhbmdlIChtaW4gJmFtcDsgbWF4IHNwZWNpZmllZCBpbiB0aGUKKyAgdmFycyBhdHRyaWJ1dGUpLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuSW50ZWdlcjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUludGVnZXIoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZUludGVnZXI8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDaGVja3MgaWYgdGhlIGZpZWxkIGNhbiBzYWZlbHkgYmUgY29udmVydGVkIHRvIGFuIGludCBwcmltaXRpdmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVJbnRSYW5nZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlSW50UmFuZ2U8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q2hlY2tzIGlmIGEgZmllbGRzIHZhbHVlIGlzIHdpdGhpbiBhIHJhbmdlIChtaW4gJmFtcDsgbWF4IHNwZWNpZmllZCBpbiB0aGUKKyB2YXJzIGF0dHJpYnV0ZSkuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5Mb25nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlTG9uZyhqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlTG9uZzwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiB0aGUgZmllbGQgY2FuIHNhZmVseSBiZSBjb252ZXJ0ZWQgdG8gYSBsb25nIHByaW1pdGl2ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZU1hc2soamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZU1hc2s8L0E+PC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDaGVja3MgaWYgdGhlIGZpZWxkIG1hdGNoZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBpbiB0aGUgZmllbGQncyBtYXNrIGF0dHJpYnV0ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZU1heExlbmd0aChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlTWF4TGVuZ3RoPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDaGVja3MgaWYgdGhlIGZpZWxkJ3MgbGVuZ3RoIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgbWF4aW11bSB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZU1pbkxlbmd0aChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlTWluTGVuZ3RoPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDaGVja3MgaWYgdGhlIGZpZWxkJ3MgbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgbWluaW11bSB2YWx1ZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7Ym9vbGVhbjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZVJhbmdlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGVSYW5nZTwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5BcyBvZiBTdHJ1dHMgMS4xLCByZXBsYWNlZCBieSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCN2YWxpZGF0ZUludFJhbmdlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PENPREU+dmFsaWRhdGVJbnRSYW5nZShqYXZhLmxhbmcuT2JqZWN0LG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycyxqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KTwvQ09ERT48L0E+PC9JPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlUmVxdWlyZWQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZVJlcXVpcmVkPC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiB0aGUgZmllbGQgaXNuJ3QgbnVsbCBhbmQgbGVuZ3RoIG9mIHRoZSBmaWVsZCBpcyBncmVhdGVyIHRoYW4gemVybyBub3QgCisgaW5jbHVkaW5nIHdoaXRlc3BhY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwjdmFsaWRhdGVSZXF1aXJlZElmKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvciwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlUmVxdWlyZWRJZjwvQT48L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvciZuYnNwO3ZhbGlkYXRvciwKKyAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiB0aGUgZmllbGQgaXNuJ3QgbnVsbCBiYXNlZCBvbiB0aGUgdmFsdWVzIG9mIG90aGVyIGZpZWxkcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlNob3J0PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlU2hvcnQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZVNob3J0PC9BPjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NoZWNrcyBpZiB0aGUgZmllbGQgY2FuIHNhZmVseSBiZSBjb252ZXJ0ZWQgdG8gYSBzaG9ydCBwcmltaXRpdmUuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJsb2ciPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJGSUVMRF9URVNUX05VTEwiPjwhLS0gLS0+PC9BPjxIMz4KK0ZJRUxEX1RFU1RfTlVMTDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBmaW5hbCBqYXZhLmxhbmcuU3RyaW5nIDxCPkZJRUxEX1RFU1RfTlVMTDwvQj48L1BSRT4KKzxETD4KKzxETD4KKzxEVD48Qj5TZWUgQWxzbzo8L0I+PEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL2NvbnN0YW50LXZhbHVlcy5odG1sI29yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5GaWVsZENoZWNrcy5GSUVMRF9URVNUX05VTEwiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iRklFTERfVEVTVF9OT1ROVUxMIj48IS0tIC0tPjwvQT48SDM+CitGSUVMRF9URVNUX05PVE5VTEw8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5GSUVMRF9URVNUX05PVE5VTEw8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRmllbGRDaGVja3MuRklFTERfVEVTVF9OT1ROVUxMIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkZJRUxEX1RFU1RfRVFVQUwiPjwhLS0gLS0+PC9BPjxIMz4KK0ZJRUxEX1RFU1RfRVFVQUw8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5GSUVMRF9URVNUX0VRVUFMPC9CPjwvUFJFPgorPERMPgorPERMPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vY29uc3RhbnQtdmFsdWVzLmh0bWwjb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLkZpZWxkQ2hlY2tzLkZJRUxEX1RFU1RfRVFVQUwiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IkZpZWxkQ2hlY2tzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK0ZpZWxkQ2hlY2tzPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+RmllbGRDaGVja3M8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InZhbGlkYXRlUmVxdWlyZWQoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0ZVJlcXVpcmVkPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGJvb2xlYW4gPEI+dmFsaWRhdGVSZXF1aXJlZDwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+Q2hlY2tzIGlmIHRoZSBmaWVsZCBpc24ndCBudWxsIGFuZCBsZW5ndGggb2YgdGhlIGZpZWxkIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvIG5vdCAKKyBpbmNsdWRpbmcgd2hpdGVzcGFjZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBUaGUgYmVhbiB2YWxpZGF0aW9uIGlzIGJlaW5nIHBlcmZvcm1lZCBvbi48REQ+PENPREU+dmE8L0NPREU+IC0gVGhlIDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4gdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgcGVyZm9ybWVkLjxERD48Q09ERT5maWVsZDwvQ09ERT4gLSBUaGUgPGNvZGU+RmllbGQ8L2NvZGU+IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgCisgZmllbGQgYmVpbmcgdmFsaWRhdGVkLjxERD48Q09ERT5lcnJvcnM8L0NPREU+IC0gVGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRvIGFkZCBlcnJvcnMgdG8gaWYgCisgYW55IHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRydWUgaWYgbWVldHMgc3RhdGVkIHJlcXVpcmVtZW50cywgZmFsc2Ugb3RoZXJ3aXNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGVSZXF1aXJlZElmKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvciwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlUmVxdWlyZWRJZjwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBib29sZWFuIDxCPnZhbGlkYXRlUmVxdWlyZWRJZjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvciZuYnNwO3ZhbGlkYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+Q2hlY2tzIGlmIHRoZSBmaWVsZCBpc24ndCBudWxsIGJhc2VkIG9uIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgZmllbGRzLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIFRoZSBiZWFuIHZhbGlkYXRpb24gaXMgYmVpbmcgcGVyZm9ybWVkIG9uLjxERD48Q09ERT52YTwvQ09ERT4gLSBUaGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyAKKyBwZXJmb3JtZWQuPEREPjxDT0RFPmZpZWxkPC9DT0RFPiAtIFRoZSA8Y29kZT5GaWVsZDwvY29kZT4gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCAKKyBmaWVsZCBiZWluZyB2YWxpZGF0ZWQuPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdG8gYWRkIGVycm9ycyB0byBpZiAKKyBhbnkgdmFsaWRhdGlvbiBlcnJvcnMgb2NjdXIuPEREPjxDT0RFPnZhbGlkYXRvcjwvQ09ERT4gLSBUaGUgPGNvZGU+VmFsaWRhdG9yPC9jb2RlPiBpbnN0YW5jZSwgdXNlZCB0byBhY2Nlc3MgCisgb3RoZXIgZmllbGQgdmFsdWVzLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPnRydWUgaWYgbWVldHMgc3RhdGVkIHJlcXVpcmVtZW50cywgZmFsc2Ugb3RoZXJ3aXNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGVNYXNrKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgordmFsaWRhdGVNYXNrPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGJvb2xlYW4gPEI+dmFsaWRhdGVNYXNrPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPkNoZWNrcyBpZiB0aGUgZmllbGQgbWF0Y2hlcyB0aGUgcmVndWxhciBleHByZXNzaW9uIGluIHRoZSBmaWVsZCdzIG1hc2sgYXR0cmlidXRlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIFRoZSBiZWFuIHZhbGlkYXRpb24gaXMgYmVpbmcgcGVyZm9ybWVkIG9uLjxERD48Q09ERT52YTwvQ09ERT4gLSBUaGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyAKKyBwZXJmb3JtZWQuPEREPjxDT0RFPmZpZWxkPC9DT0RFPiAtIFRoZSA8Y29kZT5GaWVsZDwvY29kZT4gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCAKKyBmaWVsZCBiZWluZyB2YWxpZGF0ZWQuPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdG8gYWRkIGVycm9ycyB0byBpZiAKKyBhbnkgdmFsaWRhdGlvbiBlcnJvcnMgb2NjdXIuPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCByZXF1ZXN0IG9iamVjdC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+dHJ1ZSBpZiBmaWVsZCBtYXRjaGVzIG1hc2ssIGZhbHNlIG90aGVyd2lzZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbGlkYXRlQnl0ZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlQnl0ZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuQnl0ZSA8Qj52YWxpZGF0ZUJ5dGU8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPkNoZWNrcyBpZiB0aGUgZmllbGQgY2FuIHNhZmVseSBiZSBjb252ZXJ0ZWQgdG8gYSBieXRlIHByaW1pdGl2ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBUaGUgYmVhbiB2YWxpZGF0aW9uIGlzIGJlaW5nIHBlcmZvcm1lZCBvbi48REQ+PENPREU+dmE8L0NPREU+IC0gVGhlIDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4gdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgcGVyZm9ybWVkLjxERD48Q09ERT5maWVsZDwvQ09ERT4gLSBUaGUgPGNvZGU+RmllbGQ8L2NvZGU+IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgCitmaWVsZCBiZWluZyB2YWxpZGF0ZWQuPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdG8gYWRkIGVycm9ycyB0byBpZiAKK2FueSB2YWxpZGF0aW9uIGVycm9ycyBvY2N1ci48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHJlcXVlc3Qgb2JqZWN0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5BIEJ5dGUgaWYgdmFsaWQsIG51bGwgb3RoZXJ3aXNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGVTaG9ydChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlU2hvcnQ8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlNob3J0IDxCPnZhbGlkYXRlU2hvcnQ8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+Q2hlY2tzIGlmIHRoZSBmaWVsZCBjYW4gc2FmZWx5IGJlIGNvbnZlcnRlZCB0byBhIHNob3J0IHByaW1pdGl2ZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBUaGUgYmVhbiB2YWxpZGF0aW9uIGlzIGJlaW5nIHBlcmZvcm1lZCBvbi48REQ+PENPREU+dmE8L0NPREU+IC0gVGhlIDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4gdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgcGVyZm9ybWVkLjxERD48Q09ERT5maWVsZDwvQ09ERT4gLSBUaGUgPGNvZGU+RmllbGQ8L2NvZGU+IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgCisgZmllbGQgYmVpbmcgdmFsaWRhdGVkLjxERD48Q09ERT5lcnJvcnM8L0NPREU+IC0gVGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRvIGFkZCBlcnJvcnMgdG8gaWYgCisgYW55IHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgU2hvcnQgaWYgdmFsaWQsIG90aGVyd2lzZSBudWxsLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGVJbnRlZ2VyKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgordmFsaWRhdGVJbnRlZ2VyPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5JbnRlZ2VyIDxCPnZhbGlkYXRlSW50ZWdlcjwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+Q2hlY2tzIGlmIHRoZSBmaWVsZCBjYW4gc2FmZWx5IGJlIGNvbnZlcnRlZCB0byBhbiBpbnQgcHJpbWl0aXZlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIFRoZSBiZWFuIHZhbGlkYXRpb24gaXMgYmVpbmcgcGVyZm9ybWVkIG9uLjxERD48Q09ERT52YTwvQ09ERT4gLSBUaGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBwZXJmb3JtZWQuPEREPjxDT0RFPmZpZWxkPC9DT0RFPiAtIFRoZSA8Y29kZT5GaWVsZDwvY29kZT4gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudAorICAgICAgZmllbGQgYmVpbmcgdmFsaWRhdGVkLjxERD48Q09ERT5lcnJvcnM8L0NPREU+IC0gVGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRvIGFkZCBlcnJvcnMgdG8gaWYgYW55CisgICAgICB2YWxpZGF0aW9uIGVycm9ycyBvY2N1ci48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHJlcXVlc3Qgb2JqZWN0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5BbiBJbnRlZ2VyIGlmIHZhbGlkLCBhIG51bGwgb3RoZXJ3aXNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGVMb25nKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgordmFsaWRhdGVMb25nPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEubGFuZy5Mb25nIDxCPnZhbGlkYXRlTG9uZzwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+Q2hlY2tzIGlmIHRoZSBmaWVsZCBjYW4gc2FmZWx5IGJlIGNvbnZlcnRlZCB0byBhIGxvbmcgcHJpbWl0aXZlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIFRoZSBiZWFuIHZhbGlkYXRpb24gaXMgYmVpbmcgcGVyZm9ybWVkIG9uLjxERD48Q09ERT52YTwvQ09ERT4gLSBUaGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBwZXJmb3JtZWQuPEREPjxDT0RFPmZpZWxkPC9DT0RFPiAtIFRoZSA8Y29kZT5GaWVsZDwvY29kZT4gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudAorICAgICAgZmllbGQgYmVpbmcgdmFsaWRhdGVkLjxERD48Q09ERT5lcnJvcnM8L0NPREU+IC0gVGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRvIGFkZCBlcnJvcnMgdG8gaWYgYW55CisgICAgICB2YWxpZGF0aW9uIGVycm9ycyBvY2N1ci48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHJlcXVlc3Qgb2JqZWN0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5BIExvbmcgaWYgdmFsaWQsIGEgbnVsbCBvdGhlcndpc2UuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWxpZGF0ZUZsb2F0KGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgordmFsaWRhdGVGbG9hdDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuRmxvYXQgPEI+dmFsaWRhdGVGbG9hdDwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5DaGVja3MgaWYgdGhlIGZpZWxkIGNhbiBzYWZlbHkgYmUgY29udmVydGVkIHRvIGEgZmxvYXQgcHJpbWl0aXZlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIFRoZSBiZWFuIHZhbGlkYXRpb24gaXMgYmVpbmcgcGVyZm9ybWVkIG9uLjxERD48Q09ERT52YTwvQ09ERT4gLSBUaGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBwZXJmb3JtZWQuPEREPjxDT0RFPmZpZWxkPC9DT0RFPiAtIFRoZSA8Y29kZT5GaWVsZDwvY29kZT4gb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudAorICAgICAgZmllbGQgYmVpbmcgdmFsaWRhdGVkLjxERD48Q09ERT5lcnJvcnM8L0NPREU+IC0gVGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRvIGFkZCBlcnJvcnMgdG8gaWYgYW55CisgICAgICB2YWxpZGF0aW9uIGVycm9ycyBvY2N1ci48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBDdXJyZW50IHJlcXVlc3Qgb2JqZWN0LgorPERUPjxCPlJldHVybnM6PC9CPjxERD5BIEZsb2F0IGlmIHZhbGlkLCBhIG51bGwgb3RoZXJ3aXNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGVEb3VibGUoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0ZURvdWJsZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuRG91YmxlIDxCPnZhbGlkYXRlRG91YmxlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+Q2hlY2tzIGlmIHRoZSBmaWVsZCBjYW4gc2FmZWx5IGJlIGNvbnZlcnRlZCB0byBhIGRvdWJsZSBwcmltaXRpdmUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gVGhlIGJlYW4gdmFsaWRhdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQgb24uPEREPjxDT0RFPnZhPC9DT0RFPiAtIFRoZSA8Y29kZT5WYWxpZGF0b3JBY3Rpb248L2NvZGU+IHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIHBlcmZvcm1lZC48REQ+PENPREU+ZmllbGQ8L0NPREU+IC0gVGhlIDxjb2RlPkZpZWxkPC9jb2RlPiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50CisgICAgICBmaWVsZCBiZWluZyB2YWxpZGF0ZWQuPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdG8gYWRkIGVycm9ycyB0byBpZiBhbnkKKyAgICAgIHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgRG91YmxlIGlmIHZhbGlkLCBhIG51bGwgb3RoZXJ3aXNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGVEYXRlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgordmFsaWRhdGVEYXRlPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGphdmEudXRpbC5EYXRlIDxCPnZhbGlkYXRlRGF0ZTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+Q2hlY2tzIGlmIHRoZSBmaWVsZCBpcyBhIHZhbGlkIGRhdGUuIElmIHRoZSBmaWVsZCBoYXMgYSBkYXRlUGF0dGVybiB2YXJpYWJsZSwKKyAgdGhhdCB3aWxsIGJlIHVzZWQgdG8gZm9ybWF0IDxjb2RlPmphdmEudGV4dC5TaW1wbGVEYXRlRm9ybWF0PC9jb2RlPi4gSWYgdGhlCisgIGZpZWxkIGhhcyBhIGRhdGVQYXR0ZXJuU3RyaWN0IHZhcmlhYmxlLCB0aGF0IHdpbGwgYmUgdXNlZCB0byBmb3JtYXQgPGNvZGU+amF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ8L2NvZGU+CisgIGFuZCB0aGUgbGVuZ3RoIHdpbGwgYmUgY2hlY2tlZCBzbyAnMi8xMi8xOTk5JyB3aWxsIG5vdCBwYXNzIHZhbGlkYXRpb24gd2l0aAorICB0aGUgZm9ybWF0ICdNTS9kZC95eXl5JyBiZWNhdXNlIHRoZSBtb250aCBpc24ndCB0d28gZGlnaXRzLiBJZiBubyBkYXRlUGF0dGVybgorICB2YXJpYWJsZSBpcyBzcGVjaWZpZWQsIHRoZW4gdGhlIGZpZWxkIGdldHMgdGhlIERhdGVGb3JtYXQuU0hPUlQgZm9ybWF0IGZvcgorICB0aGUgbG9jYWxlLiBUaGUgc2V0TGVuaWVudCBtZXRob2QgaXMgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiBmb3IgYWxsIHZhcmlhdGlvbnMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gVGhlIGJlYW4gdmFsaWRhdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQgb24uPEREPjxDT0RFPnZhPC9DT0RFPiAtIFRoZSA8Y29kZT5WYWxpZGF0b3JBY3Rpb248L2NvZGU+IHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIHBlcmZvcm1lZC48REQ+PENPREU+ZmllbGQ8L0NPREU+IC0gVGhlIDxjb2RlPkZpZWxkPC9jb2RlPiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50CisgICAgICBmaWVsZCBiZWluZyB2YWxpZGF0ZWQuPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdG8gYWRkIGVycm9ycyB0byBpZiBhbnkKKyAgICAgIHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPkEgRGF0ZSBpZiB2YWxpZCwgYSBudWxsIGlmIGJsYW5rIG9yIGludmFsaWQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWxpZGF0ZVJhbmdlKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgordmFsaWRhdGVSYW5nZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBib29sZWFuIDxCPnZhbGlkYXRlUmFuZ2U8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkFzIG9mIFN0cnV0cyAxLjEsIHJlcGxhY2VkIGJ5IDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sI3ZhbGlkYXRlSW50UmFuZ2UoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48Q09ERT52YWxpZGF0ZUludFJhbmdlKGphdmEubGFuZy5PYmplY3Qsb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCxvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpPC9DT0RFPjwvQT48L0k+Cis8UD4KKzxERD5DaGVja3MgaWYgYSBmaWVsZHMgdmFsdWUgaXMgd2l0aGluIGEgcmFuZ2UgKG1pbiAmYW1wOyBtYXggc3BlY2lmaWVkIGluIHRoZQorIHZhcnMgYXR0cmlidXRlKS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBUaGUgYmVhbiB2YWxpZGF0aW9uIGlzIGJlaW5nIHBlcmZvcm1lZCBvbi48REQ+PENPREU+dmE8L0NPREU+IC0gVGhlIDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4gdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgcGVyZm9ybWVkLjxERD48Q09ERT5maWVsZDwvQ09ERT4gLSBUaGUgPGNvZGU+RmllbGQ8L2NvZGU+IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQKKyAgICAgIGZpZWxkIGJlaW5nIHZhbGlkYXRlZC48REQ+PENPREU+ZXJyb3JzPC9DT0RFPiAtIFRoZSA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0byBhZGQgZXJyb3JzIHRvIGlmIGFueQorICAgICAgdmFsaWRhdGlvbiBlcnJvcnMgb2NjdXIuPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCByZXF1ZXN0IG9iamVjdC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VHJ1ZSBpZiBpbiByYW5nZSwgZmFsc2Ugb3RoZXJ3aXNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGVJbnRSYW5nZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlSW50UmFuZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgYm9vbGVhbiA8Qj52YWxpZGF0ZUludFJhbmdlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5DaGVja3MgaWYgYSBmaWVsZHMgdmFsdWUgaXMgd2l0aGluIGEgcmFuZ2UgKG1pbiAmYW1wOyBtYXggc3BlY2lmaWVkIGluIHRoZQorIHZhcnMgYXR0cmlidXRlKS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBUaGUgYmVhbiB2YWxpZGF0aW9uIGlzIGJlaW5nIHBlcmZvcm1lZCBvbi48REQ+PENPREU+dmE8L0NPREU+IC0gVGhlIDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4gdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgcGVyZm9ybWVkLjxERD48Q09ERT5maWVsZDwvQ09ERT4gLSBUaGUgPGNvZGU+RmllbGQ8L2NvZGU+IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQKKyAgICAgIGZpZWxkIGJlaW5nIHZhbGlkYXRlZC48REQ+PENPREU+ZXJyb3JzPC9DT0RFPiAtIFRoZSA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0byBhZGQgZXJyb3JzIHRvIGlmIGFueQorICAgICAgdmFsaWRhdGlvbiBlcnJvcnMgb2NjdXIuPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCByZXF1ZXN0IG9iamVjdC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VHJ1ZSBpZiBpbiByYW5nZSwgZmFsc2Ugb3RoZXJ3aXNlLjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGVEb3VibGVSYW5nZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlRG91YmxlUmFuZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgYm9vbGVhbiA8Qj52YWxpZGF0ZURvdWJsZVJhbmdlPC9CPihqYXZhLmxhbmcuT2JqZWN0Jm5ic3A7YmVhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5DaGVja3MgaWYgYSBmaWVsZHMgdmFsdWUgaXMgd2l0aGluIGEgcmFuZ2UgKG1pbiAmYW1wOyBtYXggc3BlY2lmaWVkIGluIHRoZQorICB2YXJzIGF0dHJpYnV0ZSkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gVGhlIGJlYW4gdmFsaWRhdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQgb24uPEREPjxDT0RFPnZhPC9DT0RFPiAtIFRoZSA8Y29kZT5WYWxpZGF0b3JBY3Rpb248L2NvZGU+IHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIHBlcmZvcm1lZC48REQ+PENPREU+ZmllbGQ8L0NPREU+IC0gVGhlIDxjb2RlPkZpZWxkPC9jb2RlPiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50CisgICAgICBmaWVsZCBiZWluZyB2YWxpZGF0ZWQuPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdG8gYWRkIGVycm9ycyB0byBpZiBhbnkKKyAgICAgIHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRydWUgaWYgaW4gcmFuZ2UsIGZhbHNlIG90aGVyd2lzZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbGlkYXRlRmxvYXRSYW5nZShqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlRmxvYXRSYW5nZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBib29sZWFuIDxCPnZhbGlkYXRlRmxvYXRSYW5nZTwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5DaGVja3MgaWYgYSBmaWVsZHMgdmFsdWUgaXMgd2l0aGluIGEgcmFuZ2UgKG1pbiAmYW1wOyBtYXggc3BlY2lmaWVkIGluIHRoZQorICB2YXJzIGF0dHJpYnV0ZSkuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gVGhlIGJlYW4gdmFsaWRhdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQgb24uPEREPjxDT0RFPnZhPC9DT0RFPiAtIFRoZSA8Y29kZT5WYWxpZGF0b3JBY3Rpb248L2NvZGU+IHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIHBlcmZvcm1lZC48REQ+PENPREU+ZmllbGQ8L0NPREU+IC0gVGhlIDxjb2RlPkZpZWxkPC9jb2RlPiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50CisgICAgICBmaWVsZCBiZWluZyB2YWxpZGF0ZWQuPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdG8gYWRkIGVycm9ycyB0byBpZiBhbnkKKyAgICAgIHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRydWUgaWYgaW4gcmFuZ2UsIGZhbHNlIG90aGVyd2lzZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbGlkYXRlQ3JlZGl0Q2FyZChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlQ3JlZGl0Q2FyZDwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuTG9uZyA8Qj52YWxpZGF0ZUNyZWRpdENhcmQ8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPkNoZWNrcyBpZiB0aGUgZmllbGQgaXMgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gVGhlIGJlYW4gdmFsaWRhdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQgb24uPEREPjxDT0RFPnZhPC9DT0RFPiAtIFRoZSA8Y29kZT5WYWxpZGF0b3JBY3Rpb248L2NvZGU+IHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIHBlcmZvcm1lZC48REQ+PENPREU+ZmllbGQ8L0NPREU+IC0gVGhlIDxjb2RlPkZpZWxkPC9jb2RlPiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50CisgICAgICBmaWVsZCBiZWluZyB2YWxpZGF0ZWQuPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdG8gYWRkIGVycm9ycyB0byBpZiBhbnkKKyAgICAgIHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRoZSBjcmVkaXQgY2FyZCBhcyBhIExvbmcsIGEgbnVsbCBpZiBpbnZhbGlkLCBibGFuaywgb3IgbnVsbC48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbGlkYXRlRW1haWwoamF2YS5sYW5nLk9iamVjdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQsIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnMsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0ZUVtYWlsPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGJvb2xlYW4gPEI+dmFsaWRhdGVFbWFpbDwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+Q2hlY2tzIGlmIGEgZmllbGQgaGFzIGEgdmFsaWQgZS1tYWlsIGFkZHJlc3MuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmJlYW48L0NPREU+IC0gVGhlIGJlYW4gdmFsaWRhdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQgb24uPEREPjxDT0RFPnZhPC9DT0RFPiAtIFRoZSA8Y29kZT5WYWxpZGF0b3JBY3Rpb248L2NvZGU+IHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIHBlcmZvcm1lZC48REQ+PENPREU+ZmllbGQ8L0NPREU+IC0gVGhlIDxjb2RlPkZpZWxkPC9jb2RlPiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50CisgICAgICBmaWVsZCBiZWluZyB2YWxpZGF0ZWQuPEREPjxDT0RFPmVycm9yczwvQ09ERT4gLSBUaGUgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdG8gYWRkIGVycm9ycyB0byBpZiBhbnkKKyAgICAgIHZhbGlkYXRpb24gZXJyb3JzIG9jY3VyLjxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIEN1cnJlbnQgcmVxdWVzdCBvYmplY3QuCis8RFQ+PEI+UmV0dXJuczo8L0I+PEREPlRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZS48L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbGlkYXRlTWF4TGVuZ3RoKGphdmEubGFuZy5PYmplY3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkLCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgordmFsaWRhdGVNYXhMZW5ndGg8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgYm9vbGVhbiA8Qj52YWxpZGF0ZU1heExlbmd0aDwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9ycy5odG1sIj5BY3Rpb25FcnJvcnM8L0E+Jm5ic3A7ZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPkNoZWNrcyBpZiB0aGUgZmllbGQncyBsZW5ndGggaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBtYXhpbXVtIHZhbHVlLgorICBBIDxjb2RlPk51bGw8L2NvZGU+IHdpbGwgYmUgY29uc2lkZXJlZCBhbiBlcnJvci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBUaGUgYmVhbiB2YWxpZGF0aW9uIGlzIGJlaW5nIHBlcmZvcm1lZCBvbi48REQ+PENPREU+dmE8L0NPREU+IC0gVGhlIDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4gdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgcGVyZm9ybWVkLjxERD48Q09ERT5maWVsZDwvQ09ERT4gLSBUaGUgPGNvZGU+RmllbGQ8L2NvZGU+IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQKKyAgICAgIGZpZWxkIGJlaW5nIHZhbGlkYXRlZC48REQ+PENPREU+ZXJyb3JzPC9DT0RFPiAtIFRoZSA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0byBhZGQgZXJyb3JzIHRvIGlmIGFueQorICAgICAgdmFsaWRhdGlvbiBlcnJvcnMgb2NjdXIuPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCByZXF1ZXN0IG9iamVjdC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VHJ1ZSBpZiBzdGF0ZWQgY29uZGl0aW9ucyBtZXQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJ2YWxpZGF0ZU1pbkxlbmd0aChqYXZhLmxhbmcuT2JqZWN0LCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRlTWluTGVuZ3RoPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIGJvb2xlYW4gPEI+dmFsaWRhdGVNaW5MZW5ndGg8L0I+KGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5DaGVja3MgaWYgdGhlIGZpZWxkJ3MgbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgbWluaW11bSB2YWx1ZS4KKyBBIDxjb2RlPk51bGw8L2NvZGU+IHdpbGwgYmUgY29uc2lkZXJlZCBhbiBlcnJvci4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YmVhbjwvQ09ERT4gLSBUaGUgYmVhbiB2YWxpZGF0aW9uIGlzIGJlaW5nIHBlcmZvcm1lZCBvbi48REQ+PENPREU+dmE8L0NPREU+IC0gVGhlIDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4gdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgcGVyZm9ybWVkLjxERD48Q09ERT5maWVsZDwvQ09ERT4gLSBUaGUgPGNvZGU+RmllbGQ8L2NvZGU+IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQKKyAgICAgIGZpZWxkIGJlaW5nIHZhbGlkYXRlZC48REQ+PENPREU+ZXJyb3JzPC9DT0RFPiAtIFRoZSA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0byBhZGQgZXJyb3JzIHRvIGlmIGFueQorICAgICAgdmFsaWRhdGlvbiBlcnJvcnMgb2NjdXIuPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gQ3VycmVudCByZXF1ZXN0IG9iamVjdC4KKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+VHJ1ZSBpZiBzdGF0ZWQgY29uZGl0aW9ucyBtZXQuPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJpc1N0cmluZyhqYXZhLmxhbmcuT2JqZWN0KSI+PCEtLSAtLT48L0E+PEgzPgoraXNTdHJpbmc8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBzdGF0aWMgYm9vbGVhbiA8Qj5pc1N0cmluZzwvQj4oamF2YS5sYW5nLk9iamVjdCZuYnNwO28pPC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBzcGVjaWZpZWQgb2JqZWN0IGlzIGEgU3RyaW5nIG9yIGEgPGNvZGU+bnVsbDwvY29kZT4KKyAgdmFsdWUuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm88L0NPREU+IC0gT2JqZWN0IHRvIGJlIHRlc3RlZAorPERUPjxCPlJldHVybnM6PC9CPjxERD5UaGUgc3RyaW5nIHZhbHVlPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9GaWVsZENoZWNrcy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGaWVsZENoZWNrcy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlMTQzMDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sCkBAIC0wLDAgKzEsNTk1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorUmVzb3VyY2VzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuUmVzb3VyY2VzLFJlc291cmNlcyBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iUmVzb3VyY2VzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1Jlc291cmNlcy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0ZPTlQ+Cis8QlI+CitDbGFzcyBSZXNvdXJjZXM8L0gyPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QKKyAgfAorICArLS08Qj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuUmVzb3VyY2VzPC9CPgorPC9QUkU+Cis8SFI+Cis8REw+Cis8RFQ+cHVibGljIGNsYXNzIDxCPlJlc291cmNlczwvQj48RFQ+ZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9ETD4KKworPFA+CitUaGlzIGNsYXNzIGhlbHBzIHByb3ZpZGVzIHNvbWUgdXNlZnVsIG1ldGhvZHMgZm9yIHJldHJpZXZpbmcgb2JqZWN0cworIGZyb20gZGlmZmVyZW50IHNjb3BlcyBvZiB0aGUgYXBwbGljYXRpb24uCis8UD4KKworPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzxEVD48Qj5WZXJzaW9uOjwvQj48L0RUPgorICA8REQ+JFJldmlzaW9uOiAxLjEgJCAkRGF0ZSQ8L0REPgorPERUPjxCPkF1dGhvcjo8L0I+PC9EVD4KKyAgPEREPkRhdmlkIFdpbnRlcmZlbGR0LCBFZGRpZSBCdXNoPC9ERD4KKzwvREw+Cis8SFI+CisKKzxQPgorPCEtLSA9PT09PT09PSBORVNURUQgQ0xBU1MgU1VNTUFSWSA9PT09PT09PSAtLT4KKworCis8IS0tID09PT09PT09PT09IEZJRUxEIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sI0FDVElPTl9FUlJPUlNfS0VZIj5BQ1RJT05fRVJST1JTX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNvdXJjZXMga2V5IHRoZSA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IGlzIHN0b3JlZCB1bmRlci48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjSFRUUF9TRVJWTEVUX1JFUVVFU1RfS0VZIj5IVFRQX1NFUlZMRVRfUkVRVUVTVF9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVzb3VyY2VzIGtleSB0aGUgPGNvZGU+SHR0cFNlcnZsZXRSZXF1ZXN0PC9jb2RlPiBpcyBzdG9yZWQgdW5kZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sI1NFUlZMRVRfQ09OVEVYVF9LRVkiPlNFUlZMRVRfQ09OVEVYVF9LRVk8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVzb3VyY2VzIGtleSB0aGUgPGNvZGU+U2VydmxldENvbnRleHQ8L2NvZGU+IGlzIHN0b3JlZCB1bmRlci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNSZXNvdXJjZXMoKSI+UmVzb3VyY2VzPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwjZ2V0QWN0aW9uRXJyb3IoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj5nZXRBY3Rpb25FcnJvcjwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24mbmJzcDt2YSwKKyAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHMgdGhlIDxjb2RlPkFjdGlvbkVycm9yPC9jb2RlPiBiYXNlZCBvbiB0aGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiBtZXNzYWdlIGFuZCB0aGUKKyA8Y29kZT5GaWVsZDwvY29kZT4ncyBhcmcgb2JqZWN0cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZ1tdPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRBcmdzKGphdmEubGFuZy5TdHJpbmcsIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPmdldEFyZ3M8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7YWN0aW9uTmFtZSwKKyAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Jm5ic3A7bWVzc2FnZXMsCisgICAgICAgIGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHMgdGhlIG1lc3NhZ2UgYXJndW1lbnRzIGJhc2VkIG9uIHRoZSBjdXJyZW50IDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4KKyBhbmQgPGNvZGU+RmllbGQ8L2NvZGU+LjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLnV0aWwuTG9jYWxlPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldExvY2FsZTwvQT48L0I+KGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R2V0IHRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9mIHRoZSBjdXJyZW50IHVzZXIuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sI2dldE1lc3NhZ2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPmdldE1lc3NhZ2U8L0E+PC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHMgdGhlIDxjb2RlPkxvY2FsZTwvY29kZT4gc2Vuc2l0aXZlIHZhbHVlIGJhc2VkIG9uIHRoZSBrZXkgcGFzc2VkIGluLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZykiPmdldE1lc3NhZ2U8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4mbmJzcDttZXNzYWdlcywKKyAgICAgICAgICAgamF2YS51dGlsLkxvY2FsZSZuYnNwO2xvY2FsZSwKKyAgICAgICAgICAgamF2YS5sYW5nLlN0cmluZyZuYnNwO2tleSk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHMgdGhlIDxjb2RlPkxvY2FsZTwvY29kZT4gc2Vuc2l0aXZlIHZhbHVlIGJhc2VkIG9uIHRoZSBrZXkgcGFzc2VkIGluLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5zdGF0aWMmbmJzcDtqYXZhLmxhbmcuU3RyaW5nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb24sIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQpIj5nZXRNZXNzYWdlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+Jm5ic3A7bWVzc2FnZXMsCisgICAgICAgICAgIGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHMgdGhlIGxvY2FsZSBzZW5zaXRpdmUgbWVzc2FnZSBiYXNlZCBvbiB0aGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiBtZXNzYWdlIGFuZCB0aGUKKyA8Y29kZT5GaWVsZDwvY29kZT4ncyBhcmcgb2JqZWN0cy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5nZXRNZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXRyaWV2ZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBmb3IgdGhlIG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPk1lc3NhZ2VSZXNvdXJjZXM8L0E+PC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRNZXNzYWdlUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj5nZXRNZXNzYWdlUmVzb3VyY2VzPC9BPjwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2FwcGxpY2F0aW9uKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBtZXRob2QgY2FuIG9ubHkgcmV0dXJuIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0CisgIG1vZHVsZS4gIFVzZSBnZXRNZXNzYWdlUmVzb3VyY2VzKEh0dHBTZXJ2bGV0UmVxdWVzdCkgdG8gZ2V0IHRoZQorICByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IG1vZHVsZS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzb3VyY2VzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRWYWxpZGF0b3JSZXNvdXJjZXMoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkiPmdldFZhbGlkYXRvclJlc291cmNlczwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDthcHBsaWNhdGlvbik8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkluIFN0cnV0cyAxLjEgVGhpcyBtZXRob2QgY2FuIG9ubHkgcmV0dXJuIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0CisgIG1vZHVsZS4gIFVzZSBnZXRWYWxpZGF0b3JSZXNvdXJjZXMoSHR0cFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCkKKyAgdG8gZ2V0IHRoZSByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIG1vZHVsZS48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzb3VyY2VzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCNnZXRWYWxpZGF0b3JSZXNvdXJjZXMoamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPmdldFZhbGlkYXRvclJlc291cmNlczwvQT48L0I+KGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQmbmJzcDthcHBsaWNhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHJpZXZlIDxjb2RlPlZhbGlkYXRvclJlc291cmNlczwvY29kZT4gZm9yIHRoZSBjdXJyZW50IG1vZHVsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3I8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sI2luaXRWYWxpZGF0b3IoamF2YS5sYW5nLlN0cmluZywgamF2YS5sYW5nLk9iamVjdCwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCwgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9ycywgaW50KSI+aW5pdFZhbGlkYXRvcjwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgIGphdmEubGFuZy5PYmplY3QmbmJzcDtiZWFuLAorICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7YXBwbGljYXRpb24sCisgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4mbmJzcDtlcnJvcnMsCisgICAgICAgICAgICAgIGludCZuYnNwO3BhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbml0aWFsaXplIHRoZSA8Y29kZT5WYWxpZGF0b3I8L2NvZGU+IHRvIHBlcmZvcm0gdmFsaWRhdGlvbi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlNFUlZMRVRfQ09OVEVYVF9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK1NFUlZMRVRfQ09OVEVYVF9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5TRVJWTEVUX0NPTlRFWFRfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlJlc291cmNlcyBrZXkgdGhlIDxjb2RlPlNlcnZsZXRDb250ZXh0PC9jb2RlPiBpcyBzdG9yZWQgdW5kZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJIVFRQX1NFUlZMRVRfUkVRVUVTVF9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK0hUVFBfU0VSVkxFVF9SRVFVRVNUX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPkhUVFBfU0VSVkxFVF9SRVFVRVNUX0tFWTwvQj48L1BSRT4KKzxETD4KKzxERD5SZXNvdXJjZXMga2V5IHRoZSA8Y29kZT5IdHRwU2VydmxldFJlcXVlc3Q8L2NvZGU+IGlzIHN0b3JlZCB1bmRlci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IkFDVElPTl9FUlJPUlNfS0VZIj48IS0tIC0tPjwvQT48SDM+CitBQ1RJT05fRVJST1JTX0tFWTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nIDxCPkFDVElPTl9FUlJPUlNfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPlJlc291cmNlcyBrZXkgdGhlIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gaXMgc3RvcmVkIHVuZGVyLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlJlc291cmNlcygpIj48IS0tIC0tPjwvQT48SDM+CitSZXNvdXJjZXM8L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5SZXNvdXJjZXM8L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImdldFZhbGlkYXRvclJlc291cmNlcyhqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsaWRhdG9yUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzb3VyY2VzIDxCPmdldFZhbGlkYXRvclJlc291cmNlczwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2FwcGxpY2F0aW9uKTwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPkluIFN0cnV0cyAxLjEgVGhpcyBtZXRob2QgY2FuIG9ubHkgcmV0dXJuIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0CisgIG1vZHVsZS4gIFVzZSBnZXRWYWxpZGF0b3JSZXNvdXJjZXMoSHR0cFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCkKKyAgdG8gZ2V0IHRoZSByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIG1vZHVsZS48L0k+Cis8UD4KKzxERD5SZXRyaWV2ZSA8Y29kZT5WYWxpZGF0b3JSZXNvdXJjZXM8L2NvZGU+IGZvciB0aGUgbW9kdWxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5hcHBsaWNhdGlvbjwvQ09ERT4gLSBzZXJ2bGV0IGNvbnRleHQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldFZhbGlkYXRvclJlc291cmNlcyhqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0VmFsaWRhdG9yUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzb3VyY2VzIDxCPmdldFZhbGlkYXRvclJlc291cmNlczwvQj4oamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2FwcGxpY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+UmV0cmlldmUgPGNvZGU+VmFsaWRhdG9yUmVzb3VyY2VzPC9jb2RlPiBmb3IgdGhlIGN1cnJlbnQgbW9kdWxlLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5hcHBsaWNhdGlvbjwvQ09ERT4gLSBBcHBsaWNhdGlvbiBDb250ZXh0PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIFNlcnZsZXRSZXF1ZXN0PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5nZXRNZXNzYWdlUmVzb3VyY2VzPC9CPihqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0Jm5ic3A7YXBwbGljYXRpb24pPC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBtZXRob2QgY2FuIG9ubHkgcmV0dXJuIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBkZWZhdWx0CisgIG1vZHVsZS4gIFVzZSBnZXRNZXNzYWdlUmVzb3VyY2VzKEh0dHBTZXJ2bGV0UmVxdWVzdCkgdG8gZ2V0IHRoZQorICByZXNvdXJjZXMgZm9yIHRoZSBjdXJyZW50IG1vZHVsZS48L0k+Cis8UD4KKzxERD5SZXRyaWV2ZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBmb3IgdGhlIGFwcGxpY2F0aW9uIG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+YXBwbGljYXRpb248L0NPREU+IC0gc2VydmxldCBjb250ZXh0PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlUmVzb3VyY2VzKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CitnZXRNZXNzYWdlUmVzb3VyY2VzPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5nZXRNZXNzYWdlUmVzb3VyY2VzPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5SZXRyaWV2ZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBmb3IgdGhlIG1vZHVsZS4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSB0aGUgc2VydmxldCByZXF1ZXN0PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRMb2NhbGUoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldExvY2FsZTwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLnV0aWwuTG9jYWxlIDxCPmdldExvY2FsZTwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+R2V0IHRoZSA8Y29kZT5Mb2NhbGU8L2NvZGU+IG9mIHRoZSBjdXJyZW50IHVzZXIuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gc2VydmxldCByZXF1ZXN0PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRNZXNzYWdlKG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcywgamF2YS51dGlsLkxvY2FsZSwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4mbmJzcDttZXNzYWdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLmxhbmcuU3RyaW5nJm5ic3A7a2V5KTwvUFJFPgorPERMPgorPEREPkdldHMgdGhlIDxjb2RlPkxvY2FsZTwvY29kZT4gc2Vuc2l0aXZlIHZhbHVlIGJhc2VkIG9uIHRoZSBrZXkgcGFzc2VkIGluLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5tZXNzYWdlczwvQ09ERT4gLSBUaGUgTWVzc2FnZSByZXNvdXJjZXM8REQ+PENPREU+bG9jYWxlPC9DT0RFPiAtIFRoZSBsb2NhbGUuPEREPjxDT0RFPmtleTwvQ09ERT4gLSBLZXkgdXNlZCB0byBsb29rdXAgdGhlIG1lc3NhZ2U8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2UoamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCwgamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPihqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXkpPC9QUkU+Cis8REw+Cis8REQ+R2V0cyB0aGUgPGNvZGU+TG9jYWxlPC9jb2RlPiBzZW5zaXRpdmUgdmFsdWUgYmFzZWQgb24gdGhlIGtleSBwYXNzZWQgaW4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gc2VydmxldCByZXF1ZXN0PEREPjxDT0RFPmtleTwvQ09ERT4gLSB0aGUgcmVxdWVzdCBrZXk8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldE1lc3NhZ2Uob3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzLCBqYXZhLnV0aWwuTG9jYWxlLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiwgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldE1lc3NhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRNZXNzYWdlPC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+TWVzc2FnZVJlc291cmNlczwvQT4mbmJzcDttZXNzYWdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmEudXRpbC5Mb2NhbGUmbmJzcDtsb2NhbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbiZuYnNwO3ZhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5GaWVsZCZuYnNwO2ZpZWxkKTwvUFJFPgorPERMPgorPEREPkdldHMgdGhlIGxvY2FsZSBzZW5zaXRpdmUgbWVzc2FnZSBiYXNlZCBvbiB0aGUgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPiBtZXNzYWdlIGFuZCB0aGUKKyA8Y29kZT5GaWVsZDwvY29kZT4ncyBhcmcgb2JqZWN0cy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWVzc2FnZXM8L0NPREU+IC0gVGhlIE1lc3NhZ2UgcmVzb3VyY2VzPEREPjxDT0RFPmxvY2FsZTwvQ09ERT4gLSBUaGUgbG9jYWxlPEREPjxDT0RFPnZhPC9DT0RFPiAtIFRoZSBWYWxpZGF0b3IgQWN0aW9uPEREPjxDT0RFPmZpZWxkPC9DT0RFPiAtIFRoZSBWYWxpZGF0b3IgRmllbGQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFjdGlvbkVycm9yKGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QsIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QWN0aW9uRXJyb3I8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPkFjdGlvbkVycm9yPC9BPiA8Qj5nZXRBY3Rpb25FcnJvcjwvQj4oamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uJm5ic3A7dmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuRmllbGQmbmJzcDtmaWVsZCk8L1BSRT4KKzxETD4KKzxERD5HZXRzIHRoZSA8Y29kZT5BY3Rpb25FcnJvcjwvY29kZT4gYmFzZWQgb24gdGhlIDxjb2RlPlZhbGlkYXRvckFjdGlvbjwvY29kZT4gbWVzc2FnZSBhbmQgdGhlCisgPGNvZGU+RmllbGQ8L2NvZGU+J3MgYXJnIG9iamVjdHMuCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gdGhlIHNlcnZsZXQgcmVxdWVzdDxERD48Q09ERT52YTwvQ09ERT4gLSBWYWxpZGF0b3IgYWN0aW9uPEREPjxDT0RFPmZpZWxkPC9DT0RFPiAtIHRoZSB2YWxpZGF0b3IgRmllbGQ8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImdldEFyZ3MoamF2YS5sYW5nLlN0cmluZywgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzLCBqYXZhLnV0aWwuTG9jYWxlLCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0QXJnczwvSDM+Cis8UFJFPgorcHVibGljIHN0YXRpYyBqYXZhLmxhbmcuU3RyaW5nW10gPEI+Z2V0QXJnczwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO2FjdGlvbk5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiZuYnNwO21lc3NhZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZhLnV0aWwuTG9jYWxlJm5ic3A7bG9jYWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLkZpZWxkJm5ic3A7ZmllbGQpPC9QUkU+Cis8REw+Cis8REQ+R2V0cyB0aGUgbWVzc2FnZSBhcmd1bWVudHMgYmFzZWQgb24gdGhlIGN1cnJlbnQgPGNvZGU+VmFsaWRhdG9yQWN0aW9uPC9jb2RlPgorIGFuZCA8Y29kZT5GaWVsZDwvY29kZT4uCis8UD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPmFjdGlvbk5hbWU8L0NPREU+IC0gYWN0aW9uIG5hbWU8REQ+PENPREU+bWVzc2FnZXM8L0NPREU+IC0gbWVzc2FnZSByZXNvdXJjZXM8REQ+PENPREU+bG9jYWxlPC9DT0RFPiAtIHRoZSBsb2NhbGU8REQ+PENPREU+ZmllbGQ8L0NPREU+IC0gdGhlIHZhbGlkYXRvciBmaWVsZDwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdFZhbGlkYXRvcihqYXZhLmxhbmcuU3RyaW5nLCBqYXZhLmxhbmcuT2JqZWN0LCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzLCBpbnQpIj48IS0tIC0tPjwvQT48SDM+Citpbml0VmFsaWRhdG9yPC9IMz4KKzxQUkU+CitwdWJsaWMgc3RhdGljIG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yIDxCPmluaXRWYWxpZGF0b3I8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLk9iamVjdCZuYnNwO2JlYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCZuYnNwO2FwcGxpY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiZuYnNwO2Vycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQmbmJzcDtwYWdlKTwvUFJFPgorPERMPgorPEREPkluaXRpYWxpemUgdGhlIDxjb2RlPlZhbGlkYXRvcjwvY29kZT4gdG8gcGVyZm9ybSB2YWxpZGF0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5rZXk8L0NPREU+IC0gVGhlIGtleSB0aGF0IHRoZSB2YWxpZGF0aW9uIHJ1bGVzIGFyZSB1bmRlciAodGhlIGZvcm0gZWxlbWVudHMgCisgbmFtZSBhdHRyaWJ1dGUpLjxERD48Q09ERT5iZWFuPC9DT0RFPiAtIFRoZSBiZWFuIHZhbGlkYXRpb24gaXMgYmVpbmcgcGVyZm9ybWVkIG9uLjxERD48Q09ERT5hcHBsaWNhdGlvbjwvQ09ERT4gLSBzZXJ2bGV0IGNvbnRleHQ8REQ+PENPREU+cmVxdWVzdDwvQ09ERT4gLSBUaGUgY3VycmVudCByZXF1ZXN0IG9iamVjdC48REQ+PENPREU+ZXJyb3JzPC9DT0RFPiAtIFRoZSBvYmplY3QgYW55IGVycm9ycyB3aWxsIGJlIHN0b3JlZCBpbi48REQ+PENPREU+cGFnZTwvQ09ERT4gLSBUaGlzIGluIGNvbmp1bmN0aW9uIHdpdGggIHRoZSBwYWdlIHByb3BlcnR5IG9mIGEgCisgPGNvZGU+RmllbGQ8Y29kZT4gY2FuIGNvbnRyb2wgdGhlIHByb2Nlc3Npbmcgb2YgZmllbGRzLiAgSWYgdGhlIGZpZWxkJ3MgCisgcGFnZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhpcyBwYWdlIHZhbHVlLCBpdCB3aWxsIGJlIHByb2Nlc3NlZC48L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1Jlc291cmNlcy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOWRhOWZjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwKQEAgLTAsMCArMSwzNTEgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitWYWxpZGF0b3JBY3Rpb25Gb3JtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uRm9ybSxWYWxpZGF0b3JBY3Rpb25Gb3JtIGNsYXNzIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJWYWxpZGF0b3JBY3Rpb25Gb3JtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1Jlc291cmNlcy5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8IS0tID09PT09PT09IFNUQVJUIE9GIENMQVNTIERBVEEgPT09PT09PT0gLS0+Cis8SDI+Cis8Rk9OVCBTSVpFPSItMSI+CitvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0ZPTlQ+Cis8QlI+CitDbGFzcyBWYWxpZGF0b3JBY3Rpb25Gb3JtPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm08L0E+CisgICAgICAgIHwKKyAgICAgICAgKy0tPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvckZvcm08L0E+CisgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbkZvcm08L0I+Cis8L1BSRT4KKzxETD4KKzxEVD48Qj5BbGwgSW1wbGVtZW50ZWQgSW50ZXJmYWNlczo8L0I+IDxERD5qYXZhLmlvLlNlcmlhbGl6YWJsZTwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5WYWxpZGF0b3JBY3Rpb25Gb3JtPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwiPlZhbGlkYXRvckZvcm08L0E+PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KKzxwPlRoaXMgY2xhc3MgZXh0ZW5kcyA8c3Ryb25nPlZhbGlkYXRvckZvcm08L3N0cm9uZz4gYW5kIHByb3ZpZGVzCisgYmFzaWMgZmllbGQgdmFsaWRhdGlvbiBiYXNlZCBvbiBhbiBYTUwgZmlsZS4gIFRoZSBrZXkgcGFzc2VkIGludG8gdGhlCisgdmFsaWRhdG9yIGlzIHRoZSBhY3Rpb24gZWxlbWVudCdzICdwYXRoJyBhdHRyaWJ1dGUgZnJvbSB0aGUKKyBzdHJ1dHMtY29uZmlnLnhtbCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIGZvcm0gZWxlbWVudCdzIG5hbWUgYXR0cmlidXRlCisgaW4gdGhlIHZhbGlkYXRpb24ueG1sLjwvcD4KKworIDx1bD48bGk+U2VlIDxjb2RlPlZhbGlkYXRvclBsdWdpbjwvY29kZT4gZGVmaW5pdGlvbiBpbiBzdHJ1dHMtY29uZmlnLnhtbAorIGZvciB2YWxpZGF0aW9uIHJ1bGVzLjwvbGk+PC91bD4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+RGF2aWQgV2ludGVyZmVsZHQ8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vc2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbkZvcm0iPlNlcmlhbGl6ZWQgRm9ybTwvQT48L0RMPgorPEhSPgorCis8UD4KKzwhLS0gPT09PT09PT0gTkVTVEVEIENMQVNTIFNVTU1BUlkgPT09PT09PT0gLS0+CisKKworPCEtLSA9PT09PT09PT09PSBGSUVMRCBTVU1NQVJZID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sI2xvZyI+bG9nPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvckZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwiPlZhbGlkYXRvckZvcm08L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNwYWdlIj5wYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCN2YWxpZGF0b3JSZXN1bHRzIj52YWxpZGF0b3JSZXN1bHRzPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNtdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciI+bXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCNWYWxpZGF0b3JBY3Rpb25Gb3JtKCkiPlZhbGlkYXRvckFjdGlvbkZvcm08L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlPC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtWYWxpZGF0ZSB0aGUgcHJvcGVydGllcyB0aGF0IGhhdmUgYmVlbiBzZXQgZnJvbSB0aGlzIEhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvckZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj5WYWxpZGF0b3JGb3JtPC9BPjwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwjZ2V0UGFnZSgpIj5nZXRQYWdlPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNnZXRSZXN1bHRWYWx1ZU1hcCgpIj5nZXRSZXN1bHRWYWx1ZU1hcDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwjZ2V0VmFsaWRhdG9yUmVzdWx0cygpIj5nZXRWYWxpZGF0b3JSZXN1bHRzPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZykiPmxvZzwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwjbG9nKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5UaHJvd2FibGUpIj5sb2c8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sI3Jlc2V0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+cmVzZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sI3NldFBhZ2UoaW50KSI+c2V0UGFnZTwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwjc2V0VmFsaWRhdG9yUmVzdWx0cyhvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvclJlc3VsdHMpIj5zZXRWYWxpZGF0b3JSZXN1bHRzPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+QWN0aW9uRm9ybTwvQT48L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI2dldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyKCkiPmdldE11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNnZXRTZXJ2bGV0KCkiPmdldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI2dldFNlcnZsZXRXcmFwcGVyKCkiPmdldFNlcnZsZXRXcmFwcGVyPC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNzZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcihvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIpIj5zZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjc2V0U2VydmxldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCkiPnNldFNlcnZsZXQ8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3ZhbGlkYXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGU8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOzxBIE5BTUU9Im1ldGhvZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3NfamF2YS5sYW5nLk9iamVjdCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3MgamF2YS5sYW5nLk9iamVjdDwvQj48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPmNsb25lLCBlcXVhbHMsIGZpbmFsaXplLCBnZXRDbGFzcywgaGFzaENvZGUsIG5vdGlmeSwgbm90aWZ5QWxsLCB0b1N0cmluZywgd2FpdCwgd2FpdCwgd2FpdDwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorCis8IS0tID09PT09PT09PT09PSBGSUVMRCBERVRBSUwgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9ImZpZWxkX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEEgTkFNRT0ibG9nIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3ByaXZhdGUgc3RhdGljIG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZyA8Qj5sb2c8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+Q29uc3RydWN0b3IgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9IlZhbGlkYXRvckFjdGlvbkZvcm0oKSI+PCEtLSAtLT48L0E+PEgzPgorVmFsaWRhdG9yQWN0aW9uRm9ybTwvSDM+Cis8UFJFPgorcHVibGljIDxCPlZhbGlkYXRvckFjdGlvbkZvcm08L0I+KCk8L1BSRT4KKzxETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5NZXRob2QgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9InZhbGlkYXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+PCEtLSAtLT48L0E+PEgzPgordmFsaWRhdGU8L0gzPgorPFBSRT4KK3B1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3JzLmh0bWwiPkFjdGlvbkVycm9yczwvQT4gPEI+dmFsaWRhdGU8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9QUkU+Cis8REw+Cis8REQ+VmFsaWRhdGUgdGhlIHByb3BlcnRpZXMgdGhhdCBoYXZlIGJlZW4gc2V0IGZyb20gdGhpcyBIVFRQIHJlcXVlc3QsCisgYW5kIHJldHVybiBhbiA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyBhbnkKKyB2YWxpZGF0aW9uIGVycm9ycyB0aGF0IGhhdmUgYmVlbiBmb3VuZC4gIElmIG5vIGVycm9ycyBhcmUgZm91bmQsIHJldHVybgorIDxjb2RlPm51bGw8L2NvZGU+IG9yIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHdpdGggbm8KKyByZWNvcmRlZCBlcnJvciBtZXNzYWdlcy4KKzxQPgorPEREPjxETD4KKzxEVD48Qj5PdmVycmlkZXM6PC9CPjxERD48Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sI3ZhbGlkYXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGU8L0E+PC9DT0RFPiBpbiBjbGFzcyA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj5WYWxpZGF0b3JGb3JtPC9BPjwvQ09ERT48L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPm1hcHBpbmc8L0NPREU+IC0gVGhlIG1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZTxERD48Q09ERT5yZXF1ZXN0PC9DT0RFPiAtIFRoZSBzZXJ2bGV0IHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+PGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgYW55IHZhbGlkYXRpb24gZXJyb3JzPC9ETD4KKzwvREQ+Cis8L0RMPgorPCEtLSA9PT09PT09PT0gRU5EIE9GIENMQVNTIERBVEEgPT09PT09PT09IC0tPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9WYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ1MmYyYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sCkBAIC0wLDAgKzEsNTk0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVmFsaWRhdG9yRm9ybSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvckZvcm0sVmFsaWRhdG9yRm9ybSBjbGFzcyI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVmFsaWRhdG9yRm9ybSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9WYWxpZGF0b3JGb3JtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VXNlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPjxCPlBSRVYgQ0xBU1M8L0I+PC9BPiZuYnNwOworJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVmFsaWRhdG9yRm9ybS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9GT05UPgorPEJSPgorQ2xhc3MgVmFsaWRhdG9yRm9ybTwvSDI+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdAorICB8CisgICstLTxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtPC9BPgorICAgICAgICB8CisgICAgICAgICstLTxCPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5WYWxpZGF0b3JGb3JtPC9CPgorPC9QUkU+Cis8REw+Cis8RFQ+PEI+QWxsIEltcGxlbWVudGVkIEludGVyZmFjZXM6PC9CPiA8REQ+amF2YS5pby5TZXJpYWxpemFibGU8L0REPgorPC9ETD4KKzxETD4KKzxEVD48Qj5EaXJlY3QgS25vd24gU3ViY2xhc3Nlczo8L0I+IDxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIj5WYWxpZGF0b3JBY3Rpb25Gb3JtPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5WYWxpZGF0b3JGb3JtPC9CPjxEVD5leHRlbmRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PERUPmltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGU8L0RMPgorCis8UD4KKzxwPlRoaXMgY2xhc3MgZXh0ZW5kcyA8c3Ryb25nPkFjdGlvbkZvcm08L3N0cm9uZz4gYW5kIHByb3ZpZGVzCisgYmFzaWMgZmllbGQgdmFsaWRhdGlvbiBiYXNlZCBvbiBhbiBYTUwgZmlsZS4gIFRoZSBrZXkgcGFzc2VkIGludG8gdGhlCisgdmFsaWRhdG9yIGlzIHRoZSBhY3Rpb24gZWxlbWVudCdzICduYW1lJyBhdHRyaWJ1dGUgZnJvbSB0aGUKKyBzdHJ1dHMtY29uZmlnLnhtbCB3aGljaCBzaG91bGQgbWF0Y2ggdGhlIGZvcm0gZWxlbWVudCdzIG5hbWUgYXR0cmlidXRlCisgaW4gdGhlIHZhbGlkYXRpb24ueG1sLjwvcD4KKworIDx1bD48bGk+U2VlIDxjb2RlPlZhbGlkYXRvclBsdWdpbjwvY29kZT4gZGVmaW5pdGlvbiBpbiBzdHJ1dHMtY29uZmlnLnhtbAorIGZvciB2YWxpZGF0aW9uIHJ1bGVzLjwvbGk+PC91bD4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+RGF2aWQgV2ludGVyZmVsZHQ8L0REPgorPERUPjxCPlNlZSBBbHNvOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+PENPREU+QWN0aW9uRm9ybTwvQ09ERT48L0E+LCAKKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL3NlcmlhbGl6ZWQtZm9ybS5odG1sIiBUQVJHRVQ9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5WYWxpZGF0b3JGb3JtIj5TZXJpYWxpemVkIEZvcm08L0E+PC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSBzdGF0aWMmbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNsb2ciPmxvZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNwYWdlIj5wYWdlPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1VzZWQgdG8gaW5kaWNhdGUgdGhlIGN1cnJlbnQgcGFnZSBvZiBhIG11bHRpLXBhZ2UgZm9ybS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO29yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzdWx0czwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sI3ZhbGlkYXRvclJlc3VsdHMiPnZhbGlkYXRvclJlc3VsdHM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIHJlc3VsdHMgcmV0dXJuZWQgZnJvbSB0aGUgdmFsaWRhdGlvbiBwZXJmb3JtZWQKKyBieSB0aGUgPGNvZGU+VmFsaWRhdG9yPC9jb2RlPi48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJmaWVsZHNfaW5oZXJpdGVkX2Zyb21fY2xhc3Nfb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5GaWVsZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNtdWx0aXBhcnRSZXF1ZXN0SGFuZGxlciI+bXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPgorCis8QSBOQU1FPSJjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNWYWxpZGF0b3JGb3JtKCkiPlZhbGlkYXRvckZvcm08L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtpbnQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNnZXRQYWdlKCkiPmdldFBhZ2U8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXRzIHBhZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2phdmEudXRpbC5NYXA8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNnZXRSZXN1bHRWYWx1ZU1hcCgpIj5nZXRSZXN1bHRWYWx1ZU1hcDwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1JldHVybnMgYSA8Y29kZT5NYXA8L2NvZGU+IG9mIHZhbHVlcyByZXR1cm5lZAorIGZyb20gYW55IHZhbGlkYXRpb24gdGhhdCByZXR1cm5zIGEgdmFsdWUgb3RoZXIgdGhhbgorIDxjb2RlPm51bGw8L2NvZGU+IG9yIDxjb2RlPkJvb2xlYW48L2NvZGU+IHdpdGggdGhlCisga2V5IHRoZSBmdWxsIHByb3BlcnR5IHBhdGggb2YgdGhlIGZpZWxkLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDtvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvclJlc3VsdHM8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNnZXRWYWxpZGF0b3JSZXN1bHRzKCkiPmdldFZhbGlkYXRvclJlc3VsdHM8L0E+PC9CPigpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHZXQgcmVzdWx0cyBvZiB0aGUgdmFsaWRhdGlvbiBwZXJmb3JtZWQgYnkgdGhlCisgPGNvZGU+VmFsaWRhdG9yPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNsb2coamF2YS5sYW5nLlN0cmluZykiPmxvZzwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDttZXNzYWdlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbi1sb2dnaW5nIHRvIGxvZyBkZWJ1ZyBtZXNzYWdlcy48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByb3RlY3RlZCAmbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwjbG9nKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5UaHJvd2FibGUpIj5sb2c8L0E+PC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSwKKyAgICBqYXZhLmxhbmcuVGhyb3dhYmxlJm5ic3A7dGhyb3dhYmxlKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VXNlIGNvbW1vbi1sb2dnaW5nIHRvIGxvZyBkZWJ1ZyBtZXNzYWdlcy48L0k+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNyZXNldChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkiPnJlc2V0PC9BPjwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCZuYnNwO3JlcXVlc3QpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXNldCBhbGwgcHJvcGVydGllcyB0byB0aGVpciBkZWZhdWx0IHZhbHVlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sI3NldFBhZ2UoaW50KSI+c2V0UGFnZTwvQT48L0I+KGludCZuYnNwO3BhZ2UpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIHBhZ2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCNzZXRWYWxpZGF0b3JSZXN1bHRzKG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzdWx0cykiPnNldFZhbGlkYXRvclJlc3VsdHM8L0E+PC9CPihvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvclJlc3VsdHMmbmJzcDt2YWxpZGF0b3JSZXN1bHRzKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7U2V0IHJlc3VsdHMgb2YgdGhlIHZhbGlkYXRpb24gcGVyZm9ybWVkIGJ5IHRoZQorIDxjb2RlPlZhbGlkYXRvcjwvY29kZT4uPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sI3ZhbGlkYXRlKG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nLCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0KSI+dmFsaWRhdGU8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5BY3Rpb25NYXBwaW5nPC9BPiZuYnNwO21hcHBpbmcsCisgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1ZhbGlkYXRlIHRoZSBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBiZWVuIHNldCBmcm9tIHRoaXMgSFRUUCByZXF1ZXN0LAorIGFuZCByZXR1cm4gYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QgdGhhdCBlbmNhcHN1bGF0ZXMgYW55CisgdmFsaWRhdGlvbiBlcnJvcnMgdGhhdCBoYXZlIGJlZW4gZm91bmQuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREPjxCPk1ldGhvZHMgaW5oZXJpdGVkIGZyb20gY2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNnZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcigpIj5nZXRNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjZ2V0U2VydmxldCgpIj5nZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCNnZXRTZXJ2bGV0V3JhcHBlcigpIj5nZXRTZXJ2bGV0V3JhcHBlcjwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjcmVzZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3QpIj5yZXNldDwvQT4sIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjc2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIob3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLk11bHRpcGFydFJlcXVlc3RIYW5kbGVyKSI+c2V0TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+LCA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sI3NldFNlcnZsZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQpIj5zZXRTZXJ2bGV0PC9BPiwgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCN2YWxpZGF0ZShvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZywgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdCkiPnZhbGlkYXRlPC9BPjwvQ09ERT48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDs8QSBOQU1FPSJtZXRob2RzX2luaGVyaXRlZF9mcm9tX2NsYXNzX2phdmEubGFuZy5PYmplY3QiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURD48Qj5NZXRob2RzIGluaGVyaXRlZCBmcm9tIGNsYXNzIGphdmEubGFuZy5PYmplY3Q8L0I+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48Q09ERT5jbG9uZSwgZXF1YWxzLCBmaW5hbGl6ZSwgZ2V0Q2xhc3MsIGhhc2hDb2RlLCBub3RpZnksIG5vdGlmeUFsbCwgdG9TdHJpbmcsIHdhaXQsIHdhaXQsIHdhaXQ8L0NPREU+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPgorCis8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+RmllbGQgRGV0YWlsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxBIE5BTUU9ImxvZyI+PCEtLSAtLT48L0E+PEgzPgorbG9nPC9IMz4KKzxQUkU+Citwcml2YXRlIHN0YXRpYyBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2cgPEI+bG9nPC9CPjwvUFJFPgorPERMPgorPEREPkNvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InZhbGlkYXRvclJlc3VsdHMiPjwhLS0gLS0+PC9BPjxIMz4KK3ZhbGlkYXRvclJlc3VsdHM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvclJlc3VsdHMgPEI+dmFsaWRhdG9yUmVzdWx0czwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVzdWx0cyByZXR1cm5lZCBmcm9tIHRoZSB2YWxpZGF0aW9uIHBlcmZvcm1lZAorIGJ5IHRoZSA8Y29kZT5WYWxpZGF0b3I8L2NvZGU+LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icGFnZSI+PCEtLSAtLT48L0E+PEgzPgorcGFnZTwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIGludCA8Qj5wYWdlPC9CPjwvUFJFPgorPERMPgorPEREPlVzZWQgdG8gaW5kaWNhdGUgdGhlIGN1cnJlbnQgcGFnZSBvZiBhIG11bHRpLXBhZ2UgZm9ybS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJWYWxpZGF0b3JGb3JtKCkiPjwhLS0gLS0+PC9BPjxIMz4KK1ZhbGlkYXRvckZvcm08L0gzPgorPFBSRT4KK3B1YmxpYyA8Qj5WYWxpZGF0b3JGb3JtPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRQYWdlKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2dldFBhZ2U8L0gzPgorPFBSRT4KK3B1YmxpYyBpbnQgPEI+Z2V0UGFnZTwvQj4oKTwvUFJFPgorPERMPgorPEREPkdldHMgcGFnZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5wYWdlIG51bWJlcjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ic2V0UGFnZShpbnQpIj48IS0tIC0tPjwvQT48SDM+CitzZXRQYWdlPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYWdlPC9CPihpbnQmbmJzcDtwYWdlKTwvUFJFPgorPERMPgorPEREPlNldHMgcGFnZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+cGFnZTwvQ09ERT4gLSBwYWdlIG51bWJlcjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0idmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+Cit2YWxpZGF0ZTwvSDM+Cis8UFJFPgorcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+QWN0aW9uRXJyb3JzPC9BPiA8Qj52YWxpZGF0ZTwvQj4oPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4mbmJzcDttYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Jm5ic3A7cmVxdWVzdCk8L1BSRT4KKzxETD4KKzxERD5WYWxpZGF0ZSB0aGUgcHJvcGVydGllcyB0aGF0IGhhdmUgYmVlbiBzZXQgZnJvbSB0aGlzIEhUVFAgcmVxdWVzdCwKKyBhbmQgcmV0dXJuIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0IHRoYXQgZW5jYXBzdWxhdGVzIGFueQorIHZhbGlkYXRpb24gZXJyb3JzIHRoYXQgaGF2ZSBiZWVuIGZvdW5kLiAgSWYgbm8gZXJyb3JzIGFyZSBmb3VuZCwgcmV0dXJuCisgPGNvZGU+bnVsbDwvY29kZT4gb3IgYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3Qgd2l0aCBubworIHJlY29yZGVkIGVycm9yIG1lc3NhZ2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjdmFsaWRhdGUob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj52YWxpZGF0ZTwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgbWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworPERUPjxCPlJldHVybnM6PC9CPjxERD48Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCB0aGF0IGVuY2Fwc3VsYXRlcyBhbnkgIHZhbGlkYXRpb24gZXJyb3JzPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJsb2coamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHJvdGVjdGVkIHZvaWQgPEI+bG9nPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7bWVzc2FnZSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgY29tbW9uLWxvZ2dpbmcgdG8gbG9nIGRlYnVnIG1lc3NhZ2VzLjwvST4KKzxQPgorPEREPkNvbnZlbmllbmNlIG1ldGhvZCB0aGF0IGNhbGwgdGhlIGNvbXBhcmFibGUgc2VydmxldCBsb2cgbWV0aG9kIGFuZCB3cml0ZXMKKyBhbiBleHBsYW5hdG9yeSBtZXNzYWdlIGFuZCBhIHN0YWNrIHRyYWNlIGZvciBhIGdpdmVuIFRocm93YWJsZSBleGNlcHRpb24gdG8gdGhlCisgc2VydmxldCBsb2cgZmlsZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWVzc2FnZTwvQ09ERT4gLSBTdHJpbmcgdGhhdCBkZXNjcmliZXMgdGhlIGVycm9yIG9yIGV4Y2VwdGlvbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0ibG9nKGphdmEubGFuZy5TdHJpbmcsIGphdmEubGFuZy5UaHJvd2FibGUpIj48IS0tIC0tPjwvQT48SDM+Citsb2c8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmxvZzwvQj4oamF2YS5sYW5nLlN0cmluZyZuYnNwO21lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgamF2YS5sYW5nLlRocm93YWJsZSZuYnNwO3Rocm93YWJsZSk8L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgY29tbW9uLWxvZ2dpbmcgdG8gbG9nIGRlYnVnIG1lc3NhZ2VzLjwvST4KKzxQPgorPEREPkNvbnZlbmllbmNlIG1ldGhvZCB0aGF0IGNhbGwgdGhlIGNvbXBhcmFibGUgc2VydmxldCBsb2cgbWV0aG9kIGFuZCB3cml0ZXMKKyBhbiBleHBsYW5hdG9yeSBtZXNzYWdlIGFuZCBhIHN0YWNrIHRyYWNlIGZvciBhIGdpdmVuIFRocm93YWJsZSBleGNlcHRpb24gdG8gdGhlCisgc2VydmxldCBsb2cgZmlsZS4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWVzc2FnZTwvQ09ERT4gLSBTdHJpbmcgdGhhdCBkZXNjcmliZXMgdGhlIGVycm9yIG9yIGV4Y2VwdGlvbjxERD48Q09ERT50aHJvd2FibGU8L0NPREU+IC0gVGhyb3dhYmxlIGVycm9yIG9yIGV4Y2VwdGlvbjwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVzZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj48IS0tIC0tPjwvQT48SDM+CityZXNldDwvSDM+Cis8UFJFPgorcHVibGljIHZvaWQgPEI+cmVzZXQ8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+Jm5ic3A7bWFwcGluZywKKyAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QmbmJzcDtyZXF1ZXN0KTwvUFJFPgorPERMPgorPEREPlJlc2V0IGFsbCBwcm9wZXJ0aWVzIHRvIHRoZWlyIGRlZmF1bHQgdmFsdWVzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPk92ZXJyaWRlczo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwjcmVzZXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmcsIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3QpIj5yZXNldDwvQT48L0NPREU+IGluIGNsYXNzIDxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPkFjdGlvbkZvcm08L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+bWFwcGluZzwvQ09ERT4gLSBUaGUgbWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlPEREPjxDT0RFPnJlcXVlc3Q8L0NPREU+IC0gVGhlIHNlcnZsZXQgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iZ2V0VmFsaWRhdG9yUmVzdWx0cygpIj48IS0tIC0tPjwvQT48SDM+CitnZXRWYWxpZGF0b3JSZXN1bHRzPC9IMz4KKzxQUkU+CitwdWJsaWMgb3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JSZXN1bHRzIDxCPmdldFZhbGlkYXRvclJlc3VsdHM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXQgcmVzdWx0cyBvZiB0aGUgdmFsaWRhdGlvbiBwZXJmb3JtZWQgYnkgdGhlCisgPGNvZGU+VmFsaWRhdG9yPC9jb2RlPi4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD5yZXN1bHRzIG9mIHRoZSB2YWxpZGF0aW9uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXRWYWxpZGF0b3JSZXN1bHRzKG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzdWx0cykiPjwhLS0gLS0+PC9BPjxIMz4KK3NldFZhbGlkYXRvclJlc3VsdHM8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPnNldFZhbGlkYXRvclJlc3VsdHM8L0I+KG9yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzdWx0cyZuYnNwO3ZhbGlkYXRvclJlc3VsdHMpPC9QUkU+Cis8REw+Cis8REQ+U2V0IHJlc3VsdHMgb2YgdGhlIHZhbGlkYXRpb24gcGVyZm9ybWVkIGJ5IHRoZQorIDxjb2RlPlZhbGlkYXRvcjwvY29kZT4uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8RFQ+PEI+UGFyYW1ldGVyczo8L0I+PEREPjxDT0RFPnZhbGlkYXRvclJlc3VsdHM8L0NPREU+IC0gcmVzdWx0cyBvZiB2YWxpZGF0aW9uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJnZXRSZXN1bHRWYWx1ZU1hcCgpIj48IS0tIC0tPjwvQT48SDM+CitnZXRSZXN1bHRWYWx1ZU1hcDwvSDM+Cis8UFJFPgorcHVibGljIGphdmEudXRpbC5NYXAgPEI+Z2V0UmVzdWx0VmFsdWVNYXA8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5SZXR1cm5zIGEgPGNvZGU+TWFwPC9jb2RlPiBvZiB2YWx1ZXMgcmV0dXJuZWQKKyBmcm9tIGFueSB2YWxpZGF0aW9uIHRoYXQgcmV0dXJucyBhIHZhbHVlIG90aGVyIHRoYW4KKyA8Y29kZT5udWxsPC9jb2RlPiBvciA8Y29kZT5Cb29sZWFuPC9jb2RlPiB3aXRoIHRoZQorIGtleSB0aGUgZnVsbCBwcm9wZXJ0eSBwYXRoIG9mIHRoZSBmaWVsZC4KKzxQPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPEREPjxETD4KKworPERUPjxCPlJldHVybnM6PC9CPjxERD48Y29kZT5NYXA8L2NvZGU+IG9mIG5vbi1udWxsIHZhbHVlczwvREw+Cis8L0REPgorPC9ETD4KKzwhLS0gPT09PT09PT09IEVORCBPRiBDTEFTUyBEQVRBID09PT09PT09PSAtLT4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvVmFsaWRhdG9yRm9ybS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCI+PEI+TkVYVCBDTEFTUzwvQj48L0E+PC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlZhbGlkYXRvckZvcm0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFI+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorICBTVU1NQVJZOiZuYnNwO05FU1RFRCZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjZmllbGRfc3VtbWFyeSI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9zdW1tYXJ5Ij5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KK0RFVEFJTDombmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX2RldGFpbCI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWVkOGI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbApAQCAtMCwwICsxLDU1MSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0Mzo1NyBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1ZhbGlkYXRvclBsdWdJbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TUVUQSBOQU1FPSJrZXl3b3JkcyIgQ09OVEVOVD0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvclBsdWdJbixWYWxpZGF0b3JQbHVnSW4gY2xhc3MiPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlZhbGlkYXRvclBsdWdJbiAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9WYWxpZGF0b3JQbHVnSW4uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckZvcm0uaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7CismbmJzcDtORVhUIENMQVNTPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlZhbGlkYXRvclBsdWdJbi5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzxUUj4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CisgIFNVTU1BUlk6Jm5ic3A7TkVTVEVEJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2NvbnN0cnVjdG9yX3N1bW1hcnkiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPgorREVUQUlMOiZuYnNwOzxBIEhSRUY9IiNmaWVsZF9kZXRhaWwiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3JfZGV0YWlsIj5DT05TVFI8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPCEtLSA9PT09PT09PSBTVEFSVCBPRiBDTEFTUyBEQVRBID09PT09PT09IC0tPgorPEgyPgorPEZPTlQgU0laRT0iLTEiPgorb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9GT05UPgorPEJSPgorQ2xhc3MgVmFsaWRhdG9yUGx1Z0luPC9IMj4KKzxQUkU+CitqYXZhLmxhbmcuT2JqZWN0CisgIHwKKyAgKy0tPEI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvclBsdWdJbjwvQj4KKzwvUFJFPgorPERMPgorPERUPjxCPkFsbCBJbXBsZW1lbnRlZCBJbnRlcmZhY2VzOjwvQj4gPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCI+UGx1Z0luPC9BPjwvREQ+Cis8L0RMPgorPEhSPgorPERMPgorPERUPnB1YmxpYyBjbGFzcyA8Qj5WYWxpZGF0b3JQbHVnSW48L0I+PERUPmV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDxEVD5pbXBsZW1lbnRzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCI+UGx1Z0luPC9BPjwvREw+CisKKzxQPgorPHA+TG9hZHMgPGNvZGU+VmFsaWRhdG9yUmVzb3VyY2VzPC9jb2RlPiBiYXNlZCBvbgorIGNvbmZpZ3VyYXRpb24gaW4gdGhlIHN0cnV0cy1jb25maWcueG1sLjwvcD4KKzxQPgorCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPERUPjxCPlZlcnNpb246PC9CPjwvRFQ+CisgIDxERD4kUmV2aXNpb246IDEuMSAkICREYXRlJDwvREQ+Cis8RFQ+PEI+QXV0aG9yOjwvQj48L0RUPgorICA8REQ+RGF2aWQgV2ludGVyZmVsZHQ8L0REPgorPC9ETD4KKzxIUj4KKworPFA+Cis8IS0tID09PT09PT09IE5FU1RFRCBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPgorCisKKzwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5GaWVsZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJpdmF0ZSAmbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sI2NvbmZpZyI+Y29uZmlnPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBtb2R1bGUgY29uZmlndXJhdGlvbiBmb3Igb3VyIG93bmluZyBtb2R1bGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgc3RhdGljJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCNsb2ciPmxvZzwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwjcGF0aG5hbWVzIj5wYXRobmFtZXM8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QSBjb21tYSBkZWxpbWl0dGVkIGxpc3Qgb2YgVmFsaWRhdG9yIHJlc291cmNlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcml2YXRlIHN0YXRpYyZuYnNwO2phdmEubGFuZy5TdHJpbmc8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sI1JFU09VUkNFX0RFTElNIj5SRVNPVVJDRV9ERUxJTTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtEZWxpbWl0dGVyIGZvciBWYWxpZGF0b3IgcmVzb3VyY2VzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT5wcm90ZWN0ZWQgJm5ic3A7b3JnLmFwYWNoZS5jb21tb25zLnZhbGlkYXRvci5WYWxpZGF0b3JSZXNvdXJjZXM8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sI3Jlc291cmNlcyI+cmVzb3VyY2VzPC9BPjwvQj48L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSBzZXQgb2YgRm9ybSBpbnN0YW5jZXMgdGhhdCBoYXZlIGJlZW4gY3JlYXRlZCBhbmQgaW5pdGlhbGl6ZWQsCisga2V5ZWQgYnkgdGhlIHN0cnV0cyBmb3JtIG5hbWUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPnByaXZhdGUgJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT48L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sI3NlcnZsZXQiPnNlcnZsZXQ8L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPjxDT0RFPkFjdGlvblNlcnZsZXQ8L0NPREU+PC9BPiBvd25pbmcgdGhpcyBhcHBsaWNhdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+c3RhdGljJm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwjVkFMSURBVE9SX0tFWSI+VkFMSURBVE9SX0tFWTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtBcHBsaWNhdGlvbiBzY29wZSBrZXkgdGhhdCA8Y29kZT5WYWxpZGF0b3JSZXNvdXJjZXM8L2NvZGU+IGlzIHN0b3JlZCB1bmRlci48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzwhLS0gPT09PT09PT0gQ09OU1RSVUNUT1IgU1VNTUFSWSA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3Jfc3VtbWFyeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCNWYWxpZGF0b3JQbHVnSW4oKSI+VmFsaWRhdG9yUGx1Z0luPC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8IS0tID09PT09PT09PT0gTUVUSE9EIFNVTU1BUlkgPT09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9zdW1tYXJ5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPk1ldGhvZCBTdW1tYXJ5PC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwjZGVzdHJveSgpIj5kZXN0cm95PC9BPjwvQj4oKTwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7R3JhY2VmdWxseSBzaHV0IGRvd24sIHJlbGVhc2luZyBhbnkgcmVzb3VyY2VzCisgdGhhdCB3ZXJlIGFsbG9jYXRlZCBhdCBpbml0aWFsaXphdGlvbi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sI2Rlc3Ryb3lSZXNvdXJjZXMoKSI+ZGVzdHJveVJlc291cmNlczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Rlc3Ryb3kgPGNvZGU+VmFsaWRhdG9yUmVzb3VyY2VzPC9jb2RlPi48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7amF2YS5sYW5nLlN0cmluZzwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwjZ2V0UGF0aG5hbWVzKCkiPmdldFBhdGhuYW1lczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0dldHMgYSBjb21tYSBkZWxpbWl0dGVkIGxpc3Qgb2YgVmFsaWRhdG9yIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+Jm5ic3A7dm9pZDwvQ09ERT48L0ZPTlQ+PC9URD4KKzxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwjaW5pdChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldCwgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZykiPmluaXQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQsCisgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZyk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgYW5kIGxvYWQgb3VyIHJlc291cmNlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPgorPENPREU+cHJvdGVjdGVkICZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+Cis8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvclBsdWdJbi5odG1sI2luaXRSZXNvdXJjZXMoKSI+aW5pdFJlc291cmNlczwvQT48L0I+KCk8L0NPREU+CisKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luaXRpYWxpemUgdGhlIHZhbGlkYXRvciByZXNvdXJjZXMgZm9yIHRoaXMgbW9kdWxlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+Cis8Q09ERT4mbmJzcDt2b2lkPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCNzZXRQYXRobmFtZXMoamF2YS5sYW5nLlN0cmluZykiPnNldFBhdGhuYW1lczwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRobmFtZXMpPC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtTZXRzIGEgY29tbWEgZGVsaW1pdHRlZCBsaXN0IG9mIFZhbGlkYXRvciByZXNvdXJjZXMuPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7PEEgTkFNRT0ibWV0aG9kc19pbmhlcml0ZWRfZnJvbV9jbGFzc19qYXZhLmxhbmcuT2JqZWN0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQ+PEI+TWV0aG9kcyBpbmhlcml0ZWQgZnJvbSBjbGFzcyBqYXZhLmxhbmcuT2JqZWN0PC9CPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PENPREU+Y2xvbmUsIGVxdWFscywgZmluYWxpemUsIGdldENsYXNzLCBoYXNoQ29kZSwgbm90aWZ5LCBub3RpZnlBbGwsIHRvU3RyaW5nLCB3YWl0LCB3YWl0LCB3YWl0PC9DT0RFPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzwhLS0gPT09PT09PT09PT09IEZJRUxEIERFVEFJTCA9PT09PT09PT09PSAtLT4KKworPEEgTkFNRT0iZmllbGRfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkZpZWxkIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJsb2ciPjwhLS0gLS0+PC9BPjxIMz4KK2xvZzwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nIDxCPmxvZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJjb25maWciPjwhLS0gLS0+PC9BPjxIMz4KK2NvbmZpZzwvSDM+Cis8UFJFPgorcHJpdmF0ZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4gPEI+Y29uZmlnPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtb2R1bGUgY29uZmlndXJhdGlvbiBmb3Igb3VyIG93bmluZyBtb2R1bGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJzZXJ2bGV0Ij48IS0tIC0tPjwvQT48SDM+CitzZXJ2bGV0PC9IMz4KKzxQUkU+Citwcml2YXRlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPkFjdGlvblNlcnZsZXQ8L0E+IDxCPnNlcnZsZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0Lmh0bWwiPjxDT0RFPkFjdGlvblNlcnZsZXQ8L0NPREU+PC9BPiBvd25pbmcgdGhpcyBhcHBsaWNhdGlvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlJFU09VUkNFX0RFTElNIj48IS0tIC0tPjwvQT48SDM+CitSRVNPVVJDRV9ERUxJTTwvSDM+Cis8UFJFPgorcHJpdmF0ZSBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5SRVNPVVJDRV9ERUxJTTwvQj48L1BSRT4KKzxETD4KKzxERD5EZWxpbWl0dGVyIGZvciBWYWxpZGF0b3IgcmVzb3VyY2VzLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuVmFsaWRhdG9yUGx1Z0luLlJFU09VUkNFX0RFTElNIj5Db25zdGFudCBGaWVsZCBWYWx1ZXM8L0E+PC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9IlZBTElEQVRPUl9LRVkiPjwhLS0gLS0+PC9BPjxIMz4KK1ZBTElEQVRPUl9LRVk8L0gzPgorPFBSRT4KK3B1YmxpYyBzdGF0aWMgZmluYWwgamF2YS5sYW5nLlN0cmluZyA8Qj5WQUxJREFUT1JfS0VZPC9CPjwvUFJFPgorPERMPgorPEREPkFwcGxpY2F0aW9uIHNjb3BlIGtleSB0aGF0IDxjb2RlPlZhbGlkYXRvclJlc291cmNlczwvY29kZT4gaXMgc3RvcmVkIHVuZGVyLgorPFA+Cis8REw+Cis8RFQ+PEI+U2VlIEFsc286PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9jb25zdGFudC12YWx1ZXMuaHRtbCNvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuVmFsaWRhdG9yUGx1Z0luLlZBTElEQVRPUl9LRVkiPkNvbnN0YW50IEZpZWxkIFZhbHVlczwvQT48L0RMPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0icmVzb3VyY2VzIj48IS0tIC0tPjwvQT48SDM+CityZXNvdXJjZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCBvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvclJlc291cmNlcyA8Qj5yZXNvdXJjZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBGb3JtIGluc3RhbmNlcyB0aGF0IGhhdmUgYmVlbiBjcmVhdGVkIGFuZCBpbml0aWFsaXplZCwKKyBrZXllZCBieSB0aGUgc3RydXRzIGZvcm0gbmFtZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InBhdGhuYW1lcyI+PCEtLSAtLT48L0E+PEgzPgorcGF0aG5hbWVzPC9IMz4KKzxQUkU+Citwcml2YXRlIGphdmEubGFuZy5TdHJpbmcgPEI+cGF0aG5hbWVzPC9CPjwvUFJFPgorPERMPgorPEREPkEgY29tbWEgZGVsaW1pdHRlZCBsaXN0IG9mIFZhbGlkYXRvciByZXNvdXJjZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzwhLS0gPT09PT09PT09IENPTlNUUlVDVE9SIERFVEFJTCA9PT09PT09PSAtLT4KKworPEEgTkFNRT0iY29uc3RydWN0b3JfZGV0YWlsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPkNvbnN0cnVjdG9yIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJWYWxpZGF0b3JQbHVnSW4oKSI+PCEtLSAtLT48L0E+PEgzPgorVmFsaWRhdG9yUGx1Z0luPC9IMz4KKzxQUkU+CitwdWJsaWMgPEI+VmFsaWRhdG9yUGx1Z0luPC9CPigpPC9QUkU+Cis8REw+Cis8L0RMPgorCis8IS0tID09PT09PT09PT09PSBNRVRIT0QgREVUQUlMID09PT09PT09PT0gLS0+CisKKzxBIE5BTUU9Im1ldGhvZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+TWV0aG9kIERldGFpbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8QSBOQU1FPSJnZXRQYXRobmFtZXMoKSI+PCEtLSAtLT48L0E+PEgzPgorZ2V0UGF0aG5hbWVzPC9IMz4KKzxQUkU+CitwdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8Qj5nZXRQYXRobmFtZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HZXRzIGEgY29tbWEgZGVsaW1pdHRlZCBsaXN0IG9mIFZhbGlkYXRvciByZXNvdXJjZXMuCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+CisKKzxEVD48Qj5SZXR1cm5zOjwvQj48REQ+Y29tbWEgZGVsaW1pdGVkIGxpc3Qgb2YgVmFsaWRhdG9yIHJlc291cmNlIHBhdGggbmFtZXM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9InNldFBhdGhuYW1lcyhqYXZhLmxhbmcuU3RyaW5nKSI+PCEtLSAtLT48L0E+PEgzPgorc2V0UGF0aG5hbWVzPC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5zZXRQYXRobmFtZXM8L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDtwYXRobmFtZXMpPC9QUkU+Cis8REw+Cis8REQ+U2V0cyBhIGNvbW1hIGRlbGltaXR0ZWQgbGlzdCBvZiBWYWxpZGF0b3IgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5wYXRobmFtZXM8L0NPREU+IC0gZGVsaW1pdGVkIGxpc3Qgb2YgVmFsaWRhdG9yIHJlc291cmNlIHBhdGggbmFtZXM8L0RMPgorPC9ERD4KKzwvREw+Cis8SFI+CisKKzxBIE5BTUU9ImluaXQob3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQsIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWcpIj48IS0tIC0tPjwvQT48SDM+Citpbml0PC9IMz4KKzxQUkU+CitwdWJsaWMgdm9pZCA8Qj5pbml0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj5BY3Rpb25TZXJ2bGV0PC9BPiZuYnNwO3NlcnZsZXQsCisgICAgICAgICAgICAgICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiZuYnNwO2NvbmZpZykKKyAgICAgICAgICB0aHJvd3MgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9QUkU+Cis8REw+Cis8REQ+SW5pdGlhbGl6ZSBhbmQgbG9hZCBvdXIgcmVzb3VyY2VzLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCNpbml0KG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0LCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnKSI+aW5pdDwvQT48L0NPREU+IGluIGludGVyZmFjZSA8Q09ERT48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUGx1Z0luLmh0bWwiPlBsdWdJbjwvQT48L0NPREU+PC9ETD4KKzwvREQ+Cis8REQ+PERMPgorPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5zZXJ2bGV0PC9DT0RFPiAtIFRoZSBBY3Rpb25TZXJ2bGV0IGZvciBvdXIgYXBwbGljYXRpb248REQ+PENPREU+Y29uZmlnPC9DT0RFPiAtIFRoZSBNb2R1bGVDb25maWcgZm9yIG91ciBvd25pbmcgbW9kdWxlCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb248L0NPREU+IC0gaWYgd2UgY2Fubm90IGNvbmZpZ3VyZSBvdXJzZWx2ZXMgY29ycmVjdGx5PC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZXN0cm95KCkiPjwhLS0gLS0+PC9BPjxIMz4KK2Rlc3Ryb3k8L0gzPgorPFBSRT4KK3B1YmxpYyB2b2lkIDxCPmRlc3Ryb3k8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5HcmFjZWZ1bGx5IHNodXQgZG93biwgcmVsZWFzaW5nIGFueSByZXNvdXJjZXMKKyB0aGF0IHdlcmUgYWxsb2NhdGVkIGF0IGluaXRpYWxpemF0aW9uLgorPFA+Cis8REQ+PERMPgorPERUPjxCPlNwZWNpZmllZCBieTo8L0I+PEREPjxDT0RFPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCNkZXN0cm95KCkiPmRlc3Ryb3k8L0E+PC9DT0RFPiBpbiBpbnRlcmZhY2UgPENPREU+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj5QbHVnSW48L0E+PC9DT0RFPjwvREw+Cis8L0REPgorPEREPjxETD4KKzwvREw+Cis8L0REPgorPC9ETD4KKzxIUj4KKworPEEgTkFNRT0iaW5pdFJlc291cmNlcygpIj48IS0tIC0tPjwvQT48SDM+Citpbml0UmVzb3VyY2VzPC9IMz4KKzxQUkU+Citwcm90ZWN0ZWQgdm9pZCA8Qj5pbml0UmVzb3VyY2VzPC9CPigpCisgICAgICAgICAgICAgICAgICAgICAgdGhyb3dzIGphdmEuaW8uSU9FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjwvUFJFPgorPERMPgorPEREPkluaXRpYWxpemUgdGhlIHZhbGlkYXRvciByZXNvdXJjZXMgZm9yIHRoaXMgbW9kdWxlLgorPFA+Cis8REQ+PERMPgorPC9ETD4KKzwvREQ+Cis8REQ+PERMPgorCis8RFQ+PEI+VGhyb3dzOjwvQj4KKzxERD48Q09ERT5qYXZhLmlvLklPRXhjZXB0aW9uPC9DT0RFPiAtIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBpcyBlbmNvdW50ZXJlZCwgbm90IHRocm93biBieSB0aGlzIGltcGxlbWVudGF0aW9uCis8REQ+PENPREU+amF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uPC9DT0RFPiAtIGlmIHdlIGNhbm5vdCBpbml0aWFsaXplIHRoZXNlIHJlc291cmNlcywgbm90IHRocm93biBieSB0aGlzIGltcGxlbWVudGF0aW9uPC9ETD4KKzwvREQ+Cis8L0RMPgorPEhSPgorCis8QSBOQU1FPSJkZXN0cm95UmVzb3VyY2VzKCkiPjwhLS0gLS0+PC9BPjxIMz4KK2Rlc3Ryb3lSZXNvdXJjZXM8L0gzPgorPFBSRT4KK3Byb3RlY3RlZCB2b2lkIDxCPmRlc3Ryb3lSZXNvdXJjZXM8L0I+KCk8L1BSRT4KKzxETD4KKzxERD5EZXN0cm95IDxjb2RlPlZhbGlkYXRvclJlc291cmNlczwvY29kZT4uCis8UD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzxERD48REw+Cis8L0RMPgorPC9ERD4KKzwvREw+Cis8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPkNsYXNzPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iY2xhc3MtdXNlL1ZhbGlkYXRvclBsdWdJbi5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgQ0xBU1M8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVmFsaWRhdG9yUGx1Z0luLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSPgorPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4KKyAgU1VNTUFSWTombmJzcDtORVNURUQmbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjY29uc3RydWN0b3Jfc3VtbWFyeSI+Q09OU1RSPC9BPiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX3N1bW1hcnkiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+CitERVRBSUw6Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNjb25zdHJ1Y3Rvcl9kZXRhaWwiPkNPTlNUUjwvQT4mbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9kZXRhaWwiPk1FVEhPRDwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9jbGFzcy11c2UvRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvY2xhc3MtdXNlL0R5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI1NjYyNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvY2xhc3MtdXNlL0R5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRHluYVZhbGlkYXRvckFjdGlvbkZvcm0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJEeW5hVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybTwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRHluYVZhbGlkYXRvckFjdGlvbkZvcm0KKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkR5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvY2xhc3MtdXNlL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL2NsYXNzLXVzZS9EeW5hVmFsaWRhdG9yRm9ybS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhZDIwZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL2NsYXNzLXVzZS9EeW5hVmFsaWRhdG9yRm9ybS5odG1sCkBAIC0wLDAgKzEsMTYzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRHluYVZhbGlkYXRvckZvcm0gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IlVzZXMgb2YgQ2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLkR5bmFWYWxpZGF0b3JGb3JtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRHluYVZhbGlkYXRvckZvcm0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorPEI+VXNlcyBvZiBDbGFzczxicj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRHluYVZhbGlkYXRvckZvcm08L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCI+RHluYVZhbGlkYXRvckZvcm08L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEEgSFJFRj0iI29yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciI+PEI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9CPjwvQT48L1REPgorPFREPiBUaGUgdmFsaWRhdG9yIHBhY2thZ2UgcHJvdmlkZXMgYSBzZXJpZXMgb2YgY2xhc3NlcyB0byB2YWxpZGF0ZSAKKyAgIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IHR5cGUgb2YgaW5wdXQuJm5ic3A7PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitVc2VzIG9mIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yRm9ybS5odG1sIj5EeW5hVmFsaWRhdG9yRm9ybTwvQT4gaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0E+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPlN1YmNsYXNzZXMgb2YgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JGb3JtPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIj5EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybTwvQT48L0I+PC9DT0RFPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGNsYXNzIGV4dGVuZHMgPHN0cm9uZz5EeW5hVmFsaWRhdG9yRm9ybTwvc3Ryb25nPiBhbmQgcHJvdmlkZXMKKyBiYXNpYyBmaWVsZCB2YWxpZGF0aW9uIGJhc2VkIG9uIGFuIFhNTCBmaWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iRHluYVZhbGlkYXRvckZvcm0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9jbGFzcy11c2UvRmllbGRDaGVja3MuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvY2xhc3MtdXNlL0ZpZWxkQ2hlY2tzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFiNDY3MgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvY2xhc3MtdXNlL0ZpZWxkQ2hlY2tzLmh0bWwKQEAgLTAsMCArMSwxMjUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5GaWVsZENoZWNrcyAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRmllbGRDaGVja3MgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9GaWVsZENoZWNrcy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJGaWVsZENoZWNrcy5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5GaWVsZENoZWNrczwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRmllbGRDaGVja3MKKzxQPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IkZpZWxkQ2hlY2tzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvY2xhc3MtdXNlL1Jlc291cmNlcy5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9jbGFzcy11c2UvUmVzb3VyY2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM3YzUyYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvY2xhc3MtdXNlL1Jlc291cmNlcy5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuUmVzb3VyY2VzIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5SZXNvdXJjZXMgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlJlc291cmNlczwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuUmVzb3VyY2VzCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvY2xhc3MtdXNlL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvY2xhc3MtdXNlL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjRkOGNlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9jbGFzcy11c2UvVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uRm9ybSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuVmFsaWRhdG9yQWN0aW9uRm9ybSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8Qj5Vc2VzIG9mIENsYXNzPGJyPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb25Gb3JtPC9CPjwvSDI+Cis8L0NFTlRFUj4KK05vIHVzYWdlIG9mIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5WYWxpZGF0b3JBY3Rpb25Gb3JtCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+Q2xhc3M8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9IlZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9jbGFzcy11c2UvVmFsaWRhdG9yRm9ybS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9jbGFzcy11c2UvVmFsaWRhdG9yRm9ybS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4OTcxNzEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL2NsYXNzLXVzZS9WYWxpZGF0b3JGb3JtLmh0bWwKQEAgLTAsMCArMSwxNjMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NDIgRURUIDIwMDMgLS0+Cis8VElUTEU+CitVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5WYWxpZGF0b3JGb3JtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5WYWxpZGF0b3JGb3JtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJWYWxpZGF0b3JGb3JtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvckZvcm08L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj5WYWxpZGF0b3JGb3JtPC9BPjwvRk9OVD48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxBIEhSRUY9IiNvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IiPjxCPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQj48L0E+PC9URD4KKzxURD4gVGhlIHZhbGlkYXRvciBwYWNrYWdlIHByb3ZpZGVzIGEgc2VyaWVzIG9mIGNsYXNzZXMgdG8gdmFsaWRhdGUgCisgICA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiB0eXBlIG9mIGlucHV0LiZuYnNwOzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorVXNlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj5WYWxpZGF0b3JGb3JtPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+U3ViY2xhc3NlcyBvZiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj5WYWxpZGF0b3JGb3JtPC9BPiBpbiA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4KKzxDT0RFPiZuYnNwO2NsYXNzPC9DT0RFPjwvRk9OVD48L1REPgorPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPlZhbGlkYXRvckFjdGlvbkZvcm08L0E+PC9CPjwvQ09ERT4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBjbGFzcyBleHRlbmRzIDxzdHJvbmc+VmFsaWRhdG9yRm9ybTwvc3Ryb25nPiBhbmQgcHJvdmlkZXMKKyBiYXNpYyBmaWVsZCB2YWxpZGF0aW9uIGJhc2VkIG9uIGFuIFhNTCBmaWxlLjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKyZuYnNwOworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkNsYXNzPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vcGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJWYWxpZGF0b3JGb3JtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvY2xhc3MtdXNlL1ZhbGlkYXRvclBsdWdJbi5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9jbGFzcy11c2UvVmFsaWRhdG9yUGx1Z0luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY2OGQ5ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvY2xhc3MtdXNlL1ZhbGlkYXRvclBsdWdJbi5odG1sCkBAIC0wLDAgKzEsMTI1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBDbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuVmFsaWRhdG9yUGx1Z0luIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJVc2VzIG9mIENsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5WYWxpZGF0b3JQbHVnSW4gKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX3RvcCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl90b3BfZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVmFsaWRhdG9yUGx1Z0luLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgQ2xhc3M8YnI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvclBsdWdJbjwvQj48L0gyPgorPC9DRU5URVI+CitObyB1c2FnZSBvZiBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuVmFsaWRhdG9yUGx1Z0luCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5DbGFzczwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPlVzZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uL3BhY2thZ2UtdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0iVmFsaWRhdG9yUGx1Z0luLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvZG9jLWZpbGVzL3ZhbGlkYXRvclVNTC5qcGcgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL2RvYy1maWxlcy92YWxpZGF0b3JVTUwuanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmZTU0YzQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL2RvYy1maWxlcy92YWxpZGF0b3JVTUwuanBnCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1mcmFtZS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9wYWNrYWdlLWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmM0Yjc4NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1mcmFtZS5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciBwYWNrYWdlIj4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKzxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVUaXRsZUZvbnQiPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT48L0ZPTlQ+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPjxGT05UIHNpemU9IisxIiBDTEFTUz0iRnJhbWVIZWFkaW5nRm9udCI+CitDbGFzc2VzPC9GT05UPiZuYnNwOworPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPgorPEJSPgorPEEgSFJFRj0iRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCIgVEFSR0VUPSJjbGFzc0ZyYW1lIj5EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybTwvQT4KKzxCUj4KKzxBIEhSRUY9IkR5bmFWYWxpZGF0b3JGb3JtLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+RHluYVZhbGlkYXRvckZvcm08L0E+Cis8QlI+Cis8QSBIUkVGPSJGaWVsZENoZWNrcy5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPkZpZWxkQ2hlY2tzPC9BPgorPEJSPgorPEEgSFJFRj0iUmVzb3VyY2VzLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+UmVzb3VyY2VzPC9BPgorPEJSPgorPEEgSFJFRj0iVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlZhbGlkYXRvckFjdGlvbkZvcm08L0E+Cis8QlI+Cis8QSBIUkVGPSJWYWxpZGF0b3JGb3JtLmh0bWwiIFRBUkdFVD0iY2xhc3NGcmFtZSI+VmFsaWRhdG9yRm9ybTwvQT4KKzxCUj4KKzxBIEhSRUY9IlZhbGlkYXRvclBsdWdJbi5odG1sIiBUQVJHRVQ9ImNsYXNzRnJhbWUiPlZhbGlkYXRvclBsdWdJbjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCisKKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1NzgwZGEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sCkBAIC0wLDAgKzEsMjA5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjU3IEVEVCAyMDAzIC0tPgorPFRJVExFPgorb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxNRVRBIE5BTUU9ImtleXdvcmRzIiBDT05URU5UPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IgcGFja2FnZSI+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgUEFDS0FHRTwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcgorPC9IMj4KKyBUaGUgdmFsaWRhdG9yIHBhY2thZ2UgcHJvdmlkZXMgYSBzZXJpZXMgb2YgY2xhc3NlcyB0byB2YWxpZGF0ZSAKKyAgIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IHR5cGUgb2YgaW5wdXQuCis8UD4KKzxCPlNlZTo8L0I+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8QSBIUkVGPSIjcGFja2FnZV9kZXNjcmlwdGlvbiI+PEI+RGVzY3JpcHRpb248L0I+PC9BPgorPFA+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCI+RHluYVZhbGlkYXRvckFjdGlvbkZvcm08L0E+PC9CPjwvVEQ+Cis8VEQ+VGhpcyBjbGFzcyBleHRlbmRzIDxzdHJvbmc+RHluYVZhbGlkYXRvckZvcm08L3N0cm9uZz4gYW5kIHByb3ZpZGVzCisgYmFzaWMgZmllbGQgdmFsaWRhdGlvbiBiYXNlZCBvbiBhbiBYTUwgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IkR5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPkR5bmFWYWxpZGF0b3JGb3JtPC9BPjwvQj48L1REPgorPFREPlRoaXMgY2xhc3MgZXh0ZW5kcyA8c3Ryb25nPkR5bmFBY3Rpb25Gb3JtPC9zdHJvbmc+IGFuZCBwcm92aWRlcworIGJhc2ljIGZpZWxkIHZhbGlkYXRpb24gYmFzZWQgb24gYW4gWE1MIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJGaWVsZENoZWNrcy5odG1sIj5GaWVsZENoZWNrczwvQT48L0I+PC9URD4KKzxURD4KKyBUaGlzIGNsYXNzIGNvbnRhaW5zIHRoZSBkZWZhdWx0IHZhbGlkYXRpb25zIHRoYXQgYXJlIHVzZWQgaW4gdGhlIAorIHZhbGlkYXRvci1ydWxlcy54bWwgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlJlc291cmNlcy5odG1sIj5SZXNvdXJjZXM8L0E+PC9CPjwvVEQ+Cis8VEQ+VGhpcyBjbGFzcyBoZWxwcyBwcm92aWRlcyBzb21lIHVzZWZ1bCBtZXRob2RzIGZvciByZXRyaWV2aW5nIG9iamVjdHMKKyBmcm9tIGRpZmZlcmVudCBzY29wZXMgb2YgdGhlIGFwcGxpY2F0aW9uLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjE1JSI+PEI+PEEgSFJFRj0iVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIj5WYWxpZGF0b3JBY3Rpb25Gb3JtPC9BPjwvQj48L1REPgorPFREPlRoaXMgY2xhc3MgZXh0ZW5kcyA8c3Ryb25nPlZhbGlkYXRvckZvcm08L3N0cm9uZz4gYW5kIHByb3ZpZGVzCisgYmFzaWMgZmllbGQgdmFsaWRhdGlvbiBiYXNlZCBvbiBhbiBYTUwgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIxNSUiPjxCPjxBIEhSRUY9IlZhbGlkYXRvckZvcm0uaHRtbCI+VmFsaWRhdG9yRm9ybTwvQT48L0I+PC9URD4KKzxURD5UaGlzIGNsYXNzIGV4dGVuZHMgPHN0cm9uZz5BY3Rpb25Gb3JtPC9zdHJvbmc+IGFuZCBwcm92aWRlcworIGJhc2ljIGZpZWxkIHZhbGlkYXRpb24gYmFzZWQgb24gYW4gWE1MIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMTUlIj48Qj48QSBIUkVGPSJWYWxpZGF0b3JQbHVnSW4uaHRtbCI+VmFsaWRhdG9yUGx1Z0luPC9BPjwvQj48L1REPgorPFREPkxvYWRzIDxjb2RlPlZhbGlkYXRvclJlc291cmNlczwvY29kZT4gYmFzZWQgb24KKyBjb25maWd1cmF0aW9uIGluIHRoZSBzdHJ1dHMtY29uZmlnLnhtbC48L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKworPFA+Cis8QSBOQU1FPSJwYWNrYWdlX2Rlc2NyaXB0aW9uIj48IS0tIC0tPjwvQT48SDI+CitQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciBEZXNjcmlwdGlvbgorPC9IMj4KKworPFA+Cis8cD4gVGhlIHZhbGlkYXRvciBwYWNrYWdlIHByb3ZpZGVzIGEgc2VyaWVzIG9mIGNsYXNzZXMgdG8gdmFsaWRhdGUgCisgICA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiB0eXBlIG9mIGlucHV0LjwvcD4KKyA8YnI+CisgPGJyPgorIDxpbWcgc3JjPSJkb2MtZmlsZXMvdmFsaWRhdG9yVU1MLmpwZyIgYWx0PSJWYWxpZGF0b3IgUGFja2FnZSBVTUwiID4KKyA8YnI+CisgCis8aDI+UGFja2FnZSBTcGVjaWZpY2F0aW9uPC9oMj4KKyAgICAgICMjIyMjIEZJTEwgSU4gQU5ZIFNQRUNTIE5FRURFRCBCWSBKQVZBIENPTVBBVElCSUxJVFkgS0lUICMjIyMjICAgICAKKzx1bD4KKyAgIDxsaT48YSBocmVmPSIiPiMjIyMjIFJFRkVSIFRPIEFOWSBGUkFNRU1BS0VSIFNQRUNJRklDQVRJT04gSEVSRSAjIyMjIzwvYT4KKyAgIDwvbGk+CisgCis8L3VsPgorIAorPGgyPlJlbGF0ZWQgRG9jdW1lbnRhdGlvbjwvaDI+CisgICAgICBGb3Igb3ZlcnZpZXdzLCB0dXRvcmlhbHMsIGV4YW1wbGVzLCBndWlkZXMsIGFuZCB0b29sIGRvY3VtZW50YXRpb24sIAorcGxlYXNlICBzZWU6ICAgICAKKzx1bD4KKyAgIDxsaT48YSBocmVmPSIiPiMjIyMjIFJFRkVSIFRPIE5PTi1TUEVDIERPQ1VNRU5UQVRJT04gSEVSRSAjIyMjIzwvYT4KKyAgIDwvbGk+CisgCis8L3VsPgorIDwhLS0gUHV0IEBzZWUgYW5kIEBzaW5jZSB0YWdzIGRvd24gaGVyZS4gLS0+Cis8c2luY2U+U3RydXRzIDEuMTwvc2luY2U+Cis8UD4KKworPFA+Cis8SFI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5QYWNrYWdlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS11c2UuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEI+UFJFViBQQUNLQUdFPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQgUEFDS0FHRTwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9wYWNrYWdlLXRyZWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJmMDUwZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS10cmVlLmh0bWwKQEAgLTAsMCArMSwxNTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTcgRURUIDIwMDMgLS0+Cis8VElUTEU+CitvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSIuLi8uLi8uLi8uLi9zdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IgQ2xhc3MgSGllcmFyY2h5IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+UGFja2FnZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5UcmVlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9oZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS10cmVlLmh0bWwiPjxCPlBSRVY8L0I+PC9BPiZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSIuLi8uLi8uLi8uLi9hbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorSGllcmFyY2h5IEZvciBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcgorPC9IMj4KKzwvQ0VOVEVSPgorPERMPgorPERUPjxCPlBhY2thZ2UgSGllcmFyY2hpZXM6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vdmVydmlldy10cmVlLmh0bWwiPkFsbCBQYWNrYWdlczwvQT48L0RMPgorPEhSPgorPEgyPgorQ2xhc3MgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLk9iamVjdDxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybS5odG1sIj48Qj5BY3Rpb25Gb3JtPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtLmh0bWwiPjxCPkR5bmFBY3Rpb25Gb3JtPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5EeW5hQmVhbikKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckZvcm0uaHRtbCI+PEI+RHluYVZhbGlkYXRvckZvcm08L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFCZWFuLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCI+PEI+RHluYVZhbGlkYXRvckFjdGlvbkZvcm08L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFCZWFuLCBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwiPjxCPlZhbGlkYXRvckZvcm08L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yQWN0aW9uRm9ybS5odG1sIj48Qj5WYWxpZGF0b3JBY3Rpb25Gb3JtPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRmllbGRDaGVja3MuaHRtbCI+PEI+RmllbGRDaGVja3M8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvUmVzb3VyY2VzLmh0bWwiPjxCPlJlc291cmNlczwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JQbHVnSW4uaHRtbCI+PEI+VmFsaWRhdG9yUGx1Z0luPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCI+UGx1Z0luPC9BPikKKzwvVUw+Cis8L1VMPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy91dGlsL3BhY2thZ2UtdHJlZS5odG1sIj48Qj5QUkVWPC9CPjwvQT4mbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorQ29weXJpZ2h0IKkgMjAwMC0yMDAzIC0gQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS11c2UuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS11c2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2IwNjVlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLWRvYy0xLjEvYXBpL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9wYWNrYWdlLXVzZS5odG1sCkBAIC0wLDAgKzEsMTYwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjQ5IEVEVCAyMDAzIC0tPgorPFRJVExFPgorVXNlcyBvZiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0iLi4vLi4vLi4vLi4vc3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iVXNlcyBvZiBQYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5Vc2U8L0I+PC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9pbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9InBhY2thZ2UtdXNlLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iLi4vLi4vLi4vLi4vYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMj4KKzxCPlVzZXMgb2YgUGFja2FnZTxicj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0I+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+CitQYWNrYWdlcyB0aGF0IHVzZSA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURD48QSBIUkVGPSIjb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48Qj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0I+PC9BPjwvVEQ+Cis8VEQ+IFRoZSB2YWxpZGF0b3IgcGFja2FnZSBwcm92aWRlcyBhIHNlcmllcyBvZiBjbGFzc2VzIHRvIHZhbGlkYXRlIAorICAgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gdHlwZSBvZiBpbnB1dC4mbmJzcDs8L1REPgorPC9UUj4KKzwvVEFCTEU+CismbmJzcDsKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KK0NsYXNzZXMgaW4gPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0E+IHVzZWQgYnkgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0E+PFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQ+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL2NsYXNzLXVzZS9EeW5hVmFsaWRhdG9yRm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciI+PEI+RHluYVZhbGlkYXRvckZvcm08L0I+PC9BPjwvQj4KKworPEJSPgorJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VGhpcyBjbGFzcyBleHRlbmRzIDxzdHJvbmc+RHluYUFjdGlvbkZvcm08L3N0cm9uZz4gYW5kIHByb3ZpZGVzCisgYmFzaWMgZmllbGQgdmFsaWRhdGlvbiBiYXNlZCBvbiBhbiBYTUwgZmlsZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9jbGFzcy11c2UvVmFsaWRhdG9yRm9ybS5odG1sI29yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvciI+PEI+VmFsaWRhdG9yRm9ybTwvQj48L0E+PC9CPgorCis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtUaGlzIGNsYXNzIGV4dGVuZHMgPHN0cm9uZz5BY3Rpb25Gb3JtPC9zdHJvbmc+IGFuZCBwcm92aWRlcworIGJhc2ljIGZpZWxkIHZhbGlkYXRpb24gYmFzZWQgb24gYW4gWE1MIGZpbGUuPC9URD4KKzwvVFI+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorJm5ic3A7Cis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VXNlPC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJwYWNrYWdlLXVzZS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9Ii4uLy4uLy4uLy4uL2FsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KK0NvcHlyaWdodCCpIDIwMDAtMjAwMyAtIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCis8L0JPRFk+Cis8L0hUTUw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvb3ZlcnZpZXctZnJhbWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vdmVydmlldy1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4MDNmZTcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3ZlcnZpZXctZnJhbWUuaHRtbApAQCAtMCwwICsxLDkzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjUyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorT3ZlcnZpZXcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Ik92ZXJ2aWV3LDxoMT5BcGFjaGUgU3RydXRzIEZyYW1ld29yayAoVmVyc2lvbiAxLjEpPC9oMT4iPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9InN0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik92ZXJ2aWV3IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUj4KKzxURCBOT1dSQVA+PEZPTlQgc2l6ZT0iKzEiIENMQVNTPSJGcmFtZVRpdGxlRm9udCI+Cis8Qj48L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD48Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0iYWxsY2xhc3Nlcy1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+QWxsIENsYXNzZXM8L0E+PC9GT05UPgorPFA+Cis8Rk9OVCBzaXplPSIrMSIgQ0xBU1M9IkZyYW1lSGVhZGluZ0ZvbnQiPgorUGFja2FnZXM8L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHM8L0E+PC9GT05UPgorPEJSPgorPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLWZyYW1lLmh0bWwiIFRBUkdFVD0icGFja2FnZUZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb248L0E+PC9GT05UPgorPEJSPgorPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvQT48L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2UtZnJhbWUuaHRtbCIgVEFSR0VUPSJwYWNrYWdlRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZzwvQT48L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0E+PC9GT05UPgorPEJSPgorPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2luczwvQT48L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW48L0E+PC9GT05UPgorPEJSPgorPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2UtZnJhbWUuaHRtbCIgVEFSR0VUPSJwYWNrYWdlRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sPC9BPjwvRk9OVD4KKzxCUj4KKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9BPjwvRk9OVD4KKzxCUj4KKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL3BhY2thZ2UtZnJhbWUuaHRtbCIgVEFSR0VUPSJwYWNrYWdlRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQ8L0E+PC9GT05UPgorPEJSPgorPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLWZyYW1lLmh0bWwiIFRBUkdFVD0icGFja2FnZUZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW48L0E+PC9GT05UPgorPEJSPgorPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9wYWNrYWdlLWZyYW1lLmh0bWwiIFRBUkdFVD0icGFja2FnZUZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9GT05UPgorPEJSPgorPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYzwvQT48L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2UtZnJhbWUuaHRtbCIgVEFSR0VUPSJwYWNrYWdlRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvQT48L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0E+PC9GT05UPgorPEJSPgorPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9wYWNrYWdlLWZyYW1lLmh0bWwiIFRBUkdFVD0icGFja2FnZUZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXM8L0E+PC9GT05UPgorPEJSPgorPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dDwvQT48L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL3V0aWwvcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWw8L0E+PC9GT05UPgorPEJSPgorPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2UtZnJhbWUuaHRtbCIgVEFSR0VUPSJwYWNrYWdlRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzPC9BPjwvRk9OVD4KKzxCUj4KKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL3BhY2thZ2UtZnJhbWUuaHRtbCIgVEFSR0VUPSJwYWNrYWdlRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnM8L0E+PC9GT05UPgorPEJSPgorPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL3BhY2thZ2UtZnJhbWUuaHRtbCIgVEFSR0VUPSJwYWNrYWdlRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zPC9BPjwvRk9OVD4KKzxCUj4KKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2UtZnJhbWUuaHRtbCIgVEFSR0VUPSJwYWNrYWdlRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb248L0E+PC9GT05UPgorPEJSPgorPEZPTlQgQ0xBU1M9IkZyYW1lSXRlbUZvbnQiPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT48L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL3BhY2thZ2UtZnJhbWUuaHRtbCIgVEFSR0VUPSJwYWNrYWdlRnJhbWUiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT48L0ZPTlQ+Cis8QlI+Cis8Rk9OVCBDTEFTUz0iRnJhbWVJdGVtRm9udCI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLWZyYW1lLmh0bWwiIFRBUkdFVD0icGFja2FnZUZyYW1lIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsPC9BPjwvRk9OVD4KKzxCUj4KKzxGT05UIENMQVNTPSJGcmFtZUl0ZW1Gb250Ij48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS1mcmFtZS5odG1sIiBUQVJHRVQ9InBhY2thZ2VGcmFtZSI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yPC9BPjwvRk9OVD4KKzxCUj4KKzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CismbmJzcDsKKzwvQk9EWT4KKzwvSFRNTD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1kb2MtMS4xL2FwaS9vdmVydmlldy1zdW1tYXJ5Lmh0bWwgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3ZlcnZpZXctc3VtbWFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkYjhjNzEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvb3ZlcnZpZXctc3VtbWFyeS5odG1sCkBAIC0wLDAgKzEsMjU5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjUyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorT3ZlcnZpZXcgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPE1FVEEgTkFNRT0ia2V5d29yZHMiIENPTlRFTlQ9Ik92ZXJ2aWV3LDxoMT5BcGFjaGUgU3RydXRzIEZyYW1ld29yayAoVmVyc2lvbiAxLjEpPC9oMT4iPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9InN0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9Ik92ZXJ2aWV3IChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRkZGRkZGIiBDTEFTUz0iTmF2QmFyQ2VsbDFSZXYiPiAmbmJzcDs8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDFSZXYiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5QYWNrYWdlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJpbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJoZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9ImluZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOworPFNDUklQVD4KKyAgPCEtLQorICBpZih3aW5kb3c9PXRvcCkgeworICAgIGRvY3VtZW50LndyaXRlbG4oJzxBIEhSRUY9ImFsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPicpOworICB9CisgIC8vLS0+Cis8L1NDUklQVD4KKzxOT1NDUklQVD4KKzxBIEhSRUY9ImFsbGNsYXNzZXMtbm9mcmFtZS5odG1sIiBUQVJHRVQ9IiI+PEI+QWxsIENsYXNzZXM8L0I+PC9BPgorPC9OT1NDUklQVD4KKzwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+CisKKzxIUj4KKzxDRU5URVI+Cis8SDI+Cis8aDE+QXBhY2hlIFN0cnV0cyBGcmFtZXdvcmsgKFZlcnNpb24gMS4xKTwvaDE+PC9IMj4KKzwvQ0VOVEVSPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5QYWNrYWdlczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHM8L0E+PC9CPjwvVEQ+Cis8VEQ+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQT48L0I+PC9URD4KKzxURD4gVGhlIGFjdGlvbiBwYWNrYWdlIGlzIHRoZSBjb3JlIG9mIHRoZSBzdHJ1dHMgZnJhbWV3b3JrLAorICAgIHByb3ZpZGluZyB0aGUgIkNvbnRyb2xsZXIiIGFzcGVjdCBvZiBhIE1WQyBtb2RlbC48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIyMCUiPjxCPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnM8L0E+PC9CPjwvVEQ+Cis8VEQ+IFRoZSBhY3Rpb25zIHBhY2thZ2UgcHJvdmlkZXMgc3BlY2lhbCBhZGFwdGVycyBiZXR3ZWVuIHRoZSBpbmNvbWluZyAgSFRUUAorIHJlcXVlc3QgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGJ1c2luZXNzIGxvZ2ljLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjIwJSI+PEI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0E+PC9CPjwvVEQ+Cis8VEQ+VGhlICJjb25maWciIHBhY2thZ2UgY29udGFpbnMgY29uZmlndXJhdGlvbiBvYmplY3RzIHRoYXQgY29ycmVzcG9uZCB0bworZWxlbWVudHMgdGhhdCBtYXkgYmUgc3BlY2lmaWVkIGluIHRoZSA8Y29kZT5zdHJ1dHMtY29uZmlnLnhtbDwvY29kZT4KK21vZHVsZSBjb25maWd1cmF0aW9uIGZpbGUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvaW1wbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGw8L0E+PC9CPjwvVEQ+Cis8VEQ+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zPC9BPjwvQj48L1REPgorPFREPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjIwJSI+PEI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9BPjwvQj48L1REPgorPFREPlRoZSAic3RydXRzLWJlYW4iIHRhZyBsaWJyYXJ5IGNvbnRhaW5zIEpTUCBjdXN0b20gdGFncyB1c2VmdWwgaW4gZGVmaW5pbmcKK25ldyBiZWFucyAoaW4gYW55IGRlc2lyZWQgc2NvcGUpIGZyb20gYSB2YXJpZXR5IG9mIHBvc3NpYmxlIHNvdXJjZXMsIGFzIHdlbGwKK2FzIGEgdGFnIHRvIHJlbmRlciBhIHBhcnRpY3VsYXIgYmVhbiAob3IgYmVhbiBwcm9wZXJ0eSkgdG8gdGhlIG91dHB1dCByZXNwb25zZS48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIyMCUiPjxCPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT48L0I+PC9URD4KKzxURD48YSBuYW1lPSJkb2MuRGVzY3JpcHRpb24iPlRoZSAic3RydXRzLWh0bWwiIHRhZyBsaWJyYXJ5PC9hPgorICBjb250YWlucyBKU1AgY3VzdG9tIHRhZ3MgdXNlZnVsIGluIGNyZWF0aW5nIGR5bmFtaWMgSFRNTCB1c2VyIGludGVyZmFjZXMsCitpbmNsdWRpbmcgaW5wdXQgZm9ybXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYzwvQT48L0I+PC9URD4KKzxURD5UaGUgInN0cnV0cy1sb2dpYyIgdGFnIGxpYnJhcnkgY29udGFpbnMgdGFncyB0aGF0IGFyZSB1c2VmdWwgaW4gbWFuYWdpbmcKK2NvbmRpdGlvbmFsIGdlbmVyYXRpb24gb2Ygb3V0cHV0IHRleHQsIGxvb3Bpbmcgb3ZlciBvYmplY3QgY29sbGVjdGlvbnMKK2ZvciByZXBldGl0aXZlIGdlbmVyYXRpb24gb2Ygb3V0cHV0IHRleHQsIGFuZCBhcHBsaWNhdGlvbiBmbG93IG1hbmFnZW1lbnQuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkPC9BPjwvQj48L1REPgorPFREPk5lc3RlZCB0YWdzICZhbXA7IHN1cHBvcnRpbmcgY2xhc3NlcyBleHRlbmQgdGhlIGJhc2Ugc3RydXRzIHRhZ3MgdG8KK2FsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQT48L0I+PC9URD4KKzxURD5UaGUgbmVzdGVkIGJlYW4gdGFncyBleHRlbmQgdGhlIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9jb2RlPgorICAgICB0YWdzIHRvIGFsbG93IHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjIwJSI+PEI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+PC9CPjwvVEQ+Cis8VEQ+VGhlIG5lc3RlZCBodG1sIHRhZ3MgZXh0ZW5kIHRoZSA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvY29kZT4KKyB0YWdzIHRvIGFsbG93ICAgdGhlbSB0byByZWxhdGUgdG8gZWFjaCBvdGhlciBpbiBhIG5lc3RlZCBuYXR1cmUuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPjwvQj48L1REPgorPFREPlRoZSBuZXN0ZWQgaHRtbCB0YWdzIGV4dGVuZCB0aGUgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9jb2RlPgorICAgdGFncyB0byBhbGxvdyAgIHRoZW0gdG8gcmVsYXRlIHRvIGVhY2ggb3RoZXIgaW4gYSBuZXN0ZWQgbmF0dXJlLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjIwJSI+PEI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGU8L0E+PC9CPjwvVEQ+Cis8VEQ+CisgICAJPGI+Tm90ZTo8L2I+IEFzIG9mIFN0cnV0cyAxLjEgdGhlIHRlbXBsYXRlIHRhZyBsaWJyYXJ5IGlzIAorICAgCWRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgVGlsZXMuPC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0E+PC9CPjwvVEQ+Cis8VEQ+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT48L0I+PC9URD4KKzxURD4gICAgIFRoZSAic3RydXRzLXRpbGVzIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbgorY3JlYXRpbmcgZHluYW1pYyByZXVzYWJsZSBjb21wb25lbnRzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjIwJSI+PEI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dDwvQT48L0I+PC9URD4KKzxURD4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIyMCUiPjxCPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMudXRpbDwvQT48L0I+PC9URD4KKzxURD4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIyMCUiPjxCPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQT48L0I+PC9URD4KKzxURD48ZGl2IGNsYXNzPSJtYWluQ29udGVudCI+CisgICAgVGhlIFRpbGVzIHRhZ2xpYiBhbmQgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyB3ZWIgcGFnZXMgYnkgYXNzZW1ibGluZyByZXVzYWJsZSAKKyAgICBwaWVjZXMgb2YgcGFnZXMsIGNhbGxlZCBUaWxlcy48L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIyMCUiPjxCPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2FjdGlvbnMvcGFja2FnZS1zdW1tYXJ5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnM8L0E+PC9CPjwvVEQ+Cis8VEQ+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnM8L0E+PC9CPjwvVEQ+Cis8VEQ+Jm5ic3A7PC9URD4KKzwvVFI+Cis8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4KKzxURCBXSURUSD0iMjAlIj48Qj48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uPC9BPjwvQj48L1REPgorPFREPiZuYnNwOzwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjIwJSI+PEI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbjwvQT48L0I+PC9URD4KKzxURD4mbmJzcDs8L1REPgorPC9UUj4KKzxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPgorPFREIFdJRFRIPSIyMCUiPjxCPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkPC9BPjwvQj48L1REPgorPFREPiBUaGUgdXBsb2FkIHBhY2thZ2UgZmFjaWxpdGllcyB0byB1cGxvYWQgZmlsZXMgdXNpbmcKKyBtdWx0aS1wYXJ0IHJlcXVlc3RzLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjIwJSI+PEI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9wYWNrYWdlLXN1bW1hcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbDwvQT48L0I+PC9URD4KKzxURD5UaGUgVXRpbGl0aWVzIHBhY2thZ2UgcHJvdmlkZXMgYSB2YXJpZXR5IG9mIGZhbWlsaWVzIG9mIGNsYXNzZXMsCit0byBzb2x2ZSBwcm9ibGVtcyB0aGF0IGFyZSBjb21tb25seSBlbmNvdW50ZXJlZCBpbiBidWlsZGluZyB3ZWIgYXBwbGljYXRpb25zLjwvVEQ+Cis8L1RSPgorPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+Cis8VEQgV0lEVEg9IjIwJSI+PEI+PEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3BhY2thZ2Utc3VtbWFyeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3I8L0E+PC9CPjwvVEQ+Cis8VEQ+IFRoZSB2YWxpZGF0b3IgcGFja2FnZSBwcm92aWRlcyBhIHNlcmllcyBvZiBjbGFzc2VzIHRvIHZhbGlkYXRlIAorICAgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gdHlwZSBvZiBpbnB1dC48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorJm5ic3A7PEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5PdmVydmlldzwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+UGFja2FnZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSJpbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL292ZXJ2aWV3LXRyZWUuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vdmVydmlldy10cmVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWZmYTJhNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9vdmVydmlldy10cmVlLmh0bWwKQEAgLTAsMCArMSw0NTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIiaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MC9sb29zZS5kdGQiPgorPCEtLU5ld1BhZ2UtLT4KKzxIVE1MPgorPEhFQUQ+Cis8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIEZyaSBBdWcgMjIgMDM6NDM6NTAgRURUIDIwMDMgLS0+Cis8VElUTEU+CitDbGFzcyBIaWVyYXJjaHkgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pCis8L1RJVExFPgorPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9InN0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPgorPC9IRUFEPgorPFNDUklQVD4KK2Z1bmN0aW9uIGFzZCgpCit7CitwYXJlbnQuZG9jdW1lbnQudGl0bGU9IkNsYXNzIEhpZXJhcmNoeSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikiOworfQorPC9TQ1JJUFQ+Cis8Qk9EWSBCR0NPTE9SPSJ3aGl0ZSIgb25sb2FkPSJhc2QoKTsiPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX3RvcF9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+UGFja2FnZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSJpbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Im92ZXJ2aWV3LXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+Cis8Q0VOVEVSPgorPEgyPgorSGllcmFyY2h5IEZvciBBbGwgUGFja2FnZXM8L0gyPgorPC9DRU5URVI+Cis8REw+Cis8RFQ+PEI+UGFja2FnZSBIaWVyYXJjaGllczo8L0I+PEREPjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3BhY2thZ2UtdHJlZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0czwvQT4sIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9wYWNrYWdlLXRyZWUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uPC9BPiwgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9wYWNrYWdlLXRyZWUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uczwvQT4sIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9wYWNrYWdlLXRyZWUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnPC9BPiwgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvcGFja2FnZS10cmVlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9BPiwgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9wYWNrYWdlLXRyZWUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2luczwvQT4sIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL3BhY2thZ2UtdHJlZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbjwvQT4sIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL3BhY2thZ2UtdHJlZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQT4sIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9wYWNrYWdlLXRyZWUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9BPiwgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9wYWNrYWdlLXRyZWUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvQT4sIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvYmVhbi9wYWNrYWdlLXRyZWUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuPC9BPiwgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL3BhY2thZ2UtdHJlZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWw8L0E+LCA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL3BhY2thZ2UtdHJlZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9BPiwgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3BhY2thZ2UtdHJlZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGU8L0E+LCA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9wYWNrYWdlLXRyZWUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0E+LCA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvcGFja2FnZS10cmVlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQT4sIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9leHQvcGFja2FnZS10cmVlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQ8L0E+LCA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvdXRpbC9wYWNrYWdlLXRyZWUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLnV0aWw8L0E+LCA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9wYWNrYWdlLXRyZWUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L0E+LCA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL3BhY2thZ2UtdHJlZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zPC9BPiwgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvcGFja2FnZS10cmVlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zPC9BPiwgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvZGVmaW5pdGlvbi9wYWNrYWdlLXRyZWUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbjwvQT4sIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vcGFja2FnZS10cmVlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb248L0E+LCA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvcGFja2FnZS10cmVlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZDwvQT4sIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvcGFja2FnZS10cmVlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0E+LCA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvcGFja2FnZS10cmVlLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQT48L0RMPgorPEhSPgorPEgyPgorQ2xhc3MgSGllcmFyY2h5Cis8L0gyPgorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLk9iamVjdDxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEudXRpbC5BYnN0cmFjdE1hcCAoaW1wbGVtZW50cyBqYXZhLnV0aWwuTWFwKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS51dGlsLkhhc2hNYXAgKGltcGxlbWVudHMgamF2YS5sYW5nLkNsb25lYWJsZSwgamF2YS51dGlsLk1hcCwgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXAuaHRtbCI+PEI+RGVmaW5pdGlvbnNVdGlsLlNlcnZsZXRQcm9wZXJ0aWVzTWFwPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeS5TZXJ2bGV0UHJvcGVydGllc01hcC5odG1sIj48Qj5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LlNlcnZsZXRQcm9wZXJ0aWVzTWFwPC9CPjwvQT48L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5BYnN0cmFjdE9iamVjdENyZWF0aW9uRmFjdG9yeSAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuT2JqZWN0Q3JlYXRpb25GYWN0b3J5KQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25NYXBwaW5nRmFjdG9yeS5odG1sIj48Qj5BY3Rpb25NYXBwaW5nRmFjdG9yeTwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uLmh0bWwiPjxCPkFjdGlvbjwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL0RlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uLmh0bWwiPjxCPkRlZmluaXRpb25EaXNwYXRjaGVyQWN0aW9uPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbnMvRGlzcGF0Y2hBY3Rpb24uaHRtbCI+PEI+RGlzcGF0Y2hBY3Rpb248L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Mb29rdXBEaXNwYXRjaEFjdGlvbi5odG1sIj48Qj5Mb29rdXBEaXNwYXRjaEFjdGlvbjwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9Gb3J3YXJkQWN0aW9uLmh0bWwiPjxCPkZvcndhcmRBY3Rpb248L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9ucy9JbmNsdWRlQWN0aW9uLmh0bWwiPjxCPkluY2x1ZGVBY3Rpb248L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9Ob09wQWN0aW9uLmh0bWwiPjxCPk5vT3BBY3Rpb248L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9SZWxvYWREZWZpbml0aW9uc0FjdGlvbi5odG1sIj48Qj5SZWxvYWREZWZpbml0aW9uc0FjdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb25zL1N3aXRjaEFjdGlvbi5odG1sIj48Qj5Td2l0Y2hBY3Rpb248L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYWN0aW9ucy9UaWxlc0FjdGlvbi5odG1sIj48Qj5UaWxlc0FjdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9hY3Rpb25zL1ZpZXdEZWZpbml0aW9uc0FjdGlvbi5odG1sIj48Qj5WaWV3RGVmaW5pdGlvbnNBY3Rpb248L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FjdGlvbkNvbmZpZy5odG1sIj48Qj5BY3Rpb25Db25maWc8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj48Qj5BY3Rpb25NYXBwaW5nPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiPjxCPlJlcXVlc3RBY3Rpb25NYXBwaW5nPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1Nlc3Npb25BY3Rpb25NYXBwaW5nLmh0bWwiPjxCPlNlc3Npb25BY3Rpb25NYXBwaW5nPC9CPjwvQT48L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0FjdGlvbkNvbnRyb2xsZXIuaHRtbCI+PEI+QWN0aW9uQ29udHJvbGxlcjwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm0uaHRtbCI+PEI+QWN0aW9uRm9ybTwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj48Qj5EeW5hQWN0aW9uRm9ybTwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUJlYW4pCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPjxCPkR5bmFWYWxpZGF0b3JGb3JtPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5EeW5hQmVhbiwgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtLmh0bWwiPjxCPkR5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5EeW5hQmVhbiwgamF2YS5pby5TZXJpYWxpemFibGUpCis8L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yRm9ybS5odG1sIj48Qj5WYWxpZGF0b3JGb3JtPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCI+PEI+VmFsaWRhdG9yQWN0aW9uRm9ybTwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFucy5odG1sIj48Qj5BY3Rpb25Gb3JtQmVhbnM8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9yd2FyZHMuaHRtbCI+PEI+QWN0aW9uRm9yd2FyZHM8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZ3MuaHRtbCI+PEI+QWN0aW9uTWFwcGluZ3M8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZS5odG1sIj48Qj5BY3Rpb25NZXNzYWdlPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkVycm9yLmh0bWwiPjxCPkFjdGlvbkVycm9yPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5odG1sIj48Qj5BY3Rpb25NZXNzYWdlczwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+PEI+QWN0aW9uRXJyb3JzPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbS5odG1sIj48Qj5BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbTwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25TZXJ2bGV0V3JhcHBlci5odG1sIj48Qj5BY3Rpb25TZXJ2bGV0V3JhcHBlcjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db21tb25zTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+PEI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5odG1sIj5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbW1vbnNNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlci5Db21tb25zRm9ybUZpbGUuaHRtbCI+PEI+Q29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyLkNvbW1vbnNGb3JtRmlsZTwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRm9ybUZpbGUuaHRtbCI+Rm9ybUZpbGU8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj48Qj5Db21wb25lbnRDb250ZXh0PC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPjxCPkNvbXBvbmVudERlZmluaXRpb248L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwiPjxCPlhtbERlZmluaXRpb248L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5kZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5odG1sIj48Qj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlci5odG1sIj48Qj5Db25maWdIZWxwZXI8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbmZpZ0hlbHBlckludGVyZmFjZS5odG1sIj5Db25maWdIZWxwZXJJbnRlcmZhY2U8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQ29uc3RhbnRzLmh0bWwiPjxCPkNvbnN0YW50czwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL3V0aWwvQ29udGVudC5odG1sIj48Qj5Db250ZW50PC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvdXRpbC9Db250ZW50TWFwLmh0bWwiPjxCPkNvbnRlbnRNYXA8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXBTdGFjay5odG1sIj48Qj5Db250ZW50TWFwU3RhY2s8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj48Qj5Db250cm9sbGVyQ29uZmlnPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db250cm9sbGVyU3VwcG9ydC5odG1sIj48Qj5Db250cm9sbGVyU3VwcG9ydDwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbnRyb2xsZXIuaHRtbCI+Q29udHJvbGxlcjwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0RhdGFTb3VyY2VDb25maWcuaHRtbCI+PEI+RGF0YVNvdXJjZUNvbmZpZzwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Qj5EZWZpbml0aW9uc0ZhY3Rvcnk8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5odG1sIj48Qj5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza0ZpbGUuaHRtbCI+PEI+RGlza0ZpbGU8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0Zvcm1GaWxlLmh0bWwiPkZvcm1GaWxlPC9BPikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvRGlza011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxCPkRpc2tNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXIuaHRtbCI+TXVsdGlwYXJ0UmVxdWVzdEhhbmRsZXI8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybUNsYXNzLmh0bWwiPjxCPkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFDbGFzcywgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9FbXB0eUl0ZXJhdG9yLmh0bWwiPjxCPkVtcHR5SXRlcmF0b3I8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLnV0aWwuSXRlcmF0b3IpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvRXJyb3JNZXNzYWdlcy5odG1sIj48Qj5FcnJvck1lc3NhZ2VzPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj48Qj5FeGNlcHRpb25Db25maWc8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXhjZXB0aW9uLmh0bWwiPjxCPkFjdGlvbkV4Y2VwdGlvbjwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRXhjZXB0aW9uSGFuZGxlci5odG1sIj48Qj5FeGNlcHRpb25IYW5kbGVyPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vRmFjdG9yeVNldC5odG1sIj48Qj5GYWN0b3J5U2V0PC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTwvQT4pCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+PEI+STE4bkZhY3RvcnlTZXQ8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPjxCPkZpZWxkQ2hlY2tzPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1CZWFuQ29uZmlnLmh0bWwiPjxCPkZvcm1CZWFuQ29uZmlnPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPjxCPkFjdGlvbkZvcm1CZWFuPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtUHJvcGVydHlDb25maWcuaHRtbCI+PEI+Rm9ybVByb3BlcnR5Q29uZmlnPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+PEI+Rm9yd2FyZENvbmZpZzwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPkFjdGlvbkZvcndhcmQ8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQuaHRtbCI+PEI+Rm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkLmh0bWwiPjxCPlJlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZDwvQj48L0E+PC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5sZWdhY3kuR2VuZXJpY0RhdGFTb3VyY2UgKGltcGxlbWVudHMgamF2YXguc3FsLkRhdGFTb3VyY2UpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvR2VuZXJpY0RhdGFTb3VyY2UuaHRtbCI+PEI+R2VuZXJpY0RhdGFTb3VyY2U8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZheC5zZXJ2bGV0LkdlbmVyaWNTZXJ2bGV0IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LlNlcnZsZXQsIGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZykKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldCAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uU2VydmxldC5odG1sIj48Qj5BY3Rpb25TZXJ2bGV0PC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BY3Rpb25Db21wb25lbnRTZXJ2bGV0Lmh0bWwiPjxCPkFjdGlvbkNvbXBvbmVudFNlcnZsZXQ8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1NlcnZsZXQuaHRtbCI+PEI+VGlsZXNTZXJ2bGV0PC9CPjwvQT48L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL0dsb2JhbHMuaHRtbCI+PEI+R2xvYmFsczwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0ltYWdlQnV0dG9uQmVhbi5odG1sIj48Qj5JbWFnZUJ1dHRvbkJlYW48L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEuaW8uSW5wdXRTdHJlYW08VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0J1ZmZlcmVkTXVsdGlwYXJ0SW5wdXRTdHJlYW0uaHRtbCI+PEI+QnVmZmVyZWRNdWx0aXBhcnRJbnB1dFN0cmVhbTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9NdWx0aXBhcnRCb3VuZGFyeUlucHV0U3RyZWFtLmh0bWwiPjxCPk11bHRpcGFydEJvdW5kYXJ5SW5wdXRTdHJlYW08L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0VmFsdWVTdHJlYW0uaHRtbCI+PEI+TXVsdGlwYXJ0VmFsdWVTdHJlYW08L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyLmh0bWwiPjxCPkluc2VydFRhZy5EaXJlY3RTdHJpbmdIYW5kbGVyPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luc2VydFRhZy5JbnNlcnRIYW5kbGVyLmh0bWwiPjxCPkluc2VydFRhZy5JbnNlcnRIYW5kbGVyPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuVGFnSGFuZGxlci5odG1sIj5JbnNlcnRUYWcuVGFnSGFuZGxlcjwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvSXRlcmF0b3JBZGFwdGVyLmh0bWwiPjxCPkl0ZXJhdG9yQWRhcHRlcjwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEudXRpbC5JdGVyYXRvcikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sIj48Qj5MYWJlbFZhbHVlQmVhbjwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+PEI+TWVzc2FnZVJlc291cmNlczwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1Byb3BlcnR5TWVzc2FnZVJlc291cmNlcy5odG1sIj48Qj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01lc3NhZ2VSZXNvdXJjZXNDb25maWcuaHRtbCI+PEI+TWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPjxCPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj48Qj5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPjxCPk1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9pbXBsL0RlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5Lmh0bWwiPjxCPkRlZmF1bHRNb2R1bGVDb25maWdGYWN0b3J5PC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj48Qj5Nb2R1bGVDb25maWdJbXBsPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwiPjxCPkFwcGxpY2F0aW9uQ29uZmlnPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL01vZHVsZUNvbmZpZ1ZlcmlmaWVyLmh0bWwiPjxCPk1vZHVsZUNvbmZpZ1ZlcmlmaWVyPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9QbHVnSW4uaHRtbCI+UGx1Z0luPC9BPikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTXVsdGlwYXJ0RWxlbWVudC5odG1sIj48Qj5NdWx0aXBhcnRFbGVtZW50PC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydEl0ZXJhdG9yLmh0bWwiPjxCPk11bHRpcGFydEl0ZXJhdG9yPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RXcmFwcGVyLmh0bWwiPjxCPk11bHRpcGFydFJlcXVlc3RXcmFwcGVyPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdCkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eUhlbHBlci5odG1sIj48Qj5OZXN0ZWRQcm9wZXJ0eUhlbHBlcjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj48Qj5OZXN0ZWRSZWZlcmVuY2U8L0I+PC9BPiAoaW1wbGVtZW50cyBqYXZhLmlvLlNlcmlhbGl6YWJsZSkKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvUGx1Z0luQ29uZmlnLmh0bWwiPjxCPlBsdWdJbkNvbmZpZzwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEI+UmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeTwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9SZXF1ZXN0UHJvY2Vzc29yLmh0bWwiPjxCPlJlcXVlc3RQcm9jZXNzb3I8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzUmVxdWVzdFByb2Nlc3Nvci5odG1sIj48Qj5UaWxlc1JlcXVlc3RQcm9jZXNzb3I8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVxdWVzdFV0aWxzLmh0bWwiPjxCPlJlcXVlc3RVdGlsczwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9SZXNvdXJjZXMuaHRtbCI+PEI+UmVzb3VyY2VzPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUmVzcG9uc2VVdGlscy5odG1sIj48Qj5SZXNwb25zZVV0aWxzPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIuUnVsZTxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWRkRGF0YVNvdXJjZVByb3BlcnR5UnVsZS5odG1sIj48Qj5BZGREYXRhU291cmNlUHJvcGVydHlSdWxlPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJblNldFByb3BlcnR5UnVsZS5odG1sIj48Qj5QbHVnSW5TZXRQcm9wZXJ0eVJ1bGU8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvU2V0QWN0aW9uTWFwcGluZ0NsYXNzUnVsZS5odG1sIj48Qj5TZXRBY3Rpb25NYXBwaW5nQ2xhc3NSdWxlPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLlJ1bGVTZXRCYXNlIChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5SdWxlU2V0KQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdSdWxlU2V0Lmh0bWwiPjxCPkNvbmZpZ1J1bGVTZXQ8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sIj48Qj5TaW1wbGVNZW51SXRlbTwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL2JlYW5zL01lbnVJdGVtLmh0bWwiPk1lbnVJdGVtPC9BPiwgamF2YS5pby5TZXJpYWxpemFibGUpCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwiPjxCPlN0cnV0c1ZhbGlkYXRvcjwvQj48L0E+IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL1N0cnV0c1ZhbGlkYXRvclV0aWwuaHRtbCI+PEI+U3RydXRzVmFsaWRhdG9yVXRpbDwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ0V4dHJhSW5mbzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRlaS5odG1sIj48Qj5Db29raWVUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0RlZmluZVRlaS5odG1sIj48Qj5EZWZpbmVUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0hlYWRlclRlaS5odG1sIj48Qj5IZWFkZXJUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUZWkuaHRtbCI+PEI+SW5jbHVkZVRlaTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGVpLmh0bWwiPjxCPkl0ZXJhdGVUZWk8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkRGVmaW5lVGVpLmh0bWwiPjxCPk5lc3RlZERlZmluZVRlaTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEl0ZXJhdGVUZWkuaHRtbCI+PEI+TmVzdGVkSXRlcmF0ZVRlaTwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGVpLmh0bWwiPjxCPk1lc3NhZ2VzVGVpPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGVpLmh0bWwiPjxCPlBhZ2VUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRlaS5odG1sIj48Qj5QYXJhbWV0ZXJUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGVpLmh0bWwiPjxCPlJlc291cmNlVGVpPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGVpLmh0bWwiPjxCPlNpemVUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1N0cnV0c1RlaS5odG1sIj48Qj5TdHJ1dHNUZWk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGVpLmh0bWwiPjxCPlVzZUF0dHJpYnV0ZVRlaTwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlLCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmh0bWwiPjxCPkF0dHJpYnV0ZVRvU2NvcGVUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+PEI+QmFzZVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YXguc2VydmxldC5qc3AudGFnZXh0LkJvZHlUYWdTdXBwb3J0IChpbXBsZW1lbnRzIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvQmFzZUhhbmRsZXJUYWcuaHRtbCI+PEI+QmFzZUhhbmRsZXJUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj48Qj5CYXNlSW5wdXRUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VGaWVsZFRhZy5odG1sIj48Qj5CYXNlRmllbGRUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ZpbGVUYWcuaHRtbCI+PEI+RmlsZVRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGaWxlVGFnLmh0bWwiPjxCPk5lc3RlZEZpbGVUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0hpZGRlblRhZy5odG1sIj48Qj5IaWRkZW5UYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSGlkZGVuVGFnLmh0bWwiPjxCPk5lc3RlZEhpZGRlblRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUGFzc3dvcmRUYWcuaHRtbCI+PEI+UGFzc3dvcmRUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkUGFzc3dvcmRUYWcuaHRtbCI+PEI+TmVzdGVkUGFzc3dvcmRUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL2V4dC9UZXh0VGFnLmh0bWwiPjxCPlRleHRUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbCI+PEI+VGV4dFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0VGFnLmh0bWwiPjxCPk5lc3RlZFRleHRUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9UZXh0YXJlYVRhZy5odG1sIj48Qj5UZXh0YXJlYVRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIj48Qj5OZXN0ZWRUZXh0YXJlYVRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0J1dHRvblRhZy5odG1sIj48Qj5CdXR0b25UYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIj48Qj5DYW5jZWxUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NoZWNrYm94VGFnLmh0bWwiPjxCPkNoZWNrYm94VGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZENoZWNrYm94VGFnLmh0bWwiPjxCPk5lc3RlZENoZWNrYm94VGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+PEI+SW1nVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltZ1RhZy5odG1sIj48Qj5OZXN0ZWRJbWdUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0xpbmtUYWcuaHRtbCI+PEI+TGlua1RhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRnJhbWVUYWcuaHRtbCI+PEI+RnJhbWVUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTGlua1RhZy5odG1sIj48Qj5OZXN0ZWRMaW5rVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1Jld3JpdGVUYWcuaHRtbCI+PEI+UmV3cml0ZVRhZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPjxCPk11bHRpYm94VGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE11bHRpYm94VGFnLmh0bWwiPjxCPk5lc3RlZE11bHRpYm94VGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9SYWRpb1RhZy5odG1sIj48Qj5SYWRpb1RhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRSYWRpb1RhZy5odG1sIj48Qj5OZXN0ZWRSYWRpb1RhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+PEI+UmVzZXRUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1NlbGVjdFRhZy5odG1sIj48Qj5TZWxlY3RUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU2VsZWN0VGFnLmh0bWwiPjxCPk5lc3RlZFNlbGVjdFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU3VibWl0VGFnLmh0bWwiPjxCPlN1Ym1pdFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSW1hZ2VUYWcuaHRtbCI+PEI+SW1hZ2VUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSW1hZ2VUYWcuaHRtbCI+PEI+TmVzdGVkSW1hZ2VUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlTdXBwb3J0Lmh0bWwiPk5lc3RlZFByb3BlcnR5U3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRTdWJtaXRUYWcuaHRtbCI+PEI+TmVzdGVkU3VibWl0VGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFByb3BlcnR5U3VwcG9ydC5odG1sIj5OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQ8L0E+KQorPC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+PEI+RGVmaW5lVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRhZy5odG1sIj48Qj5OZXN0ZWREZWZpbmVUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvSXRlcmF0ZVRhZy5odG1sIj48Qj5JdGVyYXRlVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkSXRlcmF0ZVRhZy5odG1sIj48Qj5OZXN0ZWRJdGVyYXRlVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9KYXZhc2NyaXB0VmFsaWRhdG9yVGFnLmh0bWwiPjxCPkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL01lc3NhZ2VzVGFnLmh0bWwiPjxCPk1lc3NhZ2VzVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE1lc3NhZ2VzVGFnLmh0bWwiPjxCPk5lc3RlZE1lc3NhZ2VzVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUHJvcGVydHlUYWcuaHRtbCI+PEI+TmVzdGVkUHJvcGVydHlUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCI+PEI+TmVzdGVkUm9vdFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkV3JpdGVOZXN0aW5nVGFnLmh0bWwiPjxCPk5lc3RlZFdyaXRlTmVzdGluZ1RhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uVGFnLmh0bWwiPjxCPk9wdGlvblRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWcuaHRtbCI+PEI+UHV0VGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+Q29tcG9uZW50Q29uc3RhbnRzPC9BPikKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnLmh0bWwiPjxCPkFkZFRhZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGVtcGxhdGUvUHV0VGFnLmh0bWwiPjxCPlB1dFRhZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvQ29uZGl0aW9uYWxUYWdCYXNlLmh0bWwiPjxCPkNvbmRpdGlvbmFsVGFnQmFzZTwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj48Qj5Db21wYXJlVGFnQmFzZTwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FcXVhbFRhZy5odG1sIj48Qj5FcXVhbFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVxdWFsVGFnLmh0bWwiPjxCPk5lc3RlZEVxdWFsVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJFcXVhbFRhZy5odG1sIj48Qj5HcmVhdGVyRXF1YWxUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRHcmVhdGVyRXF1YWxUYWcuaHRtbCI+PEI+TmVzdGVkR3JlYXRlckVxdWFsVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0dyZWF0ZXJUaGFuVGFnLmh0bWwiPjxCPkdyZWF0ZXJUaGFuVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlclRoYW5UYWcuaHRtbCI+PEI+TmVzdGVkR3JlYXRlclRoYW5UYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc0VxdWFsVGFnLmh0bWwiPjxCPkxlc3NFcXVhbFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sIj48Qj5OZXN0ZWRMZXNzRXF1YWxUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTGVzc1RoYW5UYWcuaHRtbCI+PEI+TGVzc1RoYW5UYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sIj48Qj5OZXN0ZWRMZXNzVGhhblRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIj48Qj5Ob3RFcXVhbFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVxdWFsVGFnLmh0bWwiPjxCPk5lc3RlZE5vdEVxdWFsVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9FbXB0eVRhZy5odG1sIj48Qj5FbXB0eVRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwiPjxCPk5lc3RlZEVtcHR5VGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90RW1wdHlUYWcuaHRtbCI+PEI+Tm90RW1wdHlUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RFbXB0eVRhZy5odG1sIj48Qj5OZXN0ZWROb3RFbXB0eVRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWF0Y2hUYWcuaHRtbCI+PEI+TWF0Y2hUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNYXRjaFRhZy5odG1sIj48Qj5OZXN0ZWRNYXRjaFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdE1hdGNoVGFnLmh0bWwiPjxCPk5vdE1hdGNoVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90TWF0Y2hUYWcuaHRtbCI+PEI+TmVzdGVkTm90TWF0Y2hUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj48Qj5NZXNzYWdlc1ByZXNlbnRUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPjxCPk1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj48Qj5OZXN0ZWRNZXNzYWdlc05vdFByZXNlbnRUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRNZXNzYWdlc1ByZXNlbnRUYWcuaHRtbCI+PEI+TmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+PEI+UHJlc2VudFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZFByZXNlbnRUYWcuaHRtbCI+PEI+TmVzdGVkUHJlc2VudFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdFByZXNlbnRUYWcuaHRtbCI+PEI+Tm90UHJlc2VudFRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdFByZXNlbnRUYWcuaHRtbCI+PEI+TmVzdGVkTm90UHJlc2VudFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9Db29raWVUYWcuaHRtbCI+PEI+Q29va2llVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0Lmh0bWwiPjxCPkRlZmluaXRpb25UYWdTdXBwb3J0PC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuaHRtbCI+PEI+RGVmaW5pdGlvblRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj5QdXRMaXN0VGFnUGFyZW50PC9BPiwgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWdQYXJlbnQuaHRtbCI+UHV0VGFnUGFyZW50PC9BPikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLmh0bWwiPjxCPkluc2VydFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPkNvbXBvbmVudENvbnN0YW50czwvQT4sIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj5QdXRMaXN0VGFnUGFyZW50PC9BPiwgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9QdXRUYWdQYXJlbnQuaHRtbCI+UHV0VGFnUGFyZW50PC9BPikKKzxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvR2V0VGFnLmh0bWwiPjxCPkdldFRhZzwvQj48L0E+PC9VTD4KKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9FcnJvcnNUYWcuaHRtbCI+PEI+RXJyb3JzVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEVycm9yc1RhZy5odG1sIj48Qj5OZXN0ZWRFcnJvcnNUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+PEI+Rm9ybVRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwiPjxCPk5lc3RlZEZvcm1UYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkTmFtZVN1cHBvcnQuaHRtbCI+TmVzdGVkTmFtZVN1cHBvcnQ8L0E+KQorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRm9yd2FyZFRhZy5odG1sIj48Qj5Gb3J3YXJkVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5odG1sIj48Qj5HZXRBdHRyaWJ1dGVUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9HZXRUYWcuaHRtbCI+PEI+R2V0VGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+PEI+SGVhZGVyVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9IdG1sVGFnLmh0bWwiPjxCPkh0bWxUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwiPjxCPkltcG9ydEF0dHJpYnV0ZVRhZzwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vSW5jbHVkZVRhZy5odG1sIj48Qj5JbmNsdWRlVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luaXREZWZpbml0aW9uc1RhZy5odG1sIj48Qj5Jbml0RGVmaW5pdGlvbnNUYWc8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5odG1sIj5Db21wb25lbnRDb25zdGFudHM8L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCI+PEI+SW5zZXJ0VGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9NZXNzYWdlVGFnLmh0bWwiPjxCPk1lc3NhZ2VUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkTWVzc2FnZVRhZy5odG1sIj48Qj5OZXN0ZWRNZXNzYWdlVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj48Qj5PcHRpb25zQ29sbGVjdGlvblRhZzwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj48Qj5OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc1RhZy5odG1sIj48Qj5PcHRpb25zVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE9wdGlvbnNUYWcuaHRtbCI+PEI+TmVzdGVkT3B0aW9uc1RhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj5OZXN0ZWROYW1lU3VwcG9ydDwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vUGFnZVRhZy5odG1sIj48Qj5QYWdlVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYXJhbWV0ZXJUYWcuaHRtbCI+PEI+UGFyYW1ldGVyVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+PEI+UHV0TGlzdFRhZzwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50Lmh0bWwiPkFkZFRhZ1BhcmVudDwvQT4sIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPkNvbXBvbmVudENvbnN0YW50czwvQT4sIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5odG1sIj5QdXRMaXN0VGFnUGFyZW50PC9BPikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+PEI+UmVkaXJlY3RUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1Jlc291cmNlVGFnLmh0bWwiPjxCPlJlc291cmNlVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TaXplVGFnLmh0bWwiPjxCPlNpemVUYWc8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sIj48Qj5OZXN0ZWRTaXplVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9TdHJ1dHNUYWcuaHRtbCI+PEI+U3RydXRzVGFnPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1VzZUF0dHJpYnV0ZVRhZy5odG1sIj48Qj5Vc2VBdHRyaWJ1dGVUYWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1dyaXRlVGFnLmh0bWwiPjxCPldyaXRlVGFnPC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZFdyaXRlVGFnLmh0bWwiPjxCPk5lc3RlZFdyaXRlVGFnPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPk5lc3RlZE5hbWVTdXBwb3J0PC9BPikKKzwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9YaHRtbFRhZy5odG1sIj48Qj5YaHRtbFRhZzwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmh0bWwiPjxCPlRhZ1V0aWxzPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmxhbmcuVGhyb3dhYmxlIChpbXBsZW1lbnRzIGphdmEuaW8uU2VyaWFsaXphYmxlKQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3MgamF2YS5sYW5nLkV4Y2VwdGlvbjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEuaW8uSU9FeGNlcHRpb248VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL0NvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbi5odG1sIj48Qj5Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91cGxvYWQvTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+PEI+TWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb248L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwiPjxCPk1vZHVsZUV4Y2VwdGlvbjwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FwcEV4Y2VwdGlvbi5odG1sIj48Qj5BcHBFeGNlcHRpb248L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc0V4Y2VwdGlvbi5odG1sIj48Qj5UaWxlc0V4Y2VwdGlvbjwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmh0bWwiPjxCPkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiPjxCPkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5odG1sIj48Qj5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uPC9CPjwvQT48L1VMPgorPC9VTD4KKzwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNQbHVnaW4uaHRtbCI+PEI+VGlsZXNQbHVnaW48L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj5QbHVnSW48L0E+KQorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsLmh0bWwiPjxCPlRpbGVzVXRpbDwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmh0bWwiPjxCPkRlZmluaXRpb25zVXRpbDwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmh0bWwiPkNvbXBvbmVudENvbnN0YW50czwvQT4pCis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNVdGlsSW1wbC5odG1sIj48Qj5UaWxlc1V0aWxJbXBsPC9CPjwvQT4gKGltcGxlbWVudHMgamF2YS5pby5TZXJpYWxpemFibGUpCis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwiPjxCPlRpbGVzVXRpbFN0cnV0c0ltcGw8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwiPjxCPlRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsPC9CPjwvQT48L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Ub2tlblByb2Nlc3Nvci5odG1sIj48Qj5Ub2tlblByb2Nlc3NvcjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVW50eXBwZWRBdHRyaWJ1dGUuaHRtbCI+PEI+VW50eXBwZWRBdHRyaWJ1dGU8L0I+PC9BPiAoaW1wbGVtZW50cyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9BdHRyaWJ1dGVEZWZpbml0aW9uLmh0bWwiPkF0dHJpYnV0ZURlZmluaXRpb248L0E+KQorPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbkF0dHJpYnV0ZS5odG1sIj48Qj5EZWZpbml0aW9uQXR0cmlidXRlPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5odG1sIj48Qj5EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGlyZWN0U3RyaW5nQXR0cmlidXRlLmh0bWwiPjxCPkRpcmVjdFN0cmluZ0F0dHJpYnV0ZTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvUGF0aEF0dHJpYnV0ZS5odG1sIj48Qj5QYXRoQXR0cmlidXRlPC9CPjwvQT48L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVXJsQ29udHJvbGxlci5odG1sIj48Qj5VcmxDb250cm9sbGVyPC9CPjwvQT4gKGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPikKKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvVmFsaWRhdG9yUGx1Z0luLmh0bWwiPjxCPlZhbGlkYXRvclBsdWdJbjwvQj48L0E+IChpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vUGx1Z0luLmh0bWwiPlBsdWdJbjwvQT4pCis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBqYXZhLmlvLldyaXRlcjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIGphdmEuaW8uUHJpbnRXcml0ZXI8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU2VydmxldENvbnRleHRXcml0ZXIuaHRtbCI+PEI+U2VydmxldENvbnRleHRXcml0ZXI8L0I+PC9BPjwvVUw+Cis8L1VMPgorPExJIFRZUEU9ImNpcmNsZSI+Y2xhc3Mgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL1htbEF0dHJpYnV0ZS5odG1sIj48Qj5YbWxBdHRyaWJ1dGU8L0I+PC9BPjxVTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmh0bWwiPjxCPlhtbExpc3RBdHRyaWJ1dGU8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5jbGFzcyBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vWG1sRGVmaW5pdGlvbnNTZXQuaHRtbCI+PEI+WG1sRGVmaW5pdGlvbnNTZXQ8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmNsYXNzIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuaHRtbCI+PEI+WG1sUGFyc2VyPC9CPjwvQT48L1VMPgorPC9VTD4KKzxIMj4KK0ludGVyZmFjZSBIaWVyYXJjaHkKKzwvSDI+Cis8VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5pbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9BZGRUYWdQYXJlbnQuaHRtbCI+PEI+QWRkVGFnUGFyZW50PC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5pbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9Db21wb25lbnRDb25zdGFudHMuaHRtbCI+PEI+Q29tcG9uZW50Q29uc3RhbnRzPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5pbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db25maWdIZWxwZXJJbnRlcmZhY2UuaHRtbCI+PEI+Q29uZmlnSGVscGVySW50ZXJmYWNlPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5pbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj48Qj5Db250cm9sbGVyPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5pbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Gb3JtRmlsZS5odG1sIj48Qj5Gb3JtRmlsZTwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+PEI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL01vZHVsZUNvbmZpZy5odG1sIj48Qj5Nb2R1bGVDb25maWc8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL011bHRpcGFydFJlcXVlc3RIYW5kbGVyLmh0bWwiPjxCPk11bHRpcGFydFJlcXVlc3RIYW5kbGVyPC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5pbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFRhZ1N1cHBvcnQuaHRtbCI+PEI+TmVzdGVkVGFnU3VwcG9ydDwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWROYW1lU3VwcG9ydC5odG1sIj48Qj5OZXN0ZWROYW1lU3VwcG9ydDwvQj48L0E+PFVMPgorPExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQYXJlbnRTdXBwb3J0Lmh0bWwiPjxCPk5lc3RlZFBhcmVudFN1cHBvcnQ8L0I+PC9BPjwvVUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5pbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFBhcmVudFN1cHBvcnQuaHRtbCI+PEI+TmVzdGVkUGFyZW50U3VwcG9ydDwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVN1cHBvcnQuaHRtbCI+PEI+TmVzdGVkUHJvcGVydHlTdXBwb3J0PC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5pbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZE5hbWVTdXBwb3J0Lmh0bWwiPjxCPk5lc3RlZE5hbWVTdXBwb3J0PC9CPjwvQT48VUw+Cis8TEkgVFlQRT0iY2lyY2xlIj5pbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFBhcmVudFN1cHBvcnQuaHRtbCI+PEI+TmVzdGVkUGFyZW50U3VwcG9ydDwvQj48L0E+PC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvTmVzdGVkUGFyZW50U3VwcG9ydC5odG1sIj48Qj5OZXN0ZWRQYXJlbnRTdXBwb3J0PC9CPjwvQT48L1VMPgorPC9VTD4KKzxMSSBUWVBFPSJjaXJjbGUiPmludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1BsdWdJbi5odG1sIj48Qj5QbHVnSW48L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuaHRtbCI+PEI+UHV0TGlzdFRhZ1BhcmVudDwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnUGFyZW50Lmh0bWwiPjxCPlB1dFRhZ1BhcmVudDwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIGphdmEuaW8uU2VyaWFsaXphYmxlPFVMPgorPExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uaHRtbCI+PEI+QXR0cmlidXRlRGVmaW5pdGlvbjwvQj48L0E+PExJIFRZUEU9ImNpcmNsZSI+aW50ZXJmYWNlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLjxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj48Qj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0I+PC9BPjxMSSBUWVBFPSJjaXJjbGUiPmludGVyZmFjZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy48QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+PEI+RGVmaW5pdGlvbnNGYWN0b3J5PC9CPjwvQT48TEkgVFlQRT0iY2lyY2xlIj5pbnRlcmZhY2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvYmVhbnMvTWVudUl0ZW0uaHRtbCI+PEI+TWVudUl0ZW08L0I+PC9BPjwvVUw+Cis8L1VMPgorPEhSPgorCis8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJuYXZiYXJfYm90dG9tIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIFdJRFRIPSIxMDAlIiBDRUxMUEFERElORz0iMSIgQ0VMTFNQQUNJTkc9IjAiPgorPFRSPgorPFREIENPTFNQQU49MyBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbV9maXJzdHJvdyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPgorICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+UGFja2FnZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5DbGFzczwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5Vc2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+VHJlZTwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImRlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+Cis8L1REPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+Cis8L0VNPgorPC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CismbmJzcDtQUkVWJm5ic3A7CismbmJzcDtORVhUPC9GT05UPjwvVEQ+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorICA8QSBIUkVGPSJpbmRleC5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPkZSQU1FUzwvQj48L0E+ICAmbmJzcDsKKyZuYnNwOzxBIEhSRUY9Im92ZXJ2aWV3LXRyZWUuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL3BhY2thZ2UtbGlzdCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9wYWNrYWdlLWxpc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGY5MjFhMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1kb2MtMS4xL2FwaS9wYWNrYWdlLWxpc3QKQEAgLTAsMCArMSwyNiBAQAorb3JnLmFwYWNoZS5zdHJ1dHMKK29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbgorb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucworb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnCitvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbAorb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucworb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4KK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sCitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMKK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQKK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbgorb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sCitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljCitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUKK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS51dGlsCitvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMKK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQKK29yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy51dGlsCitvcmcuYXBhY2hlLnN0cnV0cy50aWxlcworb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucworb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMKK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24KK29yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24KK29yZy5hcGFjaGUuc3RydXRzLnVwbG9hZAorb3JnLmFwYWNoZS5zdHJ1dHMudXRpbAorb3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yCmRpZmYgLS1naXQgYS9zdHJ1dHMtZG9jLTEuMS9hcGkvcGFja2FnZXMuaHRtbCBiL3N0cnV0cy1kb2MtMS4xL2FwaS9wYWNrYWdlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzMjhlOWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvcGFja2FnZXMuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iImh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAvbG9vc2UuZHRkIj4KKzwhLS1OZXdQYWdlLS0+Cis8SFRNTD4KKzxIRUFEPgorPCEtLSBHZW5lcmF0ZWQgYnkgamF2YWRvYyBvbiBGcmkgQXVnIDIyIDAzOjQzOjUyIEVEVCAyMDAzIC0tPgorPFRJVExFPgorIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKQorPC9USVRMRT4KKzxMSU5LIFJFTCA9InN0eWxlc2hlZXQiIFRZUEU9InRleHQvY3NzIiBIUkVGPSJzdHlsZXNoZWV0LmNzcyIgVElUTEU9IlN0eWxlIj4KKzwvSEVBRD4KKzxTQ1JJUFQ+CitmdW5jdGlvbiBhc2QoKQoreworcGFyZW50LmRvY3VtZW50LnRpdGxlPSIgKEFwYWNoZSBTdHJ1dHMgQVBJIERvY3VtZW50YXRpb24pIjsKK30KKzwvU0NSSVBUPgorPEJPRFkgQkdDT0xPUj0id2hpdGUiIG9ubG9hZD0iYXNkKCk7Ij4KKworPEJSPgorCis8QlI+CisKKzxCUj4KKzxDRU5URVI+CitUaGUgZnJvbnQgcGFnZSBoYXMgYmVlbiByZWxvY2F0ZWQuUGxlYXNlIHNlZToKKzxCUj4KKyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzxBIEhSRUY9ImluZGV4Lmh0bWwiPkZyYW1lIHZlcnNpb248L0E+Cis8QlI+CismbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8QSBIUkVGPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiPk5vbi1mcmFtZSB2ZXJzaW9uLjwvQT48L0NFTlRFUj4KKworPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL3NlcmlhbGl6ZWQtZm9ybS5odG1sIGIvc3RydXRzLWRvYy0xLjEvYXBpL3NlcmlhbGl6ZWQtZm9ybS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkNGU3ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvc2VyaWFsaXplZC1mb3JtLmh0bWwKQEAgLTAsMCArMSwxMDgzMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwL2xvb3NlLmR0ZCI+Cis8IS0tTmV3UGFnZS0tPgorPEhUTUw+Cis8SEVBRD4KKzwhLS0gR2VuZXJhdGVkIGJ5IGphdmFkb2Mgb24gRnJpIEF1ZyAyMiAwMzo0NDoxMCBFRFQgMjAwMyAtLT4KKzxUSVRMRT4KK1NlcmlhbGl6ZWQgRm9ybSAoQXBhY2hlIFN0cnV0cyBBUEkgRG9jdW1lbnRhdGlvbikKKzwvVElUTEU+Cis8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0ic3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSI+Cis8L0hFQUQ+Cis8U0NSSVBUPgorZnVuY3Rpb24gYXNkKCkKK3sKK3BhcmVudC5kb2N1bWVudC50aXRsZT0iU2VyaWFsaXplZCBGb3JtIChBcGFjaGUgU3RydXRzIEFQSSBEb2N1bWVudGF0aW9uKSI7Cit9Cis8L1NDUklQVD4KKzxCT0RZIEJHQ09MT1I9IndoaXRlIiBvbmxvYWQ9ImFzZCgpOyI+CisKKzwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Im5hdmJhcl90b3AiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+Cis8VFI+Cis8VEQgQ09MU1BBTj0zIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+Cis8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExQQURESU5HPSIwIiBDRUxMU1BBQ0lORz0iMyI+CisgIDxUUiBBTElHTj0iY2VudGVyIiBWQUxJR049InRvcCI+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJvdmVydmlldy1zdW1tYXJ5Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+T3ZlcnZpZXc8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj5QYWNrYWdlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPkNsYXNzPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlVzZTwvRk9OVD4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0ib3ZlcnZpZXctdHJlZS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlRyZWU8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iZGVwcmVjYXRlZC1saXN0Lmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+RGVwcmVjYXRlZDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJpbmRleC1hbGwuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5JbmRleDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJoZWxwLWRvYy5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkhlbHA8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKzwvVEQ+Cis8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgUk9XU1BBTj0zPjxFTT4KKzwvRU0+Cis8L1REPgorPC9UUj4KKworPFRSPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyZuYnNwO1BSRVYmbmJzcDsKKyZuYnNwO05FWFQ8L0ZPTlQ+PC9URD4KKzxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+CisgIDxBIEhSRUY9ImluZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7PEEgSFJFRj0ic2VyaWFsaXplZC1mb3JtLmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+Tk8gRlJBTUVTPC9CPjwvQT4gICZuYnNwOworJm5ic3A7Cis8U0NSSVBUPgorICA8IS0tCisgIGlmKHdpbmRvdz09dG9wKSB7CisgICAgZG9jdW1lbnQud3JpdGVsbignPEEgSFJFRj0iYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Jyk7CisgIH0KKyAgLy8tLT4KKzwvU0NSSVBUPgorPE5PU0NSSVBUPgorPEEgSFJFRj0iYWxsY2xhc3Nlcy1ub2ZyYW1lLmh0bWwiIFRBUkdFVD0iIj48Qj5BbGwgQ2xhc3NlczwvQj48L0E+Cis8L05PU0NSSVBUPgorPC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4KKworPEhSPgorPENFTlRFUj4KKzxIMT4KK1NlcmlhbGl6ZWQgRm9ybTwvSDE+Cis8L0NFTlRFUj4KKzxIUiBTSVpFPSI0IiBOT1NIQURFPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIEFMSUdOPSJjZW50ZXIiPjxGT05UIFNJWkU9IisyIj4KKzxCPlBhY2thZ2U8L0I+IDxCPm9yZy5hcGFjaGUuc3RydXRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFscyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9HbG9iYWxzLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHM8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxIUiBTSVpFPSI0IiBOT1NIQURFPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIEFMSUdOPSJjZW50ZXIiPjxGT05UIFNJWkU9IisyIj4KKzxCPlBhY2thZ2U8L0I+IDxCPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvcjwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5EeW5hVmFsaWRhdG9yQWN0aW9uRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvRHluYVZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLkR5bmFWYWxpZGF0b3JBY3Rpb25Gb3JtPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRHluYVZhbGlkYXRvckZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0R5bmFWYWxpZGF0b3JGb3JtLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5EeW5hVmFsaWRhdG9yRm9ybTwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Cit2YWxpZGF0b3JSZXN1bHRzPC9IMz4KKzxQUkU+CitvcmcuYXBhY2hlLmNvbW1vbnMudmFsaWRhdG9yLlZhbGlkYXRvclJlc3VsdHMgPEI+dmFsaWRhdG9yUmVzdWx0czwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVzdWx0cyByZXR1cm5lZCBmcm9tIHRoZSB2YWxpZGF0aW9uIHBlcmZvcm1lZAorIGJ5IHRoZSA8Y29kZT5WYWxpZGF0b3I8L2NvZGU+LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGFnZTwvSDM+Cis8UFJFPgoraW50IDxCPnBhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+VXNlZCB0byBpbmRpY2F0ZSB0aGUgY3VycmVudCBwYWdlIG9mIGEgbXVsdGktcGFnZSBmb3JtLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRmllbGRDaGVja3MiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL0ZpZWxkQ2hlY2tzLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5GaWVsZENoZWNrczwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbkZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL1ZhbGlkYXRvckFjdGlvbkZvcm0uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvckFjdGlvbkZvcm08L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5WYWxpZGF0b3JGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci9WYWxpZGF0b3JGb3JtLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5WYWxpZGF0b3JGb3JtPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK3ZhbGlkYXRvclJlc3VsdHM8L0gzPgorPFBSRT4KK29yZy5hcGFjaGUuY29tbW9ucy52YWxpZGF0b3IuVmFsaWRhdG9yUmVzdWx0cyA8Qj52YWxpZGF0b3JSZXN1bHRzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSByZXN1bHRzIHJldHVybmVkIGZyb20gdGhlIHZhbGlkYXRpb24gcGVyZm9ybWVkCisgYnkgdGhlIDxjb2RlPlZhbGlkYXRvcjwvY29kZT4uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitwYWdlPC9IMz4KKzxQUkU+CitpbnQgPEI+cGFnZTwvQj48L1BSRT4KKzxETD4KKzxERD5Vc2VkIHRvIGluZGljYXRlIHRoZSBjdXJyZW50IHBhZ2Ugb2YgYSBtdWx0aS1wYWdlIGZvcm0uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxIUiBTSVpFPSI0IiBOT1NIQURFPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIEFMSUdOPSJjZW50ZXIiPjxGT05UIFNJWkU9IisyIj4KKzxCPlBhY2thZ2U8L0I+IDxCPm9yZy5hcGFjaGUuc3RydXRzLnV0aWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsLkFwcEV4Y2VwdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL0FwcEV4Y2VwdGlvbi5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkFwcEV4Y2VwdGlvbjwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5JbWFnZUJ1dHRvbkJlYW4iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9JbWFnZUJ1dHRvbkJlYW4uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5JbWFnZUJ1dHRvbkJlYW48L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgoreDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj54PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBYIGNvb3JkaW5hdGUgb2YgdGhlIGJ1dHRvbiBwcmVzcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3k8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgWSBjb29yZGluYXRlIG9mIHRoZSBidXR0b24gcHJlc3MuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTGFiZWxWYWx1ZUJlYW4iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9MYWJlbFZhbHVlQmVhbi5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLkxhYmVsVmFsdWVCZWFuPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2xhYmVsPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmxhYmVsPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSB3aGljaCBzdXBwbGllcyB0aGUgb3B0aW9uIGxhYmVsIHZpc2libGUgdG8gdGhlIGVuZCB1c2VyLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHByb3BlcnR5IHdoaWNoIHN1cHBsaWVzIHRoZSB2YWx1ZSByZXR1cm5lZCB0byB0aGUgc2VydmVyLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlczwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Citjb25maWc8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Y29uZmlnPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciB1c2VkIHRvIGluaXRpYWxpemUgdGhpcyBNZXNzYWdlUmVzb3VyY2VzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZGVmYXVsdExvY2FsZTwvSDM+Cis8UFJFPgoramF2YS51dGlsLkxvY2FsZSA8Qj5kZWZhdWx0TG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBkZWZhdWx0IExvY2FsZSBmb3Igb3VyIGVudmlyb25tZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZmFjdG9yeTwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvQT4gPEI+ZmFjdG9yeTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IHRoYXQgY3JlYXRlZCB0aGlzIGluc3RhbmNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZm9ybWF0czwvSDM+Cis8UFJFPgoramF2YS51dGlsLkhhc2hNYXAgPEI+Zm9ybWF0czwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIHByZXZpb3VzbHkgY3JlYXRlZCBNZXNzYWdlRm9ybWF0IG9iamVjdHMsIGtleWVkIGJ5IHRoZQorIGtleSBjb21wdXRlZCBpbiA8Y29kZT5tZXNzYWdlS2V5KCk8L2NvZGU+LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcmV0dXJuTnVsbDwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5yZXR1cm5OdWxsPC9CPjwvUFJFPgorPERMPgorPEREPkluZGljYXRlIGlzIGEgPGNvZGU+bnVsbDwvY29kZT4gaXMgcmV0dXJuZWQgaW5zdGVhZCBvZiBhbiBlcnJvciBtZXNzYWdlIHN0cmluZworIHdoZW4gYW4gdW5rbm93biBMb2NhbGUgb3Iga2V5IGlzIHJlcXVlc3RlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorcmV0dXJuTnVsbDwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5yZXR1cm5OdWxsPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSAicmV0dXJuIG51bGwiIHByb3BlcnR5IHZhbHVlIHRvIHdoaWNoIG5ld2x5IGNyZWF0ZWQKKyBNZXNzYWdlUmVzb3VyY2VzcyBzaG91bGQgYmUgaW5pdGlhbGl6ZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTW9kdWxlRXhjZXB0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTW9kdWxlRXhjZXB0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTW9kdWxlRXhjZXB0aW9uPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2Vycm9yPC9IMz4KKzxQUkU+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+QWN0aW9uRXJyb3I8L0E+IDxCPmVycm9yPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbG9jYWxlczwvSDM+Cis8UFJFPgoramF2YS51dGlsLkhhc2hNYXAgPEI+bG9jYWxlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIGxvY2FsZSBrZXlzIGZvciB3aGljaCB3ZSBoYXZlIGFscmVhZHkgbG9hZGVkIG1lc3NhZ2VzLCBrZXllZAorIGJ5IHRoZSB2YWx1ZSBjYWxjdWxhdGVkIGluIDxjb2RlPmxvY2FsZUtleSgpPC9jb2RlPi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuSGFzaE1hcCA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY2FjaGUgb2YgbWVzc2FnZXMgd2UgaGF2ZSBhY2N1bXVsYXRlZCBvdmVyIHRpbWUsIGtleWVkIGJ5IHRoZQorIHZhbHVlIGNhbGN1bGF0ZWQgaW4gPGNvZGU+bWVzc2FnZUtleSgpPC9jb2RlPi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy51dGlsLlByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvU3RydXRzVmFsaWRhdG9yLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnV0aWwuU3RydXRzVmFsaWRhdG9yPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8SFIgU0laRT0iNCIgTk9TSEFERT4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBBTElHTj0iY2VudGVyIj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5QYWNrYWdlPC9CPiA8Qj5vcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQ8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuQ29udGVudExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3VwbG9hZC9Db250ZW50TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkNvbnRlbnRMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CittZXNzYWdlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm1lc3NhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuTWF4TGVuZ3RoRXhjZWVkZWRFeGNlcHRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdXBsb2FkL01heExlbmd0aEV4Y2VlZGVkRXhjZXB0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5NYXhMZW5ndGhFeGNlZWRlZEV4Y2VwdGlvbjwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CittZXNzYWdlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm1lc3NhZ2U8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8SFIgU0laRT0iNCIgTk9TSEFERT4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBBTElHTj0iY2VudGVyIj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5QYWNrYWdlPC9CPiA8Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkFjdGlvbkNvbXBvbmVudFNlcnZsZXQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQWN0aW9uQ29tcG9uZW50U2VydmxldC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5BY3Rpb25Db21wb25lbnRTZXJ2bGV0PC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2RlZmluaXRpb25zRmFjdG9yeTwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Lmh0bWwiPkRlZmluaXRpb25zRmFjdG9yeTwvQT4gPEI+ZGVmaW5pdGlvbnNGYWN0b3J5PC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5EZWZpbml0aW9ucyBmYWN0b3J5Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0PC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2F0dHJpYnV0ZXM8L0gzPgorPFBSRT4KK2phdmEudXRpbC5NYXAgPEI+YXR0cmlidXRlczwvQj48L1BSRT4KKzxETD4KKzxERD5Db21wb25lbnQgYXR0cmlidXRlcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb248L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPkRlZmluaXRpb24gbmFtZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGF0aDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYXRoPC9CPjwvUFJFPgorPERMPgorPEREPkNvbXBvbmVudCAvIHRlbXBsYXRlIHBhdGggKFVSTCkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CithdHRyaWJ1dGVzPC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuTWFwIDxCPmF0dHJpYnV0ZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+QXR0cmlidXRlcyBkZWZpbmVkIGZvciB0aGUgY29tcG9uZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcm9sZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5yb2xlPC9CPjwvUFJFPgorPERMPgorPEREPnJvbGUgYXNzb2NpYXRlZCB0byBkZWZpbml0aW9uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citjb250cm9sbGVyPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbnRyb2xsZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+QXNzb2NpYXRlZCBDb250cm9sbGVyIFVSTCBvciBjbGFzc25hbWUsIGlmIGRlZmluZWQKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2NvbnRyb2xsZXJUeXBlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbnRyb2xsZXJUeXBlPC9CPjwvUFJFPgorPERMPgorPEREPkFzc29jaWF0ZWQgQ29udHJvbGxlciB0eXBlbmFtZSwgaWYgY29udHJvbGxlck5hbWUgZGVmaW5lZC4KKyAgQ2FuIGJlIENPTlRST0xMRVIsIEFDVElPTiBvciBVUkwsIG9yIG51bGwKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2NvbnRyb2xsZXJJbnN0YW5jZTwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29udHJvbGxlci5odG1sIj5Db250cm9sbGVyPC9BPiA8Qj5jb250cm9sbGVySW5zdGFuY2U8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29udHJvbGxlciBhc3NvY2lhdGVkIHRvIERlZmluaXRpb24uCisgTGF6eSBjcmVhdGlvbiA6IG9ubHkgb24gZmlyc3QgcmVxdWVzdAorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uQXR0cmlidXRlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0RlZmluaXRpb25BdHRyaWJ1dGUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbkF0dHJpYnV0ZTwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGU8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUNvbmZpZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2ZhY3RvcnlDbGFzc25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+ZmFjdG9yeUNsYXNzbmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5GdWxseSBxdWFsaWZpZWQgY2xhc3NuYW1lIG9mIHRoZSBmYWN0b3J5IHRvIGNyZWF0ZS4KKyBJZiBubyBjbGFzc25hbWUgaXMgc2V0LCBhIGRlZmF1bHQgZmFjdG9yeSBpcyBjcmVhdGVkCisgKG9mIGNsYXNzICJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkkxOG5GYWN0b3J5U2V0IikuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitkZWJ1Z0xldmVsPC9IMz4KKzxQUkU+CitpbnQgPEI+ZGVidWdMZXZlbDwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Vc2UgY29tbW9ucy1sb2dnaW5nIG1lY2hhbmlzbS48L0k+Cis8UD4KKzxERD5EZWJ1ZyBsZXZlbCB2YWx1ZS4gMD1ubyBkZWJ1ZyBpbmZvID4wID0gZGVidWcgaW5mby4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3BhcnNlckRlYnVnTGV2ZWw8L0gzPgorPFBSRT4KK2ludCA8Qj5wYXJzZXJEZWJ1Z0xldmVsPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxJPlVzZSBjb21tb25zLWxvZ2dpbmcgbWVjaGFuaXNtLjwvST4KKzxQPgorPEREPkRlYnVnIGxldmVsIHZhbHVlIHVzZWQgd2hlbiBwYXJzaW5nIGNvbmZpZ3VyYXRpb24gZmlsZS4KKyAwPW5vIGRlYnVnIGluZm87ID4wID0gZGVidWcgaW5mby4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3BhcnNlclZhbGlkYXRlPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPnBhcnNlclZhbGlkYXRlPC9CPjwvUFJFPgorPERMPgorPEREPlNwZWNpZmllcyB3aGV0aGVyIHRoZSBwYXJzZXIgd2lsbCB2YWxpZGF0ZSBjb25maWd1cmF0aW9uIGZpbGVzLgorIERlZmF1bHQgdmFsdWUgaXMgdHJ1ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2RlZmluaXRpb25Db25maWdGaWxlczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5kZWZpbml0aW9uQ29uZmlnRmlsZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+RGVmaW5pdGlvbiBjb25maWd1cmF0aW9uIGZpbGUgc3BlY2lmaWVkIGJ5IHVzZXIKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK21vZHVsZUF3YXJlPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPm1vZHVsZUF3YXJlPC9CPjwvUFJFPgorPERMPgorPEREPlNwZWNpZmllcyB3aGV0aGVyIHRoZSBmYWN0b3J5IGlzICJtb2R1bGUtYXdhcmUiLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZmFjdG9yeU5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+ZmFjdG9yeU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgYXNzb2NpYXRlZCB0byB0aGlzIGZhY3RvcnkuCisgPGJyPgorIFdpdGggU3RydXRzIDEuMSwgdGhpcyBuYW1lIGlzIHRoZSBtb2R1bGUgbmFtZSB0byB3aGljaCB0aGlzIGZhY3RvcnkKKyBiZWxvbmcuIEl0IGlzIHNldCBieSB0aGUgc3lzdGVtLgorIDxicj4KKyBJbiBwcmlvciB2ZXJzaW9ucywgdGhpcyBwcm9wZXJ0eSBpcyBub3QgdXNlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2V4dHJhQXR0cmlidXRlczwvSDM+Cis8UFJFPgoramF2YS51dGlsLk1hcCA8Qj5leHRyYUF0dHJpYnV0ZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+TWFwIG9mIGV4dHJhIGF0dHJpYnV0ZSBhdmFpbGFibGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2V4Y2VwdGlvbjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLkV4Y2VwdGlvbiA8Qj5leGNlcHRpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+QW55ICJ3cmFwcGVkIiBleGNlcHRpb24gd2lsbCBiZSBleHBvc2VkIHdoZW4gdGhpcyBpcyBzZXJpYWxpemVkLgorPFA+Cis8RFQ+PEREPiZuYnNwOzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRpcmVjdFN0cmluZ0F0dHJpYnV0ZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGlyZWN0U3RyaW5nQXR0cmlidXRlPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLk5vU3VjaERlZmluaXRpb25FeGNlcHRpb248L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlBhdGhBdHRyaWJ1dGUiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvUGF0aEF0dHJpYnV0ZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5QYXRoQXR0cmlidXRlPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc0V4Y2VwdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc0V4Y2VwdGlvbi5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc0V4Y2VwdGlvbjwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitleGNlcHRpb248L0gzPgorPFBSRT4KK2phdmEubGFuZy5FeGNlcHRpb24gPEI+ZXhjZXB0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPkFueSAid3JhcHBlZCIgZXhjZXB0aW9uIHdpbGwgYmUgZXhwb3NlZCB3aGVuIHRoaXMgaXMgc2VyaWFsaXplZC4KKzxQPgorPERUPjxERD4mbmJzcDs8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1NlcnZsZXQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvVGlsZXNTZXJ2bGV0Lmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzU2VydmxldDwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsSW1wbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxJbXBsLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbEltcGw8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbG9nPC9IMz4KKzxQUkU+CitvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2cgPEI+bG9nPC9CPjwvUFJFPgorPERMPgorPEREPkNvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNVdGlsU3RydXRzSW1wbCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbFN0cnV0c0ltcGw8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL1RpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzVXRpbFN0cnV0c01vZHVsZXNJbXBsPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9VbnR5cHBlZEF0dHJpYnV0ZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5VbnR5cHBlZEF0dHJpYnV0ZTwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Cityb2xlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnJvbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+Um9sZSBhc3NvY2lhdGVkIHRvIHRoaXMgYXR0cmlidXRlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8SFIgU0laRT0iNCIgTk9TSEFERT4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBBTElHTj0iY2VudGVyIj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5QYWNrYWdlPC9CPiA8Qj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5EZWZpbml0aW9uc0ZhY3RvcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5EZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorZGVmaW5pdGlvbnM8L0gzPgorPFBSRT4KK2phdmEudXRpbC5NYXAgPEI+ZGVmaW5pdGlvbnM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VW5kZXJseWluZyBtYXAgY29udGFpbmluZyBhbGwgZGVmaW5pdGlvbnMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uRmFjdG9yeVNldCI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5GYWN0b3J5U2V0PC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2ZhY3RvcmllczwvSDM+Cis8UFJFPgoramF2YS51dGlsLk1hcCA8Qj5mYWN0b3JpZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+TG9hZGVkIGZhY3RvcmllcworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLkkxOG5GYWN0b3J5U2V0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMueG1sRGVmaW5pdGlvbi5JMThuRmFjdG9yeVNldDwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitkZWZhdWx0RmFjdG9yeTwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9EZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5PC9BPiA8Qj5kZWZhdWx0RmFjdG9yeTwvQj48L1BSRT4KKzxETD4KKzxERD5EZWZhdWx0IGZhY3RvcnkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citpc1ZhbGlkYXRpbmdQYXJzZXI8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+aXNWYWxpZGF0aW5nUGFyc2VyPC9CPjwvUFJFPgorPERMPgorPEREPkRvIHdlIHdhbnQgdmFsaWRhdGluZyBwYXJzZXIuIERlZmF1bHQgaXMgPGNvZGU+ZmFsc2U8L2NvZGU+LgorICBDYW4gYmUgc2V0IGZyb20gc2VydmxldCBjb25maWcgZmlsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3BhcnNlckRldGFpbExldmVsPC9IMz4KKzxQUkU+CitpbnQgPEI+cGFyc2VyRGV0YWlsTGV2ZWw8L0I+PC9QUkU+Cis8REw+Cis8REQ+UGFyc2VyIGRldGFpbCBsZXZlbC4gRGVmYXVsdCBpcyAwLgorICBDYW4gYmUgc2V0IGZyb20gc2VydmxldCBjb25maWcgZmlsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2ZpbGVuYW1lczwvSDM+Cis8UFJFPgoramF2YS51dGlsLkxpc3QgPEI+ZmlsZW5hbWVzPC9CPjwvUFJFPgorPERMPgorPEREPk5hbWVzIG9mIGZpbGVzIGNvbnRhaW5pbmcgaW5zdGFuY2VzIGRlc2NyaXB0aW9ucy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2xvYWRlZDwvSDM+Cis8UFJFPgoramF2YS51dGlsLk1hcCA8Qj5sb2FkZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29sbGVjdGlvbiBvZiBhbHJlYWR5IGxvYWRlZCBkZWZpbml0aW9ucyBzZXQsIHJlZmVyZW5jZWQgYnkgdGhlaXIgc3VmZml4LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb24iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbjwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Citpbmhlcml0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmluaGVyaXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+RXh0ZW5kcyBhdHRyaWJ1dGUgdmFsdWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citpc1Zpc2l0ZWQ8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+aXNWaXNpdGVkPC9CPjwvUFJFPgorPERMPgorPEREPlVzZWQgZm9yIHJlc29sdmluZyBpbmhlcml0YW5jZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEhSIFNJWkU9IjQiIE5PU0hBREU+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQUxJR049ImNlbnRlciI+PEZPTlQgU0laRT0iKzIiPgorPEI+UGFja2FnZTwvQj4gPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbjwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlciI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi5Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2ZhY3Rvcnk8L0gzPgorPFBSRT4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmZhY3Rvcnk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHVuZGVybHlpbmcgZmFjdG9yeQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorY29uZmlnPC9IMz4KKzxQUkU+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuaHRtbCI+RGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnPC9BPiA8Qj5jb25maWc8L0I+PC9QUkU+Cis8REw+Cis8REQ+RmFjdG9yeSBjb25maWd1cmF0aW9uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmRlZmluaXRpb24uUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuZGVmaW5pdGlvbi5SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5PC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2ZhY3Rvcnk8L0gzPgorPFBSRT4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5odG1sIj5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk8L0E+IDxCPmZhY3Rvcnk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlYWwgZmFjdG9yeSBpbnN0YW5jZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydGllczwvSDM+Cis8UFJFPgoramF2YS51dGlsLk1hcCA8Qj5wcm9wZXJ0aWVzPC9CPjwvUFJFPgorPERMPgorPEREPkluaXRpYWxpemF0aW9uIHBhcmFtZXRlcnMKKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEhSIFNJWkU9IjQiIE5PU0hBREU+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQUxJR049ImNlbnRlciI+PEZPTlQgU0laRT0iKzIiPgorPEI+UGFja2FnZTwvQj4gPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucy5TaW1wbGVNZW51SXRlbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90aWxlcy9iZWFucy9TaW1wbGVNZW51SXRlbS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucy5TaW1wbGVNZW51SXRlbTwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitsaW5rPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmxpbms8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgoraWNvbjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5pY29uPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Rvb2x0aXA8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dG9vbHRpcDwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxIUiBTSVpFPSI0IiBOT1NIQURFPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIEFMSUdOPSJjZW50ZXIiPjxGT05UIFNJWkU9IisyIj4KKzxCPlBhY2thZ2U8L0I+IDxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5BZGRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0FkZFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQWRkVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQXR0cmlidXRlVG9TY29wZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvQXR0cmlidXRlVG9TY29wZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuQXR0cmlidXRlVG9TY29wZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitzY29wZU5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c2NvcGVOYW1lPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgc2NvcGUgbmFtZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+CitpbnQgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBzY29wZSB2YWx1ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgcHJvcGVydHkgbmFtZSB0byBiZSBleHBvc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuRGVmaW5pdGlvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuRGVmaW5pdGlvblRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitpZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5EZWZpbml0aW9uIGlkZW50aWZpZXIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzY29wZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5TY29wZSBpbnRvIHdoaWNoIGRlZmluaXRpb24gd2lsbCBiZSBzYXZlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2V4dGVuZHNEZWZpbml0aW9uPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmV4dGVuZHNEZWZpbml0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPkV4dGVuZHMgYXR0cmlidXRlIHZhbHVlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZGVmaW5pdGlvbjwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5odG1sIj5Db21wb25lbnREZWZpbml0aW9uPC9BPiA8Qj5kZWZpbml0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPlRlbXBsYXRlIGRlZmluaXRpb24KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkRlZmluaXRpb25UYWdTdXBwb3J0Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnU3VwcG9ydC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuRGVmaW5pdGlvblRhZ1N1cHBvcnQ8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorY29udHJvbGxlclR5cGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Y29udHJvbGxlclR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+QXNzb2NpYXRlZCBDb250cm9sbGVyIHR5cGUKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2NvbnRyb2xsZXJOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbnRyb2xsZXJOYW1lPC9CPjwvUFJFPgorPERMPgorPEREPkFzc29jaWF0ZWQgQ29udHJvbGxlciBuYW1lIChjbGFzc25hbWUgb3IgdXJsKQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcm9sZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5yb2xlPC9CPjwvUFJFPgorPERMPgorPEREPlJvbGUgYXNzb2NpYXRlZCB0byBkZWZpbml0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGFnZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlPC9CPjwvUFJFPgorPERMPgorPEREPlVyaSBvZiBwYWdlIGFzc29pY2F0ZWQgdG8gdGhpcyBkZWZpbml0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuR2V0QXR0cmlidXRlVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRBdHRyaWJ1dGVUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkdldEF0dHJpYnV0ZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CithdHRyaWJ1dGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YXR0cmlidXRlPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3JvbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cm9sZTwvQj48L1BSRT4KKzxETD4KKzxERD5Sb2xlIGF0dHJpYnV0ZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgoraXNFcnJvcklnbm9yZWQ8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+aXNFcnJvcklnbm9yZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+RG8gd2UgaWdub3JlIGVycm9yIGlmIGF0dHJpYnV0ZSBpcyBub3QgZm91bmQuCisgRGVmYXVsdCB2YWx1ZSBpcyA8Y29kZT5mYWxzZTwvY29kZT4sIHdoaWNoIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuR2V0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9HZXRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkdldFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkltcG9ydEF0dHJpYnV0ZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5JbXBvcnRBdHRyaWJ1dGVUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPkNsYXNzIG5hbWUgb2Ygb2JqZWN0LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorc2NvcGVOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgbmFtZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+CitpbnQgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIHZhbHVlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgoraXNFcnJvcklnbm9yZWQ8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+aXNFcnJvcklnbm9yZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+QXJlIGVycm9ycyBpZ25vcmVkLiBUaGlzIGlzIHRoZSBwcm9wZXJ0eSBmb3IgYXR0cmlidXRlIDxjb2RlPmlnbm9yZTwvY29kZT4uCisgRGVmYXVsdCB2YWx1ZSBpcyA8Y29kZT5mYWxzZTwvY29kZT4sIHdoaWNoIHRocm93cyBhbiBleGNlcHRpb24uCisgT25seSAiYXR0cmlidXRlIG5vdCBmb3VuZCIgLSBlcnJvcnMgYXJlIGlnbm9yZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5Jbml0RGVmaW5pdGlvbnNUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL0luaXREZWZpbml0aW9uc1RhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW5pdERlZmluaXRpb25zVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2ZpbGVuYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmZpbGVuYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2NsYXNzbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5jbGFzc25hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGlsZXMuSW5zZXJ0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLkluc2VydFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitmbHVzaDwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5mbHVzaDwvQj48L1BSRT4KKzxETD4KKzxERD5GbHVzaCBhdHRyaWJ1dGUgdmFsdWUKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5OYW1lIHRvIGluc2VydAorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorYXR0cmlidXRlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmF0dHJpYnV0ZTwvQj48L1BSRT4KKzxETD4KKzxERD5OYW1lIG9mIGF0dHJpYnV0ZSBmcm9tIHdoaWNoIHRvIHJlYWQgcGFnZSBuYW1lIHRvIGluY2x1ZGUKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2JlYW5OYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmJlYW5OYW1lPC9CPjwvUFJFPgorPERMPgorPEREPk5hbWUgb2YgYmVhbiB1c2VkIGFzIGVudGl0eSB0byBpbmNsdWRlCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitiZWFuUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YmVhblByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPk5hbWUgb2YgYmVhbiBwcm9wZXJ0eSwgaWYgYW55Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitiZWFuU2NvcGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YmVhblNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlNjb3BlIG9mIGJlYW4sIGlmIGFueQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgoraXNFcnJvcklnbm9yZWQ8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+aXNFcnJvcklnbm9yZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+QXJlIGVycm9ycyBpZ25vcmVkLiBUaGlzIGlzIHRoZSBwcm9wZXJ0eSBmb3IgYXR0cmlidXRlICdpZ25vcmUnLgorIERlZmF1bHQgdmFsdWUgaXMgZmFsc2UsIHdoaWNoIHRocm93IGFuIGV4Y2VwdGlvbi4KKyBPbmx5ICdhdHRyaWJ1dGUgbm90IGZvdW5kJyBlcnJvcnMgYXJlIGlnbm9yZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitkZWZpbml0aW9uTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5kZWZpbml0aW9uTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5OYW1lIG9mIGNvbXBvbmVudCBpbnN0YW5jZSB0byBpbmNsdWRlCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citwcm9jZXNzRW5kVGFnPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPnByb2Nlc3NFbmRUYWc8L0I+PC9QUkU+Cis8REw+Cis8REQ+RG9lcyB0aGUgZW5kIHRhZyBuZWVkIHRvIGJlIHByb2Nlc3NlZC4KKyBEZWZhdWx0IHZhbHVlIGlzIHRydWUuIEJvb2xlYW4gc2V0IGluIGNhc2Ugb2YgaWdub3JlZCBlcnJvcnMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitjYWNoZWRDdXJyZW50Q29udGV4dDwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5odG1sIj5Db21wb25lbnRDb250ZXh0PC9BPiA8Qj5jYWNoZWRDdXJyZW50Q29udGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5DdXJyZW50IGNvbXBvbmVudCBjb250ZXh0Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit0YWdIYW5kbGVyPC9IMz4KKzxQUkU+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvSW5zZXJ0VGFnLlRhZ0hhbmRsZXIuaHRtbCI+SW5zZXJ0VGFnLlRhZ0hhbmRsZXI8L0E+IDxCPnRhZ0hhbmRsZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+RmluYWxlIGhhbmRsZXIgb2YgdGFnIG1ldGhvZHMKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3BhZ2VDb250ZXh0PC9IMz4KKzxQUkU+CitqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dCA8Qj5wYWdlQ29udGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5UcmljayB0byBhbGxvd3MgaW5uZXIgY2xhc3NlcyB0byBhY2Nlc3MgcGFnZUNvbnRleHQKKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dExpc3RUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RpbGVzL1B1dExpc3RUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dExpc3RUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorYXR0cmlidXRlTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hdHRyaWJ1dGVOYW1lPC9CPjwvUFJFPgorPERMPgorPEREPk5hbWUgb2YgdGhpcyBhdHRyaWJ1dGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitsaXN0PC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuTGlzdCA8Qj5saXN0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsaXN0IGl0c2VsZi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3JvbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cm9sZTwvQj48L1BSRT4KKzxETD4KKzxERD5Sb2xlIGF0dHJpYnV0ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlB1dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvUHV0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5QdXRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorYXR0cmlidXRlTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hdHRyaWJ1dGVOYW1lPC9CPjwvUFJFPgorPERMPgorPEREPk5hbWUgb2YgYXR0cmlidXRlIHRvIHB1dCBpbiBjb21wb25lbnQgY29udGV4dAorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+YXNzb2NpYXRlZCBhdHRyaWJ1dGUgdmFsdWUKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2RpcmVjdDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5kaXJlY3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+SlNQIFRlbXBsYXRlIGNvbXBhdGliaWxpdHkKKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbHVlVHlwZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZVR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+UmVxdWVzdGVkIHR5cGUgZm9yIHRoZSB2YWx1ZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorYmVhbk5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YmVhbk5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+QmVhbiBuYW1lIGF0dHJpYnV0ZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorYmVhblByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmJlYW5Qcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5CZWFuIHByb3BlcnR5IGF0dHJpYnV0ZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorYmVhblNjb3BlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmJlYW5TY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5CZWFuIHNjb3BlIGF0dHJpYnV0ZQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcm9sZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5yb2xlPC9CPjwvUFJFPgorPERMPgorPEREPlJvbGUgYXR0cmlidXRlCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CityZWFsVmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QgPEI+cmVhbFZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPmNhY2hlZCByZWFsIHZhbHVlIGNvbXB1dGVkIGZyb20gdGFnIGF0dHJpYnV0ZXMKKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLlVzZUF0dHJpYnV0ZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5Vc2VBdHRyaWJ1dGVUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorY2xhc3NuYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmNsYXNzbmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5DbGFzcyBuYW1lIG9mIG9iamVjdC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Njb3BlTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIG5hbWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzY29wZTwvSDM+Cis8UFJFPgoraW50IDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSB2YWx1ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2F0dHJpYnV0ZU5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YXR0cmlidXRlTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYXR0cmlidXRlIG5hbWUgdG8gYmUgZXhwb3NlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2lzRXJyb3JJZ25vcmVkPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPmlzRXJyb3JJZ25vcmVkPC9CPjwvUFJFPgorPERMPgorPEREPkFyZSBlcnJvcnMgaWdub3JlZC4gVGhpcyBpcyB0aGUgcHJvcGVydHkgZm9yIGF0dHJpYnV0ZSAnaWdub3JlJy4KKyBEZWZhdWx0IHZhbHVlIGlzIDxjb2RlPmZhbHNlPC9jb2RlPiwgd2hpY2ggdGhyb3dzIGFuIGV4Y2VwdGlvbi4KKyBPbmx5ICJhdHRyaWJ1dGUgbm90IGZvdW5kIiAtIGVycm9ycyBhcmUgaWdub3JlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEhSIFNJWkU9IjQiIE5PU0hBREU+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQUxJR049ImNlbnRlciI+PEZPTlQgU0laRT0iKzIiPgorPEI+UGFja2FnZTwvQj4gPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlcy5leHQuVGV4dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvdGlsZXMvZXh0L1RleHRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzLmV4dC5UZXh0VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK3ByZWZpeDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcmVmaXg8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBwcmVmaXggdG8gYmUgYWRkZWQgYmVmb3JlIHRoZSBodG1sIG5hbWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxIUiBTSVpFPSI0IiBOT1NIQURFPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIEFMSUdOPSJjZW50ZXIiPjxGT05UIFNJWkU9IisyIj4KKzxCPlBhY2thZ2U8L0I+IDxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5HZXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL0dldFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuR2V0VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2ZsdXNoPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPmZsdXNoPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5TaG91bGQgd2UgZmx1c2ggYmVmb3JlIGluY2x1ZGluZyB0aGlzIHRleHQ/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBuYW1lIG9mIHRoZSBjb250ZW50IHRoYXQgdGhpcyB0YWcgaW5jbHVkZXMgKG9yIHByaW50cykuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cityb2xlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnJvbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSByb2xlIHRoYXQgdGhlIHVzZXIgbXVzdCBiZSBpbiB0byByZXRyaWV2ZSBjb250ZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuSW5zZXJ0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS9JbnNlcnRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLkluc2VydFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CittYXA8L0gzPgorPFBSRT4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+Q29udGVudE1hcDwvQT4gPEI+bWFwPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5FYWNoIGluc2VydCB0YWcgaGFzIGEgbWFwIG9mIGNvbnRlbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit0ZW1wbGF0ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50ZW1wbGF0ZTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIGFwcGxpY2F0aW9uLXJlbGF0aXZlIFVSSSBvZiB0aGUgdGVtcGxhdGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50ZW1wbGF0ZS5QdXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL3RlbXBsYXRlL1B1dFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUuUHV0VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIGNvbnRlbnQncyBuYW1lLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcm9sZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5yb2xlPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgcm9sZSB0aGF0IHRoZSB1c2VyIG11c3QgYmUgaW4gdG8gc3RvcmUgY29udGVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2NvbnRlbnQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Y29udGVudDwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIGNvbnRlbnQncyBVUkkgKG9yIHRleHQpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZGlyZWN0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmRpcmVjdDwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+RGV0ZXJtaW5lcyB3aGV0aGVyIGNvbnRlbnQgaXMgaW5jbHVkZWQgKGZhbHNlKSBvciBwcmludGVkICh0cnVlKS4KKyBDb250ZW50IGlzIGluY2x1ZGVkIChmYWxzZSkgYnkgZGVmYXVsdC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEhSIFNJWkU9IjQiIE5PU0hBREU+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQUxJR049ImNlbnRlciI+PEZPTlQgU0laRT0iKzIiPgorPEI+UGFja2FnZTwvQj4gPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWw8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50Ij48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnQuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudDwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Citjb250ZW50PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbnRlbnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRlbXBsYXRlcyByZWdhcmQgdGhpcyBhcyBjb250ZW50IHRvIGJlIGVpdGhlciBpbmNsdWRlZCBvciAKKyAgcHJpbnRlZCBkaXJlY3RseS4gIFRoaXMgaXMgYSBibGFuayBmaW5hbCB0aGF0IGlzCisgIHNldCBhdCBjb25zdHJ1Y3Rpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitkaXJlY3Q8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+ZGlyZWN0PC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5SZXByZXNlbnRzIGEgYm9vbGVhbiAtIGlmIHRydWUsIGNvbnRlbnQgaXMgaW5jbHVkZWQsIG90aGVyd2lzZQorICBjb250ZW50IGlzIHByaW50ZWQuICBUaGlzIGlzIGEgYmxhbmsgZmluYWwgdGhhdCBpcyBzZXQgYXQgCisgIGNvbnN0cnVjdGlvbi4gIFRoaXMgaXMgYSBzdHJpbmcgaW5zdGVhZCBvZiBhIGJvb2xlYW4gYXMKKyAgYSBjb252ZW5pZW5jZSBmb3IgdGhlIHRhZ3MsIHdob3NlIGNvcnJlc3BvbmRpbmcgYXR0cmlidXRlCisgIGlzIGEgc3RyaW5nLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIudGVtcGxhdGUudXRpbC5Db250ZW50TWFwIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi90ZW1wbGF0ZS91dGlsL0NvbnRlbnRNYXAuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRlbXBsYXRlLnV0aWwuQ29udGVudE1hcDwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CittYXA8L0gzPgorPFBSRT4KK2phdmEudXRpbC5IYXNoTWFwIDxCPm1hcDwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIG1hcC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEhSIFNJWkU9IjQiIE5PU0hBREU+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQUxJR049ImNlbnRlciI+PEZPTlQgU0laRT0iKzIiPgorPEI+UGFja2FnZTwvQj4gPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUHJvcGVydHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRQcm9wZXJ0eVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFByb3BlcnR5VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdpbmFsTmVzdDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5lc3Q8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFJlZmVyZW5jZSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJlZmVyZW5jZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLk5lc3RlZFJlZmVyZW5jZTwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitiZWFuTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5iZWFuTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuTmVzdGVkUm9vdFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL05lc3RlZFJvb3RUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRSb290VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdpbmFsTmVzdGluZzwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5lc3Rpbmc8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ2luYWxOZXN0aW5nTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5lc3RpbmdOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRXcml0ZU5lc3RpbmdUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9OZXN0ZWRXcml0ZU5lc3RpbmdUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5OZXN0ZWRXcml0ZU5lc3RpbmdUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorZmlsdGVyPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPmZpbHRlcjwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8SFIgU0laRT0iNCIgTk9TSEFERT4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBBTElHTj0iY2VudGVyIj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5QYWNrYWdlPC9CPiA8Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRFbXB0eVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEVtcHR5VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkRW1wdHlUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEVxdWFsVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkRXF1YWxUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRFcXVhbFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkR3JlYXRlckVxdWFsVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkR3JlYXRlckVxdWFsVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkR3JlYXRlckVxdWFsVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRHcmVhdGVyVGhhblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZEdyZWF0ZXJUaGFuVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkR3JlYXRlclRoYW5UYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZEl0ZXJhdGVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRJdGVyYXRlVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkSXRlcmF0ZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CituZXN0aW5nPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5lc3Rpbmc8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ2luYWxOZXN0aW5nPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmVzdGluZzwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbE5lc3RpbmdOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmVzdGluZ05hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZExlc3NFcXVhbFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZExlc3NFcXVhbFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZExlc3NFcXVhbFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTGVzc1RoYW5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRMZXNzVGhhblRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZExlc3NUaGFuVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWRNYXRjaFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1hdGNoVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTWF0Y2hUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE1lc3NhZ2VzTm90UHJlc2VudFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTWVzc2FnZXNQcmVzZW50VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWROb3RFbXB0eVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2xvZ2ljL05lc3RlZE5vdEVtcHR5VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTm90RW1wdHlUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE5vdEVxdWFsVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90RXF1YWxUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWROb3RFcXVhbFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkTm90TWF0Y2hUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWROb3RNYXRjaFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE5vdE1hdGNoVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5sb2dpYy5OZXN0ZWROb3RQcmVzZW50VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvbG9naWMvTmVzdGVkTm90UHJlc2VudFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZE5vdFByZXNlbnRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmxvZ2ljLk5lc3RlZFByZXNlbnRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9sb2dpYy9OZXN0ZWRQcmVzZW50VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQubG9naWMuTmVzdGVkUHJlc2VudFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxIUiBTSVpFPSI0IiBOT1NIQURFPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIEFMSUdOPSJjZW50ZXIiPjxGT05UIFNJWkU9IisyIj4KKzxCPlBhY2thZ2U8L0I+IDxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRDaGVja2JveFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkQ2hlY2tib3hUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZENoZWNrYm94VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEVycm9yc1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRXJyb3JzVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRFcnJvcnNUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkRmlsZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkRmlsZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkRmlsZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRGb3JtVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRGb3JtVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRGb3JtVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK29yaWdpbmFsTmVzdGluZzwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5lc3Rpbmc8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ2luYWxOZXN0aW5nTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5lc3RpbmdOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEhpZGRlblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkSGlkZGVuVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRIaWRkZW5UYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkSW1hZ2VUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZEltYWdlVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRJbWFnZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkSW1nVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRJbWdUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZEltZ1RhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRMaW5rVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRMaW5rVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRMaW5rVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK29yaWdOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdQcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ1BhcmFtUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ1BhcmFtUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkTWVzc2FnZXNUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZE1lc3NhZ2VzVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRNZXNzYWdlc1RhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRNdWx0aWJveFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkTXVsdGlib3hUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE11bHRpYm94VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZE9wdGlvbnNDb2xsZWN0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRPcHRpb25zQ29sbGVjdGlvblRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkT3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkT3B0aW9uc1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkT3B0aW9uc1RhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkT3B0aW9uc1RhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbExhYmVsUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxMYWJlbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZFBhc3N3b3JkVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRQYXNzd29yZFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkUGFzc3dvcmRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkUmFkaW9UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFJhZGlvVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRSYWRpb1RhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRTZWxlY3RUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9odG1sL05lc3RlZFNlbGVjdFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkU2VsZWN0VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZFN1Ym1pdFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkU3VibWl0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuaHRtbC5OZXN0ZWRTdWJtaXRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5odG1sLk5lc3RlZFRleHRhcmVhVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9uZXN0ZWQvaHRtbC9OZXN0ZWRUZXh0YXJlYVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkVGV4dGFyZWFUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkVGV4dFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2h0bWwvTmVzdGVkVGV4dFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmh0bWwuTmVzdGVkVGV4dFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxIUiBTSVpFPSI0IiBOT1NIQURFPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIEFMSUdOPSJjZW50ZXIiPjxGT05UIFNJWkU9IisyIj4KKzxCPlBhY2thZ2U8L0I+IDxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbjwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWREZWZpbmVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZERlZmluZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkRGVmaW5lVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLk5lc3RlZE1lc3NhZ2VUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL25lc3RlZC9iZWFuL05lc3RlZE1lc3NhZ2VUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLk5lc3RlZE1lc3NhZ2VUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorb3JpZ2luYWxOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsTmFtZTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvcmlnaW5hbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9yaWdpbmFsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkU2l6ZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkU2l6ZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubmVzdGVkLmJlYW4uTmVzdGVkU2l6ZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitvcmlnaW5hbE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxOYW1lPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29yaWdpbmFsUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b3JpZ2luYWxQcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5uZXN0ZWQuYmVhbi5OZXN0ZWRXcml0ZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbmVzdGVkL2JlYW4vTmVzdGVkV3JpdGVUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLm5lc3RlZC5iZWFuLk5lc3RlZFdyaXRlVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK29yaWdpbmFsTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb3JpZ2luYWxQcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vcmlnaW5hbFByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEhSIFNJWkU9IjQiIE5PU0hBREU+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQUxJR049ImNlbnRlciI+PEZPTlQgU0laRT0iKzIiPgorPEI+UGFja2FnZTwvQj4gPEI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkNvbXBhcmVUYWdCYXNlIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Db21wYXJlVGFnQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29tcGFyZVRhZ0Jhc2U8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIHRvIHdoaWNoIHRoZSB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgb3RoZXIgYXR0cmlidXRlcyBvZiB0aGlzCisgdGFnIHdpbGwgYmUgY29tcGFyZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Db25kaXRpb25hbFRhZ0Jhc2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0NvbmRpdGlvbmFsVGFnQmFzZS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuQ29uZGl0aW9uYWxUYWdCYXNlPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2Nvb2tpZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5jb29raWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGNvb2tpZSB0byBiZSB1c2VkIGFzIGEgdmFyaWFibGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitoZWFkZXI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aGVhZGVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBIVFRQIHJlcXVlc3QgaGVhZGVyIHRvIGJlIHVzZWQgYXMgYSB2YXJpYWJsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgSlNQIGJlYW4gdG8gYmUgdXNlZCBhcyBhIHZhcmlhYmxlIChpZgorIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkKSwgb3Igd2hvc2UgcHJvcGVydHkgaXMgdG8gYmUKKyBhY2Nlc3NlZCAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZCkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitwYXJhbWV0ZXI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1ldGVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBIVFRQIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGJlIHVzZWQgYXMgYSB2YXJpYWJsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIHByb3BlcnR5IHRvIGJlIHVzZWQgYXMgYSB2YXJpYWJsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3JvbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cm9sZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2VjdXJpdHkgcm9sZSB0byBiZSBjaGVja2VkIGZvci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIG5hbWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBvcgorICJhbnkgc2NvcGUiIGlmIG51bGwuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit1c2VyPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnVzZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHVzZXIgcHJpbmNpcGFsIG5hbWUgdG8gYmUgY2hlY2tlZCBmb3IuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FbXB0eVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvRW1wdHlUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkVtcHR5VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuRXF1YWxUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0VxdWFsVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5FcXVhbFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkZvcndhcmRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0ZvcndhcmRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkZvcndhcmRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsb2dpY2FsIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGVudHJ5IHRvIGJlCisgbG9va2VkIHVwLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuR3JlYXRlckVxdWFsVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyRXF1YWxUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkdyZWF0ZXJFcXVhbFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLkdyZWF0ZXJUaGFuVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9HcmVhdGVyVGhhblRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuR3JlYXRlclRoYW5UYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5JdGVyYXRlVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9JdGVyYXRlVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5JdGVyYXRlVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2l0ZXJhdG9yPC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuSXRlcmF0b3IgPEI+aXRlcmF0b3I8L0I+PC9QUkU+Cis8REw+Cis8REQ+SXRlcmF0b3Igb2YgdGhlIGVsZW1lbnRzIG9mIHRoaXMgY29sbGVjdGlvbiwgd2hpbGUgd2UgYXJlIGFjdHVhbGx5CisgcnVubmluZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2xlbmd0aENvdW50PC9IMz4KKzxQUkU+CitpbnQgPEI+bGVuZ3RoQ291bnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG51bWJlciBvZiBlbGVtZW50cyB3ZSBoYXZlIGFscmVhZHkgcmVuZGVyZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitsZW5ndGhWYWx1ZTwvSDM+Cis8UFJFPgoraW50IDxCPmxlbmd0aFZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhY3R1YWwgbGVuZ3RoIHZhbHVlIChjYWxjdWxhdGVkIGluIHRoZSBzdGFydCB0YWcpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb2Zmc2V0VmFsdWU8L0gzPgorPFBSRT4KK2ludCA8Qj5vZmZzZXRWYWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWN0dWFsIG9mZnNldCB2YWx1ZSAoY2FsY3VsYXRlZCBpbiB0aGUgc3RhcnQgdGFnKS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3N0YXJ0ZWQ8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+c3RhcnRlZDwvQj48L1BSRT4KKzxETD4KKzxERD5IYXMgdGhpcyB0YWcgaW5zdGFuY2UgYmVlbiBzdGFydGVkPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorY29sbGVjdGlvbjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdCA8Qj5jb2xsZWN0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb2xsZWN0aW9uIG92ZXIgd2hpY2ggd2Ugd2lsbCBiZSBpdGVyYXRpbmcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitpZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRvIGJlIGV4cG9zZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitpbmRleElkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmluZGV4SWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0byBiZSBleHBvc2VkIGFzIHRoZSBjdXJyZW50IGluZGV4LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbGVuZ3RoPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmxlbmd0aDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbGVuZ3RoIHZhbHVlIG9yIGF0dHJpYnV0ZSBuYW1lICg8PTAgbWVhbnMgbm8gbGltaXQpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBjb2xsZWN0aW9uIG9yIG93bmluZyBiZWFuLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb2Zmc2V0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9mZnNldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3RhcnRpbmcgb2Zmc2V0ICh6ZXJvIHJlbGF0aXZlKS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGNvbnRhaW5pbmcgdGhlIGNvbGxlY3Rpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzY29wZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBpZiBhbnkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit0eXBlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmEgY2xhc3Mgb2YgZWFjaCBleHBvc2VkIGVsZW1lbnQgb2YgdGhlIGNvbGxlY3Rpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5MZXNzRXF1YWxUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NFcXVhbFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTGVzc0VxdWFsVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTGVzc1RoYW5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL0xlc3NUaGFuVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5MZXNzVGhhblRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1hdGNoVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9NYXRjaFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWF0Y2hUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbG9jYXRpb248L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bG9jYXRpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGxvY2F0aW9uIHdoZXJlIHRoZSBtYXRjaCBtdXN0IGV4aXN0ICg8Y29kZT5zdGFydDwvY29kZT4gb3IKKyA8Y29kZT5lbmQ8L2NvZGU+KSwgb3IgPGNvZGU+bnVsbDwvY29kZT4gZm9yIGFueXdoZXJlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIHRvIHdoaWNoIHRoZSB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgb3RoZXIgYXR0cmlidXRlcyBvZiB0aGlzCisgdGFnIHdpbGwgYmUgbWF0Y2hlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk1lc3NhZ2VzTm90UHJlc2VudFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTWVzc2FnZXNOb3RQcmVzZW50VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NZXNzYWdlc05vdFByZXNlbnRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5NZXNzYWdlc1ByZXNlbnRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL01lc3NhZ2VzUHJlc2VudFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTWVzc2FnZXNQcmVzZW50VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK21lc3NhZ2U8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bWVzc2FnZTwvQj48L1BSRT4KKzxETD4KKzxERD5JZiB0aGlzIGlzIHNldCB0byAndHJ1ZScsIHRoZW4gdGhlIDxjb2RlPkdsb2JhbHMuTUVTU0FHRV9LRVk8L2NvZGU+IHdpbGwKKyBiZSB1c2VkIHRvIHJldHJpZXZlIHRoZSBtZXNzYWdlcyBmcm9tIHNjb3BlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90RW1wdHlUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL05vdEVtcHR5VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RFbXB0eVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdEVxdWFsVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9sb2dpYy9Ob3RFcXVhbFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90RXF1YWxUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5Ob3RNYXRjaFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90TWF0Y2hUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLk5vdE1hdGNoVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90UHJlc2VudFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvTm90UHJlc2VudFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIubG9naWMuTm90UHJlc2VudFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlByZXNlbnRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2xvZ2ljL1ByZXNlbnRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlByZXNlbnRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5sb2dpYy5SZWRpcmVjdFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvbG9naWMvUmVkaXJlY3RUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmxvZ2ljLlJlZGlyZWN0VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2FuY2hvcjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hbmNob3I8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFuY2hvciB0byBiZSBhZGRlZCB0byB0aGUgZW5kIG9mIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZm9yd2FyZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5mb3J3YXJkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsb2dpY2FsIGZvcndhcmQgbmFtZSBmcm9tIHdoaWNoIHRvIHJldHJpZXZlIHRoZSByZWRpcmVjdCBVUkkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitocmVmPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmhyZWY8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlZGlyZWN0IFVSSS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSlNQIGJlYW4gbmFtZSBmb3IgcXVlcnkgcGFyYW1ldGVycy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3BhZ2U8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGFnZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbW9kdWxlLXJlbGF0aXZlIHBhZ2UgVVJMIChiZWdpbm5pbmcgd2l0aCBhIHNsYXNoKSB0byB3aGljaAorIHRoaXMgcmVkaXJlY3Qgd2lsbCBiZSByZW5kZXJlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3BhcmFtSWQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1JZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciByZXF1ZXN0IHBhcmFtZXRlciBuYW1lIHRvIGdlbmVyYXRlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGFyYW1OYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBuYW1lLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGFyYW1Qcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbVByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHByb3BlcnR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGFyYW1TY29wZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbVNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHNjb3BlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEpTUCBiZWFuIHByb3BlcnR5IG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzY29wZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBpZiBhbnkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit0cmFuc2FjdGlvbjwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj50cmFuc2FjdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5JbmNsdWRlIG91ciB0cmFuc2FjdGlvbiBjb250cm9sIHRva2VuPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8SFIgU0laRT0iNCIgTk9TSEFERT4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBBTElHTj0iY2VudGVyIj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5QYWNrYWdlPC9CPiA8Qj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbDwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VGaWVsZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlRmllbGRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUZpZWxkVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2FjY2VwdDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hY2NlcHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29tbWEtZGVsaW1pdGVkIGxpc3Qgb2YgY29udGVudCB0eXBlcyB0aGF0IGEgc2VydmVyIHByb2Nlc3NpbmcgdGhpcyBmb3JtCisgd2lsbCBoYW5kbGUgY29ycmVjdGx5LiAgVGhpcyBwcm9wZXJ0eSBpcyBkZWZpbmVkIG9ubHkgZm9yIHRoZQorIDxjb2RlPmZpbGU8L2NvZGU+IHRhZywgYnV0IGlzIGltcGxlbWVudGVkIGhlcmUgYmVjYXVzZSBpdCBhZmZlY3RzIHRoZQorIHJlbmRlcmVkIEhUTUwgb2YgdGhlIGNvcnJlc3BvbmRpbmcgJmx0O2lucHV0Jmd0OyB0YWcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3JlZGlzcGxheTwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5yZWRpc3BsYXk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlICJyZWRpc3BsYXkgY29udGVudHMiIGZsYWcgKHVzZWQgb25seSBvbiA8Y29kZT5wYXNzd29yZDwvY29kZT4pLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordHlwZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50eXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB0eXBlIG9mIGlucHV0IGZpZWxkIHJlcHJlc2VudGVkIGJ5IHRoaXMgdGFnICh0ZXh0LCBwYXNzd29yZCwgb3IKKyBoaWRkZW4pLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CYXNlSGFuZGxlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSGFuZGxlclRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CithY2Nlc3NrZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YWNjZXNza2V5PC9CPjwvUFJFPgorPERMPgorPEREPkFjY2VzcyBrZXkgY2hhcmFjdGVyLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordGFiaW5kZXg8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dGFiaW5kZXg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGFiIGluZGV4IHZhbHVlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgoraW5kZXhlZDwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5pbmRleGVkPC9CPjwvUFJFPgorPERMPgorPEREPldoZXRoZXIgdG8gY3JlYXRlZCBpbmRleGVkIG5hbWVzIGZvciBmaWVsZHMKKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb25jbGljazwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbmNsaWNrPC9CPjwvUFJFPgorPERMPgorPEREPk1vdXNlIGNsaWNrIGV2ZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb25kYmxjbGljazwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbmRibGNsaWNrPC9CPjwvUFJFPgorPERMPgorPEREPk1vdXNlIGRvdWJsZSBjbGljayBldmVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29ubW91c2VvdmVyPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9ubW91c2VvdmVyPC9CPjwvUFJFPgorPERMPgorPEREPk1vdXNlIG92ZXIgY29tcG9uZW50IGV2ZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb25tb3VzZW91dDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbm1vdXNlb3V0PC9CPjwvUFJFPgorPERMPgorPEREPk1vdXNlIGV4aXQgY29tcG9uZW50IGV2ZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb25tb3VzZW1vdmU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25tb3VzZW1vdmU8L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2UgbW92ZWQgb3ZlciBjb21wb25lbnQgZXZlbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citvbm1vdXNlZG93bjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbm1vdXNlZG93bjwvQj48L1BSRT4KKzxETD4KKzxERD5Nb3VzZSBwcmVzc2VkIG9uIGNvbXBvbmVudCBldmVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29ubW91c2V1cDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbm1vdXNldXA8L0I+PC9QUkU+Cis8REw+Cis8REQ+TW91c2UgcmVsZWFzZWQgb24gY29tcG9uZW50IGV2ZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb25rZXlkb3duPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9ua2V5ZG93bjwvQj48L1BSRT4KKzxETD4KKzxERD5LZXkgZG93biBpbiBjb21wb25lbnQgZXZlbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvbmtleXVwPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9ua2V5dXA8L0I+PC9QUkU+Cis8REw+Cis8REQ+S2V5IHJlbGVhc2VkIGluIGNvbXBvbmVudCBldmVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK29ua2V5cHJlc3M8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25rZXlwcmVzczwvQj48L1BSRT4KKzxETD4KKzxERD5LZXkgZG93biBhbmQgdXAgdG9nZXRoZXIgaW4gY29tcG9uZW50IGV2ZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb25zZWxlY3Q8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25zZWxlY3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGV4dCBzZWxlY3RlZCBpbiBjb21wb25lbnQgZXZlbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvbmNoYW5nZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbmNoYW5nZTwvQj48L1BSRT4KKzxETD4KKzxERD5Db250ZW50IGNoYW5nZWQgYWZ0ZXIgY29tcG9uZW50IGxvc3QgZm9jdXMgZXZlbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvbmJsdXI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25ibHVyPC9CPjwvUFJFPgorPERMPgorPEREPkNvbXBvbmVudCBsb3N0IGZvY3VzIGV2ZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb25mb2N1czwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5vbmZvY3VzPC9CPjwvUFJFPgorPERMPgorPEREPkNvbXBvbmVudCBoYXMgcmVjZWl2ZWQgZm9jdXMgZXZlbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitkaXNhYmxlZDwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5kaXNhYmxlZDwvQj48L1BSRT4KKzxETD4KKzxERD5Db21wb25lbnQgaXMgZGlzYWJsZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CityZWFkb25seTwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5yZWFkb25seTwvQj48L1BSRT4KKzxETD4KKzxERD5Db21wb25lbnQgaXMgcmVhZG9ubHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzdHlsZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZTwvQj48L1BSRT4KKzxETD4KKzxERD5TdHlsZSBhdHRyaWJ1dGUgYXNzb2NpYXRlZCB3aXRoIGNvbXBvbmVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3N0eWxlQ2xhc3M8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c3R5bGVDbGFzczwvQj48L1BSRT4KKzxETD4KKzxERD5OYW1lZCBTdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggY29tcG9uZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorc3R5bGVJZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZUlkPC9CPjwvUFJFPgorPERMPgorPEREPklkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIGNvbXBvbmVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2FsdDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hbHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGFsdGVybmF0ZSB0ZXh0IG9mIHRoaXMgZWxlbWVudC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2FsdEtleTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hbHRLZXk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitidW5kbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YnVuZGxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBtZXNzYWdlIHJlc291cmNlcyBidW5kbGUgZm9yIG1lc3NhZ2UgbG9va3Vwcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2xvY2FsZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5sb2NhbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3Igb3VyIGxvY2FsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3RpdGxlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnRpdGxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhZHZpc29yeSB0aXRsZSBvZiB0aGlzIGVsZW1lbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit0aXRsZUtleTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50aXRsZUtleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhZHZpc29yeSB0aXRsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2xvb3BUYWdTdXBwb3J0Q2xhc3M8L0gzPgorPFBSRT4KK2phdmEubGFuZy5DbGFzcyA8Qj5sb29wVGFnU3VwcG9ydENsYXNzPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2xvb3BUYWdTdXBwb3J0R2V0U3RhdHVzPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QgPEI+bG9vcFRhZ1N1cHBvcnRHZXRTdGF0dXM8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbG9vcFRhZ1N0YXR1c0NsYXNzPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuQ2xhc3MgPEI+bG9vcFRhZ1N0YXR1c0NsYXNzPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2xvb3BUYWdTdGF0dXNHZXRJbmRleDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kIDxCPmxvb3BUYWdTdGF0dXNHZXRJbmRleDwvQj48L1BSRT4KKzxETD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit0cmllZEpzdGxJbml0PC9IMz4KKzxQUkU+Citib29sZWFuIDxCPnRyaWVkSnN0bEluaXQ8L0I+PC9QUkU+Cis8REw+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordHJpZWRKc3RsU3VjY2VzczwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj50cmllZEpzdGxTdWNjZXNzPC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZUlucHV0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VJbnB1dFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlSW5wdXRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorY29sczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5jb2xzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBudW1iZXIgb2YgY2hhcmFjdGVyIGNvbHVtbnMgZm9yIHRoaXMgZmllbGQsIG9yIG5lZ2F0aXZlCisgZm9yIG5vIGxpbWl0LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbWF4bGVuZ3RoPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm1heGxlbmd0aDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyBhbGxvd2VkLCBvciBuZWdhdGl2ZSBmb3Igbm8gbGltaXQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZmllbGQgKGFuZCBhc3NvY2lhdGVkIHByb3BlcnR5KSBiZWluZyBwcm9jZXNzZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cityb3dzPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnJvd3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG51bWJlciBvZiByb3dzIGZvciB0aGlzIGZpZWxkLCBvciBuZWdhdGl2ZSBmb3Igbm8gbGltaXQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgZm9yIHRoaXMgZmllbGQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IHRvIHJldHJpZXZlIHRoZQorIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgZnJvbSBvdXIgYXNzb2NpYXRlZCBiZWFuLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Jhc2VUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitzZXJ2ZXI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c2VydmVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXJ2ZXIgbmFtZSB0byB1c2UgaW5zdGVhZCBvZiByZXF1ZXN0LmdldFNlcnZlck5hbWUoKS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3RhcmdldDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50YXJnZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHRhcmdldCB3aW5kb3cgZm9yIHRoaXMgYmFzZSByZWZlcmVuY2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJ1dHRvblRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9CdXR0b25UYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQnV0dG9uVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgYnV0dG9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordGV4dDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50ZXh0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2FuY2VsVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0NhbmNlbFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DYW5jZWxUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHByb3BlcnR5IG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBidXR0b24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit0ZXh0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnRleHQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyAoaWYgYW55KS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB2YWx1ZSBvZiB0aGUgYnV0dG9uIGxhYmVsLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DaGVja2JveFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9DaGVja2JveFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DaGVja2JveFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyBvdXIgdW5kZXJseWluZyBwcm9wZXJ0eS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSBuYW1lIGZvciB0aGlzIGZpZWxkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordGV4dDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50ZXh0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmVyIHZhbHVlIGZvciB0aGlzIG9wdGlvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRXJyb3JzVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Vycm9yc1RhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5FcnJvcnNUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorYnVuZGxlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmJ1bmRsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciByZXNvdXJjZXMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citsb2NhbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXNzaW9uIGF0dHJpYnV0ZSBrZXkgZm9yIG91ciBsb2NhbGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlcXVlc3QgYXR0cmlidXRlIGtleSBmb3Igb3VyIGVycm9yIG1lc3NhZ2VzIChpZiBhbnkpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGZvciB3aGljaCBlcnJvciBtZXNzYWdlcyBzaG91bGQgYmUgcmV0dXJuZWQsCisgb3IgPGNvZGU+bnVsbDwvY29kZT4gdG8gcmV0dXJuIGFsbCBlcnJvcnMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZpbGVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvRmlsZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5GaWxlVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5Gb3JtVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0Zvcm1UYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRm9ybVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CithY3Rpb248L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YWN0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhY3Rpb24gVVJMIHRvIHdoaWNoIHRoaXMgZm9ybSBzaG91bGQgYmUgc3VibWl0dGVkLCBpZiBhbnkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cittb2R1bGVDb25maWc8L0gzPgorPFBSRT4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiA8Qj5tb2R1bGVDb25maWc8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1vZHVsZSBjb25maWd1cmF0aW9uIGZvciBvdXIgbW9kdWxlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZW5jdHlwZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5lbmN0eXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZW50IGVuY29kaW5nIHRvIGJlIHVzZWQgb24gYSBQT1NUIHN1Ym1pdC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2ZvY3VzPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmZvY3VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBmaWVsZCB0byByZWNlaXZlIGZvY3VzLCBpZiBhbnkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citmb2N1c0luZGV4PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmZvY3VzSW5kZXg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGluZGV4IGluIHRoZSBmb2N1cyBmaWVsZCBhcnJheSB0byByZWNlaXZlIGZvY3VzLiAgVGhpcyBvbmx5IGFwcGxpZXMgaWYgdGhlIGZpZWxkCisgZ2l2ZW4gaW4gdGhlIGZvY3VzIGF0dHJpYnV0ZSBpcyBhY3R1YWxseSBhbiBhcnJheSBvZiBmaWVsZHMuICBUaGlzIGFsbG93cyBhIHNwZWNpZmljCisgZmllbGQgaW4gYSByYWRpbyBidXR0b24gYXJyYXkgdG8gcmVjZWl2ZSBmb2N1cyB3aGlsZSBzdGlsbCBhbGxvd2luZyBpbmRleGVkIGZpZWxkCisgbmFtZXMgbGlrZSAibXlSYWRpb0J1dHRvbkZpZWxkWzFdIiB0byBiZSBwYXNzZWQgaW4gdGhlIGZvY3VzIGF0dHJpYnV0ZS4KKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbWFwcGluZzwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1hcHBpbmcuaHRtbCI+QWN0aW9uTWFwcGluZzwvQT4gPEI+bWFwcGluZzwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgQWN0aW9uTWFwcGluZyBkZWZpbmluZyB3aGVyZSB3ZSB3aWxsIGJlIHN1Ym1pdHRpbmcgdGhpcyBmb3JtCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CittZXRob2Q8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bWV0aG9kPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSByZXF1ZXN0IG1ldGhvZCB1c2VkIHdoZW4gc3VibWl0dGluZyB0aGlzIGZvcm0uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggb3VyIGFzc29jaWF0ZWQgYmVhbiBpcyBzdG9yZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitvbnJlc2V0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm9ucmVzZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG9uUmVzZXQgZXZlbnQgc2NyaXB0LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorb25zdWJtaXQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+b25zdWJtaXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG9uU3VibWl0IGV2ZW50IHNjcmlwdC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSAocmVxdWVzdCBvciBzZXNzaW9uKSB1bmRlciB3aGljaCBvdXIgYXNzb2NpYXRlZCBiZWFuCisgaXMgc3RvcmVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorc2VydmxldDwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+QWN0aW9uU2VydmxldDwvQT4gPEI+c2VydmxldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgQWN0aW9uU2VydmxldCBpbnN0YW5jZSB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoIChzbyB0aGF0IHdlIGNhbgorIGluaXRpYWxpemUgdGhlIDxjb2RlPnNlcnZsZXQ8L2NvZGU+IHByb3BlcnR5IG9uIGFueSBmb3JtIGJlYW4gdGhhdAorIHdlIGNyZWF0ZSkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzdHlsZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3R5bGUgYXR0cmlidXRlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3N0eWxlQ2xhc3M8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c3R5bGVDbGFzczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3R5bGUgY2xhc3MgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorc3R5bGVJZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZUlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBpZGVudGlmaWVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3RhcmdldDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50YXJnZXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHdpbmRvdyB0YXJnZXQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit0eXBlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgYmVhbiB0byBiZSBjcmVhdGVkLCBpZiBuZWNlc3NhcnkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitiZWFuTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5iZWFuTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZm9ybSBiZWFuIHRvIChjcmVhdGUgYW5kKSB1c2UuIFRoaXMgaXMgZWl0aGVyIHRoZSBzYW1lCisgYXMgdGhlICduYW1lJyBhdHRyaWJ1dGUsIGlmIHRoYXQgd2FzIHNwZWNpZmllZCwgb3IgaXMgb2J0YWluZWQgZnJvbSB0aGUKKyBhc3NvY2lhdGVkIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IG90aGVyd2lzZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2JlYW5TY29wZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5iZWFuU2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIG9mIHRoZSBmb3JtIGJlYW4gdG8gKGNyZWF0ZSBhbmQpIHVzZS4gVGhpcyBpcyBlaXRoZXIgdGhlIHNhbWUKKyBhcyB0aGUgJ3Njb3BlJyBhdHRyaWJ1dGUsIGlmIHRoYXQgd2FzIHNwZWNpZmllZCwgb3IgaXMgb2J0YWluZWQgZnJvbSB0aGUKKyBhc3NvY2lhdGVkIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IG90aGVyd2lzZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2JlYW5UeXBlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmJlYW5UeXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB0eXBlIG9mIHRoZSBmb3JtIGJlYW4gdG8gKGNyZWF0ZSBhbmQpIHVzZS4gVGhpcyBpcyBlaXRoZXIgdGhlIHNhbWUKKyBhcyB0aGUgJ3R5cGUnIGF0dHJpYnV0ZSwgaWYgdGhhdCB3YXMgc3BlY2lmaWVkLCBvciBpcyBvYnRhaW5lZCBmcm9tIHRoZQorIGFzc29jaWF0ZWQgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4gb3RoZXJ3aXNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5GcmFtZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9GcmFtZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5GcmFtZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitmcmFtZWJvcmRlcjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5mcmFtZWJvcmRlcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZnJhbWVib3JkZXIgYXR0cmlidXRlIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkICgxLCAwKS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2ZyYW1lTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5mcmFtZU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCBmb3IgdGhpcyBmcmFtZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2xvbmdkZXNjPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmxvbmdkZXNjPC9CPjwvUFJFPgorPERMPgorPEREPlVSSSBvZiBhIGxvbmcgZGVzY3JpcHRpb24gb2YgdGhpcyBmcmFtZSAoY29tcGxlbWVudHMgdGl0bGUpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbWFyZ2luaGVpZ2h0PC9IMz4KKzxQUkU+CitpbnQgPEI+bWFyZ2luaGVpZ2h0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtYXJnaW4gaGVpZ2h0IGluIHBpeGVscywgb3IgemVybyBmb3Igbm8gc2V0dGluZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK21hcmdpbndpZHRoPC9IMz4KKzxQUkU+CitpbnQgPEI+bWFyZ2lud2lkdGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1hcmdpbiB3aWR0aCBpbiBwaXhlbHMsIG9yIHplcm8gZm9yIG5vIHNldHRpbmcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citub3Jlc2l6ZTwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5ub3Jlc2l6ZTwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgdXNlcnMgYmUgZGlzYWxsb3dlZCB0byByZXNpemUgdGhlIGZyYW1lPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorc2Nyb2xsaW5nPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNjcm9sbGluZzwvQj48L1BSRT4KKzxETD4KKzxERD5XaGF0IHR5cGUgb2Ygc2Nyb2xsaW5nIHNob3VsZCBiZSBzdXBwb3J0ZWQgKHllcywgbm8sIGF1dG8pPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5IaWRkZW5UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSGlkZGVuVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkhpZGRlblRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Cit3cml0ZTwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj53cml0ZTwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgdGhlIHZhbHVlIG9mIHRoaXMgZmllbGQgYWxzbyBiZSByZW5kZXJlZCB0byB0aGUgcmVzcG9uc2U/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkh0bWxUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvSHRtbFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5IdG1sVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2xvY2FsZTwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5sb2NhbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHdlIHNldCB0aGUgY3VycmVudCBMb2NhbGUgZm9yIHRoaXMgdXNlciBpZiBuZWVkZWQ/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit4aHRtbDwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj54aHRtbDwvQj48L1BSRT4KKzxETD4KKzxERD5BcmUgd2UgcmVuZGVyaW5nIGFuIHhodG1sIHBhZ2U/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltYWdlVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0ltYWdlVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltYWdlVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2FsaWduPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmFsaWduPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhbGlnbm1lbnQgZm9yIHRoaXMgaW1hZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citib3JkZXI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Ym9yZGVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib3JkZXIgc2l6ZSBhcm91bmQgdGhlIGltYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGFnZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtb2R1bGUtcmVsYXRpdmUgVVJJIG9mIHRoZSBpbWFnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3BhZ2VLZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGFnZUtleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBtb2R1bGUtcmVsYXRpdmUgVVJJIG9mIHRoZSBpbWFnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIGF0dHJpYnV0ZSBmb3IgdGhlIGltYWdlIGJ1dHRvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3NyYzwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zcmM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIFVSTCBvZiB0aGlzIGltYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorc3JjS2V5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNyY0tleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgVVJMIG9mIHRoaXMgaW1hZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltZ1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9JbWdUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSW1nVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2FsaWduPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmFsaWduPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwcm9wZXJ0eSB0byBzcGVjaWZ5IHdoZXJlIHRvIGFsaWduIHRoZSBpbWFnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2JvcmRlcjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5ib3JkZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJvcmRlciBzaXplIGFyb3VuZCB0aGUgaW1hZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitoZWlnaHQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aGVpZ2h0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBpbWFnZSBoZWlnaHQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citoc3BhY2U8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aHNwYWNlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBob3Jpem9udGFsIHNwYWNpbmcgYXJvdW5kIHRoZSBpbWFnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2ltYWdlTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5pbWFnZU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGltYWdlIG5hbWUgZm9yIG5hbWVkIGltYWdlcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2lzbWFwPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmlzbWFwPC9CPjwvUFJFPgorPERMPgorPEREPlNlcnZlci1zaWRlIGltYWdlIG1hcCBkZWNsYXJhdGlvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2xvd3NyYzwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5sb3dzcmM8L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEk+VGhpcyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgSFRNTCA0LjAxIHNwZWMgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhCisgZnV0dXJlIHZlcnNpb24gb2YgU3RydXRzLjwvST4KKzxQPgorPEREPlRoZSBsb3cgcmVzb2x1dGlvbiBpbWFnZSBzb3VyY2UgVVJJLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKU1AgYmVhbiBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGFnZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtb2R1bGUtcmVsYXRpdmUgcGF0aCwgc3RhcnRpbmcgd2l0aCBhIHNsYXNoIGNoYXJhY3Rlciwgb2YgdGhlCisgaW1hZ2UgdG8gYmUgZGlzcGxheWVkIGJ5IHRoaXMgcmVuZGVyZWQgdGFnLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGFnZUtleTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlS2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgdW5kZXIgd2hpY2ggd2Ugc2hvdWxkIGxvb2sgdXAgdGhlCisgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0YWcsIGlmIGFueS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3BhcmFtSWQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1JZDwvQj48L1BSRT4KKzxETD4KKzxERD5JbiBzaXR1YXRpb25zIHdoZXJlIGFuIGltYWdlIGlzIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCAoc3VjaCBhcyB0byBjcmVhdGUKKyBhIGNoYXJ0IGdyYXBoKSwgdGhpcyBzcGVjaWZpZXMgdGhlIHNpbmdsZS1wYXJhbWV0ZXIgcmVxdWVzdCBwYXJhbWV0ZXIKKyBuYW1lIHRvIGdlbmVyYXRlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGFyYW1OYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBuYW1lLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGFyYW1Qcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbVByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHByb3BlcnR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGFyYW1TY29wZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbVNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzaW5nbGUtcGFyYW1ldGVyIEpTUCBiZWFuIHNjb3BlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEpTUCBiZWFuIHByb3BlcnR5IG5hbWUgZm9yIHF1ZXJ5IHBhcmFtZXRlcnMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzY29wZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lIHByb3BlcnR5LCBpZiBhbnkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzcmM8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c3JjPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBpbWFnZSBzb3VyY2UgVVJJLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorc3JjS2V5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNyY0tleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IHVuZGVyIHdoaWNoIHdlIHNob3VsZCBsb29rIHVwIHRoZQorIDxjb2RlPnNyYzwvY29kZT4gYXR0cmlidXRlIGZvciB0aGlzIGdlbmVyYXRlZCB0YWcsIGlmIGFueS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3VzZW1hcDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj51c2VtYXA8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q2xpZW50LXNpZGUgaW1hZ2UgbWFwIGRlY2xhcmF0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordnNwYWNlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnZzcGFjZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmVydGljYWwgc3BhY2luZyBhcm91bmQgdGhlIGltYWdlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgord2lkdGg8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+d2lkdGg8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGltYWdlIHdpZHRoLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL0phdmFzY3JpcHRWYWxpZGF0b3JUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitidW5kbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YnVuZGxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3Igb3VyIHJlc291cmNlcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2Zvcm1OYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmZvcm1OYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBmb3JtIHRoYXQgY29ycmVzcG9uZHMgd2l0aCB0aGUgYWN0aW9uIG5hbWUKKyBpbiBzdHJ1dHMtY29uZmlnLnhtbC4gU3BlY2lmeWluZyBhIGZvcm0gbmFtZSBwbGFjZXMgYQorICZsdDtzY3JpcHQmZ3Q7ICZsdDsvc2NyaXB0Jmd0OyBhcm91bmQgdGhlIGphdmFzY3JpcHQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitwYWdlPC9IMz4KKzxQUkU+CitpbnQgPEI+cGFnZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY3VycmVudCBwYWdlIG51bWJlciBvZiBhIG11bHRpLXBhcnQgZm9ybS4KKyBPbmx5IHZhbGlkIHdoZW4gdGhlIGZvcm1OYW1lIGF0dHJpYnV0ZSBpcyBzZXQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CittZXRob2ROYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm1ldGhvZE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhpcyB3aWxsIGJlIHVzZWQgYXMgaXMgZm9yIHRoZSBKYXZhU2NyaXB0IHZhbGlkYXRpb24gbWV0aG9kIG5hbWUgaWYgaXQgaGFzIGEgdmFsdWUuICBUaGlzIGlzCisgdGhlIG1ldGhvZCBuYW1lIG9mIHRoZSBtYWluIEphdmFTY3JpcHQgbWV0aG9kIHRoYXQgdGhlIGZvcm0gY2FsbHMgdG8gcGVyZm9ybSB2YWxpZGF0aW9ucy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3N0YXRpY0phdmFzY3JpcHQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c3RhdGljSmF2YXNjcmlwdDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3RhdGljIEphdmFTY3JpcHQgbWV0aG9kcyB3aWxsIG9ubHkgYmUgcHJpbnRlZCBpZiB0aGlzIGlzIHNldCB0byAidHJ1ZSIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitkeW5hbWljSmF2YXNjcmlwdDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5keW5hbWljSmF2YXNjcmlwdDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZHluYW1pYyBKYXZhU2NyaXB0IG9iamVjdHMgd2lsbCBvbmx5IGJlIGdlbmVyYXRlZCBpZiB0aGlzIGlzIHNldCB0byAidHJ1ZSIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzcmM8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c3JjPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzcmMgYXR0cmlidXRlIGZvciBodG1sIHNjcmlwdCBlbGVtZW50ICh1c2VkIHRvIGluY2x1ZGUgYW4gZXh0ZXJuYWwgc2NyaXB0CisgcmVzb3VyY2UpLiBUaGUgc3JjIGF0dHJpYnV0ZSBpcyBvbmx5IHJlY29nbml6ZWQKKyB3aGVuIHRoZSBmb3JtTmFtZSBhdHRyaWJ1dGUgaXMgc3BlY2lmaWVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgoraHRtbENvbW1lbnQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aHRtbENvbW1lbnQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmFTY3JpcHQgbWV0aG9kcyB3aWxsIGVuY2xvc2VkIHdpdGggaHRtbCBjb21tZW50cyBpZiB0aGlzIGlzIHNldCB0byAidHJ1ZSIuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitjZGF0YTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5jZGF0YTwvQj48L1BSRT4KKzxETD4KKzxERD5IaWRlIEphdmFTY3JpcHQgbWV0aG9kcyBpbiBhIENEQVRBIHNlY3Rpb24gZm9yIFhIVE1MIHdoZW4gInRydWUiLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgoraHRtbEJlZ2luQ29tbWVudDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5odG1sQmVnaW5Db21tZW50PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2h0bWxFbmRDb21tZW50PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmh0bWxFbmRDb21tZW50PC9CPjwvUFJFPgorPERMPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTGlua1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9MaW5rVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgordGV4dDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50ZXh0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgKGlmIGFueSkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CithbmNob3I8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YW5jaG9yPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhbmNob3IgdG8gYmUgYWRkZWQgdG8gdGhlIGVuZCBvZiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluay4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2ZvcndhcmQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Zm9yd2FyZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbG9naWNhbCBmb3J3YXJkIG5hbWUgZnJvbSB3aGljaCB0byByZXRyaWV2ZSB0aGUgaHlwZXJsaW5rIFVSSS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2hyZWY8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aHJlZjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgaHlwZXJsaW5rIFVSSS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2xpbmtOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmxpbmtOYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBsaW5rIG5hbWUgZm9yIG5hbWVkIGxpbmtzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKU1AgYmVhbiBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGFnZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtb2R1bGUtcmVsYXRpdmUgcGFnZSBVUkwgKGJlZ2lubmluZyB3aXRoIGEgc2xhc2gpIHRvIHdoaWNoCisgdGhpcyBoeXBlcmxpbmsgd2lsbCBiZSByZW5kZXJlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2FjdGlvbjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hY3Rpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1vZHVsZS1yZWxhdGl2ZSBhY3Rpb24gKGJlZ2lubmluZyB3aXRoIGEgc2xhc2gpIHdoaWNoIHdpbGwgYmUKKyBjYWxsZWQgYnkgdGhpcyBsaW5rCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitwYXJhbUlkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtSWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZSB0byBnZW5lcmF0ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3BhcmFtTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYXJhbU5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNpbmdsZS1wYXJhbWV0ZXIgSlNQIGJlYW4gbmFtZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3BhcmFtUHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1Qcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBwcm9wZXJ0eS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3BhcmFtU2NvcGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1TY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2luZ2xlLXBhcmFtZXRlciBKU1AgYmVhbiBzY29wZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKU1AgYmVhbiBwcm9wZXJ0eSBuYW1lIGZvciBxdWVyeSBwYXJhbWV0ZXJzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZSBwcm9wZXJ0eSwgaWYgYW55LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordGFyZ2V0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnRhcmdldDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgd2luZG93IHRhcmdldC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3RyYW5zYWN0aW9uPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPnRyYW5zYWN0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPkluY2x1ZGUgdHJhbnNhY3Rpb24gdG9rZW4gKGlmIGFueSkgaW4gdGhlIGh5cGVybGluaz8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2luZGV4SWQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aW5kZXhJZDwvQj48L1BSRT4KKzxETD4KKzxERD5OYW1lIG9mIHBhcmFtZXRlciB0byBnZW5lcmF0ZSB0byBob2xkIGluZGV4IG51bWJlcgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5NZXNzYWdlc1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9NZXNzYWdlc1RhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5NZXNzYWdlc1RhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitpdGVyYXRvcjwvSDM+Cis8UFJFPgoramF2YS51dGlsLkl0ZXJhdG9yIDxCPml0ZXJhdG9yPC9CPjwvUFJFPgorPERMPgorPEREPkl0ZXJhdG9yIG9mIHRoZSBlbGVtZW50cyBvZiB0aGlzIGVycm9yIGNvbGxlY3Rpb24sIHdoaWxlIHdlIGFyZSBhY3R1YWxseQorIHJ1bm5pbmcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citwcm9jZXNzZWQ8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+cHJvY2Vzc2VkPC9CPjwvUFJFPgorPERMPgorPEREPldoZXRoZXIgb3Igbm90IGFueSBlcnJvciBtZXNzYWdlcyBoYXZlIGJlZW4gcHJvY2Vzc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgoraWQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0byBiZSBleHBvc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorYnVuZGxlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmJ1bmRsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciByZXNvdXJjZXMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citsb2NhbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXNzaW9uIGF0dHJpYnV0ZSBrZXkgZm9yIG91ciBsb2NhbGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHJlcXVlc3QgYXR0cmlidXRlIGtleSBmb3Igb3VyIGVycm9yIG1lc3NhZ2VzIChpZiBhbnkpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IGZvciB3aGljaCBlcnJvciBtZXNzYWdlcyBzaG91bGQgYmUgcmV0dXJuZWQsCisgb3IgPGNvZGU+bnVsbDwvY29kZT4gdG8gcmV0dXJuIGFsbCBlcnJvcnMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitoZWFkZXI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aGVhZGVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlIGtleSBmb3IgZXJyb3JzIGhlYWRlci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2Zvb3RlcjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5mb290ZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IGZvciBlcnJvcnMgZm9vdGVyLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbWVzc2FnZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5tZXNzYWdlPC9CPjwvUFJFPgorPERMPgorPEREPklmIHRoaXMgaXMgc2V0IHRvICd0cnVlJywgdGhlbiB0aGUgPGNvZGU+R2xvYmFscy5NRVNTQUdFX0tFWTwvY29kZT4gd2lsbAorIGJlIHVzZWQgdG8gcmV0cmlldmUgdGhlIG1lc3NhZ2VzIGZyb20gc2NvcGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk11bHRpYm94VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL011bHRpYm94VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk11bHRpYm94VGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2NvbnN0YW50PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbnN0YW50PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb25zdGFudCBTdHJpbmcgdmFsdWUgdG8gYmUgcmV0dXJuZWQgd2hlbiB0aGlzIGNoZWNrYm94IGlzCisgc2VsZWN0ZWQgYW5kIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHByb3BlcnR5IG5hbWUgZm9yIHRoaXMgZmllbGQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgd2hpY2ggd2lsbCBtYXJrIHRoaXMgY2hlY2tib3ggYXMgImNoZWNrZWQiIGlmIHByZXNlbnQKKyBpbiB0aGUgYXJyYXkgcmV0dXJuZWQgYnkgb3VyIHByb3BlcnR5IGdldHRlci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uc0NvbGxlY3Rpb25UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvT3B0aW9uc0NvbGxlY3Rpb25UYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uc0NvbGxlY3Rpb25UYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorZmlsdGVyPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPmZpbHRlcjwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgdGhlIGxhYmVsIHZhbHVlcyBiZSBmaWx0ZXJlZCBmb3IgSFRNTCBzZW5zaXRpdmUgY2hhcmFjdGVycz8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2xhYmVsPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmxhYmVsPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIHByb3BlcnR5IGNvbnRhaW5pbmcgdGhlIGxhYmVsLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyBjb2xsZWN0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIHVzZSB0byBidWlsZCB0aGUgdmFsdWVzIGNvbGxlY3Rpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzdHlsZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3R5bGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorc3R5bGVDbGFzczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZUNsYXNzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lZCBzdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBwcm9wZXJ0eSBjb250YWluaW5nIHRoZSB2YWx1ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uc1RhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9PcHRpb25zVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvbnNUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorY29sbGVjdGlvbjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5jb2xsZWN0aW9uPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBjb2xsZWN0aW9uIGNvbnRhaW5pbmcgYmVhbnMgdGhhdCBoYXZlIHByb3BlcnRpZXMgdG8KKyBwcm92aWRlIGJvdGggdGhlIHZhbHVlcyBhbmQgdGhlIGxhYmVscyAoaWRlbnRpZmllZCBieSB0aGUKKyA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYW5kIDxjb2RlPmxhYmVsUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZmlsdGVyPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPmZpbHRlcjwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgdGhlIGxhYmVsIHZhbHVlcyBiZSBmaWx0ZXJlZCBmb3IgSFRNTCBzZW5zaXRpdmUgY2hhcmFjdGVycz8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2xhYmVsTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5sYWJlbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyB0aGUgbGFiZWxzIGNvbGxlY3Rpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitsYWJlbFByb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmxhYmVsUHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGJlYW4gcHJvcGVydHkgY29udGFpbmluZyB0aGUgbGFiZWxzIGNvbGxlY3Rpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gY29udGFpbmluZyB0aGUgdmFsdWVzIGNvbGxlY3Rpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gdXNlIHRvIGJ1aWxkIHRoZSB2YWx1ZXMgY29sbGVjdGlvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3N0eWxlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnN0eWxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzdHlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzdHlsZUNsYXNzPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnN0eWxlQ2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWVkIHN0eWxlIGNsYXNzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRhZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL09wdGlvblRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25UYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgordGV4dDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50ZXh0PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHRleHQgdG8gYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGlzIHRhZyAoaWYgYW55KQorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorYnVuZGxlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmJ1bmRsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBjb250YWluaW5nIG91ciBtZXNzYWdlCisgcmVzb3VyY2VzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZGlzYWJsZWQ8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+ZGlzYWJsZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SXMgdGhpcyBvcHRpb24gZGlzYWJsZWQ/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitrZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+a2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBrZXkgdXNlZCB0byBsb29rIHVwIHRoZSB0ZXh0IGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgdGhpcworIG9wdGlvbiwgaWYgYW55LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbG9jYWxlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmxvY2FsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIGNvbnRhaW5pbmcgdGhlIExvY2FsZSB0byBiZSB1c2VkIGZvcgorIGxvb2tpbmcgdXAgaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzdHlsZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc3R5bGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorc3R5bGVDbGFzczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zdHlsZUNsYXNzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lZCBzdHlsZSBjbGFzcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB0YWcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzdHlsZUlkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnN0eWxlSWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGlkZW50aWZpZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFnLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZlciB2YWx1ZSBmb3IgdGhpcyBvcHRpb24sIGFsc28gdXNlZCB0byBtYXRjaCBhZ2FpbnN0IHRoZQorIGN1cnJlbnQgcHJvcGVydHkgdmFsdWUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyBvcHRpb24gc2hvdWxkIGJlCisgbWFya2VkIGFzIHNlbGVjdGVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5QYXNzd29yZFRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvaHRtbC9QYXNzd29yZFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5QYXNzd29yZFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmFkaW9UYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmFkaW9UYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmFkaW9UYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSBmb3IgdGhpcyBmaWVsZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3RleHQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZlciB2YWx1ZSBmb3IgdGhpcyBvcHRpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitpZE5hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aWROYW1lPC9CPjwvUFJFPgorPERMPgorPEREPk5hbWUgb2YgdGhlIGJlYW4gKGluIHNvbWUgc2NvcGUpIHRoYXQgd2lsbCByZXR1cm4gdGhlCisgdmFsdWUgb2YgdGhlIHJhZGlvIHRhZy4KKyA8cD4KKyBJZiBhbiBpdGVyYXRvciBpcyB1c2VkIHRvIHJlbmRlciBhIHNlcmllcyBvZiByYWRpbyB0YWdzLAorIHRoaXMgZmllbGQgbWF5IGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgYmVhbgorIGV4cG9zZWQgYnkgdGhlIGl0ZXJhdG9yLiBJbiB0aGlzIGNhc2UsIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXMKKyB1c2VkIGFzIHRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb24gdGhlIDxjb2RlPmlkTmFtZTwvY29kZT4gYmVhbgorIHRoYXQgcmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIHJhZGlvIHRhZyBpbiB0aGlzIGl0ZXJhdGlvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmVzZXRUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmVzZXRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmVzZXRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBpbnB1dCBmaWVsZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3RleHQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJld3JpdGVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvUmV3cml0ZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SZXdyaXRlVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TZWxlY3RUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvU2VsZWN0VGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlNlbGVjdFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CittYXRjaDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZ1tdIDxCPm1hdGNoPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhY3R1YWwgdmFsdWVzIHdlIHdpbGwgbWF0Y2ggYWdhaW5zdCwgY2FsY3VsYXRlZCBpbiBkb1N0YXJ0VGFnKCkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CittdWx0aXBsZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5tdWx0aXBsZTwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgbXVsdGlwbGUgc2VsZWN0aW9ucyBiZSBhbGxvd2VkLiAgQW55IG5vbi1udWxsIHZhbHVlIHdpbGwKKyB0cmlnZ2VyIHJlbmRlcmluZyB0aGlzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIGNvbnRhaW5pbmcgb3VyIHVuZGVybHlpbmcgcHJvcGVydHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJvcGVydHkgbmFtZSB3ZSBhcmUgYXNzb2NpYXRlZCB3aXRoLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorc2F2ZUJvZHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c2F2ZUJvZHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNhdmVkIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3NpemU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c2l6ZTwvQj48L1BSRT4KKzxETD4KKzxERD5Ib3cgbWFueSBhdmFpbGFibGUgb3B0aW9ucyBzaG91bGQgYmUgZGlzcGxheWVkIHdoZW4gdGhpcyBlbGVtZW50CisgaXMgcmVuZGVyZWQ/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdmFsdWUgdG8gY29tcGFyZSB3aXRoIGZvciBtYXJraW5nIGFuIG9wdGlvbiBzZWxlY3RlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU3VibWl0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1N1Ym1pdFRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TdWJtaXRUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBpbnB1dCBmaWVsZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3RleHQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dGV4dDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlRleHRhcmVhVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRhcmVhVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlRleHRhcmVhVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgYmVhbiBjb250YWluaW5nIG91ciB1bmRlcmx5aW5nIHByb3BlcnR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0VGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9odG1sL1RleHRUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVGV4dFRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuWGh0bWxUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2h0bWwvWGh0bWxUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuWGh0bWxUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxIUiBTSVpFPSI0IiBOT1NIQURFPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIEFMSUdOPSJjZW50ZXIiPjxGT05UIFNJWkU9IisyIj4KKzxCPlBhY2thZ2U8L0I+IDxCPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uQ29va2llVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0Nvb2tpZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5Db29raWVUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgoraWQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CittdWx0aXBsZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5tdWx0aXBsZTwvQj48L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gYW4gYXJyYXkgb2YgQ29va2llcyBpZiA8Y29kZT5tdWx0aXBsZTwvY29kZT4gaXMgbm9uLW51bGwuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGNvb2tpZSB3aG9zZSB2YWx1ZSBpcyB0byBiZSBleHBvc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgdmFsdWUgdG8gcmV0dXJuIGlmIG5vIGNvb2tpZSBvZiB0aGUgc3BlY2lmaWVkIG5hbWUgaXMgZm91bmQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkRlZmluZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9EZWZpbmVUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uRGVmaW5lVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2JvZHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Ym9keTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIChpZiBhbnkpLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgoraWQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIGJlYW4gb3duaW5nIHRoZSBwcm9wZXJ0eSB0byBiZSBleHBvc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIHJldHJpZXZlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgc3BlY2lmaWVkIGJlYW4uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit0b1Njb3BlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnRvU2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0aGUgbmV3bHkgZGVmaW5lZCBiZWFuIHdpbGwgYmUgY3JlYXRkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordHlwZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50eXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSB2YWx1ZSB0byBiZSBleHBvc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordmFsdWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dmFsdWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIChTdHJpbmcpIHZhbHVlIHRvIHdoaWNoIHRoZSBkZWZpbmVkIGJlYW4gd2lsbCBiZSBzZXQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLkhlYWRlclRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9IZWFkZXJUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSGVhZGVyVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2lkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbXVsdGlwbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bXVsdGlwbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+UmV0dXJuIGFuIGFycmF5IG9mIGhlYWRlciB2YWx1ZXMgaWYgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGlzIG5vbi1udWxsLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBoZWFkZXIgd2hvc2UgdmFsdWUgaXMgdG8gYmUgZXhwb3NlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbHVlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBkZWZhdWx0IHZhbHVlIHRvIHJldHVybiBpZiBubyBoZWFkZXIgb2YgdGhlIHNwZWNpZmllZCBuYW1lIGlzIGZvdW5kLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5JbmNsdWRlVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL0luY2x1ZGVUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uSW5jbHVkZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CithbmNob3I8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YW5jaG9yPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBhbmNob3IgdG8gYmUgYWRkZWQgdG8gdGhlIGVuZCBvZiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluay4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2ZvcndhcmQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Zm9yd2FyZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRoYXQgY29udGFpbnMgYQorIHBhdGggdG8gb3VyIHJlcXVlc3RlZCByZXNvdXJjZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2hyZWY8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aHJlZjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWJzb2x1dGUgVVJMIHRvIHRoZSByZXNvdXJjZSB0byBiZSBpbmNsdWRlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2lkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGFnZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYWdlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjb250ZXh0LXJlbGF0aXZlIFVSSSBvZiB0aGUgcGFnZSBvciBzZXJ2bGV0IHRvIGJlIGluY2x1ZGVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordHJhbnNhY3Rpb248L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+dHJhbnNhY3Rpb248L0I+PC9QUkU+Cis8REw+Cis8REQ+SW5jbHVkZSB0cmFuc2FjdGlvbiB0b2tlbiAoaWYgYW55KSBpbiB0aGUgaHlwZXJsaW5rPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5NZXNzYWdlVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL01lc3NhZ2VUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uTWVzc2FnZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CithcmcwPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmFyZzA8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZpcnN0IG9wdGlvbmFsIGFyZ3VtZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorYXJnMTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hcmcxPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZWNvbmQgb3B0aW9uYWwgYXJndW1lbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CithcmcyPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmFyZzI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHRoaXJkIG9wdGlvbmFsIGFyZ3VtZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorYXJnMzwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hcmczPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBmb3VydGggb3B0aW9uYWwgYXJndW1lbnQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cithcmc0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmFyZzQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZpZnRoIG9wdGlvbmFsIGFyZ3VtZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorYnVuZGxlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmJ1bmRsZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIG91ciByZXNvdXJjZXMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitrZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+a2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIGtleSBvZiB0aGUgbWVzc2FnZSB0byBiZSByZXRyaWV2ZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+TmFtZSBvZiB0aGUgYmVhbiB0aGF0IGNvbnRhaW5zIHRoZSBtZXNzYWdlIGtleS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPk5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIGFjY2Vzc2VkIG9uIHRoZSBzcGVjaWZpZWQgYmVhbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzY29wZSB0byBiZSBzZWFyY2hlZCB0byByZXRyaWV2ZSB0aGUgc3BlY2lmaWVkIGJlYW4uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citsb2NhbGVLZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bG9jYWxlS2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXNzaW9uIHNjb3BlIGtleSB1bmRlciB3aGljaCBvdXIgTG9jYWxlIGlzIHN0b3JlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFnZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9QYWdlVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlBhZ2VUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgoraWQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0eTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9wZXJ0eTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcGFnZSBjb250ZXh0IHByb3BlcnR5IHRvIGJlIHJldHJpZXZlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uUGFyYW1ldGVyVGFnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3RhZ2xpYi9iZWFuL1BhcmFtZXRlclRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5QYXJhbWV0ZXJUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgoraWQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIHNjcmlwdGluZyB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZXhwb3NlZCBhcyBhIHBhZ2UKKyBzY29wZSBhdHRyaWJ1dGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CittdWx0aXBsZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5tdWx0aXBsZTwvQj48L1BSRT4KKzxETD4KKzxERD5SZXR1cm4gYW4gYXJyYXkgb2YgcGFyYW1ldGVyIHZhbHVlcyBpZiA8Y29kZT5tdWx0aXBsZTwvY29kZT4gaXMKKyBub24tbnVsbC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHdob3NlIHZhbHVlIGlzIHRvIGJlIGV4cG9zZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit2YWx1ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj52YWx1ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZGVmYXVsdCB2YWx1ZSB0byByZXR1cm4gaWYgbm8gcGFyYW1ldGVyIG9mIHRoZSBzcGVjaWZpZWQgbmFtZSBpcworIGZvdW5kLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5SZXNvdXJjZVRhZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy90YWdsaWIvYmVhbi9SZXNvdXJjZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5SZXNvdXJjZVRhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitpZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2lucHV0PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmlucHV0PC9CPjwvUFJFPgorPERMPgorPEREPlJldHVybiBhbiBJbnB1dFN0cmVhbSB0byB0aGUgc3BlY2lmaWVkIHJlc291cmNlIGlmIHRoaXMgaXMgbm9uLW51bGwuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG1vZHVsZS1yZWxhdGl2ZSBVUkkgb2YgdGhlIHJlc291cmNlIHdob3NlIGNvbnRlbnRzIGFyZSB0bworIGJlIGV4cG9zZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlNpemVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU2l6ZVRhZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5TaXplVGFnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2NvbGxlY3Rpb248L0gzPgorPFBSRT4KK2phdmEubGFuZy5PYmplY3QgPEI+Y29sbGVjdGlvbjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWN0dWFsIGNvbGxlY3Rpb24gdG8gYmUgY291bnRlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2lkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmlkPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBzY3JpcHRpbmcgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGV4cG9zZWQgYXMgYSBwYWdlCisgc2NvcGUgYXR0cmlidXRlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBiZWFuIG93bmluZyB0aGUgcHJvcGVydHkgdG8gYmUgY291bnRlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnR5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByb3BlcnR5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBiZSByZXRyaWV2ZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzY29wZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIHNwZWNpZmllZCBiZWFuLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuYmVhbi5TdHJ1dHNUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vU3RydXRzVGFnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5iZWFuLlN0cnV0c1RhZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+CitpZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5pZDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbmFtZSBvZiB0aGUgc2NyaXB0aW5nIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBleHBvc2VkIGFzIGEgcGFnZQorIHNjb3BlIGF0dHJpYnV0ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2Zvcm1CZWFuPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmZvcm1CZWFuPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb25Gb3JtQmVhbjwvY29kZT4gb2JqZWN0IHRvIGJlIGV4cG9zZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citmb3J3YXJkPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmZvcndhcmQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIG5hbWUgb2YgdGhlIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IG9iamVjdCB0byBiZSBleHBvc2VkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbWFwcGluZzwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5tYXBwaW5nPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBuYW1lIG9mIHRoZSA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPiBvYmplY3QgdG8gYmUgZXhwb3NlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uV3JpdGVUYWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvdGFnbGliL2JlYW4vV3JpdGVUYWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmJlYW4uV3JpdGVUYWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorZmlsdGVyPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPmZpbHRlcjwvQj48L1BSRT4KKzxETD4KKzxERD5GaWx0ZXIgdGhlIHJlbmRlcmVkIG91dHB1dCBmb3IgY2hhcmFjdGVycyB0aGF0IGFyZSBzZW5zaXRpdmUgaW4gSFRNTD8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2lnbm9yZTwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5pZ25vcmU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHdlIGlnbm9yZSBtaXNzaW5nIGJlYW5zIGFuZCBzaW1wbHkgb3V0cHV0IG5vdGhpbmc/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+TmFtZSBvZiB0aGUgYmVhbiB0aGF0IGNvbnRhaW5zIHRoZSBkYXRhIHdlIHdpbGwgYmUgcmVuZGVyaW5nLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcHJvcGVydHk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cHJvcGVydHk8L0I+PC9QUkU+Cis8REw+Cis8REQ+TmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gYmUgYWNjZXNzZWQgb24gdGhlIHNwZWNpZmllZCBiZWFuLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorc2NvcGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c2NvcGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNjb3BlIHRvIGJlIHNlYXJjaGVkIHRvIHJldHJpZXZlIHRoZSBzcGVjaWZpZWQgYmVhbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2Zvcm1hdFN0cjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5mb3JtYXRTdHI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZvcm1hdCBzdHJpbmcgdG8gYmUgdXNlZCBhcyBmb3JtYXQgdG8gY29udmVydCAKKyB2YWx1ZSB0byBTdHJpbmcuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citmb3JtYXRLZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Zm9ybWF0S2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBrZXkgdG8gc2VhcmNoIGZvcm1hdCBzdHJpbmcgaW4gYXBwbGNpYXRpb24gcmVzb3VyY2VzCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citsb2NhbGVLZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bG9jYWxlS2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXNzaW9uIHNjb3BlIGtleSB1bmRlciB3aGljaCBvdXIgTG9jYWxlIGlzIHN0b3JlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2J1bmRsZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5idW5kbGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciBvdXIgcmVzb3VyY2VzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8SFIgU0laRT0iNCIgTk9TSEFERT4KKworPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBBTElHTj0iY2VudGVyIj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5QYWNrYWdlPC9CPiA8Qj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWc8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9BY3Rpb25Db25maWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkFjdGlvbkNvbmZpZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Citjb25maWd1cmVkPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPmNvbmZpZ3VyZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SW5kaWNhdGVzIGlmIGNvbmZpZ3VyYXRpb24gb2YgdGhpcyBjb21wb25lbnQgYmVlbiBjb21wbGV0ZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitleGNlcHRpb25zPC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuSGFzaE1hcCA8Qj5leGNlcHRpb25zPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgZXhjZXB0aW9uIGhhbmRsaW5nIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzCisgYWN0aW9uLCBpZiBhbnksIGtleWVkIGJ5IHRoZSA8Y29kZT50eXBlPC9jb2RlPiBwcm9wZXJ0eS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2ZvcndhcmRzPC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuSGFzaE1hcCA8Qj5mb3J3YXJkczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIGxvY2FsIGZvcndhcmQgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgYWN0aW9uLCBpZiBhbnksCisga2V5ZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IHByb3BlcnR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbW9kdWxlQ29uZmlnPC9IMz4KKzxQUkU+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTW9kdWxlQ29uZmlnLmh0bWwiPk1vZHVsZUNvbmZpZzwvQT4gPEI+bW9kdWxlQ29uZmlnPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtb2R1bGUgY29uZmlndXJhdGlvbiB3aXRoIHdoaWNoIHdlIGFyZSBhc3NvY2lhdGVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorYXR0cmlidXRlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmF0dHJpYnV0ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVxdWVzdC1zY29wZSBvciBzZXNzaW9uLXNjb3BlIGF0dHJpYnV0ZSBuYW1lIHVuZGVyIHdoaWNoIG91cgorIGZvcm0gYmVhbiBpcyBhY2Nlc3NlZCwgaWYgaXQgaXMgZGlmZmVyZW50IGZyb20gdGhlIGZvcm0gYmVhbidzCisgc3BlY2lmaWVkIDxjb2RlPm5hbWU8L2NvZGU+LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZm9yd2FyZDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5mb3J3YXJkPC9CPjwvUFJFPgorPERMPgorPEREPkNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIHRoYXQgd2lsbCBwcm9jZXNzCisgdGhpcyByZXF1ZXN0IHZpYSBSZXF1ZXN0RGlzcGF0Y2hlci5mb3J3YXJkKCksIGluc3RlYWQgb2YgaW5zdGFudGlhdGluZworIGFuZCBjYWxsaW5nIHRoZSA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzIHNwZWNpZmllZCBieSAidHlwZSIuCisgRXhhY3RseSBvbmUgb2YgPGNvZGU+Zm9yd2FyZDwvY29kZT4sIDxjb2RlPmluY2x1ZGU8L2NvZGU+LCBvcgorIDxjb2RlPnR5cGU8L2NvZGU+IG11c3QgYmUgc3BlY2lmaWVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgoraW5jbHVkZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5pbmNsdWRlPC9CPjwvUFJFPgorPERMPgorPEREPkNvbnRleHQtcmVsYXRpdmUgcGF0aCBvZiB0aGUgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIHRoYXQgd2lsbCBwcm9jZXNzCisgdGhpcyByZXF1ZXN0IHZpYSBSZXF1ZXN0RGlzcGF0Y2hlci5pbmNsdWRlKCksIGluc3RlYWQgb2YgaW5zdGFudGlhdGluZworIGFuZCBjYWxsaW5nIHRoZSA8Y29kZT5BY3Rpb248L2NvZGU+IGNsYXNzIHNwZWNpZmllZCBieSAidHlwZSIuCisgRXhhY3RseSBvbmUgb2YgPGNvZGU+Zm9yd2FyZDwvY29kZT4sIDxjb2RlPmluY2x1ZGU8L2NvZGU+LCBvcgorIDxjb2RlPnR5cGU8L2NvZGU+IG11c3QgYmUgc3BlY2lmaWVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgoraW5wdXQ8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+aW5wdXQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+Q29udGV4dC1yZWxhdGl2ZSBwYXRoIG9mIHRoZSBpbnB1dCBmb3JtIHRvIHdoaWNoIGNvbnRyb2wgc2hvdWxkIGJlCisgcmV0dXJuZWQgaWYgYSB2YWxpZGF0aW9uIGVycm9yIGlzIGVuY291bnRlcmVkLiAgUmVxdWlyZWQgaWYgIm5hbWUiCisgaXMgc3BlY2lmaWVkIGFuZCB0aGUgaW5wdXQgYmVhbiByZXR1cm5zIHZhbGlkYXRpb24gZXJyb3JzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbXVsdGlwYXJ0Q2xhc3M8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bXVsdGlwYXJ0Q2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+RnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUKKyA8Y29kZT5NdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcjwvY29kZT4gaW1wbGVtZW50YXRpb24gY2xhc3MgdXNlZCB0bworIHByb2Nlc3MgbXVsdGktcGFydCByZXF1ZXN0IGRhdGEgZm9yIHRoaXMgQWN0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPk5hbWUgb2YgdGhlIGZvcm0gYmVhbiwgaWYgYW55LCBhc3NvY2lhdGVkIHdpdGggdGhpcyBBY3Rpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitwYXJhbWV0ZXI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGFyYW1ldGVyPC9CPjwvUFJFPgorPERMPgorPEREPkdlbmVyYWwgcHVycG9zZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciB0aGF0IGNhbiBiZSB1c2VkIHRvIHBhc3MKKyBleHRyYSBpbmZvcm1hdGlvbiB0byB0aGUgQWN0aW9uIGluc3RhbmNlIHNlbGVjdGVkIGJ5IHRoaXMgQWN0aW9uLgorIFN0cnV0cyBkb2VzIG5vdCBpdHNlbGYgdXNlIHRoaXMgdmFsdWUgaW4gYW55IHdheS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3BhdGg8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGF0aDwvQj48L1BSRT4KKzxETD4KKzxERD5Db250ZXh0LXJlbGF0aXZlIHBhdGggb2YgdGhlIHN1Ym1pdHRlZCByZXF1ZXN0LCBzdGFydGluZyB3aXRoIGEKKyBzbGFzaCAoIi8iKSBjaGFyYWN0ZXIsIGFuZCBvbWl0dGluZyBhbnkgZmlsZW5hbWUgZXh0ZW5zaW9uIGlmCisgZXh0ZW5zaW9uIG1hcHBpbmcgaXMgYmVpbmcgdXNlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3ByZWZpeDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcmVmaXg8L0I+PC9QUkU+Cis8REw+Cis8REQ+UHJlZml4IHVzZWQgdG8gbWF0Y2ggcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZXMgdG8gZm9ybSBiZWFuIHByb3BlcnR5CisgbmFtZXMsIGlmIGFueS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3JvbGVzPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnJvbGVzPC9CPjwvUFJFPgorPERMPgorPEREPkNvbW1hLWRlbGltaXRlZCBsaXN0IG9mIHNlY3VyaXR5IHJvbGUgbmFtZXMgYWxsb3dlZCB0byByZXF1ZXN0CisgdGhpcyBBY3Rpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cityb2xlTmFtZXM8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmdbXSA8Qj5yb2xlTmFtZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBzZWN1cml0eSByb2xlIG5hbWVzIHVzZWQgdG8gYXV0aG9yaXplIGFjY2VzcyB0byB0aGlzCisgQWN0aW9uLCBhcyBhbiBhcnJheSBmb3IgZmFzdGVyIGFjY2Vzcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Njb3BlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNjb3BlPC9CPjwvUFJFPgorPERMPgorPEREPklkZW50aWZpZXIgb2YgdGhlIHNjb3BlICgicmVxdWVzdCIgb3IgInNlc3Npb24iKSB3aXRoaW4gd2hpY2gKKyBvdXIgZm9ybSBiZWFuIGlzIGFjY2Vzc2VkLCBpZiBhbnkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzdWZmaXg8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+c3VmZml4PC9CPjwvUFJFPgorPERMPgorPEREPlN1ZmZpeCB1c2VkIHRvIG1hdGNoIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVzIHRvIGZvcm0gYmVhbiBwcm9wZXJ0eQorIG5hbWVzLCBpZiBhbnkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit0eXBlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+RnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzcworIHRvIGJlIHVzZWQgdG8gcHJvY2VzcyByZXF1ZXN0cyBmb3IgdGhpcyBtYXBwaW5nIGlmIHRoZQorIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGFuZCA8Y29kZT5pbmNsdWRlPC9jb2RlPiBwcm9wZXJ0aWVzIGFyZSBub3Qgc2V0LgorIEV4YWN0bHkgb25lIG9mIDxjb2RlPmZvcndhcmQ8L2NvZGU+LCA8Y29kZT5pbmNsdWRlPC9jb2RlPiwgb3IKKyA8Y29kZT50eXBlPC9jb2RlPiBtdXN0IGJlIHNwZWNpZmllZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Vua25vd248L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+dW5rbm93bjwvQj48L1BSRT4KKzxETD4KKzxERD5JbmRpY2F0ZXMgQWN0aW9uIGJlIGNvbmZpZ3VyZWQgYXMgdGhlIGRlZmF1bHQgb25lIGZvciB0aGlzCisgYXBwbGljYXRpb24sIHdoZW4gdHJ1ZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbGlkYXRlPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPnZhbGlkYXRlPC9CPjwvUFJFPgorPERMPgorPEREPlNob3VsZCB0aGUgPGNvZGU+dmFsaWRhdGUoKTwvY29kZT4gbWV0aG9kIG9mIHRoZSBmb3JtIGJlYW4gYXNzb2NpYXRlZAorIHdpdGggdGhpcyBhY3Rpb24gYmUgY2FsbGVkPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQXBwbGljYXRpb25Db25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0FwcGxpY2F0aW9uQ29uZmlnLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5BcHBsaWNhdGlvbkNvbmZpZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkNvbnRyb2xsZXJDb25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0NvbnRyb2xsZXJDb25maWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkNvbnRyb2xsZXJDb25maWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorY29uZmlndXJlZDwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5jb25maWd1cmVkPC9CPjwvUFJFPgorPERMPgorPEREPkhhcyB0aGlzIGNvbXBvbmVudCBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZD8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2J1ZmZlclNpemU8L0gzPgorPFBSRT4KK2ludCA8Qj5idWZmZXJTaXplPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBpbnB1dCBidWZmZXIgc2l6ZSBmb3IgZmlsZSB1cGxvYWRzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorY29udGVudFR5cGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+Y29udGVudFR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRlbnQgdHlwZSBhbmQgY2hhcmFjdGVyIGVuY29kaW5nIHRvIGJlIHNldCBvbiBlYWNoIHJlc3BvbnNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZGVidWc8L0gzPgorPFBSRT4KK2ludCA8Qj5kZWJ1ZzwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST5Db25maWd1cmUgdGhlIGxvZ2dpbmcgZGV0YWlsIGxldmVsIGluIHlvdXIgdW5kZXJseWluZworICBsb2dnaW5nIGltcGxlbWVuYXRpb248L0k+Cis8UD4KKzxERD5UaGUgZGVidWdnaW5nIGRldGFpbCBsZXZlbCB0aGF0IGRldGVybWluZXMgbG9nZ2luZyB2ZXJib3NpdHkuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citmb3J3YXJkUGF0dGVybjwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5mb3J3YXJkUGF0dGVybjwvQj48L1BSRT4KKzxETD4KKzxERD48cD5UaGUgcmVwbGFjZW1lbnQgcGF0dGVybiB1c2VkIHRvIGRldGVybWluZSBhIGNvbnRleHQtcmVsYXRpdmUgVVJMCisgZnJvbSBhIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPjxDT0RFPkZvcndhcmRDb25maWc8L0NPREU+PC9BPiBlbGVtZW50LiAgVGhlIHBhdHRlcm4gbWF5IGNvbnNpc3Qgb2YgYW55CisgY29tYmluYXRpb24gb2YgdGhlIGZvbGxvd2luZyBtYXJrZXJzIGFuZCBjaGFyYWN0ZXJzOjwvcD4KKyA8dWw+CisgPGxpPjxjb2RlPjxzdHJvbmc+JE08L3N0cm9uZz48L2NvZGU+IC0gUmVwbGFjZWQgYnkgdGhlIG1vZHVsZQorICAgICBwcmVmaXggZm9yIHRoZSBjdXJyZW50IG1vZHVsZS48L2xpPgorIDxsaT48Y29kZT48c3Ryb25nPiRQPC9zdHJvbmc+PC9jb2RlPiAtIFJlcGxhY2VkIGJ5IHRoZSA8Y29kZT5wYXRoPC9jb2RlPgorICAgICBwcm9wZXJ0eSBvZiBhIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPjxDT0RFPkZvcndhcmRDb25maWc8L0NPREU+PC9BPiBpbnN0YW5jZS48L2xpPgorIDxsaT48Y29kZT48c3Ryb25nPiQkPC9zdHJvbmc+PC9jb2RlPiAtIFJlbmRlcnMgYSBsaXRlcmFsIGRvbGxhciBzaWduCisgICAgICgiJCIpIGNoYXJhY3RlciBpbiB0aGUgcmVzdWx0aW5nIFVSTC48L2xpPgorIDxsaT5BIGRvbGxhciBzaWduIGZvbGxvd2VkIGJ5IGFueSBvdGhlciBjaGFyYWN0ZXIgaXMgcmVzZXJ2ZWQgZm9yCisgICAgIGZ1dHVyZSB1c2UsIGFuZCBib3RoIGNoYXJhY3RlcnMgYXJlIHNpbGVudGx5IHN3YWxsb3dlZC48L2xpPgorIDxsaT5BbGwgb3RoZXIgY2hhcmFjdGVycyBpbiB0aGUgcGF0dGVybiBhcmUgcGFzc2VkIHRocm91Z2ggdW5jaGFuZ2VkLgorICAgICA8L2xpPgorIDwvdWw+CisKKyA8cD5JZiB0aGlzIHByb3BlcnR5IGlzIHNldCB0byA8Y29kZT5udWxsPC9jb2RlPiwgYSBkZWZhdWx0IHBhdHRlcm4gb2YKKyA8Y29kZT4kTSRQPC9jb2RlPiBpcyB1dGlsaXplZCwgd2hpY2ggaXMgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aAorIHRoZSBoYXJkIGNvZGVkIGZ1bmN0aW9uYWxpdHkgaW4gcHJpb3IgdmVyc2lvbnMuPC9wPgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgoraW5wdXRGb3J3YXJkPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPmlucHV0Rm9yd2FyZDwvQj48L1BSRT4KKzxETD4KKzxERD48cD5TaG91bGQgdGhlIDxjb2RlPmlucHV0PC9jb2RlPiBwcm9wZXJ0eSBvZiA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQWN0aW9uQ29uZmlnLmh0bWwiPjxDT0RFPkFjdGlvbkNvbmZpZzwvQ09ERT48L0E+CisgaW5zdGFuY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1vZHVsZSBiZSB0cmVhdGVkIGFzIHRoZQorIG5hbWUgb2YgYSBjb3JyZXNwb25kaW5nIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3J3YXJkQ29uZmlnLmh0bWwiPjxDT0RFPkZvcndhcmRDb25maWc8L0NPREU+PC9BPi4gIEEgPGNvZGU+ZmFsc2U8L2NvZGU+CisgdmFsdWUgdHJlYXRzIHRoZW0gYXMgYSBtb2R1bGUtcmVsYXRpdmUgcGF0aCAoY29uc2lzdGVudAorIHdpdGggdGhlIGhhcmQgY29kZWQgYmVoYXZpb3Igb2YgZWFybGllciB2ZXJzaW9ucyBvZiBTdHJ1dHMuPC9wPgorPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citsb2NhbGU8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+bG9jYWxlPC9CPjwvUFJFPgorPERMPgorPEREPlNob3VsZCB3ZSBzdG9yZSBhIExvY2FsZSBvYmplY3QgaW4gdGhlIHVzZXIncyBzZXNzaW9uIGlmIG5lZWRlZD8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK21heEZpbGVTaXplPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm1heEZpbGVTaXplPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtYXhpbXVtIGZpbGUgc2l6ZSB0byBwcm9jZXNzIGZvciBmaWxlIHVwbG9hZHMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CittZW1GaWxlU2l6ZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5tZW1GaWxlU2l6ZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWF4aW11bSBmaWxlIHNpemUgdG8gcmV0YWluIGluIG1lbW9yeS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK211bHRpcGFydENsYXNzPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm11bHRpcGFydENsYXNzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBNdWx0aXBhcnRSZXF1ZXN0SGFuZGxlcgorIGNsYXNzIHRvIGJlIHVzZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citub2NhY2hlPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPm5vY2FjaGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHdlIHNldCBuby1jYWNoZSBIVFRQIGhlYWRlcnMgb24gZWFjaCByZXNwb25zZT8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3BhZ2VQYXR0ZXJuPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhZ2VQYXR0ZXJuPC9CPjwvUFJFPgorPERMPgorPEREPjxwPlRoZSByZXBsYWNlbWVudCBwYXR0ZXJuIHVzZWQgdG8gZGV0ZXJtaW5lIGEgY29udGV4dC1yZWxhdGl2ZSBVUkwKKyBmcm9tIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUgb2YgU3RydXRzIHRhZ3MgYW5kIGNvbmZpZ3VyYXRpb24KKyBwcm9wZXJ0aWVzLiAgVGhlIHBhdHRlcm4gbWF5IGNvbnNpc3Qgb2YgYW55IGNvbWJpbmF0aW9uIG9mIHRoZQorIGZvbGxvd2luZyBtYXJrZXJzIGFuZCBjaGFyYWN0ZXJzOjwvcD4KKyA8dWw+CisgPGxpPjxjb2RlPjxzdHJvbmc+JE08L3N0cm9uZz48L2NvZGU+IC0gUmVwbGFjZWQgYnkgdGhlIG1vZHVsZQorICAgICBwcmVmaXggZm9yIHRoZSBjdXJyZW50IG1vZHVsZS48L2xpPgorIDxsaT48Y29kZT48c3Ryb25nPiRQPC9zdHJvbmc+PC9jb2RlPiAtIFJlcGxhY2VkIGJ5IHRoZSA8Y29kZT5wYWdlPC9jb2RlPgorICAgICBhdHRyaWJ1dGUgdmFsdWUgYmVpbmcgZXZhbHVhdGVkLjwvbGk+CisgPGxpPjxjb2RlPjxzdHJvbmc+JCQ8L3N0cm9uZz48L2NvZGU+IC0gUmVuZGVycyBhIGxpdGVyYWwgZG9sbGFyIHNpZ24KKyAgICAgKCIkIikgY2hhcmFjdGVyIGluIHRoZSByZXN1bHRpbmcgVVJMLjwvbGk+CisgPGxpPkEgZG9sbGFyIHNpZ24gZm9sbG93ZWQgYnkgYW55IG90aGVyIGNoYXJhY3RlciBpcyByZXNlcnZlZCBmb3IKKyAgICAgZnV0dXJlIHVzZSwgYW5kIGJvdGggY2hhcmFjdGVycyBhcmUgc2lsZW50bHkgc3dhbGxvd2VkLjwvbGk+CisgPGxpPkFsbCBvdGhlciBjaGFyYWN0ZXJzIGluIHRoZSBwYXR0ZXJuIGFyZSBwYXNzZWQgdGhyb3VnaCB1bmNoYW5nZWQuCisgICAgIDwvbGk+CisgPC91bD4KKworIDxwPklmIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvIDxjb2RlPm51bGw8L2NvZGU+LCBhIGRlZmF1bHQgcGF0dGVybiBvZgorIDxjb2RlPiRNJFA8L2NvZGU+IGlzIHV0aWxpemVkLCB3aGljaCBpcyBiYWNrd2FyZHMgY29tcGF0aWJsZSB3aXRoCisgdGhlIGhhcmQgY29kZWQgZnVuY3Rpb25hbGl0eSBpbiBwcmlvciB2ZXJzaW9ucy48L3A+Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citwcm9jZXNzb3JDbGFzczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wcm9jZXNzb3JDbGFzczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgb2YgdGhlIFJlcXVlc3RQcm9jZXNzb3IgaW1wbGVtZW50YXRpb24KKyBjbGFzcyB0byBiZSB1c2VkIGZvciB0aGlzIG1vZHVsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3RlbXBEaXI8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dGVtcERpcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdGVtcG9yYXJ5IHdvcmtpbmcgZGlyZWN0b3J5IHRvIHVzZSBmb3IgZmlsZSB1cGxvYWRzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRGF0YVNvdXJjZUNvbmZpZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRGF0YVNvdXJjZUNvbmZpZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRGF0YVNvdXJjZUNvbmZpZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Citjb25maWd1cmVkPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPmNvbmZpZ3VyZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SGFzIHRoaXMgY29tcG9uZW50IGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgora2V5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmtleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggdGhpcyBkYXRhIHNvdXJjZQorIGlzIHN0b3JlZCBhbmQgbWFkZSBhdmFpbGFibGUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0aWVzPC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuSGFzaE1hcCA8Qj5wcm9wZXJ0aWVzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBjdXN0b20gY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGlzIGRhdGEgc291cmNlIGltcGxlbWVudGF0aW9uLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgordHlwZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj50eXBlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSBvZiB0aGUgPGNvZGU+amF2YXguc3FsLkRhdGFTb3VyY2U8L2NvZGU+CisgaW1wbGVtZW50YXRpb24gY2xhc3MuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0V4Y2VwdGlvbkNvbmZpZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRXhjZXB0aW9uQ29uZmlnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2NvbmZpZ3VyZWQ8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+Y29uZmlndXJlZDwvQj48L1BSRT4KKzxETD4KKzxERD5IYXMgdGhpcyBjb21wb25lbnQgYmVlbiBjb21wbGV0ZWx5IGNvbmZpZ3VyZWQ/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitidW5kbGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+YnVuZGxlPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZSBtZXNzYWdlIHJlc291cmNlcyBidW5kbGUKKyB0byBiZSB1c2VkIGZvciB0aGlzIGV4Y2VwdGlvbiBpcyBsb2NhdGVkLiAgSWYgbm90IHNldCwgdGhlIGRlZmF1bHQKKyBtZXNzYWdlIHJlc291cmNlcyBmb3IgdGhlIGN1cnJlbnQgbW9kdWxlIGlzIGFzc3VtZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitoYW5kbGVyPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmhhbmRsZXI8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyIGNsYXNzCisgd2hpY2ggc2hvdWxkIGJlIGluc3RhbnRpYXRlZCB0byBoYW5kbGUgdGhpcyBleGNlcHRpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitrZXk8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+a2V5PC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgc3BlY2lmeWluZyB0aGUgZXJyb3IgbWVzc2FnZQorIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGV4Y2VwdGlvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3BhdGg8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+cGF0aDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbW9kdWxlLXJlbGF0aXZlIHBhdGggb2YgdGhlIHJlc291cmNlIHRvIGZvcndhcmQgdG8gaWYgdGhpcworIGV4Y2VwdGlvbiBvY2N1cnMgZHVyaW5nIGFuIDxjb2RlPkFjdGlvbjwvY29kZT4uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzY29wZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zY29wZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2NvcGUgaW4gd2hpY2ggd2Ugc2hvdWxkIGV4cG9zZSB0aGUgQWN0aW9uRXJyb3IgZm9yIHRoaXMgZXhjZXB0aW9uCisgaGFuZGxlci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3R5cGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgZXhjZXB0aW9uIHRoYXQgaXMgdG8gYmUKKyBoYW5kbGVkIGJ5IHRoaXMgaGFuZGxlci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcm1CZWFuQ29uZmlnIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Gb3JtQmVhbkNvbmZpZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorY29uZmlndXJlZDwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5jb25maWd1cmVkPC9CPjwvUFJFPgorPERMPgorPEREPkhhcyB0aGlzIGNvbXBvbmVudCBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZD8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2Zvcm1Qcm9wZXJ0aWVzPC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuSGFzaE1hcCA8Qj5mb3JtUHJvcGVydGllczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIEZvcm1Qcm9wZXJ0eSBlbGVtZW50cyBkZWZpbmluZyBkeW5hbWljIGZvcm0gcHJvcGVydGllcyBmb3IKKyB0aGlzIGZvcm0gYmVhbiwga2V5ZWQgYnkgcHJvcGVydHkgbmFtZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2R5bmFtaWM8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+ZHluYW1pYzwvQj48L1BSRT4KKzxETD4KKzxERD5JcyB0aGUgZm9ybSBiZWFuIGNsYXNzIGFuIGluc3RhbmNlIG9mIER5bmFBY3Rpb25Gb3JtIHdpdGggZHluYW1pYworIHByb3BlcnRpZXM/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cittb2R1bGVDb25maWc8L0gzPgorPFBSRT4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+TW9kdWxlQ29uZmlnPC9BPiA8Qj5tb2R1bGVDb25maWc8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Nb2R1bGVDb25maWcuaHRtbCI+PENPREU+TW9kdWxlQ29uZmlnPC9DT0RFPjwvQT4gd2l0aCB3aGljaCB0aGlzIGZvcm0gYmVhbiBkZWZpbml0aW9uCisgaXMgYXNzb2NpYXRlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK25hbWU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+bmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhpcyBmb3JtIGJlYW4sIHdoaWNoIGlzIHVzZWQgdG8gcmVmZXJlbmNlIHRoaXMKKyBiZWFuIGluIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+IGluc3RhbmNlcyBhcyB3ZWxsIGFzIGZvciB0aGUgbmFtZSBvZgorIHRoZSByZXF1ZXN0IG9yIHNlc3Npb24gYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZSBjb3JyZXNwb25kaW5nIGZvcm0gYmVhbgorIGluc3RhbmNlIGlzIGNyZWF0ZWQgb3IgYWNjZXNzZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Cit0eXBlPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnR5cGU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIGltcGxlbWVudGF0aW9uIGNsYXNzCisgdG8gYmUgdXNlZCBvciBnZW5lcmF0ZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Gb3JtUHJvcGVydHlDb25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0Zvcm1Qcm9wZXJ0eUNvbmZpZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybVByb3BlcnR5Q29uZmlnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2NvbmZpZ3VyZWQ8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+Y29uZmlndXJlZDwvQj48L1BSRT4KKzxETD4KKzxERD5IYXMgdGhpcyBjb21wb25lbnQgYmVlbiBjb21wbGV0ZWx5IGNvbmZpZ3VyZWQ/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citpbml0aWFsPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmluaXRpYWw8L0I+PC9QUkU+Cis8REw+Cis8REQ+U3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbml0aWFsIHZhbHVlIGZvciB0aGlzIHByb3BlcnR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBKYXZhQmVhbiBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBkZXNjcmliZWQgYnkgdGhpcyBlbGVtZW50LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorc2l6ZTwvSDM+Cis8UFJFPgoraW50IDxCPnNpemU8L0I+PC9QUkU+Cis8REw+Cis8REQ+PHA+VGhlIHNpemUgb2YgdGhlIGFycmF5IHRvIGJlIGNyZWF0ZWQgaWYgdGhpcyBwcm9wZXJ0eSBpcyBhbiBhcnJheQorIHR5cGUgYW5kIHRoZXJlIGlzIG5vIHNwZWNpZmllZCA8Y29kZT5pbml0aWFsPC9jb2RlPiB2YWx1ZS4gIFRoaXMKKyB2YWx1ZSBtdXN0IGJlIG5vbi1uZWdhdGl2ZS48L3A+Cis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3R5cGU8L0gzPgorPFBSRT4KK2phdmEubGFuZy5TdHJpbmcgPEI+dHlwZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3MKKyBvZiB0aGlzIGJlYW4gcHJvcGVydHksIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkgPGNvZGU+W108L2NvZGU+IHRvCisgaW5kaWNhdGUgdGhhdCB0aGUgcHJvcGVydHkgaXMgaW5kZXhlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL0ZvcndhcmRDb25maWcuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorY29uZmlndXJlZDwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5jb25maWd1cmVkPC9CPjwvUFJFPgorPERMPgorPEREPkhhcyB0aGlzIGNvbXBvbmVudCBiZWVuIGNvbXBsZXRlbHkgY29uZmlndXJlZD8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2NvbnRleHRSZWxhdGl2ZTwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5jb250ZXh0UmVsYXRpdmU8L0I+PC9QUkU+Cis8REw+Cis8REQ+U2hvdWxkIHRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+cGF0aDwvY29kZT4gcHJvcGVydHkgYmUgY29uc2lkZXJlZAorIGNvbnRleHQtcmVsYXRpdmUgaWYgaXQgc3RhcnRzIHdpdGggYSBzbGFzaCAoYW5kIHRoZXJlZm9yZSBub3QKKyBwcmVmaXhlZCB3aXRoIHRoZSBtb2R1bGUgcHJlZml4PworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5uYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGlzIGZvcndhcmQsIHdoaWNoIGlzIHVzZWQgdG8gcmVmZXJlbmNlIGl0CisgaW4gPGNvZGU+QWN0aW9uPC9jb2RlPiBjbGFzc2VzLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGF0aDwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5wYXRoPC9CPjwvUFJFPgorPERMPgorPEREPjxwPlRoZSBVUkwgdG8gd2hpY2ggdGhpcyA8Y29kZT5Gb3J3YXJkQ29uZmlnPC9jb2RlPiBlbnRyeSBwb2ludHMsCisgd2hpY2ggbXVzdCBzdGFydCB3aXRoIGEgc2xhc2ggKCIvIikgY2hhcmFjdGVyLiAgSXQgaXMKKyBpbnRlcnByZXRlZCBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyBydWxlczo8L3A+CisgPGxpPklmIDxjb2RlPmNvbnRleHRSZWxhdGl2ZTwvY29kZT4gcHJvcGVydHkgaXMgPGNvZGU+dHJ1ZTwvY29kZT4sIHRoZQorICAgICBwYXRoIGlzIGNvbnNpZGVyZWQgdG8gYmUgY29udGV4dC1yZWxhdGl2ZSB3aXRoaW4gdGhlIGN1cnJlbnQgd2ViCisgICAgIGFwcGxpY2F0aW9uIChldmVuIGlmIHdlIGFyZSBpbiBhIG5hbWVkIG1vZHVsZSkuICBJdCB3aWxsIGJlCisgICAgIHByZWZpeGVkIGJ5IHRoZSBjb250ZXh0IHBhdGggdG8gY3JlYXRlIGEgc2VydmVyLXJlbGF0aXZlIFVSTC48L2xpPgorIDxsaT5JZiB0aGUgPGNvZGU+Y29udGV4dFJlbGF0aXZlPC9jb2RlPiBwcm9wZXJ0eSBpcyBmYWxzZSwgdGhlIHBhdGggaXMKKyAgICAgY29uc2lkZXJlZCB0byBiZSB0aGUgbW9kdWxlLXJlbGF0aXZlIHBvcnRpb24gb2YgdGhlIFVSTC4KKyAgICAgSXQgd2lsbCBiZSB1c2VkIGFzIHRoZSByZXBsYWNlbWVudCBmb3IgdGhlIDxjb2RlPiRQPC9jb2RlPgorICAgICBtYXJrZXIgaW4gdGhlIDxjb2RlPmZvcndhcmRQYXR0ZXJuPC9jb2RlPiBwcm9wZXJ0eSBkZWZpbmVkIG9uIHRoZQorICAgICA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvQ29udHJvbGxlckNvbmZpZy5odG1sIj48Q09ERT5Db250cm9sbGVyQ29uZmlnPC9DT0RFPjwvQT4gZWxlbWVudCBmb3Igb3VyIGN1cnJlbnQgbW9kdWxlLgorICAgICBGb3IgdGhlIGRlZmF1bHQgPGNvZGU+Zm9yd2FyZFBhdHRlcm48L2NvZGU+IHZhbHVlIG9mCisgICAgIDxjb2RlPiRDJE0kUDwvY29kZT4sIHRoZSByZXN1bHRpbmcgc2VydmVyLXJlbGF0aXZlIFVSTCB3aWxsIGJlCisgICAgIHRoZSBjb25jYXRlbmF0aW9uIG9mIHRoZSBjb250ZXh0IHBhdGgsIHRoZSBtb2R1bGUgcHJlZml4LAorICAgICBhbmQgdGhlIDxjb2RlPnBhdGg8L2NvZGU+IGZyb20gdGhpcyA8Y29kZT5Gb3J3YXJkQ29uZmlnPC9jb2RlPi48L2xpPgorIDwvdWw+Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CityZWRpcmVjdDwvSDM+Cis8UFJFPgorYm9vbGVhbiA8Qj5yZWRpcmVjdDwvQj48L1BSRT4KKzxETD4KKzxERD5TaG91bGQgYSByZWRpcmVjdCBiZSB1c2VkIHRvIHRyYW5zZmVyIGNvbnRyb2wgdG8gdGhlIHNwZWNpZmllZCBwYXRoPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTWVzc2FnZVJlc291cmNlc0NvbmZpZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvTWVzc2FnZVJlc291cmNlc0NvbmZpZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTWVzc2FnZVJlc291cmNlc0NvbmZpZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Citjb25maWd1cmVkPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPmNvbmZpZ3VyZWQ8L0I+PC9QUkU+Cis8REw+Cis8REQ+SGFzIHRoaXMgY29tcG9uZW50IGJlZW4gY29tcGxldGVseSBjb25maWd1cmVkPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZmFjdG9yeTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5mYWN0b3J5PC9CPjwvUFJFPgorPERMPgorPEREPkZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IGNsYXNzCisgd2Ugc2hvdWxkIHVzZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2tleTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5rZXk8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCB0aGlzIE1lc3NhZ2VSZXNvdXJjZXMKKyBpbnN0YW5jZSBpcyBzdG9yZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitudWxsVmFsdWU8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+bnVsbFZhbHVlPC9CPjwvUFJFPgorPERMPgorPEREPlNob3VsZCB3ZSByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4gZm9yIHVua25vd24gbWVzc2FnZSBrZXlzPworPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGFyYW1ldGVyPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnBhcmFtZXRlcjwvQj48L1BSRT4KKzxETD4KKzxERD5QYXJhbWV0ZXIgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIDxjb2RlPmNyZWF0ZVJlc291cmNlcygpPC9jb2RlPiBtZXRob2QKKyBvZiBvdXIgTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgaW1wbGVtZW50YXRpb24uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5QbHVnSW5Db25maWciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL1BsdWdJbkNvbmZpZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuUGx1Z0luQ29uZmlnPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2NvbmZpZ3VyZWQ8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+Y29uZmlndXJlZDwvQj48L1BSRT4KKzxETD4KKzxERD5IYXMgdGhpcyBjb21wb25lbnQgYmVlbiBjb21wbGV0ZWx5IGNvbmZpZ3VyZWQ/Cis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0aWVzPC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuTWFwIDxCPnByb3BlcnRpZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+QSA8Y29kZT5NYXA8L2NvZGU+IG9mIHRoZSBuYW1lLXZhbHVlIHBhaXJzIHRoYXQgd2lsbCBiZSB1c2VkIHRvCisgY29uZmlndXJlIHRoZSBwcm9wZXJ0eSB2YWx1ZXMgb2YgYSA8Y29kZT5QbHVnSW48L2NvZGU+IGluc3RhbmNlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorY2xhc3NOYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmNsYXNzTmFtZTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgPGNvZGU+UGx1Z0luPC9jb2RlPgorIGltcGxlbWVudGF0aW9uIGNsYXNzIGJlaW5nIGNvbmZpZ3VyZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxIUiBTSVpFPSI0IiBOT1NIQURFPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIEFMSUdOPSJjZW50ZXIiPjxGT05UIFNJWkU9IisyIj4KKzxCPlBhY2thZ2U8L0I+IDxCPm9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3RvcnkuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLmltcGwuRGVmYXVsdE1vZHVsZUNvbmZpZ0ZhY3Rvcnk8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5pbXBsLk1vZHVsZUNvbmZpZ0ltcGwiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvY29uZmlnL2ltcGwvTW9kdWxlQ29uZmlnSW1wbC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuaW1wbC5Nb2R1bGVDb25maWdJbXBsPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2FjdGlvbkNvbmZpZ3M8L0gzPgorPFBSRT4KK2phdmEudXRpbC5IYXNoTWFwIDxCPmFjdGlvbkNvbmZpZ3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBhY3Rpb24gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLCBpZiBhbnksCisga2V5ZWQgYnkgdGhlIDxjb2RlPnBhdGg8L2NvZGU+IHByb3BlcnR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZGF0YVNvdXJjZXM8L0gzPgorPFBSRT4KK2phdmEudXRpbC5IYXNoTWFwIDxCPmRhdGFTb3VyY2VzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgSkRCQyBkYXRhIHNvdXJjZSBjb25maWd1cmF0aW9ucyBmb3IgdGhpcworIG1vZHVsZSwgaWYgYW55LCBrZXllZCBieSB0aGUgPGNvZGU+a2V5PC9jb2RlPiBwcm9wZXJ0eS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2V4Y2VwdGlvbnM8L0gzPgorPFBSRT4KK2phdmEudXRpbC5IYXNoTWFwIDxCPmV4Y2VwdGlvbnM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBleGNlcHRpb24gaGFuZGxpbmcgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMKKyBtb2R1bGUsIGlmIGFueSwga2V5ZWQgYnkgdGhlIDxjb2RlPnR5cGU8L2NvZGU+IHByb3BlcnR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZm9ybUJlYW5zPC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuSGFzaE1hcCA8Qj5mb3JtQmVhbnM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBmb3JtIGJlYW4gY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLCBpZiBhbnksCisga2V5ZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IHByb3BlcnR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZm9yd2FyZHM8L0gzPgorPFBSRT4KK2phdmEudXRpbC5IYXNoTWFwIDxCPmZvcndhcmRzPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgZ2xvYmFsIGZvcndhcmQgY29uZmlndXJhdGlvbnMgZm9yIHRoaXMgbW9kdWxlLCBpZiBhbnksCisga2V5ZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IHByb3BlcnR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorbWVzc2FnZVJlc291cmNlczwvSDM+Cis8UFJFPgoramF2YS51dGlsLkhhc2hNYXAgPEI+bWVzc2FnZVJlc291cmNlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIG1lc3NhZ2UgcmVzb3VyY2VzIGNvbmZpZ3VyYXRpb25zIGZvciB0aGlzCisgbW9kdWxlLCBpZiBhbnksIGtleWVkIGJ5IHRoZSA8Y29kZT5rZXk8L2NvZGU+IHByb3BlcnR5LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcGx1Z0luczwvSDM+Cis8UFJFPgoramF2YS51dGlsLkFycmF5TGlzdCA8Qj5wbHVnSW5zPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXQgb2YgY29uZmlndXJlZCBwbHVnLWluIEFjdGlvbnMgZm9yIHRoaXMgbW9kdWxlLAorIGlmIGFueSwgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBkZWNsYXJlZCBhbmQgY29uZmlndXJlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2NvbmZpZ3VyZWQ8L0gzPgorPFBSRT4KK2Jvb2xlYW4gPEI+Y29uZmlndXJlZDwvQj48L1BSRT4KKzxETD4KKzxERD5IYXMgdGhpcyBtb2R1bGUgYmVlbiBjb21wbGV0ZWx5IGNvbmZpZ3VyZWQgeWV0LiAgT25jZSB0aGlzIGZsYWcKKyBoYXMgYmVlbiBzZXQsIGFueSBhdHRlbXB0IHRvIG1vZGlmeSB0aGUgY29uZmlndXJhdGlvbiB3aWxsIHJldHVybiBhbgorIElsbGVnYWxTdGF0ZUV4Y2VwdGlvbi4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2NvbnRyb2xsZXJDb25maWc8L0gzPgorPFBSRT4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2NvbmZpZy9Db250cm9sbGVyQ29uZmlnLmh0bWwiPkNvbnRyb2xsZXJDb25maWc8L0E+IDxCPmNvbnRyb2xsZXJDb25maWc8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbiBvYmplY3QgZm9yIHRoaXMgbW9kdWxlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorcHJlZml4PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnByZWZpeDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcHJlZml4IG9mIHRoZSBjb250ZXh0LXJlbGF0aXZlIHBvcnRpb24gb2YgdGhlIHJlcXVlc3QgVVJJLCB1c2VkIHRvCisgc2VsZWN0IHRoaXMgY29uZmlndXJhdGlvbiB2ZXJzdXMgb3RoZXJzIHN1cHBvcnRlZCBieSB0aGUgY29udHJvbGxlcgorIHNlcnZsZXQuICBBIGNvbmZpZ3VyYXRpb24gd2l0aCBhIHByZWZpeCBvZiBhIHplcm8tbGVuZ3RoIFN0cmluZyBpcyB0aGUKKyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgd2ViIG1vZHVsZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2FjdGlvbk1hcHBpbmdDbGFzczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5hY3Rpb25NYXBwaW5nQ2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGRlZmF1bHQgY2xhc3MgbmFtZSB0byBiZSB1c2VkIHdoZW4gY3JlYXRpbmcgYWN0aW9uIG1hcHBpbmcKKyBpbnN0YW5jZXMuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxIUiBTSVpFPSI0IiBOT1NIQURFPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIEFMSUdOPSJjZW50ZXIiPjxGT05UIFNJWkU9IisyIj4KKzxCPlBhY2thZ2U8L0I+IDxCPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvciI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXJyb3IuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9yPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25FcnJvcnMuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9yczwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkV4Y2VwdGlvbiI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRXhjZXB0aW9uLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FeGNlcHRpb248L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3JtLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybUJlYW4iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcm1CZWFuLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbjwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm1CZWFucyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uRm9ybUJlYW5zLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbnM8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorZm9ybUJlYW5zPC9IMz4KKzxQUkU+CitvcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnMuRmFzdEhhc2hNYXAgPEI+Zm9ybUJlYW5zPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgY29sbGVjdGlvbiBvZiBBY3Rpb25Gb3JtQmVhbiBpbnN0YW5jZXMsIGtleWVkIGJ5IG5hbWUuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25Gb3J3YXJkLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZHMiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbkZvcndhcmRzLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkczwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+Cis8QSBOQU1FPSJzZXJpYWxpemVkRm9ybSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5TZXJpYWxpemVkIEZpZWxkczwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8SDM+Citmb3J3YXJkczwvSDM+Cis8UFJFPgorb3JnLmFwYWNoZS5jb21tb25zLmNvbGxlY3Rpb25zLkZhc3RIYXNoTWFwIDxCPmZvcndhcmRzPC9CPjwvUFJFPgorPERMPgorPEREPjxCPkRlcHJlY2F0ZWQuPC9CPiZuYnNwOzxERD5UaGUgY29sbGVjdGlvbiBvZiBBY3Rpb25Gb3J3YXJkIGluc3RhbmNlcywga2V5ZWQgYnkgbG9naWNhbCBuYW1lLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWFwcGluZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmdzIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5ncy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZ3M8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorbWFwcGluZ3M8L0gzPgorPFBSRT4KK29yZy5hcGFjaGUuY29tbW9ucy5jb2xsZWN0aW9ucy5GYXN0SGFzaE1hcCA8Qj5tYXBwaW5nczwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8REQ+VGhlIGNvbGxlY3Rpb24gb2YgQWN0aW9uTWFwcGluZyBpbnN0YW5jZXMsIGtleWVkIGJ5IHJlcXVlc3QgcGF0aC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Vua25vd248L0gzPgorPFBSRT4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9BY3Rpb25NYXBwaW5nLmh0bWwiPkFjdGlvbk1hcHBpbmc8L0E+IDxCPnVua25vd248L0I+PC9QUkU+Cis8REw+Cis8REQ+PEI+RGVwcmVjYXRlZC48L0I+Jm5ic3A7PEREPlRoZSBBY3Rpb25NYXBwaW5nIHRoYXQgc2hvdWxkIGhhbmRsZSB1bmtub3duIHJlcXVlc3QgcGF0aHMsIGlmIGFueS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2UiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvbk1lc3NhZ2UuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2U8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgora2V5PC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmtleTwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgbWVzc2FnZSBrZXkgZm9yIHRoaXMgbWVzc2FnZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3ZhbHVlczwvSDM+Cis8UFJFPgoramF2YS5sYW5nLk9iamVjdFtdIDxCPnZhbHVlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVwbGFjZW1lbnQgdmFsdWVzIGZvciB0aGlzIG1lc2FzZ2UuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcyI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK21lc3NhZ2VzPC9IMz4KKzxQUkU+CitqYXZhLnV0aWwuSGFzaE1hcCA8Qj5tZXNzYWdlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgYWNjdW11bGF0ZWQgc2V0IG9mIDxjb2RlPkFjdGlvbk1lc3NhZ2U8L2NvZGU+IG9iamVjdHMgKHJlcHJlc2VudGVkCisgYXMgYW4gQXJyYXlMaXN0KSBmb3IgZWFjaCBwcm9wZXJ0eSwga2V5ZWQgYnkgcHJvcGVydHkgbmFtZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2lDb3VudDwvSDM+Cis8UFJFPgoraW50IDxCPmlDb3VudDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgY3VycmVudCBudW1iZXIgb2YgdGhlIHByb3BlcnR5L2tleSBiZWluZyBhZGRlZC4gIFRoaXMgaXMgdXNlZAorIHRvIG1haW50YWluIHRoZSBvcmRlciBtZXNzYWdlcyBhcmUgYWRkZWQuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlcy5BY3Rpb25NZXNzYWdlSXRlbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVTdWJIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+Cis8Qj5DbGFzcyA8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vQWN0aW9uTWVzc2FnZXMuQWN0aW9uTWVzc2FnZUl0ZW0uaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzLkFjdGlvbk1lc3NhZ2VJdGVtPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKzxBIE5BTUU9InNlcmlhbGl6ZWRGb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4KKzxCPlNlcmlhbGl6ZWQgRmllbGRzPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxIMz4KK2xpc3Q8L0gzPgorPFBSRT4KK2phdmEudXRpbC5MaXN0IDxCPmxpc3Q8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIGxpc3Qgb2YgPGNvZGU+QWN0aW9uTWVzc2FnZTwvY29kZT5zLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgoraU9yZGVyPC9IMz4KKzxQUkU+CitpbnQgPEI+aU9yZGVyPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBwb3NpdGlvbiBpbiB0aGUgbGlzdCBvZiBtZXNzYWdlcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0FjdGlvblNlcnZsZXQuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQ8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorY29uZmlnPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPmNvbmZpZzwvQj48L1BSRT4KKzxETD4KKzxERD5Db21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb250ZXh0LXJlbGF0aXZlIHBhdGgocykgdG8gb3VyIGNvbmZpZ3VyYXRpb24KKyByZXNvdXJjZShzKSBmb3IgdGhlIGRlZmF1bHQgbW9kdWxlLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorY29uZmlnRGlnZXN0ZXI8L0gzPgorPFBSRT4KK29yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5EaWdlc3RlciA8Qj5jb25maWdEaWdlc3RlcjwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgRGlnZXN0ZXIgdXNlZCB0byBwcm9kdWNlIE1vZHVsZUNvbmZpZyBvYmplY3RzIGZyb20gYQorIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGUuCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2NvbnZlcnROdWxsPC9IMz4KKzxQUkU+Citib29sZWFuIDxCPmNvbnZlcnROdWxsPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBmbGFnIHRvIHJlcXVlc3QgYmFja3dhcmRzLWNvbXBhdGlibGUgY29udmVyc2lvbnMgZm9yIGZvcm0gYmVhbgorIHByb3BlcnRpZXMgb2YgdGhlIEphdmEgd3JhcHBlciBjbGFzcyB0eXBlcy4KKzxQPgorPERMPgorPERUPjxCPlNpbmNlOjwvQj48L0RUPgorICA8REQ+U3RydXRzIDEuMTwvREQ+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZGF0YVNvdXJjZXM8L0gzPgorPFBSRT4KK29yZy5hcGFjaGUuY29tbW9ucy5jb2xsZWN0aW9ucy5GYXN0SGFzaE1hcCA8Qj5kYXRhU291cmNlczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgSkRCQyBkYXRhIHNvdXJjZXMgdGhhdCBoYXMgYmVlbiBjb25maWd1cmVkIGZvciB0aGlzIG1vZHVsZSwKKyBpZiBhbnksIGtleWVkIGJ5IHRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZXkgYXJlCisgc3RvcmVkLgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgorZGVidWc8L0gzPgorPFBSRT4KK2ludCA8Qj5kZWJ1ZzwvQj48L1BSRT4KKzxETD4KKzxERD48Qj5EZXByZWNhdGVkLjwvQj4mbmJzcDs8ST48L0k+Jm5ic3A7Cis8UD4KKzxERD5UaGUgZGVidWdnaW5nIGRldGFpbCBsZXZlbCBmb3IgdGhpcyBzZXJ2bGV0LgorPFA+Cis8REw+Cis8L0RMPgorPC9ETD4KKzxIUj4KKworPEgzPgoraW50ZXJuYWw8L0gzPgorPFBSRT4KKzxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL3V0aWwvTWVzc2FnZVJlc291cmNlcy5odG1sIj5NZXNzYWdlUmVzb3VyY2VzPC9BPiA8Qj5pbnRlcm5hbDwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgcmVzb3VyY2VzIG9iamVjdCBmb3Igb3VyIGludGVybmFsIHJlc291cmNlcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2ludGVybmFsTmFtZTwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5pbnRlcm5hbE5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIEphdmEgYmFzZSBuYW1lIG9mIG91ciBpbnRlcm5hbCByZXNvdXJjZXMuCis8UD4KKzxETD4KKzxEVD48Qj5TaW5jZTo8L0I+PC9EVD4KKyAgPEREPlN0cnV0cyAxLjE8L0REPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Byb2Nlc3NvcjwvSDM+Cis8UFJFPgorPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RQcm9jZXNzb3IuaHRtbCI+UmVxdWVzdFByb2Nlc3NvcjwvQT4gPEI+cHJvY2Vzc29yPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSA8Y29kZT5SZXF1ZXN0UHJvY2Vzc29yPC9jb2RlPiBpbnN0YW5jZSB3ZSB3aWxsIHVzZSB0byBwcm9jZXNzCisgYWxsIGluY29taW5nIHJlcXVlc3RzLgorPFA+Cis8REw+Cis8RFQ+PEI+U2luY2U6PC9CPjwvRFQ+CisgIDxERD5TdHJ1dHMgMS4xPC9ERD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CityZWdpc3RyYXRpb25zPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nW10gPEI+cmVnaXN0cmF0aW9uczwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgc2V0IG9mIHB1YmxpYyBpZGVudGlmaWVycywgYW5kIGNvcnJlc3BvbmRpbmcgcmVzb3VyY2UgbmFtZXMsIGZvcgorIHRoZSB2ZXJzaW9ucyBvZiB0aGUgY29uZmlndXJhdGlvbiBmaWxlIERURHMgdGhhdCB3ZSBrbm93IGFib3V0LiAgVGhlcmUKKyA8c3Ryb25nPk1VU1Q8L3N0cm9uZz4gYmUgYW4gZXZlbiBudW1iZXIgb2YgU3RyaW5ncyBpbiB0aGlzIGxpc3QhCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CitzZXJ2bGV0TWFwcGluZzwvSDM+Cis8UFJFPgoramF2YS5sYW5nLlN0cmluZyA8Qj5zZXJ2bGV0TWFwcGluZzwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgVVJMIHBhdHRlcm4gdG8gd2hpY2ggd2UgYXJlIG1hcHBlZCBpbiBvdXIgd2ViIGFwcGxpY2F0aW9uCisgZGVwbG95bWVudCBkZXNjcmlwdG9yLiAgRklYTUUgLSBtdWx0aXBsZXM/Pz8KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3NlcnZsZXROYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPnNlcnZsZXROYW1lPC9CPjwvUFJFPgorPERMPgorPEREPlRoZSBzZXJ2bGV0IG5hbWUgdW5kZXIgd2hpY2ggd2UgYXJlIHJlZ2lzdGVyZWQgaW4gb3VyIHdlYiBhcHBsaWNhdGlvbgorIGRlcGxveW1lbnQgZGVzY3JpcHRvci4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkR5bmFBY3Rpb25Gb3JtIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9EeW5hQWN0aW9uRm9ybS5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRHluYUFjdGlvbkZvcm08L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorZHluYUNsYXNzPC9IMz4KKzxQUkU+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9hY3Rpb24vRHluYUFjdGlvbkZvcm1DbGFzcy5odG1sIj5EeW5hQWN0aW9uRm9ybUNsYXNzPC9BPiA8Qj5keW5hQ2xhc3M8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIER5bmFBY3Rpb25Gb3JtQ2xhc3Mgd2l0aCB3aGljaCB3ZSBhcmUgYXNzb2NpYXRlZC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK2R5bmFWYWx1ZXM8L0gzPgorPFBSRT4KK2phdmEudXRpbC5IYXNoTWFwIDxCPmR5bmFWYWx1ZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBwcm9wZXJ0eSB2YWx1ZXMgZm9yIHRoaXMgRHluYUFjdGlvbkZvcm0sIGtleWVkIGJ5CisgcHJvcGVydHkgbmFtZS4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkR5bmFBY3Rpb25Gb3JtQ2xhc3MiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL0R5bmFBY3Rpb25Gb3JtQ2xhc3MuaHRtbCI+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkR5bmFBY3Rpb25Gb3JtQ2xhc3M8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorPEEgTkFNRT0ic2VyaWFsaXplZEZvcm0iPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTE+PEZPTlQgU0laRT0iKzIiPgorPEI+U2VyaWFsaXplZCBGaWVsZHM8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPEgzPgorY29uZmlnPC9IMz4KKzxQUkU+Cis8QSBIUkVGPSJvcmcvYXBhY2hlL3N0cnV0cy9jb25maWcvRm9ybUJlYW5Db25maWcuaHRtbCI+Rm9ybUJlYW5Db25maWc8L0E+IDxCPmNvbmZpZzwvQj48L1BSRT4KKzxETD4KKzxERD5UaGUgZm9ybSBiZWFuIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gZm9yIHRoaXMgY2xhc3MuCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+CituYW1lPC9IMz4KKzxQUkU+CitqYXZhLmxhbmcuU3RyaW5nIDxCPm5hbWU8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlICJkeW5hbWljIGNsYXNzIG5hbWUiIGZvciB0aGlzIDxjb2RlPkR5bmFDbGFzczwvY29kZT4uCis8UD4KKzxETD4KKzwvREw+Cis8L0RMPgorPEhSPgorCis8SDM+Citwcm9wZXJ0aWVzPC9IMz4KKzxQUkU+CitvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFQcm9wZXJ0eVtdIDxCPnByb3BlcnRpZXM8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBkeW5hbWljIHByb3BlcnRpZXMgdGhhdCBhcmUgcGFydCBvZiB0aGlzIER5bmFDbGFzcy4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+Cis8SFI+CisKKzxIMz4KK3Byb3BlcnRpZXNNYXA8L0gzPgorPFBSRT4KK2phdmEudXRpbC5IYXNoTWFwIDxCPnByb3BlcnRpZXNNYXA8L0I+PC9QUkU+Cis8REw+Cis8REQ+VGhlIHNldCBvZiBkeW5hbWljIHByb3BlcnRpZXMgdGhhdCBhcmUgcGFydCBvZiB0aGlzIER5bmFDbGFzcywKKyBrZXllZCBieSB0aGUgcHJvcGVydHkgbmFtZS4gIEluZGl2aWR1YWwgZGVzY3JpcHRvciBpbnN0YW5jZXMgd2lsbAorIGJlIHRoZSBzYW1lIGluc3RhbmNlcyBhcyB0aG9zZSBpbiB0aGUgPGNvZGU+cHJvcGVydGllczwvY29kZT4gbGlzdC4KKzxQPgorPERMPgorPC9ETD4KKzwvREw+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkZvcndhcmRpbmdBY3Rpb25Gb3J3YXJkIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9Gb3J3YXJkaW5nQWN0aW9uRm9yd2FyZC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRm9yd2FyZGluZ0FjdGlvbkZvcndhcmQ8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxBIE5BTUU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZWRpcmVjdGluZ0FjdGlvbkZvcndhcmQiPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlZGlyZWN0aW5nQWN0aW9uRm9yd2FyZC5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVkaXJlY3RpbmdBY3Rpb25Gb3J3YXJkPC9BPiBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZTwvQj48L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8UD4KKworPFA+Cis8QSBOQU1FPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdEFjdGlvbk1hcHBpbmciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFBBRERJTkc9IjMiIENFTExTUEFDSU5HPSIwIiBXSURUSD0iMTAwJSI+Cis8VFIgQkdDT0xPUj0iI0NDQ0NGRiIgQ0xBU1M9IlRhYmxlU3ViSGVhZGluZ0NvbG9yIj4KKzxURCBDT0xTUEFOPTI+PEZPTlQgU0laRT0iKzIiPgorPEI+Q2xhc3MgPEEgSFJFRj0ib3JnL2FwYWNoZS9zdHJ1dHMvYWN0aW9uL1JlcXVlc3RBY3Rpb25NYXBwaW5nLmh0bWwiPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0QWN0aW9uTWFwcGluZzwvQT4gaW1wbGVtZW50cyBTZXJpYWxpemFibGU8L0I+PC9GT05UPjwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPFA+CisKKzxQPgorPEEgTkFNRT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlNlc3Npb25BY3Rpb25NYXBwaW5nIj48IS0tIC0tPjwvQT4KKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZVN1YkhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4KKzxCPkNsYXNzIDxBIEhSRUY9Im9yZy9hcGFjaGUvc3RydXRzL2FjdGlvbi9TZXNzaW9uQWN0aW9uTWFwcGluZy5odG1sIj5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uU2Vzc2lvbkFjdGlvbk1hcHBpbmc8L0E+IGltcGxlbWVudHMgU2VyaWFsaXphYmxlPC9CPjwvRk9OVD48L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzxQPgorCis8UD4KKzxIUj4KKworPCEtLSA9PT09PT09PT09IFNUQVJUIE9GIE5BVkJBUiA9PT09PT09PT09IC0tPgorPEEgTkFNRT0ibmF2YmFyX2JvdHRvbSI+PCEtLSAtLT48L0E+Cis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4KKzxUUj4KKzxURCBDT0xTUEFOPTMgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4KKzxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgorPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4KKyAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Im92ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPlBhY2thZ2U8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+Q2xhc3M8L0ZPTlQ+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+VXNlPC9GT05UPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJvdmVydmlldy10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJkZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImluZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4KKyAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImhlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorPC9URD4KKzxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPgorPC9FTT4KKzwvVEQ+Cis8L1RSPgorCis8VFI+Cis8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPgorJm5ic3A7UFJFViZuYnNwOworJm5ic3A7TkVYVDwvRk9OVD48L1REPgorPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4KKyAgPEEgSFJFRj0iaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDs8QSBIUkVGPSJzZXJpYWxpemVkLWZvcm0uaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPiAgJm5ic3A7CismbmJzcDsKKzxTQ1JJUFQ+CisgIDwhLS0KKyAgaWYod2luZG93PT10b3ApIHsKKyAgICBkb2N1bWVudC53cml0ZWxuKCc8QSBIUkVGPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4nKTsKKyAgfQorICAvLy0tPgorPC9TQ1JJUFQ+Cis8Tk9TQ1JJUFQ+Cis8QSBIUkVGPSJhbGxjbGFzc2VzLW5vZnJhbWUuaHRtbCIgVEFSR0VUPSIiPjxCPkFsbCBDbGFzc2VzPC9CPjwvQT4KKzwvTk9TQ1JJUFQ+Cis8L0ZPTlQ+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPCEtLSA9PT09PT09PT09PSBFTkQgT0YgTkFWQkFSID09PT09PT09PT09IC0tPgorCis8SFI+CitDb3B5cmlnaHQgqSAyMDAwLTIwMDMgLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorPC9CT0RZPgorPC9IVE1MPgpkaWZmIC0tZ2l0IGEvc3RydXRzLWRvYy0xLjEvYXBpL3N0eWxlc2hlZXQuY3NzIGIvc3RydXRzLWRvYy0xLjEvYXBpL3N0eWxlc2hlZXQuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2MmVjYjUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtZG9jLTEuMS9hcGkvc3R5bGVzaGVldC5jc3MKQEAgLTAsMCArMSwyOSBAQAorLyogSmF2YWRvYyBzdHlsZSBzaGVldCAqLworCisvKiBEZWZpbmUgY29sb3JzLCBmb250cyBhbmQgb3RoZXIgc3R5bGUgYXR0cmlidXRlcyBoZXJlIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0cyAqLworCisvKiBQYWdlIGJhY2tncm91bmQgY29sb3IgKi8KK2JvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGIH0KKworLyogVGFibGUgY29sb3JzICovCisuVGFibGVIZWFkaW5nQ29sb3IgICAgIHsgYmFja2dyb3VuZDogI0NDQ0NGRiB9IC8qIERhcmsgbWF1dmUgKi8KKy5UYWJsZVN1YkhlYWRpbmdDb2xvciAgeyBiYWNrZ3JvdW5kOiAjRUVFRUZGIH0gLyogTGlnaHQgbWF1dmUgKi8KKy5UYWJsZVJvd0NvbG9yICAgICAgICAgeyBiYWNrZ3JvdW5kOiAjRkZGRkZGIH0gLyogV2hpdGUgKi8KKworLyogRm9udCB1c2VkIGluIGxlZnQtaGFuZCBmcmFtZSBsaXN0cyAqLworLkZyYW1lVGl0bGVGb250ICAgeyBmb250LXNpemU6IDEwcHRzOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2FuLXNlcmlmIH0KKy5GcmFtZUhlYWRpbmdGb250IHsgZm9udC1zaXplOiAxMHB0czsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbi1zZXJpZiB9CisuRnJhbWVJdGVtRm9udCAgICB7IGZvbnQtc2l6ZTogMTBwdHM7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW4tc2VyaWYgfQorCisvKiBFeGFtcGxlIG9mIHNtYWxsZXIsIHNhbnMtc2VyaWYgZm9udCBpbiBmcmFtZXMgKi8KKy8qIC5GcmFtZUl0ZW1Gb250ICB7IGZvbnQtc2l6ZTogMTBwdDsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYgfSAqLworCisvKiBOYXZpZ2F0aW9uIGJhciBmb250cyBhbmQgY29sb3JzICovCisuTmF2QmFyQ2VsbDEgICAgeyBiYWNrZ3JvdW5kLWNvbG9yOiNFRUVFRkY7fS8qIExpZ2h0IG1hdXZlICovCisuTmF2QmFyQ2VsbDFSZXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwOEI7fS8qIERhcmsgQmx1ZSAqLworLk5hdkJhckZvbnQxICAgIHsgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGNvbG9yOiMwMDAwMDA7fQorLk5hdkJhckZvbnQxUmV2IHsgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGNvbG9yOiNGRkZGRkY7fQorCisuTmF2QmFyQ2VsbDIgICAgeyBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGO30KKy5OYXZCYXJDZWxsMyAgICB7IGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBiYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkY7fQorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9leHRyYXMvUkVBRE1FLnR4dCBiL3N0cnV0cy1zYW5kYm94L2V4dHJhcy9SRUFETUUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIyY2VkNzkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9leHRyYXMvUkVBRE1FLnR4dApAQCAtMCwwICsxLDEwNiBAQAorDQorICAgIFRoaXMgcHJvamVjdCBwcm92aWRlczoNCisgICAgIC0gYWx0ZXJuYXRlIGltcGxlbWVudGF0aW9uIG9mIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlcyAoYW5kIGZhY3RvcnkpDQorICAgICAtIFN0cnV0cyBwbHVnaW4gdGhhdCBjb25maWd1cmVzIHRoZSBzcGVjaWZpZWQgc3ViY2xhc3Mgb2YNCisgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy5yZXNvdXJjZXMuQ29tbW9uc1Jlc291cmNlcyAoYW5kIGZhY3RvcnkpDQorICAgIA0KKyAgICBTZWUgdGhlIHVzZXIgZG9jdW1lbnRhdGlvbiBmb3IgZnVydGhlciBkZXRhaWxzIGFib3V0IGNvbW1vbnMtcmVzb3VyY2VzIGJleW9uZCANCisgICAgd2hhdCBpcyBwcm92aWRlZCBoZXJlIGFzIGEgUGx1Z2luIGFuZCBXcmFwcGVyLg0KKyAgICANCisgICAgIGh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9yZXNvdXJjZXMvDQorICAgIA0KKyAgICBUaGUgUmVzb3VyY2VzIHBsdWdpbiBwcm92aWRlcyBhIGNvbmZpZ3VyZWQgTWVzc2FnZVJlc291cmNlcyBpbXBsICJhcyBpZiIgaXQgDQorICAgIHdhcyBzcGVjaWZpZWQgYWJvdmUgYXMgYSA8bWVzc2FnZS1yZXNvdXJjZSAuLi4NCisgICAgDQorICAgIEF2YWlsYWJsZSBQcm9wZXJ0aWVzIGFuZCBkZWZhdWx0czoNCisgICAgDQorICAgIFByb3BlcnR5ICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgIERlZmF1bHQNCisgICAgc3RydXRzUGx1Z2luRmFjdG9yeUNsYXNzICBUaGUgZmFjdG9yeSBjbGFzcyB1c2VkIHRvICAgb3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy5yZXNvdXJjZXMuQ29tbW9uc1Jlc291cmNlc0ZhY3RvcnkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmUgdGhpcyBNb2R1bGUuDQorICAgIA0KKyAgICBpbXBsRmFjdG9yeUNsYXNzICAgICAgICAgIFRoZSBKYWthcnRhIENvbW1vbnMgICAgICAgICBvcmcuYXBhY2hlLmNvbW1vbnMucmVzb3VyY2VzLmltcGwuV2ViYXBwUHJvcGVydHlSZXNvdXJjZXNGYWN0b3J5DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VzIEZhY3RvcnkgdG8gdXNlLg0KKyAgICANCisgICAgaW1wbENsYXNzICAgICAgICAgICAgICAgICBUaGUgSmFrYXJ0YSBDb21tb25zICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnJlc291cmNlcy5pbXBsLldlYmFwcFByb3BlcnR5UmVzb3VyY2VzDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VzIGltcGxlbWVudGFpb24gDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gdXNlLg0KKyAgICANCisgICAgYnVuZGxlICAgICAgICAgICAgICAgICAgICBUaGUgcHJvcGVydGllcyBmaWxlIHRvICAgICAgKGJ1bmRsZSBpcyByZXF1aXJlZCkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkLg0KKyAgICANCisgICAgcmV0dXJuTnVsbCAgICAgICAgICAgICAgICBEZXRlcm1pbmVzIHdoZXRoZXIgYSBudWxsICAgZmFsc2UNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyByZXR1cm5lZCBpZiB0aGUgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkIGtleSBpcyBub3QgZm91bmQNCisgICAgDQorICAgIGtleSAgICAgICAgICAgICAgICAgICAgICAgVXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoICAgIG51bGwgKG5vdCBuZWVkZWQgaWYgbnVsbCkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJ1dHMgaW50ZXJuYWwgY29uc3RhbnQgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdsb2JhbHMuTUVTU0FHRV9LRVkpIHRvDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUgdGhlIGNvbmZpZ3VyZWQgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVJlc291cmNlcyBpbiB0aGUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2bGV0Q29udGV4dA0KKyAgICANCisgICAgDQorICAgIA0KKyAgICBRLiBXaHkgd291bGQgSSB1c2UgdGhpcyBpbnN0ZWFkIG9mIHRoZSBhYm92ZT8NCisgICAgQS4gQmVjYXVzZSB3aXRoIGFuIG92ZXJyaWRkZW4gRmFjdG9yeSBhbmQgcGx1Z2luIG9mIHlvdXIgb3duLCANCisgICAgICAgeW91IGNhbiBlYXNpbHkgY3VzdG9taXplIHRoZSBkZWZhdWx0IGJlaGF2aW91ciBhbmQgdW5saWtlDQorICAgICAgIHRoZSBhYm92ZSwgeW91IHdpbGwgaGF2ZSBkaXJlY3QgYWNjZXNzIHRvIHRoZSBBY3Rpb25TZXJ2bGV0Lg0KKw0KKyAKKworIEJlbG93IGlzIGFuIGV4YW1wbGUgb2YgaG93IHRvIHVzZSB0aGlzIHBsdWdpbiB3aXRoIHlvdXIgU3RydXRzIDEuMQ0KKyBpbXBsZW1lbnRhdGlvbi4NCisNCisNCisgaW4geW91ciBzdHJ1dHMtY29uZmlnLnhtbC4uLi4NCisNCisgKE5vdGUgLSB0aGUgYmVsb3cgaXMgYSBkaXJlY3QgY29weSBmcm9tIHRoZSBtb2RpZmllZCBzdHJ1dHMtZXhhbXBsZS53YXINCisgICAgICAgICB0aGF0IGRlbW9uc3RyYXRlcyB0aGlzIHBsdWdpbiBpbiBhY3Rpb24pDQorDQorLi4uDQorLi4uDQorICA8IS0tID09PT09PT09PT0gTWVzc2FnZSBSZXNvdXJjZXMgRGVmaW5pdGlvbnMgPT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPg0KKw0KKzwhLS0gc2hvd24gaGVyZSB1c2luZyBhIHN1YmNsYXNzIG9mIE1lc3NhZ2VSZXNvdXJjZXMgLS0+DQorICA8bWVzc2FnZS1yZXNvdXJjZXMgDQorICAgIGZhY3Rvcnk9Im9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMucmVzb3VyY2VzLkNvbW1vbnNSZXNvdXJjZXNGYWN0b3J5IiANCisgICAgcGFyYW1ldGVyPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAuZXhhbXBsZS5BcHBsaWNhdGlvblJlc291cmNlcyIvPg0KKw0KKyAgPG1lc3NhZ2UtcmVzb3VyY2VzDQorICAgIGZhY3Rvcnk9Im9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMucmVzb3VyY2VzLkNvbW1vbnNSZXNvdXJjZXNGYWN0b3J5IiANCisgICAgcGFyYW1ldGVyPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAuZXhhbXBsZS5BbHRlcm5hdGVBcHBsaWNhdGlvblJlc291cmNlcyINCisgICAga2V5PSJhbHRlcm5hdGUiLz4NCisNCisuLi4NCisNCisNCisNCisoYmVsb3cgaXMgaG93IHlvdSBtaWdodCBkbyB0aGlzIHdpdGggdGhlIHBsdWdpbikNCisNCisgTk9URSAtIHRoZSBzYW1lIHJ1bGUgYXBwbGllcyB3aGVyZSBpZiB5b3UgZGVmaW5lIG11bHRpcGxlIG1lc3NhZ2UtcmVzb3VyY2VzLA0KKyAgICAgICAgeW91IG11c3QgcHJvdmlkZSBhIHVuaXF1ZSBrZXkgYXR0cmlidXRlIG9yIHRoZSBsYXRlciB3aWxsIG92ZXJ3cml0ZSANCisgICAgICAgIHRoZSBmb3JtZXINCisNCisuLi4NCisgIDwhLS0gPT09PT09PT09PSBQbHVnIElucyBDb25maWd1cmF0aW9uID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+DQorLi4uDQorLi4uDQorICA8cGx1Zy1pbiBjbGFzc05hbWU9Im9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMucmVzb3VyY2VzLlJlc291cmNlc1BsdWdpbiI+DQorICAgICAgPHNldC1wcm9wZXJ0eSBwcm9wZXJ0eT0iYnVuZGxlIiANCisgICAgCXZhbHVlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAuZXhhbXBsZS5BcHBsaWNhdGlvblJlc291cmNlcyIvPg0KKyAgPC9wbHVnLWluPg0KKyAgDQorICA8cGx1Zy1pbiBjbGFzc05hbWU9Im9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMucmVzb3VyY2VzLlJlc291cmNlc1BsdWdpbiI+DQorICAgIDxzZXQtcHJvcGVydHkgcHJvcGVydHk9InN0cnV0c1BsdWdpbkZhY3RvcnlDbGFzcyIgDQorICAgIAl2YWx1ZT0ib3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy5yZXNvdXJjZXMuQ29tbW9uc1Jlc291cmNlc0ZhY3RvcnkiLz4NCisgICAgPHNldC1wcm9wZXJ0eSBwcm9wZXJ0eT0iaW1wbEZhY3RvcnlDbGFzcyIgDQorICAgIAl2YWx1ZT0ib3JnLmFwYWNoZS5jb21tb25zLnJlc291cmNlcy5pbXBsLldlYmFwcFByb3BlcnR5UmVzb3VyY2VzRmFjdG9yeSIvPg0KKyAgICA8c2V0LXByb3BlcnR5IHByb3BlcnR5PSJpbXBsQ2xhc3MiIA0KKyAgICAJdmFsdWU9Im9yZy5hcGFjaGUuY29tbW9ucy5yZXNvdXJjZXMuaW1wbC5XZWJhcHBQcm9wZXJ0eVJlc291cmNlcyIvPg0KKyAgICA8c2V0LXByb3BlcnR5IHByb3BlcnR5PSJrZXkiIA0KKyAgICAJdmFsdWU9ImFsdGVybmF0ZSIvPg0KKyAgICA8c2V0LXByb3BlcnR5IHByb3BlcnR5PSJidW5kbGUiIA0KKyAgICAJdmFsdWU9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC5leGFtcGxlLkFsdGVybmF0ZUFwcGxpY2F0aW9uUmVzb3VyY2VzIi8+DQorICA8L3BsdWctaW4+DQorLi4uDQorLi4uClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvZXh0cmFzL3Byb2plY3QucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L2V4dHJhcy9wcm9qZWN0LnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDM0MjdjNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L2V4dHJhcy9wcm9qZWN0LnByb3BlcnRpZXMKQEAgLTAsMCArMSwxOCBAQAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENvcHlyaWdodCAyMDAxLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorIyAKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjIAorIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIyAgCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworbWF2ZW4uY2hhbmdlbG9nLmZhY3RvcnkgPSBvcmcuYXBhY2hlLm1hdmVuLnN2bmxpYi5Tdm5DaGFuZ2VMb2dGYWN0b3J5CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L2V4dHJhcy9wcm9qZWN0LnhtbCBiL3N0cnV0cy1zYW5kYm94L2V4dHJhcy9wcm9qZWN0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNTc0M2FhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvZXh0cmFzL3Byb2plY3QueG1sCkBAIC0wLDAgKzEsNzkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/Pg0KKzxwcm9qZWN0Pg0KKzwhLS0gDQorLyoNCisgKiBDb3B5cmlnaHQgMjAwMS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKiANCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQorIC0tPg0KKw0KKw0KKyAgPGV4dGVuZD4uLi9wcm9qZWN0LnhtbDwvZXh0ZW5kPg0KKyAgPGFydGlmYWN0SWQ+c3RydXRzLXJlc291cmNlcy1wbHVnaW48L2FydGlmYWN0SWQ+DQorDQorICA8bmFtZT5TdHJ1dHMgUmVzb3VyY2VzIFBsdWdpbjwvbmFtZT4NCisgIA0KKyAgPHBhY2thZ2U+b3JnLmFwYWNoZS5zdHJ1dHMucGx1Z2lucy5yZXNvdXJjZXM8L3BhY2thZ2U+DQorICANCisgICAgPCEtLSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIC0tPg0KKyAgICA8IS0tICAgICAgICBQcm9qZWN0IG1hbmFnZW1lbnQgc2VjdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0+DQorICAgIDwhLS0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyAtLT4NCisNCisgIA0KKyAgPHNob3J0RGVzY3JpcHRpb24+DQorICAJUGx1Z2luIGZvciBwcm92aWRpbmcgTWVzc2FnZVJlc291cmNlcyB2aWEgY29tbW9ucy1yZXNvdXJjZXMuDQorICA8L3Nob3J0RGVzY3JpcHRpb24+DQorICANCisgIDxkZXNjcmlwdGlvbj4NCisgICAgVGhlIFJlc291cmNlcyBwbHVnaW4gYWxsb3dzIGFueSBTdHJ1dHMtYmFzZWQgd2ViIGFwcGxpY2F0aW9uIChTdHJ1dHMgdmVyc2lvbiAxLjEgYW5kIGhpZ2hlcikNCisgICAgdG8gaW50ZWdyYXRlIHRoZWlyIGV4aXN0aW5nIGFwcCB3aXRoIA0KKyAgICBjb21tb25zLXJlc291cmNlcyAoaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL3Jlc291cmNlcy8pLg0KKw0KKyAgPC9kZXNjcmlwdGlvbj4NCisgIDxyZXBvc2l0b3J5Pg0KKyAgICA8Y29ubmVjdGlvbj5zY218c3ZufGh0dHB8Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2Yvc3RydXRzL3BsdWdpbnMvdHJ1bmsvcmVzb3VyY2VzPC9jb25uZWN0aW9uPg0KKyAgICA8ZGV2ZWxvcGVyQ29ubmVjdGlvbj5zY218c3ZufGh0dHBzfC8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL3N0cnV0cy9wbHVnaW5zL3RydW5rL3Jlc291cmNlczwvZGV2ZWxvcGVyQ29ubmVjdGlvbj4NCisgICAgPHVybD5odHRwOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL3N0cnV0cy9wbHVnaW5zL3RydW5rL3Jlc291cmNlczwvdXJsPg0KKyAgPC9yZXBvc2l0b3J5Pg0KKyAgDQorICA8dmVyc2lvbnMgLz4NCisNCisgIDxkZXZlbG9wZXJzLz4NCisNCisgIDxkZXBlbmRlbmNpZXM+DQorDQorICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICA8Z3JvdXBJZD5zdHJ1dHM8L2dyb3VwSWQ+DQorICAgICAgIDxhcnRpZmFjdElkPnN0cnV0cy1hY3Rpb248L2FydGlmYWN0SWQ+DQorICAgICAgIDx2ZXJzaW9uPjEuMy4wLWRldjwvdmVyc2lvbj4NCisgICAgICAgPHByb3BlcnRpZXM+DQorICAgICAgIAkgPHdhci5idW5kbGU+dHJ1ZTwvd2FyLmJ1bmRsZT4NCisgICAgICAgICA8Y2FjdHVzLmJ1bmRsZT50cnVlPC9jYWN0dXMuYnVuZGxlPg0KKyAgICAgICA8L3Byb3BlcnRpZXM+DQorICAgICAgPHVybD5odHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvPC91cmw+DQorICAgIDwvZGVwZW5kZW5jeT4NCisNCisgICAgPGRlcGVuZGVuY3k+DQorICAgICAgPGdyb3VwSWQ+Y29tbW9ucy1yZXNvdXJjZXM8L2dyb3VwSWQ+DQorICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy1yZXNvdXJjZXM8L2FydGlmYWN0SWQ+DQorICAgICAgPHZlcnNpb24+MS4wLWRldjwvdmVyc2lvbj4NCisgICAgICA8dXJsPmh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9yZXNvdXJjZXMvPC91cmw+DQorICAgICAgPHByb3BlcnRpZXM+DQorICAgICAgICA8d2FyLmJ1bmRsZT50cnVlPC93YXIuYnVuZGxlPg0KKyAgICAgIDwvcHJvcGVydGllcz4NCisgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICANCisgIDwvZGVwZW5kZW5jaWVzPg0KKw0KKzwvcHJvamVjdD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9leHRyYXMvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9yZXNvdXJjZXMvQ29tbW9uc1Jlc291cmNlcy5qYXZhIGIvc3RydXRzLXNhbmRib3gvZXh0cmFzL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcmVzb3VyY2VzL0NvbW1vbnNSZXNvdXJjZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYjkxMmJlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvZXh0cmFzL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcmVzb3VyY2VzL0NvbW1vbnNSZXNvdXJjZXMuamF2YQpAQCAtMCwwICsxLDk4IEBACisvKg0KKyAqICRJZCQgDQorICoNCisgKiBDb3B5cmlnaHQgMjAwMywyMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKiANCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQorcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zLnJlc291cmNlczsNCisNCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsNCisNCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsNCisNCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnJlc291cmNlcy5SZXNvdXJjZXM7DQoraW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5yZXNvdXJjZXMuUmVzb3VyY2VzRmFjdG9yeTsNCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnJlc291cmNlcy5pbXBsLldlYmFwcFJlc291cmNlc0ZhY3RvcnlCYXNlOw0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXM7DQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk7DQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUmVxdWVzdFV0aWxzOw0KKw0KKy8qKg0KKyAqIENvbmNyZXRlIHN1YmNsYXNzIG9mIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IHRoYXQgd3JhcHMgYW4NCisgKiBpbnN0YW5jZSBvZiBhbiBpbXBsIG9mIHRoZSBzdXBwbGllZCANCisgKiA8Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMucmVzb3VyY2VzLlJlc291cmNlczwvY29kZT4gaW50ZXJmYWNlLg0KKyAqDQorICogQHZlcnNpb24gJFJldiQgJERhdGUkDQorICovDQorcHVibGljIGNsYXNzIENvbW1vbnNSZXNvdXJjZXMgZXh0ZW5kcyBNZXNzYWdlUmVzb3VyY2Vzew0KKw0KKyAgICBwcm90ZWN0ZWQgUmVzb3VyY2VzIHJlc291cmNlczsNCisgICAgDQorICAgIC8qKg0KKyAgICAgKiBUaGUgZGVmYXVsdCBMb2NhbGUgZm9yIG91ciBlbnZpcm9ubWVudC4NCisgICAgICovDQorICAgIHByb3RlY3RlZCBMb2NhbGUgZGVmYXVsdExvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7DQorICAgIA0KKyAgICANCisgICAgcHVibGljIENvbW1vbnNSZXNvdXJjZXMoTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgZmFjdG9yeSwNCisgICAgICAgICAgICBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCwNCisgICAgICAgICAgICBTdHJpbmcgaW1wbEZhY3RvcnlDbGFzcywgU3RyaW5nIHJlc291cmNlc0ltcGwsIA0KKyAgICAgICAgICAgIFN0cmluZyBjb25maWcsIGJvb2xlYW4gcmV0dXJuTnVsbCkgdGhyb3dzIEV4Y2VwdGlvbnsNCisgICAgICAgIHN1cGVyKGZhY3RvcnksIGNvbmZpZywgcmV0dXJuTnVsbCk7DQorICAgICAgICANCisgICAgICAgIHRyeSB7DQorICAgICAgICAgICAgUmVzb3VyY2VzRmFjdG9yeSBjb21tb25zRmFjdG9yeSA9IA0KKyAgICAgICAgICAgICAgICAoUmVzb3VyY2VzRmFjdG9yeSlSZXF1ZXN0VXRpbHMuYXBwbGljYXRpb25JbnN0YW5jZShpbXBsRmFjdG9yeUNsYXNzKTsNCisgICAgICAgICAgICBpZiAoY29tbW9uc0ZhY3RvcnkgaW5zdGFuY2VvZiBXZWJhcHBSZXNvdXJjZXNGYWN0b3J5QmFzZSkgew0KKyAgICAgICAgICAgICAgICBXZWJhcHBSZXNvdXJjZXNGYWN0b3J5QmFzZSBmYWN0b3J5QmFzZSA9IChXZWJhcHBSZXNvdXJjZXNGYWN0b3J5QmFzZSkgY29tbW9uc0ZhY3Rvcnk7DQorICAgICAgICAgICAgICAgIGZhY3RvcnlCYXNlLnNldFNlcnZsZXRDb250ZXh0KHNlcnZsZXRDb250ZXh0KTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgcmVzb3VyY2VzID0gY29tbW9uc0ZhY3RvcnkuZ2V0UmVzb3VyY2VzKHJlc291cmNlc0ltcGwsIGNvbmZpZyk7DQorICAgICAgICAgICAgDQorICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgew0KKyAgICAgICAgICAgIC8vIGxvZyBvdXRwdXQNCisgICAgICAgICAgICBsb2cuZGVidWcoZS5nZXRNZXNzYWdlKCkpOw0KKyAgICAgICAgICAgIHRocm93IGU7DQorICAgICAgICB9DQorICAgIH0NCisgICAgICAgIA0KKyAgICBwdWJsaWMgQ29tbW9uc1Jlc291cmNlcyhNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSBmYWN0b3J5LCANCisgICAgICAgICAgICBTdHJpbmcgY29uZmlnLCBib29sZWFuIHJldHVybk51bGwpIHsNCisgICAgICAgIA0KKyAgICAgICAgc3VwZXIoZmFjdG9yeSwgY29uZmlnLCByZXR1cm5OdWxsKTsNCisgICAgICAgIA0KKyAgICB9DQorDQorICAgIHB1YmxpYyBDb21tb25zUmVzb3VyY2VzKE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IGZhY3RvcnksIA0KKyAgICAgICAgICAgIFN0cmluZyBjb25maWcpIHsNCisgICAgICAgIA0KKyAgICAgICAgc3VwZXIoZmFjdG9yeSwgY29uZmlnKTsNCisgICAgICAgIA0KKyAgICB9DQorDQorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TWVzc2FnZShMb2NhbGUgbG9jYWxlLCBTdHJpbmcga2V5KSB7DQorICAgICAgICANCisgICAgICAgIC8vIGV4cGxpY2l0bHkgY2xlYXIgdGhlIGNhY2hlZCBvbiBlYWNoIGNhbGwNCisgICAgICAgIC8vIHdlIHdpbGwgY2FjaGUgdGhlbSBkb3duIGluIHRoZSBpbXBsDQorICAgICAgICAvLyBzdWNoIHRoYXQgYW55IHN1YmNsYXNzIG1heSBwcm92aWRlIGl0J3MgDQorICAgICAgICAvLyBvd24gcmVsb2FkIGNhcGFiaWxpdGllcw0KKyAgICAgICAgZm9ybWF0cy5jbGVhcigpOw0KKyAgICAgICAgcmV0dXJuIHJlc291cmNlcy5nZXRTdHJpbmcoa2V5LCBsb2NhbGUsIG51bGwpOw0KKyAgICAgICAgDQorICAgICAgICANCisgICAgfQ0KKw0KKyAgICANCisgICAgDQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L2V4dHJhcy9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3Jlc291cmNlcy9Db21tb25zUmVzb3VyY2VzRmFjdG9yeS5qYXZhIGIvc3RydXRzLXNhbmRib3gvZXh0cmFzL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcmVzb3VyY2VzL0NvbW1vbnNSZXNvdXJjZXNGYWN0b3J5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTI1ZThkZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L2V4dHJhcy9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9wbHVnaW5zL3Jlc291cmNlcy9Db21tb25zUmVzb3VyY2VzRmFjdG9yeS5qYXZhCkBAIC0wLDAgKzEsNjMgQEAKKy8qDQorICogJElkJCANCisgKg0KKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyAqIA0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKiANCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqIA0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8gDQorDQorcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zLnJlc291cmNlczsNCisNCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsNCisNCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5NZXNzYWdlUmVzb3VyY2VzOw0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5Ow0KKw0KKw0KKy8qKg0KKyAqIEZhY3RvcnkgZm9yIDxjb2RlPkNvbW1vbnNSZXNvdXJjZXM8L2NvZGU+IGluc3RhbmNlcy4gIFRoZQ0KKyAqIGNvbmZpZ3VyYXRpb24gcGFyYW10ZXIgZm9yIHN1Y2ggaW5zdGFuY2VzIGlzIHRoZSBiYXNlIEphdmEgcGFja2FnZQ0KKyAqIG5hbWUgb2YgdGhlIHJlc291cmNlcyBlbnRyaWVzIGZyb20gd2hpY2ggb3VyIGtleXMgYW5kIHZhbHVlcyB3aWxsIGJlDQorICogbG9hZGVkLg0KKyAqDQorICogQHZlcnNpb24gJFJldiQgJERhdGUkDQorICovDQorDQorcHVibGljIGNsYXNzIENvbW1vbnNSZXNvdXJjZXNGYWN0b3J5IGV4dGVuZHMgTWVzc2FnZVJlc291cmNlc0ZhY3Rvcnkgew0KKw0KKw0KKyAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQdWJsaWMgTWV0aG9kcw0KKw0KKw0KKyAgIC8qKg0KKyAgICAqIENyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3bHkgaW5zdGFuc2lhdGVkIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+Lg0KKyAgICAqIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy4NCisgICAgKg0KKyAgICAqIEBwYXJhbSBjb25maWcgQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXIocykgZm9yIHRoZSByZXF1ZXN0ZWQgYnVuZGxlDQorICAgICovDQorICAgcHVibGljIE1lc3NhZ2VSZXNvdXJjZXMgY3JlYXRlUmVzb3VyY2VzKFN0cmluZyBjb25maWcpIHsNCisNCisgICAgICAgcmV0dXJuIG5ldyBDb21tb25zUmVzb3VyY2VzKHRoaXMsIGNvbmZpZywgdGhpcy5yZXR1cm5OdWxsKTsNCisNCisgICB9DQorDQorICAgcHVibGljIE1lc3NhZ2VSZXNvdXJjZXMgY3JlYXRlUmVzb3VyY2VzKFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LCANCisgICAgICAgICAgIFN0cmluZyBpbXBsRmFjdG9yeUNsYXNzLCBTdHJpbmcgcmVzb3VyY2VzSW1wbCwgU3RyaW5nIGNvbmZpZykgdGhyb3dzIEV4Y2VwdGlvbiB7DQorDQorICAgICAgIHJldHVybiBuZXcgQ29tbW9uc1Jlc291cmNlcyh0aGlzLCBzZXJ2bGV0Q29udGV4dCwgaW1wbEZhY3RvcnlDbGFzcywgcmVzb3VyY2VzSW1wbCwgDQorICAgICAgICAgICAgICAgY29uZmlnLCB0aGlzLnJldHVybk51bGwpOw0KKw0KKyAgIH0NCisNCisNCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvZXh0cmFzL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcmVzb3VyY2VzL1Jlc291cmNlc1BsdWdpbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvZXh0cmFzL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3BsdWdpbnMvcmVzb3VyY2VzL1Jlc291cmNlc1BsdWdpbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhhYjk3YzkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9leHRyYXMvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvcGx1Z2lucy9yZXNvdXJjZXMvUmVzb3VyY2VzUGx1Z2luLmphdmEKQEAgLTAsMCArMSwxNzYgQEAKKy8qDQorICogJElkJCANCisgKg0KKyAqIENvcHlyaWdodCAyMDAzLDIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyAqIA0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKiANCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqIA0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8NCisNCisNCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnBsdWdpbnMucmVzb3VyY2VzOw0KKw0KK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7DQoraW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZ0ZhY3Rvcnk7DQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLkdsb2JhbHM7DQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0Ow0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUGx1Z0luOw0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuTW9kdWxlQ29uZmlnOw0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy51dGlsLk1lc3NhZ2VSZXNvdXJjZXM7DQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuTWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk7DQorDQorDQorLyoqDQorICogPHA+QW4gaW1wbGVtZW50YXRpb24gb2YgPGNvZGU+UGx1Z0luPC9jb2RlPiB3aGljaA0KKyAqIGNhbiBiZSBjb25maWd1cmVkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IFN0cnV0cyANCisgKiBNZXNzYWdlUmVzb3VyY2VzIGltcGxlbWVudGF0aW9uLg0KKyAqDQorICogVGhpcyBwbHVnaW4gd2FzIGNyZWF0ZWQgYWZ0ZXIgU3RydXRzIDEuMSwgYnV0IGlzDQorICogY29tcGF0aWJsZSB3aXRoIFN0cnV0cyAxLjEgYW5kIFN0cnV0cyAxLjIuDQorICoNCisgKiBAdmVyc2lvbiAkUmV2JA0KKyAqIEBzZWUgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlBsdWdJbg0KKyAqIEBzaW5jZSBTdHJ1dHMgMS4yDQorICovDQorcHVibGljIGNsYXNzIFJlc291cmNlc1BsdWdpbiBpbXBsZW1lbnRzIFBsdWdJbnsNCisgICAgDQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyhSZXNvdXJjZXNQbHVnaW4uY2xhc3MpOw0KKyAgICANCisgICAgcHJvdGVjdGVkIEFjdGlvblNlcnZsZXQgc2VydmxldCA9IG51bGw7DQorICAgIA0KKyAgICBwcm90ZWN0ZWQgTW9kdWxlQ29uZmlnIG1vZHVsZUNvbmZpZyA9IG51bGw7DQorICAgIA0KKyAgICBwcml2YXRlIFN0cmluZyBzdHJ1dHNQbHVnaW5GYWN0b3J5Q2xhc3MgPSANCisgICAgICAgICJvcmcuYXBhY2hlLnN0cnV0cy5wbHVnaW5zLnJlc291cmNlcy5Db21tb25zUmVzb3VyY2VzRmFjdG9yeSI7DQorICAgIA0KKyAgICBwcml2YXRlIFN0cmluZyBpbXBsRmFjdG9yeUNsYXNzID0gDQorICAgICAgICAib3JnLmFwYWNoZS5jb21tb25zLnJlc291cmNlcy5pbXBsLldlYmFwcFByb3BlcnR5UmVzb3VyY2VzRmFjdG9yeSI7DQorICAgIA0KKyAgICBwcml2YXRlIFN0cmluZyBpbXBsQ2xhc3MgPSANCisgICAgICAgICJvcmcuYXBhY2hlLmNvbW1vbnMucmVzb3VyY2VzLmltcGwuV2ViYXBwUHJvcGVydHlSZXNvdXJjZXMiOw0KKyAgICANCisgICAgcHJpdmF0ZSBTdHJpbmcgYnVuZGxlOw0KKyAgICANCisgICAgcHJpdmF0ZSBTdHJpbmcga2V5Ow0KKyAgICANCisgICAgcHJpdmF0ZSBib29sZWFuIHJldHVybk51bGwgPSBmYWxzZTsNCisNCisgICAgDQorICAgIHB1YmxpYyBib29sZWFuIGlzUmV0dXJuTnVsbCgpIHsNCisgICAgICAgIHJldHVybiB0aGlzLnJldHVybk51bGw7DQorICAgIH0NCisgICAgDQorDQorICAgIHB1YmxpYyB2b2lkIHNldFJldHVybk51bGwoYm9vbGVhbiByZXR1cm5OdWxsKSB7DQorICAgICAgICB0aGlzLnJldHVybk51bGwgPSByZXR1cm5OdWxsOw0KKyAgICB9DQorICAgIA0KKw0KKyAgICBwdWJsaWMgdm9pZCBpbml0KEFjdGlvblNlcnZsZXQgc2VydmxldCwgTW9kdWxlQ29uZmlnIGNvbmZpZykgew0KKyAgICAgICAgDQorICAgICAgICB0aGlzLnNlcnZsZXQgPSBzZXJ2bGV0Ow0KKyAgICAgICAgdGhpcy5tb2R1bGVDb25maWcgPSBjb25maWc7DQorICAgICAgICANCisgICAgICAgIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LnNldEZhY3RvcnlDbGFzcyh0aGlzLnN0cnV0c1BsdWdpbkZhY3RvcnlDbGFzcyk7DQorICAgICAgICBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSBmYWN0b3J5T2JqZWN0ID0NCisgICAgICAgICAgICBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5jcmVhdGVGYWN0b3J5KCk7DQorICAgICAgICANCisgICAgICAgIE1lc3NhZ2VSZXNvdXJjZXMgcmVzb3VyY2VzID0gbnVsbDsNCisgICAgICAgIGlmIChmYWN0b3J5T2JqZWN0IGluc3RhbmNlb2YgQ29tbW9uc1Jlc291cmNlc0ZhY3RvcnkpIHsNCisgICAgICAgICAgICBDb21tb25zUmVzb3VyY2VzRmFjdG9yeSBmY3RyeSA9IA0KKyAgICAgICAgICAgICAgICAoQ29tbW9uc1Jlc291cmNlc0ZhY3RvcnkpIGZhY3RvcnlPYmplY3Q7DQorICAgICAgICAgICAgdHJ5IHsNCisgICAgICAgICAgICAgICAgcmVzb3VyY2VzID0gZmN0cnkuY3JlYXRlUmVzb3VyY2VzKHNlcnZsZXQuZ2V0U2VydmxldENvbnRleHQoKSwgDQorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbXBsRmFjdG9yeUNsYXNzLCB0aGlzLmltcGxDbGFzcywgYnVuZGxlKTsNCisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgew0KKyAgICAgICAgICAgICAgICAvLyBsb2cgb3V0cHV0DQorICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhlLmdldE1lc3NhZ2UoKSk7DQorICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfWVsc2V7DQorICAgICAgICAgICAgcmVzb3VyY2VzID0NCisgICAgICAgICAgICAgICAgZmFjdG9yeU9iamVjdC5jcmVhdGVSZXNvdXJjZXModGhpcy5idW5kbGUpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgcmVzb3VyY2VzLnNldFJldHVybk51bGwodGhpcy5yZXR1cm5OdWxsKTsNCisgICAgICAgIA0KKyAgICAgICAgU3RyaW5nIGJ1bmRsZUtleSA9IHRoaXMua2V5Ow0KKyAgICAgICAgYnVuZGxlS2V5ID0gKGJ1bmRsZUtleSA9PSBudWxsID8gIiIgOiBidW5kbGVLZXkpOw0KKyAgICAgICAgU3RyaW5nIGsgPSBidW5kbGVLZXkgKyBjb25maWcuZ2V0UHJlZml4KCk7DQorICAgICAgICBpZiAoIiIuZXF1YWxzKGspKQ0KKyAgICAgICAgICAgIGsgPSBHbG9iYWxzLk1FU1NBR0VTX0tFWTsNCisgICAgICAgIA0KKyAgICAgICAgc2VydmxldC5nZXRTZXJ2bGV0Q29udGV4dCgpLnNldEF0dHJpYnV0ZShrLCByZXNvdXJjZXMpOw0KKyAgICAgICAgDQorICAgIH0NCisNCisgICAgcHVibGljIHZvaWQgZGVzdHJveSgpIHsNCisgICAgICAgIHRoaXMuc2VydmxldCA9IG51bGw7DQorICAgICAgICB0aGlzLm1vZHVsZUNvbmZpZyA9IG51bGw7DQorICAgIH0NCisNCisgICAgcHVibGljIFN0cmluZyBnZXRJbXBsRmFjdG9yeUNsYXNzKCkgew0KKyAgICAgICAgcmV0dXJuIHRoaXMuaW1wbEZhY3RvcnlDbGFzczsNCisgICAgfQ0KKyAgICANCisNCisgICAgcHVibGljIHZvaWQgc2V0SW1wbEZhY3RvcnlDbGFzcyhTdHJpbmcgaW1wbEZhY3RvcnlDbGFzcykgew0KKyAgICAgICAgdGhpcy5pbXBsRmFjdG9yeUNsYXNzID0gaW1wbEZhY3RvcnlDbGFzczsNCisgICAgfQ0KKyAgICANCisNCisgICAgcHVibGljIFN0cmluZyBnZXRTdHJ1dHNQbHVnaW5GYWN0b3J5Q2xhc3MoKSB7DQorICAgICAgICByZXR1cm4gdGhpcy5zdHJ1dHNQbHVnaW5GYWN0b3J5Q2xhc3M7DQorICAgIH0NCisgICAgDQorDQorICAgIHB1YmxpYyB2b2lkIHNldFN0cnV0c1BsdWdpbkZhY3RvcnlDbGFzcyhTdHJpbmcgc3RydXRzUGx1Z2luRmFjdG9yeUNsYXNzKSB7DQorICAgICAgICB0aGlzLnN0cnV0c1BsdWdpbkZhY3RvcnlDbGFzcyA9IHN0cnV0c1BsdWdpbkZhY3RvcnlDbGFzczsNCisgICAgfQ0KKw0KKw0KKyAgICBwdWJsaWMgU3RyaW5nIGdldEJ1bmRsZSgpIHsNCisgICAgICAgIHJldHVybiB0aGlzLmJ1bmRsZTsNCisgICAgfQ0KKyAgICANCisNCisNCisgICAgcHVibGljIHZvaWQgc2V0QnVuZGxlKFN0cmluZyBidW5kbGUpIHsNCisgICAgICAgIHRoaXMuYnVuZGxlID0gYnVuZGxlOw0KKyAgICB9DQorICAgIA0KKw0KKw0KKyAgICBwdWJsaWMgU3RyaW5nIGdldEtleSgpIHsNCisgICAgICAgIHJldHVybiB0aGlzLmtleTsNCisgICAgfQ0KKyAgICANCisNCisNCisgICAgcHVibGljIHZvaWQgc2V0S2V5KFN0cmluZyBrZXkpIHsNCisgICAgICAgIHRoaXMua2V5ID0ga2V5Ow0KKyAgICB9DQorDQorDQorICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW1wbENsYXNzKCkgew0KKyAgICAgICAgcmV0dXJuIHRoaXMuaW1wbENsYXNzOw0KKyAgICB9DQorICAgIA0KKw0KKw0KKyAgICBwdWJsaWMgdm9pZCBzZXRJbXBsQ2xhc3MoU3RyaW5nIGltcGxDbGFzcykgew0KKyAgICAgICAgdGhpcy5pbXBsQ2xhc3MgPSBpbXBsQ2xhc3M7DQorICAgIH0NCisgICAgDQorICAgIA0KKyAgICANCisgICAgDQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL0NPUFlSSUdIVC50eHQgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9DT1BZUklHSFQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4NmFjZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9DT1BZUklHSFQudHh0CkBAIC0wLDAgKzEsMTQgQEAKKworQ29weXJpZ2h0IDIwMDAtMjAwNiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgorCitMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKK3lvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KK1lvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKK1VubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKK2Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCitXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KK1NlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKK2xpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2UvTElDRU5TRS50eHQgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9MSUNFTlNFLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDViM2E1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2UvTElDRU5TRS50eHQKQEAgLTAsMCArMSwxNzQgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0CisgICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCisKKyAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgorCisgICAxLiBEZWZpbml0aW9ucy4KKworICAgICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKKyAgICAgIGFuZCBkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgorCisgICAgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQorICAgICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgorCisgICAgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCisgICAgICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCisgICAgICBjb250cm9sIHdpdGggdGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAorICAgICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCisgICAgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvcgorICAgICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCisgICAgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgorCisgICAgICAiWW91IiAob3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisgICAgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgorCisgICAgICAiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKKyAgICAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KKyAgICAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisKKyAgICAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCisgICAgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0CisgICAgICBub3QgbGltaXRlZCB0byBjb21waWxlZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCisgICAgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCisKKyAgICAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3b3JrIG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCisgICAgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCisgICAgICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsKKyAgICAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdykuCisKKyAgICAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBvciBPYmplY3QKKyAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKKyAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKKyAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLiBGb3IgdGhlIHB1cnBvc2VzCisgICAgICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KKyAgICAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKKyAgICAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCisKKyAgICAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCisgICAgICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMgb3IgYWRkaXRpb25zCisgICAgICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0aGF0IGlzIGludGVudGlvbmFsbHkKKyAgICAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKKyAgICAgIG9yIGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFsZiBvZgorICAgICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJzdWJtaXR0ZWQiCisgICAgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CisgICAgICB0byB0aGUgTGljZW5zb3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bworICAgICAgY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtcywKKyAgICAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCisgICAgICBMaWNlbnNvciBmb3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKKyAgICAgIGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3aXNlCisgICAgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKKworICAgICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFuIExpY2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKyAgICAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAorICAgICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCisKKyAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKyAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAorICAgICAgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCisgICAgICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLgorCisgICAzLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKyAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisgICAgICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhhdmUgbWFkZSwKKyAgICAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3JrLAorICAgICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKKyAgICAgIGJ5IHN1Y2ggQ29udHJpYnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCisgICAgICBDb250cmlidXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpCisgICAgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQorICAgICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKKyAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKKyAgICAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CisgICAgICBvciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vuc2VzCisgICAgICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFsbCB0ZXJtaW5hdGUKKyAgICAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKworICAgNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUKKyAgICAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAorICAgICAgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKKyAgICAgIG1lZXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCisgICAgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgorICAgICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5IG9mIHRoaXMgTGljZW5zZTsgYW5kCisKKyAgICAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKKyAgICAgICAgICBzdGF0aW5nIHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKKworICAgICAgKGMpIFlvdSBtdXN0IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCisgICAgICAgICAgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAorICAgICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCisgICAgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZgorICAgICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKKworICAgICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQgb2YgaXRzCisgICAgICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUgbXVzdAorICAgICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAorICAgICAgICAgIHdpdGhpbiBzdWNoIE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAorICAgICAgICAgIHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0IG9uZQorICAgICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCisgICAgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgorICAgICAgICAgIGRvY3VtZW50YXRpb24sIGlmIHByb3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAorICAgICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKKyAgICAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBwZWFyLiBUaGUgY29udGVudHMKKyAgICAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCisgICAgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KKyAgICAgICAgICBub3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQorICAgICAgICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3JrLCBwcm92aWRlZAorICAgICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAorICAgICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5zZS4KKworICAgICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCisgICAgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCisgICAgICBmb3IgdXNlLCByZXByb2R1Y3Rpb24sIG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCisgICAgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKKyAgICAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aAorICAgICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4KKworICAgNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAorICAgICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCisgICAgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCisgICAgICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5CisgICAgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAorICAgICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25zLgorCisgICA2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCisgICAgICBuYW1lcywgdHJhZGVtYXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCisgICAgICBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVzY3JpYmluZyB0aGUKKyAgICAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgorCisgICA3LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKKyAgICAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKKyAgICAgIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisgICAgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucworICAgICAgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQorICAgICAgUEFSVElDVUxBUiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCisgICAgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKKyAgICAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KKworICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCisgICAgICB3aGV0aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwKKyAgICAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVyYXRlIGFuZCBncm9zc2x5CisgICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQorICAgICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAorICAgICAgaW5jaWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBhCisgICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCisgICAgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCisgICAgICB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAorICAgICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgorICAgICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgorCisgICA5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCisgICAgICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLAorICAgICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKKyAgICAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCisgICAgICBMaWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBhY3Qgb25seQorICAgICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxpdHksIG5vdCBvbiBiZWhhbGYKKyAgICAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKKyAgICAgIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQorICAgICAgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgorICAgICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9SRUFETUUudHh0IGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2UvUkVBRE1FLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmQzZjNmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2UvUkVBRE1FLnR4dApAQCAtMCwwICsxLDE3IEBACitUaGlzIGRpcmVjdG9yeSBpcyBhIHdoaXRlYm9hcmQgYXJlYSBmb3Igd29ya2luZyBvbiBuZXcgbWF0ZXJpYWwgcmVsYXRlZCB0bworYSBzZXQgb2YgdHJhaW5pbmcgY291cnNlcyBiYXNlZCBvbiB0aGUgTWFpbFJlYWRlciBleGFtcGxlIGFwcGxpY2F0aW9uLgorCitBdCB0aGlzIHRpbWUsIHRoZSBtYXRlcmlhbCBpcyBiZWluZyBidWlsdCBkaXJlY3RseSB3aXRoIElERUEsIGFuZCBhIHN0YW5kYXJkCitidWlsZCBmaWxlIGlzIG5vdCB5ZXQgYXZhaWxhYmxlLgorCitGb3IgdGhlIHRpbWUgYmVpbmcsIHRoZSBkZXBlbmRlbmNpZXMgcmVxdWlyZWQgdG8gYnVpbGQgdGhpcyBtYXRlcmlhbCBtYXkgYmUKK2Rvd25sb2FkZWQgaGVyZToKKworKiBodHRwOi8vcGVvcGxlLmFwYWNoZS5vcmcvfmh1c3RlZC9zYW5kYm94LWFjdGlvbjItbGliLnppcAorCitGb3IgbW9yZSBhYm91dCB0aGUgbWF0ZXJpYWxzIHVuZGVyIGNvbnN0cnVjdGlvbiwgdmlzaXQKKworKiAqIGh0dHA6Ly9TdHJ1dHNVbml2ZXJzaXR5Lm9yZy9NYWlsUmVhZGVyK1RyYWluaW5nK0NvdXJzZQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL1NUQVRVUy50eHQgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9TVEFUVVMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxZmI1YTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9TVEFUVVMudHh0CkBAIC0wLDAgKzEsNTggQEAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorTUFMUkVBREVSIFRSQUlOSU5HIENPVVJTRSBXSElURUJPQVJEIFNUQVRVUworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9qZWN0OiAKKyAgaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnLworV2lraTogCisgIGh0dHA6Ly9zdHJ1dHN1bml2ZXJzaXR5Lm9yZy9NYWlsUmVhZGVyK1RyYWluaW5nK0NvdXJzZQorTWFpbGluZyBMaXN0czogCisgIGh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9tYWlsLmh0bWwgLS0gZGV2QCB3aXRoIFtDT1VSU0VdIGtleXdvcmQKK1NvdXJjZSBDb2RlOiAKKyAgaHR0cDovL3N2bi5hcGFjaGUub3JnL3ZpZXdjdnMuY2dpL3N0cnV0cy9zYW5kYm94L3RydW5rL21haWxyZWFkZXItY291cnNlLworQ29tbWl0dGVyczogCisgIFRlZCBIdXN0ZWQgW2FkZCB5b3VyIG5hbWUgaGVyZV0uCitTdGF0dXMgRmlsZTogCisgIGh0dHA6Ly9zdm4uYXBhY2hlLm9yZy92aWV3Y3ZzLmNnaS9zdHJ1dHMvc2FuZGJveC90cnVuay9tYWlscmVhZGVyLWNvdXJzZS9TVEFUVVMudHh0P3ZpZXc9bWFya3VwCisKK0NPVVJTRSBTVU1NQVJZIAorCitUaGUgTWFpbFJlYWRlciBUcmFpbmluZyBDb3Vyc2UgZm9yIFN0cnV0cyAyIGlzIGEgc3RlcC1ieS1zdGVwIGludHJvZHVjdGlvbiB0byAKK3RoZSBuZXh0IGdlbmVyYXRpb24gb2YgU3RydXRzIGFwcGxpY2F0aW9ucy4gQWZ0ZXIgY29tcGxldGluZyB0aGUgY291cnNlLCB5b3UgCit3aWxsIGJlIGVxdWlwcGVkIHRvIGNyZWF0ZSBhbmQgbWFpbnRhaW4gYmFzaWMgU3RydXRzIGFwcGxpY2F0aW9ucywgaW5jbHVkaW5nIAorYWxsIG5lY2Vzc2FyeSBjbGllbnQtc2lkZSBhbmQgc2VydmVyLXNpZGUgcHJvZ3JhbW1pbmcuCisKK1ByZXNlbnRhdGlvbnMgYXJlIHJlaW5mb3JjZWQgYnkgd29ya3Nob3BzIGRlc2lnbmVkIHRvIGV4cGxvcmUgY29tbW9uIHByb2JsZW1zIAorYW5kIGJlc3QtcHJhY3RpY2Ugc29sdXRpb25zLiBUaGlzIGNvdXJzZSBpcyBpbnRlbmRlZCBmb3IgZGV2ZWxvcGVycyB3aG8gd2FudCAKK2ZpZWxkLXNhdnZ5IGFkdmljZSBvbiBob3cgdG8gZ2V0IHlvdXIgYXBwbGljYXRpb25zIHdvcmtpbmcgdGhlICJTdHJ1dHMgMiBXYXkiLiAKKworQ09VUlNFIE9CSkVDVElWRVMKKworICogUHJlc2VudCBhbmQgYXBwbHkgTVZDIGFwcGxpY2F0aW9uIGFyY2hpdGVjdHVyZQorICogQnVpbGQgYSB3b3JraW5nIHdlYiBhcHBsaWNhdGlvbgorICogVW5kZXJzdGFuZCBob3cgdG8gdW5pdCB0ZXN0IHdlYiBhcHBsaWNhdGlvbnMKKyAqIEV4cGxvcmUga2V5IGJlc3QgcHJhY3RpY2VzCisgKiBVc2UgcG9wdWxhciBleHRlbnNpb25zIHRvIGluY3JlYXNlIHByb2R1Y3Rpdml0eQorCitBVURJRU5DRQorCitEZXZlbG9wZXJzIGFuZCBwcm9ncmFtbWVycyB3aG8gd2FudCB0byBsZWFybiBhYm91dCB3ZWIgYXBwbGljYXRpb24gCitkZXZlbG9wbWVudCB1c2luZyBBcGFjaGUgU3RydXRzIEFjdGlvbiBmcmFtZXdvcmtzLgorCitQUkVSRVFVSVNJVEVTCisKK1RvIGJlbmVmaXQgZnJvbSB0aGUgdHJhaW5pbmcgY291cnNlLCBzdHVkZW50cyBzaG91bGQgaGF2ZSBleHBlcmllbmNlIAorcHJvZ3JhbW1pbmcgd2l0aCBKYXZhIGFsb25nIHdpdGggYSBiYXNpYyBrbm93bGVkZ2Ugb2YgaHRtbC4gRXhwZXJpZW5jZSB3aXRoIGEgCittb2Rlcm4gSmF2YSBJREUsIHN1Y2ggYXMgTmV0QmVhbnMsIEVjbGlwc2UsIG9yIElERUEsIGlzIGFsc28gYmVuZWZpY2lhbC4KKworU09VUkNFIENPREUKKworQW4gZXhhbXBsZSBvZiBlYWNoIGNvbXBsZXRlZCBsYWIgaXMgcHJvdmlkZWQgaW4gYSBmb2xkZXIgbmFtZWQgZm9yIHRoZSAKK2NvcnJlc3BvbmRpbmcgdXNlIGNhc2UuIAorCitTRVNTU0lPTiBOT1RFUyAKKworTm90ZXMgZm9yIHRoZSBwcmVzZW50YXRpb24gaW50cm9kdWNpbmcgZWFjaCB3b3Jrc2hvcCBhcmUgbWFpbnRhaW5lZCBvbiB0aGUgCitTdHJ1dHMgVW5pdmVyc2l0eSB3aWtpLiBGb3IgdGhlIG5vdGVzIGFuZCBhIHNlc3Npb24gb3V0bGluZSBzZWU6IAorCisgKiBodHRwOi8vU3RydXRzVW5pdmVyc2l0eS5vcmcvTWFpbFJlYWRlcitUcmFpbmluZytDb3Vyc2UKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTEtc3JjL3dlYmFwcC9NYWluTWVudS5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMS1zcmMvd2ViYXBwL01haW5NZW51LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmVkMWM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTEtc3JjL3dlYmFwcC9NYWluTWVudS5qc3AKQEAgLTAsMCArMSwxMCBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWJlYW4iIHByZWZpeD0iYmVhbiIgJT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPk1haW4gTWVudTwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgzPldlbGNvbWUgPGJlYW46d3JpdGUgbmFtZT0iUmVnaXN0ZXJGb3JtIiBwcm9wZXJ0eT0idXNlcm5hbWUiLz4gITwvaDM+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMS1zcmMvd2ViYXBwL1JlZ2lzdGVyRm9ybS5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMS1zcmMvd2ViYXBwL1JlZ2lzdGVyRm9ybS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc1NDllYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0xLXNyYy93ZWJhcHAvUmVnaXN0ZXJGb3JtLmpzcApAQCAtMCwwICsxLDE0IEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtaHRtbCIgcHJlZml4PSJodG1sIiAlPgorPGh0bWw6aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPlJlZ2lzdGVyIEZvcm08L3RpdGxlPgorICAgIDwvaGVhZD4KKworICAgIDxib2R5PgorICAgIDxodG1sOmVycm9ycy8+CisgICAgPGh0bWw6Zm9ybSBhY3Rpb249Ii9SZWdpc3RlclNhdmUiPgorICAgICAgICBVc2VybmFtZTogPGh0bWw6dGV4dCBwcm9wZXJ0eT0idXNlcm5hbWUiLz48YnI+CisgICAgICAgIDxodG1sOnN1Ym1pdCB2YWx1ZT0iUmVnaXN0ZXIiLz4KKyAgICA8L2h0bWw6Zm9ybT4KKyAgICA8L2JvZHk+Cis8L2h0bWw6aHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0xLXNyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0xLXNyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzU4NGU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTEtc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sCkBAIC0wLDAgKzEsMzEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IURPQ1RZUEUgc3RydXRzLWNvbmZpZyBQVUJMSUMKKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMS4zLy9FTiIKKyAgICAgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy1jb25maWdfMV8zLmR0ZCI+Cis8c3RydXRzLWNvbmZpZz4KKworICAgIDxmb3JtLWJlYW5zPgorICAgICAgICA8Zm9ybS1iZWFuCisgICAgICAgICAgICAgICAgbmFtZT0iUmVnaXN0ZXJGb3JtIgorICAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5EeW5hVmFsaWRhdG9yRm9ybSI+CisgICAgICAgICAgICA8Zm9ybS1wcm9wZXJ0eQorICAgICAgICAgICAgICAgICAgICBuYW1lPSJ1c2VybmFtZSIKKyAgICAgICAgICAgICAgICAgICAgdHlwZT0iamF2YS5sYW5nLlN0cmluZyIvPgorICAgICAgICA8L2Zvcm0tYmVhbj4KKyAgICA8L2Zvcm0tYmVhbnM+CisKKyAgICA8YWN0aW9uLW1hcHBpbmdzCisgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdEFjdGlvbk1hcHBpbmciPgorCisgICAgICAgIDxhY3Rpb24gcGF0aD0iL1JlZ2lzdGVyIgorICAgICAgICAgICAgICAgIG5hbWU9IlJlZ2lzdGVyRm9ybSIKKyAgICAgICAgICAgICAgICBmb3J3YXJkPSIvUmVnaXN0ZXJGb3JtLmpzcCIKKyAgICAgICAgICAgICAgICB2YWxpZGF0ZT0iZmFsc2UiLz4KKworICAgICAgICA8YWN0aW9uIHBhdGg9Ii9SZWdpc3RlclNhdmUiCisgICAgICAgICAgICAgICAgZXh0ZW5kcz0iL1JlZ2lzdGVyIgorICAgICAgICAgICAgICAgIGZvcndhcmQ9Ii9NYWluTWVudS5qc3AiLz4KKworICAgIDwvYWN0aW9uLW1hcHBpbmdzPgorCis8L3N0cnV0cy1jb25maWc+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMS1zcmMvd2ViYXBwL1dFQi1JTkYvc3RydXRzLWZvcm0udGxkIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTEtc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1mb3JtLnRsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTU2ZWU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTEtc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1mb3JtLnRsZApAQCAtMCwwICsxLDE2OTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgdGFnbGliIFBVQkxJQyAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIEpTUCBUYWcgTGlicmFyeSAxLjEvL0VOIiAiaHR0cDovL2phdmEuc3VuLmNvbS9qMmVlL2R0ZHMvd2ViLWpzcHRhZ2xpYnJhcnlfMV8xLmR0ZCI+Cis8dGFnbGliPgorICAgIDx0bGlidmVyc2lvbj4xLjA8L3RsaWJ2ZXJzaW9uPgorICAgIDxqc3B2ZXJzaW9uPjEuMTwvanNwdmVyc2lvbj4KKyAgICA8c2hvcnRuYW1lPmZvcm08L3Nob3J0bmFtZT4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5iYXNlPC9uYW1lPgorICAgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZVRhZzwvdGFnY2xhc3M+CisgICAgICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+YnV0dG9uPC9uYW1lPgorICAgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQnV0dG9uVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5jYW5jZWw8L25hbWU+CisgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DYW5jZWxUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5jaGVja2JveDwvbmFtZT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNoZWNrYm94VGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5lcnJvcnM8L25hbWU+CisgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5FcnJvcnNUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8Ym9keWNvbnRlbnQ+ZW1wdHk8L2JvZHljb250ZW50PgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmZpbGU8L25hbWU+CisgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5GaWxlVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXB0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tYXhsZW5ndGg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+Zm9ybTwvbmFtZT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZvcm1UYWc8L3RhZ2NsYXNzPgorICAgICAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZW5jdHlwZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Zm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1ldGhvZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25yZXNldDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25zdWJtaXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFyZ2V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50eXBlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+aGlkZGVuPC9uYW1lPgorICAgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSGlkZGVuVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+aHRtbDwvbmFtZT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkh0bWxUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxvY2FsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+eGh0bWw8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5pbWFnZTwvbmFtZT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltYWdlVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxvY2FsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3JjPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhdGg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmlzS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+bGluazwvbmFtZT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mb3J3YXJkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5ocmVmPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5saW5rTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1JZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1OYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbVByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbVNjb3BlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFyZ2V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+bXVsdGlib3g8L25hbWU+CisgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5NdWx0aWJveFRhZzwvdGFnY2xhc3M+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+b3B0aW9uPC9uYW1lPgorICAgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5vcHRpb25zPC9uYW1lPgorICAgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uc1RhZzwvdGFnY2xhc3M+CisgICAgICAgIDxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5jb2xsZWN0aW9uPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sYWJlbE5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxhYmVsUHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+cGFzc3dvcmQ8L25hbWU+CisgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5QYXNzd29yZFRhZzwvdGFnY2xhc3M+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1heGxlbmd0aDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zaXplPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5yYWRpbzwvbmFtZT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJhZGlvVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnJlc2V0PC9uYW1lPgorICAgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmVzZXRUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+cmV3cml0ZTwvbmFtZT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJld3JpdGVUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8Ym9keWNvbnRlbnQ+ZW1wdHk8L2JvZHljb250ZW50PgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Zm9yd2FyZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aHJlZjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+c2VsZWN0PC9uYW1lPgorICAgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU2VsZWN0VGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm11bHRpcGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zaXplPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnN1Ym1pdDwvbmFtZT4KKyAgICAgICAgPHRhZ2NsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlN1Ym1pdFRhZzwvdGFnY2xhc3M+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnRleHQ8L25hbWU+CisgICAgICAgIDx0YWdjbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0VGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1heGxlbmd0aDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2l6ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnRleHRhcmVhPC9uYW1lPgorICAgICAgICA8dGFnY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVGV4dGFyZWFUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5jb2xzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnJvd3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorPC90YWdsaWI+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0xLXNyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtaHRtbC50bGQgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMS1zcmMvd2ViYXBwL1dFQi1JTkYvc3RydXRzLWh0bWwudGxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NDg0M2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMS1zcmMvd2ViYXBwL1dFQi1JTkYvc3RydXRzLWh0bWwudGxkCkBAIC0wLDAgKzEsODc1MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSB0YWdsaWIKKyAgICAgICAgUFVCTElDICItLy9TdW4gTWljcm9zeXN0ZW1zLCBJbmMuLy9EVEQgSlNQIFRhZyBMaWJyYXJ5IDEuMi8vRU4iCisgICAgICAgICJodHRwOi8vamF2YS5zdW4uY29tL2R0ZC93ZWItanNwdGFnbGlicmFyeV8xXzIuZHRkIj4KKzx0YWdsaWI+CisgICAgPHRsaWItdmVyc2lvbj4xLjM8L3RsaWItdmVyc2lvbj4KKyAgICA8anNwLXZlcnNpb24+MS4yPC9qc3AtdmVyc2lvbj4KKyAgICA8c2hvcnQtbmFtZT5odG1sPC9zaG9ydC1uYW1lPgorICAgIDx1cmk+aHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtaHRtbDwvdXJpPgorICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgPCFbQ0RBVEFbCisgIDxwPgorICAgICAgICBUaGlzIHRhZ2xpYiBjb250YWlucyB0YWdzIHVzZWQgdG8gY3JlYXRlIHN0cnV0cworICAgICAgICBpbnB1dCBmb3JtcywgYXMgd2VsbCBhcyBvdGhlciB0YWdzIGdlbmVyYWxseSB1c2VmdWwKKyAgICAgICAgICAgICAgICBpbiB0aGUgY3JlYXRpb24gb2YgSFRNTC1iYXNlZCB1c2VyIGludGVyZmFjZXMuCisgIDwvcD4KKworICA8cD5NYW55IG9mIHRoZSB0YWdzIGluIHRoaXMgdGFnIGxpYnJhcnkgd2lsbCB0aHJvdyBhCisgIDxjb2RlPkpzcEV4Y2VwdGlvbjwvY29kZT4gYXQgcnVudGltZSB3aGVuIHRoZXkgYXJlIHV0aWxpemVkIGluY29ycmVjdGx5CisgIChzdWNoIGFzIHdoZW4geW91IHNwZWNpZnkgYW4gaW52YWxpZCBjb21iaW5hdGlvbiBvZiB0YWcgYXR0cmlidXRlcykuICBKU1AKKyAgYWxsb3dzIHlvdSB0byBkZWNsYXJlIGFuICJlcnJvciBwYWdlIiBpbiB0aGUgPGNvZGU+Jmx0OyVAIHBhZ2UgJSZndDs8L2NvZGU+CisgIGRpcmVjdGl2ZS4gIElmIHlvdSB3aXNoIHRvIHByb2Nlc3MgdGhlIGFjdHVhbCBleGNlcHRpb24gdGhhdCBjYXVzZWQgdGhlCisgIHByb2JsZW0sIGl0IGlzIHBhc3NlZCB0byB0aGUgZXJyb3IgcGFnZSBhcyBhIHJlcXVlc3QgYXR0cmlidXRlIHVuZGVyIGtleQorICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRVhDRVBUSU9OPC9jb2RlPi48L3A+CisgIF1dPgorICAgIDwvZGVzY3JpcHRpb24+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+YmFzZTwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+ZW1wdHk8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPlJlbmRlciBhbiBIVE1MIDxjb2RlPiZsdDtiYXNlJmd0OzwvY29kZT4gRWxlbWVudDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICA8cD5SZW5kZXJzIGFuIEhUTUwgPGNvZGU+Jmx0O2Jhc2UmZ3Q7PC9jb2RlPiBlbGVtZW50IHdpdGggYW4KKyAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUgcG9pbnRpbmcgdG8gdGhlIGFic29sdXRlIGxvY2F0aW9uIG9mCisgICAgICAgICAgdGhlIGVuY2xvc2luZyBKU1AgcGFnZS4gIFRoaXMgdGFnIGlzIHZhbGlkIG9ubHkgd2hlbiBuZXN0ZWQgaW5zaWRlCisgICAgICAgICAgYW4gSFRNTCA8Y29kZT4mbHQ7aGVhZCZndDs8L2NvZGU+IGVsZW1lbnQuPC9wPgorCisgICAgICAgICAgPHA+VGhpcyB0YWcgaXMgdXNlZnVsIGJlY2F1c2UgaXQgYWxsb3dzIHlvdSB0byB1c2UgcmVsYXRpdmUgVVJMCisgICAgICAgICAgcmVmZXJlbmNlcyBpbiB0aGUgcGFnZSB0aGF0IGFyZSBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBVUkwgb2YgdGhlCisgICAgICAgICAgcGFnZSBpdHNlbGYsIHJhdGhlciB0aGFuIHRoZSBVUkwgdG8gd2hpY2ggdGhlIG1vc3QgcmVjZW50IHN1Ym1pdAorICAgICAgICAgIHRvb2sgcGxhY2UgKHdoaWNoIGlzIHdoZXJlIHRoZSBicm93c2VyIHdvdWxkIG5vcm1hbGx5IHJlc29sdmUKKyAgICAgICAgICByZWxhdGl2ZSByZWZlcmVuY2VzIGFnYWluc3QpLjwvcD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhcmdldDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgIDxwPlRoZSB3aW5kb3cgdGFyZ2V0IGZvciB0aGlzIGJhc2UgcmVmZXJlbmNlLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zZXJ2ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICA8cD5UaGUgc2VydmVyIG5hbWUgdG8gdXNlIGluc3RlYWQgb2YgcmVxdWVzdC5nZXRTZXJ2ZXJOYW1lKCkuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnJlZjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgIDxwPlRoZSByZWZlcmVuY2UgZnJvbSB3aGljaCB0aGUgYmFzZSB1cmkgd2lsbCBjcmVhdGVkLiAgUG9zc2libGUgdmFsdWVzIGFyZToKKyAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxjb2RlPnBhZ2U8L2NvZGU+IC0gVGhlIGJhc2UgdXJpIHdpbGwgYmUgdGhlIGpzcCBwYWdlIGxvY2F0aW9uLiAoZGVmYXVsdCk8L2xpPgorICAgICAgICAgICAgICAgIDxsaT48Y29kZT5zaXRlPC9jb2RlPiAtIFRoZSBiYXNlIHVyaSB3aWxsIGJlIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0IHBhdGguPC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMzwvZGQ+PC9kbD4KKworICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5idXR0b248L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQnV0dG9uVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgQSBCdXR0b24gSW5wdXQgRmllbGQ8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUKKyAgICAgICAgICAgICAgICA8Y29kZT5idXR0b248L2NvZGU+LCBwb3B1bGF0ZWQgZnJvbSB0aGUgc3BlY2lmaWVkIHZhbHVlIG9yIHRoZQorICAgICAgICAgICAgICAgIGNvbnRlbnQgb2YgdGhpcyB0YWcgYm9keS4gVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuIG5lc3RlZAorICAgICAgICAgICAgICAgIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuCisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICBJZiBhIGdyYXBoaWNhbCBidXR0b24gaXMgbmVlZGVkIChhIGJ1dHRvbiB3aXRoIGFuIGltYWdlKSwgdGhlbiB0aGUKKyAgICAgICAgICAgICA8YSBocmVmPSIjaW1hZ2UiPjxjb2RlPmltYWdlPC9jb2RlPjwvYT4gdGFnIGlzIG1vcmUgYXBwcm9wcmlhdGUuCisgICAgICAgICAgICA8L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgPHA+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuPC9wPgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgPHA+U2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuPC9wPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VmFsaWQgb25seSBpbnNpZGUgb2YgPGNvZGU+bG9naWM6aXRlcmF0ZTwvY29kZT4gdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJwcm9wZXJ0eU5hbWVbMzRdIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkIGZvcgorICAgICAgICAgICAgICAgIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsdWUgb2YgdGhlIGxhYmVsIHRvIGJlIHBsYWNlZCBvbiB0aGlzIGJ1dHRvbi4gVGhpcyB2YWx1ZSB3aWxsCisgICAgICAgICAgICAgICAgYWxzbyBiZSBzdWJtaXR0ZWQgYXMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXJhbWV0ZXIuCisgICAgICAgICAgICAgICAgW0JvZHkgb2YgdGhpcyB0YWcgKGlmIGFueSksIG9yICJDbGljayJdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmNhbmNlbDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DYW5jZWxUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIGEgQ2FuY2VsIEJ1dHRvbgorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUgc3VibWl0LiBUaGlzIHRhZyBpcyBvbmx5CisgICAgICAgICAgICAgICAgdmFsaWQgd2hlbiBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS4gUHJlc3Npbmcgb2YgdGhpcyBzdWJtaXQKKyAgICAgICAgICAgICAgICBidXR0b24gY2F1c2VzIHRoZSBhY3Rpb24gc2VydmxldCB0byBieXBhc3MgY2FsbGluZyB0aGUgYXNzb2NpYXRlZAorICAgICAgICAgICAgICAgIGZvcm0gYmVhbiB2YWxpZGF0ZSgpIG1ldGhvZC4gVGhlIGFjdGlvbiBpcyBjYWxsZWQgbm9ybWFsbHkuCisgICAgICAgICAgICA8L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgICAgIDxzdHJvbmc+V0FSTklORzwvc3Ryb25nPiAtIElmIHlvdSBzZXQgdGhpcyBhdHRyaWJ1dGUgdG8gYQorICAgICAgICAgICAgICAgIHZhbHVlIG90aGVyIHRoYW4gdGhlIGRlZmF1bHQsIHRoaXMgd2lsbCA8ZW0+Tk9UPC9lbT4gYmUKKyAgICAgICAgICAgICAgICByZWNvZ25pemVkIGFzIHRoZSBjYW5jZWwga2V5IGJ5IHRoZSBTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0CisgICAgICAgICAgICAgICAgb3IgdGhlIDxjb2RlPkFjdGlvbi5pc0NhbmNlbGxlZCgpPC9jb2RlPiBtZXRob2QuICBZb3Ugd2lsbAorICAgICAgICAgICAgICAgIG5lZWQgdG8gZG8geW91ciBvd24gY2FuY2VsIGRldGVjdGlvbi4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbHVlIG9mIHRoZSBsYWJlbCB0byBiZSBwbGFjZWQgb24gdGhpcyBidXR0b24uIFRoaXMgdmFsdWUgd2lsbAorICAgICAgICAgICAgICAgIGFsc28gYmUgc3VibWl0dGVkIGFzIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHJlcXVlc3QgcGFyYW1ldGVyLgorICAgICAgICAgICAgICAgIFtCb2R5IG9mIHRoaXMgdGFnIChpZiBhbnkpLCBvciAiQ2FuY2VsIl0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+Y2hlY2tib3g8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2hlY2tib3hUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgQ2hlY2tib3ggSW5wdXQgRmllbGQKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5jaGVja2JveDwvY29kZT4sIHBvcHVsYXRlZCBmcm9tIHRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIG9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlIGJlYW4gYXNzb2NpYXRlZAorICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBvdXIgY3VycmVudCBmb3JtLiBUaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LjwvcD4KKworICAgICAgICAgICAgPHA+PHN0cm9uZz5OT1RFPC9zdHJvbmc+OiAgVGhlIHVuZGVybHlpbmcgcHJvcGVydHkgdmFsdWUKKyAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZpZWxkIHNob3VsZCBiZSBvZiB0eXBlIDxjb2RlPmJvb2xlYW48L2NvZGU+LAorICAgICAgICAgICAgYW5kIGFueSA8Y29kZT52YWx1ZTwvY29kZT4geW91IHNwZWNpZnkgc2hvdWxkIGNvcnJlc3BvbmQgdG8gb25lCisgICAgICAgICAgICBvZiB0aGUgU3RyaW5ncyB0aGF0IGluZGljYXRlIGEgdHJ1ZSB2YWx1ZSAoInRydWUiLCAieWVzIiwgb3IKKyAgICAgICAgICAgICJvbiIpLiAgSWYgeW91IHdpc2ggdG8gdXRpbGl6ZSBhIHNldCBvZiByZWxhdGVkIFN0cmluZyB2YWx1ZXMsCisgICAgICAgICAgICBjb25zaWRlciB1c2luZyB0aGUgPGNvZGU+bXVsdGlib3g8L2NvZGU+IHRhZy48L3A+CisKKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+V0FSTklORzwvc3Ryb25nPjogIEluIG9yZGVyIHRvIGNvcnJlY3RseQorICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXplIHVuY2hlY2tlZCBjaGVja2JveGVzLCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgZm9ybQorICAgICAgICAgICAgICAgICAgICAgICAgbXVzdCBpbmNsdWRlIGEgc3RhdGVtZW50IHNldHRpbmcgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gcHJvcGVydHkgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IGluIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+cmVzZXQoKTwvY29kZT4gbWV0aG9kLjwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgorCisgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4sIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4gYW5kIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGVzIGFuZCBzaG91bGQgYmUgc2V0IHRvCisgICAgICAgICAgICAgICAgICB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZQorICAgICAgICAgICAgICAgICAgJmx0O2h0bWw6ZXJyb3JzLyZndDsgdGFnLjwvcD4gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlQ2xhc3M8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiA8Y29kZT5sb2dpYzppdGVyYXRlPC9jb2RlPiB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgImlkWzM0XS5wcm9wZXJ0eU5hbWUiLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBjb25zdWx0ZWQgd2hlbgorICAgICAgICAgICAgICAgIHJlbmRlcmluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIGlucHV0IGZpZWxkLiBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybSB0YWcgd2UgYXJlIG5lc3RlZCB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIGJlIHRyYW5zbWl0dGVkIGlmIHRoaXMgY2hlY2tib3ggaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuICBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHZhbHVlICJvbiIgd2lsbCBiZSByZXR1cm5lZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+ZXJyb3JzPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkVycm9yc1RhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PmVtcHR5PC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgICAgICBDb25kaXRpb25hbGx5IGRpc3BsYXkgYSBzZXQgb2YgYWNjdW11bGF0ZWQgZXJyb3IgbWVzc2FnZXMuCisgICAgICAgICAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgICAgIDxwPkRpc3BsYXlzIGEgc2V0IG9mIGVycm9yIG1lc3NhZ2VzIHByZXBhcmVkIGJ5IGEgYnVzaW5lc3MKKyAgICAgICAgICAgICAgICBsb2dpYyBjb21wb25lbnQgYW5kIHN0b3JlZCBhcyBhbiA8Y29kZT5BY3Rpb25NZXNzYWdlczwvY29kZT4KKyAgICAgICAgICAgICAgICBvYmplY3QsIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4KKyAgICAgICAgICAgICAgICBvYmplY3QsIGEgU3RyaW5nLCBvciBhIFN0cmluZyBhcnJheSBpbiByZXF1ZXN0IHNjb3BlLiAgSWYKKyAgICAgICAgICAgICAgICBzdWNoIGEgYmVhbiBpcyBub3QgZm91bmQsIG5vdGhpbmcgd2lsbCBiZSByZW5kZXJlZC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5JbiBvcmRlciB0byB1c2UgdGhpcyB0YWcgc3VjY2Vzc2Z1bGx5LCB5b3UgbXVzdCBoYXZlCisgICAgICAgICAgICAgICAgZGVmaW5lZCBhbiBhcHBsaWNhdGlvbiBzY29wZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPgorICAgICAgICAgICAgICAgIGJlYW4gdW5kZXIgdGhlIGRlZmF1bHQgYXR0cmlidXRlIG5hbWUsIHdpdGggb3B0aW9uYWwKKyAgICAgICAgICAgICAgICBkZWZpbml0aW9ucyBvZiBtZXNzYWdlIGtleXMgc3BlY2lmaWVkIGluIHRoZSBmb2xsb3dpbmcKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+aGVhZGVyPC9zdHJvbmc+IC0gVGV4dCB0aGF0IHdpbGwgYmUgcmVuZGVyZWQKKyAgICAgICAgICAgICAgICBiZWZvcmUgdGhlIGVycm9yIG1lc3NhZ2VzIGxpc3QuICBUeXBpY2FsbHksIHRoaXMgbWVzc2FnZSB0ZXh0CisgICAgICAgICAgICAgICAgd2lsbCBlbmQgd2l0aCA8Y29kZT4mbHQ7dWwmZ3Q7PC9jb2RlPiB0byBzdGFydCB0aGUKKyAgICAgICAgICAgICAgICBlcnJvciBtZXNzYWdlcyBsaXN0IChkZWZhdWx0ICJlcnJvcnMuaGVhZGVyIikuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5mb290ZXI8L3N0cm9uZz4gLSBUZXh0IHRoYXQgd2lsbCBiZSByZW5kZXJlZAorICAgICAgICAgICAgICAgIGFmdGVyIHRoZSBlcnJvciBtZXNzYWdlcyBsaXN0LiAgVHlwaWNhbGx5LCB0aGlzIG1lc3NhZ2UgdGV4dAorICAgICAgICAgICAgICAgIHdpbGwgYmVnaW4gd2l0aCA8Y29kZT4mbHQ7L3VsJmd0OzwvY29kZT4gdG8gZW5kIHRoZSBlcnJvcgorICAgICAgICAgICAgICAgIG1lc3NhZ2VzIGxpc3QgKGRlZmF1bHQgImVycm9ycy5mb290ZXIiKS48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnByZWZpeDwvc3Ryb25nPiAtIFRleHQgdGhhdCB3aWxsIGJlIHJlbmRlcmVkCisgICAgICAgICAgICAgICAgYmVmb3JlIGVhY2ggaW5kaXZpZHVhbCBlcnJvciBpbiB0aGUgbGlzdCAoZGVmYXVsdCAiZXJyb3JzLnByZWZpeCIpLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+c3VmZml4PC9zdHJvbmc+IC0gVGV4dCB0aGF0IHdpbGwgYmUgcmVuZGVyZWQKKyAgICAgICAgICAgICAgICBhZnRlciBlYWNoIGluZGl2aWR1YWwgZXJyb3IgaW4gdGhlIGxpc3QgKGRlZmF1bHQgImVycm9ycy5zdWZmaXgiKS48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgPHA+U2VlIHRoZSA8Y29kZT5tZXNzYWdlczwvY29kZT4gdGFnIGZvciBhbiBhbHRlcm5hdGl2ZSB0byB0aGlzIHRhZyB0aGF0CisgICAgICAgICAgICAgICAgICAgIGRvZXMgbm90IHJlbHkgb24gSFRNTCBpbiB5b3VyIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+LjwvcD4KKworICAgICAgICAgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZvb3RlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBUaGlzIHZhbHVlIGlzIGFuIG9wdGlvbmFsIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IHRoYXQgd2lsbAorICAgICAgICAgICAgICAgICAgYmUgcHJpbnRlZCBhZnRlciB0aGUgaXRlcmF0aW9uIG9mIGVycm9yIG1lc3NhZ2VzIGhhcyBmaW5pc2hlZC4KKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICJlcnJvcnMuZm9vdGVyIiBpZiBub3Qgc3BlY2lmaWVkLgorICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aGVhZGVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIFRoaXMgdmFsdWUgaXMgYW4gb3B0aW9uYWwgbWVzc2FnZSByZXNvdXJjZSBrZXkgdGhhdCB3aWxsCisgICAgICAgICAgICAgICAgICBiZSBwcmludGVkIGJlZm9yZSB0aGUgaXRlcmF0aW9uIG9mIGVycm9yIG1lc3NhZ2VzIGJlZ2lucy4KKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICJlcnJvcnMuaGVhZGVyIiBpZiBub3Qgc3BlY2lmaWVkLgorICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bG9jYWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3IgdGhlIExvY2FsZSB1c2VkIHRvIHNlbGVjdAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcyB0byBiZSBkaXNwbGF5ZWQuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0bworICAgICAgICAgICAgICAgICAgICB0aGUgU3RydXRzIHN0YW5kYXJkIHZhbHVlLgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggb3VyIGVycm9yIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByZWZpeDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBUaGlzIHZhbHVlIGlzIGFuIG9wdGlvbmFsIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IHRoYXQgd2lsbAorICAgICAgICAgICAgICAgICAgYmUgcHJpbnRlZCBiZWZvcmUgYW4gZXJyb3IgbWVzc2FnZS4KKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICJlcnJvcnMucHJlZml4IiBpZiBub3Qgc3BlY2lmaWVkLgorICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHkgZm9yIHdoaWNoIGVycm9yIG1lc3NhZ2VzIHNob3VsZCBiZQorICAgICAgICAgICAgICAgICAgZGlzcGxheWVkLiAgSWYgbm90IHNwZWNpZmllZCwgYWxsIGVycm9yIG1lc3NhZ2VzIChyZWdhcmRsZXNzCisgICAgICAgICAgICAgICAgICBvZiBwcm9wZXJ0eSkgYXJlIGRpc3BsYXllZC4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdWZmaXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgVGhpcyB2YWx1ZSBpcyBhbiBvcHRpb25hbCBtZXNzYWdlIHJlc291cmNlIGtleSB0aGF0IHdpbGwKKyAgICAgICAgICAgICAgICAgIGJlIHByaW50ZWQgYWZ0ZXIgYW4gZXJyb3IgbWVzc2FnZS4KKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICJlcnJvcnMuc3VmZml4IiBpZiBub3Qgc3BlY2lmaWVkLgorICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmZpbGU8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRmlsZVRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgQSBGaWxlIFNlbGVjdCBJbnB1dCBGaWVsZAorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUgZmlsZSwgZGVmYXVsdGluZyB0bworICAgICAgICAgICAgICAgIHRoZSBzcGVjaWZpZWQgdmFsdWUgb3IgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgYmVhbgorICAgICAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCBvdXIgY3VycmVudCBmb3JtLiBUaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4KKyAgICAgICAgICAgICAgICBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIEFzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQsIHRoZQorICAgICAgICAgICAgICAgIGVuY2xvc2luZyBmb3JtIGVsZW1lbnQgbXVzdCBzcGVjaWZ5ICJQT1NUIiBmb3IgdGhlIDxjb2RlPm1ldGhvZDwvY29kZT4KKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUsIGFuZCAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgZm9yIHRoZSA8Y29kZT5lbmN0eXBlPC9jb2RlPgorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZS4gRm9yIGV4YW1wbGU6CisgICAgICAgICAgICA8L3A+CisgICAgPHByZT4KKyAgICAmbHQ7aHRtbDpmb3JtIG1ldGhvZD0iUE9TVCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSImZ3Q7CisgICAgICAgICZsdDtodG1sOmZpbGUgcHJvcGVydHk9InRoZUZpbGUiIC8mZ3Q7CisgICAgJmx0Oy9odG1sOmZvcm0mZ3Q7PC9wcmU+CisKKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgV0FSTklORzogSW4gb3JkZXIgdG8gY29ycmVjdGx5IHJlY29nbml6ZSB1cGxvYWRlZCBmaWxlcywgdGhlIEFjdGlvbkZvcm0gYmVhbgorICAgICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZm9ybSBtdXN0IGluY2x1ZGUgYSBzdGF0ZW1lbnQgc2V0dGluZyB0aGUgY29ycmVzcG9uZGluZworICAgICAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkZvcm1GaWxlIHByb3BlcnR5IHRvIG51bGwgaW4gdGhlIHJlc2V0KCkgbWV0aG9kLgorICAgICAgICAgICAgPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXB0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDb21tYS1kZWxpbWl0ZWQgc2V0IG9mIGNvbnRlbnQgdHlwZXMgdGhhdCB0aGUgc2VydmVyIHlvdSBzdWJtaXQgdG8KKyAgICAgICAgICAgICAgICBrbm93cyBob3cgdG8gcHJvY2Vzcy4gVGhpcyBsaXN0IGNhbiBiZSB1c2VkIGJ5IHRoZSBjbGllbnQgYnJvd3NlcgorICAgICAgICAgICAgICAgIHRvIGxpbWl0IHRoZSBzZXQgb2YgZmlsZSBvcHRpb25zIHRoYXQgaXMgbWFkZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbi4KKyAgICAgICAgICAgICAgICBJZiBub3Qgc3BlY2lmaWVkLCBubyBjb250ZW50IHR5cGUgbGlzdCB3aWxsIGJlIHNlbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TmFtZSBvZiB0aGUgcmVxdWVzdCBzY29wZSBiZWFuIHVuZGVyIHdoaWNoIG91ciBlcnJvciBtZXNzYWdlcworICAgICAgICAgICAgICAgICAgaGF2ZSBiZWVuIHN0b3JlZC4gIElmIG5vdCBwcmVzZW50LCB0aGUgbmFtZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5HbG9iYWxzLkVSUk9SX0tFWTwvY29kZT4gY29uc3RhbnQgc3RyaW5nIHdpbGwgYmUgdXNlZC48L3A+CisKKyAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBUaGlzIGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPiwgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPiBhbmQgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZXMgYW5kIHNob3VsZCBiZSBzZXQgdG8KKyAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgb24gdGhlCisgICAgICAgICAgICAgICAgICAmbHQ7aHRtbDplcnJvcnMvJmd0OyB0YWcuPC9wPiAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZTwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVDbGFzczwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIDxjb2RlPmxvZ2ljOml0ZXJhdGU8L2NvZGU+IHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bWF4bGVuZ3RoPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBNYXhpbXVtIG51bWJlciBvZiBpbnB1dCBjaGFyYWN0ZXJzIHRvIGFjY2VwdC4gIFRoaXMgaXMgaWdub3JlZAorICAgICAgICAgICAgICAgIGJ5IG1vc3QgYnJvd3NlcnMuIFtObyBsaW1pdF0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkIHdoZW4KKyAgICAgICAgICAgICAgICByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBpbnB1dCBmaWVsZC4gSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFnIHdlIGFyZSBuZXN0ZWQgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoaXMKKyAgICAgICAgICAgICAgICBzdWJtaXNzaW9uLCBzZXQgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zaXplPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBTaXplIG9mIHRoZSBmaWxlIHNlbGVjdGlvbiBib3ggdG8gYmUgZGlzcGxheWVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgPHN0cm9uZz5OT1RFPC9zdHJvbmc+OiBXaGVuIHNldHRpbmcgdGhpcyB0byBzb21lIHZhbHVlLCB3aGV0aGVyCisgICAgICAgICAgICAgICAgaW50ZW50aW9uYWwgb3IgYXMgdGhlIHJlc3VsdCAoZm9yIGV4YW1wbGUpIG9mIHZhbGlkYXRpb24gZXJyb3JzIAorICAgICAgICAgICAgICAgIGZvcmNpbmcgdGhlIHVzZXIgYmFjayB0byB0aGUgb3JpZ2luYWwganNwLCB0aGlzIHZhbHVlIGlzIGlnbm9yZWQgCisgICAgICAgICAgICAgICAgYnkgbW9zdCBicm93c2VycyAoZm9yIHNlY3VyaXR5IHJlYXNvbnMpLgorICAgICAgICAgICAgICAgIFRoaXMgbWVhbnMgdGhhdCB5b3VyIHVzZXJzIHdpbGwgaGF2ZSB0byByZS1zZWxlY3QgYW55IHByZXZpb3VzbHkKKyAgICAgICAgICAgICAgICBzZWxlY3RlZCBmaWxlcyB3aGVuIHN1Ym1pdHRpbmcgdGhlIGZvcm0uICBPcGVyYSB3ZWIgYnJvd3NlciB3aWxsCisgICAgICAgICAgICAgICAgcHJvbXB0IHRoZSB1c2VyIHNvIHRoZXkgaGF2ZSBhIGNoYW5jZSB0byBhYm9ydCB0aGUgc3VibWl0LgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgICAgIFZhbHVlIHRvIHdoaWNoIHRoaXMgZmllbGQgc2hvdWxkIGJlIGluaXRpYWxpemVkLiBbVXNlIHRoZQorICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eSB2YWx1ZSBvciBib2R5IGNvbnRlbnQgKGlmIGFueSkgaWYgCisgICAgICAgICAgICAgICAgcHJvcGVydHkgaXMgbm90IHNwZWNpZmllZF0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+Zm9ybTwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5Gb3JtVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+SlNQPC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIERlZmluZSBBbiBJbnB1dCBGb3JtCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7Zm9ybSZndDsgZWxlbWVudCB3aG9zZSBjb250ZW50cyBhcmUgZGVzY3JpYmVkCisgICAgICAgICAgICAgICAgYnkgdGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZy4gVGhlIGZvcm0gaW1wbGljaXRseSBpbnRlcmFjdHMKKyAgICAgICAgICAgICAgICB3aXRoIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBzY29wZSBvciBzZXNzaW9uIHNjb3BlIGJlYW4gdG8gcG9wdWxhdGUKKyAgICAgICAgICAgICAgICB0aGUgaW5wdXQgZmllbGRzIHdpdGggdGhlIGN1cnJlbnQgcHJvcGVydHkgdmFsdWVzIGZyb20gdGhlIGJlYW4uCisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBUaGUgZm9ybSBiZWFuIGlzIGxvY2F0ZWQsIGFuZCBjcmVhdGVkIGlmIG5lY2Vzc2FyeSwgYmFzZWQgb24gdGhlIAorICAgICAgICAgICAgICAgIGZvcm0gYmVhbiBzcGVjaWZpY2F0aW9uIGZvciB0aGUgYXNzb2NpYXRlZCA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPi4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhlIFVSTCB0byB3aGljaCB0aGlzIGZvcm0gd2lsbCBiZSBzdWJtaXR0ZWQuICBUaGlzCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBpcyBhbHNvIHVzZWQgdG8gc2VsZWN0IHRoZSBBY3Rpb25NYXBwaW5nIHdlIGFyZQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzdW1lZCB0byBiZSBwcm9jZXNzaW5nLCBmcm9tIHdoaWNoIHdlIGNhbiBpZGVudGlmeQorICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGFwcHJvcHJpYXRlIGZvcm0gYmVhbiBhbmQgc2NvcGUuICBJZiBhIHZhbHVlIGlzIG5vdAorICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZWQsIHRoZSBvcmlnaW5hbCBVUkkgKHNlcnZsZXRQYXRoKSBmb3IgdGhlIHJlcXVlc3QgaXMgCisgICAgICAgICAgICAgICAgICAgICAgICB1c2VkLiA8L3A+CisKKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPklmIHlvdSBhcmUgdXNpbmcgZXh0ZW5zaW9uIG1hcHBpbmcgZm9yIHNlbGVjdGluZyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIgc2VydmxldCwgdGhpcyB2YWx1ZSBzaG91bGQgYmUgZXF1YWwgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5wYXRoPC9jb2RlPiBhdHRyaWJ1dGUgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPiZsdDthY3Rpb24mZ3Q7PC9jb2RlPiBlbGVtZW50LCBvcHRpb25hbGx5CisgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dlZCBieSB0aGUgY29ycmVjdCBleHRlbnNpb24gc3VmZml4LjwvcD4KKworICAgICAgICAgICAgICAgICAgICAgICAgPHA+SWYgeW91IGFyZSB1c2luZyBwYXRoIG1hcHBpbmcgdG8gc2VsZWN0IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlciBzZXJ2bGV0LCB0aGlzIHZhbHVlIHNob3VsZCBiZSBleGFjdGx5IGVxdWFsCisgICAgICAgICAgICAgICAgICAgICAgICB0byB0aGUgPGNvZGU+cGF0aDwvY29kZT4gYXR0cmlidXRlIG9mIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT4mbHQ7YWN0aW9uJmd0OzwvY29kZT4gZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXB0Q2hhcnNldDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGxpc3Qgb2YgY2hhcmFjdGVyIGVuY29kaW5ncyBmb3IgaW5wdXQgZGF0YSB0aGF0IHRoZSBzZXJ2ZXIgc2hvdWxkCisgICAgICAgICAgICAgICAgYWNjZXB0LgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuMjwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIEZvcm0ncyBpbnB1dCBmaWVsZHMgc2hvdWxkIGJlCisgICAgICAgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi43PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lbmN0eXBlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgY29udGVudCBlbmNvZGluZyB0byBiZSB1c2VkIHRvIHN1Ym1pdCB0aGlzIGZvcm0sIGlmIHRoZSBtZXRob2QKKyAgICAgICAgICAgICAgICBpcyBQT1NULiBUaGlzIG11c3QgYmUgc2V0IHRvICJtdWx0aXBhcnQvZm9ybS1kYXRhIiBpZiB5b3UgYXJlIHVzaW5nCisgICAgICAgICAgICAgICAgdGhlIGZpbGUgdGFnIHRvIGVuYWJsZSBmaWxlIHVwbG9hZC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIGJyb3dzZXIKKyAgICAgICAgICAgICAgICBkZWZhdWx0IChub3JtYWxseSAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikgaXMgdXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGZpZWxkIG5hbWUgKGFtb25nIHRoZSBmaWVsZHMgb24gdGhpcyBmb3JtKSB0byB3aGljaCBpbml0aWFsCisgICAgICAgICAgICAgICAgZm9jdXMgd2lsbCBiZSBhc3NpZ25lZCB3aXRoIGEgSmF2YVNjcmlwdCBmdW5jdGlvbi4gSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICBubyBzcGVjaWFsIEphdmFTY3JpcHQgZm9yIHRoaXMgcHVycG9zZSB3aWxsIGJlIHJlbmRlcmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZvY3VzSW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElmIHRoZSBmb2N1cyBmaWVsZCBpcyBhIGZpZWxkIGFycmF5LCBzdWNoIGFzIGEgcmFkaW8gYnV0dG9uIGdyb3VwLCB5b3UgY2FuIAorICAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIGluZGV4IGluIHRoZSBhcnJheSB0byByZWNlaXZlIGZvY3VzLgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjE8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1ldGhvZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIEhUVFAgbWV0aG9kIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHN1Ym1pdCB0aGlzIHJlcXVlc3QKKyAgICAgICAgICAgICAgICAoR0VULCBQT1NUKS4gW1BPU1RdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25yZXNldDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIGlmIHRoZSBmb3JtIGlzIHJlc2V0LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uc3VibWl0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgaWYgdGhlIGZvcm0gaXMgc3VibWl0dGVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnJlYWRvbmx5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBGb3JtJ3MgaW5wdXQgZmllbGRzIHNob3VsZCBiZQorICAgICAgICAgICAgICAgIHJlYWQgb25seS4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjc8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjcmlwdExhbmd1YWdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGZvcm0ncyBmb2N1cyAmbHQ7c2NyaXB0Jmd0OyBlbGVtZW50IHdpbGwgbm90IGNvbnRhaW4gYSBsYW5ndWFnZSBhdHRyaWJ1dGUKKyAgICAgICAgICAgICAgICB3aGVuIHRoaXMgaXMgc2V0IHRvIGZhbHNlLiAgVGhlIGRlZmF1bHQgaXMgdHJ1ZSBidXQgdGhpcyBwcm9wZXJ0eSBpcyBpZ25vcmVkCisgICAgICAgICAgICAgICAgaW4gWEhNVEwgbW9kZS4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yPC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhcmdldDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgV2luZG93IHRhcmdldCB0byB3aGljaCB0aGlzIGZvcm0gaXMgc3VibWl0dGVkLCBzdWNoIGFzCisgICAgICAgICAgICAgICAgZm9yIHVzZSBpbiBmcmFtZWQgcHJlc2VudGF0aW9ucy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+ZnJhbWU8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRnJhbWVUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPlJlbmRlciBhbiBIVE1MIGZyYW1lIGVsZW1lbnQ8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisKKyAgICAgICAgICAgIDxwPlJlbmRlcnMgYW4gSFRNTCA8Y29kZT4mbHQ7ZnJhbWUmZ3Q7PC9jb2RlPiBlbGVtZW50CisgICAgICAgICAgICB3aXRoIHByb2Nlc3NpbmcgZm9yIHRoZSA8Y29kZT5zcmM8L2NvZGU+IGF0dHJpYnV0ZSB0aGF0IGlzCisgICAgICAgICAgICBpZGVudGljYWwgdG8gdGhhdCBwZXJmb3JtZWQgYnkgdGhlIDxjb2RlPiZsdDtodG1sOmxpbmsmZ3Q7PC9jb2RlPgorICAgICAgICAgICAgdGFnIGZvciB0aGUgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLiAgVVJMIHJld3JpdGluZyB3aWxsIGJlCisgICAgICAgICAgICBhcHBsaWVkIGF1dG9tYXRpY2FsbHksIHRvIG1haW50YWluIHNlc3Npb24gc3RhdGUgaW4gdGhlCisgICAgICAgICAgICBhYnNlbmNlIG9mIGNvb2tpZXMuPC9wPgorCisgICAgICAgICAgICA8cD5UaGUgYmFzZSBVUkwgZm9yIHRoaXMgZnJhbWUgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbgorICAgICAgICAgICAgd2hpY2ggb2YgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIHlvdSBzcGVjaWZ5ICh5b3UgbXVzdAorICAgICAgICAgICAgc3BlY2lmeSBleGFjdGx5IG9uZSBvZiB0aGVtKTo8L3A+CisgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICA8bGk+PGVtPmZvcndhcmQ8L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgYXMgdGhlCisgICAgICAgICAgICAgICAgbmFtZSBvZiBhIGdsb2JhbCA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiB0byBiZSBsb29rZWQKKyAgICAgICAgICAgICAgICB1cCwgYW5kIHVzZSB0aGUgbW9kdWxlLXJlbGF0aXZlIG9yIGNvbnRleHQtcmVsYXRpdmUKKyAgICAgICAgICAgICAgICBVUkkgZm91bmQgdGhlcmUuPC9saT4KKyAgICAgICAgICAgIDxsaT48ZW0+aHJlZjwvZW0+IC0gVXNlIHRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSB1bmNoYW5nZWQuCisgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIDxsaT48ZW0+cGFnZTwvZW0+IC0gVXNlIHRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSBhcyBhCisgICAgICAgICAgICAgICAgbW9kdWxlLXJlbGF0aXZlIFVSSSwgYW5kIGdlbmVyYXRlIGEgc2VydmVyLXJlbGF0aXZlCisgICAgICAgICAgICAgICAgVVJJIGJ5IGluY2x1ZGluZyB0aGUgY29udGV4dCBwYXRoIGFuZCBhcHBsaWNhdGlvbgorICAgICAgICAgICAgICAgIHByZWZpeC48L2xpPgorICAgICAgICAgICAgPGxpPjxlbT5hY3Rpb248L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgYXMgdGhlCisgICAgICAgICAgICAgICAgbG9naWNhbCBuYW1lIG9mIGEgZ2xvYmFsIEFjdGlvbiB0aGF0IGNvbnRhaW5zIHRoZSBhY3R1YWwgCisgICAgICAgICAgICAgICAgY29udGVudC1yZWxhdGl2ZSBVUkkgb2YgdGhlIGRlc3RpbmF0aW9uIG9mIHRoaXMgdHJhbnNmZXIuPC9saT4KKyAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDxwPk5vcm1hbGx5LCB0aGUgaHlwZXJsaW5rIHlvdSBzcGVjaWZ5IHdpdGggb25lIG9mIHRoZQorICAgICAgICAgICAgYXR0cmlidXRlcyBkZXNjcmliZWQgaW4gdGhlIHByZXZpb3VzIHBhcmFncmFwaCB3aWxsIGJlIGxlZnQKKyAgICAgICAgICAgIHVuY2hhbmdlZCAob3RoZXIgdGhhbiBVUkwgcmV3cml0aW5nIGlmIG5lY2Vzc2FyeSkuICBIb3dldmVyLAorICAgICAgICAgICAgdGhlcmUgYXJlIHR3byB3YXlzIHlvdSBjYW4gYXBwZW5kIG9uZSBvciBtb3JlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICBkZWZpbmVkIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gdGhlIGh5cGVybGluayAtLSBzcGVjaWZ5IGEgc2luZ2xlCisgICAgICAgICAgICBwYXJhbWV0ZXIgd2l0aCB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4gYXR0cmlidXRlIChhbmQgaXRzCisgICAgICAgICAgICBhc3NvY2lhdGVkIGF0dHJpYnV0ZXMgdG8gc2VsZWN0IHRoZSB2YWx1ZSksIG9yIHNwZWNpZnkgdGhlCisgICAgICAgICAgICA8Y29kZT5uYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsIDxjb2RlPnByb3BlcnR5PC9jb2RlPikKKyAgICAgICAgICAgIGF0dHJpYnV0ZXMgdG8gc2VsZWN0IGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gYmVhbiB0aGF0CisgICAgICAgICAgICBjb250YWlucyBvbmUgb3IgbW9yZSBwYXJhbWV0ZXIgaWRzIGFuZCBjb3JyZXNwb25kaW5nIHZhbHVlcy4KKyAgICAgICAgICAgIDwvcD4KKworICAgICAgICAgICAgPHA+VG8gc3BlY2lmeSBhIHNpbmdsZSBwYXJhbWV0ZXIsIHVzZSB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4KKyAgICAgICAgICAgIGF0dHJpYnV0ZSB0byBkZWZpbmUgdGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGJlCisgICAgICAgICAgICBzdWJtaXR0ZWQuICBUbyBzcGVjaWZ5IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlLCB1c2Ugb25lIG9mIHRoZQorICAgICAgICAgICAgZm9sbG93aW5nIGFwcHJvYWNoZXM6PC9wPgorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IG9ubHkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlPC9lbT4KKyAgICAgICAgICAgICAgICAtIFRoZSBuYW1lZCBKU1AgYmVhbiAob3B0aW9uYWxseSBzY29wZWQgYnkgdGhlIHZhbHVlIG9mIHRoZQorICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IGF0dHJpYnV0ZSkgbXVzdCBpZGVudGlmeSBhIHZhbHVlCisgICAgICAgICAgICAgICAgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgU3RyaW5nLjwvbGk+CisgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgYm90aCB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhbmQKKyAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzPC9lbT4gLSBUaGUgc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgcHJvcGVydHkgZ2V0dGVyIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgSlNQIGJlYW4KKyAgICAgICAgICAgICAgICBpZGVudGlmaWVkIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPikgYXR0cmlidXRlcywgaW4gb3JkZXIgdG8gc2VsZWN0CisgICAgICAgICAgICAgICAgYSB2YWx1ZSB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuPC9saT4KKyAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDxwPklmIHlvdSBwcmVmZXIgdG8gc3BlY2lmeSBhIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IHRoYXQKKyAgICAgICAgICAgIGNvbnRhaW5zIGFsbCBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzIHRvIGJlIGFkZGVkIHRvIHRoZQorICAgICAgICAgICAgaHlwZXJsaW5rLCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdGVjaG5pcXVlczo8L3A+CisgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgb25seSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlPC9lbT4gLQorICAgICAgICAgICAgICAgIFRoZSBuYW1lZCBKU1AgYmVhbiAob3B0aW9uYWxseSBzY29wZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICAgICAgdGhlIDxjb2RlPnNjb3BlPC9jb2RlPiBhdHRyaWJ1dGUpIG11c3QgaWRlbnRpZnkgYQorICAgICAgICAgICAgICAgIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMuPC9saT4KKyAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBib3RoIDxjb2RlPm5hbWU8L2NvZGU+IGFuZAorICAgICAgICAgICAgICAgIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzPC9lbT4gLSBUaGUgc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgcHJvcGVydHkgZ2V0dGVyIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgYmVhbgorICAgICAgICAgICAgICAgIGlkZW50aWZpZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICA8Y29kZT5zY29wZTwvY29kZT4pIGF0dHJpYnV0ZXMsIGluIG9yZGVyIHRvIHJldHVybiB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzLjwvbGk+CisgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8cD5BcyB0aGUgPGNvZGU+TWFwPC9jb2RlPiBpcyBwcm9jZXNzZWQsIHRoZSBrZXlzIGFyZSBhc3N1bWVkCisgICAgICAgICAgICB0byBiZSB0aGUgbmFtZXMgb2YgcXVlcnkgcGFyYW1ldGVycyB0byBiZSBhcHBlbmRlZCB0byB0aGUKKyAgICAgICAgICAgIGh5cGVybGluay4gIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBrZXkgbXVzdCBiZSBlaXRoZXIKKyAgICAgICAgICAgIGEgU3RyaW5nIG9yIGEgU3RyaW5nIGFycmF5IHJlcHJlc2VudGluZyB0aGUgcGFyYW1ldGVyIHZhbHVlKHMpLAorICAgICAgICAgICAgb3IgYW4gb2JqZWN0IHdob3NlIHRvU3RyaW5nKCkgbWV0aG9kIHdpbGwgYmUgY2FsbGVkLgorICAgICAgICAgICAgSWYgYSBTdHJpbmcgYXJyYXkgaXMgc3BlY2lmaWVkLCBtb3JlIHRoYW4gb25lIHZhbHVlIGZvciB0aGUKKyAgICAgICAgICAgIHNhbWUgcXVlcnkgcGFyYW1ldGVyIG5hbWUgd2lsbCBiZSBjcmVhdGVkLjwvcD4KKworICAgICAgICAgICAgPHA+QWRkaXRpb25hbGx5LCB5b3UgY2FuIHJlcXVlc3QgdGhhdCB0aGUgY3VycmVudCB0cmFuc2FjdGlvbgorICAgICAgICAgICAgY29udHJvbCB0b2tlbiwgaWYgYW55LCBiZSBpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluaworICAgICAgICAgICAgYnkgc2V0dGluZyB0aGUgPGNvZGU+dHJhbnNhY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSB0bworICAgICAgICAgICAgPGNvZGU+dHJ1ZTwvY29kZT4uCisgICAgICAgICAgICBZb3UgY2FuIGFsc28gcmVxdWVzdCB0aGF0IGFuIGFuY2hvciAoIiN4eHgiKSBiZSBhZGRlZCB0byB0aGUKKyAgICAgICAgICAgIGVuZCBvZiB0aGUgVVJMIHRoYXQgaXMgY3JlYXRlZCBieSBhbnkgb2YgdGhlIGFib3ZlIG1lY2hhbmlzbXMsCisgICAgICAgICAgICBieSB1c2luZyB0aGUgPGNvZGU+YW5jaG9yPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorCisgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICA8cD5Mb2dpY2FsIG5hbWUgb2YgYSBnbG9iYWwgPGNvZGU+QWN0aW9uPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICBjb250YWlucyB0aGUgYWN0dWFsIGNvbnRlbnQtcmVsYXRpdmUgVVJJIG9mIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgICAgb2YgdGhpcyB0cmFuc2Zlci4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgbW9kaWZpZWQgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQKKyAgICAgICAgICAgICAgIGluIHRoZSB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLAorICAgICAgICAgICAgICAgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAKKwkJICAgICAgIDxwPkFkZGl0aW9uYWxseSwgeW91IGNhbiBzcGVjaWZ5IGEgPGNvZGU+bW9kdWxlPC9jb2RlPiBwcmVmaXggCisJCQkgICBmb3IgbGlua2luZyB0byBvdGhlciBtb2R1bGVzLjwvcD4KKwkJCQkJCSAgIAorCQkgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bW9kdWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKwkJCSAgIDxwPlByZWZpeCBuYW1lIG9mIGEgPGNvZGU+TW9kdWxlPC9jb2RlPiB0aGF0CisJCSAgICAgICBjb250YWlucyB0aGUgYWN0aW9uIG1hcHBpbmcgZm9yIHRoZSA8Y29kZT5BY3Rpb248L2NvZGU+CisJCSAgICAgICB0aGF0IGlzIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUuCisJCSAgICAgICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgYW4gPGNvZGU+YWN0aW9uPC9jb2RlPiAKKwkJICAgICAgIGF0dHJpYnV0ZSBmb3IgdGhpcyB0byBoYXZlIGFuIGVmZmVjdC48L3A+CisJCQorCQkgICAgICAgPHA+PHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz5Vc2UgIiIgdG8gbWFwIHRvIHRoZSBkZWZhdWx0IG1vZHVsZS48L3A+CisJCSAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFuY2hvcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+T3B0aW9uYWwgYW5jaG9yIHRhZyAoIiN4eHgiKSB0byBiZSBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgaHlwZXJsaW5rLiAgU3BlY2lmeSB0aGlzIHZhbHVlIDxzdHJvbmc+d2l0aG91dDwvc3Ryb25nPiBhbnkKKyAgICAgICAgICAgICAgICAiIyIgY2hhcmFjdGVyLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mb3J3YXJkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5Mb2dpY2FsIG5hbWUgb2YgYSBnbG9iYWwgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgIGNvbnRhaW5zIHRoZSBhY3R1YWwgY29udGVudC1yZWxhdGl2ZSBVUkkgb2YgdGhlIGRlc3RpbmF0aW9uCisgICAgICAgICAgICAgICAgb2YgdGhpcyB0cmFuc2Zlci4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgIG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkCisgICAgICAgICAgICAgICAgaW4gdGhlIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsCisgICAgICAgICAgICAgICAgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZyYW1lYm9yZGVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5TaG91bGQgYSBmcmFtZSBib3JkZXIgYmUgZ2VuZXJhdGVkIGFyb3VuZCB0aGlzIGZyYW1lICgxKQorICAgICAgICAgICAgICAgIG9yIG5vdCAoMCk/PC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZyYW1lTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VmFsdWUgZm9yIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgb2YgdGhlIHJlbmRlcmVkCisgICAgICAgICAgICAgICAgPGNvZGU+Jmx0O2ZyYW1lJmd0OzwvY29kZT4gZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aHJlZjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIFVSTCB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAgaWYgYWN0aXZhdGVkLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5IG1vZGlmaWVkCisgICAgICAgICAgICAgICAgIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkIGluIHRoZQorICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLAorICAgICAgICAgICAgICAgICBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bG9uZ2Rlc2M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlVSSSBvZiBhIGxvbmcgZGVzY3JpcHRpb24gb2YgdGhlIGZyYW1lLiAgVGhpcyBkZXNjcmlwdGlvbgorICAgICAgICAgICAgICAgIHNob3VsZCBzdXBwbGVtZW50IHRoZSBzaG9ydCBkZXNjcmlwdGlvbiBwcm92aWRlZCBieSB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT50aXRsZTwvY29kZT4gYXR0cmlidXRlLCBhbmQgbWF5IGJlIHBhcnRpY3VsYXJseSB1c2VmdWwKKyAgICAgICAgICAgICAgICBmb3Igbm9uLXZpc3VhbCB1c2VyIGFnZW50cy48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bWFyZ2luaGVpZ2h0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmphdmEubGFuZy5JbnRlZ2VyPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbW91bnQgb2Ygc3BhY2UgKGluIHBpeGVscykgdG8gYmUgbGVmdCBiZXR3ZWVuIHRoZQorICAgICAgICAgICAgICAgIGZyYW1lJ3MgY29udGVudHMgYW5kIGl0cyB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tYXJnaW53aWR0aDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5qYXZhLmxhbmcuSW50ZWdlcjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIHNwYWNlIChpbiBwaXhlbHMpIHRvIGJlIGxlZnQgYmV0d2VlbiB0aGUKKyAgICAgICAgICAgICAgICBmcmFtZSdzIGNvbnRlbnRzIGFuZCBpdHMgbGVmdCBhbmQgcmlnaHQgbWFyZ2lucy48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGNvbnRhaW5zIGEgPGNvZGU+TWFwPC9jb2RlPgorICAgICAgICAgICAgICAgIHJlcHJlc2VudGluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzCisgICAgICAgICAgICAgICAgY2FsbGVkIHRvIHJldHVybiBhIDxjb2RlPk1hcDwvY29kZT4gKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgIGlzIHNwZWNpZmllZCkuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5vcmVzaXplPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+U2hvdWxkIHVzZXJzIGJlIGRpc2FsbG93ZWQgZnJvbSByZXNpemluZyB0aGUgZnJhbWU/CisgICAgICAgICAgICAgICAgKHRydWUsIGZhbHNlKS48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIChiZWdpbm5pbmcgd2l0aCBhICIvIgorICAgICAgICAgICAgICAgIGNoYXJhY3RlcikgdG8gd2hpY2ggdGhpcyBoeXBlcmxpbmsgd2lsbCB0cmFuc2ZlciBjb250cm9sCisgICAgICAgICAgICAgICAgIGlmIGFjdGl2YXRlZC4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZAorICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGV4YWN0bHkKKyAgICAgICAgICAgICAgICAgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgICAgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuICBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcworICAgICAgICAgICAgICAgIGRlZmluZWQgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYW5kIChvcHRpb25hbCkKKyAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzLCBvcHRpb25hbGx5IHNjb3BlZCBieQorICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBhdHRyaWJ1dGU8L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1OYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgaXMgYSBTdHJpbmcgY29udGFpbmluZyB0aGUKKyAgICAgICAgICAgICAgICB2YWx1ZSBmb3IgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVkIGJ5IDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgKGlmIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQpLCBvciBhIEpTUAorICAgICAgICAgICAgICAgIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzIGNhbGxlZCB0byByZXR1cm4gYSBTdHJpbmcKKyAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkKS4gIFRoZSBKU1AgYmVhbgorICAgICAgICAgICAgICAgIGlzIGNvbnN0cmFpbmVkIHRvIHRoZSBiZWFuIHNjb3BlIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBwcm9wZXJ0eSwgaWYgaXQgaXMgc3BlY2lmaWVkLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbVByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hvc2UgcmV0dXJuIHZhbHVlIG11c3QKKyAgICAgICAgICAgICAgICBiZSBhIFN0cmluZyBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAobmFtZWQgYnkgdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+IGF0dHJpYnV0ZSkgdGhhdCB3aWxsIGJlCisgICAgICAgICAgICAgICAgZHluYW1pY2FsbHkgYWRkZWQgdG8gdGhpcyBoeXBlcmxpbmsuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtU2NvcGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgIGFsbCBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdCBiZQorICAgICAgICAgICAgICAgIGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcXVlcnkgcGFyYW1ldGVycworICAgICAgICAgICAgICAgIHRvIGJlIGFkZGVkIHRvIHRoZSBoeXBlcmxpbmsuICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+CisgICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIGlmIHlvdSBzcGVjaWZ5CisgICAgICAgICAgICAgICAgdGhpcyBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZS4gIElmIG5vdCBzcGVjaWZpZWQsIGFsbAorICAgICAgICAgICAgICAgIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjcm9sbGluZzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+U2hvdWxkIHNjcm9sbCBiYXJzIGJlIGNyZWF0ZWQgdW5jb25kaXRpb25hbGx5ICh5ZXMpLAorICAgICAgICAgICAgICAgIG5ldmVyIChubyksIG9yIG9ubHkgd2hlbiBuZWVkZWQgKGF1dG8pPzwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dHJhbnNhY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIGFueSBjdXJyZW50IHRyYW5zYWN0aW9uCisgICAgICAgICAgICAgICAgY29udHJvbCB0b2tlbiB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLAorICAgICAgICAgICAgICAgIHNvIHRoYXQgaXQgd2lsbCBwYXNzIGFuIDxjb2RlPmlzVG9rZW5WYWxpZCgpPC9jb2RlPiB0ZXN0CisgICAgICAgICAgICAgICAgaW4gdGhlIHJlY2VpdmluZyBBY3Rpb24uPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5oaWRkZW48L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSGlkZGVuVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+ZW1wdHk8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgSGlkZGVuIEZpZWxkCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZSBoaWRkZW4sIHBvcHVsYXRlZAorICAgICAgICAgICAgICAgIGZyb20gdGhlIHNwZWNpZmllZCB2YWx1ZSBvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBiZWFuCisgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIG91ciBjdXJyZW50IGZvcm0uIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbgorICAgICAgICAgICAgICAgIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LgorICAgICAgICAgICAgPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIDxjb2RlPmxvZ2ljOml0ZXJhdGU8L2NvZGU+IHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZAorICAgICAgICAgICAgICAgIHdoZW4gcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdAorICAgICAgICAgICAgICAgIHNwZWNpZmllZCwgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkCisgICAgICAgICAgICAgICAgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhpcyBpbnB1dCBmaWVsZCwgYW5kIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIGJlYW4KKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSBpZiB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkLiBUaGUgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5CisgICAgICAgICAgICAgICAgKGlmIGFueSkgbXVzdCBiZSBvZiB0eXBlIFN0cmluZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWx1ZSB0byB3aGljaCB0aGlzIGZpZWxkIHNob3VsZCBiZSBpbml0aWFsaXplZC4gW1VzZSB0aGUKKyAgICAgICAgICAgICAgICBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkgdmFsdWVdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+d3JpdGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBTaG91bGQgdGhlIHZhbHVlIG9mIHRoaXMgZmllbGQgYWxzbyBiZSByZW5kZXJlZCB0byB0aGUKKyAgICAgICAgICAgICAgICByZXNwb25zZSBwYWdlIHRvIG1ha2UgaXQgdmlzaWJsZSwgaW4gYWRkaXRpb24gdG8gY3JlYXRpbmcKKyAgICAgICAgICAgICAgICBhbiBIVE1MIHR5cGU9ImhpZGRlbiIgZWxlbWVudD8gIEJ5IGRlZmF1bHQsIG9ubHkgdGhlCisgICAgICAgICAgICAgICAgaGlkZGVuIGVsZW1lbnQgaXMgY3JlYXRlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+aHRtbDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5IdG1sVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+SlNQPC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgYW4gSFRNTCA8Y29kZT4mbHQ7aHRtbCZndDs8L2NvZGU+IEVsZW1lbnQ8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MIDxjb2RlPiZsdDtodG1sJmd0OzwvY29kZT4gZWxlbWVudCB3aXRoCisgICAgICAgICAgbGFuZ3VhZ2UgYXR0cmlidXRlcyBleHRyYWN0ZWQgZnJvbSB0aGUgdXNlcidzIGN1cnJlbnQgTG9jYWxlCisgICAgICAgICAgb2JqZWN0LCBpZiB0aGVyZSBpcyBvbmUuPC9wPgorICAgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bGFuZzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICBSZW5kZXJzIGEgbGFuZyBhdHRyaWJ1dGUgd2l0aCB0aGUgbG9jYWxlIHN0b3JlZCBpbiB0aGUgdXNlcidzIHNlc3Npb24uICBJZiBub3QgCisgICAgICAgICAgICAgICAgIGZvdW5kIGluIHRoZSBzZXNzaW9uLCB0aGUgbGFuZ3VhZ2UgZnJvbSB0aGUgPGNvZGU+QWNjZXB0LUxhbmd1YWdlPC9jb2RlPgorICAgICAgICAgICAgICAgICBIVFRQIGhlYWRlciBpcyB1c2VkLiAgSWYgc3RpbGwgbm90IGZvdW5kLCB0aGUgZGVmYXVsdCBsYW5ndWFnZSBmb3IgdGhlIHNlcnZlciAKKyAgICAgICAgICAgICAgICAgaXMgdXNlZC4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yPC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT54aHRtbDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICA8cD5TZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaW4gb3JkZXIgdG8gcmVuZGVyIAorICAgICAgICAgICAgICA8Y29kZT54bWw6bGFuZzwvY29kZT4gYW5kIDxjb2RlPnhtbG5zPC9jb2RlPiBhdHRyaWJ1dGVzIAorICAgICAgICAgICAgICBvbiB0aGUgZ2VuZXJhdGVkIDxjb2RlPmh0bWw8L2NvZGU+IGVsZW1lbnQuICBUaGlzIGFsc28gCisgICAgICAgICAgICAgIGNhdXNlcyBhbGwgb3RoZXIgaHRtbCB0YWdzIHRvIHJlbmRlciBhcyBYSFRNTCAxLjAgKHRoZSAKKyAgICAgICAgICAgICAgJmx0O2h0bWw6eGh0bWwvJmd0OyB0YWcgaGFzIGEgc2ltaWxhciBwdXJwb3NlKS4KKyAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjE8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5pbWFnZTwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWFnZVRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICAgICAgUmVuZGVyIGFuIGlucHV0IHRhZyBvZiB0eXBlICJpbWFnZSIKKyAgICAgICAgICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisKKyAgICAgICAgICAgICAgICA8cD5SZW5kZXJzIGFuIEhUTUwgPGNvZGU+Jmx0O2lucHV0Jmd0OzwvY29kZT4gdGFnIG9mIHR5cGUKKyAgICAgICAgICAgICAgICAiaW1hZ2UiLiAgVGhlIGJhc2UgVVJMIGZvciB0aGlzIGltYWdlIGlzIGNhbGN1bGF0ZWQgZGlyZWN0bHkKKyAgICAgICAgICAgICAgICBiYXNlZCBvbiB0aGUgdmFsdWUgc3BlY2lmaWVkIGluIHRoZSA8Y29kZT5zcmM8L2NvZGU+IG9yCisgICAgICAgICAgICAgICAgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlcywgb3IgaW5kaXJlY3RseSBieSBsb29raW5nIHVwIGEKKyAgICAgICAgICAgICAgICBtZXNzYWdlIHJlc291cmNlIHN0cmluZyBiYXNlZCBvbiB0aGUgPGNvZGU+c3JjS2V5PC9jb2RlPiBvcgorICAgICAgICAgICAgICAgIDxjb2RlPnBhZ2VLZXk8L2NvZGU+IGF0dHJpYnV0ZXMuICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+CisgICAgICAgICAgICAgICAgc3BlY2lmeSBleGFjdGx5IG9uZSBvZiB0aGVzZSBhdHRyaWJ1dGVzLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPklmIHlvdSB3b3VsZCBsaWtlIHRvIG9idGFpbiB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgY2xpY2sgdGhhdCBzdWJtaXR0ZWQgdGhpcyByZXF1ZXN0LCBzZWUgdGhlIGluZm9ybWF0aW9uIGJlbG93CisgICAgICAgICAgICAgICAgb24gdGhlIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIDxwPlRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbiBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS48L3A+CisKKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkKKyAgICAgICAgICAgICAgICB0byB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbGlnbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsaWdubWVudCBvcHRpb24gZm9yIHRoaXMgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJvcmRlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIHdpZHRoIChpbiBwaXhlbHMpIG9mIHRoZSBib3JkZXIgYXJvdW5kIHRoaXMgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLiAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4KKyAgICAgICAgICAgICAgICB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAicHJvcGVydHlOYW1lWzM0XSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZCBmb3IKKyAgICAgICAgICAgICAgICBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bG9jYWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgc2Vzc2lvbiBhdHRyaWJ1dGUga2V5IGZvciB0aGUgTG9jYWxlIHVzZWQgdG8gc2VsZWN0CisgICAgICAgICAgICAgICAgaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICBTdHJ1dHMgc3RhbmRhcmQgdmFsdWUuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzCisgICAgICAgICAgICAgICAgYW5kIGEga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzCisgICAgICAgICAgICAgICAgYW5kIGEga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cworICAgICAgICAgICAgICAgIGFuZCBhIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QKKyAgICAgICAgICAgICAgICB1bmRlciB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZQorICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIG9mIHRoZSBpbWFnZSBmb3IgdGhpcworICAgICAgICAgICAgICAgIGlucHV0IHRhZy48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhZ2VLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBrZXkgb2YgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIHN0cmluZyBzcGVjaWZ5aW5nIHRoZQorICAgICAgICAgICAgICAgIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIG9mIHRoZSBpbWFnZSBmb3IgdGhpcyBpbnB1dCB0YWcuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIHByb3BlcnR5IG5hbWUgb2YgdGhpcyBpbWFnZSB0YWcuICBUaGUgcGFyYW1ldGVyIG5hbWVzCisgICAgICAgICAgICAgICAgZm9yIHRoZSByZXF1ZXN0IHdpbGwgYXBwZWFyIGFzICJwcm9wZXJ0eS54IiBhbmQgInByb3BlcnR5LnkiLAorICAgICAgICAgICAgICAgIHRoZSB4IGFuZCB5IHJlcHJlc2VudGluZyB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIG1vdXNlIGNsaWNrCisgICAgICAgICAgICAgICAgZm9yIHRoZSBpbWFnZS4gIEEgd2F5IG9mIHJldHJpZXZpbmcgdGhlc2UgdmFsdWVzIHRocm91Z2ggYQorICAgICAgICAgICAgICAgIGZvcm0gYmVhbiBpcyB0byBkZWZpbmUgZ2V0WCgpLCBnZXRZKCksIHNldFgoKSwgYW5kIHNldFkoKQorICAgICAgICAgICAgICAgIG1ldGhvZHMsIGFuZCBzcGVjaWZ5IHlvdXIgcHJvcGVydHkgYXMgYSBibGFuayBzdHJpbmcKKyAgICAgICAgICAgICAgICAocHJvcGVydHk9IiIpLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3JjPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgc291cmNlIFVSTCBvZiB0aGUgaW1hZ2UgZm9yIHRoaXMgaW5wdXQgdGFnLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3JjS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUga2V5IG9mIHRoZSBtZXNzYWdlIHJlc291cmNlcyBzdHJpbmcgc3BlY2lmeWluZyB0aGUKKyAgICAgICAgICAgICAgICBzb3VyY2UgVVJMIG9mIHRoZSBpbWFnZSBmb3IgdGhpcyBpbnB1dCB0YWcuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICA8cD5UaGUgdmFsdWUgdGhhdCB3aWxsIGJlIHN1Ym1pdHRlZCBpZiB0aGlzIGltYWdlIGJ1dHRvbgorICAgICAgICAgICAgICBpcyBwcmVzc2VkLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+aW1nPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltZ1RhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PmVtcHR5PC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgYW4gSFRNTCBpbWcgdGFnPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MIDxjb2RlPiZsdDtpbWcmZ3Q7PC9jb2RlPiBlbGVtZW50IHdpdGgKKyAgICAgICAgICAgICAgICB0aGUgaW1hZ2UgYXQgdGhlIHNwZWNpZmllZCBVUkwuICBMaWtlIHRoZSBsaW5rIHRhZywgVVJMCisgICAgICAgICAgICAgICAgcmV3cml0aW5nIHdpbGwgYmUgYXBwbGllZCBhdXRvbWF0aWNhbGx5IHRvIHRoZSB2YWx1ZQorICAgICAgICAgICAgICAgIHNwZWNpZmllZCBpbiA8Y29kZT5zcmM8L2NvZGU+LCA8Y29kZT5wYWdlPC9jb2RlPiwgb3IKKyAgICAgICAgICAgICAgICA8Y29kZT5hY3Rpb248L2NvZGU+IHRvIG1haW50YWluIHNlc3Npb24gc3RhdGUKKyAgICAgICAgICAgICAgICBpbiB0aGUgYWJzZW5jZSBvZiBjb29raWVzLiAgVGhpcyB3aWxsIGFsbG93IGR5bmFtaWMKKyAgICAgICAgICAgICAgICBnZW5lcmF0aW9uIG9mIGFuIGltYWdlIHdoZXJlIHRoZSBjb250ZW50IGRpc3BsYXllZCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGltYWdlIHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgYXR0cmlidXRlcyBvZiB0aGlzIHRhZy48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5UaGUgYmFzZSBVUkwgZm9yIHRoaXMgaW1hZ2UgaXMgY2FsY3VsYXRlZCBkaXJlY3RseSBiYXNlZCBvbgorICAgICAgICAgICAgICAgIHRoZSB2YWx1ZSBzcGVjaWZpZWQgaW4gPGNvZGU+c3JjPC9jb2RlPiwgPGNvZGU+cGFnZTwvY29kZT4sIG9yCisgICAgICAgICAgICAgICAgPGNvZGU+YWN0aW9uPC9jb2RlPiBvciA8Y29kZT5wYWdlPC9jb2RlPiwKKyAgICAgICAgICAgICAgICBvciBpbmRpcmVjdGx5IGJ5IGxvb2tpbmcgdXAgYSBtZXNzYWdlIHJlc291cmNlIHN0cmluZyBiYXNlZCBvbgorICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5zcmNLZXk8L2NvZGU+IG9yIDxjb2RlPnBhZ2VLZXk8L2NvZGU+IGF0dHJpYnV0ZXMuCisgICAgICAgICAgICAgICAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGV4YWN0bHkgb25lIG9mIHRoZXNlCisgICAgICAgICAgICAgICAgYXR0cmlidXRlcy48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5Ob3JtYWxseSwgdGhlIDxjb2RlPnNyYzwvY29kZT4sIDxjb2RlPnBhZ2U8L2NvZGU+LCBvcgorICAgICAgICAgICAgICAgIDxjb2RlPmFjdGlvbjwvY29kZT4gdGhhdCB5b3Ugc3BlY2lmeSB3aWxsIGJlIGxlZnQKKyAgICAgICAgICAgICAgICB1bmNoYW5nZWQgKG90aGVyIHRoYW4gVVJMIHJld3JpdGluZyBpZiBuZWNlc3NhcnkpLiAgSG93ZXZlciwKKyAgICAgICAgICAgICAgICB0aGVyZSBhcmUgdHdvIHdheXMgeW91IGNhbiBhcHBlbmQgb25lIG9yIG1vcmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICBkZWZpbmVkIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gdGhlIDxjb2RlPnNyYzwvY29kZT4gVVJMIC0tCisgICAgICAgICAgICAgICAgc3BlY2lmeSBhIHNpbmdsZSBwYXJhbWV0ZXIgd2l0aCB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4KKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgKGF0IGl0cyBhc3NvY2lhdGVkIGF0dHJpYnV0ZXMgdG8gc2VsZWN0IHRoZSB2YWx1ZSksCisgICAgICAgICAgICAgICAgb3Igc3BlY2lmeSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gKGFuZCBvcHRpb25hbAorICAgICAgICAgICAgICAgIDxjb2RlPnByb3BlcnR5PC9jb2RlPikgYXR0cmlidXRlcyB0byBzZWxlY3QgYQorICAgICAgICAgICAgICAgIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGJlYW4gdGhhdCBjb250YWlucyBvbmUgb3IgbW9yZQorICAgICAgICAgICAgICAgIHBhcmFtZXRlciBpZHMgYW5kIGNvcnJlc3BvbmRpbmcgdmFsdWVzLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPlRvIHNwZWNpZnkgYSBzaW5nbGUgcGFyYW1ldGVyLCB1c2UgdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIHRvIGRlZmluZSB0aGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdG8gYmUKKyAgICAgICAgICAgICAgICBzdWJtaXR0ZWQuICBUbyBzcGVjaWZ5IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlLCB1c2Ugb25lIG9mIHRoZQorICAgICAgICAgICAgICAgIGZvbGxvd2luZyBhcHByb2FjaGVzOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IG9ubHkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlPC9lbT4KKyAgICAgICAgICAgICAgICAgICAgLSBUaGUgbmFtZWQgSlNQIGJlYW4gKG9wdGlvbmFsbHkgc2NvcGVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gYXR0cmlidXRlKSBtdXN0IGlkZW50aWZ5IGEgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgU3RyaW5nLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IGJvdGggdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYW5kCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXM8L2VtPiAtIFRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgZ2V0dGVyIHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBKU1AgYmVhbiBpZGVudGlmaWVkCisgICAgICAgICAgICAgICAgICAgIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4pIGF0dHJpYnV0ZXMsIGluIG9yZGVyIHRvIHNlbGVjdAorICAgICAgICAgICAgICAgICAgICBhIHZhbHVlIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIFN0cmluZy48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgICA8cD5JZiB5b3UgcHJlZmVyIHRvIHNwZWNpZnkgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICAgY29udGFpbnMgYWxsIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMgdG8gYmUgYWRkZWQgdG8gdGhlCisgICAgICAgICAgICAgICAgaHlwZXJsaW5rLCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdGVjaG5pcXVlczo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBvbmx5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGU8L2VtPiAtCisgICAgICAgICAgICAgICAgICAgIFRoZSBuYW1lZCBKU1AgYmVhbiAob3B0aW9uYWxseSBzY29wZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5zY29wZTwvY29kZT4gYXR0cmlidXRlKSBtdXN0IGlkZW50aWZ5IGEKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcGFyYW1ldGVycy48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBib3RoIDxjb2RlPm5hbWU8L2NvZGU+IGFuZAorICAgICAgICAgICAgICAgICAgICA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlczwvZW0+IC0gVGhlIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eSBnZXR0ZXIgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBiZWFuCisgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+c2NvcGU8L2NvZGU+KSBhdHRyaWJ1dGVzLCBpbiBvcmRlciB0byByZXR1cm4gdGhlCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMuPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgPHA+QXMgdGhlIDxjb2RlPk1hcDwvY29kZT4gaXMgcHJvY2Vzc2VkLCB0aGUga2V5cyBhcmUgYXNzdW1lZAorICAgICAgICAgICAgICAgIHRvIGJlIHRoZSBuYW1lcyBvZiBxdWVyeSBwYXJhbWV0ZXJzIHRvIGJlIGFwcGVuZGVkIHRvIHRoZQorICAgICAgICAgICAgICAgIDxjb2RlPnNyYzwvY29kZT4gVVJMLiAgVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBlYWNoIGtleQorICAgICAgICAgICAgICAgIG11c3QgYmUgZWl0aGVyIGEgU3RyaW5nIG9yIGEgU3RyaW5nIGFycmF5IHJlcHJlc2VudGluZyB0aGUKKyAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgdmFsdWUocyksIG9yIGFuIG9iamVjdCB3aG9zZSB0b1N0cmluZygpIG1ldGhvZAorICAgICAgICAgICAgICAgIHdpbGwgYmUgY2FsbGVkLiAgSWYgYSBTdHJpbmcgYXJyYXkgaXMgc3BlY2lmaWVkLCBtb3JlIHRoYW4KKyAgICAgICAgICAgICAgICBvbmUgdmFsdWUgZm9yIHRoZSBzYW1lIHF1ZXJ5IHBhcmFtZXRlciBuYW1lIHdpbGwgYmUKKyAgICAgICAgICAgICAgICBjcmVhdGVkLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPllvdSBjYW4gc3BlY2lmeSB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgaW1hZ2UgKHdoaWNoCisgICAgICAgICAgICAgICAgbW9zdCBicm93c2VycyBkaXNwbGF5IGFzIHBvcC11cCB0ZXh0IGJsb2NrIHdoZW4gdGhlIHVzZXIKKyAgICAgICAgICAgICAgICBob3ZlcnMgdGhlIG1vdXNlIG92ZXIgdGhpcyBpbWFnZSkgZWl0aGVyIGRpcmVjdGx5LCB0aHJvdWdoCisgICAgICAgICAgICAgICAgdGhlIDxjb2RlPmFsdDwvY29kZT4gYXR0cmlidXRlLCBvciBpbmRpcmVjdGx5IGZyb20gYSBtZXNzYWdlCisgICAgICAgICAgICAgICAgcmVzb3VyY2VzIGJ1bmRsZSwgdXNpbmcgdGhlIDxjb2RlPmJ1bmRsZTwvY29kZT4gYW5kCisgICAgICAgICAgICAgICAgPGNvZGU+YWx0S2V5PC9jb2RlPiBhdHRyaWJ1dGVzLjwvcD4KKworICAgICAgICAgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWxpZ248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+V2hlcmUgdGhlIGltYWdlIGlzIGFsaWduZWQgdG8uICBDYW4gYmUgb25lIG9mIHRoZQorICAgICAgICAgICAgICAgICAgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgorICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgIDxsaT5sZWZ0IC0gbGVmdCBqdXN0aWZ5LCB3cmFwcGluZyB0ZXh0IG9uIHJpZ2h0PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPnJpZ2h0IC1yaWdodCBqdXN0aWZ5LCB3cmFwcGluZyB0ZXN0IG9uIGxlZnQ8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+dG9wIC0gYWxpZ25zIHRoZSBpbWFnZSB3aXRoIHRoZSB0b3Agb2YgdGhlIHRleHQgb24KKyAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIHJvdzwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT5taWRkbGUgLSBhbGlnbnMgdGhlIGltYWdlJ3MgdmVydGljYWwgY2VudGVyIHdpdGggdGhlCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0IGJhc2UgbGluZTwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT5ib3R0b20gLSBhbGlnbnMgdGhlIGltYWdlIHdpdGggdGhlIGJvdHRvbSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQncyBiYXNlIGxpbmU8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+dGV4dHRvcCAtIGFsaWducyB0aGUgaW1hZ2UncyB0b3Agd2l0aCB0aGF0IG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCBmb250IG9uIHRoZSBzYW1lIGxpbmU8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+YWJzbWlkZGxlIC0gYWxpZ25zIHRoZSBpbWFnZSdzIHZlcnRpY2FsIGNlbnRlciB3aXRoIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgYWJzb2x1dGUgY2VudGVyIG9mIHRoZSB0ZXh0PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPmFic2JvdHRvbSAtIGFsaWducyB0aGUgaW1hZ2Ugd2l0aCB0aGUgYWJzb2x1dGUgYm90dG9tCisgICAgICAgICAgICAgICAgICAgICAgICBvZiB0aGUgdGV4dCBmb250IG9uIHRoZSBzYW1lIHJvdzwvbGk+CisgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5BbmQgYWx0ZXJuYXRpdmUgdGV4dCB0byBiZSBkaXNwbGF5ZWQgaW4gYnJvd3NlcnMgdGhhdAorICAgICAgICAgICAgICAgICAgICAgZG9uJ3Qgc3VwcG9ydCBncmFwaGljcy4gIEFsc28gdXNlZCBvZnRlbiBhcyB0eXBlIG9mCisgICAgICAgICAgICAgICAgICAgICBjb250ZXh0IGhlbHAgb3ZlciBpbWFnZXMuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJvcmRlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgd2lkdGggb2YgdGhlIGJvcmRlciBzdXJyb3VuZGluZyB0aGUgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmhlaWdodDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgaGVpZ2h0IG9mIHRoZSBpbWFnZSBiZWluZyBkaXNwbGF5ZWQuICBUaGlzIHBhcmFtZXRlcgorICAgICAgICAgICAgICAgICAgICAgaXMgdmVyeSBuaWNlIHRvIHNwZWNpZnkgKGFsb25nIHdpdGggPGNvZGU+d2lkdGg8L2NvZGU+KQorICAgICAgICAgICAgICAgICAgICAgdG8gaGVscCB0aGUgYnJvd3NlciByZW5kZXIgdGhlIHBhZ2UgZmFzdGVyLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5oc3BhY2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFtb3VudCBvZiBob3Jpem9udGFsIHNwYWNpbmcgYmV0d2VlbiB0aGUgaWNvbiBhbmQKKyAgICAgICAgICAgICAgICAgICAgIHRoZSB0ZXh0LiAgVGhlIHRleHQgbWF5IGJlIGluIHRoZSBzYW1lIHBhcmFncmFwaCwgb3IKKyAgICAgICAgICAgICAgICAgICAgIGJlIHdyYXBwZWQgYXJvdW5kIHRoZSBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW1hZ2VOYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBzY3JpcHRhYmxlIG5hbWUgdG8gYmUgZGVmaW5lZCB3aXRoaW4gdGhpcyBwYWdlLCBzbworICAgICAgICAgICAgICAgICAgdGhhdCB5b3UgY2FuIHJlZmVyZW5jZSBpdCB3aXRoIGludHJhLXBhZ2Ugc2NyaXB0cy4gIEluIG90aGVyCisgICAgICAgICAgICAgICAgICB3b3JkcywgdGhlIHZhbHVlIHNwZWNpZmllZCBoZXJlIHdpbGwgcmVuZGVyIGEgIm5hbWUiIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAgIGluIHRoZSBnZW5lcmF0ZWQgaW1hZ2UgdGFnLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pc21hcDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiB0aGUgc2VydmVyLXNpZGUgbWFwIHRoYXQgdGhpcyBpbWFnZSBiZWxvbmdzCisgICAgICAgICAgICAgICAgICAgICB0by48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bG9jYWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IG9yIHNlc3Npb24gTG9jYWxlIGF0dHJpYnV0ZSB1c2VkCisgICAgICAgICAgICAgICAgICB0byBsb29rIHVwIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gdGhhdCBjb250YWlucyBhIDxjb2RlPk1hcDwvY29kZT4KKyAgICAgICAgICAgICAgICAgIHJlcHJlc2VudGluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgICBpcyBub3Qgc3BlY2lmaWVkKSwgb3IgYSBKU1AgYmVhbiB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMKKyAgICAgICAgICAgICAgICAgIGNhbGxlZCB0byByZXR1cm4gYSA8Y29kZT5NYXA8L2NvZGU+IChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGlzIHNwZWNpZmllZCkuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIGtleSBkb3duIGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIGtleSBwcmVzcyBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBrZXkgdXAgZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBzcmMgVVJMLiAgVGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaXMKKyAgICAgICAgICAgICAgICAgIGRlZmluZWQgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYW5kIChvcHRpb25hbCkKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMsIG9wdGlvbmFsbHkgc2NvcGVkIGJ5CisgICAgICAgICAgICAgICAgICB0aGUgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gYXR0cmlidXRlPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoLCBzdGFydGluZyB3aXRoIGEgc2xhc2gsIG9mCisgICAgICAgICAgICAgICAgICB0aGUgaW1hZ2UgdG8gYmUgZGlzcGxheWVkIGJ5IHRoaXMgdGFnLiAgVGhlIHJlbmRlcmVkCisgICAgICAgICAgICAgICAgICBVUkwgZm9yIHRoaXMgaW1hZ2Ugd2lsbCBhdXRvbWF0aWNhbGx5IHByZXBlbmQgdGhlIGNvbnRleHQKKyAgICAgICAgICAgICAgICAgIHBhdGggb2YgdGhpcyB3ZWIgYXBwbGljYXRpb24gKGluIHRoZSBzYW1lIG1hbm5lciBhcyB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUgbGluayB0YWcgd29ya3MpLAorICAgICAgICAgICAgICAgICAgaW4gYWRkaXRpb24gdG8gYW55IG5lY2Vzc2FyeSBVUkwgcmV3cml0aW5nLiAgWW91CisgICAgICAgICAgICAgICAgICA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeSBlaXRoZXIgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+CisgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgb3IgdGhlIDxjb2RlPnNyYzwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYWdlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIGtleSwgaW4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGJ1bmRsZSBuYW1lZCBieQorICAgICAgICAgICAgICAgICAgdGhlIDxjb2RlPmJ1bmRsZTwvY29kZT4gYXR0cmlidXRlLCBvZiB0aGUgU3RyaW5nIHRvIGJlCisgICAgICAgICAgICAgICAgICB1c2VkIGFzIHRoZSBtb2R1bGUtcmVsYXRpdmUgcGF0aCBmb3IgdGhpcyBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWN0aW9uPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgPHA+VGhlIGFjdGlvbiwgc3RhcnRpbmcgd2l0aCBhIHNsYXNoLCB0aGF0IHdpbGwgcmVuZGVyCisgICAgICAgICAgICAgIHRoZSBpbWFnZSB0byBiZSBkaXNwbGF5ZWQgYnkgdGhpcyB0YWcuICBUaGUgcmVuZGVyZWQKKyAgICAgICAgICAgICAgVVJMIGZvciB0aGlzIGltYWdlIHdpbGwgYXV0b21hdGljYWxseSBwcmVwZW5kIHRoZSBjb250ZXh0CisgICAgICAgICAgICAgIHBhdGggb2YgdGhpcyB3ZWIgYXBwbGljYXRpb24gKGluIHRoZSBzYW1lIG1hbm5lciBhcyB0aGUKKyAgICAgICAgICAgICAgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUgb24gdGhlIGxpbmsgdGFnIHdvcmtzKSwKKyAgICAgICAgICAgICAgaW4gYWRkaXRpb24gdG8gYW55IG5lY2Vzc2FyeSBVUkwgcmV3cml0aW5nLiAgWW91CisgICAgICAgICAgICAgIDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+LAorICAgICAgICAgICAgICA8Y29kZT5wYWdlPC9jb2RlPgorICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIG9yIHRoZSA8Y29kZT5zcmM8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAKKwkJICAgICAgIDxwPkFkZGl0aW9uYWxseSwgeW91IGNhbiBzcGVjaWZ5IGEgPGNvZGU+bW9kdWxlPC9jb2RlPiBwcmVmaXggCisJCQkgICBmb3IgbGlua2luZyB0byBvdGhlciBtb2R1bGVzLjwvcD4KKwkJCQkJCSAgIAorCQkJICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1vZHVsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisJCQkJICAgPHA+UHJlZml4IG5hbWUgb2YgYSA8Y29kZT5Nb2R1bGU8L2NvZGU+IHRoYXQKKwkJCQkgICBjb250YWlucyB0aGUgYWN0aW9uIG1hcHBpbmcgZm9yIHRoZSA8Y29kZT5BY3Rpb248L2NvZGU+CisJCQkJICAgdGhhdCBpcyBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLgorCQkJCSAgIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeSBhbiA8Y29kZT5hY3Rpb248L2NvZGU+IAorCQkJCSAgIGF0dHJpYnV0ZSBmb3IgdGhpcyB0byBoYXZlIGFuIGVmZmVjdC48L3A+CisJCQkKKwkJCQkgICA8cD48c3Ryb25nPk5vdGU6IDwvc3Ryb25nPlVzZSAiIiB0byBtYXAgdG8gdGhlIGRlZmF1bHQgbW9kdWxlLjwvcD4KKwkJCSAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgaXMgYSBTdHJpbmcgY29udGFpbmluZyB0aGUKKyAgICAgICAgICAgICAgICAgIHZhbHVlIGZvciB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZWQgYnkgPGNvZGU+cGFyYW1JZDwvY29kZT4KKyAgICAgICAgICAgICAgICAgIChpZiA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkKSwgb3IgYSBKU1AKKyAgICAgICAgICAgICAgICAgIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzIGNhbGxlZCB0byByZXR1cm4gYSBTdHJpbmcKKyAgICAgICAgICAgICAgICAgIChpZiA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBpcyBzcGVjaWZpZWQpLiAgVGhlIEpTUCBiZWFuCisgICAgICAgICAgICAgICAgICBpcyBjb25zdHJhaW5lZCB0byB0aGUgYmVhbiBzY29wZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBwcm9wZXJ0eSwgaWYgaXQgaXMgc3BlY2lmaWVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbVByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0CisgICAgICAgICAgICAgICAgICBiZSBhIFN0cmluZyBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAgIChuYW1lZCBieSB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4gYXR0cmlidXRlKSB0aGF0IHdpbGwgYmUKKyAgICAgICAgICAgICAgICAgIGR5bmFtaWNhbGx5IGFkZGVkIHRvIHRoaXMgc3JjIFVSTC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1TY29wZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgICAgYWxsIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdCBiZQorICAgICAgICAgICAgICAgICAgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCisgICAgICAgICAgICAgICAgICB0byBiZSBhZGRlZCB0byB0aGUgc3JjIFVSTC4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4KKyAgICAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBpZiB5b3Ugc3BlY2lmeQorICAgICAgICAgICAgICAgICAgdGhpcyBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLCBhbGwKKyAgICAgICAgICAgICAgICAgIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNyYzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgVVJMIHRvIHdoaWNoIHRoaXMgaW1hZ2Ugd2lsbCBiZSB0cmFuc2ZlcnJlZCBmcm9tCisgICAgICAgICAgICAgICAgICBUaGlzIGltYWdlIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQgaW4gdGhlCisgICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBUaGlzIHZhbHVlIHdpbGwgYmUgdXNlZCB1bm1vZGlmaWVkIChvdGhlcgorICAgICAgICAgICAgICAgICAgdGhhbiBwb3RlbnRpYWwgVVJMIHJld3JpdGluZykgYXMgdGhlIHZhbHVlIG9mIHRoZSAic3JjIgorICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGluIHRoZSByZW5kZXJlZCB0YWcuICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+CisgICAgICAgICAgICAgICAgICBzcGVjaWZ5IGVpdGhlciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIG9yIHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+c3JjPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNyY0tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSBrZXksIGluIHRoZSBtZXNzYWdlIHJlc291cmNlcyBidW5kbGUgbmFtZWQgYnkKKyAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5idW5kbGU8L2NvZGU+IGF0dHJpYnV0ZSwgb2YgdGhlIFN0cmluZyB0byBiZQorICAgICAgICAgICAgICAgICAgdXNlZCBhcyB0aGUgVVJMIG9mIHRoaXMgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT51c2VMb2NhbEVuY29kaW5nPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgIDxwPklmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgTG9jYWxDaGFyYWN0ZXJFbmNvZGluZyB3aWxsIGJlCisgICAgICAgICAgICAgIHVzZWQsIHRoYXQgaXMsIHRoZSBjaGFyYWN0ZXJFbmNvZGluZyBzZXQgdG8gdGhlIEh0dHBTZXJ2bGV0UmVzcG9uc2UsCisgICAgICAgICAgICAgIGFzIHByZWZlcmVkIGNoYXJhY3RlciBlbmNvZGluZyByYXRoZXIgdGhhbiBVVEYtOCwgd2hlbgorICAgICAgICAgICAgICBVUkxFbmNvZGluZyBpcyBkb25lIG9uIHBhcmFtZXRlcnMgb2YgdGhlIFVSTC48L3A+CisgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT51c2VtYXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIG1hcCBhcyBkZWZpbmVkIHdpdGhpbiB0aGlzIHBhZ2UgZm9yCisgICAgICAgICAgICAgICAgICAgICBtYXBwaW5nIGhvdC1zcG90IGFyZWFzIG9mIHRoaXMgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZzcGFjZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIHZlcnRpY2FsIHNwYWNpbmcgYmV0d2VlbiB0aGUgaWNvbiBhbmQKKyAgICAgICAgICAgICAgICAgICAgIHRoZSB0ZXh0LCBhYm92ZSBhbmQgYmVsb3cuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPndpZHRoPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSB3aWR0aCBvZiB0aGUgaW1hZ2UgYmVpbmcgZGlzcGxheWVkLiAgVGhpcyBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAgICAgIGlzIHZlcnkgbmljZSB0byBzcGVjaWZ5IChhbG9uZyB3aXRoIDxjb2RlPmhlaWdodDwvY29kZT4pCisgICAgICAgICAgICAgICAgICAgICB0byBoZWxwIHRoZSBicm93c2VyIHJlbmRlciB0aGUgcGFnZSBmYXN0ZXIuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5qYXZhc2NyaXB0PC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPgorICAgICAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PmVtcHR5PC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBKYXZhU2NyaXB0IHZhbGlkYXRpb24gYmFzZWQgb24gdGhlCisgICAgICAgICAgICB2YWxpZGF0aW9uIHJ1bGVzIGxvYWRlZCBieSB0aGUgVmFsaWRhdG9yUGx1Z0luLgorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBSZW5kZXIgSmF2YVNjcmlwdCB2YWxpZGF0aW9uIGJhc2VkIG9uIHRoZQorICAgICAgICAgICAgICAgIHZhbGlkYXRpb24gcnVsZXMgbG9hZGVkIGJ5IHRoZSA8Y29kZT5WYWxpZGF0b3JQbHVnSW48L2NvZGU+LgorICAgICAgICAgICAgICAgIFRoZSBzZXQgb2YgdmFsaWRhdGlvbiBydWxlcyB0aGF0IHNob3VsZCBiZSBnZW5lcmF0ZWQgaXMgYmFzZWQKKyAgICAgICAgICAgICAgICBvbiB0aGUgZm9ybU5hbWUgYXR0cmlidXRlIHBhc3NlZCBpbiwgd2hpY2ggc2hvdWxkIG1hdGNoCisgICAgICAgICAgICAgICAgdGhlIG5hbWUgYXR0cmlidXRlIG9mIHRoZSBmb3JtIGVsZW1lbnQgaW4gdGhlIHhtbCBmaWxlLgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgVGhlIGR5bmFtaWNKYXZhc2NyaXB0IGFuZCBzdGF0aWNKYXZhc2NyaXB0IGF0dHJpYnV0ZXMKKyAgICAgICAgICAgICAgICBkZWZhdWx0IHRvIHRydWUsIGJ1dCBpZiBkeW5hbWljSmF2YXNjcmlwdCBpcyBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4KKyAgICAgICAgICAgICAgICBhbmQgc3RhdGljSmF2YXNjcmlwdCBpcyBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IHRoZW4gb25seQorICAgICAgICAgICAgICAgIHRoZSBkeW5hbWljIEphdmFTY3JpcHQgd2lsbCBiZSByZW5kZXJlZC4gIElmIGR5bmFtaWNKYXZhc2NyaXB0CisgICAgICAgICAgICAgICAgaXMgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPgorICAgICAgICAgICAgICAgIGFuZCBzdGF0aWNKYXZhc2NyaXB0IGlzIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG9ubHkKKyAgICAgICAgICAgICAgICB0aGUgc3RhdGljIEphdmFTY3JpcHQgd2lsbCBiZSByZW5kZXJlZCB3aGljaCBjYW4gdGhlbiBiZSBwdXQgaW4KKyAgICAgICAgICAgICAgICBzZXBhcmF0ZSBKU1AgcGFnZSBzbyB0aGUgYnJvd3NlciBjYW4gY2FjaGUgdGhlIHN0YXRpYyBKYXZhU2NyaXB0LgorICAgICAgICAgICAgPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmNkYXRhPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgSWYgc2V0IHRvICJ0cnVlIiBhbmQgWEhUTUwgaGFzIGJlZW4gZW5hYmxlZCwgdGhlIEphdmFTY3JpcHQgd2lsbAorICAgICAgICAgICAgICAgICAgYmUgd3JhcHBlZCBpbiBhIENEQVRBIHNlY3Rpb24gdG8gcHJldmVudCBYTUwgcGFyc2luZy4gVGhlIGRlZmF1bHQgaXMKKyAgICAgICAgICAgICAgICAgICJ0cnVlIiB0byBjb21wbHkgd2l0aCB0aGUgVzNDJ3MgcmVjb21tZW5kYXRpb24uCisgICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZHluYW1pY0phdmFzY3JpcHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgV2hldGhlciBvciBub3QgdG8gcmVuZGVyIHRoZSBkeW5hbWljIEphdmFTY3JpcHQuCisgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byA8Y29kZT50cnVlPC9jb2RlPi4KKyAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mb3JtTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICAgIFRoZSBrZXkgKGZvcm0gbmFtZSkgdG8gcmV0cmlldmUgYSBzcGVjaWZpYworICAgICAgICAgICAgICAgICAgc2V0IG9mIHZhbGlkYXRpb24gcnVsZXMuICBJZiAiZHluYW1pY0phdmFzY3JpcHQiIGlzIHNldCAKKyAgICAgICAgICAgICAgICAgIHRvIDxjb2RlPnRydWU8L2NvZGU+IGFuZCBmb3JtTmFtZSBpcyBtaXNzaW5nIG9yIGlzIG5vdCAKKyAgICAgICAgICAgICAgICAgIHJlY29nbml6ZWQgYnkgdGhlIDxjb2RlPlZhbGlkYXRvclBsdWdJbjwvY29kZT4sIGEgCisgICAgICAgICAgICAgICAgICBKc3BFeGNlcHRpb24gd2lsbCBiZSB0aHJvd24uCisgICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bWV0aG9kPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgVGhlIGFsdGVybmF0ZSBKYXZhU2NyaXB0IG1ldGhvZCBuYW1lIHRvIGJlIHVzZWQKKyAgICAgICAgICAgICAgICAgIGluc3RlYWQgb2YgdGhlIG9mIHRoZSBkZWZhdWx0LiAgVGhlIGRlZmF1bHQgaXMKKyAgICAgICAgICAgICAgICAgICd2YWxpZGF0ZScgY29uY2F0ZW5hdGVkIGluIGZyb250IG9mCisgICAgICAgICAgICAgICAgICB0aGUga2V5IChmb3JtIG5hbWUpIHBhc3NlZCBpbiAoZXg6IHZhbGlkYXRlUmVnaXN0cmF0aW9uRm9ybSkuCisgICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5pbnQ8L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICAgIFRoZSBjdXJyZW50IHBhZ2Ugb2YgYSBzZXQgb2YgdmFsaWRhdGlvbiBydWxlcworICAgICAgICAgICAgICAgICAgaWYgdGhlIHBhZ2UgYXR0cmlidXRlIGZvciB0aGUgZmllbGQgZWxlbWVudAorICAgICAgICAgICAgICAgICAgaW4gdGhlIHhtbCBmaWxlIGlzIGluIHVzZS4KKyAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zY3JpcHRMYW5ndWFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSAmbHQ7c2NyaXB0Jmd0OyBlbGVtZW50IHdpbGwgbm90IGNvbnRhaW4gYSBsYW5ndWFnZSBhdHRyaWJ1dGUKKyAgICAgICAgICAgICAgICB3aGVuIHRoaXMgaXMgc2V0IHRvIGZhbHNlLiAgVGhlIGRlZmF1bHQgaXMgdHJ1ZSBidXQgdGhpcyBwcm9wZXJ0eSBpcyBpZ25vcmVkCisgICAgICAgICAgICAgICAgaW4gWEhUTUwgbW9kZS4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yPC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zcmM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICBUaGUgc3JjIGF0dHJpYnV0ZSdzIHZhbHVlIHdoZW4gZGVmaW5pbmcKKyAgICAgICAgICAgICAgICAgIHRoZSBodG1sIHNjcmlwdCBlbGVtZW50LgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0YXRpY0phdmFzY3JpcHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgV2hldGhlciBvciBub3QgdG8gcmVuZGVyIHRoZSBzdGF0aWMgSmF2YVNjcmlwdC4KKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIDxjb2RlPnRydWU8L2NvZGU+LgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmh0bWxDb21tZW50PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgV2hldGhlciBvciBub3QgdG8gZW5jbG9zZSB0aGUgamF2YXNjcmlwdAorICAgICAgICAgICAgICAgICAgd2l0aCBIVE1MIGNvbW1lbnRzLiAgVGhpcyBhdHRyaWJ1dGUgaXMgaWdub3JlZCBpbiBYSFRNTAorICAgICAgICAgICAgICAgICAgbW9kZSBiZWNhdXNlIHRoZSBzY3JpcHQgd291bGQgYmUgZGVsZXRlZCBieSB0aGUgWE1MIHBhcnNlci4gIFNlZQorICAgICAgICAgICAgICAgICAgdGhlIGNkYXRhIGF0dHJpYnV0ZSBmb3IgZGV0YWlscyBvbiBoaWRpbmcgc2NyaXB0cyBmcm9tIFhNTAorICAgICAgICAgICAgICAgICAgcGFyc2Vycy4gCisgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byA8Y29kZT50cnVlPC9jb2RlPi4KKyAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi43PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+bGluazwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5MaW5rVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgYW4gSFRNTCBhbmNob3Igb3IgaHlwZXJsaW5rPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MIDxjb2RlPiZsdDthJmd0OzwvY29kZT4gZWxlbWVudCBhcyBhbgorICAgICAgICAgICAgICAgIGFuY2hvciBkZWZpbml0aW9uIChpZiAibGlua05hbWUiIGlzIHNwZWNpZmllZCkgb3IgYXMgYQorICAgICAgICAgICAgICAgIGh5cGVybGluayB0byB0aGUgc3BlY2lmaWVkIFVSTC4gIFVSTCByZXdyaXRpbmcgd2lsbCBiZQorICAgICAgICAgICAgICAgIGFwcGxpZWQgYXV0b21hdGljYWxseSwgdG8gbWFpbnRhaW4gc2Vzc2lvbiBzdGF0ZSBpbiB0aGUKKyAgICAgICAgICAgICAgICBhYnNlbmNlIG9mIGNvb2tpZXMuICBUaGUgY29udGVudCBkaXNwbGF5ZWQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBoeXBlcmxpbmsgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBib2R5IG9mIHRoaXMgdGFnLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPlRoZSBiYXNlIFVSTCBmb3IgdGhpcyBoeXBlcmxpbmsgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbgorICAgICAgICAgICAgICAgIHdoaWNoIG9mIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyB5b3Ugc3BlY2lmeSAoeW91IG11c3QKKyAgICAgICAgICAgICAgICBzcGVjaWZ5IGV4YWN0bHkgb25lIG9mIHRoZW0pOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5mb3J3YXJkPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIHRoZQorICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGEgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRvIGJlIGxvb2tlZAorICAgICAgICAgICAgICAgICAgICB1cCwgYW5kIHVzZSB0aGUgbW9kdWxlLXJlbGF0aXZlIG9yIGNvbnRleHQtcmVsYXRpdmUKKyAgICAgICAgICAgICAgICAgICAgVVJJIGZvdW5kIHRoZXJlLiBJZiB0aGUgZm9yd2FyZCBpcyBtb2R1bGUtcmVsYXRpdmUgdGhlbgorICAgICAgICAgICAgICAgICAgICBpdCBtdXN0IHBvaW50IHRvIGFuIGFjdGlvbiBhbmQgTk9UIHRvIGEgcGFnZS48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+YWN0aW9uPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIHRoZQorICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGEgPGNvZGU+QWN0aW9uPC9jb2RlPiB0byBiZSBsb29rZWQKKyAgICAgICAgICAgICAgICAgICAgdXAsIGFuZCB1c2UgdGhlIG1vZHVsZS1yZWxhdGl2ZSBvciBjb250ZXh0LXJlbGF0aXZlCisgICAgICAgICAgICAgICAgICAgIFVSSSBmb3VuZCB0aGVyZS48L2xpPgorICAgICAgICAgICAgICAgICA8bGk+PGVtPmhyZWY8L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgdW5jaGFuZ2VkLgorICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgPGxpPjxlbT5wYWdlPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIGEKKyAgICAgICAgICAgICAgICAgICAgbW9kdWxlLXJlbGF0aXZlIFVSSSwgYW5kIGdlbmVyYXRlIGEgc2VydmVyLXJlbGF0aXZlCisgICAgICAgICAgICAgICAgICAgIFVSSSBieSBpbmNsdWRpbmcgdGhlIGNvbnRleHQgcGF0aCBhbmQgbW9kdWxlCisgICAgICAgICAgICAgICAgICAgIHByZWZpeC48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgICA8cD5Ob3JtYWxseSwgdGhlIGh5cGVybGluayB5b3Ugc3BlY2lmeSB3aXRoIG9uZSBvZiB0aGUKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMgcGFyYWdyYXBoIHdpbGwgYmUgbGVmdAorICAgICAgICAgICAgICAgIHVuY2hhbmdlZCAob3RoZXIgdGhhbiBVUkwgcmV3cml0aW5nIGlmIG5lY2Vzc2FyeSkuICBIb3dldmVyLAorICAgICAgICAgICAgICAgIHRoZXJlIGFyZSB0d28gd2F5cyB5b3UgY2FuIGFwcGVuZCBvbmUgb3IgbW9yZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgIGRlZmluZWQgcXVlcnkgcGFyYW1ldGVycyB0byB0aGUgaHlwZXJsaW5rIC0tIHNwZWNpZnkgYSBzaW5nbGUKKyAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgd2l0aCB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4gYXR0cmlidXRlIChhbmQgaXRzCisgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCBhdHRyaWJ1dGVzIHRvIHNlbGVjdCB0aGUgdmFsdWUpLCBvciBzcGVjaWZ5IHRoZQorICAgICAgICAgICAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwgPGNvZGU+cHJvcGVydHk8L2NvZGU+KQorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgdG8gc2VsZWN0IGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gYmVhbiB0aGF0CisgICAgICAgICAgICAgICAgY29udGFpbnMgb25lIG9yIG1vcmUgcGFyYW1ldGVyIGlkcyBhbmQgY29ycmVzcG9uZGluZyB2YWx1ZXMuCisgICAgICAgICAgICAgICAgPC9wPgorCisgICAgICAgICAgICAgICAgPHA+VG8gc3BlY2lmeSBhIHNpbmdsZSBwYXJhbWV0ZXIsIHVzZSB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4KKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgdG8gZGVmaW5lIHRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0byBiZQorICAgICAgICAgICAgICAgIHN1Ym1pdHRlZC4gIFRvIHNwZWNpZnkgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUsIHVzZSBvbmUgb2YgdGhlCisgICAgICAgICAgICAgICAgZm9sbG93aW5nIGFwcHJvYWNoZXM6PC9wPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgb25seSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGU8L2VtPgorICAgICAgICAgICAgICAgICAgICAtIFRoZSBuYW1lZCBKU1AgYmVhbiAob3B0aW9uYWxseSBzY29wZWQgYnkgdGhlIHZhbHVlIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBhdHRyaWJ1dGUpIG11c3QgaWRlbnRpZnkgYSB2YWx1ZQorICAgICAgICAgICAgICAgICAgICB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgYm90aCB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhbmQKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlczwvZW0+IC0gVGhlIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eSBnZXR0ZXIgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBKU1AgYmVhbgorICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVkIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4pIGF0dHJpYnV0ZXMsIGluIG9yZGVyIHRvIHNlbGVjdAorICAgICAgICAgICAgICAgICAgICBhIHZhbHVlIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIFN0cmluZy48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgICA8cD5JZiB5b3UgcHJlZmVyIHRvIHNwZWNpZnkgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICAgY29udGFpbnMgYWxsIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMgdG8gYmUgYWRkZWQgdG8gdGhlCisgICAgICAgICAgICAgICAgaHlwZXJsaW5rLCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdGVjaG5pcXVlczo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBvbmx5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGU8L2VtPiAtCisgICAgICAgICAgICAgICAgICAgIFRoZSBuYW1lZCBKU1AgYmVhbiAob3B0aW9uYWxseSBzY29wZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5zY29wZTwvY29kZT4gYXR0cmlidXRlKSBtdXN0IGlkZW50aWZ5IGEKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcGFyYW1ldGVycy48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBib3RoIDxjb2RlPm5hbWU8L2NvZGU+IGFuZAorICAgICAgICAgICAgICAgICAgICA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlczwvZW0+IC0gVGhlIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eSBnZXR0ZXIgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBiZWFuCisgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+c2NvcGU8L2NvZGU+KSBhdHRyaWJ1dGVzLCBpbiBvcmRlciB0byByZXR1cm4gdGhlCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMuPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgPHA+QXMgdGhlIDxjb2RlPk1hcDwvY29kZT4gaXMgcHJvY2Vzc2VkLCB0aGUga2V5cyBhcmUgYXNzdW1lZAorICAgICAgICAgICAgICAgIHRvIGJlIHRoZSBuYW1lcyBvZiBxdWVyeSBwYXJhbWV0ZXJzIHRvIGJlIGFwcGVuZGVkIHRvIHRoZQorICAgICAgICAgICAgICAgIGh5cGVybGluay4gIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBrZXkgbXVzdCBiZSBlaXRoZXIKKyAgICAgICAgICAgICAgICBhIFN0cmluZyBvciBhIFN0cmluZyBhcnJheSByZXByZXNlbnRpbmcgdGhlIHBhcmFtZXRlciB2YWx1ZShzKSwKKyAgICAgICAgICAgICAgICBvciBhbiBvYmplY3Qgd2hvc2UgdG9TdHJpbmcoKSBtZXRob2Qgd2lsbCBiZSBjYWxsZWQuCisgICAgICAgICAgICAgICAgSWYgYSBTdHJpbmcgYXJyYXkgaXMgc3BlY2lmaWVkLCBtb3JlIHRoYW4gb25lIHZhbHVlIGZvciB0aGUKKyAgICAgICAgICAgICAgICBzYW1lIHF1ZXJ5IHBhcmFtZXRlciBuYW1lIHdpbGwgYmUgY3JlYXRlZC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5BZGRpdGlvbmFsbHksIHlvdSBjYW4gcmVxdWVzdCB0aGF0IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uCisgICAgICAgICAgICAgICAgY29udHJvbCB0b2tlbiwgaWYgYW55LCBiZSBpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluaworICAgICAgICAgICAgICAgIGJ5IHNldHRpbmcgdGhlIDxjb2RlPnRyYW5zYWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUgdG8KKyAgICAgICAgICAgICAgICA8Y29kZT50cnVlPC9jb2RlPi4KKyAgICAgICAgICAgICAgICBZb3UgY2FuIGFsc28gcmVxdWVzdCB0aGF0IGFuIGFuY2hvciAoIiN4eHgiKSBiZSBhZGRlZCB0byB0aGUKKyAgICAgICAgICAgICAgICBlbmQgb2YgdGhlIFVSTCB0aGF0IGlzIGNyZWF0ZWQgYnkgYW55IG9mIHRoZSBhYm92ZSBtZWNoYW5pc21zLAorICAgICAgICAgICAgICAgIGJ5IHVzaW5nIHRoZSA8Y29kZT5hbmNob3I8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisKKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseQorICAgICAgICAgICAgICAgICAgdG8gdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TG9naWNhbCBuYW1lIG9mIGEgPGNvZGU+QWN0aW9uPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICAgICBjb250YWlucyB0aGUgYWN0dWFsIGNvbnRlbnQtcmVsYXRpdmUgVVJJIG9mIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgICAgICAgb2YgdGhpcyB0cmFuc2Zlci4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQKKyAgICAgICAgICAgICAgICAgIGluIHRoZSB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLCB0aGUgPGNvZGU+bGlua05hbWU8L2NvZGU+CisgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgCisJCSAgICAgICA8cD5BZGRpdGlvbmFsbHksIHlvdSBjYW4gc3BlY2lmeSBhIDxjb2RlPm1vZHVsZTwvY29kZT4gcHJlZml4IAorCQkJICAgZm9yIGxpbmtpbmcgdG8gb3RoZXIgbW9kdWxlcy48L3A+CisJCQkJCQkgICAKKwkJCSAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tb2R1bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworCQkJCSAgIDxwPlByZWZpeCBuYW1lIG9mIGEgPGNvZGU+TW9kdWxlPC9jb2RlPiB0aGF0CisJCQkJICAgY29udGFpbnMgdGhlIGFjdGlvbiBtYXBwaW5nIGZvciB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPgorCQkJCSAgIHRoYXQgaXMgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZS4KKwkJCQkgICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgYW4gPGNvZGU+YWN0aW9uPC9jb2RlPiAKKwkJCQkgICBhdHRyaWJ1dGUgZm9yIHRoaXMgdG8gaGF2ZSBhbiBlZmZlY3QuPC9wPgorCQkJCisJCQkJICAgPHA+PHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz5Vc2UgIiIgdG8gbWFwIHRvIHRoZSBkZWZhdWx0IG1vZHVsZS48L3A+CisJCQkgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbmNob3I8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+T3B0aW9uYWwgYW5jaG9yIHRhZyAoIiN4eHgiKSB0byBiZSBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgICBoeXBlcmxpbmsuICBTcGVjaWZ5IHRoaXMgdmFsdWUgPHN0cm9uZz53aXRob3V0PC9zdHJvbmc+IGFueQorICAgICAgICAgICAgICAgICAgIiMiIGNoYXJhY3Rlci48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Zm9yd2FyZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5Mb2dpY2FsIG5hbWUgb2YgYSBnbG9iYWwgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgICAgY29udGFpbnMgdGhlIGFjdHVhbCBjb250ZW50LXJlbGF0aXZlIFVSSSBvZiB0aGUgZGVzdGluYXRpb24KKyAgICAgICAgICAgICAgICAgICBvZiB0aGlzIHRyYW5zZmVyLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQKKyAgICAgICAgICAgICAgICAgICBpbiB0aGUgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlIDxjb2RlPmxpbmtOYW1lPC9jb2RlPgorICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmhyZWY8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIFVSTCB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAgICBpZiBhY3RpdmF0ZWQuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLCB0aGUgPGNvZGU+bGlua05hbWU8L2NvZGU+CisgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gaW5kZXhlZCBwYXJhbWV0ZXIgd2l0aCBuYW1lIGZyb20gaW5kZXhJZCBhdHRyaWJ1dGUKKyAgICAgICAgICAgICAgICB3aWxsIGJlIGFkZGVkIHRvIHRoZSBxdWVyeSBzdHJpbmcuIEluZGV4ZWQgcGFyYW1ldGVyIGxvb2tzIGxpa2UKKyAgICAgICAgICAgICAgICAiaW5kZXhbMzJdIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgZm9yIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleElkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBCeSB0aGlzIGF0dHJpYnV0ZSBkaWZmZXJlbnQgbmFtZSBmb3IgdGhlIGluZGV4ZWQgcGFyYW1ldGVyIGNhbiBiZQorICAgICAgICAgICAgICAgIHNwZWNpZmllZC4gVGFrZSBhIGxvb2sgdG8gdGhlICJpbmRleGVkIiBhdHRyaWJ1dGUgZm9yIGRldGFpbHMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bGlua05hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFuY2hvciBuYW1lIHRvIGJlIGRlZmluZWQgd2l0aGluIHRoaXMgcGFnZSwgc28gdGhhdAorICAgICAgICAgICAgICAgICAgeW91IGNhbiByZWZlcmVuY2UgaXQgd2l0aCBpbnRyYS1wYWdlIGh5cGVybGlua3MuICBJbiBvdGhlcgorICAgICAgICAgICAgICAgICAgd29yZHMsIHRoZSB2YWx1ZSBzcGVjaWZpZWQgaGVyZSB3aWxsIHJlbmRlciBhICJuYW1lIiBlbGVtZW50CisgICAgICAgICAgICAgICAgICBpbiB0aGUgZ2VuZXJhdGVkIGFuY2hvciB0YWcuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGNvbnRhaW5zIGEgPGNvZGU+TWFwPC9jb2RlPgorICAgICAgICAgICAgICAgICAgcmVwcmVzZW50aW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGlzIG5vdCBzcGVjaWZpZWQpLCBvciBhIEpTUCBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcworICAgICAgICAgICAgICAgICAgY2FsbGVkIHRvIHJldHVybiBhIDxjb2RlPk1hcDwvY29kZT4gKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgICAgaXMgc3BlY2lmaWVkKS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dCBmb2N1cy48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBtb3VzZSBjbGljay48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBtb3VzZSBkb3VibGUgY2xpY2suPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0IGZvY3VzLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEga2V5IGRvd24gZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEga2V5IHByZXNzIGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIGtleSB1cCBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEgbW91c2UgZG93biBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEgbW91c2UgbW92ZSBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBtb3VzZSBvdXQgZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIG1vdXNlIG92ZXIgZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBtb3VzZSB1cCBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbW9kdWxlLXJlbGF0aXZlIHBhdGggKGJlZ2lubmluZyB3aXRoIGEgIi8iCisgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIpIHRvIHdoaWNoIHRoaXMgaHlwZXJsaW5rIHdpbGwgdHJhbnNmZXIgY29udHJvbAorICAgICAgICAgICAgICAgICAgIGlmIGFjdGl2YXRlZC4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZAorICAgICAgICAgICAgICAgICAgIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkIGluIHRoZQorICAgICAgICAgICAgICAgICAgIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeSBleGFjdGx5CisgICAgICAgICAgICAgICAgICAgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlIDxjb2RlPmxpbmtOYW1lPC9jb2RlPgorICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuICBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcworICAgICAgICAgICAgICAgICAgZGVmaW5lZCBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhbmQgKG9wdGlvbmFsKQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlcywgb3B0aW9uYWxseSBzY29wZWQgYnkKKyAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBhdHRyaWJ1dGU8L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1OYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gdGhhdCBpcyBhIFN0cmluZyBjb250YWluaW5nIHRoZQorICAgICAgICAgICAgICAgICAgdmFsdWUgZm9yIHRoZSByZXF1ZXN0IHBhcmFtZXRlciBuYW1lZCBieSA8Y29kZT5wYXJhbUlkPC9jb2RlPgorICAgICAgICAgICAgICAgICAgKGlmIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQpLCBvciBhIEpTUAorICAgICAgICAgICAgICAgICAgYmVhbiB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMgY2FsbGVkIHRvIHJldHVybiBhIFN0cmluZworICAgICAgICAgICAgICAgICAgKGlmIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZCkuICBUaGUgSlNQIGJlYW4KKyAgICAgICAgICAgICAgICAgIGlzIGNvbnN0cmFpbmVkIHRvIHRoZSBiZWFuIHNjb3BlIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IHByb3BlcnR5LCBpZiBpdCBpcyBzcGVjaWZpZWQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtUHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hvc2UgcmV0dXJuIHZhbHVlIG11c3QKKyAgICAgICAgICAgICAgICAgIGJlIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlIHZhbHVlIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlcgorICAgICAgICAgICAgICAgICAgKG5hbWVkIGJ5IHRoZSA8Y29kZT5wYXJhbUlkPC9jb2RlPiBhdHRyaWJ1dGUpIHRoYXQgd2lsbCBiZQorICAgICAgICAgICAgICAgICAgZHluYW1pY2FsbHkgYWRkZWQgdG8gdGhpcyBoeXBlcmxpbmsuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtU2NvcGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICAgIGFsbCBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hvc2UgcmV0dXJuIHZhbHVlIG11c3QgYmUKKyAgICAgICAgICAgICAgICAgIGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcXVlcnkgcGFyYW1ldGVycworICAgICAgICAgICAgICAgICAgdG8gYmUgYWRkZWQgdG8gdGhlIGh5cGVybGluay4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4KKyAgICAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBpZiB5b3Ugc3BlY2lmeQorICAgICAgICAgICAgICAgICAgdGhpcyBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLCBhbGwKKyAgICAgICAgICAgICAgICAgIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvcgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YXJnZXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHdpbmRvdyB0YXJnZXQgaW4gd2hpY2ggdGhlIHJlc291cmNlIHJlcXVlc3RlZCBieSB0aGlzCisgICAgICAgICAgICAgICAgICBoeXBlcmxpbmsgd2lsbCBiZSBkaXNwbGF5ZWQsIGZvciBleGFtcGxlIGluIGEgZnJhbWVkCisgICAgICAgICAgICAgICAgICBwcmVzZW50YXRpb24uPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBoeXBlcmxpbmsuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dHJhbnNhY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPklmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgYW55IGN1cnJlbnQgdHJhbnNhY3Rpb24KKyAgICAgICAgICAgICAgICAgIGNvbnRyb2wgdG9rZW4gd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluaywKKyAgICAgICAgICAgICAgICAgIHNvIHRoYXQgaXQgd2lsbCBwYXNzIGFuIDxjb2RlPmlzVG9rZW5WYWxpZCgpPC9jb2RlPiB0ZXN0CisgICAgICAgICAgICAgICAgICBpbiB0aGUgcmVjZWl2aW5nIEFjdGlvbi48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dXNlTG9jYWxFbmNvZGluZzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICA8cD5JZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIExvY2FsQ2hhcmFjdGVyRW5jb2Rpbmcgd2lsbCBiZQorICAgICAgICAgICAgICB1c2VkLCB0aGF0IGlzLCB0aGUgY2hhcmFjdGVyRW5jb2Rpbmcgc2V0IHRvIHRoZSBIdHRwU2VydmxldFJlc3BvbnNlLAorICAgICAgICAgICAgICBhcyBwcmVmZXJlZCBjaGFyYWN0ZXIgZW5jb2RpbmcgcmF0aGVyIHRoYW4gVVRGLTgsIHdoZW4KKyAgICAgICAgICAgICAgVVJMRW5jb2RpbmcgaXMgZG9uZSBvbiBwYXJhbWV0ZXJzIG9mIHRoZSBVUkwuPC9wPgorICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPm1lc3NhZ2VzPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk1lc3NhZ2VzVGFnPC90YWctY2xhc3M+CisgICAgICAgIDx0ZWktY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTWVzc2FnZXNUZWk8L3RlaS1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5KU1A8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgICAgIENvbmRpdGlvbmFsbHkgZGlzcGxheSBhIHNldCBvZiBhY2N1bXVsYXRlZCBtZXNzYWdlcy4KKyAgICAgICAgICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICAgICAgPHA+RGlzcGxheXMgYSBzZXQgb2YgbWVzc2FnZXMgcHJlcGFyZWQgYnkgYSBidXNpbmVzcworICAgICAgICAgICAgICAgIGxvZ2ljIGNvbXBvbmVudCBhbmQgc3RvcmVkIGFzIGFuIDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPgorICAgICAgICAgICAgICAgIG9iamVjdCwgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QsIGEgU3RyaW5nLAorICAgICAgICAgICAgICAgIG9yIGEgU3RyaW5nIGFycmF5IGluIGFueSBzY29wZS4gIElmCisgICAgICAgICAgICAgICAgc3VjaCBhIGJlYW4gaXMgbm90IGZvdW5kLCBub3RoaW5nIHdpbGwgYmUgcmVuZGVyZWQuICBUaGUgbWVzc2FnZXMgYXJlIAorICAgICAgICAgICAgICAgIHBsYWNlZCBpbnRvIHRoZSBwYWdlIHNjb3BlIGluIHRoZSBib2R5IG9mIHRoaXMgdGFnIHdoZXJlIHRoZXkgY2FuIGJlIGRpc3BsYXllZCAKKyAgICAgICAgICAgICAgICBieSBzdGFuZGFyZCBKU1AgbWV0aG9kcy4gKEZvciBleGFtcGxlOiA8Y29kZT4mbHQ7YmVhbjp3cml0ZSZndDs8L2NvZGU+LDxjb2RlPiZsdDtjOm91dCZndDs8L2NvZGU+KQorICAgICAgICAgICAgICAgIDwvcD4KKworICAgICAgICAgICAgICAgIDxwPkluIG9yZGVyIHRvIHVzZSB0aGlzIHRhZyBzdWNjZXNzZnVsbHksIHlvdSBtdXN0IGhhdmUKKyAgICAgICAgICAgICAgICBkZWZpbmVkIGFuIGFwcGxpY2F0aW9uIHNjb3BlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+CisgICAgICAgICAgICAgICAgYmVhbiB1bmRlciB0aGUgZGVmYXVsdCBhdHRyaWJ1dGUgbmFtZS48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBUaGUgbmFtZSBvZiBhIHBhZ2Ugc2NvcGUgSlNQIGJlYW4gdGhhdCB3aWxsIGNvbnRhaW4gdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAgIGVsZW1lbnQgb2YgdGhlIGNvbGxlY3Rpb24gb2YgbWVzc2FnZXMgb24gZWFjaCBpdGVyYXRpb24sIGlmIGl0IGlzIG5vdAorICAgICAgICAgICAgICAgICAgPGNvZGU+bnVsbDwvY29kZT4uCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxvY2FsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXNzaW9uIGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBMb2NhbGUgdXNlZCB0byBzZWxlY3QKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMgdG8gYmUgZGlzcGxheWVkLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8KKyAgICAgICAgICAgICAgICAgICAgdGhlIFN0cnV0cyBzdGFuZGFyZCB2YWx1ZS4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgYmVhbiBpbiBhbnkgc2NvcGUgdW5kZXIgd2hpY2ggb3VyIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5IGZvciB3aGljaCBtZXNzYWdlcyBzaG91bGQgYmUKKyAgICAgICAgICAgICAgICAgIGRpc3BsYXllZC4gIElmIG5vdCBzcGVjaWZpZWQsIGFsbCBtZXNzYWdlcyAocmVnYXJkbGVzcworICAgICAgICAgICAgICAgICAgb2YgcHJvcGVydHkpIGFyZSBkaXNwbGF5ZWQuCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aGVhZGVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIFRoaXMgdmFsdWUgaXMgYW4gb3B0aW9uYWwgbWVzc2FnZSByZXNvdXJjZSBrZXkgdGhhdCB3aWxsCisgICAgICAgICAgICAgICAgICBiZSBwcmludGVkIGJlZm9yZSB0aGUgaXRlcmF0aW9uIG9mIG1lc3NhZ2VzIGJlZ2lucy4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mb290ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgVGhpcyB2YWx1ZSBpcyBhbiBvcHRpb25hbCBtZXNzYWdlIHJlc291cmNlIGtleSB0aGF0IHdpbGwKKyAgICAgICAgICAgICAgICAgIGJlIHByaW50ZWQgYWZ0ZXIgdGhlIGl0ZXJhdGlvbiBvZiBtZXNzYWdlcyBoYXMgZmluaXNoZWQuCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bWVzc2FnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBCeSBkZWZhdWx0IHRoZSB0YWcgd2lsbCByZXRyaWV2ZSB0aGUgYmVhbiBpdCB3aWxsCisgICAgICAgICAgICAgICAgICBpdGVyYXRlIG92ZXIgZnJvbSB0aGUgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZywKKyAgICAgICAgICAgICAgICAgIGJ1dCBpZiB0aGlzIGF0dHJpYnV0ZSBpcyBzZXQgdG8gJ3RydWUnIHRoZSBiZWFuCisgICAgICAgICAgICAgICAgICB3aWxsIGJlIHJldHJpZXZlZCBmcm9tIHRoZSA8Y29kZT5HbG9iYWxzLk1FU1NBR0VfS0VZPC9jb2RlPgorICAgICAgICAgICAgICAgICAgY29uc3RhbnQgc3RyaW5nLiAgQWxzbyBpZiB0aGlzIGlzIHNldCB0byAndHJ1ZScsIGFueSB2YWx1ZQorICAgICAgICAgICAgICAgICAgYXNzaWduZWQgdG8gdGhlIG5hbWUgYXR0cmlidXRlIHdpbGwgYmUgaWdub3JlZC4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+bXVsdGlib3g8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTXVsdGlib3hUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgQ2hlY2tib3ggSW5wdXQgRmllbGQKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5jaGVja2JveDwvY29kZT4sIHdob3NlICJjaGVja2VkIiBzdGF0dXMgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVkIGJhc2VkIG9uIHdoZXRoZXIgdGhlIHNwZWNpZmllZCB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlcyBvbmUgb2YgdGhlIGVsZW1lbnRzIG9mIHRoZSB1bmRlcmx5aW5nCisgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eSdzIGFycmF5IG9mIGN1cnJlbnQgdmFsdWVzLiBUaGlzIGVsZW1lbnQgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHVzZWZ1bCB3aGVuIHlvdSBoYXZlIGxhcmdlIG51bWJlcnMgb2YgY2hlY2tib3hlcywgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICBwcmVmZXIgdG8gY29tYmluZSB0aGUgdmFsdWVzIGludG8gYSBzaW5nbGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5LXZhbHVlZCBwcm9wZXJ0eSBpbnN0ZWFkIG9mIG11bHRpcGxlIGJvb2xlYW4KKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMuICBUaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4gbmVzdGVkCisgICAgICAgICAgICAgICAgICAgICAgICBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LjwvcD4KKworICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XQVJOSU5HPC9zdHJvbmc+OiAgSW4gb3JkZXIgdG8gY29ycmVjdGx5CisgICAgICAgICAgICAgICAgICAgICAgICByZWNvZ25pemUgY2FzZXMgd2hlcmUgbm9uZSBvZiB0aGUgYXNzb2NpYXRlZCBjaGVja2JveGVzCisgICAgICAgICAgICAgICAgICAgICAgICBhcmUgc2VsZWN0ZWQsIHRoZSA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBiZWFuCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhpcyBmb3JtIG11c3QgaW5jbHVkZSBhIHN0YXRlbWVudAorICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZyB0aGUgY29ycmVzcG9uZGluZyBhcnJheSB0byB6ZXJvIGxlbmd0aCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPnJlc2V0KCk8L2NvZGU+IG1ldGhvZC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5UaGUgdmFsdWUgdG8gYmUgcmV0dXJuZWQgdG8gdGhlIHNlcnZlciwgaWYgdGhpcyBjaGVja2JveCBpcworICAgICAgICAgICAgICAgIHNlbGVjdGVkLCBtdXN0IGJlIGRlZmluZWQgYnkgb25lIG9mIHRoZSBmb2xsb3dpbmcgbWV0aG9kczo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT5TcGVjaWZ5IGEgPGNvZGU+dmFsdWU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hvc2UgY29udGVudHMgd2lsbAorICAgICAgICAgICAgICAgIGJlIHVzZWQgbGl0ZXJhbGx5IGFzIHRoZSB2YWx1ZSB0byBiZSByZXR1cm5lZC48L2xpPgorICAgICAgICAgICAgICAgIDxsaT5TcGVjaWZ5IG5vIDxjb2RlPnZhbHVlPC9jb2RlPiBhdHRyaWJ1dGUsIGFuZCB0aGUgbmVzdGVkCisgICAgICAgICAgICAgICAgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIHdpbGwgYmUgdXNlZCBhcyB0aGUgdmFsdWUgdG8gYmUKKyAgICAgICAgICAgICAgICByZXR1cm5lZC48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgorCisgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4sIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4gYW5kIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGVzIGFuZCBzaG91bGQgYmUgc2V0IHRvCisgICAgICAgICAgICAgICAgICB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZQorICAgICAgICAgICAgICAgICAgJmx0O2h0bWw6ZXJyb3JzLyZndDsgdGFnLjwvcD4gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlQ2xhc3M8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBjb25zdWx0ZWQgd2hlbgorICAgICAgICAgICAgICAgIHJlbmRlcmluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIGlucHV0IGZpZWxkLiBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybSB0YWcgd2UgYXJlIG5lc3RlZCB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIGJlIHRyYW5zbWl0dGVkIGlmIHRoaXMgY2hlY2tib3ggaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPm9wdGlvbjwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25UYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgICAgIFJlbmRlciBBIFNlbGVjdCBPcHRpb24KKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgICAgIDxwPlJlbmRlciBhbiBIVE1MIDxjb2RlPiZsdDtvcHRpb24mZ3Q7PC9jb2RlPiBlbGVtZW50LAorICAgICAgICAgICAgICAgIHJlcHJlc2VudGluZyBvbmUgb2YgdGhlIGNob2ljZXMgZm9yIGFuIGVuY2xvc2luZworICAgICAgICAgICAgICAgIDxjb2RlPiZsdDtzZWxlY3QmZ3Q7PC9jb2RlPiBlbGVtZW50LiAgVGhlIHRleHQgZGlzcGxheWVkIHRvIHRoZQorICAgICAgICAgICAgICAgIHVzZXIgY29tZXMgZnJvbSBlaXRoZXIgdGhlIGJvZHkgb2YgdGhpcyB0YWcsIG9yIGZyb20gYSBtZXNzYWdlCisgICAgICAgICAgICAgICAgc3RyaW5nIGxvb2tlZCB1cCBiYXNlZCBvbiB0aGUgPGNvZGU+YnVuZGxlPC9jb2RlPiwKKyAgICAgICAgICAgICAgICA8Y29kZT5sb2NhbGU8L2NvZGU+LCBhbmQgPGNvZGU+a2V5PC9jb2RlPiBhdHRyaWJ1dGVzLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPklmIHRoZSB2YWx1ZSBvZiB0aGUgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5IG1hdGNoZXMgdGhlCisgICAgICAgICAgICAgICAgc3BlY2lmaWVkIHZhbHVlLCB0aGlzIG9wdGlvbiB3aWxsIGJlIG1hcmtlZCBzZWxlY3RlZC4gIFRoaXMgdGFnCisgICAgICAgICAgICAgICAgaXMgb25seSB2YWxpZCB3aGVuIG5lc3RlZCBpbnNpZGUgYQorICAgICAgICAgICAgICAgIDxjb2RlPiZsdDtodG1sOnNlbGVjdCZndDs8L2NvZGU+IHRhZyBib2R5LjwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgb3B0aW9uIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5rZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBJZiBzcGVjaWZpZWQsIGRlZmluZXMgdGhlIG1lc3NhZ2Uga2V5IHRvIGJlIGxvb2tlZCB1cCBpbgorICAgICAgICAgICAgICAgICAgICB0aGUgcmVzb3VyY2UgYnVuZGxlIHNwZWNpZmllZCBieSA8Y29kZT5idW5kbGU8L2NvZGU+IGZvcgorICAgICAgICAgICAgICAgICAgICB0aGUgdGV4dCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgZm9yIHRoaXMgb3B0aW9uLiAgSWYgbm90CisgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllZCwgdGhlIHRleHQgdG8gYmUgZGlzcGxheWVkIGlzIHRha2VuIGZyb20gdGhlIGJvZHkKKyAgICAgICAgICAgICAgICAgICAgY29udGVudCBvZiB0aGlzIHRhZy4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxvY2FsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXNzaW9uIGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTG9jYWxlIGluc3RhbmNlIHRvIHVzZQorICAgICAgICAgICAgICAgICAgICBmb3IgbG9va2luZyB1cCB0aGUgbWVzc2FnZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPmtleTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwgdXNlcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgc3RhbmRhcmQgU3RydXRzIHNlc3Npb24gYXR0cmlidXRlIG5hbWUuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBWYWx1ZSB0byBiZSBzdWJtaXR0ZWQgZm9yIHRoaXMgZmllbGQgaWYgdGhpcyBvcHRpb24gaXMKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+b3B0aW9uczwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25zVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+ZW1wdHk8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIGEgQ29sbGVjdGlvbiBvZiBTZWxlY3QgT3B0aW9ucworICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICAgICAgPHA+UmVuZGVycyBhIHNldCBvZiBIVE1MIDxjb2RlPiZsdDtvcHRpb24mZ3Q7PC9jb2RlPiBlbGVtZW50cywKKyAgICAgICAgICAgICAgICByZXByZXNlbnRpbmcgcG9zc2libGUgY2hvaWNlcyBmb3IgYSA8Y29kZT4mbHQ7c2VsZWN0Jmd0OzwvY29kZT4KKyAgICAgICAgICAgICAgICBlbGVtZW50LiAgVGhpcyB0YWcgY2FuIGJlIHVzZWQgbXVsdGlwbGUgdGltZXMgd2l0aGluIGEgc2luZ2xlCisgICAgICAgICAgICAgICAgPGNvZGU+Jmx0O2h0bWw6c2VsZWN0Jmd0OzwvY29kZT4gZWxlbWVudCwgZWl0aGVyIGluIGNvbmp1bmN0aW9uCisgICAgICAgICAgICAgICAgd2l0aCBvciBpbnN0ZWFkIG9mIG9uZSBvciBtb3JlIDxjb2RlPiZsdDtodG1sOm9wdGlvbiZndDs8L2NvZGU+CisgICAgICAgICAgICAgICAgb3IgPGNvZGU+Jmx0O2h0bWw6b3B0aW9uc0NvbGxlY3Rpb24mZ3Q7PC9jb2RlPiBlbGVtZW50cy48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5UaGlzIHRhZyBvcGVyYXRlcyBpbiBvbmUgb2YgdHdvIG1ham9yIG1vZGVzLCBkZXBlbmRpbmcgb24KKyAgICAgICAgICAgICAgICB3aGV0aGVyIG9yIG5vdCB0aGUgPGNvZGU+Y29sbGVjdGlvbjwvY29kZT4gYXR0cmlidXRlIGlzCisgICAgICAgICAgICAgICAgc3BlY2lmaWVkLiAgSWYgdGhlIDxjb2RlPmNvbGxlY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSBpcworICAgICAgICAgICAgICAgIGluY2x1ZGVkLCB0aGUgZm9sbG93aW5nIHJ1bGVzIGFwcGx5OjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPlRoZSA8c3Ryb25nPmNvbGxlY3Rpb248L3N0cm9uZz4gYXR0cmlidXRlIGlzIGludGVycHJldGVkCisgICAgICAgICAgICAgICAgICAgIGFzIHRoZSBuYW1lIG9mIGEgSlNQIGJlYW4sIGluIHNvbWUgc2NvcGUsIHRoYXQgaXRzZWxmCisgICAgICAgICAgICAgICAgICAgIHJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIGluZGl2aWR1YWwgYmVhbnMsIG9uZSBwZXIgb3B0aW9uCisgICAgICAgICAgICAgICAgICAgIHZhbHVlIHRvIGJlIHJlbmRlcmVkLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPlRoZSA8c3Ryb25nPnByb3BlcnR5PC9zdHJvbmc+IGF0dHJpYnV0ZSBpcyBpbnRlcnByZXRlZCBhcworICAgICAgICAgICAgICAgICAgICB0aGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBpbmRpdmlkdWFsIGJlYW5zIGluY2x1ZGVkIGluCisgICAgICAgICAgICAgICAgICAgIHRoZSBjb2xsZWN0aW9uLCBhbmQgaXMgdXNlZCB0byByZXRyaWV2ZSB0aGUgdmFsdWUgdGhhdCB3aWxsCisgICAgICAgICAgICAgICAgICAgIGJlIHJldHVybmVkIHRvIHRoZSBzZXJ2ZXIgaWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+VGhlIDxzdHJvbmc+bGFiZWxQcm9wZXJ0eTwvc3Ryb25nPiBhdHRyaWJ1dGUgaXMgaW50ZXJwcmV0ZWQKKyAgICAgICAgICAgICAgICAgICAgYXMgdGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgaW5kaXZpZHVhbCBiZWFucyBpbmNsdWRlZAorICAgICAgICAgICAgICAgICAgICBpbiB0aGUgY29sbGVjdGlvbiwgYW5kIGlzIHVzZWQgdG8gcmV0cmlldmUgdGhlIGxhYmVsIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgd2lsbCBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgZm9yIHRoaXMgb3B0aW9uLiAgSWYgdGhlCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPmxhYmVsUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgbmFtZWQgYnkgdGhlIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGUgd2lsbAorICAgICAgICAgICAgICAgICAgICBiZSB1c2VkIHRvIHNlbGVjdCBib3RoIHRoZSB2YWx1ZSByZXR1cm5lZCB0byB0aGUgc2VydmVyIGFuZAorICAgICAgICAgICAgICAgICAgICB0aGUgbGFiZWwgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGlzIG9wdGlvbi48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgICA8cD5JZiB0aGUgPGNvZGU+Y29sbGVjdGlvbjwvY29kZT4gYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgdGhlIHJ1bGVzIGRlc2NyaWJlZCBpbiB0aGUgcmVtYWluZGVyIG9mIHRoaXMgc2VjdGlvbiBhcHBseS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5UaGUgY29sbGVjdGlvbiBvZiB2YWx1ZXMgYWN0dWFsbHkgc2VsZWN0ZWQgZGVwZW5kcyBvbiB0aGUgcHJlc2VuY2Ugb3IKKyAgICAgICAgICAgICAgICBhYnNlbmNlIG9mIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhbmQgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMuICBUaGUKKyAgICAgICAgICAgICAgICBmb2xsb3dpbmcgY29tYmluYXRpb25zIGFyZSBhbGxvd2VkOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5Pbmx5IDxjb2RlPm5hbWU8L2NvZGU+IGlzIHNwZWNpZmllZDwvZW0+IC0gVGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlCisgICAgICAgICAgICAgICAgICAgIGlzIHRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gaW4gc29tZSBzY29wZSB0aGF0IGlzIHRoZQorICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5Pbmx5IDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBzcGVjaWZpZWQ8L2VtPiAtIFRoZSB2YWx1ZSBvZiB0aGlzCisgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpcyB0aGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBBY3Rpb25Gb3JtIGJlYW4gYXNzb2NpYXRlZAorICAgICAgICAgICAgICAgICAgICB3aXRoIG91ciBmb3JtLCB3aGljaCB3aWxsIHJldHVybiB0aGUgY29sbGVjdGlvbi48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+Qm90aCA8Y29kZT5uYW1lPC9jb2RlPiBhbmQgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGFyZSBzcGVjaWZpZWQ8L2VtPiAtCisgICAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIGlkZW50aWZpZXMgYSBKU1AgYmVhbgorICAgICAgICAgICAgICAgICAgICBpbiBzb21lIHNjb3BlLiAgVGhlIHZhbHVlIG9mIHRoZSA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlIGlzIHRoZQorICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIHNvbWUgcHJvcGVydHkgb2YgdGhhdCBiZWFuIHdoaWNoIHdpbGwgcmV0dXJuIHRoZSBjb2xsZWN0aW9uLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICAgIDxwPlRoZSBjb2xsZWN0aW9uIG9mIGxhYmVscyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgY2FuIGJlIHRoZSBzYW1lIGFzIHRoZQorICAgICAgICAgICAgICAgIG9wdGlvbiB2YWx1ZXMgdGhlbXNlbHZlcywgb3IgY2FuIGJlIGRpZmZlcmVudCwgZGVwZW5kaW5nIG9uIHRoZSBwcmVzZW5jZSBvcgorICAgICAgICAgICAgICAgIGFic2VuY2Ugb2YgdGhlIDxjb2RlPmxhYmVsTmFtZTwvY29kZT4gYW5kIDxjb2RlPmxhYmVsUHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgYXR0cmlidXRlcy4gIElmIHRoaXMgZmVhdHVyZSBpcyB1c2VkLCB0aGUgY29sbGVjdGlvbiBvZiBsYWJlbHMgbXVzdCBjb250YWluCisgICAgICAgICAgICAgICAgdGhlIHNhbWUgbnVtYmVyIG9mIGVsZW1lbnRzIGFzIHRoZSBjb3JyZXNwb25kaW5nIGNvbGxlY3Rpb24gb2YgdmFsdWVzLgorICAgICAgICAgICAgICAgIFRoZSBmb2xsb3dpbmcgY29tYmluYXRpb25zIGFyZSBhbGxvd2VkOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5OZWl0aGVyIDxjb2RlPmxhYmVsTmFtZTwvY29kZT4gbm9yIDxjb2RlPmxhYmVsUHJvcGVydHk8L2NvZGU+IGlzCisgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllZDwvZW0+IC0gVGhlIGxhYmVscyB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSBvcHRpb24gdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIHRoZW1zZWx2ZXMuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPk9ubHkgPGNvZGU+bGFiZWxOYW1lPC9jb2RlPiBpcyBzcGVjaWZpZWQ8L2VtPiAtIFRoZSB2YWx1ZSBvZiB0aGlzCisgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpcyB0aGUgbmFtZSBvZiBhIEpTUCBiZWFuIGluIHNvbWUgc2NvcGUgdGhhdCBpcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbi48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+T25seSA8Y29kZT5sYWJlbFByb3BlcnR5PC9jb2RlPiBpcyBzcGVjaWZpZWQ8L2VtPiAtIFRoZSB2YWx1ZSBvZiB0aGlzCisgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpcyB0aGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBBY3Rpb25Gb3JtIGJlYW4gYXNzb2NpYXRlZAorICAgICAgICAgICAgICAgICAgICB3aXRoIG91ciBmb3JtLCB3aGljaCB3aWxsIHJldHVybiB0aGUgY29sbGVjdGlvbi48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+Qm90aCA8Y29kZT5sYWJlbE5hbWU8L2NvZGU+IGFuZCA8Y29kZT5sYWJlbFByb3BlcnR5PC9jb2RlPiBhcmUKKyAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkPC9lbT4gLSBUaGUgdmFsdWUgb2YgdGhlIDxjb2RlPmxhYmVsTmFtZTwvY29kZT4gYXR0cmlidXRlCisgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXMgYSBKU1AgYmVhbiBpbiBzb21lIHNjb3BlLiAgVGhlIHZhbHVlIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5sYWJlbFByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGUgaXMgdGhlIG5hbWUgb2Ygc29tZSBwcm9wZXJ0eSBvZgorICAgICAgICAgICAgICAgICAgICB0aGF0IGJlYW4gd2hpY2ggd2lsbCByZXR1cm4gdGhlIGNvbGxlY3Rpb24uPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisKKyAgICAgICAgICAgIDxwPk5vdGUgdGhhdCB0aGlzIHRhZyBkb2VzIG5vdCBzdXBwb3J0IGEgPGNvZGU+c3R5bGVJZDwvY29kZT4KKyAgICAgICAgICAgIGF0dHJpYnV0ZSwgYXMgaXQgd291bGQgaGF2ZSB0byBhcHBseSB0aGUgdmFsdWUgdG8gYWxsIHRoZQorICAgICAgICAgICAgPGNvZGU+b3B0aW9uPC9jb2RlPiBlbGVtZW50cyBjcmVhdGVkIGJ5IHRoaXMgZWxlbWVudCwgd2hpY2ggd291bGQKKyAgICAgICAgICAgIG1lYW4gdGhhdCBtb3JlIHRoYW4gb25lIDxjb2RlPmlkPC9jb2RlPiBlbGVtZW50IG1pZ2h0IGhhdmUgdGhlIHNhbWUKKyAgICAgICAgICAgIHZhbHVlLCB3aGljaCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIHNheXMgaXMgaWxsZWdhbC48L3A+CisKKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5jb2xsZWN0aW9uPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIEpTUCBiZWFuIChpbiBzb21lIHNjb3BlKSB3aGljaCBpcyBpdHNlbGYgYQorICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGlvbiBvZiBvdGhlciBiZWFucywgZWFjaCBvZiB3aGljaCBoYXMgcHJvcGVydGllcworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZWQgYnkgdGhlICJwcm9wZXJ0eSIgYW5kICJsYWJlbFByb3BlcnR5IiBhdHRyaWJ1dGVzCisgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IGFyZSB1c2VkIHRvIHJldHJpZXZlIHRoZSB2YWx1ZSBhbmQgbGFiZWwgZm9yIGVhY2gKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiwgcmVzcGVjdGl2ZWx5LgorICAgICAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZpbHRlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4gaWYgeW91IGRvIE5PVCB3YW50IHRoZSBvcHRpb24gbGFiZWxzCisgICAgICAgICAgICAgICAgZmlsdGVyZWQgZm9yIHNlbnNpdGl2ZSBjaGFyYWN0ZXJzIGluIEhUTUwuICBCeSBkZWZhdWx0LCBzdWNoCisgICAgICAgICAgICAgICAgdmFsdWVzIGFyZSBmaWx0ZXJlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sYWJlbE5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIEpTUCBiZWFuIChpbiBzb21lIHNjb3BlKSBjb250YWluaW5nIHRoZSBjb2xsZWN0aW9uIG9mIGxhYmVscyB0bworICAgICAgICAgICAgICAgIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgdGhlc2Ugb3B0aW9ucy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sYWJlbFByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBQcm9wZXJ0eSBvZiB0aGUgZm9ybSBiZWFuLCBvciB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIGxhYmVsTmFtZQorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgdGhhdCB3aWxsIHJldHVybiB0aGUgY29sbGVjdGlvbiBvZiBsYWJlbHMgdG8gYmUgZGlzcGxheWVkCisgICAgICAgICAgICAgICAgdG8gdGhlIHVzZXIgZm9yIHRoZXNlIG9wdGlvbnMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgSlNQIGJlYW4gKGluIHNvbWUgc2NvcGUpIGNvbnRhaW5pbmcgdGhlIGNvbGxlY3Rpb24gb2YKKyAgICAgICAgICAgICAgICB2YWx1ZXMgdG8gYmUgcmV0dXJuZWQgdG8gdGhlIHNlcnZlciBmb3IgdGhlc2Ugb3B0aW9ucy4gSWYgbm90CisgICAgICAgICAgICAgICAgc3BlY2lmaWVkLCB0aGUgZm9ybSBiZWFuIGFzc29jaWF0ZWQgd2l0aCBvdXIgZm9ybSBpcyBhc3N1bWVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBQcm9wZXJ0eSBvZiB0aGUgZm9ybSBiZWFuLCBvciB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIG5hbWUKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUsIHRoYXQgd2lsbCByZXR1cm4gdGhlIGNvbGxlY3Rpb24gb2YgdmFsdWVzIHRvIHJldHVybmVkCisgICAgICAgICAgICAgICAgdG8gdGhlIHNlcnZlciBmb3IgdGhlc2Ugb3B0aW9ucy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+b3B0aW9uc0NvbGxlY3Rpb248L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+CisgICAgICAgICAgICBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25zQ29sbGVjdGlvblRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PmVtcHR5PC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBhIENvbGxlY3Rpb24gb2YgU2VsZWN0IE9wdGlvbnMKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgPHA+UmVuZGVycyBhIHNldCBvZiBIVE1MIDxjb2RlPiZsdDtvcHRpb24mZ3Q7PC9jb2RlPiBlbGVtZW50cywKKyAgICAgICAgICAgIHJlcHJlc2VudGluZyBwb3NzaWJsZSBjaG9pY2VzIGZvciBhIDxjb2RlPiZsdDtzZWxlY3QmZ3Q7PC9jb2RlPgorICAgICAgICAgICAgZWxlbWVudC4gIFRoaXMgdGFnIGNhbiBiZSB1c2VkIG11bHRpcGxlIHRpbWVzIHdpdGhpbiBhIHNpbmdsZQorICAgICAgICAgICAgPGNvZGU+Jmx0O2h0bWw6c2VsZWN0Jmd0OzwvY29kZT4gZWxlbWVudCwgZWl0aGVyIGluIGNvbmp1bmN0aW9uCisgICAgICAgICAgICB3aXRoIG9yIGluc3RlYWQgb2Ygb25lIG9yIG1vcmUgPGNvZGU+Jmx0O2h0bWw6b3B0aW9uJmd0OzwvY29kZT4KKyAgICAgICAgICAgIG9yIDxjb2RlPiZsdDtodG1sOm9wdGlvbnMmZ3Q7PC9jb2RlPiBlbGVtZW50cy48L3A+CisKKyAgICAgICAgICAgIDxwPlRoaXMgdGFnIG9wZXJhdGVzIG9uIGEgY29sbGVjdGlvbiBvZiBiZWFucywgd2hlcmUgZWFjaCBiZWFuCisgICAgICAgICAgICBoYXMgYSA8c3Ryb25nPmxhYmVsPC9zdHJvbmc+IHByb3BlcnR5IGFuZCBhIDxzdHJvbmc+dmFsdWU8L3N0cm9uZz4KKyAgICAgICAgICAgIHByb3BlcnR5LiBUaGUgYWN0dWFsIG5hbWVzIG9mIHRoZXNlIHByb3BlcnRpZXMgY2FuIGJlIGNvbmZpZ3VyZWQKKyAgICAgICAgICAgIHVzaW5nIHRoZSA8Y29kZT5sYWJlbDwvY29kZT4gYW5kIDxjb2RlPnZhbHVlPC9jb2RlPiBhdHRyaWJ1dGVzCisgICAgICAgICAgICBvZiB0aGlzIHRhZy48L3A+CisKKyAgICAgICAgICAgIDxwPlRoaXMgdGFnIGRpZmZlcnMgZnJvbSB0aGUgPGNvZGU+Jmx0O2h0bWw6b3B0aW9ucyZndDs8L2NvZGU+IHRhZworICAgICAgICAgICAgaW4gdGhhdCBpdCBtYWtlcyBtb3JlIGNvbnNpc3RlbnQgdXNlIG9mIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhbmQKKyAgICAgICAgICAgIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzLCBhbmQgYWxsb3dzIHRoZSBjb2xsZWN0aW9uIHRvIGJlCisgICAgICAgICAgICBtb3JlIGVhc2lseSBvYnRhaW5lZCBmcm9tIHRoZSBlbmNsb3NpbmcgZm9ybSBiZWFuLjwvcD4KKworICAgICAgICAgICAgPHA+Tm90ZSB0aGF0IHRoaXMgdGFnIGRvZXMgbm90IHN1cHBvcnQgYSA8Y29kZT5zdHlsZUlkPC9jb2RlPgorICAgICAgICAgICAgYXR0cmlidXRlLCBhcyBpdCB3b3VsZCBoYXZlIHRvIGFwcGx5IHRoZSB2YWx1ZSB0byBhbGwgdGhlCisgICAgICAgICAgICA8Y29kZT5vcHRpb248L2NvZGU+IGVsZW1lbnRzIGNyZWF0ZWQgYnkgdGhpcyBlbGVtZW50LCB3aGljaCB3b3VsZAorICAgICAgICAgICAgbWVhbiB0aGF0IG1vcmUgdGhhbiBvbmUgPGNvZGU+aWQ8L2NvZGU+IGVsZW1lbnQgbWlnaHQgaGF2ZSB0aGUgc2FtZQorICAgICAgICAgICAgdmFsdWUsIHdoaWNoIHRoZSBIVE1MIHNwZWNpZmljYXRpb24gc2F5cyBpcyBpbGxlZ2FsLjwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5maWx0ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBTZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIHlvdSBkbyBOT1Qgd2FudCB0aGUgb3B0aW9uIGxhYmVscworICAgICAgICAgICAgICAgIGZpbHRlcmVkIGZvciBzZW5zaXRpdmUgY2hhcmFjdGVycyBpbiBIVE1MLiAgQnkgZGVmYXVsdCwgc3VjaAorICAgICAgICAgICAgICAgIHZhbHVlcyBhcmUgZmlsdGVyZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bGFiZWw8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiB3aXRoaW4gdGhlIGNvbGxlY3Rpb24gd2hpY2ggcmVwcmVzZW50cworICAgICAgICAgICAgICAgIHRoZSBsYWJlbCB0byBiZSByZW5kZXJlZCBmb3IgZWFjaCBvcHRpb24uIERlZmF1bHRzIHRvICJsYWJlbCIuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZAorICAgICAgICAgICAgICAgIHdoZW4gcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdAorICAgICAgICAgICAgICAgIHNwZWNpZmllZCwgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkCisgICAgICAgICAgICAgICAgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgcHJvcGVydHkgb2YgdGhlIGZvcm0gYmVhbiwgb3IgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lCisgICAgICAgICAgICAgICAgYXR0cmlidXRlLCB0aGF0IHdpbGwgcmV0dXJuIHRoZSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgdG8gYmUKKyAgICAgICAgICAgICAgICByZW5kZXJlZCBmb3IgdGhlc2Ugb3B0aW9ucy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHByb3BlcnR5IG9mIHRoZSBiZWFuIHdpdGhpbiB0aGUgY29sbGVjdGlvbiB3aGljaCByZXByZXNlbnRzCisgICAgICAgICAgICAgICAgdGhlIHZhbHVlIHRvIGJlIHJlbmRlcmVkIGZvciBlYWNoIG9wdGlvbi4gRGVmYXVsdHMgdG8gInZhbHVlIi4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+cGFzc3dvcmQ8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUGFzc3dvcmRUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgUGFzc3dvcmQgSW5wdXQgRmllbGQKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgUmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlIHBhc3N3b3JkLCBwb3B1bGF0ZWQKKyAgICAgICAgICAgIGZyb20gdGhlIHNwZWNpZmllZCB2YWx1ZSBvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBiZWFuCisgICAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggb3VyIGN1cnJlbnQgZm9ybS4gVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuCisgICAgICAgICAgICBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgorCisgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4sIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4gYW5kIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGVzIGFuZCBzaG91bGQgYmUgc2V0IHRvCisgICAgICAgICAgICAgICAgICB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZQorICAgICAgICAgICAgICAgICAgJmx0O2h0bWw6ZXJyb3JzLyZndDsgdGFnLjwvcD4gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlQ2xhc3M8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bWF4bGVuZ3RoPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBNYXhpbXVtIG51bWJlciBvZiBpbnB1dCBjaGFyYWN0ZXJzIHRvIGFjY2VwdC4gW05vIGxpbWl0XQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBjb25zdWx0ZWQgd2hlbgorICAgICAgICAgICAgICAgIHJlbmRlcmluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIGlucHV0IGZpZWxkLiBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybSB0YWcgd2UgYXJlIG5lc3RlZCB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnJlYWRvbmx5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgcmVhZCBvbmx5LgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5yZWRpc3BsYXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIEJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IGV4aXN0aW5nIHZhbHVlcworICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBiZSByZWRpc3BsYXllZCBpZiB0aGV5IGV4aXN0LiAgRXZlbiB0aG91Z2ggdGhlCisgICAgICAgICAgICAgICAgICAgICAgICByZWRpc3BsYXllZCB2YWx1ZSB3aWxsIGJlIHNob3duIGFzIGFzdGVyaXNrcyBvbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGUgSFRNTCBwYWdlLCB0aGUgY2xlYXJ0ZXh0IG9mIHRoZSBhY3R1YWwgcGFzc3dvcmQKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIHdpbGwgYmUgdmlzaWJsZSB0aG91Z2ggdGhlICJTaG93IFBhZ2UgU291cmNlIgorICAgICAgICAgICAgICAgICAgICAgICAgbWVudSBvcHRpb24gb2YgdGhlIGNsaWVudCBicm93c2VyLiAgWW91IG1heSB3aXNoIHRvCisgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdGhpcyB2YWx1ZSB0byA8Y29kZT5mYWxzZTwvY29kZT4gb24gbG9naW4gcGFnZXMuCisgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byA8Y29kZT50cnVlPC9jb2RlPiBmb3IgY29uc2lzdGVuY3kgd2l0aAorICAgICAgICAgICAgICAgICAgICAgICAgYWxsIG90aGVyIGZvcm0gdGFncyB0aGF0IHJlZGlzcGxheSB0aGVpciBjb250ZW50cy4KKyAgICAgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zaXplPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOdW1iZXIgb2YgY2hhcmFjdGVyIHBvc2l0aW9ucyB0byBhbGxvY2F0ZS4gW0Jyb3dzZXIgZGVmYXVsdF0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWx1ZSBvZiB0aGUgbGFiZWwgdG8gYmUgcGxhY2VkIG9uIHRoaXMgYnV0dG9uLiBUaGlzIHZhbHVlIHdpbGwKKyAgICAgICAgICAgICAgICBhbHNvIGJlIHN1Ym1pdHRlZCBhcyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCByZXF1ZXN0IHBhcmFtZXRlci4KKyAgICAgICAgICAgICAgICBbQm9keSBvZiB0aGlzIHRhZyAoaWYgYW55KV0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+cmFkaW88L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmFkaW9UYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgUmFkaW8gQnV0dG9uIElucHV0IEZpZWxkCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgUmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlIHJhZGlvLCBwb3B1bGF0ZWQgZnJvbQorICAgICAgICAgICAgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggb3VyIGN1cnJlbnQgZm9ybS4KKyAgICAgICAgICAgIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbiBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgSWYgYW4gaXRlcmF0b3IgaXMgdXNlZCB0byByZW5kZXIgYSBzZXJpZXMgb2YgcmFkaW8gdGFncywgdGhlCisgICAgICAgICAgICBpZE5hbWUgYXR0cmlidXRlIG1heSBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIGJlYW4KKyAgICAgICAgICAgIGV4cG9zZWQgYnkgdGhlIGl0ZXJhdG9yLiBJbiB0aGlzIGNhc2UsIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXMKKyAgICAgICAgICAgIHVzZWQgYXMgdGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvbiB0aGUgaWROYW1lIGJlYW4gdGhhdCByZXR1cm5zCisgICAgICAgICAgICB0aGUgdmFsdWUgb2YgdGhlIHJhZGlvIHRhZyBpbiB0aGlzIGl0ZXJhdGlvbi4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgorCisgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4sIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4gYW5kIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGVzIGFuZCBzaG91bGQgYmUgc2V0IHRvCisgICAgICAgICAgICAgICAgICB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZQorICAgICAgICAgICAgICAgICAgJmx0O2h0bWw6ZXJyb3JzLyZndDsgdGFnLjwvcD4gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlQ2xhc3M8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZCB3aGVuCisgICAgICAgICAgICAgICAgcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eSBmb3IgdGhpcyByYWRpbyB0YWcuCisgICAgICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgb2YgdGhlIHJhZGlvIHRhZy4KKyAgICAgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pZE5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIGJlYW4gKGluIHNvbWUgc2NvcGUpIHRoYXQgd2lsbCByZXR1cm4gdGhlCisgICAgICAgICAgICAgICAgdmFsdWUgb2YgdGhlIHJhZGlvIHRhZy4gVXN1YWxseSBleHBvc2VkCisgICAgICAgICAgICAgICAgYnkgYW4gaXRlcmF0b3IuIFdoZW4gdGhlIGlkTmFtZSBhdHRyaWJ1dGUgaXMKKyAgICAgICAgICAgICAgICBwcmVzZW50LCB0aGUgdmFsdWUgYXR0cmlidXRlIGlzIHVzZWQgYXMgdGhlIG5hbWUgb2YgdGhlCisgICAgICAgICAgICAgICAgcHJvcGVydHkgb24gdGhlIGlkTmFtZSBiZWFuIHRoYXQgd2lsbCByZXR1cm4gdGhlCisgICAgICAgICAgICAgICAgdmFsdWUgb2YgdGhlIHJhZGlvIHRhZyBmb3IgdGhpcyBpdGVyYXRpb24uPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjE8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5yZXNldDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SZXNldFRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgQSBSZXNldCBCdXR0b24gSW5wdXQgRmllbGQKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgUmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlIHJlc2V0LgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIGlucHV0IGZpZWxkIHRoYXQgd2lsbCBiZSBnZW5lcmF0ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIFZhbHVlIG9mIHRoZSBsYWJlbCB0byBiZSBwbGFjZWQgb24gdGhpcyBidXR0b24uCisgICAgICAgICAgICAgICAgICAgICAgICBbQm9keSBvZiB0aGlzIHRhZyAoaWYgYW55KSwgb3IgIlJlc2V0Il0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+cmV3cml0ZTwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SZXdyaXRlVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+ZW1wdHk8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPlJlbmRlciBhbiBVUkk8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICAgICAgPHA+UmVuZGVycyBhIHJlcXVlc3QgVVJJIGJhc2VkIG9uIGV4YWN0bHkgdGhlIHNhbWUgcnVsZXMKKyAgICAgICAgICAgICAgICBhcyB0aGUgPGNvZGU+PGEgaHJlZj0iI2xpbmsiPmxpbms8L2E+PC9jb2RlPiB0YWcgZG9lcywKKyAgICAgICAgICAgICAgICBidXQgd2l0aG91dCBjcmVhdGluZworICAgICAgICAgICAgICAgIHRoZSA8Y29kZT4mbHQ7YSZndDs8L2NvZGU+IGh5cGVybGluay4gIFRoaXMgdmFsdWUgaXMgdXNlZnVsCisgICAgICAgICAgICAgICAgd2hlbiB5b3Ugd2FudCB0byBnZW5lcmF0ZSBhIHN0cmluZyBjb25zdGFudCBmb3IgdXNlIGJ5CisgICAgICAgICAgICAgICAgYSBKYXZhU2NyaXB0IHByb2NlZHVyZS48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TG9naWNhbCBuYW1lIG9mIGEgPGNvZGU+QWN0aW9uPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICAgICBjb250YWlucyB0aGUgYWN0dWFsIGNvbnRlbnQtcmVsYXRpdmUgVVJJIG9mIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgICAgICAgb2YgdGhpcyB0cmFuc2Zlci4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQKKyAgICAgICAgICAgICAgICAgIGluIHRoZSB0YWcgZGVzY3JpcHRpb24uIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPgorICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgIAorCQkgICAgICAgPHA+QWRkaXRpb25hbGx5LCB5b3UgY2FuIHNwZWNpZnkgYSA8Y29kZT5tb2R1bGU8L2NvZGU+IHByZWZpeCAKKwkJCSAgIGZvciBsaW5raW5nIHRvIG90aGVyIG1vZHVsZXMuPC9wPgorCQkJCQkJICAgCisJCQkgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi4wPC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tb2R1bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworCQkJCSAgIDxwPlByZWZpeCBuYW1lIG9mIGEgPGNvZGU+TW9kdWxlPC9jb2RlPiB0aGF0CisJCQkJICAgY29udGFpbnMgdGhlIGFjdGlvbiBtYXBwaW5nIGZvciB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPgorCQkJCSAgIHRoYXQgaXMgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZS4KKwkJCQkgICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgYW4gPGNvZGU+YWN0aW9uPC9jb2RlPiAKKwkJCQkgICBhdHRyaWJ1dGUgZm9yIHRoaXMgdG8gaGF2ZSBhbiBlZmZlY3QuPC9wPgorCQkJCisJCQkJICAgPHA+PHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz5Vc2UgIiIgdG8gbWFwIHRvIHRoZSBkZWZhdWx0IG1vZHVsZS48L3A+CisJCQkgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbmNob3I8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+T3B0aW9uYWwgYW5jaG9yIHRhZyAoIiN4eHgiKSB0byBiZSBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgICBoeXBlcmxpbmsuICBTcGVjaWZ5IHRoaXMgdmFsdWUgPHN0cm9uZz53aXRob3V0PC9zdHJvbmc+IGFueQorICAgICAgICAgICAgICAgICAgIiMiIGNoYXJhY3Rlci48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Zm9yd2FyZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5Mb2dpY2FsIG5hbWUgb2YgYSBnbG9iYWwgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zIHRoZSBhY3R1YWwgY29udGVudC1yZWxhdGl2ZSBVUkkgb2YgdGhlIGRlc3RpbmF0aW9uCisgICAgICAgICAgICAgICAgICAgb2YgdGhpcyB0cmFuc2Zlci4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkCisgICAgICAgICAgICAgICAgICAgaW4gdGhlIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPgorICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmhyZWY8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIFVSTCB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAgICBpZiBhY3RpdmF0ZWQuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gdGhhdCBjb250YWlucyBhIDxjb2RlPk1hcDwvY29kZT4KKyAgICAgICAgICAgICAgICAgIHJlcHJlc2VudGluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgICBpcyBub3Qgc3BlY2lmaWVkKSwgb3IgYSBKU1AgYmVhbiB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMKKyAgICAgICAgICAgICAgICAgIGNhbGxlZCB0byByZXR1cm4gYSA8Y29kZT5NYXA8L2NvZGU+IChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGlzIHNwZWNpZmllZCkuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIChiZWdpbm5pbmcgd2l0aCBhICIvIgorICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyKSB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAgICBpZiBhY3RpdmF0ZWQuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgZXhhY3RseQorICAgICAgICAgICAgICAgICAgIG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZSAKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+CisgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1JZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgICBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkIGh5cGVybGluay4gIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGlzCisgICAgICAgICAgICAgICAgICBkZWZpbmVkIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGFuZCAob3B0aW9uYWwpCisgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzLCBvcHRpb25hbGx5IHNjb3BlZCBieQorICAgICAgICAgICAgICAgICAgdGhlIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IGF0dHJpYnV0ZTwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbU5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGlzIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlCisgICAgICAgICAgICAgICAgICB2YWx1ZSBmb3IgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVkIGJ5IDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQCisgICAgICAgICAgICAgICAgICBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcyBjYWxsZWQgdG8gcmV0dXJuIGEgU3RyaW5nCisgICAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkKS4gIFRoZSBKU1AgYmVhbgorICAgICAgICAgICAgICAgICAgaXMgY29uc3RyYWluZWQgdG8gdGhlIGJlYW4gc2NvcGUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gcHJvcGVydHksIGlmIGl0IGlzIHNwZWNpZmllZC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1Qcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdAorICAgICAgICAgICAgICAgICAgYmUgYSBTdHJpbmcgY29udGFpbmluZyB0aGUgdmFsdWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyCisgICAgICAgICAgICAgICAgICAobmFtZWQgYnkgdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+IGF0dHJpYnV0ZSkgdGhhdCB3aWxsIGJlCisgICAgICAgICAgICAgICAgICBkeW5hbWljYWxseSBhZGRlZCB0byB0aGlzIGh5cGVybGluay48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1TY29wZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgICAgYWxsIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdCBiZQorICAgICAgICAgICAgICAgICAgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCisgICAgICAgICAgICAgICAgICB0byBiZSBhZGRlZCB0byB0aGUgaHlwZXJsaW5rLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPgorICAgICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIGlmIHlvdSBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZS4gIElmIG5vdCBzcGVjaWZpZWQsIGFsbAorICAgICAgICAgICAgICAgICAgc2NvcGVzIGFyZSBzZWFyY2hlZC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dHJhbnNhY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPklmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgYW55IGN1cnJlbnQgdHJhbnNhY3Rpb24KKyAgICAgICAgICAgICAgICAgIGNvbnRyb2wgdG9rZW4gd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluaywKKyAgICAgICAgICAgICAgICAgIHNvIHRoYXQgaXQgd2lsbCBwYXNzIGFuIDxjb2RlPmlzVG9rZW5WYWxpZCgpPC9jb2RlPiB0ZXN0CisgICAgICAgICAgICAgICAgICBpbiB0aGUgcmVjZWl2aW5nIEFjdGlvbi48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dXNlTG9jYWxFbmNvZGluZzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICA8cD5JZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIExvY2FsQ2hhcmFjdGVyRW5jb2Rpbmcgd2lsbCBiZQorICAgICAgICAgICAgICB1c2VkLCB0aGF0IGlzLCB0aGUgY2hhcmFjdGVyRW5jb2Rpbmcgc2V0IHRvIHRoZSBIdHRwU2VydmxldFJlc3BvbnNlLAorICAgICAgICAgICAgICBhcyBwcmVmZXJlZCBjaGFyYWN0ZXIgZW5jb2RpbmcgcmF0aGVyIHRoYW4gVVRGLTgsIHdoZW4KKyAgICAgICAgICAgICAgVVJMRW5jb2RpbmcgaXMgZG9uZSBvbiBwYXJhbWV0ZXJzIG9mIHRoZSBVUkwuPC9wPgorICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnNlbGVjdDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TZWxlY3RUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5KU1A8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgU2VsZWN0IEVsZW1lbnQKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MICZsdDtzZWxlY3QmZ3Q7IGVsZW1lbnQsIGFzc29jaWF0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggYSBiZWFuIHByb3BlcnR5IHNwZWNpZmllZCBieSBvdXIgYXR0cmlidXRlcy4gIFRoaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4gbmVzdGVkIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuCisgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CisKKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRoaXMgdGFnIG9wZXJhdGVzIGluIHR3byBtb2RlcywgZGVwZW5kaW5nIHVwb24gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSBvZiB0aGUgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgIGFmZmVjdHMgdGhlIGRhdGEgdHlwZSBvZiB0aGUgYXNzb2NpYXRlZCBwcm9wZXJ0eSB5b3UKKyAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZCB1c2U6PC9wPgorICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxlbT5tdWx0aXBsZT0idHJ1ZSIgSVMgTk9UIHNlbGVjdGVkPC9lbT4gLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IHNob3VsZCBiZSBhIHNjYWxhcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIG9mIGFueSBzdXBwb3J0ZWQgZGF0YSB0eXBlLjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGVtPm11bHRpcGxlPSJ0cnVlIiBJUyBzZWxlY3RlZDwvZW0+IC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBzaG91bGQgYmUgYW4gYXJyYXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBhbnkgc3VwcG9ydGVkIGRhdGEgdHlwZS48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XQVJOSU5HPC9zdHJvbmc+OiAgSW4gb3JkZXIgdG8gY29ycmVjdGx5CisgICAgICAgICAgICAgICAgICAgICAgICByZWNvZ25pemUgY2FzZXMgd2hlcmUgbm8gc2VsZWN0aW9uIGF0IGFsbCBpcyBtYWRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgZm9ybQorICAgICAgICAgICAgICAgICAgICAgICAgbXVzdCBpbmNsdWRlIGEgc3RhdGVtZW50IHJlc2V0dGluZyB0aGUgc2NhbGFyIHByb3BlcnR5CisgICAgICAgICAgICAgICAgICAgICAgICB0byBhIGRlZmF1bHQgdmFsdWUgKGlmIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcyBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldCksIG9yIHRoZSBhcnJheSBwcm9wZXJ0eSB0byB6ZXJvIGxlbmd0aCAoaWYKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcyBzZXQpIGluIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+cmVzZXQoKTwvY29kZT4gbWV0aG9kLjwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvcktleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5OYW1lIG9mIHRoZSByZXF1ZXN0IHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggb3VyIGVycm9yIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLjwvcD4KKworICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IFRoaXMgaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+LCA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+IGFuZCAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4gYXR0cmlidXRlcyBhbmQgc2hvdWxkIGJlIHNldCB0bworICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUKKyAgICAgICAgICAgICAgICAgICZsdDtodG1sOmVycm9ycy8mZ3Q7IHRhZy48L3A+IAorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUNsYXNzPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVJZDwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgImlkWzM0XS5wcm9wZXJ0eU5hbWUiLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm11bHRpcGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgc2V0IHRvIGFueSBhcmJpdHJhcnkgdmFsdWUsIHRoZSByZW5kZXJlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QgZWxlbWVudCB3aWxsIHN1cHBvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgc2VsZWN0aW9ucy4KKyAgICAgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkCisgICAgICAgICAgICAgICAgdG8gZGV0ZXJtaW5lIHdoaWNoIG9wdGlvbiBzaG91bGQgYmUgcHJlLXNlbGVjdGVkIHdoZW4gcmVuZGVyaW5nCisgICAgICAgICAgICAgICAgdGhpcyBpbnB1dCBmaWVsZC4gIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aAorICAgICAgICAgICAgICAgIHRoZSBlbmNsb3NpbmcgPGNvZGU+Jmx0O2h0bWw6Zm9ybSZndDs8L2NvZGU+IHRhZyBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zaXplPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBvcHRpb25zIGRpc3BsYXllZCBhdCBvbmUgdGltZS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIGNvbXBhcmUgd2l0aCBmb3IgbWFya2luZyBhbiBvcHRpb24gc2VsZWN0ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnN1Ym1pdDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TdWJtaXRUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgU3VibWl0IEJ1dHRvbgorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUgPGNvZGU+c3VibWl0PC9jb2RlPi4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgIElmIGEgZ3JhcGhpY2FsIGJ1dHRvbiBpcyBuZWVkZWQgKGEgYnV0dG9uIHdpdGggYW4gaW1hZ2UpLCB0aGVuIHRoZQorICAgICAgICAgICAgIDxhIGhyZWY9IiNpbWFnZSI+PGNvZGU+aW1hZ2U8L2NvZGU+PC9hPiB0YWcgaXMgbW9yZSBhcHByb3ByaWF0ZS4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4gIElmIDxjb2RlPnRydWU8L2NvZGU+CisgICAgICAgICAgICAgICAgdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgInByb3BlcnR5TmFtZVszNF0iLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yCisgICAgICAgICAgICAgICAgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+dGV4dDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0VGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgQW4gSW5wdXQgRmllbGQgb2YgVHlwZSB0ZXh0PC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgPHA+UmVuZGVyIGFuIGlucHV0IGZpZWxkIG9mIHR5cGUgdGV4dC4gIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbiAKKyAgICAgICAgICAgIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LjwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvcktleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5OYW1lIG9mIHRoZSByZXF1ZXN0IHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggb3VyIGVycm9yIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLjwvcD4KKworICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IFRoaXMgaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+LCA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+IGFuZCAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4gYXR0cmlidXRlcyBhbmQgc2hvdWxkIGJlIHNldCB0bworICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUKKyAgICAgICAgICAgICAgICAgICZsdDtodG1sOmVycm9ycy8mZ3Q7IHRhZy48L3A+IAorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUNsYXNzPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVJZDwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgImlkWzM0XS5wcm9wZXJ0eU5hbWUiLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1heGxlbmd0aDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTWF4aW11bSBudW1iZXIgb2YgaW5wdXQgY2hhcmFjdGVycyB0byBhY2NlcHQuIFtObyBsaW1pdF0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkCisgICAgICAgICAgICAgICAgd2hlbiByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBpbnB1dCBmaWVsZC4gSWYgbm90CisgICAgICAgICAgICAgICAgc3BlY2lmaWVkLCB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFnIHdlIGFyZSBuZXN0ZWQKKyAgICAgICAgICAgICAgICB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25zZWxlY3Q8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIGEKKyAgICAgICAgICAgICAgICB3aGVuIGEgdXNlciBzZWxlY3RzIHNvbWUgdGV4dCBpbiBhIHRleHQgZmllbGQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGlzIGlucHV0IGZpZWxkLCBhbmQgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgYmVhbgorICAgICAgICAgICAgICAgIHByb3BlcnR5IGlmIHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQuIFRoZSBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkKKyAgICAgICAgICAgICAgICAoaWYgYW55KSBtdXN0IGJlIG9mIHR5cGUgU3RyaW5nLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnJlYWRvbmx5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgcmVhZCBvbmx5LgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zaXplPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOdW1iZXIgb2YgY2hhcmFjdGVyIHBvc2l0aW9ucyB0byBhbGxvY2F0ZS4gW0Jyb3dzZXIgZGVmYXVsdF0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWx1ZSB0byB3aGljaCB0aGlzIGZpZWxkIHNob3VsZCBiZSBpbml0aWFsaXplZC4gW1VzZSB0aGUKKyAgICAgICAgICAgICAgICBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkgdmFsdWVdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnRleHRhcmVhPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlRleHRhcmVhVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBBIFRleHRhcmVhCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIFJlbmRlciBhIHRleHRhcmVhIGVsZW1lbnQuICBUaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4gbmVzdGVkCisgICAgICAgICAgICAgICAgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmNvbHM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBudW1iZXIgb2YgY29sdW1ucyB0byBkaXNwbGF5LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgorCisgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4sIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4gYW5kIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGVzIGFuZCBzaG91bGQgYmUgc2V0IHRvCisgICAgICAgICAgICAgICAgICB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZQorICAgICAgICAgICAgICAgICAgJmx0O2h0bWw6ZXJyb3JzLyZndDsgdGFnLjwvcD4gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlQ2xhc3M8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZAorICAgICAgICAgICAgICAgIHdoZW4gcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdAorICAgICAgICAgICAgICAgIHNwZWNpZmllZCwgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkCisgICAgICAgICAgICAgICAgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uc2VsZWN0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiBhCisgICAgICAgICAgICAgICAgd2hlbiBhIHVzZXIgc2VsZWN0cyBzb21lIHRleHQgaW4gYSB0ZXh0IGZpZWxkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhpcyBpbnB1dCBmaWVsZCwgYW5kIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIGJlYW4KKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSBpZiB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkLiBUaGUgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5CisgICAgICAgICAgICAgICAgKGlmIGFueSkgbXVzdCBiZSBvZiB0eXBlIFN0cmluZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5yZWFkb25seTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIHJlYWQgb25seS4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cm93czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIG51bWJlciBvZiByb3dzIHRvIGRpc3BsYXkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsdWUgdG8gd2hpY2ggdGhpcyBmaWVsZCBzaG91bGQgYmUgaW5pdGlhbGl6ZWQuIFtVc2UgdGhlCisgICAgICAgICAgICAgICAgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5IHZhbHVlXQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT54aHRtbDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5YaHRtbFRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PmVtcHR5PC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgSFRNTCB0YWdzIGFzIFhIVE1MPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgIDxwPgorICAgICAgICAgICAgVXNpbmcgdGhpcyB0YWcgaW4gYSBwYWdlIHRlbGxzIGFsbCBvdGhlciBodG1sIHRhZ2xpYiB0YWdzCisgICAgICAgICAgICB0byByZW5kZXIgdGhlbXNlbHZlcyBhcyBYSFRNTCAxLjAuICBUaGlzIGlzIHVzZWZ1bAorICAgICAgICAgICAgd2hlbiBjb21wb3NpbmcgcGFnZXMgd2l0aCBKU1AgaW5jbHVkZXMgb3IgVGlsZXMuIAorICAgICAgICAgICAgJmx0O2h0bWw6aHRtbCB4aHRtbD0idHJ1ZSImZ3Q7IGhhcyBhIHNpbWlsYXIgZWZmZWN0LiAgVGhpcworICAgICAgICAgICAgdGFnIGhhcyBubyBhdHRyaWJ1dGVzOyB5b3UgdXNlIGl0IGxpa2UgdGhpczogJmx0O2h0bWw6eGh0bWwvJmd0Oy4KKyAgICAgICAgICA8L3A+CisgICAgICAgICAgPHA+CisgICAgICAgICAgCTxzdHJvbmc+Tm90ZTwvc3Ryb25nPjogSW5jbHVkZWQgcGFnZXMgZG8gbm90IGluaGVyaXQgdGhlIHJlbmRlcmluZworICAgICAgICAgIAlzdHlsZSBvZiB0aGUgaW5jbHVkaW5nIHBhZ2UuICBFYWNoIEpTUCBmcmFnbWVudCBvciBUaWxlIG11c3QgdXNlIHRoaXMKKyAgICAgICAgICAJdGFnIHRvIHJlbmRlciBhcyBYSFRNTC4gIAorICAgICAgICAgIDwvcD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICA8L3RhZz4KKzwvdGFnbGliPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMS1zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0xLXNyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiY2FhYjcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMS1zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApAQCAtMCwwICsxLDI2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+CisKKzwhRE9DVFlQRSB3ZWItYXBwIFBVQkxJQworICAgICAgICAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIFdlYiBBcHBsaWNhdGlvbiAyLjMvL0VOIgorICAgICAgICAiaHR0cDovL2phdmEuc3VuLmNvbS9kdGQvd2ViLWFwcF8yXzMuZHRkIj4KKworPHdlYi1hcHA+CisKKyAgICA8IS0tIEFjdGlvbiBTZXJ2bGV0IENvbmZpZ3VyYXRpb24gLS0+CisgICAgPHNlcnZsZXQ+CisgICAgICAgIDxzZXJ2bGV0LW5hbWU+YWN0aW9uPC9zZXJ2bGV0LW5hbWU+CisgICAgICAgIDxzZXJ2bGV0LWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0PC9zZXJ2bGV0LWNsYXNzPgorICAgICAgICA8aW5pdC1wYXJhbT4KKyAgICAgICAgICAgIDxwYXJhbS1uYW1lPmNvbmZpZzwvcGFyYW0tbmFtZT4KKyAgICAgICAgICAgIDxwYXJhbS12YWx1ZT4vV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbDwvcGFyYW0tdmFsdWU+CisgICAgICAgIDwvaW5pdC1wYXJhbT4KKyAgICAgICAgPGxvYWQtb24tc3RhcnR1cD4xPC9sb2FkLW9uLXN0YXJ0dXA+CisgICAgPC9zZXJ2bGV0PgorCisgICAgPCEtLSBBY3Rpb24gU2VydmxldCBNYXBwaW5nIC0tPgorICAgIDxzZXJ2bGV0LW1hcHBpbmc+CisgICAgICAgIDxzZXJ2bGV0LW5hbWU+YWN0aW9uPC9zZXJ2bGV0LW5hbWU+CisgICAgICAgIDx1cmwtcGF0dGVybj4qLmRvPC91cmwtcGF0dGVybj4KKyAgICA8L3NlcnZsZXQtbWFwcGluZz4KKworPC93ZWItYXBwPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTItc3JjL01FVEEtSU5GL2NvbnRleHQueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTItc3JjL01FVEEtSU5GL2NvbnRleHQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMGI1ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMi1zcmMvTUVUQS1JTkYvY29udGV4dC54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPENvbnRleHQgcGF0aD0iLyI+Cis8L0NvbnRleHQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMi1zcmMvV0VCLUlORi93ZWIueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTItc3JjL1dFQi1JTkYvd2ViLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWZjOTk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTItc3JjL1dFQi1JTkYvd2ViLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CisKKzwhRE9DVFlQRSB3ZWItYXBwIFBVQkxJQyAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIFdlYiBBcHBsaWNhdGlvbiAyLjMvL0VOIiAiaHR0cDovL2phdmEuc3VuLmNvbS9kdGQvd2ViLWFwcF8yXzMuZHRkIj4KKzx3ZWItYXBwPgorPC93ZWItYXBwPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvTWFpbk1lbnUuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTItc3JjL3dlYmFwcC9NYWluTWVudS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQzMWIxOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvTWFpbk1lbnUuanNwCkBAIC0wLDAgKzEsMTYgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7Y2hhcnNldD1VVEYtOCIgbGFuZ3VhZ2U9ImphdmEiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtYmVhbiIgcHJlZml4PSJiZWFuIiAlPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+TWFpbiBNZW51PC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDM+TWFpbiBNZW51IE9wdGlvbnMgZm9yIDxiZWFuOndyaXRlIG5hbWU9IlJlZ2lzdGVyRm9ybSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk9ImZ1bGxOYW1lIi8+PC9oMz4KKzx1bD4KKyAgICA8bGk+W1RPRE9dIEVkaXQgUHJvZmlsZTwvbGk+CisgICAgPGxpPltUT0RPXSBMb2dvdXQ8L2xpPgorPC91bD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvUmVnaXN0ZXJGb3JtLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvUmVnaXN0ZXJGb3JtLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWIxZmJlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTItc3JjL3dlYmFwcC9SZWdpc3RlckZvcm0uanNwCkBAIC0wLDAgKzEsODkgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7Y2hhcnNldD1VVEYtOCIgbGFuZ3VhZ2U9ImphdmEiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtaHRtbCIgcHJlZml4PSJodG1sIiAlPgorCis8aHRtbDpodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8dGl0bGU+UmVnaXN0ZXIgRm9ybTwvdGl0bGU+CisgICAgPC9oZWFkPgorCisgICAgPGJvZHk+CisKKyAgICA8aHRtbDplcnJvcnMvPgorCisgICAgPGh0bWw6Zm9ybSBhY3Rpb249Ii9SZWdpc3RlclNhdmUiPgorICAgICAgICA8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSI+CisKKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGggYWxpZ249InJpZ2h0Ij4KKyAgICAgICAgICAgICAgICAgICAgVXNlcm5hbWU6CisgICAgICAgICAgICAgICAgPC90aD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgICAgICA8aHRtbDp0ZXh0IHByb3BlcnR5PSJ1c2VybmFtZSIgc2l6ZT0iMTYiIG1heGxlbmd0aD0iMTYiLz4KKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKworICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0aCBhbGlnbj0icmlnaHQiPgorICAgICAgICAgICAgICAgICAgICBQYXNzd29yZDoKKyAgICAgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgICAgIDxodG1sOnBhc3N3b3JkIHByb3BlcnR5PSJwYXNzd29yZCIgc2l6ZT0iMTYiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD0iMTYiLz4KKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKworICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0aCBhbGlnbj0icmlnaHQiPgorICAgICAgICAgICAgICAgICAgICBDb25maXJtIFBhc3N3b3JkOgorICAgICAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICAgICAgPGh0bWw6cGFzc3dvcmQgcHJvcGVydHk9InBhc3N3b3JkMiIgc2l6ZT0iMTYiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD0iMTYiLz4KKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKworICAgICAgICAgICAgPCEtLSBMYWIgMS0yOiBJbnNlcnQgcmVtYWluaW5nIGZpZWxkcyBmcm9tIHVzZSBjYXNlIC0tPgorCisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRoIGFsaWduPSJyaWdodCI+CisgICAgICAgICAgICAgICAgICAgIEZ1bGxuYW1lOgorICAgICAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICAgICAgPGh0bWw6dGV4dCBwcm9wZXJ0eT0iZnVsbE5hbWUiIHNpemU9IjUwIi8+CisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGggYWxpZ249InJpZ2h0Ij4KKyAgICAgICAgICAgICAgICAgICAgRnJvbSBBZGRyZXNzOgorICAgICAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICAgICAgPGh0bWw6dGV4dCBwcm9wZXJ0eT0iZnJvbUFkZHJlc3MiIHNpemU9IjUwIi8+CisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGggYWxpZ249InJpZ2h0Ij4KKyAgICAgICAgICAgICAgICAgICAgUmVwbHkgVG8gQWRkcmVzczoKKyAgICAgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgICAgIDxodG1sOnRleHQgcHJvcGVydHk9InJlcGx5VG9BZGRyZXNzIiBzaXplPSI1MCIvPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJyaWdodCI+CisgICAgICAgICAgICAgICAgICAgIDxodG1sOnN1Ym1pdCB2YWx1ZT0iU0FWRSIvPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICAgICAgPGh0bWw6cmVzZXQgdmFsdWU9IlJFU0VUIi8+CisgICAgICAgICAgICAgICAgICAgICZuYnNwOworICAgICAgICAgICAgICAgICAgICA8aHRtbDpjYW5jZWwgdmFsdWU9IkNBTkNFTCIvPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorCisgICAgICAgIDwvdGFibGU+CisgICAgPC9odG1sOmZvcm0+CisKKyAgICA8L2JvZHk+Cis8L2h0bWw6aHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvV0VCLUlORi9SZWdpc3Rlci1jb25maWd1cmUueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTItc3JjL3dlYmFwcC9XRUItSU5GL1JlZ2lzdGVyLWNvbmZpZ3VyZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNjNTNmMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvV0VCLUlORi9SZWdpc3Rlci1jb25maWd1cmUueG1sCkBAIC0wLDAgKzEsNTAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IURPQ1RZUEUgc3RydXRzLWNvbmZpZyBQVUJMSUMKKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMS4zLy9FTiIKKyAgICAgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy1jb25maWdfMV8zLmR0ZCI+CisKKzxzdHJ1dHMtY29uZmlnPgorCisgICAgPGZvcm0tYmVhbnM+CisgICAgICAgIDxmb3JtLWJlYW4KKyAgICAgICAgICAgICAgICBuYW1lPSJSZWdpc3RlckZvcm0iCisgICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLkR5bmFWYWxpZGF0b3JGb3JtIj4KKyAgICAgICAgICAgIDxmb3JtLXByb3BlcnR5CisgICAgICAgICAgICAgICAgICAgIG5hbWU9InVzZXJuYW1lIgorICAgICAgICAgICAgICAgICAgICB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIi8+CisgICAgICAgICAgICA8Zm9ybS1wcm9wZXJ0eQorICAgICAgICAgICAgICAgICAgICBuYW1lPSJwYXNzd29yZCIKKyAgICAgICAgICAgICAgICAgICAgdHlwZT0iamF2YS5sYW5nLlN0cmluZyIvPgorICAgICAgICAgICAgPGZvcm0tcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmQyIgorICAgICAgICAgICAgICAgICAgICB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIi8+CisgICAgICAgICAgICA8IS0tIExhYiAxLTI6IEluc2VydCByZW1haW5pbmcgZmllbGRzIGZyb20gdXNlIGNhc2UgLS0+CisgICAgICAgICAgICA8Zm9ybS1wcm9wZXJ0eQorICAgICAgICAgICAgICAgICAgICBuYW1lPSJmdWxsTmFtZSIKKyAgICAgICAgICAgICAgICAgICAgdHlwZT0iamF2YS5sYW5nLlN0cmluZyIvPgorICAgICAgICAgICAgPGZvcm0tcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgbmFtZT0iZnJvbUFkZHJlc3MiCisgICAgICAgICAgICAgICAgICAgIHR5cGU9ImphdmEubGFuZy5TdHJpbmciLz4KKyAgICAgICAgICAgIDxmb3JtLXByb3BlcnR5CisgICAgICAgICAgICAgICAgICAgIG5hbWU9InJlcGx5VG9BZGRyZXNzIgorICAgICAgICAgICAgICAgICAgICB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIi8+CisgICAgICAgIDwvZm9ybS1iZWFuPgorICAgIDwvZm9ybS1iZWFucz4KKworICAgIDxhY3Rpb24tbWFwcGluZ3MKKyAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0QWN0aW9uTWFwcGluZyI+CisKKyAgICAgICAgPGFjdGlvbiBwYXRoPSIvUmVnaXN0ZXIiCisgICAgICAgICAgICAgICAgbmFtZT0iUmVnaXN0ZXJGb3JtIgorICAgICAgICAgICAgICAgIGZvcndhcmQ9Ii9SZWdpc3RlckZvcm0uanNwIgorICAgICAgICAgICAgICAgIHZhbGlkYXRlPSJmYWxzZSIvPgorCisgICAgICAgIDxhY3Rpb24gcGF0aD0iL1JlZ2lzdGVyU2F2ZSIKKyAgICAgICAgICAgICAgICBuYW1lPSJSZWdpc3RlckZvcm0iCisgICAgICAgICAgICAgICAgdmFsaWRhdGU9InRydWUiCisgICAgICAgICAgICAgICAgaW5wdXQ9Ii9SZWdpc3Rlci5kbyIKKyAgICAgICAgICAgICAgICBmb3J3YXJkPSIvTWFpbk1lbnUuanNwIi8+CisKKyAgICA8L2FjdGlvbi1tYXBwaW5ncz4KKworPC9zdHJ1dHMtY29uZmlnPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTItc3JjL3dlYmFwcC9XRUItSU5GL1JlZ2lzdGVyLXZhbGlkYXRlLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvV0VCLUlORi9SZWdpc3Rlci12YWxpZGF0ZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQwNmMxMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvV0VCLUlORi9SZWdpc3Rlci12YWxpZGF0ZS54bWwKQEAgLTAsMCArMSw0NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzwhRE9DVFlQRSBmb3JtLXZhbGlkYXRpb24gUFVCTElDCisgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIENvbW1vbnMgVmFsaWRhdG9yIFJ1bGVzIENvbmZpZ3VyYXRpb24gMS4yLjAvL0VOIgorICAgICAgICAiaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2R0ZHMvdmFsaWRhdG9yXzFfMl8wLmR0ZCI+CisKKzxmb3JtLXZhbGlkYXRpb24+CisKKyAgICA8Zm9ybXNldD4KKyAgICAgICAgPGZvcm0gbmFtZT0iUmVnaXN0ZXJGb3JtIj4KKworICAgICAgICAgICAgPGZpZWxkIHByb3BlcnR5PSJ1c2VybmFtZSIgZGVwZW5kcz0icmVxdWlyZWQiPgorICAgICAgICAgICAgICAgIDxhcmcgcG9zaXRpb249IjAiIGtleT0idXNlcm5hbWUubGFiZWwiLz4KKyAgICAgICAgICAgIDwvZmllbGQ+CisKKyAgICAgICAgICAgIDxmaWVsZCBwcm9wZXJ0eT0icGFzc3dvcmQiIGRlcGVuZHM9InJlcXVpcmVkIj4KKyAgICAgICAgICAgICAgICA8YXJnIHBvc2l0aW9uPSIwIiBrZXk9InBhc3N3b3JkLmxhYmVsIi8+CisgICAgICAgICAgICA8L2ZpZWxkPgorCisgICAgICAgICAgICA8ZmllbGQgcHJvcGVydHk9InBhc3N3b3JkMiIgZGVwZW5kcz0icmVxdWlyZWQsdmFsaWR3aGVuIj4KKyAgICAgICAgICAgICAgICA8YXJnIHBvc2l0aW9uPSIwIiBrZXk9InBhc3N3b3JkMi5sYWJlbCIvPgorICAgICAgICAgICAgICAgIDx2YXI+CisgICAgICAgICAgICAgICAgICAgIDx2YXItbmFtZT50ZXN0PC92YXItbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgPHZhci12YWx1ZT4oKnRoaXMqID09IHBhc3N3b3JkKTwvdmFyLXZhbHVlPgorICAgICAgICAgICAgICAgIDwvdmFyPgorICAgICAgICAgICAgPC9maWVsZD4KKworICAgICAgICAgICAgPCEtLSBMYWIgMS0yOiBJbnNlcnQgcmVtYWluaW5nIGZpZWxkcyBmcm9tIHVzZSBjYXNlIC0tPgorCisgICAgICAgICAgICA8ZmllbGQgcHJvcGVydHk9ImZ1bGxOYW1lIgorICAgICAgICAgICAgICAgICAgIGRlcGVuZHM9InJlcXVpcmVkIj4KKyAgICAgICAgICAgICAgICA8YXJnIGtleT0iZnVsbE5hbWUubGFiZWwiLz4KKyAgICAgICAgICAgIDwvZmllbGQ+CisKKyAgICAgICAgICAgIDxmaWVsZCBwcm9wZXJ0eT0iZnJvbUFkZHJlc3MiCisgICAgICAgICAgICAgICAgICAgZGVwZW5kcz0icmVxdWlyZWQsZW1haWwiPgorICAgICAgICAgICAgICAgIDxhcmcga2V5PSJmcm9tQWRkcmVzcy5sYWJlbCIvPgorICAgICAgICAgICAgPC9maWVsZD4KKworICAgICAgICAgICAgPGZpZWxkIHByb3BlcnR5PSJyZXBseVRvQWRkcmVzcyIKKyAgICAgICAgICAgICAgICAgICBkZXBlbmRzPSJlbWFpbCI+CisgICAgICAgICAgICAgICAgPGFyZyBrZXk9InJlcGx5VG9BZGRyZXNzLmxhYmVsIi8+CisgICAgICAgICAgICA8L2ZpZWxkPgorCisgICAgICAgIDwvZm9ybT4KKyAgICA8L2Zvcm1zZXQ+Cis8L2Zvcm0tdmFsaWRhdGlvbj4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvV0VCLUlORi9jbGFzc2VzL01lc3NhZ2VSZXNvdXJjZXMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvV0VCLUlORi9jbGFzc2VzL01lc3NhZ2VSZXNvdXJjZXMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzc0M2VkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTItc3JjL3dlYmFwcC9XRUItSU5GL2NsYXNzZXMvTWVzc2FnZVJlc291cmNlcy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTQgQEAKK2Vycm9ycy5mb290ZXI9PC91bD48aHI+CitlcnJvcnMuaGVhZGVyPTxoMz48Zm9udCBjb2xvcj0icmVkIj5WYWxpZGF0aW9uIEVycm9yPC9mb250PjwvaDM+PHA+WW91IG11c3QgY29ycmVjdCB0aGUgZm9sbG93aW5nIGVycm9yKHMpIGJlZm9yZSBwcm9jZWVkaW5nOjwvcD48dWw+CitlcnJvcnMucHJlZml4PTxsaT4KK2Vycm9ycy5zdWZmaXg9PC9saT4KK2Vycm9ycy5pb0V4Y2VwdGlvbj1JL08gZXhjZXB0aW9uIHJlbmRlcmluZyBlcnJvciBtZXNzYWdlczogezB9CitlcnJvcnMucmVxdWlyZWQ9ezB9IGlzIHJlcXVpcmVkLgorZXJyb3JzLmVtYWlsPXswfSBpcyBub3QgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLgordXNlcm5hbWUubGFiZWw9VXNlcm5hbWUKK3Bhc3N3b3JkLmxhYmVsPVBhc3N3b3JkCitwYXNzd29yZDIubGFiZWw9Q29uZmlybSBQYXNzd29yZAorIyAgTGFiIDEtMjogSW5zZXJ0IHJlbWFpbmluZyBmaWVsZHMgZnJvbSB1c2UgY2FzZQorZnVsbE5hbWUubGFiZWw9RnVsbCBOYW1lCitmcm9tQWRkcmVzcy5sYWJlbD1Gcm9tIEFkZHJlc3MKK3JlcGx5VG9BZGRyZXNzLmxhYmVsPVJlcGx5IFRvIEFkZHJlc3MKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWVhYzAzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTItc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IURPQ1RZUEUgc3RydXRzLWNvbmZpZyBQVUJMSUMKKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMS4zLy9FTiIKKyAgICAgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy1jb25maWdfMV8zLmR0ZCI+CisKKzxzdHJ1dHMtY29uZmlnPgorCisgICAgPG1lc3NhZ2UtcmVzb3VyY2VzCisgICAgICAgICAgICBwYXJhbWV0ZXI9Ik1lc3NhZ2VSZXNvdXJjZXMiLz4KKworICAgIDxwbHVnLWluCisgICAgICAgICAgICBjbGFzc05hbWU9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5WYWxpZGF0b3JQbHVnSW4iPgorICAgICAgICA8c2V0LXByb3BlcnR5CisgICAgICAgICAgICAgICAgcHJvcGVydHk9InBhdGhuYW1lcyIKKyAgICAgICAgICAgICAgICB2YWx1ZT0iL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci92YWxpZGF0b3ItcnVsZXMueG1sLAorICAgICAgICAgICAgICAgIC9XRUItSU5GL1JlZ2lzdGVyLXZhbGlkYXRlLnhtbCIKKyAgICAgICAgICAgICAgICAvPgorICAgIDwvcGx1Zy1pbj4KKworPC9zdHJ1dHMtY29uZmlnPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTItc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1odG1sLnRsZCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtaHRtbC50bGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ0ODQzYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtaHRtbC50bGQKQEAgLTAsMCArMSw4NzUyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHRhZ2xpYgorICAgICAgICBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBKU1AgVGFnIExpYnJhcnkgMS4yLy9FTiIKKyAgICAgICAgImh0dHA6Ly9qYXZhLnN1bi5jb20vZHRkL3dlYi1qc3B0YWdsaWJyYXJ5XzFfMi5kdGQiPgorPHRhZ2xpYj4KKyAgICA8dGxpYi12ZXJzaW9uPjEuMzwvdGxpYi12ZXJzaW9uPgorICAgIDxqc3AtdmVyc2lvbj4xLjI8L2pzcC12ZXJzaW9uPgorICAgIDxzaG9ydC1uYW1lPmh0bWw8L3Nob3J0LW5hbWU+CisgICAgPHVyaT5odHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1odG1sPC91cmk+CisgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICA8IVtDREFUQVsKKyAgPHA+CisgICAgICAgIFRoaXMgdGFnbGliIGNvbnRhaW5zIHRhZ3MgdXNlZCB0byBjcmVhdGUgc3RydXRzCisgICAgICAgIGlucHV0IGZvcm1zLCBhcyB3ZWxsIGFzIG90aGVyIHRhZ3MgZ2VuZXJhbGx5IHVzZWZ1bAorICAgICAgICAgICAgICAgIGluIHRoZSBjcmVhdGlvbiBvZiBIVE1MLWJhc2VkIHVzZXIgaW50ZXJmYWNlcy4KKyAgPC9wPgorCisgIDxwPk1hbnkgb2YgdGhlIHRhZ3MgaW4gdGhpcyB0YWcgbGlicmFyeSB3aWxsIHRocm93IGEKKyAgPGNvZGU+SnNwRXhjZXB0aW9uPC9jb2RlPiBhdCBydW50aW1lIHdoZW4gdGhleSBhcmUgdXRpbGl6ZWQgaW5jb3JyZWN0bHkKKyAgKHN1Y2ggYXMgd2hlbiB5b3Ugc3BlY2lmeSBhbiBpbnZhbGlkIGNvbWJpbmF0aW9uIG9mIHRhZyBhdHRyaWJ1dGVzKS4gIEpTUAorICBhbGxvd3MgeW91IHRvIGRlY2xhcmUgYW4gImVycm9yIHBhZ2UiIGluIHRoZSA8Y29kZT4mbHQ7JUAgcGFnZSAlJmd0OzwvY29kZT4KKyAgZGlyZWN0aXZlLiAgSWYgeW91IHdpc2ggdG8gcHJvY2VzcyB0aGUgYWN0dWFsIGV4Y2VwdGlvbiB0aGF0IGNhdXNlZCB0aGUKKyAgcHJvYmxlbSwgaXQgaXMgcGFzc2VkIHRvIHRoZSBlcnJvciBwYWdlIGFzIGEgcmVxdWVzdCBhdHRyaWJ1dGUgdW5kZXIga2V5CisgIDxjb2RlPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5FWENFUFRJT048L2NvZGU+LjwvcD4KKyAgXV0+CisgICAgPC9kZXNjcmlwdGlvbj4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5iYXNlPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJhc2VUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5lbXB0eTwvYm9keS1jb250ZW50PgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+UmVuZGVyIGFuIEhUTUwgPGNvZGU+Jmx0O2Jhc2UmZ3Q7PC9jb2RlPiBFbGVtZW50PC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgIDxwPlJlbmRlcnMgYW4gSFRNTCA8Y29kZT4mbHQ7YmFzZSZndDs8L2NvZGU+IGVsZW1lbnQgd2l0aCBhbgorICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSBwb2ludGluZyB0byB0aGUgYWJzb2x1dGUgbG9jYXRpb24gb2YKKyAgICAgICAgICB0aGUgZW5jbG9zaW5nIEpTUCBwYWdlLiAgVGhpcyB0YWcgaXMgdmFsaWQgb25seSB3aGVuIG5lc3RlZCBpbnNpZGUKKyAgICAgICAgICBhbiBIVE1MIDxjb2RlPiZsdDtoZWFkJmd0OzwvY29kZT4gZWxlbWVudC48L3A+CisKKyAgICAgICAgICA8cD5UaGlzIHRhZyBpcyB1c2VmdWwgYmVjYXVzZSBpdCBhbGxvd3MgeW91IHRvIHVzZSByZWxhdGl2ZSBVUkwKKyAgICAgICAgICByZWZlcmVuY2VzIGluIHRoZSBwYWdlIHRoYXQgYXJlIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIFVSTCBvZiB0aGUKKyAgICAgICAgICBwYWdlIGl0c2VsZiwgcmF0aGVyIHRoYW4gdGhlIFVSTCB0byB3aGljaCB0aGUgbW9zdCByZWNlbnQgc3VibWl0CisgICAgICAgICAgdG9vayBwbGFjZSAod2hpY2ggaXMgd2hlcmUgdGhlIGJyb3dzZXIgd291bGQgbm9ybWFsbHkgcmVzb2x2ZQorICAgICAgICAgIHJlbGF0aXZlIHJlZmVyZW5jZXMgYWdhaW5zdCkuPC9wPgorICAgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFyZ2V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgPHA+VGhlIHdpbmRvdyB0YXJnZXQgZm9yIHRoaXMgYmFzZSByZWZlcmVuY2UuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNlcnZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgIDxwPlRoZSBzZXJ2ZXIgbmFtZSB0byB1c2UgaW5zdGVhZCBvZiByZXF1ZXN0LmdldFNlcnZlck5hbWUoKS48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cmVmPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgPHA+VGhlIHJlZmVyZW5jZSBmcm9tIHdoaWNoIHRoZSBiYXNlIHVyaSB3aWxsIGNyZWF0ZWQuICBQb3NzaWJsZSB2YWx1ZXMgYXJlOgorICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGNvZGU+cGFnZTwvY29kZT4gLSBUaGUgYmFzZSB1cmkgd2lsbCBiZSB0aGUganNwIHBhZ2UgbG9jYXRpb24uIChkZWZhdWx0KTwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxjb2RlPnNpdGU8L2NvZGU+IC0gVGhlIGJhc2UgdXJpIHdpbGwgYmUgdGhlIGFwcGxpY2F0aW9uIGNvbnRleHQgcGF0aC48L2xpPgorICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4zPC9kZD48L2RsPgorCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmJ1dHRvbjwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CdXR0b25UYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPlJlbmRlciBBIEJ1dHRvbiBJbnB1dCBGaWVsZDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZQorICAgICAgICAgICAgICAgIDxjb2RlPmJ1dHRvbjwvY29kZT4sIHBvcHVsYXRlZCBmcm9tIHRoZSBzcGVjaWZpZWQgdmFsdWUgb3IgdGhlCisgICAgICAgICAgICAgICAgY29udGVudCBvZiB0aGlzIHRhZyBib2R5LiBUaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4gbmVzdGVkCisgICAgICAgICAgICAgICAgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgIElmIGEgZ3JhcGhpY2FsIGJ1dHRvbiBpcyBuZWVkZWQgKGEgYnV0dG9uIHdpdGggYW4gaW1hZ2UpLCB0aGVuIHRoZQorICAgICAgICAgICAgIDxhIGhyZWY9IiNpbWFnZSI+PGNvZGU+aW1hZ2U8L2NvZGU+PC9hPiB0YWcgaXMgbW9yZSBhcHByb3ByaWF0ZS4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICA8cD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC48L3A+CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICA8cD5TZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC48L3A+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5WYWxpZCBvbmx5IGluc2lkZSBvZiA8Y29kZT5sb2dpYzppdGVyYXRlPC9jb2RlPiB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgInByb3BlcnR5TmFtZVszNF0iLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yCisgICAgICAgICAgICAgICAgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWx1ZSBvZiB0aGUgbGFiZWwgdG8gYmUgcGxhY2VkIG9uIHRoaXMgYnV0dG9uLiBUaGlzIHZhbHVlIHdpbGwKKyAgICAgICAgICAgICAgICBhbHNvIGJlIHN1Ym1pdHRlZCBhcyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCByZXF1ZXN0IHBhcmFtZXRlci4KKyAgICAgICAgICAgICAgICBbQm9keSBvZiB0aGlzIHRhZyAoaWYgYW55KSwgb3IgIkNsaWNrIl0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+Y2FuY2VsPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNhbmNlbFRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgYSBDYW5jZWwgQnV0dG9uCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZSBzdWJtaXQuIFRoaXMgdGFnIGlzIG9ubHkKKyAgICAgICAgICAgICAgICB2YWxpZCB3aGVuIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LiBQcmVzc2luZyBvZiB0aGlzIHN1Ym1pdAorICAgICAgICAgICAgICAgIGJ1dHRvbiBjYXVzZXMgdGhlIGFjdGlvbiBzZXJ2bGV0IHRvIGJ5cGFzcyBjYWxsaW5nIHRoZSBhc3NvY2lhdGVkCisgICAgICAgICAgICAgICAgZm9ybSBiZWFuIHZhbGlkYXRlKCkgbWV0aG9kLiBUaGUgYWN0aW9uIGlzIGNhbGxlZCBub3JtYWxseS4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICAgICAgPHN0cm9uZz5XQVJOSU5HPC9zdHJvbmc+IC0gSWYgeW91IHNldCB0aGlzIGF0dHJpYnV0ZSB0byBhCisgICAgICAgICAgICAgICAgdmFsdWUgb3RoZXIgdGhhbiB0aGUgZGVmYXVsdCwgdGhpcyB3aWxsIDxlbT5OT1Q8L2VtPiBiZQorICAgICAgICAgICAgICAgIHJlY29nbml6ZWQgYXMgdGhlIGNhbmNlbCBrZXkgYnkgdGhlIFN0cnV0cyBjb250cm9sbGVyIHNlcnZsZXQKKyAgICAgICAgICAgICAgICBvciB0aGUgPGNvZGU+QWN0aW9uLmlzQ2FuY2VsbGVkKCk8L2NvZGU+IG1ldGhvZC4gIFlvdSB3aWxsCisgICAgICAgICAgICAgICAgbmVlZCB0byBkbyB5b3VyIG93biBjYW5jZWwgZGV0ZWN0aW9uLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsdWUgb2YgdGhlIGxhYmVsIHRvIGJlIHBsYWNlZCBvbiB0aGlzIGJ1dHRvbi4gVGhpcyB2YWx1ZSB3aWxsCisgICAgICAgICAgICAgICAgYWxzbyBiZSBzdWJtaXR0ZWQgYXMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXJhbWV0ZXIuCisgICAgICAgICAgICAgICAgW0JvZHkgb2YgdGhpcyB0YWcgKGlmIGFueSksIG9yICJDYW5jZWwiXQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5jaGVja2JveDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DaGVja2JveFRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgQSBDaGVja2JveCBJbnB1dCBGaWVsZAorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICA8cD5SZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPmNoZWNrYm94PC9jb2RlPiwgcG9wdWxhdGVkIGZyb20gdGhlIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgb3IgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBhc3NvY2lhdGVkCisgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIG91ciBjdXJyZW50IGZvcm0uIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbgorICAgICAgICAgICAgICAgICAgICAgICAgbmVzdGVkIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuPC9wPgorCisgICAgICAgICAgICA8cD48c3Ryb25nPk5PVEU8L3N0cm9uZz46ICBUaGUgdW5kZXJseWluZyBwcm9wZXJ0eSB2YWx1ZQorICAgICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZmllbGQgc2hvdWxkIGJlIG9mIHR5cGUgPGNvZGU+Ym9vbGVhbjwvY29kZT4sCisgICAgICAgICAgICBhbmQgYW55IDxjb2RlPnZhbHVlPC9jb2RlPiB5b3Ugc3BlY2lmeSBzaG91bGQgY29ycmVzcG9uZCB0byBvbmUKKyAgICAgICAgICAgIG9mIHRoZSBTdHJpbmdzIHRoYXQgaW5kaWNhdGUgYSB0cnVlIHZhbHVlICgidHJ1ZSIsICJ5ZXMiLCBvcgorICAgICAgICAgICAgIm9uIikuICBJZiB5b3Ugd2lzaCB0byB1dGlsaXplIGEgc2V0IG9mIHJlbGF0ZWQgU3RyaW5nIHZhbHVlcywKKyAgICAgICAgICAgIGNvbnNpZGVyIHVzaW5nIHRoZSA8Y29kZT5tdWx0aWJveDwvY29kZT4gdGFnLjwvcD4KKworICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XQVJOSU5HPC9zdHJvbmc+OiAgSW4gb3JkZXIgdG8gY29ycmVjdGx5CisgICAgICAgICAgICAgICAgICAgICAgICByZWNvZ25pemUgdW5jaGVja2VkIGNoZWNrYm94ZXMsIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhpcyBmb3JtCisgICAgICAgICAgICAgICAgICAgICAgICBtdXN0IGluY2x1ZGUgYSBzdGF0ZW1lbnQgc2V0dGluZyB0aGUgY29ycmVzcG9uZGluZworICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbiBwcm9wZXJ0eSB0byA8Y29kZT5mYWxzZTwvY29kZT4gaW4gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5yZXNldCgpPC9jb2RlPiBtZXRob2QuPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TmFtZSBvZiB0aGUgcmVxdWVzdCBzY29wZSBiZWFuIHVuZGVyIHdoaWNoIG91ciBlcnJvciBtZXNzYWdlcworICAgICAgICAgICAgICAgICAgaGF2ZSBiZWVuIHN0b3JlZC4gIElmIG5vdCBwcmVzZW50LCB0aGUgbmFtZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5HbG9iYWxzLkVSUk9SX0tFWTwvY29kZT4gY29uc3RhbnQgc3RyaW5nIHdpbGwgYmUgdXNlZC48L3A+CisKKyAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBUaGlzIGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPiwgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPiBhbmQgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZXMgYW5kIHNob3VsZCBiZSBzZXQgdG8KKyAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgb24gdGhlCisgICAgICAgICAgICAgICAgICAmbHQ7aHRtbDplcnJvcnMvJmd0OyB0YWcuPC9wPiAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZTwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVDbGFzczwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIDxjb2RlPmxvZ2ljOml0ZXJhdGU8L2NvZGU+IHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZCB3aGVuCisgICAgICAgICAgICAgICAgcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgdG8gYmUgdHJhbnNtaXR0ZWQgaWYgdGhpcyBjaGVja2JveCBpcworICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZCB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4gIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgICAgICAgICB0aGUgdmFsdWUgIm9uIiB3aWxsIGJlIHJldHVybmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5lcnJvcnM8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRXJyb3JzVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+ZW1wdHk8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgICAgIENvbmRpdGlvbmFsbHkgZGlzcGxheSBhIHNldCBvZiBhY2N1bXVsYXRlZCBlcnJvciBtZXNzYWdlcy4KKyAgICAgICAgICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICAgICAgPHA+RGlzcGxheXMgYSBzZXQgb2YgZXJyb3IgbWVzc2FnZXMgcHJlcGFyZWQgYnkgYSBidXNpbmVzcworICAgICAgICAgICAgICAgIGxvZ2ljIGNvbXBvbmVudCBhbmQgc3RvcmVkIGFzIGFuIDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPgorICAgICAgICAgICAgICAgIG9iamVjdCwgYW4gPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPgorICAgICAgICAgICAgICAgIG9iamVjdCwgYSBTdHJpbmcsIG9yIGEgU3RyaW5nIGFycmF5IGluIHJlcXVlc3Qgc2NvcGUuICBJZgorICAgICAgICAgICAgICAgIHN1Y2ggYSBiZWFuIGlzIG5vdCBmb3VuZCwgbm90aGluZyB3aWxsIGJlIHJlbmRlcmVkLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPkluIG9yZGVyIHRvIHVzZSB0aGlzIHRhZyBzdWNjZXNzZnVsbHksIHlvdSBtdXN0IGhhdmUKKyAgICAgICAgICAgICAgICBkZWZpbmVkIGFuIGFwcGxpY2F0aW9uIHNjb3BlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+CisgICAgICAgICAgICAgICAgYmVhbiB1bmRlciB0aGUgZGVmYXVsdCBhdHRyaWJ1dGUgbmFtZSwgd2l0aCBvcHRpb25hbAorICAgICAgICAgICAgICAgIGRlZmluaXRpb25zIG9mIG1lc3NhZ2Uga2V5cyBzcGVjaWZpZWQgaW4gdGhlIGZvbGxvd2luZworICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6PC9wPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5oZWFkZXI8L3N0cm9uZz4gLSBUZXh0IHRoYXQgd2lsbCBiZSByZW5kZXJlZAorICAgICAgICAgICAgICAgIGJlZm9yZSB0aGUgZXJyb3IgbWVzc2FnZXMgbGlzdC4gIFR5cGljYWxseSwgdGhpcyBtZXNzYWdlIHRleHQKKyAgICAgICAgICAgICAgICB3aWxsIGVuZCB3aXRoIDxjb2RlPiZsdDt1bCZndDs8L2NvZGU+IHRvIHN0YXJ0IHRoZQorICAgICAgICAgICAgICAgIGVycm9yIG1lc3NhZ2VzIGxpc3QgKGRlZmF1bHQgImVycm9ycy5oZWFkZXIiKS48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmZvb3Rlcjwvc3Ryb25nPiAtIFRleHQgdGhhdCB3aWxsIGJlIHJlbmRlcmVkCisgICAgICAgICAgICAgICAgYWZ0ZXIgdGhlIGVycm9yIG1lc3NhZ2VzIGxpc3QuICBUeXBpY2FsbHksIHRoaXMgbWVzc2FnZSB0ZXh0CisgICAgICAgICAgICAgICAgd2lsbCBiZWdpbiB3aXRoIDxjb2RlPiZsdDsvdWwmZ3Q7PC9jb2RlPiB0byBlbmQgdGhlIGVycm9yCisgICAgICAgICAgICAgICAgbWVzc2FnZXMgbGlzdCAoZGVmYXVsdCAiZXJyb3JzLmZvb3RlciIpLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+cHJlZml4PC9zdHJvbmc+IC0gVGV4dCB0aGF0IHdpbGwgYmUgcmVuZGVyZWQKKyAgICAgICAgICAgICAgICBiZWZvcmUgZWFjaCBpbmRpdmlkdWFsIGVycm9yIGluIHRoZSBsaXN0IChkZWZhdWx0ICJlcnJvcnMucHJlZml4IikuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5zdWZmaXg8L3N0cm9uZz4gLSBUZXh0IHRoYXQgd2lsbCBiZSByZW5kZXJlZAorICAgICAgICAgICAgICAgIGFmdGVyIGVhY2ggaW5kaXZpZHVhbCBlcnJvciBpbiB0aGUgbGlzdCAoZGVmYXVsdCAiZXJyb3JzLnN1ZmZpeCIpLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICA8cD5TZWUgdGhlIDxjb2RlPm1lc3NhZ2VzPC9jb2RlPiB0YWcgZm9yIGFuIGFsdGVybmF0aXZlIHRvIHRoaXMgdGFnIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgZG9lcyBub3QgcmVseSBvbiBIVE1MIGluIHlvdXIgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4uPC9wPgorCisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Zm9vdGVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIFRoaXMgdmFsdWUgaXMgYW4gb3B0aW9uYWwgbWVzc2FnZSByZXNvdXJjZSBrZXkgdGhhdCB3aWxsCisgICAgICAgICAgICAgICAgICBiZSBwcmludGVkIGFmdGVyIHRoZSBpdGVyYXRpb24gb2YgZXJyb3IgbWVzc2FnZXMgaGFzIGZpbmlzaGVkLgorICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gImVycm9ycy5mb290ZXIiIGlmIG5vdCBzcGVjaWZpZWQuCisgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5oZWFkZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgVGhpcyB2YWx1ZSBpcyBhbiBvcHRpb25hbCBtZXNzYWdlIHJlc291cmNlIGtleSB0aGF0IHdpbGwKKyAgICAgICAgICAgICAgICAgIGJlIHByaW50ZWQgYmVmb3JlIHRoZSBpdGVyYXRpb24gb2YgZXJyb3IgbWVzc2FnZXMgYmVnaW5zLgorICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gImVycm9ycy5oZWFkZXIiIGlmIG5vdCBzcGVjaWZpZWQuCisgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sb2NhbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2Vzc2lvbiBhdHRyaWJ1dGUga2V5IGZvciB0aGUgTG9jYWxlIHVzZWQgdG8gc2VsZWN0CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzIHRvIGJlIGRpc3BsYXllZC4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvCisgICAgICAgICAgICAgICAgICAgIHRoZSBTdHJ1dHMgc3RhbmRhcmQgdmFsdWUuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJlZml4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIFRoaXMgdmFsdWUgaXMgYW4gb3B0aW9uYWwgbWVzc2FnZSByZXNvdXJjZSBrZXkgdGhhdCB3aWxsCisgICAgICAgICAgICAgICAgICBiZSBwcmludGVkIGJlZm9yZSBhbiBlcnJvciBtZXNzYWdlLgorICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gImVycm9ycy5wcmVmaXgiIGlmIG5vdCBzcGVjaWZpZWQuCisgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eSBmb3Igd2hpY2ggZXJyb3IgbWVzc2FnZXMgc2hvdWxkIGJlCisgICAgICAgICAgICAgICAgICBkaXNwbGF5ZWQuICBJZiBub3Qgc3BlY2lmaWVkLCBhbGwgZXJyb3IgbWVzc2FnZXMgKHJlZ2FyZGxlc3MKKyAgICAgICAgICAgICAgICAgIG9mIHByb3BlcnR5KSBhcmUgZGlzcGxheWVkLgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN1ZmZpeDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBUaGlzIHZhbHVlIGlzIGFuIG9wdGlvbmFsIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IHRoYXQgd2lsbAorICAgICAgICAgICAgICAgICAgYmUgcHJpbnRlZCBhZnRlciBhbiBlcnJvciBtZXNzYWdlLgorICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gImVycm9ycy5zdWZmaXgiIGlmIG5vdCBzcGVjaWZpZWQuCisgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+ZmlsZTwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5GaWxlVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBBIEZpbGUgU2VsZWN0IElucHV0IEZpZWxkCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZSBmaWxlLCBkZWZhdWx0aW5nIHRvCisgICAgICAgICAgICAgICAgdGhlIHNwZWNpZmllZCB2YWx1ZSBvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBiZWFuCisgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIG91ciBjdXJyZW50IGZvcm0uIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbgorICAgICAgICAgICAgICAgIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgQXMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCwgdGhlCisgICAgICAgICAgICAgICAgZW5jbG9zaW5nIGZvcm0gZWxlbWVudCBtdXN0IHNwZWNpZnkgIlBPU1QiIGZvciB0aGUgPGNvZGU+bWV0aG9kPC9jb2RlPgorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgYW5kICJtdWx0aXBhcnQvZm9ybS1kYXRhIiBmb3IgdGhlIDxjb2RlPmVuY3R5cGU8L2NvZGU+CisgICAgICAgICAgICAgICAgYXR0cmlidXRlLiBGb3IgZXhhbXBsZToKKyAgICAgICAgICAgIDwvcD4KKyAgICA8cHJlPgorICAgICZsdDtodG1sOmZvcm0gbWV0aG9kPSJQT1NUIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiZndDsKKyAgICAgICAgJmx0O2h0bWw6ZmlsZSBwcm9wZXJ0eT0idGhlRmlsZSIgLyZndDsKKyAgICAmbHQ7L2h0bWw6Zm9ybSZndDs8L3ByZT4KKworICAgICAgICAgICAgPHA+CisgICAgICAgICAgICBXQVJOSU5HOiBJbiBvcmRlciB0byBjb3JyZWN0bHkgcmVjb2duaXplIHVwbG9hZGVkIGZpbGVzLCB0aGUgQWN0aW9uRm9ybSBiZWFuCisgICAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhpcyBmb3JtIG11c3QgaW5jbHVkZSBhIHN0YXRlbWVudCBzZXR0aW5nIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgICAgICBvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuRm9ybUZpbGUgcHJvcGVydHkgdG8gbnVsbCBpbiB0aGUgcmVzZXQoKSBtZXRob2QuCisgICAgICAgICAgICA8L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2NlcHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENvbW1hLWRlbGltaXRlZCBzZXQgb2YgY29udGVudCB0eXBlcyB0aGF0IHRoZSBzZXJ2ZXIgeW91IHN1Ym1pdCB0bworICAgICAgICAgICAgICAgIGtub3dzIGhvdyB0byBwcm9jZXNzLiBUaGlzIGxpc3QgY2FuIGJlIHVzZWQgYnkgdGhlIGNsaWVudCBicm93c2VyCisgICAgICAgICAgICAgICAgdG8gbGltaXQgdGhlIHNldCBvZiBmaWxlIG9wdGlvbnMgdGhhdCBpcyBtYWRlIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uLgorICAgICAgICAgICAgICAgIElmIG5vdCBzcGVjaWZpZWQsIG5vIGNvbnRlbnQgdHlwZSBsaXN0IHdpbGwgYmUgc2VudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvcktleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5OYW1lIG9mIHRoZSByZXF1ZXN0IHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggb3VyIGVycm9yIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLjwvcD4KKworICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IFRoaXMgaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+LCA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+IGFuZCAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4gYXR0cmlidXRlcyBhbmQgc2hvdWxkIGJlIHNldCB0bworICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUKKyAgICAgICAgICAgICAgICAgICZsdDtodG1sOmVycm9ycy8mZ3Q7IHRhZy48L3A+IAorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUNsYXNzPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVJZDwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgPGNvZGU+bG9naWM6aXRlcmF0ZTwvY29kZT4gdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJpZFszNF0ucHJvcGVydHlOYW1lIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgZm9yIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tYXhsZW5ndGg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE1heGltdW0gbnVtYmVyIG9mIGlucHV0IGNoYXJhY3RlcnMgdG8gYWNjZXB0LiAgVGhpcyBpcyBpZ25vcmVkCisgICAgICAgICAgICAgICAgYnkgbW9zdCBicm93c2Vycy4gW05vIGxpbWl0XQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBjb25zdWx0ZWQgd2hlbgorICAgICAgICAgICAgICAgIHJlbmRlcmluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIGlucHV0IGZpZWxkLiBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybSB0YWcgd2UgYXJlIG5lc3RlZCB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNpemU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFNpemUgb2YgdGhlIGZpbGUgc2VsZWN0aW9uIGJveCB0byBiZSBkaXNwbGF5ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICA8c3Ryb25nPk5PVEU8L3N0cm9uZz46IFdoZW4gc2V0dGluZyB0aGlzIHRvIHNvbWUgdmFsdWUsIHdoZXRoZXIKKyAgICAgICAgICAgICAgICBpbnRlbnRpb25hbCBvciBhcyB0aGUgcmVzdWx0IChmb3IgZXhhbXBsZSkgb2YgdmFsaWRhdGlvbiBlcnJvcnMgCisgICAgICAgICAgICAgICAgZm9yY2luZyB0aGUgdXNlciBiYWNrIHRvIHRoZSBvcmlnaW5hbCBqc3AsIHRoaXMgdmFsdWUgaXMgaWdub3JlZCAKKyAgICAgICAgICAgICAgICBieSBtb3N0IGJyb3dzZXJzIChmb3Igc2VjdXJpdHkgcmVhc29ucykuCisgICAgICAgICAgICAgICAgVGhpcyBtZWFucyB0aGF0IHlvdXIgdXNlcnMgd2lsbCBoYXZlIHRvIHJlLXNlbGVjdCBhbnkgcHJldmlvdXNseQorICAgICAgICAgICAgICAgIHNlbGVjdGVkIGZpbGVzIHdoZW4gc3VibWl0dGluZyB0aGUgZm9ybS4gIE9wZXJhIHdlYiBicm93c2VyIHdpbGwKKyAgICAgICAgICAgICAgICBwcm9tcHQgdGhlIHVzZXIgc28gdGhleSBoYXZlIGEgY2hhbmNlIHRvIGFib3J0IHRoZSBzdWJtaXQuCisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICAgICAgVmFsdWUgdG8gd2hpY2ggdGhpcyBmaWVsZCBzaG91bGQgYmUgaW5pdGlhbGl6ZWQuIFtVc2UgdGhlCisgICAgICAgICAgICAgICAgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5IHZhbHVlIG9yIGJvZHkgY29udGVudCAoaWYgYW55KSBpZiAKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSBpcyBub3Qgc3BlY2lmaWVkXQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5mb3JtPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZvcm1UYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5KU1A8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgRGVmaW5lIEFuIElucHV0IEZvcm0KKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgUmVuZGVycyBhbiBIVE1MICZsdDtmb3JtJmd0OyBlbGVtZW50IHdob3NlIGNvbnRlbnRzIGFyZSBkZXNjcmliZWQKKyAgICAgICAgICAgICAgICBieSB0aGUgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnLiBUaGUgZm9ybSBpbXBsaWNpdGx5IGludGVyYWN0cworICAgICAgICAgICAgICAgIHdpdGggdGhlIHNwZWNpZmllZCByZXF1ZXN0IHNjb3BlIG9yIHNlc3Npb24gc2NvcGUgYmVhbiB0byBwb3B1bGF0ZQorICAgICAgICAgICAgICAgIHRoZSBpbnB1dCBmaWVsZHMgd2l0aCB0aGUgY3VycmVudCBwcm9wZXJ0eSB2YWx1ZXMgZnJvbSB0aGUgYmVhbi4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIFRoZSBmb3JtIGJlYW4gaXMgbG9jYXRlZCwgYW5kIGNyZWF0ZWQgaWYgbmVjZXNzYXJ5LCBiYXNlZCBvbiB0aGUgCisgICAgICAgICAgICAgICAgZm9ybSBiZWFuIHNwZWNpZmljYXRpb24gZm9yIHRoZSBhc3NvY2lhdGVkIDxjb2RlPkFjdGlvbk1hcHBpbmc8L2NvZGU+LgorICAgICAgICAgICAgPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGUgVVJMIHRvIHdoaWNoIHRoaXMgZm9ybSB3aWxsIGJlIHN1Ym1pdHRlZC4gIFRoaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGlzIGFsc28gdXNlZCB0byBzZWxlY3QgdGhlIEFjdGlvbk1hcHBpbmcgd2UgYXJlCisgICAgICAgICAgICAgICAgICAgICAgICBhc3N1bWVkIHRvIGJlIHByb2Nlc3NpbmcsIGZyb20gd2hpY2ggd2UgY2FuIGlkZW50aWZ5CisgICAgICAgICAgICAgICAgICAgICAgICB0aGUgYXBwcm9wcmlhdGUgZm9ybSBiZWFuIGFuZCBzY29wZS4gIElmIGEgdmFsdWUgaXMgbm90CisgICAgICAgICAgICAgICAgICAgICAgICBwcm92aWRlZCwgdGhlIG9yaWdpbmFsIFVSSSAoc2VydmxldFBhdGgpIGZvciB0aGUgcmVxdWVzdCBpcyAKKyAgICAgICAgICAgICAgICAgICAgICAgIHVzZWQuIDwvcD4KKworICAgICAgICAgICAgICAgICAgICAgICAgPHA+SWYgeW91IGFyZSB1c2luZyBleHRlbnNpb24gbWFwcGluZyBmb3Igc2VsZWN0aW5nIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlciBzZXJ2bGV0LCB0aGlzIHZhbHVlIHNob3VsZCBiZSBlcXVhbCB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPnBhdGg8L2NvZGU+IGF0dHJpYnV0ZSBvZiB0aGUgY29ycmVzcG9uZGluZworICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+Jmx0O2FjdGlvbiZndDs8L2NvZGU+IGVsZW1lbnQsIG9wdGlvbmFsbHkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd2VkIGJ5IHRoZSBjb3JyZWN0IGV4dGVuc2lvbiBzdWZmaXguPC9wPgorCisgICAgICAgICAgICAgICAgICAgICAgICA8cD5JZiB5b3UgYXJlIHVzaW5nIHBhdGggbWFwcGluZyB0byBzZWxlY3QgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyIHNlcnZsZXQsIHRoaXMgdmFsdWUgc2hvdWxkIGJlIGV4YWN0bHkgZXF1YWwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvIHRoZSA8Y29kZT5wYXRoPC9jb2RlPiBhdHRyaWJ1dGUgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPiZsdDthY3Rpb24mZ3Q7PC9jb2RlPiBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2NlcHRDaGFyc2V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgbGlzdCBvZiBjaGFyYWN0ZXIgZW5jb2RpbmdzIGZvciBpbnB1dCBkYXRhIHRoYXQgdGhlIHNlcnZlciBzaG91bGQKKyAgICAgICAgICAgICAgICBhY2NlcHQuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi4yPC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgRm9ybSdzIGlucHV0IGZpZWxkcyBzaG91bGQgYmUKKyAgICAgICAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjc8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVuY3R5cGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBjb250ZW50IGVuY29kaW5nIHRvIGJlIHVzZWQgdG8gc3VibWl0IHRoaXMgZm9ybSwgaWYgdGhlIG1ldGhvZAorICAgICAgICAgICAgICAgIGlzIFBPU1QuIFRoaXMgbXVzdCBiZSBzZXQgdG8gIm11bHRpcGFydC9mb3JtLWRhdGEiIGlmIHlvdSBhcmUgdXNpbmcKKyAgICAgICAgICAgICAgICB0aGUgZmlsZSB0YWcgdG8gZW5hYmxlIGZpbGUgdXBsb2FkLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgYnJvd3NlcgorICAgICAgICAgICAgICAgIGRlZmF1bHQgKG5vcm1hbGx5ICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSBpcyB1c2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgZmllbGQgbmFtZSAoYW1vbmcgdGhlIGZpZWxkcyBvbiB0aGlzIGZvcm0pIHRvIHdoaWNoIGluaXRpYWwKKyAgICAgICAgICAgICAgICBmb2N1cyB3aWxsIGJlIGFzc2lnbmVkIHdpdGggYSBKYXZhU2NyaXB0IGZ1bmN0aW9uLiBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgIG5vIHNwZWNpYWwgSmF2YVNjcmlwdCBmb3IgdGhpcyBwdXJwb3NlIHdpbGwgYmUgcmVuZGVyZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Zm9jdXNJbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWYgdGhlIGZvY3VzIGZpZWxkIGlzIGEgZmllbGQgYXJyYXksIHN1Y2ggYXMgYSByYWRpbyBidXR0b24gZ3JvdXAsIHlvdSBjYW4gCisgICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgaW5kZXggaW4gdGhlIGFycmF5IHRvIHJlY2VpdmUgZm9jdXMuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bWV0aG9kPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgSFRUUCBtZXRob2QgdGhhdCB3aWxsIGJlIHVzZWQgdG8gc3VibWl0IHRoaXMgcmVxdWVzdAorICAgICAgICAgICAgICAgIChHRVQsIFBPU1QpLiBbUE9TVF0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbnJlc2V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgaWYgdGhlIGZvcm0gaXMgcmVzZXQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25zdWJtaXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCBpZiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cmVhZG9ubHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIEZvcm0ncyBpbnB1dCBmaWVsZHMgc2hvdWxkIGJlCisgICAgICAgICAgICAgICAgcmVhZCBvbmx5LgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNzwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2NyaXB0TGFuZ3VhZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgZm9ybSdzIGZvY3VzICZsdDtzY3JpcHQmZ3Q7IGVsZW1lbnQgd2lsbCBub3QgY29udGFpbiBhIGxhbmd1YWdlIGF0dHJpYnV0ZQorICAgICAgICAgICAgICAgIHdoZW4gdGhpcyBpcyBzZXQgdG8gZmFsc2UuICBUaGUgZGVmYXVsdCBpcyB0cnVlIGJ1dCB0aGlzIHByb3BlcnR5IGlzIGlnbm9yZWQKKyAgICAgICAgICAgICAgICBpbiBYSE1UTCBtb2RlLgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjI8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFyZ2V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBXaW5kb3cgdGFyZ2V0IHRvIHdoaWNoIHRoaXMgZm9ybSBpcyBzdWJtaXR0ZWQsIHN1Y2ggYXMKKyAgICAgICAgICAgICAgICBmb3IgdXNlIGluIGZyYW1lZCBwcmVzZW50YXRpb25zLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5mcmFtZTwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5GcmFtZVRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+UmVuZGVyIGFuIEhUTUwgZnJhbWUgZWxlbWVudDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKworICAgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MIDxjb2RlPiZsdDtmcmFtZSZndDs8L2NvZGU+IGVsZW1lbnQKKyAgICAgICAgICAgIHdpdGggcHJvY2Vzc2luZyBmb3IgdGhlIDxjb2RlPnNyYzwvY29kZT4gYXR0cmlidXRlIHRoYXQgaXMKKyAgICAgICAgICAgIGlkZW50aWNhbCB0byB0aGF0IHBlcmZvcm1lZCBieSB0aGUgPGNvZGU+Jmx0O2h0bWw6bGluayZndDs8L2NvZGU+CisgICAgICAgICAgICB0YWcgZm9yIHRoZSA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUuICBVUkwgcmV3cml0aW5nIHdpbGwgYmUKKyAgICAgICAgICAgIGFwcGxpZWQgYXV0b21hdGljYWxseSwgdG8gbWFpbnRhaW4gc2Vzc2lvbiBzdGF0ZSBpbiB0aGUKKyAgICAgICAgICAgIGFic2VuY2Ugb2YgY29va2llcy48L3A+CisKKyAgICAgICAgICAgIDxwPlRoZSBiYXNlIFVSTCBmb3IgdGhpcyBmcmFtZSBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uCisgICAgICAgICAgICB3aGljaCBvZiB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgeW91IHNwZWNpZnkgKHlvdSBtdXN0CisgICAgICAgICAgICBzcGVjaWZ5IGV4YWN0bHkgb25lIG9mIHRoZW0pOjwvcD4KKyAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48ZW0+Zm9yd2FyZDwvZW0+IC0gVXNlIHRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSBhcyB0aGUKKyAgICAgICAgICAgICAgICBuYW1lIG9mIGEgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRvIGJlIGxvb2tlZAorICAgICAgICAgICAgICAgIHVwLCBhbmQgdXNlIHRoZSBtb2R1bGUtcmVsYXRpdmUgb3IgY29udGV4dC1yZWxhdGl2ZQorICAgICAgICAgICAgICAgIFVSSSBmb3VuZCB0aGVyZS48L2xpPgorICAgICAgICAgICAgPGxpPjxlbT5ocmVmPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIHVuY2hhbmdlZC4KKyAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgPGxpPjxlbT5wYWdlPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIGEKKyAgICAgICAgICAgICAgICBtb2R1bGUtcmVsYXRpdmUgVVJJLCBhbmQgZ2VuZXJhdGUgYSBzZXJ2ZXItcmVsYXRpdmUKKyAgICAgICAgICAgICAgICBVUkkgYnkgaW5jbHVkaW5nIHRoZSBjb250ZXh0IHBhdGggYW5kIGFwcGxpY2F0aW9uCisgICAgICAgICAgICAgICAgcHJlZml4LjwvbGk+CisgICAgICAgICAgICA8bGk+PGVtPmFjdGlvbjwvZW0+IC0gVXNlIHRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSBhcyB0aGUKKyAgICAgICAgICAgICAgICBsb2dpY2FsIG5hbWUgb2YgYSBnbG9iYWwgQWN0aW9uIHRoYXQgY29udGFpbnMgdGhlIGFjdHVhbCAKKyAgICAgICAgICAgICAgICBjb250ZW50LXJlbGF0aXZlIFVSSSBvZiB0aGUgZGVzdGluYXRpb24gb2YgdGhpcyB0cmFuc2Zlci48L2xpPgorICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPHA+Tm9ybWFsbHksIHRoZSBoeXBlcmxpbmsgeW91IHNwZWNpZnkgd2l0aCBvbmUgb2YgdGhlCisgICAgICAgICAgICBhdHRyaWJ1dGVzIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMgcGFyYWdyYXBoIHdpbGwgYmUgbGVmdAorICAgICAgICAgICAgdW5jaGFuZ2VkIChvdGhlciB0aGFuIFVSTCByZXdyaXRpbmcgaWYgbmVjZXNzYXJ5KS4gIEhvd2V2ZXIsCisgICAgICAgICAgICB0aGVyZSBhcmUgdHdvIHdheXMgeW91IGNhbiBhcHBlbmQgb25lIG9yIG1vcmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgIGRlZmluZWQgcXVlcnkgcGFyYW1ldGVycyB0byB0aGUgaHlwZXJsaW5rIC0tIHNwZWNpZnkgYSBzaW5nbGUKKyAgICAgICAgICAgIHBhcmFtZXRlciB3aXRoIHRoZSA8Y29kZT5wYXJhbUlkPC9jb2RlPiBhdHRyaWJ1dGUgKGFuZCBpdHMKKyAgICAgICAgICAgIGFzc29jaWF0ZWQgYXR0cmlidXRlcyB0byBzZWxlY3QgdGhlIHZhbHVlKSwgb3Igc3BlY2lmeSB0aGUKKyAgICAgICAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwgPGNvZGU+cHJvcGVydHk8L2NvZGU+KQorICAgICAgICAgICAgYXR0cmlidXRlcyB0byBzZWxlY3QgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBiZWFuIHRoYXQKKyAgICAgICAgICAgIGNvbnRhaW5zIG9uZSBvciBtb3JlIHBhcmFtZXRlciBpZHMgYW5kIGNvcnJlc3BvbmRpbmcgdmFsdWVzLgorICAgICAgICAgICAgPC9wPgorCisgICAgICAgICAgICA8cD5UbyBzcGVjaWZ5IGEgc2luZ2xlIHBhcmFtZXRlciwgdXNlIHRoZSA8Y29kZT5wYXJhbUlkPC9jb2RlPgorICAgICAgICAgICAgYXR0cmlidXRlIHRvIGRlZmluZSB0aGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdG8gYmUKKyAgICAgICAgICAgIHN1Ym1pdHRlZC4gIFRvIHNwZWNpZnkgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUsIHVzZSBvbmUgb2YgdGhlCisgICAgICAgICAgICBmb2xsb3dpbmcgYXBwcm9hY2hlczo8L3A+CisgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgb25seSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGU8L2VtPgorICAgICAgICAgICAgICAgIC0gVGhlIG5hbWVkIEpTUCBiZWFuIChvcHRpb25hbGx5IHNjb3BlZCBieSB0aGUgdmFsdWUgb2YgdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gYXR0cmlidXRlKSBtdXN0IGlkZW50aWZ5IGEgdmFsdWUKKyAgICAgICAgICAgICAgICB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuPC9saT4KKyAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBib3RoIHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGFuZAorICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXM8L2VtPiAtIFRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSBnZXR0ZXIgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBKU1AgYmVhbgorICAgICAgICAgICAgICAgIGlkZW50aWZpZWQgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gKGFuZCBvcHRpb25hbAorICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+KSBhdHRyaWJ1dGVzLCBpbiBvcmRlciB0byBzZWxlY3QKKyAgICAgICAgICAgICAgICBhIHZhbHVlIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIFN0cmluZy48L2xpPgorICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPHA+SWYgeW91IHByZWZlciB0byBzcGVjaWZ5IGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gdGhhdAorICAgICAgICAgICAgY29udGFpbnMgYWxsIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMgdG8gYmUgYWRkZWQgdG8gdGhlCisgICAgICAgICAgICBoeXBlcmxpbmssIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB0ZWNobmlxdWVzOjwvcD4KKyAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBvbmx5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGU8L2VtPiAtCisgICAgICAgICAgICAgICAgVGhlIG5hbWVkIEpTUCBiZWFuIChvcHRpb25hbGx5IHNjb3BlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgICAgICB0aGUgPGNvZGU+c2NvcGU8L2NvZGU+IGF0dHJpYnV0ZSkgbXVzdCBpZGVudGlmeSBhCisgICAgICAgICAgICAgICAgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcGFyYW1ldGVycy48L2xpPgorICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IGJvdGggPGNvZGU+bmFtZTwvY29kZT4gYW5kCisgICAgICAgICAgICAgICAgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXM8L2VtPiAtIFRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSBnZXR0ZXIgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBiZWFuCisgICAgICAgICAgICAgICAgaWRlbnRpZmllZCBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gKGFuZCBvcHRpb25hbAorICAgICAgICAgICAgICAgIDxjb2RlPnNjb3BlPC9jb2RlPikgYXR0cmlidXRlcywgaW4gb3JkZXIgdG8gcmV0dXJuIHRoZQorICAgICAgICAgICAgICAgIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMuPC9saT4KKyAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDxwPkFzIHRoZSA8Y29kZT5NYXA8L2NvZGU+IGlzIHByb2Nlc3NlZCwgdGhlIGtleXMgYXJlIGFzc3VtZWQKKyAgICAgICAgICAgIHRvIGJlIHRoZSBuYW1lcyBvZiBxdWVyeSBwYXJhbWV0ZXJzIHRvIGJlIGFwcGVuZGVkIHRvIHRoZQorICAgICAgICAgICAgaHlwZXJsaW5rLiAgVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBlYWNoIGtleSBtdXN0IGJlIGVpdGhlcgorICAgICAgICAgICAgYSBTdHJpbmcgb3IgYSBTdHJpbmcgYXJyYXkgcmVwcmVzZW50aW5nIHRoZSBwYXJhbWV0ZXIgdmFsdWUocyksCisgICAgICAgICAgICBvciBhbiBvYmplY3Qgd2hvc2UgdG9TdHJpbmcoKSBtZXRob2Qgd2lsbCBiZSBjYWxsZWQuCisgICAgICAgICAgICBJZiBhIFN0cmluZyBhcnJheSBpcyBzcGVjaWZpZWQsIG1vcmUgdGhhbiBvbmUgdmFsdWUgZm9yIHRoZQorICAgICAgICAgICAgc2FtZSBxdWVyeSBwYXJhbWV0ZXIgbmFtZSB3aWxsIGJlIGNyZWF0ZWQuPC9wPgorCisgICAgICAgICAgICA8cD5BZGRpdGlvbmFsbHksIHlvdSBjYW4gcmVxdWVzdCB0aGF0IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uCisgICAgICAgICAgICBjb250cm9sIHRva2VuLCBpZiBhbnksIGJlIGluY2x1ZGVkIGluIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rCisgICAgICAgICAgICBieSBzZXR0aW5nIHRoZSA8Y29kZT50cmFuc2FjdGlvbjwvY29kZT4gYXR0cmlidXRlIHRvCisgICAgICAgICAgICA8Y29kZT50cnVlPC9jb2RlPi4KKyAgICAgICAgICAgIFlvdSBjYW4gYWxzbyByZXF1ZXN0IHRoYXQgYW4gYW5jaG9yICgiI3h4eCIpIGJlIGFkZGVkIHRvIHRoZQorICAgICAgICAgICAgZW5kIG9mIHRoZSBVUkwgdGhhdCBpcyBjcmVhdGVkIGJ5IGFueSBvZiB0aGUgYWJvdmUgbWVjaGFuaXNtcywKKyAgICAgICAgICAgIGJ5IHVzaW5nIHRoZSA8Y29kZT5hbmNob3I8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisKKyAgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWN0aW9uPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgIDxwPkxvZ2ljYWwgbmFtZSBvZiBhIGdsb2JhbCA8Y29kZT5BY3Rpb248L2NvZGU+IHRoYXQKKyAgICAgICAgICAgICAgIGNvbnRhaW5zIHRoZSBhY3R1YWwgY29udGVudC1yZWxhdGl2ZSBVUkkgb2YgdGhlIGRlc3RpbmF0aW9uCisgICAgICAgICAgICAgICBvZiB0aGlzIHRyYW5zZmVyLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICBtb2RpZmllZCBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZAorICAgICAgICAgICAgICAgaW4gdGhlIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsCisgICAgICAgICAgICAgICBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgIAorCQkgICAgICAgPHA+QWRkaXRpb25hbGx5LCB5b3UgY2FuIHNwZWNpZnkgYSA8Y29kZT5tb2R1bGU8L2NvZGU+IHByZWZpeCAKKwkJCSAgIGZvciBsaW5raW5nIHRvIG90aGVyIG1vZHVsZXMuPC9wPgorCQkJCQkJICAgCisJCSAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tb2R1bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworCQkJICAgPHA+UHJlZml4IG5hbWUgb2YgYSA8Y29kZT5Nb2R1bGU8L2NvZGU+IHRoYXQKKwkJICAgICAgIGNvbnRhaW5zIHRoZSBhY3Rpb24gbWFwcGluZyBmb3IgdGhlIDxjb2RlPkFjdGlvbjwvY29kZT4KKwkJICAgICAgIHRoYXQgaXMgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZS4KKwkJICAgICAgIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeSBhbiA8Y29kZT5hY3Rpb248L2NvZGU+IAorCQkgICAgICAgYXR0cmlidXRlIGZvciB0aGlzIHRvIGhhdmUgYW4gZWZmZWN0LjwvcD4KKwkJCisJCSAgICAgICA8cD48c3Ryb25nPk5vdGU6IDwvc3Ryb25nPlVzZSAiIiB0byBtYXAgdG8gdGhlIGRlZmF1bHQgbW9kdWxlLjwvcD4KKwkJICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YW5jaG9yPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5PcHRpb25hbCBhbmNob3IgdGFnICgiI3h4eCIpIHRvIGJlIGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBoeXBlcmxpbmsuICBTcGVjaWZ5IHRoaXMgdmFsdWUgPHN0cm9uZz53aXRob3V0PC9zdHJvbmc+IGFueQorICAgICAgICAgICAgICAgICIjIiBjaGFyYWN0ZXIuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZvcndhcmQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkxvZ2ljYWwgbmFtZSBvZiBhIGdsb2JhbCA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICAgY29udGFpbnMgdGhlIGFjdHVhbCBjb250ZW50LXJlbGF0aXZlIFVSSSBvZiB0aGUgZGVzdGluYXRpb24KKyAgICAgICAgICAgICAgICBvZiB0aGlzIHRyYW5zZmVyLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgbW9kaWZpZWQgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQKKyAgICAgICAgICAgICAgICBpbiB0aGUgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgICBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZnJhbWVib3JkZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlNob3VsZCBhIGZyYW1lIGJvcmRlciBiZSBnZW5lcmF0ZWQgYXJvdW5kIHRoaXMgZnJhbWUgKDEpCisgICAgICAgICAgICAgICAgb3Igbm90ICgwKT88L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZnJhbWVOYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5WYWx1ZSBmb3IgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBvZiB0aGUgcmVuZGVyZWQKKyAgICAgICAgICAgICAgICA8Y29kZT4mbHQ7ZnJhbWUmZ3Q7PC9jb2RlPiBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5ocmVmPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgVVJMIHRvIHdoaWNoIHRoaXMgaHlwZXJsaW5rIHdpbGwgdHJhbnNmZXIgY29udHJvbAorICAgICAgICAgICAgICAgICBpZiBhY3RpdmF0ZWQuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQgaW4gdGhlCisgICAgICAgICAgICAgICAgIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsCisgICAgICAgICAgICAgICAgIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sb25nZGVzYzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VVJJIG9mIGEgbG9uZyBkZXNjcmlwdGlvbiBvZiB0aGUgZnJhbWUuICBUaGlzIGRlc2NyaXB0aW9uCisgICAgICAgICAgICAgICAgc2hvdWxkIHN1cHBsZW1lbnQgdGhlIHNob3J0IGRlc2NyaXB0aW9uIHByb3ZpZGVkIGJ5IHRoZQorICAgICAgICAgICAgICAgIDxjb2RlPnRpdGxlPC9jb2RlPiBhdHRyaWJ1dGUsIGFuZCBtYXkgYmUgcGFydGljdWxhcmx5IHVzZWZ1bAorICAgICAgICAgICAgICAgIGZvciBub24tdmlzdWFsIHVzZXIgYWdlbnRzLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tYXJnaW5oZWlnaHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+amF2YS5sYW5nLkludGVnZXI8L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFtb3VudCBvZiBzcGFjZSAoaW4gcGl4ZWxzKSB0byBiZSBsZWZ0IGJldHdlZW4gdGhlCisgICAgICAgICAgICAgICAgZnJhbWUncyBjb250ZW50cyBhbmQgaXRzIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1hcmdpbndpZHRoPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmphdmEubGFuZy5JbnRlZ2VyPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbW91bnQgb2Ygc3BhY2UgKGluIHBpeGVscykgdG8gYmUgbGVmdCBiZXR3ZWVuIHRoZQorICAgICAgICAgICAgICAgIGZyYW1lJ3MgY29udGVudHMgYW5kIGl0cyBsZWZ0IGFuZCByaWdodCBtYXJnaW5zLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgY29udGFpbnMgYSA8Y29kZT5NYXA8L2NvZGU+CisgICAgICAgICAgICAgICAgcmVwcmVzZW50aW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgICAgICAgICBpcyBub3Qgc3BlY2lmaWVkKSwgb3IgYSBKU1AgYmVhbiB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMKKyAgICAgICAgICAgICAgICBjYWxsZWQgdG8gcmV0dXJuIGEgPGNvZGU+TWFwPC9jb2RlPiAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgaXMgc3BlY2lmaWVkKS48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bm9yZXNpemU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5TaG91bGQgdXNlcnMgYmUgZGlzYWxsb3dlZCBmcm9tIHJlc2l6aW5nIHRoZSBmcmFtZT8KKyAgICAgICAgICAgICAgICAodHJ1ZSwgZmFsc2UpLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYWdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbW9kdWxlLXJlbGF0aXZlIHBhdGggKGJlZ2lubmluZyB3aXRoIGEgIi8iCisgICAgICAgICAgICAgICAgY2hhcmFjdGVyKSB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAgaWYgYWN0aXZhdGVkLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5IG1vZGlmaWVkCisgICAgICAgICAgICAgICAgIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkIGluIHRoZQorICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgZXhhY3RseQorICAgICAgICAgICAgICAgICBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLAorICAgICAgICAgICAgICAgICBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkIGh5cGVybGluay4gIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGlzCisgICAgICAgICAgICAgICAgZGVmaW5lZCBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhbmQgKG9wdGlvbmFsKQorICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMsIG9wdGlvbmFsbHkgc2NvcGVkIGJ5CisgICAgICAgICAgICAgICAgdGhlIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IGF0dHJpYnV0ZTwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbU5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gdGhhdCBpcyBhIFN0cmluZyBjb250YWluaW5nIHRoZQorICAgICAgICAgICAgICAgIHZhbHVlIGZvciB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZWQgYnkgPGNvZGU+cGFyYW1JZDwvY29kZT4KKyAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQCisgICAgICAgICAgICAgICAgYmVhbiB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMgY2FsbGVkIHRvIHJldHVybiBhIFN0cmluZworICAgICAgICAgICAgICAgIChpZiA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBpcyBzcGVjaWZpZWQpLiAgVGhlIEpTUCBiZWFuCisgICAgICAgICAgICAgICAgaXMgY29uc3RyYWluZWQgdG8gdGhlIGJlYW4gc2NvcGUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IHByb3BlcnR5LCBpZiBpdCBpcyBzcGVjaWZpZWQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtUHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdAorICAgICAgICAgICAgICAgIGJlIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlIHZhbHVlIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlcgorICAgICAgICAgICAgICAgIChuYW1lZCBieSB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4gYXR0cmlidXRlKSB0aGF0IHdpbGwgYmUKKyAgICAgICAgICAgICAgICBkeW5hbWljYWxseSBhZGRlZCB0byB0aGlzIGh5cGVybGluay48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1TY29wZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZS4gIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgYWxsIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0IGJlCisgICAgICAgICAgICAgICAgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCisgICAgICAgICAgICAgICAgdG8gYmUgYWRkZWQgdG8gdGhlIGh5cGVybGluay4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4KKyAgICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgaWYgeW91IHNwZWNpZnkKKyAgICAgICAgICAgICAgICB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwgYWxsCisgICAgICAgICAgICAgICAgc2NvcGVzIGFyZSBzZWFyY2hlZC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2Nyb2xsaW5nPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5TaG91bGQgc2Nyb2xsIGJhcnMgYmUgY3JlYXRlZCB1bmNvbmRpdGlvbmFsbHkgKHllcyksCisgICAgICAgICAgICAgICAgbmV2ZXIgKG5vKSwgb3Igb25seSB3aGVuIG5lZWRlZCAoYXV0byk/PC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50cmFuc2FjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgYW55IGN1cnJlbnQgdHJhbnNhY3Rpb24KKyAgICAgICAgICAgICAgICBjb250cm9sIHRva2VuIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmssCisgICAgICAgICAgICAgICAgc28gdGhhdCBpdCB3aWxsIHBhc3MgYW4gPGNvZGU+aXNUb2tlblZhbGlkKCk8L2NvZGU+IHRlc3QKKyAgICAgICAgICAgICAgICBpbiB0aGUgcmVjZWl2aW5nIEFjdGlvbi48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmhpZGRlbjwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5IaWRkZW5UYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5lbXB0eTwvYm9keS1jb250ZW50PgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgQSBIaWRkZW4gRmllbGQKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgUmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlIGhpZGRlbiwgcG9wdWxhdGVkCisgICAgICAgICAgICAgICAgZnJvbSB0aGUgc3BlY2lmaWVkIHZhbHVlIG9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlIGJlYW4KKyAgICAgICAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggb3VyIGN1cnJlbnQgZm9ybS4gVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuCisgICAgICAgICAgICAgICAgbmVzdGVkIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuCisgICAgICAgICAgICA8L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgPGNvZGU+bG9naWM6aXRlcmF0ZTwvY29kZT4gdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJpZFszNF0ucHJvcGVydHlOYW1lIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgZm9yIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkCisgICAgICAgICAgICAgICAgd2hlbiByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBpbnB1dCBmaWVsZC4gSWYgbm90CisgICAgICAgICAgICAgICAgc3BlY2lmaWVkLCB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFnIHdlIGFyZSBuZXN0ZWQKKyAgICAgICAgICAgICAgICB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGlzIGlucHV0IGZpZWxkLCBhbmQgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgYmVhbgorICAgICAgICAgICAgICAgIHByb3BlcnR5IGlmIHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQuIFRoZSBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkKKyAgICAgICAgICAgICAgICAoaWYgYW55KSBtdXN0IGJlIG9mIHR5cGUgU3RyaW5nLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbHVlIHRvIHdoaWNoIHRoaXMgZmllbGQgc2hvdWxkIGJlIGluaXRpYWxpemVkLiBbVXNlIHRoZQorICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eSB2YWx1ZV0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT53cml0ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFNob3VsZCB0aGUgdmFsdWUgb2YgdGhpcyBmaWVsZCBhbHNvIGJlIHJlbmRlcmVkIHRvIHRoZQorICAgICAgICAgICAgICAgIHJlc3BvbnNlIHBhZ2UgdG8gbWFrZSBpdCB2aXNpYmxlLCBpbiBhZGRpdGlvbiB0byBjcmVhdGluZworICAgICAgICAgICAgICAgIGFuIEhUTUwgdHlwZT0iaGlkZGVuIiBlbGVtZW50PyAgQnkgZGVmYXVsdCwgb25seSB0aGUKKyAgICAgICAgICAgICAgICBoaWRkZW4gZWxlbWVudCBpcyBjcmVhdGVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5odG1sPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkh0bWxUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5KU1A8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPlJlbmRlciBhbiBIVE1MIDxjb2RlPiZsdDtodG1sJmd0OzwvY29kZT4gRWxlbWVudDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICA8cD5SZW5kZXJzIGFuIEhUTUwgPGNvZGU+Jmx0O2h0bWwmZ3Q7PC9jb2RlPiBlbGVtZW50IHdpdGgKKyAgICAgICAgICBsYW5ndWFnZSBhdHRyaWJ1dGVzIGV4dHJhY3RlZCBmcm9tIHRoZSB1c2VyJ3MgY3VycmVudCBMb2NhbGUKKyAgICAgICAgICBvYmplY3QsIGlmIHRoZXJlIGlzIG9uZS48L3A+CisgICAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sYW5nPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgIFJlbmRlcnMgYSBsYW5nIGF0dHJpYnV0ZSB3aXRoIHRoZSBsb2NhbGUgc3RvcmVkIGluIHRoZSB1c2VyJ3Mgc2Vzc2lvbi4gIElmIG5vdCAKKyAgICAgICAgICAgICAgICAgZm91bmQgaW4gdGhlIHNlc3Npb24sIHRoZSBsYW5ndWFnZSBmcm9tIHRoZSA8Y29kZT5BY2NlcHQtTGFuZ3VhZ2U8L2NvZGU+CisgICAgICAgICAgICAgICAgIEhUVFAgaGVhZGVyIGlzIHVzZWQuICBJZiBzdGlsbCBub3QgZm91bmQsIHRoZSBkZWZhdWx0IGxhbmd1YWdlIGZvciB0aGUgc2VydmVyIAorICAgICAgICAgICAgICAgICBpcyB1c2VkLgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjI8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnhodG1sPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgIDxwPlNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpbiBvcmRlciB0byByZW5kZXIgCisgICAgICAgICAgICAgIDxjb2RlPnhtbDpsYW5nPC9jb2RlPiBhbmQgPGNvZGU+eG1sbnM8L2NvZGU+IGF0dHJpYnV0ZXMgCisgICAgICAgICAgICAgIG9uIHRoZSBnZW5lcmF0ZWQgPGNvZGU+aHRtbDwvY29kZT4gZWxlbWVudC4gIFRoaXMgYWxzbyAKKyAgICAgICAgICAgICAgY2F1c2VzIGFsbCBvdGhlciBodG1sIHRhZ3MgdG8gcmVuZGVyIGFzIFhIVE1MIDEuMCAodGhlIAorICAgICAgICAgICAgICAmbHQ7aHRtbDp4aHRtbC8mZ3Q7IHRhZyBoYXMgYSBzaW1pbGFyIHB1cnBvc2UpLgorICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmltYWdlPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltYWdlVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgICAgICBSZW5kZXIgYW4gaW5wdXQgdGFnIG9mIHR5cGUgImltYWdlIgorICAgICAgICAgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKworICAgICAgICAgICAgICAgIDxwPlJlbmRlcnMgYW4gSFRNTCA8Y29kZT4mbHQ7aW5wdXQmZ3Q7PC9jb2RlPiB0YWcgb2YgdHlwZQorICAgICAgICAgICAgICAgICJpbWFnZSIuICBUaGUgYmFzZSBVUkwgZm9yIHRoaXMgaW1hZ2UgaXMgY2FsY3VsYXRlZCBkaXJlY3RseQorICAgICAgICAgICAgICAgIGJhc2VkIG9uIHRoZSB2YWx1ZSBzcGVjaWZpZWQgaW4gdGhlIDxjb2RlPnNyYzwvY29kZT4gb3IKKyAgICAgICAgICAgICAgICA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGVzLCBvciBpbmRpcmVjdGx5IGJ5IGxvb2tpbmcgdXAgYQorICAgICAgICAgICAgICAgIG1lc3NhZ2UgcmVzb3VyY2Ugc3RyaW5nIGJhc2VkIG9uIHRoZSA8Y29kZT5zcmNLZXk8L2NvZGU+IG9yCisgICAgICAgICAgICAgICAgPGNvZGU+cGFnZUtleTwvY29kZT4gYXR0cmlidXRlcy4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4KKyAgICAgICAgICAgICAgICBzcGVjaWZ5IGV4YWN0bHkgb25lIG9mIHRoZXNlIGF0dHJpYnV0ZXMuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+SWYgeW91IHdvdWxkIGxpa2UgdG8gb2J0YWluIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBjbGljayB0aGF0IHN1Ym1pdHRlZCB0aGlzIHJlcXVlc3QsIHNlZSB0aGUgaW5mb3JtYXRpb24gYmVsb3cKKyAgICAgICAgICAgICAgICBvbiB0aGUgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgPHA+VGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LjwvcD4KKworICAgICAgICAgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseQorICAgICAgICAgICAgICAgIHRvIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsaWduPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWxpZ25tZW50IG9wdGlvbiBmb3IgdGhpcyBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGltYWdlLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGltYWdlLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Ym9yZGVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgd2lkdGggKGluIHBpeGVscykgb2YgdGhlIGJvcmRlciBhcm91bmQgdGhpcyBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgbG9naWM6aXRlcmF0ZSB0YWcuICBJZiA8Y29kZT50cnVlPC9jb2RlPgorICAgICAgICAgICAgICAgIHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJwcm9wZXJ0eU5hbWVbMzRdIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkIGZvcgorICAgICAgICAgICAgICAgIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sb2NhbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBzZXNzaW9uIGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBMb2NhbGUgdXNlZCB0byBzZWxlY3QKKyAgICAgICAgICAgICAgICBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcy4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgIFN0cnV0cyBzdGFuZGFyZCB2YWx1ZS48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMKKyAgICAgICAgICAgICAgICBhbmQgYSBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMKKyAgICAgICAgICAgICAgICBhbmQgYSBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzCisgICAgICAgICAgICAgICAgYW5kIGEga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdAorICAgICAgICAgICAgICAgIHVuZGVyIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYWdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbW9kdWxlLXJlbGF0aXZlIHBhdGggb2YgdGhlIGltYWdlIGZvciB0aGlzCisgICAgICAgICAgICAgICAgaW5wdXQgdGFnLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGtleSBvZiB0aGUgbWVzc2FnZSByZXNvdXJjZXMgc3RyaW5nIHNwZWNpZnlpbmcgdGhlCisgICAgICAgICAgICAgICAgbW9kdWxlLXJlbGF0aXZlIHBhdGggb2YgdGhlIGltYWdlIGZvciB0aGlzIGlucHV0IHRhZy48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgcHJvcGVydHkgbmFtZSBvZiB0aGlzIGltYWdlIHRhZy4gIFRoZSBwYXJhbWV0ZXIgbmFtZXMKKyAgICAgICAgICAgICAgICBmb3IgdGhlIHJlcXVlc3Qgd2lsbCBhcHBlYXIgYXMgInByb3BlcnR5LngiIGFuZCAicHJvcGVydHkueSIsCisgICAgICAgICAgICAgICAgdGhlIHggYW5kIHkgcmVwcmVzZW50aW5nIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgbW91c2UgY2xpY2sKKyAgICAgICAgICAgICAgICBmb3IgdGhlIGltYWdlLiAgQSB3YXkgb2YgcmV0cmlldmluZyB0aGVzZSB2YWx1ZXMgdGhyb3VnaCBhCisgICAgICAgICAgICAgICAgZm9ybSBiZWFuIGlzIHRvIGRlZmluZSBnZXRYKCksIGdldFkoKSwgc2V0WCgpLCBhbmQgc2V0WSgpCisgICAgICAgICAgICAgICAgbWV0aG9kcywgYW5kIHNwZWNpZnkgeW91ciBwcm9wZXJ0eSBhcyBhIGJsYW5rIHN0cmluZworICAgICAgICAgICAgICAgIChwcm9wZXJ0eT0iIikuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zcmM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBzb3VyY2UgVVJMIG9mIHRoZSBpbWFnZSBmb3IgdGhpcyBpbnB1dCB0YWcuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zcmNLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBrZXkgb2YgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIHN0cmluZyBzcGVjaWZ5aW5nIHRoZQorICAgICAgICAgICAgICAgIHNvdXJjZSBVUkwgb2YgdGhlIGltYWdlIGZvciB0aGlzIGlucHV0IHRhZy48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgIDxwPlRoZSB2YWx1ZSB0aGF0IHdpbGwgYmUgc3VibWl0dGVkIGlmIHRoaXMgaW1hZ2UgYnV0dG9uCisgICAgICAgICAgICAgIGlzIHByZXNzZWQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5pbWc8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSW1nVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+ZW1wdHk8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPlJlbmRlciBhbiBIVE1MIGltZyB0YWc8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisKKyAgICAgICAgICAgICAgICA8cD5SZW5kZXJzIGFuIEhUTUwgPGNvZGU+Jmx0O2ltZyZndDs8L2NvZGU+IGVsZW1lbnQgd2l0aAorICAgICAgICAgICAgICAgIHRoZSBpbWFnZSBhdCB0aGUgc3BlY2lmaWVkIFVSTC4gIExpa2UgdGhlIGxpbmsgdGFnLCBVUkwKKyAgICAgICAgICAgICAgICByZXdyaXRpbmcgd2lsbCBiZSBhcHBsaWVkIGF1dG9tYXRpY2FsbHkgdG8gdGhlIHZhbHVlCisgICAgICAgICAgICAgICAgc3BlY2lmaWVkIGluIDxjb2RlPnNyYzwvY29kZT4sIDxjb2RlPnBhZ2U8L2NvZGU+LCBvcgorICAgICAgICAgICAgICAgIDxjb2RlPmFjdGlvbjwvY29kZT4gdG8gbWFpbnRhaW4gc2Vzc2lvbiBzdGF0ZQorICAgICAgICAgICAgICAgIGluIHRoZSBhYnNlbmNlIG9mIGNvb2tpZXMuICBUaGlzIHdpbGwgYWxsb3cgZHluYW1pYworICAgICAgICAgICAgICAgIGdlbmVyYXRpb24gb2YgYW4gaW1hZ2Ugd2hlcmUgdGhlIGNvbnRlbnQgZGlzcGxheWVkIGZvciB0aGlzCisgICAgICAgICAgICAgICAgaW1hZ2Ugd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBhdHRyaWJ1dGVzIG9mIHRoaXMgdGFnLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPlRoZSBiYXNlIFVSTCBmb3IgdGhpcyBpbWFnZSBpcyBjYWxjdWxhdGVkIGRpcmVjdGx5IGJhc2VkIG9uCisgICAgICAgICAgICAgICAgdGhlIHZhbHVlIHNwZWNpZmllZCBpbiA8Y29kZT5zcmM8L2NvZGU+LCA8Y29kZT5wYWdlPC9jb2RlPiwgb3IKKyAgICAgICAgICAgICAgICA8Y29kZT5hY3Rpb248L2NvZGU+IG9yIDxjb2RlPnBhZ2U8L2NvZGU+LAorICAgICAgICAgICAgICAgIG9yIGluZGlyZWN0bHkgYnkgbG9va2luZyB1cCBhIG1lc3NhZ2UgcmVzb3VyY2Ugc3RyaW5nIGJhc2VkIG9uCisgICAgICAgICAgICAgICAgdGhlIDxjb2RlPnNyY0tleTwvY29kZT4gb3IgPGNvZGU+cGFnZUtleTwvY29kZT4gYXR0cmlidXRlcy4KKyAgICAgICAgICAgICAgICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgZXhhY3RseSBvbmUgb2YgdGhlc2UKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPk5vcm1hbGx5LCB0aGUgPGNvZGU+c3JjPC9jb2RlPiwgPGNvZGU+cGFnZTwvY29kZT4sIG9yCisgICAgICAgICAgICAgICAgPGNvZGU+YWN0aW9uPC9jb2RlPiB0aGF0IHlvdSBzcGVjaWZ5IHdpbGwgYmUgbGVmdAorICAgICAgICAgICAgICAgIHVuY2hhbmdlZCAob3RoZXIgdGhhbiBVUkwgcmV3cml0aW5nIGlmIG5lY2Vzc2FyeSkuICBIb3dldmVyLAorICAgICAgICAgICAgICAgIHRoZXJlIGFyZSB0d28gd2F5cyB5b3UgY2FuIGFwcGVuZCBvbmUgb3IgbW9yZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgIGRlZmluZWQgcXVlcnkgcGFyYW1ldGVycyB0byB0aGUgPGNvZGU+c3JjPC9jb2RlPiBVUkwgLS0KKyAgICAgICAgICAgICAgICBzcGVjaWZ5IGEgc2luZ2xlIHBhcmFtZXRlciB3aXRoIHRoZSA8Y29kZT5wYXJhbUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAoYXQgaXRzIGFzc29jaWF0ZWQgYXR0cmlidXRlcyB0byBzZWxlY3QgdGhlIHZhbHVlKSwKKyAgICAgICAgICAgICAgICBvciBzcGVjaWZ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgPGNvZGU+cHJvcGVydHk8L2NvZGU+KSBhdHRyaWJ1dGVzIHRvIHNlbGVjdCBhCisgICAgICAgICAgICAgICAgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gYmVhbiB0aGF0IGNvbnRhaW5zIG9uZSBvciBtb3JlCisgICAgICAgICAgICAgICAgcGFyYW1ldGVyIGlkcyBhbmQgY29ycmVzcG9uZGluZyB2YWx1ZXMuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+VG8gc3BlY2lmeSBhIHNpbmdsZSBwYXJhbWV0ZXIsIHVzZSB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4KKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgdG8gZGVmaW5lIHRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0byBiZQorICAgICAgICAgICAgICAgIHN1Ym1pdHRlZC4gIFRvIHNwZWNpZnkgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUsIHVzZSBvbmUgb2YgdGhlCisgICAgICAgICAgICAgICAgZm9sbG93aW5nIGFwcHJvYWNoZXM6PC9wPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgb25seSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGU8L2VtPgorICAgICAgICAgICAgICAgICAgICAtIFRoZSBuYW1lZCBKU1AgYmVhbiAob3B0aW9uYWxseSBzY29wZWQgYnkgdGhlIHZhbHVlIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBhdHRyaWJ1dGUpIG11c3QgaWRlbnRpZnkgYSB2YWx1ZQorICAgICAgICAgICAgICAgICAgICB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgYm90aCB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhbmQKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlczwvZW0+IC0gVGhlIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eSBnZXR0ZXIgd2lsbCBiZSBjYWxsZWQgb24gdGhlIEpTUCBiZWFuIGlkZW50aWZpZWQKKyAgICAgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gKGFuZCBvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPikgYXR0cmlidXRlcywgaW4gb3JkZXIgdG8gc2VsZWN0CisgICAgICAgICAgICAgICAgICAgIGEgdmFsdWUgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgU3RyaW5nLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICAgIDxwPklmIHlvdSBwcmVmZXIgdG8gc3BlY2lmeSBhIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IHRoYXQKKyAgICAgICAgICAgICAgICBjb250YWlucyBhbGwgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyB0byBiZSBhZGRlZCB0byB0aGUKKyAgICAgICAgICAgICAgICBoeXBlcmxpbmssIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB0ZWNobmlxdWVzOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IG9ubHkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZTwvZW0+IC0KKyAgICAgICAgICAgICAgICAgICAgVGhlIG5hbWVkIEpTUCBiZWFuIChvcHRpb25hbGx5IHNjb3BlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgICAgICAgICAgdGhlIDxjb2RlPnNjb3BlPC9jb2RlPiBhdHRyaWJ1dGUpIG11c3QgaWRlbnRpZnkgYQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IGJvdGggPGNvZGU+bmFtZTwvY29kZT4gYW5kCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzPC9lbT4gLSBUaGUgc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5IGdldHRlciBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgb24gdGhlIGJlYW4KKyAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllZCBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gKGFuZCBvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICA8Y29kZT5zY29wZTwvY29kZT4pIGF0dHJpYnV0ZXMsIGluIG9yZGVyIHRvIHJldHVybiB0aGUKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcGFyYW1ldGVycy48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgICA8cD5BcyB0aGUgPGNvZGU+TWFwPC9jb2RlPiBpcyBwcm9jZXNzZWQsIHRoZSBrZXlzIGFyZSBhc3N1bWVkCisgICAgICAgICAgICAgICAgdG8gYmUgdGhlIG5hbWVzIG9mIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gYmUgYXBwZW5kZWQgdG8gdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+c3JjPC9jb2RlPiBVUkwuICBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGVhY2gga2V5CisgICAgICAgICAgICAgICAgbXVzdCBiZSBlaXRoZXIgYSBTdHJpbmcgb3IgYSBTdHJpbmcgYXJyYXkgcmVwcmVzZW50aW5nIHRoZQorICAgICAgICAgICAgICAgIHBhcmFtZXRlciB2YWx1ZShzKSwgb3IgYW4gb2JqZWN0IHdob3NlIHRvU3RyaW5nKCkgbWV0aG9kCisgICAgICAgICAgICAgICAgd2lsbCBiZSBjYWxsZWQuICBJZiBhIFN0cmluZyBhcnJheSBpcyBzcGVjaWZpZWQsIG1vcmUgdGhhbgorICAgICAgICAgICAgICAgIG9uZSB2YWx1ZSBmb3IgdGhlIHNhbWUgcXVlcnkgcGFyYW1ldGVyIG5hbWUgd2lsbCBiZQorICAgICAgICAgICAgICAgIGNyZWF0ZWQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+WW91IGNhbiBzcGVjaWZ5IHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBpbWFnZSAod2hpY2gKKyAgICAgICAgICAgICAgICBtb3N0IGJyb3dzZXJzIGRpc3BsYXkgYXMgcG9wLXVwIHRleHQgYmxvY2sgd2hlbiB0aGUgdXNlcgorICAgICAgICAgICAgICAgIGhvdmVycyB0aGUgbW91c2Ugb3ZlciB0aGlzIGltYWdlKSBlaXRoZXIgZGlyZWN0bHksIHRocm91Z2gKKyAgICAgICAgICAgICAgICB0aGUgPGNvZGU+YWx0PC9jb2RlPiBhdHRyaWJ1dGUsIG9yIGluZGlyZWN0bHkgZnJvbSBhIG1lc3NhZ2UKKyAgICAgICAgICAgICAgICByZXNvdXJjZXMgYnVuZGxlLCB1c2luZyB0aGUgPGNvZGU+YnVuZGxlPC9jb2RlPiBhbmQKKyAgICAgICAgICAgICAgICA8Y29kZT5hbHRLZXk8L2NvZGU+IGF0dHJpYnV0ZXMuPC9wPgorCisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbGlnbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5XaGVyZSB0aGUgaW1hZ2UgaXMgYWxpZ25lZCB0by4gIENhbiBiZSBvbmUgb2YgdGhlCisgICAgICAgICAgICAgICAgICBmb2xsb3dpbmcgYXR0cmlidXRlczo8L3A+CisgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgPGxpPmxlZnQgLSBsZWZ0IGp1c3RpZnksIHdyYXBwaW5nIHRleHQgb24gcmlnaHQ8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+cmlnaHQgLXJpZ2h0IGp1c3RpZnksIHdyYXBwaW5nIHRlc3Qgb24gbGVmdDwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT50b3AgLSBhbGlnbnMgdGhlIGltYWdlIHdpdGggdGhlIHRvcCBvZiB0aGUgdGV4dCBvbgorICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgcm93PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPm1pZGRsZSAtIGFsaWducyB0aGUgaW1hZ2UncyB2ZXJ0aWNhbCBjZW50ZXIgd2l0aCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgYmFzZSBsaW5lPC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPmJvdHRvbSAtIGFsaWducyB0aGUgaW1hZ2Ugd2l0aCB0aGUgYm90dG9tIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCdzIGJhc2UgbGluZTwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT50ZXh0dG9wIC0gYWxpZ25zIHRoZSBpbWFnZSdzIHRvcCB3aXRoIHRoYXQgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0IGZvbnQgb24gdGhlIHNhbWUgbGluZTwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT5hYnNtaWRkbGUgLSBhbGlnbnMgdGhlIGltYWdlJ3MgdmVydGljYWwgY2VudGVyIHdpdGggdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBhYnNvbHV0ZSBjZW50ZXIgb2YgdGhlIHRleHQ8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+YWJzYm90dG9tIC0gYWxpZ25zIHRoZSBpbWFnZSB3aXRoIHRoZSBhYnNvbHV0ZSBib3R0b20KKyAgICAgICAgICAgICAgICAgICAgICAgIG9mIHRoZSB0ZXh0IGZvbnQgb24gdGhlIHNhbWUgcm93PC9saT4KKyAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkFuZCBhbHRlcm5hdGl2ZSB0ZXh0IHRvIGJlIGRpc3BsYXllZCBpbiBicm93c2VycyB0aGF0CisgICAgICAgICAgICAgICAgICAgICBkb24ndCBzdXBwb3J0IGdyYXBoaWNzLiAgQWxzbyB1c2VkIG9mdGVuIGFzIHR5cGUgb2YKKyAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQgaGVscCBvdmVyIGltYWdlcy48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Ym9yZGVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSB3aWR0aCBvZiB0aGUgYm9yZGVyIHN1cnJvdW5kaW5nIHRoZSBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aGVpZ2h0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBoZWlnaHQgb2YgdGhlIGltYWdlIGJlaW5nIGRpc3BsYXllZC4gIFRoaXMgcGFyYW1ldGVyCisgICAgICAgICAgICAgICAgICAgICBpcyB2ZXJ5IG5pY2UgdG8gc3BlY2lmeSAoYWxvbmcgd2l0aCA8Y29kZT53aWR0aDwvY29kZT4pCisgICAgICAgICAgICAgICAgICAgICB0byBoZWxwIHRoZSBicm93c2VyIHJlbmRlciB0aGUgcGFnZSBmYXN0ZXIuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmhzcGFjZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIGhvcml6b250YWwgc3BhY2luZyBiZXR3ZWVuIHRoZSBpY29uIGFuZAorICAgICAgICAgICAgICAgICAgICAgdGhlIHRleHQuICBUaGUgdGV4dCBtYXkgYmUgaW4gdGhlIHNhbWUgcGFyYWdyYXBoLCBvcgorICAgICAgICAgICAgICAgICAgICAgYmUgd3JhcHBlZCBhcm91bmQgdGhlIGltYWdlLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbWFnZU5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHNjcmlwdGFibGUgbmFtZSB0byBiZSBkZWZpbmVkIHdpdGhpbiB0aGlzIHBhZ2UsIHNvCisgICAgICAgICAgICAgICAgICB0aGF0IHlvdSBjYW4gcmVmZXJlbmNlIGl0IHdpdGggaW50cmEtcGFnZSBzY3JpcHRzLiAgSW4gb3RoZXIKKyAgICAgICAgICAgICAgICAgIHdvcmRzLCB0aGUgdmFsdWUgc3BlY2lmaWVkIGhlcmUgd2lsbCByZW5kZXIgYSAibmFtZSIgZWxlbWVudAorICAgICAgICAgICAgICAgICAgaW4gdGhlIGdlbmVyYXRlZCBpbWFnZSB0YWcuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmlzbWFwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIHRoZSBzZXJ2ZXItc2lkZSBtYXAgdGhhdCB0aGlzIGltYWdlIGJlbG9uZ3MKKyAgICAgICAgICAgICAgICAgICAgIHRvLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sb2NhbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIHJlcXVlc3Qgb3Igc2Vzc2lvbiBMb2NhbGUgYXR0cmlidXRlIHVzZWQKKyAgICAgICAgICAgICAgICAgIHRvIGxvb2sgdXAgaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGNvbnRhaW5zIGEgPGNvZGU+TWFwPC9jb2RlPgorICAgICAgICAgICAgICAgICAgcmVwcmVzZW50aW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGlzIG5vdCBzcGVjaWZpZWQpLCBvciBhIEpTUCBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcworICAgICAgICAgICAgICAgICAgY2FsbGVkIHRvIHJldHVybiBhIDxjb2RlPk1hcDwvY29kZT4gKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgICAgaXMgc3BlY2lmaWVkKS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEga2V5IGRvd24gZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEga2V5IHByZXNzIGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIGtleSB1cCBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1JZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgICBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkIHNyYyBVUkwuICBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcworICAgICAgICAgICAgICAgICAgZGVmaW5lZCBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhbmQgKG9wdGlvbmFsKQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlcywgb3B0aW9uYWxseSBzY29wZWQgYnkKKyAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBhdHRyaWJ1dGU8L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbW9kdWxlLXJlbGF0aXZlIHBhdGgsIHN0YXJ0aW5nIHdpdGggYSBzbGFzaCwgb2YKKyAgICAgICAgICAgICAgICAgIHRoZSBpbWFnZSB0byBiZSBkaXNwbGF5ZWQgYnkgdGhpcyB0YWcuICBUaGUgcmVuZGVyZWQKKyAgICAgICAgICAgICAgICAgIFVSTCBmb3IgdGhpcyBpbWFnZSB3aWxsIGF1dG9tYXRpY2FsbHkgcHJlcGVuZCB0aGUgY29udGV4dAorICAgICAgICAgICAgICAgICAgcGF0aCBvZiB0aGlzIHdlYiBhcHBsaWNhdGlvbiAoaW4gdGhlIHNhbWUgbWFubmVyIGFzIHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZSBsaW5rIHRhZyB3b3JrcyksCisgICAgICAgICAgICAgICAgICBpbiBhZGRpdGlvbiB0byBhbnkgbmVjZXNzYXJ5IFVSTCByZXdyaXRpbmcuICBZb3UKKyAgICAgICAgICAgICAgICAgIDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGVpdGhlciB0aGUgPGNvZGU+cGFnZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBvciB0aGUgPGNvZGU+c3JjPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhZ2VLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2Uga2V5LCBpbiB0aGUgbWVzc2FnZSByZXNvdXJjZXMgYnVuZGxlIG5hbWVkIGJ5CisgICAgICAgICAgICAgICAgICB0aGUgPGNvZGU+YnVuZGxlPC9jb2RlPiBhdHRyaWJ1dGUsIG9mIHRoZSBTdHJpbmcgdG8gYmUKKyAgICAgICAgICAgICAgICAgIHVzZWQgYXMgdGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIGZvciB0aGlzIGltYWdlLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICA8cD5UaGUgYWN0aW9uLCBzdGFydGluZyB3aXRoIGEgc2xhc2gsIHRoYXQgd2lsbCByZW5kZXIKKyAgICAgICAgICAgICAgdGhlIGltYWdlIHRvIGJlIGRpc3BsYXllZCBieSB0aGlzIHRhZy4gIFRoZSByZW5kZXJlZAorICAgICAgICAgICAgICBVUkwgZm9yIHRoaXMgaW1hZ2Ugd2lsbCBhdXRvbWF0aWNhbGx5IHByZXBlbmQgdGhlIGNvbnRleHQKKyAgICAgICAgICAgICAgcGF0aCBvZiB0aGlzIHdlYiBhcHBsaWNhdGlvbiAoaW4gdGhlIHNhbWUgbWFubmVyIGFzIHRoZQorICAgICAgICAgICAgICA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUgbGluayB0YWcgd29ya3MpLAorICAgICAgICAgICAgICBpbiBhZGRpdGlvbiB0byBhbnkgbmVjZXNzYXJ5IFVSTCByZXdyaXRpbmcuICBZb3UKKyAgICAgICAgICAgICAgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4sCisgICAgICAgICAgICAgIDxjb2RlPnBhZ2U8L2NvZGU+CisgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgb3IgdGhlIDxjb2RlPnNyYzwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgIAorCQkgICAgICAgPHA+QWRkaXRpb25hbGx5LCB5b3UgY2FuIHNwZWNpZnkgYSA8Y29kZT5tb2R1bGU8L2NvZGU+IHByZWZpeCAKKwkJCSAgIGZvciBsaW5raW5nIHRvIG90aGVyIG1vZHVsZXMuPC9wPgorCQkJCQkJICAgCisJCQkgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bW9kdWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKwkJCQkgICA8cD5QcmVmaXggbmFtZSBvZiBhIDxjb2RlPk1vZHVsZTwvY29kZT4gdGhhdAorCQkJCSAgIGNvbnRhaW5zIHRoZSBhY3Rpb24gbWFwcGluZyBmb3IgdGhlIDxjb2RlPkFjdGlvbjwvY29kZT4KKwkJCQkgICB0aGF0IGlzIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUuCisJCQkJICAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGFuIDxjb2RlPmFjdGlvbjwvY29kZT4gCisJCQkJICAgYXR0cmlidXRlIGZvciB0aGlzIHRvIGhhdmUgYW4gZWZmZWN0LjwvcD4KKwkJCQorCQkJCSAgIDxwPjxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+VXNlICIiIHRvIG1hcCB0byB0aGUgZGVmYXVsdCBtb2R1bGUuPC9wPgorCQkJICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1OYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gdGhhdCBpcyBhIFN0cmluZyBjb250YWluaW5nIHRoZQorICAgICAgICAgICAgICAgICAgdmFsdWUgZm9yIHRoZSByZXF1ZXN0IHBhcmFtZXRlciBuYW1lZCBieSA8Y29kZT5wYXJhbUlkPC9jb2RlPgorICAgICAgICAgICAgICAgICAgKGlmIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQpLCBvciBhIEpTUAorICAgICAgICAgICAgICAgICAgYmVhbiB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMgY2FsbGVkIHRvIHJldHVybiBhIFN0cmluZworICAgICAgICAgICAgICAgICAgKGlmIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZCkuICBUaGUgSlNQIGJlYW4KKyAgICAgICAgICAgICAgICAgIGlzIGNvbnN0cmFpbmVkIHRvIHRoZSBiZWFuIHNjb3BlIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IHByb3BlcnR5LCBpZiBpdCBpcyBzcGVjaWZpZWQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtUHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hvc2UgcmV0dXJuIHZhbHVlIG11c3QKKyAgICAgICAgICAgICAgICAgIGJlIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlIHZhbHVlIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlcgorICAgICAgICAgICAgICAgICAgKG5hbWVkIGJ5IHRoZSA8Y29kZT5wYXJhbUlkPC9jb2RlPiBhdHRyaWJ1dGUpIHRoYXQgd2lsbCBiZQorICAgICAgICAgICAgICAgICAgZHluYW1pY2FsbHkgYWRkZWQgdG8gdGhpcyBzcmMgVVJMLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbVNjb3BlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZS4gIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgICBhbGwgc2NvcGVzIGFyZSBzZWFyY2hlZC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0IGJlCisgICAgICAgICAgICAgICAgICBhIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKKyAgICAgICAgICAgICAgICAgIHRvIGJlIGFkZGVkIHRvIHRoZSBzcmMgVVJMLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPgorICAgICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIGlmIHlvdSBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZS4gIElmIG5vdCBzcGVjaWZpZWQsIGFsbAorICAgICAgICAgICAgICAgICAgc2NvcGVzIGFyZSBzZWFyY2hlZC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3JjPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBVUkwgdG8gd2hpY2ggdGhpcyBpbWFnZSB3aWxsIGJlIHRyYW5zZmVycmVkIGZyb20KKyAgICAgICAgICAgICAgICAgIFRoaXMgaW1hZ2UgbWF5IGJlIGR5bmFtaWNhbGx5IG1vZGlmaWVkCisgICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgIHRhZyBkZXNjcmlwdGlvbi4gIFRoaXMgdmFsdWUgd2lsbCBiZSB1c2VkIHVubW9kaWZpZWQgKG90aGVyCisgICAgICAgICAgICAgICAgICB0aGFuIHBvdGVudGlhbCBVUkwgcmV3cml0aW5nKSBhcyB0aGUgdmFsdWUgb2YgdGhlICJzcmMiCisgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW4gdGhlIHJlbmRlcmVkIHRhZy4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4KKyAgICAgICAgICAgICAgICAgIHNwZWNpZnkgZWl0aGVyIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUgb3IgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5zcmM8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3JjS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIGtleSwgaW4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGJ1bmRsZSBuYW1lZCBieQorICAgICAgICAgICAgICAgICAgdGhlIDxjb2RlPmJ1bmRsZTwvY29kZT4gYXR0cmlidXRlLCBvZiB0aGUgU3RyaW5nIHRvIGJlCisgICAgICAgICAgICAgICAgICB1c2VkIGFzIHRoZSBVUkwgb2YgdGhpcyBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnVzZUxvY2FsRW5jb2Rpbmc8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBMb2NhbENoYXJhY3RlckVuY29kaW5nIHdpbGwgYmUKKyAgICAgICAgICAgICAgdXNlZCwgdGhhdCBpcywgdGhlIGNoYXJhY3RlckVuY29kaW5nIHNldCB0byB0aGUgSHR0cFNlcnZsZXRSZXNwb25zZSwKKyAgICAgICAgICAgICAgYXMgcHJlZmVyZWQgY2hhcmFjdGVyIGVuY29kaW5nIHJhdGhlciB0aGFuIFVURi04LCB3aGVuCisgICAgICAgICAgICAgIFVSTEVuY29kaW5nIGlzIGRvbmUgb24gcGFyYW1ldGVycyBvZiB0aGUgVVJMLjwvcD4KKyAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnVzZW1hcDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiB0aGUgbWFwIGFzIGRlZmluZWQgd2l0aGluIHRoaXMgcGFnZSBmb3IKKyAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmcgaG90LXNwb3QgYXJlYXMgb2YgdGhpcyBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dnNwYWNlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhbW91bnQgb2YgdmVydGljYWwgc3BhY2luZyBiZXR3ZWVuIHRoZSBpY29uIGFuZAorICAgICAgICAgICAgICAgICAgICAgdGhlIHRleHQsIGFib3ZlIGFuZCBiZWxvdy48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+d2lkdGg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHdpZHRoIG9mIHRoZSBpbWFnZSBiZWluZyBkaXNwbGF5ZWQuICBUaGlzIHBhcmFtZXRlcgorICAgICAgICAgICAgICAgICAgICAgaXMgdmVyeSBuaWNlIHRvIHNwZWNpZnkgKGFsb25nIHdpdGggPGNvZGU+aGVpZ2h0PC9jb2RlPikKKyAgICAgICAgICAgICAgICAgICAgIHRvIGhlbHAgdGhlIGJyb3dzZXIgcmVuZGVyIHRoZSBwYWdlIGZhc3Rlci48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmphdmFzY3JpcHQ8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+CisgICAgICAgICAgICBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5KYXZhc2NyaXB0VmFsaWRhdG9yVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+ZW1wdHk8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEphdmFTY3JpcHQgdmFsaWRhdGlvbiBiYXNlZCBvbiB0aGUKKyAgICAgICAgICAgIHZhbGlkYXRpb24gcnVsZXMgbG9hZGVkIGJ5IHRoZSBWYWxpZGF0b3JQbHVnSW4uCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIFJlbmRlciBKYXZhU2NyaXB0IHZhbGlkYXRpb24gYmFzZWQgb24gdGhlCisgICAgICAgICAgICAgICAgdmFsaWRhdGlvbiBydWxlcyBsb2FkZWQgYnkgdGhlIDxjb2RlPlZhbGlkYXRvclBsdWdJbjwvY29kZT4uCisgICAgICAgICAgICAgICAgVGhlIHNldCBvZiB2YWxpZGF0aW9uIHJ1bGVzIHRoYXQgc2hvdWxkIGJlIGdlbmVyYXRlZCBpcyBiYXNlZAorICAgICAgICAgICAgICAgIG9uIHRoZSBmb3JtTmFtZSBhdHRyaWJ1dGUgcGFzc2VkIGluLCB3aGljaCBzaG91bGQgbWF0Y2gKKyAgICAgICAgICAgICAgICB0aGUgbmFtZSBhdHRyaWJ1dGUgb2YgdGhlIGZvcm0gZWxlbWVudCBpbiB0aGUgeG1sIGZpbGUuCisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBUaGUgZHluYW1pY0phdmFzY3JpcHQgYW5kIHN0YXRpY0phdmFzY3JpcHQgYXR0cmlidXRlcworICAgICAgICAgICAgICAgIGRlZmF1bHQgdG8gdHJ1ZSwgYnV0IGlmIGR5bmFtaWNKYXZhc2NyaXB0IGlzIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPgorICAgICAgICAgICAgICAgIGFuZCBzdGF0aWNKYXZhc2NyaXB0IGlzIHNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4gdGhlbiBvbmx5CisgICAgICAgICAgICAgICAgdGhlIGR5bmFtaWMgSmF2YVNjcmlwdCB3aWxsIGJlIHJlbmRlcmVkLiAgSWYgZHluYW1pY0phdmFzY3JpcHQKKyAgICAgICAgICAgICAgICBpcyBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+CisgICAgICAgICAgICAgICAgYW5kIHN0YXRpY0phdmFzY3JpcHQgaXMgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gb25seQorICAgICAgICAgICAgICAgIHRoZSBzdGF0aWMgSmF2YVNjcmlwdCB3aWxsIGJlIHJlbmRlcmVkIHdoaWNoIGNhbiB0aGVuIGJlIHB1dCBpbgorICAgICAgICAgICAgICAgIHNlcGFyYXRlIEpTUCBwYWdlIHNvIHRoZSBicm93c2VyIGNhbiBjYWNoZSB0aGUgc3RhdGljIEphdmFTY3JpcHQuCisgICAgICAgICAgICA8L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Y2RhdGE8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICBJZiBzZXQgdG8gInRydWUiIGFuZCBYSFRNTCBoYXMgYmVlbiBlbmFibGVkLCB0aGUgSmF2YVNjcmlwdCB3aWxsCisgICAgICAgICAgICAgICAgICBiZSB3cmFwcGVkIGluIGEgQ0RBVEEgc2VjdGlvbiB0byBwcmV2ZW50IFhNTCBwYXJzaW5nLiBUaGUgZGVmYXVsdCBpcworICAgICAgICAgICAgICAgICAgInRydWUiIHRvIGNvbXBseSB3aXRoIHRoZSBXM0MncyByZWNvbW1lbmRhdGlvbi4KKyAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4xPC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5keW5hbWljSmF2YXNjcmlwdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICBXaGV0aGVyIG9yIG5vdCB0byByZW5kZXIgdGhlIGR5bmFtaWMgSmF2YVNjcmlwdC4KKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIDxjb2RlPnRydWU8L2NvZGU+LgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZvcm1OYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgVGhlIGtleSAoZm9ybSBuYW1lKSB0byByZXRyaWV2ZSBhIHNwZWNpZmljCisgICAgICAgICAgICAgICAgICBzZXQgb2YgdmFsaWRhdGlvbiBydWxlcy4gIElmICJkeW5hbWljSmF2YXNjcmlwdCIgaXMgc2V0IAorICAgICAgICAgICAgICAgICAgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gYW5kIGZvcm1OYW1lIGlzIG1pc3Npbmcgb3IgaXMgbm90IAorICAgICAgICAgICAgICAgICAgcmVjb2duaXplZCBieSB0aGUgPGNvZGU+VmFsaWRhdG9yUGx1Z0luPC9jb2RlPiwgYSAKKyAgICAgICAgICAgICAgICAgIEpzcEV4Y2VwdGlvbiB3aWxsIGJlIHRocm93bi4KKyAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tZXRob2Q8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICBUaGUgYWx0ZXJuYXRlIEphdmFTY3JpcHQgbWV0aG9kIG5hbWUgdG8gYmUgdXNlZAorICAgICAgICAgICAgICAgICAgaW5zdGVhZCBvZiB0aGUgb2YgdGhlIGRlZmF1bHQuICBUaGUgZGVmYXVsdCBpcworICAgICAgICAgICAgICAgICAgJ3ZhbGlkYXRlJyBjb25jYXRlbmF0ZWQgaW4gZnJvbnQgb2YKKyAgICAgICAgICAgICAgICAgIHRoZSBrZXkgKGZvcm0gbmFtZSkgcGFzc2VkIGluIChleDogdmFsaWRhdGVSZWdpc3RyYXRpb25Gb3JtKS4KKyAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYWdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmludDwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgVGhlIGN1cnJlbnQgcGFnZSBvZiBhIHNldCBvZiB2YWxpZGF0aW9uIHJ1bGVzCisgICAgICAgICAgICAgICAgICBpZiB0aGUgcGFnZSBhdHRyaWJ1dGUgZm9yIHRoZSBmaWVsZCBlbGVtZW50CisgICAgICAgICAgICAgICAgICBpbiB0aGUgeG1sIGZpbGUgaXMgaW4gdXNlLgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjcmlwdExhbmd1YWdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlICZsdDtzY3JpcHQmZ3Q7IGVsZW1lbnQgd2lsbCBub3QgY29udGFpbiBhIGxhbmd1YWdlIGF0dHJpYnV0ZQorICAgICAgICAgICAgICAgIHdoZW4gdGhpcyBpcyBzZXQgdG8gZmFsc2UuICBUaGUgZGVmYXVsdCBpcyB0cnVlIGJ1dCB0aGlzIHByb3BlcnR5IGlzIGlnbm9yZWQKKyAgICAgICAgICAgICAgICBpbiBYSFRNTCBtb2RlLgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjI8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNyYzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICAgIFRoZSBzcmMgYXR0cmlidXRlJ3MgdmFsdWUgd2hlbiBkZWZpbmluZworICAgICAgICAgICAgICAgICAgdGhlIGh0bWwgc2NyaXB0IGVsZW1lbnQuCisgICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3RhdGljSmF2YXNjcmlwdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICBXaGV0aGVyIG9yIG5vdCB0byByZW5kZXIgdGhlIHN0YXRpYyBKYXZhU2NyaXB0LgorICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gPGNvZGU+dHJ1ZTwvY29kZT4uCisgICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aHRtbENvbW1lbnQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICBXaGV0aGVyIG9yIG5vdCB0byBlbmNsb3NlIHRoZSBqYXZhc2NyaXB0CisgICAgICAgICAgICAgICAgICB3aXRoIEhUTUwgY29tbWVudHMuICBUaGlzIGF0dHJpYnV0ZSBpcyBpZ25vcmVkIGluIFhIVE1MCisgICAgICAgICAgICAgICAgICBtb2RlIGJlY2F1c2UgdGhlIHNjcmlwdCB3b3VsZCBiZSBkZWxldGVkIGJ5IHRoZSBYTUwgcGFyc2VyLiAgU2VlCisgICAgICAgICAgICAgICAgICB0aGUgY2RhdGEgYXR0cmlidXRlIGZvciBkZXRhaWxzIG9uIGhpZGluZyBzY3JpcHRzIGZyb20gWE1MCisgICAgICAgICAgICAgICAgICBwYXJzZXJzLiAKKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIDxjb2RlPnRydWU8L2NvZGU+LgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjc8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5saW5rPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkxpbmtUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPlJlbmRlciBhbiBIVE1MIGFuY2hvciBvciBoeXBlcmxpbms8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisKKyAgICAgICAgICAgICAgICA8cD5SZW5kZXJzIGFuIEhUTUwgPGNvZGU+Jmx0O2EmZ3Q7PC9jb2RlPiBlbGVtZW50IGFzIGFuCisgICAgICAgICAgICAgICAgYW5jaG9yIGRlZmluaXRpb24gKGlmICJsaW5rTmFtZSIgaXMgc3BlY2lmaWVkKSBvciBhcyBhCisgICAgICAgICAgICAgICAgaHlwZXJsaW5rIHRvIHRoZSBzcGVjaWZpZWQgVVJMLiAgVVJMIHJld3JpdGluZyB3aWxsIGJlCisgICAgICAgICAgICAgICAgYXBwbGllZCBhdXRvbWF0aWNhbGx5LCB0byBtYWludGFpbiBzZXNzaW9uIHN0YXRlIGluIHRoZQorICAgICAgICAgICAgICAgIGFic2VuY2Ugb2YgY29va2llcy4gIFRoZSBjb250ZW50IGRpc3BsYXllZCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGh5cGVybGluayB3aWxsIGJlIHRha2VuIGZyb20gdGhlIGJvZHkgb2YgdGhpcyB0YWcuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+VGhlIGJhc2UgVVJMIGZvciB0aGlzIGh5cGVybGluayBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uCisgICAgICAgICAgICAgICAgd2hpY2ggb2YgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIHlvdSBzcGVjaWZ5ICh5b3UgbXVzdAorICAgICAgICAgICAgICAgIHNwZWNpZnkgZXhhY3RseSBvbmUgb2YgdGhlbSk6PC9wPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPmZvcndhcmQ8L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgYXMgdGhlCisgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgYSBnbG9iYWwgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gdG8gYmUgbG9va2VkCisgICAgICAgICAgICAgICAgICAgIHVwLCBhbmQgdXNlIHRoZSBtb2R1bGUtcmVsYXRpdmUgb3IgY29udGV4dC1yZWxhdGl2ZQorICAgICAgICAgICAgICAgICAgICBVUkkgZm91bmQgdGhlcmUuIElmIHRoZSBmb3J3YXJkIGlzIG1vZHVsZS1yZWxhdGl2ZSB0aGVuCisgICAgICAgICAgICAgICAgICAgIGl0IG11c3QgcG9pbnQgdG8gYW4gYWN0aW9uIGFuZCBOT1QgdG8gYSBwYWdlLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5hY3Rpb248L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgYXMgdGhlCisgICAgICAgICAgICAgICAgICAgIG5hbWUgb2YgYSA8Y29kZT5BY3Rpb248L2NvZGU+IHRvIGJlIGxvb2tlZAorICAgICAgICAgICAgICAgICAgICB1cCwgYW5kIHVzZSB0aGUgbW9kdWxlLXJlbGF0aXZlIG9yIGNvbnRleHQtcmVsYXRpdmUKKyAgICAgICAgICAgICAgICAgICAgVVJJIGZvdW5kIHRoZXJlLjwvbGk+CisgICAgICAgICAgICAgICAgIDxsaT48ZW0+aHJlZjwvZW0+IC0gVXNlIHRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSB1bmNoYW5nZWQuCisgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICA8bGk+PGVtPnBhZ2U8L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgYXMgYQorICAgICAgICAgICAgICAgICAgICBtb2R1bGUtcmVsYXRpdmUgVVJJLCBhbmQgZ2VuZXJhdGUgYSBzZXJ2ZXItcmVsYXRpdmUKKyAgICAgICAgICAgICAgICAgICAgVVJJIGJ5IGluY2x1ZGluZyB0aGUgY29udGV4dCBwYXRoIGFuZCBtb2R1bGUKKyAgICAgICAgICAgICAgICAgICAgcHJlZml4LjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICAgIDxwPk5vcm1hbGx5LCB0aGUgaHlwZXJsaW5rIHlvdSBzcGVjaWZ5IHdpdGggb25lIG9mIHRoZQorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgZGVzY3JpYmVkIGluIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGggd2lsbCBiZSBsZWZ0CisgICAgICAgICAgICAgICAgdW5jaGFuZ2VkIChvdGhlciB0aGFuIFVSTCByZXdyaXRpbmcgaWYgbmVjZXNzYXJ5KS4gIEhvd2V2ZXIsCisgICAgICAgICAgICAgICAgdGhlcmUgYXJlIHR3byB3YXlzIHlvdSBjYW4gYXBwZW5kIG9uZSBvciBtb3JlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgZGVmaW5lZCBxdWVyeSBwYXJhbWV0ZXJzIHRvIHRoZSBoeXBlcmxpbmsgLS0gc3BlY2lmeSBhIHNpbmdsZQorICAgICAgICAgICAgICAgIHBhcmFtZXRlciB3aXRoIHRoZSA8Y29kZT5wYXJhbUlkPC9jb2RlPiBhdHRyaWJ1dGUgKGFuZCBpdHMKKyAgICAgICAgICAgICAgICBhc3NvY2lhdGVkIGF0dHJpYnV0ZXMgdG8gc2VsZWN0IHRoZSB2YWx1ZSksIG9yIHNwZWNpZnkgdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+bmFtZTwvY29kZT4gKGFuZCBvcHRpb25hbCA8Y29kZT5wcm9wZXJ0eTwvY29kZT4pCisgICAgICAgICAgICAgICAgYXR0cmlidXRlcyB0byBzZWxlY3QgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBiZWFuIHRoYXQKKyAgICAgICAgICAgICAgICBjb250YWlucyBvbmUgb3IgbW9yZSBwYXJhbWV0ZXIgaWRzIGFuZCBjb3JyZXNwb25kaW5nIHZhbHVlcy4KKyAgICAgICAgICAgICAgICA8L3A+CisKKyAgICAgICAgICAgICAgICA8cD5UbyBzcGVjaWZ5IGEgc2luZ2xlIHBhcmFtZXRlciwgdXNlIHRoZSA8Y29kZT5wYXJhbUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSB0byBkZWZpbmUgdGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGJlCisgICAgICAgICAgICAgICAgc3VibWl0dGVkLiAgVG8gc3BlY2lmeSB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSwgdXNlIG9uZSBvZiB0aGUKKyAgICAgICAgICAgICAgICBmb2xsb3dpbmcgYXBwcm9hY2hlczo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBvbmx5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZTwvZW0+CisgICAgICAgICAgICAgICAgICAgIC0gVGhlIG5hbWVkIEpTUCBiZWFuIChvcHRpb25hbGx5IHNjb3BlZCBieSB0aGUgdmFsdWUgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IGF0dHJpYnV0ZSkgbXVzdCBpZGVudGlmeSBhIHZhbHVlCisgICAgICAgICAgICAgICAgICAgIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIFN0cmluZy48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBib3RoIHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGFuZAorICAgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzPC9lbT4gLSBUaGUgc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5IGdldHRlciBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgb24gdGhlIEpTUCBiZWFuCisgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZWQgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gKGFuZCBvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPikgYXR0cmlidXRlcywgaW4gb3JkZXIgdG8gc2VsZWN0CisgICAgICAgICAgICAgICAgICAgIGEgdmFsdWUgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgU3RyaW5nLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICAgIDxwPklmIHlvdSBwcmVmZXIgdG8gc3BlY2lmeSBhIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IHRoYXQKKyAgICAgICAgICAgICAgICBjb250YWlucyBhbGwgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyB0byBiZSBhZGRlZCB0byB0aGUKKyAgICAgICAgICAgICAgICBoeXBlcmxpbmssIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB0ZWNobmlxdWVzOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IG9ubHkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZTwvZW0+IC0KKyAgICAgICAgICAgICAgICAgICAgVGhlIG5hbWVkIEpTUCBiZWFuIChvcHRpb25hbGx5IHNjb3BlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgICAgICAgICAgdGhlIDxjb2RlPnNjb3BlPC9jb2RlPiBhdHRyaWJ1dGUpIG11c3QgaWRlbnRpZnkgYQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IGJvdGggPGNvZGU+bmFtZTwvY29kZT4gYW5kCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzPC9lbT4gLSBUaGUgc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5IGdldHRlciBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgb24gdGhlIGJlYW4KKyAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllZCBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gKGFuZCBvcHRpb25hbAorICAgICAgICAgICAgICAgICAgICA8Y29kZT5zY29wZTwvY29kZT4pIGF0dHJpYnV0ZXMsIGluIG9yZGVyIHRvIHJldHVybiB0aGUKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcGFyYW1ldGVycy48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgICA8cD5BcyB0aGUgPGNvZGU+TWFwPC9jb2RlPiBpcyBwcm9jZXNzZWQsIHRoZSBrZXlzIGFyZSBhc3N1bWVkCisgICAgICAgICAgICAgICAgdG8gYmUgdGhlIG5hbWVzIG9mIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gYmUgYXBwZW5kZWQgdG8gdGhlCisgICAgICAgICAgICAgICAgaHlwZXJsaW5rLiAgVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBlYWNoIGtleSBtdXN0IGJlIGVpdGhlcgorICAgICAgICAgICAgICAgIGEgU3RyaW5nIG9yIGEgU3RyaW5nIGFycmF5IHJlcHJlc2VudGluZyB0aGUgcGFyYW1ldGVyIHZhbHVlKHMpLAorICAgICAgICAgICAgICAgIG9yIGFuIG9iamVjdCB3aG9zZSB0b1N0cmluZygpIG1ldGhvZCB3aWxsIGJlIGNhbGxlZC4KKyAgICAgICAgICAgICAgICBJZiBhIFN0cmluZyBhcnJheSBpcyBzcGVjaWZpZWQsIG1vcmUgdGhhbiBvbmUgdmFsdWUgZm9yIHRoZQorICAgICAgICAgICAgICAgIHNhbWUgcXVlcnkgcGFyYW1ldGVyIG5hbWUgd2lsbCBiZSBjcmVhdGVkLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPkFkZGl0aW9uYWxseSwgeW91IGNhbiByZXF1ZXN0IHRoYXQgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24KKyAgICAgICAgICAgICAgICBjb250cm9sIHRva2VuLCBpZiBhbnksIGJlIGluY2x1ZGVkIGluIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rCisgICAgICAgICAgICAgICAgYnkgc2V0dGluZyB0aGUgPGNvZGU+dHJhbnNhY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSB0bworICAgICAgICAgICAgICAgIDxjb2RlPnRydWU8L2NvZGU+LgorICAgICAgICAgICAgICAgIFlvdSBjYW4gYWxzbyByZXF1ZXN0IHRoYXQgYW4gYW5jaG9yICgiI3h4eCIpIGJlIGFkZGVkIHRvIHRoZQorICAgICAgICAgICAgICAgIGVuZCBvZiB0aGUgVVJMIHRoYXQgaXMgY3JlYXRlZCBieSBhbnkgb2YgdGhlIGFib3ZlIG1lY2hhbmlzbXMsCisgICAgICAgICAgICAgICAgYnkgdXNpbmcgdGhlIDxjb2RlPmFuY2hvcjwvY29kZT4gYXR0cmlidXRlLjwvcD4KKworICAgICAgICAgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5CisgICAgICAgICAgICAgICAgICB0byB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5Mb2dpY2FsIG5hbWUgb2YgYSA8Y29kZT5BY3Rpb248L2NvZGU+IHRoYXQKKyAgICAgICAgICAgICAgICAgIGNvbnRhaW5zIHRoZSBhY3R1YWwgY29udGVudC1yZWxhdGl2ZSBVUkkgb2YgdGhlIGRlc3RpbmF0aW9uCisgICAgICAgICAgICAgICAgICBvZiB0aGlzIHRyYW5zZmVyLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgICBtb2RpZmllZCBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZAorICAgICAgICAgICAgICAgICAgaW4gdGhlIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZSA8Y29kZT5saW5rTmFtZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAKKwkJICAgICAgIDxwPkFkZGl0aW9uYWxseSwgeW91IGNhbiBzcGVjaWZ5IGEgPGNvZGU+bW9kdWxlPC9jb2RlPiBwcmVmaXggCisJCQkgICBmb3IgbGlua2luZyB0byBvdGhlciBtb2R1bGVzLjwvcD4KKwkJCQkJCSAgIAorCQkJICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1vZHVsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisJCQkJICAgPHA+UHJlZml4IG5hbWUgb2YgYSA8Y29kZT5Nb2R1bGU8L2NvZGU+IHRoYXQKKwkJCQkgICBjb250YWlucyB0aGUgYWN0aW9uIG1hcHBpbmcgZm9yIHRoZSA8Y29kZT5BY3Rpb248L2NvZGU+CisJCQkJICAgdGhhdCBpcyBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLgorCQkJCSAgIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeSBhbiA8Y29kZT5hY3Rpb248L2NvZGU+IAorCQkJCSAgIGF0dHJpYnV0ZSBmb3IgdGhpcyB0byBoYXZlIGFuIGVmZmVjdC48L3A+CisJCQkKKwkJCQkgICA8cD48c3Ryb25nPk5vdGU6IDwvc3Ryb25nPlVzZSAiIiB0byBtYXAgdG8gdGhlIGRlZmF1bHQgbW9kdWxlLjwvcD4KKwkJCSAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFuY2hvcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5PcHRpb25hbCBhbmNob3IgdGFnICgiI3h4eCIpIHRvIGJlIGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICAgIGh5cGVybGluay4gIFNwZWNpZnkgdGhpcyB2YWx1ZSA8c3Ryb25nPndpdGhvdXQ8L3N0cm9uZz4gYW55CisgICAgICAgICAgICAgICAgICAiIyIgY2hhcmFjdGVyLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mb3J3YXJkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkxvZ2ljYWwgbmFtZSBvZiBhIGdsb2JhbCA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICAgICBjb250YWlucyB0aGUgYWN0dWFsIGNvbnRlbnQtcmVsYXRpdmUgVVJJIG9mIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgICAgICAgIG9mIHRoaXMgdHJhbnNmZXIuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICAgICBtb2RpZmllZCBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZAorICAgICAgICAgICAgICAgICAgIGluIHRoZSB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLCB0aGUgPGNvZGU+bGlua05hbWU8L2NvZGU+CisgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aHJlZjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgVVJMIHRvIHdoaWNoIHRoaXMgaHlwZXJsaW5rIHdpbGwgdHJhbnNmZXIgY29udHJvbAorICAgICAgICAgICAgICAgICAgIGlmIGFjdGl2YXRlZC4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZAorICAgICAgICAgICAgICAgICAgIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkIGluIHRoZQorICAgICAgICAgICAgICAgICAgIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZSA8Y29kZT5saW5rTmFtZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBpbmRleGVkIHBhcmFtZXRlciB3aXRoIG5hbWUgZnJvbSBpbmRleElkIGF0dHJpYnV0ZQorICAgICAgICAgICAgICAgIHdpbGwgYmUgYWRkZWQgdG8gdGhlIHF1ZXJ5IHN0cmluZy4gSW5kZXhlZCBwYXJhbWV0ZXIgbG9va3MgbGlrZQorICAgICAgICAgICAgICAgICJpbmRleFszMl0iLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4SWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEJ5IHRoaXMgYXR0cmlidXRlIGRpZmZlcmVudCBuYW1lIGZvciB0aGUgaW5kZXhlZCBwYXJhbWV0ZXIgY2FuIGJlCisgICAgICAgICAgICAgICAgc3BlY2lmaWVkLiBUYWtlIGEgbG9vayB0byB0aGUgImluZGV4ZWQiIGF0dHJpYnV0ZSBmb3IgZGV0YWlscy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5saW5rTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYW5jaG9yIG5hbWUgdG8gYmUgZGVmaW5lZCB3aXRoaW4gdGhpcyBwYWdlLCBzbyB0aGF0CisgICAgICAgICAgICAgICAgICB5b3UgY2FuIHJlZmVyZW5jZSBpdCB3aXRoIGludHJhLXBhZ2UgaHlwZXJsaW5rcy4gIEluIG90aGVyCisgICAgICAgICAgICAgICAgICB3b3JkcywgdGhlIHZhbHVlIHNwZWNpZmllZCBoZXJlIHdpbGwgcmVuZGVyIGEgIm5hbWUiIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAgIGluIHRoZSBnZW5lcmF0ZWQgYW5jaG9yIHRhZy48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgY29udGFpbnMgYSA8Y29kZT5NYXA8L2NvZGU+CisgICAgICAgICAgICAgICAgICByZXByZXNlbnRpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgICAgaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzCisgICAgICAgICAgICAgICAgICBjYWxsZWQgdG8gcmV0dXJuIGEgPGNvZGU+TWFwPC9jb2RlPiAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgICBpcyBzcGVjaWZpZWQpLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0IGZvY3VzLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIG1vdXNlIGNsaWNrLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIG1vdXNlIGRvdWJsZSBjbGljay48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQgZm9jdXMuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBrZXkgZG93biBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBrZXkgcHJlc3MgZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEga2V5IHVwIGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBtb3VzZSBkb3duIGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBtb3VzZSBtb3ZlIGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIG1vdXNlIG91dCBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEgbW91c2Ugb3ZlciBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIG1vdXNlIHVwIGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYWdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtb2R1bGUtcmVsYXRpdmUgcGF0aCAoYmVnaW5uaW5nIHdpdGggYSAiLyIKKyAgICAgICAgICAgICAgICAgIGNoYXJhY3RlcikgdG8gd2hpY2ggdGhpcyBoeXBlcmxpbmsgd2lsbCB0cmFuc2ZlciBjb250cm9sCisgICAgICAgICAgICAgICAgICAgaWYgYWN0aXZhdGVkLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5IG1vZGlmaWVkCisgICAgICAgICAgICAgICAgICAgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGV4YWN0bHkKKyAgICAgICAgICAgICAgICAgICBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLAorICAgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLCB0aGUgPGNvZGU+bGlua05hbWU8L2NvZGU+CisgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1JZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgICBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkIGh5cGVybGluay4gIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGlzCisgICAgICAgICAgICAgICAgICBkZWZpbmVkIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGFuZCAob3B0aW9uYWwpCisgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzLCBvcHRpb25hbGx5IHNjb3BlZCBieQorICAgICAgICAgICAgICAgICAgdGhlIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IGF0dHJpYnV0ZTwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbU5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGlzIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlCisgICAgICAgICAgICAgICAgICB2YWx1ZSBmb3IgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVkIGJ5IDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQCisgICAgICAgICAgICAgICAgICBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcyBjYWxsZWQgdG8gcmV0dXJuIGEgU3RyaW5nCisgICAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkKS4gIFRoZSBKU1AgYmVhbgorICAgICAgICAgICAgICAgICAgaXMgY29uc3RyYWluZWQgdG8gdGhlIGJlYW4gc2NvcGUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gcHJvcGVydHksIGlmIGl0IGlzIHNwZWNpZmllZC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1Qcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdAorICAgICAgICAgICAgICAgICAgYmUgYSBTdHJpbmcgY29udGFpbmluZyB0aGUgdmFsdWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyCisgICAgICAgICAgICAgICAgICAobmFtZWQgYnkgdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+IGF0dHJpYnV0ZSkgdGhhdCB3aWxsIGJlCisgICAgICAgICAgICAgICAgICBkeW5hbWljYWxseSBhZGRlZCB0byB0aGlzIGh5cGVybGluay48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1TY29wZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgICAgYWxsIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdCBiZQorICAgICAgICAgICAgICAgICAgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCisgICAgICAgICAgICAgICAgICB0byBiZSBhZGRlZCB0byB0aGUgaHlwZXJsaW5rLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPgorICAgICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIGlmIHlvdSBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZS4gIElmIG5vdCBzcGVjaWZpZWQsIGFsbAorICAgICAgICAgICAgICAgICAgc2NvcGVzIGFyZSBzZWFyY2hlZC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhcmdldDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgd2luZG93IHRhcmdldCBpbiB3aGljaCB0aGUgcmVzb3VyY2UgcmVxdWVzdGVkIGJ5IHRoaXMKKyAgICAgICAgICAgICAgICAgIGh5cGVybGluayB3aWxsIGJlIGRpc3BsYXllZCwgZm9yIGV4YW1wbGUgaW4gYSBmcmFtZWQKKyAgICAgICAgICAgICAgICAgIHByZXNlbnRhdGlvbi48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGh5cGVybGluay48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50cmFuc2FjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBhbnkgY3VycmVudCB0cmFuc2FjdGlvbgorICAgICAgICAgICAgICAgICAgY29udHJvbCB0b2tlbiB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLAorICAgICAgICAgICAgICAgICAgc28gdGhhdCBpdCB3aWxsIHBhc3MgYW4gPGNvZGU+aXNUb2tlblZhbGlkKCk8L2NvZGU+IHRlc3QKKyAgICAgICAgICAgICAgICAgIGluIHRoZSByZWNlaXZpbmcgQWN0aW9uLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT51c2VMb2NhbEVuY29kaW5nPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgIDxwPklmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgTG9jYWxDaGFyYWN0ZXJFbmNvZGluZyB3aWxsIGJlCisgICAgICAgICAgICAgIHVzZWQsIHRoYXQgaXMsIHRoZSBjaGFyYWN0ZXJFbmNvZGluZyBzZXQgdG8gdGhlIEh0dHBTZXJ2bGV0UmVzcG9uc2UsCisgICAgICAgICAgICAgIGFzIHByZWZlcmVkIGNoYXJhY3RlciBlbmNvZGluZyByYXRoZXIgdGhhbiBVVEYtOCwgd2hlbgorICAgICAgICAgICAgICBVUkxFbmNvZGluZyBpcyBkb25lIG9uIHBhcmFtZXRlcnMgb2YgdGhlIFVSTC48L3A+CisgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+bWVzc2FnZXM8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTWVzc2FnZXNUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPHRlaS1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5NZXNzYWdlc1RlaTwvdGVpLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PkpTUDwvYm9keS1jb250ZW50PgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICAgICAgQ29uZGl0aW9uYWxseSBkaXNwbGF5IGEgc2V0IG9mIGFjY3VtdWxhdGVkIG1lc3NhZ2VzLgorICAgICAgICAgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgICAgICA8cD5EaXNwbGF5cyBhIHNldCBvZiBtZXNzYWdlcyBwcmVwYXJlZCBieSBhIGJ1c2luZXNzCisgICAgICAgICAgICAgICAgbG9naWMgY29tcG9uZW50IGFuZCBzdG9yZWQgYXMgYW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+CisgICAgICAgICAgICAgICAgb2JqZWN0LCA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCwgYSBTdHJpbmcsCisgICAgICAgICAgICAgICAgb3IgYSBTdHJpbmcgYXJyYXkgaW4gYW55IHNjb3BlLiAgSWYKKyAgICAgICAgICAgICAgICBzdWNoIGEgYmVhbiBpcyBub3QgZm91bmQsIG5vdGhpbmcgd2lsbCBiZSByZW5kZXJlZC4gIFRoZSBtZXNzYWdlcyBhcmUgCisgICAgICAgICAgICAgICAgcGxhY2VkIGludG8gdGhlIHBhZ2Ugc2NvcGUgaW4gdGhlIGJvZHkgb2YgdGhpcyB0YWcgd2hlcmUgdGhleSBjYW4gYmUgZGlzcGxheWVkIAorICAgICAgICAgICAgICAgIGJ5IHN0YW5kYXJkIEpTUCBtZXRob2RzLiAoRm9yIGV4YW1wbGU6IDxjb2RlPiZsdDtiZWFuOndyaXRlJmd0OzwvY29kZT4sPGNvZGU+Jmx0O2M6b3V0Jmd0OzwvY29kZT4pCisgICAgICAgICAgICAgICAgPC9wPgorCisgICAgICAgICAgICAgICAgPHA+SW4gb3JkZXIgdG8gdXNlIHRoaXMgdGFnIHN1Y2Nlc3NmdWxseSwgeW91IG11c3QgaGF2ZQorICAgICAgICAgICAgICAgIGRlZmluZWQgYW4gYXBwbGljYXRpb24gc2NvcGUgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4KKyAgICAgICAgICAgICAgICBiZWFuIHVuZGVyIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZSBuYW1lLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIFRoZSBuYW1lIG9mIGEgcGFnZSBzY29wZSBKU1AgYmVhbiB0aGF0IHdpbGwgY29udGFpbiB0aGUgY3VycmVudAorICAgICAgICAgICAgICAgICAgZWxlbWVudCBvZiB0aGUgY29sbGVjdGlvbiBvZiBtZXNzYWdlcyBvbiBlYWNoIGl0ZXJhdGlvbiwgaWYgaXQgaXMgbm90CisgICAgICAgICAgICAgICAgICA8Y29kZT5udWxsPC9jb2RlPi4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bG9jYWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3IgdGhlIExvY2FsZSB1c2VkIHRvIHNlbGVjdAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcyB0byBiZSBkaXNwbGF5ZWQuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0bworICAgICAgICAgICAgICAgICAgICB0aGUgU3RydXRzIHN0YW5kYXJkIHZhbHVlLgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSBiZWFuIGluIGFueSBzY29wZSB1bmRlciB3aGljaCBvdXIgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHkgZm9yIHdoaWNoIG1lc3NhZ2VzIHNob3VsZCBiZQorICAgICAgICAgICAgICAgICAgZGlzcGxheWVkLiAgSWYgbm90IHNwZWNpZmllZCwgYWxsIG1lc3NhZ2VzIChyZWdhcmRsZXNzCisgICAgICAgICAgICAgICAgICBvZiBwcm9wZXJ0eSkgYXJlIGRpc3BsYXllZC4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5oZWFkZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgVGhpcyB2YWx1ZSBpcyBhbiBvcHRpb25hbCBtZXNzYWdlIHJlc291cmNlIGtleSB0aGF0IHdpbGwKKyAgICAgICAgICAgICAgICAgIGJlIHByaW50ZWQgYmVmb3JlIHRoZSBpdGVyYXRpb24gb2YgbWVzc2FnZXMgYmVnaW5zLgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZvb3RlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBUaGlzIHZhbHVlIGlzIGFuIG9wdGlvbmFsIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IHRoYXQgd2lsbAorICAgICAgICAgICAgICAgICAgYmUgcHJpbnRlZCBhZnRlciB0aGUgaXRlcmF0aW9uIG9mIG1lc3NhZ2VzIGhhcyBmaW5pc2hlZC4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tZXNzYWdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIEJ5IGRlZmF1bHQgdGhlIHRhZyB3aWxsIHJldHJpZXZlIHRoZSBiZWFuIGl0IHdpbGwKKyAgICAgICAgICAgICAgICAgIGl0ZXJhdGUgb3ZlciBmcm9tIHRoZSA8Y29kZT5HbG9iYWxzLkVSUk9SX0tFWTwvY29kZT4gY29uc3RhbnQgc3RyaW5nLAorICAgICAgICAgICAgICAgICAgYnV0IGlmIHRoaXMgYXR0cmlidXRlIGlzIHNldCB0byAndHJ1ZScgdGhlIGJlYW4KKyAgICAgICAgICAgICAgICAgIHdpbGwgYmUgcmV0cmlldmVkIGZyb20gdGhlIDxjb2RlPkdsb2JhbHMuTUVTU0FHRV9LRVk8L2NvZGU+CisgICAgICAgICAgICAgICAgICBjb25zdGFudCBzdHJpbmcuICBBbHNvIGlmIHRoaXMgaXMgc2V0IHRvICd0cnVlJywgYW55IHZhbHVlCisgICAgICAgICAgICAgICAgICBhc3NpZ25lZCB0byB0aGUgbmFtZSBhdHRyaWJ1dGUgd2lsbCBiZSBpZ25vcmVkLgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5tdWx0aWJveDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5NdWx0aWJveFRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgQSBDaGVja2JveCBJbnB1dCBGaWVsZAorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICA8cD5SZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPmNoZWNrYm94PC9jb2RlPiwgd2hvc2UgImNoZWNrZWQiIHN0YXR1cyBpcworICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZWQgYmFzZWQgb24gd2hldGhlciB0aGUgc3BlY2lmaWVkIHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGVzIG9uZSBvZiB0aGUgZWxlbWVudHMgb2YgdGhlIHVuZGVybHlpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5J3MgYXJyYXkgb2YgY3VycmVudCB2YWx1ZXMuIFRoaXMgZWxlbWVudCBpcworICAgICAgICAgICAgICAgICAgICAgICAgdXNlZnVsIHdoZW4geW91IGhhdmUgbGFyZ2UgbnVtYmVycyBvZiBjaGVja2JveGVzLCBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZWZlciB0byBjb21iaW5lIHRoZSB2YWx1ZXMgaW50byBhIHNpbmdsZQorICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXktdmFsdWVkIHByb3BlcnR5IGluc3RlYWQgb2YgbXVsdGlwbGUgYm9vbGVhbgorICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcy4gIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbiBuZXN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuPC9wPgorCisgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldBUk5JTkc8L3N0cm9uZz46ICBJbiBvcmRlciB0byBjb3JyZWN0bHkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY29nbml6ZSBjYXNlcyB3aGVyZSBub25lIG9mIHRoZSBhc3NvY2lhdGVkIGNoZWNrYm94ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBzZWxlY3RlZCwgdGhlIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZvcm0gbXVzdCBpbmNsdWRlIGEgc3RhdGVtZW50CisgICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nIHRoZSBjb3JyZXNwb25kaW5nIGFycmF5IHRvIHplcm8gbGVuZ3RoIGluIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+cmVzZXQoKTwvY29kZT4gbWV0aG9kLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPlRoZSB2YWx1ZSB0byBiZSByZXR1cm5lZCB0byB0aGUgc2VydmVyLCBpZiB0aGlzIGNoZWNrYm94IGlzCisgICAgICAgICAgICAgICAgc2VsZWN0ZWQsIG11c3QgYmUgZGVmaW5lZCBieSBvbmUgb2YgdGhlIGZvbGxvd2luZyBtZXRob2RzOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPlNwZWNpZnkgYSA8Y29kZT52YWx1ZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSBjb250ZW50cyB3aWxsCisgICAgICAgICAgICAgICAgYmUgdXNlZCBsaXRlcmFsbHkgYXMgdGhlIHZhbHVlIHRvIGJlIHJldHVybmVkLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPlNwZWNpZnkgbm8gPGNvZGU+dmFsdWU8L2NvZGU+IGF0dHJpYnV0ZSwgYW5kIHRoZSBuZXN0ZWQKKyAgICAgICAgICAgICAgICBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcgd2lsbCBiZSB1c2VkIGFzIHRoZSB2YWx1ZSB0byBiZQorICAgICAgICAgICAgICAgIHJldHVybmVkLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TmFtZSBvZiB0aGUgcmVxdWVzdCBzY29wZSBiZWFuIHVuZGVyIHdoaWNoIG91ciBlcnJvciBtZXNzYWdlcworICAgICAgICAgICAgICAgICAgaGF2ZSBiZWVuIHN0b3JlZC4gIElmIG5vdCBwcmVzZW50LCB0aGUgbmFtZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5HbG9iYWxzLkVSUk9SX0tFWTwvY29kZT4gY29uc3RhbnQgc3RyaW5nIHdpbGwgYmUgdXNlZC48L3A+CisKKyAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBUaGlzIGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPiwgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPiBhbmQgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZXMgYW5kIHNob3VsZCBiZSBzZXQgdG8KKyAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgb24gdGhlCisgICAgICAgICAgICAgICAgICAmbHQ7aHRtbDplcnJvcnMvJmd0OyB0YWcuPC9wPiAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZTwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVDbGFzczwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZCB3aGVuCisgICAgICAgICAgICAgICAgcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgdG8gYmUgdHJhbnNtaXR0ZWQgaWYgdGhpcyBjaGVja2JveCBpcworICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZCB3aGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+b3B0aW9uPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvblRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICAgICAgUmVuZGVyIEEgU2VsZWN0IE9wdGlvbgorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICAgICAgPHA+UmVuZGVyIGFuIEhUTUwgPGNvZGU+Jmx0O29wdGlvbiZndDs8L2NvZGU+IGVsZW1lbnQsCisgICAgICAgICAgICAgICAgcmVwcmVzZW50aW5nIG9uZSBvZiB0aGUgY2hvaWNlcyBmb3IgYW4gZW5jbG9zaW5nCisgICAgICAgICAgICAgICAgPGNvZGU+Jmx0O3NlbGVjdCZndDs8L2NvZGU+IGVsZW1lbnQuICBUaGUgdGV4dCBkaXNwbGF5ZWQgdG8gdGhlCisgICAgICAgICAgICAgICAgdXNlciBjb21lcyBmcm9tIGVpdGhlciB0aGUgYm9keSBvZiB0aGlzIHRhZywgb3IgZnJvbSBhIG1lc3NhZ2UKKyAgICAgICAgICAgICAgICBzdHJpbmcgbG9va2VkIHVwIGJhc2VkIG9uIHRoZSA8Y29kZT5idW5kbGU8L2NvZGU+LAorICAgICAgICAgICAgICAgIDxjb2RlPmxvY2FsZTwvY29kZT4sIGFuZCA8Y29kZT5rZXk8L2NvZGU+IGF0dHJpYnV0ZXMuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+SWYgdGhlIHZhbHVlIG9mIHRoZSBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkgbWF0Y2hlcyB0aGUKKyAgICAgICAgICAgICAgICBzcGVjaWZpZWQgdmFsdWUsIHRoaXMgb3B0aW9uIHdpbGwgYmUgbWFya2VkIHNlbGVjdGVkLiAgVGhpcyB0YWcKKyAgICAgICAgICAgICAgICBpcyBvbmx5IHZhbGlkIHdoZW4gbmVzdGVkIGluc2lkZSBhCisgICAgICAgICAgICAgICAgPGNvZGU+Jmx0O2h0bWw6c2VsZWN0Jmd0OzwvY29kZT4gdGFnIGJvZHkuPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBvcHRpb24gc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIElmIHNwZWNpZmllZCwgZGVmaW5lcyB0aGUgbWVzc2FnZSBrZXkgdG8gYmUgbG9va2VkIHVwIGluCisgICAgICAgICAgICAgICAgICAgIHRoZSByZXNvdXJjZSBidW5kbGUgc3BlY2lmaWVkIGJ5IDxjb2RlPmJ1bmRsZTwvY29kZT4gZm9yCisgICAgICAgICAgICAgICAgICAgIHRoZSB0ZXh0IGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgdGhpcyBvcHRpb24uICBJZiBub3QKKyAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkLCB0aGUgdGV4dCB0byBiZSBkaXNwbGF5ZWQgaXMgdGFrZW4gZnJvbSB0aGUgYm9keQorICAgICAgICAgICAgICAgICAgICBjb250ZW50IG9mIHRoaXMgdGFnLgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bG9jYWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlc3Npb24gYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBMb2NhbGUgaW5zdGFuY2UgdG8gdXNlCisgICAgICAgICAgICAgICAgICAgIGZvciBsb29raW5nIHVwIHRoZSBtZXNzYWdlIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+a2V5PC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLCB1c2VzIHRoZQorICAgICAgICAgICAgICAgICAgICBzdGFuZGFyZCBTdHJ1dHMgc2Vzc2lvbiBhdHRyaWJ1dGUgbmFtZS4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFZhbHVlIHRvIGJlIHN1Ym1pdHRlZCBmb3IgdGhpcyBmaWVsZCBpZiB0aGlzIG9wdGlvbiBpcworICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCBieSB0aGUgdXNlci4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5vcHRpb25zPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvbnNUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5lbXB0eTwvYm9keS1jb250ZW50PgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgYSBDb2xsZWN0aW9uIG9mIFNlbGVjdCBPcHRpb25zCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgICAgICA8cD5SZW5kZXJzIGEgc2V0IG9mIEhUTUwgPGNvZGU+Jmx0O29wdGlvbiZndDs8L2NvZGU+IGVsZW1lbnRzLAorICAgICAgICAgICAgICAgIHJlcHJlc2VudGluZyBwb3NzaWJsZSBjaG9pY2VzIGZvciBhIDxjb2RlPiZsdDtzZWxlY3QmZ3Q7PC9jb2RlPgorICAgICAgICAgICAgICAgIGVsZW1lbnQuICBUaGlzIHRhZyBjYW4gYmUgdXNlZCBtdWx0aXBsZSB0aW1lcyB3aXRoaW4gYSBzaW5nbGUKKyAgICAgICAgICAgICAgICA8Y29kZT4mbHQ7aHRtbDpzZWxlY3QmZ3Q7PC9jb2RlPiBlbGVtZW50LCBlaXRoZXIgaW4gY29uanVuY3Rpb24KKyAgICAgICAgICAgICAgICB3aXRoIG9yIGluc3RlYWQgb2Ygb25lIG9yIG1vcmUgPGNvZGU+Jmx0O2h0bWw6b3B0aW9uJmd0OzwvY29kZT4KKyAgICAgICAgICAgICAgICBvciA8Y29kZT4mbHQ7aHRtbDpvcHRpb25zQ29sbGVjdGlvbiZndDs8L2NvZGU+IGVsZW1lbnRzLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPlRoaXMgdGFnIG9wZXJhdGVzIGluIG9uZSBvZiB0d28gbWFqb3IgbW9kZXMsIGRlcGVuZGluZyBvbgorICAgICAgICAgICAgICAgIHdoZXRoZXIgb3Igbm90IHRoZSA8Y29kZT5jb2xsZWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUgaXMKKyAgICAgICAgICAgICAgICBzcGVjaWZpZWQuICBJZiB0aGUgPGNvZGU+Y29sbGVjdGlvbjwvY29kZT4gYXR0cmlidXRlIGlzCisgICAgICAgICAgICAgICAgaW5jbHVkZWQsIHRoZSBmb2xsb3dpbmcgcnVsZXMgYXBwbHk6PC9wPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+VGhlIDxzdHJvbmc+Y29sbGVjdGlvbjwvc3Ryb25nPiBhdHRyaWJ1dGUgaXMgaW50ZXJwcmV0ZWQKKyAgICAgICAgICAgICAgICAgICAgYXMgdGhlIG5hbWUgb2YgYSBKU1AgYmVhbiwgaW4gc29tZSBzY29wZSwgdGhhdCBpdHNlbGYKKyAgICAgICAgICAgICAgICAgICAgcmVwcmVzZW50cyBhIGNvbGxlY3Rpb24gb2YgaW5kaXZpZHVhbCBiZWFucywgb25lIHBlciBvcHRpb24KKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgdG8gYmUgcmVuZGVyZWQuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+VGhlIDxzdHJvbmc+cHJvcGVydHk8L3N0cm9uZz4gYXR0cmlidXRlIGlzIGludGVycHJldGVkIGFzCisgICAgICAgICAgICAgICAgICAgIHRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGluZGl2aWR1YWwgYmVhbnMgaW5jbHVkZWQgaW4KKyAgICAgICAgICAgICAgICAgICAgdGhlIGNvbGxlY3Rpb24sIGFuZCBpcyB1c2VkIHRvIHJldHJpZXZlIHRoZSB2YWx1ZSB0aGF0IHdpbGwKKyAgICAgICAgICAgICAgICAgICAgYmUgcmV0dXJuZWQgdG8gdGhlIHNlcnZlciBpZiB0aGlzIG9wdGlvbiBpcyBzZWxlY3RlZC48L2xpPgorICAgICAgICAgICAgICAgIDxsaT5UaGUgPHN0cm9uZz5sYWJlbFByb3BlcnR5PC9zdHJvbmc+IGF0dHJpYnV0ZSBpcyBpbnRlcnByZXRlZAorICAgICAgICAgICAgICAgICAgICBhcyB0aGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBpbmRpdmlkdWFsIGJlYW5zIGluY2x1ZGVkCisgICAgICAgICAgICAgICAgICAgIGluIHRoZSBjb2xsZWN0aW9uLCBhbmQgaXMgdXNlZCB0byByZXRyaWV2ZSB0aGUgbGFiZWwgdGhhdAorICAgICAgICAgICAgICAgICAgICB3aWxsIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgdGhpcyBvcHRpb24uICBJZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+bGFiZWxQcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZQorICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eSBuYW1lZCBieSB0aGUgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZSB3aWxsCisgICAgICAgICAgICAgICAgICAgIGJlIHVzZWQgdG8gc2VsZWN0IGJvdGggdGhlIHZhbHVlIHJldHVybmVkIHRvIHRoZSBzZXJ2ZXIgYW5kCisgICAgICAgICAgICAgICAgICAgIHRoZSBsYWJlbCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgZm9yIHRoaXMgb3B0aW9uLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICAgIDxwPklmIHRoZSA8Y29kZT5jb2xsZWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICB0aGUgcnVsZXMgZGVzY3JpYmVkIGluIHRoZSByZW1haW5kZXIgb2YgdGhpcyBzZWN0aW9uIGFwcGx5LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPlRoZSBjb2xsZWN0aW9uIG9mIHZhbHVlcyBhY3R1YWxseSBzZWxlY3RlZCBkZXBlbmRzIG9uIHRoZSBwcmVzZW5jZSBvcgorICAgICAgICAgICAgICAgIGFic2VuY2Ugb2YgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGFuZCA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlcy4gIFRoZQorICAgICAgICAgICAgICAgIGZvbGxvd2luZyBjb21iaW5hdGlvbnMgYXJlIGFsbG93ZWQ6PC9wPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPk9ubHkgPGNvZGU+bmFtZTwvY29kZT4gaXMgc3BlY2lmaWVkPC9lbT4gLSBUaGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUKKyAgICAgICAgICAgICAgICAgICAgaXMgdGhlIG5hbWUgb2YgYSBKU1AgYmVhbiBpbiBzb21lIHNjb3BlIHRoYXQgaXMgdGhlCisgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24uPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPk9ubHkgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZDwvZW0+IC0gVGhlIHZhbHVlIG9mIHRoaXMKKyAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGlzIHRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIEFjdGlvbkZvcm0gYmVhbiBhc3NvY2lhdGVkCisgICAgICAgICAgICAgICAgICAgIHdpdGggb3VyIGZvcm0sIHdoaWNoIHdpbGwgcmV0dXJuIHRoZSBjb2xsZWN0aW9uLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5Cb3RoIDxjb2RlPm5hbWU8L2NvZGU+IGFuZCA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXJlIHNwZWNpZmllZDwvZW0+IC0KKyAgICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIG9mIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgaWRlbnRpZmllcyBhIEpTUCBiZWFuCisgICAgICAgICAgICAgICAgICAgIGluIHNvbWUgc2NvcGUuICBUaGUgdmFsdWUgb2YgdGhlIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGUgaXMgdGhlCisgICAgICAgICAgICAgICAgICAgIG5hbWUgb2Ygc29tZSBwcm9wZXJ0eSBvZiB0aGF0IGJlYW4gd2hpY2ggd2lsbCByZXR1cm4gdGhlIGNvbGxlY3Rpb24uPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgPHA+VGhlIGNvbGxlY3Rpb24gb2YgbGFiZWxzIGRpc3BsYXllZCB0byB0aGUgdXNlciBjYW4gYmUgdGhlIHNhbWUgYXMgdGhlCisgICAgICAgICAgICAgICAgb3B0aW9uIHZhbHVlcyB0aGVtc2VsdmVzLCBvciBjYW4gYmUgZGlmZmVyZW50LCBkZXBlbmRpbmcgb24gdGhlIHByZXNlbmNlIG9yCisgICAgICAgICAgICAgICAgYWJzZW5jZSBvZiB0aGUgPGNvZGU+bGFiZWxOYW1lPC9jb2RlPiBhbmQgPGNvZGU+bGFiZWxQcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLiAgSWYgdGhpcyBmZWF0dXJlIGlzIHVzZWQsIHRoZSBjb2xsZWN0aW9uIG9mIGxhYmVscyBtdXN0IGNvbnRhaW4KKyAgICAgICAgICAgICAgICB0aGUgc2FtZSBudW1iZXIgb2YgZWxlbWVudHMgYXMgdGhlIGNvcnJlc3BvbmRpbmcgY29sbGVjdGlvbiBvZiB2YWx1ZXMuCisgICAgICAgICAgICAgICAgVGhlIGZvbGxvd2luZyBjb21iaW5hdGlvbnMgYXJlIGFsbG93ZWQ6PC9wPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPk5laXRoZXIgPGNvZGU+bGFiZWxOYW1lPC9jb2RlPiBub3IgPGNvZGU+bGFiZWxQcm9wZXJ0eTwvY29kZT4gaXMKKyAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkPC9lbT4gLSBUaGUgbGFiZWxzIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlIG9wdGlvbiB2YWx1ZXMKKyAgICAgICAgICAgICAgICAgICAgdGhlbXNlbHZlcy48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+T25seSA8Y29kZT5sYWJlbE5hbWU8L2NvZGU+IGlzIHNwZWNpZmllZDwvZW0+IC0gVGhlIHZhbHVlIG9mIHRoaXMKKyAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGlzIHRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gaW4gc29tZSBzY29wZSB0aGF0IGlzIHRoZQorICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5Pbmx5IDxjb2RlPmxhYmVsUHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZDwvZW0+IC0gVGhlIHZhbHVlIG9mIHRoaXMKKyAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGlzIHRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIEFjdGlvbkZvcm0gYmVhbiBhc3NvY2lhdGVkCisgICAgICAgICAgICAgICAgICAgIHdpdGggb3VyIGZvcm0sIHdoaWNoIHdpbGwgcmV0dXJuIHRoZSBjb2xsZWN0aW9uLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5Cb3RoIDxjb2RlPmxhYmVsTmFtZTwvY29kZT4gYW5kIDxjb2RlPmxhYmVsUHJvcGVydHk8L2NvZGU+IGFyZQorICAgICAgICAgICAgICAgICAgICBzcGVjaWZpZWQ8L2VtPiAtIFRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+bGFiZWxOYW1lPC9jb2RlPiBhdHRyaWJ1dGUKKyAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllcyBhIEpTUCBiZWFuIGluIHNvbWUgc2NvcGUuICBUaGUgdmFsdWUgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPmxhYmVsUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZSBpcyB0aGUgbmFtZSBvZiBzb21lIHByb3BlcnR5IG9mCisgICAgICAgICAgICAgICAgICAgIHRoYXQgYmVhbiB3aGljaCB3aWxsIHJldHVybiB0aGUgY29sbGVjdGlvbi48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKworICAgICAgICAgICAgPHA+Tm90ZSB0aGF0IHRoaXMgdGFnIGRvZXMgbm90IHN1cHBvcnQgYSA8Y29kZT5zdHlsZUlkPC9jb2RlPgorICAgICAgICAgICAgYXR0cmlidXRlLCBhcyBpdCB3b3VsZCBoYXZlIHRvIGFwcGx5IHRoZSB2YWx1ZSB0byBhbGwgdGhlCisgICAgICAgICAgICA8Y29kZT5vcHRpb248L2NvZGU+IGVsZW1lbnRzIGNyZWF0ZWQgYnkgdGhpcyBlbGVtZW50LCB3aGljaCB3b3VsZAorICAgICAgICAgICAgbWVhbiB0aGF0IG1vcmUgdGhhbiBvbmUgPGNvZGU+aWQ8L2NvZGU+IGVsZW1lbnQgbWlnaHQgaGF2ZSB0aGUgc2FtZQorICAgICAgICAgICAgdmFsdWUsIHdoaWNoIHRoZSBIVE1MIHNwZWNpZmljYXRpb24gc2F5cyBpcyBpbGxlZ2FsLjwvcD4KKworICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmNvbGxlY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgSlNQIGJlYW4gKGluIHNvbWUgc2NvcGUpIHdoaWNoIGlzIGl0c2VsZiBhCisgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aW9uIG9mIG90aGVyIGJlYW5zLCBlYWNoIG9mIHdoaWNoIGhhcyBwcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lZCBieSB0aGUgInByb3BlcnR5IiBhbmQgImxhYmVsUHJvcGVydHkiIGF0dHJpYnV0ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgYXJlIHVzZWQgdG8gcmV0cmlldmUgdGhlIHZhbHVlIGFuZCBsYWJlbCBmb3IgZWFjaAorICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLCByZXNwZWN0aXZlbHkuCisgICAgICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZmlsdGVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgU2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiB5b3UgZG8gTk9UIHdhbnQgdGhlIG9wdGlvbiBsYWJlbHMKKyAgICAgICAgICAgICAgICBmaWx0ZXJlZCBmb3Igc2Vuc2l0aXZlIGNoYXJhY3RlcnMgaW4gSFRNTC4gIEJ5IGRlZmF1bHQsIHN1Y2gKKyAgICAgICAgICAgICAgICB2YWx1ZXMgYXJlIGZpbHRlcmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxhYmVsTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgSlNQIGJlYW4gKGluIHNvbWUgc2NvcGUpIGNvbnRhaW5pbmcgdGhlIGNvbGxlY3Rpb24gb2YgbGFiZWxzIHRvCisgICAgICAgICAgICAgICAgYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGVzZSBvcHRpb25zLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxhYmVsUHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFByb3BlcnR5IG9mIHRoZSBmb3JtIGJlYW4sIG9yIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbGFiZWxOYW1lCisgICAgICAgICAgICAgICAgYXR0cmlidXRlLCB0aGF0IHdpbGwgcmV0dXJuIHRoZSBjb2xsZWN0aW9uIG9mIGxhYmVscyB0byBiZSBkaXNwbGF5ZWQKKyAgICAgICAgICAgICAgICB0byB0aGUgdXNlciBmb3IgdGhlc2Ugb3B0aW9ucy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSBKU1AgYmVhbiAoaW4gc29tZSBzY29wZSkgY29udGFpbmluZyB0aGUgY29sbGVjdGlvbiBvZgorICAgICAgICAgICAgICAgIHZhbHVlcyB0byBiZSByZXR1cm5lZCB0byB0aGUgc2VydmVyIGZvciB0aGVzZSBvcHRpb25zLiBJZiBub3QKKyAgICAgICAgICAgICAgICBzcGVjaWZpZWQsIHRoZSBmb3JtIGJlYW4gYXNzb2NpYXRlZCB3aXRoIG91ciBmb3JtIGlzIGFzc3VtZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFByb3BlcnR5IG9mIHRoZSBmb3JtIGJlYW4sIG9yIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZQorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgdGhhdCB3aWxsIHJldHVybiB0aGUgY29sbGVjdGlvbiBvZiB2YWx1ZXMgdG8gcmV0dXJuZWQKKyAgICAgICAgICAgICAgICB0byB0aGUgc2VydmVyIGZvciB0aGVzZSBvcHRpb25zLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5vcHRpb25zQ29sbGVjdGlvbjwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz4KKyAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk9wdGlvbnNDb2xsZWN0aW9uVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+ZW1wdHk8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIGEgQ29sbGVjdGlvbiBvZiBTZWxlY3QgT3B0aW9ucworICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICA8cD5SZW5kZXJzIGEgc2V0IG9mIEhUTUwgPGNvZGU+Jmx0O29wdGlvbiZndDs8L2NvZGU+IGVsZW1lbnRzLAorICAgICAgICAgICAgcmVwcmVzZW50aW5nIHBvc3NpYmxlIGNob2ljZXMgZm9yIGEgPGNvZGU+Jmx0O3NlbGVjdCZndDs8L2NvZGU+CisgICAgICAgICAgICBlbGVtZW50LiAgVGhpcyB0YWcgY2FuIGJlIHVzZWQgbXVsdGlwbGUgdGltZXMgd2l0aGluIGEgc2luZ2xlCisgICAgICAgICAgICA8Y29kZT4mbHQ7aHRtbDpzZWxlY3QmZ3Q7PC9jb2RlPiBlbGVtZW50LCBlaXRoZXIgaW4gY29uanVuY3Rpb24KKyAgICAgICAgICAgIHdpdGggb3IgaW5zdGVhZCBvZiBvbmUgb3IgbW9yZSA8Y29kZT4mbHQ7aHRtbDpvcHRpb24mZ3Q7PC9jb2RlPgorICAgICAgICAgICAgb3IgPGNvZGU+Jmx0O2h0bWw6b3B0aW9ucyZndDs8L2NvZGU+IGVsZW1lbnRzLjwvcD4KKworICAgICAgICAgICAgPHA+VGhpcyB0YWcgb3BlcmF0ZXMgb24gYSBjb2xsZWN0aW9uIG9mIGJlYW5zLCB3aGVyZSBlYWNoIGJlYW4KKyAgICAgICAgICAgIGhhcyBhIDxzdHJvbmc+bGFiZWw8L3N0cm9uZz4gcHJvcGVydHkgYW5kIGEgPHN0cm9uZz52YWx1ZTwvc3Ryb25nPgorICAgICAgICAgICAgcHJvcGVydHkuIFRoZSBhY3R1YWwgbmFtZXMgb2YgdGhlc2UgcHJvcGVydGllcyBjYW4gYmUgY29uZmlndXJlZAorICAgICAgICAgICAgdXNpbmcgdGhlIDxjb2RlPmxhYmVsPC9jb2RlPiBhbmQgPGNvZGU+dmFsdWU8L2NvZGU+IGF0dHJpYnV0ZXMKKyAgICAgICAgICAgIG9mIHRoaXMgdGFnLjwvcD4KKworICAgICAgICAgICAgPHA+VGhpcyB0YWcgZGlmZmVycyBmcm9tIHRoZSA8Y29kZT4mbHQ7aHRtbDpvcHRpb25zJmd0OzwvY29kZT4gdGFnCisgICAgICAgICAgICBpbiB0aGF0IGl0IG1ha2VzIG1vcmUgY29uc2lzdGVudCB1c2Ugb2YgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGFuZAorICAgICAgICAgICAgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMsIGFuZCBhbGxvd3MgdGhlIGNvbGxlY3Rpb24gdG8gYmUKKyAgICAgICAgICAgIG1vcmUgZWFzaWx5IG9idGFpbmVkIGZyb20gdGhlIGVuY2xvc2luZyBmb3JtIGJlYW4uPC9wPgorCisgICAgICAgICAgICA8cD5Ob3RlIHRoYXQgdGhpcyB0YWcgZG9lcyBub3Qgc3VwcG9ydCBhIDxjb2RlPnN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICBhdHRyaWJ1dGUsIGFzIGl0IHdvdWxkIGhhdmUgdG8gYXBwbHkgdGhlIHZhbHVlIHRvIGFsbCB0aGUKKyAgICAgICAgICAgIDxjb2RlPm9wdGlvbjwvY29kZT4gZWxlbWVudHMgY3JlYXRlZCBieSB0aGlzIGVsZW1lbnQsIHdoaWNoIHdvdWxkCisgICAgICAgICAgICBtZWFuIHRoYXQgbW9yZSB0aGFuIG9uZSA8Y29kZT5pZDwvY29kZT4gZWxlbWVudCBtaWdodCBoYXZlIHRoZSBzYW1lCisgICAgICAgICAgICB2YWx1ZSwgd2hpY2ggdGhlIEhUTUwgc3BlY2lmaWNhdGlvbiBzYXlzIGlzIGlsbGVnYWwuPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZpbHRlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4gaWYgeW91IGRvIE5PVCB3YW50IHRoZSBvcHRpb24gbGFiZWxzCisgICAgICAgICAgICAgICAgZmlsdGVyZWQgZm9yIHNlbnNpdGl2ZSBjaGFyYWN0ZXJzIGluIEhUTUwuICBCeSBkZWZhdWx0LCBzdWNoCisgICAgICAgICAgICAgICAgdmFsdWVzIGFyZSBmaWx0ZXJlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sYWJlbDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHByb3BlcnR5IG9mIHRoZSBiZWFuIHdpdGhpbiB0aGUgY29sbGVjdGlvbiB3aGljaCByZXByZXNlbnRzCisgICAgICAgICAgICAgICAgdGhlIGxhYmVsIHRvIGJlIHJlbmRlcmVkIGZvciBlYWNoIG9wdGlvbi4gRGVmYXVsdHMgdG8gImxhYmVsIi4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkCisgICAgICAgICAgICAgICAgd2hlbiByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBpbnB1dCBmaWVsZC4gSWYgbm90CisgICAgICAgICAgICAgICAgc3BlY2lmaWVkLCB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFnIHdlIGFyZSBuZXN0ZWQKKyAgICAgICAgICAgICAgICB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBwcm9wZXJ0eSBvZiB0aGUgZm9ybSBiZWFuLCBvciB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIG5hbWUKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUsIHRoYXQgd2lsbCByZXR1cm4gdGhlIGNvbGxlY3Rpb24gb2Ygb2JqZWN0cyB0byBiZQorICAgICAgICAgICAgICAgIHJlbmRlcmVkIGZvciB0aGVzZSBvcHRpb25zLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgcHJvcGVydHkgb2YgdGhlIGJlYW4gd2l0aGluIHRoZSBjb2xsZWN0aW9uIHdoaWNoIHJlcHJlc2VudHMKKyAgICAgICAgICAgICAgICB0aGUgdmFsdWUgdG8gYmUgcmVuZGVyZWQgZm9yIGVhY2ggb3B0aW9uLiBEZWZhdWx0cyB0byAidmFsdWUiLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5wYXNzd29yZDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5QYXNzd29yZFRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgQSBQYXNzd29yZCBJbnB1dCBGaWVsZAorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUgcGFzc3dvcmQsIHBvcHVsYXRlZAorICAgICAgICAgICAgZnJvbSB0aGUgc3BlY2lmaWVkIHZhbHVlIG9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlIGJlYW4KKyAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCBvdXIgY3VycmVudCBmb3JtLiBUaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4KKyAgICAgICAgICAgIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TmFtZSBvZiB0aGUgcmVxdWVzdCBzY29wZSBiZWFuIHVuZGVyIHdoaWNoIG91ciBlcnJvciBtZXNzYWdlcworICAgICAgICAgICAgICAgICAgaGF2ZSBiZWVuIHN0b3JlZC4gIElmIG5vdCBwcmVzZW50LCB0aGUgbmFtZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5HbG9iYWxzLkVSUk9SX0tFWTwvY29kZT4gY29uc3RhbnQgc3RyaW5nIHdpbGwgYmUgdXNlZC48L3A+CisKKyAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBUaGlzIGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPiwgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPiBhbmQgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZXMgYW5kIHNob3VsZCBiZSBzZXQgdG8KKyAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgb24gdGhlCisgICAgICAgICAgICAgICAgICAmbHQ7aHRtbDplcnJvcnMvJmd0OyB0YWcuPC9wPiAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZTwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVDbGFzczwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJpZFszNF0ucHJvcGVydHlOYW1lIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgZm9yIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tYXhsZW5ndGg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE1heGltdW0gbnVtYmVyIG9mIGlucHV0IGNoYXJhY3RlcnMgdG8gYWNjZXB0LiBbTm8gbGltaXRdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZCB3aGVuCisgICAgICAgICAgICAgICAgcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cmVhZG9ubHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICByZWFkIG9ubHkuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnJlZGlzcGxheTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgQm9vbGVhbiBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3QgZXhpc3RpbmcgdmFsdWVzCisgICAgICAgICAgICAgICAgICAgICAgICB3aWxsIGJlIHJlZGlzcGxheWVkIGlmIHRoZXkgZXhpc3QuICBFdmVuIHRob3VnaCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlzcGxheWVkIHZhbHVlIHdpbGwgYmUgc2hvd24gYXMgYXN0ZXJpc2tzIG9uIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZSBIVE1MIHBhZ2UsIHRoZSBjbGVhcnRleHQgb2YgdGhlIGFjdHVhbCBwYXNzd29yZAorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgd2lsbCBiZSB2aXNpYmxlIHRob3VnaCB0aGUgIlNob3cgUGFnZSBTb3VyY2UiCisgICAgICAgICAgICAgICAgICAgICAgICBtZW51IG9wdGlvbiBvZiB0aGUgY2xpZW50IGJyb3dzZXIuICBZb3UgbWF5IHdpc2ggdG8KKyAgICAgICAgICAgICAgICAgICAgICAgIHNldCB0aGlzIHZhbHVlIHRvIDxjb2RlPmZhbHNlPC9jb2RlPiBvbiBsb2dpbiBwYWdlcy4KKyAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIDxjb2RlPnRydWU8L2NvZGU+IGZvciBjb25zaXN0ZW5jeSB3aXRoCisgICAgICAgICAgICAgICAgICAgICAgICBhbGwgb3RoZXIgZm9ybSB0YWdzIHRoYXQgcmVkaXNwbGF5IHRoZWlyIGNvbnRlbnRzLgorICAgICAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNpemU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE51bWJlciBvZiBjaGFyYWN0ZXIgcG9zaXRpb25zIHRvIGFsbG9jYXRlLiBbQnJvd3NlciBkZWZhdWx0XQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbHVlIG9mIHRoZSBsYWJlbCB0byBiZSBwbGFjZWQgb24gdGhpcyBidXR0b24uIFRoaXMgdmFsdWUgd2lsbAorICAgICAgICAgICAgICAgIGFsc28gYmUgc3VibWl0dGVkIGFzIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHJlcXVlc3QgcGFyYW1ldGVyLgorICAgICAgICAgICAgICAgIFtCb2R5IG9mIHRoaXMgdGFnIChpZiBhbnkpXQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5yYWRpbzwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SYWRpb1RhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgQSBSYWRpbyBCdXR0b24gSW5wdXQgRmllbGQKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUgcmFkaW8sIHBvcHVsYXRlZCBmcm9tCisgICAgICAgICAgICB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCBvdXIgY3VycmVudCBmb3JtLgorICAgICAgICAgICAgVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICBJZiBhbiBpdGVyYXRvciBpcyB1c2VkIHRvIHJlbmRlciBhIHNlcmllcyBvZiByYWRpbyB0YWdzLCB0aGUKKyAgICAgICAgICAgIGlkTmFtZSBhdHRyaWJ1dGUgbWF5IGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgbmFtZSBvZiB0aGUgYmVhbgorICAgICAgICAgICAgZXhwb3NlZCBieSB0aGUgaXRlcmF0b3IuIEluIHRoaXMgY2FzZSwgdGhlIHZhbHVlIGF0dHJpYnV0ZSBpcworICAgICAgICAgICAgdXNlZCBhcyB0aGUgbmFtZSBvZiBhIHByb3BlcnR5IG9uIHRoZSBpZE5hbWUgYmVhbiB0aGF0IHJldHVybnMKKyAgICAgICAgICAgIHRoZSB2YWx1ZSBvZiB0aGUgcmFkaW8gdGFnIGluIHRoaXMgaXRlcmF0aW9uLgorICAgICAgICAgICAgPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TmFtZSBvZiB0aGUgcmVxdWVzdCBzY29wZSBiZWFuIHVuZGVyIHdoaWNoIG91ciBlcnJvciBtZXNzYWdlcworICAgICAgICAgICAgICAgICAgaGF2ZSBiZWVuIHN0b3JlZC4gIElmIG5vdCBwcmVzZW50LCB0aGUgbmFtZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5HbG9iYWxzLkVSUk9SX0tFWTwvY29kZT4gY29uc3RhbnQgc3RyaW5nIHdpbGwgYmUgdXNlZC48L3A+CisKKyAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBUaGlzIGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPiwgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPiBhbmQgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZXMgYW5kIHNob3VsZCBiZSBzZXQgdG8KKyAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgb24gdGhlCisgICAgICAgICAgICAgICAgICAmbHQ7aHRtbDplcnJvcnMvJmd0OyB0YWcuPC9wPiAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZTwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVDbGFzczwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJpZFszNF0ucHJvcGVydHlOYW1lIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgZm9yIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkIHdoZW4KKyAgICAgICAgICAgICAgICByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBpbnB1dCBmaWVsZC4gSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFnIHdlIGFyZSBuZXN0ZWQgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5IGZvciB0aGlzIHJhZGlvIHRhZy4KKyAgICAgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBvZiB0aGUgcmFkaW8gdGFnLgorICAgICAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmlkTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+TmFtZSBvZiB0aGUgYmVhbiAoaW4gc29tZSBzY29wZSkgdGhhdCB3aWxsIHJldHVybiB0aGUKKyAgICAgICAgICAgICAgICB2YWx1ZSBvZiB0aGUgcmFkaW8gdGFnLiBVc3VhbGx5IGV4cG9zZWQKKyAgICAgICAgICAgICAgICBieSBhbiBpdGVyYXRvci4gV2hlbiB0aGUgaWROYW1lIGF0dHJpYnV0ZSBpcworICAgICAgICAgICAgICAgIHByZXNlbnQsIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXMgdXNlZCBhcyB0aGUgbmFtZSBvZiB0aGUKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSBvbiB0aGUgaWROYW1lIGJlYW4gdGhhdCB3aWxsIHJldHVybiB0aGUKKyAgICAgICAgICAgICAgICB2YWx1ZSBvZiB0aGUgcmFkaW8gdGFnIGZvciB0aGlzIGl0ZXJhdGlvbi48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnJlc2V0PC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJlc2V0VGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBBIFJlc2V0IEJ1dHRvbiBJbnB1dCBGaWVsZAorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUgcmVzZXQuCisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgaW5wdXQgZmllbGQgdGhhdCB3aWxsIGJlIGdlbmVyYXRlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgVmFsdWUgb2YgdGhlIGxhYmVsIHRvIGJlIHBsYWNlZCBvbiB0aGlzIGJ1dHRvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgIFtCb2R5IG9mIHRoaXMgdGFnIChpZiBhbnkpLCBvciAiUmVzZXQiXQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5yZXdyaXRlPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJld3JpdGVUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5lbXB0eTwvYm9keS1jb250ZW50PgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+UmVuZGVyIGFuIFVSSTwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgICAgICA8cD5SZW5kZXJzIGEgcmVxdWVzdCBVUkkgYmFzZWQgb24gZXhhY3RseSB0aGUgc2FtZSBydWxlcworICAgICAgICAgICAgICAgIGFzIHRoZSA8Y29kZT48YSBocmVmPSIjbGluayI+bGluazwvYT48L2NvZGU+IHRhZyBkb2VzLAorICAgICAgICAgICAgICAgIGJ1dCB3aXRob3V0IGNyZWF0aW5nCisgICAgICAgICAgICAgICAgdGhlIDxjb2RlPiZsdDthJmd0OzwvY29kZT4gaHlwZXJsaW5rLiAgVGhpcyB2YWx1ZSBpcyB1c2VmdWwKKyAgICAgICAgICAgICAgICB3aGVuIHlvdSB3YW50IHRvIGdlbmVyYXRlIGEgc3RyaW5nIGNvbnN0YW50IGZvciB1c2UgYnkKKyAgICAgICAgICAgICAgICBhIEphdmFTY3JpcHQgcHJvY2VkdXJlLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5Mb2dpY2FsIG5hbWUgb2YgYSA8Y29kZT5BY3Rpb248L2NvZGU+IHRoYXQKKyAgICAgICAgICAgICAgICAgIGNvbnRhaW5zIHRoZSBhY3R1YWwgY29udGVudC1yZWxhdGl2ZSBVUkkgb2YgdGhlIGRlc3RpbmF0aW9uCisgICAgICAgICAgICAgICAgICBvZiB0aGlzIHRyYW5zZmVyLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgICBtb2RpZmllZCBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZAorICAgICAgICAgICAgICAgICAgaW4gdGhlIHRhZyBkZXNjcmlwdGlvbi4gWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+CisgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgCisJCSAgICAgICA8cD5BZGRpdGlvbmFsbHksIHlvdSBjYW4gc3BlY2lmeSBhIDxjb2RlPm1vZHVsZTwvY29kZT4gcHJlZml4IAorCQkJICAgZm9yIGxpbmtpbmcgdG8gb3RoZXIgbW9kdWxlcy48L3A+CisJCQkJCQkgICAKKwkJCSAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjA8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1vZHVsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisJCQkJICAgPHA+UHJlZml4IG5hbWUgb2YgYSA8Y29kZT5Nb2R1bGU8L2NvZGU+IHRoYXQKKwkJCQkgICBjb250YWlucyB0aGUgYWN0aW9uIG1hcHBpbmcgZm9yIHRoZSA8Y29kZT5BY3Rpb248L2NvZGU+CisJCQkJICAgdGhhdCBpcyBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLgorCQkJCSAgIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeSBhbiA8Y29kZT5hY3Rpb248L2NvZGU+IAorCQkJCSAgIGF0dHJpYnV0ZSBmb3IgdGhpcyB0byBoYXZlIGFuIGVmZmVjdC48L3A+CisJCQkKKwkJCQkgICA8cD48c3Ryb25nPk5vdGU6IDwvc3Ryb25nPlVzZSAiIiB0byBtYXAgdG8gdGhlIGRlZmF1bHQgbW9kdWxlLjwvcD4KKwkJCSAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFuY2hvcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5PcHRpb25hbCBhbmNob3IgdGFnICgiI3h4eCIpIHRvIGJlIGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICAgIGh5cGVybGluay4gIFNwZWNpZnkgdGhpcyB2YWx1ZSA8c3Ryb25nPndpdGhvdXQ8L3N0cm9uZz4gYW55CisgICAgICAgICAgICAgICAgICAiIyIgY2hhcmFjdGVyLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mb3J3YXJkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkxvZ2ljYWwgbmFtZSBvZiBhIGdsb2JhbCA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICAgICAgY29udGFpbnMgdGhlIGFjdHVhbCBjb250ZW50LXJlbGF0aXZlIFVSSSBvZiB0aGUgZGVzdGluYXRpb24KKyAgICAgICAgICAgICAgICAgICBvZiB0aGlzIHRyYW5zZmVyLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQKKyAgICAgICAgICAgICAgICAgICBpbiB0aGUgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+CisgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aHJlZjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgVVJMIHRvIHdoaWNoIHRoaXMgaHlwZXJsaW5rIHdpbGwgdHJhbnNmZXIgY29udHJvbAorICAgICAgICAgICAgICAgICAgIGlmIGFjdGl2YXRlZC4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZAorICAgICAgICAgICAgICAgICAgIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkIGluIHRoZQorICAgICAgICAgICAgICAgICAgIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPgorICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGNvbnRhaW5zIGEgPGNvZGU+TWFwPC9jb2RlPgorICAgICAgICAgICAgICAgICAgcmVwcmVzZW50aW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGlzIG5vdCBzcGVjaWZpZWQpLCBvciBhIEpTUCBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcworICAgICAgICAgICAgICAgICAgY2FsbGVkIHRvIHJldHVybiBhIDxjb2RlPk1hcDwvY29kZT4gKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgICAgaXMgc3BlY2lmaWVkKS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbW9kdWxlLXJlbGF0aXZlIHBhdGggKGJlZ2lubmluZyB3aXRoIGEgIi8iCisgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIpIHRvIHdoaWNoIHRoaXMgaHlwZXJsaW5rIHdpbGwgdHJhbnNmZXIgY29udHJvbAorICAgICAgICAgICAgICAgICAgIGlmIGFjdGl2YXRlZC4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZAorICAgICAgICAgICAgICAgICAgIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkIGluIHRoZQorICAgICAgICAgICAgICAgICAgIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeSBleGFjdGx5CisgICAgICAgICAgICAgICAgICAgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlIAorICAgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICAgIGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLiAgVGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaXMKKyAgICAgICAgICAgICAgICAgIGRlZmluZWQgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYW5kIChvcHRpb25hbCkKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMsIG9wdGlvbmFsbHkgc2NvcGVkIGJ5CisgICAgICAgICAgICAgICAgICB0aGUgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gYXR0cmlidXRlPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgaXMgYSBTdHJpbmcgY29udGFpbmluZyB0aGUKKyAgICAgICAgICAgICAgICAgIHZhbHVlIGZvciB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZWQgYnkgPGNvZGU+cGFyYW1JZDwvY29kZT4KKyAgICAgICAgICAgICAgICAgIChpZiA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkKSwgb3IgYSBKU1AKKyAgICAgICAgICAgICAgICAgIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzIGNhbGxlZCB0byByZXR1cm4gYSBTdHJpbmcKKyAgICAgICAgICAgICAgICAgIChpZiA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBpcyBzcGVjaWZpZWQpLiAgVGhlIEpTUCBiZWFuCisgICAgICAgICAgICAgICAgICBpcyBjb25zdHJhaW5lZCB0byB0aGUgYmVhbiBzY29wZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBwcm9wZXJ0eSwgaWYgaXQgaXMgc3BlY2lmaWVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbVByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0CisgICAgICAgICAgICAgICAgICBiZSBhIFN0cmluZyBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAgIChuYW1lZCBieSB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4gYXR0cmlidXRlKSB0aGF0IHdpbGwgYmUKKyAgICAgICAgICAgICAgICAgIGR5bmFtaWNhbGx5IGFkZGVkIHRvIHRoaXMgaHlwZXJsaW5rLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbVNjb3BlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZS4gIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgICBhbGwgc2NvcGVzIGFyZSBzZWFyY2hlZC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0IGJlCisgICAgICAgICAgICAgICAgICBhIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKKyAgICAgICAgICAgICAgICAgIHRvIGJlIGFkZGVkIHRvIHRoZSBoeXBlcmxpbmsuICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+CisgICAgICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgaWYgeW91IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgIHRoaXMgYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwgYWxsCisgICAgICAgICAgICAgICAgICBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50cmFuc2FjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBhbnkgY3VycmVudCB0cmFuc2FjdGlvbgorICAgICAgICAgICAgICAgICAgY29udHJvbCB0b2tlbiB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLAorICAgICAgICAgICAgICAgICAgc28gdGhhdCBpdCB3aWxsIHBhc3MgYW4gPGNvZGU+aXNUb2tlblZhbGlkKCk8L2NvZGU+IHRlc3QKKyAgICAgICAgICAgICAgICAgIGluIHRoZSByZWNlaXZpbmcgQWN0aW9uLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT51c2VMb2NhbEVuY29kaW5nPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgIDxwPklmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgTG9jYWxDaGFyYWN0ZXJFbmNvZGluZyB3aWxsIGJlCisgICAgICAgICAgICAgIHVzZWQsIHRoYXQgaXMsIHRoZSBjaGFyYWN0ZXJFbmNvZGluZyBzZXQgdG8gdGhlIEh0dHBTZXJ2bGV0UmVzcG9uc2UsCisgICAgICAgICAgICAgIGFzIHByZWZlcmVkIGNoYXJhY3RlciBlbmNvZGluZyByYXRoZXIgdGhhbiBVVEYtOCwgd2hlbgorICAgICAgICAgICAgICBVUkxFbmNvZGluZyBpcyBkb25lIG9uIHBhcmFtZXRlcnMgb2YgdGhlIFVSTC48L3A+CisgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+c2VsZWN0PC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlNlbGVjdFRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PkpTUDwvYm9keS1jb250ZW50PgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgQSBTZWxlY3QgRWxlbWVudAorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICA8cD5SZW5kZXJzIGFuIEhUTUwgJmx0O3NlbGVjdCZndDsgZWxlbWVudCwgYXNzb2NpYXRlZAorICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBhIGJlYW4gcHJvcGVydHkgc3BlY2lmaWVkIGJ5IG91ciBhdHRyaWJ1dGVzLiAgVGhpcworICAgICAgICAgICAgICAgICAgICAgICAgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbiBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KKworICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhpcyB0YWcgb3BlcmF0ZXMgaW4gdHdvIG1vZGVzLCBkZXBlbmRpbmcgdXBvbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlIG9mIHRoZSA8Y29kZT5tdWx0aXBsZTwvY29kZT4gYXR0cmlidXRlLCB3aGljaAorICAgICAgICAgICAgICAgICAgICAgICAgYWZmZWN0cyB0aGUgZGF0YSB0eXBlIG9mIHRoZSBhc3NvY2lhdGVkIHByb3BlcnR5IHlvdQorICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIHVzZTo8L3A+CisgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGVtPm11bHRpcGxlPSJ0cnVlIiBJUyBOT1Qgc2VsZWN0ZWQ8L2VtPiAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgc2hvdWxkIGJlIGEgc2NhbGFyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgb2YgYW55IHN1cHBvcnRlZCBkYXRhIHR5cGUuPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48ZW0+bXVsdGlwbGU9InRydWUiIElTIHNlbGVjdGVkPC9lbT4gLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IHNob3VsZCBiZSBhbiBhcnJheQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIGFueSBzdXBwb3J0ZWQgZGF0YSB0eXBlLjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldBUk5JTkc8L3N0cm9uZz46ICBJbiBvcmRlciB0byBjb3JyZWN0bHkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY29nbml6ZSBjYXNlcyB3aGVyZSBubyBzZWxlY3Rpb24gYXQgYWxsIGlzIG1hZGUsIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhpcyBmb3JtCisgICAgICAgICAgICAgICAgICAgICAgICBtdXN0IGluY2x1ZGUgYSBzdGF0ZW1lbnQgcmVzZXR0aW5nIHRoZSBzY2FsYXIgcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvIGEgZGVmYXVsdCB2YWx1ZSAoaWYgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGlzIG5vdAorICAgICAgICAgICAgICAgICAgICAgICAgc2V0KSwgb3IgdGhlIGFycmF5IHByb3BlcnR5IHRvIHplcm8gbGVuZ3RoIChpZgorICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGlzIHNldCkgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5yZXNldCgpPC9jb2RlPiBtZXRob2QuPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgorCisgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4sIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4gYW5kIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGVzIGFuZCBzaG91bGQgYmUgc2V0IHRvCisgICAgICAgICAgICAgICAgICB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZQorICAgICAgICAgICAgICAgICAgJmx0O2h0bWw6ZXJyb3JzLyZndDsgdGFnLjwvcD4gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlQ2xhc3M8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bXVsdGlwbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiBzZXQgdG8gYW55IGFyYml0cmFyeSB2YWx1ZSwgdGhlIHJlbmRlcmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdCBlbGVtZW50IHdpbGwgc3VwcG9ydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSBzZWxlY3Rpb25zLgorICAgICAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBjb25zdWx0ZWQKKyAgICAgICAgICAgICAgICB0byBkZXRlcm1pbmUgd2hpY2ggb3B0aW9uIHNob3VsZCBiZSBwcmUtc2VsZWN0ZWQgd2hlbiByZW5kZXJpbmcKKyAgICAgICAgICAgICAgICB0aGlzIGlucHV0IGZpZWxkLiAgSWYgbm90IHNwZWNpZmllZCwgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoCisgICAgICAgICAgICAgICAgdGhlIGVuY2xvc2luZyA8Y29kZT4mbHQ7aHRtbDpmb3JtJmd0OzwvY29kZT4gdGFnIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoaXMKKyAgICAgICAgICAgICAgICBzdWJtaXNzaW9uLCBzZXQgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNpemU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIG9wdGlvbnMgZGlzcGxheWVkIGF0IG9uZSB0aW1lLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdmFsdWUgdG8gY29tcGFyZSB3aXRoIGZvciBtYXJraW5nIGFuIG9wdGlvbiBzZWxlY3RlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+c3VibWl0PC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlN1Ym1pdFRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgQSBTdWJtaXQgQnV0dG9uCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZSA8Y29kZT5zdWJtaXQ8L2NvZGU+LgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgSWYgYSBncmFwaGljYWwgYnV0dG9uIGlzIG5lZWRlZCAoYSBidXR0b24gd2l0aCBhbiBpbWFnZSksIHRoZW4gdGhlCisgICAgICAgICAgICAgPGEgaHJlZj0iI2ltYWdlIj48Y29kZT5pbWFnZTwvY29kZT48L2E+IHRhZyBpcyBtb3JlIGFwcHJvcHJpYXRlLgorICAgICAgICAgICAgPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLiAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4KKyAgICAgICAgICAgICAgICB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAicHJvcGVydHlOYW1lWzM0XSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZCBmb3IKKyAgICAgICAgICAgICAgICBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoaXMKKyAgICAgICAgICAgICAgICBzdWJtaXNzaW9uLCBzZXQgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBvZiB0aGUgYnV0dG9uIGxhYmVsLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT50ZXh0PC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlRleHRUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPlJlbmRlciBBbiBJbnB1dCBGaWVsZCBvZiBUeXBlIHRleHQ8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICA8cD5SZW5kZXIgYW4gaW5wdXQgZmllbGQgb2YgdHlwZSB0ZXh0LiAgVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuIAorICAgICAgICAgICAgbmVzdGVkIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgorCisgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4sIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4gYW5kIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGVzIGFuZCBzaG91bGQgYmUgc2V0IHRvCisgICAgICAgICAgICAgICAgICB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZQorICAgICAgICAgICAgICAgICAgJmx0O2h0bWw6ZXJyb3JzLyZndDsgdGFnLjwvcD4gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlQ2xhc3M8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bWF4bGVuZ3RoPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBNYXhpbXVtIG51bWJlciBvZiBpbnB1dCBjaGFyYWN0ZXJzIHRvIGFjY2VwdC4gW05vIGxpbWl0XQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBjb25zdWx0ZWQKKyAgICAgICAgICAgICAgICB3aGVuIHJlbmRlcmluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIGlucHV0IGZpZWxkLiBJZiBub3QKKyAgICAgICAgICAgICAgICBzcGVjaWZpZWQsIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybSB0YWcgd2UgYXJlIG5lc3RlZAorICAgICAgICAgICAgICAgIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbnNlbGVjdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gYQorICAgICAgICAgICAgICAgIHdoZW4gYSB1c2VyIHNlbGVjdHMgc29tZSB0ZXh0IGluIGEgdGV4dCBmaWVsZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoaXMgaW5wdXQgZmllbGQsIGFuZCB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBiZWFuCisgICAgICAgICAgICAgICAgcHJvcGVydHkgaWYgdmFsdWUgaXMgbm90IHNwZWNpZmllZC4gVGhlIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eQorICAgICAgICAgICAgICAgIChpZiBhbnkpIG11c3QgYmUgb2YgdHlwZSBTdHJpbmcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cmVhZG9ubHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICByZWFkIG9ubHkuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNpemU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE51bWJlciBvZiBjaGFyYWN0ZXIgcG9zaXRpb25zIHRvIGFsbG9jYXRlLiBbQnJvd3NlciBkZWZhdWx0XQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbHVlIHRvIHdoaWNoIHRoaXMgZmllbGQgc2hvdWxkIGJlIGluaXRpYWxpemVkLiBbVXNlIHRoZQorICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eSB2YWx1ZV0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+dGV4dGFyZWE8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVGV4dGFyZWFUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgVGV4dGFyZWEKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgUmVuZGVyIGEgdGV4dGFyZWEgZWxlbWVudC4gIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbiBuZXN0ZWQKKyAgICAgICAgICAgICAgICBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Y29sczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIGRpc3BsYXkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TmFtZSBvZiB0aGUgcmVxdWVzdCBzY29wZSBiZWFuIHVuZGVyIHdoaWNoIG91ciBlcnJvciBtZXNzYWdlcworICAgICAgICAgICAgICAgICAgaGF2ZSBiZWVuIHN0b3JlZC4gIElmIG5vdCBwcmVzZW50LCB0aGUgbmFtZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5HbG9iYWxzLkVSUk9SX0tFWTwvY29kZT4gY29uc3RhbnQgc3RyaW5nIHdpbGwgYmUgdXNlZC48L3A+CisKKyAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBUaGlzIGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPiwgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPiBhbmQgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZXMgYW5kIHNob3VsZCBiZSBzZXQgdG8KKyAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgb24gdGhlCisgICAgICAgICAgICAgICAgICAmbHQ7aHRtbDplcnJvcnMvJmd0OyB0YWcuPC9wPiAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZTwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVDbGFzczwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJpZFszNF0ucHJvcGVydHlOYW1lIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgZm9yIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkCisgICAgICAgICAgICAgICAgd2hlbiByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBpbnB1dCBmaWVsZC4gSWYgbm90CisgICAgICAgICAgICAgICAgc3BlY2lmaWVkLCB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFnIHdlIGFyZSBuZXN0ZWQKKyAgICAgICAgICAgICAgICB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25zZWxlY3Q8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIGEKKyAgICAgICAgICAgICAgICB3aGVuIGEgdXNlciBzZWxlY3RzIHNvbWUgdGV4dCBpbiBhIHRleHQgZmllbGQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGlzIGlucHV0IGZpZWxkLCBhbmQgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgYmVhbgorICAgICAgICAgICAgICAgIHByb3BlcnR5IGlmIHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQuIFRoZSBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkKKyAgICAgICAgICAgICAgICAoaWYgYW55KSBtdXN0IGJlIG9mIHR5cGUgU3RyaW5nLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnJlYWRvbmx5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgcmVhZCBvbmx5LgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5yb3dzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIHJvd3MgdG8gZGlzcGxheS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWx1ZSB0byB3aGljaCB0aGlzIGZpZWxkIHNob3VsZCBiZSBpbml0aWFsaXplZC4gW1VzZSB0aGUKKyAgICAgICAgICAgICAgICBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkgdmFsdWVdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnhodG1sPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlhodG1sVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+ZW1wdHk8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPlJlbmRlciBIVE1MIHRhZ3MgYXMgWEhUTUw8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgPHA+CisgICAgICAgICAgICBVc2luZyB0aGlzIHRhZyBpbiBhIHBhZ2UgdGVsbHMgYWxsIG90aGVyIGh0bWwgdGFnbGliIHRhZ3MKKyAgICAgICAgICAgIHRvIHJlbmRlciB0aGVtc2VsdmVzIGFzIFhIVE1MIDEuMC4gIFRoaXMgaXMgdXNlZnVsCisgICAgICAgICAgICB3aGVuIGNvbXBvc2luZyBwYWdlcyB3aXRoIEpTUCBpbmNsdWRlcyBvciBUaWxlcy4gCisgICAgICAgICAgICAmbHQ7aHRtbDpodG1sIHhodG1sPSJ0cnVlIiZndDsgaGFzIGEgc2ltaWxhciBlZmZlY3QuICBUaGlzCisgICAgICAgICAgICB0YWcgaGFzIG5vIGF0dHJpYnV0ZXM7IHlvdSB1c2UgaXQgbGlrZSB0aGlzOiAmbHQ7aHRtbDp4aHRtbC8mZ3Q7LgorICAgICAgICAgIDwvcD4KKyAgICAgICAgICA8cD4KKyAgICAgICAgICAJPHN0cm9uZz5Ob3RlPC9zdHJvbmc+OiBJbmNsdWRlZCBwYWdlcyBkbyBub3QgaW5oZXJpdCB0aGUgcmVuZGVyaW5nCisgICAgICAgICAgCXN0eWxlIG9mIHRoZSBpbmNsdWRpbmcgcGFnZS4gIEVhY2ggSlNQIGZyYWdtZW50IG9yIFRpbGUgbXVzdCB1c2UgdGhpcworICAgICAgICAgIAl0YWcgdG8gcmVuZGVyIGFzIFhIVE1MLiAgCisgICAgICAgICAgPC9wPgorICAgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgIDwvdGFnPgorPC90YWdsaWI+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTItc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdjNjMwMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0yLXNyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCkBAIC0wLDAgKzEsMzIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKworPCFET0NUWVBFIHdlYi1hcHAgUFVCTElDCisgICAgICAgICItLy9TdW4gTWljcm9zeXN0ZW1zLCBJbmMuLy9EVEQgV2ViIEFwcGxpY2F0aW9uIDIuMy8vRU4iCisgICAgICAgICJodHRwOi8vamF2YS5zdW4uY29tL2R0ZC93ZWItYXBwXzJfMy5kdGQiPgorCis8d2ViLWFwcD4KKyAgICA8ZGlzcGxheS1uYW1lPlN0cnV0cyBNYWlsUmVhZGVyIEFwcGxpY2F0aW9uPC9kaXNwbGF5LW5hbWU+CisKKyAgICA8IS0tIEFjdGlvbiBTZXJ2bGV0IENvbmZpZ3VyYXRpb24gLS0+CisgICAgPHNlcnZsZXQ+CisgICAgICAgIDxzZXJ2bGV0LW5hbWU+YWN0aW9uPC9zZXJ2bGV0LW5hbWU+CisgICAgICAgIDxzZXJ2bGV0LWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0PC9zZXJ2bGV0LWNsYXNzPgorICAgICAgICA8aW5pdC1wYXJhbT4KKyAgICAgICAgICAgIDxwYXJhbS1uYW1lPmNvbmZpZzwvcGFyYW0tbmFtZT4KKyAgICAgICAgICAgIDxwYXJhbS12YWx1ZT4KKyAgICAgICAgICAgICAgICAvV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbCwKKyAgICAgICAgICAgICAgICAvV0VCLUlORi9SZWdpc3Rlci1jb25maWd1cmUueG1sCisgICAgICAgICAgICA8L3BhcmFtLXZhbHVlPgorICAgICAgICA8L2luaXQtcGFyYW0+CisgICAgICAgIDxsb2FkLW9uLXN0YXJ0dXA+MTwvbG9hZC1vbi1zdGFydHVwPgorICAgIDwvc2VydmxldD4KKworCisgICAgPCEtLSBBY3Rpb24gU2VydmxldCBNYXBwaW5nIC0tPgorICAgIDxzZXJ2bGV0LW1hcHBpbmc+CisgICAgICAgIDxzZXJ2bGV0LW5hbWU+YWN0aW9uPC9zZXJ2bGV0LW5hbWU+CisgICAgICAgIDx1cmwtcGF0dGVybj4qLmRvPC91cmwtcGF0dGVybj4KKyAgICA8L3NlcnZsZXQtbWFwcGluZz4KKworCis8L3dlYi1hcHA+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMy1zcmMvanVuaXRib29rL2p1bXBzdGFydC9DYWxjdWxhdG9yLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMy1zcmMvanVuaXRib29rL2p1bXBzdGFydC9DYWxjdWxhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGY2MzYyNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0zLXNyYy9qdW5pdGJvb2svanVtcHN0YXJ0L0NhbGN1bGF0b3IuamF2YQpAQCAtMCwwICsxLDY3IEBACisvKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqCisgKiBUaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4xCisgKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDMgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgQWxsIAorICogcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3IgCisgKiB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgCisgKiBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIAorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogMy4gVGhlIGVuZC11c2VyIGRvY3VtZW50YXRpb24gaW5jbHVkZWQgd2l0aCB0aGUgcmVkaXN0cmlidXRpb24sIAorICogICAgaWYgYW55LCBtdXN0IGluY2x1ZGUgdGhlIGZvbGxvd2luZyBhY2tub3dsZWdlbWVudDoKKyAqICAgICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZQorICogICAgICAgIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChodHRwOi8vd3d3LmFwYWNoZS5vcmcvKS4iCisgKiAgICBBbHRlcm5hdGVseSwgdGhpcyBhY2tub3dsZWdlbWVudCBtYXkgYXBwZWFyIGluIHRoZSBzb2Z0d2FyZSAKKyAqICAgIGl0c2VsZiwgaWYgYW5kIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgYWNrbm93bGVnZW1lbnRzIAorICogICAgbm9ybWFsbHkgYXBwZWFyLgorICoKKyAqIDQuIFRoZSBuYW1lcyAiVGhlIEpha2FydGEgUHJvamVjdCIsICJqdW5pdGJvb2siLCAiamlhIiwgCisgKiAgICAiSlVuaXQgaW4gQWN0aW9uIiBhbmQgIkFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIiBtdXN0IG5vdCBiZSAKKyAqICAgIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIAorICogICAgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIEZvciB3cml0dGVuIHBlcm1pc3Npb24sIAorICogICAgcGxlYXNlIGNvbnRhY3QgYXBhY2hlQGFwYWNoZS5vcmcuCisgKgorICogNS4gUHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgbWF5IG5vdCBiZSBjYWxsZWQgIkFwYWNoZSIKKyAqICAgIG5vciBtYXkgIkFwYWNoZSIgYXBwZWFyIGluIHRoZWlyIG5hbWVzIHdpdGhvdXQgcHJpb3Igd3JpdHRlbgorICogICAgcGVybWlzc2lvbiBvZiB0aGUgQXBhY2hlIEdyb3VwLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTU0VEIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBUEFDSEUgU09GVFdBUkUgRk9VTkRBVElPTiBPUgorICogSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRgorICogVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIAorICogQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiAKKyAqIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSAKKyAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqCisgKiBUaGlzIHNvZnR3YXJlIGNvbnNpc3RzIG9mIHZvbHVudGFyeSBjb250cmlidXRpb25zIG1hZGUgYnkgbWFueQorICogaW5kaXZpZHVhbHMgb24gYmVoYWxmIG9mIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4gIEZvciAKKyAqIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBwbGVhc2Ugc2VlCisgKiA8aHR0cDovL3d3dy5hcGFjaGUub3JnLz4uCisgKgorICovCitwYWNrYWdlIGp1bXBzdGFydDsKKworcHVibGljIGNsYXNzIENhbGN1bGF0b3IKK3sKKyAgcHVibGljIGRvdWJsZSBhZGQoZG91YmxlIG51bWJlcjEsIGRvdWJsZSBudW1iZXIyKQorICB7CisgICAgcmV0dXJuIG51bWJlcjEgKyBudW1iZXIyOworICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMy1zcmMvanVuaXRib29rL2p1bXBzdGFydC9UZXN0Q2FsY3VsYXRvci5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTMtc3JjL2p1bml0Ym9vay9qdW1wc3RhcnQvVGVzdENhbGN1bGF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWE0ZTUyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTMtc3JjL2p1bml0Ym9vay9qdW1wc3RhcnQvVGVzdENhbGN1bGF0b3IuamF2YQpAQCAtMCwwICsxLDcyIEBACisvKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqCisgKiBUaGUgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4xCisgKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDMgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgQWxsIAorICogcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3IgCisgKiB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgCisgKiBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIAorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogMy4gVGhlIGVuZC11c2VyIGRvY3VtZW50YXRpb24gaW5jbHVkZWQgd2l0aCB0aGUgcmVkaXN0cmlidXRpb24sIAorICogICAgaWYgYW55LCBtdXN0IGluY2x1ZGUgdGhlIGZvbGxvd2luZyBhY2tub3dsZWdlbWVudDoKKyAqICAgICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZQorICogICAgICAgIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChodHRwOi8vd3d3LmFwYWNoZS5vcmcvKS4iCisgKiAgICBBbHRlcm5hdGVseSwgdGhpcyBhY2tub3dsZWdlbWVudCBtYXkgYXBwZWFyIGluIHRoZSBzb2Z0d2FyZSAKKyAqICAgIGl0c2VsZiwgaWYgYW5kIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgYWNrbm93bGVnZW1lbnRzIAorICogICAgbm9ybWFsbHkgYXBwZWFyLgorICoKKyAqIDQuIFRoZSBuYW1lcyAiVGhlIEpha2FydGEgUHJvamVjdCIsICJqdW5pdGJvb2siLCAiamlhIiwgCisgKiAgICAiSlVuaXQgaW4gQWN0aW9uIiBhbmQgIkFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIiBtdXN0IG5vdCBiZSAKKyAqICAgIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIAorICogICAgd2l0aG91dCBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIEZvciB3cml0dGVuIHBlcm1pc3Npb24sIAorICogICAgcGxlYXNlIGNvbnRhY3QgYXBhY2hlQGFwYWNoZS5vcmcuCisgKgorICogNS4gUHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgbWF5IG5vdCBiZSBjYWxsZWQgIkFwYWNoZSIKKyAqICAgIG5vciBtYXkgIkFwYWNoZSIgYXBwZWFyIGluIHRoZWlyIG5hbWVzIHdpdGhvdXQgcHJpb3Igd3JpdHRlbgorICogICAgcGVybWlzc2lvbiBvZiB0aGUgQXBhY2hlIEdyb3VwLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTU0VEIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCisgKiBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBUEFDSEUgU09GVFdBUkUgRk9VTkRBVElPTiBPUgorICogSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRgorICogVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIAorICogQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiAKKyAqIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSAKKyAqIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqCisgKiBUaGlzIHNvZnR3YXJlIGNvbnNpc3RzIG9mIHZvbHVudGFyeSBjb250cmlidXRpb25zIG1hZGUgYnkgbWFueQorICogaW5kaXZpZHVhbHMgb24gYmVoYWxmIG9mIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4gIEZvciAKKyAqIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBwbGVhc2Ugc2VlCisgKiA8aHR0cDovL3d3dy5hcGFjaGUub3JnLz4uCisgKgorICovCitwYWNrYWdlIGp1bXBzdGFydDsKKworcHVibGljIGNsYXNzIFRlc3RDYWxjdWxhdG9yCit7CisgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCisgIHsKKyAgICBDYWxjdWxhdG9yIGNhbGN1bGF0b3IgPSBuZXcgQ2FsY3VsYXRvcigpOworICAgIGRvdWJsZSByZXN1bHQgPSBjYWxjdWxhdG9yLmFkZCgxMCwgNTApOworICAgIGlmIChyZXN1bHQgIT0gNjApCisgICAgeworICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJCYWQgcmVzdWx0OiAiICsgcmVzdWx0KTsKKyAgICB9CisgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0zLXNyYy9qdW5pdGJvb2svanVtcHN0YXJ0L1Rlc3RDYWxjdWxhdG9yMi5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTMtc3JjL2p1bml0Ym9vay9qdW1wc3RhcnQvVGVzdENhbGN1bGF0b3IyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjA4NjcxYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0zLXNyYy9qdW5pdGJvb2svanVtcHN0YXJ0L1Rlc3RDYWxjdWxhdG9yMi5qYXZhCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoKKyAqIFRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjEKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwMyBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uICBBbGwgCisgKiByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciAKKyAqIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyAKKyAqIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyAKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyAKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiAzLiBUaGUgZW5kLXVzZXIgZG9jdW1lbnRhdGlvbiBpbmNsdWRlZCB3aXRoIHRoZSByZWRpc3RyaWJ1dGlvbiwgCisgKiAgICBpZiBhbnksIG11c3QgaW5jbHVkZSB0aGUgZm9sbG93aW5nIGFja25vd2xlZ2VtZW50OgorICogICAgICAgIlRoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkgdGhlCisgKiAgICAgICAgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKGh0dHA6Ly93d3cuYXBhY2hlLm9yZy8pLiIKKyAqICAgIEFsdGVybmF0ZWx5LCB0aGlzIGFja25vd2xlZ2VtZW50IG1heSBhcHBlYXIgaW4gdGhlIHNvZnR3YXJlIAorICogICAgaXRzZWxmLCBpZiBhbmQgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBhY2tub3dsZWdlbWVudHMgCisgKiAgICBub3JtYWxseSBhcHBlYXIuCisgKgorICogNC4gVGhlIG5hbWVzICJUaGUgSmFrYXJ0YSBQcm9qZWN0IiwgImp1bml0Ym9vayIsICJqaWEiLCAKKyAqICAgICJKVW5pdCBpbiBBY3Rpb24iIGFuZCAiQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24iIG11c3Qgbm90IGJlIAorICogICAgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgCisgKiAgICB3aXRob3V0IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gRm9yIHdyaXR0ZW4gcGVybWlzc2lvbiwgCisgKiAgICBwbGVhc2UgY29udGFjdCBhcGFjaGVAYXBhY2hlLm9yZy4KKyAqCisgKiA1LiBQcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSBtYXkgbm90IGJlIGNhbGxlZCAiQXBhY2hlIgorICogICAgbm9yIG1heSAiQXBhY2hlIiBhcHBlYXIgaW4gdGhlaXIgbmFtZXMgd2l0aG91dCBwcmlvciB3cml0dGVuCisgKiAgICBwZXJtaXNzaW9uIG9mIHRoZSBBcGFjaGUgR3JvdXAuCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTRUQgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFQQUNIRSBTT0ZUV0FSRSBGT1VOREFUSU9OIE9SCisgKiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GCisgKiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgCisgKiBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCAKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIAorICogQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIAorICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICoKKyAqIFRoaXMgc29mdHdhcmUgY29uc2lzdHMgb2Ygdm9sdW50YXJ5IGNvbnRyaWJ1dGlvbnMgbWFkZSBieSBtYW55CisgKiBpbmRpdmlkdWFscyBvbiBiZWhhbGYgb2YgdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgRm9yIAorICogbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHBsZWFzZSBzZWUKKyAqIDxodHRwOi8vd3d3LmFwYWNoZS5vcmcvPi4KKyAqCisgKi8KK3BhY2thZ2UganVtcHN0YXJ0OworCitwdWJsaWMgY2xhc3MgVGVzdENhbGN1bGF0b3IyCit7CisgIHByaXZhdGUgaW50IG5iRXJyb3JzID0gMDsKKworICBwdWJsaWMgdm9pZCB0ZXN0QWRkKCkKKyAgeworICAgIENhbGN1bGF0b3IgY2FsY3VsYXRvciA9IG5ldyBDYWxjdWxhdG9yKCk7CisgICAgZG91YmxlIHJlc3VsdCA9IGNhbGN1bGF0b3IuYWRkKDEwLCA1MCk7CisgICAgaWYgKHJlc3VsdCAhPSA2MCkKKyAgICB7CisgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbigiQmFkIHJlc3VsdDogIiArIHJlc3VsdCk7CisgICAgfQorICB9CisKKyAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgeworICAgIFRlc3RDYWxjdWxhdG9yMiB0ZXN0ID0gbmV3IFRlc3RDYWxjdWxhdG9yMigpOworICAgIHRyeQorICAgIHsKKyAgICAgIHRlc3QudGVzdEFkZCgpOworICAgIH0KKyAgICBjYXRjaCAoVGhyb3dhYmxlIGUpCisgICAgeworICAgICAgdGVzdC5uYkVycm9ycysrOworICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKKyAgICB9CisKKyAgICBpZiAodGVzdC5uYkVycm9ycyA+IDApCisgICAgeworICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oIlRoZXJlIHdlcmUgIiArIHRlc3QubmJFcnJvcnMgCisgICAgICAgICsgIiBlcnJvcihzKSIpOworICAgIH0KKyAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTMtc3JjL2p1bml0Ym9vay9qdW1wc3RhcnQvVGVzdENhbGN1bGF0b3IzLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMy1zcmMvanVuaXRib29rL2p1bXBzdGFydC9UZXN0Q2FsY3VsYXRvcjMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzcwZDBmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTMtc3JjL2p1bml0Ym9vay9qdW1wc3RhcnQvVGVzdENhbGN1bGF0b3IzLmphdmEKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKgorICogVGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMQorICoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDAzIFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4gIEFsbCAKKyAqIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIAorICogd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIAorICogY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSAKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIAorICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIAorICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIDMuIFRoZSBlbmQtdXNlciBkb2N1bWVudGF0aW9uIGluY2x1ZGVkIHdpdGggdGhlIHJlZGlzdHJpYnV0aW9uLCAKKyAqICAgIGlmIGFueSwgbXVzdCBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgYWNrbm93bGVnZW1lbnQ6CisgKiAgICAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUKKyAqICAgICAgICBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoaHR0cDovL3d3dy5hcGFjaGUub3JnLykuIgorICogICAgQWx0ZXJuYXRlbHksIHRoaXMgYWNrbm93bGVnZW1lbnQgbWF5IGFwcGVhciBpbiB0aGUgc29mdHdhcmUgCisgKiAgICBpdHNlbGYsIGlmIGFuZCB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IGFja25vd2xlZ2VtZW50cyAKKyAqICAgIG5vcm1hbGx5IGFwcGVhci4KKyAqCisgKiA0LiBUaGUgbmFtZXMgIlRoZSBKYWthcnRhIFByb2plY3QiLCAianVuaXRib29rIiwgImppYSIsIAorICogICAgIkpVbml0IGluIEFjdGlvbiIgYW5kICJBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiIgbXVzdCBub3QgYmUgCisgKiAgICB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSAKKyAqICAgIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiBGb3Igd3JpdHRlbiBwZXJtaXNzaW9uLCAKKyAqICAgIHBsZWFzZSBjb250YWN0IGFwYWNoZUBhcGFjaGUub3JnLgorICoKKyAqIDUuIFByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIG1heSBub3QgYmUgY2FsbGVkICJBcGFjaGUiCisgKiAgICBub3IgbWF5ICJBcGFjaGUiIGFwcGVhciBpbiB0aGVpciBuYW1lcyB3aXRob3V0IHByaW9yIHdyaXR0ZW4KKyAqICAgIHBlcm1pc3Npb24gb2YgdGhlIEFwYWNoZSBHcm91cC4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1NFRCBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUworICogT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVBBQ0hFIFNPRlRXQVJFIEZPVU5EQVRJT04gT1IKKyAqIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YKKyAqIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCAKKyAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gCisgKiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgCisgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKgorICogVGhpcyBzb2Z0d2FyZSBjb25zaXN0cyBvZiB2b2x1bnRhcnkgY29udHJpYnV0aW9ucyBtYWRlIGJ5IG1hbnkKKyAqIGluZGl2aWR1YWxzIG9uIGJlaGFsZiBvZiB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uICBGb3IgCisgKiBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiwgcGxlYXNlIHNlZQorICogPGh0dHA6Ly93d3cuYXBhY2hlLm9yZy8+LgorICoKKyAqLworcGFja2FnZSBqdW1wc3RhcnQ7CisKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CisKK3B1YmxpYyBjbGFzcyBUZXN0Q2FsY3VsYXRvcjMgZXh0ZW5kcyBUZXN0Q2FzZQoreworICBwdWJsaWMgdm9pZCB0ZXN0QWRkKCkKKyAgeworICAgIENhbGN1bGF0b3IgY2FsY3VsYXRvciA9IG5ldyBDYWxjdWxhdG9yKCk7CisgICAgZG91YmxlIHJlc3VsdCA9IGNhbGN1bGF0b3IuYWRkKDEwLCA1MCk7CisgICAgYXNzZXJ0RXF1YWxzKDYwLCByZXN1bHQsIDApOworICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMy1zcmMvdGVzdC9jb21tb25zLWxvZ2dpbmcucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0zLXNyYy90ZXN0L2NvbW1vbnMtbG9nZ2luZy5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlMjM0MmYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMy1zcmMvdGVzdC9jb21tb25zLWxvZ2dpbmcucHJvcGVydGllcwpAQCAtMCwwICsxLDEyIEBACisjCisjIGNvbW1vbnMtbG9nZ2luZy5wcm9wZXJ0aWVzCisjCisKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU2VsZWN0IExvZ0ZhY3Rvcnk6CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIER5bmFtaWNhbGx5IHNlbGVjdHMgbG9nZ2luZyBpbXBsZW1lbnRhdGlvbiBjbGFzcyBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZzoKKyMKK29yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZ0ZhY3Rvcnk9b3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuaW1wbC5Mb2dGYWN0b3J5SW1wbAorb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nPW9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLmltcGwuU2ltcGxlTG9nCisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0zLXNyYy90ZXN0L29yZy9hcGFjaGUvc3RydXRzL2FwcHMvbWFpbHJlYWRlci9kYW8vQmFzZVRlc3RVc2VyRGF0YWJhc2UuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS0zLXNyYy90ZXN0L29yZy9hcGFjaGUvc3RydXRzL2FwcHMvbWFpbHJlYWRlci9kYW8vQmFzZVRlc3RVc2VyRGF0YWJhc2UuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmI5MDQwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTMtc3JjL3Rlc3Qvb3JnL2FwYWNoZS9zdHJ1dHMvYXBwcy9tYWlscmVhZGVyL2Rhby9CYXNlVGVzdFVzZXJEYXRhYmFzZS5qYXZhCkBAIC0wLDAgKzEsMzIxIEBACisvKgorICogJElkOiBTdWJzY3JpcHRpb24uamF2YSAxNDkwMDkgMjAwNS0wMS0yOSAwNTozMzowMlogam1pdGNoZWxsICQgCisgKgorICogQ29weXJpZ2h0IDE5OTktMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhbzsKKworaW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKKworLyoqCisgKiBXZSBoYXZlIHVzZSBjYXNlIHRlc3RzIGZvcjoKKyAqIC0gWzAxIF0gZmluZFVzZXIoZXhpc3RpbmcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtET05FXQorICogLSBbMDIgXSBmaW5kVXNlcihib2d1cykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0RPTkVdCisgKiAtIFswMyBdIGZpbmRVc2VycygpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbRE9ORV0KKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogbGFiIDEtMyAtIENvbXBsZXRlIHNvbWUgb3IgYWxsIG9mIHRoZSByZW1haW5pbmcgdXNlIGNhc2VzCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIC0gWzA0IF0gY3JlYXRlVXNlcjEsIGZpbmQobmV3IG9uZSAxKSAgICAgICAgICAgICAgICAgICAgIFtET05FXQorICogLSBbMDRhXSBjcmVhdGVVc2VyMSwgZmluZChuZXcgb25lIDEpIGZpbmQgc3Vic2NyICAgICAgICAgW0RPTkVdCisgKiAtIFswNSBdIGNyZWF0ZVVzZXIyLCBmaW5kKGV4aXN0aW5nKSAgICAgICAgICAgICAgICAgICAgICBbRE9ORV0KKyAqIC0gWzA1YV0gY3JlYXRlVXNlcjIsIGZpbmQoZXhpc3RpbmcpICBmaW5kIHN1YnNjciAgICAgICAgIFtET05FXQorICogLSBbMDYgXSBjcmVhdGVVc2VyMywgZmluZFVzZXJzKGFsbCkgICAgICAgICAgICAgICAgICAgICAgW0RPTkVdCisgKiAtIFswNmFdIGNyZWF0ZVVzZXI0IChkdXBsaWNhdGUpICAgICAgICAgICAgICAgICAgICAgICAgICBbRE9ORV0KKyAqIC0gWzA3IF0gZmluZFVzZXJzKGFsbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtET05FXQorICogLSBbMDggXSBjcmVhdGUsIHNhdmUsIGNsb3NlLCBvcGVuIGZpbmQobmV3IG9uZSkgICAgICAgICAgW0RPTkVdCisgKiAtIFswOSBdIGNyZWF0ZSwgc2F2ZSwgY2xvc2UsIG9wZW4gZmluZFVzZXJzKGFsbCkgICAgICAgICBbRE9ORV0KKyAqIC0gWzEwIF0gZmluZChib2d1cykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtET05FXQorICogLSBbMTEgXSBjcmVhdGUsIHJlbW92ZSwgZmluZCh2YWxpZCksIGZpbmQoaW52YWxpZCkgICAgICAgW0RPTkVdCisgKiAKKyAqLworCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQmFzZVRlc3RVc2VyRGF0YWJhc2UgZXh0ZW5kcyBUZXN0Q2FzZSB7CisKKyAgICBwcm90ZWN0ZWQgVXNlckRhdGFiYXNlIHVzZXJEYXRhYmFzZTsKKyAgICBwcml2YXRlIGludCB1c2VyQ3QgPSAxMDsKKyAgICBwcml2YXRlIGludCBzdWJzY3JpcHRpb25DdCA9IDIwOworICAgIAorICAgIHByb3RlY3RlZCB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyLnNldFVwKCk7CisgICAgICAgICAgICB1c2VyRGF0YWJhc2UgPSBnZXROZXdVc2VyRGF0YWJhc2UoKTsKKwkJCWdlbmVyYXRlVXNlcnModXNlckN0LCBzdWJzY3JpcHRpb25DdCwgIiIpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGdlbmVyYXRlVXNlcnMoaW50IHVzZXJzLCBpbnQgc3VicywgU3RyaW5nIHByZWZpeCkgeworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHVzZXJzOyBpKyspIHsKKyAgICAgICAgCVVzZXIgdXNlciA9IGdldE5ld1VzZXIodXNlckRhdGFiYXNlLCBwcmVmaXggKyAidXNlciIgKyBpKTsKKyAgICAgICAgCXVzZXIuc2V0RnJvbUFkZHJlc3MocHJlZml4ICsgImZyb21BZGRyZXNzIiArIGkpOworICAgICAgICAJdXNlci5zZXRGdWxsTmFtZShwcmVmaXggKyAiZnVsbE5hbWUiICsgaSk7CisgICAgICAgIAl1c2VyLnNldFBhc3N3b3JkKHByZWZpeCArICJwYXNzd29yZCIgKyBpKTsKKyAgICAgICAgCQorICAgICAgICAJZm9yIChpbnQgaiA9IDA7IGogPCBzdWJzOyBqKyspIHsKKyAgICAgICAgCQkJU3Vic2NyaXB0aW9uIHN1YnNjcmlwdGlvbiA9IGdldE5ld1N1YnNjcmlwdGlvbih1c2VyLCBwcmVmaXggKyAiaG9zdCIgKyBqKTsKKyAgICAgICAgCQkJc3Vic2NyaXB0aW9uLnNldEF1dG9Db25uZWN0KGogJSAxID09IDApOworICAgICAgICAJCQlzdWJzY3JpcHRpb24uc2V0VXNlcm5hbWUocHJlZml4ICsgInN1YnNjcmlwdGlvblVzZXJOYW1lIiArIGopOworICAgICAgICAJCQlzdWJzY3JpcHRpb24uc2V0UGFzc3dvcmQocHJlZml4ICsgInN1YnNjcmlwdGlvblBhc3N3b3JkIiArIGopOworICAgICAgICAJCQlzdWJzY3JpcHRpb24uc2V0VHlwZShwcmVmaXggKyAidHlwZSIgKyBqKTsKKyAgICAgICAgCX0KKyAgICAgICAgfQorICAgIH0KKworCisgICAgcHJvdGVjdGVkIHZvaWQgdGVhckRvd24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgc3VwZXIudGVhckRvd24oKTsKKyAgICAgICAgdXNlckRhdGFiYXNlLmNsb3NlKCk7CisgICAgfQorCisgICAgCisgICAgLy8gZmluZFVzZXIoZXhpc3RpbmcpCisgICAgcHVibGljIHZvaWQgdGVzdENhc2UwMSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFVzZXIgdXNlciA9IHVzZXJEYXRhYmFzZS5maW5kVXNlcigidXNlcjUiKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiQ2hlY2sgdXNlcm5hbWUiLCAidXNlcjUiLmVxdWFscyh1c2VyLmdldFVzZXJuYW1lKCkpKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiQ2hlY2sgZnJvbUFkZHJlc3MiLCAiZnJvbUFkZHJlc3M1Ii5lcXVhbHModXNlci5nZXRGcm9tQWRkcmVzcygpKSk7CisgICAgICAgIGFzc2VydFRydWUoIkNoZWNrIGZ1bGxOYW1lIiwgImZ1bGxOYW1lNSIuZXF1YWxzKHVzZXIuZ2V0RnVsbE5hbWUoKSkpOworICAgICAgICBhc3NlcnRUcnVlKCJDaGVjayBwYXNzd29yZCIsICJwYXNzd29yZDUiLmVxdWFscyh1c2VyLmdldFBhc3N3b3JkKCkpKTsKKyAgICAgICAgYXNzZXJ0TnVsbCgiQ2hlY2sgcmVwbHlUb0FkZHJlc3MiLCB1c2VyLmdldFJlcGx5VG9BZGRyZXNzKCkpOworCisgICAgfQorCisgICAgLy8gZmluZFVzZXIoYm9ndXMpCisgICAgcHVibGljIHZvaWQgdGVzdENhc2UwMigpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFVzZXIgdXNlciA9IHVzZXJEYXRhYmFzZS5maW5kVXNlcigiYm9ndXNOYW1lIik7CisgICAgICAgIGFzc2VydE51bGwodXNlcik7CisgICAgfQorCisgICAgLy8gIGZpbmRVc2VycygpCisgICAgcHVibGljIHZvaWQgdGVzdENhc2UwMygpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFVzZXJbXSB1c2VycyA9IHVzZXJEYXRhYmFzZS5maW5kVXNlcnMoKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiQ2hlY2sgdXNlcnMiLCB1c2Vycy5sZW5ndGggPT0gdXNlckN0KTsKKyAgICB9CisKKyAgICAvLyAgY3JlYXRlVXNlcjEsIGZpbmQobmV3IG9uZSAxKQorICAgIHB1YmxpYyB2b2lkIHRlc3RDYXNlMDQoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgbmV3VXNlck5hbWUgPSAibmV3VXNlcjA0IjsKKyAgICAgICAgVXNlciBuZXdVc2VyID0gdXNlckRhdGFiYXNlLmNyZWF0ZVVzZXIobmV3VXNlck5hbWUpOworICAgICAgICBuZXdVc2VyLnNldFBhc3N3b3JkKCJwYXNzMSIpOworICAgICAgICBuZXdVc2VyLnNldEZyb21BZGRyZXNzKCJmcm9tQWRkcmVzczEiKTsKKyAgICAgICAgbmV3VXNlci5zZXRSZXBseVRvQWRkcmVzcygicmVwbHlUb0FkZHJlc3MxIik7CisKKyAgICAgICAgVXNlciBuZXdVc2VyMiA9IHVzZXJEYXRhYmFzZS5maW5kVXNlcihuZXdVc2VyTmFtZSk7CisgICAgICAgIGFzc2VydFRydWUoIkNoZWNrIHVzZXJuYW1lIiwgbmV3VXNlck5hbWUuZXF1YWxzKG5ld1VzZXIyLmdldFVzZXJuYW1lKCkpKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiQ2hlY2sgZnJvbUFkZHJlc3MiLCAiZnJvbUFkZHJlc3MxIi5lcXVhbHMobmV3VXNlcjIuZ2V0RnJvbUFkZHJlc3MoKSkpOworICAgICAgICBhc3NlcnRUcnVlKCJDaGVjayByZXBseVRvQWRkcmVzcyIsICJyZXBseVRvQWRkcmVzczEiLmVxdWFscyhuZXdVc2VyMi5nZXRSZXBseVRvQWRkcmVzcygpKSk7CisgICAgICAgIGFzc2VydFRydWUoIkNoZWNrIHBhc3N3b3JkIiwgInBhc3MxIi5lcXVhbHMobmV3VXNlcjIuZ2V0UGFzc3dvcmQoKSkpOworICAgICAgICBhc3NlcnROdWxsKCJDaGVjayBmdWxsTmFtZSIsIG5ld1VzZXIyLmdldEZ1bGxOYW1lKCkpOworICAgIH0KKworICAgIC8vIGNyZWF0ZVVzZXIxLCBmaW5kKG5ldyBvbmUgMSkgZmluZCBzdWJzY3IKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q2FzZTA0YSgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZyBuZXdVc2VyTmFtZSA9ICJuZXdVc2VyMDRhIjsKKyAgICAgICAgaW50IHN1YnMgPSA1OworCisgICAgICAgIFVzZXIgbmV3VXNlciA9IHVzZXJEYXRhYmFzZS5jcmVhdGVVc2VyKG5ld1VzZXJOYW1lKTsKKyAgICAgICAgbmV3VXNlci5zZXRQYXNzd29yZCgicGFzczEiKTsKKyAgICAgICAgbmV3VXNlci5zZXRGcm9tQWRkcmVzcygiZnJvbUFkZHJlc3MxIik7CisgICAgICAgIG5ld1VzZXIuc2V0UmVwbHlUb0FkZHJlc3MoInJlcGx5VG9BZGRyZXNzMSIpOworCisgICAgICAgIFVzZXIgbmV3VXNlcjIgPSB1c2VyRGF0YWJhc2UuZmluZFVzZXIobmV3VXNlck5hbWUpOworICAgICAgICBhc3NlcnRUcnVlKCJDaGVjayB1c2VybmFtZSIsIG5ld1VzZXJOYW1lLmVxdWFscyhuZXdVc2VyMi5nZXRVc2VybmFtZSgpKSk7CisgICAgICAgIGFzc2VydFRydWUoIkNoZWNrIGZyb21BZGRyZXNzIiwgImZyb21BZGRyZXNzMSIuZXF1YWxzKG5ld1VzZXIyLmdldEZyb21BZGRyZXNzKCkpKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiQ2hlY2sgcmVwbHlUb0FkZHJlc3MiLCAicmVwbHlUb0FkZHJlc3MxIi5lcXVhbHMobmV3VXNlcjIuZ2V0UmVwbHlUb0FkZHJlc3MoKSkpOworICAgICAgICBhc3NlcnRUcnVlKCJDaGVjayBwYXNzd29yZCIsICJwYXNzMSIuZXF1YWxzKG5ld1VzZXIyLmdldFBhc3N3b3JkKCkpKTsKKyAgICAgICAgYXNzZXJ0TnVsbCgiQ2hlY2sgZnVsbE5hbWUiLCBuZXdVc2VyMi5nZXRGdWxsTmFtZSgpKTsKKworICAgICAgICBnZW5lcmF0ZVVzZXJzKDMsIHN1YnMsICIwNGEiKTsKKworICAgICAgICBVc2VyIG5ld1VzZXIzID0gdXNlckRhdGFiYXNlLmZpbmRVc2VyKCIwNGF1c2VyMSIpOworICAgICAgICBTdWJzY3JpcHRpb25bXSBzdWJzY3JpcHRpb25zID0gbmV3VXNlcjMuZ2V0U3Vic2NyaXB0aW9ucygpOworICAgICAgICBhc3NlcnRUcnVlICgiVGVzdGluZyBzdWJzY3JpcHRpb25zIGxlbmd0aCIsIHN1YnNjcmlwdGlvbnMubGVuZ3RoID09IHN1YnMpOworICAgICAgICBuZXdVc2VyMy5yZW1vdmVTdWJzY3JpcHRpb24oc3Vic2NyaXB0aW9uc1swXSk7CisKKyAgICAgICAgLy8gVE9ETyB0aGlzIGlzIGEgcHJvYmxlbQorLy8gICAgICAgIGFzc2VydFRydWUgKCJUZXN0aW5nIHN1YnNjcmlwdGlvbnMgbGVuZ3RoIiwgc3Vic2NyaXB0aW9ucy5sZW5ndGggPCBzdWJzKTsKKworICAgIH0KKworICAgIC8vIGNyZWF0ZVVzZXIyLCBmaW5kKGV4aXN0aW5nKQorICAgIHB1YmxpYyB2b2lkIHRlc3RDYXNlMDUoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgbmV3VXNlck5hbWUgPSAiYW5vdGhlck5ld1VzZXIwNSI7CisKKyAgICAgICAgVXNlciBuZXdVc2VyID0gdXNlckRhdGFiYXNlLmNyZWF0ZVVzZXIobmV3VXNlck5hbWUpOworICAgICAgICBuZXdVc2VyLnNldFBhc3N3b3JkKCJwYXNzMSIpOworICAgICAgICBuZXdVc2VyLnNldEZyb21BZGRyZXNzKCJmcm9tQWRkcmVzczEiKTsKKyAgICAgICAgbmV3VXNlci5zZXRSZXBseVRvQWRkcmVzcygicmVwbHlUb0FkZHJlc3MxIik7CisKKyAgICAgICAgVXNlciBuZXdVc2VyNSA9IHVzZXJEYXRhYmFzZS5maW5kVXNlcigidXNlcjUiKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiQ2hlY2sgdXNlcm5hbWUiLCAidXNlcjUiLmVxdWFscyhuZXdVc2VyNS5nZXRVc2VybmFtZSgpKSk7CisgICAgICAgIGFzc2VydFRydWUoIkNoZWNrIGZyb21BZGRyZXNzIiwgImZyb21BZGRyZXNzNSIuZXF1YWxzKG5ld1VzZXI1LmdldEZyb21BZGRyZXNzKCkpKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiQ2hlY2sgZnVsbE5hbWUiLCAiZnVsbE5hbWU1Ii5lcXVhbHMobmV3VXNlcjUuZ2V0RnVsbE5hbWUoKSkpOworICAgICAgICBhc3NlcnRUcnVlKCJDaGVjayBwYXNzd29yZCIsICJwYXNzd29yZDUiLmVxdWFscyhuZXdVc2VyNS5nZXRQYXNzd29yZCgpKSk7CisgICAgICAgIGFzc2VydE51bGwoIkNoZWNrIHJlcGx5VG9BZGRyZXNzIiwgbmV3VXNlcjUuZ2V0UmVwbHlUb0FkZHJlc3MoKSk7CisKKyAgICB9CisKKyAgICAvLyBjcmVhdGVVc2VyMiwgZmluZChleGlzdGluZykgIGZpbmQgc3Vic2NyCisgICAgcHVibGljIHZvaWQgdGVzdENhc2UwNWEoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgbmV3VXNlck5hbWUgPSAiYW5vdGhlck5ld1VzZXIwNWEiOworCisgICAgICAgIFVzZXIgbmV3VXNlciA9IHVzZXJEYXRhYmFzZS5jcmVhdGVVc2VyKG5ld1VzZXJOYW1lKTsKKyAgICAgICAgbmV3VXNlci5zZXRQYXNzd29yZCgicGFzczEiKTsKKyAgICAgICAgbmV3VXNlci5zZXRGcm9tQWRkcmVzcygiZnJvbUFkZHJlc3MxIik7CisgICAgICAgIG5ld1VzZXIuc2V0UmVwbHlUb0FkZHJlc3MoInJlcGx5VG9BZGRyZXNzMSIpOworCisgICAgICAgIFVzZXIgbmV3VXNlcjVhID0gdXNlckRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyNSIpOworICAgICAgICBhc3NlcnRUcnVlKCJDaGVjayB1c2VybmFtZSIsICJ1c2VyNSIuZXF1YWxzKG5ld1VzZXI1YS5nZXRVc2VybmFtZSgpKSk7CisgICAgICAgIGFzc2VydFRydWUoIkNoZWNrIGZyb21BZGRyZXNzIiwgImZyb21BZGRyZXNzNSIuZXF1YWxzKG5ld1VzZXI1YS5nZXRGcm9tQWRkcmVzcygpKSk7CisgICAgICAgIGFzc2VydFRydWUoIkNoZWNrIGZ1bGxOYW1lIiwgImZ1bGxOYW1lNSIuZXF1YWxzKG5ld1VzZXI1YS5nZXRGdWxsTmFtZSgpKSk7CisgICAgICAgIGFzc2VydFRydWUoIkNoZWNrIHBhc3N3b3JkIiwgInBhc3N3b3JkNSIuZXF1YWxzKG5ld1VzZXI1YS5nZXRQYXNzd29yZCgpKSk7CisgICAgICAgIGFzc2VydE51bGwoIkNoZWNrIHJlcGx5VG9BZGRyZXNzIiwgbmV3VXNlcjVhLmdldFJlcGx5VG9BZGRyZXNzKCkpOworCisgICAgICAgIFN1YnNjcmlwdGlvbltdIHN1YnNjcmlwdGlvbnMgPSBuZXdVc2VyNWEuZ2V0U3Vic2NyaXB0aW9ucygpOworICAgICAgICBhc3NlcnRUcnVlICgiVGVzdGluZyBzdWJzY3JpcHRpb25zIGxlbmd0aCIsIHN1YnNjcmlwdGlvbnMubGVuZ3RoID09IHN1YnNjcmlwdGlvbkN0KTsKKworICAgIH0KKworICAgIC8vIGNyZWF0ZVVzZXIzLCBmaW5kVXNlcnMoYWxsKQorICAgIHB1YmxpYyB2b2lkIHRlc3RDYXNlMDYoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICBTdHJpbmcgbmV3VXNlck5hbWUgPSAiYW5vdGhlck5ld1VzZXIwNiI7CisKKyAgICAgICAgVXNlciBuZXdVc2VyID0gdXNlckRhdGFiYXNlLmNyZWF0ZVVzZXIobmV3VXNlck5hbWUpOworICAgICAgICBuZXdVc2VyLnNldFBhc3N3b3JkKCJwYXNzMSIpOworICAgICAgICBuZXdVc2VyLnNldEZyb21BZGRyZXNzKCJmcm9tQWRkcmVzczEiKTsKKyAgICAgICAgbmV3VXNlci5zZXRSZXBseVRvQWRkcmVzcygicmVwbHlUb0FkZHJlc3MxIik7CisKKyAgICAgICAgVXNlciB1c2VyNiA9IHVzZXJEYXRhYmFzZS5maW5kVXNlcigidXNlcjYiKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiQ2hlY2sgdXNlcm5hbWUiLCAidXNlcjYiLmVxdWFscyh1c2VyNi5nZXRVc2VybmFtZSgpKSk7CisgICAgICAgIGFzc2VydFRydWUoIkNoZWNrIGZyb21BZGRyZXNzIiwgImZyb21BZGRyZXNzNiIuZXF1YWxzKHVzZXI2LmdldEZyb21BZGRyZXNzKCkpKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiQ2hlY2sgZnVsbE5hbWUiLCAiZnVsbE5hbWU2Ii5lcXVhbHModXNlcjYuZ2V0RnVsbE5hbWUoKSkpOworICAgICAgICBhc3NlcnRUcnVlKCJDaGVjayBwYXNzd29yZCIsICJwYXNzd29yZDYiLmVxdWFscyh1c2VyNi5nZXRQYXNzd29yZCgpKSk7CisgICAgICAgIGFzc2VydE51bGwoIkNoZWNrIHJlcGx5VG9BZGRyZXNzIiwgdXNlcjYuZ2V0UmVwbHlUb0FkZHJlc3MoKSk7CisKKyAgICB9CisKKyAgICAvLyBjcmVhdGVVc2VyNCAoZHVwbGljYXRlKQorICAgIC8vIHB1YmxpYyB2b2lkIHRlc3RDYXNlMDZhKCkgdGhyb3dzIEV4Y2VwdGlvbnsKKworICAgIC8vIGZpbmRVc2VycyhhbGwpCisgICAgcHVibGljIHZvaWQgdGVzdENhc2UwNygpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZyBuZXdVc2VyTmFtZSA9ICJhbm90aGVyTmV3VXNlcjA3IjsKKworICAgICAgICBVc2VyIG5ld1VzZXIgPSB1c2VyRGF0YWJhc2UuY3JlYXRlVXNlcihuZXdVc2VyTmFtZSk7CisgICAgICAgIG5ld1VzZXIuc2V0UGFzc3dvcmQoInBhc3MxIik7CisgICAgICAgIG5ld1VzZXIuc2V0RnJvbUFkZHJlc3MoImZyb21BZGRyZXNzMSIpOworICAgICAgICBuZXdVc2VyLnNldFJlcGx5VG9BZGRyZXNzKCJyZXBseVRvQWRkcmVzczEiKTsKKworICAgICAgICBVc2VyIHVzZXI3ID0gdXNlckRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyNyIpOworICAgICAgICBhc3NlcnRUcnVlKCJDaGVjayB1c2VybmFtZSIsICJ1c2VyNyIuZXF1YWxzKHVzZXI3LmdldFVzZXJuYW1lKCkpKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiQ2hlY2sgZnJvbUFkZHJlc3MiLCAiZnJvbUFkZHJlc3M3Ii5lcXVhbHModXNlcjcuZ2V0RnJvbUFkZHJlc3MoKSkpOworICAgICAgICBhc3NlcnRUcnVlKCJDaGVjayBmdWxsTmFtZSIsICJmdWxsTmFtZTciLmVxdWFscyh1c2VyNy5nZXRGdWxsTmFtZSgpKSk7CisgICAgICAgIGFzc2VydFRydWUoIkNoZWNrIHBhc3N3b3JkIiwgInBhc3N3b3JkNyIuZXF1YWxzKHVzZXI3LmdldFBhc3N3b3JkKCkpKTsKKyAgICAgICAgYXNzZXJ0TnVsbCgiQ2hlY2sgcmVwbHlUb0FkZHJlc3MiLCB1c2VyNy5nZXRSZXBseVRvQWRkcmVzcygpKTsKKworICAgICAgICBVc2VyW10gdXNlcnMgPSB1c2VyRGF0YWJhc2UuZmluZFVzZXJzKCk7CisgICAgICAgIGFzc2VydFRydWUoIkNoZWNrIHVzZXJzIiwgdXNlcnMubGVuZ3RoID09IHVzZXJDdCArIDEpOworCisgICAgfQorCisgICAgLy8gY3JlYXRlLCBzYXZlLCBjbG9zZSwgb3BlbiBmaW5kKG5ldyBvbmUpCisgICAgcHVibGljIHZvaWQgdGVzdENhc2UwOCgpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgIFN0cmluZyBuZXdVc2VyTmFtZSA9ICJuZXdVc2VyMDgiOworICAgICAgICBpbnQgc3VicyA9IDU7CisKKwkgICAgVXNlciBuZXdVc2VyID0gdXNlckRhdGFiYXNlLmNyZWF0ZVVzZXIobmV3VXNlck5hbWUpOworCSAgICBuZXdVc2VyLnNldFBhc3N3b3JkKCJwYXNzMSIpOworCSAgICBuZXdVc2VyLnNldEZyb21BZGRyZXNzKCJmcm9tQWRkcmVzczEiKTsKKwkgICAgbmV3VXNlci5zZXRSZXBseVRvQWRkcmVzcygicmVwbHlUb0FkZHJlc3MxIik7CisKKwkgICAgLy8gVE9ETyBmaXggbWUsIHRoaXMgaXMgbm90IHJlbGVhc2luZyB0aGUgaW50ZXJuYWwgc3RhdGUgb24gY2xvc2UKKwkvLyAgICAgICAgICAgIHVzZXJEYXRhYmFzZS5zYXZlKCk7CisJLy8gICAgICAgICAgICB1c2VyRGF0YWJhc2UuY2xvc2UoKTsKKwkvLyAgICAgICAgICAgIHVzZXJEYXRhYmFzZS5vcGVuKCk7CisKKwkgICAgVXNlciBuZXdVc2VyMiA9IHVzZXJEYXRhYmFzZS5maW5kVXNlcihuZXdVc2VyTmFtZSk7CisJICAgIGFzc2VydFRydWUoIkNoZWNrIHVzZXJuYW1lIiwgbmV3VXNlck5hbWUuZXF1YWxzKG5ld1VzZXIyLmdldFVzZXJuYW1lKCkpKTsKKwkgICAgYXNzZXJ0VHJ1ZSgiQ2hlY2sgZnJvbUFkZHJlc3MiLCAiZnJvbUFkZHJlc3MxIi5lcXVhbHMobmV3VXNlcjIuZ2V0RnJvbUFkZHJlc3MoKSkpOworCSAgICBhc3NlcnRUcnVlKCJDaGVjayByZXBseVRvQWRkcmVzcyIsICJyZXBseVRvQWRkcmVzczEiLmVxdWFscyhuZXdVc2VyMi5nZXRSZXBseVRvQWRkcmVzcygpKSk7CisJICAgIGFzc2VydFRydWUoIkNoZWNrIHBhc3N3b3JkIiwgInBhc3MxIi5lcXVhbHMobmV3VXNlcjIuZ2V0UGFzc3dvcmQoKSkpOworCSAgICBhc3NlcnROdWxsKCJDaGVjayBmdWxsTmFtZSIsIG5ld1VzZXIyLmdldEZ1bGxOYW1lKCkpOworCisJICAgIGdlbmVyYXRlVXNlcnMoMywgc3VicywgIjA4Iik7CisKKwkgICAgVXNlciBuZXdVc2VyMyA9IHVzZXJEYXRhYmFzZS5maW5kVXNlcigiMDh1c2VyMSIpOworCSAgICBTdWJzY3JpcHRpb25bXSBzdWJzY3JpcHRpb25zID0gbmV3VXNlcjMuZ2V0U3Vic2NyaXB0aW9ucygpOworCSAgICBhc3NlcnRUcnVlICgiVGVzdGluZyBzdWJzY3JpcHRpb25zIGxlbmd0aCIsIHN1YnNjcmlwdGlvbnMubGVuZ3RoID09IHN1YnMpOworCisJLy8gICAgICAgICAgICB1c2VyRGF0YWJhc2Uuc2F2ZSgpOworCS8vICAgICAgICAgICAgdXNlckRhdGFiYXNlLmNsb3NlKCk7CisJLy8gICAgICAgICAgICB1c2VyRGF0YWJhc2Uub3BlbigpOworCisJICAgIFVzZXIgbmV3VXNlcjQgPSB1c2VyRGF0YWJhc2UuZmluZFVzZXIoIjA4dXNlcjEiKTsKKwkgICAgU3Vic2NyaXB0aW9uW10gc3Vic2NyaXB0aW9uczIgPSBuZXdVc2VyNC5nZXRTdWJzY3JpcHRpb25zKCk7CisJICAgIGFzc2VydFRydWUgKCJUZXN0aW5nIHN1YnNjcmlwdGlvbnMgbGVuZ3RoIiwgc3Vic2NyaXB0aW9uczIubGVuZ3RoID09IHN1YnMpOworCisgICAgfQorCisgICAgLy8gIGNyZWF0ZSwgc2F2ZSwgY2xvc2UsIG9wZW4gZmluZFVzZXJzKGFsbCkKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q2FzZTA5KCkgdGhyb3dzIEV4Y2VwdGlvbnsKKworICAgICAgICAgICAgLy8gVE9ETyBmaXggbWUsIHRoaXMgaXMgbm90IHJlbGVhc2luZyB0aGUgaW50ZXJuYWwgc3RhdGUgb24gY2xvc2UKKy8vICAgICAgICAgICAgdXNlckRhdGFiYXNlLnNhdmUoKTsKKy8vICAgICAgICAgICAgdXNlckRhdGFiYXNlLmNsb3NlKCk7CisvLyAgICAgICAgICAgIHVzZXJEYXRhYmFzZS5vcGVuKCk7CisKKyAgICAgICAgICAgIFVzZXJbXSB1c2VycyA9IHVzZXJEYXRhYmFzZS5maW5kVXNlcnMoKTsKKyAgICAgICAgICAgIGFzc2VydFRydWUoIlRlc3RpbmcgdXNlcnMgY291bnQiLCB1c2Vycy5sZW5ndGggPT0gdXNlckN0KTsKKworICAgIH0KKworICAgIC8vIGZpbmQoYm9ndXMpCisgICAgcHVibGljIHZvaWQgdGVzdENhc2UwMTAoKSB0aHJvd3MgRXhjZXB0aW9ueworCisgICAgICAgICAgICAvLyBUT0RPIGZpeCBtZSwgdGhpcyBpcyBub3QgcmVsZWFzaW5nIHRoZSBpbnRlcm5hbCBzdGF0ZSBvbiBjbG9zZQorLy8gICAgICAgICAgICB1c2VyRGF0YWJhc2Uuc2F2ZSgpOworLy8gICAgICAgICAgICB1c2VyRGF0YWJhc2UuY2xvc2UoKTsKKy8vICAgICAgICAgICAgdXNlckRhdGFiYXNlLm9wZW4oKTsKKworICAgICAgICAgICAgVXNlciB1c2VyID0gdXNlckRhdGFiYXNlLmZpbmRVc2VyKCJib2d1cyB1c2VyIik7CisgICAgICAgICAgICBhc3NlcnROdWxsKCJGaW5kIG5vbi1leGlzdGluZyB1c2VyIiwgdXNlcik7CisKKyAgICB9CisKKyAgICAvLyBjcmVhdGUsIHJlbW92ZSwgZmluZCh2YWxpZCksIGZpbmQoaW52YWxpZCkKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q2FzZTAxMSgpIHRocm93cyBFeGNlcHRpb257CisKKyAgICAgICAgU3RyaW5nIG5ld1VzZXJOYW1lID0gIm5ld1VzZXIxMSI7CisKKyAgICAgICAgVXNlciBuZXdVc2VyID0gdXNlckRhdGFiYXNlLmNyZWF0ZVVzZXIobmV3VXNlck5hbWUpOworICAgICAgICBuZXdVc2VyLnNldFBhc3N3b3JkKCJwYXNzMSIpOworICAgICAgICBuZXdVc2VyLnNldEZyb21BZGRyZXNzKCJmcm9tQWRkcmVzczEiKTsKKyAgICAgICAgbmV3VXNlci5zZXRSZXBseVRvQWRkcmVzcygicmVwbHlUb0FkZHJlc3MxIik7CisKKyAgICAgICAgVXNlciB1c2VyID0gdXNlckRhdGFiYXNlLmZpbmRVc2VyKG5ld1VzZXJOYW1lKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRmluZCBuZXcgdXNlciIsIHVzZXIpOworCisgICAgICAgIHVzZXJEYXRhYmFzZS5yZW1vdmVVc2VyKHVzZXIpOworICAgICAgICBVc2VyIHVzZXIyID0gdXNlckRhdGFiYXNlLmZpbmRVc2VyKG5ld1VzZXJOYW1lKTsKKyAgICAgICAgYXNzZXJ0TnVsbCgiUmVtb3ZlIG5ldyB1c2VyIiwgdXNlcjIpOworCisgICAgfQorCisgICAgcHJvdGVjdGVkIGFic3RyYWN0IFVzZXJEYXRhYmFzZSBnZXROZXdVc2VyRGF0YWJhc2UoKTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgVXNlciBnZXROZXdVc2VyKFVzZXJEYXRhYmFzZSBkYiwgU3RyaW5nIHVzZXJOYW1lKTsKKyAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgU3Vic2NyaXB0aW9uIGdldE5ld1N1YnNjcmlwdGlvbihVc2VyIHVzZXIsIFN0cmluZyBob3N0KTsKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTMtc3JjL3Rlc3Qvb3JnL2FwYWNoZS9zdHJ1dHMvYXBwcy9tYWlscmVhZGVyL2Rhby9pbXBsL21lbW9yeS9NZW1vcnlVc2VyRGF0YWJhc2VUZXN0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtMy1zcmMvdGVzdC9vcmcvYXBhY2hlL3N0cnV0cy9hcHBzL21haWxyZWFkZXIvZGFvL2ltcGwvbWVtb3J5L01lbW9yeVVzZXJEYXRhYmFzZVRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTBiYWI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTMtc3JjL3Rlc3Qvb3JnL2FwYWNoZS9zdHJ1dHMvYXBwcy9tYWlscmVhZGVyL2Rhby9pbXBsL21lbW9yeS9NZW1vcnlVc2VyRGF0YWJhc2VUZXN0LmphdmEKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqICRJZDogU3Vic2NyaXB0aW9uLmphdmEgMTQ5MDA5IDIwMDUtMDEtMjkgMDU6MzM6MDJaIGptaXRjaGVsbCAkIAorICoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uaW1wbC5tZW1vcnk7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkJhc2VUZXN0VXNlckRhdGFiYXNlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uU3Vic2NyaXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXJEYXRhYmFzZTsKKworCisKK3B1YmxpYyBjbGFzcyBNZW1vcnlVc2VyRGF0YWJhc2VUZXN0IGV4dGVuZHMgQmFzZVRlc3RVc2VyRGF0YWJhc2UgeworCisgICAgcHJvdGVjdGVkIFN0cmluZyBkZWZhdWx0UGF0aE5hbWUgPSAidGVzdC1kYXRhYmFzZS54bWwiOworICAgIAorICAgIHByb3RlY3RlZCBVc2VyRGF0YWJhc2UgZ2V0TmV3VXNlckRhdGFiYXNlKCl7CisgICAgICAgIC8vIHVzaW5nIGRlZmF1bHQgaW1wbAorICAgICAgICBNZW1vcnlVc2VyRGF0YWJhc2UgbWVtb3J5VXNlckRhdGFiYXNlID0gbmV3IE1lbW9yeVVzZXJEYXRhYmFzZSgpOworICAgICAgICBtZW1vcnlVc2VyRGF0YWJhc2Uuc2V0UGF0aG5hbWUoZGVmYXVsdFBhdGhOYW1lKTsKKyAgICAgICAgdXNlckRhdGFiYXNlID0gbWVtb3J5VXNlckRhdGFiYXNlOworICAgICAgICByZXR1cm4gbWVtb3J5VXNlckRhdGFiYXNlOworICAgICAgICAKKyAgICB9CisgICAgcHJvdGVjdGVkIFVzZXIgZ2V0TmV3VXNlcihVc2VyRGF0YWJhc2UgZGIsIFN0cmluZyB1c2VyTmFtZSl7CisgICAgICAgIC8vIHVzaW5nIGRlZmF1bHQgaW1wbAorICAgICAgICByZXR1cm4gZGIuY3JlYXRlVXNlcih1c2VyTmFtZSk7CisgICAgfQorICAgIHByb3RlY3RlZCBTdWJzY3JpcHRpb24gZ2V0TmV3U3Vic2NyaXB0aW9uKFVzZXIgdXNlciwgU3RyaW5nIGhvc3QpIHsKKyAgICAgICAgcmV0dXJuIHVzZXIuY3JlYXRlU3Vic2NyaXB0aW9uKGhvc3QpOworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyLnNldFVwKCk7CisgICAgICAgIC8vIGZvcmNlIHdyaXRlIHRvIGRpc2sKKwkgICAgIHVzZXJEYXRhYmFzZS5jbG9zZSgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy9NRVRBLUlORi9jb250ZXh0LnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy9NRVRBLUlORi9jb250ZXh0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBiNWQwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL01FVEEtSU5GL2NvbnRleHQueG1sCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxDb250ZXh0IHBhdGg9Ii8iPgorPC9Db250ZXh0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvYXBwcy9tYWlscmVhZGVyL2NvdXJzZS9Db25zdGFudHMuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL2FwcHMvbWFpbHJlYWRlci9jb3Vyc2UvQ29uc3RhbnRzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI3ZGNkMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL2FwcHMvbWFpbHJlYWRlci9jb3Vyc2UvQ29uc3RhbnRzLmphdmEKQEAgLTAsMCArMSwyMDggQEAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmNvdXJzZTsKKworLyoqCisgKiA8cD4KKyAqIE1hbmlmZXN0IGNvbnN0YW50cyBmb3IgdGhlIE1haWxSZWFkZXIgYXBwbGljYXRpb24uCisgKiA8L3A+CisgKgorICovCitwdWJsaWMgY2xhc3MgQ29uc3RhbnRzIHsKKworICAgIC8vIC0tLSBUb2tlbnMgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVGhlIHRva2VuIHJlcHJlc2VudGluZyBhICJjcmVhdGUiIHRhc2suCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENSRUFURSA9ICJDcmVhdGUiOworCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVGhlIGFwcGxpY2F0aW9uIHNjb3BlIGF0dHJpYnV0ZSB1bmRlciB3aGljaCBvdXIgdXNlciBkYXRhYmFzZQorICAgICAqIGlzIHN0b3JlZC4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQUJBU0VfS0VZID0gImRhdGFiYXNlIjsKKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFRoZSB0b2tlbiByZXByZXNlbnRpbmcgYSAiZWRpdCIgdGFzay4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVMRVRFID0gIkRlbGV0ZSI7CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgdG9rZW4gcmVwcmVzZW50aW5nIGEgImVkaXQiIHRhc2suCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVESVQgPSAiRWRpdCI7CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB0aGUgV2VsY29tZUFjdGlvbiBzdG9yZXMgYW4gQXJyYXlMaXN0CisgICAgICogb2YgZXJyb3IgbWVzc2FnZXMsIGlmIHJlcXVpcmVkIHJlc291cmNlcyBhcmUgbWlzc2luZy4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfS0VZID0gIkVSUk9SIjsKKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFRoZSB0b2tlbiByZXByZXNlbnRpbmcgYSAiZmFpbHVyZSIgcmVzdWx0IGZvciB0aGlzIGFwcGxpY2F0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBGQUlMVVJFID0gIkZhaWx1cmUiOworCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVGhlIHRva2VuIHJlcHJlc2VudGluZyBhICJsb2dvbiIgcmVzdWx0IGZvciB0aGlzIGFwcGxpY2F0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMT0dPTiA9ICJMb2dvbiI7CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgcGFja2FnZSBuYW1lIGZvciB0aGlzIGFwcGxpY2F0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQQUNLQUdFID0gIm9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlciI7CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgdG9rZW4gcmVwcmVzZW50aW5nIGEgInNhdmUiIHRhc2suCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNBVkUgPSAiU2F2ZSI7CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgc2Vzc2lvbiBzY29wZSBhdHRyaWJ1dGUgdW5kZXIgd2hpY2ggdGhlIFN1YnNjcmlwdGlvbiBvYmplY3QKKyAgICAgKiBjdXJyZW50bHkgc2VsZWN0ZWQgYnkgb3VyIGxvZ2dlZC1pbiBVc2VyIGlzIHN0b3JlZC4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1VCU0NSSVBUSU9OX0tFWSA9ICJzdWJzY3JpcHRpb24iOworCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVGhlIHRva2VuIHJlcHJlc2VudGluZyBhICJzdWNjZXNzIiByZXN1bHQgZm9yIHRoaXMgYXBwbGljYXRpb24uCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVQ0NFU1MgPSAiU3VjY2VzcyI7CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgc2Vzc2lvbiBzY29wZSBhdHRyaWJ1dGUgdW5kZXIgd2hpY2ggdGhlIFVzZXIgb2JqZWN0CisgICAgICogZm9yIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIgaXMgc3RvcmVkLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBVU0VSX0tFWSA9ICJ1c2VyIjsKKworICAgIC8vIC0tLS0gRXJyb3IgTWVzc2FnZXMgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogQSBzdGF0aWMgbWVzc2FnZSBpbiBjYXNlIGRhdGFiYXNlIHJlc291cmNlIGlzIG5vdCBsb2FkZWQuCisgICAgICogPHA+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfREFUQUJBU0VfTk9UX0xPQURFRCA9CisgICAgICAgICAgICAiRVJST1I6ICBVc2VyIGRhdGFiYXNlIG5vdCBsb2FkZWQgLS0gY2hlY2sgc2VydmxldCBjb250YWluZXIgbG9ncyBmb3IgZXJyb3IgbWVzc2FnZXMuIjsKKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIEEgc3RhdGljIG1lc3NhZ2UgaW4gY2FzZSBtZXNzYWdlIHJlc291cmNlIGlzIG5vdCBsb2FkZWQuCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVSUk9SX01FU1NBR0VTX05PVF9MT0FERUQgPQorICAgICAgICAgICAgIkVSUk9SOiAgTWVzc2FnZSByZXNvdXJjZXMgbm90IGxvYWRlZCAtLSBjaGVjayBzZXJ2bGV0IGNvbnRhaW5lciBsb2dzIGZvciBlcnJvciBtZXNzYWdlcy4iOworCisgICAgLy8gLS0tLSBFcnJvciBUb2tlbnMgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVGhlIHJlc291cmNlIGtleSBmb3IgYW4gZXJyb3Igd2l0aCB0aGUgdHJhbnNhY3Rpb25hbCB0b2tlbi4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTVNHX1RSQU5TQUNUSU9OX1RPS0VOID0gImVycm9yLnRyYW5zYWN0aW9uLnRva2VuIjsKKworICAgIC8vIC0tLS0gTG9nIE1lc3NhZ2VzIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFRoZSBtZXNzYWdlIHRvIGxvZyB3aGVuIGNhbmNlbGxpbmcgYSB0cmFuc2FjdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9HX0NBTkNFTCA9ICIgVHJhbnNhY3Rpb24gY2FuY2VsbGVkOiAiOworCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVGhlIG1lc3NhZ2UgdG8gbG9nIHdoZW4gZm9yd2FyZGluZyB0byBhIHJlc3VsdC4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9HX1JFU1VMVCA9ICIgRm9yd2FyZGluZyB0byByZXN1bHQ6ICI7CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgbWVzc2FnZSB0byBsb2cgd2hlbiBmb3J3YXJkaW5nIHRvIGEgJ2ZhaWx1cmUnIHJlc3VsdC4KKyAgICAgKiA8cD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMT0dfRkFJTFVSRSA9IExPR19SRVNVTFQgKyBGQUlMVVJFOworCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVGhlIG1lc3NhZ2UgdG8gbG9nIHdoZW4gZm9yd2FyZGluZyB0byBhICdsb2dvbicgcmVzdWx0LgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMT0dfTE9HT04gPSBMT0dfUkVTVUxUICsgTE9HT047CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgbWVzc2FnZSB0byBsb2cgd2hlbiBwb3B1bGF0aW5nIGEgZm9ybS4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9HX1BPUFVMQVRFX0ZPUk0gPSAiIFBvcHVsYXRpbmcgZm9ybSBmcm9tOiAiOworCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVGhlIG1lc3NhZ2UgdG8gbG9nIHdoZW4gcG9wdWxhdGluZyBhIHN1YnNjcmlwdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9HX1BPUFVMQVRFX1NVQlNDUklQVElPTiA9ICIgUG9wdWxhdGluZyBzdWJzY3JpcHRpb246ICI7CisKKyAgICAvKioKKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgbWVzc2FnZSB0byBsb2cgd2hlbiBwb3B1bGF0aW5nIGEgdXNlci4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9HX1BPUFVMQVRFX1VTRVIgPSAiIFBvcHVsYXRpbmcgdXNlcjogIjsKKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFRoZSBtZXNzYWdlIHRvIGxvZyB3aGVuIGZvcndhcmRpbmcgdG8gYSAnc3VjY2VzcycgcmVzdWx0LgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMT0dfUFJPQ0VTU0lORyA9ICIgUHJvY2Vzc2luZzogIjsKKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIFRoZSBtZXNzYWdlIHRvIGxvZyB3aGVuIGZvcndhcmRpbmcgdG8gYSAnc3VjY2VzcycgcmVzdWx0LgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMT0dfU1VDQ0VTUyA9IExPR19SRVNVTFQgKyBTVUNDRVNTOworCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVGhlIG1lc3NhZ2UgdG8gbG9nIHdoZW4gc2V0dGluZyBhIHRyYW5zYWN0aW9uYWwgdG9rZW4uCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIExPR19UT0tFTiA9ICIgU2V0dGluZyB0cmFuc2FjdGlvbmFsIGNvbnRyb2wgdG9rZW4iOworCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogVGhlIG1lc3NhZ2UgdG8gbG9nIHdoZW4gY2hlY2tpbmcgYSB0cmFuc2FjdGlvbmFsIHRva2VuLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMT0dfVE9LRU5fQ0hFQ0sgPSAiIENoZWNraW5nIHRyYW5zYWN0aW9uYWwgY29udHJvbCB0b2tlbiI7CisKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvYXBwcy9tYWlscmVhZGVyL2NvdXJzZS9Mb2dvbkFjdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvYXBwcy9tYWlscmVhZGVyL2NvdXJzZS9Mb2dvbkFjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmM2E2YzUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9hcHBzL21haWxyZWFkZXIvY291cnNlL0xvZ29uQWN0aW9uLmphdmEKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqICRJZDogTG9nb25BY3Rpb24uamF2YSAzNjA0NDIgMjAwNS0xMi0zMSAyMDoxMDowNFogaHVzdGVkICQKKyAqCisgKiBDb3B5cmlnaHQgMjAwMC0yMDA0IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmNvdXJzZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZXM7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vzc2lvbjsKKworLyoqCisgKiA8cC8+CisgKiBWYWxpZGF0ZSBhIHVzZXIgbG9nb24uCisgKiA8L3A+CisgKgorICogQHZlcnNpb24gJFJldjogMzYwNDQyICQgJERhdGU6IDIwMDUtMTItMzEgMTU6MTA6MDQgLTA1MDAgKFNhdCwgMzEgRGVjIDIwMDUpICQKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIExvZ29uQWN0aW9uIGV4dGVuZHMgUmVnaXN0ZXJBY3Rpb24geworCisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogU3RvcmUgVXNlciBvYmplY3QgaW4gY2xpZW50IHNlc3Npb24uCisgICAgICogSWYgdXNlciBvYmplY3QgaXMgbnVsbCwgYW55IGV4aXN0aW5nIHVzZXIgb2JqZWN0IGlzIHJlbW92ZWQuCisgICAgICogPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgKiBAcGFyYW0gdXNlciAgICBUaGUgdXNlciBvYmplY3QgcmV0dXJuZWQgZnJvbSB0aGUgZGF0YWJhc2UKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBkb0NhY2hlVXNlcihIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwgVXNlciB1c2VyKSB7CisKKyAgICAgICAgSHR0cFNlc3Npb24gc2Vzc2lvbiA9IHJlcXVlc3QuZ2V0U2Vzc2lvbigpOworICAgICAgICBzZXNzaW9uLnNldEF0dHJpYnV0ZShVU0VSX0tFWSwgdXNlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFVzZSAidXNlcm5hbWUiIGFuZCAicGFzc3dvcmQiIGZpZWxkcyBmcm9tIEFjdGlvbkZvcm0gdG8gcmV0cmlldmUgYSBVc2VyCisgICAgICogb2JqZWN0IGZyb20gdGhlIGRhdGFiYXNlLiBJZiBjcmVkZW50aWFscyBhcmUgbm90IHZhbGlkLCBvciBkYXRhYmFzZQorICAgICAqIGhhcyBkaXNhcHBlYXJlZCwgcG9zdCBlcnJvciBtZXNzYWdlcyBhbmQgZm9yd2FyZCB0byBpbnB1dC4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyAgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSBmb3JtICAgICBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSkKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCAgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBpZiB0aGUgYXBwbGljYXRpb24gYnVzaW5lc3MgbG9naWMgdGhyb3dzCisgICAgICogICAgICAgICAgICAgICAgICAgYW4gZXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIEFjdGlvbkZvcndhcmQgZXhlY3V0ZSgKKyAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkKKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIC8vIFJldHJpZXZlIHVzZXIKKyAgICAgICAgU3RyaW5nIHVzZXJuYW1lID0gZG9HZXQoZm9ybSwgVVNFUk5BTUUpOworICAgICAgICBTdHJpbmcgcGFzc3dvcmQgPSBkb0dldChmb3JtLCBQQVNTV09SRCk7CisgICAgICAgIEFjdGlvbk1lc3NhZ2VzIGVycm9ycyA9IG5ldyBBY3Rpb25NZXNzYWdlcygpOworICAgICAgICBVc2VyIHVzZXIgPSBkb0dldFVzZXIodXNlcm5hbWUsIHBhc3N3b3JkLCBlcnJvcnMpOworCisgICAgICAgIC8vIFJlcG9ydCBiYWNrIGFueSBlcnJvcnMsIGFuZCBleGl0IGlmIGFueQorICAgICAgICBpZiAoIWVycm9ycy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIHJldHVybiBkb0lucHV0Rm9yd2FyZChtYXBwaW5nLCByZXF1ZXN0LCBlcnJvcnMpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2FjaGUgdXNlciBvYmplY3QgaW4gc2Vzc2lvbiB0byBzaWduaWZ5IGxvZ29uCisgICAgICAgIGRvQ2FjaGVVc2VyKHJlcXVlc3QsIHVzZXIpOworCisgICAgICAgIC8vIERvbmUKKyAgICAgICAgcmV0dXJuIGRvRmluZFN1Y2Nlc3MobWFwcGluZyk7CisKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL2FwcHMvbWFpbHJlYWRlci9jb3Vyc2UvTWVtb3J5RGF0YWJhc2VQbHVnSW4uamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL2FwcHMvbWFpbHJlYWRlci9jb3Vyc2UvTWVtb3J5RGF0YWJhc2VQbHVnSW4uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTk5NmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvYXBwcy9tYWlscmVhZGVyL2NvdXJzZS9NZW1vcnlEYXRhYmFzZVBsdWdJbi5qYXZhCkBAIC0wLDAgKzEsMTc1IEBACitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5jb3Vyc2U7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLmltcGwubWVtb3J5Lk1lbW9yeVVzZXJEYXRhYmFzZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUGx1Z0luOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZ0ZhY3Rvcnk7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb247CitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIDxwPjxzdHJvbmc+TWVtb3J5RGF0YWJhc2VQbHVnSW48L3N0cm9uZz4gaW5pdGlhbGl6ZXMgYW5kIGZpbmFsaXplcyB0aGUKKyAqIHBlcnNpc3RlbnQgc3RvcmFnZSBvZiBVc2VyIGFuZCBTdWJzY3JpcHRpb24gaW5mb3JtYXRpb24gZm9yIHRoZSBTdHJ1dHMKKyAqIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24sIHVzaW5nIGFuIGluLW1lbW9yeSBkYXRhYmFzZSBiYWNrZWQgYnkgYW4KKyAqIFhNTCBmaWxlLjwvcD4KKyAqCisgKiA8cD48c3Ryb25nPklNUExFTUVOVEFUSU9OIFdBUk5JTkc8L3N0cm9uZz4gLSBJZiB0aGlzIHdlYiBhcHBsaWNhdGlvbiBpcyBydW4KKyAqIGZyb20gYSBXQVIgZmlsZSwgb3IgaW4gYW5vdGhlciBlbnZpcm9ubWVudCB3aGVyZSByZWFkaW5nIGFuZCB3cml0aW5nIG9mIHRoZQorICogd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIGlzIGltcG9zc2libGUsIHRoZSBpbml0aWFsIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkCisgKiB0byBhIGZpbGUgaW4gdGhlIHdlYiBhcHBsaWNhdGlvbiB0ZW1wb3JhcnkgZGlyZWN0b3J5IHByb3ZpZGVkIGJ5IHRoZQorICogY29udGFpbmVyLiAgVGhpcyBpcyBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlcyBvbmx5IC0geW91IHNob3VsZAorICogPHN0cm9uZz5OT1Q8L3N0cm9uZz4gYXNzdW1lIHRoYXQgZmlsZXMgd3JpdHRlbiBoZXJlIHdpbGwgc3Vydml2ZSBhIHJlc3RhcnQKKyAqIG9mIHlvdXIgc2VydmxldCBjb250YWluZXIuPC9wPgorICoKKyAqIEB2ZXJzaW9uICRSZXY6IDM2MDQ0MiAkICREYXRlOiAyMDA1LTEyLTMxIDE1OjEwOjA0IC0wNTAwIChTYXQsIDMxIERlYyAyMDA1KSAkCisgKi8KK3B1YmxpYyBjbGFzcyBNZW1vcnlEYXRhYmFzZVBsdWdJbiBpbXBsZW1lbnRzIFBsdWdJbiB7CisKKworICAgIC8vIC0tLS0gSW5zdGFuY2UgVmFyaWFibGVzIC0tLS0KKworICAgIC8qKgorICAgICAqIFRoZSB7QGxpbmsgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5pbXBsLm1lbW9yeS5NZW1vcnlVc2VyRGF0YWJhc2V9IG9iamVjdCB3ZSBjb25zdHJ1Y3QgYW5kIG1ha2UgYXZhaWxhYmxlLgorICAgICAqLworICAgIHByaXZhdGUgTWVtb3J5VXNlckRhdGFiYXNlIGRhdGFiYXNlID0gbnVsbDsKKworCisgICAgLyoqCisgICAgICogTG9nZ2luZyBvdXRwdXQgZm9yIHRoaXMgcGx1ZyBpbiBpbnN0YW5jZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyh0aGlzLmdldENsYXNzKCkpOworCisKKyAgICAvKioKKyAgICAgKiBUaGUge0BsaW5rIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0fSBvd25pbmcgdGhpcyBhcHBsaWNhdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIEFjdGlvblNlcnZsZXQgc2VydmxldCA9IG51bGw7CisKKyAgICAvLyAtLS0tIFByb3BlcnRpZXMgLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIG9mIG91ciBwZXJzaXN0ZW50IGRhdGFiYXNlCisgICAgICogc3RvcmFnZSBmaWxlLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHBhdGhuYW1lID0gIi9XRUItSU5GL2RhdGFiYXNlLnhtbCI7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhdGhuYW1lKCkgeworICAgICAgICByZXR1cm4gKHRoaXMucGF0aG5hbWUpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFBhdGhuYW1lKFN0cmluZyBwYXRobmFtZSkgeworICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7CisgICAgfQorCisgICAgLy8gLS0tLSBQbHVnSW4gTWV0aG9kcyAtLS0tCisKKworICAgIC8qKgorICAgICAqIEdyYWNlZnVsbHkgc2h1dCBkb3duIHRoaXMgZGF0YWJhc2UsIHJlbGVhc2luZyBhbnkgcmVzb3VyY2VzCisgICAgICogdGhhdCB3ZXJlIGFsbG9jYXRlZCBhdCBpbml0aWFsaXphdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBkZXN0cm95KCkgeworCisgICAgICAgIGxvZy5pbmZvKCJGaW5hbGl6aW5nIG1lbW9yeSBkYXRhYmFzZSBwbHVnIGluIik7CisKKyAgICAgICAgaWYgKGRhdGFiYXNlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZGF0YWJhc2UuY2xvc2UoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nLmVycm9yKCJDbG9zaW5nIG1lbW9yeSBkYXRhYmFzZSIsIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc2VydmxldC5nZXRTZXJ2bGV0Q29udGV4dCgpLnJlbW92ZUF0dHJpYnV0ZShDb25zdGFudHMuREFUQUJBU0VfS0VZKTsKKyAgICAgICAgZGF0YWJhc2UgPSBudWxsOworICAgICAgICBzZXJ2bGV0ID0gbnVsbDsKKyAgICAgICAgZGF0YWJhc2UgPSBudWxsOworICAgIH0KKworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZSBhbmQgbG9hZCBvdXIgaW5pdGlhbCBkYXRhYmFzZSBmcm9tIHBlcnNpc3RlbnQgc3RvcmFnZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXJ2bGV0IFRoZSBBY3Rpb25TZXJ2bGV0IGZvciB0aGlzIHdlYiBhcHBsaWNhdGlvbgorICAgICAqIEBwYXJhbSBjb25maWcgIFRoZSBBcHBsaWNhdGlvbkNvbmZpZyBmb3Igb3VyIG93bmluZyBtb2R1bGUKKyAgICAgKiBAdGhyb3dzIFNlcnZsZXRFeGNlcHRpb24gaWYgd2UgY2Fubm90IGNvbmZpZ3VyZSBvdXJzZWx2ZXMgY29ycmVjdGx5CisgICAgICovCisgICAgcHVibGljIHZvaWQgaW5pdChBY3Rpb25TZXJ2bGV0IHNlcnZsZXQsIE1vZHVsZUNvbmZpZyBjb25maWcpCisgICAgICAgICAgICB0aHJvd3MgU2VydmxldEV4Y2VwdGlvbiB7CisKKyAgICAgICAgbG9nLmluZm8oIkluaXRpYWxpemluZyBtZW1vcnkgZGF0YWJhc2UgcGx1ZyBpbiBmcm9tICciICsKKyAgICAgICAgICAgICAgICBwYXRobmFtZSArICInIik7CisKKyAgICAgICAgLy8gUmVtZW1iZXIgb3VyIGFzc29jaWF0ZWQgY29uZmlndXJhdGlvbiBhbmQgc2VydmxldAorICAgICAgICB0aGlzLnNlcnZsZXQgPSBzZXJ2bGV0OworCisgICAgICAgIC8vIENvbnN0cnVjdCBhIG5ldyBkYXRhYmFzZSBhbmQgbWFrZSBpdCBhdmFpbGFibGUKKyAgICAgICAgZGF0YWJhc2UgPSBuZXcgTWVtb3J5VXNlckRhdGFiYXNlKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0aCA9IGNhbGN1bGF0ZVBhdGgoKTsKKyAgICAgICAgICAgIGlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkgeworICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygiIExvYWRpbmcgZGF0YWJhc2UgZnJvbSAnIiArIHBhdGggKyAiJyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGF0YWJhc2Uuc2V0UGF0aG5hbWUocGF0aCk7CisgICAgICAgICAgICBkYXRhYmFzZS5vcGVuKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2cuZXJyb3IoIk9wZW5pbmcgbWVtb3J5IGRhdGFiYXNlIiwgZSk7CisgICAgICAgICAgICB0aHJvdyBuZXcgU2VydmxldEV4Y2VwdGlvbigiQ2Fubm90IGxvYWQgZGF0YWJhc2UgZnJvbSAnIiArCisgICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lICsgIiciLCBlKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE1ha2UgdGhlIGluaXRpYWxpemVkIGRhdGFiYXNlIGF2YWlsYWJsZQorICAgICAgICBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkuc2V0QXR0cmlidXRlKENvbnN0YW50cy5EQVRBQkFTRV9LRVksCisgICAgICAgICAgICAgICAgZGF0YWJhc2UpOworCisgICAgfQorCisgICAgLy8gLS0tLSBQcml2YXRlIE1ldGhvZHMgLS0tLQorCisgICAgLyoqCisgICAgICogQ2FsY3VsYXRlIGFuZCByZXR1cm4gYW4gYWJzb2x1dGUgcGF0aG5hbWUgdG8gdGhlIFhNTCBmaWxlIHRvIGNvbnRhaW4KKyAgICAgKiBvdXIgcGVyc2lzdGVudCBzdG9yYWdlIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQHRocm93cyBFeGNlcHRpb24gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VycworICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGNhbGN1bGF0ZVBhdGgoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICAvLyBDYW4gd2UgYWNjZXNzIHRoZSBkYXRhYmFzZSB2aWEgZmlsZSBJL08/CisgICAgICAgIFN0cmluZyBwYXRoID0gc2VydmxldC5nZXRTZXJ2bGV0Q29udGV4dCgpLmdldFJlYWxQYXRoKHBhdGhuYW1lKTsKKyAgICAgICAgaWYgKHBhdGggIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIChwYXRoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERvZXMgYSBjb3B5IG9mIHRoaXMgZmlsZSBhbHJlYWR5IGV4aXN0IGluIG91ciB0ZW1wb3JhcnkgZGlyZWN0b3J5CisgICAgICAgIEZpbGUgZGlyID0gKEZpbGUpCisgICAgICAgICAgICAgICAgc2VydmxldC5nZXRTZXJ2bGV0Q29udGV4dCgpLmdldEF0dHJpYnV0ZQorICAgICAgICAgICAgICAgICAgICAgICAgKCJqYXZheC5zZXJ2bGV0LmNvbnRleHQudGVtcGRpciIpOworICAgICAgICBGaWxlIGZpbGUgPSBuZXcgRmlsZShkaXIsICJzdHJ1dHMtZXhhbXBsZS1kYXRhYmFzZS54bWwiKTsKKyAgICAgICAgaWYgKGZpbGUuZXhpc3RzKCkpIHsKKyAgICAgICAgICAgIHJldHVybiAoZmlsZS5nZXRBYnNvbHV0ZVBhdGgoKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb3B5IHRoZSBzdGF0aWMgcmVzb3VyY2UgdG8gYSB0ZW1wb3JhcnkgZmlsZSBhbmQgcmV0dXJuIGl0cyBwYXRoCisgICAgICAgIElucHV0U3RyZWFtIGlzID0KKyAgICAgICAgICAgICAgICBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkuZ2V0UmVzb3VyY2VBc1N0cmVhbShwYXRobmFtZSk7CisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYmlzID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaXMsIDEwMjQpOworICAgICAgICBGaWxlT3V0cHV0U3RyZWFtIG9zID0KKyAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlKTsKKyAgICAgICAgQnVmZmVyZWRPdXRwdXRTdHJlYW0gYm9zID0gbmV3IEJ1ZmZlcmVkT3V0cHV0U3RyZWFtKG9zLCAxMDI0KTsKKyAgICAgICAgYnl0ZSBidWZmZXJbXSA9IG5ldyBieXRlWzEwMjRdOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IG4gPSBiaXMucmVhZChidWZmZXIpOworICAgICAgICAgICAgaWYgKG4gPD0gMCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9zLndyaXRlKGJ1ZmZlciwgMCwgbik7CisgICAgICAgIH0KKyAgICAgICAgYm9zLmNsb3NlKCk7CisgICAgICAgIGJpcy5jbG9zZSgpOworICAgICAgICByZXR1cm4gKGZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpOworCisgICAgfQorICAgIH0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9hcHBzL21haWxyZWFkZXIvY291cnNlL1JlZ2lzdGVyQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9hcHBzL21haWxyZWFkZXIvY291cnNlL1JlZ2lzdGVyQWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJhM2VjYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL2FwcHMvbWFpbHJlYWRlci9jb3Vyc2UvUmVnaXN0ZXJBY3Rpb24uamF2YQpAQCAtMCwwICsxLDUwOCBAQAorcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuY291cnNlOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlckRhdGFiYXNlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi4qOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuUHJvcGVydHlVdGlsczsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOworCisvKioKKyAqIDxwLz4KKyAqIFByb3ZpZGUgYW4gRWRpdCBtZXRob2QgZm9yIHJldHJpZXZpbmcgYW4gZXhpc3RpbmcgdXNlciwKKyAqIGFuZCBhIFNhdmUgbWV0aG9kIGZvciB1cGRhdGluZyBvciBpbnNlcnRpbmcgYSB1c2VyLgorICogPC9wPjxwPgorICogQm90aCBtZXRob2RzIHV0aWxpemUgYSBSZWdpc3RyYXRpb25Gb3JtIHRvIG9idGFpbiBvciBleHBvc2UgVXNlciBkZXRhaWxzLgorICogSWYgU2F2ZSBpcyB1c2VkIHRvIGNyZWF0ZSBhIHVzZXIsCisgKiBhZGRpdGlvbmFsIHZhbGlkYXRpb25zIGVuc3VyZSBpbnB1dCBpcyBub21pbmFsLgorICogV2hlbiBhIHVzZXIgaXMgY3JlYXRlZCwKKyAqIFNhdmUgYWxzbyBoYW5kbGVzIHRoZSBpbml0aWFsIGxvZ29uLgorICogPC9wPgorICovCitwdWJsaWMgY2xhc3MgUmVnaXN0ZXJBY3Rpb24gZXh0ZW5kcyBBY3Rpb24geworCisgICAgLy8gLS0tLSBDb25zdGFudHMgLS0tLQorCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFRoZSBhcHBsaWNhdGlvbiBzY29wZSBhdHRyaWJ1dGUgdW5kZXIgd2hpY2ggb3VyIHVzZXIgZGF0YWJhc2UKKyAgICAgKiBpcyBzdG9yZWQuCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFCQVNFX0tFWSA9ICJkYXRhYmFzZSI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogTmFtZSBvZiBmcm9tQWRkcmVzcyBmaWVsZCBbImZyb21BZGRyZXNzIl0uCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgU3RyaW5nIEZST01fQUREUkVTUyA9ICJmcm9tQWRkcmVzcyI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogTmFtZSBvZiBmdWxsTmFtZSBmaWVsZCBbImZ1bGxOYW1lIl0uCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgU3RyaW5nIEZVTExfTkFNRSA9ICJmdWxsTmFtZSI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogTmFtZSBvZiBwYXNzd29yZCBmaWVsZCBbInBhc3N3b3JkIl0uCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIFBBU1NXT1JEID0gInBhc3N3b3JkIjsKKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBOYW1lIG9mIHBhc3N3b3JkIGNvbmZpcm1hdGlvbiBmaWVsZCBbInBhc3N3b3JkMiJdLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIFN0cmluZyBQQVNTV09SRDIgPSAicGFzc3dvcmQyIjsKKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBOYW1lIG9mIHJlcGx5VG9BZGRyZXNzIGZpZWxkIFsicmVwbHlUb0FkZHJlc3MiXS4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBTdHJpbmcgUkVQTFlfVE9fQUREUkVTUyA9ICJyZXBseVRvQWRkcmVzcyI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogVGhlIHRva2VuIHJlcHJlc2VudGluZyBhICJzdWNjZXNzIiByZXN1bHQgZm9yIHRoaXMgYXBwbGljYXRpb24uCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVQ0NFU1MgPSAiU3VjY2VzcyI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogVGhlIHNlc3Npb24gc2NvcGUgYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZSBVc2VyIG9iamVjdAorICAgICAqIGZvciB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyIGlzIHN0b3JlZC4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVNFUl9LRVkgPSAidXNlciI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogTmFtZSBvZiB1c2VybmFtZSBmaWVsZCBbInVzZXJuYW1lIl0uCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIFVTRVJOQU1FID0gInVzZXJuYW1lIjsKKworICAgIC8vIC0tLS0gUHJpdmF0ZSBNZXRob2RzIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBUaGUgPGNvZGU+TG9nPC9jb2RlPiBpbnN0YW5jZSBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBMb2cgbG9nID0gTG9nRmFjdG9yeS5nZXRMb2coQ29uc3RhbnRzLlBBQ0tBR0UpOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFRoZSBtZXNzYWdlIHByZWZpeCB0byB1c2Ugd2hlbiBwb3B1bGF0aW5nIGEgUmVnaXN0cmF0aW9uIEZvcm0uCisgICAgICogPC9wPgorICAgICAqLworICAgIGZpbmFsIFN0cmluZyBMT0dfUkVHSVNUUkFUSU9OX1BPUFVMQVRFID0gIlJlZ2lzdHJhdGlvbkZvcm0ucG9wdWxhdGUiOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIEhlbHBlciBtZXRob2QgdG8gcG9zdCBlcnJvciBtZXNzYWdlIHdoZW4gdXNlciBhbHJlYWR5IGV4aXN0cy4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdXNlcm5hbWUgRXhpc3RpbmcgdXNlcm5hbWUKKyAgICAgKiBAcGFyYW0gZXJyb3JzICAgT3VyIEFjdGlvbk1lc3NhZ2VzIGNvbGxlY3Rpb24KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZXJyb3JVc2VybmFtZVVuaXF1ZShTdHJpbmcgdXNlcm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uTWVzc2FnZXMgZXJyb3JzKSB7CisgICAgICAgIGVycm9ycy5hZGQoCisgICAgICAgICAgICAgICAgVVNFUk5BTUUsCisgICAgICAgICAgICAgICAgbmV3IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NZXNzYWdlKAorICAgICAgICAgICAgICAgICAgICAgICAgImVycm9yLnVzZXJuYW1lLnVuaXF1ZSIsIHVzZXJuYW1lKSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogSGVscGVyIG1ldGhvZCB0byBsb2cgZXZlbnQgYW5kIGNhbmNlbCB0cmFuc2FjdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbiBPdXIgSHR0cFNlc3Npb24KKyAgICAgKiBAcGFyYW0gbWV0aG9kICBNZXRob2QgYmVpbmcgcHJvY2Vzc2VkCisgICAgICogQHBhcmFtIGtleSAgICAgQXR0cmtpYnV0ZSB0byByZW1vdmUgZnJvbSBzZXNzaW9uLCBpZiBhbnkKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZG9DYW5jZWwoSHR0cFNlc3Npb24gc2Vzc2lvbiwgU3RyaW5nIG1ldGhvZCwgU3RyaW5nIGtleSkgeworICAgICAgICBpZiAobG9nLmlzVHJhY2VFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoMTI4KTsKKyAgICAgICAgICAgIHNiLmFwcGVuZChDb25zdGFudHMuTE9HX0NBTkNFTCk7CisgICAgICAgICAgICBzYi5hcHBlbmQobWV0aG9kKTsKKyAgICAgICAgICAgIGxvZy50cmFjZShzYi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoa2V5ICE9IG51bGwpIHsKKyAgICAgICAgICAgIHNlc3Npb24ucmVtb3ZlQXR0cmlidXRlKGtleSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogVmVyaWZ5IGlucHV0IGZvciBjcmVhdGluZyBhIG5ldyB1c2VyLAorICAgICAqIGNyZWF0ZSB0aGUgdXNlciwgYW5kIHByb2Nlc3MgdGhlIGxvZ2luLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmb3JtICAgIFRoZSBpbnB1dCBmb3JtCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEh0dHBSZXF1ZXN0IGJlaW5nIHNlcnZlZAorICAgICAqIEBwYXJhbSBlcnJvcnMgIFRoZSBBY3Rpb25NZXNzYWdlcyBjb2xsZWN0aW9uIGZvciBhbnkgZXJyb3JzCisgICAgICogQHJldHVybiBBIG5ldyBVc2VyIGFuZCBlbXB0eSBFcnJvcnMgaWYgY3JlYXRlIHN1Y2NlZWRzLAorICAgICAqICAgICAgICAgb3IgbnVsbCBhbmQgRXJyb3JzIGlmIGNyZWF0ZSBmYWlscworICAgICAqLworICAgIHByaXZhdGUgVXNlciBkb0NyZWF0ZVVzZXIoCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEFjdGlvbk1lc3NhZ2VzIGVycm9ycykgeworCisgICAgICAgIGlmIChsb2cuaXNUcmFjZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgbG9nLnRyYWNlKCIgUGVyZm9ybSBhZGRpdGlvbmFsIHZhbGlkYXRpb25zIG9uIENyZWF0ZSIpOworICAgICAgICB9CisKKyAgICAgICAgVXNlckRhdGFiYXNlIGRhdGFiYXNlID0gZG9HZXRVc2VyRGF0YWJhc2UoKTsKKyAgICAgICAgU3RyaW5nIHVzZXJuYW1lID0gZG9HZXQoZm9ybSwgVVNFUk5BTUUpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgaWYgKGRhdGFiYXNlLmZpbmRVc2VyKHVzZXJuYW1lKSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXJyb3JVc2VybmFtZVVuaXF1ZSh1c2VybmFtZSwgZXJyb3JzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjYXRjaCAoRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGVycm9yVXNlcm5hbWVVbmlxdWUodXNlcm5hbWUsIGVycm9ycyk7CisgICAgICAgICAgICBlcnJvcnMuYWRkKCJlcnJvcnMubGl0ZXJhbCIsIG5ldyBBY3Rpb25NZXNzYWdlKGUuZ2V0TWVzc2FnZSgpKSk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgcGFzc3dvcmQgPSBkb0dldChmb3JtLCBQQVNTV09SRCk7CisgICAgICAgIGlmICgocGFzc3dvcmQgPT0gbnVsbCkgfHwgKHBhc3N3b3JkLmxlbmd0aCgpIDwgMSkpIHsKKyAgICAgICAgICAgIGVycm9ycy5hZGQoUEFTU1dPUkQsIG5ldyBBY3Rpb25NZXNzYWdlKCJlcnJvci5wYXNzd29yZC5yZXF1aXJlZCIpKTsKKworICAgICAgICAgICAgU3RyaW5nIHBhc3N3b3JkMiA9IGRvR2V0KGZvcm0sIFBBU1NXT1JEMik7CisgICAgICAgICAgICBpZiAoKHBhc3N3b3JkMiA9PSBudWxsKSB8fCAocGFzc3dvcmQyLmxlbmd0aCgpIDwgMSkpIHsKKyAgICAgICAgICAgICAgICBlcnJvcnMuYWRkKAorICAgICAgICAgICAgICAgICAgICAgICAgUEFTU1dPUkQyLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEFjdGlvbk1lc3NhZ2UoImVycm9yLnBhc3N3b3JkMi5yZXF1aXJlZCIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICghZXJyb3JzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKHVzZXJuYW1lKTsKKworICAgICAgICAvLyBMb2cgdGhlIHVzZXIgaW4KKyAgICAgICAgSHR0cFNlc3Npb24gc2Vzc2lvbiA9IHJlcXVlc3QuZ2V0U2Vzc2lvbigpOworICAgICAgICBzZXNzaW9uLnNldEF0dHJpYnV0ZShDb25zdGFudHMuVVNFUl9LRVksIHVzZXIpOworICAgICAgICBpZiAobG9nLmlzVHJhY2VFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIGxvZy50cmFjZSgKKyAgICAgICAgICAgICAgICAgICAgIiBVc2VyOiAnIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgdXNlci5nZXRVc2VybmFtZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyBsb2dnZWQgb24gaW4gc2Vzc2lvbjogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2Vzc2lvbi5nZXRJZCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB1c2VyOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBIZWxwZXIgbWV0aG9kIHRvIG9idGFpbiBVc2VyIGZvcm0gc2Vzc2lvbiAoaWYgYW55KS4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbiBPdXIgSHR0cFNlc3Npb24KKyAgICAgKiBAcmV0dXJuIFVzZXIgb2JqZWN0LCBvciBudWxsIGlmIHRoZXJlIGlzIG5vIHVzZXIuCisgICAgICovCisgICAgcHJpdmF0ZSBVc2VyIGRvR2V0VXNlcihIdHRwU2Vzc2lvbiBzZXNzaW9uKSB7CisgICAgICAgIHJldHVybiAoVXNlcikgc2Vzc2lvbi5nZXRBdHRyaWJ1dGUoQ29uc3RhbnRzLlVTRVJfS0VZKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogQ29uZmlybSB1c2VyIGNyZWRlbnRpYWxzLiBQb3N0IGFueSBlcnJvcnMgYW5kIHJldHVybiBVc2VyIG9iamVjdAorICAgICAqIChvciBudWxsKS4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0YWJhc2UgRGF0YWJhc2UgaW4gd2hpY2ggdG8gbG9vayB1cCB0aGUgdXNlcgorICAgICAqIEBwYXJhbSB1c2VybmFtZSBVc2VybmFtZSBzcGVjaWZpZWQgb24gdGhlIGxvZ29uIGZvcm0KKyAgICAgKiBAcGFyYW0gcGFzc3dvcmQgUGFzc3dvcmQgc3BlY2lmaWVkIG9uIHRoZSBsb2dvbiBmb3JtCisgICAgICogQHBhcmFtIGVycm9ycyAgIEFjdGlvbk1lc3NhZ2VzIHF1ZXVlIHRvIHBhc3NiYWNrIGVycm9ycworICAgICAqIEByZXR1cm4gVmFsaWRhdGVkIFVzZXIgb2JqZWN0IG9yIG51bGwKKyAgICAgKiBAdGhyb3dzIG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uCisgICAgICogICAgICAgICAgdG8gYmUgaGFuZGxlZCBieSBTdHJ1dHMgZXhjZXB0aW9uCisgICAgICogICAgICAgICAgcHJvY2Vzc29yIHZpYSB0aGUgYWN0aW9uLW1hcHBpbmcKKyAgICAgKi8KKyAgICBwcml2YXRlIFVzZXIgZG9HZXRVc2VyKFVzZXJEYXRhYmFzZSBkYXRhYmFzZSwgU3RyaW5nIHVzZXJuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHBhc3N3b3JkLCBBY3Rpb25NZXNzYWdlcyBlcnJvcnMpCisgICAgICAgICAgICB0aHJvd3MgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIHsKKworICAgICAgICBVc2VyIHVzZXIgPSBudWxsOworICAgICAgICBpZiAoZGF0YWJhc2UgPT0gbnVsbCkgeworICAgICAgICAgICAgZXJyb3JzLmFkZCgKKyAgICAgICAgICAgICAgICAgICAgQWN0aW9uTWVzc2FnZXMuR0xPQkFMX01FU1NBR0UsCisgICAgICAgICAgICAgICAgICAgIG5ldyBBY3Rpb25NZXNzYWdlKCJlcnJvci5kYXRhYmFzZS5taXNzaW5nIikpOworICAgICAgICB9IGVsc2UgeworCisgICAgICAgICAgICBpZiAodXNlcm5hbWUuZXF1YWxzKCJIZXJtZXMiKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24oIkhlcm1lcyIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB1c2VyID0gZGF0YWJhc2UuZmluZFVzZXIodXNlcm5hbWUpOworICAgICAgICAgICAgaWYgKCh1c2VyICE9IG51bGwpICYmICF1c2VyLmdldFBhc3N3b3JkKCkuZXF1YWxzKHBhc3N3b3JkKSkgeworICAgICAgICAgICAgICAgIHVzZXIgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHVzZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGVycm9ycy5hZGQoCisgICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb25NZXNzYWdlcy5HTE9CQUxfTUVTU0FHRSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBBY3Rpb25NZXNzYWdlKCJlcnJvci5wYXNzd29yZC5taXNtYXRjaCIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB1c2VyOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBSZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhlIFVzZXJEYXRhYmFzZQorICAgICAqIG9yIG51bGwgaWYgdGhlIGRhdGFiYXNlIGlzIG5vdCBhdmFpbGFibGUuCisgICAgICogPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGUgVXNlckRhdGFiYXNlIG9yIG51bGwgaWYgdGhlIGRhdGFiYXNlIGlzIG5vdAorICAgICAqICAgICAgICAgYXZhaWxhYmxlCisgICAgICovCisgICAgcHJpdmF0ZSBVc2VyRGF0YWJhc2UgZG9HZXRVc2VyRGF0YWJhc2UoKSB7CisgICAgICAgIHJldHVybiAoVXNlckRhdGFiYXNlKSBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkuZ2V0QXR0cmlidXRlKAorICAgICAgICAgICAgICAgIERBVEFCQVNFX0tFWSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIExvZyBhICJwcm9jZXNzaW5nIiBtZXNzYWdlIGZvciBhbiBBY3Rpb24uCisgICAgICogPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgT3VyIEFjdGlvbk1hcHBpbmcKKyAgICAgKiBAcGFyYW0gbWV0aG9kICBOYW1lIG9mIG1ldGhvZCBiZWluZyBwcm9jZXNzZWQKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZG9Mb2dQcm9jZXNzKEFjdGlvbk1hcHBpbmcgbWFwcGluZywgU3RyaW5nIG1ldGhvZCkgeworICAgICAgICBpZiAobG9nLmlzRGVidWdFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoMTI4KTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgiICIpOworICAgICAgICAgICAgc2IuYXBwZW5kKG1hcHBpbmcuZ2V0UGF0aCgpKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgiOiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKENvbnN0YW50cy5MT0dfUFJPQ0VTU0lORyk7CisgICAgICAgICAgICBzYi5hcHBlbmQobWV0aG9kKTsKKyAgICAgICAgICAgIGxvZy5kZWJ1ZyhzYi50b1N0cmluZygpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBIZWxwZXIgbWV0aG9kIHRvIHBvcHVsYXRlIHRoZSBVc2VyIG9iamVjdCBmcm9tIHRoZSBpbnB1dCBmb3JtLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1c2VyIFVzZXIgb2JqZWN0IHRvIHBvcHVsYXRlCisgICAgICogQHBhcmFtIGZvcm0gRm9ybSB3aXRoIGluY29taW5nIHZhbHVlcworICAgICAqIEB0aHJvd3MgU2VydmxldEV4Y2VwdGlvbiBPbiBhbnkgZXJyb3IKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZG9Qb3B1bGF0ZShVc2VyIHVzZXIsIEFjdGlvbkZvcm0gZm9ybSkKKyAgICAgICAgICAgIHRocm93cyBTZXJ2bGV0RXhjZXB0aW9uIHsKKworICAgICAgICBpZiAobG9nLmlzVHJhY2VFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIGxvZy50cmFjZShDb25zdGFudHMuTE9HX1BPUFVMQVRFX1VTRVIgKyB1c2VyKTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgb2xkUGFzc3dvcmQgPSB1c2VyLmdldFBhc3N3b3JkKCk7CisgICAgICAgICAgICBQcm9wZXJ0eVV0aWxzLmNvcHlQcm9wZXJ0aWVzKHVzZXIsIGZvcm0pOworICAgICAgICAgICAgU3RyaW5nIHBhc3N3b3JkID0gZG9HZXQoZm9ybSwgUEFTU1dPUkQpOworICAgICAgICAgICAgaWYgKChwYXNzd29yZCA9PSBudWxsKQorICAgICAgICAgICAgICAgICAgICB8fCAocGFzc3dvcmQubGVuZ3RoKCkgPCAxKSkgeworCisgICAgICAgICAgICAgICAgdXNlci5zZXRQYXNzd29yZChvbGRQYXNzd29yZCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfSBjYXRjaCAoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBUaHJvd2FibGUgdCA9IGUuZ2V0VGFyZ2V0RXhjZXB0aW9uKCk7CisgICAgICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdCA9IGU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvZy5lcnJvcihMT0dfUkVHSVNUUkFUSU9OX1BPUFVMQVRFLCB0KTsKKyAgICAgICAgICAgIHRocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKExPR19SRUdJU1RSQVRJT05fUE9QVUxBVEUsIHQpOworCisgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICBsb2cuZXJyb3IoTE9HX1JFR0lTVFJBVElPTl9QT1BVTEFURSwgdCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgU2VydmxldEV4Y2VwdGlvbihMT0dfUkVHSVNUUkFUSU9OX1BPUFVMQVRFLCB0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBQZXJzaXN0IHRoZSBVc2VyIG9iamVjdCwgaW5jbHVkaW5nIHN1YnNjcmlwdGlvbnMsIHRvIHRoZSBkYXRhYmFzZS4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdXNlciBPdXIgVXNlciBvYmplY3QKKyAgICAgKiBAdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbiBPbiBhbnkgZXJyb3IKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZG9TYXZlVXNlcihVc2VyIHVzZXIpIHRocm93cyBTZXJ2bGV0RXhjZXB0aW9uIHsKKworICAgICAgICBmaW5hbCBTdHJpbmcgTE9HX0RBVEFCQVNFX1NBVkVfRVJST1IgPQorICAgICAgICAgICAgICAgICIgVW5leHBlY3RlZCBlcnJvciB3aGVuIHNhdmluZyBVc2VyOiAiOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBkb0dldFVzZXJEYXRhYmFzZSgpOworICAgICAgICAgICAgZGF0YWJhc2Uuc2F2ZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSBMT0dfREFUQUJBU0VfU0FWRV9FUlJPUiArIHVzZXIuZ2V0VXNlcm5hbWUoKTsKKyAgICAgICAgICAgIGxvZy5lcnJvcihtZXNzYWdlLCBlKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKG1lc3NhZ2UsIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gLS0tLSBQcm90ZWN0ZWQgbWV0aG9kcyAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogUmV0dXJuIHRoZSBtYXBwaW5nIGxhYmVsZWQgInN1Y2Nlc3MiCisgICAgICogb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBzdWNoIG1hcHBpbmcuCisgICAgICogPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgT3VyIEFjdGlvbk1hcHBpbmcKKyAgICAgKiBAcmV0dXJuIFJldHVybiB0aGUgbWFwcGluZyBuYW1lZCAic3VjY2VzcyIgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBzdWNoCisgICAgICogICAgICAgICBtYXBwaW5nLgorICAgICAqLworICAgIHByb3RlY3RlZCBBY3Rpb25Gb3J3YXJkIGRvRmluZFN1Y2Nlc3MoQWN0aW9uTWFwcGluZyBtYXBwaW5nKSB7CisgICAgICAgIHJldHVybiBtYXBwaW5nLmZpbmRGb3J3YXJkKFNVQ0NFU1MpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIEhlbHBlciBtZXRob2QgdG8gZmV0Y2ggYSBTdHJpbmcgcHJvcGVydHkgZnJvbSBhIER5bmFBY3Rpb25Gb3JtLgorICAgICAqIDwvcD4KKyAgICAgKiA8cC8+CisgICAgICogVmFsdWVzIGFyZSByZXR1cm5lZCB0cmltbWVkIG9mIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UuCisgICAgICogWmVyby1sZW5ndGggc3RyaW5ncyBhcmUgcmV0dXJuZWQgYXMgbnVsbC4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZm9ybSAgICAgT3VyIER5bmFBY3Rpb25Gb3JtCisgICAgICogQHBhcmFtIHByb3BlcnR5IFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgICAqIEByZXR1cm4gVGhlIHZhbHVlIG9yIG51bGwgaWYgYW4gZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBkb0dldChBY3Rpb25Gb3JtIGZvcm0sIFN0cmluZyBwcm9wZXJ0eSkgeworICAgICAgICBTdHJpbmcgaW5pdGlhbDsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGluaXRpYWwgPSAoU3RyaW5nKSBQcm9wZXJ0eVV0aWxzLmdldFNpbXBsZVByb3BlcnR5KGZvcm0sIHByb3BlcnR5KTsKKyAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgIGluaXRpYWwgPSBudWxsOworICAgICAgICB9CisgICAgICAgIFN0cmluZyB2YWx1ZSA9IG51bGw7CisgICAgICAgIGlmICgoaW5pdGlhbCAhPSBudWxsKSAmJiAoaW5pdGlhbC5sZW5ndGgoKSA+IDApKSB7CisgICAgICAgICAgICB2YWx1ZSA9IGluaXRpYWwudHJpbSgpOworICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCgpID09IDApIHsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBDb25maXJtIHVzZXIgY3JlZGVudGlhbHMuIFBvc3QgYW55IGVycm9ycyBhbmQgcmV0dXJuIFVzZXIgb2JqZWN0CisgICAgICogKG9yIG51bGwpLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1c2VybmFtZSBVc2VybmFtZSBzcGVjaWZpZWQgb24gdGhlIGxvZ29uIGZvcm0KKyAgICAgKiBAcGFyYW0gcGFzc3dvcmQgUGFzc3dvcmQgc3BlY2lmaWVkIG9uIHRoZSBsb2dvbiBmb3JtCisgICAgICogQHBhcmFtIGVycm9ycyAgIEFjdGlvbk1lc3NhZ2VzIHF1ZXVlIHRvIHBhc3NiYWNrIGVycm9ycworICAgICAqIEByZXR1cm4gVmFsaWRhdGVkIFVzZXIgb2JqZWN0IG9yIG51bGwKKyAgICAgKiBAdGhyb3dzIG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uCisgICAgICogICAgICAgICAgdG8gYmUgaGFuZGxlZCBieSBTdHJ1dHMgZXhjZXB0aW9uCisgICAgICogICAgICAgICAgcHJvY2Vzc29yIHZpYSB0aGUgYWN0aW9uLW1hcHBpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgVXNlciBkb0dldFVzZXIoU3RyaW5nIHVzZXJuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcGFzc3dvcmQsIEFjdGlvbk1lc3NhZ2VzIGVycm9ycykKKyAgICAgICAgICAgIHRocm93cyBFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24geworCisgICAgICAgIHJldHVybiBkb0dldFVzZXIoZG9HZXRVc2VyRGF0YWJhc2UoKSwgdXNlcm5hbWUsIHBhc3N3b3JkLCBlcnJvcnMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBTYXZlIGFueSBlcnJvcnMgYW5kIGZvcndhcmQgdG8gdGhlIElucHV0IHJlc3VsdC4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBPdXIgQWN0aW9uTWFwcGluZworICAgICAqIEBwYXJhbSByZXF1ZXN0IE91ciBIdHRwU2VydmxldFJlcXVlc3QKKyAgICAgKiBAcGFyYW0gZXJyb3JzICBPdXIgQWN0aW9uTWVzc2FnZXMgY29sbGVjdG9pbgorICAgICAqIEByZXR1cm4gVGhlIElucHV0Rm9yd2FyZCBmb3IgdGhpcyBtYXBwaW50ZworICAgICAqLworICAgIHByb3RlY3RlZCBBY3Rpb25Gb3J3YXJkIGRvSW5wdXRGb3J3YXJkKEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbk1lc3NhZ2VzIGVycm9ycykgeworICAgICAgICB0aGlzLnNhdmVFcnJvcnMocmVxdWVzdCwgZXJyb3JzKTsKKyAgICAgICAgcmV0dXJuIChtYXBwaW5nLmdldElucHV0Rm9yd2FyZCgpKTsKKyAgICB9CisKKyAgICAvLyAtLS0tLSBQdWJsaWMgTWV0aG9kcyAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogSW5zZXJ0IG9yIHVwZGF0ZSBhIFVzZXIgb2JqZWN0IHRvIHRoZSBwZXJzaXN0ZW50IHN0b3JlLgorICAgICAqIDwvcD48cD4KKyAgICAgKiBJZiBhIFVzZXIgaXMgbm90IGxvZ2dlZCBpbiwKKyAgICAgKiB0aGVuIGEgbmV3IFVzZXIgaXMgY3JlYXRlZCBhbmQgYXV0b21hdGljYWxseSBsb2dnZWQgaW4uCisgICAgICogT3RoZXJ3aXNlLCB0aGUgZXhpc3RpbmcgVXNlciBpcyB1cGRhdGVkLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nICBPdXIgQWN0aW9uTWFwcGluZworICAgICAqIEBwYXJhbSBmb3JtICAgICBPdXIgQWN0aW9uRm9ybQorICAgICAqIEBwYXJhbSByZXF1ZXN0ICBPdXIgSHR0cFNlcnZsZXRSZXF1ZXN0CisgICAgICogQHBhcmFtIHJlc3BvbnNlIE91ciBIdHRwU2VydmxldFJlc3BvbnNlCisgICAgICogQHJldHVybiBUaGUgIlN1Y2Nlc3MiIHJlc3VsdCBmb3IgdGhpcyBtYXBwaW5nCisgICAgICogQHRocm93cyBFeGNlcHRpb24gb24gYW55IGVycm9yCisgICAgICovCisgICAgcHVibGljIEFjdGlvbkZvcndhcmQgZXhlY3V0ZSgKKyAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkKKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIGZpbmFsIFN0cmluZyBtZXRob2QgPSBDb25zdGFudHMuU0FWRTsKKyAgICAgICAgZG9Mb2dQcm9jZXNzKG1hcHBpbmcsIG1ldGhvZCk7CisKKyAgICAgICAgSHR0cFNlc3Npb24gc2Vzc2lvbiA9IHJlcXVlc3QuZ2V0U2Vzc2lvbigpOworICAgICAgICBpZiAoaXNDYW5jZWxsZWQocmVxdWVzdCkpIHsKKyAgICAgICAgICAgIGRvQ2FuY2VsKHNlc3Npb24sIG1ldGhvZCwgQ29uc3RhbnRzLlNVQlNDUklQVElPTl9LRVkpOworICAgICAgICAgICAgcmV0dXJuIGRvRmluZFN1Y2Nlc3MobWFwcGluZyk7CisgICAgICAgIH0KKworICAgICAgICBBY3Rpb25NZXNzYWdlcyBlcnJvcnMgPSBuZXcgQWN0aW9uTWVzc2FnZXMoKTsKKyAgICAgICAgaWYgKCFlcnJvcnMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICByZXR1cm4gZG9JbnB1dEZvcndhcmQobWFwcGluZywgcmVxdWVzdCwgZXJyb3JzKTsKKyAgICAgICAgfQorCisgICAgICAgIFVzZXIgdXNlciA9IGRvR2V0VXNlcihzZXNzaW9uKTsKKyAgICAgICAgaWYgKHVzZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgdXNlciA9IGRvQ3JlYXRlVXNlcihmb3JtLCByZXF1ZXN0LCBlcnJvcnMpOworICAgICAgICAgICAgaWYgKCFlcnJvcnMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRvSW5wdXRGb3J3YXJkKG1hcHBpbmcsIHJlcXVlc3QsIGVycm9ycyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBkb1BvcHVsYXRlKHVzZXIsIGZvcm0pOworICAgICAgICBkb1NhdmVVc2VyKHVzZXIpOworCisgICAgICAgIHJldHVybiBkb0ZpbmRTdWNjZXNzKG1hcHBpbmcpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvTG9nb25Gb3JtLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvTG9nb25Gb3JtLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTM3MWE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9Mb2dvbkZvcm0uanNwCkBAIC0wLDAgKzEsNTQgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7Y2hhcnNldD1VVEYtOCIgbGFuZ3VhZ2U9ImphdmEiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtYmVhbiIgcHJlZml4PSJiZWFuIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWh0bWwiIHByZWZpeD0iaHRtbCIgJT4KKworPGh0bWw6eGh0bWwvPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+PGJlYW46bWVzc2FnZSBrZXk9IkxvZ29uLnRpdGxlIi8+PC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aHRtbDplcnJvcnMvPgorCis8aHRtbDpmb3JtIGFjdGlvbj0iL0xvZ29uUG9zdCI+CisgICAgPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiPgorCisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0aCBhbGlnbj0icmlnaHQiPgorICAgICAgICAgICAgICAgIDxiZWFuOm1lc3NhZ2Uga2V5PSJ1c2VybmFtZS5sYWJlbCIvPjoKKyAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgIDxodG1sOnRleHQgcHJvcGVydHk9InVzZXJuYW1lIiBzaXplPSIxNiIgbWF4bGVuZ3RoPSIxOCIvPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKworICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGggYWxpZ249InJpZ2h0Ij4KKyAgICAgICAgICAgICAgICA8YmVhbjptZXNzYWdlIGtleT0icGFzc3dvcmQubGFiZWwiLz46CisgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICA8aHRtbDpwYXNzd29yZCBwcm9wZXJ0eT0icGFzc3dvcmQiIHNpemU9IjE2IiBtYXhsZW5ndGg9IjE4IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlzcGxheT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgIDwvdHI+CisKKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIGFsaWduPSJyaWdodCI+CisgICAgICAgICAgICAgICAgPGh0bWw6c3VibWl0IHByb3BlcnR5PSJET19TVUJNSVQiPgorICAgICAgICAgICAgICAgICAgICA8YmVhbjptZXNzYWdlIGtleT0iYnV0dG9uLnN1Ym1pdCIvPgorICAgICAgICAgICAgICAgIDwvaHRtbDpzdWJtaXQ+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICA8aHRtbDpyZXNldCBwcm9wZXJ0eT0iRE9fUkVTRVQiPgorICAgICAgICAgICAgICAgICAgICA8YmVhbjptZXNzYWdlIGtleT0iYnV0dG9uLnJlc2V0Ii8+CisgICAgICAgICAgICAgICAgPC9odG1sOnJlc2V0PgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKworICAgIDwvdGFibGU+CisKKzwvaHRtbDpmb3JtPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL01haW5NZW51LmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvTWFpbk1lbnUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwZDZlYzYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL01haW5NZW51LmpzcApAQCAtMCwwICsxLDE2IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sO2NoYXJzZXQ9VVRGLTgiIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWJlYW4iIHByZWZpeD0iYmVhbiIgJT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPjxiZWFuOm1lc3NhZ2Uga2V5PSJNYWluTWVudS50aXRsZSIvPjwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgzPk1haW4gTWVudSBPcHRpb25zIGZvciA8YmVhbjp3cml0ZSBuYW1lPSJ1c2VyIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eT0iZnVsbE5hbWUiLz48L2gzPgorPHVsPgorICAgIDxsaT5bVE9ET10gRWRpdCBQcm9maWxlPC9saT4KKyAgICA8bGk+W1RPRE9dIExvZ291dDwvbGk+Cis8L3VsPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9SZWdpc3RlckZvcm0uanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9SZWdpc3RlckZvcm0uanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1ZmZkMjEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1JlZ2lzdGVyRm9ybS5qc3AKQEAgLTAsMCArMSw5NCBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDtjaGFyc2V0PVVURi04IiBsYW5ndWFnZT0iamF2YSIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1iZWFuIiBwcmVmaXg9ImJlYW4iICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtaHRtbCIgcHJlZml4PSJodG1sIiAlPgorCis8aHRtbDpodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8dGl0bGU+PGJlYW46bWVzc2FnZSBrZXk9IlJlZ2lzdGVyLnRpdGxlIi8+PC90aXRsZT4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keT4KKworICAgIDxodG1sOmVycm9ycy8+CisKKyAgICA8aHRtbDpmb3JtIGFjdGlvbj0iL1JlZ2lzdGVyU2F2ZSI+CisgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIj4KKworICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0aCBhbGlnbj0icmlnaHQiPgorICAgICAgICAgICAgICAgICAgICBVc2VybmFtZToKKyAgICAgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgICAgIDxodG1sOnRleHQgcHJvcGVydHk9InVzZXJuYW1lIiBzaXplPSIxNiIgbWF4bGVuZ3RoPSIxNiIvPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRoIGFsaWduPSJyaWdodCI+CisgICAgICAgICAgICAgICAgICAgIFBhc3N3b3JkOgorICAgICAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICAgICAgPGh0bWw6cGFzc3dvcmQgcHJvcGVydHk9InBhc3N3b3JkIiBzaXplPSIxNiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPSIxNiIvPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRoIGFsaWduPSJyaWdodCI+CisgICAgICAgICAgICAgICAgICAgIENvbmZpcm0gUGFzc3dvcmQ6CisgICAgICAgICAgICAgICAgPC90aD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgICAgICA8aHRtbDpwYXNzd29yZCBwcm9wZXJ0eT0icGFzc3dvcmQyIiBzaXplPSIxNiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPSIxNiIvPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorCisgICAgICAgICAgICA8IS0tIExhYiAxLTI6IEluc2VydCByZW1haW5pbmcgZmllbGRzIGZyb20gdXNlIGNhc2UgLS0+CisKKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGggYWxpZ249InJpZ2h0Ij4KKyAgICAgICAgICAgICAgICAgICAgRnVsbG5hbWU6CisgICAgICAgICAgICAgICAgPC90aD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgICAgICA8aHRtbDp0ZXh0IHByb3BlcnR5PSJmdWxsTmFtZSIgc2l6ZT0iNTAiLz4KKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKworICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0aCBhbGlnbj0icmlnaHQiPgorICAgICAgICAgICAgICAgICAgICBGcm9tIEFkZHJlc3M6CisgICAgICAgICAgICAgICAgPC90aD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgICAgICA8aHRtbDp0ZXh0IHByb3BlcnR5PSJmcm9tQWRkcmVzcyIgc2l6ZT0iNTAiLz4KKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKworICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0aCBhbGlnbj0icmlnaHQiPgorICAgICAgICAgICAgICAgICAgICBSZXBseSBUbyBBZGRyZXNzOgorICAgICAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICAgICAgPGh0bWw6dGV4dCBwcm9wZXJ0eT0icmVwbHlUb0FkZHJlc3MiIHNpemU9IjUwIi8+CisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249InJpZ2h0Ij4KKyAgICAgICAgICAgICAgICAgICAgPGh0bWw6c3VibWl0IHByb3BlcnR5PSJET19TVUJNSVQiPgorICAgICAgICAgICAgICAgICAgICAgICAgPGJlYW46bWVzc2FnZSBrZXk9ImJ1dHRvbi5zdWJtaXQiLz4KKyAgICAgICAgICAgICAgICAgICAgPC9odG1sOnN1Ym1pdD4KKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgICAgIDxodG1sOnJlc2V0IHByb3BlcnR5PSJET19SRVNFVCI+CisgICAgICAgICAgICAgICAgICAgICAgICA8YmVhbjptZXNzYWdlIGtleT0iYnV0dG9uLnJlc2V0Ii8+CisgICAgICAgICAgICAgICAgICAgIDwvaHRtbDpyZXNldD4KKyAgICAgICAgICAgICAgICAgICAgJm5ic3A7CisgICAgICAgICAgICAgICAgICAgIDxodG1sOmNhbmNlbC8+CisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisKKyAgICAgICAgPC90YWJsZT4KKyAgICA8L2h0bWw6Zm9ybT4KKworICAgIDwvYm9keT4KKzwvaHRtbDpodG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL0xvZ29uLWNvbmZpZ3VyZS54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvTG9nb24tY29uZmlndXJlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGViOGFjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL0xvZ29uLWNvbmZpZ3VyZS54bWwKQEAgLTAsMCArMSw0MCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzwhRE9DVFlQRSBzdHJ1dHMtY29uZmlnIFBVQkxJQworICAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAxLjMvL0VOIgorICAgICAgICAiaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL2R0ZHMvc3RydXRzLWNvbmZpZ18xXzMuZHRkIj4KKworPHN0cnV0cy1jb25maWc+CisKKyAgICA8Zm9ybS1iZWFucz4KKyAgICAgICAgPGZvcm0tYmVhbgorICAgICAgICAgICAgICAgIG5hbWU9IkxvZ29uRm9ybSIKKyAgICAgICAgICAgICAgICBleHRlbmRzPSJCYXNlRm9ybSIvPgorICAgIDwvZm9ybS1iZWFucz4KKworICAgIDxhY3Rpb24tbWFwcGluZ3MKKyAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0QWN0aW9uTWFwcGluZyI+CisKKyAgICAgICAgPGFjdGlvbiBwYXRoPSIvTG9nb24iCisgICAgICAgICAgICAgICAgbmFtZT0iTG9nb25Gb3JtIgorICAgICAgICAgICAgICAgIGZvcndhcmQ9Ii9Mb2dvbkZvcm0uanNwIgorICAgICAgICAgICAgICAgIHZhbGlkYXRlPSJmYWxzZSIvPgorCisgICAgICAgIDxhY3Rpb24KKyAgICAgICAgICAgICAgICBwYXRoPSIvTG9nb25Qb3N0IgorICAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5jb3Vyc2UuTG9nb25BY3Rpb24iCisgICAgICAgICAgICAgICAgbmFtZT0iTG9nb25Gb3JtIgorICAgICAgICAgICAgICAgIHNjb3BlPSJyZXF1ZXN0IgorICAgICAgICAgICAgICAgIHZhbGlkYXRlPSJ0cnVlIgorICAgICAgICAgICAgICAgIGlucHV0PSJJbnB1dCI+CisgICAgICAgICAgICA8Zm9yd2FyZAorICAgICAgICAgICAgICAgIG5hbWU9IklucHV0IgorICAgICAgICAgICAgICAgIHBhdGg9Ii9Mb2dvbi5kbyIvPgorICAgICAgICAgICAgPGZvcndhcmQKKyAgICAgICAgICAgICAgICAgICAgbmFtZT0iU3VjY2VzcyIKKyAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q9InRydWUiCisgICAgICAgICAgICAgICAgICAgIHBhdGg9Ii9NYWluTWVudS5kbyIvPgorICAgICAgICA8L2FjdGlvbj4KKworICAgIDwvYWN0aW9uLW1hcHBpbmdzPgorCis8L3N0cnV0cy1jb25maWc+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvTG9nb24tdmFsaWRhdGUueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL0xvZ29uLXZhbGlkYXRlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Nzk3ZDFiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL0xvZ29uLXZhbGlkYXRlLnhtbApAQCAtMCwwICsxLDQ0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPCFET0NUWVBFIGZvcm0tdmFsaWRhdGlvbiBQVUJMSUMKKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgQ29tbW9ucyBWYWxpZGF0b3IgUnVsZXMgQ29uZmlndXJhdGlvbiAxLjIuMC8vRU4iCisgICAgICAgICJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvZHRkcy92YWxpZGF0b3JfMV8yXzAuZHRkIj4KKworPGZvcm0tdmFsaWRhdGlvbj4KKyAgICA8Zm9ybXNldD4KKyAgICAgICAgPGZvcm0gbmFtZT0iTG9nb25Gb3JtIj4KKworICAgICAgICAgICAgPGZpZWxkICBwcm9wZXJ0eT0idXNlcm5hbWUiCisgICAgICAgICAgICAgICAgICAgIGRlcGVuZHM9InJlcXVpcmVkIj4KKyAgICAgICAgICAgICAgICA8YXJnICAgIGtleT0idXNlcm5hbWUubGFiZWwiLz4KKyAgICAgICAgICAgIDwvZmllbGQ+CisKKyAgICAgICAgICAgIDxmaWVsZCAgcHJvcGVydHk9InBhc3N3b3JkIgorICAgICAgICAgICAgICAgICAgICBkZXBlbmRzPSJyZXF1aXJlZCwgbWlubGVuZ3RoLG1heGxlbmd0aCI+CisgICAgICAgICAgICAgICAgPGFyZyAgIGtleT0icGFzc3dvcmQubGFiZWwiLz4KKyAgICAgICAgICAgICAgICA8YXJnICAgIGtleT0iJHt2YXI6bWlubGVuZ3RofSIKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9Im1pbmxlbmd0aCIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlPSJmYWxzZSIvPgorICAgICAgICAgICAgICAgIDxhcmcgICAga2V5PSIke3ZhcjptYXhsZW5ndGh9IgorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0ibWF4bGVuZ3RoIgorICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2U9ImZhbHNlIi8+CisKKyAgICAgICAgICAgICAgICA8dmFyPgorICAgICAgICAgICAgICAgICAgICA8dmFyLW5hbWU+CisgICAgICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgPC92YXItbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgPHZhci12YWx1ZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDE2CisgICAgICAgICAgICAgICAgICAgIDwvdmFyLXZhbHVlPgorICAgICAgICAgICAgICAgIDwvdmFyPgorICAgICAgICAgICAgICAgIDx2YXI+CisgICAgICAgICAgICAgICAgICAgIDx2YXItbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIG1pbmxlbmd0aAorICAgICAgICAgICAgICAgICAgICA8L3Zhci1uYW1lPgorICAgICAgICAgICAgICAgICAgICA8dmFyLXZhbHVlPgorICAgICAgICAgICAgICAgICAgICAgICAgMworICAgICAgICAgICAgICAgICAgICA8L3Zhci12YWx1ZT4KKyAgICAgICAgICAgICAgICA8L3Zhcj4KKyAgICAgICAgICAgIDwvZmllbGQ+CisgICAgICAgIDwvZm9ybT4KKyAgICA8L2Zvcm1zZXQ+Cis8L2Zvcm0tdmFsaWRhdGlvbj4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9SZWdpc3Rlci1jb25maWd1cmUueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL1JlZ2lzdGVyLWNvbmZpZ3VyZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTYwNzJlZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9SZWdpc3Rlci1jb25maWd1cmUueG1sCkBAIC0wLDAgKzEsNTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IURPQ1RZUEUgc3RydXRzLWNvbmZpZyBQVUJMSUMKKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMS4zLy9FTiIKKyAgICAgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy1jb25maWdfMV8zLmR0ZCI+CisKKzxzdHJ1dHMtY29uZmlnPgorCisgICAgPGZvcm0tYmVhbnM+CisgICAgICAgIDxmb3JtLWJlYW4KKyAgICAgICAgICAgICAgICBuYW1lPSJSZWdpc3RlckZvcm0iCisgICAgICAgICAgICAgICAgZXh0ZW5kcz0iQmFzZUZvcm0iPgorICAgICAgICAgICAgPGZvcm0tcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmQyIgorICAgICAgICAgICAgICAgICAgICB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIi8+CisgICAgICAgICAgICA8Zm9ybS1wcm9wZXJ0eQorICAgICAgICAgICAgICAgICAgICBuYW1lPSJmdWxsTmFtZSIKKyAgICAgICAgICAgICAgICAgICAgdHlwZT0iamF2YS5sYW5nLlN0cmluZyIvPgorICAgICAgICAgICAgPGZvcm0tcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgbmFtZT0iZnJvbUFkZHJlc3MiCisgICAgICAgICAgICAgICAgICAgIHR5cGU9ImphdmEubGFuZy5TdHJpbmciLz4KKyAgICAgICAgICAgIDxmb3JtLXByb3BlcnR5CisgICAgICAgICAgICAgICAgICAgIG5hbWU9InJlcGx5VG9BZGRyZXNzIgorICAgICAgICAgICAgICAgICAgICB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIi8+CisgICAgICAgIDwvZm9ybS1iZWFuPgorICAgIDwvZm9ybS1iZWFucz4KKworICAgIDxhY3Rpb24tbWFwcGluZ3MKKyAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0QWN0aW9uTWFwcGluZyI+CisKKyAgICAgICAgPGFjdGlvbiBwYXRoPSIvUmVnaXN0ZXIiCisgICAgICAgICAgICAgICAgbmFtZT0iUmVnaXN0ZXJGb3JtIgorICAgICAgICAgICAgICAgIGZvcndhcmQ9Ii9SZWdpc3RlckZvcm0uanNwIgorICAgICAgICAgICAgICAgIHZhbGlkYXRlPSJmYWxzZSIvPgorCisgICAgICAgIDxhY3Rpb24gcGF0aD0iL1JlZ2lzdGVyU2F2ZSIKKyAgICAgICAgICAgICAgICBuYW1lPSJSZWdpc3RlckZvcm0iCisgICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmNvdXJzZS5SZWdpc3RlckFjdGlvbiIKKyAgICAgICAgICAgICAgICB2YWxpZGF0ZT0idHJ1ZSIKKyAgICAgICAgICAgICAgICBpbnB1dD0iSW5wdXQiPgorICAgICAgICAgICAgPGZvcndhcmQKKyAgICAgICAgICAgICAgICBuYW1lPSJJbnB1dCIKKyAgICAgICAgICAgICAgICBwYXRoPSIvUmVnaXN0ZXIuZG8iLz4KKyAgICAgICAgICAgIDxmb3J3YXJkCisgICAgICAgICAgICAgICAgICAgIG5hbWU9IlN1Y2Nlc3MiCisgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0PSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICBwYXRoPSIvTWFpbk1lbnUuZG8iLz4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICA8L2FjdGlvbi1tYXBwaW5ncz4KKworPC9zdHJ1dHMtY29uZmlnPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL1JlZ2lzdGVyLXZhbGlkYXRlLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9SZWdpc3Rlci12YWxpZGF0ZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQwNmMxMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9SZWdpc3Rlci12YWxpZGF0ZS54bWwKQEAgLTAsMCArMSw0NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzwhRE9DVFlQRSBmb3JtLXZhbGlkYXRpb24gUFVCTElDCisgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIENvbW1vbnMgVmFsaWRhdG9yIFJ1bGVzIENvbmZpZ3VyYXRpb24gMS4yLjAvL0VOIgorICAgICAgICAiaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2R0ZHMvdmFsaWRhdG9yXzFfMl8wLmR0ZCI+CisKKzxmb3JtLXZhbGlkYXRpb24+CisKKyAgICA8Zm9ybXNldD4KKyAgICAgICAgPGZvcm0gbmFtZT0iUmVnaXN0ZXJGb3JtIj4KKworICAgICAgICAgICAgPGZpZWxkIHByb3BlcnR5PSJ1c2VybmFtZSIgZGVwZW5kcz0icmVxdWlyZWQiPgorICAgICAgICAgICAgICAgIDxhcmcgcG9zaXRpb249IjAiIGtleT0idXNlcm5hbWUubGFiZWwiLz4KKyAgICAgICAgICAgIDwvZmllbGQ+CisKKyAgICAgICAgICAgIDxmaWVsZCBwcm9wZXJ0eT0icGFzc3dvcmQiIGRlcGVuZHM9InJlcXVpcmVkIj4KKyAgICAgICAgICAgICAgICA8YXJnIHBvc2l0aW9uPSIwIiBrZXk9InBhc3N3b3JkLmxhYmVsIi8+CisgICAgICAgICAgICA8L2ZpZWxkPgorCisgICAgICAgICAgICA8ZmllbGQgcHJvcGVydHk9InBhc3N3b3JkMiIgZGVwZW5kcz0icmVxdWlyZWQsdmFsaWR3aGVuIj4KKyAgICAgICAgICAgICAgICA8YXJnIHBvc2l0aW9uPSIwIiBrZXk9InBhc3N3b3JkMi5sYWJlbCIvPgorICAgICAgICAgICAgICAgIDx2YXI+CisgICAgICAgICAgICAgICAgICAgIDx2YXItbmFtZT50ZXN0PC92YXItbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgPHZhci12YWx1ZT4oKnRoaXMqID09IHBhc3N3b3JkKTwvdmFyLXZhbHVlPgorICAgICAgICAgICAgICAgIDwvdmFyPgorICAgICAgICAgICAgPC9maWVsZD4KKworICAgICAgICAgICAgPCEtLSBMYWIgMS0yOiBJbnNlcnQgcmVtYWluaW5nIGZpZWxkcyBmcm9tIHVzZSBjYXNlIC0tPgorCisgICAgICAgICAgICA8ZmllbGQgcHJvcGVydHk9ImZ1bGxOYW1lIgorICAgICAgICAgICAgICAgICAgIGRlcGVuZHM9InJlcXVpcmVkIj4KKyAgICAgICAgICAgICAgICA8YXJnIGtleT0iZnVsbE5hbWUubGFiZWwiLz4KKyAgICAgICAgICAgIDwvZmllbGQ+CisKKyAgICAgICAgICAgIDxmaWVsZCBwcm9wZXJ0eT0iZnJvbUFkZHJlc3MiCisgICAgICAgICAgICAgICAgICAgZGVwZW5kcz0icmVxdWlyZWQsZW1haWwiPgorICAgICAgICAgICAgICAgIDxhcmcga2V5PSJmcm9tQWRkcmVzcy5sYWJlbCIvPgorICAgICAgICAgICAgPC9maWVsZD4KKworICAgICAgICAgICAgPGZpZWxkIHByb3BlcnR5PSJyZXBseVRvQWRkcmVzcyIKKyAgICAgICAgICAgICAgICAgICBkZXBlbmRzPSJlbWFpbCI+CisgICAgICAgICAgICAgICAgPGFyZyBrZXk9InJlcGx5VG9BZGRyZXNzLmxhYmVsIi8+CisgICAgICAgICAgICA8L2ZpZWxkPgorCisgICAgICAgIDwvZm9ybT4KKyAgICA8L2Zvcm1zZXQ+Cis8L2Zvcm0tdmFsaWRhdGlvbj4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9jbGFzc2VzL01lc3NhZ2VSZXNvdXJjZXMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9jbGFzc2VzL01lc3NhZ2VSZXNvdXJjZXMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjhhOTJhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2NsYXNzZXMvTWVzc2FnZVJlc291cmNlcy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTA3IEBACisjIFN0YW5kYXJkIGVycm9yIG1lc3NhZ2VzIGZvciB2YWxpZGF0b3IgZnJhbWV3b3JrIGNoZWNrcworZXJyb3JzLmZvb3Rlcj08L3VsPjxocj4KK2Vycm9ycy5oZWFkZXI9PGgzPjxmb250IGNvbG9yPSJyZWQiPlZhbGlkYXRpb24gRXJyb3I8L2ZvbnQ+PC9oMz48cD5Zb3UgbXVzdCBjb3JyZWN0IHRoZSBmb2xsb3dpbmcgZXJyb3IocykgYmVmb3JlIHByb2NlZWRpbmc6PC9wPjx1bD4KK2Vycm9ycy5wcmVmaXg9PGxpPgorZXJyb3JzLnN1ZmZpeD08L2xpPgorZXJyb3JzLmlvRXhjZXB0aW9uPUkvTyBleGNlcHRpb24gcmVuZGVyaW5nIGVycm9yIG1lc3NhZ2VzOiB7MH0KK2Vycm9ycy5yZXF1aXJlZD17MH0gaXMgcmVxdWlyZWQuCitlcnJvcnMuZW1haWw9ezB9IGlzIG5vdCBhIHZhbGlkIGVtYWlsIGFkZHJlc3MuCit1c2VybmFtZS5sYWJlbD1Vc2VybmFtZQorcGFzc3dvcmQubGFiZWw9UGFzc3dvcmQKK3Bhc3N3b3JkMi5sYWJlbD1Db25maXJtIFBhc3N3b3JkCisjICBMYWIgMS0yOiBJbnNlcnQgcmVtYWluaW5nIGZpZWxkcyBmcm9tIHVzZSBjYXNlCitmdWxsTmFtZS5sYWJlbD1GdWxsIE5hbWUKK2Zyb21BZGRyZXNzLmxhYmVsPUZyb20gQWRkcmVzcworcmVwbHlUb0FkZHJlc3MubGFiZWw9UmVwbHkgVG8gQWRkcmVzcworIyBMYWIgMS00OiBSZXNvdXJjZXMgZm9yIExvZ29uIHVzZSBjYXNlCitidXR0b24uY2FuY2VsPUNhbmNlbAorYnV0dG9uLmNvbmZpcm09Q29uZmlybQorYnV0dG9uLnN1Ym1pdD1TdWJtaXQKK2J1dHRvbi5yZXNldD1SZXNldAorYnV0dG9uLnN1Ym1pdC5pZD1ET19TVUJNSVQKK2J1dHRvbi5yZXNldC5pZD1ET19SRVNFVAorCitNYWluTWVudS50aXRsZT1NYWluIE1lbnUKK1JlZ2lzdGVyLnRpdGxlPVJlZ2lzdGVyIEZvcm0KK0xvZ29uLnRpdGxlPUxvZ29uIEZvcm0KKworYnV0dG9uLmRvU3VibWl0PURPX1NVQk1JVAorYnV0dG9uLmRvUmVzZXQ9RE9fUkVTVUxUCitidXR0b24uZG9DYW5jZWw9b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ0FOQ0VMCitidXR0b24uc2F2ZT1TYXZlCitjaGFuZ2UubWVzc2FnZT1Zb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkLiAgUGxlYXNlIGFzayB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3IgdG8gY2hhbmdlIGl0LgorY2hhbmdlLnRyeT1UcnkgQWdhaW4KK2NoYW5nZS50aXRsZT1QYXNzd29yZCBIYXMgRXhwaXJlZAorZGF0YWJhc2UubG9hZD1DYW5ub3QgbG9hZCBkYXRhYmFzZSBmcm9tIHswfQorZXJyb3IuZGF0YWJhc2UubWlzc2luZz1Vc2VyIGRhdGFiYXNlIGlzIG1pc3NpbmcsIGNhbm5vdCB2YWxpZGF0ZSBsb2dvbiBjcmVkZW50aWFscworZXJyb3IuZnJvbUFkZHJlc3MuZm9ybWF0PUludmFsaWQgZm9ybWF0IGZvciBGcm9tIEFkZHJlc3MKK2Vycm9yLmZyb21BZGRyZXNzLnJlcXVpcmVkPUZyb20gQWRkcmVzcyBpcyByZXF1aXJlZAorZXJyb3IuZnVsbE5hbWUucmVxdWlyZWQ9RnVsbCBOYW1lIGlzIHJlcXVpcmVkCitlcnJvci5ob3N0LnJlcXVpcmVkPU1haWwgU2VydmVyIGlzIHJlcXVpcmVkCitlcnJvci5ub1N1YnNjcmlwdGlvbj1ObyBTdWJzY3JpcHRpb24gYmVhbiBpbiB1c2VyIHNlc3Npb24KK2Vycm9yLnBhc3N3b3JkLmV4cGlyZWQ9WW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZCBmb3IgdXNlcm5hbWUgezB9CitlcnJvci5wYXNzd29yZC5yZXF1aXJlZD1QYXNzd29yZCBpcyByZXF1aXJlZAorZXJyb3IucGFzc3dvcmQyLnJlcXVpcmVkPUNvbmZpcm1hdGlvbiBwYXNzd29yZCBpcyByZXF1aXJlZAorZXJyb3IucGFzc3dvcmQubWF0Y2g9UGFzc3dvcmQgYW5kIGNvbmZpcm1hdGlvbiBwYXNzd29yZCBtdXN0IG1hdGNoCitlcnJvci5wYXNzd29yZC5taXNtYXRjaD1JbnZhbGlkIHVzZXJuYW1lIGFuZC9vciBwYXNzd29yZCwgcGxlYXNlIHRyeSBhZ2FpbgorZXJyb3IucmVwbHlUb0FkZHJlc3MuZm9ybWF0PUludmFsaWQgZm9ybWF0IGZvciBSZXBseSBUbyBBZGRyZXNzCitlcnJvci50cmFuc2FjdGlvbi50b2tlbj1DYW5ub3Qgc3VibWl0IHRoaXMgZm9ybSBvdXQgb2Ygb3JkZXIKK2Vycm9yLnR5cGUuaW52YWxpZD1TZXJ2ZXIgVHlwZSBtdXN0IGJlICdpbWFwJyBvciAncG9wMycKK2Vycm9yLnR5cGUucmVxdWlyZWQ9U2VydmVyIFR5cGUgaXMgcmVxdWlyZWQKK2Vycm9yLnVzZXJuYW1lLnJlcXVpcmVkPVVzZXJuYW1lIGlzIHJlcXVpcmVkCitlcnJvci51c2VybmFtZS51bmlxdWU9VGhhdCB1c2VybmFtZSBpcyBhbHJlYWR5IGluIHVzZSAtIHBsZWFzZSBzZWxlY3QgYW5vdGhlcgorZXhwaXJlZC5wYXNzd29yZD1Vc2VyIFBhc3N3b3JkIGhhcyBleHBpcmVkIGZvciB7MH0KK2hlYWRpbmcuYXV0b0Nvbm5lY3Q9QXV0bworaGVhZGluZy5zdWJzY3JpcHRpb25zPUN1cnJlbnQgU3Vic2NyaXB0aW9ucworaGVhZGluZy5ob3N0PUhvc3QgTmFtZQoraGVhZGluZy51c2VyPVVzZXIgTmFtZQoraGVhZGluZy50eXBlPVNlcnZlciBUeXBlCitoZWFkaW5nLmFjdGlvbj1BY3Rpb24KK2luZGV4LmhlYWRpbmc9TWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uIE9wdGlvbnMKK2luZGV4LmxvZ29uPUxvZyBvbiB0byB0aGUgTWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uCitpbmRleC5yZWdpc3RyYXRpb249UmVnaXN0ZXIgd2l0aCB0aGUgTWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uCitpbmRleC50aXRsZT1NYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24KK2luZGV4LnRvdXI9QSBXYWxraW5nIFRvdXIgb2YgdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbgorbGlua1N1YnNjcmlwdGlvbi5pbz1JL08gRXJyb3I6IHswfQorbGlua1N1YnNjcmlwdGlvbi5ub1N1YnNjcmlwdGlvbj1ObyBzdWJzY3JpcHRpb24gdW5kZXIgYXR0cmlidXRlIHswfQorbGlua1VzZXIuaW89SS9PIEVycm9yOiB7MH0KK2xpbmtVc2VyLm5vVXNlcj1ObyB1c2VyIHVuZGVyIGF0dHJpYnV0ZSB7MH0KK21haW5NZW51LmhlYWRpbmc9TWFpbiBNZW51IE9wdGlvbnMgZm9yCittYWluTWVudS5sb2dvZmY9TG9nIG9mZiBNYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24KK21haW5NZW51LnJlZ2lzdHJhdGlvbj1FZGl0IHlvdXIgdXNlciByZWdpc3RyYXRpb24gcHJvZmlsZQorb3B0aW9uLmltYXA9SU1BUCBQcm90b2NvbAorb3B0aW9uLnBvcDM9UE9QMyBQcm90b2NvbAorcHJvbXB0LmF1dG9Db25uZWN0PUF1dG8gQ29ubmVjdAorcHJvbXB0LmZyb21BZGRyZXNzPUZyb20gQWRkcmVzcworcHJvbXB0LmZ1bGxOYW1lPUZ1bGwgTmFtZQorcHJvbXB0Lm1haWxIb3N0bmFtZT1NYWlsIFNlcnZlcgorcHJvbXB0Lm1haWxQYXNzd29yZD1NYWlsIFBhc3N3b3JkCitwcm9tcHQubWFpbFNlcnZlclR5cGU9U2VydmVyIFR5cGUKK3Byb21wdC5tYWlsVXNlcm5hbWU9TWFpbCBVc2VybmFtZQorcHJvbXB0LnBhc3N3b3JkPVBhc3N3b3JkCitwcm9tcHQucGFzc3dvcmQyPShSZXBlYXQpIFBhc3N3b3JkCitwcm9tcHQucmVwbHlUb0FkZHJlc3M9UmVwbHkgVG8gQWRkcmVzcworcHJvbXB0LnVzZXJuYW1lPVVzZXJuYW1lCityZWdpc3RyYXRpb24uYWRkU3Vic2NyaXB0aW9uPUFkZAorcmVnaXN0cmF0aW9uLmRlbGV0ZVN1YnNjcmlwdGlvbj1EZWxldGUKK3JlZ2lzdHJhdGlvbi5lZGl0U3Vic2NyaXB0aW9uPUVkaXQKK3JlZ2lzdHJhdGlvbi50aXRsZS5jcmVhdGU9UmVnaXN0ZXIgZm9yIHRoZSBNYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24KK3JlZ2lzdHJhdGlvbi50aXRsZS5lZGl0PUVkaXQgUmVnaXN0cmF0aW9uIGZvciB0aGUgTWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uCitzdWJzY3JpcHRpb24udGl0bGUuY3JlYXRlPUNyZWF0ZSBOZXcgTWFpbCBTdWJzY3JpcHRpb24KK3N1YnNjcmlwdGlvbi50aXRsZS5kZWxldGU9RGVsZXRlIEV4aXN0aW5nIE1haWwgU3Vic2NyaXB0aW9uCitzdWJzY3JpcHRpb24udGl0bGUuZWRpdD1FZGl0IEV4aXN0aW5nIE1haWwgU3Vic2NyaXB0aW9uCisKKyMgU3RhbmRhcmQgZXJyb3IgbWVzc2FnZXMgZm9yIHZhbGlkYXRvciBmcmFtZXdvcmsgY2hlY2tzCitlcnJvcnMubWlubGVuZ3RoPXswfSBjYW5ub3QgYmUgbGVzcyB0aGFuIHsxfSBjaGFyYWN0ZXJzLgorZXJyb3JzLm1heGxlbmd0aD17MH0gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiB7MX0gY2hhcmFjdGVycy4KK2Vycm9ycy5pbnZhbGlkPXswfSBpcyBpbnZhbGlkLgorZXJyb3JzLmJ5dGU9ezB9IG11c3QgYmUgYW4gYnl0ZS4KK2Vycm9ycy5zaG9ydD17MH0gbXVzdCBiZSBhbiBzaG9ydC4KK2Vycm9ycy5pbnRlZ2VyPXswfSBtdXN0IGJlIGFuIGludGVnZXIuCitlcnJvcnMubG9uZz17MH0gbXVzdCBiZSBhbiBsb25nLgorZXJyb3JzLmZsb2F0PXswfSBtdXN0IGJlIGFuIGZsb2F0LgorZXJyb3JzLmRvdWJsZT17MH0gbXVzdCBiZSBhbiBkb3VibGUuCitlcnJvcnMuZGF0ZT17MH0gaXMgbm90IGEgZGF0ZS4KK2Vycm9ycy5yYW5nZT17MH0gaXMgbm90IGluIHRoZSByYW5nZSB7MX0gdGhyb3VnaCB7Mn0uCitlcnJvcnMuY3JlZGl0Y2FyZD17MH0gaXMgbm90IGEgdmFsaWQgY3JlZGl0IGNhcmQgbnVtYmVyLgorZXJyb3JzLmxpdGVyYWw9ezB9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvZGF0YWJhc2UueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2RhdGFiYXNlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMTk5YTVlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2RhdGFiYXNlLnhtbApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPScxLjAnPz4KKzxkYXRhYmFzZT4KKyAgICA8dXNlciB1c2VybmFtZT0idXNlciIKKyAgICAgICAgICBwYXNzd29yZD0icGFzcyIKKyAgICAgICAgICBmdWxsTmFtZT0iSm9obiBRLiBVc2VyIgorICAgICAgICAgIGZyb21BZGRyZXNzPSJKb2huLlVzZXJAc29tZXdoZXJlLmNvbSI+CisgICAgICAgIDxzdWJzY3JpcHRpb24KKyAgICAgICAgICAgICAgICBob3N0PSJtYWlsLmhvdG1haWwuY29tIgorICAgICAgICAgICAgICAgIHR5cGU9InBvcDMiCisgICAgICAgICAgICAgICAgYXV0b0Nvbm5lY3Q9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXJuYW1lPSJ1c2VyMTIzNCIKKyAgICAgICAgICAgICAgICBwYXNzd29yZD0iYmFyIj4KKyAgICAgICAgPC9zdWJzY3JpcHRpb24+CisgICAgICAgIDxzdWJzY3JpcHRpb24KKyAgICAgICAgICAgICAgICBob3N0PSJtYWlsLnlhaG9vLmNvbSIKKyAgICAgICAgICAgICAgICB0eXBlPSJpbWFwIgorICAgICAgICAgICAgICAgIGF1dG9Db25uZWN0PSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VybmFtZT0ianF1c2VyIgorICAgICAgICAgICAgICAgIHBhc3N3b3JkPSJmb28iPgorICAgICAgICA8L3N1YnNjcmlwdGlvbj4KKyAgICA8L3VzZXI+Cis8L2RhdGFiYXNlPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL1dlYlRlc3QuZHRkIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL1dlYlRlc3QuZHRkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmOGEzNDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvV2ViVGVzdC5kdGQKQEAgLTAsMCArMSw0Njk3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4KKzwhRU5USVRZICUgYm9vbGVhbiAiKHRydWV8ZmFsc2V8b258b2ZmfHllc3xubykiPgorPCFFTlRJVFkgJSB0YXNrcyAicHJvcGVydHlmaWxlIHwgY2Nta2RpciB8IGltcG9ydHR5cGVsaWIgfCB2c3NjaGVja2luIHwgc3FsIHwgY3ZzcGFzcyB8IGNzYyB8IGRpcm5hbWUgfCByZXBsYWNlcmVnZXhwIHwgZ2V0IHwgamp0cmVlIHwgc2xlZXAgfCBqYXJsaWItZGlzcGxheSB8IGxlbmd0aCB8IGRlcGVuZHNldCB8IHppcCB8IHBhdGNoIHwganNwYyB8IHN0eWxlIHwgbmljZSB8IHRlc3QgfCB0c3RhbXAgfCB1bndhciB8IHZzc2hpc3RvcnkgfCBjdnNjaGFuZ2Vsb2cgfCBjY21jaGVja2luIHwgYnppcDIgfCBzeW5jIHwgdnNzYWRkIHwgamF2YWRvYyB8IHRyYW5zbGF0ZSB8IHNpZ25qYXIgfCBjY2xvY2sgfCBjaG93biB8IGphcmxpYi1hdmFpbGFibGUgfCBXc2RsVG9Eb3RuZXQgfCBidWlsZG51bWJlciB8IGpwY292bWVyZ2UgfCBjdnN2ZXJzaW9uIHwgZWpiamFyIHwgd2FyIHwgcmVuYW1lIHwgc2VxdWVudGlhbCB8IHNlcnZlcmRlcGxveSB8IHByb3BlcnR5IHwgc3ViYW50IHwgbW92ZSB8IGlsZGFzbSB8IGNvcHlkaXIgfCBjY2NoZWNraW4gfCBjY3VubG9jayB8IHdsanNwYyB8IGZpeGNybGYgfCBzb3NnZXQgfCBwYXRoY29udmVydCB8IHJlY29yZCB8IGV4ZWMgfCBjY21rbGFiZWwgfCBtYW5pZmVzdCB8IGpwY292cmVwb3J0IHwgZXhlY29uIHwgY2NtY2hlY2tvdXQgfCBhbnQgfCB4bWx2YWxpZGF0ZSB8IHhzbHQgfCBpcGxhbmV0LWVqYmMgfCBjY21jaGVja2ludGFzayB8IGd6aXAgfCBuYXRpdmUyYXNjaWkgfCBjY3JtdHlwZSB8IGVhciB8IGlucHV0IHwgcHJlc2V0ZGVmIHwgcm1pYyB8IGNoZWNrc3VtIHwgbWFpbCB8IGxvYWRmaWxlIHwgdnNzY2hlY2tvdXQgfCBzb3NjaGVja2luIHwgbWltZW1haWwgfCBndW56aXAgfCBjb25jYXQgfCBjYWIgfCB0b3VjaCB8IHBhcmFsbGVsIHwgYW50Y2FsbCB8IGNjbWtibCB8IGNjY2hlY2tvdXQgfCB0eXBlZGVmIHwgZmlsdGVyIHwgeG1scHJvcGVydHkgfCBpbXBvcnQgfCBjb3B5IHwganNoYXJwYyB8IHN5bWxpbmsgfCBhbnRzdHJ1Y3R1cmUgfCBzY3JpcHQgfCBjY21jcmVhdGV0YXNrIHwgcnBtIHwgZGVsZXRlIHwgcmVwbGFjZSB8IG1tZXRyaWNzIHwgYXR0cmliIHwgd2FpdGZvciB8IHVudGFyIHwgbG9hZHByb3BlcnRpZXMgfCBhdmFpbGFibGUgfCBlY2hvcHJvcGVydGllcyB8IGp1bml0IHwgY2hncnAgfCBidW56aXAyIHwgd2hpY2hyZXNvdXJjZSB8IGNvcHlmaWxlIHwgdnNzY3JlYXRlIHwgbWFjcm9kZWYgfCB1bmphciB8IHZiYyB8IHdzZGx0b2RvdG5ldCB8IG1rZGlyIHwgY29uZGl0aW9uIHwgY3ZzIHwgdGVtcGZpbGUgfCBqdW5pdHJlcG9ydCB8IGNjbWthdHRyIHwgdGFza2RlZiB8IGVjaG8gfCBjY3VwZGF0ZSB8IGphdmEgfCByZW5hbWVleHQgfCB2c3NsYWJlbCB8IGJhc2VuYW1lIHwgamF2YWRvYzIgfCB2c3NjcCB8IHRhciB8IHNldHByb3h5IHwgaWxhc20gfCBzb3NjaGVja291dCB8IGFwcGx5IHwgY2N1bmNoZWNrb3V0IHwgamFybGliLXJlc29sdmUgfCBjdnN0YWdkaWZmIHwgamxpbmsgfCBqYXZhY2MgfCBjaG1vZCB8IHB2Y3MgfCBqYXJsaWItbWFuaWZlc3QgfCBqYXIgfCBjY21rbGJ0eXBlIHwgc2NyaXB0ZGVmIHwgZGVmYXVsdGV4Y2x1ZGVzIHwgbXBhcnNlIHwgYmxnZW5jbGllbnQgfCB1cHRvZGF0ZSB8IGpqZG9jIHwgZ2Vua2V5IHwgamF2YWggfCBjY21rZWxlbSB8IGNjbXJlY29uZmlndXJlIHwgZmFpbCB8IHVuemlwIHwgamF2YWMgfCBqcGNvdmVyYWdlIHwgc29zbGFiZWwgfCBkZXBlbmQgfCB2c3NnZXQgfCBkZWx0cmVlIj4KKzwhRU5USVRZICUgdHlwZXMgInBhdHRlcm5zZXQgfCBhc3NlcnRpb25zIHwgcHJvcGVydHlzZXQgfCBmaWx0ZXJtYXBwZXIgfCBmaWx0ZXJzZXQgfCBsaWJmaWxlc2V0IHwgaXNmaWxlc2VsZWN0ZWQgfCBtZXJnZW1hcHBlciB8IGlkZW50aXR5bWFwcGVyIHwgZmlsdGVycmVhZGVyIHwgc2NyaXB0ZmlsdGVyIHwgdW5wYWNrYWdlbWFwcGVyIHwgY29uY2F0ZmlsdGVyIHwgZXh0ZW5zaW9uIHwgZmlsZXNldCB8IGRpcnNldCB8IGdsb2JtYXBwZXIgfCBmaWxlbGlzdCB8IGZpbHRlcmNoYWluIHwgcGF0aCB8IGNvbXBvc2l0ZW1hcHBlciB8IGNsYXNzZmlsZXNldCB8IHJlZ2V4cG1hcHBlciB8IHNlbGVjdG9yIHwgeG1sY2F0YWxvZyB8IGZsYXR0ZW5tYXBwZXIgfCBkZXNjcmlwdGlvbiB8IGNoYWluZWRtYXBwZXIgfCBwYWNrYWdlbWFwcGVyIHwgbWFwcGVyIHwgemlwZmlsZXNldCB8IHN1YnN0aXR1dGlvbiB8IGV4dGVuc2lvblNldCB8IHJlZGlyZWN0b3IgfCByZWdleHAiPgorCis8IUVMRU1FTlQgcHJvamVjdCAodGFyZ2V0IHwgJXRhc2tzOyB8ICV0eXBlczspKj4KKzwhQVRUTElTVCBwcm9qZWN0CisgICAgICAgICAgbmFtZSAgICBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFyZ2V0ICgldGFza3M7IHwgJXR5cGVzOykqPgorCis8IUFUVExJU1QgdGFyZ2V0CisgICAgICAgICAgaWQgICAgICAgICAgSUQgICAgI0lNUExJRUQKKyAgICAgICAgICBuYW1lICAgICAgICBDREFUQSAjUkVRVUlSRUQKKyAgICAgICAgICBpZiAgICAgICAgICBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyAgICAgIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVwZW5kcyAgICAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhdHRlcm5zZXQgKGluY2x1ZGUgfCBwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGV4Y2x1ZGVzZmlsZSB8IGluY2x1ZGVzZmlsZSkqPgorPCFBVFRMSVNUIHBhdHRlcm5zZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW5jbHVkZSBFTVBUWT4KKzwhQVRUTElTVCBpbmNsdWRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleGNsdWRlIEVNUFRZPgorPCFBVFRMSVNUIGV4Y2x1ZGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4Y2x1ZGVzZmlsZSBFTVBUWT4KKzwhQVRUTElTVCBleGNsdWRlc2ZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGluY2x1ZGVzZmlsZSBFTVBUWT4KKzwhQVRUTElTVCBpbmNsdWRlc2ZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFzc2VydGlvbnMgKGRpc2FibGUgfCBlbmFibGUpKj4KKzwhQVRUTElTVCBhc3NlcnRpb25zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5hYmxlc3lzdGVtYXNzZXJ0aW9ucyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkaXNhYmxlIEVNUFRZPgorPCFBVFRMSVNUIGRpc2FibGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVuYWJsZSBFTVBUWT4KKzwhQVRUTElTVCBlbmFibGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByb3BlcnR5c2V0IChwcm9wZXJ0eXJlZiB8IHByb3BlcnR5c2V0IHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgcHJvcGVydHlzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkeW5hbWljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5lZ2F0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcm9wZXJ0eXJlZiBFTVBUWT4KKzwhQVRUTElTVCBwcm9wZXJ0eXJlZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1aWx0aW4gKGFsbCB8IHN5c3RlbSB8IGNvbW1hbmRsaW5lKSAjSU1QTElFRAorICAgICAgICAgIHJlZ2V4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFwcGVyIChjbGFzc3BhdGggfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGlkZW50aXR5IHwgZmxhdHRlbiB8IGdsb2IgfCBtZXJnZSB8IHJlZ2V4cCB8IHBhY2thZ2UgfCB1bnBhY2thZ2UpICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNsYXNzcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgY2xhc3NwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3VzdG9tIChjbGFzc3BhdGggfCBwYXJhbSkqPgorPCFBVFRMSVNUIGN1c3RvbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGFyYW0gRU1QVFk+Cis8IUFUVExJU1QgcGFyYW0KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcmVzZW50IChtYXBwZXIpKj4KKzwhQVRUTElTVCBwcmVzZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZW50IChzcmNvbmx5IHwgYm90aCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBub25lIChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBub25lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBub3QgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIG5vdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHlwZSBFTVBUWT4KKzwhQVRUTElTVCB0eXBlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpcikgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1vZGlmaWVkIChwYXJhbSkqPgorPCFBVFRMSVNUIG1vZGlmaWVkCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjb21wYXJhdG9yIChlcXVhbCB8IHJ1bGUpICNJTVBMSUVECisgICAgICAgICAgc2VsZGlycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhbGdvcml0aG0gKGhhc2h2YWx1ZSB8IGRpZ2VzdCkgI0lNUExJRUQKKyAgICAgICAgICBjYWNoZSAocHJvcGVydHlmaWxlKSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVwZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBvciAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1Qgb3IKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbnRhaW5zIEVNUFRZPgorPCFBVFRMSVNUIGNvbnRhaW5zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZXdoaXRlc3BhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGV4dCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlcGVuZCAobWFwcGVyKSo+Cis8IUFUVExJU1QgZGVwZW5kCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRpZmZlcmVudCAobWFwcGVyKSo+Cis8IUFUVExJU1QgZGlmZmVyZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVjb250ZW50cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVmaWxldGltZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzaXplIEVNUFRZPgorPCFBVFRMSVNUIHNpemUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHdoZW4gKGxlc3MgfCBtb3JlIHwgZXF1YWwpICNJTVBMSUVECisgICAgICAgICAgdW5pdHMgKEsgfCBrIHwga2lsbyB8IEtJTE8gfCBLaSB8IEtJIHwga2kgfCBraWJpIHwgS0lCSSB8IE0gfCBtIHwgbWVnYSB8IE1FR0EgfCBNaSB8IE1JIHwgbWkgfCBtZWJpIHwgTUVCSSB8IEcgfCBnIHwgZ2lnYSB8IEdJR0EgfCBHaSB8IEdJIHwgZ2kgfCBnaWJpIHwgR0lCSSB8IFQgfCB0IHwgdGVyYSB8IFRFUkEgfCBUaSB8IFRJIHwgdGkgfCB0ZWJpIHwgVEVCSSkgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1ham9yaXR5IChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBtYWpvcml0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGFsbG93dGllICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29udGFpbnNyZWdleHAgRU1QVFk+Cis8IUFUVExJU1QgY29udGFpbnNyZWdleHAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4cHJlc3Npb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlbmFtZSBFTVBUWT4KKzwhQVRUTElTVCBmaWxlbmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmVnYXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNlbGVjdG9yIChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBzZWxlY3RvcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkYXRlIEVNUFRZPgorPCFBVFRMSVNUIGRhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgbWlsbGlzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2hlY2tkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRhdGV0aW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2hlbiAoYmVmb3JlIHwgYWZ0ZXIgfCBlcXVhbCkgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYW5kIChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBhbmQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlcHRoIEVNUFRZPgorPCFBVFRMSVNUIGRlcHRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBtYXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1pbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkaXJzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGRpcnNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXh0ZGlycyAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgZXh0ZGlycworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4aXN0aW5nIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBleGlzdGluZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGVsaXN0IChmaWxlKSo+Cis8IUFUVExJU1QgZmlsZWxpc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGUgRU1QVFk+Cis8IUFUVExJU1QgZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhdGhlbGVtZW50IEVNUFRZPgorPCFBVFRMSVNUIHBhdGhlbGVtZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVybWFwcGVyIChoZWFkZmlsdGVyIHwgY2xhc3Njb25zdGFudHMgfCBsaW5lY29udGFpbnMgfCBmaWx0ZXJyZWFkZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNldG9rZW5zIHwgZXNjYXBldW5pY29kZSB8IGlnbm9yZWJsYW5rIHwgdGFpbGZpbHRlciB8IHRhYnN0b3NwYWNlcyB8IHByZWZpeGxpbmVzIHwgdHJpbSB8IGV4cGFuZHByb3BlcnRpZXMgfCBzdHJpcGxpbmVicmVha3MgfCByZXBsYWNlc3RyaW5nIHwgc3RyaXBsaW5lY29tbWVudHMgfCB0b2tlbmZpbHRlciB8IHN0cmlwamF2YWNvbW1lbnRzIHwgY29udGFpbnNyZWdleCB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBsaW5lY29udGFpbnNyZWdleHApKj4KKzwhQVRUTElTVCBmaWx0ZXJtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBoZWFkZmlsdGVyIEVNUFRZPgorPCFBVFRMSVNUIGhlYWRmaWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2tpcCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNsYXNzY29uc3RhbnRzIEVNUFRZPgorPCFBVFRMSVNUIGNsYXNzY29uc3RhbnRzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaW5lY29udGFpbnMgKGNvbnRhaW5zKSo+Cis8IUFUVExJU1QgbGluZWNvbnRhaW5zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJyZWFkZXIgKGNsYXNzcGF0aCB8IHBhcmFtKSo+Cis8IUFUVExJU1QgZmlsdGVycmVhZGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXJlZ2V4IEVNUFRZPgorPCFBVFRMSVNUIHJlcGxhY2VyZWdleAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmxhZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNldG9rZW5zICh0b2tlbikqPgorPCFBVFRMSVNUIHJlcGxhY2V0b2tlbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJlZ2ludG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmR0b2tlbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRva2VuIEVNUFRZPgorPCFBVFRMSVNUIHRva2VuCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBrZXkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVzY2FwZXVuaWNvZGUgRU1QVFk+Cis8IUFUVExJU1QgZXNjYXBldW5pY29kZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaWdub3JlYmxhbmsgRU1QVFk+Cis8IUFUVExJU1QgaWdub3JlYmxhbmsKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YWlsZmlsdGVyIEVNUFRZPgorPCFBVFRMSVNUIHRhaWxmaWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2tpcCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhYnN0b3NwYWNlcyBFTVBUWT4KKzwhQVRUTElTVCB0YWJzdG9zcGFjZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhYmxlbmd0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByZWZpeGxpbmVzIEVNUFRZPgorPCFBVFRMSVNUIHByZWZpeGxpbmVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0cmltIEVNUFRZPgorPCFBVFRMSVNUIHRyaW0KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHBhbmRwcm9wZXJ0aWVzIEVNUFRZPgorPCFBVFRMSVNUIGV4cGFuZHByb3BlcnRpZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN0cmlwbGluZWJyZWFrcyBFTVBUWT4KKzwhQVRUTElTVCBzdHJpcGxpbmVicmVha3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmVicmVha3MgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNlc3RyaW5nIEVNUFRZPgorPCFBVFRMSVNUIHJlcGxhY2VzdHJpbmcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdHJpcGxpbmVjb21tZW50cyAoY29tbWVudCkqPgorPCFBVFRMSVNUIHN0cmlwbGluZWNvbW1lbnRzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21tZW50IEVNUFRZPgorPCFBVFRMSVNUIGNvbW1lbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdG9rZW5maWx0ZXIgKGNvbnRhaW5zc3RyaW5nIHwgbGluZXRva2VuaXplciB8IHRyaW0gfCBzdHJpbmd0b2tlbml6ZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNlc3RyaW5nIHwgaWdub3JlYmxhbmsgfCBkZWxldGVjaGFyYWN0ZXJzIHwgY29udGFpbnNyZWdleCB8IGZpbGV0b2tlbml6ZXIpKj4KKzwhQVRUTElTVCB0b2tlbmZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVsaW1vdXRwdXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb250YWluc3N0cmluZyBFTVBUWT4KKzwhQVRUTElTVCBjb250YWluc3N0cmluZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY29udGFpbnMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaW5ldG9rZW5pemVyIEVNUFRZPgorPCFBVFRMSVNUIGxpbmV0b2tlbml6ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVkZWxpbXMgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3RyaW5ndG9rZW5pemVyIEVNUFRZPgorPCFBVFRMSVNUIHN0cmluZ3Rva2VuaXplcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3VwcHJlc3NkZWxpbXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWRlbGltcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWxpbXNhcmV0b2tlbnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVsaW1zIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVsZXRlY2hhcmFjdGVycyBFTVBUWT4KKzwhQVRUTElTVCBkZWxldGVjaGFyYWN0ZXJzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjaGFycyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbnRhaW5zcmVnZXggRU1QVFk+Cis8IUFUVExJU1QgY29udGFpbnNyZWdleAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmxhZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxldG9rZW5pemVyIEVNUFRZPgorPCFBVFRMSVNUIGZpbGV0b2tlbml6ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN0cmlwamF2YWNvbW1lbnRzIEVNUFRZPgorPCFBVFRMSVNUIHN0cmlwamF2YWNvbW1lbnRzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaW5lY29udGFpbnNyZWdleHAgKHJlZ2V4cCkqPgorPCFBVFRMSVNUIGxpbmVjb250YWluc3JlZ2V4cAorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVnZXhwIEVNUFRZPgorPCFBVFRMSVNUIHJlZ2V4cAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJzZXQgKGZpbHRlcnNldCB8IGZpbHRlciB8IGZpbHRlcnNmaWxlKSo+Cis8IUFUVExJU1QgZmlsdGVyc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBiZWdpbnRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJzZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlciBFTVBUWT4KKzwhQVRUTElTVCBmaWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJzZmlsZSBFTVBUWT4KKzwhQVRUTElTVCBmaWx0ZXJzZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpYmZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGxpYmZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdXJsYmFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVpbXBsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXVybCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlzZmlsZXNlbGVjdGVkIChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBpc2ZpbGVzZWxlY3RlZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWVyZ2VtYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgbWVyZ2VtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlkZW50aXR5bWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIGlkZW50aXR5bWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzY3JpcHRmaWx0ZXIgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHNjcmlwdGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1bnBhY2thZ2VtYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgdW5wYWNrYWdlbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBoYW5kbGVkaXJzZXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb25jYXRmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgY29uY2F0ZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVwZW5kIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXh0ZW5zaW9uIEVNUFRZPgorPCFBVFRMSVNUIGV4dGVuc2lvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbnZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGVjaWZpY2F0aW9udmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dGVuc2lvbm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbnZlbmRvcmlkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3BlY2lmaWNhdGlvbnZlbmRvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9udXJsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbnZlbmRvciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGdsb2JtYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgZ2xvYm1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaGFuZGxlZGlyc2VwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVyY2hhaW4gKGhlYWRmaWx0ZXIgfCBjbGFzc2NvbnN0YW50cyB8IGxpbmVjb250YWlucyB8IGZpbHRlcnJlYWRlciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2V0b2tlbnMgfCBlc2NhcGV1bmljb2RlIHwgaWdub3JlYmxhbmsgfCB0YWlsZmlsdGVyIHwgdGFic3Rvc3BhY2VzIHwgcHJlZml4bGluZXMgfCB0cmltIHwgZXhwYW5kcHJvcGVydGllcyB8IHN0cmlwbGluZWJyZWFrcyB8IHJlcGxhY2VzdHJpbmcgfCBzdHJpcGxpbmVjb21tZW50cyB8IHRva2VuZmlsdGVyIHwgc3RyaXBqYXZhY29tbWVudHMgfCBjb250YWluc3JlZ2V4IHwgZGVsZXRlY2hhcmFjdGVycyB8IGxpbmVjb250YWluc3JlZ2V4cCkqPgorPCFBVFRMSVNUIGZpbHRlcmNoYWluCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29tcG9zaXRlbWFwcGVyIChtYXBwZXIpKj4KKzwhQVRUTElTVCBjb21wb3NpdGVtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNsYXNzZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcm9vdGZpbGVzZXQgfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IHJvb3QgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY2xhc3NmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcm9vdGNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByb290ZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgcm9vdGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJvb3QgRU1QVFk+Cis8IUFUVExJU1Qgcm9vdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVnZXhwbWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIHJlZ2V4cG1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaGFuZGxlZGlyc2VwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgeG1sY2F0YWxvZyAoZW50aXR5IHwgY2xhc3NwYXRoIHwgY2F0YWxvZ3BhdGggfCBkdGQgfCB4bWxjYXRhbG9nKSo+Cis8IUFUVExJU1QgeG1sY2F0YWxvZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2F0YWxvZ3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZW50aXR5IEVNUFRZPgorPCFBVFRMSVNUIGVudGl0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHVibGljaWQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjYXRhbG9ncGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgY2F0YWxvZ3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkdGQgRU1QVFk+Cis8IUFUVExJU1QgZHRkCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdWJsaWNpZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZsYXR0ZW5tYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgZmxhdHRlbm1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVzY3JpcHRpb24gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGRlc2NyaXB0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2hhaW5lZG1hcHBlciAobWFwcGVyKSo+Cis8IUFUVExJU1QgY2hhaW5lZG1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGFja2FnZW1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBwYWNrYWdlbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBoYW5kbGVkaXJzZXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB6aXBmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB6aXBmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZW1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlybW9kZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN1YnN0aXR1dGlvbiBFTVBUWT4KKzwhQVRUTElTVCBzdWJzdGl0dXRpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHByZXNzaW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXh0ZW5zaW9uU2V0IChmaWxlc2V0IHwgbGliZmlsZXNldCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIGV4dGVuc2lvblNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlZGlyZWN0b3IgKGVycm9yZmlsdGVyY2hhaW4gfCBvdXRwdXRmaWx0ZXJjaGFpbiB8IGVycm9ybWFwcGVyIHwgaW5wdXRmaWx0ZXJjaGFpbiB8IG91dHB1dG1hcHBlciB8IGlucHV0bWFwcGVyKSo+Cis8IUFUVExJU1QgcmVkaXJlY3RvcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNyZWF0ZWVtcHR5ZmlsZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWx3YXlzbG9nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcmVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXJyb3JmaWx0ZXJjaGFpbiAoaGVhZGZpbHRlciB8IGNsYXNzY29uc3RhbnRzIHwgbGluZWNvbnRhaW5zIHwgZmlsdGVycmVhZGVyIHwgcmVwbGFjZXJlZ2V4IHwgcmVwbGFjZXRva2VucyB8IGVzY2FwZXVuaWNvZGUgfCBpZ25vcmVibGFuayB8IHRhaWxmaWx0ZXIgfCB0YWJzdG9zcGFjZXMgfCBwcmVmaXhsaW5lcyB8IHRyaW0gfCBleHBhbmRwcm9wZXJ0aWVzIHwgc3RyaXBsaW5lYnJlYWtzIHwgcmVwbGFjZXN0cmluZyB8IHN0cmlwbGluZWNvbW1lbnRzIHwgdG9rZW5maWx0ZXIgfCBzdHJpcGphdmFjb21tZW50cyB8IGNvbnRhaW5zcmVnZXggfCBkZWxldGVjaGFyYWN0ZXJzIHwgbGluZWNvbnRhaW5zcmVnZXhwKSo+Cis8IUFUVExJU1QgZXJyb3JmaWx0ZXJjaGFpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG91dHB1dGZpbHRlcmNoYWluIChoZWFkZmlsdGVyIHwgY2xhc3Njb25zdGFudHMgfCBsaW5lY29udGFpbnMgfCBmaWx0ZXJyZWFkZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNldG9rZW5zIHwgZXNjYXBldW5pY29kZSB8IGlnbm9yZWJsYW5rIHwgdGFpbGZpbHRlciB8IHRhYnN0b3NwYWNlcyB8IHByZWZpeGxpbmVzIHwgdHJpbSB8IGV4cGFuZHByb3BlcnRpZXMgfCBzdHJpcGxpbmVicmVha3MgfCByZXBsYWNlc3RyaW5nIHwgc3RyaXBsaW5lY29tbWVudHMgfCB0b2tlbmZpbHRlciB8IHN0cmlwamF2YWNvbW1lbnRzIHwgY29udGFpbnNyZWdleCB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBsaW5lY29udGFpbnNyZWdleHApKj4KKzwhQVRUTElTVCBvdXRwdXRmaWx0ZXJjaGFpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVycm9ybWFwcGVyIChjbGFzc3BhdGggfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBlcnJvcm1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoaWRlbnRpdHkgfCBmbGF0dGVuIHwgZ2xvYiB8IG1lcmdlIHwgcmVnZXhwIHwgcGFja2FnZSB8IHVucGFja2FnZSkgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW5wdXRmaWx0ZXJjaGFpbiAoaGVhZGZpbHRlciB8IGNsYXNzY29uc3RhbnRzIHwgbGluZWNvbnRhaW5zIHwgZmlsdGVycmVhZGVyIHwgcmVwbGFjZXJlZ2V4IHwgcmVwbGFjZXRva2VucyB8IGVzY2FwZXVuaWNvZGUgfCBpZ25vcmVibGFuayB8IHRhaWxmaWx0ZXIgfCB0YWJzdG9zcGFjZXMgfCBwcmVmaXhsaW5lcyB8IHRyaW0gfCBleHBhbmRwcm9wZXJ0aWVzIHwgc3RyaXBsaW5lYnJlYWtzIHwgcmVwbGFjZXN0cmluZyB8IHN0cmlwbGluZWNvbW1lbnRzIHwgdG9rZW5maWx0ZXIgfCBzdHJpcGphdmFjb21tZW50cyB8IGNvbnRhaW5zcmVnZXggfCBkZWxldGVjaGFyYWN0ZXJzIHwgbGluZWNvbnRhaW5zcmVnZXhwKSo+Cis8IUFUVExJU1QgaW5wdXRmaWx0ZXJjaGFpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG91dHB1dG1hcHBlciAoY2xhc3NwYXRoIHwgbWFwcGVyKSo+Cis8IUFUVExJU1Qgb3V0cHV0bWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChpZGVudGl0eSB8IGZsYXR0ZW4gfCBnbG9iIHwgbWVyZ2UgfCByZWdleHAgfCBwYWNrYWdlIHwgdW5wYWNrYWdlKSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbnB1dG1hcHBlciAoY2xhc3NwYXRoIHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgaW5wdXRtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGlkZW50aXR5IHwgZmxhdHRlbiB8IGdsb2IgfCBtZXJnZSB8IHJlZ2V4cCB8IHBhY2thZ2UgfCB1bnBhY2thZ2UpICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByb3BlcnR5ZmlsZSAoZW50cnkpKj4KKzwhQVRUTElTVCBwcm9wZXJ0eWZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVudHJ5IEVNUFRZPgorPCFBVFRMSVNUIGVudHJ5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvcGVyYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0IENEQVRBICNJTVBMSUVECisgICAgICAgICAga2V5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoaW50IHwgZGF0ZSB8IHN0cmluZykgI0lNUExJRUQKKyAgICAgICAgICB1bml0IChtaWxsaXNlY29uZCB8IHNlY29uZCB8IG1pbnV0ZSB8IGhvdXIgfCBkYXkgfCB3ZWVrIHwgbW9udGggfCB5ZWFyKSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtkaXIgRU1QVFk+Cis8IUFUVExJU1QgY2Nta2RpcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vY2hlY2tvdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW1wb3J0dHlwZWxpYiBFTVBUWT4KKzwhQVRUTElTVCBpbXBvcnR0eXBlbGliCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1bnNhZmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VzeXNhcnJheSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuYW1lc3BhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2NoZWNraW4gRU1QVFk+Cis8IUFUVExJU1QgdnNzY2hlY2tpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd3JpdGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3FsICgjUENEQVRBIHwgZmlsZXNldCB8IGNsYXNzcGF0aCB8IHRyYW5zYWN0aW9uKSo+Cis8IUFUVExJU1Qgc3FsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvbmVycm9yIChjb250aW51ZSB8IHN0b3AgfCBhYm9ydCkgI0lNUExJRUQKKyAgICAgICAgICB1c2VyaWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGF1dG9jb21taXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmRibXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmludCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkcml2ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaG93aGVhZGVycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWxpbWl0ZXJ0eXBlIChub3JtYWwgfCByb3cpICNJTVBMSUVECisgICAgICAgICAgZXNjYXBlcHJvY2Vzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhY2hpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2VlcGZvcm1hdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWxpbWl0ZXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0cmFuc2FjdGlvbiAoI1BDREFUQSk+Cis8IUFUVExJU1QgdHJhbnNhY3Rpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN2c3Bhc3MgRU1QVFk+Cis8IUFUVExJU1QgY3ZzcGFzcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3Zzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3NmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3NjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IHJlc291cmNlIHwgZGVmaW5lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgcmVmZXJlbmNlIHwgc3JjIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNzYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW4zMmljb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZpbml0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmVyZW5jZWZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGhzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbmNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXRmOG91dHB1dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VyZXNwb25zZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVkZWZhdWx0cmVmZXJlbmNlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB3YXJubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW4zMnJlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY3JlbWVudGFsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vY29uZmlnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmVyZW5jZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9wdGltaXplICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxtb2R1bGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVuc2FmZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlYWxpZ24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXR0eXBlIChleGUgfCBsaWJyYXJ5IHwgbW9kdWxlIHwgd2luZXhlKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlc291cmNlIEVNUFRZPgorPCFBVFRMSVNUIHJlc291cmNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1YmxpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbWJlZCAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZWZpbmUgRU1QVFk+Cis8IUFUVExJU1QgZGVmaW5lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZWZlcmVuY2UgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHJlZmVyZW5jZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3JjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBzcmMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRpcm5hbWUgRU1QVFk+Cis8IUFUVExJU1QgZGlybmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2VyZWdleHAgKGZpbGVzZXQgfCBzdWJzdGl0dXRpb24gfCByZWdleHApKj4KKzwhQVRUTElTVCByZXBsYWNlcmVnZXhwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGFncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF0Y2ggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ2V0IEVNUFRZPgorPCFBVFRMSVNUIGdldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVlcnJvcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2V0aW1lc3RhbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpqdHJlZSBFTVBUWT4KKzwhQVRUTElTVCBqanRyZWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5vZGVkZWZhdWx0dm9pZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBidWlsZG5vZGVmaWxlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRkaXJlY3RvcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3RhdGljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGphdmFjY2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RlcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZWZhY3RvcnkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbXVsdGkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlzaXRvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RldXNlc3BhcnNlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aXNpdG9yZXhjZXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZXNjb3BlaG9vayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZXBhY2thZ2UgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzbGVlcCBFTVBUWT4KKzwhQVRUTElTVCBzbGVlcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaG91cnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1pbGxpc2Vjb25kcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1pbnV0ZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlY29uZHMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXJsaWItZGlzcGxheSAoZmlsZXNldCkqPgorPCFBVFRMSVNUIGphcmxpYi1kaXNwbGF5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxlbmd0aCBFTVBUWT4KKzwhQVRUTElTVCBsZW5ndGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxlbmd0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0cmltICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1vZGUgKGVhY2ggfCBhbGwpICNJTVBMSUVECisgICAgICAgICAgc3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2hlbiAoZXF1YWwgfCBncmVhdGVyIHwgbGVzcykgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZXBlbmRzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IHRhcmdldGZpbGVzZXQgfCBzcmNmaWxlc2V0IHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgc3JjZmlsZWxpc3QgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQgfCB0YXJnZXRmaWxlbGlzdCkqPgorPCFBVFRMSVNUIGRlcGVuZHNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJnZXRmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0YXJnZXRmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmNmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBzcmNmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmNmaWxlbGlzdCAoZmlsZSkqPgorPCFBVFRMSVNUIHNyY2ZpbGVsaXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJnZXRmaWxlbGlzdCAoZmlsZSkqPgorPCFBVFRMSVNUIHRhcmdldGZpbGVsaXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB6aXAgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCB6aXBncm91cGZpbGVzZXQgfCB6aXBmaWxlc2V0IHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgemlwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB3aGVuZW1wdHkgKGZhaWwgfCBza2lwIHwgY3JlYXRlKSAjSU1QTElFRAorICAgICAgICAgIGtlZXBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZHVwbGljYXRlIChhZGQgfCBwcmVzZXJ2ZSB8IGZhaWwpICNJTVBMSUVECisgICAgICAgICAgcm91bmR1cCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzb25seSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgemlwZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHppcGdyb3VwZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgemlwZ3JvdXBmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXRjaCBFTVBUWT4KKzwhQVRUTElTVCBwYXRjaAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3RyaXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9yaWdpbmFsZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGNoZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJldmVyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYWNrdXBzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZXdoaXRlc3BhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqc3BjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBjb21waWxlcmNsYXNzcGF0aCB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCB3ZWJhcHAgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGpzcGMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG1hcHBlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpZXBsdWdpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlcmNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1cmliYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcGlsZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2VieG1sIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmlyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2ViaW5jIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29tcGlsZXJjbGFzc3BhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGNvbXBpbGVyY2xhc3NwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2ViYXBwIEVNUFRZPgorPCFBVFRMSVNUIHdlYmFwcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN0eWxlIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBmYWN0b3J5IHwgbW9kaWZpZWQgfCBwYXJhbSB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBjbGFzc3BhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgeG1sY2F0YWxvZyB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgb3V0cHV0cHJvcGVydHkgfCBtYXBwZXIgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBzdHlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9jZXNzb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzY2FuaW5jbHVkZWRkaXJlY3RvcmllcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleHRlbnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsb2Fkc3R5bGVzaGVldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3R5bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZhY3RvcnkgKGF0dHJpYnV0ZSkqPgorPCFBVFRMSVNUIGZhY3RvcnkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhdHRyaWJ1dGUgRU1QVFk+Cis8IUFUVExJU1QgYXR0cmlidXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBvdXRwdXRwcm9wZXJ0eSBFTVBUWT4KKzwhQVRUTElTVCBvdXRwdXRwcm9wZXJ0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbmljZSBFTVBUWT4KKzwhQVRUTElTVCBuaWNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3cHJpb3JpdHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdXJyZW50cHJpb3JpdHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0ZXN0IChjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eSB8IHJlZGlyZWN0b3IgfCBib290Y2xhc3NwYXRoIHwgZW52IHwgc3lzcHJvcGVydHlzZXQgfCBwZXJtaXNzaW9ucyB8IGp2bWFyZyB8IGFyZyB8IGFzc2VydGlvbnMgfCB0ZXN0bGV0KSo+Cis8IUFUVExJU1QgdGVzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1hcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmsgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgamFyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlc2hvd3RyYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3dzdWNjZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGp2bXZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3diYW5uZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaG93dHJhY2UgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3lzcHJvcGVydHkgRU1QVFk+Cis8IUFUVExJU1Qgc3lzcHJvcGVydHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGtleSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBib290Y2xhc3NwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBib290Y2xhc3NwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZW52IEVNUFRZPgorPCFBVFRMSVNUIGVudgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAga2V5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN5c3Byb3BlcnR5c2V0IChwcm9wZXJ0eXJlZiB8IHByb3BlcnR5c2V0IHwgbWFwcGVyKSo+Cis8IUFUVExJU1Qgc3lzcHJvcGVydHlzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkeW5hbWljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5lZ2F0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwZXJtaXNzaW9ucyAoZ3JhbnQgfCByZXZva2UpKj4KKzwhQVRUTElTVCBwZXJtaXNzaW9ucworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ3JhbnQgRU1QVFk+Cis8IUFUVExJU1QgZ3JhbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFjdGlvbnMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXZva2UgRU1QVFk+Cis8IUFUVExJU1QgcmV2b2tlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb25zIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganZtYXJnIEVNUFRZPgorPCFBVFRMSVNUIGp2bWFyZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXJnIEVNUFRZPgorPCFBVFRMSVNUIGFyZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGVzdGxldCAoI1BDREFUQSk+Cis8IUFUVExJU1QgdGVzdGxldAorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHN0YW1wIChmb3JtYXQpKj4KKzwhQVRUTElTVCB0c3RhbXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmb3JtYXQgRU1QVFk+Cis8IUFUVExJU1QgZm9ybWF0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lem9uZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVuaXQgKG1pbGxpc2Vjb25kIHwgc2Vjb25kIHwgbWludXRlIHwgaG91ciB8IGRheSB8IHdlZWsgfCBtb250aCB8IHllYXIpICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2Zmc2V0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdW53YXIgKGZpbGVzZXQgfCBwYXR0ZXJuc2V0KSo+Cis8IUFUVExJU1QgdW53YXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzaGlzdG9yeSBFTVBUWT4KKzwhQVRUTElTVCB2c3NoaXN0b3J5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZSAoYnJpZWYgfCBjb2RlZGlmZiB8IG5vZmlsZSB8IGRlZmF1bHQpICNJTVBMSUVECisgICAgICAgICAgbnVtZGF5cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb21sYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlZm9ybWF0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdnNjaGFuZ2Vsb2cgKGZpbGVzZXQgfCB1c2VyIHwgY29tbWFuZGxpbmUpKj4KKzwhQVRUTElTVCBjdnNjaGFuZ2Vsb2cKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGN2c3JzaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhc3NmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdGFydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN2c3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWFsbHlxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb25sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZXhlYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGF5c2lucGFzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YWcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1c2VyIEVNUFRZPgorPCFBVFRMSVNUIHVzZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVzZXJpZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpc3BsYXluYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29tbWFuZGxpbmUgKG1hcmtlciB8IGFyZ3VtZW50KSo+Cis8IUFUVExJU1QgY29tbWFuZGxpbmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYXJrZXIgRU1QVFk+Cis8IUFUVExJU1QgbWFya2VyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhcmd1bWVudCBFTVBUWT4KKzwhQVRUTElTVCBhcmd1bWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NtY2hlY2tpbiAoZmlsZXNldCkqPgorPCFBVFRMSVNUIGNjbWNoZWNraW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbWFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2sgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNjbWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBiemlwMiBFTVBUWT4KKzwhQVRUTElTVCBiemlwMgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN5bmMgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBzeW5jCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWVtcHR5ZGlycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzYWRkIEVNUFRZPgorPCFBVFRMSVNUIHZzc2FkZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd3JpdGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamF2YWRvYyAodGFnbGV0IHwgZG9jbGV0IHwgcGFja2FnZSB8IGFyZyB8IGxpbmsgfCBkb2N0aXRsZSB8IGJvdHRvbSB8IGdyb3VwIHwgcGFja2FnZXNldCB8IGZpbGVzZXQgfCBjbGFzc3BhdGggfCBzb3VyY2VwYXRoIHwgZm9vdGVyIHwgc291cmNlIHwgYm9vdGNsYXNzcGF0aCB8IGhlYWRlciB8IGV4Y2x1ZGVwYWNrYWdlIHwgdGFnKSo+Cis8IUFUVExJU1QgamF2YWRvYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYm90dG9tIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhlYWRlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmsgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2luZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFjY2VzcyAocHJvdGVjdGVkIHwgcHVibGljIHwgcGFja2FnZSB8IHByaXZhdGUpICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9xdWFsaWZpZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdWJsaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXV0aG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvb3RlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZWV4dGVybmFsZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwcm90ZWN0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnJlYWtpdGVyYXRvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub25hdmJhciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmtvZmZsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbHBhcmFtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlua3NvdXJjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVub3NvdXJjZXBhY2thZ2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcml2YXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2hhcnNldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVwcmVjYXRlZGxpc3QgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgc3R5bGVzaGVldGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVwYWNrYWdlbmFtZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXRwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZW5hbWVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luZG93dGl0bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3RyZWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3BsaXRpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jdGl0bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJpYWx3YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9sZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhlbHBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dGRpcnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2hlbHAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9kZXByZWNhdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG92ZXJ2aWV3IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFnbGV0IChwYXRoKSo+Cis8IUFUVExJU1QgdGFnbGV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkb2NsZXQgKHBhdGggfCBwYXJhbSkqPgorPCFBVFRMSVNUIGRvY2xldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGFja2FnZSBFTVBUWT4KKzwhQVRUTElTVCBwYWNrYWdlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGluayBFTVBUWT4KKzwhQVRUTElTVCBsaW5rCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBocmVmIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2ZmbGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlbGlzdGxvYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVsaW5rICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRvY3RpdGxlICgjUENEQVRBKT4KKzwhQVRUTElTVCBkb2N0aXRsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYm90dG9tICgjUENEQVRBKT4KKzwhQVRUTElTVCBib3R0b20KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGdyb3VwIChwYWNrYWdlIHwgdGl0bGUpKj4KKzwhQVRUTElTVCBncm91cAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aXRsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRpdGxlICgjUENEQVRBKT4KKzwhQVRUTElTVCB0aXRsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGFja2FnZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgcGFja2FnZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc291cmNlcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1Qgc291cmNlcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZvb3RlciAoI1BDREFUQSk+Cis8IUFUVExJU1QgZm9vdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb3VyY2UgRU1QVFk+Cis8IUFUVExJU1Qgc291cmNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaGVhZGVyICgjUENEQVRBKT4KKzwhQVRUTElTVCBoZWFkZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4Y2x1ZGVwYWNrYWdlIEVNUFRZPgorPCFBVFRMSVNUIGV4Y2x1ZGVwYWNrYWdlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFnIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0YWcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW5hYmxlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzY29wZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHJhbnNsYXRlIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgdHJhbnNsYXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBidW5kbGVjb3VudHJ5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVuZGxlbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcmNlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1bmRsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1bmRsZWVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidW5kbGV2YXJpYW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmR0b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN0YXJ0dG9rZW4gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzaWduamFyIChmaWxlc2V0KSo+Cis8IUFUVExJU1Qgc2lnbmphcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3RvcmVwYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGF6eSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBqYXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtleXBhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhbGlhcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlY3Rpb25zb25seSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZXlzdG9yZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2lnZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW50ZXJuYWxzZiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdG9yZXR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaWduZWRqYXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY2xvY2sgRU1QVFk+Cis8IUFUVExJU1QgY2Nsb2NrCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBudXNlcnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvYnNvbGV0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjaG93biAobWFwcGVyIHwgc3JjZmlsZSB8IHRhcmdldGZpbGUgfCByZWRpcmVjdG9yIHwgZmlsZWxpc3QgfCBlbnYgfCBmaWxlc2V0IHwgZGlyc2V0IHwgYXJnKSo+Cis8IUFUVExJU1QgY2hvd24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHNvdXJjZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbGxlbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsYXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2tpcGVtcHR5ZmlsZXNldHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcndhcmRzbGFzaCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3duZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZW1pc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbGlmZXhlY3V0aW9uZmFpbHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXhwYXJhbGxlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3JjZmlsZSBFTVBUWT4KKzwhQVRUTElTVCBzcmNmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJnZXRmaWxlIEVNUFRZPgorPCFBVFRMSVNUIHRhcmdldGZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphcmxpYi1hdmFpbGFibGUgKGV4dGVuc2lvbnNldCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIGphcmxpYi1hdmFpbGFibGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHRlbnNpb25zZXQgKGZpbGVzZXQgfCBsaWJmaWxlc2V0IHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgZXh0ZW5zaW9uc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgV3NkbFRvRG90bmV0IEVNUFRZPgorPCFBVFRMSVNUIFdzZGxUb0RvdG5ldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdXJsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWVzcGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhbmd1YWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJ1aWxkbnVtYmVyIEVNUFRZPgorPCFBVFRMSVNUIGJ1aWxkbnVtYmVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpwY292bWVyZ2UgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBqcGNvdm1lcmdlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBob21lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3ZzdmVyc2lvbiAoY29tbWFuZGxpbmUpKj4KKzwhQVRUTElTVCBjdnN2ZXJzaW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjdnNyc2ggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXNzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3Zzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYWxseXF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnZlcnNpb25wcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsaWVudHZlcnNpb25wcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZXhlYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhZyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVqYmphciAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgd2VibG9naWN0b3BsaW5rIHwgcHJlc2VudCB8IG5vbmUgfCBqYm9zcyB8IG5vdCB8IGJvcmxhbmQgfCB3ZWJsb2dpYyB8IHR5cGUgfCBtb2RpZmllZCB8IGlwbGFuZXQgfCBvciB8IGpvbmFzIHwgY29udGFpbnMgfCBkZXBlbmQgfCBzdXBwb3J0IHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgd2Vic3BoZXJlIHwgY29udGFpbnNyZWdleHAgfCBkdGQgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZWpiamFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdG9yZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYmFzZW5hbWV0ZXJtaW5hdG9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbXB2ZXJzaW9uICgxLjAgfCAyLjApICNJTVBMSUVECisgICAgICAgICAgZGVwZW5kZW5jeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VqYXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmxhdGRlc3RkaXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtaW5nIChlamItbmFtZSB8IGRpcmVjdG9yeSB8IGRlc2NyaXB0b3IgfCBiYXNlamFybmFtZSkgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2VibG9naWN0b3BsaW5rIChjbGFzc3BhdGggfCB3bGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5KSo+Cis8IUFUVExJU1Qgd2VibG9naWN0b3BsaW5rCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuZXdjbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWpiZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYnVpbGQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvcGxpbmtkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3bGR0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3ZWJsb2dpY2R0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdsY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtZGVidWdsZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmF0ZWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9sZGNtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlamJjY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2VqYmMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9wbGlua2Rlc2NyaXB0b3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2xjbGFzc3BhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIHdsY2xhc3NwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamJvc3MgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGpib3NzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJvcmxhbmQgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGJvcmxhbmQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcmlmeWFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphdmEyaWlvcHBhcmFtcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJpZnkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJhdGVjbGllbnQgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2VibG9naWMgKGNsYXNzcGF0aCB8IHdsY2xhc3NwYXRoIHwgc3lzcHJvcGVydHkpKj4KKzwhQVRUTElTVCB3ZWJsb2dpYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmV3Y21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmR0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWJ1aWxkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3bGR0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3ZWJsb2dpY2R0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdsY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtZGVidWdsZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmF0ZWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9sZGNtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlamJjY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2VqYmMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlwbGFuZXQgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGlwbGFuZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyYXRlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpYXNob21lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgam9uYXMgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGpvbmFzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBqb25hc3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhZGRpdGlvbmFsYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphdmFjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9yYiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphcnN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZ2VuaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcm1pY29wdHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXZhY29wdHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3ZhbGlkYXRpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyYXRlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXBpbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzZWNwcm9wYWcgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3VwcG9ydCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgc3VwcG9ydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2Vic3BoZXJlIChjbGFzc3BhdGggfCB3YXNjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCB3ZWJzcGhlcmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5ld2NtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlamJkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBybWljb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vaW5mb3JtICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlYnVpbGQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGJzY2hlbWEgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZWpiZGVwbG95ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZTM1ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRlbXBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3ZhbGlkYXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvZGVnZW4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGJ2ZW5kb3IgKFNRTDkyIHwgU1FMOTkgfCBEQjJVREJXSU5fVjcxIHwgREIyVURCT1MzOTBfVjYgfCBEQjJVREJBUzQwMF9WNFI1IHwgT1JBQ0xFX1Y4IHwgSU5GT1JNSVhfVjkyIHwgU1lCQVNFX1YxMTkyIHwgTVNTUUxTRVJWRVJfVjcgfCBNWVNRTF9WMzIzKSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdhc2NsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9sZGNtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0cmFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub3dhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdhc2NsYXNzcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1Qgd2FzY2xhc3NwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2FyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IG1hbmlmZXN0IHwgdHlwZSB8IG1ldGFpbmYgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBsaWIgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBpbmRleGphcnMgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgemlwZ3JvdXBmaWxlc2V0IHwgemlwZmlsZXNldCB8IGNsYXNzZXMgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgd2ViaW5mIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB3YXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGtlZXBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkdXBsaWNhdGUgKGFkZCB8IHByZXNlcnZlIHwgZmFpbCkgI0lNUExJRUQKKyAgICAgICAgICB3aGVuZW1wdHkgKGZhaWwgfCBza2lwIHwgY3JlYXRlKSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByb3VuZHVwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFuaWZlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVwZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdlYnhtbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFuaWZlc3RlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzb25seSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB3YXJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzZXRtYW5pZmVzdCAoc2tpcCB8IG1lcmdlIHwgbWVyZ2V3aXRob3V0bWFpbikgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFuaWZlc3QgKGF0dHJpYnV0ZSB8IHNlY3Rpb24pKj4KKzwhQVRUTElTVCBtYW5pZmVzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2VjdGlvbiAoYXR0cmlidXRlKSo+Cis8IUFUVExJU1Qgc2VjdGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1ldGFpbmYgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIG1ldGFpbmYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGliIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBsaWIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW5kZXhqYXJzIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBpbmRleGphcnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjbGFzc2VzIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjbGFzc2VzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZW1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlybW9kZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdlYmluZiAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgd2ViaW5mCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZW1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlybW9kZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlbmFtZSBFTVBUWT4KKzwhQVRUTElTVCByZW5hbWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNlcXVlbnRpYWwgKCV0YXNrczspKj4KKzwhQVRUTElTVCBzZXF1ZW50aWFsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2VydmVyZGVwbG95ICh3ZWJsb2dpYyB8IGdlbmVyaWMgfCBqb25hcykqPgorPCFBVFRMSVNUIHNlcnZlcmRlcGxveQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGdlbmVyaWMgKGFyZyB8IGNsYXNzcGF0aCB8IGp2bWFyZykqPgorPCFBVFRMSVNUIGdlbmVyaWMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcm9wZXJ0eSAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgcHJvcGVydHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdXJsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VycHJvcGVydHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbnZpcm9ubWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3ViYW50IChyZWZlcmVuY2UgfCBmaWxlc2V0IHwgYnVpbGRwYXRoZWxlbWVudCB8IGRpcnNldCB8IGJ1aWxkcGF0aCB8IHByb3BlcnR5c2V0IHwgZmlsZWxpc3QgfCBwcm9wZXJ0eSkqPgorPCFBVFRMSVNUIHN1YmFudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2FudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0YWxsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdHJlZnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYW50ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1aWxkcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVpbGRwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBidWlsZHBhdGhlbGVtZW50IEVNUFRZPgorPCFBVFRMSVNUIGJ1aWxkcGF0aGVsZW1lbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJ1aWxkcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgYnVpbGRwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbW92ZSAoZmlsdGVyY2hhaW4gfCBmaWxlc2V0IHwgZmlsdGVyc2V0IHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgbW92ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmxhdHRlbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWVtcHR5ZGlycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW5hYmxlbXVsdGlwbGVtYXBwaW5ncyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHByZXNlcnZlbGFzdG1vZGlmaWVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcmluZyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbGRhc20gRU1QVFk+Cis8IUFUVExJU1QgaWxkYXNtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhc3NlbWJsZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgKGFzY2lpIHwgdXRmOCB8IHVuaWNvZGUpICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2dyZXNzYmFyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxpbmVudW1iZXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJhd2V4Y2VwdGlvbmhhbmRsaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNob3dzb3VyY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWV0YWRhdGEgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnl0ZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdW90ZWFsbG5hbWVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGVhZGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpc2liaWxpdHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpdGVtIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29weWRpciAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY29weWRpcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmxhdHRlbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NjaGVja2luIEVNUFRZPgorPCFBVFRMSVNUIGNjY2hlY2tpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmV0aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWRlbnRpY2FsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGNvcHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjdW5sb2NrIEVNUFRZPgorPCFBVFRMSVNUIGNjdW5sb2NrCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2xqc3BjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBjbGFzc3BhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB3bGpzcGMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaXhjcmxmIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBmaXhjcmxmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YWIgKGFkZCB8IGFzaXMgfCByZW1vdmUpICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNyIChhZGQgfCBhc2lzIHwgcmVtb3ZlKSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW9sIChhc2lzIHwgY3IgfCBsZiB8IGNybGYgfCBtYWMgfCB1bml4IHwgZG9zKSAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGphdmFmaWxlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlb2YgKGFkZCB8IGFzaXMgfCByZW1vdmUpICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YWJsZW5ndGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZml4bGFzdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvc2dldCBFTVBUWT4KKzwhQVRUTElTVCBzb3NnZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNvc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2plY3RwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9jYWNoZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NjbWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhdGhjb252ZXJ0IChwYXRoIHwgbWFwIHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgcGF0aGNvbnZlcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHNlcCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJzZXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXRvbmVtcHR5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0b3MgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYXAgRU1QVFk+Cis8IUFUVExJU1QgbWFwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZWNvcmQgRU1QVFk+Cis8IUFUVExJU1QgcmVjb3JkCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nbGV2ZWwgKGVycm9yIHwgd2FybiB8IGluZm8gfCB2ZXJib3NlIHwgZGVidWcpICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbWFjc21vZGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWN0aW9uIChzdGFydCB8IHN0b3ApICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhlYyAoYXJnIHwgcmVkaXJlY3RvciB8IGVudikqPgorPCFBVFRMSVNUIGV4ZWMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbGlmZXhlY3V0aW9uZmFpbHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21rbGFiZWwgRU1QVFk+Cis8IUFUVExJU1QgY2Nta2xhYmVsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm9iIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpwY292cmVwb3J0IChyZWZlcmVuY2UgfCBjb3ZlcmFnZXBhdGggfCBzb3VyY2VwYXRoKSo+Cis8IUFUVExJU1QganBjb3ZyZXBvcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNuYXBzaG90IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9maWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBlcmNlbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZXhlY3V0aXZlIHwgc3VtbWFyeSB8IGRldGFpbGVkIHwgdmVyeWRldGFpbGVkKSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9ybWF0IChodG1sIHwgdGV4dCB8IHhtbCkgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc291cmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY292ZXJhZ2VwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBjb3ZlcmFnZXBhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleGVjb24gKG1hcHBlciB8IHNyY2ZpbGUgfCB0YXJnZXRmaWxlIHwgcmVkaXJlY3RvciB8IGZpbGVsaXN0IHwgZW52IHwgZmlsZXNldCB8IGRpcnNldCB8IGFyZykqPgorPCFBVFRMSVNUIGV4ZWNvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZW1pc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbGxlbCAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21jaGVja291dCAoZmlsZXNldCkqPgorPCFBVFRMSVNUIGNjbWNoZWNrb3V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY21hY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjY21kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYW50IChyZWZlcmVuY2UgfCBwcm9wZXJ0eXNldCB8IHByb3BlcnR5IHwgdGFyZ2V0KSo+Cis8IUFUVExJU1QgYW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluaGVyaXRhbGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdHJlZnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhbnRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFyZ2V0IEVNUFRZPgorPCFBVFRMSVNUIHRhcmdldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHhtbHZhbGlkYXRlIChmaWxlc2V0IHwgY2xhc3NwYXRoIHwgZHRkIHwgeG1sY2F0YWxvZyB8IGF0dHJpYnV0ZSB8IHByb3BlcnR5KSo+Cis8IUFUVExJU1QgeG1sdmFsaWRhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsZW5pZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHhzbHQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IGZhY3RvcnkgfCBtb2RpZmllZCB8IHBhcmFtIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCB4bWxjYXRhbG9nIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBvdXRwdXRwcm9wZXJ0eSB8IG1hcHBlciB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHhzbHQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvY2Vzc29yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2NhbmluY2x1ZGVkZGlyZWN0b3JpZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXh0ZW5zaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbG9hZHN0eWxlc2hlZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0eWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpcGxhbmV0LWVqYmMgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGlwbGFuZXQtZWpiYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZWpiZGVzY3JpcHRvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlhc2Rlc2NyaXB0b3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpYXNob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWNoZWNraW50YXNrIChmaWxlc2V0KSo+Cis8IUFUVExJU1QgY2NtY2hlY2tpbnRhc2sKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbWFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2sgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNjbWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBnemlwIEVNUFRZPgorPCFBVFRMSVNUIGd6aXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgemlwZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBuYXRpdmUyYXNjaWkgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IGFyZyB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IG1hcHBlciB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIG5hdGl2ZTJhc2NpaQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXZlcnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NybXR5cGUgRU1QVFk+Cis8IUFUVExJU1QgY2NybXR5cGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZW5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBybWFsbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGVraW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm9iIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVhciAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCBtYW5pZmVzdCB8IHR5cGUgfCBtZXRhaW5mIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgYXJjaGl2ZXMgfCBpbmRleGphcnMgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgemlwZ3JvdXBmaWxlc2V0IHwgemlwZmlsZXNldCB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGVhcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAga2VlcGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGR1cGxpY2F0ZSAoYWRkIHwgcHJlc2VydmUgfCBmYWlsKSAjSU1QTElFRAorICAgICAgICAgIHdoZW5lbXB0eSAoZmFpbCB8IHNraXAgfCBjcmVhdGUpICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJvdW5kdXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlYXJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcHhtbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFuaWZlc3RlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzb25seSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNldG1hbmlmZXN0IChza2lwIHwgbWVyZ2UgfCBtZXJnZXdpdGhvdXRtYWluKSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhcmNoaXZlcyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgYXJjaGl2ZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW5wdXQgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGlucHV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0dmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWxpZGFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJlc2V0ZGVmICgldGFza3M7KSo+Cis8IUFUVExJU1QgcHJlc2V0ZGVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJtaWMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgZXh0ZGlycyB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBjbGFzc3BhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBjb21waWxlcmFyZyB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHJtaWMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcmlmeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlpb3AgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaWRsb3B0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dGRpcnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2ViYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgYmFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlYW50cnVudGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlamF2YXJ1bnRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlkbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpaW9wb3B0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcmluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdHVidmVyc2lvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbXBpbGVyYXJnIEVNUFRZPgorPCFBVFRMSVNUIGNvbXBpbGVyYXJnCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcGlsZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2hlY2tzdW0gKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjaGVja3N1bQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlZXh0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG90YWxwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVhZGJ1ZmZlcnNpemUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJpZnlwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFsZ29yaXRobSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3ZpZGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFpbCAoZmlsZXNldCB8IGJjYyB8IG1lc3NhZ2UgfCByZXBseXRvIHwgY2MgfCBmcm9tIHwgdG8pKj4KKzwhQVRUTElTVCBtYWlsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgKGF1dG8gfCBtaW1lIHwgdXUgfCBwbGFpbikgI0lNUExJRUQKKyAgICAgICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdWJqZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNzbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWlscG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2VtaW1ldHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJjY2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBseXRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbGhvc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVmaWxlbmFtZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJjYyBFTVBUWT4KKzwhQVRUTElTVCBiY2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWVzc2FnZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgbWVzc2FnZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbWltZXR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbHl0byBFTVBUWT4KKzwhQVRUTElTVCByZXBseXRvCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjIEVNUFRZPgorPCFBVFRMSVNUIGNjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZyb20gRU1QVFk+Cis8IUFUVExJU1QgZnJvbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0byBFTVBUWT4KKzwhQVRUTElTVCB0bworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsb2FkZmlsZSAoZmlsdGVyY2hhaW4pKj4KKzwhQVRUTElTVCBsb2FkZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzY2hlY2tvdXQgRU1QVFk+Cis8IUFUVExJU1QgdnNzY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2V0bG9jYWxjb3B5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxldGltZXN0YW1wIChjdXJyZW50IHwgbW9kaWZpZWQgfCB1cGRhdGVkKSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdyaXRhYmxlZmlsZXMgKHJlcGxhY2UgfCBza2lwIHwgZmFpbCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb3NjaGVja2luIEVNUFRZPgorPCFBVFRMSVNUIHNvc2NoZWNraW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNvc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9qZWN0cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vY2FjaGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9jb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zY21kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtaW1lbWFpbCAoZmlsZXNldCB8IGJjYyB8IG1lc3NhZ2UgfCByZXBseXRvIHwgY2MgfCBmcm9tIHwgdG8pKj4KKzwhQVRUTElTVCBtaW1lbWFpbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NsaXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZWZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIChhdXRvIHwgbWltZSB8IHV1IHwgcGxhaW4pICNJTVBMSUVECisgICAgICAgICAgY2hhcnNldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3ViamVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzc2wgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9saXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlbWltZXR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiY2NsaXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbHl0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haWxob3N0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZmlsZW5hbWVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBndW56aXAgRU1QVFk+Cis8IUFUVExJU1QgZ3VuemlwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbmNhdCAoI1BDREFUQSB8IGZpbHRlcmNoYWluIHwgZmlsZXNldCB8IGZpbGVsaXN0IHwgcGF0aCB8IGZvb3RlciB8IGhlYWRlcikqPgorPCFBVFRMSVNUIGNvbmNhdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiaW5hcnkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW9sIChhc2lzIHwgY3IgfCBsZiB8IGNybGYgfCBtYWMgfCB1bml4IHwgZG9zKSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaXhsYXN0bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNhYiAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNhYgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2FiZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW9ucyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRvdWNoIChmaWxlc2V0IHwgZmlsZWxpc3QgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCB0b3VjaAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1rZGlycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtaWxsaXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZXRpbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXJhbGxlbCAoJXRhc2tzOyB8IGRhZW1vbnMpKj4KKzwhQVRUTElTVCBwYXJhbGxlbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcG9sbGludGVydmFsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRocmVhZHNwZXJwcm9jZXNzb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGhyZWFkY291bnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25hbnkgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGFlbW9ucyAoJXRhc2tzOykqPgorPCFBVFRMSVNUIGRhZW1vbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFudGNhbGwgKHJlZmVyZW5jZSB8IHByb3BlcnR5c2V0IHwgdGFyZ2V0IHwgcGFyYW0pKj4KKzwhQVRUTElTVCBhbnRjYWxsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluaGVyaXRhbGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdHJlZnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21rYmwgRU1QVFk+Cis8IUFUVExJU1QgY2Nta2JsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBubGFiZWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZnVsbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub3dhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlkZW50aWNhbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VsaW5lcm9vdG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NjaGVja291dCBFTVBUWT4KKzwhQVRUTElTVCBjY2NoZWNrb3V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXNlcnZlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdGNvICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RhdGEgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub3dhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnJhbmNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHR5cGVkZWYgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIHR5cGVkZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGFwdHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb25lcnJvciAoZmFpbCB8IHJlcG9ydCB8IGlnbm9yZSkgI0lNUExJRUQKKyAgICAgICAgICBsb2FkZXJyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkYXB0ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKHByb3BlcnRpZXMgfCB4bWwpICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXZlcnNlbG9hZGVyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHhtbHByb3BlcnR5ICh4bWxjYXRhbG9nKSo+Cis8IUFUVExJU1QgeG1scHJvcGVydHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZW1hbnRpY2F0dHJpYnV0ZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2VlcHJvb3QgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29sbGFwc2VhdHRyaWJ1dGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZhbGlkYXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByb290ZGlyZWN0b3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNlbWFudGljYXR0cmlidXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGltcG9ydCBFTVBUWT4KKzwhQVRUTElTVCBpbXBvcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29weSAoZmlsdGVyY2hhaW4gfCBmaWxlc2V0IHwgZmlsdGVyc2V0IHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgY29weQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmxhdHRlbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWVtcHR5ZGlycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW5hYmxlbXVsdGlwbGVtYXBwaW5ncyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHByZXNlcnZlbGFzdG1vZGlmaWVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcmluZyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqc2hhcnBjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IHJlc291cmNlIHwgZGVmaW5lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgcmVmZXJlbmNlIHwgc3JjIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGpzaGFycGMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmVyZW5jZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VyZXNwb25zZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWluY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRpdGlvbmFsbW9kdWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbjMyaWNvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHV0ZjhvdXRwdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWRlZmF1bHRyZWZlcmVuY2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9wdGltaXplICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhcmdldHR5cGUgKGV4ZSB8IGxpYnJhcnkgfCBtb2R1bGUgfCB3aW5leGUpICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdpbjMycmVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzZWN1cmVzY29waW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdXJlamF2YSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdhcm5sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmVyZW5jZWZpbGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3ltbGluayAoZmlsZXNldCkqPgorPCFBVFRMSVNUIHN5bWxpbmsKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmtmaWxlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGluayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYW50c3RydWN0dXJlIEVNUFRZPgorPCFBVFRMSVNUIGFudHN0cnVjdHVyZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNjcmlwdCAoI1BDREFUQSk+Cis8IUFUVExJU1Qgc2NyaXB0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21jcmVhdGV0YXNrIEVNUFRZPgorPCFBVFRMSVNUIGNjbWNyZWF0ZXRhc2sKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN1YnN5c3RlbSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2sgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwbGF0Zm9ybSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNjbWFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNjbWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVsZWFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcnBtIEVNUFRZPgorPCFBVFRMSVNUIHJwbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVtb3Zlc291cmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhbmJ1aWxkZGlyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbW92ZXNwZWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3BlY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b3BkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBycG1idWlsZGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZWxldGUgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBkZWxldGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZW1wdHlkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlbGV0ZW9uZXhpdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZXBsYWNlZmlsdGVyIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IHJlcGxhY2V0b2tlbiB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IHJlcGxhY2V2YWx1ZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHJlcGxhY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHlmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN1bW1hcnkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2VmaWx0ZXJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNlZmlsdGVyIEVNUFRZPgorPCFBVFRMSVNUIHJlcGxhY2VmaWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2V0b2tlbiAoI1BDREFUQSk+Cis8IUFUVExJU1QgcmVwbGFjZXRva2VuCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNldmFsdWUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHJlcGxhY2V2YWx1ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbW1ldHJpY3MgKGZpbGVzZXQgfCBqdm1hcmcgfCBjbGFzc3BhdGggfCBwYXRoIHwgc291cmNlcGF0aCkqPgorPCFBVFRMSVNUIG1tZXRyaWNzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1ldGFtYXRhaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9maWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IChjb21waWxhdGlvbi11bml0cyB8IGZpbGVzIHwgbWV0aG9kcyB8IHR5cGVzIHwgcGFja2FnZXMpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXR0cmliIChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBhdHRyaWIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHNvdXJjZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbGxlbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYWRvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsYXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2tpcGVtcHR5ZmlsZXNldHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcndhcmRzbGFzaCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBoaWRkZW4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3lzdGVtICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJjaGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3YWl0Zm9yIChpc2ZhbHNlIHwgaXNyZWZlcmVuY2UgfCBlcXVhbHMgfCBhdmFpbGFibGUgfCBub3QgfCBjb250YWlucyB8IG9zIHwgb3IgfCBhbmQgfCBmaWxlc21hdGNoIHwgY2hlY2tzdW0gfCBpc3RydWUgfCBpc3NldCB8IHNvY2tldCB8IGh0dHAgfCB1cHRvZGF0ZSkqPgorPCFBVFRMSVNUIHdhaXRmb3IKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNoZWNrZXZlcnl1bml0IChtaWxsaXNlY29uZCB8IHNlY29uZCB8IG1pbnV0ZSB8IGhvdXIgfCBkYXkgfCB3ZWVrKSAjSU1QTElFRAorICAgICAgICAgIGNoZWNrZXZlcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXh3YWl0dW5pdCAobWlsbGlzZWNvbmQgfCBzZWNvbmQgfCBtaW51dGUgfCBob3VyIHwgZGF5IHwgd2VlaykgI0lNUExJRUQKKyAgICAgICAgICBtYXh3YWl0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXNmYWxzZSBFTVBUWT4KKzwhQVRUTElTVCBpc2ZhbHNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc3JlZmVyZW5jZSBFTVBUWT4KKzwhQVRUTElTVCBpc3JlZmVyZW5jZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXF1YWxzIEVNUFRZPgorPCFBVFRMSVNUIGVxdWFscworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdHJpbSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcmcyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJnMSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXZhaWxhYmxlIChjbGFzc3BhdGggfCBmaWxlcGF0aCkqPgorPCFBVFRMSVNUIGF2YWlsYWJsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3Jlc3lzdGVtY2xhc3NlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyKSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgZmlsZXBhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBvcyBFTVBUWT4KKzwhQVRUTElTVCBvcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYW1pbHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmNoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZXNtYXRjaCBFTVBUWT4KKzwhQVRUTElTVCBmaWxlc21hdGNoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlMiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUxIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXN0cnVlIEVNUFRZPgorPCFBVFRMSVNUIGlzdHJ1ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXNzZXQgRU1QVFk+Cis8IUFUVExJU1QgaXNzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29ja2V0IEVNUFRZPgorPCFBVFRMSVNUIHNvY2tldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGh0dHAgRU1QVFk+Cis8IUFUVExJU1QgaHR0cAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdXJsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3JzYmVnaW5hdCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVwdG9kYXRlIChzcmNmaWxlcyB8IG1hcHBlcikqPgorPCFBVFRMSVNUIHVwdG9kYXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3JjZmlsZXMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHNyY2ZpbGVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1bnRhciAoZmlsZXNldCB8IHBhdHRlcm5zZXQpKj4KKzwhQVRUTElTVCB1bnRhcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb24gKG5vbmUgfCBnemlwIHwgYnppcDIpICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsb2FkcHJvcGVydGllcyAoZmlsdGVyY2hhaW4gfCBjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBsb2FkcHJvcGVydGllcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZWNob3Byb3BlcnRpZXMgKHByb3BlcnR5c2V0KSo+Cis8IUFUVExJU1QgZWNob3Byb3BlcnRpZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKHhtbCB8IHRleHQpICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganVuaXQgKGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5IHwgYm9vdGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5c2V0IHwgZW52IHwgdGVzdCB8IHBlcm1pc3Npb25zIHwganZtYXJnIHwgZm9ybWF0dGVyIHwgYmF0Y2h0ZXN0IHwgYXNzZXJ0aW9ucykqPgorPCFBVFRMSVNUIGp1bml0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JrICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGhhbHRvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByaW50c3VtbWFyeSAodHJ1ZSB8IHllcyB8IGZhbHNlIHwgbm8gfCBvbiB8IG9mZiB8IHdpdGhPdXRBbmRFcnIpICNJTVBMSUVECisgICAgICAgICAgaGFsdG9uZmFpbHVyZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsdXJlcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaG93b3V0cHV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGVtcGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVhbnRydW50aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcnRyYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9ya21vZGUgKG9uY2UgfCBwZXJUZXN0IHwgcGVyQmF0Y2gpICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxvYWRpbmcgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZm9ybWF0dGVyIEVNUFRZPgorPCFBVFRMSVNUIGZvcm1hdHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdXNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChwbGFpbiB8IHhtbCB8IGJyaWVmKSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZW5zaW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYmF0Y2h0ZXN0IChmaWxlc2V0IHwgZm9ybWF0dGVyKSo+Cis8IUFUVExJU1QgYmF0Y2h0ZXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhhbHRvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvcmsgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsdXJlcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJ0cmFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBoYWx0b25mYWlsdXJlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjaGdycCAobWFwcGVyIHwgc3JjZmlsZSB8IHRhcmdldGZpbGUgfCByZWRpcmVjdG9yIHwgZmlsZWxpc3QgfCBlbnYgfCBmaWxlc2V0IHwgZGlyc2V0IHwgYXJnKSo+Cis8IUFUVExJU1QgY2hncnAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHNvdXJjZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbGxlbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsYXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2tpcGVtcHR5ZmlsZXNldHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcndhcmRzbGFzaCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ3JvdXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZW1pc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbGlmZXhlY3V0aW9uZmFpbHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXhwYXJhbGxlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYnVuemlwMiBFTVBUWT4KKzwhQVRUTElTVCBidW56aXAyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdoaWNocmVzb3VyY2UgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIHdoaWNocmVzb3VyY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb3B5ZmlsZSBFTVBUWT4KKzwhQVRUTElTVCBjb3B5ZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZm9yY2VvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NjcmVhdGUgRU1QVFk+Cis8IUFUVExJU1QgdnNzY3JlYXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1hY3JvZGVmIChzZXF1ZW50aWFsIHwgZWxlbWVudCB8IGF0dHJpYnV0ZSB8IHRleHQpKj4KKzwhQVRUTElTVCBtYWNyb2RlZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlbGVtZW50IEVNUFRZPgorPCFBVFRMSVNUIGVsZW1lbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGltcGxpY2l0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbmFsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRleHQgRU1QVFk+Cis8IUFUVExJU1QgdGV4dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdHJpbSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25hbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1bmphciAoZmlsZXNldCB8IHBhdHRlcm5zZXQpKj4KKzwhQVRUTElTVCB1bmphcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2YmMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgcmVzb3VyY2UgfCBkZWZpbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZWZlcmVuY2UgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgdmJjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZlcmVuY2VzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcmVzcG9uc2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbW92ZWludGNoZWNrcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haW5jbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxtb2R1bGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luMzJpY29uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uc3RyaWN0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHV0ZjhvdXRwdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWRlZmF1bHRyZWZlcmVuY2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9wdGltaXplICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhcmdldHR5cGUgKGV4ZSB8IGxpYnJhcnkgfCBtb2R1bGUgfCB3aW5leGUpICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByb290bmFtZXNwYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB3aW4zMnJlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbmV4cGxpY2l0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdhcm5sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbmNvbXBhcmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBvcnRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlZmlsZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3c2RsdG9kb3RuZXQgRU1QVFk+Cis8IUFUVExJU1Qgd3NkbHRvZG90bmV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZXNwYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWtkaXIgRU1QVFk+Cis8IUFUVExJU1QgbWtkaXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb25kaXRpb24gKGlzZmFsc2UgfCBpc3JlZmVyZW5jZSB8IGVxdWFscyB8IGF2YWlsYWJsZSB8IG5vdCB8IGNvbnRhaW5zIHwgb3MgfCBvciB8IGFuZCB8IGZpbGVzbWF0Y2ggfCBjaGVja3N1bSB8IGlzdHJ1ZSB8IGlzc2V0IHwgc29ja2V0IHwgaHR0cCB8IHVwdG9kYXRlKSo+Cis8IUFUVExJU1QgY29uZGl0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZWxzZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN2cyAoY29tbWFuZGxpbmUpKj4KKzwhQVRUTElTVCBjdnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGN2c3JzaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhc3NmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdnNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVhbGx5cXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9leGVjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFnIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGVtcGZpbGUgRU1QVFk+Cis8IUFUVExJU1QgdGVtcGZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqdW5pdHJlcG9ydCAocmVwb3J0IHwgZmlsZXNldCkqPgorPCFBVFRMSVNUIGp1bml0cmVwb3J0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBvcnQgRU1QVFk+Cis8IUFUVExJU1QgcmVwb3J0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0eWxlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9ybWF0IChmcmFtZXMgfCBub2ZyYW1lcykgI0lNUExJRUQKKyAgICAgICAgICBleHRlbnNpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21rYXR0ciBFTVBUWT4KKzwhQVRUTElTVCBjY21rYXR0cgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBldmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZW5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXNrZGVmIChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCB0YXNrZGVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRhcHR0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9uZXJyb3IgKGZhaWwgfCByZXBvcnQgfCBpZ25vcmUpICNJTVBMSUVECisgICAgICAgICAgbG9hZGVycmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGFwdGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9ybWF0IChwcm9wZXJ0aWVzIHwgeG1sKSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmV2ZXJzZWxvYWRlciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlY2hvICgjUENEQVRBKT4KKzwhQVRUTElTVCBlY2hvCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGV2ZWwgKGVycm9yIHwgd2FybmluZyB8IGluZm8gfCB2ZXJib3NlIHwgZGVidWcpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2N1cGRhdGUgRU1QVFk+Cis8IUFUVExJU1QgY2N1cGRhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHByZXNlcnZldGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZW5hbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2cgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyYXBoaWNhbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN1cnJlbnR0aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamF2YSAoY2xhc3NwYXRoIHwgc3lzcHJvcGVydHkgfCByZWRpcmVjdG9yIHwgYm9vdGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5c2V0IHwgZW52IHwgcGVybWlzc2lvbnMgfCBqdm1hcmcgfCBhcmcgfCBhc3NlcnRpb25zKSo+Cis8IUFUVExJU1QgamF2YQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1hcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmsgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgamFyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bXZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlbmFtZWV4dCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgcmVuYW1lZXh0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvZXh0ZW5zaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZyb21leHRlbnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzbGFiZWwgRU1QVFk+Cis8IUFUVExJU1QgdnNzbGFiZWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYmFzZW5hbWUgRU1QVFk+Cis8IUFUVExJU1QgYmFzZW5hbWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhZG9jMiAodGFnbGV0IHwgZG9jbGV0IHwgcGFja2FnZSB8IGFyZyB8IGxpbmsgfCBkb2N0aXRsZSB8IGJvdHRvbSB8IGdyb3VwIHwgcGFja2FnZXNldCB8IGZpbGVzZXQgfCBjbGFzc3BhdGggfCBzb3VyY2VwYXRoIHwgZm9vdGVyIHwgc291cmNlIHwgYm9vdGNsYXNzcGF0aCB8IGhlYWRlciB8IGV4Y2x1ZGVwYWNrYWdlIHwgdGFnKSo+Cis8IUFUVExJU1QgamF2YWRvYzIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJvdHRvbSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBoZWFkZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9pbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhY2Nlc3MgKHByb3RlY3RlZCB8IHB1YmxpYyB8IHBhY2thZ2UgfCBwcml2YXRlKSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vcXVhbGlmaWVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHVibGljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dGhvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb290ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXRwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VleHRlcm5hbGZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcHJvdGVjdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJyZWFraXRlcmF0b3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9uYXZiYXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JvdXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rb2ZmbGluZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxwYXJhbSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmtzb3VyY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9jYWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlbm9zb3VyY2VwYWNrYWdlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJpdmF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RlcHJlY2F0ZWRsaXN0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHN0eWxlc2hlZXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcGFja2FnZW5hbWVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0cGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VuYW1lcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbmRvd3RpdGxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm90cmVlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwbGl0aW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZWxpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY3RpdGxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VyaWFsd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvbGQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBoZWxwZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc291cmNlZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRkaXJzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9oZWxwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vZGVwcmVjYXRlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdmVydmlldyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2NwIEVNUFRZPgorPCFBVFRMSVNUIHZzc2NwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCB0YXJmaWxlc2V0IHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgdGFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb24gKG5vbmUgfCBnemlwIHwgYnppcDIpICNJTVBMSUVECisgICAgICAgICAgbG9uZ2ZpbGUgKHdhcm4gfCBmYWlsIHwgdHJ1bmNhdGUgfCBnbnUgfCBvbWl0KSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFyZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgdGFyZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZWxlYWRpbmdzbGFzaGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVpZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JvdXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdpZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNldHByb3h5IEVNUFRZPgorPCFBVFRMSVNUIHNldHByb3h5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBub25wcm94eWhvc3RzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJveHlob3N0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29ja3Nwcm94eWhvc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm94eXBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb2Nrc3Byb3h5cG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJveHl1c2VyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm94eXBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaWxhc20gKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgcmVmZXJlbmNlIHwgc3JjIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGlsYXNtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvd25lciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhcmdldHR5cGUgKGV4ZSB8IGxpYnJhcnkpICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpc3RpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2V5ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvc2NoZWNrb3V0IEVNUFRZPgorPCFBVFRMSVNUIHNvc2NoZWNrb3V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzb3Nob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9qZWN0cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vY2FjaGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9jb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zY21kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhcHBseSAobWFwcGVyIHwgc3JjZmlsZSB8IHRhcmdldGZpbGUgfCByZWRpcmVjdG9yIHwgZmlsZWxpc3QgfCBlbnYgfCBmaWxlc2V0IHwgZGlyc2V0IHwgYXJnKSo+Cis8IUFUVExJU1QgYXBwbHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2tpcGVtcHR5ZmlsZXNldHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbGlmZXhlY3V0aW9uZmFpbHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIgfCBib3RoKSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZHNvdXJjZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcndhcmRzbGFzaCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVtaXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsYXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFyYWxsZWwgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2N1bmNoZWNrb3V0IEVNUFRZPgorPCFBVFRMSVNUIGNjdW5jaGVja291dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGNvcHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphcmxpYi1yZXNvbHZlIChhbnQgfCBsb2NhdGlvbiB8IHVybCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIGphcmxpYi1yZXNvbHZlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjaGVja2V4dGVuc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsb2NhdGlvbiBFTVBUWT4KKzwhQVRUTElTVCBsb2NhdGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1cmwgRU1QVFk+Cis8IUFUVExJU1QgdXJsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdnN0YWdkaWZmIChjb21tYW5kbGluZSkqPgorPCFBVFRMSVNUIGN2c3RhZ2RpZmYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGN2c3JzaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZHRhZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhc3NmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdnNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVhbGx5cXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3RhcnR0YWcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb25sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2V4ZWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdGFydGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YWcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqbGluayAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgbWVyZ2VmaWxlcyB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBhZGRmaWxlcyB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgamxpbmsKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG91dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWRkZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lcmdlZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1lcmdlZmlsZXMgKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIG1lcmdlZmlsZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhZGRmaWxlcyAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgYWRkZmlsZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhY2MgRU1QVFk+Cis8IUFUVExJU1QgamF2YWNjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1Z3BhcnNlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBqYXZhY2Nob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VsYWNoZWNrICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9wdGltaXpldG9rZW5tYW5hZ2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1vbnRva2VuYWN0aW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJ1aWxkdG9rZW5tYW5hZ2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNhbml0eWNoZWNrICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJ1aWxkcGFyc2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG90aGVyYW1iaWd1aXR5Y2hlY2sgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb29rYWhlYWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1Z2xvb2thaGVhZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjaG9pY2VhbWJpZ3VpdHljaGVjayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVuaWNvZGVpbnB1dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VyY2hhcnN0cmVhbSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1Z3Rva2VubWFuYWdlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwbGluZWNvbHVtbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZGlyZWN0b3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FjaGV0b2tlbnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgamF2YXVuaWNvZGVlc2NhcGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3RhdGljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZWNhc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlcnRva2VubWFuYWdlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnJlcG9ydGluZyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjaG1vZCAobWFwcGVyIHwgaW5jbHVkZSB8IHNyY2ZpbGUgfCBleGNsdWRlIHwgdGFyZ2V0ZmlsZSB8IHBhdHRlcm5zZXQgfCByZWRpcmVjdG9yIHwgZW52IHwgZmlsZWxpc3QgfCBmaWxlc2V0IHwgZGlyc2V0IHwgYXJnKSo+Cis8IUFUVExJU1QgY2htb2QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHNvdXJjZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZW1pc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbGlmZXhlY3V0aW9uZmFpbHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXhwYXJhbGxlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGVybSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIgfCBib3RoKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHB2Y3MgKHB2Y3Nwcm9qZWN0KSo+Cis8IUFUVExJU1QgcHZjcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlb25seSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbmZpZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB2Y3NiaW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3b3Jrc3BhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdmNzcHJvamVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVuYW1lZm9ybWF0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcmlkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwb3NpdG9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZXJldHVybmNvZGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmV2aXNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5lc3RhcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb21vdGlvbmdyb3VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHB2Y3Nwcm9qZWN0IEVNUFRZPgorPCFBVFRMSVNUIHB2Y3Nwcm9qZWN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamFybGliLW1hbmlmZXN0IChvcHRpb25zIHwgYXR0cmlidXRlIHwgZGVwZW5kcyB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIGphcmxpYi1tYW5pZmVzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3B0aW9ucyAoZmlsZXNldCB8IGxpYmZpbGVzZXQgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBvcHRpb25zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVwZW5kcyAoZmlsZXNldCB8IGxpYmZpbGVzZXQgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBkZXBlbmRzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamFyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IG1hbmlmZXN0IHwgdHlwZSB8IG1ldGFpbmYgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBpbmRleGphcnMgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgemlwZ3JvdXBmaWxlc2V0IHwgemlwZmlsZXNldCB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGphcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgd2hlbmVtcHR5IChmYWlsIHwgc2tpcCB8IGNyZWF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGR1cGxpY2F0ZSAoYWRkIHwgcHJlc2VydmUgfCBmYWlsKSAjSU1QTElFRAorICAgICAgICAgIHJvdW5kdXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc2V0bWFuaWZlc3QgKHNraXAgfCBtZXJnZSB8IG1lcmdld2l0aG91dG1haW4pICNJTVBMSUVECisgICAgICAgICAgemlwZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtsYnR5cGUgRU1QVFk+Cis8IUFUVExJU1QgY2Nta2xidHlwZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZ2xvYmFsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2hhcmVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZW5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYnJhbmNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2b2IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3JkaW5hcnkgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2NyaXB0ZGVmICgjUENEQVRBIHwgY2xhc3NwYXRoIHwgZWxlbWVudCB8IGF0dHJpYnV0ZSkqPgorPCFBVFRMSVNUIHNjcmlwdGRlZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhbmd1YWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgbG9hZGVycmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJldmVyc2Vsb2FkZXIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVmYXVsdGV4Y2x1ZGVzIEVNUFRZPgorPCFBVFRMSVNUIGRlZmF1bHRleGNsdWRlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVtb3ZlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZWNobyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtcGFyc2UgKGZpbGVzZXQgfCBqdm1hcmcgfCBjbGFzc3BhdGggfCBzb3VyY2VwYXRoKSo+Cis8IUFUVExJU1QgbXBhcnNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGVhbnVwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWV0YW1hdGFob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWdwYXJzZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1Z3NjYW5uZXIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYmxnZW5jbGllbnQgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGJsZ2VuY2xpZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZWpiamFyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGllbnRqYXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqamRvYyBFTVBUWT4KKzwhQVRUTElTVCBqamRvYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXZhY2Nob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGV4dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvbmV0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBnZW5rZXkgKGRuYW1lKSo+Cis8IUFUVExJU1QgZ2Vua2V5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdG9yZXBhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaWdhbGcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtleXBhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtleXNpemUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhbGlhcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtleWFsZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbGlkaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAga2V5c3RvcmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3RvcmV0eXBlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZG5hbWUgKHBhcmFtKSo+Cis8IUFUVExJU1QgZG5hbWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFoIChhcmcgfCBjbGFzc3BhdGggfCBjbGFzcyB8IGJvb3RjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBqYXZhaAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3R1YnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9sZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3MgRU1QVFk+Cis8IUFUVExJU1QgY2xhc3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21rZWxlbSBFTVBUWT4KKzwhQVRUTElTVCBjY21rZWxlbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmV0aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1hc3RlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbHR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3dhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jaGVja291dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2hlY2tpbiAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21yZWNvbmZpZ3VyZSBFTVBUWT4KKzwhQVRUTElTVCBjY21yZWNvbmZpZ3VyZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNjbXByb2plY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmFpbCAoI1BDREFUQSB8IGNvbmRpdGlvbikqPgorPCFBVFRMSVNUIGZhaWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0YXR1cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1bnppcCAoZmlsZXNldCB8IHBhdHRlcm5zZXQpKj4KKzwhQVRUTElTVCB1bnppcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBleHRkaXJzIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgc3JjIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IHNvdXJjZXBhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGJvb3RjbGFzc3BhdGggfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgY29tcGlsZXJhcmcgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBqYXZhYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1Z2xldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVtb3J5aW5pdGlhbHNpemUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXByZWNhdGlvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlYW50cnVudGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlamF2YXJ1bnRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRlbXBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm93YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHByb2NlZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmb3JrICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lbW9yeW1heGltdW1zaXplIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlzdGZpbGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4dGRpcnMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqcGNvdmVyYWdlIChhcmcgfCBzb2NrZXQgfCBmaWxlc2V0IHwganZtYXJnIHwgY2xhc3NwYXRoIHwgdHJpZ2dlcnMgfCBmaWx0ZXJzKSo+Cis8IUFUVExJU1QganBjb3ZlcmFnZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYXBwbGV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlY29yZGZyb21zdGFydCAoY292ZXJhZ2UgfCBub25lIHwgYWxsKSAjSU1QTElFRAorICAgICAgICAgIHZtIChqYXZhMiB8IGpkazExOCB8IGpkazExNykgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3b3JraW5nZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc25hcHNob3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZWVkbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphdmFleGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhpdHByb21wdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2FybmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmluYWxzbmFwc2hvdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHJhY2tuYXRpdmVzICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRyaWdnZXJzIChtZXRob2QpKj4KKzwhQVRUTElTVCB0cmlnZ2VycworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWV0aG9kIEVNUFRZPgorPCFBVFRMSVNUIG1ldGhvZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV2ZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFyYW0gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJzIChpbmNsdWRlIHwgZXhjbHVkZSkqPgorPCFBVFRMSVNUIGZpbHRlcnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvc2xhYmVsIEVNUFRZPgorPCFBVFRMSVNUIHNvc2xhYmVsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzb3Nob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2plY3RwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vY2FjaGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9jb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NjbWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2dldCBFTVBUWT4KKzwhQVRUTElTVCB2c3NnZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGV0aW1lc3RhbXAgKGN1cnJlbnQgfCBtb2RpZmllZCB8IHVwZGF0ZWQpICNJTVBMSUVECisgICAgICAgICAgd3JpdGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd3JpdGFibGVmaWxlcyAocmVwbGFjZSB8IHNraXAgfCBmYWlsKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlbHRyZWUgRU1QVFk+Cis8IUFUVExJU1QgZGVsdHJlZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2NvbmZpZy1kZWJ1Zy54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvY29uZmlnLWRlYnVnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40N2I0MDMzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2NvbmZpZy1kZWJ1Zy54bWwKQEAgLTAsMCArMSwxMCBAQAorPGNvbmZpZworICAgICAgICBob3N0PSIke2hvc3R9IgorICAgICAgICBwb3J0PSIke3BvcnR9IgorICAgICAgICBiYXNlcGF0aD0iJHtiYXNlcGF0aH0iCisgICAgICAgIHByb3RvY29sPSJodHRwIgorICAgICAgICBzdW1tYXJ5PSJ0cnVlIgorICAgICAgICBzYXZlcmVzcG9uc2U9InRydWUiCisgICAgICAgIHJlc3VsdHBhdGg9InJlc3VsdHMiCisgICAgICAgIHJlc3VsdGZpbGU9InJlc3VsdC50eHQiCisgICAgICAgIHNob3dodG1scGFyc2Vyb3V0cHV0PSJ0cnVlIi8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvY29uZmlnLXRpZHkueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2NvbmZpZy10aWR5LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODlhZjY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2NvbmZpZy10aWR5LnhtbApAQCAtMCwwICsxLDEwIEBACis8Y29uZmlnCisgICAgICAgIGhvc3Q9IiR7aG9zdH0iCisgICAgICAgIHBvcnQ9IiR7cG9ydH0iCisgICAgICAgIGJhc2VwYXRoPSIke2Jhc2VwYXRofSIKKyAgICAgICAgcHJvdG9jb2w9Imh0dHAiCisgICAgICAgIHN1bW1hcnk9ImZhbHNlIgorICAgICAgICBzYXZlcmVzcG9uc2U9ImZhbHNlIgorICAgICAgICByZXN1bHRwYXRoPSJyZXN1bHRzIgorICAgICAgICByZXN1bHRmaWxlPSJyZXN1bHQudHh0IgorICAgICAgICBzaG93aHRtbHBhcnNlcm91dHB1dD0idHJ1ZSIvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2NvbmZpZy54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvY29uZmlnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzNhZGQzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2NvbmZpZy54bWwKQEAgLTAsMCArMSw2IEBACis8Y29uZmlnCisgICAgICAgIGhvc3Q9IiR7aG9zdH0iCisgICAgICAgIHBvcnQ9IiR7cG9ydH0iCisgICAgICAgIGJhc2VwYXRoPSIke2Jhc2VwYXRofSIKKyAgICAgICAgcHJvdG9jb2w9Imh0dHAiLz4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2Zvcm0tc3VibWl0LnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9mb3JtLXN1Ym1pdC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDM1Y2RjNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9mb3JtLXN1Ym1pdC54bWwKQEAgLTAsMCArMSwzIEBACis8Y2xpY2tCdXR0b24KKyAgICAgICAgZGVzY3JpcHRpb249IkNsaWNrIFN1Ym1pdCIKKyAgICAgICAgbmFtZT0iJHtidXR0b24uc3VibWl0LmlkfSIvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2xvZ29uLWZhaWwueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2xvZ29uLWZhaWwueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzZmZkZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvbG9nb24tZmFpbC54bWwKQEAgLTAsMCArMSwyIEBACisgICAgICAgICZmb3JtLXN1Ym1pdDsKKyAgICAgICAgJmxvZ29uLXBhZ2U7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2xvZ29uLWhlcm1lcy54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvbG9nb24taGVybWVzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjllMmM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2xvZ29uLWhlcm1lcy54bWwKQEAgLTAsMCArMSwxMSBAQAorJmxvZ29uLW9wZW47Cis8c2V0SW5wdXRGaWVsZAorICAgICAgICBkZXNjcmlwdGlvbj0iUmVnaXN0ZXJlZCB1c2VybmFtZSIKKyAgICAgICAgbmFtZT0idXNlcm5hbWUiCisgICAgICAgIHZhbHVlPSJoZXJtZXMiLz4KKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJDb3JyZWN0IHBhc3N3b3JkIgorICAgICAgICBuYW1lPSJwYXNzd29yZCIKKyAgICAgICAgdmFsdWU9Im0zZHVzNCIvPgorICAgICAgICAmZm9ybS1zdWJtaXQ7CisgICAgICAgICZtZW51LXBhZ2U7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2xvZ29uLW9wZW4ueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2xvZ29uLW9wZW4ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjMTQ1MDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvbG9nb24tb3Blbi54bWwKQEAgLTAsMCArMSw0IEBACis8aW52b2tlCisgICAgICAgIGRlc2NyaXB0aW9uPSJQYXNzIGxvZ29uIgorICAgICAgICB1cmw9IkxvZ29uLmRvIi8+CisgICAgICAgICZsb2dvbi1wYWdlOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9sb2dvbi1wYWdlLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9sb2dvbi1wYWdlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmFiNTkxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2xvZ29uLXBhZ2UueG1sCkBAIC0wLDAgKzEsMyBAQAorPHZlcmlmeVRpdGxlCisgICAgICAgIGRlc2NyaXB0aW9uPSJMb2dvbiBwYWdlIHRpdGxlIgorICAgICAgICB0ZXh0PSIke0xvZ29uLnRpdGxlfSIvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL21lbnUtcGFnZS54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvbWVudS1wYWdlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTgzYzE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL21lbnUtcGFnZS54bWwKQEAgLTAsMCArMSwzIEBACis8dmVyaWZ5dGl0bGUKKyAgICAgICAgZGVzY3JpcHRpb249Ik1lbnUgcGFnZSB0aXRsZSIKKyAgICAgICAgdGV4dD0iJHtNYWluTWVudS50aXRsZX0iLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1oZXJtZXMueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLWhlcm1lcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTkxOWI3ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1oZXJtZXMueG1sCkBAIC0wLDAgKzEsMjEgQEAKKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJ1c2VybmFtZSIKKyAgICAgICAgbmFtZT0idXNlcm5hbWUiCisgICAgICAgIHZhbHVlPSJoZXJtZXMiLz4KKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJwYXNzd29yZCIKKyAgICAgICAgbmFtZT0icGFzc3dvcmQiCisgICAgICAgIHZhbHVlPSJtM2R1czQiLz4KKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJwYXNzd29yZDIiCisgICAgICAgIG5hbWU9InBhc3N3b3JkMiIKKyAgICAgICAgdmFsdWU9Im0zZHVzNCIvPgorPHNldElucHV0RmllbGQKKyAgICAgICAgZGVzY3JpcHRpb249ImZ1bGxOYW1lIgorICAgICAgICBuYW1lPSJmdWxsTmFtZSIKKyAgICAgICAgdmFsdWU9Ikhlcm1lcyBLYXRzb3BvbGlzIi8+Cis8c2V0SW5wdXRGaWVsZAorICAgICAgICBkZXNjcmlwdGlvbj0iZnJvbUFkZHJlc3MiCisgICAgICAgIG5hbWU9ImZyb21BZGRyZXNzIgorICAgICAgICB2YWx1ZT0iaGVybWVzQHNvbWV3aGVyZS5jb20iLz4KKyAgICAgICAgJmZvcm0tc3VibWl0OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1vcGVuLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1vcGVuLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTAxN2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLW9wZW4ueG1sCkBAIC0wLDAgKzEsNCBAQAorPGludm9rZQorICAgICAgICBkZXNjcmlwdGlvbj0iT3BlbiBSZWdpc3RlciBzY3JlZW4iCisgICAgICAgIHVybD0iUmVnaXN0ZXIuZG8iLz4KKyAgICAgICAgJnJlZ2lzdGVyLXBhZ2U7CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItcGFnZS54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItcGFnZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI2NzI0OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1wYWdlLnhtbApAQCAtMCwwICsxLDMgQEAKKzx2ZXJpZnlUaXRsZQorICAgICAgICBkZXNjcmlwdGlvbj0iUmVnaXN0cmF0aW9uIHNjcmVlbiB0aXRsZSIKKyAgICAgICAgdGV4dD0iJHtSZWdpc3Rlci50aXRsZX0iLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy90YXNrZGVmLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy90YXNrZGVmLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjRjMWRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3Rhc2tkZWYueG1sCkBAIC0wLDAgKzEsMjUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgPz4KKzxwcm9qZWN0IG5hbWU9InRhc2tkZWYiPgorICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgVGhpcyBwcm9qZWN0IHByb3ZpZGVzIGZvbGxvd2luZyBlbGVtZW50cyB0byB1c2UgaW4geW91ciB0ZXN0IHNjcmlwdHM6CisKKyAgICAgICAgKDApIGFsbCB3ZWJ0ZXN0J3Mgc3RlcHMgbG9hZGVkIGFuZCByZWFkeSB0byB1c2UsCisgICAgICAgICgxKSB0aGUgcGF0aCAid2VidGVzdC5wYXRoLmlkIiB0aGF0IGluY2x1ZGVzIGFsbCBvZiB3ZWJ0ZXN0J3MKKyAgICAgICAgbGlicmFyaWVzLAorICAgICAgICAoMikgdGhlIGNsYXNzIGxvYWRlciAid2VidGVzdC5sb2FkZXIiIHRoYXQgaXMgdGhlIG9yaWdpbmFsIGxvYWRlciBmb3IKKyAgICAgICAgd2VidGVzdC4KKworICAgICAgICBVc2FnZToKKyAgICAgICAgU2V0IHRoZSBwcm9wZXJ0eSB3ZWJ0ZXN0LmhvbWUgdG8gdGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0aGUgYnVpbGQuemlwCisgICAgICAgIGlzIGV4dHJhY3RlZCwKKyAgICAgICAgYW5kIGNhbGxzOgorICAgICAgICAmbHQ7aW1wb3J0IGZpbGU9IiR7d2VidGVzdC5ob21lfS9saWIvdGFza2RlZi54bWwiICZndDsKKyAgICA8L2Rlc2NyaXB0aW9uPgorCisgICAgPGltcG9ydCBmaWxlPSIke3dlYnRlc3QuaG9tZX0vbGliL2NsYXNzcGF0aC54bWwiLz4KKworICAgIDx0YXNrZGVmIHJlc291cmNlPSJ3ZWJ0ZXN0LnRhc2tkZWYiCisgICAgICAgICAgICAgbG9hZGVycmVmPSJ3ZWJ0ZXN0LmxvYWRlciIKKyAgICAgICAgICAgICBjbGFzc3BhdGhyZWY9IndlYnRlc3QucGF0aC5pZCIKKyAgICAgICAgICAgIC8+Cis8L3Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5ZWU1YzAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWwKQEAgLTAsMCArMSw1MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzwhRE9DVFlQRSBzdHJ1dHMtY29uZmlnIFBVQkxJQworICAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAxLjMvL0VOIgorICAgICAgICAiaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL2R0ZHMvc3RydXRzLWNvbmZpZ18xXzMuZHRkIj4KKworPHN0cnV0cy1jb25maWc+CisKKyAgIDxmb3JtLWJlYW5zPgorICAgICAgIDxmb3JtLWJlYW4KKyAgICAgICAgICAgICAgIG5hbWU9IkJhc2VGb3JtIgorICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLkR5bmFWYWxpZGF0b3JGb3JtIj4KKyAgICAgICAgICAgPGZvcm0tcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICBuYW1lPSJ1c2VybmFtZSIKKyAgICAgICAgICAgICAgICAgICB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIi8+CisgICAgICAgICAgIDxmb3JtLXByb3BlcnR5CisgICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmQiCisgICAgICAgICAgICAgICAgICAgdHlwZT0iamF2YS5sYW5nLlN0cmluZyIvPgorICAgICAgICAgICAgPC9mb3JtLWJlYW4+CisgICAgPC9mb3JtLWJlYW5zPgorCisgICAgPGFjdGlvbi1tYXBwaW5ncworICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJlcXVlc3RBY3Rpb25NYXBwaW5nIj4KKworICAgICAgICA8YWN0aW9uIHBhdGg9Ii9NYWluTWVudSIKKyAgICAgICAgICAgICAgICBmb3J3YXJkPSIvTWFpbk1lbnUuanNwIgorICAgICAgICAgICAgICAgIHZhbGlkYXRlPSJmYWxzZSIvPgorCisgICAgPC9hY3Rpb24tbWFwcGluZ3M+CisKKyAgICA8Y29udHJvbGxlcgorICAgICAgICAgICAgaW5wdXRGb3J3YXJkPSJ0cnVlIi8+CisKKyAgICA8bWVzc2FnZS1yZXNvdXJjZXMKKyAgICAgICAgICAgIHBhcmFtZXRlcj0iTWVzc2FnZVJlc291cmNlcyIvPgorCisgICAgPHBsdWctaW4KKyAgICAgICAgICAgIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmNvdXJzZS5NZW1vcnlEYXRhYmFzZVBsdWdJbiI+CisgICAgICAgIDxzZXQtcHJvcGVydHkKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eT0icGF0aG5hbWUiCisgICAgICAgICAgICAgICAgdmFsdWU9Ii9XRUItSU5GL2RhdGFiYXNlLnhtbCIvPgorICAgIDwvcGx1Zy1pbj4KKworICAgIDxwbHVnLWluCisgICAgICAgICAgICBjbGFzc05hbWU9Im9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5WYWxpZGF0b3JQbHVnSW4iPgorICAgICAgICA8c2V0LXByb3BlcnR5CisgICAgICAgICAgICAgICAgcHJvcGVydHk9InBhdGhuYW1lcyIKKyAgICAgICAgICAgICAgICB2YWx1ZT0iL29yZy9hcGFjaGUvc3RydXRzL3ZhbGlkYXRvci92YWxpZGF0b3ItcnVsZXMueG1sLAorICAgICAgICAgICAgICAgIC9XRUItSU5GL0xvZ29uLXZhbGlkYXRlLnhtbCwvV0VCLUlORi9SZWdpc3Rlci12YWxpZGF0ZS54bWwiCisgICAgICAgICAgICAgICAgLz4KKyAgICA8L3BsdWctaW4+CisKKzwvc3RydXRzLWNvbmZpZz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtaHRtbC50bGQgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvc3RydXRzLWh0bWwudGxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NDg0M2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvc3RydXRzLWh0bWwudGxkCkBAIC0wLDAgKzEsODc1MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSB0YWdsaWIKKyAgICAgICAgUFVCTElDICItLy9TdW4gTWljcm9zeXN0ZW1zLCBJbmMuLy9EVEQgSlNQIFRhZyBMaWJyYXJ5IDEuMi8vRU4iCisgICAgICAgICJodHRwOi8vamF2YS5zdW4uY29tL2R0ZC93ZWItanNwdGFnbGlicmFyeV8xXzIuZHRkIj4KKzx0YWdsaWI+CisgICAgPHRsaWItdmVyc2lvbj4xLjM8L3RsaWItdmVyc2lvbj4KKyAgICA8anNwLXZlcnNpb24+MS4yPC9qc3AtdmVyc2lvbj4KKyAgICA8c2hvcnQtbmFtZT5odG1sPC9zaG9ydC1uYW1lPgorICAgIDx1cmk+aHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtaHRtbDwvdXJpPgorICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgPCFbQ0RBVEFbCisgIDxwPgorICAgICAgICBUaGlzIHRhZ2xpYiBjb250YWlucyB0YWdzIHVzZWQgdG8gY3JlYXRlIHN0cnV0cworICAgICAgICBpbnB1dCBmb3JtcywgYXMgd2VsbCBhcyBvdGhlciB0YWdzIGdlbmVyYWxseSB1c2VmdWwKKyAgICAgICAgICAgICAgICBpbiB0aGUgY3JlYXRpb24gb2YgSFRNTC1iYXNlZCB1c2VyIGludGVyZmFjZXMuCisgIDwvcD4KKworICA8cD5NYW55IG9mIHRoZSB0YWdzIGluIHRoaXMgdGFnIGxpYnJhcnkgd2lsbCB0aHJvdyBhCisgIDxjb2RlPkpzcEV4Y2VwdGlvbjwvY29kZT4gYXQgcnVudGltZSB3aGVuIHRoZXkgYXJlIHV0aWxpemVkIGluY29ycmVjdGx5CisgIChzdWNoIGFzIHdoZW4geW91IHNwZWNpZnkgYW4gaW52YWxpZCBjb21iaW5hdGlvbiBvZiB0YWcgYXR0cmlidXRlcykuICBKU1AKKyAgYWxsb3dzIHlvdSB0byBkZWNsYXJlIGFuICJlcnJvciBwYWdlIiBpbiB0aGUgPGNvZGU+Jmx0OyVAIHBhZ2UgJSZndDs8L2NvZGU+CisgIGRpcmVjdGl2ZS4gIElmIHlvdSB3aXNoIHRvIHByb2Nlc3MgdGhlIGFjdHVhbCBleGNlcHRpb24gdGhhdCBjYXVzZWQgdGhlCisgIHByb2JsZW0sIGl0IGlzIHBhc3NlZCB0byB0aGUgZXJyb3IgcGFnZSBhcyBhIHJlcXVlc3QgYXR0cmlidXRlIHVuZGVyIGtleQorICA8Y29kZT5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uRVhDRVBUSU9OPC9jb2RlPi48L3A+CisgIF1dPgorICAgIDwvZGVzY3JpcHRpb24+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+YmFzZTwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5CYXNlVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+ZW1wdHk8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPlJlbmRlciBhbiBIVE1MIDxjb2RlPiZsdDtiYXNlJmd0OzwvY29kZT4gRWxlbWVudDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICA8cD5SZW5kZXJzIGFuIEhUTUwgPGNvZGU+Jmx0O2Jhc2UmZ3Q7PC9jb2RlPiBlbGVtZW50IHdpdGggYW4KKyAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUgcG9pbnRpbmcgdG8gdGhlIGFic29sdXRlIGxvY2F0aW9uIG9mCisgICAgICAgICAgdGhlIGVuY2xvc2luZyBKU1AgcGFnZS4gIFRoaXMgdGFnIGlzIHZhbGlkIG9ubHkgd2hlbiBuZXN0ZWQgaW5zaWRlCisgICAgICAgICAgYW4gSFRNTCA8Y29kZT4mbHQ7aGVhZCZndDs8L2NvZGU+IGVsZW1lbnQuPC9wPgorCisgICAgICAgICAgPHA+VGhpcyB0YWcgaXMgdXNlZnVsIGJlY2F1c2UgaXQgYWxsb3dzIHlvdSB0byB1c2UgcmVsYXRpdmUgVVJMCisgICAgICAgICAgcmVmZXJlbmNlcyBpbiB0aGUgcGFnZSB0aGF0IGFyZSBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBVUkwgb2YgdGhlCisgICAgICAgICAgcGFnZSBpdHNlbGYsIHJhdGhlciB0aGFuIHRoZSBVUkwgdG8gd2hpY2ggdGhlIG1vc3QgcmVjZW50IHN1Ym1pdAorICAgICAgICAgIHRvb2sgcGxhY2UgKHdoaWNoIGlzIHdoZXJlIHRoZSBicm93c2VyIHdvdWxkIG5vcm1hbGx5IHJlc29sdmUKKyAgICAgICAgICByZWxhdGl2ZSByZWZlcmVuY2VzIGFnYWluc3QpLjwvcD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhcmdldDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgIDxwPlRoZSB3aW5kb3cgdGFyZ2V0IGZvciB0aGlzIGJhc2UgcmVmZXJlbmNlLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zZXJ2ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICA8cD5UaGUgc2VydmVyIG5hbWUgdG8gdXNlIGluc3RlYWQgb2YgcmVxdWVzdC5nZXRTZXJ2ZXJOYW1lKCkuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnJlZjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgIDxwPlRoZSByZWZlcmVuY2UgZnJvbSB3aGljaCB0aGUgYmFzZSB1cmkgd2lsbCBjcmVhdGVkLiAgUG9zc2libGUgdmFsdWVzIGFyZToKKyAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxjb2RlPnBhZ2U8L2NvZGU+IC0gVGhlIGJhc2UgdXJpIHdpbGwgYmUgdGhlIGpzcCBwYWdlIGxvY2F0aW9uLiAoZGVmYXVsdCk8L2xpPgorICAgICAgICAgICAgICAgIDxsaT48Y29kZT5zaXRlPC9jb2RlPiAtIFRoZSBiYXNlIHVyaSB3aWxsIGJlIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0IHBhdGguPC9saT4KKyAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMzwvZGQ+PC9kbD4KKworICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5idXR0b248L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQnV0dG9uVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgQSBCdXR0b24gSW5wdXQgRmllbGQ8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUKKyAgICAgICAgICAgICAgICA8Y29kZT5idXR0b248L2NvZGU+LCBwb3B1bGF0ZWQgZnJvbSB0aGUgc3BlY2lmaWVkIHZhbHVlIG9yIHRoZQorICAgICAgICAgICAgICAgIGNvbnRlbnQgb2YgdGhpcyB0YWcgYm9keS4gVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuIG5lc3RlZAorICAgICAgICAgICAgICAgIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuCisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICBJZiBhIGdyYXBoaWNhbCBidXR0b24gaXMgbmVlZGVkIChhIGJ1dHRvbiB3aXRoIGFuIGltYWdlKSwgdGhlbiB0aGUKKyAgICAgICAgICAgICA8YSBocmVmPSIjaW1hZ2UiPjxjb2RlPmltYWdlPC9jb2RlPjwvYT4gdGFnIGlzIG1vcmUgYXBwcm9wcmlhdGUuCisgICAgICAgICAgICA8L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgPHA+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuPC9wPgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgPHA+U2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuPC9wPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VmFsaWQgb25seSBpbnNpZGUgb2YgPGNvZGU+bG9naWM6aXRlcmF0ZTwvY29kZT4gdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJwcm9wZXJ0eU5hbWVbMzRdIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkIGZvcgorICAgICAgICAgICAgICAgIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsdWUgb2YgdGhlIGxhYmVsIHRvIGJlIHBsYWNlZCBvbiB0aGlzIGJ1dHRvbi4gVGhpcyB2YWx1ZSB3aWxsCisgICAgICAgICAgICAgICAgYWxzbyBiZSBzdWJtaXR0ZWQgYXMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXJhbWV0ZXIuCisgICAgICAgICAgICAgICAgW0JvZHkgb2YgdGhpcyB0YWcgKGlmIGFueSksIG9yICJDbGljayJdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmNhbmNlbDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DYW5jZWxUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIGEgQ2FuY2VsIEJ1dHRvbgorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUgc3VibWl0LiBUaGlzIHRhZyBpcyBvbmx5CisgICAgICAgICAgICAgICAgdmFsaWQgd2hlbiBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS4gUHJlc3Npbmcgb2YgdGhpcyBzdWJtaXQKKyAgICAgICAgICAgICAgICBidXR0b24gY2F1c2VzIHRoZSBhY3Rpb24gc2VydmxldCB0byBieXBhc3MgY2FsbGluZyB0aGUgYXNzb2NpYXRlZAorICAgICAgICAgICAgICAgIGZvcm0gYmVhbiB2YWxpZGF0ZSgpIG1ldGhvZC4gVGhlIGFjdGlvbiBpcyBjYWxsZWQgbm9ybWFsbHkuCisgICAgICAgICAgICA8L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgICAgIDxzdHJvbmc+V0FSTklORzwvc3Ryb25nPiAtIElmIHlvdSBzZXQgdGhpcyBhdHRyaWJ1dGUgdG8gYQorICAgICAgICAgICAgICAgIHZhbHVlIG90aGVyIHRoYW4gdGhlIGRlZmF1bHQsIHRoaXMgd2lsbCA8ZW0+Tk9UPC9lbT4gYmUKKyAgICAgICAgICAgICAgICByZWNvZ25pemVkIGFzIHRoZSBjYW5jZWwga2V5IGJ5IHRoZSBTdHJ1dHMgY29udHJvbGxlciBzZXJ2bGV0CisgICAgICAgICAgICAgICAgb3IgdGhlIDxjb2RlPkFjdGlvbi5pc0NhbmNlbGxlZCgpPC9jb2RlPiBtZXRob2QuICBZb3Ugd2lsbAorICAgICAgICAgICAgICAgIG5lZWQgdG8gZG8geW91ciBvd24gY2FuY2VsIGRldGVjdGlvbi4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbHVlIG9mIHRoZSBsYWJlbCB0byBiZSBwbGFjZWQgb24gdGhpcyBidXR0b24uIFRoaXMgdmFsdWUgd2lsbAorICAgICAgICAgICAgICAgIGFsc28gYmUgc3VibWl0dGVkIGFzIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHJlcXVlc3QgcGFyYW1ldGVyLgorICAgICAgICAgICAgICAgIFtCb2R5IG9mIHRoaXMgdGFnIChpZiBhbnkpLCBvciAiQ2FuY2VsIl0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+Y2hlY2tib3g8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2hlY2tib3hUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgQ2hlY2tib3ggSW5wdXQgRmllbGQKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5jaGVja2JveDwvY29kZT4sIHBvcHVsYXRlZCBmcm9tIHRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIG9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlIGJlYW4gYXNzb2NpYXRlZAorICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBvdXIgY3VycmVudCBmb3JtLiBUaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LjwvcD4KKworICAgICAgICAgICAgPHA+PHN0cm9uZz5OT1RFPC9zdHJvbmc+OiAgVGhlIHVuZGVybHlpbmcgcHJvcGVydHkgdmFsdWUKKyAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZpZWxkIHNob3VsZCBiZSBvZiB0eXBlIDxjb2RlPmJvb2xlYW48L2NvZGU+LAorICAgICAgICAgICAgYW5kIGFueSA8Y29kZT52YWx1ZTwvY29kZT4geW91IHNwZWNpZnkgc2hvdWxkIGNvcnJlc3BvbmQgdG8gb25lCisgICAgICAgICAgICBvZiB0aGUgU3RyaW5ncyB0aGF0IGluZGljYXRlIGEgdHJ1ZSB2YWx1ZSAoInRydWUiLCAieWVzIiwgb3IKKyAgICAgICAgICAgICJvbiIpLiAgSWYgeW91IHdpc2ggdG8gdXRpbGl6ZSBhIHNldCBvZiByZWxhdGVkIFN0cmluZyB2YWx1ZXMsCisgICAgICAgICAgICBjb25zaWRlciB1c2luZyB0aGUgPGNvZGU+bXVsdGlib3g8L2NvZGU+IHRhZy48L3A+CisKKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+V0FSTklORzwvc3Ryb25nPjogIEluIG9yZGVyIHRvIGNvcnJlY3RseQorICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXplIHVuY2hlY2tlZCBjaGVja2JveGVzLCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgZm9ybQorICAgICAgICAgICAgICAgICAgICAgICAgbXVzdCBpbmNsdWRlIGEgc3RhdGVtZW50IHNldHRpbmcgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gcHJvcGVydHkgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IGluIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+cmVzZXQoKTwvY29kZT4gbWV0aG9kLjwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgorCisgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4sIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4gYW5kIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGVzIGFuZCBzaG91bGQgYmUgc2V0IHRvCisgICAgICAgICAgICAgICAgICB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZQorICAgICAgICAgICAgICAgICAgJmx0O2h0bWw6ZXJyb3JzLyZndDsgdGFnLjwvcD4gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlQ2xhc3M8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiA8Y29kZT5sb2dpYzppdGVyYXRlPC9jb2RlPiB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgImlkWzM0XS5wcm9wZXJ0eU5hbWUiLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBjb25zdWx0ZWQgd2hlbgorICAgICAgICAgICAgICAgIHJlbmRlcmluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIGlucHV0IGZpZWxkLiBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybSB0YWcgd2UgYXJlIG5lc3RlZCB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIGJlIHRyYW5zbWl0dGVkIGlmIHRoaXMgY2hlY2tib3ggaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuICBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHZhbHVlICJvbiIgd2lsbCBiZSByZXR1cm5lZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+ZXJyb3JzPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkVycm9yc1RhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PmVtcHR5PC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgICAgICBDb25kaXRpb25hbGx5IGRpc3BsYXkgYSBzZXQgb2YgYWNjdW11bGF0ZWQgZXJyb3IgbWVzc2FnZXMuCisgICAgICAgICAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgICAgIDxwPkRpc3BsYXlzIGEgc2V0IG9mIGVycm9yIG1lc3NhZ2VzIHByZXBhcmVkIGJ5IGEgYnVzaW5lc3MKKyAgICAgICAgICAgICAgICBsb2dpYyBjb21wb25lbnQgYW5kIHN0b3JlZCBhcyBhbiA8Y29kZT5BY3Rpb25NZXNzYWdlczwvY29kZT4KKyAgICAgICAgICAgICAgICBvYmplY3QsIGFuIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4KKyAgICAgICAgICAgICAgICBvYmplY3QsIGEgU3RyaW5nLCBvciBhIFN0cmluZyBhcnJheSBpbiByZXF1ZXN0IHNjb3BlLiAgSWYKKyAgICAgICAgICAgICAgICBzdWNoIGEgYmVhbiBpcyBub3QgZm91bmQsIG5vdGhpbmcgd2lsbCBiZSByZW5kZXJlZC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5JbiBvcmRlciB0byB1c2UgdGhpcyB0YWcgc3VjY2Vzc2Z1bGx5LCB5b3UgbXVzdCBoYXZlCisgICAgICAgICAgICAgICAgZGVmaW5lZCBhbiBhcHBsaWNhdGlvbiBzY29wZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPgorICAgICAgICAgICAgICAgIGJlYW4gdW5kZXIgdGhlIGRlZmF1bHQgYXR0cmlidXRlIG5hbWUsIHdpdGggb3B0aW9uYWwKKyAgICAgICAgICAgICAgICBkZWZpbml0aW9ucyBvZiBtZXNzYWdlIGtleXMgc3BlY2lmaWVkIGluIHRoZSBmb2xsb3dpbmcKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+aGVhZGVyPC9zdHJvbmc+IC0gVGV4dCB0aGF0IHdpbGwgYmUgcmVuZGVyZWQKKyAgICAgICAgICAgICAgICBiZWZvcmUgdGhlIGVycm9yIG1lc3NhZ2VzIGxpc3QuICBUeXBpY2FsbHksIHRoaXMgbWVzc2FnZSB0ZXh0CisgICAgICAgICAgICAgICAgd2lsbCBlbmQgd2l0aCA8Y29kZT4mbHQ7dWwmZ3Q7PC9jb2RlPiB0byBzdGFydCB0aGUKKyAgICAgICAgICAgICAgICBlcnJvciBtZXNzYWdlcyBsaXN0IChkZWZhdWx0ICJlcnJvcnMuaGVhZGVyIikuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5mb290ZXI8L3N0cm9uZz4gLSBUZXh0IHRoYXQgd2lsbCBiZSByZW5kZXJlZAorICAgICAgICAgICAgICAgIGFmdGVyIHRoZSBlcnJvciBtZXNzYWdlcyBsaXN0LiAgVHlwaWNhbGx5LCB0aGlzIG1lc3NhZ2UgdGV4dAorICAgICAgICAgICAgICAgIHdpbGwgYmVnaW4gd2l0aCA8Y29kZT4mbHQ7L3VsJmd0OzwvY29kZT4gdG8gZW5kIHRoZSBlcnJvcgorICAgICAgICAgICAgICAgIG1lc3NhZ2VzIGxpc3QgKGRlZmF1bHQgImVycm9ycy5mb290ZXIiKS48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnByZWZpeDwvc3Ryb25nPiAtIFRleHQgdGhhdCB3aWxsIGJlIHJlbmRlcmVkCisgICAgICAgICAgICAgICAgYmVmb3JlIGVhY2ggaW5kaXZpZHVhbCBlcnJvciBpbiB0aGUgbGlzdCAoZGVmYXVsdCAiZXJyb3JzLnByZWZpeCIpLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+c3VmZml4PC9zdHJvbmc+IC0gVGV4dCB0aGF0IHdpbGwgYmUgcmVuZGVyZWQKKyAgICAgICAgICAgICAgICBhZnRlciBlYWNoIGluZGl2aWR1YWwgZXJyb3IgaW4gdGhlIGxpc3QgKGRlZmF1bHQgImVycm9ycy5zdWZmaXgiKS48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgPHA+U2VlIHRoZSA8Y29kZT5tZXNzYWdlczwvY29kZT4gdGFnIGZvciBhbiBhbHRlcm5hdGl2ZSB0byB0aGlzIHRhZyB0aGF0CisgICAgICAgICAgICAgICAgICAgIGRvZXMgbm90IHJlbHkgb24gSFRNTCBpbiB5b3VyIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+LjwvcD4KKworICAgICAgICAgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZvb3RlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBUaGlzIHZhbHVlIGlzIGFuIG9wdGlvbmFsIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IHRoYXQgd2lsbAorICAgICAgICAgICAgICAgICAgYmUgcHJpbnRlZCBhZnRlciB0aGUgaXRlcmF0aW9uIG9mIGVycm9yIG1lc3NhZ2VzIGhhcyBmaW5pc2hlZC4KKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICJlcnJvcnMuZm9vdGVyIiBpZiBub3Qgc3BlY2lmaWVkLgorICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aGVhZGVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIFRoaXMgdmFsdWUgaXMgYW4gb3B0aW9uYWwgbWVzc2FnZSByZXNvdXJjZSBrZXkgdGhhdCB3aWxsCisgICAgICAgICAgICAgICAgICBiZSBwcmludGVkIGJlZm9yZSB0aGUgaXRlcmF0aW9uIG9mIGVycm9yIG1lc3NhZ2VzIGJlZ2lucy4KKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICJlcnJvcnMuaGVhZGVyIiBpZiBub3Qgc3BlY2lmaWVkLgorICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bG9jYWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3IgdGhlIExvY2FsZSB1c2VkIHRvIHNlbGVjdAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcyB0byBiZSBkaXNwbGF5ZWQuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0bworICAgICAgICAgICAgICAgICAgICB0aGUgU3RydXRzIHN0YW5kYXJkIHZhbHVlLgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggb3VyIGVycm9yIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByZWZpeDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBUaGlzIHZhbHVlIGlzIGFuIG9wdGlvbmFsIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IHRoYXQgd2lsbAorICAgICAgICAgICAgICAgICAgYmUgcHJpbnRlZCBiZWZvcmUgYW4gZXJyb3IgbWVzc2FnZS4KKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICJlcnJvcnMucHJlZml4IiBpZiBub3Qgc3BlY2lmaWVkLgorICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcHJvcGVydHkgZm9yIHdoaWNoIGVycm9yIG1lc3NhZ2VzIHNob3VsZCBiZQorICAgICAgICAgICAgICAgICAgZGlzcGxheWVkLiAgSWYgbm90IHNwZWNpZmllZCwgYWxsIGVycm9yIG1lc3NhZ2VzIChyZWdhcmRsZXNzCisgICAgICAgICAgICAgICAgICBvZiBwcm9wZXJ0eSkgYXJlIGRpc3BsYXllZC4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdWZmaXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgVGhpcyB2YWx1ZSBpcyBhbiBvcHRpb25hbCBtZXNzYWdlIHJlc291cmNlIGtleSB0aGF0IHdpbGwKKyAgICAgICAgICAgICAgICAgIGJlIHByaW50ZWQgYWZ0ZXIgYW4gZXJyb3IgbWVzc2FnZS4KKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvICJlcnJvcnMuc3VmZml4IiBpZiBub3Qgc3BlY2lmaWVkLgorICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmZpbGU8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRmlsZVRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgQSBGaWxlIFNlbGVjdCBJbnB1dCBGaWVsZAorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUgZmlsZSwgZGVmYXVsdGluZyB0bworICAgICAgICAgICAgICAgIHRoZSBzcGVjaWZpZWQgdmFsdWUgb3IgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgYmVhbgorICAgICAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCBvdXIgY3VycmVudCBmb3JtLiBUaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4KKyAgICAgICAgICAgICAgICBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIEFzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQsIHRoZQorICAgICAgICAgICAgICAgIGVuY2xvc2luZyBmb3JtIGVsZW1lbnQgbXVzdCBzcGVjaWZ5ICJQT1NUIiBmb3IgdGhlIDxjb2RlPm1ldGhvZDwvY29kZT4KKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUsIGFuZCAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgZm9yIHRoZSA8Y29kZT5lbmN0eXBlPC9jb2RlPgorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZS4gRm9yIGV4YW1wbGU6CisgICAgICAgICAgICA8L3A+CisgICAgPHByZT4KKyAgICAmbHQ7aHRtbDpmb3JtIG1ldGhvZD0iUE9TVCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSImZ3Q7CisgICAgICAgICZsdDtodG1sOmZpbGUgcHJvcGVydHk9InRoZUZpbGUiIC8mZ3Q7CisgICAgJmx0Oy9odG1sOmZvcm0mZ3Q7PC9wcmU+CisKKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgV0FSTklORzogSW4gb3JkZXIgdG8gY29ycmVjdGx5IHJlY29nbml6ZSB1cGxvYWRlZCBmaWxlcywgdGhlIEFjdGlvbkZvcm0gYmVhbgorICAgICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZm9ybSBtdXN0IGluY2x1ZGUgYSBzdGF0ZW1lbnQgc2V0dGluZyB0aGUgY29ycmVzcG9uZGluZworICAgICAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMudXBsb2FkLkZvcm1GaWxlIHByb3BlcnR5IHRvIG51bGwgaW4gdGhlIHJlc2V0KCkgbWV0aG9kLgorICAgICAgICAgICAgPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXB0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDb21tYS1kZWxpbWl0ZWQgc2V0IG9mIGNvbnRlbnQgdHlwZXMgdGhhdCB0aGUgc2VydmVyIHlvdSBzdWJtaXQgdG8KKyAgICAgICAgICAgICAgICBrbm93cyBob3cgdG8gcHJvY2Vzcy4gVGhpcyBsaXN0IGNhbiBiZSB1c2VkIGJ5IHRoZSBjbGllbnQgYnJvd3NlcgorICAgICAgICAgICAgICAgIHRvIGxpbWl0IHRoZSBzZXQgb2YgZmlsZSBvcHRpb25zIHRoYXQgaXMgbWFkZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbi4KKyAgICAgICAgICAgICAgICBJZiBub3Qgc3BlY2lmaWVkLCBubyBjb250ZW50IHR5cGUgbGlzdCB3aWxsIGJlIHNlbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TmFtZSBvZiB0aGUgcmVxdWVzdCBzY29wZSBiZWFuIHVuZGVyIHdoaWNoIG91ciBlcnJvciBtZXNzYWdlcworICAgICAgICAgICAgICAgICAgaGF2ZSBiZWVuIHN0b3JlZC4gIElmIG5vdCBwcmVzZW50LCB0aGUgbmFtZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5HbG9iYWxzLkVSUk9SX0tFWTwvY29kZT4gY29uc3RhbnQgc3RyaW5nIHdpbGwgYmUgdXNlZC48L3A+CisKKyAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBUaGlzIGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPiwgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPiBhbmQgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZXMgYW5kIHNob3VsZCBiZSBzZXQgdG8KKyAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgb24gdGhlCisgICAgICAgICAgICAgICAgICAmbHQ7aHRtbDplcnJvcnMvJmd0OyB0YWcuPC9wPiAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZTwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVDbGFzczwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIDxjb2RlPmxvZ2ljOml0ZXJhdGU8L2NvZGU+IHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bWF4bGVuZ3RoPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBNYXhpbXVtIG51bWJlciBvZiBpbnB1dCBjaGFyYWN0ZXJzIHRvIGFjY2VwdC4gIFRoaXMgaXMgaWdub3JlZAorICAgICAgICAgICAgICAgIGJ5IG1vc3QgYnJvd3NlcnMuIFtObyBsaW1pdF0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkIHdoZW4KKyAgICAgICAgICAgICAgICByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBpbnB1dCBmaWVsZC4gSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFnIHdlIGFyZSBuZXN0ZWQgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoaXMKKyAgICAgICAgICAgICAgICBzdWJtaXNzaW9uLCBzZXQgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zaXplPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBTaXplIG9mIHRoZSBmaWxlIHNlbGVjdGlvbiBib3ggdG8gYmUgZGlzcGxheWVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgPHN0cm9uZz5OT1RFPC9zdHJvbmc+OiBXaGVuIHNldHRpbmcgdGhpcyB0byBzb21lIHZhbHVlLCB3aGV0aGVyCisgICAgICAgICAgICAgICAgaW50ZW50aW9uYWwgb3IgYXMgdGhlIHJlc3VsdCAoZm9yIGV4YW1wbGUpIG9mIHZhbGlkYXRpb24gZXJyb3JzIAorICAgICAgICAgICAgICAgIGZvcmNpbmcgdGhlIHVzZXIgYmFjayB0byB0aGUgb3JpZ2luYWwganNwLCB0aGlzIHZhbHVlIGlzIGlnbm9yZWQgCisgICAgICAgICAgICAgICAgYnkgbW9zdCBicm93c2VycyAoZm9yIHNlY3VyaXR5IHJlYXNvbnMpLgorICAgICAgICAgICAgICAgIFRoaXMgbWVhbnMgdGhhdCB5b3VyIHVzZXJzIHdpbGwgaGF2ZSB0byByZS1zZWxlY3QgYW55IHByZXZpb3VzbHkKKyAgICAgICAgICAgICAgICBzZWxlY3RlZCBmaWxlcyB3aGVuIHN1Ym1pdHRpbmcgdGhlIGZvcm0uICBPcGVyYSB3ZWIgYnJvd3NlciB3aWxsCisgICAgICAgICAgICAgICAgcHJvbXB0IHRoZSB1c2VyIHNvIHRoZXkgaGF2ZSBhIGNoYW5jZSB0byBhYm9ydCB0aGUgc3VibWl0LgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgICAgIFZhbHVlIHRvIHdoaWNoIHRoaXMgZmllbGQgc2hvdWxkIGJlIGluaXRpYWxpemVkLiBbVXNlIHRoZQorICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eSB2YWx1ZSBvciBib2R5IGNvbnRlbnQgKGlmIGFueSkgaWYgCisgICAgICAgICAgICAgICAgcHJvcGVydHkgaXMgbm90IHNwZWNpZmllZF0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+Zm9ybTwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5Gb3JtVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+SlNQPC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIERlZmluZSBBbiBJbnB1dCBGb3JtCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7Zm9ybSZndDsgZWxlbWVudCB3aG9zZSBjb250ZW50cyBhcmUgZGVzY3JpYmVkCisgICAgICAgICAgICAgICAgYnkgdGhlIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZy4gVGhlIGZvcm0gaW1wbGljaXRseSBpbnRlcmFjdHMKKyAgICAgICAgICAgICAgICB3aXRoIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBzY29wZSBvciBzZXNzaW9uIHNjb3BlIGJlYW4gdG8gcG9wdWxhdGUKKyAgICAgICAgICAgICAgICB0aGUgaW5wdXQgZmllbGRzIHdpdGggdGhlIGN1cnJlbnQgcHJvcGVydHkgdmFsdWVzIGZyb20gdGhlIGJlYW4uCisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBUaGUgZm9ybSBiZWFuIGlzIGxvY2F0ZWQsIGFuZCBjcmVhdGVkIGlmIG5lY2Vzc2FyeSwgYmFzZWQgb24gdGhlIAorICAgICAgICAgICAgICAgIGZvcm0gYmVhbiBzcGVjaWZpY2F0aW9uIGZvciB0aGUgYXNzb2NpYXRlZCA8Y29kZT5BY3Rpb25NYXBwaW5nPC9jb2RlPi4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgPHA+VGhlIFVSTCB0byB3aGljaCB0aGlzIGZvcm0gd2lsbCBiZSBzdWJtaXR0ZWQuICBUaGlzCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBpcyBhbHNvIHVzZWQgdG8gc2VsZWN0IHRoZSBBY3Rpb25NYXBwaW5nIHdlIGFyZQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzdW1lZCB0byBiZSBwcm9jZXNzaW5nLCBmcm9tIHdoaWNoIHdlIGNhbiBpZGVudGlmeQorICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGFwcHJvcHJpYXRlIGZvcm0gYmVhbiBhbmQgc2NvcGUuICBJZiBhIHZhbHVlIGlzIG5vdAorICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZWQsIHRoZSBvcmlnaW5hbCBVUkkgKHNlcnZsZXRQYXRoKSBmb3IgdGhlIHJlcXVlc3QgaXMgCisgICAgICAgICAgICAgICAgICAgICAgICB1c2VkLiA8L3A+CisKKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPklmIHlvdSBhcmUgdXNpbmcgZXh0ZW5zaW9uIG1hcHBpbmcgZm9yIHNlbGVjdGluZyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIgc2VydmxldCwgdGhpcyB2YWx1ZSBzaG91bGQgYmUgZXF1YWwgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5wYXRoPC9jb2RlPiBhdHRyaWJ1dGUgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPiZsdDthY3Rpb24mZ3Q7PC9jb2RlPiBlbGVtZW50LCBvcHRpb25hbGx5CisgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dlZCBieSB0aGUgY29ycmVjdCBleHRlbnNpb24gc3VmZml4LjwvcD4KKworICAgICAgICAgICAgICAgICAgICAgICAgPHA+SWYgeW91IGFyZSB1c2luZyBwYXRoIG1hcHBpbmcgdG8gc2VsZWN0IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlciBzZXJ2bGV0LCB0aGlzIHZhbHVlIHNob3VsZCBiZSBleGFjdGx5IGVxdWFsCisgICAgICAgICAgICAgICAgICAgICAgICB0byB0aGUgPGNvZGU+cGF0aDwvY29kZT4gYXR0cmlidXRlIG9mIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT4mbHQ7YWN0aW9uJmd0OzwvY29kZT4gZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXB0Q2hhcnNldDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGxpc3Qgb2YgY2hhcmFjdGVyIGVuY29kaW5ncyBmb3IgaW5wdXQgZGF0YSB0aGF0IHRoZSBzZXJ2ZXIgc2hvdWxkCisgICAgICAgICAgICAgICAgYWNjZXB0LgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuMjwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIEZvcm0ncyBpbnB1dCBmaWVsZHMgc2hvdWxkIGJlCisgICAgICAgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi43PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lbmN0eXBlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgY29udGVudCBlbmNvZGluZyB0byBiZSB1c2VkIHRvIHN1Ym1pdCB0aGlzIGZvcm0sIGlmIHRoZSBtZXRob2QKKyAgICAgICAgICAgICAgICBpcyBQT1NULiBUaGlzIG11c3QgYmUgc2V0IHRvICJtdWx0aXBhcnQvZm9ybS1kYXRhIiBpZiB5b3UgYXJlIHVzaW5nCisgICAgICAgICAgICAgICAgdGhlIGZpbGUgdGFnIHRvIGVuYWJsZSBmaWxlIHVwbG9hZC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIGJyb3dzZXIKKyAgICAgICAgICAgICAgICBkZWZhdWx0IChub3JtYWxseSAiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikgaXMgdXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGZpZWxkIG5hbWUgKGFtb25nIHRoZSBmaWVsZHMgb24gdGhpcyBmb3JtKSB0byB3aGljaCBpbml0aWFsCisgICAgICAgICAgICAgICAgZm9jdXMgd2lsbCBiZSBhc3NpZ25lZCB3aXRoIGEgSmF2YVNjcmlwdCBmdW5jdGlvbi4gSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICBubyBzcGVjaWFsIEphdmFTY3JpcHQgZm9yIHRoaXMgcHVycG9zZSB3aWxsIGJlIHJlbmRlcmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZvY3VzSW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElmIHRoZSBmb2N1cyBmaWVsZCBpcyBhIGZpZWxkIGFycmF5LCBzdWNoIGFzIGEgcmFkaW8gYnV0dG9uIGdyb3VwLCB5b3UgY2FuIAorICAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIGluZGV4IGluIHRoZSBhcnJheSB0byByZWNlaXZlIGZvY3VzLgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjE8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1ldGhvZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIEhUVFAgbWV0aG9kIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHN1Ym1pdCB0aGlzIHJlcXVlc3QKKyAgICAgICAgICAgICAgICAoR0VULCBQT1NUKS4gW1BPU1RdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25yZXNldDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIGlmIHRoZSBmb3JtIGlzIHJlc2V0LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uc3VibWl0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgaWYgdGhlIGZvcm0gaXMgc3VibWl0dGVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnJlYWRvbmx5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBGb3JtJ3MgaW5wdXQgZmllbGRzIHNob3VsZCBiZQorICAgICAgICAgICAgICAgIHJlYWQgb25seS4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjc8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjcmlwdExhbmd1YWdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGZvcm0ncyBmb2N1cyAmbHQ7c2NyaXB0Jmd0OyBlbGVtZW50IHdpbGwgbm90IGNvbnRhaW4gYSBsYW5ndWFnZSBhdHRyaWJ1dGUKKyAgICAgICAgICAgICAgICB3aGVuIHRoaXMgaXMgc2V0IHRvIGZhbHNlLiAgVGhlIGRlZmF1bHQgaXMgdHJ1ZSBidXQgdGhpcyBwcm9wZXJ0eSBpcyBpZ25vcmVkCisgICAgICAgICAgICAgICAgaW4gWEhNVEwgbW9kZS4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yPC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhcmdldDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgV2luZG93IHRhcmdldCB0byB3aGljaCB0aGlzIGZvcm0gaXMgc3VibWl0dGVkLCBzdWNoIGFzCisgICAgICAgICAgICAgICAgZm9yIHVzZSBpbiBmcmFtZWQgcHJlc2VudGF0aW9ucy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+ZnJhbWU8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRnJhbWVUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPlJlbmRlciBhbiBIVE1MIGZyYW1lIGVsZW1lbnQ8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisKKyAgICAgICAgICAgIDxwPlJlbmRlcnMgYW4gSFRNTCA8Y29kZT4mbHQ7ZnJhbWUmZ3Q7PC9jb2RlPiBlbGVtZW50CisgICAgICAgICAgICB3aXRoIHByb2Nlc3NpbmcgZm9yIHRoZSA8Y29kZT5zcmM8L2NvZGU+IGF0dHJpYnV0ZSB0aGF0IGlzCisgICAgICAgICAgICBpZGVudGljYWwgdG8gdGhhdCBwZXJmb3JtZWQgYnkgdGhlIDxjb2RlPiZsdDtodG1sOmxpbmsmZ3Q7PC9jb2RlPgorICAgICAgICAgICAgdGFnIGZvciB0aGUgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLiAgVVJMIHJld3JpdGluZyB3aWxsIGJlCisgICAgICAgICAgICBhcHBsaWVkIGF1dG9tYXRpY2FsbHksIHRvIG1haW50YWluIHNlc3Npb24gc3RhdGUgaW4gdGhlCisgICAgICAgICAgICBhYnNlbmNlIG9mIGNvb2tpZXMuPC9wPgorCisgICAgICAgICAgICA8cD5UaGUgYmFzZSBVUkwgZm9yIHRoaXMgZnJhbWUgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbgorICAgICAgICAgICAgd2hpY2ggb2YgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIHlvdSBzcGVjaWZ5ICh5b3UgbXVzdAorICAgICAgICAgICAgc3BlY2lmeSBleGFjdGx5IG9uZSBvZiB0aGVtKTo8L3A+CisgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICA8bGk+PGVtPmZvcndhcmQ8L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgYXMgdGhlCisgICAgICAgICAgICAgICAgbmFtZSBvZiBhIGdsb2JhbCA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiB0byBiZSBsb29rZWQKKyAgICAgICAgICAgICAgICB1cCwgYW5kIHVzZSB0aGUgbW9kdWxlLXJlbGF0aXZlIG9yIGNvbnRleHQtcmVsYXRpdmUKKyAgICAgICAgICAgICAgICBVUkkgZm91bmQgdGhlcmUuPC9saT4KKyAgICAgICAgICAgIDxsaT48ZW0+aHJlZjwvZW0+IC0gVXNlIHRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSB1bmNoYW5nZWQuCisgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgIDxsaT48ZW0+cGFnZTwvZW0+IC0gVXNlIHRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSBhcyBhCisgICAgICAgICAgICAgICAgbW9kdWxlLXJlbGF0aXZlIFVSSSwgYW5kIGdlbmVyYXRlIGEgc2VydmVyLXJlbGF0aXZlCisgICAgICAgICAgICAgICAgVVJJIGJ5IGluY2x1ZGluZyB0aGUgY29udGV4dCBwYXRoIGFuZCBhcHBsaWNhdGlvbgorICAgICAgICAgICAgICAgIHByZWZpeC48L2xpPgorICAgICAgICAgICAgPGxpPjxlbT5hY3Rpb248L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgYXMgdGhlCisgICAgICAgICAgICAgICAgbG9naWNhbCBuYW1lIG9mIGEgZ2xvYmFsIEFjdGlvbiB0aGF0IGNvbnRhaW5zIHRoZSBhY3R1YWwgCisgICAgICAgICAgICAgICAgY29udGVudC1yZWxhdGl2ZSBVUkkgb2YgdGhlIGRlc3RpbmF0aW9uIG9mIHRoaXMgdHJhbnNmZXIuPC9saT4KKyAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDxwPk5vcm1hbGx5LCB0aGUgaHlwZXJsaW5rIHlvdSBzcGVjaWZ5IHdpdGggb25lIG9mIHRoZQorICAgICAgICAgICAgYXR0cmlidXRlcyBkZXNjcmliZWQgaW4gdGhlIHByZXZpb3VzIHBhcmFncmFwaCB3aWxsIGJlIGxlZnQKKyAgICAgICAgICAgIHVuY2hhbmdlZCAob3RoZXIgdGhhbiBVUkwgcmV3cml0aW5nIGlmIG5lY2Vzc2FyeSkuICBIb3dldmVyLAorICAgICAgICAgICAgdGhlcmUgYXJlIHR3byB3YXlzIHlvdSBjYW4gYXBwZW5kIG9uZSBvciBtb3JlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICBkZWZpbmVkIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gdGhlIGh5cGVybGluayAtLSBzcGVjaWZ5IGEgc2luZ2xlCisgICAgICAgICAgICBwYXJhbWV0ZXIgd2l0aCB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4gYXR0cmlidXRlIChhbmQgaXRzCisgICAgICAgICAgICBhc3NvY2lhdGVkIGF0dHJpYnV0ZXMgdG8gc2VsZWN0IHRoZSB2YWx1ZSksIG9yIHNwZWNpZnkgdGhlCisgICAgICAgICAgICA8Y29kZT5uYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsIDxjb2RlPnByb3BlcnR5PC9jb2RlPikKKyAgICAgICAgICAgIGF0dHJpYnV0ZXMgdG8gc2VsZWN0IGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gYmVhbiB0aGF0CisgICAgICAgICAgICBjb250YWlucyBvbmUgb3IgbW9yZSBwYXJhbWV0ZXIgaWRzIGFuZCBjb3JyZXNwb25kaW5nIHZhbHVlcy4KKyAgICAgICAgICAgIDwvcD4KKworICAgICAgICAgICAgPHA+VG8gc3BlY2lmeSBhIHNpbmdsZSBwYXJhbWV0ZXIsIHVzZSB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4KKyAgICAgICAgICAgIGF0dHJpYnV0ZSB0byBkZWZpbmUgdGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGJlCisgICAgICAgICAgICBzdWJtaXR0ZWQuICBUbyBzcGVjaWZ5IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlLCB1c2Ugb25lIG9mIHRoZQorICAgICAgICAgICAgZm9sbG93aW5nIGFwcHJvYWNoZXM6PC9wPgorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IG9ubHkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlPC9lbT4KKyAgICAgICAgICAgICAgICAtIFRoZSBuYW1lZCBKU1AgYmVhbiAob3B0aW9uYWxseSBzY29wZWQgYnkgdGhlIHZhbHVlIG9mIHRoZQorICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IGF0dHJpYnV0ZSkgbXVzdCBpZGVudGlmeSBhIHZhbHVlCisgICAgICAgICAgICAgICAgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgU3RyaW5nLjwvbGk+CisgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgYm90aCB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhbmQKKyAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzPC9lbT4gLSBUaGUgc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgcHJvcGVydHkgZ2V0dGVyIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgSlNQIGJlYW4KKyAgICAgICAgICAgICAgICBpZGVudGlmaWVkIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPikgYXR0cmlidXRlcywgaW4gb3JkZXIgdG8gc2VsZWN0CisgICAgICAgICAgICAgICAgYSB2YWx1ZSB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuPC9saT4KKyAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgIDxwPklmIHlvdSBwcmVmZXIgdG8gc3BlY2lmeSBhIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IHRoYXQKKyAgICAgICAgICAgIGNvbnRhaW5zIGFsbCBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzIHRvIGJlIGFkZGVkIHRvIHRoZQorICAgICAgICAgICAgaHlwZXJsaW5rLCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdGVjaG5pcXVlczo8L3A+CisgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgb25seSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlPC9lbT4gLQorICAgICAgICAgICAgICAgIFRoZSBuYW1lZCBKU1AgYmVhbiAob3B0aW9uYWxseSBzY29wZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICAgICAgdGhlIDxjb2RlPnNjb3BlPC9jb2RlPiBhdHRyaWJ1dGUpIG11c3QgaWRlbnRpZnkgYQorICAgICAgICAgICAgICAgIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMuPC9saT4KKyAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBib3RoIDxjb2RlPm5hbWU8L2NvZGU+IGFuZAorICAgICAgICAgICAgICAgIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzPC9lbT4gLSBUaGUgc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgcHJvcGVydHkgZ2V0dGVyIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgYmVhbgorICAgICAgICAgICAgICAgIGlkZW50aWZpZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICA8Y29kZT5zY29wZTwvY29kZT4pIGF0dHJpYnV0ZXMsIGluIG9yZGVyIHRvIHJldHVybiB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzLjwvbGk+CisgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8cD5BcyB0aGUgPGNvZGU+TWFwPC9jb2RlPiBpcyBwcm9jZXNzZWQsIHRoZSBrZXlzIGFyZSBhc3N1bWVkCisgICAgICAgICAgICB0byBiZSB0aGUgbmFtZXMgb2YgcXVlcnkgcGFyYW1ldGVycyB0byBiZSBhcHBlbmRlZCB0byB0aGUKKyAgICAgICAgICAgIGh5cGVybGluay4gIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBrZXkgbXVzdCBiZSBlaXRoZXIKKyAgICAgICAgICAgIGEgU3RyaW5nIG9yIGEgU3RyaW5nIGFycmF5IHJlcHJlc2VudGluZyB0aGUgcGFyYW1ldGVyIHZhbHVlKHMpLAorICAgICAgICAgICAgb3IgYW4gb2JqZWN0IHdob3NlIHRvU3RyaW5nKCkgbWV0aG9kIHdpbGwgYmUgY2FsbGVkLgorICAgICAgICAgICAgSWYgYSBTdHJpbmcgYXJyYXkgaXMgc3BlY2lmaWVkLCBtb3JlIHRoYW4gb25lIHZhbHVlIGZvciB0aGUKKyAgICAgICAgICAgIHNhbWUgcXVlcnkgcGFyYW1ldGVyIG5hbWUgd2lsbCBiZSBjcmVhdGVkLjwvcD4KKworICAgICAgICAgICAgPHA+QWRkaXRpb25hbGx5LCB5b3UgY2FuIHJlcXVlc3QgdGhhdCB0aGUgY3VycmVudCB0cmFuc2FjdGlvbgorICAgICAgICAgICAgY29udHJvbCB0b2tlbiwgaWYgYW55LCBiZSBpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluaworICAgICAgICAgICAgYnkgc2V0dGluZyB0aGUgPGNvZGU+dHJhbnNhY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSB0bworICAgICAgICAgICAgPGNvZGU+dHJ1ZTwvY29kZT4uCisgICAgICAgICAgICBZb3UgY2FuIGFsc28gcmVxdWVzdCB0aGF0IGFuIGFuY2hvciAoIiN4eHgiKSBiZSBhZGRlZCB0byB0aGUKKyAgICAgICAgICAgIGVuZCBvZiB0aGUgVVJMIHRoYXQgaXMgY3JlYXRlZCBieSBhbnkgb2YgdGhlIGFib3ZlIG1lY2hhbmlzbXMsCisgICAgICAgICAgICBieSB1c2luZyB0aGUgPGNvZGU+YW5jaG9yPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorCisgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICA8cD5Mb2dpY2FsIG5hbWUgb2YgYSBnbG9iYWwgPGNvZGU+QWN0aW9uPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICBjb250YWlucyB0aGUgYWN0dWFsIGNvbnRlbnQtcmVsYXRpdmUgVVJJIG9mIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgICAgb2YgdGhpcyB0cmFuc2Zlci4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgbW9kaWZpZWQgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQKKyAgICAgICAgICAgICAgIGluIHRoZSB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLAorICAgICAgICAgICAgICAgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAKKwkJICAgICAgIDxwPkFkZGl0aW9uYWxseSwgeW91IGNhbiBzcGVjaWZ5IGEgPGNvZGU+bW9kdWxlPC9jb2RlPiBwcmVmaXggCisJCQkgICBmb3IgbGlua2luZyB0byBvdGhlciBtb2R1bGVzLjwvcD4KKwkJCQkJCSAgIAorCQkgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bW9kdWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKwkJCSAgIDxwPlByZWZpeCBuYW1lIG9mIGEgPGNvZGU+TW9kdWxlPC9jb2RlPiB0aGF0CisJCSAgICAgICBjb250YWlucyB0aGUgYWN0aW9uIG1hcHBpbmcgZm9yIHRoZSA8Y29kZT5BY3Rpb248L2NvZGU+CisJCSAgICAgICB0aGF0IGlzIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUuCisJCSAgICAgICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgYW4gPGNvZGU+YWN0aW9uPC9jb2RlPiAKKwkJICAgICAgIGF0dHJpYnV0ZSBmb3IgdGhpcyB0byBoYXZlIGFuIGVmZmVjdC48L3A+CisJCQorCQkgICAgICAgPHA+PHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz5Vc2UgIiIgdG8gbWFwIHRvIHRoZSBkZWZhdWx0IG1vZHVsZS48L3A+CisJCSAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFuY2hvcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+T3B0aW9uYWwgYW5jaG9yIHRhZyAoIiN4eHgiKSB0byBiZSBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgaHlwZXJsaW5rLiAgU3BlY2lmeSB0aGlzIHZhbHVlIDxzdHJvbmc+d2l0aG91dDwvc3Ryb25nPiBhbnkKKyAgICAgICAgICAgICAgICAiIyIgY2hhcmFjdGVyLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mb3J3YXJkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5Mb2dpY2FsIG5hbWUgb2YgYSBnbG9iYWwgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgIGNvbnRhaW5zIHRoZSBhY3R1YWwgY29udGVudC1yZWxhdGl2ZSBVUkkgb2YgdGhlIGRlc3RpbmF0aW9uCisgICAgICAgICAgICAgICAgb2YgdGhpcyB0cmFuc2Zlci4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgIG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkCisgICAgICAgICAgICAgICAgaW4gdGhlIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsCisgICAgICAgICAgICAgICAgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZyYW1lYm9yZGVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5TaG91bGQgYSBmcmFtZSBib3JkZXIgYmUgZ2VuZXJhdGVkIGFyb3VuZCB0aGlzIGZyYW1lICgxKQorICAgICAgICAgICAgICAgIG9yIG5vdCAoMCk/PC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZyYW1lTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VmFsdWUgZm9yIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgb2YgdGhlIHJlbmRlcmVkCisgICAgICAgICAgICAgICAgPGNvZGU+Jmx0O2ZyYW1lJmd0OzwvY29kZT4gZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aHJlZjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIFVSTCB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAgaWYgYWN0aXZhdGVkLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5IG1vZGlmaWVkCisgICAgICAgICAgICAgICAgIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkIGluIHRoZQorICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLAorICAgICAgICAgICAgICAgICBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bG9uZ2Rlc2M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlVSSSBvZiBhIGxvbmcgZGVzY3JpcHRpb24gb2YgdGhlIGZyYW1lLiAgVGhpcyBkZXNjcmlwdGlvbgorICAgICAgICAgICAgICAgIHNob3VsZCBzdXBwbGVtZW50IHRoZSBzaG9ydCBkZXNjcmlwdGlvbiBwcm92aWRlZCBieSB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT50aXRsZTwvY29kZT4gYXR0cmlidXRlLCBhbmQgbWF5IGJlIHBhcnRpY3VsYXJseSB1c2VmdWwKKyAgICAgICAgICAgICAgICBmb3Igbm9uLXZpc3VhbCB1c2VyIGFnZW50cy48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bWFyZ2luaGVpZ2h0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmphdmEubGFuZy5JbnRlZ2VyPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbW91bnQgb2Ygc3BhY2UgKGluIHBpeGVscykgdG8gYmUgbGVmdCBiZXR3ZWVuIHRoZQorICAgICAgICAgICAgICAgIGZyYW1lJ3MgY29udGVudHMgYW5kIGl0cyB0b3AgYW5kIGJvdHRvbSBtYXJnaW5zLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tYXJnaW53aWR0aDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5qYXZhLmxhbmcuSW50ZWdlcjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIHNwYWNlIChpbiBwaXhlbHMpIHRvIGJlIGxlZnQgYmV0d2VlbiB0aGUKKyAgICAgICAgICAgICAgICBmcmFtZSdzIGNvbnRlbnRzIGFuZCBpdHMgbGVmdCBhbmQgcmlnaHQgbWFyZ2lucy48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGNvbnRhaW5zIGEgPGNvZGU+TWFwPC9jb2RlPgorICAgICAgICAgICAgICAgIHJlcHJlc2VudGluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzCisgICAgICAgICAgICAgICAgY2FsbGVkIHRvIHJldHVybiBhIDxjb2RlPk1hcDwvY29kZT4gKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgIGlzIHNwZWNpZmllZCkuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5vcmVzaXplPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+U2hvdWxkIHVzZXJzIGJlIGRpc2FsbG93ZWQgZnJvbSByZXNpemluZyB0aGUgZnJhbWU/CisgICAgICAgICAgICAgICAgKHRydWUsIGZhbHNlKS48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIChiZWdpbm5pbmcgd2l0aCBhICIvIgorICAgICAgICAgICAgICAgIGNoYXJhY3RlcikgdG8gd2hpY2ggdGhpcyBoeXBlcmxpbmsgd2lsbCB0cmFuc2ZlciBjb250cm9sCisgICAgICAgICAgICAgICAgIGlmIGFjdGl2YXRlZC4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZAorICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGV4YWN0bHkKKyAgICAgICAgICAgICAgICAgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgICAgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuICBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcworICAgICAgICAgICAgICAgIGRlZmluZWQgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYW5kIChvcHRpb25hbCkKKyAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzLCBvcHRpb25hbGx5IHNjb3BlZCBieQorICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBhdHRyaWJ1dGU8L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1OYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgaXMgYSBTdHJpbmcgY29udGFpbmluZyB0aGUKKyAgICAgICAgICAgICAgICB2YWx1ZSBmb3IgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVkIGJ5IDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgKGlmIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQpLCBvciBhIEpTUAorICAgICAgICAgICAgICAgIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzIGNhbGxlZCB0byByZXR1cm4gYSBTdHJpbmcKKyAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkKS4gIFRoZSBKU1AgYmVhbgorICAgICAgICAgICAgICAgIGlzIGNvbnN0cmFpbmVkIHRvIHRoZSBiZWFuIHNjb3BlIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBwcm9wZXJ0eSwgaWYgaXQgaXMgc3BlY2lmaWVkLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbVByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hvc2UgcmV0dXJuIHZhbHVlIG11c3QKKyAgICAgICAgICAgICAgICBiZSBhIFN0cmluZyBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAobmFtZWQgYnkgdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+IGF0dHJpYnV0ZSkgdGhhdCB3aWxsIGJlCisgICAgICAgICAgICAgICAgZHluYW1pY2FsbHkgYWRkZWQgdG8gdGhpcyBoeXBlcmxpbmsuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtU2NvcGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgIGFsbCBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdCBiZQorICAgICAgICAgICAgICAgIGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcXVlcnkgcGFyYW1ldGVycworICAgICAgICAgICAgICAgIHRvIGJlIGFkZGVkIHRvIHRoZSBoeXBlcmxpbmsuICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+CisgICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIGlmIHlvdSBzcGVjaWZ5CisgICAgICAgICAgICAgICAgdGhpcyBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZS4gIElmIG5vdCBzcGVjaWZpZWQsIGFsbAorICAgICAgICAgICAgICAgIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjcm9sbGluZzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+U2hvdWxkIHNjcm9sbCBiYXJzIGJlIGNyZWF0ZWQgdW5jb25kaXRpb25hbGx5ICh5ZXMpLAorICAgICAgICAgICAgICAgIG5ldmVyIChubyksIG9yIG9ubHkgd2hlbiBuZWVkZWQgKGF1dG8pPzwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dHJhbnNhY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIGFueSBjdXJyZW50IHRyYW5zYWN0aW9uCisgICAgICAgICAgICAgICAgY29udHJvbCB0b2tlbiB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLAorICAgICAgICAgICAgICAgIHNvIHRoYXQgaXQgd2lsbCBwYXNzIGFuIDxjb2RlPmlzVG9rZW5WYWxpZCgpPC9jb2RlPiB0ZXN0CisgICAgICAgICAgICAgICAgaW4gdGhlIHJlY2VpdmluZyBBY3Rpb24uPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5oaWRkZW48L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSGlkZGVuVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+ZW1wdHk8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgSGlkZGVuIEZpZWxkCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZSBoaWRkZW4sIHBvcHVsYXRlZAorICAgICAgICAgICAgICAgIGZyb20gdGhlIHNwZWNpZmllZCB2YWx1ZSBvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBiZWFuCisgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIG91ciBjdXJyZW50IGZvcm0uIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbgorICAgICAgICAgICAgICAgIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LgorICAgICAgICAgICAgPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIDxjb2RlPmxvZ2ljOml0ZXJhdGU8L2NvZGU+IHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZAorICAgICAgICAgICAgICAgIHdoZW4gcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdAorICAgICAgICAgICAgICAgIHNwZWNpZmllZCwgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkCisgICAgICAgICAgICAgICAgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhpcyBpbnB1dCBmaWVsZCwgYW5kIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIGJlYW4KKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSBpZiB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkLiBUaGUgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5CisgICAgICAgICAgICAgICAgKGlmIGFueSkgbXVzdCBiZSBvZiB0eXBlIFN0cmluZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWx1ZSB0byB3aGljaCB0aGlzIGZpZWxkIHNob3VsZCBiZSBpbml0aWFsaXplZC4gW1VzZSB0aGUKKyAgICAgICAgICAgICAgICBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkgdmFsdWVdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+d3JpdGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBTaG91bGQgdGhlIHZhbHVlIG9mIHRoaXMgZmllbGQgYWxzbyBiZSByZW5kZXJlZCB0byB0aGUKKyAgICAgICAgICAgICAgICByZXNwb25zZSBwYWdlIHRvIG1ha2UgaXQgdmlzaWJsZSwgaW4gYWRkaXRpb24gdG8gY3JlYXRpbmcKKyAgICAgICAgICAgICAgICBhbiBIVE1MIHR5cGU9ImhpZGRlbiIgZWxlbWVudD8gIEJ5IGRlZmF1bHQsIG9ubHkgdGhlCisgICAgICAgICAgICAgICAgaGlkZGVuIGVsZW1lbnQgaXMgY3JlYXRlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+aHRtbDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5IdG1sVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+SlNQPC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgYW4gSFRNTCA8Y29kZT4mbHQ7aHRtbCZndDs8L2NvZGU+IEVsZW1lbnQ8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MIDxjb2RlPiZsdDtodG1sJmd0OzwvY29kZT4gZWxlbWVudCB3aXRoCisgICAgICAgICAgbGFuZ3VhZ2UgYXR0cmlidXRlcyBleHRyYWN0ZWQgZnJvbSB0aGUgdXNlcidzIGN1cnJlbnQgTG9jYWxlCisgICAgICAgICAgb2JqZWN0LCBpZiB0aGVyZSBpcyBvbmUuPC9wPgorICAgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bGFuZzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICBSZW5kZXJzIGEgbGFuZyBhdHRyaWJ1dGUgd2l0aCB0aGUgbG9jYWxlIHN0b3JlZCBpbiB0aGUgdXNlcidzIHNlc3Npb24uICBJZiBub3QgCisgICAgICAgICAgICAgICAgIGZvdW5kIGluIHRoZSBzZXNzaW9uLCB0aGUgbGFuZ3VhZ2UgZnJvbSB0aGUgPGNvZGU+QWNjZXB0LUxhbmd1YWdlPC9jb2RlPgorICAgICAgICAgICAgICAgICBIVFRQIGhlYWRlciBpcyB1c2VkLiAgSWYgc3RpbGwgbm90IGZvdW5kLCB0aGUgZGVmYXVsdCBsYW5ndWFnZSBmb3IgdGhlIHNlcnZlciAKKyAgICAgICAgICAgICAgICAgaXMgdXNlZC4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yPC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT54aHRtbDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICA8cD5TZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaW4gb3JkZXIgdG8gcmVuZGVyIAorICAgICAgICAgICAgICA8Y29kZT54bWw6bGFuZzwvY29kZT4gYW5kIDxjb2RlPnhtbG5zPC9jb2RlPiBhdHRyaWJ1dGVzIAorICAgICAgICAgICAgICBvbiB0aGUgZ2VuZXJhdGVkIDxjb2RlPmh0bWw8L2NvZGU+IGVsZW1lbnQuICBUaGlzIGFsc28gCisgICAgICAgICAgICAgIGNhdXNlcyBhbGwgb3RoZXIgaHRtbCB0YWdzIHRvIHJlbmRlciBhcyBYSFRNTCAxLjAgKHRoZSAKKyAgICAgICAgICAgICAgJmx0O2h0bWw6eGh0bWwvJmd0OyB0YWcgaGFzIGEgc2ltaWxhciBwdXJwb3NlKS4KKyAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjE8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5pbWFnZTwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWFnZVRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICAgICAgUmVuZGVyIGFuIGlucHV0IHRhZyBvZiB0eXBlICJpbWFnZSIKKyAgICAgICAgICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisKKyAgICAgICAgICAgICAgICA8cD5SZW5kZXJzIGFuIEhUTUwgPGNvZGU+Jmx0O2lucHV0Jmd0OzwvY29kZT4gdGFnIG9mIHR5cGUKKyAgICAgICAgICAgICAgICAiaW1hZ2UiLiAgVGhlIGJhc2UgVVJMIGZvciB0aGlzIGltYWdlIGlzIGNhbGN1bGF0ZWQgZGlyZWN0bHkKKyAgICAgICAgICAgICAgICBiYXNlZCBvbiB0aGUgdmFsdWUgc3BlY2lmaWVkIGluIHRoZSA8Y29kZT5zcmM8L2NvZGU+IG9yCisgICAgICAgICAgICAgICAgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlcywgb3IgaW5kaXJlY3RseSBieSBsb29raW5nIHVwIGEKKyAgICAgICAgICAgICAgICBtZXNzYWdlIHJlc291cmNlIHN0cmluZyBiYXNlZCBvbiB0aGUgPGNvZGU+c3JjS2V5PC9jb2RlPiBvcgorICAgICAgICAgICAgICAgIDxjb2RlPnBhZ2VLZXk8L2NvZGU+IGF0dHJpYnV0ZXMuICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+CisgICAgICAgICAgICAgICAgc3BlY2lmeSBleGFjdGx5IG9uZSBvZiB0aGVzZSBhdHRyaWJ1dGVzLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPklmIHlvdSB3b3VsZCBsaWtlIHRvIG9idGFpbiB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgY2xpY2sgdGhhdCBzdWJtaXR0ZWQgdGhpcyByZXF1ZXN0LCBzZWUgdGhlIGluZm9ybWF0aW9uIGJlbG93CisgICAgICAgICAgICAgICAgb24gdGhlIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIDxwPlRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbiBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS48L3A+CisKKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkKKyAgICAgICAgICAgICAgICB0byB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbGlnbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsaWdubWVudCBvcHRpb24gZm9yIHRoaXMgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJvcmRlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIHdpZHRoIChpbiBwaXhlbHMpIG9mIHRoZSBib3JkZXIgYXJvdW5kIHRoaXMgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLiAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4KKyAgICAgICAgICAgICAgICB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAicHJvcGVydHlOYW1lWzM0XSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZCBmb3IKKyAgICAgICAgICAgICAgICBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bG9jYWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgc2Vzc2lvbiBhdHRyaWJ1dGUga2V5IGZvciB0aGUgTG9jYWxlIHVzZWQgdG8gc2VsZWN0CisgICAgICAgICAgICAgICAgaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICBTdHJ1dHMgc3RhbmRhcmQgdmFsdWUuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzCisgICAgICAgICAgICAgICAgYW5kIGEga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzCisgICAgICAgICAgICAgICAgYW5kIGEga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cworICAgICAgICAgICAgICAgIGFuZCBhIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QKKyAgICAgICAgICAgICAgICB1bmRlciB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZQorICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIG9mIHRoZSBpbWFnZSBmb3IgdGhpcworICAgICAgICAgICAgICAgIGlucHV0IHRhZy48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhZ2VLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBrZXkgb2YgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIHN0cmluZyBzcGVjaWZ5aW5nIHRoZQorICAgICAgICAgICAgICAgIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIG9mIHRoZSBpbWFnZSBmb3IgdGhpcyBpbnB1dCB0YWcuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIHByb3BlcnR5IG5hbWUgb2YgdGhpcyBpbWFnZSB0YWcuICBUaGUgcGFyYW1ldGVyIG5hbWVzCisgICAgICAgICAgICAgICAgZm9yIHRoZSByZXF1ZXN0IHdpbGwgYXBwZWFyIGFzICJwcm9wZXJ0eS54IiBhbmQgInByb3BlcnR5LnkiLAorICAgICAgICAgICAgICAgIHRoZSB4IGFuZCB5IHJlcHJlc2VudGluZyB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIG1vdXNlIGNsaWNrCisgICAgICAgICAgICAgICAgZm9yIHRoZSBpbWFnZS4gIEEgd2F5IG9mIHJldHJpZXZpbmcgdGhlc2UgdmFsdWVzIHRocm91Z2ggYQorICAgICAgICAgICAgICAgIGZvcm0gYmVhbiBpcyB0byBkZWZpbmUgZ2V0WCgpLCBnZXRZKCksIHNldFgoKSwgYW5kIHNldFkoKQorICAgICAgICAgICAgICAgIG1ldGhvZHMsIGFuZCBzcGVjaWZ5IHlvdXIgcHJvcGVydHkgYXMgYSBibGFuayBzdHJpbmcKKyAgICAgICAgICAgICAgICAocHJvcGVydHk9IiIpLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3JjPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgc291cmNlIFVSTCBvZiB0aGUgaW1hZ2UgZm9yIHRoaXMgaW5wdXQgdGFnLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3JjS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUga2V5IG9mIHRoZSBtZXNzYWdlIHJlc291cmNlcyBzdHJpbmcgc3BlY2lmeWluZyB0aGUKKyAgICAgICAgICAgICAgICBzb3VyY2UgVVJMIG9mIHRoZSBpbWFnZSBmb3IgdGhpcyBpbnB1dCB0YWcuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICA8cD5UaGUgdmFsdWUgdGhhdCB3aWxsIGJlIHN1Ym1pdHRlZCBpZiB0aGlzIGltYWdlIGJ1dHRvbgorICAgICAgICAgICAgICBpcyBwcmVzc2VkLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+aW1nPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkltZ1RhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PmVtcHR5PC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgYW4gSFRNTCBpbWcgdGFnPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MIDxjb2RlPiZsdDtpbWcmZ3Q7PC9jb2RlPiBlbGVtZW50IHdpdGgKKyAgICAgICAgICAgICAgICB0aGUgaW1hZ2UgYXQgdGhlIHNwZWNpZmllZCBVUkwuICBMaWtlIHRoZSBsaW5rIHRhZywgVVJMCisgICAgICAgICAgICAgICAgcmV3cml0aW5nIHdpbGwgYmUgYXBwbGllZCBhdXRvbWF0aWNhbGx5IHRvIHRoZSB2YWx1ZQorICAgICAgICAgICAgICAgIHNwZWNpZmllZCBpbiA8Y29kZT5zcmM8L2NvZGU+LCA8Y29kZT5wYWdlPC9jb2RlPiwgb3IKKyAgICAgICAgICAgICAgICA8Y29kZT5hY3Rpb248L2NvZGU+IHRvIG1haW50YWluIHNlc3Npb24gc3RhdGUKKyAgICAgICAgICAgICAgICBpbiB0aGUgYWJzZW5jZSBvZiBjb29raWVzLiAgVGhpcyB3aWxsIGFsbG93IGR5bmFtaWMKKyAgICAgICAgICAgICAgICBnZW5lcmF0aW9uIG9mIGFuIGltYWdlIHdoZXJlIHRoZSBjb250ZW50IGRpc3BsYXllZCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGltYWdlIHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgYXR0cmlidXRlcyBvZiB0aGlzIHRhZy48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5UaGUgYmFzZSBVUkwgZm9yIHRoaXMgaW1hZ2UgaXMgY2FsY3VsYXRlZCBkaXJlY3RseSBiYXNlZCBvbgorICAgICAgICAgICAgICAgIHRoZSB2YWx1ZSBzcGVjaWZpZWQgaW4gPGNvZGU+c3JjPC9jb2RlPiwgPGNvZGU+cGFnZTwvY29kZT4sIG9yCisgICAgICAgICAgICAgICAgPGNvZGU+YWN0aW9uPC9jb2RlPiBvciA8Y29kZT5wYWdlPC9jb2RlPiwKKyAgICAgICAgICAgICAgICBvciBpbmRpcmVjdGx5IGJ5IGxvb2tpbmcgdXAgYSBtZXNzYWdlIHJlc291cmNlIHN0cmluZyBiYXNlZCBvbgorICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5zcmNLZXk8L2NvZGU+IG9yIDxjb2RlPnBhZ2VLZXk8L2NvZGU+IGF0dHJpYnV0ZXMuCisgICAgICAgICAgICAgICAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGV4YWN0bHkgb25lIG9mIHRoZXNlCisgICAgICAgICAgICAgICAgYXR0cmlidXRlcy48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5Ob3JtYWxseSwgdGhlIDxjb2RlPnNyYzwvY29kZT4sIDxjb2RlPnBhZ2U8L2NvZGU+LCBvcgorICAgICAgICAgICAgICAgIDxjb2RlPmFjdGlvbjwvY29kZT4gdGhhdCB5b3Ugc3BlY2lmeSB3aWxsIGJlIGxlZnQKKyAgICAgICAgICAgICAgICB1bmNoYW5nZWQgKG90aGVyIHRoYW4gVVJMIHJld3JpdGluZyBpZiBuZWNlc3NhcnkpLiAgSG93ZXZlciwKKyAgICAgICAgICAgICAgICB0aGVyZSBhcmUgdHdvIHdheXMgeW91IGNhbiBhcHBlbmQgb25lIG9yIG1vcmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICBkZWZpbmVkIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gdGhlIDxjb2RlPnNyYzwvY29kZT4gVVJMIC0tCisgICAgICAgICAgICAgICAgc3BlY2lmeSBhIHNpbmdsZSBwYXJhbWV0ZXIgd2l0aCB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4KKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgKGF0IGl0cyBhc3NvY2lhdGVkIGF0dHJpYnV0ZXMgdG8gc2VsZWN0IHRoZSB2YWx1ZSksCisgICAgICAgICAgICAgICAgb3Igc3BlY2lmeSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gKGFuZCBvcHRpb25hbAorICAgICAgICAgICAgICAgIDxjb2RlPnByb3BlcnR5PC9jb2RlPikgYXR0cmlidXRlcyB0byBzZWxlY3QgYQorICAgICAgICAgICAgICAgIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGJlYW4gdGhhdCBjb250YWlucyBvbmUgb3IgbW9yZQorICAgICAgICAgICAgICAgIHBhcmFtZXRlciBpZHMgYW5kIGNvcnJlc3BvbmRpbmcgdmFsdWVzLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPlRvIHNwZWNpZnkgYSBzaW5nbGUgcGFyYW1ldGVyLCB1c2UgdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIHRvIGRlZmluZSB0aGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdG8gYmUKKyAgICAgICAgICAgICAgICBzdWJtaXR0ZWQuICBUbyBzcGVjaWZ5IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlLCB1c2Ugb25lIG9mIHRoZQorICAgICAgICAgICAgICAgIGZvbGxvd2luZyBhcHByb2FjaGVzOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IG9ubHkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlPC9lbT4KKyAgICAgICAgICAgICAgICAgICAgLSBUaGUgbmFtZWQgSlNQIGJlYW4gKG9wdGlvbmFsbHkgc2NvcGVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gYXR0cmlidXRlKSBtdXN0IGlkZW50aWZ5IGEgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgU3RyaW5nLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IGJvdGggdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYW5kCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXM8L2VtPiAtIFRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgZ2V0dGVyIHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBKU1AgYmVhbiBpZGVudGlmaWVkCisgICAgICAgICAgICAgICAgICAgIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4pIGF0dHJpYnV0ZXMsIGluIG9yZGVyIHRvIHNlbGVjdAorICAgICAgICAgICAgICAgICAgICBhIHZhbHVlIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIFN0cmluZy48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgICA8cD5JZiB5b3UgcHJlZmVyIHRvIHNwZWNpZnkgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICAgY29udGFpbnMgYWxsIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMgdG8gYmUgYWRkZWQgdG8gdGhlCisgICAgICAgICAgICAgICAgaHlwZXJsaW5rLCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdGVjaG5pcXVlczo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBvbmx5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGU8L2VtPiAtCisgICAgICAgICAgICAgICAgICAgIFRoZSBuYW1lZCBKU1AgYmVhbiAob3B0aW9uYWxseSBzY29wZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5zY29wZTwvY29kZT4gYXR0cmlidXRlKSBtdXN0IGlkZW50aWZ5IGEKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcGFyYW1ldGVycy48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBib3RoIDxjb2RlPm5hbWU8L2NvZGU+IGFuZAorICAgICAgICAgICAgICAgICAgICA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlczwvZW0+IC0gVGhlIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eSBnZXR0ZXIgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBiZWFuCisgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+c2NvcGU8L2NvZGU+KSBhdHRyaWJ1dGVzLCBpbiBvcmRlciB0byByZXR1cm4gdGhlCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMuPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgPHA+QXMgdGhlIDxjb2RlPk1hcDwvY29kZT4gaXMgcHJvY2Vzc2VkLCB0aGUga2V5cyBhcmUgYXNzdW1lZAorICAgICAgICAgICAgICAgIHRvIGJlIHRoZSBuYW1lcyBvZiBxdWVyeSBwYXJhbWV0ZXJzIHRvIGJlIGFwcGVuZGVkIHRvIHRoZQorICAgICAgICAgICAgICAgIDxjb2RlPnNyYzwvY29kZT4gVVJMLiAgVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBlYWNoIGtleQorICAgICAgICAgICAgICAgIG11c3QgYmUgZWl0aGVyIGEgU3RyaW5nIG9yIGEgU3RyaW5nIGFycmF5IHJlcHJlc2VudGluZyB0aGUKKyAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgdmFsdWUocyksIG9yIGFuIG9iamVjdCB3aG9zZSB0b1N0cmluZygpIG1ldGhvZAorICAgICAgICAgICAgICAgIHdpbGwgYmUgY2FsbGVkLiAgSWYgYSBTdHJpbmcgYXJyYXkgaXMgc3BlY2lmaWVkLCBtb3JlIHRoYW4KKyAgICAgICAgICAgICAgICBvbmUgdmFsdWUgZm9yIHRoZSBzYW1lIHF1ZXJ5IHBhcmFtZXRlciBuYW1lIHdpbGwgYmUKKyAgICAgICAgICAgICAgICBjcmVhdGVkLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPllvdSBjYW4gc3BlY2lmeSB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgaW1hZ2UgKHdoaWNoCisgICAgICAgICAgICAgICAgbW9zdCBicm93c2VycyBkaXNwbGF5IGFzIHBvcC11cCB0ZXh0IGJsb2NrIHdoZW4gdGhlIHVzZXIKKyAgICAgICAgICAgICAgICBob3ZlcnMgdGhlIG1vdXNlIG92ZXIgdGhpcyBpbWFnZSkgZWl0aGVyIGRpcmVjdGx5LCB0aHJvdWdoCisgICAgICAgICAgICAgICAgdGhlIDxjb2RlPmFsdDwvY29kZT4gYXR0cmlidXRlLCBvciBpbmRpcmVjdGx5IGZyb20gYSBtZXNzYWdlCisgICAgICAgICAgICAgICAgcmVzb3VyY2VzIGJ1bmRsZSwgdXNpbmcgdGhlIDxjb2RlPmJ1bmRsZTwvY29kZT4gYW5kCisgICAgICAgICAgICAgICAgPGNvZGU+YWx0S2V5PC9jb2RlPiBhdHRyaWJ1dGVzLjwvcD4KKworICAgICAgICAgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWxpZ248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+V2hlcmUgdGhlIGltYWdlIGlzIGFsaWduZWQgdG8uICBDYW4gYmUgb25lIG9mIHRoZQorICAgICAgICAgICAgICAgICAgZm9sbG93aW5nIGF0dHJpYnV0ZXM6PC9wPgorICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgIDxsaT5sZWZ0IC0gbGVmdCBqdXN0aWZ5LCB3cmFwcGluZyB0ZXh0IG9uIHJpZ2h0PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPnJpZ2h0IC1yaWdodCBqdXN0aWZ5LCB3cmFwcGluZyB0ZXN0IG9uIGxlZnQ8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+dG9wIC0gYWxpZ25zIHRoZSBpbWFnZSB3aXRoIHRoZSB0b3Agb2YgdGhlIHRleHQgb24KKyAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIHJvdzwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT5taWRkbGUgLSBhbGlnbnMgdGhlIGltYWdlJ3MgdmVydGljYWwgY2VudGVyIHdpdGggdGhlCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0IGJhc2UgbGluZTwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT5ib3R0b20gLSBhbGlnbnMgdGhlIGltYWdlIHdpdGggdGhlIGJvdHRvbSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQncyBiYXNlIGxpbmU8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+dGV4dHRvcCAtIGFsaWducyB0aGUgaW1hZ2UncyB0b3Agd2l0aCB0aGF0IG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCBmb250IG9uIHRoZSBzYW1lIGxpbmU8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+YWJzbWlkZGxlIC0gYWxpZ25zIHRoZSBpbWFnZSdzIHZlcnRpY2FsIGNlbnRlciB3aXRoIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgYWJzb2x1dGUgY2VudGVyIG9mIHRoZSB0ZXh0PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPmFic2JvdHRvbSAtIGFsaWducyB0aGUgaW1hZ2Ugd2l0aCB0aGUgYWJzb2x1dGUgYm90dG9tCisgICAgICAgICAgICAgICAgICAgICAgICBvZiB0aGUgdGV4dCBmb250IG9uIHRoZSBzYW1lIHJvdzwvbGk+CisgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5BbmQgYWx0ZXJuYXRpdmUgdGV4dCB0byBiZSBkaXNwbGF5ZWQgaW4gYnJvd3NlcnMgdGhhdAorICAgICAgICAgICAgICAgICAgICAgZG9uJ3Qgc3VwcG9ydCBncmFwaGljcy4gIEFsc28gdXNlZCBvZnRlbiBhcyB0eXBlIG9mCisgICAgICAgICAgICAgICAgICAgICBjb250ZXh0IGhlbHAgb3ZlciBpbWFnZXMuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJvcmRlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgd2lkdGggb2YgdGhlIGJvcmRlciBzdXJyb3VuZGluZyB0aGUgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmhlaWdodDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgaGVpZ2h0IG9mIHRoZSBpbWFnZSBiZWluZyBkaXNwbGF5ZWQuICBUaGlzIHBhcmFtZXRlcgorICAgICAgICAgICAgICAgICAgICAgaXMgdmVyeSBuaWNlIHRvIHNwZWNpZnkgKGFsb25nIHdpdGggPGNvZGU+d2lkdGg8L2NvZGU+KQorICAgICAgICAgICAgICAgICAgICAgdG8gaGVscCB0aGUgYnJvd3NlciByZW5kZXIgdGhlIHBhZ2UgZmFzdGVyLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5oc3BhY2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFtb3VudCBvZiBob3Jpem9udGFsIHNwYWNpbmcgYmV0d2VlbiB0aGUgaWNvbiBhbmQKKyAgICAgICAgICAgICAgICAgICAgIHRoZSB0ZXh0LiAgVGhlIHRleHQgbWF5IGJlIGluIHRoZSBzYW1lIHBhcmFncmFwaCwgb3IKKyAgICAgICAgICAgICAgICAgICAgIGJlIHdyYXBwZWQgYXJvdW5kIHRoZSBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW1hZ2VOYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBzY3JpcHRhYmxlIG5hbWUgdG8gYmUgZGVmaW5lZCB3aXRoaW4gdGhpcyBwYWdlLCBzbworICAgICAgICAgICAgICAgICAgdGhhdCB5b3UgY2FuIHJlZmVyZW5jZSBpdCB3aXRoIGludHJhLXBhZ2Ugc2NyaXB0cy4gIEluIG90aGVyCisgICAgICAgICAgICAgICAgICB3b3JkcywgdGhlIHZhbHVlIHNwZWNpZmllZCBoZXJlIHdpbGwgcmVuZGVyIGEgIm5hbWUiIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAgIGluIHRoZSBnZW5lcmF0ZWQgaW1hZ2UgdGFnLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pc21hcDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiB0aGUgc2VydmVyLXNpZGUgbWFwIHRoYXQgdGhpcyBpbWFnZSBiZWxvbmdzCisgICAgICAgICAgICAgICAgICAgICB0by48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bG9jYWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IG9yIHNlc3Npb24gTG9jYWxlIGF0dHJpYnV0ZSB1c2VkCisgICAgICAgICAgICAgICAgICB0byBsb29rIHVwIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gdGhhdCBjb250YWlucyBhIDxjb2RlPk1hcDwvY29kZT4KKyAgICAgICAgICAgICAgICAgIHJlcHJlc2VudGluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgICBpcyBub3Qgc3BlY2lmaWVkKSwgb3IgYSBKU1AgYmVhbiB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMKKyAgICAgICAgICAgICAgICAgIGNhbGxlZCB0byByZXR1cm4gYSA8Y29kZT5NYXA8L2NvZGU+IChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGlzIHNwZWNpZmllZCkuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIGtleSBkb3duIGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIGtleSBwcmVzcyBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBrZXkgdXAgZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBzcmMgVVJMLiAgVGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaXMKKyAgICAgICAgICAgICAgICAgIGRlZmluZWQgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYW5kIChvcHRpb25hbCkKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMsIG9wdGlvbmFsbHkgc2NvcGVkIGJ5CisgICAgICAgICAgICAgICAgICB0aGUgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gYXR0cmlidXRlPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoLCBzdGFydGluZyB3aXRoIGEgc2xhc2gsIG9mCisgICAgICAgICAgICAgICAgICB0aGUgaW1hZ2UgdG8gYmUgZGlzcGxheWVkIGJ5IHRoaXMgdGFnLiAgVGhlIHJlbmRlcmVkCisgICAgICAgICAgICAgICAgICBVUkwgZm9yIHRoaXMgaW1hZ2Ugd2lsbCBhdXRvbWF0aWNhbGx5IHByZXBlbmQgdGhlIGNvbnRleHQKKyAgICAgICAgICAgICAgICAgIHBhdGggb2YgdGhpcyB3ZWIgYXBwbGljYXRpb24gKGluIHRoZSBzYW1lIG1hbm5lciBhcyB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUgbGluayB0YWcgd29ya3MpLAorICAgICAgICAgICAgICAgICAgaW4gYWRkaXRpb24gdG8gYW55IG5lY2Vzc2FyeSBVUkwgcmV3cml0aW5nLiAgWW91CisgICAgICAgICAgICAgICAgICA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeSBlaXRoZXIgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+CisgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgb3IgdGhlIDxjb2RlPnNyYzwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYWdlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIGtleSwgaW4gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGJ1bmRsZSBuYW1lZCBieQorICAgICAgICAgICAgICAgICAgdGhlIDxjb2RlPmJ1bmRsZTwvY29kZT4gYXR0cmlidXRlLCBvZiB0aGUgU3RyaW5nIHRvIGJlCisgICAgICAgICAgICAgICAgICB1c2VkIGFzIHRoZSBtb2R1bGUtcmVsYXRpdmUgcGF0aCBmb3IgdGhpcyBpbWFnZS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWN0aW9uPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgPHA+VGhlIGFjdGlvbiwgc3RhcnRpbmcgd2l0aCBhIHNsYXNoLCB0aGF0IHdpbGwgcmVuZGVyCisgICAgICAgICAgICAgIHRoZSBpbWFnZSB0byBiZSBkaXNwbGF5ZWQgYnkgdGhpcyB0YWcuICBUaGUgcmVuZGVyZWQKKyAgICAgICAgICAgICAgVVJMIGZvciB0aGlzIGltYWdlIHdpbGwgYXV0b21hdGljYWxseSBwcmVwZW5kIHRoZSBjb250ZXh0CisgICAgICAgICAgICAgIHBhdGggb2YgdGhpcyB3ZWIgYXBwbGljYXRpb24gKGluIHRoZSBzYW1lIG1hbm5lciBhcyB0aGUKKyAgICAgICAgICAgICAgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUgb24gdGhlIGxpbmsgdGFnIHdvcmtzKSwKKyAgICAgICAgICAgICAgaW4gYWRkaXRpb24gdG8gYW55IG5lY2Vzc2FyeSBVUkwgcmV3cml0aW5nLiAgWW91CisgICAgICAgICAgICAgIDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+LAorICAgICAgICAgICAgICA8Y29kZT5wYWdlPC9jb2RlPgorICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIG9yIHRoZSA8Y29kZT5zcmM8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAKKwkJICAgICAgIDxwPkFkZGl0aW9uYWxseSwgeW91IGNhbiBzcGVjaWZ5IGEgPGNvZGU+bW9kdWxlPC9jb2RlPiBwcmVmaXggCisJCQkgICBmb3IgbGlua2luZyB0byBvdGhlciBtb2R1bGVzLjwvcD4KKwkJCQkJCSAgIAorCQkJICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1vZHVsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisJCQkJICAgPHA+UHJlZml4IG5hbWUgb2YgYSA8Y29kZT5Nb2R1bGU8L2NvZGU+IHRoYXQKKwkJCQkgICBjb250YWlucyB0aGUgYWN0aW9uIG1hcHBpbmcgZm9yIHRoZSA8Y29kZT5BY3Rpb248L2NvZGU+CisJCQkJICAgdGhhdCBpcyBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLgorCQkJCSAgIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeSBhbiA8Y29kZT5hY3Rpb248L2NvZGU+IAorCQkJCSAgIGF0dHJpYnV0ZSBmb3IgdGhpcyB0byBoYXZlIGFuIGVmZmVjdC48L3A+CisJCQkKKwkJCQkgICA8cD48c3Ryb25nPk5vdGU6IDwvc3Ryb25nPlVzZSAiIiB0byBtYXAgdG8gdGhlIGRlZmF1bHQgbW9kdWxlLjwvcD4KKwkJCSAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgaXMgYSBTdHJpbmcgY29udGFpbmluZyB0aGUKKyAgICAgICAgICAgICAgICAgIHZhbHVlIGZvciB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZWQgYnkgPGNvZGU+cGFyYW1JZDwvY29kZT4KKyAgICAgICAgICAgICAgICAgIChpZiA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkKSwgb3IgYSBKU1AKKyAgICAgICAgICAgICAgICAgIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzIGNhbGxlZCB0byByZXR1cm4gYSBTdHJpbmcKKyAgICAgICAgICAgICAgICAgIChpZiA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBpcyBzcGVjaWZpZWQpLiAgVGhlIEpTUCBiZWFuCisgICAgICAgICAgICAgICAgICBpcyBjb25zdHJhaW5lZCB0byB0aGUgYmVhbiBzY29wZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBwcm9wZXJ0eSwgaWYgaXQgaXMgc3BlY2lmaWVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbVByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0CisgICAgICAgICAgICAgICAgICBiZSBhIFN0cmluZyBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAgIChuYW1lZCBieSB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4gYXR0cmlidXRlKSB0aGF0IHdpbGwgYmUKKyAgICAgICAgICAgICAgICAgIGR5bmFtaWNhbGx5IGFkZGVkIHRvIHRoaXMgc3JjIFVSTC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1TY29wZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgICAgYWxsIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdCBiZQorICAgICAgICAgICAgICAgICAgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCisgICAgICAgICAgICAgICAgICB0byBiZSBhZGRlZCB0byB0aGUgc3JjIFVSTC4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4KKyAgICAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBpZiB5b3Ugc3BlY2lmeQorICAgICAgICAgICAgICAgICAgdGhpcyBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLCBhbGwKKyAgICAgICAgICAgICAgICAgIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNyYzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgVVJMIHRvIHdoaWNoIHRoaXMgaW1hZ2Ugd2lsbCBiZSB0cmFuc2ZlcnJlZCBmcm9tCisgICAgICAgICAgICAgICAgICBUaGlzIGltYWdlIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQgaW4gdGhlCisgICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBUaGlzIHZhbHVlIHdpbGwgYmUgdXNlZCB1bm1vZGlmaWVkIChvdGhlcgorICAgICAgICAgICAgICAgICAgdGhhbiBwb3RlbnRpYWwgVVJMIHJld3JpdGluZykgYXMgdGhlIHZhbHVlIG9mIHRoZSAic3JjIgorICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGluIHRoZSByZW5kZXJlZCB0YWcuICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+CisgICAgICAgICAgICAgICAgICBzcGVjaWZ5IGVpdGhlciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlIG9yIHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+c3JjPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNyY0tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSBrZXksIGluIHRoZSBtZXNzYWdlIHJlc291cmNlcyBidW5kbGUgbmFtZWQgYnkKKyAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5idW5kbGU8L2NvZGU+IGF0dHJpYnV0ZSwgb2YgdGhlIFN0cmluZyB0byBiZQorICAgICAgICAgICAgICAgICAgdXNlZCBhcyB0aGUgVVJMIG9mIHRoaXMgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT51c2VMb2NhbEVuY29kaW5nPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgIDxwPklmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgTG9jYWxDaGFyYWN0ZXJFbmNvZGluZyB3aWxsIGJlCisgICAgICAgICAgICAgIHVzZWQsIHRoYXQgaXMsIHRoZSBjaGFyYWN0ZXJFbmNvZGluZyBzZXQgdG8gdGhlIEh0dHBTZXJ2bGV0UmVzcG9uc2UsCisgICAgICAgICAgICAgIGFzIHByZWZlcmVkIGNoYXJhY3RlciBlbmNvZGluZyByYXRoZXIgdGhhbiBVVEYtOCwgd2hlbgorICAgICAgICAgICAgICBVUkxFbmNvZGluZyBpcyBkb25lIG9uIHBhcmFtZXRlcnMgb2YgdGhlIFVSTC48L3A+CisgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT51c2VtYXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIG1hcCBhcyBkZWZpbmVkIHdpdGhpbiB0aGlzIHBhZ2UgZm9yCisgICAgICAgICAgICAgICAgICAgICBtYXBwaW5nIGhvdC1zcG90IGFyZWFzIG9mIHRoaXMgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZzcGFjZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIHZlcnRpY2FsIHNwYWNpbmcgYmV0d2VlbiB0aGUgaWNvbiBhbmQKKyAgICAgICAgICAgICAgICAgICAgIHRoZSB0ZXh0LCBhYm92ZSBhbmQgYmVsb3cuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPndpZHRoPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSB3aWR0aCBvZiB0aGUgaW1hZ2UgYmVpbmcgZGlzcGxheWVkLiAgVGhpcyBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAgICAgIGlzIHZlcnkgbmljZSB0byBzcGVjaWZ5IChhbG9uZyB3aXRoIDxjb2RlPmhlaWdodDwvY29kZT4pCisgICAgICAgICAgICAgICAgICAgICB0byBoZWxwIHRoZSBicm93c2VyIHJlbmRlciB0aGUgcGFnZSBmYXN0ZXIuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5qYXZhc2NyaXB0PC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPgorICAgICAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSmF2YXNjcmlwdFZhbGlkYXRvclRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PmVtcHR5PC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBKYXZhU2NyaXB0IHZhbGlkYXRpb24gYmFzZWQgb24gdGhlCisgICAgICAgICAgICB2YWxpZGF0aW9uIHJ1bGVzIGxvYWRlZCBieSB0aGUgVmFsaWRhdG9yUGx1Z0luLgorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBSZW5kZXIgSmF2YVNjcmlwdCB2YWxpZGF0aW9uIGJhc2VkIG9uIHRoZQorICAgICAgICAgICAgICAgIHZhbGlkYXRpb24gcnVsZXMgbG9hZGVkIGJ5IHRoZSA8Y29kZT5WYWxpZGF0b3JQbHVnSW48L2NvZGU+LgorICAgICAgICAgICAgICAgIFRoZSBzZXQgb2YgdmFsaWRhdGlvbiBydWxlcyB0aGF0IHNob3VsZCBiZSBnZW5lcmF0ZWQgaXMgYmFzZWQKKyAgICAgICAgICAgICAgICBvbiB0aGUgZm9ybU5hbWUgYXR0cmlidXRlIHBhc3NlZCBpbiwgd2hpY2ggc2hvdWxkIG1hdGNoCisgICAgICAgICAgICAgICAgdGhlIG5hbWUgYXR0cmlidXRlIG9mIHRoZSBmb3JtIGVsZW1lbnQgaW4gdGhlIHhtbCBmaWxlLgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgVGhlIGR5bmFtaWNKYXZhc2NyaXB0IGFuZCBzdGF0aWNKYXZhc2NyaXB0IGF0dHJpYnV0ZXMKKyAgICAgICAgICAgICAgICBkZWZhdWx0IHRvIHRydWUsIGJ1dCBpZiBkeW5hbWljSmF2YXNjcmlwdCBpcyBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4KKyAgICAgICAgICAgICAgICBhbmQgc3RhdGljSmF2YXNjcmlwdCBpcyBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IHRoZW4gb25seQorICAgICAgICAgICAgICAgIHRoZSBkeW5hbWljIEphdmFTY3JpcHQgd2lsbCBiZSByZW5kZXJlZC4gIElmIGR5bmFtaWNKYXZhc2NyaXB0CisgICAgICAgICAgICAgICAgaXMgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPgorICAgICAgICAgICAgICAgIGFuZCBzdGF0aWNKYXZhc2NyaXB0IGlzIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG9ubHkKKyAgICAgICAgICAgICAgICB0aGUgc3RhdGljIEphdmFTY3JpcHQgd2lsbCBiZSByZW5kZXJlZCB3aGljaCBjYW4gdGhlbiBiZSBwdXQgaW4KKyAgICAgICAgICAgICAgICBzZXBhcmF0ZSBKU1AgcGFnZSBzbyB0aGUgYnJvd3NlciBjYW4gY2FjaGUgdGhlIHN0YXRpYyBKYXZhU2NyaXB0LgorICAgICAgICAgICAgPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmNkYXRhPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgSWYgc2V0IHRvICJ0cnVlIiBhbmQgWEhUTUwgaGFzIGJlZW4gZW5hYmxlZCwgdGhlIEphdmFTY3JpcHQgd2lsbAorICAgICAgICAgICAgICAgICAgYmUgd3JhcHBlZCBpbiBhIENEQVRBIHNlY3Rpb24gdG8gcHJldmVudCBYTUwgcGFyc2luZy4gVGhlIGRlZmF1bHQgaXMKKyAgICAgICAgICAgICAgICAgICJ0cnVlIiB0byBjb21wbHkgd2l0aCB0aGUgVzNDJ3MgcmVjb21tZW5kYXRpb24uCisgICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZHluYW1pY0phdmFzY3JpcHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgV2hldGhlciBvciBub3QgdG8gcmVuZGVyIHRoZSBkeW5hbWljIEphdmFTY3JpcHQuCisgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byA8Y29kZT50cnVlPC9jb2RlPi4KKyAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mb3JtTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICAgIFRoZSBrZXkgKGZvcm0gbmFtZSkgdG8gcmV0cmlldmUgYSBzcGVjaWZpYworICAgICAgICAgICAgICAgICAgc2V0IG9mIHZhbGlkYXRpb24gcnVsZXMuICBJZiAiZHluYW1pY0phdmFzY3JpcHQiIGlzIHNldCAKKyAgICAgICAgICAgICAgICAgIHRvIDxjb2RlPnRydWU8L2NvZGU+IGFuZCBmb3JtTmFtZSBpcyBtaXNzaW5nIG9yIGlzIG5vdCAKKyAgICAgICAgICAgICAgICAgIHJlY29nbml6ZWQgYnkgdGhlIDxjb2RlPlZhbGlkYXRvclBsdWdJbjwvY29kZT4sIGEgCisgICAgICAgICAgICAgICAgICBKc3BFeGNlcHRpb24gd2lsbCBiZSB0aHJvd24uCisgICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bWV0aG9kPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgVGhlIGFsdGVybmF0ZSBKYXZhU2NyaXB0IG1ldGhvZCBuYW1lIHRvIGJlIHVzZWQKKyAgICAgICAgICAgICAgICAgIGluc3RlYWQgb2YgdGhlIG9mIHRoZSBkZWZhdWx0LiAgVGhlIGRlZmF1bHQgaXMKKyAgICAgICAgICAgICAgICAgICd2YWxpZGF0ZScgY29uY2F0ZW5hdGVkIGluIGZyb250IG9mCisgICAgICAgICAgICAgICAgICB0aGUga2V5IChmb3JtIG5hbWUpIHBhc3NlZCBpbiAoZXg6IHZhbGlkYXRlUmVnaXN0cmF0aW9uRm9ybSkuCisgICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5pbnQ8L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICAgIFRoZSBjdXJyZW50IHBhZ2Ugb2YgYSBzZXQgb2YgdmFsaWRhdGlvbiBydWxlcworICAgICAgICAgICAgICAgICAgaWYgdGhlIHBhZ2UgYXR0cmlidXRlIGZvciB0aGUgZmllbGQgZWxlbWVudAorICAgICAgICAgICAgICAgICAgaW4gdGhlIHhtbCBmaWxlIGlzIGluIHVzZS4KKyAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zY3JpcHRMYW5ndWFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSAmbHQ7c2NyaXB0Jmd0OyBlbGVtZW50IHdpbGwgbm90IGNvbnRhaW4gYSBsYW5ndWFnZSBhdHRyaWJ1dGUKKyAgICAgICAgICAgICAgICB3aGVuIHRoaXMgaXMgc2V0IHRvIGZhbHNlLiAgVGhlIGRlZmF1bHQgaXMgdHJ1ZSBidXQgdGhpcyBwcm9wZXJ0eSBpcyBpZ25vcmVkCisgICAgICAgICAgICAgICAgaW4gWEhUTUwgbW9kZS4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yPC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zcmM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICBUaGUgc3JjIGF0dHJpYnV0ZSdzIHZhbHVlIHdoZW4gZGVmaW5pbmcKKyAgICAgICAgICAgICAgICAgIHRoZSBodG1sIHNjcmlwdCBlbGVtZW50LgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0YXRpY0phdmFzY3JpcHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgV2hldGhlciBvciBub3QgdG8gcmVuZGVyIHRoZSBzdGF0aWMgSmF2YVNjcmlwdC4KKyAgICAgICAgICAgICAgICAgIERlZmF1bHRzIHRvIDxjb2RlPnRydWU8L2NvZGU+LgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmh0bWxDb21tZW50PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgV2hldGhlciBvciBub3QgdG8gZW5jbG9zZSB0aGUgamF2YXNjcmlwdAorICAgICAgICAgICAgICAgICAgd2l0aCBIVE1MIGNvbW1lbnRzLiAgVGhpcyBhdHRyaWJ1dGUgaXMgaWdub3JlZCBpbiBYSFRNTAorICAgICAgICAgICAgICAgICAgbW9kZSBiZWNhdXNlIHRoZSBzY3JpcHQgd291bGQgYmUgZGVsZXRlZCBieSB0aGUgWE1MIHBhcnNlci4gIFNlZQorICAgICAgICAgICAgICAgICAgdGhlIGNkYXRhIGF0dHJpYnV0ZSBmb3IgZGV0YWlscyBvbiBoaWRpbmcgc2NyaXB0cyBmcm9tIFhNTAorICAgICAgICAgICAgICAgICAgcGFyc2Vycy4gCisgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byA8Y29kZT50cnVlPC9jb2RlPi4KKyAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi43PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+bGluazwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5MaW5rVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgYW4gSFRNTCBhbmNob3Igb3IgaHlwZXJsaW5rPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MIDxjb2RlPiZsdDthJmd0OzwvY29kZT4gZWxlbWVudCBhcyBhbgorICAgICAgICAgICAgICAgIGFuY2hvciBkZWZpbml0aW9uIChpZiAibGlua05hbWUiIGlzIHNwZWNpZmllZCkgb3IgYXMgYQorICAgICAgICAgICAgICAgIGh5cGVybGluayB0byB0aGUgc3BlY2lmaWVkIFVSTC4gIFVSTCByZXdyaXRpbmcgd2lsbCBiZQorICAgICAgICAgICAgICAgIGFwcGxpZWQgYXV0b21hdGljYWxseSwgdG8gbWFpbnRhaW4gc2Vzc2lvbiBzdGF0ZSBpbiB0aGUKKyAgICAgICAgICAgICAgICBhYnNlbmNlIG9mIGNvb2tpZXMuICBUaGUgY29udGVudCBkaXNwbGF5ZWQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBoeXBlcmxpbmsgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBib2R5IG9mIHRoaXMgdGFnLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPlRoZSBiYXNlIFVSTCBmb3IgdGhpcyBoeXBlcmxpbmsgaXMgY2FsY3VsYXRlZCBiYXNlZCBvbgorICAgICAgICAgICAgICAgIHdoaWNoIG9mIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyB5b3Ugc3BlY2lmeSAoeW91IG11c3QKKyAgICAgICAgICAgICAgICBzcGVjaWZ5IGV4YWN0bHkgb25lIG9mIHRoZW0pOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5mb3J3YXJkPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIHRoZQorICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGEgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRvIGJlIGxvb2tlZAorICAgICAgICAgICAgICAgICAgICB1cCwgYW5kIHVzZSB0aGUgbW9kdWxlLXJlbGF0aXZlIG9yIGNvbnRleHQtcmVsYXRpdmUKKyAgICAgICAgICAgICAgICAgICAgVVJJIGZvdW5kIHRoZXJlLiBJZiB0aGUgZm9yd2FyZCBpcyBtb2R1bGUtcmVsYXRpdmUgdGhlbgorICAgICAgICAgICAgICAgICAgICBpdCBtdXN0IHBvaW50IHRvIGFuIGFjdGlvbiBhbmQgTk9UIHRvIGEgcGFnZS48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+YWN0aW9uPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIHRoZQorICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIGEgPGNvZGU+QWN0aW9uPC9jb2RlPiB0byBiZSBsb29rZWQKKyAgICAgICAgICAgICAgICAgICAgdXAsIGFuZCB1c2UgdGhlIG1vZHVsZS1yZWxhdGl2ZSBvciBjb250ZXh0LXJlbGF0aXZlCisgICAgICAgICAgICAgICAgICAgIFVSSSBmb3VuZCB0aGVyZS48L2xpPgorICAgICAgICAgICAgICAgICA8bGk+PGVtPmhyZWY8L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgdW5jaGFuZ2VkLgorICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgPGxpPjxlbT5wYWdlPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIGEKKyAgICAgICAgICAgICAgICAgICAgbW9kdWxlLXJlbGF0aXZlIFVSSSwgYW5kIGdlbmVyYXRlIGEgc2VydmVyLXJlbGF0aXZlCisgICAgICAgICAgICAgICAgICAgIFVSSSBieSBpbmNsdWRpbmcgdGhlIGNvbnRleHQgcGF0aCBhbmQgbW9kdWxlCisgICAgICAgICAgICAgICAgICAgIHByZWZpeC48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgICA8cD5Ob3JtYWxseSwgdGhlIGh5cGVybGluayB5b3Ugc3BlY2lmeSB3aXRoIG9uZSBvZiB0aGUKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzIGRlc2NyaWJlZCBpbiB0aGUgcHJldmlvdXMgcGFyYWdyYXBoIHdpbGwgYmUgbGVmdAorICAgICAgICAgICAgICAgIHVuY2hhbmdlZCAob3RoZXIgdGhhbiBVUkwgcmV3cml0aW5nIGlmIG5lY2Vzc2FyeSkuICBIb3dldmVyLAorICAgICAgICAgICAgICAgIHRoZXJlIGFyZSB0d28gd2F5cyB5b3UgY2FuIGFwcGVuZCBvbmUgb3IgbW9yZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgIGRlZmluZWQgcXVlcnkgcGFyYW1ldGVycyB0byB0aGUgaHlwZXJsaW5rIC0tIHNwZWNpZnkgYSBzaW5nbGUKKyAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgd2l0aCB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4gYXR0cmlidXRlIChhbmQgaXRzCisgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCBhdHRyaWJ1dGVzIHRvIHNlbGVjdCB0aGUgdmFsdWUpLCBvciBzcGVjaWZ5IHRoZQorICAgICAgICAgICAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwgPGNvZGU+cHJvcGVydHk8L2NvZGU+KQorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgdG8gc2VsZWN0IGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gYmVhbiB0aGF0CisgICAgICAgICAgICAgICAgY29udGFpbnMgb25lIG9yIG1vcmUgcGFyYW1ldGVyIGlkcyBhbmQgY29ycmVzcG9uZGluZyB2YWx1ZXMuCisgICAgICAgICAgICAgICAgPC9wPgorCisgICAgICAgICAgICAgICAgPHA+VG8gc3BlY2lmeSBhIHNpbmdsZSBwYXJhbWV0ZXIsIHVzZSB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4KKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgdG8gZGVmaW5lIHRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0byBiZQorICAgICAgICAgICAgICAgIHN1Ym1pdHRlZC4gIFRvIHNwZWNpZnkgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUsIHVzZSBvbmUgb2YgdGhlCisgICAgICAgICAgICAgICAgZm9sbG93aW5nIGFwcHJvYWNoZXM6PC9wPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgb25seSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGU8L2VtPgorICAgICAgICAgICAgICAgICAgICAtIFRoZSBuYW1lZCBKU1AgYmVhbiAob3B0aW9uYWxseSBzY29wZWQgYnkgdGhlIHZhbHVlIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBhdHRyaWJ1dGUpIG11c3QgaWRlbnRpZnkgYSB2YWx1ZQorICAgICAgICAgICAgICAgICAgICB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgYm90aCB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhbmQKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlczwvZW0+IC0gVGhlIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eSBnZXR0ZXIgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBKU1AgYmVhbgorICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVkIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4pIGF0dHJpYnV0ZXMsIGluIG9yZGVyIHRvIHNlbGVjdAorICAgICAgICAgICAgICAgICAgICBhIHZhbHVlIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIFN0cmluZy48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgICA8cD5JZiB5b3UgcHJlZmVyIHRvIHNwZWNpZnkgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICAgY29udGFpbnMgYWxsIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMgdG8gYmUgYWRkZWQgdG8gdGhlCisgICAgICAgICAgICAgICAgaHlwZXJsaW5rLCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgdGVjaG5pcXVlczo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBvbmx5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGU8L2VtPiAtCisgICAgICAgICAgICAgICAgICAgIFRoZSBuYW1lZCBKU1AgYmVhbiAob3B0aW9uYWxseSBzY29wZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5zY29wZTwvY29kZT4gYXR0cmlidXRlKSBtdXN0IGlkZW50aWZ5IGEKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcGFyYW1ldGVycy48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBib3RoIDxjb2RlPm5hbWU8L2NvZGU+IGFuZAorICAgICAgICAgICAgICAgICAgICA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlczwvZW0+IC0gVGhlIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eSBnZXR0ZXIgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIG9uIHRoZSBiZWFuCisgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZWQgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+c2NvcGU8L2NvZGU+KSBhdHRyaWJ1dGVzLCBpbiBvcmRlciB0byByZXR1cm4gdGhlCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMuPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgPHA+QXMgdGhlIDxjb2RlPk1hcDwvY29kZT4gaXMgcHJvY2Vzc2VkLCB0aGUga2V5cyBhcmUgYXNzdW1lZAorICAgICAgICAgICAgICAgIHRvIGJlIHRoZSBuYW1lcyBvZiBxdWVyeSBwYXJhbWV0ZXJzIHRvIGJlIGFwcGVuZGVkIHRvIHRoZQorICAgICAgICAgICAgICAgIGh5cGVybGluay4gIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBrZXkgbXVzdCBiZSBlaXRoZXIKKyAgICAgICAgICAgICAgICBhIFN0cmluZyBvciBhIFN0cmluZyBhcnJheSByZXByZXNlbnRpbmcgdGhlIHBhcmFtZXRlciB2YWx1ZShzKSwKKyAgICAgICAgICAgICAgICBvciBhbiBvYmplY3Qgd2hvc2UgdG9TdHJpbmcoKSBtZXRob2Qgd2lsbCBiZSBjYWxsZWQuCisgICAgICAgICAgICAgICAgSWYgYSBTdHJpbmcgYXJyYXkgaXMgc3BlY2lmaWVkLCBtb3JlIHRoYW4gb25lIHZhbHVlIGZvciB0aGUKKyAgICAgICAgICAgICAgICBzYW1lIHF1ZXJ5IHBhcmFtZXRlciBuYW1lIHdpbGwgYmUgY3JlYXRlZC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5BZGRpdGlvbmFsbHksIHlvdSBjYW4gcmVxdWVzdCB0aGF0IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uCisgICAgICAgICAgICAgICAgY29udHJvbCB0b2tlbiwgaWYgYW55LCBiZSBpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluaworICAgICAgICAgICAgICAgIGJ5IHNldHRpbmcgdGhlIDxjb2RlPnRyYW5zYWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUgdG8KKyAgICAgICAgICAgICAgICA8Y29kZT50cnVlPC9jb2RlPi4KKyAgICAgICAgICAgICAgICBZb3UgY2FuIGFsc28gcmVxdWVzdCB0aGF0IGFuIGFuY2hvciAoIiN4eHgiKSBiZSBhZGRlZCB0byB0aGUKKyAgICAgICAgICAgICAgICBlbmQgb2YgdGhlIFVSTCB0aGF0IGlzIGNyZWF0ZWQgYnkgYW55IG9mIHRoZSBhYm92ZSBtZWNoYW5pc21zLAorICAgICAgICAgICAgICAgIGJ5IHVzaW5nIHRoZSA8Y29kZT5hbmNob3I8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisKKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseQorICAgICAgICAgICAgICAgICAgdG8gdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TG9naWNhbCBuYW1lIG9mIGEgPGNvZGU+QWN0aW9uPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICAgICBjb250YWlucyB0aGUgYWN0dWFsIGNvbnRlbnQtcmVsYXRpdmUgVVJJIG9mIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgICAgICAgb2YgdGhpcyB0cmFuc2Zlci4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQKKyAgICAgICAgICAgICAgICAgIGluIHRoZSB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLCB0aGUgPGNvZGU+bGlua05hbWU8L2NvZGU+CisgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgCisJCSAgICAgICA8cD5BZGRpdGlvbmFsbHksIHlvdSBjYW4gc3BlY2lmeSBhIDxjb2RlPm1vZHVsZTwvY29kZT4gcHJlZml4IAorCQkJICAgZm9yIGxpbmtpbmcgdG8gb3RoZXIgbW9kdWxlcy48L3A+CisJCQkJCQkgICAKKwkJCSAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tb2R1bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworCQkJCSAgIDxwPlByZWZpeCBuYW1lIG9mIGEgPGNvZGU+TW9kdWxlPC9jb2RlPiB0aGF0CisJCQkJICAgY29udGFpbnMgdGhlIGFjdGlvbiBtYXBwaW5nIGZvciB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPgorCQkJCSAgIHRoYXQgaXMgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZS4KKwkJCQkgICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgYW4gPGNvZGU+YWN0aW9uPC9jb2RlPiAKKwkJCQkgICBhdHRyaWJ1dGUgZm9yIHRoaXMgdG8gaGF2ZSBhbiBlZmZlY3QuPC9wPgorCQkJCisJCQkJICAgPHA+PHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz5Vc2UgIiIgdG8gbWFwIHRvIHRoZSBkZWZhdWx0IG1vZHVsZS48L3A+CisJCQkgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbmNob3I8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+T3B0aW9uYWwgYW5jaG9yIHRhZyAoIiN4eHgiKSB0byBiZSBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgICBoeXBlcmxpbmsuICBTcGVjaWZ5IHRoaXMgdmFsdWUgPHN0cm9uZz53aXRob3V0PC9zdHJvbmc+IGFueQorICAgICAgICAgICAgICAgICAgIiMiIGNoYXJhY3Rlci48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Zm9yd2FyZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5Mb2dpY2FsIG5hbWUgb2YgYSBnbG9iYWwgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgICAgY29udGFpbnMgdGhlIGFjdHVhbCBjb250ZW50LXJlbGF0aXZlIFVSSSBvZiB0aGUgZGVzdGluYXRpb24KKyAgICAgICAgICAgICAgICAgICBvZiB0aGlzIHRyYW5zZmVyLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQKKyAgICAgICAgICAgICAgICAgICBpbiB0aGUgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlIDxjb2RlPmxpbmtOYW1lPC9jb2RlPgorICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmhyZWY8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIFVSTCB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAgICBpZiBhY3RpdmF0ZWQuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLCB0aGUgPGNvZGU+bGlua05hbWU8L2NvZGU+CisgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gaW5kZXhlZCBwYXJhbWV0ZXIgd2l0aCBuYW1lIGZyb20gaW5kZXhJZCBhdHRyaWJ1dGUKKyAgICAgICAgICAgICAgICB3aWxsIGJlIGFkZGVkIHRvIHRoZSBxdWVyeSBzdHJpbmcuIEluZGV4ZWQgcGFyYW1ldGVyIGxvb2tzIGxpa2UKKyAgICAgICAgICAgICAgICAiaW5kZXhbMzJdIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgZm9yIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleElkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBCeSB0aGlzIGF0dHJpYnV0ZSBkaWZmZXJlbnQgbmFtZSBmb3IgdGhlIGluZGV4ZWQgcGFyYW1ldGVyIGNhbiBiZQorICAgICAgICAgICAgICAgIHNwZWNpZmllZC4gVGFrZSBhIGxvb2sgdG8gdGhlICJpbmRleGVkIiBhdHRyaWJ1dGUgZm9yIGRldGFpbHMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bGlua05hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFuY2hvciBuYW1lIHRvIGJlIGRlZmluZWQgd2l0aGluIHRoaXMgcGFnZSwgc28gdGhhdAorICAgICAgICAgICAgICAgICAgeW91IGNhbiByZWZlcmVuY2UgaXQgd2l0aCBpbnRyYS1wYWdlIGh5cGVybGlua3MuICBJbiBvdGhlcgorICAgICAgICAgICAgICAgICAgd29yZHMsIHRoZSB2YWx1ZSBzcGVjaWZpZWQgaGVyZSB3aWxsIHJlbmRlciBhICJuYW1lIiBlbGVtZW50CisgICAgICAgICAgICAgICAgICBpbiB0aGUgZ2VuZXJhdGVkIGFuY2hvciB0YWcuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGNvbnRhaW5zIGEgPGNvZGU+TWFwPC9jb2RlPgorICAgICAgICAgICAgICAgICAgcmVwcmVzZW50aW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzIChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGlzIG5vdCBzcGVjaWZpZWQpLCBvciBhIEpTUCBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcworICAgICAgICAgICAgICAgICAgY2FsbGVkIHRvIHJldHVybiBhIDxjb2RlPk1hcDwvY29kZT4gKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgICAgaXMgc3BlY2lmaWVkKS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dCBmb2N1cy48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBtb3VzZSBjbGljay48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBtb3VzZSBkb3VibGUgY2xpY2suPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0IGZvY3VzLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEga2V5IGRvd24gZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEga2V5IHByZXNzIGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIGtleSB1cCBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEgbW91c2UgZG93biBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEgbW91c2UgbW92ZSBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBtb3VzZSBvdXQgZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIG1vdXNlIG92ZXIgZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBtb3VzZSB1cCBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbW9kdWxlLXJlbGF0aXZlIHBhdGggKGJlZ2lubmluZyB3aXRoIGEgIi8iCisgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIpIHRvIHdoaWNoIHRoaXMgaHlwZXJsaW5rIHdpbGwgdHJhbnNmZXIgY29udHJvbAorICAgICAgICAgICAgICAgICAgIGlmIGFjdGl2YXRlZC4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZAorICAgICAgICAgICAgICAgICAgIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkIGluIHRoZQorICAgICAgICAgICAgICAgICAgIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeSBleGFjdGx5CisgICAgICAgICAgICAgICAgICAgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlIDxjb2RlPmxpbmtOYW1lPC9jb2RlPgorICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuICBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcworICAgICAgICAgICAgICAgICAgZGVmaW5lZCBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhbmQgKG9wdGlvbmFsKQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlcywgb3B0aW9uYWxseSBzY29wZWQgYnkKKyAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBhdHRyaWJ1dGU8L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1OYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gdGhhdCBpcyBhIFN0cmluZyBjb250YWluaW5nIHRoZQorICAgICAgICAgICAgICAgICAgdmFsdWUgZm9yIHRoZSByZXF1ZXN0IHBhcmFtZXRlciBuYW1lZCBieSA8Y29kZT5wYXJhbUlkPC9jb2RlPgorICAgICAgICAgICAgICAgICAgKGlmIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQpLCBvciBhIEpTUAorICAgICAgICAgICAgICAgICAgYmVhbiB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMgY2FsbGVkIHRvIHJldHVybiBhIFN0cmluZworICAgICAgICAgICAgICAgICAgKGlmIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZCkuICBUaGUgSlNQIGJlYW4KKyAgICAgICAgICAgICAgICAgIGlzIGNvbnN0cmFpbmVkIHRvIHRoZSBiZWFuIHNjb3BlIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IHByb3BlcnR5LCBpZiBpdCBpcyBzcGVjaWZpZWQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtUHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hvc2UgcmV0dXJuIHZhbHVlIG11c3QKKyAgICAgICAgICAgICAgICAgIGJlIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlIHZhbHVlIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlcgorICAgICAgICAgICAgICAgICAgKG5hbWVkIGJ5IHRoZSA8Y29kZT5wYXJhbUlkPC9jb2RlPiBhdHRyaWJ1dGUpIHRoYXQgd2lsbCBiZQorICAgICAgICAgICAgICAgICAgZHluYW1pY2FsbHkgYWRkZWQgdG8gdGhpcyBoeXBlcmxpbmsuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtU2NvcGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICAgIGFsbCBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hvc2UgcmV0dXJuIHZhbHVlIG11c3QgYmUKKyAgICAgICAgICAgICAgICAgIGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcXVlcnkgcGFyYW1ldGVycworICAgICAgICAgICAgICAgICAgdG8gYmUgYWRkZWQgdG8gdGhlIGh5cGVybGluay4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4KKyAgICAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBpZiB5b3Ugc3BlY2lmeQorICAgICAgICAgICAgICAgICAgdGhpcyBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLCBhbGwKKyAgICAgICAgICAgICAgICAgIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvcgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YXJnZXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHdpbmRvdyB0YXJnZXQgaW4gd2hpY2ggdGhlIHJlc291cmNlIHJlcXVlc3RlZCBieSB0aGlzCisgICAgICAgICAgICAgICAgICBoeXBlcmxpbmsgd2lsbCBiZSBkaXNwbGF5ZWQsIGZvciBleGFtcGxlIGluIGEgZnJhbWVkCisgICAgICAgICAgICAgICAgICBwcmVzZW50YXRpb24uPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBoeXBlcmxpbmsuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dHJhbnNhY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPklmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgYW55IGN1cnJlbnQgdHJhbnNhY3Rpb24KKyAgICAgICAgICAgICAgICAgIGNvbnRyb2wgdG9rZW4gd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluaywKKyAgICAgICAgICAgICAgICAgIHNvIHRoYXQgaXQgd2lsbCBwYXNzIGFuIDxjb2RlPmlzVG9rZW5WYWxpZCgpPC9jb2RlPiB0ZXN0CisgICAgICAgICAgICAgICAgICBpbiB0aGUgcmVjZWl2aW5nIEFjdGlvbi48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dXNlTG9jYWxFbmNvZGluZzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICA8cD5JZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIExvY2FsQ2hhcmFjdGVyRW5jb2Rpbmcgd2lsbCBiZQorICAgICAgICAgICAgICB1c2VkLCB0aGF0IGlzLCB0aGUgY2hhcmFjdGVyRW5jb2Rpbmcgc2V0IHRvIHRoZSBIdHRwU2VydmxldFJlc3BvbnNlLAorICAgICAgICAgICAgICBhcyBwcmVmZXJlZCBjaGFyYWN0ZXIgZW5jb2RpbmcgcmF0aGVyIHRoYW4gVVRGLTgsIHdoZW4KKyAgICAgICAgICAgICAgVVJMRW5jb2RpbmcgaXMgZG9uZSBvbiBwYXJhbWV0ZXJzIG9mIHRoZSBVUkwuPC9wPgorICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPm1lc3NhZ2VzPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk1lc3NhZ2VzVGFnPC90YWctY2xhc3M+CisgICAgICAgIDx0ZWktY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTWVzc2FnZXNUZWk8L3RlaS1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5KU1A8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgICAgIENvbmRpdGlvbmFsbHkgZGlzcGxheSBhIHNldCBvZiBhY2N1bXVsYXRlZCBtZXNzYWdlcy4KKyAgICAgICAgICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICAgICAgPHA+RGlzcGxheXMgYSBzZXQgb2YgbWVzc2FnZXMgcHJlcGFyZWQgYnkgYSBidXNpbmVzcworICAgICAgICAgICAgICAgIGxvZ2ljIGNvbXBvbmVudCBhbmQgc3RvcmVkIGFzIGFuIDxjb2RlPkFjdGlvbk1lc3NhZ2VzPC9jb2RlPgorICAgICAgICAgICAgICAgIG9iamVjdCwgPGNvZGU+QWN0aW9uRXJyb3JzPC9jb2RlPiBvYmplY3QsIGEgU3RyaW5nLAorICAgICAgICAgICAgICAgIG9yIGEgU3RyaW5nIGFycmF5IGluIGFueSBzY29wZS4gIElmCisgICAgICAgICAgICAgICAgc3VjaCBhIGJlYW4gaXMgbm90IGZvdW5kLCBub3RoaW5nIHdpbGwgYmUgcmVuZGVyZWQuICBUaGUgbWVzc2FnZXMgYXJlIAorICAgICAgICAgICAgICAgIHBsYWNlZCBpbnRvIHRoZSBwYWdlIHNjb3BlIGluIHRoZSBib2R5IG9mIHRoaXMgdGFnIHdoZXJlIHRoZXkgY2FuIGJlIGRpc3BsYXllZCAKKyAgICAgICAgICAgICAgICBieSBzdGFuZGFyZCBKU1AgbWV0aG9kcy4gKEZvciBleGFtcGxlOiA8Y29kZT4mbHQ7YmVhbjp3cml0ZSZndDs8L2NvZGU+LDxjb2RlPiZsdDtjOm91dCZndDs8L2NvZGU+KQorICAgICAgICAgICAgICAgIDwvcD4KKworICAgICAgICAgICAgICAgIDxwPkluIG9yZGVyIHRvIHVzZSB0aGlzIHRhZyBzdWNjZXNzZnVsbHksIHlvdSBtdXN0IGhhdmUKKyAgICAgICAgICAgICAgICBkZWZpbmVkIGFuIGFwcGxpY2F0aW9uIHNjb3BlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+CisgICAgICAgICAgICAgICAgYmVhbiB1bmRlciB0aGUgZGVmYXVsdCBhdHRyaWJ1dGUgbmFtZS48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBUaGUgbmFtZSBvZiBhIHBhZ2Ugc2NvcGUgSlNQIGJlYW4gdGhhdCB3aWxsIGNvbnRhaW4gdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAgIGVsZW1lbnQgb2YgdGhlIGNvbGxlY3Rpb24gb2YgbWVzc2FnZXMgb24gZWFjaCBpdGVyYXRpb24sIGlmIGl0IGlzIG5vdAorICAgICAgICAgICAgICAgICAgPGNvZGU+bnVsbDwvY29kZT4uCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxvY2FsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXNzaW9uIGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBMb2NhbGUgdXNlZCB0byBzZWxlY3QKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMgdG8gYmUgZGlzcGxheWVkLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8KKyAgICAgICAgICAgICAgICAgICAgdGhlIFN0cnV0cyBzdGFuZGFyZCB2YWx1ZS4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgYmVhbiBpbiBhbnkgc2NvcGUgdW5kZXIgd2hpY2ggb3VyIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5IGZvciB3aGljaCBtZXNzYWdlcyBzaG91bGQgYmUKKyAgICAgICAgICAgICAgICAgIGRpc3BsYXllZC4gIElmIG5vdCBzcGVjaWZpZWQsIGFsbCBtZXNzYWdlcyAocmVnYXJkbGVzcworICAgICAgICAgICAgICAgICAgb2YgcHJvcGVydHkpIGFyZSBkaXNwbGF5ZWQuCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aGVhZGVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIFRoaXMgdmFsdWUgaXMgYW4gb3B0aW9uYWwgbWVzc2FnZSByZXNvdXJjZSBrZXkgdGhhdCB3aWxsCisgICAgICAgICAgICAgICAgICBiZSBwcmludGVkIGJlZm9yZSB0aGUgaXRlcmF0aW9uIG9mIG1lc3NhZ2VzIGJlZ2lucy4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mb290ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgVGhpcyB2YWx1ZSBpcyBhbiBvcHRpb25hbCBtZXNzYWdlIHJlc291cmNlIGtleSB0aGF0IHdpbGwKKyAgICAgICAgICAgICAgICAgIGJlIHByaW50ZWQgYWZ0ZXIgdGhlIGl0ZXJhdGlvbiBvZiBtZXNzYWdlcyBoYXMgZmluaXNoZWQuCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bWVzc2FnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBCeSBkZWZhdWx0IHRoZSB0YWcgd2lsbCByZXRyaWV2ZSB0aGUgYmVhbiBpdCB3aWxsCisgICAgICAgICAgICAgICAgICBpdGVyYXRlIG92ZXIgZnJvbSB0aGUgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZywKKyAgICAgICAgICAgICAgICAgIGJ1dCBpZiB0aGlzIGF0dHJpYnV0ZSBpcyBzZXQgdG8gJ3RydWUnIHRoZSBiZWFuCisgICAgICAgICAgICAgICAgICB3aWxsIGJlIHJldHJpZXZlZCBmcm9tIHRoZSA8Y29kZT5HbG9iYWxzLk1FU1NBR0VfS0VZPC9jb2RlPgorICAgICAgICAgICAgICAgICAgY29uc3RhbnQgc3RyaW5nLiAgQWxzbyBpZiB0aGlzIGlzIHNldCB0byAndHJ1ZScsIGFueSB2YWx1ZQorICAgICAgICAgICAgICAgICAgYXNzaWduZWQgdG8gdGhlIG5hbWUgYXR0cmlidXRlIHdpbGwgYmUgaWdub3JlZC4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+bXVsdGlib3g8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTXVsdGlib3hUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgQ2hlY2tib3ggSW5wdXQgRmllbGQKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5jaGVja2JveDwvY29kZT4sIHdob3NlICJjaGVja2VkIiBzdGF0dXMgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVkIGJhc2VkIG9uIHdoZXRoZXIgdGhlIHNwZWNpZmllZCB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hlcyBvbmUgb2YgdGhlIGVsZW1lbnRzIG9mIHRoZSB1bmRlcmx5aW5nCisgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eSdzIGFycmF5IG9mIGN1cnJlbnQgdmFsdWVzLiBUaGlzIGVsZW1lbnQgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHVzZWZ1bCB3aGVuIHlvdSBoYXZlIGxhcmdlIG51bWJlcnMgb2YgY2hlY2tib3hlcywgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICBwcmVmZXIgdG8gY29tYmluZSB0aGUgdmFsdWVzIGludG8gYSBzaW5nbGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5LXZhbHVlZCBwcm9wZXJ0eSBpbnN0ZWFkIG9mIG11bHRpcGxlIGJvb2xlYW4KKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMuICBUaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4gbmVzdGVkCisgICAgICAgICAgICAgICAgICAgICAgICBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LjwvcD4KKworICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XQVJOSU5HPC9zdHJvbmc+OiAgSW4gb3JkZXIgdG8gY29ycmVjdGx5CisgICAgICAgICAgICAgICAgICAgICAgICByZWNvZ25pemUgY2FzZXMgd2hlcmUgbm9uZSBvZiB0aGUgYXNzb2NpYXRlZCBjaGVja2JveGVzCisgICAgICAgICAgICAgICAgICAgICAgICBhcmUgc2VsZWN0ZWQsIHRoZSA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBiZWFuCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhpcyBmb3JtIG11c3QgaW5jbHVkZSBhIHN0YXRlbWVudAorICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZyB0aGUgY29ycmVzcG9uZGluZyBhcnJheSB0byB6ZXJvIGxlbmd0aCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPnJlc2V0KCk8L2NvZGU+IG1ldGhvZC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5UaGUgdmFsdWUgdG8gYmUgcmV0dXJuZWQgdG8gdGhlIHNlcnZlciwgaWYgdGhpcyBjaGVja2JveCBpcworICAgICAgICAgICAgICAgIHNlbGVjdGVkLCBtdXN0IGJlIGRlZmluZWQgYnkgb25lIG9mIHRoZSBmb2xsb3dpbmcgbWV0aG9kczo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT5TcGVjaWZ5IGEgPGNvZGU+dmFsdWU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hvc2UgY29udGVudHMgd2lsbAorICAgICAgICAgICAgICAgIGJlIHVzZWQgbGl0ZXJhbGx5IGFzIHRoZSB2YWx1ZSB0byBiZSByZXR1cm5lZC48L2xpPgorICAgICAgICAgICAgICAgIDxsaT5TcGVjaWZ5IG5vIDxjb2RlPnZhbHVlPC9jb2RlPiBhdHRyaWJ1dGUsIGFuZCB0aGUgbmVzdGVkCisgICAgICAgICAgICAgICAgYm9keSBjb250ZW50IG9mIHRoaXMgdGFnIHdpbGwgYmUgdXNlZCBhcyB0aGUgdmFsdWUgdG8gYmUKKyAgICAgICAgICAgICAgICByZXR1cm5lZC48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgorCisgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4sIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4gYW5kIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGVzIGFuZCBzaG91bGQgYmUgc2V0IHRvCisgICAgICAgICAgICAgICAgICB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZQorICAgICAgICAgICAgICAgICAgJmx0O2h0bWw6ZXJyb3JzLyZndDsgdGFnLjwvcD4gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlQ2xhc3M8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBjb25zdWx0ZWQgd2hlbgorICAgICAgICAgICAgICAgIHJlbmRlcmluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIGlucHV0IGZpZWxkLiBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybSB0YWcgd2UgYXJlIG5lc3RlZCB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIGJlIHRyYW5zbWl0dGVkIGlmIHRoaXMgY2hlY2tib3ggaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPm9wdGlvbjwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25UYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgICAgIFJlbmRlciBBIFNlbGVjdCBPcHRpb24KKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgICAgIDxwPlJlbmRlciBhbiBIVE1MIDxjb2RlPiZsdDtvcHRpb24mZ3Q7PC9jb2RlPiBlbGVtZW50LAorICAgICAgICAgICAgICAgIHJlcHJlc2VudGluZyBvbmUgb2YgdGhlIGNob2ljZXMgZm9yIGFuIGVuY2xvc2luZworICAgICAgICAgICAgICAgIDxjb2RlPiZsdDtzZWxlY3QmZ3Q7PC9jb2RlPiBlbGVtZW50LiAgVGhlIHRleHQgZGlzcGxheWVkIHRvIHRoZQorICAgICAgICAgICAgICAgIHVzZXIgY29tZXMgZnJvbSBlaXRoZXIgdGhlIGJvZHkgb2YgdGhpcyB0YWcsIG9yIGZyb20gYSBtZXNzYWdlCisgICAgICAgICAgICAgICAgc3RyaW5nIGxvb2tlZCB1cCBiYXNlZCBvbiB0aGUgPGNvZGU+YnVuZGxlPC9jb2RlPiwKKyAgICAgICAgICAgICAgICA8Y29kZT5sb2NhbGU8L2NvZGU+LCBhbmQgPGNvZGU+a2V5PC9jb2RlPiBhdHRyaWJ1dGVzLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPklmIHRoZSB2YWx1ZSBvZiB0aGUgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5IG1hdGNoZXMgdGhlCisgICAgICAgICAgICAgICAgc3BlY2lmaWVkIHZhbHVlLCB0aGlzIG9wdGlvbiB3aWxsIGJlIG1hcmtlZCBzZWxlY3RlZC4gIFRoaXMgdGFnCisgICAgICAgICAgICAgICAgaXMgb25seSB2YWxpZCB3aGVuIG5lc3RlZCBpbnNpZGUgYQorICAgICAgICAgICAgICAgIDxjb2RlPiZsdDtodG1sOnNlbGVjdCZndDs8L2NvZGU+IHRhZyBib2R5LjwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgb3B0aW9uIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5rZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBJZiBzcGVjaWZpZWQsIGRlZmluZXMgdGhlIG1lc3NhZ2Uga2V5IHRvIGJlIGxvb2tlZCB1cCBpbgorICAgICAgICAgICAgICAgICAgICB0aGUgcmVzb3VyY2UgYnVuZGxlIHNwZWNpZmllZCBieSA8Y29kZT5idW5kbGU8L2NvZGU+IGZvcgorICAgICAgICAgICAgICAgICAgICB0aGUgdGV4dCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgZm9yIHRoaXMgb3B0aW9uLiAgSWYgbm90CisgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllZCwgdGhlIHRleHQgdG8gYmUgZGlzcGxheWVkIGlzIHRha2VuIGZyb20gdGhlIGJvZHkKKyAgICAgICAgICAgICAgICAgICAgY29udGVudCBvZiB0aGlzIHRhZy4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxvY2FsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXNzaW9uIGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTG9jYWxlIGluc3RhbmNlIHRvIHVzZQorICAgICAgICAgICAgICAgICAgICBmb3IgbG9va2luZyB1cCB0aGUgbWVzc2FnZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPmtleTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwgdXNlcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgc3RhbmRhcmQgU3RydXRzIHNlc3Npb24gYXR0cmlidXRlIG5hbWUuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBWYWx1ZSB0byBiZSBzdWJtaXR0ZWQgZm9yIHRoaXMgZmllbGQgaWYgdGhpcyBvcHRpb24gaXMKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgYnkgdGhlIHVzZXIuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+b3B0aW9uczwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25zVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+ZW1wdHk8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIGEgQ29sbGVjdGlvbiBvZiBTZWxlY3QgT3B0aW9ucworICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICAgICAgPHA+UmVuZGVycyBhIHNldCBvZiBIVE1MIDxjb2RlPiZsdDtvcHRpb24mZ3Q7PC9jb2RlPiBlbGVtZW50cywKKyAgICAgICAgICAgICAgICByZXByZXNlbnRpbmcgcG9zc2libGUgY2hvaWNlcyBmb3IgYSA8Y29kZT4mbHQ7c2VsZWN0Jmd0OzwvY29kZT4KKyAgICAgICAgICAgICAgICBlbGVtZW50LiAgVGhpcyB0YWcgY2FuIGJlIHVzZWQgbXVsdGlwbGUgdGltZXMgd2l0aGluIGEgc2luZ2xlCisgICAgICAgICAgICAgICAgPGNvZGU+Jmx0O2h0bWw6c2VsZWN0Jmd0OzwvY29kZT4gZWxlbWVudCwgZWl0aGVyIGluIGNvbmp1bmN0aW9uCisgICAgICAgICAgICAgICAgd2l0aCBvciBpbnN0ZWFkIG9mIG9uZSBvciBtb3JlIDxjb2RlPiZsdDtodG1sOm9wdGlvbiZndDs8L2NvZGU+CisgICAgICAgICAgICAgICAgb3IgPGNvZGU+Jmx0O2h0bWw6b3B0aW9uc0NvbGxlY3Rpb24mZ3Q7PC9jb2RlPiBlbGVtZW50cy48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5UaGlzIHRhZyBvcGVyYXRlcyBpbiBvbmUgb2YgdHdvIG1ham9yIG1vZGVzLCBkZXBlbmRpbmcgb24KKyAgICAgICAgICAgICAgICB3aGV0aGVyIG9yIG5vdCB0aGUgPGNvZGU+Y29sbGVjdGlvbjwvY29kZT4gYXR0cmlidXRlIGlzCisgICAgICAgICAgICAgICAgc3BlY2lmaWVkLiAgSWYgdGhlIDxjb2RlPmNvbGxlY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSBpcworICAgICAgICAgICAgICAgIGluY2x1ZGVkLCB0aGUgZm9sbG93aW5nIHJ1bGVzIGFwcGx5OjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPlRoZSA8c3Ryb25nPmNvbGxlY3Rpb248L3N0cm9uZz4gYXR0cmlidXRlIGlzIGludGVycHJldGVkCisgICAgICAgICAgICAgICAgICAgIGFzIHRoZSBuYW1lIG9mIGEgSlNQIGJlYW4sIGluIHNvbWUgc2NvcGUsIHRoYXQgaXRzZWxmCisgICAgICAgICAgICAgICAgICAgIHJlcHJlc2VudHMgYSBjb2xsZWN0aW9uIG9mIGluZGl2aWR1YWwgYmVhbnMsIG9uZSBwZXIgb3B0aW9uCisgICAgICAgICAgICAgICAgICAgIHZhbHVlIHRvIGJlIHJlbmRlcmVkLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPlRoZSA8c3Ryb25nPnByb3BlcnR5PC9zdHJvbmc+IGF0dHJpYnV0ZSBpcyBpbnRlcnByZXRlZCBhcworICAgICAgICAgICAgICAgICAgICB0aGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBpbmRpdmlkdWFsIGJlYW5zIGluY2x1ZGVkIGluCisgICAgICAgICAgICAgICAgICAgIHRoZSBjb2xsZWN0aW9uLCBhbmQgaXMgdXNlZCB0byByZXRyaWV2ZSB0aGUgdmFsdWUgdGhhdCB3aWxsCisgICAgICAgICAgICAgICAgICAgIGJlIHJldHVybmVkIHRvIHRoZSBzZXJ2ZXIgaWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+VGhlIDxzdHJvbmc+bGFiZWxQcm9wZXJ0eTwvc3Ryb25nPiBhdHRyaWJ1dGUgaXMgaW50ZXJwcmV0ZWQKKyAgICAgICAgICAgICAgICAgICAgYXMgdGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgaW5kaXZpZHVhbCBiZWFucyBpbmNsdWRlZAorICAgICAgICAgICAgICAgICAgICBpbiB0aGUgY29sbGVjdGlvbiwgYW5kIGlzIHVzZWQgdG8gcmV0cmlldmUgdGhlIGxhYmVsIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgd2lsbCBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgZm9yIHRoaXMgb3B0aW9uLiAgSWYgdGhlCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPmxhYmVsUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgbmFtZWQgYnkgdGhlIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGUgd2lsbAorICAgICAgICAgICAgICAgICAgICBiZSB1c2VkIHRvIHNlbGVjdCBib3RoIHRoZSB2YWx1ZSByZXR1cm5lZCB0byB0aGUgc2VydmVyIGFuZAorICAgICAgICAgICAgICAgICAgICB0aGUgbGFiZWwgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGlzIG9wdGlvbi48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgICA8cD5JZiB0aGUgPGNvZGU+Y29sbGVjdGlvbjwvY29kZT4gYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgdGhlIHJ1bGVzIGRlc2NyaWJlZCBpbiB0aGUgcmVtYWluZGVyIG9mIHRoaXMgc2VjdGlvbiBhcHBseS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5UaGUgY29sbGVjdGlvbiBvZiB2YWx1ZXMgYWN0dWFsbHkgc2VsZWN0ZWQgZGVwZW5kcyBvbiB0aGUgcHJlc2VuY2Ugb3IKKyAgICAgICAgICAgICAgICBhYnNlbmNlIG9mIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhbmQgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMuICBUaGUKKyAgICAgICAgICAgICAgICBmb2xsb3dpbmcgY29tYmluYXRpb25zIGFyZSBhbGxvd2VkOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5Pbmx5IDxjb2RlPm5hbWU8L2NvZGU+IGlzIHNwZWNpZmllZDwvZW0+IC0gVGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlCisgICAgICAgICAgICAgICAgICAgIGlzIHRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gaW4gc29tZSBzY29wZSB0aGF0IGlzIHRoZQorICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5Pbmx5IDxjb2RlPnByb3BlcnR5PC9jb2RlPiBpcyBzcGVjaWZpZWQ8L2VtPiAtIFRoZSB2YWx1ZSBvZiB0aGlzCisgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpcyB0aGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBBY3Rpb25Gb3JtIGJlYW4gYXNzb2NpYXRlZAorICAgICAgICAgICAgICAgICAgICB3aXRoIG91ciBmb3JtLCB3aGljaCB3aWxsIHJldHVybiB0aGUgY29sbGVjdGlvbi48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+Qm90aCA8Y29kZT5uYW1lPC9jb2RlPiBhbmQgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGFyZSBzcGVjaWZpZWQ8L2VtPiAtCisgICAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIGlkZW50aWZpZXMgYSBKU1AgYmVhbgorICAgICAgICAgICAgICAgICAgICBpbiBzb21lIHNjb3BlLiAgVGhlIHZhbHVlIG9mIHRoZSA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlIGlzIHRoZQorICAgICAgICAgICAgICAgICAgICBuYW1lIG9mIHNvbWUgcHJvcGVydHkgb2YgdGhhdCBiZWFuIHdoaWNoIHdpbGwgcmV0dXJuIHRoZSBjb2xsZWN0aW9uLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICAgIDxwPlRoZSBjb2xsZWN0aW9uIG9mIGxhYmVscyBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgY2FuIGJlIHRoZSBzYW1lIGFzIHRoZQorICAgICAgICAgICAgICAgIG9wdGlvbiB2YWx1ZXMgdGhlbXNlbHZlcywgb3IgY2FuIGJlIGRpZmZlcmVudCwgZGVwZW5kaW5nIG9uIHRoZSBwcmVzZW5jZSBvcgorICAgICAgICAgICAgICAgIGFic2VuY2Ugb2YgdGhlIDxjb2RlPmxhYmVsTmFtZTwvY29kZT4gYW5kIDxjb2RlPmxhYmVsUHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgYXR0cmlidXRlcy4gIElmIHRoaXMgZmVhdHVyZSBpcyB1c2VkLCB0aGUgY29sbGVjdGlvbiBvZiBsYWJlbHMgbXVzdCBjb250YWluCisgICAgICAgICAgICAgICAgdGhlIHNhbWUgbnVtYmVyIG9mIGVsZW1lbnRzIGFzIHRoZSBjb3JyZXNwb25kaW5nIGNvbGxlY3Rpb24gb2YgdmFsdWVzLgorICAgICAgICAgICAgICAgIFRoZSBmb2xsb3dpbmcgY29tYmluYXRpb25zIGFyZSBhbGxvd2VkOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5OZWl0aGVyIDxjb2RlPmxhYmVsTmFtZTwvY29kZT4gbm9yIDxjb2RlPmxhYmVsUHJvcGVydHk8L2NvZGU+IGlzCisgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllZDwvZW0+IC0gVGhlIGxhYmVscyB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSBvcHRpb24gdmFsdWVzCisgICAgICAgICAgICAgICAgICAgIHRoZW1zZWx2ZXMuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPk9ubHkgPGNvZGU+bGFiZWxOYW1lPC9jb2RlPiBpcyBzcGVjaWZpZWQ8L2VtPiAtIFRoZSB2YWx1ZSBvZiB0aGlzCisgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpcyB0aGUgbmFtZSBvZiBhIEpTUCBiZWFuIGluIHNvbWUgc2NvcGUgdGhhdCBpcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbi48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+T25seSA8Y29kZT5sYWJlbFByb3BlcnR5PC9jb2RlPiBpcyBzcGVjaWZpZWQ8L2VtPiAtIFRoZSB2YWx1ZSBvZiB0aGlzCisgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpcyB0aGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBBY3Rpb25Gb3JtIGJlYW4gYXNzb2NpYXRlZAorICAgICAgICAgICAgICAgICAgICB3aXRoIG91ciBmb3JtLCB3aGljaCB3aWxsIHJldHVybiB0aGUgY29sbGVjdGlvbi48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+Qm90aCA8Y29kZT5sYWJlbE5hbWU8L2NvZGU+IGFuZCA8Y29kZT5sYWJlbFByb3BlcnR5PC9jb2RlPiBhcmUKKyAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkPC9lbT4gLSBUaGUgdmFsdWUgb2YgdGhlIDxjb2RlPmxhYmVsTmFtZTwvY29kZT4gYXR0cmlidXRlCisgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXMgYSBKU1AgYmVhbiBpbiBzb21lIHNjb3BlLiAgVGhlIHZhbHVlIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5sYWJlbFByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGUgaXMgdGhlIG5hbWUgb2Ygc29tZSBwcm9wZXJ0eSBvZgorICAgICAgICAgICAgICAgICAgICB0aGF0IGJlYW4gd2hpY2ggd2lsbCByZXR1cm4gdGhlIGNvbGxlY3Rpb24uPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisKKyAgICAgICAgICAgIDxwPk5vdGUgdGhhdCB0aGlzIHRhZyBkb2VzIG5vdCBzdXBwb3J0IGEgPGNvZGU+c3R5bGVJZDwvY29kZT4KKyAgICAgICAgICAgIGF0dHJpYnV0ZSwgYXMgaXQgd291bGQgaGF2ZSB0byBhcHBseSB0aGUgdmFsdWUgdG8gYWxsIHRoZQorICAgICAgICAgICAgPGNvZGU+b3B0aW9uPC9jb2RlPiBlbGVtZW50cyBjcmVhdGVkIGJ5IHRoaXMgZWxlbWVudCwgd2hpY2ggd291bGQKKyAgICAgICAgICAgIG1lYW4gdGhhdCBtb3JlIHRoYW4gb25lIDxjb2RlPmlkPC9jb2RlPiBlbGVtZW50IG1pZ2h0IGhhdmUgdGhlIHNhbWUKKyAgICAgICAgICAgIHZhbHVlLCB3aGljaCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIHNheXMgaXMgaWxsZWdhbC48L3A+CisKKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5jb2xsZWN0aW9uPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIEpTUCBiZWFuIChpbiBzb21lIHNjb3BlKSB3aGljaCBpcyBpdHNlbGYgYQorICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGlvbiBvZiBvdGhlciBiZWFucywgZWFjaCBvZiB3aGljaCBoYXMgcHJvcGVydGllcworICAgICAgICAgICAgICAgICAgICAgICAgbmFtZWQgYnkgdGhlICJwcm9wZXJ0eSIgYW5kICJsYWJlbFByb3BlcnR5IiBhdHRyaWJ1dGVzCisgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IGFyZSB1c2VkIHRvIHJldHJpZXZlIHRoZSB2YWx1ZSBhbmQgbGFiZWwgZm9yIGVhY2gKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbiwgcmVzcGVjdGl2ZWx5LgorICAgICAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZpbHRlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4gaWYgeW91IGRvIE5PVCB3YW50IHRoZSBvcHRpb24gbGFiZWxzCisgICAgICAgICAgICAgICAgZmlsdGVyZWQgZm9yIHNlbnNpdGl2ZSBjaGFyYWN0ZXJzIGluIEhUTUwuICBCeSBkZWZhdWx0LCBzdWNoCisgICAgICAgICAgICAgICAgdmFsdWVzIGFyZSBmaWx0ZXJlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sYWJlbE5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIEpTUCBiZWFuIChpbiBzb21lIHNjb3BlKSBjb250YWluaW5nIHRoZSBjb2xsZWN0aW9uIG9mIGxhYmVscyB0bworICAgICAgICAgICAgICAgIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgdGhlc2Ugb3B0aW9ucy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sYWJlbFByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBQcm9wZXJ0eSBvZiB0aGUgZm9ybSBiZWFuLCBvciB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIGxhYmVsTmFtZQorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgdGhhdCB3aWxsIHJldHVybiB0aGUgY29sbGVjdGlvbiBvZiBsYWJlbHMgdG8gYmUgZGlzcGxheWVkCisgICAgICAgICAgICAgICAgdG8gdGhlIHVzZXIgZm9yIHRoZXNlIG9wdGlvbnMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgSlNQIGJlYW4gKGluIHNvbWUgc2NvcGUpIGNvbnRhaW5pbmcgdGhlIGNvbGxlY3Rpb24gb2YKKyAgICAgICAgICAgICAgICB2YWx1ZXMgdG8gYmUgcmV0dXJuZWQgdG8gdGhlIHNlcnZlciBmb3IgdGhlc2Ugb3B0aW9ucy4gSWYgbm90CisgICAgICAgICAgICAgICAgc3BlY2lmaWVkLCB0aGUgZm9ybSBiZWFuIGFzc29jaWF0ZWQgd2l0aCBvdXIgZm9ybSBpcyBhc3N1bWVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBQcm9wZXJ0eSBvZiB0aGUgZm9ybSBiZWFuLCBvciB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlIG5hbWUKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUsIHRoYXQgd2lsbCByZXR1cm4gdGhlIGNvbGxlY3Rpb24gb2YgdmFsdWVzIHRvIHJldHVybmVkCisgICAgICAgICAgICAgICAgdG8gdGhlIHNlcnZlciBmb3IgdGhlc2Ugb3B0aW9ucy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+b3B0aW9uc0NvbGxlY3Rpb248L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+CisgICAgICAgICAgICBvcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5PcHRpb25zQ29sbGVjdGlvblRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PmVtcHR5PC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBhIENvbGxlY3Rpb24gb2YgU2VsZWN0IE9wdGlvbnMKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgPHA+UmVuZGVycyBhIHNldCBvZiBIVE1MIDxjb2RlPiZsdDtvcHRpb24mZ3Q7PC9jb2RlPiBlbGVtZW50cywKKyAgICAgICAgICAgIHJlcHJlc2VudGluZyBwb3NzaWJsZSBjaG9pY2VzIGZvciBhIDxjb2RlPiZsdDtzZWxlY3QmZ3Q7PC9jb2RlPgorICAgICAgICAgICAgZWxlbWVudC4gIFRoaXMgdGFnIGNhbiBiZSB1c2VkIG11bHRpcGxlIHRpbWVzIHdpdGhpbiBhIHNpbmdsZQorICAgICAgICAgICAgPGNvZGU+Jmx0O2h0bWw6c2VsZWN0Jmd0OzwvY29kZT4gZWxlbWVudCwgZWl0aGVyIGluIGNvbmp1bmN0aW9uCisgICAgICAgICAgICB3aXRoIG9yIGluc3RlYWQgb2Ygb25lIG9yIG1vcmUgPGNvZGU+Jmx0O2h0bWw6b3B0aW9uJmd0OzwvY29kZT4KKyAgICAgICAgICAgIG9yIDxjb2RlPiZsdDtodG1sOm9wdGlvbnMmZ3Q7PC9jb2RlPiBlbGVtZW50cy48L3A+CisKKyAgICAgICAgICAgIDxwPlRoaXMgdGFnIG9wZXJhdGVzIG9uIGEgY29sbGVjdGlvbiBvZiBiZWFucywgd2hlcmUgZWFjaCBiZWFuCisgICAgICAgICAgICBoYXMgYSA8c3Ryb25nPmxhYmVsPC9zdHJvbmc+IHByb3BlcnR5IGFuZCBhIDxzdHJvbmc+dmFsdWU8L3N0cm9uZz4KKyAgICAgICAgICAgIHByb3BlcnR5LiBUaGUgYWN0dWFsIG5hbWVzIG9mIHRoZXNlIHByb3BlcnRpZXMgY2FuIGJlIGNvbmZpZ3VyZWQKKyAgICAgICAgICAgIHVzaW5nIHRoZSA8Y29kZT5sYWJlbDwvY29kZT4gYW5kIDxjb2RlPnZhbHVlPC9jb2RlPiBhdHRyaWJ1dGVzCisgICAgICAgICAgICBvZiB0aGlzIHRhZy48L3A+CisKKyAgICAgICAgICAgIDxwPlRoaXMgdGFnIGRpZmZlcnMgZnJvbSB0aGUgPGNvZGU+Jmx0O2h0bWw6b3B0aW9ucyZndDs8L2NvZGU+IHRhZworICAgICAgICAgICAgaW4gdGhhdCBpdCBtYWtlcyBtb3JlIGNvbnNpc3RlbnQgdXNlIG9mIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhbmQKKyAgICAgICAgICAgIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzLCBhbmQgYWxsb3dzIHRoZSBjb2xsZWN0aW9uIHRvIGJlCisgICAgICAgICAgICBtb3JlIGVhc2lseSBvYnRhaW5lZCBmcm9tIHRoZSBlbmNsb3NpbmcgZm9ybSBiZWFuLjwvcD4KKworICAgICAgICAgICAgPHA+Tm90ZSB0aGF0IHRoaXMgdGFnIGRvZXMgbm90IHN1cHBvcnQgYSA8Y29kZT5zdHlsZUlkPC9jb2RlPgorICAgICAgICAgICAgYXR0cmlidXRlLCBhcyBpdCB3b3VsZCBoYXZlIHRvIGFwcGx5IHRoZSB2YWx1ZSB0byBhbGwgdGhlCisgICAgICAgICAgICA8Y29kZT5vcHRpb248L2NvZGU+IGVsZW1lbnRzIGNyZWF0ZWQgYnkgdGhpcyBlbGVtZW50LCB3aGljaCB3b3VsZAorICAgICAgICAgICAgbWVhbiB0aGF0IG1vcmUgdGhhbiBvbmUgPGNvZGU+aWQ8L2NvZGU+IGVsZW1lbnQgbWlnaHQgaGF2ZSB0aGUgc2FtZQorICAgICAgICAgICAgdmFsdWUsIHdoaWNoIHRoZSBIVE1MIHNwZWNpZmljYXRpb24gc2F5cyBpcyBpbGxlZ2FsLjwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5maWx0ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBTZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIHlvdSBkbyBOT1Qgd2FudCB0aGUgb3B0aW9uIGxhYmVscworICAgICAgICAgICAgICAgIGZpbHRlcmVkIGZvciBzZW5zaXRpdmUgY2hhcmFjdGVycyBpbiBIVE1MLiAgQnkgZGVmYXVsdCwgc3VjaAorICAgICAgICAgICAgICAgIHZhbHVlcyBhcmUgZmlsdGVyZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bGFiZWw8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiB3aXRoaW4gdGhlIGNvbGxlY3Rpb24gd2hpY2ggcmVwcmVzZW50cworICAgICAgICAgICAgICAgIHRoZSBsYWJlbCB0byBiZSByZW5kZXJlZCBmb3IgZWFjaCBvcHRpb24uIERlZmF1bHRzIHRvICJsYWJlbCIuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZAorICAgICAgICAgICAgICAgIHdoZW4gcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdAorICAgICAgICAgICAgICAgIHNwZWNpZmllZCwgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkCisgICAgICAgICAgICAgICAgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgcHJvcGVydHkgb2YgdGhlIGZvcm0gYmVhbiwgb3IgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lCisgICAgICAgICAgICAgICAgYXR0cmlidXRlLCB0aGF0IHdpbGwgcmV0dXJuIHRoZSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgdG8gYmUKKyAgICAgICAgICAgICAgICByZW5kZXJlZCBmb3IgdGhlc2Ugb3B0aW9ucy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHByb3BlcnR5IG9mIHRoZSBiZWFuIHdpdGhpbiB0aGUgY29sbGVjdGlvbiB3aGljaCByZXByZXNlbnRzCisgICAgICAgICAgICAgICAgdGhlIHZhbHVlIHRvIGJlIHJlbmRlcmVkIGZvciBlYWNoIG9wdGlvbi4gRGVmYXVsdHMgdG8gInZhbHVlIi4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+cGFzc3dvcmQ8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUGFzc3dvcmRUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgUGFzc3dvcmQgSW5wdXQgRmllbGQKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgUmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlIHBhc3N3b3JkLCBwb3B1bGF0ZWQKKyAgICAgICAgICAgIGZyb20gdGhlIHNwZWNpZmllZCB2YWx1ZSBvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBiZWFuCisgICAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggb3VyIGN1cnJlbnQgZm9ybS4gVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuCisgICAgICAgICAgICBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgorCisgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4sIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4gYW5kIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGVzIGFuZCBzaG91bGQgYmUgc2V0IHRvCisgICAgICAgICAgICAgICAgICB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZQorICAgICAgICAgICAgICAgICAgJmx0O2h0bWw6ZXJyb3JzLyZndDsgdGFnLjwvcD4gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlQ2xhc3M8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bWF4bGVuZ3RoPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBNYXhpbXVtIG51bWJlciBvZiBpbnB1dCBjaGFyYWN0ZXJzIHRvIGFjY2VwdC4gW05vIGxpbWl0XQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBjb25zdWx0ZWQgd2hlbgorICAgICAgICAgICAgICAgIHJlbmRlcmluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIGlucHV0IGZpZWxkLiBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybSB0YWcgd2UgYXJlIG5lc3RlZCB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnJlYWRvbmx5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgcmVhZCBvbmx5LgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5yZWRpc3BsYXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIEJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IGV4aXN0aW5nIHZhbHVlcworICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBiZSByZWRpc3BsYXllZCBpZiB0aGV5IGV4aXN0LiAgRXZlbiB0aG91Z2ggdGhlCisgICAgICAgICAgICAgICAgICAgICAgICByZWRpc3BsYXllZCB2YWx1ZSB3aWxsIGJlIHNob3duIGFzIGFzdGVyaXNrcyBvbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGUgSFRNTCBwYWdlLCB0aGUgY2xlYXJ0ZXh0IG9mIHRoZSBhY3R1YWwgcGFzc3dvcmQKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIHdpbGwgYmUgdmlzaWJsZSB0aG91Z2ggdGhlICJTaG93IFBhZ2UgU291cmNlIgorICAgICAgICAgICAgICAgICAgICAgICAgbWVudSBvcHRpb24gb2YgdGhlIGNsaWVudCBicm93c2VyLiAgWW91IG1heSB3aXNoIHRvCisgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdGhpcyB2YWx1ZSB0byA8Y29kZT5mYWxzZTwvY29kZT4gb24gbG9naW4gcGFnZXMuCisgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byA8Y29kZT50cnVlPC9jb2RlPiBmb3IgY29uc2lzdGVuY3kgd2l0aAorICAgICAgICAgICAgICAgICAgICAgICAgYWxsIG90aGVyIGZvcm0gdGFncyB0aGF0IHJlZGlzcGxheSB0aGVpciBjb250ZW50cy4KKyAgICAgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zaXplPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOdW1iZXIgb2YgY2hhcmFjdGVyIHBvc2l0aW9ucyB0byBhbGxvY2F0ZS4gW0Jyb3dzZXIgZGVmYXVsdF0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWx1ZSBvZiB0aGUgbGFiZWwgdG8gYmUgcGxhY2VkIG9uIHRoaXMgYnV0dG9uLiBUaGlzIHZhbHVlIHdpbGwKKyAgICAgICAgICAgICAgICBhbHNvIGJlIHN1Ym1pdHRlZCBhcyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCByZXF1ZXN0IHBhcmFtZXRlci4KKyAgICAgICAgICAgICAgICBbQm9keSBvZiB0aGlzIHRhZyAoaWYgYW55KV0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+cmFkaW88L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmFkaW9UYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgUmFkaW8gQnV0dG9uIElucHV0IEZpZWxkCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgUmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlIHJhZGlvLCBwb3B1bGF0ZWQgZnJvbQorICAgICAgICAgICAgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggb3VyIGN1cnJlbnQgZm9ybS4KKyAgICAgICAgICAgIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbiBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgSWYgYW4gaXRlcmF0b3IgaXMgdXNlZCB0byByZW5kZXIgYSBzZXJpZXMgb2YgcmFkaW8gdGFncywgdGhlCisgICAgICAgICAgICBpZE5hbWUgYXR0cmlidXRlIG1heSBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIGJlYW4KKyAgICAgICAgICAgIGV4cG9zZWQgYnkgdGhlIGl0ZXJhdG9yLiBJbiB0aGlzIGNhc2UsIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXMKKyAgICAgICAgICAgIHVzZWQgYXMgdGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvbiB0aGUgaWROYW1lIGJlYW4gdGhhdCByZXR1cm5zCisgICAgICAgICAgICB0aGUgdmFsdWUgb2YgdGhlIHJhZGlvIHRhZyBpbiB0aGlzIGl0ZXJhdGlvbi4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgorCisgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4sIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4gYW5kIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGVzIGFuZCBzaG91bGQgYmUgc2V0IHRvCisgICAgICAgICAgICAgICAgICB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZQorICAgICAgICAgICAgICAgICAgJmx0O2h0bWw6ZXJyb3JzLyZndDsgdGFnLjwvcD4gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlQ2xhc3M8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZCB3aGVuCisgICAgICAgICAgICAgICAgcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eSBmb3IgdGhpcyByYWRpbyB0YWcuCisgICAgICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgb2YgdGhlIHJhZGlvIHRhZy4KKyAgICAgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pZE5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIGJlYW4gKGluIHNvbWUgc2NvcGUpIHRoYXQgd2lsbCByZXR1cm4gdGhlCisgICAgICAgICAgICAgICAgdmFsdWUgb2YgdGhlIHJhZGlvIHRhZy4gVXN1YWxseSBleHBvc2VkCisgICAgICAgICAgICAgICAgYnkgYW4gaXRlcmF0b3IuIFdoZW4gdGhlIGlkTmFtZSBhdHRyaWJ1dGUgaXMKKyAgICAgICAgICAgICAgICBwcmVzZW50LCB0aGUgdmFsdWUgYXR0cmlidXRlIGlzIHVzZWQgYXMgdGhlIG5hbWUgb2YgdGhlCisgICAgICAgICAgICAgICAgcHJvcGVydHkgb24gdGhlIGlkTmFtZSBiZWFuIHRoYXQgd2lsbCByZXR1cm4gdGhlCisgICAgICAgICAgICAgICAgdmFsdWUgb2YgdGhlIHJhZGlvIHRhZyBmb3IgdGhpcyBpdGVyYXRpb24uPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjE8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5yZXNldDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SZXNldFRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgQSBSZXNldCBCdXR0b24gSW5wdXQgRmllbGQKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgUmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlIHJlc2V0LgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIGlucHV0IGZpZWxkIHRoYXQgd2lsbCBiZSBnZW5lcmF0ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIFZhbHVlIG9mIHRoZSBsYWJlbCB0byBiZSBwbGFjZWQgb24gdGhpcyBidXR0b24uCisgICAgICAgICAgICAgICAgICAgICAgICBbQm9keSBvZiB0aGlzIHRhZyAoaWYgYW55KSwgb3IgIlJlc2V0Il0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+cmV3cml0ZTwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5SZXdyaXRlVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+ZW1wdHk8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPlJlbmRlciBhbiBVUkk8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICAgICAgPHA+UmVuZGVycyBhIHJlcXVlc3QgVVJJIGJhc2VkIG9uIGV4YWN0bHkgdGhlIHNhbWUgcnVsZXMKKyAgICAgICAgICAgICAgICBhcyB0aGUgPGNvZGU+PGEgaHJlZj0iI2xpbmsiPmxpbms8L2E+PC9jb2RlPiB0YWcgZG9lcywKKyAgICAgICAgICAgICAgICBidXQgd2l0aG91dCBjcmVhdGluZworICAgICAgICAgICAgICAgIHRoZSA8Y29kZT4mbHQ7YSZndDs8L2NvZGU+IGh5cGVybGluay4gIFRoaXMgdmFsdWUgaXMgdXNlZnVsCisgICAgICAgICAgICAgICAgd2hlbiB5b3Ugd2FudCB0byBnZW5lcmF0ZSBhIHN0cmluZyBjb25zdGFudCBmb3IgdXNlIGJ5CisgICAgICAgICAgICAgICAgYSBKYXZhU2NyaXB0IHByb2NlZHVyZS48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TG9naWNhbCBuYW1lIG9mIGEgPGNvZGU+QWN0aW9uPC9jb2RlPiB0aGF0CisgICAgICAgICAgICAgICAgICBjb250YWlucyB0aGUgYWN0dWFsIGNvbnRlbnQtcmVsYXRpdmUgVVJJIG9mIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgICAgICAgb2YgdGhpcyB0cmFuc2Zlci4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgbW9kaWZpZWQgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQKKyAgICAgICAgICAgICAgICAgIGluIHRoZSB0YWcgZGVzY3JpcHRpb24uIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPgorICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgIAorCQkgICAgICAgPHA+QWRkaXRpb25hbGx5LCB5b3UgY2FuIHNwZWNpZnkgYSA8Y29kZT5tb2R1bGU8L2NvZGU+IHByZWZpeCAKKwkJCSAgIGZvciBsaW5raW5nIHRvIG90aGVyIG1vZHVsZXMuPC9wPgorCQkJCQkJICAgCisJCQkgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi4wPC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tb2R1bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworCQkJCSAgIDxwPlByZWZpeCBuYW1lIG9mIGEgPGNvZGU+TW9kdWxlPC9jb2RlPiB0aGF0CisJCQkJICAgY29udGFpbnMgdGhlIGFjdGlvbiBtYXBwaW5nIGZvciB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPgorCQkJCSAgIHRoYXQgaXMgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZS4KKwkJCQkgICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgYW4gPGNvZGU+YWN0aW9uPC9jb2RlPiAKKwkJCQkgICBhdHRyaWJ1dGUgZm9yIHRoaXMgdG8gaGF2ZSBhbiBlZmZlY3QuPC9wPgorCQkJCisJCQkJICAgPHA+PHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz5Vc2UgIiIgdG8gbWFwIHRvIHRoZSBkZWZhdWx0IG1vZHVsZS48L3A+CisJCQkgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbmNob3I8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+T3B0aW9uYWwgYW5jaG9yIHRhZyAoIiN4eHgiKSB0byBiZSBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgICBoeXBlcmxpbmsuICBTcGVjaWZ5IHRoaXMgdmFsdWUgPHN0cm9uZz53aXRob3V0PC9zdHJvbmc+IGFueQorICAgICAgICAgICAgICAgICAgIiMiIGNoYXJhY3Rlci48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Zm9yd2FyZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5Mb2dpY2FsIG5hbWUgb2YgYSBnbG9iYWwgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zIHRoZSBhY3R1YWwgY29udGVudC1yZWxhdGl2ZSBVUkkgb2YgdGhlIGRlc3RpbmF0aW9uCisgICAgICAgICAgICAgICAgICAgb2YgdGhpcyB0cmFuc2Zlci4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkCisgICAgICAgICAgICAgICAgICAgaW4gdGhlIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPgorICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmhyZWY8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIFVSTCB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAgICBpZiBhY3RpdmF0ZWQuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gdGhhdCBjb250YWlucyBhIDxjb2RlPk1hcDwvY29kZT4KKyAgICAgICAgICAgICAgICAgIHJlcHJlc2VudGluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgICBpcyBub3Qgc3BlY2lmaWVkKSwgb3IgYSBKU1AgYmVhbiB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMKKyAgICAgICAgICAgICAgICAgIGNhbGxlZCB0byByZXR1cm4gYSA8Y29kZT5NYXA8L2NvZGU+IChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGlzIHNwZWNpZmllZCkuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIChiZWdpbm5pbmcgd2l0aCBhICIvIgorICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyKSB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAgICBpZiBhY3RpdmF0ZWQuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgZXhhY3RseQorICAgICAgICAgICAgICAgICAgIG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZSAKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+CisgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1JZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgICBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkIGh5cGVybGluay4gIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGlzCisgICAgICAgICAgICAgICAgICBkZWZpbmVkIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGFuZCAob3B0aW9uYWwpCisgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzLCBvcHRpb25hbGx5IHNjb3BlZCBieQorICAgICAgICAgICAgICAgICAgdGhlIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IGF0dHJpYnV0ZTwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbU5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGlzIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlCisgICAgICAgICAgICAgICAgICB2YWx1ZSBmb3IgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVkIGJ5IDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQCisgICAgICAgICAgICAgICAgICBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcyBjYWxsZWQgdG8gcmV0dXJuIGEgU3RyaW5nCisgICAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkKS4gIFRoZSBKU1AgYmVhbgorICAgICAgICAgICAgICAgICAgaXMgY29uc3RyYWluZWQgdG8gdGhlIGJlYW4gc2NvcGUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gcHJvcGVydHksIGlmIGl0IGlzIHNwZWNpZmllZC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1Qcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdAorICAgICAgICAgICAgICAgICAgYmUgYSBTdHJpbmcgY29udGFpbmluZyB0aGUgdmFsdWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyCisgICAgICAgICAgICAgICAgICAobmFtZWQgYnkgdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+IGF0dHJpYnV0ZSkgdGhhdCB3aWxsIGJlCisgICAgICAgICAgICAgICAgICBkeW5hbWljYWxseSBhZGRlZCB0byB0aGlzIGh5cGVybGluay48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1TY29wZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgICAgYWxsIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdCBiZQorICAgICAgICAgICAgICAgICAgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzCisgICAgICAgICAgICAgICAgICB0byBiZSBhZGRlZCB0byB0aGUgaHlwZXJsaW5rLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPgorICAgICAgICAgICAgICAgICAgc3BlY2lmeSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIGlmIHlvdSBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICB0aGlzIGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2NvcGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZS4gIElmIG5vdCBzcGVjaWZpZWQsIGFsbAorICAgICAgICAgICAgICAgICAgc2NvcGVzIGFyZSBzZWFyY2hlZC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dHJhbnNhY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPklmIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgYW55IGN1cnJlbnQgdHJhbnNhY3Rpb24KKyAgICAgICAgICAgICAgICAgIGNvbnRyb2wgdG9rZW4gd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluaywKKyAgICAgICAgICAgICAgICAgIHNvIHRoYXQgaXQgd2lsbCBwYXNzIGFuIDxjb2RlPmlzVG9rZW5WYWxpZCgpPC9jb2RlPiB0ZXN0CisgICAgICAgICAgICAgICAgICBpbiB0aGUgcmVjZWl2aW5nIEFjdGlvbi48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dXNlTG9jYWxFbmNvZGluZzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICA8cD5JZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIExvY2FsQ2hhcmFjdGVyRW5jb2Rpbmcgd2lsbCBiZQorICAgICAgICAgICAgICB1c2VkLCB0aGF0IGlzLCB0aGUgY2hhcmFjdGVyRW5jb2Rpbmcgc2V0IHRvIHRoZSBIdHRwU2VydmxldFJlc3BvbnNlLAorICAgICAgICAgICAgICBhcyBwcmVmZXJlZCBjaGFyYWN0ZXIgZW5jb2RpbmcgcmF0aGVyIHRoYW4gVVRGLTgsIHdoZW4KKyAgICAgICAgICAgICAgVVJMRW5jb2RpbmcgaXMgZG9uZSBvbiBwYXJhbWV0ZXJzIG9mIHRoZSBVUkwuPC9wPgorICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnNlbGVjdDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TZWxlY3RUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5KU1A8L2JvZHktY29udGVudD4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgU2VsZWN0IEVsZW1lbnQKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MICZsdDtzZWxlY3QmZ3Q7IGVsZW1lbnQsIGFzc29jaWF0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggYSBiZWFuIHByb3BlcnR5IHNwZWNpZmllZCBieSBvdXIgYXR0cmlidXRlcy4gIFRoaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4gbmVzdGVkIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuCisgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CisKKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRoaXMgdGFnIG9wZXJhdGVzIGluIHR3byBtb2RlcywgZGVwZW5kaW5nIHVwb24gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSBvZiB0aGUgPGNvZGU+bXVsdGlwbGU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgIGFmZmVjdHMgdGhlIGRhdGEgdHlwZSBvZiB0aGUgYXNzb2NpYXRlZCBwcm9wZXJ0eSB5b3UKKyAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZCB1c2U6PC9wPgorICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxlbT5tdWx0aXBsZT0idHJ1ZSIgSVMgTk9UIHNlbGVjdGVkPC9lbT4gLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBjb3JyZXNwb25kaW5nIHByb3BlcnR5IHNob3VsZCBiZSBhIHNjYWxhcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIG9mIGFueSBzdXBwb3J0ZWQgZGF0YSB0eXBlLjwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGVtPm11bHRpcGxlPSJ0cnVlIiBJUyBzZWxlY3RlZDwvZW0+IC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBzaG91bGQgYmUgYW4gYXJyYXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBhbnkgc3VwcG9ydGVkIGRhdGEgdHlwZS48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5XQVJOSU5HPC9zdHJvbmc+OiAgSW4gb3JkZXIgdG8gY29ycmVjdGx5CisgICAgICAgICAgICAgICAgICAgICAgICByZWNvZ25pemUgY2FzZXMgd2hlcmUgbm8gc2VsZWN0aW9uIGF0IGFsbCBpcyBtYWRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPkFjdGlvbkZvcm08L2NvZGU+IGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgZm9ybQorICAgICAgICAgICAgICAgICAgICAgICAgbXVzdCBpbmNsdWRlIGEgc3RhdGVtZW50IHJlc2V0dGluZyB0aGUgc2NhbGFyIHByb3BlcnR5CisgICAgICAgICAgICAgICAgICAgICAgICB0byBhIGRlZmF1bHQgdmFsdWUgKGlmIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcyBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldCksIG9yIHRoZSBhcnJheSBwcm9wZXJ0eSB0byB6ZXJvIGxlbmd0aCAoaWYKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBpcyBzZXQpIGluIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+cmVzZXQoKTwvY29kZT4gbWV0aG9kLjwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvcktleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5OYW1lIG9mIHRoZSByZXF1ZXN0IHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggb3VyIGVycm9yIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLjwvcD4KKworICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IFRoaXMgaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+LCA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+IGFuZCAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4gYXR0cmlidXRlcyBhbmQgc2hvdWxkIGJlIHNldCB0bworICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUKKyAgICAgICAgICAgICAgICAgICZsdDtodG1sOmVycm9ycy8mZ3Q7IHRhZy48L3A+IAorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUNsYXNzPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVJZDwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgImlkWzM0XS5wcm9wZXJ0eU5hbWUiLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm11bHRpcGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgc2V0IHRvIGFueSBhcmJpdHJhcnkgdmFsdWUsIHRoZSByZW5kZXJlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3QgZWxlbWVudCB3aWxsIHN1cHBvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUgc2VsZWN0aW9ucy4KKyAgICAgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkCisgICAgICAgICAgICAgICAgdG8gZGV0ZXJtaW5lIHdoaWNoIG9wdGlvbiBzaG91bGQgYmUgcHJlLXNlbGVjdGVkIHdoZW4gcmVuZGVyaW5nCisgICAgICAgICAgICAgICAgdGhpcyBpbnB1dCBmaWVsZC4gIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aAorICAgICAgICAgICAgICAgIHRoZSBlbmNsb3NpbmcgPGNvZGU+Jmx0O2h0bWw6Zm9ybSZndDs8L2NvZGU+IHRhZyBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zaXplPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBvcHRpb25zIGRpc3BsYXllZCBhdCBvbmUgdGltZS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHZhbHVlIHRvIGNvbXBhcmUgd2l0aCBmb3IgbWFya2luZyBhbiBvcHRpb24gc2VsZWN0ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnN1Ym1pdDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5TdWJtaXRUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgU3VibWl0IEJ1dHRvbgorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUgPGNvZGU+c3VibWl0PC9jb2RlPi4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgIElmIGEgZ3JhcGhpY2FsIGJ1dHRvbiBpcyBuZWVkZWQgKGEgYnV0dG9uIHdpdGggYW4gaW1hZ2UpLCB0aGVuIHRoZQorICAgICAgICAgICAgIDxhIGhyZWY9IiNpbWFnZSI+PGNvZGU+aW1hZ2U8L2NvZGU+PC9hPiB0YWcgaXMgbW9yZSBhcHByb3ByaWF0ZS4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4gIElmIDxjb2RlPnRydWU8L2NvZGU+CisgICAgICAgICAgICAgICAgdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgInByb3BlcnR5TmFtZVszNF0iLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yCisgICAgICAgICAgICAgICAgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdmFsdWUgb2YgdGhlIGJ1dHRvbiBsYWJlbC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+dGV4dDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0VGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgQW4gSW5wdXQgRmllbGQgb2YgVHlwZSB0ZXh0PC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgPHA+UmVuZGVyIGFuIGlucHV0IGZpZWxkIG9mIHR5cGUgdGV4dC4gIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbiAKKyAgICAgICAgICAgIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LjwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvcktleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5OYW1lIG9mIHRoZSByZXF1ZXN0IHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggb3VyIGVycm9yIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLjwvcD4KKworICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IFRoaXMgaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+LCA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+IGFuZCAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4gYXR0cmlidXRlcyBhbmQgc2hvdWxkIGJlIHNldCB0bworICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUKKyAgICAgICAgICAgICAgICAgICZsdDtodG1sOmVycm9ycy8mZ3Q7IHRhZy48L3A+IAorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUNsYXNzPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVJZDwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgImlkWzM0XS5wcm9wZXJ0eU5hbWUiLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1heGxlbmd0aDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTWF4aW11bSBudW1iZXIgb2YgaW5wdXQgY2hhcmFjdGVycyB0byBhY2NlcHQuIFtObyBsaW1pdF0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkCisgICAgICAgICAgICAgICAgd2hlbiByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBpbnB1dCBmaWVsZC4gSWYgbm90CisgICAgICAgICAgICAgICAgc3BlY2lmaWVkLCB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFnIHdlIGFyZSBuZXN0ZWQKKyAgICAgICAgICAgICAgICB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25zZWxlY3Q8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIGEKKyAgICAgICAgICAgICAgICB3aGVuIGEgdXNlciBzZWxlY3RzIHNvbWUgdGV4dCBpbiBhIHRleHQgZmllbGQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGlzIGlucHV0IGZpZWxkLCBhbmQgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgYmVhbgorICAgICAgICAgICAgICAgIHByb3BlcnR5IGlmIHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQuIFRoZSBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkKKyAgICAgICAgICAgICAgICAoaWYgYW55KSBtdXN0IGJlIG9mIHR5cGUgU3RyaW5nLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnJlYWRvbmx5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgcmVhZCBvbmx5LgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zaXplPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOdW1iZXIgb2YgY2hhcmFjdGVyIHBvc2l0aW9ucyB0byBhbGxvY2F0ZS4gW0Jyb3dzZXIgZGVmYXVsdF0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWx1ZSB0byB3aGljaCB0aGlzIGZpZWxkIHNob3VsZCBiZSBpbml0aWFsaXplZC4gW1VzZSB0aGUKKyAgICAgICAgICAgICAgICBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkgdmFsdWVdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnRleHRhcmVhPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlRleHRhcmVhVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBBIFRleHRhcmVhCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIFJlbmRlciBhIHRleHRhcmVhIGVsZW1lbnQuICBUaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4gbmVzdGVkCisgICAgICAgICAgICAgICAgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmNvbHM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBudW1iZXIgb2YgY29sdW1ucyB0byBkaXNwbGF5LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgorCisgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4sIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4gYW5kIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGVzIGFuZCBzaG91bGQgYmUgc2V0IHRvCisgICAgICAgICAgICAgICAgICB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZQorICAgICAgICAgICAgICAgICAgJmx0O2h0bWw6ZXJyb3JzLyZndDsgdGFnLjwvcD4gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlQ2xhc3M8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAiaWRbMzRdLnByb3BlcnR5TmFtZSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZAorICAgICAgICAgICAgICAgIHdoZW4gcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdAorICAgICAgICAgICAgICAgIHNwZWNpZmllZCwgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkCisgICAgICAgICAgICAgICAgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uc2VsZWN0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiBhCisgICAgICAgICAgICAgICAgd2hlbiBhIHVzZXIgc2VsZWN0cyBzb21lIHRleHQgaW4gYSB0ZXh0IGZpZWxkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhpcyBpbnB1dCBmaWVsZCwgYW5kIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIGJlYW4KKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSBpZiB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkLiBUaGUgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5CisgICAgICAgICAgICAgICAgKGlmIGFueSkgbXVzdCBiZSBvZiB0eXBlIFN0cmluZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5yZWFkb25seTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIHJlYWQgb25seS4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cm93czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIG51bWJlciBvZiByb3dzIHRvIGRpc3BsYXkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsdWUgdG8gd2hpY2ggdGhpcyBmaWVsZCBzaG91bGQgYmUgaW5pdGlhbGl6ZWQuIFtVc2UgdGhlCisgICAgICAgICAgICAgICAgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5IHZhbHVlXQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT54aHRtbDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5YaHRtbFRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PmVtcHR5PC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgSFRNTCB0YWdzIGFzIFhIVE1MPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgIDxwPgorICAgICAgICAgICAgVXNpbmcgdGhpcyB0YWcgaW4gYSBwYWdlIHRlbGxzIGFsbCBvdGhlciBodG1sIHRhZ2xpYiB0YWdzCisgICAgICAgICAgICB0byByZW5kZXIgdGhlbXNlbHZlcyBhcyBYSFRNTCAxLjAuICBUaGlzIGlzIHVzZWZ1bAorICAgICAgICAgICAgd2hlbiBjb21wb3NpbmcgcGFnZXMgd2l0aCBKU1AgaW5jbHVkZXMgb3IgVGlsZXMuIAorICAgICAgICAgICAgJmx0O2h0bWw6aHRtbCB4aHRtbD0idHJ1ZSImZ3Q7IGhhcyBhIHNpbWlsYXIgZWZmZWN0LiAgVGhpcworICAgICAgICAgICAgdGFnIGhhcyBubyBhdHRyaWJ1dGVzOyB5b3UgdXNlIGl0IGxpa2UgdGhpczogJmx0O2h0bWw6eGh0bWwvJmd0Oy4KKyAgICAgICAgICA8L3A+CisgICAgICAgICAgPHA+CisgICAgICAgICAgCTxzdHJvbmc+Tm90ZTwvc3Ryb25nPjogSW5jbHVkZWQgcGFnZXMgZG8gbm90IGluaGVyaXQgdGhlIHJlbmRlcmluZworICAgICAgICAgIAlzdHlsZSBvZiB0aGUgaW5jbHVkaW5nIHBhZ2UuICBFYWNoIEpTUCBmcmFnbWVudCBvciBUaWxlIG11c3QgdXNlIHRoaXMKKyAgICAgICAgICAJdGFnIHRvIHJlbmRlciBhcyBYSFRNTC4gIAorICAgICAgICAgIDwvcD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICA8L3RhZz4KKzwvdGFnbGliPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMS00LXNyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmMDRjZDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApAQCAtMCwwICsxLDMzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+CisKKzwhRE9DVFlQRSB3ZWItYXBwIFBVQkxJQworICAgICAgICAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIFdlYiBBcHBsaWNhdGlvbiAyLjMvL0VOIgorICAgICAgICAiaHR0cDovL2phdmEuc3VuLmNvbS9kdGQvd2ViLWFwcF8yXzMuZHRkIj4KKworPHdlYi1hcHA+CisgICAgPGRpc3BsYXktbmFtZT5TdHJ1dHMgTWFpbFJlYWRlciBBcHBsaWNhdGlvbjwvZGlzcGxheS1uYW1lPgorCisgICAgPCEtLSBBY3Rpb24gU2VydmxldCBDb25maWd1cmF0aW9uIC0tPgorICAgIDxzZXJ2bGV0PgorICAgICAgICA8c2VydmxldC1uYW1lPmFjdGlvbjwvc2VydmxldC1uYW1lPgorICAgICAgICA8c2VydmxldC1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldDwvc2VydmxldC1jbGFzcz4KKyAgICAgICAgPGluaXQtcGFyYW0+CisgICAgICAgICAgICA8cGFyYW0tbmFtZT5jb25maWc8L3BhcmFtLW5hbWU+CisgICAgICAgICAgICA8cGFyYW0tdmFsdWU+CisgICAgICAgICAgICAgICAgL1dFQi1JTkYvc3RydXRzLWNvbmZpZy54bWwsCisgICAgICAgICAgICAgICAgL1dFQi1JTkYvUmVnaXN0ZXItY29uZmlndXJlLnhtbCwKKyAgICAgICAgICAgICAgICAvV0VCLUlORi9Mb2dvbi1jb25maWd1cmUueG1sCisgICAgICAgICAgICA8L3BhcmFtLXZhbHVlPgorICAgICAgICA8L2luaXQtcGFyYW0+CisgICAgICAgIDxsb2FkLW9uLXN0YXJ0dXA+MTwvbG9hZC1vbi1zdGFydHVwPgorICAgIDwvc2VydmxldD4KKworCisgICAgPCEtLSBBY3Rpb24gU2VydmxldCBNYXBwaW5nIC0tPgorICAgIDxzZXJ2bGV0LW1hcHBpbmc+CisgICAgICAgIDxzZXJ2bGV0LW5hbWU+YWN0aW9uPC9zZXJ2bGV0LW5hbWU+CisgICAgICAgIDx1cmwtcGF0dGVybj4qLmRvPC91cmwtcGF0dGVybj4KKyAgICA8L3NlcnZsZXQtbWFwcGluZz4KKworCis8L3dlYi1hcHA+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMGE0YzRiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcwpAQCAtMCwwICsxLDEyIEBACisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUKKyMKKyMgVGhpcyBpcyBhbiBleGFtcGxlICJ3ZWJ0ZXN0LnByb3BlcnRpZXMiIGZpbGUsIHVzZWQgdG8gY3VzdG9taXplIGJ1aWxkaW5nIFN0cnV0cworIyBmb3IgeW91ciBsb2NhbCBlbnZpcm9ubWVudC4gIE1ha2UgYW55IGNoYW5nZXMgeW91IG5lZWQsIGFuZCByZW5hbWUgdGhpcyBmaWxlCisjIHRvICJ3ZWJ0ZXN0LnByb3BlcnRpZXMiIGluIHRoZSBzYW1lIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRoZSBTdHJ1dHMKKyMgIndlYnRlc3QueG1sIiBmaWxlLgorIworIyAkSWQ6IHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgMTI1Mjg2IDIwMDUtMDEtMTUgMTk6MDM6MzRaIGptaXRjaGVsbCAkCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCit3ZWJ0ZXN0LmhvbWUgPSBDOi9vcHQvQ2Fub28vd2VidGVzdC0xLjcKK3dlYmFwcHMuaG9tZSA9IEM6L29wdC9BcGFjaGUvVG9tY2F0LTUuNS93ZWJhcHBzLwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjI1MDhhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcy5zYW1wbGUKQEAgLTAsMCArMSwxNyBAQAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyMgd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZQ0KKyMNCisjIFRoaXMgaXMgYW4gZXhhbXBsZSAid2VidGVzdC5wcm9wZXJ0aWVzIiBmaWxlLCB1c2VkIHRvIGN1c3RvbWl6ZSBidWlsZGluZyBTdHJ1dHMNCisjIGZvciB5b3VyIGxvY2FsIGVudmlyb25tZW50LiAgTWFrZSBhbnkgY2hhbmdlcyB5b3UgbmVlZCwgYW5kIHJlbmFtZSB0aGlzIGZpbGUNCisjIHRvICJ3ZWJ0ZXN0LnByb3BlcnRpZXMiIGluIHRoZSBzYW1lIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRoZSBTdHJ1dHMNCisjICJ3ZWJ0ZXN0LnhtbCIgZmlsZS4NCisjDQorIyAkSWQ6IHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgMzUxODc3IDIwMDUtMTItMDMgMDI6NDg6MzNaIGh1c3RlZCAkDQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK3dlYnRlc3QuaG9tZSA9IC9vcHQvQ2Fub28vd2VidGVzdC0xLjcNCitob3N0ID0gbG9jYWxob3N0DQorcG9ydCA9IDgwODANCitiYXNlcGF0aCA9IHN0cnV0cy1tYWlscmVhZGVyDQorbWFpbHJlYWRlci5ob21lID0gLi4vLi4vLi4vDQorcmVzb3VyY2UuaG9tZSA9ICR7bWFpbHJlYWRlci5ob21lfS9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9hcHBzL21haWxyZWFkZXIvcmVzb3VyY2VzL0FwcGxpY2F0aW9uUmVzb3VyY2VzLnByb3BlcnRpZXMNCit3ZWJhcHBzLmhvbWUgPSAvUHJvZ3JhbSBGaWxlcy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi9Ub21jYXQgNS41L3dlYmFwcHMvDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0xLTQtc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmYzQ5MDIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTEtNC1zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC54bWwKQEAgLTAsMCArMSwxNDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHByb2plY3QgU1lTVEVNICJlbnRpdGllcy9XZWJUZXN0LmR0ZCIgWworICAgICAgICA8IUVOVElUWSB0YXNrZGVmLXdlYnRlc3QgU1lTVEVNICJlbnRpdGllcy90YXNrZGVmLnhtbCI+CisgICAgICAgIDwhRU5USVRZIGNvbmZpZyBTWVNURU0gImVudGl0aWVzL2NvbmZpZy54bWwiPgorICAgICAgICA8IUVOVElUWSBsb2dvbi1mYWlsIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL2xvZ29uLWZhaWwueG1sIj4KKyAgICAgICAgPCFFTlRJVFkgbG9nb24taGVybWVzIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL2xvZ29uLWhlcm1lcy54bWwiPgorICAgICAgICA8IUVOVElUWSBsb2dvbi1vcGVuIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL2xvZ29uLW9wZW4ueG1sIj4KKyAgICAgICAgPCFFTlRJVFkgbG9nb24tcGFnZSBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9sb2dvbi1wYWdlLnhtbCI+CisgICAgICAgIDwhRU5USVRZIG1lbnUtcGFnZSBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9tZW51LXBhZ2UueG1sIj4KKyAgICAgICAgPCFFTlRJVFkgcmVnaXN0ZXItaGVybWVzIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3JlZ2lzdGVyLWhlcm1lcy54bWwiPgorICAgICAgICA8IUVOVElUWSByZWdpc3Rlci1vcGVuIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3JlZ2lzdGVyLW9wZW4ueG1sIj4KKyAgICAgICAgPCFFTlRJVFkgcmVnaXN0ZXItcGFnZSBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9yZWdpc3Rlci1wYWdlLnhtbCI+CisgICAgICAgIDwhRU5USVRZIGZvcm0tc3VibWl0IFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL2Zvcm0tc3VibWl0LnhtbCI+CisgICAgICAgIF0+CisKKzxwcm9qZWN0IG5hbWU9Ik1haWxSZWFkZXIgU3Rvcnlib2FyZCAtIEV4ZXJjaXNlIG5hdmlnYXRpb24gYW5kIGRhdGFiYXNlIGxvZ2ljCistIENhbm9vIFdlYlRlc3RzIiBiYXNlZGlyPSIuIiBkZWZhdWx0PSJjbGVhbiI+CisKKyAgICA8IS0tIExvYWQgbG9jYWwgcHJlZmVyZW5jZXMsIGlmIGFueSAtLT4KKyAgICA8cHJvcGVydHkgZmlsZT0id2VidGVzdC5wcm9wZXJ0aWVzIi8+CisKKyAgICA8IS0tIFRoZXNlIHByb3BlcnRpZXMgY2FuIGJlIGN1c3RvbWl6ZWQgdXNpbmcgdmlhIHdlYnRlc3QucHJvcGVydGllcyAtLT4KKyAgICA8IS0tIFNlZSB3ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlIGZvciBhIHN0YXJ0ZXIgZmlsZSAtLT4KKyAgICA8cHJvcGVydHkgbmFtZT0id2VidGVzdC5ob21lIgorICAgICAgICAgICAgICBsb2NhdGlvbj0iL29wdC9DYW5vby93ZWJ0ZXN0LTEuNyIvPgorCisgICAgPHByb3BlcnR5IG5hbWU9Imhvc3QiCisgICAgICAgICAgICAgIHZhbHVlPSJsb2NhbGhvc3QiLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJwb3J0IgorICAgICAgICAgICAgICB2YWx1ZT0iODA4MCIvPgorCisgICAgPHByb3BlcnR5IG5hbWU9ImJhc2VwYXRoIgorICAgICAgICAgICAgICB2YWx1ZT0ibGFiLTEtNC1zcmMiLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJtYWlscmVhZGVyLmhvbWUiCisgICAgICAgICAgICAgIGxvY2F0aW9uPSIuLi8uLi8iLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJyZXNvdXJjZS5ob21lIgorICAgICAgICAgICAgICBsb2NhdGlvbj0iY2xhc3Nlcy9NZXNzYWdlUmVzb3VyY2VzLnByb3BlcnRpZXMiLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJ3ZWJhcHBzLmhvbWUiCisgICAgICAgICAgICAgIGxvY2F0aW9uPSIvUHJvZ3JhbSBGaWxlcy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi9Ub21jYXQgNS41L3dlYmFwcHMvIi8+CisKKyAgICA8IS0tIExvYWQgYXBwbGljYXRpb24gcmVzb3VyY2VzIC0tPgorICAgIDxwcm9wZXJ0eSBmaWxlPSIke3Jlc291cmNlLmhvbWV9Ii8+CisKKyAgICA8dGFza2RlZiBmaWxlPSIke3dlYnRlc3QuaG9tZX0vd2VidGVzdFRhc2tkZWZzLnByb3BlcnRpZXMiPgorICAgICAgICA8Y2xhc3NwYXRoPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke3dlYnRlc3QuaG9tZX0iIGluY2x1ZGVzPSIqKi9saWIvKi5qYXIiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHt3ZWJ0ZXN0LmhvbWV9IiBpbmNsdWRlcz0iKiovbGliL3J1bnRpbWUvKi5qYXIiLz4KKyAgICAgICAgPC9jbGFzc3BhdGg+CisgICAgPC90YXNrZGVmPgorCisgICAgPHRhcmdldCBuYW1lPSJjbGVhbiIgZGVzY3JpcHRpb249Ik9ubHkgcnVuIGFnYWluc3QgYSBjbGVhbiBkYXRhYmFzZSIKKyAgICAgICAgICAgIGRlcGVuZHM9IlJlZ2lzdGVyLExvZ29uIi8+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNsZWFuLWRhdGFiYXNlIgorICAgICAgICAgICAgZGVzY3JpcHRpb249IlNldHMgZGF0YWJhc2UueG1sIHRvIGRlZmF1bHQuIFN0b3Agc2VydmVyLCBydW4gdGFyZ2V0LCBhbmQgU3RhcnQgc2VydmVyLiI+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7bWFpbHJlYWRlci5ob21lfS93ZWJhcHAvV0VCLUlORi9kYXRhYmFzZS54bWwiCisgICAgICAgICAgICAgIHRvZmlsZT0iJHt3ZWJhcHBzLmhvbWV9LyR7YmFzZXBhdGh9L1dFQi1JTkYvZGF0YWJhc2UueG1sIgorICAgICAgICAgICAgICBvdmVyd3JpdGU9InRydWUiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDx0YXJnZXQgbmFtZT0iUmVnaXN0ZXIiCisgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU3Vic2NyaWJlcnMgY2FuIHN0b3JlIGxvZ2luIGNyZWRlbnRpYWxzIGFuZCBhCisgICAgICAgICAgICBwcmltYXJ5IGVtYWlsIGNvbnRhY3Qgd2l0aCB0aGUgc3lzdGVtLiI+CisKKyAgICAgICAgPHdlYnRlc3QgbmFtZT0iUmVnaXN0ZXIgSGVybWVzIChNU1MpIj4KKyAgICAgICAgICAgICZjb25maWc7CisgICAgICAgICAgICA8c3RlcHM+CisgICAgICAgICAgICAgICAgJnJlZ2lzdGVyLW9wZW47CisgICAgICAgICAgICAgICAgJnJlZ2lzdGVyLWhlcm1lczsKKyAgICAgICAgICAgICAgICA8dmVyaWZ5VGl0bGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJNZW51IHBhZ2UgdGl0bGUiCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PSIke01haW5NZW51LnRpdGxlfSIvPgorICAgICAgICAgICAgPC9zdGVwcz4KKyAgICAgICAgPC93ZWJ0ZXN0PgorCisgICAgPC90YXJnZXQ+CisKKyAgICA8dGFyZ2V0IG5hbWU9IkxvZ29uIgorICAgICAgICAgICAgZGVzY3JpcHRpb249IlN1YnNjcmliZXJzIGNhbiBwcmVzZW50IHRoZWlyIHJlZ2lzdHJhdGlvbiBjcmVkZW50aWFscyB0bworICAgICAgICB1c2UgYW4gYWNjb3VudCBhZ2Fpbi4iPgorCisgICAgICAgIDx3ZWJ0ZXN0IG5hbWU9Ik9wZW4gbG9nb24gYWN0aW9uIChNU1MpIj4KKyAgICAgICAgICAgICZjb25maWc7CisgICAgICAgICAgICA8c3RlcHM+CisgICAgICAgICAgICAgICAgJmxvZ29uLW9wZW47CisgICAgICAgICAgICAgICAgPHNldElucHV0RmllbGQKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJEZWZhdWx0IHVzZXJuYW1lIgorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0idXNlcm5hbWUiCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0idXNlciIvPgorICAgICAgICAgICAgICAgIDxzZXRJbnB1dEZpZWxkCisgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iQ29ycmVjdCBkZWZhdWx0IHBhc3N3b3JkIgorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmQiCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0icGFzcyIvPgorICAgICAgICAgICAgICAgICZmb3JtLXN1Ym1pdDsKKyAgICAgICAgICAgICAgICAmbWVudS1wYWdlOworICAgICAgICAgICAgPC9zdGVwcz4KKyAgICAgICAgPC93ZWJ0ZXN0PgorCisgICAgICAgIDx3ZWJ0ZXN0IG5hbWU9Ik9wZW4gbG9nb24gYWN0aW9uIChNU1MpIj4KKyAgICAgICAgICAgICZjb25maWc7CisgICAgICAgICAgICA8c3RlcHM+CisgICAgICAgICAgICAgICAgJmxvZ29uLWhlcm1lczsKKyAgICAgICAgICAgIDwvc3RlcHM+CisgICAgICAgIDwvd2VidGVzdD4KKworICAgICAgICA8d2VidGVzdCBuYW1lPSJMb2dvbiAtIFdyb25nIHBhc3N3b3JkICgxYykiPgorICAgICAgICAgICAgJmNvbmZpZzsKKyAgICAgICAgICAgIDxzdGVwcz4KKyAgICAgICAgICAgICAgICAmbG9nb24tb3BlbjsKKyAgICAgICAgICAgICAgICA8c2V0SW5wdXRGaWVsZAorICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249IlJlZ2lzdGVyZWQgdXNlcm5hbWUiCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJ1c2VybmFtZSIKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJoZXJtZXMiLz4KKyAgICAgICAgICAgICAgICA8c2V0SW5wdXRGaWVsZAorICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249Ildyb25nIHBhc3N3b3JkIgorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmQiCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0ibWVkdXNhIi8+CisgICAgICAgICAgICAgICAgJmxvZ29uLWZhaWw7CisgICAgICAgICAgICA8L3N0ZXBzPgorICAgICAgICA8L3dlYnRlc3Q+CisKKyAgICAgICAgPHdlYnRlc3QgbmFtZT0iTG9nb24gLSBObyBBY2NvdW50ICgxYSkiPgorICAgICAgICAgICAgJmNvbmZpZzsKKyAgICAgICAgICAgIDxzdGVwcz4KKyAgICAgICAgICAgICAgICAmbG9nb24tb3BlbjsKKyAgICAgICAgICAgICAgICA8c2V0SW5wdXRGaWVsZAorICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249Ik5vdCBhIHVzZXJuYW1lIgorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0idXNlcm5hbWUiCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iemV1cyIvPgorICAgICAgICAgICAgICAgIDxzZXRJbnB1dEZpZWxkCisgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iTm90IGEgcGFzc3dvcmQiCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJwYXNzd29yZCIKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJqb2x0Qm9sdCIvPgorICAgICAgICAgICAgICAgICZsb2dvbi1mYWlsOworICAgICAgICAgICAgPC9zdGVwcz4KKyAgICAgICAgPC93ZWJ0ZXN0PgorCisgICAgPC90YXJnZXQ+CisKKworPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL01FVEEtSU5GL2NvbnRleHQueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL01FVEEtSU5GL2NvbnRleHQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMGI1ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvTUVUQS1JTkYvY29udGV4dC54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPENvbnRleHQgcGF0aD0iLyI+Cis8L0NvbnRleHQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvV0VCLUlORi93ZWIueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL1dFQi1JTkYvd2ViLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWZjOTk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL1dFQi1JTkYvd2ViLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CisKKzwhRE9DVFlQRSB3ZWItYXBwIFBVQkxJQyAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIFdlYiBBcHBsaWNhdGlvbiAyLjMvL0VOIiAiaHR0cDovL2phdmEuc3VuLmNvbS9kdGQvd2ViLWFwcF8yXzMuZHRkIj4KKzx3ZWItYXBwPgorPC93ZWItYXBwPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMi0xLXNyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL2FwcHMvbWFpbHJlYWRlci9jb3Vyc2UvQ29uc3RhbnRzLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9hcHBzL21haWxyZWFkZXIvY291cnNlL0NvbnN0YW50cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2NGJmMjgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9hcHBzL21haWxyZWFkZXIvY291cnNlL0NvbnN0YW50cy5qYXZhCkBAIC0wLDAgKzEsMjA3IEBACitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5jb3Vyc2U7CisKKy8qKgorICogPHAvPgorICogTWFuaWZlc3QgY29uc3RhbnRzIGZvciB0aGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbi4KKyAqIDwvcD4KKyAqLworcHVibGljIGNsYXNzIENvbnN0YW50cyB7CisKKyAgICAvLyAtLS0gVG9rZW5zIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBUaGUgdG9rZW4gcmVwcmVzZW50aW5nIGEgImNyZWF0ZSIgdGFzay4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ1JFQVRFID0gIkNyZWF0ZSI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogVGhlIGFwcGxpY2F0aW9uIHNjb3BlIGF0dHJpYnV0ZSB1bmRlciB3aGljaCBvdXIgdXNlciBkYXRhYmFzZQorICAgICAqIGlzIHN0b3JlZC4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQUJBU0VfS0VZID0gImRhdGFiYXNlIjsKKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBUaGUgdG9rZW4gcmVwcmVzZW50aW5nIGEgImVkaXQiIHRhc2suCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERFTEVURSA9ICJEZWxldGUiOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFRoZSB0b2tlbiByZXByZXNlbnRpbmcgYSAiZWRpdCIgdGFzay4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRURJVCA9ICJFZGl0IjsKKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBUaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB0aGUgV2VsY29tZUFjdGlvbiBzdG9yZXMgYW4gQXJyYXlMaXN0CisgICAgICogb2YgZXJyb3IgbWVzc2FnZXMsIGlmIHJlcXVpcmVkIHJlc291cmNlcyBhcmUgbWlzc2luZy4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfS0VZID0gIkVSUk9SIjsKKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBUaGUgdG9rZW4gcmVwcmVzZW50aW5nIGEgImZhaWx1cmUiIHJlc3VsdCBmb3IgdGhpcyBhcHBsaWNhdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRkFJTFVSRSA9ICJGYWlsdXJlIjsKKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBUaGUgdG9rZW4gcmVwcmVzZW50aW5nIGEgImxvZ29uIiByZXN1bHQgZm9yIHRoaXMgYXBwbGljYXRpb24uCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIExPR09OID0gIkxvZ29uIjsKKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBUaGUgcGFja2FnZSBuYW1lIGZvciB0aGlzIGFwcGxpY2F0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQQUNLQUdFID0gIm9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlciI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogVGhlIHRva2VuIHJlcHJlc2VudGluZyBhICJzYXZlIiB0YXNrLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTQVZFID0gIlNhdmUiOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFRoZSBzZXNzaW9uIHNjb3BlIGF0dHJpYnV0ZSB1bmRlciB3aGljaCB0aGUgU3Vic2NyaXB0aW9uIG9iamVjdAorICAgICAqIGN1cnJlbnRseSBzZWxlY3RlZCBieSBvdXIgbG9nZ2VkLWluIFVzZXIgaXMgc3RvcmVkLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTVUJTQ1JJUFRJT05fS0VZID0gInN1YnNjcmlwdGlvbiI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogVGhlIHRva2VuIHJlcHJlc2VudGluZyBhICJzdWNjZXNzIiByZXN1bHQgZm9yIHRoaXMgYXBwbGljYXRpb24uCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVQ0NFU1MgPSAiU3VjY2VzcyI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogVGhlIHNlc3Npb24gc2NvcGUgYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZSBVc2VyIG9iamVjdAorICAgICAqIGZvciB0aGUgY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyIGlzIHN0b3JlZC4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVNFUl9LRVkgPSAidXNlciI7CisKKyAgICAvLyAtLS0tIEVycm9yIE1lc3NhZ2VzIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBBIHN0YXRpYyBtZXNzYWdlIGluIGNhc2UgZGF0YWJhc2UgcmVzb3VyY2UgaXMgbm90IGxvYWRlZC4KKyAgICAgKiA8cC8+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfREFUQUJBU0VfTk9UX0xPQURFRCA9CisgICAgICAgICAgICAiRVJST1I6ICBVc2VyIGRhdGFiYXNlIG5vdCBsb2FkZWQgLS0gY2hlY2sgc2VydmxldCBjb250YWluZXIgbG9ncyBmb3IgZXJyb3IgbWVzc2FnZXMuIjsKKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBBIHN0YXRpYyBtZXNzYWdlIGluIGNhc2UgbWVzc2FnZSByZXNvdXJjZSBpcyBub3QgbG9hZGVkLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9NRVNTQUdFU19OT1RfTE9BREVEID0KKyAgICAgICAgICAgICJFUlJPUjogIE1lc3NhZ2UgcmVzb3VyY2VzIG5vdCBsb2FkZWQgLS0gY2hlY2sgc2VydmxldCBjb250YWluZXIgbG9ncyBmb3IgZXJyb3IgbWVzc2FnZXMuIjsKKworICAgIC8vIC0tLS0gRXJyb3IgVG9rZW5zIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBUaGUgcmVzb3VyY2Uga2V5IGZvciBhbiBlcnJvciB3aXRoIHRoZSB0cmFuc2FjdGlvbmFsIHRva2VuLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBNU0dfVFJBTlNBQ1RJT05fVE9LRU4gPSAiZXJyb3IudHJhbnNhY3Rpb24udG9rZW4iOworCisgICAgLy8gLS0tLSBMb2cgTWVzc2FnZXMgLS0tLQorCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFRoZSBtZXNzYWdlIHRvIGxvZyB3aGVuIGNhbmNlbGxpbmcgYSB0cmFuc2FjdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9HX0NBTkNFTCA9ICIgVHJhbnNhY3Rpb24gY2FuY2VsbGVkOiAiOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFRoZSBtZXNzYWdlIHRvIGxvZyB3aGVuIGZvcndhcmRpbmcgdG8gYSByZXN1bHQuCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIExPR19SRVNVTFQgPSAiIEZvcndhcmRpbmcgdG8gcmVzdWx0OiAiOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFRoZSBtZXNzYWdlIHRvIGxvZyB3aGVuIGZvcndhcmRpbmcgdG8gYSAnZmFpbHVyZScgcmVzdWx0LgorICAgICAqIDxwLz4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMT0dfRkFJTFVSRSA9IExPR19SRVNVTFQgKyBGQUlMVVJFOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFRoZSBtZXNzYWdlIHRvIGxvZyB3aGVuIGZvcndhcmRpbmcgdG8gYSAnbG9nb24nIHJlc3VsdC4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9HX0xPR09OID0gTE9HX1JFU1VMVCArIExPR09OOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFRoZSBtZXNzYWdlIHRvIGxvZyB3aGVuIHBvcHVsYXRpbmcgYSBmb3JtLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMT0dfUE9QVUxBVEVfRk9STSA9ICIgUG9wdWxhdGluZyBmb3JtIGZyb206ICI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogVGhlIG1lc3NhZ2UgdG8gbG9nIHdoZW4gcG9wdWxhdGluZyBhIHN1YnNjcmlwdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9HX1BPUFVMQVRFX1NVQlNDUklQVElPTiA9ICIgUG9wdWxhdGluZyBzdWJzY3JpcHRpb246ICI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogVGhlIG1lc3NhZ2UgdG8gbG9nIHdoZW4gcG9wdWxhdGluZyBhIHVzZXIuCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIExPR19QT1BVTEFURV9VU0VSID0gIiBQb3B1bGF0aW5nIHVzZXI6ICI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogVGhlIG1lc3NhZ2UgdG8gbG9nIHdoZW4gZm9yd2FyZGluZyB0byBhICdzdWNjZXNzJyByZXN1bHQuCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIExPR19QUk9DRVNTSU5HID0gIiBQcm9jZXNzaW5nOiAiOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFRoZSBtZXNzYWdlIHRvIGxvZyB3aGVuIGZvcndhcmRpbmcgdG8gYSAnc3VjY2VzcycgcmVzdWx0LgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMT0dfU1VDQ0VTUyA9IExPR19SRVNVTFQgKyBTVUNDRVNTOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFRoZSBtZXNzYWdlIHRvIGxvZyB3aGVuIHNldHRpbmcgYSB0cmFuc2FjdGlvbmFsIHRva2VuLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMT0dfVE9LRU4gPSAiIFNldHRpbmcgdHJhbnNhY3Rpb25hbCBjb250cm9sIHRva2VuIjsKKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBUaGUgbWVzc2FnZSB0byBsb2cgd2hlbiBjaGVja2luZyBhIHRyYW5zYWN0aW9uYWwgdG9rZW4uCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIExPR19UT0tFTl9DSEVDSyA9ICIgQ2hlY2tpbmcgdHJhbnNhY3Rpb25hbCBjb250cm9sIHRva2VuIjsKKworCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9hcHBzL21haWxyZWFkZXIvY291cnNlL0xvZ29uQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9hcHBzL21haWxyZWFkZXIvY291cnNlL0xvZ29uQWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZmZjRlNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMi0xLXNyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL2FwcHMvbWFpbHJlYWRlci9jb3Vyc2UvTG9nb25BY3Rpb24uamF2YQpAQCAtMCwwICsxLDk1IEBACisvKgorICogJElkOiBMb2dvbkFjdGlvbi5qYXZhIDM2MDQ0MiAyMDA1LTEyLTMxIDIwOjEwOjA0WiBodXN0ZWQgJAorICoKKyAqIENvcHlyaWdodCAyMDAwLTIwMDQgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuY291cnNlOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uOworCisvKioKKyAqIDxwLz4KKyAqIFZhbGlkYXRlIGEgdXNlciBsb2dvbi4KKyAqIDwvcD4KKyAqCisgKiBAdmVyc2lvbiAkUmV2OiAzNjA0NDIgJCAkRGF0ZTogMjAwNS0xMi0zMSAxNToxMDowNCAtMDUwMCAoU2F0LCAzMSBEZWMgMjAwNSkgJAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgTG9nb25BY3Rpb24gZXh0ZW5kcyBSZWdpc3RlckFjdGlvbiB7CisKKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBTdG9yZSBVc2VyIG9iamVjdCBpbiBjbGllbnQgc2Vzc2lvbi4KKyAgICAgKiBJZiB1c2VyIG9iamVjdCBpcyBudWxsLCBhbnkgZXhpc3RpbmcgdXNlciBvYmplY3QgaXMgcmVtb3ZlZC4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSB1c2VyICAgIFRoZSB1c2VyIG9iamVjdCByZXR1cm5lZCBmcm9tIHRoZSBkYXRhYmFzZQorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGRvQ2FjaGVVc2VyKEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LCBVc2VyIHVzZXIpIHsKKworICAgICAgICBIdHRwU2Vzc2lvbiBzZXNzaW9uID0gcmVxdWVzdC5nZXRTZXNzaW9uKCk7CisgICAgICAgIHNlc3Npb24uc2V0QXR0cmlidXRlKFVTRVJfS0VZLCB1c2VyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogVXNlICJ1c2VybmFtZSIgYW5kICJwYXNzd29yZCIgZmllbGRzIGZyb20gQWN0aW9uRm9ybSB0byByZXRyaWV2ZSBhIFVzZXIKKyAgICAgKiBvYmplY3QgZnJvbSB0aGUgZGF0YWJhc2UuIElmIGNyZWRlbnRpYWxzIGFyZSBub3QgdmFsaWQsIG9yIGRhdGFiYXNlCisgICAgICogaGFzIGRpc2FwcGVhcmVkLCBwb3N0IGVycm9yIG1lc3NhZ2VzIGFuZCBmb3J3YXJkIHRvIGlucHV0LgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nICBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGZvcm0gICAgIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KQorICAgICAqIEBwYXJhbSByZXF1ZXN0ICBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIGlmIHRoZSBhcHBsaWNhdGlvbiBidXNpbmVzcyBsb2dpYyB0aHJvd3MKKyAgICAgKiAgICAgICAgICAgICAgICAgICBhbiBleGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgQWN0aW9uRm9yd2FyZCBleGVjdXRlKAorICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKQorICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gUmV0cmlldmUgdXNlcgorICAgICAgICBTdHJpbmcgdXNlcm5hbWUgPSBkb0dldChmb3JtLCBVU0VSTkFNRSk7CisgICAgICAgIFN0cmluZyBwYXNzd29yZCA9IGRvR2V0KGZvcm0sIFBBU1NXT1JEKTsKKyAgICAgICAgQWN0aW9uTWVzc2FnZXMgZXJyb3JzID0gbmV3IEFjdGlvbk1lc3NhZ2VzKCk7CisgICAgICAgIFVzZXIgdXNlciA9IGRvR2V0VXNlcih1c2VybmFtZSwgcGFzc3dvcmQsIGVycm9ycyk7CisKKyAgICAgICAgLy8gUmVwb3J0IGJhY2sgYW55IGVycm9ycywgYW5kIGV4aXQgaWYgYW55CisgICAgICAgIGlmICghZXJyb3JzLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgcmV0dXJuIGRvSW5wdXRGb3J3YXJkKG1hcHBpbmcsIHJlcXVlc3QsIGVycm9ycyk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDYWNoZSB1c2VyIG9iamVjdCBpbiBzZXNzaW9uIHRvIHNpZ25pZnkgbG9nb24KKyAgICAgICAgZG9DYWNoZVVzZXIocmVxdWVzdCwgdXNlcik7CisKKyAgICAgICAgLy8gRG9uZQorICAgICAgICByZXR1cm4gZG9GaW5kU3VjY2VzcyhtYXBwaW5nKTsKKworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvYXBwcy9tYWlscmVhZGVyL2NvdXJzZS9NZW1vcnlEYXRhYmFzZVBsdWdJbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvYXBwcy9tYWlscmVhZGVyL2NvdXJzZS9NZW1vcnlEYXRhYmFzZVBsdWdJbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjMDRjNWQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9hcHBzL21haWxyZWFkZXIvY291cnNlL01lbW9yeURhdGFiYXNlUGx1Z0luLmphdmEKQEAgLTAsMCArMSwxNzQgQEAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmNvdXJzZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5QbHVnSW47CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5pbXBsLm1lbW9yeS5NZW1vcnlVc2VyRGF0YWJhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1vZHVsZUNvbmZpZzsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogPHA+PHN0cm9uZz5NZW1vcnlEYXRhYmFzZVBsdWdJbjwvc3Ryb25nPiBpbml0aWFsaXplcyBhbmQgZmluYWxpemVzIHRoZQorICogcGVyc2lzdGVudCBzdG9yYWdlIG9mIFVzZXIgYW5kIFN1YnNjcmlwdGlvbiBpbmZvcm1hdGlvbiBmb3IgdGhlIFN0cnV0cworICogRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbiwgdXNpbmcgYW4gaW4tbWVtb3J5IGRhdGFiYXNlIGJhY2tlZCBieSBhbgorICogWE1MIGZpbGUuPC9wPgorICogPHAvPgorICogPHA+PHN0cm9uZz5JTVBMRU1FTlRBVElPTiBXQVJOSU5HPC9zdHJvbmc+IC0gSWYgdGhpcyB3ZWIgYXBwbGljYXRpb24gaXMgcnVuCisgKiBmcm9tIGEgV0FSIGZpbGUsIG9yIGluIGFub3RoZXIgZW52aXJvbm1lbnQgd2hlcmUgcmVhZGluZyBhbmQgd3JpdGluZyBvZiB0aGUKKyAqIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSBpcyBpbXBvc3NpYmxlLCB0aGUgaW5pdGlhbCBjb250ZW50cyB3aWxsIGJlIGNvcGllZAorICogdG8gYSBmaWxlIGluIHRoZSB3ZWIgYXBwbGljYXRpb24gdGVtcG9yYXJ5IGRpcmVjdG9yeSBwcm92aWRlZCBieSB0aGUKKyAqIGNvbnRhaW5lci4gIFRoaXMgaXMgZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMgb25seSAtIHlvdSBzaG91bGQKKyAqIDxzdHJvbmc+Tk9UPC9zdHJvbmc+IGFzc3VtZSB0aGF0IGZpbGVzIHdyaXR0ZW4gaGVyZSB3aWxsIHN1cnZpdmUgYSByZXN0YXJ0CisgKiBvZiB5b3VyIHNlcnZsZXQgY29udGFpbmVyLjwvcD4KKyAqCisgKiBAdmVyc2lvbiAkUmV2OiAzNjA0NDIgJCAkRGF0ZTogMjAwNS0xMi0zMSAxNToxMDowNCAtMDUwMCAoU2F0LCAzMSBEZWMgMjAwNSkgJAorICovCitwdWJsaWMgY2xhc3MgTWVtb3J5RGF0YWJhc2VQbHVnSW4gaW1wbGVtZW50cyBQbHVnSW4geworCisgICAgLy8gLS0tLSBJbnN0YW5jZSBWYXJpYWJsZXMgLS0tLQorCisgICAgLyoqCisgICAgICogVGhlIHtAbGluayBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLmltcGwubWVtb3J5Lk1lbW9yeVVzZXJEYXRhYmFzZX0gb2JqZWN0IHdlIGNvbnN0cnVjdCBhbmQgbWFrZSBhdmFpbGFibGUuCisgICAgICovCisgICAgcHJpdmF0ZSBNZW1vcnlVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiBMb2dnaW5nIG91dHB1dCBmb3IgdGhpcyBwbHVnIGluIGluc3RhbmNlLgorICAgICAqLworICAgIHByaXZhdGUgTG9nIGxvZyA9IExvZ0ZhY3RvcnkuZ2V0TG9nKHRoaXMuZ2V0Q2xhc3MoKSk7CisKKworICAgIC8qKgorICAgICAqIFRoZSB7QGxpbmsgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXR9IG93bmluZyB0aGlzIGFwcGxpY2F0aW9uLgorICAgICAqLworICAgIHByaXZhdGUgQWN0aW9uU2VydmxldCBzZXJ2bGV0ID0gbnVsbDsKKworICAgIC8vIC0tLS0gUHJvcGVydGllcyAtLS0tCisKKyAgICAvKioKKyAgICAgKiBUaGUgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIHBhdGggb2Ygb3VyIHBlcnNpc3RlbnQgZGF0YWJhc2UKKyAgICAgKiBzdG9yYWdlIGZpbGUuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0aG5hbWUgPSAiL1dFQi1JTkYvZGF0YWJhc2UueG1sIjsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGF0aG5hbWUoKSB7CisgICAgICAgIHJldHVybiAodGhpcy5wYXRobmFtZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UGF0aG5hbWUoU3RyaW5nIHBhdGhuYW1lKSB7CisgICAgICAgIHRoaXMucGF0aG5hbWUgPSBwYXRobmFtZTsKKyAgICB9CisKKyAgICAvLyAtLS0tIFBsdWdJbiBNZXRob2RzIC0tLS0KKworCisgICAgLyoqCisgICAgICogR3JhY2VmdWxseSBzaHV0IGRvd24gdGhpcyBkYXRhYmFzZSwgcmVsZWFzaW5nIGFueSByZXNvdXJjZXMKKyAgICAgKiB0aGF0IHdlcmUgYWxsb2NhdGVkIGF0IGluaXRpYWxpemF0aW9uLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRlc3Ryb3koKSB7CisKKyAgICAgICAgbG9nLmluZm8oIkZpbmFsaXppbmcgbWVtb3J5IGRhdGFiYXNlIHBsdWcgaW4iKTsKKworICAgICAgICBpZiAoZGF0YWJhc2UgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBkYXRhYmFzZS5jbG9zZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2cuZXJyb3IoIkNsb3NpbmcgbWVtb3J5IGRhdGFiYXNlIiwgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkucmVtb3ZlQXR0cmlidXRlKENvbnN0YW50cy5EQVRBQkFTRV9LRVkpOworICAgICAgICBkYXRhYmFzZSA9IG51bGw7CisgICAgICAgIHNlcnZsZXQgPSBudWxsOworICAgICAgICBkYXRhYmFzZSA9IG51bGw7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIGFuZCBsb2FkIG91ciBpbml0aWFsIGRhdGFiYXNlIGZyb20gcGVyc2lzdGVudCBzdG9yYWdlLgorICAgICAqCisgICAgICogQHBhcmFtIHNlcnZsZXQgVGhlIEFjdGlvblNlcnZsZXQgZm9yIHRoaXMgd2ViIGFwcGxpY2F0aW9uCisgICAgICogQHBhcmFtIGNvbmZpZyAgVGhlIEFwcGxpY2F0aW9uQ29uZmlnIGZvciBvdXIgb3duaW5nIG1vZHVsZQorICAgICAqIEB0aHJvd3MgU2VydmxldEV4Y2VwdGlvbiBpZiB3ZSBjYW5ub3QgY29uZmlndXJlIG91cnNlbHZlcyBjb3JyZWN0bHkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbml0KEFjdGlvblNlcnZsZXQgc2VydmxldCwgTW9kdWxlQ29uZmlnIGNvbmZpZykKKyAgICAgICAgICAgIHRocm93cyBTZXJ2bGV0RXhjZXB0aW9uIHsKKworICAgICAgICBsb2cuaW5mbygiSW5pdGlhbGl6aW5nIG1lbW9yeSBkYXRhYmFzZSBwbHVnIGluIGZyb20gJyIgKworICAgICAgICAgICAgICAgIHBhdGhuYW1lICsgIiciKTsKKworICAgICAgICAvLyBSZW1lbWJlciBvdXIgYXNzb2NpYXRlZCBjb25maWd1cmF0aW9uIGFuZCBzZXJ2bGV0CisgICAgICAgIHRoaXMuc2VydmxldCA9IHNlcnZsZXQ7CisKKyAgICAgICAgLy8gQ29uc3RydWN0IGEgbmV3IGRhdGFiYXNlIGFuZCBtYWtlIGl0IGF2YWlsYWJsZQorICAgICAgICBkYXRhYmFzZSA9IG5ldyBNZW1vcnlVc2VyRGF0YWJhc2UoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gY2FsY3VsYXRlUGF0aCgpOworICAgICAgICAgICAgaWYgKGxvZy5pc0RlYnVnRW5hYmxlZCgpKSB7CisgICAgICAgICAgICAgICAgbG9nLmRlYnVnKCIgTG9hZGluZyBkYXRhYmFzZSBmcm9tICciICsgcGF0aCArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkYXRhYmFzZS5zZXRQYXRobmFtZShwYXRoKTsKKyAgICAgICAgICAgIGRhdGFiYXNlLm9wZW4oKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZy5lcnJvcigiT3BlbmluZyBtZW1vcnkgZGF0YWJhc2UiLCBlKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKCJDYW5ub3QgbG9hZCBkYXRhYmFzZSBmcm9tICciICsKKyAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUgKyAiJyIsIGUpOworICAgICAgICB9CisKKyAgICAgICAgLy8gTWFrZSB0aGUgaW5pdGlhbGl6ZWQgZGF0YWJhc2UgYXZhaWxhYmxlCisgICAgICAgIHNlcnZsZXQuZ2V0U2VydmxldENvbnRleHQoKS5zZXRBdHRyaWJ1dGUoQ29uc3RhbnRzLkRBVEFCQVNFX0tFWSwKKyAgICAgICAgICAgICAgICBkYXRhYmFzZSk7CisKKyAgICB9CisKKyAgICAvLyAtLS0tIFByaXZhdGUgTWV0aG9kcyAtLS0tCisKKyAgICAvKioKKyAgICAgKiBDYWxjdWxhdGUgYW5kIHJldHVybiBhbiBhYnNvbHV0ZSBwYXRobmFtZSB0byB0aGUgWE1MIGZpbGUgdG8gY29udGFpbgorICAgICAqIG91ciBwZXJzaXN0ZW50IHN0b3JhZ2UgaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgY2FsY3VsYXRlUGF0aCgpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIC8vIENhbiB3ZSBhY2Nlc3MgdGhlIGRhdGFiYXNlIHZpYSBmaWxlIEkvTz8KKyAgICAgICAgU3RyaW5nIHBhdGggPSBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkuZ2V0UmVhbFBhdGgocGF0aG5hbWUpOworICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gKHBhdGgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRG9lcyBhIGNvcHkgb2YgdGhpcyBmaWxlIGFscmVhZHkgZXhpc3QgaW4gb3VyIHRlbXBvcmFyeSBkaXJlY3RvcnkKKyAgICAgICAgRmlsZSBkaXIgPSAoRmlsZSkKKyAgICAgICAgICAgICAgICBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkuZ2V0QXR0cmlidXRlCisgICAgICAgICAgICAgICAgICAgICAgICAoImphdmF4LnNlcnZsZXQuY29udGV4dC50ZW1wZGlyIik7CisgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKGRpciwgInN0cnV0cy1leGFtcGxlLWRhdGFiYXNlLnhtbCIpOworICAgICAgICBpZiAoZmlsZS5leGlzdHMoKSkgeworICAgICAgICAgICAgcmV0dXJuIChmaWxlLmdldEFic29sdXRlUGF0aCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvcHkgdGhlIHN0YXRpYyByZXNvdXJjZSB0byBhIHRlbXBvcmFyeSBmaWxlIGFuZCByZXR1cm4gaXRzIHBhdGgKKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPQorICAgICAgICAgICAgICAgIHNlcnZsZXQuZ2V0U2VydmxldENvbnRleHQoKS5nZXRSZXNvdXJjZUFzU3RyZWFtKHBhdGhuYW1lKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiaXMgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcywgMTAyNCk7CisgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gb3MgPQorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGUpOworICAgICAgICBCdWZmZXJlZE91dHB1dFN0cmVhbSBib3MgPSBuZXcgQnVmZmVyZWRPdXRwdXRTdHJlYW0ob3MsIDEwMjQpOworICAgICAgICBieXRlIGJ1ZmZlcltdID0gbmV3IGJ5dGVbMTAyNF07CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgbiA9IGJpcy5yZWFkKGJ1ZmZlcik7CisgICAgICAgICAgICBpZiAobiA8PSAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib3Mud3JpdGUoYnVmZmVyLCAwLCBuKTsKKyAgICAgICAgfQorICAgICAgICBib3MuY2xvc2UoKTsKKyAgICAgICAgYmlzLmNsb3NlKCk7CisgICAgICAgIHJldHVybiAoZmlsZS5nZXRBYnNvbHV0ZVBhdGgoKSk7CisKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvYXBwcy9tYWlscmVhZGVyL2NvdXJzZS9SZWdpc3RlckFjdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvYXBwcy9tYWlscmVhZGVyL2NvdXJzZS9SZWdpc3RlckFjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhODQ0YzMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9hcHBzL21haWxyZWFkZXIvY291cnNlL1JlZ2lzdGVyQWN0aW9uLmphdmEKQEAgLTAsMCArMSw2MjggQEAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmNvdXJzZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuUHJvcGVydHlVdGlsczsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uKjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLk1hcHBpbmdEaXNwYXRjaEFjdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyRGF0YWJhc2U7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb247CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb247CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsKKworLyoqCisgKiA8cC8+CisgKiBQcm92aWRlIGFuIEVkaXQgbWV0aG9kIGZvciByZXRyaWV2aW5nIGFuIGV4aXN0aW5nIHVzZXIsCisgKiBhbmQgYSBTYXZlIG1ldGhvZCBmb3IgdXBkYXRpbmcgb3IgaW5zZXJ0aW5nIGEgdXNlci4KKyAqIDwvcD48cD4KKyAqIEJvdGggbWV0aG9kcyB1dGlsaXplIGEgUmVnaXN0cmF0aW9uRm9ybSB0byBvYnRhaW4gb3IgZXhwb3NlIFVzZXIgZGV0YWlscy4KKyAqIElmIFNhdmUgaXMgdXNlZCB0byBjcmVhdGUgYSB1c2VyLAorICogYWRkaXRpb25hbCB2YWxpZGF0aW9ucyBlbnN1cmUgaW5wdXQgaXMgbm9taW5hbC4KKyAqIFdoZW4gYSB1c2VyIGlzIGNyZWF0ZWQsCisgKiBTYXZlIGFsc28gaGFuZGxlcyB0aGUgaW5pdGlhbCBsb2dvbi4KKyAqIDwvcD4KKyAqLworcHVibGljIGNsYXNzIFJlZ2lzdGVyQWN0aW9uIGV4dGVuZHMgTWFwcGluZ0Rpc3BhdGNoQWN0aW9uIHsKKworICAgIC8vIC0tLS0gQ29uc3RhbnRzIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBUaGUgYXBwbGljYXRpb24gc2NvcGUgYXR0cmlidXRlIHVuZGVyIHdoaWNoIG91ciB1c2VyIGRhdGFiYXNlCisgICAgICogaXMgc3RvcmVkLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBQkFTRV9LRVkgPSAiZGF0YWJhc2UiOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIE5hbWUgb2YgZnJvbUFkZHJlc3MgZmllbGQgWyJmcm9tQWRkcmVzcyJdLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIFN0cmluZyBGUk9NX0FERFJFU1MgPSAiZnJvbUFkZHJlc3MiOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIE5hbWUgb2YgZnVsbE5hbWUgZmllbGQgWyJmdWxsTmFtZSJdLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIFN0cmluZyBGVUxMX05BTUUgPSAiZnVsbE5hbWUiOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIE5hbWUgb2YgcGFzc3dvcmQgZmllbGQgWyJwYXNzd29yZCJdLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBQQVNTV09SRCA9ICJwYXNzd29yZCI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogTmFtZSBvZiBwYXNzd29yZCBjb25maXJtYXRpb24gZmllbGQgWyJwYXNzd29yZDIiXS4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIGZpbmFsIHN0YXRpYyBTdHJpbmcgUEFTU1dPUkQyID0gInBhc3N3b3JkMiI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogTmFtZSBvZiByZXBseVRvQWRkcmVzcyBmaWVsZCBbInJlcGx5VG9BZGRyZXNzIl0uCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBmaW5hbCBzdGF0aWMgU3RyaW5nIFJFUExZX1RPX0FERFJFU1MgPSAicmVwbHlUb0FkZHJlc3MiOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFRoZSB0b2tlbiByZXByZXNlbnRpbmcgYSAic3VjY2VzcyIgcmVzdWx0IGZvciB0aGlzIGFwcGxpY2F0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTVUNDRVNTID0gIlN1Y2Nlc3MiOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFRoZSBzZXNzaW9uIHNjb3BlIGF0dHJpYnV0ZSB1bmRlciB3aGljaCB0aGUgVXNlciBvYmplY3QKKyAgICAgKiBmb3IgdGhlIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlciBpcyBzdG9yZWQuCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFVTRVJfS0VZID0gInVzZXIiOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIE5hbWUgb2YgdXNlcm5hbWUgZmllbGQgWyJ1c2VybmFtZSJdLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBVU0VSTkFNRSA9ICJ1c2VybmFtZSI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogTmFtZSBvZiB0YXNrIGZpZWxkIFsidGFzayJdLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgZmluYWwgc3RhdGljIFN0cmluZyBUQVNLID0gInRhc2siOworCisgICAgLy8gLS0tLSBQcml2YXRlIE1ldGhvZHMgLS0tLQorCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFRoZSA8Y29kZT5Mb2c8L2NvZGU+IGluc3RhbmNlIGZvciB0aGlzIGFwcGxpY2F0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyhDb25zdGFudHMuUEFDS0FHRSk7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogVGhlIG1lc3NhZ2UgcHJlZml4IHRvIHVzZSB3aGVuIHBvcHVsYXRpbmcgYSBSZWdpc3RyYXRpb24gRm9ybS4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgZmluYWwgU3RyaW5nIExPR19SRUdJU1RSQVRJT05fUE9QVUxBVEUgPSAiUmVnaXN0cmF0aW9uRm9ybS5wb3B1bGF0ZSI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogSGVscGVyIG1ldGhvZCB0byBwb3N0IGVycm9yIG1lc3NhZ2Ugd2hlbiB1c2VyIGFscmVhZHkgZXhpc3RzLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1c2VybmFtZSBFeGlzdGluZyB1c2VybmFtZQorICAgICAqIEBwYXJhbSBlcnJvcnMgICBPdXIgQWN0aW9uTWVzc2FnZXMgY29sbGVjdGlvbgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBlcnJvclVzZXJuYW1lVW5pcXVlKFN0cmluZyB1c2VybmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb25NZXNzYWdlcyBlcnJvcnMpIHsKKyAgICAgICAgZXJyb3JzLmFkZCgKKyAgICAgICAgICAgICAgICBVU0VSTkFNRSwKKyAgICAgICAgICAgICAgICBuZXcgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2UoCisgICAgICAgICAgICAgICAgICAgICAgICAiZXJyb3IudXNlcm5hbWUudW5pcXVlIiwgdXNlcm5hbWUpKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBIZWxwZXIgbWV0aG9kIHRvIGxvZyBldmVudCBhbmQgY2FuY2VsIHRyYW5zYWN0aW9uLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uIE91ciBIdHRwU2Vzc2lvbgorICAgICAqIEBwYXJhbSBtZXRob2QgIE1ldGhvZCBiZWluZyBwcm9jZXNzZWQKKyAgICAgKiBAcGFyYW0ga2V5ICAgICBBdHRya2lidXRlIHRvIHJlbW92ZSBmcm9tIHNlc3Npb24sIGlmIGFueQorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBkb0NhbmNlbChIdHRwU2Vzc2lvbiBzZXNzaW9uLCBTdHJpbmcgbWV0aG9kLCBTdHJpbmcga2V5KSB7CisgICAgICAgIGlmIChsb2cuaXNUcmFjZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigxMjgpOworICAgICAgICAgICAgc2IuYXBwZW5kKENvbnN0YW50cy5MT0dfQ0FOQ0VMKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZChtZXRob2QpOworICAgICAgICAgICAgbG9nLnRyYWNlKHNiLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgICAgIGlmIChrZXkgIT0gbnVsbCkgeworICAgICAgICAgICAgc2Vzc2lvbi5yZW1vdmVBdHRyaWJ1dGUoa2V5KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBWZXJpZnkgaW5wdXQgZm9yIGNyZWF0aW5nIGEgbmV3IHVzZXIsCisgICAgICogY3JlYXRlIHRoZSB1c2VyLCBhbmQgcHJvY2VzcyB0aGUgbG9naW4uCisgICAgICogPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGZvcm0gICAgVGhlIGlucHV0IGZvcm0KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSHR0cFJlcXVlc3QgYmVpbmcgc2VydmVkCisgICAgICogQHBhcmFtIGVycm9ycyAgVGhlIEFjdGlvbk1lc3NhZ2VzIGNvbGxlY3Rpb24gZm9yIGFueSBlcnJvcnMKKyAgICAgKiBAcmV0dXJuIEEgbmV3IFVzZXIgYW5kIGVtcHR5IEVycm9ycyBpZiBjcmVhdGUgc3VjY2VlZHMsCisgICAgICogICAgICAgICBvciBudWxsIGFuZCBFcnJvcnMgaWYgY3JlYXRlIGZhaWxzCisgICAgICovCisgICAgcHJpdmF0ZSBVc2VyIGRvQ3JlYXRlVXNlcigKKyAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgQWN0aW9uTWVzc2FnZXMgZXJyb3JzKSB7CisKKyAgICAgICAgaWYgKGxvZy5pc1RyYWNlRW5hYmxlZCgpKSB7CisgICAgICAgICAgICBsb2cudHJhY2UoIiBQZXJmb3JtIGFkZGl0aW9uYWwgdmFsaWRhdGlvbnMgb24gQ3JlYXRlIik7CisgICAgICAgIH0KKworICAgICAgICBVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBkb0dldFVzZXJEYXRhYmFzZSgpOworICAgICAgICBTdHJpbmcgdXNlcm5hbWUgPSBkb0dldChmb3JtLCBVU0VSTkFNRSk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoZGF0YWJhc2UuZmluZFVzZXIodXNlcm5hbWUpICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBlcnJvclVzZXJuYW1lVW5pcXVlKHVzZXJuYW1lLCBlcnJvcnMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoIChFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgZXJyb3JVc2VybmFtZVVuaXF1ZSh1c2VybmFtZSwgZXJyb3JzKTsKKyAgICAgICAgICAgIGVycm9ycy5hZGQoImVycm9ycy5saXRlcmFsIiwgbmV3IEFjdGlvbk1lc3NhZ2UoZS5nZXRNZXNzYWdlKCkpKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBwYXNzd29yZCA9IGRvR2V0KGZvcm0sIFBBU1NXT1JEKTsKKyAgICAgICAgaWYgKChwYXNzd29yZCA9PSBudWxsKSB8fCAocGFzc3dvcmQubGVuZ3RoKCkgPCAxKSkgeworICAgICAgICAgICAgZXJyb3JzLmFkZChQQVNTV09SRCwgbmV3IEFjdGlvbk1lc3NhZ2UoImVycm9yLnBhc3N3b3JkLnJlcXVpcmVkIikpOworCisgICAgICAgICAgICBTdHJpbmcgcGFzc3dvcmQyID0gZG9HZXQoZm9ybSwgUEFTU1dPUkQyKTsKKyAgICAgICAgICAgIGlmICgocGFzc3dvcmQyID09IG51bGwpIHx8IChwYXNzd29yZDIubGVuZ3RoKCkgPCAxKSkgeworICAgICAgICAgICAgICAgIGVycm9ycy5hZGQoCisgICAgICAgICAgICAgICAgICAgICAgICBQQVNTV09SRDIsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQWN0aW9uTWVzc2FnZSgiZXJyb3IucGFzc3dvcmQyLnJlcXVpcmVkIikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKCFlcnJvcnMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIodXNlcm5hbWUpOworCisgICAgICAgIC8vIExvZyB0aGUgdXNlciBpbgorICAgICAgICBIdHRwU2Vzc2lvbiBzZXNzaW9uID0gcmVxdWVzdC5nZXRTZXNzaW9uKCk7CisgICAgICAgIHNlc3Npb24uc2V0QXR0cmlidXRlKENvbnN0YW50cy5VU0VSX0tFWSwgdXNlcik7CisgICAgICAgIGlmIChsb2cuaXNUcmFjZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgbG9nLnRyYWNlKAorICAgICAgICAgICAgICAgICAgICAiIFVzZXI6ICciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyB1c2VyLmdldFVzZXJuYW1lKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInIGxvZ2dlZCBvbiBpbiBzZXNzaW9uOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzZXNzaW9uLmdldElkKCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHVzZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIEhlbHBlciBtZXRob2QgdG8gb2J0YWluIFVzZXIgZm9ybSBzZXNzaW9uIChpZiBhbnkpLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uIE91ciBIdHRwU2Vzc2lvbgorICAgICAqIEByZXR1cm4gVXNlciBvYmplY3QsIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gdXNlci4KKyAgICAgKi8KKyAgICBwcml2YXRlIFVzZXIgZG9HZXRVc2VyKEh0dHBTZXNzaW9uIHNlc3Npb24pIHsKKyAgICAgICAgcmV0dXJuIChVc2VyKSBzZXNzaW9uLmdldEF0dHJpYnV0ZShDb25zdGFudHMuVVNFUl9LRVkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBDb25maXJtIHVzZXIgY3JlZGVudGlhbHMuIFBvc3QgYW55IGVycm9ycyBhbmQgcmV0dXJuIFVzZXIgb2JqZWN0CisgICAgICogKG9yIG51bGwpLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRhYmFzZSBEYXRhYmFzZSBpbiB3aGljaCB0byBsb29rIHVwIHRoZSB1c2VyCisgICAgICogQHBhcmFtIHVzZXJuYW1lIFVzZXJuYW1lIHNwZWNpZmllZCBvbiB0aGUgbG9nb24gZm9ybQorICAgICAqIEBwYXJhbSBwYXNzd29yZCBQYXNzd29yZCBzcGVjaWZpZWQgb24gdGhlIGxvZ29uIGZvcm0KKyAgICAgKiBAcGFyYW0gZXJyb3JzICAgQWN0aW9uTWVzc2FnZXMgcXVldWUgdG8gcGFzc2JhY2sgZXJyb3JzCisgICAgICogQHJldHVybiBWYWxpZGF0ZWQgVXNlciBvYmplY3Qgb3IgbnVsbAorICAgICAqIEB0aHJvd3Mgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5FeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24KKyAgICAgKiAgICAgICAgICB0byBiZSBoYW5kbGVkIGJ5IFN0cnV0cyBleGNlcHRpb24KKyAgICAgKiAgICAgICAgICBwcm9jZXNzb3IgdmlhIHRoZSBhY3Rpb24tbWFwcGluZworICAgICAqLworICAgIHByaXZhdGUgVXNlciBkb0dldFVzZXIoVXNlckRhdGFiYXNlIGRhdGFiYXNlLCBTdHJpbmcgdXNlcm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgcGFzc3dvcmQsIEFjdGlvbk1lc3NhZ2VzIGVycm9ycykKKyAgICAgICAgICAgIHRocm93cyBFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24geworCisgICAgICAgIFVzZXIgdXNlciA9IG51bGw7CisgICAgICAgIGlmIChkYXRhYmFzZSA9PSBudWxsKSB7CisgICAgICAgICAgICBlcnJvcnMuYWRkKAorICAgICAgICAgICAgICAgICAgICBBY3Rpb25NZXNzYWdlcy5HTE9CQUxfTUVTU0FHRSwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEFjdGlvbk1lc3NhZ2UoImVycm9yLmRhdGFiYXNlLm1pc3NpbmciKSk7CisgICAgICAgIH0gZWxzZSB7CisKKyAgICAgICAgICAgIGlmICh1c2VybmFtZS5lcXVhbHMoIkhlcm1lcyIpKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbigiSGVybWVzIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHVzZXIgPSBkYXRhYmFzZS5maW5kVXNlcih1c2VybmFtZSk7CisgICAgICAgICAgICBpZiAoKHVzZXIgIT0gbnVsbCkgJiYgIXVzZXIuZ2V0UGFzc3dvcmQoKS5lcXVhbHMocGFzc3dvcmQpKSB7CisgICAgICAgICAgICAgICAgdXNlciA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodXNlciA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgZXJyb3JzLmFkZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbk1lc3NhZ2VzLkdMT0JBTF9NRVNTQUdFLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEFjdGlvbk1lc3NhZ2UoImVycm9yLnBhc3N3b3JkLm1pc21hdGNoIikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHVzZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFJldHVybiBhIHJlZmVyZW5jZSB0byB0aGUgVXNlckRhdGFiYXNlCisgICAgICogb3IgbnVsbCBpZiB0aGUgZGF0YWJhc2UgaXMgbm90IGF2YWlsYWJsZS4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSBVc2VyRGF0YWJhc2Ugb3IgbnVsbCBpZiB0aGUgZGF0YWJhc2UgaXMgbm90CisgICAgICogICAgICAgICBhdmFpbGFibGUKKyAgICAgKi8KKyAgICBwcml2YXRlIFVzZXJEYXRhYmFzZSBkb0dldFVzZXJEYXRhYmFzZSgpIHsKKyAgICAgICAgcmV0dXJuIChVc2VyRGF0YWJhc2UpIHNlcnZsZXQuZ2V0U2VydmxldENvbnRleHQoKS5nZXRBdHRyaWJ1dGUoCisgICAgICAgICAgICAgICAgREFUQUJBU0VfS0VZKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogTG9nIGEgInByb2Nlc3NpbmciIG1lc3NhZ2UgZm9yIGFuIEFjdGlvbi4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBPdXIgQWN0aW9uTWFwcGluZworICAgICAqIEBwYXJhbSBtZXRob2QgIE5hbWUgb2YgbWV0aG9kIGJlaW5nIHByb2Nlc3NlZAorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBkb0xvZ1Byb2Nlc3MoQWN0aW9uTWFwcGluZyBtYXBwaW5nLCBTdHJpbmcgbWV0aG9kKSB7CisgICAgICAgIGlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigxMjgpOworICAgICAgICAgICAgc2IuYXBwZW5kKCIgIik7CisgICAgICAgICAgICBzYi5hcHBlbmQobWFwcGluZy5nZXRQYXRoKCkpOworICAgICAgICAgICAgc2IuYXBwZW5kKCI6Iik7CisgICAgICAgICAgICBzYi5hcHBlbmQoQ29uc3RhbnRzLkxPR19QUk9DRVNTSU5HKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZChtZXRob2QpOworICAgICAgICAgICAgbG9nLmRlYnVnKHNiLnRvU3RyaW5nKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIEhlbHBlciBtZXRob2QgdG8gcG9wdWxhdGUgdGhlIGlucHV0IGZvcm0gZnJvbSB0aGUgVXNlciBvYmplY3QuCisgICAgICogPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGZvcm0gRm9ybSB3aXRoIGluY29taW5nIHZhbHVlcworICAgICAqIEBwYXJhbSB1c2VyIFVzZXIgb2JqZWN0IHRvIHBvcHVsYXRlCisgICAgICogQHRocm93cyBTZXJ2bGV0RXhjZXB0aW9uIE9uIGFueSBlcnJvcgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBkb1BvcHVsYXRlKEFjdGlvbkZvcm0gZm9ybSwgVXNlciB1c2VyKQorICAgICAgICAgICAgdGhyb3dzIFNlcnZsZXRFeGNlcHRpb24geworCisgICAgICAgIGZpbmFsIFN0cmluZyB0aXRsZSA9IENvbnN0YW50cy5FRElUOworCisgICAgICAgIGlmIChsb2cuaXNUcmFjZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgbG9nLnRyYWNlKENvbnN0YW50cy5MT0dfUE9QVUxBVEVfRk9STSArIHVzZXIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFByb3BlcnR5VXRpbHMuY29weVByb3BlcnRpZXMoZm9ybSwgdXNlcik7CisgICAgICAgICAgICBEeW5hQWN0aW9uRm9ybSBkeW5hID0gKER5bmFBY3Rpb25Gb3JtKSBmb3JtOworICAgICAgICAgICAgZHluYS5zZXQoVEFTSywgdGl0bGUpOworICAgICAgICAgICAgZHluYS5zZXQoUEFTU1dPUkQsIG51bGwpOworICAgICAgICAgICAgZHluYS5zZXQoUEFTU1dPUkQyLCBudWxsKTsKKyAgICAgICAgfSBjYXRjaCAoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBUaHJvd2FibGUgdCA9IGUuZ2V0VGFyZ2V0RXhjZXB0aW9uKCk7CisgICAgICAgICAgICBpZiAodCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdCA9IGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb2cuZXJyb3IoTE9HX1JFR0lTVFJBVElPTl9QT1BVTEFURSwgdCk7CisgICAgICAgICAgICB0aHJvdyBuZXcgU2VydmxldEV4Y2VwdGlvbihMT0dfUkVHSVNUUkFUSU9OX1BPUFVMQVRFLCB0KTsKKyAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgIGxvZy5lcnJvcihMT0dfUkVHSVNUUkFUSU9OX1BPUFVMQVRFLCB0KTsKKyAgICAgICAgICAgIHRocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKExPR19SRUdJU1RSQVRJT05fUE9QVUxBVEUsIHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIEhlbHBlciBtZXRob2QgdG8gcG9wdWxhdGUgdGhlIFVzZXIgb2JqZWN0IGZyb20gdGhlIGlucHV0IGZvcm0uCisgICAgICogPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHVzZXIgVXNlciBvYmplY3QgdG8gcG9wdWxhdGUKKyAgICAgKiBAcGFyYW0gZm9ybSBGb3JtIHdpdGggaW5jb21pbmcgdmFsdWVzCisgICAgICogQHRocm93cyBTZXJ2bGV0RXhjZXB0aW9uIE9uIGFueSBlcnJvcgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBkb1BvcHVsYXRlKFVzZXIgdXNlciwgQWN0aW9uRm9ybSBmb3JtKQorICAgICAgICAgICAgdGhyb3dzIFNlcnZsZXRFeGNlcHRpb24geworCisgICAgICAgIGlmIChsb2cuaXNUcmFjZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgbG9nLnRyYWNlKENvbnN0YW50cy5MT0dfUE9QVUxBVEVfVVNFUiArIHVzZXIpOworICAgICAgICB9CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBvbGRQYXNzd29yZCA9IHVzZXIuZ2V0UGFzc3dvcmQoKTsKKyAgICAgICAgICAgIFByb3BlcnR5VXRpbHMuY29weVByb3BlcnRpZXModXNlciwgZm9ybSk7CisgICAgICAgICAgICBTdHJpbmcgcGFzc3dvcmQgPSBkb0dldChmb3JtLCBQQVNTV09SRCk7CisgICAgICAgICAgICBpZiAoKHBhc3N3b3JkID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgIHx8IChwYXNzd29yZC5sZW5ndGgoKSA8IDEpKSB7CisKKyAgICAgICAgICAgICAgICB1c2VyLnNldFBhc3N3b3JkKG9sZFBhc3N3b3JkKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9IGNhdGNoIChJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFRocm93YWJsZSB0ID0gZS5nZXRUYXJnZXRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIGlmICh0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB0ID0gZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nLmVycm9yKExPR19SRUdJU1RSQVRJT05fUE9QVUxBVEUsIHQpOworICAgICAgICAgICAgdGhyb3cgbmV3IFNlcnZsZXRFeGNlcHRpb24oTE9HX1JFR0lTVFJBVElPTl9QT1BVTEFURSwgdCk7CisKKyAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgIGxvZy5lcnJvcihMT0dfUkVHSVNUUkFUSU9OX1BPUFVMQVRFLCB0KTsKKyAgICAgICAgICAgIHRocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKExPR19SRUdJU1RSQVRJT05fUE9QVUxBVEUsIHQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIEhlbHBlciBtZXRob2QgdG8gbG9nIGV2ZW50IGFuZCBzYXZlIHRva2VuLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSByZXF1ZXN0IE91ciBIdHRwU2VydmxldFJlcXVlc3QKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZG9TYXZlVG9rZW4oSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QpIHsKKyAgICAgICAgaWYgKGxvZy5pc1RyYWNlRW5hYmxlZCgpKSB7CisgICAgICAgICAgICBsb2cudHJhY2UoQ29uc3RhbnRzLkxPR19UT0tFTik7CisgICAgICAgIH0KKyAgICAgICAgc2F2ZVRva2VuKHJlcXVlc3QpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBQZXJzaXN0IHRoZSBVc2VyIG9iamVjdCwgaW5jbHVkaW5nIHN1YnNjcmlwdGlvbnMsIHRvIHRoZSBkYXRhYmFzZS4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdXNlciBPdXIgVXNlciBvYmplY3QKKyAgICAgKiBAdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbiBPbiBhbnkgZXJyb3IKKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgZG9TYXZlVXNlcihVc2VyIHVzZXIpIHRocm93cyBTZXJ2bGV0RXhjZXB0aW9uIHsKKworICAgICAgICBmaW5hbCBTdHJpbmcgTE9HX0RBVEFCQVNFX1NBVkVfRVJST1IgPQorICAgICAgICAgICAgICAgICIgVW5leHBlY3RlZCBlcnJvciB3aGVuIHNhdmluZyBVc2VyOiAiOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBkb0dldFVzZXJEYXRhYmFzZSgpOworICAgICAgICAgICAgZGF0YWJhc2Uuc2F2ZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSBMT0dfREFUQUJBU0VfU0FWRV9FUlJPUiArIHVzZXIuZ2V0VXNlcm5hbWUoKTsKKyAgICAgICAgICAgIGxvZy5lcnJvcihtZXNzYWdlLCBlKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKG1lc3NhZ2UsIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFZhbGlkYXRlIGFuZCBjbGVhciB0aGUgdHJhbnNhY3Rpb25hbCB0b2tlbiwKKyAgICAgKiBjcmVhdGluZyBsb2dnaW5nIHN0YXRlbWVudHMgYXMgbmVlZGVkLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSByZXF1ZXN0IE91ciBIdHRwU2VydmxldFJlcXVlc3QKKyAgICAgKiBAcGFyYW0gZXJyb3JzICBBY3Rpb25FcnJvcnMgdG8gdHJhbnNmZXIgYW55IG1lc3NhZ2VzCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGRvVmFsaWRhdGVUb2tlbihIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbk1lc3NhZ2VzIGVycm9ycykgeworCisgICAgICAgIGlmIChsb2cuaXNUcmFjZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgbG9nLnRyYWNlKENvbnN0YW50cy5MT0dfVE9LRU5fQ0hFQ0spOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFpc1Rva2VuVmFsaWQocmVxdWVzdCkpIHsKKyAgICAgICAgICAgIGVycm9ycy5hZGQoCisgICAgICAgICAgICAgICAgICAgIEFjdGlvbk1lc3NhZ2VzLkdMT0JBTF9NRVNTQUdFLAorICAgICAgICAgICAgICAgICAgICBuZXcgQWN0aW9uTWVzc2FnZShDb25zdGFudHMuTVNHX1RSQU5TQUNUSU9OX1RPS0VOKSk7CisgICAgICAgIH0KKworICAgICAgICByZXNldFRva2VuKHJlcXVlc3QpOworICAgIH0KKworICAgIC8vIC0tLS0gUHJvdGVjdGVkIG1ldGhvZHMgLS0tLQorCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIFJldHVybiB0aGUgbWFwcGluZyBsYWJlbGVkICJzdWNjZXNzIgorICAgICAqIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gc3VjaCBtYXBwaW5nLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIE91ciBBY3Rpb25NYXBwaW5nCisgICAgICogQHJldHVybiBSZXR1cm4gdGhlIG1hcHBpbmcgbmFtZWQgInN1Y2Nlc3MiIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gc3VjaAorICAgICAqICAgICAgICAgbWFwcGluZy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQWN0aW9uRm9yd2FyZCBkb0ZpbmRTdWNjZXNzKEFjdGlvbk1hcHBpbmcgbWFwcGluZykgeworICAgICAgICByZXR1cm4gbWFwcGluZy5maW5kRm9yd2FyZChTVUNDRVNTKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBIZWxwZXIgbWV0aG9kIHRvIGZldGNoIGEgU3RyaW5nIHByb3BlcnR5IGZyb20gYSBEeW5hQWN0aW9uRm9ybS4KKyAgICAgKiA8L3A+CisgICAgICogPHAvPgorICAgICAqIFZhbHVlcyBhcmUgcmV0dXJuZWQgdHJpbW1lZCBvZiBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0ZXNwYWNlLgorICAgICAqIFplcm8tbGVuZ3RoIHN0cmluZ3MgYXJlIHJldHVybmVkIGFzIG51bGwuCisgICAgICogPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGZvcm0gICAgIE91ciBEeW5hQWN0aW9uRm9ybQorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkKKyAgICAgKiBAcmV0dXJuIFRoZSB2YWx1ZSBvciBudWxsIGlmIGFuIGVycm9yIG9jY3VycworICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgZG9HZXQoQWN0aW9uRm9ybSBmb3JtLCBTdHJpbmcgcHJvcGVydHkpIHsKKyAgICAgICAgU3RyaW5nIGluaXRpYWw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpbml0aWFsID0gKFN0cmluZykgUHJvcGVydHlVdGlscy5nZXRTaW1wbGVQcm9wZXJ0eShmb3JtLCBwcm9wZXJ0eSk7CisgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICBpbml0aWFsID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgdmFsdWUgPSBudWxsOworICAgICAgICBpZiAoKGluaXRpYWwgIT0gbnVsbCkgJiYgKGluaXRpYWwubGVuZ3RoKCkgPiAwKSkgeworICAgICAgICAgICAgdmFsdWUgPSBpbml0aWFsLnRyaW0oKTsKKyAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgdmFsdWUgPSBudWxsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogQ29uZmlybSB1c2VyIGNyZWRlbnRpYWxzLiBQb3N0IGFueSBlcnJvcnMgYW5kIHJldHVybiBVc2VyIG9iamVjdAorICAgICAqIChvciBudWxsKS4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVXNlcm5hbWUgc3BlY2lmaWVkIG9uIHRoZSBsb2dvbiBmb3JtCisgICAgICogQHBhcmFtIHBhc3N3b3JkIFBhc3N3b3JkIHNwZWNpZmllZCBvbiB0aGUgbG9nb24gZm9ybQorICAgICAqIEBwYXJhbSBlcnJvcnMgICBBY3Rpb25NZXNzYWdlcyBxdWV1ZSB0byBwYXNzYmFjayBlcnJvcnMKKyAgICAgKiBAcmV0dXJuIFZhbGlkYXRlZCBVc2VyIG9iamVjdCBvciBudWxsCisgICAgICogQHRocm93cyBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbgorICAgICAqICAgICAgICAgIHRvIGJlIGhhbmRsZWQgYnkgU3RydXRzIGV4Y2VwdGlvbgorICAgICAqICAgICAgICAgIHByb2Nlc3NvciB2aWEgdGhlIGFjdGlvbi1tYXBwaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIFVzZXIgZG9HZXRVc2VyKFN0cmluZyB1c2VybmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHBhc3N3b3JkLCBBY3Rpb25NZXNzYWdlcyBlcnJvcnMpCisgICAgICAgICAgICB0aHJvd3MgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIHsKKworICAgICAgICByZXR1cm4gZG9HZXRVc2VyKGRvR2V0VXNlckRhdGFiYXNlKCksIHVzZXJuYW1lLCBwYXNzd29yZCwgZXJyb3JzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogU2F2ZSBhbnkgZXJyb3JzIGFuZCBmb3J3YXJkIHRvIHRoZSBJbnB1dCByZXN1bHQuCisgICAgICogPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgT3VyIEFjdGlvbk1hcHBpbmcKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBPdXIgSHR0cFNlcnZsZXRSZXF1ZXN0CisgICAgICogQHBhcmFtIGVycm9ycyAgT3VyIEFjdGlvbk1lc3NhZ2VzIGNvbGxlY3RvaW4KKyAgICAgKiBAcmV0dXJuIFRoZSBJbnB1dEZvcndhcmQgZm9yIHRoaXMgbWFwcGludGcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQWN0aW9uRm9yd2FyZCBkb0lucHV0Rm9yd2FyZChBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uTWVzc2FnZXMgZXJyb3JzKSB7CisgICAgICAgIHRoaXMuc2F2ZUVycm9ycyhyZXF1ZXN0LCBlcnJvcnMpOworICAgICAgICByZXR1cm4gKG1hcHBpbmcuZ2V0SW5wdXRGb3J3YXJkKCkpOworICAgIH0KKworICAgIC8vIC0tLS0tIFB1YmxpYyBNZXRob2RzIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBSZXRyaWV2ZSB0aGUgVXNlciBvYmplY3QgdG8gZWRpdCBvciBudWxsIGlmIHRoZSBVc2VyIGRvZXMgbm90IGV4aXN0LAorICAgICAqIGFuZCBzZXQgYW4gdHJhbnNhY3Rpb25hbCB0b2tlbiB0byBsYXRlciBkZXRlY3QgbXVsdGlwbGUgU2F2ZSBjb21tYW5kcy4KKyAgICAgKiA8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyAgT3VyIEFjdGlvbk1hcHBpbmcKKyAgICAgKiBAcGFyYW0gZm9ybSAgICAgT3VyIEFjdGlvbkZvcm0KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCAgT3VyIEh0dHBTZXJ2bGV0UmVxdWVzdAorICAgICAqIEBwYXJhbSByZXNwb25zZSBPdXIgSHR0cFNlcnZsZXRSZXNwb25zZQorICAgICAqIEByZXR1cm4gVGhlICJTdWNjZXNzIiByZXN1bHQgZm9yIHRoaXMgbWFwcGluZworICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIG9uIGFueSBlcnJvcgorICAgICAqLworICAgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkIEVkaXQoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBmaW5hbCBTdHJpbmcgbWV0aG9kID0gQ29uc3RhbnRzLkVESVQ7CisgICAgICAgIGRvTG9nUHJvY2VzcyhtYXBwaW5nLCBtZXRob2QpOworCisgICAgICAgIEh0dHBTZXNzaW9uIHNlc3Npb24gPSByZXF1ZXN0LmdldFNlc3Npb24oKTsKKyAgICAgICAgVXNlciB1c2VyID0gZG9HZXRVc2VyKHNlc3Npb24pOworICAgICAgICBib29sZWFuIHVwZGF0aW5nID0gKHVzZXIgIT0gbnVsbCk7CisgICAgICAgIGlmICh1cGRhdGluZykgeworICAgICAgICAgICAgZG9Qb3B1bGF0ZShmb3JtLCB1c2VyKTsKKyAgICAgICAgfQorCisgICAgICAgIGRvU2F2ZVRva2VuKHJlcXVlc3QpOworICAgICAgICByZXR1cm4gZG9GaW5kU3VjY2VzcyhtYXBwaW5nKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogSW5zZXJ0IG9yIHVwZGF0ZSBhIFVzZXIgb2JqZWN0IHRvIHRoZSBwZXJzaXN0ZW50IHN0b3JlLgorICAgICAqIDwvcD48cD4KKyAgICAgKiBJZiBhIFVzZXIgaXMgbm90IGxvZ2dlZCBpbiwKKyAgICAgKiB0aGVuIGEgbmV3IFVzZXIgaXMgY3JlYXRlZCBhbmQgYXV0b21hdGljYWxseSBsb2dnZWQgaW4uCisgICAgICogT3RoZXJ3aXNlLCB0aGUgZXhpc3RpbmcgVXNlciBpcyB1cGRhdGVkLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nICBPdXIgQWN0aW9uTWFwcGluZworICAgICAqIEBwYXJhbSBmb3JtICAgICBPdXIgQWN0aW9uRm9ybQorICAgICAqIEBwYXJhbSByZXF1ZXN0ICBPdXIgSHR0cFNlcnZsZXRSZXF1ZXN0CisgICAgICogQHBhcmFtIHJlc3BvbnNlIE91ciBIdHRwU2VydmxldFJlc3BvbnNlCisgICAgICogQHJldHVybiBUaGUgIlN1Y2Nlc3MiIHJlc3VsdCBmb3IgdGhpcyBtYXBwaW5nCisgICAgICogQHRocm93cyBFeGNlcHRpb24gb24gYW55IGVycm9yCisgICAgICovCisgICAgcHVibGljIEFjdGlvbkZvcndhcmQgU2F2ZSgKKyAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkKKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIGZpbmFsIFN0cmluZyBtZXRob2QgPSBDb25zdGFudHMuU0FWRTsKKyAgICAgICAgZG9Mb2dQcm9jZXNzKG1hcHBpbmcsIG1ldGhvZCk7CisKKyAgICAgICAgSHR0cFNlc3Npb24gc2Vzc2lvbiA9IHJlcXVlc3QuZ2V0U2Vzc2lvbigpOworICAgICAgICBpZiAoaXNDYW5jZWxsZWQocmVxdWVzdCkpIHsKKyAgICAgICAgICAgIGRvQ2FuY2VsKHNlc3Npb24sIG1ldGhvZCwgQ29uc3RhbnRzLlNVQlNDUklQVElPTl9LRVkpOworICAgICAgICAgICAgcmV0dXJuIGRvRmluZFN1Y2Nlc3MobWFwcGluZyk7CisgICAgICAgIH0KKworICAgICAgICBBY3Rpb25NZXNzYWdlcyBlcnJvcnMgPSBuZXcgQWN0aW9uTWVzc2FnZXMoKTsKKyAgICAgICAgZG9WYWxpZGF0ZVRva2VuKHJlcXVlc3QsIGVycm9ycyk7CisKKyAgICAgICAgaWYgKCFlcnJvcnMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICByZXR1cm4gZG9JbnB1dEZvcndhcmQobWFwcGluZywgcmVxdWVzdCwgZXJyb3JzKTsKKyAgICAgICAgfQorCisgICAgICAgIFVzZXIgdXNlciA9IGRvR2V0VXNlcihzZXNzaW9uKTsKKyAgICAgICAgaWYgKHVzZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgdXNlciA9IGRvQ3JlYXRlVXNlcihmb3JtLCByZXF1ZXN0LCBlcnJvcnMpOworICAgICAgICAgICAgaWYgKCFlcnJvcnMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRvSW5wdXRGb3J3YXJkKG1hcHBpbmcsIHJlcXVlc3QsIGVycm9ycyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBkb1BvcHVsYXRlKHVzZXIsIGZvcm0pOworICAgICAgICBkb1NhdmVVc2VyKHVzZXIpOworCisgICAgICAgIHJldHVybiBkb0ZpbmRTdWNjZXNzKG1hcHBpbmcpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMi0xLXNyYy93ZWJhcHAvTG9nb25Gb3JtLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMi0xLXNyYy93ZWJhcHAvTG9nb25Gb3JtLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTM3MWE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL3dlYmFwcC9Mb2dvbkZvcm0uanNwCkBAIC0wLDAgKzEsNTQgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7Y2hhcnNldD1VVEYtOCIgbGFuZ3VhZ2U9ImphdmEiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtYmVhbiIgcHJlZml4PSJiZWFuIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWh0bWwiIHByZWZpeD0iaHRtbCIgJT4KKworPGh0bWw6eGh0bWwvPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+PGJlYW46bWVzc2FnZSBrZXk9IkxvZ29uLnRpdGxlIi8+PC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aHRtbDplcnJvcnMvPgorCis8aHRtbDpmb3JtIGFjdGlvbj0iL0xvZ29uUG9zdCI+CisgICAgPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiPgorCisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0aCBhbGlnbj0icmlnaHQiPgorICAgICAgICAgICAgICAgIDxiZWFuOm1lc3NhZ2Uga2V5PSJ1c2VybmFtZS5sYWJlbCIvPjoKKyAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgIDxodG1sOnRleHQgcHJvcGVydHk9InVzZXJuYW1lIiBzaXplPSIxNiIgbWF4bGVuZ3RoPSIxOCIvPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKworICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGggYWxpZ249InJpZ2h0Ij4KKyAgICAgICAgICAgICAgICA8YmVhbjptZXNzYWdlIGtleT0icGFzc3dvcmQubGFiZWwiLz46CisgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICA8aHRtbDpwYXNzd29yZCBwcm9wZXJ0eT0icGFzc3dvcmQiIHNpemU9IjE2IiBtYXhsZW5ndGg9IjE4IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlzcGxheT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgIDwvdHI+CisKKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkIGFsaWduPSJyaWdodCI+CisgICAgICAgICAgICAgICAgPGh0bWw6c3VibWl0IHByb3BlcnR5PSJET19TVUJNSVQiPgorICAgICAgICAgICAgICAgICAgICA8YmVhbjptZXNzYWdlIGtleT0iYnV0dG9uLnN1Ym1pdCIvPgorICAgICAgICAgICAgICAgIDwvaHRtbDpzdWJtaXQ+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICA8aHRtbDpyZXNldCBwcm9wZXJ0eT0iRE9fUkVTRVQiPgorICAgICAgICAgICAgICAgICAgICA8YmVhbjptZXNzYWdlIGtleT0iYnV0dG9uLnJlc2V0Ii8+CisgICAgICAgICAgICAgICAgPC9odG1sOnJlc2V0PgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKworICAgIDwvdGFibGU+CisKKzwvaHRtbDpmb3JtPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvd2ViYXBwL01haW5NZW51LmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMi0xLXNyYy93ZWJhcHAvTWFpbk1lbnUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwYmY0NzEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvd2ViYXBwL01haW5NZW51LmpzcApAQCAtMCwwICsxLDE2IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sO2NoYXJzZXQ9VVRGLTgiIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9ImJlYW4iIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtYmVhbiIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJodG1sIiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWh0bWwiICU+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT48YmVhbjptZXNzYWdlIGtleT0iTWFpbk1lbnUudGl0bGUiLz48L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxoMz5NYWluIE1lbnUgT3B0aW9ucyBmb3IgPGM6b3V0IHZhbHVlPSIke3VzZXIubWFwLmZ1bGxOYW1lfSIvPjwvaDM+Cis8dWw+CisgICAgPGxpPjxodG1sOmxpbmsgYWN0aW9uPSIvUmVnaXN0ZXJFZGl0Ij5FZGl0IFByb2ZpbGU8L2h0bWw6bGluaz48L2xpPgorICAgIDxsaT5bVE9ET10gTG9nb3V0PC9saT4KKzwvdWw+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvd2ViYXBwL1JlZ2lzdGVyRm9ybS5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvd2ViYXBwL1JlZ2lzdGVyRm9ybS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGU5YTgwYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMi0xLXNyYy93ZWJhcHAvUmVnaXN0ZXJGb3JtLmpzcApAQCAtMCwwICsxLDE2NCBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDtjaGFyc2V0PVVURi04IiBsYW5ndWFnZT0iamF2YSIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJjIiB1cmk9Imh0dHA6Ly9qYXZhLnN1bi5jb20vanN0bC9jb3JlIiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9ImJlYW4iIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtYmVhbiIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJodG1sIiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWh0bWwiICU+CisKKzxodG1sOmh0bWw+Cis8aGVhZD4KKyAgICA8IS0tIExhYiAyLTE6IFdoZW4gdGFzayBpcyBFZGl0LCBjaGFuZ2UgdGl0bGUgLS0+CisgICAgPHRpdGxlPgorICAgICAgICA8YzppZiB0ZXN0PSIke1JlZ2lzdGVyRm9ybS5tYXAudGFzayA9PSAnQ3JlYXRlJ30iPgorICAgICAgICAgICAgPGJlYW46bWVzc2FnZSBrZXk9InJlZ2lzdHJhdGlvbi50aXRsZS5jcmVhdGUiLz4KKyAgICAgICAgPC9jOmlmPgorICAgICAgICA8YzppZiB0ZXN0PSIke1JlZ2lzdGVyRm9ybS5tYXAudGFzayA9PSAnRWRpdCd9Ij4KKyAgICAgICAgICAgIDxiZWFuOm1lc3NhZ2Uga2V5PSJyZWdpc3RyYXRpb24udGl0bGUuZWRpdCIvPgorICAgICAgICA8L2M6aWY+CisgICAgPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+CisKKzxodG1sOmVycm9ycy8+CisKKzxodG1sOmZvcm0gYWN0aW9uPSIvUmVnaXN0ZXJTYXZlIj4KKyAgICA8aHRtbDpoaWRkZW4gcHJvcGVydHk9InRhc2siLz4KKyAgICA8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSI+CisKKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRoIGFsaWduPSJyaWdodCI+CisgICAgICAgICAgICAgICAgVXNlcm5hbWU6CisgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICA8IS0tIExhYiAyLTE6IFdoZW4gdGFzayBpcyBFZGl0LCBjaGFuZ2UgdXNlcm5hbWUgdG8gcmVhZG9ubHkgLS0+CisgICAgICAgICAgICAgICAgPGM6aWYgdGVzdD0iJHtSZWdpc3RlckZvcm0ubWFwLnRhc2sgPT0gJ0NyZWF0ZSd9Ij4KKyAgICAgICAgICAgICAgICAgICAgPGh0bWw6dGV4dCBwcm9wZXJ0eT0idXNlcm5hbWUiIHNpemU9IjE2IiBtYXhsZW5ndGg9IjE2Ii8+CisgICAgICAgICAgICAgICAgPC9jOmlmPgorICAgICAgICAgICAgICAgIDxjOmlmIHRlc3Q9IiR7UmVnaXN0ZXJGb3JtLm1hcC50YXNrID09ICdFZGl0J30iPgorICAgICAgICAgICAgICAgICAgICA8YzpvdXQgdmFsdWU9IiR7UmVnaXN0ZXJGb3JtLm1hcC51c2VybmFtZX0iLz4KKyAgICAgICAgICAgICAgICAgICAgPGh0bWw6aGlkZGVuIHByb3BlcnR5PSJ1c2VybmFtZSIvPgorICAgICAgICAgICAgICAgIDwvYzppZj4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgIDwvdHI+CisKKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRoIGFsaWduPSJyaWdodCI+CisgICAgICAgICAgICAgICAgUGFzc3dvcmQ6CisgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICA8aHRtbDpwYXNzd29yZCBwcm9wZXJ0eT0icGFzc3dvcmQiIHNpemU9IjE2IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD0iMTYiLz4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgIDwvdHI+CisKKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRoIGFsaWduPSJyaWdodCI+CisgICAgICAgICAgICAgICAgQ29uZmlybSBQYXNzd29yZDoKKyAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgIDxodG1sOnBhc3N3b3JkIHByb3BlcnR5PSJwYXNzd29yZDIiIHNpemU9IjE2IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD0iMTYiLz4KKyAgICAgICAgICAgIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0aCBhbGlnbj0icmlnaHQiPgorICAgICAgICAgICAgICAgIEZ1bGxuYW1lOgorICAgICAgICAgICAgPC90aD4KKyAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgPGh0bWw6dGV4dCBwcm9wZXJ0eT0iZnVsbE5hbWUiIHNpemU9IjUwIi8+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICA8L3RyPgorCisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0aCBhbGlnbj0icmlnaHQiPgorICAgICAgICAgICAgICAgIEZyb20gQWRkcmVzczoKKyAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgIDxodG1sOnRleHQgcHJvcGVydHk9ImZyb21BZGRyZXNzIiBzaXplPSI1MCIvPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKworICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGggYWxpZ249InJpZ2h0Ij4KKyAgICAgICAgICAgICAgICBSZXBseSBUbyBBZGRyZXNzOgorICAgICAgICAgICAgPC90aD4KKyAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgPGh0bWw6dGV4dCBwcm9wZXJ0eT0icmVwbHlUb0FkZHJlc3MiIHNpemU9IjUwIi8+CisgICAgICAgICAgICA8L3RkPgorICAgICAgICA8L3RyPgorCisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0ZCBhbGlnbj0icmlnaHQiPgorICAgICAgICAgICAgICAgIDxodG1sOnN1Ym1pdCBwcm9wZXJ0eT0iRE9fU1VCTUlUIj4KKyAgICAgICAgICAgICAgICAgICAgPGJlYW46bWVzc2FnZSBrZXk9ImJ1dHRvbi5zdWJtaXQiLz4KKyAgICAgICAgICAgICAgICA8L2h0bWw6c3VibWl0PgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgPGh0bWw6cmVzZXQgcHJvcGVydHk9IkRPX1JFU0VUIj4KKyAgICAgICAgICAgICAgICAgICAgPGJlYW46bWVzc2FnZSBrZXk9ImJ1dHRvbi5yZXNldCIvPgorICAgICAgICAgICAgICAgIDwvaHRtbDpyZXNldD4KKyAgICAgICAgICAgICAgICAmbmJzcDsKKyAgICAgICAgICAgICAgICA8aHRtbDpjYW5jZWwvPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgPC90cj4KKworICAgIDwvdGFibGU+Cis8L2h0bWw6Zm9ybT4KKworPCEtLSBMYWIgMi0xOiBXaGVuIHRhc2sgaXMgRWRpdCwgZGlzcGxheSBTdWJzY3JpcHRpb25zIC0tPgorPGM6aWYgdGVzdD0iJHtSZWdpc3RlckZvcm0ubWFwLnRhc2sgPT0gJ0VkaXQnfSI+Cis8ZGl2IGFsaWduPSJjZW50ZXIiPgorICAgIDxoMz48YmVhbjptZXNzYWdlIGtleT0iaGVhZGluZy5zdWJzY3JpcHRpb25zIi8+PC9oMz4KKzwvZGl2PgorCis8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSI+CisKKyAgICA8dHI+CisgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMzAlIj4KKyAgICAgICAgICAgIDxiZWFuOm1lc3NhZ2Uga2V5PSJoZWFkaW5nLmhvc3QiLz4KKyAgICAgICAgPC90aD4KKyAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIyNSUiPgorICAgICAgICAgICAgPGJlYW46bWVzc2FnZSBrZXk9ImhlYWRpbmcudXNlciIvPgorICAgICAgICA8L3RoPgorICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjEwJSI+CisgICAgICAgICAgICA8YmVhbjptZXNzYWdlIGtleT0iaGVhZGluZy50eXBlIi8+CisgICAgICAgIDwvdGg+CisgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTAlIj4KKyAgICAgICAgICAgIDxiZWFuOm1lc3NhZ2Uga2V5PSJoZWFkaW5nLmF1dG9Db25uZWN0Ii8+CisgICAgICAgIDwvdGg+CisgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTUlIj4KKyAgICAgICAgICAgIDxiZWFuOm1lc3NhZ2Uga2V5PSJoZWFkaW5nLmFjdGlvbiIvPgorICAgICAgICA8L3RoPgorICAgIDwvdHI+CisKKyAgICA8Yzpmb3JFYWNoIHZhcj0ic3Vic2NyaXB0aW9uIiBpdGVtcz0iJHt1c2VyLnN1YnNjcmlwdGlvbnN9Ij4KKyAgICA8dHI+CisgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICA8YmVhbjp3cml0ZSBuYW1lPSJzdWJzY3JpcHRpb24iIHByb3BlcnR5PSJob3N0Ii8+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICA8YmVhbjp3cml0ZSBuYW1lPSJzdWJzY3JpcHRpb24iIHByb3BlcnR5PSJ1c2VybmFtZSIvPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICA8YmVhbjp3cml0ZSBuYW1lPSJzdWJzY3JpcHRpb24iIHByb3BlcnR5PSJ0eXBlIi8+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgICAgIDxiZWFuOndyaXRlIG5hbWU9InN1YnNjcmlwdGlvbiIgcHJvcGVydHk9ImF1dG9Db25uZWN0Ii8+CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgICAgIDxodG1sOmxpbmsgYWN0aW9uPSIvRGVsZXRlU3Vic2NyaXB0aW9uIgorICAgICAgICAgICAgICAgICAgICAgICBwYXJhbU5hbWU9InN1YnNjcmlwdGlvbiIgcGFyYW1JZD0iaG9zdCIKKyAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1Qcm9wZXJ0eT0iaG9zdCI+CisgICAgICAgICAgICAgICAgPGJlYW46bWVzc2FnZSBrZXk9InJlZ2lzdHJhdGlvbi5kZWxldGVTdWJzY3JpcHRpb24iLz4KKyAgICAgICAgICAgIDwvaHRtbDpsaW5rPgorICAgICAgICAgICAgJm5ic3A7CisgICAgICAgICAgICA8aHRtbDpsaW5rIGFjdGlvbj0iL0VkaXRTdWJzY3JpcHRpb24iCisgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtTmFtZT0ic3Vic2NyaXB0aW9uIiBwYXJhbUlkPSJob3N0IgorICAgICAgICAgICAgICAgICAgICAgICBwYXJhbVByb3BlcnR5PSJob3N0Ij4KKyAgICAgICAgICAgICAgICA8YmVhbjptZXNzYWdlIGtleT0icmVnaXN0cmF0aW9uLmVkaXRTdWJzY3JpcHRpb24iLz4KKyAgICAgICAgICAgIDwvaHRtbDpsaW5rPgorICAgICAgICA8L3RkPgorICAgIDwvdHI+CisgICAgPC9jOmZvckVhY2g+CisgICAgPC9jOmlmPgorPC9ib2R5PgorPC9odG1sOmh0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvd2ViYXBwL1dFQi1JTkYvTG9nb24tY29uZmlndXJlLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMi0xLXNyYy93ZWJhcHAvV0VCLUlORi9Mb2dvbi1jb25maWd1cmUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0MjIzZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvd2ViYXBwL1dFQi1JTkYvTG9nb24tY29uZmlndXJlLnhtbApAQCAtMCwwICsxLDQwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPCFET0NUWVBFIHN0cnV0cy1jb25maWcgUFVCTElDCisgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDEuMy8vRU4iCisgICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtY29uZmlnXzFfMy5kdGQiPgorCis8c3RydXRzLWNvbmZpZz4KKworICAgIDxmb3JtLWJlYW5zPgorICAgICAgICA8Zm9ybS1iZWFuCisgICAgICAgICAgICAgICAgbmFtZT0iTG9nb25Gb3JtIgorICAgICAgICAgICAgICAgIGV4dGVuZHM9IkJhc2VGb3JtIi8+CisgICAgPC9mb3JtLWJlYW5zPgorCisgICAgPGFjdGlvbi1tYXBwaW5ncworICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLlJlcXVlc3RBY3Rpb25NYXBwaW5nIj4KKworICAgICAgICA8YWN0aW9uIHBhdGg9Ii9Mb2dvbiIKKyAgICAgICAgICAgICAgICBuYW1lPSJMb2dvbkZvcm0iCisgICAgICAgICAgICAgICAgZm9yd2FyZD0iL0xvZ29uRm9ybS5qc3AiCisgICAgICAgICAgICAgICAgdmFsaWRhdGU9ImZhbHNlIi8+CisKKyAgICAgICAgPGFjdGlvbgorICAgICAgICAgICAgICAgIHBhdGg9Ii9Mb2dvblBvc3QiCisgICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmNvdXJzZS5Mb2dvbkFjdGlvbiIKKyAgICAgICAgICAgICAgICBuYW1lPSJMb2dvbkZvcm0iCisgICAgICAgICAgICAgICAgc2NvcGU9InJlcXVlc3QiCisgICAgICAgICAgICAgICAgdmFsaWRhdGU9InRydWUiCisgICAgICAgICAgICAgICAgaW5wdXQ9IklucHV0Ij4KKyAgICAgICAgICAgIDxmb3J3YXJkCisgICAgICAgICAgICAgICAgICAgIG5hbWU9IklucHV0IgorICAgICAgICAgICAgICAgICAgICBwYXRoPSIvTG9nb24uZG8iLz4KKyAgICAgICAgICAgIDxmb3J3YXJkCisgICAgICAgICAgICAgICAgICAgIG5hbWU9IlN1Y2Nlc3MiCisgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0PSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICBwYXRoPSIvTWFpbk1lbnUuZG8iLz4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICA8L2FjdGlvbi1tYXBwaW5ncz4KKworPC9zdHJ1dHMtY29uZmlnPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL3dlYmFwcC9XRUItSU5GL0xvZ29uLXZhbGlkYXRlLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMi0xLXNyYy93ZWJhcHAvV0VCLUlORi9Mb2dvbi12YWxpZGF0ZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NjMDUwYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMi0xLXNyYy93ZWJhcHAvV0VCLUlORi9Mb2dvbi12YWxpZGF0ZS54bWwKQEAgLTAsMCArMSw0NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzwhRE9DVFlQRSBmb3JtLXZhbGlkYXRpb24gUFVCTElDCisgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIENvbW1vbnMgVmFsaWRhdG9yIFJ1bGVzIENvbmZpZ3VyYXRpb24gMS4yLjAvL0VOIgorICAgICAgICAiaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9jb21tb25zL2R0ZHMvdmFsaWRhdG9yXzFfMl8wLmR0ZCI+CisKKzxmb3JtLXZhbGlkYXRpb24+CisgICAgPGZvcm1zZXQ+CisgICAgICAgIDxmb3JtIG5hbWU9IkxvZ29uRm9ybSI+CisKKyAgICAgICAgICAgIDxmaWVsZCBwcm9wZXJ0eT0idXNlcm5hbWUiCisgICAgICAgICAgICAgICAgICAgZGVwZW5kcz0icmVxdWlyZWQiPgorICAgICAgICAgICAgICAgIDxhcmcga2V5PSJ1c2VybmFtZS5sYWJlbCIvPgorICAgICAgICAgICAgPC9maWVsZD4KKworICAgICAgICAgICAgPGZpZWxkIHByb3BlcnR5PSJwYXNzd29yZCIKKyAgICAgICAgICAgICAgICAgICBkZXBlbmRzPSJyZXF1aXJlZCwgbWlubGVuZ3RoLG1heGxlbmd0aCI+CisgICAgICAgICAgICAgICAgPGFyZyBrZXk9InBhc3N3b3JkLmxhYmVsIi8+CisgICAgICAgICAgICAgICAgPGFyZyBrZXk9IiR7dmFyOm1pbmxlbmd0aH0iCisgICAgICAgICAgICAgICAgICAgICBuYW1lPSJtaW5sZW5ndGgiCisgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZT0iZmFsc2UiLz4KKyAgICAgICAgICAgICAgICA8YXJnIGtleT0iJHt2YXI6bWF4bGVuZ3RofSIKKyAgICAgICAgICAgICAgICAgICAgIG5hbWU9Im1heGxlbmd0aCIKKyAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlPSJmYWxzZSIvPgorCisgICAgICAgICAgICAgICAgPHZhcj4KKyAgICAgICAgICAgICAgICAgICAgPHZhci1uYW1lPgorICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoCisgICAgICAgICAgICAgICAgICAgIDwvdmFyLW5hbWU+CisgICAgICAgICAgICAgICAgICAgIDx2YXItdmFsdWU+CisgICAgICAgICAgICAgICAgICAgICAgICAxNgorICAgICAgICAgICAgICAgICAgICA8L3Zhci12YWx1ZT4KKyAgICAgICAgICAgICAgICA8L3Zhcj4KKyAgICAgICAgICAgICAgICA8dmFyPgorICAgICAgICAgICAgICAgICAgICA8dmFyLW5hbWU+CisgICAgICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgPC92YXItbmFtZT4KKyAgICAgICAgICAgICAgICAgICAgPHZhci12YWx1ZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDMKKyAgICAgICAgICAgICAgICAgICAgPC92YXItdmFsdWU+CisgICAgICAgICAgICAgICAgPC92YXI+CisgICAgICAgICAgICA8L2ZpZWxkPgorICAgICAgICA8L2Zvcm0+CisgICAgPC9mb3Jtc2V0PgorPC9mb3JtLXZhbGlkYXRpb24+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvd2ViYXBwL1dFQi1JTkYvUmVnaXN0ZXItY29uZmlndXJlLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMi0xLXNyYy93ZWJhcHAvV0VCLUlORi9SZWdpc3Rlci1jb25maWd1cmUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwZGRmMGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvd2ViYXBwL1dFQi1JTkYvUmVnaXN0ZXItY29uZmlndXJlLnhtbApAQCAtMCwwICsxLDY2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPCFET0NUWVBFIHN0cnV0cy1jb25maWcgUFVCTElDCisgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDEuMy8vRU4iCisgICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtY29uZmlnXzFfMy5kdGQiPgorCis8c3RydXRzLWNvbmZpZz4KKworICAgIDxmb3JtLWJlYW5zPgorICAgICAgICA8Zm9ybS1iZWFuCisgICAgICAgICAgICAgICAgbmFtZT0iUmVnaXN0ZXJGb3JtIgorICAgICAgICAgICAgICAgIGV4dGVuZHM9IkJhc2VGb3JtIj4KKyAgICAgICAgICAgIDxmb3JtLXByb3BlcnR5CisgICAgICAgICAgICAgICAgICAgIG5hbWU9InBhc3N3b3JkMiIKKyAgICAgICAgICAgICAgICAgICAgdHlwZT0iamF2YS5sYW5nLlN0cmluZyIvPgorICAgICAgICAgICAgPGZvcm0tcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgbmFtZT0iZnVsbE5hbWUiCisgICAgICAgICAgICAgICAgICAgIHR5cGU9ImphdmEubGFuZy5TdHJpbmciLz4KKyAgICAgICAgICAgIDxmb3JtLXByb3BlcnR5CisgICAgICAgICAgICAgICAgICAgIG5hbWU9ImZyb21BZGRyZXNzIgorICAgICAgICAgICAgICAgICAgICB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIi8+CisgICAgICAgICAgICA8Zm9ybS1wcm9wZXJ0eQorICAgICAgICAgICAgICAgICAgICBuYW1lPSJyZXBseVRvQWRkcmVzcyIKKyAgICAgICAgICAgICAgICAgICAgdHlwZT0iamF2YS5sYW5nLlN0cmluZyIvPgorICAgICAgICA8L2Zvcm0tYmVhbj4KKyAgICA8L2Zvcm0tYmVhbnM+CisKKyAgICA8YWN0aW9uLW1hcHBpbmdzCisgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uUmVxdWVzdEFjdGlvbk1hcHBpbmciPgorCisgICAgICAgIDxhY3Rpb24gcGF0aD0iUmVnaXN0ZXJBY3Rpb24iCisgICAgICAgICAgICAgICAgaW5wdXQ9IklucHV0IgorICAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5jb3Vyc2UuUmVnaXN0ZXJBY3Rpb24iCisgICAgICAgICAgICAgICAgbmFtZT0iUmVnaXN0ZXJGb3JtIgorICAgICAgICAgICAgICAgIHNjb3BlPSJyZXF1ZXN0Ij4KKyAgICAgICAgICAgIDxmb3J3YXJkCisgICAgICAgICAgICAgICAgICAgIG5hbWU9IklucHV0IgorICAgICAgICAgICAgICAgICAgICBwYXRoPSIvUmVnaXN0ZXJGb3JtLmpzcCIvPgorICAgICAgICAgICAgPGZvcndhcmQKKyAgICAgICAgICAgICAgICAgICAgbmFtZT0iU3VjY2VzcyIKKyAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q9InRydWUiCisgICAgICAgICAgICAgICAgICAgIHBhdGg9Ii9NYWluTWVudS5kbyIvPgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIHBhdGg9Ii9SZWdpc3RlciIKKyAgICAgICAgICAgICAgICBleHRlbmRzPSJSZWdpc3RlckFjdGlvbiIKKyAgICAgICAgICAgICAgICBmb3J3YXJkPSIvUmVnaXN0ZXJGb3JtLmpzcCIKKyAgICAgICAgICAgICAgICB2YWxpZGF0ZT0iZmFsc2UiLz4KKworICAgICAgICA8YWN0aW9uIHBhdGg9Ii9SZWdpc3RlckVkaXQiCisgICAgICAgICAgICAgICAgZXh0ZW5kcz0iUmVnaXN0ZXJBY3Rpb24iCisgICAgICAgICAgICAgICAgcGFyYW1ldGVyPSJFZGl0IgorICAgICAgICAgICAgICAgIHZhbGlkYXRlPSJmYWxzZSI+CisgICAgICAgICAgICA8Zm9yd2FyZAorICAgICAgICAgICAgICAgICAgICBuYW1lPSJTdWNjZXNzIgorICAgICAgICAgICAgICAgICAgICBwYXRoPSIvUmVnaXN0ZXJGb3JtLmpzcCIvPgorICAgICAgICA8L2FjdGlvbj4KKworCisgICAgICAgIDxhY3Rpb24gcGF0aD0iL1JlZ2lzdGVyU2F2ZSIKKyAgICAgICAgICAgICAgICBleHRlbmRzPSJSZWdpc3RlckFjdGlvbiIKKyAgICAgICAgICAgICAgICBwYXJhbWV0ZXI9IlNhdmUiPgorICAgICAgICA8L2FjdGlvbj4KKworICAgIDwvYWN0aW9uLW1hcHBpbmdzPgorCis8L3N0cnV0cy1jb25maWc+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvd2ViYXBwL1dFQi1JTkYvUmVnaXN0ZXItdmFsaWRhdGUueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL3dlYmFwcC9XRUItSU5GL1JlZ2lzdGVyLXZhbGlkYXRlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDA2YzExCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL3dlYmFwcC9XRUItSU5GL1JlZ2lzdGVyLXZhbGlkYXRlLnhtbApAQCAtMCwwICsxLDQ2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPCFET0NUWVBFIGZvcm0tdmFsaWRhdGlvbiBQVUJMSUMKKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgQ29tbW9ucyBWYWxpZGF0b3IgUnVsZXMgQ29uZmlndXJhdGlvbiAxLjIuMC8vRU4iCisgICAgICAgICJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvZHRkcy92YWxpZGF0b3JfMV8yXzAuZHRkIj4KKworPGZvcm0tdmFsaWRhdGlvbj4KKworICAgIDxmb3Jtc2V0PgorICAgICAgICA8Zm9ybSBuYW1lPSJSZWdpc3RlckZvcm0iPgorCisgICAgICAgICAgICA8ZmllbGQgcHJvcGVydHk9InVzZXJuYW1lIiBkZXBlbmRzPSJyZXF1aXJlZCI+CisgICAgICAgICAgICAgICAgPGFyZyBwb3NpdGlvbj0iMCIga2V5PSJ1c2VybmFtZS5sYWJlbCIvPgorICAgICAgICAgICAgPC9maWVsZD4KKworICAgICAgICAgICAgPGZpZWxkIHByb3BlcnR5PSJwYXNzd29yZCIgZGVwZW5kcz0icmVxdWlyZWQiPgorICAgICAgICAgICAgICAgIDxhcmcgcG9zaXRpb249IjAiIGtleT0icGFzc3dvcmQubGFiZWwiLz4KKyAgICAgICAgICAgIDwvZmllbGQ+CisKKyAgICAgICAgICAgIDxmaWVsZCBwcm9wZXJ0eT0icGFzc3dvcmQyIiBkZXBlbmRzPSJyZXF1aXJlZCx2YWxpZHdoZW4iPgorICAgICAgICAgICAgICAgIDxhcmcgcG9zaXRpb249IjAiIGtleT0icGFzc3dvcmQyLmxhYmVsIi8+CisgICAgICAgICAgICAgICAgPHZhcj4KKyAgICAgICAgICAgICAgICAgICAgPHZhci1uYW1lPnRlc3Q8L3Zhci1uYW1lPgorICAgICAgICAgICAgICAgICAgICA8dmFyLXZhbHVlPigqdGhpcyogPT0gcGFzc3dvcmQpPC92YXItdmFsdWU+CisgICAgICAgICAgICAgICAgPC92YXI+CisgICAgICAgICAgICA8L2ZpZWxkPgorCisgICAgICAgICAgICA8IS0tIExhYiAxLTI6IEluc2VydCByZW1haW5pbmcgZmllbGRzIGZyb20gdXNlIGNhc2UgLS0+CisKKyAgICAgICAgICAgIDxmaWVsZCBwcm9wZXJ0eT0iZnVsbE5hbWUiCisgICAgICAgICAgICAgICAgICAgZGVwZW5kcz0icmVxdWlyZWQiPgorICAgICAgICAgICAgICAgIDxhcmcga2V5PSJmdWxsTmFtZS5sYWJlbCIvPgorICAgICAgICAgICAgPC9maWVsZD4KKworICAgICAgICAgICAgPGZpZWxkIHByb3BlcnR5PSJmcm9tQWRkcmVzcyIKKyAgICAgICAgICAgICAgICAgICBkZXBlbmRzPSJyZXF1aXJlZCxlbWFpbCI+CisgICAgICAgICAgICAgICAgPGFyZyBrZXk9ImZyb21BZGRyZXNzLmxhYmVsIi8+CisgICAgICAgICAgICA8L2ZpZWxkPgorCisgICAgICAgICAgICA8ZmllbGQgcHJvcGVydHk9InJlcGx5VG9BZGRyZXNzIgorICAgICAgICAgICAgICAgICAgIGRlcGVuZHM9ImVtYWlsIj4KKyAgICAgICAgICAgICAgICA8YXJnIGtleT0icmVwbHlUb0FkZHJlc3MubGFiZWwiLz4KKyAgICAgICAgICAgIDwvZmllbGQ+CisKKyAgICAgICAgPC9mb3JtPgorICAgIDwvZm9ybXNldD4KKzwvZm9ybS12YWxpZGF0aW9uPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL3dlYmFwcC9XRUItSU5GL2RhdGFiYXNlLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMi0xLXNyYy93ZWJhcHAvV0VCLUlORi9kYXRhYmFzZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE5OWE1ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMi0xLXNyYy93ZWJhcHAvV0VCLUlORi9kYXRhYmFzZS54bWwKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0nMS4wJz8+Cis8ZGF0YWJhc2U+CisgICAgPHVzZXIgdXNlcm5hbWU9InVzZXIiCisgICAgICAgICAgcGFzc3dvcmQ9InBhc3MiCisgICAgICAgICAgZnVsbE5hbWU9IkpvaG4gUS4gVXNlciIKKyAgICAgICAgICBmcm9tQWRkcmVzcz0iSm9obi5Vc2VyQHNvbWV3aGVyZS5jb20iPgorICAgICAgICA8c3Vic2NyaXB0aW9uCisgICAgICAgICAgICAgICAgaG9zdD0ibWFpbC5ob3RtYWlsLmNvbSIKKyAgICAgICAgICAgICAgICB0eXBlPSJwb3AzIgorICAgICAgICAgICAgICAgIGF1dG9Db25uZWN0PSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VybmFtZT0idXNlcjEyMzQiCisgICAgICAgICAgICAgICAgcGFzc3dvcmQ9ImJhciI+CisgICAgICAgIDwvc3Vic2NyaXB0aW9uPgorICAgICAgICA8c3Vic2NyaXB0aW9uCisgICAgICAgICAgICAgICAgaG9zdD0ibWFpbC55YWhvby5jb20iCisgICAgICAgICAgICAgICAgdHlwZT0iaW1hcCIKKyAgICAgICAgICAgICAgICBhdXRvQ29ubmVjdD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcm5hbWU9ImpxdXNlciIKKyAgICAgICAgICAgICAgICBwYXNzd29yZD0iZm9vIj4KKyAgICAgICAgPC9zdWJzY3JpcHRpb24+CisgICAgPC91c2VyPgorPC9kYXRhYmFzZT4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMi0xLXNyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0cy9sYWItMi0xLXNyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjdmYzZiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sCkBAIC0wLDAgKzEsNTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IURPQ1RZUEUgc3RydXRzLWNvbmZpZyBQVUJMSUMKKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMS4zLy9FTiIKKyAgICAgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy1jb25maWdfMV8zLmR0ZCI+CisKKzxzdHJ1dHMtY29uZmlnPgorCisgICAgPGZvcm0tYmVhbnM+CisgICAgICAgIDxmb3JtLWJlYW4KKyAgICAgICAgICAgICAgICBuYW1lPSJCYXNlRm9ybSIKKyAgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuRHluYVZhbGlkYXRvckZvcm0iPgorICAgICAgICAgICAgPGZvcm0tcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgbmFtZT0idXNlcm5hbWUiCisgICAgICAgICAgICAgICAgICAgIHR5cGU9ImphdmEubGFuZy5TdHJpbmciLz4KKyAgICAgICAgICAgIDxmb3JtLXByb3BlcnR5CisgICAgICAgICAgICAgICAgICAgIG5hbWU9InBhc3N3b3JkIgorICAgICAgICAgICAgICAgICAgICB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIi8+CisgICAgICAgICAgICA8IS0tIExhYiAyLTE6IEFkZCB0YXNrIHByb3BlcnR5IC0tPgorICAgICAgICAgICAgPGZvcm0tcHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgbmFtZT0idGFzayIKKyAgICAgICAgICAgICAgICAgICAgdHlwZT0iamF2YS5sYW5nLlN0cmluZyIKKyAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD0iQ3JlYXRlIi8+CisgICAgICAgIDwvZm9ybS1iZWFuPgorICAgIDwvZm9ybS1iZWFucz4KKworICAgIDxhY3Rpb24tbWFwcGluZ3MKKyAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0QWN0aW9uTWFwcGluZyI+CisKKyAgICAgICAgPGFjdGlvbiBwYXRoPSIvTWFpbk1lbnUiCisgICAgICAgICAgICAgICAgZm9yd2FyZD0iL01haW5NZW51LmpzcCIKKyAgICAgICAgICAgICAgICB2YWxpZGF0ZT0iZmFsc2UiLz4KKworICAgIDwvYWN0aW9uLW1hcHBpbmdzPgorCisgICAgPGNvbnRyb2xsZXIKKyAgICAgICAgICAgIGlucHV0Rm9yd2FyZD0idHJ1ZSIvPgorCisgICAgPG1lc3NhZ2UtcmVzb3VyY2VzCisgICAgICAgICAgICBwYXJhbWV0ZXI9Ik1lc3NhZ2VSZXNvdXJjZXMiLz4KKworICAgIDxwbHVnLWluCisgICAgICAgICAgICBjbGFzc05hbWU9Im9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5jb3Vyc2UuTWVtb3J5RGF0YWJhc2VQbHVnSW4iPgorICAgICAgICA8c2V0LXByb3BlcnR5CisgICAgICAgICAgICAgICAgcHJvcGVydHk9InBhdGhuYW1lIgorICAgICAgICAgICAgICAgIHZhbHVlPSIvV0VCLUlORi9kYXRhYmFzZS54bWwiLz4KKyAgICA8L3BsdWctaW4+CisKKyAgICA8cGx1Zy1pbgorICAgICAgICAgICAgY2xhc3NOYW1lPSJvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuVmFsaWRhdG9yUGx1Z0luIj4KKyAgICAgICAgPHNldC1wcm9wZXJ0eQorICAgICAgICAgICAgICAgIHByb3BlcnR5PSJwYXRobmFtZXMiCisgICAgICAgICAgICAgICAgdmFsdWU9Ii9vcmcvYXBhY2hlL3N0cnV0cy92YWxpZGF0b3IvdmFsaWRhdG9yLXJ1bGVzLnhtbCwKKyAgICAgICAgICAgICAgICAvV0VCLUlORi9Mb2dvbi12YWxpZGF0ZS54bWwsL1dFQi1JTkYvUmVnaXN0ZXItdmFsaWRhdGUueG1sIgorICAgICAgICAgICAgICAgIC8+CisgICAgPC9wbHVnLWluPgorCis8L3N0cnV0cy1jb25maWc+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvd2ViYXBwL1dFQi1JTkYvc3RydXRzLWh0bWwudGxkIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1odG1sLnRsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDQ4NDNiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1odG1sLnRsZApAQCAtMCwwICsxLDg3NTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgdGFnbGliCisgICAgICAgIFBVQkxJQyAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIEpTUCBUYWcgTGlicmFyeSAxLjIvL0VOIgorICAgICAgICAiaHR0cDovL2phdmEuc3VuLmNvbS9kdGQvd2ViLWpzcHRhZ2xpYnJhcnlfMV8yLmR0ZCI+Cis8dGFnbGliPgorICAgIDx0bGliLXZlcnNpb24+MS4zPC90bGliLXZlcnNpb24+CisgICAgPGpzcC12ZXJzaW9uPjEuMjwvanNwLXZlcnNpb24+CisgICAgPHNob3J0LW5hbWU+aHRtbDwvc2hvcnQtbmFtZT4KKyAgICA8dXJpPmh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWh0bWw8L3VyaT4KKyAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgIDwhW0NEQVRBWworICA8cD4KKyAgICAgICAgVGhpcyB0YWdsaWIgY29udGFpbnMgdGFncyB1c2VkIHRvIGNyZWF0ZSBzdHJ1dHMKKyAgICAgICAgaW5wdXQgZm9ybXMsIGFzIHdlbGwgYXMgb3RoZXIgdGFncyBnZW5lcmFsbHkgdXNlZnVsCisgICAgICAgICAgICAgICAgaW4gdGhlIGNyZWF0aW9uIG9mIEhUTUwtYmFzZWQgdXNlciBpbnRlcmZhY2VzLgorICA8L3A+CisKKyAgPHA+TWFueSBvZiB0aGUgdGFncyBpbiB0aGlzIHRhZyBsaWJyYXJ5IHdpbGwgdGhyb3cgYQorICA8Y29kZT5Kc3BFeGNlcHRpb248L2NvZGU+IGF0IHJ1bnRpbWUgd2hlbiB0aGV5IGFyZSB1dGlsaXplZCBpbmNvcnJlY3RseQorICAoc3VjaCBhcyB3aGVuIHlvdSBzcGVjaWZ5IGFuIGludmFsaWQgY29tYmluYXRpb24gb2YgdGFnIGF0dHJpYnV0ZXMpLiAgSlNQCisgIGFsbG93cyB5b3UgdG8gZGVjbGFyZSBhbiAiZXJyb3IgcGFnZSIgaW4gdGhlIDxjb2RlPiZsdDslQCBwYWdlICUmZ3Q7PC9jb2RlPgorICBkaXJlY3RpdmUuICBJZiB5b3Ugd2lzaCB0byBwcm9jZXNzIHRoZSBhY3R1YWwgZXhjZXB0aW9uIHRoYXQgY2F1c2VkIHRoZQorICBwcm9ibGVtLCBpdCBpcyBwYXNzZWQgdG8gdGhlIGVycm9yIHBhZ2UgYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZSB1bmRlciBrZXkKKyAgPGNvZGU+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkVYQ0VQVElPTjwvY29kZT4uPC9wPgorICBdXT4KKyAgICA8L2Rlc2NyaXB0aW9uPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmJhc2U8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQmFzZVRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PmVtcHR5PC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgYW4gSFRNTCA8Y29kZT4mbHQ7YmFzZSZndDs8L2NvZGU+IEVsZW1lbnQ8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MIDxjb2RlPiZsdDtiYXNlJmd0OzwvY29kZT4gZWxlbWVudCB3aXRoIGFuCisgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlIHBvaW50aW5nIHRvIHRoZSBhYnNvbHV0ZSBsb2NhdGlvbiBvZgorICAgICAgICAgIHRoZSBlbmNsb3NpbmcgSlNQIHBhZ2UuICBUaGlzIHRhZyBpcyB2YWxpZCBvbmx5IHdoZW4gbmVzdGVkIGluc2lkZQorICAgICAgICAgIGFuIEhUTUwgPGNvZGU+Jmx0O2hlYWQmZ3Q7PC9jb2RlPiBlbGVtZW50LjwvcD4KKworICAgICAgICAgIDxwPlRoaXMgdGFnIGlzIHVzZWZ1bCBiZWNhdXNlIGl0IGFsbG93cyB5b3UgdG8gdXNlIHJlbGF0aXZlIFVSTAorICAgICAgICAgIHJlZmVyZW5jZXMgaW4gdGhlIHBhZ2UgdGhhdCBhcmUgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgVVJMIG9mIHRoZQorICAgICAgICAgIHBhZ2UgaXRzZWxmLCByYXRoZXIgdGhhbiB0aGUgVVJMIHRvIHdoaWNoIHRoZSBtb3N0IHJlY2VudCBzdWJtaXQKKyAgICAgICAgICB0b29rIHBsYWNlICh3aGljaCBpcyB3aGVyZSB0aGUgYnJvd3NlciB3b3VsZCBub3JtYWxseSByZXNvbHZlCisgICAgICAgICAgcmVsYXRpdmUgcmVmZXJlbmNlcyBhZ2FpbnN0KS48L3A+CisgICAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YXJnZXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICA8cD5UaGUgd2luZG93IHRhcmdldCBmb3IgdGhpcyBiYXNlIHJlZmVyZW5jZS48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2VydmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgPHA+VGhlIHNlcnZlciBuYW1lIHRvIHVzZSBpbnN0ZWFkIG9mIHJlcXVlc3QuZ2V0U2VydmVyTmFtZSgpLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5yZWY8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICA8cD5UaGUgcmVmZXJlbmNlIGZyb20gd2hpY2ggdGhlIGJhc2UgdXJpIHdpbGwgY3JlYXRlZC4gIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48Y29kZT5wYWdlPC9jb2RlPiAtIFRoZSBiYXNlIHVyaSB3aWxsIGJlIHRoZSBqc3AgcGFnZSBsb2NhdGlvbi4gKGRlZmF1bHQpPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGNvZGU+c2l0ZTwvY29kZT4gLSBUaGUgYmFzZSB1cmkgd2lsbCBiZSB0aGUgYXBwbGljYXRpb24gY29udGV4dCBwYXRoLjwvbGk+CisgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjM8L2RkPjwvZGw+CisKKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+YnV0dG9uPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkJ1dHRvblRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+UmVuZGVyIEEgQnV0dG9uIElucHV0IEZpZWxkPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgUmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlCisgICAgICAgICAgICAgICAgPGNvZGU+YnV0dG9uPC9jb2RlPiwgcG9wdWxhdGVkIGZyb20gdGhlIHNwZWNpZmllZCB2YWx1ZSBvciB0aGUKKyAgICAgICAgICAgICAgICBjb250ZW50IG9mIHRoaXMgdGFnIGJvZHkuIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbiBuZXN0ZWQKKyAgICAgICAgICAgICAgICBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgSWYgYSBncmFwaGljYWwgYnV0dG9uIGlzIG5lZWRlZCAoYSBidXR0b24gd2l0aCBhbiBpbWFnZSksIHRoZW4gdGhlCisgICAgICAgICAgICAgPGEgaHJlZj0iI2ltYWdlIj48Y29kZT5pbWFnZTwvY29kZT48L2E+IHRhZyBpcyBtb3JlIGFwcHJvcHJpYXRlLgorICAgICAgICAgICAgPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIDxwPlRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LjwvcD4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIDxwPlNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLjwvcD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlZhbGlkIG9ubHkgaW5zaWRlIG9mIDxjb2RlPmxvZ2ljOml0ZXJhdGU8L2NvZGU+IHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIG5hbWUgb2YgdGhlIGh0bWwgdGFnIHdpbGwgYmUgcmVuZGVyZWQgYXMKKyAgICAgICAgICAgICAgICAicHJvcGVydHlOYW1lWzM0XSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZCBmb3IKKyAgICAgICAgICAgICAgICBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoaXMKKyAgICAgICAgICAgICAgICBzdWJtaXNzaW9uLCBzZXQgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbHVlIG9mIHRoZSBsYWJlbCB0byBiZSBwbGFjZWQgb24gdGhpcyBidXR0b24uIFRoaXMgdmFsdWUgd2lsbAorICAgICAgICAgICAgICAgIGFsc28gYmUgc3VibWl0dGVkIGFzIHRoZSB2YWx1ZSBvZiB0aGUgc3BlY2lmaWVkIHJlcXVlc3QgcGFyYW1ldGVyLgorICAgICAgICAgICAgICAgIFtCb2R5IG9mIHRoaXMgdGFnIChpZiBhbnkpLCBvciAiQ2xpY2siXQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5jYW5jZWw8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ2FuY2VsVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBhIENhbmNlbCBCdXR0b24KKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgUmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlIHN1Ym1pdC4gVGhpcyB0YWcgaXMgb25seQorICAgICAgICAgICAgICAgIHZhbGlkIHdoZW4gbmVzdGVkIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuIFByZXNzaW5nIG9mIHRoaXMgc3VibWl0CisgICAgICAgICAgICAgICAgYnV0dG9uIGNhdXNlcyB0aGUgYWN0aW9uIHNlcnZsZXQgdG8gYnlwYXNzIGNhbGxpbmcgdGhlIGFzc29jaWF0ZWQKKyAgICAgICAgICAgICAgICBmb3JtIGJlYW4gdmFsaWRhdGUoKSBtZXRob2QuIFRoZSBhY3Rpb24gaXMgY2FsbGVkIG5vcm1hbGx5LgorICAgICAgICAgICAgPC9wPgorICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2Vzc2tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkgdG8gdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoaXMKKyAgICAgICAgICAgICAgICBzdWJtaXNzaW9uLCBzZXQgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgICAgICAgICAgICA8c3Ryb25nPldBUk5JTkc8L3N0cm9uZz4gLSBJZiB5b3Ugc2V0IHRoaXMgYXR0cmlidXRlIHRvIGEKKyAgICAgICAgICAgICAgICB2YWx1ZSBvdGhlciB0aGFuIHRoZSBkZWZhdWx0LCB0aGlzIHdpbGwgPGVtPk5PVDwvZW0+IGJlCisgICAgICAgICAgICAgICAgcmVjb2duaXplZCBhcyB0aGUgY2FuY2VsIGtleSBieSB0aGUgU3RydXRzIGNvbnRyb2xsZXIgc2VydmxldAorICAgICAgICAgICAgICAgIG9yIHRoZSA8Y29kZT5BY3Rpb24uaXNDYW5jZWxsZWQoKTwvY29kZT4gbWV0aG9kLiAgWW91IHdpbGwKKyAgICAgICAgICAgICAgICBuZWVkIHRvIGRvIHlvdXIgb3duIGNhbmNlbCBkZXRlY3Rpb24uCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWx1ZSBvZiB0aGUgbGFiZWwgdG8gYmUgcGxhY2VkIG9uIHRoaXMgYnV0dG9uLiBUaGlzIHZhbHVlIHdpbGwKKyAgICAgICAgICAgICAgICBhbHNvIGJlIHN1Ym1pdHRlZCBhcyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCByZXF1ZXN0IHBhcmFtZXRlci4KKyAgICAgICAgICAgICAgICBbQm9keSBvZiB0aGlzIHRhZyAoaWYgYW55KSwgb3IgIkNhbmNlbCJdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmNoZWNrYm94PC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNoZWNrYm94VGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBBIENoZWNrYm94IElucHV0IEZpZWxkCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDxwPlJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+Y2hlY2tib3g8L2NvZGU+LCBwb3B1bGF0ZWQgZnJvbSB0aGUgc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBvciB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IG9mIHRoZSBiZWFuIGFzc29jaWF0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggb3VyIGN1cnJlbnQgZm9ybS4gVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuCisgICAgICAgICAgICAgICAgICAgICAgICBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS48L3A+CisKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+Tk9URTwvc3Ryb25nPjogIFRoZSB1bmRlcmx5aW5nIHByb3BlcnR5IHZhbHVlCisgICAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhpcyBmaWVsZCBzaG91bGQgYmUgb2YgdHlwZSA8Y29kZT5ib29sZWFuPC9jb2RlPiwKKyAgICAgICAgICAgIGFuZCBhbnkgPGNvZGU+dmFsdWU8L2NvZGU+IHlvdSBzcGVjaWZ5IHNob3VsZCBjb3JyZXNwb25kIHRvIG9uZQorICAgICAgICAgICAgb2YgdGhlIFN0cmluZ3MgdGhhdCBpbmRpY2F0ZSBhIHRydWUgdmFsdWUgKCJ0cnVlIiwgInllcyIsIG9yCisgICAgICAgICAgICAib24iKS4gIElmIHlvdSB3aXNoIHRvIHV0aWxpemUgYSBzZXQgb2YgcmVsYXRlZCBTdHJpbmcgdmFsdWVzLAorICAgICAgICAgICAgY29uc2lkZXIgdXNpbmcgdGhlIDxjb2RlPm11bHRpYm94PC9jb2RlPiB0YWcuPC9wPgorCisgICAgICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPldBUk5JTkc8L3N0cm9uZz46ICBJbiBvcmRlciB0byBjb3JyZWN0bHkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlY29nbml6ZSB1bmNoZWNrZWQgY2hlY2tib3hlcywgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZvcm0KKyAgICAgICAgICAgICAgICAgICAgICAgIG11c3QgaW5jbHVkZSBhIHN0YXRlbWVudCBzZXR0aW5nIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuIHByb3BlcnR5IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPnJlc2V0KCk8L2NvZGU+IG1ldGhvZC48L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvcktleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5OYW1lIG9mIHRoZSByZXF1ZXN0IHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggb3VyIGVycm9yIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLjwvcD4KKworICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IFRoaXMgaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+LCA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+IGFuZCAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4gYXR0cmlidXRlcyBhbmQgc2hvdWxkIGJlIHNldCB0bworICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUKKyAgICAgICAgICAgICAgICAgICZsdDtodG1sOmVycm9ycy8mZ3Q7IHRhZy48L3A+IAorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUNsYXNzPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVJZDwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgPGNvZGU+bG9naWM6aXRlcmF0ZTwvY29kZT4gdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJpZFszNF0ucHJvcGVydHlOYW1lIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgZm9yIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkIHdoZW4KKyAgICAgICAgICAgICAgICByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBpbnB1dCBmaWVsZC4gSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFnIHdlIGFyZSBuZXN0ZWQgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoaXMKKyAgICAgICAgICAgICAgICBzdWJtaXNzaW9uLCBzZXQgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSB0byBiZSB0cmFuc21pdHRlZCBpZiB0aGlzIGNoZWNrYm94IGlzCisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkIHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB2YWx1ZSAib24iIHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmVycm9yczwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5FcnJvcnNUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5lbXB0eTwvYm9keS1jb250ZW50PgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICAgICAgQ29uZGl0aW9uYWxseSBkaXNwbGF5IGEgc2V0IG9mIGFjY3VtdWxhdGVkIGVycm9yIG1lc3NhZ2VzLgorICAgICAgICAgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgICAgICA8cD5EaXNwbGF5cyBhIHNldCBvZiBlcnJvciBtZXNzYWdlcyBwcmVwYXJlZCBieSBhIGJ1c2luZXNzCisgICAgICAgICAgICAgICAgbG9naWMgY29tcG9uZW50IGFuZCBzdG9yZWQgYXMgYW4gPGNvZGU+QWN0aW9uTWVzc2FnZXM8L2NvZGU+CisgICAgICAgICAgICAgICAgb2JqZWN0LCBhbiA8Y29kZT5BY3Rpb25FcnJvcnM8L2NvZGU+CisgICAgICAgICAgICAgICAgb2JqZWN0LCBhIFN0cmluZywgb3IgYSBTdHJpbmcgYXJyYXkgaW4gcmVxdWVzdCBzY29wZS4gIElmCisgICAgICAgICAgICAgICAgc3VjaCBhIGJlYW4gaXMgbm90IGZvdW5kLCBub3RoaW5nIHdpbGwgYmUgcmVuZGVyZWQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+SW4gb3JkZXIgdG8gdXNlIHRoaXMgdGFnIHN1Y2Nlc3NmdWxseSwgeW91IG11c3QgaGF2ZQorICAgICAgICAgICAgICAgIGRlZmluZWQgYW4gYXBwbGljYXRpb24gc2NvcGUgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4KKyAgICAgICAgICAgICAgICBiZWFuIHVuZGVyIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZSBuYW1lLCB3aXRoIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgZGVmaW5pdGlvbnMgb2YgbWVzc2FnZSBrZXlzIHNwZWNpZmllZCBpbiB0aGUgZm9sbG93aW5nCisgICAgICAgICAgICAgICAgYXR0cmlidXRlczo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPmhlYWRlcjwvc3Ryb25nPiAtIFRleHQgdGhhdCB3aWxsIGJlIHJlbmRlcmVkCisgICAgICAgICAgICAgICAgYmVmb3JlIHRoZSBlcnJvciBtZXNzYWdlcyBsaXN0LiAgVHlwaWNhbGx5LCB0aGlzIG1lc3NhZ2UgdGV4dAorICAgICAgICAgICAgICAgIHdpbGwgZW5kIHdpdGggPGNvZGU+Jmx0O3VsJmd0OzwvY29kZT4gdG8gc3RhcnQgdGhlCisgICAgICAgICAgICAgICAgZXJyb3IgbWVzc2FnZXMgbGlzdCAoZGVmYXVsdCAiZXJyb3JzLmhlYWRlciIpLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxzdHJvbmc+Zm9vdGVyPC9zdHJvbmc+IC0gVGV4dCB0aGF0IHdpbGwgYmUgcmVuZGVyZWQKKyAgICAgICAgICAgICAgICBhZnRlciB0aGUgZXJyb3IgbWVzc2FnZXMgbGlzdC4gIFR5cGljYWxseSwgdGhpcyBtZXNzYWdlIHRleHQKKyAgICAgICAgICAgICAgICB3aWxsIGJlZ2luIHdpdGggPGNvZGU+Jmx0Oy91bCZndDs8L2NvZGU+IHRvIGVuZCB0aGUgZXJyb3IKKyAgICAgICAgICAgICAgICBtZXNzYWdlcyBsaXN0IChkZWZhdWx0ICJlcnJvcnMuZm9vdGVyIikuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PHN0cm9uZz5wcmVmaXg8L3N0cm9uZz4gLSBUZXh0IHRoYXQgd2lsbCBiZSByZW5kZXJlZAorICAgICAgICAgICAgICAgIGJlZm9yZSBlYWNoIGluZGl2aWR1YWwgZXJyb3IgaW4gdGhlIGxpc3QgKGRlZmF1bHQgImVycm9ycy5wcmVmaXgiKS48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPnN1ZmZpeDwvc3Ryb25nPiAtIFRleHQgdGhhdCB3aWxsIGJlIHJlbmRlcmVkCisgICAgICAgICAgICAgICAgYWZ0ZXIgZWFjaCBpbmRpdmlkdWFsIGVycm9yIGluIHRoZSBsaXN0IChkZWZhdWx0ICJlcnJvcnMuc3VmZml4IikuPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIDxwPlNlZSB0aGUgPGNvZGU+bWVzc2FnZXM8L2NvZGU+IHRhZyBmb3IgYW4gYWx0ZXJuYXRpdmUgdG8gdGhpcyB0YWcgdGhhdAorICAgICAgICAgICAgICAgICAgICBkb2VzIG5vdCByZWx5IG9uIEhUTUwgaW4geW91ciA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPi48L3A+CisKKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mb290ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgVGhpcyB2YWx1ZSBpcyBhbiBvcHRpb25hbCBtZXNzYWdlIHJlc291cmNlIGtleSB0aGF0IHdpbGwKKyAgICAgICAgICAgICAgICAgIGJlIHByaW50ZWQgYWZ0ZXIgdGhlIGl0ZXJhdGlvbiBvZiBlcnJvciBtZXNzYWdlcyBoYXMgZmluaXNoZWQuCisgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byAiZXJyb3JzLmZvb3RlciIgaWYgbm90IHNwZWNpZmllZC4KKyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmhlYWRlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBUaGlzIHZhbHVlIGlzIGFuIG9wdGlvbmFsIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IHRoYXQgd2lsbAorICAgICAgICAgICAgICAgICAgYmUgcHJpbnRlZCBiZWZvcmUgdGhlIGl0ZXJhdGlvbiBvZiBlcnJvciBtZXNzYWdlcyBiZWdpbnMuCisgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byAiZXJyb3JzLmhlYWRlciIgaWYgbm90IHNwZWNpZmllZC4KKyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxvY2FsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXNzaW9uIGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBMb2NhbGUgdXNlZCB0byBzZWxlY3QKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMgdG8gYmUgZGlzcGxheWVkLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8KKyAgICAgICAgICAgICAgICAgICAgdGhlIFN0cnV0cyBzdGFuZGFyZCB2YWx1ZS4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBzY29wZSBiZWFuIHVuZGVyIHdoaWNoIG91ciBlcnJvciBtZXNzYWdlcworICAgICAgICAgICAgICAgICAgaGF2ZSBiZWVuIHN0b3JlZC4gIElmIG5vdCBwcmVzZW50LCB0aGUgbmFtZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5HbG9iYWxzLkVSUk9SX0tFWTwvY29kZT4gY29uc3RhbnQgc3RyaW5nIHdpbGwgYmUgdXNlZC4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcmVmaXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgVGhpcyB2YWx1ZSBpcyBhbiBvcHRpb25hbCBtZXNzYWdlIHJlc291cmNlIGtleSB0aGF0IHdpbGwKKyAgICAgICAgICAgICAgICAgIGJlIHByaW50ZWQgYmVmb3JlIGFuIGVycm9yIG1lc3NhZ2UuCisgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byAiZXJyb3JzLnByZWZpeCIgaWYgbm90IHNwZWNpZmllZC4KKyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHByb3BlcnR5IGZvciB3aGljaCBlcnJvciBtZXNzYWdlcyBzaG91bGQgYmUKKyAgICAgICAgICAgICAgICAgIGRpc3BsYXllZC4gIElmIG5vdCBzcGVjaWZpZWQsIGFsbCBlcnJvciBtZXNzYWdlcyAocmVnYXJkbGVzcworICAgICAgICAgICAgICAgICAgb2YgcHJvcGVydHkpIGFyZSBkaXNwbGF5ZWQuCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3VmZml4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIFRoaXMgdmFsdWUgaXMgYW4gb3B0aW9uYWwgbWVzc2FnZSByZXNvdXJjZSBrZXkgdGhhdCB3aWxsCisgICAgICAgICAgICAgICAgICBiZSBwcmludGVkIGFmdGVyIGFuIGVycm9yIG1lc3NhZ2UuCisgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byAiZXJyb3JzLnN1ZmZpeCIgaWYgbm90IHNwZWNpZmllZC4KKyAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5maWxlPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZpbGVUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgRmlsZSBTZWxlY3QgSW5wdXQgRmllbGQKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgUmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlIGZpbGUsIGRlZmF1bHRpbmcgdG8KKyAgICAgICAgICAgICAgICB0aGUgc3BlY2lmaWVkIHZhbHVlIG9yIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlIGJlYW4KKyAgICAgICAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggb3VyIGN1cnJlbnQgZm9ybS4gVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuCisgICAgICAgICAgICAgICAgbmVzdGVkIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuCisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBBcyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50LCB0aGUKKyAgICAgICAgICAgICAgICBlbmNsb3NpbmcgZm9ybSBlbGVtZW50IG11c3Qgc3BlY2lmeSAiUE9TVCIgZm9yIHRoZSA8Y29kZT5tZXRob2Q8L2NvZGU+CisgICAgICAgICAgICAgICAgYXR0cmlidXRlLCBhbmQgIm11bHRpcGFydC9mb3JtLWRhdGEiIGZvciB0aGUgPGNvZGU+ZW5jdHlwZTwvY29kZT4KKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUuIEZvciBleGFtcGxlOgorICAgICAgICAgICAgPC9wPgorICAgIDxwcmU+CisgICAgJmx0O2h0bWw6Zm9ybSBtZXRob2Q9IlBPU1QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiJmd0OworICAgICAgICAmbHQ7aHRtbDpmaWxlIHByb3BlcnR5PSJ0aGVGaWxlIiAvJmd0OworICAgICZsdDsvaHRtbDpmb3JtJmd0OzwvcHJlPgorCisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgIFdBUk5JTkc6IEluIG9yZGVyIHRvIGNvcnJlY3RseSByZWNvZ25pemUgdXBsb2FkZWQgZmlsZXMsIHRoZSBBY3Rpb25Gb3JtIGJlYW4KKyAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZvcm0gbXVzdCBpbmNsdWRlIGEgc3RhdGVtZW50IHNldHRpbmcgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzLnVwbG9hZC5Gb3JtRmlsZSBwcm9wZXJ0eSB0byBudWxsIGluIHRoZSByZXNldCgpIG1ldGhvZC4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2VwdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ29tbWEtZGVsaW1pdGVkIHNldCBvZiBjb250ZW50IHR5cGVzIHRoYXQgdGhlIHNlcnZlciB5b3Ugc3VibWl0IHRvCisgICAgICAgICAgICAgICAga25vd3MgaG93IHRvIHByb2Nlc3MuIFRoaXMgbGlzdCBjYW4gYmUgdXNlZCBieSB0aGUgY2xpZW50IGJyb3dzZXIKKyAgICAgICAgICAgICAgICB0byBsaW1pdCB0aGUgc2V0IG9mIGZpbGUgb3B0aW9ucyB0aGF0IGlzIG1hZGUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24uCisgICAgICAgICAgICAgICAgSWYgbm90IHNwZWNpZmllZCwgbm8gY29udGVudCB0eXBlIGxpc3Qgd2lsbCBiZSBzZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk5hbWUgb2YgdGhlIHJlcXVlc3Qgc2NvcGUgYmVhbiB1bmRlciB3aGljaCBvdXIgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgICAgICAgICAgIGhhdmUgYmVlbiBzdG9yZWQuICBJZiBub3QgcHJlc2VudCwgdGhlIG5hbWUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+R2xvYmFscy5FUlJPUl9LRVk8L2NvZGU+IGNvbnN0YW50IHN0cmluZyB3aWxsIGJlIHVzZWQuPC9wPgorCisgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4sIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4gYW5kIAorICAgICAgICAgICAgICAgICAgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGVzIGFuZCBzaG91bGQgYmUgc2V0IHRvCisgICAgICAgICAgICAgICAgICB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9uIHRoZQorICAgICAgICAgICAgICAgICAgJmx0O2h0bWw6ZXJyb3JzLyZndDsgdGFnLjwvcD4gCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGU8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlQ2xhc3M8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdCAocmVuZGVycyBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUlkPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiA8Y29kZT5sb2dpYzppdGVyYXRlPC9jb2RlPiB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgImlkWzM0XS5wcm9wZXJ0eU5hbWUiLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1heGxlbmd0aDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTWF4aW11bSBudW1iZXIgb2YgaW5wdXQgY2hhcmFjdGVycyB0byBhY2NlcHQuICBUaGlzIGlzIGlnbm9yZWQKKyAgICAgICAgICAgICAgICBieSBtb3N0IGJyb3dzZXJzLiBbTm8gbGltaXRdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZCB3aGVuCisgICAgICAgICAgICAgICAgcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgc3VibWlzc2lvbiwgc2V0IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2l6ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgU2l6ZSBvZiB0aGUgZmlsZSBzZWxlY3Rpb24gYm94IHRvIGJlIGRpc3BsYXllZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIDxzdHJvbmc+Tk9URTwvc3Ryb25nPjogV2hlbiBzZXR0aW5nIHRoaXMgdG8gc29tZSB2YWx1ZSwgd2hldGhlcgorICAgICAgICAgICAgICAgIGludGVudGlvbmFsIG9yIGFzIHRoZSByZXN1bHQgKGZvciBleGFtcGxlKSBvZiB2YWxpZGF0aW9uIGVycm9ycyAKKyAgICAgICAgICAgICAgICBmb3JjaW5nIHRoZSB1c2VyIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGpzcCwgdGhpcyB2YWx1ZSBpcyBpZ25vcmVkIAorICAgICAgICAgICAgICAgIGJ5IG1vc3QgYnJvd3NlcnMgKGZvciBzZWN1cml0eSByZWFzb25zKS4KKyAgICAgICAgICAgICAgICBUaGlzIG1lYW5zIHRoYXQgeW91ciB1c2VycyB3aWxsIGhhdmUgdG8gcmUtc2VsZWN0IGFueSBwcmV2aW91c2x5CisgICAgICAgICAgICAgICAgc2VsZWN0ZWQgZmlsZXMgd2hlbiBzdWJtaXR0aW5nIHRoZSBmb3JtLiAgT3BlcmEgd2ViIGJyb3dzZXIgd2lsbAorICAgICAgICAgICAgICAgIHByb21wdCB0aGUgdXNlciBzbyB0aGV5IGhhdmUgYSBjaGFuY2UgdG8gYWJvcnQgdGhlIHN1Ym1pdC4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgICAgICBWYWx1ZSB0byB3aGljaCB0aGlzIGZpZWxkIHNob3VsZCBiZSBpbml0aWFsaXplZC4gW1VzZSB0aGUKKyAgICAgICAgICAgICAgICBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkgdmFsdWUgb3IgYm9keSBjb250ZW50IChpZiBhbnkpIGlmIAorICAgICAgICAgICAgICAgIHByb3BlcnR5IGlzIG5vdCBzcGVjaWZpZWRdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmZvcm08L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuRm9ybVRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PkpTUDwvYm9keS1jb250ZW50PgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBEZWZpbmUgQW4gSW5wdXQgRm9ybQorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2Zvcm0mZ3Q7IGVsZW1lbnQgd2hvc2UgY29udGVudHMgYXJlIGRlc2NyaWJlZAorICAgICAgICAgICAgICAgIGJ5IHRoZSBib2R5IGNvbnRlbnQgb2YgdGhpcyB0YWcuIFRoZSBmb3JtIGltcGxpY2l0bHkgaW50ZXJhY3RzCisgICAgICAgICAgICAgICAgd2l0aCB0aGUgc3BlY2lmaWVkIHJlcXVlc3Qgc2NvcGUgb3Igc2Vzc2lvbiBzY29wZSBiZWFuIHRvIHBvcHVsYXRlCisgICAgICAgICAgICAgICAgdGhlIGlucHV0IGZpZWxkcyB3aXRoIHRoZSBjdXJyZW50IHByb3BlcnR5IHZhbHVlcyBmcm9tIHRoZSBiZWFuLgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgVGhlIGZvcm0gYmVhbiBpcyBsb2NhdGVkLCBhbmQgY3JlYXRlZCBpZiBuZWNlc3NhcnksIGJhc2VkIG9uIHRoZSAKKyAgICAgICAgICAgICAgICBmb3JtIGJlYW4gc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGFzc29jaWF0ZWQgPGNvZGU+QWN0aW9uTWFwcGluZzwvY29kZT4uCisgICAgICAgICAgICA8L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWN0aW9uPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPlRoZSBVUkwgdG8gd2hpY2ggdGhpcyBmb3JtIHdpbGwgYmUgc3VibWl0dGVkLiAgVGhpcworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgaXMgYWxzbyB1c2VkIHRvIHNlbGVjdCB0aGUgQWN0aW9uTWFwcGluZyB3ZSBhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc3VtZWQgdG8gYmUgcHJvY2Vzc2luZywgZnJvbSB3aGljaCB3ZSBjYW4gaWRlbnRpZnkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBhcHByb3ByaWF0ZSBmb3JtIGJlYW4gYW5kIHNjb3BlLiAgSWYgYSB2YWx1ZSBpcyBub3QKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3ZpZGVkLCB0aGUgb3JpZ2luYWwgVVJJIChzZXJ2bGV0UGF0aCkgZm9yIHRoZSByZXF1ZXN0IGlzIAorICAgICAgICAgICAgICAgICAgICAgICAgdXNlZC4gPC9wPgorCisgICAgICAgICAgICAgICAgICAgICAgICA8cD5JZiB5b3UgYXJlIHVzaW5nIGV4dGVuc2lvbiBtYXBwaW5nIGZvciBzZWxlY3RpbmcgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyIHNlcnZsZXQsIHRoaXMgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+cGF0aDwvY29kZT4gYXR0cmlidXRlIG9mIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT4mbHQ7YWN0aW9uJmd0OzwvY29kZT4gZWxlbWVudCwgb3B0aW9uYWxseQorICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93ZWQgYnkgdGhlIGNvcnJlY3QgZXh0ZW5zaW9uIHN1ZmZpeC48L3A+CisKKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPklmIHlvdSBhcmUgdXNpbmcgcGF0aCBtYXBwaW5nIHRvIHNlbGVjdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIgc2VydmxldCwgdGhpcyB2YWx1ZSBzaG91bGQgYmUgZXhhY3RseSBlcXVhbAorICAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhlIDxjb2RlPnBhdGg8L2NvZGU+IGF0dHJpYnV0ZSBvZiB0aGUgY29ycmVzcG9uZGluZworICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+Jmx0O2FjdGlvbiZndDs8L2NvZGU+IGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjY2VwdENoYXJzZXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBsaXN0IG9mIGNoYXJhY3RlciBlbmNvZGluZ3MgZm9yIGlucHV0IGRhdGEgdGhhdCB0aGUgc2VydmVyIHNob3VsZAorICAgICAgICAgICAgICAgIGFjY2VwdC4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjI8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBGb3JtJ3MgaW5wdXQgZmllbGRzIHNob3VsZCBiZQorICAgICAgICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNzwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZW5jdHlwZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGNvbnRlbnQgZW5jb2RpbmcgdG8gYmUgdXNlZCB0byBzdWJtaXQgdGhpcyBmb3JtLCBpZiB0aGUgbWV0aG9kCisgICAgICAgICAgICAgICAgaXMgUE9TVC4gVGhpcyBtdXN0IGJlIHNldCB0byAibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgaWYgeW91IGFyZSB1c2luZworICAgICAgICAgICAgICAgIHRoZSBmaWxlIHRhZyB0byBlbmFibGUgZmlsZSB1cGxvYWQuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBicm93c2VyCisgICAgICAgICAgICAgICAgZGVmYXVsdCAobm9ybWFsbHkgImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpIGlzIHVzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Zm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBmaWVsZCBuYW1lIChhbW9uZyB0aGUgZmllbGRzIG9uIHRoaXMgZm9ybSkgdG8gd2hpY2ggaW5pdGlhbAorICAgICAgICAgICAgICAgIGZvY3VzIHdpbGwgYmUgYXNzaWduZWQgd2l0aCBhIEphdmFTY3JpcHQgZnVuY3Rpb24uIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgbm8gc3BlY2lhbCBKYXZhU2NyaXB0IGZvciB0aGlzIHB1cnBvc2Ugd2lsbCBiZSByZW5kZXJlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mb2N1c0luZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZiB0aGUgZm9jdXMgZmllbGQgaXMgYSBmaWVsZCBhcnJheSwgc3VjaCBhcyBhIHJhZGlvIGJ1dHRvbiBncm91cCwgeW91IGNhbiAKKyAgICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSBpbmRleCBpbiB0aGUgYXJyYXkgdG8gcmVjZWl2ZSBmb2N1cy4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4xPC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tZXRob2Q8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBIVFRQIG1ldGhvZCB0aGF0IHdpbGwgYmUgdXNlZCB0byBzdWJtaXQgdGhpcyByZXF1ZXN0CisgICAgICAgICAgICAgICAgKEdFVCwgUE9TVCkuIFtQT1NUXQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ucmVzZXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCBpZiB0aGUgZm9ybSBpcyByZXNldC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbnN1Ym1pdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIGlmIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5yZWFkb25seTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgRm9ybSdzIGlucHV0IGZpZWxkcyBzaG91bGQgYmUKKyAgICAgICAgICAgICAgICByZWFkIG9ubHkuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi43PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zY3JpcHRMYW5ndWFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBmb3JtJ3MgZm9jdXMgJmx0O3NjcmlwdCZndDsgZWxlbWVudCB3aWxsIG5vdCBjb250YWluIGEgbGFuZ3VhZ2UgYXR0cmlidXRlCisgICAgICAgICAgICAgICAgd2hlbiB0aGlzIGlzIHNldCB0byBmYWxzZS4gIFRoZSBkZWZhdWx0IGlzIHRydWUgYnV0IHRoaXMgcHJvcGVydHkgaXMgaWdub3JlZAorICAgICAgICAgICAgICAgIGluIFhITVRMIG1vZGUuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMjwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YXJnZXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFdpbmRvdyB0YXJnZXQgdG8gd2hpY2ggdGhpcyBmb3JtIGlzIHN1Ym1pdHRlZCwgc3VjaCBhcworICAgICAgICAgICAgICAgIGZvciB1c2UgaW4gZnJhbWVkIHByZXNlbnRhdGlvbnMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmZyYW1lPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkZyYW1lVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgYW4gSFRNTCBmcmFtZSBlbGVtZW50PC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorCisgICAgICAgICAgICA8cD5SZW5kZXJzIGFuIEhUTUwgPGNvZGU+Jmx0O2ZyYW1lJmd0OzwvY29kZT4gZWxlbWVudAorICAgICAgICAgICAgd2l0aCBwcm9jZXNzaW5nIGZvciB0aGUgPGNvZGU+c3JjPC9jb2RlPiBhdHRyaWJ1dGUgdGhhdCBpcworICAgICAgICAgICAgaWRlbnRpY2FsIHRvIHRoYXQgcGVyZm9ybWVkIGJ5IHRoZSA8Y29kZT4mbHQ7aHRtbDpsaW5rJmd0OzwvY29kZT4KKyAgICAgICAgICAgIHRhZyBmb3IgdGhlIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZS4gIFVSTCByZXdyaXRpbmcgd2lsbCBiZQorICAgICAgICAgICAgYXBwbGllZCBhdXRvbWF0aWNhbGx5LCB0byBtYWludGFpbiBzZXNzaW9uIHN0YXRlIGluIHRoZQorICAgICAgICAgICAgYWJzZW5jZSBvZiBjb29raWVzLjwvcD4KKworICAgICAgICAgICAgPHA+VGhlIGJhc2UgVVJMIGZvciB0aGlzIGZyYW1lIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24KKyAgICAgICAgICAgIHdoaWNoIG9mIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyB5b3Ugc3BlY2lmeSAoeW91IG11c3QKKyAgICAgICAgICAgIHNwZWNpZnkgZXhhY3RseSBvbmUgb2YgdGhlbSk6PC9wPgorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPjxlbT5mb3J3YXJkPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIHRoZQorICAgICAgICAgICAgICAgIG5hbWUgb2YgYSBnbG9iYWwgPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gdG8gYmUgbG9va2VkCisgICAgICAgICAgICAgICAgdXAsIGFuZCB1c2UgdGhlIG1vZHVsZS1yZWxhdGl2ZSBvciBjb250ZXh0LXJlbGF0aXZlCisgICAgICAgICAgICAgICAgVVJJIGZvdW5kIHRoZXJlLjwvbGk+CisgICAgICAgICAgICA8bGk+PGVtPmhyZWY8L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgdW5jaGFuZ2VkLgorICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICA8bGk+PGVtPnBhZ2U8L2VtPiAtIFVzZSB0aGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgYXMgYQorICAgICAgICAgICAgICAgIG1vZHVsZS1yZWxhdGl2ZSBVUkksIGFuZCBnZW5lcmF0ZSBhIHNlcnZlci1yZWxhdGl2ZQorICAgICAgICAgICAgICAgIFVSSSBieSBpbmNsdWRpbmcgdGhlIGNvbnRleHQgcGF0aCBhbmQgYXBwbGljYXRpb24KKyAgICAgICAgICAgICAgICBwcmVmaXguPC9saT4KKyAgICAgICAgICAgIDxsaT48ZW0+YWN0aW9uPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGFzIHRoZQorICAgICAgICAgICAgICAgIGxvZ2ljYWwgbmFtZSBvZiBhIGdsb2JhbCBBY3Rpb24gdGhhdCBjb250YWlucyB0aGUgYWN0dWFsIAorICAgICAgICAgICAgICAgIGNvbnRlbnQtcmVsYXRpdmUgVVJJIG9mIHRoZSBkZXN0aW5hdGlvbiBvZiB0aGlzIHRyYW5zZmVyLjwvbGk+CisgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8cD5Ob3JtYWxseSwgdGhlIGh5cGVybGluayB5b3Ugc3BlY2lmeSB3aXRoIG9uZSBvZiB0aGUKKyAgICAgICAgICAgIGF0dHJpYnV0ZXMgZGVzY3JpYmVkIGluIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGggd2lsbCBiZSBsZWZ0CisgICAgICAgICAgICB1bmNoYW5nZWQgKG90aGVyIHRoYW4gVVJMIHJld3JpdGluZyBpZiBuZWNlc3NhcnkpLiAgSG93ZXZlciwKKyAgICAgICAgICAgIHRoZXJlIGFyZSB0d28gd2F5cyB5b3UgY2FuIGFwcGVuZCBvbmUgb3IgbW9yZSBkeW5hbWljYWxseQorICAgICAgICAgICAgZGVmaW5lZCBxdWVyeSBwYXJhbWV0ZXJzIHRvIHRoZSBoeXBlcmxpbmsgLS0gc3BlY2lmeSBhIHNpbmdsZQorICAgICAgICAgICAgcGFyYW1ldGVyIHdpdGggdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+IGF0dHJpYnV0ZSAoYW5kIGl0cworICAgICAgICAgICAgYXNzb2NpYXRlZCBhdHRyaWJ1dGVzIHRvIHNlbGVjdCB0aGUgdmFsdWUpLCBvciBzcGVjaWZ5IHRoZQorICAgICAgICAgICAgPGNvZGU+bmFtZTwvY29kZT4gKGFuZCBvcHRpb25hbCA8Y29kZT5wcm9wZXJ0eTwvY29kZT4pCisgICAgICAgICAgICBhdHRyaWJ1dGVzIHRvIHNlbGVjdCBhIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGJlYW4gdGhhdAorICAgICAgICAgICAgY29udGFpbnMgb25lIG9yIG1vcmUgcGFyYW1ldGVyIGlkcyBhbmQgY29ycmVzcG9uZGluZyB2YWx1ZXMuCisgICAgICAgICAgICA8L3A+CisKKyAgICAgICAgICAgIDxwPlRvIHNwZWNpZnkgYSBzaW5nbGUgcGFyYW1ldGVyLCB1c2UgdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICBhdHRyaWJ1dGUgdG8gZGVmaW5lIHRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0byBiZQorICAgICAgICAgICAgc3VibWl0dGVkLiAgVG8gc3BlY2lmeSB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSwgdXNlIG9uZSBvZiB0aGUKKyAgICAgICAgICAgIGZvbGxvd2luZyBhcHByb2FjaGVzOjwvcD4KKyAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBvbmx5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZTwvZW0+CisgICAgICAgICAgICAgICAgLSBUaGUgbmFtZWQgSlNQIGJlYW4gKG9wdGlvbmFsbHkgc2NvcGVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBhdHRyaWJ1dGUpIG11c3QgaWRlbnRpZnkgYSB2YWx1ZQorICAgICAgICAgICAgICAgIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIFN0cmluZy48L2xpPgorICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IGJvdGggdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYW5kCisgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlczwvZW0+IC0gVGhlIHNwZWNpZmllZAorICAgICAgICAgICAgICAgIHByb3BlcnR5IGdldHRlciBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgb24gdGhlIEpTUCBiZWFuCisgICAgICAgICAgICAgICAgaWRlbnRpZmllZCBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4pIGF0dHJpYnV0ZXMsIGluIG9yZGVyIHRvIHNlbGVjdAorICAgICAgICAgICAgICAgIGEgdmFsdWUgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgU3RyaW5nLjwvbGk+CisgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICA8cD5JZiB5b3UgcHJlZmVyIHRvIHNwZWNpZnkgYSA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiB0aGF0CisgICAgICAgICAgICBjb250YWlucyBhbGwgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVycyB0byBiZSBhZGRlZCB0byB0aGUKKyAgICAgICAgICAgIGh5cGVybGluaywgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHRlY2huaXF1ZXM6PC9wPgorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IG9ubHkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZTwvZW0+IC0KKyAgICAgICAgICAgICAgICBUaGUgbmFtZWQgSlNQIGJlYW4gKG9wdGlvbmFsbHkgc2NvcGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5zY29wZTwvY29kZT4gYXR0cmlidXRlKSBtdXN0IGlkZW50aWZ5IGEKKyAgICAgICAgICAgICAgICA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzLjwvbGk+CisgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgYm90aCA8Y29kZT5uYW1lPC9jb2RlPiBhbmQKKyAgICAgICAgICAgICAgICA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlczwvZW0+IC0gVGhlIHNwZWNpZmllZAorICAgICAgICAgICAgICAgIHByb3BlcnR5IGdldHRlciBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgb24gdGhlIGJlYW4KKyAgICAgICAgICAgICAgICBpZGVudGlmaWVkIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgPGNvZGU+c2NvcGU8L2NvZGU+KSBhdHRyaWJ1dGVzLCBpbiBvcmRlciB0byByZXR1cm4gdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcGFyYW1ldGVycy48L2xpPgorICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgPHA+QXMgdGhlIDxjb2RlPk1hcDwvY29kZT4gaXMgcHJvY2Vzc2VkLCB0aGUga2V5cyBhcmUgYXNzdW1lZAorICAgICAgICAgICAgdG8gYmUgdGhlIG5hbWVzIG9mIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gYmUgYXBwZW5kZWQgdG8gdGhlCisgICAgICAgICAgICBoeXBlcmxpbmsuICBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGVhY2gga2V5IG11c3QgYmUgZWl0aGVyCisgICAgICAgICAgICBhIFN0cmluZyBvciBhIFN0cmluZyBhcnJheSByZXByZXNlbnRpbmcgdGhlIHBhcmFtZXRlciB2YWx1ZShzKSwKKyAgICAgICAgICAgIG9yIGFuIG9iamVjdCB3aG9zZSB0b1N0cmluZygpIG1ldGhvZCB3aWxsIGJlIGNhbGxlZC4KKyAgICAgICAgICAgIElmIGEgU3RyaW5nIGFycmF5IGlzIHNwZWNpZmllZCwgbW9yZSB0aGFuIG9uZSB2YWx1ZSBmb3IgdGhlCisgICAgICAgICAgICBzYW1lIHF1ZXJ5IHBhcmFtZXRlciBuYW1lIHdpbGwgYmUgY3JlYXRlZC48L3A+CisKKyAgICAgICAgICAgIDxwPkFkZGl0aW9uYWxseSwgeW91IGNhbiByZXF1ZXN0IHRoYXQgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24KKyAgICAgICAgICAgIGNvbnRyb2wgdG9rZW4sIGlmIGFueSwgYmUgaW5jbHVkZWQgaW4gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsKKyAgICAgICAgICAgIGJ5IHNldHRpbmcgdGhlIDxjb2RlPnRyYW5zYWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUgdG8KKyAgICAgICAgICAgIDxjb2RlPnRydWU8L2NvZGU+LgorICAgICAgICAgICAgWW91IGNhbiBhbHNvIHJlcXVlc3QgdGhhdCBhbiBhbmNob3IgKCIjeHh4IikgYmUgYWRkZWQgdG8gdGhlCisgICAgICAgICAgICBlbmQgb2YgdGhlIFVSTCB0aGF0IGlzIGNyZWF0ZWQgYnkgYW55IG9mIHRoZSBhYm92ZSBtZWNoYW5pc21zLAorICAgICAgICAgICAgYnkgdXNpbmcgdGhlIDxjb2RlPmFuY2hvcjwvY29kZT4gYXR0cmlidXRlLjwvcD4KKworICAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY3Rpb248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgPHA+TG9naWNhbCBuYW1lIG9mIGEgZ2xvYmFsIDxjb2RlPkFjdGlvbjwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgY29udGFpbnMgdGhlIGFjdHVhbCBjb250ZW50LXJlbGF0aXZlIFVSSSBvZiB0aGUgZGVzdGluYXRpb24KKyAgICAgICAgICAgICAgIG9mIHRoaXMgdHJhbnNmZXIuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgIG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkCisgICAgICAgICAgICAgICBpbiB0aGUgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgCisJCSAgICAgICA8cD5BZGRpdGlvbmFsbHksIHlvdSBjYW4gc3BlY2lmeSBhIDxjb2RlPm1vZHVsZTwvY29kZT4gcHJlZml4IAorCQkJICAgZm9yIGxpbmtpbmcgdG8gb3RoZXIgbW9kdWxlcy48L3A+CisJCQkJCQkgICAKKwkJICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1vZHVsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisJCQkgICA8cD5QcmVmaXggbmFtZSBvZiBhIDxjb2RlPk1vZHVsZTwvY29kZT4gdGhhdAorCQkgICAgICAgY29udGFpbnMgdGhlIGFjdGlvbiBtYXBwaW5nIGZvciB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPgorCQkgICAgICAgdGhhdCBpcyBzcGVjaWZpZWQgYnkgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLgorCQkgICAgICAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGFuIDxjb2RlPmFjdGlvbjwvY29kZT4gCisJCSAgICAgICBhdHRyaWJ1dGUgZm9yIHRoaXMgdG8gaGF2ZSBhbiBlZmZlY3QuPC9wPgorCQkKKwkJICAgICAgIDxwPjxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+VXNlICIiIHRvIG1hcCB0byB0aGUgZGVmYXVsdCBtb2R1bGUuPC9wPgorCQkgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbmNob3I8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPk9wdGlvbmFsIGFuY2hvciB0YWcgKCIjeHh4IikgdG8gYmUgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGh5cGVybGluay4gIFNwZWNpZnkgdGhpcyB2YWx1ZSA8c3Ryb25nPndpdGhvdXQ8L3N0cm9uZz4gYW55CisgICAgICAgICAgICAgICAgIiMiIGNoYXJhY3Rlci48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Zm9yd2FyZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+TG9naWNhbCBuYW1lIG9mIGEgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRoYXQKKyAgICAgICAgICAgICAgICBjb250YWlucyB0aGUgYWN0dWFsIGNvbnRlbnQtcmVsYXRpdmUgVVJJIG9mIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgICAgIG9mIHRoaXMgdHJhbnNmZXIuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICBtb2RpZmllZCBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZAorICAgICAgICAgICAgICAgIGluIHRoZSB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLAorICAgICAgICAgICAgICAgIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mcmFtZWJvcmRlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+U2hvdWxkIGEgZnJhbWUgYm9yZGVyIGJlIGdlbmVyYXRlZCBhcm91bmQgdGhpcyBmcmFtZSAoMSkKKyAgICAgICAgICAgICAgICBvciBub3QgKDApPzwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5mcmFtZU5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlZhbHVlIGZvciB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlIG9mIHRoZSByZW5kZXJlZAorICAgICAgICAgICAgICAgIDxjb2RlPiZsdDtmcmFtZSZndDs8L2NvZGU+IGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmhyZWY8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBVUkwgdG8gd2hpY2ggdGhpcyBoeXBlcmxpbmsgd2lsbCB0cmFuc2ZlciBjb250cm9sCisgICAgICAgICAgICAgICAgIGlmIGFjdGl2YXRlZC4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseSBtb2RpZmllZAorICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgICAgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxvbmdkZXNjPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5VUkkgb2YgYSBsb25nIGRlc2NyaXB0aW9uIG9mIHRoZSBmcmFtZS4gIFRoaXMgZGVzY3JpcHRpb24KKyAgICAgICAgICAgICAgICBzaG91bGQgc3VwcGxlbWVudCB0aGUgc2hvcnQgZGVzY3JpcHRpb24gcHJvdmlkZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+dGl0bGU8L2NvZGU+IGF0dHJpYnV0ZSwgYW5kIG1heSBiZSBwYXJ0aWN1bGFybHkgdXNlZnVsCisgICAgICAgICAgICAgICAgZm9yIG5vbi12aXN1YWwgdXNlciBhZ2VudHMuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1hcmdpbmhlaWdodDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5qYXZhLmxhbmcuSW50ZWdlcjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYW1vdW50IG9mIHNwYWNlIChpbiBwaXhlbHMpIHRvIGJlIGxlZnQgYmV0d2VlbiB0aGUKKyAgICAgICAgICAgICAgICBmcmFtZSdzIGNvbnRlbnRzIGFuZCBpdHMgdG9wIGFuZCBib3R0b20gbWFyZ2lucy48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bWFyZ2lud2lkdGg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+amF2YS5sYW5nLkludGVnZXI8L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFtb3VudCBvZiBzcGFjZSAoaW4gcGl4ZWxzKSB0byBiZSBsZWZ0IGJldHdlZW4gdGhlCisgICAgICAgICAgICAgICAgZnJhbWUncyBjb250ZW50cyBhbmQgaXRzIGxlZnQgYW5kIHJpZ2h0IG1hcmdpbnMuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gdGhhdCBjb250YWlucyBhIDxjb2RlPk1hcDwvY29kZT4KKyAgICAgICAgICAgICAgICByZXByZXNlbnRpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgIGlzIG5vdCBzcGVjaWZpZWQpLCBvciBhIEpTUCBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcworICAgICAgICAgICAgICAgIGNhbGxlZCB0byByZXR1cm4gYSA8Y29kZT5NYXA8L2NvZGU+IChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgICAgICAgICBpcyBzcGVjaWZpZWQpLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5ub3Jlc2l6ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlNob3VsZCB1c2VycyBiZSBkaXNhbGxvd2VkIGZyb20gcmVzaXppbmcgdGhlIGZyYW1lPworICAgICAgICAgICAgICAgICh0cnVlLCBmYWxzZSkuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtb2R1bGUtcmVsYXRpdmUgcGF0aCAoYmVnaW5uaW5nIHdpdGggYSAiLyIKKyAgICAgICAgICAgICAgICBjaGFyYWN0ZXIpIHRvIHdoaWNoIHRoaXMgaHlwZXJsaW5rIHdpbGwgdHJhbnNmZXIgY29udHJvbAorICAgICAgICAgICAgICAgICBpZiBhY3RpdmF0ZWQuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQgaW4gdGhlCisgICAgICAgICAgICAgICAgIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeSBleGFjdGx5CisgICAgICAgICAgICAgICAgIG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsCisgICAgICAgICAgICAgICAgIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1JZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgIGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLiAgVGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaXMKKyAgICAgICAgICAgICAgICBkZWZpbmVkIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGFuZCAob3B0aW9uYWwpCisgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlcywgb3B0aW9uYWxseSBzY29wZWQgYnkKKyAgICAgICAgICAgICAgICB0aGUgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gYXR0cmlidXRlPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGlzIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlCisgICAgICAgICAgICAgICAgdmFsdWUgZm9yIHRoZSByZXF1ZXN0IHBhcmFtZXRlciBuYW1lZCBieSA8Y29kZT5wYXJhbUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIChpZiA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkKSwgb3IgYSBKU1AKKyAgICAgICAgICAgICAgICBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcyBjYWxsZWQgdG8gcmV0dXJuIGEgU3RyaW5nCisgICAgICAgICAgICAgICAgKGlmIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZCkuICBUaGUgSlNQIGJlYW4KKyAgICAgICAgICAgICAgICBpcyBjb25zdHJhaW5lZCB0byB0aGUgYmVhbiBzY29wZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gcHJvcGVydHksIGlmIGl0IGlzIHNwZWNpZmllZC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1Qcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0CisgICAgICAgICAgICAgICAgYmUgYSBTdHJpbmcgY29udGFpbmluZyB0aGUgdmFsdWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyCisgICAgICAgICAgICAgICAgKG5hbWVkIGJ5IHRoZSA8Y29kZT5wYXJhbUlkPC9jb2RlPiBhdHRyaWJ1dGUpIHRoYXQgd2lsbCBiZQorICAgICAgICAgICAgICAgIGR5bmFtaWNhbGx5IGFkZGVkIHRvIHRoaXMgaHlwZXJsaW5rLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbVNjb3BlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICBhbGwgc2NvcGVzIGFyZSBzZWFyY2hlZC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hvc2UgcmV0dXJuIHZhbHVlIG11c3QgYmUKKyAgICAgICAgICAgICAgICBhIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKKyAgICAgICAgICAgICAgICB0byBiZSBhZGRlZCB0byB0aGUgaHlwZXJsaW5rLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPgorICAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBpZiB5b3Ugc3BlY2lmeQorICAgICAgICAgICAgICAgIHRoaXMgYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLCBhbGwKKyAgICAgICAgICAgICAgICBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zY3JvbGxpbmc8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlNob3VsZCBzY3JvbGwgYmFycyBiZSBjcmVhdGVkIHVuY29uZGl0aW9uYWxseSAoeWVzKSwKKyAgICAgICAgICAgICAgICBuZXZlciAobm8pLCBvciBvbmx5IHdoZW4gbmVlZGVkIChhdXRvKT88L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRyYW5zYWN0aW9uPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBhbnkgY3VycmVudCB0cmFuc2FjdGlvbgorICAgICAgICAgICAgICAgIGNvbnRyb2wgdG9rZW4gd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhdGVkIGh5cGVybGluaywKKyAgICAgICAgICAgICAgICBzbyB0aGF0IGl0IHdpbGwgcGFzcyBhbiA8Y29kZT5pc1Rva2VuVmFsaWQoKTwvY29kZT4gdGVzdAorICAgICAgICAgICAgICAgIGluIHRoZSByZWNlaXZpbmcgQWN0aW9uLjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+aGlkZGVuPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkhpZGRlblRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PmVtcHR5PC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBBIEhpZGRlbiBGaWVsZAorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICBSZW5kZXJzIGFuIEhUTUwgJmx0O2lucHV0Jmd0OyBlbGVtZW50IG9mIHR5cGUgaGlkZGVuLCBwb3B1bGF0ZWQKKyAgICAgICAgICAgICAgICBmcm9tIHRoZSBzcGVjaWZpZWQgdmFsdWUgb3IgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgYmVhbgorICAgICAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCBvdXIgY3VycmVudCBmb3JtLiBUaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4KKyAgICAgICAgICAgICAgICBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiA8Y29kZT5sb2dpYzppdGVyYXRlPC9jb2RlPiB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgImlkWzM0XS5wcm9wZXJ0eU5hbWUiLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBjb25zdWx0ZWQKKyAgICAgICAgICAgICAgICB3aGVuIHJlbmRlcmluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIGlucHV0IGZpZWxkLiBJZiBub3QKKyAgICAgICAgICAgICAgICBzcGVjaWZpZWQsIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybSB0YWcgd2UgYXJlIG5lc3RlZAorICAgICAgICAgICAgICAgIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoaXMgaW5wdXQgZmllbGQsIGFuZCB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBiZWFuCisgICAgICAgICAgICAgICAgcHJvcGVydHkgaWYgdmFsdWUgaXMgbm90IHNwZWNpZmllZC4gVGhlIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eQorICAgICAgICAgICAgICAgIChpZiBhbnkpIG11c3QgYmUgb2YgdHlwZSBTdHJpbmcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsdWUgdG8gd2hpY2ggdGhpcyBmaWVsZCBzaG91bGQgYmUgaW5pdGlhbGl6ZWQuIFtVc2UgdGhlCisgICAgICAgICAgICAgICAgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5IHZhbHVlXQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPndyaXRlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgU2hvdWxkIHRoZSB2YWx1ZSBvZiB0aGlzIGZpZWxkIGFsc28gYmUgcmVuZGVyZWQgdG8gdGhlCisgICAgICAgICAgICAgICAgcmVzcG9uc2UgcGFnZSB0byBtYWtlIGl0IHZpc2libGUsIGluIGFkZGl0aW9uIHRvIGNyZWF0aW5nCisgICAgICAgICAgICAgICAgYW4gSFRNTCB0eXBlPSJoaWRkZW4iIGVsZW1lbnQ/ICBCeSBkZWZhdWx0LCBvbmx5IHRoZQorICAgICAgICAgICAgICAgIGhpZGRlbiBlbGVtZW50IGlzIGNyZWF0ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmh0bWw8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSHRtbFRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PkpTUDwvYm9keS1jb250ZW50PgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+UmVuZGVyIGFuIEhUTUwgPGNvZGU+Jmx0O2h0bWwmZ3Q7PC9jb2RlPiBFbGVtZW50PC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgIDxwPlJlbmRlcnMgYW4gSFRNTCA8Y29kZT4mbHQ7aHRtbCZndDs8L2NvZGU+IGVsZW1lbnQgd2l0aAorICAgICAgICAgIGxhbmd1YWdlIGF0dHJpYnV0ZXMgZXh0cmFjdGVkIGZyb20gdGhlIHVzZXIncyBjdXJyZW50IExvY2FsZQorICAgICAgICAgIG9iamVjdCwgaWYgdGhlcmUgaXMgb25lLjwvcD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxhbmc8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgUmVuZGVycyBhIGxhbmcgYXR0cmlidXRlIHdpdGggdGhlIGxvY2FsZSBzdG9yZWQgaW4gdGhlIHVzZXIncyBzZXNzaW9uLiAgSWYgbm90IAorICAgICAgICAgICAgICAgICBmb3VuZCBpbiB0aGUgc2Vzc2lvbiwgdGhlIGxhbmd1YWdlIGZyb20gdGhlIDxjb2RlPkFjY2VwdC1MYW5ndWFnZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgSFRUUCBoZWFkZXIgaXMgdXNlZC4gIElmIHN0aWxsIG5vdCBmb3VuZCwgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UgZm9yIHRoZSBzZXJ2ZXIgCisgICAgICAgICAgICAgICAgIGlzIHVzZWQuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMjwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+eGh0bWw8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgPHA+U2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGluIG9yZGVyIHRvIHJlbmRlciAKKyAgICAgICAgICAgICAgPGNvZGU+eG1sOmxhbmc8L2NvZGU+IGFuZCA8Y29kZT54bWxuczwvY29kZT4gYXR0cmlidXRlcyAKKyAgICAgICAgICAgICAgb24gdGhlIGdlbmVyYXRlZCA8Y29kZT5odG1sPC9jb2RlPiBlbGVtZW50LiAgVGhpcyBhbHNvIAorICAgICAgICAgICAgICBjYXVzZXMgYWxsIG90aGVyIGh0bWwgdGFncyB0byByZW5kZXIgYXMgWEhUTUwgMS4wICh0aGUgCisgICAgICAgICAgICAgICZsdDtodG1sOnhodG1sLyZndDsgdGFnIGhhcyBhIHNpbWlsYXIgcHVycG9zZSkuCisgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4xPC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+aW1hZ2U8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuSW1hZ2VUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgICAgIFJlbmRlciBhbiBpbnB1dCB0YWcgb2YgdHlwZSAiaW1hZ2UiCisgICAgICAgICAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgPHA+UmVuZGVycyBhbiBIVE1MIDxjb2RlPiZsdDtpbnB1dCZndDs8L2NvZGU+IHRhZyBvZiB0eXBlCisgICAgICAgICAgICAgICAgImltYWdlIi4gIFRoZSBiYXNlIFVSTCBmb3IgdGhpcyBpbWFnZSBpcyBjYWxjdWxhdGVkIGRpcmVjdGx5CisgICAgICAgICAgICAgICAgYmFzZWQgb24gdGhlIHZhbHVlIHNwZWNpZmllZCBpbiB0aGUgPGNvZGU+c3JjPC9jb2RlPiBvcgorICAgICAgICAgICAgICAgIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZXMsIG9yIGluZGlyZWN0bHkgYnkgbG9va2luZyB1cCBhCisgICAgICAgICAgICAgICAgbWVzc2FnZSByZXNvdXJjZSBzdHJpbmcgYmFzZWQgb24gdGhlIDxjb2RlPnNyY0tleTwvY29kZT4gb3IKKyAgICAgICAgICAgICAgICA8Y29kZT5wYWdlS2V5PC9jb2RlPiBhdHRyaWJ1dGVzLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPgorICAgICAgICAgICAgICAgIHNwZWNpZnkgZXhhY3RseSBvbmUgb2YgdGhlc2UgYXR0cmlidXRlcy48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5JZiB5b3Ugd291bGQgbGlrZSB0byBvYnRhaW4gdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIGNsaWNrIHRoYXQgc3VibWl0dGVkIHRoaXMgcmVxdWVzdCwgc2VlIHRoZSBpbmZvcm1hdGlvbiBiZWxvdworICAgICAgICAgICAgICAgIG9uIHRoZSA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICA8cD5UaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4gbmVzdGVkIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuPC9wPgorCisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5CisgICAgICAgICAgICAgICAgdG8gdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWxpZ248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbGlnbm1lbnQgb3B0aW9uIGZvciB0aGlzIGltYWdlLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5ib3JkZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSB3aWR0aCAoaW4gcGl4ZWxzKSBvZiB0aGUgYm9yZGVyIGFyb3VuZCB0aGlzIGltYWdlLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4gIElmIDxjb2RlPnRydWU8L2NvZGU+CisgICAgICAgICAgICAgICAgdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgInByb3BlcnR5TmFtZVszNF0iLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yCisgICAgICAgICAgICAgICAgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxvY2FsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3IgdGhlIExvY2FsZSB1c2VkIHRvIHNlbGVjdAorICAgICAgICAgICAgICAgIGludGVybmF0aW9uYWxpemVkIG1lc3NhZ2VzLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgU3RydXRzIHN0YW5kYXJkIHZhbHVlLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cworICAgICAgICAgICAgICAgIGFuZCBhIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cworICAgICAgICAgICAgICAgIGFuZCBhIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMKKyAgICAgICAgICAgICAgICBhbmQgYSBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZQorICAgICAgICAgICAgICAgIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90CisgICAgICAgICAgICAgICAgdW5kZXIgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtb2R1bGUtcmVsYXRpdmUgcGF0aCBvZiB0aGUgaW1hZ2UgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBpbnB1dCB0YWcuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYWdlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUga2V5IG9mIHRoZSBtZXNzYWdlIHJlc291cmNlcyBzdHJpbmcgc3BlY2lmeWluZyB0aGUKKyAgICAgICAgICAgICAgICBtb2R1bGUtcmVsYXRpdmUgcGF0aCBvZiB0aGUgaW1hZ2UgZm9yIHRoaXMgaW5wdXQgdGFnLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBwcm9wZXJ0eSBuYW1lIG9mIHRoaXMgaW1hZ2UgdGFnLiAgVGhlIHBhcmFtZXRlciBuYW1lcworICAgICAgICAgICAgICAgIGZvciB0aGUgcmVxdWVzdCB3aWxsIGFwcGVhciBhcyAicHJvcGVydHkueCIgYW5kICJwcm9wZXJ0eS55IiwKKyAgICAgICAgICAgICAgICB0aGUgeCBhbmQgeSByZXByZXNlbnRpbmcgdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBtb3VzZSBjbGljaworICAgICAgICAgICAgICAgIGZvciB0aGUgaW1hZ2UuICBBIHdheSBvZiByZXRyaWV2aW5nIHRoZXNlIHZhbHVlcyB0aHJvdWdoIGEKKyAgICAgICAgICAgICAgICBmb3JtIGJlYW4gaXMgdG8gZGVmaW5lIGdldFgoKSwgZ2V0WSgpLCBzZXRYKCksIGFuZCBzZXRZKCkKKyAgICAgICAgICAgICAgICBtZXRob2RzLCBhbmQgc3BlY2lmeSB5b3VyIHByb3BlcnR5IGFzIGEgYmxhbmsgc3RyaW5nCisgICAgICAgICAgICAgICAgKHByb3BlcnR5PSIiKS48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNyYzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIHNvdXJjZSBVUkwgb2YgdGhlIGltYWdlIGZvciB0aGlzIGlucHV0IHRhZy48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNyY0tleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGtleSBvZiB0aGUgbWVzc2FnZSByZXNvdXJjZXMgc3RyaW5nIHNwZWNpZnlpbmcgdGhlCisgICAgICAgICAgICAgICAgc291cmNlIFVSTCBvZiB0aGUgaW1hZ2UgZm9yIHRoaXMgaW5wdXQgdGFnLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgPHA+VGhlIHZhbHVlIHRoYXQgd2lsbCBiZSBzdWJtaXR0ZWQgaWYgdGhpcyBpbWFnZSBidXR0b24KKyAgICAgICAgICAgICAgaXMgcHJlc3NlZC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmltZzwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5JbWdUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5lbXB0eTwvYm9keS1jb250ZW50PgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+UmVuZGVyIGFuIEhUTUwgaW1nIHRhZzwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKworICAgICAgICAgICAgICAgIDxwPlJlbmRlcnMgYW4gSFRNTCA8Y29kZT4mbHQ7aW1nJmd0OzwvY29kZT4gZWxlbWVudCB3aXRoCisgICAgICAgICAgICAgICAgdGhlIGltYWdlIGF0IHRoZSBzcGVjaWZpZWQgVVJMLiAgTGlrZSB0aGUgbGluayB0YWcsIFVSTAorICAgICAgICAgICAgICAgIHJld3JpdGluZyB3aWxsIGJlIGFwcGxpZWQgYXV0b21hdGljYWxseSB0byB0aGUgdmFsdWUKKyAgICAgICAgICAgICAgICBzcGVjaWZpZWQgaW4gPGNvZGU+c3JjPC9jb2RlPiwgPGNvZGU+cGFnZTwvY29kZT4sIG9yCisgICAgICAgICAgICAgICAgPGNvZGU+YWN0aW9uPC9jb2RlPiB0byBtYWludGFpbiBzZXNzaW9uIHN0YXRlCisgICAgICAgICAgICAgICAgaW4gdGhlIGFic2VuY2Ugb2YgY29va2llcy4gIFRoaXMgd2lsbCBhbGxvdyBkeW5hbWljCisgICAgICAgICAgICAgICAgZ2VuZXJhdGlvbiBvZiBhbiBpbWFnZSB3aGVyZSB0aGUgY29udGVudCBkaXNwbGF5ZWQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBpbWFnZSB3aWxsIGJlIHRha2VuIGZyb20gdGhlIGF0dHJpYnV0ZXMgb2YgdGhpcyB0YWcuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+VGhlIGJhc2UgVVJMIGZvciB0aGlzIGltYWdlIGlzIGNhbGN1bGF0ZWQgZGlyZWN0bHkgYmFzZWQgb24KKyAgICAgICAgICAgICAgICB0aGUgdmFsdWUgc3BlY2lmaWVkIGluIDxjb2RlPnNyYzwvY29kZT4sIDxjb2RlPnBhZ2U8L2NvZGU+LCBvcgorICAgICAgICAgICAgICAgIDxjb2RlPmFjdGlvbjwvY29kZT4gb3IgPGNvZGU+cGFnZTwvY29kZT4sCisgICAgICAgICAgICAgICAgb3IgaW5kaXJlY3RseSBieSBsb29raW5nIHVwIGEgbWVzc2FnZSByZXNvdXJjZSBzdHJpbmcgYmFzZWQgb24KKyAgICAgICAgICAgICAgICB0aGUgPGNvZGU+c3JjS2V5PC9jb2RlPiBvciA8Y29kZT5wYWdlS2V5PC9jb2RlPiBhdHRyaWJ1dGVzLgorICAgICAgICAgICAgICAgIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeSBleGFjdGx5IG9uZSBvZiB0aGVzZQorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+Tm9ybWFsbHksIHRoZSA8Y29kZT5zcmM8L2NvZGU+LCA8Y29kZT5wYWdlPC9jb2RlPiwgb3IKKyAgICAgICAgICAgICAgICA8Y29kZT5hY3Rpb248L2NvZGU+IHRoYXQgeW91IHNwZWNpZnkgd2lsbCBiZSBsZWZ0CisgICAgICAgICAgICAgICAgdW5jaGFuZ2VkIChvdGhlciB0aGFuIFVSTCByZXdyaXRpbmcgaWYgbmVjZXNzYXJ5KS4gIEhvd2V2ZXIsCisgICAgICAgICAgICAgICAgdGhlcmUgYXJlIHR3byB3YXlzIHlvdSBjYW4gYXBwZW5kIG9uZSBvciBtb3JlIGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICAgZGVmaW5lZCBxdWVyeSBwYXJhbWV0ZXJzIHRvIHRoZSA8Y29kZT5zcmM8L2NvZGU+IFVSTCAtLQorICAgICAgICAgICAgICAgIHNwZWNpZnkgYSBzaW5nbGUgcGFyYW1ldGVyIHdpdGggdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIChhdCBpdHMgYXNzb2NpYXRlZCBhdHRyaWJ1dGVzIHRvIHNlbGVjdCB0aGUgdmFsdWUpLAorICAgICAgICAgICAgICAgIG9yIHNwZWNpZnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IChhbmQgb3B0aW9uYWwKKyAgICAgICAgICAgICAgICA8Y29kZT5wcm9wZXJ0eTwvY29kZT4pIGF0dHJpYnV0ZXMgdG8gc2VsZWN0IGEKKyAgICAgICAgICAgICAgICA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBiZWFuIHRoYXQgY29udGFpbnMgb25lIG9yIG1vcmUKKyAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgaWRzIGFuZCBjb3JyZXNwb25kaW5nIHZhbHVlcy48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5UbyBzcGVjaWZ5IGEgc2luZ2xlIHBhcmFtZXRlciwgdXNlIHRoZSA8Y29kZT5wYXJhbUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSB0byBkZWZpbmUgdGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRvIGJlCisgICAgICAgICAgICAgICAgc3VibWl0dGVkLiAgVG8gc3BlY2lmeSB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSwgdXNlIG9uZSBvZiB0aGUKKyAgICAgICAgICAgICAgICBmb2xsb3dpbmcgYXBwcm9hY2hlczo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBvbmx5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZTwvZW0+CisgICAgICAgICAgICAgICAgICAgIC0gVGhlIG5hbWVkIEpTUCBiZWFuIChvcHRpb25hbGx5IHNjb3BlZCBieSB0aGUgdmFsdWUgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IGF0dHJpYnV0ZSkgbXVzdCBpZGVudGlmeSBhIHZhbHVlCisgICAgICAgICAgICAgICAgICAgIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIFN0cmluZy48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+U3BlY2lmeSBib3RoIHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGFuZAorICAgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzPC9lbT4gLSBUaGUgc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5IGdldHRlciB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgSlNQIGJlYW4gaWRlbnRpZmllZAorICAgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+KSBhdHRyaWJ1dGVzLCBpbiBvcmRlciB0byBzZWxlY3QKKyAgICAgICAgICAgICAgICAgICAgYSB2YWx1ZSB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgPHA+SWYgeW91IHByZWZlciB0byBzcGVjaWZ5IGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgIGNvbnRhaW5zIGFsbCBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzIHRvIGJlIGFkZGVkIHRvIHRoZQorICAgICAgICAgICAgICAgIGh5cGVybGluaywgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHRlY2huaXF1ZXM6PC9wPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgb25seSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlPC9lbT4gLQorICAgICAgICAgICAgICAgICAgICBUaGUgbmFtZWQgSlNQIGJlYW4gKG9wdGlvbmFsbHkgc2NvcGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgICAgICAgICB0aGUgPGNvZGU+c2NvcGU8L2NvZGU+IGF0dHJpYnV0ZSkgbXVzdCBpZGVudGlmeSBhCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgYm90aCA8Y29kZT5uYW1lPC9jb2RlPiBhbmQKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXM8L2VtPiAtIFRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgZ2V0dGVyIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgYmVhbgorICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVkIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnNjb3BlPC9jb2RlPikgYXR0cmlidXRlcywgaW4gb3JkZXIgdG8gcmV0dXJuIHRoZQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICAgIDxwPkFzIHRoZSA8Y29kZT5NYXA8L2NvZGU+IGlzIHByb2Nlc3NlZCwgdGhlIGtleXMgYXJlIGFzc3VtZWQKKyAgICAgICAgICAgICAgICB0byBiZSB0aGUgbmFtZXMgb2YgcXVlcnkgcGFyYW1ldGVycyB0byBiZSBhcHBlbmRlZCB0byB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5zcmM8L2NvZGU+IFVSTC4gIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBrZXkKKyAgICAgICAgICAgICAgICBtdXN0IGJlIGVpdGhlciBhIFN0cmluZyBvciBhIFN0cmluZyBhcnJheSByZXByZXNlbnRpbmcgdGhlCisgICAgICAgICAgICAgICAgcGFyYW1ldGVyIHZhbHVlKHMpLCBvciBhbiBvYmplY3Qgd2hvc2UgdG9TdHJpbmcoKSBtZXRob2QKKyAgICAgICAgICAgICAgICB3aWxsIGJlIGNhbGxlZC4gIElmIGEgU3RyaW5nIGFycmF5IGlzIHNwZWNpZmllZCwgbW9yZSB0aGFuCisgICAgICAgICAgICAgICAgb25lIHZhbHVlIGZvciB0aGUgc2FtZSBxdWVyeSBwYXJhbWV0ZXIgbmFtZSB3aWxsIGJlCisgICAgICAgICAgICAgICAgY3JlYXRlZC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5Zb3UgY2FuIHNwZWNpZnkgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGltYWdlICh3aGljaAorICAgICAgICAgICAgICAgIG1vc3QgYnJvd3NlcnMgZGlzcGxheSBhcyBwb3AtdXAgdGV4dCBibG9jayB3aGVuIHRoZSB1c2VyCisgICAgICAgICAgICAgICAgaG92ZXJzIHRoZSBtb3VzZSBvdmVyIHRoaXMgaW1hZ2UpIGVpdGhlciBkaXJlY3RseSwgdGhyb3VnaAorICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5hbHQ8L2NvZGU+IGF0dHJpYnV0ZSwgb3IgaW5kaXJlY3RseSBmcm9tIGEgbWVzc2FnZQorICAgICAgICAgICAgICAgIHJlc291cmNlcyBidW5kbGUsIHVzaW5nIHRoZSA8Y29kZT5idW5kbGU8L2NvZGU+IGFuZAorICAgICAgICAgICAgICAgIDxjb2RlPmFsdEtleTwvY29kZT4gYXR0cmlidXRlcy48L3A+CisKKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsaWduPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPldoZXJlIHRoZSBpbWFnZSBpcyBhbGlnbmVkIHRvLiAgQ2FuIGJlIG9uZSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgIGZvbGxvd2luZyBhdHRyaWJ1dGVzOjwvcD4KKyAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICA8bGk+bGVmdCAtIGxlZnQganVzdGlmeSwgd3JhcHBpbmcgdGV4dCBvbiByaWdodDwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT5yaWdodCAtcmlnaHQganVzdGlmeSwgd3JhcHBpbmcgdGVzdCBvbiBsZWZ0PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPnRvcCAtIGFsaWducyB0aGUgaW1hZ2Ugd2l0aCB0aGUgdG9wIG9mIHRoZSB0ZXh0IG9uCisgICAgICAgICAgICAgICAgICAgICAgICB0aGUgc2FtZSByb3c8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+bWlkZGxlIC0gYWxpZ25zIHRoZSBpbWFnZSdzIHZlcnRpY2FsIGNlbnRlciB3aXRoIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCBiYXNlIGxpbmU8L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+Ym90dG9tIC0gYWxpZ25zIHRoZSBpbWFnZSB3aXRoIHRoZSBib3R0b20gb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0J3MgYmFzZSBsaW5lPC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPnRleHR0b3AgLSBhbGlnbnMgdGhlIGltYWdlJ3MgdG9wIHdpdGggdGhhdCBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgZm9udCBvbiB0aGUgc2FtZSBsaW5lPC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpPmFic21pZGRsZSAtIGFsaWducyB0aGUgaW1hZ2UncyB2ZXJ0aWNhbCBjZW50ZXIgd2l0aCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGFic29sdXRlIGNlbnRlciBvZiB0aGUgdGV4dDwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT5hYnNib3R0b20gLSBhbGlnbnMgdGhlIGltYWdlIHdpdGggdGhlIGFic29sdXRlIGJvdHRvbQorICAgICAgICAgICAgICAgICAgICAgICAgb2YgdGhlIHRleHQgZm9udCBvbiB0aGUgc2FtZSByb3c8L2xpPgorICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+QW5kIGFsdGVybmF0aXZlIHRleHQgdG8gYmUgZGlzcGxheWVkIGluIGJyb3dzZXJzIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgIGRvbid0IHN1cHBvcnQgZ3JhcGhpY3MuICBBbHNvIHVzZWQgb2Z0ZW4gYXMgdHlwZSBvZgorICAgICAgICAgICAgICAgICAgICAgY29udGV4dCBoZWxwIG92ZXIgaW1hZ2VzLjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5ib3JkZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHdpZHRoIG9mIHRoZSBib3JkZXIgc3Vycm91bmRpbmcgdGhlIGltYWdlLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGUga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5oZWlnaHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGhlaWdodCBvZiB0aGUgaW1hZ2UgYmVpbmcgZGlzcGxheWVkLiAgVGhpcyBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAgICAgIGlzIHZlcnkgbmljZSB0byBzcGVjaWZ5IChhbG9uZyB3aXRoIDxjb2RlPndpZHRoPC9jb2RlPikKKyAgICAgICAgICAgICAgICAgICAgIHRvIGhlbHAgdGhlIGJyb3dzZXIgcmVuZGVyIHRoZSBwYWdlIGZhc3Rlci48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aHNwYWNlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhbW91bnQgb2YgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gdGhlIGljb24gYW5kCisgICAgICAgICAgICAgICAgICAgICB0aGUgdGV4dC4gIFRoZSB0ZXh0IG1heSBiZSBpbiB0aGUgc2FtZSBwYXJhZ3JhcGgsIG9yCisgICAgICAgICAgICAgICAgICAgICBiZSB3cmFwcGVkIGFyb3VuZCB0aGUgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmltYWdlTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NyaXB0YWJsZSBuYW1lIHRvIGJlIGRlZmluZWQgd2l0aGluIHRoaXMgcGFnZSwgc28KKyAgICAgICAgICAgICAgICAgIHRoYXQgeW91IGNhbiByZWZlcmVuY2UgaXQgd2l0aCBpbnRyYS1wYWdlIHNjcmlwdHMuICBJbiBvdGhlcgorICAgICAgICAgICAgICAgICAgd29yZHMsIHRoZSB2YWx1ZSBzcGVjaWZpZWQgaGVyZSB3aWxsIHJlbmRlciBhICJuYW1lIiBlbGVtZW50CisgICAgICAgICAgICAgICAgICBpbiB0aGUgZ2VuZXJhdGVkIGltYWdlIHRhZy48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aXNtYXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIHNlcnZlci1zaWRlIG1hcCB0aGF0IHRoaXMgaW1hZ2UgYmVsb25ncworICAgICAgICAgICAgICAgICAgICAgdG8uPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxvY2FsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBvciBzZXNzaW9uIExvY2FsZSBhdHRyaWJ1dGUgdXNlZAorICAgICAgICAgICAgICAgICAgdG8gbG9vayB1cCBpbnRlcm5hdGlvbmFsaXplZCBtZXNzYWdlcy48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgY29udGFpbnMgYSA8Y29kZT5NYXA8L2NvZGU+CisgICAgICAgICAgICAgICAgICByZXByZXNlbnRpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgICAgaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzCisgICAgICAgICAgICAgICAgICBjYWxsZWQgdG8gcmV0dXJuIGEgPGNvZGU+TWFwPC9jb2RlPiAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgICBpcyBzcGVjaWZpZWQpLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBrZXkgZG93biBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBrZXkgcHJlc3MgZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEga2V5IHVwIGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICAgIGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQgc3JjIFVSTC4gIFRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGlzCisgICAgICAgICAgICAgICAgICBkZWZpbmVkIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGFuZCAob3B0aW9uYWwpCisgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzLCBvcHRpb25hbGx5IHNjb3BlZCBieQorICAgICAgICAgICAgICAgICAgdGhlIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IGF0dHJpYnV0ZTwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYWdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtb2R1bGUtcmVsYXRpdmUgcGF0aCwgc3RhcnRpbmcgd2l0aCBhIHNsYXNoLCBvZgorICAgICAgICAgICAgICAgICAgdGhlIGltYWdlIHRvIGJlIGRpc3BsYXllZCBieSB0aGlzIHRhZy4gIFRoZSByZW5kZXJlZAorICAgICAgICAgICAgICAgICAgVVJMIGZvciB0aGlzIGltYWdlIHdpbGwgYXV0b21hdGljYWxseSBwcmVwZW5kIHRoZSBjb250ZXh0CisgICAgICAgICAgICAgICAgICBwYXRoIG9mIHRoaXMgd2ViIGFwcGxpY2F0aW9uIChpbiB0aGUgc2FtZSBtYW5uZXIgYXMgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUgb24gdGhlIGxpbmsgdGFnIHdvcmtzKSwKKyAgICAgICAgICAgICAgICAgIGluIGFkZGl0aW9uIHRvIGFueSBuZWNlc3NhcnkgVVJMIHJld3JpdGluZy4gIFlvdQorICAgICAgICAgICAgICAgICAgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgZWl0aGVyIHRoZSA8Y29kZT5wYWdlPC9jb2RlPgorICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIG9yIHRoZSA8Y29kZT5zcmM8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSBrZXksIGluIHRoZSBtZXNzYWdlIHJlc291cmNlcyBidW5kbGUgbmFtZWQgYnkKKyAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5idW5kbGU8L2NvZGU+IGF0dHJpYnV0ZSwgb2YgdGhlIFN0cmluZyB0byBiZQorICAgICAgICAgICAgICAgICAgdXNlZCBhcyB0aGUgbW9kdWxlLXJlbGF0aXZlIHBhdGggZm9yIHRoaXMgaW1hZ2UuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgIDxwPlRoZSBhY3Rpb24sIHN0YXJ0aW5nIHdpdGggYSBzbGFzaCwgdGhhdCB3aWxsIHJlbmRlcgorICAgICAgICAgICAgICB0aGUgaW1hZ2UgdG8gYmUgZGlzcGxheWVkIGJ5IHRoaXMgdGFnLiAgVGhlIHJlbmRlcmVkCisgICAgICAgICAgICAgIFVSTCBmb3IgdGhpcyBpbWFnZSB3aWxsIGF1dG9tYXRpY2FsbHkgcHJlcGVuZCB0aGUgY29udGV4dAorICAgICAgICAgICAgICBwYXRoIG9mIHRoaXMgd2ViIGFwcGxpY2F0aW9uIChpbiB0aGUgc2FtZSBtYW5uZXIgYXMgdGhlCisgICAgICAgICAgICAgIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlIG9uIHRoZSBsaW5rIHRhZyB3b3JrcyksCisgICAgICAgICAgICAgIGluIGFkZGl0aW9uIHRvIGFueSBuZWNlc3NhcnkgVVJMIHJld3JpdGluZy4gIFlvdQorICAgICAgICAgICAgICA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeSB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiwKKyAgICAgICAgICAgICAgPGNvZGU+cGFnZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBvciB0aGUgPGNvZGU+c3JjPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgCisJCSAgICAgICA8cD5BZGRpdGlvbmFsbHksIHlvdSBjYW4gc3BlY2lmeSBhIDxjb2RlPm1vZHVsZTwvY29kZT4gcHJlZml4IAorCQkJICAgZm9yIGxpbmtpbmcgdG8gb3RoZXIgbW9kdWxlcy48L3A+CisJCQkJCQkgICAKKwkJCSAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tb2R1bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworCQkJCSAgIDxwPlByZWZpeCBuYW1lIG9mIGEgPGNvZGU+TW9kdWxlPC9jb2RlPiB0aGF0CisJCQkJICAgY29udGFpbnMgdGhlIGFjdGlvbiBtYXBwaW5nIGZvciB0aGUgPGNvZGU+QWN0aW9uPC9jb2RlPgorCQkJCSAgIHRoYXQgaXMgc3BlY2lmaWVkIGJ5IHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZS4KKwkJCQkgICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgYW4gPGNvZGU+YWN0aW9uPC9jb2RlPiAKKwkJCQkgICBhdHRyaWJ1dGUgZm9yIHRoaXMgdG8gaGF2ZSBhbiBlZmZlY3QuPC9wPgorCQkJCisJCQkJICAgPHA+PHN0cm9uZz5Ob3RlOiA8L3N0cm9uZz5Vc2UgIiIgdG8gbWFwIHRvIHRoZSBkZWZhdWx0IG1vZHVsZS48L3A+CisJCQkgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbU5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBKU1AgYmVhbiB0aGF0IGlzIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlCisgICAgICAgICAgICAgICAgICB2YWx1ZSBmb3IgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIG5hbWVkIGJ5IDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQCisgICAgICAgICAgICAgICAgICBiZWFuIHdob3NlIHByb3BlcnR5IGdldHRlciBpcyBjYWxsZWQgdG8gcmV0dXJuIGEgU3RyaW5nCisgICAgICAgICAgICAgICAgICAoaWYgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkKS4gIFRoZSBKU1AgYmVhbgorICAgICAgICAgICAgICAgICAgaXMgY29uc3RyYWluZWQgdG8gdGhlIGJlYW4gc2NvcGUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gcHJvcGVydHksIGlmIGl0IGlzIHNwZWNpZmllZC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1Qcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlLCB3aG9zZSByZXR1cm4gdmFsdWUgbXVzdAorICAgICAgICAgICAgICAgICAgYmUgYSBTdHJpbmcgY29udGFpbmluZyB0aGUgdmFsdWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyCisgICAgICAgICAgICAgICAgICAobmFtZWQgYnkgdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+IGF0dHJpYnV0ZSkgdGhhdCB3aWxsIGJlCisgICAgICAgICAgICAgICAgICBkeW5hbWljYWxseSBhZGRlZCB0byB0aGlzIHNyYyBVUkwuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtU2NvcGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICAgIGFsbCBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hvc2UgcmV0dXJuIHZhbHVlIG11c3QgYmUKKyAgICAgICAgICAgICAgICAgIGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcXVlcnkgcGFyYW1ldGVycworICAgICAgICAgICAgICAgICAgdG8gYmUgYWRkZWQgdG8gdGhlIHNyYyBVUkwuICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+CisgICAgICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgaWYgeW91IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgIHRoaXMgYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwgYWxsCisgICAgICAgICAgICAgICAgICBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zcmM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIFVSTCB0byB3aGljaCB0aGlzIGltYWdlIHdpbGwgYmUgdHJhbnNmZXJyZWQgZnJvbQorICAgICAgICAgICAgICAgICAgVGhpcyBpbWFnZSBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkIGluIHRoZQorICAgICAgICAgICAgICAgICAgdGFnIGRlc2NyaXB0aW9uLiAgVGhpcyB2YWx1ZSB3aWxsIGJlIHVzZWQgdW5tb2RpZmllZCAob3RoZXIKKyAgICAgICAgICAgICAgICAgIHRoYW4gcG90ZW50aWFsIFVSTCByZXdyaXRpbmcpIGFzIHRoZSB2YWx1ZSBvZiB0aGUgInNyYyIKKyAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbiB0aGUgcmVuZGVyZWQgdGFnLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPgorICAgICAgICAgICAgICAgICAgc3BlY2lmeSBlaXRoZXIgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZSBvciB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnNyYzwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zcmNLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2Uga2V5LCBpbiB0aGUgbWVzc2FnZSByZXNvdXJjZXMgYnVuZGxlIG5hbWVkIGJ5CisgICAgICAgICAgICAgICAgICB0aGUgPGNvZGU+YnVuZGxlPC9jb2RlPiBhdHRyaWJ1dGUsIG9mIHRoZSBTdHJpbmcgdG8gYmUKKyAgICAgICAgICAgICAgICAgIHVzZWQgYXMgdGhlIFVSTCBvZiB0aGlzIGltYWdlLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dXNlTG9jYWxFbmNvZGluZzwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICA8cD5JZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIExvY2FsQ2hhcmFjdGVyRW5jb2Rpbmcgd2lsbCBiZQorICAgICAgICAgICAgICB1c2VkLCB0aGF0IGlzLCB0aGUgY2hhcmFjdGVyRW5jb2Rpbmcgc2V0IHRvIHRoZSBIdHRwU2VydmxldFJlc3BvbnNlLAorICAgICAgICAgICAgICBhcyBwcmVmZXJlZCBjaGFyYWN0ZXIgZW5jb2RpbmcgcmF0aGVyIHRoYW4gVVRGLTgsIHdoZW4KKyAgICAgICAgICAgICAgVVJMRW5jb2RpbmcgaXMgZG9uZSBvbiBwYXJhbWV0ZXJzIG9mIHRoZSBVUkwuPC9wPgorICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dXNlbWFwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIHRoZSBtYXAgYXMgZGVmaW5lZCB3aXRoaW4gdGhpcyBwYWdlIGZvcgorICAgICAgICAgICAgICAgICAgICAgbWFwcGluZyBob3Qtc3BvdCBhcmVhcyBvZiB0aGlzIGltYWdlLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52c3BhY2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFtb3VudCBvZiB2ZXJ0aWNhbCBzcGFjaW5nIGJldHdlZW4gdGhlIGljb24gYW5kCisgICAgICAgICAgICAgICAgICAgICB0aGUgdGV4dCwgYWJvdmUgYW5kIGJlbG93LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT53aWR0aDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgd2lkdGggb2YgdGhlIGltYWdlIGJlaW5nIGRpc3BsYXllZC4gIFRoaXMgcGFyYW1ldGVyCisgICAgICAgICAgICAgICAgICAgICBpcyB2ZXJ5IG5pY2UgdG8gc3BlY2lmeSAoYWxvbmcgd2l0aCA8Y29kZT5oZWlnaHQ8L2NvZGU+KQorICAgICAgICAgICAgICAgICAgICAgdG8gaGVscCB0aGUgYnJvd3NlciByZW5kZXIgdGhlIHBhZ2UgZmFzdGVyLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+amF2YXNjcmlwdDwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz4KKyAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkphdmFzY3JpcHRWYWxpZGF0b3JUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5lbXB0eTwvYm9keS1jb250ZW50PgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgSmF2YVNjcmlwdCB2YWxpZGF0aW9uIGJhc2VkIG9uIHRoZQorICAgICAgICAgICAgdmFsaWRhdGlvbiBydWxlcyBsb2FkZWQgYnkgdGhlIFZhbGlkYXRvclBsdWdJbi4KKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgUmVuZGVyIEphdmFTY3JpcHQgdmFsaWRhdGlvbiBiYXNlZCBvbiB0aGUKKyAgICAgICAgICAgICAgICB2YWxpZGF0aW9uIHJ1bGVzIGxvYWRlZCBieSB0aGUgPGNvZGU+VmFsaWRhdG9yUGx1Z0luPC9jb2RlPi4KKyAgICAgICAgICAgICAgICBUaGUgc2V0IG9mIHZhbGlkYXRpb24gcnVsZXMgdGhhdCBzaG91bGQgYmUgZ2VuZXJhdGVkIGlzIGJhc2VkCisgICAgICAgICAgICAgICAgb24gdGhlIGZvcm1OYW1lIGF0dHJpYnV0ZSBwYXNzZWQgaW4sIHdoaWNoIHNob3VsZCBtYXRjaAorICAgICAgICAgICAgICAgIHRoZSBuYW1lIGF0dHJpYnV0ZSBvZiB0aGUgZm9ybSBlbGVtZW50IGluIHRoZSB4bWwgZmlsZS4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgIFRoZSBkeW5hbWljSmF2YXNjcmlwdCBhbmQgc3RhdGljSmF2YXNjcmlwdCBhdHRyaWJ1dGVzCisgICAgICAgICAgICAgICAgZGVmYXVsdCB0byB0cnVlLCBidXQgaWYgZHluYW1pY0phdmFzY3JpcHQgaXMgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+CisgICAgICAgICAgICAgICAgYW5kIHN0YXRpY0phdmFzY3JpcHQgaXMgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiB0aGVuIG9ubHkKKyAgICAgICAgICAgICAgICB0aGUgZHluYW1pYyBKYXZhU2NyaXB0IHdpbGwgYmUgcmVuZGVyZWQuICBJZiBkeW5hbWljSmF2YXNjcmlwdAorICAgICAgICAgICAgICAgIGlzIHNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4KKyAgICAgICAgICAgICAgICBhbmQgc3RhdGljSmF2YXNjcmlwdCBpcyBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBvbmx5CisgICAgICAgICAgICAgICAgdGhlIHN0YXRpYyBKYXZhU2NyaXB0IHdpbGwgYmUgcmVuZGVyZWQgd2hpY2ggY2FuIHRoZW4gYmUgcHV0IGluCisgICAgICAgICAgICAgICAgc2VwYXJhdGUgSlNQIHBhZ2Ugc28gdGhlIGJyb3dzZXIgY2FuIGNhY2hlIHRoZSBzdGF0aWMgSmF2YVNjcmlwdC4KKyAgICAgICAgICAgIDwvcD4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5jZGF0YTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICAgIElmIHNldCB0byAidHJ1ZSIgYW5kIFhIVE1MIGhhcyBiZWVuIGVuYWJsZWQsIHRoZSBKYXZhU2NyaXB0IHdpbGwKKyAgICAgICAgICAgICAgICAgIGJlIHdyYXBwZWQgaW4gYSBDREFUQSBzZWN0aW9uIHRvIHByZXZlbnQgWE1MIHBhcnNpbmcuIFRoZSBkZWZhdWx0IGlzCisgICAgICAgICAgICAgICAgICAidHJ1ZSIgdG8gY29tcGx5IHdpdGggdGhlIFczQydzIHJlY29tbWVuZGF0aW9uLgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjE8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmR5bmFtaWNKYXZhc2NyaXB0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICAgIFdoZXRoZXIgb3Igbm90IHRvIHJlbmRlciB0aGUgZHluYW1pYyBKYXZhU2NyaXB0LgorICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gPGNvZGU+dHJ1ZTwvY29kZT4uCisgICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Zm9ybU5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICBUaGUga2V5IChmb3JtIG5hbWUpIHRvIHJldHJpZXZlIGEgc3BlY2lmaWMKKyAgICAgICAgICAgICAgICAgIHNldCBvZiB2YWxpZGF0aW9uIHJ1bGVzLiAgSWYgImR5bmFtaWNKYXZhc2NyaXB0IiBpcyBzZXQgCisgICAgICAgICAgICAgICAgICB0byA8Y29kZT50cnVlPC9jb2RlPiBhbmQgZm9ybU5hbWUgaXMgbWlzc2luZyBvciBpcyBub3QgCisgICAgICAgICAgICAgICAgICByZWNvZ25pemVkIGJ5IHRoZSA8Y29kZT5WYWxpZGF0b3JQbHVnSW48L2NvZGU+LCBhIAorICAgICAgICAgICAgICAgICAgSnNwRXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duLgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1ldGhvZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICAgIFRoZSBhbHRlcm5hdGUgSmF2YVNjcmlwdCBtZXRob2QgbmFtZSB0byBiZSB1c2VkCisgICAgICAgICAgICAgICAgICBpbnN0ZWFkIG9mIHRoZSBvZiB0aGUgZGVmYXVsdC4gIFRoZSBkZWZhdWx0IGlzCisgICAgICAgICAgICAgICAgICAndmFsaWRhdGUnIGNvbmNhdGVuYXRlZCBpbiBmcm9udCBvZgorICAgICAgICAgICAgICAgICAgdGhlIGtleSAoZm9ybSBuYW1lKSBwYXNzZWQgaW4gKGV4OiB2YWxpZGF0ZVJlZ2lzdHJhdGlvbkZvcm0pLgorICAgICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+aW50PC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAgICAgICBUaGUgY3VycmVudCBwYWdlIG9mIGEgc2V0IG9mIHZhbGlkYXRpb24gcnVsZXMKKyAgICAgICAgICAgICAgICAgIGlmIHRoZSBwYWdlIGF0dHJpYnV0ZSBmb3IgdGhlIGZpZWxkIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAgIGluIHRoZSB4bWwgZmlsZSBpcyBpbiB1c2UuCisgICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2NyaXB0TGFuZ3VhZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgJmx0O3NjcmlwdCZndDsgZWxlbWVudCB3aWxsIG5vdCBjb250YWluIGEgbGFuZ3VhZ2UgYXR0cmlidXRlCisgICAgICAgICAgICAgICAgd2hlbiB0aGlzIGlzIHNldCB0byBmYWxzZS4gIFRoZSBkZWZhdWx0IGlzIHRydWUgYnV0IHRoaXMgcHJvcGVydHkgaXMgaWdub3JlZAorICAgICAgICAgICAgICAgIGluIFhIVE1MIG1vZGUuCisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMjwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3JjPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgIDxwPgorICAgICAgICAgICAgICAgICAgVGhlIHNyYyBhdHRyaWJ1dGUncyB2YWx1ZSB3aGVuIGRlZmluaW5nCisgICAgICAgICAgICAgICAgICB0aGUgaHRtbCBzY3JpcHQgZWxlbWVudC4KKyAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdGF0aWNKYXZhc2NyaXB0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICAgIFdoZXRoZXIgb3Igbm90IHRvIHJlbmRlciB0aGUgc3RhdGljIEphdmFTY3JpcHQuCisgICAgICAgICAgICAgICAgICBEZWZhdWx0cyB0byA8Y29kZT50cnVlPC9jb2RlPi4KKyAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5odG1sQ29tbWVudDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICAgIFdoZXRoZXIgb3Igbm90IHRvIGVuY2xvc2UgdGhlIGphdmFzY3JpcHQKKyAgICAgICAgICAgICAgICAgIHdpdGggSFRNTCBjb21tZW50cy4gIFRoaXMgYXR0cmlidXRlIGlzIGlnbm9yZWQgaW4gWEhUTUwKKyAgICAgICAgICAgICAgICAgIG1vZGUgYmVjYXVzZSB0aGUgc2NyaXB0IHdvdWxkIGJlIGRlbGV0ZWQgYnkgdGhlIFhNTCBwYXJzZXIuICBTZWUKKyAgICAgICAgICAgICAgICAgIHRoZSBjZGF0YSBhdHRyaWJ1dGUgZm9yIGRldGFpbHMgb24gaGlkaW5nIHNjcmlwdHMgZnJvbSBYTUwKKyAgICAgICAgICAgICAgICAgIHBhcnNlcnMuIAorICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gPGNvZGU+dHJ1ZTwvY29kZT4uCisgICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNzwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmxpbms8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuTGlua1RhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+UmVuZGVyIGFuIEhUTUwgYW5jaG9yIG9yIGh5cGVybGluazwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKworICAgICAgICAgICAgICAgIDxwPlJlbmRlcnMgYW4gSFRNTCA8Y29kZT4mbHQ7YSZndDs8L2NvZGU+IGVsZW1lbnQgYXMgYW4KKyAgICAgICAgICAgICAgICBhbmNob3IgZGVmaW5pdGlvbiAoaWYgImxpbmtOYW1lIiBpcyBzcGVjaWZpZWQpIG9yIGFzIGEKKyAgICAgICAgICAgICAgICBoeXBlcmxpbmsgdG8gdGhlIHNwZWNpZmllZCBVUkwuICBVUkwgcmV3cml0aW5nIHdpbGwgYmUKKyAgICAgICAgICAgICAgICBhcHBsaWVkIGF1dG9tYXRpY2FsbHksIHRvIG1haW50YWluIHNlc3Npb24gc3RhdGUgaW4gdGhlCisgICAgICAgICAgICAgICAgYWJzZW5jZSBvZiBjb29raWVzLiAgVGhlIGNvbnRlbnQgZGlzcGxheWVkIGZvciB0aGlzCisgICAgICAgICAgICAgICAgaHlwZXJsaW5rIHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgYm9keSBvZiB0aGlzIHRhZy48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5UaGUgYmFzZSBVUkwgZm9yIHRoaXMgaHlwZXJsaW5rIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24KKyAgICAgICAgICAgICAgICB3aGljaCBvZiB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgeW91IHNwZWNpZnkgKHlvdSBtdXN0CisgICAgICAgICAgICAgICAgc3BlY2lmeSBleGFjdGx5IG9uZSBvZiB0aGVtKTo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+Zm9yd2FyZDwvZW0+IC0gVXNlIHRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSBhcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBhIGdsb2JhbCA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiB0byBiZSBsb29rZWQKKyAgICAgICAgICAgICAgICAgICAgdXAsIGFuZCB1c2UgdGhlIG1vZHVsZS1yZWxhdGl2ZSBvciBjb250ZXh0LXJlbGF0aXZlCisgICAgICAgICAgICAgICAgICAgIFVSSSBmb3VuZCB0aGVyZS4gSWYgdGhlIGZvcndhcmQgaXMgbW9kdWxlLXJlbGF0aXZlIHRoZW4KKyAgICAgICAgICAgICAgICAgICAgaXQgbXVzdCBwb2ludCB0byBhbiBhY3Rpb24gYW5kIE5PVCB0byBhIHBhZ2UuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPmFjdGlvbjwvZW0+IC0gVXNlIHRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSBhcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBhIDxjb2RlPkFjdGlvbjwvY29kZT4gdG8gYmUgbG9va2VkCisgICAgICAgICAgICAgICAgICAgIHVwLCBhbmQgdXNlIHRoZSBtb2R1bGUtcmVsYXRpdmUgb3IgY29udGV4dC1yZWxhdGl2ZQorICAgICAgICAgICAgICAgICAgICBVUkkgZm91bmQgdGhlcmUuPC9saT4KKyAgICAgICAgICAgICAgICAgPGxpPjxlbT5ocmVmPC9lbT4gLSBVc2UgdGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIHVuY2hhbmdlZC4KKyAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgIDxsaT48ZW0+cGFnZTwvZW0+IC0gVXNlIHRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSBhcyBhCisgICAgICAgICAgICAgICAgICAgIG1vZHVsZS1yZWxhdGl2ZSBVUkksIGFuZCBnZW5lcmF0ZSBhIHNlcnZlci1yZWxhdGl2ZQorICAgICAgICAgICAgICAgICAgICBVUkkgYnkgaW5jbHVkaW5nIHRoZSBjb250ZXh0IHBhdGggYW5kIG1vZHVsZQorICAgICAgICAgICAgICAgICAgICBwcmVmaXguPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgPHA+Tm9ybWFsbHksIHRoZSBoeXBlcmxpbmsgeW91IHNwZWNpZnkgd2l0aCBvbmUgb2YgdGhlCisgICAgICAgICAgICAgICAgYXR0cmlidXRlcyBkZXNjcmliZWQgaW4gdGhlIHByZXZpb3VzIHBhcmFncmFwaCB3aWxsIGJlIGxlZnQKKyAgICAgICAgICAgICAgICB1bmNoYW5nZWQgKG90aGVyIHRoYW4gVVJMIHJld3JpdGluZyBpZiBuZWNlc3NhcnkpLiAgSG93ZXZlciwKKyAgICAgICAgICAgICAgICB0aGVyZSBhcmUgdHdvIHdheXMgeW91IGNhbiBhcHBlbmQgb25lIG9yIG1vcmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICBkZWZpbmVkIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gdGhlIGh5cGVybGluayAtLSBzcGVjaWZ5IGEgc2luZ2xlCisgICAgICAgICAgICAgICAgcGFyYW1ldGVyIHdpdGggdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+IGF0dHJpYnV0ZSAoYW5kIGl0cworICAgICAgICAgICAgICAgIGFzc29jaWF0ZWQgYXR0cmlidXRlcyB0byBzZWxlY3QgdGhlIHZhbHVlKSwgb3Igc3BlY2lmeSB0aGUKKyAgICAgICAgICAgICAgICA8Y29kZT5uYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsIDxjb2RlPnByb3BlcnR5PC9jb2RlPikKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzIHRvIHNlbGVjdCBhIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGJlYW4gdGhhdAorICAgICAgICAgICAgICAgIGNvbnRhaW5zIG9uZSBvciBtb3JlIHBhcmFtZXRlciBpZHMgYW5kIGNvcnJlc3BvbmRpbmcgdmFsdWVzLgorICAgICAgICAgICAgICAgIDwvcD4KKworICAgICAgICAgICAgICAgIDxwPlRvIHNwZWNpZnkgYSBzaW5nbGUgcGFyYW1ldGVyLCB1c2UgdGhlIDxjb2RlPnBhcmFtSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIHRvIGRlZmluZSB0aGUgbmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdG8gYmUKKyAgICAgICAgICAgICAgICBzdWJtaXR0ZWQuICBUbyBzcGVjaWZ5IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlLCB1c2Ugb25lIG9mIHRoZQorICAgICAgICAgICAgICAgIGZvbGxvd2luZyBhcHByb2FjaGVzOjwvcD4KKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IG9ubHkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlPC9lbT4KKyAgICAgICAgICAgICAgICAgICAgLSBUaGUgbmFtZWQgSlNQIGJlYW4gKG9wdGlvbmFsbHkgc2NvcGVkIGJ5IHRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gYXR0cmlidXRlKSBtdXN0IGlkZW50aWZ5IGEgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgU3RyaW5nLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5TcGVjaWZ5IGJvdGggdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYW5kCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXM8L2VtPiAtIFRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgZ2V0dGVyIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgSlNQIGJlYW4KKyAgICAgICAgICAgICAgICAgICAgaWRlbnRpZmllZCBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+KSBhdHRyaWJ1dGVzLCBpbiBvcmRlciB0byBzZWxlY3QKKyAgICAgICAgICAgICAgICAgICAgYSB2YWx1ZSB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBTdHJpbmcuPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgPHA+SWYgeW91IHByZWZlciB0byBzcGVjaWZ5IGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgIGNvbnRhaW5zIGFsbCBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXJzIHRvIGJlIGFkZGVkIHRvIHRoZQorICAgICAgICAgICAgICAgIGh5cGVybGluaywgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHRlY2huaXF1ZXM6PC9wPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgb25seSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlPC9lbT4gLQorICAgICAgICAgICAgICAgICAgICBUaGUgbmFtZWQgSlNQIGJlYW4gKG9wdGlvbmFsbHkgc2NvcGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgICAgICAgICB0aGUgPGNvZGU+c2NvcGU8L2NvZGU+IGF0dHJpYnV0ZSkgbXVzdCBpZGVudGlmeSBhCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPlNwZWNpZnkgYm90aCA8Y29kZT5uYW1lPC9jb2RlPiBhbmQKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXM8L2VtPiAtIFRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgZ2V0dGVyIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBvbiB0aGUgYmVhbgorICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVkIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiAoYW5kIG9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgIDxjb2RlPnNjb3BlPC9jb2RlPikgYXR0cmlidXRlcywgaW4gb3JkZXIgdG8gcmV0dXJuIHRoZQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5qYXZhLnV0aWwuTWFwPC9jb2RlPiBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworICAgICAgICAgICAgICAgIDxwPkFzIHRoZSA8Y29kZT5NYXA8L2NvZGU+IGlzIHByb2Nlc3NlZCwgdGhlIGtleXMgYXJlIGFzc3VtZWQKKyAgICAgICAgICAgICAgICB0byBiZSB0aGUgbmFtZXMgb2YgcXVlcnkgcGFyYW1ldGVycyB0byBiZSBhcHBlbmRlZCB0byB0aGUKKyAgICAgICAgICAgICAgICBoeXBlcmxpbmsuICBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGVhY2gga2V5IG11c3QgYmUgZWl0aGVyCisgICAgICAgICAgICAgICAgYSBTdHJpbmcgb3IgYSBTdHJpbmcgYXJyYXkgcmVwcmVzZW50aW5nIHRoZSBwYXJhbWV0ZXIgdmFsdWUocyksCisgICAgICAgICAgICAgICAgb3IgYW4gb2JqZWN0IHdob3NlIHRvU3RyaW5nKCkgbWV0aG9kIHdpbGwgYmUgY2FsbGVkLgorICAgICAgICAgICAgICAgIElmIGEgU3RyaW5nIGFycmF5IGlzIHNwZWNpZmllZCwgbW9yZSB0aGFuIG9uZSB2YWx1ZSBmb3IgdGhlCisgICAgICAgICAgICAgICAgc2FtZSBxdWVyeSBwYXJhbWV0ZXIgbmFtZSB3aWxsIGJlIGNyZWF0ZWQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+QWRkaXRpb25hbGx5LCB5b3UgY2FuIHJlcXVlc3QgdGhhdCB0aGUgY3VycmVudCB0cmFuc2FjdGlvbgorICAgICAgICAgICAgICAgIGNvbnRyb2wgdG9rZW4sIGlmIGFueSwgYmUgaW5jbHVkZWQgaW4gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsKKyAgICAgICAgICAgICAgICBieSBzZXR0aW5nIHRoZSA8Y29kZT50cmFuc2FjdGlvbjwvY29kZT4gYXR0cmlidXRlIHRvCisgICAgICAgICAgICAgICAgPGNvZGU+dHJ1ZTwvY29kZT4uCisgICAgICAgICAgICAgICAgWW91IGNhbiBhbHNvIHJlcXVlc3QgdGhhdCBhbiBhbmNob3IgKCIjeHh4IikgYmUgYWRkZWQgdG8gdGhlCisgICAgICAgICAgICAgICAgZW5kIG9mIHRoZSBVUkwgdGhhdCBpcyBjcmVhdGVkIGJ5IGFueSBvZiB0aGUgYWJvdmUgbWVjaGFuaXNtcywKKyAgICAgICAgICAgICAgICBieSB1c2luZyB0aGUgPGNvZGU+YW5jaG9yPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorCisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGtleWJvYXJkIGNoYXJhY3RlciB1c2VkIHRvIG1vdmUgZm9jdXMgaW1tZWRpYXRlbHkKKyAgICAgICAgICAgICAgICAgIHRvIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWN0aW9uPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkxvZ2ljYWwgbmFtZSBvZiBhIDxjb2RlPkFjdGlvbjwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgICAgY29udGFpbnMgdGhlIGFjdHVhbCBjb250ZW50LXJlbGF0aXZlIFVSSSBvZiB0aGUgZGVzdGluYXRpb24KKyAgICAgICAgICAgICAgICAgIG9mIHRoaXMgdHJhbnNmZXIuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICAgIG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkCisgICAgICAgICAgICAgICAgICBpbiB0aGUgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlIDxjb2RlPmxpbmtOYW1lPC9jb2RlPgorICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4gYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgIAorCQkgICAgICAgPHA+QWRkaXRpb25hbGx5LCB5b3UgY2FuIHNwZWNpZnkgYSA8Y29kZT5tb2R1bGU8L2NvZGU+IHByZWZpeCAKKwkJCSAgIGZvciBsaW5raW5nIHRvIG90aGVyIG1vZHVsZXMuPC9wPgorCQkJCQkJICAgCisJCQkgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bW9kdWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKwkJCQkgICA8cD5QcmVmaXggbmFtZSBvZiBhIDxjb2RlPk1vZHVsZTwvY29kZT4gdGhhdAorCQkJCSAgIGNvbnRhaW5zIHRoZSBhY3Rpb24gbWFwcGluZyBmb3IgdGhlIDxjb2RlPkFjdGlvbjwvY29kZT4KKwkJCQkgICB0aGF0IGlzIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUuCisJCQkJICAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGFuIDxjb2RlPmFjdGlvbjwvY29kZT4gCisJCQkJICAgYXR0cmlidXRlIGZvciB0aGlzIHRvIGhhdmUgYW4gZWZmZWN0LjwvcD4KKwkJCQorCQkJCSAgIDxwPjxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+VXNlICIiIHRvIG1hcCB0byB0aGUgZGVmYXVsdCBtb2R1bGUuPC9wPgorCQkJICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YW5jaG9yPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk9wdGlvbmFsIGFuY2hvciB0YWcgKCIjeHh4IikgdG8gYmUgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgICAgaHlwZXJsaW5rLiAgU3BlY2lmeSB0aGlzIHZhbHVlIDxzdHJvbmc+d2l0aG91dDwvc3Ryb25nPiBhbnkKKyAgICAgICAgICAgICAgICAgICIjIiBjaGFyYWN0ZXIuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZvcndhcmQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TG9naWNhbCBuYW1lIG9mIGEgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRoYXQKKyAgICAgICAgICAgICAgICAgIGNvbnRhaW5zIHRoZSBhY3R1YWwgY29udGVudC1yZWxhdGl2ZSBVUkkgb2YgdGhlIGRlc3RpbmF0aW9uCisgICAgICAgICAgICAgICAgICAgb2YgdGhpcyB0cmFuc2Zlci4gIFRoaXMgaHlwZXJsaW5rIG1heSBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkCisgICAgICAgICAgICAgICAgICAgaW4gdGhlIHRhZyBkZXNjcmlwdGlvbi4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gc3BlY2lmeQorICAgICAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZSA8Y29kZT5saW5rTmFtZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5ocmVmPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBVUkwgdG8gd2hpY2ggdGhpcyBoeXBlcmxpbmsgd2lsbCB0cmFuc2ZlciBjb250cm9sCisgICAgICAgICAgICAgICAgICAgaWYgYWN0aXZhdGVkLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5IG1vZGlmaWVkCisgICAgICAgICAgICAgICAgICAgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlIDxjb2RlPmxpbmtOYW1lPC9jb2RlPgorICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+IGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmluZGV4ZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IGluc2lkZSBvZiBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgICAgICBJZiA8Y29kZT50cnVlPC9jb2RlPiB0aGVuIGluZGV4ZWQgcGFyYW1ldGVyIHdpdGggbmFtZSBmcm9tIGluZGV4SWQgYXR0cmlidXRlCisgICAgICAgICAgICAgICAgd2lsbCBiZSBhZGRlZCB0byB0aGUgcXVlcnkgc3RyaW5nLiBJbmRleGVkIHBhcmFtZXRlciBsb29rcyBsaWtlCisgICAgICAgICAgICAgICAgImluZGV4WzMyXSIuIE51bWJlciBpbiBicmFja2V0cyB3aWxsIGJlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgIGZvciBldmVyeSBpdGVyYXRpb24gYW5kIHRha2VuIGZyb20gYW5jZXN0b3IgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQnkgdGhpcyBhdHRyaWJ1dGUgZGlmZmVyZW50IG5hbWUgZm9yIHRoZSBpbmRleGVkIHBhcmFtZXRlciBjYW4gYmUKKyAgICAgICAgICAgICAgICBzcGVjaWZpZWQuIFRha2UgYSBsb29rIHRvIHRoZSAiaW5kZXhlZCIgYXR0cmlidXRlIGZvciBkZXRhaWxzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxpbmtOYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhbmNob3IgbmFtZSB0byBiZSBkZWZpbmVkIHdpdGhpbiB0aGlzIHBhZ2UsIHNvIHRoYXQKKyAgICAgICAgICAgICAgICAgIHlvdSBjYW4gcmVmZXJlbmNlIGl0IHdpdGggaW50cmEtcGFnZSBoeXBlcmxpbmtzLiAgSW4gb3RoZXIKKyAgICAgICAgICAgICAgICAgIHdvcmRzLCB0aGUgdmFsdWUgc3BlY2lmaWVkIGhlcmUgd2lsbCByZW5kZXIgYSAibmFtZSIgZWxlbWVudAorICAgICAgICAgICAgICAgICAgaW4gdGhlIGdlbmVyYXRlZCBhbmNob3IgdGFnLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gdGhhdCBjb250YWlucyBhIDxjb2RlPk1hcDwvY29kZT4KKyAgICAgICAgICAgICAgICAgIHJlcHJlc2VudGluZyB0aGUgcXVlcnkgcGFyYW1ldGVycyAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgICBpcyBub3Qgc3BlY2lmaWVkKSwgb3IgYSBKU1AgYmVhbiB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMKKyAgICAgICAgICAgICAgICAgIGNhbGxlZCB0byByZXR1cm4gYSA8Y29kZT5NYXA8L2NvZGU+IChpZiA8Y29kZT5wcm9wZXJ0eTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGlzIHNwZWNpZmllZCkuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQgZm9jdXMuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEgbW91c2UgY2xpY2suPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEgbW91c2UgZG91YmxlIGNsaWNrLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dCBmb2N1cy48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIGtleSBkb3duIGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIGtleSBwcmVzcyBldmVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBrZXkgdXAgZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIG1vdXNlIGRvd24gZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciB0aGF0IGlzIGV4ZWN1dGVkIHdoZW4KKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhIG1vdXNlIG1vdmUgZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEgbW91c2Ugb3V0IGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5KYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgdGhhdCBpcyBleGVjdXRlZCB3aGVuCisgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYSBtb3VzZSBvdmVyIGV2ZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+SmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIHRoYXQgaXMgZXhlY3V0ZWQgd2hlbgorICAgICAgICAgICAgICAgICAgdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEgbW91c2UgdXAgZXZlbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1vZHVsZS1yZWxhdGl2ZSBwYXRoIChiZWdpbm5pbmcgd2l0aCBhICIvIgorICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyKSB0byB3aGljaCB0aGlzIGh5cGVybGluayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAgICBpZiBhY3RpdmF0ZWQuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkgbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgICBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkgZXhhY3RseQorICAgICAgICAgICAgICAgICAgIG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsCisgICAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZSA8Y29kZT5saW5rTmFtZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICAgIGFkZGVkIHRvIHRoZSBnZW5lcmF0ZWQgaHlwZXJsaW5rLiAgVGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaXMKKyAgICAgICAgICAgICAgICAgIGRlZmluZWQgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYW5kIChvcHRpb25hbCkKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZXMsIG9wdGlvbmFsbHkgc2NvcGVkIGJ5CisgICAgICAgICAgICAgICAgICB0aGUgPGNvZGU+cGFyYW1TY29wZTwvY29kZT4gYXR0cmlidXRlPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtTmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgaXMgYSBTdHJpbmcgY29udGFpbmluZyB0aGUKKyAgICAgICAgICAgICAgICAgIHZhbHVlIGZvciB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgbmFtZWQgYnkgPGNvZGU+cGFyYW1JZDwvY29kZT4KKyAgICAgICAgICAgICAgICAgIChpZiA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBpcyBub3Qgc3BlY2lmaWVkKSwgb3IgYSBKU1AKKyAgICAgICAgICAgICAgICAgIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzIGNhbGxlZCB0byByZXR1cm4gYSBTdHJpbmcKKyAgICAgICAgICAgICAgICAgIChpZiA8Y29kZT5wYXJhbVByb3BlcnR5PC9jb2RlPiBpcyBzcGVjaWZpZWQpLiAgVGhlIEpTUCBiZWFuCisgICAgICAgICAgICAgICAgICBpcyBjb25zdHJhaW5lZCB0byB0aGUgYmVhbiBzY29wZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBwcm9wZXJ0eSwgaWYgaXQgaXMgc3BlY2lmaWVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbVByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0CisgICAgICAgICAgICAgICAgICBiZSBhIFN0cmluZyBjb250YWluaW5nIHRoZSB2YWx1ZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAgIChuYW1lZCBieSB0aGUgPGNvZGU+cGFyYW1JZDwvY29kZT4gYXR0cmlidXRlKSB0aGF0IHdpbGwgYmUKKyAgICAgICAgICAgICAgICAgIGR5bmFtaWNhbGx5IGFkZGVkIHRvIHRoaXMgaHlwZXJsaW5rLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYXJhbVNjb3BlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgIGJ5IHRoZSA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZS4gIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgICBhbGwgc2NvcGVzIGFyZSBzZWFyY2hlZC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIHJldHVybiB2YWx1ZSBtdXN0IGJlCisgICAgICAgICAgICAgICAgICBhIDxjb2RlPmphdmEudXRpbC5NYXA8L2NvZGU+IGNvbnRhaW5pbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMKKyAgICAgICAgICAgICAgICAgIHRvIGJlIGFkZGVkIHRvIHRoZSBoeXBlcmxpbmsuICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+CisgICAgICAgICAgICAgICAgICBzcGVjaWZ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgaWYgeW91IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgIHRoaXMgYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zY29wZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgc2NvcGUgd2l0aGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGJlYW4gc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICBieSB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwgYWxsCisgICAgICAgICAgICAgICAgICBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IKKyAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFyZ2V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSB3aW5kb3cgdGFyZ2V0IGluIHdoaWNoIHRoZSByZXNvdXJjZSByZXF1ZXN0ZWQgYnkgdGhpcworICAgICAgICAgICAgICAgICAgaHlwZXJsaW5rIHdpbGwgYmUgZGlzcGxheWVkLCBmb3IgZXhhbXBsZSBpbiBhIGZyYW1lZAorICAgICAgICAgICAgICAgICAgcHJlc2VudGF0aW9uLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgaHlwZXJsaW5rLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRyYW5zYWN0aW9uPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5JZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIGFueSBjdXJyZW50IHRyYW5zYWN0aW9uCisgICAgICAgICAgICAgICAgICBjb250cm9sIHRva2VuIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmssCisgICAgICAgICAgICAgICAgICBzbyB0aGF0IGl0IHdpbGwgcGFzcyBhbiA8Y29kZT5pc1Rva2VuVmFsaWQoKTwvY29kZT4gdGVzdAorICAgICAgICAgICAgICAgICAgaW4gdGhlIHJlY2VpdmluZyBBY3Rpb24uPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnVzZUxvY2FsRW5jb2Rpbmc8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBMb2NhbENoYXJhY3RlckVuY29kaW5nIHdpbGwgYmUKKyAgICAgICAgICAgICAgdXNlZCwgdGhhdCBpcywgdGhlIGNoYXJhY3RlckVuY29kaW5nIHNldCB0byB0aGUgSHR0cFNlcnZsZXRSZXNwb25zZSwKKyAgICAgICAgICAgICAgYXMgcHJlZmVyZWQgY2hhcmFjdGVyIGVuY29kaW5nIHJhdGhlciB0aGFuIFVURi04LCB3aGVuCisgICAgICAgICAgICAgIFVSTEVuY29kaW5nIGlzIGRvbmUgb24gcGFyYW1ldGVycyBvZiB0aGUgVVJMLjwvcD4KKyAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5tZXNzYWdlczwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5NZXNzYWdlc1RhZzwvdGFnLWNsYXNzPgorICAgICAgICA8dGVpLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk1lc3NhZ2VzVGVpPC90ZWktY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+SlNQPC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgICAgICBDb25kaXRpb25hbGx5IGRpc3BsYXkgYSBzZXQgb2YgYWNjdW11bGF0ZWQgbWVzc2FnZXMuCisgICAgICAgICAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgICAgIDxwPkRpc3BsYXlzIGEgc2V0IG9mIG1lc3NhZ2VzIHByZXBhcmVkIGJ5IGEgYnVzaW5lc3MKKyAgICAgICAgICAgICAgICBsb2dpYyBjb21wb25lbnQgYW5kIHN0b3JlZCBhcyBhbiA8Y29kZT5BY3Rpb25NZXNzYWdlczwvY29kZT4KKyAgICAgICAgICAgICAgICBvYmplY3QsIDxjb2RlPkFjdGlvbkVycm9yczwvY29kZT4gb2JqZWN0LCBhIFN0cmluZywKKyAgICAgICAgICAgICAgICBvciBhIFN0cmluZyBhcnJheSBpbiBhbnkgc2NvcGUuICBJZgorICAgICAgICAgICAgICAgIHN1Y2ggYSBiZWFuIGlzIG5vdCBmb3VuZCwgbm90aGluZyB3aWxsIGJlIHJlbmRlcmVkLiAgVGhlIG1lc3NhZ2VzIGFyZSAKKyAgICAgICAgICAgICAgICBwbGFjZWQgaW50byB0aGUgcGFnZSBzY29wZSBpbiB0aGUgYm9keSBvZiB0aGlzIHRhZyB3aGVyZSB0aGV5IGNhbiBiZSBkaXNwbGF5ZWQgCisgICAgICAgICAgICAgICAgYnkgc3RhbmRhcmQgSlNQIG1ldGhvZHMuIChGb3IgZXhhbXBsZTogPGNvZGU+Jmx0O2JlYW46d3JpdGUmZ3Q7PC9jb2RlPiw8Y29kZT4mbHQ7YzpvdXQmZ3Q7PC9jb2RlPikKKyAgICAgICAgICAgICAgICA8L3A+CisKKyAgICAgICAgICAgICAgICA8cD5JbiBvcmRlciB0byB1c2UgdGhpcyB0YWcgc3VjY2Vzc2Z1bGx5LCB5b3UgbXVzdCBoYXZlCisgICAgICAgICAgICAgICAgZGVmaW5lZCBhbiBhcHBsaWNhdGlvbiBzY29wZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPgorICAgICAgICAgICAgICAgIGJlYW4gdW5kZXIgdGhlIGRlZmF1bHQgYXR0cmlidXRlIG5hbWUuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgVGhlIG5hbWUgb2YgYSBwYWdlIHNjb3BlIEpTUCBiZWFuIHRoYXQgd2lsbCBjb250YWluIHRoZSBjdXJyZW50CisgICAgICAgICAgICAgICAgICBlbGVtZW50IG9mIHRoZSBjb2xsZWN0aW9uIG9mIG1lc3NhZ2VzIG9uIGVhY2ggaXRlcmF0aW9uLCBpZiBpdCBpcyBub3QKKyAgICAgICAgICAgICAgICAgIDxjb2RlPm51bGw8L2NvZGU+LgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sb2NhbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2Vzc2lvbiBhdHRyaWJ1dGUga2V5IGZvciB0aGUgTG9jYWxlIHVzZWQgdG8gc2VsZWN0CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzIHRvIGJlIGRpc3BsYXllZC4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvCisgICAgICAgICAgICAgICAgICAgIHRoZSBTdHJ1dHMgc3RhbmRhcmQgdmFsdWUuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIGJlYW4gaW4gYW55IHNjb3BlIHVuZGVyIHdoaWNoIG91ciBtZXNzYWdlcworICAgICAgICAgICAgICAgICAgaGF2ZSBiZWVuIHN0b3JlZC4gIElmIG5vdCBwcmVzZW50LCB0aGUgbmFtZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5HbG9iYWxzLkVSUk9SX0tFWTwvY29kZT4gY29uc3RhbnQgc3RyaW5nIHdpbGwgYmUgdXNlZC4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSBwcm9wZXJ0eSBmb3Igd2hpY2ggbWVzc2FnZXMgc2hvdWxkIGJlCisgICAgICAgICAgICAgICAgICBkaXNwbGF5ZWQuICBJZiBub3Qgc3BlY2lmaWVkLCBhbGwgbWVzc2FnZXMgKHJlZ2FyZGxlc3MKKyAgICAgICAgICAgICAgICAgIG9mIHByb3BlcnR5KSBhcmUgZGlzcGxheWVkLgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmhlYWRlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICBUaGlzIHZhbHVlIGlzIGFuIG9wdGlvbmFsIG1lc3NhZ2UgcmVzb3VyY2Uga2V5IHRoYXQgd2lsbAorICAgICAgICAgICAgICAgICAgYmUgcHJpbnRlZCBiZWZvcmUgdGhlIGl0ZXJhdGlvbiBvZiBtZXNzYWdlcyBiZWdpbnMuCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Zm9vdGVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIFRoaXMgdmFsdWUgaXMgYW4gb3B0aW9uYWwgbWVzc2FnZSByZXNvdXJjZSBrZXkgdGhhdCB3aWxsCisgICAgICAgICAgICAgICAgICBiZSBwcmludGVkIGFmdGVyIHRoZSBpdGVyYXRpb24gb2YgbWVzc2FnZXMgaGFzIGZpbmlzaGVkLgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1lc3NhZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgQnkgZGVmYXVsdCB0aGUgdGFnIHdpbGwgcmV0cmlldmUgdGhlIGJlYW4gaXQgd2lsbAorICAgICAgICAgICAgICAgICAgaXRlcmF0ZSBvdmVyIGZyb20gdGhlIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcsCisgICAgICAgICAgICAgICAgICBidXQgaWYgdGhpcyBhdHRyaWJ1dGUgaXMgc2V0IHRvICd0cnVlJyB0aGUgYmVhbgorICAgICAgICAgICAgICAgICAgd2lsbCBiZSByZXRyaWV2ZWQgZnJvbSB0aGUgPGNvZGU+R2xvYmFscy5NRVNTQUdFX0tFWTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGNvbnN0YW50IHN0cmluZy4gIEFsc28gaWYgdGhpcyBpcyBzZXQgdG8gJ3RydWUnLCBhbnkgdmFsdWUKKyAgICAgICAgICAgICAgICAgIGFzc2lnbmVkIHRvIHRoZSBuYW1lIGF0dHJpYnV0ZSB3aWxsIGJlIGlnbm9yZWQuCisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPm11bHRpYm94PC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLk11bHRpYm94VGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBBIENoZWNrYm94IElucHV0IEZpZWxkCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPlJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+Y2hlY2tib3g8L2NvZGU+LCB3aG9zZSAiY2hlY2tlZCIgc3RhdHVzIGlzCisgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsaXplZCBiYXNlZCBvbiB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZXMgb25lIG9mIHRoZSBlbGVtZW50cyBvZiB0aGUgdW5kZXJseWluZworICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkncyBhcnJheSBvZiBjdXJyZW50IHZhbHVlcy4gVGhpcyBlbGVtZW50IGlzCisgICAgICAgICAgICAgICAgICAgICAgICB1c2VmdWwgd2hlbiB5b3UgaGF2ZSBsYXJnZSBudW1iZXJzIG9mIGNoZWNrYm94ZXMsIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgcHJlZmVyIHRvIGNvbWJpbmUgdGhlIHZhbHVlcyBpbnRvIGEgc2luZ2xlCisgICAgICAgICAgICAgICAgICAgICAgICBhcnJheS12YWx1ZWQgcHJvcGVydHkgaW5zdGVhZCBvZiBtdWx0aXBsZSBib29sZWFuCisgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLiAgVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuIG5lc3RlZAorICAgICAgICAgICAgICAgICAgICAgICAgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS48L3A+CisKKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+V0FSTklORzwvc3Ryb25nPjogIEluIG9yZGVyIHRvIGNvcnJlY3RseQorICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXplIGNhc2VzIHdoZXJlIG5vbmUgb2YgdGhlIGFzc29jaWF0ZWQgY2hlY2tib3hlcworICAgICAgICAgICAgICAgICAgICAgICAgYXJlIHNlbGVjdGVkLCB0aGUgPGNvZGU+QWN0aW9uRm9ybTwvY29kZT4gYmVhbgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZm9ybSBtdXN0IGluY2x1ZGUgYSBzdGF0ZW1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgYXJyYXkgdG8gemVybyBsZW5ndGggaW4gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5yZXNldCgpPC9jb2RlPiBtZXRob2QuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+VGhlIHZhbHVlIHRvIGJlIHJldHVybmVkIHRvIHRoZSBzZXJ2ZXIsIGlmIHRoaXMgY2hlY2tib3ggaXMKKyAgICAgICAgICAgICAgICBzZWxlY3RlZCwgbXVzdCBiZSBkZWZpbmVkIGJ5IG9uZSBvZiB0aGUgZm9sbG93aW5nIG1ldGhvZHM6PC9wPgorICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICA8bGk+U3BlY2lmeSBhIDxjb2RlPnZhbHVlPC9jb2RlPiBhdHRyaWJ1dGUsIHdob3NlIGNvbnRlbnRzIHdpbGwKKyAgICAgICAgICAgICAgICBiZSB1c2VkIGxpdGVyYWxseSBhcyB0aGUgdmFsdWUgdG8gYmUgcmV0dXJuZWQuPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+U3BlY2lmeSBubyA8Y29kZT52YWx1ZTwvY29kZT4gYXR0cmlidXRlLCBhbmQgdGhlIG5lc3RlZAorICAgICAgICAgICAgICAgIGJvZHkgY29udGVudCBvZiB0aGlzIHRhZyB3aWxsIGJlIHVzZWQgYXMgdGhlIHZhbHVlIHRvIGJlCisgICAgICAgICAgICAgICAgcmV0dXJuZWQuPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvcktleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5OYW1lIG9mIHRoZSByZXF1ZXN0IHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggb3VyIGVycm9yIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLjwvcD4KKworICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IFRoaXMgaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+LCA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+IGFuZCAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4gYXR0cmlidXRlcyBhbmQgc2hvdWxkIGJlIHNldCB0bworICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUKKyAgICAgICAgICAgICAgICAgICZsdDtodG1sOmVycm9ycy8mZ3Q7IHRhZy48L3A+IAorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUNsYXNzPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVJZDwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkIHdoZW4KKyAgICAgICAgICAgICAgICByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBpbnB1dCBmaWVsZC4gSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFnIHdlIGFyZSBuZXN0ZWQgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoaXMKKyAgICAgICAgICAgICAgICBzdWJtaXNzaW9uLCBzZXQgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50LjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZTwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5JZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGUgPGNvZGU+ZXJyb3JTdHlsZUlkPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50YWJpbmRleDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHRhYiBvcmRlciAoYXNjZW5kaW5nIHBvc2l0aXZlIGludGVnZXJzKSBmb3IgdGhpcyBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBhZHZpc29yeSB0aXRsZSBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZUtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IGZvciB0aGUgYWR2aXNvcnkgdGl0bGUKKyAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnZhbHVlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSB0byBiZSB0cmFuc21pdHRlZCBpZiB0aGlzIGNoZWNrYm94IGlzCisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkIHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5vcHRpb248L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgICAgICBSZW5kZXIgQSBTZWxlY3QgT3B0aW9uCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgICAgICA8cD5SZW5kZXIgYW4gSFRNTCA8Y29kZT4mbHQ7b3B0aW9uJmd0OzwvY29kZT4gZWxlbWVudCwKKyAgICAgICAgICAgICAgICByZXByZXNlbnRpbmcgb25lIG9mIHRoZSBjaG9pY2VzIGZvciBhbiBlbmNsb3NpbmcKKyAgICAgICAgICAgICAgICA8Y29kZT4mbHQ7c2VsZWN0Jmd0OzwvY29kZT4gZWxlbWVudC4gIFRoZSB0ZXh0IGRpc3BsYXllZCB0byB0aGUKKyAgICAgICAgICAgICAgICB1c2VyIGNvbWVzIGZyb20gZWl0aGVyIHRoZSBib2R5IG9mIHRoaXMgdGFnLCBvciBmcm9tIGEgbWVzc2FnZQorICAgICAgICAgICAgICAgIHN0cmluZyBsb29rZWQgdXAgYmFzZWQgb24gdGhlIDxjb2RlPmJ1bmRsZTwvY29kZT4sCisgICAgICAgICAgICAgICAgPGNvZGU+bG9jYWxlPC9jb2RlPiwgYW5kIDxjb2RlPmtleTwvY29kZT4gYXR0cmlidXRlcy48L3A+CisKKyAgICAgICAgICAgICAgICA8cD5JZiB0aGUgdmFsdWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eSBtYXRjaGVzIHRoZQorICAgICAgICAgICAgICAgIHNwZWNpZmllZCB2YWx1ZSwgdGhpcyBvcHRpb24gd2lsbCBiZSBtYXJrZWQgc2VsZWN0ZWQuICBUaGlzIHRhZworICAgICAgICAgICAgICAgIGlzIG9ubHkgdmFsaWQgd2hlbiBuZXN0ZWQgaW5zaWRlIGEKKyAgICAgICAgICAgICAgICA8Y29kZT4mbHQ7aHRtbDpzZWxlY3QmZ3Q7PC9jb2RlPiB0YWcgYm9keS48L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIG9wdGlvbiBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+a2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgSWYgc3BlY2lmaWVkLCBkZWZpbmVzIHRoZSBtZXNzYWdlIGtleSB0byBiZSBsb29rZWQgdXAgaW4KKyAgICAgICAgICAgICAgICAgICAgdGhlIHJlc291cmNlIGJ1bmRsZSBzcGVjaWZpZWQgYnkgPGNvZGU+YnVuZGxlPC9jb2RlPiBmb3IKKyAgICAgICAgICAgICAgICAgICAgdGhlIHRleHQgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGlzIG9wdGlvbi4gIElmIG5vdAorICAgICAgICAgICAgICAgICAgICBzcGVjaWZpZWQsIHRoZSB0ZXh0IHRvIGJlIGRpc3BsYXllZCBpcyB0YWtlbiBmcm9tIHRoZSBib2R5CisgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgb2YgdGhpcyB0YWcuCisgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5sb2NhbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2Vzc2lvbiBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIExvY2FsZSBpbnN0YW5jZSB0byB1c2UKKyAgICAgICAgICAgICAgICAgICAgZm9yIGxvb2tpbmcgdXAgdGhlIG1lc3NhZ2Ugc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5rZXk8L2NvZGU+IGF0dHJpYnV0ZS4gIElmIG5vdCBzcGVjaWZpZWQsIHVzZXMgdGhlCisgICAgICAgICAgICAgICAgICAgIHN0YW5kYXJkIFN0cnV0cyBzZXNzaW9uIGF0dHJpYnV0ZSBuYW1lLgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBJZGVudGlmaWVyIHRvIGJlIGFzc2lnbmVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IChyZW5kZXJzCisgICAgICAgICAgICAgICAgYW4gImlkIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVmFsdWUgdG8gYmUgc3VibWl0dGVkIGZvciB0aGlzIGZpZWxkIGlmIHRoaXMgb3B0aW9uIGlzCisgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkIGJ5IHRoZSB1c2VyLgorICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPm9wdGlvbnM8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uc1RhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PmVtcHR5PC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBhIENvbGxlY3Rpb24gb2YgU2VsZWN0IE9wdGlvbnMKKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgICAgIDxwPlJlbmRlcnMgYSBzZXQgb2YgSFRNTCA8Y29kZT4mbHQ7b3B0aW9uJmd0OzwvY29kZT4gZWxlbWVudHMsCisgICAgICAgICAgICAgICAgcmVwcmVzZW50aW5nIHBvc3NpYmxlIGNob2ljZXMgZm9yIGEgPGNvZGU+Jmx0O3NlbGVjdCZndDs8L2NvZGU+CisgICAgICAgICAgICAgICAgZWxlbWVudC4gIFRoaXMgdGFnIGNhbiBiZSB1c2VkIG11bHRpcGxlIHRpbWVzIHdpdGhpbiBhIHNpbmdsZQorICAgICAgICAgICAgICAgIDxjb2RlPiZsdDtodG1sOnNlbGVjdCZndDs8L2NvZGU+IGVsZW1lbnQsIGVpdGhlciBpbiBjb25qdW5jdGlvbgorICAgICAgICAgICAgICAgIHdpdGggb3IgaW5zdGVhZCBvZiBvbmUgb3IgbW9yZSA8Y29kZT4mbHQ7aHRtbDpvcHRpb24mZ3Q7PC9jb2RlPgorICAgICAgICAgICAgICAgIG9yIDxjb2RlPiZsdDtodG1sOm9wdGlvbnNDb2xsZWN0aW9uJmd0OzwvY29kZT4gZWxlbWVudHMuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+VGhpcyB0YWcgb3BlcmF0ZXMgaW4gb25lIG9mIHR3byBtYWpvciBtb2RlcywgZGVwZW5kaW5nIG9uCisgICAgICAgICAgICAgICAgd2hldGhlciBvciBub3QgdGhlIDxjb2RlPmNvbGxlY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSBpcworICAgICAgICAgICAgICAgIHNwZWNpZmllZC4gIElmIHRoZSA8Y29kZT5jb2xsZWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUgaXMKKyAgICAgICAgICAgICAgICBpbmNsdWRlZCwgdGhlIGZvbGxvd2luZyBydWxlcyBhcHBseTo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT5UaGUgPHN0cm9uZz5jb2xsZWN0aW9uPC9zdHJvbmc+IGF0dHJpYnV0ZSBpcyBpbnRlcnByZXRlZAorICAgICAgICAgICAgICAgICAgICBhcyB0aGUgbmFtZSBvZiBhIEpTUCBiZWFuLCBpbiBzb21lIHNjb3BlLCB0aGF0IGl0c2VsZgorICAgICAgICAgICAgICAgICAgICByZXByZXNlbnRzIGEgY29sbGVjdGlvbiBvZiBpbmRpdmlkdWFsIGJlYW5zLCBvbmUgcGVyIG9wdGlvbgorICAgICAgICAgICAgICAgICAgICB2YWx1ZSB0byBiZSByZW5kZXJlZC48L2xpPgorICAgICAgICAgICAgICAgIDxsaT5UaGUgPHN0cm9uZz5wcm9wZXJ0eTwvc3Ryb25nPiBhdHRyaWJ1dGUgaXMgaW50ZXJwcmV0ZWQgYXMKKyAgICAgICAgICAgICAgICAgICAgdGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgaW5kaXZpZHVhbCBiZWFucyBpbmNsdWRlZCBpbgorICAgICAgICAgICAgICAgICAgICB0aGUgY29sbGVjdGlvbiwgYW5kIGlzIHVzZWQgdG8gcmV0cmlldmUgdGhlIHZhbHVlIHRoYXQgd2lsbAorICAgICAgICAgICAgICAgICAgICBiZSByZXR1cm5lZCB0byB0aGUgc2VydmVyIGlmIHRoaXMgb3B0aW9uIGlzIHNlbGVjdGVkLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPlRoZSA8c3Ryb25nPmxhYmVsUHJvcGVydHk8L3N0cm9uZz4gYXR0cmlidXRlIGlzIGludGVycHJldGVkCisgICAgICAgICAgICAgICAgICAgIGFzIHRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb2YgdGhlIGluZGl2aWR1YWwgYmVhbnMgaW5jbHVkZWQKKyAgICAgICAgICAgICAgICAgICAgaW4gdGhlIGNvbGxlY3Rpb24sIGFuZCBpcyB1c2VkIHRvIHJldHJpZXZlIHRoZSBsYWJlbCB0aGF0CisgICAgICAgICAgICAgICAgICAgIHdpbGwgYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGZvciB0aGlzIG9wdGlvbi4gIElmIHRoZQorICAgICAgICAgICAgICAgICAgICA8Y29kZT5sYWJlbFByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlCisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5IG5hbWVkIGJ5IHRoZSA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlIHdpbGwKKyAgICAgICAgICAgICAgICAgICAgYmUgdXNlZCB0byBzZWxlY3QgYm90aCB0aGUgdmFsdWUgcmV0dXJuZWQgdG8gdGhlIHNlcnZlciBhbmQKKyAgICAgICAgICAgICAgICAgICAgdGhlIGxhYmVsIGRpc3BsYXllZCB0byB0aGUgdXNlciBmb3IgdGhpcyBvcHRpb24uPC9saT4KKyAgICAgICAgICAgICAgICA8L3VsPgorCisgICAgICAgICAgICAgICAgPHA+SWYgdGhlIDxjb2RlPmNvbGxlY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgIHRoZSBydWxlcyBkZXNjcmliZWQgaW4gdGhlIHJlbWFpbmRlciBvZiB0aGlzIHNlY3Rpb24gYXBwbHkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+VGhlIGNvbGxlY3Rpb24gb2YgdmFsdWVzIGFjdHVhbGx5IHNlbGVjdGVkIGRlcGVuZHMgb24gdGhlIHByZXNlbmNlIG9yCisgICAgICAgICAgICAgICAgYWJzZW5jZSBvZiB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYW5kIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhdHRyaWJ1dGVzLiAgVGhlCisgICAgICAgICAgICAgICAgZm9sbG93aW5nIGNvbWJpbmF0aW9ucyBhcmUgYWxsb3dlZDo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+T25seSA8Y29kZT5uYW1lPC9jb2RlPiBpcyBzcGVjaWZpZWQ8L2VtPiAtIFRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZQorICAgICAgICAgICAgICAgICAgICBpcyB0aGUgbmFtZSBvZiBhIEpTUCBiZWFuIGluIHNvbWUgc2NvcGUgdGhhdCBpcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbi48L2xpPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+T25seSA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkPC9lbT4gLSBUaGUgdmFsdWUgb2YgdGhpcworICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaXMgdGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgQWN0aW9uRm9ybSBiZWFuIGFzc29jaWF0ZWQKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBvdXIgZm9ybSwgd2hpY2ggd2lsbCByZXR1cm4gdGhlIGNvbGxlY3Rpb24uPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPkJvdGggPGNvZGU+bmFtZTwvY29kZT4gYW5kIDxjb2RlPnByb3BlcnR5PC9jb2RlPiBhcmUgc3BlY2lmaWVkPC9lbT4gLQorICAgICAgICAgICAgICAgICAgICBUaGUgdmFsdWUgb2YgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBpZGVudGlmaWVzIGEgSlNQIGJlYW4KKyAgICAgICAgICAgICAgICAgICAgaW4gc29tZSBzY29wZS4gIFRoZSB2YWx1ZSBvZiB0aGUgPGNvZGU+cHJvcGVydHk8L2NvZGU+IGF0dHJpYnV0ZSBpcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgbmFtZSBvZiBzb21lIHByb3BlcnR5IG9mIHRoYXQgYmVhbiB3aGljaCB3aWxsIHJldHVybiB0aGUgY29sbGVjdGlvbi48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgICA8cD5UaGUgY29sbGVjdGlvbiBvZiBsYWJlbHMgZGlzcGxheWVkIHRvIHRoZSB1c2VyIGNhbiBiZSB0aGUgc2FtZSBhcyB0aGUKKyAgICAgICAgICAgICAgICBvcHRpb24gdmFsdWVzIHRoZW1zZWx2ZXMsIG9yIGNhbiBiZSBkaWZmZXJlbnQsIGRlcGVuZGluZyBvbiB0aGUgcHJlc2VuY2Ugb3IKKyAgICAgICAgICAgICAgICBhYnNlbmNlIG9mIHRoZSA8Y29kZT5sYWJlbE5hbWU8L2NvZGU+IGFuZCA8Y29kZT5sYWJlbFByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMuICBJZiB0aGlzIGZlYXR1cmUgaXMgdXNlZCwgdGhlIGNvbGxlY3Rpb24gb2YgbGFiZWxzIG11c3QgY29udGFpbgorICAgICAgICAgICAgICAgIHRoZSBzYW1lIG51bWJlciBvZiBlbGVtZW50cyBhcyB0aGUgY29ycmVzcG9uZGluZyBjb2xsZWN0aW9uIG9mIHZhbHVlcy4KKyAgICAgICAgICAgICAgICBUaGUgZm9sbG93aW5nIGNvbWJpbmF0aW9ucyBhcmUgYWxsb3dlZDo8L3A+CisgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgIDxsaT48ZW0+TmVpdGhlciA8Y29kZT5sYWJlbE5hbWU8L2NvZGU+IG5vciA8Y29kZT5sYWJlbFByb3BlcnR5PC9jb2RlPiBpcworICAgICAgICAgICAgICAgICAgICBzcGVjaWZpZWQ8L2VtPiAtIFRoZSBsYWJlbHMgd2lsbCBiZSB0aGUgc2FtZSBhcyB0aGUgb3B0aW9uIHZhbHVlcworICAgICAgICAgICAgICAgICAgICB0aGVtc2VsdmVzLjwvbGk+CisgICAgICAgICAgICAgICAgPGxpPjxlbT5Pbmx5IDxjb2RlPmxhYmVsTmFtZTwvY29kZT4gaXMgc3BlY2lmaWVkPC9lbT4gLSBUaGUgdmFsdWUgb2YgdGhpcworICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaXMgdGhlIG5hbWUgb2YgYSBKU1AgYmVhbiBpbiBzb21lIHNjb3BlIHRoYXQgaXMgdGhlCisgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24uPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPk9ubHkgPGNvZGU+bGFiZWxQcm9wZXJ0eTwvY29kZT4gaXMgc3BlY2lmaWVkPC9lbT4gLSBUaGUgdmFsdWUgb2YgdGhpcworICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaXMgdGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgQWN0aW9uRm9ybSBiZWFuIGFzc29jaWF0ZWQKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBvdXIgZm9ybSwgd2hpY2ggd2lsbCByZXR1cm4gdGhlIGNvbGxlY3Rpb24uPC9saT4KKyAgICAgICAgICAgICAgICA8bGk+PGVtPkJvdGggPGNvZGU+bGFiZWxOYW1lPC9jb2RlPiBhbmQgPGNvZGU+bGFiZWxQcm9wZXJ0eTwvY29kZT4gYXJlCisgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllZDwvZW0+IC0gVGhlIHZhbHVlIG9mIHRoZSA8Y29kZT5sYWJlbE5hbWU8L2NvZGU+IGF0dHJpYnV0ZQorICAgICAgICAgICAgICAgICAgICBpZGVudGlmaWVzIGEgSlNQIGJlYW4gaW4gc29tZSBzY29wZS4gIFRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgPGNvZGU+bGFiZWxQcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlIGlzIHRoZSBuYW1lIG9mIHNvbWUgcHJvcGVydHkgb2YKKyAgICAgICAgICAgICAgICAgICAgdGhhdCBiZWFuIHdoaWNoIHdpbGwgcmV0dXJuIHRoZSBjb2xsZWN0aW9uLjwvbGk+CisgICAgICAgICAgICAgICAgPC91bD4KKworCisgICAgICAgICAgICA8cD5Ob3RlIHRoYXQgdGhpcyB0YWcgZG9lcyBub3Qgc3VwcG9ydCBhIDxjb2RlPnN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICBhdHRyaWJ1dGUsIGFzIGl0IHdvdWxkIGhhdmUgdG8gYXBwbHkgdGhlIHZhbHVlIHRvIGFsbCB0aGUKKyAgICAgICAgICAgIDxjb2RlPm9wdGlvbjwvY29kZT4gZWxlbWVudHMgY3JlYXRlZCBieSB0aGlzIGVsZW1lbnQsIHdoaWNoIHdvdWxkCisgICAgICAgICAgICBtZWFuIHRoYXQgbW9yZSB0aGFuIG9uZSA8Y29kZT5pZDwvY29kZT4gZWxlbWVudCBtaWdodCBoYXZlIHRoZSBzYW1lCisgICAgICAgICAgICB2YWx1ZSwgd2hpY2ggdGhlIEhUTUwgc3BlY2lmaWNhdGlvbiBzYXlzIGlzIGlsbGVnYWwuPC9wPgorCisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Y29sbGVjdGlvbjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSBKU1AgYmVhbiAoaW4gc29tZSBzY29wZSkgd2hpY2ggaXMgaXRzZWxmIGEKKyAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpb24gb2Ygb3RoZXIgYmVhbnMsIGVhY2ggb2Ygd2hpY2ggaGFzIHByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVkIGJ5IHRoZSAicHJvcGVydHkiIGFuZCAibGFiZWxQcm9wZXJ0eSIgYXR0cmlidXRlcworICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBhcmUgdXNlZCB0byByZXRyaWV2ZSB0aGUgdmFsdWUgYW5kIGxhYmVsIGZvciBlYWNoCisgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb24sIHJlc3BlY3RpdmVseS4KKyAgICAgICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5maWx0ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBTZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IGlmIHlvdSBkbyBOT1Qgd2FudCB0aGUgb3B0aW9uIGxhYmVscworICAgICAgICAgICAgICAgIGZpbHRlcmVkIGZvciBzZW5zaXRpdmUgY2hhcmFjdGVycyBpbiBIVE1MLiAgQnkgZGVmYXVsdCwgc3VjaAorICAgICAgICAgICAgICAgIHZhbHVlcyBhcmUgZmlsdGVyZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bGFiZWxOYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSBKU1AgYmVhbiAoaW4gc29tZSBzY29wZSkgY29udGFpbmluZyB0aGUgY29sbGVjdGlvbiBvZiBsYWJlbHMgdG8KKyAgICAgICAgICAgICAgICBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgZm9yIHRoZXNlIG9wdGlvbnMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bGFiZWxQcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgUHJvcGVydHkgb2YgdGhlIGZvcm0gYmVhbiwgb3IgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBsYWJlbE5hbWUKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUsIHRoYXQgd2lsbCByZXR1cm4gdGhlIGNvbGxlY3Rpb24gb2YgbGFiZWxzIHRvIGJlIGRpc3BsYXllZAorICAgICAgICAgICAgICAgIHRvIHRoZSB1c2VyIGZvciB0aGVzZSBvcHRpb25zLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIEpTUCBiZWFuIChpbiBzb21lIHNjb3BlKSBjb250YWluaW5nIHRoZSBjb2xsZWN0aW9uIG9mCisgICAgICAgICAgICAgICAgdmFsdWVzIHRvIGJlIHJldHVybmVkIHRvIHRoZSBzZXJ2ZXIgZm9yIHRoZXNlIG9wdGlvbnMuIElmIG5vdAorICAgICAgICAgICAgICAgIHNwZWNpZmllZCwgdGhlIGZvcm0gYmVhbiBhc3NvY2lhdGVkIHdpdGggb3VyIGZvcm0gaXMgYXNzdW1lZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgUHJvcGVydHkgb2YgdGhlIGZvcm0gYmVhbiwgb3IgdGhlIGJlYW4gc3BlY2lmaWVkIGJ5IHRoZSBuYW1lCisgICAgICAgICAgICAgICAgYXR0cmlidXRlLCB0aGF0IHdpbGwgcmV0dXJuIHRoZSBjb2xsZWN0aW9uIG9mIHZhbHVlcyB0byByZXR1cm5lZAorICAgICAgICAgICAgICAgIHRvIHRoZSBzZXJ2ZXIgZm9yIHRoZXNlIG9wdGlvbnMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPm9wdGlvbnNDb2xsZWN0aW9uPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPgorICAgICAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuT3B0aW9uc0NvbGxlY3Rpb25UYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5lbXB0eTwvYm9keS1jb250ZW50PgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgYSBDb2xsZWN0aW9uIG9mIFNlbGVjdCBPcHRpb25zCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDxwPlJlbmRlcnMgYSBzZXQgb2YgSFRNTCA8Y29kZT4mbHQ7b3B0aW9uJmd0OzwvY29kZT4gZWxlbWVudHMsCisgICAgICAgICAgICByZXByZXNlbnRpbmcgcG9zc2libGUgY2hvaWNlcyBmb3IgYSA8Y29kZT4mbHQ7c2VsZWN0Jmd0OzwvY29kZT4KKyAgICAgICAgICAgIGVsZW1lbnQuICBUaGlzIHRhZyBjYW4gYmUgdXNlZCBtdWx0aXBsZSB0aW1lcyB3aXRoaW4gYSBzaW5nbGUKKyAgICAgICAgICAgIDxjb2RlPiZsdDtodG1sOnNlbGVjdCZndDs8L2NvZGU+IGVsZW1lbnQsIGVpdGhlciBpbiBjb25qdW5jdGlvbgorICAgICAgICAgICAgd2l0aCBvciBpbnN0ZWFkIG9mIG9uZSBvciBtb3JlIDxjb2RlPiZsdDtodG1sOm9wdGlvbiZndDs8L2NvZGU+CisgICAgICAgICAgICBvciA8Y29kZT4mbHQ7aHRtbDpvcHRpb25zJmd0OzwvY29kZT4gZWxlbWVudHMuPC9wPgorCisgICAgICAgICAgICA8cD5UaGlzIHRhZyBvcGVyYXRlcyBvbiBhIGNvbGxlY3Rpb24gb2YgYmVhbnMsIHdoZXJlIGVhY2ggYmVhbgorICAgICAgICAgICAgaGFzIGEgPHN0cm9uZz5sYWJlbDwvc3Ryb25nPiBwcm9wZXJ0eSBhbmQgYSA8c3Ryb25nPnZhbHVlPC9zdHJvbmc+CisgICAgICAgICAgICBwcm9wZXJ0eS4gVGhlIGFjdHVhbCBuYW1lcyBvZiB0aGVzZSBwcm9wZXJ0aWVzIGNhbiBiZSBjb25maWd1cmVkCisgICAgICAgICAgICB1c2luZyB0aGUgPGNvZGU+bGFiZWw8L2NvZGU+IGFuZCA8Y29kZT52YWx1ZTwvY29kZT4gYXR0cmlidXRlcworICAgICAgICAgICAgb2YgdGhpcyB0YWcuPC9wPgorCisgICAgICAgICAgICA8cD5UaGlzIHRhZyBkaWZmZXJzIGZyb20gdGhlIDxjb2RlPiZsdDtodG1sOm9wdGlvbnMmZ3Q7PC9jb2RlPiB0YWcKKyAgICAgICAgICAgIGluIHRoYXQgaXQgbWFrZXMgbW9yZSBjb25zaXN0ZW50IHVzZSBvZiB0aGUgPGNvZGU+bmFtZTwvY29kZT4gYW5kCisgICAgICAgICAgICA8Y29kZT5wcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlcywgYW5kIGFsbG93cyB0aGUgY29sbGVjdGlvbiB0byBiZQorICAgICAgICAgICAgbW9yZSBlYXNpbHkgb2J0YWluZWQgZnJvbSB0aGUgZW5jbG9zaW5nIGZvcm0gYmVhbi48L3A+CisKKyAgICAgICAgICAgIDxwPk5vdGUgdGhhdCB0aGlzIHRhZyBkb2VzIG5vdCBzdXBwb3J0IGEgPGNvZGU+c3R5bGVJZDwvY29kZT4KKyAgICAgICAgICAgIGF0dHJpYnV0ZSwgYXMgaXQgd291bGQgaGF2ZSB0byBhcHBseSB0aGUgdmFsdWUgdG8gYWxsIHRoZQorICAgICAgICAgICAgPGNvZGU+b3B0aW9uPC9jb2RlPiBlbGVtZW50cyBjcmVhdGVkIGJ5IHRoaXMgZWxlbWVudCwgd2hpY2ggd291bGQKKyAgICAgICAgICAgIG1lYW4gdGhhdCBtb3JlIHRoYW4gb25lIDxjb2RlPmlkPC9jb2RlPiBlbGVtZW50IG1pZ2h0IGhhdmUgdGhlIHNhbWUKKyAgICAgICAgICAgIHZhbHVlLCB3aGljaCB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIHNheXMgaXMgaWxsZWdhbC48L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZmlsdGVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgU2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiB5b3UgZG8gTk9UIHdhbnQgdGhlIG9wdGlvbiBsYWJlbHMKKyAgICAgICAgICAgICAgICBmaWx0ZXJlZCBmb3Igc2Vuc2l0aXZlIGNoYXJhY3RlcnMgaW4gSFRNTC4gIEJ5IGRlZmF1bHQsIHN1Y2gKKyAgICAgICAgICAgICAgICB2YWx1ZXMgYXJlIGZpbHRlcmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmxhYmVsPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgcHJvcGVydHkgb2YgdGhlIGJlYW4gd2l0aGluIHRoZSBjb2xsZWN0aW9uIHdoaWNoIHJlcHJlc2VudHMKKyAgICAgICAgICAgICAgICB0aGUgbGFiZWwgdG8gYmUgcmVuZGVyZWQgZm9yIGVhY2ggb3B0aW9uLiBEZWZhdWx0cyB0byAibGFiZWwiLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBjb25zdWx0ZWQKKyAgICAgICAgICAgICAgICB3aGVuIHJlbmRlcmluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIGlucHV0IGZpZWxkLiBJZiBub3QKKyAgICAgICAgICAgICAgICBzcGVjaWZpZWQsIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybSB0YWcgd2UgYXJlIG5lc3RlZAorICAgICAgICAgICAgICAgIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHByb3BlcnR5IG9mIHRoZSBmb3JtIGJlYW4sIG9yIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUgbmFtZQorICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgdGhhdCB3aWxsIHJldHVybiB0aGUgY29sbGVjdGlvbiBvZiBvYmplY3RzIHRvIGJlCisgICAgICAgICAgICAgICAgcmVuZGVyZWQgZm9yIHRoZXNlIG9wdGlvbnMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIENTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiB3aXRoaW4gdGhlIGNvbGxlY3Rpb24gd2hpY2ggcmVwcmVzZW50cworICAgICAgICAgICAgICAgIHRoZSB2YWx1ZSB0byBiZSByZW5kZXJlZCBmb3IgZWFjaCBvcHRpb24uIERlZmF1bHRzIHRvICJ2YWx1ZSIuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnBhc3N3b3JkPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlBhc3N3b3JkVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBBIFBhc3N3b3JkIElucHV0IEZpZWxkCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZSBwYXNzd29yZCwgcG9wdWxhdGVkCisgICAgICAgICAgICBmcm9tIHRoZSBzcGVjaWZpZWQgdmFsdWUgb3IgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgYmVhbgorICAgICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIG91ciBjdXJyZW50IGZvcm0uIFRoaXMgdGFnIGlzIG9ubHkgdmFsaWQgd2hlbgorICAgICAgICAgICAgbmVzdGVkIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuCisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvcktleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5OYW1lIG9mIHRoZSByZXF1ZXN0IHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggb3VyIGVycm9yIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLjwvcD4KKworICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IFRoaXMgaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+LCA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+IGFuZCAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4gYXR0cmlidXRlcyBhbmQgc2hvdWxkIGJlIHNldCB0bworICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUKKyAgICAgICAgICAgICAgICAgICZsdDtodG1sOmVycm9ycy8mZ3Q7IHRhZy48L3A+IAorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUNsYXNzPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVJZDwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgImlkWzM0XS5wcm9wZXJ0eU5hbWUiLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm1heGxlbmd0aDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTWF4aW11bSBudW1iZXIgb2YgaW5wdXQgY2hhcmFjdGVycyB0byBhY2NlcHQuIFtObyBsaW1pdF0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5uYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgYXR0cmlidXRlIG5hbWUgb2YgdGhlIGJlYW4gd2hvc2UgcHJvcGVydGllcyBhcmUgY29uc3VsdGVkIHdoZW4KKyAgICAgICAgICAgICAgICByZW5kZXJpbmcgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBpbnB1dCBmaWVsZC4gSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gdGFnIHdlIGFyZSBuZXN0ZWQgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoaXMKKyAgICAgICAgICAgICAgICBzdWJtaXNzaW9uLCBzZXQgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5yZWFkb25seTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIHJlYWQgb25seS4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cmVkaXNwbGF5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCBleGlzdGluZyB2YWx1ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHdpbGwgYmUgcmVkaXNwbGF5ZWQgaWYgdGhleSBleGlzdC4gIEV2ZW4gdGhvdWdoIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXNwbGF5ZWQgdmFsdWUgd2lsbCBiZSBzaG93biBhcyBhc3Rlcmlza3Mgb24gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlIEhUTUwgcGFnZSwgdGhlIGNsZWFydGV4dCBvZiB0aGUgYWN0dWFsIHBhc3N3b3JkCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSB3aWxsIGJlIHZpc2libGUgdGhvdWdoIHRoZSAiU2hvdyBQYWdlIFNvdXJjZSIKKyAgICAgICAgICAgICAgICAgICAgICAgIG1lbnUgb3B0aW9uIG9mIHRoZSBjbGllbnQgYnJvd3Nlci4gIFlvdSBtYXkgd2lzaCB0bworICAgICAgICAgICAgICAgICAgICAgICAgc2V0IHRoaXMgdmFsdWUgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IG9uIGxvZ2luIHBhZ2VzLgorICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gZm9yIGNvbnNpc3RlbmN5IHdpdGgKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsbCBvdGhlciBmb3JtIHRhZ3MgdGhhdCByZWRpc3BsYXkgdGhlaXIgY29udGVudHMuCisgICAgICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2l6ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTnVtYmVyIG9mIGNoYXJhY3RlciBwb3NpdGlvbnMgdG8gYWxsb2NhdGUuIFtCcm93c2VyIGRlZmF1bHRdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsdWUgb2YgdGhlIGxhYmVsIHRvIGJlIHBsYWNlZCBvbiB0aGlzIGJ1dHRvbi4gVGhpcyB2YWx1ZSB3aWxsCisgICAgICAgICAgICAgICAgYWxzbyBiZSBzdWJtaXR0ZWQgYXMgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgcmVxdWVzdCBwYXJhbWV0ZXIuCisgICAgICAgICAgICAgICAgW0JvZHkgb2YgdGhpcyB0YWcgKGlmIGFueSldCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnJhZGlvPC9uYW1lPgorICAgICAgICA8dGFnLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLlJhZGlvVGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBBIFJhZGlvIEJ1dHRvbiBJbnB1dCBGaWVsZAorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZSByYWRpbywgcG9wdWxhdGVkIGZyb20KKyAgICAgICAgICAgIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgb2YgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIG91ciBjdXJyZW50IGZvcm0uCisgICAgICAgICAgICBUaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4gbmVzdGVkIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuCisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgIElmIGFuIGl0ZXJhdG9yIGlzIHVzZWQgdG8gcmVuZGVyIGEgc2VyaWVzIG9mIHJhZGlvIHRhZ3MsIHRoZQorICAgICAgICAgICAgaWROYW1lIGF0dHJpYnV0ZSBtYXkgYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBiZWFuCisgICAgICAgICAgICBleHBvc2VkIGJ5IHRoZSBpdGVyYXRvci4gSW4gdGhpcyBjYXNlLCB0aGUgdmFsdWUgYXR0cmlidXRlIGlzCisgICAgICAgICAgICB1c2VkIGFzIHRoZSBuYW1lIG9mIGEgcHJvcGVydHkgb24gdGhlIGlkTmFtZSBiZWFuIHRoYXQgcmV0dXJucworICAgICAgICAgICAgdGhlIHZhbHVlIG9mIHRoZSByYWRpbyB0YWcgaW4gdGhpcyBpdGVyYXRpb24uCisgICAgICAgICAgICA8L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvcktleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5OYW1lIG9mIHRoZSByZXF1ZXN0IHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggb3VyIGVycm9yIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLjwvcD4KKworICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IFRoaXMgaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+LCA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+IGFuZCAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4gYXR0cmlidXRlcyBhbmQgc2hvdWxkIGJlIHNldCB0bworICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUKKyAgICAgICAgICAgICAgICAgICZsdDtodG1sOmVycm9ycy8mZ3Q7IHRhZy48L3A+IAorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUNsYXNzPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVJZDwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgImlkWzM0XS5wcm9wZXJ0eU5hbWUiLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBjb25zdWx0ZWQgd2hlbgorICAgICAgICAgICAgICAgIHJlbmRlcmluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIGlucHV0IGZpZWxkLiBJZiBub3Qgc3BlY2lmaWVkLAorICAgICAgICAgICAgICAgIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybSB0YWcgd2UgYXJlIG5lc3RlZCB3aXRoaW4gaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBjb3JyZXNwb25kaW5nIGJlYW4gcHJvcGVydHkgZm9yIHRoaXMgcmFkaW8gdGFnLgorICAgICAgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlIG9mIHRoZSByYWRpbyB0YWcuCisgICAgICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aWROYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5OYW1lIG9mIHRoZSBiZWFuIChpbiBzb21lIHNjb3BlKSB0aGF0IHdpbGwgcmV0dXJuIHRoZQorICAgICAgICAgICAgICAgIHZhbHVlIG9mIHRoZSByYWRpbyB0YWcuIFVzdWFsbHkgZXhwb3NlZAorICAgICAgICAgICAgICAgIGJ5IGFuIGl0ZXJhdG9yLiBXaGVuIHRoZSBpZE5hbWUgYXR0cmlidXRlIGlzCisgICAgICAgICAgICAgICAgcHJlc2VudCwgdGhlIHZhbHVlIGF0dHJpYnV0ZSBpcyB1c2VkIGFzIHRoZSBuYW1lIG9mIHRoZQorICAgICAgICAgICAgICAgIHByb3BlcnR5IG9uIHRoZSBpZE5hbWUgYmVhbiB0aGF0IHdpbGwgcmV0dXJuIHRoZQorICAgICAgICAgICAgICAgIHZhbHVlIG9mIHRoZSByYWRpbyB0YWcgZm9yIHRoaXMgaXRlcmF0aW9uLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4xPC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+cmVzZXQ8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmVzZXRUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICA8cD48c3Ryb25nPgorICAgICAgICAgICAgUmVuZGVyIEEgUmVzZXQgQnV0dG9uIElucHV0IEZpZWxkCisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIFJlbmRlcnMgYW4gSFRNTCAmbHQ7aW5wdXQmZ3Q7IGVsZW1lbnQgb2YgdHlwZSByZXNldC4KKyAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hY2Nlc3NrZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBrZXlib2FyZCBjaGFyYWN0ZXIgdXNlZCB0byBtb3ZlIGZvY3VzIGltbWVkaWF0ZWx5IHRvIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHRLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgb2YgdGhlIGFsdGVybmF0ZSB0ZXh0IGZvciB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmJ1bmRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgIFRoZSBzZXJ2bGV0IGNvbnRleHQgYXR0cmlidXRlcyBrZXkgZm9yIHRoZSBNZXNzYWdlUmVzb3VyY2VzCisgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlIHRvIHVzZS4gIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbiByZXNvdXJjZXMgY29uZmlndXJlZCBmb3Igb3VyIGFjdGlvbiBzZXJ2bGV0LgorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmRpc2FibGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgU2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoaXMgaW5wdXQgZmllbGQgc2hvdWxkIGJlCisgICAgICAgICAgZGlzYWJsZWQuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoZSBpbnB1dCBmaWVsZCB0aGF0IHdpbGwgYmUgZ2VuZXJhdGVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICBWYWx1ZSBvZiB0aGUgbGFiZWwgdG8gYmUgcGxhY2VkIG9uIHRoaXMgYnV0dG9uLgorICAgICAgICAgICAgICAgICAgICAgICAgW0JvZHkgb2YgdGhpcyB0YWcgKGlmIGFueSksIG9yICJSZXNldCJdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnJld3JpdGU8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuUmV3cml0ZVRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8Ym9keS1jb250ZW50PmVtcHR5PC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz5SZW5kZXIgYW4gVVJJPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgICAgIDxwPlJlbmRlcnMgYSByZXF1ZXN0IFVSSSBiYXNlZCBvbiBleGFjdGx5IHRoZSBzYW1lIHJ1bGVzCisgICAgICAgICAgICAgICAgYXMgdGhlIDxjb2RlPjxhIGhyZWY9IiNsaW5rIj5saW5rPC9hPjwvY29kZT4gdGFnIGRvZXMsCisgICAgICAgICAgICAgICAgYnV0IHdpdGhvdXQgY3JlYXRpbmcKKyAgICAgICAgICAgICAgICB0aGUgPGNvZGU+Jmx0O2EmZ3Q7PC9jb2RlPiBoeXBlcmxpbmsuICBUaGlzIHZhbHVlIGlzIHVzZWZ1bAorICAgICAgICAgICAgICAgIHdoZW4geW91IHdhbnQgdG8gZ2VuZXJhdGUgYSBzdHJpbmcgY29uc3RhbnQgZm9yIHVzZSBieQorICAgICAgICAgICAgICAgIGEgSmF2YVNjcmlwdCBwcm9jZWR1cmUuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWN0aW9uPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPkxvZ2ljYWwgbmFtZSBvZiBhIDxjb2RlPkFjdGlvbjwvY29kZT4gdGhhdAorICAgICAgICAgICAgICAgICAgY29udGFpbnMgdGhlIGFjdHVhbCBjb250ZW50LXJlbGF0aXZlIFVSSSBvZiB0aGUgZGVzdGluYXRpb24KKyAgICAgICAgICAgICAgICAgIG9mIHRoaXMgdHJhbnNmZXIuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICAgIG1vZGlmaWVkIGJ5IHRoZSBpbmNsdXNpb24gb2YgcXVlcnkgcGFyYW1ldGVycywgYXMgZGVzY3JpYmVkCisgICAgICAgICAgICAgICAgICBpbiB0aGUgdGFnIGRlc2NyaXB0aW9uLiBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgIGV4YWN0bHkgb25lIG9mIHRoZSA8Y29kZT5hY3Rpb248L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAKKwkJICAgICAgIDxwPkFkZGl0aW9uYWxseSwgeW91IGNhbiBzcGVjaWZ5IGEgPGNvZGU+bW9kdWxlPC9jb2RlPiBwcmVmaXggCisJCQkgICBmb3IgbGlua2luZyB0byBvdGhlciBtb2R1bGVzLjwvcD4KKwkJCQkJCSAgIAorCQkJICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuMDwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bW9kdWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKwkJCQkgICA8cD5QcmVmaXggbmFtZSBvZiBhIDxjb2RlPk1vZHVsZTwvY29kZT4gdGhhdAorCQkJCSAgIGNvbnRhaW5zIHRoZSBhY3Rpb24gbWFwcGluZyBmb3IgdGhlIDxjb2RlPkFjdGlvbjwvY29kZT4KKwkJCQkgICB0aGF0IGlzIHNwZWNpZmllZCBieSB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUuCisJCQkJICAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGFuIDxjb2RlPmFjdGlvbjwvY29kZT4gCisJCQkJICAgYXR0cmlidXRlIGZvciB0aGlzIHRvIGhhdmUgYW4gZWZmZWN0LjwvcD4KKwkJCQorCQkJCSAgIDxwPjxzdHJvbmc+Tm90ZTogPC9zdHJvbmc+VXNlICIiIHRvIG1hcCB0byB0aGUgZGVmYXVsdCBtb2R1bGUuPC9wPgorCQkJICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YW5jaG9yPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPk9wdGlvbmFsIGFuY2hvciB0YWcgKCIjeHh4IikgdG8gYmUgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZAorICAgICAgICAgICAgICAgICAgaHlwZXJsaW5rLiAgU3BlY2lmeSB0aGlzIHZhbHVlIDxzdHJvbmc+d2l0aG91dDwvc3Ryb25nPiBhbnkKKyAgICAgICAgICAgICAgICAgICIjIiBjaGFyYWN0ZXIuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmZvcndhcmQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TG9naWNhbCBuYW1lIG9mIGEgZ2xvYmFsIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IHRoYXQKKyAgICAgICAgICAgICAgICAgICBjb250YWlucyB0aGUgYWN0dWFsIGNvbnRlbnQtcmVsYXRpdmUgVVJJIG9mIHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgICAgICAgIG9mIHRoaXMgdHJhbnNmZXIuICBUaGlzIGh5cGVybGluayBtYXkgYmUgZHluYW1pY2FsbHkKKyAgICAgICAgICAgICAgICAgICBtb2RpZmllZCBieSB0aGUgaW5jbHVzaW9uIG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIGFzIGRlc2NyaWJlZAorICAgICAgICAgICAgICAgICAgIGluIHRoZSB0YWcgZGVzY3JpcHRpb24uICBZb3UgPHN0cm9uZz5tdXN0PC9zdHJvbmc+IHNwZWNpZnkKKyAgICAgICAgICAgICAgICAgICBleGFjdGx5IG9uZSBvZiB0aGUgPGNvZGU+YWN0aW9uPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmZvcndhcmQ8L2NvZGU+IGF0dHJpYnV0ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgPGNvZGU+aHJlZjwvY29kZT4gYXR0cmlidXRlLCBvciB0aGUgPGNvZGU+cGFnZTwvY29kZT4KKyAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5ocmVmPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBVUkwgdG8gd2hpY2ggdGhpcyBoeXBlcmxpbmsgd2lsbCB0cmFuc2ZlciBjb250cm9sCisgICAgICAgICAgICAgICAgICAgaWYgYWN0aXZhdGVkLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5IG1vZGlmaWVkCisgICAgICAgICAgICAgICAgICAgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5CisgICAgICAgICAgICAgICAgICAgZXhhY3RseSBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5mb3J3YXJkPC9jb2RlPiBhdHRyaWJ1dGUsIHRoZQorICAgICAgICAgICAgICAgICAgIDxjb2RlPmhyZWY8L2NvZGU+IGF0dHJpYnV0ZSwgb3IgdGhlIDxjb2RlPnBhZ2U8L2NvZGU+CisgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlLjwvcD4KKyAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIEpTUCBiZWFuIHRoYXQgY29udGFpbnMgYSA8Y29kZT5NYXA8L2NvZGU+CisgICAgICAgICAgICAgICAgICByZXByZXNlbnRpbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMgKGlmIDxjb2RlPnByb3BlcnR5PC9jb2RlPgorICAgICAgICAgICAgICAgICAgaXMgbm90IHNwZWNpZmllZCksIG9yIGEgSlNQIGJlYW4gd2hvc2UgcHJvcGVydHkgZ2V0dGVyIGlzCisgICAgICAgICAgICAgICAgICBjYWxsZWQgdG8gcmV0dXJuIGEgPGNvZGU+TWFwPC9jb2RlPiAoaWYgPGNvZGU+cHJvcGVydHk8L2NvZGU+CisgICAgICAgICAgICAgICAgICBpcyBzcGVjaWZpZWQpLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wYWdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtb2R1bGUtcmVsYXRpdmUgcGF0aCAoYmVnaW5uaW5nIHdpdGggYSAiLyIKKyAgICAgICAgICAgICAgICAgIGNoYXJhY3RlcikgdG8gd2hpY2ggdGhpcyBoeXBlcmxpbmsgd2lsbCB0cmFuc2ZlciBjb250cm9sCisgICAgICAgICAgICAgICAgICAgaWYgYWN0aXZhdGVkLiAgVGhpcyBoeXBlcmxpbmsgbWF5IGJlIGR5bmFtaWNhbGx5IG1vZGlmaWVkCisgICAgICAgICAgICAgICAgICAgYnkgdGhlIGluY2x1c2lvbiBvZiBxdWVyeSBwYXJhbWV0ZXJzLCBhcyBkZXNjcmliZWQgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgdGFnIGRlc2NyaXB0aW9uLiAgWW91IDxzdHJvbmc+bXVzdDwvc3Ryb25nPiBzcGVjaWZ5IGV4YWN0bHkKKyAgICAgICAgICAgICAgICAgICBvbmUgb2YgdGhlIDxjb2RlPmFjdGlvbjwvY29kZT4gYXR0cmlidXRlLCB0aGUgCisgICAgICAgICAgICAgICAgICAgPGNvZGU+Zm9yd2FyZDwvY29kZT4gYXR0cmlidXRlLCB0aGUKKyAgICAgICAgICAgICAgICAgICA8Y29kZT5ocmVmPC9jb2RlPiBhdHRyaWJ1dGUsIG9yIHRoZSA8Y29kZT5wYWdlPC9jb2RlPgorICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZS48L3A+CisgICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSBkeW5hbWljYWxseQorICAgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmsuICBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcworICAgICAgICAgICAgICAgICAgZGVmaW5lZCBieSB0aGUgPGNvZGU+cGFyYW1OYW1lPC9jb2RlPiBhbmQgKG9wdGlvbmFsKQorICAgICAgICAgICAgICAgICAgPGNvZGU+cGFyYW1Qcm9wZXJ0eTwvY29kZT4gYXR0cmlidXRlcywgb3B0aW9uYWxseSBzY29wZWQgYnkKKyAgICAgICAgICAgICAgICAgIHRoZSA8Y29kZT5wYXJhbVNjb3BlPC9jb2RlPiBhdHRyaWJ1dGU8L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFyYW1OYW1lPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBuYW1lIG9mIGEgSlNQIGJlYW4gdGhhdCBpcyBhIFN0cmluZyBjb250YWluaW5nIHRoZQorICAgICAgICAgICAgICAgICAgdmFsdWUgZm9yIHRoZSByZXF1ZXN0IHBhcmFtZXRlciBuYW1lZCBieSA8Y29kZT5wYXJhbUlkPC9jb2RlPgorICAgICAgICAgICAgICAgICAgKGlmIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGlzIG5vdCBzcGVjaWZpZWQpLCBvciBhIEpTUAorICAgICAgICAgICAgICAgICAgYmVhbiB3aG9zZSBwcm9wZXJ0eSBnZXR0ZXIgaXMgY2FsbGVkIHRvIHJldHVybiBhIFN0cmluZworICAgICAgICAgICAgICAgICAgKGlmIDxjb2RlPnBhcmFtUHJvcGVydHk8L2NvZGU+IGlzIHNwZWNpZmllZCkuICBUaGUgSlNQIGJlYW4KKyAgICAgICAgICAgICAgICAgIGlzIGNvbnN0cmFpbmVkIHRvIHRoZSBiZWFuIHNjb3BlIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPnBhcmFtU2NvcGU8L2NvZGU+IHByb3BlcnR5LCBpZiBpdCBpcyBzcGVjaWZpZWQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtUHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG5hbWUgb2YgYSBwcm9wZXJ0eSBvZiB0aGUgYmVhbiBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5wYXJhbU5hbWU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hvc2UgcmV0dXJuIHZhbHVlIG11c3QKKyAgICAgICAgICAgICAgICAgIGJlIGEgU3RyaW5nIGNvbnRhaW5pbmcgdGhlIHZhbHVlIG9mIHRoZSByZXF1ZXN0IHBhcmFtZXRlcgorICAgICAgICAgICAgICAgICAgKG5hbWVkIGJ5IHRoZSA8Y29kZT5wYXJhbUlkPC9jb2RlPiBhdHRyaWJ1dGUpIHRoYXQgd2lsbCBiZQorICAgICAgICAgICAgICAgICAgZHluYW1pY2FsbHkgYWRkZWQgdG8gdGhpcyBoeXBlcmxpbmsuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhcmFtU2NvcGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIHNjb3BlIHdpdGhpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBiZWFuIHNwZWNpZmllZAorICAgICAgICAgICAgICAgICAgYnkgdGhlIDxjb2RlPnBhcmFtTmFtZTwvY29kZT4gYXR0cmlidXRlLiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgICAgICAgICAgICAgIGFsbCBzY29wZXMgYXJlIHNlYXJjaGVkLjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgbmFtZSBvZiBhIHByb3BlcnR5IG9mIHRoZSBiZWFuIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSwgd2hvc2UgcmV0dXJuIHZhbHVlIG11c3QgYmUKKyAgICAgICAgICAgICAgICAgIGEgPGNvZGU+amF2YS51dGlsLk1hcDwvY29kZT4gY29udGFpbmluZyB0aGUgcXVlcnkgcGFyYW1ldGVycworICAgICAgICAgICAgICAgICAgdG8gYmUgYWRkZWQgdG8gdGhlIGh5cGVybGluay4gIFlvdSA8c3Ryb25nPm11c3Q8L3N0cm9uZz4KKyAgICAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBpZiB5b3Ugc3BlY2lmeQorICAgICAgICAgICAgICAgICAgdGhpcyBhdHRyaWJ1dGUuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnNjb3BlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBzY29wZSB3aXRoaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgYmVhbiBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICAgIGJ5IHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUuICBJZiBub3Qgc3BlY2lmaWVkLCBhbGwKKyAgICAgICAgICAgICAgICAgIHNjb3BlcyBhcmUgc2VhcmNoZWQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRyYW5zYWN0aW9uPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5JZiBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIGFueSBjdXJyZW50IHRyYW5zYWN0aW9uCisgICAgICAgICAgICAgICAgICBjb250cm9sIHRva2VuIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIGdlbmVyYXRlZCBoeXBlcmxpbmssCisgICAgICAgICAgICAgICAgICBzbyB0aGF0IGl0IHdpbGwgcGFzcyBhbiA8Y29kZT5pc1Rva2VuVmFsaWQoKTwvY29kZT4gdGVzdAorICAgICAgICAgICAgICAgICAgaW4gdGhlIHJlY2VpdmluZyBBY3Rpb24uPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnVzZUxvY2FsRW5jb2Rpbmc8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgPHA+SWYgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCBMb2NhbENoYXJhY3RlckVuY29kaW5nIHdpbGwgYmUKKyAgICAgICAgICAgICAgdXNlZCwgdGhhdCBpcywgdGhlIGNoYXJhY3RlckVuY29kaW5nIHNldCB0byB0aGUgSHR0cFNlcnZsZXRSZXNwb25zZSwKKyAgICAgICAgICAgICAgYXMgcHJlZmVyZWQgY2hhcmFjdGVyIGVuY29kaW5nIHJhdGhlciB0aGFuIFVURi04LCB3aGVuCisgICAgICAgICAgICAgIFVSTEVuY29kaW5nIGlzIGRvbmUgb24gcGFyYW1ldGVycyBvZiB0aGUgVVJMLjwvcD4KKyAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5zZWxlY3Q8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU2VsZWN0VGFnPC90YWctY2xhc3M+CisgICAgICAgIDxib2R5LWNvbnRlbnQ+SlNQPC9ib2R5LWNvbnRlbnQ+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBBIFNlbGVjdCBFbGVtZW50CisgICAgICAgIDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPlJlbmRlcnMgYW4gSFRNTCAmbHQ7c2VsZWN0Jmd0OyBlbGVtZW50LCBhc3NvY2lhdGVkCisgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIGEgYmVhbiBwcm9wZXJ0eSBzcGVjaWZpZWQgYnkgb3VyIGF0dHJpYnV0ZXMuICBUaGlzCisgICAgICAgICAgICAgICAgICAgICAgICB0YWcgaXMgb25seSB2YWxpZCB3aGVuIG5lc3RlZCBpbnNpZGUgYSBmb3JtIHRhZyBib2R5LgorICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgorCisgICAgICAgICAgICAgICAgICAgICAgICA8cD5UaGlzIHRhZyBvcGVyYXRlcyBpbiB0d28gbW9kZXMsIGRlcGVuZGluZyB1cG9uIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgb2YgdGhlIDxjb2RlPm11bHRpcGxlPC9jb2RlPiBhdHRyaWJ1dGUsIHdoaWNoCisgICAgICAgICAgICAgICAgICAgICAgICBhZmZlY3RzIHRoZSBkYXRhIHR5cGUgb2YgdGhlIGFzc29jaWF0ZWQgcHJvcGVydHkgeW91CisgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGQgdXNlOjwvcD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48ZW0+bXVsdGlwbGU9InRydWUiIElTIE5PVCBzZWxlY3RlZDwvZW0+IC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSBzaG91bGQgYmUgYSBzY2FsYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSBvZiBhbnkgc3VwcG9ydGVkIGRhdGEgdHlwZS48L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxlbT5tdWx0aXBsZT0idHJ1ZSIgSVMgc2VsZWN0ZWQ8L2VtPiAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydHkgc2hvdWxkIGJlIGFuIGFycmF5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgYW55IHN1cHBvcnRlZCBkYXRhIHR5cGUuPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CisKKyAgICAgICAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+V0FSTklORzwvc3Ryb25nPjogIEluIG9yZGVyIHRvIGNvcnJlY3RseQorICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXplIGNhc2VzIHdoZXJlIG5vIHNlbGVjdGlvbiBhdCBhbGwgaXMgbWFkZSwgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5BY3Rpb25Gb3JtPC9jb2RlPiBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZvcm0KKyAgICAgICAgICAgICAgICAgICAgICAgIG11c3QgaW5jbHVkZSBhIHN0YXRlbWVudCByZXNldHRpbmcgdGhlIHNjYWxhciBwcm9wZXJ0eQorICAgICAgICAgICAgICAgICAgICAgICAgdG8gYSBkZWZhdWx0IHZhbHVlIChpZiA8Y29kZT5tdWx0aXBsZTwvY29kZT4gaXMgbm90CisgICAgICAgICAgICAgICAgICAgICAgICBzZXQpLCBvciB0aGUgYXJyYXkgcHJvcGVydHkgdG8gemVybyBsZW5ndGggKGlmCisgICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT5tdWx0aXBsZTwvY29kZT4gaXMgc2V0KSBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPnJlc2V0KCk8L2NvZGU+IG1ldGhvZC48L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TmFtZSBvZiB0aGUgcmVxdWVzdCBzY29wZSBiZWFuIHVuZGVyIHdoaWNoIG91ciBlcnJvciBtZXNzYWdlcworICAgICAgICAgICAgICAgICAgaGF2ZSBiZWVuIHN0b3JlZC4gIElmIG5vdCBwcmVzZW50LCB0aGUgbmFtZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5HbG9iYWxzLkVSUk9SX0tFWTwvY29kZT4gY29uc3RhbnQgc3RyaW5nIHdpbGwgYmUgdXNlZC48L3A+CisKKyAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBUaGlzIGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPiwgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPiBhbmQgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZXMgYW5kIHNob3VsZCBiZSBzZXQgdG8KKyAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgb24gdGhlCisgICAgICAgICAgICAgICAgICAmbHQ7aHRtbDplcnJvcnMvJmd0OyB0YWcuPC9wPiAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZTwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVDbGFzczwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJpZFszNF0ucHJvcGVydHlOYW1lIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgZm9yIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tdWx0aXBsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHNldCB0byBhbnkgYXJiaXRyYXJ5IHZhbHVlLCB0aGUgcmVuZGVyZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0IGVsZW1lbnQgd2lsbCBzdXBwb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlIHNlbGVjdGlvbnMuCisgICAgICAgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZAorICAgICAgICAgICAgICAgIHRvIGRldGVybWluZSB3aGljaCBvcHRpb24gc2hvdWxkIGJlIHByZS1zZWxlY3RlZCB3aGVuIHJlbmRlcmluZworICAgICAgICAgICAgICAgIHRoaXMgaW5wdXQgZmllbGQuICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgYmVhbiBhc3NvY2lhdGVkIHdpdGgKKyAgICAgICAgICAgICAgICB0aGUgZW5jbG9zaW5nIDxjb2RlPiZsdDtodG1sOmZvcm0mZ3Q7PC9jb2RlPiB0YWcgaXMgdXRpbGl6ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25ibHVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNoYW5nZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMgYW5kIGl0cyB2YWx1ZSBoYXMgY2hhbmdlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZGJsY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgZG91YmxlIGNsaWNrLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uZm9jdXM8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5ZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlwcmVzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyBkZXByZXNzZWQgYW5kIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5dXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUgbW91c2UKKyAgICAgICAgICAgICAgICBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyBkZXByZXNzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW1vdmU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCB0aGUgcG9pbnRlciBpcyBtb3ZlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3V0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIHdhcyBtb3ZlZCBvdXRzaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdmVyPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgd2FzIG5vdCB1bmRlcgorICAgICAgICAgICAgICAgIHRoZSBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciBpcyBtb3ZlZCBpbnNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cHJvcGVydHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2l6ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIG51bWJlciBvZiBhdmFpbGFibGUgb3B0aW9ucyBkaXNwbGF5ZWQgYXQgb25lIHRpbWUuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB2YWx1ZSB0byBjb21wYXJlIHdpdGggZm9yIG1hcmtpbmcgYW4gb3B0aW9uIHNlbGVjdGVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5zdWJtaXQ8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuU3VibWl0VGFnPC90YWctY2xhc3M+CisgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgPHA+PHN0cm9uZz4KKyAgICAgICAgICAgIFJlbmRlciBBIFN1Ym1pdCBCdXR0b24KKyAgICAgICAgPC9zdHJvbmc+PC9wPgorICAgICAgICAgIAorICAgICAgICAgICAgUmVuZGVycyBhbiBIVE1MICZsdDtpbnB1dCZndDsgZWxlbWVudCBvZiB0eXBlIDxjb2RlPnN1Ym1pdDwvY29kZT4uCisgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICBJZiBhIGdyYXBoaWNhbCBidXR0b24gaXMgbmVlZGVkIChhIGJ1dHRvbiB3aXRoIGFuIGltYWdlKSwgdGhlbiB0aGUKKyAgICAgICAgICAgICA8YSBocmVmPSIjaW1hZ2UiPjxjb2RlPmltYWdlPC9jb2RlPjwvYT4gdGFnIGlzIG1vcmUgYXBwcm9wcmlhdGUuCisgICAgICAgICAgICA8L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgbG9naWM6aXRlcmF0ZSB0YWcuICBJZiA8Y29kZT50cnVlPC9jb2RlPgorICAgICAgICAgICAgICAgIHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJwcm9wZXJ0eU5hbWVbMzRdIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkIGZvcgorICAgICAgICAgICAgICAgIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdCBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhpcworICAgICAgICAgICAgICAgIHN1Ym1pc3Npb24sIHNldCB0byB0aGUgc3BlY2lmaWVkIHZhbHVlLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBDU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgQ1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudAorICAgICAgICAgICAgICAgIChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIElkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIHZhbHVlIG9mIHRoZSBidXR0b24gbGFiZWwuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnRleHQ8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuVGV4dFRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+UmVuZGVyIEFuIElucHV0IEZpZWxkIG9mIFR5cGUgdGV4dDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICAgIDxwPlJlbmRlciBhbiBpbnB1dCBmaWVsZCBvZiB0eXBlIHRleHQuICBUaGlzIHRhZyBpcyBvbmx5IHZhbGlkIHdoZW4gCisgICAgICAgICAgICBuZXN0ZWQgaW5zaWRlIGEgZm9ybSB0YWcgYm9keS48L3A+CisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmFsdEtleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBvZiB0aGUgYWx0ZXJuYXRlIHRleHQgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YnVuZGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgICAgVGhlIHNlcnZsZXQgY29udGV4dCBhdHRyaWJ1dGVzIGtleSBmb3IgdGhlIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgdG8gdXNlLiAgSWYgbm90IHNwZWNpZmllZCwgZGVmYXVsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uIHJlc291cmNlcyBjb25maWd1cmVkIGZvciBvdXIgYWN0aW9uIHNlcnZsZXQuCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGlzYWJsZWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICBkaXNhYmxlZC4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+TmFtZSBvZiB0aGUgcmVxdWVzdCBzY29wZSBiZWFuIHVuZGVyIHdoaWNoIG91ciBlcnJvciBtZXNzYWdlcworICAgICAgICAgICAgICAgICAgaGF2ZSBiZWVuIHN0b3JlZC4gIElmIG5vdCBwcmVzZW50LCB0aGUgbmFtZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICA8Y29kZT5HbG9iYWxzLkVSUk9SX0tFWTwvY29kZT4gY29uc3RhbnQgc3RyaW5nIHdpbGwgYmUgdXNlZC48L3A+CisKKyAgICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBUaGlzIGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPiwgPGNvZGU+ZXJyb3JTdHlsZUNsYXNzPC9jb2RlPiBhbmQgCisgICAgICAgICAgICAgICAgICA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZXMgYW5kIHNob3VsZCBiZSBzZXQgdG8KKyAgICAgICAgICAgICAgICAgIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSA8Y29kZT5uYW1lPC9jb2RlPiBhdHRyaWJ1dGUgb24gdGhlCisgICAgICAgICAgICAgICAgICAmbHQ7aHRtbDplcnJvcnMvJmd0OyB0YWcuPC9wPiAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZTwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGEgImNsYXNzIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVDbGFzczwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvclN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgaWYKKyAgICAgICAgICAgICAgICBhbiBlcnJvciBleGlzdHMgZm9yIGl0IChyZW5kZXJzIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlSWQ8L2NvZGU+IGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IuPC9wPgorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aW5kZXhlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbGlkIG9ubHkgaW5zaWRlIG9mIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgICAgIElmIDxjb2RlPnRydWU8L2NvZGU+IHRoZW4gbmFtZSBvZiB0aGUgaHRtbCB0YWcgd2lsbCBiZSByZW5kZXJlZCBhcworICAgICAgICAgICAgICAgICJpZFszNF0ucHJvcGVydHlOYW1lIi4gTnVtYmVyIGluIGJyYWNrZXRzIHdpbGwgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgICAgICAgZm9yIGV2ZXJ5IGl0ZXJhdGlvbiBhbmQgdGFrZW4gZnJvbSBhbmNlc3RvciBsb2dpYzppdGVyYXRlIHRhZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5tYXhsZW5ndGg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE1heGltdW0gbnVtYmVyIG9mIGlucHV0IGNoYXJhY3RlcnMgdG8gYWNjZXB0LiBbTm8gbGltaXRdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVGhlIGF0dHJpYnV0ZSBuYW1lIG9mIHRoZSBiZWFuIHdob3NlIHByb3BlcnRpZXMgYXJlIGNvbnN1bHRlZAorICAgICAgICAgICAgICAgIHdoZW4gcmVuZGVyaW5nIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoaXMgaW5wdXQgZmllbGQuIElmIG5vdAorICAgICAgICAgICAgICAgIHNwZWNpZmllZCwgdGhlIGJlYW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIHRhZyB3ZSBhcmUgbmVzdGVkCisgICAgICAgICAgICAgICAgd2l0aGluIGlzIHV0aWxpemVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uYmx1cjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGxvc2VzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jaGFuZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzIGFuZCBpdHMgdmFsdWUgaGFzIGNoYW5nZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25jbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmRibGNsaWNrPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgYQorICAgICAgICAgICAgICAgIG1vdXNlIGRvdWJsZSBjbGljay4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmZvY3VzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgcmVjZWl2ZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleWRvd248L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ua2V5cHJlc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBoYXMgZm9jdXMgYW5kIGEKKyAgICAgICAgICAgICAgICBrZXkgaXMgZGVwcmVzc2VkIGFuZCByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXVwPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlIG1vdXNlCisgICAgICAgICAgICAgICAgcG9pbnRlciBhbmQgYSBtb3VzZSBidXR0b24gaXMgZGVwcmVzc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2Vtb3ZlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBhbmQgdGhlIHBvaW50ZXIgaXMgbW92ZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW91dDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGJ1dCB0aGUgcG9pbnRlciB3YXMgbW92ZWQgb3V0c2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlb3ZlcjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHdhcyBub3QgdW5kZXIKKyAgICAgICAgICAgICAgICB0aGUgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgaXMgbW92ZWQgaW5zaWRlIHRoZSBlbGVtZW50LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2V1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIHJlbGVhc2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uc2VsZWN0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiBhCisgICAgICAgICAgICAgICAgd2hlbiBhIHVzZXIgc2VsZWN0cyBzb21lIHRleHQgaW4gYSB0ZXh0IGZpZWxkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIE5hbWUgb2YgdGhpcyBpbnB1dCBmaWVsZCwgYW5kIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIGJlYW4KKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSBpZiB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkLiBUaGUgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5CisgICAgICAgICAgICAgICAgKGlmIGFueSkgbXVzdCBiZSBvZiB0eXBlIFN0cmluZy4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5yZWFkb25seTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIHJlYWQgb25seS4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c2l6ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgTnVtYmVyIG9mIGNoYXJhY3RlciBwb3NpdGlvbnMgdG8gYWxsb2NhdGUuIFtCcm93c2VyIGRlZmF1bHRdCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlQ2xhc3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPkNTUyBzdHlsZXNoZWV0IGNsYXNzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQKKyAgICAgICAgICAgICAgICAocmVuZGVycyBhICJjbGFzcyIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVDbGFzczwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+c3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCAocmVuZGVycworICAgICAgICAgICAgICAgIGFuICJpZCIgYXR0cmlidXRlKS48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhlIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4KKyAgICAgICAgICAgICAgICBvdmVycmlkZXMgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yIGZvciB0aGUgZWxlbWVudC48L3A+CisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGFiaW5kZXg8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSB0YWIgb3JkZXIgKGFzY2VuZGluZyBwb3NpdGl2ZSBpbnRlZ2VycykgZm9yIHRoaXMgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT50aXRsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5UaGUgYWR2aXNvcnkgdGl0bGUgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGVLZXk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGtleSBmb3IgdGhlIGFkdmlzb3J5IHRpdGxlCisgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT52YWx1ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsdWUgdG8gd2hpY2ggdGhpcyBmaWVsZCBzaG91bGQgYmUgaW5pdGlhbGl6ZWQuIFtVc2UgdGhlCisgICAgICAgICAgICAgICAgY29ycmVzcG9uZGluZyBiZWFuIHByb3BlcnR5IHZhbHVlXQorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT50ZXh0YXJlYTwvbmFtZT4KKyAgICAgICAgPHRhZy1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5UZXh0YXJlYVRhZzwvdGFnLWNsYXNzPgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+CisgICAgICAgICAgICBSZW5kZXIgQSBUZXh0YXJlYQorICAgICAgICA8L3N0cm9uZz48L3A+CisgICAgICAgICAgCisgICAgICAgICAgICBSZW5kZXIgYSB0ZXh0YXJlYSBlbGVtZW50LiAgVGhpcyB0YWcgaXMgb25seSB2YWxpZCB3aGVuIG5lc3RlZAorICAgICAgICAgICAgICAgIGluc2lkZSBhIGZvcm0gdGFnIGJvZHkuCisgICAgICAgIF1dPgorICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWNjZXNza2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUga2V5Ym9hcmQgY2hhcmFjdGVyIHVzZWQgdG8gbW92ZSBmb2N1cyBpbW1lZGlhdGVseSB0byB0aGlzCisgICAgICAgICAgICAgICAgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5hbHQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPlRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcyBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+YWx0S2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5UaGUgbWVzc2FnZSByZXNvdXJjZXMga2V5IG9mIHRoZSBhbHRlcm5hdGUgdGV4dCBmb3IgdGhpcworICAgICAgICAgICAgICAgIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5idW5kbGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgICBUaGUgc2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IGZvciB0aGUgTWVzc2FnZVJlc291cmNlcworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byB1c2UuICBJZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb24gcmVzb3VyY2VzIGNvbmZpZ3VyZWQgZm9yIG91ciBhY3Rpb24gc2VydmxldC4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5jb2xzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gZGlzcGxheS4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kaXNhYmxlZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8dHlwZT5ib29sZWFuPC90eXBlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgIFNldCB0byA8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGlzIGlucHV0IGZpZWxkIHNob3VsZCBiZQorICAgICAgICAgIGRpc2FibGVkLgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5lcnJvcktleTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgICA8cD5OYW1lIG9mIHRoZSByZXF1ZXN0IHNjb3BlIGJlYW4gdW5kZXIgd2hpY2ggb3VyIGVycm9yIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgICBoYXZlIGJlZW4gc3RvcmVkLiAgSWYgbm90IHByZXNlbnQsIHRoZSBuYW1lIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgIDxjb2RlPkdsb2JhbHMuRVJST1JfS0VZPC9jb2RlPiBjb25zdGFudCBzdHJpbmcgd2lsbCBiZSB1c2VkLjwvcD4KKworICAgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IFRoaXMgaXMgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGU8L2NvZGU+LCA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+IGFuZCAKKyAgICAgICAgICAgICAgICAgIDxjb2RlPmVycm9yU3R5bGVJZDwvY29kZT4gYXR0cmlidXRlcyBhbmQgc2hvdWxkIGJlIHNldCB0bworICAgICAgICAgICAgICAgICAgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIDxjb2RlPm5hbWU8L2NvZGU+IGF0dHJpYnV0ZSBvbiB0aGUKKyAgICAgICAgICAgICAgICAgICZsdDtodG1sOmVycm9ycy8mZ3Q7IHRhZy48L3A+IAorICAgICAgICAgICAgCisgICAgICAgICAgICA8ZGw+PGR0PjxiPlNpbmNlOjwvYj48L2R0PgorICAgICAgICAgICAgPGRkPlN0cnV0cyAxLjIuNTwvZGQ+PC9kbD4KKyAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZXJyb3JTdHlsZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50IGlmCisgICAgICAgICAgICAgICAgYW4gZXJyb3IgZXhpc3RzIGZvciBpdC48L3A+CisKKyAgICAgICAgICAgICAgICA8cD48c3Ryb25nPk4uQi48L3N0cm9uZz4gSWYgcHJlc2VudCwgdGhpcyBvdmVycmlkZXMgdGhlIAorICAgICAgICAgICAgICAgIDxjb2RlPnN0eWxlPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVDbGFzczwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+Q1NTIHN0eWxlc2hlZXQgY2xhc3MgdG8gYmUgYXBwbGllZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoaXMgb3ZlcnJpZGVzIHRoZSAKKyAgICAgICAgICAgICAgICA8Y29kZT5zdHlsZUNsYXNzPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIGV2ZW50IG9mIGFuIGVycm9yLjwvcD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgPGRsPjxkdD48Yj5TaW5jZTo8L2I+PC9kdD4KKyAgICAgICAgICAgIDxkZD5TdHJ1dHMgMS4yLjU8L2RkPjwvZGw+CisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVycm9yU3R5bGVJZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgPHA+SWRlbnRpZmllciB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEhUTUwgZWxlbWVudCBpZgorICAgICAgICAgICAgICAgIGFuIGVycm9yIGV4aXN0cyBmb3IgaXQgKHJlbmRlcnMgYW4gImlkIiBhdHRyaWJ1dGUpLjwvcD4KKworICAgICAgICAgICAgICAgIDxwPjxzdHJvbmc+Ti5CLjwvc3Ryb25nPiBJZiBwcmVzZW50LCB0aGlzIG92ZXJyaWRlcyB0aGUgCisgICAgICAgICAgICAgICAgPGNvZGU+c3R5bGVJZDwvY29kZT4gYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvci48L3A+CisgICAgICAgICAgICAKKyAgICAgICAgICAgIDxkbD48ZHQ+PGI+U2luY2U6PC9iPjwvZHQ+CisgICAgICAgICAgICA8ZGQ+U3RydXRzIDEuMi41PC9kZD48L2RsPgorICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pbmRleGVkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgVmFsaWQgb25seSBpbnNpZGUgb2YgbG9naWM6aXRlcmF0ZSB0YWcuCisgICAgICAgICAgICAgICAgSWYgPGNvZGU+dHJ1ZTwvY29kZT4gdGhlbiBuYW1lIG9mIHRoZSBodG1sIHRhZyB3aWxsIGJlIHJlbmRlcmVkIGFzCisgICAgICAgICAgICAgICAgImlkWzM0XS5wcm9wZXJ0eU5hbWUiLiBOdW1iZXIgaW4gYnJhY2tldHMgd2lsbCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgICAgICBmb3IgZXZlcnkgaXRlcmF0aW9uIGFuZCB0YWtlbiBmcm9tIGFuY2VzdG9yIGxvZ2ljOml0ZXJhdGUgdGFnLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBhdHRyaWJ1dGUgbmFtZSBvZiB0aGUgYmVhbiB3aG9zZSBwcm9wZXJ0aWVzIGFyZSBjb25zdWx0ZWQKKyAgICAgICAgICAgICAgICB3aGVuIHJlbmRlcmluZyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGlzIGlucHV0IGZpZWxkLiBJZiBub3QKKyAgICAgICAgICAgICAgICBzcGVjaWZpZWQsIHRoZSBiZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9ybSB0YWcgd2UgYXJlIG5lc3RlZAorICAgICAgICAgICAgICAgIHdpdGhpbiBpcyB1dGlsaXplZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmJsdXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBsb3NlcyBpbnB1dAorICAgICAgICAgICAgICAgIGZvY3VzLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2hhbmdlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgbG9zZXMgaW5wdXQKKyAgICAgICAgICAgICAgICBmb2N1cyBhbmQgaXRzIHZhbHVlIGhhcyBjaGFuZ2VkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9uY2xpY2s8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCByZWNlaXZlcyBhCisgICAgICAgICAgICAgICAgbW91c2UgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25kYmxjbGljazwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGEKKyAgICAgICAgICAgICAgICBtb3VzZSBkb3VibGUgY2xpY2suCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25mb2N1czwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IHJlY2VpdmVzIGlucHV0CisgICAgICAgICAgICAgICAgZm9jdXMuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXlkb3duPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbmtleXByZXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBKYXZhU2NyaXB0IGV2ZW50IGhhbmRsZXIgZXhlY3V0ZWQgd2hlbiB0aGlzIGVsZW1lbnQgaGFzIGZvY3VzIGFuZCBhCisgICAgICAgICAgICAgICAga2V5IGlzIGRlcHJlc3NlZCBhbmQgcmVsZWFzZWQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25rZXl1cDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGhhcyBmb2N1cyBhbmQgYQorICAgICAgICAgICAgICAgIGtleSBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlZG93bjwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZSBtb3VzZQorICAgICAgICAgICAgICAgIHBvaW50ZXIgYW5kIGEgbW91c2UgYnV0dG9uIGlzIGRlcHJlc3NlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNlbW92ZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gdGhpcyBlbGVtZW50IGlzIHVuZGVyIHRoZQorICAgICAgICAgICAgICAgIG1vdXNlIHBvaW50ZXIgYW5kIHRoZSBwb2ludGVyIGlzIG1vdmVkLgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm9ubW91c2VvdXQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgdW5kZXIgdGhlCisgICAgICAgICAgICAgICAgbW91c2UgcG9pbnRlciBidXQgdGhlIHBvaW50ZXIgd2FzIG1vdmVkIG91dHNpZGUgdGhlIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+b25tb3VzZW92ZXI8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCB3YXMgbm90IHVuZGVyCisgICAgICAgICAgICAgICAgdGhlIG1vdXNlIHBvaW50ZXIgYnV0IHRoZSBwb2ludGVyIGlzIG1vdmVkIGluc2lkZSB0aGUgZWxlbWVudC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbm1vdXNldXA8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIEphdmFTY3JpcHQgZXZlbnQgaGFuZGxlciBleGVjdXRlZCB3aGVuIHRoaXMgZWxlbWVudCBpcyB1bmRlciB0aGUKKyAgICAgICAgICAgICAgICBtb3VzZSBwb2ludGVyIGFuZCBhIG1vdXNlIGJ1dHRvbiBpcyByZWxlYXNlZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5vbnNlbGVjdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICAgICAgPCFbQ0RBVEFbCisgICAgICAgICAgICAgICAgSmF2YVNjcmlwdCBldmVudCBoYW5kbGVyIGV4ZWN1dGVkIHdoZW4gYQorICAgICAgICAgICAgICAgIHdoZW4gYSB1c2VyIHNlbGVjdHMgc29tZSB0ZXh0IGluIGEgdGV4dCBmaWVsZC4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBOYW1lIG9mIHRoaXMgaW5wdXQgZmllbGQsIGFuZCB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBiZWFuCisgICAgICAgICAgICAgICAgcHJvcGVydHkgaWYgdmFsdWUgaXMgbm90IHNwZWNpZmllZC4gVGhlIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eQorICAgICAgICAgICAgICAgIChpZiBhbnkpIG11c3QgYmUgb2YgdHlwZSBTdHJpbmcuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cmVhZG9ubHk8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICBTZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhpcyBpbnB1dCBmaWVsZCBzaG91bGQgYmUKKyAgICAgICAgICByZWFkIG9ubHkuCisgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnJvd3M8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFRoZSBudW1iZXIgb2Ygcm93cyB0byBkaXNwbGF5LgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlPC9jb2RlPgorICAgICAgICAgICAgICAgIG92ZXJyaWRlcyB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZXZlbnQgb2YgYW4gZXJyb3IgZm9yIHRoZSBlbGVtZW50LjwvcD4KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5zdHlsZUNsYXNzPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICA8cD5DU1Mgc3R5bGVzaGVldCBjbGFzcyB0byBiZSBhcHBsaWVkIHRvIHRoaXMgSFRNTCBlbGVtZW50CisgICAgICAgICAgICAgICAgKHJlbmRlcnMgYSAiY2xhc3MiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlQ2xhc3M8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnN0eWxlSWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIDxwPklkZW50aWZpZXIgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBIVE1MIGVsZW1lbnQgKHJlbmRlcnMKKyAgICAgICAgICAgICAgICBhbiAiaWQiIGF0dHJpYnV0ZSkuPC9wPgorCisgICAgICAgICAgICAgICAgPHA+PHN0cm9uZz5OLkIuPC9zdHJvbmc+IElmIHByZXNlbnQsIHRoZSA8Y29kZT5lcnJvclN0eWxlSWQ8L2NvZGU+CisgICAgICAgICAgICAgICAgb3ZlcnJpZGVzIHRoaXMgYXR0cmlidXRlIGluIHRoZSBldmVudCBvZiBhbiBlcnJvciBmb3IgdGhlIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRhYmluZGV4PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICBUaGUgdGFiIG9yZGVyIChhc2NlbmRpbmcgcG9zaXRpdmUgaW50ZWdlcnMpIGZvciB0aGlzIGVsZW1lbnQuCisgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgICAgPHA+VGhlIGFkdmlzb3J5IHRpdGxlIGZvciB0aGlzIGVsZW1lbnQuPC9wPgorICAgICAgICAgICAgICAgICAgXV0+CisgICAgICAgICAgICA8L2Rlc2NyaXB0aW9uPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlS2V5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgICAgICAgIDxwPlRoZSBtZXNzYWdlIHJlc291cmNlcyBrZXkgZm9yIHRoZSBhZHZpc29yeSB0aXRsZQorICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC48L3A+CisgICAgICAgICAgICAgICAgICBdXT4KKyAgICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dmFsdWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgICAgIDwhW0NEQVRBWworICAgICAgICAgICAgICAgIFZhbHVlIHRvIHdoaWNoIHRoaXMgZmllbGQgc2hvdWxkIGJlIGluaXRpYWxpemVkLiBbVXNlIHRoZQorICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgYmVhbiBwcm9wZXJ0eSB2YWx1ZV0KKyAgICAgICAgICAgIF1dPgorICAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+eGh0bWw8L25hbWU+CisgICAgICAgIDx0YWctY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuWGh0bWxUYWc8L3RhZy1jbGFzcz4KKyAgICAgICAgPGJvZHktY29udGVudD5lbXB0eTwvYm9keS1jb250ZW50PgorICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgICAgIDxwPjxzdHJvbmc+UmVuZGVyIEhUTUwgdGFncyBhcyBYSFRNTDwvc3Ryb25nPjwvcD4KKyAgICAgICAgICAKKyAgICAgICAgICA8cD4KKyAgICAgICAgICAgIFVzaW5nIHRoaXMgdGFnIGluIGEgcGFnZSB0ZWxscyBhbGwgb3RoZXIgaHRtbCB0YWdsaWIgdGFncworICAgICAgICAgICAgdG8gcmVuZGVyIHRoZW1zZWx2ZXMgYXMgWEhUTUwgMS4wLiAgVGhpcyBpcyB1c2VmdWwKKyAgICAgICAgICAgIHdoZW4gY29tcG9zaW5nIHBhZ2VzIHdpdGggSlNQIGluY2x1ZGVzIG9yIFRpbGVzLiAKKyAgICAgICAgICAgICZsdDtodG1sOmh0bWwgeGh0bWw9InRydWUiJmd0OyBoYXMgYSBzaW1pbGFyIGVmZmVjdC4gIFRoaXMKKyAgICAgICAgICAgIHRhZyBoYXMgbm8gYXR0cmlidXRlczsgeW91IHVzZSBpdCBsaWtlIHRoaXM6ICZsdDtodG1sOnhodG1sLyZndDsuCisgICAgICAgICAgPC9wPgorICAgICAgICAgIDxwPgorICAgICAgICAgIAk8c3Ryb25nPk5vdGU8L3N0cm9uZz46IEluY2x1ZGVkIHBhZ2VzIGRvIG5vdCBpbmhlcml0IHRoZSByZW5kZXJpbmcKKyAgICAgICAgICAJc3R5bGUgb2YgdGhlIGluY2x1ZGluZyBwYWdlLiAgRWFjaCBKU1AgZnJhZ21lbnQgb3IgVGlsZSBtdXN0IHVzZSB0aGlzCisgICAgICAgICAgCXRhZyB0byByZW5kZXIgYXMgWEhUTUwuICAKKyAgICAgICAgICA8L3A+CisgICAgICAgICAgXV0+CisgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgPC90YWc+Cis8L3RhZ2xpYj4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMvbGFiLTItMS1zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjA0Y2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzL2xhYi0yLTEtc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKQEAgLTAsMCArMSwzMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorCis8IURPQ1RZUEUgd2ViLWFwcCBQVUJMSUMKKyAgICAgICAgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4zLy9FTiIKKyAgICAgICAgImh0dHA6Ly9qYXZhLnN1bi5jb20vZHRkL3dlYi1hcHBfMl8zLmR0ZCI+CisKKzx3ZWItYXBwPgorICAgIDxkaXNwbGF5LW5hbWU+U3RydXRzIE1haWxSZWFkZXIgQXBwbGljYXRpb248L2Rpc3BsYXktbmFtZT4KKworICAgIDwhLS0gQWN0aW9uIFNlcnZsZXQgQ29uZmlndXJhdGlvbiAtLT4KKyAgICA8c2VydmxldD4KKyAgICAgICAgPHNlcnZsZXQtbmFtZT5hY3Rpb248L3NlcnZsZXQtbmFtZT4KKyAgICAgICAgPHNlcnZsZXQtY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQ8L3NlcnZsZXQtY2xhc3M+CisgICAgICAgIDxpbml0LXBhcmFtPgorICAgICAgICAgICAgPHBhcmFtLW5hbWU+Y29uZmlnPC9wYXJhbS1uYW1lPgorICAgICAgICAgICAgPHBhcmFtLXZhbHVlPgorICAgICAgICAgICAgICAgIC9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sLAorICAgICAgICAgICAgICAgIC9XRUItSU5GL1JlZ2lzdGVyLWNvbmZpZ3VyZS54bWwsCisgICAgICAgICAgICAgICAgL1dFQi1JTkYvTG9nb24tY29uZmlndXJlLnhtbAorICAgICAgICAgICAgPC9wYXJhbS12YWx1ZT4KKyAgICAgICAgPC9pbml0LXBhcmFtPgorICAgICAgICA8bG9hZC1vbi1zdGFydHVwPjE8L2xvYWQtb24tc3RhcnR1cD4KKyAgICA8L3NlcnZsZXQ+CisKKworICAgIDwhLS0gQWN0aW9uIFNlcnZsZXQgTWFwcGluZyAtLT4KKyAgICA8c2VydmxldC1tYXBwaW5nPgorICAgICAgICA8c2VydmxldC1uYW1lPmFjdGlvbjwvc2VydmxldC1uYW1lPgorICAgICAgICA8dXJsLXBhdHRlcm4+Ki5kbzwvdXJsLXBhdHRlcm4+CisgICAgPC9zZXJ2bGV0LW1hcHBpbmc+CisKKworPC93ZWItYXBwPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2UvTUVUQS1JTkYvY29udGV4dC54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9NRVRBLUlORi9jb250ZXh0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBiNWQwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2UvTUVUQS1JTkYvY29udGV4dC54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPENvbnRleHQgcGF0aD0iLyI+Cis8L0NvbnRleHQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9icm93c2UuaW1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2UvYnJvd3NlLmltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZTlmNTkxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2UvYnJvd3NlLmltbApAQCAtMCwwICsxLDY4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxtb2R1bGUgdmVyc2lvbj0iNCIgcmVsYXRpdmVQYXRocz0idHJ1ZSIgdHlwZT0iSjJFRV9XRUJfTU9EVUxFIiBqMmVlLWludGVncmF0aW9uPSJUb21jYXQgU2VydmVyIj4NCisgIDxjb21wb25lbnQgbmFtZT0iQXBwU2VydmVyU3BlY2lmaWNWYWxpZGF0b3JzTWFuYWdlciIgLz4NCisgIDxjb21wb25lbnQgbmFtZT0iTW9kdWxlUm9vdE1hbmFnZXIiIC8+DQorICA8Y29tcG9uZW50IG5hbWU9Ik5ld01vZHVsZVJvb3RNYW5hZ2VyIiBpbmhlcml0LWNvbXBpbGVyLW91dHB1dD0iZmFsc2UiPg0KKyAgICA8b3V0cHV0IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy9icm93c2UvV0VCLUlORi9jbGFzc2VzIiAvPg0KKyAgICA8ZXhjbHVkZS1vdXRwdXQgLz4NCisgICAgPGV4cGxvZGVkIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy9icm93c2UiIC8+DQorICAgIDxleGNsdWRlLWV4cGxvZGVkIC8+DQorICAgIDxjb250ZW50IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJCI+DQorICAgICAgPHNvdXJjZUZvbGRlciB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL2phdmEiIGlzVGVzdFNvdXJjZT0iZmFsc2UiIC8+DQorICAgICAgPHNvdXJjZUZvbGRlciB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3Rlc3QiIGlzVGVzdFNvdXJjZT0idHJ1ZSIgLz4NCisgICAgPC9jb250ZW50Pg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJpbmhlcml0ZWRKZGsiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9InNvdXJjZUZvbGRlciIgZm9yVGVzdHM9ImZhbHNlIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJTdHJ1dHMyIiBsZXZlbD0icHJvamVjdCIgLz4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ibGlicmFyeSIgbmFtZT0iTWFpbHJlYWRlci1kYW8iIGxldmVsPSJwcm9qZWN0IiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJzZXJ2bGV0LWFwaSIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeVByb3BlcnRpZXMgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJNb2R1bGVCdWlsZENvbXBvbmVudCI+DQorICAgIDxzZXR0aW5nIG5hbWU9IkVYUExPREVEX1VSTCIgdmFsdWU9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvYnJvd3NlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJFWFBMT0RFRF9FTkFCTEVEIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iSkFSX1VSTCIgdmFsdWU9ImZpbGU6Ly8iIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkpBUl9FTkFCTEVEIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IlNZTkNfRVhQTE9ERURfRElSIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iQlVJTERfTU9EVUxFX09OX0ZSQU1FX0RFQUNUSVZBVElPTiIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJCVUlMRF9FWFRFUk5BTF9ERVBFTkRFTkNJRVMiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iUlVOX0pBU1BFUl9WQUxJREFUSU9OIiB2YWx1ZT0iZmFsc2UiIC8+DQorICA8L2NvbXBvbmVudD4NCisgIDxjb21wb25lbnQgbmFtZT0iV2ViTW9kdWxlUHJvcGVydGllcyI+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMSIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9Ii9XRUItSU5GL2xpYiIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIj4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjAiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSImbHQ7Ti9BJmd0OyIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJNYWlscmVhZGVyLWRhbyIgbGV2ZWw9InByb2plY3QiPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMSIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9Ii9XRUItSU5GL2xpYiIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJzZXJ2bGV0LWFwaSIgbGV2ZWw9ImFwcGxpY2F0aW9uIj4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjAiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSImbHQ7Ti9BJmd0OyIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJTdHJ1dHMyIiBsZXZlbD0icHJvamVjdCI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSJ3ZWIueG1sIiB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwiIG9wdGlvbmFsPSJmYWxzZSIgdmVyc2lvbj0iMi4zIiAvPg0KKyAgICA8ZGVwbG95bWVudERlc2NyaXB0b3IgbmFtZT0iY29udGV4dC54bWwiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9NRVRBLUlORi9jb250ZXh0LnhtbCIgb3B0aW9uYWw9ImZhbHNlIiB2ZXJzaW9uPSI1LngiIC8+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSIiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9NRVRBLUlORi9jb250ZXh0LnhtbCIgb3B0aW9uYWw9ImZhbHNlIj4NCisgICAgICA8b3B0aW9uIG5hbWU9IkRFRkFVTFRfRElSIiB2YWx1ZT0iV0VCLUlORiIgLz4NCisgICAgICA8b3B0aW9uIG5hbWU9Ik5BTUUiIHZhbHVlPSIiIC8+DQorICAgICAgPG9wdGlvbiBuYW1lPSJERVNDUklQVElPTiIgdmFsdWU9IiIgLz4NCisgICAgPC9kZXBsb3ltZW50RGVzY3JpcHRvcj4NCisgICAgPHdlYnJvb3RzPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvd2ViYXBwIiByZWxhdGl2ZT0iLyIgLz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL2phdmEiIHJlbGF0aXZlPSIvV0VCLUlORi9zcmMvamF2YSIgLz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3Rlc3QiIHJlbGF0aXZlPSIvV0VCLUlORi9zcmMvdGVzdCIgLz4NCisgICAgPC93ZWJyb290cz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJsb2dpY1dlYk1vZHVsZVByb3BlcnRpZXMiIC8+DQorPC9tb2R1bGU+DQorDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvQXV0aGVudGljYXRpb25JbnRlcmNlcHRvci5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvQXV0aGVudGljYXRpb25JbnRlcmNlcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmMDg4ODkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9BdXRoZW50aWNhdGlvbkludGVyY2VwdG9yLmphdmEKQEAgLTAsMCArMSwzMSBAQAoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25JbnZvY2F0aW9uOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmludGVyY2VwdG9yLkludGVyY2VwdG9yOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKKworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK3B1YmxpYyBjbGFzcyBBdXRoZW50aWNhdGlvbkludGVyY2VwdG9yIGltcGxlbWVudHMgSW50ZXJjZXB0b3IgeworCisgICAgcHVibGljIHZvaWQgZGVzdHJveSgpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBpbml0KCkgeworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgaW50ZXJjZXB0KEFjdGlvbkludm9jYXRpb24gYWN0aW9uSW52b2NhdGlvbikgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgTWFwIHNlc3Npb24gPSBhY3Rpb25JbnZvY2F0aW9uLmdldEludm9jYXRpb25Db250ZXh0KCkuZ2V0U2Vzc2lvbigpOworCisgICAgICAgIFVzZXIgdXNlciA9IChVc2VyKSBzZXNzaW9uLmdldChNYWlsUmVhZGVyU3VwcG9ydC5VU0VSX0tFWSk7CisKKyAgICAgICAgYm9vbGVhbiBpc0F1dGhlbnRpY2F0ZWQgPSAobnVsbCAhPSB1c2VyKSAmJiAobnVsbCAhPSB1c2VyLmdldERhdGFiYXNlKCkpOworCisgICAgICAgIGlmICghaXNBdXRoZW50aWNhdGVkKSB7CisgICAgICAgICAgICByZXR1cm4gQWN0aW9uLkxPR0lOOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGFjdGlvbkludm9jYXRpb24uaW52b2tlKCk7CisgICAgICAgIH0KKworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9EYXRhYmFzZUxpc3RlbmVyLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9EYXRhYmFzZUxpc3RlbmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZhNjRkOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL0RhdGFiYXNlTGlzdGVuZXIuamF2YQpAQCAtMCwwICsxLDIzMCBAQAorLyoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDIsMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqICRJZDogQXBwbGljYXRpb25MaXN0ZW5lci5qYXZhIDM3MjA4NyAyMDA2LTAxLTI1IDAzOjM4OjQyWiBjcmFpZ21jYyAkCisgKi8KKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uaW1wbC5tZW1vcnkuTWVtb3J5VXNlckRhdGFiYXNlOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0RXZlbnQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dExpc3RlbmVyOworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiA8cD48Y29kZT5TZXJ2bGV0Q29udGV4dExpc3RlbmVyPC9jb2RlPiB0aGF0IGluaXRpYWxpemVzIGFuZCBmaW5hbGl6ZXMgdGhlCisgKiBwZXJzaXN0ZW50IHN0b3JhZ2Ugb2YgVXNlciBhbmQgU3Vic2NyaXB0aW9uIGluZm9ybWF0aW9uIGZvciB0aGUgU3RydXRzCisgKiBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uLCB1c2luZyBhbiBpbi1tZW1vcnkgZGF0YWJhc2UgYmFja2VkIGJ5IGFuIFhNTAorICogZmlsZS48L3A+CisgKiA8cC8+CisgKiA8cD48c3Ryb25nPklNUExFTUVOVEFUSU9OIFdBUk5JTkc8L3N0cm9uZz4gLSBJZiB0aGlzIHdlYiBhcHBsaWNhdGlvbiBpcyBydW4KKyAqIGZyb20gYSBXQVIgZmlsZSwgb3IgaW4gYW5vdGhlciBlbnZpcm9ubWVudCB3aGVyZSByZWFkaW5nIGFuZCB3cml0aW5nIG9mIHRoZQorICogd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIGlzIGltcG9zc2libGUsIHRoZSBpbml0aWFsIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkCisgKiB0byBhIGZpbGUgaW4gdGhlIHdlYiBhcHBsaWNhdGlvbiB0ZW1wb3JhcnkgZGlyZWN0b3J5IHByb3ZpZGVkIGJ5IHRoZQorICogY29udGFpbmVyLiAgVGhpcyBpcyBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlcyBvbmx5IC0geW91IHNob3VsZAorICogPHN0cm9uZz5OT1Q8L3N0cm9uZz4gYXNzdW1lIHRoYXQgZmlsZXMgd3JpdHRlbiBoZXJlIHdpbGwgc3Vydml2ZSBhIHJlc3RhcnQKKyAqIG9mIHlvdXIgc2VydmxldCBjb250YWluZXIuPC9wPgorICogPHAvPgorICogPHA+VGhpcyBjbGFzcyB3YXMgYm9ycm93ZWQgZnJvbSB0aGUgU2hhbGUgTWFpbHJlYWRlci4gQ2hhbmdlcyB3ZXJlOjwvcD4KKyAqIDxwLz4KKyAqIDx1bD4KKyAqIDxwLz4KKyAqIDxsaT5QYXRoIHRvIGRhdGFiYXNlLnhtbCAodW5kZXIgY2xhc3NlcyBoZXJlKS4gPC9saT4KKyAqIDxwLz4KKyAqIDxsaT5DbGFzcyB0byBzdG9yZSBwcm90b2NvbCBsaXN0IChhbiBhcnJheSBoZXJlKS4gPC9saT4KKyAqIDxwLz4KKyAqIDwvdWw+CisgKiA8cC8+CisgKiBERVZFTE9QTUVOVCBOT1RFIC0gQW5vdGhlciBhcHByb2FjaCB3b3VsZCBiZSB0byBpbnN0YW50aWF0ZSB0aGUgZGF0YWJhc2UgdmlhIFNwcmluZy4KKyAqIDwvcD4KKyAqLworCitwdWJsaWMgZmluYWwgY2xhc3MgRGF0YWJhc2VMaXN0ZW5lciBpbXBsZW1lbnRzIFNlcnZsZXRDb250ZXh0TGlzdGVuZXIgeworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1hbmlmZXN0IENvbnN0YW50cworCisKKyAgICAvKioKKyAgICAgKiA8cD5BcHBpY2F0aW9uIHNjb3BlIGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggdGhlIGluLW1lbW9yeSB2ZXJzaW9uIG9mCisgICAgICogb3VyIGRhdGFiYXNlIGlzIHN0b3JlZC48L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQUJBU0VfS0VZID0gImRhdGFiYXNlIjsKKworCisgICAgLyoqCisgICAgICogPHA+QXBwbGljYXRpb24gc2NvcGUgYXR0cmlidXRlIGtleSB1bmRlciB3aGljaCB0aGUgdmFsaWQgc2VsZWN0aW9uCisgICAgICogaXRlbXMgZm9yIHRoZSBwcm90b2NvbCBwcm9wZXJ0eSBpcyBzdG9yZWQuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBST1RPQ09MU19LRVkgPSAicHJvdG9jb2xzIjsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJbnN0YW5jZSBWYXJpYWJsZXMKKworCisgICAgLyoqCisgICAgICogPHA+VGhlIDxjb2RlPlNlcnZsZXRDb250ZXh0PC9jb2RlPiBmb3IgdGhpcyB3ZWIgYXBwbGljYXRpb24uPC9wPgorICAgICAqLworICAgIHByaXZhdGUgU2VydmxldENvbnRleHQgY29udGV4dCA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIFRoZSB7QGxpbmsgTWVtb3J5VXNlckRhdGFiYXNlfSBvYmplY3Qgd2UgY29uc3RydWN0IGFuZCBtYWtlIGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIE1lbW9yeVVzZXJEYXRhYmFzZSBkYXRhYmFzZSA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIDxwPkxvZ2dpbmcgb3V0cHV0IGZvciB0aGlzIHBsdWcgaW4gaW5zdGFuY2UuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgTG9nIGxvZyA9IExvZ0ZhY3RvcnkuZ2V0TG9nKHRoaXMuZ2V0Q2xhc3MoKSk7CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3BlcnRpZXMKKworCisgICAgLyoqCisgICAgICogPHA+VGhlIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIG9mIG91ciBwZXJzaXN0ZW50IGRhdGFiYXNlIHN0b3JhZ2UKKyAgICAgKiBmaWxlLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXRobmFtZSA9ICIvV0VCLUlORi9jbGFzc2VzL2RhdGFiYXNlLnhtbCI7CisKKyAgICAvKioKKyAgICAgKiA8cD5SZXR1cm4gdGhlIGFwcGxpY2F0aW9uIHJlc291cmNlIHBhdGggdG8gdGhlIGRhdGFiYXNlLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCBwYXRoIHRvIHRoZSBkYXRhYmFzZQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGF0aG5hbWUoKSB7CisgICAgICAgIHJldHVybiAodGhpcy5wYXRobmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0IHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIHRvIHRoZSBkYXRhYmFzZS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0aG5hbWUgdG8gdGhlIGRhdGFiYXNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGF0aG5hbWUoU3RyaW5nIHBhdGhuYW1lKSB7CisgICAgICAgIHRoaXMucGF0aG5hbWUgPSBwYXRobmFtZTsKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2VydmxldENvbnRleHRMaXN0ZW5lciBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIDxwPkdyYWNlZnVsbHkgc2h1dCBkb3duIHRoaXMgZGF0YWJhc2UsIHJlbGVhc2luZyBhbnkgcmVzb3VyY2VzIHRoYXQKKyAgICAgKiB3ZXJlIGFsbG9jYXRlZCBhdCBpbml0aWFsaXphdGlvbi48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZXZlbnQgU2VydmxldENvbnRleHRFdmVudCB0byBwcm9jZXNzCisgICAgICovCisgICAgcHVibGljIHZvaWQgY29udGV4dERlc3Ryb3llZChTZXJ2bGV0Q29udGV4dEV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgbG9nLmluZm8oIkZpbmFsaXppbmcgbWVtb3J5IGRhdGFiYXNlIHBsdWcgaW4iKTsKKworICAgICAgICBpZiAoZGF0YWJhc2UgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBkYXRhYmFzZS5jbG9zZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2cuZXJyb3IoIkNsb3NpbmcgbWVtb3J5IGRhdGFiYXNlIiwgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBjb250ZXh0LnJlbW92ZUF0dHJpYnV0ZShEQVRBQkFTRV9LRVkpOworICAgICAgICBjb250ZXh0LnJlbW92ZUF0dHJpYnV0ZShQUk9UT0NPTFNfS0VZKTsKKyAgICAgICAgZGF0YWJhc2UgPSBudWxsOworICAgICAgICBjb250ZXh0ID0gbnVsbDsKKworICAgIH0KKworCisgICAgLyoqCisgICAgICogPHA+SW5pdGlhbGl6ZSBhbmQgbG9hZCBvdXIgaW5pdGlhbCBkYXRhYmFzZSBmcm9tIHBlcnNpc3RlbnQKKyAgICAgKiBzdG9yYWdlLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBldmVudCBUaGUgY29udGV4dCBpbml0aWFsaXphdGlvbiBldmVudAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbnRleHRJbml0aWFsaXplZChTZXJ2bGV0Q29udGV4dEV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgbG9nLmluZm8oIkluaXRpYWxpemluZyBtZW1vcnkgZGF0YWJhc2UgcGx1ZyBpbiBmcm9tICciICsKKyAgICAgICAgICAgICAgICBwYXRobmFtZSArICInIik7CisKKyAgICAgICAgLy8gUmVtZW1iZXIgb3VyIGFzc29jaWF0ZWQgU2VydmxldENvbnRleHQKKyAgICAgICAgdGhpcy5jb250ZXh0ID0gZXZlbnQuZ2V0U2VydmxldENvbnRleHQoKTsKKworICAgICAgICAvLyBDb25zdHJ1Y3QgYSBuZXcgZGF0YWJhc2UgYW5kIG1ha2UgaXQgYXZhaWxhYmxlCisgICAgICAgIGRhdGFiYXNlID0gbmV3IE1lbW9yeVVzZXJEYXRhYmFzZSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nIHBhdGggPSBjYWxjdWxhdGVQYXRoKCk7CisgICAgICAgICAgICBpZiAobG9nLmlzRGVidWdFbmFibGVkKCkpIHsKKyAgICAgICAgICAgICAgICBsb2cuZGVidWcoIiBMb2FkaW5nIGRhdGFiYXNlIGZyb20gJyIgKyBwYXRoICsgIiciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRhdGFiYXNlLnNldFBhdGhuYW1lKHBhdGgpOworICAgICAgICAgICAgZGF0YWJhc2Uub3BlbigpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nLmVycm9yKCJPcGVuaW5nIG1lbW9yeSBkYXRhYmFzZSIsIGUpOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ2Fubm90IGxvYWQgZGF0YWJhc2UgZnJvbSAnIiArCisgICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lICsgIic6ICIgKyBlKTsKKyAgICAgICAgfQorICAgICAgICBjb250ZXh0LnNldEF0dHJpYnV0ZShEQVRBQkFTRV9LRVksIGRhdGFiYXNlKTsKKworICAgIH0KKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByaXZhdGUgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiA8cD5DYWxjdWxhdGUgYW5kIHJldHVybiBhbiBhYnNvbHV0ZSBwYXRobmFtZSB0byB0aGUgWE1MIGZpbGUgdG8gY29udGFpbgorICAgICAqIG91ciBwZXJzaXN0ZW50IHN0b3JhZ2UgaW5mb3JtYXRpb24uPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBBYnNvbHV0ZSBwYXRoIHRvIFhNTCBmaWxlLgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBjYWxjdWxhdGVQYXRoKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gQ2FuIHdlIGFjY2VzcyB0aGUgZGF0YWJhc2UgdmlhIGZpbGUgSS9PPworICAgICAgICBTdHJpbmcgcGF0aCA9IGNvbnRleHQuZ2V0UmVhbFBhdGgocGF0aG5hbWUpOworICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gKHBhdGgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRG9lcyBhIGNvcHkgb2YgdGhpcyBmaWxlIGFscmVhZHkgZXhpc3QgaW4gb3VyIHRlbXBvcmFyeSBkaXJlY3RvcnkKKyAgICAgICAgRmlsZSBkaXIgPSAoRmlsZSkKKyAgICAgICAgICAgICAgICBjb250ZXh0LmdldEF0dHJpYnV0ZSgiamF2YXguc2VydmxldC5jb250ZXh0LnRlbXBkaXIiKTsKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoZGlyLCAic3RydXRzLWV4YW1wbGUtZGF0YWJhc2UueG1sIik7CisgICAgICAgIGlmIChmaWxlLmV4aXN0cygpKSB7CisgICAgICAgICAgICByZXR1cm4gKGZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29weSB0aGUgc3RhdGljIHJlc291cmNlIHRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHJldHVybiBpdHMgcGF0aAorICAgICAgICBJbnB1dFN0cmVhbSBpcyA9CisgICAgICAgICAgICAgICAgY29udGV4dC5nZXRSZXNvdXJjZUFzU3RyZWFtKHBhdGhuYW1lKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiaXMgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcywgMTAyNCk7CisgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gb3MgPQorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGUpOworICAgICAgICBCdWZmZXJlZE91dHB1dFN0cmVhbSBib3MgPSBuZXcgQnVmZmVyZWRPdXRwdXRTdHJlYW0ob3MsIDEwMjQpOworICAgICAgICBieXRlIGJ1ZmZlcltdID0gbmV3IGJ5dGVbMTAyNF07CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgbiA9IGJpcy5yZWFkKGJ1ZmZlcik7CisgICAgICAgICAgICBpZiAobiA8PSAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib3Mud3JpdGUoYnVmZmVyLCAwLCBuKTsKKyAgICAgICAgfQorICAgICAgICBib3MuY2xvc2UoKTsKKyAgICAgICAgYmlzLmNsb3NlKCk7CisgICAgICAgIHJldHVybiAoZmlsZS5nZXRBYnNvbHV0ZVBhdGgoKSk7CisKKyAgICB9CisKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvSGVsbG8uamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL0hlbGxvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JkMzUwNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL0hlbGxvLmphdmEKQEAgLTAsMCArMSwxNiBAQAoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvblN1cHBvcnQ7CisKKy8qKgorICogRXhhbXBsZSBBY3Rpb24gY2xhc3MuCisgKi8KK3B1YmxpYyBjbGFzcyBIZWxsbyBleHRlbmRzIEFjdGlvblN1cHBvcnQgeworCisgICAgLyoqCisgICAgICogQW4gZXhhbXBsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGRvZXMgbm90aGluZyBhbmQgcmV0dXJucyAic3VjY2VzcyIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHtAbGluayAjU1VDQ0VTU30KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvTG9naW4tdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9Mb2dpbi12YWxpZGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDkzNTlmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvTG9naW4tdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+CisKKzx2YWxpZGF0b3JzPgorICAgIDxmaWVsZCBuYW1lPSJ1c2VybmFtZSI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci51c2VybmFtZS5yZXF1aXJlZCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorICAgIDxmaWVsZCBuYW1lPSJwYXNzd29yZCI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5wYXNzd29yZC5yZXF1aXJlZCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorPC92YWxpZGF0b3JzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvTG9naW4uamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL0xvZ2luLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZkZWIwOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL0xvZ2luLmphdmEKQEAgLTAsMCArMSwyMiBAQAoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKKworcHVibGljIGNsYXNzIExvZ2luIGV4dGVuZHMgTWFpbFJlYWRlclN1cHBvcnQgeworCisgICAgcHVibGljIFN0cmluZyBzYXZlKCkgdGhyb3dzIEV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgVXNlciB1c2VyID0gZmluZFVzZXIoZ2V0VXNlcm5hbWUoKSwgZ2V0UGFzc3dvcmQoKSk7CisKKyAgICAgICAgaWYgKHVzZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgc2V0VXNlcih1c2VyKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChoYXNFcnJvcnMoKSkgeworICAgICAgICAgICAgcmV0dXJuIElOUFVUOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL0xvZ291dC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvTG9nb3V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYxN2YxMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL0xvZ291dC5qYXZhCkBAIC0wLDAgKzEsOSBAQAorcHVibGljIGNsYXNzIExvZ291dCBleHRlbmRzIE1haWxSZWFkZXJTdXBwb3J0IHsKKworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHsKKworICAgICAgICBzZXRVc2VyKG51bGwpOworCisgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL01haWxSZWFkZXJTdXBwb3J0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9NYWlsUmVhZGVyU3VwcG9ydC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmYTE2M2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9NYWlsUmVhZGVyU3VwcG9ydC5qYXZhCkBAIC0wLDAgKzEsMzI1IEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS51dGlsLkJlYW5VdGlsczsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25TdXBwb3J0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uU3Vic2NyaXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXJEYXRhYmFzZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLmltcGwubWVtb3J5Lk1lbW9yeVN1YnNjcmlwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuaW50ZXJjZXB0b3IuQXBwbGljYXRpb25Bd2FyZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuaW50ZXJjZXB0b3IuU2Vzc2lvbkF3YXJlOworCitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworcHVibGljIGNsYXNzIE1haWxSZWFkZXJTdXBwb3J0IGV4dGVuZHMgQWN0aW9uU3VwcG9ydAorICAgICAgICBpbXBsZW1lbnRzIEFwcGxpY2F0aW9uQXdhcmUsIFNlc3Npb25Bd2FyZSB7CisKKyAgICAvLyAtLS0tIFJlZ2lzdGVyIGZvcm0gcHJvcGVydGllcyAtLS0tCisKKyAgICBwcml2YXRlIFN0cmluZyB1c2VybmFtZSA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFVzZXJuYW1lKCkgeworICAgICAgICByZXR1cm4gdXNlcm5hbWU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VXNlcm5hbWUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHVzZXJuYW1lID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRQYXNzd29yZCgpIHsKKyAgICAgICAgcmV0dXJuIHBhc3N3b3JkOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFBhc3N3b3JkKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBwYXNzd29yZCA9IHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIHBhc3N3b3JkMiA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkMigpIHsKKyAgICAgICAgcmV0dXJuIHBhc3N3b3JkMjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRQYXNzd29yZDIoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHBhc3N3b3JkMiA9IHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIGZ1bGxOYW1lID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RnVsbE5hbWUoKSB7CisgICAgICAgIHJldHVybiBmdWxsTmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRGdWxsTmFtZShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgZnVsbE5hbWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBmcm9tQWRkcmVzcyA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEZyb21BZGRyZXNzKCkgeworICAgICAgICByZXR1cm4gZnJvbUFkZHJlc3M7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RnJvbUFkZHJlc3MoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIGZyb21BZGRyZXNzID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgcmVwbHlUb0FkZHJlc3MgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRSZXBseVRvQWRkcmVzcygpIHsKKyAgICAgICAgcmV0dXJuIHJlcGx5VG9BZGRyZXNzOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFJlcGx5VG9BZGRyZXNzKFN0cmluZyB2YWx1ZSkgeworICAgICAgICByZXBseVRvQWRkcmVzcyA9IHZhbHVlOworICAgIH0KKworICAgIC8vIC0tLS0gU3Vic2NyaXB0aW9uIGZvcm0gcHJvcGVydGllcyAtLS0tCisKKyAgICBwcml2YXRlIFN0cmluZyBob3N0OworCisgICAgcHVibGljIFN0cmluZyBnZXRIb3N0KCkgeworICAgICAgICByZXR1cm4gaG9zdDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRIb3N0KFN0cmluZyB2YWx1ZSkgeworICAgICAgICBob3N0ID0gdmFsdWU7CisgICAgfQorCisgICAgLy8gLS0tLSBUYXNrIHByb3BlcnR5ICh1dGlsaXplZCBieSBVSSkgLS0tLQorCisgICAgcHJpdmF0ZSBTdHJpbmcgdGFzayA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRhc2soKSB7CisgICAgICAgIHJldHVybiB0YXNrOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFRhc2soU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHRhc2sgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvLyAtLS0tIEtleXMgLS0tLQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQUJBU0VfS0VZID0gImRhdGFiYXNlIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVQlNDUklQVElPTl9LRVkgPSAic3Vic2NyaXB0aW9uIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFVTRVJfS0VZID0gInVzZXIiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSE9TVCA9ICJob3N0IjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBBU1NXT1JEX01JU01BVENIX0ZJRUxEID0gInBhc3N3b3JkIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENBTkNFTCA9ICJjYW5jZWwiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ1JFQVRFID0gIkNyZWF0ZSI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFRElUID0gIkVkaXQiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVMRVRFID0gIkRlbGV0ZSI7CisKKyAgICAvLyAtLS0tIE1lc3NhZ2UgS2V5cyAtLS0tCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9EQVRBQkFTRV9NSVNTSU5HID0KKyAgICAgICAgICAgICJlcnJvci5kYXRhYmFzZS5taXNzaW5nIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVSUk9SX1VTRVJOQU1FX1VOSVFVRSA9CisgICAgICAgICAgICAiZXJyb3IudXNlcm5hbWUudW5pcXVlIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVSUk9SX1BBU1NXT1JEX01JU01BVENIID0KKyAgICAgICAgICAgICJlcnJvci5wYXNzd29yZC5taXNtYXRjaCI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9QQVNTV09SRF9NQVRDSCA9CisgICAgICAgICAgICAiZXJyb3IucGFzc3dvcmQubWF0Y2giOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfSE9TVF9VTklRVUUKKyAgICAgICAgICAgID0gIlRoYXQgaG9zdG5hbWUgaXMgYWxyZWFkeSBkZWZpbmVkIjsKKworICAgIC8vIC0tLS0gQXBwbGljYXRpb25Bd2FyZSAtLS0tCisKKyAgICBwcml2YXRlIE1hcCBhcHBsaWNhdGlvbjsKKworICAgIHB1YmxpYyB2b2lkIHNldEFwcGxpY2F0aW9uKE1hcCB2YWx1ZSkgeworICAgICAgICBhcHBsaWNhdGlvbiA9IHZhbHVlOworICAgIH0KKworICAgIHB1YmxpYyBNYXAgZ2V0QXBwbGljYXRpb24oKSB7CisgICAgICAgIHJldHVybiBhcHBsaWNhdGlvbjsKKyAgICB9CisKKyAgICAvLyAtLS0tIERhdGFiYXNlIHByb3BlcnR5IC0tLS0KKworICAgIHB1YmxpYyBVc2VyRGF0YWJhc2UgZ2V0RGF0YWJhc2UoKSB7CisgICAgICAgIE9iamVjdCBkYiA9IGdldEFwcGxpY2F0aW9uKCkuZ2V0KERBVEFCQVNFX0tFWSk7CisgICAgICAgIGlmIChkYiA9PSBudWxsKSB7CisgICAgICAgICAgICB0aGlzLmFkZEFjdGlvbkVycm9yKGdldFRleHQoRVJST1JfREFUQUJBU0VfTUlTU0lORykpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoVXNlckRhdGFiYXNlKSBkYjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXREYXRhYmFzZShVc2VyRGF0YWJhc2UgZGF0YWJhc2UpIHsKKyAgICAgICAgZ2V0QXBwbGljYXRpb24oKS5wdXQoREFUQUJBU0VfS0VZLCBkYXRhYmFzZSk7CisgICAgfQorCisgICAgLy8gLS0tLSBTZXNzaW9uQXdhcmUgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+RmllbGQgdG8gc3RvcmUgc2Vzc2lvbiBjb250ZXh0LCBvciBpdHMgcHJveHkuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgTWFwIHNlc3Npb247CisKKyAgICAvKioKKyAgICAgKiA8cD5TdG9yZSBhIG5ldyBzZXNzaW9uIGNvbnRleHQuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHZhbHVlIEEgTWFwIHJlcHJlc2VudGluZyBzZXNzaW9uIHN0YXRlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2Vzc2lvbihNYXAgdmFsdWUpIHsKKyAgICAgICAgc2Vzc2lvbiA9IHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgc2Vzc2lvbiBjb250ZXh0LjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc2Vzc2lvbiBjb250ZXh0CisgICAgICovCisgICAgcHVibGljIE1hcCBnZXRTZXNzaW9uKCkgeworICAgICAgICByZXR1cm4gc2Vzc2lvbjsKKyAgICB9CisKKyAgICAvLyAtLS0tIFN1YnNjcmlwdGlvbiBwcm9wZXJ0eSAtLS0tCisKKyAgICBwdWJsaWMgU3Vic2NyaXB0aW9uIGdldFN1YnNjcmlwdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIChTdWJzY3JpcHRpb24pIGdldFNlc3Npb24oKS5nZXQoU1VCU0NSSVBUSU9OX0tFWSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0U3Vic2NyaXB0aW9uKFN1YnNjcmlwdGlvbiBzdWJzY3JpcHRpb24pIHsKKyAgICAgICAgZ2V0U2Vzc2lvbigpLnB1dChTVUJTQ1JJUFRJT05fS0VZLCBzdWJzY3JpcHRpb24pOworICAgIH0KKworCisgICAgcHVibGljIFN0cmluZyBnZXRTdWJzY3JpcHRpb25Ib3N0KCkgeworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gZ2V0U3Vic2NyaXB0aW9uKCk7CisgICAgICAgIGlmIChudWxsID09IHN1YikgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN1Yi5nZXRIb3N0KCk7CisgICAgfQorCisgICAgLy8gLS0tLSBVc2VyIHByb3BlcnR5IC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgcmVmZXJlbmNlIHRvIFVzZXIgb2JqZWN0IGZvciBhdXRoZW50aWNhdGVkIHVzZXIuPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBVc2VyIG9iamVjdCBmb3IgYXV0aGVudGljYXRlZCB1c2VyLgorICAgICAqLworICAgIHB1YmxpYyBVc2VyIGdldFVzZXIoKSB7CisgICAgICAgIHJldHVybiAoVXNlcikgZ2V0U2Vzc2lvbigpLmdldChVU0VSX0tFWSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U3RvcmUgbmV3IHJlZmVyZW5jZSB0byBVc2VyIE9iamVjdC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdXNlciBVc2VyIG9iamVjdCBmb3IgYXV0aGVudGljYXRlZCB1c2VyCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VXNlcihVc2VyIHVzZXIpIHsKKyAgICAgICAgZ2V0U2Vzc2lvbigpLnB1dChVU0VSX0tFWSwgdXNlcik7CisgICAgfQorCisgICAgLy8gLS0tLSBEYXRhYmFzZSBtZXRob2RzIC0tLS0KKworICAgIHB1YmxpYyBVc2VyIGZpbmRVc2VyKFN0cmluZyB1c2VybmFtZSwgU3RyaW5nIHBhc3N3b3JkKQorICAgICAgICAgICAgdGhyb3dzIEV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgVXNlciB1c2VyID0gZ2V0RGF0YWJhc2UoKS5maW5kVXNlcih1c2VybmFtZSk7CisKKyAgICAgICAgaWYgKCh1c2VyICE9IG51bGwpICYmICF1c2VyLmdldFBhc3N3b3JkKCkuZXF1YWxzKHBhc3N3b3JkKSkgeworICAgICAgICAgICAgdXNlciA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICBpZiAodXNlciA9PSBudWxsKSB7CisgICAgICAgICAgICBhZGRGaWVsZEVycm9yKFBBU1NXT1JEX01JU01BVENIX0ZJRUxELAorICAgICAgICAgICAgICAgICAgICBnZXRUZXh0KEVSUk9SX1BBU1NXT1JEX01JU01BVENIKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdXNlcjsKKworICAgIH0KKworICAgIHB1YmxpYyBVc2VyIGNyZWF0ZVVzZXIoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIFVzZXJEYXRhYmFzZSBkYXRhYmFzZSA9IGdldERhdGFiYXNlKCk7CisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmZpbmRVc2VyKHVzZXJuYW1lKTsKKworICAgICAgICBpZiAodXNlciAhPSBudWxsKSB7CisgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihnZXRUZXh0KEVSUk9SX1VTRVJOQU1FX1VOSVFVRSkpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcih1c2VybmFtZSk7CisgICAgICAgIEJlYW5VdGlscy5zZXRWYWx1ZXModXNlciwgdGhpcywgbnVsbCk7CisKKyAgICAgICAgcmV0dXJuIHVzZXI7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2F2ZVVzZXIoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZ2V0RGF0YWJhc2UoKS5zYXZlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSBhICJ0ZW1wb3JhcnkiIFVzZXIgU3Vic2NyaXB0aW9uIG9iamVjdAorICAgICAqIHRoYXQgY2FuIGJlIHVzZWQgdG9jYXB0dXJlIGlucHV0IHZhbHVlcy48L3A+CisgICAgICovCisgICAgcHVibGljIHZvaWQgY3JlYXRlSW5wdXRTdWJzY3JpcHRpb24oKSB7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIgPSBuZXcgTWVtb3J5U3Vic2NyaXB0aW9uKGdldFVzZXIoKSwgbnVsbCk7CisgICAgICAgIHNldFN1YnNjcmlwdGlvbihzdWIpOworICAgICAgICBzZXRIb3N0KHN1Yi5nZXRIb3N0KCkpOworICAgIH0KKworICAgIHB1YmxpYyBTdWJzY3JpcHRpb24gZmluZFN1YnNjcmlwdGlvbihTdHJpbmcgaG9zdCkgeworICAgICAgICBTdWJzY3JpcHRpb24gc3Vic2NyaXB0aW9uOworICAgICAgICBzdWJzY3JpcHRpb24gPSBnZXRVc2VyKCkuZmluZFN1YnNjcmlwdGlvbihob3N0KTsKKyAgICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbjsKKyAgICB9CisKKyAgICBwdWJsaWMgU3Vic2NyaXB0aW9uIGZpbmRTdWJzY3JpcHRpb24oKSB7CisgICAgICAgIHJldHVybiBmaW5kU3Vic2NyaXB0aW9uKGdldEhvc3QoKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlU3Vic2NyaXB0aW9uKCkgeworICAgICAgICBnZXRVc2VyKCkucmVtb3ZlU3Vic2NyaXB0aW9uKGdldFN1YnNjcmlwdGlvbigpKTsKKyAgICAgICAgZ2V0U2Vzc2lvbigpLnJlbW92ZShTVUJTQ1JJUFRJT05fS0VZKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb3B5U3Vic2NyaXB0aW9uKFN0cmluZyBob3N0KSB7CisgICAgICAgIFN1YnNjcmlwdGlvbiBpbnB1dCA9IGdldFN1YnNjcmlwdGlvbigpOworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gY3JlYXRlU3Vic2NyaXB0aW9uKGhvc3QpOworICAgICAgICBpZiAobnVsbCAhPSBzdWIpIHsKKyAgICAgICAgICAgIEJlYW5VdGlscy5zZXRWYWx1ZXMoc3ViLCBpbnB1dCwgbnVsbCk7CisgICAgICAgICAgICBzZXRTdWJzY3JpcHRpb24oc3ViKTsKKyAgICAgICAgICAgIHNldEhvc3Qoc3ViLmdldEhvc3QoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgU3Vic2NyaXB0aW9uIGNyZWF0ZVN1YnNjcmlwdGlvbihTdHJpbmcgaG9zdCkgeworCisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWI7CisKKyAgICAgICAgc3ViID0gZmluZFN1YnNjcmlwdGlvbihob3N0KTsKKworICAgICAgICBpZiAobnVsbCAhPSBzdWIpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FIC0gbG9jYWxpemF0aW9uIC0gImVycm9yLmhvc3QudW5pcXVlIikKKyAgICAgICAgICAgIGFkZEZpZWxkRXJyb3IoSE9TVCwgRVJST1JfSE9TVF9VTklRVUUpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZ2V0VXNlcigpLmNyZWF0ZVN1YnNjcmlwdGlvbihob3N0KTsKKyAgICB9CisKKyAgICAvLyAtLS0tIEFsaWFzIC0tLS0KKworICAgIHB1YmxpYyBTdHJpbmcgY2FuY2VsKCkgeworICAgICAgICByZXR1cm4gQ0FOQ0VMOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvTlBFLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9OUEUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjllZDBmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvTlBFLmphdmEKQEAgLTAsMCArMSw5IEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uOworCitwdWJsaWMgY2xhc3MgTlBFIGltcGxlbWVudHMgQWN0aW9uIHsKKworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHsKKyAgICAgICAgdGhyb3cgbmV3IE51bGxQb2ludGVyRXhjZXB0aW9uKCJPb3BzISIpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvUmVnaXN0ZXItdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9SZWdpc3Rlci12YWxpZGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODE1NWY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvUmVnaXN0ZXItdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+CisKKzx2YWxpZGF0b3JzPgorCisgICAgPGZpZWxkIG5hbWU9InVzZXJuYW1lIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKyAgICA8ZmllbGQgbmFtZT0iZnVsbE5hbWUiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IuZnVsbE5hbWUucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworICAgIDxmaWVsZCBuYW1lPSJmcm9tQWRkcmVzcyI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5mcm9tQWRkcmVzcy5yZXF1aXJlZCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJlbWFpbCI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9ycy5lbWFpbCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCisgICAgPGZpZWxkIG5hbWU9InJlcGx5VG9BZGRyZXNzIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJlbWFpbCI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9ycy5lbWFpbCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCis8L3ZhbGlkYXRvcnM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9SZWdpc3Rlci5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvUmVnaXN0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGYyYmRlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvUmVnaXN0ZXIuamF2YQpAQCAtMCwwICsxLDY1IEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS51dGlsLkJlYW5VdGlsczsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CisKK3B1YmxpYyBjbGFzcyBSZWdpc3RlciBleHRlbmRzIE1haWxSZWFkZXJTdXBwb3J0IHsKKworICAgIHB1YmxpYyBTdHJpbmcgaW5wdXQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBVc2VyIHVzZXIgPSBnZXRVc2VyKCk7CisgICAgICAgIGJvb2xlYW4gZWRpdGluZyA9IChudWxsICE9IHVzZXIpOworCisgICAgICAgIGlmIChlZGl0aW5nKSB7CisgICAgICAgICAgICBzZXRUYXNrKEVESVQpOworICAgICAgICAgICAgQmVhblV0aWxzLnNldFZhbHVlcyh0aGlzLCB1c2VyLCBudWxsKTsKKyAgICAgICAgICAgIHNldFBhc3N3b3JkKG51bGwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2V0VGFzayhDUkVBVEUpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIElOUFVUOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgc2F2ZSgpCisgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBVc2VyIHVzZXIgPSBnZXRVc2VyKCk7CisgICAgICAgIGJvb2xlYW4gZWRpdGluZyA9IChudWxsICE9IHVzZXIpOworCisgICAgICAgIGlmIChlZGl0aW5nKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogQW55IHdheSB0byBjYWxsIHRoZSBSZWdpc3RlclNhdmUgdmFsaWRhdG9ycyBmcm9tIGhlcmU/CisgICAgICAgICAgICBTdHJpbmcgbmV3UGFzc3dvcmQgPSBnZXRQYXNzd29yZCgpOworICAgICAgICAgICAgYm9vbGVhbiBjaGFuZ2luZyA9ICgobnVsbCAhPSBuZXdQYXNzd29yZCkgJiYgKG5ld1Bhc3N3b3JkLmxlbmd0aCgpID4gMCkpOworICAgICAgICAgICAgaWYgKCFjaGFuZ2luZykgeworICAgICAgICAgICAgICAgIHNldFBhc3N3b3JkKHVzZXIuZ2V0UGFzc3dvcmQoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFN0cmluZyBjb25maXJtUGFzc3dvcmQgPSBnZXRQYXNzd29yZDIoKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIG1hdGNoZXMgPSAoKG51bGwgIT0gY29uZmlybVBhc3N3b3JkKQorICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGNvbmZpcm1QYXNzd29yZC5lcXVhbHMobmV3UGFzc3dvcmQpKSk7CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgdXNlci5zZXRQYXNzd29yZChuZXdQYXNzd29yZCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkQWN0aW9uRXJyb3IoZ2V0VGV4dChFUlJPUl9QQVNTV09SRF9NQVRDSCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gSU5QVVQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgQmVhblV0aWxzLnNldFZhbHVlcyh1c2VyLCB0aGlzLCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZWRpdGluZykgeworICAgICAgICAgICAgdXNlciA9IGZpbmRVc2VyKGdldFVzZXJuYW1lKCksIGdldFBhc3N3b3JkKCkpOworICAgICAgICAgICAgYm9vbGVhbiBoYXZlVXNlciA9ICh1c2VyICE9IG51bGwpOworCisgICAgICAgICAgICBpZiAoaGF2ZVVzZXIpIHsKKyAgICAgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihnZXRUZXh0KEVSUk9SX1VTRVJOQU1FX1VOSVFVRSkpOworICAgICAgICAgICAgICAgIHJldHVybiBJTlBVVDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdXNlciA9IGNyZWF0ZVVzZXIoZ2V0VXNlcm5hbWUoKSwgZ2V0UGFzc3dvcmQoKSk7CisgICAgICAgICAgICBzZXRVc2VyKHVzZXIpOworICAgICAgICB9CisKKyAgICAgICAgc2F2ZVVzZXIoKTsKKworICAgICAgICByZXR1cm4gU1VDQ0VTUzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9SZWdpc3RlckNyZWF0ZS12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL1JlZ2lzdGVyQ3JlYXRlLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4OTY0MDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9SZWdpc3RlckNyZWF0ZS12YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4KKworPHZhbGlkYXRvcnM+CisKKyAgICA8ZmllbGQgbmFtZT0icGFzc3dvcmQiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucGFzc3dvcmQucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0ic3RyaW5nbGVuZ3RoIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJ0cmltIj50cnVlPC9wYXJhbT4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5MZW5ndGgiPjQ8L3BhcmFtPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1heExlbmd0aCI+MTA8L3BhcmFtPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvcnMucmFuZ2UiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworICAgIDxmaWVsZCBuYW1lPSJwYXNzd29yZDIiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucGFzc3dvcmQyLnJlcXVpcmVkIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKyAgICA8dmFsaWRhdG9yIHR5cGU9ImV4cHJlc3Npb24iPgorICAgICAgICA8cGFyYW0gbmFtZT0iZXhwcmVzc2lvbiI+cGFzc3dvcmQgZXEgcGFzc3dvcmQyPC9wYXJhbT4KKyAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5wYXNzd29yZC5tYXRjaCIvPgorICAgIDwvdmFsaWRhdG9yPgorCis8L3ZhbGlkYXRvcnM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9SZWdpc3RlckNyZWF0ZS5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvUmVnaXN0ZXJDcmVhdGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODk1NjUyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvUmVnaXN0ZXJDcmVhdGUuamF2YQpAQCAtMCwwICsxLDUgQEAKKy8qKgorICogPHA+U3R1YiBjbGFzcyB0byBhbGxvdyBleHRyYSB2YWxpZGF0aW9uIG9uIGluaXRpYWwgU2F2ZS48L3A+CisgKi8KK3B1YmxpYyBjbGFzcyBSZWdpc3RlckNyZWF0ZSBleHRlbmRzIFJlZ2lzdGVyIHsKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL1N1YnNjcmliZS12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL1N1YnNjcmliZS12YWxpZGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzQyMmM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvU3Vic2NyaWJlLXZhbGlkYXRpb24ueG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIiAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLXZhbGlkYXRvci0xLjAuMi5kdGQiPgorCis8dmFsaWRhdG9ycz4KKworICAgIDxmaWVsZCBuYW1lPSJob3N0Ij4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLmhvc3QucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworPC92YWxpZGF0b3JzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvU3Vic2NyaWJlLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9TdWJzY3JpYmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNWQ4MTY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvU3Vic2NyaWJlLmphdmEKQEAgLTAsMCArMSw3NCBAQAoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLlByZXBhcmFibGU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitwdWJsaWMgY2xhc3MgU3Vic2NyaWJlIGV4dGVuZHMgTWFpbFJlYWRlclN1cHBvcnQKKyAgICAgICAgaW1wbGVtZW50cyBQcmVwYXJhYmxlIHsKKworICAgIHByaXZhdGUgTWFwIHR5cGVzID0gbnVsbDsKKworICAgIHB1YmxpYyBNYXAgZ2V0VHlwZXMoKSB7CisgICAgICAgIHJldHVybiB0eXBlczsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBwcmVwYXJlKCkgeworCisgICAgICAgIE1hcCBtID0gbmV3IExpbmtlZEhhc2hNYXAoKTsKKyAgICAgICAgbS5wdXQoImltYXAiLCAiSU1BUCBQcm90b2NvbCIpOworICAgICAgICBtLnB1dCgicG9wMyIsICJQT1AzIFByb3RvY29sIik7CisgICAgICAgIHR5cGVzID0gbTsKKworICAgICAgICBzZXRIb3N0KGdldFN1YnNjcmlwdGlvbkhvc3QoKSk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBpbnB1dCgpIHsKKyAgICAgICAgY3JlYXRlSW5wdXRTdWJzY3JpcHRpb24oKTsKKyAgICAgICAgc2V0VGFzayhDUkVBVEUpOworICAgICAgICByZXR1cm4gSU5QVVQ7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBmaW5kKCkgeworCisgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uU3Vic2NyaXB0aW9uCisgICAgICAgICAgICAgICAgc3ViID0gZmluZFN1YnNjcmlwdGlvbigpOworCisgICAgICAgIGlmIChzdWIgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIEVSUk9SOworICAgICAgICB9CisKKyAgICAgICAgc2V0U3Vic2NyaXB0aW9uKHN1Yik7CisKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGRlbGV0ZSgpIHsKKworICAgICAgICBzZXRUYXNrKERFTEVURSk7CisgICAgICAgIHJldHVybiBmaW5kKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBlZGl0KCkgeworCisgICAgICAgIHNldFRhc2soRURJVCk7CisgICAgICAgIHJldHVybiBmaW5kKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBzYXZlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgaWYgKERFTEVURS5lcXVhbHMoZ2V0VGFzaygpKSkgeworICAgICAgICAgICAgcmVtb3ZlU3Vic2NyaXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoQ1JFQVRFLmVxdWFscyhnZXRUYXNrKCkpKSB7CisgICAgICAgICAgICBjb3B5U3Vic2NyaXB0aW9uKGdldEhvc3QoKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaGFzRXJyb3JzKCkpIHJldHVybiBJTlBVVDsKKworICAgICAgICBzYXZlVXNlcigpOworICAgICAgICByZXR1cm4gU1VDQ0VTUzsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL1N1YnNjcmliZVNhdmUtdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9TdWJzY3JpYmVTYXZlLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkMjg2MjMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9TdWJzY3JpYmVTYXZlLXZhbGlkYXRpb24ueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIiAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLXZhbGlkYXRvci0xLjAuMi5kdGQiPgorCis8dmFsaWRhdG9ycz4KKworICAgIDxmaWVsZCBuYW1lPSJzdWJzY3JpcHRpb24udXNlcm5hbWUiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IudXNlcm5hbWUucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworICAgIDxmaWVsZCBuYW1lPSJzdWJzY3JpcHRpb24ucGFzc3dvcmQiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucGFzc3dvcmQucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworICAgIDxmaWVsZCBuYW1lPSJzdWJzY3JpcHRpb24udHlwZSI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci50eXBlLmludmFsaWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworPC92YWxpZGF0b3JzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvU3Vic2NyaWJlU2F2ZS5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvU3Vic2NyaWJlU2F2ZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1Y2JhN2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9TdWJzY3JpYmVTYXZlLmphdmEKQEAgLTAsMCArMSw4IEBACitwdWJsaWMgZmluYWwgY2xhc3MgU3Vic2NyaWJlU2F2ZSBleHRlbmRzIFN1YnNjcmliZSB7CisKKyAgICBwdWJsaWMgdm9pZCBwcmVwYXJlKCkgeworICAgICAgICBzdXBlci5wcmVwYXJlKCk7CisgICAgICAgIC8vIGNoZWNrYm94IHdvcmthcm91bmQKKyAgICAgICAgZ2V0U3Vic2NyaXB0aW9uKCkuc2V0QXV0b0Nvbm5lY3QoZmFsc2UpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL2RhdGFiYXNlLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL2RhdGFiYXNlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYmM4MzNkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvZGF0YWJhc2UueG1sCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249JzEuMCc/PgorPGRhdGFiYXNlPgorICAgIDx1c2VyIHVzZXJuYW1lPSJ1c2VyIiBmcm9tQWRkcmVzcz0iSm9obi5Vc2VyQHNvbWV3aGVyZS5jb20iCisgICAgICAgICAgZnVsbE5hbWU9IkpvaG4gUS4gVXNlciIgcGFzc3dvcmQ9InBhc3MiPgorICAgICAgICA8c3Vic2NyaXB0aW9uIGhvc3Q9Im1haWwuaG90bWFpbC5jb20iIGF1dG9Db25uZWN0PSJmYWxzZSIKKyAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZD0iYmFyIiB0eXBlPSJwb3AzIiB1c2VybmFtZT0idXNlcjEyMzQiPgorICAgICAgICA8L3N1YnNjcmlwdGlvbj4KKyAgICAgICAgPHN1YnNjcmlwdGlvbiBob3N0PSJtYWlsLnlhaG9vLmNvbSIgYXV0b0Nvbm5lY3Q9ImZhbHNlIiBwYXNzd29yZD0iZm9vIgorICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImltYXAiIHVzZXJuYW1lPSJqcXVzZXIiPgorICAgICAgICA8L3N1YnNjcmlwdGlvbj4KKyAgICA8L3VzZXI+Cis8L2RhdGFiYXNlPgorICAgICAgICAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9yZXNvdXJjZXMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL3Jlc291cmNlcy5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmYzExNTIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9yZXNvdXJjZXMucHJvcGVydGllcwpAQCAtMCwwICsxLDEwNSBAQAoraGVsbG8ubWVzc2FnZSA9IENvbmdyYXR1bGF0aW9ucyEgU3RydXRzIGlzIHVwIGFuZCBydW5uaW5nIC4uLgorCitpbmRleC50aXRsZT1NYWlsUmVhZGVyCitpbmRleC5sb2dpbj1Mb2cgaW50byBNYWlsUmVhZGVyCitpbmRleC5yZWdpc3RyYXRpb249UmVnaXN0ZXIgd2l0aCBNYWlsUmVhZGVyCisKK3JlZ2lzdHJhdGlvbi50aXRsZS5jcmVhdGU9TWFpbFJlYWRlciAtIFJlZ2lzdGVyIC0gQ3JlYXRlCityZWdpc3RyYXRpb24udGl0bGUuZWRpdD1NYWlsUmVhZGVyIC0gUmVnaXN0ZXIgLSBFZGl0CisKK3VzZXJuYW1lPVVzZXJuYW1lCitwYXNzd29yZD1QYXNzd29yZAorcGFzc3dvcmQyPShSZXBlYXQpIFBhc3N3b3JkCitmdWxsTmFtZT1GdWxsIE5hbWUKK2Zyb21BZGRyZXNzPUZyb20gQWRkcmVzcworcmVwbHlUb0FkZHJlc3M9UmVwbHkgVG8gQWRkcmVzcworCitidXR0b24uY2FuY2VsPUNhbmNlbAorYnV0dG9uLnNhdmU9U2F2ZQorYnV0dG9uLnJlc2V0PVJlc2V0CitidXR0b24uY29uZmlybT1Db25maXJtCisKK21lbnUudGl0bGU9TWFpbFJlYWRlciAtIE1haW4gTWVudQorbWVudS5oZWFkaW5nPU1lbnUgT3B0aW9ucyBmb3IKK21lbnUucmVnaXN0cmF0aW9uPUVkaXQgeW91ciByZWdpc3RyYXRpb24gcHJvZmlsZQorbWVudS5sb2dvdXQ9TG9nIG91dCBvZiBNYWlsUmVhZGVyCisKK2xvZ2luLnRpdGxlPU1haWxSZWFkZXIgLSBMb2dvbgorCitlcnJvci5kYXRhYmFzZS5taXNzaW5nPVVzZXIgZGF0YWJhc2UgaXMgbWlzc2luZywgY2Fubm90IHZhbGlkYXRlIGxvZ29uIGNyZWRlbnRpYWxzCitlcnJvci51c2VybmFtZS51bmlxdWU9VGhhdCB1c2VybmFtZSBpcyBhbHJlYWR5IGluIHVzZSAtIHBsZWFzZSBzZWxlY3QgYW5vdGhlcgorZXJyb3IucGFzc3dvcmQubWlzbWF0Y2g9SW52YWxpZCB1c2VybmFtZSBhbmQvb3IgcGFzc3dvcmQsIHBsZWFzZSB0cnkgYWdhaW4KKworZXJyb3IudXNlcm5hbWUucmVxdWlyZWQ9VXNlcm5hbWUgaXMgcmVxdWlyZWQKK2Vycm9yLmZ1bGxOYW1lLnJlcXVpcmVkPUZ1bGwgTmFtZSBpcyByZXF1aXJlZAorZXJyb3IuZnJvbUFkZHJlc3MucmVxdWlyZWQ9RnJvbSBBZGRyZXNzIGlzIHJlcXVpcmVkCitlcnJvci5mcm9tQWRkcmVzcy5mb3JtYXQ9SW52YWxpZCBmb3JtYXQgZm9yIEZyb20gQWRkcmVzcworZXJyb3IucmVwbHlUb0FkZHJlc3MuZm9ybWF0PUludmFsaWQgZm9ybWF0IGZvciBSZXBseSBUbyBBZGRyZXNzCitlcnJvci5wYXNzd29yZC5yZXF1aXJlZD1QYXNzd29yZCBpcyByZXF1aXJlZAorZXJyb3IucGFzc3dvcmQyLnJlcXVpcmVkPUNvbmZpcm1hdGlvbiBwYXNzd29yZCBpcyByZXF1aXJlZAorZXJyb3IucGFzc3dvcmQubWF0Y2g9UGFzc3dvcmQgYW5kIGNvbmZpcm1hdGlvbiBwYXNzd29yZCBtdXN0IG1hdGNoCisKK2Vycm9yLmhvc3QucmVxdWlyZWQ9TWFpbCBTZXJ2ZXIgaXMgcmVxdWlyZWQKK2Vycm9yLnR5cGUuaW52YWxpZD1TZXJ2ZXIgVHlwZSBtdXN0IGJlICdpbWFwJyBvciAncG9wMycKK2Vycm9yLnR5cGUucmVxdWlyZWQ9U2VydmVyIFR5cGUgaXMgcmVxdWlyZWQKKworIyBGdXR1cmUgdXNlCitidXR0b24uZG9TdWJtaXQ9RE9fU1VCTUlUCitidXR0b24uZG9SZXNldD1ET19SRVNVTFQKK2J1dHRvbi5kb0NhbmNlbD1vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DQU5DRUwKK2NoYW5nZS5tZXNzYWdlPVlvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQuICBQbGVhc2UgYXNrIHRoZSBzeXN0ZW0gYWRtaW5pc3RyYXRvciB0byBjaGFuZ2UgaXQuCitjaGFuZ2UudHJ5PVRyeSBBZ2FpbgorY2hhbmdlLnRpdGxlPVBhc3N3b3JkIEhhcyBFeHBpcmVkCitkYXRhYmFzZS5sb2FkPUNhbm5vdCBsb2FkIGRhdGFiYXNlIGZyb20gezB9CitzdHJ1dHMubWVzc2FnZXMuaW52YWxpZC50b2tlbj1DYW5ub3Qgc3VibWl0IHRoaXMgZm9ybSBvdXQgb2Ygb3JkZXIKK2Vycm9ycy5mb290ZXI9PC91bD48aHI+CitlcnJvcnMuaGVhZGVyPTxoMz48Zm9udCBjb2xvcj0icmVkIj5WYWxpZGF0aW9uIEVycm9yPC9mb250PjwvaDM+PHA+WW91IG11c3QgY29ycmVjdCB0aGUgZm9sbG93aW5nIGVycm9yKHMpIGJlZm9yZSBwcm9jZWVkaW5nOjwvcD48dWw+CitlcnJvcnMucHJlZml4PTxsaT4KK2Vycm9ycy5zdWZmaXg9PC9saT4KK2Vycm9ycy5pb0V4Y2VwdGlvbj1JL08gZXhjZXB0aW9uIHJlbmRlcmluZyBlcnJvciBtZXNzYWdlczogezB9CitlcnJvci5ub1N1YnNjcmlwdGlvbj1ObyBTdWJzY3JpcHRpb24gYmVhbiBpbiB1c2VyIHNlc3Npb24KK2Vycm9yLnBhc3N3b3JkLmV4cGlyZWQ9WW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZCBmb3IgdXNlcm5hbWUgezB9CitleHBpcmVkLnBhc3N3b3JkPVVzZXIgUGFzc3dvcmQgaGFzIGV4cGlyZWQgZm9yIHswfQoraGVhZGluZy5hdXRvQ29ubmVjdD1BdXRvCitoZWFkaW5nLnN1YnNjcmlwdGlvbnM9Q3VycmVudCBTdWJzY3JpcHRpb25zCitoZWFkaW5nLmhvc3Q9SG9zdCBOYW1lCitoZWFkaW5nLnVzZXI9VXNlciBOYW1lCitoZWFkaW5nLnR5cGU9U2VydmVyIFR5cGUKK2hlYWRpbmcuYWN0aW9uPUFjdGlvbgoraW5kZXguaGVhZGluZz1NYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24gT3B0aW9ucworaW5kZXgudG91cj1BIFdhbGtpbmcgVG91ciBvZiB0aGUgTWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uCitsaW5rU3Vic2NyaXB0aW9uLmlvPUkvTyBFcnJvcjogezB9CitsaW5rU3Vic2NyaXB0aW9uLm5vU3Vic2NyaXB0aW9uPU5vIHN1YnNjcmlwdGlvbiB1bmRlciBhdHRyaWJ1dGUgezB9CitsaW5rVXNlci5pbz1JL08gRXJyb3I6IHswfQorbGlua1VzZXIubm9Vc2VyPU5vIHVzZXIgdW5kZXIgYXR0cmlidXRlIHswfQorb3B0aW9uLmltYXA9SU1BUCBQcm90b2NvbAorb3B0aW9uLnBvcDM9UE9QMyBQcm90b2NvbAorIyBwcm9tcHQuCithdXRvQ29ubmVjdD1BdXRvIENvbm5lY3QKK21haWxIb3N0bmFtZT1NYWlsIFNlcnZlcgorbWFpbFBhc3N3b3JkPU1haWwgUGFzc3dvcmQKK21haWxTZXJ2ZXJUeXBlPVNlcnZlciBUeXBlCittYWlsVXNlcm5hbWU9TWFpbCBVc2VybmFtZQorcmVnaXN0cmF0aW9uLmFkZFN1YnNjcmlwdGlvbj1BZGQKK3JlZ2lzdHJhdGlvbi5kZWxldGVTdWJzY3JpcHRpb249RGVsZXRlCityZWdpc3RyYXRpb24uZWRpdFN1YnNjcmlwdGlvbj1FZGl0CitzdWJzY3JpcHRpb24udGl0bGUuY3JlYXRlPUNyZWF0ZSBOZXcgTWFpbCBTdWJzY3JpcHRpb24KK3N1YnNjcmlwdGlvbi50aXRsZS5kZWxldGU9RGVsZXRlIEV4aXN0aW5nIE1haWwgU3Vic2NyaXB0aW9uCitzdWJzY3JpcHRpb24udGl0bGUuZWRpdD1FZGl0IEV4aXN0aW5nIE1haWwgU3Vic2NyaXB0aW9uCisKKyMgU3RhbmRhcmQgZXJyb3IgbWVzc2FnZXMgZm9yIHZhbGlkYXRvciBmcmFtZXdvcmsgY2hlY2tzCitlcnJvcnMucmVxdWlyZWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIHJlcXVpcmVkLgorZXJyb3JzLm1pbmxlbmd0aD0ke2dldFRleHQoZmllbGROYW1lKX0gY2Fubm90IGJlIGxlc3MgdGhhbiB7MX0gY2hhcmFjdGVycy4KK2Vycm9ycy5tYXhsZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gezF9IGNoYXJhY3RlcnMuCitlcnJvcnMuaW52YWxpZD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgaW52YWxpZC4KK2Vycm9ycy5ieXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGJ5dGUuCitlcnJvcnMuc2hvcnQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gc2hvcnQuCitlcnJvcnMuaW50ZWdlcj0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBpbnRlZ2VyLgorZXJyb3JzLmxvbmc9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gbG9uZy4KK2Vycm9ycy5mbG9hdD0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBmbG9hdC4KK2Vycm9ycy5kb3VibGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gZG91YmxlLgorZXJyb3JzLmRhdGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIG5vdCBhIGRhdGUuCitlcnJvcnMucmFuZ2U9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIG5vdCBpbiB0aGUgcmFuZ2UgJHttaW5MZW5ndGh9IHRocm91Z2ggJHttYXhMZW5ndGh9LgorZXJyb3JzLmNyZWRpdGNhcmQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIG5vdCBhIHZhbGlkIGNyZWRpdCBjYXJkIG51bWJlci4KK2Vycm9ycy5lbWFpbD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgYW4gaW52YWxpZCBlLW1haWwgYWRkcmVzcy4KK2Vycm9ycy5saXRlcmFsPSR7Z2V0VGV4dChmaWVsZE5hbWUpfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvcmVzb3VyY2VzX2phLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9yZXNvdXJjZXNfamEucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGViNmQyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvcmVzb3VyY2VzX2phLnByb3BlcnRpZXMKQEAgLTAsMCArMSw4OSBAQAorYnV0dG9uLmNhbmNlbD1cdTMwYWRcdTMwZTNcdTMwZjNcdTMwYmJcdTMwZWIKK2J1dHRvbi5jb25maXJtPVx1NzhiYVx1OGE4ZAorYnV0dG9uLnJlc2V0PVx1MzBlYVx1MzBiYlx1MzBjM1x1MzBjOAorYnV0dG9uLnNhdmU9XHU0ZmRkXHU1YjU4CitjaGFuZ2UubWVzc2FnZT1cdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNkVcdTY3MDlcdTUyQjlcdTY3MUZcdTk2NTBcdTMwNENcdTkwNEVcdTMwNEVcdTMwN0VcdTMwNTdcdTMwNUZcdTMwMDJcdTMwQjdcdTMwQjlcdTMwQzZcdTMwRTBcdTdCQTFcdTc0MDZcdTgwMDVcdTMwNkJcdTMwNEFcdTU1NEZcdTMwNDRcdTU0MDhcdTMwOEZcdTMwNUJcdTRFMEJcdTMwNTVcdTMwNDQKK2NoYW5nZS50cnk9XHU1MThEXHU4QTY2XHU4ODRDCitjaGFuZ2UudGl0bGU9XHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5XHU2NzFmXHU5NjUwXHU1MjA3XHUzMDhjCitkYXRhYmFzZS5sb2FkPSB7MH0gXHUzMDRCXHUzMDg5XHUzMEM3XHUzMEZDXHUzMEJGXHUzMEQ5XHUzMEZDXHUzMEI5XHUzMDkyXHUzMEVEXHUzMEZDXHUzMEM5XHUzMDY3XHUzMDREXHUzMDdFXHUzMDVCXHUzMDkzCitlcnJvci5kYXRhYmFzZS5taXNzaW5nPVx1MzBFNlx1MzBGQ1x1MzBCNlx1MzBDN1x1MzBGQ1x1MzBCRlx1MzBEOVx1MzBGQ1x1MzBCOVx1MzA0Q1x1ODk4Qlx1MzA2NFx1MzA0Qlx1MzA4QVx1MzA3RVx1MzA1Qlx1MzA5M1x1MzAwMlx1MzBFRFx1MzBCMFx1MzBBQVx1MzBGM1x1MzA2RVx1OEE4RFx1OEEzQ1x1MzA0Q1x1NTFGQVx1Njc2NVx1MzA3RVx1MzA1Qlx1MzA5MworZXJyb3IuZnJvbUFkZHJlc3MuZm9ybWF0PUZyb21cdTMwQTJcdTMwQzlcdTMwRUNcdTMwQjlcdTMwNkVcdTY2RjhcdTVGMEZcdTMwNENcdTZCNjNcdTMwNTdcdTMwNEZcdTMwNDJcdTMwOEFcdTMwN0VcdTMwNUJcdTMwOTMKK2Vycm9yLmZyb21BZGRyZXNzLnJlcXVpcmVkPUZyb21cdTMwQTJcdTMwQzlcdTMwRUNcdTMwQjlcdTMwOTJcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQKK2Vycm9yLmZ1bGxOYW1lLnJlcXVpcmVkPVx1MzBENVx1MzBFQlx1MzBDRFx1MzBGQ1x1MzBFMFx1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorZXJyb3IuaG9zdC5yZXF1aXJlZD1cdTMwRTFcdTMwRkNcdTMwRUJcdTMwQjVcdTMwRkNcdTMwRDBcdTMwOTJcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQKK2Vycm9yLm5vU3Vic2NyaXB0aW9uPVN1YnNjcmlwdGlvbiBiZWFuIFx1MzA0Y1x1MzBiYlx1MzBjM1x1MzBiN1x1MzBlN1x1MzBmM1x1MzA2ZVx1NGUyZFx1MzA2Ylx1MzA0Mlx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5MworZXJyb3IucGFzc3dvcmQuZXhwaXJlZD1cdTMwRTZcdTMwRkNcdTMwQjYgezB9IFx1MzA2RVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA2RVx1NjcwOVx1NTJCOVx1NjcxRlx1OTY1MFx1MzA0Q1x1OTA0RVx1MzA0RVx1MzA3RVx1MzA1N1x1MzA1RgorZXJyb3IucGFzc3dvcmQucmVxdWlyZWQ9XHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDRDXHU1RkM1XHU4OTgxXHUzMDY3XHUzMDU5CitlcnJvci5wYXNzd29yZDIucmVxdWlyZWQ9XHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5KFx1NzhCQVx1OEE4RFx1NzUyOClcdTMwNENcdTVGQzVcdTg5ODFcdTMwNjdcdTMwNTkKK2Vycm9yLnBhc3N3b3JkLm1hdGNoPVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA2OFx1NzhCQVx1OEE4RFx1NzUyOFx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA0Q1x1NEUwMFx1ODFGNFx1MzA1N1x1MzA2Nlx1MzA0NFx1MzA3RVx1MzA1Qlx1MzA5MworZXJyb3IucGFzc3dvcmQubWlzbWF0Y2g9XHUzMEU2XHUzMEZDXHUzMEI2XHU1NDBEXHUzMDdFXHUzMDVGXHUzMDZGXHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDRDXHU0RTBEXHU2QjYzXHUzMDY3XHUzMDU5XHUzMDAyXHU1MThEXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvci5yZXBseVRvQWRkcmVzcy5mb3JtYXQ9XHU4RkQ0XHU0RkUxXHUzMEEyXHUzMEM5XHUzMEVDXHUzMEI5XHUzMDZFXHU2NkY4XHU1RjBGXHUzMDRDXHU2QjYzXHUzMDU3XHUzMDRGXHUzMDQyXHUzMDhBXHUzMDdFXHUzMDVCXHUzMDkzCitzdHJ1dHMubWVzc2FnZXMuaW52YWxpZC50b2tlbj1cdTMwNTNcdTMwNkVcdTMwRDVcdTMwQTlcdTMwRkNcdTMwRTBcdTMwNkVcdTUxODVcdTVCQjlcdTMwNENcdTZCNjNcdTMwNTdcdTMwNEZcdTMwNkFcdTMwNDRcdTMwNUZcdTMwODFcdTkwMDFcdTRGRTFcdTMwNTlcdTMwOEJcdTMwNTNcdTMwNjhcdTMwNENcdTUxRkFcdTY3NjVcdTMwN0VcdTMwNUJcdTMwOTMKK2Vycm9yLnR5cGUuaW52YWxpZD1cdTMwQjVcdTMwRkNcdTMwRDBcdTMwQkZcdTMwQTRcdTMwRDdcdTMwNkYgJ2ltYXAnIFx1MzA0QiAncG9wMydcdTMwNkVcdTMwNjlcdTMwNjFcdTMwODlcdTMwNEJcdTMwNjdcdTMwNkFcdTMwNTFcdTMwOENcdTMwNzBcdTMwNkFcdTMwOEFcdTMwN0VcdTMwNUJcdTMwOTMKK2Vycm9yLnR5cGUucmVxdWlyZWQ9XHUzMEI1XHUzMEZDXHUzMEQwXHUzMEJGXHUzMEE0XHUzMEQ3XHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvci51c2VybmFtZS5yZXF1aXJlZD1cdTMwRTZcdTMwRkNcdTMwQjZcdTU0MERcdTMwOTJcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQKK2Vycm9yLnVzZXJuYW1lLnVuaXF1ZT1cdTMwNURcdTMwNkVcdTMwRTZcdTMwRkNcdTMwQjZcdTU0MERcdTMwNkZcdTY1RTJcdTMwNkJcdTRGN0ZcdTc1MjhcdTMwNTVcdTMwOENcdTMwNjZcdTMwNDRcdTMwN0VcdTMwNTlcdTMwMDIgXHU1MjI1XHUzMDZFXHUzMEU2XHUzMEZDXHUzMEI2XHU1NDBEXHUzMDkyXHU5MDc4XHU2MjlFXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvcnMuZm9vdGVyPTwvdWw+PGhyPgorZXJyb3JzLmhlYWRlcj08aDM+PGZvbnQgY29sb3I9InJlZCI+XHU1MTY1XHU1MjliXHUzMGMxXHUzMGE3XHUzMGMzXHUzMGFmXHUzMGE4XHUzMGU5XHUzMGZjPC9mb250PjwvaDM+PHA+XHU0ZWU1XHU0ZTBiXHUzMDZlXHUzMGE4XHUzMGU5XHUzMGZjXHUzMDkyXHU3OGJhXHU4YThkXHUzMDU3XHUzMDY2XHUzMDRmXHUzMDYwXHUzMDU1XHUzMDQ0OjwvcD48dWw+CitlcnJvcnMucHJlZml4PTxsaT4KK2Vycm9ycy5zdWZmaXg9PC9saT4KK2Vycm9ycy5pb0V4Y2VwdGlvbj1JL09cdTRmOGJcdTU5MTZcdTMwNGNcdTc2N2FcdTc1MWZcdTMwNTdcdTMwN2VcdTMwNTdcdTMwNWY6IHswfQorZXhwaXJlZC5wYXNzd29yZD1cdTMwRTZcdTMwRkNcdTMwQjYgezB9IFx1MzA2RVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA2RVx1NjcwOVx1NTJCOVx1NjcxRlx1OTY1MFx1MzA0Q1x1OTA0RVx1MzA0RVx1MzA3RVx1MzA1N1x1MzA1RgoraGVhZGluZy5hdXRvQ29ubmVjdD1cdTgxZWFcdTUyZDVcdTYzYTVcdTdkOWEKK2hlYWRpbmcuc3Vic2NyaXB0aW9ucz1cdTczZmVcdTU3MjhcdTMwNmVcdThjZmNcdThhYWRcdTYwYzVcdTU4MzEKK2hlYWRpbmcuaG9zdD1cdTMwZGJcdTMwYjlcdTMwYzhcdTU0MGQKK2hlYWRpbmcudXNlcj1cdTMwZTZcdTMwZmNcdTMwYjZcdTU0MGQKK2hlYWRpbmcudHlwZT1cdTMwYjVcdTMwZmNcdTMwZDBcdTMwYmZcdTMwYTRcdTMwZDcKK2hlYWRpbmcuYWN0aW9uPVx1NjRjZFx1NGY1YworaW5kZXguaGVhZGluZz1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIFx1MzBhYVx1MzBkN1x1MzBiN1x1MzBlN1x1MzBmMworaW5kZXgubG9naW49TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBlZFx1MzBiMFx1MzBhYVx1MzBmMworaW5kZXgucmVnaXN0cmF0aW9uPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZTZcdTMwZmNcdTMwYjZcdTc2N2JcdTkzMzIKK2luZGV4LnRpdGxlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMoU3RydXRzIDEuMS1kZXYpCitpbmRleC50b3VyPVx1MzBiNVx1MzBmM1x1MzBkN1x1MzBlYlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmM1x1MzA5Mlx1NjU2M1x1N2I1Nlx1MzA1OVx1MzA4YgorbGlua1N1YnNjcmlwdGlvbi5pbz1JL09cdTMwYThcdTMwZTlcdTMwZmM6IHswfQorbGlua1N1YnNjcmlwdGlvbi5ub1N1YnNjcmlwdGlvbj1cdTVjNWVcdTYwMjcgezB9IFx1MzA2Ylx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMVx1MzA0Y1x1NWI1OFx1NTcyOFx1MzA1N1x1MzA3ZVx1MzA1Ylx1MzA5MworbGlua1VzZXIuaW89SS9PXHUzMGE4XHUzMGU5XHUzMGZjOiB7MH0KK2xpbmtVc2VyLm5vVXNlcj1cdTVjNWVcdTYwMjcgezB9IFx1MzA2Ylx1MzBlNlx1MzBmY1x1MzBiNlx1NjBjNVx1NTgzMVx1MzA0Y1x1NWI1OFx1NTcyOFx1MzA1N1x1MzA3ZVx1MzA1Ylx1MzA5MworbG9naW4udGl0bGU9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBlZFx1MzBiMFx1MzBhYVx1MzBmMworbWVudS5oZWFkaW5nPVx1MzBlMVx1MzBhNFx1MzBmM1x1MzBlMVx1MzBjYlx1MzBlNVx1MzBmYworbWVudS5sb2dvdXQ9TWFpbFJlYWRlciBcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjNcdTMwNmVcdTMwZWRcdTMwYjBcdTMwYWFcdTMwZDUKK21lbnUucmVnaXN0cmF0aW9uPVx1MzBkN1x1MzBlZFx1MzBkNVx1MzBhMVx1MzBhNFx1MzBlYlx1MzA2ZVx1N2RlOFx1OTZjNgorbWVudS50aXRsZT1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGUxXHUzMGE0XHUzMGYzXHUzMGUxXHUzMGNiXHUzMGU1XHUzMGZjCitvcHRpb24uaW1hcD1JTUFQIFx1MzBkN1x1MzBlZFx1MzBjOFx1MzBiM1x1MzBlYgorb3B0aW9uLnBvcDM9UE9QMyBcdTMwZDdcdTMwZWRcdTMwYzhcdTMwYjNcdTMwZWIKKyMgcHJvbXB0LgorYXV0b0Nvbm5lY3Q9XHU4MWVhXHU1MmQ1XHU2M2E1XHU3ZDlhCitmcm9tQWRkcmVzcz1Gcm9tXHUzMGEyXHUzMGM5XHUzMGVjXHUzMGI5CitmdWxsTmFtZT1cdTMwZDVcdTMwZWJcdTMwY2RcdTMwZmNcdTMwZTAKK21haWxIb3N0bmFtZT1cdTMwZTFcdTMwZmNcdTMwZWJcdTMwYjVcdTMwZmNcdTMwZDAKK21haWxQYXNzd29yZD1cdTMwZTFcdTMwZmNcdTMwZWJcdTMwZDFcdTMwYjlcdTMwZWZcdTMwZmNcdTMwYzkKK21haWxTZXJ2ZXJUeXBlPVx1MzBiNVx1MzBmY1x1MzBkMFx1MzBiZlx1MzBhNFx1MzBkNworbWFpbFVzZXJuYW1lPVx1MzBlMVx1MzBmY1x1MzBlYlx1MzBlNlx1MzBmY1x1MzBiNlx1NTQwZAorLnBhc3N3b3JkPVx1MzBkMVx1MzBiOVx1MzBlZlx1MzBmY1x1MzBjOQorcGFzc3dvcmQyPVx1MzBkMVx1MzBiOVx1MzBlZlx1MzBmY1x1MzBjOShcdTc4YmFcdThhOGRcdTc1MjgpCityZXBseVRvQWRkcmVzcz1cdThmZDRcdTRmZTFcdTMwYTJcdTMwYzlcdTMwZWNcdTMwYjkKK3VzZXJuYW1lPVx1MzBlNlx1MzBmY1x1MzBiNlx1NTQwZAorcmVnaXN0cmF0aW9uLmFkZFN1YnNjcmlwdGlvbj1cdTY1YjBcdTg5OGZcdTRmNWNcdTYyMTAKK3JlZ2lzdHJhdGlvbi5kZWxldGVTdWJzY3JpcHRpb249XHU1MjRhXHU5NjY0CityZWdpc3RyYXRpb24uZWRpdFN1YnNjcmlwdGlvbj1cdTdkZThcdTk2YzYKK3JlZ2lzdHJhdGlvbi50aXRsZS5jcmVhdGU9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBlNlx1MzBmY1x1MzBiNlx1NzY3Ylx1OTMzMgorcmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQ9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBkN1x1MzBlZFx1MzBkNVx1MzBhMVx1MzBhNFx1MzBlYlx1N2RlOFx1OTZjNgorc3Vic2NyaXB0aW9uLnRpdGxlLmNyZWF0ZT1cdTMwZTFcdTMwZmNcdTMwZWJcdThjZmNcdThhYWRcdTYwYzVcdTU4MzFcdTMwNmVcdTY1YjBcdTg5OGZcdTRmNWNcdTYyMTAKK3N1YnNjcmlwdGlvbi50aXRsZS5kZWxldGU9XHUzMGUxXHUzMGZjXHUzMGViXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxXHUzMDZlXHU1MjRhXHU5NjY0CitzdWJzY3JpcHRpb24udGl0bGUuZWRpdD1cdTMwZTFcdTMwZmNcdTMwZWJcdThjZmNcdThhYWRcdTYwYzVcdTU4MzFcdTMwNmVcdTdkZThcdTk2YzYKKworIyBTdGFuZGFyZCBlcnJvciBtZXNzYWdlcyBmb3IgdmFsaWRhdG9yIGZyYW1ld29yayBjaGVja3MKK2Vycm9ycy5yZXF1aXJlZD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDkyXHU1MTY1XHU1MjliXHUzMDU3XHUzMDY2XHUzMDRmXHUzMDYwXHUzMDU1XHUzMDQ0XHUzMDAyCitlcnJvcnMubWlubGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmYgezF9IFx1NjU4N1x1NWI1N1x1NGVlNVx1NGUwYVx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLm1heGxlbmd0aD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmIHsyfSBcdTY1ODdcdTViNTdcdTRlZTVcdTRlMGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5pbnZhbGlkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZcdTZiNjNcdTMwNTdcdTMwNGZcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5ieXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZieXRlXHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuc2hvcnQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZnNob3J0XHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuaW50ZWdlcj0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmaW50ZWdlclx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmxvbmc9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZmxvbmdcdTU3OGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5mbG9hdD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmZmxvYXRcdTU3OGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5kb3VibGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZmRvdWJsZVx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmRhdGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2Zlx1NjVlNVx1NGVkOFx1MzA2N1x1MzA2Zlx1MzA0Mlx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLnJhbmdlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmYgezF9IFx1MzA0Ylx1MzA4OSB7Mn0gXHUzMDZlXHU5NTkzXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuY3JlZGl0Y2FyZD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmXHU2YjYzXHUzMDU3XHUzMDQ0XHUzMGFmXHUzMGVjXHUzMGI4XHUzMGMzXHUzMGM4XHUzMGFiXHUzMGZjXHUzMGM5XHU3NTZhXHU1M2Y3XHUzMDY3XHUzMDZmXHUzMDQyXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuZW1haWw9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2Zlx1NmI2M1x1MzA1N1x1MzA0NFx1MzBlMVx1MzBmY1x1MzBlYlx1MzBhMlx1MzBjOVx1MzBlY1x1MzBiOVx1MzA2N1x1MzA2Zlx1MzA0Mlx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvcmVzb3VyY2VzX3J1LnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvamF2YS9yZXNvdXJjZXNfcnUucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmYxYWMzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvcmVzb3VyY2VzX3J1LnByb3BlcnRpZXMKQEAgLTAsMCArMSw4OSBAQAorYnV0dG9uLmNhbmNlbD1cdTA0MWVcdTA0NDJcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMKK2J1dHRvbi5jb25maXJtPVx1MDQxZlx1MDQzZVx1MDQzNFx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNFx1MDQzOFx1MDQ0Mlx1MDQ0YworYnV0dG9uLnJlc2V0PVx1MDQyMVx1MDQzMVx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQzOFx1MDQ0Mlx1MDQ0YworYnV0dG9uLnNhdmU9XHUwNDIxXHUwNDNlXHUwNDQ1XHUwNDQwXHUwNDMwXHUwNDNkXHUwNDM4XHUwNDQyXHUwNDRjCitjaGFuZ2UubWVzc2FnZT1Zb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkLiAgUGxlYXNlIGFzayB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3IgdG8gY2hhbmdlIGl0LgorY2hhbmdlLnRyeT1UcnkgQWdhaW4KK2NoYW5nZS50aXRsZT1QYXNzd29yZCBIYXMgRXhwaXJlZAorZGF0YWJhc2UubG9hZD1cdTA0MTFcdTA0MzBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDQ1IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzN1x1MDQzMFx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzNlx1MDQzNVx1MDQzZFx1MDQzMCBcdTA0MzhcdTA0MzcgezB9CitlcnJvci5kYXRhYmFzZS5taXNzaW5nPVx1MDQxZFx1MDQzNSBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2UgXHUwNDM4XHUwNDNjXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0ZiAtIFx1MDQzZFx1MDQzNVx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzggXHUwNDMwXHUwNDQzXHUwNDQyXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNhXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRlLgorZXJyb3IuZnJvbUFkZHJlc3MuZm9ybWF0PVx1MDQxMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgJ1x1MDQxMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MWVcdTA0NDI6JyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2QgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0NGNcdTA0M2RcdTA0M2VcdTA0M2MgXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQyXHUwNDM1LgorZXJyb3IuZnJvbUFkZHJlc3MucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDMyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzNSAnXHUwNDEwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQxZVx1MDQ0MjonLgorZXJyb3IuZnVsbE5hbWUucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDM4XHUwNDNjXHUwNDRmLgorZXJyb3IuaG9zdC5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQ0Ylx1MDQzOSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDAuCitlcnJvci5ub1N1YnNjcmlwdGlvbj1cdTA0MWZcdTA0M2VcdTA0MzRcdTA0M2ZcdTA0MzhcdTA0NDFcdTA0M2FcdTA0MzAgXHUwNDNkXHUwNDM1IFx1MDQzZFx1MDQzMFx1MDQzOVx1MDQzNFx1MDQzNVx1MDQzZFx1MDQzMCBcdTA0MzIgXHUwNDQxXHUwNDM1XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0ZgorZXJyb3IucGFzc3dvcmQuZXhwaXJlZD1Zb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkIGZvciB1c2VybmFtZSB7MH0KK2Vycm9yLnBhc3N3b3JkLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRjLgorZXJyb3IucGFzc3dvcmQyLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0Zi4KK2Vycm9yLnBhc3N3b3JkLm1hdGNoPVx1MDQxZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0YyBcdTA0MzggXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0ZiBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDNlXHUwNDMyXHUwNDNmXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDRlXHUwNDQyLgorZXJyb3IucGFzc3dvcmQubWlzbWF0Y2g9XHUwNDFkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzOFx1MDQzY1x1MDQ0ZiBcdTA0MzgvXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQzZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0YyAtIFx1MDQzZlx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQzMVx1MDQ0M1x1MDQzOVx1MDQ0Mlx1MDQzNSwgXHUwNDNmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0NDFcdTA0M2RcdTA0M2VcdTA0MzJcdTA0MzAuCitlcnJvci5yZXBseVRvQWRkcmVzcy5mb3JtYXQ9XHUwNDEyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzNSAnXHUwNDEwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQxZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0M2RcdTA0MzA6JyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2QgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0NGNcdTA0M2RcdTA0M2VcdTA0M2MgXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQyXHUwNDM1Lgorc3RydXRzLm1lc3NhZ2VzLmludmFsaWQudG9rZW49XHUwNDJkXHUwNDQyXHUwNDMwIFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMCBcdTA0M2RcdTA0MzUgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0M2RcdTA0MzAgLSBcdTA0M2RcdTA0MzBcdTA0NDBcdTA0NDNcdTA0NDhcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQwXHUwNDRmXHUwNDM0XHUwNDNhXHUwNDMwIFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZiBcdTA0MzRcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0NDUuCitlcnJvci50eXBlLmludmFsaWQ9XHUwNDEyIFx1MDQzYVx1MDQzMFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzNSBcdTA0NDJcdTA0MzhcdTA0M2ZcdTA0MzAgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwIFx1MDQzY1x1MDQzZVx1MDQzM1x1MDQ0M1x1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDRiIFx1MDQzYlx1MDQzOFx1MDQ0OFx1MDQ0YyAnaW1hcCcgXHUwNDM4XHUwNDNiXHUwNDM4ICdwb3AzJworZXJyb3IudHlwZS5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0Mlx1MDQzOFx1MDQzZiBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzAKK2Vycm9yLnVzZXJuYW1lLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDM4XHUwNDNjXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0ZgorZXJyb3IudXNlcm5hbWUudW5pcXVlPVx1MDQyM1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0MzhcdTA0M2NcdTA0NGYgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRmIFx1MDQ0M1x1MDQzNlx1MDQzNSBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgLSBcdTA0MzJcdTA0NGJcdTA0MzFcdTA0MzVcdTA0NDBcdTA0MzhcdTA0NDJcdTA0MzUsIFx1MDQzZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDM0XHUwNDQwXHUwNDQzXHUwNDMzXHUwNDNlXHUwNDM1IFx1MDQzOFx1MDQzY1x1MDQ0Zi4KK2Vycm9ycy5mb290ZXI9PC91bD48aHI+CitlcnJvcnMuaGVhZGVyPTxoMz48Zm9udCBjb2xvcj0icmVkIj5cdTA0MWVcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzggXHUwNDNmXHUwNDQwXHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzOCBcdTA0MzRcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0NDU8L2ZvbnQ+PC9oMz48cD5cdTA0MTJcdTA0NGIgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDNkXHUwNDRiIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzUgXHUwNDNkXHUwNDM4XHUwNDM2XHUwNDM1IFx1MDQzZVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzYVx1MDQzODo8L3A+PHVsPgorZXJyb3JzLnByZWZpeD08bGk+CitlcnJvcnMuc3VmZml4PTwvbGk+CitlcnJvcnMuaW9FeGNlcHRpb249XHUwNDFlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDMwIFx1MDQzMlx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMC9cdTA0MzJcdTA0NGJcdTA0MzJcdTA0M2VcdTA0MzRcdTA0MzAgXHUwNDNmXHUwNDQwXHUwNDM4IFx1MDQ0MVx1MDQzZVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQzZFx1MDQzOFx1MDQzOCBcdTA0NDFcdTA0M2VcdTA0M2VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzkgXHUwNDNlXHUwNDMxIFx1MDQzZVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzYVx1MDQzMFx1MDQ0NTogezB9CitleHBpcmVkLnBhc3N3b3JkPVVzZXIgUGFzc3dvcmQgaGFzIGV4cGlyZWQgZm9yIHswfQoraGVhZGluZy5hdXRvQ29ubmVjdD1cdTA0MTBcdTA0MzJcdTA0NDJcdTA0M2VcdTA0M2NcdTA0MzBcdTA0NDJcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M2FcdTA0MzgKK2hlYWRpbmcuc3Vic2NyaXB0aW9ucz1cdTA0MTdcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDM4CitoZWFkaW5nLmhvc3Q9XHUwNDIxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwCitoZWFkaW5nLnVzZXI9XHUwNDE4XHUwNDNjXHUwNDRmCitoZWFkaW5nLnR5cGU9XHUwNDIyXHUwNDM4XHUwNDNmIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMAoraGVhZGluZy5hY3Rpb249XHUwNDE0XHUwNDM1XHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM4XHUwNDM1CitpbmRleC5oZWFkaW5nPVx1MDQxNFx1MDQzNVx1MDQzY1x1MDQzZVx1MDQzZFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzZVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgJ1x1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0NGInCitpbmRleC5sb2dpbj1cdTA0MTJcdTA0M2VcdTA0MzlcdTA0NDJcdTA0MzggXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzN1x1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQzOSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGMKK2luZGV4LnJlZ2lzdHJhdGlvbj1cdTA0MTdcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYKK2luZGV4LnRpdGxlPVx1MDQxNFx1MDQzNVx1MDQzY1x1MDQzZVx1MDQzZFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzZVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgJ1x1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0NGInIChTdHJ1dHMgMS4xLWRldikKK2luZGV4LnRvdXI9XHUwNDFlXHUwNDMxXHUwNDM3XHUwNDNlXHUwNDQwIFx1MDQxNFx1MDQzNVx1MDQzY1x1MDQzZVx1MDQzZFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzZVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzM1x1MDQzZSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgJ1x1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0NGInCitsaW5rU3Vic2NyaXB0aW9uLmlvPVx1MDQxZVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzYVx1MDQzMCBcdTA0MzJcdTA0MzJcdTA0M2VcdTA0MzRcdTA0MzAvXHUwNDMyXHUwNDRiXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwIChcdTA0MzRcdTA0M2JcdTA0NGYgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDM4KTogezB9CitsaW5rU3Vic2NyaXB0aW9uLm5vU3Vic2NyaXB0aW9uPVx1MDQxMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0MiB7MH0gXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzZVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzOFx1MDQ0MiBcdTA0MzhcdTA0M2RcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNlIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQzNSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0M1x1MDQ0OVx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQ0M1x1MDQzNVx1MDQ0Mi4KK2xpbmtVc2VyLmlvPVx1MDQxZVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzYVx1MDQzMCBcdTA0MzJcdTA0MzJcdTA0M2VcdTA0MzRcdTA0MzAvXHUwNDMyXHUwNDRiXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwIChcdTA0MzRcdTA0M2JcdTA0NGYgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRmKTogezB9CitsaW5rVXNlci5ub1VzZXI9XHUwNDEwXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDMxXHUwNDQzXHUwNDQyIHswfSBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDNlXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM4XHUwNDQyIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M2UgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDM1IFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDM1XHUwNDQyLgorbG9naW4udGl0bGU9XHUwNDE0XHUwNDM1XHUwNDNjXHUwNDNlXHUwNDNkXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNlXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYlx1MDQzZVx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDRiIC0gXHUwNDFmXHUwNDQwXHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDNhXHUwNDMwIFx1MDQzOFx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzOCBcdTA0MzggXHUwNDNmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRmLgorbWVudS5oZWFkaW5nPVx1MDQxZFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzZVx1MDQzOVx1MDQzYVx1MDQzOCBcdTA0MzNcdTA0M2JcdTA0MzBcdTA0MzJcdTA0M2RcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDRlIFx1MDQzNFx1MDQzYlx1MDQ0ZgorbWVudS5sb2dvdXQ9XHUwNDEyXHUwNDRiXHUwNDM5XHUwNDQyXHUwNDM4CittZW51LnJlZ2lzdHJhdGlvbj1cdTA0MThcdTA0MzdcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDMyXHUwNDNlXHUwNDM4IFx1MDQzZFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzZVx1MDQzOVx1MDQzYVx1MDQzOAorbWFpbk1lbnUudGl0bGU9XHUwNDE0XHUwNDM1XHUwNDNjXHUwNDNlXHUwNDNkXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNlXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYlx1MDQzZVx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSAnXHUwNDI3XHUwNDQyXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQ0YicgLSBcdTA0MWVcdTA0NDFcdTA0M2RcdTA0M2VcdTA0MzJcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDRlCitvcHRpb24uaW1hcD1cdTA0MWZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2IgSU1BUAorb3B0aW9uLnBvcDM9XHUwNDFmXHUwNDQwXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDNhXHUwNDNlXHUwNDNiIFBPUDMKKyMgcHJvbXB0LgorYXV0b0Nvbm5lY3Q9XHUwNDEwXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDNjXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDM1IFx1MDQ0MVx1MDQzZVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNToKK2Zyb21BZGRyZXNzPVx1MDQxMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MWVcdTA0NDI6CitmdWxsTmFtZT1cdTA0MWZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDM4XHUwNDNjXHUwNDRmOgorbWFpbEhvc3RuYW1lPVx1MDQxZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQ0Ylx1MDQzOSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDA6CittYWlsUGFzc3dvcmQ9XHUwNDFmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRjIFx1MDQzNFx1MDQzYlx1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwOgorbWFpbFNlcnZlclR5cGU9XHUwNDIyXHUwNDM4XHUwNDNmIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMDoKK21haWxVc2VybmFtZT1cdTA0MThcdTA0M2NcdTA0NGYgXHUwNDM0XHUwNDNiXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzZVx1MDQzM1x1MDQzZSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzA6CitwYXNzd29yZD1cdTA0MWZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGM6CitwYXNzd29yZDI9KFx1MDQxZlx1MDQzZVx1MDQzNFx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzNFx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSkgXHUwNDFmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRjOgorcmVwbHlUb0FkZHJlc3M9XHUwNDEwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQxZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0M2RcdTA0MzA6Cit1c2VybmFtZT1cdTA0MThcdTA0M2NcdTA0NGY6CityZWdpc3RyYXRpb24uYWRkU3Vic2NyaXB0aW9uPVx1MDQxNFx1MDQzZVx1MDQzMVx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0YworcmVnaXN0cmF0aW9uLmRlbGV0ZVN1YnNjcmlwdGlvbj1cdTA0MjNcdTA0MzRcdTA0MzBcdTA0M2JcdTA0MzhcdTA0NDJcdTA0NGMKK3JlZ2lzdHJhdGlvbi5lZGl0U3Vic2NyaXB0aW9uPVx1MDQyMFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzYVx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0YworcmVnaXN0cmF0aW9uLnRpdGxlLmNyZWF0ZT1cdTA0MTdcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYKK3JlZ2lzdHJhdGlvbi50aXRsZS5lZGl0PVx1MDQxOFx1MDQzN1x1MDQzY1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzRcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzUgXHUwNDNlIFx1MDQ0MVx1MDQzMlx1MDQzZVx1MDQzNVx1MDQzOSBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzgKK3N1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGU9XHUwNDIxXHUwNDNlXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzZFx1MDQzZVx1MDQzMlx1MDQ0M1x1MDQ0ZSBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0M2ZcdTA0MzhcdTA0NDFcdTA0M2FcdTA0NDMKK3N1YnNjcmlwdGlvbi50aXRsZS5kZWxldGU9XHUwNDIzXHUwNDM0XHUwNDMwXHUwNDNiXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0M1x1MDQ0OVx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQ0M1x1MDQ0ZSBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0M2ZcdTA0MzhcdTA0NDFcdTA0M2FcdTA0NDMKK3N1YnNjcmlwdGlvbi50aXRsZS5lZGl0PVx1MDQyMFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzYVx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDNcdTA0NDlcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0NGVcdTA0NDlcdTA0NDNcdTA0NGUgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDQzCisKKyMgU3RhbmRhcmQgZXJyb3IgbWVzc2FnZXMgZm9yIHZhbGlkYXRvciBmcmFtZXdvcmsgY2hlY2tzCitlcnJvcnMucmVxdWlyZWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIHJlcXVpcmVkLgorZXJyb3JzLm1pbmxlbmd0aD0ke2dldFRleHQoZmllbGROYW1lKX0gY2Fubm90IGJlIGxlc3MgdGhhbiB7MX0gY2hhcmFjdGVycy4KK2Vycm9ycy5tYXhsZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gezJ9IGNoYXJhY3RlcnMuCitlcnJvcnMuaW52YWxpZD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgaW52YWxpZC4KK2Vycm9ycy5ieXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGJ5dGUuCitlcnJvcnMuc2hvcnQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gc2hvcnQuCitlcnJvcnMuaW50ZWdlcj0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBpbnRlZ2VyLgorZXJyb3JzLmxvbmc9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gbG9uZy4KK2Vycm9ycy5mbG9hdD0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBmbG9hdC4KK2Vycm9ycy5kb3VibGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gZG91YmxlLgorZXJyb3JzLmRhdGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIG5vdCBhIGRhdGUuCitlcnJvcnMucmFuZ2U9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIG5vdCBpbiB0aGUgcmFuZ2UgezF9IHRocm91Z2ggezJ9LgorZXJyb3JzLmNyZWRpdGNhcmQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIG5vdCBhIHZhbGlkIGNyZWRpdCBjYXJkIG51bWJlci4KK2Vycm9ycy5lbWFpbD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgYW4gaW52YWxpZCBlLW1haWwgYWRkcmVzcy4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL3N0cnV0cy5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvc3RydXRzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVjODEzNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL3N0cnV0cy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEgQEAKK3N0cnV0cy5jdXN0b20uaTE4bi5yZXNvdXJjZXM9cmVzb3VyY2VzDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL2phdmEvc3RydXRzLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL3N0cnV0cy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRlNjgwZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy9qYXZhL3N0cnV0cy54bWwKQEAgLTAsMCArMSwxNDEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/PgorPCFET0NUWVBFIHN0cnV0cyBQVUJMSUMKKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMi4wLy9FTiIKKyAgICAgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy0yLjAuZHRkIj4KKworPHN0cnV0cz4KKyAgICA8Y29uc3RhbnQgbmFtZT0ic3RydXRzLmRldk1vZGUiIHZhbHVlPSJ0cnVlIi8+CisgICAgPGNvbnN0YW50IG5hbWU9InN0cnV0cy5lbmFibGUuRHluYW1pY01ldGhvZEludm9jYXRpb24iIHZhbHVlPSJmYWxzZSIvPgorCisgICAgPHBhY2thZ2UgbmFtZT0iZGVmYXVsdCIgZXh0ZW5kcz0ic3RydXRzLWRlZmF1bHQiPgorCisgICAgICAgIDxpbnRlcmNlcHRvcnM+CisKKyAgICAgICAgICAgIDxpbnRlcmNlcHRvciBuYW1lPSJhdXRoZW50aWNhdGlvbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iQXV0aGVudGljYXRpb25JbnRlcmNlcHRvciIvPgorCisgICAgICAgICAgICA8aW50ZXJjZXB0b3Itc3RhY2sgbmFtZT0idXNlciI+CisgICAgICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJhdXRoZW50aWNhdGlvbiIvPgorICAgICAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0iZGVmYXVsdFN0YWNrIi8+CisgICAgICAgICAgICA8L2ludGVyY2VwdG9yLXN0YWNrPgorCisgICAgICAgICAgICA8aW50ZXJjZXB0b3Itc3RhY2sgbmFtZT0idXNlci1zdWJtaXQiPgorICAgICAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0idG9rZW4tc2Vzc2lvbiIvPgorICAgICAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0idXNlciIvPgorICAgICAgICAgICAgPC9pbnRlcmNlcHRvci1zdGFjaz4KKworICAgICAgICAgICAgPGludGVyY2VwdG9yLXN0YWNrIG5hbWU9Imd1ZXN0Ij4KKyAgICAgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9ImRlZmF1bHRTdGFjayIvPgorICAgICAgICAgICAgPC9pbnRlcmNlcHRvci1zdGFjaz4KKworICAgICAgICAgICAgPGludGVyY2VwdG9yLXN0YWNrIG5hbWU9Imd1ZXN0LXN1Ym1pdCI+CisgICAgICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJ0b2tlbi1zZXNzaW9uIi8+CisgICAgICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPgorICAgICAgICAgICAgPC9pbnRlcmNlcHRvci1zdGFjaz4KKworICAgICAgICA8L2ludGVyY2VwdG9ycz4KKworICAgICAgICA8ZGVmYXVsdC1pbnRlcmNlcHRvci1yZWYgbmFtZT0idXNlciIvPgorCisgICAgICAgIDxkZWZhdWx0LWFjdGlvbi1yZWYgbmFtZT0iTWlzc2luZyIvPgorCisgICAgICAgIDxnbG9iYWwtcmVzdWx0cz4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iZXJyb3IiPi9wYWdlcy9FcnJvci5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0ibG9naW4iIHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+TG9naW48L3Jlc3VsdD4KKyAgICAgICAgPC9nbG9iYWwtcmVzdWx0cz4KKworICAgICAgICA8Z2xvYmFsLWV4Y2VwdGlvbi1tYXBwaW5ncz4KKyAgICAgICAgICAgIDxleGNlcHRpb24tbWFwcGluZworICAgICAgICAgICAgICAgICAgICByZXN1bHQ9ImVycm9yIgorICAgICAgICAgICAgICAgICAgICBleGNlcHRpb249ImphdmEubGFuZy5UaHJvd2FibGUiLz4KKyAgICAgICAgPC9nbG9iYWwtZXhjZXB0aW9uLW1hcHBpbmdzPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iSGVsbG8iIGNsYXNzPSJIZWxsbyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9IZWxsby5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0iZ3Vlc3QiLz4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJNaXNzaW5nIj4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL01pc3NpbmcuanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9Imd1ZXN0Ii8+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iV2VsY29tZSI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9XZWxjb21lLmpzcDwvcmVzdWx0PgorICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlJlZ2lzdGVyIiBjbGFzcz0iUmVnaXN0ZXIiIG1ldGhvZD0iaW5wdXQiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL1JlZ2lzdGVyLmpzcDwvcmVzdWx0PgorICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlJlZ2lzdGVyX2NhbmNlbCIgY2xhc3M9IlJlZ2lzdGVyIiBtZXRob2Q9ImNhbmNlbCI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImNhbmNlbCIgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5XZWxjb21lPC9yZXN1bHQ+CisgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9Imd1ZXN0Ii8+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iUmVnaXN0ZXJfY3JlYXRlIiBjbGFzcz0iUmVnaXN0ZXJDcmVhdGUiIG1ldGhvZD0ic2F2ZSI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvUmVnaXN0ZXIuanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+TWVudTwvcmVzdWx0PgorICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlJlZ2lzdGVyX3NhdmUiIGNsYXNzPSJSZWdpc3RlciIgbWV0aG9kPSJzYXZlIj4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9SZWdpc3Rlci5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5NZW51PC9yZXN1bHQ+CisgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9Imd1ZXN0Ii8+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTWVudSIgY2xhc3M9Ik1haWxSZWFkZXJTdXBwb3J0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL01lbnUuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTG9nb3V0IiBjbGFzcz0iTG9nb3V0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5XZWxjb21lPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTG9naW4iIGNsYXNzPSJMb2dpbiIgbWV0aG9kPSJpbnB1dCI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvTG9naW4uanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9Imd1ZXN0Ii8+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTG9naW5fY2FuY2VsIiBjbGFzcz0iTG9naW4iIG1ldGhvZD0iY2FuY2VsIj4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iY2FuY2VsIiB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPldlbGNvbWU8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0iZ3Vlc3QiLz4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJMb2dpbl9zYXZlIiBjbGFzcz0iTG9naW4iIG1ldGhvZD0ic2F2ZSI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvTG9naW4uanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+TWVudTwvcmVzdWx0PgorICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlN1YnNjcmliZSIgY2xhc3M9IlN1YnNjcmliZSIgbWV0aG9kPSJpbnB1dCI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvU3Vic2NyaWJlLmpzcDwvcmVzdWx0PgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPlJlZ2lzdGVyPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iU3Vic2NyaWJlX2RlbGV0ZSIgY2xhc3M9IlN1YnNjcmliZSIgbWV0aG9kPSJkZWxldGUiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCIgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5Mb2dpbjwvcmVzdWx0PgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvU3Vic2NyaWJlLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlN1YnNjcmliZV9lZGl0IiBjbGFzcz0iU3Vic2NyaWJlIiBtZXRob2Q9ImVkaXQiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCIgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5Mb2dpbjwvcmVzdWx0PgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvU3Vic2NyaWJlLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlN1YnNjcmliZV9zYXZlIiBjbGFzcz0iU3Vic2NyaWJlU2F2ZSIgbWV0aG9kPSJzYXZlIj4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9TdWJzY3JpYmUuanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+UmVnaXN0ZXI8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0idXNlci1zdWJtaXQiLz4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJOUEUiIGNsYXNzPSJOUEUiPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvSGVsbG8uanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9Imd1ZXN0Ii8+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgPC9wYWNrYWdlPgorPC9zdHJ1dHM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvdGVzdC9IZWxsb1Rlc3QuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy90ZXN0L0hlbGxvVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwZGViZjUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvdGVzdC9IZWxsb1Rlc3QuamF2YQpAQCAtMCwwICsxLDE2IEBACitpbXBvcnQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlOworCisvKioKKyAqIEFuIGV4YW1wbGUgdGV4dCBjbGFzcyB0byB2ZXJpZnkgdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3B1YmxpYyBjbGFzcyBIZWxsb1Rlc3QgZXh0ZW5kcyBUZXN0Q2FzZSB7CisKKyAgICAvKioKKyAgICAgKiBBbiBleGFtcGxlIHRlc3QgdGhhdCBhc3NlcnRzIHRydWUuCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBPbiBpbnZhbGlkIGFzc2VydGlvbnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SGVsbG9BY3Rpb24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgYXNzZXJ0VHJ1ZSh0cnVlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvdGVzdC9SZWdpc3RlclRlc3QuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy90ZXN0L1JlZ2lzdGVyVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ODYzNjYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvdGVzdC9SZWdpc3RlclRlc3QuamF2YQpAQCAtMCwwICsxLDM1IEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKKworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworCitwdWJsaWMgY2xhc3MgUmVnaXN0ZXJUZXN0IGV4dGVuZHMgUmV0YWluVGVzdCB7CisKKyAgICBSZWdpc3RlciBhY3Rpb24gPSBudWxsOworCisgICAgcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgc3VwZXIuc2V0VXAoKTsKKyAgICAgICAgYWN0aW9uID0gbmV3IFJlZ2lzdGVyKCk7CisgICAgICAgIGFjdGlvbi5zZXRBcHBsaWNhdGlvbihuZXcgSGFzaE1hcCgpKTsKKyAgICAgICAgYWN0aW9uLnNldFNlc3Npb24obmV3IEhhc2hNYXAoKSk7CisgICAgICAgIGFjdGlvbi5zZXREYXRhYmFzZShkYXRhYmFzZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFNhdmUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBhY3Rpb24uc2V0VXNlcm5hbWUoInVzZXIiKTsKKyAgICAgICAgYWN0aW9uLnNldFBhc3N3b3JkKCJwYXNzIik7CisgICAgICAgIGFjdGlvbi5zZXRGdWxsTmFtZSgiSm9obiBRLiBVc2VyIik7CisgICAgICAgIGFjdGlvbi5zZXRGcm9tQWRkcmVzcygiSm9obi5Vc2VyQHNvbWV3aGVyZS5jb20iKTsKKworICAgICAgICBTdHJpbmcgc3VjY2VzcyA9IGFjdGlvbi5zYXZlKCk7CisgICAgICAgIGFzc2VydFRydWUoIkV4cGVjdGVkIFNVQ0NFU1MiLCBBY3Rpb24uU1VDQ0VTUy5lcXVhbHMoc3VjY2VzcykpOworCisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoIkV4cGVjdGVkIHVzZXIiLCB1c2VyKTsKKworICAgICAgICBTdHJpbmcgaW5wdXQgPSBhY3Rpb24uc2F2ZSgpOworICAgICAgICBhc3NlcnRUcnVlKCJFeHBlY3RlZCBJTlBVVCIsIEFjdGlvbi5JTlBVVC5lcXVhbHMoaW5wdXQpKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy90ZXN0L1JldGFpblRlc3QuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy90ZXN0L1JldGFpblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjY2ZjczCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3Rlc3QvUmV0YWluVGVzdC5qYXZhCkBAIC0wLDAgKzEsOTcgQEAKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5TdWJzY3JpcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlckRhdGFiYXNlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uaW1wbC5tZW1vcnkuTWVtb3J5VXNlckRhdGFiYXNlOworCitwdWJsaWMgY2xhc3MgUmV0YWluVGVzdCBleHRlbmRzIFRlc3RDYXNlIHsKKworICAgIHByb3RlY3RlZCBVc2VyRGF0YWJhc2UgZGF0YWJhc2U7CisgICAgcHJvdGVjdGVkIFN0cmluZyB0ZXN0TmFtZSA9ICJ0ZXN0LWRhdGFiYXNlLnhtbCI7CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci5zZXRVcCgpOworICAgICAgICBNZW1vcnlVc2VyRGF0YWJhc2UgbWVtb3J5VXNlckRhdGFiYXNlID0gbmV3IE1lbW9yeVVzZXJEYXRhYmFzZSgpOworICAgICAgICBtZW1vcnlVc2VyRGF0YWJhc2Uuc2V0UGF0aG5hbWUodGVzdE5hbWUpOworICAgICAgICBkYXRhYmFzZSA9IG1lbW9yeVVzZXJEYXRhYmFzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGF0YWJhc2VDbGVhbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCB1c2VyIHRvIGJlIG1pc3NpbmciLCB1c2VyKTsKKyAgICB9CisKKyAgICAvLyAgQWRkIHlvdXIgdGVzdCBtZXRob2RzIGhlcmUuCisgICAgLy8gIFRoZSBzZXRVcCBtZXRob2Qgd2lsbCBydW4gYmV0d2VlbiBlYWNoIHRlc3QuCisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q3JlYXRlVXNlcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE5vdE51bGwodXNlcik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEZpbmRVc2VyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVzZXIgdXNlcjEgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIFVzZXIgdXNlcjIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnRTYW1lKCJFeHBlY3RlZCB1c2VycyB0byBtYXRjaCIsIHVzZXIxLCB1c2VyMik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdENyZWF0ZVN1YnNjcmlwdGlvbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRXhwZWN0ZWQgc3Vic2NyaXB0aW9uIHRvIGJlIGNyZWF0ZWQiLCBzdWIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kU3Vic2NyaXB0aW9uKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIxID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpLmZpbmRTdWJzY3JpcHRpb24oIm1haWwueWFob28uY29tIik7CisgICAgICAgIGFzc2VydFNhbWUoIkV4cGVjdGVkIFN1YnNjcmlwdGlvbnMgdG8gbWF0Y2giLCBzdWIxLCBzdWIyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGF0YWJzYWVTYXZlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICB1c2VyLnNldFBhc3N3b3JkKCJwYXNzIik7CisgICAgICAgIHVzZXIuc2V0RnVsbE5hbWUoIkpvaG4gUS4gVXNlciIpOworICAgICAgICB1c2VyLnNldEZyb21BZGRyZXNzKCJKb2huLlVzZXJAc29tZXdoZXJlLmNvbSIpOworCisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIxID0gdXNlci5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwuaG90bWFpbC5jb20iKTsKKyAgICAgICAgc3ViMS5zZXRVc2VybmFtZSgidXNlcjEyMzQiKTsKKyAgICAgICAgc3ViMS5zZXRBdXRvQ29ubmVjdChmYWxzZSk7CisgICAgICAgIHN1YjEuc2V0VHlwZSgicG9wMyIpOworICAgICAgICBzdWIxLnNldFBhc3N3b3JkKCJiYXIiKTsKKworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMiA9IHVzZXIuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLnlhaG9vLmNvbSIpOworICAgICAgICBzdWIyLnNldFVzZXJuYW1lKCJqcXVzZXIiKTsKKyAgICAgICAgc3ViMi5zZXRBdXRvQ29ubmVjdChmYWxzZSk7CisgICAgICAgIHN1YjIuc2V0VHlwZSgiaW1hcCIpOworICAgICAgICBzdWIyLnNldFBhc3N3b3JkKCJmb28iKTsKKworICAgICAgICBkYXRhYmFzZS5zYXZlKCk7CisKKyAgICB9CisKKyAgICAvLyBFeHRyYSBjcmVkaXQKKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kZXJVc2VyQm9ndXMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyMSA9IGRhdGFiYXNlLmZpbmRVc2VyKCJib2d1cyIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCBib2d1cyB1c2VyIHRvIGJlIG5vdCBmb3VuZCIsIHVzZXIxKTsKKyAgICAgICAgVXNlciB1c2VyMiA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRXhwZWN0ZWQgdXNlciB0byBiZSBjcmVhdGVkIiwgdXNlcjIpOworICAgICAgICB1c2VyMSA9IGRhdGFiYXNlLmZpbmRVc2VyKCJib2d1cyIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCBib2d1cyB1c2VyIHRvIGJlIG5vdCBmb3VuZCIsIHVzZXIxKTsKKyAgICAgICAgdXNlcjEgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROb3ROdWxsKCJFeHBlY3RlZCB1c2VyIHRvIGJlIGZvdW5kIiwgdXNlcjEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kU3ViQm9ndXMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gdXNlci5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLmJvZ3VzLmNvbSIpOworICAgICAgICBhc3NlcnROdWxsKHN1Yik7CisgICAgICAgIHN1YiA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIikuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLmhvdG1haWwuY29tIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoc3ViKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjIgPSB1c2VyLmZpbmRTdWJzY3JpcHRpb24oIm1haWwuYm9ndXMuY29tIik7CisgICAgICAgIGFzc2VydE51bGwoc3ViMik7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIzID0gdXNlci5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLmhvdG1haWwuY29tIik7CisgICAgICAgIGFzc2VydFNhbWUoc3ViLCBzdWIzKTsKKyAgICB9CisKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvV2ViVGVzdC5kdGQgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvV2ViVGVzdC5kdGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGY4YTM0NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9XZWJUZXN0LmR0ZApAQCAtMCwwICsxLDQ2OTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/PgorPCFFTlRJVFkgJSBib29sZWFuICIodHJ1ZXxmYWxzZXxvbnxvZmZ8eWVzfG5vKSI+Cis8IUVOVElUWSAlIHRhc2tzICJwcm9wZXJ0eWZpbGUgfCBjY21rZGlyIHwgaW1wb3J0dHlwZWxpYiB8IHZzc2NoZWNraW4gfCBzcWwgfCBjdnNwYXNzIHwgY3NjIHwgZGlybmFtZSB8IHJlcGxhY2VyZWdleHAgfCBnZXQgfCBqanRyZWUgfCBzbGVlcCB8IGphcmxpYi1kaXNwbGF5IHwgbGVuZ3RoIHwgZGVwZW5kc2V0IHwgemlwIHwgcGF0Y2ggfCBqc3BjIHwgc3R5bGUgfCBuaWNlIHwgdGVzdCB8IHRzdGFtcCB8IHVud2FyIHwgdnNzaGlzdG9yeSB8IGN2c2NoYW5nZWxvZyB8IGNjbWNoZWNraW4gfCBiemlwMiB8IHN5bmMgfCB2c3NhZGQgfCBqYXZhZG9jIHwgdHJhbnNsYXRlIHwgc2lnbmphciB8IGNjbG9jayB8IGNob3duIHwgamFybGliLWF2YWlsYWJsZSB8IFdzZGxUb0RvdG5ldCB8IGJ1aWxkbnVtYmVyIHwganBjb3ZtZXJnZSB8IGN2c3ZlcnNpb24gfCBlamJqYXIgfCB3YXIgfCByZW5hbWUgfCBzZXF1ZW50aWFsIHwgc2VydmVyZGVwbG95IHwgcHJvcGVydHkgfCBzdWJhbnQgfCBtb3ZlIHwgaWxkYXNtIHwgY29weWRpciB8IGNjY2hlY2tpbiB8IGNjdW5sb2NrIHwgd2xqc3BjIHwgZml4Y3JsZiB8IHNvc2dldCB8IHBhdGhjb252ZXJ0IHwgcmVjb3JkIHwgZXhlYyB8IGNjbWtsYWJlbCB8IG1hbmlmZXN0IHwganBjb3ZyZXBvcnQgfCBleGVjb24gfCBjY21jaGVja291dCB8IGFudCB8IHhtbHZhbGlkYXRlIHwgeHNsdCB8IGlwbGFuZXQtZWpiYyB8IGNjbWNoZWNraW50YXNrIHwgZ3ppcCB8IG5hdGl2ZTJhc2NpaSB8IGNjcm10eXBlIHwgZWFyIHwgaW5wdXQgfCBwcmVzZXRkZWYgfCBybWljIHwgY2hlY2tzdW0gfCBtYWlsIHwgbG9hZGZpbGUgfCB2c3NjaGVja291dCB8IHNvc2NoZWNraW4gfCBtaW1lbWFpbCB8IGd1bnppcCB8IGNvbmNhdCB8IGNhYiB8IHRvdWNoIHwgcGFyYWxsZWwgfCBhbnRjYWxsIHwgY2Nta2JsIHwgY2NjaGVja291dCB8IHR5cGVkZWYgfCBmaWx0ZXIgfCB4bWxwcm9wZXJ0eSB8IGltcG9ydCB8IGNvcHkgfCBqc2hhcnBjIHwgc3ltbGluayB8IGFudHN0cnVjdHVyZSB8IHNjcmlwdCB8IGNjbWNyZWF0ZXRhc2sgfCBycG0gfCBkZWxldGUgfCByZXBsYWNlIHwgbW1ldHJpY3MgfCBhdHRyaWIgfCB3YWl0Zm9yIHwgdW50YXIgfCBsb2FkcHJvcGVydGllcyB8IGF2YWlsYWJsZSB8IGVjaG9wcm9wZXJ0aWVzIHwganVuaXQgfCBjaGdycCB8IGJ1bnppcDIgfCB3aGljaHJlc291cmNlIHwgY29weWZpbGUgfCB2c3NjcmVhdGUgfCBtYWNyb2RlZiB8IHVuamFyIHwgdmJjIHwgd3NkbHRvZG90bmV0IHwgbWtkaXIgfCBjb25kaXRpb24gfCBjdnMgfCB0ZW1wZmlsZSB8IGp1bml0cmVwb3J0IHwgY2Nta2F0dHIgfCB0YXNrZGVmIHwgZWNobyB8IGNjdXBkYXRlIHwgamF2YSB8IHJlbmFtZWV4dCB8IHZzc2xhYmVsIHwgYmFzZW5hbWUgfCBqYXZhZG9jMiB8IHZzc2NwIHwgdGFyIHwgc2V0cHJveHkgfCBpbGFzbSB8IHNvc2NoZWNrb3V0IHwgYXBwbHkgfCBjY3VuY2hlY2tvdXQgfCBqYXJsaWItcmVzb2x2ZSB8IGN2c3RhZ2RpZmYgfCBqbGluayB8IGphdmFjYyB8IGNobW9kIHwgcHZjcyB8IGphcmxpYi1tYW5pZmVzdCB8IGphciB8IGNjbWtsYnR5cGUgfCBzY3JpcHRkZWYgfCBkZWZhdWx0ZXhjbHVkZXMgfCBtcGFyc2UgfCBibGdlbmNsaWVudCB8IHVwdG9kYXRlIHwgampkb2MgfCBnZW5rZXkgfCBqYXZhaCB8IGNjbWtlbGVtIHwgY2NtcmVjb25maWd1cmUgfCBmYWlsIHwgdW56aXAgfCBqYXZhYyB8IGpwY292ZXJhZ2UgfCBzb3NsYWJlbCB8IGRlcGVuZCB8IHZzc2dldCB8IGRlbHRyZWUiPgorPCFFTlRJVFkgJSB0eXBlcyAicGF0dGVybnNldCB8IGFzc2VydGlvbnMgfCBwcm9wZXJ0eXNldCB8IGZpbHRlcm1hcHBlciB8IGZpbHRlcnNldCB8IGxpYmZpbGVzZXQgfCBpc2ZpbGVzZWxlY3RlZCB8IG1lcmdlbWFwcGVyIHwgaWRlbnRpdHltYXBwZXIgfCBmaWx0ZXJyZWFkZXIgfCBzY3JpcHRmaWx0ZXIgfCB1bnBhY2thZ2VtYXBwZXIgfCBjb25jYXRmaWx0ZXIgfCBleHRlbnNpb24gfCBmaWxlc2V0IHwgZGlyc2V0IHwgZ2xvYm1hcHBlciB8IGZpbGVsaXN0IHwgZmlsdGVyY2hhaW4gfCBwYXRoIHwgY29tcG9zaXRlbWFwcGVyIHwgY2xhc3NmaWxlc2V0IHwgcmVnZXhwbWFwcGVyIHwgc2VsZWN0b3IgfCB4bWxjYXRhbG9nIHwgZmxhdHRlbm1hcHBlciB8IGRlc2NyaXB0aW9uIHwgY2hhaW5lZG1hcHBlciB8IHBhY2thZ2VtYXBwZXIgfCBtYXBwZXIgfCB6aXBmaWxlc2V0IHwgc3Vic3RpdHV0aW9uIHwgZXh0ZW5zaW9uU2V0IHwgcmVkaXJlY3RvciB8IHJlZ2V4cCI+CisKKzwhRUxFTUVOVCBwcm9qZWN0ICh0YXJnZXQgfCAldGFza3M7IHwgJXR5cGVzOykqPgorPCFBVFRMSVNUIHByb2plY3QKKyAgICAgICAgICBuYW1lICAgIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJnZXQgKCV0YXNrczsgfCAldHlwZXM7KSo+CisKKzwhQVRUTElTVCB0YXJnZXQKKyAgICAgICAgICBpZCAgICAgICAgICBJRCAgICAjSU1QTElFRAorICAgICAgICAgIG5hbWUgICAgICAgIENEQVRBICNSRVFVSVJFRAorICAgICAgICAgIGlmICAgICAgICAgIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzICAgICAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXBlbmRzICAgICBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0dGVybnNldCAoaW5jbHVkZSB8IHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgZXhjbHVkZXNmaWxlIHwgaW5jbHVkZXNmaWxlKSo+Cis8IUFUVExJU1QgcGF0dGVybnNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbmNsdWRlIEVNUFRZPgorPCFBVFRMSVNUIGluY2x1ZGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4Y2x1ZGUgRU1QVFk+Cis8IUFUVExJU1QgZXhjbHVkZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhjbHVkZXNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGV4Y2x1ZGVzZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW5jbHVkZXNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGluY2x1ZGVzZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXNzZXJ0aW9ucyAoZGlzYWJsZSB8IGVuYWJsZSkqPgorPCFBVFRMSVNUIGFzc2VydGlvbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVzeXN0ZW1hc3NlcnRpb25zICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRpc2FibGUgRU1QVFk+Cis8IUFUVExJU1QgZGlzYWJsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZW5hYmxlIEVNUFRZPgorPCFBVFRMSVNUIGVuYWJsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJvcGVydHlzZXQgKHByb3BlcnR5cmVmIHwgcHJvcGVydHlzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBwcm9wZXJ0eXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGR5bmFtaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmVnYXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByb3BlcnR5cmVmIEVNUFRZPgorPCFBVFRMSVNUIHByb3BlcnR5cmVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVpbHRpbiAoYWxsIHwgc3lzdGVtIHwgY29tbWFuZGxpbmUpICNJTVBMSUVECisgICAgICAgICAgcmVnZXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYXBwZXIgKGNsYXNzcGF0aCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIG1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoaWRlbnRpdHkgfCBmbGF0dGVuIHwgZ2xvYiB8IG1lcmdlIHwgcmVnZXhwIHwgcGFja2FnZSB8IHVucGFja2FnZSkgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3NwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdXN0b20gKGNsYXNzcGF0aCB8IHBhcmFtKSo+Cis8IUFUVExJU1QgY3VzdG9tCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXJhbSBFTVBUWT4KKzwhQVRUTElTVCBwYXJhbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByZXNlbnQgKG1hcHBlcikqPgorPCFBVFRMSVNUIHByZXNlbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZXNlbnQgKHNyY29ubHkgfCBib3RoKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG5vbmUgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIG5vbmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG5vdCAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1Qgbm90CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0eXBlIEVNUFRZPgorPCFBVFRMSVNUIHR5cGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyKSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbW9kaWZpZWQgKHBhcmFtKSo+Cis8IUFUVExJU1QgbW9kaWZpZWQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNvbXBhcmF0b3IgKGVxdWFsIHwgcnVsZSkgI0lNUExJRUQKKyAgICAgICAgICBzZWxkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFsZ29yaXRobSAoaGFzaHZhbHVlIHwgZGlnZXN0KSAjSU1QTElFRAorICAgICAgICAgIGNhY2hlIChwcm9wZXJ0eWZpbGUpICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIG9yIChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBvcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29udGFpbnMgRU1QVFk+Cis8IUFUVExJU1QgY29udGFpbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3Jld2hpdGVzcGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0ZXh0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVwZW5kIChtYXBwZXIpKj4KKzwhQVRUTElTVCBkZXBlbmQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGlmZmVyZW50IChtYXBwZXIpKj4KKzwhQVRUTElTVCBkaWZmZXJlbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZWNvbnRlbnRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZWZpbGV0aW1lcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNpemUgRU1QVFk+Cis8IUFUVExJU1Qgc2l6ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgd2hlbiAobGVzcyB8IG1vcmUgfCBlcXVhbCkgI0lNUExJRUQKKyAgICAgICAgICB1bml0cyAoSyB8IGsgfCBraWxvIHwgS0lMTyB8IEtpIHwgS0kgfCBraSB8IGtpYmkgfCBLSUJJIHwgTSB8IG0gfCBtZWdhIHwgTUVHQSB8IE1pIHwgTUkgfCBtaSB8IG1lYmkgfCBNRUJJIHwgRyB8IGcgfCBnaWdhIHwgR0lHQSB8IEdpIHwgR0kgfCBnaSB8IGdpYmkgfCBHSUJJIHwgVCB8IHQgfCB0ZXJhIHwgVEVSQSB8IFRpIHwgVEkgfCB0aSB8IHRlYmkgfCBURUJJKSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFqb3JpdHkgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIG1ham9yaXR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgYWxsb3d0aWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb250YWluc3JlZ2V4cCBFTVBUWT4KKzwhQVRUTElTVCBjb250YWluc3JlZ2V4cAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhwcmVzc2lvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGVuYW1lIEVNUFRZPgorPCFBVFRMSVNUIGZpbGVuYW1lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZWdhdGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2VsZWN0b3IgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIHNlbGVjdG9yCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRhdGUgRU1QVFk+Cis8IUFUVExJU1QgZGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBtaWxsaXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGVja2RpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGF0ZXRpbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aGVuIChiZWZvcmUgfCBhZnRlciB8IGVxdWFsKSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhbmQgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIGFuZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVwdGggRU1QVFk+Cis8IUFUVExJU1QgZGVwdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG1heCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWluIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRpcnNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZGlyc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHRkaXJzIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBleHRkaXJzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhpc3RpbmcgKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGV4aXN0aW5nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZWxpc3QgKGZpbGUpKj4KKzwhQVRUTElTVCBmaWxlbGlzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZSBFTVBUWT4KKzwhQVRUTElTVCBmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0aGVsZW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgcGF0aGVsZW1lbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIHBhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJtYXBwZXIgKGhlYWRmaWx0ZXIgfCBjbGFzc2NvbnN0YW50cyB8IGxpbmVjb250YWlucyB8IGZpbHRlcnJlYWRlciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2V0b2tlbnMgfCBlc2NhcGV1bmljb2RlIHwgaWdub3JlYmxhbmsgfCB0YWlsZmlsdGVyIHwgdGFic3Rvc3BhY2VzIHwgcHJlZml4bGluZXMgfCB0cmltIHwgZXhwYW5kcHJvcGVydGllcyB8IHN0cmlwbGluZWJyZWFrcyB8IHJlcGxhY2VzdHJpbmcgfCBzdHJpcGxpbmVjb21tZW50cyB8IHRva2VuZmlsdGVyIHwgc3RyaXBqYXZhY29tbWVudHMgfCBjb250YWluc3JlZ2V4IHwgZGVsZXRlY2hhcmFjdGVycyB8IGxpbmVjb250YWluc3JlZ2V4cCkqPgorPCFBVFRMSVNUIGZpbHRlcm1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGhlYWRmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgaGVhZGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBza2lwIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3Njb25zdGFudHMgRU1QVFk+Cis8IUFUVExJU1QgY2xhc3Njb25zdGFudHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpbmVjb250YWlucyAoY29udGFpbnMpKj4KKzwhQVRUTElTVCBsaW5lY29udGFpbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnJlYWRlciAoY2xhc3NwYXRoIHwgcGFyYW0pKj4KKzwhQVRUTElTVCBmaWx0ZXJyZWFkZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNlcmVnZXggRU1QVFk+Cis8IUFUVExJU1QgcmVwbGFjZXJlZ2V4CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGFncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2V0b2tlbnMgKHRva2VuKSo+Cis8IUFUVExJU1QgcmVwbGFjZXRva2VucworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYmVnaW50b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZHRva2VuIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdG9rZW4gRU1QVFk+Cis8IUFUVExJU1QgdG9rZW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGtleSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXNjYXBldW5pY29kZSBFTVBUWT4KKzwhQVRUTElTVCBlc2NhcGV1bmljb2RlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpZ25vcmVibGFuayBFTVBUWT4KKzwhQVRUTElTVCBpZ25vcmVibGFuaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhaWxmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgdGFpbGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBza2lwIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFic3Rvc3BhY2VzIEVNUFRZPgorPCFBVFRMSVNUIHRhYnN0b3NwYWNlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFibGVuZ3RoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJlZml4bGluZXMgRU1QVFk+Cis8IUFUVExJU1QgcHJlZml4bGluZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRyaW0gRU1QVFk+Cis8IUFUVExJU1QgdHJpbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4cGFuZHByb3BlcnRpZXMgRU1QVFk+Cis8IUFUVExJU1QgZXhwYW5kcHJvcGVydGllcworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3RyaXBsaW5lYnJlYWtzIEVNUFRZPgorPCFBVFRMSVNUIHN0cmlwbGluZWJyZWFrcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZWJyZWFrcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2VzdHJpbmcgRU1QVFk+Cis8IUFUVExJU1QgcmVwbGFjZXN0cmluZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN0cmlwbGluZWNvbW1lbnRzIChjb21tZW50KSo+Cis8IUFUVExJU1Qgc3RyaXBsaW5lY29tbWVudHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgY29tbWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0b2tlbmZpbHRlciAoY29udGFpbnNzdHJpbmcgfCBsaW5ldG9rZW5pemVyIHwgdHJpbSB8IHN0cmluZ3Rva2VuaXplciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2VzdHJpbmcgfCBpZ25vcmVibGFuayB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBjb250YWluc3JlZ2V4IHwgZmlsZXRva2VuaXplcikqPgorPCFBVFRMSVNUIHRva2VuZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZWxpbW91dHB1dCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbnRhaW5zc3RyaW5nIEVNUFRZPgorPCFBVFRMSVNUIGNvbnRhaW5zc3RyaW5nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjb250YWlucyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpbmV0b2tlbml6ZXIgRU1QVFk+Cis8IUFUVExJU1QgbGluZXRva2VuaXplcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWRlbGltcyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdHJpbmd0b2tlbml6ZXIgRU1QVFk+Cis8IUFUVExJU1Qgc3RyaW5ndG9rZW5pemVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdXBwcmVzc2RlbGltcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVsaW1zICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlbGltc2FyZXRva2VucyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWxpbXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZWxldGVjaGFyYWN0ZXJzIEVNUFRZPgorPCFBVFRMSVNUIGRlbGV0ZWNoYXJhY3RlcnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNoYXJzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29udGFpbnNyZWdleCBFTVBUWT4KKzwhQVRUTElTVCBjb250YWluc3JlZ2V4CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGFncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGV0b2tlbml6ZXIgRU1QVFk+Cis8IUFUVExJU1QgZmlsZXRva2VuaXplcgorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3RyaXBqYXZhY29tbWVudHMgRU1QVFk+Cis8IUFUVExJU1Qgc3RyaXBqYXZhY29tbWVudHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpbmVjb250YWluc3JlZ2V4cCAocmVnZXhwKSo+Cis8IUFUVExJU1QgbGluZWNvbnRhaW5zcmVnZXhwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZWdleHAgRU1QVFk+Cis8IUFUVExJU1QgcmVnZXhwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnNldCAoZmlsdGVyc2V0IHwgZmlsdGVyIHwgZmlsdGVyc2ZpbGUpKj4KKzwhQVRUTElTVCBmaWx0ZXJzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJlZ2ludG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmR0b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcnNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVyIEVNUFRZPgorPCFBVFRMSVNUIGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGZpbHRlcnNmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGliZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgbGliZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB1cmxiYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWltcGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRldXJsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXNmaWxlc2VsZWN0ZWQgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIGlzZmlsZXNlbGVjdGVkCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXJnZW1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBtZXJnZW1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaWRlbnRpdHltYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgaWRlbnRpdHltYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNjcmlwdGZpbHRlciAoI1BDREFUQSk+Cis8IUFUVExJU1Qgc2NyaXB0ZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVucGFja2FnZW1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCB1bnBhY2thZ2VtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhhbmRsZWRpcnNlcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbmNhdGZpbHRlciBFTVBUWT4KKzwhQVRUTElTVCBjb25jYXRmaWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZXBlbmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHRlbnNpb24gRU1QVFk+Cis8IUFUVExJU1QgZXh0ZW5zaW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9udmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwZWNpZmljYXRpb252ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZW5zaW9ubmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9udmVuZG9yaWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGVjaWZpY2F0aW9udmVuZG9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb251cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9udmVuZG9yIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ2xvYm1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBnbG9ibWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBoYW5kbGVkaXJzZXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJjaGFpbiAoaGVhZGZpbHRlciB8IGNsYXNzY29uc3RhbnRzIHwgbGluZWNvbnRhaW5zIHwgZmlsdGVycmVhZGVyIHwgcmVwbGFjZXJlZ2V4IHwgcmVwbGFjZXRva2VucyB8IGVzY2FwZXVuaWNvZGUgfCBpZ25vcmVibGFuayB8IHRhaWxmaWx0ZXIgfCB0YWJzdG9zcGFjZXMgfCBwcmVmaXhsaW5lcyB8IHRyaW0gfCBleHBhbmRwcm9wZXJ0aWVzIHwgc3RyaXBsaW5lYnJlYWtzIHwgcmVwbGFjZXN0cmluZyB8IHN0cmlwbGluZWNvbW1lbnRzIHwgdG9rZW5maWx0ZXIgfCBzdHJpcGphdmFjb21tZW50cyB8IGNvbnRhaW5zcmVnZXggfCBkZWxldGVjaGFyYWN0ZXJzIHwgbGluZWNvbnRhaW5zcmVnZXhwKSo+Cis8IUFUVExJU1QgZmlsdGVyY2hhaW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21wb3NpdGVtYXBwZXIgKG1hcHBlcikqPgorPCFBVFRMSVNUIGNvbXBvc2l0ZW1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3NmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCByb290ZmlsZXNldCB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgcm9vdCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjbGFzc2ZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByb290Y2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJvb3RmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCByb290ZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcm9vdCBFTVBUWT4KKzwhQVRUTElTVCByb290CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZWdleHBtYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgcmVnZXhwbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBoYW5kbGVkaXJzZXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB4bWxjYXRhbG9nIChlbnRpdHkgfCBjbGFzc3BhdGggfCBjYXRhbG9ncGF0aCB8IGR0ZCB8IHhtbGNhdGFsb2cpKj4KKzwhQVRUTElTVCB4bWxjYXRhbG9nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjYXRhbG9ncGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlbnRpdHkgRU1QVFk+Cis8IUFUVExJU1QgZW50aXR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdWJsaWNpZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNhdGFsb2dwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBjYXRhbG9ncGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGR0ZCBFTVBUWT4KKzwhQVRUTElTVCBkdGQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1YmxpY2lkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmxhdHRlbm1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBmbGF0dGVubWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZXNjcmlwdGlvbiAoI1BDREFUQSk+Cis8IUFUVExJU1QgZGVzY3JpcHRpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjaGFpbmVkbWFwcGVyIChtYXBwZXIpKj4KKzwhQVRUTElTVCBjaGFpbmVkbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYWNrYWdlbWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIHBhY2thZ2VtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhhbmRsZWRpcnNlcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHppcGZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHppcGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3Vic3RpdHV0aW9uIEVNUFRZPgorPCFBVFRMSVNUIHN1YnN0aXR1dGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4cHJlc3Npb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHRlbnNpb25TZXQgKGZpbGVzZXQgfCBsaWJmaWxlc2V0IHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgZXh0ZW5zaW9uU2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVkaXJlY3RvciAoZXJyb3JmaWx0ZXJjaGFpbiB8IG91dHB1dGZpbHRlcmNoYWluIHwgZXJyb3JtYXBwZXIgfCBpbnB1dGZpbHRlcmNoYWluIHwgb3V0cHV0bWFwcGVyIHwgaW5wdXRtYXBwZXIpKj4KKzwhQVRUTElTVCByZWRpcmVjdG9yCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGlucHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY3JlYXRlZW1wdHlmaWxlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhbHdheXNsb2cgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlcnJvcmZpbHRlcmNoYWluIChoZWFkZmlsdGVyIHwgY2xhc3Njb25zdGFudHMgfCBsaW5lY29udGFpbnMgfCBmaWx0ZXJyZWFkZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNldG9rZW5zIHwgZXNjYXBldW5pY29kZSB8IGlnbm9yZWJsYW5rIHwgdGFpbGZpbHRlciB8IHRhYnN0b3NwYWNlcyB8IHByZWZpeGxpbmVzIHwgdHJpbSB8IGV4cGFuZHByb3BlcnRpZXMgfCBzdHJpcGxpbmVicmVha3MgfCByZXBsYWNlc3RyaW5nIHwgc3RyaXBsaW5lY29tbWVudHMgfCB0b2tlbmZpbHRlciB8IHN0cmlwamF2YWNvbW1lbnRzIHwgY29udGFpbnNyZWdleCB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBsaW5lY29udGFpbnNyZWdleHApKj4KKzwhQVRUTElTVCBlcnJvcmZpbHRlcmNoYWluCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3V0cHV0ZmlsdGVyY2hhaW4gKGhlYWRmaWx0ZXIgfCBjbGFzc2NvbnN0YW50cyB8IGxpbmVjb250YWlucyB8IGZpbHRlcnJlYWRlciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2V0b2tlbnMgfCBlc2NhcGV1bmljb2RlIHwgaWdub3JlYmxhbmsgfCB0YWlsZmlsdGVyIHwgdGFic3Rvc3BhY2VzIHwgcHJlZml4bGluZXMgfCB0cmltIHwgZXhwYW5kcHJvcGVydGllcyB8IHN0cmlwbGluZWJyZWFrcyB8IHJlcGxhY2VzdHJpbmcgfCBzdHJpcGxpbmVjb21tZW50cyB8IHRva2VuZmlsdGVyIHwgc3RyaXBqYXZhY29tbWVudHMgfCBjb250YWluc3JlZ2V4IHwgZGVsZXRlY2hhcmFjdGVycyB8IGxpbmVjb250YWluc3JlZ2V4cCkqPgorPCFBVFRMSVNUIG91dHB1dGZpbHRlcmNoYWluCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXJyb3JtYXBwZXIgKGNsYXNzcGF0aCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIGVycm9ybWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChpZGVudGl0eSB8IGZsYXR0ZW4gfCBnbG9iIHwgbWVyZ2UgfCByZWdleHAgfCBwYWNrYWdlIHwgdW5wYWNrYWdlKSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbnB1dGZpbHRlcmNoYWluIChoZWFkZmlsdGVyIHwgY2xhc3Njb25zdGFudHMgfCBsaW5lY29udGFpbnMgfCBmaWx0ZXJyZWFkZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNldG9rZW5zIHwgZXNjYXBldW5pY29kZSB8IGlnbm9yZWJsYW5rIHwgdGFpbGZpbHRlciB8IHRhYnN0b3NwYWNlcyB8IHByZWZpeGxpbmVzIHwgdHJpbSB8IGV4cGFuZHByb3BlcnRpZXMgfCBzdHJpcGxpbmVicmVha3MgfCByZXBsYWNlc3RyaW5nIHwgc3RyaXBsaW5lY29tbWVudHMgfCB0b2tlbmZpbHRlciB8IHN0cmlwamF2YWNvbW1lbnRzIHwgY29udGFpbnNyZWdleCB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBsaW5lY29udGFpbnNyZWdleHApKj4KKzwhQVRUTElTVCBpbnB1dGZpbHRlcmNoYWluCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3V0cHV0bWFwcGVyIChjbGFzc3BhdGggfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBvdXRwdXRtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGlkZW50aXR5IHwgZmxhdHRlbiB8IGdsb2IgfCBtZXJnZSB8IHJlZ2V4cCB8IHBhY2thZ2UgfCB1bnBhY2thZ2UpICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlucHV0bWFwcGVyIChjbGFzc3BhdGggfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBpbnB1dG1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoaWRlbnRpdHkgfCBmbGF0dGVuIHwgZ2xvYiB8IG1lcmdlIHwgcmVnZXhwIHwgcGFja2FnZSB8IHVucGFja2FnZSkgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJvcGVydHlmaWxlIChlbnRyeSkqPgorPCFBVFRMSVNUIHByb3BlcnR5ZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZW50cnkgRU1QVFk+Cis8IUFUVExJU1QgZW50cnkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9wZXJhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZXkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChpbnQgfCBkYXRlIHwgc3RyaW5nKSAjSU1QTElFRAorICAgICAgICAgIHVuaXQgKG1pbGxpc2Vjb25kIHwgc2Vjb25kIHwgbWludXRlIHwgaG91ciB8IGRheSB8IHdlZWsgfCBtb250aCB8IHllYXIpICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2RpciBFTVBUWT4KKzwhQVRUTElTVCBjY21rZGlyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jaGVja291dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbXBvcnR0eXBlbGliIEVNUFRZPgorPCFBVFRMSVNUIGltcG9ydHR5cGVsaWIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVuc2FmZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXN5c2FycmF5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWVzcGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzY2hlY2tpbiBFTVBUWT4KKzwhQVRUTElTVCB2c3NjaGVja2luCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcWwgKCNQQ0RBVEEgfCBmaWxlc2V0IHwgY2xhc3NwYXRoIHwgdHJhbnNhY3Rpb24pKj4KKzwhQVRUTElTVCBzcWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9uZXJyb3IgKGNvbnRpbnVlIHwgc3RvcCB8IGFib3J0KSAjSU1QTElFRAorICAgICAgICAgIHVzZXJpZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXV0b2NvbW1pdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZGJtcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByaW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRyaXZlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3doZWFkZXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlbGltaXRlcnR5cGUgKG5vcm1hbCB8IHJvdykgI0lNUExJRUQKKyAgICAgICAgICBlc2NhcGVwcm9jZXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FjaGluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZm9ybWF0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlbGltaXRlciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRyYW5zYWN0aW9uICgjUENEQVRBKT4KKzwhQVRUTElTVCB0cmFuc2FjdGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3ZzcGFzcyBFTVBUWT4KKzwhQVRUTElTVCBjdnNwYXNzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdnNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjc2MgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgcmVzb3VyY2UgfCBkZWZpbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZWZlcmVuY2UgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY3NjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbjMyaWNvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmluaXRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWluY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1dGY4b3V0cHV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXJlc3BvbnNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWRlZmF1bHRyZWZlcmVuY2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdhcm5sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbjMycmVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jcmVtZW50YWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9jb25maWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbG1vZHVsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5zYWZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVhbGlnbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldHR5cGUgKGV4ZSB8IGxpYnJhcnkgfCBtb2R1bGUgfCB3aW5leGUpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVzb3VyY2UgRU1QVFk+Cis8IUFUVExJU1QgcmVzb3VyY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHVibGljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVtYmVkICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlZmluZSBFTVBUWT4KKzwhQVRUTElTVCBkZWZpbmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlZmVyZW5jZSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgcmVmZXJlbmNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHNyYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGlybmFtZSBFTVBUWT4KKzwhQVRUTElTVCBkaXJuYW1lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXJlZ2V4cCAoZmlsZXNldCB8IHN1YnN0aXR1dGlvbiB8IHJlZ2V4cCkqPgorPCFBVFRMSVNUIHJlcGxhY2VyZWdleHAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZsYWdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXRjaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBnZXQgRU1QVFk+Cis8IUFUVExJU1QgZ2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZWVycm9ycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXRpbWVzdGFtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamp0cmVlIEVNUFRZPgorPCFBVFRMSVNUIGpqdHJlZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbm9kZWRlZmF1bHR2b2lkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJ1aWxkbm9kZWZpbGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGRpcmVjdG9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdGF0aWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgamF2YWNjaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RlZmFjdG9yeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtdWx0aSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aXNpdG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGV1c2VzcGFyc2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpc2l0b3JleGNlcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2Rlc2NvcGVob29rICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RlcGFja2FnZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNsZWVwIEVNUFRZPgorPCFBVFRMSVNUIHNsZWVwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBob3VycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWlsbGlzZWNvbmRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWludXRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2Vjb25kcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphcmxpYi1kaXNwbGF5IChmaWxlc2V0KSo+Cis8IUFUVExJU1QgamFybGliLWRpc3BsYXkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGVuZ3RoIEVNUFRZPgorPCFBVFRMSVNUIGxlbmd0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGVuZ3RoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRyaW0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbW9kZSAoZWFjaCB8IGFsbCkgI0lNUExJRUQKKyAgICAgICAgICBzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aGVuIChlcXVhbCB8IGdyZWF0ZXIgfCBsZXNzKSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlcGVuZHNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgdGFyZ2V0ZmlsZXNldCB8IHNyY2ZpbGVzZXQgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBzcmNmaWxlbGlzdCB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCB8IHRhcmdldGZpbGVsaXN0KSo+Cis8IUFUVExJU1QgZGVwZW5kc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldGZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHRhcmdldGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNyY2ZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHNyY2ZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNyY2ZpbGVsaXN0IChmaWxlKSo+Cis8IUFUVExJU1Qgc3JjZmlsZWxpc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldGZpbGVsaXN0IChmaWxlKSo+Cis8IUFUVExJU1QgdGFyZ2V0ZmlsZWxpc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHppcCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IHppcGdyb3VwZmlsZXNldCB8IHppcGZpbGVzZXQgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB6aXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHdoZW5lbXB0eSAoZmFpbCB8IHNraXAgfCBjcmVhdGUpICNJTVBMSUVECisgICAgICAgICAga2VlcGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkdXBsaWNhdGUgKGFkZCB8IHByZXNlcnZlIHwgZmFpbCkgI0lNUExJRUQKKyAgICAgICAgICByb3VuZHVwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVwZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgemlwZ3JvdXBmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB6aXBncm91cGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhdGNoIEVNUFRZPgorPCFBVFRMSVNUIHBhdGNoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdHJpcCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3JpZ2luYWxmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0Y2hmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmV2ZXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhY2t1cHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaWdub3Jld2hpdGVzcGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpzcGMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IGNvbXBpbGVyY2xhc3NwYXRoIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IHdlYmFwcCB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QganNwYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbWFwcGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGllcGx1Z2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVyaWJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3ZWJ4bWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaXJvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3ZWJpbmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21waWxlcmNsYXNzcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgY29tcGlsZXJjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJhcHAgRU1QVFk+Cis8IUFUVExJU1Qgd2ViYXBwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3R5bGUgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IGZhY3RvcnkgfCBtb2RpZmllZCB8IHBhcmFtIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCB4bWxjYXRhbG9nIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBvdXRwdXRwcm9wZXJ0eSB8IG1hcHBlciB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHN0eWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2Nlc3NvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNjYW5pbmNsdWRlZGRpcmVjdG9yaWVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4dGVuc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxvYWRzdHlsZXNoZWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmFjdG9yeSAoYXR0cmlidXRlKSo+Cis8IUFUVExJU1QgZmFjdG9yeQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGF0dHJpYnV0ZSBFTVBUWT4KKzwhQVRUTElTVCBhdHRyaWJ1dGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIG91dHB1dHByb3BlcnR5IEVNUFRZPgorPCFBVFRMSVNUIG91dHB1dHByb3BlcnR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBuaWNlIEVNUFRZPgorPCFBVFRMSVNUIG5pY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdwcmlvcml0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN1cnJlbnRwcmlvcml0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRlc3QgKGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5IHwgcmVkaXJlY3RvciB8IGJvb3RjbGFzc3BhdGggfCBlbnYgfCBzeXNwcm9wZXJ0eXNldCB8IHBlcm1pc3Npb25zIHwganZtYXJnIHwgYXJnIHwgYXNzZXJ0aW9ucyB8IHRlc3RsZXQpKj4KKzwhQVRUTElTVCB0ZXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBqYXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VzaG93dHJhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2hvd3N1Y2Nlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAganZtdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2hvd2Jhbm5lciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3d0cmFjZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzeXNwcm9wZXJ0eSBFTVBUWT4KKzwhQVRUTElTVCBzeXNwcm9wZXJ0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAga2V5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJvb3RjbGFzc3BhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGJvb3RjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlbnYgRU1QVFk+Cis8IUFUVExJU1QgZW52CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBrZXkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3lzcHJvcGVydHlzZXQgKHByb3BlcnR5cmVmIHwgcHJvcGVydHlzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBzeXNwcm9wZXJ0eXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGR5bmFtaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmVnYXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBlcm1pc3Npb25zIChncmFudCB8IHJldm9rZSkqPgorPCFBVFRMSVNUIHBlcm1pc3Npb25zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBncmFudCBFTVBUWT4KKzwhQVRUTElTVCBncmFudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9ucyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJldm9rZSBFTVBUWT4KKzwhQVRUTElTVCByZXZva2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFjdGlvbnMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqdm1hcmcgRU1QVFk+Cis8IUFUVExJU1QganZtYXJnCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhcmcgRU1QVFk+Cis8IUFUVExJU1QgYXJnCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0ZXN0bGV0ICgjUENEQVRBKT4KKzwhQVRUTElTVCB0ZXN0bGV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0c3RhbXAgKGZvcm1hdCkqPgorPCFBVFRMSVNUIHRzdGFtcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZvcm1hdCBFTVBUWT4KKzwhQVRUTElTVCBmb3JtYXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2FsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWV6b25lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5pdCAobWlsbGlzZWNvbmQgfCBzZWNvbmQgfCBtaW51dGUgfCBob3VyIHwgZGF5IHwgd2VlayB8IG1vbnRoIHwgeWVhcikgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvZmZzZXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1bndhciAoZmlsZXNldCB8IHBhdHRlcm5zZXQpKj4KKzwhQVRUTElTVCB1bndhcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NoaXN0b3J5IEVNUFRZPgorPCFBVFRMSVNUIHZzc2hpc3RvcnkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0eWxlIChicmllZiB8IGNvZGVkaWZmIHwgbm9maWxlIHwgZGVmYXVsdCkgI0lNUExJRUQKKyAgICAgICAgICBudW1kYXlzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbWxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb21kYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9sYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGVmb3JtYXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN2c2NoYW5nZWxvZyAoZmlsZXNldCB8IHVzZXIgfCBjb21tYW5kbGluZSkqPgorPCFBVFRMSVNUIGN2c2NoYW5nZWxvZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY3ZzcnNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0YXJ0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3Zzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYWxseXF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcnNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9leGVjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYXlzaW5wYXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhZyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVzZXIgRU1QVFk+Cis8IUFUVExJU1QgdXNlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdXNlcmlkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlzcGxheW5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21tYW5kbGluZSAobWFya2VyIHwgYXJndW1lbnQpKj4KKzwhQVRUTElTVCBjb21tYW5kbGluZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1hcmtlciBFTVBUWT4KKzwhQVRUTElTVCBtYXJrZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFyZ3VtZW50IEVNUFRZPgorPCFBVFRMSVNUIGFyZ3VtZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21jaGVja2luIChmaWxlc2V0KSo+Cis8IUFUVExJU1QgY2NtY2hlY2tpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFzayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJ6aXAyIEVNUFRZPgorPCFBVFRMSVNUIGJ6aXAyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3luYyAoZmlsZXNldCkqPgorPCFBVFRMSVNUIHN5bmMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZW1wdHlkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NhZGQgRU1QVFk+Cis8IUFUVExJU1QgdnNzYWRkCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhZG9jICh0YWdsZXQgfCBkb2NsZXQgfCBwYWNrYWdlIHwgYXJnIHwgbGluayB8IGRvY3RpdGxlIHwgYm90dG9tIHwgZ3JvdXAgfCBwYWNrYWdlc2V0IHwgZmlsZXNldCB8IGNsYXNzcGF0aCB8IHNvdXJjZXBhdGggfCBmb290ZXIgfCBzb3VyY2UgfCBib290Y2xhc3NwYXRoIHwgaGVhZGVyIHwgZXhjbHVkZXBhY2thZ2UgfCB0YWcpKj4KKzwhQVRUTElTVCBqYXZhZG9jCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBib3R0b20gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGVhZGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGluayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vaW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWNjZXNzIChwcm90ZWN0ZWQgfCBwdWJsaWMgfCBwYWNrYWdlIHwgcHJpdmF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3F1YWxpZmllciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1YmxpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRob3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9vdGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlZXh0ZXJuYWxmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHByb3RlY3RlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBicmVha2l0ZXJhdG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vbmF2YmFyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyb3VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlua29mZmxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRpdGlvbmFscGFyYW0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rc291cmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvY2FsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZW5vc291cmNlcGFja2FnZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByaXZhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZXByZWNhdGVkbGlzdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZXNoZWV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2VuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXBhY2thZ2VuYW1lcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlbmFtZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW5kb3d0aXRsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdHJlZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGxpdGluZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VsaXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2N0aXRsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcmlhbHdhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2xkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGVscGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZWZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZGlycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vaGVscCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2RlcHJlY2F0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3ZlcnZpZXcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YWdsZXQgKHBhdGgpKj4KKzwhQVRUTElTVCB0YWdsZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRvY2xldCAocGF0aCB8IHBhcmFtKSo+Cis8IUFUVExJU1QgZG9jbGV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYWNrYWdlIEVNUFRZPgorPCFBVFRMSVNUIHBhY2thZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaW5rIEVNUFRZPgorPCFBVFRMSVNUIGxpbmsKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhyZWYgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvZmZsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VsaXN0bG9jIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWxpbmsgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZG9jdGl0bGUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGRvY3RpdGxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBib3R0b20gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGJvdHRvbQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ3JvdXAgKHBhY2thZ2UgfCB0aXRsZSkqPgorPCFBVFRMSVNUIGdyb3VwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpdGxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGl0bGUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHRpdGxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYWNrYWdlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBwYWNrYWdlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb3VyY2VwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBzb3VyY2VwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZm9vdGVyICgjUENEQVRBKT4KKzwhQVRUTElTVCBmb290ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvdXJjZSBFTVBUWT4KKzwhQVRUTElTVCBzb3VyY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBoZWFkZXIgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGhlYWRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhjbHVkZXBhY2thZ2UgRU1QVFk+Cis8IUFUVExJU1QgZXhjbHVkZXBhY2thZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YWcgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHRhZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNjb3BlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0cmFuc2xhdGUgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0cmFuc2xhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJ1bmRsZWNvdW50cnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidW5kbGVsYW5ndWFnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNyY2VuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVuZGxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVuZGxlZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1bmRsZXZhcmlhbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZHRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3RhcnR0b2tlbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNpZ25qYXIgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBzaWduamFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdG9yZXBhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYXp5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGphciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2V5cGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFsaWFzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VjdGlvbnNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtleXN0b3JlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaWdmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnRlcm5hbHNmICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN0b3JldHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNpZ25lZGphciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbG9jayBFTVBUWT4KKzwhQVRUTElTVCBjY2xvY2sKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9ianNlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG51c2VycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9ic29sZXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNob3duIChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBjaG93bgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvd25lciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIHNyY2ZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldGZpbGUgRU1QVFk+Cis8IUFUVExJU1QgdGFyZ2V0ZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamFybGliLWF2YWlsYWJsZSAoZXh0ZW5zaW9uc2V0IHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgamFybGliLWF2YWlsYWJsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4dGVuc2lvbnNldCAoZmlsZXNldCB8IGxpYmZpbGVzZXQgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBleHRlbnNpb25zZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBXc2RsVG9Eb3RuZXQgRU1QVFk+Cis8IUFUVExJU1QgV3NkbFRvRG90bmV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZXNwYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYnVpbGRudW1iZXIgRU1QVFk+Cis8IUFUVExJU1QgYnVpbGRudW1iZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganBjb3ZtZXJnZSAoZmlsZXNldCkqPgorPCFBVFRMSVNUIGpwY292bWVyZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdnN2ZXJzaW9uIChjb21tYW5kbGluZSkqPgorPCFBVFRMSVNUIGN2c3ZlcnNpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGN2c3JzaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhc3NmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdnNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVhbGx5cXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVydmVyc2lvbnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9ubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xpZW50dmVyc2lvbnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9leGVjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFnIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZWpiamFyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCB3ZWJsb2dpY3RvcGxpbmsgfCBwcmVzZW50IHwgbm9uZSB8IGpib3NzIHwgbm90IHwgYm9ybGFuZCB8IHdlYmxvZ2ljIHwgdHlwZSB8IG1vZGlmaWVkIHwgaXBsYW5ldCB8IG9yIHwgam9uYXMgfCBjb250YWlucyB8IGRlcGVuZCB8IHN1cHBvcnQgfCBjbGFzc3BhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCB3ZWJzcGhlcmUgfCBjb250YWluc3JlZ2V4cCB8IGR0ZCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBlamJqYXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0b3JkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBiYXNlbmFtZXRlcm1pbmF0b3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNtcHZlcnNpb24gKDEuMCB8IDIuMCkgI0lNUExJRUQKKyAgICAgICAgICBkZXBlbmRlbmN5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWphcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmbGF0ZGVzdGRpciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1pbmcgKGVqYi1uYW1lIHwgZGlyZWN0b3J5IHwgZGVzY3JpcHRvciB8IGJhc2VqYXJuYW1lKSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJsb2dpY3RvcGxpbmsgKGNsYXNzcGF0aCB8IHdsY2xhc3NwYXRoIHwgc3lzcHJvcGVydHkpKj4KKzwhQVRUTElTVCB3ZWJsb2dpY3RvcGxpbmsKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5ld2NtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlamJkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1hcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVidWlsZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9wbGlua2R0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdsZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdlYmxvZ2ljZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2xjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1kZWJ1Z2xldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyYXRlZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkY21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmNjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZWpiYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b3BsaW5rZGVzY3JpcHRvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3bGNsYXNzcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1Qgd2xjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYm9zcyAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgamJvc3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYm9ybGFuZCAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgYm9ybGFuZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyaWZ5YXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YTJpaW9wcGFyYW1zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2R0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmlmeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmF0ZWNsaWVudCAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJsb2dpYyAoY2xhc3NwYXRoIHwgd2xjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eSkqPgorPCFBVFRMSVNUIHdlYmxvZ2ljCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuZXdjbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWpiZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYnVpbGQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdsZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdlYmxvZ2ljZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2xjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1kZWJ1Z2xldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyYXRlZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkY21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmNjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZWpiYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXBsYW5ldCAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgaXBsYW5ldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlhc2hvbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqb25hcyAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1Qgam9uYXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGpvbmFzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YWMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3JiIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9nZW5pYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBybWljb3B0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphdmFjb3B0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdmFsaWRhdGlvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vY29tcGlsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlY3Byb3BhZyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdXBwb3J0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBzdXBwb3J0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJzcGhlcmUgKGNsYXNzcGF0aCB8IHdhc2NsYXNzcGF0aCkqPgorPCFBVFRMSVNUIHdlYnNwaGVyZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmV3Y21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmR0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJtaWNvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9pbmZvcm0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVidWlsZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYnNjaGVtYSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlamJkZXBsb3kgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlMzUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGVtcGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdmFsaWRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29kZWdlbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYnZlbmRvciAoU1FMOTIgfCBTUUw5OSB8IERCMlVEQldJTl9WNzEgfCBEQjJVREJPUzM5MF9WNiB8IERCMlVEQkFTNDAwX1Y0UjUgfCBPUkFDTEVfVjggfCBJTkZPUk1JWF9WOTIgfCBTWUJBU0VfVjExOTIgfCBNU1NRTFNFUlZFUl9WNyB8IE1ZU1FMX1YzMjMpICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2FzY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkY21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRibmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRyYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2FzY2xhc3NwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCB3YXNjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3YXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgbWFuaWZlc3QgfCB0eXBlIHwgbWV0YWluZiB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGxpYiB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGluZGV4amFycyB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCB6aXBncm91cGZpbGVzZXQgfCB6aXBmaWxlc2V0IHwgY2xhc3NlcyB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCB3ZWJpbmYgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHdhcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAga2VlcGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGR1cGxpY2F0ZSAoYWRkIHwgcHJlc2VydmUgfCBmYWlsKSAjSU1QTElFRAorICAgICAgICAgIHdoZW5lbXB0eSAoZmFpbCB8IHNraXAgfCBjcmVhdGUpICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJvdW5kdXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2VieG1sIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdhcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNldG1hbmlmZXN0IChza2lwIHwgbWVyZ2UgfCBtZXJnZXdpdGhvdXRtYWluKSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYW5pZmVzdCAoYXR0cmlidXRlIHwgc2VjdGlvbikqPgorPCFBVFRMSVNUIG1hbmlmZXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzZWN0aW9uIChhdHRyaWJ1dGUpKj4KKzwhQVRUTElTVCBzZWN0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWV0YWluZiAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgbWV0YWluZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaWIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGxpYgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbmRleGphcnMgKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGluZGV4amFycworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNsYXNzZXMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNsYXNzZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2ViaW5mIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB3ZWJpbmYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVuYW1lIEVNUFRZPgorPCFBVFRMSVNUIHJlbmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2VxdWVudGlhbCAoJXRhc2tzOykqPgorPCFBVFRMSVNUIHNlcXVlbnRpYWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzZXJ2ZXJkZXBsb3kgKHdlYmxvZ2ljIHwgZ2VuZXJpYyB8IGpvbmFzKSo+Cis8IUFUVExJU1Qgc2VydmVyZGVwbG95CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ2VuZXJpYyAoYXJnIHwgY2xhc3NwYXRoIHwganZtYXJnKSo+Cis8IUFUVExJU1QgZ2VuZXJpYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByb3BlcnR5IChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBwcm9wZXJ0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJwcm9wZXJ0eSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVudmlyb25tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdWJhbnQgKHJlZmVyZW5jZSB8IGZpbGVzZXQgfCBidWlsZHBhdGhlbGVtZW50IHwgZGlyc2V0IHwgYnVpbGRwYXRoIHwgcHJvcGVydHlzZXQgfCBmaWxlbGlzdCB8IHByb3BlcnR5KSo+Cis8IUFUVExJU1Qgc3ViYW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljYW50ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluaGVyaXRhbGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0cmVmcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhbnRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVpbGRwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidWlsZHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJ1aWxkcGF0aGVsZW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgYnVpbGRwYXRoZWxlbWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYnVpbGRwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBidWlsZHBhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtb3ZlIChmaWx0ZXJjaGFpbiB8IGZpbGVzZXQgfCBmaWx0ZXJzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBtb3ZlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGF0dGVuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZW1wdHlkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVtdWx0aXBsZW1hcHBpbmdzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmVsYXN0bW9kaWZpZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlsZGFzbSBFTVBUWT4KKzwhQVRUTElTVCBpbGRhc20KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFzc2VtYmxlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyAoYXNjaWkgfCB1dGY4IHwgdW5pY29kZSkgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvZ3Jlc3NiYXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbGluZW51bWJlcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmF3ZXhjZXB0aW9uaGFuZGxpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2hvd3NvdXJjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtZXRhZGF0YSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBieXRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1b3RlYWxsbmFtZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBoZWFkZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlzaWJpbGl0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZWZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGl0ZW0gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb3B5ZGlyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjb3B5ZGlyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGF0dGVuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY2NoZWNraW4gRU1QVFk+Cis8IUFUVExJU1QgY2NjaGVja2luCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZXRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm93YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZGVudGljYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29weSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2N1bmxvY2sgRU1QVFk+Cis8IUFUVExJU1QgY2N1bmxvY2sKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9ianNlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3bGpzcGMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHdsanNwYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpeGNybGYgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGZpeGNybGYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhYiAoYWRkIHwgYXNpcyB8IHJlbW92ZSkgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3IgKGFkZCB8IGFzaXMgfCByZW1vdmUpICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlb2wgKGFzaXMgfCBjciB8IGxmIHwgY3JsZiB8IG1hYyB8IHVuaXggfCBkb3MpICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgamF2YWZpbGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVvZiAoYWRkIHwgYXNpcyB8IHJlbW92ZSkgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhYmxlbmd0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaXhsYXN0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29zZ2V0IEVNUFRZPgorPCFBVFRMSVNUIHNvc2dldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc29zaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvamVjdHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NhY2hlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc2NtZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0aGNvbnZlcnQgKHBhdGggfCBtYXAgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBwYXRoY29udmVydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoc2VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcnNlcCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNldG9uZW1wdHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXRvcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1hcCBFTVBUWT4KKzwhQVRUTElTVCBtYXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlY29yZCBFTVBUWT4KKzwhQVRUTElTVCByZWNvcmQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dsZXZlbCAoZXJyb3IgfCB3YXJuIHwgaW5mbyB8IHZlcmJvc2UgfCBkZWJ1ZykgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVtYWNzbW9kZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb24gKHN0YXJ0IHwgc3RvcCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleGVjIChhcmcgfCByZWRpcmVjdG9yIHwgZW52KSo+Cis8IUFUVExJU1QgZXhlYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtsYWJlbCBFTVBUWT4KKzwhQVRUTElTVCBjY21rbGFiZWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGVuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2b2IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganBjb3ZyZXBvcnQgKHJlZmVyZW5jZSB8IGNvdmVyYWdlcGF0aCB8IHNvdXJjZXBhdGgpKj4KKzwhQVRUTElTVCBqcGNvdnJlcG9ydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc25hcHNob3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGVyY2VudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChleGVjdXRpdmUgfCBzdW1tYXJ5IHwgZGV0YWlsZWQgfCB2ZXJ5ZGV0YWlsZWQpICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKGh0bWwgfCB0ZXh0IHwgeG1sKSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzb3VyY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb3ZlcmFnZXBhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGNvdmVyYWdlcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4ZWNvbiAobWFwcGVyIHwgc3JjZmlsZSB8IHRhcmdldGZpbGUgfCByZWRpcmVjdG9yIHwgZmlsZWxpc3QgfCBlbnYgfCBmaWxlc2V0IHwgZGlyc2V0IHwgYXJnKSo+Cis8IUFUVExJU1QgZXhlY29uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQKKyAgICAgICAgICBtYXhwYXJhbGxlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRzb3VyY2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWNoZWNrb3V0IChmaWxlc2V0KSo+Cis8IUFUVExJU1QgY2NtY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbWFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2sgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNjbWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhbnQgKHJlZmVyZW5jZSB8IHByb3BlcnR5c2V0IHwgcHJvcGVydHkgfCB0YXJnZXQpKj4KKzwhQVRUTElTVCBhbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdGFsbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0cmVmcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJnZXQgRU1QVFk+Cis8IUFUVExJU1QgdGFyZ2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgeG1sdmFsaWRhdGUgKGZpbGVzZXQgfCBjbGFzc3BhdGggfCBkdGQgfCB4bWxjYXRhbG9nIHwgYXR0cmlidXRlIHwgcHJvcGVydHkpKj4KKzwhQVRUTElTVCB4bWx2YWxpZGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxlbmllbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgeHNsdCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgZmFjdG9yeSB8IG1vZGlmaWVkIHwgcGFyYW0gfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHhtbGNhdGFsb2cgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IG91dHB1dHByb3BlcnR5IHwgbWFwcGVyIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgeHNsdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9jZXNzb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzY2FuaW5jbHVkZWRkaXJlY3RvcmllcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleHRlbnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsb2Fkc3R5bGVzaGVldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3R5bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlwbGFuZXQtZWpiYyAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgaXBsYW5ldC1lamJjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlamJkZXNjcmlwdG9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWFzZGVzY3JpcHRvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlhc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmF0ZWQgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NtY2hlY2tpbnRhc2sgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBjY21jaGVja2ludGFzaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFzayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGd6aXAgRU1QVFk+Cis8IUFUVExJU1QgZ3ppcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG5hdGl2ZTJhc2NpaSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgYXJnIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgbWFwcGVyIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgbmF0aXZlMmFzY2lpCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJldmVyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY3JtdHlwZSBFTVBUWT4KKzwhQVRUTElTVCBjY3JtdHlwZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJtYWxsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZWtpbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2b2IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZWFyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IG1hbmlmZXN0IHwgdHlwZSB8IG1ldGFpbmYgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBhcmNoaXZlcyB8IGluZGV4amFycyB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCB6aXBncm91cGZpbGVzZXQgfCB6aXBmaWxlc2V0IHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZWFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZHVwbGljYXRlIChhZGQgfCBwcmVzZXJ2ZSB8IGZhaWwpICNJTVBMSUVECisgICAgICAgICAgd2hlbmVtcHR5IChmYWlsIHwgc2tpcCB8IGNyZWF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcm91bmR1cCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgamFyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVhcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBweG1sIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc2V0bWFuaWZlc3QgKHNraXAgfCBtZXJnZSB8IG1lcmdld2l0aG91dG1haW4pICNJTVBMSUVECisgICAgICAgICAgemlwZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFyY2hpdmVzIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBhcmNoaXZlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbnB1dCAoI1BDREFUQSk+Cis8IUFUVExJU1QgaW5wdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHR2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbGlkYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcmVzZXRkZWYgKCV0YXNrczspKj4KKzwhQVRUTElTVCBwcmVzZXRkZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcm1pYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBleHRkaXJzIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGNvbXBpbGVyYXJnIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgcm1pYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyaWZ5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWlvcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpZGxvcHRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZGlycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZWJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBiYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVhbnRydW50aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVqYXZhcnVudGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWRsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlpb3BvcHRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN0dWJ2ZXJzaW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29tcGlsZXJhcmcgRU1QVFk+Cis8IUFUVExJU1QgY29tcGlsZXJhcmcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjaGVja3N1bSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNoZWNrc3VtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVleHQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b3RhbHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWFkYnVmZmVyc2l6ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmlmeXByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWxnb3JpdGhtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvdmlkZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZW92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYWlsIChmaWxlc2V0IHwgYmNjIHwgbWVzc2FnZSB8IHJlcGx5dG8gfCBjYyB8IGZyb20gfCB0bykqPgorPCFBVFRMSVNUIG1haWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2VmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyAoYXV0byB8IG1pbWUgfCB1dSB8IHBsYWluKSAjSU1QTElFRAorICAgICAgICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1YmplY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3NsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haWxwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZW1pbWV0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmNjbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGx5dG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWlsaG9zdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWZpbGVuYW1lcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYmNjIEVNUFRZPgorPCFBVFRMSVNUIGJjYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXNzYWdlICgjUENEQVRBKT4KKzwhQVRUTElTVCBtZXNzYWdlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBtaW1ldHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBseXRvIEVNUFRZPgorPCFBVFRMSVNUIHJlcGx5dG8KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2MgRU1QVFk+Cis8IUFUVExJU1QgY2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZnJvbSBFTVBUWT4KKzwhQVRUTElTVCBmcm9tCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRvIEVNUFRZPgorPCFBVFRMSVNUIHRvCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxvYWRmaWxlIChmaWx0ZXJjaGFpbikqPgorPCFBVFRMSVNUIGxvYWRmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NjaGVja291dCBFTVBUWT4KKzwhQVRUTElTVCB2c3NjaGVja291dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZXRsb2NhbGNvcHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGV0aW1lc3RhbXAgKGN1cnJlbnQgfCBtb2RpZmllZCB8IHVwZGF0ZWQpICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd3JpdGFibGVmaWxlcyAocmVwbGFjZSB8IHNraXAgfCBmYWlsKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvc2NoZWNraW4gRU1QVFk+Cis8IUFUVExJU1Qgc29zY2hlY2tpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc29zaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2plY3RwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jYWNoZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NjbWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1pbWVtYWlsIChmaWxlc2V0IHwgYmNjIHwgbWVzc2FnZSB8IHJlcGx5dG8gfCBjYyB8IGZyb20gfCB0bykqPgorPCFBVFRMSVNUIG1pbWVtYWlsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgKGF1dG8gfCBtaW1lIHwgdXUgfCBwbGFpbikgI0lNUExJRUQKKyAgICAgICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdWJqZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNzbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWlscG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2VtaW1ldHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJjY2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBseXRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbGhvc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVmaWxlbmFtZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGd1bnppcCBFTVBUWT4KKzwhQVRUTElTVCBndW56aXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29uY2F0ICgjUENEQVRBIHwgZmlsdGVyY2hhaW4gfCBmaWxlc2V0IHwgZmlsZWxpc3QgfCBwYXRoIHwgZm9vdGVyIHwgaGVhZGVyKSo+Cis8IUFUVExJU1QgY29uY2F0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJpbmFyeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlb2wgKGFzaXMgfCBjciB8IGxmIHwgY3JsZiB8IG1hYyB8IHVuaXggfCBkb3MpICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpeGxhc3RsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2FiIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY2FiCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjYWJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25zIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdG91Y2ggKGZpbGVzZXQgfCBmaWxlbGlzdCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIHRvdWNoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWtkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1pbGxpcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRldGltZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhcmFsbGVsICgldGFza3M7IHwgZGFlbW9ucykqPgorPCFBVFRMSVNUIHBhcmFsbGVsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwb2xsaW50ZXJ2YWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGhyZWFkc3BlcnByb2Nlc3NvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aHJlYWRjb3VudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmFueSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkYWVtb25zICgldGFza3M7KSo+Cis8IUFUVExJU1QgZGFlbW9ucworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYW50Y2FsbCAocmVmZXJlbmNlIHwgcHJvcGVydHlzZXQgfCB0YXJnZXQgfCBwYXJhbSkqPgorPCFBVFRMSVNUIGFudGNhbGwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdGFsbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0cmVmcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtibCBFTVBUWT4KKzwhQVRUTElTVCBjY21rYmwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5sYWJlbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmdWxsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWRlbnRpY2FsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWxpbmVyb290bmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY2NoZWNrb3V0IEVNUFRZPgorPCFBVFRMSVNUIGNjY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlc2VydmVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm90Y28gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGF0YSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBicmFuY2ggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHlwZWRlZiAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgdHlwZWRlZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkYXB0dG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvbmVycm9yIChmYWlsIHwgcmVwb3J0IHwgaWdub3JlKSAjSU1QTElFRAorICAgICAgICAgIGxvYWRlcnJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRhcHRlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcm1hdCAocHJvcGVydGllcyB8IHhtbCkgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJldmVyc2Vsb2FkZXIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgeG1scHJvcGVydHkgKHhtbGNhdGFsb2cpKj4KKzwhQVRUTElTVCB4bWxwcm9wZXJ0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlbWFudGljYXR0cmlidXRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwcm9vdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb2xsYXBzZWF0dHJpYnV0ZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmFsaWRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJvb3RkaXJlY3RvcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2VtYW50aWNhdHRyaWJ1dGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW1wb3J0IEVNUFRZPgorPCFBVFRMSVNUIGltcG9ydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25hbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb3B5IChmaWx0ZXJjaGFpbiB8IGZpbGVzZXQgfCBmaWx0ZXJzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBjb3B5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGF0dGVuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZW1wdHlkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVtdWx0aXBsZW1hcHBpbmdzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmVsYXN0bW9kaWZpZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpzaGFycGMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgcmVzb3VyY2UgfCBkZWZpbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZWZlcmVuY2UgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QganNoYXJwYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJlc3BvbnNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haW5jbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxtb2R1bGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luMzJpY29uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXRmOG91dHB1dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVmYXVsdHJlZmVyZW5jZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0dHlwZSAoZXhlIHwgbGlicmFyeSB8IG1vZHVsZSB8IHdpbmV4ZSkgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgd2luMzJyZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlY3VyZXNjb3BpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1cmVqYXZhICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2FybmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlZmlsZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzeW1saW5rIChmaWxlc2V0KSo+Cis8IUFUVExJU1Qgc3ltbGluaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGlua2ZpbGVuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhbnRzdHJ1Y3R1cmUgRU1QVFk+Cis8IUFUVExJU1QgYW50c3RydWN0dXJlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2NyaXB0ICgjUENEQVRBKT4KKzwhQVRUTElTVCBzY3JpcHQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWNyZWF0ZXRhc2sgRU1QVFk+Cis8IUFUVExJU1QgY2NtY3JlYXRldGFzaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3Vic3lzdGVtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFzayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBsYXRmb3JtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWxlYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBycG0gRU1QVFk+Cis8IUFUVExJU1QgcnBtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZW1vdmVzb3VyY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFuYnVpbGRkaXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVtb3Zlc3BlYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGVjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvcGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJwbWJ1aWxkY29tbWFuZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlbGV0ZSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGRlbGV0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVlbXB0eWRpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVsZXRlb25leGl0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNlIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHJlcGxhY2VmaWx0ZXIgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgcmVwbGFjZXRva2VuIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgcmVwbGFjZXZhbHVlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgcmVwbGFjZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eWZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VtbWFyeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZWZpbHRlcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2VmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgcmVwbGFjZWZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXRva2VuICgjUENEQVRBKT4KKzwhQVRUTElTVCByZXBsYWNldG9rZW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2V2YWx1ZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgcmVwbGFjZXZhbHVlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtbWV0cmljcyAoZmlsZXNldCB8IGp2bWFyZyB8IGNsYXNzcGF0aCB8IHBhdGggfCBzb3VyY2VwYXRoKSo+Cis8IUFUVExJU1QgbW1ldHJpY3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWV0YW1hdGFob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgKGNvbXBpbGF0aW9uLXVuaXRzIHwgZmlsZXMgfCBtZXRob2RzIHwgdHlwZXMgfCBwYWNrYWdlcykgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhdHRyaWIgKG1hcHBlciB8IHNyY2ZpbGUgfCB0YXJnZXRmaWxlIHwgcmVkaXJlY3RvciB8IGZpbGVsaXN0IHwgZW52IHwgZmlsZXNldCB8IGRpcnNldCB8IGFyZykqPgorPCFBVFRMSVNUIGF0dHJpYgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVhZG9ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGhpZGRlbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVtaXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzeXN0ZW0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmNoaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIgfCBib3RoKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdhaXRmb3IgKGlzZmFsc2UgfCBpc3JlZmVyZW5jZSB8IGVxdWFscyB8IGF2YWlsYWJsZSB8IG5vdCB8IGNvbnRhaW5zIHwgb3MgfCBvciB8IGFuZCB8IGZpbGVzbWF0Y2ggfCBjaGVja3N1bSB8IGlzdHJ1ZSB8IGlzc2V0IHwgc29ja2V0IHwgaHR0cCB8IHVwdG9kYXRlKSo+Cis8IUFUVExJU1Qgd2FpdGZvcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2hlY2tldmVyeXVuaXQgKG1pbGxpc2Vjb25kIHwgc2Vjb25kIHwgbWludXRlIHwgaG91ciB8IGRheSB8IHdlZWspICNJTVBMSUVECisgICAgICAgICAgY2hlY2tldmVyeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHdhaXR1bml0IChtaWxsaXNlY29uZCB8IHNlY29uZCB8IG1pbnV0ZSB8IGhvdXIgfCBkYXkgfCB3ZWVrKSAjSU1QTElFRAorICAgICAgICAgIG1heHdhaXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc2ZhbHNlIEVNUFRZPgorPCFBVFRMSVNUIGlzZmFsc2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZhbHVlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlzcmVmZXJlbmNlIEVNUFRZPgorPCFBVFRMSVNUIGlzcmVmZXJlbmNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlcXVhbHMgRU1QVFk+Cis8IUFUVExJU1QgZXF1YWxzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0cmltICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFyZzIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmcxIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhdmFpbGFibGUgKGNsYXNzcGF0aCB8IGZpbGVwYXRoKSo+Cis8IUFUVExJU1QgYXZhaWxhYmxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVzeXN0ZW1jbGFzc2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIpICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGVwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBmaWxlcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG9zIEVNUFRZPgorPCFBVFRMSVNUIG9zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhbWlseSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyY2ggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlc21hdGNoIEVNUFRZPgorPCFBVFRMSVNUIGZpbGVzbWF0Y2gKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZTEgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc3RydWUgRU1QVFk+Cis8IUFUVExJU1QgaXN0cnVlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc3NldCBFTVBUWT4KKzwhQVRUTElTVCBpc3NldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb2NrZXQgRU1QVFk+Cis8IUFUVExJU1Qgc29ja2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaHR0cCBFTVBUWT4KKzwhQVRUTElTVCBodHRwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnNiZWdpbmF0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdXB0b2RhdGUgKHNyY2ZpbGVzIHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgdXB0b2RhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmNmaWxlcyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgc3JjZmlsZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVudGFyIChmaWxlc2V0IHwgcGF0dGVybnNldCkqPgorPCFBVFRMSVNUIHVudGFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAobm9uZSB8IGd6aXAgfCBiemlwMikgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxvYWRwcm9wZXJ0aWVzIChmaWx0ZXJjaGFpbiB8IGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGxvYWRwcm9wZXJ0aWVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlY2hvcHJvcGVydGllcyAocHJvcGVydHlzZXQpKj4KKzwhQVRUTElTVCBlY2hvcHJvcGVydGllcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcm1hdCAoeG1sIHwgdGV4dCkgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqdW5pdCAoY2xhc3NwYXRoIHwgc3lzcHJvcGVydHkgfCBib290Y2xhc3NwYXRoIHwgc3lzcHJvcGVydHlzZXQgfCBlbnYgfCB0ZXN0IHwgcGVybWlzc2lvbnMgfCBqdm1hcmcgfCBmb3JtYXR0ZXIgfCBiYXRjaHRlc3QgfCBhc3NlcnRpb25zKSo+Cis8IUFUVExJU1QganVuaXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZvcmsgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaGFsdG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJpbnRzdW1tYXJ5ICh0cnVlIHwgeWVzIHwgZmFsc2UgfCBubyB8IG9uIHwgb2ZmIHwgd2l0aE91dEFuZEVycikgI0lNUExJRUQKKyAgICAgICAgICBoYWx0b25mYWlsdXJlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWx1cmVwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3dvdXRwdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0ZW1wZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWFudHJ1bnRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVydHJhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JrbW9kZSAob25jZSB8IHBlclRlc3QgfCBwZXJCYXRjaCkgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbG9hZGluZyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmb3JtYXR0ZXIgRU1QVFk+Cis8IUFUVExJU1QgZm9ybWF0dGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1c2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKHBsYWluIHwgeG1sIHwgYnJpZWYpICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRlbnNpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBiYXRjaHRlc3QgKGZpbGVzZXQgfCBmb3JtYXR0ZXIpKj4KKzwhQVRUTElTVCBiYXRjaHRlc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGFsdG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWx1cmVwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcnRyYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGhhbHRvbmZhaWx1cmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNoZ3JwIChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBjaGdycAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBidW56aXAyIEVNUFRZPgorPCFBVFRMSVNUIGJ1bnppcDIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2hpY2hyZXNvdXJjZSAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1Qgd2hpY2hyZXNvdXJjZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvcHlmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGNvcHlmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZW92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2NyZWF0ZSBFTVBUWT4KKzwhQVRUTElTVCB2c3NjcmVhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFjcm9kZWYgKHNlcXVlbnRpYWwgfCBlbGVtZW50IHwgYXR0cmlidXRlIHwgdGV4dCkqPgorPCFBVFRMSVNUIG1hY3JvZGVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVsZW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgZWxlbWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaW1wbGljaXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGV4dCBFTVBUWT4KKzwhQVRUTElTVCB0ZXh0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0cmltICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbmFsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVuamFyIChmaWxlc2V0IHwgcGF0dGVybnNldCkqPgorPCFBVFRMSVNUIHVuamFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZiYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCByZXNvdXJjZSB8IGRlZmluZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHJlZmVyZW5jZSB8IHNyYyB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB2YmMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmVyZW5jZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VyZXNwb25zZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVtb3ZlaW50Y2hlY2tzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbmNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbG1vZHVsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW4zMmljb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25zdHJpY3QgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXRmOG91dHB1dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVmYXVsdHJlZmVyZW5jZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0dHlwZSAoZXhlIHwgbGlicmFyeSB8IG1vZHVsZSB8IHdpbmV4ZSkgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJvb3RuYW1lc3BhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdpbjMycmVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uZXhwbGljaXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2FybmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uY29tcGFyZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcG9ydHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZlcmVuY2VmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdzZGx0b2RvdG5ldCBFTVBUWT4KKzwhQVRUTElTVCB3c2RsdG9kb3RuZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuYW1lc3BhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBta2RpciBFTVBUWT4KKzwhQVRUTElTVCBta2RpcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbmRpdGlvbiAoaXNmYWxzZSB8IGlzcmVmZXJlbmNlIHwgZXF1YWxzIHwgYXZhaWxhYmxlIHwgbm90IHwgY29udGFpbnMgfCBvcyB8IG9yIHwgYW5kIHwgZmlsZXNtYXRjaCB8IGNoZWNrc3VtIHwgaXN0cnVlIHwgaXNzZXQgfCBzb2NrZXQgfCBodHRwIHwgdXB0b2RhdGUpKj4KKzwhQVRUTElTVCBjb25kaXRpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbHNlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3ZzIChjb21tYW5kbGluZSkqPgorPCFBVFRMSVNUIGN2cworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY3ZzcnNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN2c3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWFsbHlxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9ubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2V4ZWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YWcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0ZW1wZmlsZSBFTVBUWT4KKzwhQVRUTElTVCB0ZW1wZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGp1bml0cmVwb3J0IChyZXBvcnQgfCBmaWxlc2V0KSo+Cis8IUFUVExJU1QganVuaXRyZXBvcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcG9ydCBFTVBUWT4KKzwhQVRUTElTVCByZXBvcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3R5bGVkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKGZyYW1lcyB8IG5vZnJhbWVzKSAjSU1QTElFRAorICAgICAgICAgIGV4dGVuc2lvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWthdHRyIEVNUFRZPgorPCFBVFRMSVNUIGNjbWthdHRyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGV2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhc2tkZWYgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIHRhc2tkZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGFwdHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb25lcnJvciAoZmFpbCB8IHJlcG9ydCB8IGlnbm9yZSkgI0lNUExJRUQKKyAgICAgICAgICBsb2FkZXJyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkYXB0ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKHByb3BlcnRpZXMgfCB4bWwpICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXZlcnNlbG9hZGVyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVjaG8gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGVjaG8KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsZXZlbCAoZXJyb3IgfCB3YXJuaW5nIHwgaW5mbyB8IHZlcmJvc2UgfCBkZWJ1ZykgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY3VwZGF0ZSBFTVBUWT4KKzwhQVRUTElTVCBjY3VwZGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmV0aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbmFtZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JhcGhpY2FsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3VycmVudHRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhIChjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eSB8IHJlZGlyZWN0b3IgfCBib290Y2xhc3NwYXRoIHwgc3lzcHJvcGVydHlzZXQgfCBlbnYgfCBwZXJtaXNzaW9ucyB8IGp2bWFyZyB8IGFyZyB8IGFzc2VydGlvbnMpKj4KKzwhQVRUTElTVCBqYXZhCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBqYXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVuYW1lZXh0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCByZW5hbWVleHQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9leHRlbnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZnJvbWV4dGVuc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NsYWJlbCBFTVBUWT4KKzwhQVRUTElTVCB2c3NsYWJlbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBiYXNlbmFtZSBFTVBUWT4KKzwhQVRUTElTVCBiYXNlbmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFkb2MyICh0YWdsZXQgfCBkb2NsZXQgfCBwYWNrYWdlIHwgYXJnIHwgbGluayB8IGRvY3RpdGxlIHwgYm90dG9tIHwgZ3JvdXAgfCBwYWNrYWdlc2V0IHwgZmlsZXNldCB8IGNsYXNzcGF0aCB8IHNvdXJjZXBhdGggfCBmb290ZXIgfCBzb3VyY2UgfCBib290Y2xhc3NwYXRoIHwgaGVhZGVyIHwgZXhjbHVkZXBhY2thZ2UgfCB0YWcpKj4KKzwhQVRUTElTVCBqYXZhZG9jMgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYm90dG9tIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhlYWRlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmsgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2luZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFjY2VzcyAocHJvdGVjdGVkIHwgcHVibGljIHwgcGFja2FnZSB8IHByaXZhdGUpICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9xdWFsaWZpZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdWJsaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXV0aG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvb3RlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZWV4dGVybmFsZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwcm90ZWN0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnJlYWtpdGVyYXRvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub25hdmJhciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmtvZmZsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbHBhcmFtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlua3NvdXJjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVub3NvdXJjZXBhY2thZ2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcml2YXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2hhcnNldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVwcmVjYXRlZGxpc3QgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgc3R5bGVzaGVldGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVwYWNrYWdlbmFtZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXRwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZW5hbWVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luZG93dGl0bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3RyZWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3BsaXRpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jdGl0bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJpYWx3YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9sZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhlbHBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dGRpcnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2hlbHAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9kZXByZWNhdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG92ZXJ2aWV3IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzY3AgRU1QVFk+Cis8IUFUVExJU1QgdnNzY3AKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHRhcmZpbGVzZXQgfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0YXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAobm9uZSB8IGd6aXAgfCBiemlwMikgI0lNUExJRUQKKyAgICAgICAgICBsb25nZmlsZSAod2FybiB8IGZhaWwgfCB0cnVuY2F0ZSB8IGdudSB8IG9taXQpICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0YXJmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZXNlcnZlbGVhZGluZ3NsYXNoZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdWlkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2lkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2V0cHJveHkgRU1QVFk+Cis8IUFUVExJU1Qgc2V0cHJveHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5vbnByb3h5aG9zdHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm94eWhvc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb2Nrc3Byb3h5aG9zdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3h5cG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvY2tzcHJveHlwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm94eXVzZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3h5cGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbGFzbSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZWZlcmVuY2UgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgaWxhc20KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG93bmVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0dHlwZSAoZXhlIHwgbGlicmFyeSkgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2VmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlzdGluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZXlmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29zY2hlY2tvdXQgRU1QVFk+Cis8IUFUVExJU1Qgc29zY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNvc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2plY3RwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jYWNoZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NjbWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFwcGx5IChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBhcHBseQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZW1pc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbGxlbCAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY3VuY2hlY2tvdXQgRU1QVFk+Cis8IUFUVExJU1QgY2N1bmNoZWNrb3V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29weSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamFybGliLXJlc29sdmUgKGFudCB8IGxvY2F0aW9uIHwgdXJsIHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgamFybGliLXJlc29sdmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNoZWNrZXh0ZW5zaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxvY2F0aW9uIEVNUFRZPgorPCFBVFRMSVNUIGxvY2F0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVybCBFTVBUWT4KKzwhQVRUTElTVCB1cmwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN2c3RhZ2RpZmYgKGNvbW1hbmRsaW5lKSo+Cis8IUFUVExJU1QgY3ZzdGFnZGlmZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY3ZzcnNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kdGFnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN2c3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWFsbHlxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdGFydHRhZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZXhlYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0YXJ0ZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhZyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpsaW5rIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBtZXJnZWZpbGVzIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGFkZGZpbGVzIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBqbGluaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb3V0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhZGRmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVyZ2VmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWVyZ2VmaWxlcyAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgbWVyZ2VmaWxlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFkZGZpbGVzIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBhZGRmaWxlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFjYyBFTVBUWT4KKzwhQVRUTElTVCBqYXZhY2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlYnVncGFyc2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGphdmFjY2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZWxhY2hlY2sgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemV0b2tlbm1hbmFnZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbW9udG9rZW5hY3Rpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnVpbGR0b2tlbm1hbmFnZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2FuaXR5Y2hlY2sgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnVpbGRwYXJzZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3RoZXJhbWJpZ3VpdHljaGVjayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvb2thaGVhZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnbG9va2FoZWFkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNob2ljZWFtYmlndWl0eWNoZWNrIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5pY29kZWlucHV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXJjaGFyc3RyZWFtICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlYnVndG9rZW5tYW5hZ2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBsaW5lY29sdW1uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRkaXJlY3RvcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYWNoZXRva2VucyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBqYXZhdW5pY29kZWVzY2FwZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdGF0aWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlY2FzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VydG9rZW5tYW5hZ2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycmVwb3J0aW5nICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNobW9kIChtYXBwZXIgfCBpbmNsdWRlIHwgc3JjZmlsZSB8IGV4Y2x1ZGUgfCB0YXJnZXRmaWxlIHwgcGF0dGVybnNldCB8IHJlZGlyZWN0b3IgfCBlbnYgfCBmaWxlbGlzdCB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBjaG1vZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFyYWxsZWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwZXJtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHZjcyAocHZjc3Byb2plY3QpKj4KKzwhQVRUTElTVCBwdmNzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGVvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvcmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29uZmlnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHZjc2JpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdvcmtzcGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB2Y3Nwcm9qZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZW5hbWVmb3JtYXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VyaWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBvc2l0b3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlcmV0dXJuY29kZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXZpc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmVzdGFydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvbW90aW9uZ3JvdXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHZjc3Byb2plY3QgRU1QVFk+Cis8IUFUVExJU1QgcHZjc3Byb2plY3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXJsaWItbWFuaWZlc3QgKG9wdGlvbnMgfCBhdHRyaWJ1dGUgfCBkZXBlbmRzIHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgamFybGliLW1hbmlmZXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBvcHRpb25zIChmaWxlc2V0IHwgbGliZmlsZXNldCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIG9wdGlvbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZXBlbmRzIChmaWxlc2V0IHwgbGliZmlsZXNldCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIGRlcGVuZHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgbWFuaWZlc3QgfCB0eXBlIHwgbWV0YWluZiB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGluZGV4amFycyB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCB6aXBncm91cGZpbGVzZXQgfCB6aXBmaWxlc2V0IHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgamFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB3aGVuZW1wdHkgKGZhaWwgfCBza2lwIHwgY3JlYXRlKSAjSU1QTElFRAorICAgICAgICAgIGtlZXBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZHVwbGljYXRlIChhZGQgfCBwcmVzZXJ2ZSB8IGZhaWwpICNJTVBMSUVECisgICAgICAgICAgcm91bmR1cCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgamFyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc29ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzZXRtYW5pZmVzdCAoc2tpcCB8IG1lcmdlIHwgbWVyZ2V3aXRob3V0bWFpbikgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2xidHlwZSBFTVBUWT4KKzwhQVRUTElTVCBjY21rbGJ0eXBlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBnbG9iYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzaGFyZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBicmFuY2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZvYiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcmRpbmFyeSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzY3JpcHRkZWYgKCNQQ0RBVEEgfCBjbGFzc3BhdGggfCBlbGVtZW50IHwgYXR0cmlidXRlKSo+Cis8IUFUVExJU1Qgc2NyaXB0ZGVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBsb2FkZXJyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmV2ZXJzZWxvYWRlciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZWZhdWx0ZXhjbHVkZXMgRU1QVFk+Cis8IUFUVExJU1QgZGVmYXVsdGV4Y2x1ZGVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZW1vdmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlY2hvICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1wYXJzZSAoZmlsZXNldCB8IGp2bWFyZyB8IGNsYXNzcGF0aCB8IHNvdXJjZXBhdGgpKj4KKzwhQVRUTElTVCBtcGFyc2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsZWFudXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXRhbWF0YWhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1Z3BhcnNlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnc2Nhbm5lciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBibGdlbmNsaWVudCAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgYmxnZW5jbGllbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlamJqYXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsaWVudGphciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpqZG9jIEVNUFRZPgorPCFBVFRMSVNUIGpqZG9jCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphdmFjY2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0ZXh0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9uZXRhYmxlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGdlbmtleSAoZG5hbWUpKj4KKzwhQVRUTElTVCBnZW5rZXkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0b3JlcGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNpZ2FsZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2V5cGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2V5c2l6ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFsaWFzIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2V5YWxnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsaWRpdHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZXlzdG9yZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdG9yZXR5cGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkbmFtZSAocGFyYW0pKj4KKzwhQVRUTElTVCBkbmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamF2YWggKGFyZyB8IGNsYXNzcGF0aCB8IGNsYXNzIHwgYm9vdGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGphdmFoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdHVicyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjbGFzcyBFTVBUWT4KKzwhQVRUTElTVCBjbGFzcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtlbGVtIEVNUFRZPgorPCFBVFRMSVNUIGNjbWtlbGVtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZXRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWFzdGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVsdHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2NoZWNrb3V0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGVja2luICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbXJlY29uZmlndXJlIEVNUFRZPgorPCFBVFRMSVNUIGNjbXJlY29uZmlndXJlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY21hY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtcHJvamVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjY21kaXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmYWlsICgjUENEQVRBIHwgY29uZGl0aW9uKSo+Cis8IUFUVExJU1QgZmFpbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3RhdHVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVuemlwIChmaWxlc2V0IHwgcGF0dGVybnNldCkqPgorPCFBVFRMSVNUIHVuemlwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IGV4dGRpcnMgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgc291cmNlcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgYm9vdGNsYXNzcGF0aCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBjb21waWxlcmFyZyB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGphdmFjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnbGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZW1vcnlpbml0aWFsc2l6ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlcHJlY2F0aW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVhbnRydW50aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVqYXZhcnVudGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGVtcGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3dhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJvY2VlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZvcmsgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVtb3J5bWF4aW11bXNpemUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpbWl6ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaXN0ZmlsZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXh0ZGlycyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpwY292ZXJhZ2UgKGFyZyB8IHNvY2tldCB8IGZpbGVzZXQgfCBqdm1hcmcgfCBjbGFzc3BhdGggfCB0cmlnZ2VycyB8IGZpbHRlcnMpKj4KKzwhQVRUTElTVCBqcGNvdmVyYWdlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhcHBsZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVjb3JkZnJvbXN0YXJ0IChjb3ZlcmFnZSB8IG5vbmUgfCBhbGwpICNJTVBMSUVECisgICAgICAgICAgdm0gKGphdmEyIHwgamRrMTE4IHwgamRrMTE3KSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdvcmtpbmdkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzbmFwc2hvdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlZWRuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YWV4ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGl0cHJvbXB0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3YXJubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaW5hbHNuYXBzaG90IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0cmFja25hdGl2ZXMgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHJpZ2dlcnMgKG1ldGhvZCkqPgorPCFBVFRMSVNUIHRyaWdnZXJzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXRob2QgRU1QVFk+Cis8IUFUVExJU1QgbWV0aG9kCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXZlbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnMgKGluY2x1ZGUgfCBleGNsdWRlKSo+Cis8IUFUVExJU1QgZmlsdGVycworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29zbGFiZWwgRU1QVFk+Cis8IUFUVExJU1Qgc29zbGFiZWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNvc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvamVjdHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jYWNoZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc2NtZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzZ2V0IEVNUFRZPgorPCFBVFRMSVNUIHZzc2dldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXRpbWVzdGFtcCAoY3VycmVudCB8IG1vZGlmaWVkIHwgdXBkYXRlZCkgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZWZpbGVzIChyZXBsYWNlIHwgc2tpcCB8IGZhaWwpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVsdHJlZSBFTVBUWT4KKzwhQVRUTElTVCBkZWx0cmVlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvY29uZmlnLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3M2FkZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvY29uZmlnLnhtbApAQCAtMCwwICsxLDYgQEAKKzxjb25maWcKKyAgICAgICAgaG9zdD0iJHtob3N0fSIKKyAgICAgICAgcG9ydD0iJHtwb3J0fSIKKyAgICAgICAgYmFzZXBhdGg9IiR7YmFzZXBhdGh9IgorICAgICAgICBwcm90b2NvbD0iaHR0cCIvPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItb3Blbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItb3Blbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRmYmFjNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1vcGVuLnhtbApAQCAtMCwwICsxLDUgQEAKKyZ3ZWxjb21lLW9wZW47Cis8Y2xpY2tMaW5rCisgICAgICAgIGRlc2NyaXB0aW9uPSJDbGljayBSZWdpc3RlciIKKyAgICAgICAgbGFiZWw9IlJlZ2lzdGVyIHdpdGggTWFpbFJlYWRlciIvPgorICAgICAgICAmcmVnaXN0ZXItcGFnZTsKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1wYWdlLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1wYWdlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDYwMWU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXBhZ2UueG1sCkBAIC0wLDAgKzEsMyBAQAorPHZlcmlmeVRpdGxlCisgICAgICAgIGRlc2NyaXB0aW9uPSJSZWdpc3RyYXRpb24gcGFnZSB0aXRsZSIKKyAgICAgICAgdGV4dD0iTWFpbFJlYWRlciAtIFJlZ2lzdGVyIi8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItdHJpbGxpYW4ueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXRyaWxsaWFuLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTYxZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXRyaWxsaWFuLnhtbApAQCAtMCwwICsxLDIxIEBACis8c2V0SW5wdXRGaWVsZAorICAgICAgICBkZXNjcmlwdGlvbj0idXNlcm5hbWUiCisgICAgICAgIG5hbWU9InVzZXJuYW1lIgorICAgICAgICB2YWx1ZT0idHJpbGxpYW4iLz4KKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJwYXNzd29yZCIKKyAgICAgICAgbmFtZT0icGFzc3dvcmQiCisgICAgICAgIHZhbHVlPSJhc3RyYSIvPgorPHNldElucHV0RmllbGQKKyAgICAgICAgZGVzY3JpcHRpb249InBhc3N3b3JkMiIKKyAgICAgICAgbmFtZT0icGFzc3dvcmQyIgorICAgICAgICB2YWx1ZT0iYXN0cmEiLz4KKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJmdWxsTmFtZSIKKyAgICAgICAgbmFtZT0iZnVsbE5hbWUiCisgICAgICAgIHZhbHVlPSJUcmljaWEgTWNNaWxsaWFuIi8+Cis8c2V0SW5wdXRGaWVsZAorICAgICAgICBkZXNjcmlwdGlvbj0iZnJvbUFkZHJlc3MiCisgICAgICAgIG5hbWU9ImZyb21BZGRyZXNzIgorICAgICAgICB2YWx1ZT0idHJpY2lhQG1hZ3JhdGhlYS5jb20iLz4KKyAgICAgICAgJnNhdmUtY2xpY2s7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3NhdmUtY2xpY2sueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3NhdmUtY2xpY2sueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwMmExZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvc2F2ZS1jbGljay54bWwKQEAgLTAsMCArMSwzIEBACis8Y2xpY2tCdXR0b24KKyAgICAgICAgZGVzY3JpcHRpb249IlNhdmUiCisgICAgICAgIG5hbWU9IlNhdmUiLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy90YXNrZGVmLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy90YXNrZGVmLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjRjMWRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3Rhc2tkZWYueG1sCkBAIC0wLDAgKzEsMjUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgPz4KKzxwcm9qZWN0IG5hbWU9InRhc2tkZWYiPgorICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgVGhpcyBwcm9qZWN0IHByb3ZpZGVzIGZvbGxvd2luZyBlbGVtZW50cyB0byB1c2UgaW4geW91ciB0ZXN0IHNjcmlwdHM6CisKKyAgICAgICAgKDApIGFsbCB3ZWJ0ZXN0J3Mgc3RlcHMgbG9hZGVkIGFuZCByZWFkeSB0byB1c2UsCisgICAgICAgICgxKSB0aGUgcGF0aCAid2VidGVzdC5wYXRoLmlkIiB0aGF0IGluY2x1ZGVzIGFsbCBvZiB3ZWJ0ZXN0J3MKKyAgICAgICAgbGlicmFyaWVzLAorICAgICAgICAoMikgdGhlIGNsYXNzIGxvYWRlciAid2VidGVzdC5sb2FkZXIiIHRoYXQgaXMgdGhlIG9yaWdpbmFsIGxvYWRlciBmb3IKKyAgICAgICAgd2VidGVzdC4KKworICAgICAgICBVc2FnZToKKyAgICAgICAgU2V0IHRoZSBwcm9wZXJ0eSB3ZWJ0ZXN0LmhvbWUgdG8gdGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0aGUgYnVpbGQuemlwCisgICAgICAgIGlzIGV4dHJhY3RlZCwKKyAgICAgICAgYW5kIGNhbGxzOgorICAgICAgICAmbHQ7aW1wb3J0IGZpbGU9IiR7d2VidGVzdC5ob21lfS9saWIvdGFza2RlZi54bWwiICZndDsKKyAgICA8L2Rlc2NyaXB0aW9uPgorCisgICAgPGltcG9ydCBmaWxlPSIke3dlYnRlc3QuaG9tZX0vbGliL2NsYXNzcGF0aC54bWwiLz4KKworICAgIDx0YXNrZGVmIHJlc291cmNlPSJ3ZWJ0ZXN0LnRhc2tkZWYiCisgICAgICAgICAgICAgbG9hZGVycmVmPSJ3ZWJ0ZXN0LmxvYWRlciIKKyAgICAgICAgICAgICBjbGFzc3BhdGhyZWY9IndlYnRlc3QucGF0aC5pZCIKKyAgICAgICAgICAgIC8+Cis8L3Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3dlbGNvbWUtb3Blbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvd2VsY29tZS1vcGVuLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDczNTMxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3dlbGNvbWUtb3Blbi54bWwKQEAgLTAsMCArMSw2IEBACis8aW52b2tlCisgICAgICAgIGRlc2NyaXB0aW9uPSJPcGVuIHdlbGNvbWUgYWN0aW9uIgorICAgICAgICB1cmw9IldlbGNvbWUuZG8iLz4KKzx2ZXJpZnlUaXRsZQorICAgICAgICBkZXNjcmlwdGlvbj0iV2VsY29tZSBwYWdlIHRpdGxlIgorICAgICAgICB0ZXh0PSJNYWlsUmVhZGVyIi8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNTFlYTgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgd2ViLWFwcCBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4zLy9FTiIgImh0dHA6Ly9qYXZhLnN1bi5jb20vZHRkL3dlYi1hcHBfMl8zLmR0ZCI+Cis8d2ViLWFwcD4KKworICAgIDxkaXNwbGF5LW5hbWU+U3RydXRzIDIgTWFpbHJlYWRlcjwvZGlzcGxheS1uYW1lPgorCisgICAgPGZpbHRlcj4KKyAgICAgICAgPGZpbHRlci1uYW1lPlN0cnV0czI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8ZmlsdGVyLWNsYXNzPgorICAgICAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuRmlsdGVyRGlzcGF0Y2hlcgorICAgICAgICA8L2ZpbHRlci1jbGFzcz4KKyAgICA8L2ZpbHRlcj4KKworICAgIDxmaWx0ZXItbWFwcGluZz4KKyAgICAgICAgPGZpbHRlci1uYW1lPlN0cnV0czI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8dXJsLXBhdHRlcm4+Lyo8L3VybC1wYXR0ZXJuPgorICAgIDwvZmlsdGVyLW1hcHBpbmc+CisKKyAgICA8IS0tIEFwcGxpY2F0aW9uIExpc3RlbmVyIGZvciBNYWlscmVhZGVyIGRhdGFiYXNlIC0tPgorICAgIDxsaXN0ZW5lcj4KKyAgICAgICAgPGxpc3RlbmVyLWNsYXNzPgorICAgICAgICAgICAgRGF0YWJhc2VMaXN0ZW5lcgorICAgICAgICA8L2xpc3RlbmVyLWNsYXNzPgorICAgIDwvbGlzdGVuZXI+CisKKyAgICA8d2VsY29tZS1maWxlLWxpc3Q+CisgICAgICAgIDx3ZWxjb21lLWZpbGU+aW5kZXguaHRtbDwvd2VsY29tZS1maWxlPgorICAgIDwvd2VsY29tZS1maWxlLWxpc3Q+CisKKzwvd2ViLWFwcD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcy5zYW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE2OTc1YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlCkBAIC0wLDAgKzEsMTUgQEAKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisjIHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUNCisjDQorIyBUaGlzIGlzIGFuIGV4YW1wbGUgIndlYnRlc3QucHJvcGVydGllcyIgZmlsZSwgdXNlZCB0byBjdXN0b21pemUgYnVpbGRpbmcgU3RydXRzDQorIyBmb3IgeW91ciBsb2NhbCBlbnZpcm9ubWVudC4gIE1ha2UgYW55IGNoYW5nZXMgeW91IG5lZWQsIGFuZCByZW5hbWUgdGhpcyBmaWxlDQorIyB0byAid2VidGVzdC5wcm9wZXJ0aWVzIiBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0aGUgU3RydXRzDQorIyAid2VidGVzdC54bWwiIGZpbGUuDQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK3dlYnRlc3QuaG9tZSA9IC9vcHQvQ2Fub28vd2VidGVzdC0xLjcNCitob3N0ID0gbG9jYWxob3N0DQorcG9ydCA9IDgwODANCitiYXNlcGF0aCA9IGxhYi0yLTINCit3ZWJhcHBzLmhvbWUgPSAvb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvDQorcmVzb3VyY2UuaG9tZSA9ICR7d2ViYXBwcy5ob21lfS8ke2Jhc2VwYXRofS9XRUItSU5GL2NsYXNzZXMvcmVzb3VyY2VzLnByb3BlcnRpZXMiDQorIyBtYWlscmVhZGVyLmhvbWUgPSANCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYzNDc2OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnhtbApAQCAtMCwwICsxLDEyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgcHJvamVjdCBTWVNURU0gImVudGl0aWVzL1dlYlRlc3QuZHRkIiBbCisKKyAgICAgICAgPCFFTlRJVFkgdGFza2RlZi13ZWJ0ZXN0IFNZU1RFTSAiZW50aXRpZXMvdGFza2RlZi54bWwiPgorICAgICAgICA8IUVOVElUWSBjb25maWcgU1lTVEVNICJlbnRpdGllcy9jb25maWcueG1sIj4KKworICAgICAgICA8IUVOVElUWSByZWdpc3Rlci1vcGVuIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3JlZ2lzdGVyLW9wZW4ueG1sIj4KKyAgICAgICAgPCFFTlRJVFkgcmVnaXN0ZXItcGFnZSBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9yZWdpc3Rlci1wYWdlLnhtbCI+CisgICAgICAgIDwhRU5USVRZIHJlZ2lzdGVyLXRyaWxsaWFuIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3JlZ2lzdGVyLXRyaWxsaWFuLnhtbCI+CisKKyAgICAgICAgPCFFTlRJVFkgc2F2ZS1jbGljayBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9zYXZlLWNsaWNrLnhtbCI+CisKKyAgICAgICAgPCFFTlRJVFkgd2VsY29tZS1vcGVuIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3dlbGNvbWUtb3Blbi54bWwiPgorCisgICAgICAgIF0+CisKKzxwcm9qZWN0IG5hbWU9Ik1haWxSZWFkZXIgVHJhaW5pbmcgQ291cnNlIC0gRXhlcmNpc2UgbmF2aWdhdGlvbiBhbmQgZGF0YWJhc2UgbG9naWMKKy0gQ2Fub28gV2ViVGVzdHMiIGJhc2VkaXI9Ii4iIGRlZmF1bHQ9ImNsZWFuIj4KKworICAgIDwhLS0KKyAgICAgQ2Fub28gV2ViVGVzdCBjb25maWd1cmF0aW9uIGZpbGUgdG8gdGVzdCBuYXZpZ2F0aW5nIGJldHdlZW4gcGFnZXMgYW5kCisgICAgIGNyZWF0aW5nIGFuZCBlZGl0aW5nIGFuIGFjY291bnQuCisKKyAgICAgVG8gcnVuIHRoaXMgdGVzdCwgZmlyc3QgaW5zdGFsbCB0aGUgQ2Fub28gV2VidGVzdCBwYWNrYWdlIG9uIHlvdXIKKyAgICAgbG9jYWwgc3lzdGVtIFtodHRwOi8vd2VidGVzdC5jYW5vby5jb21dLgorCisgICAgIFRoZSBkZWZhdWx0IGxvY2F0aW9uIGZvciB0aGlzIGJ1aWxkIGZpbGUgaXMgdW5kZXIKKyAgICAgIi9vcHQvQ2Fub28vd2VidGVzdC0xLjciLgorICAgICBTZWUgdGhlIHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgdG8gdXNlIGFub3RoZXIgbG9jYXRpb24uCisKKyAgICAgT25jZSBDYW5vbyBpcyBpbnN0YWxsZWQsIHRoZSB3ZWJ0ZXN0LnhtbCBmaWxlIGNhbiBiZSBydW4gYXMgYW4gQW50IGJ1aWxkCisgICAgIGZpbGUgKGFudCAtZiB3ZWJ0ZXN0LnhtbCkuCisKKyAgICAgQnkgZGVmYXVsdCwgdGhlIHRlc3RzIGFyZSBjb25maWd1cmVkIHRvIGZpbmQgdGhlIGFwcGxpY2F0aW9uIHVuZGVyIHRlc3QKKyAgICAgIGF0ICJodHRwOi8vbG9jYWxob3N0OjgwODAvbGliLTItMiIuCisgICAgIFNlZSB0aGUgd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZSB0byB1c2UgYW5vdGhlciBsb2NhdGlvbi4KKworICAgICBEZXBsb3kgdGhlIGFwcGxpY2F0aW9uIHRvIHlvdXIgY29udGFpbmVyLCBhbmQgdXNlIEFudCB0byBydW4gdGhlCisgICAgIHdlYnRlc3QueG1sLgorCisgICAgIFRoZSAiY2xlYW4iIHRhcmdldCBjYW4gYmUgcnVuIHRvIHRlc3QgZXZlcnl0aGluZywgYnV0IHdpbGwgZmFpbCBpZiBydW4gYWdhaW4sCisgICAgIHNpbmNlIHRoZSB0ZXN0LXVzZXIgd2lsbCBhbHJlYWR5IGJlIHJlZ2lzdGVyZWQuCisgICAgIFRoZSAiZGVmYXVsdCIgdGFyZ2V0IHNraXBzIHJlZ2lzdGVyYXRpb24gYW5kIGNhbiBiZSBydW4gYXMgb2Z0ZW4gYXMgbmVlZGVkCisgICAgIGFmdGVyICJjbGVhbiIgaXMgcnVuIG9uY2UuCisKKyAgICAgVG8gcmVzZXQgdGhlIFhNTCAiZGF0YWJhc2UiLCBlaXRoZXIgcmVkZXBsb3kgdGhlIGFwcGxpY2F0aW9uIHNvIHRoYXQgdGhlCisgICAgIFdFQi1JTkYvY2xhc3Nlcy9kYXRhYmFzZS54bWwgaXMgb3ZlcndyaXR0ZW4sCisgICAgIG9yIHVzZSB0aGUgImNsZWFuLWRhdGFiYXNlIiB0YXJnZXQgdG8gb3ZlcndyaXRlIHRoZSBmaWxlLgorICAgICBPbmx5IHVzZSAiY2xlYW4tZGF0YWJhc2UiIHdoZW4gdGhlIHNlcnZlciAgaXMgc3RvcHBlZCwKKyAgICAgYW5kIHRoZW4gc3RhcnQgaXQgYWdhaW4gYmVmb3JlIHJ1bm5pbmcgb3RoZXIgdGFyZ2V0cy4KKworICAgICBUaGUgdGVzdHMgYXJlIGJhc2VkIG9uIGEgc2V0IG9mIE1haWxSZWFkZXIgVXNlIENhc2VzIG1haW50YWluZWQgYXQgdGhlCisgICAgIFN0cnV0cyBVbml2ZXJzaXR5IHNpdGUKKyAgICAgW2h0dHA6Ly9vcGVuc291cmNlMi5hdGxhc3NpYW4uY29tL2NvbmZsdWVuY2Uvb3NzL2Rpc3BsYXkvU1RSVVRTL01haWxSZWFkZXJdLgorICAgICAqLworICAgIC0tPgorCisgICAgPCEtLSBMb2FkIGxvY2FsIHByZWZlcmVuY2VzLCBpZiBhbnkgLS0+CisgICAgPHByb3BlcnR5IGZpbGU9IndlYnRlc3QucHJvcGVydGllcyIvPgorCisgICAgPCEtLSBUaGVzZSBwcm9wZXJ0aWVzIGNhbiBiZSBjdXN0b21pemVkIHVzaW5nIHZpYSB3ZWJ0ZXN0LnByb3BlcnRpZXMgLS0+CisgICAgPCEtLSBTZWUgd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZSBmb3IgYSBzdGFydGVyIGZpbGUgLS0+CisgICAgPHByb3BlcnR5IG5hbWU9IndlYnRlc3QuaG9tZSIKKyAgICAgICAgICAgICAgbG9jYXRpb249Ii9vcHQvQ2Fub28vd2VidGVzdC0xLjciLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJob3N0IgorICAgICAgICAgICAgICB2YWx1ZT0ibG9jYWxob3N0Ii8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0icG9ydCIKKyAgICAgICAgICAgICAgdmFsdWU9IjgwODAiLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJiYXNlcGF0aCIKKyAgICAgICAgICAgICAgdmFsdWU9ImxhYi0yLTIiLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJtYWlscmVhZGVyLmhvbWUiCisgICAgICAgICAgICAgIGxvY2F0aW9uPSIuLi8uLi8uLi8iLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJ3ZWJhcHBzLmhvbWUiCisgICAgICAgICAgICAgIGxvY2F0aW9uPSIvb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMiLz4KKworICAgIDxwcm9wZXJ0eSBmaWxlPSIke3dlYmFwcHMuaG9tZX0vJHtiYXNlcGF0aH0vV0VCLUlORi9jbGFzc2VzL3Jlc291cmNlcy5wcm9wZXJ0aWVzIi8+CisKKworICAgIDx0YXNrZGVmIGZpbGU9IiR7d2VidGVzdC5ob21lfS93ZWJ0ZXN0VGFza2RlZnMucHJvcGVydGllcyI+CisgICAgICAgIDxjbGFzc3BhdGg+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7d2VidGVzdC5ob21lfSIgaW5jbHVkZXM9IioqL2xpYi8qLmphciIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke3dlYnRlc3QuaG9tZX0iIGluY2x1ZGVzPSIqKi9saWIvcnVudGltZS8qLmphciIvPgorICAgICAgICA8L2NsYXNzcGF0aD4KKyAgICA8L3Rhc2tkZWY+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNsZWFuLWRhdGFiYXNlIgorICAgICAgICAgICAgZGVzY3JpcHRpb249IlNldHMgZGF0YWJhc2UueG1sIHRvIGRlZmF1bHQuIFN0b3Agc2VydmVyLCBydW4gdGFyZ2V0LCBhbmQgU3RhcnQgc2VydmVyLiI+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7bWFpbHJlYWRlci5ob21lfS9zcmMvamF2YS9kYXRhYmFzZS54bWwiCisgICAgICAgICAgICAgIHRvZmlsZT0iJHt3ZWJhcHBzLmhvbWV9LyR7YmFzZXBhdGh9L1dFQi1JTkYvY2xhc3Nlcy9kYXRhYmFzZS54bWwiCisgICAgICAgICAgICAgIG92ZXJ3cml0ZT0idHJ1ZSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLSBBREQgWU9VUiBUQVJHRVRTIEhFUkUgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNsZWFuIiBkZXNjcmlwdGlvbj0iT25seSBydW4gYWdhaW5zdCBhIGNsZWFuIGRhdGFiYXNlIgorICAgICAgICAgICAgZGVwZW5kcz0iUmVnaXN0ZXIiLz4KKworICAgIDx0YXJnZXQgbmFtZT0iUmVnaXN0ZXIiCisgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU3Vic2NyaWJlcnMgY2FuIHN0b3JlIGxvZ2luIGNyZWRlbnRpYWxzIGFuZCBhCisgICAgICAgICAgICBwcmltYXJ5IGVtYWlsIGNvbnRhY3Qgd2l0aCB0aGUgc3lzdGVtLiI+CisKKyAgICAgICAgPHdlYnRlc3QgbmFtZT0iUmVnaXN0ZXIgVHJpbGxpYW4gKE1TUykiPgorICAgICAgICAgICAgJmNvbmZpZzsKKyAgICAgICAgICAgIDxzdGVwcz4KKyAgICAgICAgICAgICAgICAmcmVnaXN0ZXItb3BlbjsKKyAgICAgICAgICAgICAgICAmcmVnaXN0ZXItdHJpbGxpYW47CisgICAgICAgICAgICAgICAgPHZlcmlmeVRpdGxlCisgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iTWVudSBwYWdlIHRpdGxlIgorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD0iTWFpbFJlYWRlciAtIE1lbnUiLz4KKyAgICAgICAgICAgIDwvc3RlcHM+CisgICAgICAgIDwvd2VidGVzdD4KKworICAgIDwvdGFyZ2V0PgorCis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL2luZGV4Lmh0bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL2luZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI4ZDVmNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvaW5kZXguaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8TUVUQSBIVFRQLUVRVUlWPSJSZWZyZXNoIiBDT05URU5UPSIwO1VSTD1XZWxjb21lLmFjdGlvbiI+Cis8L2hlYWQ+CisKKzxib2R5PgorPHA+TG9hZGluZyAuLi48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL3BhZ2VzL0Vycm9yLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvcGFnZXMvRXJyb3IuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkYjdlOTMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL3BhZ2VzL0Vycm9yLmpzcApAQCAtMCwwICsxLDM4IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT5VbmV4cGVjdGVkIEVycm9yPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDI+QW4gdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJlZDwvaDI+CisKKzxwPgorICAgIFBsZWFzZSByZXBvcnQgdGhpcyBlcnJvciB0byB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yCisgICAgb3IgYXBwcm9wcmlhdGUgdGVjaG5pY2FsIHN1cHBvcnQgcGVyc29ubmVsLgorICAgIFRoYW5rIHlvdSBmb3IgeW91ciBjb29wZXJhdGlvbi4KKzwvcD4KKworPGhyLz4KKworPGgzPkVycm9yIE1lc3NhZ2U8L2gzPgorCis8czphY3Rpb25lcnJvci8+CisKKzxwPgorICAgIDxzOnByb3BlcnR5IHZhbHVlPSIle2V4Y2VwdGlvbi5tZXNzYWdlfSIvPgorPC9wPgorCis8aHIvPgorCis8aDM+VGVjaG5pY2FsIERldGFpbHM8L2gzPgorCis8cD4KKyAgICA8czpwcm9wZXJ0eSB2YWx1ZT0iJXtleGNlcHRpb25TdGFja30iLz4KKzwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL3BhZ2VzL0hlbGxvLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MWU3ODhkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AKQEAgLTAsMCArMSwxNCBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+SGVsbG88L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxoMj4KKyAgICA8czp0ZXh0IG5hbWU9ImhlbGxvLm1lc3NhZ2UiLz4KKzwvaDI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL3BhZ2VzL0xvZ2luLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvcGFnZXMvTG9naW4uanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3ZDg5YTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL3BhZ2VzL0xvZ2luLmpzcApAQCAtMCwwICsxLDI3IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJsb2dpbi50aXRsZSIvPgorICAgIDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9uTG9hZD0ic2VsZi5mb2N1cygpO2RvY3VtZW50LkxvZ2luX3NhdmUudXNlcm5hbWUuZm9jdXMoKSI+CisKKzxzOmFjdGlvbmVycm9yLz4KKzxzOmZvcm0gYWN0aW9uPSJMb2dpbl9zYXZlIiB2YWxpZGF0ZT0idHJ1ZSI+CisgICAgPHM6dGV4dGZpZWxkIGtleT0idXNlcm5hbWUiLz4KKworICAgIDxzOnBhc3N3b3JkIGtleT0icGFzc3dvcmQiIHNob3dQYXNzd29yZD0idHJ1ZSIvPgorCisgICAgPHM6c3VibWl0IGtleT0iYnV0dG9uLnNhdmUiLz4KKworICAgIDxzOnN1Ym1pdCBhY3Rpb249IkxvZ2luX2NhbmNlbCIga2V5PSJidXR0b24uY2FuY2VsIgorICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4KKzwvczpmb3JtPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL3BhZ2VzL01lbnUuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9wYWdlcy9NZW51LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzRhNmY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9wYWdlcy9NZW51LmpzcApAQCAtMCwwICsxLDI3IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJtZW51LnRpdGxlIi8+CisgICAgPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDM+CisgICAgPHM6dGV4dCBuYW1lPSJtZW51LmhlYWRpbmciLz4KKyAgICA8czpwcm9wZXJ0eSB2YWx1ZT0idXNlci5mdWxsTmFtZSIvPgorPC9oMz4KKzx1bD4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iUmVnaXN0ZXIiIC8+Ij4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJtZW51LnJlZ2lzdHJhdGlvbiIvPgorICAgIDwvYT4KKyAgICA8L2xpPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJMb2dvdXQiLz4iPgorICAgICAgICA8czp0ZXh0IG5hbWU9Im1lbnUubG9nb3V0Ii8+CisgICAgPC9hPgorPC91bD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvYnJvd3NlL3NyYy93ZWJhcHAvcGFnZXMvTWlzc2luZy5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL3BhZ2VzL01pc3NpbmcuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyMWIwOGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL3BhZ2VzL01pc3NpbmcuanNwCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+PHRpdGxlPk1pc3NpbmcgRmVhdHVyZTwvdGl0bGU+PC9oZWFkPgorCis8Ym9keT4KKzxwPgorICAgIFRoaXMgZmVhdHVyZSBpcyB1bmRlciBjb25zdHJ1Y3Rpb24uCisgICAgUGxlYXNlIHRyeSBhZ2FpbiBpbiB0aGUgbmV4dCBpbnRlcmF0aW9uLgorPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9wYWdlcy9SZWdpc3Rlci5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL3BhZ2VzL1JlZ2lzdGVyLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmNjMTJlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9wYWdlcy9SZWdpc3Rlci5qc3AKQEAgLTAsMCArMSwxMjYgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+Cis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHM6aWYgdGVzdD0idGFzaz09J0NyZWF0ZSciPgorICAgICAgICA8dGl0bGU+CisgICAgICAgICAgICA8czp0ZXh0IG5hbWU9InJlZ2lzdHJhdGlvbi50aXRsZS5jcmVhdGUiLz4KKyAgICAgICAgPC90aXRsZT4KKyAgICA8L3M6aWY+CisgICAgPHM6aWYgdGVzdD0idGFzaz09J0VkaXQnIj4KKyAgICAgICAgPHRpdGxlPgorICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24udGl0bGUuZWRpdCIvPgorICAgICAgICA8L3RpdGxlPgorICAgIDwvczppZj4KKzwvaGVhZD4KKworPGJvZHkgb25Mb2FkPSJzZWxmLmZvY3VzKCk7ZG9jdW1lbnQuUmVnaXN0ZXJfc2F2ZS51c2VybmFtZS5mb2N1cygpIj4KKworPHM6YWN0aW9uZXJyb3IvPgorPHM6Zm9ybSBhY3Rpb249IlJlZ2lzdGVyX3NhdmUiIHZhbGlkYXRlPSJ0cnVlIj4KKyAgICA8czpoaWRkZW4gbmFtZT0idGFzayIvPgorICAgIDxzOmlmIHRlc3Q9InRhc2sgPT0gJ0NyZWF0ZSciPgorICAgICAgICA8czp0ZXh0ZmllbGQga2V5PSJ1c2VybmFtZSIvPgorICAgIDwvczppZj4KKyAgICA8czplbHNlPgorICAgICAgICA8czpsYWJlbCBrZXk9InVzZXJuYW1lIi8+CisgICAgICAgIDxzOmhpZGRlbiBuYW1lPSJ1c2VybmFtZSIvPgorICAgIDwvczplbHNlPgorCisgICAgPHM6cGFzc3dvcmQga2V5PSJwYXNzd29yZCIvPgorCisgICAgPHM6cGFzc3dvcmQga2V5PSJwYXNzd29yZDIiLz4KKworICAgIDxzOnRleHRmaWVsZCBrZXk9ImZ1bGxOYW1lIi8+CisKKyAgICA8czp0ZXh0ZmllbGQga2V5PSJmcm9tQWRkcmVzcyIvPgorCisgICAgPHM6dGV4dGZpZWxkIGtleT0icmVwbHlUb0FkZHJlc3MiLz4KKworICAgIDxzOmlmIHRlc3Q9InRhc2sgPT0gJ0NyZWF0ZSciPgorICAgICAgICA8czpzdWJtaXQga2V5PSJidXR0b24uc2F2ZSIgYWN0aW9uPSJSZWdpc3Rlcl9jcmVhdGUiLz4KKworICAgICAgICA8czpyZXNldCBrZXk9ImJ1dHRvbi5yZXNldCIvPgorCisgICAgICAgIDxzOnN1Ym1pdCBhY3Rpb249IldlbGNvbWUiIGtleT0iYnV0dG9uLmNhbmNlbCIKKyAgICAgICAgICAgICAgICAgIG9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCIvPgorICAgIDwvczppZj4KKyAgICA8czplbHNlPgorICAgICAgICA8czpzdWJtaXQga2V5PSJidXR0b24uc2F2ZSIvPgorCisgICAgICAgIDxzOnJlc2V0IGtleT0iYnV0dG9uLnJlc2V0Ii8+CisKKyAgICAgICAgPHM6c3VibWl0IGFjdGlvbj0iTWVudSIga2V5PSJidXR0b24uY2FuY2VsIgorICAgICAgICAgICAgICAgICAgb25jbGljaz0iZm9ybS5vbnN1Ym1pdD1udWxsIi8+CisgICAgPC9zOmVsc2U+CisKKzwvczpmb3JtPgorCis8czppZiB0ZXN0PSJ0YXNrID09ICdFZGl0JyI+CisgICAgPGRpdiBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgPGgzPgorICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJoZWFkaW5nLnN1YnNjcmlwdGlvbnMiLz4KKyAgICAgICAgPC9oMz4KKyAgICA8L2Rpdj4KKworICAgIDx0YWJsZSBib3JkZXI9IjEiIHdpZHRoPSIxMDAlIj4KKworICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjMwJSI+CisgICAgICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJoZWFkaW5nLmhvc3QiLz4KKyAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjI1JSI+CisgICAgICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJoZWFkaW5nLnVzZXIiLz4KKyAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjEwJSI+CisgICAgICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJoZWFkaW5nLnR5cGUiLz4KKyAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjEwJSI+CisgICAgICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJoZWFkaW5nLmF1dG9Db25uZWN0Ii8+CisgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxNSUiPgorICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy5hY3Rpb24iLz4KKyAgICAgICAgICAgIDwvdGg+CisgICAgICAgIDwvdHI+CisKKyAgICAgICAgPHM6aXRlcmF0b3IgdmFsdWU9InVzZXIuc3Vic2NyaXB0aW9ucyI+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICAgICAgPHM6cHJvcGVydHkgdmFsdWU9Imhvc3QiLz4KKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgICAgIDxzOnByb3BlcnR5IHZhbHVlPSJ1c2VybmFtZSIvPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgICAgICAgICA8czpwcm9wZXJ0eSB2YWx1ZT0idHlwZSIvPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgICAgICAgICA8czpwcm9wZXJ0eSB2YWx1ZT0iYXV0b0Nvbm5lY3QiLz4KKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KKworICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI8czp1cmwgYWN0aW9uPSJTdWJzY3JpYmVfZGVsZXRlIj48czpwYXJhbSBuYW1lPSJob3N0IiB2YWx1ZT0iaG9zdCIvPjwvczp1cmw+Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLmRlbGV0ZVN1YnNjcmlwdGlvbiIvPgorICAgICAgICAgICAgICAgICAgICA8L2E+CisgICAgICAgICAgICAgICAgICAgICZuYnNwOworICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI8czp1cmwgYWN0aW9uPSJTdWJzY3JpYmVfZWRpdCI+PHM6cGFyYW0gbmFtZT0iaG9zdCIgdmFsdWU9Imhvc3QiLz48L3M6dXJsPiI+CisgICAgICAgICAgICAgICAgICAgICAgICA8czp0ZXh0IG5hbWU9InJlZ2lzdHJhdGlvbi5lZGl0U3Vic2NyaXB0aW9uIi8+CisgICAgICAgICAgICAgICAgICAgIDwvYT4KKworICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICA8L3M6aXRlcmF0b3I+CisKKyAgICA8L3RhYmxlPgorCisgICAgPGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iU3Vic2NyaWJlIi8+Ij4KKyAgICAgICAgPHM6dGV4dAorICAgICAgICAgICAgICAgIG5hbWU9InJlZ2lzdHJhdGlvbi5hZGRTdWJzY3JpcHRpb24iLz4KKyAgICA8L2E+CisKKzwvczppZj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9wYWdlcy9TdWJzY3JpYmUuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9wYWdlcy9TdWJzY3JpYmUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5ZjhiMTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL3BhZ2VzL1N1YnNjcmliZS5qc3AKQEAgLTAsMCArMSw2OSBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8czppZiB0ZXN0PSJ0YXNrPT0nQ3JlYXRlJyI+CisgICAgICAgIDx0aXRsZT4KKyAgICAgICAgICAgIDxzOnRleHQgbmFtZT0ic3Vic2NyaXB0aW9uLnRpdGxlLmNyZWF0ZSIvPgorICAgICAgICA8L3RpdGxlPgorICAgIDwvczppZj4KKyAgICA8czppZiB0ZXN0PSJ0YXNrPT0nRWRpdCciPgorICAgICAgICA8dGl0bGU+CisgICAgICAgICAgICA8czp0ZXh0IG5hbWU9InN1YnNjcmlwdGlvbi50aXRsZS5lZGl0Ii8+CisgICAgICAgIDwvdGl0bGU+CisgICAgPC9zOmlmPgorICAgIDxzOmlmIHRlc3Q9InRhc2s9PSdEZWxldGUnIj4KKyAgICAgICAgPHRpdGxlPgorICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlIi8+CisgICAgICAgIDwvdGl0bGU+CisgICAgPC9zOmlmPgorPC9oZWFkPgorCis8Ym9keSBvbkxvYWQ9InNlbGYuZm9jdXMoKTtkb2N1bWVudC5TdWJzY3JpYmVfc2F2ZS51c2VybmFtZS5mb2N1cygpIj4KKworPHM6YWN0aW9uZXJyb3IvPgorPHM6Zm9ybSBhY3Rpb249IlN1YnNjcmliZV9zYXZlIiB2YWxpZGF0ZT0idHJ1ZSI+CisgICAgPHM6aGlkZGVuIG5hbWU9InRhc2siLz4KKyAgICA8czpsYWJlbCBrZXk9InVzZXIudXNlcm5hbWUiLz4KKworICAgIDxzOmlmIHRlc3Q9InRhc2sgPT0gJ0NyZWF0ZSciPgorICAgICAgICA8czp0ZXh0ZmllbGQga2V5PSJtYWlsSG9zdG5hbWUiIG5hbWU9Imhvc3QiLz4KKyAgICA8L3M6aWY+CisgICAgPHM6ZWxzZT4KKyAgICAgICAgPHM6bGFiZWwga2V5PSJtYWlsSG9zdG5hbWUiIG5hbWU9Imhvc3QiLz4KKyAgICAgICAgPHM6aGlkZGVuIG5hbWU9Imhvc3QiLz4KKyAgICA8L3M6ZWxzZT4KKworICAgIDxzOmlmIHRlc3Q9InRhc2sgPT0gJ0RlbGV0ZSciPgorICAgICAgICA8czpsYWJlbCBrZXk9Im1haWxVc2VybmFtZSIKKyAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnVzZXJuYW1lIi8+CisgICAgICAgIDxzOmxhYmVsIGtleT0ibWFpbFBhc3N3b3JkIgorICAgICAgICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24ucGFzc3dvcmQiLz4KKyAgICAgICAgPHM6bGFiZWwga2V5PSJtYWlsU2VydmVyVHlwZSIKKyAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnR5cGUiLz4KKyAgICAgICAgPHM6bGFiZWwga2V5PSJhdXRvQ29ubmVjdCIKKyAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLmF1dG9Db25uZWN0Ii8+CisgICAgICAgIDxzOnN1Ym1pdCBrZXk9ImJ1dHRvbi5jb25maXJtIi8+CisgICAgPC9zOmlmPgorICAgIDxzOmVsc2U+CisgICAgICAgIDxzOnRleHRmaWVsZCBrZXk9Im1haWxVc2VybmFtZSIKKyAgICAgICAgICAgICAgICAgICAgIG5hbWU9InN1YnNjcmlwdGlvbi51c2VybmFtZSIvPgorICAgICAgICA8czp0ZXh0ZmllbGQga2V5PSJtYWlsUGFzc3dvcmQiCisgICAgICAgICAgICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24ucGFzc3dvcmQiLz4KKyAgICAgICAgPHM6c2VsZWN0IGtleT0ibWFpbFNlcnZlclR5cGUiCisgICAgICAgICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24udHlwZSIgbGlzdD0idHlwZXMiLz4KKyAgICAgICAgPHM6Y2hlY2tib3gga2V5PSJhdXRvQ29ubmVjdCIKKyAgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLmF1dG9Db25uZWN0Ii8+CisgICAgICAgIDxzOnN1Ym1pdCBrZXk9ImJ1dHRvbi5zYXZlIi8+CisgICAgICAgIDxzOnJlc2V0IGtleT0iYnV0dG9uLnJlc2V0Ii8+CisgICAgPC9zOmVsc2U+CisKKyAgICA8czpzdWJtaXQgYWN0aW9uPSJSZWdpc3RlciIKKyAgICAgICAgICAgICAga2V5PSJidXR0b24uY2FuY2VsIgorICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4KKzwvczpmb3JtPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2Jyb3dzZS9zcmMvd2ViYXBwL3BhZ2VzL1dlbGNvbWUuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjczNWJmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9icm93c2Uvc3JjL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcApAQCAtMCwwICsxLDUwIEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+CisgICAgPHRpdGxlPgorICAgICAgICA8czp0ZXh0IG5hbWU9ImluZGV4LnRpdGxlIi8+CisgICAgPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDM+TWFpbFJlYWRlciBPcHRpb25zPC9oMz4KKworPHVsPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJSZWdpc3RlciIvPiI+CisgICAgICAgIDxzOnRleHQKKyAgICAgICAgICAgICAgICBuYW1lPSJpbmRleC5yZWdpc3RyYXRpb24iLz4KKyAgICA8L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iTG9naW4iLz4iPgorICAgICAgICA8czp0ZXh0CisgICAgICAgICAgICAgICAgbmFtZT0iaW5kZXgubG9naW4iLz4KKyAgICA8L2E+PC9saT4KKzwvdWw+CisKKzxoMz5MYW5ndWFnZSBPcHRpb25zPC9oMz4KKzx1bD4KKyAgICA8bGk+CisgICAgICAgIDxzOnVybCBpZD0iZW4iIGFjdGlvbj0iV2VsY29tZSI+CisgICAgICAgICAgICA8czpwYXJhbSBuYW1lPSJyZXF1ZXN0X2xvY2FsZSI+ZW48L3M6cGFyYW0+CisgICAgICAgIDwvczp1cmw+CisgICAgICAgIDxzOmEgaHJlZj0iJXtlbn0iPkVuZ2xpc2g8L3M6YT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgICAgPHM6dXJsIGlkPSJqYSIgYWN0aW9uPSJXZWxjb21lIj4KKyAgICAgICAgICAgIDxzOnBhcmFtIG5hbWU9InJlcXVlc3RfbG9jYWxlIj5qYTwvczpwYXJhbT4KKyAgICAgICAgPC9zOnVybD4KKyAgICAgICAgPHM6YSBocmVmPSIle2phfSI+SmFwYW5lc2U8L3M6YT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgICAgPHM6dXJsIGlkPSJydSIgYWN0aW9uPSJXZWxjb21lIj4KKyAgICAgICAgICAgIDxzOnBhcmFtIG5hbWU9InJlcXVlc3RfbG9jYWxlIj5ydTwvczpwYXJhbT4KKyAgICAgICAgPC9zOnVybD4KKyAgICAgICAgPHM6YSBocmVmPSIle3J1fSI+UnVzc2lhbjwvczphPgorICAgIDwvbGk+Cis8L3VsPgorPGhyLz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvaGVsbG8vTUVUQS1JTkYvY29udGV4dC54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2hlbGxvL01FVEEtSU5GL2NvbnRleHQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMGI1ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2hlbGxvL01FVEEtSU5GL2NvbnRleHQueG1sCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxDb250ZXh0IHBhdGg9Ii8iPgorPC9Db250ZXh0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9oZWxsby9oZWxsby5pbWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2hlbGxvL2hlbGxvLmltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGRhZDc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9oZWxsby9oZWxsby5pbWwKQEAgLTAsMCArMSw1OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8bW9kdWxlIHZlcnNpb249IjQiIHJlbGF0aXZlUGF0aHM9InRydWUiIHR5cGU9IkoyRUVfV0VCX01PRFVMRSIgajJlZS1pbnRlZ3JhdGlvbj0iVG9tY2F0IFNlcnZlciI+DQorICA8Y29tcG9uZW50IG5hbWU9IkFwcFNlcnZlclNwZWNpZmljVmFsaWRhdG9yc01hbmFnZXIiIC8+DQorICA8Y29tcG9uZW50IG5hbWU9Ik1vZHVsZVJvb3RNYW5hZ2VyIiAvPg0KKyAgPGNvbXBvbmVudCBuYW1lPSJOZXdNb2R1bGVSb290TWFuYWdlciIgaW5oZXJpdC1jb21waWxlci1vdXRwdXQ9ImZhbHNlIj4NCisgICAgPG91dHB1dCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvaGVsbG8vV0VCLUlORi9jbGFzc2VzIiAvPg0KKyAgICA8ZXhjbHVkZS1vdXRwdXQgLz4NCisgICAgPGV4cGxvZGVkIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy9oZWxsbyIgLz4NCisgICAgPGV4Y2x1ZGUtZXhwbG9kZWQgLz4NCisgICAgPGNvbnRlbnQgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkIj4NCisgICAgICA8c291cmNlRm9sZGVyIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvamF2YSIgaXNUZXN0U291cmNlPSJmYWxzZSIgLz4NCisgICAgICA8c291cmNlRm9sZGVyIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvdGVzdCIgaXNUZXN0U291cmNlPSJ0cnVlIiAvPg0KKyAgICA8L2NvbnRlbnQ+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImluaGVyaXRlZEpkayIgLz4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ic291cmNlRm9sZGVyIiBmb3JUZXN0cz0iZmFsc2UiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImxpYnJhcnkiIG5hbWU9IlN0cnV0czIiIGxldmVsPSJwcm9qZWN0IiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJNYWlscmVhZGVyLWRhbyIgbGV2ZWw9InByb2plY3QiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iIC8+DQorICAgIDxvcmRlckVudHJ5UHJvcGVydGllcyAvPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IldlYk1vZHVsZUJ1aWxkQ29tcG9uZW50Ij4NCisgICAgPHNldHRpbmcgbmFtZT0iRVhQTE9ERURfVVJMIiB2YWx1ZT0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy9oZWxsbyIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iRVhQTE9ERURfRU5BQkxFRCIgdmFsdWU9InRydWUiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkpBUl9VUkwiIHZhbHVlPSJmaWxlOi8vIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJKQVJfRU5BQkxFRCIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJTWU5DX0VYUExPREVEX0RJUiIgdmFsdWU9InRydWUiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkJVSUxEX01PRFVMRV9PTl9GUkFNRV9ERUFDVElWQVRJT04iIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iQlVJTERfRVhURVJOQUxfREVQRU5ERU5DSUVTIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IlJVTl9KQVNQRVJfVkFMSURBVElPTiIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IldlYk1vZHVsZVByb3BlcnRpZXMiPg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIj4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjAiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSImbHQ7Ti9BJmd0OyIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJNYWlscmVhZGVyLWRhbyIgbGV2ZWw9InByb2plY3QiPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMSIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9Ii9XRUItSU5GL2xpYiIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJTdHJ1dHMyIiBsZXZlbD0icHJvamVjdCI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSJ3ZWIueG1sIiB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwiIG9wdGlvbmFsPSJmYWxzZSIgdmVyc2lvbj0iMi4zIiAvPg0KKyAgICA8ZGVwbG95bWVudERlc2NyaXB0b3IgbmFtZT0iY29udGV4dC54bWwiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9NRVRBLUlORi9jb250ZXh0LnhtbCIgb3B0aW9uYWw9ImZhbHNlIiB2ZXJzaW9uPSI1LngiIC8+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSIiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9NRVRBLUlORi9jb250ZXh0LnhtbCIgb3B0aW9uYWw9ImZhbHNlIj4NCisgICAgICA8b3B0aW9uIG5hbWU9IkRFRkFVTFRfRElSIiB2YWx1ZT0iV0VCLUlORiIgLz4NCisgICAgICA8b3B0aW9uIG5hbWU9Ik5BTUUiIHZhbHVlPSIiIC8+DQorICAgICAgPG9wdGlvbiBuYW1lPSJERVNDUklQVElPTiIgdmFsdWU9IiIgLz4NCisgICAgPC9kZXBsb3ltZW50RGVzY3JpcHRvcj4NCisgICAgPHdlYnJvb3RzPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvd2ViYXBwIiByZWxhdGl2ZT0iLyIgLz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL2phdmEiIHJlbGF0aXZlPSIvV0VCLUlORi9zcmMvamF2YSIgLz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3Rlc3QiIHJlbGF0aXZlPSIvV0VCLUlORi9zcmMvdGVzdCIgLz4NCisgICAgPC93ZWJyb290cz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJsb2dpY1dlYk1vZHVsZVByb3BlcnRpZXMiIC8+DQorPC9tb2R1bGU+DQorDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9oZWxsby9zcmMvamF2YS9IZWxsby5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9oZWxsby9zcmMvamF2YS9IZWxsby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczYmFlODcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2hlbGxvL3NyYy9qYXZhL0hlbGxvLmphdmEKQEAgLTAsMCArMSwxNiBAQAoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvblN1cHBvcnQ7CisKKy8qKgorICogRXhhbXBsZSBBY3Rpb24gY2xhc3MKKyAqLworcHVibGljIGNsYXNzIEhlbGxvIGV4dGVuZHMgQWN0aW9uU3VwcG9ydCB7CisKKyAgICAvKioKKyAgICAgKiBBbiBleGFtcGxlIGltcGxlbWVudGF0aW9uIHRoYXQgZG9lcyBub3RoaW5nIGFuIHJldHVybnMgInN1Y2Nlc3MiLgorICAgICAqCisgICAgICogQHJldHVybiB7QGxpbmsgI1NVQ0NFU1N9CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvaGVsbG8vc3JjL2phdmEvcmVzb3VyY2VzLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2hlbGxvL3NyYy9qYXZhL3Jlc291cmNlcy5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmYWFlYzcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2hlbGxvL3NyYy9qYXZhL3Jlc291cmNlcy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMiBAQAoraGVsbG8ubWVzc2FnZSA9IENvbmdyYXR1bGF0aW9ucyEgU3RydXRzIGlzIHVwIGFuZCBydW5uaW5nIC4uLgorIyBBZGQgeW91ciBtZXNzYWdlcyBoZXJlIC4uLgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9oZWxsby9zcmMvamF2YS9zdHJ1dHMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvaGVsbG8vc3JjL2phdmEvc3RydXRzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVjODEzNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvaGVsbG8vc3JjL2phdmEvc3RydXRzLnByb3BlcnRpZXMKQEAgLTAsMCArMSBAQAorc3RydXRzLmN1c3RvbS5pMThuLnJlc291cmNlcz1yZXNvdXJjZXMNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2hlbGxvL3NyYy9qYXZhL3N0cnV0cy54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2hlbGxvL3NyYy9qYXZhL3N0cnV0cy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmYxNDIxZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvaGVsbG8vc3JjL2phdmEvc3RydXRzLnhtbApAQCAtMCwwICsxLDIxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4KKzwhRE9DVFlQRSBzdHJ1dHMgUFVCTElDCisgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDIuMC8vRU4iCisgICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtMi4wLmR0ZCI+CisKKzxzdHJ1dHM+CisgICAgPGNvbnN0YW50IG5hbWU9InN0cnV0cy5kZXZNb2RlIiB2YWx1ZT0idHJ1ZSIvPgorICAgIDxjb25zdGFudCBuYW1lPSJzdHJ1dHMuZW5hYmxlLkR5bmFtaWNNZXRob2RJbnZvY2F0aW9uIiB2YWx1ZT0iZmFsc2UiLz4KKworICAgIDxwYWNrYWdlIG5hbWU9ImRlZmF1bHQiIGV4dGVuZHM9InN0cnV0cy1kZWZhdWx0Ij4KKworICAgICAgICA8ZGVmYXVsdC1hY3Rpb24tcmVmIG5hbWU9IkhlbGxvIi8+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJIZWxsbyIgY2xhc3M9IkhlbGxvIj4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL0hlbGxvLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8IS0tIEFkZCB5b3VyIGFjdGlvbnMgaGVyZSAtLT4KKyAgICA8L3BhY2thZ2U+CisKKzwvc3RydXRzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9oZWxsby9zcmMvdGVzdC9IZWxsb1Rlc3QuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvaGVsbG8vc3JjL3Rlc3QvSGVsbG9UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBkZWJmNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvaGVsbG8vc3JjL3Rlc3QvSGVsbG9UZXN0LmphdmEKQEAgLTAsMCArMSwxNiBAQAoraW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKKworLyoqCisgKiBBbiBleGFtcGxlIHRleHQgY2xhc3MgdG8gdmVyaWZ5IHRoZSBjb25maWd1cmF0aW9uLgorICovCitwdWJsaWMgY2xhc3MgSGVsbG9UZXN0IGV4dGVuZHMgVGVzdENhc2UgeworCisgICAgLyoqCisgICAgICogQW4gZXhhbXBsZSB0ZXN0IHRoYXQgYXNzZXJ0cyB0cnVlLgorICAgICAqCisgICAgICogQHRocm93cyBFeGNlcHRpb24gT24gaW52YWxpZCBhc3NlcnRpb25zCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEhlbGxvQWN0aW9uKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGFzc2VydFRydWUodHJ1ZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9oZWxsby9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvaGVsbG8vc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY2MGY5NQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvaGVsbG8vc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIHdlYi1hcHAgUFVCTElDICItLy9TdW4gTWljcm9zeXN0ZW1zLCBJbmMuLy9EVEQgV2ViIEFwcGxpY2F0aW9uIDIuMy8vRU4iICJodHRwOi8vamF2YS5zdW4uY29tL2R0ZC93ZWItYXBwXzJfMy5kdGQiPgorPHdlYi1hcHA+CisKKyAgICA8ZGlzcGxheS1uYW1lPlN0cnV0cyAyIE1haWxyZWFkZXI8L2Rpc3BsYXktbmFtZT4KKworICAgIDxmaWx0ZXI+CisgICAgICAgIDxmaWx0ZXItbmFtZT5TdHJ1dHMyPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPGZpbHRlci1jbGFzcz4KKyAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzMi5kaXNwYXRjaGVyLkZpbHRlckRpc3BhdGNoZXIKKyAgICAgICAgPC9maWx0ZXItY2xhc3M+CisgICAgPC9maWx0ZXI+CisKKyAgICA8ZmlsdGVyLW1hcHBpbmc+CisgICAgICAgIDxmaWx0ZXItbmFtZT5TdHJ1dHMyPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPHVybC1wYXR0ZXJuPi8qPC91cmwtcGF0dGVybj4KKyAgICA8L2ZpbHRlci1tYXBwaW5nPgorCisgICAgPHdlbGNvbWUtZmlsZS1saXN0PgorICAgICAgICA8d2VsY29tZS1maWxlPmluZGV4Lmh0bWw8L3dlbGNvbWUtZmlsZT4KKyAgICA8L3dlbGNvbWUtZmlsZS1saXN0PgorCis8L3dlYi1hcHA+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2hlbGxvL3NyYy93ZWJhcHAvaW5kZXguaHRtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvaGVsbG8vc3JjL3dlYmFwcC9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZDk4NTQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2hlbGxvL3NyYy93ZWJhcHAvaW5kZXguaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8TUVUQSBIVFRQLUVRVUlWPSJSZWZyZXNoIiBDT05URU5UPSIwO1VSTD1IZWxsby5hY3Rpb24iPgorPC9oZWFkPgorCis8Ym9keT4KKzxwPkxvYWRpbmcgLi4uPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9oZWxsby9zcmMvd2ViYXBwL3BhZ2VzL0hlbGxvLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvaGVsbG8vc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU5ZDg3YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvaGVsbG8vc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AKQEAgLTAsMCArMSwxMiBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+SGVsbG88L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxoMj4KKyAgICA8czp0ZXh0IG5hbWU9ImhlbGxvLm1lc3NhZ2UiLz4KKzwvaDI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL01FVEEtSU5GL2NvbnRleHQueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9NRVRBLUlORi9jb250ZXh0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBiNWQwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9NRVRBLUlORi9jb250ZXh0LnhtbApAQCAtMCwwICsxLDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Q29udGV4dCBwYXRoPSIvIj4KKzwvQ29udGV4dD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvbG9jYWxpemUuaW1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9sb2NhbGl6ZS5pbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZjNzM3MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvbG9jYWxpemUuaW1sCkBAIC0wLDAgKzEsNjggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPG1vZHVsZSB2ZXJzaW9uPSI0IiByZWxhdGl2ZVBhdGhzPSJ0cnVlIiB0eXBlPSJKMkVFX1dFQl9NT0RVTEUiIGoyZWUtaW50ZWdyYXRpb249IlRvbWNhdCBTZXJ2ZXIiPg0KKyAgPGNvbXBvbmVudCBuYW1lPSJBcHBTZXJ2ZXJTcGVjaWZpY1ZhbGlkYXRvcnNNYW5hZ2VyIiAvPg0KKyAgPGNvbXBvbmVudCBuYW1lPSJNb2R1bGVSb290TWFuYWdlciIgLz4NCisgIDxjb21wb25lbnQgbmFtZT0iTmV3TW9kdWxlUm9vdE1hbmFnZXIiIGluaGVyaXQtY29tcGlsZXItb3V0cHV0PSJmYWxzZSI+DQorICAgIDxvdXRwdXQgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkLy4uLy4uLy4uLy4uLy4uLy4uLy4uL29wdC9BcGFjaGUvVG9tY2F0LTUuNS93ZWJhcHBzL2xvY2FsaXplL1dFQi1JTkYvY2xhc3NlcyIgLz4NCisgICAgPGV4Y2x1ZGUtb3V0cHV0IC8+DQorICAgIDxleHBsb2RlZCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvbG9jYWxpemUiIC8+DQorICAgIDxleGNsdWRlLWV4cGxvZGVkIC8+DQorICAgIDxjb250ZW50IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJCI+DQorICAgICAgPHNvdXJjZUZvbGRlciB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL2phdmEiIGlzVGVzdFNvdXJjZT0iZmFsc2UiIC8+DQorICAgICAgPHNvdXJjZUZvbGRlciB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3Rlc3QiIGlzVGVzdFNvdXJjZT0idHJ1ZSIgLz4NCisgICAgPC9jb250ZW50Pg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJpbmhlcml0ZWRKZGsiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9InNvdXJjZUZvbGRlciIgZm9yVGVzdHM9ImZhbHNlIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJTdHJ1dHMyIiBsZXZlbD0icHJvamVjdCIgLz4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ibGlicmFyeSIgbmFtZT0iTWFpbHJlYWRlci1kYW8iIGxldmVsPSJwcm9qZWN0IiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJzZXJ2bGV0LWFwaSIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeVByb3BlcnRpZXMgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJNb2R1bGVCdWlsZENvbXBvbmVudCI+DQorICAgIDxzZXR0aW5nIG5hbWU9IkVYUExPREVEX1VSTCIgdmFsdWU9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvbG9jYWxpemUiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkVYUExPREVEX0VOQUJMRUQiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJKQVJfVVJMIiB2YWx1ZT0iZmlsZTovLyIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iSkFSX0VOQUJMRUQiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iU1lOQ19FWFBMT0RFRF9ESVIiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJCVUlMRF9NT0RVTEVfT05fRlJBTUVfREVBQ1RJVkFUSU9OIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkJVSUxEX0VYVEVSTkFMX0RFUEVOREVOQ0lFUyIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJSVU5fSkFTUEVSX1ZBTElEQVRJT04iIHZhbHVlPSJmYWxzZSIgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJNb2R1bGVQcm9wZXJ0aWVzIj4NCisgICAgPGNvbnRhaW5lckVsZW1lbnQgdHlwZT0ibGlicmFyeSIgbmFtZT0ianVuaXQiIGxldmVsPSJhcHBsaWNhdGlvbiI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMCIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9IiZsdDtOL0EmZ3Q7IiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Ik1haWxyZWFkZXItZGFvIiBsZXZlbD0icHJvamVjdCI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9InNlcnZsZXQtYXBpIiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMCIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9IiZsdDtOL0EmZ3Q7IiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9IlN0cnV0czIiIGxldmVsPSJwcm9qZWN0Ij4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjEiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSIvV0VCLUlORi9saWIiIC8+DQorICAgIDwvY29udGFpbmVyRWxlbWVudD4NCisgICAgPGRlcGxveW1lbnREZXNjcmlwdG9yIG5hbWU9IndlYi54bWwiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbCIgb3B0aW9uYWw9ImZhbHNlIiB2ZXJzaW9uPSIyLjMiIC8+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSJjb250ZXh0LnhtbCIgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL01FVEEtSU5GL2NvbnRleHQueG1sIiBvcHRpb25hbD0iZmFsc2UiIHZlcnNpb249IjUueCIgLz4NCisgICAgPGRlcGxveW1lbnREZXNjcmlwdG9yIG5hbWU9IiIgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL01FVEEtSU5GL2NvbnRleHQueG1sIiBvcHRpb25hbD0iZmFsc2UiPg0KKyAgICAgIDxvcHRpb24gbmFtZT0iREVGQVVMVF9ESVIiIHZhbHVlPSJXRUItSU5GIiAvPg0KKyAgICAgIDxvcHRpb24gbmFtZT0iTkFNRSIgdmFsdWU9IiIgLz4NCisgICAgICA8b3B0aW9uIG5hbWU9IkRFU0NSSVBUSU9OIiB2YWx1ZT0iIiAvPg0KKyAgICA8L2RlcGxveW1lbnREZXNjcmlwdG9yPg0KKyAgICA8d2Vicm9vdHM+DQorICAgICAgPHJvb3QgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL3NyYy93ZWJhcHAiIHJlbGF0aXZlPSIvIiAvPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvamF2YSIgcmVsYXRpdmU9Ii9XRUItSU5GL3NyYy9qYXZhIiAvPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvdGVzdCIgcmVsYXRpdmU9Ii9XRUItSU5GL3NyYy90ZXN0IiAvPg0KKyAgICA8L3dlYnJvb3RzPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IldlYmxvZ2ljV2ViTW9kdWxlUHJvcGVydGllcyIgLz4NCis8L21vZHVsZT4NCisNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy9qYXZhL0RhdGFiYXNlTGlzdGVuZXIuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvRGF0YWJhc2VMaXN0ZW5lci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmYTY0ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy9qYXZhL0RhdGFiYXNlTGlzdGVuZXIuamF2YQpAQCAtMCwwICsxLDIzMCBAQAorLyoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDIsMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqICRJZDogQXBwbGljYXRpb25MaXN0ZW5lci5qYXZhIDM3MjA4NyAyMDA2LTAxLTI1IDAzOjM4OjQyWiBjcmFpZ21jYyAkCisgKi8KKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uaW1wbC5tZW1vcnkuTWVtb3J5VXNlckRhdGFiYXNlOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0RXZlbnQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dExpc3RlbmVyOworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiA8cD48Y29kZT5TZXJ2bGV0Q29udGV4dExpc3RlbmVyPC9jb2RlPiB0aGF0IGluaXRpYWxpemVzIGFuZCBmaW5hbGl6ZXMgdGhlCisgKiBwZXJzaXN0ZW50IHN0b3JhZ2Ugb2YgVXNlciBhbmQgU3Vic2NyaXB0aW9uIGluZm9ybWF0aW9uIGZvciB0aGUgU3RydXRzCisgKiBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uLCB1c2luZyBhbiBpbi1tZW1vcnkgZGF0YWJhc2UgYmFja2VkIGJ5IGFuIFhNTAorICogZmlsZS48L3A+CisgKiA8cC8+CisgKiA8cD48c3Ryb25nPklNUExFTUVOVEFUSU9OIFdBUk5JTkc8L3N0cm9uZz4gLSBJZiB0aGlzIHdlYiBhcHBsaWNhdGlvbiBpcyBydW4KKyAqIGZyb20gYSBXQVIgZmlsZSwgb3IgaW4gYW5vdGhlciBlbnZpcm9ubWVudCB3aGVyZSByZWFkaW5nIGFuZCB3cml0aW5nIG9mIHRoZQorICogd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIGlzIGltcG9zc2libGUsIHRoZSBpbml0aWFsIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkCisgKiB0byBhIGZpbGUgaW4gdGhlIHdlYiBhcHBsaWNhdGlvbiB0ZW1wb3JhcnkgZGlyZWN0b3J5IHByb3ZpZGVkIGJ5IHRoZQorICogY29udGFpbmVyLiAgVGhpcyBpcyBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlcyBvbmx5IC0geW91IHNob3VsZAorICogPHN0cm9uZz5OT1Q8L3N0cm9uZz4gYXNzdW1lIHRoYXQgZmlsZXMgd3JpdHRlbiBoZXJlIHdpbGwgc3Vydml2ZSBhIHJlc3RhcnQKKyAqIG9mIHlvdXIgc2VydmxldCBjb250YWluZXIuPC9wPgorICogPHAvPgorICogPHA+VGhpcyBjbGFzcyB3YXMgYm9ycm93ZWQgZnJvbSB0aGUgU2hhbGUgTWFpbHJlYWRlci4gQ2hhbmdlcyB3ZXJlOjwvcD4KKyAqIDxwLz4KKyAqIDx1bD4KKyAqIDxwLz4KKyAqIDxsaT5QYXRoIHRvIGRhdGFiYXNlLnhtbCAodW5kZXIgY2xhc3NlcyBoZXJlKS4gPC9saT4KKyAqIDxwLz4KKyAqIDxsaT5DbGFzcyB0byBzdG9yZSBwcm90b2NvbCBsaXN0IChhbiBhcnJheSBoZXJlKS4gPC9saT4KKyAqIDxwLz4KKyAqIDwvdWw+CisgKiA8cC8+CisgKiBERVZFTE9QTUVOVCBOT1RFIC0gQW5vdGhlciBhcHByb2FjaCB3b3VsZCBiZSB0byBpbnN0YW50aWF0ZSB0aGUgZGF0YWJhc2UgdmlhIFNwcmluZy4KKyAqIDwvcD4KKyAqLworCitwdWJsaWMgZmluYWwgY2xhc3MgRGF0YWJhc2VMaXN0ZW5lciBpbXBsZW1lbnRzIFNlcnZsZXRDb250ZXh0TGlzdGVuZXIgeworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1hbmlmZXN0IENvbnN0YW50cworCisKKyAgICAvKioKKyAgICAgKiA8cD5BcHBpY2F0aW9uIHNjb3BlIGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggdGhlIGluLW1lbW9yeSB2ZXJzaW9uIG9mCisgICAgICogb3VyIGRhdGFiYXNlIGlzIHN0b3JlZC48L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQUJBU0VfS0VZID0gImRhdGFiYXNlIjsKKworCisgICAgLyoqCisgICAgICogPHA+QXBwbGljYXRpb24gc2NvcGUgYXR0cmlidXRlIGtleSB1bmRlciB3aGljaCB0aGUgdmFsaWQgc2VsZWN0aW9uCisgICAgICogaXRlbXMgZm9yIHRoZSBwcm90b2NvbCBwcm9wZXJ0eSBpcyBzdG9yZWQuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBST1RPQ09MU19LRVkgPSAicHJvdG9jb2xzIjsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJbnN0YW5jZSBWYXJpYWJsZXMKKworCisgICAgLyoqCisgICAgICogPHA+VGhlIDxjb2RlPlNlcnZsZXRDb250ZXh0PC9jb2RlPiBmb3IgdGhpcyB3ZWIgYXBwbGljYXRpb24uPC9wPgorICAgICAqLworICAgIHByaXZhdGUgU2VydmxldENvbnRleHQgY29udGV4dCA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIFRoZSB7QGxpbmsgTWVtb3J5VXNlckRhdGFiYXNlfSBvYmplY3Qgd2UgY29uc3RydWN0IGFuZCBtYWtlIGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIE1lbW9yeVVzZXJEYXRhYmFzZSBkYXRhYmFzZSA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIDxwPkxvZ2dpbmcgb3V0cHV0IGZvciB0aGlzIHBsdWcgaW4gaW5zdGFuY2UuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgTG9nIGxvZyA9IExvZ0ZhY3RvcnkuZ2V0TG9nKHRoaXMuZ2V0Q2xhc3MoKSk7CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3BlcnRpZXMKKworCisgICAgLyoqCisgICAgICogPHA+VGhlIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIG9mIG91ciBwZXJzaXN0ZW50IGRhdGFiYXNlIHN0b3JhZ2UKKyAgICAgKiBmaWxlLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXRobmFtZSA9ICIvV0VCLUlORi9jbGFzc2VzL2RhdGFiYXNlLnhtbCI7CisKKyAgICAvKioKKyAgICAgKiA8cD5SZXR1cm4gdGhlIGFwcGxpY2F0aW9uIHJlc291cmNlIHBhdGggdG8gdGhlIGRhdGFiYXNlLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCBwYXRoIHRvIHRoZSBkYXRhYmFzZQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGF0aG5hbWUoKSB7CisgICAgICAgIHJldHVybiAodGhpcy5wYXRobmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0IHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIHRvIHRoZSBkYXRhYmFzZS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0aG5hbWUgdG8gdGhlIGRhdGFiYXNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGF0aG5hbWUoU3RyaW5nIHBhdGhuYW1lKSB7CisgICAgICAgIHRoaXMucGF0aG5hbWUgPSBwYXRobmFtZTsKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2VydmxldENvbnRleHRMaXN0ZW5lciBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIDxwPkdyYWNlZnVsbHkgc2h1dCBkb3duIHRoaXMgZGF0YWJhc2UsIHJlbGVhc2luZyBhbnkgcmVzb3VyY2VzIHRoYXQKKyAgICAgKiB3ZXJlIGFsbG9jYXRlZCBhdCBpbml0aWFsaXphdGlvbi48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZXZlbnQgU2VydmxldENvbnRleHRFdmVudCB0byBwcm9jZXNzCisgICAgICovCisgICAgcHVibGljIHZvaWQgY29udGV4dERlc3Ryb3llZChTZXJ2bGV0Q29udGV4dEV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgbG9nLmluZm8oIkZpbmFsaXppbmcgbWVtb3J5IGRhdGFiYXNlIHBsdWcgaW4iKTsKKworICAgICAgICBpZiAoZGF0YWJhc2UgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBkYXRhYmFzZS5jbG9zZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2cuZXJyb3IoIkNsb3NpbmcgbWVtb3J5IGRhdGFiYXNlIiwgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBjb250ZXh0LnJlbW92ZUF0dHJpYnV0ZShEQVRBQkFTRV9LRVkpOworICAgICAgICBjb250ZXh0LnJlbW92ZUF0dHJpYnV0ZShQUk9UT0NPTFNfS0VZKTsKKyAgICAgICAgZGF0YWJhc2UgPSBudWxsOworICAgICAgICBjb250ZXh0ID0gbnVsbDsKKworICAgIH0KKworCisgICAgLyoqCisgICAgICogPHA+SW5pdGlhbGl6ZSBhbmQgbG9hZCBvdXIgaW5pdGlhbCBkYXRhYmFzZSBmcm9tIHBlcnNpc3RlbnQKKyAgICAgKiBzdG9yYWdlLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBldmVudCBUaGUgY29udGV4dCBpbml0aWFsaXphdGlvbiBldmVudAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbnRleHRJbml0aWFsaXplZChTZXJ2bGV0Q29udGV4dEV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgbG9nLmluZm8oIkluaXRpYWxpemluZyBtZW1vcnkgZGF0YWJhc2UgcGx1ZyBpbiBmcm9tICciICsKKyAgICAgICAgICAgICAgICBwYXRobmFtZSArICInIik7CisKKyAgICAgICAgLy8gUmVtZW1iZXIgb3VyIGFzc29jaWF0ZWQgU2VydmxldENvbnRleHQKKyAgICAgICAgdGhpcy5jb250ZXh0ID0gZXZlbnQuZ2V0U2VydmxldENvbnRleHQoKTsKKworICAgICAgICAvLyBDb25zdHJ1Y3QgYSBuZXcgZGF0YWJhc2UgYW5kIG1ha2UgaXQgYXZhaWxhYmxlCisgICAgICAgIGRhdGFiYXNlID0gbmV3IE1lbW9yeVVzZXJEYXRhYmFzZSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nIHBhdGggPSBjYWxjdWxhdGVQYXRoKCk7CisgICAgICAgICAgICBpZiAobG9nLmlzRGVidWdFbmFibGVkKCkpIHsKKyAgICAgICAgICAgICAgICBsb2cuZGVidWcoIiBMb2FkaW5nIGRhdGFiYXNlIGZyb20gJyIgKyBwYXRoICsgIiciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRhdGFiYXNlLnNldFBhdGhuYW1lKHBhdGgpOworICAgICAgICAgICAgZGF0YWJhc2Uub3BlbigpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nLmVycm9yKCJPcGVuaW5nIG1lbW9yeSBkYXRhYmFzZSIsIGUpOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ2Fubm90IGxvYWQgZGF0YWJhc2UgZnJvbSAnIiArCisgICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lICsgIic6ICIgKyBlKTsKKyAgICAgICAgfQorICAgICAgICBjb250ZXh0LnNldEF0dHJpYnV0ZShEQVRBQkFTRV9LRVksIGRhdGFiYXNlKTsKKworICAgIH0KKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByaXZhdGUgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiA8cD5DYWxjdWxhdGUgYW5kIHJldHVybiBhbiBhYnNvbHV0ZSBwYXRobmFtZSB0byB0aGUgWE1MIGZpbGUgdG8gY29udGFpbgorICAgICAqIG91ciBwZXJzaXN0ZW50IHN0b3JhZ2UgaW5mb3JtYXRpb24uPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBBYnNvbHV0ZSBwYXRoIHRvIFhNTCBmaWxlLgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBjYWxjdWxhdGVQYXRoKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gQ2FuIHdlIGFjY2VzcyB0aGUgZGF0YWJhc2UgdmlhIGZpbGUgSS9PPworICAgICAgICBTdHJpbmcgcGF0aCA9IGNvbnRleHQuZ2V0UmVhbFBhdGgocGF0aG5hbWUpOworICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gKHBhdGgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRG9lcyBhIGNvcHkgb2YgdGhpcyBmaWxlIGFscmVhZHkgZXhpc3QgaW4gb3VyIHRlbXBvcmFyeSBkaXJlY3RvcnkKKyAgICAgICAgRmlsZSBkaXIgPSAoRmlsZSkKKyAgICAgICAgICAgICAgICBjb250ZXh0LmdldEF0dHJpYnV0ZSgiamF2YXguc2VydmxldC5jb250ZXh0LnRlbXBkaXIiKTsKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoZGlyLCAic3RydXRzLWV4YW1wbGUtZGF0YWJhc2UueG1sIik7CisgICAgICAgIGlmIChmaWxlLmV4aXN0cygpKSB7CisgICAgICAgICAgICByZXR1cm4gKGZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29weSB0aGUgc3RhdGljIHJlc291cmNlIHRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHJldHVybiBpdHMgcGF0aAorICAgICAgICBJbnB1dFN0cmVhbSBpcyA9CisgICAgICAgICAgICAgICAgY29udGV4dC5nZXRSZXNvdXJjZUFzU3RyZWFtKHBhdGhuYW1lKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiaXMgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcywgMTAyNCk7CisgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gb3MgPQorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGUpOworICAgICAgICBCdWZmZXJlZE91dHB1dFN0cmVhbSBib3MgPSBuZXcgQnVmZmVyZWRPdXRwdXRTdHJlYW0ob3MsIDEwMjQpOworICAgICAgICBieXRlIGJ1ZmZlcltdID0gbmV3IGJ5dGVbMTAyNF07CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgbiA9IGJpcy5yZWFkKGJ1ZmZlcik7CisgICAgICAgICAgICBpZiAobiA8PSAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib3Mud3JpdGUoYnVmZmVyLCAwLCBuKTsKKyAgICAgICAgfQorICAgICAgICBib3MuY2xvc2UoKTsKKyAgICAgICAgYmlzLmNsb3NlKCk7CisgICAgICAgIHJldHVybiAoZmlsZS5nZXRBYnNvbHV0ZVBhdGgoKSk7CisKKyAgICB9CisKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9IZWxsby5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9IZWxsby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiZDM1MDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy9qYXZhL0hlbGxvLmphdmEKQEAgLTAsMCArMSwxNiBAQAoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvblN1cHBvcnQ7CisKKy8qKgorICogRXhhbXBsZSBBY3Rpb24gY2xhc3MuCisgKi8KK3B1YmxpYyBjbGFzcyBIZWxsbyBleHRlbmRzIEFjdGlvblN1cHBvcnQgeworCisgICAgLyoqCisgICAgICogQW4gZXhhbXBsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGRvZXMgbm90aGluZyBhbmQgcmV0dXJucyAic3VjY2VzcyIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHtAbGluayAjU1VDQ0VTU30KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9Mb2dpbi12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvTG9naW4tdmFsaWRhdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEwNGM3NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvTG9naW4tdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+DQorDQorPHZhbGlkYXRvcnM+DQorICAgIDxmaWVsZCBuYW1lPSJ1c2VybmFtZSI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIi8+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisgICAgPGZpZWxkIG5hbWU9InBhc3N3b3JkIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucGFzc3dvcmQucmVxdWlyZWQiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKzwvdmFsaWRhdG9ycz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy9qYXZhL0xvZ2luLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy9qYXZhL0xvZ2luLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZkZWIwOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvTG9naW4uamF2YQpAQCAtMCwwICsxLDIyIEBACitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5FeHBpcmVkUGFzc3dvcmRFeGNlcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworCitwdWJsaWMgY2xhc3MgTG9naW4gZXh0ZW5kcyBNYWlsUmVhZGVyU3VwcG9ydCB7CisKKyAgICBwdWJsaWMgU3RyaW5nIHNhdmUoKSB0aHJvd3MgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIHsKKworICAgICAgICBVc2VyIHVzZXIgPSBmaW5kVXNlcihnZXRVc2VybmFtZSgpLCBnZXRQYXNzd29yZCgpKTsKKworICAgICAgICBpZiAodXNlciAhPSBudWxsKSB7CisgICAgICAgICAgICBzZXRVc2VyKHVzZXIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGhhc0Vycm9ycygpKSB7CisgICAgICAgICAgICByZXR1cm4gSU5QVVQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gU1VDQ0VTUzsKKworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9Mb2dvdXQuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvTG9nb3V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYxN2YxMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvTG9nb3V0LmphdmEKQEAgLTAsMCArMSw5IEBACitwdWJsaWMgY2xhc3MgTG9nb3V0IGV4dGVuZHMgTWFpbFJlYWRlclN1cHBvcnQgeworCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgeworCisgICAgICAgIHNldFVzZXIobnVsbCk7CisKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9NYWlsUmVhZGVyU3VwcG9ydC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9NYWlsUmVhZGVyU3VwcG9ydC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmNDFkNTMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy9qYXZhL01haWxSZWFkZXJTdXBwb3J0LmphdmEKQEAgLTAsMCArMSwyMTQgQEAKK2ltcG9ydCBjb20ub3BlbnN5bXBob255LnV0aWwuQmVhblV0aWxzOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvblN1cHBvcnQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5FeHBpcmVkUGFzc3dvcmRFeGNlcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlckRhdGFiYXNlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5pbnRlcmNlcHRvci5BcHBsaWNhdGlvbkF3YXJlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5pbnRlcmNlcHRvci5TZXNzaW9uQXdhcmU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitwdWJsaWMgY2xhc3MgTWFpbFJlYWRlclN1cHBvcnQgZXh0ZW5kcyBBY3Rpb25TdXBwb3J0CisgICAgICAgIGltcGxlbWVudHMgQXBwbGljYXRpb25Bd2FyZSwgU2Vzc2lvbkF3YXJlIHsKKworICAgIC8vIC0tLS0gUmVnaXN0ZXIgZm9ybSBwcm9wZXJ0aWVzIC0tLS0KKworICAgIHByaXZhdGUgU3RyaW5nIHVzZXJuYW1lID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VXNlcm5hbWUoKSB7CisgICAgICAgIHJldHVybiB1c2VybmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVc2VybmFtZShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgdXNlcm5hbWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBwYXNzd29yZCA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkKCkgeworICAgICAgICByZXR1cm4gcGFzc3dvcmQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UGFzc3dvcmQoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHBhc3N3b3JkID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQyID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGFzc3dvcmQyKCkgeworICAgICAgICByZXR1cm4gcGFzc3dvcmQyOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFBhc3N3b3JkMihTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcGFzc3dvcmQyID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgZnVsbE5hbWUgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRGdWxsTmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGZ1bGxOYW1lOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEZ1bGxOYW1lKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBmdWxsTmFtZSA9IHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIGZyb21BZGRyZXNzID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RnJvbUFkZHJlc3MoKSB7CisgICAgICAgIHJldHVybiBmcm9tQWRkcmVzczsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRGcm9tQWRkcmVzcyhTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgZnJvbUFkZHJlc3MgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyByZXBseVRvQWRkcmVzcyA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFJlcGx5VG9BZGRyZXNzKCkgeworICAgICAgICByZXR1cm4gcmVwbHlUb0FkZHJlc3M7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UmVwbHlUb0FkZHJlc3MoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHJlcGx5VG9BZGRyZXNzID0gdmFsdWU7CisgICAgfQorCisgICAgLy8gLS0tLSBLZXlzIC0tLS0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFCQVNFX0tFWSA9ICJkYXRhYmFzZSI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBVU0VSX0tFWSA9ICJ1c2VyIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBBU1NXT1JEX01JU01BVENIX0ZJRUxEID0gInBhc3N3b3JkIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENBTkNFTCA9ICJjYW5jZWwiOworCisgICAgLy8gLS0tLSBNZXNzYWdlIEtleXMgLS0tLQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfREFUQUJBU0VfTUlTU0lORyA9CisgICAgICAgICAgICAiZXJyb3IuZGF0YWJhc2UubWlzc2luZyI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9VU0VSTkFNRV9VTklRVUUgPQorICAgICAgICAgICAgImVycm9yLnVzZXJuYW1lLnVuaXF1ZSI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9QQVNTV09SRF9NSVNNQVRDSCA9CisgICAgICAgICAgICAiZXJyb3IucGFzc3dvcmQubWlzbWF0Y2giOworCisgICAgLy8gLS0tLSBBcHBsaWNhdGlvbkF3YXJlIC0tLS0KKworICAgIHByaXZhdGUgTWFwIGFwcGxpY2F0aW9uOworCisgICAgcHVibGljIHZvaWQgc2V0QXBwbGljYXRpb24oTWFwIHZhbHVlKSB7CisgICAgICAgIGFwcGxpY2F0aW9uID0gdmFsdWU7CisgICAgfQorCisgICAgcHVibGljIE1hcCBnZXRBcHBsaWNhdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGFwcGxpY2F0aW9uOworICAgIH0KKworICAgIC8vIC0tLS0gRGF0YWJhc2UgcHJvcGVydHkgLS0tLQorCisgICAgcHVibGljIFVzZXJEYXRhYmFzZSBnZXREYXRhYmFzZSgpIHsKKyAgICAgICAgT2JqZWN0IGRiID0gZ2V0QXBwbGljYXRpb24oKS5nZXQoREFUQUJBU0VfS0VZKTsKKyAgICAgICAgaWYgKGRiID09IG51bGwpIHsKKyAgICAgICAgICAgIHRoaXMuYWRkQWN0aW9uRXJyb3IoZ2V0VGV4dChFUlJPUl9EQVRBQkFTRV9NSVNTSU5HKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChVc2VyRGF0YWJhc2UpIGRiOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldERhdGFiYXNlKFVzZXJEYXRhYmFzZSBkYXRhYmFzZSkgeworICAgICAgICBnZXRBcHBsaWNhdGlvbigpLnB1dChEQVRBQkFTRV9LRVksIGRhdGFiYXNlKTsKKyAgICB9CisKKyAgICAvLyAtLS0tIFNlc3Npb25Bd2FyZSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5GaWVsZCB0byBzdG9yZSBzZXNzaW9uIGNvbnRleHQsIG9yIGl0cyBwcm94eS48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgc2Vzc2lvbjsKKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIGEgbmV3IHNlc3Npb24gY29udGV4dC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgQSBNYXAgcmVwcmVzZW50aW5nIHNlc3Npb24gc3RhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZXNzaW9uKE1hcCB2YWx1ZSkgeworICAgICAgICBzZXNzaW9uID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSBzZXNzaW9uIGNvbnRleHQuPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBzZXNzaW9uIGNvbnRleHQKKyAgICAgKi8KKyAgICBwdWJsaWMgTWFwIGdldFNlc3Npb24oKSB7CisgICAgICAgIHJldHVybiBzZXNzaW9uOworICAgIH0KKworICAgIC8vIC0tLS0gVXNlciBwcm9wZXJ0eSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIHJlZmVyZW5jZSB0byBVc2VyIG9iamVjdCBmb3IgYXV0aGVudGljYXRlZCB1c2VyLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVXNlciBvYmplY3QgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVXNlciBnZXRVc2VyKCkgeworICAgICAgICByZXR1cm4gKFVzZXIpIGdldFNlc3Npb24oKS5nZXQoVVNFUl9LRVkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIG5ldyByZWZlcmVuY2UgdG8gVXNlciBPYmplY3QuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHVzZXIgVXNlciBvYmplY3QgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFVzZXIoVXNlciB1c2VyKSB7CisgICAgICAgIGdldFNlc3Npb24oKS5wdXQoVVNFUl9LRVksIHVzZXIpOworICAgIH0KKworICAgIC8vIC0tLS0gRGF0YWJhc2UgbWV0aG9kcyAtLS0tCisKKyAgICBwdWJsaWMgVXNlciBmaW5kVXNlcihTdHJpbmcgdXNlcm5hbWUsIFN0cmluZyBwYXNzd29yZCkKKyAgICAgICAgICAgIHRocm93cyBFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24geworCisgICAgICAgIFVzZXIgdXNlciA9IGdldERhdGFiYXNlKCkuZmluZFVzZXIodXNlcm5hbWUpOworCisgICAgICAgIGlmICgodXNlciAhPSBudWxsKSAmJiAhdXNlci5nZXRQYXNzd29yZCgpLmVxdWFscyhwYXNzd29yZCkpIHsKKyAgICAgICAgICAgIHVzZXIgPSBudWxsOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHVzZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgYWRkRmllbGRFcnJvcihQQVNTV09SRF9NSVNNQVRDSF9GSUVMRCwKKyAgICAgICAgICAgICAgICAgICAgZ2V0VGV4dChFUlJPUl9QQVNTV09SRF9NSVNNQVRDSCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHVzZXI7CisKKyAgICB9CisKKyAgICBwdWJsaWMgVXNlciBjcmVhdGVVc2VyKFN0cmluZyB1c2VybmFtZSwgU3RyaW5nIHBhc3N3b3JkKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBnZXREYXRhYmFzZSgpOworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5maW5kVXNlcih1c2VybmFtZSk7CisKKyAgICAgICAgaWYgKHVzZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgYWRkQWN0aW9uRXJyb3IoZ2V0VGV4dChFUlJPUl9VU0VSTkFNRV9VTklRVUUpKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgdXNlciA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIodXNlcm5hbWUpOworICAgICAgICBCZWFuVXRpbHMuc2V0VmFsdWVzKHVzZXIsIHRoaXMsIG51bGwpOworCisgICAgICAgIHJldHVybiB1c2VyOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNhdmVVc2VyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGdldERhdGFiYXNlKCkuc2F2ZSgpOworICAgIH0KKworICAgIC8vIC0tLS0gQWxpYXMgLS0tLQorCisgICAgcHVibGljIFN0cmluZyBjYW5jZWwoKSB7CisgICAgICAgIHJldHVybiBDQU5DRUw7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy9qYXZhL1JlZ2lzdGVyLXZhbGlkYXRpb24ueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9SZWdpc3Rlci12YWxpZGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2U2YTNhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9SZWdpc3Rlci12YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4KKworPHZhbGlkYXRvcnM+CisKKyAgICA8ZmllbGQgbmFtZT0idXNlcm5hbWUiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IudXNlcm5hbWUucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworICAgIDxmaWVsZCBuYW1lPSJmdWxsTmFtZSI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5mdWxsTmFtZS5yZXF1aXJlZCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCisgICAgPGZpZWxkIG5hbWU9ImZyb21BZGRyZXNzIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLmZyb21BZGRyZXNzLnJlcXVpcmVkIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9ImVtYWlsIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IuZnJvbUFkZHJlc3MuZm9ybWF0Ii8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKyAgICA8ZmllbGQgbmFtZT0icmVwbHlUb0FkZHJlc3MiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9ImVtYWlsIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucmVwbHlUb0FkZHJlc3MuZm9ybWF0Ii8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKyAgICA8ZmllbGQgbmFtZT0icGFzc3dvcmQiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucGFzc3dvcmQucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0ic3RyaW5nbGVuZ3RoIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJ0cmltIj50cnVlPC9wYXJhbT4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5MZW5ndGgiPjQ8L3BhcmFtPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1heExlbmd0aCI+MTA8L3BhcmFtPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5wYXNzd29yZC5taXNtYXRjaCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCisgICAgPGZpZWxkIG5hbWU9InBhc3N3b3JkMiI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5wYXNzd29yZDIucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworICAgIDx2YWxpZGF0b3IgdHlwZT0iZXhwcmVzc2lvbiI+CisgICAgICAgIDxwYXJhbSBuYW1lPSJleHByZXNzaW9uIj5wYXNzd29yZCBlcSBwYXNzd29yZDI8L3BhcmFtPgorICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnBhc3N3b3JkLm1pc21hdGNoIi8+CisgICAgPC92YWxpZGF0b3I+CisKKzwvdmFsaWRhdG9ycz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvUmVnaXN0ZXIuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvUmVnaXN0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzRhODUyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9SZWdpc3Rlci5qYXZhCkBAIC0wLDAgKzEsMjYgQEAKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworCitwdWJsaWMgY2xhc3MgUmVnaXN0ZXIgZXh0ZW5kcyBNYWlsUmVhZGVyU3VwcG9ydCB7CisKKyAgICBwdWJsaWMgU3RyaW5nIHNhdmUoKQorICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgVXNlciB1c2VyID0gZmluZFVzZXIoZ2V0VXNlcm5hbWUoKSwgZ2V0UGFzc3dvcmQoKSk7CisgICAgICAgIGJvb2xlYW4gaGF2ZVVzZXIgPSAodXNlciAhPSBudWxsKTsKKworICAgICAgICBpZiAoaGF2ZVVzZXIpIHsKKyAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKGdldFRleHQoRVJST1JfVVNFUk5BTUVfVU5JUVVFKSk7CisgICAgICAgICAgICByZXR1cm4gQWN0aW9uLklOUFVUOworICAgICAgICB9CisKKyAgICAgICAgdXNlciA9IGNyZWF0ZVVzZXIoZ2V0VXNlcm5hbWUoKSwgZ2V0UGFzc3dvcmQoKSk7CisKKyAgICAgICAgc2V0VXNlcih1c2VyKTsKKworICAgICAgICBzYXZlVXNlcigpOworCisgICAgICAgIHJldHVybiBBY3Rpb24uU1VDQ0VTUzsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvZGF0YWJhc2UueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9kYXRhYmFzZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJjODMzZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvZGF0YWJhc2UueG1sCkBAIC0wLDAgKzEsMTMgQEAKKzw/eG1sIHZlcnNpb249JzEuMCc/PgorPGRhdGFiYXNlPgorICAgIDx1c2VyIHVzZXJuYW1lPSJ1c2VyIiBmcm9tQWRkcmVzcz0iSm9obi5Vc2VyQHNvbWV3aGVyZS5jb20iCisgICAgICAgICAgZnVsbE5hbWU9IkpvaG4gUS4gVXNlciIgcGFzc3dvcmQ9InBhc3MiPgorICAgICAgICA8c3Vic2NyaXB0aW9uIGhvc3Q9Im1haWwuaG90bWFpbC5jb20iIGF1dG9Db25uZWN0PSJmYWxzZSIKKyAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZD0iYmFyIiB0eXBlPSJwb3AzIiB1c2VybmFtZT0idXNlcjEyMzQiPgorICAgICAgICA8L3N1YnNjcmlwdGlvbj4KKyAgICAgICAgPHN1YnNjcmlwdGlvbiBob3N0PSJtYWlsLnlhaG9vLmNvbSIgYXV0b0Nvbm5lY3Q9ImZhbHNlIiBwYXNzd29yZD0iZm9vIgorICAgICAgICAgICAgICAgICAgICAgIHR5cGU9ImltYXAiIHVzZXJuYW1lPSJqcXVzZXIiPgorICAgICAgICA8L3N1YnNjcmlwdGlvbj4KKyAgICA8L3VzZXI+Cis8L2RhdGFiYXNlPgorICAgICAgICAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy9qYXZhL3Jlc291cmNlcy5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9yZXNvdXJjZXMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NmRjOWNkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9yZXNvdXJjZXMucHJvcGVydGllcwpAQCAtMCwwICsxLDEwNSBAQAoraGVsbG8ubWVzc2FnZSA9IENvbmdyYXR1bGF0aW9ucyEgU3RydXRzIGlzIHVwIGFuZCBydW5uaW5nIC4uLgorCitpbmRleC50aXRsZT1NYWlsUmVhZGVyCitpbmRleC5sb2dpbj1Mb2cgaW50byBNYWlsUmVhZGVyCitpbmRleC5yZWdpc3RyYXRpb249UmVnaXN0ZXIgd2l0aCBNYWlsUmVhZGVyCisKK3JlZ2lzdHJhdGlvbi50aXRsZS5jcmVhdGU9TWFpbFJlYWRlciAtIFJlZ2lzdGVyIC0gQ3JlYXRlCityZWdpc3RyYXRpb24udGl0bGUuZWRpdD1NYWlsUmVhZGVyIC0gUmVnaXN0ZXIgLSBFZGl0CisKK3VzZXJuYW1lPVVzZXJuYW1lCitwYXNzd29yZD1QYXNzd29yZAorcGFzc3dvcmQyPShSZXBlYXQpIFBhc3N3b3JkCitmdWxsTmFtZT1GdWxsIE5hbWUKK2Zyb21BZGRyZXNzPUZyb20gQWRkcmVzcworcmVwbHlUb0FkZHJlc3M9UmVwbHkgVG8gQWRkcmVzcworCitidXR0b24uY2FuY2VsPUNhbmNlbAorYnV0dG9uLnNhdmU9U2F2ZQorYnV0dG9uLnJlc2V0PVJlc2V0CisKK21lbnUudGl0bGU9TWFpbFJlYWRlciAtIE1haW4gTWVudQorbWVudS5oZWFkaW5nPU1lbnUgT3B0aW9ucyBmb3IKK21lbnUucmVnaXN0cmF0aW9uPUVkaXQgeW91ciByZWdpc3RyYXRpb24gcHJvZmlsZQorbWVudS5sb2dvdXQ9TG9nIG91dCBvZiBNYWlsUmVhZGVyCisKK2xvZ2luLnRpdGxlPU1haWxSZWFkZXIgLSBMb2dvbgorCitlcnJvci5kYXRhYmFzZS5taXNzaW5nPVVzZXIgZGF0YWJhc2UgaXMgbWlzc2luZywgY2Fubm90IHZhbGlkYXRlIGxvZ29uIGNyZWRlbnRpYWxzCitlcnJvci51c2VybmFtZS51bmlxdWU9VGhhdCB1c2VybmFtZSBpcyBhbHJlYWR5IGluIHVzZSAtIHBsZWFzZSBzZWxlY3QgYW5vdGhlcgorZXJyb3IucGFzc3dvcmQubWlzbWF0Y2g9SW52YWxpZCB1c2VybmFtZSBhbmQvb3IgcGFzc3dvcmQsIHBsZWFzZSB0cnkgYWdhaW4KKworZXJyb3IudXNlcm5hbWUucmVxdWlyZWQ9VXNlcm5hbWUgaXMgcmVxdWlyZWQKK2Vycm9yLmZ1bGxOYW1lLnJlcXVpcmVkPUZ1bGwgTmFtZSBpcyByZXF1aXJlZAorZXJyb3IuZnJvbUFkZHJlc3MucmVxdWlyZWQ9RnJvbSBBZGRyZXNzIGlzIHJlcXVpcmVkCitlcnJvci5mcm9tQWRkcmVzcy5mb3JtYXQ9SW52YWxpZCBmb3JtYXQgZm9yIEZyb20gQWRkcmVzcworZXJyb3IucmVwbHlUb0FkZHJlc3MuZm9ybWF0PUludmFsaWQgZm9ybWF0IGZvciBSZXBseSBUbyBBZGRyZXNzCitlcnJvci5wYXNzd29yZC5yZXF1aXJlZD1QYXNzd29yZCBpcyByZXF1aXJlZAorZXJyb3IucGFzc3dvcmQyLnJlcXVpcmVkPUNvbmZpcm1hdGlvbiBwYXNzd29yZCBpcyByZXF1aXJlZAorZXJyb3IucGFzc3dvcmQubWF0Y2g9UGFzc3dvcmQgYW5kIGNvbmZpcm1hdGlvbiBwYXNzd29yZCBtdXN0IG1hdGNoCisKK2Vycm9yLmhvc3QucmVxdWlyZWQ9TWFpbCBTZXJ2ZXIgaXMgcmVxdWlyZWQKK2Vycm9yLnR5cGUuaW52YWxpZD1TZXJ2ZXIgVHlwZSBtdXN0IGJlICdpbWFwJyBvciAncG9wMycKK2Vycm9yLnR5cGUucmVxdWlyZWQ9U2VydmVyIFR5cGUgaXMgcmVxdWlyZWQKKworIyBGdXR1cmUgdXNlCitidXR0b24uY29uZmlybT1Db25maXJtCitidXR0b24uZG9TdWJtaXQ9RE9fU1VCTUlUCitidXR0b24uZG9SZXNldD1ET19SRVNVTFQKK2J1dHRvbi5kb0NhbmNlbD1vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DQU5DRUwKK2NoYW5nZS5tZXNzYWdlPVlvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQuICBQbGVhc2UgYXNrIHRoZSBzeXN0ZW0gYWRtaW5pc3RyYXRvciB0byBjaGFuZ2UgaXQuCitjaGFuZ2UudHJ5PVRyeSBBZ2FpbgorY2hhbmdlLnRpdGxlPVBhc3N3b3JkIEhhcyBFeHBpcmVkCitkYXRhYmFzZS5sb2FkPUNhbm5vdCBsb2FkIGRhdGFiYXNlIGZyb20gezB9CitzdHJ1dHMubWVzc2FnZXMuaW52YWxpZC50b2tlbj1DYW5ub3Qgc3VibWl0IHRoaXMgZm9ybSBvdXQgb2Ygb3JkZXIKK2Vycm9ycy5mb290ZXI9PC91bD48aHI+CitlcnJvcnMuaGVhZGVyPTxoMz48Zm9udCBjb2xvcj0icmVkIj5WYWxpZGF0aW9uIEVycm9yPC9mb250PjwvaDM+PHA+WW91IG11c3QgY29ycmVjdCB0aGUgZm9sbG93aW5nIGVycm9yKHMpIGJlZm9yZSBwcm9jZWVkaW5nOjwvcD48dWw+CitlcnJvcnMucHJlZml4PTxsaT4KK2Vycm9ycy5zdWZmaXg9PC9saT4KK2Vycm9ycy5pb0V4Y2VwdGlvbj1JL08gZXhjZXB0aW9uIHJlbmRlcmluZyBlcnJvciBtZXNzYWdlczogezB9CitlcnJvci5ub1N1YnNjcmlwdGlvbj1ObyBTdWJzY3JpcHRpb24gYmVhbiBpbiB1c2VyIHNlc3Npb24KK2Vycm9yLnBhc3N3b3JkLmV4cGlyZWQ9WW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZCBmb3IgdXNlcm5hbWUgezB9CitleHBpcmVkLnBhc3N3b3JkPVVzZXIgUGFzc3dvcmQgaGFzIGV4cGlyZWQgZm9yIHswfQoraGVhZGluZy5hdXRvQ29ubmVjdD1BdXRvCitoZWFkaW5nLnN1YnNjcmlwdGlvbnM9Q3VycmVudCBTdWJzY3JpcHRpb25zCitoZWFkaW5nLmhvc3Q9SG9zdCBOYW1lCitoZWFkaW5nLnVzZXI9VXNlciBOYW1lCitoZWFkaW5nLnR5cGU9U2VydmVyIFR5cGUKK2hlYWRpbmcuYWN0aW9uPUFjdGlvbgoraW5kZXguaGVhZGluZz1NYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24gT3B0aW9ucworaW5kZXgudG91cj1BIFdhbGtpbmcgVG91ciBvZiB0aGUgTWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uCitsaW5rU3Vic2NyaXB0aW9uLmlvPUkvTyBFcnJvcjogezB9CitsaW5rU3Vic2NyaXB0aW9uLm5vU3Vic2NyaXB0aW9uPU5vIHN1YnNjcmlwdGlvbiB1bmRlciBhdHRyaWJ1dGUgezB9CitsaW5rVXNlci5pbz1JL08gRXJyb3I6IHswfQorbGlua1VzZXIubm9Vc2VyPU5vIHVzZXIgdW5kZXIgYXR0cmlidXRlIHswfQorb3B0aW9uLmltYXA9SU1BUCBQcm90b2NvbAorb3B0aW9uLnBvcDM9UE9QMyBQcm90b2NvbAorIyBwcm9tcHQuCithdXRvQ29ubmVjdD1BdXRvIENvbm5lY3QKK21haWxIb3N0bmFtZT1NYWlsIFNlcnZlcgorbWFpbFBhc3N3b3JkPU1haWwgUGFzc3dvcmQKK21haWxTZXJ2ZXJUeXBlPVNlcnZlciBUeXBlCittYWlsVXNlcm5hbWU9TWFpbCBVc2VybmFtZQorcmVnaXN0cmF0aW9uLmFkZFN1YnNjcmlwdGlvbj1BZGQKK3JlZ2lzdHJhdGlvbi5kZWxldGVTdWJzY3JpcHRpb249RGVsZXRlCityZWdpc3RyYXRpb24uZWRpdFN1YnNjcmlwdGlvbj1FZGl0CitzdWJzY3JpcHRpb24udGl0bGUuY3JlYXRlPUNyZWF0ZSBOZXcgTWFpbCBTdWJzY3JpcHRpb24KK3N1YnNjcmlwdGlvbi50aXRsZS5kZWxldGU9RGVsZXRlIEV4aXN0aW5nIE1haWwgU3Vic2NyaXB0aW9uCitzdWJzY3JpcHRpb24udGl0bGUuZWRpdD1FZGl0IEV4aXN0aW5nIE1haWwgU3Vic2NyaXB0aW9uCisKKyMgU3RhbmRhcmQgZXJyb3IgbWVzc2FnZXMgZm9yIHZhbGlkYXRvciBmcmFtZXdvcmsgY2hlY2tzCitlcnJvcnMucmVxdWlyZWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIHJlcXVpcmVkLgorZXJyb3JzLm1pbmxlbmd0aD0ke2dldFRleHQoZmllbGROYW1lKX0gY2Fubm90IGJlIGxlc3MgdGhhbiB7MX0gY2hhcmFjdGVycy4KK2Vycm9ycy5tYXhsZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gezF9IGNoYXJhY3RlcnMuCitlcnJvcnMuaW52YWxpZD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgaW52YWxpZC4KK2Vycm9ycy5ieXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGJ5dGUuCitlcnJvcnMuc2hvcnQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gc2hvcnQuCitlcnJvcnMuaW50ZWdlcj0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBpbnRlZ2VyLgorZXJyb3JzLmxvbmc9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gbG9uZy4KK2Vycm9ycy5mbG9hdD0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBmbG9hdC4KK2Vycm9ycy5kb3VibGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gZG91YmxlLgorZXJyb3JzLmRhdGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIG5vdCBhIGRhdGUuCitlcnJvcnMucmFuZ2U9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIG5vdCBpbiB0aGUgcmFuZ2UgJHttaW5MZW5ndGh9IHRocm91Z2ggJHttYXhMZW5ndGh9LgorZXJyb3JzLmNyZWRpdGNhcmQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIG5vdCBhIHZhbGlkIGNyZWRpdCBjYXJkIG51bWJlci4KK2Vycm9ycy5lbWFpbD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgYW4gaW52YWxpZCBlLW1haWwgYWRkcmVzcy4KK2Vycm9ycy5saXRlcmFsPSR7Z2V0VGV4dChmaWVsZE5hbWUpfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9yZXNvdXJjZXNfamEucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvcmVzb3VyY2VzX2phLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWM5OWJjMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvcmVzb3VyY2VzX2phLnByb3BlcnRpZXMKQEAgLTAsMCArMSw4OSBAQAorYnV0dG9uLmNhbmNlbD1cdTMwYWRcdTMwZTNcdTMwZjNcdTMwYmJcdTMwZWIKK2J1dHRvbi5jb25maXJtPVx1NzhiYVx1OGE4ZAorYnV0dG9uLnJlc2V0PVx1MzBlYVx1MzBiYlx1MzBjM1x1MzBjOAorYnV0dG9uLnNhdmU9XHU0ZmRkXHU1YjU4CitjaGFuZ2UubWVzc2FnZT1cdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNkVcdTY3MDlcdTUyQjlcdTY3MUZcdTk2NTBcdTMwNENcdTkwNEVcdTMwNEVcdTMwN0VcdTMwNTdcdTMwNUZcdTMwMDJcdTMwQjdcdTMwQjlcdTMwQzZcdTMwRTBcdTdCQTFcdTc0MDZcdTgwMDVcdTMwNkJcdTMwNEFcdTU1NEZcdTMwNDRcdTU0MDhcdTMwOEZcdTMwNUJcdTRFMEJcdTMwNTVcdTMwNDQKK2NoYW5nZS50cnk9XHU1MThEXHU4QTY2XHU4ODRDCitjaGFuZ2UudGl0bGU9XHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5XHU2NzFmXHU5NjUwXHU1MjA3XHUzMDhjCitkYXRhYmFzZS5sb2FkPSB7MH0gXHUzMDRCXHUzMDg5XHUzMEM3XHUzMEZDXHUzMEJGXHUzMEQ5XHUzMEZDXHUzMEI5XHUzMDkyXHUzMEVEXHUzMEZDXHUzMEM5XHUzMDY3XHUzMDREXHUzMDdFXHUzMDVCXHUzMDkzCitlcnJvci5kYXRhYmFzZS5taXNzaW5nPVx1MzBFNlx1MzBGQ1x1MzBCNlx1MzBDN1x1MzBGQ1x1MzBCRlx1MzBEOVx1MzBGQ1x1MzBCOVx1MzA0Q1x1ODk4Qlx1MzA2NFx1MzA0Qlx1MzA4QVx1MzA3RVx1MzA1Qlx1MzA5M1x1MzAwMlx1MzBFRFx1MzBCMFx1MzBBQVx1MzBGM1x1MzA2RVx1OEE4RFx1OEEzQ1x1MzA0Q1x1NTFGQVx1Njc2NVx1MzA3RVx1MzA1Qlx1MzA5MworZXJyb3IuZnJvbUFkZHJlc3MuZm9ybWF0PUZyb21cdTMwQTJcdTMwQzlcdTMwRUNcdTMwQjlcdTMwNkVcdTY2RjhcdTVGMEZcdTMwNENcdTZCNjNcdTMwNTdcdTMwNEZcdTMwNDJcdTMwOEFcdTMwN0VcdTMwNUJcdTMwOTMKK2Vycm9yLmZyb21BZGRyZXNzLnJlcXVpcmVkPUZyb21cdTMwQTJcdTMwQzlcdTMwRUNcdTMwQjlcdTMwOTJcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQKK2Vycm9yLmZ1bGxOYW1lLnJlcXVpcmVkPVx1MzBENVx1MzBFQlx1MzBDRFx1MzBGQ1x1MzBFMFx1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorZXJyb3IuaG9zdC5yZXF1aXJlZD1cdTMwRTFcdTMwRkNcdTMwRUJcdTMwQjVcdTMwRkNcdTMwRDBcdTMwOTJcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQKK2Vycm9yLm5vU3Vic2NyaXB0aW9uPVN1YnNjcmlwdGlvbiBiZWFuIFx1MzA0Y1x1MzBiYlx1MzBjM1x1MzBiN1x1MzBlN1x1MzBmM1x1MzA2ZVx1NGUyZFx1MzA2Ylx1MzA0Mlx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5MworZXJyb3IucGFzc3dvcmQuZXhwaXJlZD1cdTMwRTZcdTMwRkNcdTMwQjYgezB9IFx1MzA2RVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA2RVx1NjcwOVx1NTJCOVx1NjcxRlx1OTY1MFx1MzA0Q1x1OTA0RVx1MzA0RVx1MzA3RVx1MzA1N1x1MzA1RgorZXJyb3IucGFzc3dvcmQucmVxdWlyZWQ9XHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDRDXHU1RkM1XHU4OTgxXHUzMDY3XHUzMDU5CitlcnJvci5wYXNzd29yZDIucmVxdWlyZWQ9XHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5KFx1NzhCQVx1OEE4RFx1NzUyOClcdTMwNENcdTVGQzVcdTg5ODFcdTMwNjdcdTMwNTkKK2Vycm9yLnBhc3N3b3JkLm1hdGNoPVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA2OFx1NzhCQVx1OEE4RFx1NzUyOFx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA0Q1x1NEUwMFx1ODFGNFx1MzA1N1x1MzA2Nlx1MzA0NFx1MzA3RVx1MzA1Qlx1MzA5MworZXJyb3IucGFzc3dvcmQubWlzbWF0Y2g9XHUzMEU2XHUzMEZDXHUzMEI2XHU1NDBEXHUzMDdFXHUzMDVGXHUzMDZGXHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDRDXHU0RTBEXHU2QjYzXHUzMDY3XHUzMDU5XHUzMDAyXHU1MThEXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvci5yZXBseVRvQWRkcmVzcy5mb3JtYXQ9XHU4RkQ0XHU0RkUxXHUzMEEyXHUzMEM5XHUzMEVDXHUzMEI5XHUzMDZFXHU2NkY4XHU1RjBGXHUzMDRDXHU2QjYzXHUzMDU3XHUzMDRGXHUzMDQyXHUzMDhBXHUzMDdFXHUzMDVCXHUzMDkzCitzdHJ1dHMubWVzc2FnZXMuaW52YWxpZC50b2tlbj1cdTMwNTNcdTMwNkVcdTMwRDVcdTMwQTlcdTMwRkNcdTMwRTBcdTMwNkVcdTUxODVcdTVCQjlcdTMwNENcdTZCNjNcdTMwNTdcdTMwNEZcdTMwNkFcdTMwNDRcdTMwNUZcdTMwODFcdTkwMDFcdTRGRTFcdTMwNTlcdTMwOEJcdTMwNTNcdTMwNjhcdTMwNENcdTUxRkFcdTY3NjVcdTMwN0VcdTMwNUJcdTMwOTMKK2Vycm9yLnR5cGUuaW52YWxpZD1cdTMwQjVcdTMwRkNcdTMwRDBcdTMwQkZcdTMwQTRcdTMwRDdcdTMwNkYgJ2ltYXAnIFx1MzA0QiAncG9wMydcdTMwNkVcdTMwNjlcdTMwNjFcdTMwODlcdTMwNEJcdTMwNjdcdTMwNkFcdTMwNTFcdTMwOENcdTMwNzBcdTMwNkFcdTMwOEFcdTMwN0VcdTMwNUJcdTMwOTMKK2Vycm9yLnR5cGUucmVxdWlyZWQ9XHUzMEI1XHUzMEZDXHUzMEQwXHUzMEJGXHUzMEE0XHUzMEQ3XHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvci51c2VybmFtZS5yZXF1aXJlZD1cdTMwRTZcdTMwRkNcdTMwQjZcdTU0MERcdTMwOTJcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQKK2Vycm9yLnVzZXJuYW1lLnVuaXF1ZT1cdTMwNURcdTMwNkVcdTMwRTZcdTMwRkNcdTMwQjZcdTU0MERcdTMwNkZcdTY1RTJcdTMwNkJcdTRGN0ZcdTc1MjhcdTMwNTVcdTMwOENcdTMwNjZcdTMwNDRcdTMwN0VcdTMwNTlcdTMwMDIgXHU1MjI1XHUzMDZFXHUzMEU2XHUzMEZDXHUzMEI2XHU1NDBEXHUzMDkyXHU5MDc4XHU2MjlFXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvcnMuZm9vdGVyPTwvdWw+PGhyPgorZXJyb3JzLmhlYWRlcj08aDM+PGZvbnQgY29sb3I9InJlZCI+XHU1MTY1XHU1MjliXHUzMGMxXHUzMGE3XHUzMGMzXHUzMGFmXHUzMGE4XHUzMGU5XHUzMGZjPC9mb250PjwvaDM+PHA+XHU0ZWU1XHU0ZTBiXHUzMDZlXHUzMGE4XHUzMGU5XHUzMGZjXHUzMDkyXHU3OGJhXHU4YThkXHUzMDU3XHUzMDY2XHUzMDRmXHUzMDYwXHUzMDU1XHUzMDQ0OjwvcD48dWw+CitlcnJvcnMucHJlZml4PTxsaT4KK2Vycm9ycy5zdWZmaXg9PC9saT4KK2Vycm9ycy5pb0V4Y2VwdGlvbj1JL09cdTRmOGJcdTU5MTZcdTMwNGNcdTc2N2FcdTc1MWZcdTMwNTdcdTMwN2VcdTMwNTdcdTMwNWY6IHswfQorZXhwaXJlZC5wYXNzd29yZD1cdTMwRTZcdTMwRkNcdTMwQjYgezB9IFx1MzA2RVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA2RVx1NjcwOVx1NTJCOVx1NjcxRlx1OTY1MFx1MzA0Q1x1OTA0RVx1MzA0RVx1MzA3RVx1MzA1N1x1MzA1RgoraGVhZGluZy5hdXRvQ29ubmVjdD1cdTgxZWFcdTUyZDVcdTYzYTVcdTdkOWEKK2hlYWRpbmcuc3Vic2NyaXB0aW9ucz1cdTczZmVcdTU3MjhcdTMwNmVcdThjZmNcdThhYWRcdTYwYzVcdTU4MzEKK2hlYWRpbmcuaG9zdD1cdTMwZGJcdTMwYjlcdTMwYzhcdTU0MGQKK2hlYWRpbmcudXNlcj1cdTMwZTZcdTMwZmNcdTMwYjZcdTU0MGQKK2hlYWRpbmcudHlwZT1cdTMwYjVcdTMwZmNcdTMwZDBcdTMwYmZcdTMwYTRcdTMwZDcKK2hlYWRpbmcuYWN0aW9uPVx1NjRjZFx1NGY1YworaW5kZXguaGVhZGluZz1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIFx1MzBhYVx1MzBkN1x1MzBiN1x1MzBlN1x1MzBmMworaW5kZXgubG9naW49TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBlZFx1MzBiMFx1MzBhYVx1MzBmMworaW5kZXgucmVnaXN0cmF0aW9uPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZTZcdTMwZmNcdTMwYjZcdTc2N2JcdTkzMzIKK2luZGV4LnRpdGxlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMoU3RydXRzIDEuMS1kZXYpCitpbmRleC50b3VyPVx1MzBiNVx1MzBmM1x1MzBkN1x1MzBlYlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmM1x1MzA5Mlx1NjU2M1x1N2I1Nlx1MzA1OVx1MzA4YgorbGlua1N1YnNjcmlwdGlvbi5pbz1JL09cdTMwYThcdTMwZTlcdTMwZmM6IHswfQorbGlua1N1YnNjcmlwdGlvbi5ub1N1YnNjcmlwdGlvbj1cdTVjNWVcdTYwMjcgezB9IFx1MzA2Ylx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMVx1MzA0Y1x1NWI1OFx1NTcyOFx1MzA1N1x1MzA3ZVx1MzA1Ylx1MzA5MworbGlua1VzZXIuaW89SS9PXHUzMGE4XHUzMGU5XHUzMGZjOiB7MH0KK2xpbmtVc2VyLm5vVXNlcj1cdTVjNWVcdTYwMjcgezB9IFx1MzA2Ylx1MzBlNlx1MzBmY1x1MzBiNlx1NjBjNVx1NTgzMVx1MzA0Y1x1NWI1OFx1NTcyOFx1MzA1N1x1MzA3ZVx1MzA1Ylx1MzA5MworbG9naW4udGl0bGU9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBlZFx1MzBiMFx1MzBhYVx1MzBmMworbWVudS5oZWFkaW5nPVx1MzBlMVx1MzBhNFx1MzBmM1x1MzBlMVx1MzBjYlx1MzBlNVx1MzBmYworbWVudS5sb2dvdXQ9TWFpbFJlYWRlciBcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjNcdTMwNmVcdTMwZWRcdTMwYjBcdTMwYWFcdTMwZDUKK21lbnUucmVnaXN0cmF0aW9uPVx1MzBkN1x1MzBlZFx1MzBkNVx1MzBhMVx1MzBhNFx1MzBlYlx1MzA2ZVx1N2RlOFx1OTZjNgorbWVudS50aXRsZT1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGUxXHUzMGE0XHUzMGYzXHUzMGUxXHUzMGNiXHUzMGU1XHUzMGZjCitvcHRpb24uaW1hcD1JTUFQIFx1MzBkN1x1MzBlZFx1MzBjOFx1MzBiM1x1MzBlYgorb3B0aW9uLnBvcDM9UE9QMyBcdTMwZDdcdTMwZWRcdTMwYzhcdTMwYjNcdTMwZWIKKyMgcHJvbXB0LgorYXV0b0Nvbm5lY3Q9XHU4MWVhXHU1MmQ1XHU2M2E1XHU3ZDlhCitmcm9tQWRkcmVzcz1Gcm9tXHUzMGEyXHUzMGM5XHUzMGVjXHUzMGI5CitmdWxsTmFtZT1cdTMwZDVcdTMwZWJcdTMwY2RcdTMwZmNcdTMwZTAKK21haWxIb3N0bmFtZT1cdTMwZTFcdTMwZmNcdTMwZWJcdTMwYjVcdTMwZmNcdTMwZDAKK21haWxQYXNzd29yZD1cdTMwZTFcdTMwZmNcdTMwZWJcdTMwZDFcdTMwYjlcdTMwZWZcdTMwZmNcdTMwYzkKK21haWxTZXJ2ZXJUeXBlPVx1MzBiNVx1MzBmY1x1MzBkMFx1MzBiZlx1MzBhNFx1MzBkNworbWFpbFVzZXJuYW1lPVx1MzBlMVx1MzBmY1x1MzBlYlx1MzBlNlx1MzBmY1x1MzBiNlx1NTQwZAorcGFzc3dvcmQ9XHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5CitwYXNzd29yZDI9XHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5KFx1NzhiYVx1OGE4ZFx1NzUyOCkKK3JlcGx5VG9BZGRyZXNzPVx1OGZkNFx1NGZlMVx1MzBhMlx1MzBjOVx1MzBlY1x1MzBiOQordXNlcm5hbWU9XHUzMGU2XHUzMGZjXHUzMGI2XHU1NDBkCityZWdpc3RyYXRpb24uYWRkU3Vic2NyaXB0aW9uPVx1NjViMFx1ODk4Zlx1NGY1Y1x1NjIxMAorcmVnaXN0cmF0aW9uLmRlbGV0ZVN1YnNjcmlwdGlvbj1cdTUyNGFcdTk2NjQKK3JlZ2lzdHJhdGlvbi5lZGl0U3Vic2NyaXB0aW9uPVx1N2RlOFx1OTZjNgorcmVnaXN0cmF0aW9uLnRpdGxlLmNyZWF0ZT1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGU2XHUzMGZjXHUzMGI2XHU3NjdiXHU5MzMyCityZWdpc3RyYXRpb24udGl0bGUuZWRpdD1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGQ3XHUzMGVkXHUzMGQ1XHUzMGExXHUzMGE0XHUzMGViXHU3ZGU4XHU5NmM2CitzdWJzY3JpcHRpb24udGl0bGUuY3JlYXRlPVx1MzBlMVx1MzBmY1x1MzBlYlx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMVx1MzA2ZVx1NjViMFx1ODk4Zlx1NGY1Y1x1NjIxMAorc3Vic2NyaXB0aW9uLnRpdGxlLmRlbGV0ZT1cdTMwZTFcdTMwZmNcdTMwZWJcdThjZmNcdThhYWRcdTYwYzVcdTU4MzFcdTMwNmVcdTUyNGFcdTk2NjQKK3N1YnNjcmlwdGlvbi50aXRsZS5lZGl0PVx1MzBlMVx1MzBmY1x1MzBlYlx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMVx1MzA2ZVx1N2RlOFx1OTZjNgorCisjIFN0YW5kYXJkIGVycm9yIG1lc3NhZ2VzIGZvciB2YWxpZGF0b3IgZnJhbWV3b3JrIGNoZWNrcworZXJyb3JzLnJlcXVpcmVkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwOTJcdTUxNjVcdTUyOWJcdTMwNTdcdTMwNjZcdTMwNGZcdTMwNjBcdTMwNTVcdTMwNDRcdTMwMDIKK2Vycm9ycy5taW5sZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZiB7MX0gXHU2NTg3XHU1YjU3XHU0ZWU1XHU0ZTBhXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMubWF4bGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmYgezJ9IFx1NjU4N1x1NWI1N1x1NGVlNVx1NGUwYlx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmludmFsaWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2Zlx1NmI2M1x1MzA1N1x1MzA0Zlx1MzA0Mlx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmJ5dGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZmJ5dGVcdTU3OGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5zaG9ydD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmc2hvcnRcdTU3OGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5pbnRlZ2VyPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZpbnRlZ2VyXHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMubG9uZz0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmbG9uZ1x1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmZsb2F0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZmbG9hdFx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmRvdWJsZT0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmZG91YmxlXHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuZGF0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmXHU2NWU1XHU0ZWQ4XHUzMDY3XHUzMDZmXHUzMDQyXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMucmFuZ2U9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZiB7MX0gXHUzMDRiXHUzMDg5IHsyfSBcdTMwNmVcdTk1OTNcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5jcmVkaXRjYXJkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZcdTZiNjNcdTMwNTdcdTMwNDRcdTMwYWZcdTMwZWNcdTMwYjhcdTMwYzNcdTMwYzhcdTMwYWJcdTMwZmNcdTMwYzlcdTc1NmFcdTUzZjdcdTMwNjdcdTMwNmZcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5lbWFpbD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmXHU2YjYzXHUzMDU3XHUzMDQ0XHUzMGUxXHUzMGZjXHUzMGViXHUzMGEyXHUzMGM5XHUzMGVjXHUzMGI5XHUzMDY3XHUzMDZmXHUzMDQyXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy9qYXZhL3Jlc291cmNlc19ydS5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9yZXNvdXJjZXNfcnUucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmYxYWMzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9yZXNvdXJjZXNfcnUucHJvcGVydGllcwpAQCAtMCwwICsxLDg5IEBACitidXR0b24uY2FuY2VsPVx1MDQxZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YworYnV0dG9uLmNvbmZpcm09XHUwNDFmXHUwNDNlXHUwNDM0XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM0XHUwNDM4XHUwNDQyXHUwNDRjCitidXR0b24ucmVzZXQ9XHUwNDIxXHUwNDMxXHUwNDQwXHUwNDNlXHUwNDQxXHUwNDM4XHUwNDQyXHUwNDRjCitidXR0b24uc2F2ZT1cdTA0MjFcdTA0M2VcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMKK2NoYW5nZS5tZXNzYWdlPVlvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQuICBQbGVhc2UgYXNrIHRoZSBzeXN0ZW0gYWRtaW5pc3RyYXRvciB0byBjaGFuZ2UgaXQuCitjaGFuZ2UudHJ5PVRyeSBBZ2FpbgorY2hhbmdlLnRpdGxlPVBhc3N3b3JkIEhhcyBFeHBpcmVkCitkYXRhYmFzZS5sb2FkPVx1MDQxMVx1MDQzMFx1MDQzN1x1MDQzMCBcdTA0MzRcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0NDUgXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDM3XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDMwIFx1MDQzOFx1MDQzNyB7MH0KK2Vycm9yLmRhdGFiYXNlLm1pc3Npbmc9XHUwNDFkXHUwNDM1IFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzZSBcdTA0MzhcdTA0M2NcdTA0NGYgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRmIC0gXHUwNDNkXHUwNDM1XHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOCBcdTA0MzBcdTA0NDNcdTA0NDJcdTA0MzVcdTA0M2RcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M2FcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NGUuCitlcnJvci5mcm9tQWRkcmVzcy5mb3JtYXQ9XHUwNDEyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzNSAnXHUwNDEwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQxZVx1MDQ0MjonIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDMyIFx1MDQzZFx1MDQzNVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQzZVx1MDQzYyBcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDJcdTA0MzUuCitlcnJvci5mcm9tQWRkcmVzcy5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MzIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDM1ICdcdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyOicuCitlcnJvci5mdWxsTmFtZS5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0MzhcdTA0M2NcdTA0NGYuCitlcnJvci5ob3N0LnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDRiXHUwNDM5IFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MC4KK2Vycm9yLm5vU3Vic2NyaXB0aW9uPVx1MDQxZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQzMCBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDMwXHUwNDM5XHUwNDM0XHUwNDM1XHUwNDNkXHUwNDMwIFx1MDQzMiBcdTA0NDFcdTA0MzVcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRmCitlcnJvci5wYXNzd29yZC5leHBpcmVkPVlvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQgZm9yIHVzZXJuYW1lIHswfQorZXJyb3IucGFzc3dvcmQucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGMuCitlcnJvci5wYXNzd29yZDIucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRmLgorZXJyb3IucGFzc3dvcmQubWF0Y2g9XHUwNDFmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRjIFx1MDQzOCBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRmIFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0M2VcdTA0MzJcdTA0M2ZcdTA0MzBcdTA0MzRcdTA0MzBcdTA0NGVcdTA0NDIuCitlcnJvci5wYXNzd29yZC5taXNtYXRjaD1cdTA0MWRcdTA0MzVcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0NGNcdTA0M2RcdTA0NGJcdTA0MzUgXHUwNDM4XHUwNDNjXHUwNDRmIFx1MDQzOC9cdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRjIC0gXHUwNDNmXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDMxXHUwNDQzXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0M2ZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQ0MVx1MDQzZFx1MDQzZVx1MDQzMlx1MDQzMC4KK2Vycm9yLnJlcGx5VG9BZGRyZXNzLmZvcm1hdD1cdTA0MTIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDM1ICdcdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzZFx1MDQzMDonIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDMyIFx1MDQzZFx1MDQzNVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQzZVx1MDQzYyBcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDJcdTA0MzUuCitzdHJ1dHMubWVzc2FnZXMuaW52YWxpZC50b2tlbj1cdTA0MmRcdTA0NDJcdTA0MzAgXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMFx1MDQzZFx1MDQzMCAtIFx1MDQzZFx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0OFx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDBcdTA0NGZcdTA0MzRcdTA0M2FcdTA0MzAgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRmIFx1MDQzNFx1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQ0NS4KK2Vycm9yLnR5cGUuaW52YWxpZD1cdTA0MTIgXHUwNDNhXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM1IFx1MDQ0Mlx1MDQzOFx1MDQzZlx1MDQzMCBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDNjXHUwNDNlXHUwNDMzXHUwNDQzXHUwNDQyIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0NGIgXHUwNDNiXHUwNDM4XHUwNDQ4XHUwNDRjICdpbWFwJyBcdTA0MzhcdTA0M2JcdTA0MzggJ3BvcDMnCitlcnJvci50eXBlLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQyXHUwNDM4XHUwNDNmIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMAorZXJyb3IudXNlcm5hbWUucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0MzhcdTA0M2NcdTA0NGYgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRmCitlcnJvci51c2VybmFtZS51bmlxdWU9XHUwNDIzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzOFx1MDQzY1x1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYgXHUwNDQzXHUwNDM2XHUwNDM1IFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiAtIFx1MDQzMlx1MDQ0Ylx1MDQzMVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQzNSwgXHUwNDNmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0MzRcdTA0NDBcdTA0NDNcdTA0MzNcdTA0M2VcdTA0MzUgXHUwNDM4XHUwNDNjXHUwNDRmLgorZXJyb3JzLmZvb3Rlcj08L3VsPjxocj4KK2Vycm9ycy5oZWFkZXI9PGgzPjxmb250IGNvbG9yPSJyZWQiPlx1MDQxZVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzYVx1MDQzOCBcdTA0M2ZcdTA0NDBcdTA0MzggXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM4IFx1MDQzNFx1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQ0NTwvZm9udD48L2gzPjxwPlx1MDQxMlx1MDQ0YiBcdTA0MzRcdTA0M2VcdTA0M2JcdTA0MzZcdTA0M2RcdTA0NGIgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2RcdTA0MzhcdTA0MzZcdTA0MzUgXHUwNDNlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDM4OjwvcD48dWw+CitlcnJvcnMucHJlZml4PTxsaT4KK2Vycm9ycy5zdWZmaXg9PC9saT4KK2Vycm9ycy5pb0V4Y2VwdGlvbj1cdTA0MWVcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzAgXHUwNDMyXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwL1x1MDQzMlx1MDQ0Ylx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMCBcdTA0M2ZcdTA0NDBcdTA0MzggXHUwNDQxXHUwNDNlXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDNkXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzZVx1MDQzZVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzOSBcdTA0M2VcdTA0MzEgXHUwNDNlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDMwXHUwNDQ1OiB7MH0KK2V4cGlyZWQucGFzc3dvcmQ9VXNlciBQYXNzd29yZCBoYXMgZXhwaXJlZCBmb3IgezB9CitoZWFkaW5nLmF1dG9Db25uZWN0PVx1MDQxMFx1MDQzMlx1MDQ0Mlx1MDQzZVx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzYVx1MDQzOAoraGVhZGluZy5zdWJzY3JpcHRpb25zPVx1MDQxN1x1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0M2ZcdTA0MzhcdTA0NDFcdTA0M2FcdTA0MzgKK2hlYWRpbmcuaG9zdD1cdTA0MjFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDAKK2hlYWRpbmcudXNlcj1cdTA0MThcdTA0M2NcdTA0NGYKK2hlYWRpbmcudHlwZT1cdTA0MjJcdTA0MzhcdTA0M2YgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwCitoZWFkaW5nLmFjdGlvbj1cdTA0MTRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzhcdTA0MzUKK2luZGV4LmhlYWRpbmc9XHUwNDE0XHUwNDM1XHUwNDNjXHUwNDNlXHUwNDNkXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNlXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYlx1MDQzZVx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSAnXHUwNDI3XHUwNDQyXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQ0YicKK2luZGV4LmxvZ2luPVx1MDQxMlx1MDQzZVx1MDQzOVx1MDQ0Mlx1MDQzOCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDM3XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0YworaW5kZXgucmVnaXN0cmF0aW9uPVx1MDQxN1x1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Y1x1MDQ0MVx1MDQ0ZgoraW5kZXgudGl0bGU9XHUwNDE0XHUwNDM1XHUwNDNjXHUwNDNlXHUwNDNkXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNlXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYlx1MDQzZVx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSAnXHUwNDI3XHUwNDQyXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQ0YicgKFN0cnV0cyAxLjEtZGV2KQoraW5kZXgudG91cj1cdTA0MWVcdTA0MzFcdTA0MzdcdTA0M2VcdTA0NDAgXHUwNDE0XHUwNDM1XHUwNDNjXHUwNDNlXHUwNDNkXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNlXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYlx1MDQzZVx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZiAnXHUwNDI3XHUwNDQyXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQ0YicKK2xpbmtTdWJzY3JpcHRpb24uaW89XHUwNDFlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDMwIFx1MDQzMlx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMC9cdTA0MzJcdTA0NGJcdTA0MzJcdTA0M2VcdTA0MzRcdTA0MzAgKFx1MDQzNFx1MDQzYlx1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0M2ZcdTA0MzhcdTA0NDFcdTA0M2FcdTA0MzgpOiB7MH0KK2xpbmtTdWJzY3JpcHRpb24ubm9TdWJzY3JpcHRpb249XHUwNDEwXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDMxXHUwNDQzXHUwNDQyIHswfSBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDNlXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM4XHUwNDQyIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M2UgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDM1IFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDM1XHUwNDQyLgorbGlua1VzZXIuaW89XHUwNDFlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDMwIFx1MDQzMlx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMC9cdTA0MzJcdTA0NGJcdTA0MzJcdTA0M2VcdTA0MzRcdTA0MzAgKFx1MDQzNFx1MDQzYlx1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYpOiB7MH0KK2xpbmtVc2VyLm5vVXNlcj1cdTA0MTBcdTA0NDJcdTA0NDBcdTA0MzhcdTA0MzFcdTA0NDNcdTA0NDIgezB9IFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzhcdTA0NDIgXHUwNDM4XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0MzUgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0NDNcdTA0NDlcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0MzVcdTA0NDIuCitsb2dpbi50aXRsZT1cdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0NGIgLSBcdTA0MWZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2FcdTA0MzAgXHUwNDM4XHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM4IFx1MDQzOCBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGYuCittZW51LmhlYWRpbmc9XHUwNDFkXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDM5XHUwNDNhXHUwNDM4IFx1MDQzM1x1MDQzYlx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzZVx1MDQzM1x1MDQzZSBcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NGUgXHUwNDM0XHUwNDNiXHUwNDRmCittZW51LmxvZ291dD1cdTA0MTJcdTA0NGJcdTA0MzlcdTA0NDJcdTA0MzgKK21lbnUucmVnaXN0cmF0aW9uPVx1MDQxOFx1MDQzN1x1MDQzY1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0MzJcdTA0M2VcdTA0MzggXHUwNDNkXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDM5XHUwNDNhXHUwNDM4CittYWluTWVudS50aXRsZT1cdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1ICdcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDRiJyAtIFx1MDQxZVx1MDQ0MVx1MDQzZFx1MDQzZVx1MDQzMlx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NGUKK29wdGlvbi5pbWFwPVx1MDQxZlx1MDQ0MFx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQzYVx1MDQzZVx1MDQzYiBJTUFQCitvcHRpb24ucG9wMz1cdTA0MWZcdTA0NDBcdTA0M2VcdTA0NDJcdTA0M2VcdTA0M2FcdTA0M2VcdTA0M2IgUE9QMworIyBwcm9tcHQuCithdXRvQ29ubmVjdD1cdTA0MTBcdTA0MzJcdTA0NDJcdTA0M2VcdTA0M2NcdTA0MzBcdTA0NDJcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M2FcdTA0M2VcdTA0MzUgXHUwNDQxXHUwNDNlXHUwNDM1XHUwNDM0XHUwNDM4XHUwNDNkXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1OgorZnJvbUFkZHJlc3M9XHUwNDEwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQxZVx1MDQ0MjoKK2Z1bGxOYW1lPVx1MDQxZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0MzhcdTA0M2NcdTA0NGY6CittYWlsSG9zdG5hbWU9XHUwNDFmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDRiXHUwNDM5IFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MDoKK21haWxQYXNzd29yZD1cdTA0MWZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGMgXHUwNDM0XHUwNDNiXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzZVx1MDQzM1x1MDQzZSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzA6CittYWlsU2VydmVyVHlwZT1cdTA0MjJcdTA0MzhcdTA0M2YgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwOgorbWFpbFVzZXJuYW1lPVx1MDQxOFx1MDQzY1x1MDQ0ZiBcdTA0MzRcdTA0M2JcdTA0NGYgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMDoKK3Bhc3N3b3JkPVx1MDQxZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0YzoKK3Bhc3N3b3JkMj0oXHUwNDFmXHUwNDNlXHUwNDM0XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1KSBcdTA0MWZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGM6CityZXBseVRvQWRkcmVzcz1cdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzZFx1MDQzMDoKK3VzZXJuYW1lPVx1MDQxOFx1MDQzY1x1MDQ0ZjoKK3JlZ2lzdHJhdGlvbi5hZGRTdWJzY3JpcHRpb249XHUwNDE0XHUwNDNlXHUwNDMxXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjCityZWdpc3RyYXRpb24uZGVsZXRlU3Vic2NyaXB0aW9uPVx1MDQyM1x1MDQzNFx1MDQzMFx1MDQzYlx1MDQzOFx1MDQ0Mlx1MDQ0YworcmVnaXN0cmF0aW9uLmVkaXRTdWJzY3JpcHRpb249XHUwNDIwXHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNhXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRjCityZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlPVx1MDQxN1x1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Y1x1MDQ0MVx1MDQ0ZgorcmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQ9XHUwNDE4XHUwNDM3XHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzNFx1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2UgXHUwNDQxXHUwNDMyXHUwNDNlXHUwNDM1XHUwNDM5IFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOAorc3Vic2NyaXB0aW9uLnRpdGxlLmNyZWF0ZT1cdTA0MjFcdTA0M2VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNkXHUwNDNlXHUwNDMyXHUwNDQzXHUwNDRlIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQ0Mworc3Vic2NyaXB0aW9uLnRpdGxlLmRlbGV0ZT1cdTA0MjNcdTA0MzRcdTA0MzBcdTA0M2JcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDQzXHUwNDRlIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQ0Mworc3Vic2NyaXB0aW9uLnRpdGxlLmVkaXQ9XHUwNDIwXHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNhXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0M1x1MDQ0OVx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQ0M1x1MDQ0ZSBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0M2ZcdTA0MzhcdTA0NDFcdTA0M2FcdTA0NDMKKworIyBTdGFuZGFyZCBlcnJvciBtZXNzYWdlcyBmb3IgdmFsaWRhdG9yIGZyYW1ld29yayBjaGVja3MKK2Vycm9ycy5yZXF1aXJlZD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgcmVxdWlyZWQuCitlcnJvcnMubWlubGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBjYW5ub3QgYmUgbGVzcyB0aGFuIHsxfSBjaGFyYWN0ZXJzLgorZXJyb3JzLm1heGxlbmd0aD0ke2dldFRleHQoZmllbGROYW1lKX0gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiB7Mn0gY2hhcmFjdGVycy4KK2Vycm9ycy5pbnZhbGlkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBpbnZhbGlkLgorZXJyb3JzLmJ5dGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gYnl0ZS4KK2Vycm9ycy5zaG9ydD0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBzaG9ydC4KK2Vycm9ycy5pbnRlZ2VyPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGludGVnZXIuCitlcnJvcnMubG9uZz0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBsb25nLgorZXJyb3JzLmZsb2F0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGZsb2F0LgorZXJyb3JzLmRvdWJsZT0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBkb3VibGUuCitlcnJvcnMuZGF0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgbm90IGEgZGF0ZS4KK2Vycm9ycy5yYW5nZT0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgbm90IGluIHRoZSByYW5nZSB7MX0gdGhyb3VnaCB7Mn0uCitlcnJvcnMuY3JlZGl0Y2FyZD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgbm90IGEgdmFsaWQgY3JlZGl0IGNhcmQgbnVtYmVyLgorZXJyb3JzLmVtYWlsPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBhbiBpbnZhbGlkIGUtbWFpbCBhZGRyZXNzLgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvamF2YS9zdHJ1dHMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvc3RydXRzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVjODEzNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvc3RydXRzLnByb3BlcnRpZXMKQEAgLTAsMCArMSBAQAorc3RydXRzLmN1c3RvbS5pMThuLnJlc291cmNlcz1yZXNvdXJjZXMNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy9qYXZhL3N0cnV0cy54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy9qYXZhL3N0cnV0cy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzM5YjU2YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL2phdmEvc3RydXRzLnhtbApAQCAtMCwwICsxLDU4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4KKzwhRE9DVFlQRSBzdHJ1dHMgUFVCTElDCisgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDIuMC8vRU4iCisgICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtMi4wLmR0ZCI+CisKKzxzdHJ1dHM+CisgICAgPHBhY2thZ2UgbmFtZT0iZGVmYXVsdCIgZXh0ZW5kcz0ic3RydXRzLWRlZmF1bHQiPgorCisgICAgICAgIDxkZWZhdWx0LWFjdGlvbi1yZWYgbmFtZT0iTWlzc2luZyIvPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iSGVsbG8iIGNsYXNzPSJIZWxsbyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9IZWxsby5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJNaXNzaW5nIj4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL01pc3NpbmcuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iV2VsY29tZSI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9XZWxjb21lLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlJlZ2lzdGVyIiBjbGFzcz0iUmVnaXN0ZXIiIG1ldGhvZD0iaW5wdXQiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL1JlZ2lzdGVyLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlJlZ2lzdGVyX3NhdmUiIGNsYXNzPSJSZWdpc3RlciIgbWV0aG9kPSJzYXZlIj4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9SZWdpc3Rlci5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5NZW51PC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iUmVnaXN0ZXJfY2FuY2VsIiBjbGFzcz0iUmVnaXN0ZXIiIG1ldGhvZD0iY2FuY2VsIj4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iY2FuY2VsIiB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPldlbGNvbWU8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJNZW51IiBjbGFzcz0iTWFpbFJlYWRlclN1cHBvcnQiPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvTWVudS5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJMb2dvdXQiIGNsYXNzPSJMb2dvdXQiPgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPldlbGNvbWU8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJMb2dpbiIgY2xhc3M9IkxvZ2luIiBtZXRob2Q9ImlucHV0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9Mb2dpbi5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJMb2dpbl9zYXZlIiBjbGFzcz0iTG9naW4iIG1ldGhvZD0ic2F2ZSI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvTG9naW4uanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+TWVudTwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IkxvZ2luX2NhbmNlbCIgY2xhc3M9IkxvZ2luIiBtZXRob2Q9ImNhbmNlbCI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImNhbmNlbCIgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5XZWxjb21lPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgPC9wYWNrYWdlPgorPC9zdHJ1dHM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy90ZXN0L0hlbGxvVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvdGVzdC9IZWxsb1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGRlYmY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvdGVzdC9IZWxsb1Rlc3QuamF2YQpAQCAtMCwwICsxLDE2IEBACitpbXBvcnQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlOworCisvKioKKyAqIEFuIGV4YW1wbGUgdGV4dCBjbGFzcyB0byB2ZXJpZnkgdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3B1YmxpYyBjbGFzcyBIZWxsb1Rlc3QgZXh0ZW5kcyBUZXN0Q2FzZSB7CisKKyAgICAvKioKKyAgICAgKiBBbiBleGFtcGxlIHRlc3QgdGhhdCBhc3NlcnRzIHRydWUuCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBPbiBpbnZhbGlkIGFzc2VydGlvbnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SGVsbG9BY3Rpb24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgYXNzZXJ0VHJ1ZSh0cnVlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy90ZXN0L1JlZ2lzdGVyVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvdGVzdC9SZWdpc3RlclRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTg2MzY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvdGVzdC9SZWdpc3RlclRlc3QuamF2YQpAQCAtMCwwICsxLDM1IEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKKworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworCitwdWJsaWMgY2xhc3MgUmVnaXN0ZXJUZXN0IGV4dGVuZHMgUmV0YWluVGVzdCB7CisKKyAgICBSZWdpc3RlciBhY3Rpb24gPSBudWxsOworCisgICAgcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgc3VwZXIuc2V0VXAoKTsKKyAgICAgICAgYWN0aW9uID0gbmV3IFJlZ2lzdGVyKCk7CisgICAgICAgIGFjdGlvbi5zZXRBcHBsaWNhdGlvbihuZXcgSGFzaE1hcCgpKTsKKyAgICAgICAgYWN0aW9uLnNldFNlc3Npb24obmV3IEhhc2hNYXAoKSk7CisgICAgICAgIGFjdGlvbi5zZXREYXRhYmFzZShkYXRhYmFzZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFNhdmUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBhY3Rpb24uc2V0VXNlcm5hbWUoInVzZXIiKTsKKyAgICAgICAgYWN0aW9uLnNldFBhc3N3b3JkKCJwYXNzIik7CisgICAgICAgIGFjdGlvbi5zZXRGdWxsTmFtZSgiSm9obiBRLiBVc2VyIik7CisgICAgICAgIGFjdGlvbi5zZXRGcm9tQWRkcmVzcygiSm9obi5Vc2VyQHNvbWV3aGVyZS5jb20iKTsKKworICAgICAgICBTdHJpbmcgc3VjY2VzcyA9IGFjdGlvbi5zYXZlKCk7CisgICAgICAgIGFzc2VydFRydWUoIkV4cGVjdGVkIFNVQ0NFU1MiLCBBY3Rpb24uU1VDQ0VTUy5lcXVhbHMoc3VjY2VzcykpOworCisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoIkV4cGVjdGVkIHVzZXIiLCB1c2VyKTsKKworICAgICAgICBTdHJpbmcgaW5wdXQgPSBhY3Rpb24uc2F2ZSgpOworICAgICAgICBhc3NlcnRUcnVlKCJFeHBlY3RlZCBJTlBVVCIsIEFjdGlvbi5JTlBVVC5lcXVhbHMoaW5wdXQpKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3Rlc3QvUmV0YWluVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvdGVzdC9SZXRhaW5UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY2NmY3MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3Rlc3QvUmV0YWluVGVzdC5qYXZhCkBAIC0wLDAgKzEsOTcgQEAKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5TdWJzY3JpcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlckRhdGFiYXNlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uaW1wbC5tZW1vcnkuTWVtb3J5VXNlckRhdGFiYXNlOworCitwdWJsaWMgY2xhc3MgUmV0YWluVGVzdCBleHRlbmRzIFRlc3RDYXNlIHsKKworICAgIHByb3RlY3RlZCBVc2VyRGF0YWJhc2UgZGF0YWJhc2U7CisgICAgcHJvdGVjdGVkIFN0cmluZyB0ZXN0TmFtZSA9ICJ0ZXN0LWRhdGFiYXNlLnhtbCI7CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci5zZXRVcCgpOworICAgICAgICBNZW1vcnlVc2VyRGF0YWJhc2UgbWVtb3J5VXNlckRhdGFiYXNlID0gbmV3IE1lbW9yeVVzZXJEYXRhYmFzZSgpOworICAgICAgICBtZW1vcnlVc2VyRGF0YWJhc2Uuc2V0UGF0aG5hbWUodGVzdE5hbWUpOworICAgICAgICBkYXRhYmFzZSA9IG1lbW9yeVVzZXJEYXRhYmFzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGF0YWJhc2VDbGVhbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCB1c2VyIHRvIGJlIG1pc3NpbmciLCB1c2VyKTsKKyAgICB9CisKKyAgICAvLyAgQWRkIHlvdXIgdGVzdCBtZXRob2RzIGhlcmUuCisgICAgLy8gIFRoZSBzZXRVcCBtZXRob2Qgd2lsbCBydW4gYmV0d2VlbiBlYWNoIHRlc3QuCisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q3JlYXRlVXNlcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE5vdE51bGwodXNlcik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEZpbmRVc2VyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVzZXIgdXNlcjEgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIFVzZXIgdXNlcjIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnRTYW1lKCJFeHBlY3RlZCB1c2VycyB0byBtYXRjaCIsIHVzZXIxLCB1c2VyMik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdENyZWF0ZVN1YnNjcmlwdGlvbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRXhwZWN0ZWQgc3Vic2NyaXB0aW9uIHRvIGJlIGNyZWF0ZWQiLCBzdWIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kU3Vic2NyaXB0aW9uKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIxID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpLmZpbmRTdWJzY3JpcHRpb24oIm1haWwueWFob28uY29tIik7CisgICAgICAgIGFzc2VydFNhbWUoIkV4cGVjdGVkIFN1YnNjcmlwdGlvbnMgdG8gbWF0Y2giLCBzdWIxLCBzdWIyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGF0YWJzYWVTYXZlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICB1c2VyLnNldFBhc3N3b3JkKCJwYXNzIik7CisgICAgICAgIHVzZXIuc2V0RnVsbE5hbWUoIkpvaG4gUS4gVXNlciIpOworICAgICAgICB1c2VyLnNldEZyb21BZGRyZXNzKCJKb2huLlVzZXJAc29tZXdoZXJlLmNvbSIpOworCisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIxID0gdXNlci5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwuaG90bWFpbC5jb20iKTsKKyAgICAgICAgc3ViMS5zZXRVc2VybmFtZSgidXNlcjEyMzQiKTsKKyAgICAgICAgc3ViMS5zZXRBdXRvQ29ubmVjdChmYWxzZSk7CisgICAgICAgIHN1YjEuc2V0VHlwZSgicG9wMyIpOworICAgICAgICBzdWIxLnNldFBhc3N3b3JkKCJiYXIiKTsKKworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMiA9IHVzZXIuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLnlhaG9vLmNvbSIpOworICAgICAgICBzdWIyLnNldFVzZXJuYW1lKCJqcXVzZXIiKTsKKyAgICAgICAgc3ViMi5zZXRBdXRvQ29ubmVjdChmYWxzZSk7CisgICAgICAgIHN1YjIuc2V0VHlwZSgiaW1hcCIpOworICAgICAgICBzdWIyLnNldFBhc3N3b3JkKCJmb28iKTsKKworICAgICAgICBkYXRhYmFzZS5zYXZlKCk7CisKKyAgICB9CisKKyAgICAvLyBFeHRyYSBjcmVkaXQKKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kZXJVc2VyQm9ndXMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyMSA9IGRhdGFiYXNlLmZpbmRVc2VyKCJib2d1cyIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCBib2d1cyB1c2VyIHRvIGJlIG5vdCBmb3VuZCIsIHVzZXIxKTsKKyAgICAgICAgVXNlciB1c2VyMiA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRXhwZWN0ZWQgdXNlciB0byBiZSBjcmVhdGVkIiwgdXNlcjIpOworICAgICAgICB1c2VyMSA9IGRhdGFiYXNlLmZpbmRVc2VyKCJib2d1cyIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCBib2d1cyB1c2VyIHRvIGJlIG5vdCBmb3VuZCIsIHVzZXIxKTsKKyAgICAgICAgdXNlcjEgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROb3ROdWxsKCJFeHBlY3RlZCB1c2VyIHRvIGJlIGZvdW5kIiwgdXNlcjEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kU3ViQm9ndXMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gdXNlci5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLmJvZ3VzLmNvbSIpOworICAgICAgICBhc3NlcnROdWxsKHN1Yik7CisgICAgICAgIHN1YiA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIikuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLmhvdG1haWwuY29tIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoc3ViKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjIgPSB1c2VyLmZpbmRTdWJzY3JpcHRpb24oIm1haWwuYm9ndXMuY29tIik7CisgICAgICAgIGFzc2VydE51bGwoc3ViMik7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIzID0gdXNlci5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLmhvdG1haWwuY29tIik7CisgICAgICAgIGFzc2VydFNhbWUoc3ViLCBzdWIzKTsKKyAgICB9CisKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9XZWJUZXN0LmR0ZCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL1dlYlRlc3QuZHRkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmOGEzNDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9XZWJUZXN0LmR0ZApAQCAtMCwwICsxLDQ2OTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/PgorPCFFTlRJVFkgJSBib29sZWFuICIodHJ1ZXxmYWxzZXxvbnxvZmZ8eWVzfG5vKSI+Cis8IUVOVElUWSAlIHRhc2tzICJwcm9wZXJ0eWZpbGUgfCBjY21rZGlyIHwgaW1wb3J0dHlwZWxpYiB8IHZzc2NoZWNraW4gfCBzcWwgfCBjdnNwYXNzIHwgY3NjIHwgZGlybmFtZSB8IHJlcGxhY2VyZWdleHAgfCBnZXQgfCBqanRyZWUgfCBzbGVlcCB8IGphcmxpYi1kaXNwbGF5IHwgbGVuZ3RoIHwgZGVwZW5kc2V0IHwgemlwIHwgcGF0Y2ggfCBqc3BjIHwgc3R5bGUgfCBuaWNlIHwgdGVzdCB8IHRzdGFtcCB8IHVud2FyIHwgdnNzaGlzdG9yeSB8IGN2c2NoYW5nZWxvZyB8IGNjbWNoZWNraW4gfCBiemlwMiB8IHN5bmMgfCB2c3NhZGQgfCBqYXZhZG9jIHwgdHJhbnNsYXRlIHwgc2lnbmphciB8IGNjbG9jayB8IGNob3duIHwgamFybGliLWF2YWlsYWJsZSB8IFdzZGxUb0RvdG5ldCB8IGJ1aWxkbnVtYmVyIHwganBjb3ZtZXJnZSB8IGN2c3ZlcnNpb24gfCBlamJqYXIgfCB3YXIgfCByZW5hbWUgfCBzZXF1ZW50aWFsIHwgc2VydmVyZGVwbG95IHwgcHJvcGVydHkgfCBzdWJhbnQgfCBtb3ZlIHwgaWxkYXNtIHwgY29weWRpciB8IGNjY2hlY2tpbiB8IGNjdW5sb2NrIHwgd2xqc3BjIHwgZml4Y3JsZiB8IHNvc2dldCB8IHBhdGhjb252ZXJ0IHwgcmVjb3JkIHwgZXhlYyB8IGNjbWtsYWJlbCB8IG1hbmlmZXN0IHwganBjb3ZyZXBvcnQgfCBleGVjb24gfCBjY21jaGVja291dCB8IGFudCB8IHhtbHZhbGlkYXRlIHwgeHNsdCB8IGlwbGFuZXQtZWpiYyB8IGNjbWNoZWNraW50YXNrIHwgZ3ppcCB8IG5hdGl2ZTJhc2NpaSB8IGNjcm10eXBlIHwgZWFyIHwgaW5wdXQgfCBwcmVzZXRkZWYgfCBybWljIHwgY2hlY2tzdW0gfCBtYWlsIHwgbG9hZGZpbGUgfCB2c3NjaGVja291dCB8IHNvc2NoZWNraW4gfCBtaW1lbWFpbCB8IGd1bnppcCB8IGNvbmNhdCB8IGNhYiB8IHRvdWNoIHwgcGFyYWxsZWwgfCBhbnRjYWxsIHwgY2Nta2JsIHwgY2NjaGVja291dCB8IHR5cGVkZWYgfCBmaWx0ZXIgfCB4bWxwcm9wZXJ0eSB8IGltcG9ydCB8IGNvcHkgfCBqc2hhcnBjIHwgc3ltbGluayB8IGFudHN0cnVjdHVyZSB8IHNjcmlwdCB8IGNjbWNyZWF0ZXRhc2sgfCBycG0gfCBkZWxldGUgfCByZXBsYWNlIHwgbW1ldHJpY3MgfCBhdHRyaWIgfCB3YWl0Zm9yIHwgdW50YXIgfCBsb2FkcHJvcGVydGllcyB8IGF2YWlsYWJsZSB8IGVjaG9wcm9wZXJ0aWVzIHwganVuaXQgfCBjaGdycCB8IGJ1bnppcDIgfCB3aGljaHJlc291cmNlIHwgY29weWZpbGUgfCB2c3NjcmVhdGUgfCBtYWNyb2RlZiB8IHVuamFyIHwgdmJjIHwgd3NkbHRvZG90bmV0IHwgbWtkaXIgfCBjb25kaXRpb24gfCBjdnMgfCB0ZW1wZmlsZSB8IGp1bml0cmVwb3J0IHwgY2Nta2F0dHIgfCB0YXNrZGVmIHwgZWNobyB8IGNjdXBkYXRlIHwgamF2YSB8IHJlbmFtZWV4dCB8IHZzc2xhYmVsIHwgYmFzZW5hbWUgfCBqYXZhZG9jMiB8IHZzc2NwIHwgdGFyIHwgc2V0cHJveHkgfCBpbGFzbSB8IHNvc2NoZWNrb3V0IHwgYXBwbHkgfCBjY3VuY2hlY2tvdXQgfCBqYXJsaWItcmVzb2x2ZSB8IGN2c3RhZ2RpZmYgfCBqbGluayB8IGphdmFjYyB8IGNobW9kIHwgcHZjcyB8IGphcmxpYi1tYW5pZmVzdCB8IGphciB8IGNjbWtsYnR5cGUgfCBzY3JpcHRkZWYgfCBkZWZhdWx0ZXhjbHVkZXMgfCBtcGFyc2UgfCBibGdlbmNsaWVudCB8IHVwdG9kYXRlIHwgampkb2MgfCBnZW5rZXkgfCBqYXZhaCB8IGNjbWtlbGVtIHwgY2NtcmVjb25maWd1cmUgfCBmYWlsIHwgdW56aXAgfCBqYXZhYyB8IGpwY292ZXJhZ2UgfCBzb3NsYWJlbCB8IGRlcGVuZCB8IHZzc2dldCB8IGRlbHRyZWUiPgorPCFFTlRJVFkgJSB0eXBlcyAicGF0dGVybnNldCB8IGFzc2VydGlvbnMgfCBwcm9wZXJ0eXNldCB8IGZpbHRlcm1hcHBlciB8IGZpbHRlcnNldCB8IGxpYmZpbGVzZXQgfCBpc2ZpbGVzZWxlY3RlZCB8IG1lcmdlbWFwcGVyIHwgaWRlbnRpdHltYXBwZXIgfCBmaWx0ZXJyZWFkZXIgfCBzY3JpcHRmaWx0ZXIgfCB1bnBhY2thZ2VtYXBwZXIgfCBjb25jYXRmaWx0ZXIgfCBleHRlbnNpb24gfCBmaWxlc2V0IHwgZGlyc2V0IHwgZ2xvYm1hcHBlciB8IGZpbGVsaXN0IHwgZmlsdGVyY2hhaW4gfCBwYXRoIHwgY29tcG9zaXRlbWFwcGVyIHwgY2xhc3NmaWxlc2V0IHwgcmVnZXhwbWFwcGVyIHwgc2VsZWN0b3IgfCB4bWxjYXRhbG9nIHwgZmxhdHRlbm1hcHBlciB8IGRlc2NyaXB0aW9uIHwgY2hhaW5lZG1hcHBlciB8IHBhY2thZ2VtYXBwZXIgfCBtYXBwZXIgfCB6aXBmaWxlc2V0IHwgc3Vic3RpdHV0aW9uIHwgZXh0ZW5zaW9uU2V0IHwgcmVkaXJlY3RvciB8IHJlZ2V4cCI+CisKKzwhRUxFTUVOVCBwcm9qZWN0ICh0YXJnZXQgfCAldGFza3M7IHwgJXR5cGVzOykqPgorPCFBVFRMSVNUIHByb2plY3QKKyAgICAgICAgICBuYW1lICAgIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJnZXQgKCV0YXNrczsgfCAldHlwZXM7KSo+CisKKzwhQVRUTElTVCB0YXJnZXQKKyAgICAgICAgICBpZCAgICAgICAgICBJRCAgICAjSU1QTElFRAorICAgICAgICAgIG5hbWUgICAgICAgIENEQVRBICNSRVFVSVJFRAorICAgICAgICAgIGlmICAgICAgICAgIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzICAgICAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXBlbmRzICAgICBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0dGVybnNldCAoaW5jbHVkZSB8IHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgZXhjbHVkZXNmaWxlIHwgaW5jbHVkZXNmaWxlKSo+Cis8IUFUVExJU1QgcGF0dGVybnNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbmNsdWRlIEVNUFRZPgorPCFBVFRMSVNUIGluY2x1ZGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4Y2x1ZGUgRU1QVFk+Cis8IUFUVExJU1QgZXhjbHVkZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhjbHVkZXNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGV4Y2x1ZGVzZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW5jbHVkZXNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGluY2x1ZGVzZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXNzZXJ0aW9ucyAoZGlzYWJsZSB8IGVuYWJsZSkqPgorPCFBVFRMSVNUIGFzc2VydGlvbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVzeXN0ZW1hc3NlcnRpb25zICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRpc2FibGUgRU1QVFk+Cis8IUFUVExJU1QgZGlzYWJsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZW5hYmxlIEVNUFRZPgorPCFBVFRMSVNUIGVuYWJsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJvcGVydHlzZXQgKHByb3BlcnR5cmVmIHwgcHJvcGVydHlzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBwcm9wZXJ0eXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGR5bmFtaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmVnYXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByb3BlcnR5cmVmIEVNUFRZPgorPCFBVFRMSVNUIHByb3BlcnR5cmVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVpbHRpbiAoYWxsIHwgc3lzdGVtIHwgY29tbWFuZGxpbmUpICNJTVBMSUVECisgICAgICAgICAgcmVnZXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYXBwZXIgKGNsYXNzcGF0aCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIG1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoaWRlbnRpdHkgfCBmbGF0dGVuIHwgZ2xvYiB8IG1lcmdlIHwgcmVnZXhwIHwgcGFja2FnZSB8IHVucGFja2FnZSkgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3NwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdXN0b20gKGNsYXNzcGF0aCB8IHBhcmFtKSo+Cis8IUFUVExJU1QgY3VzdG9tCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXJhbSBFTVBUWT4KKzwhQVRUTElTVCBwYXJhbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByZXNlbnQgKG1hcHBlcikqPgorPCFBVFRMSVNUIHByZXNlbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZXNlbnQgKHNyY29ubHkgfCBib3RoKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG5vbmUgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIG5vbmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG5vdCAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1Qgbm90CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0eXBlIEVNUFRZPgorPCFBVFRMSVNUIHR5cGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyKSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbW9kaWZpZWQgKHBhcmFtKSo+Cis8IUFUVExJU1QgbW9kaWZpZWQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNvbXBhcmF0b3IgKGVxdWFsIHwgcnVsZSkgI0lNUExJRUQKKyAgICAgICAgICBzZWxkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFsZ29yaXRobSAoaGFzaHZhbHVlIHwgZGlnZXN0KSAjSU1QTElFRAorICAgICAgICAgIGNhY2hlIChwcm9wZXJ0eWZpbGUpICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIG9yIChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBvcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29udGFpbnMgRU1QVFk+Cis8IUFUVExJU1QgY29udGFpbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3Jld2hpdGVzcGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0ZXh0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVwZW5kIChtYXBwZXIpKj4KKzwhQVRUTElTVCBkZXBlbmQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGlmZmVyZW50IChtYXBwZXIpKj4KKzwhQVRUTElTVCBkaWZmZXJlbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZWNvbnRlbnRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZWZpbGV0aW1lcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNpemUgRU1QVFk+Cis8IUFUVExJU1Qgc2l6ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgd2hlbiAobGVzcyB8IG1vcmUgfCBlcXVhbCkgI0lNUExJRUQKKyAgICAgICAgICB1bml0cyAoSyB8IGsgfCBraWxvIHwgS0lMTyB8IEtpIHwgS0kgfCBraSB8IGtpYmkgfCBLSUJJIHwgTSB8IG0gfCBtZWdhIHwgTUVHQSB8IE1pIHwgTUkgfCBtaSB8IG1lYmkgfCBNRUJJIHwgRyB8IGcgfCBnaWdhIHwgR0lHQSB8IEdpIHwgR0kgfCBnaSB8IGdpYmkgfCBHSUJJIHwgVCB8IHQgfCB0ZXJhIHwgVEVSQSB8IFRpIHwgVEkgfCB0aSB8IHRlYmkgfCBURUJJKSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFqb3JpdHkgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIG1ham9yaXR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgYWxsb3d0aWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb250YWluc3JlZ2V4cCBFTVBUWT4KKzwhQVRUTElTVCBjb250YWluc3JlZ2V4cAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhwcmVzc2lvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGVuYW1lIEVNUFRZPgorPCFBVFRMSVNUIGZpbGVuYW1lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZWdhdGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2VsZWN0b3IgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIHNlbGVjdG9yCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRhdGUgRU1QVFk+Cis8IUFUVExJU1QgZGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBtaWxsaXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGVja2RpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGF0ZXRpbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aGVuIChiZWZvcmUgfCBhZnRlciB8IGVxdWFsKSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhbmQgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIGFuZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVwdGggRU1QVFk+Cis8IUFUVExJU1QgZGVwdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG1heCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWluIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRpcnNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZGlyc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHRkaXJzIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBleHRkaXJzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhpc3RpbmcgKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGV4aXN0aW5nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZWxpc3QgKGZpbGUpKj4KKzwhQVRUTElTVCBmaWxlbGlzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZSBFTVBUWT4KKzwhQVRUTElTVCBmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0aGVsZW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgcGF0aGVsZW1lbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIHBhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJtYXBwZXIgKGhlYWRmaWx0ZXIgfCBjbGFzc2NvbnN0YW50cyB8IGxpbmVjb250YWlucyB8IGZpbHRlcnJlYWRlciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2V0b2tlbnMgfCBlc2NhcGV1bmljb2RlIHwgaWdub3JlYmxhbmsgfCB0YWlsZmlsdGVyIHwgdGFic3Rvc3BhY2VzIHwgcHJlZml4bGluZXMgfCB0cmltIHwgZXhwYW5kcHJvcGVydGllcyB8IHN0cmlwbGluZWJyZWFrcyB8IHJlcGxhY2VzdHJpbmcgfCBzdHJpcGxpbmVjb21tZW50cyB8IHRva2VuZmlsdGVyIHwgc3RyaXBqYXZhY29tbWVudHMgfCBjb250YWluc3JlZ2V4IHwgZGVsZXRlY2hhcmFjdGVycyB8IGxpbmVjb250YWluc3JlZ2V4cCkqPgorPCFBVFRMSVNUIGZpbHRlcm1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGhlYWRmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgaGVhZGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBza2lwIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3Njb25zdGFudHMgRU1QVFk+Cis8IUFUVExJU1QgY2xhc3Njb25zdGFudHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpbmVjb250YWlucyAoY29udGFpbnMpKj4KKzwhQVRUTElTVCBsaW5lY29udGFpbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnJlYWRlciAoY2xhc3NwYXRoIHwgcGFyYW0pKj4KKzwhQVRUTElTVCBmaWx0ZXJyZWFkZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNlcmVnZXggRU1QVFk+Cis8IUFUVExJU1QgcmVwbGFjZXJlZ2V4CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGFncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2V0b2tlbnMgKHRva2VuKSo+Cis8IUFUVExJU1QgcmVwbGFjZXRva2VucworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYmVnaW50b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZHRva2VuIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdG9rZW4gRU1QVFk+Cis8IUFUVExJU1QgdG9rZW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGtleSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXNjYXBldW5pY29kZSBFTVBUWT4KKzwhQVRUTElTVCBlc2NhcGV1bmljb2RlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpZ25vcmVibGFuayBFTVBUWT4KKzwhQVRUTElTVCBpZ25vcmVibGFuaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhaWxmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgdGFpbGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBza2lwIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFic3Rvc3BhY2VzIEVNUFRZPgorPCFBVFRMSVNUIHRhYnN0b3NwYWNlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFibGVuZ3RoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJlZml4bGluZXMgRU1QVFk+Cis8IUFUVExJU1QgcHJlZml4bGluZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRyaW0gRU1QVFk+Cis8IUFUVExJU1QgdHJpbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4cGFuZHByb3BlcnRpZXMgRU1QVFk+Cis8IUFUVExJU1QgZXhwYW5kcHJvcGVydGllcworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3RyaXBsaW5lYnJlYWtzIEVNUFRZPgorPCFBVFRMSVNUIHN0cmlwbGluZWJyZWFrcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZWJyZWFrcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2VzdHJpbmcgRU1QVFk+Cis8IUFUVExJU1QgcmVwbGFjZXN0cmluZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN0cmlwbGluZWNvbW1lbnRzIChjb21tZW50KSo+Cis8IUFUVExJU1Qgc3RyaXBsaW5lY29tbWVudHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgY29tbWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0b2tlbmZpbHRlciAoY29udGFpbnNzdHJpbmcgfCBsaW5ldG9rZW5pemVyIHwgdHJpbSB8IHN0cmluZ3Rva2VuaXplciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2VzdHJpbmcgfCBpZ25vcmVibGFuayB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBjb250YWluc3JlZ2V4IHwgZmlsZXRva2VuaXplcikqPgorPCFBVFRMSVNUIHRva2VuZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZWxpbW91dHB1dCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbnRhaW5zc3RyaW5nIEVNUFRZPgorPCFBVFRMSVNUIGNvbnRhaW5zc3RyaW5nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjb250YWlucyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpbmV0b2tlbml6ZXIgRU1QVFk+Cis8IUFUVExJU1QgbGluZXRva2VuaXplcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWRlbGltcyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdHJpbmd0b2tlbml6ZXIgRU1QVFk+Cis8IUFUVExJU1Qgc3RyaW5ndG9rZW5pemVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdXBwcmVzc2RlbGltcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVsaW1zICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlbGltc2FyZXRva2VucyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWxpbXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZWxldGVjaGFyYWN0ZXJzIEVNUFRZPgorPCFBVFRMSVNUIGRlbGV0ZWNoYXJhY3RlcnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNoYXJzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29udGFpbnNyZWdleCBFTVBUWT4KKzwhQVRUTElTVCBjb250YWluc3JlZ2V4CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGFncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGV0b2tlbml6ZXIgRU1QVFk+Cis8IUFUVExJU1QgZmlsZXRva2VuaXplcgorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3RyaXBqYXZhY29tbWVudHMgRU1QVFk+Cis8IUFUVExJU1Qgc3RyaXBqYXZhY29tbWVudHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpbmVjb250YWluc3JlZ2V4cCAocmVnZXhwKSo+Cis8IUFUVExJU1QgbGluZWNvbnRhaW5zcmVnZXhwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZWdleHAgRU1QVFk+Cis8IUFUVExJU1QgcmVnZXhwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnNldCAoZmlsdGVyc2V0IHwgZmlsdGVyIHwgZmlsdGVyc2ZpbGUpKj4KKzwhQVRUTElTVCBmaWx0ZXJzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJlZ2ludG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmR0b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcnNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVyIEVNUFRZPgorPCFBVFRMSVNUIGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGZpbHRlcnNmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGliZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgbGliZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB1cmxiYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWltcGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRldXJsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXNmaWxlc2VsZWN0ZWQgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIGlzZmlsZXNlbGVjdGVkCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXJnZW1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBtZXJnZW1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaWRlbnRpdHltYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgaWRlbnRpdHltYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNjcmlwdGZpbHRlciAoI1BDREFUQSk+Cis8IUFUVExJU1Qgc2NyaXB0ZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVucGFja2FnZW1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCB1bnBhY2thZ2VtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhhbmRsZWRpcnNlcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbmNhdGZpbHRlciBFTVBUWT4KKzwhQVRUTElTVCBjb25jYXRmaWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZXBlbmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHRlbnNpb24gRU1QVFk+Cis8IUFUVExJU1QgZXh0ZW5zaW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9udmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwZWNpZmljYXRpb252ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZW5zaW9ubmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9udmVuZG9yaWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGVjaWZpY2F0aW9udmVuZG9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb251cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9udmVuZG9yIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ2xvYm1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBnbG9ibWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBoYW5kbGVkaXJzZXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJjaGFpbiAoaGVhZGZpbHRlciB8IGNsYXNzY29uc3RhbnRzIHwgbGluZWNvbnRhaW5zIHwgZmlsdGVycmVhZGVyIHwgcmVwbGFjZXJlZ2V4IHwgcmVwbGFjZXRva2VucyB8IGVzY2FwZXVuaWNvZGUgfCBpZ25vcmVibGFuayB8IHRhaWxmaWx0ZXIgfCB0YWJzdG9zcGFjZXMgfCBwcmVmaXhsaW5lcyB8IHRyaW0gfCBleHBhbmRwcm9wZXJ0aWVzIHwgc3RyaXBsaW5lYnJlYWtzIHwgcmVwbGFjZXN0cmluZyB8IHN0cmlwbGluZWNvbW1lbnRzIHwgdG9rZW5maWx0ZXIgfCBzdHJpcGphdmFjb21tZW50cyB8IGNvbnRhaW5zcmVnZXggfCBkZWxldGVjaGFyYWN0ZXJzIHwgbGluZWNvbnRhaW5zcmVnZXhwKSo+Cis8IUFUVExJU1QgZmlsdGVyY2hhaW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21wb3NpdGVtYXBwZXIgKG1hcHBlcikqPgorPCFBVFRMSVNUIGNvbXBvc2l0ZW1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3NmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCByb290ZmlsZXNldCB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgcm9vdCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjbGFzc2ZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByb290Y2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJvb3RmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCByb290ZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcm9vdCBFTVBUWT4KKzwhQVRUTElTVCByb290CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZWdleHBtYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgcmVnZXhwbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBoYW5kbGVkaXJzZXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB4bWxjYXRhbG9nIChlbnRpdHkgfCBjbGFzc3BhdGggfCBjYXRhbG9ncGF0aCB8IGR0ZCB8IHhtbGNhdGFsb2cpKj4KKzwhQVRUTElTVCB4bWxjYXRhbG9nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjYXRhbG9ncGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlbnRpdHkgRU1QVFk+Cis8IUFUVExJU1QgZW50aXR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdWJsaWNpZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNhdGFsb2dwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBjYXRhbG9ncGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGR0ZCBFTVBUWT4KKzwhQVRUTElTVCBkdGQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1YmxpY2lkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmxhdHRlbm1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBmbGF0dGVubWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZXNjcmlwdGlvbiAoI1BDREFUQSk+Cis8IUFUVExJU1QgZGVzY3JpcHRpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjaGFpbmVkbWFwcGVyIChtYXBwZXIpKj4KKzwhQVRUTElTVCBjaGFpbmVkbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYWNrYWdlbWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIHBhY2thZ2VtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhhbmRsZWRpcnNlcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHppcGZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHppcGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3Vic3RpdHV0aW9uIEVNUFRZPgorPCFBVFRMSVNUIHN1YnN0aXR1dGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4cHJlc3Npb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHRlbnNpb25TZXQgKGZpbGVzZXQgfCBsaWJmaWxlc2V0IHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgZXh0ZW5zaW9uU2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVkaXJlY3RvciAoZXJyb3JmaWx0ZXJjaGFpbiB8IG91dHB1dGZpbHRlcmNoYWluIHwgZXJyb3JtYXBwZXIgfCBpbnB1dGZpbHRlcmNoYWluIHwgb3V0cHV0bWFwcGVyIHwgaW5wdXRtYXBwZXIpKj4KKzwhQVRUTElTVCByZWRpcmVjdG9yCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGlucHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY3JlYXRlZW1wdHlmaWxlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhbHdheXNsb2cgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlcnJvcmZpbHRlcmNoYWluIChoZWFkZmlsdGVyIHwgY2xhc3Njb25zdGFudHMgfCBsaW5lY29udGFpbnMgfCBmaWx0ZXJyZWFkZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNldG9rZW5zIHwgZXNjYXBldW5pY29kZSB8IGlnbm9yZWJsYW5rIHwgdGFpbGZpbHRlciB8IHRhYnN0b3NwYWNlcyB8IHByZWZpeGxpbmVzIHwgdHJpbSB8IGV4cGFuZHByb3BlcnRpZXMgfCBzdHJpcGxpbmVicmVha3MgfCByZXBsYWNlc3RyaW5nIHwgc3RyaXBsaW5lY29tbWVudHMgfCB0b2tlbmZpbHRlciB8IHN0cmlwamF2YWNvbW1lbnRzIHwgY29udGFpbnNyZWdleCB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBsaW5lY29udGFpbnNyZWdleHApKj4KKzwhQVRUTElTVCBlcnJvcmZpbHRlcmNoYWluCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3V0cHV0ZmlsdGVyY2hhaW4gKGhlYWRmaWx0ZXIgfCBjbGFzc2NvbnN0YW50cyB8IGxpbmVjb250YWlucyB8IGZpbHRlcnJlYWRlciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2V0b2tlbnMgfCBlc2NhcGV1bmljb2RlIHwgaWdub3JlYmxhbmsgfCB0YWlsZmlsdGVyIHwgdGFic3Rvc3BhY2VzIHwgcHJlZml4bGluZXMgfCB0cmltIHwgZXhwYW5kcHJvcGVydGllcyB8IHN0cmlwbGluZWJyZWFrcyB8IHJlcGxhY2VzdHJpbmcgfCBzdHJpcGxpbmVjb21tZW50cyB8IHRva2VuZmlsdGVyIHwgc3RyaXBqYXZhY29tbWVudHMgfCBjb250YWluc3JlZ2V4IHwgZGVsZXRlY2hhcmFjdGVycyB8IGxpbmVjb250YWluc3JlZ2V4cCkqPgorPCFBVFRMSVNUIG91dHB1dGZpbHRlcmNoYWluCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXJyb3JtYXBwZXIgKGNsYXNzcGF0aCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIGVycm9ybWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChpZGVudGl0eSB8IGZsYXR0ZW4gfCBnbG9iIHwgbWVyZ2UgfCByZWdleHAgfCBwYWNrYWdlIHwgdW5wYWNrYWdlKSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbnB1dGZpbHRlcmNoYWluIChoZWFkZmlsdGVyIHwgY2xhc3Njb25zdGFudHMgfCBsaW5lY29udGFpbnMgfCBmaWx0ZXJyZWFkZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNldG9rZW5zIHwgZXNjYXBldW5pY29kZSB8IGlnbm9yZWJsYW5rIHwgdGFpbGZpbHRlciB8IHRhYnN0b3NwYWNlcyB8IHByZWZpeGxpbmVzIHwgdHJpbSB8IGV4cGFuZHByb3BlcnRpZXMgfCBzdHJpcGxpbmVicmVha3MgfCByZXBsYWNlc3RyaW5nIHwgc3RyaXBsaW5lY29tbWVudHMgfCB0b2tlbmZpbHRlciB8IHN0cmlwamF2YWNvbW1lbnRzIHwgY29udGFpbnNyZWdleCB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBsaW5lY29udGFpbnNyZWdleHApKj4KKzwhQVRUTElTVCBpbnB1dGZpbHRlcmNoYWluCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3V0cHV0bWFwcGVyIChjbGFzc3BhdGggfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBvdXRwdXRtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGlkZW50aXR5IHwgZmxhdHRlbiB8IGdsb2IgfCBtZXJnZSB8IHJlZ2V4cCB8IHBhY2thZ2UgfCB1bnBhY2thZ2UpICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlucHV0bWFwcGVyIChjbGFzc3BhdGggfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBpbnB1dG1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoaWRlbnRpdHkgfCBmbGF0dGVuIHwgZ2xvYiB8IG1lcmdlIHwgcmVnZXhwIHwgcGFja2FnZSB8IHVucGFja2FnZSkgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJvcGVydHlmaWxlIChlbnRyeSkqPgorPCFBVFRMSVNUIHByb3BlcnR5ZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZW50cnkgRU1QVFk+Cis8IUFUVExJU1QgZW50cnkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9wZXJhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZXkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChpbnQgfCBkYXRlIHwgc3RyaW5nKSAjSU1QTElFRAorICAgICAgICAgIHVuaXQgKG1pbGxpc2Vjb25kIHwgc2Vjb25kIHwgbWludXRlIHwgaG91ciB8IGRheSB8IHdlZWsgfCBtb250aCB8IHllYXIpICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2RpciBFTVBUWT4KKzwhQVRUTElTVCBjY21rZGlyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jaGVja291dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbXBvcnR0eXBlbGliIEVNUFRZPgorPCFBVFRMSVNUIGltcG9ydHR5cGVsaWIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVuc2FmZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXN5c2FycmF5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWVzcGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzY2hlY2tpbiBFTVBUWT4KKzwhQVRUTElTVCB2c3NjaGVja2luCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcWwgKCNQQ0RBVEEgfCBmaWxlc2V0IHwgY2xhc3NwYXRoIHwgdHJhbnNhY3Rpb24pKj4KKzwhQVRUTElTVCBzcWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9uZXJyb3IgKGNvbnRpbnVlIHwgc3RvcCB8IGFib3J0KSAjSU1QTElFRAorICAgICAgICAgIHVzZXJpZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXV0b2NvbW1pdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZGJtcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByaW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRyaXZlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3doZWFkZXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlbGltaXRlcnR5cGUgKG5vcm1hbCB8IHJvdykgI0lNUExJRUQKKyAgICAgICAgICBlc2NhcGVwcm9jZXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FjaGluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZm9ybWF0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlbGltaXRlciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRyYW5zYWN0aW9uICgjUENEQVRBKT4KKzwhQVRUTElTVCB0cmFuc2FjdGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3ZzcGFzcyBFTVBUWT4KKzwhQVRUTElTVCBjdnNwYXNzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdnNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjc2MgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgcmVzb3VyY2UgfCBkZWZpbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZWZlcmVuY2UgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY3NjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbjMyaWNvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmluaXRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWluY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1dGY4b3V0cHV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXJlc3BvbnNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWRlZmF1bHRyZWZlcmVuY2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdhcm5sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbjMycmVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jcmVtZW50YWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9jb25maWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbG1vZHVsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5zYWZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVhbGlnbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldHR5cGUgKGV4ZSB8IGxpYnJhcnkgfCBtb2R1bGUgfCB3aW5leGUpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVzb3VyY2UgRU1QVFk+Cis8IUFUVExJU1QgcmVzb3VyY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHVibGljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVtYmVkICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlZmluZSBFTVBUWT4KKzwhQVRUTElTVCBkZWZpbmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlZmVyZW5jZSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgcmVmZXJlbmNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHNyYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGlybmFtZSBFTVBUWT4KKzwhQVRUTElTVCBkaXJuYW1lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXJlZ2V4cCAoZmlsZXNldCB8IHN1YnN0aXR1dGlvbiB8IHJlZ2V4cCkqPgorPCFBVFRMSVNUIHJlcGxhY2VyZWdleHAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZsYWdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXRjaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBnZXQgRU1QVFk+Cis8IUFUVExJU1QgZ2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZWVycm9ycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXRpbWVzdGFtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamp0cmVlIEVNUFRZPgorPCFBVFRMSVNUIGpqdHJlZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbm9kZWRlZmF1bHR2b2lkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJ1aWxkbm9kZWZpbGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGRpcmVjdG9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdGF0aWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgamF2YWNjaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RlZmFjdG9yeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtdWx0aSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aXNpdG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGV1c2VzcGFyc2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpc2l0b3JleGNlcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2Rlc2NvcGVob29rICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RlcGFja2FnZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNsZWVwIEVNUFRZPgorPCFBVFRMSVNUIHNsZWVwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBob3VycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWlsbGlzZWNvbmRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWludXRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2Vjb25kcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphcmxpYi1kaXNwbGF5IChmaWxlc2V0KSo+Cis8IUFUVExJU1QgamFybGliLWRpc3BsYXkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGVuZ3RoIEVNUFRZPgorPCFBVFRMSVNUIGxlbmd0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGVuZ3RoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRyaW0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbW9kZSAoZWFjaCB8IGFsbCkgI0lNUExJRUQKKyAgICAgICAgICBzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aGVuIChlcXVhbCB8IGdyZWF0ZXIgfCBsZXNzKSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlcGVuZHNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgdGFyZ2V0ZmlsZXNldCB8IHNyY2ZpbGVzZXQgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBzcmNmaWxlbGlzdCB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCB8IHRhcmdldGZpbGVsaXN0KSo+Cis8IUFUVExJU1QgZGVwZW5kc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldGZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHRhcmdldGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNyY2ZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHNyY2ZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNyY2ZpbGVsaXN0IChmaWxlKSo+Cis8IUFUVExJU1Qgc3JjZmlsZWxpc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldGZpbGVsaXN0IChmaWxlKSo+Cis8IUFUVExJU1QgdGFyZ2V0ZmlsZWxpc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHppcCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IHppcGdyb3VwZmlsZXNldCB8IHppcGZpbGVzZXQgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB6aXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHdoZW5lbXB0eSAoZmFpbCB8IHNraXAgfCBjcmVhdGUpICNJTVBMSUVECisgICAgICAgICAga2VlcGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkdXBsaWNhdGUgKGFkZCB8IHByZXNlcnZlIHwgZmFpbCkgI0lNUExJRUQKKyAgICAgICAgICByb3VuZHVwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVwZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgemlwZ3JvdXBmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB6aXBncm91cGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhdGNoIEVNUFRZPgorPCFBVFRMSVNUIHBhdGNoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdHJpcCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3JpZ2luYWxmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0Y2hmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmV2ZXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhY2t1cHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaWdub3Jld2hpdGVzcGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpzcGMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IGNvbXBpbGVyY2xhc3NwYXRoIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IHdlYmFwcCB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QganNwYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbWFwcGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGllcGx1Z2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVyaWJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3ZWJ4bWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaXJvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3ZWJpbmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21waWxlcmNsYXNzcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgY29tcGlsZXJjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJhcHAgRU1QVFk+Cis8IUFUVExJU1Qgd2ViYXBwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3R5bGUgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IGZhY3RvcnkgfCBtb2RpZmllZCB8IHBhcmFtIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCB4bWxjYXRhbG9nIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBvdXRwdXRwcm9wZXJ0eSB8IG1hcHBlciB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHN0eWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2Nlc3NvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNjYW5pbmNsdWRlZGRpcmVjdG9yaWVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4dGVuc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxvYWRzdHlsZXNoZWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmFjdG9yeSAoYXR0cmlidXRlKSo+Cis8IUFUVExJU1QgZmFjdG9yeQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGF0dHJpYnV0ZSBFTVBUWT4KKzwhQVRUTElTVCBhdHRyaWJ1dGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIG91dHB1dHByb3BlcnR5IEVNUFRZPgorPCFBVFRMSVNUIG91dHB1dHByb3BlcnR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBuaWNlIEVNUFRZPgorPCFBVFRMSVNUIG5pY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdwcmlvcml0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN1cnJlbnRwcmlvcml0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRlc3QgKGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5IHwgcmVkaXJlY3RvciB8IGJvb3RjbGFzc3BhdGggfCBlbnYgfCBzeXNwcm9wZXJ0eXNldCB8IHBlcm1pc3Npb25zIHwganZtYXJnIHwgYXJnIHwgYXNzZXJ0aW9ucyB8IHRlc3RsZXQpKj4KKzwhQVRUTElTVCB0ZXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBqYXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VzaG93dHJhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2hvd3N1Y2Nlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAganZtdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2hvd2Jhbm5lciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3d0cmFjZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzeXNwcm9wZXJ0eSBFTVBUWT4KKzwhQVRUTElTVCBzeXNwcm9wZXJ0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAga2V5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJvb3RjbGFzc3BhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGJvb3RjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlbnYgRU1QVFk+Cis8IUFUVExJU1QgZW52CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBrZXkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3lzcHJvcGVydHlzZXQgKHByb3BlcnR5cmVmIHwgcHJvcGVydHlzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBzeXNwcm9wZXJ0eXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGR5bmFtaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmVnYXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBlcm1pc3Npb25zIChncmFudCB8IHJldm9rZSkqPgorPCFBVFRMSVNUIHBlcm1pc3Npb25zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBncmFudCBFTVBUWT4KKzwhQVRUTElTVCBncmFudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9ucyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJldm9rZSBFTVBUWT4KKzwhQVRUTElTVCByZXZva2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFjdGlvbnMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqdm1hcmcgRU1QVFk+Cis8IUFUVExJU1QganZtYXJnCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhcmcgRU1QVFk+Cis8IUFUVExJU1QgYXJnCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0ZXN0bGV0ICgjUENEQVRBKT4KKzwhQVRUTElTVCB0ZXN0bGV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0c3RhbXAgKGZvcm1hdCkqPgorPCFBVFRMSVNUIHRzdGFtcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZvcm1hdCBFTVBUWT4KKzwhQVRUTElTVCBmb3JtYXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2FsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWV6b25lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5pdCAobWlsbGlzZWNvbmQgfCBzZWNvbmQgfCBtaW51dGUgfCBob3VyIHwgZGF5IHwgd2VlayB8IG1vbnRoIHwgeWVhcikgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvZmZzZXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1bndhciAoZmlsZXNldCB8IHBhdHRlcm5zZXQpKj4KKzwhQVRUTElTVCB1bndhcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NoaXN0b3J5IEVNUFRZPgorPCFBVFRMSVNUIHZzc2hpc3RvcnkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0eWxlIChicmllZiB8IGNvZGVkaWZmIHwgbm9maWxlIHwgZGVmYXVsdCkgI0lNUExJRUQKKyAgICAgICAgICBudW1kYXlzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbWxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb21kYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9sYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGVmb3JtYXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN2c2NoYW5nZWxvZyAoZmlsZXNldCB8IHVzZXIgfCBjb21tYW5kbGluZSkqPgorPCFBVFRMSVNUIGN2c2NoYW5nZWxvZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY3ZzcnNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0YXJ0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3Zzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYWxseXF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcnNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9leGVjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYXlzaW5wYXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhZyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVzZXIgRU1QVFk+Cis8IUFUVExJU1QgdXNlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdXNlcmlkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlzcGxheW5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21tYW5kbGluZSAobWFya2VyIHwgYXJndW1lbnQpKj4KKzwhQVRUTElTVCBjb21tYW5kbGluZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1hcmtlciBFTVBUWT4KKzwhQVRUTElTVCBtYXJrZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFyZ3VtZW50IEVNUFRZPgorPCFBVFRMSVNUIGFyZ3VtZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21jaGVja2luIChmaWxlc2V0KSo+Cis8IUFUVExJU1QgY2NtY2hlY2tpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFzayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJ6aXAyIEVNUFRZPgorPCFBVFRMSVNUIGJ6aXAyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3luYyAoZmlsZXNldCkqPgorPCFBVFRMSVNUIHN5bmMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZW1wdHlkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NhZGQgRU1QVFk+Cis8IUFUVExJU1QgdnNzYWRkCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhZG9jICh0YWdsZXQgfCBkb2NsZXQgfCBwYWNrYWdlIHwgYXJnIHwgbGluayB8IGRvY3RpdGxlIHwgYm90dG9tIHwgZ3JvdXAgfCBwYWNrYWdlc2V0IHwgZmlsZXNldCB8IGNsYXNzcGF0aCB8IHNvdXJjZXBhdGggfCBmb290ZXIgfCBzb3VyY2UgfCBib290Y2xhc3NwYXRoIHwgaGVhZGVyIHwgZXhjbHVkZXBhY2thZ2UgfCB0YWcpKj4KKzwhQVRUTElTVCBqYXZhZG9jCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBib3R0b20gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGVhZGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGluayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vaW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWNjZXNzIChwcm90ZWN0ZWQgfCBwdWJsaWMgfCBwYWNrYWdlIHwgcHJpdmF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3F1YWxpZmllciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1YmxpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRob3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9vdGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlZXh0ZXJuYWxmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHByb3RlY3RlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBicmVha2l0ZXJhdG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vbmF2YmFyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyb3VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlua29mZmxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRpdGlvbmFscGFyYW0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rc291cmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvY2FsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZW5vc291cmNlcGFja2FnZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByaXZhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZXByZWNhdGVkbGlzdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZXNoZWV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2VuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXBhY2thZ2VuYW1lcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlbmFtZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW5kb3d0aXRsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdHJlZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGxpdGluZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VsaXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2N0aXRsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcmlhbHdhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2xkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGVscGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZWZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZGlycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vaGVscCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2RlcHJlY2F0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3ZlcnZpZXcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YWdsZXQgKHBhdGgpKj4KKzwhQVRUTElTVCB0YWdsZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRvY2xldCAocGF0aCB8IHBhcmFtKSo+Cis8IUFUVExJU1QgZG9jbGV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYWNrYWdlIEVNUFRZPgorPCFBVFRMSVNUIHBhY2thZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaW5rIEVNUFRZPgorPCFBVFRMSVNUIGxpbmsKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhyZWYgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvZmZsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VsaXN0bG9jIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWxpbmsgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZG9jdGl0bGUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGRvY3RpdGxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBib3R0b20gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGJvdHRvbQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ3JvdXAgKHBhY2thZ2UgfCB0aXRsZSkqPgorPCFBVFRMSVNUIGdyb3VwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpdGxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGl0bGUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHRpdGxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYWNrYWdlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBwYWNrYWdlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb3VyY2VwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBzb3VyY2VwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZm9vdGVyICgjUENEQVRBKT4KKzwhQVRUTElTVCBmb290ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvdXJjZSBFTVBUWT4KKzwhQVRUTElTVCBzb3VyY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBoZWFkZXIgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGhlYWRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhjbHVkZXBhY2thZ2UgRU1QVFk+Cis8IUFUVExJU1QgZXhjbHVkZXBhY2thZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YWcgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHRhZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNjb3BlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0cmFuc2xhdGUgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0cmFuc2xhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJ1bmRsZWNvdW50cnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidW5kbGVsYW5ndWFnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNyY2VuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVuZGxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVuZGxlZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1bmRsZXZhcmlhbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZHRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3RhcnR0b2tlbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNpZ25qYXIgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBzaWduamFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdG9yZXBhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYXp5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGphciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2V5cGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFsaWFzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VjdGlvbnNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtleXN0b3JlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaWdmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnRlcm5hbHNmICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN0b3JldHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNpZ25lZGphciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbG9jayBFTVBUWT4KKzwhQVRUTElTVCBjY2xvY2sKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9ianNlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG51c2VycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9ic29sZXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNob3duIChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBjaG93bgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvd25lciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIHNyY2ZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldGZpbGUgRU1QVFk+Cis8IUFUVExJU1QgdGFyZ2V0ZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamFybGliLWF2YWlsYWJsZSAoZXh0ZW5zaW9uc2V0IHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgamFybGliLWF2YWlsYWJsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4dGVuc2lvbnNldCAoZmlsZXNldCB8IGxpYmZpbGVzZXQgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBleHRlbnNpb25zZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBXc2RsVG9Eb3RuZXQgRU1QVFk+Cis8IUFUVExJU1QgV3NkbFRvRG90bmV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZXNwYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYnVpbGRudW1iZXIgRU1QVFk+Cis8IUFUVExJU1QgYnVpbGRudW1iZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganBjb3ZtZXJnZSAoZmlsZXNldCkqPgorPCFBVFRMSVNUIGpwY292bWVyZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdnN2ZXJzaW9uIChjb21tYW5kbGluZSkqPgorPCFBVFRMSVNUIGN2c3ZlcnNpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGN2c3JzaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhc3NmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdnNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVhbGx5cXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVydmVyc2lvbnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9ubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xpZW50dmVyc2lvbnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9leGVjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFnIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZWpiamFyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCB3ZWJsb2dpY3RvcGxpbmsgfCBwcmVzZW50IHwgbm9uZSB8IGpib3NzIHwgbm90IHwgYm9ybGFuZCB8IHdlYmxvZ2ljIHwgdHlwZSB8IG1vZGlmaWVkIHwgaXBsYW5ldCB8IG9yIHwgam9uYXMgfCBjb250YWlucyB8IGRlcGVuZCB8IHN1cHBvcnQgfCBjbGFzc3BhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCB3ZWJzcGhlcmUgfCBjb250YWluc3JlZ2V4cCB8IGR0ZCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBlamJqYXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0b3JkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBiYXNlbmFtZXRlcm1pbmF0b3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNtcHZlcnNpb24gKDEuMCB8IDIuMCkgI0lNUExJRUQKKyAgICAgICAgICBkZXBlbmRlbmN5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWphcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmbGF0ZGVzdGRpciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1pbmcgKGVqYi1uYW1lIHwgZGlyZWN0b3J5IHwgZGVzY3JpcHRvciB8IGJhc2VqYXJuYW1lKSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJsb2dpY3RvcGxpbmsgKGNsYXNzcGF0aCB8IHdsY2xhc3NwYXRoIHwgc3lzcHJvcGVydHkpKj4KKzwhQVRUTElTVCB3ZWJsb2dpY3RvcGxpbmsKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5ld2NtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlamJkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1hcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVidWlsZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9wbGlua2R0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdsZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdlYmxvZ2ljZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2xjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1kZWJ1Z2xldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyYXRlZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkY21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmNjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZWpiYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b3BsaW5rZGVzY3JpcHRvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3bGNsYXNzcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1Qgd2xjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYm9zcyAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgamJvc3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYm9ybGFuZCAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgYm9ybGFuZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyaWZ5YXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YTJpaW9wcGFyYW1zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2R0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmlmeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmF0ZWNsaWVudCAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJsb2dpYyAoY2xhc3NwYXRoIHwgd2xjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eSkqPgorPCFBVFRMSVNUIHdlYmxvZ2ljCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuZXdjbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWpiZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYnVpbGQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdsZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdlYmxvZ2ljZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2xjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1kZWJ1Z2xldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyYXRlZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkY21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmNjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZWpiYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXBsYW5ldCAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgaXBsYW5ldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlhc2hvbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqb25hcyAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1Qgam9uYXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGpvbmFzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YWMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3JiIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9nZW5pYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBybWljb3B0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphdmFjb3B0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdmFsaWRhdGlvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vY29tcGlsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlY3Byb3BhZyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdXBwb3J0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBzdXBwb3J0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJzcGhlcmUgKGNsYXNzcGF0aCB8IHdhc2NsYXNzcGF0aCkqPgorPCFBVFRMSVNUIHdlYnNwaGVyZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmV3Y21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmR0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJtaWNvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9pbmZvcm0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVidWlsZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYnNjaGVtYSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlamJkZXBsb3kgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlMzUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGVtcGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdmFsaWRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29kZWdlbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYnZlbmRvciAoU1FMOTIgfCBTUUw5OSB8IERCMlVEQldJTl9WNzEgfCBEQjJVREJPUzM5MF9WNiB8IERCMlVEQkFTNDAwX1Y0UjUgfCBPUkFDTEVfVjggfCBJTkZPUk1JWF9WOTIgfCBTWUJBU0VfVjExOTIgfCBNU1NRTFNFUlZFUl9WNyB8IE1ZU1FMX1YzMjMpICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2FzY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkY21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRibmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRyYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2FzY2xhc3NwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCB3YXNjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3YXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgbWFuaWZlc3QgfCB0eXBlIHwgbWV0YWluZiB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGxpYiB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGluZGV4amFycyB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCB6aXBncm91cGZpbGVzZXQgfCB6aXBmaWxlc2V0IHwgY2xhc3NlcyB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCB3ZWJpbmYgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHdhcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAga2VlcGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGR1cGxpY2F0ZSAoYWRkIHwgcHJlc2VydmUgfCBmYWlsKSAjSU1QTElFRAorICAgICAgICAgIHdoZW5lbXB0eSAoZmFpbCB8IHNraXAgfCBjcmVhdGUpICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJvdW5kdXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2VieG1sIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdhcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNldG1hbmlmZXN0IChza2lwIHwgbWVyZ2UgfCBtZXJnZXdpdGhvdXRtYWluKSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYW5pZmVzdCAoYXR0cmlidXRlIHwgc2VjdGlvbikqPgorPCFBVFRMSVNUIG1hbmlmZXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzZWN0aW9uIChhdHRyaWJ1dGUpKj4KKzwhQVRUTElTVCBzZWN0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWV0YWluZiAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgbWV0YWluZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaWIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGxpYgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbmRleGphcnMgKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGluZGV4amFycworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNsYXNzZXMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNsYXNzZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2ViaW5mIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB3ZWJpbmYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVuYW1lIEVNUFRZPgorPCFBVFRMSVNUIHJlbmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2VxdWVudGlhbCAoJXRhc2tzOykqPgorPCFBVFRMSVNUIHNlcXVlbnRpYWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzZXJ2ZXJkZXBsb3kgKHdlYmxvZ2ljIHwgZ2VuZXJpYyB8IGpvbmFzKSo+Cis8IUFUVExJU1Qgc2VydmVyZGVwbG95CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ2VuZXJpYyAoYXJnIHwgY2xhc3NwYXRoIHwganZtYXJnKSo+Cis8IUFUVExJU1QgZ2VuZXJpYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByb3BlcnR5IChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBwcm9wZXJ0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJwcm9wZXJ0eSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVudmlyb25tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdWJhbnQgKHJlZmVyZW5jZSB8IGZpbGVzZXQgfCBidWlsZHBhdGhlbGVtZW50IHwgZGlyc2V0IHwgYnVpbGRwYXRoIHwgcHJvcGVydHlzZXQgfCBmaWxlbGlzdCB8IHByb3BlcnR5KSo+Cis8IUFUVExJU1Qgc3ViYW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljYW50ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluaGVyaXRhbGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0cmVmcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhbnRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVpbGRwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidWlsZHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJ1aWxkcGF0aGVsZW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgYnVpbGRwYXRoZWxlbWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYnVpbGRwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBidWlsZHBhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtb3ZlIChmaWx0ZXJjaGFpbiB8IGZpbGVzZXQgfCBmaWx0ZXJzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBtb3ZlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGF0dGVuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZW1wdHlkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVtdWx0aXBsZW1hcHBpbmdzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmVsYXN0bW9kaWZpZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlsZGFzbSBFTVBUWT4KKzwhQVRUTElTVCBpbGRhc20KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFzc2VtYmxlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyAoYXNjaWkgfCB1dGY4IHwgdW5pY29kZSkgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvZ3Jlc3NiYXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbGluZW51bWJlcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmF3ZXhjZXB0aW9uaGFuZGxpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2hvd3NvdXJjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtZXRhZGF0YSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBieXRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1b3RlYWxsbmFtZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBoZWFkZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlzaWJpbGl0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZWZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGl0ZW0gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb3B5ZGlyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjb3B5ZGlyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGF0dGVuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY2NoZWNraW4gRU1QVFk+Cis8IUFUVExJU1QgY2NjaGVja2luCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZXRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm93YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZGVudGljYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29weSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2N1bmxvY2sgRU1QVFk+Cis8IUFUVExJU1QgY2N1bmxvY2sKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9ianNlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3bGpzcGMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHdsanNwYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpeGNybGYgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGZpeGNybGYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhYiAoYWRkIHwgYXNpcyB8IHJlbW92ZSkgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3IgKGFkZCB8IGFzaXMgfCByZW1vdmUpICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlb2wgKGFzaXMgfCBjciB8IGxmIHwgY3JsZiB8IG1hYyB8IHVuaXggfCBkb3MpICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgamF2YWZpbGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVvZiAoYWRkIHwgYXNpcyB8IHJlbW92ZSkgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhYmxlbmd0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaXhsYXN0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29zZ2V0IEVNUFRZPgorPCFBVFRMSVNUIHNvc2dldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc29zaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvamVjdHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NhY2hlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc2NtZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0aGNvbnZlcnQgKHBhdGggfCBtYXAgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBwYXRoY29udmVydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoc2VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcnNlcCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNldG9uZW1wdHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXRvcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1hcCBFTVBUWT4KKzwhQVRUTElTVCBtYXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlY29yZCBFTVBUWT4KKzwhQVRUTElTVCByZWNvcmQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dsZXZlbCAoZXJyb3IgfCB3YXJuIHwgaW5mbyB8IHZlcmJvc2UgfCBkZWJ1ZykgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVtYWNzbW9kZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb24gKHN0YXJ0IHwgc3RvcCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleGVjIChhcmcgfCByZWRpcmVjdG9yIHwgZW52KSo+Cis8IUFUVExJU1QgZXhlYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtsYWJlbCBFTVBUWT4KKzwhQVRUTElTVCBjY21rbGFiZWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGVuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2b2IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganBjb3ZyZXBvcnQgKHJlZmVyZW5jZSB8IGNvdmVyYWdlcGF0aCB8IHNvdXJjZXBhdGgpKj4KKzwhQVRUTElTVCBqcGNvdnJlcG9ydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc25hcHNob3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGVyY2VudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChleGVjdXRpdmUgfCBzdW1tYXJ5IHwgZGV0YWlsZWQgfCB2ZXJ5ZGV0YWlsZWQpICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKGh0bWwgfCB0ZXh0IHwgeG1sKSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzb3VyY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb3ZlcmFnZXBhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGNvdmVyYWdlcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4ZWNvbiAobWFwcGVyIHwgc3JjZmlsZSB8IHRhcmdldGZpbGUgfCByZWRpcmVjdG9yIHwgZmlsZWxpc3QgfCBlbnYgfCBmaWxlc2V0IHwgZGlyc2V0IHwgYXJnKSo+Cis8IUFUVExJU1QgZXhlY29uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQKKyAgICAgICAgICBtYXhwYXJhbGxlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRzb3VyY2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWNoZWNrb3V0IChmaWxlc2V0KSo+Cis8IUFUVExJU1QgY2NtY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbWFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2sgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNjbWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhbnQgKHJlZmVyZW5jZSB8IHByb3BlcnR5c2V0IHwgcHJvcGVydHkgfCB0YXJnZXQpKj4KKzwhQVRUTElTVCBhbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdGFsbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0cmVmcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJnZXQgRU1QVFk+Cis8IUFUVExJU1QgdGFyZ2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgeG1sdmFsaWRhdGUgKGZpbGVzZXQgfCBjbGFzc3BhdGggfCBkdGQgfCB4bWxjYXRhbG9nIHwgYXR0cmlidXRlIHwgcHJvcGVydHkpKj4KKzwhQVRUTElTVCB4bWx2YWxpZGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxlbmllbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgeHNsdCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgZmFjdG9yeSB8IG1vZGlmaWVkIHwgcGFyYW0gfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHhtbGNhdGFsb2cgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IG91dHB1dHByb3BlcnR5IHwgbWFwcGVyIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgeHNsdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9jZXNzb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzY2FuaW5jbHVkZWRkaXJlY3RvcmllcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleHRlbnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsb2Fkc3R5bGVzaGVldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3R5bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlwbGFuZXQtZWpiYyAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgaXBsYW5ldC1lamJjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlamJkZXNjcmlwdG9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWFzZGVzY3JpcHRvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlhc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmF0ZWQgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NtY2hlY2tpbnRhc2sgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBjY21jaGVja2ludGFzaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFzayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGd6aXAgRU1QVFk+Cis8IUFUVExJU1QgZ3ppcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG5hdGl2ZTJhc2NpaSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgYXJnIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgbWFwcGVyIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgbmF0aXZlMmFzY2lpCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJldmVyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY3JtdHlwZSBFTVBUWT4KKzwhQVRUTElTVCBjY3JtdHlwZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJtYWxsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZWtpbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2b2IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZWFyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IG1hbmlmZXN0IHwgdHlwZSB8IG1ldGFpbmYgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBhcmNoaXZlcyB8IGluZGV4amFycyB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCB6aXBncm91cGZpbGVzZXQgfCB6aXBmaWxlc2V0IHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZWFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZHVwbGljYXRlIChhZGQgfCBwcmVzZXJ2ZSB8IGZhaWwpICNJTVBMSUVECisgICAgICAgICAgd2hlbmVtcHR5IChmYWlsIHwgc2tpcCB8IGNyZWF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcm91bmR1cCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgamFyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVhcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBweG1sIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc2V0bWFuaWZlc3QgKHNraXAgfCBtZXJnZSB8IG1lcmdld2l0aG91dG1haW4pICNJTVBMSUVECisgICAgICAgICAgemlwZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFyY2hpdmVzIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBhcmNoaXZlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbnB1dCAoI1BDREFUQSk+Cis8IUFUVExJU1QgaW5wdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHR2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbGlkYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcmVzZXRkZWYgKCV0YXNrczspKj4KKzwhQVRUTElTVCBwcmVzZXRkZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcm1pYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBleHRkaXJzIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGNvbXBpbGVyYXJnIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgcm1pYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyaWZ5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWlvcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpZGxvcHRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZGlycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZWJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBiYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVhbnRydW50aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVqYXZhcnVudGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWRsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlpb3BvcHRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN0dWJ2ZXJzaW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29tcGlsZXJhcmcgRU1QVFk+Cis8IUFUVExJU1QgY29tcGlsZXJhcmcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjaGVja3N1bSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNoZWNrc3VtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVleHQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b3RhbHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWFkYnVmZmVyc2l6ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmlmeXByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWxnb3JpdGhtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvdmlkZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZW92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYWlsIChmaWxlc2V0IHwgYmNjIHwgbWVzc2FnZSB8IHJlcGx5dG8gfCBjYyB8IGZyb20gfCB0bykqPgorPCFBVFRMSVNUIG1haWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2VmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyAoYXV0byB8IG1pbWUgfCB1dSB8IHBsYWluKSAjSU1QTElFRAorICAgICAgICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1YmplY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3NsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haWxwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZW1pbWV0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmNjbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGx5dG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWlsaG9zdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWZpbGVuYW1lcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYmNjIEVNUFRZPgorPCFBVFRMSVNUIGJjYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXNzYWdlICgjUENEQVRBKT4KKzwhQVRUTElTVCBtZXNzYWdlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBtaW1ldHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBseXRvIEVNUFRZPgorPCFBVFRMSVNUIHJlcGx5dG8KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2MgRU1QVFk+Cis8IUFUVExJU1QgY2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZnJvbSBFTVBUWT4KKzwhQVRUTElTVCBmcm9tCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRvIEVNUFRZPgorPCFBVFRMSVNUIHRvCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxvYWRmaWxlIChmaWx0ZXJjaGFpbikqPgorPCFBVFRMSVNUIGxvYWRmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NjaGVja291dCBFTVBUWT4KKzwhQVRUTElTVCB2c3NjaGVja291dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZXRsb2NhbGNvcHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGV0aW1lc3RhbXAgKGN1cnJlbnQgfCBtb2RpZmllZCB8IHVwZGF0ZWQpICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd3JpdGFibGVmaWxlcyAocmVwbGFjZSB8IHNraXAgfCBmYWlsKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvc2NoZWNraW4gRU1QVFk+Cis8IUFUVExJU1Qgc29zY2hlY2tpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc29zaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2plY3RwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jYWNoZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NjbWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1pbWVtYWlsIChmaWxlc2V0IHwgYmNjIHwgbWVzc2FnZSB8IHJlcGx5dG8gfCBjYyB8IGZyb20gfCB0bykqPgorPCFBVFRMSVNUIG1pbWVtYWlsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgKGF1dG8gfCBtaW1lIHwgdXUgfCBwbGFpbikgI0lNUExJRUQKKyAgICAgICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdWJqZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNzbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWlscG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2VtaW1ldHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJjY2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBseXRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbGhvc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVmaWxlbmFtZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGd1bnppcCBFTVBUWT4KKzwhQVRUTElTVCBndW56aXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29uY2F0ICgjUENEQVRBIHwgZmlsdGVyY2hhaW4gfCBmaWxlc2V0IHwgZmlsZWxpc3QgfCBwYXRoIHwgZm9vdGVyIHwgaGVhZGVyKSo+Cis8IUFUVExJU1QgY29uY2F0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJpbmFyeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlb2wgKGFzaXMgfCBjciB8IGxmIHwgY3JsZiB8IG1hYyB8IHVuaXggfCBkb3MpICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpeGxhc3RsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2FiIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY2FiCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjYWJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25zIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdG91Y2ggKGZpbGVzZXQgfCBmaWxlbGlzdCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIHRvdWNoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWtkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1pbGxpcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRldGltZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhcmFsbGVsICgldGFza3M7IHwgZGFlbW9ucykqPgorPCFBVFRMSVNUIHBhcmFsbGVsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwb2xsaW50ZXJ2YWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGhyZWFkc3BlcnByb2Nlc3NvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aHJlYWRjb3VudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmFueSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkYWVtb25zICgldGFza3M7KSo+Cis8IUFUVExJU1QgZGFlbW9ucworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYW50Y2FsbCAocmVmZXJlbmNlIHwgcHJvcGVydHlzZXQgfCB0YXJnZXQgfCBwYXJhbSkqPgorPCFBVFRMSVNUIGFudGNhbGwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdGFsbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0cmVmcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtibCBFTVBUWT4KKzwhQVRUTElTVCBjY21rYmwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5sYWJlbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmdWxsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWRlbnRpY2FsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWxpbmVyb290bmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY2NoZWNrb3V0IEVNUFRZPgorPCFBVFRMSVNUIGNjY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlc2VydmVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm90Y28gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGF0YSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBicmFuY2ggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHlwZWRlZiAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgdHlwZWRlZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkYXB0dG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvbmVycm9yIChmYWlsIHwgcmVwb3J0IHwgaWdub3JlKSAjSU1QTElFRAorICAgICAgICAgIGxvYWRlcnJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRhcHRlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcm1hdCAocHJvcGVydGllcyB8IHhtbCkgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJldmVyc2Vsb2FkZXIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgeG1scHJvcGVydHkgKHhtbGNhdGFsb2cpKj4KKzwhQVRUTElTVCB4bWxwcm9wZXJ0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlbWFudGljYXR0cmlidXRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwcm9vdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb2xsYXBzZWF0dHJpYnV0ZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmFsaWRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJvb3RkaXJlY3RvcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2VtYW50aWNhdHRyaWJ1dGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW1wb3J0IEVNUFRZPgorPCFBVFRMSVNUIGltcG9ydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25hbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb3B5IChmaWx0ZXJjaGFpbiB8IGZpbGVzZXQgfCBmaWx0ZXJzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBjb3B5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGF0dGVuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZW1wdHlkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVtdWx0aXBsZW1hcHBpbmdzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmVsYXN0bW9kaWZpZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpzaGFycGMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgcmVzb3VyY2UgfCBkZWZpbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZWZlcmVuY2UgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QganNoYXJwYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJlc3BvbnNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haW5jbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxtb2R1bGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luMzJpY29uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXRmOG91dHB1dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVmYXVsdHJlZmVyZW5jZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0dHlwZSAoZXhlIHwgbGlicmFyeSB8IG1vZHVsZSB8IHdpbmV4ZSkgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgd2luMzJyZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlY3VyZXNjb3BpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1cmVqYXZhICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2FybmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlZmlsZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzeW1saW5rIChmaWxlc2V0KSo+Cis8IUFUVExJU1Qgc3ltbGluaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGlua2ZpbGVuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhbnRzdHJ1Y3R1cmUgRU1QVFk+Cis8IUFUVExJU1QgYW50c3RydWN0dXJlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2NyaXB0ICgjUENEQVRBKT4KKzwhQVRUTElTVCBzY3JpcHQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWNyZWF0ZXRhc2sgRU1QVFk+Cis8IUFUVExJU1QgY2NtY3JlYXRldGFzaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3Vic3lzdGVtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFzayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBsYXRmb3JtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWxlYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBycG0gRU1QVFk+Cis8IUFUVExJU1QgcnBtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZW1vdmVzb3VyY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFuYnVpbGRkaXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVtb3Zlc3BlYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGVjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvcGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJwbWJ1aWxkY29tbWFuZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlbGV0ZSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGRlbGV0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVlbXB0eWRpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVsZXRlb25leGl0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNlIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHJlcGxhY2VmaWx0ZXIgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgcmVwbGFjZXRva2VuIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgcmVwbGFjZXZhbHVlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgcmVwbGFjZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eWZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VtbWFyeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZWZpbHRlcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2VmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgcmVwbGFjZWZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXRva2VuICgjUENEQVRBKT4KKzwhQVRUTElTVCByZXBsYWNldG9rZW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2V2YWx1ZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgcmVwbGFjZXZhbHVlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtbWV0cmljcyAoZmlsZXNldCB8IGp2bWFyZyB8IGNsYXNzcGF0aCB8IHBhdGggfCBzb3VyY2VwYXRoKSo+Cis8IUFUVExJU1QgbW1ldHJpY3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWV0YW1hdGFob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgKGNvbXBpbGF0aW9uLXVuaXRzIHwgZmlsZXMgfCBtZXRob2RzIHwgdHlwZXMgfCBwYWNrYWdlcykgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhdHRyaWIgKG1hcHBlciB8IHNyY2ZpbGUgfCB0YXJnZXRmaWxlIHwgcmVkaXJlY3RvciB8IGZpbGVsaXN0IHwgZW52IHwgZmlsZXNldCB8IGRpcnNldCB8IGFyZykqPgorPCFBVFRMSVNUIGF0dHJpYgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVhZG9ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGhpZGRlbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVtaXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzeXN0ZW0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmNoaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIgfCBib3RoKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdhaXRmb3IgKGlzZmFsc2UgfCBpc3JlZmVyZW5jZSB8IGVxdWFscyB8IGF2YWlsYWJsZSB8IG5vdCB8IGNvbnRhaW5zIHwgb3MgfCBvciB8IGFuZCB8IGZpbGVzbWF0Y2ggfCBjaGVja3N1bSB8IGlzdHJ1ZSB8IGlzc2V0IHwgc29ja2V0IHwgaHR0cCB8IHVwdG9kYXRlKSo+Cis8IUFUVExJU1Qgd2FpdGZvcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2hlY2tldmVyeXVuaXQgKG1pbGxpc2Vjb25kIHwgc2Vjb25kIHwgbWludXRlIHwgaG91ciB8IGRheSB8IHdlZWspICNJTVBMSUVECisgICAgICAgICAgY2hlY2tldmVyeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHdhaXR1bml0IChtaWxsaXNlY29uZCB8IHNlY29uZCB8IG1pbnV0ZSB8IGhvdXIgfCBkYXkgfCB3ZWVrKSAjSU1QTElFRAorICAgICAgICAgIG1heHdhaXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc2ZhbHNlIEVNUFRZPgorPCFBVFRMSVNUIGlzZmFsc2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZhbHVlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlzcmVmZXJlbmNlIEVNUFRZPgorPCFBVFRMSVNUIGlzcmVmZXJlbmNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlcXVhbHMgRU1QVFk+Cis8IUFUVExJU1QgZXF1YWxzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0cmltICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFyZzIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmcxIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhdmFpbGFibGUgKGNsYXNzcGF0aCB8IGZpbGVwYXRoKSo+Cis8IUFUVExJU1QgYXZhaWxhYmxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVzeXN0ZW1jbGFzc2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIpICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGVwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBmaWxlcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG9zIEVNUFRZPgorPCFBVFRMSVNUIG9zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhbWlseSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyY2ggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlc21hdGNoIEVNUFRZPgorPCFBVFRMSVNUIGZpbGVzbWF0Y2gKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZTEgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc3RydWUgRU1QVFk+Cis8IUFUVExJU1QgaXN0cnVlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc3NldCBFTVBUWT4KKzwhQVRUTElTVCBpc3NldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb2NrZXQgRU1QVFk+Cis8IUFUVExJU1Qgc29ja2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaHR0cCBFTVBUWT4KKzwhQVRUTElTVCBodHRwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnNiZWdpbmF0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdXB0b2RhdGUgKHNyY2ZpbGVzIHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgdXB0b2RhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmNmaWxlcyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgc3JjZmlsZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVudGFyIChmaWxlc2V0IHwgcGF0dGVybnNldCkqPgorPCFBVFRMSVNUIHVudGFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAobm9uZSB8IGd6aXAgfCBiemlwMikgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxvYWRwcm9wZXJ0aWVzIChmaWx0ZXJjaGFpbiB8IGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGxvYWRwcm9wZXJ0aWVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlY2hvcHJvcGVydGllcyAocHJvcGVydHlzZXQpKj4KKzwhQVRUTElTVCBlY2hvcHJvcGVydGllcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcm1hdCAoeG1sIHwgdGV4dCkgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqdW5pdCAoY2xhc3NwYXRoIHwgc3lzcHJvcGVydHkgfCBib290Y2xhc3NwYXRoIHwgc3lzcHJvcGVydHlzZXQgfCBlbnYgfCB0ZXN0IHwgcGVybWlzc2lvbnMgfCBqdm1hcmcgfCBmb3JtYXR0ZXIgfCBiYXRjaHRlc3QgfCBhc3NlcnRpb25zKSo+Cis8IUFUVExJU1QganVuaXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZvcmsgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaGFsdG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJpbnRzdW1tYXJ5ICh0cnVlIHwgeWVzIHwgZmFsc2UgfCBubyB8IG9uIHwgb2ZmIHwgd2l0aE91dEFuZEVycikgI0lNUExJRUQKKyAgICAgICAgICBoYWx0b25mYWlsdXJlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWx1cmVwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3dvdXRwdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0ZW1wZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWFudHJ1bnRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVydHJhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JrbW9kZSAob25jZSB8IHBlclRlc3QgfCBwZXJCYXRjaCkgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbG9hZGluZyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmb3JtYXR0ZXIgRU1QVFk+Cis8IUFUVExJU1QgZm9ybWF0dGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1c2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKHBsYWluIHwgeG1sIHwgYnJpZWYpICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRlbnNpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBiYXRjaHRlc3QgKGZpbGVzZXQgfCBmb3JtYXR0ZXIpKj4KKzwhQVRUTElTVCBiYXRjaHRlc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGFsdG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWx1cmVwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcnRyYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGhhbHRvbmZhaWx1cmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNoZ3JwIChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBjaGdycAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBidW56aXAyIEVNUFRZPgorPCFBVFRMSVNUIGJ1bnppcDIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2hpY2hyZXNvdXJjZSAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1Qgd2hpY2hyZXNvdXJjZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvcHlmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGNvcHlmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZW92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2NyZWF0ZSBFTVBUWT4KKzwhQVRUTElTVCB2c3NjcmVhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFjcm9kZWYgKHNlcXVlbnRpYWwgfCBlbGVtZW50IHwgYXR0cmlidXRlIHwgdGV4dCkqPgorPCFBVFRMSVNUIG1hY3JvZGVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVsZW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgZWxlbWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaW1wbGljaXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGV4dCBFTVBUWT4KKzwhQVRUTElTVCB0ZXh0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0cmltICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbmFsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVuamFyIChmaWxlc2V0IHwgcGF0dGVybnNldCkqPgorPCFBVFRMSVNUIHVuamFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZiYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCByZXNvdXJjZSB8IGRlZmluZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHJlZmVyZW5jZSB8IHNyYyB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB2YmMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmVyZW5jZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VyZXNwb25zZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVtb3ZlaW50Y2hlY2tzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbmNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbG1vZHVsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW4zMmljb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25zdHJpY3QgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXRmOG91dHB1dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVmYXVsdHJlZmVyZW5jZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0dHlwZSAoZXhlIHwgbGlicmFyeSB8IG1vZHVsZSB8IHdpbmV4ZSkgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJvb3RuYW1lc3BhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdpbjMycmVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uZXhwbGljaXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2FybmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uY29tcGFyZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcG9ydHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZlcmVuY2VmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdzZGx0b2RvdG5ldCBFTVBUWT4KKzwhQVRUTElTVCB3c2RsdG9kb3RuZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuYW1lc3BhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBta2RpciBFTVBUWT4KKzwhQVRUTElTVCBta2RpcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbmRpdGlvbiAoaXNmYWxzZSB8IGlzcmVmZXJlbmNlIHwgZXF1YWxzIHwgYXZhaWxhYmxlIHwgbm90IHwgY29udGFpbnMgfCBvcyB8IG9yIHwgYW5kIHwgZmlsZXNtYXRjaCB8IGNoZWNrc3VtIHwgaXN0cnVlIHwgaXNzZXQgfCBzb2NrZXQgfCBodHRwIHwgdXB0b2RhdGUpKj4KKzwhQVRUTElTVCBjb25kaXRpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbHNlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3ZzIChjb21tYW5kbGluZSkqPgorPCFBVFRMSVNUIGN2cworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY3ZzcnNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN2c3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWFsbHlxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9ubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2V4ZWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YWcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0ZW1wZmlsZSBFTVBUWT4KKzwhQVRUTElTVCB0ZW1wZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGp1bml0cmVwb3J0IChyZXBvcnQgfCBmaWxlc2V0KSo+Cis8IUFUVExJU1QganVuaXRyZXBvcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcG9ydCBFTVBUWT4KKzwhQVRUTElTVCByZXBvcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3R5bGVkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKGZyYW1lcyB8IG5vZnJhbWVzKSAjSU1QTElFRAorICAgICAgICAgIGV4dGVuc2lvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWthdHRyIEVNUFRZPgorPCFBVFRMSVNUIGNjbWthdHRyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGV2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhc2tkZWYgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIHRhc2tkZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGFwdHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb25lcnJvciAoZmFpbCB8IHJlcG9ydCB8IGlnbm9yZSkgI0lNUExJRUQKKyAgICAgICAgICBsb2FkZXJyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkYXB0ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKHByb3BlcnRpZXMgfCB4bWwpICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXZlcnNlbG9hZGVyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVjaG8gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGVjaG8KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsZXZlbCAoZXJyb3IgfCB3YXJuaW5nIHwgaW5mbyB8IHZlcmJvc2UgfCBkZWJ1ZykgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY3VwZGF0ZSBFTVBUWT4KKzwhQVRUTElTVCBjY3VwZGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmV0aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbmFtZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JhcGhpY2FsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3VycmVudHRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhIChjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eSB8IHJlZGlyZWN0b3IgfCBib290Y2xhc3NwYXRoIHwgc3lzcHJvcGVydHlzZXQgfCBlbnYgfCBwZXJtaXNzaW9ucyB8IGp2bWFyZyB8IGFyZyB8IGFzc2VydGlvbnMpKj4KKzwhQVRUTElTVCBqYXZhCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBqYXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVuYW1lZXh0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCByZW5hbWVleHQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9leHRlbnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZnJvbWV4dGVuc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NsYWJlbCBFTVBUWT4KKzwhQVRUTElTVCB2c3NsYWJlbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBiYXNlbmFtZSBFTVBUWT4KKzwhQVRUTElTVCBiYXNlbmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFkb2MyICh0YWdsZXQgfCBkb2NsZXQgfCBwYWNrYWdlIHwgYXJnIHwgbGluayB8IGRvY3RpdGxlIHwgYm90dG9tIHwgZ3JvdXAgfCBwYWNrYWdlc2V0IHwgZmlsZXNldCB8IGNsYXNzcGF0aCB8IHNvdXJjZXBhdGggfCBmb290ZXIgfCBzb3VyY2UgfCBib290Y2xhc3NwYXRoIHwgaGVhZGVyIHwgZXhjbHVkZXBhY2thZ2UgfCB0YWcpKj4KKzwhQVRUTElTVCBqYXZhZG9jMgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYm90dG9tIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhlYWRlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmsgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2luZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFjY2VzcyAocHJvdGVjdGVkIHwgcHVibGljIHwgcGFja2FnZSB8IHByaXZhdGUpICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9xdWFsaWZpZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdWJsaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXV0aG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvb3RlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZWV4dGVybmFsZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwcm90ZWN0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnJlYWtpdGVyYXRvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub25hdmJhciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmtvZmZsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbHBhcmFtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlua3NvdXJjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVub3NvdXJjZXBhY2thZ2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcml2YXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2hhcnNldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVwcmVjYXRlZGxpc3QgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgc3R5bGVzaGVldGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVwYWNrYWdlbmFtZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXRwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZW5hbWVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luZG93dGl0bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3RyZWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3BsaXRpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jdGl0bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJpYWx3YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9sZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhlbHBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dGRpcnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2hlbHAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9kZXByZWNhdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG92ZXJ2aWV3IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzY3AgRU1QVFk+Cis8IUFUVExJU1QgdnNzY3AKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHRhcmZpbGVzZXQgfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0YXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAobm9uZSB8IGd6aXAgfCBiemlwMikgI0lNUExJRUQKKyAgICAgICAgICBsb25nZmlsZSAod2FybiB8IGZhaWwgfCB0cnVuY2F0ZSB8IGdudSB8IG9taXQpICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0YXJmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZXNlcnZlbGVhZGluZ3NsYXNoZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdWlkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2lkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2V0cHJveHkgRU1QVFk+Cis8IUFUVExJU1Qgc2V0cHJveHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5vbnByb3h5aG9zdHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm94eWhvc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb2Nrc3Byb3h5aG9zdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3h5cG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvY2tzcHJveHlwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm94eXVzZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3h5cGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbGFzbSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZWZlcmVuY2UgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgaWxhc20KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG93bmVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0dHlwZSAoZXhlIHwgbGlicmFyeSkgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2VmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlzdGluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZXlmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29zY2hlY2tvdXQgRU1QVFk+Cis8IUFUVExJU1Qgc29zY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNvc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2plY3RwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jYWNoZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NjbWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFwcGx5IChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBhcHBseQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZW1pc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbGxlbCAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY3VuY2hlY2tvdXQgRU1QVFk+Cis8IUFUVExJU1QgY2N1bmNoZWNrb3V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29weSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamFybGliLXJlc29sdmUgKGFudCB8IGxvY2F0aW9uIHwgdXJsIHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgamFybGliLXJlc29sdmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNoZWNrZXh0ZW5zaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxvY2F0aW9uIEVNUFRZPgorPCFBVFRMSVNUIGxvY2F0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVybCBFTVBUWT4KKzwhQVRUTElTVCB1cmwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN2c3RhZ2RpZmYgKGNvbW1hbmRsaW5lKSo+Cis8IUFUVExJU1QgY3ZzdGFnZGlmZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY3ZzcnNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kdGFnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN2c3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWFsbHlxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdGFydHRhZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZXhlYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0YXJ0ZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhZyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpsaW5rIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBtZXJnZWZpbGVzIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGFkZGZpbGVzIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBqbGluaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb3V0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhZGRmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVyZ2VmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWVyZ2VmaWxlcyAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgbWVyZ2VmaWxlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFkZGZpbGVzIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBhZGRmaWxlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFjYyBFTVBUWT4KKzwhQVRUTElTVCBqYXZhY2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlYnVncGFyc2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGphdmFjY2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZWxhY2hlY2sgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemV0b2tlbm1hbmFnZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbW9udG9rZW5hY3Rpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnVpbGR0b2tlbm1hbmFnZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2FuaXR5Y2hlY2sgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnVpbGRwYXJzZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3RoZXJhbWJpZ3VpdHljaGVjayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvb2thaGVhZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnbG9va2FoZWFkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNob2ljZWFtYmlndWl0eWNoZWNrIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5pY29kZWlucHV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXJjaGFyc3RyZWFtICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlYnVndG9rZW5tYW5hZ2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBsaW5lY29sdW1uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRkaXJlY3RvcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYWNoZXRva2VucyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBqYXZhdW5pY29kZWVzY2FwZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdGF0aWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlY2FzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VydG9rZW5tYW5hZ2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycmVwb3J0aW5nICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNobW9kIChtYXBwZXIgfCBpbmNsdWRlIHwgc3JjZmlsZSB8IGV4Y2x1ZGUgfCB0YXJnZXRmaWxlIHwgcGF0dGVybnNldCB8IHJlZGlyZWN0b3IgfCBlbnYgfCBmaWxlbGlzdCB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBjaG1vZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFyYWxsZWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwZXJtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHZjcyAocHZjc3Byb2plY3QpKj4KKzwhQVRUTElTVCBwdmNzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGVvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvcmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29uZmlnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHZjc2JpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdvcmtzcGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB2Y3Nwcm9qZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZW5hbWVmb3JtYXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VyaWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBvc2l0b3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlcmV0dXJuY29kZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXZpc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmVzdGFydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvbW90aW9uZ3JvdXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHZjc3Byb2plY3QgRU1QVFk+Cis8IUFUVExJU1QgcHZjc3Byb2plY3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXJsaWItbWFuaWZlc3QgKG9wdGlvbnMgfCBhdHRyaWJ1dGUgfCBkZXBlbmRzIHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgamFybGliLW1hbmlmZXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBvcHRpb25zIChmaWxlc2V0IHwgbGliZmlsZXNldCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIG9wdGlvbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZXBlbmRzIChmaWxlc2V0IHwgbGliZmlsZXNldCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIGRlcGVuZHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgbWFuaWZlc3QgfCB0eXBlIHwgbWV0YWluZiB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGluZGV4amFycyB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCB6aXBncm91cGZpbGVzZXQgfCB6aXBmaWxlc2V0IHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgamFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB3aGVuZW1wdHkgKGZhaWwgfCBza2lwIHwgY3JlYXRlKSAjSU1QTElFRAorICAgICAgICAgIGtlZXBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZHVwbGljYXRlIChhZGQgfCBwcmVzZXJ2ZSB8IGZhaWwpICNJTVBMSUVECisgICAgICAgICAgcm91bmR1cCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgamFyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc29ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzZXRtYW5pZmVzdCAoc2tpcCB8IG1lcmdlIHwgbWVyZ2V3aXRob3V0bWFpbikgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2xidHlwZSBFTVBUWT4KKzwhQVRUTElTVCBjY21rbGJ0eXBlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBnbG9iYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzaGFyZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBicmFuY2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZvYiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcmRpbmFyeSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzY3JpcHRkZWYgKCNQQ0RBVEEgfCBjbGFzc3BhdGggfCBlbGVtZW50IHwgYXR0cmlidXRlKSo+Cis8IUFUVExJU1Qgc2NyaXB0ZGVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBsb2FkZXJyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmV2ZXJzZWxvYWRlciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZWZhdWx0ZXhjbHVkZXMgRU1QVFk+Cis8IUFUVExJU1QgZGVmYXVsdGV4Y2x1ZGVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZW1vdmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlY2hvICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1wYXJzZSAoZmlsZXNldCB8IGp2bWFyZyB8IGNsYXNzcGF0aCB8IHNvdXJjZXBhdGgpKj4KKzwhQVRUTElTVCBtcGFyc2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsZWFudXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXRhbWF0YWhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1Z3BhcnNlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnc2Nhbm5lciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBibGdlbmNsaWVudCAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgYmxnZW5jbGllbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlamJqYXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsaWVudGphciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpqZG9jIEVNUFRZPgorPCFBVFRMSVNUIGpqZG9jCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphdmFjY2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0ZXh0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9uZXRhYmxlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGdlbmtleSAoZG5hbWUpKj4KKzwhQVRUTElTVCBnZW5rZXkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0b3JlcGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNpZ2FsZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2V5cGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2V5c2l6ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFsaWFzIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2V5YWxnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsaWRpdHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZXlzdG9yZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdG9yZXR5cGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkbmFtZSAocGFyYW0pKj4KKzwhQVRUTElTVCBkbmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamF2YWggKGFyZyB8IGNsYXNzcGF0aCB8IGNsYXNzIHwgYm9vdGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGphdmFoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdHVicyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjbGFzcyBFTVBUWT4KKzwhQVRUTElTVCBjbGFzcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtlbGVtIEVNUFRZPgorPCFBVFRMSVNUIGNjbWtlbGVtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZXRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWFzdGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVsdHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2NoZWNrb3V0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGVja2luICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbXJlY29uZmlndXJlIEVNUFRZPgorPCFBVFRMSVNUIGNjbXJlY29uZmlndXJlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY21hY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtcHJvamVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjY21kaXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmYWlsICgjUENEQVRBIHwgY29uZGl0aW9uKSo+Cis8IUFUVExJU1QgZmFpbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3RhdHVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVuemlwIChmaWxlc2V0IHwgcGF0dGVybnNldCkqPgorPCFBVFRMSVNUIHVuemlwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IGV4dGRpcnMgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgc291cmNlcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgYm9vdGNsYXNzcGF0aCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBjb21waWxlcmFyZyB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGphdmFjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnbGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZW1vcnlpbml0aWFsc2l6ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlcHJlY2F0aW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVhbnRydW50aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVqYXZhcnVudGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGVtcGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3dhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJvY2VlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZvcmsgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVtb3J5bWF4aW11bXNpemUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpbWl6ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaXN0ZmlsZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXh0ZGlycyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpwY292ZXJhZ2UgKGFyZyB8IHNvY2tldCB8IGZpbGVzZXQgfCBqdm1hcmcgfCBjbGFzc3BhdGggfCB0cmlnZ2VycyB8IGZpbHRlcnMpKj4KKzwhQVRUTElTVCBqcGNvdmVyYWdlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhcHBsZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVjb3JkZnJvbXN0YXJ0IChjb3ZlcmFnZSB8IG5vbmUgfCBhbGwpICNJTVBMSUVECisgICAgICAgICAgdm0gKGphdmEyIHwgamRrMTE4IHwgamRrMTE3KSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdvcmtpbmdkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzbmFwc2hvdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlZWRuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YWV4ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGl0cHJvbXB0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3YXJubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaW5hbHNuYXBzaG90IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0cmFja25hdGl2ZXMgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHJpZ2dlcnMgKG1ldGhvZCkqPgorPCFBVFRMSVNUIHRyaWdnZXJzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXRob2QgRU1QVFk+Cis8IUFUVExJU1QgbWV0aG9kCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXZlbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnMgKGluY2x1ZGUgfCBleGNsdWRlKSo+Cis8IUFUVExJU1QgZmlsdGVycworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29zbGFiZWwgRU1QVFk+Cis8IUFUVExJU1Qgc29zbGFiZWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNvc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvamVjdHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jYWNoZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc2NtZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzZ2V0IEVNUFRZPgorPCFBVFRMSVNUIHZzc2dldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXRpbWVzdGFtcCAoY3VycmVudCB8IG1vZGlmaWVkIHwgdXBkYXRlZCkgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZWZpbGVzIChyZXBsYWNlIHwgc2tpcCB8IGZhaWwpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVsdHJlZSBFTVBUWT4KKzwhQVRUTElTVCBkZWx0cmVlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9jb25maWcueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvY29uZmlnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzNhZGQzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvY29uZmlnLnhtbApAQCAtMCwwICsxLDYgQEAKKzxjb25maWcKKyAgICAgICAgaG9zdD0iJHtob3N0fSIKKyAgICAgICAgcG9ydD0iJHtwb3J0fSIKKyAgICAgICAgYmFzZXBhdGg9IiR7YmFzZXBhdGh9IgorICAgICAgICBwcm90b2NvbD0iaHR0cCIvPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1vcGVuLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLW9wZW4ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0ZmJhYzcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1vcGVuLnhtbApAQCAtMCwwICsxLDUgQEAKKyZ3ZWxjb21lLW9wZW47Cis8Y2xpY2tMaW5rCisgICAgICAgIGRlc2NyaXB0aW9uPSJDbGljayBSZWdpc3RlciIKKyAgICAgICAgbGFiZWw9IlJlZ2lzdGVyIHdpdGggTWFpbFJlYWRlciIvPgorICAgICAgICAmcmVnaXN0ZXItcGFnZTsKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXBhZ2UueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItcGFnZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGIwZDU4MgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXBhZ2UueG1sCkBAIC0wLDAgKzEsMyBAQAorPHZlcmlmeVRpdGxlCisgICAgICAgIGRlc2NyaXB0aW9uPSJSZWdpc3RyYXRpb24gcGFnZSB0aXRsZSIKKyAgICAgICAgdGV4dD0iJHtyZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlfSIvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItdHJpbGxpYW4ueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItdHJpbGxpYW4ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1NjFmMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci10cmlsbGlhbi54bWwKQEAgLTAsMCArMSwyMSBAQAorPHNldElucHV0RmllbGQKKyAgICAgICAgZGVzY3JpcHRpb249InVzZXJuYW1lIgorICAgICAgICBuYW1lPSJ1c2VybmFtZSIKKyAgICAgICAgdmFsdWU9InRyaWxsaWFuIi8+Cis8c2V0SW5wdXRGaWVsZAorICAgICAgICBkZXNjcmlwdGlvbj0icGFzc3dvcmQiCisgICAgICAgIG5hbWU9InBhc3N3b3JkIgorICAgICAgICB2YWx1ZT0iYXN0cmEiLz4KKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJwYXNzd29yZDIiCisgICAgICAgIG5hbWU9InBhc3N3b3JkMiIKKyAgICAgICAgdmFsdWU9ImFzdHJhIi8+Cis8c2V0SW5wdXRGaWVsZAorICAgICAgICBkZXNjcmlwdGlvbj0iZnVsbE5hbWUiCisgICAgICAgIG5hbWU9ImZ1bGxOYW1lIgorICAgICAgICB2YWx1ZT0iVHJpY2lhIE1jTWlsbGlhbiIvPgorPHNldElucHV0RmllbGQKKyAgICAgICAgZGVzY3JpcHRpb249ImZyb21BZGRyZXNzIgorICAgICAgICBuYW1lPSJmcm9tQWRkcmVzcyIKKyAgICAgICAgdmFsdWU9InRyaWNpYUBtYWdyYXRoZWEuY29tIi8+CisgICAgICAgICZzYXZlLWNsaWNrOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3NhdmUtY2xpY2sueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvc2F2ZS1jbGljay54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJhNTgwMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3NhdmUtY2xpY2sueG1sCkBAIC0wLDAgKzEsMyBAQAorPGNsaWNrQnV0dG9uCisgICAgICAgIGRlc2NyaXB0aW9uPSJTYXZlIgorICAgICAgICBuYW1lPSIke2J1dHRvbi5zYXZlfSIvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvdGFza2RlZi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy90YXNrZGVmLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjRjMWRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvdGFza2RlZi54bWwKQEAgLTAsMCArMSwyNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiA/PgorPHByb2plY3QgbmFtZT0idGFza2RlZiI+CisgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICBUaGlzIHByb2plY3QgcHJvdmlkZXMgZm9sbG93aW5nIGVsZW1lbnRzIHRvIHVzZSBpbiB5b3VyIHRlc3Qgc2NyaXB0czoKKworICAgICAgICAoMCkgYWxsIHdlYnRlc3QncyBzdGVwcyBsb2FkZWQgYW5kIHJlYWR5IHRvIHVzZSwKKyAgICAgICAgKDEpIHRoZSBwYXRoICJ3ZWJ0ZXN0LnBhdGguaWQiIHRoYXQgaW5jbHVkZXMgYWxsIG9mIHdlYnRlc3QncworICAgICAgICBsaWJyYXJpZXMsCisgICAgICAgICgyKSB0aGUgY2xhc3MgbG9hZGVyICJ3ZWJ0ZXN0LmxvYWRlciIgdGhhdCBpcyB0aGUgb3JpZ2luYWwgbG9hZGVyIGZvcgorICAgICAgICB3ZWJ0ZXN0LgorCisgICAgICAgIFVzYWdlOgorICAgICAgICBTZXQgdGhlIHByb3BlcnR5IHdlYnRlc3QuaG9tZSB0byB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIHRoZSBidWlsZC56aXAKKyAgICAgICAgaXMgZXh0cmFjdGVkLAorICAgICAgICBhbmQgY2FsbHM6CisgICAgICAgICZsdDtpbXBvcnQgZmlsZT0iJHt3ZWJ0ZXN0LmhvbWV9L2xpYi90YXNrZGVmLnhtbCIgJmd0OworICAgIDwvZGVzY3JpcHRpb24+CisKKyAgICA8aW1wb3J0IGZpbGU9IiR7d2VidGVzdC5ob21lfS9saWIvY2xhc3NwYXRoLnhtbCIvPgorCisgICAgPHRhc2tkZWYgcmVzb3VyY2U9IndlYnRlc3QudGFza2RlZiIKKyAgICAgICAgICAgICBsb2FkZXJyZWY9IndlYnRlc3QubG9hZGVyIgorICAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0id2VidGVzdC5wYXRoLmlkIgorICAgICAgICAgICAgLz4KKzwvcHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy93ZWxjb21lLW9wZW4ueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvd2VsY29tZS1vcGVuLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2JiZThiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvd2VsY29tZS1vcGVuLnhtbApAQCAtMCwwICsxLDYgQEAKKzxpbnZva2UKKyAgICAgICAgZGVzY3JpcHRpb249Ik9wZW4gd2VsY29tZSBhY3Rpb24iCisgICAgICAgIHVybD0iV2VsY29tZS5kbyIvPgorPHZlcmlmeVRpdGxlCisgICAgICAgIGRlc2NyaXB0aW9uPSJXZWxjb21lIHBhZ2UgdGl0bGUiCisgICAgICAgIHRleHQ9IiR7aW5kZXgudGl0bGV9Ii8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTUxZWE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgd2ViLWFwcCBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4zLy9FTiIgImh0dHA6Ly9qYXZhLnN1bi5jb20vZHRkL3dlYi1hcHBfMl8zLmR0ZCI+Cis8d2ViLWFwcD4KKworICAgIDxkaXNwbGF5LW5hbWU+U3RydXRzIDIgTWFpbHJlYWRlcjwvZGlzcGxheS1uYW1lPgorCisgICAgPGZpbHRlcj4KKyAgICAgICAgPGZpbHRlci1uYW1lPlN0cnV0czI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8ZmlsdGVyLWNsYXNzPgorICAgICAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuRmlsdGVyRGlzcGF0Y2hlcgorICAgICAgICA8L2ZpbHRlci1jbGFzcz4KKyAgICA8L2ZpbHRlcj4KKworICAgIDxmaWx0ZXItbWFwcGluZz4KKyAgICAgICAgPGZpbHRlci1uYW1lPlN0cnV0czI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8dXJsLXBhdHRlcm4+Lyo8L3VybC1wYXR0ZXJuPgorICAgIDwvZmlsdGVyLW1hcHBpbmc+CisKKyAgICA8IS0tIEFwcGxpY2F0aW9uIExpc3RlbmVyIGZvciBNYWlscmVhZGVyIGRhdGFiYXNlIC0tPgorICAgIDxsaXN0ZW5lcj4KKyAgICAgICAgPGxpc3RlbmVyLWNsYXNzPgorICAgICAgICAgICAgRGF0YWJhc2VMaXN0ZW5lcgorICAgICAgICA8L2xpc3RlbmVyLWNsYXNzPgorICAgIDwvbGlzdGVuZXI+CisKKyAgICA8d2VsY29tZS1maWxlLWxpc3Q+CisgICAgICAgIDx3ZWxjb21lLWZpbGU+aW5kZXguaHRtbDwvd2VsY29tZS1maWxlPgorICAgIDwvd2VsY29tZS1maWxlLWxpc3Q+CisKKzwvd2ViLWFwcD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhNjk3NWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlCkBAIC0wLDAgKzEsMTUgQEAKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisjIHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUNCisjDQorIyBUaGlzIGlzIGFuIGV4YW1wbGUgIndlYnRlc3QucHJvcGVydGllcyIgZmlsZSwgdXNlZCB0byBjdXN0b21pemUgYnVpbGRpbmcgU3RydXRzDQorIyBmb3IgeW91ciBsb2NhbCBlbnZpcm9ubWVudC4gIE1ha2UgYW55IGNoYW5nZXMgeW91IG5lZWQsIGFuZCByZW5hbWUgdGhpcyBmaWxlDQorIyB0byAid2VidGVzdC5wcm9wZXJ0aWVzIiBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0aGUgU3RydXRzDQorIyAid2VidGVzdC54bWwiIGZpbGUuDQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK3dlYnRlc3QuaG9tZSA9IC9vcHQvQ2Fub28vd2VidGVzdC0xLjcNCitob3N0ID0gbG9jYWxob3N0DQorcG9ydCA9IDgwODANCitiYXNlcGF0aCA9IGxhYi0yLTINCit3ZWJhcHBzLmhvbWUgPSAvb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvDQorcmVzb3VyY2UuaG9tZSA9ICR7d2ViYXBwcy5ob21lfS8ke2Jhc2VwYXRofS9XRUItSU5GL2NsYXNzZXMvcmVzb3VyY2VzLnByb3BlcnRpZXMiDQorIyBtYWlscmVhZGVyLmhvbWUgPSANCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4OTNlODgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnhtbApAQCAtMCwwICsxLDEyMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgcHJvamVjdCBTWVNURU0gImVudGl0aWVzL1dlYlRlc3QuZHRkIiBbCisKKyAgICAgICAgPCFFTlRJVFkgdGFza2RlZi13ZWJ0ZXN0IFNZU1RFTSAiZW50aXRpZXMvdGFza2RlZi54bWwiPgorICAgICAgICA8IUVOVElUWSBjb25maWcgU1lTVEVNICJlbnRpdGllcy9jb25maWcueG1sIj4KKworICAgICAgICA8IUVOVElUWSByZWdpc3Rlci1vcGVuIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3JlZ2lzdGVyLW9wZW4ueG1sIj4KKyAgICAgICAgPCFFTlRJVFkgcmVnaXN0ZXItcGFnZSBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9yZWdpc3Rlci1wYWdlLnhtbCI+CisgICAgICAgIDwhRU5USVRZIHJlZ2lzdGVyLXRyaWxsaWFuIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3JlZ2lzdGVyLXRyaWxsaWFuLnhtbCI+CisKKyAgICAgICAgPCFFTlRJVFkgc2F2ZS1jbGljayBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9zYXZlLWNsaWNrLnhtbCI+CisKKyAgICAgICAgPCFFTlRJVFkgd2VsY29tZS1vcGVuIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3dlbGNvbWUtb3Blbi54bWwiPgorCisgICAgICAgIF0+CisKKzxwcm9qZWN0IG5hbWU9Ik1haWxSZWFkZXIgVHJhaW5pbmcgQ291cnNlIC0gRXhlcmNpc2UgbmF2aWdhdGlvbiBhbmQgZGF0YWJhc2UgbG9naWMKKy0gQ2Fub28gV2ViVGVzdHMiIGJhc2VkaXI9Ii4iIGRlZmF1bHQ9ImNsZWFuIj4KKworICAgIDwhLS0KKyAgICAgQ2Fub28gV2ViVGVzdCBjb25maWd1cmF0aW9uIGZpbGUgdG8gdGVzdCBuYXZpZ2F0aW5nIGJldHdlZW4gcGFnZXMgYW5kCisgICAgIGNyZWF0aW5nIGFuZCBlZGl0aW5nIGFuIGFjY291bnQuCisKKyAgICAgVG8gcnVuIHRoaXMgdGVzdCwgZmlyc3QgaW5zdGFsbCB0aGUgQ2Fub28gV2VidGVzdCBwYWNrYWdlIG9uIHlvdXIKKyAgICAgbG9jYWwgc3lzdGVtIFtodHRwOi8vd2VidGVzdC5jYW5vby5jb21dLgorCisgICAgIFRoZSBkZWZhdWx0IGxvY2F0aW9uIGZvciB0aGlzIGJ1aWxkIGZpbGUgaXMgdW5kZXIKKyAgICAgIi9vcHQvQ2Fub28vd2VidGVzdC0xLjciLgorICAgICBTZWUgdGhlIHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgdG8gdXNlIGFub3RoZXIgbG9jYXRpb24uCisKKyAgICAgT25jZSBDYW5vbyBpcyBpbnN0YWxsZWQsIHRoZSB3ZWJ0ZXN0LnhtbCBmaWxlIGNhbiBiZSBydW4gYXMgYW4gQW50IGJ1aWxkCisgICAgIGZpbGUgKGFudCAtZiB3ZWJ0ZXN0LnhtbCkuCisKKyAgICAgQnkgZGVmYXVsdCwgdGhlIHRlc3RzIGFyZSBjb25maWd1cmVkIHRvIGZpbmQgdGhlIGFwcGxpY2F0aW9uIHVuZGVyIHRlc3QKKyAgICAgIGF0ICJodHRwOi8vbG9jYWxob3N0OjgwODAvbGliLTItMiIuCisgICAgIFNlZSB0aGUgd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZSB0byB1c2UgYW5vdGhlciBsb2NhdGlvbi4KKworICAgICBEZXBsb3kgdGhlIGFwcGxpY2F0aW9uIHRvIHlvdXIgY29udGFpbmVyLCBhbmQgdXNlIEFudCB0byBydW4gdGhlCisgICAgIHdlYnRlc3QueG1sLgorCisgICAgIFRoZSAiY2xlYW4iIHRhcmdldCBjYW4gYmUgcnVuIHRvIHRlc3QgZXZlcnl0aGluZywgYnV0IHdpbGwgZmFpbCBpZiBydW4gYWdhaW4sCisgICAgIHNpbmNlIHRoZSB0ZXN0LXVzZXIgd2lsbCBhbHJlYWR5IGJlIHJlZ2lzdGVyZWQuCisgICAgIFRoZSAiZGVmYXVsdCIgdGFyZ2V0IHNraXBzIHJlZ2lzdGVyYXRpb24gYW5kIGNhbiBiZSBydW4gYXMgb2Z0ZW4gYXMgbmVlZGVkCisgICAgIGFmdGVyICJjbGVhbiIgaXMgcnVuIG9uY2UuCisKKyAgICAgVG8gcmVzZXQgdGhlIFhNTCAiZGF0YWJhc2UiLCBlaXRoZXIgcmVkZXBsb3kgdGhlIGFwcGxpY2F0aW9uIHNvIHRoYXQgdGhlCisgICAgIFdFQi1JTkYvY2xhc3Nlcy9kYXRhYmFzZS54bWwgaXMgb3ZlcndyaXR0ZW4sCisgICAgIG9yIHVzZSB0aGUgImNsZWFuLWRhdGFiYXNlIiB0YXJnZXQgdG8gb3ZlcndyaXRlIHRoZSBmaWxlLgorICAgICBPbmx5IHVzZSAiY2xlYW4tZGF0YWJhc2UiIHdoZW4gdGhlIHNlcnZlciAgaXMgc3RvcHBlZCwKKyAgICAgYW5kIHRoZW4gc3RhcnQgaXQgYWdhaW4gYmVmb3JlIHJ1bm5pbmcgb3RoZXIgdGFyZ2V0cy4KKworICAgICBUaGUgdGVzdHMgYXJlIGJhc2VkIG9uIGEgc2V0IG9mIE1haWxSZWFkZXIgVXNlIENhc2VzIG1haW50YWluZWQgYXQgdGhlCisgICAgIFN0cnV0cyBVbml2ZXJzaXR5IHNpdGUKKyAgICAgW2h0dHA6Ly9vcGVuc291cmNlMi5hdGxhc3NpYW4uY29tL2NvbmZsdWVuY2Uvb3NzL2Rpc3BsYXkvU1RSVVRTL01haWxSZWFkZXJdLgorCisgICAgIEB2ZXJzaW9uICRSZXZpc2lvbjogMS4yICQgJERhdGU6IDIwMDUtMTItMzEgMTU6MTA6MDQgLTA1MDAgKFNhdCwgMzEgRGVjIDIwMDUpICQKKyAgICAgKi8KKyAgICAtLT4KKworICAgIDwhLS0gTG9hZCBsb2NhbCBwcmVmZXJlbmNlcywgaWYgYW55IC0tPgorICAgIDxwcm9wZXJ0eSBmaWxlPSJ3ZWJ0ZXN0LnByb3BlcnRpZXMiLz4KKworICAgIDwhLS0gVGhlc2UgcHJvcGVydGllcyBjYW4gYmUgY3VzdG9taXplZCB1c2luZyB2aWEgd2VidGVzdC5wcm9wZXJ0aWVzIC0tPgorICAgIDwhLS0gU2VlIHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgZm9yIGEgc3RhcnRlciBmaWxlIC0tPgorICAgIDxwcm9wZXJ0eSBuYW1lPSJ3ZWJ0ZXN0LmhvbWUiCisgICAgICAgICAgICAgIGxvY2F0aW9uPSIvb3B0L0Nhbm9vL3dlYnRlc3QtMS43Ii8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0iaG9zdCIKKyAgICAgICAgICAgICAgdmFsdWU9ImxvY2FsaG9zdCIvPgorCisgICAgPHByb3BlcnR5IG5hbWU9InBvcnQiCisgICAgICAgICAgICAgIHZhbHVlPSI4MDgwIi8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0iYmFzZXBhdGgiCisgICAgICAgICAgICAgIHZhbHVlPSJsYWItMi0yIi8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0ibWFpbHJlYWRlci5ob21lIgorICAgICAgICAgICAgICBsb2NhdGlvbj0iLi4vLi4vLi4vIi8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0id2ViYXBwcy5ob21lIgorICAgICAgICAgICAgICBsb2NhdGlvbj0iL29wdC9BcGFjaGUvVG9tY2F0LTUuNS93ZWJhcHBzIi8+CisKKyAgICA8cHJvcGVydHkgZmlsZT0iJHt3ZWJhcHBzLmhvbWV9LyR7YmFzZXBhdGh9L1dFQi1JTkYvY2xhc3Nlcy9yZXNvdXJjZXMucHJvcGVydGllcyIvPgorCisgICAgPHRhc2tkZWYgZmlsZT0iJHt3ZWJ0ZXN0LmhvbWV9L3dlYnRlc3RUYXNrZGVmcy5wcm9wZXJ0aWVzIj4KKyAgICAgICAgPGNsYXNzcGF0aD4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHt3ZWJ0ZXN0LmhvbWV9IiBpbmNsdWRlcz0iKiovbGliLyouamFyIi8+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7d2VidGVzdC5ob21lfSIgaW5jbHVkZXM9IioqL2xpYi9ydW50aW1lLyouamFyIi8+CisgICAgICAgIDwvY2xhc3NwYXRoPgorICAgIDwvdGFza2RlZj4KKworICAgIDx0YXJnZXQgbmFtZT0iY2xlYW4tZGF0YWJhc2UiCisgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU2V0cyBkYXRhYmFzZS54bWwgdG8gZGVmYXVsdC4gU3RvcCBzZXJ2ZXIsIHJ1biB0YXJnZXQsIGFuZCBTdGFydCBzZXJ2ZXIuIj4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHttYWlscmVhZGVyLmhvbWV9L3NyYy9qYXZhL2RhdGFiYXNlLnhtbCIKKyAgICAgICAgICAgICAgdG9maWxlPSIke3dlYmFwcHMuaG9tZX0vJHtiYXNlcGF0aH0vV0VCLUlORi9jbGFzc2VzL2RhdGFiYXNlLnhtbCIKKyAgICAgICAgICAgICAgb3ZlcndyaXRlPSJ0cnVlIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tIEFERCBZT1VSIFRBUkdFVFMgSEVSRSAtLT4KKworICAgIDx0YXJnZXQgbmFtZT0iY2xlYW4iIGRlc2NyaXB0aW9uPSJPbmx5IHJ1biBhZ2FpbnN0IGEgY2xlYW4gZGF0YWJhc2UiCisgICAgICAgICAgICBkZXBlbmRzPSJSZWdpc3RlciIvPgorCisgICAgPHRhcmdldCBuYW1lPSJSZWdpc3RlciIKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdWJzY3JpYmVycyBjYW4gc3RvcmUgbG9naW4gY3JlZGVudGlhbHMgYW5kIGEKKyAgICAgICAgICAgIHByaW1hcnkgZW1haWwgY29udGFjdCB3aXRoIHRoZSBzeXN0ZW0uIj4KKworICAgICAgICA8d2VidGVzdCBuYW1lPSJSZWdpc3RlciBUcmlsbGlhbiAoTVNTKSI+CisgICAgICAgICAgICAmY29uZmlnOworICAgICAgICAgICAgPHN0ZXBzPgorICAgICAgICAgICAgICAgICZyZWdpc3Rlci1vcGVuOworICAgICAgICAgICAgICAgICZyZWdpc3Rlci10cmlsbGlhbjsKKyAgICAgICAgICAgICAgICA8dmVyaWZ5VGl0bGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJNZW51IHBhZ2UgdGl0bGUiCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PSIke21lbnUudGl0bGV9Ii8+CisgICAgICAgICAgICA8L3N0ZXBzPgorICAgICAgICA8L3dlYnRlc3Q+CisKKyAgICA8L3RhcmdldD4KKworPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL2luZGV4Lmh0bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjhkNWY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL2luZGV4Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+CisgICAgPE1FVEEgSFRUUC1FUVVJVj0iUmVmcmVzaCIgQ09OVEVOVD0iMDtVUkw9V2VsY29tZS5hY3Rpb24iPgorPC9oZWFkPgorCis8Ym9keT4KKzxwPkxvYWRpbmcgLi4uPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL3BhZ2VzL0hlbGxvLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU5ZDg3YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AKQEAgLTAsMCArMSwxMiBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+SGVsbG88L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxoMj4KKyAgICA8czp0ZXh0IG5hbWU9ImhlbGxvLm1lc3NhZ2UiLz4KKzwvaDI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvcGFnZXMvTG9naW4uanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL3BhZ2VzL0xvZ2luLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2Q4OWEwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL3BhZ2VzL0xvZ2luLmpzcApAQCAtMCwwICsxLDI3IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJsb2dpbi50aXRsZSIvPgorICAgIDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9uTG9hZD0ic2VsZi5mb2N1cygpO2RvY3VtZW50LkxvZ2luX3NhdmUudXNlcm5hbWUuZm9jdXMoKSI+CisKKzxzOmFjdGlvbmVycm9yLz4KKzxzOmZvcm0gYWN0aW9uPSJMb2dpbl9zYXZlIiB2YWxpZGF0ZT0idHJ1ZSI+CisgICAgPHM6dGV4dGZpZWxkIGtleT0idXNlcm5hbWUiLz4KKworICAgIDxzOnBhc3N3b3JkIGtleT0icGFzc3dvcmQiIHNob3dQYXNzd29yZD0idHJ1ZSIvPgorCisgICAgPHM6c3VibWl0IGtleT0iYnV0dG9uLnNhdmUiLz4KKworICAgIDxzOnN1Ym1pdCBhY3Rpb249IkxvZ2luX2NhbmNlbCIga2V5PSJidXR0b24uY2FuY2VsIgorICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4KKzwvczpmb3JtPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvcGFnZXMvTWVudS5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvY2FsaXplL3NyYy93ZWJhcHAvcGFnZXMvTWVudS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc0YTZmNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9wYWdlcy9NZW51LmpzcApAQCAtMCwwICsxLDI3IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJtZW51LnRpdGxlIi8+CisgICAgPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDM+CisgICAgPHM6dGV4dCBuYW1lPSJtZW51LmhlYWRpbmciLz4KKyAgICA8czpwcm9wZXJ0eSB2YWx1ZT0idXNlci5mdWxsTmFtZSIvPgorPC9oMz4KKzx1bD4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iUmVnaXN0ZXIiIC8+Ij4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJtZW51LnJlZ2lzdHJhdGlvbiIvPgorICAgIDwvYT4KKyAgICA8L2xpPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJMb2dvdXQiLz4iPgorICAgICAgICA8czp0ZXh0IG5hbWU9Im1lbnUubG9nb3V0Ii8+CisgICAgPC9hPgorPC91bD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9wYWdlcy9NaXNzaW5nLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9wYWdlcy9NaXNzaW5nLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjFiMDhiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL3BhZ2VzL01pc3NpbmcuanNwCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+PHRpdGxlPk1pc3NpbmcgRmVhdHVyZTwvdGl0bGU+PC9oZWFkPgorCis8Ym9keT4KKzxwPgorICAgIFRoaXMgZmVhdHVyZSBpcyB1bmRlciBjb25zdHJ1Y3Rpb24uCisgICAgUGxlYXNlIHRyeSBhZ2FpbiBpbiB0aGUgbmV4dCBpbnRlcmF0aW9uLgorPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL3BhZ2VzL1JlZ2lzdGVyLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9wYWdlcy9SZWdpc3Rlci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg2YWVjNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9wYWdlcy9SZWdpc3Rlci5qc3AKQEAgLTAsMCArMSwzOCBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICAgIDxzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLnRpdGxlLmNyZWF0ZSIvPgorICAgIDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9uTG9hZD0ic2VsZi5mb2N1cygpO2RvY3VtZW50LlJlZ2lzdGVyX3NhdmUudXNlcm5hbWUuZm9jdXMoKSI+CisKKzxzOmFjdGlvbmVycm9yLz4KKzxzOmZvcm0gYWN0aW9uPSJSZWdpc3Rlcl9zYXZlIiB2YWxpZGF0ZT0idHJ1ZSI+CisKKyAgICA8czp0ZXh0ZmllbGQga2V5PSJ1c2VybmFtZSIvPgorCisgICAgPHM6cGFzc3dvcmQga2V5PSJwYXNzd29yZCIvPgorCisgICAgPHM6cGFzc3dvcmQga2V5PSJwYXNzd29yZDIiLz4KKworICAgIDxzOnRleHRmaWVsZCBrZXk9ImZ1bGxOYW1lIi8+CisKKyAgICA8czp0ZXh0ZmllbGQga2V5PSJmcm9tQWRkcmVzcyIvPgorCisgICAgPHM6dGV4dGZpZWxkIGtleT0icmVwbHlUb0FkZHJlc3MiLz4KKworICAgIDxzOnN1Ym1pdCBrZXk9ImJ1dHRvbi5zYXZlIi8+CisKKyAgICA8czpzdWJtaXQgYWN0aW9uPSJSZWdpc3Rlcl9jYW5jZWwiIGtleT0iYnV0dG9uLmNhbmNlbCIKKyAgICAgICAgICAgICAgb25jbGljaz0iZm9ybS5vbnN1Ym1pdD1udWxsIi8+CisKKzwvczpmb3JtPgorCisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9jYWxpemUvc3JjL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTE5ZDFmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2NhbGl6ZS9zcmMvd2ViYXBwL3BhZ2VzL1dlbGNvbWUuanNwCkBAIC0wLDAgKzEsNTMgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+Cis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz4KKyAgICA8dGl0bGU+CisgICAgICAgIDxzOnRleHQgbmFtZT0iaW5kZXgudGl0bGUiLz4KKyAgICA8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxoMz4KKyAgICA8czp0ZXh0IG5hbWU9ImluZGV4LmhlYWRpbmciLz4KKzwvaDM+CisKKzx1bD4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iUmVnaXN0ZXIiLz4iPgorICAgICAgICA8czp0ZXh0CisgICAgICAgICAgICAgICAgbmFtZT0iaW5kZXgucmVnaXN0cmF0aW9uIi8+CisgICAgPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249IkxvZ2luIi8+Ij4KKyAgICAgICAgPHM6dGV4dAorICAgICAgICAgICAgICAgIG5hbWU9ImluZGV4LmxvZ2luIi8+CisgICAgPC9hPjwvbGk+Cis8L3VsPgorCis8aDM+TGFuZ3VhZ2UgT3B0aW9uczwvaDM+Cis8dWw+CisgICAgPGxpPgorICAgICAgICA8czp1cmwgaWQ9ImVuIiBhY3Rpb249IldlbGNvbWUiPgorICAgICAgICAgICAgPHM6cGFyYW0gbmFtZT0icmVxdWVzdF9sb2NhbGUiPmVuPC9zOnBhcmFtPgorICAgICAgICA8L3M6dXJsPgorICAgICAgICA8czphIGhyZWY9IiV7ZW59Ij5FbmdsaXNoPC9zOmE+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICAgIDxzOnVybCBpZD0iamEiIGFjdGlvbj0iV2VsY29tZSI+CisgICAgICAgICAgICA8czpwYXJhbSBuYW1lPSJyZXF1ZXN0X2xvY2FsZSI+amE8L3M6cGFyYW0+CisgICAgICAgIDwvczp1cmw+CisgICAgICAgIDxzOmEgaHJlZj0iJXtqYX0iPkphcGFuZXNlPC9zOmE+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICAgIDxzOnVybCBpZD0icnUiIGFjdGlvbj0iV2VsY29tZSI+CisgICAgICAgICAgICA8czpwYXJhbSBuYW1lPSJyZXF1ZXN0X2xvY2FsZSI+cnU8L3M6cGFyYW0+CisgICAgICAgIDwvczp1cmw+CisgICAgICAgIDxzOmEgaHJlZj0iJXtydX0iPlJ1c3NpYW48L3M6YT4KKyAgICA8L2xpPgorPC91bD4KKworPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9NRVRBLUlORi9jb250ZXh0LnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L01FVEEtSU5GL2NvbnRleHQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMGI1ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9NRVRBLUlORi9jb250ZXh0LnhtbApAQCAtMCwwICsxLDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Q29udGV4dCBwYXRoPSIvIj4KKzwvQ29udGV4dD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L2xvZ291dC5pbWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9sb2dvdXQuaW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4MmZlNDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9sb2dvdXQuaW1sCkBAIC0wLDAgKzEsNjYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPG1vZHVsZSB2ZXJzaW9uPSI0IiByZWxhdGl2ZVBhdGhzPSJ0cnVlIiB0eXBlPSJKMkVFX1dFQl9NT0RVTEUiIGoyZWUtaW50ZWdyYXRpb249IlRvbWNhdCBTZXJ2ZXIiPg0KKyAgPGNvbXBvbmVudCBuYW1lPSJBcHBTZXJ2ZXJTcGVjaWZpY1ZhbGlkYXRvcnNNYW5hZ2VyIiAvPg0KKyAgPGNvbXBvbmVudCBuYW1lPSJNb2R1bGVSb290TWFuYWdlciIgLz4NCisgIDxjb21wb25lbnQgbmFtZT0iTmV3TW9kdWxlUm9vdE1hbmFnZXIiIGluaGVyaXQtY29tcGlsZXItb3V0cHV0PSJmYWxzZSI+DQorICAgIDxvdXRwdXQgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkLy4uLy4uLy4uLy4uLy4uLy4uLy4uL29wdC9BcGFjaGUvVG9tY2F0LTUuNS93ZWJhcHBzL2xvZ291dC9XRUItSU5GL2NsYXNzZXMiIC8+DQorICAgIDxleGNsdWRlLW91dHB1dCAvPg0KKyAgICA8ZXhwbG9kZWQgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkLy4uLy4uLy4uLy4uLy4uLy4uLy4uL29wdC9BcGFjaGUvVG9tY2F0LTUuNS93ZWJhcHBzL2xvZ291dCIgLz4NCisgICAgPGV4Y2x1ZGUtZXhwbG9kZWQgLz4NCisgICAgPGNvbnRlbnQgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkIj4NCisgICAgICA8c291cmNlRm9sZGVyIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvamF2YSIgaXNUZXN0U291cmNlPSJmYWxzZSIgLz4NCisgICAgICA8c291cmNlRm9sZGVyIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvdGVzdCIgaXNUZXN0U291cmNlPSJ0cnVlIiAvPg0KKyAgICA8L2NvbnRlbnQ+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImluaGVyaXRlZEpkayIgLz4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ic291cmNlRm9sZGVyIiBmb3JUZXN0cz0iZmFsc2UiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImxpYnJhcnkiIG5hbWU9IlN0cnV0czIiIGxldmVsPSJwcm9qZWN0IiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJNYWlscmVhZGVyLWRhbyIgbGV2ZWw9InByb2plY3QiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImxpYnJhcnkiIG5hbWU9InNlcnZsZXQtYXBpIiBsZXZlbD0iYXBwbGljYXRpb24iIC8+DQorICAgIDxvcmRlckVudHJ5UHJvcGVydGllcyAvPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IldlYk1vZHVsZUJ1aWxkQ29tcG9uZW50Ij4NCisgICAgPHNldHRpbmcgbmFtZT0iRVhQTE9ERURfVVJMIiB2YWx1ZT0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy9sb2dvdXQiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkVYUExPREVEX0VOQUJMRUQiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJKQVJfVVJMIiB2YWx1ZT0iZmlsZTovLyIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iSkFSX0VOQUJMRUQiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iU1lOQ19FWFBMT0RFRF9ESVIiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJCVUlMRF9NT0RVTEVfT05fRlJBTUVfREVBQ1RJVkFUSU9OIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkJVSUxEX0VYVEVSTkFMX0RFUEVOREVOQ0lFUyIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJSVU5fSkFTUEVSX1ZBTElEQVRJT04iIHZhbHVlPSJmYWxzZSIgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJNb2R1bGVQcm9wZXJ0aWVzIj4NCisgICAgPGNvbnRhaW5lckVsZW1lbnQgdHlwZT0ibGlicmFyeSIgbmFtZT0ianVuaXQiIGxldmVsPSJhcHBsaWNhdGlvbiI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMCIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9IiZsdDtOL0EmZ3Q7IiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Ik1haWxyZWFkZXItZGFvIiBsZXZlbD0icHJvamVjdCI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9InNlcnZsZXQtYXBpIiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMCIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9IiZsdDtOL0EmZ3Q7IiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9IlN0cnV0czIiIGxldmVsPSJwcm9qZWN0Ij4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjEiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSIvV0VCLUlORi9saWIiIC8+DQorICAgIDwvY29udGFpbmVyRWxlbWVudD4NCisgICAgPGRlcGxveW1lbnREZXNjcmlwdG9yIG5hbWU9IndlYi54bWwiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbCIgb3B0aW9uYWw9ImZhbHNlIiB2ZXJzaW9uPSIyLjMiIC8+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSJjb250ZXh0LnhtbCIgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL01FVEEtSU5GL2NvbnRleHQueG1sIiBvcHRpb25hbD0iZmFsc2UiIHZlcnNpb249IjUueCIgLz4NCisgICAgPGRlcGxveW1lbnREZXNjcmlwdG9yIG5hbWU9IiIgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL01FVEEtSU5GL2NvbnRleHQueG1sIiBvcHRpb25hbD0iZmFsc2UiPg0KKyAgICAgIDxvcHRpb24gbmFtZT0iREVGQVVMVF9ESVIiIHZhbHVlPSJXRUItSU5GIiAvPg0KKyAgICAgIDxvcHRpb24gbmFtZT0iTkFNRSIgdmFsdWU9IiIgLz4NCisgICAgICA8b3B0aW9uIG5hbWU9IkRFU0NSSVBUSU9OIiB2YWx1ZT0iIiAvPg0KKyAgICA8L2RlcGxveW1lbnREZXNjcmlwdG9yPg0KKyAgICA8d2Vicm9vdHM+DQorICAgICAgPHJvb3QgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL3NyYy93ZWJhcHAiIHJlbGF0aXZlPSIvIiAvPg0KKyAgICA8L3dlYnJvb3RzPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IldlYmxvZ2ljV2ViTW9kdWxlUHJvcGVydGllcyIgLz4NCis8L21vZHVsZT4NCisNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvamF2YS9EYXRhYmFzZUxpc3RlbmVyLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvamF2YS9EYXRhYmFzZUxpc3RlbmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZhNjRkOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL0RhdGFiYXNlTGlzdGVuZXIuamF2YQpAQCAtMCwwICsxLDIzMCBAQAorLyoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDIsMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqICRJZDogQXBwbGljYXRpb25MaXN0ZW5lci5qYXZhIDM3MjA4NyAyMDA2LTAxLTI1IDAzOjM4OjQyWiBjcmFpZ21jYyAkCisgKi8KKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uaW1wbC5tZW1vcnkuTWVtb3J5VXNlckRhdGFiYXNlOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0RXZlbnQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dExpc3RlbmVyOworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiA8cD48Y29kZT5TZXJ2bGV0Q29udGV4dExpc3RlbmVyPC9jb2RlPiB0aGF0IGluaXRpYWxpemVzIGFuZCBmaW5hbGl6ZXMgdGhlCisgKiBwZXJzaXN0ZW50IHN0b3JhZ2Ugb2YgVXNlciBhbmQgU3Vic2NyaXB0aW9uIGluZm9ybWF0aW9uIGZvciB0aGUgU3RydXRzCisgKiBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uLCB1c2luZyBhbiBpbi1tZW1vcnkgZGF0YWJhc2UgYmFja2VkIGJ5IGFuIFhNTAorICogZmlsZS48L3A+CisgKiA8cC8+CisgKiA8cD48c3Ryb25nPklNUExFTUVOVEFUSU9OIFdBUk5JTkc8L3N0cm9uZz4gLSBJZiB0aGlzIHdlYiBhcHBsaWNhdGlvbiBpcyBydW4KKyAqIGZyb20gYSBXQVIgZmlsZSwgb3IgaW4gYW5vdGhlciBlbnZpcm9ubWVudCB3aGVyZSByZWFkaW5nIGFuZCB3cml0aW5nIG9mIHRoZQorICogd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIGlzIGltcG9zc2libGUsIHRoZSBpbml0aWFsIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkCisgKiB0byBhIGZpbGUgaW4gdGhlIHdlYiBhcHBsaWNhdGlvbiB0ZW1wb3JhcnkgZGlyZWN0b3J5IHByb3ZpZGVkIGJ5IHRoZQorICogY29udGFpbmVyLiAgVGhpcyBpcyBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlcyBvbmx5IC0geW91IHNob3VsZAorICogPHN0cm9uZz5OT1Q8L3N0cm9uZz4gYXNzdW1lIHRoYXQgZmlsZXMgd3JpdHRlbiBoZXJlIHdpbGwgc3Vydml2ZSBhIHJlc3RhcnQKKyAqIG9mIHlvdXIgc2VydmxldCBjb250YWluZXIuPC9wPgorICogPHAvPgorICogPHA+VGhpcyBjbGFzcyB3YXMgYm9ycm93ZWQgZnJvbSB0aGUgU2hhbGUgTWFpbHJlYWRlci4gQ2hhbmdlcyB3ZXJlOjwvcD4KKyAqIDxwLz4KKyAqIDx1bD4KKyAqIDxwLz4KKyAqIDxsaT5QYXRoIHRvIGRhdGFiYXNlLnhtbCAodW5kZXIgY2xhc3NlcyBoZXJlKS4gPC9saT4KKyAqIDxwLz4KKyAqIDxsaT5DbGFzcyB0byBzdG9yZSBwcm90b2NvbCBsaXN0IChhbiBhcnJheSBoZXJlKS4gPC9saT4KKyAqIDxwLz4KKyAqIDwvdWw+CisgKiA8cC8+CisgKiBERVZFTE9QTUVOVCBOT1RFIC0gQW5vdGhlciBhcHByb2FjaCB3b3VsZCBiZSB0byBpbnN0YW50aWF0ZSB0aGUgZGF0YWJhc2UgdmlhIFNwcmluZy4KKyAqIDwvcD4KKyAqLworCitwdWJsaWMgZmluYWwgY2xhc3MgRGF0YWJhc2VMaXN0ZW5lciBpbXBsZW1lbnRzIFNlcnZsZXRDb250ZXh0TGlzdGVuZXIgeworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1hbmlmZXN0IENvbnN0YW50cworCisKKyAgICAvKioKKyAgICAgKiA8cD5BcHBpY2F0aW9uIHNjb3BlIGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggdGhlIGluLW1lbW9yeSB2ZXJzaW9uIG9mCisgICAgICogb3VyIGRhdGFiYXNlIGlzIHN0b3JlZC48L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQUJBU0VfS0VZID0gImRhdGFiYXNlIjsKKworCisgICAgLyoqCisgICAgICogPHA+QXBwbGljYXRpb24gc2NvcGUgYXR0cmlidXRlIGtleSB1bmRlciB3aGljaCB0aGUgdmFsaWQgc2VsZWN0aW9uCisgICAgICogaXRlbXMgZm9yIHRoZSBwcm90b2NvbCBwcm9wZXJ0eSBpcyBzdG9yZWQuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBST1RPQ09MU19LRVkgPSAicHJvdG9jb2xzIjsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJbnN0YW5jZSBWYXJpYWJsZXMKKworCisgICAgLyoqCisgICAgICogPHA+VGhlIDxjb2RlPlNlcnZsZXRDb250ZXh0PC9jb2RlPiBmb3IgdGhpcyB3ZWIgYXBwbGljYXRpb24uPC9wPgorICAgICAqLworICAgIHByaXZhdGUgU2VydmxldENvbnRleHQgY29udGV4dCA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIFRoZSB7QGxpbmsgTWVtb3J5VXNlckRhdGFiYXNlfSBvYmplY3Qgd2UgY29uc3RydWN0IGFuZCBtYWtlIGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIE1lbW9yeVVzZXJEYXRhYmFzZSBkYXRhYmFzZSA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIDxwPkxvZ2dpbmcgb3V0cHV0IGZvciB0aGlzIHBsdWcgaW4gaW5zdGFuY2UuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgTG9nIGxvZyA9IExvZ0ZhY3RvcnkuZ2V0TG9nKHRoaXMuZ2V0Q2xhc3MoKSk7CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3BlcnRpZXMKKworCisgICAgLyoqCisgICAgICogPHA+VGhlIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIG9mIG91ciBwZXJzaXN0ZW50IGRhdGFiYXNlIHN0b3JhZ2UKKyAgICAgKiBmaWxlLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXRobmFtZSA9ICIvV0VCLUlORi9jbGFzc2VzL2RhdGFiYXNlLnhtbCI7CisKKyAgICAvKioKKyAgICAgKiA8cD5SZXR1cm4gdGhlIGFwcGxpY2F0aW9uIHJlc291cmNlIHBhdGggdG8gdGhlIGRhdGFiYXNlLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCBwYXRoIHRvIHRoZSBkYXRhYmFzZQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGF0aG5hbWUoKSB7CisgICAgICAgIHJldHVybiAodGhpcy5wYXRobmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0IHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIHRvIHRoZSBkYXRhYmFzZS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0aG5hbWUgdG8gdGhlIGRhdGFiYXNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGF0aG5hbWUoU3RyaW5nIHBhdGhuYW1lKSB7CisgICAgICAgIHRoaXMucGF0aG5hbWUgPSBwYXRobmFtZTsKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2VydmxldENvbnRleHRMaXN0ZW5lciBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIDxwPkdyYWNlZnVsbHkgc2h1dCBkb3duIHRoaXMgZGF0YWJhc2UsIHJlbGVhc2luZyBhbnkgcmVzb3VyY2VzIHRoYXQKKyAgICAgKiB3ZXJlIGFsbG9jYXRlZCBhdCBpbml0aWFsaXphdGlvbi48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZXZlbnQgU2VydmxldENvbnRleHRFdmVudCB0byBwcm9jZXNzCisgICAgICovCisgICAgcHVibGljIHZvaWQgY29udGV4dERlc3Ryb3llZChTZXJ2bGV0Q29udGV4dEV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgbG9nLmluZm8oIkZpbmFsaXppbmcgbWVtb3J5IGRhdGFiYXNlIHBsdWcgaW4iKTsKKworICAgICAgICBpZiAoZGF0YWJhc2UgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBkYXRhYmFzZS5jbG9zZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2cuZXJyb3IoIkNsb3NpbmcgbWVtb3J5IGRhdGFiYXNlIiwgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBjb250ZXh0LnJlbW92ZUF0dHJpYnV0ZShEQVRBQkFTRV9LRVkpOworICAgICAgICBjb250ZXh0LnJlbW92ZUF0dHJpYnV0ZShQUk9UT0NPTFNfS0VZKTsKKyAgICAgICAgZGF0YWJhc2UgPSBudWxsOworICAgICAgICBjb250ZXh0ID0gbnVsbDsKKworICAgIH0KKworCisgICAgLyoqCisgICAgICogPHA+SW5pdGlhbGl6ZSBhbmQgbG9hZCBvdXIgaW5pdGlhbCBkYXRhYmFzZSBmcm9tIHBlcnNpc3RlbnQKKyAgICAgKiBzdG9yYWdlLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBldmVudCBUaGUgY29udGV4dCBpbml0aWFsaXphdGlvbiBldmVudAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbnRleHRJbml0aWFsaXplZChTZXJ2bGV0Q29udGV4dEV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgbG9nLmluZm8oIkluaXRpYWxpemluZyBtZW1vcnkgZGF0YWJhc2UgcGx1ZyBpbiBmcm9tICciICsKKyAgICAgICAgICAgICAgICBwYXRobmFtZSArICInIik7CisKKyAgICAgICAgLy8gUmVtZW1iZXIgb3VyIGFzc29jaWF0ZWQgU2VydmxldENvbnRleHQKKyAgICAgICAgdGhpcy5jb250ZXh0ID0gZXZlbnQuZ2V0U2VydmxldENvbnRleHQoKTsKKworICAgICAgICAvLyBDb25zdHJ1Y3QgYSBuZXcgZGF0YWJhc2UgYW5kIG1ha2UgaXQgYXZhaWxhYmxlCisgICAgICAgIGRhdGFiYXNlID0gbmV3IE1lbW9yeVVzZXJEYXRhYmFzZSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nIHBhdGggPSBjYWxjdWxhdGVQYXRoKCk7CisgICAgICAgICAgICBpZiAobG9nLmlzRGVidWdFbmFibGVkKCkpIHsKKyAgICAgICAgICAgICAgICBsb2cuZGVidWcoIiBMb2FkaW5nIGRhdGFiYXNlIGZyb20gJyIgKyBwYXRoICsgIiciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRhdGFiYXNlLnNldFBhdGhuYW1lKHBhdGgpOworICAgICAgICAgICAgZGF0YWJhc2Uub3BlbigpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nLmVycm9yKCJPcGVuaW5nIG1lbW9yeSBkYXRhYmFzZSIsIGUpOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ2Fubm90IGxvYWQgZGF0YWJhc2UgZnJvbSAnIiArCisgICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lICsgIic6ICIgKyBlKTsKKyAgICAgICAgfQorICAgICAgICBjb250ZXh0LnNldEF0dHJpYnV0ZShEQVRBQkFTRV9LRVksIGRhdGFiYXNlKTsKKworICAgIH0KKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByaXZhdGUgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiA8cD5DYWxjdWxhdGUgYW5kIHJldHVybiBhbiBhYnNvbHV0ZSBwYXRobmFtZSB0byB0aGUgWE1MIGZpbGUgdG8gY29udGFpbgorICAgICAqIG91ciBwZXJzaXN0ZW50IHN0b3JhZ2UgaW5mb3JtYXRpb24uPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBBYnNvbHV0ZSBwYXRoIHRvIFhNTCBmaWxlLgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBjYWxjdWxhdGVQYXRoKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gQ2FuIHdlIGFjY2VzcyB0aGUgZGF0YWJhc2UgdmlhIGZpbGUgSS9PPworICAgICAgICBTdHJpbmcgcGF0aCA9IGNvbnRleHQuZ2V0UmVhbFBhdGgocGF0aG5hbWUpOworICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gKHBhdGgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRG9lcyBhIGNvcHkgb2YgdGhpcyBmaWxlIGFscmVhZHkgZXhpc3QgaW4gb3VyIHRlbXBvcmFyeSBkaXJlY3RvcnkKKyAgICAgICAgRmlsZSBkaXIgPSAoRmlsZSkKKyAgICAgICAgICAgICAgICBjb250ZXh0LmdldEF0dHJpYnV0ZSgiamF2YXguc2VydmxldC5jb250ZXh0LnRlbXBkaXIiKTsKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoZGlyLCAic3RydXRzLWV4YW1wbGUtZGF0YWJhc2UueG1sIik7CisgICAgICAgIGlmIChmaWxlLmV4aXN0cygpKSB7CisgICAgICAgICAgICByZXR1cm4gKGZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29weSB0aGUgc3RhdGljIHJlc291cmNlIHRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHJldHVybiBpdHMgcGF0aAorICAgICAgICBJbnB1dFN0cmVhbSBpcyA9CisgICAgICAgICAgICAgICAgY29udGV4dC5nZXRSZXNvdXJjZUFzU3RyZWFtKHBhdGhuYW1lKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiaXMgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcywgMTAyNCk7CisgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gb3MgPQorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGUpOworICAgICAgICBCdWZmZXJlZE91dHB1dFN0cmVhbSBib3MgPSBuZXcgQnVmZmVyZWRPdXRwdXRTdHJlYW0ob3MsIDEwMjQpOworICAgICAgICBieXRlIGJ1ZmZlcltdID0gbmV3IGJ5dGVbMTAyNF07CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgbiA9IGJpcy5yZWFkKGJ1ZmZlcik7CisgICAgICAgICAgICBpZiAobiA8PSAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib3Mud3JpdGUoYnVmZmVyLCAwLCBuKTsKKyAgICAgICAgfQorICAgICAgICBib3MuY2xvc2UoKTsKKyAgICAgICAgYmlzLmNsb3NlKCk7CisgICAgICAgIHJldHVybiAoZmlsZS5nZXRBYnNvbHV0ZVBhdGgoKSk7CisKKyAgICB9CisKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL2phdmEvSGVsbG8uamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL0hlbGxvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JkMzUwNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL0hlbGxvLmphdmEKQEAgLTAsMCArMSwxNiBAQAoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvblN1cHBvcnQ7CisKKy8qKgorICogRXhhbXBsZSBBY3Rpb24gY2xhc3MuCisgKi8KK3B1YmxpYyBjbGFzcyBIZWxsbyBleHRlbmRzIEFjdGlvblN1cHBvcnQgeworCisgICAgLyoqCisgICAgICogQW4gZXhhbXBsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGRvZXMgbm90aGluZyBhbmQgcmV0dXJucyAic3VjY2VzcyIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHtAbGluayAjU1VDQ0VTU30KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL2phdmEvTG9naW4tdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvamF2YS9Mb2dpbi12YWxpZGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDhlODI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL2phdmEvTG9naW4tdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+DQorDQorPHZhbGlkYXRvcnM+DQorICAgIDxmaWVsZCBuYW1lPSJ1c2VybmFtZSI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZT5Vc2VybmFtZSBpcyByZXF1aXJlZDwvbWVzc2FnZT4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKyAgICA8ZmllbGQgbmFtZT0icGFzc3dvcmQiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2U+UGFzc3dvcmQgaXMgcmVxdWlyZWQ8L21lc3NhZ2U+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCis8L3ZhbGlkYXRvcnM+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL2phdmEvTG9naW4uamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL0xvZ2luLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTU1ODc1YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL0xvZ2luLmphdmEKQEAgLTAsMCArMSwyNCBAQAoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkudXRpbC5CZWFuVXRpbHM7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5FeHBpcmVkUGFzc3dvcmRFeGNlcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworCitwdWJsaWMgY2xhc3MgTG9naW4gZXh0ZW5kcyBNYWlsUmVhZGVyU3VwcG9ydCB7CisKKyAgICBwdWJsaWMgU3RyaW5nIHNhdmUoKSB0aHJvd3MgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIHsKKworICAgICAgICBVc2VyIHVzZXIgPSBmaW5kVXNlcihnZXRVc2VybmFtZSgpLCBnZXRQYXNzd29yZCgpKTsKKworICAgICAgICBpZiAodXNlciAhPSBudWxsKSB7CisgICAgICAgICAgICBzZXRVc2VyKHVzZXIpOworICAgICAgICAgICAgQmVhblV0aWxzLnNldFZhbHVlcyh0aGlzLCB1c2VyLCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChoYXNFcnJvcnMoKSkgeworICAgICAgICAgICAgcmV0dXJuIElOUFVUOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL0xvZ291dC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL2phdmEvTG9nb3V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYxN2YxMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL0xvZ291dC5qYXZhCkBAIC0wLDAgKzEsOSBAQAorcHVibGljIGNsYXNzIExvZ291dCBleHRlbmRzIE1haWxSZWFkZXJTdXBwb3J0IHsKKworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHsKKworICAgICAgICBzZXRVc2VyKG51bGwpOworCisgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL01haWxSZWFkZXJTdXBwb3J0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvamF2YS9NYWlsUmVhZGVyU3VwcG9ydC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3NDNiNmYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvamF2YS9NYWlsUmVhZGVyU3VwcG9ydC5qYXZhCkBAIC0wLDAgKzEsMjE1IEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS51dGlsLkJlYW5VdGlsczsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25TdXBwb3J0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXJEYXRhYmFzZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuaW50ZXJjZXB0b3IuQXBwbGljYXRpb25Bd2FyZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuaW50ZXJjZXB0b3IuU2Vzc2lvbkF3YXJlOworCitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworcHVibGljIGNsYXNzIE1haWxSZWFkZXJTdXBwb3J0IGV4dGVuZHMgQWN0aW9uU3VwcG9ydAorICAgICAgICBpbXBsZW1lbnRzIEFwcGxpY2F0aW9uQXdhcmUsIFNlc3Npb25Bd2FyZSB7CisKKyAgICAvLyAtLS0tIFJlZ2lzdGVyIGZvcm0gcHJvcGVydGllcyAtLS0tCisKKyAgICBwcml2YXRlIFN0cmluZyB1c2VybmFtZSA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFVzZXJuYW1lKCkgeworICAgICAgICByZXR1cm4gdXNlcm5hbWU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VXNlcm5hbWUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHVzZXJuYW1lID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRQYXNzd29yZCgpIHsKKyAgICAgICAgcmV0dXJuIHBhc3N3b3JkOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFBhc3N3b3JkKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBwYXNzd29yZCA9IHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIHBhc3N3b3JkMiA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkMigpIHsKKyAgICAgICAgcmV0dXJuIHBhc3N3b3JkMjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRQYXNzd29yZDIoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHBhc3N3b3JkMiA9IHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIGZ1bGxOYW1lID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RnVsbE5hbWUoKSB7CisgICAgICAgIHJldHVybiBmdWxsTmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRGdWxsTmFtZShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgZnVsbE5hbWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBmcm9tQWRkcmVzcyA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEZyb21BZGRyZXNzKCkgeworICAgICAgICByZXR1cm4gZnJvbUFkZHJlc3M7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RnJvbUFkZHJlc3MoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIGZyb21BZGRyZXNzID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgcmVwbHlUb0FkZHJlc3MgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRSZXBseVRvQWRkcmVzcygpIHsKKyAgICAgICAgcmV0dXJuIHJlcGx5VG9BZGRyZXNzOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFJlcGx5VG9BZGRyZXNzKFN0cmluZyB2YWx1ZSkgeworICAgICAgICByZXBseVRvQWRkcmVzcyA9IHZhbHVlOworICAgIH0KKworICAgIC8vIC0tLS0gS2V5cyAtLS0tCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBQkFTRV9LRVkgPSAiZGF0YWJhc2UiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVNFUl9LRVkgPSAidXNlciI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQQVNTV09SRF9NSVNNQVRDSF9GSUVMRCA9ICJwYXNzd29yZCI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDQU5DRUwgPSAiY2FuY2VsIjsKKworICAgIC8vIC0tLS0gTWVzc2FnZXMgLS0tLQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfREFUQUJBU0VfTUlTU0lORyA9CisgICAgICAgICAgICAiRGF0YWJhc2UgaXMgbWlzc2luZyI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9VU0VSTkFNRV9VTklRVUUgPQorICAgICAgICAgICAgIlRoYXQgdXNlcm5hbWUgaXMgYWxyZWFkeSBpbiB1c2UgLSBwbGVhc2Ugc2VsZWN0IGFub3RoZXIiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfUEFTU1dPUkRfTUlTTUFUQ0ggPQorICAgICAgICAgICAgIkludmFsaWQgdXNlcm5hbWUgYW5kL29yIHBhc3N3b3JkLCBwbGVhc2UgdHJ5IGFnYWluIjsKKworICAgIC8vIC0tLS0gQXBwbGljYXRpb25Bd2FyZSAtLS0tCisKKyAgICBwcml2YXRlIE1hcCBhcHBsaWNhdGlvbjsKKworICAgIHB1YmxpYyB2b2lkIHNldEFwcGxpY2F0aW9uKE1hcCB2YWx1ZSkgeworICAgICAgICBhcHBsaWNhdGlvbiA9IHZhbHVlOworICAgIH0KKworICAgIHB1YmxpYyBNYXAgZ2V0QXBwbGljYXRpb24oKSB7CisgICAgICAgIHJldHVybiBhcHBsaWNhdGlvbjsKKyAgICB9CisKKyAgICAvLyAtLS0tIERhdGFiYXNlIHByb3BlcnR5IC0tLS0KKworICAgIHB1YmxpYyBVc2VyRGF0YWJhc2UgZ2V0RGF0YWJhc2UoKSB7CisgICAgICAgIE9iamVjdCBkYiA9IGdldEFwcGxpY2F0aW9uKCkuZ2V0KERBVEFCQVNFX0tFWSk7CisgICAgICAgIGlmIChkYiA9PSBudWxsKSB7CisgICAgICAgICAgICB0aGlzLmFkZEFjdGlvbkVycm9yKEVSUk9SX0RBVEFCQVNFX01JU1NJTkcpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoVXNlckRhdGFiYXNlKSBkYjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXREYXRhYmFzZShVc2VyRGF0YWJhc2UgZGF0YWJhc2UpIHsKKyAgICAgICAgZ2V0QXBwbGljYXRpb24oKS5wdXQoREFUQUJBU0VfS0VZLCBkYXRhYmFzZSk7CisgICAgfQorCisgICAgLy8gLS0tLSBTZXNzaW9uQXdhcmUgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+RmllbGQgdG8gc3RvcmUgc2Vzc2lvbiBjb250ZXh0LCBvciBpdHMgcHJveHkuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgTWFwIHNlc3Npb247CisKKyAgICAvKioKKyAgICAgKiA8cD5TdG9yZSBhIG5ldyBzZXNzaW9uIGNvbnRleHQuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHZhbHVlIEEgTWFwIHJlcHJlc2VudGluZyBzZXNzaW9uIHN0YXRlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2Vzc2lvbihNYXAgdmFsdWUpIHsKKyAgICAgICAgc2Vzc2lvbiA9IHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgc2Vzc2lvbiBjb250ZXh0LjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc2Vzc2lvbiBjb250ZXh0CisgICAgICovCisgICAgcHVibGljIE1hcCBnZXRTZXNzaW9uKCkgeworICAgICAgICByZXR1cm4gc2Vzc2lvbjsKKyAgICB9CisKKyAgICAvLyAtLS0tIFVzZXIgcHJvcGVydHkgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSByZWZlcmVuY2UgdG8gVXNlciBvYmplY3QgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlci48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFVzZXIgb2JqZWN0IGZvciBhdXRoZW50aWNhdGVkIHVzZXIuCisgICAgICovCisgICAgcHVibGljIFVzZXIgZ2V0VXNlcigpIHsKKyAgICAgICAgcmV0dXJuIChVc2VyKSBnZXRTZXNzaW9uKCkuZ2V0KFVTRVJfS0VZKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TdG9yZSBuZXcgcmVmZXJlbmNlIHRvIFVzZXIgT2JqZWN0LjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1c2VyIFVzZXIgb2JqZWN0IGZvciBhdXRoZW50aWNhdGVkIHVzZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRVc2VyKFVzZXIgdXNlcikgeworICAgICAgICBnZXRTZXNzaW9uKCkucHV0KFVTRVJfS0VZLCB1c2VyKTsKKyAgICB9CisKKyAgICAvLyAtLS0tIERhdGFiYXNlIG1ldGhvZHMgLS0tLQorCisgICAgcHVibGljIFVzZXIgZmluZFVzZXIoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpCisgICAgICAgICAgICB0aHJvd3MgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIHsKKworICAgICAgICBVc2VyIHVzZXIgPSBnZXREYXRhYmFzZSgpLmZpbmRVc2VyKHVzZXJuYW1lKTsKKworICAgICAgICBpZiAoKHVzZXIgIT0gbnVsbCkgJiYgIXVzZXIuZ2V0UGFzc3dvcmQoKS5lcXVhbHMocGFzc3dvcmQpKSB7CisgICAgICAgICAgICB1c2VyID0gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh1c2VyID09IG51bGwpIHsKKyAgICAgICAgICAgIGFkZEZpZWxkRXJyb3IoUEFTU1dPUkRfTUlTTUFUQ0hfRklFTEQsCisgICAgICAgICAgICAgICAgICAgIEVSUk9SX1BBU1NXT1JEX01JU01BVENIKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB1c2VyOworCisgICAgfQorCisgICAgcHVibGljIFVzZXIgY3JlYXRlVXNlcihTdHJpbmcgdXNlcm5hbWUsIFN0cmluZyBwYXNzd29yZCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgVXNlckRhdGFiYXNlIGRhdGFiYXNlID0gZ2V0RGF0YWJhc2UoKTsKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuZmluZFVzZXIodXNlcm5hbWUpOworCisgICAgICAgIGlmICh1c2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKEVSUk9SX1VTRVJOQU1FX1VOSVFVRSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHVzZXIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKHVzZXJuYW1lKTsKKyAgICAgICAgQmVhblV0aWxzLnNldFZhbHVlcyh1c2VyLCB0aGlzLCBudWxsKTsKKworICAgICAgICByZXR1cm4gdXNlcjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzYXZlVXNlcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBCZWFuVXRpbHMuc2V0VmFsdWVzKGdldFVzZXIoKSwgdGhpcywgbnVsbCk7CisgICAgICAgIGdldERhdGFiYXNlKCkuc2F2ZSgpOworICAgIH0KKworICAgIC8vIC0tLS0gQWxpYXMgLS0tLQorCisgICAgcHVibGljIFN0cmluZyBjYW5jZWwoKSB7CisgICAgICAgIHJldHVybiBDQU5DRUw7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvamF2YS9SZWdpc3Rlci12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL1JlZ2lzdGVyLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3MDU1ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvamF2YS9SZWdpc3Rlci12YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4NCisNCis8dmFsaWRhdG9ycz4NCisNCisgICAgPGZpZWxkIG5hbWU9InVzZXJuYW1lIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlPlVzZXJuYW1lIGlzIHJlcXVpcmVkPC9tZXNzYWdlPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorICAgIDxmaWVsZCBuYW1lPSJmdWxsTmFtZSI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZT5GdWxsIE5hbWUgaXMgcmVxdWlyZWQ8L21lc3NhZ2U+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9ImZyb21BZGRyZXNzIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlPkZyb20gQWRkcmVzcyBpcyByZXF1aXJlZDwvbWVzc2FnZT4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJlbWFpbCI+DQorICAgICAgICAgICAgPG1lc3NhZ2U+SW52YWxpZCBmb3JtYXQgZm9yIEZyb20gQWRkcmVzczwvbWVzc2FnZT4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0icmVwbHlUb0FkZHJlc3MiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJlbWFpbCI+DQorICAgICAgICAgICAgPG1lc3NhZ2U+SW52YWxpZCBmb3JtYXQgZm9yIFJlcGx5IFRvIEFkZHJlc3M8L21lc3NhZ2U+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9InBhc3N3b3JkIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlPlBhc3N3b3JkIGlzIHJlcXVpcmVkPC9tZXNzYWdlPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InN0cmluZ2xlbmd0aCI+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9InRyaW0iPnRydWU8L3BhcmFtPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5MZW5ndGgiPjQ8L3BhcmFtPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtYXhMZW5ndGgiPjEwPC9wYXJhbT4NCisgICAgICAgICAgICA8bWVzc2FnZT5QYXNzd29yZCBsZW5ndGggaXMgbm90IGluIHRoZSByYW5nZSA0IHRocm91Z2ggMTAuPC9tZXNzYWdlPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorICAgIDxmaWVsZCBuYW1lPSJwYXNzd29yZDIiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2U+Q29uZmlybWF0aW9uIHBhc3N3b3JkIGlzIHJlcXVpcmVkPC9tZXNzYWdlPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorICAgIDx2YWxpZGF0b3IgdHlwZT0iZXhwcmVzc2lvbiI+DQorICAgICAgICA8cGFyYW0gbmFtZT0iZXhwcmVzc2lvbiI+cGFzc3dvcmQgZXEgcGFzc3dvcmQyPC9wYXJhbT4NCisgICAgICAgIDxtZXNzYWdlPkludmFsaWQgdXNlcm5hbWUgYW5kL29yIHBhc3N3b3JkLCBwbGVhc2UgdHJ5IGFnYWluPC9tZXNzYWdlPg0KKyAgICA8L3ZhbGlkYXRvcj4NCisNCis8L3ZhbGlkYXRvcnM+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL2phdmEvUmVnaXN0ZXIuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL1JlZ2lzdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmFiYjExNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL1JlZ2lzdGVyLmphdmEKQEAgLTAsMCArMSwyNSBAQAoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKKworcHVibGljIGNsYXNzIFJlZ2lzdGVyIGV4dGVuZHMgTWFpbFJlYWRlclN1cHBvcnQgeworCisgICAgcHVibGljIFN0cmluZyBzYXZlKCkKKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIFVzZXIgdXNlciA9IGZpbmRVc2VyKGdldFVzZXJuYW1lKCksIGdldFBhc3N3b3JkKCkpOworICAgICAgICBib29sZWFuIGhhdmVVc2VyID0gKHVzZXIgIT0gbnVsbCk7CisKKyAgICAgICAgaWYgKGhhdmVVc2VyKSB7CisgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihFUlJPUl9VU0VSTkFNRV9VTklRVUUpOworICAgICAgICAgICAgcmV0dXJuIElOUFVUOworICAgICAgICB9CisKKyAgICAgICAgdXNlciA9IGNyZWF0ZVVzZXIoZ2V0VXNlcm5hbWUoKSwgZ2V0UGFzc3dvcmQoKSk7CisKKyAgICAgICAgc2V0VXNlcih1c2VyKTsKKworICAgICAgICBzYXZlVXNlcigpOworCisgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL2phdmEvZGF0YWJhc2UueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL2phdmEvZGF0YWJhc2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiYzgzM2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvamF2YS9kYXRhYmFzZS54bWwKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0nMS4wJz8+Cis8ZGF0YWJhc2U+CisgICAgPHVzZXIgdXNlcm5hbWU9InVzZXIiIGZyb21BZGRyZXNzPSJKb2huLlVzZXJAc29tZXdoZXJlLmNvbSIKKyAgICAgICAgICBmdWxsTmFtZT0iSm9obiBRLiBVc2VyIiBwYXNzd29yZD0icGFzcyI+CisgICAgICAgIDxzdWJzY3JpcHRpb24gaG9zdD0ibWFpbC5ob3RtYWlsLmNvbSIgYXV0b0Nvbm5lY3Q9ImZhbHNlIgorICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkPSJiYXIiIHR5cGU9InBvcDMiIHVzZXJuYW1lPSJ1c2VyMTIzNCI+CisgICAgICAgIDwvc3Vic2NyaXB0aW9uPgorICAgICAgICA8c3Vic2NyaXB0aW9uIGhvc3Q9Im1haWwueWFob28uY29tIiBhdXRvQ29ubmVjdD0iZmFsc2UiIHBhc3N3b3JkPSJmb28iCisgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaW1hcCIgdXNlcm5hbWU9ImpxdXNlciI+CisgICAgICAgIDwvc3Vic2NyaXB0aW9uPgorICAgIDwvdXNlcj4KKzwvZGF0YWJhc2U+CisgICAgICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL3Jlc291cmNlcy5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL2phdmEvcmVzb3VyY2VzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWZhYWVjNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL3Jlc291cmNlcy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMiBAQAoraGVsbG8ubWVzc2FnZSA9IENvbmdyYXR1bGF0aW9ucyEgU3RydXRzIGlzIHVwIGFuZCBydW5uaW5nIC4uLgorIyBBZGQgeW91ciBtZXNzYWdlcyBoZXJlIC4uLgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL2phdmEvc3RydXRzLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL3N0cnV0cy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTE5Zjk0YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy9qYXZhL3N0cnV0cy54bWwKQEAgLTAsMCArMSw2MCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+Cis8IURPQ1RZUEUgc3RydXRzIFBVQkxJQworICAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAyLjAvL0VOIgorICAgICAgICAiaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL2R0ZHMvc3RydXRzLTIuMC5kdGQiPgorCis8c3RydXRzPgorICAgIDxjb25zdGFudCBuYW1lPSJzdHJ1dHMuZGV2TW9kZSIgdmFsdWU9InRydWUiLz4KKyAgICA8Y29uc3RhbnQgbmFtZT0ic3RydXRzLmVuYWJsZS5EeW5hbWljTWV0aG9kSW52b2NhdGlvbiIgdmFsdWU9ImZhbHNlIi8+CisKKyAgICA8cGFja2FnZSBuYW1lPSJkZWZhdWx0IiBleHRlbmRzPSJzdHJ1dHMtZGVmYXVsdCI+CisgICAgICAgIDxkZWZhdWx0LWFjdGlvbi1yZWYgbmFtZT0iTWlzc2luZyIvPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iSGVsbG8iIGNsYXNzPSJIZWxsbyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9IZWxsby5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJNaXNzaW5nIj4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL01pc3NpbmcuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iV2VsY29tZSI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9XZWxjb21lLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlJlZ2lzdGVyIiBjbGFzcz0iUmVnaXN0ZXIiIG1ldGhvZD0iaW5wdXQiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL1JlZ2lzdGVyLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlJlZ2lzdGVyX2NhbmNlbCIgY2xhc3M9IlJlZ2lzdGVyIiBtZXRob2Q9ImNhbmNlbCI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImNhbmNlbCIgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5XZWxjb21lPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iUmVnaXN0ZXJfc2F2ZSIgY2xhc3M9IlJlZ2lzdGVyIiBtZXRob2Q9InNhdmUiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL1JlZ2lzdGVyLmpzcDwvcmVzdWx0PgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPk1lbnU8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJNZW51IiBjbGFzcz0iTWFpbFJlYWRlclN1cHBvcnQiPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvTWVudS5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJMb2dvdXQiIGNsYXNzPSJMb2dvdXQiPgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPldlbGNvbWU8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJMb2dpbiIgY2xhc3M9IkxvZ2luIiBtZXRob2Q9ImlucHV0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9Mb2dpbi5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJMb2dpbl9jYW5jZWwiIGNsYXNzPSJMb2dpbiIgbWV0aG9kPSJjYW5jZWwiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJjYW5jZWwiIHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+V2VsY29tZTwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IkxvZ2luX3NhdmUiIGNsYXNzPSJMb2dpbiIgbWV0aG9kPSJzYXZlIj4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9Mb2dpbi5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5NZW51PC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgPC9wYWNrYWdlPgorPC9zdHJ1dHM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvdGVzdC9IZWxsb1Rlc3QuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy90ZXN0L0hlbGxvVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwZGViZjUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvdGVzdC9IZWxsb1Rlc3QuamF2YQpAQCAtMCwwICsxLDE2IEBACitpbXBvcnQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlOworCisvKioKKyAqIEFuIGV4YW1wbGUgdGV4dCBjbGFzcyB0byB2ZXJpZnkgdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3B1YmxpYyBjbGFzcyBIZWxsb1Rlc3QgZXh0ZW5kcyBUZXN0Q2FzZSB7CisKKyAgICAvKioKKyAgICAgKiBBbiBleGFtcGxlIHRlc3QgdGhhdCBhc3NlcnRzIHRydWUuCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBPbiBpbnZhbGlkIGFzc2VydGlvbnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SGVsbG9BY3Rpb24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgYXNzZXJ0VHJ1ZSh0cnVlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvdGVzdC9SZWdpc3RlclRlc3QuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy90ZXN0L1JlZ2lzdGVyVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ODYzNjYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvdGVzdC9SZWdpc3RlclRlc3QuamF2YQpAQCAtMCwwICsxLDM1IEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKKworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworCitwdWJsaWMgY2xhc3MgUmVnaXN0ZXJUZXN0IGV4dGVuZHMgUmV0YWluVGVzdCB7CisKKyAgICBSZWdpc3RlciBhY3Rpb24gPSBudWxsOworCisgICAgcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgc3VwZXIuc2V0VXAoKTsKKyAgICAgICAgYWN0aW9uID0gbmV3IFJlZ2lzdGVyKCk7CisgICAgICAgIGFjdGlvbi5zZXRBcHBsaWNhdGlvbihuZXcgSGFzaE1hcCgpKTsKKyAgICAgICAgYWN0aW9uLnNldFNlc3Npb24obmV3IEhhc2hNYXAoKSk7CisgICAgICAgIGFjdGlvbi5zZXREYXRhYmFzZShkYXRhYmFzZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdFNhdmUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBhY3Rpb24uc2V0VXNlcm5hbWUoInVzZXIiKTsKKyAgICAgICAgYWN0aW9uLnNldFBhc3N3b3JkKCJwYXNzIik7CisgICAgICAgIGFjdGlvbi5zZXRGdWxsTmFtZSgiSm9obiBRLiBVc2VyIik7CisgICAgICAgIGFjdGlvbi5zZXRGcm9tQWRkcmVzcygiSm9obi5Vc2VyQHNvbWV3aGVyZS5jb20iKTsKKworICAgICAgICBTdHJpbmcgc3VjY2VzcyA9IGFjdGlvbi5zYXZlKCk7CisgICAgICAgIGFzc2VydFRydWUoIkV4cGVjdGVkIFNVQ0NFU1MiLCBBY3Rpb24uU1VDQ0VTUy5lcXVhbHMoc3VjY2VzcykpOworCisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoIkV4cGVjdGVkIHVzZXIiLCB1c2VyKTsKKworICAgICAgICBTdHJpbmcgaW5wdXQgPSBhY3Rpb24uc2F2ZSgpOworICAgICAgICBhc3NlcnRUcnVlKCJFeHBlY3RlZCBJTlBVVCIsIEFjdGlvbi5JTlBVVC5lcXVhbHMoaW5wdXQpKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy90ZXN0L1JldGFpblRlc3QuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy90ZXN0L1JldGFpblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjY2ZjczCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3Rlc3QvUmV0YWluVGVzdC5qYXZhCkBAIC0wLDAgKzEsOTcgQEAKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5TdWJzY3JpcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlckRhdGFiYXNlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uaW1wbC5tZW1vcnkuTWVtb3J5VXNlckRhdGFiYXNlOworCitwdWJsaWMgY2xhc3MgUmV0YWluVGVzdCBleHRlbmRzIFRlc3RDYXNlIHsKKworICAgIHByb3RlY3RlZCBVc2VyRGF0YWJhc2UgZGF0YWJhc2U7CisgICAgcHJvdGVjdGVkIFN0cmluZyB0ZXN0TmFtZSA9ICJ0ZXN0LWRhdGFiYXNlLnhtbCI7CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci5zZXRVcCgpOworICAgICAgICBNZW1vcnlVc2VyRGF0YWJhc2UgbWVtb3J5VXNlckRhdGFiYXNlID0gbmV3IE1lbW9yeVVzZXJEYXRhYmFzZSgpOworICAgICAgICBtZW1vcnlVc2VyRGF0YWJhc2Uuc2V0UGF0aG5hbWUodGVzdE5hbWUpOworICAgICAgICBkYXRhYmFzZSA9IG1lbW9yeVVzZXJEYXRhYmFzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGF0YWJhc2VDbGVhbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCB1c2VyIHRvIGJlIG1pc3NpbmciLCB1c2VyKTsKKyAgICB9CisKKyAgICAvLyAgQWRkIHlvdXIgdGVzdCBtZXRob2RzIGhlcmUuCisgICAgLy8gIFRoZSBzZXRVcCBtZXRob2Qgd2lsbCBydW4gYmV0d2VlbiBlYWNoIHRlc3QuCisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q3JlYXRlVXNlcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE5vdE51bGwodXNlcik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEZpbmRVc2VyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVzZXIgdXNlcjEgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIFVzZXIgdXNlcjIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnRTYW1lKCJFeHBlY3RlZCB1c2VycyB0byBtYXRjaCIsIHVzZXIxLCB1c2VyMik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdENyZWF0ZVN1YnNjcmlwdGlvbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRXhwZWN0ZWQgc3Vic2NyaXB0aW9uIHRvIGJlIGNyZWF0ZWQiLCBzdWIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kU3Vic2NyaXB0aW9uKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIxID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpLmZpbmRTdWJzY3JpcHRpb24oIm1haWwueWFob28uY29tIik7CisgICAgICAgIGFzc2VydFNhbWUoIkV4cGVjdGVkIFN1YnNjcmlwdGlvbnMgdG8gbWF0Y2giLCBzdWIxLCBzdWIyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGF0YWJzYWVTYXZlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICB1c2VyLnNldFBhc3N3b3JkKCJwYXNzIik7CisgICAgICAgIHVzZXIuc2V0RnVsbE5hbWUoIkpvaG4gUS4gVXNlciIpOworICAgICAgICB1c2VyLnNldEZyb21BZGRyZXNzKCJKb2huLlVzZXJAc29tZXdoZXJlLmNvbSIpOworCisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIxID0gdXNlci5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwuaG90bWFpbC5jb20iKTsKKyAgICAgICAgc3ViMS5zZXRVc2VybmFtZSgidXNlcjEyMzQiKTsKKyAgICAgICAgc3ViMS5zZXRBdXRvQ29ubmVjdChmYWxzZSk7CisgICAgICAgIHN1YjEuc2V0VHlwZSgicG9wMyIpOworICAgICAgICBzdWIxLnNldFBhc3N3b3JkKCJiYXIiKTsKKworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMiA9IHVzZXIuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLnlhaG9vLmNvbSIpOworICAgICAgICBzdWIyLnNldFVzZXJuYW1lKCJqcXVzZXIiKTsKKyAgICAgICAgc3ViMi5zZXRBdXRvQ29ubmVjdChmYWxzZSk7CisgICAgICAgIHN1YjIuc2V0VHlwZSgiaW1hcCIpOworICAgICAgICBzdWIyLnNldFBhc3N3b3JkKCJmb28iKTsKKworICAgICAgICBkYXRhYmFzZS5zYXZlKCk7CisKKyAgICB9CisKKyAgICAvLyBFeHRyYSBjcmVkaXQKKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kZXJVc2VyQm9ndXMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyMSA9IGRhdGFiYXNlLmZpbmRVc2VyKCJib2d1cyIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCBib2d1cyB1c2VyIHRvIGJlIG5vdCBmb3VuZCIsIHVzZXIxKTsKKyAgICAgICAgVXNlciB1c2VyMiA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRXhwZWN0ZWQgdXNlciB0byBiZSBjcmVhdGVkIiwgdXNlcjIpOworICAgICAgICB1c2VyMSA9IGRhdGFiYXNlLmZpbmRVc2VyKCJib2d1cyIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCBib2d1cyB1c2VyIHRvIGJlIG5vdCBmb3VuZCIsIHVzZXIxKTsKKyAgICAgICAgdXNlcjEgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROb3ROdWxsKCJFeHBlY3RlZCB1c2VyIHRvIGJlIGZvdW5kIiwgdXNlcjEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kU3ViQm9ndXMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gdXNlci5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLmJvZ3VzLmNvbSIpOworICAgICAgICBhc3NlcnROdWxsKHN1Yik7CisgICAgICAgIHN1YiA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIikuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLmhvdG1haWwuY29tIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoc3ViKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjIgPSB1c2VyLmZpbmRTdWJzY3JpcHRpb24oIm1haWwuYm9ndXMuY29tIik7CisgICAgICAgIGFzc2VydE51bGwoc3ViMik7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIzID0gdXNlci5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLmhvdG1haWwuY29tIik7CisgICAgICAgIGFzc2VydFNhbWUoc3ViLCBzdWIzKTsKKyAgICB9CisKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvV2ViVGVzdC5kdGQgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvV2ViVGVzdC5kdGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGY4YTM0NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9XZWJUZXN0LmR0ZApAQCAtMCwwICsxLDQ2OTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/PgorPCFFTlRJVFkgJSBib29sZWFuICIodHJ1ZXxmYWxzZXxvbnxvZmZ8eWVzfG5vKSI+Cis8IUVOVElUWSAlIHRhc2tzICJwcm9wZXJ0eWZpbGUgfCBjY21rZGlyIHwgaW1wb3J0dHlwZWxpYiB8IHZzc2NoZWNraW4gfCBzcWwgfCBjdnNwYXNzIHwgY3NjIHwgZGlybmFtZSB8IHJlcGxhY2VyZWdleHAgfCBnZXQgfCBqanRyZWUgfCBzbGVlcCB8IGphcmxpYi1kaXNwbGF5IHwgbGVuZ3RoIHwgZGVwZW5kc2V0IHwgemlwIHwgcGF0Y2ggfCBqc3BjIHwgc3R5bGUgfCBuaWNlIHwgdGVzdCB8IHRzdGFtcCB8IHVud2FyIHwgdnNzaGlzdG9yeSB8IGN2c2NoYW5nZWxvZyB8IGNjbWNoZWNraW4gfCBiemlwMiB8IHN5bmMgfCB2c3NhZGQgfCBqYXZhZG9jIHwgdHJhbnNsYXRlIHwgc2lnbmphciB8IGNjbG9jayB8IGNob3duIHwgamFybGliLWF2YWlsYWJsZSB8IFdzZGxUb0RvdG5ldCB8IGJ1aWxkbnVtYmVyIHwganBjb3ZtZXJnZSB8IGN2c3ZlcnNpb24gfCBlamJqYXIgfCB3YXIgfCByZW5hbWUgfCBzZXF1ZW50aWFsIHwgc2VydmVyZGVwbG95IHwgcHJvcGVydHkgfCBzdWJhbnQgfCBtb3ZlIHwgaWxkYXNtIHwgY29weWRpciB8IGNjY2hlY2tpbiB8IGNjdW5sb2NrIHwgd2xqc3BjIHwgZml4Y3JsZiB8IHNvc2dldCB8IHBhdGhjb252ZXJ0IHwgcmVjb3JkIHwgZXhlYyB8IGNjbWtsYWJlbCB8IG1hbmlmZXN0IHwganBjb3ZyZXBvcnQgfCBleGVjb24gfCBjY21jaGVja291dCB8IGFudCB8IHhtbHZhbGlkYXRlIHwgeHNsdCB8IGlwbGFuZXQtZWpiYyB8IGNjbWNoZWNraW50YXNrIHwgZ3ppcCB8IG5hdGl2ZTJhc2NpaSB8IGNjcm10eXBlIHwgZWFyIHwgaW5wdXQgfCBwcmVzZXRkZWYgfCBybWljIHwgY2hlY2tzdW0gfCBtYWlsIHwgbG9hZGZpbGUgfCB2c3NjaGVja291dCB8IHNvc2NoZWNraW4gfCBtaW1lbWFpbCB8IGd1bnppcCB8IGNvbmNhdCB8IGNhYiB8IHRvdWNoIHwgcGFyYWxsZWwgfCBhbnRjYWxsIHwgY2Nta2JsIHwgY2NjaGVja291dCB8IHR5cGVkZWYgfCBmaWx0ZXIgfCB4bWxwcm9wZXJ0eSB8IGltcG9ydCB8IGNvcHkgfCBqc2hhcnBjIHwgc3ltbGluayB8IGFudHN0cnVjdHVyZSB8IHNjcmlwdCB8IGNjbWNyZWF0ZXRhc2sgfCBycG0gfCBkZWxldGUgfCByZXBsYWNlIHwgbW1ldHJpY3MgfCBhdHRyaWIgfCB3YWl0Zm9yIHwgdW50YXIgfCBsb2FkcHJvcGVydGllcyB8IGF2YWlsYWJsZSB8IGVjaG9wcm9wZXJ0aWVzIHwganVuaXQgfCBjaGdycCB8IGJ1bnppcDIgfCB3aGljaHJlc291cmNlIHwgY29weWZpbGUgfCB2c3NjcmVhdGUgfCBtYWNyb2RlZiB8IHVuamFyIHwgdmJjIHwgd3NkbHRvZG90bmV0IHwgbWtkaXIgfCBjb25kaXRpb24gfCBjdnMgfCB0ZW1wZmlsZSB8IGp1bml0cmVwb3J0IHwgY2Nta2F0dHIgfCB0YXNrZGVmIHwgZWNobyB8IGNjdXBkYXRlIHwgamF2YSB8IHJlbmFtZWV4dCB8IHZzc2xhYmVsIHwgYmFzZW5hbWUgfCBqYXZhZG9jMiB8IHZzc2NwIHwgdGFyIHwgc2V0cHJveHkgfCBpbGFzbSB8IHNvc2NoZWNrb3V0IHwgYXBwbHkgfCBjY3VuY2hlY2tvdXQgfCBqYXJsaWItcmVzb2x2ZSB8IGN2c3RhZ2RpZmYgfCBqbGluayB8IGphdmFjYyB8IGNobW9kIHwgcHZjcyB8IGphcmxpYi1tYW5pZmVzdCB8IGphciB8IGNjbWtsYnR5cGUgfCBzY3JpcHRkZWYgfCBkZWZhdWx0ZXhjbHVkZXMgfCBtcGFyc2UgfCBibGdlbmNsaWVudCB8IHVwdG9kYXRlIHwgampkb2MgfCBnZW5rZXkgfCBqYXZhaCB8IGNjbWtlbGVtIHwgY2NtcmVjb25maWd1cmUgfCBmYWlsIHwgdW56aXAgfCBqYXZhYyB8IGpwY292ZXJhZ2UgfCBzb3NsYWJlbCB8IGRlcGVuZCB8IHZzc2dldCB8IGRlbHRyZWUiPgorPCFFTlRJVFkgJSB0eXBlcyAicGF0dGVybnNldCB8IGFzc2VydGlvbnMgfCBwcm9wZXJ0eXNldCB8IGZpbHRlcm1hcHBlciB8IGZpbHRlcnNldCB8IGxpYmZpbGVzZXQgfCBpc2ZpbGVzZWxlY3RlZCB8IG1lcmdlbWFwcGVyIHwgaWRlbnRpdHltYXBwZXIgfCBmaWx0ZXJyZWFkZXIgfCBzY3JpcHRmaWx0ZXIgfCB1bnBhY2thZ2VtYXBwZXIgfCBjb25jYXRmaWx0ZXIgfCBleHRlbnNpb24gfCBmaWxlc2V0IHwgZGlyc2V0IHwgZ2xvYm1hcHBlciB8IGZpbGVsaXN0IHwgZmlsdGVyY2hhaW4gfCBwYXRoIHwgY29tcG9zaXRlbWFwcGVyIHwgY2xhc3NmaWxlc2V0IHwgcmVnZXhwbWFwcGVyIHwgc2VsZWN0b3IgfCB4bWxjYXRhbG9nIHwgZmxhdHRlbm1hcHBlciB8IGRlc2NyaXB0aW9uIHwgY2hhaW5lZG1hcHBlciB8IHBhY2thZ2VtYXBwZXIgfCBtYXBwZXIgfCB6aXBmaWxlc2V0IHwgc3Vic3RpdHV0aW9uIHwgZXh0ZW5zaW9uU2V0IHwgcmVkaXJlY3RvciB8IHJlZ2V4cCI+CisKKzwhRUxFTUVOVCBwcm9qZWN0ICh0YXJnZXQgfCAldGFza3M7IHwgJXR5cGVzOykqPgorPCFBVFRMSVNUIHByb2plY3QKKyAgICAgICAgICBuYW1lICAgIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJnZXQgKCV0YXNrczsgfCAldHlwZXM7KSo+CisKKzwhQVRUTElTVCB0YXJnZXQKKyAgICAgICAgICBpZCAgICAgICAgICBJRCAgICAjSU1QTElFRAorICAgICAgICAgIG5hbWUgICAgICAgIENEQVRBICNSRVFVSVJFRAorICAgICAgICAgIGlmICAgICAgICAgIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzICAgICAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXBlbmRzICAgICBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0dGVybnNldCAoaW5jbHVkZSB8IHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgZXhjbHVkZXNmaWxlIHwgaW5jbHVkZXNmaWxlKSo+Cis8IUFUVExJU1QgcGF0dGVybnNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbmNsdWRlIEVNUFRZPgorPCFBVFRMSVNUIGluY2x1ZGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4Y2x1ZGUgRU1QVFk+Cis8IUFUVExJU1QgZXhjbHVkZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhjbHVkZXNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGV4Y2x1ZGVzZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW5jbHVkZXNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGluY2x1ZGVzZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXNzZXJ0aW9ucyAoZGlzYWJsZSB8IGVuYWJsZSkqPgorPCFBVFRMSVNUIGFzc2VydGlvbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVzeXN0ZW1hc3NlcnRpb25zICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRpc2FibGUgRU1QVFk+Cis8IUFUVExJU1QgZGlzYWJsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZW5hYmxlIEVNUFRZPgorPCFBVFRMSVNUIGVuYWJsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJvcGVydHlzZXQgKHByb3BlcnR5cmVmIHwgcHJvcGVydHlzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBwcm9wZXJ0eXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGR5bmFtaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmVnYXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByb3BlcnR5cmVmIEVNUFRZPgorPCFBVFRMSVNUIHByb3BlcnR5cmVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVpbHRpbiAoYWxsIHwgc3lzdGVtIHwgY29tbWFuZGxpbmUpICNJTVBMSUVECisgICAgICAgICAgcmVnZXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYXBwZXIgKGNsYXNzcGF0aCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIG1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoaWRlbnRpdHkgfCBmbGF0dGVuIHwgZ2xvYiB8IG1lcmdlIHwgcmVnZXhwIHwgcGFja2FnZSB8IHVucGFja2FnZSkgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3NwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdXN0b20gKGNsYXNzcGF0aCB8IHBhcmFtKSo+Cis8IUFUVExJU1QgY3VzdG9tCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXJhbSBFTVBUWT4KKzwhQVRUTElTVCBwYXJhbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByZXNlbnQgKG1hcHBlcikqPgorPCFBVFRMSVNUIHByZXNlbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZXNlbnQgKHNyY29ubHkgfCBib3RoKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG5vbmUgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIG5vbmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG5vdCAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1Qgbm90CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0eXBlIEVNUFRZPgorPCFBVFRMSVNUIHR5cGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyKSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbW9kaWZpZWQgKHBhcmFtKSo+Cis8IUFUVExJU1QgbW9kaWZpZWQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNvbXBhcmF0b3IgKGVxdWFsIHwgcnVsZSkgI0lNUExJRUQKKyAgICAgICAgICBzZWxkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFsZ29yaXRobSAoaGFzaHZhbHVlIHwgZGlnZXN0KSAjSU1QTElFRAorICAgICAgICAgIGNhY2hlIChwcm9wZXJ0eWZpbGUpICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIG9yIChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBvcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29udGFpbnMgRU1QVFk+Cis8IUFUVExJU1QgY29udGFpbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3Jld2hpdGVzcGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0ZXh0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVwZW5kIChtYXBwZXIpKj4KKzwhQVRUTElTVCBkZXBlbmQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGlmZmVyZW50IChtYXBwZXIpKj4KKzwhQVRUTElTVCBkaWZmZXJlbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZWNvbnRlbnRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZWZpbGV0aW1lcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNpemUgRU1QVFk+Cis8IUFUVExJU1Qgc2l6ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgd2hlbiAobGVzcyB8IG1vcmUgfCBlcXVhbCkgI0lNUExJRUQKKyAgICAgICAgICB1bml0cyAoSyB8IGsgfCBraWxvIHwgS0lMTyB8IEtpIHwgS0kgfCBraSB8IGtpYmkgfCBLSUJJIHwgTSB8IG0gfCBtZWdhIHwgTUVHQSB8IE1pIHwgTUkgfCBtaSB8IG1lYmkgfCBNRUJJIHwgRyB8IGcgfCBnaWdhIHwgR0lHQSB8IEdpIHwgR0kgfCBnaSB8IGdpYmkgfCBHSUJJIHwgVCB8IHQgfCB0ZXJhIHwgVEVSQSB8IFRpIHwgVEkgfCB0aSB8IHRlYmkgfCBURUJJKSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFqb3JpdHkgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIG1ham9yaXR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgYWxsb3d0aWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb250YWluc3JlZ2V4cCBFTVBUWT4KKzwhQVRUTElTVCBjb250YWluc3JlZ2V4cAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhwcmVzc2lvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGVuYW1lIEVNUFRZPgorPCFBVFRMSVNUIGZpbGVuYW1lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZWdhdGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2VsZWN0b3IgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIHNlbGVjdG9yCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRhdGUgRU1QVFk+Cis8IUFUVExJU1QgZGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBtaWxsaXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGVja2RpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGF0ZXRpbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aGVuIChiZWZvcmUgfCBhZnRlciB8IGVxdWFsKSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhbmQgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIGFuZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVwdGggRU1QVFk+Cis8IUFUVExJU1QgZGVwdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG1heCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWluIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRpcnNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZGlyc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHRkaXJzIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBleHRkaXJzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhpc3RpbmcgKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGV4aXN0aW5nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZWxpc3QgKGZpbGUpKj4KKzwhQVRUTElTVCBmaWxlbGlzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZSBFTVBUWT4KKzwhQVRUTElTVCBmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0aGVsZW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgcGF0aGVsZW1lbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIHBhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJtYXBwZXIgKGhlYWRmaWx0ZXIgfCBjbGFzc2NvbnN0YW50cyB8IGxpbmVjb250YWlucyB8IGZpbHRlcnJlYWRlciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2V0b2tlbnMgfCBlc2NhcGV1bmljb2RlIHwgaWdub3JlYmxhbmsgfCB0YWlsZmlsdGVyIHwgdGFic3Rvc3BhY2VzIHwgcHJlZml4bGluZXMgfCB0cmltIHwgZXhwYW5kcHJvcGVydGllcyB8IHN0cmlwbGluZWJyZWFrcyB8IHJlcGxhY2VzdHJpbmcgfCBzdHJpcGxpbmVjb21tZW50cyB8IHRva2VuZmlsdGVyIHwgc3RyaXBqYXZhY29tbWVudHMgfCBjb250YWluc3JlZ2V4IHwgZGVsZXRlY2hhcmFjdGVycyB8IGxpbmVjb250YWluc3JlZ2V4cCkqPgorPCFBVFRMSVNUIGZpbHRlcm1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGhlYWRmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgaGVhZGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBza2lwIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3Njb25zdGFudHMgRU1QVFk+Cis8IUFUVExJU1QgY2xhc3Njb25zdGFudHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpbmVjb250YWlucyAoY29udGFpbnMpKj4KKzwhQVRUTElTVCBsaW5lY29udGFpbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnJlYWRlciAoY2xhc3NwYXRoIHwgcGFyYW0pKj4KKzwhQVRUTElTVCBmaWx0ZXJyZWFkZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNlcmVnZXggRU1QVFk+Cis8IUFUVExJU1QgcmVwbGFjZXJlZ2V4CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGFncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2V0b2tlbnMgKHRva2VuKSo+Cis8IUFUVExJU1QgcmVwbGFjZXRva2VucworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYmVnaW50b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZHRva2VuIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdG9rZW4gRU1QVFk+Cis8IUFUVExJU1QgdG9rZW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGtleSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXNjYXBldW5pY29kZSBFTVBUWT4KKzwhQVRUTElTVCBlc2NhcGV1bmljb2RlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpZ25vcmVibGFuayBFTVBUWT4KKzwhQVRUTElTVCBpZ25vcmVibGFuaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhaWxmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgdGFpbGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBza2lwIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFic3Rvc3BhY2VzIEVNUFRZPgorPCFBVFRMSVNUIHRhYnN0b3NwYWNlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFibGVuZ3RoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJlZml4bGluZXMgRU1QVFk+Cis8IUFUVExJU1QgcHJlZml4bGluZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRyaW0gRU1QVFk+Cis8IUFUVExJU1QgdHJpbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4cGFuZHByb3BlcnRpZXMgRU1QVFk+Cis8IUFUVExJU1QgZXhwYW5kcHJvcGVydGllcworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3RyaXBsaW5lYnJlYWtzIEVNUFRZPgorPCFBVFRMSVNUIHN0cmlwbGluZWJyZWFrcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZWJyZWFrcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2VzdHJpbmcgRU1QVFk+Cis8IUFUVExJU1QgcmVwbGFjZXN0cmluZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN0cmlwbGluZWNvbW1lbnRzIChjb21tZW50KSo+Cis8IUFUVExJU1Qgc3RyaXBsaW5lY29tbWVudHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgY29tbWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0b2tlbmZpbHRlciAoY29udGFpbnNzdHJpbmcgfCBsaW5ldG9rZW5pemVyIHwgdHJpbSB8IHN0cmluZ3Rva2VuaXplciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2VzdHJpbmcgfCBpZ25vcmVibGFuayB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBjb250YWluc3JlZ2V4IHwgZmlsZXRva2VuaXplcikqPgorPCFBVFRMSVNUIHRva2VuZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZWxpbW91dHB1dCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbnRhaW5zc3RyaW5nIEVNUFRZPgorPCFBVFRMSVNUIGNvbnRhaW5zc3RyaW5nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjb250YWlucyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpbmV0b2tlbml6ZXIgRU1QVFk+Cis8IUFUVExJU1QgbGluZXRva2VuaXplcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWRlbGltcyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdHJpbmd0b2tlbml6ZXIgRU1QVFk+Cis8IUFUVExJU1Qgc3RyaW5ndG9rZW5pemVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdXBwcmVzc2RlbGltcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVsaW1zICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlbGltc2FyZXRva2VucyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWxpbXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZWxldGVjaGFyYWN0ZXJzIEVNUFRZPgorPCFBVFRMSVNUIGRlbGV0ZWNoYXJhY3RlcnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNoYXJzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29udGFpbnNyZWdleCBFTVBUWT4KKzwhQVRUTElTVCBjb250YWluc3JlZ2V4CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGFncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGV0b2tlbml6ZXIgRU1QVFk+Cis8IUFUVExJU1QgZmlsZXRva2VuaXplcgorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3RyaXBqYXZhY29tbWVudHMgRU1QVFk+Cis8IUFUVExJU1Qgc3RyaXBqYXZhY29tbWVudHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpbmVjb250YWluc3JlZ2V4cCAocmVnZXhwKSo+Cis8IUFUVExJU1QgbGluZWNvbnRhaW5zcmVnZXhwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZWdleHAgRU1QVFk+Cis8IUFUVExJU1QgcmVnZXhwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnNldCAoZmlsdGVyc2V0IHwgZmlsdGVyIHwgZmlsdGVyc2ZpbGUpKj4KKzwhQVRUTElTVCBmaWx0ZXJzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJlZ2ludG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmR0b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcnNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVyIEVNUFRZPgorPCFBVFRMSVNUIGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGZpbHRlcnNmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGliZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgbGliZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB1cmxiYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWltcGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRldXJsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXNmaWxlc2VsZWN0ZWQgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIGlzZmlsZXNlbGVjdGVkCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXJnZW1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBtZXJnZW1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaWRlbnRpdHltYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgaWRlbnRpdHltYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNjcmlwdGZpbHRlciAoI1BDREFUQSk+Cis8IUFUVExJU1Qgc2NyaXB0ZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVucGFja2FnZW1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCB1bnBhY2thZ2VtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhhbmRsZWRpcnNlcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbmNhdGZpbHRlciBFTVBUWT4KKzwhQVRUTElTVCBjb25jYXRmaWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZXBlbmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHRlbnNpb24gRU1QVFk+Cis8IUFUVExJU1QgZXh0ZW5zaW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9udmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwZWNpZmljYXRpb252ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZW5zaW9ubmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9udmVuZG9yaWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGVjaWZpY2F0aW9udmVuZG9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb251cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9udmVuZG9yIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ2xvYm1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBnbG9ibWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBoYW5kbGVkaXJzZXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJjaGFpbiAoaGVhZGZpbHRlciB8IGNsYXNzY29uc3RhbnRzIHwgbGluZWNvbnRhaW5zIHwgZmlsdGVycmVhZGVyIHwgcmVwbGFjZXJlZ2V4IHwgcmVwbGFjZXRva2VucyB8IGVzY2FwZXVuaWNvZGUgfCBpZ25vcmVibGFuayB8IHRhaWxmaWx0ZXIgfCB0YWJzdG9zcGFjZXMgfCBwcmVmaXhsaW5lcyB8IHRyaW0gfCBleHBhbmRwcm9wZXJ0aWVzIHwgc3RyaXBsaW5lYnJlYWtzIHwgcmVwbGFjZXN0cmluZyB8IHN0cmlwbGluZWNvbW1lbnRzIHwgdG9rZW5maWx0ZXIgfCBzdHJpcGphdmFjb21tZW50cyB8IGNvbnRhaW5zcmVnZXggfCBkZWxldGVjaGFyYWN0ZXJzIHwgbGluZWNvbnRhaW5zcmVnZXhwKSo+Cis8IUFUVExJU1QgZmlsdGVyY2hhaW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21wb3NpdGVtYXBwZXIgKG1hcHBlcikqPgorPCFBVFRMSVNUIGNvbXBvc2l0ZW1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3NmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCByb290ZmlsZXNldCB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgcm9vdCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjbGFzc2ZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByb290Y2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJvb3RmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCByb290ZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcm9vdCBFTVBUWT4KKzwhQVRUTElTVCByb290CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZWdleHBtYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgcmVnZXhwbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBoYW5kbGVkaXJzZXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB4bWxjYXRhbG9nIChlbnRpdHkgfCBjbGFzc3BhdGggfCBjYXRhbG9ncGF0aCB8IGR0ZCB8IHhtbGNhdGFsb2cpKj4KKzwhQVRUTElTVCB4bWxjYXRhbG9nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjYXRhbG9ncGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlbnRpdHkgRU1QVFk+Cis8IUFUVExJU1QgZW50aXR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdWJsaWNpZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNhdGFsb2dwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBjYXRhbG9ncGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGR0ZCBFTVBUWT4KKzwhQVRUTElTVCBkdGQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1YmxpY2lkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmxhdHRlbm1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBmbGF0dGVubWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZXNjcmlwdGlvbiAoI1BDREFUQSk+Cis8IUFUVExJU1QgZGVzY3JpcHRpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjaGFpbmVkbWFwcGVyIChtYXBwZXIpKj4KKzwhQVRUTElTVCBjaGFpbmVkbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYWNrYWdlbWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIHBhY2thZ2VtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhhbmRsZWRpcnNlcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHppcGZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHppcGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3Vic3RpdHV0aW9uIEVNUFRZPgorPCFBVFRMSVNUIHN1YnN0aXR1dGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4cHJlc3Npb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHRlbnNpb25TZXQgKGZpbGVzZXQgfCBsaWJmaWxlc2V0IHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgZXh0ZW5zaW9uU2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVkaXJlY3RvciAoZXJyb3JmaWx0ZXJjaGFpbiB8IG91dHB1dGZpbHRlcmNoYWluIHwgZXJyb3JtYXBwZXIgfCBpbnB1dGZpbHRlcmNoYWluIHwgb3V0cHV0bWFwcGVyIHwgaW5wdXRtYXBwZXIpKj4KKzwhQVRUTElTVCByZWRpcmVjdG9yCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGlucHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY3JlYXRlZW1wdHlmaWxlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhbHdheXNsb2cgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlcnJvcmZpbHRlcmNoYWluIChoZWFkZmlsdGVyIHwgY2xhc3Njb25zdGFudHMgfCBsaW5lY29udGFpbnMgfCBmaWx0ZXJyZWFkZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNldG9rZW5zIHwgZXNjYXBldW5pY29kZSB8IGlnbm9yZWJsYW5rIHwgdGFpbGZpbHRlciB8IHRhYnN0b3NwYWNlcyB8IHByZWZpeGxpbmVzIHwgdHJpbSB8IGV4cGFuZHByb3BlcnRpZXMgfCBzdHJpcGxpbmVicmVha3MgfCByZXBsYWNlc3RyaW5nIHwgc3RyaXBsaW5lY29tbWVudHMgfCB0b2tlbmZpbHRlciB8IHN0cmlwamF2YWNvbW1lbnRzIHwgY29udGFpbnNyZWdleCB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBsaW5lY29udGFpbnNyZWdleHApKj4KKzwhQVRUTElTVCBlcnJvcmZpbHRlcmNoYWluCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3V0cHV0ZmlsdGVyY2hhaW4gKGhlYWRmaWx0ZXIgfCBjbGFzc2NvbnN0YW50cyB8IGxpbmVjb250YWlucyB8IGZpbHRlcnJlYWRlciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2V0b2tlbnMgfCBlc2NhcGV1bmljb2RlIHwgaWdub3JlYmxhbmsgfCB0YWlsZmlsdGVyIHwgdGFic3Rvc3BhY2VzIHwgcHJlZml4bGluZXMgfCB0cmltIHwgZXhwYW5kcHJvcGVydGllcyB8IHN0cmlwbGluZWJyZWFrcyB8IHJlcGxhY2VzdHJpbmcgfCBzdHJpcGxpbmVjb21tZW50cyB8IHRva2VuZmlsdGVyIHwgc3RyaXBqYXZhY29tbWVudHMgfCBjb250YWluc3JlZ2V4IHwgZGVsZXRlY2hhcmFjdGVycyB8IGxpbmVjb250YWluc3JlZ2V4cCkqPgorPCFBVFRMSVNUIG91dHB1dGZpbHRlcmNoYWluCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXJyb3JtYXBwZXIgKGNsYXNzcGF0aCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIGVycm9ybWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChpZGVudGl0eSB8IGZsYXR0ZW4gfCBnbG9iIHwgbWVyZ2UgfCByZWdleHAgfCBwYWNrYWdlIHwgdW5wYWNrYWdlKSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbnB1dGZpbHRlcmNoYWluIChoZWFkZmlsdGVyIHwgY2xhc3Njb25zdGFudHMgfCBsaW5lY29udGFpbnMgfCBmaWx0ZXJyZWFkZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNldG9rZW5zIHwgZXNjYXBldW5pY29kZSB8IGlnbm9yZWJsYW5rIHwgdGFpbGZpbHRlciB8IHRhYnN0b3NwYWNlcyB8IHByZWZpeGxpbmVzIHwgdHJpbSB8IGV4cGFuZHByb3BlcnRpZXMgfCBzdHJpcGxpbmVicmVha3MgfCByZXBsYWNlc3RyaW5nIHwgc3RyaXBsaW5lY29tbWVudHMgfCB0b2tlbmZpbHRlciB8IHN0cmlwamF2YWNvbW1lbnRzIHwgY29udGFpbnNyZWdleCB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBsaW5lY29udGFpbnNyZWdleHApKj4KKzwhQVRUTElTVCBpbnB1dGZpbHRlcmNoYWluCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3V0cHV0bWFwcGVyIChjbGFzc3BhdGggfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBvdXRwdXRtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGlkZW50aXR5IHwgZmxhdHRlbiB8IGdsb2IgfCBtZXJnZSB8IHJlZ2V4cCB8IHBhY2thZ2UgfCB1bnBhY2thZ2UpICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlucHV0bWFwcGVyIChjbGFzc3BhdGggfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBpbnB1dG1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoaWRlbnRpdHkgfCBmbGF0dGVuIHwgZ2xvYiB8IG1lcmdlIHwgcmVnZXhwIHwgcGFja2FnZSB8IHVucGFja2FnZSkgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJvcGVydHlmaWxlIChlbnRyeSkqPgorPCFBVFRMSVNUIHByb3BlcnR5ZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZW50cnkgRU1QVFk+Cis8IUFUVExJU1QgZW50cnkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9wZXJhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZXkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChpbnQgfCBkYXRlIHwgc3RyaW5nKSAjSU1QTElFRAorICAgICAgICAgIHVuaXQgKG1pbGxpc2Vjb25kIHwgc2Vjb25kIHwgbWludXRlIHwgaG91ciB8IGRheSB8IHdlZWsgfCBtb250aCB8IHllYXIpICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2RpciBFTVBUWT4KKzwhQVRUTElTVCBjY21rZGlyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jaGVja291dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbXBvcnR0eXBlbGliIEVNUFRZPgorPCFBVFRMSVNUIGltcG9ydHR5cGVsaWIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVuc2FmZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXN5c2FycmF5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWVzcGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzY2hlY2tpbiBFTVBUWT4KKzwhQVRUTElTVCB2c3NjaGVja2luCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcWwgKCNQQ0RBVEEgfCBmaWxlc2V0IHwgY2xhc3NwYXRoIHwgdHJhbnNhY3Rpb24pKj4KKzwhQVRUTElTVCBzcWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9uZXJyb3IgKGNvbnRpbnVlIHwgc3RvcCB8IGFib3J0KSAjSU1QTElFRAorICAgICAgICAgIHVzZXJpZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXV0b2NvbW1pdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZGJtcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByaW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRyaXZlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3doZWFkZXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlbGltaXRlcnR5cGUgKG5vcm1hbCB8IHJvdykgI0lNUExJRUQKKyAgICAgICAgICBlc2NhcGVwcm9jZXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FjaGluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZm9ybWF0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlbGltaXRlciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRyYW5zYWN0aW9uICgjUENEQVRBKT4KKzwhQVRUTElTVCB0cmFuc2FjdGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3ZzcGFzcyBFTVBUWT4KKzwhQVRUTElTVCBjdnNwYXNzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdnNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjc2MgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgcmVzb3VyY2UgfCBkZWZpbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZWZlcmVuY2UgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY3NjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbjMyaWNvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmluaXRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWluY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1dGY4b3V0cHV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXJlc3BvbnNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWRlZmF1bHRyZWZlcmVuY2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdhcm5sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbjMycmVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jcmVtZW50YWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9jb25maWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbG1vZHVsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5zYWZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVhbGlnbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldHR5cGUgKGV4ZSB8IGxpYnJhcnkgfCBtb2R1bGUgfCB3aW5leGUpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVzb3VyY2UgRU1QVFk+Cis8IUFUVExJU1QgcmVzb3VyY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHVibGljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVtYmVkICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlZmluZSBFTVBUWT4KKzwhQVRUTElTVCBkZWZpbmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlZmVyZW5jZSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgcmVmZXJlbmNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHNyYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGlybmFtZSBFTVBUWT4KKzwhQVRUTElTVCBkaXJuYW1lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXJlZ2V4cCAoZmlsZXNldCB8IHN1YnN0aXR1dGlvbiB8IHJlZ2V4cCkqPgorPCFBVFRMSVNUIHJlcGxhY2VyZWdleHAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZsYWdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXRjaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBnZXQgRU1QVFk+Cis8IUFUVExJU1QgZ2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZWVycm9ycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXRpbWVzdGFtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamp0cmVlIEVNUFRZPgorPCFBVFRMSVNUIGpqdHJlZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbm9kZWRlZmF1bHR2b2lkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJ1aWxkbm9kZWZpbGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGRpcmVjdG9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdGF0aWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgamF2YWNjaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RlZmFjdG9yeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtdWx0aSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aXNpdG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGV1c2VzcGFyc2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpc2l0b3JleGNlcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2Rlc2NvcGVob29rICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RlcGFja2FnZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNsZWVwIEVNUFRZPgorPCFBVFRMSVNUIHNsZWVwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBob3VycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWlsbGlzZWNvbmRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWludXRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2Vjb25kcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphcmxpYi1kaXNwbGF5IChmaWxlc2V0KSo+Cis8IUFUVExJU1QgamFybGliLWRpc3BsYXkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGVuZ3RoIEVNUFRZPgorPCFBVFRMSVNUIGxlbmd0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGVuZ3RoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRyaW0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbW9kZSAoZWFjaCB8IGFsbCkgI0lNUExJRUQKKyAgICAgICAgICBzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aGVuIChlcXVhbCB8IGdyZWF0ZXIgfCBsZXNzKSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlcGVuZHNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgdGFyZ2V0ZmlsZXNldCB8IHNyY2ZpbGVzZXQgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBzcmNmaWxlbGlzdCB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCB8IHRhcmdldGZpbGVsaXN0KSo+Cis8IUFUVExJU1QgZGVwZW5kc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldGZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHRhcmdldGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNyY2ZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHNyY2ZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNyY2ZpbGVsaXN0IChmaWxlKSo+Cis8IUFUVExJU1Qgc3JjZmlsZWxpc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldGZpbGVsaXN0IChmaWxlKSo+Cis8IUFUVExJU1QgdGFyZ2V0ZmlsZWxpc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHppcCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IHppcGdyb3VwZmlsZXNldCB8IHppcGZpbGVzZXQgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB6aXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHdoZW5lbXB0eSAoZmFpbCB8IHNraXAgfCBjcmVhdGUpICNJTVBMSUVECisgICAgICAgICAga2VlcGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkdXBsaWNhdGUgKGFkZCB8IHByZXNlcnZlIHwgZmFpbCkgI0lNUExJRUQKKyAgICAgICAgICByb3VuZHVwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVwZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgemlwZ3JvdXBmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB6aXBncm91cGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhdGNoIEVNUFRZPgorPCFBVFRMSVNUIHBhdGNoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdHJpcCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3JpZ2luYWxmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0Y2hmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmV2ZXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhY2t1cHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaWdub3Jld2hpdGVzcGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpzcGMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IGNvbXBpbGVyY2xhc3NwYXRoIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IHdlYmFwcCB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QganNwYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbWFwcGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGllcGx1Z2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVyaWJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3ZWJ4bWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaXJvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3ZWJpbmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21waWxlcmNsYXNzcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgY29tcGlsZXJjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJhcHAgRU1QVFk+Cis8IUFUVExJU1Qgd2ViYXBwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3R5bGUgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IGZhY3RvcnkgfCBtb2RpZmllZCB8IHBhcmFtIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCB4bWxjYXRhbG9nIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBvdXRwdXRwcm9wZXJ0eSB8IG1hcHBlciB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHN0eWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2Nlc3NvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNjYW5pbmNsdWRlZGRpcmVjdG9yaWVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4dGVuc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxvYWRzdHlsZXNoZWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmFjdG9yeSAoYXR0cmlidXRlKSo+Cis8IUFUVExJU1QgZmFjdG9yeQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGF0dHJpYnV0ZSBFTVBUWT4KKzwhQVRUTElTVCBhdHRyaWJ1dGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIG91dHB1dHByb3BlcnR5IEVNUFRZPgorPCFBVFRMSVNUIG91dHB1dHByb3BlcnR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBuaWNlIEVNUFRZPgorPCFBVFRMSVNUIG5pY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdwcmlvcml0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN1cnJlbnRwcmlvcml0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRlc3QgKGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5IHwgcmVkaXJlY3RvciB8IGJvb3RjbGFzc3BhdGggfCBlbnYgfCBzeXNwcm9wZXJ0eXNldCB8IHBlcm1pc3Npb25zIHwganZtYXJnIHwgYXJnIHwgYXNzZXJ0aW9ucyB8IHRlc3RsZXQpKj4KKzwhQVRUTElTVCB0ZXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBqYXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VzaG93dHJhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2hvd3N1Y2Nlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAganZtdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2hvd2Jhbm5lciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3d0cmFjZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzeXNwcm9wZXJ0eSBFTVBUWT4KKzwhQVRUTElTVCBzeXNwcm9wZXJ0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAga2V5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJvb3RjbGFzc3BhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGJvb3RjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlbnYgRU1QVFk+Cis8IUFUVExJU1QgZW52CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBrZXkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3lzcHJvcGVydHlzZXQgKHByb3BlcnR5cmVmIHwgcHJvcGVydHlzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBzeXNwcm9wZXJ0eXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGR5bmFtaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmVnYXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBlcm1pc3Npb25zIChncmFudCB8IHJldm9rZSkqPgorPCFBVFRMSVNUIHBlcm1pc3Npb25zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBncmFudCBFTVBUWT4KKzwhQVRUTElTVCBncmFudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9ucyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJldm9rZSBFTVBUWT4KKzwhQVRUTElTVCByZXZva2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFjdGlvbnMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqdm1hcmcgRU1QVFk+Cis8IUFUVExJU1QganZtYXJnCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhcmcgRU1QVFk+Cis8IUFUVExJU1QgYXJnCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0ZXN0bGV0ICgjUENEQVRBKT4KKzwhQVRUTElTVCB0ZXN0bGV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0c3RhbXAgKGZvcm1hdCkqPgorPCFBVFRMSVNUIHRzdGFtcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZvcm1hdCBFTVBUWT4KKzwhQVRUTElTVCBmb3JtYXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2FsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWV6b25lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5pdCAobWlsbGlzZWNvbmQgfCBzZWNvbmQgfCBtaW51dGUgfCBob3VyIHwgZGF5IHwgd2VlayB8IG1vbnRoIHwgeWVhcikgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvZmZzZXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1bndhciAoZmlsZXNldCB8IHBhdHRlcm5zZXQpKj4KKzwhQVRUTElTVCB1bndhcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NoaXN0b3J5IEVNUFRZPgorPCFBVFRMSVNUIHZzc2hpc3RvcnkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0eWxlIChicmllZiB8IGNvZGVkaWZmIHwgbm9maWxlIHwgZGVmYXVsdCkgI0lNUExJRUQKKyAgICAgICAgICBudW1kYXlzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbWxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb21kYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9sYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGVmb3JtYXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN2c2NoYW5nZWxvZyAoZmlsZXNldCB8IHVzZXIgfCBjb21tYW5kbGluZSkqPgorPCFBVFRMSVNUIGN2c2NoYW5nZWxvZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY3ZzcnNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0YXJ0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3Zzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYWxseXF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcnNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9leGVjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYXlzaW5wYXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhZyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVzZXIgRU1QVFk+Cis8IUFUVExJU1QgdXNlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdXNlcmlkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlzcGxheW5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21tYW5kbGluZSAobWFya2VyIHwgYXJndW1lbnQpKj4KKzwhQVRUTElTVCBjb21tYW5kbGluZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1hcmtlciBFTVBUWT4KKzwhQVRUTElTVCBtYXJrZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFyZ3VtZW50IEVNUFRZPgorPCFBVFRMSVNUIGFyZ3VtZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21jaGVja2luIChmaWxlc2V0KSo+Cis8IUFUVExJU1QgY2NtY2hlY2tpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFzayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJ6aXAyIEVNUFRZPgorPCFBVFRMSVNUIGJ6aXAyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3luYyAoZmlsZXNldCkqPgorPCFBVFRMSVNUIHN5bmMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZW1wdHlkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NhZGQgRU1QVFk+Cis8IUFUVExJU1QgdnNzYWRkCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhZG9jICh0YWdsZXQgfCBkb2NsZXQgfCBwYWNrYWdlIHwgYXJnIHwgbGluayB8IGRvY3RpdGxlIHwgYm90dG9tIHwgZ3JvdXAgfCBwYWNrYWdlc2V0IHwgZmlsZXNldCB8IGNsYXNzcGF0aCB8IHNvdXJjZXBhdGggfCBmb290ZXIgfCBzb3VyY2UgfCBib290Y2xhc3NwYXRoIHwgaGVhZGVyIHwgZXhjbHVkZXBhY2thZ2UgfCB0YWcpKj4KKzwhQVRUTElTVCBqYXZhZG9jCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBib3R0b20gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGVhZGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGluayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vaW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWNjZXNzIChwcm90ZWN0ZWQgfCBwdWJsaWMgfCBwYWNrYWdlIHwgcHJpdmF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3F1YWxpZmllciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1YmxpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRob3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9vdGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlZXh0ZXJuYWxmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHByb3RlY3RlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBicmVha2l0ZXJhdG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vbmF2YmFyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyb3VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlua29mZmxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRpdGlvbmFscGFyYW0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rc291cmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvY2FsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZW5vc291cmNlcGFja2FnZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByaXZhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZXByZWNhdGVkbGlzdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZXNoZWV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2VuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXBhY2thZ2VuYW1lcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlbmFtZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW5kb3d0aXRsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdHJlZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGxpdGluZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VsaXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2N0aXRsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcmlhbHdhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2xkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGVscGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZWZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZGlycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vaGVscCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2RlcHJlY2F0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3ZlcnZpZXcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YWdsZXQgKHBhdGgpKj4KKzwhQVRUTElTVCB0YWdsZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRvY2xldCAocGF0aCB8IHBhcmFtKSo+Cis8IUFUVExJU1QgZG9jbGV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYWNrYWdlIEVNUFRZPgorPCFBVFRMSVNUIHBhY2thZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaW5rIEVNUFRZPgorPCFBVFRMSVNUIGxpbmsKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhyZWYgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvZmZsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VsaXN0bG9jIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWxpbmsgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZG9jdGl0bGUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGRvY3RpdGxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBib3R0b20gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGJvdHRvbQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ3JvdXAgKHBhY2thZ2UgfCB0aXRsZSkqPgorPCFBVFRMSVNUIGdyb3VwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpdGxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGl0bGUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHRpdGxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYWNrYWdlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBwYWNrYWdlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb3VyY2VwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBzb3VyY2VwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZm9vdGVyICgjUENEQVRBKT4KKzwhQVRUTElTVCBmb290ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvdXJjZSBFTVBUWT4KKzwhQVRUTElTVCBzb3VyY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBoZWFkZXIgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGhlYWRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhjbHVkZXBhY2thZ2UgRU1QVFk+Cis8IUFUVExJU1QgZXhjbHVkZXBhY2thZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YWcgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHRhZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNjb3BlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0cmFuc2xhdGUgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0cmFuc2xhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJ1bmRsZWNvdW50cnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidW5kbGVsYW5ndWFnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNyY2VuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVuZGxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVuZGxlZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1bmRsZXZhcmlhbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZHRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3RhcnR0b2tlbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNpZ25qYXIgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBzaWduamFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdG9yZXBhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYXp5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGphciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2V5cGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFsaWFzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VjdGlvbnNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtleXN0b3JlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaWdmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnRlcm5hbHNmICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN0b3JldHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNpZ25lZGphciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbG9jayBFTVBUWT4KKzwhQVRUTElTVCBjY2xvY2sKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9ianNlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG51c2VycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9ic29sZXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNob3duIChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBjaG93bgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvd25lciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIHNyY2ZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldGZpbGUgRU1QVFk+Cis8IUFUVExJU1QgdGFyZ2V0ZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamFybGliLWF2YWlsYWJsZSAoZXh0ZW5zaW9uc2V0IHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgamFybGliLWF2YWlsYWJsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4dGVuc2lvbnNldCAoZmlsZXNldCB8IGxpYmZpbGVzZXQgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBleHRlbnNpb25zZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBXc2RsVG9Eb3RuZXQgRU1QVFk+Cis8IUFUVExJU1QgV3NkbFRvRG90bmV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZXNwYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYnVpbGRudW1iZXIgRU1QVFk+Cis8IUFUVExJU1QgYnVpbGRudW1iZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganBjb3ZtZXJnZSAoZmlsZXNldCkqPgorPCFBVFRMSVNUIGpwY292bWVyZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdnN2ZXJzaW9uIChjb21tYW5kbGluZSkqPgorPCFBVFRMSVNUIGN2c3ZlcnNpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGN2c3JzaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhc3NmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdnNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVhbGx5cXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVydmVyc2lvbnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9ubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xpZW50dmVyc2lvbnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9leGVjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFnIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZWpiamFyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCB3ZWJsb2dpY3RvcGxpbmsgfCBwcmVzZW50IHwgbm9uZSB8IGpib3NzIHwgbm90IHwgYm9ybGFuZCB8IHdlYmxvZ2ljIHwgdHlwZSB8IG1vZGlmaWVkIHwgaXBsYW5ldCB8IG9yIHwgam9uYXMgfCBjb250YWlucyB8IGRlcGVuZCB8IHN1cHBvcnQgfCBjbGFzc3BhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCB3ZWJzcGhlcmUgfCBjb250YWluc3JlZ2V4cCB8IGR0ZCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBlamJqYXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0b3JkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBiYXNlbmFtZXRlcm1pbmF0b3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNtcHZlcnNpb24gKDEuMCB8IDIuMCkgI0lNUExJRUQKKyAgICAgICAgICBkZXBlbmRlbmN5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWphcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmbGF0ZGVzdGRpciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1pbmcgKGVqYi1uYW1lIHwgZGlyZWN0b3J5IHwgZGVzY3JpcHRvciB8IGJhc2VqYXJuYW1lKSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJsb2dpY3RvcGxpbmsgKGNsYXNzcGF0aCB8IHdsY2xhc3NwYXRoIHwgc3lzcHJvcGVydHkpKj4KKzwhQVRUTElTVCB3ZWJsb2dpY3RvcGxpbmsKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5ld2NtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlamJkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1hcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVidWlsZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9wbGlua2R0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdsZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdlYmxvZ2ljZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2xjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1kZWJ1Z2xldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyYXRlZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkY21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmNjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZWpiYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b3BsaW5rZGVzY3JpcHRvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3bGNsYXNzcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1Qgd2xjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYm9zcyAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgamJvc3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYm9ybGFuZCAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgYm9ybGFuZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyaWZ5YXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YTJpaW9wcGFyYW1zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2R0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmlmeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmF0ZWNsaWVudCAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJsb2dpYyAoY2xhc3NwYXRoIHwgd2xjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eSkqPgorPCFBVFRMSVNUIHdlYmxvZ2ljCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuZXdjbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWpiZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYnVpbGQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdsZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdlYmxvZ2ljZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2xjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1kZWJ1Z2xldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyYXRlZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkY21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmNjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZWpiYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXBsYW5ldCAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgaXBsYW5ldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlhc2hvbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqb25hcyAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1Qgam9uYXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGpvbmFzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YWMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3JiIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9nZW5pYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBybWljb3B0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphdmFjb3B0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdmFsaWRhdGlvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vY29tcGlsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlY3Byb3BhZyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdXBwb3J0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBzdXBwb3J0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJzcGhlcmUgKGNsYXNzcGF0aCB8IHdhc2NsYXNzcGF0aCkqPgorPCFBVFRMSVNUIHdlYnNwaGVyZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmV3Y21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmR0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJtaWNvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9pbmZvcm0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVidWlsZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYnNjaGVtYSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlamJkZXBsb3kgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlMzUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGVtcGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdmFsaWRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29kZWdlbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYnZlbmRvciAoU1FMOTIgfCBTUUw5OSB8IERCMlVEQldJTl9WNzEgfCBEQjJVREJPUzM5MF9WNiB8IERCMlVEQkFTNDAwX1Y0UjUgfCBPUkFDTEVfVjggfCBJTkZPUk1JWF9WOTIgfCBTWUJBU0VfVjExOTIgfCBNU1NRTFNFUlZFUl9WNyB8IE1ZU1FMX1YzMjMpICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2FzY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkY21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRibmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRyYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2FzY2xhc3NwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCB3YXNjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3YXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgbWFuaWZlc3QgfCB0eXBlIHwgbWV0YWluZiB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGxpYiB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGluZGV4amFycyB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCB6aXBncm91cGZpbGVzZXQgfCB6aXBmaWxlc2V0IHwgY2xhc3NlcyB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCB3ZWJpbmYgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHdhcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAga2VlcGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGR1cGxpY2F0ZSAoYWRkIHwgcHJlc2VydmUgfCBmYWlsKSAjSU1QTElFRAorICAgICAgICAgIHdoZW5lbXB0eSAoZmFpbCB8IHNraXAgfCBjcmVhdGUpICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJvdW5kdXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2VieG1sIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdhcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNldG1hbmlmZXN0IChza2lwIHwgbWVyZ2UgfCBtZXJnZXdpdGhvdXRtYWluKSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYW5pZmVzdCAoYXR0cmlidXRlIHwgc2VjdGlvbikqPgorPCFBVFRMSVNUIG1hbmlmZXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzZWN0aW9uIChhdHRyaWJ1dGUpKj4KKzwhQVRUTElTVCBzZWN0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWV0YWluZiAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgbWV0YWluZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaWIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGxpYgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbmRleGphcnMgKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGluZGV4amFycworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNsYXNzZXMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNsYXNzZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2ViaW5mIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB3ZWJpbmYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVuYW1lIEVNUFRZPgorPCFBVFRMSVNUIHJlbmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2VxdWVudGlhbCAoJXRhc2tzOykqPgorPCFBVFRMSVNUIHNlcXVlbnRpYWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzZXJ2ZXJkZXBsb3kgKHdlYmxvZ2ljIHwgZ2VuZXJpYyB8IGpvbmFzKSo+Cis8IUFUVExJU1Qgc2VydmVyZGVwbG95CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ2VuZXJpYyAoYXJnIHwgY2xhc3NwYXRoIHwganZtYXJnKSo+Cis8IUFUVExJU1QgZ2VuZXJpYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByb3BlcnR5IChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBwcm9wZXJ0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJwcm9wZXJ0eSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVudmlyb25tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdWJhbnQgKHJlZmVyZW5jZSB8IGZpbGVzZXQgfCBidWlsZHBhdGhlbGVtZW50IHwgZGlyc2V0IHwgYnVpbGRwYXRoIHwgcHJvcGVydHlzZXQgfCBmaWxlbGlzdCB8IHByb3BlcnR5KSo+Cis8IUFUVExJU1Qgc3ViYW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljYW50ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluaGVyaXRhbGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0cmVmcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhbnRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVpbGRwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidWlsZHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJ1aWxkcGF0aGVsZW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgYnVpbGRwYXRoZWxlbWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYnVpbGRwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBidWlsZHBhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtb3ZlIChmaWx0ZXJjaGFpbiB8IGZpbGVzZXQgfCBmaWx0ZXJzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBtb3ZlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGF0dGVuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZW1wdHlkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVtdWx0aXBsZW1hcHBpbmdzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmVsYXN0bW9kaWZpZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlsZGFzbSBFTVBUWT4KKzwhQVRUTElTVCBpbGRhc20KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFzc2VtYmxlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyAoYXNjaWkgfCB1dGY4IHwgdW5pY29kZSkgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvZ3Jlc3NiYXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbGluZW51bWJlcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmF3ZXhjZXB0aW9uaGFuZGxpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2hvd3NvdXJjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtZXRhZGF0YSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBieXRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1b3RlYWxsbmFtZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBoZWFkZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlzaWJpbGl0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZWZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGl0ZW0gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb3B5ZGlyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjb3B5ZGlyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGF0dGVuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY2NoZWNraW4gRU1QVFk+Cis8IUFUVExJU1QgY2NjaGVja2luCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZXRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm93YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZGVudGljYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29weSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2N1bmxvY2sgRU1QVFk+Cis8IUFUVExJU1QgY2N1bmxvY2sKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9ianNlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3bGpzcGMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHdsanNwYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpeGNybGYgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGZpeGNybGYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhYiAoYWRkIHwgYXNpcyB8IHJlbW92ZSkgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3IgKGFkZCB8IGFzaXMgfCByZW1vdmUpICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlb2wgKGFzaXMgfCBjciB8IGxmIHwgY3JsZiB8IG1hYyB8IHVuaXggfCBkb3MpICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgamF2YWZpbGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVvZiAoYWRkIHwgYXNpcyB8IHJlbW92ZSkgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhYmxlbmd0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaXhsYXN0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29zZ2V0IEVNUFRZPgorPCFBVFRMSVNUIHNvc2dldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc29zaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvamVjdHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NhY2hlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc2NtZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0aGNvbnZlcnQgKHBhdGggfCBtYXAgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBwYXRoY29udmVydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoc2VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcnNlcCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNldG9uZW1wdHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXRvcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1hcCBFTVBUWT4KKzwhQVRUTElTVCBtYXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlY29yZCBFTVBUWT4KKzwhQVRUTElTVCByZWNvcmQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dsZXZlbCAoZXJyb3IgfCB3YXJuIHwgaW5mbyB8IHZlcmJvc2UgfCBkZWJ1ZykgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVtYWNzbW9kZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb24gKHN0YXJ0IHwgc3RvcCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleGVjIChhcmcgfCByZWRpcmVjdG9yIHwgZW52KSo+Cis8IUFUVExJU1QgZXhlYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtsYWJlbCBFTVBUWT4KKzwhQVRUTElTVCBjY21rbGFiZWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGVuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2b2IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganBjb3ZyZXBvcnQgKHJlZmVyZW5jZSB8IGNvdmVyYWdlcGF0aCB8IHNvdXJjZXBhdGgpKj4KKzwhQVRUTElTVCBqcGNvdnJlcG9ydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc25hcHNob3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGVyY2VudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChleGVjdXRpdmUgfCBzdW1tYXJ5IHwgZGV0YWlsZWQgfCB2ZXJ5ZGV0YWlsZWQpICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKGh0bWwgfCB0ZXh0IHwgeG1sKSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzb3VyY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb3ZlcmFnZXBhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGNvdmVyYWdlcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4ZWNvbiAobWFwcGVyIHwgc3JjZmlsZSB8IHRhcmdldGZpbGUgfCByZWRpcmVjdG9yIHwgZmlsZWxpc3QgfCBlbnYgfCBmaWxlc2V0IHwgZGlyc2V0IHwgYXJnKSo+Cis8IUFUVExJU1QgZXhlY29uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQKKyAgICAgICAgICBtYXhwYXJhbGxlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRzb3VyY2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWNoZWNrb3V0IChmaWxlc2V0KSo+Cis8IUFUVExJU1QgY2NtY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbWFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2sgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNjbWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhbnQgKHJlZmVyZW5jZSB8IHByb3BlcnR5c2V0IHwgcHJvcGVydHkgfCB0YXJnZXQpKj4KKzwhQVRUTElTVCBhbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdGFsbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0cmVmcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJnZXQgRU1QVFk+Cis8IUFUVExJU1QgdGFyZ2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgeG1sdmFsaWRhdGUgKGZpbGVzZXQgfCBjbGFzc3BhdGggfCBkdGQgfCB4bWxjYXRhbG9nIHwgYXR0cmlidXRlIHwgcHJvcGVydHkpKj4KKzwhQVRUTElTVCB4bWx2YWxpZGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxlbmllbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgeHNsdCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgZmFjdG9yeSB8IG1vZGlmaWVkIHwgcGFyYW0gfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHhtbGNhdGFsb2cgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IG91dHB1dHByb3BlcnR5IHwgbWFwcGVyIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgeHNsdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9jZXNzb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzY2FuaW5jbHVkZWRkaXJlY3RvcmllcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleHRlbnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsb2Fkc3R5bGVzaGVldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3R5bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlwbGFuZXQtZWpiYyAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgaXBsYW5ldC1lamJjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlamJkZXNjcmlwdG9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWFzZGVzY3JpcHRvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlhc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmF0ZWQgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NtY2hlY2tpbnRhc2sgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBjY21jaGVja2ludGFzaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFzayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGd6aXAgRU1QVFk+Cis8IUFUVExJU1QgZ3ppcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG5hdGl2ZTJhc2NpaSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgYXJnIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgbWFwcGVyIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgbmF0aXZlMmFzY2lpCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJldmVyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY3JtdHlwZSBFTVBUWT4KKzwhQVRUTElTVCBjY3JtdHlwZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJtYWxsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZWtpbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2b2IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZWFyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IG1hbmlmZXN0IHwgdHlwZSB8IG1ldGFpbmYgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBhcmNoaXZlcyB8IGluZGV4amFycyB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCB6aXBncm91cGZpbGVzZXQgfCB6aXBmaWxlc2V0IHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZWFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZHVwbGljYXRlIChhZGQgfCBwcmVzZXJ2ZSB8IGZhaWwpICNJTVBMSUVECisgICAgICAgICAgd2hlbmVtcHR5IChmYWlsIHwgc2tpcCB8IGNyZWF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcm91bmR1cCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgamFyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVhcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBweG1sIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc2V0bWFuaWZlc3QgKHNraXAgfCBtZXJnZSB8IG1lcmdld2l0aG91dG1haW4pICNJTVBMSUVECisgICAgICAgICAgemlwZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFyY2hpdmVzIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBhcmNoaXZlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbnB1dCAoI1BDREFUQSk+Cis8IUFUVExJU1QgaW5wdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHR2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbGlkYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcmVzZXRkZWYgKCV0YXNrczspKj4KKzwhQVRUTElTVCBwcmVzZXRkZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcm1pYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBleHRkaXJzIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGNvbXBpbGVyYXJnIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgcm1pYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyaWZ5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWlvcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpZGxvcHRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZGlycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZWJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBiYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVhbnRydW50aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVqYXZhcnVudGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWRsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlpb3BvcHRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN0dWJ2ZXJzaW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29tcGlsZXJhcmcgRU1QVFk+Cis8IUFUVExJU1QgY29tcGlsZXJhcmcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjaGVja3N1bSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNoZWNrc3VtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVleHQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b3RhbHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWFkYnVmZmVyc2l6ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmlmeXByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWxnb3JpdGhtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvdmlkZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZW92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYWlsIChmaWxlc2V0IHwgYmNjIHwgbWVzc2FnZSB8IHJlcGx5dG8gfCBjYyB8IGZyb20gfCB0bykqPgorPCFBVFRMSVNUIG1haWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2VmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyAoYXV0byB8IG1pbWUgfCB1dSB8IHBsYWluKSAjSU1QTElFRAorICAgICAgICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1YmplY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3NsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haWxwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZW1pbWV0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmNjbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGx5dG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWlsaG9zdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWZpbGVuYW1lcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYmNjIEVNUFRZPgorPCFBVFRMSVNUIGJjYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXNzYWdlICgjUENEQVRBKT4KKzwhQVRUTElTVCBtZXNzYWdlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBtaW1ldHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBseXRvIEVNUFRZPgorPCFBVFRMSVNUIHJlcGx5dG8KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2MgRU1QVFk+Cis8IUFUVExJU1QgY2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZnJvbSBFTVBUWT4KKzwhQVRUTElTVCBmcm9tCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRvIEVNUFRZPgorPCFBVFRMSVNUIHRvCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxvYWRmaWxlIChmaWx0ZXJjaGFpbikqPgorPCFBVFRMSVNUIGxvYWRmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NjaGVja291dCBFTVBUWT4KKzwhQVRUTElTVCB2c3NjaGVja291dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZXRsb2NhbGNvcHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGV0aW1lc3RhbXAgKGN1cnJlbnQgfCBtb2RpZmllZCB8IHVwZGF0ZWQpICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd3JpdGFibGVmaWxlcyAocmVwbGFjZSB8IHNraXAgfCBmYWlsKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvc2NoZWNraW4gRU1QVFk+Cis8IUFUVExJU1Qgc29zY2hlY2tpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc29zaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2plY3RwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jYWNoZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NjbWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1pbWVtYWlsIChmaWxlc2V0IHwgYmNjIHwgbWVzc2FnZSB8IHJlcGx5dG8gfCBjYyB8IGZyb20gfCB0bykqPgorPCFBVFRMSVNUIG1pbWVtYWlsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgKGF1dG8gfCBtaW1lIHwgdXUgfCBwbGFpbikgI0lNUExJRUQKKyAgICAgICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdWJqZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNzbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWlscG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2VtaW1ldHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJjY2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBseXRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbGhvc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVmaWxlbmFtZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGd1bnppcCBFTVBUWT4KKzwhQVRUTElTVCBndW56aXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29uY2F0ICgjUENEQVRBIHwgZmlsdGVyY2hhaW4gfCBmaWxlc2V0IHwgZmlsZWxpc3QgfCBwYXRoIHwgZm9vdGVyIHwgaGVhZGVyKSo+Cis8IUFUVExJU1QgY29uY2F0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJpbmFyeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlb2wgKGFzaXMgfCBjciB8IGxmIHwgY3JsZiB8IG1hYyB8IHVuaXggfCBkb3MpICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpeGxhc3RsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2FiIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY2FiCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjYWJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25zIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdG91Y2ggKGZpbGVzZXQgfCBmaWxlbGlzdCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIHRvdWNoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWtkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1pbGxpcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRldGltZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhcmFsbGVsICgldGFza3M7IHwgZGFlbW9ucykqPgorPCFBVFRMSVNUIHBhcmFsbGVsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwb2xsaW50ZXJ2YWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGhyZWFkc3BlcnByb2Nlc3NvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aHJlYWRjb3VudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmFueSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkYWVtb25zICgldGFza3M7KSo+Cis8IUFUVExJU1QgZGFlbW9ucworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYW50Y2FsbCAocmVmZXJlbmNlIHwgcHJvcGVydHlzZXQgfCB0YXJnZXQgfCBwYXJhbSkqPgorPCFBVFRMSVNUIGFudGNhbGwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdGFsbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0cmVmcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtibCBFTVBUWT4KKzwhQVRUTElTVCBjY21rYmwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5sYWJlbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmdWxsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWRlbnRpY2FsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWxpbmVyb290bmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY2NoZWNrb3V0IEVNUFRZPgorPCFBVFRMSVNUIGNjY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlc2VydmVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm90Y28gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGF0YSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBicmFuY2ggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHlwZWRlZiAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgdHlwZWRlZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkYXB0dG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvbmVycm9yIChmYWlsIHwgcmVwb3J0IHwgaWdub3JlKSAjSU1QTElFRAorICAgICAgICAgIGxvYWRlcnJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRhcHRlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcm1hdCAocHJvcGVydGllcyB8IHhtbCkgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJldmVyc2Vsb2FkZXIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgeG1scHJvcGVydHkgKHhtbGNhdGFsb2cpKj4KKzwhQVRUTElTVCB4bWxwcm9wZXJ0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlbWFudGljYXR0cmlidXRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwcm9vdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb2xsYXBzZWF0dHJpYnV0ZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmFsaWRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJvb3RkaXJlY3RvcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2VtYW50aWNhdHRyaWJ1dGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW1wb3J0IEVNUFRZPgorPCFBVFRMSVNUIGltcG9ydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25hbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb3B5IChmaWx0ZXJjaGFpbiB8IGZpbGVzZXQgfCBmaWx0ZXJzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBjb3B5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGF0dGVuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZW1wdHlkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVtdWx0aXBsZW1hcHBpbmdzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmVsYXN0bW9kaWZpZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpzaGFycGMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgcmVzb3VyY2UgfCBkZWZpbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZWZlcmVuY2UgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QganNoYXJwYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJlc3BvbnNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haW5jbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxtb2R1bGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luMzJpY29uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXRmOG91dHB1dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVmYXVsdHJlZmVyZW5jZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0dHlwZSAoZXhlIHwgbGlicmFyeSB8IG1vZHVsZSB8IHdpbmV4ZSkgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgd2luMzJyZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlY3VyZXNjb3BpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1cmVqYXZhICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2FybmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlZmlsZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzeW1saW5rIChmaWxlc2V0KSo+Cis8IUFUVExJU1Qgc3ltbGluaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGlua2ZpbGVuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhbnRzdHJ1Y3R1cmUgRU1QVFk+Cis8IUFUVExJU1QgYW50c3RydWN0dXJlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2NyaXB0ICgjUENEQVRBKT4KKzwhQVRUTElTVCBzY3JpcHQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWNyZWF0ZXRhc2sgRU1QVFk+Cis8IUFUVExJU1QgY2NtY3JlYXRldGFzaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3Vic3lzdGVtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFzayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBsYXRmb3JtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWxlYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBycG0gRU1QVFk+Cis8IUFUVExJU1QgcnBtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZW1vdmVzb3VyY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFuYnVpbGRkaXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVtb3Zlc3BlYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGVjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvcGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJwbWJ1aWxkY29tbWFuZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlbGV0ZSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGRlbGV0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVlbXB0eWRpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVsZXRlb25leGl0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNlIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHJlcGxhY2VmaWx0ZXIgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgcmVwbGFjZXRva2VuIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgcmVwbGFjZXZhbHVlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgcmVwbGFjZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eWZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VtbWFyeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZWZpbHRlcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2VmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgcmVwbGFjZWZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXRva2VuICgjUENEQVRBKT4KKzwhQVRUTElTVCByZXBsYWNldG9rZW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2V2YWx1ZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgcmVwbGFjZXZhbHVlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtbWV0cmljcyAoZmlsZXNldCB8IGp2bWFyZyB8IGNsYXNzcGF0aCB8IHBhdGggfCBzb3VyY2VwYXRoKSo+Cis8IUFUVExJU1QgbW1ldHJpY3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWV0YW1hdGFob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgKGNvbXBpbGF0aW9uLXVuaXRzIHwgZmlsZXMgfCBtZXRob2RzIHwgdHlwZXMgfCBwYWNrYWdlcykgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhdHRyaWIgKG1hcHBlciB8IHNyY2ZpbGUgfCB0YXJnZXRmaWxlIHwgcmVkaXJlY3RvciB8IGZpbGVsaXN0IHwgZW52IHwgZmlsZXNldCB8IGRpcnNldCB8IGFyZykqPgorPCFBVFRMSVNUIGF0dHJpYgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVhZG9ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGhpZGRlbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVtaXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzeXN0ZW0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmNoaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIgfCBib3RoKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdhaXRmb3IgKGlzZmFsc2UgfCBpc3JlZmVyZW5jZSB8IGVxdWFscyB8IGF2YWlsYWJsZSB8IG5vdCB8IGNvbnRhaW5zIHwgb3MgfCBvciB8IGFuZCB8IGZpbGVzbWF0Y2ggfCBjaGVja3N1bSB8IGlzdHJ1ZSB8IGlzc2V0IHwgc29ja2V0IHwgaHR0cCB8IHVwdG9kYXRlKSo+Cis8IUFUVExJU1Qgd2FpdGZvcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2hlY2tldmVyeXVuaXQgKG1pbGxpc2Vjb25kIHwgc2Vjb25kIHwgbWludXRlIHwgaG91ciB8IGRheSB8IHdlZWspICNJTVBMSUVECisgICAgICAgICAgY2hlY2tldmVyeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHdhaXR1bml0IChtaWxsaXNlY29uZCB8IHNlY29uZCB8IG1pbnV0ZSB8IGhvdXIgfCBkYXkgfCB3ZWVrKSAjSU1QTElFRAorICAgICAgICAgIG1heHdhaXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc2ZhbHNlIEVNUFRZPgorPCFBVFRMSVNUIGlzZmFsc2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZhbHVlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlzcmVmZXJlbmNlIEVNUFRZPgorPCFBVFRMSVNUIGlzcmVmZXJlbmNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlcXVhbHMgRU1QVFk+Cis8IUFUVExJU1QgZXF1YWxzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0cmltICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFyZzIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmcxIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhdmFpbGFibGUgKGNsYXNzcGF0aCB8IGZpbGVwYXRoKSo+Cis8IUFUVExJU1QgYXZhaWxhYmxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVzeXN0ZW1jbGFzc2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIpICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGVwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBmaWxlcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG9zIEVNUFRZPgorPCFBVFRMSVNUIG9zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhbWlseSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyY2ggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlc21hdGNoIEVNUFRZPgorPCFBVFRMSVNUIGZpbGVzbWF0Y2gKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZTEgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc3RydWUgRU1QVFk+Cis8IUFUVExJU1QgaXN0cnVlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc3NldCBFTVBUWT4KKzwhQVRUTElTVCBpc3NldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb2NrZXQgRU1QVFk+Cis8IUFUVExJU1Qgc29ja2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaHR0cCBFTVBUWT4KKzwhQVRUTElTVCBodHRwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnNiZWdpbmF0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdXB0b2RhdGUgKHNyY2ZpbGVzIHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgdXB0b2RhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmNmaWxlcyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgc3JjZmlsZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVudGFyIChmaWxlc2V0IHwgcGF0dGVybnNldCkqPgorPCFBVFRMSVNUIHVudGFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAobm9uZSB8IGd6aXAgfCBiemlwMikgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxvYWRwcm9wZXJ0aWVzIChmaWx0ZXJjaGFpbiB8IGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGxvYWRwcm9wZXJ0aWVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlY2hvcHJvcGVydGllcyAocHJvcGVydHlzZXQpKj4KKzwhQVRUTElTVCBlY2hvcHJvcGVydGllcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcm1hdCAoeG1sIHwgdGV4dCkgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqdW5pdCAoY2xhc3NwYXRoIHwgc3lzcHJvcGVydHkgfCBib290Y2xhc3NwYXRoIHwgc3lzcHJvcGVydHlzZXQgfCBlbnYgfCB0ZXN0IHwgcGVybWlzc2lvbnMgfCBqdm1hcmcgfCBmb3JtYXR0ZXIgfCBiYXRjaHRlc3QgfCBhc3NlcnRpb25zKSo+Cis8IUFUVExJU1QganVuaXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZvcmsgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaGFsdG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJpbnRzdW1tYXJ5ICh0cnVlIHwgeWVzIHwgZmFsc2UgfCBubyB8IG9uIHwgb2ZmIHwgd2l0aE91dEFuZEVycikgI0lNUExJRUQKKyAgICAgICAgICBoYWx0b25mYWlsdXJlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWx1cmVwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3dvdXRwdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0ZW1wZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWFudHJ1bnRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVydHJhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JrbW9kZSAob25jZSB8IHBlclRlc3QgfCBwZXJCYXRjaCkgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbG9hZGluZyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmb3JtYXR0ZXIgRU1QVFk+Cis8IUFUVExJU1QgZm9ybWF0dGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1c2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKHBsYWluIHwgeG1sIHwgYnJpZWYpICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRlbnNpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBiYXRjaHRlc3QgKGZpbGVzZXQgfCBmb3JtYXR0ZXIpKj4KKzwhQVRUTElTVCBiYXRjaHRlc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGFsdG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWx1cmVwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcnRyYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGhhbHRvbmZhaWx1cmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNoZ3JwIChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBjaGdycAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBidW56aXAyIEVNUFRZPgorPCFBVFRMSVNUIGJ1bnppcDIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2hpY2hyZXNvdXJjZSAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1Qgd2hpY2hyZXNvdXJjZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvcHlmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGNvcHlmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZW92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2NyZWF0ZSBFTVBUWT4KKzwhQVRUTElTVCB2c3NjcmVhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFjcm9kZWYgKHNlcXVlbnRpYWwgfCBlbGVtZW50IHwgYXR0cmlidXRlIHwgdGV4dCkqPgorPCFBVFRMSVNUIG1hY3JvZGVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVsZW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgZWxlbWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaW1wbGljaXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGV4dCBFTVBUWT4KKzwhQVRUTElTVCB0ZXh0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0cmltICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbmFsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVuamFyIChmaWxlc2V0IHwgcGF0dGVybnNldCkqPgorPCFBVFRMSVNUIHVuamFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZiYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCByZXNvdXJjZSB8IGRlZmluZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHJlZmVyZW5jZSB8IHNyYyB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB2YmMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmVyZW5jZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VyZXNwb25zZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVtb3ZlaW50Y2hlY2tzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbmNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbG1vZHVsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW4zMmljb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25zdHJpY3QgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXRmOG91dHB1dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVmYXVsdHJlZmVyZW5jZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0dHlwZSAoZXhlIHwgbGlicmFyeSB8IG1vZHVsZSB8IHdpbmV4ZSkgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJvb3RuYW1lc3BhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdpbjMycmVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uZXhwbGljaXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2FybmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uY29tcGFyZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcG9ydHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZlcmVuY2VmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdzZGx0b2RvdG5ldCBFTVBUWT4KKzwhQVRUTElTVCB3c2RsdG9kb3RuZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuYW1lc3BhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBta2RpciBFTVBUWT4KKzwhQVRUTElTVCBta2RpcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbmRpdGlvbiAoaXNmYWxzZSB8IGlzcmVmZXJlbmNlIHwgZXF1YWxzIHwgYXZhaWxhYmxlIHwgbm90IHwgY29udGFpbnMgfCBvcyB8IG9yIHwgYW5kIHwgZmlsZXNtYXRjaCB8IGNoZWNrc3VtIHwgaXN0cnVlIHwgaXNzZXQgfCBzb2NrZXQgfCBodHRwIHwgdXB0b2RhdGUpKj4KKzwhQVRUTElTVCBjb25kaXRpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbHNlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3ZzIChjb21tYW5kbGluZSkqPgorPCFBVFRMSVNUIGN2cworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY3ZzcnNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN2c3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWFsbHlxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9ubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2V4ZWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YWcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0ZW1wZmlsZSBFTVBUWT4KKzwhQVRUTElTVCB0ZW1wZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGp1bml0cmVwb3J0IChyZXBvcnQgfCBmaWxlc2V0KSo+Cis8IUFUVExJU1QganVuaXRyZXBvcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcG9ydCBFTVBUWT4KKzwhQVRUTElTVCByZXBvcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3R5bGVkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKGZyYW1lcyB8IG5vZnJhbWVzKSAjSU1QTElFRAorICAgICAgICAgIGV4dGVuc2lvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWthdHRyIEVNUFRZPgorPCFBVFRMSVNUIGNjbWthdHRyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGV2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhc2tkZWYgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIHRhc2tkZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGFwdHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb25lcnJvciAoZmFpbCB8IHJlcG9ydCB8IGlnbm9yZSkgI0lNUExJRUQKKyAgICAgICAgICBsb2FkZXJyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkYXB0ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKHByb3BlcnRpZXMgfCB4bWwpICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXZlcnNlbG9hZGVyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVjaG8gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGVjaG8KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsZXZlbCAoZXJyb3IgfCB3YXJuaW5nIHwgaW5mbyB8IHZlcmJvc2UgfCBkZWJ1ZykgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY3VwZGF0ZSBFTVBUWT4KKzwhQVRUTElTVCBjY3VwZGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmV0aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbmFtZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JhcGhpY2FsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3VycmVudHRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhIChjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eSB8IHJlZGlyZWN0b3IgfCBib290Y2xhc3NwYXRoIHwgc3lzcHJvcGVydHlzZXQgfCBlbnYgfCBwZXJtaXNzaW9ucyB8IGp2bWFyZyB8IGFyZyB8IGFzc2VydGlvbnMpKj4KKzwhQVRUTElTVCBqYXZhCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBqYXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVuYW1lZXh0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCByZW5hbWVleHQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9leHRlbnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZnJvbWV4dGVuc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NsYWJlbCBFTVBUWT4KKzwhQVRUTElTVCB2c3NsYWJlbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBiYXNlbmFtZSBFTVBUWT4KKzwhQVRUTElTVCBiYXNlbmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFkb2MyICh0YWdsZXQgfCBkb2NsZXQgfCBwYWNrYWdlIHwgYXJnIHwgbGluayB8IGRvY3RpdGxlIHwgYm90dG9tIHwgZ3JvdXAgfCBwYWNrYWdlc2V0IHwgZmlsZXNldCB8IGNsYXNzcGF0aCB8IHNvdXJjZXBhdGggfCBmb290ZXIgfCBzb3VyY2UgfCBib290Y2xhc3NwYXRoIHwgaGVhZGVyIHwgZXhjbHVkZXBhY2thZ2UgfCB0YWcpKj4KKzwhQVRUTElTVCBqYXZhZG9jMgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYm90dG9tIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhlYWRlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmsgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2luZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFjY2VzcyAocHJvdGVjdGVkIHwgcHVibGljIHwgcGFja2FnZSB8IHByaXZhdGUpICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9xdWFsaWZpZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdWJsaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXV0aG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvb3RlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZWV4dGVybmFsZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwcm90ZWN0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnJlYWtpdGVyYXRvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub25hdmJhciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmtvZmZsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbHBhcmFtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlua3NvdXJjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVub3NvdXJjZXBhY2thZ2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcml2YXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2hhcnNldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVwcmVjYXRlZGxpc3QgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgc3R5bGVzaGVldGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVwYWNrYWdlbmFtZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXRwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZW5hbWVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luZG93dGl0bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3RyZWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3BsaXRpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jdGl0bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJpYWx3YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9sZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhlbHBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dGRpcnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2hlbHAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9kZXByZWNhdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG92ZXJ2aWV3IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzY3AgRU1QVFk+Cis8IUFUVExJU1QgdnNzY3AKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHRhcmZpbGVzZXQgfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0YXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAobm9uZSB8IGd6aXAgfCBiemlwMikgI0lNUExJRUQKKyAgICAgICAgICBsb25nZmlsZSAod2FybiB8IGZhaWwgfCB0cnVuY2F0ZSB8IGdudSB8IG9taXQpICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0YXJmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZXNlcnZlbGVhZGluZ3NsYXNoZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdWlkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2lkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2V0cHJveHkgRU1QVFk+Cis8IUFUVExJU1Qgc2V0cHJveHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5vbnByb3h5aG9zdHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm94eWhvc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb2Nrc3Byb3h5aG9zdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3h5cG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvY2tzcHJveHlwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm94eXVzZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3h5cGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbGFzbSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZWZlcmVuY2UgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgaWxhc20KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG93bmVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0dHlwZSAoZXhlIHwgbGlicmFyeSkgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2VmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlzdGluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZXlmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29zY2hlY2tvdXQgRU1QVFk+Cis8IUFUVExJU1Qgc29zY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNvc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2plY3RwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jYWNoZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NjbWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFwcGx5IChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBhcHBseQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZW1pc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbGxlbCAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY3VuY2hlY2tvdXQgRU1QVFk+Cis8IUFUVExJU1QgY2N1bmNoZWNrb3V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29weSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamFybGliLXJlc29sdmUgKGFudCB8IGxvY2F0aW9uIHwgdXJsIHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgamFybGliLXJlc29sdmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNoZWNrZXh0ZW5zaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxvY2F0aW9uIEVNUFRZPgorPCFBVFRMSVNUIGxvY2F0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVybCBFTVBUWT4KKzwhQVRUTElTVCB1cmwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN2c3RhZ2RpZmYgKGNvbW1hbmRsaW5lKSo+Cis8IUFUVExJU1QgY3ZzdGFnZGlmZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY3ZzcnNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kdGFnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN2c3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWFsbHlxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdGFydHRhZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZXhlYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0YXJ0ZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhZyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpsaW5rIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBtZXJnZWZpbGVzIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGFkZGZpbGVzIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBqbGluaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb3V0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhZGRmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVyZ2VmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWVyZ2VmaWxlcyAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgbWVyZ2VmaWxlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFkZGZpbGVzIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBhZGRmaWxlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFjYyBFTVBUWT4KKzwhQVRUTElTVCBqYXZhY2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlYnVncGFyc2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGphdmFjY2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZWxhY2hlY2sgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemV0b2tlbm1hbmFnZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbW9udG9rZW5hY3Rpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnVpbGR0b2tlbm1hbmFnZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2FuaXR5Y2hlY2sgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnVpbGRwYXJzZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3RoZXJhbWJpZ3VpdHljaGVjayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvb2thaGVhZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnbG9va2FoZWFkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNob2ljZWFtYmlndWl0eWNoZWNrIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5pY29kZWlucHV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXJjaGFyc3RyZWFtICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlYnVndG9rZW5tYW5hZ2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBsaW5lY29sdW1uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRkaXJlY3RvcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYWNoZXRva2VucyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBqYXZhdW5pY29kZWVzY2FwZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdGF0aWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlY2FzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VydG9rZW5tYW5hZ2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycmVwb3J0aW5nICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNobW9kIChtYXBwZXIgfCBpbmNsdWRlIHwgc3JjZmlsZSB8IGV4Y2x1ZGUgfCB0YXJnZXRmaWxlIHwgcGF0dGVybnNldCB8IHJlZGlyZWN0b3IgfCBlbnYgfCBmaWxlbGlzdCB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBjaG1vZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFyYWxsZWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwZXJtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHZjcyAocHZjc3Byb2plY3QpKj4KKzwhQVRUTElTVCBwdmNzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGVvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvcmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29uZmlnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHZjc2JpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdvcmtzcGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB2Y3Nwcm9qZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZW5hbWVmb3JtYXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VyaWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBvc2l0b3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlcmV0dXJuY29kZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXZpc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmVzdGFydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvbW90aW9uZ3JvdXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHZjc3Byb2plY3QgRU1QVFk+Cis8IUFUVExJU1QgcHZjc3Byb2plY3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXJsaWItbWFuaWZlc3QgKG9wdGlvbnMgfCBhdHRyaWJ1dGUgfCBkZXBlbmRzIHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgamFybGliLW1hbmlmZXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBvcHRpb25zIChmaWxlc2V0IHwgbGliZmlsZXNldCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIG9wdGlvbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZXBlbmRzIChmaWxlc2V0IHwgbGliZmlsZXNldCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIGRlcGVuZHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgbWFuaWZlc3QgfCB0eXBlIHwgbWV0YWluZiB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGluZGV4amFycyB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCB6aXBncm91cGZpbGVzZXQgfCB6aXBmaWxlc2V0IHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgamFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB3aGVuZW1wdHkgKGZhaWwgfCBza2lwIHwgY3JlYXRlKSAjSU1QTElFRAorICAgICAgICAgIGtlZXBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZHVwbGljYXRlIChhZGQgfCBwcmVzZXJ2ZSB8IGZhaWwpICNJTVBMSUVECisgICAgICAgICAgcm91bmR1cCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgamFyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc29ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzZXRtYW5pZmVzdCAoc2tpcCB8IG1lcmdlIHwgbWVyZ2V3aXRob3V0bWFpbikgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2xidHlwZSBFTVBUWT4KKzwhQVRUTElTVCBjY21rbGJ0eXBlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBnbG9iYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzaGFyZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBicmFuY2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZvYiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcmRpbmFyeSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzY3JpcHRkZWYgKCNQQ0RBVEEgfCBjbGFzc3BhdGggfCBlbGVtZW50IHwgYXR0cmlidXRlKSo+Cis8IUFUVExJU1Qgc2NyaXB0ZGVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBsb2FkZXJyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmV2ZXJzZWxvYWRlciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZWZhdWx0ZXhjbHVkZXMgRU1QVFk+Cis8IUFUVExJU1QgZGVmYXVsdGV4Y2x1ZGVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZW1vdmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlY2hvICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1wYXJzZSAoZmlsZXNldCB8IGp2bWFyZyB8IGNsYXNzcGF0aCB8IHNvdXJjZXBhdGgpKj4KKzwhQVRUTElTVCBtcGFyc2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsZWFudXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXRhbWF0YWhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1Z3BhcnNlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnc2Nhbm5lciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBibGdlbmNsaWVudCAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgYmxnZW5jbGllbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlamJqYXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsaWVudGphciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpqZG9jIEVNUFRZPgorPCFBVFRMSVNUIGpqZG9jCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphdmFjY2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0ZXh0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9uZXRhYmxlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGdlbmtleSAoZG5hbWUpKj4KKzwhQVRUTElTVCBnZW5rZXkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0b3JlcGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNpZ2FsZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2V5cGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2V5c2l6ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFsaWFzIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2V5YWxnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsaWRpdHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZXlzdG9yZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdG9yZXR5cGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkbmFtZSAocGFyYW0pKj4KKzwhQVRUTElTVCBkbmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamF2YWggKGFyZyB8IGNsYXNzcGF0aCB8IGNsYXNzIHwgYm9vdGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGphdmFoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdHVicyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjbGFzcyBFTVBUWT4KKzwhQVRUTElTVCBjbGFzcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtlbGVtIEVNUFRZPgorPCFBVFRMSVNUIGNjbWtlbGVtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZXRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWFzdGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVsdHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2NoZWNrb3V0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGVja2luICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbXJlY29uZmlndXJlIEVNUFRZPgorPCFBVFRMSVNUIGNjbXJlY29uZmlndXJlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY21hY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtcHJvamVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjY21kaXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmYWlsICgjUENEQVRBIHwgY29uZGl0aW9uKSo+Cis8IUFUVExJU1QgZmFpbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3RhdHVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVuemlwIChmaWxlc2V0IHwgcGF0dGVybnNldCkqPgorPCFBVFRMSVNUIHVuemlwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IGV4dGRpcnMgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgc291cmNlcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgYm9vdGNsYXNzcGF0aCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBjb21waWxlcmFyZyB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGphdmFjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnbGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZW1vcnlpbml0aWFsc2l6ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlcHJlY2F0aW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVhbnRydW50aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVqYXZhcnVudGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGVtcGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3dhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJvY2VlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZvcmsgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVtb3J5bWF4aW11bXNpemUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpbWl6ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaXN0ZmlsZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXh0ZGlycyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpwY292ZXJhZ2UgKGFyZyB8IHNvY2tldCB8IGZpbGVzZXQgfCBqdm1hcmcgfCBjbGFzc3BhdGggfCB0cmlnZ2VycyB8IGZpbHRlcnMpKj4KKzwhQVRUTElTVCBqcGNvdmVyYWdlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhcHBsZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVjb3JkZnJvbXN0YXJ0IChjb3ZlcmFnZSB8IG5vbmUgfCBhbGwpICNJTVBMSUVECisgICAgICAgICAgdm0gKGphdmEyIHwgamRrMTE4IHwgamRrMTE3KSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdvcmtpbmdkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzbmFwc2hvdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlZWRuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YWV4ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGl0cHJvbXB0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3YXJubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaW5hbHNuYXBzaG90IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0cmFja25hdGl2ZXMgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHJpZ2dlcnMgKG1ldGhvZCkqPgorPCFBVFRMSVNUIHRyaWdnZXJzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXRob2QgRU1QVFk+Cis8IUFUVExJU1QgbWV0aG9kCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXZlbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnMgKGluY2x1ZGUgfCBleGNsdWRlKSo+Cis8IUFUVExJU1QgZmlsdGVycworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29zbGFiZWwgRU1QVFk+Cis8IUFUVExJU1Qgc29zbGFiZWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNvc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvamVjdHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jYWNoZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc2NtZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzZ2V0IEVNUFRZPgorPCFBVFRMSVNUIHZzc2dldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXRpbWVzdGFtcCAoY3VycmVudCB8IG1vZGlmaWVkIHwgdXBkYXRlZCkgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZWZpbGVzIChyZXBsYWNlIHwgc2tpcCB8IGZhaWwpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVsdHJlZSBFTVBUWT4KKzwhQVRUTElTVCBkZWx0cmVlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvY29uZmlnLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3M2FkZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvY29uZmlnLnhtbApAQCAtMCwwICsxLDYgQEAKKzxjb25maWcKKyAgICAgICAgaG9zdD0iJHtob3N0fSIKKyAgICAgICAgcG9ydD0iJHtwb3J0fSIKKyAgICAgICAgYmFzZXBhdGg9IiR7YmFzZXBhdGh9IgorICAgICAgICBwcm90b2NvbD0iaHR0cCIvPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItb3Blbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItb3Blbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRmYmFjNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1vcGVuLnhtbApAQCAtMCwwICsxLDUgQEAKKyZ3ZWxjb21lLW9wZW47Cis8Y2xpY2tMaW5rCisgICAgICAgIGRlc2NyaXB0aW9uPSJDbGljayBSZWdpc3RlciIKKyAgICAgICAgbGFiZWw9IlJlZ2lzdGVyIHdpdGggTWFpbFJlYWRlciIvPgorICAgICAgICAmcmVnaXN0ZXItcGFnZTsKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1wYWdlLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1wYWdlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDYwMWU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXBhZ2UueG1sCkBAIC0wLDAgKzEsMyBAQAorPHZlcmlmeVRpdGxlCisgICAgICAgIGRlc2NyaXB0aW9uPSJSZWdpc3RyYXRpb24gcGFnZSB0aXRsZSIKKyAgICAgICAgdGV4dD0iTWFpbFJlYWRlciAtIFJlZ2lzdGVyIi8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItdHJpbGxpYW4ueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXRyaWxsaWFuLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTYxZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXRyaWxsaWFuLnhtbApAQCAtMCwwICsxLDIxIEBACis8c2V0SW5wdXRGaWVsZAorICAgICAgICBkZXNjcmlwdGlvbj0idXNlcm5hbWUiCisgICAgICAgIG5hbWU9InVzZXJuYW1lIgorICAgICAgICB2YWx1ZT0idHJpbGxpYW4iLz4KKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJwYXNzd29yZCIKKyAgICAgICAgbmFtZT0icGFzc3dvcmQiCisgICAgICAgIHZhbHVlPSJhc3RyYSIvPgorPHNldElucHV0RmllbGQKKyAgICAgICAgZGVzY3JpcHRpb249InBhc3N3b3JkMiIKKyAgICAgICAgbmFtZT0icGFzc3dvcmQyIgorICAgICAgICB2YWx1ZT0iYXN0cmEiLz4KKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJmdWxsTmFtZSIKKyAgICAgICAgbmFtZT0iZnVsbE5hbWUiCisgICAgICAgIHZhbHVlPSJUcmljaWEgTWNNaWxsaWFuIi8+Cis8c2V0SW5wdXRGaWVsZAorICAgICAgICBkZXNjcmlwdGlvbj0iZnJvbUFkZHJlc3MiCisgICAgICAgIG5hbWU9ImZyb21BZGRyZXNzIgorICAgICAgICB2YWx1ZT0idHJpY2lhQG1hZ3JhdGhlYS5jb20iLz4KKyAgICAgICAgJnNhdmUtY2xpY2s7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3NhdmUtY2xpY2sueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3NhdmUtY2xpY2sueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwMmExZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvc2F2ZS1jbGljay54bWwKQEAgLTAsMCArMSwzIEBACis8Y2xpY2tCdXR0b24KKyAgICAgICAgZGVzY3JpcHRpb249IlNhdmUiCisgICAgICAgIG5hbWU9IlNhdmUiLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy90YXNrZGVmLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy90YXNrZGVmLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjRjMWRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3Rhc2tkZWYueG1sCkBAIC0wLDAgKzEsMjUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgPz4KKzxwcm9qZWN0IG5hbWU9InRhc2tkZWYiPgorICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgVGhpcyBwcm9qZWN0IHByb3ZpZGVzIGZvbGxvd2luZyBlbGVtZW50cyB0byB1c2UgaW4geW91ciB0ZXN0IHNjcmlwdHM6CisKKyAgICAgICAgKDApIGFsbCB3ZWJ0ZXN0J3Mgc3RlcHMgbG9hZGVkIGFuZCByZWFkeSB0byB1c2UsCisgICAgICAgICgxKSB0aGUgcGF0aCAid2VidGVzdC5wYXRoLmlkIiB0aGF0IGluY2x1ZGVzIGFsbCBvZiB3ZWJ0ZXN0J3MKKyAgICAgICAgbGlicmFyaWVzLAorICAgICAgICAoMikgdGhlIGNsYXNzIGxvYWRlciAid2VidGVzdC5sb2FkZXIiIHRoYXQgaXMgdGhlIG9yaWdpbmFsIGxvYWRlciBmb3IKKyAgICAgICAgd2VidGVzdC4KKworICAgICAgICBVc2FnZToKKyAgICAgICAgU2V0IHRoZSBwcm9wZXJ0eSB3ZWJ0ZXN0LmhvbWUgdG8gdGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0aGUgYnVpbGQuemlwCisgICAgICAgIGlzIGV4dHJhY3RlZCwKKyAgICAgICAgYW5kIGNhbGxzOgorICAgICAgICAmbHQ7aW1wb3J0IGZpbGU9IiR7d2VidGVzdC5ob21lfS9saWIvdGFza2RlZi54bWwiICZndDsKKyAgICA8L2Rlc2NyaXB0aW9uPgorCisgICAgPGltcG9ydCBmaWxlPSIke3dlYnRlc3QuaG9tZX0vbGliL2NsYXNzcGF0aC54bWwiLz4KKworICAgIDx0YXNrZGVmIHJlc291cmNlPSJ3ZWJ0ZXN0LnRhc2tkZWYiCisgICAgICAgICAgICAgbG9hZGVycmVmPSJ3ZWJ0ZXN0LmxvYWRlciIKKyAgICAgICAgICAgICBjbGFzc3BhdGhyZWY9IndlYnRlc3QucGF0aC5pZCIKKyAgICAgICAgICAgIC8+Cis8L3Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3dlbGNvbWUtb3Blbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvd2VsY29tZS1vcGVuLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDczNTMxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3dlbGNvbWUtb3Blbi54bWwKQEAgLTAsMCArMSw2IEBACis8aW52b2tlCisgICAgICAgIGRlc2NyaXB0aW9uPSJPcGVuIHdlbGNvbWUgYWN0aW9uIgorICAgICAgICB1cmw9IldlbGNvbWUuZG8iLz4KKzx2ZXJpZnlUaXRsZQorICAgICAgICBkZXNjcmlwdGlvbj0iV2VsY29tZSBwYWdlIHRpdGxlIgorICAgICAgICB0ZXh0PSJNYWlsUmVhZGVyIi8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNTFlYTgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgd2ViLWFwcCBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4zLy9FTiIgImh0dHA6Ly9qYXZhLnN1bi5jb20vZHRkL3dlYi1hcHBfMl8zLmR0ZCI+Cis8d2ViLWFwcD4KKworICAgIDxkaXNwbGF5LW5hbWU+U3RydXRzIDIgTWFpbHJlYWRlcjwvZGlzcGxheS1uYW1lPgorCisgICAgPGZpbHRlcj4KKyAgICAgICAgPGZpbHRlci1uYW1lPlN0cnV0czI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8ZmlsdGVyLWNsYXNzPgorICAgICAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuRmlsdGVyRGlzcGF0Y2hlcgorICAgICAgICA8L2ZpbHRlci1jbGFzcz4KKyAgICA8L2ZpbHRlcj4KKworICAgIDxmaWx0ZXItbWFwcGluZz4KKyAgICAgICAgPGZpbHRlci1uYW1lPlN0cnV0czI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8dXJsLXBhdHRlcm4+Lyo8L3VybC1wYXR0ZXJuPgorICAgIDwvZmlsdGVyLW1hcHBpbmc+CisKKyAgICA8IS0tIEFwcGxpY2F0aW9uIExpc3RlbmVyIGZvciBNYWlscmVhZGVyIGRhdGFiYXNlIC0tPgorICAgIDxsaXN0ZW5lcj4KKyAgICAgICAgPGxpc3RlbmVyLWNsYXNzPgorICAgICAgICAgICAgRGF0YWJhc2VMaXN0ZW5lcgorICAgICAgICA8L2xpc3RlbmVyLWNsYXNzPgorICAgIDwvbGlzdGVuZXI+CisKKyAgICA8d2VsY29tZS1maWxlLWxpc3Q+CisgICAgICAgIDx3ZWxjb21lLWZpbGU+aW5kZXguaHRtbDwvd2VsY29tZS1maWxlPgorICAgIDwvd2VsY29tZS1maWxlLWxpc3Q+CisKKzwvd2ViLWFwcD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcy5zYW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE2OTc1YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlCkBAIC0wLDAgKzEsMTUgQEAKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisjIHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUNCisjDQorIyBUaGlzIGlzIGFuIGV4YW1wbGUgIndlYnRlc3QucHJvcGVydGllcyIgZmlsZSwgdXNlZCB0byBjdXN0b21pemUgYnVpbGRpbmcgU3RydXRzDQorIyBmb3IgeW91ciBsb2NhbCBlbnZpcm9ubWVudC4gIE1ha2UgYW55IGNoYW5nZXMgeW91IG5lZWQsIGFuZCByZW5hbWUgdGhpcyBmaWxlDQorIyB0byAid2VidGVzdC5wcm9wZXJ0aWVzIiBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgdGhhdCBjb250YWlucyB0aGUgU3RydXRzDQorIyAid2VidGVzdC54bWwiIGZpbGUuDQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK3dlYnRlc3QuaG9tZSA9IC9vcHQvQ2Fub28vd2VidGVzdC0xLjcNCitob3N0ID0gbG9jYWxob3N0DQorcG9ydCA9IDgwODANCitiYXNlcGF0aCA9IGxhYi0yLTINCit3ZWJhcHBzLmhvbWUgPSAvb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvDQorcmVzb3VyY2UuaG9tZSA9ICR7d2ViYXBwcy5ob21lfS8ke2Jhc2VwYXRofS9XRUItSU5GL2NsYXNzZXMvcmVzb3VyY2VzLnByb3BlcnRpZXMiDQorIyBtYWlscmVhZGVyLmhvbWUgPSANCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYzNDc2OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnhtbApAQCAtMCwwICsxLDEyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgcHJvamVjdCBTWVNURU0gImVudGl0aWVzL1dlYlRlc3QuZHRkIiBbCisKKyAgICAgICAgPCFFTlRJVFkgdGFza2RlZi13ZWJ0ZXN0IFNZU1RFTSAiZW50aXRpZXMvdGFza2RlZi54bWwiPgorICAgICAgICA8IUVOVElUWSBjb25maWcgU1lTVEVNICJlbnRpdGllcy9jb25maWcueG1sIj4KKworICAgICAgICA8IUVOVElUWSByZWdpc3Rlci1vcGVuIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3JlZ2lzdGVyLW9wZW4ueG1sIj4KKyAgICAgICAgPCFFTlRJVFkgcmVnaXN0ZXItcGFnZSBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9yZWdpc3Rlci1wYWdlLnhtbCI+CisgICAgICAgIDwhRU5USVRZIHJlZ2lzdGVyLXRyaWxsaWFuIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3JlZ2lzdGVyLXRyaWxsaWFuLnhtbCI+CisKKyAgICAgICAgPCFFTlRJVFkgc2F2ZS1jbGljayBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9zYXZlLWNsaWNrLnhtbCI+CisKKyAgICAgICAgPCFFTlRJVFkgd2VsY29tZS1vcGVuIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3dlbGNvbWUtb3Blbi54bWwiPgorCisgICAgICAgIF0+CisKKzxwcm9qZWN0IG5hbWU9Ik1haWxSZWFkZXIgVHJhaW5pbmcgQ291cnNlIC0gRXhlcmNpc2UgbmF2aWdhdGlvbiBhbmQgZGF0YWJhc2UgbG9naWMKKy0gQ2Fub28gV2ViVGVzdHMiIGJhc2VkaXI9Ii4iIGRlZmF1bHQ9ImNsZWFuIj4KKworICAgIDwhLS0KKyAgICAgQ2Fub28gV2ViVGVzdCBjb25maWd1cmF0aW9uIGZpbGUgdG8gdGVzdCBuYXZpZ2F0aW5nIGJldHdlZW4gcGFnZXMgYW5kCisgICAgIGNyZWF0aW5nIGFuZCBlZGl0aW5nIGFuIGFjY291bnQuCisKKyAgICAgVG8gcnVuIHRoaXMgdGVzdCwgZmlyc3QgaW5zdGFsbCB0aGUgQ2Fub28gV2VidGVzdCBwYWNrYWdlIG9uIHlvdXIKKyAgICAgbG9jYWwgc3lzdGVtIFtodHRwOi8vd2VidGVzdC5jYW5vby5jb21dLgorCisgICAgIFRoZSBkZWZhdWx0IGxvY2F0aW9uIGZvciB0aGlzIGJ1aWxkIGZpbGUgaXMgdW5kZXIKKyAgICAgIi9vcHQvQ2Fub28vd2VidGVzdC0xLjciLgorICAgICBTZWUgdGhlIHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgdG8gdXNlIGFub3RoZXIgbG9jYXRpb24uCisKKyAgICAgT25jZSBDYW5vbyBpcyBpbnN0YWxsZWQsIHRoZSB3ZWJ0ZXN0LnhtbCBmaWxlIGNhbiBiZSBydW4gYXMgYW4gQW50IGJ1aWxkCisgICAgIGZpbGUgKGFudCAtZiB3ZWJ0ZXN0LnhtbCkuCisKKyAgICAgQnkgZGVmYXVsdCwgdGhlIHRlc3RzIGFyZSBjb25maWd1cmVkIHRvIGZpbmQgdGhlIGFwcGxpY2F0aW9uIHVuZGVyIHRlc3QKKyAgICAgIGF0ICJodHRwOi8vbG9jYWxob3N0OjgwODAvbGliLTItMiIuCisgICAgIFNlZSB0aGUgd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZSB0byB1c2UgYW5vdGhlciBsb2NhdGlvbi4KKworICAgICBEZXBsb3kgdGhlIGFwcGxpY2F0aW9uIHRvIHlvdXIgY29udGFpbmVyLCBhbmQgdXNlIEFudCB0byBydW4gdGhlCisgICAgIHdlYnRlc3QueG1sLgorCisgICAgIFRoZSAiY2xlYW4iIHRhcmdldCBjYW4gYmUgcnVuIHRvIHRlc3QgZXZlcnl0aGluZywgYnV0IHdpbGwgZmFpbCBpZiBydW4gYWdhaW4sCisgICAgIHNpbmNlIHRoZSB0ZXN0LXVzZXIgd2lsbCBhbHJlYWR5IGJlIHJlZ2lzdGVyZWQuCisgICAgIFRoZSAiZGVmYXVsdCIgdGFyZ2V0IHNraXBzIHJlZ2lzdGVyYXRpb24gYW5kIGNhbiBiZSBydW4gYXMgb2Z0ZW4gYXMgbmVlZGVkCisgICAgIGFmdGVyICJjbGVhbiIgaXMgcnVuIG9uY2UuCisKKyAgICAgVG8gcmVzZXQgdGhlIFhNTCAiZGF0YWJhc2UiLCBlaXRoZXIgcmVkZXBsb3kgdGhlIGFwcGxpY2F0aW9uIHNvIHRoYXQgdGhlCisgICAgIFdFQi1JTkYvY2xhc3Nlcy9kYXRhYmFzZS54bWwgaXMgb3ZlcndyaXR0ZW4sCisgICAgIG9yIHVzZSB0aGUgImNsZWFuLWRhdGFiYXNlIiB0YXJnZXQgdG8gb3ZlcndyaXRlIHRoZSBmaWxlLgorICAgICBPbmx5IHVzZSAiY2xlYW4tZGF0YWJhc2UiIHdoZW4gdGhlIHNlcnZlciAgaXMgc3RvcHBlZCwKKyAgICAgYW5kIHRoZW4gc3RhcnQgaXQgYWdhaW4gYmVmb3JlIHJ1bm5pbmcgb3RoZXIgdGFyZ2V0cy4KKworICAgICBUaGUgdGVzdHMgYXJlIGJhc2VkIG9uIGEgc2V0IG9mIE1haWxSZWFkZXIgVXNlIENhc2VzIG1haW50YWluZWQgYXQgdGhlCisgICAgIFN0cnV0cyBVbml2ZXJzaXR5IHNpdGUKKyAgICAgW2h0dHA6Ly9vcGVuc291cmNlMi5hdGxhc3NpYW4uY29tL2NvbmZsdWVuY2Uvb3NzL2Rpc3BsYXkvU1RSVVRTL01haWxSZWFkZXJdLgorICAgICAqLworICAgIC0tPgorCisgICAgPCEtLSBMb2FkIGxvY2FsIHByZWZlcmVuY2VzLCBpZiBhbnkgLS0+CisgICAgPHByb3BlcnR5IGZpbGU9IndlYnRlc3QucHJvcGVydGllcyIvPgorCisgICAgPCEtLSBUaGVzZSBwcm9wZXJ0aWVzIGNhbiBiZSBjdXN0b21pemVkIHVzaW5nIHZpYSB3ZWJ0ZXN0LnByb3BlcnRpZXMgLS0+CisgICAgPCEtLSBTZWUgd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZSBmb3IgYSBzdGFydGVyIGZpbGUgLS0+CisgICAgPHByb3BlcnR5IG5hbWU9IndlYnRlc3QuaG9tZSIKKyAgICAgICAgICAgICAgbG9jYXRpb249Ii9vcHQvQ2Fub28vd2VidGVzdC0xLjciLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJob3N0IgorICAgICAgICAgICAgICB2YWx1ZT0ibG9jYWxob3N0Ii8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0icG9ydCIKKyAgICAgICAgICAgICAgdmFsdWU9IjgwODAiLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJiYXNlcGF0aCIKKyAgICAgICAgICAgICAgdmFsdWU9ImxhYi0yLTIiLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJtYWlscmVhZGVyLmhvbWUiCisgICAgICAgICAgICAgIGxvY2F0aW9uPSIuLi8uLi8uLi8iLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJ3ZWJhcHBzLmhvbWUiCisgICAgICAgICAgICAgIGxvY2F0aW9uPSIvb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMiLz4KKworICAgIDxwcm9wZXJ0eSBmaWxlPSIke3dlYmFwcHMuaG9tZX0vJHtiYXNlcGF0aH0vV0VCLUlORi9jbGFzc2VzL3Jlc291cmNlcy5wcm9wZXJ0aWVzIi8+CisKKworICAgIDx0YXNrZGVmIGZpbGU9IiR7d2VidGVzdC5ob21lfS93ZWJ0ZXN0VGFza2RlZnMucHJvcGVydGllcyI+CisgICAgICAgIDxjbGFzc3BhdGg+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7d2VidGVzdC5ob21lfSIgaW5jbHVkZXM9IioqL2xpYi8qLmphciIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke3dlYnRlc3QuaG9tZX0iIGluY2x1ZGVzPSIqKi9saWIvcnVudGltZS8qLmphciIvPgorICAgICAgICA8L2NsYXNzcGF0aD4KKyAgICA8L3Rhc2tkZWY+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNsZWFuLWRhdGFiYXNlIgorICAgICAgICAgICAgZGVzY3JpcHRpb249IlNldHMgZGF0YWJhc2UueG1sIHRvIGRlZmF1bHQuIFN0b3Agc2VydmVyLCBydW4gdGFyZ2V0LCBhbmQgU3RhcnQgc2VydmVyLiI+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7bWFpbHJlYWRlci5ob21lfS9zcmMvamF2YS9kYXRhYmFzZS54bWwiCisgICAgICAgICAgICAgIHRvZmlsZT0iJHt3ZWJhcHBzLmhvbWV9LyR7YmFzZXBhdGh9L1dFQi1JTkYvY2xhc3Nlcy9kYXRhYmFzZS54bWwiCisgICAgICAgICAgICAgIG92ZXJ3cml0ZT0idHJ1ZSIvPgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLSBBREQgWU9VUiBUQVJHRVRTIEhFUkUgLS0+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNsZWFuIiBkZXNjcmlwdGlvbj0iT25seSBydW4gYWdhaW5zdCBhIGNsZWFuIGRhdGFiYXNlIgorICAgICAgICAgICAgZGVwZW5kcz0iUmVnaXN0ZXIiLz4KKworICAgIDx0YXJnZXQgbmFtZT0iUmVnaXN0ZXIiCisgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU3Vic2NyaWJlcnMgY2FuIHN0b3JlIGxvZ2luIGNyZWRlbnRpYWxzIGFuZCBhCisgICAgICAgICAgICBwcmltYXJ5IGVtYWlsIGNvbnRhY3Qgd2l0aCB0aGUgc3lzdGVtLiI+CisKKyAgICAgICAgPHdlYnRlc3QgbmFtZT0iUmVnaXN0ZXIgVHJpbGxpYW4gKE1TUykiPgorICAgICAgICAgICAgJmNvbmZpZzsKKyAgICAgICAgICAgIDxzdGVwcz4KKyAgICAgICAgICAgICAgICAmcmVnaXN0ZXItb3BlbjsKKyAgICAgICAgICAgICAgICAmcmVnaXN0ZXItdHJpbGxpYW47CisgICAgICAgICAgICAgICAgPHZlcmlmeVRpdGxlCisgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iTWVudSBwYWdlIHRpdGxlIgorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD0iTWFpbFJlYWRlciAtIE1lbnUiLz4KKyAgICAgICAgICAgIDwvc3RlcHM+CisgICAgICAgIDwvd2VidGVzdD4KKworICAgIDwvdGFyZ2V0PgorCis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL2luZGV4Lmh0bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL2luZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI4ZDVmNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvaW5kZXguaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8TUVUQSBIVFRQLUVRVUlWPSJSZWZyZXNoIiBDT05URU5UPSIwO1VSTD1XZWxjb21lLmFjdGlvbiI+Cis8L2hlYWQ+CisKKzxib2R5PgorPHA+TG9hZGluZyAuLi48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL3BhZ2VzL0hlbGxvLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8uanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2Y2U1YWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL3BhZ2VzL0hlbGxvLmpzcApAQCAtMCwwICsxLDEzIEBACis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkhlbGxvPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDI+CisgICAgPHM6dGV4dCBuYW1lPSJoZWxsby5tZXNzYWdlIi8+Cis8L2gyPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9wYWdlcy9Mb2dpbi5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL3BhZ2VzL0xvZ2luLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTYxMzVkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9wYWdlcy9Mb2dpbi5qc3AKQEAgLTAsMCArMSwyMiBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+TWFpbFJlYWRlciAtIExvZ2luPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHkgb25Mb2FkPSJzZWxmLmZvY3VzKCk7ZG9jdW1lbnQuTG9naW5fc2F2ZS51c2VybmFtZS5mb2N1cygpIj4KKworPHM6YWN0aW9uZXJyb3IvPgorPHM6Zm9ybSBhY3Rpb249IkxvZ2luX3NhdmUiIHZhbGlkYXRlPSJ0cnVlIj4KKyAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IlVzZXJuYW1lIiBuYW1lPSJ1c2VybmFtZSIvPgorCisgICAgPHM6cGFzc3dvcmQgbGFiZWw9IlBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgc2hvd1Bhc3N3b3JkPSJ0cnVlIi8+CisKKyAgICA8czpzdWJtaXQgdmFsdWU9IlNhdmUiIG5hbWU9IlNhdmUiLz4KKworICAgIDxzOnN1Ym1pdCBhY3Rpb249IkxvZ2luX2NhbmNlbCIgdmFsdWU9IkNhbmNlbCIgbmFtZT0iQ2FuY2VsIgorICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4KKzwvczpmb3JtPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL3BhZ2VzL01lbnUuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9wYWdlcy9NZW51LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTRmMzExCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9wYWdlcy9NZW51LmpzcApAQCAtMCwwICsxLDIxIEBACis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5NYWlsUmVhZGVyIC0gTWVudTwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgzPk1lbnUgT3B0aW9ucyBmb3IKKyAgICA8czpwcm9wZXJ0eSB2YWx1ZT0idXNlci5mdWxsTmFtZSIvPgorPC9oMz4KKzx1bD4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iUmVnaXN0ZXIiIC8+Ij4KKyAgICAgICAgRWRpdCB5b3VyIHJlZ2lzdHJhdGlvbiBwcm9maWxlCisgICAgPC9hPgorICAgIDwvbGk+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249IkxvZ291dCIvPiI+CisgICAgICAgIExvZyBvdXQgb2YgTWFpbFJlYWRlciBhcHBsaWNhdGlvbgorICAgIDwvYT4KKzwvdWw+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL2xvZ291dC9zcmMvd2ViYXBwL3BhZ2VzL01pc3NpbmcuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9wYWdlcy9NaXNzaW5nLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjFiMDhiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9wYWdlcy9NaXNzaW5nLmpzcApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPjx0aXRsZT5NaXNzaW5nIEZlYXR1cmU8L3RpdGxlPjwvaGVhZD4KKworPGJvZHk+Cis8cD4KKyAgICBUaGlzIGZlYXR1cmUgaXMgdW5kZXIgY29uc3RydWN0aW9uLgorICAgIFBsZWFzZSB0cnkgYWdhaW4gaW4gdGhlIG5leHQgaW50ZXJhdGlvbi4KKzwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvcGFnZXMvUmVnaXN0ZXIuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9wYWdlcy9SZWdpc3Rlci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc5MzZmNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvcGFnZXMvUmVnaXN0ZXIuanNwCkBAIC0wLDAgKzEsMzMgQEAKKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPk1haWxSZWFkZXIgLSBSZWdpc3RlcjwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9uTG9hZD0ic2VsZi5mb2N1cygpO2RvY3VtZW50LlJlZ2lzdGVyX3NhdmUudXNlcm5hbWUuZm9jdXMoKSI+CisKKzxzOmFjdGlvbmVycm9yLz4KKzxzOmZvcm0gYWN0aW9uPSJSZWdpc3Rlcl9zYXZlIiB2YWxpZGF0ZT0idHJ1ZSI+CisKKyAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IlVzZXJuYW1lIiBuYW1lPSJ1c2VybmFtZSIvPgorCisgICAgPHM6cGFzc3dvcmQgbGFiZWw9IlBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIvPgorCisgICAgPHM6cGFzc3dvcmQgbGFiZWw9IihSZXBlYXQpIFBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZDIiLz4KKworICAgIDxzOnRleHRmaWVsZCBsYWJlbD0iRnVsbCBOYW1lIiBuYW1lPSJmdWxsTmFtZSIvPgorCisgICAgPHM6dGV4dGZpZWxkIGxhYmVsPSJGcm9tIEFkZHJlc3MiIG5hbWU9ImZyb21BZGRyZXNzIi8+CisKKyAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IlJlcGx5IFRvIEFkZHJlc3MiIG5hbWU9InJlcGx5VG9BZGRyZXNzIi8+CisKKyAgICA8czpzdWJtaXQgdmFsdWU9IlNhdmUiIG5hbWU9IlNhdmUiLz4KKworICAgIDxzOnN1Ym1pdCBhY3Rpb249IlJlZ2lzdGVyX2NhbmNlbCIgdmFsdWU9IkNhbmNlbCIgbmFtZT0iQ2FuY2VsIgorICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4KKworPC9zOmZvcm0+CisKKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9sb2dvdXQvc3JjL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvcGFnZXMvV2VsY29tZS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODExNWYyOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbG9nb3V0L3NyYy93ZWJhcHAvcGFnZXMvV2VsY29tZS5qc3AKQEAgLTAsMCArMSwyNCBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+TWFpbFJlYWRlcjwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgzPk1haWxSZWFkZXIgT3B0aW9uczwvaDM+CisKKzx1bD4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iUmVnaXN0ZXIiLz4iPlJlZ2lzdGVyIHdpdGggTWFpbFJlYWRlcjwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJMb2dpbiIvPiI+TG9nIGludG8gTWFpbFJlYWRlcjwvYT48L2xpPgorPC91bD4KKworPGgzPkxhbmd1YWdlIE9wdGlvbnM8L2gzPgorPHVsPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJNaXNzaW5nIi8+Ij5FbmdsaXNoPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249Ik1pc3NpbmciLz4iPkphcGFuZXNlPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249Ik1pc3NpbmciLz4iPlJ1c3NpYW48L2E+PC9saT4KKzwvdWw+CisKKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tYWlscmVhZGVyLWNvdXJzZS1zdHJ1dHMyLmltbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWFpbHJlYWRlci1jb3Vyc2Utc3RydXRzMi5pbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDRjMDVlYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWFpbHJlYWRlci1jb3Vyc2Utc3RydXRzMi5pbWwKQEAgLTAsMCArMSwxNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8bW9kdWxlIHZlcnNpb249IjQiIHJlbGF0aXZlUGF0aHM9InRydWUiIHR5cGU9IkpBVkFfTU9EVUxFIj4NCisgIDxjb21wb25lbnQgbmFtZT0iTW9kdWxlUm9vdE1hbmFnZXIiIC8+DQorICA8Y29tcG9uZW50IG5hbWU9Ik5ld01vZHVsZVJvb3RNYW5hZ2VyIiBpbmhlcml0LWNvbXBpbGVyLW91dHB1dD0iZmFsc2UiPg0KKyAgICA8b3V0cHV0IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9jbGFzc2VzIiAvPg0KKyAgICA8ZXhjbHVkZS1vdXRwdXQgLz4NCisgICAgPGNvbnRlbnQgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJpbmhlcml0ZWRKZGsiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9InNvdXJjZUZvbGRlciIgZm9yVGVzdHM9ImZhbHNlIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJzZXJ2bGV0LWFwaSIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeVByb3BlcnRpZXMgLz4NCisgIDwvY29tcG9uZW50Pg0KKzwvbW9kdWxlPg0KKw0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWFpbHJlYWRlci1jb3Vyc2Utc3RydXRzMi5pcHIgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21haWxyZWFkZXItY291cnNlLXN0cnV0czIuaXByCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhZDAzNjgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21haWxyZWFkZXItY291cnNlLXN0cnV0czIuaXByCkBAIC0wLDAgKzEsNDYyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxwcm9qZWN0IHZlcnNpb249IjQiIHJlbGF0aXZlUGF0aHM9ImZhbHNlIj4NCisgIDxjb21wb25lbnQgbmFtZT0iQW50Q29uZmlndXJhdGlvbiI+DQorICAgIDxkZWZhdWx0QW50IGJ1bmRsZWRBbnQ9InRydWUiIC8+DQorICAgIDxidWlsZEZpbGUgdXJsPSJmaWxlOi8vJFBST0pFQ1RfRElSJC9tZW51L3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnhtbCI+DQorICAgICAgPGFkZGl0aW9uYWxDbGFzc1BhdGggLz4NCisgICAgICA8YW50UmVmZXJlbmNlIHByb2plY3REZWZhdWx0PSJ0cnVlIiAvPg0KKyAgICAgIDxjdXN0b21KZGtOYW1lIHZhbHVlPSIiIC8+DQorICAgICAgPG1heGltdW1IZWFwU2l6ZSB2YWx1ZT0iMTI4IiAvPg0KKyAgICAgIDxwcm9wZXJ0aWVzIC8+DQorICAgIDwvYnVpbGRGaWxlPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IkJ1aWxkSmFyUHJvamVjdFNldHRpbmdzIj4NCisgICAgPG9wdGlvbiBuYW1lPSJCVUlMRF9KQVJTX09OX01BS0UiIHZhbHVlPSJmYWxzZSIgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJDb2RlU3R5bGVQcm9qZWN0UHJvZmlsZU1hbmdlciI+DQorICAgIDxvcHRpb24gbmFtZT0iUFJPSkVDVF9QUk9GSUxFIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9IlVTRV9QUk9KRUNUX0xFVkVMX1NFVFRJTkdTIiB2YWx1ZT0iZmFsc2UiIC8+DQorICA8L2NvbXBvbmVudD4NCisgIDxjb21wb25lbnQgbmFtZT0iQ29kZVN0eWxlU2V0dGluZ3NNYW5hZ2VyIj4NCisgICAgPG9wdGlvbiBuYW1lPSJQRVJfUFJPSkVDVF9TRVRUSU5HUyIgLz4NCisgICAgPG9wdGlvbiBuYW1lPSJVU0VfUEVSX1BST0pFQ1RfU0VUVElOR1MiIHZhbHVlPSJmYWxzZSIgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJDb21waWxlckNvbmZpZ3VyYXRpb24iPg0KKyAgICA8b3B0aW9uIG5hbWU9IkRFRkFVTFRfQ09NUElMRVIiIHZhbHVlPSJKYXZhYyIgLz4NCisgICAgPG9wdGlvbiBuYW1lPSJERVBMT1lfQUZURVJfTUFLRSIgdmFsdWU9IjAiIC8+DQorICAgIDxyZXNvdXJjZUV4dGVuc2lvbnM+DQorICAgICAgPGVudHJ5IG5hbWU9Ii4rXC4ocHJvcGVydGllc3x4bWx8aHRtbHxkdGR8dGxkKSIgLz4NCisgICAgICA8ZW50cnkgbmFtZT0iLitcLihnaWZ8cG5nfGpwZWd8anBnKSIgLz4NCisgICAgPC9yZXNvdXJjZUV4dGVuc2lvbnM+DQorICAgIDx3aWxkY2FyZFJlc291cmNlUGF0dGVybnM+DQorICAgICAgPGVudHJ5IG5hbWU9Ij8qLnByb3BlcnRpZXMiIC8+DQorICAgICAgPGVudHJ5IG5hbWU9Ij8qLnhtbCIgLz4NCisgICAgICA8ZW50cnkgbmFtZT0iPyouZ2lmIiAvPg0KKyAgICAgIDxlbnRyeSBuYW1lPSI/Ki5wbmciIC8+DQorICAgICAgPGVudHJ5IG5hbWU9Ij8qLmpwZWciIC8+DQorICAgICAgPGVudHJ5IG5hbWU9Ij8qLmpwZyIgLz4NCisgICAgICA8ZW50cnkgbmFtZT0iPyouaHRtbCIgLz4NCisgICAgICA8ZW50cnkgbmFtZT0iPyouZHRkIiAvPg0KKyAgICAgIDxlbnRyeSBuYW1lPSI/Ki50bGQiIC8+DQorICAgIDwvd2lsZGNhcmRSZXNvdXJjZVBhdHRlcm5zPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IkRhdGFTb3VyY2VNYW5hZ2VySW1wbCIgLz4NCisgIDxjb21wb25lbnQgbmFtZT0iRGVwZW5kZW5jaWVzQW5hbHl6ZU1hbmFnZXIiPg0KKyAgICA8b3B0aW9uIG5hbWU9Im15Rm9yd2FyZERpcmVjdGlvbiIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IkRlcGVuZGVuY3lWYWxpZGF0aW9uTWFuYWdlciIgLz4NCisgIDxjb21wb25lbnQgbmFtZT0iRWNsaXBzZUNvbXBpbGVyU2V0dGluZ3MiPg0KKyAgICA8b3B0aW9uIG5hbWU9IkRFQlVHR0lOR19JTkZPIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgPG9wdGlvbiBuYW1lPSJHRU5FUkFURV9OT19XQVJOSU5HUyIgdmFsdWU9InRydWUiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iREVQUkVDQVRJT04iIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPG9wdGlvbiBuYW1lPSJBRERJVElPTkFMX09QVElPTlNfU1RSSU5HIiB2YWx1ZT0iIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9Ik1BWElNVU1fSEVBUF9TSVpFIiB2YWx1ZT0iMTI4IiAvPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IkVjbGlwc2VFbWJlZGRlZENvbXBpbGVyU2V0dGluZ3MiPg0KKyAgICA8b3B0aW9uIG5hbWU9IkRFQlVHR0lOR19JTkZPIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgPG9wdGlvbiBuYW1lPSJHRU5FUkFURV9OT19XQVJOSU5HUyIgdmFsdWU9InRydWUiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iREVQUkVDQVRJT04iIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPG9wdGlvbiBuYW1lPSJBRERJVElPTkFMX09QVElPTlNfU1RSSU5HIiB2YWx1ZT0iIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9Ik1BWElNVU1fSEVBUF9TSVpFIiB2YWx1ZT0iMTI4IiAvPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IkVudHJ5UG9pbnRzTWFuYWdlciI+DQorICAgIDxlbnRyeV9wb2ludHMgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJFeHBvcnRUb0hUTUxTZXR0aW5ncyI+DQorICAgIDxvcHRpb24gbmFtZT0iUFJJTlRfTElORV9OVU1CRVJTIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iT1BFTl9JTl9CUk9XU0VSIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iT1VUUFVUX0RJUkVDVE9SWSIgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJHVUkgRGVzaWduZXIgY29tcG9uZW50IGxvYWRlciBmYWN0b3J5IiAvPg0KKyAgPGNvbXBvbmVudCBuYW1lPSJJZFByb3ZpZGVyIiBJREV0YWxrSUQ9IjNGRjhFRUQ5RkYzOTlGNkQ1MEQyNjIwRkI5MjE1OTM0IiAvPg0KKyAgPGNvbXBvbmVudCBuYW1lPSJJbnNwZWN0aW9uUHJvamVjdFByb2ZpbGVNYW5hZ2VyIj4NCisgICAgPG9wdGlvbiBuYW1lPSJQUk9KRUNUX1BST0ZJTEUiIHZhbHVlPSJQcm9qZWN0IERlZmF1bHQiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iVVNFX1BST0pFQ1RfTEVWRUxfU0VUVElOR1MiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPHNjb3BlcyAvPg0KKyAgICA8cHJvZmlsZXM+DQorICAgICAgPHByb2ZpbGUgdmVyc2lvbj0iMS4wIiBpc19sb2NrZWQ9ImZhbHNlIj4NCisgICAgICAgIDxvcHRpb24gbmFtZT0ibXlOYW1lIiB2YWx1ZT0iUHJvamVjdCBEZWZhdWx0IiAvPg0KKyAgICAgICAgPG9wdGlvbiBuYW1lPSJteUxvY2FsIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgICAgICA8dXNlZF9sZXZlbHM+DQorICAgICAgICAgIDxlcnJvcj4NCisgICAgICAgICAgICA8b3B0aW9uIG5hbWU9Im15TmFtZSIgdmFsdWU9IkVSUk9SIiAvPg0KKyAgICAgICAgICAgIDxvcHRpb24gbmFtZT0ibXlWYWwiIHZhbHVlPSI0MDAiIC8+DQorICAgICAgICAgIDwvZXJyb3I+DQorICAgICAgICAgIDx3YXJuaW5nPg0KKyAgICAgICAgICAgIDxvcHRpb24gbmFtZT0ibXlOYW1lIiB2YWx1ZT0iV0FSTklORyIgLz4NCisgICAgICAgICAgICA8b3B0aW9uIG5hbWU9Im15VmFsIiB2YWx1ZT0iMzAwIiAvPg0KKyAgICAgICAgICA8L3dhcm5pbmc+DQorICAgICAgICAgIDxpbmZvcm1hdGlvbj4NCisgICAgICAgICAgICA8b3B0aW9uIG5hbWU9Im15TmFtZSIgdmFsdWU9IklORk8iIC8+DQorICAgICAgICAgICAgPG9wdGlvbiBuYW1lPSJteVZhbCIgdmFsdWU9IjIwMCIgLz4NCisgICAgICAgICAgPC9pbmZvcm1hdGlvbj4NCisgICAgICAgICAgPHNlcnZlcj4NCisgICAgICAgICAgICA8b3B0aW9uIG5hbWU9Im15TmFtZSIgdmFsdWU9IlNFUlZFUiBQUk9CTEVNIiAvPg0KKyAgICAgICAgICAgIDxvcHRpb24gbmFtZT0ibXlWYWwiIHZhbHVlPSIxMDAiIC8+DQorICAgICAgICAgIDwvc2VydmVyPg0KKyAgICAgICAgPC91c2VkX2xldmVscz4NCisgICAgICA8L3Byb2ZpbGU+DQorICAgIDwvcHJvZmlsZXM+DQorICA8L2NvbXBvbmVudD4NCisgIDxjb21wb25lbnQgbmFtZT0iSmF2YWNTZXR0aW5ncyI+DQorICAgIDxvcHRpb24gbmFtZT0iREVCVUdHSU5HX0lORk8iIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9IkdFTkVSQVRFX05PX1dBUk5JTkdTIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iREVQUkVDQVRJT04iIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9IkFERElUSU9OQUxfT1BUSU9OU19TVFJJTkciIHZhbHVlPSIiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iTUFYSU1VTV9IRUFQX1NJWkUiIHZhbHVlPSIxMjgiIC8+DQorICA8L2NvbXBvbmVudD4NCisgIDxjb21wb25lbnQgbmFtZT0iSmF2YWRvY0dlbmVyYXRpb25NYW5hZ2VyIj4NCisgICAgPG9wdGlvbiBuYW1lPSJPVVRQVVRfRElSRUNUT1JZIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9Ik9QVElPTl9TQ09QRSIgdmFsdWU9InByb3RlY3RlZCIgLz4NCisgICAgPG9wdGlvbiBuYW1lPSJPUFRJT05fSElFUkFSQ0hZIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgPG9wdGlvbiBuYW1lPSJPUFRJT05fTkFWSUdBVE9SIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgPG9wdGlvbiBuYW1lPSJPUFRJT05fSU5ERVgiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9Ik9QVElPTl9TRVBBUkFURV9JTkRFWCIgdmFsdWU9InRydWUiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iT1BUSU9OX0RPQ1VNRU5UX1RBR19VU0UiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPG9wdGlvbiBuYW1lPSJPUFRJT05fRE9DVU1FTlRfVEFHX0FVVEhPUiIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9Ik9QVElPTl9ET0NVTUVOVF9UQUdfVkVSU0lPTiIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9Ik9QVElPTl9ET0NVTUVOVF9UQUdfREVQUkVDQVRFRCIgdmFsdWU9InRydWUiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iT1BUSU9OX0RFUFJFQ0FURURfTElTVCIgdmFsdWU9InRydWUiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iT1RIRVJfT1BUSU9OUyIgdmFsdWU9IiIgLz4NCisgICAgPG9wdGlvbiBuYW1lPSJIRUFQX1NJWkUiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iTE9DQUxFIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9Ik9QRU5fSU5fQlJPV1NFUiIgdmFsdWU9InRydWUiIC8+DQorICA8L2NvbXBvbmVudD4NCisgIDxjb21wb25lbnQgbmFtZT0iSmlrZXNTZXR0aW5ncyI+DQorICAgIDxvcHRpb24gbmFtZT0iSklLRVNfUEFUSCIgdmFsdWU9IiIgLz4NCisgICAgPG9wdGlvbiBuYW1lPSJERUJVR0dJTkdfSU5GTyIgdmFsdWU9InRydWUiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iREVQUkVDQVRJT04iIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9IkdFTkVSQVRFX05PX1dBUk5JTkdTIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iSVNfRU1BQ1NfRVJST1JTX01PREUiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9IkFERElUSU9OQUxfT1BUSU9OU19TVFJJTkciIHZhbHVlPSIiIC8+DQorICA8L2NvbXBvbmVudD4NCisgIDxjb21wb25lbnQgbmFtZT0iTG9nQ29uc29sZVByZWZlcmVuY2VzIj4NCisgICAgPG9wdGlvbiBuYW1lPSJGSUxURVJfRVJST1JTIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iRklMVEVSX1dBUk5JTkdTIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iRklMVEVSX0lORk8iIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9IkNVU1RPTV9GSUxURVIiIC8+DQorICA8L2NvbXBvbmVudD4NCisgIDxjb21wb25lbnQgbmFtZT0iUGFsZXR0ZTIiPg0KKyAgICA8Z3JvdXAgbmFtZT0iU3dpbmciPg0KKyAgICAgIDxpdGVtIGNsYXNzPSJjb20uaW50ZWxsaWoudWlEZXNpZ25lci5IU3BhY2VyIiB0b29sdGlwLXRleHQ9Ikhvcml6b250YWwgU3BhY2VyIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvaHNwYWNlci5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9ImZhbHNlIiBjYW4tYXR0YWNoLWxhYmVsPSJmYWxzZSI+DQorICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjEiIGhzaXplLXBvbGljeT0iNiIgYW5jaG9yPSIwIiBmaWxsPSIxIiAvPg0KKyAgICAgIDwvaXRlbT4NCisgICAgICA8aXRlbSBjbGFzcz0iY29tLmludGVsbGlqLnVpRGVzaWduZXIuVlNwYWNlciIgdG9vbHRpcC10ZXh0PSJWZXJ0aWNhbCBTcGFjZXIiIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy92c3BhY2VyLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0iZmFsc2UiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4NCisgICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iNiIgaHNpemUtcG9saWN5PSIxIiBhbmNob3I9IjAiIGZpbGw9IjIiIC8+DQorICAgICAgPC9pdGVtPg0KKyAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KUGFuZWwiIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy9wYW5lbC5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9ImZhbHNlIiBjYW4tYXR0YWNoLWxhYmVsPSJmYWxzZSI+DQorICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjMiIGhzaXplLXBvbGljeT0iMyIgYW5jaG9yPSIwIiBmaWxsPSIzIiAvPg0KKyAgICAgIDwvaXRlbT4NCisgICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSlNjcm9sbFBhbmUiIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy9zY3JvbGxQYW5lLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0iZmFsc2UiIGNhbi1hdHRhY2gtbGFiZWw9InRydWUiPg0KKyAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSI3IiBoc2l6ZS1wb2xpY3k9IjciIGFuY2hvcj0iMCIgZmlsbD0iMyIgLz4NCisgICAgICA8L2l0ZW0+DQorICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpCdXR0b24iIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy9idXR0b24ucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJ0cnVlIiBjYW4tYXR0YWNoLWxhYmVsPSJmYWxzZSI+DQorICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjAiIGhzaXplLXBvbGljeT0iMyIgYW5jaG9yPSIwIiBmaWxsPSIxIiAvPg0KKyAgICAgICAgPGluaXRpYWwtdmFsdWVzPg0KKyAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCIgdmFsdWU9IkJ1dHRvbiIgLz4NCisgICAgICAgIDwvaW5pdGlhbC12YWx1ZXM+DQorICAgICAgPC9pdGVtPg0KKyAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KUmFkaW9CdXR0b24iIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy9yYWRpb0J1dHRvbi5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4NCisgICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iMCIgaHNpemUtcG9saWN5PSIzIiBhbmNob3I9IjgiIGZpbGw9IjAiIC8+DQorICAgICAgICA8aW5pdGlhbC12YWx1ZXM+DQorICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0IiB2YWx1ZT0iUmFkaW9CdXR0b24iIC8+DQorICAgICAgICA8L2luaXRpYWwtdmFsdWVzPg0KKyAgICAgIDwvaXRlbT4NCisgICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSkNoZWNrQm94IiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvY2hlY2tCb3gucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJ0cnVlIiBjYW4tYXR0YWNoLWxhYmVsPSJmYWxzZSI+DQorICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjAiIGhzaXplLXBvbGljeT0iMyIgYW5jaG9yPSI4IiBmaWxsPSIwIiAvPg0KKyAgICAgICAgPGluaXRpYWwtdmFsdWVzPg0KKyAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idGV4dCIgdmFsdWU9IkNoZWNrQm94IiAvPg0KKyAgICAgICAgPC9pbml0aWFsLXZhbHVlcz4NCisgICAgICA8L2l0ZW0+DQorICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpMYWJlbCIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL2xhYmVsLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0iZmFsc2UiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4NCisgICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iMCIgaHNpemUtcG9saWN5PSIwIiBhbmNob3I9IjgiIGZpbGw9IjAiIC8+DQorICAgICAgICA8aW5pdGlhbC12YWx1ZXM+DQorICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXh0IiB2YWx1ZT0iTGFiZWwiIC8+DQorICAgICAgICA8L2luaXRpYWwtdmFsdWVzPg0KKyAgICAgIDwvaXRlbT4NCisgICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSlRleHRGaWVsZCIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL3RleHRGaWVsZC5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9InRydWUiPg0KKyAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSIwIiBoc2l6ZS1wb2xpY3k9IjYiIGFuY2hvcj0iOCIgZmlsbD0iMSI+DQorICAgICAgICAgIDxwcmVmZXJyZWQtc2l6ZSB3aWR0aD0iMTUwIiBoZWlnaHQ9Ii0xIiAvPg0KKyAgICAgICAgPC9kZWZhdWx0LWNvbnN0cmFpbnRzPg0KKyAgICAgIDwvaXRlbT4NCisgICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSlBhc3N3b3JkRmllbGQiIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy9wYXNzd29yZEZpZWxkLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0idHJ1ZSIgY2FuLWF0dGFjaC1sYWJlbD0idHJ1ZSI+DQorICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjAiIGhzaXplLXBvbGljeT0iNiIgYW5jaG9yPSI4IiBmaWxsPSIxIj4NCisgICAgICAgICAgPHByZWZlcnJlZC1zaXplIHdpZHRoPSIxNTAiIGhlaWdodD0iLTEiIC8+DQorICAgICAgICA8L2RlZmF1bHQtY29uc3RyYWludHM+DQorICAgICAgPC9pdGVtPg0KKyAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KRm9ybWF0dGVkVGV4dEZpZWxkIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvZm9ybWF0dGVkVGV4dEZpZWxkLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0idHJ1ZSIgY2FuLWF0dGFjaC1sYWJlbD0idHJ1ZSI+DQorICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjAiIGhzaXplLXBvbGljeT0iNiIgYW5jaG9yPSI4IiBmaWxsPSIxIj4NCisgICAgICAgICAgPHByZWZlcnJlZC1zaXplIHdpZHRoPSIxNTAiIGhlaWdodD0iLTEiIC8+DQorICAgICAgICA8L2RlZmF1bHQtY29uc3RyYWludHM+DQorICAgICAgPC9pdGVtPg0KKyAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KVGV4dEFyZWEiIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy90ZXh0QXJlYS5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9InRydWUiPg0KKyAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSI2IiBoc2l6ZS1wb2xpY3k9IjYiIGFuY2hvcj0iMCIgZmlsbD0iMyI+DQorICAgICAgICAgIDxwcmVmZXJyZWQtc2l6ZSB3aWR0aD0iMTUwIiBoZWlnaHQ9IjUwIiAvPg0KKyAgICAgICAgPC9kZWZhdWx0LWNvbnN0cmFpbnRzPg0KKyAgICAgIDwvaXRlbT4NCisgICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSlRleHRQYW5lIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvdGV4dFBhbmUucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJ0cnVlIiBjYW4tYXR0YWNoLWxhYmVsPSJ0cnVlIj4NCisgICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iNiIgaHNpemUtcG9saWN5PSI2IiBhbmNob3I9IjAiIGZpbGw9IjMiPg0KKyAgICAgICAgICA8cHJlZmVycmVkLXNpemUgd2lkdGg9IjE1MCIgaGVpZ2h0PSI1MCIgLz4NCisgICAgICAgIDwvZGVmYXVsdC1jb25zdHJhaW50cz4NCisgICAgICA8L2l0ZW0+DQorICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpFZGl0b3JQYW5lIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvZWRpdG9yUGFuZS5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9InRydWUiPg0KKyAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSI2IiBoc2l6ZS1wb2xpY3k9IjYiIGFuY2hvcj0iMCIgZmlsbD0iMyI+DQorICAgICAgICAgIDxwcmVmZXJyZWQtc2l6ZSB3aWR0aD0iMTUwIiBoZWlnaHQ9IjUwIiAvPg0KKyAgICAgICAgPC9kZWZhdWx0LWNvbnN0cmFpbnRzPg0KKyAgICAgIDwvaXRlbT4NCisgICAgICA8aXRlbSBjbGFzcz0iamF2YXguc3dpbmcuSkNvbWJvQm94IiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvY29tYm9Cb3gucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJ0cnVlIiBjYW4tYXR0YWNoLWxhYmVsPSJ0cnVlIj4NCisgICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iMCIgaHNpemUtcG9saWN5PSIyIiBhbmNob3I9IjgiIGZpbGw9IjEiIC8+DQorICAgICAgPC9pdGVtPg0KKyAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KVGFibGUiIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy90YWJsZS5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4NCisgICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iNiIgaHNpemUtcG9saWN5PSI2IiBhbmNob3I9IjAiIGZpbGw9IjMiPg0KKyAgICAgICAgICA8cHJlZmVycmVkLXNpemUgd2lkdGg9IjE1MCIgaGVpZ2h0PSI1MCIgLz4NCisgICAgICAgIDwvZGVmYXVsdC1jb25zdHJhaW50cz4NCisgICAgICA8L2l0ZW0+DQorICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpMaXN0IiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvbGlzdC5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4NCisgICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iNiIgaHNpemUtcG9saWN5PSIyIiBhbmNob3I9IjAiIGZpbGw9IjMiPg0KKyAgICAgICAgICA8cHJlZmVycmVkLXNpemUgd2lkdGg9IjE1MCIgaGVpZ2h0PSI1MCIgLz4NCisgICAgICAgIDwvZGVmYXVsdC1jb25zdHJhaW50cz4NCisgICAgICA8L2l0ZW0+DQorICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpUcmVlIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvdHJlZS5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4NCisgICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iNiIgaHNpemUtcG9saWN5PSI2IiBhbmNob3I9IjAiIGZpbGw9IjMiPg0KKyAgICAgICAgICA8cHJlZmVycmVkLXNpemUgd2lkdGg9IjE1MCIgaGVpZ2h0PSI1MCIgLz4NCisgICAgICAgIDwvZGVmYXVsdC1jb25zdHJhaW50cz4NCisgICAgICA8L2l0ZW0+DQorICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpUYWJiZWRQYW5lIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvdGFiYmVkUGFuZS5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9InRydWUiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4NCisgICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iMyIgaHNpemUtcG9saWN5PSIzIiBhbmNob3I9IjAiIGZpbGw9IjMiPg0KKyAgICAgICAgICA8cHJlZmVycmVkLXNpemUgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIC8+DQorICAgICAgICA8L2RlZmF1bHQtY29uc3RyYWludHM+DQorICAgICAgPC9pdGVtPg0KKyAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KU3BsaXRQYW5lIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvc3BsaXRQYW5lLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0iZmFsc2UiIGNhbi1hdHRhY2gtbGFiZWw9ImZhbHNlIj4NCisgICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iMyIgaHNpemUtcG9saWN5PSIzIiBhbmNob3I9IjAiIGZpbGw9IjMiPg0KKyAgICAgICAgICA8cHJlZmVycmVkLXNpemUgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIC8+DQorICAgICAgICA8L2RlZmF1bHQtY29uc3RyYWludHM+DQorICAgICAgPC9pdGVtPg0KKyAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KU3Bpbm5lciIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL3NwaW5uZXIucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJ0cnVlIiBjYW4tYXR0YWNoLWxhYmVsPSJ0cnVlIj4NCisgICAgICAgIDxkZWZhdWx0LWNvbnN0cmFpbnRzIHZzaXplLXBvbGljeT0iMCIgaHNpemUtcG9saWN5PSI2IiBhbmNob3I9IjgiIGZpbGw9IjEiIC8+DQorICAgICAgPC9pdGVtPg0KKyAgICAgIDxpdGVtIGNsYXNzPSJqYXZheC5zd2luZy5KU2xpZGVyIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvc2xpZGVyLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0idHJ1ZSIgY2FuLWF0dGFjaC1sYWJlbD0iZmFsc2UiPg0KKyAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSIwIiBoc2l6ZS1wb2xpY3k9IjYiIGFuY2hvcj0iOCIgZmlsbD0iMSIgLz4NCisgICAgICA8L2l0ZW0+DQorICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpTZXBhcmF0b3IiIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy9zZXBhcmF0b3IucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJmYWxzZSIgY2FuLWF0dGFjaC1sYWJlbD0iZmFsc2UiPg0KKyAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSI2IiBoc2l6ZS1wb2xpY3k9IjYiIGFuY2hvcj0iMCIgZmlsbD0iMyIgLz4NCisgICAgICA8L2l0ZW0+DQorICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpQcm9ncmVzc0JhciIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL3Byb2dyZXNzYmFyLnBuZyIgcmVtb3ZhYmxlPSJmYWxzZSIgYXV0by1jcmVhdGUtYmluZGluZz0idHJ1ZSIgY2FuLWF0dGFjaC1sYWJlbD0iZmFsc2UiPg0KKyAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSIwIiBoc2l6ZS1wb2xpY3k9IjYiIGFuY2hvcj0iMCIgZmlsbD0iMSIgLz4NCisgICAgICA8L2l0ZW0+DQorICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpUb29sQmFyIiBpY29uPSIvY29tL2ludGVsbGlqL3VpRGVzaWduZXIvaWNvbnMvdG9vbGJhci5wbmciIHJlbW92YWJsZT0iZmFsc2UiIGF1dG8tY3JlYXRlLWJpbmRpbmc9ImZhbHNlIiBjYW4tYXR0YWNoLWxhYmVsPSJmYWxzZSI+DQorICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjAiIGhzaXplLXBvbGljeT0iNiIgYW5jaG9yPSIwIiBmaWxsPSIxIj4NCisgICAgICAgICAgPHByZWZlcnJlZC1zaXplIHdpZHRoPSItMSIgaGVpZ2h0PSIyMCIgLz4NCisgICAgICAgIDwvZGVmYXVsdC1jb25zdHJhaW50cz4NCisgICAgICA8L2l0ZW0+DQorICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpUb29sQmFyJFNlcGFyYXRvciIgaWNvbj0iL2NvbS9pbnRlbGxpai91aURlc2lnbmVyL2ljb25zL3Rvb2xiYXJTZXBhcmF0b3IucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJmYWxzZSIgY2FuLWF0dGFjaC1sYWJlbD0iZmFsc2UiPg0KKyAgICAgICAgPGRlZmF1bHQtY29uc3RyYWludHMgdnNpemUtcG9saWN5PSIwIiBoc2l6ZS1wb2xpY3k9IjAiIGFuY2hvcj0iMCIgZmlsbD0iMSIgLz4NCisgICAgICA8L2l0ZW0+DQorICAgICAgPGl0ZW0gY2xhc3M9ImphdmF4LnN3aW5nLkpTY3JvbGxCYXIiIGljb249Ii9jb20vaW50ZWxsaWovdWlEZXNpZ25lci9pY29ucy9zY3JvbGxiYXIucG5nIiByZW1vdmFibGU9ImZhbHNlIiBhdXRvLWNyZWF0ZS1iaW5kaW5nPSJ0cnVlIiBjYW4tYXR0YWNoLWxhYmVsPSJmYWxzZSI+DQorICAgICAgICA8ZGVmYXVsdC1jb25zdHJhaW50cyB2c2l6ZS1wb2xpY3k9IjYiIGhzaXplLXBvbGljeT0iMCIgYW5jaG9yPSIwIiBmaWxsPSIyIiAvPg0KKyAgICAgIDwvaXRlbT4NCisgICAgPC9ncm91cD4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJQcm9qZWN0TW9kdWxlTWFuYWdlciI+DQorICAgIDxtb2R1bGVzPg0KKyAgICAgIDxtb2R1bGUgZmlsZXVybD0iZmlsZTovLyRQUk9KRUNUX0RJUiQvYnJvd3NlL2Jyb3dzZS5pbWwiIGZpbGVwYXRoPSIkUFJPSkVDVF9ESVIkL2Jyb3dzZS9icm93c2UuaW1sIiAvPg0KKyAgICAgIDxtb2R1bGUgZmlsZXVybD0iZmlsZTovLyRQUk9KRUNUX0RJUiQvaGVsbG8vaGVsbG8uaW1sIiBmaWxlcGF0aD0iJFBST0pFQ1RfRElSJC9oZWxsby9oZWxsby5pbWwiIC8+DQorICAgICAgPG1vZHVsZSBmaWxldXJsPSJmaWxlOi8vJFBST0pFQ1RfRElSJC9sb2NhbGl6ZS9sb2NhbGl6ZS5pbWwiIGZpbGVwYXRoPSIkUFJPSkVDVF9ESVIkL2xvY2FsaXplL2xvY2FsaXplLmltbCIgLz4NCisgICAgICA8bW9kdWxlIGZpbGV1cmw9ImZpbGU6Ly8kUFJPSkVDVF9ESVIkL2xvZ291dC9sb2dvdXQuaW1sIiBmaWxlcGF0aD0iJFBST0pFQ1RfRElSJC9sb2dvdXQvbG9nb3V0LmltbCIgLz4NCisgICAgICA8bW9kdWxlIGZpbGV1cmw9ImZpbGU6Ly8kUFJPSkVDVF9ESVIkL21haWxyZWFkZXItY291cnNlLXN0cnV0czIuaW1sIiBmaWxlcGF0aD0iJFBST0pFQ1RfRElSJC9tYWlscmVhZGVyLWNvdXJzZS1zdHJ1dHMyLmltbCIgLz4NCisgICAgICA8bW9kdWxlIGZpbGV1cmw9ImZpbGU6Ly8kUFJPSkVDVF9ESVIkL21lbnUvbWVudS5pbWwiIGZpbGVwYXRoPSIkUFJPSkVDVF9ESVIkL21lbnUvbWVudS5pbWwiIC8+DQorICAgICAgPG1vZHVsZSBmaWxldXJsPSJmaWxlOi8vJFBST0pFQ1RfRElSJC9taWdyYXRpbmcvbWlncmF0aW5nLmltbCIgZmlsZXBhdGg9IiRQUk9KRUNUX0RJUiQvbWlncmF0aW5nL21pZ3JhdGluZy5pbWwiIC8+DQorICAgICAgPG1vZHVsZSBmaWxldXJsPSJmaWxlOi8vJFBST0pFQ1RfRElSJC9wcm9maWxlL3Byb2ZpbGUuaW1sIiBmaWxlcGF0aD0iJFBST0pFQ1RfRElSJC9wcm9maWxlL3Byb2ZpbGUuaW1sIiAvPg0KKyAgICAgIDxtb2R1bGUgZmlsZXVybD0iZmlsZTovLyRQUk9KRUNUX0RJUiQvcmVnaXN0ZXIvcmVnaXN0ZXIuaW1sIiBmaWxlcGF0aD0iJFBST0pFQ1RfRElSJC9yZWdpc3Rlci9yZWdpc3Rlci5pbWwiIC8+DQorICAgICAgPG1vZHVsZSBmaWxldXJsPSJmaWxlOi8vJFBST0pFQ1RfRElSJC9yZWdpc3RlcjIvcmVnaXN0ZXIyLmltbCIgZmlsZXBhdGg9IiRQUk9KRUNUX0RJUiQvcmVnaXN0ZXIyL3JlZ2lzdGVyMi5pbWwiIC8+DQorICAgICAgPG1vZHVsZSBmaWxldXJsPSJmaWxlOi8vJFBST0pFQ1RfRElSJC9yZXRhaW4vcmV0YWluLmltbCIgZmlsZXBhdGg9IiRQUk9KRUNUX0RJUiQvcmV0YWluL3JldGFpbi5pbWwiIC8+DQorICAgICAgPG1vZHVsZSBmaWxldXJsPSJmaWxlOi8vJFBST0pFQ1RfRElSJC9zdWJzY3JpYmUvc3Vic2NyaWJlLmltbCIgZmlsZXBhdGg9IiRQUk9KRUNUX0RJUiQvc3Vic2NyaWJlL3N1YnNjcmliZS5pbWwiIC8+DQorICAgICAgPG1vZHVsZSBmaWxldXJsPSJmaWxlOi8vJFBST0pFQ1RfRElSJC90aGVtZS90aGVtZS5pbWwiIGZpbGVwYXRoPSIkUFJPSkVDVF9ESVIkL3RoZW1lL3RoZW1lLmltbCIgLz4NCisgICAgICA8bW9kdWxlIGZpbGV1cmw9ImZpbGU6Ly8kUFJPSkVDVF9ESVIkL3dlbGNvbWUvd2VsY29tZS5pbWwiIGZpbGVwYXRoPSIkUFJPSkVDVF9ESVIkL3dlbGNvbWUvd2VsY29tZS5pbWwiIC8+DQorICAgIDwvbW9kdWxlcz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJQcm9qZWN0Um9vdE1hbmFnZXIiIHZlcnNpb249IjIiIGFzc2VydC1rZXl3b3JkPSJ0cnVlIiBqZGstMTU9ImZhbHNlIiBwcm9qZWN0LWpkay1uYW1lPSIxLjUiIC8+DQorICA8Y29tcG9uZW50IG5hbWU9IlByb2plY3RSdW5Db25maWd1cmF0aW9uTWFuYWdlciI+DQorICAgIDxjb25maWd1cmF0aW9uIGRlZmF1bHQ9ImZhbHNlIiBuYW1lPSJUb21jYXQgNS41IiB0eXBlPSIjY29tLmludGVsbGlqLmoyZWUud2ViLnRvbWNhdC5Ub21jYXRSdW5Db25maWd1cmF0aW9uRmFjdG9yeSIgZmFjdG9yeU5hbWU9IkxvY2FsIiBBUFBMSUNBVElPTl9TRVJWRVJfTkFNRT0iVG9tY2F0IDUiPg0KKyAgICAgIDxvcHRpb24gbmFtZT0iV09SS0lOR19ESVJFQ1RPUlkiIC8+DQorICAgICAgPG9wdGlvbiBuYW1lPSJIT1NUIiB2YWx1ZT0ibG9jYWxob3N0IiAvPg0KKyAgICAgIDxvcHRpb24gbmFtZT0iUE9SVCIgdmFsdWU9IjgwODAiIC8+DQorICAgICAgPG9wdGlvbiBuYW1lPSJMT0NBTCIgdmFsdWU9InRydWUiIC8+DQorICAgICAgPG9wdGlvbiBuYW1lPSJPUEVOX0lOX0JST1dTRVIiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICAgIDxvcHRpb24gbmFtZT0iT1BFTl9JTl9CUk9XU0VSX1VSTCIgdmFsdWU9Imh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9zdWJzY3JpYmUiIC8+DQorICAgICAgPG9wdGlvbiBuYW1lPSJDT01NT05fVk1fQVJHVU1FTlRTIiB2YWx1ZT0iIiAvPg0KKyAgICAgIDxKMkVFX01PRFVMRSBERVBMT1lNRU5UX1NPVVJDRV9OQU1FPSJleHBsb2RlZCI+DQorICAgICAgICA8b3B0aW9uIG5hbWU9IkNPTlRFWFRfUEFUSCIgdmFsdWU9Ii8iIC8+DQorICAgICAgICA8b3B0aW9uIG5hbWU9Ik1PRFVMRV9OQU1FIiB2YWx1ZT0idGhlbWUiIC8+DQorICAgICAgICA8b3B0aW9uIG5hbWU9IkRFUExPWSIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICAgIDwvSjJFRV9NT0RVTEU+DQorICAgICAgPEoyRUVfTU9EVUxFIERFUExPWU1FTlRfU09VUkNFX05BTUU9ImV4cGxvZGVkIj4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iQ09OVEVYVF9QQVRIIiB2YWx1ZT0iLyIgLz4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iTU9EVUxFX05BTUUiIHZhbHVlPSJoZWxsbyIgLz4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iREVQTE9ZIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgICAgPC9KMkVFX01PRFVMRT4NCisgICAgICA8SjJFRV9NT0RVTEUgREVQTE9ZTUVOVF9TT1VSQ0VfTkFNRT0iZXhwbG9kZWQiPg0KKyAgICAgICAgPG9wdGlvbiBuYW1lPSJDT05URVhUX1BBVEgiIHZhbHVlPSIvIiAvPg0KKyAgICAgICAgPG9wdGlvbiBuYW1lPSJNT0RVTEVfTkFNRSIgdmFsdWU9IndlbGNvbWUiIC8+DQorICAgICAgICA8b3B0aW9uIG5hbWU9IkRFUExPWSIgdmFsdWU9InRydWUiIC8+DQorICAgICAgPC9KMkVFX01PRFVMRT4NCisgICAgICA8SjJFRV9NT0RVTEUgREVQTE9ZTUVOVF9TT1VSQ0VfTkFNRT0iZXhwbG9kZWQiPg0KKyAgICAgICAgPG9wdGlvbiBuYW1lPSJDT05URVhUX1BBVEgiIHZhbHVlPSIvIiAvPg0KKyAgICAgICAgPG9wdGlvbiBuYW1lPSJNT0RVTEVfTkFNRSIgdmFsdWU9InByb2ZpbGUiIC8+DQorICAgICAgICA8b3B0aW9uIG5hbWU9IkRFUExPWSIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICAgIDwvSjJFRV9NT0RVTEU+DQorICAgICAgPEoyRUVfTU9EVUxFIERFUExPWU1FTlRfU09VUkNFX05BTUU9ImV4cGxvZGVkIj4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iQ09OVEVYVF9QQVRIIiB2YWx1ZT0iLyIgLz4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iTU9EVUxFX05BTUUiIHZhbHVlPSJzdWJzY3JpYmUiIC8+DQorICAgICAgICA8b3B0aW9uIG5hbWU9IkRFUExPWSIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICAgIDwvSjJFRV9NT0RVTEU+DQorICAgICAgPEoyRUVfTU9EVUxFIERFUExPWU1FTlRfU09VUkNFX05BTUU9ImV4cGxvZGVkIj4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iQ09OVEVYVF9QQVRIIiB2YWx1ZT0iLyIgLz4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iTU9EVUxFX05BTUUiIHZhbHVlPSJyZXRhaW4iIC8+DQorICAgICAgICA8b3B0aW9uIG5hbWU9IkRFUExPWSIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICAgIDwvSjJFRV9NT0RVTEU+DQorICAgICAgPEoyRUVfTU9EVUxFIERFUExPWU1FTlRfU09VUkNFX05BTUU9ImV4cGxvZGVkIj4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iQ09OVEVYVF9QQVRIIiB2YWx1ZT0iLyIgLz4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iTU9EVUxFX05BTUUiIHZhbHVlPSJicm93c2UiIC8+DQorICAgICAgICA8b3B0aW9uIG5hbWU9IkRFUExPWSIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICAgIDwvSjJFRV9NT0RVTEU+DQorICAgICAgPEoyRUVfTU9EVUxFIERFUExPWU1FTlRfU09VUkNFX05BTUU9ImV4cGxvZGVkIj4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iQ09OVEVYVF9QQVRIIiB2YWx1ZT0iLyIgLz4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iTU9EVUxFX05BTUUiIHZhbHVlPSJtaWdyYXRpbmciIC8+DQorICAgICAgICA8b3B0aW9uIG5hbWU9IkRFUExPWSIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICAgIDwvSjJFRV9NT0RVTEU+DQorICAgICAgPEoyRUVfTU9EVUxFIERFUExPWU1FTlRfU09VUkNFX05BTUU9ImV4cGxvZGVkIj4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iQ09OVEVYVF9QQVRIIiB2YWx1ZT0iLyIgLz4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iTU9EVUxFX05BTUUiIHZhbHVlPSJtZW51IiAvPg0KKyAgICAgICAgPG9wdGlvbiBuYW1lPSJERVBMT1kiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgICA8L0oyRUVfTU9EVUxFPg0KKyAgICAgIDxKMkVFX01PRFVMRSBERVBMT1lNRU5UX1NPVVJDRV9OQU1FPSJleHBsb2RlZCI+DQorICAgICAgICA8b3B0aW9uIG5hbWU9IkNPTlRFWFRfUEFUSCIgdmFsdWU9Ii8iIC8+DQorICAgICAgICA8b3B0aW9uIG5hbWU9Ik1PRFVMRV9OQU1FIiB2YWx1ZT0icmVnaXN0ZXIyIiAvPg0KKyAgICAgICAgPG9wdGlvbiBuYW1lPSJERVBMT1kiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgICA8L0oyRUVfTU9EVUxFPg0KKyAgICAgIDxKMkVFX01PRFVMRSBERVBMT1lNRU5UX1NPVVJDRV9OQU1FPSJleHBsb2RlZCI+DQorICAgICAgICA8b3B0aW9uIG5hbWU9IkNPTlRFWFRfUEFUSCIgdmFsdWU9Ii8iIC8+DQorICAgICAgICA8b3B0aW9uIG5hbWU9Ik1PRFVMRV9OQU1FIiB2YWx1ZT0ibG9nb3V0IiAvPg0KKyAgICAgICAgPG9wdGlvbiBuYW1lPSJERVBMT1kiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgICA8L0oyRUVfTU9EVUxFPg0KKyAgICAgIDxKMkVFX01PRFVMRSBERVBMT1lNRU5UX1NPVVJDRV9OQU1FPSJleHBsb2RlZCI+DQorICAgICAgICA8b3B0aW9uIG5hbWU9IkNPTlRFWFRfUEFUSCIgdmFsdWU9Ii8iIC8+DQorICAgICAgICA8b3B0aW9uIG5hbWU9Ik1PRFVMRV9OQU1FIiB2YWx1ZT0ibG9jYWxpemUiIC8+DQorICAgICAgICA8b3B0aW9uIG5hbWU9IkRFUExPWSIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICAgIDwvSjJFRV9NT0RVTEU+DQorICAgICAgPEoyRUVfTU9EVUxFIERFUExPWU1FTlRfU09VUkNFX05BTUU9ImV4cGxvZGVkIj4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iQ09OVEVYVF9QQVRIIiB2YWx1ZT0iLyIgLz4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iTU9EVUxFX05BTUUiIHZhbHVlPSJyZWdpc3RlciIgLz4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iREVQTE9ZIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgICAgPC9KMkVFX01PRFVMRT4NCisgICAgICA8b3B0aW9uIG5hbWU9IkRFUExPWV9UT01DQVRfTUFOQUdFUiIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICAgIDxvcHRpb24gbmFtZT0iQkFTRV9ESVJFQ1RPUllfTkFNRSIgdmFsdWU9InRvbWNhdF9Vbm5hbWVkXzdmZWZkMzgxIiAvPg0KKyAgICAgIDxwcmVkZWZpbmVkX2xvZ19maWxlIGlkPSJUT01DQVRfTE9DQUxIT1NUX0xPR19JRCIgZW5hYmxlZD0idHJ1ZSIgLz4NCisgICAgICA8UnVubmVyU2V0dGluZ3MgUnVubmVySWQ9IkRlYnVnIj4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iREVCVUdfUE9SVCIgdmFsdWU9IjM3ODEiIC8+DQorICAgICAgICA8b3B0aW9uIG5hbWU9IlRSQU5TUE9SVCIgdmFsdWU9IjAiIC8+DQorICAgICAgICA8b3B0aW9uIG5hbWU9IkxPQ0FMIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgICA8L1J1bm5lclNldHRpbmdzPg0KKyAgICAgIDxSdW5uZXJTZXR0aW5ncyBSdW5uZXJJZD0iUnVuIiAvPg0KKyAgICAgIDxDb25maWd1cmF0aW9uV3JhcHBlciBWTV9WQVI9IkpBVkFfT1BUUyIgUnVubmVySWQ9IkRlYnVnIj4NCisgICAgICAgIDxvcHRpb24gbmFtZT0iVVNFX0VOVl9WQVJJQUJMRVMiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICAgICAgPFNUQVJUVVA+DQorICAgICAgICAgIDxvcHRpb24gbmFtZT0iVVNFX0RFRkFVTFQiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICAgICAgICA8b3B0aW9uIG5hbWU9IlNDUklQVCIgdmFsdWU9IkM6XG9wdFxBcGFjaGVcVG9tY2F0LTUuNVxiaW5cY2F0YWxpbmEuYmF0IiAvPg0KKyAgICAgICAgICA8b3B0aW9uIG5hbWU9IlZNX1BBUkFNRVRFUlMiIHZhbHVlPSIiIC8+DQorICAgICAgICAgIDxvcHRpb24gbmFtZT0iUFJPR1JBTV9QQVJBTUVURVJTIiB2YWx1ZT0iIHJ1biIgLz4NCisgICAgICAgIDwvU1RBUlRVUD4NCisgICAgICAgIDxTSFVURE9XTj4NCisgICAgICAgICAgPG9wdGlvbiBuYW1lPSJVU0VfREVGQVVMVCIgdmFsdWU9InRydWUiIC8+DQorICAgICAgICAgIDxvcHRpb24gbmFtZT0iU0NSSVBUIiB2YWx1ZT0iQzpcb3B0XEFwYWNoZVxUb21jYXQtNS41XGJpblxjYXRhbGluYS5iYXQiIC8+DQorICAgICAgICAgIDxvcHRpb24gbmFtZT0iVk1fUEFSQU1FVEVSUyIgdmFsdWU9IiIgLz4NCisgICAgICAgICAgPG9wdGlvbiBuYW1lPSJQUk9HUkFNX1BBUkFNRVRFUlMiIHZhbHVlPSIgc3RvcCIgLz4NCisgICAgICAgIDwvU0hVVERPV04+DQorICAgICAgPC9Db25maWd1cmF0aW9uV3JhcHBlcj4NCisgICAgICA8Q29uZmlndXJhdGlvbldyYXBwZXIgVk1fVkFSPSJKQVZBX09QVFMiIFJ1bm5lcklkPSJSdW4iPg0KKyAgICAgICAgPG9wdGlvbiBuYW1lPSJVU0VfRU5WX1ZBUklBQkxFUyIgdmFsdWU9InRydWUiIC8+DQorICAgICAgICA8U1RBUlRVUD4NCisgICAgICAgICAgPG9wdGlvbiBuYW1lPSJVU0VfREVGQVVMVCIgdmFsdWU9InRydWUiIC8+DQorICAgICAgICAgIDxvcHRpb24gbmFtZT0iU0NSSVBUIiB2YWx1ZT0iQzpcb3B0XEFwYWNoZVxUb21jYXQtNS41XGJpblxjYXRhbGluYS5iYXQiIC8+DQorICAgICAgICAgIDxvcHRpb24gbmFtZT0iVk1fUEFSQU1FVEVSUyIgdmFsdWU9IiIgLz4NCisgICAgICAgICAgPG9wdGlvbiBuYW1lPSJQUk9HUkFNX1BBUkFNRVRFUlMiIHZhbHVlPSIgcnVuIiAvPg0KKyAgICAgICAgPC9TVEFSVFVQPg0KKyAgICAgICAgPFNIVVRET1dOPg0KKyAgICAgICAgICA8b3B0aW9uIG5hbWU9IlVTRV9ERUZBVUxUIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgICAgICAgPG9wdGlvbiBuYW1lPSJTQ1JJUFQiIHZhbHVlPSJDOlxvcHRcQXBhY2hlXFRvbWNhdC01LjVcYmluXGNhdGFsaW5hLmJhdCIgLz4NCisgICAgICAgICAgPG9wdGlvbiBuYW1lPSJWTV9QQVJBTUVURVJTIiB2YWx1ZT0iIiAvPg0KKyAgICAgICAgICA8b3B0aW9uIG5hbWU9IlBST0dSQU1fUEFSQU1FVEVSUyIgdmFsdWU9IiBzdG9wIiAvPg0KKyAgICAgICAgPC9TSFVURE9XTj4NCisgICAgICA8L0NvbmZpZ3VyYXRpb25XcmFwcGVyPg0KKyAgICAgIDxtZXRob2Q+DQorICAgICAgICA8b3B0aW9uIG5hbWU9Ik1ha2UiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICAgIDwvbWV0aG9kPg0KKyAgICA8L2NvbmZpZ3VyYXRpb24+DQorICA8L2NvbXBvbmVudD4NCisgIDxjb21wb25lbnQgbmFtZT0iUm1pY1NldHRpbmdzIj4NCisgICAgPG9wdGlvbiBuYW1lPSJJU19FQU5BQkxFRCIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9IkRFQlVHR0lOR19JTkZPIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgPG9wdGlvbiBuYW1lPSJHRU5FUkFURV9OT19XQVJOSU5HUyIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8b3B0aW9uIG5hbWU9IkdFTkVSQVRFX0lJT1BfU1RVQlMiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPG9wdGlvbiBuYW1lPSJBRERJVElPTkFMX09QVElPTlNfU1RSSU5HIiB2YWx1ZT0iIiAvPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IlN0YXJ0ZWFtVmNzQWRhcHRlciIgLz4NCisgIDxjb21wb25lbnQgbmFtZT0iVnNzVmNzIiAvPg0KKyAgPGNvbXBvbmVudCBuYW1lPSJjb20uaW50ZWxsaWouanNmLlVzZXJEZWZpbmVkRmFjZXNDb25maWdzIj4NCisgICAgPG9wdGlvbiBuYW1lPSJVU0VSX0RFRklORURfQ09ORklHUyI+DQorICAgICAgPHZhbHVlPg0KKyAgICAgICAgPGxpc3Qgc2l6ZT0iMCIgLz4NCisgICAgICA8L3ZhbHVlPg0KKyAgICA8L29wdGlvbj4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJsaWJyYXJ5VGFibGUiPg0KKyAgICA8bGlicmFyeSBuYW1lPSJTdHJ1dHMyIj4NCisgICAgICA8Q0xBU1NFUz4NCisgICAgICAgIDxyb290IHVybD0iamFyOi8vJFBST0pFQ1RfRElSJC9saWIvc3RydXRzLWNvcmUtMS4zLjUuamFyIS8iIC8+DQorICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRQUk9KRUNUX0RJUiQvbGliL3N0cnV0czItYXBpLTIuMC4zLmphciEvIiAvPg0KKyAgICAgICAgPHJvb3QgdXJsPSJqYXI6Ly8kUFJPSkVDVF9ESVIkL2xpYi9vZ25sLTIuNi45LmphciEvIiAvPg0KKyAgICAgICAgPHJvb3QgdXJsPSJqYXI6Ly8kUFJPSkVDVF9ESVIkL2xpYi9jb21tb25zLWxvZ2dpbmctMS4wLjQuamFyIS8iIC8+DQorICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRQUk9KRUNUX0RJUiQvbGliL3h3b3JrLTIuMC4wLmphciEvIiAvPg0KKyAgICAgICAgPHJvb3QgdXJsPSJqYXI6Ly8kUFJPSkVDVF9ESVIkL2xpYi9zdHJ1dHMyLWNvcmUtMi4wLjMuamFyIS8iIC8+DQorICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRQUk9KRUNUX0RJUiQvbGliL2ZyZWVtYXJrZXItMi0zLTguamFyIS8iIC8+DQorICAgICAgPC9DTEFTU0VTPg0KKyAgICAgIDxKQVZBRE9DIC8+DQorICAgICAgPFNPVVJDRVMgLz4NCisgICAgPC9saWJyYXJ5Pg0KKyAgICA8bGlicmFyeSBuYW1lPSJNYWlscmVhZGVyLWRhbyI+DQorICAgICAgPENMQVNTRVM+DQorICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRQUk9KRUNUX0RJUiQvbGliL3NpdGVtZXNoLTIuMi5qYXIhLyIgLz4NCisgICAgICAgIDxyb290IHVybD0iamFyOi8vJFBST0pFQ1RfRElSJC9saWIvc3RydXRzLW1haWxyZWFkZXItZGFvLTEuMy41LmphciEvIiAvPg0KKyAgICAgICAgPHJvb3QgdXJsPSJqYXI6Ly8kUFJPSkVDVF9ESVIkL2xpYi9vc2NvcmUuamFyIS8iIC8+DQorICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRQUk9KRUNUX0RJUiQvbGliL2NvbW1vbnMtZGlnZXN0ZXItMS42LmphciEvIiAvPg0KKyAgICAgICAgPHJvb3QgdXJsPSJqYXI6Ly8kUFJPSkVDVF9ESVIkL2xpYi9jb21tb25zLWNvbGxlY3Rpb25zLTMuMS5qYXIhLyIgLz4NCisgICAgICA8L0NMQVNTRVM+DQorICAgICAgPEpBVkFET0MgLz4NCisgICAgICA8U09VUkNFUyAvPg0KKyAgICA8L2xpYnJhcnk+DQorICAgIDxsaWJyYXJ5IG5hbWU9IlN0cnV0czEiPg0KKyAgICAgIDxDTEFTU0VTPg0KKyAgICAgICAgPHJvb3QgdXJsPSJqYXI6Ly8kUFJPSkVDVF9ESVIkL2xpYi9vcm8tMi4wLjguamFyIS8iIC8+DQorICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRQUk9KRUNUX0RJUiQvbGliL2NvbW1vbnMtY29sbGVjdGlvbnMtMy4xLmphciEvIiAvPg0KKyAgICAgICAgPHJvb3QgdXJsPSJqYXI6Ly8kUFJPSkVDVF9ESVIkL2xpYi9jb21tb25zLWJlYW51dGlscy0xLjYuamFyIS8iIC8+DQorICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRQUk9KRUNUX0RJUiQvbGliL3N0cnV0cy1jb3JlLTEuMy41LmphciEvIiAvPg0KKyAgICAgICAgPHJvb3QgdXJsPSJqYXI6Ly8kUFJPSkVDVF9ESVIkL2xpYi9jb21tb25zLWNoYWluLTEuMS5qYXIhLyIgLz4NCisgICAgICAgIDxyb290IHVybD0iamFyOi8vJFBST0pFQ1RfRElSJC9saWIvY29tbW9ucy1sb2dnaW5nLTEuMC40LmphciEvIiAvPg0KKyAgICAgICAgPHJvb3QgdXJsPSJqYXI6Ly8kUFJPSkVDVF9ESVIkL2xpYi9jb21tb25zLWRpZ2VzdGVyLTEuNi5qYXIhLyIgLz4NCisgICAgICAgIDxyb290IHVybD0iamFyOi8vJFBST0pFQ1RfRElSJC9saWIvY29tbW9ucy12YWxpZGF0b3ItMS4zLjAuamFyIS8iIC8+DQorICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRQUk9KRUNUX0RJUiQvbGliL2FudGxyLTIuNy4yLmphciEvIiAvPg0KKyAgICAgICAgPHJvb3QgdXJsPSJqYXI6Ly8kUFJPSkVDVF9ESVIkL2xpYi9zdHJ1dHMtdGFnbGliLTEuMy41LmphciEvIiAvPg0KKyAgICAgIDwvQ0xBU1NFUz4NCisgICAgICA8SkFWQURPQyAvPg0KKyAgICAgIDxTT1VSQ0VTIC8+DQorICAgIDwvbGlicmFyeT4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJ1aWRlc2lnbmVyLWNvbmZpZ3VyYXRpb24iPg0KKyAgICA8b3B0aW9uIG5hbWU9IklOU1RSVU1FTlRfQ0xBU1NFUyIgdmFsdWU9InRydWUiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iQ09QWV9GT1JNU19SVU5USU1FX1RPX09VVFBVVCIgdmFsdWU9InRydWUiIC8+DQorICAgIDxvcHRpb24gbmFtZT0iREVGQVVMVF9MQVlPVVRfTUFOQUdFUiIgdmFsdWU9IkdyaWRMYXlvdXRNYW5hZ2VyIiAvPg0KKyAgPC9jb21wb25lbnQ+DQorICA8VXNlZFBhdGhNYWNyb3MgLz4NCis8L3Byb2plY3Q+DQorDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L01FVEEtSU5GL2NvbnRleHQueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L01FVEEtSU5GL2NvbnRleHQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMGI1ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvTUVUQS1JTkYvY29udGV4dC54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPENvbnRleHQgcGF0aD0iLyI+Cis8L0NvbnRleHQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvbWVudS5pbWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvbWVudS5pbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTYwZTVkNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9tZW51LmltbApAQCAtMCwwICsxLDY4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxtb2R1bGUgdmVyc2lvbj0iNCIgcmVsYXRpdmVQYXRocz0idHJ1ZSIgdHlwZT0iSjJFRV9XRUJfTU9EVUxFIiBqMmVlLWludGVncmF0aW9uPSJUb21jYXQgU2VydmVyIj4NCisgIDxjb21wb25lbnQgbmFtZT0iQXBwU2VydmVyU3BlY2lmaWNWYWxpZGF0b3JzTWFuYWdlciIgLz4NCisgIDxjb21wb25lbnQgbmFtZT0iTW9kdWxlUm9vdE1hbmFnZXIiIC8+DQorICA8Y29tcG9uZW50IG5hbWU9Ik5ld01vZHVsZVJvb3RNYW5hZ2VyIiBpbmhlcml0LWNvbXBpbGVyLW91dHB1dD0iZmFsc2UiPg0KKyAgICA8b3V0cHV0IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy9tZW51L1dFQi1JTkYvY2xhc3NlcyIgLz4NCisgICAgPGV4Y2x1ZGUtb3V0cHV0IC8+DQorICAgIDxleHBsb2RlZCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvbWVudSIgLz4NCisgICAgPGV4Y2x1ZGUtZXhwbG9kZWQgLz4NCisgICAgPGNvbnRlbnQgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkIj4NCisgICAgICA8c291cmNlRm9sZGVyIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvamF2YSIgaXNUZXN0U291cmNlPSJmYWxzZSIgLz4NCisgICAgICA8c291cmNlRm9sZGVyIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvdGVzdCIgaXNUZXN0U291cmNlPSJ0cnVlIiAvPg0KKyAgICA8L2NvbnRlbnQ+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImluaGVyaXRlZEpkayIgLz4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ic291cmNlRm9sZGVyIiBmb3JUZXN0cz0iZmFsc2UiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImxpYnJhcnkiIG5hbWU9IlN0cnV0czIiIGxldmVsPSJwcm9qZWN0IiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJNYWlscmVhZGVyLWRhbyIgbGV2ZWw9InByb2plY3QiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImxpYnJhcnkiIG5hbWU9InNlcnZsZXQtYXBpIiBsZXZlbD0iYXBwbGljYXRpb24iIC8+DQorICAgIDxvcmRlckVudHJ5UHJvcGVydGllcyAvPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IldlYk1vZHVsZUJ1aWxkQ29tcG9uZW50Ij4NCisgICAgPHNldHRpbmcgbmFtZT0iRVhQTE9ERURfVVJMIiB2YWx1ZT0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy9tZW51IiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJFWFBMT0RFRF9FTkFCTEVEIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iSkFSX1VSTCIgdmFsdWU9ImZpbGU6Ly8iIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkpBUl9FTkFCTEVEIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IlNZTkNfRVhQTE9ERURfRElSIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iQlVJTERfTU9EVUxFX09OX0ZSQU1FX0RFQUNUSVZBVElPTiIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJCVUlMRF9FWFRFUk5BTF9ERVBFTkRFTkNJRVMiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iUlVOX0pBU1BFUl9WQUxJREFUSU9OIiB2YWx1ZT0iZmFsc2UiIC8+DQorICA8L2NvbXBvbmVudD4NCisgIDxjb21wb25lbnQgbmFtZT0iV2ViTW9kdWxlUHJvcGVydGllcyI+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMSIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9Ii9XRUItSU5GL2xpYiIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIj4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjAiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSImbHQ7Ti9BJmd0OyIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJNYWlscmVhZGVyLWRhbyIgbGV2ZWw9InByb2plY3QiPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMSIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9Ii9XRUItSU5GL2xpYiIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJzZXJ2bGV0LWFwaSIgbGV2ZWw9ImFwcGxpY2F0aW9uIj4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjAiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSImbHQ7Ti9BJmd0OyIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJTdHJ1dHMyIiBsZXZlbD0icHJvamVjdCI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSJ3ZWIueG1sIiB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwiIG9wdGlvbmFsPSJmYWxzZSIgdmVyc2lvbj0iMi4zIiAvPg0KKyAgICA8ZGVwbG95bWVudERlc2NyaXB0b3IgbmFtZT0iY29udGV4dC54bWwiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9NRVRBLUlORi9jb250ZXh0LnhtbCIgb3B0aW9uYWw9ImZhbHNlIiB2ZXJzaW9uPSI1LngiIC8+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSIiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9NRVRBLUlORi9jb250ZXh0LnhtbCIgb3B0aW9uYWw9ImZhbHNlIj4NCisgICAgICA8b3B0aW9uIG5hbWU9IkRFRkFVTFRfRElSIiB2YWx1ZT0iV0VCLUlORiIgLz4NCisgICAgICA8b3B0aW9uIG5hbWU9Ik5BTUUiIHZhbHVlPSIiIC8+DQorICAgICAgPG9wdGlvbiBuYW1lPSJERVNDUklQVElPTiIgdmFsdWU9IiIgLz4NCisgICAgPC9kZXBsb3ltZW50RGVzY3JpcHRvcj4NCisgICAgPHdlYnJvb3RzPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvd2ViYXBwIiByZWxhdGl2ZT0iLyIgLz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL2phdmEiIHJlbGF0aXZlPSIvV0VCLUlORi9zcmMvamF2YSIgLz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3Rlc3QiIHJlbGF0aXZlPSIvV0VCLUlORi9zcmMvdGVzdCIgLz4NCisgICAgPC93ZWJyb290cz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJsb2dpY1dlYk1vZHVsZVByb3BlcnRpZXMiIC8+DQorPC9tb2R1bGU+DQorDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy9qYXZhL0RhdGFiYXNlTGlzdGVuZXIuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvamF2YS9EYXRhYmFzZUxpc3RlbmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZhNjRkOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvamF2YS9EYXRhYmFzZUxpc3RlbmVyLmphdmEKQEAgLTAsMCArMSwyMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMTk5OS0yMDAyLDIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiAkSWQ6IEFwcGxpY2F0aW9uTGlzdGVuZXIuamF2YSAzNzIwODcgMjAwNi0wMS0yNSAwMzozODo0MlogY3JhaWdtY2MgJAorICovCisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLmltcGwubWVtb3J5Lk1lbW9yeVVzZXJEYXRhYmFzZTsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dEV2ZW50OworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHRMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogPHA+PGNvZGU+U2VydmxldENvbnRleHRMaXN0ZW5lcjwvY29kZT4gdGhhdCBpbml0aWFsaXplcyBhbmQgZmluYWxpemVzIHRoZQorICogcGVyc2lzdGVudCBzdG9yYWdlIG9mIFVzZXIgYW5kIFN1YnNjcmlwdGlvbiBpbmZvcm1hdGlvbiBmb3IgdGhlIFN0cnV0cworICogRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbiwgdXNpbmcgYW4gaW4tbWVtb3J5IGRhdGFiYXNlIGJhY2tlZCBieSBhbiBYTUwKKyAqIGZpbGUuPC9wPgorICogPHAvPgorICogPHA+PHN0cm9uZz5JTVBMRU1FTlRBVElPTiBXQVJOSU5HPC9zdHJvbmc+IC0gSWYgdGhpcyB3ZWIgYXBwbGljYXRpb24gaXMgcnVuCisgKiBmcm9tIGEgV0FSIGZpbGUsIG9yIGluIGFub3RoZXIgZW52aXJvbm1lbnQgd2hlcmUgcmVhZGluZyBhbmQgd3JpdGluZyBvZiB0aGUKKyAqIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSBpcyBpbXBvc3NpYmxlLCB0aGUgaW5pdGlhbCBjb250ZW50cyB3aWxsIGJlIGNvcGllZAorICogdG8gYSBmaWxlIGluIHRoZSB3ZWIgYXBwbGljYXRpb24gdGVtcG9yYXJ5IGRpcmVjdG9yeSBwcm92aWRlZCBieSB0aGUKKyAqIGNvbnRhaW5lci4gIFRoaXMgaXMgZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMgb25seSAtIHlvdSBzaG91bGQKKyAqIDxzdHJvbmc+Tk9UPC9zdHJvbmc+IGFzc3VtZSB0aGF0IGZpbGVzIHdyaXR0ZW4gaGVyZSB3aWxsIHN1cnZpdmUgYSByZXN0YXJ0CisgKiBvZiB5b3VyIHNlcnZsZXQgY29udGFpbmVyLjwvcD4KKyAqIDxwLz4KKyAqIDxwPlRoaXMgY2xhc3Mgd2FzIGJvcnJvd2VkIGZyb20gdGhlIFNoYWxlIE1haWxyZWFkZXIuIENoYW5nZXMgd2VyZTo8L3A+CisgKiA8cC8+CisgKiA8dWw+CisgKiA8cC8+CisgKiA8bGk+UGF0aCB0byBkYXRhYmFzZS54bWwgKHVuZGVyIGNsYXNzZXMgaGVyZSkuIDwvbGk+CisgKiA8cC8+CisgKiA8bGk+Q2xhc3MgdG8gc3RvcmUgcHJvdG9jb2wgbGlzdCAoYW4gYXJyYXkgaGVyZSkuIDwvbGk+CisgKiA8cC8+CisgKiA8L3VsPgorICogPHAvPgorICogREVWRUxPUE1FTlQgTk9URSAtIEFub3RoZXIgYXBwcm9hY2ggd291bGQgYmUgdG8gaW5zdGFudGlhdGUgdGhlIGRhdGFiYXNlIHZpYSBTcHJpbmcuCisgKiA8L3A+CisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIERhdGFiYXNlTGlzdGVuZXIgaW1wbGVtZW50cyBTZXJ2bGV0Q29udGV4dExpc3RlbmVyIHsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNYW5pZmVzdCBDb25zdGFudHMKKworCisgICAgLyoqCisgICAgICogPHA+QXBwaWNhdGlvbiBzY29wZSBhdHRyaWJ1dGUga2V5IHVuZGVyIHdoaWNoIHRoZSBpbi1tZW1vcnkgdmVyc2lvbiBvZgorICAgICAqIG91ciBkYXRhYmFzZSBpcyBzdG9yZWQuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFCQVNFX0tFWSA9ICJkYXRhYmFzZSI7CisKKworICAgIC8qKgorICAgICAqIDxwPkFwcGxpY2F0aW9uIHNjb3BlIGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggdGhlIHZhbGlkIHNlbGVjdGlvbgorICAgICAqIGl0ZW1zIGZvciB0aGUgcHJvdG9jb2wgcHJvcGVydHkgaXMgc3RvcmVkLjwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQUk9UT0NPTFNfS0VZID0gInByb3RvY29scyI7CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSW5zdGFuY2UgVmFyaWFibGVzCisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSA8Y29kZT5TZXJ2bGV0Q29udGV4dDwvY29kZT4gZm9yIHRoaXMgd2ViIGFwcGxpY2F0aW9uLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFNlcnZsZXRDb250ZXh0IGNvbnRleHQgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiBUaGUge0BsaW5rIE1lbW9yeVVzZXJEYXRhYmFzZX0gb2JqZWN0IHdlIGNvbnN0cnVjdCBhbmQgbWFrZSBhdmFpbGFibGUuCisgICAgICovCisgICAgcHJpdmF0ZSBNZW1vcnlVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiA8cD5Mb2dnaW5nIG91dHB1dCBmb3IgdGhpcyBwbHVnIGluIGluc3RhbmNlLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyh0aGlzLmdldENsYXNzKCkpOworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm9wZXJ0aWVzCisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCBvZiBvdXIgcGVyc2lzdGVudCBkYXRhYmFzZSBzdG9yYWdlCisgICAgICogZmlsZS48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0aG5hbWUgPSAiL1dFQi1JTkYvY2xhc3Nlcy9kYXRhYmFzZS54bWwiOworCisgICAgLyoqCisgICAgICogPHA+UmV0dXJuIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIHRvIHRoZSBkYXRhYmFzZS48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFwcGxpY2F0aW9uIHJlc291cmNlIHBhdGggcGF0aCB0byB0aGUgZGF0YWJhc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhdGhuYW1lKCkgeworICAgICAgICByZXR1cm4gKHRoaXMucGF0aG5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNldCB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCB0byB0aGUgZGF0YWJhc2UuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHBhdGhuYW1lIHRvIHRoZSBkYXRhYmFzZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhdGhuYW1lKFN0cmluZyBwYXRobmFtZSkgeworICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7CisgICAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNlcnZsZXRDb250ZXh0TGlzdGVuZXIgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiA8cD5HcmFjZWZ1bGx5IHNodXQgZG93biB0aGlzIGRhdGFiYXNlLCByZWxlYXNpbmcgYW55IHJlc291cmNlcyB0aGF0CisgICAgICogd2VyZSBhbGxvY2F0ZWQgYXQgaW5pdGlhbGl6YXRpb24uPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGV2ZW50IFNlcnZsZXRDb250ZXh0RXZlbnQgdG8gcHJvY2VzcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbnRleHREZXN0cm95ZWQoU2VydmxldENvbnRleHRFdmVudCBldmVudCkgeworCisgICAgICAgIGxvZy5pbmZvKCJGaW5hbGl6aW5nIG1lbW9yeSBkYXRhYmFzZSBwbHVnIGluIik7CisKKyAgICAgICAgaWYgKGRhdGFiYXNlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZGF0YWJhc2UuY2xvc2UoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nLmVycm9yKCJDbG9zaW5nIG1lbW9yeSBkYXRhYmFzZSIsIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoREFUQUJBU0VfS0VZKTsKKyAgICAgICAgY29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoUFJPVE9DT0xTX0tFWSk7CisgICAgICAgIGRhdGFiYXNlID0gbnVsbDsKKyAgICAgICAgY29udGV4dCA9IG51bGw7CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIDxwPkluaXRpYWxpemUgYW5kIGxvYWQgb3VyIGluaXRpYWwgZGF0YWJhc2UgZnJvbSBwZXJzaXN0ZW50CisgICAgICogc3RvcmFnZS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIGNvbnRleHQgaW5pdGlhbGl6YXRpb24gZXZlbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb250ZXh0SW5pdGlhbGl6ZWQoU2VydmxldENvbnRleHRFdmVudCBldmVudCkgeworCisgICAgICAgIGxvZy5pbmZvKCJJbml0aWFsaXppbmcgbWVtb3J5IGRhdGFiYXNlIHBsdWcgaW4gZnJvbSAnIiArCisgICAgICAgICAgICAgICAgcGF0aG5hbWUgKyAiJyIpOworCisgICAgICAgIC8vIFJlbWVtYmVyIG91ciBhc3NvY2lhdGVkIFNlcnZsZXRDb250ZXh0CisgICAgICAgIHRoaXMuY29udGV4dCA9IGV2ZW50LmdldFNlcnZsZXRDb250ZXh0KCk7CisKKyAgICAgICAgLy8gQ29uc3RydWN0IGEgbmV3IGRhdGFiYXNlIGFuZCBtYWtlIGl0IGF2YWlsYWJsZQorICAgICAgICBkYXRhYmFzZSA9IG5ldyBNZW1vcnlVc2VyRGF0YWJhc2UoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gY2FsY3VsYXRlUGF0aCgpOworICAgICAgICAgICAgaWYgKGxvZy5pc0RlYnVnRW5hYmxlZCgpKSB7CisgICAgICAgICAgICAgICAgbG9nLmRlYnVnKCIgTG9hZGluZyBkYXRhYmFzZSBmcm9tICciICsgcGF0aCArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkYXRhYmFzZS5zZXRQYXRobmFtZShwYXRoKTsKKyAgICAgICAgICAgIGRhdGFiYXNlLm9wZW4oKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZy5lcnJvcigiT3BlbmluZyBtZW1vcnkgZGF0YWJhc2UiLCBlKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkNhbm5vdCBsb2FkIGRhdGFiYXNlIGZyb20gJyIgKworICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSArICInOiAiICsgZSk7CisgICAgICAgIH0KKyAgICAgICAgY29udGV4dC5zZXRBdHRyaWJ1dGUoREFUQUJBU0VfS0VZLCBkYXRhYmFzZSk7CisKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcml2YXRlIE1ldGhvZHMKKworCisgICAgLyoqCisgICAgICogPHA+Q2FsY3VsYXRlIGFuZCByZXR1cm4gYW4gYWJzb2x1dGUgcGF0aG5hbWUgdG8gdGhlIFhNTCBmaWxlIHRvIGNvbnRhaW4KKyAgICAgKiBvdXIgcGVyc2lzdGVudCBzdG9yYWdlIGluZm9ybWF0aW9uLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gQWJzb2x1dGUgcGF0aCB0byBYTUwgZmlsZS4KKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgY2FsY3VsYXRlUGF0aCgpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIC8vIENhbiB3ZSBhY2Nlc3MgdGhlIGRhdGFiYXNlIHZpYSBmaWxlIEkvTz8KKyAgICAgICAgU3RyaW5nIHBhdGggPSBjb250ZXh0LmdldFJlYWxQYXRoKHBhdGhuYW1lKTsKKyAgICAgICAgaWYgKHBhdGggIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIChwYXRoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERvZXMgYSBjb3B5IG9mIHRoaXMgZmlsZSBhbHJlYWR5IGV4aXN0IGluIG91ciB0ZW1wb3JhcnkgZGlyZWN0b3J5CisgICAgICAgIEZpbGUgZGlyID0gKEZpbGUpCisgICAgICAgICAgICAgICAgY29udGV4dC5nZXRBdHRyaWJ1dGUoImphdmF4LnNlcnZsZXQuY29udGV4dC50ZW1wZGlyIik7CisgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKGRpciwgInN0cnV0cy1leGFtcGxlLWRhdGFiYXNlLnhtbCIpOworICAgICAgICBpZiAoZmlsZS5leGlzdHMoKSkgeworICAgICAgICAgICAgcmV0dXJuIChmaWxlLmdldEFic29sdXRlUGF0aCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvcHkgdGhlIHN0YXRpYyByZXNvdXJjZSB0byBhIHRlbXBvcmFyeSBmaWxlIGFuZCByZXR1cm4gaXRzIHBhdGgKKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPQorICAgICAgICAgICAgICAgIGNvbnRleHQuZ2V0UmVzb3VyY2VBc1N0cmVhbShwYXRobmFtZSk7CisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYmlzID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaXMsIDEwMjQpOworICAgICAgICBGaWxlT3V0cHV0U3RyZWFtIG9zID0KKyAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlKTsKKyAgICAgICAgQnVmZmVyZWRPdXRwdXRTdHJlYW0gYm9zID0gbmV3IEJ1ZmZlcmVkT3V0cHV0U3RyZWFtKG9zLCAxMDI0KTsKKyAgICAgICAgYnl0ZSBidWZmZXJbXSA9IG5ldyBieXRlWzEwMjRdOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IG4gPSBiaXMucmVhZChidWZmZXIpOworICAgICAgICAgICAgaWYgKG4gPD0gMCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9zLndyaXRlKGJ1ZmZlciwgMCwgbik7CisgICAgICAgIH0KKyAgICAgICAgYm9zLmNsb3NlKCk7CisgICAgICAgIGJpcy5jbG9zZSgpOworICAgICAgICByZXR1cm4gKGZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpOworCisgICAgfQorCisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvamF2YS9IZWxsby5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy9qYXZhL0hlbGxvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JkMzUwNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvamF2YS9IZWxsby5qYXZhCkBAIC0wLDAgKzEsMTYgQEAKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25TdXBwb3J0OworCisvKioKKyAqIEV4YW1wbGUgQWN0aW9uIGNsYXNzLgorICovCitwdWJsaWMgY2xhc3MgSGVsbG8gZXh0ZW5kcyBBY3Rpb25TdXBwb3J0IHsKKworICAgIC8qKgorICAgICAqIEFuIGV4YW1wbGUgaW1wbGVtZW50YXRpb24gdGhhdCBkb2VzIG5vdGhpbmcgYW5kIHJldHVybnMgInN1Y2Nlc3MiLgorICAgICAqCisgICAgICogQHJldHVybiB7QGxpbmsgI1NVQ0NFU1N9CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvamF2YS9NYWlsUmVhZGVyU3VwcG9ydC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy9qYXZhL01haWxSZWFkZXJTdXBwb3J0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzhlZmNiNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvamF2YS9NYWlsUmVhZGVyU3VwcG9ydC5qYXZhCkBAIC0wLDAgKzEsMTQxIEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS51dGlsLkJlYW5VdGlsczsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25TdXBwb3J0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXJEYXRhYmFzZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuaW50ZXJjZXB0b3IuQXBwbGljYXRpb25Bd2FyZTsKKworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK3B1YmxpYyBjbGFzcyBNYWlsUmVhZGVyU3VwcG9ydCBleHRlbmRzIEFjdGlvblN1cHBvcnQgaW1wbGVtZW50cyBBcHBsaWNhdGlvbkF3YXJlIHsKKworICAgIC8vIC0tLS0gUmVnaXN0ZXIgZm9ybSBwcm9wZXJ0aWVzIC0tLS0KKworICAgIHByaXZhdGUgU3RyaW5nIHVzZXJuYW1lID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VXNlcm5hbWUoKSB7CisgICAgICAgIHJldHVybiB1c2VybmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVc2VybmFtZShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgdXNlcm5hbWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBwYXNzd29yZCA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkKCkgeworICAgICAgICByZXR1cm4gcGFzc3dvcmQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UGFzc3dvcmQoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHBhc3N3b3JkID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQyID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGFzc3dvcmQyKCkgeworICAgICAgICByZXR1cm4gcGFzc3dvcmQyOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFBhc3N3b3JkMihTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcGFzc3dvcmQyID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgZnVsbE5hbWUgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRGdWxsTmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGZ1bGxOYW1lOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEZ1bGxOYW1lKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBmdWxsTmFtZSA9IHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIGZyb21BZGRyZXNzID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RnJvbUFkZHJlc3MoKSB7CisgICAgICAgIHJldHVybiBmcm9tQWRkcmVzczsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRGcm9tQWRkcmVzcyhTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgZnJvbUFkZHJlc3MgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyByZXBseVRvQWRkcmVzcyA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFJlcGx5VG9BZGRyZXNzKCkgeworICAgICAgICByZXR1cm4gcmVwbHlUb0FkZHJlc3M7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UmVwbHlUb0FkZHJlc3MoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHJlcGx5VG9BZGRyZXNzID0gdmFsdWU7CisgICAgfQorCisgICAgLy8gLS0tLSBLZXlzIC0tLS0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFCQVNFX0tFWSA9ICJkYXRhYmFzZSI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBVU0VSX0tFWSA9ICJ1c2VyIjsKKworICAgIC8vIC0tLS0gTWVzc2FnZXMgLS0tLQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfREFUQUJBU0VfTUlTU0lORyA9CisgICAgICAgICAgICAiRGF0YWJhc2UgaXMgbWlzc2luZyI7CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBFUlJPUl9VU0VSTkFNRV9VTklRVUUgPQorICAgICAgICAgICAgIlRoYXQgdXNlcm5hbWUgaXMgYWxyZWFkeSBpbiB1c2UgLSBwbGVhc2Ugc2VsZWN0IGFub3RoZXIiOworCisgICAgLy8gLS0tLSBBcHBsaWNhdGlvbkF3YXJlIC0tLS0KKworICAgIHByaXZhdGUgTWFwIGFwcGxpY2F0aW9uOworCisgICAgcHVibGljIHZvaWQgc2V0QXBwbGljYXRpb24oTWFwIHZhbHVlKSB7CisgICAgICAgIGFwcGxpY2F0aW9uID0gdmFsdWU7CisgICAgfQorCisgICAgcHVibGljIE1hcCBnZXRBcHBsaWNhdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGFwcGxpY2F0aW9uOworICAgIH0KKworICAgIC8vIC0tLS0gRGF0YWJhc2UgcHJvcGVydHkgLS0tLQorCisgICAgcHVibGljIFVzZXJEYXRhYmFzZSBnZXREYXRhYmFzZSgpIHsKKyAgICAgICAgT2JqZWN0IGRiID0gZ2V0QXBwbGljYXRpb24oKS5nZXQoREFUQUJBU0VfS0VZKTsKKyAgICAgICAgaWYgKGRiID09IG51bGwpIHsKKyAgICAgICAgICAgIHRoaXMuYWRkQWN0aW9uRXJyb3IoRVJST1JfREFUQUJBU0VfTUlTU0lORyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChVc2VyRGF0YWJhc2UpIGRiOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldERhdGFiYXNlKFVzZXJEYXRhYmFzZSBkYXRhYmFzZSkgeworICAgICAgICBnZXRBcHBsaWNhdGlvbigpLnB1dChEQVRBQkFTRV9LRVksIGRhdGFiYXNlKTsKKyAgICB9CisKKyAgICAvLyAtLS0tIERhdGFiYXNlIG1ldGhvZHMgLS0tLQorCisgICAgcHVibGljIFVzZXIgZmluZFVzZXIoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpCisgICAgICAgICAgICB0aHJvd3MgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGFiYXNlKCkuZmluZFVzZXIodXNlcm5hbWUpOworICAgIH0KKworICAgIHB1YmxpYyBVc2VyIGNyZWF0ZVVzZXIoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIFVzZXJEYXRhYmFzZSBkYXRhYmFzZSA9IGdldERhdGFiYXNlKCk7CisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmZpbmRVc2VyKHVzZXJuYW1lKTsKKworICAgICAgICBpZiAodXNlciAhPSBudWxsKSB7CisgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihFUlJPUl9VU0VSTkFNRV9VTklRVUUpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcih1c2VybmFtZSk7CisgICAgICAgIEJlYW5VdGlscy5zZXRWYWx1ZXModXNlciwgdGhpcywgbnVsbCk7CisKKyAgICAgICAgcmV0dXJuIHVzZXI7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2F2ZVVzZXIoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZ2V0RGF0YWJhc2UoKS5zYXZlKCk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL2phdmEvUmVnaXN0ZXItdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL2phdmEvUmVnaXN0ZXItdmFsaWRhdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjI5ZTEzMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvamF2YS9SZWdpc3Rlci12YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4KKworPHZhbGlkYXRvcnM+CisKKyAgICA8ZmllbGQgbmFtZT0idXNlcm5hbWUiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlPlVzZXJuYW1lIGlzIHJlcXVpcmVkPC9tZXNzYWdlPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCisgICAgPGZpZWxkIG5hbWU9ImZ1bGxOYW1lIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZT5GdWxsIE5hbWUgaXMgcmVxdWlyZWQ8L21lc3NhZ2U+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKyAgICA8ZmllbGQgbmFtZT0iZnJvbUFkZHJlc3MiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlPkZyb20gQWRkcmVzcyBpcyByZXF1aXJlZDwvbWVzc2FnZT4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0iZW1haWwiPgorICAgICAgICAgICAgPG1lc3NhZ2U+SW52YWxpZCBmb3JtYXQgZm9yIEZyb20gQWRkcmVzczwvbWVzc2FnZT4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworICAgIDxmaWVsZCBuYW1lPSJyZXBseVRvQWRkcmVzcyI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0iZW1haWwiPgorICAgICAgICAgICAgPG1lc3NhZ2U+SW52YWxpZCBmb3JtYXQgZm9yIFJlcGx5IFRvIEFkZHJlc3M8L21lc3NhZ2U+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKyAgICA8ZmllbGQgbmFtZT0icGFzc3dvcmQiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlPlBhc3N3b3JkIGlzIHJlcXVpcmVkPC9tZXNzYWdlPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJzdHJpbmdsZW5ndGgiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9InRyaW0iPnRydWU8L3BhcmFtPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbkxlbmd0aCI+NDwvcGFyYW0+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWF4TGVuZ3RoIj4xMDwvcGFyYW0+CisgICAgICAgICAgICA8bWVzc2FnZT5QYXNzd29yZCBsZW5ndGggaXMgbm90IGluIHRoZSByYW5nZSA0IHRocm91Z2ggMTAuPC9tZXNzYWdlPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCisgICAgPGZpZWxkIG5hbWU9InBhc3N3b3JkMiI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPgorICAgICAgICAgICAgPG1lc3NhZ2U+Q29uZmlybWF0aW9uIHBhc3N3b3JkIGlzIHJlcXVpcmVkPC9tZXNzYWdlPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCisgICAgPHZhbGlkYXRvciB0eXBlPSJleHByZXNzaW9uIj4KKyAgICAgICAgPHBhcmFtIG5hbWU9ImV4cHJlc3Npb24iPnBhc3N3b3JkIGVxIHBhc3N3b3JkMjwvcGFyYW0+CisgICAgICAgIDxtZXNzYWdlPkludmFsaWQgdXNlcm5hbWUgYW5kL29yIHBhc3N3b3JkLCBwbGVhc2UgdHJ5IGFnYWluPC9tZXNzYWdlPgorICAgIDwvdmFsaWRhdG9yPgorCis8L3ZhbGlkYXRvcnM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL2phdmEvUmVnaXN0ZXIuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvamF2YS9SZWdpc3Rlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzMzczMzAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL2phdmEvUmVnaXN0ZXIuamF2YQpAQCAtMCwwICsxLDIzIEBACitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworCitwdWJsaWMgY2xhc3MgUmVnaXN0ZXIgZXh0ZW5kcyBNYWlsUmVhZGVyU3VwcG9ydCB7CisKKyAgICBwdWJsaWMgU3RyaW5nIHNhdmUoKQorICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgVXNlciB1c2VyID0gZmluZFVzZXIoZ2V0VXNlcm5hbWUoKSwgZ2V0UGFzc3dvcmQoKSk7CisgICAgICAgIGJvb2xlYW4gaGF2ZVVzZXIgPSAodXNlciAhPSBudWxsKTsKKworICAgICAgICBpZiAoaGF2ZVVzZXIpIHsKKyAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKEVSUk9SX1VTRVJOQU1FX1VOSVFVRSk7CisgICAgICAgICAgICByZXR1cm4gSU5QVVQ7CisgICAgICAgIH0KKworICAgICAgICBjcmVhdGVVc2VyKGdldFVzZXJuYW1lKCksIGdldFBhc3N3b3JkKCkpOworCisgICAgICAgIHNhdmVVc2VyKCk7CisKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL2phdmEvZGF0YWJhc2UueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy9qYXZhL2RhdGFiYXNlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYmM4MzNkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy9qYXZhL2RhdGFiYXNlLnhtbApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPScxLjAnPz4KKzxkYXRhYmFzZT4KKyAgICA8dXNlciB1c2VybmFtZT0idXNlciIgZnJvbUFkZHJlc3M9IkpvaG4uVXNlckBzb21ld2hlcmUuY29tIgorICAgICAgICAgIGZ1bGxOYW1lPSJKb2huIFEuIFVzZXIiIHBhc3N3b3JkPSJwYXNzIj4KKyAgICAgICAgPHN1YnNjcmlwdGlvbiBob3N0PSJtYWlsLmhvdG1haWwuY29tIiBhdXRvQ29ubmVjdD0iZmFsc2UiCisgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ9ImJhciIgdHlwZT0icG9wMyIgdXNlcm5hbWU9InVzZXIxMjM0Ij4KKyAgICAgICAgPC9zdWJzY3JpcHRpb24+CisgICAgICAgIDxzdWJzY3JpcHRpb24gaG9zdD0ibWFpbC55YWhvby5jb20iIGF1dG9Db25uZWN0PSJmYWxzZSIgcGFzc3dvcmQ9ImZvbyIKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJpbWFwIiB1c2VybmFtZT0ianF1c2VyIj4KKyAgICAgICAgPC9zdWJzY3JpcHRpb24+CisgICAgPC91c2VyPgorPC9kYXRhYmFzZT4KKyAgICAgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy9qYXZhL3Jlc291cmNlcy5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy9qYXZhL3Jlc291cmNlcy5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmYWFlYzcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL2phdmEvcmVzb3VyY2VzLnByb3BlcnRpZXMKQEAgLTAsMCArMSwyIEBACitoZWxsby5tZXNzYWdlID0gQ29uZ3JhdHVsYXRpb25zISBTdHJ1dHMgaXMgdXAgYW5kIHJ1bm5pbmcgLi4uCisjIEFkZCB5b3VyIG1lc3NhZ2VzIGhlcmUgLi4uCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL2phdmEvc3RydXRzLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvamF2YS9zdHJ1dHMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3OGFjMTUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL2phdmEvc3RydXRzLnhtbApAQCAtMCwwICsxLDQwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4KKzwhRE9DVFlQRSBzdHJ1dHMgUFVCTElDCisgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDIuMC8vRU4iCisgICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtMi4wLmR0ZCI+CisKKzxzdHJ1dHM+CisgICAgPGNvbnN0YW50IG5hbWU9InN0cnV0cy5kZXZNb2RlIiB2YWx1ZT0idHJ1ZSIvPgorICAgIDxjb25zdGFudCBuYW1lPSJzdHJ1dHMuZW5hYmxlLkR5bmFtaWNNZXRob2RJbnZvY2F0aW9uIiB2YWx1ZT0iZmFsc2UiLz4KKworICAgIDxwYWNrYWdlIG5hbWU9ImRlZmF1bHQiIGV4dGVuZHM9InN0cnV0cy1kZWZhdWx0Ij4KKworICAgICAgICA8ZGVmYXVsdC1hY3Rpb24tcmVmIG5hbWU9Ik1pc3NpbmciLz4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IkhlbGxvIiBjbGFzcz0iSGVsbG8iPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvSGVsbG8uanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTWlzc2luZyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9NaXNzaW5nLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IldlbGNvbWUiPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvV2VsY29tZS5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJSZWdpc3RlciIgY2xhc3M9IlJlZ2lzdGVyIiBtZXRob2Q9ImlucHV0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9SZWdpc3Rlci5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJSZWdpc3Rlcl9zYXZlIiBjbGFzcz0iUmVnaXN0ZXIiIG1ldGhvZD0ic2F2ZSI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvUmVnaXN0ZXIuanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9ImNoYWluIj5NZW51PC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTWVudSIgY2xhc3M9Ik1haWxSZWFkZXJTdXBwb3J0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL01lbnUuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgPC9wYWNrYWdlPgorPC9zdHJ1dHM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3Rlc3QvSGVsbG9UZXN0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3Rlc3QvSGVsbG9UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBkZWJmNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvdGVzdC9IZWxsb1Rlc3QuamF2YQpAQCAtMCwwICsxLDE2IEBACitpbXBvcnQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlOworCisvKioKKyAqIEFuIGV4YW1wbGUgdGV4dCBjbGFzcyB0byB2ZXJpZnkgdGhlIGNvbmZpZ3VyYXRpb24uCisgKi8KK3B1YmxpYyBjbGFzcyBIZWxsb1Rlc3QgZXh0ZW5kcyBUZXN0Q2FzZSB7CisKKyAgICAvKioKKyAgICAgKiBBbiBleGFtcGxlIHRlc3QgdGhhdCBhc3NlcnRzIHRydWUuCisgICAgICoKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBPbiBpbnZhbGlkIGFzc2VydGlvbnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCB0ZXN0SGVsbG9BY3Rpb24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgYXNzZXJ0VHJ1ZSh0cnVlKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3Rlc3QvUmVnaXN0ZXJUZXN0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3Rlc3QvUmVnaXN0ZXJUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE2NTNiNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvdGVzdC9SZWdpc3RlclRlc3QuamF2YQpAQCAtMCwwICsxLDM0IEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKKworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworCitwdWJsaWMgY2xhc3MgUmVnaXN0ZXJUZXN0IGV4dGVuZHMgUmV0YWluVGVzdCB7CisKKyAgICBSZWdpc3RlciBhY3Rpb24gPSBudWxsOworCisgICAgcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgc3VwZXIuc2V0VXAoKTsKKyAgICAgICAgYWN0aW9uID0gbmV3IFJlZ2lzdGVyKCk7CisgICAgICAgIGFjdGlvbi5zZXRBcHBsaWNhdGlvbihuZXcgSGFzaE1hcCgpKTsKKyAgICAgICAgYWN0aW9uLnNldERhdGFiYXNlKGRhdGFiYXNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2F2ZSgpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIGFjdGlvbi5zZXRVc2VybmFtZSgidXNlciIpOworICAgICAgICBhY3Rpb24uc2V0UGFzc3dvcmQoInBhc3MiKTsKKyAgICAgICAgYWN0aW9uLnNldEZ1bGxOYW1lKCJKb2huIFEuIFVzZXIiKTsKKyAgICAgICAgYWN0aW9uLnNldEZyb21BZGRyZXNzKCJKb2huLlVzZXJAc29tZXdoZXJlLmNvbSIpOworCisgICAgICAgIFN0cmluZyBzdWNjZXNzID0gYWN0aW9uLnNhdmUoKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiRXhwZWN0ZWQgU1VDQ0VTUyIsIEFjdGlvbi5TVUNDRVNTLmVxdWFscyhzdWNjZXNzKSk7CisKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuZmluZFVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRXhwZWN0ZWQgdXNlciIsIHVzZXIpOworCisgICAgICAgIFN0cmluZyBpbnB1dCA9IGFjdGlvbi5zYXZlKCk7CisgICAgICAgIGFzc2VydFRydWUoIkV4cGVjdGVkIElOUFVUIiwgQWN0aW9uLklOUFVULmVxdWFscyhpbnB1dCkpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy90ZXN0L1JldGFpblRlc3QuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvdGVzdC9SZXRhaW5UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY2NmY3MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvdGVzdC9SZXRhaW5UZXN0LmphdmEKQEAgLTAsMCArMSw5NyBAQAoraW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlN1YnNjcmlwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyRGF0YWJhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5pbXBsLm1lbW9yeS5NZW1vcnlVc2VyRGF0YWJhc2U7CisKK3B1YmxpYyBjbGFzcyBSZXRhaW5UZXN0IGV4dGVuZHMgVGVzdENhc2UgeworCisgICAgcHJvdGVjdGVkIFVzZXJEYXRhYmFzZSBkYXRhYmFzZTsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHRlc3ROYW1lID0gInRlc3QtZGF0YWJhc2UueG1sIjsKKworICAgIHB1YmxpYyB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyLnNldFVwKCk7CisgICAgICAgIE1lbW9yeVVzZXJEYXRhYmFzZSBtZW1vcnlVc2VyRGF0YWJhc2UgPSBuZXcgTWVtb3J5VXNlckRhdGFiYXNlKCk7CisgICAgICAgIG1lbW9yeVVzZXJEYXRhYmFzZS5zZXRQYXRobmFtZSh0ZXN0TmFtZSk7CisgICAgICAgIGRhdGFiYXNlID0gbWVtb3J5VXNlckRhdGFiYXNlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3REYXRhYmFzZUNsZWFuKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE51bGwoIkV4cGVjdGVkIHVzZXIgdG8gYmUgbWlzc2luZyIsIHVzZXIpOworICAgIH0KKworICAgIC8vICBBZGQgeW91ciB0ZXN0IG1ldGhvZHMgaGVyZS4KKyAgICAvLyAgVGhlIHNldFVwIG1ldGhvZCB3aWxsIHJ1biBiZXR3ZWVuIGVhY2ggdGVzdC4KKworICAgIHB1YmxpYyB2b2lkIHRlc3RDcmVhdGVVc2VyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCh1c2VyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RmluZFVzZXIoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyMSA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsKKyAgICAgICAgVXNlciB1c2VyMiA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydFNhbWUoIkV4cGVjdGVkIHVzZXJzIHRvIG1hdGNoIiwgdXNlcjEsIHVzZXIyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q3JlYXRlU3Vic2NyaXB0aW9uKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIikuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLnlhaG9vLmNvbSIpOworICAgICAgICBhc3NlcnROb3ROdWxsKCJFeHBlY3RlZCBzdWJzY3JpcHRpb24gdG8gYmUgY3JlYXRlZCIsIHN1Yik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEZpbmRTdWJzY3JpcHRpb24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjEgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIikuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLnlhaG9vLmNvbSIpOworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMiA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIikuZmluZFN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsKKyAgICAgICAgYXNzZXJ0U2FtZSgiRXhwZWN0ZWQgU3Vic2NyaXB0aW9ucyB0byBtYXRjaCIsIHN1YjEsIHN1YjIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3REYXRhYnNhZVNhdmUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIHVzZXIuc2V0UGFzc3dvcmQoInBhc3MiKTsKKyAgICAgICAgdXNlci5zZXRGdWxsTmFtZSgiSm9obiBRLiBVc2VyIik7CisgICAgICAgIHVzZXIuc2V0RnJvbUFkZHJlc3MoIkpvaG4uVXNlckBzb21ld2hlcmUuY29tIik7CisKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjEgPSB1c2VyLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC5ob3RtYWlsLmNvbSIpOworICAgICAgICBzdWIxLnNldFVzZXJuYW1lKCJ1c2VyMTIzNCIpOworICAgICAgICBzdWIxLnNldEF1dG9Db25uZWN0KGZhbHNlKTsKKyAgICAgICAgc3ViMS5zZXRUeXBlKCJwb3AzIik7CisgICAgICAgIHN1YjEuc2V0UGFzc3dvcmQoImJhciIpOworCisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIyID0gdXNlci5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwueWFob28uY29tIik7CisgICAgICAgIHN1YjIuc2V0VXNlcm5hbWUoImpxdXNlciIpOworICAgICAgICBzdWIyLnNldEF1dG9Db25uZWN0KGZhbHNlKTsKKyAgICAgICAgc3ViMi5zZXRUeXBlKCJpbWFwIik7CisgICAgICAgIHN1YjIuc2V0UGFzc3dvcmQoImZvbyIpOworCisgICAgICAgIGRhdGFiYXNlLnNhdmUoKTsKKworICAgIH0KKworICAgIC8vIEV4dHJhIGNyZWRpdAorCisgICAgcHVibGljIHZvaWQgdGVzdEZpbmRlclVzZXJCb2d1cygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIxID0gZGF0YWJhc2UuZmluZFVzZXIoImJvZ3VzIik7CisgICAgICAgIGFzc2VydE51bGwoIkV4cGVjdGVkIGJvZ3VzIHVzZXIgdG8gYmUgbm90IGZvdW5kIiwgdXNlcjEpOworICAgICAgICBVc2VyIHVzZXIyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROb3ROdWxsKCJFeHBlY3RlZCB1c2VyIHRvIGJlIGNyZWF0ZWQiLCB1c2VyMik7CisgICAgICAgIHVzZXIxID0gZGF0YWJhc2UuZmluZFVzZXIoImJvZ3VzIik7CisgICAgICAgIGFzc2VydE51bGwoIkV4cGVjdGVkIGJvZ3VzIHVzZXIgdG8gYmUgbm90IGZvdW5kIiwgdXNlcjEpOworICAgICAgICB1c2VyMSA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoIkV4cGVjdGVkIHVzZXIgdG8gYmUgZm91bmQiLCB1c2VyMSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEZpbmRTdWJCb2d1cygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIgPSB1c2VyLmZpbmRTdWJzY3JpcHRpb24oIm1haWwuYm9ndXMuY29tIik7CisgICAgICAgIGFzc2VydE51bGwoc3ViKTsKKyAgICAgICAgc3ViID0gZGF0YWJhc2UuZmluZFVzZXIoInVzZXIiKS5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwuaG90bWFpbC5jb20iKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChzdWIpOworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMiA9IHVzZXIuZmluZFN1YnNjcmlwdGlvbigibWFpbC5ib2d1cy5jb20iKTsKKyAgICAgICAgYXNzZXJ0TnVsbChzdWIyKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjMgPSB1c2VyLmZpbmRTdWJzY3JpcHRpb24oIm1haWwuaG90bWFpbC5jb20iKTsKKyAgICAgICAgYXNzZXJ0U2FtZShzdWIsIHN1YjMpOworICAgIH0KKworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvV2ViVGVzdC5kdGQgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL1dlYlRlc3QuZHRkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmOGEzNDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL1dlYlRlc3QuZHRkCkBAIC0wLDAgKzEsNDY5NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+Cis8IUVOVElUWSAlIGJvb2xlYW4gIih0cnVlfGZhbHNlfG9ufG9mZnx5ZXN8bm8pIj4KKzwhRU5USVRZICUgdGFza3MgInByb3BlcnR5ZmlsZSB8IGNjbWtkaXIgfCBpbXBvcnR0eXBlbGliIHwgdnNzY2hlY2tpbiB8IHNxbCB8IGN2c3Bhc3MgfCBjc2MgfCBkaXJuYW1lIHwgcmVwbGFjZXJlZ2V4cCB8IGdldCB8IGpqdHJlZSB8IHNsZWVwIHwgamFybGliLWRpc3BsYXkgfCBsZW5ndGggfCBkZXBlbmRzZXQgfCB6aXAgfCBwYXRjaCB8IGpzcGMgfCBzdHlsZSB8IG5pY2UgfCB0ZXN0IHwgdHN0YW1wIHwgdW53YXIgfCB2c3NoaXN0b3J5IHwgY3ZzY2hhbmdlbG9nIHwgY2NtY2hlY2tpbiB8IGJ6aXAyIHwgc3luYyB8IHZzc2FkZCB8IGphdmFkb2MgfCB0cmFuc2xhdGUgfCBzaWduamFyIHwgY2Nsb2NrIHwgY2hvd24gfCBqYXJsaWItYXZhaWxhYmxlIHwgV3NkbFRvRG90bmV0IHwgYnVpbGRudW1iZXIgfCBqcGNvdm1lcmdlIHwgY3ZzdmVyc2lvbiB8IGVqYmphciB8IHdhciB8IHJlbmFtZSB8IHNlcXVlbnRpYWwgfCBzZXJ2ZXJkZXBsb3kgfCBwcm9wZXJ0eSB8IHN1YmFudCB8IG1vdmUgfCBpbGRhc20gfCBjb3B5ZGlyIHwgY2NjaGVja2luIHwgY2N1bmxvY2sgfCB3bGpzcGMgfCBmaXhjcmxmIHwgc29zZ2V0IHwgcGF0aGNvbnZlcnQgfCByZWNvcmQgfCBleGVjIHwgY2Nta2xhYmVsIHwgbWFuaWZlc3QgfCBqcGNvdnJlcG9ydCB8IGV4ZWNvbiB8IGNjbWNoZWNrb3V0IHwgYW50IHwgeG1sdmFsaWRhdGUgfCB4c2x0IHwgaXBsYW5ldC1lamJjIHwgY2NtY2hlY2tpbnRhc2sgfCBnemlwIHwgbmF0aXZlMmFzY2lpIHwgY2NybXR5cGUgfCBlYXIgfCBpbnB1dCB8IHByZXNldGRlZiB8IHJtaWMgfCBjaGVja3N1bSB8IG1haWwgfCBsb2FkZmlsZSB8IHZzc2NoZWNrb3V0IHwgc29zY2hlY2tpbiB8IG1pbWVtYWlsIHwgZ3VuemlwIHwgY29uY2F0IHwgY2FiIHwgdG91Y2ggfCBwYXJhbGxlbCB8IGFudGNhbGwgfCBjY21rYmwgfCBjY2NoZWNrb3V0IHwgdHlwZWRlZiB8IGZpbHRlciB8IHhtbHByb3BlcnR5IHwgaW1wb3J0IHwgY29weSB8IGpzaGFycGMgfCBzeW1saW5rIHwgYW50c3RydWN0dXJlIHwgc2NyaXB0IHwgY2NtY3JlYXRldGFzayB8IHJwbSB8IGRlbGV0ZSB8IHJlcGxhY2UgfCBtbWV0cmljcyB8IGF0dHJpYiB8IHdhaXRmb3IgfCB1bnRhciB8IGxvYWRwcm9wZXJ0aWVzIHwgYXZhaWxhYmxlIHwgZWNob3Byb3BlcnRpZXMgfCBqdW5pdCB8IGNoZ3JwIHwgYnVuemlwMiB8IHdoaWNocmVzb3VyY2UgfCBjb3B5ZmlsZSB8IHZzc2NyZWF0ZSB8IG1hY3JvZGVmIHwgdW5qYXIgfCB2YmMgfCB3c2RsdG9kb3RuZXQgfCBta2RpciB8IGNvbmRpdGlvbiB8IGN2cyB8IHRlbXBmaWxlIHwganVuaXRyZXBvcnQgfCBjY21rYXR0ciB8IHRhc2tkZWYgfCBlY2hvIHwgY2N1cGRhdGUgfCBqYXZhIHwgcmVuYW1lZXh0IHwgdnNzbGFiZWwgfCBiYXNlbmFtZSB8IGphdmFkb2MyIHwgdnNzY3AgfCB0YXIgfCBzZXRwcm94eSB8IGlsYXNtIHwgc29zY2hlY2tvdXQgfCBhcHBseSB8IGNjdW5jaGVja291dCB8IGphcmxpYi1yZXNvbHZlIHwgY3ZzdGFnZGlmZiB8IGpsaW5rIHwgamF2YWNjIHwgY2htb2QgfCBwdmNzIHwgamFybGliLW1hbmlmZXN0IHwgamFyIHwgY2Nta2xidHlwZSB8IHNjcmlwdGRlZiB8IGRlZmF1bHRleGNsdWRlcyB8IG1wYXJzZSB8IGJsZ2VuY2xpZW50IHwgdXB0b2RhdGUgfCBqamRvYyB8IGdlbmtleSB8IGphdmFoIHwgY2Nta2VsZW0gfCBjY21yZWNvbmZpZ3VyZSB8IGZhaWwgfCB1bnppcCB8IGphdmFjIHwganBjb3ZlcmFnZSB8IHNvc2xhYmVsIHwgZGVwZW5kIHwgdnNzZ2V0IHwgZGVsdHJlZSI+Cis8IUVOVElUWSAlIHR5cGVzICJwYXR0ZXJuc2V0IHwgYXNzZXJ0aW9ucyB8IHByb3BlcnR5c2V0IHwgZmlsdGVybWFwcGVyIHwgZmlsdGVyc2V0IHwgbGliZmlsZXNldCB8IGlzZmlsZXNlbGVjdGVkIHwgbWVyZ2VtYXBwZXIgfCBpZGVudGl0eW1hcHBlciB8IGZpbHRlcnJlYWRlciB8IHNjcmlwdGZpbHRlciB8IHVucGFja2FnZW1hcHBlciB8IGNvbmNhdGZpbHRlciB8IGV4dGVuc2lvbiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBnbG9ibWFwcGVyIHwgZmlsZWxpc3QgfCBmaWx0ZXJjaGFpbiB8IHBhdGggfCBjb21wb3NpdGVtYXBwZXIgfCBjbGFzc2ZpbGVzZXQgfCByZWdleHBtYXBwZXIgfCBzZWxlY3RvciB8IHhtbGNhdGFsb2cgfCBmbGF0dGVubWFwcGVyIHwgZGVzY3JpcHRpb24gfCBjaGFpbmVkbWFwcGVyIHwgcGFja2FnZW1hcHBlciB8IG1hcHBlciB8IHppcGZpbGVzZXQgfCBzdWJzdGl0dXRpb24gfCBleHRlbnNpb25TZXQgfCByZWRpcmVjdG9yIHwgcmVnZXhwIj4KKworPCFFTEVNRU5UIHByb2plY3QgKHRhcmdldCB8ICV0YXNrczsgfCAldHlwZXM7KSo+Cis8IUFUVExJU1QgcHJvamVjdAorICAgICAgICAgIG5hbWUgICAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldCAoJXRhc2tzOyB8ICV0eXBlczspKj4KKworPCFBVFRMSVNUIHRhcmdldAorICAgICAgICAgIGlkICAgICAgICAgIElEICAgICNJTVBMSUVECisgICAgICAgICAgbmFtZSAgICAgICAgQ0RBVEEgI1JFUVVJUkVECisgICAgICAgICAgaWYgICAgICAgICAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgICAgICBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlcGVuZHMgICAgIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXR0ZXJuc2V0IChpbmNsdWRlIHwgcGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBleGNsdWRlc2ZpbGUgfCBpbmNsdWRlc2ZpbGUpKj4KKzwhQVRUTElTVCBwYXR0ZXJuc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGluY2x1ZGUgRU1QVFk+Cis8IUFUVExJU1QgaW5jbHVkZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhjbHVkZSBFTVBUWT4KKzwhQVRUTElTVCBleGNsdWRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleGNsdWRlc2ZpbGUgRU1QVFk+Cis8IUFUVExJU1QgZXhjbHVkZXNmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbmNsdWRlc2ZpbGUgRU1QVFk+Cis8IUFUVExJU1QgaW5jbHVkZXNmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhc3NlcnRpb25zIChkaXNhYmxlIHwgZW5hYmxlKSo+Cis8IUFUVExJU1QgYXNzZXJ0aW9ucworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuYWJsZXN5c3RlbWFzc2VydGlvbnMgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGlzYWJsZSBFTVBUWT4KKzwhQVRUTElTVCBkaXNhYmxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3MgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlbmFibGUgRU1QVFk+Cis8IUFUVExJU1QgZW5hYmxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3MgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcm9wZXJ0eXNldCAocHJvcGVydHlyZWYgfCBwcm9wZXJ0eXNldCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIHByb3BlcnR5c2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZHluYW1pYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuZWdhdGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJvcGVydHlyZWYgRU1QVFk+Cis8IUFUVExJU1QgcHJvcGVydHlyZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidWlsdGluIChhbGwgfCBzeXN0ZW0gfCBjb21tYW5kbGluZSkgI0lNUExJRUQKKyAgICAgICAgICByZWdleCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1hcHBlciAoY2xhc3NwYXRoIHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChpZGVudGl0eSB8IGZsYXR0ZW4gfCBnbG9iIHwgbWVyZ2UgfCByZWdleHAgfCBwYWNrYWdlIHwgdW5wYWNrYWdlKSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjbGFzc3BhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGNsYXNzcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN1c3RvbSAoY2xhc3NwYXRoIHwgcGFyYW0pKj4KKzwhQVRUTElTVCBjdXN0b20KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhcmFtIEVNUFRZPgorPCFBVFRMSVNUIHBhcmFtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJlc2VudCAobWFwcGVyKSo+Cis8IUFUVExJU1QgcHJlc2VudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXRkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlc2VudCAoc3Jjb25seSB8IGJvdGgpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbm9uZSAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1Qgbm9uZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbm90IChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBub3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHR5cGUgRU1QVFk+Cis8IUFUVExJU1QgdHlwZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIpICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtb2RpZmllZCAocGFyYW0pKj4KKzwhQVRUTElTVCBtb2RpZmllZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY29tcGFyYXRvciAoZXF1YWwgfCBydWxlKSAjSU1QTElFRAorICAgICAgICAgIHNlbGRpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWxnb3JpdGhtIChoYXNodmFsdWUgfCBkaWdlc3QpICNJTVBMSUVECisgICAgICAgICAgY2FjaGUgKHByb3BlcnR5ZmlsZSkgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3IgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIG9yCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb250YWlucyBFTVBUWT4KKzwhQVRUTElTVCBjb250YWlucworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmV3aGl0ZXNwYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRleHQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZXBlbmQgKG1hcHBlcikqPgorPCFBVFRMSVNUIGRlcGVuZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXRkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkaWZmZXJlbnQgKG1hcHBlcikqPgorPCFBVFRMSVNUIGRpZmZlcmVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaWdub3JlY29udGVudHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXRkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlZmlsZXRpbWVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2l6ZSBFTVBUWT4KKzwhQVRUTElTVCBzaXplCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB3aGVuIChsZXNzIHwgbW9yZSB8IGVxdWFsKSAjSU1QTElFRAorICAgICAgICAgIHVuaXRzIChLIHwgayB8IGtpbG8gfCBLSUxPIHwgS2kgfCBLSSB8IGtpIHwga2liaSB8IEtJQkkgfCBNIHwgbSB8IG1lZ2EgfCBNRUdBIHwgTWkgfCBNSSB8IG1pIHwgbWViaSB8IE1FQkkgfCBHIHwgZyB8IGdpZ2EgfCBHSUdBIHwgR2kgfCBHSSB8IGdpIHwgZ2liaSB8IEdJQkkgfCBUIHwgdCB8IHRlcmEgfCBURVJBIHwgVGkgfCBUSSB8IHRpIHwgdGViaSB8IFRFQkkpICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYWpvcml0eSAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1QgbWFqb3JpdHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBhbGxvd3RpZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbnRhaW5zcmVnZXhwIEVNUFRZPgorPCFBVFRMSVNUIGNvbnRhaW5zcmVnZXhwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHByZXNzaW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZW5hbWUgRU1QVFk+Cis8IUFUVExJU1QgZmlsZW5hbWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5lZ2F0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzZWxlY3RvciAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1Qgc2VsZWN0b3IKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGF0ZSBFTVBUWT4KKzwhQVRUTElTVCBkYXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIG1pbGxpcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNoZWNrZGlycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYXRldGltZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdoZW4gKGJlZm9yZSB8IGFmdGVyIHwgZXF1YWwpICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFuZCAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1QgYW5kCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZXB0aCBFTVBUWT4KKzwhQVRUTElTVCBkZXB0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbWF4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtaW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGlyc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBkaXJzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4dGRpcnMgKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGV4dGRpcnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleGlzdGluZyAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgZXhpc3RpbmcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlbGlzdCAoZmlsZSkqPgorPCFBVFRMSVNUIGZpbGVsaXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXRoZWxlbWVudCBFTVBUWT4KKzwhQVRUTElTVCBwYXRoZWxlbWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcm1hcHBlciAoaGVhZGZpbHRlciB8IGNsYXNzY29uc3RhbnRzIHwgbGluZWNvbnRhaW5zIHwgZmlsdGVycmVhZGVyIHwgcmVwbGFjZXJlZ2V4IHwgcmVwbGFjZXRva2VucyB8IGVzY2FwZXVuaWNvZGUgfCBpZ25vcmVibGFuayB8IHRhaWxmaWx0ZXIgfCB0YWJzdG9zcGFjZXMgfCBwcmVmaXhsaW5lcyB8IHRyaW0gfCBleHBhbmRwcm9wZXJ0aWVzIHwgc3RyaXBsaW5lYnJlYWtzIHwgcmVwbGFjZXN0cmluZyB8IHN0cmlwbGluZWNvbW1lbnRzIHwgdG9rZW5maWx0ZXIgfCBzdHJpcGphdmFjb21tZW50cyB8IGNvbnRhaW5zcmVnZXggfCBkZWxldGVjaGFyYWN0ZXJzIHwgbGluZWNvbnRhaW5zcmVnZXhwKSo+Cis8IUFUVExJU1QgZmlsdGVybWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaGVhZGZpbHRlciBFTVBUWT4KKzwhQVRUTElTVCBoZWFkZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNraXAgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjbGFzc2NvbnN0YW50cyBFTVBUWT4KKzwhQVRUTElTVCBjbGFzc2NvbnN0YW50cworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGluZWNvbnRhaW5zIChjb250YWlucykqPgorPCFBVFRMSVNUIGxpbmVjb250YWlucworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVycmVhZGVyIChjbGFzc3BhdGggfCBwYXJhbSkqPgorPCFBVFRMSVNUIGZpbHRlcnJlYWRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2VyZWdleCBFTVBUWT4KKzwhQVRUTElTVCByZXBsYWNlcmVnZXgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZsYWdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXRva2VucyAodG9rZW4pKj4KKzwhQVRUTElTVCByZXBsYWNldG9rZW5zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBiZWdpbnRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kdG9rZW4gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0b2tlbiBFTVBUWT4KKzwhQVRUTElTVCB0b2tlbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAga2V5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlc2NhcGV1bmljb2RlIEVNUFRZPgorPCFBVFRMSVNUIGVzY2FwZXVuaWNvZGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlnbm9yZWJsYW5rIEVNUFRZPgorPCFBVFRMSVNUIGlnbm9yZWJsYW5rCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFpbGZpbHRlciBFTVBUWT4KKzwhQVRUTElTVCB0YWlsZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNraXAgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YWJzdG9zcGFjZXMgRU1QVFk+Cis8IUFUVExJU1QgdGFic3Rvc3BhY2VzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YWJsZW5ndGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcmVmaXhsaW5lcyBFTVBUWT4KKzwhQVRUTElTVCBwcmVmaXhsaW5lcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHJpbSBFTVBUWT4KKzwhQVRUTElTVCB0cmltCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhwYW5kcHJvcGVydGllcyBFTVBUWT4KKzwhQVRUTElTVCBleHBhbmRwcm9wZXJ0aWVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdHJpcGxpbmVicmVha3MgRU1QVFk+Cis8IUFUVExJU1Qgc3RyaXBsaW5lYnJlYWtzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lYnJlYWtzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXN0cmluZyBFTVBUWT4KKzwhQVRUTElTVCByZXBsYWNlc3RyaW5nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3RyaXBsaW5lY29tbWVudHMgKGNvbW1lbnQpKj4KKzwhQVRUTElTVCBzdHJpcGxpbmVjb21tZW50cworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29tbWVudCBFTVBUWT4KKzwhQVRUTElTVCBjb21tZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRva2VuZmlsdGVyIChjb250YWluc3N0cmluZyB8IGxpbmV0b2tlbml6ZXIgfCB0cmltIHwgc3RyaW5ndG9rZW5pemVyIHwgcmVwbGFjZXJlZ2V4IHwgcmVwbGFjZXN0cmluZyB8IGlnbm9yZWJsYW5rIHwgZGVsZXRlY2hhcmFjdGVycyB8IGNvbnRhaW5zcmVnZXggfCBmaWxldG9rZW5pemVyKSo+Cis8IUFUVExJU1QgdG9rZW5maWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlbGltb3V0cHV0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29udGFpbnNzdHJpbmcgRU1QVFk+Cis8IUFUVExJU1QgY29udGFpbnNzdHJpbmcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNvbnRhaW5zIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGluZXRva2VuaXplciBFTVBUWT4KKzwhQVRUTElTVCBsaW5ldG9rZW5pemVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVsaW1zICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN0cmluZ3Rva2VuaXplciBFTVBUWT4KKzwhQVRUTElTVCBzdHJpbmd0b2tlbml6ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN1cHByZXNzZGVsaW1zICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVkZWxpbXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVsaW1zYXJldG9rZW5zICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlbGltcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlbGV0ZWNoYXJhY3RlcnMgRU1QVFk+Cis8IUFUVExJU1QgZGVsZXRlY2hhcmFjdGVycworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2hhcnMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb250YWluc3JlZ2V4IEVNUFRZPgorPCFBVFRMSVNUIGNvbnRhaW5zcmVnZXgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZsYWdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZXRva2VuaXplciBFTVBUWT4KKzwhQVRUTElTVCBmaWxldG9rZW5pemVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdHJpcGphdmFjb21tZW50cyBFTVBUWT4KKzwhQVRUTElTVCBzdHJpcGphdmFjb21tZW50cworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGluZWNvbnRhaW5zcmVnZXhwIChyZWdleHApKj4KKzwhQVRUTElTVCBsaW5lY29udGFpbnNyZWdleHAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlZ2V4cCBFTVBUWT4KKzwhQVRUTElTVCByZWdleHAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVyc2V0IChmaWx0ZXJzZXQgfCBmaWx0ZXIgfCBmaWx0ZXJzZmlsZSkqPgorPCFBVFRMSVNUIGZpbHRlcnNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYmVnaW50b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZHRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyc2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVyc2ZpbGUgRU1QVFk+Cis8IUFUVExJU1QgZmlsdGVyc2ZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaWJmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBsaWJmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHVybGJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlaW1wbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGV1cmwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc2ZpbGVzZWxlY3RlZCAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1QgaXNmaWxlc2VsZWN0ZWQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1lcmdlbWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIG1lcmdlbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpZGVudGl0eW1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBpZGVudGl0eW1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2NyaXB0ZmlsdGVyICgjUENEQVRBKT4KKzwhQVRUTElTVCBzY3JpcHRmaWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhbmd1YWdlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdW5wYWNrYWdlbWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIHVucGFja2FnZW1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaGFuZGxlZGlyc2VwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29uY2F0ZmlsdGVyIEVNUFRZPgorPCFBVFRMSVNUIGNvbmNhdGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlcGVuZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4dGVuc2lvbiBFTVBUWT4KKzwhQVRUTElTVCBleHRlbnNpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb252ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3BlY2lmaWNhdGlvbnZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRlbnNpb25uYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb252ZW5kb3JpZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwZWNpZmljYXRpb252ZW5kb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbnVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb252ZW5kb3IgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBnbG9ibWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIGdsb2JtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhhbmRsZWRpcnNlcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcmNoYWluIChoZWFkZmlsdGVyIHwgY2xhc3Njb25zdGFudHMgfCBsaW5lY29udGFpbnMgfCBmaWx0ZXJyZWFkZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNldG9rZW5zIHwgZXNjYXBldW5pY29kZSB8IGlnbm9yZWJsYW5rIHwgdGFpbGZpbHRlciB8IHRhYnN0b3NwYWNlcyB8IHByZWZpeGxpbmVzIHwgdHJpbSB8IGV4cGFuZHByb3BlcnRpZXMgfCBzdHJpcGxpbmVicmVha3MgfCByZXBsYWNlc3RyaW5nIHwgc3RyaXBsaW5lY29tbWVudHMgfCB0b2tlbmZpbHRlciB8IHN0cmlwamF2YWNvbW1lbnRzIHwgY29udGFpbnNyZWdleCB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBsaW5lY29udGFpbnNyZWdleHApKj4KKzwhQVRUTElTVCBmaWx0ZXJjaGFpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbXBvc2l0ZW1hcHBlciAobWFwcGVyKSo+Cis8IUFUVExJU1QgY29tcG9zaXRlbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjbGFzc2ZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHJvb3RmaWxlc2V0IHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCByb290IHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNsYXNzZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJvb3RjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcm9vdGZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHJvb3RmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByb290IEVNUFRZPgorPCFBVFRMSVNUIHJvb3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlZ2V4cG1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCByZWdleHBtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhhbmRsZWRpcnNlcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHhtbGNhdGFsb2cgKGVudGl0eSB8IGNsYXNzcGF0aCB8IGNhdGFsb2dwYXRoIHwgZHRkIHwgeG1sY2F0YWxvZykqPgorPCFBVFRMSVNUIHhtbGNhdGFsb2cKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNhdGFsb2dwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVudGl0eSBFTVBUWT4KKzwhQVRUTElTVCBlbnRpdHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1YmxpY2lkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2F0YWxvZ3BhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGNhdGFsb2dwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZHRkIEVNUFRZPgorPCFBVFRMSVNUIGR0ZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHVibGljaWQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmbGF0dGVubWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIGZsYXR0ZW5tYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlc2NyaXB0aW9uICgjUENEQVRBKT4KKzwhQVRUTElTVCBkZXNjcmlwdGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNoYWluZWRtYXBwZXIgKG1hcHBlcikqPgorPCFBVFRMSVNUIGNoYWluZWRtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhY2thZ2VtYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgcGFja2FnZW1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaGFuZGxlZGlyc2VwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgemlwZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgemlwZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdWJzdGl0dXRpb24gRU1QVFk+Cis8IUFUVExJU1Qgc3Vic3RpdHV0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhwcmVzc2lvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4dGVuc2lvblNldCAoZmlsZXNldCB8IGxpYmZpbGVzZXQgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBleHRlbnNpb25TZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZWRpcmVjdG9yIChlcnJvcmZpbHRlcmNoYWluIHwgb3V0cHV0ZmlsdGVyY2hhaW4gfCBlcnJvcm1hcHBlciB8IGlucHV0ZmlsdGVyY2hhaW4gfCBvdXRwdXRtYXBwZXIgfCBpbnB1dG1hcHBlcikqPgorPCFBVFRMSVNUIHJlZGlyZWN0b3IKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgaW5wdXRlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjcmVhdGVlbXB0eWZpbGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFsd2F5c2xvZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3JlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVycm9yZmlsdGVyY2hhaW4gKGhlYWRmaWx0ZXIgfCBjbGFzc2NvbnN0YW50cyB8IGxpbmVjb250YWlucyB8IGZpbHRlcnJlYWRlciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2V0b2tlbnMgfCBlc2NhcGV1bmljb2RlIHwgaWdub3JlYmxhbmsgfCB0YWlsZmlsdGVyIHwgdGFic3Rvc3BhY2VzIHwgcHJlZml4bGluZXMgfCB0cmltIHwgZXhwYW5kcHJvcGVydGllcyB8IHN0cmlwbGluZWJyZWFrcyB8IHJlcGxhY2VzdHJpbmcgfCBzdHJpcGxpbmVjb21tZW50cyB8IHRva2VuZmlsdGVyIHwgc3RyaXBqYXZhY29tbWVudHMgfCBjb250YWluc3JlZ2V4IHwgZGVsZXRlY2hhcmFjdGVycyB8IGxpbmVjb250YWluc3JlZ2V4cCkqPgorPCFBVFRMSVNUIGVycm9yZmlsdGVyY2hhaW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBvdXRwdXRmaWx0ZXJjaGFpbiAoaGVhZGZpbHRlciB8IGNsYXNzY29uc3RhbnRzIHwgbGluZWNvbnRhaW5zIHwgZmlsdGVycmVhZGVyIHwgcmVwbGFjZXJlZ2V4IHwgcmVwbGFjZXRva2VucyB8IGVzY2FwZXVuaWNvZGUgfCBpZ25vcmVibGFuayB8IHRhaWxmaWx0ZXIgfCB0YWJzdG9zcGFjZXMgfCBwcmVmaXhsaW5lcyB8IHRyaW0gfCBleHBhbmRwcm9wZXJ0aWVzIHwgc3RyaXBsaW5lYnJlYWtzIHwgcmVwbGFjZXN0cmluZyB8IHN0cmlwbGluZWNvbW1lbnRzIHwgdG9rZW5maWx0ZXIgfCBzdHJpcGphdmFjb21tZW50cyB8IGNvbnRhaW5zcmVnZXggfCBkZWxldGVjaGFyYWN0ZXJzIHwgbGluZWNvbnRhaW5zcmVnZXhwKSo+Cis8IUFUVExJU1Qgb3V0cHV0ZmlsdGVyY2hhaW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlcnJvcm1hcHBlciAoY2xhc3NwYXRoIHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgZXJyb3JtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGlkZW50aXR5IHwgZmxhdHRlbiB8IGdsb2IgfCBtZXJnZSB8IHJlZ2V4cCB8IHBhY2thZ2UgfCB1bnBhY2thZ2UpICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlucHV0ZmlsdGVyY2hhaW4gKGhlYWRmaWx0ZXIgfCBjbGFzc2NvbnN0YW50cyB8IGxpbmVjb250YWlucyB8IGZpbHRlcnJlYWRlciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2V0b2tlbnMgfCBlc2NhcGV1bmljb2RlIHwgaWdub3JlYmxhbmsgfCB0YWlsZmlsdGVyIHwgdGFic3Rvc3BhY2VzIHwgcHJlZml4bGluZXMgfCB0cmltIHwgZXhwYW5kcHJvcGVydGllcyB8IHN0cmlwbGluZWJyZWFrcyB8IHJlcGxhY2VzdHJpbmcgfCBzdHJpcGxpbmVjb21tZW50cyB8IHRva2VuZmlsdGVyIHwgc3RyaXBqYXZhY29tbWVudHMgfCBjb250YWluc3JlZ2V4IHwgZGVsZXRlY2hhcmFjdGVycyB8IGxpbmVjb250YWluc3JlZ2V4cCkqPgorPCFBVFRMSVNUIGlucHV0ZmlsdGVyY2hhaW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBvdXRwdXRtYXBwZXIgKGNsYXNzcGF0aCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIG91dHB1dG1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoaWRlbnRpdHkgfCBmbGF0dGVuIHwgZ2xvYiB8IG1lcmdlIHwgcmVnZXhwIHwgcGFja2FnZSB8IHVucGFja2FnZSkgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW5wdXRtYXBwZXIgKGNsYXNzcGF0aCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIGlucHV0bWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChpZGVudGl0eSB8IGZsYXR0ZW4gfCBnbG9iIHwgbWVyZ2UgfCByZWdleHAgfCBwYWNrYWdlIHwgdW5wYWNrYWdlKSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcm9wZXJ0eWZpbGUgKGVudHJ5KSo+Cis8IUFUVExJU1QgcHJvcGVydHlmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlbnRyeSBFTVBUWT4KKzwhQVRUTElTVCBlbnRyeQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb3BlcmF0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtleSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGludCB8IGRhdGUgfCBzdHJpbmcpICNJTVBMSUVECisgICAgICAgICAgdW5pdCAobWlsbGlzZWNvbmQgfCBzZWNvbmQgfCBtaW51dGUgfCBob3VyIHwgZGF5IHwgd2VlayB8IG1vbnRoIHwgeWVhcikgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21rZGlyIEVNUFRZPgorPCFBVFRMSVNUIGNjbWtkaXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2NoZWNrb3V0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGltcG9ydHR5cGVsaWIgRU1QVFk+Cis8IUFUVExJU1QgaW1wb3J0dHlwZWxpYgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdW5zYWZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlc3lzYXJyYXkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZXNwYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NjaGVja2luIEVNUFRZPgorPCFBVFRMSVNUIHZzc2NoZWNraW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdyaXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNxbCAoI1BDREFUQSB8IGZpbGVzZXQgfCBjbGFzc3BhdGggfCB0cmFuc2FjdGlvbikqPgorPCFBVFRMSVNUIHNxbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb25lcnJvciAoY29udGludWUgfCBzdG9wIHwgYWJvcnQpICNJTVBMSUVECisgICAgICAgICAgdXNlcmlkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhdXRvY29tbWl0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJkYm1zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJpbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZHJpdmVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2hvd2hlYWRlcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVsaW1pdGVydHlwZSAobm9ybWFsIHwgcm93KSAjSU1QTElFRAorICAgICAgICAgIGVzY2FwZXByb2Nlc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYWNoaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBmb3JtYXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVsaW1pdGVyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHJhbnNhY3Rpb24gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHRyYW5zYWN0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdnNwYXNzIEVNUFRZPgorPCFBVFRMSVNUIGN2c3Bhc3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN2c3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNzYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCByZXNvdXJjZSB8IGRlZmluZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHJlZmVyZW5jZSB8IHNyYyB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjc2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luMzJpY29uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmaW5pdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZlcmVuY2VmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRocyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haW5jbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHV0ZjhvdXRwdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlcmVzcG9uc2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVmYXVsdHJlZmVyZW5jZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgd2FybmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luMzJyZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNyZW1lbnRhbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbmZpZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZlcmVuY2VzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpbWl6ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhZGRpdGlvbmFsbW9kdWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bnNhZmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZWFsaWduIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0dHlwZSAoZXhlIHwgbGlicmFyeSB8IG1vZHVsZSB8IHdpbmV4ZSkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXNvdXJjZSBFTVBUWT4KKzwhQVRUTElTVCByZXNvdXJjZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdWJsaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW1iZWQgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVmaW5lIEVNUFRZPgorPCFBVFRMSVNUIGRlZmluZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVmZXJlbmNlIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCByZWZlcmVuY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNyYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgc3JjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkaXJuYW1lIEVNUFRZPgorPCFBVFRMSVNUIGRpcm5hbWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNlcmVnZXhwIChmaWxlc2V0IHwgc3Vic3RpdHV0aW9uIHwgcmVnZXhwKSo+Cis8IUFUVExJU1QgcmVwbGFjZXJlZ2V4cAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmxhZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hdGNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGdldCBFTVBUWT4KKzwhQVRUTElTVCBnZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaWdub3JlZXJyb3JzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNldGltZXN0YW1wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqanRyZWUgRU1QVFk+Cis8IUFUVExJU1Qgamp0cmVlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBub2RlZGVmYXVsdHZvaWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnVpbGRub2RlZmlsZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZGlyZWN0b3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0YXRpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBqYXZhY2Nob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZXByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVmYWN0b3J5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG11bHRpICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpc2l0b3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZXVzZXNwYXJzZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlzaXRvcmV4Y2VwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVzY29wZWhvb2sgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVwYWNrYWdlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2xlZXAgRU1QVFk+Cis8IUFUVExJU1Qgc2xlZXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhvdXJzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtaWxsaXNlY29uZHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtaW51dGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzZWNvbmRzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamFybGliLWRpc3BsYXkgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBqYXJsaWItZGlzcGxheQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsZW5ndGggRU1QVFk+Cis8IUFUVExJU1QgbGVuZ3RoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsZW5ndGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHJpbSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtb2RlIChlYWNoIHwgYWxsKSAjSU1QTElFRAorICAgICAgICAgIHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdoZW4gKGVxdWFsIHwgZ3JlYXRlciB8IGxlc3MpICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVwZW5kc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCB0YXJnZXRmaWxlc2V0IHwgc3JjZmlsZXNldCB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IHNyY2ZpbGVsaXN0IHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kIHwgdGFyZ2V0ZmlsZWxpc3QpKj4KKzwhQVRUTElTVCBkZXBlbmRzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFyZ2V0ZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgdGFyZ2V0ZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3JjZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgc3JjZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3JjZmlsZWxpc3QgKGZpbGUpKj4KKzwhQVRUTElTVCBzcmNmaWxlbGlzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFyZ2V0ZmlsZWxpc3QgKGZpbGUpKj4KKzwhQVRUTElTVCB0YXJnZXRmaWxlbGlzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgemlwIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgemlwZ3JvdXBmaWxlc2V0IHwgemlwZmlsZXNldCB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHppcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgd2hlbmVtcHR5IChmYWlsIHwgc2tpcCB8IGNyZWF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGR1cGxpY2F0ZSAoYWRkIHwgcHJlc2VydmUgfCBmYWlsKSAjSU1QTElFRAorICAgICAgICAgIHJvdW5kdXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc29ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB6aXBncm91cGZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHppcGdyb3VwZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0Y2ggRU1QVFk+Cis8IUFUVExJU1QgcGF0Y2gKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0cmlwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcmlnaW5hbGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRjaGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXZlcnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFja3VwcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmV3aGl0ZXNwYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganNwYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgY29tcGlsZXJjbGFzc3BhdGggfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBjbGFzc3BhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgd2ViYXBwIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBqc3BjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBtYXBwZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaWVwbHVnaW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcGlsZXJjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXJpYmFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdlYnhtbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdlYmluYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbXBpbGVyY2xhc3NwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBjb21waWxlcmNsYXNzcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdlYmFwcCBFTVBUWT4KKzwhQVRUTElTVCB3ZWJhcHAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdHlsZSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgZmFjdG9yeSB8IG1vZGlmaWVkIHwgcGFyYW0gfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHhtbGNhdGFsb2cgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IG91dHB1dHByb3BlcnR5IHwgbWFwcGVyIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgc3R5bGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvY2Vzc29yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2NhbmluY2x1ZGVkZGlyZWN0b3JpZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXh0ZW5zaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbG9hZHN0eWxlc2hlZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0eWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmYWN0b3J5IChhdHRyaWJ1dGUpKj4KKzwhQVRUTElTVCBmYWN0b3J5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXR0cmlidXRlIEVNUFRZPgorPCFBVFRMSVNUIGF0dHJpYnV0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3V0cHV0cHJvcGVydHkgRU1QVFk+Cis8IUFUVExJU1Qgb3V0cHV0cHJvcGVydHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG5pY2UgRU1QVFk+Cis8IUFUVExJU1QgbmljZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld3ByaW9yaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3VycmVudHByaW9yaXR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGVzdCAoY2xhc3NwYXRoIHwgc3lzcHJvcGVydHkgfCByZWRpcmVjdG9yIHwgYm9vdGNsYXNzcGF0aCB8IGVudiB8IHN5c3Byb3BlcnR5c2V0IHwgcGVybWlzc2lvbnMgfCBqdm1hcmcgfCBhcmcgfCBhc3NlcnRpb25zIHwgdGVzdGxldCkqPgorPCFBVFRMSVNUIHRlc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JrICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGphciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZXNob3d0cmFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaG93c3VjY2VzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBqdm12ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaG93YmFubmVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2hvd3RyYWNlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN5c3Byb3BlcnR5IEVNUFRZPgorPCFBVFRMSVNUIHN5c3Byb3BlcnR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBrZXkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYm9vdGNsYXNzcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgYm9vdGNsYXNzcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVudiBFTVBUWT4KKzwhQVRUTElTVCBlbnYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGtleSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzeXNwcm9wZXJ0eXNldCAocHJvcGVydHlyZWYgfCBwcm9wZXJ0eXNldCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIHN5c3Byb3BlcnR5c2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZHluYW1pYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuZWdhdGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGVybWlzc2lvbnMgKGdyYW50IHwgcmV2b2tlKSo+Cis8IUFUVExJU1QgcGVybWlzc2lvbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGdyYW50IEVNUFRZPgorPCFBVFRMSVNUIGdyYW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb25zIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmV2b2tlIEVNUFRZPgorPCFBVFRMSVNUIHJldm9rZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9ucyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGp2bWFyZyBFTVBUWT4KKzwhQVRUTElTVCBqdm1hcmcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFyZyBFTVBUWT4KKzwhQVRUTElTVCBhcmcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRlc3RsZXQgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHRlc3RsZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRzdGFtcCAoZm9ybWF0KSo+Cis8IUFUVExJU1QgdHN0YW1wCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZm9ybWF0IEVNUFRZPgorPCFBVFRMSVNUIGZvcm1hdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZXpvbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bml0IChtaWxsaXNlY29uZCB8IHNlY29uZCB8IG1pbnV0ZSB8IGhvdXIgfCBkYXkgfCB3ZWVrIHwgbW9udGggfCB5ZWFyKSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9mZnNldCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVud2FyIChmaWxlc2V0IHwgcGF0dGVybnNldCkqPgorPCFBVFRMSVNUIHVud2FyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2hpc3RvcnkgRU1QVFk+Cis8IUFUVExJU1QgdnNzaGlzdG9yeQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3R5bGUgKGJyaWVmIHwgY29kZWRpZmYgfCBub2ZpbGUgfCBkZWZhdWx0KSAjSU1QTElFRAorICAgICAgICAgIG51bWRheXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbWRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2xhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZWZvcm1hdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3ZzY2hhbmdlbG9nIChmaWxlc2V0IHwgdXNlciB8IGNvbW1hbmRsaW5lKSo+Cis8IUFUVExJU1QgY3ZzY2hhbmdlbG9nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjdnNyc2ggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXNzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3RhcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdnNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVhbGx5cXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9ubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2Vyc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2V4ZWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRheXNpbnBhc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFnIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdXNlciBFTVBUWT4KKzwhQVRUTElTVCB1c2VyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1c2VyaWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXNwbGF5bmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbW1hbmRsaW5lIChtYXJrZXIgfCBhcmd1bWVudCkqPgorPCFBVFRMSVNUIGNvbW1hbmRsaW5lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFya2VyIEVNUFRZPgorPCFBVFRMSVNUIG1hcmtlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXJndW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgYXJndW1lbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWNoZWNraW4gKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBjY21jaGVja2luCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY21hY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjY21kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYnppcDIgRU1QVFk+Cis8IUFUVExJU1QgYnppcDIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgemlwZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzeW5jIChmaWxlc2V0KSo+Cis8IUFUVExJU1Qgc3luYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVlbXB0eWRpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2FkZCBFTVBUWT4KKzwhQVRUTElTVCB2c3NhZGQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdyaXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFkb2MgKHRhZ2xldCB8IGRvY2xldCB8IHBhY2thZ2UgfCBhcmcgfCBsaW5rIHwgZG9jdGl0bGUgfCBib3R0b20gfCBncm91cCB8IHBhY2thZ2VzZXQgfCBmaWxlc2V0IHwgY2xhc3NwYXRoIHwgc291cmNlcGF0aCB8IGZvb3RlciB8IHNvdXJjZSB8IGJvb3RjbGFzc3BhdGggfCBoZWFkZXIgfCBleGNsdWRlcGFja2FnZSB8IHRhZykqPgorPCFBVFRMSVNUIGphdmFkb2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJvdHRvbSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBoZWFkZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9pbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhY2Nlc3MgKHByb3RlY3RlZCB8IHB1YmxpYyB8IHBhY2thZ2UgfCBwcml2YXRlKSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vcXVhbGlmaWVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHVibGljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dGhvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb290ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXRwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VleHRlcm5hbGZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcHJvdGVjdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJyZWFraXRlcmF0b3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9uYXZiYXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JvdXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rb2ZmbGluZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxwYXJhbSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmtzb3VyY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9jYWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlbm9zb3VyY2VwYWNrYWdlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJpdmF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RlcHJlY2F0ZWRsaXN0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHN0eWxlc2hlZXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcGFja2FnZW5hbWVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0cGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VuYW1lcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbmRvd3RpdGxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm90cmVlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwbGl0aW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZWxpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY3RpdGxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VyaWFsd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvbGQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBoZWxwZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc291cmNlZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRkaXJzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9oZWxwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vZGVwcmVjYXRlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdmVydmlldyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhZ2xldCAocGF0aCkqPgorPCFBVFRMSVNUIHRhZ2xldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZG9jbGV0IChwYXRoIHwgcGFyYW0pKj4KKzwhQVRUTElTVCBkb2NsZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhY2thZ2UgRU1QVFk+Cis8IUFUVExJU1QgcGFja2FnZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpbmsgRU1QVFk+Cis8IUFUVExJU1QgbGluaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaHJlZiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9mZmxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZWxpc3Rsb2MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlbGluayAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkb2N0aXRsZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgZG9jdGl0bGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJvdHRvbSAoI1BDREFUQSk+Cis8IUFUVExJU1QgYm90dG9tCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBncm91cCAocGFja2FnZSB8IHRpdGxlKSo+Cis8IUFUVExJU1QgZ3JvdXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGl0bGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0aXRsZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgdGl0bGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhY2thZ2VzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHBhY2thZ2VzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvdXJjZXBhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIHNvdXJjZXBhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmb290ZXIgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGZvb3RlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc291cmNlIEVNUFRZPgorPCFBVFRMSVNUIHNvdXJjZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGhlYWRlciAoI1BDREFUQSk+Cis8IUFUVExJU1QgaGVhZGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleGNsdWRlcGFja2FnZSBFTVBUWT4KKzwhQVRUTElTVCBleGNsdWRlcGFja2FnZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhZyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgdGFnCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVuYWJsZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2NvcGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRyYW5zbGF0ZSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHRyYW5zbGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnVuZGxlY291bnRyeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1bmRsZWxhbmd1YWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3JjZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidW5kbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidW5kbGVlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVuZGxldmFyaWFudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZW92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdGFydHRva2VuIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2lnbmphciAoZmlsZXNldCkqPgorPCFBVFRMSVNUIHNpZ25qYXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0b3JlcGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhenkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgamFyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZXlwYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWxpYXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZWN0aW9uc29ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2V5c3RvcmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNpZ2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGludGVybmFsc2YgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3RvcmV0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2lnbmVkamFyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nsb2NrIEVNUFRZPgorPCFBVFRMSVNUIGNjbG9jaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbnVzZXJzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2Jzb2xldGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2hvd24gKG1hcHBlciB8IHNyY2ZpbGUgfCB0YXJnZXRmaWxlIHwgcmVkaXJlY3RvciB8IGZpbGVsaXN0IHwgZW52IHwgZmlsZXNldCB8IGRpcnNldCB8IGFyZykqPgorPCFBVFRMSVNUIGNob3duCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRzb3VyY2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFyYWxsZWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG93bmVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVtaXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIgfCBib3RoKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNyY2ZpbGUgRU1QVFk+Cis8IUFUVExJU1Qgc3JjZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFyZ2V0ZmlsZSBFTVBUWT4KKzwhQVRUTElTVCB0YXJnZXRmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXJsaWItYXZhaWxhYmxlIChleHRlbnNpb25zZXQgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBqYXJsaWItYXZhaWxhYmxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXh0ZW5zaW9uc2V0IChmaWxlc2V0IHwgbGliZmlsZXNldCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIGV4dGVuc2lvbnNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIFdzZGxUb0RvdG5ldCBFTVBUWT4KKzwhQVRUTElTVCBXc2RsVG9Eb3RuZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuYW1lc3BhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBidWlsZG51bWJlciBFTVBUWT4KKzwhQVRUTElTVCBidWlsZG51bWJlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqcGNvdm1lcmdlIChmaWxlc2V0KSo+Cis8IUFUVExJU1QganBjb3ZtZXJnZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9maWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaG9tZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN2c3ZlcnNpb24gKGNvbW1hbmRsaW5lKSo+Cis8IUFUVExJU1QgY3ZzdmVyc2lvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY3ZzcnNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN2c3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWFsbHlxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJ2ZXJzaW9ucHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb25sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGllbnR2ZXJzaW9ucHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2V4ZWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YWcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlamJqYXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHdlYmxvZ2ljdG9wbGluayB8IHByZXNlbnQgfCBub25lIHwgamJvc3MgfCBub3QgfCBib3JsYW5kIHwgd2VibG9naWMgfCB0eXBlIHwgbW9kaWZpZWQgfCBpcGxhbmV0IHwgb3IgfCBqb25hcyB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgc3VwcG9ydCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IHdlYnNwaGVyZSB8IGNvbnRhaW5zcmVnZXhwIHwgZHRkIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGVqYmphcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRvcmRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFuaWZlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJhc2VuYW1ldGVybWluYXRvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY21wdmVyc2lvbiAoMS4wIHwgMi4wKSAjSU1QTElFRAorICAgICAgICAgIGRlcGVuZGVuY3kgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlamFybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZsYXRkZXN0ZGlyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWluZyAoZWpiLW5hbWUgfCBkaXJlY3RvcnkgfCBkZXNjcmlwdG9yIHwgYmFzZWphcm5hbWUpICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdlYmxvZ2ljdG9wbGluayAoY2xhc3NwYXRoIHwgd2xjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eSkqPgorPCFBVFRMSVNUIHdlYmxvZ2ljdG9wbGluaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmV3Y21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmR0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWJ1aWxkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b3BsaW5rZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2xkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2VibG9naWNkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3bGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWRlYnVnbGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcGlsZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvbGRjbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWpiY2NsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9lamJjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvcGxpbmtkZXNjcmlwdG9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdsY2xhc3NwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCB3bGNsYXNzcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpib3NzIChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBqYm9zcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBib3JsYW5kIChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBib3JsYW5kCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJpZnlhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXZhMmlpb3BwYXJhbXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyaWZ5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyYXRlY2xpZW50ICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdlYmxvZ2ljIChjbGFzc3BhdGggfCB3bGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5KSo+Cis8IUFUVExJU1Qgd2VibG9naWMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5ld2NtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlamJkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1hcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVidWlsZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2xkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2VibG9naWNkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3bGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWRlYnVnbGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcGlsZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvbGRjbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWpiY2NsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9lamJjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpcGxhbmV0IChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBpcGxhbmV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmF0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWFzaG9tZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpvbmFzIChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBqb25hcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgam9uYXNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbGFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXZhYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcmIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2dlbmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJtaWNvcHRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YWNvcHRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm92YWxpZGF0aW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmF0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9jb21waWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2VjcHJvcGFnICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN1cHBvcnQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHN1cHBvcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdlYnNwaGVyZSAoY2xhc3NwYXRoIHwgd2FzY2xhc3NwYXRoKSo+Cis8IUFUVExJU1Qgd2Vic3BoZXJlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuZXdjbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWpiZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcm1pY29wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2luZm9ybSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWJ1aWxkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRic2NoZW1hIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVqYmRlcGxveSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2UzNSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0ZW1wZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm92YWxpZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb2RlZ2VuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRidmVuZG9yIChTUUw5MiB8IFNRTDk5IHwgREIyVURCV0lOX1Y3MSB8IERCMlVEQk9TMzkwX1Y2IHwgREIyVURCQVM0MDBfVjRSNSB8IE9SQUNMRV9WOCB8IElORk9STUlYX1Y5MiB8IFNZQkFTRV9WMTE5MiB8IE1TU1FMU0VSVkVSX1Y3IHwgTVlTUUxfVjMyMykgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3YXNjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvbGRjbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHJhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm93YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3YXNjbGFzc3BhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIHdhc2NsYXNzcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdhciAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCBtYW5pZmVzdCB8IHR5cGUgfCBtZXRhaW5mIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgbGliIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgaW5kZXhqYXJzIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IHppcGdyb3VwZmlsZXNldCB8IHppcGZpbGVzZXQgfCBjbGFzc2VzIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IHdlYmluZiB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgd2FyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZHVwbGljYXRlIChhZGQgfCBwcmVzZXJ2ZSB8IGZhaWwpICNJTVBMSUVECisgICAgICAgICAgd2hlbmVtcHR5IChmYWlsIHwgc2tpcCB8IGNyZWF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcm91bmR1cCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgamFyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3ZWJ4bWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc29ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgd2FyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc2V0bWFuaWZlc3QgKHNraXAgfCBtZXJnZSB8IG1lcmdld2l0aG91dG1haW4pICNJTVBMSUVECisgICAgICAgICAgemlwZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1hbmlmZXN0IChhdHRyaWJ1dGUgfCBzZWN0aW9uKSo+Cis8IUFUVExJU1QgbWFuaWZlc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNlY3Rpb24gKGF0dHJpYnV0ZSkqPgorPCFBVFRMSVNUIHNlY3Rpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXRhaW5mIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBtZXRhaW5mCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZW1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlybW9kZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpYiAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgbGliCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZW1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlybW9kZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGluZGV4amFycyAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgaW5kZXhqYXJzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3NlcyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY2xhc3NlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJpbmYgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHdlYmluZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZW5hbWUgRU1QVFk+Cis8IUFUVExJU1QgcmVuYW1lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzZXF1ZW50aWFsICgldGFza3M7KSo+Cis8IUFUVExJU1Qgc2VxdWVudGlhbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNlcnZlcmRlcGxveSAod2VibG9naWMgfCBnZW5lcmljIHwgam9uYXMpKj4KKzwhQVRUTElTVCBzZXJ2ZXJkZXBsb3kKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2UgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBnZW5lcmljIChhcmcgfCBjbGFzc3BhdGggfCBqdm1hcmcpKj4KKzwhQVRUTElTVCBnZW5lcmljCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJvcGVydHkgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIHByb3BlcnR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcnByb3BlcnR5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW52aXJvbm1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN1YmFudCAocmVmZXJlbmNlIHwgZmlsZXNldCB8IGJ1aWxkcGF0aGVsZW1lbnQgfCBkaXJzZXQgfCBidWlsZHBhdGggfCBwcm9wZXJ0eXNldCB8IGZpbGVsaXN0IHwgcHJvcGVydHkpKj4KKzwhQVRUTElTVCBzdWJhbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNhbnRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdGFsbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluaGVyaXRyZWZzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidWlsZHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1aWxkcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYnVpbGRwYXRoZWxlbWVudCBFTVBUWT4KKzwhQVRUTElTVCBidWlsZHBhdGhlbGVtZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBidWlsZHBhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGJ1aWxkcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1vdmUgKGZpbHRlcmNoYWluIHwgZmlsZXNldCB8IGZpbHRlcnNldCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIG1vdmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZsYXR0ZW4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9maWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVlbXB0eWRpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVuYWJsZW11bHRpcGxlbWFwcGluZ3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZWxhc3Rtb2RpZmllZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJpbmcgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaWxkYXNtIEVNUFRZPgorPCFBVFRMSVNUIGlsZGFzbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYXNzZW1ibGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIChhc2NpaSB8IHV0ZjggfCB1bmljb2RlKSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9ncmVzc2JhciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsaW5lbnVtYmVycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByYXdleGNlcHRpb25oYW5kbGluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzaG93c291cmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1ldGFkYXRhICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ5dGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVvdGVhbGxuYW1lcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhlYWRlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aXNpYmlsaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaXRlbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvcHlkaXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNvcHlkaXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZsYXR0ZW4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZW92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcmluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjY2hlY2tpbiBFTVBUWT4KKzwhQVRUTElTVCBjY2NoZWNraW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHByZXNlcnZldGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3dhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlkZW50aWNhbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBjb3B5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY3VubG9jayBFTVBUWT4KKzwhQVRUTElTVCBjY3VubG9jaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdsanNwYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgd2xqc3BjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZml4Y3JsZiAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZml4Y3JsZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFiIChhZGQgfCBhc2lzIHwgcmVtb3ZlKSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjciAoYWRkIHwgYXNpcyB8IHJlbW92ZSkgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVvbCAoYXNpcyB8IGNyIHwgbGYgfCBjcmxmIHwgbWFjIHwgdW5peCB8IGRvcykgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBqYXZhZmlsZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW9mIChhZGQgfCBhc2lzIHwgcmVtb3ZlKSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFibGVuZ3RoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpeGxhc3QgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb3NnZXQgRU1QVFk+Cis8IUFUVExJU1Qgc29zZ2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzb3Nob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9qZWN0cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vY2FjaGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zY21kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXRoY29udmVydCAocGF0aCB8IG1hcCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIHBhdGhjb252ZXJ0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhzZXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyc2VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2V0b25lbXB0eSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldG9zIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFwIEVNUFRZPgorPCFBVFRMSVNUIG1hcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVjb3JkIEVNUFRZPgorPCFBVFRMSVNUIHJlY29yZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2xldmVsIChlcnJvciB8IHdhcm4gfCBpbmZvIHwgdmVyYm9zZSB8IGRlYnVnKSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW1hY3Ntb2RlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFjdGlvbiAoc3RhcnQgfCBzdG9wKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4ZWMgKGFyZyB8IHJlZGlyZWN0b3IgfCBlbnYpKj4KKzwhQVRUTElTVCBleGVjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2xhYmVsIEVNUFRZPgorPCFBVFRMSVNUIGNjbWtsYWJlbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZW5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZvYiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqcGNvdnJlcG9ydCAocmVmZXJlbmNlIHwgY292ZXJhZ2VwYXRoIHwgc291cmNlcGF0aCkqPgorPCFBVFRMSVNUIGpwY292cmVwb3J0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzbmFwc2hvdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwZXJjZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGV4ZWN1dGl2ZSB8IHN1bW1hcnkgfCBkZXRhaWxlZCB8IHZlcnlkZXRhaWxlZCkgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcm1hdCAoaHRtbCB8IHRleHQgfCB4bWwpICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNvdXJjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvdmVyYWdlcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgY292ZXJhZ2VwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhlY29uIChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBleGVjb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2tpcGVtcHR5ZmlsZXNldHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbGlmZXhlY3V0aW9uZmFpbHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIgfCBib3RoKSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZHNvdXJjZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcndhcmRzbGFzaCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVtaXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsYXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFyYWxsZWwgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NtY2hlY2tvdXQgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBjY21jaGVja291dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFzayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFudCAocmVmZXJlbmNlIHwgcHJvcGVydHlzZXQgfCBwcm9wZXJ0eSB8IHRhcmdldCkqPgorPCFBVFRMSVNUIGFudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0YWxsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluaGVyaXRyZWZzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYW50ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldCBFTVBUWT4KKzwhQVRUTElTVCB0YXJnZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB4bWx2YWxpZGF0ZSAoZmlsZXNldCB8IGNsYXNzcGF0aCB8IGR0ZCB8IHhtbGNhdGFsb2cgfCBhdHRyaWJ1dGUgfCBwcm9wZXJ0eSkqPgorPCFBVFRMSVNUIHhtbHZhbGlkYXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGVuaWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB3YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB4c2x0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBmYWN0b3J5IHwgbW9kaWZpZWQgfCBwYXJhbSB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBjbGFzc3BhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgeG1sY2F0YWxvZyB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgb3V0cHV0cHJvcGVydHkgfCBtYXBwZXIgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB4c2x0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2Nlc3NvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNjYW5pbmNsdWRlZGRpcmVjdG9yaWVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4dGVuc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxvYWRzdHlsZXNoZWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXBsYW5ldC1lamJjIChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBpcGxhbmV0LWVqYmMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVqYmRlc2NyaXB0b3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpYXNkZXNjcmlwdG9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWFzaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyYXRlZCAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21jaGVja2ludGFzayAoZmlsZXNldCkqPgorPCFBVFRMSVNUIGNjbWNoZWNraW50YXNrCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY21hY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjY21kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ3ppcCBFTVBUWT4KKzwhQVRUTElTVCBnemlwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbmF0aXZlMmFzY2lpIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBhcmcgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBtYXBwZXIgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBuYXRpdmUyYXNjaWkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmV2ZXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjcm10eXBlIEVNUFRZPgorPCFBVFRMSVNUIGNjcm10eXBlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGVuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcm1hbGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBla2luZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZvYiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlYXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgbWFuaWZlc3QgfCB0eXBlIHwgbWV0YWluZiB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGFyY2hpdmVzIHwgaW5kZXhqYXJzIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IHppcGdyb3VwZmlsZXNldCB8IHppcGZpbGVzZXQgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBlYXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGtlZXBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkdXBsaWNhdGUgKGFkZCB8IHByZXNlcnZlIHwgZmFpbCkgI0lNUExJRUQKKyAgICAgICAgICB3aGVuZW1wdHkgKGZhaWwgfCBza2lwIHwgY3JlYXRlKSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByb3VuZHVwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFuaWZlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVwZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWFyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHB4bWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc29ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzZXRtYW5pZmVzdCAoc2tpcCB8IG1lcmdlIHwgbWVyZ2V3aXRob3V0bWFpbikgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXJjaGl2ZXMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGFyY2hpdmVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZW1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlybW9kZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlucHV0ICgjUENEQVRBKT4KKzwhQVRUTElTVCBpbnB1dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsaWRhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByZXNldGRlZiAoJXRhc2tzOykqPgorPCFBVFRMSVNUIHByZXNldGRlZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBybWljIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IGV4dGRpcnMgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgY29tcGlsZXJhcmcgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBybWljCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJpZnkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpaW9wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlkbG9wdHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRkaXJzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlYmFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWFudHJ1bnRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWphdmFydW50aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tcGlsZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaWlvcG9wdHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3R1YnZlcnNpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21waWxlcmFyZyBFTVBUWT4KKzwhQVRUTElTVCBjb21waWxlcmFyZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNoZWNrc3VtIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY2hlY2tzdW0KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZWV4dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvdGFscHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlYWRidWZmZXJzaXplIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyaWZ5cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhbGdvcml0aG0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm92aWRlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1haWwgKGZpbGVzZXQgfCBiY2MgfCBtZXNzYWdlIHwgcmVwbHl0byB8IGNjIHwgZnJvbSB8IHRvKSo+Cis8IUFUVExJU1QgbWFpbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NsaXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZWZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIChhdXRvIHwgbWltZSB8IHV1IHwgcGxhaW4pICNJTVBMSUVECisgICAgICAgICAgY2hhcnNldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3ViamVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzc2wgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9saXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlbWltZXR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiY2NsaXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbHl0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haWxob3N0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZmlsZW5hbWVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBiY2MgRU1QVFk+Cis8IUFUVExJU1QgYmNjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1lc3NhZ2UgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIG1lc3NhZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG1pbWV0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2hhcnNldCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGx5dG8gRU1QVFk+Cis8IUFUVExJU1QgcmVwbHl0bworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjYyBFTVBUWT4KKzwhQVRUTElTVCBjYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmcm9tIEVNUFRZPgorPCFBVFRMSVNUIGZyb20KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdG8gRU1QVFk+Cis8IUFUVExJU1QgdG8KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbG9hZGZpbGUgKGZpbHRlcmNoYWluKSo+Cis8IUFUVExJU1QgbG9hZGZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2NoZWNrb3V0IEVNUFRZPgorPCFBVFRMSVNUIHZzc2NoZWNrb3V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdldGxvY2FsY29weSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXRpbWVzdGFtcCAoY3VycmVudCB8IG1vZGlmaWVkIHwgdXBkYXRlZCkgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZWZpbGVzIChyZXBsYWNlIHwgc2tpcCB8IGZhaWwpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29zY2hlY2tpbiBFTVBUWT4KKzwhQVRUTElTVCBzb3NjaGVja2luCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzb3Nob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvamVjdHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2NhY2hlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc2NtZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWltZW1haWwgKGZpbGVzZXQgfCBiY2MgfCBtZXNzYWdlIHwgcmVwbHl0byB8IGNjIHwgZnJvbSB8IHRvKSo+Cis8IUFUVExJU1QgbWltZW1haWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2VmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyAoYXV0byB8IG1pbWUgfCB1dSB8IHBsYWluKSAjSU1QTElFRAorICAgICAgICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1YmplY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3NsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haWxwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZW1pbWV0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmNjbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGx5dG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWlsaG9zdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWZpbGVuYW1lcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ3VuemlwIEVNUFRZPgorPCFBVFRMSVNUIGd1bnppcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb25jYXQgKCNQQ0RBVEEgfCBmaWx0ZXJjaGFpbiB8IGZpbGVzZXQgfCBmaWxlbGlzdCB8IHBhdGggfCBmb290ZXIgfCBoZWFkZXIpKj4KKzwhQVRUTElTVCBjb25jYXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmluYXJ5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVvbCAoYXNpcyB8IGNyIHwgbGYgfCBjcmxmIHwgbWFjIHwgdW5peCB8IGRvcykgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZml4bGFzdGxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjYWIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjYWIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNhYmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbnMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0b3VjaCAoZmlsZXNldCB8IGZpbGVsaXN0IHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgdG91Y2gKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBta2RpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWlsbGlzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGV0aW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGFyYWxsZWwgKCV0YXNrczsgfCBkYWVtb25zKSo+Cis8IUFUVExJU1QgcGFyYWxsZWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHBvbGxpbnRlcnZhbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aHJlYWRzcGVycHJvY2Vzc29yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRocmVhZGNvdW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uYW55ICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRhZW1vbnMgKCV0YXNrczspKj4KKzwhQVRUTElTVCBkYWVtb25zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhbnRjYWxsIChyZWZlcmVuY2UgfCBwcm9wZXJ0eXNldCB8IHRhcmdldCB8IHBhcmFtKSo+Cis8IUFUVExJU1QgYW50Y2FsbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0YWxsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluaGVyaXRyZWZzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2JsIEVNUFRZPgorPCFBVFRMSVNUIGNjbWtibAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmxhYmVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZ1bGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm93YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZGVudGljYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlbGluZXJvb3RuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjY2hlY2tvdXQgRU1QVFk+Cis8IUFUVExJU1QgY2NjaGVja291dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzZXJ2ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3RjbyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kYXRhICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm93YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJyYW5jaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0eXBlZGVmIChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCB0eXBlZGVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRhcHR0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9uZXJyb3IgKGZhaWwgfCByZXBvcnQgfCBpZ25vcmUpICNJTVBMSUVECisgICAgICAgICAgbG9hZGVycmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGFwdGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9ybWF0IChwcm9wZXJ0aWVzIHwgeG1sKSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmV2ZXJzZWxvYWRlciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB4bWxwcm9wZXJ0eSAoeG1sY2F0YWxvZykqPgorPCFBVFRMSVNUIHhtbHByb3BlcnR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VtYW50aWNhdHRyaWJ1dGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXByb290ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbGxhcHNlYXR0cmlidXRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2YWxpZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcm9vdGRpcmVjdG9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZW1hbnRpY2F0dHJpYnV0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbXBvcnQgRU1QVFk+Cis8IUFUVExJU1QgaW1wb3J0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbmFsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvcHkgKGZpbHRlcmNoYWluIHwgZmlsZXNldCB8IGZpbHRlcnNldCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIGNvcHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZsYXR0ZW4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9maWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVlbXB0eWRpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVuYWJsZW11bHRpcGxlbWFwcGluZ3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZWxhc3Rtb2RpZmllZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJpbmcgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQganNoYXJwYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCByZXNvdXJjZSB8IGRlZmluZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHJlZmVyZW5jZSB8IHNyYyB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBqc2hhcnBjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZlcmVuY2VzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcmVzcG9uc2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbmNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbG1vZHVsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW4zMmljb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1dGY4b3V0cHV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVkZWZhdWx0cmVmZXJlbmNlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcHRpbWl6ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXR0eXBlIChleGUgfCBsaWJyYXJ5IHwgbW9kdWxlIHwgd2luZXhlKSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB3aW4zMnJlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2VjdXJlc2NvcGluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHVyZWphdmEgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3YXJubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZlcmVuY2VmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN5bWxpbmsgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBzeW1saW5rCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5rZmlsZW5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmsgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFudHN0cnVjdHVyZSBFTVBUWT4KKzwhQVRUTElTVCBhbnRzdHJ1Y3R1cmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzY3JpcHQgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHNjcmlwdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhbmd1YWdlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NtY3JlYXRldGFzayBFTVBUWT4KKzwhQVRUTElTVCBjY21jcmVhdGV0YXNrCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdWJzeXN0ZW0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGxhdGZvcm0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjY21hY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjY21kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlbGVhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJwbSBFTVBUWT4KKzwhQVRUTElTVCBycG0KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlbW92ZXNvdXJjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYW5idWlsZGRpciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZW1vdmVzcGVjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwZWNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9wZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcnBtYnVpbGRjb21tYW5kIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVsZXRlIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZGVsZXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWVtcHR5ZGlycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWxldGVvbmV4aXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2UgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgcmVwbGFjZWZpbHRlciB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCByZXBsYWNldG9rZW4gfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCByZXBsYWNldmFsdWUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCByZXBsYWNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdW1tYXJ5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlZmlsdGVyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZWZpbHRlciBFTVBUWT4KKzwhQVRUTElTVCByZXBsYWNlZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNldG9rZW4gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHJlcGxhY2V0b2tlbgorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXZhbHVlICgjUENEQVRBKT4KKzwhQVRUTElTVCByZXBsYWNldmFsdWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1tZXRyaWNzIChmaWxlc2V0IHwganZtYXJnIHwgY2xhc3NwYXRoIHwgcGF0aCB8IHNvdXJjZXBhdGgpKj4KKzwhQVRUTElTVCBtbWV0cmljcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXRhbWF0YWhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSAoY29tcGlsYXRpb24tdW5pdHMgfCBmaWxlcyB8IG1ldGhvZHMgfCB0eXBlcyB8IHBhY2thZ2VzKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGF0dHJpYiAobWFwcGVyIHwgc3JjZmlsZSB8IHRhcmdldGZpbGUgfCByZWRpcmVjdG9yIHwgZmlsZWxpc3QgfCBlbnYgfCBmaWxlc2V0IHwgZGlyc2V0IHwgYXJnKSo+Cis8IUFUVExJU1QgYXR0cmliCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRzb3VyY2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFyYWxsZWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWFkb25seSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaGlkZGVuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZW1pc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbGlmZXhlY3V0aW9uZmFpbHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXhwYXJhbGxlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN5c3RlbSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyY2hpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2FpdGZvciAoaXNmYWxzZSB8IGlzcmVmZXJlbmNlIHwgZXF1YWxzIHwgYXZhaWxhYmxlIHwgbm90IHwgY29udGFpbnMgfCBvcyB8IG9yIHwgYW5kIHwgZmlsZXNtYXRjaCB8IGNoZWNrc3VtIHwgaXN0cnVlIHwgaXNzZXQgfCBzb2NrZXQgfCBodHRwIHwgdXB0b2RhdGUpKj4KKzwhQVRUTElTVCB3YWl0Zm9yCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjaGVja2V2ZXJ5dW5pdCAobWlsbGlzZWNvbmQgfCBzZWNvbmQgfCBtaW51dGUgfCBob3VyIHwgZGF5IHwgd2VlaykgI0lNUExJRUQKKyAgICAgICAgICBjaGVja2V2ZXJ5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4d2FpdHVuaXQgKG1pbGxpc2Vjb25kIHwgc2Vjb25kIHwgbWludXRlIHwgaG91ciB8IGRheSB8IHdlZWspICNJTVBMSUVECisgICAgICAgICAgbWF4d2FpdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlzZmFsc2UgRU1QVFk+Cis8IUFUVExJU1QgaXNmYWxzZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXNyZWZlcmVuY2UgRU1QVFk+Cis8IUFUVExJU1QgaXNyZWZlcmVuY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVxdWFscyBFTVBUWT4KKzwhQVRUTElTVCBlcXVhbHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRyaW0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXJnMiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyZzEgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGF2YWlsYWJsZSAoY2xhc3NwYXRoIHwgZmlsZXBhdGgpKj4KKzwhQVRUTElTVCBhdmFpbGFibGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZXN5c3RlbWNsYXNzZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpcikgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZXBhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGZpbGVwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3MgRU1QVFk+Cis8IUFUVExJU1Qgb3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFtaWx5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJjaCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGVzbWF0Y2ggRU1QVFk+Cis8IUFUVExJU1QgZmlsZXNtYXRjaAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZTIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlMSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlzdHJ1ZSBFTVBUWT4KKzwhQVRUTElTVCBpc3RydWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZhbHVlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlzc2V0IEVNUFRZPgorPCFBVFRMSVNUIGlzc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvY2tldCBFTVBUWT4KKzwhQVRUTElTVCBzb2NrZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBodHRwIEVNUFRZPgorPCFBVFRMSVNUIGh0dHAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yc2JlZ2luYXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1cHRvZGF0ZSAoc3JjZmlsZXMgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCB1cHRvZGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNyY2ZpbGVzIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBzcmNmaWxlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdW50YXIgKGZpbGVzZXQgfCBwYXR0ZXJuc2V0KSo+Cis8IUFUVExJU1QgdW50YXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uIChub25lIHwgZ3ppcCB8IGJ6aXAyKSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbG9hZHByb3BlcnRpZXMgKGZpbHRlcmNoYWluIHwgY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgbG9hZHByb3BlcnRpZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVjaG9wcm9wZXJ0aWVzIChwcm9wZXJ0eXNldCkqPgorPCFBVFRMSVNUIGVjaG9wcm9wZXJ0aWVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9ybWF0ICh4bWwgfCB0ZXh0KSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGp1bml0IChjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eSB8IGJvb3RjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eXNldCB8IGVudiB8IHRlc3QgfCBwZXJtaXNzaW9ucyB8IGp2bWFyZyB8IGZvcm1hdHRlciB8IGJhdGNodGVzdCB8IGFzc2VydGlvbnMpKj4KKzwhQVRUTElTVCBqdW5pdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBoYWx0b25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmludHN1bW1hcnkgKHRydWUgfCB5ZXMgfCBmYWxzZSB8IG5vIHwgb24gfCBvZmYgfCB3aXRoT3V0QW5kRXJyKSAjSU1QTElFRAorICAgICAgICAgIGhhbHRvbmZhaWx1cmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbHVyZXByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2hvd291dHB1dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRlbXBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlYW50cnVudGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJ0cmFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmttb2RlIChvbmNlIHwgcGVyVGVzdCB8IHBlckJhdGNoKSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsb2FkaW5nICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZvcm1hdHRlciBFTVBUWT4KKzwhQVRUTElTVCBmb3JtYXR0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVzZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZSAocGxhaW4gfCB4bWwgfCBicmllZikgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dGVuc2lvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJhdGNodGVzdCAoZmlsZXNldCB8IGZvcm1hdHRlcikqPgorPCFBVFRMSVNUIGJhdGNodGVzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBoYWx0b25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb3JrICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbHVyZXByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVydHJhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaGFsdG9uZmFpbHVyZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2hncnAgKG1hcHBlciB8IHNyY2ZpbGUgfCB0YXJnZXRmaWxlIHwgcmVkaXJlY3RvciB8IGZpbGVsaXN0IHwgZW52IHwgZmlsZXNldCB8IGRpcnNldCB8IGFyZykqPgorPCFBVFRMSVNUIGNoZ3JwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRzb3VyY2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFyYWxsZWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdyb3VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVtaXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIgfCBib3RoKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJ1bnppcDIgRU1QVFk+Cis8IUFUVExJU1QgYnVuemlwMgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3aGljaHJlc291cmNlIChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCB3aGljaHJlc291cmNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29weWZpbGUgRU1QVFk+Cis8IUFUVExJU1QgY29weWZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZvcmNlb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzY3JlYXRlIEVNUFRZPgorPCFBVFRMSVNUIHZzc2NyZWF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYWNyb2RlZiAoc2VxdWVudGlhbCB8IGVsZW1lbnQgfCBhdHRyaWJ1dGUgfCB0ZXh0KSo+Cis8IUFUVExJU1QgbWFjcm9kZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZWxlbWVudCBFTVBUWT4KKzwhQVRUTElTVCBlbGVtZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBpbXBsaWNpdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25hbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0ZXh0IEVNUFRZPgorPCFBVFRMSVNUIHRleHQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRyaW0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdW5qYXIgKGZpbGVzZXQgfCBwYXR0ZXJuc2V0KSo+Cis8IUFUVExJU1QgdW5qYXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdmJjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IHJlc291cmNlIHwgZGVmaW5lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgcmVmZXJlbmNlIHwgc3JjIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHZiYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJlc3BvbnNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZW1vdmVpbnRjaGVja3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWluY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRpdGlvbmFsbW9kdWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbjMyaWNvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbnN0cmljdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1dGY4b3V0cHV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVkZWZhdWx0cmVmZXJlbmNlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcHRpbWl6ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXR0eXBlIChleGUgfCBsaWJyYXJ5IHwgbW9kdWxlIHwgd2luZXhlKSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcm9vdG5hbWVzcGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgd2luMzJyZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25leHBsaWNpdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3YXJubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25jb21wYXJlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wb3J0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmVyZW5jZWZpbGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd3NkbHRvZG90bmV0IEVNUFRZPgorPCFBVFRMSVNUIHdzZGx0b2RvdG5ldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdXJsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWVzcGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhbmd1YWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1rZGlyIEVNUFRZPgorPCFBVFRMSVNUIG1rZGlyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29uZGl0aW9uIChpc2ZhbHNlIHwgaXNyZWZlcmVuY2UgfCBlcXVhbHMgfCBhdmFpbGFibGUgfCBub3QgfCBjb250YWlucyB8IG9zIHwgb3IgfCBhbmQgfCBmaWxlc21hdGNoIHwgY2hlY2tzdW0gfCBpc3RydWUgfCBpc3NldCB8IHNvY2tldCB8IGh0dHAgfCB1cHRvZGF0ZSkqPgorPCFBVFRMSVNUIGNvbmRpdGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVsc2UgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdnMgKGNvbW1hbmRsaW5lKSo+Cis8IUFUVExJU1QgY3ZzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjdnNyc2ggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXNzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3Zzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYWxseXF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb25sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZXhlYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhZyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRlbXBmaWxlIEVNUFRZPgorPCFBVFRMSVNUIHRlbXBmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganVuaXRyZXBvcnQgKHJlcG9ydCB8IGZpbGVzZXQpKj4KKzwhQVRUTElTVCBqdW5pdHJlcG9ydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9maWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwb3J0IEVNUFRZPgorPCFBVFRMSVNUIHJlcG9ydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcm1hdCAoZnJhbWVzIHwgbm9mcmFtZXMpICNJTVBMSUVECisgICAgICAgICAgZXh0ZW5zaW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2F0dHIgRU1QVFk+Cis8IUFUVExJU1QgY2Nta2F0dHIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZXZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGVuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFza2RlZiAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgdGFza2RlZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkYXB0dG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvbmVycm9yIChmYWlsIHwgcmVwb3J0IHwgaWdub3JlKSAjSU1QTElFRAorICAgICAgICAgIGxvYWRlcnJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRhcHRlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcm1hdCAocHJvcGVydGllcyB8IHhtbCkgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJldmVyc2Vsb2FkZXIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZWNobyAoI1BDREFUQSk+Cis8IUFUVExJU1QgZWNobworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxldmVsIChlcnJvciB8IHdhcm5pbmcgfCBpbmZvIHwgdmVyYm9zZSB8IGRlYnVnKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjdXBkYXRlIEVNUFRZPgorPCFBVFRMSVNUIGNjdXBkYXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZXRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVuYW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncmFwaGljYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdXJyZW50dGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmEgKGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5IHwgcmVkaXJlY3RvciB8IGJvb3RjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eXNldCB8IGVudiB8IHBlcm1pc3Npb25zIHwganZtYXJnIHwgYXJnIHwgYXNzZXJ0aW9ucykqPgorPCFBVFRMSVNUIGphdmEKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JrICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGphciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm12ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZW5hbWVleHQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHJlbmFtZWV4dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2V4dGVuc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmcm9tZXh0ZW5zaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2xhYmVsIEVNUFRZPgorPCFBVFRMSVNUIHZzc2xhYmVsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJhc2VuYW1lIEVNUFRZPgorPCFBVFRMSVNUIGJhc2VuYW1lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamF2YWRvYzIgKHRhZ2xldCB8IGRvY2xldCB8IHBhY2thZ2UgfCBhcmcgfCBsaW5rIHwgZG9jdGl0bGUgfCBib3R0b20gfCBncm91cCB8IHBhY2thZ2VzZXQgfCBmaWxlc2V0IHwgY2xhc3NwYXRoIHwgc291cmNlcGF0aCB8IGZvb3RlciB8IHNvdXJjZSB8IGJvb3RjbGFzc3BhdGggfCBoZWFkZXIgfCBleGNsdWRlcGFja2FnZSB8IHRhZykqPgorPCFBVFRMSVNUIGphdmFkb2MyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBib3R0b20gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGVhZGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGluayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vaW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWNjZXNzIChwcm90ZWN0ZWQgfCBwdWJsaWMgfCBwYWNrYWdlIHwgcHJpdmF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3F1YWxpZmllciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1YmxpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRob3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9vdGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlZXh0ZXJuYWxmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHByb3RlY3RlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBicmVha2l0ZXJhdG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vbmF2YmFyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyb3VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlua29mZmxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRpdGlvbmFscGFyYW0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rc291cmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvY2FsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZW5vc291cmNlcGFja2FnZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByaXZhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZXByZWNhdGVkbGlzdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZXNoZWV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2VuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXBhY2thZ2VuYW1lcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlbmFtZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW5kb3d0aXRsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdHJlZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGxpdGluZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VsaXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2N0aXRsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcmlhbHdhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2xkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGVscGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZWZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZGlycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vaGVscCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2RlcHJlY2F0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3ZlcnZpZXcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NjcCBFTVBUWT4KKzwhQVRUTElTVCB2c3NjcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhciAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgdGFyZmlsZXNldCB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHRhcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uIChub25lIHwgZ3ppcCB8IGJ6aXAyKSAjSU1QTElFRAorICAgICAgICAgIGxvbmdmaWxlICh3YXJuIHwgZmFpbCB8IHRydW5jYXRlIHwgZ251IHwgb21pdCkgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHRhcmZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmVsZWFkaW5nc2xhc2hlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1aWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyb3VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnaWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlybW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzZXRwcm94eSBFTVBUWT4KKzwhQVRUTElTVCBzZXRwcm94eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbm9ucHJveHlob3N0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3h5aG9zdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvY2tzcHJveHlob3N0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJveHlwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29ja3Nwcm94eXBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3h5dXNlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJveHlwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlsYXNtIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHJlZmVyZW5jZSB8IHNyYyB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBpbGFzbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb3duZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXR0eXBlIChleGUgfCBsaWJyYXJ5KSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZWZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaXN0aW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtleWZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb3NjaGVja291dCBFTVBUWT4KKzwhQVRUTElTVCBzb3NjaGVja291dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc29zaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvamVjdHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2NhY2hlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc2NtZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXBwbHkgKG1hcHBlciB8IHNyY2ZpbGUgfCB0YXJnZXRmaWxlIHwgcmVkaXJlY3RvciB8IGZpbGVsaXN0IHwgZW52IHwgZmlsZXNldCB8IGRpcnNldCB8IGFyZykqPgorPCFBVFRMSVNUIGFwcGx5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQKKyAgICAgICAgICBtYXhwYXJhbGxlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRzb3VyY2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjdW5jaGVja291dCBFTVBUWT4KKzwhQVRUTElTVCBjY3VuY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBjb3B5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXJsaWItcmVzb2x2ZSAoYW50IHwgbG9jYXRpb24gfCB1cmwgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBqYXJsaWItcmVzb2x2ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2hlY2tleHRlbnNpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbG9jYXRpb24gRU1QVFk+Cis8IUFUVExJU1QgbG9jYXRpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdXJsIEVNUFRZPgorPCFBVFRMSVNUIHVybAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3ZzdGFnZGlmZiAoY29tbWFuZGxpbmUpKj4KKzwhQVRUTElTVCBjdnN0YWdkaWZmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjdnNyc2ggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmR0YWcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXNzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3Zzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYWxseXF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN0YXJ0dGFnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9ubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmRkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9leGVjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3RhcnRkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFnIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamxpbmsgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IG1lcmdlZmlsZXMgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgYWRkZmlsZXMgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGpsaW5rCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFkZGZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXJnZWZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXJnZWZpbGVzIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBtZXJnZWZpbGVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYWRkZmlsZXMgKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGFkZGZpbGVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamF2YWNjIEVNUFRZPgorPCFBVFRMSVNUIGphdmFjYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVidWdwYXJzZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgamF2YWNjaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlbGFjaGVjayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcHRpbWl6ZXRva2VubWFuYWdlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tb250b2tlbmFjdGlvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBidWlsZHRva2VubWFuYWdlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzYW5pdHljaGVjayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBidWlsZHBhcnNlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdGhlcmFtYmlndWl0eWNoZWNrIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9va2FoZWFkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWdsb29rYWhlYWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2hvaWNlYW1iaWd1aXR5Y2hlY2sgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmljb2RlaW5wdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlcmNoYXJzdHJlYW0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVidWd0b2tlbm1hbmFnZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2VlcGxpbmVjb2x1bW4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGRpcmVjdG9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhY2hldG9rZW5zICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGphdmF1bmljb2RlZXNjYXBlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN0YXRpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVjYXNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXJ0b2tlbm1hbmFnZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3JyZXBvcnRpbmcgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2htb2QgKG1hcHBlciB8IGluY2x1ZGUgfCBzcmNmaWxlIHwgZXhjbHVkZSB8IHRhcmdldGZpbGUgfCBwYXR0ZXJuc2V0IHwgcmVkaXJlY3RvciB8IGVudiB8IGZpbGVsaXN0IHwgZmlsZXNldCB8IGRpcnNldCB8IGFyZykqPgorPCFBVFRMSVNUIGNobW9kCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRzb3VyY2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbGxlbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsYXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2tpcGVtcHR5ZmlsZXNldHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcndhcmRzbGFzaCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVtaXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBlcm0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwdmNzIChwdmNzcHJvamVjdCkqPgorPCFBVFRMSVNUIHB2Y3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVwZGF0ZW9ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb25maWcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdmNzYmluIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd29ya3NwYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHZjc3Byb2plY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbmFtZWZvcm1hdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJpZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcG9zaXRvcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVyZXR1cm5jb2RlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJldmlzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGluZXN0YXJ0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9tb3Rpb25ncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwdmNzcHJvamVjdCBFTVBUWT4KKzwhQVRUTElTVCBwdmNzcHJvamVjdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphcmxpYi1tYW5pZmVzdCAob3B0aW9ucyB8IGF0dHJpYnV0ZSB8IGRlcGVuZHMgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBqYXJsaWItbWFuaWZlc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG9wdGlvbnMgKGZpbGVzZXQgfCBsaWJmaWxlc2V0IHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1Qgb3B0aW9ucworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlcGVuZHMgKGZpbGVzZXQgfCBsaWJmaWxlc2V0IHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgZGVwZW5kcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphciAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCBtYW5pZmVzdCB8IHR5cGUgfCBtZXRhaW5mIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgaW5kZXhqYXJzIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IHppcGdyb3VwZmlsZXNldCB8IHppcGZpbGVzZXQgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBqYXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHdoZW5lbXB0eSAoZmFpbCB8IHNraXAgfCBjcmVhdGUpICNJTVBMSUVECisgICAgICAgICAga2VlcGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkdXBsaWNhdGUgKGFkZCB8IHByZXNlcnZlIHwgZmFpbCkgI0lNUExJRUQKKyAgICAgICAgICByb3VuZHVwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFuaWZlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVwZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFuaWZlc3RlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzb25seSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNldG1hbmlmZXN0IChza2lwIHwgbWVyZ2UgfCBtZXJnZXdpdGhvdXRtYWluKSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21rbGJ0eXBlIEVNUFRZPgorPCFBVFRMSVNUIGNjbWtsYnR5cGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGdsb2JhbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNoYXJlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGVuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGJyYW5jaCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm9iIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9yZGluYXJ5ICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNjcmlwdGRlZiAoI1BDREFUQSB8IGNsYXNzcGF0aCB8IGVsZW1lbnQgfCBhdHRyaWJ1dGUpKj4KKzwhQVRUTElTVCBzY3JpcHRkZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGxvYWRlcnJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXZlcnNlbG9hZGVyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlZmF1bHRleGNsdWRlcyBFTVBUWT4KKzwhQVRUTElTVCBkZWZhdWx0ZXhjbHVkZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlbW92ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVjaG8gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbXBhcnNlIChmaWxlc2V0IHwganZtYXJnIHwgY2xhc3NwYXRoIHwgc291cmNlcGF0aCkqPgorPCFBVFRMSVNUIG1wYXJzZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xlYW51cCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1ldGFtYXRhaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVncGFyc2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWdzY2FubmVyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJsZ2VuY2xpZW50IChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBibGdlbmNsaWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVqYmphciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xpZW50amFyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgampkb2MgRU1QVFk+Cis8IUFUVExJU1Qgampkb2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YWNjaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRleHQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb25ldGFibGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ2Vua2V5IChkbmFtZSkqPgorPCFBVFRMSVNUIGdlbmtleQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3RvcmVwYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2lnYWxnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZXlwYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZXlzaXplIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWxpYXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZXlhbGcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWxpZGl0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtleXN0b3JlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0b3JldHlwZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRuYW1lIChwYXJhbSkqPgorPCFBVFRMSVNUIGRuYW1lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhaCAoYXJnIHwgY2xhc3NwYXRoIHwgY2xhc3MgfCBib290Y2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgamF2YWgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0dWJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvbGQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNsYXNzIEVNUFRZPgorPCFBVFRMSVNUIGNsYXNzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2VsZW0gRU1QVFk+Cis8IUFUVExJU1QgY2Nta2VsZW0KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHByZXNlcnZldGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXN0ZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWx0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm93YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vY2hlY2tvdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNoZWNraW4gJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NtcmVjb25maWd1cmUgRU1QVFk+Cis8IUFUVExJU1QgY2NtcmVjb25maWd1cmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbWFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjY21wcm9qZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNjbWRpciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZhaWwgKCNQQ0RBVEEgfCBjb25kaXRpb24pKj4KKzwhQVRUTElTVCBmYWlsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdGF0dXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdW56aXAgKGZpbGVzZXQgfCBwYXR0ZXJuc2V0KSo+Cis8IUFUVExJU1QgdW56aXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamF2YWMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgZXh0ZGlycyB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHNyYyB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBjbGFzc3BhdGggfCBzb3VyY2VwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBib290Y2xhc3NwYXRoIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGNvbXBpbGVyYXJnIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgamF2YWMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgY29tcGlsZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWdsZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lbW9yeWluaXRpYWxzaXplIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVwcmVjYXRpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWFudHJ1bnRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWphdmFydW50aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0ZW1wZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwcm9jZWVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZW1vcnltYXhpbXVtc2l6ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9wdGltaXplICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpc3RmaWxlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleHRkaXJzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganBjb3ZlcmFnZSAoYXJnIHwgc29ja2V0IHwgZmlsZXNldCB8IGp2bWFyZyB8IGNsYXNzcGF0aCB8IHRyaWdnZXJzIHwgZmlsdGVycykqPgorPCFBVFRMSVNUIGpwY292ZXJhZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFwcGxldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWNvcmRmcm9tc3RhcnQgKGNvdmVyYWdlIHwgbm9uZSB8IGFsbCkgI0lNUExJRUQKKyAgICAgICAgICB2bSAoamF2YTIgfCBqZGsxMTggfCBqZGsxMTcpICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd29ya2luZ2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNuYXBzaG90ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VlZG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXZhZXhlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4aXRwcm9tcHQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdhcm5sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbmFsc25hcHNob3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRyYWNrbmF0aXZlcyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0cmlnZ2VycyAobWV0aG9kKSo+Cis8IUFUVExJU1QgdHJpZ2dlcnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1ldGhvZCBFTVBUWT4KKzwhQVRUTElTVCBtZXRob2QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBldmVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhcmFtIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVycyAoaW5jbHVkZSB8IGV4Y2x1ZGUpKj4KKzwhQVRUTElTVCBmaWx0ZXJzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb3NsYWJlbCBFTVBUWT4KKzwhQVRUTElTVCBzb3NsYWJlbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc29zaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9qZWN0cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2NhY2hlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zY21kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NnZXQgRU1QVFk+Cis8IUFUVExJU1QgdnNzZ2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxldGltZXN0YW1wIChjdXJyZW50IHwgbW9kaWZpZWQgfCB1cGRhdGVkKSAjSU1QTElFRAorICAgICAgICAgIHdyaXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdyaXRhYmxlZmlsZXMgKHJlcGxhY2UgfCBza2lwIHwgZmFpbCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZWx0cmVlIEVNUFRZPgorPCFBVFRMSVNUIGRlbHRyZWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvY29uZmlnLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvY29uZmlnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzNhZGQzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9jb25maWcueG1sCkBAIC0wLDAgKzEsNiBAQAorPGNvbmZpZworICAgICAgICBob3N0PSIke2hvc3R9IgorICAgICAgICBwb3J0PSIke3BvcnR9IgorICAgICAgICBiYXNlcGF0aD0iJHtiYXNlcGF0aH0iCisgICAgICAgIHByb3RvY29sPSJodHRwIi8+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItb3Blbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLW9wZW4ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0ZmJhYzcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLW9wZW4ueG1sCkBAIC0wLDAgKzEsNSBAQAorJndlbGNvbWUtb3BlbjsKKzxjbGlja0xpbmsKKyAgICAgICAgZGVzY3JpcHRpb249IkNsaWNrIFJlZ2lzdGVyIgorICAgICAgICBsYWJlbD0iUmVnaXN0ZXIgd2l0aCBNYWlsUmVhZGVyIi8+CisgICAgICAgICZyZWdpc3Rlci1wYWdlOwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1wYWdlLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItcGFnZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ2MDFlOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItcGFnZS54bWwKQEAgLTAsMCArMSwzIEBACis8dmVyaWZ5VGl0bGUKKyAgICAgICAgZGVzY3JpcHRpb249IlJlZ2lzdHJhdGlvbiBwYWdlIHRpdGxlIgorICAgICAgICB0ZXh0PSJNYWlsUmVhZGVyIC0gUmVnaXN0ZXIiLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItdHJpbGxpYW4ueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci10cmlsbGlhbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU2MWYwNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItdHJpbGxpYW4ueG1sCkBAIC0wLDAgKzEsMjEgQEAKKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJ1c2VybmFtZSIKKyAgICAgICAgbmFtZT0idXNlcm5hbWUiCisgICAgICAgIHZhbHVlPSJ0cmlsbGlhbiIvPgorPHNldElucHV0RmllbGQKKyAgICAgICAgZGVzY3JpcHRpb249InBhc3N3b3JkIgorICAgICAgICBuYW1lPSJwYXNzd29yZCIKKyAgICAgICAgdmFsdWU9ImFzdHJhIi8+Cis8c2V0SW5wdXRGaWVsZAorICAgICAgICBkZXNjcmlwdGlvbj0icGFzc3dvcmQyIgorICAgICAgICBuYW1lPSJwYXNzd29yZDIiCisgICAgICAgIHZhbHVlPSJhc3RyYSIvPgorPHNldElucHV0RmllbGQKKyAgICAgICAgZGVzY3JpcHRpb249ImZ1bGxOYW1lIgorICAgICAgICBuYW1lPSJmdWxsTmFtZSIKKyAgICAgICAgdmFsdWU9IlRyaWNpYSBNY01pbGxpYW4iLz4KKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJmcm9tQWRkcmVzcyIKKyAgICAgICAgbmFtZT0iZnJvbUFkZHJlc3MiCisgICAgICAgIHZhbHVlPSJ0cmljaWFAbWFncmF0aGVhLmNvbSIvPgorICAgICAgICAmc2F2ZS1jbGljazsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3NhdmUtY2xpY2sueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9zYXZlLWNsaWNrLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDJhMWRiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9zYXZlLWNsaWNrLnhtbApAQCAtMCwwICsxLDMgQEAKKzxjbGlja0J1dHRvbgorICAgICAgICBkZXNjcmlwdGlvbj0iU2F2ZSIKKyAgICAgICAgbmFtZT0iU2F2ZSIvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy90YXNrZGVmLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvdGFza2RlZi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI0YzFkZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvdGFza2RlZi54bWwKQEAgLTAsMCArMSwyNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiA/PgorPHByb2plY3QgbmFtZT0idGFza2RlZiI+CisgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICBUaGlzIHByb2plY3QgcHJvdmlkZXMgZm9sbG93aW5nIGVsZW1lbnRzIHRvIHVzZSBpbiB5b3VyIHRlc3Qgc2NyaXB0czoKKworICAgICAgICAoMCkgYWxsIHdlYnRlc3QncyBzdGVwcyBsb2FkZWQgYW5kIHJlYWR5IHRvIHVzZSwKKyAgICAgICAgKDEpIHRoZSBwYXRoICJ3ZWJ0ZXN0LnBhdGguaWQiIHRoYXQgaW5jbHVkZXMgYWxsIG9mIHdlYnRlc3QncworICAgICAgICBsaWJyYXJpZXMsCisgICAgICAgICgyKSB0aGUgY2xhc3MgbG9hZGVyICJ3ZWJ0ZXN0LmxvYWRlciIgdGhhdCBpcyB0aGUgb3JpZ2luYWwgbG9hZGVyIGZvcgorICAgICAgICB3ZWJ0ZXN0LgorCisgICAgICAgIFVzYWdlOgorICAgICAgICBTZXQgdGhlIHByb3BlcnR5IHdlYnRlc3QuaG9tZSB0byB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIHRoZSBidWlsZC56aXAKKyAgICAgICAgaXMgZXh0cmFjdGVkLAorICAgICAgICBhbmQgY2FsbHM6CisgICAgICAgICZsdDtpbXBvcnQgZmlsZT0iJHt3ZWJ0ZXN0LmhvbWV9L2xpYi90YXNrZGVmLnhtbCIgJmd0OworICAgIDwvZGVzY3JpcHRpb24+CisKKyAgICA8aW1wb3J0IGZpbGU9IiR7d2VidGVzdC5ob21lfS9saWIvY2xhc3NwYXRoLnhtbCIvPgorCisgICAgPHRhc2tkZWYgcmVzb3VyY2U9IndlYnRlc3QudGFza2RlZiIKKyAgICAgICAgICAgICBsb2FkZXJyZWY9IndlYnRlc3QubG9hZGVyIgorICAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0id2VidGVzdC5wYXRoLmlkIgorICAgICAgICAgICAgLz4KKzwvcHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3dlbGNvbWUtb3Blbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3dlbGNvbWUtb3Blbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWVhYzE0MAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvd2VsY29tZS1vcGVuLnhtbApAQCAtMCwwICsxLDYgQEAKKzxpbnZva2UKKyAgICAgICAgZGVzY3JpcHRpb249Ik9wZW4gd2VsY29tZSBhY3Rpb24iCisgICAgICAgIHVybD0iV2VsY29tZS5hY3Rpb24iLz4KKzx2ZXJpZnlUaXRsZQorICAgICAgICBkZXNjcmlwdGlvbj0iV2VsY29tZSBwYWdlIHRpdGxlIgorICAgICAgICB0ZXh0PSJNYWlsUmVhZGVyIi8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE1MWVhOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgd2ViLWFwcCBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4zLy9FTiIgImh0dHA6Ly9qYXZhLnN1bi5jb20vZHRkL3dlYi1hcHBfMl8zLmR0ZCI+Cis8d2ViLWFwcD4KKworICAgIDxkaXNwbGF5LW5hbWU+U3RydXRzIDIgTWFpbHJlYWRlcjwvZGlzcGxheS1uYW1lPgorCisgICAgPGZpbHRlcj4KKyAgICAgICAgPGZpbHRlci1uYW1lPlN0cnV0czI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8ZmlsdGVyLWNsYXNzPgorICAgICAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuRmlsdGVyRGlzcGF0Y2hlcgorICAgICAgICA8L2ZpbHRlci1jbGFzcz4KKyAgICA8L2ZpbHRlcj4KKworICAgIDxmaWx0ZXItbWFwcGluZz4KKyAgICAgICAgPGZpbHRlci1uYW1lPlN0cnV0czI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8dXJsLXBhdHRlcm4+Lyo8L3VybC1wYXR0ZXJuPgorICAgIDwvZmlsdGVyLW1hcHBpbmc+CisKKyAgICA8IS0tIEFwcGxpY2F0aW9uIExpc3RlbmVyIGZvciBNYWlscmVhZGVyIGRhdGFiYXNlIC0tPgorICAgIDxsaXN0ZW5lcj4KKyAgICAgICAgPGxpc3RlbmVyLWNsYXNzPgorICAgICAgICAgICAgRGF0YWJhc2VMaXN0ZW5lcgorICAgICAgICA8L2xpc3RlbmVyLWNsYXNzPgorICAgIDwvbGlzdGVuZXI+CisKKyAgICA8d2VsY29tZS1maWxlLWxpc3Q+CisgICAgICAgIDx3ZWxjb21lLWZpbGU+aW5kZXguaHRtbDwvd2VsY29tZS1maWxlPgorICAgIDwvd2VsY29tZS1maWxlLWxpc3Q+CisKKzwvd2ViLWFwcD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC1zdGFydC54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3Qtc3RhcnQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4ODE5NzUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3Qtc3RhcnQueG1sCkBAIC0wLDAgKzEsOTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHByb2plY3QgU1lTVEVNICJlbnRpdGllcy9XZWJUZXN0LmR0ZCIgWworCisgICAgICAgIDwhRU5USVRZIHRhc2tkZWYtd2VidGVzdCBTWVNURU0gImVudGl0aWVzL3Rhc2tkZWYueG1sIj4KKyAgICAgICAgPCFFTlRJVFkgY29uZmlnIFNZU1RFTSAiZW50aXRpZXMvY29uZmlnLnhtbCI+CisKKyAgICAgICAgPCFFTlRJVFkgcmVnaXN0ZXItb3BlbiBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9yZWdpc3Rlci1vcGVuLnhtbCI+CisgICAgICAgIDwhRU5USVRZIHJlZ2lzdGVyLXBhZ2UgU1lTVEVNICJmaWxlOi4vZW50aXRpZXMvcmVnaXN0ZXItcGFnZS54bWwiPgorICAgICAgICA8IUVOVElUWSByZWdpc3Rlci10cmlsbGlhbiBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9yZWdpc3Rlci10cmlsbGlhbi54bWwiPgorCisgICAgICAgIDwhRU5USVRZIHNhdmUtY2xpY2sgU1lTVEVNICJmaWxlOi4vZW50aXRpZXMvc2F2ZS1jbGljay54bWwiPgorCisgICAgICAgIDwhRU5USVRZIHdlbGNvbWUtb3BlbiBTWVNURU0gImZpbGU6Li9lbnRpdGllcy93ZWxjb21lLW9wZW4ueG1sIj4KKworICAgICAgICBdPgorCis8cHJvamVjdCBuYW1lPSJNYWlsUmVhZGVyIFRyYWluaW5nIENvdXJzZSAtIEV4ZXJjaXNlIG5hdmlnYXRpb24gYW5kIGRhdGFiYXNlIGxvZ2ljCistIENhbm9vIFdlYlRlc3RzIiBiYXNlZGlyPSIuIj4KKworICAgIDwhLS0KKyAgICAgQ2Fub28gV2ViVGVzdCBjb25maWd1cmF0aW9uIGZpbGUgdG8gdGVzdCBuYXZpZ2F0aW5nIGJldHdlZW4gcGFnZXMgYW5kCisgICAgIGNyZWF0aW5nIGFuZCBlZGl0aW5nIGFuIGFjY291bnQuCisKKyAgICAgVG8gcnVuIHRoaXMgdGVzdCwgZmlyc3QgaW5zdGFsbCB0aGUgQ2Fub28gV2VidGVzdCBwYWNrYWdlIG9uIHlvdXIKKyAgICAgbG9jYWwgc3lzdGVtIFtodHRwOi8vd2VidGVzdC5jYW5vby5jb21dLgorCisgICAgIFRoZSBkZWZhdWx0IGxvY2F0aW9uIGZvciB0aGlzIGJ1aWxkIGZpbGUgaXMgdW5kZXIKKyAgICAgIi9vcHQvQ2Fub28vd2VidGVzdC0xLjciLgorICAgICBTZWUgdGhlIHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgdG8gdXNlIGFub3RoZXIgbG9jYXRpb24uCisKKyAgICAgT25jZSBDYW5vbyBpcyBpbnN0YWxsZWQsIHRoZSB3ZWJ0ZXN0LnhtbCBmaWxlIGNhbiBiZSBydW4gYXMgYW4gQW50IGJ1aWxkCisgICAgIGZpbGUgKGFudCAtZiB3ZWJ0ZXN0LnhtbCkuCisKKyAgICAgQnkgZGVmYXVsdCwgdGhlIHRlc3RzIGFyZSBjb25maWd1cmVkIHRvIGZpbmQgdGhlIGFwcGxpY2F0aW9uIHVuZGVyIHRlc3QKKyAgICAgIGF0ICJodHRwOi8vbG9jYWxob3N0OjgwODAvbGliLTItMiIuCisgICAgIFNlZSB0aGUgd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZSB0byB1c2UgYW5vdGhlciBsb2NhdGlvbi4KKworICAgICBEZXBsb3kgdGhlIGFwcGxpY2F0aW9uIHRvIHlvdXIgY29udGFpbmVyLCBhbmQgdXNlIEFudCB0byBydW4gdGhlCisgICAgIHdlYnRlc3QueG1sLgorCisgICAgIFRoZSAiY2xlYW4iIHRhcmdldCBjYW4gYmUgcnVuIHRvIHRlc3QgZXZlcnl0aGluZywgYnV0IHdpbGwgZmFpbCBpZiBydW4gYWdhaW4sCisgICAgIHNpbmNlIHRoZSB0ZXN0LXVzZXIgd2lsbCBhbHJlYWR5IGJlIHJlZ2lzdGVyZWQuCisgICAgIFRoZSAiZGVmYXVsdCIgdGFyZ2V0IHNraXBzIHJlZ2lzdGVyYXRpb24gYW5kIGNhbiBiZSBydW4gYXMgb2Z0ZW4gYXMgbmVlZGVkCisgICAgIGFmdGVyICJjbGVhbiIgaXMgcnVuIG9uY2UuCisKKyAgICAgVG8gcmVzZXQgdGhlIFhNTCAiZGF0YWJhc2UiLCBlaXRoZXIgcmVkZXBsb3kgdGhlIGFwcGxpY2F0aW9uIHNvIHRoYXQgdGhlCisgICAgIFdFQi1JTkYvY2xhc3Nlcy9kYXRhYmFzZS54bWwgaXMgb3ZlcndyaXR0ZW4sCisgICAgIG9yIHVzZSB0aGUgImNsZWFuLWRhdGFiYXNlIiB0YXJnZXQgdG8gb3ZlcndyaXRlIHRoZSBmaWxlLgorICAgICBPbmx5IHVzZSAiY2xlYW4tZGF0YWJhc2UiIHdoZW4gdGhlIHNlcnZlciAgaXMgc3RvcHBlZCwKKyAgICAgYW5kIHRoZW4gc3RhcnQgaXQgYWdhaW4gYmVmb3JlIHJ1bm5pbmcgb3RoZXIgdGFyZ2V0cy4KKworICAgICBUaGUgdGVzdHMgYXJlIGJhc2VkIG9uIGEgc2V0IG9mIE1haWxSZWFkZXIgVXNlIENhc2VzIG1haW50YWluZWQgYXQgdGhlCisgICAgIFN0cnV0cyBVbml2ZXJzaXR5IHNpdGUKKyAgICAgW2h0dHA6Ly9vcGVuc291cmNlMi5hdGxhc3NpYW4uY29tL2NvbmZsdWVuY2Uvb3NzL2Rpc3BsYXkvU1RSVVRTL01haWxSZWFkZXJdLgorICAgICAqLworICAgIC0tPgorCisgICAgPHByb3BlcnR5IG5hbWU9IndlYnRlc3QuaG9tZSIKKyAgICAgICAgICAgICAgbG9jYXRpb249Ii9vcHQvQ2Fub28vd2VidGVzdC0xLjciLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJob3N0IgorICAgICAgICAgICAgICB2YWx1ZT0ibG9jYWxob3N0Ii8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0icG9ydCIKKyAgICAgICAgICAgICAgdmFsdWU9IjgwODAiLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJiYXNlcGF0aCIKKyAgICAgICAgICAgICAgdmFsdWU9Im1lbnUiLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJtYWlscmVhZGVyLmhvbWUiCisgICAgICAgICAgICAgIGxvY2F0aW9uPSIuLi8uLi8uLi8iLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJ3ZWJhcHBzLmhvbWUiCisgICAgICAgICAgICAgIGxvY2F0aW9uPSIvb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMiLz4KKworICAgIDxwcm9wZXJ0eSBmaWxlPSIke3dlYmFwcHMuaG9tZX0vJHtiYXNlcGF0aH0vV0VCLUlORi9jbGFzc2VzL3Jlc291cmNlcy5wcm9wZXJ0aWVzIi8+CisKKworICAgIDx0YXNrZGVmIGZpbGU9IiR7d2VidGVzdC5ob21lfS93ZWJ0ZXN0VGFza2RlZnMucHJvcGVydGllcyI+CisgICAgICAgIDxjbGFzc3BhdGg+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7d2VidGVzdC5ob21lfSIgaW5jbHVkZXM9IioqL2xpYi8qLmphciIvPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke3dlYnRlc3QuaG9tZX0iIGluY2x1ZGVzPSIqKi9saWIvcnVudGltZS8qLmphciIvPgorICAgICAgICA8L2NsYXNzcGF0aD4KKyAgICA8L3Rhc2tkZWY+CisKKyAgICA8dGFyZ2V0IG5hbWU9ImNsZWFuLWRhdGFiYXNlIgorICAgICAgICAgICAgZGVzY3JpcHRpb249IlNldHMgZGF0YWJhc2UueG1sIHRvIGRlZmF1bHQuIFN0b3Agc2VydmVyLCBydW4gdGFyZ2V0LCBhbmQgU3RhcnQgc2VydmVyLiI+CisgICAgICAgIDxjb3B5IGZpbGU9IiR7bWFpbHJlYWRlci5ob21lfS9zcmMvamF2YS9kYXRhYmFzZS54bWwiCisgICAgICAgICAgICAgIHRvZmlsZT0iJHt3ZWJhcHBzLmhvbWV9LyR7YmFzZXBhdGh9L1dFQi1JTkYvY2xhc3Nlcy9kYXRhYmFzZS54bWwiCisgICAgICAgICAgICAgIG92ZXJ3cml0ZT0idHJ1ZSIvPgorICAgIDwvdGFyZ2V0PgorCisKKyAgICA8IS0tIEFERCBZT1VSIFRBUkdFVFMgSEVSRSAtLT4KKworCis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcy5zYW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzBkMDFjNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZQpAQCAtMCwwICsxLDE1IEBACisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIyB3ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlDQorIw0KKyMgVGhpcyBpcyBhbiBleGFtcGxlICJ3ZWJ0ZXN0LnByb3BlcnRpZXMiIGZpbGUsIHVzZWQgdG8gY3VzdG9taXplIGJ1aWxkaW5nIFN0cnV0cw0KKyMgZm9yIHlvdXIgbG9jYWwgZW52aXJvbm1lbnQuICBNYWtlIGFueSBjaGFuZ2VzIHlvdSBuZWVkLCBhbmQgcmVuYW1lIHRoaXMgZmlsZQ0KKyMgdG8gIndlYnRlc3QucHJvcGVydGllcyIgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgdGhlIFN0cnV0cw0KKyMgIndlYnRlc3QueG1sIiBmaWxlLg0KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCit3ZWJ0ZXN0LmhvbWUgPSAvb3B0L0Nhbm9vL3dlYnRlc3QtMS43DQoraG9zdCA9IGxvY2FsaG9zdA0KK3BvcnQgPSA4MDgwDQorYmFzZXBhdGggPSBtZW51DQord2ViYXBwcy5ob21lID0gL29wdC9BcGFjaGUvVG9tY2F0LTUuNS93ZWJhcHBzLw0KK3Jlc291cmNlLmhvbWUgPSAke3dlYmFwcHMuaG9tZX0vJHtiYXNlcGF0aH0vV0VCLUlORi9jbGFzc2VzL3Jlc291cmNlcy5wcm9wZXJ0aWVzIg0KKyMgbWFpbHJlYWRlci5ob21lID0gDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFkMDk1NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC54bWwKQEAgLTAsMCArMSwxNDEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHByb2plY3QgU1lTVEVNICJlbnRpdGllcy9XZWJUZXN0LmR0ZCIgWworCisgICAgICAgIDwhRU5USVRZIHRhc2tkZWYtd2VidGVzdCBTWVNURU0gImVudGl0aWVzL3Rhc2tkZWYueG1sIj4KKyAgICAgICAgPCFFTlRJVFkgY29uZmlnIFNZU1RFTSAiZW50aXRpZXMvY29uZmlnLnhtbCI+CisKKyAgICAgICAgPCFFTlRJVFkgcmVnaXN0ZXItb3BlbiBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9yZWdpc3Rlci1vcGVuLnhtbCI+CisgICAgICAgIDwhRU5USVRZIHJlZ2lzdGVyLXBhZ2UgU1lTVEVNICJmaWxlOi4vZW50aXRpZXMvcmVnaXN0ZXItcGFnZS54bWwiPgorICAgICAgICA8IUVOVElUWSByZWdpc3Rlci10cmlsbGlhbiBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9yZWdpc3Rlci10cmlsbGlhbi54bWwiPgorCisgICAgICAgIDwhRU5USVRZIHNhdmUtY2xpY2sgU1lTVEVNICJmaWxlOi4vZW50aXRpZXMvc2F2ZS1jbGljay54bWwiPgorCisgICAgICAgIDwhRU5USVRZIHdlbGNvbWUtb3BlbiBTWVNURU0gImZpbGU6Li9lbnRpdGllcy93ZWxjb21lLW9wZW4ueG1sIj4KKworICAgICAgICBdPgorCis8cHJvamVjdCBuYW1lPSJNYWlsUmVhZGVyIFRyYWluaW5nIENvdXJzZSAtIEV4ZXJjaXNlIG5hdmlnYXRpb24gYW5kIGRhdGFiYXNlIGxvZ2ljCistIENhbm9vIFdlYlRlc3RzIiBiYXNlZGlyPSIuIiBkZWZhdWx0PSJjbGVhbiI+CisKKyAgICA8IS0tCisgICAgIENhbm9vIFdlYlRlc3QgY29uZmlndXJhdGlvbiBmaWxlIHRvIHRlc3QgbmF2aWdhdGluZyBiZXR3ZWVuIHBhZ2VzIGFuZAorICAgICBjcmVhdGluZyBhbmQgZWRpdGluZyBhbiBhY2NvdW50LgorCisgICAgIFRvIHJ1biB0aGlzIHRlc3QsIGZpcnN0IGluc3RhbGwgdGhlIENhbm9vIFdlYnRlc3QgcGFja2FnZSBvbiB5b3VyCisgICAgIGxvY2FsIHN5c3RlbSBbaHR0cDovL3dlYnRlc3QuY2Fub28uY29tXS4KKworICAgICBUaGUgZGVmYXVsdCBsb2NhdGlvbiBmb3IgdGhpcyBidWlsZCBmaWxlIGlzIHVuZGVyCisgICAgICIvb3B0L0Nhbm9vL3dlYnRlc3QtMS43Ii4KKyAgICAgU2VlIHRoZSB3ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlIHRvIHVzZSBhbm90aGVyIGxvY2F0aW9uLgorCisgICAgIE9uY2UgQ2Fub28gaXMgaW5zdGFsbGVkLCB0aGUgd2VidGVzdC54bWwgZmlsZSBjYW4gYmUgcnVuIGFzIGFuIEFudCBidWlsZAorICAgICBmaWxlIChhbnQgLWYgd2VidGVzdC54bWwpLgorCisgICAgIEJ5IGRlZmF1bHQsIHRoZSB0ZXN0cyBhcmUgY29uZmlndXJlZCB0byBmaW5kIHRoZSBhcHBsaWNhdGlvbiB1bmRlciB0ZXN0CisgICAgICBhdCAiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2xpYi0yLTIiLgorICAgICBTZWUgdGhlIHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgdG8gdXNlIGFub3RoZXIgbG9jYXRpb24uCisKKyAgICAgRGVwbG95IHRoZSBhcHBsaWNhdGlvbiB0byB5b3VyIGNvbnRhaW5lciwgYW5kIHVzZSBBbnQgdG8gcnVuIHRoZQorICAgICB3ZWJ0ZXN0LnhtbC4KKworICAgICBUaGUgImNsZWFuIiB0YXJnZXQgY2FuIGJlIHJ1biB0byB0ZXN0IGV2ZXJ5dGhpbmcsIGJ1dCB3aWxsIGZhaWwgaWYgcnVuIGFnYWluLAorICAgICBzaW5jZSB0aGUgdGVzdC11c2VyIHdpbGwgYWxyZWFkeSBiZSByZWdpc3RlcmVkLgorICAgICBUaGUgImRlZmF1bHQiIHRhcmdldCBza2lwcyByZWdpc3RlcmF0aW9uIGFuZCBjYW4gYmUgcnVuIGFzIG9mdGVuIGFzIG5lZWRlZAorICAgICBhZnRlciAiY2xlYW4iIGlzIHJ1biBvbmNlLgorCisgICAgIFRvIHJlc2V0IHRoZSBYTUwgImRhdGFiYXNlIiwgZWl0aGVyIHJlZGVwbG95IHRoZSBhcHBsaWNhdGlvbiBzbyB0aGF0IHRoZQorICAgICBXRUItSU5GL2NsYXNzZXMvZGF0YWJhc2UueG1sIGlzIG92ZXJ3cml0dGVuLAorICAgICBvciB1c2UgdGhlICJjbGVhbi1kYXRhYmFzZSIgdGFyZ2V0IHRvIG92ZXJ3cml0ZSB0aGUgZmlsZS4KKyAgICAgT25seSB1c2UgImNsZWFuLWRhdGFiYXNlIiB3aGVuIHRoZSBzZXJ2ZXIgIGlzIHN0b3BwZWQsCisgICAgIGFuZCB0aGVuIHN0YXJ0IGl0IGFnYWluIGJlZm9yZSBydW5uaW5nIG90aGVyIHRhcmdldHMuCisKKyAgICAgVGhlIHRlc3RzIGFyZSBiYXNlZCBvbiBhIHNldCBvZiBNYWlsUmVhZGVyIFVzZSBDYXNlcyBtYWludGFpbmVkIGF0IHRoZQorICAgICBTdHJ1dHMgVW5pdmVyc2l0eSBzaXRlCisgICAgIFtodHRwOi8vb3BlbnNvdXJjZTIuYXRsYXNzaWFuLmNvbS9jb25mbHVlbmNlL29zcy9kaXNwbGF5L1NUUlVUUy9NYWlsUmVhZGVyXS4KKyAgICAgKi8KKyAgICAtLT4KKworICAgIDwhLS0gTG9hZCBsb2NhbCBwcmVmZXJlbmNlcywgaWYgYW55IC0tPgorICAgIDxwcm9wZXJ0eSBmaWxlPSJ3ZWJ0ZXN0LnByb3BlcnRpZXMiLz4KKworICAgIDwhLS0gVGhlc2UgcHJvcGVydGllcyBjYW4gYmUgY3VzdG9taXplZCB1c2luZyB2aWEgd2VidGVzdC5wcm9wZXJ0aWVzIC0tPgorICAgIDwhLS0gU2VlIHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgZm9yIGEgc3RhcnRlciBmaWxlIC0tPgorICAgIDxwcm9wZXJ0eSBuYW1lPSJ3ZWJ0ZXN0LmhvbWUiCisgICAgICAgICAgICAgIGxvY2F0aW9uPSIvb3B0L0Nhbm9vL3dlYnRlc3QtMS43Ii8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0iaG9zdCIKKyAgICAgICAgICAgICAgdmFsdWU9ImxvY2FsaG9zdCIvPgorCisgICAgPHByb3BlcnR5IG5hbWU9InBvcnQiCisgICAgICAgICAgICAgIHZhbHVlPSI4MDgwIi8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0iYmFzZXBhdGgiCisgICAgICAgICAgICAgIHZhbHVlPSJtZW51Ii8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0ibWFpbHJlYWRlci5ob21lIgorICAgICAgICAgICAgICBsb2NhdGlvbj0iLi4vLi4vLi4vIi8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0id2ViYXBwcy5ob21lIgorICAgICAgICAgICAgICBsb2NhdGlvbj0iL29wdC9BcGFjaGUvVG9tY2F0LTUuNS93ZWJhcHBzIi8+CisKKyAgICA8cHJvcGVydHkgZmlsZT0iJHt3ZWJhcHBzLmhvbWV9LyR7YmFzZXBhdGh9L1dFQi1JTkYvY2xhc3Nlcy9yZXNvdXJjZXMucHJvcGVydGllcyIvPgorCisKKyAgICA8dGFza2RlZiBmaWxlPSIke3dlYnRlc3QuaG9tZX0vd2VidGVzdFRhc2tkZWZzLnByb3BlcnRpZXMiPgorICAgICAgICA8Y2xhc3NwYXRoPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke3dlYnRlc3QuaG9tZX0iIGluY2x1ZGVzPSIqKi9saWIvKi5qYXIiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHt3ZWJ0ZXN0LmhvbWV9IiBpbmNsdWRlcz0iKiovbGliL3J1bnRpbWUvKi5qYXIiLz4KKyAgICAgICAgPC9jbGFzc3BhdGg+CisgICAgPC90YXNrZGVmPgorCisgICAgPHRhcmdldCBuYW1lPSJjbGVhbi1kYXRhYmFzZSIKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZXRzIGRhdGFiYXNlLnhtbCB0byBkZWZhdWx0LiBTdG9wIHNlcnZlciwgcnVuIHRhcmdldCwgYW5kIFN0YXJ0IHNlcnZlci4iPgorICAgICAgICA8Y29weSBmaWxlPSIke21haWxyZWFkZXIuaG9tZX0vc3JjL2phdmEvZGF0YWJhc2UueG1sIgorICAgICAgICAgICAgICB0b2ZpbGU9IiR7d2ViYXBwcy5ob21lfS8ke2Jhc2VwYXRofS9XRUItSU5GL2NsYXNzZXMvZGF0YWJhc2UueG1sIgorICAgICAgICAgICAgICBvdmVyd3JpdGU9InRydWUiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gQUREIFlPVVIgVEFSR0VUUyBIRVJFIC0tPgorCisgICAgPHRhcmdldCBuYW1lPSJjbGVhbiIgZGVzY3JpcHRpb249Ik9ubHkgcnVuIGFnYWluc3QgYSBjbGVhbiBkYXRhYmFzZSIKKyAgICAgICAgICAgIGRlcGVuZHM9IlJlZ2lzdGVyIi8+CisKKyAgICA8dGFyZ2V0IG5hbWU9IlJlZ2lzdGVyIgorICAgICAgICAgICAgZGVzY3JpcHRpb249IlN1YnNjcmliZXJzIGNhbiBzdG9yZSBsb2dpbiBjcmVkZW50aWFscyBhbmQgYQorICAgICAgICAgICAgcHJpbWFyeSBlbWFpbCBjb250YWN0IHdpdGggdGhlIHN5c3RlbS4iPgorCisgICAgICAgIDx3ZWJ0ZXN0IG5hbWU9IlJlZ2lzdGVyIFRyaWxsaWFuIChNU1MpIj4KKyAgICAgICAgICAgICZjb25maWc7CisgICAgICAgICAgICA8c3RlcHM+CisgICAgICAgICAgICAgICAgJndlbGNvbWUtb3BlbjsKKyAgICAgICAgICAgICAgICAmcmVnaXN0ZXItb3BlbjsKKyAgICAgICAgICAgICAgICA8c2V0SW5wdXRGaWVsZAorICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249InVzZXJuYW1lIgorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0idXNlcm5hbWUiCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0idHJpbGxpYW4iLz4KKyAgICAgICAgICAgICAgICA8c2V0SW5wdXRGaWVsZAorICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249InBhc3N3b3JkIgorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmQiCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0iYXN0cmEiLz4KKyAgICAgICAgICAgICAgICA8c2V0SW5wdXRGaWVsZAorICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249InBhc3N3b3JkMiIKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InBhc3N3b3JkMiIKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJhc3RyYSIvPgorICAgICAgICAgICAgICAgIDxzZXRJbnB1dEZpZWxkCisgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iZnVsbE5hbWUiCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJmdWxsTmFtZSIKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJUcmljaWEgTWNNaWxsaWFuIi8+CisgICAgICAgICAgICAgICAgPHNldElucHV0RmllbGQKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJmcm9tQWRkcmVzcyIKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImZyb21BZGRyZXNzIgorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9InRyaWNpYUBtYWdyYXRoZWEuY29tIi8+CisgICAgICAgICAgICAgICAgJnNhdmUtY2xpY2s7CisgICAgICAgICAgICAgICAgPHZlcmlmeVRpdGxlCisgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iTWVudSBwYWdlIHRpdGxlIgorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD0iTWFpbFJlYWRlciAtIE1lbnUiLz4KKyAgICAgICAgICAgIDwvc3RlcHM+CisgICAgICAgIDwvd2VidGVzdD4KKworICAgIDwvdGFyZ2V0PgorCis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9pbmRleC5odG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy93ZWJhcHAvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjhkNWY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy93ZWJhcHAvaW5kZXguaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8TUVUQSBIVFRQLUVRVUlWPSJSZWZyZXNoIiBDT05URU5UPSIwO1VSTD1XZWxjb21lLmFjdGlvbiI+Cis8L2hlYWQ+CisKKzxib2R5PgorPHA+TG9hZGluZyAuLi48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU5ZDg3YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL3BhZ2VzL0hlbGxvLmpzcApAQCAtMCwwICsxLDEyIEBACis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5IZWxsbzwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgyPgorICAgIDxzOnRleHQgbmFtZT0iaGVsbG8ubWVzc2FnZSIvPgorPC9oMj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL3BhZ2VzL01lbnUuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy93ZWJhcHAvcGFnZXMvTWVudS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU3YzZhOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL3BhZ2VzL01lbnUuanNwCkBAIC0wLDAgKzEsMjEgQEAKKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPk1haWxSZWFkZXIgLSBNZW51PC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDM+TWFpbiBNZW51IE9wdGlvbnMgZm9yCisgICAgPHM6cHJvcGVydHkgdmFsdWU9ImZ1bGxOYW1lIi8+Cis8L2gzPgorPHVsPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJSZWdpc3RlciIgLz4iPgorICAgICAgICBFZGl0IHlvdXIgcmVnaXN0cmF0aW9uIHByb2ZpbGUKKyAgICA8L2E+CisgICAgPC9saT4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iTG9nb3V0Ii8+Ij4KKyAgICAgICAgTG9nIG91dCBvZiBNYWlsUmVhZGVyIGFwcGxpY2F0aW9uCisgICAgPC9hPgorPC91bD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL3BhZ2VzL01pc3NpbmcuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy93ZWJhcHAvcGFnZXMvTWlzc2luZy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDIxYjA4YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL3BhZ2VzL01pc3NpbmcuanNwCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+PHRpdGxlPk1pc3NpbmcgRmVhdHVyZTwvdGl0bGU+PC9oZWFkPgorCis8Ym9keT4KKzxwPgorICAgIFRoaXMgZmVhdHVyZSBpcyB1bmRlciBjb25zdHJ1Y3Rpb24uCisgICAgUGxlYXNlIHRyeSBhZ2FpbiBpbiB0aGUgbmV4dCBpbnRlcmF0aW9uLgorPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy93ZWJhcHAvcGFnZXMvUmVnaXN0ZXIuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9tZW51L3NyYy93ZWJhcHAvcGFnZXMvUmVnaXN0ZXIuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyOTZkMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9wYWdlcy9SZWdpc3Rlci5qc3AKQEAgLTAsMCArMSwzMCBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+TWFpbFJlYWRlciAtIFJlZ2lzdGVyPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHkgb25Mb2FkPSJzZWxmLmZvY3VzKCk7ZG9jdW1lbnQuUmVnaXN0ZXJfc2F2ZS51c2VybmFtZS5mb2N1cygpIj4KKworPHM6YWN0aW9uZXJyb3IvPgorPHM6Zm9ybSBhY3Rpb249IlJlZ2lzdGVyX3NhdmUiIHZhbGlkYXRlPSJ0cnVlIj4KKworICAgIDxzOnRleHRmaWVsZCBsYWJlbD0iVXNlcm5hbWUiIG5hbWU9InVzZXJuYW1lIi8+CisKKyAgICA8czpwYXNzd29yZCBsYWJlbD0iUGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIi8+CisKKyAgICA8czpwYXNzd29yZCBsYWJlbD0iKFJlcGVhdCkgUGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkMiIvPgorCisgICAgPHM6dGV4dGZpZWxkIGxhYmVsPSJGdWxsIE5hbWUiIG5hbWU9ImZ1bGxOYW1lIi8+CisKKyAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IkZyb20gQWRkcmVzcyIgbmFtZT0iZnJvbUFkZHJlc3MiLz4KKworICAgIDxzOnRleHRmaWVsZCBsYWJlbD0iUmVwbHkgVG8gQWRkcmVzcyIgbmFtZT0icmVwbHlUb0FkZHJlc3MiLz4KKworICAgIDxzOnN1Ym1pdCB2YWx1ZT0iU2F2ZSIgbmFtZT0iU2F2ZSIvPgorCis8L3M6Zm9ybT4KKworCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWVudS9zcmMvd2ViYXBwL3BhZ2VzL1dlbGNvbWUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxOWU2MWQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21lbnUvc3JjL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcApAQCAtMCwwICsxLDI0IEBACis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5NYWlsUmVhZGVyPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDM+TWFpbFJlYWRlciBPcHRpb25zPC9oMz4KKworPHVsPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJSZWdpc3RlciIvPiI+UmVnaXN0ZXIgd2l0aCBNYWlsUmVhZGVyPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249Ik1pc3NpbmciLz4iPkxvZyBpbnRvIE1haWxSZWFkZXI8L2E+PC9saT4KKzwvdWw+CisKKzxoMz5MYW5ndWFnZSBPcHRpb25zPC9oMz4KKzx1bD4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iTWlzc2luZyIvPiI+RW5nbGlzaDwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJNaXNzaW5nIi8+Ij5KYXBhbmVzZTwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJNaXNzaW5nIi8+Ij5SdXNzaWFuPC9hPjwvbGk+Cis8L3VsPgorCis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL01FVEEtSU5GL2NvbnRleHQueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvTUVUQS1JTkYvY29udGV4dC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWIwYjVkMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL01FVEEtSU5GL2NvbnRleHQueG1sCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxDb250ZXh0IHBhdGg9Ii8iPgorPC9Db250ZXh0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvbWlncmF0aW5nLmltbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL21pZ3JhdGluZy5pbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYyYzNkZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL21pZ3JhdGluZy5pbWwKQEAgLTAsMCArMSw3MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8bW9kdWxlIHZlcnNpb249IjQiIHJlbGF0aXZlUGF0aHM9InRydWUiIHR5cGU9IkoyRUVfV0VCX01PRFVMRSI+DQorICA8Y29tcG9uZW50IG5hbWU9IkFwcFNlcnZlclNwZWNpZmljVmFsaWRhdG9yc01hbmFnZXIiIC8+DQorICA8Y29tcG9uZW50IG5hbWU9Ik1vZHVsZVJvb3RNYW5hZ2VyIiAvPg0KKyAgPGNvbXBvbmVudCBuYW1lPSJOZXdNb2R1bGVSb290TWFuYWdlciIgaW5oZXJpdC1jb21waWxlci1vdXRwdXQ9ImZhbHNlIj4NCisgICAgPG91dHB1dCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvbWlncmF0aW5nL1dFQi1JTkYvY2xhc3NlcyIgLz4NCisgICAgPGV4Y2x1ZGUtb3V0cHV0IC8+DQorICAgIDxleHBsb2RlZCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvbWlncmF0aW5nIiAvPg0KKyAgICA8ZXhjbHVkZS1leHBsb2RlZCAvPg0KKyAgICA8Y29udGVudCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQiPg0KKyAgICAgIDxzb3VyY2VGb2xkZXIgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL3NyYy9tYWluL2phdmEiIGlzVGVzdFNvdXJjZT0iZmFsc2UiIC8+DQorICAgIDwvY29udGVudD4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0iaW5oZXJpdGVkSmRrIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJzb3VyY2VGb2xkZXIiIGZvclRlc3RzPSJmYWxzZSIgLz4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ibW9kdWxlLWxpYnJhcnkiPg0KKyAgICAgIDxsaWJyYXJ5Pg0KKyAgICAgICAgPENMQVNTRVM+DQorICAgICAgICAgIDxyb290IHVybD0iamFyOi8vJEFQUExJQ0FUSU9OX0hPTUVfRElSJC9saWIvajJlZS5qYXIhLyIgLz4NCisgICAgICAgIDwvQ0xBU1NFUz4NCisgICAgICAgIDxKQVZBRE9DIC8+DQorICAgICAgICA8U09VUkNFUyAvPg0KKyAgICAgIDwvbGlicmFyeT4NCisgICAgPC9vcmRlckVudHJ5Pg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJTdHJ1dHMxIiBsZXZlbD0icHJvamVjdCIgLz4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ibGlicmFyeSIgbmFtZT0iU3RydXRzMiIgbGV2ZWw9InByb2plY3QiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImxpYnJhcnkiIG5hbWU9InNlcnZsZXQtYXBpIiBsZXZlbD0iYXBwbGljYXRpb24iIC8+DQorICAgIDxvcmRlckVudHJ5UHJvcGVydGllcyAvPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IldlYk1vZHVsZUJ1aWxkQ29tcG9uZW50Ij4NCisgICAgPHNldHRpbmcgbmFtZT0iRVhQTE9ERURfVVJMIiB2YWx1ZT0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy9taWdyYXRpbmciIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkVYUExPREVEX0VOQUJMRUQiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJKQVJfVVJMIiB2YWx1ZT0iZmlsZTovLyIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iSkFSX0VOQUJMRUQiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iU1lOQ19FWFBMT0RFRF9ESVIiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJCVUlMRF9NT0RVTEVfT05fRlJBTUVfREVBQ1RJVkFUSU9OIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkJVSUxEX0VYVEVSTkFMX0RFUEVOREVOQ0lFUyIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJSVU5fSkFTUEVSX1ZBTElEQVRJT04iIHZhbHVlPSJ0cnVlIiAvPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IldlYk1vZHVsZVByb3BlcnRpZXMiPg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBsZXZlbD0ibW9kdWxlIj4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjAiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSImbHQ7Ti9BJmd0OyIgLz4NCisgICAgICA8dXJsPmphcjovLyRBUFBMSUNBVElPTl9IT01FX0RJUiQvbGliL2oyZWUuamFyIS88L3VybD4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIj4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjAiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSIvV0VCLUlORi9saWIiIC8+DQorICAgIDwvY29udGFpbmVyRWxlbWVudD4NCisgICAgPGNvbnRhaW5lckVsZW1lbnQgdHlwZT0ibGlicmFyeSIgbmFtZT0ic2VydmxldC1hcGkiIGxldmVsPSJhcHBsaWNhdGlvbiI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIwIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iJmx0O04vQSZndDsiIC8+DQorICAgIDwvY29udGFpbmVyRWxlbWVudD4NCisgICAgPGNvbnRhaW5lckVsZW1lbnQgdHlwZT0ibGlicmFyeSIgbmFtZT0iU3RydXRzMSIgbGV2ZWw9InByb2plY3QiPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMSIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9Ii9XRUItSU5GL2xpYiIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJTdHJ1dHMyIiBsZXZlbD0icHJvamVjdCI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSJ3ZWIueG1sIiB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvd2ViLnhtbCIgb3B0aW9uYWw9ImZhbHNlIiB2ZXJzaW9uPSIyLjMiIC8+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSJjb250ZXh0LnhtbCIgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL01FVEEtSU5GL2NvbnRleHQueG1sIiBvcHRpb25hbD0iZmFsc2UiIHZlcnNpb249IjUueCIgLz4NCisgICAgPHdlYnJvb3RzPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvbWFpbi9yZXNvdXJjZXMiIHJlbGF0aXZlPSIvV0VCLUlORi9jbGFzc2VzIiAvPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvbWFpbi93ZWJhcHAiIHJlbGF0aXZlPSIvIiAvPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvbWFpbi9qYXZhIiByZWxhdGl2ZT0iL1dFQi1JTkYvY2xhc3NlcyIgLz4NCisgICAgPC93ZWJyb290cz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJsb2dpY1dlYk1vZHVsZVByb3BlcnRpZXMiIC8+DQorPC9tb2R1bGU+DQorDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvcG9tLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3BvbS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA2OTQ2ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3BvbS54bWwKQEAgLTAsMCArMSwyMDQgQEAKKzxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiDQorICAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSINCisgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9tYXZlbi12NF8wXzAueHNkIj4NCisgICAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPg0KKyAgICA8Z3JvdXBJZD5taWdyYXRpbmctdHV0b3JpYWw8L2dyb3VwSWQ+DQorICAgIDxhcnRpZmFjdElkPm1pZ3JhdGluZy10dXRvcmlhbDwvYXJ0aWZhY3RJZD4NCisgICAgPHBhY2thZ2luZz53YXI8L3BhY2thZ2luZz4NCisgICAgPHZlcnNpb24+MS4wLVNOQVBTSE9UPC92ZXJzaW9uPg0KKyAgICA8bmFtZT5NaWdyYXRpbmcgdG8gQXBhY2hlIFN0cnV0cyAyPC9uYW1lPg0KKyAgICA8dXJsPmh0dHA6Ly93d3cucGxhbmV0c3RydXRzLm9yZy9taWdyYXRpbmc8L3VybD4NCisgICAgPG9yZ2FuaXphdGlvbj4NCisgICAgICAgIDxuYW1lPlN0cnV0cyBNZW50b3I8L25hbWU+DQorICAgICAgICA8dXJsPmh0dHA6Ly93d3cuc3RydXRzbWVudG9yLmNvbTwvdXJsPg0KKyAgICA8L29yZ2FuaXphdGlvbj4NCisgICAgPGxpY2Vuc2VzPg0KKyAgICAgICAgPGxpY2Vuc2U+DQorICAgICAgICAgICAgPG5hbWU+QXBhY2hlIExpY2Vuc2UgMi4wPC9uYW1lPg0KKyAgICAgICAgICAgIDx1cmw+aHR0cDovL3d3dy5hcGFjaGUub3JnL0xJQ0VOU0UudHh0PC91cmw+DQorICAgICAgICAgICAgPGNvbW1lbnRzPnNlZSBodHRwOi8vd3d3LmFwYWNoZS5vcmcvTElDRU5TRS50eHQ8L2NvbW1lbnRzPg0KKyAgICAgICAgPC9saWNlbnNlPg0KKyAgICA8L2xpY2Vuc2VzPg0KKyAgICA8YnVpbGQ+DQorICAgICAgICA8cmVzb3VyY2VzPg0KKyAgICAgICAgICAgIDwhLS0gSW5jbHVkZSByZXNvdXJjZXMgdW5kZXIgc3JjL21haW4vamF2YSBpbiBXRUItSU5GL2NsYXNzZXMgLS0+DQorICAgICAgICAgICAgPHJlc291cmNlPg0KKyAgICAgICAgICAgICAgICA8ZGlyZWN0b3J5PnNyYy9tYWluL2phdmE8L2RpcmVjdG9yeT4NCisgICAgICAgICAgICAgICAgPGluY2x1ZGVzPg0KKyAgICAgICAgICAgICAgICAgICAgPGluY2x1ZGU+KiovKi5wcm9wZXJ0aWVzPC9pbmNsdWRlPg0KKyAgICAgICAgICAgICAgICAgICAgPGluY2x1ZGU+KiovKi54bWw8L2luY2x1ZGU+DQorICAgICAgICAgICAgICAgIDwvaW5jbHVkZXM+DQorICAgICAgICAgICAgPC9yZXNvdXJjZT4NCisgICAgICAgICAgICA8cmVzb3VyY2U+DQorICAgICAgICAgICAgICAgIDxkaXJlY3Rvcnk+c3JjL21haW4vcmVzb3VyY2VzPC9kaXJlY3Rvcnk+DQorICAgICAgICAgICAgPC9yZXNvdXJjZT4NCisgICAgICAgIDwvcmVzb3VyY2VzPg0KKyAgICAgICAgPHBsdWdpbnM+DQorICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPg0KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1jb21waWxlci1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPHNvdXJjZT4xLjU8L3NvdXJjZT4NCisgICAgICAgICAgICAgICAgICAgIDx0YXJnZXQ+MS41PC90YXJnZXQ+DQorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1zdXJlZmlyZS1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPGluY2x1ZGVzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpbmNsdWRlPioqLypUZXN0LmphdmE8L2luY2x1ZGU+DQorICAgICAgICAgICAgICAgICAgICA8L2luY2x1ZGVzPg0KKyAgICAgICAgICAgICAgICAgICAgPGV4Y2x1ZGVzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxleGNsdWRlPioqL1hXb3JrVGVzdENhc2UuamF2YTwvZXhjbHVkZT4NCisgICAgICAgICAgICAgICAgICAgIDwvZXhjbHVkZXM+DQorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphdmFkb2MtcGx1Z2luPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgICAgICA8ZXhlY3V0aW9ucz4NCisgICAgICAgICAgICAgICAgICAgIDxleGVjdXRpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGlkPmF0dGFjaC1qYXZhZG9jPC9pZD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbHM+DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnb2FsPmphcjwvZ29hbD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8L2dvYWxzPg0KKyAgICAgICAgICAgICAgICAgICAgPC9leGVjdXRpb24+DQorICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9ucz4NCisgICAgICAgICAgICA8L3BsdWdpbj4NCisgICAgICAgICAgICA8cGx1Z2luPg0KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXNvdXJjZS1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgICAgIDxleGVjdXRpb25zPg0KKyAgICAgICAgICAgICAgICAgICAgPGV4ZWN1dGlvbj4NCisgICAgICAgICAgICAgICAgICAgICAgICA8aWQ+YXR0YWNoLXNvdXJjZTwvaWQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGdvYWxzPg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z29hbD5qYXI8L2dvYWw+DQorICAgICAgICAgICAgICAgICAgICAgICAgPC9nb2Fscz4NCisgICAgICAgICAgICAgICAgICAgIDwvZXhlY3V0aW9uPg0KKyAgICAgICAgICAgICAgICA8L2V4ZWN1dGlvbnM+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLm1vcnRiYXkuamV0dHk8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWpldHR5Ni1wbHVnaW48L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPHNjYW5JbnRlcnZhbFNlY29uZHM+MTA8L3NjYW5JbnRlcnZhbFNlY29uZHM+DQorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgPGRlcGVuZGVuY2llcz4NCisgICAgICAgICAgICAgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUuZ2Vyb25pbW8uc3BlY3M8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+Z2Vyb25pbW8tajJlZV8xLjRfc3BlYzwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgPHNjb3BlPnByb3ZpZGVkPC9zY29wZT4NCisgICAgICAgICAgICAgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgICAgICAgICAgPC9kZXBlbmRlbmNpZXM+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8L3BsdWdpbnM+DQorICAgICAgICA8ZGVmYXVsdEdvYWw+aW5zdGFsbDwvZGVmYXVsdEdvYWw+DQorICAgIDwvYnVpbGQ+DQorDQorICAgIDxkZXBlbmRlbmNpZXM+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5qdW5pdDwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4zLjguMTwvdmVyc2lvbj4NCisgICAgICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcGVuc3ltcGhvbnk8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+eHdvcms8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+Mi4wLVNOQVBTSE9UPC92ZXJzaW9uPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5zdHJ1dHM8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3RydXRzMi1hcGk8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+Mi4wLjA8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLnN0cnV0czwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zdHJ1dHMyLWNvcmU8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+Mi4wLjA8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLnN0cnV0czwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zdHJ1dHMyLWV4dHJhczwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4yLjAuMDwvdmVyc2lvbj4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcms8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWFvcDwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4xLjIuODwvdmVyc2lvbj4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcms8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLXdlYjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4xLjIuODwvdmVyc2lvbj4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcms8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWJlYW5zPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuMi44PC92ZXJzaW9uPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLnNwcmluZ2ZyYW1ld29yazwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zcHJpbmctY29udGV4dDwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4xLjIuODwvdmVyc2lvbj4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5zcHJpbmdmcmFtZXdvcms8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3ByaW5nLWNvcmU8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+MS4yLjg8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuc3ByaW5nZnJhbWV3b3JrPC9ncm91cElkPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPnNwcmluZy1tb2NrPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuMi44PC92ZXJzaW9uPg0KKyAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisNCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPmphdmF4LnNlcnZsZXQ8L2dyb3VwSWQ+DQorICAgICAgICAgICAgPGFydGlmYWN0SWQ+c2VydmxldC1hcGk8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+Mi4zPC92ZXJzaW9uPg0KKyAgICAgICAgICAgIDxzY29wZT5wcm92aWRlZDwvc2NvcGU+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorICAgICAgICA8ZGVwZW5kZW5jeT4NCisgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLnN0cnV0czwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zdHJ1dHMtY29yZTwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4xLjMuNTwvdmVyc2lvbj4NCisgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUuc3RydXRzPC9ncm91cElkPg0KKyAgICAgICAgICAgIDxhcnRpZmFjdElkPnN0cnV0cy10YWdsaWI8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICAgPHZlcnNpb24+MS4zLjU8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3k+DQorDQorICAgICAgICA8IS0tZGVwZW5kZW5jeT4NCisgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUuc3RydXRzPC9ncm91cElkPg0KKyAgICAgICAgICAgPGFydGlmYWN0SWQ+c3RydXRzLXRpbGVzPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgPHZlcnNpb24+MS4zLjU8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3ktLT4NCisNCisgICAgICAgIDwhLS1kZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5zdHJ1dHM8L2dyb3VwSWQ+DQorICAgICAgICAgICA8YXJ0aWZhY3RJZD5zdHJ1dHMtZXh0cmFzPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgPHZlcnNpb24+MS4zLjU8L3ZlcnNpb24+DQorICAgICAgICA8L2RlcGVuZGVuY3ktLT4NCisNCisgICAgICAgIDwhLS1kZXBlbmRlbmN5Pg0KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLnN0cnV0czwvZ3JvdXBJZD4NCisgICAgICAgICAgPGFydGlmYWN0SWQ+c3RydXRzLWVsPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICA8dmVyc2lvbj4xLjMuNTwvdmVyc2lvbj4NCisgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+amF2YXguc2VydmxldDwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5qc3RsPC9hcnRpZmFjdElkPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjEuMC40PC92ZXJzaW9uPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICAgPGdyb3VwSWQ+dGFnbGliczwvZ3JvdXBJZD4NCisgICAgICAgICAgICA8YXJ0aWZhY3RJZD5zdGFuZGFyZDwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICA8dmVyc2lvbj4xLjAuNDwvdmVyc2lvbj4NCisgICAgICAgIDwvZGVwZW5kZW5jeS0tPg0KKw0KKyAgICA8L2RlcGVuZGVuY2llcz4NCis8L3Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vamF2YS9NZXNzYWdlUmVzb3VyY2VzLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi9qYXZhL01lc3NhZ2VSZXNvdXJjZXMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmNkNTFmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vamF2YS9NZXNzYWdlUmVzb3VyY2VzLnByb3BlcnRpZXMKQEAgLTAsMCArMSwzMCBAQAorIyAtLSBzdGFuZGFyZCBlcnJvcnMgLS0NCitlcnJvcnMuaGVhZGVyPTxVTD4NCitlcnJvcnMucHJlZml4PTxMST4NCitlcnJvcnMuc3VmZml4PTwvTEk+DQorZXJyb3JzLmZvb3Rlcj08L1VMPg0KKyMgLS0gdmFsaWRhdG9yIC0tDQorZXJyb3JzLmludmFsaWQ9ezB9IGlzIGludmFsaWQuDQorZXJyb3JzLm1heGxlbmd0aD17MH0gY2FuIG5vdCBiZSBncmVhdGVyIHRoYW4gezF9IGNoYXJhY3RlcnMuDQorZXJyb3JzLm1pbmxlbmd0aD17MH0gY2FuIG5vdCBiZSBsZXNzIHRoYW4gezF9IGNoYXJhY3RlcnMuDQorZXJyb3JzLnJhbmdlPXswfSBpcyBub3QgaW4gdGhlIHJhbmdlIHsxfSB0aHJvdWdoIHsyfS4NCitlcnJvcnMucmVxdWlyZWQ9ezB9IGlzIHJlcXVpcmVkLg0KK2Vycm9ycy5ieXRlPXswfSBtdXN0IGJlIGFuIGJ5dGUuDQorZXJyb3JzLmRhdGU9ezB9IGlzIG5vdCBhIGRhdGUuDQorZXJyb3JzLmRvdWJsZT17MH0gbXVzdCBiZSBhbiBkb3VibGUuDQorZXJyb3JzLmZsb2F0PXswfSBtdXN0IGJlIGFuIGZsb2F0Lg0KK2Vycm9ycy5pbnRlZ2VyPXswfSBtdXN0IGJlIGFuIGludGVnZXIuDQorZXJyb3JzLmxvbmc9ezB9IG11c3QgYmUgYW4gbG9uZy4NCitlcnJvcnMuc2hvcnQ9ezB9IG11c3QgYmUgYW4gc2hvcnQuDQorZXJyb3JzLmNyZWRpdGNhcmQ9ezB9IGlzIG5vdCBhIHZhbGlkIGNyZWRpdCBjYXJkIG51bWJlci4NCitlcnJvcnMuZW1haWw9ezB9IGlzIGFuIGludmFsaWQgZS1tYWlsIGFkZHJlc3MuDQorZXJyb3JzLnVybD17MH0gaXMgbm90IGEgdmFsaWQgVVJMLg0KKyMgLS0gb3RoZXIgLS0NCitlcnJvcnMuY2FuY2VsPU9wZXJhdGlvbiBjYW5jZWxsZWQuDQorZXJyb3JzLmRldGFpbD17MH0NCitlcnJvcnMuZ2VuZXJhbD1UaGUgcHJvY2VzcyBkaWQgbm90IGNvbXBsZXRlLiBEZXRhaWxzIHNob3VsZCBmb2xsb3cuDQorZXJyb3JzLnRva2VuPVJlcXVlc3QgY291bGQgbm90IGJlIGNvbXBsZXRlZC4gT3BlcmF0aW9uIGlzIG5vdCBpbiBzZXF1ZW5jZS4NCisjIC0tIHdlbGNvbWUgLS0NCit3ZWxjb21lLnRpdGxlPVN0cnV0cyBCbGFuayBBcHBsaWNhdGlvbg0KK3dlbGNvbWUuaGVhZGluZz1XZWxjb21lIQ0KK3dlbGNvbWUubWVzc2FnZT1UbyBnZXQgc3RhcnRlZCBvbiB5b3VyIG93biBhcHBsaWNhdGlvbiwgY29weSB0aGUgc3RydXRzLWJsYW5rLndhciB0byBhIG5ldyBXQVIgZmlsZSB1c2luZyB0aGUgbmFtZSBmb3IgeW91ciBhcHBsaWNhdGlvbi4gUGxhY2UgaXQgaW4geW91ciBjb250YWluZXIncyAid2ViYXBwIiBmb2xkZXIgKG9yIGVxdWl2YWxlbnQpLCBhbmQgbGV0IHlvdXIgY29udGFpbmVyIGF1dG8tZGVwbG95IHRoZSBhcHBsaWNhdGlvbi4gRWRpdCB0aGUgc2tlbGV0b24gY29uZmlndXJhdGlvbiBmaWxlcyBhcyBuZWVkZWQsIHJlc3RhcnQgeW91ciBjb250YWluZXIsIGFuZCB5b3UgYXJlIG9uIHlvdXIgd2F5ISAoWW91IGNhbiBmaW5kIHRoZSBhcHBsaWNhdGlvbi5wcm9wZXJ0aWVzIGZpbGUgd2l0aCB0aGlzIG1lc3NhZ2UgaW4gdGhlIC9XRUItSU5GL3NyYy9qYXZhL3Jlc291cmNlcyBmb2xkZXIuKQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL2phdmEvYWN0aW9ucy9IZWxsby12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL2phdmEvYWN0aW9ucy9IZWxsby12YWxpZGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTk4NzA1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vamF2YS9hY3Rpb25zL0hlbGxvLXZhbGlkYXRpb24ueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDDQorICAgICAgICAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIg0KKyAgICAgICAgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4NCisNCis8dmFsaWRhdG9ycz4NCisgICAgPGZpZWxkIG5hbWU9Im1lc3NhZ2UiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJyZXF1aXJlZHN0cmluZyIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorPC92YWxpZGF0b3JzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL2phdmEvYWN0aW9ucy9IZWxsby5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vamF2YS9hY3Rpb25zL0hlbGxvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDZmOWJiYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL2phdmEvYWN0aW9ucy9IZWxsby5qYXZhCkBAIC0wLDAgKzEsMjMgQEAKK3BhY2thZ2UgYWN0aW9uczsNCisNCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uU3VwcG9ydDsNCisNCitwdWJsaWMgY2xhc3MgSGVsbG8gZXh0ZW5kcyBBY3Rpb25TdXBwb3J0IHsNCisNCisgICAgLyoNCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorICAgICAgICBzZXRNZXNzYWdlKGdldFRleHQoTUVTU0FHRSkpOw0KKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7DQorICAgIH0NCisgICAgKi8NCisNCisgICAgcHJpdmF0ZSBTdHJpbmcgbWVzc2FnZTsNCisNCisgICAgcHVibGljIFN0cmluZyBnZXRNZXNzYWdlKCkgew0KKyAgICAgICAgcmV0dXJuIG1lc3NhZ2U7DQorICAgIH0NCisNCisgICAgcHVibGljIHZvaWQgc2V0TWVzc2FnZShTdHJpbmcgbWVzc2FnZSkgew0KKyAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTsNCisgICAgfQ0KK30NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi9qYXZhL2FjdGlvbnMvSGVsbG9BY3Rpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL2phdmEvYWN0aW9ucy9IZWxsb0FjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5NTY0M2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi9qYXZhL2FjdGlvbnMvSGVsbG9BY3Rpb24uamF2YQpAQCAtMCwwICsxLDI4IEBACitwYWNrYWdlIGFjdGlvbnM7DQorDQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb247DQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOw0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDsNCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7DQorDQoraW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7DQoraW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOw0KKw0KK3B1YmxpYyBjbGFzcyBIZWxsb0FjdGlvbiBleHRlbmRzIEFjdGlvbiB7DQorDQorICAgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkIGV4ZWN1dGUoDQorICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLA0KKyAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwNCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwNCisgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKQ0KKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24gew0KKw0KKyAgICAgICAgSGVsbG9Gb3JtIGlucHV0ID0gKEhlbGxvRm9ybSkgZm9ybTsNCisgICAgICAgIGlucHV0LnNldE1lc3NhZ2UoZ2V0UmVzb3VyY2VzKHJlcXVlc3QpLmdldE1lc3NhZ2UoTUVTU0FHRSkpOw0KKyAgICAgICAgcmV0dXJuIG1hcHBpbmcuZmluZEZvcndhcmQoU1VDQ0VTUyk7DQorICAgIH0NCisNCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTUVTU0FHRSA9ICJtZXNzYWdlIjsNCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1VDQ0VTUyA9ICJzdWNjZXNzIjsNCisNCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vamF2YS9hY3Rpb25zL0hlbGxvRm9ybS5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vamF2YS9hY3Rpb25zL0hlbGxvRm9ybS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3MDRiOTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi9qYXZhL2FjdGlvbnMvSGVsbG9Gb3JtLmphdmEKQEAgLTAsMCArMSwxNiBAQAorcGFja2FnZSBhY3Rpb25zOw0KKw0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy52YWxpZGF0b3IuVmFsaWRhdG9yRm9ybTsNCisNCitwdWJsaWMgY2xhc3MgSGVsbG9Gb3JtIGV4dGVuZHMgVmFsaWRhdG9yRm9ybSB7DQorDQorICAgIHByaXZhdGUgU3RyaW5nIG1lc3NhZ2U7DQorDQorICAgIHB1YmxpYyBTdHJpbmcgZ2V0TWVzc2FnZSgpIHsNCisgICAgICAgIHJldHVybiBtZXNzYWdlOw0KKyAgICB9DQorDQorICAgIHB1YmxpYyB2b2lkIHNldE1lc3NhZ2UoU3RyaW5nIG1lc3NhZ2UpIHsNCisgICAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7DQorICAgIH0NCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vamF2YS9hY3Rpb25zL0xvY2FsZUFjdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vamF2YS9hY3Rpb25zL0xvY2FsZUFjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzNzk5MTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi9qYXZhL2FjdGlvbnMvTG9jYWxlQWN0aW9uLmphdmEKQEAgLTAsMCArMSw0MiBAQAorcGFja2FnZSBhY3Rpb25zOw0KKw0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uOw0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsNCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ7DQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOw0KKw0KK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0Ow0KK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsNCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsNCisNCisNCitwdWJsaWMgZmluYWwgY2xhc3MgTG9jYWxlQWN0aW9uIGV4dGVuZHMgQWN0aW9uIHsNCisNCisgICAgcHVibGljIEFjdGlvbkZvcndhcmQgZXhlY3V0ZShBY3Rpb25NYXBwaW5nIG1hcHBpbmcsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpDQorICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7DQorDQorICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSByZXF1ZXN0LmdldFBhcmFtZXRlcihMQU5HVUFHRSk7DQorICAgICAgICBTdHJpbmcgY291bnRyeSA9IHJlcXVlc3QuZ2V0UGFyYW1ldGVyKENPVU5UUlkpOw0KKw0KKyAgICAgICAgTG9jYWxlIGxvY2FsZSA9IGdldExvY2FsZShyZXF1ZXN0KTsNCisNCisgICAgICAgIGlmICgobGFuZ3VhZ2UgIT0gbnVsbCAmJiBsYW5ndWFnZS5sZW5ndGgoKSA+IDApICYmDQorICAgICAgICAgICAgICAgIChjb3VudHJ5ICE9IG51bGwgJiYgY291bnRyeS5sZW5ndGgoKSA+IDApKSB7DQorICAgICAgICAgICAgbG9jYWxlID0gbmV3IGphdmEudXRpbC5Mb2NhbGUobGFuZ3VhZ2UsIGNvdW50cnkpOw0KKyAgICAgICAgfSBlbHNlIGlmIChsYW5ndWFnZSAhPSBudWxsICYmIGxhbmd1YWdlLmxlbmd0aCgpID4gMCkgew0KKyAgICAgICAgICAgIGxvY2FsZSA9IG5ldyBqYXZhLnV0aWwuTG9jYWxlKGxhbmd1YWdlLCAiIik7DQorICAgICAgICB9DQorDQorICAgICAgICBzZXRMb2NhbGUocmVxdWVzdCwgbG9jYWxlKTsNCisNCisgICAgICAgIHJldHVybiBtYXBwaW5nLmZpbmRGb3J3YXJkKFNVQ0NFU1MpOw0KKyAgICB9DQorDQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBMQU5HVUFHRSA9ICJsYW5ndWFnZSI7DQorICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDT1VOVFJZID0gImNvdW50cnkiOw0KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1VDQ0VTUyA9ICJzdWNjZXNzIjsNCisNCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vamF2YS9hY3Rpb25zL2J1aWxkLmJhdCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL2phdmEvYWN0aW9ucy9idWlsZC5iYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTVhNTc0NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL2phdmEvYWN0aW9ucy9idWlsZC5iYXQKQEAgLTAsMCArMSw0IEBACitAZWNobyBvZmYNCitkZWwgKi5jbGFzcw0KK3NldCBDTEFTU1BBVEg9Li5cLi5cbGliXHh3b3JrLTIuMC4wLmphcjsuLlwuLlxsaWJcc3RydXRzLWNvcmUtMS4zLjUuamFyOyVDQVRBTElOQV9IT01FJVxjb21tb25cbGliXHNlcnZsZXQtYXBpLmphcg0KK2phdmFjICouamF2YQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL2phdmEvc3RydXRzLWNvbmZpZy54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi9qYXZhL3N0cnV0cy1jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhNTcyNjcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi9qYXZhL3N0cnV0cy1jb25maWcueG1sCkBAIC0wLDAgKzEsNDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+DQorPCFET0NUWVBFIHN0cnV0cy1jb25maWcgUFVCTElDDQorICAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAxLjMvL0VOIg0KKyAgICAgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy1jb25maWdfMV8zLmR0ZCI+DQorPHN0cnV0cy1jb25maWc+DQorICAgIDxmb3JtLWJlYW5zPg0KKw0KKyAgICAgICAgPGZvcm0tYmVhbiBuYW1lPSJIZWxsb0Zvcm0iDQorICAgICAgICAgICAgICAgICAgIHR5cGU9ImFjdGlvbnMuSGVsbG9Gb3JtIj4NCisgICAgICAgIDwvZm9ybS1iZWFuPg0KKw0KKyAgICA8L2Zvcm0tYmVhbnM+DQorDQorICAgIDxhY3Rpb24tbWFwcGluZ3M+DQorDQorICAgICAgICA8YWN0aW9uIHBhdGg9Ii9IZWxsb0lucHV0Ig0KKyAgICAgICAgICAgICAgICBuYW1lPSJIZWxsb0Zvcm0iDQorICAgICAgICAgICAgICAgIGZvcndhcmQ9Ii9IZWxsb0lucHV0LmpzcCINCisgICAgICAgICAgICAgICAgdmFsaWRhdGU9ImZhbHNlIi8+DQorDQorICAgICAgICA8YWN0aW9uIHBhdGg9Ii9IZWxsbyINCisgICAgICAgICAgICAgICAgbmFtZT0iSGVsbG9Gb3JtIg0KKyAgICAgICAgICAgICAgICBmb3J3YXJkPSIvSGVsbG9QYWdlLmpzcCINCisgICAgICAgICAgICAgICAgdmFsaWRhdGU9InRydWUiDQorICAgICAgICAgICAgICAgIGlucHV0PSIvSGVsbG9JbnB1dC5kbyIvPg0KKw0KKyAgICAgICAgPGFjdGlvbiBwYXRoPSIvTG9jYWxlIg0KKyAgICAgICAgICAgICAgICB0eXBlPSJhY3Rpb25zLkxvY2FsZUFjdGlvbiI+DQorICAgICAgICAgICAgPGZvcndhcmQgbmFtZT0ic3VjY2VzcyIgcGF0aD0iL0hlbGxvSW5wdXQuZG8iLz4NCisgICAgICAgIDwvYWN0aW9uPg0KKw0KKyAgICA8L2FjdGlvbi1tYXBwaW5ncz4NCisNCisgICAgPG1lc3NhZ2UtcmVzb3VyY2VzIHBhcmFtZXRlcj0icmVzb3VyY2VzIi8+DQorDQorICAgIDxwbHVnLWluIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvclBsdWdJbiI+DQorICAgICAgICA8c2V0LXByb3BlcnR5DQorICAgICAgICAgICAgICAgIHByb3BlcnR5PSJwYXRobmFtZXMiDQorICAgICAgICAgICAgICAgIHZhbHVlPSIvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3ZhbGlkYXRvci1ydWxlcy54bWwsDQorICAgICAgICAgICAgICAgIC9XRUItSU5GL2NsYXNzZXMvdmFsaWRhdGlvbi54bWwiLz4NCisgICAgPC9wbHVnLWluPg0KKw0KKzwvc3RydXRzLWNvbmZpZz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi9qYXZhL3N0cnV0cy54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi9qYXZhL3N0cnV0cy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzc2MjdhZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL2phdmEvc3RydXRzLnhtbApAQCAtMCwwICsxLDE5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4NCis8IURPQ1RZUEUgc3RydXRzIFBVQkxJQw0KKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMi4wLy9FTiINCisgICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtMi4wLmR0ZCI+DQorDQorPHN0cnV0cz4NCisgICAgPGNvbnN0YW50IG5hbWU9InN0cnV0cy5kZXZNb2RlIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICA8Y29uc3RhbnQgbmFtZT0ic3RydXRzLmVuYWJsZS5EeW5hbWljTWV0aG9kSW52b2NhdGlvbiIgdmFsdWU9ImZhbHNlIi8+DQorICAgIDxjb25zdGFudCBuYW1lPSJzdHJ1dHMuY3VzdG9tLmkxOG4ucmVzb3VyY2VzIiB2YWx1ZT0icmVzb3VyY2VzIi8+DQorDQorICAgIDxwYWNrYWdlIG5hbWU9ImhlbGxvLWRlZmF1bHQiIGV4dGVuZHM9InN0cnV0cy1kZWZhdWx0Ij4NCisNCisgICAgICAgIDxhY3Rpb24gbmFtZT0iSGVsbG9fKiIgbWV0aG9kPSJ7MX0iIGNsYXNzPSJhY3Rpb25zLkhlbGxvIj4NCisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vSGVsbG9faW5wdXQuanNwPC9yZXN1bHQ+DQorICAgICAgICAgICAgPHJlc3VsdD4vSGVsbG8uanNwPC9yZXN1bHQ+DQorICAgICAgICA8L2FjdGlvbj4NCisNCisgICAgPC9wYWNrYWdlPg0KKzwvc3RydXRzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL2phdmEvdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi9qYXZhL3ZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlNmYyY2EKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi9qYXZhL3ZhbGlkYXRpb24ueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+DQorPCFET0NUWVBFIGZvcm0tdmFsaWRhdGlvbiBQVUJMSUMNCisgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIENvbW1vbnMgVmFsaWRhdG9yIFJ1bGVzIENvbmZpZ3VyYXRpb24gMS4zLjAvL0VOIg0KKyAgICAgICAgImh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvY29tbW9ucy9kdGRzL3ZhbGlkYXRvcl8xXzNfMC5kdGQiPg0KKw0KKzxmb3JtLXZhbGlkYXRpb24+DQorICAgIDxmb3Jtc2V0Pg0KKyAgICAgICAgPGZvcm0gbmFtZT0iSGVsbG9Gb3JtIj4NCisgICAgICAgICAgICA8ZmllbGQgcHJvcGVydHk9Im1lc3NhZ2UiIGRlcGVuZHM9InJlcXVpcmVkIj4NCisgICAgICAgICAgICAgICAgPGFyZyBrZXk9Im1lc3NhZ2UiLz4NCisgICAgICAgICAgICA8L2ZpZWxkPg0KKyAgICAgICAgPC9mb3JtPg0KKyAgICA8L2Zvcm1zZXQ+DQorPC9mb3JtLXZhbGlkYXRpb24+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vcmVzb3VyY2VzL2FjdGlvbnMvYnVpbGQuYmF0IGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vcmVzb3VyY2VzL2FjdGlvbnMvYnVpbGQuYmF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1YjAyODAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi9yZXNvdXJjZXMvYWN0aW9ucy9idWlsZC5iYXQKQEAgLTAsMCArMSw0IEBACitAZWNobyBvZmYNCitkZWwgKi5jbGFzcw0KK3NldCBDTEFTU1BBVEg9Li5cLi5cbGliXHh3b3JrLTIuMC1TTkFQU0hPVC5qYXI7Li5cLi5cbGliXHN0cnV0cy1jb3JlLTEuMy41LmphcjsuLlwuLlwuLlwuLlwuLlxjb21tb25cbGliXHNlcnZsZXQtYXBpLmphcg0KK2phdmFjICouamF2YQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3Jlc291cmNlcy9yZXNvdXJjZXMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3Jlc291cmNlcy9yZXNvdXJjZXMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzhlMTViCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vcmVzb3VyY2VzL3Jlc291cmNlcy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsNyBAQAorbWVzc2FnZSA9IE1lc3NhZ2UNCitwcm9tcHQgPSBFbnRlciBNZXNzYWdlDQorIyBTdHJ1dHMgMQ0KK2Vycm9ycy5yZXF1aXJlZD17MH0gaXMgcmVxdWlyZWQuDQorIyBTdHJ1dHMgMg0KK3JlcXVpcmVkc3RyaW5nID0gJHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIHJlcXVpcmVkLg0KKw0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3Jlc291cmNlcy9yZXNvdXJjZXNfZXMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3Jlc291cmNlcy9yZXNvdXJjZXNfZXMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWNjZWE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vcmVzb3VyY2VzL3Jlc291cmNlc19lcy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsNiBAQAorcHJvbXB0ID0gRW50cmUgZWwgbWVuc2FqZQ0KK21lc3NhZ2UgPSBNZW5zYWplDQorIyBTdHJ1dHMgMQ0KK2Vycm9ycy5yZXF1aXJlZD17MH0gc2UgcmVxdWllcmUuDQorIyBTdHJ1dHMgMg0KK3JlcXVpcmVkc3RyaW5nID0gJHtnZXRUZXh0KGZpZWxkTmFtZSl9IHNlIHJlcXVpZXJlLg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3Jlc291cmNlcy9zdHJ1dHMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3Jlc291cmNlcy9zdHJ1dHMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWM4MTM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vcmVzb3VyY2VzL3N0cnV0cy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEgQEAKK3N0cnV0cy5jdXN0b20uaTE4bi5yZXNvdXJjZXM9cmVzb3VyY2VzDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9taWdyYXRpbmcvc3JjL21haW4vd2ViYXBwL0hlbGxvLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3dlYmFwcC9IZWxsby5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGZmYmY5NQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3dlYmFwcC9IZWxsby5qc3AKQEAgLTAsMCArMSwzOSBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICAgIDxzOnRleHQgbmFtZT0ibWVzc2FnZSIvPgorICAgIDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgyPgorICAgIDxzOnByb3BlcnR5IHZhbHVlPSJtZXNzYWdlIi8+Cis8L2gyPgorCis8dWw+CisgICAgPGxpPgorICAgICAgICA8czp1cmwgaWQ9InVybCIgYWN0aW9uPSJIZWxsb19pbnB1dCIvPgorICAgICAgICA8czphIGhyZWY9IiV7dXJsfSI+CisgICAgICAgICAgICA8czpwcm9wZXJ0eSB2YWx1ZT0icHJvbXB0Ii8+CisgICAgICAgIDwvczphPgorICAgIDwvbGk+Cis8L3VsPgorCis8dWw+CisgICAgPGxpPgorICAgICAgICA8czp1cmwgaWQ9ImVuIiBhY3Rpb249IkhlbGxvX2lucHV0Ij4KKyAgICAgICAgICAgIDxzOnBhcmFtIG5hbWU9InJlcXVlc3RfbG9jYWxlIj5lbjwvczpwYXJhbT4KKyAgICAgICAgPC9zOnVybD4KKyAgICAgICAgPHM6YSBocmVmPSIle2VufSI+RW5nbGlzaDwvczphPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgICA8czp1cmwgaWQ9ImVzIiBhY3Rpb249IkhlbGxvX2lucHV0Ij4KKyAgICAgICAgICAgIDxzOnBhcmFtIG5hbWU9InJlcXVlc3RfbG9jYWxlIj5lczwvczpwYXJhbT4KKyAgICAgICAgPC9zOnVybD4KKyAgICAgICAgPHM6YSBocmVmPSIle2VzfSI+RXNwYfFvbDwvczphPgorICAgIDwvbGk+Cis8L3VsPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi93ZWJhcHAvSGVsbG9JbnB1dC5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi93ZWJhcHAvSGVsbG9JbnB1dC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjAwZmNhZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3dlYmFwcC9IZWxsb0lucHV0LmpzcApAQCAtMCwwICsxLDMxIEBACis8JUAgdGFnbGliIHByZWZpeD0iYmVhbiIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1iZWFuIiAlPg0KKzwlQCB0YWdsaWIgcHJlZml4PSJodG1sIiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWh0bWwiICU+DQorPGh0bWw+DQorPGhlYWQ+DQorICAgIDx0aXRsZT4NCisgICAgICAgIDxiZWFuOm1lc3NhZ2Uga2V5PSJwcm9tcHQiLz4NCisgICAgPC90aXRsZT4NCis8L2hlYWQ+DQorDQorPGJvZHk+DQorPGgyPg0KKyAgICA8YmVhbjptZXNzYWdlIGtleT0icHJvbXB0Ii8+DQorPC9oMj4NCis8aHRtbDplcnJvcnMvPg0KKzxodG1sOmZvcm0gYWN0aW9uPSIvSGVsbG8iPg0KKyAgICA8dGFibGU+DQorICAgICAgICA8dHI+DQorICAgICAgICAgICAgPHRkPg0KKyAgICAgICAgICAgICAgICA8YmVhbjptZXNzYWdlIGtleT0ibWVzc2FnZSIvPg0KKyAgICAgICAgICAgIDwvdGQ+DQorICAgICAgICAgICAgPHRkPg0KKyAgICAgICAgICAgICAgICA8aHRtbDp0ZXh0IHByb3BlcnR5PSJtZXNzYWdlIi8+DQorICAgICAgICAgICAgPC90ZD4NCisgICAgICAgIDwvdHI+DQorICAgICAgICA8dGQgY29sc3Bhbj0iMiI+DQorICAgICAgICAgICAgPGh0bWw6c3VibWl0Lz4NCisgICAgICAgIDwvdGQ+DQorICAgIDwvdGFibGU+DQorPC9odG1sOmZvcm0+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi93ZWJhcHAvSGVsbG9QYWdlLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3dlYmFwcC9IZWxsb1BhZ2UuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhYzBiZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi93ZWJhcHAvSGVsbG9QYWdlLmpzcApAQCAtMCwwICsxLDM0IEBACis8JUAgdGFnbGliIHByZWZpeD0iYmVhbiIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1iZWFuIiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9Imh0bWwiIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtaHRtbCIgJT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgICA8YmVhbjptZXNzYWdlIGtleT0ibWVzc2FnZSIvPgorICAgIDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgyPgorICAgIDxiZWFuOndyaXRlIG5hbWU9IkhlbGxvRm9ybSIgcHJvcGVydHk9Im1lc3NhZ2UiLz4KKzwvaDI+CisKKzx1bD4KKyAgICA8bGk+CisgICAgICAgIDxodG1sOmxpbmsgYWN0aW9uPSIvSGVsbG9JbnB1dCI+CisgICAgICAgICAgICA8YmVhbjptZXNzYWdlIGtleT0icHJvbXB0Ii8+CisgICAgICAgIDwvaHRtbDpsaW5rPgorICAgIDwvbGk+Cis8L3VsPgorCis8dWw+CisgICAgPGxpPgorICAgICAgICA8aHRtbDpsaW5rIGFjdGlvbj0iL0xvY2FsZT9sYW5ndWFnZT1lbiI+RW5nbGlzaDwvaHRtbDpsaW5rPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgICA8aHRtbDpsaW5rIGFjdGlvbj0iL0xvY2FsZT9sYW5ndWFnZT1lcyI+RXNwYfFvbDwvaHRtbDpsaW5rPgorICAgIDwvbGk+CisKKzwvdWw+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3dlYmFwcC9IZWxsb19pbnB1dC5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi93ZWJhcHAvSGVsbG9faW5wdXQuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMzUyYmUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi93ZWJhcHAvSGVsbG9faW5wdXQuanNwCkBAIC0wLDAgKzEsMjEgQEAKKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgICA8czp0ZXh0IG5hbWU9InByb21wdCIvPgorICAgIDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgyPgorICAgIDxzOnRleHQgbmFtZT0icHJvbXB0Ii8+Cis8L2gyPgorCis8cD4KKyAgICA8czpmb3JtIGFjdGlvbj0iSGVsbG8iPgorICAgICAgICA8czp0ZXh0ZmllbGQga2V5PSJtZXNzYWdlIi8+CisgICAgICAgIDxzOnN1Ym1pdC8+CisgICAgPC9zOmZvcm0+Cis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5NWM4OGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKw0KKzwhRE9DVFlQRSBzdHJ1dHMtY29uZmlnIFBVQkxJQw0KKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMS4zLy9FTiINCisgICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtY29uZmlnXzFfMy5kdGQiPg0KKw0KKzxzdHJ1dHMtY29uZmlnPg0KKyAgICA8bWVzc2FnZS1yZXNvdXJjZXMgcGFyYW1ldGVyPSJNZXNzYWdlUmVzb3VyY2VzIi8+DQorICAgIDxwbHVnLWluIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS5zdHJ1dHMudmFsaWRhdG9yLlZhbGlkYXRvclBsdWdJbiI+DQorICAgICAgICA8c2V0LXByb3BlcnR5IHByb3BlcnR5PSJwYXRobmFtZXMiDQorICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSIvb3JnL2FwYWNoZS9zdHJ1dHMvdmFsaWRhdG9yL3ZhbGlkYXRvci1ydWxlcy54bWwsL1dFQi1JTkYvdmFsaWRhdGlvbi54bWwiLz4NCisgICAgPC9wbHVnLWluPg0KKzwvc3RydXRzLWNvbmZpZz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi92YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3ZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhMjRlOTcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi92YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/Pg0KKw0KKzwhRE9DVFlQRSBmb3JtLXZhbGlkYXRpb24gUFVCTElDDQorICAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBDb21tb25zIFZhbGlkYXRvciBSdWxlcyBDb25maWd1cmF0aW9uIDEuMy4wLy9FTiINCisgICAgICAgICJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvZHRkcy92YWxpZGF0b3JfMV8zXzAuZHRkIj4NCisNCisNCis8Zm9ybS12YWxpZGF0aW9uPg0KKzwvZm9ybS12YWxpZGF0aW9uPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3dlYi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi93ZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhNTk3ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi93ZWIueG1sCkBAIC0wLDAgKzEsMzggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSB3ZWItYXBwIFBVQkxJQworICAgICAgICAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIFdlYiBBcHBsaWNhdGlvbiAyLjMvL0VOIgorICAgICAgICAiaHR0cDovL2phdmEuc3VuLmNvbS9kdGQvd2ViLWFwcF8yXzMuZHRkIj4KKzx3ZWItYXBwPgorCisgICAgPCEtLSBTdHJ1dHMgMiAtLT4KKyAgICA8ZmlsdGVyPgorICAgICAgICA8ZmlsdGVyLW5hbWU+c3RydXRzMjwvZmlsdGVyLW5hbWU+CisgICAgICAgIDxmaWx0ZXItY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuRmlsdGVyRGlzcGF0Y2hlcjwvZmlsdGVyLWNsYXNzPgorICAgIDwvZmlsdGVyPgorCisgICAgPGZpbHRlci1tYXBwaW5nPgorICAgICAgICA8ZmlsdGVyLW5hbWU+c3RydXRzMjwvZmlsdGVyLW5hbWU+CisgICAgICAgIDx1cmwtcGF0dGVybj4vKjwvdXJsLXBhdHRlcm4+CisgICAgPC9maWx0ZXItbWFwcGluZz4KKworICAgIDwhLS0gU3RydXRzIDEgLS0+CisgICAgPHNlcnZsZXQ+CisgICAgICAgIDxzZXJ2bGV0LW5hbWU+YWN0aW9uPC9zZXJ2bGV0LW5hbWU+CisgICAgICAgIDxzZXJ2bGV0LWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0PC9zZXJ2bGV0LWNsYXNzPgorICAgICAgICA8aW5pdC1wYXJhbT4KKyAgICAgICAgICAgIDxwYXJhbS1uYW1lPmNvbmZpZzwvcGFyYW0tbmFtZT4KKyAgICAgICAgICAgIDxwYXJhbS12YWx1ZT4vV0VCLUlORi9jbGFzc2VzL3N0cnV0cy1jb25maWcueG1sPC9wYXJhbS12YWx1ZT4KKyAgICAgICAgPC9pbml0LXBhcmFtPgorICAgICAgICA8bG9hZC1vbi1zdGFydHVwPjI8L2xvYWQtb24tc3RhcnR1cD4KKyAgICA8L3NlcnZsZXQ+CisKKyAgICA8c2VydmxldC1tYXBwaW5nPgorICAgICAgICA8c2VydmxldC1uYW1lPmFjdGlvbjwvc2VydmxldC1uYW1lPgorICAgICAgICA8dXJsLXBhdHRlcm4+Ki5kbzwvdXJsLXBhdHRlcm4+CisgICAgPC9zZXJ2bGV0LW1hcHBpbmc+CisKKyAgICA8IS0tIEVpdGhlciB2ZXJzaW9uIC0tPgorICAgIDx3ZWxjb21lLWZpbGUtbGlzdD4KKyAgICAgICAgPHdlbGNvbWUtZmlsZT5pbmRleC5odG1sPC93ZWxjb21lLWZpbGU+CisgICAgPC93ZWxjb21lLWZpbGUtbGlzdD4KKzwvd2ViLWFwcD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi93ZWJhcHAvaW5kZXguaHRtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvbWlncmF0aW5nL3NyYy9tYWluL3dlYmFwcC9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3ZjZkOTIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL21pZ3JhdGluZy9zcmMvbWFpbi93ZWJhcHAvaW5kZXguaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPg0KKzxodG1sPg0KKzxoZWFkPg0KKyAgICA8TUVUQSBIVFRQLUVRVUlWPSJSZWZyZXNoIiBDT05URU5UPSIwO1VSTD1IZWxsb19pbnB1dC5hY3Rpb24iPg0KKzwvaGVhZD4NCisNCis8Ym9keT4NCis8cD5Mb2FkaW5nIC4uLjwvcD4NCis8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9NRVRBLUlORi9jb250ZXh0LnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9NRVRBLUlORi9jb250ZXh0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBiNWQwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL01FVEEtSU5GL2NvbnRleHQueG1sCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxDb250ZXh0IHBhdGg9Ii8iPgorPC9Db250ZXh0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3Byb2ZpbGUuaW1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3Byb2ZpbGUuaW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiZGVkMzMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvcHJvZmlsZS5pbWwKQEAgLTAsMCArMSw2OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8bW9kdWxlIHZlcnNpb249IjQiIHJlbGF0aXZlUGF0aHM9InRydWUiIHR5cGU9IkoyRUVfV0VCX01PRFVMRSIgajJlZS1pbnRlZ3JhdGlvbj0iVG9tY2F0IFNlcnZlciI+DQorICA8Y29tcG9uZW50IG5hbWU9IkFwcFNlcnZlclNwZWNpZmljVmFsaWRhdG9yc01hbmFnZXIiIC8+DQorICA8Y29tcG9uZW50IG5hbWU9Ik1vZHVsZVJvb3RNYW5hZ2VyIiAvPg0KKyAgPGNvbXBvbmVudCBuYW1lPSJOZXdNb2R1bGVSb290TWFuYWdlciIgaW5oZXJpdC1jb21waWxlci1vdXRwdXQ9ImZhbHNlIj4NCisgICAgPG91dHB1dCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvcHJvZmlsZS9XRUItSU5GL2NsYXNzZXMiIC8+DQorICAgIDxleGNsdWRlLW91dHB1dCAvPg0KKyAgICA8ZXhwbG9kZWQgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkLy4uLy4uLy4uLy4uLy4uLy4uLy4uL29wdC9BcGFjaGUvVG9tY2F0LTUuNS93ZWJhcHBzL3Byb2ZpbGUiIC8+DQorICAgIDxleGNsdWRlLWV4cGxvZGVkIC8+DQorICAgIDxjb250ZW50IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJCI+DQorICAgICAgPHNvdXJjZUZvbGRlciB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQiIGlzVGVzdFNvdXJjZT0iZmFsc2UiIC8+DQorICAgICAgPHNvdXJjZUZvbGRlciB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL2phdmEiIGlzVGVzdFNvdXJjZT0iZmFsc2UiIC8+DQorICAgICAgPHNvdXJjZUZvbGRlciB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3Rlc3QiIGlzVGVzdFNvdXJjZT0idHJ1ZSIgLz4NCisgICAgPC9jb250ZW50Pg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJpbmhlcml0ZWRKZGsiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9InNvdXJjZUZvbGRlciIgZm9yVGVzdHM9ImZhbHNlIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJTdHJ1dHMyIiBsZXZlbD0icHJvamVjdCIgLz4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ibGlicmFyeSIgbmFtZT0iTWFpbHJlYWRlci1kYW8iIGxldmVsPSJwcm9qZWN0IiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJzZXJ2bGV0LWFwaSIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeVByb3BlcnRpZXMgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJNb2R1bGVCdWlsZENvbXBvbmVudCI+DQorICAgIDxzZXR0aW5nIG5hbWU9IkVYUExPREVEX1VSTCIgdmFsdWU9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvcHJvZmlsZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iRVhQTE9ERURfRU5BQkxFRCIgdmFsdWU9InRydWUiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkpBUl9VUkwiIHZhbHVlPSJmaWxlOi8vIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJKQVJfRU5BQkxFRCIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJTWU5DX0VYUExPREVEX0RJUiIgdmFsdWU9InRydWUiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkJVSUxEX01PRFVMRV9PTl9GUkFNRV9ERUFDVElWQVRJT04iIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iQlVJTERfRVhURVJOQUxfREVQRU5ERU5DSUVTIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IlJVTl9KQVNQRVJfVkFMSURBVElPTiIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IldlYk1vZHVsZVByb3BlcnRpZXMiPg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIj4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjEiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSIvV0VCLUlORi9saWIiIC8+DQorICAgIDwvY29udGFpbmVyRWxlbWVudD4NCisgICAgPGNvbnRhaW5lckVsZW1lbnQgdHlwZT0ibGlicmFyeSIgbmFtZT0ianVuaXQiIGxldmVsPSJhcHBsaWNhdGlvbiI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIwIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iJmx0O04vQSZndDsiIC8+DQorICAgIDwvY29udGFpbmVyRWxlbWVudD4NCisgICAgPGNvbnRhaW5lckVsZW1lbnQgdHlwZT0ibGlicmFyeSIgbmFtZT0iTWFpbHJlYWRlci1kYW8iIGxldmVsPSJwcm9qZWN0Ij4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjEiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSIvV0VCLUlORi9saWIiIC8+DQorICAgIDwvY29udGFpbmVyRWxlbWVudD4NCisgICAgPGNvbnRhaW5lckVsZW1lbnQgdHlwZT0ibGlicmFyeSIgbmFtZT0ic2VydmxldC1hcGkiIGxldmVsPSJhcHBsaWNhdGlvbiI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIwIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iJmx0O04vQSZndDsiIC8+DQorICAgIDwvY29udGFpbmVyRWxlbWVudD4NCisgICAgPGNvbnRhaW5lckVsZW1lbnQgdHlwZT0ibGlicmFyeSIgbmFtZT0iU3RydXRzMiIgbGV2ZWw9InByb2plY3QiPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMSIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9Ii9XRUItSU5GL2xpYiIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8ZGVwbG95bWVudERlc2NyaXB0b3IgbmFtZT0id2ViLnhtbCIgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sIiBvcHRpb25hbD0iZmFsc2UiIHZlcnNpb249IjIuMyIgLz4NCisgICAgPGRlcGxveW1lbnREZXNjcmlwdG9yIG5hbWU9ImNvbnRleHQueG1sIiB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvTUVUQS1JTkYvY29udGV4dC54bWwiIG9wdGlvbmFsPSJmYWxzZSIgdmVyc2lvbj0iNS54IiAvPg0KKyAgICA8ZGVwbG95bWVudERlc2NyaXB0b3IgbmFtZT0iIiB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvTUVUQS1JTkYvY29udGV4dC54bWwiIG9wdGlvbmFsPSJmYWxzZSI+DQorICAgICAgPG9wdGlvbiBuYW1lPSJERUZBVUxUX0RJUiIgdmFsdWU9IldFQi1JTkYiIC8+DQorICAgICAgPG9wdGlvbiBuYW1lPSJOQU1FIiB2YWx1ZT0iIiAvPg0KKyAgICAgIDxvcHRpb24gbmFtZT0iREVTQ1JJUFRJT04iIHZhbHVlPSIiIC8+DQorICAgIDwvZGVwbG95bWVudERlc2NyaXB0b3I+DQorICAgIDx3ZWJyb290cz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3dlYmFwcCIgcmVsYXRpdmU9Ii8iIC8+DQorICAgICAgPHJvb3QgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL3NyYy9qYXZhIiByZWxhdGl2ZT0iL1dFQi1JTkYvc3JjL2phdmEiIC8+DQorICAgICAgPHJvb3QgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL3NyYy90ZXN0IiByZWxhdGl2ZT0iL1dFQi1JTkYvc3JjL3Rlc3QiIC8+DQorICAgIDwvd2Vicm9vdHM+DQorICA8L2NvbXBvbmVudD4NCisgIDxjb21wb25lbnQgbmFtZT0iV2VibG9naWNXZWJNb2R1bGVQcm9wZXJ0aWVzIiAvPg0KKzwvbW9kdWxlPg0KKw0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvamF2YS9EYXRhYmFzZUxpc3RlbmVyLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvRGF0YWJhc2VMaXN0ZW5lci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmYTY0ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvRGF0YWJhc2VMaXN0ZW5lci5qYXZhCkBAIC0wLDAgKzEsMjMwIEBACisvKgorICogQ29weXJpZ2h0IDE5OTktMjAwMiwyMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogJElkOiBBcHBsaWNhdGlvbkxpc3RlbmVyLmphdmEgMzcyMDg3IDIwMDYtMDEtMjUgMDM6Mzg6NDJaIGNyYWlnbWNjICQKKyAqLworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZ0ZhY3Rvcnk7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5pbXBsLm1lbW9yeS5NZW1vcnlVc2VyRGF0YWJhc2U7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHRFdmVudDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0TGlzdGVuZXI7CitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIDxwPjxjb2RlPlNlcnZsZXRDb250ZXh0TGlzdGVuZXI8L2NvZGU+IHRoYXQgaW5pdGlhbGl6ZXMgYW5kIGZpbmFsaXplcyB0aGUKKyAqIHBlcnNpc3RlbnQgc3RvcmFnZSBvZiBVc2VyIGFuZCBTdWJzY3JpcHRpb24gaW5mb3JtYXRpb24gZm9yIHRoZSBTdHJ1dHMKKyAqIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24sIHVzaW5nIGFuIGluLW1lbW9yeSBkYXRhYmFzZSBiYWNrZWQgYnkgYW4gWE1MCisgKiBmaWxlLjwvcD4KKyAqIDxwLz4KKyAqIDxwPjxzdHJvbmc+SU1QTEVNRU5UQVRJT04gV0FSTklORzwvc3Ryb25nPiAtIElmIHRoaXMgd2ViIGFwcGxpY2F0aW9uIGlzIHJ1bgorICogZnJvbSBhIFdBUiBmaWxlLCBvciBpbiBhbm90aGVyIGVudmlyb25tZW50IHdoZXJlIHJlYWRpbmcgYW5kIHdyaXRpbmcgb2YgdGhlCisgKiB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgaXMgaW1wb3NzaWJsZSwgdGhlIGluaXRpYWwgY29udGVudHMgd2lsbCBiZSBjb3BpZWQKKyAqIHRvIGEgZmlsZSBpbiB0aGUgd2ViIGFwcGxpY2F0aW9uIHRlbXBvcmFyeSBkaXJlY3RvcnkgcHJvdmlkZWQgYnkgdGhlCisgKiBjb250YWluZXIuICBUaGlzIGlzIGZvciBkZW1vbnN0cmF0aW9uIHB1cnBvc2VzIG9ubHkgLSB5b3Ugc2hvdWxkCisgKiA8c3Ryb25nPk5PVDwvc3Ryb25nPiBhc3N1bWUgdGhhdCBmaWxlcyB3cml0dGVuIGhlcmUgd2lsbCBzdXJ2aXZlIGEgcmVzdGFydAorICogb2YgeW91ciBzZXJ2bGV0IGNvbnRhaW5lci48L3A+CisgKiA8cC8+CisgKiA8cD5UaGlzIGNsYXNzIHdhcyBib3Jyb3dlZCBmcm9tIHRoZSBTaGFsZSBNYWlscmVhZGVyLiBDaGFuZ2VzIHdlcmU6PC9wPgorICogPHAvPgorICogPHVsPgorICogPHAvPgorICogPGxpPlBhdGggdG8gZGF0YWJhc2UueG1sICh1bmRlciBjbGFzc2VzIGhlcmUpLiA8L2xpPgorICogPHAvPgorICogPGxpPkNsYXNzIHRvIHN0b3JlIHByb3RvY29sIGxpc3QgKGFuIGFycmF5IGhlcmUpLiA8L2xpPgorICogPHAvPgorICogPC91bD4KKyAqIDxwLz4KKyAqIERFVkVMT1BNRU5UIE5PVEUgLSBBbm90aGVyIGFwcHJvYWNoIHdvdWxkIGJlIHRvIGluc3RhbnRpYXRlIHRoZSBkYXRhYmFzZSB2aWEgU3ByaW5nLgorICogPC9wPgorICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBEYXRhYmFzZUxpc3RlbmVyIGltcGxlbWVudHMgU2VydmxldENvbnRleHRMaXN0ZW5lciB7CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTWFuaWZlc3QgQ29uc3RhbnRzCisKKworICAgIC8qKgorICAgICAqIDxwPkFwcGljYXRpb24gc2NvcGUgYXR0cmlidXRlIGtleSB1bmRlciB3aGljaCB0aGUgaW4tbWVtb3J5IHZlcnNpb24gb2YKKyAgICAgKiBvdXIgZGF0YWJhc2UgaXMgc3RvcmVkLjwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBEQVRBQkFTRV9LRVkgPSAiZGF0YWJhc2UiOworCisKKyAgICAvKioKKyAgICAgKiA8cD5BcHBsaWNhdGlvbiBzY29wZSBhdHRyaWJ1dGUga2V5IHVuZGVyIHdoaWNoIHRoZSB2YWxpZCBzZWxlY3Rpb24KKyAgICAgKiBpdGVtcyBmb3IgdGhlIHByb3RvY29sIHByb3BlcnR5IGlzIHN0b3JlZC48L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUFJPVE9DT0xTX0tFWSA9ICJwcm90b2NvbHMiOworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEluc3RhbmNlIFZhcmlhYmxlcworCisKKyAgICAvKioKKyAgICAgKiA8cD5UaGUgPGNvZGU+U2VydmxldENvbnRleHQ8L2NvZGU+IGZvciB0aGlzIHdlYiBhcHBsaWNhdGlvbi48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBTZXJ2bGV0Q29udGV4dCBjb250ZXh0ID0gbnVsbDsKKworCisgICAgLyoqCisgICAgICogVGhlIHtAbGluayBNZW1vcnlVc2VyRGF0YWJhc2V9IG9iamVjdCB3ZSBjb25zdHJ1Y3QgYW5kIG1ha2UgYXZhaWxhYmxlLgorICAgICAqLworICAgIHByaXZhdGUgTWVtb3J5VXNlckRhdGFiYXNlIGRhdGFiYXNlID0gbnVsbDsKKworCisgICAgLyoqCisgICAgICogPHA+TG9nZ2luZyBvdXRwdXQgZm9yIHRoaXMgcGx1ZyBpbiBpbnN0YW5jZS48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBMb2cgbG9nID0gTG9nRmFjdG9yeS5nZXRMb2codGhpcy5nZXRDbGFzcygpKTsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHJvcGVydGllcworCisKKyAgICAvKioKKyAgICAgKiA8cD5UaGUgd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIHBhdGggb2Ygb3VyIHBlcnNpc3RlbnQgZGF0YWJhc2Ugc3RvcmFnZQorICAgICAqIGZpbGUuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHBhdGhuYW1lID0gIi9XRUItSU5GL2NsYXNzZXMvZGF0YWJhc2UueG1sIjsKKworICAgIC8qKgorICAgICAqIDxwPlJldHVybiB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCB0byB0aGUgZGF0YWJhc2UuPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIHBhdGggdG8gdGhlIGRhdGFiYXNlCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRQYXRobmFtZSgpIHsKKyAgICAgICAgcmV0dXJuICh0aGlzLnBhdGhuYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TZXQgdGhlIGFwcGxpY2F0aW9uIHJlc291cmNlIHBhdGggdG8gdGhlIGRhdGFiYXNlLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXRobmFtZSB0byB0aGUgZGF0YWJhc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYXRobmFtZShTdHJpbmcgcGF0aG5hbWUpIHsKKyAgICAgICAgdGhpcy5wYXRobmFtZSA9IHBhdGhuYW1lOworICAgIH0KKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTZXJ2bGV0Q29udGV4dExpc3RlbmVyIE1ldGhvZHMKKworCisgICAgLyoqCisgICAgICogPHA+R3JhY2VmdWxseSBzaHV0IGRvd24gdGhpcyBkYXRhYmFzZSwgcmVsZWFzaW5nIGFueSByZXNvdXJjZXMgdGhhdAorICAgICAqIHdlcmUgYWxsb2NhdGVkIGF0IGluaXRpYWxpemF0aW9uLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBldmVudCBTZXJ2bGV0Q29udGV4dEV2ZW50IHRvIHByb2Nlc3MKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb250ZXh0RGVzdHJveWVkKFNlcnZsZXRDb250ZXh0RXZlbnQgZXZlbnQpIHsKKworICAgICAgICBsb2cuaW5mbygiRmluYWxpemluZyBtZW1vcnkgZGF0YWJhc2UgcGx1ZyBpbiIpOworCisgICAgICAgIGlmIChkYXRhYmFzZSAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGRhdGFiYXNlLmNsb3NlKCk7CisgICAgICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIGxvZy5lcnJvcigiQ2xvc2luZyBtZW1vcnkgZGF0YWJhc2UiLCBlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGNvbnRleHQucmVtb3ZlQXR0cmlidXRlKERBVEFCQVNFX0tFWSk7CisgICAgICAgIGNvbnRleHQucmVtb3ZlQXR0cmlidXRlKFBST1RPQ09MU19LRVkpOworICAgICAgICBkYXRhYmFzZSA9IG51bGw7CisgICAgICAgIGNvbnRleHQgPSBudWxsOworCisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiA8cD5Jbml0aWFsaXplIGFuZCBsb2FkIG91ciBpbml0aWFsIGRhdGFiYXNlIGZyb20gcGVyc2lzdGVudAorICAgICAqIHN0b3JhZ2UuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGV2ZW50IFRoZSBjb250ZXh0IGluaXRpYWxpemF0aW9uIGV2ZW50CisgICAgICovCisgICAgcHVibGljIHZvaWQgY29udGV4dEluaXRpYWxpemVkKFNlcnZsZXRDb250ZXh0RXZlbnQgZXZlbnQpIHsKKworICAgICAgICBsb2cuaW5mbygiSW5pdGlhbGl6aW5nIG1lbW9yeSBkYXRhYmFzZSBwbHVnIGluIGZyb20gJyIgKworICAgICAgICAgICAgICAgIHBhdGhuYW1lICsgIiciKTsKKworICAgICAgICAvLyBSZW1lbWJlciBvdXIgYXNzb2NpYXRlZCBTZXJ2bGV0Q29udGV4dAorICAgICAgICB0aGlzLmNvbnRleHQgPSBldmVudC5nZXRTZXJ2bGV0Q29udGV4dCgpOworCisgICAgICAgIC8vIENvbnN0cnVjdCBhIG5ldyBkYXRhYmFzZSBhbmQgbWFrZSBpdCBhdmFpbGFibGUKKyAgICAgICAgZGF0YWJhc2UgPSBuZXcgTWVtb3J5VXNlckRhdGFiYXNlKCk7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBTdHJpbmcgcGF0aCA9IGNhbGN1bGF0ZVBhdGgoKTsKKyAgICAgICAgICAgIGlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkgeworICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygiIExvYWRpbmcgZGF0YWJhc2UgZnJvbSAnIiArIHBhdGggKyAiJyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGF0YWJhc2Uuc2V0UGF0aG5hbWUocGF0aCk7CisgICAgICAgICAgICBkYXRhYmFzZS5vcGVuKCk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBsb2cuZXJyb3IoIk9wZW5pbmcgbWVtb3J5IGRhdGFiYXNlIiwgZSk7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbFN0YXRlRXhjZXB0aW9uKCJDYW5ub3QgbG9hZCBkYXRhYmFzZSBmcm9tICciICsKKyAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUgKyAiJzogIiArIGUpOworICAgICAgICB9CisgICAgICAgIGNvbnRleHQuc2V0QXR0cmlidXRlKERBVEFCQVNFX0tFWSwgZGF0YWJhc2UpOworCisgICAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHJpdmF0ZSBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIDxwPkNhbGN1bGF0ZSBhbmQgcmV0dXJuIGFuIGFic29sdXRlIHBhdGhuYW1lIHRvIHRoZSBYTUwgZmlsZSB0byBjb250YWluCisgICAgICogb3VyIHBlcnNpc3RlbnQgc3RvcmFnZSBpbmZvcm1hdGlvbi48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIEFic29sdXRlIHBhdGggdG8gWE1MIGZpbGUuCisgICAgICogQHRocm93cyBFeGNlcHRpb24gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VycworICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGNhbGN1bGF0ZVBhdGgoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICAvLyBDYW4gd2UgYWNjZXNzIHRoZSBkYXRhYmFzZSB2aWEgZmlsZSBJL08/CisgICAgICAgIFN0cmluZyBwYXRoID0gY29udGV4dC5nZXRSZWFsUGF0aChwYXRobmFtZSk7CisgICAgICAgIGlmIChwYXRoICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiAocGF0aCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBEb2VzIGEgY29weSBvZiB0aGlzIGZpbGUgYWxyZWFkeSBleGlzdCBpbiBvdXIgdGVtcG9yYXJ5IGRpcmVjdG9yeQorICAgICAgICBGaWxlIGRpciA9IChGaWxlKQorICAgICAgICAgICAgICAgIGNvbnRleHQuZ2V0QXR0cmlidXRlKCJqYXZheC5zZXJ2bGV0LmNvbnRleHQudGVtcGRpciIpOworICAgICAgICBGaWxlIGZpbGUgPSBuZXcgRmlsZShkaXIsICJzdHJ1dHMtZXhhbXBsZS1kYXRhYmFzZS54bWwiKTsKKyAgICAgICAgaWYgKGZpbGUuZXhpc3RzKCkpIHsKKyAgICAgICAgICAgIHJldHVybiAoZmlsZS5nZXRBYnNvbHV0ZVBhdGgoKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb3B5IHRoZSBzdGF0aWMgcmVzb3VyY2UgdG8gYSB0ZW1wb3JhcnkgZmlsZSBhbmQgcmV0dXJuIGl0cyBwYXRoCisgICAgICAgIElucHV0U3RyZWFtIGlzID0KKyAgICAgICAgICAgICAgICBjb250ZXh0LmdldFJlc291cmNlQXNTdHJlYW0ocGF0aG5hbWUpOworICAgICAgICBCdWZmZXJlZElucHV0U3RyZWFtIGJpcyA9IG5ldyBCdWZmZXJlZElucHV0U3RyZWFtKGlzLCAxMDI0KTsKKyAgICAgICAgRmlsZU91dHB1dFN0cmVhbSBvcyA9CisgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZSk7CisgICAgICAgIEJ1ZmZlcmVkT3V0cHV0U3RyZWFtIGJvcyA9IG5ldyBCdWZmZXJlZE91dHB1dFN0cmVhbShvcywgMTAyNCk7CisgICAgICAgIGJ5dGUgYnVmZmVyW10gPSBuZXcgYnl0ZVsxMDI0XTsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCBuID0gYmlzLnJlYWQoYnVmZmVyKTsKKyAgICAgICAgICAgIGlmIChuIDw9IDApIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJvcy53cml0ZShidWZmZXIsIDAsIG4pOworICAgICAgICB9CisgICAgICAgIGJvcy5jbG9zZSgpOworICAgICAgICBiaXMuY2xvc2UoKTsKKyAgICAgICAgcmV0dXJuIChmaWxlLmdldEFic29sdXRlUGF0aCgpKTsKKworICAgIH0KKworCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvSGVsbG8uamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvamF2YS9IZWxsby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiZDM1MDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvSGVsbG8uamF2YQpAQCAtMCwwICsxLDE2IEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uU3VwcG9ydDsKKworLyoqCisgKiBFeGFtcGxlIEFjdGlvbiBjbGFzcy4KKyAqLworcHVibGljIGNsYXNzIEhlbGxvIGV4dGVuZHMgQWN0aW9uU3VwcG9ydCB7CisKKyAgICAvKioKKyAgICAgKiBBbiBleGFtcGxlIGltcGxlbWVudGF0aW9uIHRoYXQgZG9lcyBub3RoaW5nIGFuZCByZXR1cm5zICJzdWNjZXNzIi4KKyAgICAgKgorICAgICAqIEByZXR1cm4ge0BsaW5rICNTVUNDRVNTfQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICByZXR1cm4gU1VDQ0VTUzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvTG9naW4tdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvTG9naW4tdmFsaWRhdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ5MzU5ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvamF2YS9Mb2dpbi12YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4KKworPHZhbGlkYXRvcnM+CisgICAgPGZpZWxkIG5hbWU9InVzZXJuYW1lIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisgICAgPGZpZWxkIG5hbWU9InBhc3N3b3JkIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnBhc3N3b3JkLnJlcXVpcmVkIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+Cis8L3ZhbGlkYXRvcnM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvTG9naW4uamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvamF2YS9Mb2dpbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2ZGViMDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvTG9naW4uamF2YQpAQCAtMCwwICsxLDIyIEBACitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5FeHBpcmVkUGFzc3dvcmRFeGNlcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworCitwdWJsaWMgY2xhc3MgTG9naW4gZXh0ZW5kcyBNYWlsUmVhZGVyU3VwcG9ydCB7CisKKyAgICBwdWJsaWMgU3RyaW5nIHNhdmUoKSB0aHJvd3MgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIHsKKworICAgICAgICBVc2VyIHVzZXIgPSBmaW5kVXNlcihnZXRVc2VybmFtZSgpLCBnZXRQYXNzd29yZCgpKTsKKworICAgICAgICBpZiAodXNlciAhPSBudWxsKSB7CisgICAgICAgICAgICBzZXRVc2VyKHVzZXIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGhhc0Vycm9ycygpKSB7CisgICAgICAgICAgICByZXR1cm4gSU5QVVQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gU1VDQ0VTUzsKKworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL0xvZ291dC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL0xvZ291dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmMTdmMTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvTG9nb3V0LmphdmEKQEAgLTAsMCArMSw5IEBACitwdWJsaWMgY2xhc3MgTG9nb3V0IGV4dGVuZHMgTWFpbFJlYWRlclN1cHBvcnQgeworCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgeworCisgICAgICAgIHNldFVzZXIobnVsbCk7CisKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL01haWxSZWFkZXJTdXBwb3J0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvTWFpbFJlYWRlclN1cHBvcnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzk5Zjg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL01haWxSZWFkZXJTdXBwb3J0LmphdmEKQEAgLTAsMCArMSwyMzMgQEAKK2ltcG9ydCBjb20ub3BlbnN5bXBob255LnV0aWwuQmVhblV0aWxzOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvblN1cHBvcnQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5FeHBpcmVkUGFzc3dvcmRFeGNlcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlckRhdGFiYXNlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5pbnRlcmNlcHRvci5BcHBsaWNhdGlvbkF3YXJlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5pbnRlcmNlcHRvci5TZXNzaW9uQXdhcmU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitwdWJsaWMgY2xhc3MgTWFpbFJlYWRlclN1cHBvcnQgZXh0ZW5kcyBBY3Rpb25TdXBwb3J0CisgICAgICAgIGltcGxlbWVudHMgQXBwbGljYXRpb25Bd2FyZSwgU2Vzc2lvbkF3YXJlIHsKKworICAgIC8vIC0tLS0gUmVnaXN0ZXIgZm9ybSBwcm9wZXJ0aWVzIC0tLS0KKworICAgIHByaXZhdGUgU3RyaW5nIHVzZXJuYW1lID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VXNlcm5hbWUoKSB7CisgICAgICAgIHJldHVybiB1c2VybmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVc2VybmFtZShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgdXNlcm5hbWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBwYXNzd29yZCA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkKCkgeworICAgICAgICByZXR1cm4gcGFzc3dvcmQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UGFzc3dvcmQoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHBhc3N3b3JkID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQyID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGFzc3dvcmQyKCkgeworICAgICAgICByZXR1cm4gcGFzc3dvcmQyOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFBhc3N3b3JkMihTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcGFzc3dvcmQyID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgZnVsbE5hbWUgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRGdWxsTmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGZ1bGxOYW1lOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEZ1bGxOYW1lKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBmdWxsTmFtZSA9IHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIGZyb21BZGRyZXNzID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RnJvbUFkZHJlc3MoKSB7CisgICAgICAgIHJldHVybiBmcm9tQWRkcmVzczsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRGcm9tQWRkcmVzcyhTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgZnJvbUFkZHJlc3MgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyByZXBseVRvQWRkcmVzcyA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFJlcGx5VG9BZGRyZXNzKCkgeworICAgICAgICByZXR1cm4gcmVwbHlUb0FkZHJlc3M7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UmVwbHlUb0FkZHJlc3MoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHJlcGx5VG9BZGRyZXNzID0gdmFsdWU7CisgICAgfQorCisgICAgLy8gLS0tLSBUYXNrIHByb3BlcnR5ICh1dGlsaXplZCBieSBVSSkgLS0tLQorCisgICAgcHJpdmF0ZSBTdHJpbmcgdGFzayA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRhc2soKSB7CisgICAgICAgIHJldHVybiB0YXNrOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFRhc2soU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHRhc2sgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvLyAtLS0tIEtleXMgLS0tLQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQUJBU0VfS0VZID0gImRhdGFiYXNlIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFVTRVJfS0VZID0gInVzZXIiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUEFTU1dPUkRfTUlTTUFUQ0hfRklFTEQgPSAicGFzc3dvcmQiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0FOQ0VMID0gImNhbmNlbCI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDUkVBVEUgPSAiQ3JlYXRlIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVESVQgPSAiRWRpdCI7CisKKyAgICAvLyAtLS0tIE1lc3NhZ2UgS2V5cyAtLS0tCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9EQVRBQkFTRV9NSVNTSU5HID0KKyAgICAgICAgICAgICJlcnJvci5kYXRhYmFzZS5taXNzaW5nIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVSUk9SX1VTRVJOQU1FX1VOSVFVRSA9CisgICAgICAgICAgICAiZXJyb3IudXNlcm5hbWUudW5pcXVlIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVSUk9SX1BBU1NXT1JEX01JU01BVENIID0KKyAgICAgICAgICAgICJlcnJvci5wYXNzd29yZC5taXNtYXRjaCI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9QQVNTV09SRF9NQVRDSCA9CisgICAgICAgICAgICAiZXJyb3IucGFzc3dvcmQubWF0Y2giOworCisgICAgLy8gLS0tLSBBcHBsaWNhdGlvbkF3YXJlIC0tLS0KKworICAgIHByaXZhdGUgTWFwIGFwcGxpY2F0aW9uOworCisgICAgcHVibGljIHZvaWQgc2V0QXBwbGljYXRpb24oTWFwIHZhbHVlKSB7CisgICAgICAgIGFwcGxpY2F0aW9uID0gdmFsdWU7CisgICAgfQorCisgICAgcHVibGljIE1hcCBnZXRBcHBsaWNhdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGFwcGxpY2F0aW9uOworICAgIH0KKworICAgIC8vIC0tLS0gRGF0YWJhc2UgcHJvcGVydHkgLS0tLQorCisgICAgcHVibGljIFVzZXJEYXRhYmFzZSBnZXREYXRhYmFzZSgpIHsKKyAgICAgICAgT2JqZWN0IGRiID0gZ2V0QXBwbGljYXRpb24oKS5nZXQoREFUQUJBU0VfS0VZKTsKKyAgICAgICAgaWYgKGRiID09IG51bGwpIHsKKyAgICAgICAgICAgIHRoaXMuYWRkQWN0aW9uRXJyb3IoZ2V0VGV4dChFUlJPUl9EQVRBQkFTRV9NSVNTSU5HKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChVc2VyRGF0YWJhc2UpIGRiOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldERhdGFiYXNlKFVzZXJEYXRhYmFzZSBkYXRhYmFzZSkgeworICAgICAgICBnZXRBcHBsaWNhdGlvbigpLnB1dChEQVRBQkFTRV9LRVksIGRhdGFiYXNlKTsKKyAgICB9CisKKyAgICAvLyAtLS0tIFNlc3Npb25Bd2FyZSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5GaWVsZCB0byBzdG9yZSBzZXNzaW9uIGNvbnRleHQsIG9yIGl0cyBwcm94eS48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgc2Vzc2lvbjsKKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIGEgbmV3IHNlc3Npb24gY29udGV4dC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgQSBNYXAgcmVwcmVzZW50aW5nIHNlc3Npb24gc3RhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZXNzaW9uKE1hcCB2YWx1ZSkgeworICAgICAgICBzZXNzaW9uID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSBzZXNzaW9uIGNvbnRleHQuPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBzZXNzaW9uIGNvbnRleHQKKyAgICAgKi8KKyAgICBwdWJsaWMgTWFwIGdldFNlc3Npb24oKSB7CisgICAgICAgIHJldHVybiBzZXNzaW9uOworICAgIH0KKworICAgIC8vIC0tLS0gVXNlciBwcm9wZXJ0eSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIHJlZmVyZW5jZSB0byBVc2VyIG9iamVjdCBmb3IgYXV0aGVudGljYXRlZCB1c2VyLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVXNlciBvYmplY3QgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVXNlciBnZXRVc2VyKCkgeworICAgICAgICByZXR1cm4gKFVzZXIpIGdldFNlc3Npb24oKS5nZXQoVVNFUl9LRVkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIG5ldyByZWZlcmVuY2UgdG8gVXNlciBPYmplY3QuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHVzZXIgVXNlciBvYmplY3QgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFVzZXIoVXNlciB1c2VyKSB7CisgICAgICAgIGdldFNlc3Npb24oKS5wdXQoVVNFUl9LRVksIHVzZXIpOworICAgIH0KKworICAgIC8vIC0tLS0gRGF0YWJhc2UgbWV0aG9kcyAtLS0tCisKKyAgICBwdWJsaWMgVXNlciBmaW5kVXNlcihTdHJpbmcgdXNlcm5hbWUsIFN0cmluZyBwYXNzd29yZCkKKyAgICAgICAgICAgIHRocm93cyBFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24geworCisgICAgICAgIFVzZXIgdXNlciA9IGdldERhdGFiYXNlKCkuZmluZFVzZXIodXNlcm5hbWUpOworCisgICAgICAgIGlmICgodXNlciAhPSBudWxsKSAmJiAhdXNlci5nZXRQYXNzd29yZCgpLmVxdWFscyhwYXNzd29yZCkpIHsKKyAgICAgICAgICAgIHVzZXIgPSBudWxsOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHVzZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgYWRkRmllbGRFcnJvcihQQVNTV09SRF9NSVNNQVRDSF9GSUVMRCwKKyAgICAgICAgICAgICAgICAgICAgZ2V0VGV4dChFUlJPUl9QQVNTV09SRF9NSVNNQVRDSCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHVzZXI7CisKKyAgICB9CisKKyAgICBwdWJsaWMgVXNlciBjcmVhdGVVc2VyKFN0cmluZyB1c2VybmFtZSwgU3RyaW5nIHBhc3N3b3JkKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBnZXREYXRhYmFzZSgpOworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5maW5kVXNlcih1c2VybmFtZSk7CisKKyAgICAgICAgaWYgKHVzZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgYWRkQWN0aW9uRXJyb3IoZ2V0VGV4dChFUlJPUl9VU0VSTkFNRV9VTklRVUUpKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgdXNlciA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIodXNlcm5hbWUpOworICAgICAgICBCZWFuVXRpbHMuc2V0VmFsdWVzKHVzZXIsIHRoaXMsIG51bGwpOworCisgICAgICAgIHJldHVybiB1c2VyOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNhdmVVc2VyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGdldERhdGFiYXNlKCkuc2F2ZSgpOworICAgIH0KKworICAgIC8vIC0tLS0gQWxpYXMgLS0tLQorCisgICAgcHVibGljIFN0cmluZyBjYW5jZWwoKSB7CisgICAgICAgIHJldHVybiBDQU5DRUw7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvUmVnaXN0ZXItdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvUmVnaXN0ZXItdmFsaWRhdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjgxNTVmNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvamF2YS9SZWdpc3Rlci12YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4KKworPHZhbGlkYXRvcnM+CisKKyAgICA8ZmllbGQgbmFtZT0idXNlcm5hbWUiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IudXNlcm5hbWUucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworICAgIDxmaWVsZCBuYW1lPSJmdWxsTmFtZSI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5mdWxsTmFtZS5yZXF1aXJlZCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCisgICAgPGZpZWxkIG5hbWU9ImZyb21BZGRyZXNzIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLmZyb21BZGRyZXNzLnJlcXVpcmVkIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9ImVtYWlsIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3JzLmVtYWlsIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKyAgICA8ZmllbGQgbmFtZT0icmVwbHlUb0FkZHJlc3MiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9ImVtYWlsIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3JzLmVtYWlsIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKzwvdmFsaWRhdG9ycz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvamF2YS9SZWdpc3Rlci5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL1JlZ2lzdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJhOTc0OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvamF2YS9SZWdpc3Rlci5qYXZhCkBAIC0wLDAgKzEsNjUgQEAKK2ltcG9ydCBjb20ub3BlbnN5bXBob255LnV0aWwuQmVhblV0aWxzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKKworcHVibGljIGNsYXNzIFJlZ2lzdGVyIGV4dGVuZHMgTWFpbFJlYWRlclN1cHBvcnQgeworCisgICAgcHVibGljIFN0cmluZyBpbnB1dCgpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIFVzZXIgdXNlciA9IGdldFVzZXIoKTsKKyAgICAgICAgYm9vbGVhbiBlZGl0aW5nID0gKG51bGwgIT0gdXNlcik7CisKKyAgICAgICAgaWYgKGVkaXRpbmcpIHsKKyAgICAgICAgICAgIHNldFRhc2soRURJVCk7CisgICAgICAgICAgICBCZWFuVXRpbHMuc2V0VmFsdWVzKHRoaXMsIHVzZXIsIG51bGwpOworICAgICAgICAgICAgc2V0UGFzc3dvcmQobnVsbCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzZXRUYXNrKENSRUFURSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gSU5QVVQ7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBzYXZlKCkKKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIFVzZXIgdXNlciA9IGdldFVzZXIoKTsKKyAgICAgICAgYm9vbGVhbiBlZGl0aW5nID0gKG51bGwgIT0gdXNlcik7CisKKyAgICAgICAgaWYgKGVkaXRpbmcpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBBbnkgd2F5IHRvIGNhbGwgdGhlIFJlZ2lzdGVyQ3JlYXRlIHZhbGlkYXRvcnMgZnJvbSBoZXJlPworICAgICAgICAgICAgU3RyaW5nIG5ld1Bhc3N3b3JkID0gZ2V0UGFzc3dvcmQoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gY2hhbmdpbmcgPSAoKG51bGwgIT0gbmV3UGFzc3dvcmQpICYmIChuZXdQYXNzd29yZC5sZW5ndGgoKSA+IDApKTsKKyAgICAgICAgICAgIGlmICghY2hhbmdpbmcpIHsKKyAgICAgICAgICAgICAgICBzZXRQYXNzd29yZCh1c2VyLmdldFBhc3N3b3JkKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY29uZmlybVBhc3N3b3JkID0gZ2V0UGFzc3dvcmQyKCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBtYXRjaGVzID0gKChudWxsICE9IGNvbmZpcm1QYXNzd29yZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIChjb25maXJtUGFzc3dvcmQuZXF1YWxzKG5ld1Bhc3N3b3JkKSkpOworICAgICAgICAgICAgICAgIGlmIChtYXRjaGVzKSB7CisgICAgICAgICAgICAgICAgICAgIHVzZXIuc2V0UGFzc3dvcmQobmV3UGFzc3dvcmQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKGdldFRleHQoRVJST1JfUEFTU1dPUkRfTUFUQ0gpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElOUFVUOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEJlYW5VdGlscy5zZXRWYWx1ZXModXNlciwgdGhpcywgbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWVkaXRpbmcpIHsKKyAgICAgICAgICAgIHVzZXIgPSBmaW5kVXNlcihnZXRVc2VybmFtZSgpLCBnZXRQYXNzd29yZCgpKTsKKyAgICAgICAgICAgIGJvb2xlYW4gaGF2ZVVzZXIgPSAodXNlciAhPSBudWxsKTsKKworICAgICAgICAgICAgaWYgKGhhdmVVc2VyKSB7CisgICAgICAgICAgICAgICAgYWRkQWN0aW9uRXJyb3IoZ2V0VGV4dChFUlJPUl9VU0VSTkFNRV9VTklRVUUpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSU5QVVQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHVzZXIgPSBjcmVhdGVVc2VyKGdldFVzZXJuYW1lKCksIGdldFBhc3N3b3JkKCkpOworICAgICAgICAgICAgc2V0VXNlcih1c2VyKTsKKyAgICAgICAgfQorCisgICAgICAgIHNhdmVVc2VyKCk7CisKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL1JlZ2lzdGVyQ3JlYXRlLXZhbGlkYXRpb24ueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL1JlZ2lzdGVyQ3JlYXRlLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4OTY0MDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvUmVnaXN0ZXJDcmVhdGUtdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+CisKKzx2YWxpZGF0b3JzPgorCisgICAgPGZpZWxkIG5hbWU9InBhc3N3b3JkIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnBhc3N3b3JkLnJlcXVpcmVkIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InN0cmluZ2xlbmd0aCI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0idHJpbSI+dHJ1ZTwvcGFyYW0+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluTGVuZ3RoIj40PC9wYXJhbT4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtYXhMZW5ndGgiPjEwPC9wYXJhbT4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3JzLnJhbmdlIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKyAgICA8ZmllbGQgbmFtZT0icGFzc3dvcmQyIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnBhc3N3b3JkMi5yZXF1aXJlZCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCisgICAgPHZhbGlkYXRvciB0eXBlPSJleHByZXNzaW9uIj4KKyAgICAgICAgPHBhcmFtIG5hbWU9ImV4cHJlc3Npb24iPnBhc3N3b3JkIGVxIHBhc3N3b3JkMjwvcGFyYW0+CisgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucGFzc3dvcmQubWF0Y2giLz4KKyAgICA8L3ZhbGlkYXRvcj4KKworPC92YWxpZGF0b3JzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL1JlZ2lzdGVyQ3JlYXRlLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvUmVnaXN0ZXJDcmVhdGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODk1NjUyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL1JlZ2lzdGVyQ3JlYXRlLmphdmEKQEAgLTAsMCArMSw1IEBACisvKioKKyAqIDxwPlN0dWIgY2xhc3MgdG8gYWxsb3cgZXh0cmEgdmFsaWRhdGlvbiBvbiBpbml0aWFsIFNhdmUuPC9wPgorICovCitwdWJsaWMgY2xhc3MgUmVnaXN0ZXJDcmVhdGUgZXh0ZW5kcyBSZWdpc3RlciB7Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvZGF0YWJhc2UueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL2RhdGFiYXNlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYmM4MzNkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL2RhdGFiYXNlLnhtbApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPScxLjAnPz4KKzxkYXRhYmFzZT4KKyAgICA8dXNlciB1c2VybmFtZT0idXNlciIgZnJvbUFkZHJlc3M9IkpvaG4uVXNlckBzb21ld2hlcmUuY29tIgorICAgICAgICAgIGZ1bGxOYW1lPSJKb2huIFEuIFVzZXIiIHBhc3N3b3JkPSJwYXNzIj4KKyAgICAgICAgPHN1YnNjcmlwdGlvbiBob3N0PSJtYWlsLmhvdG1haWwuY29tIiBhdXRvQ29ubmVjdD0iZmFsc2UiCisgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ9ImJhciIgdHlwZT0icG9wMyIgdXNlcm5hbWU9InVzZXIxMjM0Ij4KKyAgICAgICAgPC9zdWJzY3JpcHRpb24+CisgICAgICAgIDxzdWJzY3JpcHRpb24gaG9zdD0ibWFpbC55YWhvby5jb20iIGF1dG9Db25uZWN0PSJmYWxzZSIgcGFzc3dvcmQ9ImZvbyIKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJpbWFwIiB1c2VybmFtZT0ianF1c2VyIj4KKyAgICAgICAgPC9zdWJzY3JpcHRpb24+CisgICAgPC91c2VyPgorPC9kYXRhYmFzZT4KKyAgICAgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL3Jlc291cmNlcy5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL3Jlc291cmNlcy5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3NGVjOTMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvcmVzb3VyY2VzLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxMDUgQEAKK2hlbGxvLm1lc3NhZ2UgPSBDb25ncmF0dWxhdGlvbnMhIFN0cnV0cyBpcyB1cCBhbmQgcnVubmluZyAuLi4KKworaW5kZXgudGl0bGU9TWFpbFJlYWRlcgoraW5kZXgubG9naW49TG9nIGludG8gTWFpbFJlYWRlcgoraW5kZXgucmVnaXN0cmF0aW9uPVJlZ2lzdGVyIHdpdGggTWFpbFJlYWRlcgorCityZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlPU1haWxSZWFkZXIgLSBSZWdpc3RlciAtIENyZWF0ZQorcmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQ9TWFpbFJlYWRlciAtIFJlZ2lzdGVyIC0gRWRpdAorCit1c2VybmFtZT1Vc2VybmFtZQorcGFzc3dvcmQ9UGFzc3dvcmQKK3Bhc3N3b3JkMj0oUmVwZWF0KSBQYXNzd29yZAorZnVsbE5hbWU9RnVsbCBOYW1lCitmcm9tQWRkcmVzcz1Gcm9tIEFkZHJlc3MKK3JlcGx5VG9BZGRyZXNzPVJlcGx5IFRvIEFkZHJlc3MKKworYnV0dG9uLmNhbmNlbD1DYW5jZWwKK2J1dHRvbi5zYXZlPVNhdmUKKworbWVudS50aXRsZT1NYWlsUmVhZGVyIC0gTWFpbiBNZW51CittZW51LmhlYWRpbmc9TWVudSBPcHRpb25zIGZvcgorbWVudS5yZWdpc3RyYXRpb249RWRpdCB5b3VyIHJlZ2lzdHJhdGlvbiBwcm9maWxlCittZW51LmxvZ291dD1Mb2cgb3V0IG9mIE1haWxSZWFkZXIKKworbG9naW4udGl0bGU9TWFpbFJlYWRlciAtIExvZ29uCisKK2Vycm9yLmRhdGFiYXNlLm1pc3Npbmc9VXNlciBkYXRhYmFzZSBpcyBtaXNzaW5nLCBjYW5ub3QgdmFsaWRhdGUgbG9nb24gY3JlZGVudGlhbHMKK2Vycm9yLnVzZXJuYW1lLnVuaXF1ZT1UaGF0IHVzZXJuYW1lIGlzIGFscmVhZHkgaW4gdXNlIC0gcGxlYXNlIHNlbGVjdCBhbm90aGVyCitlcnJvci5wYXNzd29yZC5taXNtYXRjaD1JbnZhbGlkIHVzZXJuYW1lIGFuZC9vciBwYXNzd29yZCwgcGxlYXNlIHRyeSBhZ2FpbgorCitlcnJvci51c2VybmFtZS5yZXF1aXJlZD1Vc2VybmFtZSBpcyByZXF1aXJlZAorZXJyb3IuZnVsbE5hbWUucmVxdWlyZWQ9RnVsbCBOYW1lIGlzIHJlcXVpcmVkCitlcnJvci5mcm9tQWRkcmVzcy5yZXF1aXJlZD1Gcm9tIEFkZHJlc3MgaXMgcmVxdWlyZWQKK2Vycm9yLmZyb21BZGRyZXNzLmZvcm1hdD1JbnZhbGlkIGZvcm1hdCBmb3IgRnJvbSBBZGRyZXNzCitlcnJvci5yZXBseVRvQWRkcmVzcy5mb3JtYXQ9SW52YWxpZCBmb3JtYXQgZm9yIFJlcGx5IFRvIEFkZHJlc3MKK2Vycm9yLnBhc3N3b3JkLnJlcXVpcmVkPVBhc3N3b3JkIGlzIHJlcXVpcmVkCitlcnJvci5wYXNzd29yZDIucmVxdWlyZWQ9Q29uZmlybWF0aW9uIHBhc3N3b3JkIGlzIHJlcXVpcmVkCitlcnJvci5wYXNzd29yZC5tYXRjaD1QYXNzd29yZCBhbmQgY29uZmlybWF0aW9uIHBhc3N3b3JkIG11c3QgbWF0Y2gKKworZXJyb3IuaG9zdC5yZXF1aXJlZD1NYWlsIFNlcnZlciBpcyByZXF1aXJlZAorZXJyb3IudHlwZS5pbnZhbGlkPVNlcnZlciBUeXBlIG11c3QgYmUgJ2ltYXAnIG9yICdwb3AzJworZXJyb3IudHlwZS5yZXF1aXJlZD1TZXJ2ZXIgVHlwZSBpcyByZXF1aXJlZAorCisjIEZ1dHVyZSB1c2UKK2J1dHRvbi5jb25maXJtPUNvbmZpcm0KK2J1dHRvbi5kb1N1Ym1pdD1ET19TVUJNSVQKK2J1dHRvbi5kb1Jlc2V0PURPX1JFU1VMVAorYnV0dG9uLmRvQ2FuY2VsPW9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNBTkNFTAorYnV0dG9uLnJlc2V0PVJlc2V0CitjaGFuZ2UubWVzc2FnZT1Zb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkLiAgUGxlYXNlIGFzayB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3IgdG8gY2hhbmdlIGl0LgorY2hhbmdlLnRyeT1UcnkgQWdhaW4KK2NoYW5nZS50aXRsZT1QYXNzd29yZCBIYXMgRXhwaXJlZAorZGF0YWJhc2UubG9hZD1DYW5ub3QgbG9hZCBkYXRhYmFzZSBmcm9tIHswfQorc3RydXRzLm1lc3NhZ2VzLmludmFsaWQudG9rZW49Q2Fubm90IHN1Ym1pdCB0aGlzIGZvcm0gb3V0IG9mIG9yZGVyCitlcnJvcnMuZm9vdGVyPTwvdWw+PGhyPgorZXJyb3JzLmhlYWRlcj08aDM+PGZvbnQgY29sb3I9InJlZCI+VmFsaWRhdGlvbiBFcnJvcjwvZm9udD48L2gzPjxwPllvdSBtdXN0IGNvcnJlY3QgdGhlIGZvbGxvd2luZyBlcnJvcihzKSBiZWZvcmUgcHJvY2VlZGluZzo8L3A+PHVsPgorZXJyb3JzLnByZWZpeD08bGk+CitlcnJvcnMuc3VmZml4PTwvbGk+CitlcnJvcnMuaW9FeGNlcHRpb249SS9PIGV4Y2VwdGlvbiByZW5kZXJpbmcgZXJyb3IgbWVzc2FnZXM6IHswfQorZXJyb3Iubm9TdWJzY3JpcHRpb249Tm8gU3Vic2NyaXB0aW9uIGJlYW4gaW4gdXNlciBzZXNzaW9uCitlcnJvci5wYXNzd29yZC5leHBpcmVkPVlvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQgZm9yIHVzZXJuYW1lIHswfQorZXhwaXJlZC5wYXNzd29yZD1Vc2VyIFBhc3N3b3JkIGhhcyBleHBpcmVkIGZvciB7MH0KK2hlYWRpbmcuYXV0b0Nvbm5lY3Q9QXV0bworaGVhZGluZy5zdWJzY3JpcHRpb25zPUN1cnJlbnQgU3Vic2NyaXB0aW9ucworaGVhZGluZy5ob3N0PUhvc3QgTmFtZQoraGVhZGluZy51c2VyPVVzZXIgTmFtZQoraGVhZGluZy50eXBlPVNlcnZlciBUeXBlCitoZWFkaW5nLmFjdGlvbj1BY3Rpb24KK2luZGV4LmhlYWRpbmc9TWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uIE9wdGlvbnMKK2luZGV4LnRvdXI9QSBXYWxraW5nIFRvdXIgb2YgdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbgorbGlua1N1YnNjcmlwdGlvbi5pbz1JL08gRXJyb3I6IHswfQorbGlua1N1YnNjcmlwdGlvbi5ub1N1YnNjcmlwdGlvbj1ObyBzdWJzY3JpcHRpb24gdW5kZXIgYXR0cmlidXRlIHswfQorbGlua1VzZXIuaW89SS9PIEVycm9yOiB7MH0KK2xpbmtVc2VyLm5vVXNlcj1ObyB1c2VyIHVuZGVyIGF0dHJpYnV0ZSB7MH0KK29wdGlvbi5pbWFwPUlNQVAgUHJvdG9jb2wKK29wdGlvbi5wb3AzPVBPUDMgUHJvdG9jb2wKKyMgcHJvbXB0LgorYXV0b0Nvbm5lY3Q9QXV0byBDb25uZWN0CittYWlsSG9zdG5hbWU9TWFpbCBTZXJ2ZXIKK21haWxQYXNzd29yZD1NYWlsIFBhc3N3b3JkCittYWlsU2VydmVyVHlwZT1TZXJ2ZXIgVHlwZQorbWFpbFVzZXJuYW1lPU1haWwgVXNlcm5hbWUKK3JlZ2lzdHJhdGlvbi5hZGRTdWJzY3JpcHRpb249QWRkCityZWdpc3RyYXRpb24uZGVsZXRlU3Vic2NyaXB0aW9uPURlbGV0ZQorcmVnaXN0cmF0aW9uLmVkaXRTdWJzY3JpcHRpb249RWRpdAorc3Vic2NyaXB0aW9uLnRpdGxlLmNyZWF0ZT1DcmVhdGUgTmV3IE1haWwgU3Vic2NyaXB0aW9uCitzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlPURlbGV0ZSBFeGlzdGluZyBNYWlsIFN1YnNjcmlwdGlvbgorc3Vic2NyaXB0aW9uLnRpdGxlLmVkaXQ9RWRpdCBFeGlzdGluZyBNYWlsIFN1YnNjcmlwdGlvbgorCisjIFN0YW5kYXJkIGVycm9yIG1lc3NhZ2VzIGZvciB2YWxpZGF0b3IgZnJhbWV3b3JrIGNoZWNrcworZXJyb3JzLnJlcXVpcmVkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyByZXF1aXJlZC4KK2Vycm9ycy5taW5sZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGNhbm5vdCBiZSBsZXNzIHRoYW4gezF9IGNoYXJhY3RlcnMuCitlcnJvcnMubWF4bGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHsxfSBjaGFyYWN0ZXJzLgorZXJyb3JzLmludmFsaWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGludmFsaWQuCitlcnJvcnMuYnl0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBieXRlLgorZXJyb3JzLnNob3J0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIHNob3J0LgorZXJyb3JzLmludGVnZXI9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gaW50ZWdlci4KK2Vycm9ycy5sb25nPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGxvbmcuCitlcnJvcnMuZmxvYXQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gZmxvYXQuCitlcnJvcnMuZG91YmxlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGRvdWJsZS4KK2Vycm9ycy5kYXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSBkYXRlLgorZXJyb3JzLnJhbmdlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgaW4gdGhlIHJhbmdlICR7bWluTGVuZ3RofSB0aHJvdWdoICR7bWF4TGVuZ3RofS4KK2Vycm9ycy5jcmVkaXRjYXJkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuCitlcnJvcnMuZW1haWw9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGFuIGludmFsaWQgZS1tYWlsIGFkZHJlc3MuCitlcnJvcnMubGl0ZXJhbD0ke2dldFRleHQoZmllbGROYW1lKX0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvamF2YS9yZXNvdXJjZXNfamEucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvamF2YS9yZXNvdXJjZXNfamEucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGViNmQyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL3Jlc291cmNlc19qYS5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsODkgQEAKK2J1dHRvbi5jYW5jZWw9XHUzMGFkXHUzMGUzXHUzMGYzXHUzMGJiXHUzMGViCitidXR0b24uY29uZmlybT1cdTc4YmFcdThhOGQKK2J1dHRvbi5yZXNldD1cdTMwZWFcdTMwYmJcdTMwYzNcdTMwYzgKK2J1dHRvbi5zYXZlPVx1NGZkZFx1NWI1OAorY2hhbmdlLm1lc3NhZ2U9XHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDZFXHU2NzA5XHU1MkI5XHU2NzFGXHU5NjUwXHUzMDRDXHU5MDRFXHUzMDRFXHUzMDdFXHUzMDU3XHUzMDVGXHUzMDAyXHUzMEI3XHUzMEI5XHUzMEM2XHUzMEUwXHU3QkExXHU3NDA2XHU4MDA1XHUzMDZCXHUzMDRBXHU1NTRGXHUzMDQ0XHU1NDA4XHUzMDhGXHUzMDVCXHU0RTBCXHUzMDU1XHUzMDQ0CitjaGFuZ2UudHJ5PVx1NTE4RFx1OEE2Nlx1ODg0QworY2hhbmdlLnRpdGxlPVx1MzBkMVx1MzBiOVx1MzBlZlx1MzBmY1x1MzBjOVx1NjcxZlx1OTY1MFx1NTIwN1x1MzA4YworZGF0YWJhc2UubG9hZD0gezB9IFx1MzA0Qlx1MzA4OVx1MzBDN1x1MzBGQ1x1MzBCRlx1MzBEOVx1MzBGQ1x1MzBCOVx1MzA5Mlx1MzBFRFx1MzBGQ1x1MzBDOVx1MzA2N1x1MzA0RFx1MzA3RVx1MzA1Qlx1MzA5MworZXJyb3IuZGF0YWJhc2UubWlzc2luZz1cdTMwRTZcdTMwRkNcdTMwQjZcdTMwQzdcdTMwRkNcdTMwQkZcdTMwRDlcdTMwRkNcdTMwQjlcdTMwNENcdTg5OEJcdTMwNjRcdTMwNEJcdTMwOEFcdTMwN0VcdTMwNUJcdTMwOTNcdTMwMDJcdTMwRURcdTMwQjBcdTMwQUFcdTMwRjNcdTMwNkVcdThBOERcdThBM0NcdTMwNENcdTUxRkFcdTY3NjVcdTMwN0VcdTMwNUJcdTMwOTMKK2Vycm9yLmZyb21BZGRyZXNzLmZvcm1hdD1Gcm9tXHUzMEEyXHUzMEM5XHUzMEVDXHUzMEI5XHUzMDZFXHU2NkY4XHU1RjBGXHUzMDRDXHU2QjYzXHUzMDU3XHUzMDRGXHUzMDQyXHUzMDhBXHUzMDdFXHUzMDVCXHUzMDkzCitlcnJvci5mcm9tQWRkcmVzcy5yZXF1aXJlZD1Gcm9tXHUzMEEyXHUzMEM5XHUzMEVDXHUzMEI5XHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvci5mdWxsTmFtZS5yZXF1aXJlZD1cdTMwRDVcdTMwRUJcdTMwQ0RcdTMwRkNcdTMwRTBcdTMwOTJcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQKK2Vycm9yLmhvc3QucmVxdWlyZWQ9XHUzMEUxXHUzMEZDXHUzMEVCXHUzMEI1XHUzMEZDXHUzMEQwXHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvci5ub1N1YnNjcmlwdGlvbj1TdWJzY3JpcHRpb24gYmVhbiBcdTMwNGNcdTMwYmJcdTMwYzNcdTMwYjdcdTMwZTdcdTMwZjNcdTMwNmVcdTRlMmRcdTMwNmJcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTMKK2Vycm9yLnBhc3N3b3JkLmV4cGlyZWQ9XHUzMEU2XHUzMEZDXHUzMEI2IHswfSBcdTMwNkVcdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNkVcdTY3MDlcdTUyQjlcdTY3MUZcdTk2NTBcdTMwNENcdTkwNEVcdTMwNEVcdTMwN0VcdTMwNTdcdTMwNUYKK2Vycm9yLnBhc3N3b3JkLnJlcXVpcmVkPVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA0Q1x1NUZDNVx1ODk4MVx1MzA2N1x1MzA1OQorZXJyb3IucGFzc3dvcmQyLnJlcXVpcmVkPVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOShcdTc4QkFcdThBOERcdTc1MjgpXHUzMDRDXHU1RkM1XHU4OTgxXHUzMDY3XHUzMDU5CitlcnJvci5wYXNzd29yZC5tYXRjaD1cdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNjhcdTc4QkFcdThBOERcdTc1MjhcdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNENcdTRFMDBcdTgxRjRcdTMwNTdcdTMwNjZcdTMwNDRcdTMwN0VcdTMwNUJcdTMwOTMKK2Vycm9yLnBhc3N3b3JkLm1pc21hdGNoPVx1MzBFNlx1MzBGQ1x1MzBCNlx1NTQwRFx1MzA3RVx1MzA1Rlx1MzA2Rlx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA0Q1x1NEUwRFx1NkI2M1x1MzA2N1x1MzA1OVx1MzAwMlx1NTE4RFx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorZXJyb3IucmVwbHlUb0FkZHJlc3MuZm9ybWF0PVx1OEZENFx1NEZFMVx1MzBBMlx1MzBDOVx1MzBFQ1x1MzBCOVx1MzA2RVx1NjZGOFx1NUYwRlx1MzA0Q1x1NkI2M1x1MzA1N1x1MzA0Rlx1MzA0Mlx1MzA4QVx1MzA3RVx1MzA1Qlx1MzA5Mworc3RydXRzLm1lc3NhZ2VzLmludmFsaWQudG9rZW49XHUzMDUzXHUzMDZFXHUzMEQ1XHUzMEE5XHUzMEZDXHUzMEUwXHUzMDZFXHU1MTg1XHU1QkI5XHUzMDRDXHU2QjYzXHUzMDU3XHUzMDRGXHUzMDZBXHUzMDQ0XHUzMDVGXHUzMDgxXHU5MDAxXHU0RkUxXHUzMDU5XHUzMDhCXHUzMDUzXHUzMDY4XHUzMDRDXHU1MUZBXHU2NzY1XHUzMDdFXHUzMDVCXHUzMDkzCitlcnJvci50eXBlLmludmFsaWQ9XHUzMEI1XHUzMEZDXHUzMEQwXHUzMEJGXHUzMEE0XHUzMEQ3XHUzMDZGICdpbWFwJyBcdTMwNEIgJ3BvcDMnXHUzMDZFXHUzMDY5XHUzMDYxXHUzMDg5XHUzMDRCXHUzMDY3XHUzMDZBXHUzMDUxXHUzMDhDXHUzMDcwXHUzMDZBXHUzMDhBXHUzMDdFXHUzMDVCXHUzMDkzCitlcnJvci50eXBlLnJlcXVpcmVkPVx1MzBCNVx1MzBGQ1x1MzBEMFx1MzBCRlx1MzBBNFx1MzBEN1x1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorZXJyb3IudXNlcm5hbWUucmVxdWlyZWQ9XHUzMEU2XHUzMEZDXHUzMEI2XHU1NDBEXHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvci51c2VybmFtZS51bmlxdWU9XHUzMDVEXHUzMDZFXHUzMEU2XHUzMEZDXHUzMEI2XHU1NDBEXHUzMDZGXHU2NUUyXHUzMDZCXHU0RjdGXHU3NTI4XHUzMDU1XHUzMDhDXHUzMDY2XHUzMDQ0XHUzMDdFXHUzMDU5XHUzMDAyIFx1NTIyNVx1MzA2RVx1MzBFNlx1MzBGQ1x1MzBCNlx1NTQwRFx1MzA5Mlx1OTA3OFx1NjI5RVx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorZXJyb3JzLmZvb3Rlcj08L3VsPjxocj4KK2Vycm9ycy5oZWFkZXI9PGgzPjxmb250IGNvbG9yPSJyZWQiPlx1NTE2NVx1NTI5Ylx1MzBjMVx1MzBhN1x1MzBjM1x1MzBhZlx1MzBhOFx1MzBlOVx1MzBmYzwvZm9udD48L2gzPjxwPlx1NGVlNVx1NGUwYlx1MzA2ZVx1MzBhOFx1MzBlOVx1MzBmY1x1MzA5Mlx1NzhiYVx1OGE4ZFx1MzA1N1x1MzA2Nlx1MzA0Zlx1MzA2MFx1MzA1NVx1MzA0NDo8L3A+PHVsPgorZXJyb3JzLnByZWZpeD08bGk+CitlcnJvcnMuc3VmZml4PTwvbGk+CitlcnJvcnMuaW9FeGNlcHRpb249SS9PXHU0ZjhiXHU1OTE2XHUzMDRjXHU3NjdhXHU3NTFmXHUzMDU3XHUzMDdlXHUzMDU3XHUzMDVmOiB7MH0KK2V4cGlyZWQucGFzc3dvcmQ9XHUzMEU2XHUzMEZDXHUzMEI2IHswfSBcdTMwNkVcdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNkVcdTY3MDlcdTUyQjlcdTY3MUZcdTk2NTBcdTMwNENcdTkwNEVcdTMwNEVcdTMwN0VcdTMwNTdcdTMwNUYKK2hlYWRpbmcuYXV0b0Nvbm5lY3Q9XHU4MWVhXHU1MmQ1XHU2M2E1XHU3ZDlhCitoZWFkaW5nLnN1YnNjcmlwdGlvbnM9XHU3M2ZlXHU1NzI4XHUzMDZlXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxCitoZWFkaW5nLmhvc3Q9XHUzMGRiXHUzMGI5XHUzMGM4XHU1NDBkCitoZWFkaW5nLnVzZXI9XHUzMGU2XHUzMGZjXHUzMGI2XHU1NDBkCitoZWFkaW5nLnR5cGU9XHUzMGI1XHUzMGZjXHUzMGQwXHUzMGJmXHUzMGE0XHUzMGQ3CitoZWFkaW5nLmFjdGlvbj1cdTY0Y2RcdTRmNWMKK2luZGV4LmhlYWRpbmc9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyBcdTMwYWFcdTMwZDdcdTMwYjdcdTMwZTdcdTMwZjMKK2luZGV4LmxvZ2luPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZWRcdTMwYjBcdTMwYWFcdTMwZjMKK2luZGV4LnJlZ2lzdHJhdGlvbj1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGU2XHUzMGZjXHUzMGI2XHU3NjdiXHU5MzMyCitpbmRleC50aXRsZT1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzKFN0cnV0cyAxLjEtZGV2KQoraW5kZXgudG91cj1cdTMwYjVcdTMwZjNcdTMwZDdcdTMwZWJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjNcdTMwOTJcdTY1NjNcdTdiNTZcdTMwNTlcdTMwOGIKK2xpbmtTdWJzY3JpcHRpb24uaW89SS9PXHUzMGE4XHUzMGU5XHUzMGZjOiB7MH0KK2xpbmtTdWJzY3JpcHRpb24ubm9TdWJzY3JpcHRpb249XHU1YzVlXHU2MDI3IHswfSBcdTMwNmJcdThjZmNcdThhYWRcdTYwYzVcdTU4MzFcdTMwNGNcdTViNThcdTU3MjhcdTMwNTdcdTMwN2VcdTMwNWJcdTMwOTMKK2xpbmtVc2VyLmlvPUkvT1x1MzBhOFx1MzBlOVx1MzBmYzogezB9CitsaW5rVXNlci5ub1VzZXI9XHU1YzVlXHU2MDI3IHswfSBcdTMwNmJcdTMwZTZcdTMwZmNcdTMwYjZcdTYwYzVcdTU4MzFcdTMwNGNcdTViNThcdTU3MjhcdTMwNTdcdTMwN2VcdTMwNWJcdTMwOTMKK2xvZ2luLnRpdGxlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZWRcdTMwYjBcdTMwYWFcdTMwZjMKK21lbnUuaGVhZGluZz1cdTMwZTFcdTMwYTRcdTMwZjNcdTMwZTFcdTMwY2JcdTMwZTVcdTMwZmMKK21lbnUubG9nb3V0PU1haWxSZWFkZXIgXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzXHUzMDZlXHUzMGVkXHUzMGIwXHUzMGFhXHUzMGQ1CittZW51LnJlZ2lzdHJhdGlvbj1cdTMwZDdcdTMwZWRcdTMwZDVcdTMwYTFcdTMwYTRcdTMwZWJcdTMwNmVcdTdkZThcdTk2YzYKK21lbnUudGl0bGU9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBlMVx1MzBhNFx1MzBmM1x1MzBlMVx1MzBjYlx1MzBlNVx1MzBmYworb3B0aW9uLmltYXA9SU1BUCBcdTMwZDdcdTMwZWRcdTMwYzhcdTMwYjNcdTMwZWIKK29wdGlvbi5wb3AzPVBPUDMgXHUzMGQ3XHUzMGVkXHUzMGM4XHUzMGIzXHUzMGViCisjIHByb21wdC4KK2F1dG9Db25uZWN0PVx1ODFlYVx1NTJkNVx1NjNhNVx1N2Q5YQorZnJvbUFkZHJlc3M9RnJvbVx1MzBhMlx1MzBjOVx1MzBlY1x1MzBiOQorZnVsbE5hbWU9XHUzMGQ1XHUzMGViXHUzMGNkXHUzMGZjXHUzMGUwCittYWlsSG9zdG5hbWU9XHUzMGUxXHUzMGZjXHUzMGViXHUzMGI1XHUzMGZjXHUzMGQwCittYWlsUGFzc3dvcmQ9XHUzMGUxXHUzMGZjXHUzMGViXHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5CittYWlsU2VydmVyVHlwZT1cdTMwYjVcdTMwZmNcdTMwZDBcdTMwYmZcdTMwYTRcdTMwZDcKK21haWxVc2VybmFtZT1cdTMwZTFcdTMwZmNcdTMwZWJcdTMwZTZcdTMwZmNcdTMwYjZcdTU0MGQKKy5wYXNzd29yZD1cdTMwZDFcdTMwYjlcdTMwZWZcdTMwZmNcdTMwYzkKK3Bhc3N3b3JkMj1cdTMwZDFcdTMwYjlcdTMwZWZcdTMwZmNcdTMwYzkoXHU3OGJhXHU4YThkXHU3NTI4KQorcmVwbHlUb0FkZHJlc3M9XHU4ZmQ0XHU0ZmUxXHUzMGEyXHUzMGM5XHUzMGVjXHUzMGI5Cit1c2VybmFtZT1cdTMwZTZcdTMwZmNcdTMwYjZcdTU0MGQKK3JlZ2lzdHJhdGlvbi5hZGRTdWJzY3JpcHRpb249XHU2NWIwXHU4OThmXHU0ZjVjXHU2MjEwCityZWdpc3RyYXRpb24uZGVsZXRlU3Vic2NyaXB0aW9uPVx1NTI0YVx1OTY2NAorcmVnaXN0cmF0aW9uLmVkaXRTdWJzY3JpcHRpb249XHU3ZGU4XHU5NmM2CityZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZTZcdTMwZmNcdTMwYjZcdTc2N2JcdTkzMzIKK3JlZ2lzdHJhdGlvbi50aXRsZS5lZGl0PU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZDdcdTMwZWRcdTMwZDVcdTMwYTFcdTMwYTRcdTMwZWJcdTdkZThcdTk2YzYKK3N1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGU9XHUzMGUxXHUzMGZjXHUzMGViXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxXHUzMDZlXHU2NWIwXHU4OThmXHU0ZjVjXHU2MjEwCitzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlPVx1MzBlMVx1MzBmY1x1MzBlYlx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMVx1MzA2ZVx1NTI0YVx1OTY2NAorc3Vic2NyaXB0aW9uLnRpdGxlLmVkaXQ9XHUzMGUxXHUzMGZjXHUzMGViXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxXHUzMDZlXHU3ZGU4XHU5NmM2CisKKyMgU3RhbmRhcmQgZXJyb3IgbWVzc2FnZXMgZm9yIHZhbGlkYXRvciBmcmFtZXdvcmsgY2hlY2tzCitlcnJvcnMucmVxdWlyZWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA5Mlx1NTE2NVx1NTI5Ylx1MzA1N1x1MzA2Nlx1MzA0Zlx1MzA2MFx1MzA1NVx1MzA0NFx1MzAwMgorZXJyb3JzLm1pbmxlbmd0aD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmIHsxfSBcdTY1ODdcdTViNTdcdTRlZTVcdTRlMGFcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5tYXhsZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZiB7Mn0gXHU2NTg3XHU1YjU3XHU0ZWU1XHU0ZTBiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuaW52YWxpZD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmXHU2YjYzXHUzMDU3XHUzMDRmXHUzMDQyXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuYnl0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmYnl0ZVx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLnNob3J0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZzaG9ydFx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmludGVnZXI9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZmludGVnZXJcdTU3OGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5sb25nPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZsb25nXHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuZmxvYXQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZmZsb2F0XHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuZG91YmxlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZkb3VibGVcdTU3OGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5kYXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZcdTY1ZTVcdTRlZDhcdTMwNjdcdTMwNmZcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5yYW5nZT0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmIHsxfSBcdTMwNGJcdTMwODkgezJ9IFx1MzA2ZVx1OTU5M1x1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmNyZWRpdGNhcmQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2Zlx1NmI2M1x1MzA1N1x1MzA0NFx1MzBhZlx1MzBlY1x1MzBiOFx1MzBjM1x1MzBjOFx1MzBhYlx1MzBmY1x1MzBjOVx1NzU2YVx1NTNmN1x1MzA2N1x1MzA2Zlx1MzA0Mlx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmVtYWlsPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZcdTZiNjNcdTMwNTdcdTMwNDRcdTMwZTFcdTMwZmNcdTMwZWJcdTMwYTJcdTMwYzlcdTMwZWNcdTMwYjlcdTMwNjdcdTMwNmZcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvamF2YS9yZXNvdXJjZXNfcnUucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvamF2YS9yZXNvdXJjZXNfcnUucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmYxYWMzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL3Jlc291cmNlc19ydS5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsODkgQEAKK2J1dHRvbi5jYW5jZWw9XHUwNDFlXHUwNDQyXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDQyXHUwNDRjCitidXR0b24uY29uZmlybT1cdTA0MWZcdTA0M2VcdTA0MzRcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzRcdTA0MzhcdTA0NDJcdTA0NGMKK2J1dHRvbi5yZXNldD1cdTA0MjFcdTA0MzFcdTA0NDBcdTA0M2VcdTA0NDFcdTA0MzhcdTA0NDJcdTA0NGMKK2J1dHRvbi5zYXZlPVx1MDQyMVx1MDQzZVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YworY2hhbmdlLm1lc3NhZ2U9WW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZC4gIFBsZWFzZSBhc2sgdGhlIHN5c3RlbSBhZG1pbmlzdHJhdG9yIHRvIGNoYW5nZSBpdC4KK2NoYW5nZS50cnk9VHJ5IEFnYWluCitjaGFuZ2UudGl0bGU9UGFzc3dvcmQgSGFzIEV4cGlyZWQKK2RhdGFiYXNlLmxvYWQ9XHUwNDExXHUwNDMwXHUwNDM3XHUwNDMwIFx1MDQzNFx1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2RcdTA0MzUgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0MzdcdTA0MzBcdTA0MzNcdTA0NDBcdTA0NDNcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzAgXHUwNDM4XHUwNDM3IHswfQorZXJyb3IuZGF0YWJhc2UubWlzc2luZz1cdTA0MWRcdTA0MzUgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNlIFx1MDQzOFx1MDQzY1x1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYgLSBcdTA0M2RcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzdcdTA0M2NcdTA0M2VcdTA0MzZcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzMFx1MDQ0M1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzYVx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZS4KK2Vycm9yLmZyb21BZGRyZXNzLmZvcm1hdD1cdTA0MTIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDM1ICdcdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyOicgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkIFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MzIgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDNlXHUwNDNjIFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzNS4KK2Vycm9yLmZyb21BZGRyZXNzLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgJ1x1MDQxMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MWVcdTA0NDI6Jy4KK2Vycm9yLmZ1bGxOYW1lLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzOFx1MDQzY1x1MDQ0Zi4KK2Vycm9yLmhvc3QucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0NGJcdTA0MzkgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwLgorZXJyb3Iubm9TdWJzY3JpcHRpb249XHUwNDFmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzBcdTA0MzlcdTA0MzRcdTA0MzVcdTA0M2RcdTA0MzAgXHUwNDMyIFx1MDQ0MVx1MDQzNVx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYKK2Vycm9yLnBhc3N3b3JkLmV4cGlyZWQ9WW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZCBmb3IgdXNlcm5hbWUgezB9CitlcnJvci5wYXNzd29yZC5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0Yy4KK2Vycm9yLnBhc3N3b3JkMi5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzNFx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGYuCitlcnJvci5wYXNzd29yZC5tYXRjaD1cdTA0MWZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGMgXHUwNDM4IFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzNFx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGYgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzZVx1MDQzMlx1MDQzZlx1MDQzMFx1MDQzNFx1MDQzMFx1MDQ0ZVx1MDQ0Mi4KK2Vycm9yLnBhc3N3b3JkLm1pc21hdGNoPVx1MDQxZFx1MDQzNVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0MzhcdTA0M2NcdTA0NGYgXHUwNDM4L1x1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGMgLSBcdTA0M2ZcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzFcdTA0NDNcdTA0MzlcdTA0NDJcdTA0MzUsIFx1MDQzZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQxXHUwNDNkXHUwNDNlXHUwNDMyXHUwNDMwLgorZXJyb3IucmVwbHlUb0FkZHJlc3MuZm9ybWF0PVx1MDQxMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgJ1x1MDQxMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MWVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDNkXHUwNDMwOicgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkIFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MzIgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDNlXHUwNDNjIFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzNS4KK3N0cnV0cy5tZXNzYWdlcy5pbnZhbGlkLnRva2VuPVx1MDQyZFx1MDQ0Mlx1MDQzMCBcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzAgXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDMwXHUwNDNkXHUwNDMwIC0gXHUwNDNkXHUwNDMwXHUwNDQwXHUwNDQzXHUwNDQ4XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0MFx1MDQ0Zlx1MDQzNFx1MDQzYVx1MDQzMCBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDQ1LgorZXJyb3IudHlwZS5pbnZhbGlkPVx1MDQxMiBcdTA0M2FcdTA0MzBcdTA0NDdcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzUgXHUwNDQyXHUwNDM4XHUwNDNmXHUwNDMwIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMCBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQ0YiBcdTA0M2JcdTA0MzhcdTA0NDhcdTA0NGMgJ2ltYXAnIFx1MDQzOFx1MDQzYlx1MDQzOCAncG9wMycKK2Vycm9yLnR5cGUucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0NDJcdTA0MzhcdTA0M2YgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwCitlcnJvci51c2VybmFtZS5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzOFx1MDQzY1x1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYKK2Vycm9yLnVzZXJuYW1lLnVuaXF1ZT1cdTA0MjNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDM4XHUwNDNjXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0ZiBcdTA0NDNcdTA0MzZcdTA0MzUgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIC0gXHUwNDMyXHUwNDRiXHUwNDMxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQyXHUwNDM1LCBcdTA0M2ZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzZVx1MDQzNSBcdTA0MzhcdTA0M2NcdTA0NGYuCitlcnJvcnMuZm9vdGVyPTwvdWw+PGhyPgorZXJyb3JzLmhlYWRlcj08aDM+PGZvbnQgY29sb3I9InJlZCI+XHUwNDFlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDM4IFx1MDQzZlx1MDQ0MFx1MDQzOCBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzggXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDQ1PC9mb250PjwvaDM+PHA+XHUwNDEyXHUwNDRiIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzZFx1MDQzOFx1MDQzNlx1MDQzNSBcdTA0M2VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0Mzg6PC9wPjx1bD4KK2Vycm9ycy5wcmVmaXg9PGxpPgorZXJyb3JzLnN1ZmZpeD08L2xpPgorZXJyb3JzLmlvRXhjZXB0aW9uPVx1MDQxZVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzYVx1MDQzMCBcdTA0MzJcdTA0MzJcdTA0M2VcdTA0MzRcdTA0MzAvXHUwNDMyXHUwNDRiXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwIFx1MDQzZlx1MDQ0MFx1MDQzOCBcdTA0NDFcdTA0M2VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0M2RcdTA0MzhcdTA0MzggXHUwNDQxXHUwNDNlXHUwNDNlXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM5IFx1MDQzZVx1MDQzMSBcdTA0M2VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzBcdTA0NDU6IHswfQorZXhwaXJlZC5wYXNzd29yZD1Vc2VyIFBhc3N3b3JkIGhhcyBleHBpcmVkIGZvciB7MH0KK2hlYWRpbmcuYXV0b0Nvbm5lY3Q9XHUwNDEwXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDNjXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNhXHUwNDM4CitoZWFkaW5nLnN1YnNjcmlwdGlvbnM9XHUwNDE3XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQzOAoraGVhZGluZy5ob3N0PVx1MDQyMVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MAoraGVhZGluZy51c2VyPVx1MDQxOFx1MDQzY1x1MDQ0ZgoraGVhZGluZy50eXBlPVx1MDQyMlx1MDQzOFx1MDQzZiBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzAKK2hlYWRpbmcuYWN0aW9uPVx1MDQxNFx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzOFx1MDQzNQoraW5kZXguaGVhZGluZz1cdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1ICdcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDRiJworaW5kZXgubG9naW49XHUwNDEyXHUwNDNlXHUwNDM5XHUwNDQyXHUwNDM4IFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0MzdcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjCitpbmRleC5yZWdpc3RyYXRpb249XHUwNDE3XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRjXHUwNDQxXHUwNDRmCitpbmRleC50aXRsZT1cdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1ICdcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDRiJyAoU3RydXRzIDEuMS1kZXYpCitpbmRleC50b3VyPVx1MDQxZVx1MDQzMVx1MDQzN1x1MDQzZVx1MDQ0MCBcdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRmICdcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDRiJworbGlua1N1YnNjcmlwdGlvbi5pbz1cdTA0MWVcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzAgXHUwNDMyXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwL1x1MDQzMlx1MDQ0Ylx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMCAoXHUwNDM0XHUwNDNiXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQzOCk6IHswfQorbGlua1N1YnNjcmlwdGlvbi5ub1N1YnNjcmlwdGlvbj1cdTA0MTBcdTA0NDJcdTA0NDBcdTA0MzhcdTA0MzFcdTA0NDNcdTA0NDIgezB9IFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzhcdTA0NDIgXHUwNDM4XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZSBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0M2ZcdTA0MzhcdTA0NDFcdTA0M2FcdTA0MzUgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0NDNcdTA0NDlcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0MzVcdTA0NDIuCitsaW5rVXNlci5pbz1cdTA0MWVcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzAgXHUwNDMyXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwL1x1MDQzMlx1MDQ0Ylx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMCAoXHUwNDM0XHUwNDNiXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Zik6IHswfQorbGlua1VzZXIubm9Vc2VyPVx1MDQxMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0MiB7MH0gXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzZVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzOFx1MDQ0MiBcdTA0MzhcdTA0M2RcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNlIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQzNSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0M1x1MDQ0OVx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQ0M1x1MDQzNVx1MDQ0Mi4KK2xvZ2luLnRpdGxlPVx1MDQxNFx1MDQzNVx1MDQzY1x1MDQzZVx1MDQzZFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzZVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDI3XHUwNDQyXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQ0YiAtIFx1MDQxZlx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzYVx1MDQzMCBcdTA0MzhcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzggXHUwNDM4IFx1MDQzZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0Zi4KK21lbnUuaGVhZGluZz1cdTA0MWRcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M2VcdTA0MzlcdTA0M2FcdTA0MzggXHUwNDMzXHUwNDNiXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0ZSBcdTA0MzRcdTA0M2JcdTA0NGYKK21lbnUubG9nb3V0PVx1MDQxMlx1MDQ0Ylx1MDQzOVx1MDQ0Mlx1MDQzOAorbWVudS5yZWdpc3RyYXRpb249XHUwNDE4XHUwNDM3XHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQzMlx1MDQzZVx1MDQzOCBcdTA0M2RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M2VcdTA0MzlcdTA0M2FcdTA0MzgKK21haW5NZW51LnRpdGxlPVx1MDQxNFx1MDQzNVx1MDQzY1x1MDQzZVx1MDQzZFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzZVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgJ1x1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0NGInIC0gXHUwNDFlXHUwNDQxXHUwNDNkXHUwNDNlXHUwNDMyXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0ZQorb3B0aW9uLmltYXA9XHUwNDFmXHUwNDQwXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDNhXHUwNDNlXHUwNDNiIElNQVAKK29wdGlvbi5wb3AzPVx1MDQxZlx1MDQ0MFx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQzYVx1MDQzZVx1MDQzYiBQT1AzCisjIHByb21wdC4KK2F1dG9Db25uZWN0PVx1MDQxMFx1MDQzMlx1MDQ0Mlx1MDQzZVx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQzNSBcdTA0NDFcdTA0M2VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzU6Citmcm9tQWRkcmVzcz1cdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyOgorZnVsbE5hbWU9XHUwNDFmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzOFx1MDQzY1x1MDQ0ZjoKK21haWxIb3N0bmFtZT1cdTA0MWZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0NGJcdTA0MzkgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwOgorbWFpbFBhc3N3b3JkPVx1MDQxZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0YyBcdTA0MzRcdTA0M2JcdTA0NGYgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMDoKK21haWxTZXJ2ZXJUeXBlPVx1MDQyMlx1MDQzOFx1MDQzZiBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzA6CittYWlsVXNlcm5hbWU9XHUwNDE4XHUwNDNjXHUwNDRmIFx1MDQzNFx1MDQzYlx1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwOgorcGFzc3dvcmQ9XHUwNDFmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRjOgorcGFzc3dvcmQyPShcdTA0MWZcdTA0M2VcdTA0MzRcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUpIFx1MDQxZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0YzoKK3JlcGx5VG9BZGRyZXNzPVx1MDQxMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MWVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDNkXHUwNDMwOgordXNlcm5hbWU9XHUwNDE4XHUwNDNjXHUwNDRmOgorcmVnaXN0cmF0aW9uLmFkZFN1YnNjcmlwdGlvbj1cdTA0MTRcdTA0M2VcdTA0MzFcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMKK3JlZ2lzdHJhdGlvbi5kZWxldGVTdWJzY3JpcHRpb249XHUwNDIzXHUwNDM0XHUwNDMwXHUwNDNiXHUwNDM4XHUwNDQyXHUwNDRjCityZWdpc3RyYXRpb24uZWRpdFN1YnNjcmlwdGlvbj1cdTA0MjBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2FcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGMKK3JlZ2lzdHJhdGlvbi50aXRsZS5jcmVhdGU9XHUwNDE3XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRjXHUwNDQxXHUwNDRmCityZWdpc3RyYXRpb24udGl0bGUuZWRpdD1cdTA0MThcdTA0MzdcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzZSBcdTA0NDFcdTA0MzJcdTA0M2VcdTA0MzVcdTA0MzkgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4CitzdWJzY3JpcHRpb24udGl0bGUuY3JlYXRlPVx1MDQyMVx1MDQzZVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2RcdTA0M2VcdTA0MzJcdTA0NDNcdTA0NGUgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDQzCitzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlPVx1MDQyM1x1MDQzNFx1MDQzMFx1MDQzYlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDNcdTA0NDlcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0NGVcdTA0NDlcdTA0NDNcdTA0NGUgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDQzCitzdWJzY3JpcHRpb24udGl0bGUuZWRpdD1cdTA0MjBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2FcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDQzXHUwNDRlIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQ0MworCisjIFN0YW5kYXJkIGVycm9yIG1lc3NhZ2VzIGZvciB2YWxpZGF0b3IgZnJhbWV3b3JrIGNoZWNrcworZXJyb3JzLnJlcXVpcmVkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyByZXF1aXJlZC4KK2Vycm9ycy5taW5sZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGNhbm5vdCBiZSBsZXNzIHRoYW4gezF9IGNoYXJhY3RlcnMuCitlcnJvcnMubWF4bGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHsyfSBjaGFyYWN0ZXJzLgorZXJyb3JzLmludmFsaWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGludmFsaWQuCitlcnJvcnMuYnl0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBieXRlLgorZXJyb3JzLnNob3J0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIHNob3J0LgorZXJyb3JzLmludGVnZXI9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gaW50ZWdlci4KK2Vycm9ycy5sb25nPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGxvbmcuCitlcnJvcnMuZmxvYXQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gZmxvYXQuCitlcnJvcnMuZG91YmxlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGRvdWJsZS4KK2Vycm9ycy5kYXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSBkYXRlLgorZXJyb3JzLnJhbmdlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgaW4gdGhlIHJhbmdlIHsxfSB0aHJvdWdoIHsyfS4KK2Vycm9ycy5jcmVkaXRjYXJkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuCitlcnJvcnMuZW1haWw9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGFuIGludmFsaWQgZS1tYWlsIGFkZHJlc3MuCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvc3RydXRzLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL2phdmEvc3RydXRzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVjODEzNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvamF2YS9zdHJ1dHMucHJvcGVydGllcwpAQCAtMCwwICsxIEBACitzdHJ1dHMuY3VzdG9tLmkxOG4ucmVzb3VyY2VzPXJlc291cmNlcw0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvamF2YS9zdHJ1dHMueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy9qYXZhL3N0cnV0cy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzllYzAxNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvamF2YS9zdHJ1dHMueG1sCkBAIC0wLDAgKzEsNjYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/PgorPCFET0NUWVBFIHN0cnV0cyBQVUJMSUMKKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMi4wLy9FTiIKKyAgICAgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy0yLjAuZHRkIj4KKworPHN0cnV0cz4KKyAgICA8Y29uc3RhbnQgbmFtZT0ic3RydXRzLmRldk1vZGUiIHZhbHVlPSJ0cnVlIi8+CisgICAgPGNvbnN0YW50IG5hbWU9InN0cnV0cy5lbmFibGUuRHluYW1pY01ldGhvZEludm9jYXRpb24iIHZhbHVlPSJmYWxzZSIvPgorCisgICAgPHBhY2thZ2UgbmFtZT0iZGVmYXVsdCIgZXh0ZW5kcz0ic3RydXRzLWRlZmF1bHQiPgorCisgICAgICAgIDxkZWZhdWx0LWFjdGlvbi1yZWYgbmFtZT0iTWlzc2luZyIvPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iSGVsbG8iIGNsYXNzPSJIZWxsbyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9IZWxsby5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJNaXNzaW5nIj4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL01pc3NpbmcuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iV2VsY29tZSI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9XZWxjb21lLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlJlZ2lzdGVyIiBjbGFzcz0iUmVnaXN0ZXIiIG1ldGhvZD0iaW5wdXQiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL1JlZ2lzdGVyLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlJlZ2lzdGVyX2NhbmNlbCIgY2xhc3M9IlJlZ2lzdGVyIiBtZXRob2Q9ImNhbmNlbCI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImNhbmNlbCIgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5XZWxjb21lPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iUmVnaXN0ZXJfY3JlYXRlIiBjbGFzcz0iUmVnaXN0ZXJDcmVhdGUiIG1ldGhvZD0ic2F2ZSI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvUmVnaXN0ZXIuanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+TWVudTwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlJlZ2lzdGVyX3NhdmUiIGNsYXNzPSJSZWdpc3RlciIgbWV0aG9kPSJzYXZlIj4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9SZWdpc3Rlci5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5NZW51PC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTWVudSIgY2xhc3M9Ik1haWxSZWFkZXJTdXBwb3J0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL01lbnUuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTG9nb3V0IiBjbGFzcz0iTG9nb3V0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5XZWxjb21lPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTG9naW4iIGNsYXNzPSJMb2dpbiIgbWV0aG9kPSJpbnB1dCI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvTG9naW4uanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTG9naW5fY2FuY2VsIiBjbGFzcz0iTG9naW4iIG1ldGhvZD0iY2FuY2VsIj4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iY2FuY2VsIiB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPldlbGNvbWU8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJMb2dpbl9zYXZlIiBjbGFzcz0iTG9naW4iIG1ldGhvZD0ic2F2ZSI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvTG9naW4uanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+TWVudTwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgIDwvcGFja2FnZT4KKzwvc3RydXRzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy90ZXN0L0hlbGxvVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy90ZXN0L0hlbGxvVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwZGViZjUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3Rlc3QvSGVsbG9UZXN0LmphdmEKQEAgLTAsMCArMSwxNiBAQAoraW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKKworLyoqCisgKiBBbiBleGFtcGxlIHRleHQgY2xhc3MgdG8gdmVyaWZ5IHRoZSBjb25maWd1cmF0aW9uLgorICovCitwdWJsaWMgY2xhc3MgSGVsbG9UZXN0IGV4dGVuZHMgVGVzdENhc2UgeworCisgICAgLyoqCisgICAgICogQW4gZXhhbXBsZSB0ZXN0IHRoYXQgYXNzZXJ0cyB0cnVlLgorICAgICAqCisgICAgICogQHRocm93cyBFeGNlcHRpb24gT24gaW52YWxpZCBhc3NlcnRpb25zCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEhlbGxvQWN0aW9uKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGFzc2VydFRydWUodHJ1ZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy90ZXN0L1JlZ2lzdGVyVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy90ZXN0L1JlZ2lzdGVyVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmNWFhMjgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3Rlc3QvUmVnaXN0ZXJUZXN0LmphdmEKQEAgLTAsMCArMSwzNSBAQAoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKKworcHVibGljIGNsYXNzIFJlZ2lzdGVyVGVzdCBleHRlbmRzIFJldGFpblRlc3QgeworCisgICAgUmVnaXN0ZXIgYWN0aW9uID0gbnVsbDsKKworICAgIHB1YmxpYyB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyLnNldFVwKCk7CisgICAgICAgIGFjdGlvbiA9IG5ldyBSZWdpc3RlcigpOworICAgICAgICBhY3Rpb24uc2V0QXBwbGljYXRpb24obmV3IEhhc2hNYXAoKSk7CisgICAgICAgIGFjdGlvbi5zZXRTZXNzaW9uKG5ldyBIYXNoTWFwKCkpOworICAgICAgICBhY3Rpb24uc2V0RGF0YWJhc2UoZGF0YWJhc2UpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RFeGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgYWN0aW9uLnNldFVzZXJuYW1lKCJ1c2VyIik7CisgICAgICAgIGFjdGlvbi5zZXRQYXNzd29yZCgicGFzcyIpOworICAgICAgICBhY3Rpb24uc2V0RnVsbE5hbWUoIkpvaG4gUS4gVXNlciIpOworICAgICAgICBhY3Rpb24uc2V0RnJvbUFkZHJlc3MoIkpvaG4uVXNlckBzb21ld2hlcmUuY29tIik7CisKKyAgICAgICAgU3RyaW5nIHN1Y2Nlc3MgPSBhY3Rpb24uc2F2ZSgpOworICAgICAgICBhc3NlcnRUcnVlKCJFeHBlY3RlZCBTVUNDRVNTIiwgQWN0aW9uLlNVQ0NFU1MuZXF1YWxzKHN1Y2Nlc3MpKTsKKworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROb3ROdWxsKCJFeHBlY3RlZCB1c2VyIiwgdXNlcik7CisKKyAgICAgICAgU3RyaW5nIGlucHV0ID0gYWN0aW9uLnNhdmUoKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiRXhwZWN0ZWQgSU5QVVQiLCBBY3Rpb24uSU5QVVQuZXF1YWxzKGlucHV0KSk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3Rlc3QvUmV0YWluVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy90ZXN0L1JldGFpblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjY2ZjczCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy90ZXN0L1JldGFpblRlc3QuamF2YQpAQCAtMCwwICsxLDk3IEBACitpbXBvcnQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uU3Vic2NyaXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXJEYXRhYmFzZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLmltcGwubWVtb3J5Lk1lbW9yeVVzZXJEYXRhYmFzZTsKKworcHVibGljIGNsYXNzIFJldGFpblRlc3QgZXh0ZW5kcyBUZXN0Q2FzZSB7CisKKyAgICBwcm90ZWN0ZWQgVXNlckRhdGFiYXNlIGRhdGFiYXNlOworICAgIHByb3RlY3RlZCBTdHJpbmcgdGVzdE5hbWUgPSAidGVzdC1kYXRhYmFzZS54bWwiOworCisgICAgcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgc3VwZXIuc2V0VXAoKTsKKyAgICAgICAgTWVtb3J5VXNlckRhdGFiYXNlIG1lbW9yeVVzZXJEYXRhYmFzZSA9IG5ldyBNZW1vcnlVc2VyRGF0YWJhc2UoKTsKKyAgICAgICAgbWVtb3J5VXNlckRhdGFiYXNlLnNldFBhdGhuYW1lKHRlc3ROYW1lKTsKKyAgICAgICAgZGF0YWJhc2UgPSBtZW1vcnlVc2VyRGF0YWJhc2U7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdERhdGFiYXNlQ2xlYW4oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuZmluZFVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0TnVsbCgiRXhwZWN0ZWQgdXNlciB0byBiZSBtaXNzaW5nIiwgdXNlcik7CisgICAgfQorCisgICAgLy8gIEFkZCB5b3VyIHRlc3QgbWV0aG9kcyBoZXJlLgorICAgIC8vICBUaGUgc2V0VXAgbWV0aG9kIHdpbGwgcnVuIGJldHdlZW4gZWFjaCB0ZXN0LgorCisgICAgcHVibGljIHZvaWQgdGVzdENyZWF0ZVVzZXIoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROb3ROdWxsKHVzZXIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kVXNlcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIxID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICBVc2VyIHVzZXIyID0gZGF0YWJhc2UuZmluZFVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0U2FtZSgiRXhwZWN0ZWQgdXNlcnMgdG8gbWF0Y2giLCB1c2VyMSwgdXNlcjIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RDcmVhdGVTdWJzY3JpcHRpb24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YiA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKS5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwueWFob28uY29tIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoIkV4cGVjdGVkIHN1YnNjcmlwdGlvbiB0byBiZSBjcmVhdGVkIiwgc3ViKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RmluZFN1YnNjcmlwdGlvbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMSA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKS5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwueWFob28uY29tIik7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIyID0gZGF0YWJhc2UuZmluZFVzZXIoInVzZXIiKS5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLnlhaG9vLmNvbSIpOworICAgICAgICBhc3NlcnRTYW1lKCJFeHBlY3RlZCBTdWJzY3JpcHRpb25zIHRvIG1hdGNoIiwgc3ViMSwgc3ViMik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdERhdGFic2FlU2F2ZSgpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsKKyAgICAgICAgdXNlci5zZXRQYXNzd29yZCgicGFzcyIpOworICAgICAgICB1c2VyLnNldEZ1bGxOYW1lKCJKb2huIFEuIFVzZXIiKTsKKyAgICAgICAgdXNlci5zZXRGcm9tQWRkcmVzcygiSm9obi5Vc2VyQHNvbWV3aGVyZS5jb20iKTsKKworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMSA9IHVzZXIuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLmhvdG1haWwuY29tIik7CisgICAgICAgIHN1YjEuc2V0VXNlcm5hbWUoInVzZXIxMjM0Iik7CisgICAgICAgIHN1YjEuc2V0QXV0b0Nvbm5lY3QoZmFsc2UpOworICAgICAgICBzdWIxLnNldFR5cGUoInBvcDMiKTsKKyAgICAgICAgc3ViMS5zZXRQYXNzd29yZCgiYmFyIik7CisKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjIgPSB1c2VyLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsKKyAgICAgICAgc3ViMi5zZXRVc2VybmFtZSgianF1c2VyIik7CisgICAgICAgIHN1YjIuc2V0QXV0b0Nvbm5lY3QoZmFsc2UpOworICAgICAgICBzdWIyLnNldFR5cGUoImltYXAiKTsKKyAgICAgICAgc3ViMi5zZXRQYXNzd29yZCgiZm9vIik7CisKKyAgICAgICAgZGF0YWJhc2Uuc2F2ZSgpOworCisgICAgfQorCisgICAgLy8gRXh0cmEgY3JlZGl0CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RmluZGVyVXNlckJvZ3VzKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVzZXIgdXNlcjEgPSBkYXRhYmFzZS5maW5kVXNlcigiYm9ndXMiKTsKKyAgICAgICAgYXNzZXJ0TnVsbCgiRXhwZWN0ZWQgYm9ndXMgdXNlciB0byBiZSBub3QgZm91bmQiLCB1c2VyMSk7CisgICAgICAgIFVzZXIgdXNlcjIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoIkV4cGVjdGVkIHVzZXIgdG8gYmUgY3JlYXRlZCIsIHVzZXIyKTsKKyAgICAgICAgdXNlcjEgPSBkYXRhYmFzZS5maW5kVXNlcigiYm9ndXMiKTsKKyAgICAgICAgYXNzZXJ0TnVsbCgiRXhwZWN0ZWQgYm9ndXMgdXNlciB0byBiZSBub3QgZm91bmQiLCB1c2VyMSk7CisgICAgICAgIHVzZXIxID0gZGF0YWJhc2UuZmluZFVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRXhwZWN0ZWQgdXNlciB0byBiZSBmb3VuZCIsIHVzZXIxKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RmluZFN1YkJvZ3VzKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YiA9IHVzZXIuZmluZFN1YnNjcmlwdGlvbigibWFpbC5ib2d1cy5jb20iKTsKKyAgICAgICAgYXNzZXJ0TnVsbChzdWIpOworICAgICAgICBzdWIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC5ob3RtYWlsLmNvbSIpOworICAgICAgICBhc3NlcnROb3ROdWxsKHN1Yik7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIyID0gdXNlci5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLmJvZ3VzLmNvbSIpOworICAgICAgICBhc3NlcnROdWxsKHN1YjIpOworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMyA9IHVzZXIuZmluZFN1YnNjcmlwdGlvbigibWFpbC5ob3RtYWlsLmNvbSIpOworICAgICAgICBhc3NlcnRTYW1lKHN1Yiwgc3ViMyk7CisgICAgfQorCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9XZWJUZXN0LmR0ZCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvV2ViVGVzdC5kdGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGY4YTM0NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvV2ViVGVzdC5kdGQKQEAgLTAsMCArMSw0Njk3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4KKzwhRU5USVRZICUgYm9vbGVhbiAiKHRydWV8ZmFsc2V8b258b2ZmfHllc3xubykiPgorPCFFTlRJVFkgJSB0YXNrcyAicHJvcGVydHlmaWxlIHwgY2Nta2RpciB8IGltcG9ydHR5cGVsaWIgfCB2c3NjaGVja2luIHwgc3FsIHwgY3ZzcGFzcyB8IGNzYyB8IGRpcm5hbWUgfCByZXBsYWNlcmVnZXhwIHwgZ2V0IHwgamp0cmVlIHwgc2xlZXAgfCBqYXJsaWItZGlzcGxheSB8IGxlbmd0aCB8IGRlcGVuZHNldCB8IHppcCB8IHBhdGNoIHwganNwYyB8IHN0eWxlIHwgbmljZSB8IHRlc3QgfCB0c3RhbXAgfCB1bndhciB8IHZzc2hpc3RvcnkgfCBjdnNjaGFuZ2Vsb2cgfCBjY21jaGVja2luIHwgYnppcDIgfCBzeW5jIHwgdnNzYWRkIHwgamF2YWRvYyB8IHRyYW5zbGF0ZSB8IHNpZ25qYXIgfCBjY2xvY2sgfCBjaG93biB8IGphcmxpYi1hdmFpbGFibGUgfCBXc2RsVG9Eb3RuZXQgfCBidWlsZG51bWJlciB8IGpwY292bWVyZ2UgfCBjdnN2ZXJzaW9uIHwgZWpiamFyIHwgd2FyIHwgcmVuYW1lIHwgc2VxdWVudGlhbCB8IHNlcnZlcmRlcGxveSB8IHByb3BlcnR5IHwgc3ViYW50IHwgbW92ZSB8IGlsZGFzbSB8IGNvcHlkaXIgfCBjY2NoZWNraW4gfCBjY3VubG9jayB8IHdsanNwYyB8IGZpeGNybGYgfCBzb3NnZXQgfCBwYXRoY29udmVydCB8IHJlY29yZCB8IGV4ZWMgfCBjY21rbGFiZWwgfCBtYW5pZmVzdCB8IGpwY292cmVwb3J0IHwgZXhlY29uIHwgY2NtY2hlY2tvdXQgfCBhbnQgfCB4bWx2YWxpZGF0ZSB8IHhzbHQgfCBpcGxhbmV0LWVqYmMgfCBjY21jaGVja2ludGFzayB8IGd6aXAgfCBuYXRpdmUyYXNjaWkgfCBjY3JtdHlwZSB8IGVhciB8IGlucHV0IHwgcHJlc2V0ZGVmIHwgcm1pYyB8IGNoZWNrc3VtIHwgbWFpbCB8IGxvYWRmaWxlIHwgdnNzY2hlY2tvdXQgfCBzb3NjaGVja2luIHwgbWltZW1haWwgfCBndW56aXAgfCBjb25jYXQgfCBjYWIgfCB0b3VjaCB8IHBhcmFsbGVsIHwgYW50Y2FsbCB8IGNjbWtibCB8IGNjY2hlY2tvdXQgfCB0eXBlZGVmIHwgZmlsdGVyIHwgeG1scHJvcGVydHkgfCBpbXBvcnQgfCBjb3B5IHwganNoYXJwYyB8IHN5bWxpbmsgfCBhbnRzdHJ1Y3R1cmUgfCBzY3JpcHQgfCBjY21jcmVhdGV0YXNrIHwgcnBtIHwgZGVsZXRlIHwgcmVwbGFjZSB8IG1tZXRyaWNzIHwgYXR0cmliIHwgd2FpdGZvciB8IHVudGFyIHwgbG9hZHByb3BlcnRpZXMgfCBhdmFpbGFibGUgfCBlY2hvcHJvcGVydGllcyB8IGp1bml0IHwgY2hncnAgfCBidW56aXAyIHwgd2hpY2hyZXNvdXJjZSB8IGNvcHlmaWxlIHwgdnNzY3JlYXRlIHwgbWFjcm9kZWYgfCB1bmphciB8IHZiYyB8IHdzZGx0b2RvdG5ldCB8IG1rZGlyIHwgY29uZGl0aW9uIHwgY3ZzIHwgdGVtcGZpbGUgfCBqdW5pdHJlcG9ydCB8IGNjbWthdHRyIHwgdGFza2RlZiB8IGVjaG8gfCBjY3VwZGF0ZSB8IGphdmEgfCByZW5hbWVleHQgfCB2c3NsYWJlbCB8IGJhc2VuYW1lIHwgamF2YWRvYzIgfCB2c3NjcCB8IHRhciB8IHNldHByb3h5IHwgaWxhc20gfCBzb3NjaGVja291dCB8IGFwcGx5IHwgY2N1bmNoZWNrb3V0IHwgamFybGliLXJlc29sdmUgfCBjdnN0YWdkaWZmIHwgamxpbmsgfCBqYXZhY2MgfCBjaG1vZCB8IHB2Y3MgfCBqYXJsaWItbWFuaWZlc3QgfCBqYXIgfCBjY21rbGJ0eXBlIHwgc2NyaXB0ZGVmIHwgZGVmYXVsdGV4Y2x1ZGVzIHwgbXBhcnNlIHwgYmxnZW5jbGllbnQgfCB1cHRvZGF0ZSB8IGpqZG9jIHwgZ2Vua2V5IHwgamF2YWggfCBjY21rZWxlbSB8IGNjbXJlY29uZmlndXJlIHwgZmFpbCB8IHVuemlwIHwgamF2YWMgfCBqcGNvdmVyYWdlIHwgc29zbGFiZWwgfCBkZXBlbmQgfCB2c3NnZXQgfCBkZWx0cmVlIj4KKzwhRU5USVRZICUgdHlwZXMgInBhdHRlcm5zZXQgfCBhc3NlcnRpb25zIHwgcHJvcGVydHlzZXQgfCBmaWx0ZXJtYXBwZXIgfCBmaWx0ZXJzZXQgfCBsaWJmaWxlc2V0IHwgaXNmaWxlc2VsZWN0ZWQgfCBtZXJnZW1hcHBlciB8IGlkZW50aXR5bWFwcGVyIHwgZmlsdGVycmVhZGVyIHwgc2NyaXB0ZmlsdGVyIHwgdW5wYWNrYWdlbWFwcGVyIHwgY29uY2F0ZmlsdGVyIHwgZXh0ZW5zaW9uIHwgZmlsZXNldCB8IGRpcnNldCB8IGdsb2JtYXBwZXIgfCBmaWxlbGlzdCB8IGZpbHRlcmNoYWluIHwgcGF0aCB8IGNvbXBvc2l0ZW1hcHBlciB8IGNsYXNzZmlsZXNldCB8IHJlZ2V4cG1hcHBlciB8IHNlbGVjdG9yIHwgeG1sY2F0YWxvZyB8IGZsYXR0ZW5tYXBwZXIgfCBkZXNjcmlwdGlvbiB8IGNoYWluZWRtYXBwZXIgfCBwYWNrYWdlbWFwcGVyIHwgbWFwcGVyIHwgemlwZmlsZXNldCB8IHN1YnN0aXR1dGlvbiB8IGV4dGVuc2lvblNldCB8IHJlZGlyZWN0b3IgfCByZWdleHAiPgorCis8IUVMRU1FTlQgcHJvamVjdCAodGFyZ2V0IHwgJXRhc2tzOyB8ICV0eXBlczspKj4KKzwhQVRUTElTVCBwcm9qZWN0CisgICAgICAgICAgbmFtZSAgICBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFyZ2V0ICgldGFza3M7IHwgJXR5cGVzOykqPgorCis8IUFUVExJU1QgdGFyZ2V0CisgICAgICAgICAgaWQgICAgICAgICAgSUQgICAgI0lNUExJRUQKKyAgICAgICAgICBuYW1lICAgICAgICBDREFUQSAjUkVRVUlSRUQKKyAgICAgICAgICBpZiAgICAgICAgICBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyAgICAgIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVwZW5kcyAgICAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhdHRlcm5zZXQgKGluY2x1ZGUgfCBwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGV4Y2x1ZGVzZmlsZSB8IGluY2x1ZGVzZmlsZSkqPgorPCFBVFRMSVNUIHBhdHRlcm5zZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW5jbHVkZSBFTVBUWT4KKzwhQVRUTElTVCBpbmNsdWRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleGNsdWRlIEVNUFRZPgorPCFBVFRMSVNUIGV4Y2x1ZGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4Y2x1ZGVzZmlsZSBFTVBUWT4KKzwhQVRUTElTVCBleGNsdWRlc2ZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGluY2x1ZGVzZmlsZSBFTVBUWT4KKzwhQVRUTElTVCBpbmNsdWRlc2ZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFzc2VydGlvbnMgKGRpc2FibGUgfCBlbmFibGUpKj4KKzwhQVRUTElTVCBhc3NlcnRpb25zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5hYmxlc3lzdGVtYXNzZXJ0aW9ucyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkaXNhYmxlIEVNUFRZPgorPCFBVFRMSVNUIGRpc2FibGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVuYWJsZSBFTVBUWT4KKzwhQVRUTElTVCBlbmFibGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByb3BlcnR5c2V0IChwcm9wZXJ0eXJlZiB8IHByb3BlcnR5c2V0IHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgcHJvcGVydHlzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkeW5hbWljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5lZ2F0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcm9wZXJ0eXJlZiBFTVBUWT4KKzwhQVRUTElTVCBwcm9wZXJ0eXJlZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1aWx0aW4gKGFsbCB8IHN5c3RlbSB8IGNvbW1hbmRsaW5lKSAjSU1QTElFRAorICAgICAgICAgIHJlZ2V4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFwcGVyIChjbGFzc3BhdGggfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGlkZW50aXR5IHwgZmxhdHRlbiB8IGdsb2IgfCBtZXJnZSB8IHJlZ2V4cCB8IHBhY2thZ2UgfCB1bnBhY2thZ2UpICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNsYXNzcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgY2xhc3NwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3VzdG9tIChjbGFzc3BhdGggfCBwYXJhbSkqPgorPCFBVFRMSVNUIGN1c3RvbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGFyYW0gRU1QVFk+Cis8IUFUVExJU1QgcGFyYW0KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcmVzZW50IChtYXBwZXIpKj4KKzwhQVRUTElTVCBwcmVzZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZW50IChzcmNvbmx5IHwgYm90aCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBub25lIChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBub25lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBub3QgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIG5vdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHlwZSBFTVBUWT4KKzwhQVRUTElTVCB0eXBlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpcikgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1vZGlmaWVkIChwYXJhbSkqPgorPCFBVFRMSVNUIG1vZGlmaWVkCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjb21wYXJhdG9yIChlcXVhbCB8IHJ1bGUpICNJTVBMSUVECisgICAgICAgICAgc2VsZGlycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhbGdvcml0aG0gKGhhc2h2YWx1ZSB8IGRpZ2VzdCkgI0lNUExJRUQKKyAgICAgICAgICBjYWNoZSAocHJvcGVydHlmaWxlKSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVwZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBvciAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1Qgb3IKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbnRhaW5zIEVNUFRZPgorPCFBVFRMSVNUIGNvbnRhaW5zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZXdoaXRlc3BhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGV4dCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlcGVuZCAobWFwcGVyKSo+Cis8IUFUVExJU1QgZGVwZW5kCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRpZmZlcmVudCAobWFwcGVyKSo+Cis8IUFUVExJU1QgZGlmZmVyZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVjb250ZW50cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVmaWxldGltZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzaXplIEVNUFRZPgorPCFBVFRMSVNUIHNpemUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHdoZW4gKGxlc3MgfCBtb3JlIHwgZXF1YWwpICNJTVBMSUVECisgICAgICAgICAgdW5pdHMgKEsgfCBrIHwga2lsbyB8IEtJTE8gfCBLaSB8IEtJIHwga2kgfCBraWJpIHwgS0lCSSB8IE0gfCBtIHwgbWVnYSB8IE1FR0EgfCBNaSB8IE1JIHwgbWkgfCBtZWJpIHwgTUVCSSB8IEcgfCBnIHwgZ2lnYSB8IEdJR0EgfCBHaSB8IEdJIHwgZ2kgfCBnaWJpIHwgR0lCSSB8IFQgfCB0IHwgdGVyYSB8IFRFUkEgfCBUaSB8IFRJIHwgdGkgfCB0ZWJpIHwgVEVCSSkgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1ham9yaXR5IChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBtYWpvcml0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGFsbG93dGllICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29udGFpbnNyZWdleHAgRU1QVFk+Cis8IUFUVExJU1QgY29udGFpbnNyZWdleHAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4cHJlc3Npb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlbmFtZSBFTVBUWT4KKzwhQVRUTElTVCBmaWxlbmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmVnYXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNlbGVjdG9yIChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBzZWxlY3RvcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkYXRlIEVNUFRZPgorPCFBVFRMSVNUIGRhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgbWlsbGlzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2hlY2tkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRhdGV0aW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2hlbiAoYmVmb3JlIHwgYWZ0ZXIgfCBlcXVhbCkgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYW5kIChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBhbmQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlcHRoIEVNUFRZPgorPCFBVFRMSVNUIGRlcHRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBtYXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1pbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkaXJzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGRpcnNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXh0ZGlycyAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgZXh0ZGlycworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4aXN0aW5nIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBleGlzdGluZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGVsaXN0IChmaWxlKSo+Cis8IUFUVExJU1QgZmlsZWxpc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGUgRU1QVFk+Cis8IUFUVExJU1QgZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhdGhlbGVtZW50IEVNUFRZPgorPCFBVFRMSVNUIHBhdGhlbGVtZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVybWFwcGVyIChoZWFkZmlsdGVyIHwgY2xhc3Njb25zdGFudHMgfCBsaW5lY29udGFpbnMgfCBmaWx0ZXJyZWFkZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNldG9rZW5zIHwgZXNjYXBldW5pY29kZSB8IGlnbm9yZWJsYW5rIHwgdGFpbGZpbHRlciB8IHRhYnN0b3NwYWNlcyB8IHByZWZpeGxpbmVzIHwgdHJpbSB8IGV4cGFuZHByb3BlcnRpZXMgfCBzdHJpcGxpbmVicmVha3MgfCByZXBsYWNlc3RyaW5nIHwgc3RyaXBsaW5lY29tbWVudHMgfCB0b2tlbmZpbHRlciB8IHN0cmlwamF2YWNvbW1lbnRzIHwgY29udGFpbnNyZWdleCB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBsaW5lY29udGFpbnNyZWdleHApKj4KKzwhQVRUTElTVCBmaWx0ZXJtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBoZWFkZmlsdGVyIEVNUFRZPgorPCFBVFRMSVNUIGhlYWRmaWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2tpcCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNsYXNzY29uc3RhbnRzIEVNUFRZPgorPCFBVFRMSVNUIGNsYXNzY29uc3RhbnRzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaW5lY29udGFpbnMgKGNvbnRhaW5zKSo+Cis8IUFUVExJU1QgbGluZWNvbnRhaW5zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJyZWFkZXIgKGNsYXNzcGF0aCB8IHBhcmFtKSo+Cis8IUFUVExJU1QgZmlsdGVycmVhZGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXJlZ2V4IEVNUFRZPgorPCFBVFRMSVNUIHJlcGxhY2VyZWdleAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmxhZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNldG9rZW5zICh0b2tlbikqPgorPCFBVFRMSVNUIHJlcGxhY2V0b2tlbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJlZ2ludG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmR0b2tlbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRva2VuIEVNUFRZPgorPCFBVFRMSVNUIHRva2VuCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBrZXkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVzY2FwZXVuaWNvZGUgRU1QVFk+Cis8IUFUVExJU1QgZXNjYXBldW5pY29kZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaWdub3JlYmxhbmsgRU1QVFk+Cis8IUFUVExJU1QgaWdub3JlYmxhbmsKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YWlsZmlsdGVyIEVNUFRZPgorPCFBVFRMSVNUIHRhaWxmaWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2tpcCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhYnN0b3NwYWNlcyBFTVBUWT4KKzwhQVRUTElTVCB0YWJzdG9zcGFjZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhYmxlbmd0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByZWZpeGxpbmVzIEVNUFRZPgorPCFBVFRMSVNUIHByZWZpeGxpbmVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0cmltIEVNUFRZPgorPCFBVFRMSVNUIHRyaW0KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHBhbmRwcm9wZXJ0aWVzIEVNUFRZPgorPCFBVFRMSVNUIGV4cGFuZHByb3BlcnRpZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN0cmlwbGluZWJyZWFrcyBFTVBUWT4KKzwhQVRUTElTVCBzdHJpcGxpbmVicmVha3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmVicmVha3MgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNlc3RyaW5nIEVNUFRZPgorPCFBVFRMSVNUIHJlcGxhY2VzdHJpbmcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdHJpcGxpbmVjb21tZW50cyAoY29tbWVudCkqPgorPCFBVFRMSVNUIHN0cmlwbGluZWNvbW1lbnRzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21tZW50IEVNUFRZPgorPCFBVFRMSVNUIGNvbW1lbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdG9rZW5maWx0ZXIgKGNvbnRhaW5zc3RyaW5nIHwgbGluZXRva2VuaXplciB8IHRyaW0gfCBzdHJpbmd0b2tlbml6ZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNlc3RyaW5nIHwgaWdub3JlYmxhbmsgfCBkZWxldGVjaGFyYWN0ZXJzIHwgY29udGFpbnNyZWdleCB8IGZpbGV0b2tlbml6ZXIpKj4KKzwhQVRUTElTVCB0b2tlbmZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVsaW1vdXRwdXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb250YWluc3N0cmluZyBFTVBUWT4KKzwhQVRUTElTVCBjb250YWluc3N0cmluZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY29udGFpbnMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaW5ldG9rZW5pemVyIEVNUFRZPgorPCFBVFRMSVNUIGxpbmV0b2tlbml6ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVkZWxpbXMgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3RyaW5ndG9rZW5pemVyIEVNUFRZPgorPCFBVFRMSVNUIHN0cmluZ3Rva2VuaXplcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3VwcHJlc3NkZWxpbXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWRlbGltcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWxpbXNhcmV0b2tlbnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVsaW1zIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVsZXRlY2hhcmFjdGVycyBFTVBUWT4KKzwhQVRUTElTVCBkZWxldGVjaGFyYWN0ZXJzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjaGFycyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbnRhaW5zcmVnZXggRU1QVFk+Cis8IUFUVExJU1QgY29udGFpbnNyZWdleAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmxhZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxldG9rZW5pemVyIEVNUFRZPgorPCFBVFRMSVNUIGZpbGV0b2tlbml6ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN0cmlwamF2YWNvbW1lbnRzIEVNUFRZPgorPCFBVFRMSVNUIHN0cmlwamF2YWNvbW1lbnRzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaW5lY29udGFpbnNyZWdleHAgKHJlZ2V4cCkqPgorPCFBVFRMSVNUIGxpbmVjb250YWluc3JlZ2V4cAorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVnZXhwIEVNUFRZPgorPCFBVFRMSVNUIHJlZ2V4cAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJzZXQgKGZpbHRlcnNldCB8IGZpbHRlciB8IGZpbHRlcnNmaWxlKSo+Cis8IUFUVExJU1QgZmlsdGVyc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBiZWdpbnRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJzZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlciBFTVBUWT4KKzwhQVRUTElTVCBmaWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJzZmlsZSBFTVBUWT4KKzwhQVRUTElTVCBmaWx0ZXJzZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpYmZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGxpYmZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdXJsYmFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVpbXBsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXVybCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlzZmlsZXNlbGVjdGVkIChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBpc2ZpbGVzZWxlY3RlZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWVyZ2VtYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgbWVyZ2VtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlkZW50aXR5bWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIGlkZW50aXR5bWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzY3JpcHRmaWx0ZXIgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHNjcmlwdGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1bnBhY2thZ2VtYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgdW5wYWNrYWdlbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBoYW5kbGVkaXJzZXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb25jYXRmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgY29uY2F0ZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVwZW5kIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXh0ZW5zaW9uIEVNUFRZPgorPCFBVFRMSVNUIGV4dGVuc2lvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbnZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGVjaWZpY2F0aW9udmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dGVuc2lvbm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbnZlbmRvcmlkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3BlY2lmaWNhdGlvbnZlbmRvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9udXJsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbnZlbmRvciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGdsb2JtYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgZ2xvYm1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaGFuZGxlZGlyc2VwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVyY2hhaW4gKGhlYWRmaWx0ZXIgfCBjbGFzc2NvbnN0YW50cyB8IGxpbmVjb250YWlucyB8IGZpbHRlcnJlYWRlciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2V0b2tlbnMgfCBlc2NhcGV1bmljb2RlIHwgaWdub3JlYmxhbmsgfCB0YWlsZmlsdGVyIHwgdGFic3Rvc3BhY2VzIHwgcHJlZml4bGluZXMgfCB0cmltIHwgZXhwYW5kcHJvcGVydGllcyB8IHN0cmlwbGluZWJyZWFrcyB8IHJlcGxhY2VzdHJpbmcgfCBzdHJpcGxpbmVjb21tZW50cyB8IHRva2VuZmlsdGVyIHwgc3RyaXBqYXZhY29tbWVudHMgfCBjb250YWluc3JlZ2V4IHwgZGVsZXRlY2hhcmFjdGVycyB8IGxpbmVjb250YWluc3JlZ2V4cCkqPgorPCFBVFRMSVNUIGZpbHRlcmNoYWluCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29tcG9zaXRlbWFwcGVyIChtYXBwZXIpKj4KKzwhQVRUTElTVCBjb21wb3NpdGVtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNsYXNzZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcm9vdGZpbGVzZXQgfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IHJvb3QgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY2xhc3NmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcm9vdGNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByb290ZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgcm9vdGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJvb3QgRU1QVFk+Cis8IUFUVExJU1Qgcm9vdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVnZXhwbWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIHJlZ2V4cG1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaGFuZGxlZGlyc2VwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgeG1sY2F0YWxvZyAoZW50aXR5IHwgY2xhc3NwYXRoIHwgY2F0YWxvZ3BhdGggfCBkdGQgfCB4bWxjYXRhbG9nKSo+Cis8IUFUVExJU1QgeG1sY2F0YWxvZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2F0YWxvZ3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZW50aXR5IEVNUFRZPgorPCFBVFRMSVNUIGVudGl0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHVibGljaWQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjYXRhbG9ncGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgY2F0YWxvZ3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkdGQgRU1QVFk+Cis8IUFUVExJU1QgZHRkCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdWJsaWNpZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZsYXR0ZW5tYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgZmxhdHRlbm1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVzY3JpcHRpb24gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGRlc2NyaXB0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2hhaW5lZG1hcHBlciAobWFwcGVyKSo+Cis8IUFUVExJU1QgY2hhaW5lZG1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGFja2FnZW1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBwYWNrYWdlbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBoYW5kbGVkaXJzZXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB6aXBmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB6aXBmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZW1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlybW9kZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN1YnN0aXR1dGlvbiBFTVBUWT4KKzwhQVRUTElTVCBzdWJzdGl0dXRpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHByZXNzaW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXh0ZW5zaW9uU2V0IChmaWxlc2V0IHwgbGliZmlsZXNldCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIGV4dGVuc2lvblNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlZGlyZWN0b3IgKGVycm9yZmlsdGVyY2hhaW4gfCBvdXRwdXRmaWx0ZXJjaGFpbiB8IGVycm9ybWFwcGVyIHwgaW5wdXRmaWx0ZXJjaGFpbiB8IG91dHB1dG1hcHBlciB8IGlucHV0bWFwcGVyKSo+Cis8IUFUVExJU1QgcmVkaXJlY3RvcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNyZWF0ZWVtcHR5ZmlsZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWx3YXlzbG9nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcmVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXJyb3JmaWx0ZXJjaGFpbiAoaGVhZGZpbHRlciB8IGNsYXNzY29uc3RhbnRzIHwgbGluZWNvbnRhaW5zIHwgZmlsdGVycmVhZGVyIHwgcmVwbGFjZXJlZ2V4IHwgcmVwbGFjZXRva2VucyB8IGVzY2FwZXVuaWNvZGUgfCBpZ25vcmVibGFuayB8IHRhaWxmaWx0ZXIgfCB0YWJzdG9zcGFjZXMgfCBwcmVmaXhsaW5lcyB8IHRyaW0gfCBleHBhbmRwcm9wZXJ0aWVzIHwgc3RyaXBsaW5lYnJlYWtzIHwgcmVwbGFjZXN0cmluZyB8IHN0cmlwbGluZWNvbW1lbnRzIHwgdG9rZW5maWx0ZXIgfCBzdHJpcGphdmFjb21tZW50cyB8IGNvbnRhaW5zcmVnZXggfCBkZWxldGVjaGFyYWN0ZXJzIHwgbGluZWNvbnRhaW5zcmVnZXhwKSo+Cis8IUFUVExJU1QgZXJyb3JmaWx0ZXJjaGFpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG91dHB1dGZpbHRlcmNoYWluIChoZWFkZmlsdGVyIHwgY2xhc3Njb25zdGFudHMgfCBsaW5lY29udGFpbnMgfCBmaWx0ZXJyZWFkZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNldG9rZW5zIHwgZXNjYXBldW5pY29kZSB8IGlnbm9yZWJsYW5rIHwgdGFpbGZpbHRlciB8IHRhYnN0b3NwYWNlcyB8IHByZWZpeGxpbmVzIHwgdHJpbSB8IGV4cGFuZHByb3BlcnRpZXMgfCBzdHJpcGxpbmVicmVha3MgfCByZXBsYWNlc3RyaW5nIHwgc3RyaXBsaW5lY29tbWVudHMgfCB0b2tlbmZpbHRlciB8IHN0cmlwamF2YWNvbW1lbnRzIHwgY29udGFpbnNyZWdleCB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBsaW5lY29udGFpbnNyZWdleHApKj4KKzwhQVRUTElTVCBvdXRwdXRmaWx0ZXJjaGFpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVycm9ybWFwcGVyIChjbGFzc3BhdGggfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBlcnJvcm1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoaWRlbnRpdHkgfCBmbGF0dGVuIHwgZ2xvYiB8IG1lcmdlIHwgcmVnZXhwIHwgcGFja2FnZSB8IHVucGFja2FnZSkgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW5wdXRmaWx0ZXJjaGFpbiAoaGVhZGZpbHRlciB8IGNsYXNzY29uc3RhbnRzIHwgbGluZWNvbnRhaW5zIHwgZmlsdGVycmVhZGVyIHwgcmVwbGFjZXJlZ2V4IHwgcmVwbGFjZXRva2VucyB8IGVzY2FwZXVuaWNvZGUgfCBpZ25vcmVibGFuayB8IHRhaWxmaWx0ZXIgfCB0YWJzdG9zcGFjZXMgfCBwcmVmaXhsaW5lcyB8IHRyaW0gfCBleHBhbmRwcm9wZXJ0aWVzIHwgc3RyaXBsaW5lYnJlYWtzIHwgcmVwbGFjZXN0cmluZyB8IHN0cmlwbGluZWNvbW1lbnRzIHwgdG9rZW5maWx0ZXIgfCBzdHJpcGphdmFjb21tZW50cyB8IGNvbnRhaW5zcmVnZXggfCBkZWxldGVjaGFyYWN0ZXJzIHwgbGluZWNvbnRhaW5zcmVnZXhwKSo+Cis8IUFUVExJU1QgaW5wdXRmaWx0ZXJjaGFpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG91dHB1dG1hcHBlciAoY2xhc3NwYXRoIHwgbWFwcGVyKSo+Cis8IUFUVExJU1Qgb3V0cHV0bWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChpZGVudGl0eSB8IGZsYXR0ZW4gfCBnbG9iIHwgbWVyZ2UgfCByZWdleHAgfCBwYWNrYWdlIHwgdW5wYWNrYWdlKSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbnB1dG1hcHBlciAoY2xhc3NwYXRoIHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgaW5wdXRtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGlkZW50aXR5IHwgZmxhdHRlbiB8IGdsb2IgfCBtZXJnZSB8IHJlZ2V4cCB8IHBhY2thZ2UgfCB1bnBhY2thZ2UpICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByb3BlcnR5ZmlsZSAoZW50cnkpKj4KKzwhQVRUTElTVCBwcm9wZXJ0eWZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVudHJ5IEVNUFRZPgorPCFBVFRMSVNUIGVudHJ5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvcGVyYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0IENEQVRBICNJTVBMSUVECisgICAgICAgICAga2V5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoaW50IHwgZGF0ZSB8IHN0cmluZykgI0lNUExJRUQKKyAgICAgICAgICB1bml0IChtaWxsaXNlY29uZCB8IHNlY29uZCB8IG1pbnV0ZSB8IGhvdXIgfCBkYXkgfCB3ZWVrIHwgbW9udGggfCB5ZWFyKSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtkaXIgRU1QVFk+Cis8IUFUVExJU1QgY2Nta2RpcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vY2hlY2tvdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW1wb3J0dHlwZWxpYiBFTVBUWT4KKzwhQVRUTElTVCBpbXBvcnR0eXBlbGliCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1bnNhZmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VzeXNhcnJheSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuYW1lc3BhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2NoZWNraW4gRU1QVFk+Cis8IUFUVExJU1QgdnNzY2hlY2tpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd3JpdGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3FsICgjUENEQVRBIHwgZmlsZXNldCB8IGNsYXNzcGF0aCB8IHRyYW5zYWN0aW9uKSo+Cis8IUFUVExJU1Qgc3FsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvbmVycm9yIChjb250aW51ZSB8IHN0b3AgfCBhYm9ydCkgI0lNUExJRUQKKyAgICAgICAgICB1c2VyaWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGF1dG9jb21taXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmRibXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmludCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkcml2ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaG93aGVhZGVycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWxpbWl0ZXJ0eXBlIChub3JtYWwgfCByb3cpICNJTVBMSUVECisgICAgICAgICAgZXNjYXBlcHJvY2Vzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhY2hpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2VlcGZvcm1hdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWxpbWl0ZXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0cmFuc2FjdGlvbiAoI1BDREFUQSk+Cis8IUFUVExJU1QgdHJhbnNhY3Rpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN2c3Bhc3MgRU1QVFk+Cis8IUFUVExJU1QgY3ZzcGFzcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3Zzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3NmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3NjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IHJlc291cmNlIHwgZGVmaW5lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgcmVmZXJlbmNlIHwgc3JjIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNzYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW4zMmljb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZpbml0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmVyZW5jZWZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGhzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbmNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXRmOG91dHB1dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VyZXNwb25zZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVkZWZhdWx0cmVmZXJlbmNlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB3YXJubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW4zMnJlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY3JlbWVudGFsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vY29uZmlnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmVyZW5jZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9wdGltaXplICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxtb2R1bGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVuc2FmZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlYWxpZ24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXR0eXBlIChleGUgfCBsaWJyYXJ5IHwgbW9kdWxlIHwgd2luZXhlKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlc291cmNlIEVNUFRZPgorPCFBVFRMSVNUIHJlc291cmNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1YmxpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbWJlZCAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZWZpbmUgRU1QVFk+Cis8IUFUVExJU1QgZGVmaW5lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZWZlcmVuY2UgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHJlZmVyZW5jZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3JjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBzcmMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRpcm5hbWUgRU1QVFk+Cis8IUFUVExJU1QgZGlybmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2VyZWdleHAgKGZpbGVzZXQgfCBzdWJzdGl0dXRpb24gfCByZWdleHApKj4KKzwhQVRUTElTVCByZXBsYWNlcmVnZXhwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGFncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF0Y2ggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ2V0IEVNUFRZPgorPCFBVFRMSVNUIGdldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVlcnJvcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2V0aW1lc3RhbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpqdHJlZSBFTVBUWT4KKzwhQVRUTElTVCBqanRyZWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5vZGVkZWZhdWx0dm9pZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBidWlsZG5vZGVmaWxlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRkaXJlY3RvcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3RhdGljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGphdmFjY2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RlcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZWZhY3RvcnkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbXVsdGkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlzaXRvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RldXNlc3BhcnNlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aXNpdG9yZXhjZXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZXNjb3BlaG9vayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZXBhY2thZ2UgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzbGVlcCBFTVBUWT4KKzwhQVRUTElTVCBzbGVlcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaG91cnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1pbGxpc2Vjb25kcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1pbnV0ZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlY29uZHMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXJsaWItZGlzcGxheSAoZmlsZXNldCkqPgorPCFBVFRMSVNUIGphcmxpYi1kaXNwbGF5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxlbmd0aCBFTVBUWT4KKzwhQVRUTElTVCBsZW5ndGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxlbmd0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0cmltICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1vZGUgKGVhY2ggfCBhbGwpICNJTVBMSUVECisgICAgICAgICAgc3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2hlbiAoZXF1YWwgfCBncmVhdGVyIHwgbGVzcykgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZXBlbmRzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IHRhcmdldGZpbGVzZXQgfCBzcmNmaWxlc2V0IHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgc3JjZmlsZWxpc3QgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQgfCB0YXJnZXRmaWxlbGlzdCkqPgorPCFBVFRMSVNUIGRlcGVuZHNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJnZXRmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0YXJnZXRmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmNmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBzcmNmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmNmaWxlbGlzdCAoZmlsZSkqPgorPCFBVFRMSVNUIHNyY2ZpbGVsaXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJnZXRmaWxlbGlzdCAoZmlsZSkqPgorPCFBVFRMSVNUIHRhcmdldGZpbGVsaXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB6aXAgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCB6aXBncm91cGZpbGVzZXQgfCB6aXBmaWxlc2V0IHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgemlwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB3aGVuZW1wdHkgKGZhaWwgfCBza2lwIHwgY3JlYXRlKSAjSU1QTElFRAorICAgICAgICAgIGtlZXBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZHVwbGljYXRlIChhZGQgfCBwcmVzZXJ2ZSB8IGZhaWwpICNJTVBMSUVECisgICAgICAgICAgcm91bmR1cCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzb25seSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgemlwZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHppcGdyb3VwZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgemlwZ3JvdXBmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXRjaCBFTVBUWT4KKzwhQVRUTElTVCBwYXRjaAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3RyaXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9yaWdpbmFsZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGNoZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJldmVyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYWNrdXBzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZXdoaXRlc3BhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqc3BjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBjb21waWxlcmNsYXNzcGF0aCB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCB3ZWJhcHAgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGpzcGMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG1hcHBlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpZXBsdWdpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlcmNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1cmliYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcGlsZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2VieG1sIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmlyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2ViaW5jIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29tcGlsZXJjbGFzc3BhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGNvbXBpbGVyY2xhc3NwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2ViYXBwIEVNUFRZPgorPCFBVFRMSVNUIHdlYmFwcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN0eWxlIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBmYWN0b3J5IHwgbW9kaWZpZWQgfCBwYXJhbSB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBjbGFzc3BhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgeG1sY2F0YWxvZyB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgb3V0cHV0cHJvcGVydHkgfCBtYXBwZXIgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBzdHlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9jZXNzb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzY2FuaW5jbHVkZWRkaXJlY3RvcmllcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleHRlbnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsb2Fkc3R5bGVzaGVldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3R5bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZhY3RvcnkgKGF0dHJpYnV0ZSkqPgorPCFBVFRMSVNUIGZhY3RvcnkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhdHRyaWJ1dGUgRU1QVFk+Cis8IUFUVExJU1QgYXR0cmlidXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBvdXRwdXRwcm9wZXJ0eSBFTVBUWT4KKzwhQVRUTElTVCBvdXRwdXRwcm9wZXJ0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbmljZSBFTVBUWT4KKzwhQVRUTElTVCBuaWNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3cHJpb3JpdHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdXJyZW50cHJpb3JpdHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0ZXN0IChjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eSB8IHJlZGlyZWN0b3IgfCBib290Y2xhc3NwYXRoIHwgZW52IHwgc3lzcHJvcGVydHlzZXQgfCBwZXJtaXNzaW9ucyB8IGp2bWFyZyB8IGFyZyB8IGFzc2VydGlvbnMgfCB0ZXN0bGV0KSo+Cis8IUFUVExJU1QgdGVzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1hcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmsgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgamFyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlc2hvd3RyYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3dzdWNjZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGp2bXZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3diYW5uZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaG93dHJhY2UgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3lzcHJvcGVydHkgRU1QVFk+Cis8IUFUVExJU1Qgc3lzcHJvcGVydHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGtleSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBib290Y2xhc3NwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBib290Y2xhc3NwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZW52IEVNUFRZPgorPCFBVFRMSVNUIGVudgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAga2V5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN5c3Byb3BlcnR5c2V0IChwcm9wZXJ0eXJlZiB8IHByb3BlcnR5c2V0IHwgbWFwcGVyKSo+Cis8IUFUVExJU1Qgc3lzcHJvcGVydHlzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkeW5hbWljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5lZ2F0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwZXJtaXNzaW9ucyAoZ3JhbnQgfCByZXZva2UpKj4KKzwhQVRUTElTVCBwZXJtaXNzaW9ucworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ3JhbnQgRU1QVFk+Cis8IUFUVExJU1QgZ3JhbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFjdGlvbnMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXZva2UgRU1QVFk+Cis8IUFUVExJU1QgcmV2b2tlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb25zIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganZtYXJnIEVNUFRZPgorPCFBVFRMSVNUIGp2bWFyZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXJnIEVNUFRZPgorPCFBVFRMSVNUIGFyZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGVzdGxldCAoI1BDREFUQSk+Cis8IUFUVExJU1QgdGVzdGxldAorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHN0YW1wIChmb3JtYXQpKj4KKzwhQVRUTElTVCB0c3RhbXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmb3JtYXQgRU1QVFk+Cis8IUFUVExJU1QgZm9ybWF0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lem9uZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVuaXQgKG1pbGxpc2Vjb25kIHwgc2Vjb25kIHwgbWludXRlIHwgaG91ciB8IGRheSB8IHdlZWsgfCBtb250aCB8IHllYXIpICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2Zmc2V0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdW53YXIgKGZpbGVzZXQgfCBwYXR0ZXJuc2V0KSo+Cis8IUFUVExJU1QgdW53YXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzaGlzdG9yeSBFTVBUWT4KKzwhQVRUTElTVCB2c3NoaXN0b3J5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZSAoYnJpZWYgfCBjb2RlZGlmZiB8IG5vZmlsZSB8IGRlZmF1bHQpICNJTVBMSUVECisgICAgICAgICAgbnVtZGF5cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb21sYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlZm9ybWF0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdnNjaGFuZ2Vsb2cgKGZpbGVzZXQgfCB1c2VyIHwgY29tbWFuZGxpbmUpKj4KKzwhQVRUTElTVCBjdnNjaGFuZ2Vsb2cKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGN2c3JzaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhc3NmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdGFydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN2c3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWFsbHlxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb25sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZXhlYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGF5c2lucGFzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YWcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1c2VyIEVNUFRZPgorPCFBVFRMSVNUIHVzZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVzZXJpZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpc3BsYXluYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29tbWFuZGxpbmUgKG1hcmtlciB8IGFyZ3VtZW50KSo+Cis8IUFUVExJU1QgY29tbWFuZGxpbmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYXJrZXIgRU1QVFk+Cis8IUFUVExJU1QgbWFya2VyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhcmd1bWVudCBFTVBUWT4KKzwhQVRUTElTVCBhcmd1bWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NtY2hlY2tpbiAoZmlsZXNldCkqPgorPCFBVFRMSVNUIGNjbWNoZWNraW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbWFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2sgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNjbWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBiemlwMiBFTVBUWT4KKzwhQVRUTElTVCBiemlwMgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN5bmMgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBzeW5jCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWVtcHR5ZGlycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzYWRkIEVNUFRZPgorPCFBVFRMSVNUIHZzc2FkZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd3JpdGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamF2YWRvYyAodGFnbGV0IHwgZG9jbGV0IHwgcGFja2FnZSB8IGFyZyB8IGxpbmsgfCBkb2N0aXRsZSB8IGJvdHRvbSB8IGdyb3VwIHwgcGFja2FnZXNldCB8IGZpbGVzZXQgfCBjbGFzc3BhdGggfCBzb3VyY2VwYXRoIHwgZm9vdGVyIHwgc291cmNlIHwgYm9vdGNsYXNzcGF0aCB8IGhlYWRlciB8IGV4Y2x1ZGVwYWNrYWdlIHwgdGFnKSo+Cis8IUFUVExJU1QgamF2YWRvYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYm90dG9tIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhlYWRlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmsgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2luZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFjY2VzcyAocHJvdGVjdGVkIHwgcHVibGljIHwgcGFja2FnZSB8IHByaXZhdGUpICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9xdWFsaWZpZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdWJsaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXV0aG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvb3RlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZWV4dGVybmFsZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwcm90ZWN0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnJlYWtpdGVyYXRvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub25hdmJhciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmtvZmZsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbHBhcmFtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlua3NvdXJjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVub3NvdXJjZXBhY2thZ2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcml2YXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2hhcnNldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVwcmVjYXRlZGxpc3QgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgc3R5bGVzaGVldGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVwYWNrYWdlbmFtZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXRwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZW5hbWVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luZG93dGl0bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3RyZWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3BsaXRpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jdGl0bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJpYWx3YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9sZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhlbHBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dGRpcnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2hlbHAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9kZXByZWNhdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG92ZXJ2aWV3IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFnbGV0IChwYXRoKSo+Cis8IUFUVExJU1QgdGFnbGV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkb2NsZXQgKHBhdGggfCBwYXJhbSkqPgorPCFBVFRMSVNUIGRvY2xldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGFja2FnZSBFTVBUWT4KKzwhQVRUTElTVCBwYWNrYWdlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGluayBFTVBUWT4KKzwhQVRUTElTVCBsaW5rCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBocmVmIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2ZmbGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlbGlzdGxvYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVsaW5rICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRvY3RpdGxlICgjUENEQVRBKT4KKzwhQVRUTElTVCBkb2N0aXRsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYm90dG9tICgjUENEQVRBKT4KKzwhQVRUTElTVCBib3R0b20KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGdyb3VwIChwYWNrYWdlIHwgdGl0bGUpKj4KKzwhQVRUTElTVCBncm91cAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aXRsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRpdGxlICgjUENEQVRBKT4KKzwhQVRUTElTVCB0aXRsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGFja2FnZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgcGFja2FnZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc291cmNlcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1Qgc291cmNlcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZvb3RlciAoI1BDREFUQSk+Cis8IUFUVExJU1QgZm9vdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb3VyY2UgRU1QVFk+Cis8IUFUVExJU1Qgc291cmNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaGVhZGVyICgjUENEQVRBKT4KKzwhQVRUTElTVCBoZWFkZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4Y2x1ZGVwYWNrYWdlIEVNUFRZPgorPCFBVFRMSVNUIGV4Y2x1ZGVwYWNrYWdlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFnIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0YWcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW5hYmxlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzY29wZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHJhbnNsYXRlIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgdHJhbnNsYXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBidW5kbGVjb3VudHJ5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVuZGxlbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcmNlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1bmRsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1bmRsZWVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidW5kbGV2YXJpYW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmR0b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN0YXJ0dG9rZW4gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzaWduamFyIChmaWxlc2V0KSo+Cis8IUFUVExJU1Qgc2lnbmphcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3RvcmVwYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGF6eSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBqYXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtleXBhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhbGlhcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlY3Rpb25zb25seSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZXlzdG9yZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2lnZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW50ZXJuYWxzZiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdG9yZXR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaWduZWRqYXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY2xvY2sgRU1QVFk+Cis8IUFUVExJU1QgY2Nsb2NrCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBudXNlcnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvYnNvbGV0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjaG93biAobWFwcGVyIHwgc3JjZmlsZSB8IHRhcmdldGZpbGUgfCByZWRpcmVjdG9yIHwgZmlsZWxpc3QgfCBlbnYgfCBmaWxlc2V0IHwgZGlyc2V0IHwgYXJnKSo+Cis8IUFUVExJU1QgY2hvd24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHNvdXJjZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbGxlbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsYXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2tpcGVtcHR5ZmlsZXNldHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcndhcmRzbGFzaCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3duZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZW1pc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbGlmZXhlY3V0aW9uZmFpbHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXhwYXJhbGxlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3JjZmlsZSBFTVBUWT4KKzwhQVRUTElTVCBzcmNmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJnZXRmaWxlIEVNUFRZPgorPCFBVFRMSVNUIHRhcmdldGZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphcmxpYi1hdmFpbGFibGUgKGV4dGVuc2lvbnNldCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIGphcmxpYi1hdmFpbGFibGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHRlbnNpb25zZXQgKGZpbGVzZXQgfCBsaWJmaWxlc2V0IHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgZXh0ZW5zaW9uc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgV3NkbFRvRG90bmV0IEVNUFRZPgorPCFBVFRMSVNUIFdzZGxUb0RvdG5ldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdXJsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWVzcGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhbmd1YWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJ1aWxkbnVtYmVyIEVNUFRZPgorPCFBVFRMSVNUIGJ1aWxkbnVtYmVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpwY292bWVyZ2UgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBqcGNvdm1lcmdlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBob21lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3ZzdmVyc2lvbiAoY29tbWFuZGxpbmUpKj4KKzwhQVRUTElTVCBjdnN2ZXJzaW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjdnNyc2ggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXNzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3Zzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYWxseXF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnZlcnNpb25wcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsaWVudHZlcnNpb25wcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZXhlYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhZyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVqYmphciAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgd2VibG9naWN0b3BsaW5rIHwgcHJlc2VudCB8IG5vbmUgfCBqYm9zcyB8IG5vdCB8IGJvcmxhbmQgfCB3ZWJsb2dpYyB8IHR5cGUgfCBtb2RpZmllZCB8IGlwbGFuZXQgfCBvciB8IGpvbmFzIHwgY29udGFpbnMgfCBkZXBlbmQgfCBzdXBwb3J0IHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgd2Vic3BoZXJlIHwgY29udGFpbnNyZWdleHAgfCBkdGQgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZWpiamFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdG9yZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYmFzZW5hbWV0ZXJtaW5hdG9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbXB2ZXJzaW9uICgxLjAgfCAyLjApICNJTVBMSUVECisgICAgICAgICAgZGVwZW5kZW5jeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VqYXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmxhdGRlc3RkaXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtaW5nIChlamItbmFtZSB8IGRpcmVjdG9yeSB8IGRlc2NyaXB0b3IgfCBiYXNlamFybmFtZSkgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2VibG9naWN0b3BsaW5rIChjbGFzc3BhdGggfCB3bGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5KSo+Cis8IUFUVExJU1Qgd2VibG9naWN0b3BsaW5rCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuZXdjbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWpiZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYnVpbGQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvcGxpbmtkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3bGR0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3ZWJsb2dpY2R0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdsY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtZGVidWdsZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmF0ZWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9sZGNtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlamJjY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2VqYmMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9wbGlua2Rlc2NyaXB0b3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2xjbGFzc3BhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIHdsY2xhc3NwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamJvc3MgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGpib3NzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJvcmxhbmQgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGJvcmxhbmQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcmlmeWFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphdmEyaWlvcHBhcmFtcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJpZnkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJhdGVjbGllbnQgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2VibG9naWMgKGNsYXNzcGF0aCB8IHdsY2xhc3NwYXRoIHwgc3lzcHJvcGVydHkpKj4KKzwhQVRUTElTVCB3ZWJsb2dpYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmV3Y21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmR0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWJ1aWxkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3bGR0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3ZWJsb2dpY2R0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdsY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtZGVidWdsZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmF0ZWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9sZGNtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlamJjY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2VqYmMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlwbGFuZXQgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGlwbGFuZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyYXRlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpYXNob21lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgam9uYXMgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGpvbmFzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBqb25hc3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhZGRpdGlvbmFsYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphdmFjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9yYiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphcnN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZ2VuaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcm1pY29wdHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXZhY29wdHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3ZhbGlkYXRpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyYXRlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXBpbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzZWNwcm9wYWcgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3VwcG9ydCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgc3VwcG9ydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2Vic3BoZXJlIChjbGFzc3BhdGggfCB3YXNjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCB3ZWJzcGhlcmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5ld2NtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlamJkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBybWljb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vaW5mb3JtICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlYnVpbGQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGJzY2hlbWEgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZWpiZGVwbG95ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZTM1ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRlbXBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3ZhbGlkYXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvZGVnZW4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGJ2ZW5kb3IgKFNRTDkyIHwgU1FMOTkgfCBEQjJVREJXSU5fVjcxIHwgREIyVURCT1MzOTBfVjYgfCBEQjJVREJBUzQwMF9WNFI1IHwgT1JBQ0xFX1Y4IHwgSU5GT1JNSVhfVjkyIHwgU1lCQVNFX1YxMTkyIHwgTVNTUUxTRVJWRVJfVjcgfCBNWVNRTF9WMzIzKSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdhc2NsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9sZGNtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0cmFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub3dhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdhc2NsYXNzcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1Qgd2FzY2xhc3NwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2FyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IG1hbmlmZXN0IHwgdHlwZSB8IG1ldGFpbmYgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBsaWIgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBpbmRleGphcnMgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgemlwZ3JvdXBmaWxlc2V0IHwgemlwZmlsZXNldCB8IGNsYXNzZXMgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgd2ViaW5mIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB3YXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGtlZXBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkdXBsaWNhdGUgKGFkZCB8IHByZXNlcnZlIHwgZmFpbCkgI0lNUExJRUQKKyAgICAgICAgICB3aGVuZW1wdHkgKGZhaWwgfCBza2lwIHwgY3JlYXRlKSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByb3VuZHVwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFuaWZlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVwZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdlYnhtbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFuaWZlc3RlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzb25seSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB3YXJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzZXRtYW5pZmVzdCAoc2tpcCB8IG1lcmdlIHwgbWVyZ2V3aXRob3V0bWFpbikgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFuaWZlc3QgKGF0dHJpYnV0ZSB8IHNlY3Rpb24pKj4KKzwhQVRUTElTVCBtYW5pZmVzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2VjdGlvbiAoYXR0cmlidXRlKSo+Cis8IUFUVExJU1Qgc2VjdGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1ldGFpbmYgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIG1ldGFpbmYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGliIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBsaWIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW5kZXhqYXJzIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBpbmRleGphcnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjbGFzc2VzIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjbGFzc2VzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZW1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlybW9kZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdlYmluZiAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgd2ViaW5mCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZW1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlybW9kZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlbmFtZSBFTVBUWT4KKzwhQVRUTElTVCByZW5hbWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNlcXVlbnRpYWwgKCV0YXNrczspKj4KKzwhQVRUTElTVCBzZXF1ZW50aWFsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2VydmVyZGVwbG95ICh3ZWJsb2dpYyB8IGdlbmVyaWMgfCBqb25hcykqPgorPCFBVFRMSVNUIHNlcnZlcmRlcGxveQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGdlbmVyaWMgKGFyZyB8IGNsYXNzcGF0aCB8IGp2bWFyZykqPgorPCFBVFRMSVNUIGdlbmVyaWMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcm9wZXJ0eSAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgcHJvcGVydHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdXJsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VycHJvcGVydHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbnZpcm9ubWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3ViYW50IChyZWZlcmVuY2UgfCBmaWxlc2V0IHwgYnVpbGRwYXRoZWxlbWVudCB8IGRpcnNldCB8IGJ1aWxkcGF0aCB8IHByb3BlcnR5c2V0IHwgZmlsZWxpc3QgfCBwcm9wZXJ0eSkqPgorPCFBVFRMSVNUIHN1YmFudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2FudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0YWxsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdHJlZnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYW50ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1aWxkcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVpbGRwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBidWlsZHBhdGhlbGVtZW50IEVNUFRZPgorPCFBVFRMSVNUIGJ1aWxkcGF0aGVsZW1lbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJ1aWxkcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgYnVpbGRwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbW92ZSAoZmlsdGVyY2hhaW4gfCBmaWxlc2V0IHwgZmlsdGVyc2V0IHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgbW92ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmxhdHRlbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWVtcHR5ZGlycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW5hYmxlbXVsdGlwbGVtYXBwaW5ncyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHByZXNlcnZlbGFzdG1vZGlmaWVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcmluZyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbGRhc20gRU1QVFk+Cis8IUFUVExJU1QgaWxkYXNtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhc3NlbWJsZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgKGFzY2lpIHwgdXRmOCB8IHVuaWNvZGUpICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2dyZXNzYmFyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxpbmVudW1iZXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJhd2V4Y2VwdGlvbmhhbmRsaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNob3dzb3VyY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWV0YWRhdGEgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnl0ZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdW90ZWFsbG5hbWVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGVhZGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpc2liaWxpdHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpdGVtIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29weWRpciAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY29weWRpcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmxhdHRlbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NjaGVja2luIEVNUFRZPgorPCFBVFRMSVNUIGNjY2hlY2tpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmV0aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWRlbnRpY2FsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGNvcHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjdW5sb2NrIEVNUFRZPgorPCFBVFRMSVNUIGNjdW5sb2NrCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2xqc3BjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBjbGFzc3BhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB3bGpzcGMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaXhjcmxmIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBmaXhjcmxmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YWIgKGFkZCB8IGFzaXMgfCByZW1vdmUpICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNyIChhZGQgfCBhc2lzIHwgcmVtb3ZlKSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW9sIChhc2lzIHwgY3IgfCBsZiB8IGNybGYgfCBtYWMgfCB1bml4IHwgZG9zKSAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGphdmFmaWxlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlb2YgKGFkZCB8IGFzaXMgfCByZW1vdmUpICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YWJsZW5ndGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZml4bGFzdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvc2dldCBFTVBUWT4KKzwhQVRUTElTVCBzb3NnZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNvc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2plY3RwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9jYWNoZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NjbWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhdGhjb252ZXJ0IChwYXRoIHwgbWFwIHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgcGF0aGNvbnZlcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHNlcCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJzZXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXRvbmVtcHR5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0b3MgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYXAgRU1QVFk+Cis8IUFUVExJU1QgbWFwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZWNvcmQgRU1QVFk+Cis8IUFUVExJU1QgcmVjb3JkCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nbGV2ZWwgKGVycm9yIHwgd2FybiB8IGluZm8gfCB2ZXJib3NlIHwgZGVidWcpICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbWFjc21vZGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWN0aW9uIChzdGFydCB8IHN0b3ApICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhlYyAoYXJnIHwgcmVkaXJlY3RvciB8IGVudikqPgorPCFBVFRMSVNUIGV4ZWMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbGlmZXhlY3V0aW9uZmFpbHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21rbGFiZWwgRU1QVFk+Cis8IUFUVExJU1QgY2Nta2xhYmVsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm9iIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpwY292cmVwb3J0IChyZWZlcmVuY2UgfCBjb3ZlcmFnZXBhdGggfCBzb3VyY2VwYXRoKSo+Cis8IUFUVExJU1QganBjb3ZyZXBvcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNuYXBzaG90IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9maWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBlcmNlbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZXhlY3V0aXZlIHwgc3VtbWFyeSB8IGRldGFpbGVkIHwgdmVyeWRldGFpbGVkKSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9ybWF0IChodG1sIHwgdGV4dCB8IHhtbCkgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc291cmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY292ZXJhZ2VwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBjb3ZlcmFnZXBhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleGVjb24gKG1hcHBlciB8IHNyY2ZpbGUgfCB0YXJnZXRmaWxlIHwgcmVkaXJlY3RvciB8IGZpbGVsaXN0IHwgZW52IHwgZmlsZXNldCB8IGRpcnNldCB8IGFyZykqPgorPCFBVFRMSVNUIGV4ZWNvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZW1pc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbGxlbCAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21jaGVja291dCAoZmlsZXNldCkqPgorPCFBVFRMSVNUIGNjbWNoZWNrb3V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY21hY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjY21kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYW50IChyZWZlcmVuY2UgfCBwcm9wZXJ0eXNldCB8IHByb3BlcnR5IHwgdGFyZ2V0KSo+Cis8IUFUVExJU1QgYW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluaGVyaXRhbGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdHJlZnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhbnRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFyZ2V0IEVNUFRZPgorPCFBVFRMSVNUIHRhcmdldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHhtbHZhbGlkYXRlIChmaWxlc2V0IHwgY2xhc3NwYXRoIHwgZHRkIHwgeG1sY2F0YWxvZyB8IGF0dHJpYnV0ZSB8IHByb3BlcnR5KSo+Cis8IUFUVExJU1QgeG1sdmFsaWRhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsZW5pZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHhzbHQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IGZhY3RvcnkgfCBtb2RpZmllZCB8IHBhcmFtIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCB4bWxjYXRhbG9nIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBvdXRwdXRwcm9wZXJ0eSB8IG1hcHBlciB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHhzbHQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvY2Vzc29yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2NhbmluY2x1ZGVkZGlyZWN0b3JpZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXh0ZW5zaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbG9hZHN0eWxlc2hlZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0eWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpcGxhbmV0LWVqYmMgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGlwbGFuZXQtZWpiYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZWpiZGVzY3JpcHRvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlhc2Rlc2NyaXB0b3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpYXNob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWNoZWNraW50YXNrIChmaWxlc2V0KSo+Cis8IUFUVExJU1QgY2NtY2hlY2tpbnRhc2sKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbWFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2sgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNjbWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBnemlwIEVNUFRZPgorPCFBVFRMSVNUIGd6aXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgemlwZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBuYXRpdmUyYXNjaWkgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IGFyZyB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IG1hcHBlciB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIG5hdGl2ZTJhc2NpaQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXZlcnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NybXR5cGUgRU1QVFk+Cis8IUFUVExJU1QgY2NybXR5cGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZW5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBybWFsbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGVraW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm9iIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVhciAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCBtYW5pZmVzdCB8IHR5cGUgfCBtZXRhaW5mIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgYXJjaGl2ZXMgfCBpbmRleGphcnMgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgemlwZ3JvdXBmaWxlc2V0IHwgemlwZmlsZXNldCB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGVhcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAga2VlcGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGR1cGxpY2F0ZSAoYWRkIHwgcHJlc2VydmUgfCBmYWlsKSAjSU1QTElFRAorICAgICAgICAgIHdoZW5lbXB0eSAoZmFpbCB8IHNraXAgfCBjcmVhdGUpICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJvdW5kdXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlYXJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcHhtbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFuaWZlc3RlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzb25seSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNldG1hbmlmZXN0IChza2lwIHwgbWVyZ2UgfCBtZXJnZXdpdGhvdXRtYWluKSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhcmNoaXZlcyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgYXJjaGl2ZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW5wdXQgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGlucHV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0dmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWxpZGFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJlc2V0ZGVmICgldGFza3M7KSo+Cis8IUFUVExJU1QgcHJlc2V0ZGVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJtaWMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgZXh0ZGlycyB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBjbGFzc3BhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBjb21waWxlcmFyZyB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHJtaWMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcmlmeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlpb3AgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaWRsb3B0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dGRpcnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2ViYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgYmFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlYW50cnVudGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlamF2YXJ1bnRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlkbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpaW9wb3B0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcmluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdHVidmVyc2lvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbXBpbGVyYXJnIEVNUFRZPgorPCFBVFRMSVNUIGNvbXBpbGVyYXJnCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcGlsZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2hlY2tzdW0gKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjaGVja3N1bQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlZXh0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG90YWxwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVhZGJ1ZmZlcnNpemUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJpZnlwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFsZ29yaXRobSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3ZpZGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFpbCAoZmlsZXNldCB8IGJjYyB8IG1lc3NhZ2UgfCByZXBseXRvIHwgY2MgfCBmcm9tIHwgdG8pKj4KKzwhQVRUTElTVCBtYWlsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgKGF1dG8gfCBtaW1lIHwgdXUgfCBwbGFpbikgI0lNUExJRUQKKyAgICAgICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdWJqZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNzbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWlscG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2VtaW1ldHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJjY2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBseXRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbGhvc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVmaWxlbmFtZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJjYyBFTVBUWT4KKzwhQVRUTElTVCBiY2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWVzc2FnZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgbWVzc2FnZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbWltZXR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbHl0byBFTVBUWT4KKzwhQVRUTElTVCByZXBseXRvCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjIEVNUFRZPgorPCFBVFRMSVNUIGNjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZyb20gRU1QVFk+Cis8IUFUVExJU1QgZnJvbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0byBFTVBUWT4KKzwhQVRUTElTVCB0bworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsb2FkZmlsZSAoZmlsdGVyY2hhaW4pKj4KKzwhQVRUTElTVCBsb2FkZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzY2hlY2tvdXQgRU1QVFk+Cis8IUFUVExJU1QgdnNzY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2V0bG9jYWxjb3B5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxldGltZXN0YW1wIChjdXJyZW50IHwgbW9kaWZpZWQgfCB1cGRhdGVkKSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdyaXRhYmxlZmlsZXMgKHJlcGxhY2UgfCBza2lwIHwgZmFpbCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb3NjaGVja2luIEVNUFRZPgorPCFBVFRMSVNUIHNvc2NoZWNraW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNvc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9qZWN0cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vY2FjaGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9jb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zY21kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtaW1lbWFpbCAoZmlsZXNldCB8IGJjYyB8IG1lc3NhZ2UgfCByZXBseXRvIHwgY2MgfCBmcm9tIHwgdG8pKj4KKzwhQVRUTElTVCBtaW1lbWFpbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NsaXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZWZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIChhdXRvIHwgbWltZSB8IHV1IHwgcGxhaW4pICNJTVBMSUVECisgICAgICAgICAgY2hhcnNldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3ViamVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzc2wgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9saXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlbWltZXR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiY2NsaXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbHl0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haWxob3N0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZmlsZW5hbWVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBndW56aXAgRU1QVFk+Cis8IUFUVExJU1QgZ3VuemlwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbmNhdCAoI1BDREFUQSB8IGZpbHRlcmNoYWluIHwgZmlsZXNldCB8IGZpbGVsaXN0IHwgcGF0aCB8IGZvb3RlciB8IGhlYWRlcikqPgorPCFBVFRMSVNUIGNvbmNhdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiaW5hcnkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW9sIChhc2lzIHwgY3IgfCBsZiB8IGNybGYgfCBtYWMgfCB1bml4IHwgZG9zKSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaXhsYXN0bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNhYiAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNhYgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2FiZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW9ucyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRvdWNoIChmaWxlc2V0IHwgZmlsZWxpc3QgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCB0b3VjaAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1rZGlycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtaWxsaXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZXRpbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXJhbGxlbCAoJXRhc2tzOyB8IGRhZW1vbnMpKj4KKzwhQVRUTElTVCBwYXJhbGxlbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcG9sbGludGVydmFsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRocmVhZHNwZXJwcm9jZXNzb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGhyZWFkY291bnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25hbnkgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGFlbW9ucyAoJXRhc2tzOykqPgorPCFBVFRMSVNUIGRhZW1vbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFudGNhbGwgKHJlZmVyZW5jZSB8IHByb3BlcnR5c2V0IHwgdGFyZ2V0IHwgcGFyYW0pKj4KKzwhQVRUTElTVCBhbnRjYWxsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluaGVyaXRhbGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdHJlZnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21rYmwgRU1QVFk+Cis8IUFUVExJU1QgY2Nta2JsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBubGFiZWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZnVsbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub3dhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlkZW50aWNhbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VsaW5lcm9vdG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NjaGVja291dCBFTVBUWT4KKzwhQVRUTElTVCBjY2NoZWNrb3V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXNlcnZlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdGNvICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RhdGEgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub3dhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnJhbmNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHR5cGVkZWYgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIHR5cGVkZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGFwdHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb25lcnJvciAoZmFpbCB8IHJlcG9ydCB8IGlnbm9yZSkgI0lNUExJRUQKKyAgICAgICAgICBsb2FkZXJyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkYXB0ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKHByb3BlcnRpZXMgfCB4bWwpICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXZlcnNlbG9hZGVyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHhtbHByb3BlcnR5ICh4bWxjYXRhbG9nKSo+Cis8IUFUVExJU1QgeG1scHJvcGVydHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZW1hbnRpY2F0dHJpYnV0ZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2VlcHJvb3QgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29sbGFwc2VhdHRyaWJ1dGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZhbGlkYXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByb290ZGlyZWN0b3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNlbWFudGljYXR0cmlidXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGltcG9ydCBFTVBUWT4KKzwhQVRUTElTVCBpbXBvcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29weSAoZmlsdGVyY2hhaW4gfCBmaWxlc2V0IHwgZmlsdGVyc2V0IHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgY29weQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmxhdHRlbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWVtcHR5ZGlycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW5hYmxlbXVsdGlwbGVtYXBwaW5ncyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHByZXNlcnZlbGFzdG1vZGlmaWVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcmluZyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqc2hhcnBjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IHJlc291cmNlIHwgZGVmaW5lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgcmVmZXJlbmNlIHwgc3JjIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGpzaGFycGMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmVyZW5jZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VyZXNwb25zZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWluY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRpdGlvbmFsbW9kdWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbjMyaWNvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHV0ZjhvdXRwdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWRlZmF1bHRyZWZlcmVuY2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9wdGltaXplICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhcmdldHR5cGUgKGV4ZSB8IGxpYnJhcnkgfCBtb2R1bGUgfCB3aW5leGUpICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdpbjMycmVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzZWN1cmVzY29waW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdXJlamF2YSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdhcm5sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmVyZW5jZWZpbGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3ltbGluayAoZmlsZXNldCkqPgorPCFBVFRMSVNUIHN5bWxpbmsKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmtmaWxlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGluayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYW50c3RydWN0dXJlIEVNUFRZPgorPCFBVFRMSVNUIGFudHN0cnVjdHVyZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNjcmlwdCAoI1BDREFUQSk+Cis8IUFUVExJU1Qgc2NyaXB0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21jcmVhdGV0YXNrIEVNUFRZPgorPCFBVFRMSVNUIGNjbWNyZWF0ZXRhc2sKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN1YnN5c3RlbSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2sgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwbGF0Zm9ybSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNjbWFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNjbWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVsZWFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcnBtIEVNUFRZPgorPCFBVFRMSVNUIHJwbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVtb3Zlc291cmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhbmJ1aWxkZGlyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbW92ZXNwZWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3BlY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b3BkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBycG1idWlsZGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZWxldGUgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBkZWxldGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZW1wdHlkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlbGV0ZW9uZXhpdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZXBsYWNlZmlsdGVyIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IHJlcGxhY2V0b2tlbiB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IHJlcGxhY2V2YWx1ZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHJlcGxhY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHlmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN1bW1hcnkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2VmaWx0ZXJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNlZmlsdGVyIEVNUFRZPgorPCFBVFRMSVNUIHJlcGxhY2VmaWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2V0b2tlbiAoI1BDREFUQSk+Cis8IUFUVExJU1QgcmVwbGFjZXRva2VuCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNldmFsdWUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHJlcGxhY2V2YWx1ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbW1ldHJpY3MgKGZpbGVzZXQgfCBqdm1hcmcgfCBjbGFzc3BhdGggfCBwYXRoIHwgc291cmNlcGF0aCkqPgorPCFBVFRMSVNUIG1tZXRyaWNzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1ldGFtYXRhaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9maWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IChjb21waWxhdGlvbi11bml0cyB8IGZpbGVzIHwgbWV0aG9kcyB8IHR5cGVzIHwgcGFja2FnZXMpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXR0cmliIChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBhdHRyaWIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHNvdXJjZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbGxlbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYWRvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsYXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2tpcGVtcHR5ZmlsZXNldHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcndhcmRzbGFzaCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBoaWRkZW4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3lzdGVtICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJjaGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3YWl0Zm9yIChpc2ZhbHNlIHwgaXNyZWZlcmVuY2UgfCBlcXVhbHMgfCBhdmFpbGFibGUgfCBub3QgfCBjb250YWlucyB8IG9zIHwgb3IgfCBhbmQgfCBmaWxlc21hdGNoIHwgY2hlY2tzdW0gfCBpc3RydWUgfCBpc3NldCB8IHNvY2tldCB8IGh0dHAgfCB1cHRvZGF0ZSkqPgorPCFBVFRMSVNUIHdhaXRmb3IKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNoZWNrZXZlcnl1bml0IChtaWxsaXNlY29uZCB8IHNlY29uZCB8IG1pbnV0ZSB8IGhvdXIgfCBkYXkgfCB3ZWVrKSAjSU1QTElFRAorICAgICAgICAgIGNoZWNrZXZlcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXh3YWl0dW5pdCAobWlsbGlzZWNvbmQgfCBzZWNvbmQgfCBtaW51dGUgfCBob3VyIHwgZGF5IHwgd2VlaykgI0lNUExJRUQKKyAgICAgICAgICBtYXh3YWl0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXNmYWxzZSBFTVBUWT4KKzwhQVRUTElTVCBpc2ZhbHNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc3JlZmVyZW5jZSBFTVBUWT4KKzwhQVRUTElTVCBpc3JlZmVyZW5jZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXF1YWxzIEVNUFRZPgorPCFBVFRMSVNUIGVxdWFscworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdHJpbSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcmcyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJnMSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXZhaWxhYmxlIChjbGFzc3BhdGggfCBmaWxlcGF0aCkqPgorPCFBVFRMSVNUIGF2YWlsYWJsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3Jlc3lzdGVtY2xhc3NlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyKSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgZmlsZXBhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBvcyBFTVBUWT4KKzwhQVRUTElTVCBvcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYW1pbHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmNoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZXNtYXRjaCBFTVBUWT4KKzwhQVRUTElTVCBmaWxlc21hdGNoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlMiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUxIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXN0cnVlIEVNUFRZPgorPCFBVFRMSVNUIGlzdHJ1ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXNzZXQgRU1QVFk+Cis8IUFUVExJU1QgaXNzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29ja2V0IEVNUFRZPgorPCFBVFRMSVNUIHNvY2tldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGh0dHAgRU1QVFk+Cis8IUFUVExJU1QgaHR0cAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdXJsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3JzYmVnaW5hdCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVwdG9kYXRlIChzcmNmaWxlcyB8IG1hcHBlcikqPgorPCFBVFRMSVNUIHVwdG9kYXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3JjZmlsZXMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHNyY2ZpbGVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1bnRhciAoZmlsZXNldCB8IHBhdHRlcm5zZXQpKj4KKzwhQVRUTElTVCB1bnRhcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb24gKG5vbmUgfCBnemlwIHwgYnppcDIpICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsb2FkcHJvcGVydGllcyAoZmlsdGVyY2hhaW4gfCBjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBsb2FkcHJvcGVydGllcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZWNob3Byb3BlcnRpZXMgKHByb3BlcnR5c2V0KSo+Cis8IUFUVExJU1QgZWNob3Byb3BlcnRpZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKHhtbCB8IHRleHQpICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganVuaXQgKGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5IHwgYm9vdGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5c2V0IHwgZW52IHwgdGVzdCB8IHBlcm1pc3Npb25zIHwganZtYXJnIHwgZm9ybWF0dGVyIHwgYmF0Y2h0ZXN0IHwgYXNzZXJ0aW9ucykqPgorPCFBVFRMSVNUIGp1bml0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JrICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGhhbHRvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByaW50c3VtbWFyeSAodHJ1ZSB8IHllcyB8IGZhbHNlIHwgbm8gfCBvbiB8IG9mZiB8IHdpdGhPdXRBbmRFcnIpICNJTVBMSUVECisgICAgICAgICAgaGFsdG9uZmFpbHVyZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsdXJlcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaG93b3V0cHV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGVtcGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVhbnRydW50aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcnRyYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9ya21vZGUgKG9uY2UgfCBwZXJUZXN0IHwgcGVyQmF0Y2gpICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxvYWRpbmcgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZm9ybWF0dGVyIEVNUFRZPgorPCFBVFRMSVNUIGZvcm1hdHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdXNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChwbGFpbiB8IHhtbCB8IGJyaWVmKSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZW5zaW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYmF0Y2h0ZXN0IChmaWxlc2V0IHwgZm9ybWF0dGVyKSo+Cis8IUFUVExJU1QgYmF0Y2h0ZXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhhbHRvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvcmsgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsdXJlcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJ0cmFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBoYWx0b25mYWlsdXJlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjaGdycCAobWFwcGVyIHwgc3JjZmlsZSB8IHRhcmdldGZpbGUgfCByZWRpcmVjdG9yIHwgZmlsZWxpc3QgfCBlbnYgfCBmaWxlc2V0IHwgZGlyc2V0IHwgYXJnKSo+Cis8IUFUVExJU1QgY2hncnAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHNvdXJjZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbGxlbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsYXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2tpcGVtcHR5ZmlsZXNldHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcndhcmRzbGFzaCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ3JvdXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZW1pc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbGlmZXhlY3V0aW9uZmFpbHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXhwYXJhbGxlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYnVuemlwMiBFTVBUWT4KKzwhQVRUTElTVCBidW56aXAyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdoaWNocmVzb3VyY2UgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIHdoaWNocmVzb3VyY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb3B5ZmlsZSBFTVBUWT4KKzwhQVRUTElTVCBjb3B5ZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZm9yY2VvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NjcmVhdGUgRU1QVFk+Cis8IUFUVExJU1QgdnNzY3JlYXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1hY3JvZGVmIChzZXF1ZW50aWFsIHwgZWxlbWVudCB8IGF0dHJpYnV0ZSB8IHRleHQpKj4KKzwhQVRUTElTVCBtYWNyb2RlZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlbGVtZW50IEVNUFRZPgorPCFBVFRMSVNUIGVsZW1lbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGltcGxpY2l0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbmFsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRleHQgRU1QVFk+Cis8IUFUVExJU1QgdGV4dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdHJpbSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25hbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1bmphciAoZmlsZXNldCB8IHBhdHRlcm5zZXQpKj4KKzwhQVRUTElTVCB1bmphcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2YmMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgcmVzb3VyY2UgfCBkZWZpbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZWZlcmVuY2UgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgdmJjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZlcmVuY2VzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcmVzcG9uc2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbW92ZWludGNoZWNrcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haW5jbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxtb2R1bGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luMzJpY29uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uc3RyaWN0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHV0ZjhvdXRwdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWRlZmF1bHRyZWZlcmVuY2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9wdGltaXplICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhcmdldHR5cGUgKGV4ZSB8IGxpYnJhcnkgfCBtb2R1bGUgfCB3aW5leGUpICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByb290bmFtZXNwYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB3aW4zMnJlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbmV4cGxpY2l0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdhcm5sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbmNvbXBhcmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBvcnRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlZmlsZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3c2RsdG9kb3RuZXQgRU1QVFk+Cis8IUFUVExJU1Qgd3NkbHRvZG90bmV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZXNwYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWtkaXIgRU1QVFk+Cis8IUFUVExJU1QgbWtkaXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb25kaXRpb24gKGlzZmFsc2UgfCBpc3JlZmVyZW5jZSB8IGVxdWFscyB8IGF2YWlsYWJsZSB8IG5vdCB8IGNvbnRhaW5zIHwgb3MgfCBvciB8IGFuZCB8IGZpbGVzbWF0Y2ggfCBjaGVja3N1bSB8IGlzdHJ1ZSB8IGlzc2V0IHwgc29ja2V0IHwgaHR0cCB8IHVwdG9kYXRlKSo+Cis8IUFUVExJU1QgY29uZGl0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZWxzZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN2cyAoY29tbWFuZGxpbmUpKj4KKzwhQVRUTElTVCBjdnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGN2c3JzaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhc3NmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdnNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVhbGx5cXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9leGVjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFnIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGVtcGZpbGUgRU1QVFk+Cis8IUFUVExJU1QgdGVtcGZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqdW5pdHJlcG9ydCAocmVwb3J0IHwgZmlsZXNldCkqPgorPCFBVFRMSVNUIGp1bml0cmVwb3J0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBvcnQgRU1QVFk+Cis8IUFUVExJU1QgcmVwb3J0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0eWxlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9ybWF0IChmcmFtZXMgfCBub2ZyYW1lcykgI0lNUExJRUQKKyAgICAgICAgICBleHRlbnNpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21rYXR0ciBFTVBUWT4KKzwhQVRUTElTVCBjY21rYXR0cgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBldmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZW5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXNrZGVmIChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCB0YXNrZGVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRhcHR0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9uZXJyb3IgKGZhaWwgfCByZXBvcnQgfCBpZ25vcmUpICNJTVBMSUVECisgICAgICAgICAgbG9hZGVycmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGFwdGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9ybWF0IChwcm9wZXJ0aWVzIHwgeG1sKSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmV2ZXJzZWxvYWRlciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlY2hvICgjUENEQVRBKT4KKzwhQVRUTElTVCBlY2hvCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGV2ZWwgKGVycm9yIHwgd2FybmluZyB8IGluZm8gfCB2ZXJib3NlIHwgZGVidWcpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2N1cGRhdGUgRU1QVFk+Cis8IUFUVExJU1QgY2N1cGRhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHByZXNlcnZldGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZW5hbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2cgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyYXBoaWNhbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN1cnJlbnR0aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamF2YSAoY2xhc3NwYXRoIHwgc3lzcHJvcGVydHkgfCByZWRpcmVjdG9yIHwgYm9vdGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5c2V0IHwgZW52IHwgcGVybWlzc2lvbnMgfCBqdm1hcmcgfCBhcmcgfCBhc3NlcnRpb25zKSo+Cis8IUFUVExJU1QgamF2YQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1hcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmsgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgamFyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bXZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlbmFtZWV4dCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgcmVuYW1lZXh0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvZXh0ZW5zaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZyb21leHRlbnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzbGFiZWwgRU1QVFk+Cis8IUFUVExJU1QgdnNzbGFiZWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYmFzZW5hbWUgRU1QVFk+Cis8IUFUVExJU1QgYmFzZW5hbWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhZG9jMiAodGFnbGV0IHwgZG9jbGV0IHwgcGFja2FnZSB8IGFyZyB8IGxpbmsgfCBkb2N0aXRsZSB8IGJvdHRvbSB8IGdyb3VwIHwgcGFja2FnZXNldCB8IGZpbGVzZXQgfCBjbGFzc3BhdGggfCBzb3VyY2VwYXRoIHwgZm9vdGVyIHwgc291cmNlIHwgYm9vdGNsYXNzcGF0aCB8IGhlYWRlciB8IGV4Y2x1ZGVwYWNrYWdlIHwgdGFnKSo+Cis8IUFUVExJU1QgamF2YWRvYzIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJvdHRvbSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBoZWFkZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9pbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhY2Nlc3MgKHByb3RlY3RlZCB8IHB1YmxpYyB8IHBhY2thZ2UgfCBwcml2YXRlKSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vcXVhbGlmaWVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHVibGljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dGhvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb290ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXRwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VleHRlcm5hbGZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcHJvdGVjdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJyZWFraXRlcmF0b3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9uYXZiYXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JvdXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rb2ZmbGluZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxwYXJhbSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmtzb3VyY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9jYWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlbm9zb3VyY2VwYWNrYWdlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJpdmF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RlcHJlY2F0ZWRsaXN0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHN0eWxlc2hlZXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcGFja2FnZW5hbWVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0cGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VuYW1lcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbmRvd3RpdGxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm90cmVlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwbGl0aW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZWxpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY3RpdGxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VyaWFsd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvbGQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBoZWxwZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc291cmNlZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRkaXJzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9oZWxwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vZGVwcmVjYXRlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdmVydmlldyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2NwIEVNUFRZPgorPCFBVFRMSVNUIHZzc2NwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCB0YXJmaWxlc2V0IHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgdGFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb24gKG5vbmUgfCBnemlwIHwgYnppcDIpICNJTVBMSUVECisgICAgICAgICAgbG9uZ2ZpbGUgKHdhcm4gfCBmYWlsIHwgdHJ1bmNhdGUgfCBnbnUgfCBvbWl0KSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFyZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgdGFyZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZWxlYWRpbmdzbGFzaGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVpZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JvdXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdpZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNldHByb3h5IEVNUFRZPgorPCFBVFRMSVNUIHNldHByb3h5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBub25wcm94eWhvc3RzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJveHlob3N0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29ja3Nwcm94eWhvc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm94eXBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb2Nrc3Byb3h5cG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJveHl1c2VyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm94eXBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaWxhc20gKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgcmVmZXJlbmNlIHwgc3JjIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGlsYXNtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvd25lciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhcmdldHR5cGUgKGV4ZSB8IGxpYnJhcnkpICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpc3RpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2V5ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvc2NoZWNrb3V0IEVNUFRZPgorPCFBVFRMSVNUIHNvc2NoZWNrb3V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzb3Nob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9qZWN0cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vY2FjaGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9jb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zY21kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhcHBseSAobWFwcGVyIHwgc3JjZmlsZSB8IHRhcmdldGZpbGUgfCByZWRpcmVjdG9yIHwgZmlsZWxpc3QgfCBlbnYgfCBmaWxlc2V0IHwgZGlyc2V0IHwgYXJnKSo+Cis8IUFUVExJU1QgYXBwbHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2tpcGVtcHR5ZmlsZXNldHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbGlmZXhlY3V0aW9uZmFpbHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIgfCBib3RoKSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZHNvdXJjZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcndhcmRzbGFzaCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVtaXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsYXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFyYWxsZWwgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2N1bmNoZWNrb3V0IEVNUFRZPgorPCFBVFRMSVNUIGNjdW5jaGVja291dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGNvcHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphcmxpYi1yZXNvbHZlIChhbnQgfCBsb2NhdGlvbiB8IHVybCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIGphcmxpYi1yZXNvbHZlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjaGVja2V4dGVuc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsb2NhdGlvbiBFTVBUWT4KKzwhQVRUTElTVCBsb2NhdGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1cmwgRU1QVFk+Cis8IUFUVExJU1QgdXJsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdnN0YWdkaWZmIChjb21tYW5kbGluZSkqPgorPCFBVFRMSVNUIGN2c3RhZ2RpZmYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGN2c3JzaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZHRhZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhc3NmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdnNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVhbGx5cXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3RhcnR0YWcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb25sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2V4ZWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdGFydGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YWcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqbGluayAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgbWVyZ2VmaWxlcyB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBhZGRmaWxlcyB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgamxpbmsKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG91dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWRkZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lcmdlZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1lcmdlZmlsZXMgKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIG1lcmdlZmlsZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhZGRmaWxlcyAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgYWRkZmlsZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhY2MgRU1QVFk+Cis8IUFUVExJU1QgamF2YWNjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1Z3BhcnNlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBqYXZhY2Nob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VsYWNoZWNrICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9wdGltaXpldG9rZW5tYW5hZ2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1vbnRva2VuYWN0aW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJ1aWxkdG9rZW5tYW5hZ2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNhbml0eWNoZWNrICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJ1aWxkcGFyc2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG90aGVyYW1iaWd1aXR5Y2hlY2sgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb29rYWhlYWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1Z2xvb2thaGVhZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjaG9pY2VhbWJpZ3VpdHljaGVjayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVuaWNvZGVpbnB1dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VyY2hhcnN0cmVhbSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1Z3Rva2VubWFuYWdlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwbGluZWNvbHVtbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZGlyZWN0b3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FjaGV0b2tlbnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgamF2YXVuaWNvZGVlc2NhcGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3RhdGljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZWNhc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlcnRva2VubWFuYWdlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnJlcG9ydGluZyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjaG1vZCAobWFwcGVyIHwgaW5jbHVkZSB8IHNyY2ZpbGUgfCBleGNsdWRlIHwgdGFyZ2V0ZmlsZSB8IHBhdHRlcm5zZXQgfCByZWRpcmVjdG9yIHwgZW52IHwgZmlsZWxpc3QgfCBmaWxlc2V0IHwgZGlyc2V0IHwgYXJnKSo+Cis8IUFUVExJU1QgY2htb2QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHNvdXJjZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZW1pc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbGlmZXhlY3V0aW9uZmFpbHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXhwYXJhbGxlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGVybSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIgfCBib3RoKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHB2Y3MgKHB2Y3Nwcm9qZWN0KSo+Cis8IUFUVExJU1QgcHZjcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlb25seSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbmZpZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB2Y3NiaW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3b3Jrc3BhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdmNzcHJvamVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVuYW1lZm9ybWF0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcmlkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwb3NpdG9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZXJldHVybmNvZGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmV2aXNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5lc3RhcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb21vdGlvbmdyb3VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHB2Y3Nwcm9qZWN0IEVNUFRZPgorPCFBVFRMSVNUIHB2Y3Nwcm9qZWN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamFybGliLW1hbmlmZXN0IChvcHRpb25zIHwgYXR0cmlidXRlIHwgZGVwZW5kcyB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIGphcmxpYi1tYW5pZmVzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3B0aW9ucyAoZmlsZXNldCB8IGxpYmZpbGVzZXQgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBvcHRpb25zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVwZW5kcyAoZmlsZXNldCB8IGxpYmZpbGVzZXQgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBkZXBlbmRzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamFyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IG1hbmlmZXN0IHwgdHlwZSB8IG1ldGFpbmYgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBpbmRleGphcnMgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgemlwZ3JvdXBmaWxlc2V0IHwgemlwZmlsZXNldCB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGphcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgd2hlbmVtcHR5IChmYWlsIHwgc2tpcCB8IGNyZWF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGR1cGxpY2F0ZSAoYWRkIHwgcHJlc2VydmUgfCBmYWlsKSAjSU1QTElFRAorICAgICAgICAgIHJvdW5kdXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc2V0bWFuaWZlc3QgKHNraXAgfCBtZXJnZSB8IG1lcmdld2l0aG91dG1haW4pICNJTVBMSUVECisgICAgICAgICAgemlwZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtsYnR5cGUgRU1QVFk+Cis8IUFUVExJU1QgY2Nta2xidHlwZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZ2xvYmFsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2hhcmVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZW5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYnJhbmNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2b2IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3JkaW5hcnkgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2NyaXB0ZGVmICgjUENEQVRBIHwgY2xhc3NwYXRoIHwgZWxlbWVudCB8IGF0dHJpYnV0ZSkqPgorPCFBVFRMSVNUIHNjcmlwdGRlZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhbmd1YWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgbG9hZGVycmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJldmVyc2Vsb2FkZXIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVmYXVsdGV4Y2x1ZGVzIEVNUFRZPgorPCFBVFRMSVNUIGRlZmF1bHRleGNsdWRlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVtb3ZlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZWNobyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtcGFyc2UgKGZpbGVzZXQgfCBqdm1hcmcgfCBjbGFzc3BhdGggfCBzb3VyY2VwYXRoKSo+Cis8IUFUVExJU1QgbXBhcnNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGVhbnVwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWV0YW1hdGFob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWdwYXJzZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1Z3NjYW5uZXIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYmxnZW5jbGllbnQgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGJsZ2VuY2xpZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZWpiamFyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGllbnRqYXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqamRvYyBFTVBUWT4KKzwhQVRUTElTVCBqamRvYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXZhY2Nob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGV4dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvbmV0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBnZW5rZXkgKGRuYW1lKSo+Cis8IUFUVExJU1QgZ2Vua2V5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdG9yZXBhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaWdhbGcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtleXBhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtleXNpemUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhbGlhcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtleWFsZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbGlkaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAga2V5c3RvcmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3RvcmV0eXBlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZG5hbWUgKHBhcmFtKSo+Cis8IUFUVExJU1QgZG5hbWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFoIChhcmcgfCBjbGFzc3BhdGggfCBjbGFzcyB8IGJvb3RjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBqYXZhaAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3R1YnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9sZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3MgRU1QVFk+Cis8IUFUVExJU1QgY2xhc3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21rZWxlbSBFTVBUWT4KKzwhQVRUTElTVCBjY21rZWxlbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmV0aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1hc3RlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbHR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3dhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jaGVja291dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2hlY2tpbiAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21yZWNvbmZpZ3VyZSBFTVBUWT4KKzwhQVRUTElTVCBjY21yZWNvbmZpZ3VyZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNjbXByb2plY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmFpbCAoI1BDREFUQSB8IGNvbmRpdGlvbikqPgorPCFBVFRMSVNUIGZhaWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0YXR1cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1bnppcCAoZmlsZXNldCB8IHBhdHRlcm5zZXQpKj4KKzwhQVRUTElTVCB1bnppcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBleHRkaXJzIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgc3JjIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IHNvdXJjZXBhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGJvb3RjbGFzc3BhdGggfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgY29tcGlsZXJhcmcgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBqYXZhYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1Z2xldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVtb3J5aW5pdGlhbHNpemUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXByZWNhdGlvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlYW50cnVudGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlamF2YXJ1bnRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRlbXBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm93YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHByb2NlZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmb3JrICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lbW9yeW1heGltdW1zaXplIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlzdGZpbGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4dGRpcnMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqcGNvdmVyYWdlIChhcmcgfCBzb2NrZXQgfCBmaWxlc2V0IHwganZtYXJnIHwgY2xhc3NwYXRoIHwgdHJpZ2dlcnMgfCBmaWx0ZXJzKSo+Cis8IUFUVExJU1QganBjb3ZlcmFnZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYXBwbGV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlY29yZGZyb21zdGFydCAoY292ZXJhZ2UgfCBub25lIHwgYWxsKSAjSU1QTElFRAorICAgICAgICAgIHZtIChqYXZhMiB8IGpkazExOCB8IGpkazExNykgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3b3JraW5nZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc25hcHNob3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZWVkbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphdmFleGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhpdHByb21wdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2FybmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmluYWxzbmFwc2hvdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHJhY2tuYXRpdmVzICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRyaWdnZXJzIChtZXRob2QpKj4KKzwhQVRUTElTVCB0cmlnZ2VycworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWV0aG9kIEVNUFRZPgorPCFBVFRMSVNUIG1ldGhvZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV2ZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFyYW0gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJzIChpbmNsdWRlIHwgZXhjbHVkZSkqPgorPCFBVFRMSVNUIGZpbHRlcnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvc2xhYmVsIEVNUFRZPgorPCFBVFRMSVNUIHNvc2xhYmVsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzb3Nob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2plY3RwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vY2FjaGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9jb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NjbWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2dldCBFTVBUWT4KKzwhQVRUTElTVCB2c3NnZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGV0aW1lc3RhbXAgKGN1cnJlbnQgfCBtb2RpZmllZCB8IHVwZGF0ZWQpICNJTVBMSUVECisgICAgICAgICAgd3JpdGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd3JpdGFibGVmaWxlcyAocmVwbGFjZSB8IHNraXAgfCBmYWlsKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlbHRyZWUgRU1QVFk+Cis8IUFUVExJU1QgZGVsdHJlZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9jb25maWcueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3M2FkZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2NvbmZpZy54bWwKQEAgLTAsMCArMSw2IEBACis8Y29uZmlnCisgICAgICAgIGhvc3Q9IiR7aG9zdH0iCisgICAgICAgIHBvcnQ9IiR7cG9ydH0iCisgICAgICAgIGJhc2VwYXRoPSIke2Jhc2VwYXRofSIKKyAgICAgICAgcHJvdG9jb2w9Imh0dHAiLz4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1vcGVuLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItb3Blbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRmYmFjNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItb3Blbi54bWwKQEAgLTAsMCArMSw1IEBACismd2VsY29tZS1vcGVuOworPGNsaWNrTGluaworICAgICAgICBkZXNjcmlwdGlvbj0iQ2xpY2sgUmVnaXN0ZXIiCisgICAgICAgIGxhYmVsPSJSZWdpc3RlciB3aXRoIE1haWxSZWFkZXIiLz4KKyAgICAgICAgJnJlZ2lzdGVyLXBhZ2U7CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXBhZ2UueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1wYWdlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDYwMWU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1wYWdlLnhtbApAQCAtMCwwICsxLDMgQEAKKzx2ZXJpZnlUaXRsZQorICAgICAgICBkZXNjcmlwdGlvbj0iUmVnaXN0cmF0aW9uIHBhZ2UgdGl0bGUiCisgICAgICAgIHRleHQ9Ik1haWxSZWFkZXIgLSBSZWdpc3RlciIvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci10cmlsbGlhbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXRyaWxsaWFuLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTYxZjA1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci10cmlsbGlhbi54bWwKQEAgLTAsMCArMSwyMSBAQAorPHNldElucHV0RmllbGQKKyAgICAgICAgZGVzY3JpcHRpb249InVzZXJuYW1lIgorICAgICAgICBuYW1lPSJ1c2VybmFtZSIKKyAgICAgICAgdmFsdWU9InRyaWxsaWFuIi8+Cis8c2V0SW5wdXRGaWVsZAorICAgICAgICBkZXNjcmlwdGlvbj0icGFzc3dvcmQiCisgICAgICAgIG5hbWU9InBhc3N3b3JkIgorICAgICAgICB2YWx1ZT0iYXN0cmEiLz4KKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJwYXNzd29yZDIiCisgICAgICAgIG5hbWU9InBhc3N3b3JkMiIKKyAgICAgICAgdmFsdWU9ImFzdHJhIi8+Cis8c2V0SW5wdXRGaWVsZAorICAgICAgICBkZXNjcmlwdGlvbj0iZnVsbE5hbWUiCisgICAgICAgIG5hbWU9ImZ1bGxOYW1lIgorICAgICAgICB2YWx1ZT0iVHJpY2lhIE1jTWlsbGlhbiIvPgorPHNldElucHV0RmllbGQKKyAgICAgICAgZGVzY3JpcHRpb249ImZyb21BZGRyZXNzIgorICAgICAgICBuYW1lPSJmcm9tQWRkcmVzcyIKKyAgICAgICAgdmFsdWU9InRyaWNpYUBtYWdyYXRoZWEuY29tIi8+CisgICAgICAgICZzYXZlLWNsaWNrOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvc2F2ZS1jbGljay54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3NhdmUtY2xpY2sueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwMmExZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3NhdmUtY2xpY2sueG1sCkBAIC0wLDAgKzEsMyBAQAorPGNsaWNrQnV0dG9uCisgICAgICAgIGRlc2NyaXB0aW9uPSJTYXZlIgorICAgICAgICBuYW1lPSJTYXZlIi8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3Rhc2tkZWYueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy90YXNrZGVmLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjRjMWRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy90YXNrZGVmLnhtbApAQCAtMCwwICsxLDI1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiID8+Cis8cHJvamVjdCBuYW1lPSJ0YXNrZGVmIj4KKyAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgIFRoaXMgcHJvamVjdCBwcm92aWRlcyBmb2xsb3dpbmcgZWxlbWVudHMgdG8gdXNlIGluIHlvdXIgdGVzdCBzY3JpcHRzOgorCisgICAgICAgICgwKSBhbGwgd2VidGVzdCdzIHN0ZXBzIGxvYWRlZCBhbmQgcmVhZHkgdG8gdXNlLAorICAgICAgICAoMSkgdGhlIHBhdGggIndlYnRlc3QucGF0aC5pZCIgdGhhdCBpbmNsdWRlcyBhbGwgb2Ygd2VidGVzdCdzCisgICAgICAgIGxpYnJhcmllcywKKyAgICAgICAgKDIpIHRoZSBjbGFzcyBsb2FkZXIgIndlYnRlc3QubG9hZGVyIiB0aGF0IGlzIHRoZSBvcmlnaW5hbCBsb2FkZXIgZm9yCisgICAgICAgIHdlYnRlc3QuCisKKyAgICAgICAgVXNhZ2U6CisgICAgICAgIFNldCB0aGUgcHJvcGVydHkgd2VidGVzdC5ob21lIHRvIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggdGhlIGJ1aWxkLnppcAorICAgICAgICBpcyBleHRyYWN0ZWQsCisgICAgICAgIGFuZCBjYWxsczoKKyAgICAgICAgJmx0O2ltcG9ydCBmaWxlPSIke3dlYnRlc3QuaG9tZX0vbGliL3Rhc2tkZWYueG1sIiAmZ3Q7CisgICAgPC9kZXNjcmlwdGlvbj4KKworICAgIDxpbXBvcnQgZmlsZT0iJHt3ZWJ0ZXN0LmhvbWV9L2xpYi9jbGFzc3BhdGgueG1sIi8+CisKKyAgICA8dGFza2RlZiByZXNvdXJjZT0id2VidGVzdC50YXNrZGVmIgorICAgICAgICAgICAgIGxvYWRlcnJlZj0id2VidGVzdC5sb2FkZXIiCisgICAgICAgICAgICAgY2xhc3NwYXRocmVmPSJ3ZWJ0ZXN0LnBhdGguaWQiCisgICAgICAgICAgICAvPgorPC9wcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvd2VsY29tZS1vcGVuLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvd2VsY29tZS1vcGVuLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDczNTMxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy93ZWxjb21lLW9wZW4ueG1sCkBAIC0wLDAgKzEsNiBAQAorPGludm9rZQorICAgICAgICBkZXNjcmlwdGlvbj0iT3BlbiB3ZWxjb21lIGFjdGlvbiIKKyAgICAgICAgdXJsPSJXZWxjb21lLmRvIi8+Cis8dmVyaWZ5VGl0bGUKKyAgICAgICAgZGVzY3JpcHRpb249IldlbGNvbWUgcGFnZSB0aXRsZSIKKyAgICAgICAgdGV4dD0iTWFpbFJlYWRlciIvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNTFlYTgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKQEAgLTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIHdlYi1hcHAgUFVCTElDICItLy9TdW4gTWljcm9zeXN0ZW1zLCBJbmMuLy9EVEQgV2ViIEFwcGxpY2F0aW9uIDIuMy8vRU4iICJodHRwOi8vamF2YS5zdW4uY29tL2R0ZC93ZWItYXBwXzJfMy5kdGQiPgorPHdlYi1hcHA+CisKKyAgICA8ZGlzcGxheS1uYW1lPlN0cnV0cyAyIE1haWxyZWFkZXI8L2Rpc3BsYXktbmFtZT4KKworICAgIDxmaWx0ZXI+CisgICAgICAgIDxmaWx0ZXItbmFtZT5TdHJ1dHMyPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPGZpbHRlci1jbGFzcz4KKyAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzMi5kaXNwYXRjaGVyLkZpbHRlckRpc3BhdGNoZXIKKyAgICAgICAgPC9maWx0ZXItY2xhc3M+CisgICAgPC9maWx0ZXI+CisKKyAgICA8ZmlsdGVyLW1hcHBpbmc+CisgICAgICAgIDxmaWx0ZXItbmFtZT5TdHJ1dHMyPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPHVybC1wYXR0ZXJuPi8qPC91cmwtcGF0dGVybj4KKyAgICA8L2ZpbHRlci1tYXBwaW5nPgorCisgICAgPCEtLSBBcHBsaWNhdGlvbiBMaXN0ZW5lciBmb3IgTWFpbHJlYWRlciBkYXRhYmFzZSAtLT4KKyAgICA8bGlzdGVuZXI+CisgICAgICAgIDxsaXN0ZW5lci1jbGFzcz4KKyAgICAgICAgICAgIERhdGFiYXNlTGlzdGVuZXIKKyAgICAgICAgPC9saXN0ZW5lci1jbGFzcz4KKyAgICA8L2xpc3RlbmVyPgorCisgICAgPHdlbGNvbWUtZmlsZS1saXN0PgorICAgICAgICA8d2VsY29tZS1maWxlPmluZGV4Lmh0bWw8L3dlbGNvbWUtZmlsZT4KKyAgICA8L3dlbGNvbWUtZmlsZS1saXN0PgorCis8L3dlYi1hcHA+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcy5zYW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE2OTc1YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZQpAQCAtMCwwICsxLDE1IEBACisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorIyB3ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlDQorIw0KKyMgVGhpcyBpcyBhbiBleGFtcGxlICJ3ZWJ0ZXN0LnByb3BlcnRpZXMiIGZpbGUsIHVzZWQgdG8gY3VzdG9taXplIGJ1aWxkaW5nIFN0cnV0cw0KKyMgZm9yIHlvdXIgbG9jYWwgZW52aXJvbm1lbnQuICBNYWtlIGFueSBjaGFuZ2VzIHlvdSBuZWVkLCBhbmQgcmVuYW1lIHRoaXMgZmlsZQ0KKyMgdG8gIndlYnRlc3QucHJvcGVydGllcyIgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgdGhlIFN0cnV0cw0KKyMgIndlYnRlc3QueG1sIiBmaWxlLg0KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCit3ZWJ0ZXN0LmhvbWUgPSAvb3B0L0Nhbm9vL3dlYnRlc3QtMS43DQoraG9zdCA9IGxvY2FsaG9zdA0KK3BvcnQgPSA4MDgwDQorYmFzZXBhdGggPSBsYWItMi0yDQord2ViYXBwcy5ob21lID0gL29wdC9BcGFjaGUvVG9tY2F0LTUuNS93ZWJhcHBzLw0KK3Jlc291cmNlLmhvbWUgPSAke3dlYmFwcHMuaG9tZX0vJHtiYXNlcGF0aH0vV0VCLUlORi9jbGFzc2VzL3Jlc291cmNlcy5wcm9wZXJ0aWVzIg0KKyMgbWFpbHJlYWRlci5ob21lID0gDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYzNDc2OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC54bWwKQEAgLTAsMCArMSwxMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIHByb2plY3QgU1lTVEVNICJlbnRpdGllcy9XZWJUZXN0LmR0ZCIgWworCisgICAgICAgIDwhRU5USVRZIHRhc2tkZWYtd2VidGVzdCBTWVNURU0gImVudGl0aWVzL3Rhc2tkZWYueG1sIj4KKyAgICAgICAgPCFFTlRJVFkgY29uZmlnIFNZU1RFTSAiZW50aXRpZXMvY29uZmlnLnhtbCI+CisKKyAgICAgICAgPCFFTlRJVFkgcmVnaXN0ZXItb3BlbiBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9yZWdpc3Rlci1vcGVuLnhtbCI+CisgICAgICAgIDwhRU5USVRZIHJlZ2lzdGVyLXBhZ2UgU1lTVEVNICJmaWxlOi4vZW50aXRpZXMvcmVnaXN0ZXItcGFnZS54bWwiPgorICAgICAgICA8IUVOVElUWSByZWdpc3Rlci10cmlsbGlhbiBTWVNURU0gImZpbGU6Li9lbnRpdGllcy9yZWdpc3Rlci10cmlsbGlhbi54bWwiPgorCisgICAgICAgIDwhRU5USVRZIHNhdmUtY2xpY2sgU1lTVEVNICJmaWxlOi4vZW50aXRpZXMvc2F2ZS1jbGljay54bWwiPgorCisgICAgICAgIDwhRU5USVRZIHdlbGNvbWUtb3BlbiBTWVNURU0gImZpbGU6Li9lbnRpdGllcy93ZWxjb21lLW9wZW4ueG1sIj4KKworICAgICAgICBdPgorCis8cHJvamVjdCBuYW1lPSJNYWlsUmVhZGVyIFRyYWluaW5nIENvdXJzZSAtIEV4ZXJjaXNlIG5hdmlnYXRpb24gYW5kIGRhdGFiYXNlIGxvZ2ljCistIENhbm9vIFdlYlRlc3RzIiBiYXNlZGlyPSIuIiBkZWZhdWx0PSJjbGVhbiI+CisKKyAgICA8IS0tCisgICAgIENhbm9vIFdlYlRlc3QgY29uZmlndXJhdGlvbiBmaWxlIHRvIHRlc3QgbmF2aWdhdGluZyBiZXR3ZWVuIHBhZ2VzIGFuZAorICAgICBjcmVhdGluZyBhbmQgZWRpdGluZyBhbiBhY2NvdW50LgorCisgICAgIFRvIHJ1biB0aGlzIHRlc3QsIGZpcnN0IGluc3RhbGwgdGhlIENhbm9vIFdlYnRlc3QgcGFja2FnZSBvbiB5b3VyCisgICAgIGxvY2FsIHN5c3RlbSBbaHR0cDovL3dlYnRlc3QuY2Fub28uY29tXS4KKworICAgICBUaGUgZGVmYXVsdCBsb2NhdGlvbiBmb3IgdGhpcyBidWlsZCBmaWxlIGlzIHVuZGVyCisgICAgICIvb3B0L0Nhbm9vL3dlYnRlc3QtMS43Ii4KKyAgICAgU2VlIHRoZSB3ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlIHRvIHVzZSBhbm90aGVyIGxvY2F0aW9uLgorCisgICAgIE9uY2UgQ2Fub28gaXMgaW5zdGFsbGVkLCB0aGUgd2VidGVzdC54bWwgZmlsZSBjYW4gYmUgcnVuIGFzIGFuIEFudCBidWlsZAorICAgICBmaWxlIChhbnQgLWYgd2VidGVzdC54bWwpLgorCisgICAgIEJ5IGRlZmF1bHQsIHRoZSB0ZXN0cyBhcmUgY29uZmlndXJlZCB0byBmaW5kIHRoZSBhcHBsaWNhdGlvbiB1bmRlciB0ZXN0CisgICAgICBhdCAiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2xpYi0yLTIiLgorICAgICBTZWUgdGhlIHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgdG8gdXNlIGFub3RoZXIgbG9jYXRpb24uCisKKyAgICAgRGVwbG95IHRoZSBhcHBsaWNhdGlvbiB0byB5b3VyIGNvbnRhaW5lciwgYW5kIHVzZSBBbnQgdG8gcnVuIHRoZQorICAgICB3ZWJ0ZXN0LnhtbC4KKworICAgICBUaGUgImNsZWFuIiB0YXJnZXQgY2FuIGJlIHJ1biB0byB0ZXN0IGV2ZXJ5dGhpbmcsIGJ1dCB3aWxsIGZhaWwgaWYgcnVuIGFnYWluLAorICAgICBzaW5jZSB0aGUgdGVzdC11c2VyIHdpbGwgYWxyZWFkeSBiZSByZWdpc3RlcmVkLgorICAgICBUaGUgImRlZmF1bHQiIHRhcmdldCBza2lwcyByZWdpc3RlcmF0aW9uIGFuZCBjYW4gYmUgcnVuIGFzIG9mdGVuIGFzIG5lZWRlZAorICAgICBhZnRlciAiY2xlYW4iIGlzIHJ1biBvbmNlLgorCisgICAgIFRvIHJlc2V0IHRoZSBYTUwgImRhdGFiYXNlIiwgZWl0aGVyIHJlZGVwbG95IHRoZSBhcHBsaWNhdGlvbiBzbyB0aGF0IHRoZQorICAgICBXRUItSU5GL2NsYXNzZXMvZGF0YWJhc2UueG1sIGlzIG92ZXJ3cml0dGVuLAorICAgICBvciB1c2UgdGhlICJjbGVhbi1kYXRhYmFzZSIgdGFyZ2V0IHRvIG92ZXJ3cml0ZSB0aGUgZmlsZS4KKyAgICAgT25seSB1c2UgImNsZWFuLWRhdGFiYXNlIiB3aGVuIHRoZSBzZXJ2ZXIgIGlzIHN0b3BwZWQsCisgICAgIGFuZCB0aGVuIHN0YXJ0IGl0IGFnYWluIGJlZm9yZSBydW5uaW5nIG90aGVyIHRhcmdldHMuCisKKyAgICAgVGhlIHRlc3RzIGFyZSBiYXNlZCBvbiBhIHNldCBvZiBNYWlsUmVhZGVyIFVzZSBDYXNlcyBtYWludGFpbmVkIGF0IHRoZQorICAgICBTdHJ1dHMgVW5pdmVyc2l0eSBzaXRlCisgICAgIFtodHRwOi8vb3BlbnNvdXJjZTIuYXRsYXNzaWFuLmNvbS9jb25mbHVlbmNlL29zcy9kaXNwbGF5L1NUUlVUUy9NYWlsUmVhZGVyXS4KKyAgICAgKi8KKyAgICAtLT4KKworICAgIDwhLS0gTG9hZCBsb2NhbCBwcmVmZXJlbmNlcywgaWYgYW55IC0tPgorICAgIDxwcm9wZXJ0eSBmaWxlPSJ3ZWJ0ZXN0LnByb3BlcnRpZXMiLz4KKworICAgIDwhLS0gVGhlc2UgcHJvcGVydGllcyBjYW4gYmUgY3VzdG9taXplZCB1c2luZyB2aWEgd2VidGVzdC5wcm9wZXJ0aWVzIC0tPgorICAgIDwhLS0gU2VlIHdlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgZm9yIGEgc3RhcnRlciBmaWxlIC0tPgorICAgIDxwcm9wZXJ0eSBuYW1lPSJ3ZWJ0ZXN0LmhvbWUiCisgICAgICAgICAgICAgIGxvY2F0aW9uPSIvb3B0L0Nhbm9vL3dlYnRlc3QtMS43Ii8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0iaG9zdCIKKyAgICAgICAgICAgICAgdmFsdWU9ImxvY2FsaG9zdCIvPgorCisgICAgPHByb3BlcnR5IG5hbWU9InBvcnQiCisgICAgICAgICAgICAgIHZhbHVlPSI4MDgwIi8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0iYmFzZXBhdGgiCisgICAgICAgICAgICAgIHZhbHVlPSJsYWItMi0yIi8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0ibWFpbHJlYWRlci5ob21lIgorICAgICAgICAgICAgICBsb2NhdGlvbj0iLi4vLi4vLi4vIi8+CisKKyAgICA8cHJvcGVydHkgbmFtZT0id2ViYXBwcy5ob21lIgorICAgICAgICAgICAgICBsb2NhdGlvbj0iL29wdC9BcGFjaGUvVG9tY2F0LTUuNS93ZWJhcHBzIi8+CisKKyAgICA8cHJvcGVydHkgZmlsZT0iJHt3ZWJhcHBzLmhvbWV9LyR7YmFzZXBhdGh9L1dFQi1JTkYvY2xhc3Nlcy9yZXNvdXJjZXMucHJvcGVydGllcyIvPgorCisKKyAgICA8dGFza2RlZiBmaWxlPSIke3dlYnRlc3QuaG9tZX0vd2VidGVzdFRhc2tkZWZzLnByb3BlcnRpZXMiPgorICAgICAgICA8Y2xhc3NwYXRoPgorICAgICAgICAgICAgPGZpbGVzZXQgZGlyPSIke3dlYnRlc3QuaG9tZX0iIGluY2x1ZGVzPSIqKi9saWIvKi5qYXIiLz4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHt3ZWJ0ZXN0LmhvbWV9IiBpbmNsdWRlcz0iKiovbGliL3J1bnRpbWUvKi5qYXIiLz4KKyAgICAgICAgPC9jbGFzc3BhdGg+CisgICAgPC90YXNrZGVmPgorCisgICAgPHRhcmdldCBuYW1lPSJjbGVhbi1kYXRhYmFzZSIKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJTZXRzIGRhdGFiYXNlLnhtbCB0byBkZWZhdWx0LiBTdG9wIHNlcnZlciwgcnVuIHRhcmdldCwgYW5kIFN0YXJ0IHNlcnZlci4iPgorICAgICAgICA8Y29weSBmaWxlPSIke21haWxyZWFkZXIuaG9tZX0vc3JjL2phdmEvZGF0YWJhc2UueG1sIgorICAgICAgICAgICAgICB0b2ZpbGU9IiR7d2ViYXBwcy5ob21lfS8ke2Jhc2VwYXRofS9XRUItSU5GL2NsYXNzZXMvZGF0YWJhc2UueG1sIgorICAgICAgICAgICAgICBvdmVyd3JpdGU9InRydWUiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gQUREIFlPVVIgVEFSR0VUUyBIRVJFIC0tPgorCisgICAgPHRhcmdldCBuYW1lPSJjbGVhbiIgZGVzY3JpcHRpb249Ik9ubHkgcnVuIGFnYWluc3QgYSBjbGVhbiBkYXRhYmFzZSIKKyAgICAgICAgICAgIGRlcGVuZHM9IlJlZ2lzdGVyIi8+CisKKyAgICA8dGFyZ2V0IG5hbWU9IlJlZ2lzdGVyIgorICAgICAgICAgICAgZGVzY3JpcHRpb249IlN1YnNjcmliZXJzIGNhbiBzdG9yZSBsb2dpbiBjcmVkZW50aWFscyBhbmQgYQorICAgICAgICAgICAgcHJpbWFyeSBlbWFpbCBjb250YWN0IHdpdGggdGhlIHN5c3RlbS4iPgorCisgICAgICAgIDx3ZWJ0ZXN0IG5hbWU9IlJlZ2lzdGVyIFRyaWxsaWFuIChNU1MpIj4KKyAgICAgICAgICAgICZjb25maWc7CisgICAgICAgICAgICA8c3RlcHM+CisgICAgICAgICAgICAgICAgJnJlZ2lzdGVyLW9wZW47CisgICAgICAgICAgICAgICAgJnJlZ2lzdGVyLXRyaWxsaWFuOworICAgICAgICAgICAgICAgIDx2ZXJpZnlUaXRsZQorICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249Ik1lbnUgcGFnZSB0aXRsZSIKKyAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ9Ik1haWxSZWFkZXIgLSBNZW51Ii8+CisgICAgICAgICAgICA8L3N0ZXBzPgorICAgICAgICA8L3dlYnRlc3Q+CisKKyAgICA8L3RhcmdldD4KKworPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvaW5kZXguaHRtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL2luZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI4ZDVmNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL2luZGV4Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+CisgICAgPE1FVEEgSFRUUC1FUVVJVj0iUmVmcmVzaCIgQ09OVEVOVD0iMDtVUkw9V2VsY29tZS5hY3Rpb24iPgorPC9oZWFkPgorCis8Ym9keT4KKzxwPkxvYWRpbmcgLi4uPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8uanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8uanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxZTc4OGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AKQEAgLTAsMCArMSwxNCBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+SGVsbG88L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxoMj4KKyAgICA8czp0ZXh0IG5hbWU9ImhlbGxvLm1lc3NhZ2UiLz4KKzwvaDI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9wYWdlcy9Mb2dpbi5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9wYWdlcy9Mb2dpbi5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzcwMzZjZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL3BhZ2VzL0xvZ2luLmpzcApAQCAtMCwwICsxLDI3IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJsb2dpbi50aXRsZSIvPgorICAgIDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9uTG9hZD0ic2VsZi5mb2N1cygpO2RvY3VtZW50LkxvZ2luX3NhdmUudXNlcm5hbWUuZm9jdXMoKSI+CisKKzxzOmFjdGlvbmVycm9yLz4KKzxzOmZvcm0gYWN0aW9uPSJMb2dpbl9zYXZlIiB2YWxpZGF0ZT0idHJ1ZSI+CisgICAgPHM6dGV4dGZpZWxkIGtleT0idXNlcm5hbWUiLz4KKworICAgIDxzOnBhc3N3b3JkIGtleT0icGFzc3dvcmQiIHNob3dQYXNzd29yZD0idHJ1ZSIvPgorCisgICAgPHM6c3VibWl0IGtleT0iU2F2ZSIvPgorCisgICAgPHM6c3VibWl0IGFjdGlvbj0iTG9naW5fY2FuY2VsIiBrZXk9ImJ1dHRvbi5jYW5jZWwiCisgICAgICAgICAgICAgIG9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCIvPgorPC9zOmZvcm0+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL3BhZ2VzL01lbnUuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvcGFnZXMvTWVudS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc0YTZmNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL3BhZ2VzL01lbnUuanNwCkBAIC0wLDAgKzEsMjcgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+Cis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHRpdGxlPgorICAgICAgICA8czp0ZXh0IG5hbWU9Im1lbnUudGl0bGUiLz4KKyAgICA8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxoMz4KKyAgICA8czp0ZXh0IG5hbWU9Im1lbnUuaGVhZGluZyIvPgorICAgIDxzOnByb3BlcnR5IHZhbHVlPSJ1c2VyLmZ1bGxOYW1lIi8+Cis8L2gzPgorPHVsPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJSZWdpc3RlciIgLz4iPgorICAgICAgICA8czp0ZXh0IG5hbWU9Im1lbnUucmVnaXN0cmF0aW9uIi8+CisgICAgPC9hPgorICAgIDwvbGk+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249IkxvZ291dCIvPiI+CisgICAgICAgIDxzOnRleHQgbmFtZT0ibWVudS5sb2dvdXQiLz4KKyAgICA8L2E+Cis8L3VsPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvcGFnZXMvTWlzc2luZy5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9wYWdlcy9NaXNzaW5nLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjFiMDhiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvcGFnZXMvTWlzc2luZy5qc3AKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD48dGl0bGU+TWlzc2luZyBGZWF0dXJlPC90aXRsZT48L2hlYWQ+CisKKzxib2R5PgorPHA+CisgICAgVGhpcyBmZWF0dXJlIGlzIHVuZGVyIGNvbnN0cnVjdGlvbi4KKyAgICBQbGVhc2UgdHJ5IGFnYWluIGluIHRoZSBuZXh0IGludGVyYXRpb24uCis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9wYWdlcy9SZWdpc3Rlci5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9wYWdlcy9SZWdpc3Rlci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI2NDdiMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcHJvZmlsZS9zcmMvd2ViYXBwL3BhZ2VzL1JlZ2lzdGVyLmpzcApAQCAtMCwwICsxLDYyIEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxzOmlmIHRlc3Q9InRhc2s9PSdDcmVhdGUnIj4KKyAgICAgICAgPHRpdGxlPgorICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlIi8+CisgICAgICAgIDwvdGl0bGU+CisgICAgPC9zOmlmPgorICAgIDxzOmlmIHRlc3Q9InRhc2s9PSdFZGl0JyI+CisgICAgICAgIDx0aXRsZT4KKyAgICAgICAgICAgIDxzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQiLz4KKyAgICAgICAgPC90aXRsZT4KKyAgICA8L3M6aWY+Cis8L2hlYWQ+CisKKzxib2R5IG9uTG9hZD0ic2VsZi5mb2N1cygpO2RvY3VtZW50LlJlZ2lzdGVyX3NhdmUudXNlcm5hbWUuZm9jdXMoKSI+CisKKzxzOmFjdGlvbmVycm9yLz4KKzxzOmZvcm0gYWN0aW9uPSJSZWdpc3Rlcl9zYXZlIiB2YWxpZGF0ZT0idHJ1ZSI+CisgICAgPHM6aGlkZGVuIG5hbWU9InRhc2siLz4KKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdDcmVhdGUnIj4KKyAgICAgICAgPHM6dGV4dGZpZWxkIGtleT0idXNlcm5hbWUiLz4KKyAgICA8L3M6aWY+CisgICAgPHM6ZWxzZT4KKyAgICAgICAgPHM6bGFiZWwga2V5PSJ1c2VybmFtZSIvPgorICAgICAgICA8czpoaWRkZW4gbmFtZT0idXNlcm5hbWUiLz4KKyAgICA8L3M6ZWxzZT4KKworICAgIDxzOnBhc3N3b3JkIGtleT0icGFzc3dvcmQiLz4KKworICAgIDxzOnBhc3N3b3JkIGtleT0icGFzc3dvcmQyIi8+CisKKyAgICA8czp0ZXh0ZmllbGQga2V5PSJmdWxsTmFtZSIvPgorCisgICAgPHM6dGV4dGZpZWxkIGtleT0iZnJvbUFkZHJlc3MiLz4KKworICAgIDxzOnRleHRmaWVsZCBrZXk9InJlcGx5VG9BZGRyZXNzIi8+CisKKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdDcmVhdGUnIj4KKyAgICAgICAgPHM6c3VibWl0IGtleT0iYnV0dG9uLnNhdmUiIGFjdGlvbj0iUmVnaXN0ZXJfY3JlYXRlIi8+CisKKyAgICAgICAgPHM6cmVzZXQga2V5PSJidXR0b24ucmVzZXQiLz4KKworICAgICAgICA8czpzdWJtaXQgYWN0aW9uPSJXZWxjb21lIiBrZXk9ImJ1dHRvbi5jYW5jZWwiCisgICAgICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4KKyAgICA8L3M6aWY+CisgICAgPHM6ZWxzZT4KKyAgICAgICAgPHM6c3VibWl0IGtleT0iYnV0dG9uLnNhdmUiLz4KKworICAgICAgICA8czpyZXNldCBrZXk9ImJ1dHRvbi5yZXNldCIvPgorCisgICAgICAgIDxzOnN1Ym1pdCBhY3Rpb249Ik1lbnUiIGtleT0iYnV0dG9uLmNhbmNlbCIKKyAgICAgICAgICAgICAgICAgIG9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCIvPgorICAgIDwvczplbHNlPgorCis8L3M6Zm9ybT4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvcGFnZXMvV2VsY29tZS5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3Byb2ZpbGUvc3JjL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzNlNTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9wcm9maWxlL3NyYy93ZWJhcHAvcGFnZXMvV2VsY29tZS5qc3AKQEAgLTAsMCArMSw1MSBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIvPgorICAgIDx0aXRsZT4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJpbmRleC50aXRsZSIvPgorICAgIDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgzPk1haWxSZWFkZXIgT3B0aW9uczwvaDM+CisKKzx1bD4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iUmVnaXN0ZXIiLz4iPgorICAgICAgICA8czp0ZXh0CisgICAgICAgICAgICAgICAgbmFtZT0iaW5kZXgucmVnaXN0cmF0aW9uIi8+CisgICAgPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249IkxvZ2luIi8+Ij4KKyAgICAgICAgPHM6dGV4dAorICAgICAgICAgICAgICAgIG5hbWU9ImluZGV4LmxvZ2luIi8+CisgICAgPC9hPjwvbGk+Cis8L3VsPgorCis8aDM+TGFuZ3VhZ2UgT3B0aW9uczwvaDM+Cis8dWw+CisgICAgPGxpPgorICAgICAgICA8czp1cmwgaWQ9ImVuIiBhY3Rpb249IldlbGNvbWUiPgorICAgICAgICAgICAgPHM6cGFyYW0gbmFtZT0icmVxdWVzdF9sb2NhbGUiPmVuPC9zOnBhcmFtPgorICAgICAgICA8L3M6dXJsPgorICAgICAgICA8czphIGhyZWY9IiV7ZW59Ij5FbmdsaXNoPC9zOmE+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICAgIDxzOnVybCBpZD0iamEiIGFjdGlvbj0iV2VsY29tZSI+CisgICAgICAgICAgICA8czpwYXJhbSBuYW1lPSJyZXF1ZXN0X2xvY2FsZSI+amE8L3M6cGFyYW0+CisgICAgICAgIDwvczp1cmw+CisgICAgICAgIDxzOmEgaHJlZj0iJXtqYX0iPkphcGFuZXNlPC9zOmE+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICAgIDxzOnVybCBpZD0icnUiIGFjdGlvbj0iV2VsY29tZSI+CisgICAgICAgICAgICA8czpwYXJhbSBuYW1lPSJyZXF1ZXN0X2xvY2FsZSI+cnU8L3M6cGFyYW0+CisgICAgICAgIDwvczp1cmw+CisgICAgICAgIDxzOmEgaHJlZj0iJXtydX0iPlJ1c3NpYW48L3M6YT4KKyAgICA8L2xpPgorPC91bD4KKworPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL01FVEEtSU5GL2NvbnRleHQueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9NRVRBLUlORi9jb250ZXh0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjZjYTM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9NRVRBLUlORi9jb250ZXh0LnhtbApAQCAtMCwwICsxLDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPENvbnRleHQgcGF0aD0iLyI+DQorPC9Db250ZXh0Pg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvcmVnaXN0ZXIuaW1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9yZWdpc3Rlci5pbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdmMDgwYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvcmVnaXN0ZXIuaW1sCkBAIC0wLDAgKzEsNjggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPG1vZHVsZSB2ZXJzaW9uPSI0IiByZWxhdGl2ZVBhdGhzPSJ0cnVlIiB0eXBlPSJKMkVFX1dFQl9NT0RVTEUiIGoyZWUtaW50ZWdyYXRpb249IlRvbWNhdCBTZXJ2ZXIiPg0KKyAgPGNvbXBvbmVudCBuYW1lPSJBcHBTZXJ2ZXJTcGVjaWZpY1ZhbGlkYXRvcnNNYW5hZ2VyIiAvPg0KKyAgPGNvbXBvbmVudCBuYW1lPSJNb2R1bGVSb290TWFuYWdlciIgLz4NCisgIDxjb21wb25lbnQgbmFtZT0iTmV3TW9kdWxlUm9vdE1hbmFnZXIiIGluaGVyaXQtY29tcGlsZXItb3V0cHV0PSJmYWxzZSI+DQorICAgIDxvdXRwdXQgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkLy4uLy4uLy4uLy4uLy4uLy4uLy4uL29wdC9BcGFjaGUvVG9tY2F0LTUuNS93ZWJhcHBzL3JlZ2lzdGVyL1dFQi1JTkYvY2xhc3NlcyIgLz4NCisgICAgPGV4Y2x1ZGUtb3V0cHV0IC8+DQorICAgIDxleHBsb2RlZCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvcmVnaXN0ZXIiIC8+DQorICAgIDxleGNsdWRlLWV4cGxvZGVkIC8+DQorICAgIDxjb250ZW50IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJCI+DQorICAgICAgPHNvdXJjZUZvbGRlciB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL2phdmEiIGlzVGVzdFNvdXJjZT0iZmFsc2UiIC8+DQorICAgICAgPHNvdXJjZUZvbGRlciB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3Rlc3QiIGlzVGVzdFNvdXJjZT0idHJ1ZSIgLz4NCisgICAgPC9jb250ZW50Pg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJpbmhlcml0ZWRKZGsiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9InNvdXJjZUZvbGRlciIgZm9yVGVzdHM9ImZhbHNlIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJTdHJ1dHMyIiBsZXZlbD0icHJvamVjdCIgLz4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ibGlicmFyeSIgbmFtZT0iTWFpbHJlYWRlci1kYW8iIGxldmVsPSJwcm9qZWN0IiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJzZXJ2bGV0LWFwaSIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeVByb3BlcnRpZXMgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJNb2R1bGVCdWlsZENvbXBvbmVudCI+DQorICAgIDxzZXR0aW5nIG5hbWU9IkVYUExPREVEX1VSTCIgdmFsdWU9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvcmVnaXN0ZXIiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkVYUExPREVEX0VOQUJMRUQiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJKQVJfVVJMIiB2YWx1ZT0iZmlsZTovLyIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iSkFSX0VOQUJMRUQiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iU1lOQ19FWFBMT0RFRF9ESVIiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJCVUlMRF9NT0RVTEVfT05fRlJBTUVfREVBQ1RJVkFUSU9OIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkJVSUxEX0VYVEVSTkFMX0RFUEVOREVOQ0lFUyIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJSVU5fSkFTUEVSX1ZBTElEQVRJT04iIHZhbHVlPSJmYWxzZSIgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJNb2R1bGVQcm9wZXJ0aWVzIj4NCisgICAgPGNvbnRhaW5lckVsZW1lbnQgdHlwZT0ibGlicmFyeSIgbmFtZT0ianVuaXQiIGxldmVsPSJhcHBsaWNhdGlvbiI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMCIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9IiZsdDtOL0EmZ3Q7IiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Ik1haWxyZWFkZXItZGFvIiBsZXZlbD0icHJvamVjdCI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9InNlcnZsZXQtYXBpIiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMCIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9IiZsdDtOL0EmZ3Q7IiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9IlN0cnV0czIiIGxldmVsPSJwcm9qZWN0Ij4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjEiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSIvV0VCLUlORi9saWIiIC8+DQorICAgIDwvY29udGFpbmVyRWxlbWVudD4NCisgICAgPGRlcGxveW1lbnREZXNjcmlwdG9yIG5hbWU9IndlYi54bWwiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbCIgb3B0aW9uYWw9ImZhbHNlIiB2ZXJzaW9uPSIyLjMiIC8+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSJjb250ZXh0LnhtbCIgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL01FVEEtSU5GL2NvbnRleHQueG1sIiBvcHRpb25hbD0iZmFsc2UiIHZlcnNpb249IjUueCIgLz4NCisgICAgPGRlcGxveW1lbnREZXNjcmlwdG9yIG5hbWU9IiIgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL01FVEEtSU5GL2NvbnRleHQueG1sIiBvcHRpb25hbD0iZmFsc2UiPg0KKyAgICAgIDxvcHRpb24gbmFtZT0iREVGQVVMVF9ESVIiIHZhbHVlPSJXRUItSU5GIiAvPg0KKyAgICAgIDxvcHRpb24gbmFtZT0iTkFNRSIgdmFsdWU9IiIgLz4NCisgICAgICA8b3B0aW9uIG5hbWU9IkRFU0NSSVBUSU9OIiB2YWx1ZT0iIiAvPg0KKyAgICA8L2RlcGxveW1lbnREZXNjcmlwdG9yPg0KKyAgICA8d2Vicm9vdHM+DQorICAgICAgPHJvb3QgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL3NyYy93ZWJhcHAiIHJlbGF0aXZlPSIvIiAvPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvamF2YSIgcmVsYXRpdmU9Ii9XRUItSU5GL3NyYy9qYXZhIiAvPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvdGVzdCIgcmVsYXRpdmU9Ii9XRUItSU5GL3NyYy90ZXN0IiAvPg0KKyAgICA8L3dlYnJvb3RzPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IldlYmxvZ2ljV2ViTW9kdWxlUHJvcGVydGllcyIgLz4NCis8L21vZHVsZT4NCisNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy9qYXZhL0RhdGFiYXNlTGlzdGVuZXIuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL2phdmEvRGF0YWJhc2VMaXN0ZW5lci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjODI5YWUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy9qYXZhL0RhdGFiYXNlTGlzdGVuZXIuamF2YQpAQCAtMCwwICsxLDIzMCBAQAorLyoNCisgKiBDb3B5cmlnaHQgMTk5OS0yMDAyLDIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyAqDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKg0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKg0KKyAqICRJZDogQXBwbGljYXRpb25MaXN0ZW5lci5qYXZhIDM3MjA4NyAyMDA2LTAxLTI1IDAzOjM4OjQyWiBjcmFpZ21jYyAkDQorICovDQorDQoraW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsNCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsNCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5pbXBsLm1lbW9yeS5NZW1vcnlVc2VyRGF0YWJhc2U7DQorDQoraW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7DQoraW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHRFdmVudDsNCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dExpc3RlbmVyOw0KK2ltcG9ydCBqYXZhLmlvLio7DQorDQorLyoqDQorICogPHA+PGNvZGU+U2VydmxldENvbnRleHRMaXN0ZW5lcjwvY29kZT4gdGhhdCBpbml0aWFsaXplcyBhbmQgZmluYWxpemVzIHRoZQ0KKyAqIHBlcnNpc3RlbnQgc3RvcmFnZSBvZiBVc2VyIGFuZCBTdWJzY3JpcHRpb24gaW5mb3JtYXRpb24gZm9yIHRoZSBTdHJ1dHMNCisgKiBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uLCB1c2luZyBhbiBpbi1tZW1vcnkgZGF0YWJhc2UgYmFja2VkIGJ5IGFuIFhNTA0KKyAqIGZpbGUuPC9wPg0KKyAqIDxwLz4NCisgKiA8cD48c3Ryb25nPklNUExFTUVOVEFUSU9OIFdBUk5JTkc8L3N0cm9uZz4gLSBJZiB0aGlzIHdlYiBhcHBsaWNhdGlvbiBpcyBydW4NCisgKiBmcm9tIGEgV0FSIGZpbGUsIG9yIGluIGFub3RoZXIgZW52aXJvbm1lbnQgd2hlcmUgcmVhZGluZyBhbmQgd3JpdGluZyBvZiB0aGUNCisgKiB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgaXMgaW1wb3NzaWJsZSwgdGhlIGluaXRpYWwgY29udGVudHMgd2lsbCBiZSBjb3BpZWQNCisgKiB0byBhIGZpbGUgaW4gdGhlIHdlYiBhcHBsaWNhdGlvbiB0ZW1wb3JhcnkgZGlyZWN0b3J5IHByb3ZpZGVkIGJ5IHRoZQ0KKyAqIGNvbnRhaW5lci4gIFRoaXMgaXMgZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMgb25seSAtIHlvdSBzaG91bGQNCisgKiA8c3Ryb25nPk5PVDwvc3Ryb25nPiBhc3N1bWUgdGhhdCBmaWxlcyB3cml0dGVuIGhlcmUgd2lsbCBzdXJ2aXZlIGEgcmVzdGFydA0KKyAqIG9mIHlvdXIgc2VydmxldCBjb250YWluZXIuPC9wPg0KKyAqIDxwLz4NCisgKiA8cD5UaGlzIGNsYXNzIHdhcyBib3Jyb3dlZCBmcm9tIHRoZSBTaGFsZSBNYWlscmVhZGVyLiBDaGFuZ2VzIHdlcmU6PC9wPg0KKyAqIDxwLz4NCisgKiA8dWw+DQorICogPHAvPg0KKyAqIDxsaT5QYXRoIHRvIGRhdGFiYXNlLnhtbCAodW5kZXIgY2xhc3NlcyBoZXJlKS4gPC9saT4NCisgKiA8cC8+DQorICogPGxpPkNsYXNzIHRvIHN0b3JlIHByb3RvY29sIGxpc3QgKGFuIGFycmF5IGhlcmUpLiA8L2xpPg0KKyAqIDxwLz4NCisgKiA8L3VsPg0KKyAqIDxwLz4NCisgKiBERVZFTE9QTUVOVCBOT1RFIC0gQW5vdGhlciBhcHByb2FjaCB3b3VsZCBiZSB0byBpbnN0YW50aWF0ZSB0aGUgZGF0YWJhc2UgdmlhIFNwcmluZy4NCisgKiA8L3A+DQorICovDQorDQorcHVibGljIGZpbmFsIGNsYXNzIERhdGFiYXNlTGlzdGVuZXIgaW1wbGVtZW50cyBTZXJ2bGV0Q29udGV4dExpc3RlbmVyIHsNCisNCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1hbmlmZXN0IENvbnN0YW50cw0KKw0KKw0KKyAgICAvKioNCisgICAgICogPHA+QXBwaWNhdGlvbiBzY29wZSBhdHRyaWJ1dGUga2V5IHVuZGVyIHdoaWNoIHRoZSBpbi1tZW1vcnkgdmVyc2lvbiBvZg0KKyAgICAgKiBvdXIgZGF0YWJhc2UgaXMgc3RvcmVkLjwvcD4NCisgICAgICovDQorICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFCQVNFX0tFWSA9ICJkYXRhYmFzZSI7DQorDQorDQorICAgIC8qKg0KKyAgICAgKiA8cD5BcHBsaWNhdGlvbiBzY29wZSBhdHRyaWJ1dGUga2V5IHVuZGVyIHdoaWNoIHRoZSB2YWxpZCBzZWxlY3Rpb24NCisgICAgICogaXRlbXMgZm9yIHRoZSBwcm90b2NvbCBwcm9wZXJ0eSBpcyBzdG9yZWQuPC9wPg0KKyAgICAgKi8NCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUFJPVE9DT0xTX0tFWSA9ICJwcm90b2NvbHMiOw0KKw0KKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSW5zdGFuY2UgVmFyaWFibGVzDQorDQorDQorICAgIC8qKg0KKyAgICAgKiA8cD5UaGUgPGNvZGU+U2VydmxldENvbnRleHQ8L2NvZGU+IGZvciB0aGlzIHdlYiBhcHBsaWNhdGlvbi48L3A+DQorICAgICAqLw0KKyAgICBwcml2YXRlIFNlcnZsZXRDb250ZXh0IGNvbnRleHQgPSBudWxsOw0KKw0KKw0KKyAgICAvKioNCisgICAgICogVGhlIHtAbGluayBNZW1vcnlVc2VyRGF0YWJhc2V9IG9iamVjdCB3ZSBjb25zdHJ1Y3QgYW5kIG1ha2UgYXZhaWxhYmxlLg0KKyAgICAgKi8NCisgICAgcHJpdmF0ZSBNZW1vcnlVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBudWxsOw0KKw0KKw0KKyAgICAvKioNCisgICAgICogPHA+TG9nZ2luZyBvdXRwdXQgZm9yIHRoaXMgcGx1ZyBpbiBpbnN0YW5jZS48L3A+DQorICAgICAqLw0KKyAgICBwcml2YXRlIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyh0aGlzLmdldENsYXNzKCkpOw0KKw0KKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3BlcnRpZXMNCisNCisNCisgICAgLyoqDQorICAgICAqIDxwPlRoZSB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCBvZiBvdXIgcGVyc2lzdGVudCBkYXRhYmFzZSBzdG9yYWdlDQorICAgICAqIGZpbGUuPC9wPg0KKyAgICAgKi8NCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0aG5hbWUgPSAiL1dFQi1JTkYvY2xhc3Nlcy9kYXRhYmFzZS54bWwiOw0KKw0KKyAgICAvKioNCisgICAgICogPHA+UmV0dXJuIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIHRvIHRoZSBkYXRhYmFzZS48L3A+DQorICAgICAqDQorICAgICAqIEByZXR1cm4gYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCBwYXRoIHRvIHRoZSBkYXRhYmFzZQ0KKyAgICAgKi8NCisgICAgcHVibGljIFN0cmluZyBnZXRQYXRobmFtZSgpIHsNCisgICAgICAgIHJldHVybiAodGhpcy5wYXRobmFtZSk7DQorICAgIH0NCisNCisgICAgLyoqDQorICAgICAqIDxwPlNldCB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCB0byB0aGUgZGF0YWJhc2UuPC9wPg0KKyAgICAgKg0KKyAgICAgKiBAcGFyYW0gcGF0aG5hbWUgdG8gdGhlIGRhdGFiYXNlDQorICAgICAqLw0KKyAgICBwdWJsaWMgdm9pZCBzZXRQYXRobmFtZShTdHJpbmcgcGF0aG5hbWUpIHsNCisgICAgICAgIHRoaXMucGF0aG5hbWUgPSBwYXRobmFtZTsNCisgICAgfQ0KKw0KKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2VydmxldENvbnRleHRMaXN0ZW5lciBNZXRob2RzDQorDQorDQorICAgIC8qKg0KKyAgICAgKiA8cD5HcmFjZWZ1bGx5IHNodXQgZG93biB0aGlzIGRhdGFiYXNlLCByZWxlYXNpbmcgYW55IHJlc291cmNlcyB0aGF0DQorICAgICAqIHdlcmUgYWxsb2NhdGVkIGF0IGluaXRpYWxpemF0aW9uLjwvcD4NCisgICAgICoNCisgICAgICogQHBhcmFtIGV2ZW50IFNlcnZsZXRDb250ZXh0RXZlbnQgdG8gcHJvY2Vzcw0KKyAgICAgKi8NCisgICAgcHVibGljIHZvaWQgY29udGV4dERlc3Ryb3llZChTZXJ2bGV0Q29udGV4dEV2ZW50IGV2ZW50KSB7DQorDQorICAgICAgICBsb2cuaW5mbygiRmluYWxpemluZyBtZW1vcnkgZGF0YWJhc2UgcGx1ZyBpbiIpOw0KKw0KKyAgICAgICAgaWYgKGRhdGFiYXNlICE9IG51bGwpIHsNCisgICAgICAgICAgICB0cnkgew0KKyAgICAgICAgICAgICAgICBkYXRhYmFzZS5jbG9zZSgpOw0KKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7DQorICAgICAgICAgICAgICAgIGxvZy5lcnJvcigiQ2xvc2luZyBtZW1vcnkgZGF0YWJhc2UiLCBlKTsNCisgICAgICAgICAgICB9DQorICAgICAgICB9DQorDQorICAgICAgICBjb250ZXh0LnJlbW92ZUF0dHJpYnV0ZShEQVRBQkFTRV9LRVkpOw0KKyAgICAgICAgY29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoUFJPVE9DT0xTX0tFWSk7DQorICAgICAgICBkYXRhYmFzZSA9IG51bGw7DQorICAgICAgICBjb250ZXh0ID0gbnVsbDsNCisNCisgICAgfQ0KKw0KKw0KKyAgICAvKioNCisgICAgICogPHA+SW5pdGlhbGl6ZSBhbmQgbG9hZCBvdXIgaW5pdGlhbCBkYXRhYmFzZSBmcm9tIHBlcnNpc3RlbnQNCisgICAgICogc3RvcmFnZS48L3A+DQorICAgICAqDQorICAgICAqIEBwYXJhbSBldmVudCBUaGUgY29udGV4dCBpbml0aWFsaXphdGlvbiBldmVudA0KKyAgICAgKi8NCisgICAgcHVibGljIHZvaWQgY29udGV4dEluaXRpYWxpemVkKFNlcnZsZXRDb250ZXh0RXZlbnQgZXZlbnQpIHsNCisNCisgICAgICAgIGxvZy5pbmZvKCJJbml0aWFsaXppbmcgbWVtb3J5IGRhdGFiYXNlIHBsdWcgaW4gZnJvbSAnIiArDQorICAgICAgICAgICAgICAgIHBhdGhuYW1lICsgIiciKTsNCisNCisgICAgICAgIC8vIFJlbWVtYmVyIG91ciBhc3NvY2lhdGVkIFNlcnZsZXRDb250ZXh0DQorICAgICAgICB0aGlzLmNvbnRleHQgPSBldmVudC5nZXRTZXJ2bGV0Q29udGV4dCgpOw0KKw0KKyAgICAgICAgLy8gQ29uc3RydWN0IGEgbmV3IGRhdGFiYXNlIGFuZCBtYWtlIGl0IGF2YWlsYWJsZQ0KKyAgICAgICAgZGF0YWJhc2UgPSBuZXcgTWVtb3J5VXNlckRhdGFiYXNlKCk7DQorICAgICAgICB0cnkgew0KKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gY2FsY3VsYXRlUGF0aCgpOw0KKyAgICAgICAgICAgIGlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkgew0KKyAgICAgICAgICAgICAgICBsb2cuZGVidWcoIiBMb2FkaW5nIGRhdGFiYXNlIGZyb20gJyIgKyBwYXRoICsgIiciKTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgZGF0YWJhc2Uuc2V0UGF0aG5hbWUocGF0aCk7DQorICAgICAgICAgICAgZGF0YWJhc2Uub3BlbigpOw0KKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsNCisgICAgICAgICAgICBsb2cuZXJyb3IoIk9wZW5pbmcgbWVtb3J5IGRhdGFiYXNlIiwgZSk7DQorICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ2Fubm90IGxvYWQgZGF0YWJhc2UgZnJvbSAnIiArDQorICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSArICInOiAiICsgZSk7DQorICAgICAgICB9DQorICAgICAgICBjb250ZXh0LnNldEF0dHJpYnV0ZShEQVRBQkFTRV9LRVksIGRhdGFiYXNlKTsNCisNCisgICAgfQ0KKw0KKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcml2YXRlIE1ldGhvZHMNCisNCisNCisgICAgLyoqDQorICAgICAqIDxwPkNhbGN1bGF0ZSBhbmQgcmV0dXJuIGFuIGFic29sdXRlIHBhdGhuYW1lIHRvIHRoZSBYTUwgZmlsZSB0byBjb250YWluDQorICAgICAqIG91ciBwZXJzaXN0ZW50IHN0b3JhZ2UgaW5mb3JtYXRpb24uPC9wPg0KKyAgICAgKg0KKyAgICAgKiBAcmV0dXJuIEFic29sdXRlIHBhdGggdG8gWE1MIGZpbGUuDQorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMNCisgICAgICovDQorICAgIHByaXZhdGUgU3RyaW5nIGNhbGN1bGF0ZVBhdGgoKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisNCisgICAgICAgIC8vIENhbiB3ZSBhY2Nlc3MgdGhlIGRhdGFiYXNlIHZpYSBmaWxlIEkvTz8NCisgICAgICAgIFN0cmluZyBwYXRoID0gY29udGV4dC5nZXRSZWFsUGF0aChwYXRobmFtZSk7DQorICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7DQorICAgICAgICAgICAgcmV0dXJuIChwYXRoKTsNCisgICAgICAgIH0NCisNCisgICAgICAgIC8vIERvZXMgYSBjb3B5IG9mIHRoaXMgZmlsZSBhbHJlYWR5IGV4aXN0IGluIG91ciB0ZW1wb3JhcnkgZGlyZWN0b3J5DQorICAgICAgICBGaWxlIGRpciA9IChGaWxlKQ0KKyAgICAgICAgICAgICAgICBjb250ZXh0LmdldEF0dHJpYnV0ZSgiamF2YXguc2VydmxldC5jb250ZXh0LnRlbXBkaXIiKTsNCisgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKGRpciwgInN0cnV0cy1leGFtcGxlLWRhdGFiYXNlLnhtbCIpOw0KKyAgICAgICAgaWYgKGZpbGUuZXhpc3RzKCkpIHsNCisgICAgICAgICAgICByZXR1cm4gKGZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgLy8gQ29weSB0aGUgc3RhdGljIHJlc291cmNlIHRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHJldHVybiBpdHMgcGF0aA0KKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPQ0KKyAgICAgICAgICAgICAgICBjb250ZXh0LmdldFJlc291cmNlQXNTdHJlYW0ocGF0aG5hbWUpOw0KKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiaXMgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcywgMTAyNCk7DQorICAgICAgICBGaWxlT3V0cHV0U3RyZWFtIG9zID0NCisgICAgICAgICAgICAgICAgbmV3IEZpbGVPdXRwdXRTdHJlYW0oZmlsZSk7DQorICAgICAgICBCdWZmZXJlZE91dHB1dFN0cmVhbSBib3MgPSBuZXcgQnVmZmVyZWRPdXRwdXRTdHJlYW0ob3MsIDEwMjQpOw0KKyAgICAgICAgYnl0ZSBidWZmZXJbXSA9IG5ldyBieXRlWzEwMjRdOw0KKyAgICAgICAgd2hpbGUgKHRydWUpIHsNCisgICAgICAgICAgICBpbnQgbiA9IGJpcy5yZWFkKGJ1ZmZlcik7DQorICAgICAgICAgICAgaWYgKG4gPD0gMCkgew0KKyAgICAgICAgICAgICAgICBicmVhazsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgYm9zLndyaXRlKGJ1ZmZlciwgMCwgbik7DQorICAgICAgICB9DQorICAgICAgICBib3MuY2xvc2UoKTsNCisgICAgICAgIGJpcy5jbG9zZSgpOw0KKyAgICAgICAgcmV0dXJuIChmaWxlLmdldEFic29sdXRlUGF0aCgpKTsNCisNCisgICAgfQ0KKw0KKw0KK30NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy9qYXZhL0hlbGxvLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy9qYXZhL0hlbGxvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDBhMTM5ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL2phdmEvSGVsbG8uamF2YQpAQCAtMCwwICsxLDE2IEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uU3VwcG9ydDsNCisNCisvKioNCisgKiBFeGFtcGxlIEFjdGlvbiBjbGFzcy4NCisgKi8NCitwdWJsaWMgY2xhc3MgSGVsbG8gZXh0ZW5kcyBBY3Rpb25TdXBwb3J0IHsNCisNCisgICAgLyoqDQorICAgICAqIEFuIGV4YW1wbGUgaW1wbGVtZW50YXRpb24gdGhhdCBkb2VzIG5vdGhpbmcgYW5kIHJldHVybnMgInN1Y2Nlc3MiLg0KKyAgICAgKg0KKyAgICAgKiBAcmV0dXJuIHtAbGluayAjU1VDQ0VTU30NCisgICAgICovDQorICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24gew0KKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7DQorICAgIH0NCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9zcmMvamF2YS9NYWlsUmVhZGVyU3VwcG9ydC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9zcmMvamF2YS9NYWlsUmVhZGVyU3VwcG9ydC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwYjZkOTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy9qYXZhL01haWxSZWFkZXJTdXBwb3J0LmphdmEKQEAgLTAsMCArMSwxNDEgQEAKK2ltcG9ydCBjb20ub3BlbnN5bXBob255LnV0aWwuQmVhblV0aWxzOw0KK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25TdXBwb3J0Ow0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbjsNCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOw0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXJEYXRhYmFzZTsNCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmludGVyY2VwdG9yLkFwcGxpY2F0aW9uQXdhcmU7DQorDQoraW1wb3J0IGphdmEudXRpbC5NYXA7DQorDQorcHVibGljIGNsYXNzIE1haWxSZWFkZXJTdXBwb3J0IGV4dGVuZHMgQWN0aW9uU3VwcG9ydCBpbXBsZW1lbnRzIEFwcGxpY2F0aW9uQXdhcmUgew0KKw0KKyAgICAvLyAtLS0tIFJlZ2lzdGVyIGZvcm0gcHJvcGVydGllcyAtLS0tDQorDQorICAgIHByaXZhdGUgU3RyaW5nIHVzZXJuYW1lID0gbnVsbDsNCisNCisgICAgcHVibGljIFN0cmluZyBnZXRVc2VybmFtZSgpIHsNCisgICAgICAgIHJldHVybiB1c2VybmFtZTsNCisgICAgfQ0KKw0KKyAgICBwdWJsaWMgdm9pZCBzZXRVc2VybmFtZShTdHJpbmcgdmFsdWUpIHsNCisgICAgICAgIHVzZXJuYW1lID0gdmFsdWU7DQorICAgIH0NCisNCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQgPSBudWxsOw0KKw0KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkKCkgew0KKyAgICAgICAgcmV0dXJuIHBhc3N3b3JkOw0KKyAgICB9DQorDQorICAgIHB1YmxpYyB2b2lkIHNldFBhc3N3b3JkKFN0cmluZyB2YWx1ZSkgew0KKyAgICAgICAgcGFzc3dvcmQgPSB2YWx1ZTsNCisgICAgfQ0KKw0KKyAgICBwcml2YXRlIFN0cmluZyBwYXNzd29yZDIgPSBudWxsOw0KKw0KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkMigpIHsNCisgICAgICAgIHJldHVybiBwYXNzd29yZDI7DQorICAgIH0NCisNCisgICAgcHVibGljIHZvaWQgc2V0UGFzc3dvcmQyKFN0cmluZyB2YWx1ZSkgew0KKyAgICAgICAgcGFzc3dvcmQyID0gdmFsdWU7DQorICAgIH0NCisNCisgICAgcHJpdmF0ZSBTdHJpbmcgZnVsbE5hbWUgPSBudWxsOw0KKw0KKyAgICBwdWJsaWMgU3RyaW5nIGdldEZ1bGxOYW1lKCkgew0KKyAgICAgICAgcmV0dXJuIGZ1bGxOYW1lOw0KKyAgICB9DQorDQorICAgIHB1YmxpYyB2b2lkIHNldEZ1bGxOYW1lKFN0cmluZyB2YWx1ZSkgew0KKyAgICAgICAgZnVsbE5hbWUgPSB2YWx1ZTsNCisgICAgfQ0KKw0KKyAgICBwcml2YXRlIFN0cmluZyBmcm9tQWRkcmVzcyA9IG51bGw7DQorDQorICAgIHB1YmxpYyBTdHJpbmcgZ2V0RnJvbUFkZHJlc3MoKSB7DQorICAgICAgICByZXR1cm4gZnJvbUFkZHJlc3M7DQorICAgIH0NCisNCisgICAgcHVibGljIHZvaWQgc2V0RnJvbUFkZHJlc3MoU3RyaW5nIHZhbHVlKSB7DQorICAgICAgICBmcm9tQWRkcmVzcyA9IHZhbHVlOw0KKyAgICB9DQorDQorICAgIHByaXZhdGUgU3RyaW5nIHJlcGx5VG9BZGRyZXNzID0gbnVsbDsNCisNCisgICAgcHVibGljIFN0cmluZyBnZXRSZXBseVRvQWRkcmVzcygpIHsNCisgICAgICAgIHJldHVybiByZXBseVRvQWRkcmVzczsNCisgICAgfQ0KKw0KKyAgICBwdWJsaWMgdm9pZCBzZXRSZXBseVRvQWRkcmVzcyhTdHJpbmcgdmFsdWUpIHsNCisgICAgICAgIHJlcGx5VG9BZGRyZXNzID0gdmFsdWU7DQorICAgIH0NCisNCisgICAgLy8gLS0tLSBLZXlzIC0tLS0NCisNCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQUJBU0VfS0VZID0gImRhdGFiYXNlIjsNCisNCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVNFUl9LRVkgPSAidXNlciI7DQorDQorICAgIC8vIC0tLS0gTWVzc2FnZXMgLS0tLQ0KKw0KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9EQVRBQkFTRV9NSVNTSU5HID0NCisgICAgICAgICAgICAiRGF0YWJhc2UgaXMgbWlzc2luZyI7DQorDQorICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIEVSUk9SX1VTRVJOQU1FX1VOSVFVRSA9DQorICAgICAgICAgICAgIlRoYXQgdXNlcm5hbWUgaXMgYWxyZWFkeSBpbiB1c2UgLSBwbGVhc2Ugc2VsZWN0IGFub3RoZXIiOw0KKw0KKyAgICAvLyAtLS0tIEFwcGxpY2F0aW9uQXdhcmUgLS0tLQ0KKw0KKyAgICBwcml2YXRlIE1hcCBhcHBsaWNhdGlvbjsNCisNCisgICAgcHVibGljIHZvaWQgc2V0QXBwbGljYXRpb24oTWFwIHZhbHVlKSB7DQorICAgICAgICBhcHBsaWNhdGlvbiA9IHZhbHVlOw0KKyAgICB9DQorDQorICAgIHB1YmxpYyBNYXAgZ2V0QXBwbGljYXRpb24oKSB7DQorICAgICAgICByZXR1cm4gYXBwbGljYXRpb247DQorICAgIH0NCisNCisgICAgLy8gLS0tLSBEYXRhYmFzZSBwcm9wZXJ0eSAtLS0tDQorDQorICAgIHB1YmxpYyBVc2VyRGF0YWJhc2UgZ2V0RGF0YWJhc2UoKSB7DQorICAgICAgICBPYmplY3QgZGIgPSBnZXRBcHBsaWNhdGlvbigpLmdldChEQVRBQkFTRV9LRVkpOw0KKyAgICAgICAgaWYgKGRiID09IG51bGwpIHsNCisgICAgICAgICAgICB0aGlzLmFkZEFjdGlvbkVycm9yKEVSUk9SX0RBVEFCQVNFX01JU1NJTkcpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgcmV0dXJuIChVc2VyRGF0YWJhc2UpIGRiOw0KKyAgICB9DQorDQorICAgIHB1YmxpYyB2b2lkIHNldERhdGFiYXNlKFVzZXJEYXRhYmFzZSBkYXRhYmFzZSkgew0KKyAgICAgICAgZ2V0QXBwbGljYXRpb24oKS5wdXQoREFUQUJBU0VfS0VZLCBkYXRhYmFzZSk7DQorICAgIH0NCisNCisgICAgLy8gLS0tLSBEYXRhYmFzZSBtZXRob2RzIC0tLS0NCisNCisgICAgcHVibGljIFVzZXIgZmluZFVzZXIoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpDQorICAgICAgICAgICAgdGhyb3dzIEV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbiB7DQorICAgICAgICByZXR1cm4gZ2V0RGF0YWJhc2UoKS5maW5kVXNlcih1c2VybmFtZSk7DQorICAgIH0NCisNCisgICAgcHVibGljIFVzZXIgY3JlYXRlVXNlcihTdHJpbmcgdXNlcm5hbWUsIFN0cmluZyBwYXNzd29yZCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorDQorICAgICAgICBVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBnZXREYXRhYmFzZSgpOw0KKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuZmluZFVzZXIodXNlcm5hbWUpOw0KKw0KKyAgICAgICAgaWYgKHVzZXIgIT0gbnVsbCkgew0KKyAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKEVSUk9SX1VTRVJOQU1FX1VOSVFVRSk7DQorICAgICAgICAgICAgcmV0dXJuIG51bGw7DQorICAgICAgICB9DQorDQorICAgICAgICB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcih1c2VybmFtZSk7DQorICAgICAgICBCZWFuVXRpbHMuc2V0VmFsdWVzKHVzZXIsIHRoaXMsIG51bGwpOw0KKw0KKyAgICAgICAgcmV0dXJuIHVzZXI7DQorICAgIH0NCisNCisgICAgcHVibGljIHZvaWQgc2F2ZVVzZXIoKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisgICAgICAgIGdldERhdGFiYXNlKCkuc2F2ZSgpOw0KKyAgICB9DQorDQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL2phdmEvUmVnaXN0ZXIuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL2phdmEvUmVnaXN0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Yjc4NGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9zcmMvamF2YS9SZWdpc3Rlci5qYXZhCkBAIC0wLDAgKzEsMjMgQEAKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7DQorDQorcHVibGljIGNsYXNzIFJlZ2lzdGVyIGV4dGVuZHMgTWFpbFJlYWRlclN1cHBvcnQgew0KKw0KKyAgICBwdWJsaWMgU3RyaW5nIHNhdmUoKQ0KKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24gew0KKw0KKyAgICAgICAgVXNlciB1c2VyID0gZmluZFVzZXIoZ2V0VXNlcm5hbWUoKSwgZ2V0UGFzc3dvcmQoKSk7DQorICAgICAgICBib29sZWFuIGhhdmVVc2VyID0gKHVzZXIgIT0gbnVsbCk7DQorDQorICAgICAgICBpZiAoaGF2ZVVzZXIpIHsNCisgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihFUlJPUl9VU0VSTkFNRV9VTklRVUUpOw0KKyAgICAgICAgICAgIHJldHVybiBJTlBVVDsNCisgICAgICAgIH0NCisNCisgICAgICAgIGNyZWF0ZVVzZXIoZ2V0VXNlcm5hbWUoKSwgZ2V0UGFzc3dvcmQoKSk7DQorDQorICAgICAgICBzYXZlVXNlcigpOw0KKw0KKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7DQorICAgIH0NCisNCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9zcmMvamF2YS9kYXRhYmFzZS54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy9qYXZhL2RhdGFiYXNlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzEwNDc3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9zcmMvamF2YS9kYXRhYmFzZS54bWwKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0nMS4wJz8+DQorPGRhdGFiYXNlPg0KKyAgICA8dXNlciB1c2VybmFtZT0idXNlciIgZnJvbUFkZHJlc3M9IkpvaG4uVXNlckBzb21ld2hlcmUuY29tIg0KKyAgICAgICAgICBmdWxsTmFtZT0iSm9obiBRLiBVc2VyIiBwYXNzd29yZD0icGFzcyI+DQorICAgICAgICA8c3Vic2NyaXB0aW9uIGhvc3Q9Im1haWwuaG90bWFpbC5jb20iIGF1dG9Db25uZWN0PSJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ9ImJhciIgdHlwZT0icG9wMyIgdXNlcm5hbWU9InVzZXIxMjM0Ij4NCisgICAgICAgIDwvc3Vic2NyaXB0aW9uPg0KKyAgICAgICAgPHN1YnNjcmlwdGlvbiBob3N0PSJtYWlsLnlhaG9vLmNvbSIgYXV0b0Nvbm5lY3Q9ImZhbHNlIiBwYXNzd29yZD0iZm9vIg0KKyAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJpbWFwIiB1c2VybmFtZT0ianF1c2VyIj4NCisgICAgICAgIDwvc3Vic2NyaXB0aW9uPg0KKyAgICA8L3VzZXI+DQorPC9kYXRhYmFzZT4NCisgICAgICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL2phdmEvcmVzb3VyY2VzLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy9qYXZhL3Jlc291cmNlcy5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1NzdiMTcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy9qYXZhL3Jlc291cmNlcy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMiBAQAoraGVsbG8ubWVzc2FnZSA9IENvbmdyYXR1bGF0aW9ucyEgU3RydXRzIGlzIHVwIGFuZCBydW5uaW5nIC4uLg0KKyMgQWRkIHlvdXIgbWVzc2FnZXMgaGVyZSAuLi4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy9qYXZhL3N0cnV0cy54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy9qYXZhL3N0cnV0cy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmIxY2UwNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL2phdmEvc3RydXRzLnhtbApAQCAtMCwwICsxLDM2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4NCis8IURPQ1RZUEUgc3RydXRzIFBVQkxJQw0KKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMi4wLy9FTiINCisgICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtMi4wLmR0ZCI+DQorDQorPHN0cnV0cz4NCisgICAgPGNvbnN0YW50IG5hbWU9InN0cnV0cy5kZXZNb2RlIiB2YWx1ZT0idHJ1ZSIvPg0KKyAgICA8Y29uc3RhbnQgbmFtZT0ic3RydXRzLmVuYWJsZS5EeW5hbWljTWV0aG9kSW52b2NhdGlvbiIgdmFsdWU9ImZhbHNlIi8+DQorDQorICAgIDxwYWNrYWdlIG5hbWU9ImRlZmF1bHQiIGV4dGVuZHM9InN0cnV0cy1kZWZhdWx0Ij4NCisNCisgICAgICAgIDxkZWZhdWx0LWFjdGlvbi1yZWYgbmFtZT0iTWlzc2luZyIvPg0KKw0KKyAgICAgICAgPGFjdGlvbiBuYW1lPSJIZWxsbyIgY2xhc3M9IkhlbGxvIj4NCisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9IZWxsby5qc3A8L3Jlc3VsdD4NCisgICAgICAgIDwvYWN0aW9uPg0KKw0KKyAgICAgICAgPGFjdGlvbiBuYW1lPSJNaXNzaW5nIj4NCisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9NaXNzaW5nLmpzcDwvcmVzdWx0Pg0KKyAgICAgICAgPC9hY3Rpb24+DQorDQorICAgICAgICA8YWN0aW9uIG5hbWU9IldlbGNvbWUiPg0KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL1dlbGNvbWUuanNwPC9yZXN1bHQ+DQorICAgICAgICA8L2FjdGlvbj4NCisNCisgICAgICAgIDxhY3Rpb24gbmFtZT0iUmVnaXN0ZXIiIGNsYXNzPSJSZWdpc3RlciIgbWV0aG9kPSJpbnB1dCI+DQorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL1JlZ2lzdGVyLmpzcDwvcmVzdWx0Pg0KKyAgICAgICAgPC9hY3Rpb24+DQorDQorICAgICAgICA8YWN0aW9uIG5hbWU9IlJlZ2lzdGVyX3NhdmUiIGNsYXNzPSJSZWdpc3RlciIgbWV0aG9kPSJzYXZlIj4NCisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvUmVnaXN0ZXIuanNwPC9yZXN1bHQ+DQorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvTWlzc2luZy5qc3A8L3Jlc3VsdD4NCisgICAgICAgIDwvYWN0aW9uPg0KKw0KKyAgICA8L3BhY2thZ2U+DQorPC9zdHJ1dHM+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9zcmMvdGVzdC9IZWxsb1Rlc3QuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL3Rlc3QvSGVsbG9UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk1ZjBiOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL3Rlc3QvSGVsbG9UZXN0LmphdmEKQEAgLTAsMCArMSwxNiBAQAoraW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsNCisNCisvKioNCisgKiBBbiBleGFtcGxlIHRleHQgY2xhc3MgdG8gdmVyaWZ5IHRoZSBjb25maWd1cmF0aW9uLg0KKyAqLw0KK3B1YmxpYyBjbGFzcyBIZWxsb1Rlc3QgZXh0ZW5kcyBUZXN0Q2FzZSB7DQorDQorICAgIC8qKg0KKyAgICAgKiBBbiBleGFtcGxlIHRlc3QgdGhhdCBhc3NlcnRzIHRydWUuDQorICAgICAqDQorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIE9uIGludmFsaWQgYXNzZXJ0aW9ucw0KKyAgICAgKi8NCisgICAgcHVibGljIHZvaWQgdGVzdEhlbGxvQWN0aW9uKCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorICAgICAgICBhc3NlcnRUcnVlKHRydWUpOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL3Rlc3QvUmVnaXN0ZXJUZXN0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy90ZXN0L1JlZ2lzdGVyVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2OTAyYmIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy90ZXN0L1JlZ2lzdGVyVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzQgQEAKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb247DQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsNCisNCitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7DQorDQorcHVibGljIGNsYXNzIFJlZ2lzdGVyVGVzdCBleHRlbmRzIFJldGFpblRlc3Qgew0KKw0KKyAgICBSZWdpc3RlciBhY3Rpb24gPSBudWxsOw0KKw0KKyAgICBwdWJsaWMgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24gew0KKyAgICAgICAgc3VwZXIuc2V0VXAoKTsNCisgICAgICAgIGFjdGlvbiA9IG5ldyBSZWdpc3RlcigpOw0KKyAgICAgICAgYWN0aW9uLnNldEFwcGxpY2F0aW9uKG5ldyBIYXNoTWFwKCkpOw0KKyAgICAgICAgYWN0aW9uLnNldERhdGFiYXNlKGRhdGFiYXNlKTsNCisgICAgfQ0KKw0KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2F2ZSgpIHRocm93cyBFeGNlcHRpb24gew0KKw0KKyAgICAgICAgYWN0aW9uLnNldFVzZXJuYW1lKCJ1c2VyIik7DQorICAgICAgICBhY3Rpb24uc2V0UGFzc3dvcmQoInBhc3MiKTsNCisgICAgICAgIGFjdGlvbi5zZXRGdWxsTmFtZSgiSm9obiBRLiBVc2VyIik7DQorICAgICAgICBhY3Rpb24uc2V0RnJvbUFkZHJlc3MoIkpvaG4uVXNlckBzb21ld2hlcmUuY29tIik7DQorDQorICAgICAgICBTdHJpbmcgc3VjY2VzcyA9IGFjdGlvbi5zYXZlKCk7DQorICAgICAgICBhc3NlcnRUcnVlKCJFeHBlY3RlZCBTVUNDRVNTIiwgQWN0aW9uLlNVQ0NFU1MuZXF1YWxzKHN1Y2Nlc3MpKTsNCisNCisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIik7DQorICAgICAgICBhc3NlcnROb3ROdWxsKCJFeHBlY3RlZCB1c2VyIiwgdXNlcik7DQorDQorICAgICAgICBTdHJpbmcgaW5wdXQgPSBhY3Rpb24uc2F2ZSgpOw0KKyAgICAgICAgYXNzZXJ0VHJ1ZSgiRXhwZWN0ZWQgSU5QVVQiLCBBY3Rpb24uSU5QVVQuZXF1YWxzKGlucHV0KSk7DQorICAgIH0NCisNCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9zcmMvdGVzdC9SZXRhaW5UZXN0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy90ZXN0L1JldGFpblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDhlOTI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9zcmMvdGVzdC9SZXRhaW5UZXN0LmphdmEKQEAgLTAsMCArMSw5NyBAQAoraW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsNCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5TdWJzY3JpcHRpb247DQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsNCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyRGF0YWJhc2U7DQoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uaW1wbC5tZW1vcnkuTWVtb3J5VXNlckRhdGFiYXNlOw0KKw0KK3B1YmxpYyBjbGFzcyBSZXRhaW5UZXN0IGV4dGVuZHMgVGVzdENhc2Ugew0KKw0KKyAgICBwcm90ZWN0ZWQgVXNlckRhdGFiYXNlIGRhdGFiYXNlOw0KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHRlc3ROYW1lID0gInRlc3QtZGF0YWJhc2UueG1sIjsNCisNCisgICAgcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisgICAgICAgIHN1cGVyLnNldFVwKCk7DQorICAgICAgICBNZW1vcnlVc2VyRGF0YWJhc2UgbWVtb3J5VXNlckRhdGFiYXNlID0gbmV3IE1lbW9yeVVzZXJEYXRhYmFzZSgpOw0KKyAgICAgICAgbWVtb3J5VXNlckRhdGFiYXNlLnNldFBhdGhuYW1lKHRlc3ROYW1lKTsNCisgICAgICAgIGRhdGFiYXNlID0gbWVtb3J5VXNlckRhdGFiYXNlOw0KKyAgICB9DQorDQorICAgIHB1YmxpYyB2b2lkIHRlc3REYXRhYmFzZUNsZWFuKCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOw0KKyAgICAgICAgYXNzZXJ0TnVsbCgiRXhwZWN0ZWQgdXNlciB0byBiZSBtaXNzaW5nIiwgdXNlcik7DQorICAgIH0NCisNCisgICAgLy8gIEFkZCB5b3VyIHRlc3QgbWV0aG9kcyBoZXJlLg0KKyAgICAvLyAgVGhlIHNldFVwIG1ldGhvZCB3aWxsIHJ1biBiZXR3ZWVuIGVhY2ggdGVzdC4NCisNCisgICAgcHVibGljIHZvaWQgdGVzdENyZWF0ZVVzZXIoKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsNCisgICAgICAgIGFzc2VydE5vdE51bGwodXNlcik7DQorICAgIH0NCisNCisgICAgcHVibGljIHZvaWQgdGVzdEZpbmRVc2VyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorICAgICAgICBVc2VyIHVzZXIxID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOw0KKyAgICAgICAgVXNlciB1c2VyMiA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIik7DQorICAgICAgICBhc3NlcnRTYW1lKCJFeHBlY3RlZCB1c2VycyB0byBtYXRjaCIsIHVzZXIxLCB1c2VyMik7DQorICAgIH0NCisNCisgICAgcHVibGljIHZvaWQgdGVzdENyZWF0ZVN1YnNjcmlwdGlvbigpIHRocm93cyBFeGNlcHRpb24gew0KKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YiA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKS5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwueWFob28uY29tIik7DQorICAgICAgICBhc3NlcnROb3ROdWxsKCJFeHBlY3RlZCBzdWJzY3JpcHRpb24gdG8gYmUgY3JlYXRlZCIsIHN1Yik7DQorICAgIH0NCisNCisgICAgcHVibGljIHZvaWQgdGVzdEZpbmRTdWJzY3JpcHRpb24oKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIxID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsNCisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIyID0gZGF0YWJhc2UuZmluZFVzZXIoInVzZXIiKS5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLnlhaG9vLmNvbSIpOw0KKyAgICAgICAgYXNzZXJ0U2FtZSgiRXhwZWN0ZWQgU3Vic2NyaXB0aW9ucyB0byBtYXRjaCIsIHN1YjEsIHN1YjIpOw0KKyAgICB9DQorDQorICAgIHB1YmxpYyB2b2lkIHRlc3REYXRhYnNhZVNhdmUoKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisNCisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsNCisgICAgICAgIHVzZXIuc2V0UGFzc3dvcmQoInBhc3MiKTsNCisgICAgICAgIHVzZXIuc2V0RnVsbE5hbWUoIkpvaG4gUS4gVXNlciIpOw0KKyAgICAgICAgdXNlci5zZXRGcm9tQWRkcmVzcygiSm9obi5Vc2VyQHNvbWV3aGVyZS5jb20iKTsNCisNCisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIxID0gdXNlci5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwuaG90bWFpbC5jb20iKTsNCisgICAgICAgIHN1YjEuc2V0VXNlcm5hbWUoInVzZXIxMjM0Iik7DQorICAgICAgICBzdWIxLnNldEF1dG9Db25uZWN0KGZhbHNlKTsNCisgICAgICAgIHN1YjEuc2V0VHlwZSgicG9wMyIpOw0KKyAgICAgICAgc3ViMS5zZXRQYXNzd29yZCgiYmFyIik7DQorDQorICAgICAgICBTdWJzY3JpcHRpb24gc3ViMiA9IHVzZXIuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLnlhaG9vLmNvbSIpOw0KKyAgICAgICAgc3ViMi5zZXRVc2VybmFtZSgianF1c2VyIik7DQorICAgICAgICBzdWIyLnNldEF1dG9Db25uZWN0KGZhbHNlKTsNCisgICAgICAgIHN1YjIuc2V0VHlwZSgiaW1hcCIpOw0KKyAgICAgICAgc3ViMi5zZXRQYXNzd29yZCgiZm9vIik7DQorDQorICAgICAgICBkYXRhYmFzZS5zYXZlKCk7DQorDQorICAgIH0NCisNCisgICAgLy8gRXh0cmEgY3JlZGl0DQorDQorICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kZXJVc2VyQm9ndXMoKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisgICAgICAgIFVzZXIgdXNlcjEgPSBkYXRhYmFzZS5maW5kVXNlcigiYm9ndXMiKTsNCisgICAgICAgIGFzc2VydE51bGwoIkV4cGVjdGVkIGJvZ3VzIHVzZXIgdG8gYmUgbm90IGZvdW5kIiwgdXNlcjEpOw0KKyAgICAgICAgVXNlciB1c2VyMiA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsNCisgICAgICAgIGFzc2VydE5vdE51bGwoIkV4cGVjdGVkIHVzZXIgdG8gYmUgY3JlYXRlZCIsIHVzZXIyKTsNCisgICAgICAgIHVzZXIxID0gZGF0YWJhc2UuZmluZFVzZXIoImJvZ3VzIik7DQorICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCBib2d1cyB1c2VyIHRvIGJlIG5vdCBmb3VuZCIsIHVzZXIxKTsNCisgICAgICAgIHVzZXIxID0gZGF0YWJhc2UuZmluZFVzZXIoInVzZXIiKTsNCisgICAgICAgIGFzc2VydE5vdE51bGwoIkV4cGVjdGVkIHVzZXIgdG8gYmUgZm91bmQiLCB1c2VyMSk7DQorICAgIH0NCisNCisgICAgcHVibGljIHZvaWQgdGVzdEZpbmRTdWJCb2d1cygpIHRocm93cyBFeGNlcHRpb24gew0KKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOw0KKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YiA9IHVzZXIuZmluZFN1YnNjcmlwdGlvbigibWFpbC5ib2d1cy5jb20iKTsNCisgICAgICAgIGFzc2VydE51bGwoc3ViKTsNCisgICAgICAgIHN1YiA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIikuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLmhvdG1haWwuY29tIik7DQorICAgICAgICBhc3NlcnROb3ROdWxsKHN1Yik7DQorICAgICAgICBTdWJzY3JpcHRpb24gc3ViMiA9IHVzZXIuZmluZFN1YnNjcmlwdGlvbigibWFpbC5ib2d1cy5jb20iKTsNCisgICAgICAgIGFzc2VydE51bGwoc3ViMik7DQorICAgICAgICBTdWJzY3JpcHRpb24gc3ViMyA9IHVzZXIuZmluZFN1YnNjcmlwdGlvbigibWFpbC5ob3RtYWlsLmNvbSIpOw0KKyAgICAgICAgYXNzZXJ0U2FtZShzdWIsIHN1YjMpOw0KKyAgICB9DQorDQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3MDlkZjkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4NCis8IURPQ1RZUEUgd2ViLWFwcCBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4zLy9FTiIgImh0dHA6Ly9qYXZhLnN1bi5jb20vZHRkL3dlYi1hcHBfMl8zLmR0ZCI+DQorPHdlYi1hcHA+DQorDQorICAgIDxkaXNwbGF5LW5hbWU+U3RydXRzIDIgTWFpbHJlYWRlcjwvZGlzcGxheS1uYW1lPg0KKw0KKyAgICA8ZmlsdGVyPg0KKyAgICAgICAgPGZpbHRlci1uYW1lPlN0cnV0czI8L2ZpbHRlci1uYW1lPg0KKyAgICAgICAgPGZpbHRlci1jbGFzcz4NCisgICAgICAgICAgICBvcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5GaWx0ZXJEaXNwYXRjaGVyDQorICAgICAgICA8L2ZpbHRlci1jbGFzcz4NCisgICAgPC9maWx0ZXI+DQorDQorICAgIDxmaWx0ZXItbWFwcGluZz4NCisgICAgICAgIDxmaWx0ZXItbmFtZT5TdHJ1dHMyPC9maWx0ZXItbmFtZT4NCisgICAgICAgIDx1cmwtcGF0dGVybj4vKjwvdXJsLXBhdHRlcm4+DQorICAgIDwvZmlsdGVyLW1hcHBpbmc+DQorDQorICAgIDwhLS0gQXBwbGljYXRpb24gTGlzdGVuZXIgZm9yIE1haWxyZWFkZXIgZGF0YWJhc2UgLS0+DQorICAgIDxsaXN0ZW5lcj4NCisgICAgICAgIDxsaXN0ZW5lci1jbGFzcz4NCisgICAgICAgICAgICBEYXRhYmFzZUxpc3RlbmVyDQorICAgICAgICA8L2xpc3RlbmVyLWNsYXNzPg0KKyAgICA8L2xpc3RlbmVyPg0KKw0KKyAgICA8d2VsY29tZS1maWxlLWxpc3Q+DQorICAgICAgICA8d2VsY29tZS1maWxlPmluZGV4Lmh0bWw8L3dlbGNvbWUtZmlsZT4NCisgICAgPC93ZWxjb21lLWZpbGUtbGlzdD4NCisNCis8L3dlYi1hcHA+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9zcmMvd2ViYXBwL2luZGV4Lmh0bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy93ZWJhcHAvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDA1YTkxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9zcmMvd2ViYXBwL2luZGV4Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4NCis8aHRtbD4NCis8aGVhZD4NCisgICAgPE1FVEEgSFRUUC1FUVVJVj0iUmVmcmVzaCIgQ09OVEVOVD0iMDtVUkw9V2VsY29tZS5hY3Rpb24iPg0KKzwvaGVhZD4NCisNCis8Ym9keT4NCis8cD5Mb2FkaW5nIC4uLjwvcD4NCis8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8uanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiMGZkODcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8uanNwCkBAIC0wLDAgKzEsMTIgQEAKKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4NCis8aHRtbD4NCis8aGVhZD4NCisgICAgPHRpdGxlPkhlbGxvPC90aXRsZT4NCis8L2hlYWQ+DQorDQorPGJvZHk+DQorPGgyPg0KKyAgICA8czp0ZXh0IG5hbWU9ImhlbGxvLm1lc3NhZ2UiLz4NCis8L2gyPg0KKzwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9zcmMvd2ViYXBwL3BhZ2VzL01pc3NpbmcuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9zcmMvd2ViYXBwL3BhZ2VzL01pc3NpbmcuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2OTBkMGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyL3NyYy93ZWJhcHAvcGFnZXMvTWlzc2luZy5qc3AKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+DQorPGhlYWQ+PHRpdGxlPk1pc3NpbmcgRmVhdHVyZTwvdGl0bGU+PC9oZWFkPg0KKw0KKzxib2R5Pg0KKzxwPg0KKyAgICBUaGlzIGZlYXR1cmUgaXMgdW5kZXIgY29uc3RydWN0aW9uLg0KKyAgICBQbGVhc2UgdHJ5IGFnYWluIGluIHRoZSBuZXh0IGludGVyYXRpb24uDQorPC9wPg0KKzwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9zcmMvd2ViYXBwL3BhZ2VzL1JlZ2lzdGVyLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL3dlYmFwcC9wYWdlcy9SZWdpc3Rlci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQ1MDgyYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL3dlYmFwcC9wYWdlcy9SZWdpc3Rlci5qc3AKQEAgLTAsMCArMSwyOCBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPg0KKzxodG1sPg0KKzxoZWFkPg0KKyAgICA8dGl0bGU+TWFpbFJlYWRlciAtIFJlZ2lzdGVyPC90aXRsZT4NCis8L2hlYWQ+DQorDQorPGJvZHkgb25Mb2FkPSJzZWxmLmZvY3VzKCk7ZG9jdW1lbnQuUmVnaXN0ZXJfc2F2ZS51c2VybmFtZS5mb2N1cygpIj4NCisNCis8czphY3Rpb25lcnJvci8+DQorPHM6Zm9ybSBhY3Rpb249IlJlZ2lzdGVyX3NhdmUiPg0KKw0KKyAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IlVzZXJuYW1lIiBuYW1lPSJ1c2VybmFtZSIvPg0KKw0KKyAgICA8czpwYXNzd29yZCBsYWJlbD0iUGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIi8+DQorDQorICAgIDxzOnBhc3N3b3JkIGxhYmVsPSIoUmVwZWF0KSBQYXNzd29yZCIgbmFtZT0icGFzc3dvcmQyIi8+DQorDQorICAgIDxzOnRleHRmaWVsZCBsYWJlbD0iRnVsbCBOYW1lIiBuYW1lPSJmdWxsTmFtZSIvPg0KKw0KKyAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IkZyb20gQWRkcmVzcyIgbmFtZT0iZnJvbUFkZHJlc3MiLz4NCisNCisgICAgPHM6dGV4dGZpZWxkIGxhYmVsPSJSZXBseSBUbyBBZGRyZXNzIiBuYW1lPSJyZXBseVRvQWRkcmVzcyIvPg0KKw0KKyAgICA8czpzdWJtaXQgdmFsdWU9IlNhdmUiIG5hbWU9IlNhdmUiLz4NCisNCis8L3M6Zm9ybT4NCis8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIvc3JjL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTYwZmY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3Rlci9zcmMvd2ViYXBwL3BhZ2VzL1dlbGNvbWUuanNwCkBAIC0wLDAgKzEsMjMgQEAKKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4NCis8aHRtbD4NCis8aGVhZD4NCisgICAgPHRpdGxlPk1haWxSZWFkZXI8L3RpdGxlPg0KKzwvaGVhZD4NCisNCis8Ym9keT4NCis8aDM+TWFpbFJlYWRlciBPcHRpb25zPC9oMz4NCisNCis8dWw+DQorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJSZWdpc3RlciIvPiI+UmVnaXN0ZXIgd2l0aCB0aGUgTWFpbFJlYWRlcjwvYT48L2xpPg0KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iTWlzc2luZyIvPiI+TG9nIG9uIHRvIHRoZSBNYWlsUmVhZGVyPC9hPjwvbGk+DQorPC91bD4NCisNCis8aDM+TGFuZ3VhZ2UgT3B0aW9uczwvaDM+DQorPHVsPg0KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iTWlzc2luZyIvPiI+RW5nbGlzaDwvYT48L2xpPg0KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iTWlzc2luZyIvPiI+SmFwYW5lc2U8L2E+PC9saT4NCisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249Ik1pc3NpbmciLz4iPlJ1c3NpYW48L2E+PC9saT4NCis8L3VsPg0KKw0KKzwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvTUVUQS1JTkYvY29udGV4dC54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9NRVRBLUlORi9jb250ZXh0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBiNWQwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvTUVUQS1JTkYvY29udGV4dC54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPENvbnRleHQgcGF0aD0iLyI+Cis8L0NvbnRleHQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9yZWdpc3RlcjIuaW1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvcmVnaXN0ZXIyLmltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNWVmMzlmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvcmVnaXN0ZXIyLmltbApAQCAtMCwwICsxLDY4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxtb2R1bGUgdmVyc2lvbj0iNCIgcmVsYXRpdmVQYXRocz0idHJ1ZSIgdHlwZT0iSjJFRV9XRUJfTU9EVUxFIiBqMmVlLWludGVncmF0aW9uPSJUb21jYXQgU2VydmVyIj4NCisgIDxjb21wb25lbnQgbmFtZT0iQXBwU2VydmVyU3BlY2lmaWNWYWxpZGF0b3JzTWFuYWdlciIgLz4NCisgIDxjb21wb25lbnQgbmFtZT0iTW9kdWxlUm9vdE1hbmFnZXIiIC8+DQorICA8Y29tcG9uZW50IG5hbWU9Ik5ld01vZHVsZVJvb3RNYW5hZ2VyIiBpbmhlcml0LWNvbXBpbGVyLW91dHB1dD0iZmFsc2UiPg0KKyAgICA8b3V0cHV0IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy9yZWdpc3RlcjIvV0VCLUlORi9jbGFzc2VzIiAvPg0KKyAgICA8ZXhjbHVkZS1vdXRwdXQgLz4NCisgICAgPGV4cGxvZGVkIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy9yZWdpc3RlcjIiIC8+DQorICAgIDxleGNsdWRlLWV4cGxvZGVkIC8+DQorICAgIDxjb250ZW50IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJCI+DQorICAgICAgPHNvdXJjZUZvbGRlciB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL2phdmEiIGlzVGVzdFNvdXJjZT0iZmFsc2UiIC8+DQorICAgICAgPHNvdXJjZUZvbGRlciB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3Rlc3QiIGlzVGVzdFNvdXJjZT0idHJ1ZSIgLz4NCisgICAgPC9jb250ZW50Pg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJpbmhlcml0ZWRKZGsiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9InNvdXJjZUZvbGRlciIgZm9yVGVzdHM9ImZhbHNlIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJTdHJ1dHMyIiBsZXZlbD0icHJvamVjdCIgLz4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ibGlicmFyeSIgbmFtZT0iTWFpbHJlYWRlci1kYW8iIGxldmVsPSJwcm9qZWN0IiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJzZXJ2bGV0LWFwaSIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeVByb3BlcnRpZXMgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJNb2R1bGVCdWlsZENvbXBvbmVudCI+DQorICAgIDxzZXR0aW5nIG5hbWU9IkVYUExPREVEX1VSTCIgdmFsdWU9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvcmVnaXN0ZXIyIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJFWFBMT0RFRF9FTkFCTEVEIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iSkFSX1VSTCIgdmFsdWU9ImZpbGU6Ly8iIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkpBUl9FTkFCTEVEIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IlNZTkNfRVhQTE9ERURfRElSIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iQlVJTERfTU9EVUxFX09OX0ZSQU1FX0RFQUNUSVZBVElPTiIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJCVUlMRF9FWFRFUk5BTF9ERVBFTkRFTkNJRVMiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iUlVOX0pBU1BFUl9WQUxJREFUSU9OIiB2YWx1ZT0iZmFsc2UiIC8+DQorICA8L2NvbXBvbmVudD4NCisgIDxjb21wb25lbnQgbmFtZT0iV2ViTW9kdWxlUHJvcGVydGllcyI+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMSIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9Ii9XRUItSU5GL2xpYiIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIj4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjAiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSImbHQ7Ti9BJmd0OyIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJNYWlscmVhZGVyLWRhbyIgbGV2ZWw9InByb2plY3QiPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMSIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9Ii9XRUItSU5GL2xpYiIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJzZXJ2bGV0LWFwaSIgbGV2ZWw9ImFwcGxpY2F0aW9uIj4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjAiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSImbHQ7Ti9BJmd0OyIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJTdHJ1dHMyIiBsZXZlbD0icHJvamVjdCI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSJ3ZWIueG1sIiB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwiIG9wdGlvbmFsPSJmYWxzZSIgdmVyc2lvbj0iMi4zIiAvPg0KKyAgICA8ZGVwbG95bWVudERlc2NyaXB0b3IgbmFtZT0iY29udGV4dC54bWwiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9NRVRBLUlORi9jb250ZXh0LnhtbCIgb3B0aW9uYWw9ImZhbHNlIiB2ZXJzaW9uPSI1LngiIC8+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSIiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9NRVRBLUlORi9jb250ZXh0LnhtbCIgb3B0aW9uYWw9ImZhbHNlIj4NCisgICAgICA8b3B0aW9uIG5hbWU9IkRFRkFVTFRfRElSIiB2YWx1ZT0iV0VCLUlORiIgLz4NCisgICAgICA8b3B0aW9uIG5hbWU9Ik5BTUUiIHZhbHVlPSIiIC8+DQorICAgICAgPG9wdGlvbiBuYW1lPSJERVNDUklQVElPTiIgdmFsdWU9IiIgLz4NCisgICAgPC9kZXBsb3ltZW50RGVzY3JpcHRvcj4NCisgICAgPHdlYnJvb3RzPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvd2ViYXBwIiByZWxhdGl2ZT0iLyIgLz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL2phdmEiIHJlbGF0aXZlPSIvV0VCLUlORi9zcmMvamF2YSIgLz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3Rlc3QiIHJlbGF0aXZlPSIvV0VCLUlORi9zcmMvdGVzdCIgLz4NCisgICAgPC93ZWJyb290cz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJsb2dpY1dlYk1vZHVsZVByb3BlcnRpZXMiIC8+DQorPC9tb2R1bGU+DQorDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvc3JjL2phdmEvRGF0YWJhc2VMaXN0ZW5lci5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvc3JjL2phdmEvRGF0YWJhc2VMaXN0ZW5lci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmYTY0ZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvamF2YS9EYXRhYmFzZUxpc3RlbmVyLmphdmEKQEAgLTAsMCArMSwyMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMTk5OS0yMDAyLDIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiAkSWQ6IEFwcGxpY2F0aW9uTGlzdGVuZXIuamF2YSAzNzIwODcgMjAwNi0wMS0yNSAwMzozODo0MlogY3JhaWdtY2MgJAorICovCisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLmltcGwubWVtb3J5Lk1lbW9yeVVzZXJEYXRhYmFzZTsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dEV2ZW50OworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHRMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogPHA+PGNvZGU+U2VydmxldENvbnRleHRMaXN0ZW5lcjwvY29kZT4gdGhhdCBpbml0aWFsaXplcyBhbmQgZmluYWxpemVzIHRoZQorICogcGVyc2lzdGVudCBzdG9yYWdlIG9mIFVzZXIgYW5kIFN1YnNjcmlwdGlvbiBpbmZvcm1hdGlvbiBmb3IgdGhlIFN0cnV0cworICogRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbiwgdXNpbmcgYW4gaW4tbWVtb3J5IGRhdGFiYXNlIGJhY2tlZCBieSBhbiBYTUwKKyAqIGZpbGUuPC9wPgorICogPHAvPgorICogPHA+PHN0cm9uZz5JTVBMRU1FTlRBVElPTiBXQVJOSU5HPC9zdHJvbmc+IC0gSWYgdGhpcyB3ZWIgYXBwbGljYXRpb24gaXMgcnVuCisgKiBmcm9tIGEgV0FSIGZpbGUsIG9yIGluIGFub3RoZXIgZW52aXJvbm1lbnQgd2hlcmUgcmVhZGluZyBhbmQgd3JpdGluZyBvZiB0aGUKKyAqIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSBpcyBpbXBvc3NpYmxlLCB0aGUgaW5pdGlhbCBjb250ZW50cyB3aWxsIGJlIGNvcGllZAorICogdG8gYSBmaWxlIGluIHRoZSB3ZWIgYXBwbGljYXRpb24gdGVtcG9yYXJ5IGRpcmVjdG9yeSBwcm92aWRlZCBieSB0aGUKKyAqIGNvbnRhaW5lci4gIFRoaXMgaXMgZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMgb25seSAtIHlvdSBzaG91bGQKKyAqIDxzdHJvbmc+Tk9UPC9zdHJvbmc+IGFzc3VtZSB0aGF0IGZpbGVzIHdyaXR0ZW4gaGVyZSB3aWxsIHN1cnZpdmUgYSByZXN0YXJ0CisgKiBvZiB5b3VyIHNlcnZsZXQgY29udGFpbmVyLjwvcD4KKyAqIDxwLz4KKyAqIDxwPlRoaXMgY2xhc3Mgd2FzIGJvcnJvd2VkIGZyb20gdGhlIFNoYWxlIE1haWxyZWFkZXIuIENoYW5nZXMgd2VyZTo8L3A+CisgKiA8cC8+CisgKiA8dWw+CisgKiA8cC8+CisgKiA8bGk+UGF0aCB0byBkYXRhYmFzZS54bWwgKHVuZGVyIGNsYXNzZXMgaGVyZSkuIDwvbGk+CisgKiA8cC8+CisgKiA8bGk+Q2xhc3MgdG8gc3RvcmUgcHJvdG9jb2wgbGlzdCAoYW4gYXJyYXkgaGVyZSkuIDwvbGk+CisgKiA8cC8+CisgKiA8L3VsPgorICogPHAvPgorICogREVWRUxPUE1FTlQgTk9URSAtIEFub3RoZXIgYXBwcm9hY2ggd291bGQgYmUgdG8gaW5zdGFudGlhdGUgdGhlIGRhdGFiYXNlIHZpYSBTcHJpbmcuCisgKiA8L3A+CisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIERhdGFiYXNlTGlzdGVuZXIgaW1wbGVtZW50cyBTZXJ2bGV0Q29udGV4dExpc3RlbmVyIHsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNYW5pZmVzdCBDb25zdGFudHMKKworCisgICAgLyoqCisgICAgICogPHA+QXBwaWNhdGlvbiBzY29wZSBhdHRyaWJ1dGUga2V5IHVuZGVyIHdoaWNoIHRoZSBpbi1tZW1vcnkgdmVyc2lvbiBvZgorICAgICAqIG91ciBkYXRhYmFzZSBpcyBzdG9yZWQuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFCQVNFX0tFWSA9ICJkYXRhYmFzZSI7CisKKworICAgIC8qKgorICAgICAqIDxwPkFwcGxpY2F0aW9uIHNjb3BlIGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggdGhlIHZhbGlkIHNlbGVjdGlvbgorICAgICAqIGl0ZW1zIGZvciB0aGUgcHJvdG9jb2wgcHJvcGVydHkgaXMgc3RvcmVkLjwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQUk9UT0NPTFNfS0VZID0gInByb3RvY29scyI7CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSW5zdGFuY2UgVmFyaWFibGVzCisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSA8Y29kZT5TZXJ2bGV0Q29udGV4dDwvY29kZT4gZm9yIHRoaXMgd2ViIGFwcGxpY2F0aW9uLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFNlcnZsZXRDb250ZXh0IGNvbnRleHQgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiBUaGUge0BsaW5rIE1lbW9yeVVzZXJEYXRhYmFzZX0gb2JqZWN0IHdlIGNvbnN0cnVjdCBhbmQgbWFrZSBhdmFpbGFibGUuCisgICAgICovCisgICAgcHJpdmF0ZSBNZW1vcnlVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiA8cD5Mb2dnaW5nIG91dHB1dCBmb3IgdGhpcyBwbHVnIGluIGluc3RhbmNlLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyh0aGlzLmdldENsYXNzKCkpOworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm9wZXJ0aWVzCisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCBvZiBvdXIgcGVyc2lzdGVudCBkYXRhYmFzZSBzdG9yYWdlCisgICAgICogZmlsZS48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0aG5hbWUgPSAiL1dFQi1JTkYvY2xhc3Nlcy9kYXRhYmFzZS54bWwiOworCisgICAgLyoqCisgICAgICogPHA+UmV0dXJuIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIHRvIHRoZSBkYXRhYmFzZS48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFwcGxpY2F0aW9uIHJlc291cmNlIHBhdGggcGF0aCB0byB0aGUgZGF0YWJhc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhdGhuYW1lKCkgeworICAgICAgICByZXR1cm4gKHRoaXMucGF0aG5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNldCB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCB0byB0aGUgZGF0YWJhc2UuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHBhdGhuYW1lIHRvIHRoZSBkYXRhYmFzZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhdGhuYW1lKFN0cmluZyBwYXRobmFtZSkgeworICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7CisgICAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNlcnZsZXRDb250ZXh0TGlzdGVuZXIgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiA8cD5HcmFjZWZ1bGx5IHNodXQgZG93biB0aGlzIGRhdGFiYXNlLCByZWxlYXNpbmcgYW55IHJlc291cmNlcyB0aGF0CisgICAgICogd2VyZSBhbGxvY2F0ZWQgYXQgaW5pdGlhbGl6YXRpb24uPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGV2ZW50IFNlcnZsZXRDb250ZXh0RXZlbnQgdG8gcHJvY2VzcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbnRleHREZXN0cm95ZWQoU2VydmxldENvbnRleHRFdmVudCBldmVudCkgeworCisgICAgICAgIGxvZy5pbmZvKCJGaW5hbGl6aW5nIG1lbW9yeSBkYXRhYmFzZSBwbHVnIGluIik7CisKKyAgICAgICAgaWYgKGRhdGFiYXNlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZGF0YWJhc2UuY2xvc2UoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nLmVycm9yKCJDbG9zaW5nIG1lbW9yeSBkYXRhYmFzZSIsIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoREFUQUJBU0VfS0VZKTsKKyAgICAgICAgY29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoUFJPVE9DT0xTX0tFWSk7CisgICAgICAgIGRhdGFiYXNlID0gbnVsbDsKKyAgICAgICAgY29udGV4dCA9IG51bGw7CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIDxwPkluaXRpYWxpemUgYW5kIGxvYWQgb3VyIGluaXRpYWwgZGF0YWJhc2UgZnJvbSBwZXJzaXN0ZW50CisgICAgICogc3RvcmFnZS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIGNvbnRleHQgaW5pdGlhbGl6YXRpb24gZXZlbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb250ZXh0SW5pdGlhbGl6ZWQoU2VydmxldENvbnRleHRFdmVudCBldmVudCkgeworCisgICAgICAgIGxvZy5pbmZvKCJJbml0aWFsaXppbmcgbWVtb3J5IGRhdGFiYXNlIHBsdWcgaW4gZnJvbSAnIiArCisgICAgICAgICAgICAgICAgcGF0aG5hbWUgKyAiJyIpOworCisgICAgICAgIC8vIFJlbWVtYmVyIG91ciBhc3NvY2lhdGVkIFNlcnZsZXRDb250ZXh0CisgICAgICAgIHRoaXMuY29udGV4dCA9IGV2ZW50LmdldFNlcnZsZXRDb250ZXh0KCk7CisKKyAgICAgICAgLy8gQ29uc3RydWN0IGEgbmV3IGRhdGFiYXNlIGFuZCBtYWtlIGl0IGF2YWlsYWJsZQorICAgICAgICBkYXRhYmFzZSA9IG5ldyBNZW1vcnlVc2VyRGF0YWJhc2UoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gY2FsY3VsYXRlUGF0aCgpOworICAgICAgICAgICAgaWYgKGxvZy5pc0RlYnVnRW5hYmxlZCgpKSB7CisgICAgICAgICAgICAgICAgbG9nLmRlYnVnKCIgTG9hZGluZyBkYXRhYmFzZSBmcm9tICciICsgcGF0aCArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkYXRhYmFzZS5zZXRQYXRobmFtZShwYXRoKTsKKyAgICAgICAgICAgIGRhdGFiYXNlLm9wZW4oKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZy5lcnJvcigiT3BlbmluZyBtZW1vcnkgZGF0YWJhc2UiLCBlKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkNhbm5vdCBsb2FkIGRhdGFiYXNlIGZyb20gJyIgKworICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSArICInOiAiICsgZSk7CisgICAgICAgIH0KKyAgICAgICAgY29udGV4dC5zZXRBdHRyaWJ1dGUoREFUQUJBU0VfS0VZLCBkYXRhYmFzZSk7CisKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcml2YXRlIE1ldGhvZHMKKworCisgICAgLyoqCisgICAgICogPHA+Q2FsY3VsYXRlIGFuZCByZXR1cm4gYW4gYWJzb2x1dGUgcGF0aG5hbWUgdG8gdGhlIFhNTCBmaWxlIHRvIGNvbnRhaW4KKyAgICAgKiBvdXIgcGVyc2lzdGVudCBzdG9yYWdlIGluZm9ybWF0aW9uLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gQWJzb2x1dGUgcGF0aCB0byBYTUwgZmlsZS4KKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgY2FsY3VsYXRlUGF0aCgpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIC8vIENhbiB3ZSBhY2Nlc3MgdGhlIGRhdGFiYXNlIHZpYSBmaWxlIEkvTz8KKyAgICAgICAgU3RyaW5nIHBhdGggPSBjb250ZXh0LmdldFJlYWxQYXRoKHBhdGhuYW1lKTsKKyAgICAgICAgaWYgKHBhdGggIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIChwYXRoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERvZXMgYSBjb3B5IG9mIHRoaXMgZmlsZSBhbHJlYWR5IGV4aXN0IGluIG91ciB0ZW1wb3JhcnkgZGlyZWN0b3J5CisgICAgICAgIEZpbGUgZGlyID0gKEZpbGUpCisgICAgICAgICAgICAgICAgY29udGV4dC5nZXRBdHRyaWJ1dGUoImphdmF4LnNlcnZsZXQuY29udGV4dC50ZW1wZGlyIik7CisgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKGRpciwgInN0cnV0cy1leGFtcGxlLWRhdGFiYXNlLnhtbCIpOworICAgICAgICBpZiAoZmlsZS5leGlzdHMoKSkgeworICAgICAgICAgICAgcmV0dXJuIChmaWxlLmdldEFic29sdXRlUGF0aCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvcHkgdGhlIHN0YXRpYyByZXNvdXJjZSB0byBhIHRlbXBvcmFyeSBmaWxlIGFuZCByZXR1cm4gaXRzIHBhdGgKKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPQorICAgICAgICAgICAgICAgIGNvbnRleHQuZ2V0UmVzb3VyY2VBc1N0cmVhbShwYXRobmFtZSk7CisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYmlzID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaXMsIDEwMjQpOworICAgICAgICBGaWxlT3V0cHV0U3RyZWFtIG9zID0KKyAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlKTsKKyAgICAgICAgQnVmZmVyZWRPdXRwdXRTdHJlYW0gYm9zID0gbmV3IEJ1ZmZlcmVkT3V0cHV0U3RyZWFtKG9zLCAxMDI0KTsKKyAgICAgICAgYnl0ZSBidWZmZXJbXSA9IG5ldyBieXRlWzEwMjRdOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IG4gPSBiaXMucmVhZChidWZmZXIpOworICAgICAgICAgICAgaWYgKG4gPD0gMCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9zLndyaXRlKGJ1ZmZlciwgMCwgbik7CisgICAgICAgIH0KKyAgICAgICAgYm9zLmNsb3NlKCk7CisgICAgICAgIGJpcy5jbG9zZSgpOworICAgICAgICByZXR1cm4gKGZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpOworCisgICAgfQorCisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy9qYXZhL0hlbGxvLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvamF2YS9IZWxsby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiZDM1MDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvamF2YS9IZWxsby5qYXZhCkBAIC0wLDAgKzEsMTYgQEAKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25TdXBwb3J0OworCisvKioKKyAqIEV4YW1wbGUgQWN0aW9uIGNsYXNzLgorICovCitwdWJsaWMgY2xhc3MgSGVsbG8gZXh0ZW5kcyBBY3Rpb25TdXBwb3J0IHsKKworICAgIC8qKgorICAgICAqIEFuIGV4YW1wbGUgaW1wbGVtZW50YXRpb24gdGhhdCBkb2VzIG5vdGhpbmcgYW5kIHJldHVybnMgInN1Y2Nlc3MiLgorICAgICAqCisgICAgICogQHJldHVybiB7QGxpbmsgI1NVQ0NFU1N9CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy9qYXZhL01haWxSZWFkZXJTdXBwb3J0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvamF2YS9NYWlsUmVhZGVyU3VwcG9ydC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4ZWZjYjcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvamF2YS9NYWlsUmVhZGVyU3VwcG9ydC5qYXZhCkBAIC0wLDAgKzEsMTQxIEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS51dGlsLkJlYW5VdGlsczsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25TdXBwb3J0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXJEYXRhYmFzZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuaW50ZXJjZXB0b3IuQXBwbGljYXRpb25Bd2FyZTsKKworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK3B1YmxpYyBjbGFzcyBNYWlsUmVhZGVyU3VwcG9ydCBleHRlbmRzIEFjdGlvblN1cHBvcnQgaW1wbGVtZW50cyBBcHBsaWNhdGlvbkF3YXJlIHsKKworICAgIC8vIC0tLS0gUmVnaXN0ZXIgZm9ybSBwcm9wZXJ0aWVzIC0tLS0KKworICAgIHByaXZhdGUgU3RyaW5nIHVzZXJuYW1lID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VXNlcm5hbWUoKSB7CisgICAgICAgIHJldHVybiB1c2VybmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVc2VybmFtZShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgdXNlcm5hbWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBwYXNzd29yZCA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkKCkgeworICAgICAgICByZXR1cm4gcGFzc3dvcmQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UGFzc3dvcmQoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHBhc3N3b3JkID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQyID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGFzc3dvcmQyKCkgeworICAgICAgICByZXR1cm4gcGFzc3dvcmQyOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFBhc3N3b3JkMihTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcGFzc3dvcmQyID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgZnVsbE5hbWUgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRGdWxsTmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGZ1bGxOYW1lOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEZ1bGxOYW1lKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBmdWxsTmFtZSA9IHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIGZyb21BZGRyZXNzID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RnJvbUFkZHJlc3MoKSB7CisgICAgICAgIHJldHVybiBmcm9tQWRkcmVzczsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRGcm9tQWRkcmVzcyhTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgZnJvbUFkZHJlc3MgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyByZXBseVRvQWRkcmVzcyA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFJlcGx5VG9BZGRyZXNzKCkgeworICAgICAgICByZXR1cm4gcmVwbHlUb0FkZHJlc3M7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UmVwbHlUb0FkZHJlc3MoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHJlcGx5VG9BZGRyZXNzID0gdmFsdWU7CisgICAgfQorCisgICAgLy8gLS0tLSBLZXlzIC0tLS0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFCQVNFX0tFWSA9ICJkYXRhYmFzZSI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBVU0VSX0tFWSA9ICJ1c2VyIjsKKworICAgIC8vIC0tLS0gTWVzc2FnZXMgLS0tLQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfREFUQUJBU0VfTUlTU0lORyA9CisgICAgICAgICAgICAiRGF0YWJhc2UgaXMgbWlzc2luZyI7CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBFUlJPUl9VU0VSTkFNRV9VTklRVUUgPQorICAgICAgICAgICAgIlRoYXQgdXNlcm5hbWUgaXMgYWxyZWFkeSBpbiB1c2UgLSBwbGVhc2Ugc2VsZWN0IGFub3RoZXIiOworCisgICAgLy8gLS0tLSBBcHBsaWNhdGlvbkF3YXJlIC0tLS0KKworICAgIHByaXZhdGUgTWFwIGFwcGxpY2F0aW9uOworCisgICAgcHVibGljIHZvaWQgc2V0QXBwbGljYXRpb24oTWFwIHZhbHVlKSB7CisgICAgICAgIGFwcGxpY2F0aW9uID0gdmFsdWU7CisgICAgfQorCisgICAgcHVibGljIE1hcCBnZXRBcHBsaWNhdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGFwcGxpY2F0aW9uOworICAgIH0KKworICAgIC8vIC0tLS0gRGF0YWJhc2UgcHJvcGVydHkgLS0tLQorCisgICAgcHVibGljIFVzZXJEYXRhYmFzZSBnZXREYXRhYmFzZSgpIHsKKyAgICAgICAgT2JqZWN0IGRiID0gZ2V0QXBwbGljYXRpb24oKS5nZXQoREFUQUJBU0VfS0VZKTsKKyAgICAgICAgaWYgKGRiID09IG51bGwpIHsKKyAgICAgICAgICAgIHRoaXMuYWRkQWN0aW9uRXJyb3IoRVJST1JfREFUQUJBU0VfTUlTU0lORyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChVc2VyRGF0YWJhc2UpIGRiOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldERhdGFiYXNlKFVzZXJEYXRhYmFzZSBkYXRhYmFzZSkgeworICAgICAgICBnZXRBcHBsaWNhdGlvbigpLnB1dChEQVRBQkFTRV9LRVksIGRhdGFiYXNlKTsKKyAgICB9CisKKyAgICAvLyAtLS0tIERhdGFiYXNlIG1ldGhvZHMgLS0tLQorCisgICAgcHVibGljIFVzZXIgZmluZFVzZXIoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpCisgICAgICAgICAgICB0aHJvd3MgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIGdldERhdGFiYXNlKCkuZmluZFVzZXIodXNlcm5hbWUpOworICAgIH0KKworICAgIHB1YmxpYyBVc2VyIGNyZWF0ZVVzZXIoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIFVzZXJEYXRhYmFzZSBkYXRhYmFzZSA9IGdldERhdGFiYXNlKCk7CisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmZpbmRVc2VyKHVzZXJuYW1lKTsKKworICAgICAgICBpZiAodXNlciAhPSBudWxsKSB7CisgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihFUlJPUl9VU0VSTkFNRV9VTklRVUUpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcih1c2VybmFtZSk7CisgICAgICAgIEJlYW5VdGlscy5zZXRWYWx1ZXModXNlciwgdGhpcywgbnVsbCk7CisKKyAgICAgICAgcmV0dXJuIHVzZXI7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2F2ZVVzZXIoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZ2V0RGF0YWJhc2UoKS5zYXZlKCk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvamF2YS9SZWdpc3Rlci12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy9qYXZhL1JlZ2lzdGVyLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3MDU1ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvamF2YS9SZWdpc3Rlci12YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4NCisNCis8dmFsaWRhdG9ycz4NCisNCisgICAgPGZpZWxkIG5hbWU9InVzZXJuYW1lIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlPlVzZXJuYW1lIGlzIHJlcXVpcmVkPC9tZXNzYWdlPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorICAgIDxmaWVsZCBuYW1lPSJmdWxsTmFtZSI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZT5GdWxsIE5hbWUgaXMgcmVxdWlyZWQ8L21lc3NhZ2U+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9ImZyb21BZGRyZXNzIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlPkZyb20gQWRkcmVzcyBpcyByZXF1aXJlZDwvbWVzc2FnZT4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJlbWFpbCI+DQorICAgICAgICAgICAgPG1lc3NhZ2U+SW52YWxpZCBmb3JtYXQgZm9yIEZyb20gQWRkcmVzczwvbWVzc2FnZT4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0icmVwbHlUb0FkZHJlc3MiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJlbWFpbCI+DQorICAgICAgICAgICAgPG1lc3NhZ2U+SW52YWxpZCBmb3JtYXQgZm9yIFJlcGx5IFRvIEFkZHJlc3M8L21lc3NhZ2U+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9InBhc3N3b3JkIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlPlBhc3N3b3JkIGlzIHJlcXVpcmVkPC9tZXNzYWdlPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InN0cmluZ2xlbmd0aCI+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9InRyaW0iPnRydWU8L3BhcmFtPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5MZW5ndGgiPjQ8L3BhcmFtPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtYXhMZW5ndGgiPjEwPC9wYXJhbT4NCisgICAgICAgICAgICA8bWVzc2FnZT5QYXNzd29yZCBsZW5ndGggaXMgbm90IGluIHRoZSByYW5nZSA0IHRocm91Z2ggMTAuPC9tZXNzYWdlPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorICAgIDxmaWVsZCBuYW1lPSJwYXNzd29yZDIiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2U+Q29uZmlybWF0aW9uIHBhc3N3b3JkIGlzIHJlcXVpcmVkPC9tZXNzYWdlPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorICAgIDx2YWxpZGF0b3IgdHlwZT0iZXhwcmVzc2lvbiI+DQorICAgICAgICA8cGFyYW0gbmFtZT0iZXhwcmVzc2lvbiI+cGFzc3dvcmQgZXEgcGFzc3dvcmQyPC9wYXJhbT4NCisgICAgICAgIDxtZXNzYWdlPkludmFsaWQgdXNlcm5hbWUgYW5kL29yIHBhc3N3b3JkLCBwbGVhc2UgdHJ5IGFnYWluPC9tZXNzYWdlPg0KKyAgICA8L3ZhbGlkYXRvcj4NCisNCis8L3ZhbGlkYXRvcnM+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvc3JjL2phdmEvUmVnaXN0ZXIuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy9qYXZhL1JlZ2lzdGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzMzNzMzMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy9qYXZhL1JlZ2lzdGVyLmphdmEKQEAgLTAsMCArMSwyMyBAQAoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKKworcHVibGljIGNsYXNzIFJlZ2lzdGVyIGV4dGVuZHMgTWFpbFJlYWRlclN1cHBvcnQgeworCisgICAgcHVibGljIFN0cmluZyBzYXZlKCkKKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIFVzZXIgdXNlciA9IGZpbmRVc2VyKGdldFVzZXJuYW1lKCksIGdldFBhc3N3b3JkKCkpOworICAgICAgICBib29sZWFuIGhhdmVVc2VyID0gKHVzZXIgIT0gbnVsbCk7CisKKyAgICAgICAgaWYgKGhhdmVVc2VyKSB7CisgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihFUlJPUl9VU0VSTkFNRV9VTklRVUUpOworICAgICAgICAgICAgcmV0dXJuIElOUFVUOworICAgICAgICB9CisKKyAgICAgICAgY3JlYXRlVXNlcihnZXRVc2VybmFtZSgpLCBnZXRQYXNzd29yZCgpKTsKKworICAgICAgICBzYXZlVXNlcigpOworCisgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvc3JjL2phdmEvZGF0YWJhc2UueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvc3JjL2phdmEvZGF0YWJhc2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiYzgzM2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvamF2YS9kYXRhYmFzZS54bWwKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0nMS4wJz8+Cis8ZGF0YWJhc2U+CisgICAgPHVzZXIgdXNlcm5hbWU9InVzZXIiIGZyb21BZGRyZXNzPSJKb2huLlVzZXJAc29tZXdoZXJlLmNvbSIKKyAgICAgICAgICBmdWxsTmFtZT0iSm9obiBRLiBVc2VyIiBwYXNzd29yZD0icGFzcyI+CisgICAgICAgIDxzdWJzY3JpcHRpb24gaG9zdD0ibWFpbC5ob3RtYWlsLmNvbSIgYXV0b0Nvbm5lY3Q9ImZhbHNlIgorICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkPSJiYXIiIHR5cGU9InBvcDMiIHVzZXJuYW1lPSJ1c2VyMTIzNCI+CisgICAgICAgIDwvc3Vic2NyaXB0aW9uPgorICAgICAgICA8c3Vic2NyaXB0aW9uIGhvc3Q9Im1haWwueWFob28uY29tIiBhdXRvQ29ubmVjdD0iZmFsc2UiIHBhc3N3b3JkPSJmb28iCisgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaW1hcCIgdXNlcm5hbWU9ImpxdXNlciI+CisgICAgICAgIDwvc3Vic2NyaXB0aW9uPgorICAgIDwvdXNlcj4KKzwvZGF0YWJhc2U+CisgICAgICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy9qYXZhL3Jlc291cmNlcy5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvc3JjL2phdmEvcmVzb3VyY2VzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWZhYWVjNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy9qYXZhL3Jlc291cmNlcy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMiBAQAoraGVsbG8ubWVzc2FnZSA9IENvbmdyYXR1bGF0aW9ucyEgU3RydXRzIGlzIHVwIGFuZCBydW5uaW5nIC4uLgorIyBBZGQgeW91ciBtZXNzYWdlcyBoZXJlIC4uLgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvc3JjL2phdmEvc3RydXRzLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy9qYXZhL3N0cnV0cy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODlkM2ZmZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy9qYXZhL3N0cnV0cy54bWwKQEAgLTAsMCArMSwzNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+Cis8IURPQ1RZUEUgc3RydXRzIFBVQkxJQworICAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAyLjAvL0VOIgorICAgICAgICAiaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL2R0ZHMvc3RydXRzLTIuMC5kdGQiPgorCis8c3RydXRzPgorICAgIDxjb25zdGFudCBuYW1lPSJzdHJ1dHMuZGV2TW9kZSIgdmFsdWU9InRydWUiLz4KKyAgICA8Y29uc3RhbnQgbmFtZT0ic3RydXRzLmVuYWJsZS5EeW5hbWljTWV0aG9kSW52b2NhdGlvbiIgdmFsdWU9ImZhbHNlIi8+CisKKyAgICA8cGFja2FnZSBuYW1lPSJkZWZhdWx0IiBleHRlbmRzPSJzdHJ1dHMtZGVmYXVsdCI+CisKKyAgICAgICAgPGRlZmF1bHQtYWN0aW9uLXJlZiBuYW1lPSJNaXNzaW5nIi8+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJIZWxsbyIgY2xhc3M9IkhlbGxvIj4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL0hlbGxvLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9Ik1pc3NpbmciPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvTWlzc2luZy5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJXZWxjb21lIj4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL1dlbGNvbWUuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iUmVnaXN0ZXIiIGNsYXNzPSJSZWdpc3RlciIgbWV0aG9kPSJpbnB1dCI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvUmVnaXN0ZXIuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iUmVnaXN0ZXJfc2F2ZSIgY2xhc3M9IlJlZ2lzdGVyIiBtZXRob2Q9InNhdmUiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL1JlZ2lzdGVyLmpzcDwvcmVzdWx0PgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvTWlzc2luZy5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICA8L3BhY2thZ2U+Cis8L3N0cnV0cz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy90ZXN0L0hlbGxvVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvc3JjL3Rlc3QvSGVsbG9UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBkZWJmNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy90ZXN0L0hlbGxvVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTYgQEAKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CisKKy8qKgorICogQW4gZXhhbXBsZSB0ZXh0IGNsYXNzIHRvIHZlcmlmeSB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworcHVibGljIGNsYXNzIEhlbGxvVGVzdCBleHRlbmRzIFRlc3RDYXNlIHsKKworICAgIC8qKgorICAgICAqIEFuIGV4YW1wbGUgdGVzdCB0aGF0IGFzc2VydHMgdHJ1ZS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIE9uIGludmFsaWQgYXNzZXJ0aW9ucworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RIZWxsb0FjdGlvbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBhc3NlcnRUcnVlKHRydWUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy90ZXN0L1JlZ2lzdGVyVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvc3JjL3Rlc3QvUmVnaXN0ZXJUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzE2NTNiNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy90ZXN0L1JlZ2lzdGVyVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzQgQEAKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworCitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CisKK3B1YmxpYyBjbGFzcyBSZWdpc3RlclRlc3QgZXh0ZW5kcyBSZXRhaW5UZXN0IHsKKworICAgIFJlZ2lzdGVyIGFjdGlvbiA9IG51bGw7CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci5zZXRVcCgpOworICAgICAgICBhY3Rpb24gPSBuZXcgUmVnaXN0ZXIoKTsKKyAgICAgICAgYWN0aW9uLnNldEFwcGxpY2F0aW9uKG5ldyBIYXNoTWFwKCkpOworICAgICAgICBhY3Rpb24uc2V0RGF0YWJhc2UoZGF0YWJhc2UpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RTYXZlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgYWN0aW9uLnNldFVzZXJuYW1lKCJ1c2VyIik7CisgICAgICAgIGFjdGlvbi5zZXRQYXNzd29yZCgicGFzcyIpOworICAgICAgICBhY3Rpb24uc2V0RnVsbE5hbWUoIkpvaG4gUS4gVXNlciIpOworICAgICAgICBhY3Rpb24uc2V0RnJvbUFkZHJlc3MoIkpvaG4uVXNlckBzb21ld2hlcmUuY29tIik7CisKKyAgICAgICAgU3RyaW5nIHN1Y2Nlc3MgPSBhY3Rpb24uc2F2ZSgpOworICAgICAgICBhc3NlcnRUcnVlKCJFeHBlY3RlZCBTVUNDRVNTIiwgQWN0aW9uLlNVQ0NFU1MuZXF1YWxzKHN1Y2Nlc3MpKTsKKworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROb3ROdWxsKCJFeHBlY3RlZCB1c2VyIiwgdXNlcik7CisKKyAgICAgICAgU3RyaW5nIGlucHV0ID0gYWN0aW9uLnNhdmUoKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiRXhwZWN0ZWQgSU5QVVQiLCBBY3Rpb24uSU5QVVQuZXF1YWxzKGlucHV0KSk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvdGVzdC9SZXRhaW5UZXN0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvdGVzdC9SZXRhaW5UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY2NmY3MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy90ZXN0L1JldGFpblRlc3QuamF2YQpAQCAtMCwwICsxLDk3IEBACitpbXBvcnQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uU3Vic2NyaXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXJEYXRhYmFzZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLmltcGwubWVtb3J5Lk1lbW9yeVVzZXJEYXRhYmFzZTsKKworcHVibGljIGNsYXNzIFJldGFpblRlc3QgZXh0ZW5kcyBUZXN0Q2FzZSB7CisKKyAgICBwcm90ZWN0ZWQgVXNlckRhdGFiYXNlIGRhdGFiYXNlOworICAgIHByb3RlY3RlZCBTdHJpbmcgdGVzdE5hbWUgPSAidGVzdC1kYXRhYmFzZS54bWwiOworCisgICAgcHVibGljIHZvaWQgc2V0VXAoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgc3VwZXIuc2V0VXAoKTsKKyAgICAgICAgTWVtb3J5VXNlckRhdGFiYXNlIG1lbW9yeVVzZXJEYXRhYmFzZSA9IG5ldyBNZW1vcnlVc2VyRGF0YWJhc2UoKTsKKyAgICAgICAgbWVtb3J5VXNlckRhdGFiYXNlLnNldFBhdGhuYW1lKHRlc3ROYW1lKTsKKyAgICAgICAgZGF0YWJhc2UgPSBtZW1vcnlVc2VyRGF0YWJhc2U7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdERhdGFiYXNlQ2xlYW4oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuZmluZFVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0TnVsbCgiRXhwZWN0ZWQgdXNlciB0byBiZSBtaXNzaW5nIiwgdXNlcik7CisgICAgfQorCisgICAgLy8gIEFkZCB5b3VyIHRlc3QgbWV0aG9kcyBoZXJlLgorICAgIC8vICBUaGUgc2V0VXAgbWV0aG9kIHdpbGwgcnVuIGJldHdlZW4gZWFjaCB0ZXN0LgorCisgICAgcHVibGljIHZvaWQgdGVzdENyZWF0ZVVzZXIoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROb3ROdWxsKHVzZXIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kVXNlcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIxID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICBVc2VyIHVzZXIyID0gZGF0YWJhc2UuZmluZFVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0U2FtZSgiRXhwZWN0ZWQgdXNlcnMgdG8gbWF0Y2giLCB1c2VyMSwgdXNlcjIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RDcmVhdGVTdWJzY3JpcHRpb24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YiA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKS5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwueWFob28uY29tIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoIkV4cGVjdGVkIHN1YnNjcmlwdGlvbiB0byBiZSBjcmVhdGVkIiwgc3ViKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RmluZFN1YnNjcmlwdGlvbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMSA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKS5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwueWFob28uY29tIik7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIyID0gZGF0YWJhc2UuZmluZFVzZXIoInVzZXIiKS5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLnlhaG9vLmNvbSIpOworICAgICAgICBhc3NlcnRTYW1lKCJFeHBlY3RlZCBTdWJzY3JpcHRpb25zIHRvIG1hdGNoIiwgc3ViMSwgc3ViMik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdERhdGFic2FlU2F2ZSgpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsKKyAgICAgICAgdXNlci5zZXRQYXNzd29yZCgicGFzcyIpOworICAgICAgICB1c2VyLnNldEZ1bGxOYW1lKCJKb2huIFEuIFVzZXIiKTsKKyAgICAgICAgdXNlci5zZXRGcm9tQWRkcmVzcygiSm9obi5Vc2VyQHNvbWV3aGVyZS5jb20iKTsKKworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMSA9IHVzZXIuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLmhvdG1haWwuY29tIik7CisgICAgICAgIHN1YjEuc2V0VXNlcm5hbWUoInVzZXIxMjM0Iik7CisgICAgICAgIHN1YjEuc2V0QXV0b0Nvbm5lY3QoZmFsc2UpOworICAgICAgICBzdWIxLnNldFR5cGUoInBvcDMiKTsKKyAgICAgICAgc3ViMS5zZXRQYXNzd29yZCgiYmFyIik7CisKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjIgPSB1c2VyLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsKKyAgICAgICAgc3ViMi5zZXRVc2VybmFtZSgianF1c2VyIik7CisgICAgICAgIHN1YjIuc2V0QXV0b0Nvbm5lY3QoZmFsc2UpOworICAgICAgICBzdWIyLnNldFR5cGUoImltYXAiKTsKKyAgICAgICAgc3ViMi5zZXRQYXNzd29yZCgiZm9vIik7CisKKyAgICAgICAgZGF0YWJhc2Uuc2F2ZSgpOworCisgICAgfQorCisgICAgLy8gRXh0cmEgY3JlZGl0CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RmluZGVyVXNlckJvZ3VzKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVzZXIgdXNlcjEgPSBkYXRhYmFzZS5maW5kVXNlcigiYm9ndXMiKTsKKyAgICAgICAgYXNzZXJ0TnVsbCgiRXhwZWN0ZWQgYm9ndXMgdXNlciB0byBiZSBub3QgZm91bmQiLCB1c2VyMSk7CisgICAgICAgIFVzZXIgdXNlcjIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoIkV4cGVjdGVkIHVzZXIgdG8gYmUgY3JlYXRlZCIsIHVzZXIyKTsKKyAgICAgICAgdXNlcjEgPSBkYXRhYmFzZS5maW5kVXNlcigiYm9ndXMiKTsKKyAgICAgICAgYXNzZXJ0TnVsbCgiRXhwZWN0ZWQgYm9ndXMgdXNlciB0byBiZSBub3QgZm91bmQiLCB1c2VyMSk7CisgICAgICAgIHVzZXIxID0gZGF0YWJhc2UuZmluZFVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRXhwZWN0ZWQgdXNlciB0byBiZSBmb3VuZCIsIHVzZXIxKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RmluZFN1YkJvZ3VzKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YiA9IHVzZXIuZmluZFN1YnNjcmlwdGlvbigibWFpbC5ib2d1cy5jb20iKTsKKyAgICAgICAgYXNzZXJ0TnVsbChzdWIpOworICAgICAgICBzdWIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC5ob3RtYWlsLmNvbSIpOworICAgICAgICBhc3NlcnROb3ROdWxsKHN1Yik7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIyID0gdXNlci5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLmJvZ3VzLmNvbSIpOworICAgICAgICBhc3NlcnROdWxsKHN1YjIpOworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMyA9IHVzZXIuZmluZFN1YnNjcmlwdGlvbigibWFpbC5ob3RtYWlsLmNvbSIpOworICAgICAgICBhc3NlcnRTYW1lKHN1Yiwgc3ViMyk7CisgICAgfQorCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTUxZWE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKQEAgLTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIHdlYi1hcHAgUFVCTElDICItLy9TdW4gTWljcm9zeXN0ZW1zLCBJbmMuLy9EVEQgV2ViIEFwcGxpY2F0aW9uIDIuMy8vRU4iICJodHRwOi8vamF2YS5zdW4uY29tL2R0ZC93ZWItYXBwXzJfMy5kdGQiPgorPHdlYi1hcHA+CisKKyAgICA8ZGlzcGxheS1uYW1lPlN0cnV0cyAyIE1haWxyZWFkZXI8L2Rpc3BsYXktbmFtZT4KKworICAgIDxmaWx0ZXI+CisgICAgICAgIDxmaWx0ZXItbmFtZT5TdHJ1dHMyPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPGZpbHRlci1jbGFzcz4KKyAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzMi5kaXNwYXRjaGVyLkZpbHRlckRpc3BhdGNoZXIKKyAgICAgICAgPC9maWx0ZXItY2xhc3M+CisgICAgPC9maWx0ZXI+CisKKyAgICA8ZmlsdGVyLW1hcHBpbmc+CisgICAgICAgIDxmaWx0ZXItbmFtZT5TdHJ1dHMyPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPHVybC1wYXR0ZXJuPi8qPC91cmwtcGF0dGVybj4KKyAgICA8L2ZpbHRlci1tYXBwaW5nPgorCisgICAgPCEtLSBBcHBsaWNhdGlvbiBMaXN0ZW5lciBmb3IgTWFpbHJlYWRlciBkYXRhYmFzZSAtLT4KKyAgICA8bGlzdGVuZXI+CisgICAgICAgIDxsaXN0ZW5lci1jbGFzcz4KKyAgICAgICAgICAgIERhdGFiYXNlTGlzdGVuZXIKKyAgICAgICAgPC9saXN0ZW5lci1jbGFzcz4KKyAgICA8L2xpc3RlbmVyPgorCisgICAgPHdlbGNvbWUtZmlsZS1saXN0PgorICAgICAgICA8d2VsY29tZS1maWxlPmluZGV4Lmh0bWw8L3dlbGNvbWUtZmlsZT4KKyAgICA8L3dlbGNvbWUtZmlsZS1saXN0PgorCis8L3dlYi1hcHA+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvd2ViYXBwL2luZGV4Lmh0bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvd2ViYXBwL2luZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI4ZDVmNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy93ZWJhcHAvaW5kZXguaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8TUVUQSBIVFRQLUVRVUlWPSJSZWZyZXNoIiBDT05URU5UPSIwO1VSTD1XZWxjb21lLmFjdGlvbiI+Cis8L2hlYWQ+CisKKzxib2R5PgorPHA+TG9hZGluZyAuLi48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvd2ViYXBwL3BhZ2VzL0hlbGxvLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8uanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlOWQ4N2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvd2ViYXBwL3BhZ2VzL0hlbGxvLmpzcApAQCAtMCwwICsxLDEyIEBACis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5IZWxsbzwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgyPgorICAgIDxzOnRleHQgbmFtZT0iaGVsbG8ubWVzc2FnZSIvPgorPC9oMj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy93ZWJhcHAvcGFnZXMvTWlzc2luZy5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvd2ViYXBwL3BhZ2VzL01pc3NpbmcuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyMWIwOGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvd2ViYXBwL3BhZ2VzL01pc3NpbmcuanNwCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+PHRpdGxlPk1pc3NpbmcgRmVhdHVyZTwvdGl0bGU+PC9oZWFkPgorCis8Ym9keT4KKzxwPgorICAgIFRoaXMgZmVhdHVyZSBpcyB1bmRlciBjb25zdHJ1Y3Rpb24uCisgICAgUGxlYXNlIHRyeSBhZ2FpbiBpbiB0aGUgbmV4dCBpbnRlcmF0aW9uLgorPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvc3JjL3dlYmFwcC9wYWdlcy9SZWdpc3Rlci5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvd2ViYXBwL3BhZ2VzL1JlZ2lzdGVyLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODE5NGU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZWdpc3RlcjIvc3JjL3dlYmFwcC9wYWdlcy9SZWdpc3Rlci5qc3AKQEAgLTAsMCArMSwyNyBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+TWFpbFJlYWRlciAtIFJlZ2lzdGVyPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHkgb25Mb2FkPSJzZWxmLmZvY3VzKCk7ZG9jdW1lbnQuUmVnaXN0ZXJfc2F2ZS51c2VybmFtZS5mb2N1cygpIj4KKzxzOmFjdGlvbmVycm9yLz4KKzxzOmZvcm0gYWN0aW9uPSJSZWdpc3Rlcl9zYXZlIj4KKworICAgIDxzOnRleHRmaWVsZCBsYWJlbD0iVXNlcm5hbWUiIG5hbWU9InVzZXJuYW1lIi8+CisKKyAgICA8czpwYXNzd29yZCBsYWJlbD0iUGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkIi8+CisKKyAgICA8czpwYXNzd29yZCBsYWJlbD0iKFJlcGVhdCkgUGFzc3dvcmQiIG5hbWU9InBhc3N3b3JkMiIvPgorCisgICAgPHM6dGV4dGZpZWxkIGxhYmVsPSJGdWxsIE5hbWUiIG5hbWU9ImZ1bGxOYW1lIi8+CisKKyAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IkZyb20gQWRkcmVzcyIgbmFtZT0iZnJvbUFkZHJlc3MiLz4KKworICAgIDxzOnRleHRmaWVsZCBsYWJlbD0iUmVwbHkgVG8gQWRkcmVzcyIgbmFtZT0icmVwbHlUb0FkZHJlc3MiLz4KKworICAgIDxzOnN1Ym1pdCB2YWx1ZT0iU2F2ZSIgbmFtZT0iU2F2ZSIvPgorCis8L3M6Zm9ybT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmVnaXN0ZXIyL3NyYy93ZWJhcHAvcGFnZXMvV2VsY29tZS5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvd2ViYXBwL3BhZ2VzL1dlbGNvbWUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5ZDgwODYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JlZ2lzdGVyMi9zcmMvd2ViYXBwL3BhZ2VzL1dlbGNvbWUuanNwCkBAIC0wLDAgKzEsMjIgQEAKKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPk1haWxSZWFkZXI8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxoMz5NYWlsUmVhZGVyIE9wdGlvbnM8L2gzPgorPHVsPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJSZWdpc3RlciIvPiI+UmVnaXN0ZXIgd2l0aCB0aGUgTWFpbFJlYWRlcjwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJNaXNzaW5nIi8+Ij5Mb2cgb24gdG8gdGhlIE1haWxSZWFkZXI8L2E+PC9saT4KKzwvdWw+CisKKzxoMz5MYW5ndWFnZSBPcHRpb25zPC9oMz4KKzx1bD4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iTWlzc2luZyIvPiI+RW5nbGlzaDwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJNaXNzaW5nIi8+Ij5KYXBhbmVzZTwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJNaXNzaW5nIi8+Ij5SdXNzaWFuPC9hPjwvbGk+Cis8L3VsPgorCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vTUVUQS1JTkYvY29udGV4dC54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JldGFpbi9NRVRBLUlORi9jb250ZXh0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBiNWQwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vTUVUQS1JTkYvY29udGV4dC54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPENvbnRleHQgcGF0aD0iLyI+Cis8L0NvbnRleHQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JldGFpbi9yZXRhaW4uaW1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vcmV0YWluLmltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2I5OGZkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vcmV0YWluLmltbApAQCAtMCwwICsxLDYzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxtb2R1bGUgdmVyc2lvbj0iNCIgcmVsYXRpdmVQYXRocz0idHJ1ZSIgdHlwZT0iSjJFRV9XRUJfTU9EVUxFIiBqMmVlLWludGVncmF0aW9uPSJUb21jYXQgU2VydmVyIj4NCisgIDxjb21wb25lbnQgbmFtZT0iQXBwU2VydmVyU3BlY2lmaWNWYWxpZGF0b3JzTWFuYWdlciIgLz4NCisgIDxjb21wb25lbnQgbmFtZT0iTW9kdWxlUm9vdE1hbmFnZXIiIC8+DQorICA8Y29tcG9uZW50IG5hbWU9Ik5ld01vZHVsZVJvb3RNYW5hZ2VyIiBpbmhlcml0LWNvbXBpbGVyLW91dHB1dD0iZmFsc2UiPg0KKyAgICA8b3V0cHV0IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy9yZXRhaW4vV0VCLUlORi9jbGFzc2VzIiAvPg0KKyAgICA8ZXhjbHVkZS1vdXRwdXQgLz4NCisgICAgPGV4cGxvZGVkIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy9yZXRhaW4iIC8+DQorICAgIDxleGNsdWRlLWV4cGxvZGVkIC8+DQorICAgIDxjb250ZW50IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJCI+DQorICAgICAgPHNvdXJjZUZvbGRlciB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL2phdmEiIGlzVGVzdFNvdXJjZT0iZmFsc2UiIC8+DQorICAgICAgPHNvdXJjZUZvbGRlciB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3Rlc3QiIGlzVGVzdFNvdXJjZT0idHJ1ZSIgLz4NCisgICAgPC9jb250ZW50Pg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJpbmhlcml0ZWRKZGsiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9InNvdXJjZUZvbGRlciIgZm9yVGVzdHM9ImZhbHNlIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJTdHJ1dHMyIiBsZXZlbD0icHJvamVjdCIgLz4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ibGlicmFyeSIgbmFtZT0iTWFpbHJlYWRlci1kYW8iIGxldmVsPSJwcm9qZWN0IiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeVByb3BlcnRpZXMgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJNb2R1bGVCdWlsZENvbXBvbmVudCI+DQorICAgIDxzZXR0aW5nIG5hbWU9IkVYUExPREVEX1VSTCIgdmFsdWU9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvcmV0YWluIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJFWFBMT0RFRF9FTkFCTEVEIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iSkFSX1VSTCIgdmFsdWU9ImZpbGU6Ly8iIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkpBUl9FTkFCTEVEIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IlNZTkNfRVhQTE9ERURfRElSIiB2YWx1ZT0idHJ1ZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iQlVJTERfTU9EVUxFX09OX0ZSQU1FX0RFQUNUSVZBVElPTiIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJCVUlMRF9FWFRFUk5BTF9ERVBFTkRFTkNJRVMiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iUlVOX0pBU1BFUl9WQUxJREFUSU9OIiB2YWx1ZT0iZmFsc2UiIC8+DQorICA8L2NvbXBvbmVudD4NCisgIDxjb21wb25lbnQgbmFtZT0iV2ViTW9kdWxlUHJvcGVydGllcyI+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMCIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9IiZsdDtOL0EmZ3Q7IiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMSIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9Ii9XRUItSU5GL2xpYiIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJNYWlscmVhZGVyLWRhbyIgbGV2ZWw9InByb2plY3QiPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMSIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9Ii9XRUItSU5GL2xpYiIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJTdHJ1dHMyIiBsZXZlbD0icHJvamVjdCI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSJ3ZWIueG1sIiB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwiIG9wdGlvbmFsPSJmYWxzZSIgdmVyc2lvbj0iMi4zIiAvPg0KKyAgICA8ZGVwbG95bWVudERlc2NyaXB0b3IgbmFtZT0iY29udGV4dC54bWwiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9NRVRBLUlORi9jb250ZXh0LnhtbCIgb3B0aW9uYWw9ImZhbHNlIiB2ZXJzaW9uPSI1LngiIC8+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSIiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9NRVRBLUlORi9jb250ZXh0LnhtbCIgb3B0aW9uYWw9ImZhbHNlIj4NCisgICAgICA8b3B0aW9uIG5hbWU9IkRFRkFVTFRfRElSIiB2YWx1ZT0iV0VCLUlORiIgLz4NCisgICAgICA8b3B0aW9uIG5hbWU9Ik5BTUUiIHZhbHVlPSIiIC8+DQorICAgICAgPG9wdGlvbiBuYW1lPSJERVNDUklQVElPTiIgdmFsdWU9IiIgLz4NCisgICAgPC9kZXBsb3ltZW50RGVzY3JpcHRvcj4NCisgICAgPHdlYnJvb3RzPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvd2ViYXBwIiByZWxhdGl2ZT0iLyIgLz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL2phdmEiIHJlbGF0aXZlPSIvV0VCLUlORi9zcmMvamF2YSIgLz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3Rlc3QiIHJlbGF0aXZlPSIvV0VCLUlORi9zcmMvdGVzdCIgLz4NCisgICAgPC93ZWJyb290cz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJsb2dpY1dlYk1vZHVsZVByb3BlcnRpZXMiIC8+DQorPC9tb2R1bGU+DQorDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vc3JjL2phdmEvSGVsbG8uamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmV0YWluL3NyYy9qYXZhL0hlbGxvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JkMzUwNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmV0YWluL3NyYy9qYXZhL0hlbGxvLmphdmEKQEAgLTAsMCArMSwxNiBAQAoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvblN1cHBvcnQ7CisKKy8qKgorICogRXhhbXBsZSBBY3Rpb24gY2xhc3MuCisgKi8KK3B1YmxpYyBjbGFzcyBIZWxsbyBleHRlbmRzIEFjdGlvblN1cHBvcnQgeworCisgICAgLyoqCisgICAgICogQW4gZXhhbXBsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGRvZXMgbm90aGluZyBhbmQgcmV0dXJucyAic3VjY2VzcyIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHtAbGluayAjU1VDQ0VTU30KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vc3JjL2phdmEvcmVzb3VyY2VzLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JldGFpbi9zcmMvamF2YS9yZXNvdXJjZXMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmFhZWM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vc3JjL2phdmEvcmVzb3VyY2VzLnByb3BlcnRpZXMKQEAgLTAsMCArMSwyIEBACitoZWxsby5tZXNzYWdlID0gQ29uZ3JhdHVsYXRpb25zISBTdHJ1dHMgaXMgdXAgYW5kIHJ1bm5pbmcgLi4uCisjIEFkZCB5b3VyIG1lc3NhZ2VzIGhlcmUgLi4uCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JldGFpbi9zcmMvamF2YS9zdHJ1dHMueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vc3JjL2phdmEvc3RydXRzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTZiMGYyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vc3JjL2phdmEvc3RydXRzLnhtbApAQCAtMCwwICsxLDI3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4KKzwhRE9DVFlQRSBzdHJ1dHMgUFVCTElDCisgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDIuMC8vRU4iCisgICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtMi4wLmR0ZCI+CisKKzxzdHJ1dHM+CisgICAgPGNvbnN0YW50IG5hbWU9InN0cnV0cy5kZXZNb2RlIiB2YWx1ZT0idHJ1ZSIvPgorICAgIDxjb25zdGFudCBuYW1lPSJzdHJ1dHMuZW5hYmxlLkR5bmFtaWNNZXRob2RJbnZvY2F0aW9uIiB2YWx1ZT0iZmFsc2UiLz4KKworICAgIDxwYWNrYWdlIG5hbWU9ImRlZmF1bHQiIGV4dGVuZHM9InN0cnV0cy1kZWZhdWx0Ij4KKworICAgICAgICA8ZGVmYXVsdC1hY3Rpb24tcmVmIG5hbWU9Ik1pc3NpbmciLz4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IkhlbGxvIiBjbGFzcz0iSGVsbG8iPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvSGVsbG8uanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTWlzc2luZyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9NaXNzaW5nLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IldlbGNvbWUiPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvV2VsY29tZS5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICA8L3BhY2thZ2U+Cis8L3N0cnV0cz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmV0YWluL3NyYy90ZXN0L0hlbGxvVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vc3JjL3Rlc3QvSGVsbG9UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBkZWJmNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmV0YWluL3NyYy90ZXN0L0hlbGxvVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTYgQEAKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CisKKy8qKgorICogQW4gZXhhbXBsZSB0ZXh0IGNsYXNzIHRvIHZlcmlmeSB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworcHVibGljIGNsYXNzIEhlbGxvVGVzdCBleHRlbmRzIFRlc3RDYXNlIHsKKworICAgIC8qKgorICAgICAqIEFuIGV4YW1wbGUgdGVzdCB0aGF0IGFzc2VydHMgdHJ1ZS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIE9uIGludmFsaWQgYXNzZXJ0aW9ucworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RIZWxsb0FjdGlvbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBhc3NlcnRUcnVlKHRydWUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmV0YWluL3NyYy90ZXN0L1JldGFpblRlc3QuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmV0YWluL3NyYy90ZXN0L1JldGFpblRlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjY2ZjczCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vc3JjL3Rlc3QvUmV0YWluVGVzdC5qYXZhCkBAIC0wLDAgKzEsOTcgQEAKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5TdWJzY3JpcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlckRhdGFiYXNlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uaW1wbC5tZW1vcnkuTWVtb3J5VXNlckRhdGFiYXNlOworCitwdWJsaWMgY2xhc3MgUmV0YWluVGVzdCBleHRlbmRzIFRlc3RDYXNlIHsKKworICAgIHByb3RlY3RlZCBVc2VyRGF0YWJhc2UgZGF0YWJhc2U7CisgICAgcHJvdGVjdGVkIFN0cmluZyB0ZXN0TmFtZSA9ICJ0ZXN0LWRhdGFiYXNlLnhtbCI7CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci5zZXRVcCgpOworICAgICAgICBNZW1vcnlVc2VyRGF0YWJhc2UgbWVtb3J5VXNlckRhdGFiYXNlID0gbmV3IE1lbW9yeVVzZXJEYXRhYmFzZSgpOworICAgICAgICBtZW1vcnlVc2VyRGF0YWJhc2Uuc2V0UGF0aG5hbWUodGVzdE5hbWUpOworICAgICAgICBkYXRhYmFzZSA9IG1lbW9yeVVzZXJEYXRhYmFzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGF0YWJhc2VDbGVhbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCB1c2VyIHRvIGJlIG1pc3NpbmciLCB1c2VyKTsKKyAgICB9CisKKyAgICAvLyAgQWRkIHlvdXIgdGVzdCBtZXRob2RzIGhlcmUuCisgICAgLy8gIFRoZSBzZXRVcCBtZXRob2Qgd2lsbCBydW4gYmV0d2VlbiBlYWNoIHRlc3QuCisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q3JlYXRlVXNlcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE5vdE51bGwodXNlcik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEZpbmRVc2VyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVzZXIgdXNlcjEgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIFVzZXIgdXNlcjIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnRTYW1lKCJFeHBlY3RlZCB1c2VycyB0byBtYXRjaCIsIHVzZXIxLCB1c2VyMik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdENyZWF0ZVN1YnNjcmlwdGlvbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRXhwZWN0ZWQgc3Vic2NyaXB0aW9uIHRvIGJlIGNyZWF0ZWQiLCBzdWIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kU3Vic2NyaXB0aW9uKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIxID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpLmZpbmRTdWJzY3JpcHRpb24oIm1haWwueWFob28uY29tIik7CisgICAgICAgIGFzc2VydFNhbWUoIkV4cGVjdGVkIFN1YnNjcmlwdGlvbnMgdG8gbWF0Y2giLCBzdWIxLCBzdWIyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGF0YWJzYWVTYXZlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICB1c2VyLnNldFBhc3N3b3JkKCJwYXNzIik7CisgICAgICAgIHVzZXIuc2V0RnVsbE5hbWUoIkpvaG4gUS4gVXNlciIpOworICAgICAgICB1c2VyLnNldEZyb21BZGRyZXNzKCJKb2huLlVzZXJAc29tZXdoZXJlLmNvbSIpOworCisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIxID0gdXNlci5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwuaG90bWFpbC5jb20iKTsKKyAgICAgICAgc3ViMS5zZXRVc2VybmFtZSgidXNlcjEyMzQiKTsKKyAgICAgICAgc3ViMS5zZXRBdXRvQ29ubmVjdChmYWxzZSk7CisgICAgICAgIHN1YjEuc2V0VHlwZSgicG9wMyIpOworICAgICAgICBzdWIxLnNldFBhc3N3b3JkKCJiYXIiKTsKKworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMiA9IHVzZXIuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLnlhaG9vLmNvbSIpOworICAgICAgICBzdWIyLnNldFVzZXJuYW1lKCJqcXVzZXIiKTsKKyAgICAgICAgc3ViMi5zZXRBdXRvQ29ubmVjdChmYWxzZSk7CisgICAgICAgIHN1YjIuc2V0VHlwZSgiaW1hcCIpOworICAgICAgICBzdWIyLnNldFBhc3N3b3JkKCJmb28iKTsKKworICAgICAgICBkYXRhYmFzZS5zYXZlKCk7CisKKyAgICB9CisKKyAgICAvLyBFeHRyYSBjcmVkaXQKKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kZXJVc2VyQm9ndXMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyMSA9IGRhdGFiYXNlLmZpbmRVc2VyKCJib2d1cyIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCBib2d1cyB1c2VyIHRvIGJlIG5vdCBmb3VuZCIsIHVzZXIxKTsKKyAgICAgICAgVXNlciB1c2VyMiA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRXhwZWN0ZWQgdXNlciB0byBiZSBjcmVhdGVkIiwgdXNlcjIpOworICAgICAgICB1c2VyMSA9IGRhdGFiYXNlLmZpbmRVc2VyKCJib2d1cyIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCBib2d1cyB1c2VyIHRvIGJlIG5vdCBmb3VuZCIsIHVzZXIxKTsKKyAgICAgICAgdXNlcjEgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROb3ROdWxsKCJFeHBlY3RlZCB1c2VyIHRvIGJlIGZvdW5kIiwgdXNlcjEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kU3ViQm9ndXMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gdXNlci5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLmJvZ3VzLmNvbSIpOworICAgICAgICBhc3NlcnROdWxsKHN1Yik7CisgICAgICAgIHN1YiA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIikuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLmhvdG1haWwuY29tIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoc3ViKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjIgPSB1c2VyLmZpbmRTdWJzY3JpcHRpb24oIm1haWwuYm9ndXMuY29tIik7CisgICAgICAgIGFzc2VydE51bGwoc3ViMik7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIzID0gdXNlci5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLmhvdG1haWwuY29tIik7CisgICAgICAgIGFzc2VydFNhbWUoc3ViLCBzdWIzKTsKKyAgICB9CisKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JldGFpbi9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmV0YWluL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNjBmOTUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JldGFpbi9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgd2ViLWFwcCBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4zLy9FTiIgImh0dHA6Ly9qYXZhLnN1bi5jb20vZHRkL3dlYi1hcHBfMl8zLmR0ZCI+Cis8d2ViLWFwcD4KKworICAgIDxkaXNwbGF5LW5hbWU+U3RydXRzIDIgTWFpbHJlYWRlcjwvZGlzcGxheS1uYW1lPgorCisgICAgPGZpbHRlcj4KKyAgICAgICAgPGZpbHRlci1uYW1lPlN0cnV0czI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8ZmlsdGVyLWNsYXNzPgorICAgICAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuRmlsdGVyRGlzcGF0Y2hlcgorICAgICAgICA8L2ZpbHRlci1jbGFzcz4KKyAgICA8L2ZpbHRlcj4KKworICAgIDxmaWx0ZXItbWFwcGluZz4KKyAgICAgICAgPGZpbHRlci1uYW1lPlN0cnV0czI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8dXJsLXBhdHRlcm4+Lyo8L3VybC1wYXR0ZXJuPgorICAgIDwvZmlsdGVyLW1hcHBpbmc+CisKKyAgICA8d2VsY29tZS1maWxlLWxpc3Q+CisgICAgICAgIDx3ZWxjb21lLWZpbGU+aW5kZXguaHRtbDwvd2VsY29tZS1maWxlPgorICAgIDwvd2VsY29tZS1maWxlLWxpc3Q+CisKKzwvd2ViLWFwcD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmV0YWluL3NyYy93ZWJhcHAvaW5kZXguaHRtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmV0YWluL3NyYy93ZWJhcHAvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjhkNWY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vc3JjL3dlYmFwcC9pbmRleC5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxNRVRBIEhUVFAtRVFVSVY9IlJlZnJlc2giIENPTlRFTlQ9IjA7VVJMPVdlbGNvbWUuYWN0aW9uIj4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD5Mb2FkaW5nIC4uLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmV0YWluL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8uanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU5ZDg3YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmV0YWluL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8uanNwCkBAIC0wLDAgKzEsMTIgQEAKKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkhlbGxvPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDI+CisgICAgPHM6dGV4dCBuYW1lPSJoZWxsby5tZXNzYWdlIi8+Cis8L2gyPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vc3JjL3dlYmFwcC9wYWdlcy9NaXNzaW5nLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmV0YWluL3NyYy93ZWJhcHAvcGFnZXMvTWlzc2luZy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDIxYjA4YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvcmV0YWluL3NyYy93ZWJhcHAvcGFnZXMvTWlzc2luZy5qc3AKQEAgLTAsMCArMSwxMCBAQAorPGh0bWw+Cis8aGVhZD48dGl0bGU+TWlzc2luZyBGZWF0dXJlPC90aXRsZT48L2hlYWQ+CisKKzxib2R5PgorPHA+CisgICAgVGhpcyBmZWF0dXJlIGlzIHVuZGVyIGNvbnN0cnVjdGlvbi4KKyAgICBQbGVhc2UgdHJ5IGFnYWluIGluIHRoZSBuZXh0IGludGVyYXRpb24uCis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3JldGFpbi9zcmMvd2ViYXBwL3BhZ2VzL1dlbGNvbWUuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vc3JjL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTM3NjhlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9yZXRhaW4vc3JjL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcApAQCAtMCwwICsxLDI0IEBACis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5NYWlsUmVhZGVyPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDM+TWFpbFJlYWRlciBPcHRpb25zPC9oMz4KKworPHVsPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJNaXNzaW5nIi8+Ij5SZWdpc3RlciB3aXRoIE1haWxSZWFkZXI8L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iTWlzc2luZyIvPiI+TG9nIGludG8gTWFpbFJlYWRlcjwvYT48L2xpPgorPC91bD4KKworPGgzPkxhbmd1YWdlIE9wdGlvbnM8L2gzPgorPHVsPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJNaXNzaW5nIi8+Ij5FbmdsaXNoPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249Ik1pc3NpbmciLz4iPkphcGFuZXNlPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249Ik1pc3NpbmciLz4iPlJ1c3NpYW48L2E+PC9saT4KKzwvdWw+CisKKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvTUVUQS1JTkYvY29udGV4dC54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9NRVRBLUlORi9jb250ZXh0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBiNWQwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvTUVUQS1JTkYvY29udGV4dC54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPENvbnRleHQgcGF0aD0iLyI+Cis8L0NvbnRleHQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9EYXRhYmFzZUxpc3RlbmVyLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9EYXRhYmFzZUxpc3RlbmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZhNjRkOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL0RhdGFiYXNlTGlzdGVuZXIuamF2YQpAQCAtMCwwICsxLDIzMCBAQAorLyoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDIsMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqICRJZDogQXBwbGljYXRpb25MaXN0ZW5lci5qYXZhIDM3MjA4NyAyMDA2LTAxLTI1IDAzOjM4OjQyWiBjcmFpZ21jYyAkCisgKi8KKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uaW1wbC5tZW1vcnkuTWVtb3J5VXNlckRhdGFiYXNlOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0RXZlbnQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dExpc3RlbmVyOworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiA8cD48Y29kZT5TZXJ2bGV0Q29udGV4dExpc3RlbmVyPC9jb2RlPiB0aGF0IGluaXRpYWxpemVzIGFuZCBmaW5hbGl6ZXMgdGhlCisgKiBwZXJzaXN0ZW50IHN0b3JhZ2Ugb2YgVXNlciBhbmQgU3Vic2NyaXB0aW9uIGluZm9ybWF0aW9uIGZvciB0aGUgU3RydXRzCisgKiBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uLCB1c2luZyBhbiBpbi1tZW1vcnkgZGF0YWJhc2UgYmFja2VkIGJ5IGFuIFhNTAorICogZmlsZS48L3A+CisgKiA8cC8+CisgKiA8cD48c3Ryb25nPklNUExFTUVOVEFUSU9OIFdBUk5JTkc8L3N0cm9uZz4gLSBJZiB0aGlzIHdlYiBhcHBsaWNhdGlvbiBpcyBydW4KKyAqIGZyb20gYSBXQVIgZmlsZSwgb3IgaW4gYW5vdGhlciBlbnZpcm9ubWVudCB3aGVyZSByZWFkaW5nIGFuZCB3cml0aW5nIG9mIHRoZQorICogd2ViIGFwcGxpY2F0aW9uIHJlc291cmNlIGlzIGltcG9zc2libGUsIHRoZSBpbml0aWFsIGNvbnRlbnRzIHdpbGwgYmUgY29waWVkCisgKiB0byBhIGZpbGUgaW4gdGhlIHdlYiBhcHBsaWNhdGlvbiB0ZW1wb3JhcnkgZGlyZWN0b3J5IHByb3ZpZGVkIGJ5IHRoZQorICogY29udGFpbmVyLiAgVGhpcyBpcyBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlcyBvbmx5IC0geW91IHNob3VsZAorICogPHN0cm9uZz5OT1Q8L3N0cm9uZz4gYXNzdW1lIHRoYXQgZmlsZXMgd3JpdHRlbiBoZXJlIHdpbGwgc3Vydml2ZSBhIHJlc3RhcnQKKyAqIG9mIHlvdXIgc2VydmxldCBjb250YWluZXIuPC9wPgorICogPHAvPgorICogPHA+VGhpcyBjbGFzcyB3YXMgYm9ycm93ZWQgZnJvbSB0aGUgU2hhbGUgTWFpbHJlYWRlci4gQ2hhbmdlcyB3ZXJlOjwvcD4KKyAqIDxwLz4KKyAqIDx1bD4KKyAqIDxwLz4KKyAqIDxsaT5QYXRoIHRvIGRhdGFiYXNlLnhtbCAodW5kZXIgY2xhc3NlcyBoZXJlKS4gPC9saT4KKyAqIDxwLz4KKyAqIDxsaT5DbGFzcyB0byBzdG9yZSBwcm90b2NvbCBsaXN0IChhbiBhcnJheSBoZXJlKS4gPC9saT4KKyAqIDxwLz4KKyAqIDwvdWw+CisgKiA8cC8+CisgKiBERVZFTE9QTUVOVCBOT1RFIC0gQW5vdGhlciBhcHByb2FjaCB3b3VsZCBiZSB0byBpbnN0YW50aWF0ZSB0aGUgZGF0YWJhc2UgdmlhIFNwcmluZy4KKyAqIDwvcD4KKyAqLworCitwdWJsaWMgZmluYWwgY2xhc3MgRGF0YWJhc2VMaXN0ZW5lciBpbXBsZW1lbnRzIFNlcnZsZXRDb250ZXh0TGlzdGVuZXIgeworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE1hbmlmZXN0IENvbnN0YW50cworCisKKyAgICAvKioKKyAgICAgKiA8cD5BcHBpY2F0aW9uIHNjb3BlIGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggdGhlIGluLW1lbW9yeSB2ZXJzaW9uIG9mCisgICAgICogb3VyIGRhdGFiYXNlIGlzIHN0b3JlZC48L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQUJBU0VfS0VZID0gImRhdGFiYXNlIjsKKworCisgICAgLyoqCisgICAgICogPHA+QXBwbGljYXRpb24gc2NvcGUgYXR0cmlidXRlIGtleSB1bmRlciB3aGljaCB0aGUgdmFsaWQgc2VsZWN0aW9uCisgICAgICogaXRlbXMgZm9yIHRoZSBwcm90b2NvbCBwcm9wZXJ0eSBpcyBzdG9yZWQuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBST1RPQ09MU19LRVkgPSAicHJvdG9jb2xzIjsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJbnN0YW5jZSBWYXJpYWJsZXMKKworCisgICAgLyoqCisgICAgICogPHA+VGhlIDxjb2RlPlNlcnZsZXRDb250ZXh0PC9jb2RlPiBmb3IgdGhpcyB3ZWIgYXBwbGljYXRpb24uPC9wPgorICAgICAqLworICAgIHByaXZhdGUgU2VydmxldENvbnRleHQgY29udGV4dCA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIFRoZSB7QGxpbmsgTWVtb3J5VXNlckRhdGFiYXNlfSBvYmplY3Qgd2UgY29uc3RydWN0IGFuZCBtYWtlIGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIE1lbW9yeVVzZXJEYXRhYmFzZSBkYXRhYmFzZSA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIDxwPkxvZ2dpbmcgb3V0cHV0IGZvciB0aGlzIHBsdWcgaW4gaW5zdGFuY2UuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgTG9nIGxvZyA9IExvZ0ZhY3RvcnkuZ2V0TG9nKHRoaXMuZ2V0Q2xhc3MoKSk7CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3BlcnRpZXMKKworCisgICAgLyoqCisgICAgICogPHA+VGhlIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIG9mIG91ciBwZXJzaXN0ZW50IGRhdGFiYXNlIHN0b3JhZ2UKKyAgICAgKiBmaWxlLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXRobmFtZSA9ICIvV0VCLUlORi9jbGFzc2VzL2RhdGFiYXNlLnhtbCI7CisKKyAgICAvKioKKyAgICAgKiA8cD5SZXR1cm4gdGhlIGFwcGxpY2F0aW9uIHJlc291cmNlIHBhdGggdG8gdGhlIGRhdGFiYXNlLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCBwYXRoIHRvIHRoZSBkYXRhYmFzZQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGF0aG5hbWUoKSB7CisgICAgICAgIHJldHVybiAodGhpcy5wYXRobmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0IHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIHRvIHRoZSBkYXRhYmFzZS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gcGF0aG5hbWUgdG8gdGhlIGRhdGFiYXNlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGF0aG5hbWUoU3RyaW5nIHBhdGhuYW1lKSB7CisgICAgICAgIHRoaXMucGF0aG5hbWUgPSBwYXRobmFtZTsKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2VydmxldENvbnRleHRMaXN0ZW5lciBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIDxwPkdyYWNlZnVsbHkgc2h1dCBkb3duIHRoaXMgZGF0YWJhc2UsIHJlbGVhc2luZyBhbnkgcmVzb3VyY2VzIHRoYXQKKyAgICAgKiB3ZXJlIGFsbG9jYXRlZCBhdCBpbml0aWFsaXphdGlvbi48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZXZlbnQgU2VydmxldENvbnRleHRFdmVudCB0byBwcm9jZXNzCisgICAgICovCisgICAgcHVibGljIHZvaWQgY29udGV4dERlc3Ryb3llZChTZXJ2bGV0Q29udGV4dEV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgbG9nLmluZm8oIkZpbmFsaXppbmcgbWVtb3J5IGRhdGFiYXNlIHBsdWcgaW4iKTsKKworICAgICAgICBpZiAoZGF0YWJhc2UgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBkYXRhYmFzZS5jbG9zZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2cuZXJyb3IoIkNsb3NpbmcgbWVtb3J5IGRhdGFiYXNlIiwgZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBjb250ZXh0LnJlbW92ZUF0dHJpYnV0ZShEQVRBQkFTRV9LRVkpOworICAgICAgICBjb250ZXh0LnJlbW92ZUF0dHJpYnV0ZShQUk9UT0NPTFNfS0VZKTsKKyAgICAgICAgZGF0YWJhc2UgPSBudWxsOworICAgICAgICBjb250ZXh0ID0gbnVsbDsKKworICAgIH0KKworCisgICAgLyoqCisgICAgICogPHA+SW5pdGlhbGl6ZSBhbmQgbG9hZCBvdXIgaW5pdGlhbCBkYXRhYmFzZSBmcm9tIHBlcnNpc3RlbnQKKyAgICAgKiBzdG9yYWdlLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBldmVudCBUaGUgY29udGV4dCBpbml0aWFsaXphdGlvbiBldmVudAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbnRleHRJbml0aWFsaXplZChTZXJ2bGV0Q29udGV4dEV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgbG9nLmluZm8oIkluaXRpYWxpemluZyBtZW1vcnkgZGF0YWJhc2UgcGx1ZyBpbiBmcm9tICciICsKKyAgICAgICAgICAgICAgICBwYXRobmFtZSArICInIik7CisKKyAgICAgICAgLy8gUmVtZW1iZXIgb3VyIGFzc29jaWF0ZWQgU2VydmxldENvbnRleHQKKyAgICAgICAgdGhpcy5jb250ZXh0ID0gZXZlbnQuZ2V0U2VydmxldENvbnRleHQoKTsKKworICAgICAgICAvLyBDb25zdHJ1Y3QgYSBuZXcgZGF0YWJhc2UgYW5kIG1ha2UgaXQgYXZhaWxhYmxlCisgICAgICAgIGRhdGFiYXNlID0gbmV3IE1lbW9yeVVzZXJEYXRhYmFzZSgpOworICAgICAgICB0cnkgeworICAgICAgICAgICAgU3RyaW5nIHBhdGggPSBjYWxjdWxhdGVQYXRoKCk7CisgICAgICAgICAgICBpZiAobG9nLmlzRGVidWdFbmFibGVkKCkpIHsKKyAgICAgICAgICAgICAgICBsb2cuZGVidWcoIiBMb2FkaW5nIGRhdGFiYXNlIGZyb20gJyIgKyBwYXRoICsgIiciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRhdGFiYXNlLnNldFBhdGhuYW1lKHBhdGgpOworICAgICAgICAgICAgZGF0YWJhc2Uub3BlbigpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgbG9nLmVycm9yKCJPcGVuaW5nIG1lbW9yeSBkYXRhYmFzZSIsIGUpOworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbigiQ2Fubm90IGxvYWQgZGF0YWJhc2UgZnJvbSAnIiArCisgICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lICsgIic6ICIgKyBlKTsKKyAgICAgICAgfQorICAgICAgICBjb250ZXh0LnNldEF0dHJpYnV0ZShEQVRBQkFTRV9LRVksIGRhdGFiYXNlKTsKKworICAgIH0KKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByaXZhdGUgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiA8cD5DYWxjdWxhdGUgYW5kIHJldHVybiBhbiBhYnNvbHV0ZSBwYXRobmFtZSB0byB0aGUgWE1MIGZpbGUgdG8gY29udGFpbgorICAgICAqIG91ciBwZXJzaXN0ZW50IHN0b3JhZ2UgaW5mb3JtYXRpb24uPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBBYnNvbHV0ZSBwYXRoIHRvIFhNTCBmaWxlLgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBjYWxjdWxhdGVQYXRoKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gQ2FuIHdlIGFjY2VzcyB0aGUgZGF0YWJhc2UgdmlhIGZpbGUgSS9PPworICAgICAgICBTdHJpbmcgcGF0aCA9IGNvbnRleHQuZ2V0UmVhbFBhdGgocGF0aG5hbWUpOworICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gKHBhdGgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRG9lcyBhIGNvcHkgb2YgdGhpcyBmaWxlIGFscmVhZHkgZXhpc3QgaW4gb3VyIHRlbXBvcmFyeSBkaXJlY3RvcnkKKyAgICAgICAgRmlsZSBkaXIgPSAoRmlsZSkKKyAgICAgICAgICAgICAgICBjb250ZXh0LmdldEF0dHJpYnV0ZSgiamF2YXguc2VydmxldC5jb250ZXh0LnRlbXBkaXIiKTsKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoZGlyLCAic3RydXRzLWV4YW1wbGUtZGF0YWJhc2UueG1sIik7CisgICAgICAgIGlmIChmaWxlLmV4aXN0cygpKSB7CisgICAgICAgICAgICByZXR1cm4gKGZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29weSB0aGUgc3RhdGljIHJlc291cmNlIHRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHJldHVybiBpdHMgcGF0aAorICAgICAgICBJbnB1dFN0cmVhbSBpcyA9CisgICAgICAgICAgICAgICAgY29udGV4dC5nZXRSZXNvdXJjZUFzU3RyZWFtKHBhdGhuYW1lKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiaXMgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcywgMTAyNCk7CisgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gb3MgPQorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGUpOworICAgICAgICBCdWZmZXJlZE91dHB1dFN0cmVhbSBib3MgPSBuZXcgQnVmZmVyZWRPdXRwdXRTdHJlYW0ob3MsIDEwMjQpOworICAgICAgICBieXRlIGJ1ZmZlcltdID0gbmV3IGJ5dGVbMTAyNF07CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgbiA9IGJpcy5yZWFkKGJ1ZmZlcik7CisgICAgICAgICAgICBpZiAobiA8PSAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib3Mud3JpdGUoYnVmZmVyLCAwLCBuKTsKKyAgICAgICAgfQorICAgICAgICBib3MuY2xvc2UoKTsKKyAgICAgICAgYmlzLmNsb3NlKCk7CisgICAgICAgIHJldHVybiAoZmlsZS5nZXRBYnNvbHV0ZVBhdGgoKSk7CisKKyAgICB9CisKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvSGVsbG8uamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL0hlbGxvLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JkMzUwNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL0hlbGxvLmphdmEKQEAgLTAsMCArMSwxNiBAQAoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvblN1cHBvcnQ7CisKKy8qKgorICogRXhhbXBsZSBBY3Rpb24gY2xhc3MuCisgKi8KK3B1YmxpYyBjbGFzcyBIZWxsbyBleHRlbmRzIEFjdGlvblN1cHBvcnQgeworCisgICAgLyoqCisgICAgICogQW4gZXhhbXBsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGRvZXMgbm90aGluZyBhbmQgcmV0dXJucyAic3VjY2VzcyIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHtAbGluayAjU1VDQ0VTU30KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvTG9naW4tc2F2ZS12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL0xvZ2luLXNhdmUtdmFsaWRhdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ5MzU5ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL0xvZ2luLXNhdmUtdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+CisKKzx2YWxpZGF0b3JzPgorICAgIDxmaWVsZCBuYW1lPSJ1c2VybmFtZSI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci51c2VybmFtZS5yZXF1aXJlZCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorICAgIDxmaWVsZCBuYW1lPSJwYXNzd29yZCI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5wYXNzd29yZC5yZXF1aXJlZCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorPC92YWxpZGF0b3JzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvTG9naW4uamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL0xvZ2luLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZkZWIwOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL0xvZ2luLmphdmEKQEAgLTAsMCArMSwyMiBAQAoraW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKKworcHVibGljIGNsYXNzIExvZ2luIGV4dGVuZHMgTWFpbFJlYWRlclN1cHBvcnQgeworCisgICAgcHVibGljIFN0cmluZyBzYXZlKCkgdGhyb3dzIEV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgVXNlciB1c2VyID0gZmluZFVzZXIoZ2V0VXNlcm5hbWUoKSwgZ2V0UGFzc3dvcmQoKSk7CisKKyAgICAgICAgaWYgKHVzZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgc2V0VXNlcih1c2VyKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChoYXNFcnJvcnMoKSkgeworICAgICAgICAgICAgcmV0dXJuIElOUFVUOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL0xvZ291dC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvTG9nb3V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYxN2YxMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL0xvZ291dC5qYXZhCkBAIC0wLDAgKzEsOSBAQAorcHVibGljIGNsYXNzIExvZ291dCBleHRlbmRzIE1haWxSZWFkZXJTdXBwb3J0IHsKKworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHsKKworICAgICAgICBzZXRVc2VyKG51bGwpOworCisgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL01haWxSZWFkZXJTdXBwb3J0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9NYWlsUmVhZGVyU3VwcG9ydC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmYTE2M2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9NYWlsUmVhZGVyU3VwcG9ydC5qYXZhCkBAIC0wLDAgKzEsMzI1IEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS51dGlsLkJlYW5VdGlsczsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25TdXBwb3J0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uU3Vic2NyaXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXJEYXRhYmFzZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLmltcGwubWVtb3J5Lk1lbW9yeVN1YnNjcmlwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuaW50ZXJjZXB0b3IuQXBwbGljYXRpb25Bd2FyZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuaW50ZXJjZXB0b3IuU2Vzc2lvbkF3YXJlOworCitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworcHVibGljIGNsYXNzIE1haWxSZWFkZXJTdXBwb3J0IGV4dGVuZHMgQWN0aW9uU3VwcG9ydAorICAgICAgICBpbXBsZW1lbnRzIEFwcGxpY2F0aW9uQXdhcmUsIFNlc3Npb25Bd2FyZSB7CisKKyAgICAvLyAtLS0tIFJlZ2lzdGVyIGZvcm0gcHJvcGVydGllcyAtLS0tCisKKyAgICBwcml2YXRlIFN0cmluZyB1c2VybmFtZSA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFVzZXJuYW1lKCkgeworICAgICAgICByZXR1cm4gdXNlcm5hbWU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0VXNlcm5hbWUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHVzZXJuYW1lID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRQYXNzd29yZCgpIHsKKyAgICAgICAgcmV0dXJuIHBhc3N3b3JkOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFBhc3N3b3JkKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBwYXNzd29yZCA9IHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIHBhc3N3b3JkMiA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkMigpIHsKKyAgICAgICAgcmV0dXJuIHBhc3N3b3JkMjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRQYXNzd29yZDIoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHBhc3N3b3JkMiA9IHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIGZ1bGxOYW1lID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RnVsbE5hbWUoKSB7CisgICAgICAgIHJldHVybiBmdWxsTmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRGdWxsTmFtZShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgZnVsbE5hbWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBmcm9tQWRkcmVzcyA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEZyb21BZGRyZXNzKCkgeworICAgICAgICByZXR1cm4gZnJvbUFkZHJlc3M7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RnJvbUFkZHJlc3MoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIGZyb21BZGRyZXNzID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgcmVwbHlUb0FkZHJlc3MgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRSZXBseVRvQWRkcmVzcygpIHsKKyAgICAgICAgcmV0dXJuIHJlcGx5VG9BZGRyZXNzOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFJlcGx5VG9BZGRyZXNzKFN0cmluZyB2YWx1ZSkgeworICAgICAgICByZXBseVRvQWRkcmVzcyA9IHZhbHVlOworICAgIH0KKworICAgIC8vIC0tLS0gU3Vic2NyaXB0aW9uIGZvcm0gcHJvcGVydGllcyAtLS0tCisKKyAgICBwcml2YXRlIFN0cmluZyBob3N0OworCisgICAgcHVibGljIFN0cmluZyBnZXRIb3N0KCkgeworICAgICAgICByZXR1cm4gaG9zdDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRIb3N0KFN0cmluZyB2YWx1ZSkgeworICAgICAgICBob3N0ID0gdmFsdWU7CisgICAgfQorCisgICAgLy8gLS0tLSBUYXNrIHByb3BlcnR5ICh1dGlsaXplZCBieSBVSSkgLS0tLQorCisgICAgcHJpdmF0ZSBTdHJpbmcgdGFzayA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFRhc2soKSB7CisgICAgICAgIHJldHVybiB0YXNrOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFRhc2soU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHRhc2sgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvLyAtLS0tIEtleXMgLS0tLQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQUJBU0VfS0VZID0gImRhdGFiYXNlIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVQlNDUklQVElPTl9LRVkgPSAic3Vic2NyaXB0aW9uIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFVTRVJfS0VZID0gInVzZXIiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgSE9TVCA9ICJob3N0IjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBBU1NXT1JEX01JU01BVENIX0ZJRUxEID0gInBhc3N3b3JkIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENBTkNFTCA9ICJjYW5jZWwiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ1JFQVRFID0gIkNyZWF0ZSI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFRElUID0gIkVkaXQiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVMRVRFID0gIkRlbGV0ZSI7CisKKyAgICAvLyAtLS0tIE1lc3NhZ2UgS2V5cyAtLS0tCisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9EQVRBQkFTRV9NSVNTSU5HID0KKyAgICAgICAgICAgICJlcnJvci5kYXRhYmFzZS5taXNzaW5nIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVSUk9SX1VTRVJOQU1FX1VOSVFVRSA9CisgICAgICAgICAgICAiZXJyb3IudXNlcm5hbWUudW5pcXVlIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVSUk9SX1BBU1NXT1JEX01JU01BVENIID0KKyAgICAgICAgICAgICJlcnJvci5wYXNzd29yZC5taXNtYXRjaCI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9QQVNTV09SRF9NQVRDSCA9CisgICAgICAgICAgICAiZXJyb3IucGFzc3dvcmQubWF0Y2giOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfSE9TVF9VTklRVUUKKyAgICAgICAgICAgID0gIlRoYXQgaG9zdG5hbWUgaXMgYWxyZWFkeSBkZWZpbmVkIjsKKworICAgIC8vIC0tLS0gQXBwbGljYXRpb25Bd2FyZSAtLS0tCisKKyAgICBwcml2YXRlIE1hcCBhcHBsaWNhdGlvbjsKKworICAgIHB1YmxpYyB2b2lkIHNldEFwcGxpY2F0aW9uKE1hcCB2YWx1ZSkgeworICAgICAgICBhcHBsaWNhdGlvbiA9IHZhbHVlOworICAgIH0KKworICAgIHB1YmxpYyBNYXAgZ2V0QXBwbGljYXRpb24oKSB7CisgICAgICAgIHJldHVybiBhcHBsaWNhdGlvbjsKKyAgICB9CisKKyAgICAvLyAtLS0tIERhdGFiYXNlIHByb3BlcnR5IC0tLS0KKworICAgIHB1YmxpYyBVc2VyRGF0YWJhc2UgZ2V0RGF0YWJhc2UoKSB7CisgICAgICAgIE9iamVjdCBkYiA9IGdldEFwcGxpY2F0aW9uKCkuZ2V0KERBVEFCQVNFX0tFWSk7CisgICAgICAgIGlmIChkYiA9PSBudWxsKSB7CisgICAgICAgICAgICB0aGlzLmFkZEFjdGlvbkVycm9yKGdldFRleHQoRVJST1JfREFUQUJBU0VfTUlTU0lORykpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAoVXNlckRhdGFiYXNlKSBkYjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXREYXRhYmFzZShVc2VyRGF0YWJhc2UgZGF0YWJhc2UpIHsKKyAgICAgICAgZ2V0QXBwbGljYXRpb24oKS5wdXQoREFUQUJBU0VfS0VZLCBkYXRhYmFzZSk7CisgICAgfQorCisgICAgLy8gLS0tLSBTZXNzaW9uQXdhcmUgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+RmllbGQgdG8gc3RvcmUgc2Vzc2lvbiBjb250ZXh0LCBvciBpdHMgcHJveHkuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgTWFwIHNlc3Npb247CisKKyAgICAvKioKKyAgICAgKiA8cD5TdG9yZSBhIG5ldyBzZXNzaW9uIGNvbnRleHQuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHZhbHVlIEEgTWFwIHJlcHJlc2VudGluZyBzZXNzaW9uIHN0YXRlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2Vzc2lvbihNYXAgdmFsdWUpIHsKKyAgICAgICAgc2Vzc2lvbiA9IHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgc2Vzc2lvbiBjb250ZXh0LjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc2Vzc2lvbiBjb250ZXh0CisgICAgICovCisgICAgcHVibGljIE1hcCBnZXRTZXNzaW9uKCkgeworICAgICAgICByZXR1cm4gc2Vzc2lvbjsKKyAgICB9CisKKyAgICAvLyAtLS0tIFN1YnNjcmlwdGlvbiBwcm9wZXJ0eSAtLS0tCisKKyAgICBwdWJsaWMgU3Vic2NyaXB0aW9uIGdldFN1YnNjcmlwdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIChTdWJzY3JpcHRpb24pIGdldFNlc3Npb24oKS5nZXQoU1VCU0NSSVBUSU9OX0tFWSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0U3Vic2NyaXB0aW9uKFN1YnNjcmlwdGlvbiBzdWJzY3JpcHRpb24pIHsKKyAgICAgICAgZ2V0U2Vzc2lvbigpLnB1dChTVUJTQ1JJUFRJT05fS0VZLCBzdWJzY3JpcHRpb24pOworICAgIH0KKworCisgICAgcHVibGljIFN0cmluZyBnZXRTdWJzY3JpcHRpb25Ib3N0KCkgeworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gZ2V0U3Vic2NyaXB0aW9uKCk7CisgICAgICAgIGlmIChudWxsID09IHN1YikgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHN1Yi5nZXRIb3N0KCk7CisgICAgfQorCisgICAgLy8gLS0tLSBVc2VyIHByb3BlcnR5IC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgcmVmZXJlbmNlIHRvIFVzZXIgb2JqZWN0IGZvciBhdXRoZW50aWNhdGVkIHVzZXIuPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBVc2VyIG9iamVjdCBmb3IgYXV0aGVudGljYXRlZCB1c2VyLgorICAgICAqLworICAgIHB1YmxpYyBVc2VyIGdldFVzZXIoKSB7CisgICAgICAgIHJldHVybiAoVXNlcikgZ2V0U2Vzc2lvbigpLmdldChVU0VSX0tFWSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U3RvcmUgbmV3IHJlZmVyZW5jZSB0byBVc2VyIE9iamVjdC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdXNlciBVc2VyIG9iamVjdCBmb3IgYXV0aGVudGljYXRlZCB1c2VyCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VXNlcihVc2VyIHVzZXIpIHsKKyAgICAgICAgZ2V0U2Vzc2lvbigpLnB1dChVU0VSX0tFWSwgdXNlcik7CisgICAgfQorCisgICAgLy8gLS0tLSBEYXRhYmFzZSBtZXRob2RzIC0tLS0KKworICAgIHB1YmxpYyBVc2VyIGZpbmRVc2VyKFN0cmluZyB1c2VybmFtZSwgU3RyaW5nIHBhc3N3b3JkKQorICAgICAgICAgICAgdGhyb3dzIEV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgVXNlciB1c2VyID0gZ2V0RGF0YWJhc2UoKS5maW5kVXNlcih1c2VybmFtZSk7CisKKyAgICAgICAgaWYgKCh1c2VyICE9IG51bGwpICYmICF1c2VyLmdldFBhc3N3b3JkKCkuZXF1YWxzKHBhc3N3b3JkKSkgeworICAgICAgICAgICAgdXNlciA9IG51bGw7CisgICAgICAgIH0KKworICAgICAgICBpZiAodXNlciA9PSBudWxsKSB7CisgICAgICAgICAgICBhZGRGaWVsZEVycm9yKFBBU1NXT1JEX01JU01BVENIX0ZJRUxELAorICAgICAgICAgICAgICAgICAgICBnZXRUZXh0KEVSUk9SX1BBU1NXT1JEX01JU01BVENIKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdXNlcjsKKworICAgIH0KKworICAgIHB1YmxpYyBVc2VyIGNyZWF0ZVVzZXIoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIFVzZXJEYXRhYmFzZSBkYXRhYmFzZSA9IGdldERhdGFiYXNlKCk7CisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmZpbmRVc2VyKHVzZXJuYW1lKTsKKworICAgICAgICBpZiAodXNlciAhPSBudWxsKSB7CisgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihnZXRUZXh0KEVSUk9SX1VTRVJOQU1FX1VOSVFVRSkpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcih1c2VybmFtZSk7CisgICAgICAgIEJlYW5VdGlscy5zZXRWYWx1ZXModXNlciwgdGhpcywgbnVsbCk7CisKKyAgICAgICAgcmV0dXJuIHVzZXI7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2F2ZVVzZXIoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZ2V0RGF0YWJhc2UoKS5zYXZlKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSBhICJ0ZW1wb3JhcnkiIFVzZXIgU3Vic2NyaXB0aW9uIG9iamVjdAorICAgICAqIHRoYXQgY2FuIGJlIHVzZWQgdG9jYXB0dXJlIGlucHV0IHZhbHVlcy48L3A+CisgICAgICovCisgICAgcHVibGljIHZvaWQgY3JlYXRlSW5wdXRTdWJzY3JpcHRpb24oKSB7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIgPSBuZXcgTWVtb3J5U3Vic2NyaXB0aW9uKGdldFVzZXIoKSwgbnVsbCk7CisgICAgICAgIHNldFN1YnNjcmlwdGlvbihzdWIpOworICAgICAgICBzZXRIb3N0KHN1Yi5nZXRIb3N0KCkpOworICAgIH0KKworICAgIHB1YmxpYyBTdWJzY3JpcHRpb24gZmluZFN1YnNjcmlwdGlvbihTdHJpbmcgaG9zdCkgeworICAgICAgICBTdWJzY3JpcHRpb24gc3Vic2NyaXB0aW9uOworICAgICAgICBzdWJzY3JpcHRpb24gPSBnZXRVc2VyKCkuZmluZFN1YnNjcmlwdGlvbihob3N0KTsKKyAgICAgICAgcmV0dXJuIHN1YnNjcmlwdGlvbjsKKyAgICB9CisKKyAgICBwdWJsaWMgU3Vic2NyaXB0aW9uIGZpbmRTdWJzY3JpcHRpb24oKSB7CisgICAgICAgIHJldHVybiBmaW5kU3Vic2NyaXB0aW9uKGdldEhvc3QoKSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlU3Vic2NyaXB0aW9uKCkgeworICAgICAgICBnZXRVc2VyKCkucmVtb3ZlU3Vic2NyaXB0aW9uKGdldFN1YnNjcmlwdGlvbigpKTsKKyAgICAgICAgZ2V0U2Vzc2lvbigpLnJlbW92ZShTVUJTQ1JJUFRJT05fS0VZKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBjb3B5U3Vic2NyaXB0aW9uKFN0cmluZyBob3N0KSB7CisgICAgICAgIFN1YnNjcmlwdGlvbiBpbnB1dCA9IGdldFN1YnNjcmlwdGlvbigpOworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gY3JlYXRlU3Vic2NyaXB0aW9uKGhvc3QpOworICAgICAgICBpZiAobnVsbCAhPSBzdWIpIHsKKyAgICAgICAgICAgIEJlYW5VdGlscy5zZXRWYWx1ZXMoc3ViLCBpbnB1dCwgbnVsbCk7CisgICAgICAgICAgICBzZXRTdWJzY3JpcHRpb24oc3ViKTsKKyAgICAgICAgICAgIHNldEhvc3Qoc3ViLmdldEhvc3QoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgU3Vic2NyaXB0aW9uIGNyZWF0ZVN1YnNjcmlwdGlvbihTdHJpbmcgaG9zdCkgeworCisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWI7CisKKyAgICAgICAgc3ViID0gZmluZFN1YnNjcmlwdGlvbihob3N0KTsKKworICAgICAgICBpZiAobnVsbCAhPSBzdWIpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FIC0gbG9jYWxpemF0aW9uIC0gImVycm9yLmhvc3QudW5pcXVlIikKKyAgICAgICAgICAgIGFkZEZpZWxkRXJyb3IoSE9TVCwgRVJST1JfSE9TVF9VTklRVUUpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZ2V0VXNlcigpLmNyZWF0ZVN1YnNjcmlwdGlvbihob3N0KTsKKyAgICB9CisKKyAgICAvLyAtLS0tIEFsaWFzIC0tLS0KKworICAgIHB1YmxpYyBTdHJpbmcgY2FuY2VsKCkgeworICAgICAgICByZXR1cm4gQ0FOQ0VMOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvUmVnaXN0ZXItdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9SZWdpc3Rlci12YWxpZGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODE1NWY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvUmVnaXN0ZXItdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+CisKKzx2YWxpZGF0b3JzPgorCisgICAgPGZpZWxkIG5hbWU9InVzZXJuYW1lIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKyAgICA8ZmllbGQgbmFtZT0iZnVsbE5hbWUiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IuZnVsbE5hbWUucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworICAgIDxmaWVsZCBuYW1lPSJmcm9tQWRkcmVzcyI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5mcm9tQWRkcmVzcy5yZXF1aXJlZCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJlbWFpbCI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9ycy5lbWFpbCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCisgICAgPGZpZWxkIG5hbWU9InJlcGx5VG9BZGRyZXNzIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJlbWFpbCI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9ycy5lbWFpbCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCis8L3ZhbGlkYXRvcnM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9SZWdpc3Rlci5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvUmVnaXN0ZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGYyYmRlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvUmVnaXN0ZXIuamF2YQpAQCAtMCwwICsxLDY1IEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS51dGlsLkJlYW5VdGlsczsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CisKK3B1YmxpYyBjbGFzcyBSZWdpc3RlciBleHRlbmRzIE1haWxSZWFkZXJTdXBwb3J0IHsKKworICAgIHB1YmxpYyBTdHJpbmcgaW5wdXQoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBVc2VyIHVzZXIgPSBnZXRVc2VyKCk7CisgICAgICAgIGJvb2xlYW4gZWRpdGluZyA9IChudWxsICE9IHVzZXIpOworCisgICAgICAgIGlmIChlZGl0aW5nKSB7CisgICAgICAgICAgICBzZXRUYXNrKEVESVQpOworICAgICAgICAgICAgQmVhblV0aWxzLnNldFZhbHVlcyh0aGlzLCB1c2VyLCBudWxsKTsKKyAgICAgICAgICAgIHNldFBhc3N3b3JkKG51bGwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2V0VGFzayhDUkVBVEUpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIElOUFVUOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgc2F2ZSgpCisgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBVc2VyIHVzZXIgPSBnZXRVc2VyKCk7CisgICAgICAgIGJvb2xlYW4gZWRpdGluZyA9IChudWxsICE9IHVzZXIpOworCisgICAgICAgIGlmIChlZGl0aW5nKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogQW55IHdheSB0byBjYWxsIHRoZSBSZWdpc3RlclNhdmUgdmFsaWRhdG9ycyBmcm9tIGhlcmU/CisgICAgICAgICAgICBTdHJpbmcgbmV3UGFzc3dvcmQgPSBnZXRQYXNzd29yZCgpOworICAgICAgICAgICAgYm9vbGVhbiBjaGFuZ2luZyA9ICgobnVsbCAhPSBuZXdQYXNzd29yZCkgJiYgKG5ld1Bhc3N3b3JkLmxlbmd0aCgpID4gMCkpOworICAgICAgICAgICAgaWYgKCFjaGFuZ2luZykgeworICAgICAgICAgICAgICAgIHNldFBhc3N3b3JkKHVzZXIuZ2V0UGFzc3dvcmQoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIFN0cmluZyBjb25maXJtUGFzc3dvcmQgPSBnZXRQYXNzd29yZDIoKTsKKyAgICAgICAgICAgICAgICBib29sZWFuIG1hdGNoZXMgPSAoKG51bGwgIT0gY29uZmlybVBhc3N3b3JkKQorICAgICAgICAgICAgICAgICAgICAgICAgJiYgKGNvbmZpcm1QYXNzd29yZC5lcXVhbHMobmV3UGFzc3dvcmQpKSk7CisgICAgICAgICAgICAgICAgaWYgKG1hdGNoZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgdXNlci5zZXRQYXNzd29yZChuZXdQYXNzd29yZCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkQWN0aW9uRXJyb3IoZ2V0VGV4dChFUlJPUl9QQVNTV09SRF9NQVRDSCkpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gSU5QVVQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgQmVhblV0aWxzLnNldFZhbHVlcyh1c2VyLCB0aGlzLCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZWRpdGluZykgeworICAgICAgICAgICAgdXNlciA9IGZpbmRVc2VyKGdldFVzZXJuYW1lKCksIGdldFBhc3N3b3JkKCkpOworICAgICAgICAgICAgYm9vbGVhbiBoYXZlVXNlciA9ICh1c2VyICE9IG51bGwpOworCisgICAgICAgICAgICBpZiAoaGF2ZVVzZXIpIHsKKyAgICAgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihnZXRUZXh0KEVSUk9SX1VTRVJOQU1FX1VOSVFVRSkpOworICAgICAgICAgICAgICAgIHJldHVybiBJTlBVVDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdXNlciA9IGNyZWF0ZVVzZXIoZ2V0VXNlcm5hbWUoKSwgZ2V0UGFzc3dvcmQoKSk7CisgICAgICAgICAgICBzZXRVc2VyKHVzZXIpOworICAgICAgICB9CisKKyAgICAgICAgc2F2ZVVzZXIoKTsKKworICAgICAgICByZXR1cm4gU1VDQ0VTUzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9SZWdpc3RlckNyZWF0ZS12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL1JlZ2lzdGVyQ3JlYXRlLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4OTY0MDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9SZWdpc3RlckNyZWF0ZS12YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4KKworPHZhbGlkYXRvcnM+CisKKyAgICA8ZmllbGQgbmFtZT0icGFzc3dvcmQiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucGFzc3dvcmQucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0ic3RyaW5nbGVuZ3RoIj4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJ0cmltIj50cnVlPC9wYXJhbT4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5MZW5ndGgiPjQ8L3BhcmFtPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1heExlbmd0aCI+MTA8L3BhcmFtPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvcnMucmFuZ2UiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworICAgIDxmaWVsZCBuYW1lPSJwYXNzd29yZDIiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucGFzc3dvcmQyLnJlcXVpcmVkIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKyAgICA8dmFsaWRhdG9yIHR5cGU9ImV4cHJlc3Npb24iPgorICAgICAgICA8cGFyYW0gbmFtZT0iZXhwcmVzc2lvbiI+cGFzc3dvcmQgZXEgcGFzc3dvcmQyPC9wYXJhbT4KKyAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5wYXNzd29yZC5tYXRjaCIvPgorICAgIDwvdmFsaWRhdG9yPgorCis8L3ZhbGlkYXRvcnM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9SZWdpc3RlckNyZWF0ZS5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvUmVnaXN0ZXJDcmVhdGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODk1NjUyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvUmVnaXN0ZXJDcmVhdGUuamF2YQpAQCAtMCwwICsxLDUgQEAKKy8qKgorICogPHA+U3R1YiBjbGFzcyB0byBhbGxvdyBleHRyYSB2YWxpZGF0aW9uIG9uIGluaXRpYWwgU2F2ZS48L3A+CisgKi8KK3B1YmxpYyBjbGFzcyBSZWdpc3RlckNyZWF0ZSBleHRlbmRzIFJlZ2lzdGVyIHsKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL1N1YnNjcmliZS1TdWJzY3JpYmVfc2F2ZS12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL1N1YnNjcmliZS1TdWJzY3JpYmVfc2F2ZS12YWxpZGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjJmNmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvU3Vic2NyaWJlLVN1YnNjcmliZV9zYXZlLXZhbGlkYXRpb24ueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIiAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLXZhbGlkYXRvci0xLjAuMi5kdGQiPg0KKw0KKzx2YWxpZGF0b3JzPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0ic3Vic2NyaXB0aW9uLnVzZXJuYW1lIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IudXNlcm5hbWUucmVxdWlyZWQiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0ic3Vic2NyaXB0aW9uLnBhc3N3b3JkIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucGFzc3dvcmQucmVxdWlyZWQiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0ic3Vic2NyaXB0aW9uLnR5cGUiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci50eXBlLmludmFsaWQiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKzwvdmFsaWRhdG9ycz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9TdWJzY3JpYmUtdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9TdWJzY3JpYmUtdmFsaWRhdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmM0MjJjOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL1N1YnNjcmliZS12YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4KKworPHZhbGlkYXRvcnM+CisKKyAgICA8ZmllbGQgbmFtZT0iaG9zdCI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5ob3N0LnJlcXVpcmVkIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKzwvdmFsaWRhdG9ycz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL1N1YnNjcmliZS5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvU3Vic2NyaWJlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBjNmUxYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL1N1YnNjcmliZS5qYXZhCkBAIC0wLDAgKzEsNzQgQEAKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5QcmVwYXJhYmxlOworCitpbXBvcnQgamF2YS51dGlsLkxpbmtlZEhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworcHVibGljIGNsYXNzIFN1YnNjcmliZSBleHRlbmRzIE1haWxSZWFkZXJTdXBwb3J0CisgICAgICAgIGltcGxlbWVudHMgUHJlcGFyYWJsZSB7CisKKyAgICBwcml2YXRlIE1hcCB0eXBlcyA9IG51bGw7CisKKyAgICBwdWJsaWMgTWFwIGdldFR5cGVzKCkgeworICAgICAgICByZXR1cm4gdHlwZXM7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcHJlcGFyZSgpIHsKKworICAgICAgICBNYXAgbSA9IG5ldyBMaW5rZWRIYXNoTWFwKCk7CisgICAgICAgIG0ucHV0KCJpbWFwIiwgIklNQVAgUHJvdG9jb2wiKTsKKyAgICAgICAgbS5wdXQoInBvcDMiLCAiUE9QMyBQcm90b2NvbCIpOworICAgICAgICB0eXBlcyA9IG07CisKKyAgICAgICAgc2V0SG9zdChnZXRTdWJzY3JpcHRpb25Ib3N0KCkpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgaW5wdXQoKSB7CisgICAgICAgIGNyZWF0ZUlucHV0U3Vic2NyaXB0aW9uKCk7CisgICAgICAgIHNldFRhc2soQ1JFQVRFKTsKKyAgICAgICAgcmV0dXJuIElOUFVUOworICAgIH0KKworICAgIHByb3RlY3RlZCBTdHJpbmcgZmluZCgpIHsKKworICAgICAgICBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAgIHN1YiA9IGZpbmRTdWJzY3JpcHRpb24oKTsKKworICAgICAgICBpZiAoc3ViID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBFUlJPUjsKKyAgICAgICAgfQorCisgICAgICAgIHNldFN1YnNjcmlwdGlvbihzdWIpOworCisgICAgICAgIHJldHVybiBTVUNDRVNTOworCisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBkZWxldGUoKSB7CisKKyAgICAgICAgc2V0VGFzayhERUxFVEUpOworICAgICAgICByZXR1cm4gZmluZCgpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZWRpdCgpIHsKKworICAgICAgICBzZXRUYXNrKEVESVQpOworICAgICAgICByZXR1cm4gZmluZCgpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgc2F2ZSgpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIGlmIChERUxFVEUuZXF1YWxzKGdldFRhc2soKSkpIHsKKyAgICAgICAgICAgIHJlbW92ZVN1YnNjcmlwdGlvbigpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKENSRUFURS5lcXVhbHMoZ2V0VGFzaygpKSkgeworICAgICAgICAgICAgY29weVN1YnNjcmlwdGlvbihnZXRIb3N0KCkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGhhc0Vycm9ycygpKSByZXR1cm4gSU5QVVQ7CisKKyAgICAgICAgc2F2ZVVzZXIoKTsKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9kYXRhYmFzZS54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9kYXRhYmFzZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJjODMzZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL2RhdGFiYXNlLnhtbApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPScxLjAnPz4KKzxkYXRhYmFzZT4KKyAgICA8dXNlciB1c2VybmFtZT0idXNlciIgZnJvbUFkZHJlc3M9IkpvaG4uVXNlckBzb21ld2hlcmUuY29tIgorICAgICAgICAgIGZ1bGxOYW1lPSJKb2huIFEuIFVzZXIiIHBhc3N3b3JkPSJwYXNzIj4KKyAgICAgICAgPHN1YnNjcmlwdGlvbiBob3N0PSJtYWlsLmhvdG1haWwuY29tIiBhdXRvQ29ubmVjdD0iZmFsc2UiCisgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ9ImJhciIgdHlwZT0icG9wMyIgdXNlcm5hbWU9InVzZXIxMjM0Ij4KKyAgICAgICAgPC9zdWJzY3JpcHRpb24+CisgICAgICAgIDxzdWJzY3JpcHRpb24gaG9zdD0ibWFpbC55YWhvby5jb20iIGF1dG9Db25uZWN0PSJmYWxzZSIgcGFzc3dvcmQ9ImZvbyIKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJpbWFwIiB1c2VybmFtZT0ianF1c2VyIj4KKyAgICAgICAgPC9zdWJzY3JpcHRpb24+CisgICAgPC91c2VyPgorPC9kYXRhYmFzZT4KKyAgICAgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvcmVzb3VyY2VzLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9yZXNvdXJjZXMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZmMxMTUyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvcmVzb3VyY2VzLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxMDUgQEAKK2hlbGxvLm1lc3NhZ2UgPSBDb25ncmF0dWxhdGlvbnMhIFN0cnV0cyBpcyB1cCBhbmQgcnVubmluZyAuLi4KKworaW5kZXgudGl0bGU9TWFpbFJlYWRlcgoraW5kZXgubG9naW49TG9nIGludG8gTWFpbFJlYWRlcgoraW5kZXgucmVnaXN0cmF0aW9uPVJlZ2lzdGVyIHdpdGggTWFpbFJlYWRlcgorCityZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlPU1haWxSZWFkZXIgLSBSZWdpc3RlciAtIENyZWF0ZQorcmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQ9TWFpbFJlYWRlciAtIFJlZ2lzdGVyIC0gRWRpdAorCit1c2VybmFtZT1Vc2VybmFtZQorcGFzc3dvcmQ9UGFzc3dvcmQKK3Bhc3N3b3JkMj0oUmVwZWF0KSBQYXNzd29yZAorZnVsbE5hbWU9RnVsbCBOYW1lCitmcm9tQWRkcmVzcz1Gcm9tIEFkZHJlc3MKK3JlcGx5VG9BZGRyZXNzPVJlcGx5IFRvIEFkZHJlc3MKKworYnV0dG9uLmNhbmNlbD1DYW5jZWwKK2J1dHRvbi5zYXZlPVNhdmUKK2J1dHRvbi5yZXNldD1SZXNldAorYnV0dG9uLmNvbmZpcm09Q29uZmlybQorCittZW51LnRpdGxlPU1haWxSZWFkZXIgLSBNYWluIE1lbnUKK21lbnUuaGVhZGluZz1NZW51IE9wdGlvbnMgZm9yCittZW51LnJlZ2lzdHJhdGlvbj1FZGl0IHlvdXIgcmVnaXN0cmF0aW9uIHByb2ZpbGUKK21lbnUubG9nb3V0PUxvZyBvdXQgb2YgTWFpbFJlYWRlcgorCitsb2dpbi50aXRsZT1NYWlsUmVhZGVyIC0gTG9nb24KKworZXJyb3IuZGF0YWJhc2UubWlzc2luZz1Vc2VyIGRhdGFiYXNlIGlzIG1pc3NpbmcsIGNhbm5vdCB2YWxpZGF0ZSBsb2dvbiBjcmVkZW50aWFscworZXJyb3IudXNlcm5hbWUudW5pcXVlPVRoYXQgdXNlcm5hbWUgaXMgYWxyZWFkeSBpbiB1c2UgLSBwbGVhc2Ugc2VsZWN0IGFub3RoZXIKK2Vycm9yLnBhc3N3b3JkLm1pc21hdGNoPUludmFsaWQgdXNlcm5hbWUgYW5kL29yIHBhc3N3b3JkLCBwbGVhc2UgdHJ5IGFnYWluCisKK2Vycm9yLnVzZXJuYW1lLnJlcXVpcmVkPVVzZXJuYW1lIGlzIHJlcXVpcmVkCitlcnJvci5mdWxsTmFtZS5yZXF1aXJlZD1GdWxsIE5hbWUgaXMgcmVxdWlyZWQKK2Vycm9yLmZyb21BZGRyZXNzLnJlcXVpcmVkPUZyb20gQWRkcmVzcyBpcyByZXF1aXJlZAorZXJyb3IuZnJvbUFkZHJlc3MuZm9ybWF0PUludmFsaWQgZm9ybWF0IGZvciBGcm9tIEFkZHJlc3MKK2Vycm9yLnJlcGx5VG9BZGRyZXNzLmZvcm1hdD1JbnZhbGlkIGZvcm1hdCBmb3IgUmVwbHkgVG8gQWRkcmVzcworZXJyb3IucGFzc3dvcmQucmVxdWlyZWQ9UGFzc3dvcmQgaXMgcmVxdWlyZWQKK2Vycm9yLnBhc3N3b3JkMi5yZXF1aXJlZD1Db25maXJtYXRpb24gcGFzc3dvcmQgaXMgcmVxdWlyZWQKK2Vycm9yLnBhc3N3b3JkLm1hdGNoPVBhc3N3b3JkIGFuZCBjb25maXJtYXRpb24gcGFzc3dvcmQgbXVzdCBtYXRjaAorCitlcnJvci5ob3N0LnJlcXVpcmVkPU1haWwgU2VydmVyIGlzIHJlcXVpcmVkCitlcnJvci50eXBlLmludmFsaWQ9U2VydmVyIFR5cGUgbXVzdCBiZSAnaW1hcCcgb3IgJ3BvcDMnCitlcnJvci50eXBlLnJlcXVpcmVkPVNlcnZlciBUeXBlIGlzIHJlcXVpcmVkCisKKyMgRnV0dXJlIHVzZQorYnV0dG9uLmRvU3VibWl0PURPX1NVQk1JVAorYnV0dG9uLmRvUmVzZXQ9RE9fUkVTVUxUCitidXR0b24uZG9DYW5jZWw9b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ0FOQ0VMCitjaGFuZ2UubWVzc2FnZT1Zb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkLiAgUGxlYXNlIGFzayB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3IgdG8gY2hhbmdlIGl0LgorY2hhbmdlLnRyeT1UcnkgQWdhaW4KK2NoYW5nZS50aXRsZT1QYXNzd29yZCBIYXMgRXhwaXJlZAorZGF0YWJhc2UubG9hZD1DYW5ub3QgbG9hZCBkYXRhYmFzZSBmcm9tIHswfQorc3RydXRzLm1lc3NhZ2VzLmludmFsaWQudG9rZW49Q2Fubm90IHN1Ym1pdCB0aGlzIGZvcm0gb3V0IG9mIG9yZGVyCitlcnJvcnMuZm9vdGVyPTwvdWw+PGhyPgorZXJyb3JzLmhlYWRlcj08aDM+PGZvbnQgY29sb3I9InJlZCI+VmFsaWRhdGlvbiBFcnJvcjwvZm9udD48L2gzPjxwPllvdSBtdXN0IGNvcnJlY3QgdGhlIGZvbGxvd2luZyBlcnJvcihzKSBiZWZvcmUgcHJvY2VlZGluZzo8L3A+PHVsPgorZXJyb3JzLnByZWZpeD08bGk+CitlcnJvcnMuc3VmZml4PTwvbGk+CitlcnJvcnMuaW9FeGNlcHRpb249SS9PIGV4Y2VwdGlvbiByZW5kZXJpbmcgZXJyb3IgbWVzc2FnZXM6IHswfQorZXJyb3Iubm9TdWJzY3JpcHRpb249Tm8gU3Vic2NyaXB0aW9uIGJlYW4gaW4gdXNlciBzZXNzaW9uCitlcnJvci5wYXNzd29yZC5leHBpcmVkPVlvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQgZm9yIHVzZXJuYW1lIHswfQorZXhwaXJlZC5wYXNzd29yZD1Vc2VyIFBhc3N3b3JkIGhhcyBleHBpcmVkIGZvciB7MH0KK2hlYWRpbmcuYXV0b0Nvbm5lY3Q9QXV0bworaGVhZGluZy5zdWJzY3JpcHRpb25zPUN1cnJlbnQgU3Vic2NyaXB0aW9ucworaGVhZGluZy5ob3N0PUhvc3QgTmFtZQoraGVhZGluZy51c2VyPVVzZXIgTmFtZQoraGVhZGluZy50eXBlPVNlcnZlciBUeXBlCitoZWFkaW5nLmFjdGlvbj1BY3Rpb24KK2luZGV4LmhlYWRpbmc9TWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uIE9wdGlvbnMKK2luZGV4LnRvdXI9QSBXYWxraW5nIFRvdXIgb2YgdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbgorbGlua1N1YnNjcmlwdGlvbi5pbz1JL08gRXJyb3I6IHswfQorbGlua1N1YnNjcmlwdGlvbi5ub1N1YnNjcmlwdGlvbj1ObyBzdWJzY3JpcHRpb24gdW5kZXIgYXR0cmlidXRlIHswfQorbGlua1VzZXIuaW89SS9PIEVycm9yOiB7MH0KK2xpbmtVc2VyLm5vVXNlcj1ObyB1c2VyIHVuZGVyIGF0dHJpYnV0ZSB7MH0KK29wdGlvbi5pbWFwPUlNQVAgUHJvdG9jb2wKK29wdGlvbi5wb3AzPVBPUDMgUHJvdG9jb2wKKyMgcHJvbXB0LgorYXV0b0Nvbm5lY3Q9QXV0byBDb25uZWN0CittYWlsSG9zdG5hbWU9TWFpbCBTZXJ2ZXIKK21haWxQYXNzd29yZD1NYWlsIFBhc3N3b3JkCittYWlsU2VydmVyVHlwZT1TZXJ2ZXIgVHlwZQorbWFpbFVzZXJuYW1lPU1haWwgVXNlcm5hbWUKK3JlZ2lzdHJhdGlvbi5hZGRTdWJzY3JpcHRpb249QWRkCityZWdpc3RyYXRpb24uZGVsZXRlU3Vic2NyaXB0aW9uPURlbGV0ZQorcmVnaXN0cmF0aW9uLmVkaXRTdWJzY3JpcHRpb249RWRpdAorc3Vic2NyaXB0aW9uLnRpdGxlLmNyZWF0ZT1DcmVhdGUgTmV3IE1haWwgU3Vic2NyaXB0aW9uCitzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlPURlbGV0ZSBFeGlzdGluZyBNYWlsIFN1YnNjcmlwdGlvbgorc3Vic2NyaXB0aW9uLnRpdGxlLmVkaXQ9RWRpdCBFeGlzdGluZyBNYWlsIFN1YnNjcmlwdGlvbgorCisjIFN0YW5kYXJkIGVycm9yIG1lc3NhZ2VzIGZvciB2YWxpZGF0b3IgZnJhbWV3b3JrIGNoZWNrcworZXJyb3JzLnJlcXVpcmVkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyByZXF1aXJlZC4KK2Vycm9ycy5taW5sZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGNhbm5vdCBiZSBsZXNzIHRoYW4gezF9IGNoYXJhY3RlcnMuCitlcnJvcnMubWF4bGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHsxfSBjaGFyYWN0ZXJzLgorZXJyb3JzLmludmFsaWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGludmFsaWQuCitlcnJvcnMuYnl0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBieXRlLgorZXJyb3JzLnNob3J0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIHNob3J0LgorZXJyb3JzLmludGVnZXI9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gaW50ZWdlci4KK2Vycm9ycy5sb25nPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGxvbmcuCitlcnJvcnMuZmxvYXQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gZmxvYXQuCitlcnJvcnMuZG91YmxlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGRvdWJsZS4KK2Vycm9ycy5kYXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSBkYXRlLgorZXJyb3JzLnJhbmdlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgaW4gdGhlIHJhbmdlICR7bWluTGVuZ3RofSB0aHJvdWdoICR7bWF4TGVuZ3RofS4KK2Vycm9ycy5jcmVkaXRjYXJkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuCitlcnJvcnMuZW1haWw9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGFuIGludmFsaWQgZS1tYWlsIGFkZHJlc3MuCitlcnJvcnMubGl0ZXJhbD0ke2dldFRleHQoZmllbGROYW1lKX0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL3Jlc291cmNlc19qYS5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvcmVzb3VyY2VzX2phLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBlYjZkMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL3Jlc291cmNlc19qYS5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsODkgQEAKK2J1dHRvbi5jYW5jZWw9XHUzMGFkXHUzMGUzXHUzMGYzXHUzMGJiXHUzMGViCitidXR0b24uY29uZmlybT1cdTc4YmFcdThhOGQKK2J1dHRvbi5yZXNldD1cdTMwZWFcdTMwYmJcdTMwYzNcdTMwYzgKK2J1dHRvbi5zYXZlPVx1NGZkZFx1NWI1OAorY2hhbmdlLm1lc3NhZ2U9XHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDZFXHU2NzA5XHU1MkI5XHU2NzFGXHU5NjUwXHUzMDRDXHU5MDRFXHUzMDRFXHUzMDdFXHUzMDU3XHUzMDVGXHUzMDAyXHUzMEI3XHUzMEI5XHUzMEM2XHUzMEUwXHU3QkExXHU3NDA2XHU4MDA1XHUzMDZCXHUzMDRBXHU1NTRGXHUzMDQ0XHU1NDA4XHUzMDhGXHUzMDVCXHU0RTBCXHUzMDU1XHUzMDQ0CitjaGFuZ2UudHJ5PVx1NTE4RFx1OEE2Nlx1ODg0QworY2hhbmdlLnRpdGxlPVx1MzBkMVx1MzBiOVx1MzBlZlx1MzBmY1x1MzBjOVx1NjcxZlx1OTY1MFx1NTIwN1x1MzA4YworZGF0YWJhc2UubG9hZD0gezB9IFx1MzA0Qlx1MzA4OVx1MzBDN1x1MzBGQ1x1MzBCRlx1MzBEOVx1MzBGQ1x1MzBCOVx1MzA5Mlx1MzBFRFx1MzBGQ1x1MzBDOVx1MzA2N1x1MzA0RFx1MzA3RVx1MzA1Qlx1MzA5MworZXJyb3IuZGF0YWJhc2UubWlzc2luZz1cdTMwRTZcdTMwRkNcdTMwQjZcdTMwQzdcdTMwRkNcdTMwQkZcdTMwRDlcdTMwRkNcdTMwQjlcdTMwNENcdTg5OEJcdTMwNjRcdTMwNEJcdTMwOEFcdTMwN0VcdTMwNUJcdTMwOTNcdTMwMDJcdTMwRURcdTMwQjBcdTMwQUFcdTMwRjNcdTMwNkVcdThBOERcdThBM0NcdTMwNENcdTUxRkFcdTY3NjVcdTMwN0VcdTMwNUJcdTMwOTMKK2Vycm9yLmZyb21BZGRyZXNzLmZvcm1hdD1Gcm9tXHUzMEEyXHUzMEM5XHUzMEVDXHUzMEI5XHUzMDZFXHU2NkY4XHU1RjBGXHUzMDRDXHU2QjYzXHUzMDU3XHUzMDRGXHUzMDQyXHUzMDhBXHUzMDdFXHUzMDVCXHUzMDkzCitlcnJvci5mcm9tQWRkcmVzcy5yZXF1aXJlZD1Gcm9tXHUzMEEyXHUzMEM5XHUzMEVDXHUzMEI5XHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvci5mdWxsTmFtZS5yZXF1aXJlZD1cdTMwRDVcdTMwRUJcdTMwQ0RcdTMwRkNcdTMwRTBcdTMwOTJcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQKK2Vycm9yLmhvc3QucmVxdWlyZWQ9XHUzMEUxXHUzMEZDXHUzMEVCXHUzMEI1XHUzMEZDXHUzMEQwXHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvci5ub1N1YnNjcmlwdGlvbj1TdWJzY3JpcHRpb24gYmVhbiBcdTMwNGNcdTMwYmJcdTMwYzNcdTMwYjdcdTMwZTdcdTMwZjNcdTMwNmVcdTRlMmRcdTMwNmJcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTMKK2Vycm9yLnBhc3N3b3JkLmV4cGlyZWQ9XHUzMEU2XHUzMEZDXHUzMEI2IHswfSBcdTMwNkVcdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNkVcdTY3MDlcdTUyQjlcdTY3MUZcdTk2NTBcdTMwNENcdTkwNEVcdTMwNEVcdTMwN0VcdTMwNTdcdTMwNUYKK2Vycm9yLnBhc3N3b3JkLnJlcXVpcmVkPVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA0Q1x1NUZDNVx1ODk4MVx1MzA2N1x1MzA1OQorZXJyb3IucGFzc3dvcmQyLnJlcXVpcmVkPVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOShcdTc4QkFcdThBOERcdTc1MjgpXHUzMDRDXHU1RkM1XHU4OTgxXHUzMDY3XHUzMDU5CitlcnJvci5wYXNzd29yZC5tYXRjaD1cdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNjhcdTc4QkFcdThBOERcdTc1MjhcdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNENcdTRFMDBcdTgxRjRcdTMwNTdcdTMwNjZcdTMwNDRcdTMwN0VcdTMwNUJcdTMwOTMKK2Vycm9yLnBhc3N3b3JkLm1pc21hdGNoPVx1MzBFNlx1MzBGQ1x1MzBCNlx1NTQwRFx1MzA3RVx1MzA1Rlx1MzA2Rlx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA0Q1x1NEUwRFx1NkI2M1x1MzA2N1x1MzA1OVx1MzAwMlx1NTE4RFx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorZXJyb3IucmVwbHlUb0FkZHJlc3MuZm9ybWF0PVx1OEZENFx1NEZFMVx1MzBBMlx1MzBDOVx1MzBFQ1x1MzBCOVx1MzA2RVx1NjZGOFx1NUYwRlx1MzA0Q1x1NkI2M1x1MzA1N1x1MzA0Rlx1MzA0Mlx1MzA4QVx1MzA3RVx1MzA1Qlx1MzA5Mworc3RydXRzLm1lc3NhZ2VzLmludmFsaWQudG9rZW49XHUzMDUzXHUzMDZFXHUzMEQ1XHUzMEE5XHUzMEZDXHUzMEUwXHUzMDZFXHU1MTg1XHU1QkI5XHUzMDRDXHU2QjYzXHUzMDU3XHUzMDRGXHUzMDZBXHUzMDQ0XHUzMDVGXHUzMDgxXHU5MDAxXHU0RkUxXHUzMDU5XHUzMDhCXHUzMDUzXHUzMDY4XHUzMDRDXHU1MUZBXHU2NzY1XHUzMDdFXHUzMDVCXHUzMDkzCitlcnJvci50eXBlLmludmFsaWQ9XHUzMEI1XHUzMEZDXHUzMEQwXHUzMEJGXHUzMEE0XHUzMEQ3XHUzMDZGICdpbWFwJyBcdTMwNEIgJ3BvcDMnXHUzMDZFXHUzMDY5XHUzMDYxXHUzMDg5XHUzMDRCXHUzMDY3XHUzMDZBXHUzMDUxXHUzMDhDXHUzMDcwXHUzMDZBXHUzMDhBXHUzMDdFXHUzMDVCXHUzMDkzCitlcnJvci50eXBlLnJlcXVpcmVkPVx1MzBCNVx1MzBGQ1x1MzBEMFx1MzBCRlx1MzBBNFx1MzBEN1x1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorZXJyb3IudXNlcm5hbWUucmVxdWlyZWQ9XHUzMEU2XHUzMEZDXHUzMEI2XHU1NDBEXHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvci51c2VybmFtZS51bmlxdWU9XHUzMDVEXHUzMDZFXHUzMEU2XHUzMEZDXHUzMEI2XHU1NDBEXHUzMDZGXHU2NUUyXHUzMDZCXHU0RjdGXHU3NTI4XHUzMDU1XHUzMDhDXHUzMDY2XHUzMDQ0XHUzMDdFXHUzMDU5XHUzMDAyIFx1NTIyNVx1MzA2RVx1MzBFNlx1MzBGQ1x1MzBCNlx1NTQwRFx1MzA5Mlx1OTA3OFx1NjI5RVx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorZXJyb3JzLmZvb3Rlcj08L3VsPjxocj4KK2Vycm9ycy5oZWFkZXI9PGgzPjxmb250IGNvbG9yPSJyZWQiPlx1NTE2NVx1NTI5Ylx1MzBjMVx1MzBhN1x1MzBjM1x1MzBhZlx1MzBhOFx1MzBlOVx1MzBmYzwvZm9udD48L2gzPjxwPlx1NGVlNVx1NGUwYlx1MzA2ZVx1MzBhOFx1MzBlOVx1MzBmY1x1MzA5Mlx1NzhiYVx1OGE4ZFx1MzA1N1x1MzA2Nlx1MzA0Zlx1MzA2MFx1MzA1NVx1MzA0NDo8L3A+PHVsPgorZXJyb3JzLnByZWZpeD08bGk+CitlcnJvcnMuc3VmZml4PTwvbGk+CitlcnJvcnMuaW9FeGNlcHRpb249SS9PXHU0ZjhiXHU1OTE2XHUzMDRjXHU3NjdhXHU3NTFmXHUzMDU3XHUzMDdlXHUzMDU3XHUzMDVmOiB7MH0KK2V4cGlyZWQucGFzc3dvcmQ9XHUzMEU2XHUzMEZDXHUzMEI2IHswfSBcdTMwNkVcdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNkVcdTY3MDlcdTUyQjlcdTY3MUZcdTk2NTBcdTMwNENcdTkwNEVcdTMwNEVcdTMwN0VcdTMwNTdcdTMwNUYKK2hlYWRpbmcuYXV0b0Nvbm5lY3Q9XHU4MWVhXHU1MmQ1XHU2M2E1XHU3ZDlhCitoZWFkaW5nLnN1YnNjcmlwdGlvbnM9XHU3M2ZlXHU1NzI4XHUzMDZlXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxCitoZWFkaW5nLmhvc3Q9XHUzMGRiXHUzMGI5XHUzMGM4XHU1NDBkCitoZWFkaW5nLnVzZXI9XHUzMGU2XHUzMGZjXHUzMGI2XHU1NDBkCitoZWFkaW5nLnR5cGU9XHUzMGI1XHUzMGZjXHUzMGQwXHUzMGJmXHUzMGE0XHUzMGQ3CitoZWFkaW5nLmFjdGlvbj1cdTY0Y2RcdTRmNWMKK2luZGV4LmhlYWRpbmc9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyBcdTMwYWFcdTMwZDdcdTMwYjdcdTMwZTdcdTMwZjMKK2luZGV4LmxvZ2luPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZWRcdTMwYjBcdTMwYWFcdTMwZjMKK2luZGV4LnJlZ2lzdHJhdGlvbj1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGU2XHUzMGZjXHUzMGI2XHU3NjdiXHU5MzMyCitpbmRleC50aXRsZT1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzKFN0cnV0cyAxLjEtZGV2KQoraW5kZXgudG91cj1cdTMwYjVcdTMwZjNcdTMwZDdcdTMwZWJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjNcdTMwOTJcdTY1NjNcdTdiNTZcdTMwNTlcdTMwOGIKK2xpbmtTdWJzY3JpcHRpb24uaW89SS9PXHUzMGE4XHUzMGU5XHUzMGZjOiB7MH0KK2xpbmtTdWJzY3JpcHRpb24ubm9TdWJzY3JpcHRpb249XHU1YzVlXHU2MDI3IHswfSBcdTMwNmJcdThjZmNcdThhYWRcdTYwYzVcdTU4MzFcdTMwNGNcdTViNThcdTU3MjhcdTMwNTdcdTMwN2VcdTMwNWJcdTMwOTMKK2xpbmtVc2VyLmlvPUkvT1x1MzBhOFx1MzBlOVx1MzBmYzogezB9CitsaW5rVXNlci5ub1VzZXI9XHU1YzVlXHU2MDI3IHswfSBcdTMwNmJcdTMwZTZcdTMwZmNcdTMwYjZcdTYwYzVcdTU4MzFcdTMwNGNcdTViNThcdTU3MjhcdTMwNTdcdTMwN2VcdTMwNWJcdTMwOTMKK2xvZ2luLnRpdGxlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZWRcdTMwYjBcdTMwYWFcdTMwZjMKK21lbnUuaGVhZGluZz1cdTMwZTFcdTMwYTRcdTMwZjNcdTMwZTFcdTMwY2JcdTMwZTVcdTMwZmMKK21lbnUubG9nb3V0PU1haWxSZWFkZXIgXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzXHUzMDZlXHUzMGVkXHUzMGIwXHUzMGFhXHUzMGQ1CittZW51LnJlZ2lzdHJhdGlvbj1cdTMwZDdcdTMwZWRcdTMwZDVcdTMwYTFcdTMwYTRcdTMwZWJcdTMwNmVcdTdkZThcdTk2YzYKK21lbnUudGl0bGU9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBlMVx1MzBhNFx1MzBmM1x1MzBlMVx1MzBjYlx1MzBlNVx1MzBmYworb3B0aW9uLmltYXA9SU1BUCBcdTMwZDdcdTMwZWRcdTMwYzhcdTMwYjNcdTMwZWIKK29wdGlvbi5wb3AzPVBPUDMgXHUzMGQ3XHUzMGVkXHUzMGM4XHUzMGIzXHUzMGViCisjIHByb21wdC4KK2F1dG9Db25uZWN0PVx1ODFlYVx1NTJkNVx1NjNhNVx1N2Q5YQorZnJvbUFkZHJlc3M9RnJvbVx1MzBhMlx1MzBjOVx1MzBlY1x1MzBiOQorZnVsbE5hbWU9XHUzMGQ1XHUzMGViXHUzMGNkXHUzMGZjXHUzMGUwCittYWlsSG9zdG5hbWU9XHUzMGUxXHUzMGZjXHUzMGViXHUzMGI1XHUzMGZjXHUzMGQwCittYWlsUGFzc3dvcmQ9XHUzMGUxXHUzMGZjXHUzMGViXHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5CittYWlsU2VydmVyVHlwZT1cdTMwYjVcdTMwZmNcdTMwZDBcdTMwYmZcdTMwYTRcdTMwZDcKK21haWxVc2VybmFtZT1cdTMwZTFcdTMwZmNcdTMwZWJcdTMwZTZcdTMwZmNcdTMwYjZcdTU0MGQKKy5wYXNzd29yZD1cdTMwZDFcdTMwYjlcdTMwZWZcdTMwZmNcdTMwYzkKK3Bhc3N3b3JkMj1cdTMwZDFcdTMwYjlcdTMwZWZcdTMwZmNcdTMwYzkoXHU3OGJhXHU4YThkXHU3NTI4KQorcmVwbHlUb0FkZHJlc3M9XHU4ZmQ0XHU0ZmUxXHUzMGEyXHUzMGM5XHUzMGVjXHUzMGI5Cit1c2VybmFtZT1cdTMwZTZcdTMwZmNcdTMwYjZcdTU0MGQKK3JlZ2lzdHJhdGlvbi5hZGRTdWJzY3JpcHRpb249XHU2NWIwXHU4OThmXHU0ZjVjXHU2MjEwCityZWdpc3RyYXRpb24uZGVsZXRlU3Vic2NyaXB0aW9uPVx1NTI0YVx1OTY2NAorcmVnaXN0cmF0aW9uLmVkaXRTdWJzY3JpcHRpb249XHU3ZGU4XHU5NmM2CityZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZTZcdTMwZmNcdTMwYjZcdTc2N2JcdTkzMzIKK3JlZ2lzdHJhdGlvbi50aXRsZS5lZGl0PU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZDdcdTMwZWRcdTMwZDVcdTMwYTFcdTMwYTRcdTMwZWJcdTdkZThcdTk2YzYKK3N1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGU9XHUzMGUxXHUzMGZjXHUzMGViXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxXHUzMDZlXHU2NWIwXHU4OThmXHU0ZjVjXHU2MjEwCitzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlPVx1MzBlMVx1MzBmY1x1MzBlYlx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMVx1MzA2ZVx1NTI0YVx1OTY2NAorc3Vic2NyaXB0aW9uLnRpdGxlLmVkaXQ9XHUzMGUxXHUzMGZjXHUzMGViXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxXHUzMDZlXHU3ZGU4XHU5NmM2CisKKyMgU3RhbmRhcmQgZXJyb3IgbWVzc2FnZXMgZm9yIHZhbGlkYXRvciBmcmFtZXdvcmsgY2hlY2tzCitlcnJvcnMucmVxdWlyZWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA5Mlx1NTE2NVx1NTI5Ylx1MzA1N1x1MzA2Nlx1MzA0Zlx1MzA2MFx1MzA1NVx1MzA0NFx1MzAwMgorZXJyb3JzLm1pbmxlbmd0aD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmIHsxfSBcdTY1ODdcdTViNTdcdTRlZTVcdTRlMGFcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5tYXhsZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZiB7Mn0gXHU2NTg3XHU1YjU3XHU0ZWU1XHU0ZTBiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuaW52YWxpZD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmXHU2YjYzXHUzMDU3XHUzMDRmXHUzMDQyXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuYnl0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmYnl0ZVx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLnNob3J0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZzaG9ydFx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmludGVnZXI9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZmludGVnZXJcdTU3OGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5sb25nPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZsb25nXHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuZmxvYXQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZmZsb2F0XHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuZG91YmxlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZkb3VibGVcdTU3OGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5kYXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZcdTY1ZTVcdTRlZDhcdTMwNjdcdTMwNmZcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5yYW5nZT0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmIHsxfSBcdTMwNGJcdTMwODkgezJ9IFx1MzA2ZVx1OTU5M1x1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmNyZWRpdGNhcmQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2Zlx1NmI2M1x1MzA1N1x1MzA0NFx1MzBhZlx1MzBlY1x1MzBiOFx1MzBjM1x1MzBjOFx1MzBhYlx1MzBmY1x1MzBjOVx1NzU2YVx1NTNmN1x1MzA2N1x1MzA2Zlx1MzA0Mlx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmVtYWlsPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZcdTZiNjNcdTMwNTdcdTMwNDRcdTMwZTFcdTMwZmNcdTMwZWJcdTMwYTJcdTMwYzlcdTMwZWNcdTMwYjlcdTMwNjdcdTMwNmZcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL3Jlc291cmNlc19ydS5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL2phdmEvcmVzb3VyY2VzX3J1LnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmZmMWFjMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL3Jlc291cmNlc19ydS5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsODkgQEAKK2J1dHRvbi5jYW5jZWw9XHUwNDFlXHUwNDQyXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDQyXHUwNDRjCitidXR0b24uY29uZmlybT1cdTA0MWZcdTA0M2VcdTA0MzRcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzRcdTA0MzhcdTA0NDJcdTA0NGMKK2J1dHRvbi5yZXNldD1cdTA0MjFcdTA0MzFcdTA0NDBcdTA0M2VcdTA0NDFcdTA0MzhcdTA0NDJcdTA0NGMKK2J1dHRvbi5zYXZlPVx1MDQyMVx1MDQzZVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YworY2hhbmdlLm1lc3NhZ2U9WW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZC4gIFBsZWFzZSBhc2sgdGhlIHN5c3RlbSBhZG1pbmlzdHJhdG9yIHRvIGNoYW5nZSBpdC4KK2NoYW5nZS50cnk9VHJ5IEFnYWluCitjaGFuZ2UudGl0bGU9UGFzc3dvcmQgSGFzIEV4cGlyZWQKK2RhdGFiYXNlLmxvYWQ9XHUwNDExXHUwNDMwXHUwNDM3XHUwNDMwIFx1MDQzNFx1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2RcdTA0MzUgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0MzdcdTA0MzBcdTA0MzNcdTA0NDBcdTA0NDNcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzAgXHUwNDM4XHUwNDM3IHswfQorZXJyb3IuZGF0YWJhc2UubWlzc2luZz1cdTA0MWRcdTA0MzUgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNlIFx1MDQzOFx1MDQzY1x1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYgLSBcdTA0M2RcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzdcdTA0M2NcdTA0M2VcdTA0MzZcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzMFx1MDQ0M1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzYVx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZS4KK2Vycm9yLmZyb21BZGRyZXNzLmZvcm1hdD1cdTA0MTIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDM1ICdcdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyOicgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkIFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MzIgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDNlXHUwNDNjIFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzNS4KK2Vycm9yLmZyb21BZGRyZXNzLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgJ1x1MDQxMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MWVcdTA0NDI6Jy4KK2Vycm9yLmZ1bGxOYW1lLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzOFx1MDQzY1x1MDQ0Zi4KK2Vycm9yLmhvc3QucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0NGJcdTA0MzkgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwLgorZXJyb3Iubm9TdWJzY3JpcHRpb249XHUwNDFmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzBcdTA0MzlcdTA0MzRcdTA0MzVcdTA0M2RcdTA0MzAgXHUwNDMyIFx1MDQ0MVx1MDQzNVx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYKK2Vycm9yLnBhc3N3b3JkLmV4cGlyZWQ9WW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZCBmb3IgdXNlcm5hbWUgezB9CitlcnJvci5wYXNzd29yZC5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0Yy4KK2Vycm9yLnBhc3N3b3JkMi5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzNFx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGYuCitlcnJvci5wYXNzd29yZC5tYXRjaD1cdTA0MWZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGMgXHUwNDM4IFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzNFx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGYgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzZVx1MDQzMlx1MDQzZlx1MDQzMFx1MDQzNFx1MDQzMFx1MDQ0ZVx1MDQ0Mi4KK2Vycm9yLnBhc3N3b3JkLm1pc21hdGNoPVx1MDQxZFx1MDQzNVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0MzhcdTA0M2NcdTA0NGYgXHUwNDM4L1x1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGMgLSBcdTA0M2ZcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzFcdTA0NDNcdTA0MzlcdTA0NDJcdTA0MzUsIFx1MDQzZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQxXHUwNDNkXHUwNDNlXHUwNDMyXHUwNDMwLgorZXJyb3IucmVwbHlUb0FkZHJlc3MuZm9ybWF0PVx1MDQxMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgJ1x1MDQxMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MWVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDNkXHUwNDMwOicgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkIFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MzIgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDNlXHUwNDNjIFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzNS4KK3N0cnV0cy5tZXNzYWdlcy5pbnZhbGlkLnRva2VuPVx1MDQyZFx1MDQ0Mlx1MDQzMCBcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzAgXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDMwXHUwNDNkXHUwNDMwIC0gXHUwNDNkXHUwNDMwXHUwNDQwXHUwNDQzXHUwNDQ4XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0MFx1MDQ0Zlx1MDQzNFx1MDQzYVx1MDQzMCBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDQ1LgorZXJyb3IudHlwZS5pbnZhbGlkPVx1MDQxMiBcdTA0M2FcdTA0MzBcdTA0NDdcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzUgXHUwNDQyXHUwNDM4XHUwNDNmXHUwNDMwIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMCBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQ0YiBcdTA0M2JcdTA0MzhcdTA0NDhcdTA0NGMgJ2ltYXAnIFx1MDQzOFx1MDQzYlx1MDQzOCAncG9wMycKK2Vycm9yLnR5cGUucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0NDJcdTA0MzhcdTA0M2YgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwCitlcnJvci51c2VybmFtZS5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzOFx1MDQzY1x1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYKK2Vycm9yLnVzZXJuYW1lLnVuaXF1ZT1cdTA0MjNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDM4XHUwNDNjXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0ZiBcdTA0NDNcdTA0MzZcdTA0MzUgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIC0gXHUwNDMyXHUwNDRiXHUwNDMxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQyXHUwNDM1LCBcdTA0M2ZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzZVx1MDQzNSBcdTA0MzhcdTA0M2NcdTA0NGYuCitlcnJvcnMuZm9vdGVyPTwvdWw+PGhyPgorZXJyb3JzLmhlYWRlcj08aDM+PGZvbnQgY29sb3I9InJlZCI+XHUwNDFlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDM4IFx1MDQzZlx1MDQ0MFx1MDQzOCBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzggXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDQ1PC9mb250PjwvaDM+PHA+XHUwNDEyXHUwNDRiIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzZFx1MDQzOFx1MDQzNlx1MDQzNSBcdTA0M2VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0Mzg6PC9wPjx1bD4KK2Vycm9ycy5wcmVmaXg9PGxpPgorZXJyb3JzLnN1ZmZpeD08L2xpPgorZXJyb3JzLmlvRXhjZXB0aW9uPVx1MDQxZVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzYVx1MDQzMCBcdTA0MzJcdTA0MzJcdTA0M2VcdTA0MzRcdTA0MzAvXHUwNDMyXHUwNDRiXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwIFx1MDQzZlx1MDQ0MFx1MDQzOCBcdTA0NDFcdTA0M2VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0M2RcdTA0MzhcdTA0MzggXHUwNDQxXHUwNDNlXHUwNDNlXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM5IFx1MDQzZVx1MDQzMSBcdTA0M2VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzBcdTA0NDU6IHswfQorZXhwaXJlZC5wYXNzd29yZD1Vc2VyIFBhc3N3b3JkIGhhcyBleHBpcmVkIGZvciB7MH0KK2hlYWRpbmcuYXV0b0Nvbm5lY3Q9XHUwNDEwXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDNjXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNhXHUwNDM4CitoZWFkaW5nLnN1YnNjcmlwdGlvbnM9XHUwNDE3XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQzOAoraGVhZGluZy5ob3N0PVx1MDQyMVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MAoraGVhZGluZy51c2VyPVx1MDQxOFx1MDQzY1x1MDQ0ZgoraGVhZGluZy50eXBlPVx1MDQyMlx1MDQzOFx1MDQzZiBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzAKK2hlYWRpbmcuYWN0aW9uPVx1MDQxNFx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzOFx1MDQzNQoraW5kZXguaGVhZGluZz1cdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1ICdcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDRiJworaW5kZXgubG9naW49XHUwNDEyXHUwNDNlXHUwNDM5XHUwNDQyXHUwNDM4IFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0MzdcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjCitpbmRleC5yZWdpc3RyYXRpb249XHUwNDE3XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRjXHUwNDQxXHUwNDRmCitpbmRleC50aXRsZT1cdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1ICdcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDRiJyAoU3RydXRzIDEuMS1kZXYpCitpbmRleC50b3VyPVx1MDQxZVx1MDQzMVx1MDQzN1x1MDQzZVx1MDQ0MCBcdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRmICdcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDRiJworbGlua1N1YnNjcmlwdGlvbi5pbz1cdTA0MWVcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzAgXHUwNDMyXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwL1x1MDQzMlx1MDQ0Ylx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMCAoXHUwNDM0XHUwNDNiXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQzOCk6IHswfQorbGlua1N1YnNjcmlwdGlvbi5ub1N1YnNjcmlwdGlvbj1cdTA0MTBcdTA0NDJcdTA0NDBcdTA0MzhcdTA0MzFcdTA0NDNcdTA0NDIgezB9IFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzhcdTA0NDIgXHUwNDM4XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZSBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0M2ZcdTA0MzhcdTA0NDFcdTA0M2FcdTA0MzUgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0NDNcdTA0NDlcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0MzVcdTA0NDIuCitsaW5rVXNlci5pbz1cdTA0MWVcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzAgXHUwNDMyXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwL1x1MDQzMlx1MDQ0Ylx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMCAoXHUwNDM0XHUwNDNiXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Zik6IHswfQorbGlua1VzZXIubm9Vc2VyPVx1MDQxMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0MiB7MH0gXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzZVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzOFx1MDQ0MiBcdTA0MzhcdTA0M2RcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNlIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQzNSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0M1x1MDQ0OVx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQ0M1x1MDQzNVx1MDQ0Mi4KK2xvZ2luLnRpdGxlPVx1MDQxNFx1MDQzNVx1MDQzY1x1MDQzZVx1MDQzZFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzZVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDI3XHUwNDQyXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQ0YiAtIFx1MDQxZlx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzYVx1MDQzMCBcdTA0MzhcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzggXHUwNDM4IFx1MDQzZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0Zi4KK21lbnUuaGVhZGluZz1cdTA0MWRcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M2VcdTA0MzlcdTA0M2FcdTA0MzggXHUwNDMzXHUwNDNiXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0ZSBcdTA0MzRcdTA0M2JcdTA0NGYKK21lbnUubG9nb3V0PVx1MDQxMlx1MDQ0Ylx1MDQzOVx1MDQ0Mlx1MDQzOAorbWVudS5yZWdpc3RyYXRpb249XHUwNDE4XHUwNDM3XHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQzMlx1MDQzZVx1MDQzOCBcdTA0M2RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M2VcdTA0MzlcdTA0M2FcdTA0MzgKK21haW5NZW51LnRpdGxlPVx1MDQxNFx1MDQzNVx1MDQzY1x1MDQzZVx1MDQzZFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzZVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgJ1x1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0NGInIC0gXHUwNDFlXHUwNDQxXHUwNDNkXHUwNDNlXHUwNDMyXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0ZQorb3B0aW9uLmltYXA9XHUwNDFmXHUwNDQwXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDNhXHUwNDNlXHUwNDNiIElNQVAKK29wdGlvbi5wb3AzPVx1MDQxZlx1MDQ0MFx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQzYVx1MDQzZVx1MDQzYiBQT1AzCisjIHByb21wdC4KK2F1dG9Db25uZWN0PVx1MDQxMFx1MDQzMlx1MDQ0Mlx1MDQzZVx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQzNSBcdTA0NDFcdTA0M2VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzU6Citmcm9tQWRkcmVzcz1cdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyOgorZnVsbE5hbWU9XHUwNDFmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzOFx1MDQzY1x1MDQ0ZjoKK21haWxIb3N0bmFtZT1cdTA0MWZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0NGJcdTA0MzkgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwOgorbWFpbFBhc3N3b3JkPVx1MDQxZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0YyBcdTA0MzRcdTA0M2JcdTA0NGYgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMDoKK21haWxTZXJ2ZXJUeXBlPVx1MDQyMlx1MDQzOFx1MDQzZiBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzA6CittYWlsVXNlcm5hbWU9XHUwNDE4XHUwNDNjXHUwNDRmIFx1MDQzNFx1MDQzYlx1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwOgorcGFzc3dvcmQ9XHUwNDFmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRjOgorcGFzc3dvcmQyPShcdTA0MWZcdTA0M2VcdTA0MzRcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUpIFx1MDQxZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0YzoKK3JlcGx5VG9BZGRyZXNzPVx1MDQxMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MWVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDNkXHUwNDMwOgordXNlcm5hbWU9XHUwNDE4XHUwNDNjXHUwNDRmOgorcmVnaXN0cmF0aW9uLmFkZFN1YnNjcmlwdGlvbj1cdTA0MTRcdTA0M2VcdTA0MzFcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMKK3JlZ2lzdHJhdGlvbi5kZWxldGVTdWJzY3JpcHRpb249XHUwNDIzXHUwNDM0XHUwNDMwXHUwNDNiXHUwNDM4XHUwNDQyXHUwNDRjCityZWdpc3RyYXRpb24uZWRpdFN1YnNjcmlwdGlvbj1cdTA0MjBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2FcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGMKK3JlZ2lzdHJhdGlvbi50aXRsZS5jcmVhdGU9XHUwNDE3XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRjXHUwNDQxXHUwNDRmCityZWdpc3RyYXRpb24udGl0bGUuZWRpdD1cdTA0MThcdTA0MzdcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzZSBcdTA0NDFcdTA0MzJcdTA0M2VcdTA0MzVcdTA0MzkgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4CitzdWJzY3JpcHRpb24udGl0bGUuY3JlYXRlPVx1MDQyMVx1MDQzZVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2RcdTA0M2VcdTA0MzJcdTA0NDNcdTA0NGUgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDQzCitzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlPVx1MDQyM1x1MDQzNFx1MDQzMFx1MDQzYlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDNcdTA0NDlcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0NGVcdTA0NDlcdTA0NDNcdTA0NGUgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDQzCitzdWJzY3JpcHRpb24udGl0bGUuZWRpdD1cdTA0MjBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2FcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDQzXHUwNDRlIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQ0MworCisjIFN0YW5kYXJkIGVycm9yIG1lc3NhZ2VzIGZvciB2YWxpZGF0b3IgZnJhbWV3b3JrIGNoZWNrcworZXJyb3JzLnJlcXVpcmVkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyByZXF1aXJlZC4KK2Vycm9ycy5taW5sZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGNhbm5vdCBiZSBsZXNzIHRoYW4gezF9IGNoYXJhY3RlcnMuCitlcnJvcnMubWF4bGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHsyfSBjaGFyYWN0ZXJzLgorZXJyb3JzLmludmFsaWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGludmFsaWQuCitlcnJvcnMuYnl0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBieXRlLgorZXJyb3JzLnNob3J0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIHNob3J0LgorZXJyb3JzLmludGVnZXI9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gaW50ZWdlci4KK2Vycm9ycy5sb25nPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGxvbmcuCitlcnJvcnMuZmxvYXQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gZmxvYXQuCitlcnJvcnMuZG91YmxlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGRvdWJsZS4KK2Vycm9ycy5kYXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSBkYXRlLgorZXJyb3JzLnJhbmdlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgaW4gdGhlIHJhbmdlIHsxfSB0aHJvdWdoIHsyfS4KK2Vycm9ycy5jcmVkaXRjYXJkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuCitlcnJvcnMuZW1haWw9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGFuIGludmFsaWQgZS1tYWlsIGFkZHJlc3MuCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9zdHJ1dHMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL3N0cnV0cy5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1YzgxMzYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9zdHJ1dHMucHJvcGVydGllcwpAQCAtMCwwICsxIEBACitzdHJ1dHMuY3VzdG9tLmkxOG4ucmVzb3VyY2VzPXJlc291cmNlcw0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy9qYXZhL3N0cnV0cy54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9zdHJ1dHMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0MWNlZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvamF2YS9zdHJ1dHMueG1sCkBAIC0wLDAgKzEsODUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/PgorPCFET0NUWVBFIHN0cnV0cyBQVUJMSUMKKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMi4wLy9FTiIKKyAgICAgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy0yLjAuZHRkIj4KKworPHN0cnV0cz4KKyAgICA8Y29uc3RhbnQgbmFtZT0ic3RydXRzLmRldk1vZGUiIHZhbHVlPSJ0cnVlIi8+CisgICAgPGNvbnN0YW50IG5hbWU9InN0cnV0cy5lbmFibGUuRHluYW1pY01ldGhvZEludm9jYXRpb24iIHZhbHVlPSJmYWxzZSIvPgorCisgICAgPHBhY2thZ2UgbmFtZT0iZGVmYXVsdCIgZXh0ZW5kcz0ic3RydXRzLWRlZmF1bHQiPgorICAgICAgICA8ZGVmYXVsdC1hY3Rpb24tcmVmIG5hbWU9Ik1pc3NpbmciLz4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IkhlbGxvIiBjbGFzcz0iSGVsbG8iPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvSGVsbG8uanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTWlzc2luZyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9NaXNzaW5nLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IldlbGNvbWUiPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvV2VsY29tZS5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJSZWdpc3RlciIgY2xhc3M9IlJlZ2lzdGVyIiBtZXRob2Q9ImlucHV0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9SZWdpc3Rlci5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJSZWdpc3Rlcl9jYW5jZWwiIGNsYXNzPSJSZWdpc3RlciIgbWV0aG9kPSJjYW5jZWwiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJjYW5jZWwiIHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+V2VsY29tZTwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlJlZ2lzdGVyX2NyZWF0ZSIgY2xhc3M9IlJlZ2lzdGVyQ3JlYXRlIiBtZXRob2Q9InNhdmUiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL1JlZ2lzdGVyLmpzcDwvcmVzdWx0PgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPk1lbnU8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJSZWdpc3Rlcl9zYXZlIiBjbGFzcz0iUmVnaXN0ZXIiIG1ldGhvZD0ic2F2ZSI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvUmVnaXN0ZXIuanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+TWVudTwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9Ik1lbnUiIGNsYXNzPSJNYWlsUmVhZGVyU3VwcG9ydCI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9NZW51LmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IkxvZ291dCIgY2xhc3M9IkxvZ291dCI+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+V2VsY29tZTwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IkxvZ2luIiBjbGFzcz0iTG9naW4iIG1ldGhvZD0iaW5wdXQiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL0xvZ2luLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IkxvZ2luX2NhbmNlbCIgY2xhc3M9IkxvZ2luIiBtZXRob2Q9ImNhbmNlbCI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImNhbmNlbCIgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5XZWxjb21lPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTG9naW5fc2F2ZSIgY2xhc3M9IkxvZ2luIiBtZXRob2Q9InNhdmUiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL0xvZ2luLmpzcDwvcmVzdWx0PgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPk1lbnU8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJTdWJzY3JpYmUiIGNsYXNzPSJTdWJzY3JpYmUiIG1ldGhvZD0iaW5wdXQiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL1N1YnNjcmliZS5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5SZWdpc3RlcjwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlN1YnNjcmliZV9kZWxldGUiIGNsYXNzPSJTdWJzY3JpYmUiIG1ldGhvZD0iZGVsZXRlIj4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiIHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+TG9naW48L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL1N1YnNjcmliZS5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJTdWJzY3JpYmVfZWRpdCIgY2xhc3M9IlN1YnNjcmliZSIgbWV0aG9kPSJlZGl0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiIHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+TG9naW48L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL1N1YnNjcmliZS5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJTdWJzY3JpYmVfc2F2ZSIgY2xhc3M9IlN1YnNjcmliZSIgbWV0aG9kPSJzYXZlIj4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9TdWJzY3JpYmUuanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+UmVnaXN0ZXI8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICA8L3BhY2thZ2U+Cis8L3N0cnV0cz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy90ZXN0L0hlbGxvVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3Rlc3QvSGVsbG9UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBkZWJmNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy90ZXN0L0hlbGxvVGVzdC5qYXZhCkBAIC0wLDAgKzEsMTYgQEAKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CisKKy8qKgorICogQW4gZXhhbXBsZSB0ZXh0IGNsYXNzIHRvIHZlcmlmeSB0aGUgY29uZmlndXJhdGlvbi4KKyAqLworcHVibGljIGNsYXNzIEhlbGxvVGVzdCBleHRlbmRzIFRlc3RDYXNlIHsKKworICAgIC8qKgorICAgICAqIEFuIGV4YW1wbGUgdGVzdCB0aGF0IGFzc2VydHMgdHJ1ZS4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIE9uIGludmFsaWQgYXNzZXJ0aW9ucworICAgICAqLworICAgIHB1YmxpYyB2b2lkIHRlc3RIZWxsb0FjdGlvbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBhc3NlcnRUcnVlKHRydWUpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy90ZXN0L1JlZ2lzdGVyVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3Rlc3QvUmVnaXN0ZXJUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU4NjM2NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy90ZXN0L1JlZ2lzdGVyVGVzdC5qYXZhCkBAIC0wLDAgKzEsMzUgQEAKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworCitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CisKK3B1YmxpYyBjbGFzcyBSZWdpc3RlclRlc3QgZXh0ZW5kcyBSZXRhaW5UZXN0IHsKKworICAgIFJlZ2lzdGVyIGFjdGlvbiA9IG51bGw7CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci5zZXRVcCgpOworICAgICAgICBhY3Rpb24gPSBuZXcgUmVnaXN0ZXIoKTsKKyAgICAgICAgYWN0aW9uLnNldEFwcGxpY2F0aW9uKG5ldyBIYXNoTWFwKCkpOworICAgICAgICBhY3Rpb24uc2V0U2Vzc2lvbihuZXcgSGFzaE1hcCgpKTsKKyAgICAgICAgYWN0aW9uLnNldERhdGFiYXNlKGRhdGFiYXNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0U2F2ZSgpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIGFjdGlvbi5zZXRVc2VybmFtZSgidXNlciIpOworICAgICAgICBhY3Rpb24uc2V0UGFzc3dvcmQoInBhc3MiKTsKKyAgICAgICAgYWN0aW9uLnNldEZ1bGxOYW1lKCJKb2huIFEuIFVzZXIiKTsKKyAgICAgICAgYWN0aW9uLnNldEZyb21BZGRyZXNzKCJKb2huLlVzZXJAc29tZXdoZXJlLmNvbSIpOworCisgICAgICAgIFN0cmluZyBzdWNjZXNzID0gYWN0aW9uLnNhdmUoKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSgiRXhwZWN0ZWQgU1VDQ0VTUyIsIEFjdGlvbi5TVUNDRVNTLmVxdWFscyhzdWNjZXNzKSk7CisKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuZmluZFVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRXhwZWN0ZWQgdXNlciIsIHVzZXIpOworCisgICAgICAgIFN0cmluZyBpbnB1dCA9IGFjdGlvbi5zYXZlKCk7CisgICAgICAgIGFzc2VydFRydWUoIkV4cGVjdGVkIElOUFVUIiwgQWN0aW9uLklOUFVULmVxdWFscyhpbnB1dCkpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3Rlc3QvUmV0YWluVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3Rlc3QvUmV0YWluVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2NjZmNzMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvdGVzdC9SZXRhaW5UZXN0LmphdmEKQEAgLTAsMCArMSw5NyBAQAoraW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlN1YnNjcmlwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyRGF0YWJhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5pbXBsLm1lbW9yeS5NZW1vcnlVc2VyRGF0YWJhc2U7CisKK3B1YmxpYyBjbGFzcyBSZXRhaW5UZXN0IGV4dGVuZHMgVGVzdENhc2UgeworCisgICAgcHJvdGVjdGVkIFVzZXJEYXRhYmFzZSBkYXRhYmFzZTsKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHRlc3ROYW1lID0gInRlc3QtZGF0YWJhc2UueG1sIjsKKworICAgIHB1YmxpYyB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyLnNldFVwKCk7CisgICAgICAgIE1lbW9yeVVzZXJEYXRhYmFzZSBtZW1vcnlVc2VyRGF0YWJhc2UgPSBuZXcgTWVtb3J5VXNlckRhdGFiYXNlKCk7CisgICAgICAgIG1lbW9yeVVzZXJEYXRhYmFzZS5zZXRQYXRobmFtZSh0ZXN0TmFtZSk7CisgICAgICAgIGRhdGFiYXNlID0gbWVtb3J5VXNlckRhdGFiYXNlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3REYXRhYmFzZUNsZWFuKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE51bGwoIkV4cGVjdGVkIHVzZXIgdG8gYmUgbWlzc2luZyIsIHVzZXIpOworICAgIH0KKworICAgIC8vICBBZGQgeW91ciB0ZXN0IG1ldGhvZHMgaGVyZS4KKyAgICAvLyAgVGhlIHNldFVwIG1ldGhvZCB3aWxsIHJ1biBiZXR3ZWVuIGVhY2ggdGVzdC4KKworICAgIHB1YmxpYyB2b2lkIHRlc3RDcmVhdGVVc2VyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCh1c2VyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RmluZFVzZXIoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyMSA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsKKyAgICAgICAgVXNlciB1c2VyMiA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydFNhbWUoIkV4cGVjdGVkIHVzZXJzIHRvIG1hdGNoIiwgdXNlcjEsIHVzZXIyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q3JlYXRlU3Vic2NyaXB0aW9uKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIikuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLnlhaG9vLmNvbSIpOworICAgICAgICBhc3NlcnROb3ROdWxsKCJFeHBlY3RlZCBzdWJzY3JpcHRpb24gdG8gYmUgY3JlYXRlZCIsIHN1Yik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEZpbmRTdWJzY3JpcHRpb24oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjEgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIikuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLnlhaG9vLmNvbSIpOworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMiA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIikuZmluZFN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsKKyAgICAgICAgYXNzZXJ0U2FtZSgiRXhwZWN0ZWQgU3Vic2NyaXB0aW9ucyB0byBtYXRjaCIsIHN1YjEsIHN1YjIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3REYXRhYnNhZVNhdmUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIHVzZXIuc2V0UGFzc3dvcmQoInBhc3MiKTsKKyAgICAgICAgdXNlci5zZXRGdWxsTmFtZSgiSm9obiBRLiBVc2VyIik7CisgICAgICAgIHVzZXIuc2V0RnJvbUFkZHJlc3MoIkpvaG4uVXNlckBzb21ld2hlcmUuY29tIik7CisKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjEgPSB1c2VyLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC5ob3RtYWlsLmNvbSIpOworICAgICAgICBzdWIxLnNldFVzZXJuYW1lKCJ1c2VyMTIzNCIpOworICAgICAgICBzdWIxLnNldEF1dG9Db25uZWN0KGZhbHNlKTsKKyAgICAgICAgc3ViMS5zZXRUeXBlKCJwb3AzIik7CisgICAgICAgIHN1YjEuc2V0UGFzc3dvcmQoImJhciIpOworCisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIyID0gdXNlci5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwueWFob28uY29tIik7CisgICAgICAgIHN1YjIuc2V0VXNlcm5hbWUoImpxdXNlciIpOworICAgICAgICBzdWIyLnNldEF1dG9Db25uZWN0KGZhbHNlKTsKKyAgICAgICAgc3ViMi5zZXRUeXBlKCJpbWFwIik7CisgICAgICAgIHN1YjIuc2V0UGFzc3dvcmQoImZvbyIpOworCisgICAgICAgIGRhdGFiYXNlLnNhdmUoKTsKKworICAgIH0KKworICAgIC8vIEV4dHJhIGNyZWRpdAorCisgICAgcHVibGljIHZvaWQgdGVzdEZpbmRlclVzZXJCb2d1cygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIxID0gZGF0YWJhc2UuZmluZFVzZXIoImJvZ3VzIik7CisgICAgICAgIGFzc2VydE51bGwoIkV4cGVjdGVkIGJvZ3VzIHVzZXIgdG8gYmUgbm90IGZvdW5kIiwgdXNlcjEpOworICAgICAgICBVc2VyIHVzZXIyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROb3ROdWxsKCJFeHBlY3RlZCB1c2VyIHRvIGJlIGNyZWF0ZWQiLCB1c2VyMik7CisgICAgICAgIHVzZXIxID0gZGF0YWJhc2UuZmluZFVzZXIoImJvZ3VzIik7CisgICAgICAgIGFzc2VydE51bGwoIkV4cGVjdGVkIGJvZ3VzIHVzZXIgdG8gYmUgbm90IGZvdW5kIiwgdXNlcjEpOworICAgICAgICB1c2VyMSA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoIkV4cGVjdGVkIHVzZXIgdG8gYmUgZm91bmQiLCB1c2VyMSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEZpbmRTdWJCb2d1cygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIgPSB1c2VyLmZpbmRTdWJzY3JpcHRpb24oIm1haWwuYm9ndXMuY29tIik7CisgICAgICAgIGFzc2VydE51bGwoc3ViKTsKKyAgICAgICAgc3ViID0gZGF0YWJhc2UuZmluZFVzZXIoInVzZXIiKS5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwuaG90bWFpbC5jb20iKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbChzdWIpOworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMiA9IHVzZXIuZmluZFN1YnNjcmlwdGlvbigibWFpbC5ib2d1cy5jb20iKTsKKyAgICAgICAgYXNzZXJ0TnVsbChzdWIyKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjMgPSB1c2VyLmZpbmRTdWJzY3JpcHRpb24oIm1haWwuaG90bWFpbC5jb20iKTsKKyAgICAgICAgYXNzZXJ0U2FtZShzdWIsIHN1YjMpOworICAgIH0KKworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9XZWJUZXN0LmR0ZCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9XZWJUZXN0LmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjhhMzQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL1dlYlRlc3QuZHRkCkBAIC0wLDAgKzEsNDY5NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+Cis8IUVOVElUWSAlIGJvb2xlYW4gIih0cnVlfGZhbHNlfG9ufG9mZnx5ZXN8bm8pIj4KKzwhRU5USVRZICUgdGFza3MgInByb3BlcnR5ZmlsZSB8IGNjbWtkaXIgfCBpbXBvcnR0eXBlbGliIHwgdnNzY2hlY2tpbiB8IHNxbCB8IGN2c3Bhc3MgfCBjc2MgfCBkaXJuYW1lIHwgcmVwbGFjZXJlZ2V4cCB8IGdldCB8IGpqdHJlZSB8IHNsZWVwIHwgamFybGliLWRpc3BsYXkgfCBsZW5ndGggfCBkZXBlbmRzZXQgfCB6aXAgfCBwYXRjaCB8IGpzcGMgfCBzdHlsZSB8IG5pY2UgfCB0ZXN0IHwgdHN0YW1wIHwgdW53YXIgfCB2c3NoaXN0b3J5IHwgY3ZzY2hhbmdlbG9nIHwgY2NtY2hlY2tpbiB8IGJ6aXAyIHwgc3luYyB8IHZzc2FkZCB8IGphdmFkb2MgfCB0cmFuc2xhdGUgfCBzaWduamFyIHwgY2Nsb2NrIHwgY2hvd24gfCBqYXJsaWItYXZhaWxhYmxlIHwgV3NkbFRvRG90bmV0IHwgYnVpbGRudW1iZXIgfCBqcGNvdm1lcmdlIHwgY3ZzdmVyc2lvbiB8IGVqYmphciB8IHdhciB8IHJlbmFtZSB8IHNlcXVlbnRpYWwgfCBzZXJ2ZXJkZXBsb3kgfCBwcm9wZXJ0eSB8IHN1YmFudCB8IG1vdmUgfCBpbGRhc20gfCBjb3B5ZGlyIHwgY2NjaGVja2luIHwgY2N1bmxvY2sgfCB3bGpzcGMgfCBmaXhjcmxmIHwgc29zZ2V0IHwgcGF0aGNvbnZlcnQgfCByZWNvcmQgfCBleGVjIHwgY2Nta2xhYmVsIHwgbWFuaWZlc3QgfCBqcGNvdnJlcG9ydCB8IGV4ZWNvbiB8IGNjbWNoZWNrb3V0IHwgYW50IHwgeG1sdmFsaWRhdGUgfCB4c2x0IHwgaXBsYW5ldC1lamJjIHwgY2NtY2hlY2tpbnRhc2sgfCBnemlwIHwgbmF0aXZlMmFzY2lpIHwgY2NybXR5cGUgfCBlYXIgfCBpbnB1dCB8IHByZXNldGRlZiB8IHJtaWMgfCBjaGVja3N1bSB8IG1haWwgfCBsb2FkZmlsZSB8IHZzc2NoZWNrb3V0IHwgc29zY2hlY2tpbiB8IG1pbWVtYWlsIHwgZ3VuemlwIHwgY29uY2F0IHwgY2FiIHwgdG91Y2ggfCBwYXJhbGxlbCB8IGFudGNhbGwgfCBjY21rYmwgfCBjY2NoZWNrb3V0IHwgdHlwZWRlZiB8IGZpbHRlciB8IHhtbHByb3BlcnR5IHwgaW1wb3J0IHwgY29weSB8IGpzaGFycGMgfCBzeW1saW5rIHwgYW50c3RydWN0dXJlIHwgc2NyaXB0IHwgY2NtY3JlYXRldGFzayB8IHJwbSB8IGRlbGV0ZSB8IHJlcGxhY2UgfCBtbWV0cmljcyB8IGF0dHJpYiB8IHdhaXRmb3IgfCB1bnRhciB8IGxvYWRwcm9wZXJ0aWVzIHwgYXZhaWxhYmxlIHwgZWNob3Byb3BlcnRpZXMgfCBqdW5pdCB8IGNoZ3JwIHwgYnVuemlwMiB8IHdoaWNocmVzb3VyY2UgfCBjb3B5ZmlsZSB8IHZzc2NyZWF0ZSB8IG1hY3JvZGVmIHwgdW5qYXIgfCB2YmMgfCB3c2RsdG9kb3RuZXQgfCBta2RpciB8IGNvbmRpdGlvbiB8IGN2cyB8IHRlbXBmaWxlIHwganVuaXRyZXBvcnQgfCBjY21rYXR0ciB8IHRhc2tkZWYgfCBlY2hvIHwgY2N1cGRhdGUgfCBqYXZhIHwgcmVuYW1lZXh0IHwgdnNzbGFiZWwgfCBiYXNlbmFtZSB8IGphdmFkb2MyIHwgdnNzY3AgfCB0YXIgfCBzZXRwcm94eSB8IGlsYXNtIHwgc29zY2hlY2tvdXQgfCBhcHBseSB8IGNjdW5jaGVja291dCB8IGphcmxpYi1yZXNvbHZlIHwgY3ZzdGFnZGlmZiB8IGpsaW5rIHwgamF2YWNjIHwgY2htb2QgfCBwdmNzIHwgamFybGliLW1hbmlmZXN0IHwgamFyIHwgY2Nta2xidHlwZSB8IHNjcmlwdGRlZiB8IGRlZmF1bHRleGNsdWRlcyB8IG1wYXJzZSB8IGJsZ2VuY2xpZW50IHwgdXB0b2RhdGUgfCBqamRvYyB8IGdlbmtleSB8IGphdmFoIHwgY2Nta2VsZW0gfCBjY21yZWNvbmZpZ3VyZSB8IGZhaWwgfCB1bnppcCB8IGphdmFjIHwganBjb3ZlcmFnZSB8IHNvc2xhYmVsIHwgZGVwZW5kIHwgdnNzZ2V0IHwgZGVsdHJlZSI+Cis8IUVOVElUWSAlIHR5cGVzICJwYXR0ZXJuc2V0IHwgYXNzZXJ0aW9ucyB8IHByb3BlcnR5c2V0IHwgZmlsdGVybWFwcGVyIHwgZmlsdGVyc2V0IHwgbGliZmlsZXNldCB8IGlzZmlsZXNlbGVjdGVkIHwgbWVyZ2VtYXBwZXIgfCBpZGVudGl0eW1hcHBlciB8IGZpbHRlcnJlYWRlciB8IHNjcmlwdGZpbHRlciB8IHVucGFja2FnZW1hcHBlciB8IGNvbmNhdGZpbHRlciB8IGV4dGVuc2lvbiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBnbG9ibWFwcGVyIHwgZmlsZWxpc3QgfCBmaWx0ZXJjaGFpbiB8IHBhdGggfCBjb21wb3NpdGVtYXBwZXIgfCBjbGFzc2ZpbGVzZXQgfCByZWdleHBtYXBwZXIgfCBzZWxlY3RvciB8IHhtbGNhdGFsb2cgfCBmbGF0dGVubWFwcGVyIHwgZGVzY3JpcHRpb24gfCBjaGFpbmVkbWFwcGVyIHwgcGFja2FnZW1hcHBlciB8IG1hcHBlciB8IHppcGZpbGVzZXQgfCBzdWJzdGl0dXRpb24gfCBleHRlbnNpb25TZXQgfCByZWRpcmVjdG9yIHwgcmVnZXhwIj4KKworPCFFTEVNRU5UIHByb2plY3QgKHRhcmdldCB8ICV0YXNrczsgfCAldHlwZXM7KSo+Cis8IUFUVExJU1QgcHJvamVjdAorICAgICAgICAgIG5hbWUgICAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldCAoJXRhc2tzOyB8ICV0eXBlczspKj4KKworPCFBVFRMSVNUIHRhcmdldAorICAgICAgICAgIGlkICAgICAgICAgIElEICAgICNJTVBMSUVECisgICAgICAgICAgbmFtZSAgICAgICAgQ0RBVEEgI1JFUVVJUkVECisgICAgICAgICAgaWYgICAgICAgICAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgICAgICBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlcGVuZHMgICAgIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXR0ZXJuc2V0IChpbmNsdWRlIHwgcGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBleGNsdWRlc2ZpbGUgfCBpbmNsdWRlc2ZpbGUpKj4KKzwhQVRUTElTVCBwYXR0ZXJuc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGluY2x1ZGUgRU1QVFk+Cis8IUFUVExJU1QgaW5jbHVkZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhjbHVkZSBFTVBUWT4KKzwhQVRUTElTVCBleGNsdWRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleGNsdWRlc2ZpbGUgRU1QVFk+Cis8IUFUVExJU1QgZXhjbHVkZXNmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbmNsdWRlc2ZpbGUgRU1QVFk+Cis8IUFUVExJU1QgaW5jbHVkZXNmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhc3NlcnRpb25zIChkaXNhYmxlIHwgZW5hYmxlKSo+Cis8IUFUVExJU1QgYXNzZXJ0aW9ucworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuYWJsZXN5c3RlbWFzc2VydGlvbnMgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGlzYWJsZSBFTVBUWT4KKzwhQVRUTElTVCBkaXNhYmxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3MgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlbmFibGUgRU1QVFk+Cis8IUFUVExJU1QgZW5hYmxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3MgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcm9wZXJ0eXNldCAocHJvcGVydHlyZWYgfCBwcm9wZXJ0eXNldCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIHByb3BlcnR5c2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZHluYW1pYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuZWdhdGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJvcGVydHlyZWYgRU1QVFk+Cis8IUFUVExJU1QgcHJvcGVydHlyZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidWlsdGluIChhbGwgfCBzeXN0ZW0gfCBjb21tYW5kbGluZSkgI0lNUExJRUQKKyAgICAgICAgICByZWdleCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1hcHBlciAoY2xhc3NwYXRoIHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChpZGVudGl0eSB8IGZsYXR0ZW4gfCBnbG9iIHwgbWVyZ2UgfCByZWdleHAgfCBwYWNrYWdlIHwgdW5wYWNrYWdlKSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjbGFzc3BhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGNsYXNzcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN1c3RvbSAoY2xhc3NwYXRoIHwgcGFyYW0pKj4KKzwhQVRUTElTVCBjdXN0b20KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhcmFtIEVNUFRZPgorPCFBVFRMSVNUIHBhcmFtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJlc2VudCAobWFwcGVyKSo+Cis8IUFUVExJU1QgcHJlc2VudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXRkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlc2VudCAoc3Jjb25seSB8IGJvdGgpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbm9uZSAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1Qgbm9uZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbm90IChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBub3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHR5cGUgRU1QVFk+Cis8IUFUVExJU1QgdHlwZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIpICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtb2RpZmllZCAocGFyYW0pKj4KKzwhQVRUTElTVCBtb2RpZmllZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY29tcGFyYXRvciAoZXF1YWwgfCBydWxlKSAjSU1QTElFRAorICAgICAgICAgIHNlbGRpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWxnb3JpdGhtIChoYXNodmFsdWUgfCBkaWdlc3QpICNJTVBMSUVECisgICAgICAgICAgY2FjaGUgKHByb3BlcnR5ZmlsZSkgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3IgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIG9yCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb250YWlucyBFTVBUWT4KKzwhQVRUTElTVCBjb250YWlucworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmV3aGl0ZXNwYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRleHQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZXBlbmQgKG1hcHBlcikqPgorPCFBVFRMSVNUIGRlcGVuZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXRkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkaWZmZXJlbnQgKG1hcHBlcikqPgorPCFBVFRMSVNUIGRpZmZlcmVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaWdub3JlY29udGVudHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXRkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlZmlsZXRpbWVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2l6ZSBFTVBUWT4KKzwhQVRUTElTVCBzaXplCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB3aGVuIChsZXNzIHwgbW9yZSB8IGVxdWFsKSAjSU1QTElFRAorICAgICAgICAgIHVuaXRzIChLIHwgayB8IGtpbG8gfCBLSUxPIHwgS2kgfCBLSSB8IGtpIHwga2liaSB8IEtJQkkgfCBNIHwgbSB8IG1lZ2EgfCBNRUdBIHwgTWkgfCBNSSB8IG1pIHwgbWViaSB8IE1FQkkgfCBHIHwgZyB8IGdpZ2EgfCBHSUdBIHwgR2kgfCBHSSB8IGdpIHwgZ2liaSB8IEdJQkkgfCBUIHwgdCB8IHRlcmEgfCBURVJBIHwgVGkgfCBUSSB8IHRpIHwgdGViaSB8IFRFQkkpICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYWpvcml0eSAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1QgbWFqb3JpdHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBhbGxvd3RpZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbnRhaW5zcmVnZXhwIEVNUFRZPgorPCFBVFRMSVNUIGNvbnRhaW5zcmVnZXhwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHByZXNzaW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZW5hbWUgRU1QVFk+Cis8IUFUVExJU1QgZmlsZW5hbWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5lZ2F0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzZWxlY3RvciAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1Qgc2VsZWN0b3IKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGF0ZSBFTVBUWT4KKzwhQVRUTElTVCBkYXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIG1pbGxpcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNoZWNrZGlycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYXRldGltZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdoZW4gKGJlZm9yZSB8IGFmdGVyIHwgZXF1YWwpICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFuZCAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1QgYW5kCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZXB0aCBFTVBUWT4KKzwhQVRUTElTVCBkZXB0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbWF4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtaW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGlyc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBkaXJzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4dGRpcnMgKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGV4dGRpcnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleGlzdGluZyAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgZXhpc3RpbmcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlbGlzdCAoZmlsZSkqPgorPCFBVFRMSVNUIGZpbGVsaXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXRoZWxlbWVudCBFTVBUWT4KKzwhQVRUTElTVCBwYXRoZWxlbWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcm1hcHBlciAoaGVhZGZpbHRlciB8IGNsYXNzY29uc3RhbnRzIHwgbGluZWNvbnRhaW5zIHwgZmlsdGVycmVhZGVyIHwgcmVwbGFjZXJlZ2V4IHwgcmVwbGFjZXRva2VucyB8IGVzY2FwZXVuaWNvZGUgfCBpZ25vcmVibGFuayB8IHRhaWxmaWx0ZXIgfCB0YWJzdG9zcGFjZXMgfCBwcmVmaXhsaW5lcyB8IHRyaW0gfCBleHBhbmRwcm9wZXJ0aWVzIHwgc3RyaXBsaW5lYnJlYWtzIHwgcmVwbGFjZXN0cmluZyB8IHN0cmlwbGluZWNvbW1lbnRzIHwgdG9rZW5maWx0ZXIgfCBzdHJpcGphdmFjb21tZW50cyB8IGNvbnRhaW5zcmVnZXggfCBkZWxldGVjaGFyYWN0ZXJzIHwgbGluZWNvbnRhaW5zcmVnZXhwKSo+Cis8IUFUVExJU1QgZmlsdGVybWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaGVhZGZpbHRlciBFTVBUWT4KKzwhQVRUTElTVCBoZWFkZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNraXAgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjbGFzc2NvbnN0YW50cyBFTVBUWT4KKzwhQVRUTElTVCBjbGFzc2NvbnN0YW50cworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGluZWNvbnRhaW5zIChjb250YWlucykqPgorPCFBVFRMSVNUIGxpbmVjb250YWlucworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVycmVhZGVyIChjbGFzc3BhdGggfCBwYXJhbSkqPgorPCFBVFRMSVNUIGZpbHRlcnJlYWRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2VyZWdleCBFTVBUWT4KKzwhQVRUTElTVCByZXBsYWNlcmVnZXgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZsYWdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXRva2VucyAodG9rZW4pKj4KKzwhQVRUTElTVCByZXBsYWNldG9rZW5zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBiZWdpbnRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kdG9rZW4gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0b2tlbiBFTVBUWT4KKzwhQVRUTElTVCB0b2tlbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAga2V5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlc2NhcGV1bmljb2RlIEVNUFRZPgorPCFBVFRMSVNUIGVzY2FwZXVuaWNvZGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlnbm9yZWJsYW5rIEVNUFRZPgorPCFBVFRMSVNUIGlnbm9yZWJsYW5rCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFpbGZpbHRlciBFTVBUWT4KKzwhQVRUTElTVCB0YWlsZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNraXAgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YWJzdG9zcGFjZXMgRU1QVFk+Cis8IUFUVExJU1QgdGFic3Rvc3BhY2VzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YWJsZW5ndGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcmVmaXhsaW5lcyBFTVBUWT4KKzwhQVRUTElTVCBwcmVmaXhsaW5lcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHJpbSBFTVBUWT4KKzwhQVRUTElTVCB0cmltCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhwYW5kcHJvcGVydGllcyBFTVBUWT4KKzwhQVRUTElTVCBleHBhbmRwcm9wZXJ0aWVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdHJpcGxpbmVicmVha3MgRU1QVFk+Cis8IUFUVExJU1Qgc3RyaXBsaW5lYnJlYWtzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lYnJlYWtzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXN0cmluZyBFTVBUWT4KKzwhQVRUTElTVCByZXBsYWNlc3RyaW5nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3RyaXBsaW5lY29tbWVudHMgKGNvbW1lbnQpKj4KKzwhQVRUTElTVCBzdHJpcGxpbmVjb21tZW50cworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29tbWVudCBFTVBUWT4KKzwhQVRUTElTVCBjb21tZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRva2VuZmlsdGVyIChjb250YWluc3N0cmluZyB8IGxpbmV0b2tlbml6ZXIgfCB0cmltIHwgc3RyaW5ndG9rZW5pemVyIHwgcmVwbGFjZXJlZ2V4IHwgcmVwbGFjZXN0cmluZyB8IGlnbm9yZWJsYW5rIHwgZGVsZXRlY2hhcmFjdGVycyB8IGNvbnRhaW5zcmVnZXggfCBmaWxldG9rZW5pemVyKSo+Cis8IUFUVExJU1QgdG9rZW5maWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlbGltb3V0cHV0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29udGFpbnNzdHJpbmcgRU1QVFk+Cis8IUFUVExJU1QgY29udGFpbnNzdHJpbmcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNvbnRhaW5zIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGluZXRva2VuaXplciBFTVBUWT4KKzwhQVRUTElTVCBsaW5ldG9rZW5pemVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVsaW1zICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN0cmluZ3Rva2VuaXplciBFTVBUWT4KKzwhQVRUTElTVCBzdHJpbmd0b2tlbml6ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN1cHByZXNzZGVsaW1zICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVkZWxpbXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVsaW1zYXJldG9rZW5zICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlbGltcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlbGV0ZWNoYXJhY3RlcnMgRU1QVFk+Cis8IUFUVExJU1QgZGVsZXRlY2hhcmFjdGVycworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2hhcnMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb250YWluc3JlZ2V4IEVNUFRZPgorPCFBVFRMSVNUIGNvbnRhaW5zcmVnZXgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZsYWdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZXRva2VuaXplciBFTVBUWT4KKzwhQVRUTElTVCBmaWxldG9rZW5pemVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdHJpcGphdmFjb21tZW50cyBFTVBUWT4KKzwhQVRUTElTVCBzdHJpcGphdmFjb21tZW50cworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGluZWNvbnRhaW5zcmVnZXhwIChyZWdleHApKj4KKzwhQVRUTElTVCBsaW5lY29udGFpbnNyZWdleHAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlZ2V4cCBFTVBUWT4KKzwhQVRUTElTVCByZWdleHAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVyc2V0IChmaWx0ZXJzZXQgfCBmaWx0ZXIgfCBmaWx0ZXJzZmlsZSkqPgorPCFBVFRMSVNUIGZpbHRlcnNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYmVnaW50b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZHRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyc2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVyc2ZpbGUgRU1QVFk+Cis8IUFUVExJU1QgZmlsdGVyc2ZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaWJmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBsaWJmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHVybGJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlaW1wbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGV1cmwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc2ZpbGVzZWxlY3RlZCAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1QgaXNmaWxlc2VsZWN0ZWQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1lcmdlbWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIG1lcmdlbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpZGVudGl0eW1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBpZGVudGl0eW1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2NyaXB0ZmlsdGVyICgjUENEQVRBKT4KKzwhQVRUTElTVCBzY3JpcHRmaWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhbmd1YWdlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdW5wYWNrYWdlbWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIHVucGFja2FnZW1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaGFuZGxlZGlyc2VwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29uY2F0ZmlsdGVyIEVNUFRZPgorPCFBVFRMSVNUIGNvbmNhdGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlcGVuZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4dGVuc2lvbiBFTVBUWT4KKzwhQVRUTElTVCBleHRlbnNpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb252ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3BlY2lmaWNhdGlvbnZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRlbnNpb25uYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb252ZW5kb3JpZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwZWNpZmljYXRpb252ZW5kb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbnVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb252ZW5kb3IgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBnbG9ibWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIGdsb2JtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhhbmRsZWRpcnNlcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcmNoYWluIChoZWFkZmlsdGVyIHwgY2xhc3Njb25zdGFudHMgfCBsaW5lY29udGFpbnMgfCBmaWx0ZXJyZWFkZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNldG9rZW5zIHwgZXNjYXBldW5pY29kZSB8IGlnbm9yZWJsYW5rIHwgdGFpbGZpbHRlciB8IHRhYnN0b3NwYWNlcyB8IHByZWZpeGxpbmVzIHwgdHJpbSB8IGV4cGFuZHByb3BlcnRpZXMgfCBzdHJpcGxpbmVicmVha3MgfCByZXBsYWNlc3RyaW5nIHwgc3RyaXBsaW5lY29tbWVudHMgfCB0b2tlbmZpbHRlciB8IHN0cmlwamF2YWNvbW1lbnRzIHwgY29udGFpbnNyZWdleCB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBsaW5lY29udGFpbnNyZWdleHApKj4KKzwhQVRUTElTVCBmaWx0ZXJjaGFpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbXBvc2l0ZW1hcHBlciAobWFwcGVyKSo+Cis8IUFUVExJU1QgY29tcG9zaXRlbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjbGFzc2ZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHJvb3RmaWxlc2V0IHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCByb290IHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNsYXNzZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJvb3RjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcm9vdGZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHJvb3RmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByb290IEVNUFRZPgorPCFBVFRMSVNUIHJvb3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlZ2V4cG1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCByZWdleHBtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhhbmRsZWRpcnNlcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHhtbGNhdGFsb2cgKGVudGl0eSB8IGNsYXNzcGF0aCB8IGNhdGFsb2dwYXRoIHwgZHRkIHwgeG1sY2F0YWxvZykqPgorPCFBVFRMSVNUIHhtbGNhdGFsb2cKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNhdGFsb2dwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVudGl0eSBFTVBUWT4KKzwhQVRUTElTVCBlbnRpdHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1YmxpY2lkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2F0YWxvZ3BhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGNhdGFsb2dwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZHRkIEVNUFRZPgorPCFBVFRMSVNUIGR0ZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHVibGljaWQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmbGF0dGVubWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIGZsYXR0ZW5tYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlc2NyaXB0aW9uICgjUENEQVRBKT4KKzwhQVRUTElTVCBkZXNjcmlwdGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNoYWluZWRtYXBwZXIgKG1hcHBlcikqPgorPCFBVFRMSVNUIGNoYWluZWRtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhY2thZ2VtYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgcGFja2FnZW1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaGFuZGxlZGlyc2VwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgemlwZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgemlwZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdWJzdGl0dXRpb24gRU1QVFk+Cis8IUFUVExJU1Qgc3Vic3RpdHV0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhwcmVzc2lvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4dGVuc2lvblNldCAoZmlsZXNldCB8IGxpYmZpbGVzZXQgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBleHRlbnNpb25TZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZWRpcmVjdG9yIChlcnJvcmZpbHRlcmNoYWluIHwgb3V0cHV0ZmlsdGVyY2hhaW4gfCBlcnJvcm1hcHBlciB8IGlucHV0ZmlsdGVyY2hhaW4gfCBvdXRwdXRtYXBwZXIgfCBpbnB1dG1hcHBlcikqPgorPCFBVFRMSVNUIHJlZGlyZWN0b3IKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgaW5wdXRlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjcmVhdGVlbXB0eWZpbGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFsd2F5c2xvZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3JlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVycm9yZmlsdGVyY2hhaW4gKGhlYWRmaWx0ZXIgfCBjbGFzc2NvbnN0YW50cyB8IGxpbmVjb250YWlucyB8IGZpbHRlcnJlYWRlciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2V0b2tlbnMgfCBlc2NhcGV1bmljb2RlIHwgaWdub3JlYmxhbmsgfCB0YWlsZmlsdGVyIHwgdGFic3Rvc3BhY2VzIHwgcHJlZml4bGluZXMgfCB0cmltIHwgZXhwYW5kcHJvcGVydGllcyB8IHN0cmlwbGluZWJyZWFrcyB8IHJlcGxhY2VzdHJpbmcgfCBzdHJpcGxpbmVjb21tZW50cyB8IHRva2VuZmlsdGVyIHwgc3RyaXBqYXZhY29tbWVudHMgfCBjb250YWluc3JlZ2V4IHwgZGVsZXRlY2hhcmFjdGVycyB8IGxpbmVjb250YWluc3JlZ2V4cCkqPgorPCFBVFRMSVNUIGVycm9yZmlsdGVyY2hhaW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBvdXRwdXRmaWx0ZXJjaGFpbiAoaGVhZGZpbHRlciB8IGNsYXNzY29uc3RhbnRzIHwgbGluZWNvbnRhaW5zIHwgZmlsdGVycmVhZGVyIHwgcmVwbGFjZXJlZ2V4IHwgcmVwbGFjZXRva2VucyB8IGVzY2FwZXVuaWNvZGUgfCBpZ25vcmVibGFuayB8IHRhaWxmaWx0ZXIgfCB0YWJzdG9zcGFjZXMgfCBwcmVmaXhsaW5lcyB8IHRyaW0gfCBleHBhbmRwcm9wZXJ0aWVzIHwgc3RyaXBsaW5lYnJlYWtzIHwgcmVwbGFjZXN0cmluZyB8IHN0cmlwbGluZWNvbW1lbnRzIHwgdG9rZW5maWx0ZXIgfCBzdHJpcGphdmFjb21tZW50cyB8IGNvbnRhaW5zcmVnZXggfCBkZWxldGVjaGFyYWN0ZXJzIHwgbGluZWNvbnRhaW5zcmVnZXhwKSo+Cis8IUFUVExJU1Qgb3V0cHV0ZmlsdGVyY2hhaW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlcnJvcm1hcHBlciAoY2xhc3NwYXRoIHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgZXJyb3JtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGlkZW50aXR5IHwgZmxhdHRlbiB8IGdsb2IgfCBtZXJnZSB8IHJlZ2V4cCB8IHBhY2thZ2UgfCB1bnBhY2thZ2UpICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlucHV0ZmlsdGVyY2hhaW4gKGhlYWRmaWx0ZXIgfCBjbGFzc2NvbnN0YW50cyB8IGxpbmVjb250YWlucyB8IGZpbHRlcnJlYWRlciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2V0b2tlbnMgfCBlc2NhcGV1bmljb2RlIHwgaWdub3JlYmxhbmsgfCB0YWlsZmlsdGVyIHwgdGFic3Rvc3BhY2VzIHwgcHJlZml4bGluZXMgfCB0cmltIHwgZXhwYW5kcHJvcGVydGllcyB8IHN0cmlwbGluZWJyZWFrcyB8IHJlcGxhY2VzdHJpbmcgfCBzdHJpcGxpbmVjb21tZW50cyB8IHRva2VuZmlsdGVyIHwgc3RyaXBqYXZhY29tbWVudHMgfCBjb250YWluc3JlZ2V4IHwgZGVsZXRlY2hhcmFjdGVycyB8IGxpbmVjb250YWluc3JlZ2V4cCkqPgorPCFBVFRMSVNUIGlucHV0ZmlsdGVyY2hhaW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBvdXRwdXRtYXBwZXIgKGNsYXNzcGF0aCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIG91dHB1dG1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoaWRlbnRpdHkgfCBmbGF0dGVuIHwgZ2xvYiB8IG1lcmdlIHwgcmVnZXhwIHwgcGFja2FnZSB8IHVucGFja2FnZSkgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW5wdXRtYXBwZXIgKGNsYXNzcGF0aCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIGlucHV0bWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChpZGVudGl0eSB8IGZsYXR0ZW4gfCBnbG9iIHwgbWVyZ2UgfCByZWdleHAgfCBwYWNrYWdlIHwgdW5wYWNrYWdlKSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcm9wZXJ0eWZpbGUgKGVudHJ5KSo+Cis8IUFUVExJU1QgcHJvcGVydHlmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlbnRyeSBFTVBUWT4KKzwhQVRUTElTVCBlbnRyeQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb3BlcmF0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtleSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGludCB8IGRhdGUgfCBzdHJpbmcpICNJTVBMSUVECisgICAgICAgICAgdW5pdCAobWlsbGlzZWNvbmQgfCBzZWNvbmQgfCBtaW51dGUgfCBob3VyIHwgZGF5IHwgd2VlayB8IG1vbnRoIHwgeWVhcikgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21rZGlyIEVNUFRZPgorPCFBVFRMSVNUIGNjbWtkaXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2NoZWNrb3V0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGltcG9ydHR5cGVsaWIgRU1QVFk+Cis8IUFUVExJU1QgaW1wb3J0dHlwZWxpYgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdW5zYWZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlc3lzYXJyYXkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZXNwYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NjaGVja2luIEVNUFRZPgorPCFBVFRMSVNUIHZzc2NoZWNraW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdyaXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNxbCAoI1BDREFUQSB8IGZpbGVzZXQgfCBjbGFzc3BhdGggfCB0cmFuc2FjdGlvbikqPgorPCFBVFRMSVNUIHNxbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb25lcnJvciAoY29udGludWUgfCBzdG9wIHwgYWJvcnQpICNJTVBMSUVECisgICAgICAgICAgdXNlcmlkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhdXRvY29tbWl0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJkYm1zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJpbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZHJpdmVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2hvd2hlYWRlcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVsaW1pdGVydHlwZSAobm9ybWFsIHwgcm93KSAjSU1QTElFRAorICAgICAgICAgIGVzY2FwZXByb2Nlc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYWNoaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBmb3JtYXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVsaW1pdGVyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHJhbnNhY3Rpb24gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHRyYW5zYWN0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdnNwYXNzIEVNUFRZPgorPCFBVFRMSVNUIGN2c3Bhc3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN2c3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNzYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCByZXNvdXJjZSB8IGRlZmluZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHJlZmVyZW5jZSB8IHNyYyB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjc2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luMzJpY29uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmaW5pdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZlcmVuY2VmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRocyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haW5jbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHV0ZjhvdXRwdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlcmVzcG9uc2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVmYXVsdHJlZmVyZW5jZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgd2FybmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luMzJyZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNyZW1lbnRhbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbmZpZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZlcmVuY2VzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpbWl6ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhZGRpdGlvbmFsbW9kdWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bnNhZmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZWFsaWduIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0dHlwZSAoZXhlIHwgbGlicmFyeSB8IG1vZHVsZSB8IHdpbmV4ZSkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXNvdXJjZSBFTVBUWT4KKzwhQVRUTElTVCByZXNvdXJjZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdWJsaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW1iZWQgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVmaW5lIEVNUFRZPgorPCFBVFRMSVNUIGRlZmluZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVmZXJlbmNlIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCByZWZlcmVuY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNyYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgc3JjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkaXJuYW1lIEVNUFRZPgorPCFBVFRMSVNUIGRpcm5hbWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNlcmVnZXhwIChmaWxlc2V0IHwgc3Vic3RpdHV0aW9uIHwgcmVnZXhwKSo+Cis8IUFUVExJU1QgcmVwbGFjZXJlZ2V4cAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmxhZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hdGNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGdldCBFTVBUWT4KKzwhQVRUTElTVCBnZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaWdub3JlZXJyb3JzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNldGltZXN0YW1wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqanRyZWUgRU1QVFk+Cis8IUFUVExJU1Qgamp0cmVlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBub2RlZGVmYXVsdHZvaWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnVpbGRub2RlZmlsZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZGlyZWN0b3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0YXRpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBqYXZhY2Nob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZXByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVmYWN0b3J5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG11bHRpICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpc2l0b3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZXVzZXNwYXJzZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlzaXRvcmV4Y2VwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVzY29wZWhvb2sgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVwYWNrYWdlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2xlZXAgRU1QVFk+Cis8IUFUVExJU1Qgc2xlZXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhvdXJzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtaWxsaXNlY29uZHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtaW51dGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzZWNvbmRzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamFybGliLWRpc3BsYXkgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBqYXJsaWItZGlzcGxheQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsZW5ndGggRU1QVFk+Cis8IUFUVExJU1QgbGVuZ3RoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsZW5ndGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHJpbSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtb2RlIChlYWNoIHwgYWxsKSAjSU1QTElFRAorICAgICAgICAgIHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdoZW4gKGVxdWFsIHwgZ3JlYXRlciB8IGxlc3MpICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVwZW5kc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCB0YXJnZXRmaWxlc2V0IHwgc3JjZmlsZXNldCB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IHNyY2ZpbGVsaXN0IHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kIHwgdGFyZ2V0ZmlsZWxpc3QpKj4KKzwhQVRUTElTVCBkZXBlbmRzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFyZ2V0ZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgdGFyZ2V0ZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3JjZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgc3JjZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3JjZmlsZWxpc3QgKGZpbGUpKj4KKzwhQVRUTElTVCBzcmNmaWxlbGlzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFyZ2V0ZmlsZWxpc3QgKGZpbGUpKj4KKzwhQVRUTElTVCB0YXJnZXRmaWxlbGlzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgemlwIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgemlwZ3JvdXBmaWxlc2V0IHwgemlwZmlsZXNldCB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHppcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgd2hlbmVtcHR5IChmYWlsIHwgc2tpcCB8IGNyZWF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGR1cGxpY2F0ZSAoYWRkIHwgcHJlc2VydmUgfCBmYWlsKSAjSU1QTElFRAorICAgICAgICAgIHJvdW5kdXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc29ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB6aXBncm91cGZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHppcGdyb3VwZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0Y2ggRU1QVFk+Cis8IUFUVExJU1QgcGF0Y2gKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0cmlwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcmlnaW5hbGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRjaGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXZlcnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFja3VwcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmV3aGl0ZXNwYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganNwYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgY29tcGlsZXJjbGFzc3BhdGggfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBjbGFzc3BhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgd2ViYXBwIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBqc3BjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBtYXBwZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaWVwbHVnaW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcGlsZXJjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXJpYmFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdlYnhtbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdlYmluYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbXBpbGVyY2xhc3NwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBjb21waWxlcmNsYXNzcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdlYmFwcCBFTVBUWT4KKzwhQVRUTElTVCB3ZWJhcHAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdHlsZSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgZmFjdG9yeSB8IG1vZGlmaWVkIHwgcGFyYW0gfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHhtbGNhdGFsb2cgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IG91dHB1dHByb3BlcnR5IHwgbWFwcGVyIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgc3R5bGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvY2Vzc29yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2NhbmluY2x1ZGVkZGlyZWN0b3JpZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXh0ZW5zaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbG9hZHN0eWxlc2hlZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0eWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmYWN0b3J5IChhdHRyaWJ1dGUpKj4KKzwhQVRUTElTVCBmYWN0b3J5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXR0cmlidXRlIEVNUFRZPgorPCFBVFRMSVNUIGF0dHJpYnV0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3V0cHV0cHJvcGVydHkgRU1QVFk+Cis8IUFUVExJU1Qgb3V0cHV0cHJvcGVydHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG5pY2UgRU1QVFk+Cis8IUFUVExJU1QgbmljZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld3ByaW9yaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3VycmVudHByaW9yaXR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGVzdCAoY2xhc3NwYXRoIHwgc3lzcHJvcGVydHkgfCByZWRpcmVjdG9yIHwgYm9vdGNsYXNzcGF0aCB8IGVudiB8IHN5c3Byb3BlcnR5c2V0IHwgcGVybWlzc2lvbnMgfCBqdm1hcmcgfCBhcmcgfCBhc3NlcnRpb25zIHwgdGVzdGxldCkqPgorPCFBVFRMSVNUIHRlc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JrICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGphciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZXNob3d0cmFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaG93c3VjY2VzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBqdm12ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaG93YmFubmVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2hvd3RyYWNlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN5c3Byb3BlcnR5IEVNUFRZPgorPCFBVFRMSVNUIHN5c3Byb3BlcnR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBrZXkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYm9vdGNsYXNzcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgYm9vdGNsYXNzcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVudiBFTVBUWT4KKzwhQVRUTElTVCBlbnYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGtleSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzeXNwcm9wZXJ0eXNldCAocHJvcGVydHlyZWYgfCBwcm9wZXJ0eXNldCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIHN5c3Byb3BlcnR5c2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZHluYW1pYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuZWdhdGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGVybWlzc2lvbnMgKGdyYW50IHwgcmV2b2tlKSo+Cis8IUFUVExJU1QgcGVybWlzc2lvbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGdyYW50IEVNUFRZPgorPCFBVFRMSVNUIGdyYW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb25zIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmV2b2tlIEVNUFRZPgorPCFBVFRMSVNUIHJldm9rZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9ucyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGp2bWFyZyBFTVBUWT4KKzwhQVRUTElTVCBqdm1hcmcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFyZyBFTVBUWT4KKzwhQVRUTElTVCBhcmcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRlc3RsZXQgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHRlc3RsZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRzdGFtcCAoZm9ybWF0KSo+Cis8IUFUVExJU1QgdHN0YW1wCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZm9ybWF0IEVNUFRZPgorPCFBVFRMSVNUIGZvcm1hdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZXpvbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bml0IChtaWxsaXNlY29uZCB8IHNlY29uZCB8IG1pbnV0ZSB8IGhvdXIgfCBkYXkgfCB3ZWVrIHwgbW9udGggfCB5ZWFyKSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9mZnNldCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVud2FyIChmaWxlc2V0IHwgcGF0dGVybnNldCkqPgorPCFBVFRMSVNUIHVud2FyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2hpc3RvcnkgRU1QVFk+Cis8IUFUVExJU1QgdnNzaGlzdG9yeQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3R5bGUgKGJyaWVmIHwgY29kZWRpZmYgfCBub2ZpbGUgfCBkZWZhdWx0KSAjSU1QTElFRAorICAgICAgICAgIG51bWRheXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbWRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2xhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZWZvcm1hdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3ZzY2hhbmdlbG9nIChmaWxlc2V0IHwgdXNlciB8IGNvbW1hbmRsaW5lKSo+Cis8IUFUVExJU1QgY3ZzY2hhbmdlbG9nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjdnNyc2ggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXNzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3RhcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdnNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVhbGx5cXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9ubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2Vyc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2V4ZWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRheXNpbnBhc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFnIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdXNlciBFTVBUWT4KKzwhQVRUTElTVCB1c2VyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1c2VyaWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXNwbGF5bmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbW1hbmRsaW5lIChtYXJrZXIgfCBhcmd1bWVudCkqPgorPCFBVFRMSVNUIGNvbW1hbmRsaW5lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFya2VyIEVNUFRZPgorPCFBVFRMSVNUIG1hcmtlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXJndW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgYXJndW1lbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWNoZWNraW4gKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBjY21jaGVja2luCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY21hY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjY21kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYnppcDIgRU1QVFk+Cis8IUFUVExJU1QgYnppcDIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgemlwZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzeW5jIChmaWxlc2V0KSo+Cis8IUFUVExJU1Qgc3luYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVlbXB0eWRpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2FkZCBFTVBUWT4KKzwhQVRUTElTVCB2c3NhZGQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdyaXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFkb2MgKHRhZ2xldCB8IGRvY2xldCB8IHBhY2thZ2UgfCBhcmcgfCBsaW5rIHwgZG9jdGl0bGUgfCBib3R0b20gfCBncm91cCB8IHBhY2thZ2VzZXQgfCBmaWxlc2V0IHwgY2xhc3NwYXRoIHwgc291cmNlcGF0aCB8IGZvb3RlciB8IHNvdXJjZSB8IGJvb3RjbGFzc3BhdGggfCBoZWFkZXIgfCBleGNsdWRlcGFja2FnZSB8IHRhZykqPgorPCFBVFRMSVNUIGphdmFkb2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJvdHRvbSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBoZWFkZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9pbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhY2Nlc3MgKHByb3RlY3RlZCB8IHB1YmxpYyB8IHBhY2thZ2UgfCBwcml2YXRlKSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vcXVhbGlmaWVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHVibGljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dGhvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb290ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXRwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VleHRlcm5hbGZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcHJvdGVjdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJyZWFraXRlcmF0b3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9uYXZiYXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JvdXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rb2ZmbGluZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxwYXJhbSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmtzb3VyY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9jYWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlbm9zb3VyY2VwYWNrYWdlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJpdmF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RlcHJlY2F0ZWRsaXN0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHN0eWxlc2hlZXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcGFja2FnZW5hbWVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0cGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VuYW1lcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbmRvd3RpdGxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm90cmVlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwbGl0aW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZWxpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY3RpdGxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VyaWFsd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvbGQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBoZWxwZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc291cmNlZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRkaXJzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9oZWxwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vZGVwcmVjYXRlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdmVydmlldyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhZ2xldCAocGF0aCkqPgorPCFBVFRMSVNUIHRhZ2xldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZG9jbGV0IChwYXRoIHwgcGFyYW0pKj4KKzwhQVRUTElTVCBkb2NsZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhY2thZ2UgRU1QVFk+Cis8IUFUVExJU1QgcGFja2FnZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpbmsgRU1QVFk+Cis8IUFUVExJU1QgbGluaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaHJlZiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9mZmxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZWxpc3Rsb2MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlbGluayAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkb2N0aXRsZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgZG9jdGl0bGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJvdHRvbSAoI1BDREFUQSk+Cis8IUFUVExJU1QgYm90dG9tCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBncm91cCAocGFja2FnZSB8IHRpdGxlKSo+Cis8IUFUVExJU1QgZ3JvdXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGl0bGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0aXRsZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgdGl0bGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhY2thZ2VzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHBhY2thZ2VzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvdXJjZXBhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIHNvdXJjZXBhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmb290ZXIgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGZvb3RlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc291cmNlIEVNUFRZPgorPCFBVFRMSVNUIHNvdXJjZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGhlYWRlciAoI1BDREFUQSk+Cis8IUFUVExJU1QgaGVhZGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleGNsdWRlcGFja2FnZSBFTVBUWT4KKzwhQVRUTElTVCBleGNsdWRlcGFja2FnZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhZyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgdGFnCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVuYWJsZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2NvcGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRyYW5zbGF0ZSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHRyYW5zbGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnVuZGxlY291bnRyeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1bmRsZWxhbmd1YWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3JjZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidW5kbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidW5kbGVlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVuZGxldmFyaWFudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZW92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdGFydHRva2VuIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2lnbmphciAoZmlsZXNldCkqPgorPCFBVFRMSVNUIHNpZ25qYXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0b3JlcGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhenkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgamFyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZXlwYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWxpYXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZWN0aW9uc29ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2V5c3RvcmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNpZ2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGludGVybmFsc2YgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3RvcmV0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2lnbmVkamFyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nsb2NrIEVNUFRZPgorPCFBVFRMSVNUIGNjbG9jaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbnVzZXJzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2Jzb2xldGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2hvd24gKG1hcHBlciB8IHNyY2ZpbGUgfCB0YXJnZXRmaWxlIHwgcmVkaXJlY3RvciB8IGZpbGVsaXN0IHwgZW52IHwgZmlsZXNldCB8IGRpcnNldCB8IGFyZykqPgorPCFBVFRMSVNUIGNob3duCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRzb3VyY2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFyYWxsZWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG93bmVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVtaXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIgfCBib3RoKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNyY2ZpbGUgRU1QVFk+Cis8IUFUVExJU1Qgc3JjZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFyZ2V0ZmlsZSBFTVBUWT4KKzwhQVRUTElTVCB0YXJnZXRmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXJsaWItYXZhaWxhYmxlIChleHRlbnNpb25zZXQgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBqYXJsaWItYXZhaWxhYmxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXh0ZW5zaW9uc2V0IChmaWxlc2V0IHwgbGliZmlsZXNldCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIGV4dGVuc2lvbnNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIFdzZGxUb0RvdG5ldCBFTVBUWT4KKzwhQVRUTElTVCBXc2RsVG9Eb3RuZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuYW1lc3BhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBidWlsZG51bWJlciBFTVBUWT4KKzwhQVRUTElTVCBidWlsZG51bWJlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqcGNvdm1lcmdlIChmaWxlc2V0KSo+Cis8IUFUVExJU1QganBjb3ZtZXJnZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9maWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaG9tZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN2c3ZlcnNpb24gKGNvbW1hbmRsaW5lKSo+Cis8IUFUVExJU1QgY3ZzdmVyc2lvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY3ZzcnNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN2c3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWFsbHlxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJ2ZXJzaW9ucHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb25sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGllbnR2ZXJzaW9ucHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2V4ZWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YWcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlamJqYXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHdlYmxvZ2ljdG9wbGluayB8IHByZXNlbnQgfCBub25lIHwgamJvc3MgfCBub3QgfCBib3JsYW5kIHwgd2VibG9naWMgfCB0eXBlIHwgbW9kaWZpZWQgfCBpcGxhbmV0IHwgb3IgfCBqb25hcyB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgc3VwcG9ydCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IHdlYnNwaGVyZSB8IGNvbnRhaW5zcmVnZXhwIHwgZHRkIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGVqYmphcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRvcmRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFuaWZlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJhc2VuYW1ldGVybWluYXRvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY21wdmVyc2lvbiAoMS4wIHwgMi4wKSAjSU1QTElFRAorICAgICAgICAgIGRlcGVuZGVuY3kgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlamFybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZsYXRkZXN0ZGlyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWluZyAoZWpiLW5hbWUgfCBkaXJlY3RvcnkgfCBkZXNjcmlwdG9yIHwgYmFzZWphcm5hbWUpICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdlYmxvZ2ljdG9wbGluayAoY2xhc3NwYXRoIHwgd2xjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eSkqPgorPCFBVFRMSVNUIHdlYmxvZ2ljdG9wbGluaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmV3Y21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmR0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWJ1aWxkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b3BsaW5rZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2xkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2VibG9naWNkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3bGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWRlYnVnbGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcGlsZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvbGRjbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWpiY2NsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9lamJjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvcGxpbmtkZXNjcmlwdG9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdsY2xhc3NwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCB3bGNsYXNzcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpib3NzIChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBqYm9zcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBib3JsYW5kIChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBib3JsYW5kCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJpZnlhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXZhMmlpb3BwYXJhbXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyaWZ5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyYXRlY2xpZW50ICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdlYmxvZ2ljIChjbGFzc3BhdGggfCB3bGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5KSo+Cis8IUFUVExJU1Qgd2VibG9naWMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5ld2NtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlamJkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1hcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVidWlsZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2xkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2VibG9naWNkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3bGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWRlYnVnbGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcGlsZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvbGRjbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWpiY2NsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9lamJjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpcGxhbmV0IChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBpcGxhbmV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2VuZXJpY2phcnN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmF0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWFzaG9tZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpvbmFzIChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBqb25hcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgam9uYXNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbGFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXZhYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcmIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2dlbmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJtaWNvcHRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YWNvcHRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm92YWxpZGF0aW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmF0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9jb21waWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2VjcHJvcGFnICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN1cHBvcnQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHN1cHBvcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdlYnNwaGVyZSAoY2xhc3NwYXRoIHwgd2FzY2xhc3NwYXRoKSo+Cis8IUFUVExJU1Qgd2Vic3BoZXJlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuZXdjbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWpiZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcm1pY29wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2luZm9ybSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWJ1aWxkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRic2NoZW1hIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVqYmRlcGxveSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2UzNSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0ZW1wZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm92YWxpZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb2RlZ2VuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRidmVuZG9yIChTUUw5MiB8IFNRTDk5IHwgREIyVURCV0lOX1Y3MSB8IERCMlVEQk9TMzkwX1Y2IHwgREIyVURCQVM0MDBfVjRSNSB8IE9SQUNMRV9WOCB8IElORk9STUlYX1Y5MiB8IFNZQkFTRV9WMTE5MiB8IE1TU1FMU0VSVkVSX1Y3IHwgTVlTUUxfVjMyMykgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3YXNjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvbGRjbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHJhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm93YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3YXNjbGFzc3BhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIHdhc2NsYXNzcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdhciAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCBtYW5pZmVzdCB8IHR5cGUgfCBtZXRhaW5mIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgbGliIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgaW5kZXhqYXJzIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IHppcGdyb3VwZmlsZXNldCB8IHppcGZpbGVzZXQgfCBjbGFzc2VzIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IHdlYmluZiB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgd2FyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZHVwbGljYXRlIChhZGQgfCBwcmVzZXJ2ZSB8IGZhaWwpICNJTVBMSUVECisgICAgICAgICAgd2hlbmVtcHR5IChmYWlsIHwgc2tpcCB8IGNyZWF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcm91bmR1cCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgamFyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3ZWJ4bWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc29ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgd2FyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc2V0bWFuaWZlc3QgKHNraXAgfCBtZXJnZSB8IG1lcmdld2l0aG91dG1haW4pICNJTVBMSUVECisgICAgICAgICAgemlwZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1hbmlmZXN0IChhdHRyaWJ1dGUgfCBzZWN0aW9uKSo+Cis8IUFUVExJU1QgbWFuaWZlc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNlY3Rpb24gKGF0dHJpYnV0ZSkqPgorPCFBVFRMSVNUIHNlY3Rpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXRhaW5mIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBtZXRhaW5mCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZW1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlybW9kZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpYiAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgbGliCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZW1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlybW9kZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGluZGV4amFycyAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgaW5kZXhqYXJzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3NlcyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY2xhc3NlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJpbmYgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHdlYmluZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZW5hbWUgRU1QVFk+Cis8IUFUVExJU1QgcmVuYW1lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzZXF1ZW50aWFsICgldGFza3M7KSo+Cis8IUFUVExJU1Qgc2VxdWVudGlhbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNlcnZlcmRlcGxveSAod2VibG9naWMgfCBnZW5lcmljIHwgam9uYXMpKj4KKzwhQVRUTElTVCBzZXJ2ZXJkZXBsb3kKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2UgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBnZW5lcmljIChhcmcgfCBjbGFzc3BhdGggfCBqdm1hcmcpKj4KKzwhQVRUTElTVCBnZW5lcmljCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJvcGVydHkgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIHByb3BlcnR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcnByb3BlcnR5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW52aXJvbm1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN1YmFudCAocmVmZXJlbmNlIHwgZmlsZXNldCB8IGJ1aWxkcGF0aGVsZW1lbnQgfCBkaXJzZXQgfCBidWlsZHBhdGggfCBwcm9wZXJ0eXNldCB8IGZpbGVsaXN0IHwgcHJvcGVydHkpKj4KKzwhQVRUTElTVCBzdWJhbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNhbnRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdGFsbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluaGVyaXRyZWZzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidWlsZHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1aWxkcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYnVpbGRwYXRoZWxlbWVudCBFTVBUWT4KKzwhQVRUTElTVCBidWlsZHBhdGhlbGVtZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBidWlsZHBhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGJ1aWxkcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1vdmUgKGZpbHRlcmNoYWluIHwgZmlsZXNldCB8IGZpbHRlcnNldCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIG1vdmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZsYXR0ZW4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9maWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVlbXB0eWRpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVuYWJsZW11bHRpcGxlbWFwcGluZ3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZWxhc3Rtb2RpZmllZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJpbmcgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaWxkYXNtIEVNUFRZPgorPCFBVFRMSVNUIGlsZGFzbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYXNzZW1ibGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIChhc2NpaSB8IHV0ZjggfCB1bmljb2RlKSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9ncmVzc2JhciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsaW5lbnVtYmVycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByYXdleGNlcHRpb25oYW5kbGluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzaG93c291cmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1ldGFkYXRhICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ5dGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVvdGVhbGxuYW1lcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhlYWRlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aXNpYmlsaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaXRlbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvcHlkaXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNvcHlkaXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZsYXR0ZW4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZW92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcmluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjY2hlY2tpbiBFTVBUWT4KKzwhQVRUTElTVCBjY2NoZWNraW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHByZXNlcnZldGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3dhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlkZW50aWNhbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBjb3B5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY3VubG9jayBFTVBUWT4KKzwhQVRUTElTVCBjY3VubG9jaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdsanNwYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgd2xqc3BjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZml4Y3JsZiAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZml4Y3JsZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFiIChhZGQgfCBhc2lzIHwgcmVtb3ZlKSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjciAoYWRkIHwgYXNpcyB8IHJlbW92ZSkgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVvbCAoYXNpcyB8IGNyIHwgbGYgfCBjcmxmIHwgbWFjIHwgdW5peCB8IGRvcykgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBqYXZhZmlsZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZW9mIChhZGQgfCBhc2lzIHwgcmVtb3ZlKSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFibGVuZ3RoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpeGxhc3QgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb3NnZXQgRU1QVFk+Cis8IUFUVExJU1Qgc29zZ2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzb3Nob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9qZWN0cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vY2FjaGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zY21kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXRoY29udmVydCAocGF0aCB8IG1hcCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIHBhdGhjb252ZXJ0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhzZXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyc2VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2V0b25lbXB0eSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldG9zIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFwIEVNUFRZPgorPCFBVFRMSVNUIG1hcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVjb3JkIEVNUFRZPgorPCFBVFRMSVNUIHJlY29yZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2xldmVsIChlcnJvciB8IHdhcm4gfCBpbmZvIHwgdmVyYm9zZSB8IGRlYnVnKSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW1hY3Ntb2RlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFjdGlvbiAoc3RhcnQgfCBzdG9wKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4ZWMgKGFyZyB8IHJlZGlyZWN0b3IgfCBlbnYpKj4KKzwhQVRUTElTVCBleGVjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2xhYmVsIEVNUFRZPgorPCFBVFRMSVNUIGNjbWtsYWJlbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZW5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZvYiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqcGNvdnJlcG9ydCAocmVmZXJlbmNlIHwgY292ZXJhZ2VwYXRoIHwgc291cmNlcGF0aCkqPgorPCFBVFRMSVNUIGpwY292cmVwb3J0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzbmFwc2hvdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwZXJjZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGV4ZWN1dGl2ZSB8IHN1bW1hcnkgfCBkZXRhaWxlZCB8IHZlcnlkZXRhaWxlZCkgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcm1hdCAoaHRtbCB8IHRleHQgfCB4bWwpICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNvdXJjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvdmVyYWdlcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgY292ZXJhZ2VwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhlY29uIChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBleGVjb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2tpcGVtcHR5ZmlsZXNldHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbGlmZXhlY3V0aW9uZmFpbHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIgfCBib3RoKSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZHNvdXJjZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcndhcmRzbGFzaCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVtaXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsYXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFyYWxsZWwgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NtY2hlY2tvdXQgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBjY21jaGVja291dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFzayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFudCAocmVmZXJlbmNlIHwgcHJvcGVydHlzZXQgfCBwcm9wZXJ0eSB8IHRhcmdldCkqPgorPCFBVFRMSVNUIGFudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0YWxsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluaGVyaXRyZWZzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYW50ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldCBFTVBUWT4KKzwhQVRUTElTVCB0YXJnZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB4bWx2YWxpZGF0ZSAoZmlsZXNldCB8IGNsYXNzcGF0aCB8IGR0ZCB8IHhtbGNhdGFsb2cgfCBhdHRyaWJ1dGUgfCBwcm9wZXJ0eSkqPgorPCFBVFRMSVNUIHhtbHZhbGlkYXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGVuaWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB3YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB4c2x0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBmYWN0b3J5IHwgbW9kaWZpZWQgfCBwYXJhbSB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBjbGFzc3BhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgeG1sY2F0YWxvZyB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgb3V0cHV0cHJvcGVydHkgfCBtYXBwZXIgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB4c2x0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2Nlc3NvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNjYW5pbmNsdWRlZGRpcmVjdG9yaWVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4dGVuc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxvYWRzdHlsZXNoZWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXBsYW5ldC1lamJjIChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBpcGxhbmV0LWVqYmMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVqYmRlc2NyaXB0b3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpYXNkZXNjcmlwdG9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWFzaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyYXRlZCAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21jaGVja2ludGFzayAoZmlsZXNldCkqPgorPCFBVFRMSVNUIGNjbWNoZWNraW50YXNrCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY21hY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjY21kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ3ppcCBFTVBUWT4KKzwhQVRUTElTVCBnemlwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbmF0aXZlMmFzY2lpIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBhcmcgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBtYXBwZXIgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBuYXRpdmUyYXNjaWkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmV2ZXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjcm10eXBlIEVNUFRZPgorPCFBVFRMSVNUIGNjcm10eXBlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGVuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcm1hbGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBla2luZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZvYiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlYXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgbWFuaWZlc3QgfCB0eXBlIHwgbWV0YWluZiB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGFyY2hpdmVzIHwgaW5kZXhqYXJzIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IHppcGdyb3VwZmlsZXNldCB8IHppcGZpbGVzZXQgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBlYXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGtlZXBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkdXBsaWNhdGUgKGFkZCB8IHByZXNlcnZlIHwgZmFpbCkgI0lNUExJRUQKKyAgICAgICAgICB3aGVuZW1wdHkgKGZhaWwgfCBza2lwIHwgY3JlYXRlKSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByb3VuZHVwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFuaWZlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVwZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWFyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHB4bWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc29ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzZXRtYW5pZmVzdCAoc2tpcCB8IG1lcmdlIHwgbWVyZ2V3aXRob3V0bWFpbikgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXJjaGl2ZXMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGFyY2hpdmVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZW1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlybW9kZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlucHV0ICgjUENEQVRBKT4KKzwhQVRUTElTVCBpbnB1dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsaWRhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByZXNldGRlZiAoJXRhc2tzOykqPgorPCFBVFRMSVNUIHByZXNldGRlZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBybWljIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IGV4dGRpcnMgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgY29tcGlsZXJhcmcgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBybWljCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJpZnkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpaW9wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlkbG9wdHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRkaXJzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlYmFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWFudHJ1bnRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWphdmFydW50aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tcGlsZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaWlvcG9wdHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3R1YnZlcnNpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21waWxlcmFyZyBFTVBUWT4KKzwhQVRUTElTVCBjb21waWxlcmFyZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNoZWNrc3VtIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY2hlY2tzdW0KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZWV4dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvdGFscHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlYWRidWZmZXJzaXplIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyaWZ5cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhbGdvcml0aG0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm92aWRlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1haWwgKGZpbGVzZXQgfCBiY2MgfCBtZXNzYWdlIHwgcmVwbHl0byB8IGNjIHwgZnJvbSB8IHRvKSo+Cis8IUFUVExJU1QgbWFpbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NsaXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZWZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIChhdXRvIHwgbWltZSB8IHV1IHwgcGxhaW4pICNJTVBMSUVECisgICAgICAgICAgY2hhcnNldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3ViamVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzc2wgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9saXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlbWltZXR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiY2NsaXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbHl0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haWxob3N0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZmlsZW5hbWVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBiY2MgRU1QVFk+Cis8IUFUVExJU1QgYmNjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1lc3NhZ2UgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIG1lc3NhZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG1pbWV0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2hhcnNldCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGx5dG8gRU1QVFk+Cis8IUFUVExJU1QgcmVwbHl0bworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjYyBFTVBUWT4KKzwhQVRUTElTVCBjYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmcm9tIEVNUFRZPgorPCFBVFRMSVNUIGZyb20KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdG8gRU1QVFk+Cis8IUFUVExJU1QgdG8KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbG9hZGZpbGUgKGZpbHRlcmNoYWluKSo+Cis8IUFUVExJU1QgbG9hZGZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2NoZWNrb3V0IEVNUFRZPgorPCFBVFRMSVNUIHZzc2NoZWNrb3V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdldGxvY2FsY29weSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXRpbWVzdGFtcCAoY3VycmVudCB8IG1vZGlmaWVkIHwgdXBkYXRlZCkgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZWZpbGVzIChyZXBsYWNlIHwgc2tpcCB8IGZhaWwpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29zY2hlY2tpbiBFTVBUWT4KKzwhQVRUTElTVCBzb3NjaGVja2luCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzb3Nob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvamVjdHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2NhY2hlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc2NtZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWltZW1haWwgKGZpbGVzZXQgfCBiY2MgfCBtZXNzYWdlIHwgcmVwbHl0byB8IGNjIHwgZnJvbSB8IHRvKSo+Cis8IUFUVExJU1QgbWltZW1haWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2VmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyAoYXV0byB8IG1pbWUgfCB1dSB8IHBsYWluKSAjSU1QTElFRAorICAgICAgICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1YmplY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3NsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haWxwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZW1pbWV0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmNjbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGx5dG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWlsaG9zdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWZpbGVuYW1lcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ3VuemlwIEVNUFRZPgorPCFBVFRMSVNUIGd1bnppcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb25jYXQgKCNQQ0RBVEEgfCBmaWx0ZXJjaGFpbiB8IGZpbGVzZXQgfCBmaWxlbGlzdCB8IHBhdGggfCBmb290ZXIgfCBoZWFkZXIpKj4KKzwhQVRUTElTVCBjb25jYXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmluYXJ5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVvbCAoYXNpcyB8IGNyIHwgbGYgfCBjcmxmIHwgbWFjIHwgdW5peCB8IGRvcykgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZml4bGFzdGxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjYWIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjYWIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNhYmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbnMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0b3VjaCAoZmlsZXNldCB8IGZpbGVsaXN0IHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgdG91Y2gKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBta2RpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWlsbGlzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGV0aW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGFyYWxsZWwgKCV0YXNrczsgfCBkYWVtb25zKSo+Cis8IUFUVExJU1QgcGFyYWxsZWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHBvbGxpbnRlcnZhbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aHJlYWRzcGVycHJvY2Vzc29yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRocmVhZGNvdW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uYW55ICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRhZW1vbnMgKCV0YXNrczspKj4KKzwhQVRUTElTVCBkYWVtb25zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhbnRjYWxsIChyZWZlcmVuY2UgfCBwcm9wZXJ0eXNldCB8IHRhcmdldCB8IHBhcmFtKSo+Cis8IUFUVExJU1QgYW50Y2FsbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0YWxsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluaGVyaXRyZWZzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2JsIEVNUFRZPgorPCFBVFRMSVNUIGNjbWtibAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmxhYmVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZ1bGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm93YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZGVudGljYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlbGluZXJvb3RuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjY2hlY2tvdXQgRU1QVFk+Cis8IUFUVExJU1QgY2NjaGVja291dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzZXJ2ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3RjbyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kYXRhICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm93YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJyYW5jaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0eXBlZGVmIChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCB0eXBlZGVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRhcHR0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9uZXJyb3IgKGZhaWwgfCByZXBvcnQgfCBpZ25vcmUpICNJTVBMSUVECisgICAgICAgICAgbG9hZGVycmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGFwdGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9ybWF0IChwcm9wZXJ0aWVzIHwgeG1sKSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmV2ZXJzZWxvYWRlciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB4bWxwcm9wZXJ0eSAoeG1sY2F0YWxvZykqPgorPCFBVFRMSVNUIHhtbHByb3BlcnR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VtYW50aWNhdHRyaWJ1dGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXByb290ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbGxhcHNlYXR0cmlidXRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2YWxpZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcm9vdGRpcmVjdG9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZW1hbnRpY2F0dHJpYnV0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbXBvcnQgRU1QVFk+Cis8IUFUVExJU1QgaW1wb3J0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbmFsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvcHkgKGZpbHRlcmNoYWluIHwgZmlsZXNldCB8IGZpbHRlcnNldCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIGNvcHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZsYXR0ZW4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9maWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVlbXB0eWRpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVuYWJsZW11bHRpcGxlbWFwcGluZ3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZWxhc3Rtb2RpZmllZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJpbmcgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQganNoYXJwYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCByZXNvdXJjZSB8IGRlZmluZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHJlZmVyZW5jZSB8IHNyYyB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBqc2hhcnBjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZlcmVuY2VzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcmVzcG9uc2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbmNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbG1vZHVsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW4zMmljb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1dGY4b3V0cHV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVkZWZhdWx0cmVmZXJlbmNlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcHRpbWl6ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXR0eXBlIChleGUgfCBsaWJyYXJ5IHwgbW9kdWxlIHwgd2luZXhlKSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB3aW4zMnJlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2VjdXJlc2NvcGluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHVyZWphdmEgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3YXJubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZlcmVuY2VmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN5bWxpbmsgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBzeW1saW5rCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5rZmlsZW5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmsgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFudHN0cnVjdHVyZSBFTVBUWT4KKzwhQVRUTElTVCBhbnRzdHJ1Y3R1cmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzY3JpcHQgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHNjcmlwdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhbmd1YWdlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NtY3JlYXRldGFzayBFTVBUWT4KKzwhQVRUTElTVCBjY21jcmVhdGV0YXNrCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdWJzeXN0ZW0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGxhdGZvcm0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjY21hY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjY21kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlbGVhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJwbSBFTVBUWT4KKzwhQVRUTElTVCBycG0KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlbW92ZXNvdXJjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYW5idWlsZGRpciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZW1vdmVzcGVjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwZWNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9wZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcnBtYnVpbGRjb21tYW5kIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVsZXRlIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZGVsZXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWVtcHR5ZGlycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWxldGVvbmV4aXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2UgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgcmVwbGFjZWZpbHRlciB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCByZXBsYWNldG9rZW4gfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCByZXBsYWNldmFsdWUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCByZXBsYWNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdW1tYXJ5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlZmlsdGVyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZWZpbHRlciBFTVBUWT4KKzwhQVRUTElTVCByZXBsYWNlZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNldG9rZW4gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHJlcGxhY2V0b2tlbgorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXZhbHVlICgjUENEQVRBKT4KKzwhQVRUTElTVCByZXBsYWNldmFsdWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1tZXRyaWNzIChmaWxlc2V0IHwganZtYXJnIHwgY2xhc3NwYXRoIHwgcGF0aCB8IHNvdXJjZXBhdGgpKj4KKzwhQVRUTElTVCBtbWV0cmljcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXRhbWF0YWhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSAoY29tcGlsYXRpb24tdW5pdHMgfCBmaWxlcyB8IG1ldGhvZHMgfCB0eXBlcyB8IHBhY2thZ2VzKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGF0dHJpYiAobWFwcGVyIHwgc3JjZmlsZSB8IHRhcmdldGZpbGUgfCByZWRpcmVjdG9yIHwgZmlsZWxpc3QgfCBlbnYgfCBmaWxlc2V0IHwgZGlyc2V0IHwgYXJnKSo+Cis8IUFUVExJU1QgYXR0cmliCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRzb3VyY2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFyYWxsZWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWFkb25seSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaGlkZGVuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZW1pc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbGlmZXhlY3V0aW9uZmFpbHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXhwYXJhbGxlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN5c3RlbSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyY2hpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2FpdGZvciAoaXNmYWxzZSB8IGlzcmVmZXJlbmNlIHwgZXF1YWxzIHwgYXZhaWxhYmxlIHwgbm90IHwgY29udGFpbnMgfCBvcyB8IG9yIHwgYW5kIHwgZmlsZXNtYXRjaCB8IGNoZWNrc3VtIHwgaXN0cnVlIHwgaXNzZXQgfCBzb2NrZXQgfCBodHRwIHwgdXB0b2RhdGUpKj4KKzwhQVRUTElTVCB3YWl0Zm9yCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjaGVja2V2ZXJ5dW5pdCAobWlsbGlzZWNvbmQgfCBzZWNvbmQgfCBtaW51dGUgfCBob3VyIHwgZGF5IHwgd2VlaykgI0lNUExJRUQKKyAgICAgICAgICBjaGVja2V2ZXJ5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4d2FpdHVuaXQgKG1pbGxpc2Vjb25kIHwgc2Vjb25kIHwgbWludXRlIHwgaG91ciB8IGRheSB8IHdlZWspICNJTVBMSUVECisgICAgICAgICAgbWF4d2FpdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlzZmFsc2UgRU1QVFk+Cis8IUFUVExJU1QgaXNmYWxzZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXNyZWZlcmVuY2UgRU1QVFk+Cis8IUFUVExJU1QgaXNyZWZlcmVuY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVxdWFscyBFTVBUWT4KKzwhQVRUTElTVCBlcXVhbHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRyaW0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXJnMiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyZzEgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGF2YWlsYWJsZSAoY2xhc3NwYXRoIHwgZmlsZXBhdGgpKj4KKzwhQVRUTElTVCBhdmFpbGFibGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZXN5c3RlbWNsYXNzZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpcikgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZXBhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGZpbGVwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3MgRU1QVFk+Cis8IUFUVExJU1Qgb3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFtaWx5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJjaCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGVzbWF0Y2ggRU1QVFk+Cis8IUFUVExJU1QgZmlsZXNtYXRjaAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZTIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlMSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlzdHJ1ZSBFTVBUWT4KKzwhQVRUTElTVCBpc3RydWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZhbHVlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlzc2V0IEVNUFRZPgorPCFBVFRMSVNUIGlzc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvY2tldCBFTVBUWT4KKzwhQVRUTElTVCBzb2NrZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBodHRwIEVNUFRZPgorPCFBVFRMSVNUIGh0dHAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yc2JlZ2luYXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1cHRvZGF0ZSAoc3JjZmlsZXMgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCB1cHRvZGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNyY2ZpbGVzIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBzcmNmaWxlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdW50YXIgKGZpbGVzZXQgfCBwYXR0ZXJuc2V0KSo+Cis8IUFUVExJU1QgdW50YXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uIChub25lIHwgZ3ppcCB8IGJ6aXAyKSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbG9hZHByb3BlcnRpZXMgKGZpbHRlcmNoYWluIHwgY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgbG9hZHByb3BlcnRpZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVjaG9wcm9wZXJ0aWVzIChwcm9wZXJ0eXNldCkqPgorPCFBVFRMSVNUIGVjaG9wcm9wZXJ0aWVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9ybWF0ICh4bWwgfCB0ZXh0KSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGp1bml0IChjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eSB8IGJvb3RjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eXNldCB8IGVudiB8IHRlc3QgfCBwZXJtaXNzaW9ucyB8IGp2bWFyZyB8IGZvcm1hdHRlciB8IGJhdGNodGVzdCB8IGFzc2VydGlvbnMpKj4KKzwhQVRUTElTVCBqdW5pdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBoYWx0b25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmludHN1bW1hcnkgKHRydWUgfCB5ZXMgfCBmYWxzZSB8IG5vIHwgb24gfCBvZmYgfCB3aXRoT3V0QW5kRXJyKSAjSU1QTElFRAorICAgICAgICAgIGhhbHRvbmZhaWx1cmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbHVyZXByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2hvd291dHB1dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRlbXBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlYW50cnVudGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJ0cmFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmttb2RlIChvbmNlIHwgcGVyVGVzdCB8IHBlckJhdGNoKSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsb2FkaW5nICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZvcm1hdHRlciBFTVBUWT4KKzwhQVRUTElTVCBmb3JtYXR0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVzZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZSAocGxhaW4gfCB4bWwgfCBicmllZikgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dGVuc2lvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJhdGNodGVzdCAoZmlsZXNldCB8IGZvcm1hdHRlcikqPgorPCFBVFRMSVNUIGJhdGNodGVzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBoYWx0b25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb3JrICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbHVyZXByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVydHJhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaGFsdG9uZmFpbHVyZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2hncnAgKG1hcHBlciB8IHNyY2ZpbGUgfCB0YXJnZXRmaWxlIHwgcmVkaXJlY3RvciB8IGZpbGVsaXN0IHwgZW52IHwgZmlsZXNldCB8IGRpcnNldCB8IGFyZykqPgorPCFBVFRMSVNUIGNoZ3JwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRzb3VyY2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFyYWxsZWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdyb3VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVtaXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIgfCBib3RoKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJ1bnppcDIgRU1QVFk+Cis8IUFUVExJU1QgYnVuemlwMgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3aGljaHJlc291cmNlIChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCB3aGljaHJlc291cmNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29weWZpbGUgRU1QVFk+Cis8IUFUVExJU1QgY29weWZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZvcmNlb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzY3JlYXRlIEVNUFRZPgorPCFBVFRMSVNUIHZzc2NyZWF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYWNyb2RlZiAoc2VxdWVudGlhbCB8IGVsZW1lbnQgfCBhdHRyaWJ1dGUgfCB0ZXh0KSo+Cis8IUFUVExJU1QgbWFjcm9kZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZWxlbWVudCBFTVBUWT4KKzwhQVRUTElTVCBlbGVtZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBpbXBsaWNpdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25hbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0ZXh0IEVNUFRZPgorPCFBVFRMSVNUIHRleHQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRyaW0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdW5qYXIgKGZpbGVzZXQgfCBwYXR0ZXJuc2V0KSo+Cis8IUFUVExJU1QgdW5qYXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdmJjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IHJlc291cmNlIHwgZGVmaW5lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgcmVmZXJlbmNlIHwgc3JjIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHZiYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJlc3BvbnNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZW1vdmVpbnRjaGVja3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWluY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRpdGlvbmFsbW9kdWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbjMyaWNvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbnN0cmljdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1dGY4b3V0cHV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVkZWZhdWx0cmVmZXJlbmNlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcHRpbWl6ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXR0eXBlIChleGUgfCBsaWJyYXJ5IHwgbW9kdWxlIHwgd2luZXhlKSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcm9vdG5hbWVzcGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgd2luMzJyZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25leHBsaWNpdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3YXJubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25jb21wYXJlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wb3J0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmVyZW5jZWZpbGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd3NkbHRvZG90bmV0IEVNUFRZPgorPCFBVFRMSVNUIHdzZGx0b2RvdG5ldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdXJsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWVzcGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhbmd1YWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1rZGlyIEVNUFRZPgorPCFBVFRMSVNUIG1rZGlyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29uZGl0aW9uIChpc2ZhbHNlIHwgaXNyZWZlcmVuY2UgfCBlcXVhbHMgfCBhdmFpbGFibGUgfCBub3QgfCBjb250YWlucyB8IG9zIHwgb3IgfCBhbmQgfCBmaWxlc21hdGNoIHwgY2hlY2tzdW0gfCBpc3RydWUgfCBpc3NldCB8IHNvY2tldCB8IGh0dHAgfCB1cHRvZGF0ZSkqPgorPCFBVFRMSVNUIGNvbmRpdGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVsc2UgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdnMgKGNvbW1hbmRsaW5lKSo+Cis8IUFUVExJU1QgY3ZzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjdnNyc2ggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXNzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3Zzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYWxseXF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb25sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZXhlYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhZyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRlbXBmaWxlIEVNUFRZPgorPCFBVFRMSVNUIHRlbXBmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganVuaXRyZXBvcnQgKHJlcG9ydCB8IGZpbGVzZXQpKj4KKzwhQVRUTElTVCBqdW5pdHJlcG9ydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9maWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwb3J0IEVNUFRZPgorPCFBVFRMSVNUIHJlcG9ydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcm1hdCAoZnJhbWVzIHwgbm9mcmFtZXMpICNJTVBMSUVECisgICAgICAgICAgZXh0ZW5zaW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2F0dHIgRU1QVFk+Cis8IUFUVExJU1QgY2Nta2F0dHIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZXZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGVuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFza2RlZiAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgdGFza2RlZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkYXB0dG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvbmVycm9yIChmYWlsIHwgcmVwb3J0IHwgaWdub3JlKSAjSU1QTElFRAorICAgICAgICAgIGxvYWRlcnJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRhcHRlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcm1hdCAocHJvcGVydGllcyB8IHhtbCkgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJldmVyc2Vsb2FkZXIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZWNobyAoI1BDREFUQSk+Cis8IUFUVExJU1QgZWNobworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxldmVsIChlcnJvciB8IHdhcm5pbmcgfCBpbmZvIHwgdmVyYm9zZSB8IGRlYnVnKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjdXBkYXRlIEVNUFRZPgorPCFBVFRMSVNUIGNjdXBkYXRlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZXRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVuYW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncmFwaGljYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdXJyZW50dGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmEgKGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5IHwgcmVkaXJlY3RvciB8IGJvb3RjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eXNldCB8IGVudiB8IHBlcm1pc3Npb25zIHwganZtYXJnIHwgYXJnIHwgYXNzZXJ0aW9ucykqPgorPCFBVFRMSVNUIGphdmEKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JrICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGphciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm12ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZW5hbWVleHQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHJlbmFtZWV4dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2V4dGVuc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmcm9tZXh0ZW5zaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2xhYmVsIEVNUFRZPgorPCFBVFRMSVNUIHZzc2xhYmVsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJhc2VuYW1lIEVNUFRZPgorPCFBVFRMSVNUIGJhc2VuYW1lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamF2YWRvYzIgKHRhZ2xldCB8IGRvY2xldCB8IHBhY2thZ2UgfCBhcmcgfCBsaW5rIHwgZG9jdGl0bGUgfCBib3R0b20gfCBncm91cCB8IHBhY2thZ2VzZXQgfCBmaWxlc2V0IHwgY2xhc3NwYXRoIHwgc291cmNlcGF0aCB8IGZvb3RlciB8IHNvdXJjZSB8IGJvb3RjbGFzc3BhdGggfCBoZWFkZXIgfCBleGNsdWRlcGFja2FnZSB8IHRhZykqPgorPCFBVFRMSVNUIGphdmFkb2MyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBib3R0b20gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGVhZGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGluayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vaW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWNjZXNzIChwcm90ZWN0ZWQgfCBwdWJsaWMgfCBwYWNrYWdlIHwgcHJpdmF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3F1YWxpZmllciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1YmxpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRob3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9vdGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlZXh0ZXJuYWxmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHByb3RlY3RlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBicmVha2l0ZXJhdG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vbmF2YmFyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyb3VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlua29mZmxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRpdGlvbmFscGFyYW0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rc291cmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvY2FsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZW5vc291cmNlcGFja2FnZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByaXZhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZXByZWNhdGVkbGlzdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZXNoZWV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2VuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXBhY2thZ2VuYW1lcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlbmFtZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW5kb3d0aXRsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdHJlZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGxpdGluZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VsaXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2N0aXRsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcmlhbHdhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2xkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGVscGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZWZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZGlycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vaGVscCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2RlcHJlY2F0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3ZlcnZpZXcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NjcCBFTVBUWT4KKzwhQVRUTElTVCB2c3NjcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhciAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgdGFyZmlsZXNldCB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHRhcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uIChub25lIHwgZ3ppcCB8IGJ6aXAyKSAjSU1QTElFRAorICAgICAgICAgIGxvbmdmaWxlICh3YXJuIHwgZmFpbCB8IHRydW5jYXRlIHwgZ251IHwgb21pdCkgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHRhcmZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmVsZWFkaW5nc2xhc2hlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1aWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyb3VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnaWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlybW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzZXRwcm94eSBFTVBUWT4KKzwhQVRUTElTVCBzZXRwcm94eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbm9ucHJveHlob3N0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3h5aG9zdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvY2tzcHJveHlob3N0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJveHlwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29ja3Nwcm94eXBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3h5dXNlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJveHlwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlsYXNtIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHJlZmVyZW5jZSB8IHNyYyB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBpbGFzbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb3duZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXR0eXBlIChleGUgfCBsaWJyYXJ5KSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZWZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaXN0aW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtleWZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb3NjaGVja291dCBFTVBUWT4KKzwhQVRUTElTVCBzb3NjaGVja291dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc29zaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvamVjdHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2NhY2hlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc2NtZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXBwbHkgKG1hcHBlciB8IHNyY2ZpbGUgfCB0YXJnZXRmaWxlIHwgcmVkaXJlY3RvciB8IGZpbGVsaXN0IHwgZW52IHwgZmlsZXNldCB8IGRpcnNldCB8IGFyZykqPgorPCFBVFRMSVNUIGFwcGx5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQKKyAgICAgICAgICBtYXhwYXJhbGxlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRzb3VyY2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjdW5jaGVja291dCBFTVBUWT4KKzwhQVRUTElTVCBjY3VuY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBjb3B5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXJsaWItcmVzb2x2ZSAoYW50IHwgbG9jYXRpb24gfCB1cmwgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBqYXJsaWItcmVzb2x2ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2hlY2tleHRlbnNpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbG9jYXRpb24gRU1QVFk+Cis8IUFUVExJU1QgbG9jYXRpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdXJsIEVNUFRZPgorPCFBVFRMSVNUIHVybAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3ZzdGFnZGlmZiAoY29tbWFuZGxpbmUpKj4KKzwhQVRUTElTVCBjdnN0YWdkaWZmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjdnNyc2ggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmR0YWcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXNzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3Zzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYWxseXF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN0YXJ0dGFnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9ubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmRkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9leGVjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3RhcnRkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFnIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamxpbmsgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IG1lcmdlZmlsZXMgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgYWRkZmlsZXMgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGpsaW5rCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFkZGZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXJnZWZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXJnZWZpbGVzIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBtZXJnZWZpbGVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYWRkZmlsZXMgKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGFkZGZpbGVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamF2YWNjIEVNUFRZPgorPCFBVFRMSVNUIGphdmFjYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVidWdwYXJzZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgamF2YWNjaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlbGFjaGVjayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcHRpbWl6ZXRva2VubWFuYWdlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tb250b2tlbmFjdGlvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBidWlsZHRva2VubWFuYWdlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzYW5pdHljaGVjayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBidWlsZHBhcnNlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdGhlcmFtYmlndWl0eWNoZWNrIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9va2FoZWFkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWdsb29rYWhlYWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2hvaWNlYW1iaWd1aXR5Y2hlY2sgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmljb2RlaW5wdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlcmNoYXJzdHJlYW0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVidWd0b2tlbm1hbmFnZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2VlcGxpbmVjb2x1bW4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGRpcmVjdG9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhY2hldG9rZW5zICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGphdmF1bmljb2RlZXNjYXBlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN0YXRpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVjYXNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXJ0b2tlbm1hbmFnZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3JyZXBvcnRpbmcgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2htb2QgKG1hcHBlciB8IGluY2x1ZGUgfCBzcmNmaWxlIHwgZXhjbHVkZSB8IHRhcmdldGZpbGUgfCBwYXR0ZXJuc2V0IHwgcmVkaXJlY3RvciB8IGVudiB8IGZpbGVsaXN0IHwgZmlsZXNldCB8IGRpcnNldCB8IGFyZykqPgorPCFBVFRMSVNUIGNobW9kCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRzb3VyY2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbGxlbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dHN0cmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsYXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2tpcGVtcHR5ZmlsZXNldHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcndhcmRzbGFzaCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVtaXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBlcm0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwdmNzIChwdmNzcHJvamVjdCkqPgorPCFBVFRMSVNUIHB2Y3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVwZGF0ZW9ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb25maWcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdmNzYmluIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd29ya3NwYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHZjc3Byb2plY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbmFtZWZvcm1hdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJpZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcG9zaXRvcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVyZXR1cm5jb2RlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJldmlzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGluZXN0YXJ0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9tb3Rpb25ncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwdmNzcHJvamVjdCBFTVBUWT4KKzwhQVRUTElTVCBwdmNzcHJvamVjdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphcmxpYi1tYW5pZmVzdCAob3B0aW9ucyB8IGF0dHJpYnV0ZSB8IGRlcGVuZHMgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBqYXJsaWItbWFuaWZlc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG9wdGlvbnMgKGZpbGVzZXQgfCBsaWJmaWxlc2V0IHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1Qgb3B0aW9ucworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlcGVuZHMgKGZpbGVzZXQgfCBsaWJmaWxlc2V0IHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgZGVwZW5kcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphciAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCBtYW5pZmVzdCB8IHR5cGUgfCBtZXRhaW5mIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgaW5kZXhqYXJzIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IHppcGdyb3VwZmlsZXNldCB8IHppcGZpbGVzZXQgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBqYXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHdoZW5lbXB0eSAoZmFpbCB8IHNraXAgfCBjcmVhdGUpICNJTVBMSUVECisgICAgICAgICAga2VlcGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkdXBsaWNhdGUgKGFkZCB8IHByZXNlcnZlIHwgZmFpbCkgI0lNUExJRUQKKyAgICAgICAgICByb3VuZHVwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFuaWZlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVwZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFuaWZlc3RlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzb25seSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNldG1hbmlmZXN0IChza2lwIHwgbWVyZ2UgfCBtZXJnZXdpdGhvdXRtYWluKSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21rbGJ0eXBlIEVNUFRZPgorPCFBVFRMSVNUIGNjbWtsYnR5cGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGdsb2JhbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNoYXJlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGVuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGJyYW5jaCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm9iIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9yZGluYXJ5ICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNjcmlwdGRlZiAoI1BDREFUQSB8IGNsYXNzcGF0aCB8IGVsZW1lbnQgfCBhdHRyaWJ1dGUpKj4KKzwhQVRUTElTVCBzY3JpcHRkZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGxvYWRlcnJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXZlcnNlbG9hZGVyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlZmF1bHRleGNsdWRlcyBFTVBUWT4KKzwhQVRUTElTVCBkZWZhdWx0ZXhjbHVkZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlbW92ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVjaG8gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbXBhcnNlIChmaWxlc2V0IHwganZtYXJnIHwgY2xhc3NwYXRoIHwgc291cmNlcGF0aCkqPgorPCFBVFRMSVNUIG1wYXJzZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xlYW51cCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1ldGFtYXRhaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVncGFyc2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWdzY2FubmVyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJsZ2VuY2xpZW50IChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBibGdlbmNsaWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVqYmphciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xpZW50amFyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgampkb2MgRU1QVFk+Cis8IUFUVExJU1Qgampkb2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YWNjaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRleHQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb25ldGFibGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ2Vua2V5IChkbmFtZSkqPgorPCFBVFRMSVNUIGdlbmtleQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3RvcmVwYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2lnYWxnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZXlwYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZXlzaXplIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWxpYXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZXlhbGcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWxpZGl0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtleXN0b3JlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0b3JldHlwZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRuYW1lIChwYXJhbSkqPgorPCFBVFRMSVNUIGRuYW1lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhaCAoYXJnIHwgY2xhc3NwYXRoIHwgY2xhc3MgfCBib290Y2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgamF2YWgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0dWJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvbGQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNsYXNzIEVNUFRZPgorPCFBVFRMSVNUIGNsYXNzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2VsZW0gRU1QVFk+Cis8IUFUVExJU1QgY2Nta2VsZW0KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHByZXNlcnZldGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXN0ZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWx0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm93YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vY2hlY2tvdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNoZWNraW4gJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NtcmVjb25maWd1cmUgRU1QVFk+Cis8IUFUVExJU1QgY2NtcmVjb25maWd1cmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbWFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjY21wcm9qZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNjbWRpciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZhaWwgKCNQQ0RBVEEgfCBjb25kaXRpb24pKj4KKzwhQVRUTElTVCBmYWlsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdGF0dXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdW56aXAgKGZpbGVzZXQgfCBwYXR0ZXJuc2V0KSo+Cis8IUFUVExJU1QgdW56aXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3ZlcndyaXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamF2YWMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgZXh0ZGlycyB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHNyYyB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBjbGFzc3BhdGggfCBzb3VyY2VwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBib290Y2xhc3NwYXRoIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGNvbXBpbGVyYXJnIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgamF2YWMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgY29tcGlsZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWdsZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lbW9yeWluaXRpYWxzaXplIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVwcmVjYXRpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWFudHJ1bnRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWphdmFydW50aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0ZW1wZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwcm9jZWVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZW1vcnltYXhpbXVtc2l6ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9wdGltaXplICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpc3RmaWxlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleHRkaXJzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganBjb3ZlcmFnZSAoYXJnIHwgc29ja2V0IHwgZmlsZXNldCB8IGp2bWFyZyB8IGNsYXNzcGF0aCB8IHRyaWdnZXJzIHwgZmlsdGVycykqPgorPCFBVFRMSVNUIGpwY292ZXJhZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFwcGxldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWNvcmRmcm9tc3RhcnQgKGNvdmVyYWdlIHwgbm9uZSB8IGFsbCkgI0lNUExJRUQKKyAgICAgICAgICB2bSAoamF2YTIgfCBqZGsxMTggfCBqZGsxMTcpICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd29ya2luZ2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNuYXBzaG90ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VlZG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqYXZhZXhlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4aXRwcm9tcHQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdhcm5sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbmFsc25hcHNob3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRyYWNrbmF0aXZlcyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0cmlnZ2VycyAobWV0aG9kKSo+Cis8IUFUVExJU1QgdHJpZ2dlcnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1ldGhvZCBFTVBUWT4KKzwhQVRUTElTVCBtZXRob2QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBldmVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhcmFtIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVycyAoaW5jbHVkZSB8IGV4Y2x1ZGUpKj4KKzwhQVRUTElTVCBmaWx0ZXJzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb3NsYWJlbCBFTVBUWT4KKzwhQVRUTElTVCBzb3NsYWJlbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc29zaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9qZWN0cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2NhY2hlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zY21kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NnZXQgRU1QVFk+Cis8IUFUVExJU1QgdnNzZ2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxldGltZXN0YW1wIChjdXJyZW50IHwgbW9kaWZpZWQgfCB1cGRhdGVkKSAjSU1QTElFRAorICAgICAgICAgIHdyaXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdyaXRhYmxlZmlsZXMgKHJlcGxhY2UgfCBza2lwIHwgZmFpbCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZWx0cmVlIEVNUFRZPgorPCFBVFRMSVNUIGRlbHRyZWUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9jb25maWcueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL2NvbmZpZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODczYWRkMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9jb25maWcueG1sCkBAIC0wLDAgKzEsNiBAQAorPGNvbmZpZworICAgICAgICBob3N0PSIke2hvc3R9IgorICAgICAgICBwb3J0PSIke3BvcnR9IgorICAgICAgICBiYXNlcGF0aD0iJHtiYXNlcGF0aH0iCisgICAgICAgIHByb3RvY29sPSJodHRwIi8+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1vcGVuLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1vcGVuLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NGZiYWM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLW9wZW4ueG1sCkBAIC0wLDAgKzEsNSBAQAorJndlbGNvbWUtb3BlbjsKKzxjbGlja0xpbmsKKyAgICAgICAgZGVzY3JpcHRpb249IkNsaWNrIFJlZ2lzdGVyIgorICAgICAgICBsYWJlbD0iUmVnaXN0ZXIgd2l0aCBNYWlsUmVhZGVyIi8+CisgICAgICAgICZyZWdpc3Rlci1wYWdlOwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXBhZ2UueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXBhZ2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0NjAxZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItcGFnZS54bWwKQEAgLTAsMCArMSwzIEBACis8dmVyaWZ5VGl0bGUKKyAgICAgICAgZGVzY3JpcHRpb249IlJlZ2lzdHJhdGlvbiBwYWdlIHRpdGxlIgorICAgICAgICB0ZXh0PSJNYWlsUmVhZGVyIC0gUmVnaXN0ZXIiLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci10cmlsbGlhbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItdHJpbGxpYW4ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1NjFmMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItdHJpbGxpYW4ueG1sCkBAIC0wLDAgKzEsMjEgQEAKKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJ1c2VybmFtZSIKKyAgICAgICAgbmFtZT0idXNlcm5hbWUiCisgICAgICAgIHZhbHVlPSJ0cmlsbGlhbiIvPgorPHNldElucHV0RmllbGQKKyAgICAgICAgZGVzY3JpcHRpb249InBhc3N3b3JkIgorICAgICAgICBuYW1lPSJwYXNzd29yZCIKKyAgICAgICAgdmFsdWU9ImFzdHJhIi8+Cis8c2V0SW5wdXRGaWVsZAorICAgICAgICBkZXNjcmlwdGlvbj0icGFzc3dvcmQyIgorICAgICAgICBuYW1lPSJwYXNzd29yZDIiCisgICAgICAgIHZhbHVlPSJhc3RyYSIvPgorPHNldElucHV0RmllbGQKKyAgICAgICAgZGVzY3JpcHRpb249ImZ1bGxOYW1lIgorICAgICAgICBuYW1lPSJmdWxsTmFtZSIKKyAgICAgICAgdmFsdWU9IlRyaWNpYSBNY01pbGxpYW4iLz4KKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJmcm9tQWRkcmVzcyIKKyAgICAgICAgbmFtZT0iZnJvbUFkZHJlc3MiCisgICAgICAgIHZhbHVlPSJ0cmljaWFAbWFncmF0aGVhLmNvbSIvPgorICAgICAgICAmc2F2ZS1jbGljazsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvc2F2ZS1jbGljay54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvc2F2ZS1jbGljay54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAyYTFkYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9zYXZlLWNsaWNrLnhtbApAQCAtMCwwICsxLDMgQEAKKzxjbGlja0J1dHRvbgorICAgICAgICBkZXNjcmlwdGlvbj0iU2F2ZSIKKyAgICAgICAgbmFtZT0iU2F2ZSIvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3Rhc2tkZWYueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3Rhc2tkZWYueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiNGMxZGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvdGFza2RlZi54bWwKQEAgLTAsMCArMSwyNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiA/PgorPHByb2plY3QgbmFtZT0idGFza2RlZiI+CisgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICBUaGlzIHByb2plY3QgcHJvdmlkZXMgZm9sbG93aW5nIGVsZW1lbnRzIHRvIHVzZSBpbiB5b3VyIHRlc3Qgc2NyaXB0czoKKworICAgICAgICAoMCkgYWxsIHdlYnRlc3QncyBzdGVwcyBsb2FkZWQgYW5kIHJlYWR5IHRvIHVzZSwKKyAgICAgICAgKDEpIHRoZSBwYXRoICJ3ZWJ0ZXN0LnBhdGguaWQiIHRoYXQgaW5jbHVkZXMgYWxsIG9mIHdlYnRlc3QncworICAgICAgICBsaWJyYXJpZXMsCisgICAgICAgICgyKSB0aGUgY2xhc3MgbG9hZGVyICJ3ZWJ0ZXN0LmxvYWRlciIgdGhhdCBpcyB0aGUgb3JpZ2luYWwgbG9hZGVyIGZvcgorICAgICAgICB3ZWJ0ZXN0LgorCisgICAgICAgIFVzYWdlOgorICAgICAgICBTZXQgdGhlIHByb3BlcnR5IHdlYnRlc3QuaG9tZSB0byB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIHRoZSBidWlsZC56aXAKKyAgICAgICAgaXMgZXh0cmFjdGVkLAorICAgICAgICBhbmQgY2FsbHM6CisgICAgICAgICZsdDtpbXBvcnQgZmlsZT0iJHt3ZWJ0ZXN0LmhvbWV9L2xpYi90YXNrZGVmLnhtbCIgJmd0OworICAgIDwvZGVzY3JpcHRpb24+CisKKyAgICA8aW1wb3J0IGZpbGU9IiR7d2VidGVzdC5ob21lfS9saWIvY2xhc3NwYXRoLnhtbCIvPgorCisgICAgPHRhc2tkZWYgcmVzb3VyY2U9IndlYnRlc3QudGFza2RlZiIKKyAgICAgICAgICAgICBsb2FkZXJyZWY9IndlYnRlc3QubG9hZGVyIgorICAgICAgICAgICAgIGNsYXNzcGF0aHJlZj0id2VidGVzdC5wYXRoLmlkIgorICAgICAgICAgICAgLz4KKzwvcHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvd2VsY29tZS1vcGVuLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy93ZWxjb21lLW9wZW4ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwNzM1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvd2VsY29tZS1vcGVuLnhtbApAQCAtMCwwICsxLDYgQEAKKzxpbnZva2UKKyAgICAgICAgZGVzY3JpcHRpb249Ik9wZW4gd2VsY29tZSBhY3Rpb24iCisgICAgICAgIHVybD0iV2VsY29tZS5kbyIvPgorPHZlcmlmeVRpdGxlCisgICAgICAgIGRlc2NyaXB0aW9uPSJXZWxjb21lIHBhZ2UgdGl0bGUiCisgICAgICAgIHRleHQ9Ik1haWxSZWFkZXIiLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE1MWVhOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCkBAIC0wLDAgKzEsMzAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSB3ZWItYXBwIFBVQkxJQyAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIFdlYiBBcHBsaWNhdGlvbiAyLjMvL0VOIiAiaHR0cDovL2phdmEuc3VuLmNvbS9kdGQvd2ViLWFwcF8yXzMuZHRkIj4KKzx3ZWItYXBwPgorCisgICAgPGRpc3BsYXktbmFtZT5TdHJ1dHMgMiBNYWlscmVhZGVyPC9kaXNwbGF5LW5hbWU+CisKKyAgICA8ZmlsdGVyPgorICAgICAgICA8ZmlsdGVyLW5hbWU+U3RydXRzMjwvZmlsdGVyLW5hbWU+CisgICAgICAgIDxmaWx0ZXItY2xhc3M+CisgICAgICAgICAgICBvcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5GaWx0ZXJEaXNwYXRjaGVyCisgICAgICAgIDwvZmlsdGVyLWNsYXNzPgorICAgIDwvZmlsdGVyPgorCisgICAgPGZpbHRlci1tYXBwaW5nPgorICAgICAgICA8ZmlsdGVyLW5hbWU+U3RydXRzMjwvZmlsdGVyLW5hbWU+CisgICAgICAgIDx1cmwtcGF0dGVybj4vKjwvdXJsLXBhdHRlcm4+CisgICAgPC9maWx0ZXItbWFwcGluZz4KKworICAgIDwhLS0gQXBwbGljYXRpb24gTGlzdGVuZXIgZm9yIE1haWxyZWFkZXIgZGF0YWJhc2UgLS0+CisgICAgPGxpc3RlbmVyPgorICAgICAgICA8bGlzdGVuZXItY2xhc3M+CisgICAgICAgICAgICBEYXRhYmFzZUxpc3RlbmVyCisgICAgICAgIDwvbGlzdGVuZXItY2xhc3M+CisgICAgPC9saXN0ZW5lcj4KKworICAgIDx3ZWxjb21lLWZpbGUtbGlzdD4KKyAgICAgICAgPHdlbGNvbWUtZmlsZT5pbmRleC5odG1sPC93ZWxjb21lLWZpbGU+CisgICAgPC93ZWxjb21lLWZpbGUtbGlzdD4KKworPC93ZWItYXBwPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcy5zYW1wbGUgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTY5NzVhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcy5zYW1wbGUKQEAgLTAsMCArMSwxNSBAQAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyMgd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZQ0KKyMNCisjIFRoaXMgaXMgYW4gZXhhbXBsZSAid2VidGVzdC5wcm9wZXJ0aWVzIiBmaWxlLCB1c2VkIHRvIGN1c3RvbWl6ZSBidWlsZGluZyBTdHJ1dHMNCisjIGZvciB5b3VyIGxvY2FsIGVudmlyb25tZW50LiAgTWFrZSBhbnkgY2hhbmdlcyB5b3UgbmVlZCwgYW5kIHJlbmFtZSB0aGlzIGZpbGUNCisjIHRvICJ3ZWJ0ZXN0LnByb3BlcnRpZXMiIGluIHRoZSBzYW1lIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRoZSBTdHJ1dHMNCisjICJ3ZWJ0ZXN0LnhtbCIgZmlsZS4NCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQord2VidGVzdC5ob21lID0gL29wdC9DYW5vby93ZWJ0ZXN0LTEuNw0KK2hvc3QgPSBsb2NhbGhvc3QNCitwb3J0ID0gODA4MA0KK2Jhc2VwYXRoID0gbGFiLTItMg0KK3dlYmFwcHMuaG9tZSA9IC9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy8NCityZXNvdXJjZS5ob21lID0gJHt3ZWJhcHBzLmhvbWV9LyR7YmFzZXBhdGh9L1dFQi1JTkYvY2xhc3Nlcy9yZXNvdXJjZXMucHJvcGVydGllcyINCisjIG1haWxyZWFkZXIuaG9tZSA9IA0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvV0VCLUlORi93ZWJ0ZXN0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjM0NzY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QueG1sCkBAIC0wLDAgKzEsMTIwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBwcm9qZWN0IFNZU1RFTSAiZW50aXRpZXMvV2ViVGVzdC5kdGQiIFsKKworICAgICAgICA8IUVOVElUWSB0YXNrZGVmLXdlYnRlc3QgU1lTVEVNICJlbnRpdGllcy90YXNrZGVmLnhtbCI+CisgICAgICAgIDwhRU5USVRZIGNvbmZpZyBTWVNURU0gImVudGl0aWVzL2NvbmZpZy54bWwiPgorCisgICAgICAgIDwhRU5USVRZIHJlZ2lzdGVyLW9wZW4gU1lTVEVNICJmaWxlOi4vZW50aXRpZXMvcmVnaXN0ZXItb3Blbi54bWwiPgorICAgICAgICA8IUVOVElUWSByZWdpc3Rlci1wYWdlIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3JlZ2lzdGVyLXBhZ2UueG1sIj4KKyAgICAgICAgPCFFTlRJVFkgcmVnaXN0ZXItdHJpbGxpYW4gU1lTVEVNICJmaWxlOi4vZW50aXRpZXMvcmVnaXN0ZXItdHJpbGxpYW4ueG1sIj4KKworICAgICAgICA8IUVOVElUWSBzYXZlLWNsaWNrIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3NhdmUtY2xpY2sueG1sIj4KKworICAgICAgICA8IUVOVElUWSB3ZWxjb21lLW9wZW4gU1lTVEVNICJmaWxlOi4vZW50aXRpZXMvd2VsY29tZS1vcGVuLnhtbCI+CisKKyAgICAgICAgXT4KKworPHByb2plY3QgbmFtZT0iTWFpbFJlYWRlciBUcmFpbmluZyBDb3Vyc2UgLSBFeGVyY2lzZSBuYXZpZ2F0aW9uIGFuZCBkYXRhYmFzZSBsb2dpYworLSBDYW5vbyBXZWJUZXN0cyIgYmFzZWRpcj0iLiIgZGVmYXVsdD0iY2xlYW4iPgorCisgICAgPCEtLQorICAgICBDYW5vbyBXZWJUZXN0IGNvbmZpZ3VyYXRpb24gZmlsZSB0byB0ZXN0IG5hdmlnYXRpbmcgYmV0d2VlbiBwYWdlcyBhbmQKKyAgICAgY3JlYXRpbmcgYW5kIGVkaXRpbmcgYW4gYWNjb3VudC4KKworICAgICBUbyBydW4gdGhpcyB0ZXN0LCBmaXJzdCBpbnN0YWxsIHRoZSBDYW5vbyBXZWJ0ZXN0IHBhY2thZ2Ugb24geW91cgorICAgICBsb2NhbCBzeXN0ZW0gW2h0dHA6Ly93ZWJ0ZXN0LmNhbm9vLmNvbV0uCisKKyAgICAgVGhlIGRlZmF1bHQgbG9jYXRpb24gZm9yIHRoaXMgYnVpbGQgZmlsZSBpcyB1bmRlcgorICAgICAiL29wdC9DYW5vby93ZWJ0ZXN0LTEuNyIuCisgICAgIFNlZSB0aGUgd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZSB0byB1c2UgYW5vdGhlciBsb2NhdGlvbi4KKworICAgICBPbmNlIENhbm9vIGlzIGluc3RhbGxlZCwgdGhlIHdlYnRlc3QueG1sIGZpbGUgY2FuIGJlIHJ1biBhcyBhbiBBbnQgYnVpbGQKKyAgICAgZmlsZSAoYW50IC1mIHdlYnRlc3QueG1sKS4KKworICAgICBCeSBkZWZhdWx0LCB0aGUgdGVzdHMgYXJlIGNvbmZpZ3VyZWQgdG8gZmluZCB0aGUgYXBwbGljYXRpb24gdW5kZXIgdGVzdAorICAgICAgYXQgImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9saWItMi0yIi4KKyAgICAgU2VlIHRoZSB3ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlIHRvIHVzZSBhbm90aGVyIGxvY2F0aW9uLgorCisgICAgIERlcGxveSB0aGUgYXBwbGljYXRpb24gdG8geW91ciBjb250YWluZXIsIGFuZCB1c2UgQW50IHRvIHJ1biB0aGUKKyAgICAgd2VidGVzdC54bWwuCisKKyAgICAgVGhlICJjbGVhbiIgdGFyZ2V0IGNhbiBiZSBydW4gdG8gdGVzdCBldmVyeXRoaW5nLCBidXQgd2lsbCBmYWlsIGlmIHJ1biBhZ2FpbiwKKyAgICAgc2luY2UgdGhlIHRlc3QtdXNlciB3aWxsIGFscmVhZHkgYmUgcmVnaXN0ZXJlZC4KKyAgICAgVGhlICJkZWZhdWx0IiB0YXJnZXQgc2tpcHMgcmVnaXN0ZXJhdGlvbiBhbmQgY2FuIGJlIHJ1biBhcyBvZnRlbiBhcyBuZWVkZWQKKyAgICAgYWZ0ZXIgImNsZWFuIiBpcyBydW4gb25jZS4KKworICAgICBUbyByZXNldCB0aGUgWE1MICJkYXRhYmFzZSIsIGVpdGhlciByZWRlcGxveSB0aGUgYXBwbGljYXRpb24gc28gdGhhdCB0aGUKKyAgICAgV0VCLUlORi9jbGFzc2VzL2RhdGFiYXNlLnhtbCBpcyBvdmVyd3JpdHRlbiwKKyAgICAgb3IgdXNlIHRoZSAiY2xlYW4tZGF0YWJhc2UiIHRhcmdldCB0byBvdmVyd3JpdGUgdGhlIGZpbGUuCisgICAgIE9ubHkgdXNlICJjbGVhbi1kYXRhYmFzZSIgd2hlbiB0aGUgc2VydmVyICBpcyBzdG9wcGVkLAorICAgICBhbmQgdGhlbiBzdGFydCBpdCBhZ2FpbiBiZWZvcmUgcnVubmluZyBvdGhlciB0YXJnZXRzLgorCisgICAgIFRoZSB0ZXN0cyBhcmUgYmFzZWQgb24gYSBzZXQgb2YgTWFpbFJlYWRlciBVc2UgQ2FzZXMgbWFpbnRhaW5lZCBhdCB0aGUKKyAgICAgU3RydXRzIFVuaXZlcnNpdHkgc2l0ZQorICAgICBbaHR0cDovL29wZW5zb3VyY2UyLmF0bGFzc2lhbi5jb20vY29uZmx1ZW5jZS9vc3MvZGlzcGxheS9TVFJVVFMvTWFpbFJlYWRlcl0uCisgICAgICovCisgICAgLS0+CisKKyAgICA8IS0tIExvYWQgbG9jYWwgcHJlZmVyZW5jZXMsIGlmIGFueSAtLT4KKyAgICA8cHJvcGVydHkgZmlsZT0id2VidGVzdC5wcm9wZXJ0aWVzIi8+CisKKyAgICA8IS0tIFRoZXNlIHByb3BlcnRpZXMgY2FuIGJlIGN1c3RvbWl6ZWQgdXNpbmcgdmlhIHdlYnRlc3QucHJvcGVydGllcyAtLT4KKyAgICA8IS0tIFNlZSB3ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlIGZvciBhIHN0YXJ0ZXIgZmlsZSAtLT4KKyAgICA8cHJvcGVydHkgbmFtZT0id2VidGVzdC5ob21lIgorICAgICAgICAgICAgICBsb2NhdGlvbj0iL29wdC9DYW5vby93ZWJ0ZXN0LTEuNyIvPgorCisgICAgPHByb3BlcnR5IG5hbWU9Imhvc3QiCisgICAgICAgICAgICAgIHZhbHVlPSJsb2NhbGhvc3QiLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJwb3J0IgorICAgICAgICAgICAgICB2YWx1ZT0iODA4MCIvPgorCisgICAgPHByb3BlcnR5IG5hbWU9ImJhc2VwYXRoIgorICAgICAgICAgICAgICB2YWx1ZT0ibGFiLTItMiIvPgorCisgICAgPHByb3BlcnR5IG5hbWU9Im1haWxyZWFkZXIuaG9tZSIKKyAgICAgICAgICAgICAgbG9jYXRpb249Ii4uLy4uLy4uLyIvPgorCisgICAgPHByb3BlcnR5IG5hbWU9IndlYmFwcHMuaG9tZSIKKyAgICAgICAgICAgICAgbG9jYXRpb249Ii9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcyIvPgorCisgICAgPHByb3BlcnR5IGZpbGU9IiR7d2ViYXBwcy5ob21lfS8ke2Jhc2VwYXRofS9XRUItSU5GL2NsYXNzZXMvcmVzb3VyY2VzLnByb3BlcnRpZXMiLz4KKworCisgICAgPHRhc2tkZWYgZmlsZT0iJHt3ZWJ0ZXN0LmhvbWV9L3dlYnRlc3RUYXNrZGVmcy5wcm9wZXJ0aWVzIj4KKyAgICAgICAgPGNsYXNzcGF0aD4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHt3ZWJ0ZXN0LmhvbWV9IiBpbmNsdWRlcz0iKiovbGliLyouamFyIi8+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7d2VidGVzdC5ob21lfSIgaW5jbHVkZXM9IioqL2xpYi9ydW50aW1lLyouamFyIi8+CisgICAgICAgIDwvY2xhc3NwYXRoPgorICAgIDwvdGFza2RlZj4KKworICAgIDx0YXJnZXQgbmFtZT0iY2xlYW4tZGF0YWJhc2UiCisgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU2V0cyBkYXRhYmFzZS54bWwgdG8gZGVmYXVsdC4gU3RvcCBzZXJ2ZXIsIHJ1biB0YXJnZXQsIGFuZCBTdGFydCBzZXJ2ZXIuIj4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHttYWlscmVhZGVyLmhvbWV9L3NyYy9qYXZhL2RhdGFiYXNlLnhtbCIKKyAgICAgICAgICAgICAgdG9maWxlPSIke3dlYmFwcHMuaG9tZX0vJHtiYXNlcGF0aH0vV0VCLUlORi9jbGFzc2VzL2RhdGFiYXNlLnhtbCIKKyAgICAgICAgICAgICAgb3ZlcndyaXRlPSJ0cnVlIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tIEFERCBZT1VSIFRBUkdFVFMgSEVSRSAtLT4KKworICAgIDx0YXJnZXQgbmFtZT0iY2xlYW4iIGRlc2NyaXB0aW9uPSJPbmx5IHJ1biBhZ2FpbnN0IGEgY2xlYW4gZGF0YWJhc2UiCisgICAgICAgICAgICBkZXBlbmRzPSJSZWdpc3RlciIvPgorCisgICAgPHRhcmdldCBuYW1lPSJSZWdpc3RlciIKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdWJzY3JpYmVycyBjYW4gc3RvcmUgbG9naW4gY3JlZGVudGlhbHMgYW5kIGEKKyAgICAgICAgICAgIHByaW1hcnkgZW1haWwgY29udGFjdCB3aXRoIHRoZSBzeXN0ZW0uIj4KKworICAgICAgICA8d2VidGVzdCBuYW1lPSJSZWdpc3RlciBUcmlsbGlhbiAoTVNTKSI+CisgICAgICAgICAgICAmY29uZmlnOworICAgICAgICAgICAgPHN0ZXBzPgorICAgICAgICAgICAgICAgICZyZWdpc3Rlci1vcGVuOworICAgICAgICAgICAgICAgICZyZWdpc3Rlci10cmlsbGlhbjsKKyAgICAgICAgICAgICAgICA8dmVyaWZ5VGl0bGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJNZW51IHBhZ2UgdGl0bGUiCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PSJNYWlsUmVhZGVyIC0gTWVudSIvPgorICAgICAgICAgICAgPC9zdGVwcz4KKyAgICAgICAgPC93ZWJ0ZXN0PgorCisgICAgPC90YXJnZXQ+CisKKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvaW5kZXguaHRtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjhkNWY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9pbmRleC5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxNRVRBIEhUVFAtRVFVSVY9IlJlZnJlc2giIENPTlRFTlQ9IjA7VVJMPVdlbGNvbWUuYWN0aW9uIj4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD5Mb2FkaW5nIC4uLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8uanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTFlNzg4ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8uanNwCkBAIC0wLDAgKzEsMTQgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+Cis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkhlbGxvPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDI+CisgICAgPHM6dGV4dCBuYW1lPSJoZWxsby5tZXNzYWdlIi8+Cis8L2gyPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9wYWdlcy9Mb2dpbi5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvd2ViYXBwL3BhZ2VzL0xvZ2luLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2Q4OWEwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9wYWdlcy9Mb2dpbi5qc3AKQEAgLTAsMCArMSwyNyBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICAgIDxzOnRleHQgbmFtZT0ibG9naW4udGl0bGUiLz4KKyAgICA8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keSBvbkxvYWQ9InNlbGYuZm9jdXMoKTtkb2N1bWVudC5Mb2dpbl9zYXZlLnVzZXJuYW1lLmZvY3VzKCkiPgorCis8czphY3Rpb25lcnJvci8+Cis8czpmb3JtIGFjdGlvbj0iTG9naW5fc2F2ZSIgdmFsaWRhdGU9InRydWUiPgorICAgIDxzOnRleHRmaWVsZCBrZXk9InVzZXJuYW1lIi8+CisKKyAgICA8czpwYXNzd29yZCBrZXk9InBhc3N3b3JkIiBzaG93UGFzc3dvcmQ9InRydWUiLz4KKworICAgIDxzOnN1Ym1pdCBrZXk9ImJ1dHRvbi5zYXZlIi8+CisKKyAgICA8czpzdWJtaXQgYWN0aW9uPSJMb2dpbl9jYW5jZWwiIGtleT0iYnV0dG9uLmNhbmNlbCIKKyAgICAgICAgICAgICAgb25jbGljaz0iZm9ybS5vbnN1Ym1pdD1udWxsIi8+Cis8L3M6Zm9ybT4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9wYWdlcy9NZW51LmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvcGFnZXMvTWVudS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc0YTZmNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvcGFnZXMvTWVudS5qc3AKQEAgLTAsMCArMSwyNyBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+CisgICAgICAgIDxzOnRleHQgbmFtZT0ibWVudS50aXRsZSIvPgorICAgIDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgzPgorICAgIDxzOnRleHQgbmFtZT0ibWVudS5oZWFkaW5nIi8+CisgICAgPHM6cHJvcGVydHkgdmFsdWU9InVzZXIuZnVsbE5hbWUiLz4KKzwvaDM+Cis8dWw+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249IlJlZ2lzdGVyIiAvPiI+CisgICAgICAgIDxzOnRleHQgbmFtZT0ibWVudS5yZWdpc3RyYXRpb24iLz4KKyAgICA8L2E+CisgICAgPC9saT4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iTG9nb3V0Ii8+Ij4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJtZW51LmxvZ291dCIvPgorICAgIDwvYT4KKzwvdWw+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zcmMvd2ViYXBwL3BhZ2VzL01pc3NpbmcuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9wYWdlcy9NaXNzaW5nLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjFiMDhiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9wYWdlcy9NaXNzaW5nLmpzcApAQCAtMCwwICsxLDEwIEBACis8aHRtbD4KKzxoZWFkPjx0aXRsZT5NaXNzaW5nIEZlYXR1cmU8L3RpdGxlPjwvaGVhZD4KKworPGJvZHk+Cis8cD4KKyAgICBUaGlzIGZlYXR1cmUgaXMgdW5kZXIgY29uc3RydWN0aW9uLgorICAgIFBsZWFzZSB0cnkgYWdhaW4gaW4gdGhlIG5leHQgaW50ZXJhdGlvbi4KKzwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvcGFnZXMvUmVnaXN0ZXIuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9wYWdlcy9SZWdpc3Rlci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJjYzEyZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvcGFnZXMvUmVnaXN0ZXIuanNwCkBAIC0wLDAgKzEsMTI2IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxzOmlmIHRlc3Q9InRhc2s9PSdDcmVhdGUnIj4KKyAgICAgICAgPHRpdGxlPgorICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlIi8+CisgICAgICAgIDwvdGl0bGU+CisgICAgPC9zOmlmPgorICAgIDxzOmlmIHRlc3Q9InRhc2s9PSdFZGl0JyI+CisgICAgICAgIDx0aXRsZT4KKyAgICAgICAgICAgIDxzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQiLz4KKyAgICAgICAgPC90aXRsZT4KKyAgICA8L3M6aWY+Cis8L2hlYWQ+CisKKzxib2R5IG9uTG9hZD0ic2VsZi5mb2N1cygpO2RvY3VtZW50LlJlZ2lzdGVyX3NhdmUudXNlcm5hbWUuZm9jdXMoKSI+CisKKzxzOmFjdGlvbmVycm9yLz4KKzxzOmZvcm0gYWN0aW9uPSJSZWdpc3Rlcl9zYXZlIiB2YWxpZGF0ZT0idHJ1ZSI+CisgICAgPHM6aGlkZGVuIG5hbWU9InRhc2siLz4KKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdDcmVhdGUnIj4KKyAgICAgICAgPHM6dGV4dGZpZWxkIGtleT0idXNlcm5hbWUiLz4KKyAgICA8L3M6aWY+CisgICAgPHM6ZWxzZT4KKyAgICAgICAgPHM6bGFiZWwga2V5PSJ1c2VybmFtZSIvPgorICAgICAgICA8czpoaWRkZW4gbmFtZT0idXNlcm5hbWUiLz4KKyAgICA8L3M6ZWxzZT4KKworICAgIDxzOnBhc3N3b3JkIGtleT0icGFzc3dvcmQiLz4KKworICAgIDxzOnBhc3N3b3JkIGtleT0icGFzc3dvcmQyIi8+CisKKyAgICA8czp0ZXh0ZmllbGQga2V5PSJmdWxsTmFtZSIvPgorCisgICAgPHM6dGV4dGZpZWxkIGtleT0iZnJvbUFkZHJlc3MiLz4KKworICAgIDxzOnRleHRmaWVsZCBrZXk9InJlcGx5VG9BZGRyZXNzIi8+CisKKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdDcmVhdGUnIj4KKyAgICAgICAgPHM6c3VibWl0IGtleT0iYnV0dG9uLnNhdmUiIGFjdGlvbj0iUmVnaXN0ZXJfY3JlYXRlIi8+CisKKyAgICAgICAgPHM6cmVzZXQga2V5PSJidXR0b24ucmVzZXQiLz4KKworICAgICAgICA8czpzdWJtaXQgYWN0aW9uPSJXZWxjb21lIiBrZXk9ImJ1dHRvbi5jYW5jZWwiCisgICAgICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4KKyAgICA8L3M6aWY+CisgICAgPHM6ZWxzZT4KKyAgICAgICAgPHM6c3VibWl0IGtleT0iYnV0dG9uLnNhdmUiLz4KKworICAgICAgICA8czpyZXNldCBrZXk9ImJ1dHRvbi5yZXNldCIvPgorCisgICAgICAgIDxzOnN1Ym1pdCBhY3Rpb249Ik1lbnUiIGtleT0iYnV0dG9uLmNhbmNlbCIKKyAgICAgICAgICAgICAgICAgIG9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCIvPgorICAgIDwvczplbHNlPgorCis8L3M6Zm9ybT4KKworPHM6aWYgdGVzdD0idGFzayA9PSAnRWRpdCciPgorICAgIDxkaXYgYWxpZ249ImNlbnRlciI+CisgICAgICAgIDxoMz4KKyAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy5zdWJzY3JpcHRpb25zIi8+CisgICAgICAgIDwvaDM+CisgICAgPC9kaXY+CisKKyAgICA8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSI+CisKKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIzMCUiPgorICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy5ob3N0Ii8+CisgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIyNSUiPgorICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy51c2VyIi8+CisgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxMCUiPgorICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy50eXBlIi8+CisgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxMCUiPgorICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy5hdXRvQ29ubmVjdCIvPgorICAgICAgICAgICAgPC90aD4KKyAgICAgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTUlIj4KKyAgICAgICAgICAgICAgICA8czp0ZXh0IG5hbWU9ImhlYWRpbmcuYWN0aW9uIi8+CisgICAgICAgICAgICA8L3RoPgorICAgICAgICA8L3RyPgorCisgICAgICAgIDxzOml0ZXJhdG9yIHZhbHVlPSJ1c2VyLnN1YnNjcmlwdGlvbnMiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgICAgIDxzOnByb3BlcnR5IHZhbHVlPSJob3N0Ii8+CisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgICAgICA8czpwcm9wZXJ0eSB2YWx1ZT0idXNlcm5hbWUiLz4KKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgICAgICAgICAgICAgPHM6cHJvcGVydHkgdmFsdWU9InR5cGUiLz4KKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgICAgICAgICAgICAgPHM6cHJvcGVydHkgdmFsdWU9ImF1dG9Db25uZWN0Ii8+CisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisKKyAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iU3Vic2NyaWJlX2RlbGV0ZSI+PHM6cGFyYW0gbmFtZT0iaG9zdCIgdmFsdWU9Imhvc3QiLz48L3M6dXJsPiI+CisgICAgICAgICAgICAgICAgICAgICAgICA8czp0ZXh0IG5hbWU9InJlZ2lzdHJhdGlvbi5kZWxldGVTdWJzY3JpcHRpb24iLz4KKyAgICAgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgICAgICAgICAmbmJzcDsKKyAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iU3Vic2NyaWJlX2VkaXQiPjxzOnBhcmFtIG5hbWU9Imhvc3QiIHZhbHVlPSJob3N0Ii8+PC9zOnVybD4iPgorICAgICAgICAgICAgICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24uZWRpdFN1YnNjcmlwdGlvbiIvPgorICAgICAgICAgICAgICAgICAgICA8L2E+CisKKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC9zOml0ZXJhdG9yPgorCisgICAgPC90YWJsZT4KKworICAgIDxhIGhyZWY9IjxzOnVybCBhY3Rpb249IlN1YnNjcmliZSIvPiI+CisgICAgICAgIDxzOnRleHQKKyAgICAgICAgICAgICAgICBuYW1lPSJyZWdpc3RyYXRpb24uYWRkU3Vic2NyaXB0aW9uIi8+CisgICAgPC9hPgorCis8L3M6aWY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvcGFnZXMvU3Vic2NyaWJlLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvcGFnZXMvU3Vic2NyaWJlLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OWY4YjEwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9wYWdlcy9TdWJzY3JpYmUuanNwCkBAIC0wLDAgKzEsNjkgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+Cis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHM6aWYgdGVzdD0idGFzaz09J0NyZWF0ZSciPgorICAgICAgICA8dGl0bGU+CisgICAgICAgICAgICA8czp0ZXh0IG5hbWU9InN1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGUiLz4KKyAgICAgICAgPC90aXRsZT4KKyAgICA8L3M6aWY+CisgICAgPHM6aWYgdGVzdD0idGFzaz09J0VkaXQnIj4KKyAgICAgICAgPHRpdGxlPgorICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJzdWJzY3JpcHRpb24udGl0bGUuZWRpdCIvPgorICAgICAgICA8L3RpdGxlPgorICAgIDwvczppZj4KKyAgICA8czppZiB0ZXN0PSJ0YXNrPT0nRGVsZXRlJyI+CisgICAgICAgIDx0aXRsZT4KKyAgICAgICAgICAgIDxzOnRleHQgbmFtZT0ic3Vic2NyaXB0aW9uLnRpdGxlLmRlbGV0ZSIvPgorICAgICAgICA8L3RpdGxlPgorICAgIDwvczppZj4KKzwvaGVhZD4KKworPGJvZHkgb25Mb2FkPSJzZWxmLmZvY3VzKCk7ZG9jdW1lbnQuU3Vic2NyaWJlX3NhdmUudXNlcm5hbWUuZm9jdXMoKSI+CisKKzxzOmFjdGlvbmVycm9yLz4KKzxzOmZvcm0gYWN0aW9uPSJTdWJzY3JpYmVfc2F2ZSIgdmFsaWRhdGU9InRydWUiPgorICAgIDxzOmhpZGRlbiBuYW1lPSJ0YXNrIi8+CisgICAgPHM6bGFiZWwga2V5PSJ1c2VyLnVzZXJuYW1lIi8+CisKKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdDcmVhdGUnIj4KKyAgICAgICAgPHM6dGV4dGZpZWxkIGtleT0ibWFpbEhvc3RuYW1lIiBuYW1lPSJob3N0Ii8+CisgICAgPC9zOmlmPgorICAgIDxzOmVsc2U+CisgICAgICAgIDxzOmxhYmVsIGtleT0ibWFpbEhvc3RuYW1lIiBuYW1lPSJob3N0Ii8+CisgICAgICAgIDxzOmhpZGRlbiBuYW1lPSJob3N0Ii8+CisgICAgPC9zOmVsc2U+CisKKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdEZWxldGUnIj4KKyAgICAgICAgPHM6bGFiZWwga2V5PSJtYWlsVXNlcm5hbWUiCisgICAgICAgICAgICAgICAgIG5hbWU9InN1YnNjcmlwdGlvbi51c2VybmFtZSIvPgorICAgICAgICA8czpsYWJlbCBrZXk9Im1haWxQYXNzd29yZCIKKyAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnBhc3N3b3JkIi8+CisgICAgICAgIDxzOmxhYmVsIGtleT0ibWFpbFNlcnZlclR5cGUiCisgICAgICAgICAgICAgICAgIG5hbWU9InN1YnNjcmlwdGlvbi50eXBlIi8+CisgICAgICAgIDxzOmxhYmVsIGtleT0iYXV0b0Nvbm5lY3QiCisgICAgICAgICAgICAgICAgIG5hbWU9InN1YnNjcmlwdGlvbi5hdXRvQ29ubmVjdCIvPgorICAgICAgICA8czpzdWJtaXQga2V5PSJidXR0b24uY29uZmlybSIvPgorICAgIDwvczppZj4KKyAgICA8czplbHNlPgorICAgICAgICA8czp0ZXh0ZmllbGQga2V5PSJtYWlsVXNlcm5hbWUiCisgICAgICAgICAgICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24udXNlcm5hbWUiLz4KKyAgICAgICAgPHM6dGV4dGZpZWxkIGtleT0ibWFpbFBhc3N3b3JkIgorICAgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnBhc3N3b3JkIi8+CisgICAgICAgIDxzOnNlbGVjdCBrZXk9Im1haWxTZXJ2ZXJUeXBlIgorICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnR5cGUiIGxpc3Q9InR5cGVzIi8+CisgICAgICAgIDxzOmNoZWNrYm94IGtleT0iYXV0b0Nvbm5lY3QiCisgICAgICAgICAgICAgICAgICAgIG5hbWU9InN1YnNjcmlwdGlvbi5hdXRvQ29ubmVjdCIvPgorICAgICAgICA8czpzdWJtaXQga2V5PSJidXR0b24uc2F2ZSIvPgorICAgICAgICA8czpyZXNldCBrZXk9ImJ1dHRvbi5yZXNldCIvPgorICAgIDwvczplbHNlPgorCisgICAgPHM6c3VibWl0IGFjdGlvbj0iUmVnaXN0ZXIiCisgICAgICAgICAgICAgIGtleT0iYnV0dG9uLmNhbmNlbCIKKyAgICAgICAgICAgICAgb25jbGljaz0iZm9ybS5vbnN1Ym1pdD1udWxsIi8+Cis8L3M6Zm9ybT4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi9zdWJzY3JpYmUvc3JjL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvcGFnZXMvV2VsY29tZS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTY5YjllYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3NyYy93ZWJhcHAvcGFnZXMvV2VsY29tZS5qc3AKQEAgLTAsMCArMSw1MSBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIvPgorICAgIDx0aXRsZT4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJpbmRleC50aXRsZSIvPgorICAgIDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgzPk1haWxSZWFkZXIgT3B0aW9uczwvaDM+CisKKzx1bD4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iUmVnaXN0ZXIiLz4iPgorICAgICAgICA8czp0ZXh0CisgICAgICAgICAgICAgICAgbmFtZT0iaW5kZXgucmVnaXN0cmF0aW9uIi8+CisgICAgPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249IkxvZ2luIi8+Ij4KKyAgICAgICAgPHM6dGV4dAorICAgICAgICAgICAgICAgIG5hbWU9ImluZGV4LmxvZ2luIi8+CisgICAgPC9hPjwvbGk+Cis8L3VsPgorCis8aDM+TGFuZ3VhZ2UgT3B0aW9uczwvaDM+Cis8dWw+CisgICAgPGxpPgorICAgICAgICA8czp1cmwgaWQ9ImVuIiBhY3Rpb249IldlbGNvbWUiPgorICAgICAgICAgICAgPHM6cGFyYW0gbmFtZT0icmVxdWVzdF9sb2NhbGUiPmVuPC9zOnBhcmFtPgorICAgICAgICA8L3M6dXJsPgorICAgICAgICA8czphIGhyZWY9IiV7ZW59Ij5FbmdsaXNoPC9zOmE+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICAgIDxzOnVybCBpZD0iamEiIGFjdGlvbj0iV2VsY29tZSI+CisgICAgICAgICAgICA8czpwYXJhbSBuYW1lPSJyZXF1ZXN0X2xvY2FsZSI+amE8L3M6cGFyYW0+CisgICAgICAgIDwvczp1cmw+CisgICAgICAgIDxzOmEgaHJlZj0iJXtqYX0iPkphcGFuZXNlPC9zOmE+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICAgIDxzOnVybCBpZD0icnUiIGFjdGlvbj0iV2VsY29tZSI+CisgICAgICAgICAgICA8czpwYXJhbSBuYW1lPSJyZXF1ZXN0X2xvY2FsZSI+cnU8L3M6cGFyYW0+CisgICAgICAgIDwvczp1cmw+CisgICAgICAgIDxzOmEgaHJlZj0iJXtydX0iPlJ1c3NpYW48L3M6YT4KKyAgICA8L2xpPgorPC91bD4KKzxoci8+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvc3Vic2NyaWJlL3N1YnNjcmliZS5pbWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zdWJzY3JpYmUuaW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1YTA0MDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3N1YnNjcmliZS9zdWJzY3JpYmUuaW1sCkBAIC0wLDAgKzEsNjggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPG1vZHVsZSB2ZXJzaW9uPSI0IiByZWxhdGl2ZVBhdGhzPSJ0cnVlIiB0eXBlPSJKMkVFX1dFQl9NT0RVTEUiIGoyZWUtaW50ZWdyYXRpb249IlRvbWNhdCBTZXJ2ZXIiPg0KKyAgPGNvbXBvbmVudCBuYW1lPSJBcHBTZXJ2ZXJTcGVjaWZpY1ZhbGlkYXRvcnNNYW5hZ2VyIiAvPg0KKyAgPGNvbXBvbmVudCBuYW1lPSJNb2R1bGVSb290TWFuYWdlciIgLz4NCisgIDxjb21wb25lbnQgbmFtZT0iTmV3TW9kdWxlUm9vdE1hbmFnZXIiIGluaGVyaXQtY29tcGlsZXItb3V0cHV0PSJmYWxzZSI+DQorICAgIDxvdXRwdXQgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkLy4uLy4uLy4uLy4uLy4uLy4uLy4uL29wdC9BcGFjaGUvVG9tY2F0LTUuNS93ZWJhcHBzL3N1YnNjcmliZS9XRUItSU5GL2NsYXNzZXMiIC8+DQorICAgIDxleGNsdWRlLW91dHB1dCAvPg0KKyAgICA8ZXhwbG9kZWQgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkLy4uLy4uLy4uLy4uLy4uLy4uLy4uL29wdC9BcGFjaGUvVG9tY2F0LTUuNS93ZWJhcHBzL3N1YnNjcmliZSIgLz4NCisgICAgPGV4Y2x1ZGUtZXhwbG9kZWQgLz4NCisgICAgPGNvbnRlbnQgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkIj4NCisgICAgICA8c291cmNlRm9sZGVyIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvamF2YSIgaXNUZXN0U291cmNlPSJmYWxzZSIgLz4NCisgICAgICA8c291cmNlRm9sZGVyIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvdGVzdCIgaXNUZXN0U291cmNlPSJ0cnVlIiAvPg0KKyAgICA8L2NvbnRlbnQ+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImluaGVyaXRlZEpkayIgLz4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ic291cmNlRm9sZGVyIiBmb3JUZXN0cz0iZmFsc2UiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImxpYnJhcnkiIG5hbWU9IlN0cnV0czIiIGxldmVsPSJwcm9qZWN0IiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJNYWlscmVhZGVyLWRhbyIgbGV2ZWw9InByb2plY3QiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImxpYnJhcnkiIG5hbWU9InNlcnZsZXQtYXBpIiBsZXZlbD0iYXBwbGljYXRpb24iIC8+DQorICAgIDxvcmRlckVudHJ5UHJvcGVydGllcyAvPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IldlYk1vZHVsZUJ1aWxkQ29tcG9uZW50Ij4NCisgICAgPHNldHRpbmcgbmFtZT0iRVhQTE9ERURfVVJMIiB2YWx1ZT0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy9zdWJzY3JpYmUiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkVYUExPREVEX0VOQUJMRUQiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJKQVJfVVJMIiB2YWx1ZT0iZmlsZTovLyIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iSkFSX0VOQUJMRUQiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iU1lOQ19FWFBMT0RFRF9ESVIiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJCVUlMRF9NT0RVTEVfT05fRlJBTUVfREVBQ1RJVkFUSU9OIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkJVSUxEX0VYVEVSTkFMX0RFUEVOREVOQ0lFUyIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJSVU5fSkFTUEVSX1ZBTElEQVRJT04iIHZhbHVlPSJmYWxzZSIgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJNb2R1bGVQcm9wZXJ0aWVzIj4NCisgICAgPGNvbnRhaW5lckVsZW1lbnQgdHlwZT0ibGlicmFyeSIgbmFtZT0ianVuaXQiIGxldmVsPSJhcHBsaWNhdGlvbiI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMCIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9IiZsdDtOL0EmZ3Q7IiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Ik1haWxyZWFkZXItZGFvIiBsZXZlbD0icHJvamVjdCI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9InNlcnZsZXQtYXBpIiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMCIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9IiZsdDtOL0EmZ3Q7IiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9IlN0cnV0czIiIGxldmVsPSJwcm9qZWN0Ij4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjEiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSIvV0VCLUlORi9saWIiIC8+DQorICAgIDwvY29udGFpbmVyRWxlbWVudD4NCisgICAgPGRlcGxveW1lbnREZXNjcmlwdG9yIG5hbWU9IndlYi54bWwiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbCIgb3B0aW9uYWw9ImZhbHNlIiB2ZXJzaW9uPSIyLjMiIC8+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSJjb250ZXh0LnhtbCIgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL01FVEEtSU5GL2NvbnRleHQueG1sIiBvcHRpb25hbD0iZmFsc2UiIHZlcnNpb249IjUueCIgLz4NCisgICAgPGRlcGxveW1lbnREZXNjcmlwdG9yIG5hbWU9IiIgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL01FVEEtSU5GL2NvbnRleHQueG1sIiBvcHRpb25hbD0iZmFsc2UiPg0KKyAgICAgIDxvcHRpb24gbmFtZT0iREVGQVVMVF9ESVIiIHZhbHVlPSJXRUItSU5GIiAvPg0KKyAgICAgIDxvcHRpb24gbmFtZT0iTkFNRSIgdmFsdWU9IiIgLz4NCisgICAgICA8b3B0aW9uIG5hbWU9IkRFU0NSSVBUSU9OIiB2YWx1ZT0iIiAvPg0KKyAgICA8L2RlcGxveW1lbnREZXNjcmlwdG9yPg0KKyAgICA8d2Vicm9vdHM+DQorICAgICAgPHJvb3QgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL3NyYy93ZWJhcHAiIHJlbGF0aXZlPSIvIiAvPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvamF2YSIgcmVsYXRpdmU9Ii9XRUItSU5GL3NyYy9qYXZhIiAvPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvdGVzdCIgcmVsYXRpdmU9Ii9XRUItSU5GL3NyYy90ZXN0IiAvPg0KKyAgICA8L3dlYnJvb3RzPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IldlYmxvZ2ljV2ViTW9kdWxlUHJvcGVydGllcyIgLz4NCis8L21vZHVsZT4NCisNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL01FVEEtSU5GL2NvbnRleHQueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9NRVRBLUlORi9jb250ZXh0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBiNWQwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9NRVRBLUlORi9jb250ZXh0LnhtbApAQCAtMCwwICsxLDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Q29udGV4dCBwYXRoPSIvIj4KKzwvQ29udGV4dD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvQXV0aGVudGljYXRpb25JbnRlcmNlcHRvci5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9BdXRoZW50aWNhdGlvbkludGVyY2VwdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYwODg4OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvQXV0aGVudGljYXRpb25JbnRlcmNlcHRvci5qYXZhCkBAIC0wLDAgKzEsMzEgQEAKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb247CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uSW52b2NhdGlvbjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5pbnRlcmNlcHRvci5JbnRlcmNlcHRvcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitwdWJsaWMgY2xhc3MgQXV0aGVudGljYXRpb25JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEludGVyY2VwdG9yIHsKKworICAgIHB1YmxpYyB2b2lkIGRlc3Ryb3koKSB7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgaW5pdCgpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGludGVyY2VwdChBY3Rpb25JbnZvY2F0aW9uIGFjdGlvbkludm9jYXRpb24pIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIE1hcCBzZXNzaW9uID0gYWN0aW9uSW52b2NhdGlvbi5nZXRJbnZvY2F0aW9uQ29udGV4dCgpLmdldFNlc3Npb24oKTsKKworICAgICAgICBVc2VyIHVzZXIgPSAoVXNlcikgc2Vzc2lvbi5nZXQoTWFpbFJlYWRlclN1cHBvcnQuVVNFUl9LRVkpOworCisgICAgICAgIGJvb2xlYW4gaXNBdXRoZW50aWNhdGVkID0gKG51bGwgIT0gdXNlcikgJiYgKG51bGwgIT0gdXNlci5nZXREYXRhYmFzZSgpKTsKKworICAgICAgICBpZiAoIWlzQXV0aGVudGljYXRlZCkgeworICAgICAgICAgICAgcmV0dXJuIEFjdGlvbi5MT0dJTjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBhY3Rpb25JbnZvY2F0aW9uLmludm9rZSgpOworICAgICAgICB9CisKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9EYXRhYmFzZUxpc3RlbmVyLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL0RhdGFiYXNlTGlzdGVuZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZmE2NGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9EYXRhYmFzZUxpc3RlbmVyLmphdmEKQEAgLTAsMCArMSwyMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMTk5OS0yMDAyLDIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKiAkSWQ6IEFwcGxpY2F0aW9uTGlzdGVuZXIuamF2YSAzNzIwODcgMjAwNi0wMS0yNSAwMzozODo0MlogY3JhaWdtY2MgJAorICovCisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLmltcGwubWVtb3J5Lk1lbW9yeVVzZXJEYXRhYmFzZTsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dEV2ZW50OworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHRMaXN0ZW5lcjsKK2ltcG9ydCBqYXZhLmlvLio7CisKKy8qKgorICogPHA+PGNvZGU+U2VydmxldENvbnRleHRMaXN0ZW5lcjwvY29kZT4gdGhhdCBpbml0aWFsaXplcyBhbmQgZmluYWxpemVzIHRoZQorICogcGVyc2lzdGVudCBzdG9yYWdlIG9mIFVzZXIgYW5kIFN1YnNjcmlwdGlvbiBpbmZvcm1hdGlvbiBmb3IgdGhlIFN0cnV0cworICogRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbiwgdXNpbmcgYW4gaW4tbWVtb3J5IGRhdGFiYXNlIGJhY2tlZCBieSBhbiBYTUwKKyAqIGZpbGUuPC9wPgorICogPHAvPgorICogPHA+PHN0cm9uZz5JTVBMRU1FTlRBVElPTiBXQVJOSU5HPC9zdHJvbmc+IC0gSWYgdGhpcyB3ZWIgYXBwbGljYXRpb24gaXMgcnVuCisgKiBmcm9tIGEgV0FSIGZpbGUsIG9yIGluIGFub3RoZXIgZW52aXJvbm1lbnQgd2hlcmUgcmVhZGluZyBhbmQgd3JpdGluZyBvZiB0aGUKKyAqIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSBpcyBpbXBvc3NpYmxlLCB0aGUgaW5pdGlhbCBjb250ZW50cyB3aWxsIGJlIGNvcGllZAorICogdG8gYSBmaWxlIGluIHRoZSB3ZWIgYXBwbGljYXRpb24gdGVtcG9yYXJ5IGRpcmVjdG9yeSBwcm92aWRlZCBieSB0aGUKKyAqIGNvbnRhaW5lci4gIFRoaXMgaXMgZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMgb25seSAtIHlvdSBzaG91bGQKKyAqIDxzdHJvbmc+Tk9UPC9zdHJvbmc+IGFzc3VtZSB0aGF0IGZpbGVzIHdyaXR0ZW4gaGVyZSB3aWxsIHN1cnZpdmUgYSByZXN0YXJ0CisgKiBvZiB5b3VyIHNlcnZsZXQgY29udGFpbmVyLjwvcD4KKyAqIDxwLz4KKyAqIDxwPlRoaXMgY2xhc3Mgd2FzIGJvcnJvd2VkIGZyb20gdGhlIFNoYWxlIE1haWxyZWFkZXIuIENoYW5nZXMgd2VyZTo8L3A+CisgKiA8cC8+CisgKiA8dWw+CisgKiA8cC8+CisgKiA8bGk+UGF0aCB0byBkYXRhYmFzZS54bWwgKHVuZGVyIGNsYXNzZXMgaGVyZSkuIDwvbGk+CisgKiA8cC8+CisgKiA8bGk+Q2xhc3MgdG8gc3RvcmUgcHJvdG9jb2wgbGlzdCAoYW4gYXJyYXkgaGVyZSkuIDwvbGk+CisgKiA8cC8+CisgKiA8L3VsPgorICogPHAvPgorICogREVWRUxPUE1FTlQgTk9URSAtIEFub3RoZXIgYXBwcm9hY2ggd291bGQgYmUgdG8gaW5zdGFudGlhdGUgdGhlIGRhdGFiYXNlIHZpYSBTcHJpbmcuCisgKiA8L3A+CisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIERhdGFiYXNlTGlzdGVuZXIgaW1wbGVtZW50cyBTZXJ2bGV0Q29udGV4dExpc3RlbmVyIHsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNYW5pZmVzdCBDb25zdGFudHMKKworCisgICAgLyoqCisgICAgICogPHA+QXBwaWNhdGlvbiBzY29wZSBhdHRyaWJ1dGUga2V5IHVuZGVyIHdoaWNoIHRoZSBpbi1tZW1vcnkgdmVyc2lvbiBvZgorICAgICAqIG91ciBkYXRhYmFzZSBpcyBzdG9yZWQuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFCQVNFX0tFWSA9ICJkYXRhYmFzZSI7CisKKworICAgIC8qKgorICAgICAqIDxwPkFwcGxpY2F0aW9uIHNjb3BlIGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggdGhlIHZhbGlkIHNlbGVjdGlvbgorICAgICAqIGl0ZW1zIGZvciB0aGUgcHJvdG9jb2wgcHJvcGVydHkgaXMgc3RvcmVkLjwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQUk9UT0NPTFNfS0VZID0gInByb3RvY29scyI7CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSW5zdGFuY2UgVmFyaWFibGVzCisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSA8Y29kZT5TZXJ2bGV0Q29udGV4dDwvY29kZT4gZm9yIHRoaXMgd2ViIGFwcGxpY2F0aW9uLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFNlcnZsZXRDb250ZXh0IGNvbnRleHQgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiBUaGUge0BsaW5rIE1lbW9yeVVzZXJEYXRhYmFzZX0gb2JqZWN0IHdlIGNvbnN0cnVjdCBhbmQgbWFrZSBhdmFpbGFibGUuCisgICAgICovCisgICAgcHJpdmF0ZSBNZW1vcnlVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiA8cD5Mb2dnaW5nIG91dHB1dCBmb3IgdGhpcyBwbHVnIGluIGluc3RhbmNlLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyh0aGlzLmdldENsYXNzKCkpOworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm9wZXJ0aWVzCisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCBvZiBvdXIgcGVyc2lzdGVudCBkYXRhYmFzZSBzdG9yYWdlCisgICAgICogZmlsZS48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0aG5hbWUgPSAiL1dFQi1JTkYvY2xhc3Nlcy9kYXRhYmFzZS54bWwiOworCisgICAgLyoqCisgICAgICogPHA+UmV0dXJuIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIHRvIHRoZSBkYXRhYmFzZS48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFwcGxpY2F0aW9uIHJlc291cmNlIHBhdGggcGF0aCB0byB0aGUgZGF0YWJhc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhdGhuYW1lKCkgeworICAgICAgICByZXR1cm4gKHRoaXMucGF0aG5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNldCB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCB0byB0aGUgZGF0YWJhc2UuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHBhdGhuYW1lIHRvIHRoZSBkYXRhYmFzZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhdGhuYW1lKFN0cmluZyBwYXRobmFtZSkgeworICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7CisgICAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNlcnZsZXRDb250ZXh0TGlzdGVuZXIgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiA8cD5HcmFjZWZ1bGx5IHNodXQgZG93biB0aGlzIGRhdGFiYXNlLCByZWxlYXNpbmcgYW55IHJlc291cmNlcyB0aGF0CisgICAgICogd2VyZSBhbGxvY2F0ZWQgYXQgaW5pdGlhbGl6YXRpb24uPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGV2ZW50IFNlcnZsZXRDb250ZXh0RXZlbnQgdG8gcHJvY2VzcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbnRleHREZXN0cm95ZWQoU2VydmxldENvbnRleHRFdmVudCBldmVudCkgeworCisgICAgICAgIGxvZy5pbmZvKCJGaW5hbGl6aW5nIG1lbW9yeSBkYXRhYmFzZSBwbHVnIGluIik7CisKKyAgICAgICAgaWYgKGRhdGFiYXNlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZGF0YWJhc2UuY2xvc2UoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nLmVycm9yKCJDbG9zaW5nIG1lbW9yeSBkYXRhYmFzZSIsIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoREFUQUJBU0VfS0VZKTsKKyAgICAgICAgY29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoUFJPVE9DT0xTX0tFWSk7CisgICAgICAgIGRhdGFiYXNlID0gbnVsbDsKKyAgICAgICAgY29udGV4dCA9IG51bGw7CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIDxwPkluaXRpYWxpemUgYW5kIGxvYWQgb3VyIGluaXRpYWwgZGF0YWJhc2UgZnJvbSBwZXJzaXN0ZW50CisgICAgICogc3RvcmFnZS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIGNvbnRleHQgaW5pdGlhbGl6YXRpb24gZXZlbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb250ZXh0SW5pdGlhbGl6ZWQoU2VydmxldENvbnRleHRFdmVudCBldmVudCkgeworCisgICAgICAgIGxvZy5pbmZvKCJJbml0aWFsaXppbmcgbWVtb3J5IGRhdGFiYXNlIHBsdWcgaW4gZnJvbSAnIiArCisgICAgICAgICAgICAgICAgcGF0aG5hbWUgKyAiJyIpOworCisgICAgICAgIC8vIFJlbWVtYmVyIG91ciBhc3NvY2lhdGVkIFNlcnZsZXRDb250ZXh0CisgICAgICAgIHRoaXMuY29udGV4dCA9IGV2ZW50LmdldFNlcnZsZXRDb250ZXh0KCk7CisKKyAgICAgICAgLy8gQ29uc3RydWN0IGEgbmV3IGRhdGFiYXNlIGFuZCBtYWtlIGl0IGF2YWlsYWJsZQorICAgICAgICBkYXRhYmFzZSA9IG5ldyBNZW1vcnlVc2VyRGF0YWJhc2UoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gY2FsY3VsYXRlUGF0aCgpOworICAgICAgICAgICAgaWYgKGxvZy5pc0RlYnVnRW5hYmxlZCgpKSB7CisgICAgICAgICAgICAgICAgbG9nLmRlYnVnKCIgTG9hZGluZyBkYXRhYmFzZSBmcm9tICciICsgcGF0aCArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkYXRhYmFzZS5zZXRQYXRobmFtZShwYXRoKTsKKyAgICAgICAgICAgIGRhdGFiYXNlLm9wZW4oKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZy5lcnJvcigiT3BlbmluZyBtZW1vcnkgZGF0YWJhc2UiLCBlKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkNhbm5vdCBsb2FkIGRhdGFiYXNlIGZyb20gJyIgKworICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSArICInOiAiICsgZSk7CisgICAgICAgIH0KKyAgICAgICAgY29udGV4dC5zZXRBdHRyaWJ1dGUoREFUQUJBU0VfS0VZLCBkYXRhYmFzZSk7CisKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcml2YXRlIE1ldGhvZHMKKworCisgICAgLyoqCisgICAgICogPHA+Q2FsY3VsYXRlIGFuZCByZXR1cm4gYW4gYWJzb2x1dGUgcGF0aG5hbWUgdG8gdGhlIFhNTCBmaWxlIHRvIGNvbnRhaW4KKyAgICAgKiBvdXIgcGVyc2lzdGVudCBzdG9yYWdlIGluZm9ybWF0aW9uLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gQWJzb2x1dGUgcGF0aCB0byBYTUwgZmlsZS4KKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgY2FsY3VsYXRlUGF0aCgpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIC8vIENhbiB3ZSBhY2Nlc3MgdGhlIGRhdGFiYXNlIHZpYSBmaWxlIEkvTz8KKyAgICAgICAgU3RyaW5nIHBhdGggPSBjb250ZXh0LmdldFJlYWxQYXRoKHBhdGhuYW1lKTsKKyAgICAgICAgaWYgKHBhdGggIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIChwYXRoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIERvZXMgYSBjb3B5IG9mIHRoaXMgZmlsZSBhbHJlYWR5IGV4aXN0IGluIG91ciB0ZW1wb3JhcnkgZGlyZWN0b3J5CisgICAgICAgIEZpbGUgZGlyID0gKEZpbGUpCisgICAgICAgICAgICAgICAgY29udGV4dC5nZXRBdHRyaWJ1dGUoImphdmF4LnNlcnZsZXQuY29udGV4dC50ZW1wZGlyIik7CisgICAgICAgIEZpbGUgZmlsZSA9IG5ldyBGaWxlKGRpciwgInN0cnV0cy1leGFtcGxlLWRhdGFiYXNlLnhtbCIpOworICAgICAgICBpZiAoZmlsZS5leGlzdHMoKSkgeworICAgICAgICAgICAgcmV0dXJuIChmaWxlLmdldEFic29sdXRlUGF0aCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvcHkgdGhlIHN0YXRpYyByZXNvdXJjZSB0byBhIHRlbXBvcmFyeSBmaWxlIGFuZCByZXR1cm4gaXRzIHBhdGgKKyAgICAgICAgSW5wdXRTdHJlYW0gaXMgPQorICAgICAgICAgICAgICAgIGNvbnRleHQuZ2V0UmVzb3VyY2VBc1N0cmVhbShwYXRobmFtZSk7CisgICAgICAgIEJ1ZmZlcmVkSW5wdXRTdHJlYW0gYmlzID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oaXMsIDEwMjQpOworICAgICAgICBGaWxlT3V0cHV0U3RyZWFtIG9zID0KKyAgICAgICAgICAgICAgICBuZXcgRmlsZU91dHB1dFN0cmVhbShmaWxlKTsKKyAgICAgICAgQnVmZmVyZWRPdXRwdXRTdHJlYW0gYm9zID0gbmV3IEJ1ZmZlcmVkT3V0cHV0U3RyZWFtKG9zLCAxMDI0KTsKKyAgICAgICAgYnl0ZSBidWZmZXJbXSA9IG5ldyBieXRlWzEwMjRdOworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IG4gPSBiaXMucmVhZChidWZmZXIpOworICAgICAgICAgICAgaWYgKG4gPD0gMCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9zLndyaXRlKGJ1ZmZlciwgMCwgbik7CisgICAgICAgIH0KKyAgICAgICAgYm9zLmNsb3NlKCk7CisgICAgICAgIGJpcy5jbG9zZSgpOworICAgICAgICByZXR1cm4gKGZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpOworCisgICAgfQorCisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvSGVsbG8uamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvSGVsbG8uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YmQzNTA2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9IZWxsby5qYXZhCkBAIC0wLDAgKzEsMTYgQEAKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25TdXBwb3J0OworCisvKioKKyAqIEV4YW1wbGUgQWN0aW9uIGNsYXNzLgorICovCitwdWJsaWMgY2xhc3MgSGVsbG8gZXh0ZW5kcyBBY3Rpb25TdXBwb3J0IHsKKworICAgIC8qKgorICAgICAqIEFuIGV4YW1wbGUgaW1wbGVtZW50YXRpb24gdGhhdCBkb2VzIG5vdGhpbmcgYW5kIHJldHVybnMgInN1Y2Nlc3MiLgorICAgICAqCisgICAgICogQHJldHVybiB7QGxpbmsgI1NVQ0NFU1N9CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvTG9naW4tdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL0xvZ2luLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkOTM1OWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL0xvZ2luLXZhbGlkYXRpb24ueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIiAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLXZhbGlkYXRvci0xLjAuMi5kdGQiPgorCis8dmFsaWRhdG9ycz4KKyAgICA8ZmllbGQgbmFtZT0idXNlcm5hbWUiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IudXNlcm5hbWUucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKyAgICA8ZmllbGQgbmFtZT0icGFzc3dvcmQiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucGFzc3dvcmQucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKzwvdmFsaWRhdG9ycz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvTG9naW4uamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvTG9naW4uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTZhNjRjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9Mb2dpbi5qYXZhCkBAIC0wLDAgKzEsMjIgQEAKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CisKK3B1YmxpYyBjbGFzcyBMb2dpbiBleHRlbmRzIE1haWxSZWFkZXJTdXBwb3J0IHsKKworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHRocm93cyBFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24geworCisgICAgICAgIFVzZXIgdXNlciA9IGZpbmRVc2VyKGdldFVzZXJuYW1lKCksIGdldFBhc3N3b3JkKCkpOworCisgICAgICAgIGlmICh1c2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgIHNldFVzZXIodXNlcik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaGFzRXJyb3JzKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBJTlBVVDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBTVUNDRVNTOworCisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL0xvZ291dC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9Mb2dvdXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjE3ZjEwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9Mb2dvdXQuamF2YQpAQCAtMCwwICsxLDkgQEAKK3B1YmxpYyBjbGFzcyBMb2dvdXQgZXh0ZW5kcyBNYWlsUmVhZGVyU3VwcG9ydCB7CisKKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB7CisKKyAgICAgICAgc2V0VXNlcihudWxsKTsKKworICAgICAgICByZXR1cm4gU1VDQ0VTUzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL01haWxSZWFkZXJTdXBwb3J0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL01haWxSZWFkZXJTdXBwb3J0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGZhMTYzYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvTWFpbFJlYWRlclN1cHBvcnQuamF2YQpAQCAtMCwwICsxLDMyNSBAQAoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkudXRpbC5CZWFuVXRpbHM7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uU3VwcG9ydDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlN1YnNjcmlwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyRGF0YWJhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5pbXBsLm1lbW9yeS5NZW1vcnlTdWJzY3JpcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmludGVyY2VwdG9yLkFwcGxpY2F0aW9uQXdhcmU7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmludGVyY2VwdG9yLlNlc3Npb25Bd2FyZTsKKworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK3B1YmxpYyBjbGFzcyBNYWlsUmVhZGVyU3VwcG9ydCBleHRlbmRzIEFjdGlvblN1cHBvcnQKKyAgICAgICAgaW1wbGVtZW50cyBBcHBsaWNhdGlvbkF3YXJlLCBTZXNzaW9uQXdhcmUgeworCisgICAgLy8gLS0tLSBSZWdpc3RlciBmb3JtIHByb3BlcnRpZXMgLS0tLQorCisgICAgcHJpdmF0ZSBTdHJpbmcgdXNlcm5hbWUgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRVc2VybmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIHVzZXJuYW1lOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFVzZXJuYW1lKFN0cmluZyB2YWx1ZSkgeworICAgICAgICB1c2VybmFtZSA9IHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIHBhc3N3b3JkID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGFzc3dvcmQoKSB7CisgICAgICAgIHJldHVybiBwYXNzd29yZDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRQYXNzd29yZChTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcGFzc3dvcmQgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBwYXNzd29yZDIgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRQYXNzd29yZDIoKSB7CisgICAgICAgIHJldHVybiBwYXNzd29yZDI7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UGFzc3dvcmQyKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBwYXNzd29yZDIgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBmdWxsTmFtZSA9IG51bGw7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEZ1bGxOYW1lKCkgeworICAgICAgICByZXR1cm4gZnVsbE5hbWU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RnVsbE5hbWUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIGZ1bGxOYW1lID0gdmFsdWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgZnJvbUFkZHJlc3MgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRGcm9tQWRkcmVzcygpIHsKKyAgICAgICAgcmV0dXJuIGZyb21BZGRyZXNzOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEZyb21BZGRyZXNzKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBmcm9tQWRkcmVzcyA9IHZhbHVlOworICAgIH0KKworICAgIHByaXZhdGUgU3RyaW5nIHJlcGx5VG9BZGRyZXNzID0gbnVsbDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UmVwbHlUb0FkZHJlc3MoKSB7CisgICAgICAgIHJldHVybiByZXBseVRvQWRkcmVzczsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRSZXBseVRvQWRkcmVzcyhTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcmVwbHlUb0FkZHJlc3MgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvLyAtLS0tIFN1YnNjcmlwdGlvbiBmb3JtIHByb3BlcnRpZXMgLS0tLQorCisgICAgcHJpdmF0ZSBTdHJpbmcgaG9zdDsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SG9zdCgpIHsKKyAgICAgICAgcmV0dXJuIGhvc3Q7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0SG9zdChTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgaG9zdCA9IHZhbHVlOworICAgIH0KKworICAgIC8vIC0tLS0gVGFzayBwcm9wZXJ0eSAodXRpbGl6ZWQgYnkgVUkpIC0tLS0KKworICAgIHByaXZhdGUgU3RyaW5nIHRhc2sgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRUYXNrKCkgeworICAgICAgICByZXR1cm4gdGFzazsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRUYXNrKFN0cmluZyB2YWx1ZSkgeworICAgICAgICB0YXNrID0gdmFsdWU7CisgICAgfQorCisgICAgLy8gLS0tLSBLZXlzIC0tLS0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFCQVNFX0tFWSA9ICJkYXRhYmFzZSI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTVUJTQ1JJUFRJT05fS0VZID0gInN1YnNjcmlwdGlvbiI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBVU0VSX0tFWSA9ICJ1c2VyIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEhPU1QgPSAiaG9zdCI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQQVNTV09SRF9NSVNNQVRDSF9GSUVMRCA9ICJwYXNzd29yZCI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDQU5DRUwgPSAiY2FuY2VsIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENSRUFURSA9ICJDcmVhdGUiOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRURJVCA9ICJFZGl0IjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERFTEVURSA9ICJEZWxldGUiOworCisgICAgLy8gLS0tLSBNZXNzYWdlIEtleXMgLS0tLQorCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfREFUQUJBU0VfTUlTU0lORyA9CisgICAgICAgICAgICAiZXJyb3IuZGF0YWJhc2UubWlzc2luZyI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9VU0VSTkFNRV9VTklRVUUgPQorICAgICAgICAgICAgImVycm9yLnVzZXJuYW1lLnVuaXF1ZSI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9QQVNTV09SRF9NSVNNQVRDSCA9CisgICAgICAgICAgICAiZXJyb3IucGFzc3dvcmQubWlzbWF0Y2giOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfUEFTU1dPUkRfTUFUQ0ggPQorICAgICAgICAgICAgImVycm9yLnBhc3N3b3JkLm1hdGNoIjsKKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVSUk9SX0hPU1RfVU5JUVVFCisgICAgICAgICAgICA9ICJUaGF0IGhvc3RuYW1lIGlzIGFscmVhZHkgZGVmaW5lZCI7CisKKyAgICAvLyAtLS0tIEFwcGxpY2F0aW9uQXdhcmUgLS0tLQorCisgICAgcHJpdmF0ZSBNYXAgYXBwbGljYXRpb247CisKKyAgICBwdWJsaWMgdm9pZCBzZXRBcHBsaWNhdGlvbihNYXAgdmFsdWUpIHsKKyAgICAgICAgYXBwbGljYXRpb24gPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgTWFwIGdldEFwcGxpY2F0aW9uKCkgeworICAgICAgICByZXR1cm4gYXBwbGljYXRpb247CisgICAgfQorCisgICAgLy8gLS0tLSBEYXRhYmFzZSBwcm9wZXJ0eSAtLS0tCisKKyAgICBwdWJsaWMgVXNlckRhdGFiYXNlIGdldERhdGFiYXNlKCkgeworICAgICAgICBPYmplY3QgZGIgPSBnZXRBcHBsaWNhdGlvbigpLmdldChEQVRBQkFTRV9LRVkpOworICAgICAgICBpZiAoZGIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhpcy5hZGRBY3Rpb25FcnJvcihnZXRUZXh0KEVSUk9SX0RBVEFCQVNFX01JU1NJTkcpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKFVzZXJEYXRhYmFzZSkgZGI7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RGF0YWJhc2UoVXNlckRhdGFiYXNlIGRhdGFiYXNlKSB7CisgICAgICAgIGdldEFwcGxpY2F0aW9uKCkucHV0KERBVEFCQVNFX0tFWSwgZGF0YWJhc2UpOworICAgIH0KKworICAgIC8vIC0tLS0gU2Vzc2lvbkF3YXJlIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPkZpZWxkIHRvIHN0b3JlIHNlc3Npb24gY29udGV4dCwgb3IgaXRzIHByb3h5LjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIE1hcCBzZXNzaW9uOworCisgICAgLyoqCisgICAgICogPHA+U3RvcmUgYSBuZXcgc2Vzc2lvbiBjb250ZXh0LjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZSBBIE1hcCByZXByZXNlbnRpbmcgc2Vzc2lvbiBzdGF0ZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlc3Npb24oTWFwIHZhbHVlKSB7CisgICAgICAgIHNlc3Npb24gPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIHNlc3Npb24gY29udGV4dC48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHNlc3Npb24gY29udGV4dAorICAgICAqLworICAgIHB1YmxpYyBNYXAgZ2V0U2Vzc2lvbigpIHsKKyAgICAgICAgcmV0dXJuIHNlc3Npb247CisgICAgfQorCisgICAgLy8gLS0tLSBTdWJzY3JpcHRpb24gcHJvcGVydHkgLS0tLQorCisgICAgcHVibGljIFN1YnNjcmlwdGlvbiBnZXRTdWJzY3JpcHRpb24oKSB7CisgICAgICAgIHJldHVybiAoU3Vic2NyaXB0aW9uKSBnZXRTZXNzaW9uKCkuZ2V0KFNVQlNDUklQVElPTl9LRVkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFN1YnNjcmlwdGlvbihTdWJzY3JpcHRpb24gc3Vic2NyaXB0aW9uKSB7CisgICAgICAgIGdldFNlc3Npb24oKS5wdXQoU1VCU0NSSVBUSU9OX0tFWSwgc3Vic2NyaXB0aW9uKTsKKyAgICB9CisKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3Vic2NyaXB0aW9uSG9zdCgpIHsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YiA9IGdldFN1YnNjcmlwdGlvbigpOworICAgICAgICBpZiAobnVsbCA9PSBzdWIpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdWIuZ2V0SG9zdCgpOworICAgIH0KKworICAgIC8vIC0tLS0gVXNlciBwcm9wZXJ0eSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIHJlZmVyZW5jZSB0byBVc2VyIG9iamVjdCBmb3IgYXV0aGVudGljYXRlZCB1c2VyLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVXNlciBvYmplY3QgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVXNlciBnZXRVc2VyKCkgeworICAgICAgICByZXR1cm4gKFVzZXIpIGdldFNlc3Npb24oKS5nZXQoVVNFUl9LRVkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIG5ldyByZWZlcmVuY2UgdG8gVXNlciBPYmplY3QuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHVzZXIgVXNlciBvYmplY3QgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFVzZXIoVXNlciB1c2VyKSB7CisgICAgICAgIGdldFNlc3Npb24oKS5wdXQoVVNFUl9LRVksIHVzZXIpOworICAgIH0KKworICAgIC8vIC0tLS0gRGF0YWJhc2UgbWV0aG9kcyAtLS0tCisKKyAgICBwdWJsaWMgVXNlciBmaW5kVXNlcihTdHJpbmcgdXNlcm5hbWUsIFN0cmluZyBwYXNzd29yZCkKKyAgICAgICAgICAgIHRocm93cyBFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24geworCisgICAgICAgIFVzZXIgdXNlciA9IGdldERhdGFiYXNlKCkuZmluZFVzZXIodXNlcm5hbWUpOworCisgICAgICAgIGlmICgodXNlciAhPSBudWxsKSAmJiAhdXNlci5nZXRQYXNzd29yZCgpLmVxdWFscyhwYXNzd29yZCkpIHsKKyAgICAgICAgICAgIHVzZXIgPSBudWxsOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHVzZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgYWRkRmllbGRFcnJvcihQQVNTV09SRF9NSVNNQVRDSF9GSUVMRCwKKyAgICAgICAgICAgICAgICAgICAgZ2V0VGV4dChFUlJPUl9QQVNTV09SRF9NSVNNQVRDSCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHVzZXI7CisKKyAgICB9CisKKyAgICBwdWJsaWMgVXNlciBjcmVhdGVVc2VyKFN0cmluZyB1c2VybmFtZSwgU3RyaW5nIHBhc3N3b3JkKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBnZXREYXRhYmFzZSgpOworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5maW5kVXNlcih1c2VybmFtZSk7CisKKyAgICAgICAgaWYgKHVzZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgYWRkQWN0aW9uRXJyb3IoZ2V0VGV4dChFUlJPUl9VU0VSTkFNRV9VTklRVUUpKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgdXNlciA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIodXNlcm5hbWUpOworICAgICAgICBCZWFuVXRpbHMuc2V0VmFsdWVzKHVzZXIsIHRoaXMsIG51bGwpOworCisgICAgICAgIHJldHVybiB1c2VyOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNhdmVVc2VyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGdldERhdGFiYXNlKCkuc2F2ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgYSAidGVtcG9yYXJ5IiBVc2VyIFN1YnNjcmlwdGlvbiBvYmplY3QKKyAgICAgKiB0aGF0IGNhbiBiZSB1c2VkIHRvY2FwdHVyZSBpbnB1dCB2YWx1ZXMuPC9wPgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNyZWF0ZUlucHV0U3Vic2NyaXB0aW9uKCkgeworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gbmV3IE1lbW9yeVN1YnNjcmlwdGlvbihnZXRVc2VyKCksIG51bGwpOworICAgICAgICBzZXRTdWJzY3JpcHRpb24oc3ViKTsKKyAgICAgICAgc2V0SG9zdChzdWIuZ2V0SG9zdCgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3Vic2NyaXB0aW9uIGZpbmRTdWJzY3JpcHRpb24oU3RyaW5nIGhvc3QpIHsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YnNjcmlwdGlvbjsKKyAgICAgICAgc3Vic2NyaXB0aW9uID0gZ2V0VXNlcigpLmZpbmRTdWJzY3JpcHRpb24oaG9zdCk7CisgICAgICAgIHJldHVybiBzdWJzY3JpcHRpb247CisgICAgfQorCisgICAgcHVibGljIFN1YnNjcmlwdGlvbiBmaW5kU3Vic2NyaXB0aW9uKCkgeworICAgICAgICByZXR1cm4gZmluZFN1YnNjcmlwdGlvbihnZXRIb3N0KCkpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlbW92ZVN1YnNjcmlwdGlvbigpIHsKKyAgICAgICAgZ2V0VXNlcigpLnJlbW92ZVN1YnNjcmlwdGlvbihnZXRTdWJzY3JpcHRpb24oKSk7CisgICAgICAgIGdldFNlc3Npb24oKS5yZW1vdmUoU1VCU0NSSVBUSU9OX0tFWSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY29weVN1YnNjcmlwdGlvbihTdHJpbmcgaG9zdCkgeworICAgICAgICBTdWJzY3JpcHRpb24gaW5wdXQgPSBnZXRTdWJzY3JpcHRpb24oKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YiA9IGNyZWF0ZVN1YnNjcmlwdGlvbihob3N0KTsKKyAgICAgICAgaWYgKG51bGwgIT0gc3ViKSB7CisgICAgICAgICAgICBCZWFuVXRpbHMuc2V0VmFsdWVzKHN1YiwgaW5wdXQsIG51bGwpOworICAgICAgICAgICAgc2V0U3Vic2NyaXB0aW9uKHN1Yik7CisgICAgICAgICAgICBzZXRIb3N0KHN1Yi5nZXRIb3N0KCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFN1YnNjcmlwdGlvbiBjcmVhdGVTdWJzY3JpcHRpb24oU3RyaW5nIGhvc3QpIHsKKworICAgICAgICBTdWJzY3JpcHRpb24gc3ViOworCisgICAgICAgIHN1YiA9IGZpbmRTdWJzY3JpcHRpb24oaG9zdCk7CisKKyAgICAgICAgaWYgKG51bGwgIT0gc3ViKSB7CisgICAgICAgICAgICAvLyBGSVhNRSAtIGxvY2FsaXphdGlvbiAtICJlcnJvci5ob3N0LnVuaXF1ZSIpCisgICAgICAgICAgICBhZGRGaWVsZEVycm9yKEhPU1QsIEVSUk9SX0hPU1RfVU5JUVVFKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGdldFVzZXIoKS5jcmVhdGVTdWJzY3JpcHRpb24oaG9zdCk7CisgICAgfQorCisgICAgLy8gLS0tLSBBbGlhcyAtLS0tCisKKyAgICBwdWJsaWMgU3RyaW5nIGNhbmNlbCgpIHsKKyAgICAgICAgcmV0dXJuIENBTkNFTDsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvTlBFLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL05QRS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyOWVkMGYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL05QRS5qYXZhCkBAIC0wLDAgKzEsOSBAQAoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbjsKKworcHVibGljIGNsYXNzIE5QRSBpbXBsZW1lbnRzIEFjdGlvbiB7CisKKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB7CisgICAgICAgIHRocm93IG5ldyBOdWxsUG9pbnRlckV4Y2VwdGlvbigiT29wcyEiKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvUmVnaXN0ZXItdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL1JlZ2lzdGVyLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4MTU1ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL1JlZ2lzdGVyLXZhbGlkYXRpb24ueG1sCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIiAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLXZhbGlkYXRvci0xLjAuMi5kdGQiPgorCis8dmFsaWRhdG9ycz4KKworICAgIDxmaWVsZCBuYW1lPSJ1c2VybmFtZSI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci51c2VybmFtZS5yZXF1aXJlZCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCisgICAgPGZpZWxkIG5hbWU9ImZ1bGxOYW1lIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLmZ1bGxOYW1lLnJlcXVpcmVkIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKyAgICA8ZmllbGQgbmFtZT0iZnJvbUFkZHJlc3MiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IuZnJvbUFkZHJlc3MucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0iZW1haWwiPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvcnMuZW1haWwiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworICAgIDxmaWVsZCBuYW1lPSJyZXBseVRvQWRkcmVzcyI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0iZW1haWwiPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvcnMuZW1haWwiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworPC92YWxpZGF0b3JzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9SZWdpc3Rlci5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9SZWdpc3Rlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4ZjJiZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL1JlZ2lzdGVyLmphdmEKQEAgLTAsMCArMSw2NSBAQAoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkudXRpbC5CZWFuVXRpbHM7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworCitwdWJsaWMgY2xhc3MgUmVnaXN0ZXIgZXh0ZW5kcyBNYWlsUmVhZGVyU3VwcG9ydCB7CisKKyAgICBwdWJsaWMgU3RyaW5nIGlucHV0KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgVXNlciB1c2VyID0gZ2V0VXNlcigpOworICAgICAgICBib29sZWFuIGVkaXRpbmcgPSAobnVsbCAhPSB1c2VyKTsKKworICAgICAgICBpZiAoZWRpdGluZykgeworICAgICAgICAgICAgc2V0VGFzayhFRElUKTsKKyAgICAgICAgICAgIEJlYW5VdGlscy5zZXRWYWx1ZXModGhpcywgdXNlciwgbnVsbCk7CisgICAgICAgICAgICBzZXRQYXNzd29yZChudWxsKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHNldFRhc2soQ1JFQVRFKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBJTlBVVDsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHNhdmUoKQorICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgVXNlciB1c2VyID0gZ2V0VXNlcigpOworICAgICAgICBib29sZWFuIGVkaXRpbmcgPSAobnVsbCAhPSB1c2VyKTsKKworICAgICAgICBpZiAoZWRpdGluZykgeworICAgICAgICAgICAgLy8gRklYTUU6IEFueSB3YXkgdG8gY2FsbCB0aGUgUmVnaXN0ZXJTYXZlIHZhbGlkYXRvcnMgZnJvbSBoZXJlPworICAgICAgICAgICAgU3RyaW5nIG5ld1Bhc3N3b3JkID0gZ2V0UGFzc3dvcmQoKTsKKyAgICAgICAgICAgIGJvb2xlYW4gY2hhbmdpbmcgPSAoKG51bGwgIT0gbmV3UGFzc3dvcmQpICYmIChuZXdQYXNzd29yZC5sZW5ndGgoKSA+IDApKTsKKyAgICAgICAgICAgIGlmICghY2hhbmdpbmcpIHsKKyAgICAgICAgICAgICAgICBzZXRQYXNzd29yZCh1c2VyLmdldFBhc3N3b3JkKCkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY29uZmlybVBhc3N3b3JkID0gZ2V0UGFzc3dvcmQyKCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBtYXRjaGVzID0gKChudWxsICE9IGNvbmZpcm1QYXNzd29yZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIChjb25maXJtUGFzc3dvcmQuZXF1YWxzKG5ld1Bhc3N3b3JkKSkpOworICAgICAgICAgICAgICAgIGlmIChtYXRjaGVzKSB7CisgICAgICAgICAgICAgICAgICAgIHVzZXIuc2V0UGFzc3dvcmQobmV3UGFzc3dvcmQpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKGdldFRleHQoRVJST1JfUEFTU1dPUkRfTUFUQ0gpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElOUFVUOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEJlYW5VdGlscy5zZXRWYWx1ZXModXNlciwgdGhpcywgbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWVkaXRpbmcpIHsKKyAgICAgICAgICAgIHVzZXIgPSBmaW5kVXNlcihnZXRVc2VybmFtZSgpLCBnZXRQYXNzd29yZCgpKTsKKyAgICAgICAgICAgIGJvb2xlYW4gaGF2ZVVzZXIgPSAodXNlciAhPSBudWxsKTsKKworICAgICAgICAgICAgaWYgKGhhdmVVc2VyKSB7CisgICAgICAgICAgICAgICAgYWRkQWN0aW9uRXJyb3IoZ2V0VGV4dChFUlJPUl9VU0VSTkFNRV9VTklRVUUpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSU5QVVQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHVzZXIgPSBjcmVhdGVVc2VyKGdldFVzZXJuYW1lKCksIGdldFBhc3N3b3JkKCkpOworICAgICAgICAgICAgc2V0VXNlcih1c2VyKTsKKyAgICAgICAgfQorCisgICAgICAgIHNhdmVVc2VyKCk7CisKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9SZWdpc3RlclNhdmUtdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL1JlZ2lzdGVyU2F2ZS12YWxpZGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODk2NDA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9SZWdpc3RlclNhdmUtdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+CisKKzx2YWxpZGF0b3JzPgorCisgICAgPGZpZWxkIG5hbWU9InBhc3N3b3JkIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnBhc3N3b3JkLnJlcXVpcmVkIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InN0cmluZ2xlbmd0aCI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0idHJpbSI+dHJ1ZTwvcGFyYW0+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluTGVuZ3RoIj40PC9wYXJhbT4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtYXhMZW5ndGgiPjEwPC9wYXJhbT4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3JzLnJhbmdlIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKyAgICA8ZmllbGQgbmFtZT0icGFzc3dvcmQyIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnBhc3N3b3JkMi5yZXF1aXJlZCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCisgICAgPHZhbGlkYXRvciB0eXBlPSJleHByZXNzaW9uIj4KKyAgICAgICAgPHBhcmFtIG5hbWU9ImV4cHJlc3Npb24iPnBhc3N3b3JkIGVxIHBhc3N3b3JkMjwvcGFyYW0+CisgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucGFzc3dvcmQubWF0Y2giLz4KKyAgICA8L3ZhbGlkYXRvcj4KKworPC92YWxpZGF0b3JzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9SZWdpc3RlclNhdmUuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvUmVnaXN0ZXJTYXZlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTM2MDA0NQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvUmVnaXN0ZXJTYXZlLmphdmEKQEAgLTAsMCArMSw1IEBACisvKioKKyAqIDxwPlN0dWIgY2xhc3MgdG8gYWxsb3cgZXh0cmEgdmFsaWRhdGlvbiBvbiBpbml0aWFsIFNhdmUuPC9wPgorICovCitwdWJsaWMgY2xhc3MgUmVnaXN0ZXJTYXZlIGV4dGVuZHMgUmVnaXN0ZXIgeworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9TdWJzY3JpYmUtdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL1N1YnNjcmliZS12YWxpZGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzQyMmM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9TdWJzY3JpYmUtdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+CisKKzx2YWxpZGF0b3JzPgorCisgICAgPGZpZWxkIG5hbWU9Imhvc3QiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IuaG9zdC5yZXF1aXJlZCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCis8L3ZhbGlkYXRvcnM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL1N1YnNjcmliZS5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9TdWJzY3JpYmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTcyYjVmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9TdWJzY3JpYmUuamF2YQpAQCAtMCwwICsxLDc0IEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuUHJlcGFyYWJsZTsKKworaW1wb3J0IGphdmEudXRpbC5MaW5rZWRIYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK3B1YmxpYyBjbGFzcyBTdWJzY3JpYmUgZXh0ZW5kcyBNYWlsUmVhZGVyU3VwcG9ydAorICAgICAgICBpbXBsZW1lbnRzIFByZXBhcmFibGUgeworCisgICAgcHJpdmF0ZSBNYXAgdHlwZXMgPSBudWxsOworCisgICAgcHVibGljIE1hcCBnZXRUeXBlcygpIHsKKyAgICAgICAgcmV0dXJuIHR5cGVzOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHByZXBhcmUoKSB7CisKKyAgICAgICAgTWFwIG0gPSBuZXcgTGlua2VkSGFzaE1hcCgpOworICAgICAgICBtLnB1dCgiaW1hcCIsICJJTUFQIFByb3RvY29sIik7CisgICAgICAgIG0ucHV0KCJwb3AzIiwgIlBPUDMgUHJvdG9jb2wiKTsKKyAgICAgICAgdHlwZXMgPSBtOworCisgICAgICAgIHNldEhvc3QoZ2V0U3Vic2NyaXB0aW9uSG9zdCgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGlucHV0KCkgeworICAgICAgICBjcmVhdGVJbnB1dFN1YnNjcmlwdGlvbigpOworICAgICAgICBzZXRUYXNrKENSRUFURSk7CisgICAgICAgIHJldHVybiBJTlBVVDsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGZpbmQoKSB7CisKKyAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5TdWJzY3JpcHRpb24KKyAgICAgICAgICAgICAgICBzdWIgPSBmaW5kU3Vic2NyaXB0aW9uKCk7CisKKyAgICAgICAgaWYgKHN1YiA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gRVJST1I7CisgICAgICAgIH0KKworICAgICAgICBzZXRTdWJzY3JpcHRpb24oc3ViKTsKKworICAgICAgICByZXR1cm4gSU5QVVQ7CisKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGRlbGV0ZSgpIHsKKworICAgICAgICBzZXRUYXNrKERFTEVURSk7CisgICAgICAgIHJldHVybiBmaW5kKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBlZGl0KCkgeworCisgICAgICAgIHNldFRhc2soRURJVCk7CisgICAgICAgIHJldHVybiBmaW5kKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBzYXZlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgaWYgKERFTEVURS5lcXVhbHMoZ2V0VGFzaygpKSkgeworICAgICAgICAgICAgcmVtb3ZlU3Vic2NyaXB0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoQ1JFQVRFLmVxdWFscyhnZXRUYXNrKCkpKSB7CisgICAgICAgICAgICBjb3B5U3Vic2NyaXB0aW9uKGdldEhvc3QoKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaGFzRXJyb3JzKCkpIHJldHVybiBJTlBVVDsKKworICAgICAgICBzYXZlVXNlcigpOworICAgICAgICByZXR1cm4gU1VDQ0VTUzsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvU3Vic2NyaWJlU2F2ZS12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvU3Vic2NyaWJlU2F2ZS12YWxpZGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDI4NjIzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9TdWJzY3JpYmVTYXZlLXZhbGlkYXRpb24ueG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIiAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLXZhbGlkYXRvci0xLjAuMi5kdGQiPgorCis8dmFsaWRhdG9ycz4KKworICAgIDxmaWVsZCBuYW1lPSJzdWJzY3JpcHRpb24udXNlcm5hbWUiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IudXNlcm5hbWUucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworICAgIDxmaWVsZCBuYW1lPSJzdWJzY3JpcHRpb24ucGFzc3dvcmQiPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucGFzc3dvcmQucmVxdWlyZWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworICAgIDxmaWVsZCBuYW1lPSJzdWJzY3JpcHRpb24udHlwZSI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPgorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci50eXBlLmludmFsaWQiLz4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKworPC92YWxpZGF0b3JzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9TdWJzY3JpYmVTYXZlLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL1N1YnNjcmliZVNhdmUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjRlNDQwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9TdWJzY3JpYmVTYXZlLmphdmEKQEAgLTAsMCArMSwxMiBAQAorcHVibGljIGZpbmFsIGNsYXNzIFN1YnNjcmliZVNhdmUgZXh0ZW5kcyBTdWJzY3JpYmUgeworCisgICAgcHVibGljIHZvaWQgcHJlcGFyZSgpIHsKKyAgICAgICAgc3VwZXIucHJlcGFyZSgpOworICAgICAgICAvLyBjaGVja2JveCB3b3JrYXJvdW5kCisgICAgICAgIGdldFN1YnNjcmlwdGlvbigpLnNldEF1dG9Db25uZWN0KGZhbHNlKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIHNhdmUoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL2RhdGFiYXNlLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvZGF0YWJhc2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiYzgzM2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL2RhdGFiYXNlLnhtbApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPScxLjAnPz4KKzxkYXRhYmFzZT4KKyAgICA8dXNlciB1c2VybmFtZT0idXNlciIgZnJvbUFkZHJlc3M9IkpvaG4uVXNlckBzb21ld2hlcmUuY29tIgorICAgICAgICAgIGZ1bGxOYW1lPSJKb2huIFEuIFVzZXIiIHBhc3N3b3JkPSJwYXNzIj4KKyAgICAgICAgPHN1YnNjcmlwdGlvbiBob3N0PSJtYWlsLmhvdG1haWwuY29tIiBhdXRvQ29ubmVjdD0iZmFsc2UiCisgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ9ImJhciIgdHlwZT0icG9wMyIgdXNlcm5hbWU9InVzZXIxMjM0Ij4KKyAgICAgICAgPC9zdWJzY3JpcHRpb24+CisgICAgICAgIDxzdWJzY3JpcHRpb24gaG9zdD0ibWFpbC55YWhvby5jb20iIGF1dG9Db25uZWN0PSJmYWxzZSIgcGFzc3dvcmQ9ImZvbyIKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJpbWFwIiB1c2VybmFtZT0ianF1c2VyIj4KKyAgICAgICAgPC9zdWJzY3JpcHRpb24+CisgICAgPC91c2VyPgorPC9kYXRhYmFzZT4KKyAgICAgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9yZXNvdXJjZXMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvcmVzb3VyY2VzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZjMTE1MgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvcmVzb3VyY2VzLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxMDUgQEAKK2hlbGxvLm1lc3NhZ2UgPSBDb25ncmF0dWxhdGlvbnMhIFN0cnV0cyBpcyB1cCBhbmQgcnVubmluZyAuLi4KKworaW5kZXgudGl0bGU9TWFpbFJlYWRlcgoraW5kZXgubG9naW49TG9nIGludG8gTWFpbFJlYWRlcgoraW5kZXgucmVnaXN0cmF0aW9uPVJlZ2lzdGVyIHdpdGggTWFpbFJlYWRlcgorCityZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlPU1haWxSZWFkZXIgLSBSZWdpc3RlciAtIENyZWF0ZQorcmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQ9TWFpbFJlYWRlciAtIFJlZ2lzdGVyIC0gRWRpdAorCit1c2VybmFtZT1Vc2VybmFtZQorcGFzc3dvcmQ9UGFzc3dvcmQKK3Bhc3N3b3JkMj0oUmVwZWF0KSBQYXNzd29yZAorZnVsbE5hbWU9RnVsbCBOYW1lCitmcm9tQWRkcmVzcz1Gcm9tIEFkZHJlc3MKK3JlcGx5VG9BZGRyZXNzPVJlcGx5IFRvIEFkZHJlc3MKKworYnV0dG9uLmNhbmNlbD1DYW5jZWwKK2J1dHRvbi5zYXZlPVNhdmUKK2J1dHRvbi5yZXNldD1SZXNldAorYnV0dG9uLmNvbmZpcm09Q29uZmlybQorCittZW51LnRpdGxlPU1haWxSZWFkZXIgLSBNYWluIE1lbnUKK21lbnUuaGVhZGluZz1NZW51IE9wdGlvbnMgZm9yCittZW51LnJlZ2lzdHJhdGlvbj1FZGl0IHlvdXIgcmVnaXN0cmF0aW9uIHByb2ZpbGUKK21lbnUubG9nb3V0PUxvZyBvdXQgb2YgTWFpbFJlYWRlcgorCitsb2dpbi50aXRsZT1NYWlsUmVhZGVyIC0gTG9nb24KKworZXJyb3IuZGF0YWJhc2UubWlzc2luZz1Vc2VyIGRhdGFiYXNlIGlzIG1pc3NpbmcsIGNhbm5vdCB2YWxpZGF0ZSBsb2dvbiBjcmVkZW50aWFscworZXJyb3IudXNlcm5hbWUudW5pcXVlPVRoYXQgdXNlcm5hbWUgaXMgYWxyZWFkeSBpbiB1c2UgLSBwbGVhc2Ugc2VsZWN0IGFub3RoZXIKK2Vycm9yLnBhc3N3b3JkLm1pc21hdGNoPUludmFsaWQgdXNlcm5hbWUgYW5kL29yIHBhc3N3b3JkLCBwbGVhc2UgdHJ5IGFnYWluCisKK2Vycm9yLnVzZXJuYW1lLnJlcXVpcmVkPVVzZXJuYW1lIGlzIHJlcXVpcmVkCitlcnJvci5mdWxsTmFtZS5yZXF1aXJlZD1GdWxsIE5hbWUgaXMgcmVxdWlyZWQKK2Vycm9yLmZyb21BZGRyZXNzLnJlcXVpcmVkPUZyb20gQWRkcmVzcyBpcyByZXF1aXJlZAorZXJyb3IuZnJvbUFkZHJlc3MuZm9ybWF0PUludmFsaWQgZm9ybWF0IGZvciBGcm9tIEFkZHJlc3MKK2Vycm9yLnJlcGx5VG9BZGRyZXNzLmZvcm1hdD1JbnZhbGlkIGZvcm1hdCBmb3IgUmVwbHkgVG8gQWRkcmVzcworZXJyb3IucGFzc3dvcmQucmVxdWlyZWQ9UGFzc3dvcmQgaXMgcmVxdWlyZWQKK2Vycm9yLnBhc3N3b3JkMi5yZXF1aXJlZD1Db25maXJtYXRpb24gcGFzc3dvcmQgaXMgcmVxdWlyZWQKK2Vycm9yLnBhc3N3b3JkLm1hdGNoPVBhc3N3b3JkIGFuZCBjb25maXJtYXRpb24gcGFzc3dvcmQgbXVzdCBtYXRjaAorCitlcnJvci5ob3N0LnJlcXVpcmVkPU1haWwgU2VydmVyIGlzIHJlcXVpcmVkCitlcnJvci50eXBlLmludmFsaWQ9U2VydmVyIFR5cGUgbXVzdCBiZSAnaW1hcCcgb3IgJ3BvcDMnCitlcnJvci50eXBlLnJlcXVpcmVkPVNlcnZlciBUeXBlIGlzIHJlcXVpcmVkCisKKyMgRnV0dXJlIHVzZQorYnV0dG9uLmRvU3VibWl0PURPX1NVQk1JVAorYnV0dG9uLmRvUmVzZXQ9RE9fUkVTVUxUCitidXR0b24uZG9DYW5jZWw9b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ0FOQ0VMCitjaGFuZ2UubWVzc2FnZT1Zb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkLiAgUGxlYXNlIGFzayB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3IgdG8gY2hhbmdlIGl0LgorY2hhbmdlLnRyeT1UcnkgQWdhaW4KK2NoYW5nZS50aXRsZT1QYXNzd29yZCBIYXMgRXhwaXJlZAorZGF0YWJhc2UubG9hZD1DYW5ub3QgbG9hZCBkYXRhYmFzZSBmcm9tIHswfQorc3RydXRzLm1lc3NhZ2VzLmludmFsaWQudG9rZW49Q2Fubm90IHN1Ym1pdCB0aGlzIGZvcm0gb3V0IG9mIG9yZGVyCitlcnJvcnMuZm9vdGVyPTwvdWw+PGhyPgorZXJyb3JzLmhlYWRlcj08aDM+PGZvbnQgY29sb3I9InJlZCI+VmFsaWRhdGlvbiBFcnJvcjwvZm9udD48L2gzPjxwPllvdSBtdXN0IGNvcnJlY3QgdGhlIGZvbGxvd2luZyBlcnJvcihzKSBiZWZvcmUgcHJvY2VlZGluZzo8L3A+PHVsPgorZXJyb3JzLnByZWZpeD08bGk+CitlcnJvcnMuc3VmZml4PTwvbGk+CitlcnJvcnMuaW9FeGNlcHRpb249SS9PIGV4Y2VwdGlvbiByZW5kZXJpbmcgZXJyb3IgbWVzc2FnZXM6IHswfQorZXJyb3Iubm9TdWJzY3JpcHRpb249Tm8gU3Vic2NyaXB0aW9uIGJlYW4gaW4gdXNlciBzZXNzaW9uCitlcnJvci5wYXNzd29yZC5leHBpcmVkPVlvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQgZm9yIHVzZXJuYW1lIHswfQorZXhwaXJlZC5wYXNzd29yZD1Vc2VyIFBhc3N3b3JkIGhhcyBleHBpcmVkIGZvciB7MH0KK2hlYWRpbmcuYXV0b0Nvbm5lY3Q9QXV0bworaGVhZGluZy5zdWJzY3JpcHRpb25zPUN1cnJlbnQgU3Vic2NyaXB0aW9ucworaGVhZGluZy5ob3N0PUhvc3QgTmFtZQoraGVhZGluZy51c2VyPVVzZXIgTmFtZQoraGVhZGluZy50eXBlPVNlcnZlciBUeXBlCitoZWFkaW5nLmFjdGlvbj1BY3Rpb24KK2luZGV4LmhlYWRpbmc9TWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uIE9wdGlvbnMKK2luZGV4LnRvdXI9QSBXYWxraW5nIFRvdXIgb2YgdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbgorbGlua1N1YnNjcmlwdGlvbi5pbz1JL08gRXJyb3I6IHswfQorbGlua1N1YnNjcmlwdGlvbi5ub1N1YnNjcmlwdGlvbj1ObyBzdWJzY3JpcHRpb24gdW5kZXIgYXR0cmlidXRlIHswfQorbGlua1VzZXIuaW89SS9PIEVycm9yOiB7MH0KK2xpbmtVc2VyLm5vVXNlcj1ObyB1c2VyIHVuZGVyIGF0dHJpYnV0ZSB7MH0KK29wdGlvbi5pbWFwPUlNQVAgUHJvdG9jb2wKK29wdGlvbi5wb3AzPVBPUDMgUHJvdG9jb2wKKyMgcHJvbXB0LgorYXV0b0Nvbm5lY3Q9QXV0byBDb25uZWN0CittYWlsSG9zdG5hbWU9TWFpbCBTZXJ2ZXIKK21haWxQYXNzd29yZD1NYWlsIFBhc3N3b3JkCittYWlsU2VydmVyVHlwZT1TZXJ2ZXIgVHlwZQorbWFpbFVzZXJuYW1lPU1haWwgVXNlcm5hbWUKK3JlZ2lzdHJhdGlvbi5hZGRTdWJzY3JpcHRpb249QWRkCityZWdpc3RyYXRpb24uZGVsZXRlU3Vic2NyaXB0aW9uPURlbGV0ZQorcmVnaXN0cmF0aW9uLmVkaXRTdWJzY3JpcHRpb249RWRpdAorc3Vic2NyaXB0aW9uLnRpdGxlLmNyZWF0ZT1DcmVhdGUgTmV3IE1haWwgU3Vic2NyaXB0aW9uCitzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlPURlbGV0ZSBFeGlzdGluZyBNYWlsIFN1YnNjcmlwdGlvbgorc3Vic2NyaXB0aW9uLnRpdGxlLmVkaXQ9RWRpdCBFeGlzdGluZyBNYWlsIFN1YnNjcmlwdGlvbgorCisjIFN0YW5kYXJkIGVycm9yIG1lc3NhZ2VzIGZvciB2YWxpZGF0b3IgZnJhbWV3b3JrIGNoZWNrcworZXJyb3JzLnJlcXVpcmVkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyByZXF1aXJlZC4KK2Vycm9ycy5taW5sZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGNhbm5vdCBiZSBsZXNzIHRoYW4gezF9IGNoYXJhY3RlcnMuCitlcnJvcnMubWF4bGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHsxfSBjaGFyYWN0ZXJzLgorZXJyb3JzLmludmFsaWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGludmFsaWQuCitlcnJvcnMuYnl0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBieXRlLgorZXJyb3JzLnNob3J0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIHNob3J0LgorZXJyb3JzLmludGVnZXI9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gaW50ZWdlci4KK2Vycm9ycy5sb25nPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGxvbmcuCitlcnJvcnMuZmxvYXQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gZmxvYXQuCitlcnJvcnMuZG91YmxlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGRvdWJsZS4KK2Vycm9ycy5kYXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSBkYXRlLgorZXJyb3JzLnJhbmdlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgaW4gdGhlIHJhbmdlICR7bWluTGVuZ3RofSB0aHJvdWdoICR7bWF4TGVuZ3RofS4KK2Vycm9ycy5jcmVkaXRjYXJkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuCitlcnJvcnMuZW1haWw9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGFuIGludmFsaWQgZS1tYWlsIGFkZHJlc3MuCitlcnJvcnMubGl0ZXJhbD0ke2dldFRleHQoZmllbGROYW1lKX0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvcmVzb3VyY2VzX2phLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL3Jlc291cmNlc19qYS5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwZWI2ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL3Jlc291cmNlc19qYS5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsODkgQEAKK2J1dHRvbi5jYW5jZWw9XHUzMGFkXHUzMGUzXHUzMGYzXHUzMGJiXHUzMGViCitidXR0b24uY29uZmlybT1cdTc4YmFcdThhOGQKK2J1dHRvbi5yZXNldD1cdTMwZWFcdTMwYmJcdTMwYzNcdTMwYzgKK2J1dHRvbi5zYXZlPVx1NGZkZFx1NWI1OAorY2hhbmdlLm1lc3NhZ2U9XHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDZFXHU2NzA5XHU1MkI5XHU2NzFGXHU5NjUwXHUzMDRDXHU5MDRFXHUzMDRFXHUzMDdFXHUzMDU3XHUzMDVGXHUzMDAyXHUzMEI3XHUzMEI5XHUzMEM2XHUzMEUwXHU3QkExXHU3NDA2XHU4MDA1XHUzMDZCXHUzMDRBXHU1NTRGXHUzMDQ0XHU1NDA4XHUzMDhGXHUzMDVCXHU0RTBCXHUzMDU1XHUzMDQ0CitjaGFuZ2UudHJ5PVx1NTE4RFx1OEE2Nlx1ODg0QworY2hhbmdlLnRpdGxlPVx1MzBkMVx1MzBiOVx1MzBlZlx1MzBmY1x1MzBjOVx1NjcxZlx1OTY1MFx1NTIwN1x1MzA4YworZGF0YWJhc2UubG9hZD0gezB9IFx1MzA0Qlx1MzA4OVx1MzBDN1x1MzBGQ1x1MzBCRlx1MzBEOVx1MzBGQ1x1MzBCOVx1MzA5Mlx1MzBFRFx1MzBGQ1x1MzBDOVx1MzA2N1x1MzA0RFx1MzA3RVx1MzA1Qlx1MzA5MworZXJyb3IuZGF0YWJhc2UubWlzc2luZz1cdTMwRTZcdTMwRkNcdTMwQjZcdTMwQzdcdTMwRkNcdTMwQkZcdTMwRDlcdTMwRkNcdTMwQjlcdTMwNENcdTg5OEJcdTMwNjRcdTMwNEJcdTMwOEFcdTMwN0VcdTMwNUJcdTMwOTNcdTMwMDJcdTMwRURcdTMwQjBcdTMwQUFcdTMwRjNcdTMwNkVcdThBOERcdThBM0NcdTMwNENcdTUxRkFcdTY3NjVcdTMwN0VcdTMwNUJcdTMwOTMKK2Vycm9yLmZyb21BZGRyZXNzLmZvcm1hdD1Gcm9tXHUzMEEyXHUzMEM5XHUzMEVDXHUzMEI5XHUzMDZFXHU2NkY4XHU1RjBGXHUzMDRDXHU2QjYzXHUzMDU3XHUzMDRGXHUzMDQyXHUzMDhBXHUzMDdFXHUzMDVCXHUzMDkzCitlcnJvci5mcm9tQWRkcmVzcy5yZXF1aXJlZD1Gcm9tXHUzMEEyXHUzMEM5XHUzMEVDXHUzMEI5XHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvci5mdWxsTmFtZS5yZXF1aXJlZD1cdTMwRDVcdTMwRUJcdTMwQ0RcdTMwRkNcdTMwRTBcdTMwOTJcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQKK2Vycm9yLmhvc3QucmVxdWlyZWQ9XHUzMEUxXHUzMEZDXHUzMEVCXHUzMEI1XHUzMEZDXHUzMEQwXHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvci5ub1N1YnNjcmlwdGlvbj1TdWJzY3JpcHRpb24gYmVhbiBcdTMwNGNcdTMwYmJcdTMwYzNcdTMwYjdcdTMwZTdcdTMwZjNcdTMwNmVcdTRlMmRcdTMwNmJcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTMKK2Vycm9yLnBhc3N3b3JkLmV4cGlyZWQ9XHUzMEU2XHUzMEZDXHUzMEI2IHswfSBcdTMwNkVcdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNkVcdTY3MDlcdTUyQjlcdTY3MUZcdTk2NTBcdTMwNENcdTkwNEVcdTMwNEVcdTMwN0VcdTMwNTdcdTMwNUYKK2Vycm9yLnBhc3N3b3JkLnJlcXVpcmVkPVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA0Q1x1NUZDNVx1ODk4MVx1MzA2N1x1MzA1OQorZXJyb3IucGFzc3dvcmQyLnJlcXVpcmVkPVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOShcdTc4QkFcdThBOERcdTc1MjgpXHUzMDRDXHU1RkM1XHU4OTgxXHUzMDY3XHUzMDU5CitlcnJvci5wYXNzd29yZC5tYXRjaD1cdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNjhcdTc4QkFcdThBOERcdTc1MjhcdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNENcdTRFMDBcdTgxRjRcdTMwNTdcdTMwNjZcdTMwNDRcdTMwN0VcdTMwNUJcdTMwOTMKK2Vycm9yLnBhc3N3b3JkLm1pc21hdGNoPVx1MzBFNlx1MzBGQ1x1MzBCNlx1NTQwRFx1MzA3RVx1MzA1Rlx1MzA2Rlx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA0Q1x1NEUwRFx1NkI2M1x1MzA2N1x1MzA1OVx1MzAwMlx1NTE4RFx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorZXJyb3IucmVwbHlUb0FkZHJlc3MuZm9ybWF0PVx1OEZENFx1NEZFMVx1MzBBMlx1MzBDOVx1MzBFQ1x1MzBCOVx1MzA2RVx1NjZGOFx1NUYwRlx1MzA0Q1x1NkI2M1x1MzA1N1x1MzA0Rlx1MzA0Mlx1MzA4QVx1MzA3RVx1MzA1Qlx1MzA5Mworc3RydXRzLm1lc3NhZ2VzLmludmFsaWQudG9rZW49XHUzMDUzXHUzMDZFXHUzMEQ1XHUzMEE5XHUzMEZDXHUzMEUwXHUzMDZFXHU1MTg1XHU1QkI5XHUzMDRDXHU2QjYzXHUzMDU3XHUzMDRGXHUzMDZBXHUzMDQ0XHUzMDVGXHUzMDgxXHU5MDAxXHU0RkUxXHUzMDU5XHUzMDhCXHUzMDUzXHUzMDY4XHUzMDRDXHU1MUZBXHU2NzY1XHUzMDdFXHUzMDVCXHUzMDkzCitlcnJvci50eXBlLmludmFsaWQ9XHUzMEI1XHUzMEZDXHUzMEQwXHUzMEJGXHUzMEE0XHUzMEQ3XHUzMDZGICdpbWFwJyBcdTMwNEIgJ3BvcDMnXHUzMDZFXHUzMDY5XHUzMDYxXHUzMDg5XHUzMDRCXHUzMDY3XHUzMDZBXHUzMDUxXHUzMDhDXHUzMDcwXHUzMDZBXHUzMDhBXHUzMDdFXHUzMDVCXHUzMDkzCitlcnJvci50eXBlLnJlcXVpcmVkPVx1MzBCNVx1MzBGQ1x1MzBEMFx1MzBCRlx1MzBBNFx1MzBEN1x1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorZXJyb3IudXNlcm5hbWUucmVxdWlyZWQ9XHUzMEU2XHUzMEZDXHUzMEI2XHU1NDBEXHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvci51c2VybmFtZS51bmlxdWU9XHUzMDVEXHUzMDZFXHUzMEU2XHUzMEZDXHUzMEI2XHU1NDBEXHUzMDZGXHU2NUUyXHUzMDZCXHU0RjdGXHU3NTI4XHUzMDU1XHUzMDhDXHUzMDY2XHUzMDQ0XHUzMDdFXHUzMDU5XHUzMDAyIFx1NTIyNVx1MzA2RVx1MzBFNlx1MzBGQ1x1MzBCNlx1NTQwRFx1MzA5Mlx1OTA3OFx1NjI5RVx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorZXJyb3JzLmZvb3Rlcj08L3VsPjxocj4KK2Vycm9ycy5oZWFkZXI9PGgzPjxmb250IGNvbG9yPSJyZWQiPlx1NTE2NVx1NTI5Ylx1MzBjMVx1MzBhN1x1MzBjM1x1MzBhZlx1MzBhOFx1MzBlOVx1MzBmYzwvZm9udD48L2gzPjxwPlx1NGVlNVx1NGUwYlx1MzA2ZVx1MzBhOFx1MzBlOVx1MzBmY1x1MzA5Mlx1NzhiYVx1OGE4ZFx1MzA1N1x1MzA2Nlx1MzA0Zlx1MzA2MFx1MzA1NVx1MzA0NDo8L3A+PHVsPgorZXJyb3JzLnByZWZpeD08bGk+CitlcnJvcnMuc3VmZml4PTwvbGk+CitlcnJvcnMuaW9FeGNlcHRpb249SS9PXHU0ZjhiXHU1OTE2XHUzMDRjXHU3NjdhXHU3NTFmXHUzMDU3XHUzMDdlXHUzMDU3XHUzMDVmOiB7MH0KK2V4cGlyZWQucGFzc3dvcmQ9XHUzMEU2XHUzMEZDXHUzMEI2IHswfSBcdTMwNkVcdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNkVcdTY3MDlcdTUyQjlcdTY3MUZcdTk2NTBcdTMwNENcdTkwNEVcdTMwNEVcdTMwN0VcdTMwNTdcdTMwNUYKK2hlYWRpbmcuYXV0b0Nvbm5lY3Q9XHU4MWVhXHU1MmQ1XHU2M2E1XHU3ZDlhCitoZWFkaW5nLnN1YnNjcmlwdGlvbnM9XHU3M2ZlXHU1NzI4XHUzMDZlXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxCitoZWFkaW5nLmhvc3Q9XHUzMGRiXHUzMGI5XHUzMGM4XHU1NDBkCitoZWFkaW5nLnVzZXI9XHUzMGU2XHUzMGZjXHUzMGI2XHU1NDBkCitoZWFkaW5nLnR5cGU9XHUzMGI1XHUzMGZjXHUzMGQwXHUzMGJmXHUzMGE0XHUzMGQ3CitoZWFkaW5nLmFjdGlvbj1cdTY0Y2RcdTRmNWMKK2luZGV4LmhlYWRpbmc9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyBcdTMwYWFcdTMwZDdcdTMwYjdcdTMwZTdcdTMwZjMKK2luZGV4LmxvZ2luPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZWRcdTMwYjBcdTMwYWFcdTMwZjMKK2luZGV4LnJlZ2lzdHJhdGlvbj1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGU2XHUzMGZjXHUzMGI2XHU3NjdiXHU5MzMyCitpbmRleC50aXRsZT1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzKFN0cnV0cyAxLjEtZGV2KQoraW5kZXgudG91cj1cdTMwYjVcdTMwZjNcdTMwZDdcdTMwZWJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjNcdTMwOTJcdTY1NjNcdTdiNTZcdTMwNTlcdTMwOGIKK2xpbmtTdWJzY3JpcHRpb24uaW89SS9PXHUzMGE4XHUzMGU5XHUzMGZjOiB7MH0KK2xpbmtTdWJzY3JpcHRpb24ubm9TdWJzY3JpcHRpb249XHU1YzVlXHU2MDI3IHswfSBcdTMwNmJcdThjZmNcdThhYWRcdTYwYzVcdTU4MzFcdTMwNGNcdTViNThcdTU3MjhcdTMwNTdcdTMwN2VcdTMwNWJcdTMwOTMKK2xpbmtVc2VyLmlvPUkvT1x1MzBhOFx1MzBlOVx1MzBmYzogezB9CitsaW5rVXNlci5ub1VzZXI9XHU1YzVlXHU2MDI3IHswfSBcdTMwNmJcdTMwZTZcdTMwZmNcdTMwYjZcdTYwYzVcdTU4MzFcdTMwNGNcdTViNThcdTU3MjhcdTMwNTdcdTMwN2VcdTMwNWJcdTMwOTMKK2xvZ2luLnRpdGxlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZWRcdTMwYjBcdTMwYWFcdTMwZjMKK21lbnUuaGVhZGluZz1cdTMwZTFcdTMwYTRcdTMwZjNcdTMwZTFcdTMwY2JcdTMwZTVcdTMwZmMKK21lbnUubG9nb3V0PU1haWxSZWFkZXIgXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzXHUzMDZlXHUzMGVkXHUzMGIwXHUzMGFhXHUzMGQ1CittZW51LnJlZ2lzdHJhdGlvbj1cdTMwZDdcdTMwZWRcdTMwZDVcdTMwYTFcdTMwYTRcdTMwZWJcdTMwNmVcdTdkZThcdTk2YzYKK21lbnUudGl0bGU9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBlMVx1MzBhNFx1MzBmM1x1MzBlMVx1MzBjYlx1MzBlNVx1MzBmYworb3B0aW9uLmltYXA9SU1BUCBcdTMwZDdcdTMwZWRcdTMwYzhcdTMwYjNcdTMwZWIKK29wdGlvbi5wb3AzPVBPUDMgXHUzMGQ3XHUzMGVkXHUzMGM4XHUzMGIzXHUzMGViCisjIHByb21wdC4KK2F1dG9Db25uZWN0PVx1ODFlYVx1NTJkNVx1NjNhNVx1N2Q5YQorZnJvbUFkZHJlc3M9RnJvbVx1MzBhMlx1MzBjOVx1MzBlY1x1MzBiOQorZnVsbE5hbWU9XHUzMGQ1XHUzMGViXHUzMGNkXHUzMGZjXHUzMGUwCittYWlsSG9zdG5hbWU9XHUzMGUxXHUzMGZjXHUzMGViXHUzMGI1XHUzMGZjXHUzMGQwCittYWlsUGFzc3dvcmQ9XHUzMGUxXHUzMGZjXHUzMGViXHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5CittYWlsU2VydmVyVHlwZT1cdTMwYjVcdTMwZmNcdTMwZDBcdTMwYmZcdTMwYTRcdTMwZDcKK21haWxVc2VybmFtZT1cdTMwZTFcdTMwZmNcdTMwZWJcdTMwZTZcdTMwZmNcdTMwYjZcdTU0MGQKKy5wYXNzd29yZD1cdTMwZDFcdTMwYjlcdTMwZWZcdTMwZmNcdTMwYzkKK3Bhc3N3b3JkMj1cdTMwZDFcdTMwYjlcdTMwZWZcdTMwZmNcdTMwYzkoXHU3OGJhXHU4YThkXHU3NTI4KQorcmVwbHlUb0FkZHJlc3M9XHU4ZmQ0XHU0ZmUxXHUzMGEyXHUzMGM5XHUzMGVjXHUzMGI5Cit1c2VybmFtZT1cdTMwZTZcdTMwZmNcdTMwYjZcdTU0MGQKK3JlZ2lzdHJhdGlvbi5hZGRTdWJzY3JpcHRpb249XHU2NWIwXHU4OThmXHU0ZjVjXHU2MjEwCityZWdpc3RyYXRpb24uZGVsZXRlU3Vic2NyaXB0aW9uPVx1NTI0YVx1OTY2NAorcmVnaXN0cmF0aW9uLmVkaXRTdWJzY3JpcHRpb249XHU3ZGU4XHU5NmM2CityZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZTZcdTMwZmNcdTMwYjZcdTc2N2JcdTkzMzIKK3JlZ2lzdHJhdGlvbi50aXRsZS5lZGl0PU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZDdcdTMwZWRcdTMwZDVcdTMwYTFcdTMwYTRcdTMwZWJcdTdkZThcdTk2YzYKK3N1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGU9XHUzMGUxXHUzMGZjXHUzMGViXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxXHUzMDZlXHU2NWIwXHU4OThmXHU0ZjVjXHU2MjEwCitzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlPVx1MzBlMVx1MzBmY1x1MzBlYlx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMVx1MzA2ZVx1NTI0YVx1OTY2NAorc3Vic2NyaXB0aW9uLnRpdGxlLmVkaXQ9XHUzMGUxXHUzMGZjXHUzMGViXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxXHUzMDZlXHU3ZGU4XHU5NmM2CisKKyMgU3RhbmRhcmQgZXJyb3IgbWVzc2FnZXMgZm9yIHZhbGlkYXRvciBmcmFtZXdvcmsgY2hlY2tzCitlcnJvcnMucmVxdWlyZWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA5Mlx1NTE2NVx1NTI5Ylx1MzA1N1x1MzA2Nlx1MzA0Zlx1MzA2MFx1MzA1NVx1MzA0NFx1MzAwMgorZXJyb3JzLm1pbmxlbmd0aD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmIHsxfSBcdTY1ODdcdTViNTdcdTRlZTVcdTRlMGFcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5tYXhsZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZiB7Mn0gXHU2NTg3XHU1YjU3XHU0ZWU1XHU0ZTBiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuaW52YWxpZD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmXHU2YjYzXHUzMDU3XHUzMDRmXHUzMDQyXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuYnl0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmYnl0ZVx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLnNob3J0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZzaG9ydFx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmludGVnZXI9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZmludGVnZXJcdTU3OGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5sb25nPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZsb25nXHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuZmxvYXQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZmZsb2F0XHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuZG91YmxlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZkb3VibGVcdTU3OGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5kYXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZcdTY1ZTVcdTRlZDhcdTMwNjdcdTMwNmZcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5yYW5nZT0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmIHsxfSBcdTMwNGJcdTMwODkgezJ9IFx1MzA2ZVx1OTU5M1x1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmNyZWRpdGNhcmQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2Zlx1NmI2M1x1MzA1N1x1MzA0NFx1MzBhZlx1MzBlY1x1MzBiOFx1MzBjM1x1MzBjOFx1MzBhYlx1MzBmY1x1MzBjOVx1NzU2YVx1NTNmN1x1MzA2N1x1MzA2Zlx1MzA0Mlx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmVtYWlsPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZcdTZiNjNcdTMwNTdcdTMwNDRcdTMwZTFcdTMwZmNcdTMwZWJcdTMwYTJcdTMwYzlcdTMwZWNcdTMwYjlcdTMwNjdcdTMwNmZcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvcmVzb3VyY2VzX3J1LnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL3Jlc291cmNlc19ydS5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmZjFhYzMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL3Jlc291cmNlc19ydS5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsODkgQEAKK2J1dHRvbi5jYW5jZWw9XHUwNDFlXHUwNDQyXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDQyXHUwNDRjCitidXR0b24uY29uZmlybT1cdTA0MWZcdTA0M2VcdTA0MzRcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzRcdTA0MzhcdTA0NDJcdTA0NGMKK2J1dHRvbi5yZXNldD1cdTA0MjFcdTA0MzFcdTA0NDBcdTA0M2VcdTA0NDFcdTA0MzhcdTA0NDJcdTA0NGMKK2J1dHRvbi5zYXZlPVx1MDQyMVx1MDQzZVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YworY2hhbmdlLm1lc3NhZ2U9WW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZC4gIFBsZWFzZSBhc2sgdGhlIHN5c3RlbSBhZG1pbmlzdHJhdG9yIHRvIGNoYW5nZSBpdC4KK2NoYW5nZS50cnk9VHJ5IEFnYWluCitjaGFuZ2UudGl0bGU9UGFzc3dvcmQgSGFzIEV4cGlyZWQKK2RhdGFiYXNlLmxvYWQ9XHUwNDExXHUwNDMwXHUwNDM3XHUwNDMwIFx1MDQzNFx1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQ0NSBcdTA0M2RcdTA0MzUgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0MzdcdTA0MzBcdTA0MzNcdTA0NDBcdTA0NDNcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzAgXHUwNDM4XHUwNDM3IHswfQorZXJyb3IuZGF0YWJhc2UubWlzc2luZz1cdTA0MWRcdTA0MzUgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNlIFx1MDQzOFx1MDQzY1x1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYgLSBcdTA0M2RcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzdcdTA0M2NcdTA0M2VcdTA0MzZcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzMFx1MDQ0M1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzYVx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZS4KK2Vycm9yLmZyb21BZGRyZXNzLmZvcm1hdD1cdTA0MTIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDM1ICdcdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyOicgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkIFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MzIgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDNlXHUwNDNjIFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzNS4KK2Vycm9yLmZyb21BZGRyZXNzLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgJ1x1MDQxMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MWVcdTA0NDI6Jy4KK2Vycm9yLmZ1bGxOYW1lLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzOFx1MDQzY1x1MDQ0Zi4KK2Vycm9yLmhvc3QucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0NGJcdTA0MzkgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwLgorZXJyb3Iubm9TdWJzY3JpcHRpb249XHUwNDFmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2RcdTA0MzBcdTA0MzlcdTA0MzRcdTA0MzVcdTA0M2RcdTA0MzAgXHUwNDMyIFx1MDQ0MVx1MDQzNVx1MDQ0MVx1MDQ0MVx1MDQzOFx1MDQzOCBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYKK2Vycm9yLnBhc3N3b3JkLmV4cGlyZWQ9WW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZCBmb3IgdXNlcm5hbWUgezB9CitlcnJvci5wYXNzd29yZC5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0Yy4KK2Vycm9yLnBhc3N3b3JkMi5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzNFx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGYuCitlcnJvci5wYXNzd29yZC5tYXRjaD1cdTA0MWZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGMgXHUwNDM4IFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzNFx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGYgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzZVx1MDQzMlx1MDQzZlx1MDQzMFx1MDQzNFx1MDQzMFx1MDQ0ZVx1MDQ0Mi4KK2Vycm9yLnBhc3N3b3JkLm1pc21hdGNoPVx1MDQxZFx1MDQzNVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0MzhcdTA0M2NcdTA0NGYgXHUwNDM4L1x1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGMgLSBcdTA0M2ZcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzFcdTA0NDNcdTA0MzlcdTA0NDJcdTA0MzUsIFx1MDQzZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQxXHUwNDNkXHUwNDNlXHUwNDMyXHUwNDMwLgorZXJyb3IucmVwbHlUb0FkZHJlc3MuZm9ybWF0PVx1MDQxMiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0MzUgJ1x1MDQxMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MWVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDNkXHUwNDMwOicgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkIFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MzIgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDNlXHUwNDNjIFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzNS4KK3N0cnV0cy5tZXNzYWdlcy5pbnZhbGlkLnRva2VuPVx1MDQyZFx1MDQ0Mlx1MDQzMCBcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzAgXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDMwXHUwNDNkXHUwNDMwIC0gXHUwNDNkXHUwNDMwXHUwNDQwXHUwNDQzXHUwNDQ4XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0MFx1MDQ0Zlx1MDQzNFx1MDQzYVx1MDQzMCBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDQ1LgorZXJyb3IudHlwZS5pbnZhbGlkPVx1MDQxMiBcdTA0M2FcdTA0MzBcdTA0NDdcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzUgXHUwNDQyXHUwNDM4XHUwNDNmXHUwNDMwIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMCBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQ0YiBcdTA0M2JcdTA0MzhcdTA0NDhcdTA0NGMgJ2ltYXAnIFx1MDQzOFx1MDQzYlx1MDQzOCAncG9wMycKK2Vycm9yLnR5cGUucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0NDJcdTA0MzhcdTA0M2YgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwCitlcnJvci51c2VybmFtZS5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzOFx1MDQzY1x1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYKK2Vycm9yLnVzZXJuYW1lLnVuaXF1ZT1cdTA0MjNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDM4XHUwNDNjXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0ZiBcdTA0NDNcdTA0MzZcdTA0MzUgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIC0gXHUwNDMyXHUwNDRiXHUwNDMxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQyXHUwNDM1LCBcdTA0M2ZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzZVx1MDQzNSBcdTA0MzhcdTA0M2NcdTA0NGYuCitlcnJvcnMuZm9vdGVyPTwvdWw+PGhyPgorZXJyb3JzLmhlYWRlcj08aDM+PGZvbnQgY29sb3I9InJlZCI+XHUwNDFlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDM4IFx1MDQzZlx1MDQ0MFx1MDQzOCBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzggXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDQ1PC9mb250PjwvaDM+PHA+XHUwNDEyXHUwNDRiIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzZFx1MDQzOFx1MDQzNlx1MDQzNSBcdTA0M2VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0Mzg6PC9wPjx1bD4KK2Vycm9ycy5wcmVmaXg9PGxpPgorZXJyb3JzLnN1ZmZpeD08L2xpPgorZXJyb3JzLmlvRXhjZXB0aW9uPVx1MDQxZVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzYVx1MDQzMCBcdTA0MzJcdTA0MzJcdTA0M2VcdTA0MzRcdTA0MzAvXHUwNDMyXHUwNDRiXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwIFx1MDQzZlx1MDQ0MFx1MDQzOCBcdTA0NDFcdTA0M2VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0M2RcdTA0MzhcdTA0MzggXHUwNDQxXHUwNDNlXHUwNDNlXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM5IFx1MDQzZVx1MDQzMSBcdTA0M2VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzBcdTA0NDU6IHswfQorZXhwaXJlZC5wYXNzd29yZD1Vc2VyIFBhc3N3b3JkIGhhcyBleHBpcmVkIGZvciB7MH0KK2hlYWRpbmcuYXV0b0Nvbm5lY3Q9XHUwNDEwXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDNjXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNhXHUwNDM4CitoZWFkaW5nLnN1YnNjcmlwdGlvbnM9XHUwNDE3XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQzOAoraGVhZGluZy5ob3N0PVx1MDQyMVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MAoraGVhZGluZy51c2VyPVx1MDQxOFx1MDQzY1x1MDQ0ZgoraGVhZGluZy50eXBlPVx1MDQyMlx1MDQzOFx1MDQzZiBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzAKK2hlYWRpbmcuYWN0aW9uPVx1MDQxNFx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzOFx1MDQzNQoraW5kZXguaGVhZGluZz1cdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1ICdcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDRiJworaW5kZXgubG9naW49XHUwNDEyXHUwNDNlXHUwNDM5XHUwNDQyXHUwNDM4IFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0MzdcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjCitpbmRleC5yZWdpc3RyYXRpb249XHUwNDE3XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRjXHUwNDQxXHUwNDRmCitpbmRleC50aXRsZT1cdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1ICdcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDRiJyAoU3RydXRzIDEuMS1kZXYpCitpbmRleC50b3VyPVx1MDQxZVx1MDQzMVx1MDQzN1x1MDQzZVx1MDQ0MCBcdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRmICdcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDRiJworbGlua1N1YnNjcmlwdGlvbi5pbz1cdTA0MWVcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzAgXHUwNDMyXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwL1x1MDQzMlx1MDQ0Ylx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMCAoXHUwNDM0XHUwNDNiXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQzOCk6IHswfQorbGlua1N1YnNjcmlwdGlvbi5ub1N1YnNjcmlwdGlvbj1cdTA0MTBcdTA0NDJcdTA0NDBcdTA0MzhcdTA0MzFcdTA0NDNcdTA0NDIgezB9IFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzhcdTA0NDIgXHUwNDM4XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZSBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0M2ZcdTA0MzhcdTA0NDFcdTA0M2FcdTA0MzUgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0NDNcdTA0NDlcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0MzVcdTA0NDIuCitsaW5rVXNlci5pbz1cdTA0MWVcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzAgXHUwNDMyXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwL1x1MDQzMlx1MDQ0Ylx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMCAoXHUwNDM0XHUwNDNiXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Zik6IHswfQorbGlua1VzZXIubm9Vc2VyPVx1MDQxMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0MiB7MH0gXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzZVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzOFx1MDQ0MiBcdTA0MzhcdTA0M2RcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNlIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQzNSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0M1x1MDQ0OVx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQ0M1x1MDQzNVx1MDQ0Mi4KK2xvZ2luLnRpdGxlPVx1MDQxNFx1MDQzNVx1MDQzY1x1MDQzZVx1MDQzZFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzZVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDI3XHUwNDQyXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQ0YiAtIFx1MDQxZlx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzYVx1MDQzMCBcdTA0MzhcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzggXHUwNDM4IFx1MDQzZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0Zi4KK21lbnUuaGVhZGluZz1cdTA0MWRcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M2VcdTA0MzlcdTA0M2FcdTA0MzggXHUwNDMzXHUwNDNiXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0ZSBcdTA0MzRcdTA0M2JcdTA0NGYKK21lbnUubG9nb3V0PVx1MDQxMlx1MDQ0Ylx1MDQzOVx1MDQ0Mlx1MDQzOAorbWVudS5yZWdpc3RyYXRpb249XHUwNDE4XHUwNDM3XHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQzMlx1MDQzZVx1MDQzOCBcdTA0M2RcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M2VcdTA0MzlcdTA0M2FcdTA0MzgKK21haW5NZW51LnRpdGxlPVx1MDQxNFx1MDQzNVx1MDQzY1x1MDQzZVx1MDQzZFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzZVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgJ1x1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0NGInIC0gXHUwNDFlXHUwNDQxXHUwNDNkXHUwNDNlXHUwNDMyXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0ZQorb3B0aW9uLmltYXA9XHUwNDFmXHUwNDQwXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDNhXHUwNDNlXHUwNDNiIElNQVAKK29wdGlvbi5wb3AzPVx1MDQxZlx1MDQ0MFx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQzYVx1MDQzZVx1MDQzYiBQT1AzCisjIHByb21wdC4KK2F1dG9Db25uZWN0PVx1MDQxMFx1MDQzMlx1MDQ0Mlx1MDQzZVx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQzNSBcdTA0NDFcdTA0M2VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzU6Citmcm9tQWRkcmVzcz1cdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyOgorZnVsbE5hbWU9XHUwNDFmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzOFx1MDQzY1x1MDQ0ZjoKK21haWxIb3N0bmFtZT1cdTA0MWZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0NGJcdTA0MzkgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwOgorbWFpbFBhc3N3b3JkPVx1MDQxZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0YyBcdTA0MzRcdTA0M2JcdTA0NGYgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMDoKK21haWxTZXJ2ZXJUeXBlPVx1MDQyMlx1MDQzOFx1MDQzZiBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzA6CittYWlsVXNlcm5hbWU9XHUwNDE4XHUwNDNjXHUwNDRmIFx1MDQzNFx1MDQzYlx1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwOgorcGFzc3dvcmQ9XHUwNDFmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRjOgorcGFzc3dvcmQyPShcdTA0MWZcdTA0M2VcdTA0MzRcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUpIFx1MDQxZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0YzoKK3JlcGx5VG9BZGRyZXNzPVx1MDQxMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MWVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDNkXHUwNDMwOgordXNlcm5hbWU9XHUwNDE4XHUwNDNjXHUwNDRmOgorcmVnaXN0cmF0aW9uLmFkZFN1YnNjcmlwdGlvbj1cdTA0MTRcdTA0M2VcdTA0MzFcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMKK3JlZ2lzdHJhdGlvbi5kZWxldGVTdWJzY3JpcHRpb249XHUwNDIzXHUwNDM0XHUwNDMwXHUwNDNiXHUwNDM4XHUwNDQyXHUwNDRjCityZWdpc3RyYXRpb24uZWRpdFN1YnNjcmlwdGlvbj1cdTA0MjBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2FcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGMKK3JlZ2lzdHJhdGlvbi50aXRsZS5jcmVhdGU9XHUwNDE3XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRjXHUwNDQxXHUwNDRmCityZWdpc3RyYXRpb24udGl0bGUuZWRpdD1cdTA0MThcdTA0MzdcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzZSBcdTA0NDFcdTA0MzJcdTA0M2VcdTA0MzVcdTA0MzkgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4CitzdWJzY3JpcHRpb24udGl0bGUuY3JlYXRlPVx1MDQyMVx1MDQzZVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2RcdTA0M2VcdTA0MzJcdTA0NDNcdTA0NGUgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDQzCitzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlPVx1MDQyM1x1MDQzNFx1MDQzMFx1MDQzYlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDNcdTA0NDlcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0NGVcdTA0NDlcdTA0NDNcdTA0NGUgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDQzCitzdWJzY3JpcHRpb24udGl0bGUuZWRpdD1cdTA0MjBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2FcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDQzXHUwNDRlIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQ0MworCisjIFN0YW5kYXJkIGVycm9yIG1lc3NhZ2VzIGZvciB2YWxpZGF0b3IgZnJhbWV3b3JrIGNoZWNrcworZXJyb3JzLnJlcXVpcmVkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyByZXF1aXJlZC4KK2Vycm9ycy5taW5sZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGNhbm5vdCBiZSBsZXNzIHRoYW4gezF9IGNoYXJhY3RlcnMuCitlcnJvcnMubWF4bGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHsyfSBjaGFyYWN0ZXJzLgorZXJyb3JzLmludmFsaWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGludmFsaWQuCitlcnJvcnMuYnl0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBieXRlLgorZXJyb3JzLnNob3J0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIHNob3J0LgorZXJyb3JzLmludGVnZXI9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gaW50ZWdlci4KK2Vycm9ycy5sb25nPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGxvbmcuCitlcnJvcnMuZmxvYXQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gZmxvYXQuCitlcnJvcnMuZG91YmxlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGRvdWJsZS4KK2Vycm9ycy5kYXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSBkYXRlLgorZXJyb3JzLnJhbmdlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgaW4gdGhlIHJhbmdlIHsxfSB0aHJvdWdoIHsyfS4KK2Vycm9ycy5jcmVkaXRjYXJkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuCitlcnJvcnMuZW1haWw9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGFuIGludmFsaWQgZS1tYWlsIGFkZHJlc3MuCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy9qYXZhL3N0cnV0cy5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9zdHJ1dHMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWM4MTM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9zdHJ1dHMucHJvcGVydGllcwpAQCAtMCwwICsxIEBACitzdHJ1dHMuY3VzdG9tLmkxOG4ucmVzb3VyY2VzPXJlc291cmNlcw0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvc3RydXRzLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL2phdmEvc3RydXRzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGU2Y2M0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvamF2YS9zdHJ1dHMueG1sCkBAIC0wLDAgKzEsMTEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4KKzwhRE9DVFlQRSBzdHJ1dHMgUFVCTElDCisgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDIuMC8vRU4iCisgICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtMi4wLmR0ZCI+CisKKzxzdHJ1dHM+CisgICAgPGNvbnN0YW50IG5hbWU9InN0cnV0cy5kZXZNb2RlIiB2YWx1ZT0idHJ1ZSIvPgorICAgIDxjb25zdGFudCBuYW1lPSJzdHJ1dHMuZW5hYmxlLkR5bmFtaWNNZXRob2RJbnZvY2F0aW9uIiB2YWx1ZT0iZmFsc2UiLz4KKworICAgIDxwYWNrYWdlIG5hbWU9ImRlZmF1bHQiIGV4dGVuZHM9InN0cnV0cy1kZWZhdWx0Ij4KKworICAgICAgICA8aW50ZXJjZXB0b3JzPgorCisgICAgICAgICAgICA8aW50ZXJjZXB0b3IgbmFtZT0iYXV0aGVudGljYXRpb24iCisgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9IkF1dGhlbnRpY2F0aW9uSW50ZXJjZXB0b3IiLz4KKworICAgICAgICAgICAgPGludGVyY2VwdG9yLXN0YWNrIG5hbWU9InVzZXIiPgorICAgICAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0iYXV0aGVudGljYXRpb24iLz4KKyAgICAgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9ImRlZmF1bHRTdGFjayIvPgorICAgICAgICAgICAgPC9pbnRlcmNlcHRvci1zdGFjaz4KKworICAgICAgICAgICAgPGludGVyY2VwdG9yLXN0YWNrIG5hbWU9InVzZXItc3VibWl0Ij4KKyAgICAgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9InRva2VuLXNlc3Npb24iLz4KKyAgICAgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9InVzZXIiLz4KKyAgICAgICAgICAgIDwvaW50ZXJjZXB0b3Itc3RhY2s+CisKKyAgICAgICAgICAgIDxpbnRlcmNlcHRvci1zdGFjayBuYW1lPSJndWVzdCI+CisgICAgICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJkZWZhdWx0U3RhY2siLz4KKyAgICAgICAgICAgIDwvaW50ZXJjZXB0b3Itc3RhY2s+CisKKyAgICAgICAgICAgIDxpbnRlcmNlcHRvci1zdGFjayBuYW1lPSJndWVzdC1zdWJtaXQiPgorICAgICAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0idG9rZW4tc2Vzc2lvbiIvPgorICAgICAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0iZ3Vlc3QiLz4KKyAgICAgICAgICAgIDwvaW50ZXJjZXB0b3Itc3RhY2s+CisKKyAgICAgICAgPC9pbnRlcmNlcHRvcnM+CisKKyAgICAgICAgPGRlZmF1bHQtaW50ZXJjZXB0b3ItcmVmIG5hbWU9InVzZXIiLz4KKworICAgICAgICA8ZGVmYXVsdC1hY3Rpb24tcmVmIG5hbWU9Ik1pc3NpbmciLz4KKworICAgICAgICA8Z2xvYmFsLXJlc3VsdHM+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImVycm9yIj4vcGFnZXMvRXJyb3IuanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImxvZ2luIiB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPkxvZ2luIWlucHV0PC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImNhbmNlbCIgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5XZWxjb21lPC9yZXN1bHQ+CisgICAgICAgIDwvZ2xvYmFsLXJlc3VsdHM+CisKKyAgICAgICAgPGdsb2JhbC1leGNlcHRpb24tbWFwcGluZ3M+CisgICAgICAgICAgICA8ZXhjZXB0aW9uLW1hcHBpbmcKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0PSJlcnJvciIKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uPSJqYXZhLmxhbmcuVGhyb3dhYmxlIi8+CisgICAgICAgIDwvZ2xvYmFsLWV4Y2VwdGlvbi1tYXBwaW5ncz4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IkhlbGxvIiBjbGFzcz0iSGVsbG8iPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvSGVsbG8uanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9Imd1ZXN0Ii8+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTWlzc2luZyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9NaXNzaW5nLmpzcDwvcmVzdWx0PgorICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IldlbGNvbWUiPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvV2VsY29tZS5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0iZ3Vlc3QiLz4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJSZWdpc3RlciIgY2xhc3M9IlJlZ2lzdGVyIj4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9SZWdpc3Rlci5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5NZW51PC9yZXN1bHQ+CisgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9Imd1ZXN0Ii8+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iUmVnaXN0ZXJDcmVhdGUiIGNsYXNzPSJSZWdpc3RlckNyZWF0ZSI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvUmVnaXN0ZXIuanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+TWVudTwvcmVzdWx0PgorICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdC1zdWJtaXQiLz4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJNZW51IiBjbGFzcz0iTWFpbFJlYWRlclN1cHBvcnQiPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvTWVudS5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJMb2dvdXQiIGNsYXNzPSJMb2dvdXQiPgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPldlbGNvbWU8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJMb2dpbiIgY2xhc3M9IkxvZ2luIj4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9Mb2dpbi5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5NZW51PC9yZXN1bHQ+CisgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9Imd1ZXN0Ii8+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iU3Vic2NyaWJlIiBjbGFzcz0iU3Vic2NyaWJlIj4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9TdWJzY3JpYmUuanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+UmVnaXN0ZXIhaW5wdXQ8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJTdWJzY3JpYmVTYXZlIiBjbGFzcz0iU3Vic2NyaWJlU2F2ZSI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvU3Vic2NyaWJlLmpzcDwvcmVzdWx0PgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPlJlZ2lzdGVyIWlucHV0PC9yZXN1bHQ+CisgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9InVzZXItc3VibWl0Ii8+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTlBFIiBjbGFzcz0iTlBFIj4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL0hlbGxvLmpzcDwvcmVzdWx0PgorICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPgorICAgICAgICA8L2FjdGlvbj4KKworICAgIDwvcGFja2FnZT4KKzwvc3RydXRzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvdGVzdC9IZWxsb1Rlc3QuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3Rlc3QvSGVsbG9UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBkZWJmNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3Rlc3QvSGVsbG9UZXN0LmphdmEKQEAgLTAsMCArMSwxNiBAQAoraW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKKworLyoqCisgKiBBbiBleGFtcGxlIHRleHQgY2xhc3MgdG8gdmVyaWZ5IHRoZSBjb25maWd1cmF0aW9uLgorICovCitwdWJsaWMgY2xhc3MgSGVsbG9UZXN0IGV4dGVuZHMgVGVzdENhc2UgeworCisgICAgLyoqCisgICAgICogQW4gZXhhbXBsZSB0ZXN0IHRoYXQgYXNzZXJ0cyB0cnVlLgorICAgICAqCisgICAgICogQHRocm93cyBFeGNlcHRpb24gT24gaW52YWxpZCBhc3NlcnRpb25zCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEhlbGxvQWN0aW9uKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGFzc2VydFRydWUodHJ1ZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvdGVzdC9SZWdpc3RlclRlc3QuamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3Rlc3QvUmVnaXN0ZXJUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTFiNDNlMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3Rlc3QvUmVnaXN0ZXJUZXN0LmphdmEKQEAgLTAsMCArMSwzNCBAQAoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKKworcHVibGljIGNsYXNzIFJlZ2lzdGVyVGVzdCBleHRlbmRzIFJldGFpblRlc3QgeworCisgICAgUmVnaXN0ZXIgYWN0aW9uID0gbnVsbDsKKworICAgIHB1YmxpYyB2b2lkIHNldFVwKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHN1cGVyLnNldFVwKCk7CisgICAgICAgIGFjdGlvbiA9IG5ldyBSZWdpc3RlcigpOworICAgICAgICBhY3Rpb24uc2V0QXBwbGljYXRpb24obmV3IEhhc2hNYXAoKSk7CisgICAgICAgIGFjdGlvbi5zZXREYXRhYmFzZShkYXRhYmFzZSk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBhY3Rpb24uc2V0VXNlcm5hbWUoInVzZXIiKTsKKyAgICAgICAgYWN0aW9uLnNldFBhc3N3b3JkKCJwYXNzIik7CisgICAgICAgIGFjdGlvbi5zZXRGdWxsTmFtZSgiSm9obiBRLiBVc2VyIik7CisgICAgICAgIGFjdGlvbi5zZXRGcm9tQWRkcmVzcygiSm9obi5Vc2VyQHNvbWV3aGVyZS5jb20iKTsKKworICAgICAgICBTdHJpbmcgc3VjY2VzcyA9IGFjdGlvbi5zYXZlKCk7CisgICAgICAgIGFzc2VydFRydWUoIkV4cGVjdGVkIFNVQ0NFU1MiLCBBY3Rpb24uU1VDQ0VTUy5lcXVhbHMoc3VjY2VzcykpOworCisgICAgICAgIFVzZXIgdXNlciA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoIkV4cGVjdGVkIHVzZXIiLCB1c2VyKTsKKworICAgICAgICBTdHJpbmcgaW5wdXQgPSBhY3Rpb24uc2F2ZSgpOworICAgICAgICBhc3NlcnRUcnVlKCJFeHBlY3RlZCBJTlBVVCIsIEFjdGlvbi5JTlBVVC5lcXVhbHMoaW5wdXQpKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3Rlc3QvUmV0YWluVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvdGVzdC9SZXRhaW5UZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjY2NmY3MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3Rlc3QvUmV0YWluVGVzdC5qYXZhCkBAIC0wLDAgKzEsOTcgQEAKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5TdWJzY3JpcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlckRhdGFiYXNlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uaW1wbC5tZW1vcnkuTWVtb3J5VXNlckRhdGFiYXNlOworCitwdWJsaWMgY2xhc3MgUmV0YWluVGVzdCBleHRlbmRzIFRlc3RDYXNlIHsKKworICAgIHByb3RlY3RlZCBVc2VyRGF0YWJhc2UgZGF0YWJhc2U7CisgICAgcHJvdGVjdGVkIFN0cmluZyB0ZXN0TmFtZSA9ICJ0ZXN0LWRhdGFiYXNlLnhtbCI7CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBzdXBlci5zZXRVcCgpOworICAgICAgICBNZW1vcnlVc2VyRGF0YWJhc2UgbWVtb3J5VXNlckRhdGFiYXNlID0gbmV3IE1lbW9yeVVzZXJEYXRhYmFzZSgpOworICAgICAgICBtZW1vcnlVc2VyRGF0YWJhc2Uuc2V0UGF0aG5hbWUodGVzdE5hbWUpOworICAgICAgICBkYXRhYmFzZSA9IG1lbW9yeVVzZXJEYXRhYmFzZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGF0YWJhc2VDbGVhbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCB1c2VyIHRvIGJlIG1pc3NpbmciLCB1c2VyKTsKKyAgICB9CisKKyAgICAvLyAgQWRkIHlvdXIgdGVzdCBtZXRob2RzIGhlcmUuCisgICAgLy8gIFRoZSBzZXRVcCBtZXRob2Qgd2lsbCBydW4gYmV0d2VlbiBlYWNoIHRlc3QuCisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q3JlYXRlVXNlcigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBVc2VyIHVzZXIgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIGFzc2VydE5vdE51bGwodXNlcik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdEZpbmRVc2VyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFVzZXIgdXNlcjEgPSBkYXRhYmFzZS5jcmVhdGVVc2VyKCJ1c2VyIik7CisgICAgICAgIFVzZXIgdXNlcjIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnRTYW1lKCJFeHBlY3RlZCB1c2VycyB0byBtYXRjaCIsIHVzZXIxLCB1c2VyMik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgdGVzdENyZWF0ZVN1YnNjcmlwdGlvbigpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRXhwZWN0ZWQgc3Vic2NyaXB0aW9uIHRvIGJlIGNyZWF0ZWQiLCBzdWIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kU3Vic2NyaXB0aW9uKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIxID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpLmNyZWF0ZVN1YnNjcmlwdGlvbigibWFpbC55YWhvby5jb20iKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjIgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpLmZpbmRTdWJzY3JpcHRpb24oIm1haWwueWFob28uY29tIik7CisgICAgICAgIGFzc2VydFNhbWUoIkV4cGVjdGVkIFN1YnNjcmlwdGlvbnMgdG8gbWF0Y2giLCBzdWIxLCBzdWIyKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGF0YWJzYWVTYXZlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICB1c2VyLnNldFBhc3N3b3JkKCJwYXNzIik7CisgICAgICAgIHVzZXIuc2V0RnVsbE5hbWUoIkpvaG4gUS4gVXNlciIpOworICAgICAgICB1c2VyLnNldEZyb21BZGRyZXNzKCJKb2huLlVzZXJAc29tZXdoZXJlLmNvbSIpOworCisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIxID0gdXNlci5jcmVhdGVTdWJzY3JpcHRpb24oIm1haWwuaG90bWFpbC5jb20iKTsKKyAgICAgICAgc3ViMS5zZXRVc2VybmFtZSgidXNlcjEyMzQiKTsKKyAgICAgICAgc3ViMS5zZXRBdXRvQ29ubmVjdChmYWxzZSk7CisgICAgICAgIHN1YjEuc2V0VHlwZSgicG9wMyIpOworICAgICAgICBzdWIxLnNldFBhc3N3b3JkKCJiYXIiKTsKKworICAgICAgICBTdWJzY3JpcHRpb24gc3ViMiA9IHVzZXIuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLnlhaG9vLmNvbSIpOworICAgICAgICBzdWIyLnNldFVzZXJuYW1lKCJqcXVzZXIiKTsKKyAgICAgICAgc3ViMi5zZXRBdXRvQ29ubmVjdChmYWxzZSk7CisgICAgICAgIHN1YjIuc2V0VHlwZSgiaW1hcCIpOworICAgICAgICBzdWIyLnNldFBhc3N3b3JkKCJmb28iKTsKKworICAgICAgICBkYXRhYmFzZS5zYXZlKCk7CisKKyAgICB9CisKKyAgICAvLyBFeHRyYSBjcmVkaXQKKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kZXJVc2VyQm9ndXMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyMSA9IGRhdGFiYXNlLmZpbmRVc2VyKCJib2d1cyIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCBib2d1cyB1c2VyIHRvIGJlIG5vdCBmb3VuZCIsIHVzZXIxKTsKKyAgICAgICAgVXNlciB1c2VyMiA9IGRhdGFiYXNlLmNyZWF0ZVVzZXIoInVzZXIiKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiRXhwZWN0ZWQgdXNlciB0byBiZSBjcmVhdGVkIiwgdXNlcjIpOworICAgICAgICB1c2VyMSA9IGRhdGFiYXNlLmZpbmRVc2VyKCJib2d1cyIpOworICAgICAgICBhc3NlcnROdWxsKCJFeHBlY3RlZCBib2d1cyB1c2VyIHRvIGJlIG5vdCBmb3VuZCIsIHVzZXIxKTsKKyAgICAgICAgdXNlcjEgPSBkYXRhYmFzZS5maW5kVXNlcigidXNlciIpOworICAgICAgICBhc3NlcnROb3ROdWxsKCJFeHBlY3RlZCB1c2VyIHRvIGJlIGZvdW5kIiwgdXNlcjEpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHRlc3RGaW5kU3ViQm9ndXMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgVXNlciB1c2VyID0gZGF0YWJhc2UuY3JlYXRlVXNlcigidXNlciIpOworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gdXNlci5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLmJvZ3VzLmNvbSIpOworICAgICAgICBhc3NlcnROdWxsKHN1Yik7CisgICAgICAgIHN1YiA9IGRhdGFiYXNlLmZpbmRVc2VyKCJ1c2VyIikuY3JlYXRlU3Vic2NyaXB0aW9uKCJtYWlsLmhvdG1haWwuY29tIik7CisgICAgICAgIGFzc2VydE5vdE51bGwoc3ViKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjIgPSB1c2VyLmZpbmRTdWJzY3JpcHRpb24oIm1haWwuYm9ndXMuY29tIik7CisgICAgICAgIGFzc2VydE51bGwoc3ViMik7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIzID0gdXNlci5maW5kU3Vic2NyaXB0aW9uKCJtYWlsLmhvdG1haWwuY29tIik7CisgICAgICAgIGFzc2VydFNhbWUoc3ViLCBzdWIzKTsKKyAgICB9CisKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9XZWJUZXN0LmR0ZCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL1dlYlRlc3QuZHRkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmOGEzNDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9XZWJUZXN0LmR0ZApAQCAtMCwwICsxLDQ2OTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/PgorPCFFTlRJVFkgJSBib29sZWFuICIodHJ1ZXxmYWxzZXxvbnxvZmZ8eWVzfG5vKSI+Cis8IUVOVElUWSAlIHRhc2tzICJwcm9wZXJ0eWZpbGUgfCBjY21rZGlyIHwgaW1wb3J0dHlwZWxpYiB8IHZzc2NoZWNraW4gfCBzcWwgfCBjdnNwYXNzIHwgY3NjIHwgZGlybmFtZSB8IHJlcGxhY2VyZWdleHAgfCBnZXQgfCBqanRyZWUgfCBzbGVlcCB8IGphcmxpYi1kaXNwbGF5IHwgbGVuZ3RoIHwgZGVwZW5kc2V0IHwgemlwIHwgcGF0Y2ggfCBqc3BjIHwgc3R5bGUgfCBuaWNlIHwgdGVzdCB8IHRzdGFtcCB8IHVud2FyIHwgdnNzaGlzdG9yeSB8IGN2c2NoYW5nZWxvZyB8IGNjbWNoZWNraW4gfCBiemlwMiB8IHN5bmMgfCB2c3NhZGQgfCBqYXZhZG9jIHwgdHJhbnNsYXRlIHwgc2lnbmphciB8IGNjbG9jayB8IGNob3duIHwgamFybGliLWF2YWlsYWJsZSB8IFdzZGxUb0RvdG5ldCB8IGJ1aWxkbnVtYmVyIHwganBjb3ZtZXJnZSB8IGN2c3ZlcnNpb24gfCBlamJqYXIgfCB3YXIgfCByZW5hbWUgfCBzZXF1ZW50aWFsIHwgc2VydmVyZGVwbG95IHwgcHJvcGVydHkgfCBzdWJhbnQgfCBtb3ZlIHwgaWxkYXNtIHwgY29weWRpciB8IGNjY2hlY2tpbiB8IGNjdW5sb2NrIHwgd2xqc3BjIHwgZml4Y3JsZiB8IHNvc2dldCB8IHBhdGhjb252ZXJ0IHwgcmVjb3JkIHwgZXhlYyB8IGNjbWtsYWJlbCB8IG1hbmlmZXN0IHwganBjb3ZyZXBvcnQgfCBleGVjb24gfCBjY21jaGVja291dCB8IGFudCB8IHhtbHZhbGlkYXRlIHwgeHNsdCB8IGlwbGFuZXQtZWpiYyB8IGNjbWNoZWNraW50YXNrIHwgZ3ppcCB8IG5hdGl2ZTJhc2NpaSB8IGNjcm10eXBlIHwgZWFyIHwgaW5wdXQgfCBwcmVzZXRkZWYgfCBybWljIHwgY2hlY2tzdW0gfCBtYWlsIHwgbG9hZGZpbGUgfCB2c3NjaGVja291dCB8IHNvc2NoZWNraW4gfCBtaW1lbWFpbCB8IGd1bnppcCB8IGNvbmNhdCB8IGNhYiB8IHRvdWNoIHwgcGFyYWxsZWwgfCBhbnRjYWxsIHwgY2Nta2JsIHwgY2NjaGVja291dCB8IHR5cGVkZWYgfCBmaWx0ZXIgfCB4bWxwcm9wZXJ0eSB8IGltcG9ydCB8IGNvcHkgfCBqc2hhcnBjIHwgc3ltbGluayB8IGFudHN0cnVjdHVyZSB8IHNjcmlwdCB8IGNjbWNyZWF0ZXRhc2sgfCBycG0gfCBkZWxldGUgfCByZXBsYWNlIHwgbW1ldHJpY3MgfCBhdHRyaWIgfCB3YWl0Zm9yIHwgdW50YXIgfCBsb2FkcHJvcGVydGllcyB8IGF2YWlsYWJsZSB8IGVjaG9wcm9wZXJ0aWVzIHwganVuaXQgfCBjaGdycCB8IGJ1bnppcDIgfCB3aGljaHJlc291cmNlIHwgY29weWZpbGUgfCB2c3NjcmVhdGUgfCBtYWNyb2RlZiB8IHVuamFyIHwgdmJjIHwgd3NkbHRvZG90bmV0IHwgbWtkaXIgfCBjb25kaXRpb24gfCBjdnMgfCB0ZW1wZmlsZSB8IGp1bml0cmVwb3J0IHwgY2Nta2F0dHIgfCB0YXNrZGVmIHwgZWNobyB8IGNjdXBkYXRlIHwgamF2YSB8IHJlbmFtZWV4dCB8IHZzc2xhYmVsIHwgYmFzZW5hbWUgfCBqYXZhZG9jMiB8IHZzc2NwIHwgdGFyIHwgc2V0cHJveHkgfCBpbGFzbSB8IHNvc2NoZWNrb3V0IHwgYXBwbHkgfCBjY3VuY2hlY2tvdXQgfCBqYXJsaWItcmVzb2x2ZSB8IGN2c3RhZ2RpZmYgfCBqbGluayB8IGphdmFjYyB8IGNobW9kIHwgcHZjcyB8IGphcmxpYi1tYW5pZmVzdCB8IGphciB8IGNjbWtsYnR5cGUgfCBzY3JpcHRkZWYgfCBkZWZhdWx0ZXhjbHVkZXMgfCBtcGFyc2UgfCBibGdlbmNsaWVudCB8IHVwdG9kYXRlIHwgampkb2MgfCBnZW5rZXkgfCBqYXZhaCB8IGNjbWtlbGVtIHwgY2NtcmVjb25maWd1cmUgfCBmYWlsIHwgdW56aXAgfCBqYXZhYyB8IGpwY292ZXJhZ2UgfCBzb3NsYWJlbCB8IGRlcGVuZCB8IHZzc2dldCB8IGRlbHRyZWUiPgorPCFFTlRJVFkgJSB0eXBlcyAicGF0dGVybnNldCB8IGFzc2VydGlvbnMgfCBwcm9wZXJ0eXNldCB8IGZpbHRlcm1hcHBlciB8IGZpbHRlcnNldCB8IGxpYmZpbGVzZXQgfCBpc2ZpbGVzZWxlY3RlZCB8IG1lcmdlbWFwcGVyIHwgaWRlbnRpdHltYXBwZXIgfCBmaWx0ZXJyZWFkZXIgfCBzY3JpcHRmaWx0ZXIgfCB1bnBhY2thZ2VtYXBwZXIgfCBjb25jYXRmaWx0ZXIgfCBleHRlbnNpb24gfCBmaWxlc2V0IHwgZGlyc2V0IHwgZ2xvYm1hcHBlciB8IGZpbGVsaXN0IHwgZmlsdGVyY2hhaW4gfCBwYXRoIHwgY29tcG9zaXRlbWFwcGVyIHwgY2xhc3NmaWxlc2V0IHwgcmVnZXhwbWFwcGVyIHwgc2VsZWN0b3IgfCB4bWxjYXRhbG9nIHwgZmxhdHRlbm1hcHBlciB8IGRlc2NyaXB0aW9uIHwgY2hhaW5lZG1hcHBlciB8IHBhY2thZ2VtYXBwZXIgfCBtYXBwZXIgfCB6aXBmaWxlc2V0IHwgc3Vic3RpdHV0aW9uIHwgZXh0ZW5zaW9uU2V0IHwgcmVkaXJlY3RvciB8IHJlZ2V4cCI+CisKKzwhRUxFTUVOVCBwcm9qZWN0ICh0YXJnZXQgfCAldGFza3M7IHwgJXR5cGVzOykqPgorPCFBVFRMSVNUIHByb2plY3QKKyAgICAgICAgICBuYW1lICAgIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJnZXQgKCV0YXNrczsgfCAldHlwZXM7KSo+CisKKzwhQVRUTElTVCB0YXJnZXQKKyAgICAgICAgICBpZCAgICAgICAgICBJRCAgICAjSU1QTElFRAorICAgICAgICAgIG5hbWUgICAgICAgIENEQVRBICNSRVFVSVJFRAorICAgICAgICAgIGlmICAgICAgICAgIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzICAgICAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXBlbmRzICAgICBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0dGVybnNldCAoaW5jbHVkZSB8IHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgZXhjbHVkZXNmaWxlIHwgaW5jbHVkZXNmaWxlKSo+Cis8IUFUVExJU1QgcGF0dGVybnNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbmNsdWRlIEVNUFRZPgorPCFBVFRMSVNUIGluY2x1ZGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4Y2x1ZGUgRU1QVFk+Cis8IUFUVExJU1QgZXhjbHVkZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhjbHVkZXNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGV4Y2x1ZGVzZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW5jbHVkZXNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGluY2x1ZGVzZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVubGVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYXNzZXJ0aW9ucyAoZGlzYWJsZSB8IGVuYWJsZSkqPgorPCFBVFRMSVNUIGFzc2VydGlvbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVzeXN0ZW1hc3NlcnRpb25zICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRpc2FibGUgRU1QVFk+Cis8IUFUVExJU1QgZGlzYWJsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZW5hYmxlIEVNUFRZPgorPCFBVFRMSVNUIGVuYWJsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJvcGVydHlzZXQgKHByb3BlcnR5cmVmIHwgcHJvcGVydHlzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBwcm9wZXJ0eXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGR5bmFtaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmVnYXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByb3BlcnR5cmVmIEVNUFRZPgorPCFBVFRMSVNUIHByb3BlcnR5cmVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVpbHRpbiAoYWxsIHwgc3lzdGVtIHwgY29tbWFuZGxpbmUpICNJTVBMSUVECisgICAgICAgICAgcmVnZXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYXBwZXIgKGNsYXNzcGF0aCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIG1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoaWRlbnRpdHkgfCBmbGF0dGVuIHwgZ2xvYiB8IG1lcmdlIHwgcmVnZXhwIHwgcGFja2FnZSB8IHVucGFja2FnZSkgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3NwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdXN0b20gKGNsYXNzcGF0aCB8IHBhcmFtKSo+Cis8IUFUVExJU1QgY3VzdG9tCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYXJhbSBFTVBUWT4KKzwhQVRUTElTVCBwYXJhbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByZXNlbnQgKG1hcHBlcikqPgorPCFBVFRMSVNUIHByZXNlbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZXNlbnQgKHNyY29ubHkgfCBib3RoKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG5vbmUgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIG5vbmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG5vdCAoY3VzdG9tIHwgbm9uZSB8IHByZXNlbnQgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgZGF0ZSB8IGFuZCB8IGRlcHRoKSo+Cis8IUFUVExJU1Qgbm90CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0eXBlIEVNUFRZPgorPCFBVFRMSVNUIHR5cGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyKSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbW9kaWZpZWQgKHBhcmFtKSo+Cis8IUFUVExJU1QgbW9kaWZpZWQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNvbXBhcmF0b3IgKGVxdWFsIHwgcnVsZSkgI0lNUExJRUQKKyAgICAgICAgICBzZWxkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFsZ29yaXRobSAoaGFzaHZhbHVlIHwgZGlnZXN0KSAjSU1QTElFRAorICAgICAgICAgIGNhY2hlIChwcm9wZXJ0eWZpbGUpICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIG9yIChjdXN0b20gfCBub25lIHwgcHJlc2VudCB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBkYXRlIHwgYW5kIHwgZGVwdGgpKj4KKzwhQVRUTElTVCBvcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29udGFpbnMgRU1QVFk+Cis8IUFUVExJU1QgY29udGFpbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3Jld2hpdGVzcGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0ZXh0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVwZW5kIChtYXBwZXIpKj4KKzwhQVRUTElTVCBkZXBlbmQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGlmZmVyZW50IChtYXBwZXIpKj4KKzwhQVRUTElTVCBkaWZmZXJlbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZWNvbnRlbnRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZWZpbGV0aW1lcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNpemUgRU1QVFk+Cis8IUFUVExJU1Qgc2l6ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgd2hlbiAobGVzcyB8IG1vcmUgfCBlcXVhbCkgI0lNUExJRUQKKyAgICAgICAgICB1bml0cyAoSyB8IGsgfCBraWxvIHwgS0lMTyB8IEtpIHwgS0kgfCBraSB8IGtpYmkgfCBLSUJJIHwgTSB8IG0gfCBtZWdhIHwgTUVHQSB8IE1pIHwgTUkgfCBtaSB8IG1lYmkgfCBNRUJJIHwgRyB8IGcgfCBnaWdhIHwgR0lHQSB8IEdpIHwgR0kgfCBnaSB8IGdpYmkgfCBHSUJJIHwgVCB8IHQgfCB0ZXJhIHwgVEVSQSB8IFRpIHwgVEkgfCB0aSB8IHRlYmkgfCBURUJJKSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFqb3JpdHkgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIG1ham9yaXR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgYWxsb3d0aWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb250YWluc3JlZ2V4cCBFTVBUWT4KKzwhQVRUTElTVCBjb250YWluc3JlZ2V4cAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhwcmVzc2lvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGVuYW1lIEVNUFRZPgorPCFBVFRMSVNUIGZpbGVuYW1lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZWdhdGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2VsZWN0b3IgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIHNlbGVjdG9yCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRhdGUgRU1QVFk+Cis8IUFUVExJU1QgZGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBtaWxsaXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGVja2RpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGF0ZXRpbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncmFudWxhcml0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aGVuIChiZWZvcmUgfCBhZnRlciB8IGVxdWFsKSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhbmQgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIGFuZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVwdGggRU1QVFk+Cis8IUFUVExJU1QgZGVwdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG1heCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWluIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRpcnNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZGlyc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHRkaXJzIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBleHRkaXJzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhpc3RpbmcgKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGV4aXN0aW5nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZWxpc3QgKGZpbGUpKj4KKzwhQVRUTElTVCBmaWxlbGlzdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsZSBFTVBUWT4KKzwhQVRUTElTVCBmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0aGVsZW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgcGF0aGVsZW1lbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIHBhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJtYXBwZXIgKGhlYWRmaWx0ZXIgfCBjbGFzc2NvbnN0YW50cyB8IGxpbmVjb250YWlucyB8IGZpbHRlcnJlYWRlciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2V0b2tlbnMgfCBlc2NhcGV1bmljb2RlIHwgaWdub3JlYmxhbmsgfCB0YWlsZmlsdGVyIHwgdGFic3Rvc3BhY2VzIHwgcHJlZml4bGluZXMgfCB0cmltIHwgZXhwYW5kcHJvcGVydGllcyB8IHN0cmlwbGluZWJyZWFrcyB8IHJlcGxhY2VzdHJpbmcgfCBzdHJpcGxpbmVjb21tZW50cyB8IHRva2VuZmlsdGVyIHwgc3RyaXBqYXZhY29tbWVudHMgfCBjb250YWluc3JlZ2V4IHwgZGVsZXRlY2hhcmFjdGVycyB8IGxpbmVjb250YWluc3JlZ2V4cCkqPgorPCFBVFRMSVNUIGZpbHRlcm1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGhlYWRmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgaGVhZGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBza2lwIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3Njb25zdGFudHMgRU1QVFk+Cis8IUFUVExJU1QgY2xhc3Njb25zdGFudHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpbmVjb250YWlucyAoY29udGFpbnMpKj4KKzwhQVRUTElTVCBsaW5lY29udGFpbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnJlYWRlciAoY2xhc3NwYXRoIHwgcGFyYW0pKj4KKzwhQVRUTElTVCBmaWx0ZXJyZWFkZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNlcmVnZXggRU1QVFk+Cis8IUFUVExJU1QgcmVwbGFjZXJlZ2V4CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGFncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2V0b2tlbnMgKHRva2VuKSo+Cis8IUFUVExJU1QgcmVwbGFjZXRva2VucworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYmVnaW50b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZHRva2VuIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdG9rZW4gRU1QVFk+Cis8IUFUVExJU1QgdG9rZW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGtleSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXNjYXBldW5pY29kZSBFTVBUWT4KKzwhQVRUTElTVCBlc2NhcGV1bmljb2RlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpZ25vcmVibGFuayBFTVBUWT4KKzwhQVRUTElTVCBpZ25vcmVibGFuaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhaWxmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgdGFpbGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBza2lwIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGFic3Rvc3BhY2VzIEVNUFRZPgorPCFBVFRMSVNUIHRhYnN0b3NwYWNlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFibGVuZ3RoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJlZml4bGluZXMgRU1QVFk+Cis8IUFUVExJU1QgcHJlZml4bGluZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRyaW0gRU1QVFk+Cis8IUFUVExJU1QgdHJpbQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4cGFuZHByb3BlcnRpZXMgRU1QVFk+Cis8IUFUVExJU1QgZXhwYW5kcHJvcGVydGllcworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3RyaXBsaW5lYnJlYWtzIEVNUFRZPgorPCFBVFRMSVNUIHN0cmlwbGluZWJyZWFrcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGluZWJyZWFrcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2VzdHJpbmcgRU1QVFk+Cis8IUFUVExJU1QgcmVwbGFjZXN0cmluZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYnlsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHN0cmlwbGluZWNvbW1lbnRzIChjb21tZW50KSo+Cis8IUFUVExJU1Qgc3RyaXBsaW5lY29tbWVudHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgY29tbWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0b2tlbmZpbHRlciAoY29udGFpbnNzdHJpbmcgfCBsaW5ldG9rZW5pemVyIHwgdHJpbSB8IHN0cmluZ3Rva2VuaXplciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2VzdHJpbmcgfCBpZ25vcmVibGFuayB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBjb250YWluc3JlZ2V4IHwgZmlsZXRva2VuaXplcikqPgorPCFBVFRMSVNUIHRva2VuZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZWxpbW91dHB1dCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbnRhaW5zc3RyaW5nIEVNUFRZPgorPCFBVFRMSVNUIGNvbnRhaW5zc3RyaW5nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjb250YWlucyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpbmV0b2tlbml6ZXIgRU1QVFk+Cis8IUFUVExJU1QgbGluZXRva2VuaXplcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWRlbGltcyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdHJpbmd0b2tlbml6ZXIgRU1QVFk+Cis8IUFUVExJU1Qgc3RyaW5ndG9rZW5pemVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdXBwcmVzc2RlbGltcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVsaW1zICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlbGltc2FyZXRva2VucyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWxpbXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZWxldGVjaGFyYWN0ZXJzIEVNUFRZPgorPCFBVFRMSVNUIGRlbGV0ZWNoYXJhY3RlcnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNoYXJzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29udGFpbnNyZWdleCBFTVBUWT4KKzwhQVRUTElTVCBjb250YWluc3JlZ2V4CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGFncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGV0b2tlbml6ZXIgRU1QVFk+Cis8IUFUVExJU1QgZmlsZXRva2VuaXplcgorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3RyaXBqYXZhY29tbWVudHMgRU1QVFk+Cis8IUFUVExJU1Qgc3RyaXBqYXZhY29tbWVudHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxpbmVjb250YWluc3JlZ2V4cCAocmVnZXhwKSo+Cis8IUFUVExJU1QgbGluZWNvbnRhaW5zcmVnZXhwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZWdleHAgRU1QVFk+Cis8IUFUVExJU1QgcmVnZXhwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnNldCAoZmlsdGVyc2V0IHwgZmlsdGVyIHwgZmlsdGVyc2ZpbGUpKj4KKzwhQVRUTElTVCBmaWx0ZXJzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJlZ2ludG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmR0b2tlbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcnNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmlsdGVyIEVNUFRZPgorPCFBVFRMSVNUIGZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGZpbHRlcnNmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGliZmlsZXNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgbGliZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB1cmxiYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWltcGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRldXJsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXNmaWxlc2VsZWN0ZWQgKGN1c3RvbSB8IG5vbmUgfCBwcmVzZW50IHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGRhdGUgfCBhbmQgfCBkZXB0aCkqPgorPCFBVFRMSVNUIGlzZmlsZXNlbGVjdGVkCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXJnZW1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBtZXJnZW1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaWRlbnRpdHltYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgaWRlbnRpdHltYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNjcmlwdGZpbHRlciAoI1BDREFUQSk+Cis8IUFUVExJU1Qgc2NyaXB0ZmlsdGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBieWxpbmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVucGFja2FnZW1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCB1bnBhY2thZ2VtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhhbmRsZWRpcnNlcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbmNhdGZpbHRlciBFTVBUWT4KKzwhQVRUTElTVCBjb25jYXRmaWx0ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZXBlbmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHRlbnNpb24gRU1QVFk+Cis8IUFUVExJU1QgZXh0ZW5zaW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9udmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwZWNpZmljYXRpb252ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZW5zaW9ubmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9udmVuZG9yaWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGVjaWZpY2F0aW9udmVuZG9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW1wbGVtZW50YXRpb251cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9udmVuZG9yIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ2xvYm1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBnbG9ibWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBoYW5kbGVkaXJzZXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWx0ZXJjaGFpbiAoaGVhZGZpbHRlciB8IGNsYXNzY29uc3RhbnRzIHwgbGluZWNvbnRhaW5zIHwgZmlsdGVycmVhZGVyIHwgcmVwbGFjZXJlZ2V4IHwgcmVwbGFjZXRva2VucyB8IGVzY2FwZXVuaWNvZGUgfCBpZ25vcmVibGFuayB8IHRhaWxmaWx0ZXIgfCB0YWJzdG9zcGFjZXMgfCBwcmVmaXhsaW5lcyB8IHRyaW0gfCBleHBhbmRwcm9wZXJ0aWVzIHwgc3RyaXBsaW5lYnJlYWtzIHwgcmVwbGFjZXN0cmluZyB8IHN0cmlwbGluZWNvbW1lbnRzIHwgdG9rZW5maWx0ZXIgfCBzdHJpcGphdmFjb21tZW50cyB8IGNvbnRhaW5zcmVnZXggfCBkZWxldGVjaGFyYWN0ZXJzIHwgbGluZWNvbnRhaW5zcmVnZXhwKSo+Cis8IUFUVExJU1QgZmlsdGVyY2hhaW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21wb3NpdGVtYXBwZXIgKG1hcHBlcikqPgorPCFBVFRMSVNUIGNvbXBvc2l0ZW1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2xhc3NmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCByb290ZmlsZXNldCB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgcm9vdCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjbGFzc2ZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByb290Y2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJvb3RmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCByb290ZmlsZXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcm9vdCBFTVBUWT4KKzwhQVRUTElTVCByb290CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZWdleHBtYXBwZXIgRU1QVFk+Cis8IUFUVExJU1QgcmVnZXhwbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBoYW5kbGVkaXJzZXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB4bWxjYXRhbG9nIChlbnRpdHkgfCBjbGFzc3BhdGggfCBjYXRhbG9ncGF0aCB8IGR0ZCB8IHhtbGNhdGFsb2cpKj4KKzwhQVRUTElTVCB4bWxjYXRhbG9nCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjYXRhbG9ncGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlbnRpdHkgRU1QVFk+Cis8IUFUVExJU1QgZW50aXR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdWJsaWNpZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNhdGFsb2dwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBjYXRhbG9ncGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGR0ZCBFTVBUWT4KKzwhQVRUTElTVCBkdGQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1YmxpY2lkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmxhdHRlbm1hcHBlciBFTVBUWT4KKzwhQVRUTElTVCBmbGF0dGVubWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZXNjcmlwdGlvbiAoI1BDREFUQSk+Cis8IUFUVExJU1QgZGVzY3JpcHRpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjaGFpbmVkbWFwcGVyIChtYXBwZXIpKj4KKzwhQVRUTElTVCBjaGFpbmVkbWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYWNrYWdlbWFwcGVyIEVNUFRZPgorPCFBVFRMSVNUIHBhY2thZ2VtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhhbmRsZWRpcnNlcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHppcGZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHppcGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3Vic3RpdHV0aW9uIEVNUFRZPgorPCFBVFRMSVNUIHN1YnN0aXR1dGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4cHJlc3Npb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleHRlbnNpb25TZXQgKGZpbGVzZXQgfCBsaWJmaWxlc2V0IHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgZXh0ZW5zaW9uU2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVkaXJlY3RvciAoZXJyb3JmaWx0ZXJjaGFpbiB8IG91dHB1dGZpbHRlcmNoYWluIHwgZXJyb3JtYXBwZXIgfCBpbnB1dGZpbHRlcmNoYWluIHwgb3V0cHV0bWFwcGVyIHwgaW5wdXRtYXBwZXIpKj4KKzwhQVRUTElTVCByZWRpcmVjdG9yCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGlucHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY3JlYXRlZW1wdHlmaWxlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhbHdheXNsb2cgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlcnJvcmZpbHRlcmNoYWluIChoZWFkZmlsdGVyIHwgY2xhc3Njb25zdGFudHMgfCBsaW5lY29udGFpbnMgfCBmaWx0ZXJyZWFkZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNldG9rZW5zIHwgZXNjYXBldW5pY29kZSB8IGlnbm9yZWJsYW5rIHwgdGFpbGZpbHRlciB8IHRhYnN0b3NwYWNlcyB8IHByZWZpeGxpbmVzIHwgdHJpbSB8IGV4cGFuZHByb3BlcnRpZXMgfCBzdHJpcGxpbmVicmVha3MgfCByZXBsYWNlc3RyaW5nIHwgc3RyaXBsaW5lY29tbWVudHMgfCB0b2tlbmZpbHRlciB8IHN0cmlwamF2YWNvbW1lbnRzIHwgY29udGFpbnNyZWdleCB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBsaW5lY29udGFpbnNyZWdleHApKj4KKzwhQVRUTElTVCBlcnJvcmZpbHRlcmNoYWluCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3V0cHV0ZmlsdGVyY2hhaW4gKGhlYWRmaWx0ZXIgfCBjbGFzc2NvbnN0YW50cyB8IGxpbmVjb250YWlucyB8IGZpbHRlcnJlYWRlciB8IHJlcGxhY2VyZWdleCB8IHJlcGxhY2V0b2tlbnMgfCBlc2NhcGV1bmljb2RlIHwgaWdub3JlYmxhbmsgfCB0YWlsZmlsdGVyIHwgdGFic3Rvc3BhY2VzIHwgcHJlZml4bGluZXMgfCB0cmltIHwgZXhwYW5kcHJvcGVydGllcyB8IHN0cmlwbGluZWJyZWFrcyB8IHJlcGxhY2VzdHJpbmcgfCBzdHJpcGxpbmVjb21tZW50cyB8IHRva2VuZmlsdGVyIHwgc3RyaXBqYXZhY29tbWVudHMgfCBjb250YWluc3JlZ2V4IHwgZGVsZXRlY2hhcmFjdGVycyB8IGxpbmVjb250YWluc3JlZ2V4cCkqPgorPCFBVFRMSVNUIG91dHB1dGZpbHRlcmNoYWluCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXJyb3JtYXBwZXIgKGNsYXNzcGF0aCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIGVycm9ybWFwcGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChpZGVudGl0eSB8IGZsYXR0ZW4gfCBnbG9iIHwgbWVyZ2UgfCByZWdleHAgfCBwYWNrYWdlIHwgdW5wYWNrYWdlKSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0byBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbnB1dGZpbHRlcmNoYWluIChoZWFkZmlsdGVyIHwgY2xhc3Njb25zdGFudHMgfCBsaW5lY29udGFpbnMgfCBmaWx0ZXJyZWFkZXIgfCByZXBsYWNlcmVnZXggfCByZXBsYWNldG9rZW5zIHwgZXNjYXBldW5pY29kZSB8IGlnbm9yZWJsYW5rIHwgdGFpbGZpbHRlciB8IHRhYnN0b3NwYWNlcyB8IHByZWZpeGxpbmVzIHwgdHJpbSB8IGV4cGFuZHByb3BlcnRpZXMgfCBzdHJpcGxpbmVicmVha3MgfCByZXBsYWNlc3RyaW5nIHwgc3RyaXBsaW5lY29tbWVudHMgfCB0b2tlbmZpbHRlciB8IHN0cmlwamF2YWNvbW1lbnRzIHwgY29udGFpbnNyZWdleCB8IGRlbGV0ZWNoYXJhY3RlcnMgfCBsaW5lY29udGFpbnNyZWdleHApKj4KKzwhQVRUTElTVCBpbnB1dGZpbHRlcmNoYWluCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgb3V0cHV0bWFwcGVyIChjbGFzc3BhdGggfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBvdXRwdXRtYXBwZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGlkZW50aXR5IHwgZmxhdHRlbiB8IGdsb2IgfCBtZXJnZSB8IHJlZ2V4cCB8IHBhY2thZ2UgfCB1bnBhY2thZ2UpICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlucHV0bWFwcGVyIChjbGFzc3BhdGggfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBpbnB1dG1hcHBlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoaWRlbnRpdHkgfCBmbGF0dGVuIHwgZ2xvYiB8IG1lcmdlIHwgcmVnZXhwIHwgcGFja2FnZSB8IHVucGFja2FnZSkgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHJvcGVydHlmaWxlIChlbnRyeSkqPgorPCFBVFRMSVNUIHByb3BlcnR5ZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZW50cnkgRU1QVFk+Cis8IUFUVExJU1QgZW50cnkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9wZXJhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZXkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChpbnQgfCBkYXRlIHwgc3RyaW5nKSAjSU1QTElFRAorICAgICAgICAgIHVuaXQgKG1pbGxpc2Vjb25kIHwgc2Vjb25kIHwgbWludXRlIHwgaG91ciB8IGRheSB8IHdlZWsgfCBtb250aCB8IHllYXIpICNJTVBMSUVECisgICAgICAgICAgcGF0dGVybiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2RpciBFTVBUWT4KKzwhQVRUTElTVCBjY21rZGlyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jaGVja291dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbXBvcnR0eXBlbGliIEVNUFRZPgorPCFBVFRMSVNUIGltcG9ydHR5cGVsaWIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVuc2FmZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXN5c2FycmF5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWVzcGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzY2hlY2tpbiBFTVBUWT4KKzwhQVRUTElTVCB2c3NjaGVja2luCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcWwgKCNQQ0RBVEEgfCBmaWxlc2V0IHwgY2xhc3NwYXRoIHwgdHJhbnNhY3Rpb24pKj4KKzwhQVRUTElTVCBzcWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9uZXJyb3IgKGNvbnRpbnVlIHwgc3RvcCB8IGFib3J0KSAjSU1QTElFRAorICAgICAgICAgIHVzZXJpZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXV0b2NvbW1pdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZGJtcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByaW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRyaXZlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3doZWFkZXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlbGltaXRlcnR5cGUgKG5vcm1hbCB8IHJvdykgI0lNUExJRUQKKyAgICAgICAgICBlc2NhcGVwcm9jZXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FjaGluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZm9ybWF0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlbGltaXRlciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRyYW5zYWN0aW9uICgjUENEQVRBKT4KKzwhQVRUTElTVCB0cmFuc2FjdGlvbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3ZzcGFzcyBFTVBUWT4KKzwhQVRUTElTVCBjdnNwYXNzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdnNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjc2MgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgcmVzb3VyY2UgfCBkZWZpbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZWZlcmVuY2UgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY3NjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbjMyaWNvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmluaXRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWluY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1dGY4b3V0cHV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXJlc3BvbnNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWRlZmF1bHRyZWZlcmVuY2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdhcm5sZXZlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdpbjMycmVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jcmVtZW50YWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9jb25maWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbG1vZHVsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5zYWZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVhbGlnbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldHR5cGUgKGV4ZSB8IGxpYnJhcnkgfCBtb2R1bGUgfCB3aW5leGUpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVzb3VyY2UgRU1QVFk+Cis8IUFUVExJU1QgcmVzb3VyY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHVibGljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVtYmVkICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlZmluZSBFTVBUWT4KKzwhQVRUTElTVCBkZWZpbmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlZmVyZW5jZSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgcmVmZXJlbmNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHNyYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGlybmFtZSBFTVBUWT4KKzwhQVRUTElTVCBkaXJuYW1lCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXJlZ2V4cCAoZmlsZXNldCB8IHN1YnN0aXR1dGlvbiB8IHJlZ2V4cCkqPgorPCFBVFRMSVNUIHJlcGxhY2VyZWdleHAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZsYWdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXRjaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ5bGluZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXBsYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBnZXQgRU1QVFk+Cis8IUFUVExJU1QgZ2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZWVycm9ycyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXRpbWVzdGFtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamp0cmVlIEVNUFRZPgorPCFBVFRMSVNUIGpqdHJlZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbm9kZWRlZmF1bHR2b2lkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJ1aWxkbm9kZWZpbGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGRpcmVjdG9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdGF0aWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgamF2YWNjaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RlZmFjdG9yeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtdWx0aSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aXNpdG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGV1c2VzcGFyc2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpc2l0b3JleGNlcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2Rlc2NvcGVob29rICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2RlcGFja2FnZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNsZWVwIEVNUFRZPgorPCFBVFRMSVNUIHNsZWVwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBob3VycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWlsbGlzZWNvbmRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWludXRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2Vjb25kcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphcmxpYi1kaXNwbGF5IChmaWxlc2V0KSo+Cis8IUFUVExJU1QgamFybGliLWRpc3BsYXkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbGVuZ3RoIEVNUFRZPgorPCFBVFRMSVNUIGxlbmd0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGVuZ3RoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRyaW0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbW9kZSAoZWFjaCB8IGFsbCkgI0lNUExJRUQKKyAgICAgICAgICBzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aGVuIChlcXVhbCB8IGdyZWF0ZXIgfCBsZXNzKSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlcGVuZHNldCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgdGFyZ2V0ZmlsZXNldCB8IHNyY2ZpbGVzZXQgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBzcmNmaWxlbGlzdCB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCB8IHRhcmdldGZpbGVsaXN0KSo+Cis8IUFUVExJU1QgZGVwZW5kc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldGZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHRhcmdldGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNyY2ZpbGVzZXQgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHNyY2ZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNyY2ZpbGVsaXN0IChmaWxlKSo+Cis8IUFUVExJU1Qgc3JjZmlsZWxpc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldGZpbGVsaXN0IChmaWxlKSo+Cis8IUFUVExJU1QgdGFyZ2V0ZmlsZWxpc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHppcCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IHppcGdyb3VwZmlsZXNldCB8IHppcGZpbGVzZXQgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB6aXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHdoZW5lbXB0eSAoZmFpbCB8IHNraXAgfCBjcmVhdGUpICNJTVBMSUVECisgICAgICAgICAga2VlcGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkdXBsaWNhdGUgKGFkZCB8IHByZXNlcnZlIHwgZmFpbCkgI0lNUExJRUQKKyAgICAgICAgICByb3VuZHVwICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVwZGF0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgemlwZ3JvdXBmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB6aXBncm91cGZpbGVzZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhdGNoIEVNUFRZPgorPCFBVFRMSVNUIHBhdGNoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdHJpcCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3JpZ2luYWxmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0Y2hmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmV2ZXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhY2t1cHMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaWdub3Jld2hpdGVzcGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpzcGMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IGNvbXBpbGVyY2xhc3NwYXRoIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IHdlYmFwcCB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QganNwYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbWFwcGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGllcGx1Z2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVyaWJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3ZWJ4bWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaXJvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3ZWJpbmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21waWxlcmNsYXNzcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgY29tcGlsZXJjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJhcHAgRU1QVFk+Cis8IUFUVExJU1Qgd2ViYXBwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3R5bGUgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IGZhY3RvcnkgfCBtb2RpZmllZCB8IHBhcmFtIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCB4bWxjYXRhbG9nIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBvdXRwdXRwcm9wZXJ0eSB8IG1hcHBlciB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHN0eWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2Nlc3NvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNjYW5pbmNsdWRlZGRpcmVjdG9yaWVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4dGVuc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxvYWRzdHlsZXNoZWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZmFjdG9yeSAoYXR0cmlidXRlKSo+Cis8IUFUVExJU1QgZmFjdG9yeQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGF0dHJpYnV0ZSBFTVBUWT4KKzwhQVRUTElTVCBhdHRyaWJ1dGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIG91dHB1dHByb3BlcnR5IEVNUFRZPgorPCFBVFRMSVNUIG91dHB1dHByb3BlcnR5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBuaWNlIEVNUFRZPgorPCFBVFRMSVNUIG5pY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdwcmlvcml0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN1cnJlbnRwcmlvcml0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRlc3QgKGNsYXNzcGF0aCB8IHN5c3Byb3BlcnR5IHwgcmVkaXJlY3RvciB8IGJvb3RjbGFzc3BhdGggfCBlbnYgfCBzeXNwcm9wZXJ0eXNldCB8IHBlcm1pc3Npb25zIHwganZtYXJnIHwgYXJnIHwgYXNzZXJ0aW9ucyB8IHRlc3RsZXQpKj4KKzwhQVRUTElTVCB0ZXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBqYXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VzaG93dHJhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2hvd3N1Y2Nlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAganZtdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2hvd2Jhbm5lciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3d0cmFjZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzeXNwcm9wZXJ0eSBFTVBUWT4KKzwhQVRUTElTVCBzeXNwcm9wZXJ0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAga2V5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJvb3RjbGFzc3BhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGJvb3RjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlbnYgRU1QVFk+Cis8IUFUVExJU1QgZW52CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBrZXkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3lzcHJvcGVydHlzZXQgKHByb3BlcnR5cmVmIHwgcHJvcGVydHlzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBzeXNwcm9wZXJ0eXNldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGR5bmFtaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmVnYXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBlcm1pc3Npb25zIChncmFudCB8IHJldm9rZSkqPgorPCFBVFRMSVNUIHBlcm1pc3Npb25zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBncmFudCBFTVBUWT4KKzwhQVRUTElTVCBncmFudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9ucyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJldm9rZSBFTVBUWT4KKzwhQVRUTElTVCByZXZva2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFjdGlvbnMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqdm1hcmcgRU1QVFk+Cis8IUFUVExJU1QganZtYXJnCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhcmcgRU1QVFk+Cis8IUFUVExJU1QgYXJnCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0ZXN0bGV0ICgjUENEQVRBKT4KKzwhQVRUTElTVCB0ZXN0bGV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0c3RhbXAgKGZvcm1hdCkqPgorPCFBVFRMSVNUIHRzdGFtcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZvcm1hdCBFTVBUWT4KKzwhQVRUTElTVCBmb3JtYXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2FsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWV6b25lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5pdCAobWlsbGlzZWNvbmQgfCBzZWNvbmQgfCBtaW51dGUgfCBob3VyIHwgZGF5IHwgd2VlayB8IG1vbnRoIHwgeWVhcikgI0lNUExJRUQKKyAgICAgICAgICBwYXR0ZXJuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvZmZzZXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB1bndhciAoZmlsZXNldCB8IHBhdHRlcm5zZXQpKj4KKzwhQVRUTElTVCB1bndhcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NoaXN0b3J5IEVNUFRZPgorPCFBVFRMSVNUIHZzc2hpc3RvcnkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0eWxlIChicmllZiB8IGNvZGVkaWZmIHwgbm9maWxlIHwgZGVmYXVsdCkgI0lNUExJRUQKKyAgICAgICAgICBudW1kYXlzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbWxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb21kYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9sYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGVmb3JtYXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN2c2NoYW5nZWxvZyAoZmlsZXNldCB8IHVzZXIgfCBjb21tYW5kbGluZSkqPgorPCFBVFRMSVNUIGN2c2NoYW5nZWxvZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY3ZzcnNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0YXJ0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3Zzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYWxseXF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcnNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9leGVjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYXlzaW5wYXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhZyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVzZXIgRU1QVFk+Cis8IUFUVExJU1QgdXNlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdXNlcmlkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlzcGxheW5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb21tYW5kbGluZSAobWFya2VyIHwgYXJndW1lbnQpKj4KKzwhQVRUTElTVCBjb21tYW5kbGluZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1hcmtlciBFTVBUWT4KKzwhQVRUTElTVCBtYXJrZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFyZ3VtZW50IEVNUFRZPgorPCFBVFRMSVNUIGFyZ3VtZW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY21jaGVja2luIChmaWxlc2V0KSo+Cis8IUFUVExJU1QgY2NtY2hlY2tpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFzayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJ6aXAyIEVNUFRZPgorPCFBVFRMSVNUIGJ6aXAyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc3luYyAoZmlsZXNldCkqPgorPCFBVFRMSVNUIHN5bmMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZW1wdHlkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NhZGQgRU1QVFk+Cis8IUFUVExJU1QgdnNzYWRkCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzc2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2l2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhZG9jICh0YWdsZXQgfCBkb2NsZXQgfCBwYWNrYWdlIHwgYXJnIHwgbGluayB8IGRvY3RpdGxlIHwgYm90dG9tIHwgZ3JvdXAgfCBwYWNrYWdlc2V0IHwgZmlsZXNldCB8IGNsYXNzcGF0aCB8IHNvdXJjZXBhdGggfCBmb290ZXIgfCBzb3VyY2UgfCBib290Y2xhc3NwYXRoIHwgaGVhZGVyIHwgZXhjbHVkZXBhY2thZ2UgfCB0YWcpKj4KKzwhQVRUTElTVCBqYXZhZG9jCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBib3R0b20gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGVhZGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGluayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vaW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYWNjZXNzIChwcm90ZWN0ZWQgfCBwdWJsaWMgfCBwYWNrYWdlIHwgcHJpdmF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3F1YWxpZmllciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1YmxpYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhdXRob3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9vdGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlZXh0ZXJuYWxmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHByb3RlY3RlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBicmVha2l0ZXJhdG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vbmF2YmFyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdyb3VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlua29mZmxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRpdGlvbmFscGFyYW0gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rc291cmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGxvY2FsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZW5vc291cmNlcGFja2FnZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByaXZhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9kZXByZWNhdGVkbGlzdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBzdHlsZXNoZWV0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2VuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXBhY2thZ2VuYW1lcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlbmFtZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW5kb3d0aXRsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdHJlZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGxpdGluZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VsaXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2N0aXRsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcmlhbHdhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2xkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGVscGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZWZpbGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZGlycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vaGVscCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2RlcHJlY2F0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3ZlcnZpZXcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YWdsZXQgKHBhdGgpKj4KKzwhQVRUTElTVCB0YWdsZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRvY2xldCAocGF0aCB8IHBhcmFtKSo+Cis8IUFUVExJU1QgZG9jbGV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYWNrYWdlIEVNUFRZPgorPCFBVFRMSVNUIHBhY2thZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaW5rIEVNUFRZPgorPCFBVFRMSVNUIGxpbmsKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGhyZWYgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvZmZsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2VsaXN0bG9jIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWxpbmsgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZG9jdGl0bGUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGRvY3RpdGxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBib3R0b20gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGJvdHRvbQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ3JvdXAgKHBhY2thZ2UgfCB0aXRsZSkqPgorPCFBVFRMSVNUIGdyb3VwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpdGxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGl0bGUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIHRpdGxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwYWNrYWdlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBwYWNrYWdlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb3VyY2VwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBzb3VyY2VwYXRoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZm9vdGVyICgjUENEQVRBKT4KKzwhQVRUTElTVCBmb290ZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvdXJjZSBFTVBUWT4KKzwhQVRUTElTVCBzb3VyY2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBoZWFkZXIgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGhlYWRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZXhjbHVkZXBhY2thZ2UgRU1QVFk+Cis8IUFUVExJU1QgZXhjbHVkZXBhY2thZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YWcgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHRhZworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNjb3BlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0cmFuc2xhdGUgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0cmFuc2xhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGJ1bmRsZWNvdW50cnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidW5kbGVsYW5ndWFnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNyY2VuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVuZGxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVuZGxlZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJ1bmRsZXZhcmlhbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuZHRva2VuIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3RhcnR0b2tlbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNpZ25qYXIgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBzaWduamFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdG9yZXBhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYXp5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGphciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2V5cGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heG1lbW9yeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFsaWFzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VjdGlvbnNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtleXN0b3JlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzaWdmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnRlcm5hbHNmICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN0b3JldHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNpZ25lZGphciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbG9jayBFTVBUWT4KKzwhQVRUTElTVCBjY2xvY2sKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9ianNlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG51c2VycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9ic29sZXRlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNob3duIChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBjaG93bgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvd25lciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmNmaWxlIEVNUFRZPgorPCFBVFRMSVNUIHNyY2ZpbGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhcmdldGZpbGUgRU1QVFk+Cis8IUFUVExJU1QgdGFyZ2V0ZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamFybGliLWF2YWlsYWJsZSAoZXh0ZW5zaW9uc2V0IHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgamFybGliLWF2YWlsYWJsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4dGVuc2lvbnNldCAoZmlsZXNldCB8IGxpYmZpbGVzZXQgfCBleHRlbnNpb24pKj4KKzwhQVRUTElTVCBleHRlbnNpb25zZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBXc2RsVG9Eb3RuZXQgRU1QVFk+Cis8IUFUVExJU1QgV3NkbFRvRG90bmV0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZXNwYWNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYnVpbGRudW1iZXIgRU1QVFk+Cis8IUFUVExJU1QgYnVpbGRudW1iZXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganBjb3ZtZXJnZSAoZmlsZXNldCkqPgorPCFBVFRMSVNUIGpwY292bWVyZ2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjdnN2ZXJzaW9uIChjb21tYW5kbGluZSkqPgorPCFBVFRMSVNUIGN2c3ZlcnNpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGN2c3JzaCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhc3NmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhY2thZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjdnNyb290IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVhbGx5cXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVydmVyc2lvbnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9ubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xpZW50dmVyc2lvbnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9leGVjICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFnIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZWpiamFyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCB3ZWJsb2dpY3RvcGxpbmsgfCBwcmVzZW50IHwgbm9uZSB8IGpib3NzIHwgbm90IHwgYm9ybGFuZCB8IHdlYmxvZ2ljIHwgdHlwZSB8IG1vZGlmaWVkIHwgaXBsYW5ldCB8IG9yIHwgam9uYXMgfCBjb250YWlucyB8IGRlcGVuZCB8IHN1cHBvcnQgfCBjbGFzc3BhdGggfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCB3ZWJzcGhlcmUgfCBjb250YWluc3JlZ2V4cCB8IGR0ZCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBlamJqYXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0b3JkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBiYXNlbmFtZXRlcm1pbmF0b3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNtcHZlcnNpb24gKDEuMCB8IDIuMCkgI0lNUExJRUQKKyAgICAgICAgICBkZXBlbmRlbmN5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWphcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmbGF0ZGVzdGRpciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1pbmcgKGVqYi1uYW1lIHwgZGlyZWN0b3J5IHwgZGVzY3JpcHRvciB8IGJhc2VqYXJuYW1lKSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJsb2dpY3RvcGxpbmsgKGNsYXNzcGF0aCB8IHdsY2xhc3NwYXRoIHwgc3lzcHJvcGVydHkpKj4KKzwhQVRUTElTVCB3ZWJsb2dpY3RvcGxpbmsKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5ld2NtcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlamJkdGQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1hcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVidWlsZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9wbGlua2R0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdsZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdlYmxvZ2ljZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2xjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1kZWJ1Z2xldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyYXRlZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkY21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmNjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZWpiYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b3BsaW5rZGVzY3JpcHRvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3bGNsYXNzcGF0aCAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1Qgd2xjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYm9zcyAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgamJvc3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYm9ybGFuZCAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgYm9ybGFuZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyaWZ5YXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YTJpaW9wcGFyYW1zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2R0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmlmeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmF0ZWNsaWVudCAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJsb2dpYyAoY2xhc3NwYXRoIHwgd2xjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eSkqPgorPCFBVFRMSVNUIHdlYmxvZ2ljCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuZXdjbXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZWpiZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlYnVpbGQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdsZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdlYmxvZ2ljZHRkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2xjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBqdm1kZWJ1Z2xldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2VlcGdlbmVyYXRlZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkY21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmNjbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZWpiYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaXBsYW5ldCAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgaXBsYW5ldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGdlbmVyaWNqYXJzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlhc2hvbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqb25hcyAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1Qgam9uYXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGpvbmFzcm9vdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YWMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3JiIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9nZW5pYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBybWljb3B0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphdmFjb3B0cyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdmFsaWRhdGlvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwZ2VuZXJhdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vY29tcGlsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlY3Byb3BhZyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdXBwb3J0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBzdXBwb3J0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3ZWJzcGhlcmUgKGNsYXNzcGF0aCB8IHdhc2NsYXNzcGF0aCkqPgorPCFBVFRMSVNUIHdlYnNwaGVyZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmV3Y21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVqYmR0ZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJtaWNvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9pbmZvcm0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVidWlsZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdWZmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYnNjaGVtYSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlamJkZXBsb3kgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlMzUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGVtcGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vdmFsaWRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29kZWdlbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkYnZlbmRvciAoU1FMOTIgfCBTUUw5OSB8IERCMlVEQldJTl9WNzEgfCBEQjJVREJPUzM5MF9WNiB8IERCMlVEQkFTNDAwX1Y0UjUgfCBPUkFDTEVfVjggfCBJTkZPUk1JWF9WOTIgfCBTWUJBU0VfVjExOTIgfCBNU1NRTFNFUlZFUl9WNyB8IE1ZU1FMX1YzMjMpICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2FzY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkY21wICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRibmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmljICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRyYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljamFyc3VmZml4IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2FzY2xhc3NwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCB3YXNjbGFzc3BhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3YXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgbWFuaWZlc3QgfCB0eXBlIHwgbWV0YWluZiB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGxpYiB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGluZGV4amFycyB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCB6aXBncm91cGZpbGVzZXQgfCB6aXBmaWxlc2V0IHwgY2xhc3NlcyB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCB3ZWJpbmYgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHdhcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAga2VlcGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGR1cGxpY2F0ZSAoYWRkIHwgcHJlc2VydmUgfCBmYWlsKSAjSU1QTElFRAorICAgICAgICAgIHdoZW5lbXB0eSAoZmFpbCB8IHNraXAgfCBjcmVhdGUpICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJvdW5kdXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5kZXggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXBkYXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2VieG1sIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdhcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNldG1hbmlmZXN0IChza2lwIHwgbWVyZ2UgfCBtZXJnZXdpdGhvdXRtYWluKSAjSU1QTElFRAorICAgICAgICAgIHppcGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYW5pZmVzdCAoYXR0cmlidXRlIHwgc2VjdGlvbikqPgorPCFBVFRMSVNUIG1hbmlmZXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzZWN0aW9uIChhdHRyaWJ1dGUpKj4KKzwhQVRUTElTVCBzZWN0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWV0YWluZiAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgbWV0YWluZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBsaWIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGxpYgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbmRleGphcnMgKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGluZGV4amFycworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNsYXNzZXMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNsYXNzZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2ViaW5mIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB3ZWJpbmYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlbW9kZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmdWxscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXJtb2RlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVuYW1lIEVNUFRZPgorPCFBVFRMSVNUIHJlbmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2VxdWVudGlhbCAoJXRhc2tzOykqPgorPCFBVFRMSVNUIHNlcXVlbnRpYWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzZXJ2ZXJkZXBsb3kgKHdlYmxvZ2ljIHwgZ2VuZXJpYyB8IGpvbmFzKSo+Cis8IUFUVExJU1Qgc2VydmVyZGVwbG95CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZ2VuZXJpYyAoYXJnIHwgY2xhc3NwYXRoIHwganZtYXJnKSo+Cis8IUFUVExJU1QgZ2VuZXJpYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHByb3BlcnR5IChjbGFzc3BhdGgpKj4KKzwhQVRUTElTVCBwcm9wZXJ0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJwcm9wZXJ0eSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVudmlyb25tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzdWJhbnQgKHJlZmVyZW5jZSB8IGZpbGVzZXQgfCBidWlsZHBhdGhlbGVtZW50IHwgZGlyc2V0IHwgYnVpbGRwYXRoIHwgcHJvcGVydHlzZXQgfCBmaWxlbGlzdCB8IHByb3BlcnR5KSo+Cis8IUFUVExJU1Qgc3ViYW50CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBnZW5lcmljYW50ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluaGVyaXRhbGwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0cmVmcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhbnRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYnVpbGRwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBidWlsZHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGJ1aWxkcGF0aGVsZW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgYnVpbGRwYXRoZWxlbWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYnVpbGRwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBidWlsZHBhdGgKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvY2F0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtb3ZlIChmaWx0ZXJjaGFpbiB8IGZpbGVzZXQgfCBmaWx0ZXJzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBtb3ZlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGF0dGVuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZW1wdHlkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVtdWx0aXBsZW1hcHBpbmdzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmVsYXN0bW9kaWZpZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlsZGFzbSBFTVBUWT4KKzwhQVRUTElTVCBpbGRhc20KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFzc2VtYmxlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyAoYXNjaWkgfCB1dGY4IHwgdW5pY29kZSkgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvZ3Jlc3NiYXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbGluZW51bWJlcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmF3ZXhjZXB0aW9uaGFuZGxpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2hvd3NvdXJjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtZXRhZGF0YSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBieXRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1b3RlYWxsbmFtZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBoZWFkZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlzaWJpbGl0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZWZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGl0ZW0gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb3B5ZGlyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBjb3B5ZGlyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGF0dGVuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2VvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY2NoZWNraW4gRU1QVFk+Cis8IUFUVExJU1QgY2NjaGVja2luCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZXRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm93YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZGVudGljYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29weSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2N1bmxvY2sgRU1QVFk+Cis8IUFUVExJU1QgY2N1bmxvY2sKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG9ianNlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB3bGpzcGMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIHdsanNwYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpeGNybGYgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGZpeGNybGYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhYiAoYWRkIHwgYXNpcyB8IHJlbW92ZSkgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3IgKGFkZCB8IGFzaXMgfCByZW1vdmUpICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlb2wgKGFzaXMgfCBjciB8IGxmIHwgY3JsZiB8IG1hYyB8IHVuaXggfCBkb3MpICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgamF2YWZpbGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVvZiAoYWRkIHwgYXNpcyB8IHJlbW92ZSkgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhYmxlbmd0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaXhsYXN0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29zZ2V0IEVNUFRZPgorPCFBVFRMSVNUIHNvc2dldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc29zaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvamVjdHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NhY2hlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc2NtZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcGF0aGNvbnZlcnQgKHBhdGggfCBtYXAgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBwYXRoY29udmVydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXRoc2VwIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcnNlcCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNldG9uZW1wdHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXRvcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1hcCBFTVBUWT4KKzwhQVRUTElTVCBtYXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnJvbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlY29yZCBFTVBUWT4KKzwhQVRUTElTVCByZWNvcmQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dsZXZlbCAoZXJyb3IgfCB3YXJuIHwgaW5mbyB8IHZlcmJvc2UgfCBkZWJ1ZykgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVtYWNzbW9kZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb24gKHN0YXJ0IHwgc3RvcCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBleGVjIChhcmcgfCByZWRpcmVjdG9yIHwgZW52KSo+Cis8IUFUVExJU1QgZXhlYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtsYWJlbCBFTVBUWT4KKzwhQVRUTElTVCBjY21rbGFiZWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlY3Vyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHR5cGVuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2b2IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQganBjb3ZyZXBvcnQgKHJlZmVyZW5jZSB8IGNvdmVyYWdlcGF0aCB8IHNvdXJjZXBhdGgpKj4KKzwhQVRUTElTVCBqcGNvdnJlcG9ydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc25hcHNob3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWx0ZXJzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGVyY2VudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChleGVjdXRpdmUgfCBzdW1tYXJ5IHwgZGV0YWlsZWQgfCB2ZXJ5ZGV0YWlsZWQpICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKGh0bWwgfCB0ZXh0IHwgeG1sKSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzb3VyY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb3ZlcmFnZXBhdGggKGZpbGVzZXQgfCBkaXJzZXQgfCBleHRkaXJzIHwgZXhpc3RpbmcgfCBmaWxlbGlzdCB8IHBhdGhlbGVtZW50IHwgcGF0aCkqPgorPCFBVFRMSVNUIGNvdmVyYWdlcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGV4ZWNvbiAobWFwcGVyIHwgc3JjZmlsZSB8IHRhcmdldGZpbGUgfCByZWRpcmVjdG9yIHwgZmlsZWxpc3QgfCBlbnYgfCBmaWxlc2V0IHwgZGlyc2V0IHwgYXJnKSo+Cis8IUFUVExJU1QgZXhlY29uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQKKyAgICAgICAgICBtYXhwYXJhbGxlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGRzb3VyY2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZWV4ZWN1dGFibGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2bWxhdW5jaGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWNoZWNrb3V0IChmaWxlc2V0KSo+Cis8IUFUVExJU1QgY2NtY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbWFjdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2sgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNjbWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhbnQgKHJlZmVyZW5jZSB8IHByb3BlcnR5c2V0IHwgcHJvcGVydHkgfCB0YXJnZXQpKj4KKzwhQVRUTElTVCBhbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdGFsbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0cmVmcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJnZXQgRU1QVFk+Cis8IUFUVExJU1QgdGFyZ2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgeG1sdmFsaWRhdGUgKGZpbGVzZXQgfCBjbGFzc3BhdGggfCBkdGQgfCB4bWxjYXRhbG9nIHwgYXR0cmlidXRlIHwgcHJvcGVydHkpKj4KKzwhQVRUTElTVCB4bWx2YWxpZGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxlbmllbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgeHNsdCAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgZmFjdG9yeSB8IG1vZGlmaWVkIHwgcGFyYW0gfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHhtbGNhdGFsb2cgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IG91dHB1dHByb3BlcnR5IHwgbWFwcGVyIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgeHNsdAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9jZXNzb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzY2FuaW5jbHVkZWRkaXJlY3RvcmllcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleHRlbnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVsb2Fkc3R5bGVzaGVldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3R5bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlwbGFuZXQtZWpiYyAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgaXBsYW5ldC1lamJjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBlamJkZXNjcmlwdG9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWFzZGVzY3JpcHRvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlhc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGtlZXBnZW5lcmF0ZWQgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2NtY2hlY2tpbnRhc2sgKGZpbGVzZXQpKj4KKzwhQVRUTElTVCBjY21jaGVja2ludGFzaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFzayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGd6aXAgRU1QVFk+Cis8IUFUVExJU1QgZ3ppcAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG5hdGl2ZTJhc2NpaSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgYXJnIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgbWFwcGVyIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgbmF0aXZlMmFzY2lpCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcGxlbWVudGF0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJldmVyc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY3JtdHlwZSBFTVBUWT4KKzwhQVRUTElTVCBjY3JtdHlwZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJtYWxsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZWtpbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2b2IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZWFyIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IG1hbmlmZXN0IHwgdHlwZSB8IG1ldGFpbmYgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBhcmNoaXZlcyB8IGluZGV4amFycyB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCB6aXBncm91cGZpbGVzZXQgfCB6aXBmaWxlc2V0IHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgZWFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29tcHJlc3Npb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZHVwbGljYXRlIChhZGQgfCBwcmVzZXJ2ZSB8IGZhaWwpICNJTVBMSUVECisgICAgICAgICAgd2hlbmVtcHR5IChmYWlsIHwgc2tpcCB8IGNyZWF0ZSkgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcm91bmR1cCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgamFyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVhcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBweG1sIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYW5pZmVzdGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXNvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc2V0bWFuaWZlc3QgKHNraXAgfCBtZXJnZSB8IG1lcmdld2l0aG91dG1haW4pICNJTVBMSUVECisgICAgICAgICAgemlwZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFyY2hpdmVzIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBhcmNoaXZlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZpbGVtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJlZml4IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZ1bGxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbnB1dCAoI1BDREFUQSk+Cis8IUFUVExJU1QgaW5wdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHR2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZhbGlkYXJncyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBwcmVzZXRkZWYgKCV0YXNrczspKj4KKzwhQVRUTElTVCBwcmVzZXRkZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcm1pYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBleHRkaXJzIHwgbm90IHwgdHlwZSB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGNsYXNzcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGNvbXBpbGVyYXJnIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgcm1pYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdmVyaWZ5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWlvcCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpZGxvcHRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0ZGlycyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZWJhc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBiYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVhbnRydW50aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVqYXZhcnVudGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWRsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlpb3BvcHRzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHN0dWJ2ZXJzaW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29tcGlsZXJhcmcgRU1QVFk+Cis8IUFUVExJU1QgY29tcGlsZXJhcmcKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxpbmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21waWxlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdGggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjaGVja3N1bSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGNoZWNrc3VtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVleHQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b3RhbHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWFkYnVmZmVyc2l6ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmlmeXByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWxnb3JpdGhtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvdmlkZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZW92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtYWlsIChmaWxlc2V0IHwgYmNjIHwgbWVzc2FnZSB8IHJlcGx5dG8gfCBjYyB8IGZyb20gfCB0bykqPgorPCFBVFRMSVNUIG1haWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNjbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2VmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyAoYXV0byB8IG1pbWUgfCB1dSB8IHBsYWluKSAjSU1QTElFRAorICAgICAgICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1YmplY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3NsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haWxwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZW1pbWV0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmNjbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZyb20gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGx5dG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWlsaG9zdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWZpbGVuYW1lcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYmNjIEVNUFRZPgorPCFBVFRMSVNUIGJjYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXNzYWdlICgjUENEQVRBKT4KKzwhQVRUTElTVCBtZXNzYWdlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBtaW1ldHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNoYXJzZXQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBseXRvIEVNUFRZPgorPCFBVFRMSVNUIHJlcGx5dG8KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2MgRU1QVFk+Cis8IUFUVExJU1QgY2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZnJvbSBFTVBUWT4KKzwhQVRUTElTVCBmcm9tCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRvIEVNUFRZPgorPCFBVFRMSVNUIHRvCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhZGRyZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxvYWRmaWxlIChmaWx0ZXJjaGFpbikqPgorPCFBVFRMSVNUIGxvYWRmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NjaGVja291dCBFTVBUWT4KKzwhQVRUTElTVCB2c3NjaGVja291dAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBnZXRsb2NhbGNvcHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGV0aW1lc3RhbXAgKGN1cnJlbnQgfCBtb2RpZmllZCB8IHVwZGF0ZWQpICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9jYWxwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd3JpdGFibGVmaWxlcyAocmVwbGFjZSB8IHNraXAgfCBmYWlsKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHNvc2NoZWNraW4gRU1QVFk+Cis8IUFUVExJU1Qgc29zY2hlY2tpbgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc29zaG9tZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2c3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2plY3RwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jYWNoZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NjbWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1pbWVtYWlsIChmaWxlc2V0IHwgYmNjIHwgbWVzc2FnZSB8IHJlcGx5dG8gfCBjYyB8IGZyb20gfCB0bykqPgorPCFBVFRMSVNUIG1pbWVtYWlsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXNzYWdlZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgKGF1dG8gfCBtaW1lIHwgdXUgfCBwbGFpbikgI0lNUExJRUQKKyAgICAgICAgICBjaGFyc2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdWJqZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVzc2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNzbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYWlscG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2VtaW1ldHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJjY2xpc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmcm9tIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBseXRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbGhvc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVmaWxlbmFtZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGd1bnppcCBFTVBUWT4KKzwhQVRUTElTVCBndW56aXAKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY29uY2F0ICgjUENEQVRBIHwgZmlsdGVyY2hhaW4gfCBmaWxlc2V0IHwgZmlsZWxpc3QgfCBwYXRoIHwgZm9vdGVyIHwgaGVhZGVyKSo+Cis8IUFUVExJU1QgY29uY2F0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJpbmFyeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlb2wgKGFzaXMgfCBjciB8IGxmIHwgY3JsZiB8IG1hYyB8IHVuaXggfCBkb3MpICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpeGxhc3RsaW5lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2FiIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBmaWxlc2V0IHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgY2FiCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjYWJmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tcHJlc3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYmFzZWRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25zIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdG91Y2ggKGZpbGVzZXQgfCBmaWxlbGlzdCB8IG1hcHBlcikqPgorPCFBVFRMSVNUIHRvdWNoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWtkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG1pbGxpcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhdHRlcm4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRldGltZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHBhcmFsbGVsICgldGFza3M7IHwgZGFlbW9ucykqPgorPCFBVFRMSVNUIHBhcmFsbGVsCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwb2xsaW50ZXJ2YWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGhyZWFkc3BlcnByb2Nlc3NvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aHJlYWRjb3VudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmFueSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkYWVtb25zICgldGFza3M7KSo+Cis8IUFUVExJU1QgZGFlbW9ucworICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgYW50Y2FsbCAocmVmZXJlbmNlIHwgcHJvcGVydHlzZXQgfCB0YXJnZXQgfCBwYXJhbSkqPgorPCFBVFRMSVNUIGFudGNhbGwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5oZXJpdGFsbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmhlcml0cmVmcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhcmdldCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtibCBFTVBUWT4KKzwhQVRUTElTVCBjY21rYmwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5sYWJlbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmdWxsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWRlbnRpY2FsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYmFzZWxpbmVyb290bmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY2NoZWNrb3V0IEVNUFRZPgorPCFBVFRMSVNUIGNjY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlc2VydmVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm90Y28gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGF0YSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBicmFuY2ggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnRmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHlwZWRlZiAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgdHlwZWRlZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkYXB0dG8gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvbmVycm9yIChmYWlsIHwgcmVwb3J0IHwgaWdub3JlKSAjSU1QTElFRAorICAgICAgICAgIGxvYWRlcnJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRhcHRlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcm1hdCAocHJvcGVydGllcyB8IHhtbCkgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJldmVyc2Vsb2FkZXIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgeG1scHJvcGVydHkgKHhtbGNhdGFsb2cpKj4KKzwhQVRUTElTVCB4bWxwcm9wZXJ0eQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlbWFudGljYXR0cmlidXRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZWVwcm9vdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb2xsYXBzZWF0dHJpYnV0ZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmFsaWRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJvb3RkaXJlY3RvcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2VtYW50aWNhdHRyaWJ1dGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaW1wb3J0IEVNUFRZPgorPCFBVFRMSVNUIGltcG9ydAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25hbCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjb3B5IChmaWx0ZXJjaGFpbiB8IGZpbGVzZXQgfCBmaWx0ZXJzZXQgfCBtYXBwZXIpKj4KKzwhQVRUTElTVCBjb3B5CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmbGF0dGVuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZW1wdHlkaXJzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmFibGVtdWx0aXBsZW1hcHBpbmdzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGdyYW51bGFyaXR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmVsYXN0bW9kaWZpZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsdGVyaW5nICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpzaGFycGMgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgcmVzb3VyY2UgfCBkZWZpbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZWZlcmVuY2UgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QganNoYXJwYworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJlc3BvbnNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1haW5jbGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZGl0aW9uYWxtb2R1bGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luMzJpY29uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXRmOG91dHB1dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVmYXVsdHJlZmVyZW5jZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0dHlwZSAoZXhlIHwgbGlicmFyeSB8IG1vZHVsZSB8IHdpbmV4ZSkgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgd2luMzJyZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBiYXNlYWRkcmVzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlY3VyZXNjb3BpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB1cmVqYXZhICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2FybmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmZXJlbmNlZmlsZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzeW1saW5rIChmaWxlc2V0KSo+Cis8IUFUVExJU1Qgc3ltbGluaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbGlua2ZpbGVuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdmVyd3JpdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaW5rIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhbnRzdHJ1Y3R1cmUgRU1QVFk+Cis8IUFUVExJU1QgYW50c3RydWN0dXJlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2NyaXB0ICgjUENEQVRBKT4KKzwhQVRUTElTVCBzY3JpcHQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWNyZWF0ZXRhc2sgRU1QVFk+Cis8IUFUVExJU1QgY2NtY3JlYXRldGFzaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3Vic3lzdGVtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFzayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBsYXRmb3JtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb2x2ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtYWN0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWxlYXNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBycG0gRU1QVFk+Cis8IUFUVExJU1QgcnBtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZW1vdmVzb3VyY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWFuZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFuYnVpbGRkaXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVtb3Zlc3BlYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcGVjZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvcGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJwbWJ1aWxkY29tbWFuZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGRlbGV0ZSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZmlsZXNldCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgZmlsZW5hbWUgfCBzZWxlY3RvciB8IGluY2x1ZGVzZmlsZSB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGRlbGV0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVlbXB0eWRpcnMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVsZXRlb25leGl0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCByZXBsYWNlIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHJlcGxhY2VmaWx0ZXIgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgcmVwbGFjZXRva2VuIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgcmVwbGFjZXZhbHVlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgcmVwbGFjZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eWZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3VtbWFyeSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmFsdWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZWZpbHRlcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2VmaWx0ZXIgRU1QVFk+Cis8IUFUVExJU1QgcmVwbGFjZWZpbHRlcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdG9rZW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVwbGFjZXRva2VuICgjUENEQVRBKT4KKzwhQVRUTElTVCByZXBsYWNldG9rZW4KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcGxhY2V2YWx1ZSAoI1BDREFUQSk+Cis8IUFUVExJU1QgcmVwbGFjZXZhbHVlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtbWV0cmljcyAoZmlsZXNldCB8IGp2bWFyZyB8IGNsYXNzcGF0aCB8IHBhdGggfCBzb3VyY2VwYXRoKSo+Cis8IUFUVExJU1QgbW1ldHJpY3MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWV0YW1hdGFob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0b2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JhbnVsYXJpdHkgKGNvbXBpbGF0aW9uLXVuaXRzIHwgZmlsZXMgfCBtZXRob2RzIHwgdHlwZXMgfCBwYWNrYWdlcykgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhdHRyaWIgKG1hcHBlciB8IHNyY2ZpbGUgfCB0YXJnZXRmaWxlIHwgcmVkaXJlY3RvciB8IGZpbGVsaXN0IHwgZW52IHwgZmlsZXNldCB8IGRpcnNldCB8IGFyZykqPgorPCFBVFRMSVNUIGF0dHJpYgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVhZG9ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGhpZGRlbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG9zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVtaXNzaW5nICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxpZmV4ZWN1dGlvbmZhaWxzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzeXN0ZW0gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmNoaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIgfCBib3RoKSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdhaXRmb3IgKGlzZmFsc2UgfCBpc3JlZmVyZW5jZSB8IGVxdWFscyB8IGF2YWlsYWJsZSB8IG5vdCB8IGNvbnRhaW5zIHwgb3MgfCBvciB8IGFuZCB8IGZpbGVzbWF0Y2ggfCBjaGVja3N1bSB8IGlzdHJ1ZSB8IGlzc2V0IHwgc29ja2V0IHwgaHR0cCB8IHVwdG9kYXRlKSo+Cis8IUFUVExJU1Qgd2FpdGZvcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2hlY2tldmVyeXVuaXQgKG1pbGxpc2Vjb25kIHwgc2Vjb25kIHwgbWludXRlIHwgaG91ciB8IGRheSB8IHdlZWspICNJTVBMSUVECisgICAgICAgICAgY2hlY2tldmVyeSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHdhaXR1bml0IChtaWxsaXNlY29uZCB8IHNlY29uZCB8IG1pbnV0ZSB8IGhvdXIgfCBkYXkgfCB3ZWVrKSAjSU1QTElFRAorICAgICAgICAgIG1heHdhaXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0aW1lb3V0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc2ZhbHNlIEVNUFRZPgorPCFBVFRMSVNUIGlzZmFsc2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZhbHVlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGlzcmVmZXJlbmNlIEVNUFRZPgorPCFBVFRMSVNUIGlzcmVmZXJlbmNlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVmaWQgSURSRUYgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlcXVhbHMgRU1QVFk+Cis8IUFUVExJU1QgZXF1YWxzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0cmltICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFyZzIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmcxIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBhdmFpbGFibGUgKGNsYXNzcGF0aCB8IGZpbGVwYXRoKSo+Cis8IUFUVExJU1QgYXZhaWxhYmxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZ25vcmVzeXN0ZW1jbGFzc2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKGZpbGUgfCBkaXIpICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbGVwYXRoIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBmaWxlcGF0aAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG9zIEVNUFRZPgorPCFBVFRMSVNUIG9zCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhbWlseSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFyY2ggQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmaWxlc21hdGNoIEVNUFRZPgorPCFBVFRMSVNUIGZpbGVzbWF0Y2gKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZpbGUyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZTEgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc3RydWUgRU1QVFk+Cis8IUFUVExJU1QgaXN0cnVlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpc3NldCBFTVBUWT4KKzwhQVRUTElTVCBpc3NldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzb2NrZXQgRU1QVFk+Cis8IUFUVExJU1Qgc29ja2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVyIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgaHR0cCBFTVBUWT4KKzwhQVRUTElTVCBodHRwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnNiZWdpbmF0IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdXB0b2RhdGUgKHNyY2ZpbGVzIHwgbWFwcGVyKSo+Cis8IUFUVExJU1QgdXB0b2RhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzcmNmaWxlcyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1Qgc3JjZmlsZXMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVudGFyIChmaWxlc2V0IHwgcGF0dGVybnNldCkqPgorPCFBVFRMSVNUIHVudGFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAobm9uZSB8IGd6aXAgfCBiemlwMikgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxvYWRwcm9wZXJ0aWVzIChmaWx0ZXJjaGFpbiB8IGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGxvYWRwcm9wZXJ0aWVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBlY2hvcHJvcGVydGllcyAocHJvcGVydHlzZXQpKj4KKzwhQVRUTElTVCBlY2hvcHJvcGVydGllcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcm1hdCAoeG1sIHwgdGV4dCkgI0lNUExJRUQKKyAgICAgICAgICBzcmNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqdW5pdCAoY2xhc3NwYXRoIHwgc3lzcHJvcGVydHkgfCBib290Y2xhc3NwYXRoIHwgc3lzcHJvcGVydHlzZXQgfCBlbnYgfCB0ZXN0IHwgcGVybWlzc2lvbnMgfCBqdm1hcmcgfCBmb3JtYXR0ZXIgfCBiYXRjaHRlc3QgfCBhc3NlcnRpb25zKSo+Cis8IUFUVExJU1QganVuaXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGZvcmsgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaGFsdG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWF4bWVtb3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJpbnRzdW1tYXJ5ICh0cnVlIHwgeWVzIHwgZmFsc2UgfCBubyB8IG9uIHwgb2ZmIHwgd2l0aE91dEFuZEVycikgI0lNUExJRUQKKyAgICAgICAgICBoYWx0b25mYWlsdXJlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWx1cmVwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNob3dvdXRwdXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRpbWVvdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0ZW1wZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZWFudHJ1bnRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsdGVydHJhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JrbW9kZSAob25jZSB8IHBlclRlc3QgfCBwZXJCYXRjaCkgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5ld2Vudmlyb25tZW50ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbG9hZGluZyAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmb3JtYXR0ZXIgRU1QVFk+Cis8IUFUVExJU1QgZm9ybWF0dGVyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1c2VmaWxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGUgKHBsYWluIHwgeG1sIHwgYnJpZWYpICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWYgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRlbnNpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBiYXRjaHRlc3QgKGZpbGVzZXQgfCBmb3JtYXR0ZXIpKj4KKzwhQVRUTElTVCBiYXRjaHRlc3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGlmIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5sZXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaGFsdG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0b2RpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWx1cmVwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcnRyYWNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGhhbHRvbmZhaWx1cmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3Jwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNoZ3JwIChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBjaGdycAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHBhcmFsbGVsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvcmNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VhcmNocGF0aCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0eXBlIChmaWxlIHwgZGlyIHwgYm90aCkgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBidW56aXAyIEVNUFRZPgorPCFBVFRMSVNUIGJ1bnppcDIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgd2hpY2hyZXNvdXJjZSAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1Qgd2hpY2hyZXNvdXJjZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc291cmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvcHlmaWxlIEVNUFRZPgorPCFBVFRMSVNUIGNvcHlmaWxlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZW92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbHRlcmluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZzc2NyZWF0ZSBFTVBUWT4KKzwhQVRUTElTVCB2c3NjcmVhdGUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNzZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXV0b3Jlc3BvbnNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWFjcm9kZWYgKHNlcXVlbnRpYWwgfCBlbGVtZW50IHwgYXR0cmlidXRlIHwgdGV4dCkqPgorPCFBVFRMSVNUIG1hY3JvZGVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVyaSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVsZW1lbnQgRU1QVFk+Cis8IUFUVExJU1QgZWxlbWVudAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgaW1wbGljaXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdGV4dCBFTVBUWT4KKzwhQVRUTElTVCB0ZXh0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0cmltICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9wdGlvbmFsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVuamFyIChmaWxlc2V0IHwgcGF0dGVybnNldCkqPgorPCFBVFRMSVNUIHVuamFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHZiYyAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCByZXNvdXJjZSB8IGRlZmluZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IHJlZmVyZW5jZSB8IHNyYyB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB2YmMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmVyZW5jZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VyZXNwb25zZWZpbGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVtb3ZlaW50Y2hlY2tzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWFpbmNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXh0cmFvcHRpb25zIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbG1vZHVsZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3aW4zMmljb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpb25zdHJpY3QgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4ZWN1dGFibGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXRmOG91dHB1dCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlZGVmYXVsdHJlZmVyZW5jZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0dHlwZSAoZXhlIHwgbGlicmFyeSB8IG1vZHVsZSB8IHdpbmV4ZSkgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJvb3RuYW1lc3BhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHdpbjMycmVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uZXhwbGljaXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2FybmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3B0aW9uY29tcGFyZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGltcG9ydHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZlcmVuY2VmaWxlcyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHdzZGx0b2RvdG5ldCBFTVBUWT4KKzwhQVRUTElTVCB3c2RsdG9kb3RuZXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHVybCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyY2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlcnZlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuYW1lc3BhY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYW5ndWFnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dHJhb3B0aW9ucyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBta2RpciBFTVBUWT4KKzwhQVRUTElTVCBta2RpcgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNvbmRpdGlvbiAoaXNmYWxzZSB8IGlzcmVmZXJlbmNlIHwgZXF1YWxzIHwgYXZhaWxhYmxlIHwgbm90IHwgY29udGFpbnMgfCBvcyB8IG9yIHwgYW5kIHwgZmlsZXNtYXRjaCB8IGNoZWNrc3VtIHwgaXN0cnVlIHwgaXNzZXQgfCBzb2NrZXQgfCBodHRwIHwgdXB0b2RhdGUpKj4KKzwhQVRUTElTVCBjb25kaXRpb24KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHZhbHVlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbHNlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY3ZzIChjb21tYW5kbGluZSkqPgorPCFBVFRMSVNUIGN2cworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY3ZzcnNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN2c3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWFsbHlxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9ubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2V4ZWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXJyb3IgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRhdGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YWcgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0ZW1wZmlsZSBFTVBUWT4KKzwhQVRUTElTVCB0ZW1wZmlsZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVzdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcmVmaXggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGp1bml0cmVwb3J0IChyZXBvcnQgfCBmaWxlc2V0KSo+Cis8IUFUVExJU1QganVuaXRyZXBvcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdG9kaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRvZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHJlcG9ydCBFTVBUWT4KKzwhQVRUTElTVCByZXBvcnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRvZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3R5bGVkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKGZyYW1lcyB8IG5vZnJhbWVzKSAjSU1QTElFRAorICAgICAgICAgIGV4dGVuc2lvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWthdHRyIEVNUFRZPgorPCFBVFRMSVNUIGNjbWthdHRyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZWN1cnNlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHR5cGV2YWx1ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbW1lbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9ianNlbGVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsZWFydG9vbGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHRhc2tkZWYgKGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIHRhc2tkZWYKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhZGFwdHRvIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb25lcnJvciAoZmFpbCB8IHJlcG9ydCB8IGlnbm9yZSkgI0lNUExJRUQKKyAgICAgICAgICBsb2FkZXJyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkYXB0ZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JtYXQgKHByb3BlcnRpZXMgfCB4bWwpICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXZlcnNlbG9hZGVyICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGVjaG8gKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGVjaG8KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsZXZlbCAoZXJyb3IgfCB3YXJuaW5nIHwgaW5mbyB8IHZlcmJvc2UgfCBkZWJ1ZykgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY3VwZGF0ZSBFTVBUWT4KKzwhQVRUTElTVCBjY3VwZGF0ZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcHJlc2VydmV0aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbmFtZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2aWV3cGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ3JhcGhpY2FsICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY3VycmVudHRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXZhIChjbGFzc3BhdGggfCBzeXNwcm9wZXJ0eSB8IHJlZGlyZWN0b3IgfCBib290Y2xhc3NwYXRoIHwgc3lzcHJvcGVydHlzZXQgfCBlbnYgfCBwZXJtaXNzaW9ucyB8IGp2bWFyZyB8IGFyZyB8IGFzc2VydGlvbnMpKj4KKzwhQVRUTElTVCBqYXZhCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZXN1bHRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGp2bWFyZ3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhcmdzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yayAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBqYXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNwYXduICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGlucHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2dlcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAganZtdmVyc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NuYW1lIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcmVuYW1lZXh0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCByZW5hbWVleHQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlcGxhY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdG9leHRlbnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZnJvbWV4dGVuc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzcmNkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB2c3NsYWJlbCBFTVBUWT4KKzwhQVRUTElTVCB2c3NsYWJlbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2c3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcnNpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbG9naW4gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBiYXNlbmFtZSBFTVBUWT4KKzwhQVRUTElTVCBiYXNlbmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN1ZmZpeCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFkb2MyICh0YWdsZXQgfCBkb2NsZXQgfCBwYWNrYWdlIHwgYXJnIHwgbGluayB8IGRvY3RpdGxlIHwgYm90dG9tIHwgZ3JvdXAgfCBwYWNrYWdlc2V0IHwgZmlsZXNldCB8IGNsYXNzcGF0aCB8IHNvdXJjZXBhdGggfCBmb290ZXIgfCBzb3VyY2UgfCBib290Y2xhc3NwYXRoIHwgaGVhZGVyIHwgZXhjbHVkZXBhY2thZ2UgfCB0YWcpKj4KKzwhQVRUTElTVCBqYXZhZG9jMgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYm90dG9tIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhlYWRlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmsgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2luZGV4ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFjY2VzcyAocHJvdGVjdGVkIHwgcHVibGljIHwgcGFja2FnZSB8IHByaXZhdGUpICNJTVBMSUVECisgICAgICAgICAgZG9jbGV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9xdWFsaWZpZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwdWJsaWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXV0aG9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvb3RlciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRvY2xldHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZWV4dGVybmFsZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBwcm90ZWN0ZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnJlYWtpdGVyYXRvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub25hdmJhciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmtvZmZsaW5lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkaXRpb25hbHBhcmFtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlua3NvdXJjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVub3NvdXJjZXBhY2thZ2VzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcml2YXRlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2hhcnNldCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZGVwcmVjYXRlZGxpc3QgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgc3R5bGVzaGVldGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVwYWNrYWdlbmFtZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkb2NsZXRwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZW5hbWVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgd2luZG93dGl0bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3RyZWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3BsaXRpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYWNrYWdlbGlzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGVuY29kaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZG9jdGl0bGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJpYWx3YXJuICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9sZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhlbHBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzb3VyY2VmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4dGRpcnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2hlbHAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbm9kZXByZWNhdGVkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG92ZXJ2aWV3IENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzY3AgRU1QVFk+Cis8IUFUVExJU1QgdnNzY3AKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZXJ2ZXJwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhdXRvcmVzcG9uc2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHRhcmZpbGVzZXQgfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0YXIKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHRhcmZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBiYXNlZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbiAobm9uZSB8IGd6aXAgfCBiemlwMikgI0lNUExJRUQKKyAgICAgICAgICBsb25nZmlsZSAod2FybiB8IGZhaWwgfCB0cnVuY2F0ZSB8IGdudSB8IG9taXQpICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCB0YXJmaWxlc2V0IChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBkYXRlIHwgZXhjbHVkZXNmaWxlIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCB0YXJmaWxlc2V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZXNlcnZlbGVhZGluZ3NsYXNoZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdXNlcm5hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdWlkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZnVsbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBncm91cCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtb2RlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZ2lkIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByZWZpeCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpcm1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc2V0cHJveHkgRU1QVFk+Cis8IUFUVExJU1Qgc2V0cHJveHkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5vbnByb3h5aG9zdHMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm94eWhvc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb2Nrc3Byb3h5aG9zdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3h5cG9ydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvY2tzcHJveHlwb3J0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm94eXVzZXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb3h5cGFzc3dvcmQgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBpbGFzbSAocGF0dGVybnNldCB8IGV4Y2x1ZGUgfCBpbmNsdWRlIHwgY3VzdG9tIHwgcHJlc2VudCB8IG5vbmUgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCByZWZlcmVuY2UgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgaWxhc20KKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG93bmVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleHRyYW9wdGlvbnMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWZhdWx0ZXhjbHVkZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0dHlwZSAoZXhlIHwgbGlicmFyeSkgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1ZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVzb3VyY2VmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGlzdGluZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBrZXlmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29zY2hlY2tvdXQgRU1QVFk+Cis8IUFUVExJU1Qgc29zY2hlY2tvdXQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNvc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdnNzc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHVzZXJuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc29zc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHByb2plY3RwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jYWNoZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzb3NjbWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXNzd29yZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFwcGx5IChtYXBwZXIgfCBzcmNmaWxlIHwgdGFyZ2V0ZmlsZSB8IHJlZGlyZWN0b3IgfCBmaWxlbGlzdCB8IGVudiB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBhcHBseQorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgcmVzdWx0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBza2lwZW1wdHlmaWxlc2V0cyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVECisgICAgICAgICAgbWF4cGFyYWxsZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvcnByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzcGF3biAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlucHV0c3RyaW5nIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNlYXJjaHBhdGggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbG9nZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yd2FyZHNsYXNoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9yIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc29sdmVleGVjdXRhYmxlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGFwcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGlnbm9yZW1pc3NpbmcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdm1sYXVuY2hlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBuZXdlbnZpcm9ubWVudCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZWxhdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbGxlbCAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjY3VuY2hlY2tvdXQgRU1QVFk+Cis8IUFUVExJU1QgY2N1bmNoZWNrb3V0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZWVwY29weSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamFybGliLXJlc29sdmUgKGFudCB8IGxvY2F0aW9uIHwgdXJsIHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgamFybGliLXJlc29sdmUKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNoZWNrZXh0ZW5zaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwcm9wZXJ0eSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVycm9yICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGxvY2F0aW9uIEVNUFRZPgorPCFBVFRMSVNUIGxvY2F0aW9uCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBsb2NhdGlvbiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVybCBFTVBUWT4KKzwhQVRUTElTVCB1cmwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlc3RkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1cmwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZmlsZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGN2c3RhZ2RpZmYgKGNvbW1hbmRsaW5lKSo+Cis8IUFUVExJU1QgY3ZzdGFnZGlmZgorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgY3ZzcnNoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kdGFnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcXVpZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFzc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tYW5kIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGFja2FnZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGN2c3Jvb3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWFsbHlxdWlldCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdGFydHRhZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG91dHB1dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBvcnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzc2lvbmxldmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3RmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZW5kZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vZXhlYyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmFpbG9uZXJyb3IgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYXBwZW5kICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHN0YXJ0ZGF0ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzaW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhZyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpsaW5rIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IG5vdCB8IHR5cGUgfCBtb2RpZmllZCB8IG9yIHwgY29udGFpbnMgfCBkZXBlbmQgfCBtZXJnZWZpbGVzIHwgZGlmZmVyZW50IHwgc2l6ZSB8IG1ham9yaXR5IHwgY29udGFpbnNyZWdleHAgfCBmaWxlbmFtZSB8IHNlbGVjdG9yIHwgaW5jbHVkZXNmaWxlIHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGFkZGZpbGVzIHwgZGVwdGggfCBhbmQpKj4KKzwhQVRUTElTVCBqbGluaworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgb3V0ZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb2xsb3dzeW1saW5rcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhZGRmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2FzZXNlbnNpdGl2ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgaW5jbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhjbHVkZXNmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVyZ2VmaWxlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgbWVyZ2VmaWxlcyAoZmlsZXNldCB8IGRpcnNldCB8IGV4dGRpcnMgfCBleGlzdGluZyB8IGZpbGVsaXN0IHwgcGF0aGVsZW1lbnQgfCBwYXRoKSo+Cis8IUFUVExJU1QgbWVyZ2VmaWxlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGFkZGZpbGVzIChmaWxlc2V0IHwgZGlyc2V0IHwgZXh0ZGlycyB8IGV4aXN0aW5nIHwgZmlsZWxpc3QgfCBwYXRoZWxlbWVudCB8IHBhdGgpKj4KKzwhQVRUTElTVCBhZGRmaWxlcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbG9jYXRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZWZpZCBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcGF0aCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFjYyBFTVBUWT4KKzwhQVRUTElTVCBqYXZhY2MKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlYnVncGFyc2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGphdmFjY2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZWxhY2hlY2sgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3B0aW1pemV0b2tlbm1hbmFnZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbW9udG9rZW5hY3Rpb24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnVpbGR0b2tlbm1hbmFnZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc2FuaXR5Y2hlY2sgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYnVpbGRwYXJzZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb3RoZXJhbWJpZ3VpdHljaGVjayBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvb2thaGVhZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnbG9va2FoZWFkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNob2ljZWFtYmlndWl0eWNoZWNrIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdW5pY29kZWlucHV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHVzZXJjaGFyc3RyZWFtICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlYnVndG9rZW5tYW5hZ2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGtlZXBsaW5lY29sdW1uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRkaXJlY3RvcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYWNoZXRva2VucyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBqYXZhdW5pY29kZWVzY2FwZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzdGF0aWMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGFyZ2V0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlY2FzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1c2VydG9rZW5tYW5hZ2VyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycmVwb3J0aW5nICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNobW9kIChtYXBwZXIgfCBpbmNsdWRlIHwgc3JjZmlsZSB8IGV4Y2x1ZGUgfCB0YXJnZXRmaWxlIHwgcGF0dGVybnNldCB8IHJlZGlyZWN0b3IgfCBlbnYgfCBmaWxlbGlzdCB8IGZpbGVzZXQgfCBkaXJzZXQgfCBhcmcpKj4KKzwhQVRUTElTVCBjaG1vZAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgYWRkc291cmNlZmlsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcGFyYWxsZWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGVjdXRhYmxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZm9yY2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgaW5wdXRzdHJpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzZWFyY2hwYXRoICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHJlbGF0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHNraXBlbXB0eWZpbGVzZXRzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNvbW1hbmQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmb3J3YXJkc2xhc2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3Bhd24gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZtbGF1bmNoZXIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2Vycm9yICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVycm9ycHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlcnJvciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXNvbHZlZXhlY3V0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHJlc3VsdHByb3BlcnR5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlbWlzc2luZyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsaWZleGVjdXRpb25mYWlscyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBhcHBlbmQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGltZW91dCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1heHBhcmFsbGVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb3V0cHV0cHJvcGVydHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwZXJtIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbmV3ZW52aXJvbm1lbnQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdHlwZSAoZmlsZSB8IGRpciB8IGJvdGgpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHZjcyAocHZjc3Byb2plY3QpKj4KKzwhQVRUTElTVCBwdmNzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGVvbmx5ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGZvcmNlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29uZmlnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHZjc2JpbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdvcmtzcGFjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHB2Y3Nwcm9qZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZW5hbWVmb3JtYXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VyaWQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICByZXBvc2l0b3J5IENEQVRBICNJTVBMSUVECisgICAgICAgICAgaWdub3JlcmV0dXJuY29kZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICByZXZpc2lvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxpbmVzdGFydCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvbW90aW9uZ3JvdXAgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsYWJlbCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgcHZjc3Byb2plY3QgRU1QVFk+Cis8IUFUVExJU1QgcHZjc3Byb2plY3QKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIG5hbWUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXJsaWItbWFuaWZlc3QgKG9wdGlvbnMgfCBhdHRyaWJ1dGUgfCBkZXBlbmRzIHwgZXh0ZW5zaW9uKSo+Cis8IUFUVExJU1QgamFybGliLW1hbmlmZXN0CisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBvcHRpb25zIChmaWxlc2V0IHwgbGliZmlsZXNldCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIG9wdGlvbnMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZXBlbmRzIChmaWxlc2V0IHwgbGliZmlsZXNldCB8IGV4dGVuc2lvbikqPgorPCFBVFRMSVNUIGRlcGVuZHMKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHJlZmlkIElEUkVGICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBqYXIgKHBhdHRlcm5zZXQgfCBleGNsdWRlIHwgaW5jbHVkZSB8IGN1c3RvbSB8IHByZXNlbnQgfCBub25lIHwgbm90IHwgbWFuaWZlc3QgfCB0eXBlIHwgbWV0YWluZiB8IG1vZGlmaWVkIHwgb3IgfCBjb250YWlucyB8IGRlcGVuZCB8IGZpbGVzZXQgfCBkaWZmZXJlbnQgfCBzaXplIHwgbWFqb3JpdHkgfCBjb250YWluc3JlZ2V4cCB8IGluZGV4amFycyB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCB6aXBncm91cGZpbGVzZXQgfCB6aXBmaWxlc2V0IHwgZGF0ZSB8IGV4Y2x1ZGVzZmlsZSB8IGRlcHRoIHwgYW5kKSo+Cis8IUFUVExJU1QgamFyCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB3aGVuZW1wdHkgKGZhaWwgfCBza2lwIHwgY3JlYXRlKSAjSU1QTElFRAorICAgICAgICAgIGtlZXBjb21wcmVzc2lvbiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZHVwbGljYXRlIChhZGQgfCBwcmVzZXJ2ZSB8IGZhaWwpICNJTVBMSUVECisgICAgICAgICAgcm91bmR1cCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGJhc2VkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgamFyZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlZmF1bHRleGNsdWRlcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmRleCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB1cGRhdGUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZm9sbG93c3ltbGlua3MgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVzdGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjYXNlc2Vuc2l0aXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21wcmVzcyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1hbmlmZXN0ZW5jb2RpbmcgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaWxlc29ubHkgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZpbGVzZXRtYW5pZmVzdCAoc2tpcCB8IG1lcmdlIHwgbWVyZ2V3aXRob3V0bWFpbikgI0lNUExJRUQKKyAgICAgICAgICB6aXBmaWxlIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgY2Nta2xidHlwZSBFTVBUWT4KKzwhQVRUTElTVCBjY21rbGJ0eXBlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBnbG9iYWwgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVwbGFjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBzaGFyZWQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmlld3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0eXBlbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBicmFuY2ggJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZhaWxvbmVyciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBvYmpzZWxlY3QgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGVhcnRvb2xkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZvYiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcmRpbmFyeSAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBzY3JpcHRkZWYgKCNQQ0RBVEEgfCBjbGFzc3BhdGggfCBlbGVtZW50IHwgYXR0cmlidXRlKSo+Cis8IUFUVExJU1Qgc2NyaXB0ZGVmCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzcmMgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdXJpIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFuZ3VhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjbGFzc3BhdGhyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICBsb2FkZXJyZWYgSURSRUYgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmV2ZXJzZWxvYWRlciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkZWZhdWx0ZXhjbHVkZXMgRU1QVFk+Cis8IUFUVExJU1QgZGVmYXVsdGV4Y2x1ZGVzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICByZW1vdmUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlY2hvICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFkZCBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIG1wYXJzZSAoZmlsZXNldCB8IGp2bWFyZyB8IGNsYXNzcGF0aCB8IHNvdXJjZXBhdGgpKj4KKzwhQVRUTElTVCBtcGFyc2UKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGNsZWFudXAgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBtYXhtZW1vcnkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZXRhbWF0YWhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZWJ1Z3BhcnNlciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBob21lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnc2Nhbm5lciAlYm9vbGVhbjsgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBibGdlbmNsaWVudCAoY2xhc3NwYXRoKSo+Cis8IUFUVExJU1QgYmxnZW5jbGllbnQKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIGRlYnVnICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1vZGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlamJqYXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRocmVmIElEUkVGICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsaWVudGphciBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpqZG9jIEVNUFRZPgorPCFBVFRMSVNUIGpqZG9jCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBvdXRwdXRmaWxlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGphdmFjY2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0ZXh0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG9uZXRhYmxlICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGdlbmtleSAoZG5hbWUpKj4KKzwhQVRUTElTVCBnZW5rZXkKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHN0b3JlcGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNpZ2FsZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAga2V5cGFzcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2V5c2l6ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGFsaWFzIENEQVRBICNJTVBMSUVECisgICAgICAgICAga2V5YWxnIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmFsaWRpdHkgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBrZXlzdG9yZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzdG9yZXR5cGUgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBkbmFtZSAocGFyYW0pKj4KKzwhQVRUTElTVCBkbmFtZQorICAgICAgICAgIGlkIElEICNJTVBMSUVEPgorCis8IUVMRU1FTlQgamF2YWggKGFyZyB8IGNsYXNzcGF0aCB8IGNsYXNzIHwgYm9vdGNsYXNzcGF0aCkqPgorPCFBVFRMSVNUIGphdmFoCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBzdHVicyAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmb3JjZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgb2xkICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIG91dHB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdmVyYm9zZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBib290Y2xhc3NwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBjbGFzcyBFTVBUWT4KKzwhQVRUTElTVCBjbGFzcworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgbmFtZSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbWtlbGVtIEVNUFRZPgorPCFBVFRMSVNUIGNjbWtlbGVtCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBwcmVzZXJ2ZXRpbWUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgbWFzdGVyICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGVsdHlwZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZpZXdwYXRoIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG5vd2FybiAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnIgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgb2Jqc2VsZWN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2xlYXJ0b29sZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub2NoZWNrb3V0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY29tbWVudGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjaGVja2luICVib29sZWFuOyAjSU1QTElFRD4KKworPCFFTEVNRU5UIGNjbXJlY29uZmlndXJlIEVNUFRZPgorPCFBVFRMSVNUIGNjbXJlY29uZmlndXJlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBjY21hY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgY2NtcHJvamVjdCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBjY21kaXIgQ0RBVEEgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBmYWlsICgjUENEQVRBIHwgY29uZGl0aW9uKSo+Cis8IUFUVExJU1QgZmFpbAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3RhdHVzIENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG1lc3NhZ2UgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1bmxlc3MgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpZiBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIHVuemlwIChmaWxlc2V0IHwgcGF0dGVybnNldCkqPgorPCFBVFRMSVNUIHVuemlwCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIG92ZXJ3cml0ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNyYyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGphdmFjIChwYXR0ZXJuc2V0IHwgZXhjbHVkZSB8IGluY2x1ZGUgfCBjdXN0b20gfCBwcmVzZW50IHwgbm9uZSB8IGV4dGRpcnMgfCBub3QgfCB0eXBlIHwgbW9kaWZpZWQgfCBzcmMgfCBvciB8IGNvbnRhaW5zIHwgZGVwZW5kIHwgY2xhc3NwYXRoIHwgc291cmNlcGF0aCB8IGRpZmZlcmVudCB8IHNpemUgfCBtYWpvcml0eSB8IGNvbnRhaW5zcmVnZXhwIHwgYm9vdGNsYXNzcGF0aCB8IGZpbGVuYW1lIHwgc2VsZWN0b3IgfCBpbmNsdWRlc2ZpbGUgfCBjb21waWxlcmFyZyB8IGRhdGUgfCBleGNsdWRlc2ZpbGUgfCBkZXB0aCB8IGFuZCkqPgorPCFBVFRMSVNUIGphdmFjCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXJnZXQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHZlcmJvc2UgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgYm9vdGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGNvbXBpbGVyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXhlY3V0YWJsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlYnVnbGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBtZW1vcnlpbml0aWFsc2l6ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlcHJlY2F0aW9uICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVhbnRydW50aW1lICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc291cmNlcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGRlcGVuZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlcyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGluY2x1ZGVqYXZhcnVudGltZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBkZXN0ZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVidWcgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgdGVtcGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGZvbGxvd3N5bWxpbmtzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGNhc2VzZW5zaXRpdmUgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGVzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGJvb3RjbGFzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbmNsdWRlc2ZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBub3dhcm4gJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcHJvY2VlZCAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzcGF0aHJlZiBJRFJFRiAjSU1QTElFRAorICAgICAgICAgIGZvcmsgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgc3JjZGlyIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbWVtb3J5bWF4aW11bXNpemUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBvcHRpbWl6ZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBlbmNvZGluZyBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGV4Y2x1ZGVzZmlsZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvdXJjZXBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBsaXN0ZmlsZXMgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgZXh0ZGlycyBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGpwY292ZXJhZ2UgKGFyZyB8IHNvY2tldCB8IGZpbGVzZXQgfCBqdm1hcmcgfCBjbGFzc3BhdGggfCB0cmlnZ2VycyB8IGZpbHRlcnMpKj4KKzwhQVRUTElTVCBqcGNvdmVyYWdlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBhcHBsZXQgJWJvb2xlYW47ICNJTVBMSUVECisgICAgICAgICAgcmVjb3JkZnJvbXN0YXJ0IChjb3ZlcmFnZSB8IG5vbmUgfCBhbGwpICNJTVBMSUVECisgICAgICAgICAgdm0gKGphdmEyIHwgamRrMTE4IHwgamRrMTE3KSAjSU1QTElFRAorICAgICAgICAgIGNsYXNzbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHdvcmtpbmdkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBpbnB1dGZpbGUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBzbmFwc2hvdGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNlZWRuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgamF2YWV4ZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGhvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBleGl0cHJvbXB0IENEQVRBICNJTVBMSUVECisgICAgICAgICAgdGFza25hbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3YXJubGV2ZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmaW5hbHNuYXBzaG90IENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB0cmFja25hdGl2ZXMgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdHJpZ2dlcnMgKG1ldGhvZCkqPgorPCFBVFRMSVNUIHRyaWdnZXJzCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQ+CisKKzwhRUxFTUVOVCBtZXRob2QgRU1QVFk+Cis8IUFUVExJU1QgbWV0aG9kCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICBuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZXZlbnQgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBhY3Rpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBwYXJhbSBDREFUQSAjSU1QTElFRD4KKworPCFFTEVNRU5UIGZpbHRlcnMgKGluY2x1ZGUgfCBleGNsdWRlKSo+Cis8IUFUVExJU1QgZmlsdGVycworICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgZGVmYXVsdGV4Y2x1ZGUgJWJvb2xlYW47ICNJTVBMSUVEPgorCis8IUVMRU1FTlQgc29zbGFiZWwgRU1QVFk+Cis8IUFUVExJU1Qgc29zbGFiZWwKKyAgICAgICAgICBpZCBJRCAjSU1QTElFRAorICAgICAgICAgIHNvc2hvbWUgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJib3NlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB1c2VybmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc3NlcnZlcnBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBjb21tZW50IENEQVRBICNJTVBMSUVECisgICAgICAgICAgcHJvamVjdHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbm9jYWNoZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBub2NvbXByZXNzICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHRhc2tuYW1lIENEQVRBICNJTVBMSUVECisgICAgICAgICAgbGFiZWwgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkZXNjcmlwdGlvbiBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvY2FscGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHNvc2NtZCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHBhc3N3b3JkIENEQVRBICNJTVBMSUVEPgorCis8IUVMRU1FTlQgdnNzZ2V0IEVNUFRZPgorPCFBVFRMSVNUIHZzc2dldAorICAgICAgICAgIGlkIElEICNJTVBMSUVECisgICAgICAgICAgc3NkaXIgQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBkYXRlIENEQVRBICNJTVBMSUVECisgICAgICAgICAgcmVjdXJzaXZlICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIGF1dG9yZXNwb25zZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIHF1aWV0ICVib29sZWFuOyAjSU1QTElFRAorICAgICAgICAgIHZzc3BhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB2ZXJzaW9uIENEQVRBICNJTVBMSUVECisgICAgICAgICAgc2VydmVycGF0aCBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxvZ2luIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZmlsZXRpbWVzdGFtcCAoY3VycmVudCB8IG1vZGlmaWVkIHwgdXBkYXRlZCkgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZSAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGxhYmVsIENEQVRBICNJTVBMSUVECisgICAgICAgICAgZGVzY3JpcHRpb24gQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICBmYWlsb25lcnJvciAlYm9vbGVhbjsgI0lNUExJRUQKKyAgICAgICAgICBsb2NhbHBhdGggQ0RBVEEgI0lNUExJRUQKKyAgICAgICAgICB3cml0YWJsZWZpbGVzIChyZXBsYWNlIHwgc2tpcCB8IGZhaWwpICNJTVBMSUVEPgorCis8IUVMRU1FTlQgZGVsdHJlZSBFTVBUWT4KKzwhQVRUTElTVCBkZWx0cmVlCisgICAgICAgICAgaWQgSUQgI0lNUExJRUQKKyAgICAgICAgICB0YXNrbmFtZSBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRpciBDREFUQSAjSU1QTElFRAorICAgICAgICAgIGRlc2NyaXB0aW9uIENEQVRBICNJTVBMSUVEPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9jb25maWcueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvY29uZmlnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NzNhZGQzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvY29uZmlnLnhtbApAQCAtMCwwICsxLDYgQEAKKzxjb25maWcKKyAgICAgICAgaG9zdD0iJHtob3N0fSIKKyAgICAgICAgcG9ydD0iJHtwb3J0fSIKKyAgICAgICAgYmFzZXBhdGg9IiR7YmFzZXBhdGh9IgorICAgICAgICBwcm90b2NvbD0iaHR0cCIvPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1vcGVuLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLW9wZW4ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0ZmJhYzcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci1vcGVuLnhtbApAQCAtMCwwICsxLDUgQEAKKyZ3ZWxjb21lLW9wZW47Cis8Y2xpY2tMaW5rCisgICAgICAgIGRlc2NyaXB0aW9uPSJDbGljayBSZWdpc3RlciIKKyAgICAgICAgbGFiZWw9IlJlZ2lzdGVyIHdpdGggTWFpbFJlYWRlciIvPgorICAgICAgICAmcmVnaXN0ZXItcGFnZTsKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXBhZ2UueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvcmVnaXN0ZXItcGFnZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ2MDFlOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXBhZ2UueG1sCkBAIC0wLDAgKzEsMyBAQAorPHZlcmlmeVRpdGxlCisgICAgICAgIGRlc2NyaXB0aW9uPSJSZWdpc3RyYXRpb24gcGFnZSB0aXRsZSIKKyAgICAgICAgdGV4dD0iTWFpbFJlYWRlciAtIFJlZ2lzdGVyIi8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci10cmlsbGlhbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9yZWdpc3Rlci10cmlsbGlhbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU2MWYwNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3JlZ2lzdGVyLXRyaWxsaWFuLnhtbApAQCAtMCwwICsxLDIxIEBACis8c2V0SW5wdXRGaWVsZAorICAgICAgICBkZXNjcmlwdGlvbj0idXNlcm5hbWUiCisgICAgICAgIG5hbWU9InVzZXJuYW1lIgorICAgICAgICB2YWx1ZT0idHJpbGxpYW4iLz4KKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJwYXNzd29yZCIKKyAgICAgICAgbmFtZT0icGFzc3dvcmQiCisgICAgICAgIHZhbHVlPSJhc3RyYSIvPgorPHNldElucHV0RmllbGQKKyAgICAgICAgZGVzY3JpcHRpb249InBhc3N3b3JkMiIKKyAgICAgICAgbmFtZT0icGFzc3dvcmQyIgorICAgICAgICB2YWx1ZT0iYXN0cmEiLz4KKzxzZXRJbnB1dEZpZWxkCisgICAgICAgIGRlc2NyaXB0aW9uPSJmdWxsTmFtZSIKKyAgICAgICAgbmFtZT0iZnVsbE5hbWUiCisgICAgICAgIHZhbHVlPSJUcmljaWEgTWNNaWxsaWFuIi8+Cis8c2V0SW5wdXRGaWVsZAorICAgICAgICBkZXNjcmlwdGlvbj0iZnJvbUFkZHJlc3MiCisgICAgICAgIG5hbWU9ImZyb21BZGRyZXNzIgorICAgICAgICB2YWx1ZT0idHJpY2lhQG1hZ3JhdGhlYS5jb20iLz4KKyAgICAgICAgJnNhdmUtY2xpY2s7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvc2F2ZS1jbGljay54bWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvV0VCLUlORi9lbnRpdGllcy9zYXZlLWNsaWNrLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDJhMWRiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvc2F2ZS1jbGljay54bWwKQEAgLTAsMCArMSwzIEBACis8Y2xpY2tCdXR0b24KKyAgICAgICAgZGVzY3JpcHRpb249IlNhdmUiCisgICAgICAgIG5hbWU9IlNhdmUiLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3Rhc2tkZWYueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvdGFza2RlZi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI0YzFkZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3Rhc2tkZWYueG1sCkBAIC0wLDAgKzEsMjUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgPz4KKzxwcm9qZWN0IG5hbWU9InRhc2tkZWYiPgorICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgVGhpcyBwcm9qZWN0IHByb3ZpZGVzIGZvbGxvd2luZyBlbGVtZW50cyB0byB1c2UgaW4geW91ciB0ZXN0IHNjcmlwdHM6CisKKyAgICAgICAgKDApIGFsbCB3ZWJ0ZXN0J3Mgc3RlcHMgbG9hZGVkIGFuZCByZWFkeSB0byB1c2UsCisgICAgICAgICgxKSB0aGUgcGF0aCAid2VidGVzdC5wYXRoLmlkIiB0aGF0IGluY2x1ZGVzIGFsbCBvZiB3ZWJ0ZXN0J3MKKyAgICAgICAgbGlicmFyaWVzLAorICAgICAgICAoMikgdGhlIGNsYXNzIGxvYWRlciAid2VidGVzdC5sb2FkZXIiIHRoYXQgaXMgdGhlIG9yaWdpbmFsIGxvYWRlciBmb3IKKyAgICAgICAgd2VidGVzdC4KKworICAgICAgICBVc2FnZToKKyAgICAgICAgU2V0IHRoZSBwcm9wZXJ0eSB3ZWJ0ZXN0LmhvbWUgdG8gdGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0aGUgYnVpbGQuemlwCisgICAgICAgIGlzIGV4dHJhY3RlZCwKKyAgICAgICAgYW5kIGNhbGxzOgorICAgICAgICAmbHQ7aW1wb3J0IGZpbGU9IiR7d2VidGVzdC5ob21lfS9saWIvdGFza2RlZi54bWwiICZndDsKKyAgICA8L2Rlc2NyaXB0aW9uPgorCisgICAgPGltcG9ydCBmaWxlPSIke3dlYnRlc3QuaG9tZX0vbGliL2NsYXNzcGF0aC54bWwiLz4KKworICAgIDx0YXNrZGVmIHJlc291cmNlPSJ3ZWJ0ZXN0LnRhc2tkZWYiCisgICAgICAgICAgICAgbG9hZGVycmVmPSJ3ZWJ0ZXN0LmxvYWRlciIKKyAgICAgICAgICAgICBjbGFzc3BhdGhyZWY9IndlYnRlc3QucGF0aC5pZCIKKyAgICAgICAgICAgIC8+Cis8L3Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL1dFQi1JTkYvZW50aXRpZXMvd2VsY29tZS1vcGVuLnhtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3dlbGNvbWUtb3Blbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTA3MzUzMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9XRUItSU5GL2VudGl0aWVzL3dlbGNvbWUtb3Blbi54bWwKQEAgLTAsMCArMSw2IEBACis8aW52b2tlCisgICAgICAgIGRlc2NyaXB0aW9uPSJPcGVuIHdlbGNvbWUgYWN0aW9uIgorICAgICAgICB1cmw9IldlbGNvbWUuZG8iLz4KKzx2ZXJpZnlUaXRsZQorICAgICAgICBkZXNjcmlwdGlvbj0iV2VsY29tZSBwYWdlIHRpdGxlIgorICAgICAgICB0ZXh0PSJNYWlsUmVhZGVyIi8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTQ0NWVjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApAQCAtMCwwICsxLDQ1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgd2ViLWFwcCBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4zLy9FTiIgImh0dHA6Ly9qYXZhLnN1bi5jb20vZHRkL3dlYi1hcHBfMl8zLmR0ZCI+Cis8d2ViLWFwcD4KKworICAgIDxkaXNwbGF5LW5hbWU+U3RydXRzIDIgTWFpbHJlYWRlcjwvZGlzcGxheS1uYW1lPgorCisgICAgPGZpbHRlcj4KKyAgICAgICAgPGZpbHRlci1uYW1lPnN0cnV0cy1jbGVhbnVwPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPGZpbHRlci1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5BY3Rpb25Db250ZXh0Q2xlYW5VcDwvZmlsdGVyLWNsYXNzPgorICAgIDwvZmlsdGVyPgorICAgIDxmaWx0ZXI+CisgICAgICAgIDxmaWx0ZXItbmFtZT5zaXRlbWVzaDwvZmlsdGVyLW5hbWU+CisgICAgICAgIDxmaWx0ZXItY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMyLnNpdGVtZXNoLkZyZWVNYXJrZXJQYWdlRmlsdGVyPC9maWx0ZXItY2xhc3M+CisgICAgPC9maWx0ZXI+CisgICAgPGZpbHRlcj4KKyAgICAgICAgPGZpbHRlci1uYW1lPnN0cnV0czI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8ZmlsdGVyLWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzMi5kaXNwYXRjaGVyLkZpbHRlckRpc3BhdGNoZXI8L2ZpbHRlci1jbGFzcz4KKyAgICA8L2ZpbHRlcj4KKworICAgIDxmaWx0ZXItbWFwcGluZz4KKyAgICAgICAgPGZpbHRlci1uYW1lPnN0cnV0cy1jbGVhbnVwPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPHVybC1wYXR0ZXJuPi8qPC91cmwtcGF0dGVybj4KKyAgICA8L2ZpbHRlci1tYXBwaW5nPgorICAgIDxmaWx0ZXItbWFwcGluZz4KKyAgICAgICAgPGZpbHRlci1uYW1lPnNpdGVtZXNoPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPHVybC1wYXR0ZXJuPi8qPC91cmwtcGF0dGVybj4KKyAgICA8L2ZpbHRlci1tYXBwaW5nPgorICAgIDxmaWx0ZXItbWFwcGluZz4KKyAgICAgICAgPGZpbHRlci1uYW1lPnN0cnV0czI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8dXJsLXBhdHRlcm4+Lyo8L3VybC1wYXR0ZXJuPgorICAgIDwvZmlsdGVyLW1hcHBpbmc+CisKKworICAgIDwhLS0gQXBwbGljYXRpb24gTGlzdGVuZXIgZm9yIE1haWxyZWFkZXIgZGF0YWJhc2UgLS0+CisgICAgPGxpc3RlbmVyPgorICAgICAgICA8bGlzdGVuZXItY2xhc3M+CisgICAgICAgICAgICBEYXRhYmFzZUxpc3RlbmVyCisgICAgICAgIDwvbGlzdGVuZXItY2xhc3M+CisgICAgPC9saXN0ZW5lcj4KKworICAgIDx3ZWxjb21lLWZpbGUtbGlzdD4KKyAgICAgICAgPHdlbGNvbWUtZmlsZT5pbmRleC5odG1sPC93ZWxjb21lLWZpbGU+CisgICAgPC93ZWxjb21lLWZpbGUtbGlzdD4KKworPC93ZWItYXBwPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcy5zYW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE2OTc1YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QucHJvcGVydGllcy5zYW1wbGUKQEAgLTAsMCArMSwxNSBAQAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyMgd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZQ0KKyMNCisjIFRoaXMgaXMgYW4gZXhhbXBsZSAid2VidGVzdC5wcm9wZXJ0aWVzIiBmaWxlLCB1c2VkIHRvIGN1c3RvbWl6ZSBidWlsZGluZyBTdHJ1dHMNCisjIGZvciB5b3VyIGxvY2FsIGVudmlyb25tZW50LiAgTWFrZSBhbnkgY2hhbmdlcyB5b3UgbmVlZCwgYW5kIHJlbmFtZSB0aGlzIGZpbGUNCisjIHRvICJ3ZWJ0ZXN0LnByb3BlcnRpZXMiIGluIHRoZSBzYW1lIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRoZSBTdHJ1dHMNCisjICJ3ZWJ0ZXN0LnhtbCIgZmlsZS4NCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQord2VidGVzdC5ob21lID0gL29wdC9DYW5vby93ZWJ0ZXN0LTEuNw0KK2hvc3QgPSBsb2NhbGhvc3QNCitwb3J0ID0gODA4MA0KK2Jhc2VwYXRoID0gbGFiLTItMg0KK3dlYmFwcHMuaG9tZSA9IC9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy8NCityZXNvdXJjZS5ob21lID0gJHt3ZWJhcHBzLmhvbWV9LyR7YmFzZXBhdGh9L1dFQi1JTkYvY2xhc3Nlcy9yZXNvdXJjZXMucHJvcGVydGllcyINCisjIG1haWxyZWFkZXIuaG9tZSA9IA0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYzNDc2OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYnRlc3QueG1sCkBAIC0wLDAgKzEsMTIwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9DVFlQRSBwcm9qZWN0IFNZU1RFTSAiZW50aXRpZXMvV2ViVGVzdC5kdGQiIFsKKworICAgICAgICA8IUVOVElUWSB0YXNrZGVmLXdlYnRlc3QgU1lTVEVNICJlbnRpdGllcy90YXNrZGVmLnhtbCI+CisgICAgICAgIDwhRU5USVRZIGNvbmZpZyBTWVNURU0gImVudGl0aWVzL2NvbmZpZy54bWwiPgorCisgICAgICAgIDwhRU5USVRZIHJlZ2lzdGVyLW9wZW4gU1lTVEVNICJmaWxlOi4vZW50aXRpZXMvcmVnaXN0ZXItb3Blbi54bWwiPgorICAgICAgICA8IUVOVElUWSByZWdpc3Rlci1wYWdlIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3JlZ2lzdGVyLXBhZ2UueG1sIj4KKyAgICAgICAgPCFFTlRJVFkgcmVnaXN0ZXItdHJpbGxpYW4gU1lTVEVNICJmaWxlOi4vZW50aXRpZXMvcmVnaXN0ZXItdHJpbGxpYW4ueG1sIj4KKworICAgICAgICA8IUVOVElUWSBzYXZlLWNsaWNrIFNZU1RFTSAiZmlsZTouL2VudGl0aWVzL3NhdmUtY2xpY2sueG1sIj4KKworICAgICAgICA8IUVOVElUWSB3ZWxjb21lLW9wZW4gU1lTVEVNICJmaWxlOi4vZW50aXRpZXMvd2VsY29tZS1vcGVuLnhtbCI+CisKKyAgICAgICAgXT4KKworPHByb2plY3QgbmFtZT0iTWFpbFJlYWRlciBUcmFpbmluZyBDb3Vyc2UgLSBFeGVyY2lzZSBuYXZpZ2F0aW9uIGFuZCBkYXRhYmFzZSBsb2dpYworLSBDYW5vbyBXZWJUZXN0cyIgYmFzZWRpcj0iLiIgZGVmYXVsdD0iY2xlYW4iPgorCisgICAgPCEtLQorICAgICBDYW5vbyBXZWJUZXN0IGNvbmZpZ3VyYXRpb24gZmlsZSB0byB0ZXN0IG5hdmlnYXRpbmcgYmV0d2VlbiBwYWdlcyBhbmQKKyAgICAgY3JlYXRpbmcgYW5kIGVkaXRpbmcgYW4gYWNjb3VudC4KKworICAgICBUbyBydW4gdGhpcyB0ZXN0LCBmaXJzdCBpbnN0YWxsIHRoZSBDYW5vbyBXZWJ0ZXN0IHBhY2thZ2Ugb24geW91cgorICAgICBsb2NhbCBzeXN0ZW0gW2h0dHA6Ly93ZWJ0ZXN0LmNhbm9vLmNvbV0uCisKKyAgICAgVGhlIGRlZmF1bHQgbG9jYXRpb24gZm9yIHRoaXMgYnVpbGQgZmlsZSBpcyB1bmRlcgorICAgICAiL29wdC9DYW5vby93ZWJ0ZXN0LTEuNyIuCisgICAgIFNlZSB0aGUgd2VidGVzdC5wcm9wZXJ0aWVzLnNhbXBsZSB0byB1c2UgYW5vdGhlciBsb2NhdGlvbi4KKworICAgICBPbmNlIENhbm9vIGlzIGluc3RhbGxlZCwgdGhlIHdlYnRlc3QueG1sIGZpbGUgY2FuIGJlIHJ1biBhcyBhbiBBbnQgYnVpbGQKKyAgICAgZmlsZSAoYW50IC1mIHdlYnRlc3QueG1sKS4KKworICAgICBCeSBkZWZhdWx0LCB0aGUgdGVzdHMgYXJlIGNvbmZpZ3VyZWQgdG8gZmluZCB0aGUgYXBwbGljYXRpb24gdW5kZXIgdGVzdAorICAgICAgYXQgImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9saWItMi0yIi4KKyAgICAgU2VlIHRoZSB3ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlIHRvIHVzZSBhbm90aGVyIGxvY2F0aW9uLgorCisgICAgIERlcGxveSB0aGUgYXBwbGljYXRpb24gdG8geW91ciBjb250YWluZXIsIGFuZCB1c2UgQW50IHRvIHJ1biB0aGUKKyAgICAgd2VidGVzdC54bWwuCisKKyAgICAgVGhlICJjbGVhbiIgdGFyZ2V0IGNhbiBiZSBydW4gdG8gdGVzdCBldmVyeXRoaW5nLCBidXQgd2lsbCBmYWlsIGlmIHJ1biBhZ2FpbiwKKyAgICAgc2luY2UgdGhlIHRlc3QtdXNlciB3aWxsIGFscmVhZHkgYmUgcmVnaXN0ZXJlZC4KKyAgICAgVGhlICJkZWZhdWx0IiB0YXJnZXQgc2tpcHMgcmVnaXN0ZXJhdGlvbiBhbmQgY2FuIGJlIHJ1biBhcyBvZnRlbiBhcyBuZWVkZWQKKyAgICAgYWZ0ZXIgImNsZWFuIiBpcyBydW4gb25jZS4KKworICAgICBUbyByZXNldCB0aGUgWE1MICJkYXRhYmFzZSIsIGVpdGhlciByZWRlcGxveSB0aGUgYXBwbGljYXRpb24gc28gdGhhdCB0aGUKKyAgICAgV0VCLUlORi9jbGFzc2VzL2RhdGFiYXNlLnhtbCBpcyBvdmVyd3JpdHRlbiwKKyAgICAgb3IgdXNlIHRoZSAiY2xlYW4tZGF0YWJhc2UiIHRhcmdldCB0byBvdmVyd3JpdGUgdGhlIGZpbGUuCisgICAgIE9ubHkgdXNlICJjbGVhbi1kYXRhYmFzZSIgd2hlbiB0aGUgc2VydmVyICBpcyBzdG9wcGVkLAorICAgICBhbmQgdGhlbiBzdGFydCBpdCBhZ2FpbiBiZWZvcmUgcnVubmluZyBvdGhlciB0YXJnZXRzLgorCisgICAgIFRoZSB0ZXN0cyBhcmUgYmFzZWQgb24gYSBzZXQgb2YgTWFpbFJlYWRlciBVc2UgQ2FzZXMgbWFpbnRhaW5lZCBhdCB0aGUKKyAgICAgU3RydXRzIFVuaXZlcnNpdHkgc2l0ZQorICAgICBbaHR0cDovL29wZW5zb3VyY2UyLmF0bGFzc2lhbi5jb20vY29uZmx1ZW5jZS9vc3MvZGlzcGxheS9TVFJVVFMvTWFpbFJlYWRlcl0uCisgICAgICovCisgICAgLS0+CisKKyAgICA8IS0tIExvYWQgbG9jYWwgcHJlZmVyZW5jZXMsIGlmIGFueSAtLT4KKyAgICA8cHJvcGVydHkgZmlsZT0id2VidGVzdC5wcm9wZXJ0aWVzIi8+CisKKyAgICA8IS0tIFRoZXNlIHByb3BlcnRpZXMgY2FuIGJlIGN1c3RvbWl6ZWQgdXNpbmcgdmlhIHdlYnRlc3QucHJvcGVydGllcyAtLT4KKyAgICA8IS0tIFNlZSB3ZWJ0ZXN0LnByb3BlcnRpZXMuc2FtcGxlIGZvciBhIHN0YXJ0ZXIgZmlsZSAtLT4KKyAgICA8cHJvcGVydHkgbmFtZT0id2VidGVzdC5ob21lIgorICAgICAgICAgICAgICBsb2NhdGlvbj0iL29wdC9DYW5vby93ZWJ0ZXN0LTEuNyIvPgorCisgICAgPHByb3BlcnR5IG5hbWU9Imhvc3QiCisgICAgICAgICAgICAgIHZhbHVlPSJsb2NhbGhvc3QiLz4KKworICAgIDxwcm9wZXJ0eSBuYW1lPSJwb3J0IgorICAgICAgICAgICAgICB2YWx1ZT0iODA4MCIvPgorCisgICAgPHByb3BlcnR5IG5hbWU9ImJhc2VwYXRoIgorICAgICAgICAgICAgICB2YWx1ZT0ibGFiLTItMiIvPgorCisgICAgPHByb3BlcnR5IG5hbWU9Im1haWxyZWFkZXIuaG9tZSIKKyAgICAgICAgICAgICAgbG9jYXRpb249Ii4uLy4uLy4uLyIvPgorCisgICAgPHByb3BlcnR5IG5hbWU9IndlYmFwcHMuaG9tZSIKKyAgICAgICAgICAgICAgbG9jYXRpb249Ii9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcyIvPgorCisgICAgPHByb3BlcnR5IGZpbGU9IiR7d2ViYXBwcy5ob21lfS8ke2Jhc2VwYXRofS9XRUItSU5GL2NsYXNzZXMvcmVzb3VyY2VzLnByb3BlcnRpZXMiLz4KKworCisgICAgPHRhc2tkZWYgZmlsZT0iJHt3ZWJ0ZXN0LmhvbWV9L3dlYnRlc3RUYXNrZGVmcy5wcm9wZXJ0aWVzIj4KKyAgICAgICAgPGNsYXNzcGF0aD4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0iJHt3ZWJ0ZXN0LmhvbWV9IiBpbmNsdWRlcz0iKiovbGliLyouamFyIi8+CisgICAgICAgICAgICA8ZmlsZXNldCBkaXI9IiR7d2VidGVzdC5ob21lfSIgaW5jbHVkZXM9IioqL2xpYi9ydW50aW1lLyouamFyIi8+CisgICAgICAgIDwvY2xhc3NwYXRoPgorICAgIDwvdGFza2RlZj4KKworICAgIDx0YXJnZXQgbmFtZT0iY2xlYW4tZGF0YWJhc2UiCisgICAgICAgICAgICBkZXNjcmlwdGlvbj0iU2V0cyBkYXRhYmFzZS54bWwgdG8gZGVmYXVsdC4gU3RvcCBzZXJ2ZXIsIHJ1biB0YXJnZXQsIGFuZCBTdGFydCBzZXJ2ZXIuIj4KKyAgICAgICAgPGNvcHkgZmlsZT0iJHttYWlscmVhZGVyLmhvbWV9L3NyYy9qYXZhL2RhdGFiYXNlLnhtbCIKKyAgICAgICAgICAgICAgdG9maWxlPSIke3dlYmFwcHMuaG9tZX0vJHtiYXNlcGF0aH0vV0VCLUlORi9jbGFzc2VzL2RhdGFiYXNlLnhtbCIKKyAgICAgICAgICAgICAgb3ZlcndyaXRlPSJ0cnVlIi8+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tIEFERCBZT1VSIFRBUkdFVFMgSEVSRSAtLT4KKworICAgIDx0YXJnZXQgbmFtZT0iY2xlYW4iIGRlc2NyaXB0aW9uPSJPbmx5IHJ1biBhZ2FpbnN0IGEgY2xlYW4gZGF0YWJhc2UiCisgICAgICAgICAgICBkZXBlbmRzPSJSZWdpc3RlciIvPgorCisgICAgPHRhcmdldCBuYW1lPSJSZWdpc3RlciIKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJTdWJzY3JpYmVycyBjYW4gc3RvcmUgbG9naW4gY3JlZGVudGlhbHMgYW5kIGEKKyAgICAgICAgICAgIHByaW1hcnkgZW1haWwgY29udGFjdCB3aXRoIHRoZSBzeXN0ZW0uIj4KKworICAgICAgICA8d2VidGVzdCBuYW1lPSJSZWdpc3RlciBUcmlsbGlhbiAoTVNTKSI+CisgICAgICAgICAgICAmY29uZmlnOworICAgICAgICAgICAgPHN0ZXBzPgorICAgICAgICAgICAgICAgICZyZWdpc3Rlci1vcGVuOworICAgICAgICAgICAgICAgICZyZWdpc3Rlci10cmlsbGlhbjsKKyAgICAgICAgICAgICAgICA8dmVyaWZ5VGl0bGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSJNZW51IHBhZ2UgdGl0bGUiCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PSJNYWlsUmVhZGVyIC0gTWVudSIvPgorICAgICAgICAgICAgPC9zdGVwcz4KKyAgICAgICAgPC93ZWJ0ZXN0PgorCisgICAgPC90YXJnZXQ+CisKKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9jc3MvbWFpbHJlYWRlci5jc3MgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvY3NzL21haWxyZWFkZXIuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmYzc2NDgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvY3NzL21haWxyZWFkZXIuY3NzCkBAIC0wLDAgKzEsNDYgQEAKKy8qKgorKiBNYWlscmVhZGVyIHN0eWxlc2hlZXQKKyovCisKK2JvZHkgeworICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7CisgICAgY29sb3I6ICMwMDAwMDA7CisgICAgbGluazogMDAwMDY2OworICAgIHZpc2l0ZWQ6ICM2NjAwNjY7CisgICAgYWN0aXZlOiAjMzNDQ0NDOworfQorCitBOmhvdmVyIHsKKyAgICBjb2xvcjogI0ZGMDAwMDsKK30KKworaDEgeworICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOworfQorCitoMiB7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Cit9CisKK2gzIHsKKyAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKK30KKworaDQgeworICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOworfQorCitoNSB7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Cit9CisKK2g2IHsKKyAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKK30KKworZm9udC5oaW50IHsKKyAgICBmb250LXN0eWxlOiBpdGFsaWM7CisgICAgZm9udC1zaXplOiA4MCU7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvaW5kZXguaHRtbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyOGQ1ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvaW5kZXguaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8TUVUQSBIVFRQLUVRVUlWPSJSZWZyZXNoIiBDT05URU5UPSIwO1VSTD1XZWxjb21lLmFjdGlvbiI+Cis8L2hlYWQ+CisKKzxib2R5PgorPHA+TG9hZGluZyAuLi48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvcGFnZXMvRXJyb3IuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL3BhZ2VzL0Vycm9yLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTU1OGNmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL3BhZ2VzL0Vycm9yLmpzcApAQCAtMCwwICsxLDQyIEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT5VbmV4cGVjdGVkIEVycm9yPC90aXRsZT4KKyAgICA8bGluayBocmVmPSI8czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICAgICAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorPC9oZWFkPgorCis8Ym9keT4KKzxoMj5BbiB1bmV4cGVjdGVkIGVycm9yIGhhcyBvY2N1cmVkPC9oMj4KKworPHA+CisgICAgUGxlYXNlIHJlcG9ydCB0aGlzIGVycm9yIHRvIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IKKyAgICBvciBhcHByb3ByaWF0ZSB0ZWNobmljYWwgc3VwcG9ydCBwZXJzb25uZWwuCisgICAgVGhhbmsgeW91IGZvciB5b3VyIGNvb3BlcmF0aW9uLgorPC9wPgorCis8aHIvPgorCis8aDM+RXJyb3IgTWVzc2FnZTwvaDM+CisKKzxzOmFjdGlvbmVycm9yLz4KKworPHA+CisgICAgPHM6cHJvcGVydHkgdmFsdWU9IiV7ZXhjZXB0aW9uLm1lc3NhZ2V9Ii8+Cis8L3A+CisKKzxoci8+CisKKzxoMz5UZWNobmljYWwgRGV0YWlsczwvaDM+CisKKzxwPgorICAgIDxzOnByb3BlcnR5IHZhbHVlPSIle2V4Y2VwdGlvblN0YWNrfSIvPgorPC9wPgorCis8anNwOmluY2x1ZGUgcGFnZT0iRm9vdGVyLmpzcCIvPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvcGFnZXMvRm9vdGVyLmpzcCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9wYWdlcy9Gb290ZXIuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhZmU1ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvcGFnZXMvRm9vdGVyLmpzcApAQCAtMCwwICsxLDggQEAKKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzxoci8+CisKKzxwPgorICAgIDxhIGhyZWY9IjxzOnVybCBhY3Rpb249IldlbGNvbWUiIC8+Ij4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJpbmRleC50aXRsZSIvPgorICAgIDwvYT4KKzwvcD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8uanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzMWIxNjYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8uanNwCkBAIC0wLDAgKzEsMTYgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+Cis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5IZWxsbzwvdGl0bGU+CisgICAgPGxpbmsgaHJlZj0iPHM6dXJsIHZhbHVlPSIvY3NzL21haWxyZWFkZXIuY3NzIi8+IiByZWw9InN0eWxlc2hlZXQiCisgICAgICAgICAgdHlwZT0idGV4dC9jc3MiLz4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDI+CisgICAgPHM6dGV4dCBuYW1lPSJoZWxsby5tZXNzYWdlIi8+Cis8L2gyPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvcGFnZXMvTG9naW4uanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL3BhZ2VzL0xvZ2luLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2Q4OWEwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL3BhZ2VzL0xvZ2luLmpzcApAQCAtMCwwICsxLDI3IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJsb2dpbi50aXRsZSIvPgorICAgIDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9uTG9hZD0ic2VsZi5mb2N1cygpO2RvY3VtZW50LkxvZ2luX3NhdmUudXNlcm5hbWUuZm9jdXMoKSI+CisKKzxzOmFjdGlvbmVycm9yLz4KKzxzOmZvcm0gYWN0aW9uPSJMb2dpbl9zYXZlIiB2YWxpZGF0ZT0idHJ1ZSI+CisgICAgPHM6dGV4dGZpZWxkIGtleT0idXNlcm5hbWUiLz4KKworICAgIDxzOnBhc3N3b3JkIGtleT0icGFzc3dvcmQiIHNob3dQYXNzd29yZD0idHJ1ZSIvPgorCisgICAgPHM6c3VibWl0IGtleT0iYnV0dG9uLnNhdmUiLz4KKworICAgIDxzOnN1Ym1pdCBhY3Rpb249IkxvZ2luX2NhbmNlbCIga2V5PSJidXR0b24uY2FuY2VsIgorICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4KKzwvczpmb3JtPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvcGFnZXMvTWVudS5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvcGFnZXMvTWVudS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzkzMDJlOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9wYWdlcy9NZW51LmpzcApAQCAtMCwwICsxLDMwIEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJtZW51LnRpdGxlIi8+CisgICAgPC90aXRsZT4KKyAgICA8bGluayBocmVmPSI8czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICAgICAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorPC9oZWFkPgorCis8Ym9keT4KKzxoMz4KKyAgICA8czp0ZXh0IG5hbWU9Im1lbnUuaGVhZGluZyIvPgorICAgIDxzOnByb3BlcnR5IHZhbHVlPSJ1c2VyLmZ1bGxOYW1lIi8+Cis8L2gzPgorPHVsPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJSZWdpc3RlciFpbnB1dCIgLz4iPgorICAgICAgICA8czp0ZXh0IG5hbWU9Im1lbnUucmVnaXN0cmF0aW9uIi8+CisgICAgPC9hPgorICAgIDwvbGk+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249IkxvZ291dCIvPiI+CisgICAgICAgIDxzOnRleHQgbmFtZT0ibWVudS5sb2dvdXQiLz4KKyAgICA8L2E+Cis8L3VsPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvcGFnZXMvTWlzc2luZy5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvcGFnZXMvTWlzc2luZy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWFiMDNmYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9wYWdlcy9NaXNzaW5nLmpzcApAQCAtMCwwICsxLDE2IEBACis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5NaXNzaW5nIEZlYXR1cmU8L3RpdGxlPgorICAgIDxsaW5rIGhyZWY9IjxzOnVybCB2YWx1ZT0iL2Nzcy9tYWlscmVhZGVyLmNzcyIvPiIgcmVsPSJzdHlsZXNoZWV0IgorICAgICAgICAgIHR5cGU9InRleHQvY3NzIi8+Cis8L2hlYWQ+CisKKzxib2R5PgorPHA+CisgICAgVGhpcyBmZWF0dXJlIGlzIHVuZGVyIGNvbnN0cnVjdGlvbi4KKyAgICBQbGVhc2UgdHJ5IGFnYWluIGluIHRoZSBuZXh0IGludGVyYXRpb24uCis8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9wYWdlcy9SZWdpc3Rlci5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvcGFnZXMvUmVnaXN0ZXIuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViY2MxMmUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvcGFnZXMvUmVnaXN0ZXIuanNwCkBAIC0wLDAgKzEsMTI2IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxzOmlmIHRlc3Q9InRhc2s9PSdDcmVhdGUnIj4KKyAgICAgICAgPHRpdGxlPgorICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlIi8+CisgICAgICAgIDwvdGl0bGU+CisgICAgPC9zOmlmPgorICAgIDxzOmlmIHRlc3Q9InRhc2s9PSdFZGl0JyI+CisgICAgICAgIDx0aXRsZT4KKyAgICAgICAgICAgIDxzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQiLz4KKyAgICAgICAgPC90aXRsZT4KKyAgICA8L3M6aWY+Cis8L2hlYWQ+CisKKzxib2R5IG9uTG9hZD0ic2VsZi5mb2N1cygpO2RvY3VtZW50LlJlZ2lzdGVyX3NhdmUudXNlcm5hbWUuZm9jdXMoKSI+CisKKzxzOmFjdGlvbmVycm9yLz4KKzxzOmZvcm0gYWN0aW9uPSJSZWdpc3Rlcl9zYXZlIiB2YWxpZGF0ZT0idHJ1ZSI+CisgICAgPHM6aGlkZGVuIG5hbWU9InRhc2siLz4KKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdDcmVhdGUnIj4KKyAgICAgICAgPHM6dGV4dGZpZWxkIGtleT0idXNlcm5hbWUiLz4KKyAgICA8L3M6aWY+CisgICAgPHM6ZWxzZT4KKyAgICAgICAgPHM6bGFiZWwga2V5PSJ1c2VybmFtZSIvPgorICAgICAgICA8czpoaWRkZW4gbmFtZT0idXNlcm5hbWUiLz4KKyAgICA8L3M6ZWxzZT4KKworICAgIDxzOnBhc3N3b3JkIGtleT0icGFzc3dvcmQiLz4KKworICAgIDxzOnBhc3N3b3JkIGtleT0icGFzc3dvcmQyIi8+CisKKyAgICA8czp0ZXh0ZmllbGQga2V5PSJmdWxsTmFtZSIvPgorCisgICAgPHM6dGV4dGZpZWxkIGtleT0iZnJvbUFkZHJlc3MiLz4KKworICAgIDxzOnRleHRmaWVsZCBrZXk9InJlcGx5VG9BZGRyZXNzIi8+CisKKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdDcmVhdGUnIj4KKyAgICAgICAgPHM6c3VibWl0IGtleT0iYnV0dG9uLnNhdmUiIGFjdGlvbj0iUmVnaXN0ZXJfY3JlYXRlIi8+CisKKyAgICAgICAgPHM6cmVzZXQga2V5PSJidXR0b24ucmVzZXQiLz4KKworICAgICAgICA8czpzdWJtaXQgYWN0aW9uPSJXZWxjb21lIiBrZXk9ImJ1dHRvbi5jYW5jZWwiCisgICAgICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4KKyAgICA8L3M6aWY+CisgICAgPHM6ZWxzZT4KKyAgICAgICAgPHM6c3VibWl0IGtleT0iYnV0dG9uLnNhdmUiLz4KKworICAgICAgICA8czpyZXNldCBrZXk9ImJ1dHRvbi5yZXNldCIvPgorCisgICAgICAgIDxzOnN1Ym1pdCBhY3Rpb249Ik1lbnUiIGtleT0iYnV0dG9uLmNhbmNlbCIKKyAgICAgICAgICAgICAgICAgIG9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCIvPgorICAgIDwvczplbHNlPgorCis8L3M6Zm9ybT4KKworPHM6aWYgdGVzdD0idGFzayA9PSAnRWRpdCciPgorICAgIDxkaXYgYWxpZ249ImNlbnRlciI+CisgICAgICAgIDxoMz4KKyAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy5zdWJzY3JpcHRpb25zIi8+CisgICAgICAgIDwvaDM+CisgICAgPC9kaXY+CisKKyAgICA8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSI+CisKKyAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIzMCUiPgorICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy5ob3N0Ii8+CisgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIyNSUiPgorICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy51c2VyIi8+CisgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxMCUiPgorICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy50eXBlIi8+CisgICAgICAgICAgICA8L3RoPgorICAgICAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxMCUiPgorICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy5hdXRvQ29ubmVjdCIvPgorICAgICAgICAgICAgPC90aD4KKyAgICAgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTUlIj4KKyAgICAgICAgICAgICAgICA8czp0ZXh0IG5hbWU9ImhlYWRpbmcuYWN0aW9uIi8+CisgICAgICAgICAgICA8L3RoPgorICAgICAgICA8L3RyPgorCisgICAgICAgIDxzOml0ZXJhdG9yIHZhbHVlPSJ1c2VyLnN1YnNjcmlwdGlvbnMiPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgICAgIDxzOnByb3BlcnR5IHZhbHVlPSJob3N0Ii8+CisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgICAgICA8czpwcm9wZXJ0eSB2YWx1ZT0idXNlcm5hbWUiLz4KKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgICAgICAgICAgICAgPHM6cHJvcGVydHkgdmFsdWU9InR5cGUiLz4KKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgICAgICAgICAgICAgPHM6cHJvcGVydHkgdmFsdWU9ImF1dG9Db25uZWN0Ii8+CisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisKKyAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iU3Vic2NyaWJlX2RlbGV0ZSI+PHM6cGFyYW0gbmFtZT0iaG9zdCIgdmFsdWU9Imhvc3QiLz48L3M6dXJsPiI+CisgICAgICAgICAgICAgICAgICAgICAgICA8czp0ZXh0IG5hbWU9InJlZ2lzdHJhdGlvbi5kZWxldGVTdWJzY3JpcHRpb24iLz4KKyAgICAgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgICAgICAgICAmbmJzcDsKKyAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iU3Vic2NyaWJlX2VkaXQiPjxzOnBhcmFtIG5hbWU9Imhvc3QiIHZhbHVlPSJob3N0Ii8+PC9zOnVybD4iPgorICAgICAgICAgICAgICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24uZWRpdFN1YnNjcmlwdGlvbiIvPgorICAgICAgICAgICAgICAgICAgICA8L2E+CisKKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgPC90cj4KKyAgICAgICAgPC9zOml0ZXJhdG9yPgorCisgICAgPC90YWJsZT4KKworICAgIDxhIGhyZWY9IjxzOnVybCBhY3Rpb249IlN1YnNjcmliZSIvPiI+CisgICAgICAgIDxzOnRleHQKKyAgICAgICAgICAgICAgICBuYW1lPSJyZWdpc3RyYXRpb24uYWRkU3Vic2NyaXB0aW9uIi8+CisgICAgPC9hPgorCis8L3M6aWY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9wYWdlcy9TdWJzY3JpYmUuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL3BhZ2VzL1N1YnNjcmliZS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjlmOGIxMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvc3JjL3dlYmFwcC9wYWdlcy9TdWJzY3JpYmUuanNwCkBAIC0wLDAgKzEsNjkgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+Cis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHM6aWYgdGVzdD0idGFzaz09J0NyZWF0ZSciPgorICAgICAgICA8dGl0bGU+CisgICAgICAgICAgICA8czp0ZXh0IG5hbWU9InN1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGUiLz4KKyAgICAgICAgPC90aXRsZT4KKyAgICA8L3M6aWY+CisgICAgPHM6aWYgdGVzdD0idGFzaz09J0VkaXQnIj4KKyAgICAgICAgPHRpdGxlPgorICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJzdWJzY3JpcHRpb24udGl0bGUuZWRpdCIvPgorICAgICAgICA8L3RpdGxlPgorICAgIDwvczppZj4KKyAgICA8czppZiB0ZXN0PSJ0YXNrPT0nRGVsZXRlJyI+CisgICAgICAgIDx0aXRsZT4KKyAgICAgICAgICAgIDxzOnRleHQgbmFtZT0ic3Vic2NyaXB0aW9uLnRpdGxlLmRlbGV0ZSIvPgorICAgICAgICA8L3RpdGxlPgorICAgIDwvczppZj4KKzwvaGVhZD4KKworPGJvZHkgb25Mb2FkPSJzZWxmLmZvY3VzKCk7ZG9jdW1lbnQuU3Vic2NyaWJlX3NhdmUudXNlcm5hbWUuZm9jdXMoKSI+CisKKzxzOmFjdGlvbmVycm9yLz4KKzxzOmZvcm0gYWN0aW9uPSJTdWJzY3JpYmVfc2F2ZSIgdmFsaWRhdGU9InRydWUiPgorICAgIDxzOmhpZGRlbiBuYW1lPSJ0YXNrIi8+CisgICAgPHM6bGFiZWwga2V5PSJ1c2VyLnVzZXJuYW1lIi8+CisKKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdDcmVhdGUnIj4KKyAgICAgICAgPHM6dGV4dGZpZWxkIGtleT0ibWFpbEhvc3RuYW1lIiBuYW1lPSJob3N0Ii8+CisgICAgPC9zOmlmPgorICAgIDxzOmVsc2U+CisgICAgICAgIDxzOmxhYmVsIGtleT0ibWFpbEhvc3RuYW1lIiBuYW1lPSJob3N0Ii8+CisgICAgICAgIDxzOmhpZGRlbiBuYW1lPSJob3N0Ii8+CisgICAgPC9zOmVsc2U+CisKKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdEZWxldGUnIj4KKyAgICAgICAgPHM6bGFiZWwga2V5PSJtYWlsVXNlcm5hbWUiCisgICAgICAgICAgICAgICAgIG5hbWU9InN1YnNjcmlwdGlvbi51c2VybmFtZSIvPgorICAgICAgICA8czpsYWJlbCBrZXk9Im1haWxQYXNzd29yZCIKKyAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnBhc3N3b3JkIi8+CisgICAgICAgIDxzOmxhYmVsIGtleT0ibWFpbFNlcnZlclR5cGUiCisgICAgICAgICAgICAgICAgIG5hbWU9InN1YnNjcmlwdGlvbi50eXBlIi8+CisgICAgICAgIDxzOmxhYmVsIGtleT0iYXV0b0Nvbm5lY3QiCisgICAgICAgICAgICAgICAgIG5hbWU9InN1YnNjcmlwdGlvbi5hdXRvQ29ubmVjdCIvPgorICAgICAgICA8czpzdWJtaXQga2V5PSJidXR0b24uY29uZmlybSIvPgorICAgIDwvczppZj4KKyAgICA8czplbHNlPgorICAgICAgICA8czp0ZXh0ZmllbGQga2V5PSJtYWlsVXNlcm5hbWUiCisgICAgICAgICAgICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24udXNlcm5hbWUiLz4KKyAgICAgICAgPHM6dGV4dGZpZWxkIGtleT0ibWFpbFBhc3N3b3JkIgorICAgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnBhc3N3b3JkIi8+CisgICAgICAgIDxzOnNlbGVjdCBrZXk9Im1haWxTZXJ2ZXJUeXBlIgorICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnR5cGUiIGxpc3Q9InR5cGVzIi8+CisgICAgICAgIDxzOmNoZWNrYm94IGtleT0iYXV0b0Nvbm5lY3QiCisgICAgICAgICAgICAgICAgICAgIG5hbWU9InN1YnNjcmlwdGlvbi5hdXRvQ29ubmVjdCIvPgorICAgICAgICA8czpzdWJtaXQga2V5PSJidXR0b24uc2F2ZSIvPgorICAgICAgICA8czpyZXNldCBrZXk9ImJ1dHRvbi5yZXNldCIvPgorICAgIDwvczplbHNlPgorCisgICAgPHM6c3VibWl0IGFjdGlvbj0iUmVnaXN0ZXIiCisgICAgICAgICAgICAgIGtleT0iYnV0dG9uLmNhbmNlbCIKKyAgICAgICAgICAgICAgb25jbGljaz0iZm9ybS5vbnN1Ym1pdD1udWxsIi8+Cis8L3M6Zm9ybT4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL3BhZ2VzL1dlbGNvbWUuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi90aGVtZS9zcmMvd2ViYXBwL3BhZ2VzL1dlbGNvbWUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkNDIzODIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3NyYy93ZWJhcHAvcGFnZXMvV2VsY29tZS5qc3AKQEAgLTAsMCArMSwzNiBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIvPgorICAgIDx0aXRsZT4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJpbmRleC50aXRsZSIvPgorICAgIDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgzPk1haWxSZWFkZXIgT3B0aW9uczwvaDM+CisKKzx1bD4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iUmVnaXN0ZXIhaW5wdXQiLz4iPgorICAgICAgICA8czp0ZXh0CisgICAgICAgICAgICAgICAgbmFtZT0iaW5kZXgucmVnaXN0cmF0aW9uIi8+CisgICAgPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249IkxvZ2luIWlucHV0Ii8+Ij4KKyAgICAgICAgPHM6dGV4dAorICAgICAgICAgICAgICAgIG5hbWU9ImluZGV4LmxvZ2luIi8+CisgICAgPC9hPjwvbGk+Cis8L3VsPgorCis8aDM+TGFuZ3VhZ2UgT3B0aW9uczwvaDM+Cis8dWw+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249IldlbGNvbWU/cmVxdWVzdF9sb2NhbGU9ZW4iLz4iPkVuZ2xpc2g8L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iV2VsY29tZT9yZXF1ZXN0X2xvY2FsZT1qYSIvPiI+SmFwYW5lc2U8L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iV2VsY29tZT9yZXF1ZXN0X2xvY2FsZT1ydSIvPiI+UnVzc2lhbjwvYT48L2xpPgorPC91bD4KKworPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3RoZW1lLmltbCBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvdGhlbWUvdGhlbWUuaW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxOGNiMTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3RoZW1lL3RoZW1lLmltbApAQCAtMCwwICsxLDk2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxtb2R1bGUgdmVyc2lvbj0iNCIgcmVsYXRpdmVQYXRocz0idHJ1ZSIgdHlwZT0iSjJFRV9XRUJfTU9EVUxFIiBqMmVlLWludGVncmF0aW9uPSJUb21jYXQgU2VydmVyIj4NCisgIDxjb21wb25lbnQgbmFtZT0iQXBwU2VydmVyU3BlY2lmaWNWYWxpZGF0b3JzTWFuYWdlciIgLz4NCisgIDxjb21wb25lbnQgbmFtZT0iTW9kdWxlUm9vdE1hbmFnZXIiIC8+DQorICA8Y29tcG9uZW50IG5hbWU9Ik5ld01vZHVsZVJvb3RNYW5hZ2VyIiBpbmhlcml0LWNvbXBpbGVyLW91dHB1dD0iZmFsc2UiPg0KKyAgICA8b3V0cHV0IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy90aGVtZS9XRUItSU5GL2NsYXNzZXMiIC8+DQorICAgIDxleGNsdWRlLW91dHB1dCAvPg0KKyAgICA8ZXhwbG9kZWQgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkLy4uLy4uLy4uLy4uLy4uLy4uLy4uL29wdC9BcGFjaGUvVG9tY2F0LTUuNS93ZWJhcHBzL3RoZW1lIiAvPg0KKyAgICA8ZXhjbHVkZS1leHBsb2RlZCAvPg0KKyAgICA8Y29udGVudCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQiPg0KKyAgICAgIDxzb3VyY2VGb2xkZXIgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL3NyYy9qYXZhIiBpc1Rlc3RTb3VyY2U9ImZhbHNlIiAvPg0KKyAgICAgIDxzb3VyY2VGb2xkZXIgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkL3NyYy90ZXN0IiBpc1Rlc3RTb3VyY2U9InRydWUiIC8+DQorICAgIDwvY29udGVudD4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0iaW5oZXJpdGVkSmRrIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJzb3VyY2VGb2xkZXIiIGZvclRlc3RzPSJmYWxzZSIgLz4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ibGlicmFyeSIgbmFtZT0iU3RydXRzMiIgbGV2ZWw9InByb2plY3QiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9Im1vZHVsZS1saWJyYXJ5Ij4NCisgICAgICA8bGlicmFyeT4NCisgICAgICAgIDxDTEFTU0VTPg0KKyAgICAgICAgICA8cm9vdCB1cmw9ImphcjovLyRNT0RVTEVfRElSJC8uLi9saWIvc3RydXRzMi1zaXRlbWVzaC1wbHVnaW4tMi4wLjMuamFyIS8iIC8+DQorICAgICAgICA8L0NMQVNTRVM+DQorICAgICAgICA8SkFWQURPQyAvPg0KKyAgICAgICAgPFNPVVJDRVMgLz4NCisgICAgICA8L2xpYnJhcnk+DQorICAgIDwvb3JkZXJFbnRyeT4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ibW9kdWxlLWxpYnJhcnkiPg0KKyAgICAgIDxsaWJyYXJ5Pg0KKyAgICAgICAgPENMQVNTRVM+DQorICAgICAgICAgIDxyb290IHVybD0iamFyOi8vJE1PRFVMRV9ESVIkLy4uL2xpYi9zaXRlbWVzaC0yLjIuamFyIS8iIC8+DQorICAgICAgICA8L0NMQVNTRVM+DQorICAgICAgICA8SkFWQURPQyAvPg0KKyAgICAgICAgPFNPVVJDRVMgLz4NCisgICAgICA8L2xpYnJhcnk+DQorICAgIDwvb3JkZXJFbnRyeT4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ibGlicmFyeSIgbmFtZT0iTWFpbHJlYWRlci1kYW8iIGxldmVsPSJwcm9qZWN0IiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJzZXJ2bGV0LWFwaSIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeVByb3BlcnRpZXMgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJNb2R1bGVCdWlsZENvbXBvbmVudCI+DQorICAgIDxzZXR0aW5nIG5hbWU9IkVYUExPREVEX1VSTCIgdmFsdWU9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvdGhlbWUiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkVYUExPREVEX0VOQUJMRUQiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJKQVJfVVJMIiB2YWx1ZT0iZmlsZTovLyIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iSkFSX0VOQUJMRUQiIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iU1lOQ19FWFBMT0RFRF9ESVIiIHZhbHVlPSJ0cnVlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJCVUlMRF9NT0RVTEVfT05fRlJBTUVfREVBQ1RJVkFUSU9OIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkJVSUxEX0VYVEVSTkFMX0RFUEVOREVOQ0lFUyIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJSVU5fSkFTUEVSX1ZBTElEQVRJT04iIHZhbHVlPSJmYWxzZSIgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJNb2R1bGVQcm9wZXJ0aWVzIj4NCisgICAgPGNvbnRhaW5lckVsZW1lbnQgdHlwZT0ibGlicmFyeSIgbGV2ZWw9Im1vZHVsZSI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliL3NpdGVtZXNoLTIuMi5qYXIiIC8+DQorICAgICAgPHVybD5qYXI6Ly8kTU9EVUxFX0RJUiQvLi4vbGliL3NpdGVtZXNoLTIuMi5qYXIhLzwvdXJsPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIGxldmVsPSJtb2R1bGUiPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMSIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9Ii9XRUItSU5GL2xpYi9zdHJ1dHMyLXNpdGVtZXNoLXBsdWdpbi0yLjAuMy5qYXIiIC8+DQorICAgICAgPHVybD5qYXI6Ly8kTU9EVUxFX0RJUiQvLi4vbGliL3N0cnV0czItc2l0ZW1lc2gtcGx1Z2luLTIuMC4zLmphciEvPC91cmw+DQorICAgIDwvY29udGFpbmVyRWxlbWVudD4NCisgICAgPGNvbnRhaW5lckVsZW1lbnQgdHlwZT0ibGlicmFyeSIgbmFtZT0ianVuaXQiIGxldmVsPSJhcHBsaWNhdGlvbiI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Imp1bml0IiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMCIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9IiZsdDtOL0EmZ3Q7IiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9Ik1haWxyZWFkZXItZGFvIiBsZXZlbD0icHJvamVjdCI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9InNlcnZsZXQtYXBpIiBsZXZlbD0iYXBwbGljYXRpb24iPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0ibWV0aG9kIiB2YWx1ZT0iMCIgLz4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9IlVSSSIgdmFsdWU9IiZsdDtOL0EmZ3Q7IiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxjb250YWluZXJFbGVtZW50IHR5cGU9ImxpYnJhcnkiIG5hbWU9IlN0cnV0czIiIGxldmVsPSJwcm9qZWN0Ij4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjEiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSIvV0VCLUlORi9saWIiIC8+DQorICAgIDwvY29udGFpbmVyRWxlbWVudD4NCisgICAgPGRlcGxveW1lbnREZXNjcmlwdG9yIG5hbWU9IndlYi54bWwiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvd2ViYXBwL1dFQi1JTkYvd2VidGVzdC54bWwiIG9wdGlvbmFsPSJmYWxzZSIgdmVyc2lvbj0iMi4zIiAvPg0KKyAgICA8ZGVwbG95bWVudERlc2NyaXB0b3IgbmFtZT0iY29udGV4dC54bWwiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9NRVRBLUlORi9jb250ZXh0LnhtbCIgb3B0aW9uYWw9ImZhbHNlIiB2ZXJzaW9uPSI1LngiIC8+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSIiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9NRVRBLUlORi9jb250ZXh0LnhtbCIgb3B0aW9uYWw9ImZhbHNlIj4NCisgICAgICA8b3B0aW9uIG5hbWU9IkRFRkFVTFRfRElSIiB2YWx1ZT0iV0VCLUlORiIgLz4NCisgICAgICA8b3B0aW9uIG5hbWU9Ik5BTUUiIHZhbHVlPSIiIC8+DQorICAgICAgPG9wdGlvbiBuYW1lPSJERVNDUklQVElPTiIgdmFsdWU9IiIgLz4NCisgICAgPC9kZXBsb3ltZW50RGVzY3JpcHRvcj4NCisgICAgPHdlYnJvb3RzPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvd2ViYXBwIiByZWxhdGl2ZT0iLyIgLz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL2phdmEiIHJlbGF0aXZlPSIvV0VCLUlORi9zcmMvamF2YSIgLz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3Rlc3QiIHJlbGF0aXZlPSIvV0VCLUlORi9zcmMvdGVzdCIgLz4NCisgICAgPC93ZWJyb290cz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJsb2dpY1dlYk1vZHVsZVByb3BlcnRpZXMiIC8+DQorPC9tb2R1bGU+DQorDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi93ZWxjb21lL01FVEEtSU5GL2NvbnRleHQueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi93ZWxjb21lL01FVEEtSU5GL2NvbnRleHQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMGI1ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3dlbGNvbWUvTUVUQS1JTkYvY29udGV4dC54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPENvbnRleHQgcGF0aD0iLyI+Cis8L0NvbnRleHQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3dlbGNvbWUvc3JjL2phdmEvSGVsbG8uamF2YSBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvd2VsY29tZS9zcmMvamF2YS9IZWxsby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiN2RkOWUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3dlbGNvbWUvc3JjL2phdmEvSGVsbG8uamF2YQpAQCAtMCwwICsxLDE2IEBACitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uU3VwcG9ydDsKKworLyoqCisgKiBFeGFtcGxlIEFjdGlvbiBjbGFzcy4KKyAqLworcHVibGljIGNsYXNzIEhlbGxvIGV4dGVuZHMgQWN0aW9uU3VwcG9ydCB7CisKKyAgICAvKioKKyAgICAgKiBBbiBleGFtcGxlIGltcGxlbWVudGF0aW9uIHRoYXQgZG9lcyBub3RoaW5nIGFuZCByZXR1cm5zICJzdWNjZXNzIi4KKyAgICAgKgorICAgICAqIEByZXR1cm4ge0BsaW5rICNTVUNDRVNTfSBkZWZhdWx0IHJlc3VsdAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICByZXR1cm4gU1VDQ0VTUzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3dlbGNvbWUvc3JjL2phdmEvcmVzb3VyY2VzLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3dlbGNvbWUvc3JjL2phdmEvcmVzb3VyY2VzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWZhYWVjNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvd2VsY29tZS9zcmMvamF2YS9yZXNvdXJjZXMucHJvcGVydGllcwpAQCAtMCwwICsxLDIgQEAKK2hlbGxvLm1lc3NhZ2UgPSBDb25ncmF0dWxhdGlvbnMhIFN0cnV0cyBpcyB1cCBhbmQgcnVubmluZyAuLi4KKyMgQWRkIHlvdXIgbWVzc2FnZXMgaGVyZSAuLi4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvd2VsY29tZS9zcmMvamF2YS9zdHJ1dHMueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi93ZWxjb21lL3NyYy9qYXZhL3N0cnV0cy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTk2YjBmMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvd2VsY29tZS9zcmMvamF2YS9zdHJ1dHMueG1sCkBAIC0wLDAgKzEsMjcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/PgorPCFET0NUWVBFIHN0cnV0cyBQVUJMSUMKKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMi4wLy9FTiIKKyAgICAgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy0yLjAuZHRkIj4KKworPHN0cnV0cz4KKyAgICA8Y29uc3RhbnQgbmFtZT0ic3RydXRzLmRldk1vZGUiIHZhbHVlPSJ0cnVlIi8+CisgICAgPGNvbnN0YW50IG5hbWU9InN0cnV0cy5lbmFibGUuRHluYW1pY01ldGhvZEludm9jYXRpb24iIHZhbHVlPSJmYWxzZSIvPgorCisgICAgPHBhY2thZ2UgbmFtZT0iZGVmYXVsdCIgZXh0ZW5kcz0ic3RydXRzLWRlZmF1bHQiPgorCisgICAgICAgIDxkZWZhdWx0LWFjdGlvbi1yZWYgbmFtZT0iTWlzc2luZyIvPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iSGVsbG8iIGNsYXNzPSJIZWxsbyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9IZWxsby5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJNaXNzaW5nIj4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL01pc3NpbmcuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iV2VsY29tZSI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9XZWxjb21lLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgIDwvcGFja2FnZT4KKzwvc3RydXRzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi93ZWxjb21lL3NyYy90ZXN0L0hlbGxvVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi93ZWxjb21lL3NyYy90ZXN0L0hlbGxvVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwZGViZjUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3dlbGNvbWUvc3JjL3Rlc3QvSGVsbG9UZXN0LmphdmEKQEAgLTAsMCArMSwxNiBAQAoraW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKKworLyoqCisgKiBBbiBleGFtcGxlIHRleHQgY2xhc3MgdG8gdmVyaWZ5IHRoZSBjb25maWd1cmF0aW9uLgorICovCitwdWJsaWMgY2xhc3MgSGVsbG9UZXN0IGV4dGVuZHMgVGVzdENhc2UgeworCisgICAgLyoqCisgICAgICogQW4gZXhhbXBsZSB0ZXN0IHRoYXQgYXNzZXJ0cyB0cnVlLgorICAgICAqCisgICAgICogQHRocm93cyBFeGNlcHRpb24gT24gaW52YWxpZCBhc3NlcnRpb25zCisgICAgICovCisgICAgcHVibGljIHZvaWQgdGVzdEhlbGxvQWN0aW9uKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGFzc2VydFRydWUodHJ1ZSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi93ZWxjb21lL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi93ZWxjb21lL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNjBmOTUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3dlbGNvbWUvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIHdlYi1hcHAgUFVCTElDICItLy9TdW4gTWljcm9zeXN0ZW1zLCBJbmMuLy9EVEQgV2ViIEFwcGxpY2F0aW9uIDIuMy8vRU4iICJodHRwOi8vamF2YS5zdW4uY29tL2R0ZC93ZWItYXBwXzJfMy5kdGQiPgorPHdlYi1hcHA+CisKKyAgICA8ZGlzcGxheS1uYW1lPlN0cnV0cyAyIE1haWxyZWFkZXI8L2Rpc3BsYXktbmFtZT4KKworICAgIDxmaWx0ZXI+CisgICAgICAgIDxmaWx0ZXItbmFtZT5TdHJ1dHMyPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPGZpbHRlci1jbGFzcz4KKyAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzMi5kaXNwYXRjaGVyLkZpbHRlckRpc3BhdGNoZXIKKyAgICAgICAgPC9maWx0ZXItY2xhc3M+CisgICAgPC9maWx0ZXI+CisKKyAgICA8ZmlsdGVyLW1hcHBpbmc+CisgICAgICAgIDxmaWx0ZXItbmFtZT5TdHJ1dHMyPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPHVybC1wYXR0ZXJuPi8qPC91cmwtcGF0dGVybj4KKyAgICA8L2ZpbHRlci1tYXBwaW5nPgorCisgICAgPHdlbGNvbWUtZmlsZS1saXN0PgorICAgICAgICA8d2VsY29tZS1maWxlPmluZGV4Lmh0bWw8L3dlbGNvbWUtZmlsZT4KKyAgICA8L3dlbGNvbWUtZmlsZS1saXN0PgorCis8L3dlYi1hcHA+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3dlbGNvbWUvc3JjL3dlYmFwcC9pbmRleC5odG1sIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi93ZWxjb21lL3NyYy93ZWJhcHAvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjhkNWY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi93ZWxjb21lL3NyYy93ZWJhcHAvaW5kZXguaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8TUVUQSBIVFRQLUVRVUlWPSJSZWZyZXNoIiBDT05URU5UPSIwO1VSTD1XZWxjb21lLmFjdGlvbiI+Cis8L2hlYWQ+CisKKzxib2R5PgorPHA+TG9hZGluZyAuLi48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3dlbGNvbWUvc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3dlbGNvbWUvc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU5ZDg3YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvd2VsY29tZS9zcmMvd2ViYXBwL3BhZ2VzL0hlbGxvLmpzcApAQCAtMCwwICsxLDEyIEBACis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5IZWxsbzwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgyPgorICAgIDxzOnRleHQgbmFtZT0iaGVsbG8ubWVzc2FnZSIvPgorPC9oMj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvd2VsY29tZS9zcmMvd2ViYXBwL3BhZ2VzL01pc3NpbmcuanNwIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi93ZWxjb21lL3NyYy93ZWJhcHAvcGFnZXMvTWlzc2luZy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDIxYjA4YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvd2VsY29tZS9zcmMvd2ViYXBwL3BhZ2VzL01pc3NpbmcuanNwCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+PHRpdGxlPk1pc3NpbmcgRmVhdHVyZTwvdGl0bGU+PC9oZWFkPgorCis8Ym9keT4KKzxwPgorICAgIFRoaXMgZmVhdHVyZSBpcyB1bmRlciBjb25zdHJ1Y3Rpb24uCisgICAgUGxlYXNlIHRyeSBhZ2FpbiBpbiB0aGUgbmV4dCBpbnRlcmF0aW9uLgorPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi93ZWxjb21lL3NyYy93ZWJhcHAvcGFnZXMvV2VsY29tZS5qc3AgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3dlbGNvbWUvc3JjL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTE3ZjNjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvbWFpbHJlYWRlci1jb3Vyc2Uvc3RydXRzMi93ZWxjb21lL3NyYy93ZWJhcHAvcGFnZXMvV2VsY29tZS5qc3AKQEAgLTAsMCArMSwyMyBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+TWFpbFJlYWRlcjwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgzPk1haWxSZWFkZXIgT3B0aW9uczwvaDM+CisKKzx1bD4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iTWlzc2luZyIvPiI+UmVnaXN0ZXIgd2l0aCBNYWlsUmVhZGVyPC9hPjwvbGk+CisgICAgPGxpPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249Ik1pc3NpbmciLz4iPkxvZyBpbnRvIE1haWxSZWFkZXI8L2E+PC9saT4KKzwvdWw+CisKKzxoMz5MYW5ndWFnZSBPcHRpb25zPC9oMz4KKzx1bD4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iTWlzc2luZyIvPiI+RW5nbGlzaDwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJNaXNzaW5nIi8+Ij5KYXBhbmVzZTwvYT48L2xpPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJNaXNzaW5nIi8+Ij5SdXNzaWFuPC9hPjwvbGk+Cis8L3VsPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3dlbGNvbWUvd2VsY29tZS5pbWwgYi9zdHJ1dHMtc2FuZGJveC9tYWlscmVhZGVyLWNvdXJzZS9zdHJ1dHMyL3dlbGNvbWUvd2VsY29tZS5pbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFjYTBiYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L21haWxyZWFkZXItY291cnNlL3N0cnV0czIvd2VsY29tZS93ZWxjb21lLmltbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxtb2R1bGUgdmVyc2lvbj0iNCIgcmVsYXRpdmVQYXRocz0idHJ1ZSIgdHlwZT0iSjJFRV9XRUJfTU9EVUxFIiBqMmVlLWludGVncmF0aW9uPSJUb21jYXQgU2VydmVyIj4NCisgIDxjb21wb25lbnQgbmFtZT0iQXBwU2VydmVyU3BlY2lmaWNWYWxpZGF0b3JzTWFuYWdlciIgLz4NCisgIDxjb21wb25lbnQgbmFtZT0iTW9kdWxlUm9vdE1hbmFnZXIiIC8+DQorICA8Y29tcG9uZW50IG5hbWU9Ik5ld01vZHVsZVJvb3RNYW5hZ2VyIiBpbmhlcml0LWNvbXBpbGVyLW91dHB1dD0iZmFsc2UiPg0KKyAgICA8b3V0cHV0IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC8uLi8uLi8uLi8uLi8uLi8uLi8uLi9vcHQvQXBhY2hlL1RvbWNhdC01LjUvd2ViYXBwcy93ZWxjb21lL1dFQi1JTkYvY2xhc3NlcyIgLz4NCisgICAgPGV4Y2x1ZGUtb3V0cHV0IC8+DQorICAgIDxleHBsb2RlZCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvd2VsY29tZSIgLz4NCisgICAgPGV4Y2x1ZGUtZXhwbG9kZWQgLz4NCisgICAgPGNvbnRlbnQgdXJsPSJmaWxlOi8vJE1PRFVMRV9ESVIkIj4NCisgICAgICA8c291cmNlRm9sZGVyIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvamF2YSIgaXNUZXN0U291cmNlPSJmYWxzZSIgLz4NCisgICAgICA8c291cmNlRm9sZGVyIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvdGVzdCIgaXNUZXN0U291cmNlPSJ0cnVlIiAvPg0KKyAgICA8L2NvbnRlbnQ+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImluaGVyaXRlZEpkayIgLz4NCisgICAgPG9yZGVyRW50cnkgdHlwZT0ic291cmNlRm9sZGVyIiBmb3JUZXN0cz0iZmFsc2UiIC8+DQorICAgIDxvcmRlckVudHJ5IHR5cGU9ImxpYnJhcnkiIG5hbWU9IlN0cnV0czIiIGxldmVsPSJwcm9qZWN0IiAvPg0KKyAgICA8b3JkZXJFbnRyeSB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIiAvPg0KKyAgICA8b3JkZXJFbnRyeVByb3BlcnRpZXMgLz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJNb2R1bGVCdWlsZENvbXBvbmVudCI+DQorICAgIDxzZXR0aW5nIG5hbWU9IkVYUExPREVEX1VSTCIgdmFsdWU9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvLi4vLi4vLi4vLi4vLi4vLi4vLi4vb3B0L0FwYWNoZS9Ub21jYXQtNS41L3dlYmFwcHMvd2VsY29tZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iRVhQTE9ERURfRU5BQkxFRCIgdmFsdWU9InRydWUiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkpBUl9VUkwiIHZhbHVlPSJmaWxlOi8vIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJKQVJfRU5BQkxFRCIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgICA8c2V0dGluZyBuYW1lPSJTWU5DX0VYUExPREVEX0RJUiIgdmFsdWU9InRydWUiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IkJVSUxEX01PRFVMRV9PTl9GUkFNRV9ERUFDVElWQVRJT04iIHZhbHVlPSJmYWxzZSIgLz4NCisgICAgPHNldHRpbmcgbmFtZT0iQlVJTERfRVhURVJOQUxfREVQRU5ERU5DSUVTIiB2YWx1ZT0iZmFsc2UiIC8+DQorICAgIDxzZXR0aW5nIG5hbWU9IlJVTl9KQVNQRVJfVkFMSURBVElPTiIgdmFsdWU9ImZhbHNlIiAvPg0KKyAgPC9jb21wb25lbnQ+DQorICA8Y29tcG9uZW50IG5hbWU9IldlYk1vZHVsZVByb3BlcnRpZXMiPg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJqdW5pdCIgbGV2ZWw9ImFwcGxpY2F0aW9uIj4NCisgICAgICA8YXR0cmlidXRlIG5hbWU9Im1ldGhvZCIgdmFsdWU9IjAiIC8+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJVUkkiIHZhbHVlPSImbHQ7Ti9BJmd0OyIgLz4NCisgICAgPC9jb250YWluZXJFbGVtZW50Pg0KKyAgICA8Y29udGFpbmVyRWxlbWVudCB0eXBlPSJsaWJyYXJ5IiBuYW1lPSJTdHJ1dHMyIiBsZXZlbD0icHJvamVjdCI+DQorICAgICAgPGF0dHJpYnV0ZSBuYW1lPSJtZXRob2QiIHZhbHVlPSIxIiAvPg0KKyAgICAgIDxhdHRyaWJ1dGUgbmFtZT0iVVJJIiB2YWx1ZT0iL1dFQi1JTkYvbGliIiAvPg0KKyAgICA8L2NvbnRhaW5lckVsZW1lbnQ+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSJ3ZWIueG1sIiB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwiIG9wdGlvbmFsPSJmYWxzZSIgdmVyc2lvbj0iMi4zIiAvPg0KKyAgICA8ZGVwbG95bWVudERlc2NyaXB0b3IgbmFtZT0iY29udGV4dC54bWwiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9NRVRBLUlORi9jb250ZXh0LnhtbCIgb3B0aW9uYWw9ImZhbHNlIiB2ZXJzaW9uPSI1LngiIC8+DQorICAgIDxkZXBsb3ltZW50RGVzY3JpcHRvciBuYW1lPSIiIHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9NRVRBLUlORi9jb250ZXh0LnhtbCIgb3B0aW9uYWw9ImZhbHNlIj4NCisgICAgICA8b3B0aW9uIG5hbWU9IkRFRkFVTFRfRElSIiB2YWx1ZT0iV0VCLUlORiIgLz4NCisgICAgICA8b3B0aW9uIG5hbWU9Ik5BTUUiIHZhbHVlPSIiIC8+DQorICAgICAgPG9wdGlvbiBuYW1lPSJERVNDUklQVElPTiIgdmFsdWU9IiIgLz4NCisgICAgPC9kZXBsb3ltZW50RGVzY3JpcHRvcj4NCisgICAgPHdlYnJvb3RzPg0KKyAgICAgIDxyb290IHVybD0iZmlsZTovLyRNT0RVTEVfRElSJC9zcmMvd2ViYXBwIiByZWxhdGl2ZT0iLyIgLz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL2phdmEiIHJlbGF0aXZlPSIvV0VCLUlORi9zcmMvamF2YSIgLz4NCisgICAgICA8cm9vdCB1cmw9ImZpbGU6Ly8kTU9EVUxFX0RJUiQvc3JjL3Rlc3QiIHJlbGF0aXZlPSIvV0VCLUlORi9zcmMvdGVzdCIgLz4NCisgICAgPC93ZWJyb290cz4NCisgIDwvY29tcG9uZW50Pg0KKyAgPGNvbXBvbmVudCBuYW1lPSJXZWJsb2dpY1dlYk1vZHVsZVByb3BlcnRpZXMiIC8+DQorPC9tb2R1bGU+DQorDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvQWdpbGl0eS5zbG4gYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9BZ2lsaXR5LnNsbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODE3YjgxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvQWdpbGl0eS5zbG4KQEAgLTAsMCArMSwzMiBAQAorTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24gOC4wMA0KK1Byb2plY3QoIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9IikgPSAiQ29yZSIsICJDb3JlXENvcmUuY3Nwcm9qIiwgIns3RTE1RkY3OC02NjYxLTRFRDQtQTFDQy02NDY2NDY0Nzg1NUZ9Ig0KKwlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQorCUVuZFByb2plY3RTZWN0aW9uDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9IikgPSAiVGVzdCIsICJUZXN0XFRlc3QuY3Nwcm9qIiwgIns1MkI2MkM3MC1BMzlFLTQ4QkEtOTc1OS1EQjMzREI4RjA5OUZ9Ig0KKwlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQorCUVuZFByb2plY3RTZWN0aW9uDQorRW5kUHJvamVjdA0KK0dsb2JhbA0KKwlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uQ29uZmlndXJhdGlvbikgPSBwcmVTb2x1dGlvbg0KKwkJRGVidWcgPSBEZWJ1Zw0KKwkJUmVsZWFzZSA9IFJlbGVhc2UNCisJRW5kR2xvYmFsU2VjdGlvbg0KKwlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uKSA9IHBvc3RTb2x1dGlvbg0KKwkJezdFMTVGRjc4LTY2NjEtNEVENC1BMUNDLTY0NjY0NjQ3ODU1Rn0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8Lk5FVA0KKwkJezdFMTVGRjc4LTY2NjEtNEVENC1BMUNDLTY0NjY0NjQ3ODU1Rn0uRGVidWcuQnVpbGQuMCA9IERlYnVnfC5ORVQNCisJCXs3RTE1RkY3OC02NjYxLTRFRDQtQTFDQy02NDY2NDY0Nzg1NUZ9LlJlbGVhc2UuQWN0aXZlQ2ZnID0gUmVsZWFzZXwuTkVUDQorCQl7N0UxNUZGNzgtNjY2MS00RUQ0LUExQ0MtNjQ2NjQ2NDc4NTVGfS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfC5ORVQNCisJCXs1MkI2MkM3MC1BMzlFLTQ4QkEtOTc1OS1EQjMzREI4RjA5OUZ9LkRlYnVnLkFjdGl2ZUNmZyA9IERlYnVnfC5ORVQNCisJCXs1MkI2MkM3MC1BMzlFLTQ4QkEtOTc1OS1EQjMzREI4RjA5OUZ9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3wuTkVUDQorCQl7NTJCNjJDNzAtQTM5RS00OEJBLTk3NTktREIzM0RCOEYwOTlGfS5SZWxlYXNlLkFjdGl2ZUNmZyA9IFJlbGVhc2V8Lk5FVA0KKwkJezUyQjYyQzcwLUEzOUUtNDhCQS05NzU5LURCMzNEQjhGMDk5Rn0uUmVsZWFzZS5CdWlsZC4wID0gUmVsZWFzZXwuTkVUDQorCUVuZEdsb2JhbFNlY3Rpb24NCisJR2xvYmFsU2VjdGlvbihTb2x1dGlvbkl0ZW1zKSA9IHBvc3RTb2x1dGlvbg0KKwkJcG9zdGJ1aWxkLmJhdCA9IHBvc3RidWlsZC5iYXQNCisJRW5kR2xvYmFsU2VjdGlvbg0KKwlHbG9iYWxTZWN0aW9uKEV4dGVuc2liaWxpdHlHbG9iYWxzKSA9IHBvc3RTb2x1dGlvbg0KKwlFbmRHbG9iYWxTZWN0aW9uDQorCUdsb2JhbFNlY3Rpb24oRXh0ZW5zaWJpbGl0eUFkZElucykgPSBwb3N0U29sdXRpb24NCisJRW5kR2xvYmFsU2VjdGlvbg0KK0VuZEdsb2JhbA0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L0NvcmUvQXNzZW1ibHlJbmZvLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvQ29yZS9Bc3NlbWJseUluZm8uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVhZjk0NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L0NvcmUvQXNzZW1ibHlJbmZvLmNzCkBAIC0wLDAgKzEsNTYgQEAKK3VzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOw0KKy8vDQorLy8gR2VuZXJhbCBJbmZvcm1hdGlvbiBhYm91dCBhbiBhc3NlbWJseSBpcyBjb250cm9sbGVkIHRocm91Z2ggdGhlIGZvbGxvd2luZyANCisvLyBzZXQgb2YgYXR0cmlidXRlcy4gQ2hhbmdlIHRoZXNlIGF0dHJpYnV0ZSB2YWx1ZXMgdG8gbW9kaWZ5IHRoZSBpbmZvcm1hdGlvbg0KKy8vIGFzc29jaWF0ZWQgd2l0aCBhbiBhc3NlbWJseS4NCisvLw0KK1thc3NlbWJseSA6IEFzc2VtYmx5VGl0bGUoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5RGVzY3JpcHRpb24oIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5Q29uZmlndXJhdGlvbigiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDb21wYW55KCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseVByb2R1Y3QoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5Q29weXJpZ2h0KCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseVRyYWRlbWFyaygiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDdWx0dXJlKCIiKV0NCisNCisvLw0KKy8vIFZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGFuIGFzc2VtYmx5IGNvbnNpc3RzIG9mIHRoZSBmb2xsb3dpbmcgZm91ciB2YWx1ZXM6DQorLy8NCisvLyAgICAgIE1ham9yIFZlcnNpb24NCisvLyAgICAgIE1pbm9yIFZlcnNpb24gDQorLy8gICAgICBCdWlsZCBOdW1iZXINCisvLyAgICAgIFJldmlzaW9uDQorLy8NCisvLyBZb3UgY2FuIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgb3IgeW91IGNhbiBkZWZhdWx0IHRoZSBSZXZpc2lvbiBhbmQgQnVpbGQgTnVtYmVycyANCisvLyBieSB1c2luZyB0aGUgJyonIGFzIHNob3duIGJlbG93Og0KKw0KK1thc3NlbWJseSA6IEFzc2VtYmx5VmVyc2lvbigiMS4wLioiKV0NCisNCisvLw0KKy8vIEluIG9yZGVyIHRvIHNpZ24geW91ciBhc3NlbWJseSB5b3UgbXVzdCBzcGVjaWZ5IGEga2V5IHRvIHVzZS4gUmVmZXIgdG8gdGhlIA0KKy8vIE1pY3Jvc29mdCAuTkVUIEZyYW1ld29yayBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGFzc2VtYmx5IHNpZ25pbmcuDQorLy8NCisvLyBVc2UgdGhlIGF0dHJpYnV0ZXMgYmVsb3cgdG8gY29udHJvbCB3aGljaCBrZXkgaXMgdXNlZCBmb3Igc2lnbmluZy4gDQorLy8NCisvLyBOb3RlczogDQorLy8gICAoKikgSWYgbm8ga2V5IGlzIHNwZWNpZmllZCwgdGhlIGFzc2VtYmx5IGlzIG5vdCBzaWduZWQuDQorLy8gICAoKikgS2V5TmFtZSByZWZlcnMgdG8gYSBrZXkgdGhhdCBoYXMgYmVlbiBpbnN0YWxsZWQgaW4gdGhlIENyeXB0byBTZXJ2aWNlDQorLy8gICAgICAgUHJvdmlkZXIgKENTUCkgb24geW91ciBtYWNoaW5lLiBLZXlGaWxlIHJlZmVycyB0byBhIGZpbGUgd2hpY2ggY29udGFpbnMNCisvLyAgICAgICBhIGtleS4NCisvLyAgICgqKSBJZiB0aGUgS2V5RmlsZSBhbmQgdGhlIEtleU5hbWUgdmFsdWVzIGFyZSBib3RoIHNwZWNpZmllZCwgdGhlIA0KKy8vICAgICAgIGZvbGxvd2luZyBwcm9jZXNzaW5nIG9jY3VyczoNCisvLyAgICAgICAoMSkgSWYgdGhlIEtleU5hbWUgY2FuIGJlIGZvdW5kIGluIHRoZSBDU1AsIHRoYXQga2V5IGlzIHVzZWQuDQorLy8gICAgICAgKDIpIElmIHRoZSBLZXlOYW1lIGRvZXMgbm90IGV4aXN0IGFuZCB0aGUgS2V5RmlsZSBkb2VzIGV4aXN0LCB0aGUga2V5IA0KKy8vICAgICAgICAgICBpbiB0aGUgS2V5RmlsZSBpcyBpbnN0YWxsZWQgaW50byB0aGUgQ1NQIGFuZCB1c2VkLg0KKy8vICAgKCopIEluIG9yZGVyIHRvIGNyZWF0ZSBhIEtleUZpbGUsIHlvdSBjYW4gdXNlIHRoZSBzbi5leGUgKFN0cm9uZyBOYW1lKSB1dGlsaXR5Lg0KKy8vICAgICAgIFdoZW4gc3BlY2lmeWluZyB0aGUgS2V5RmlsZSwgdGhlIGxvY2F0aW9uIG9mIHRoZSBLZXlGaWxlIHNob3VsZCBiZQ0KKy8vICAgICAgIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IG91dHB1dCBkaXJlY3Rvcnkgd2hpY2ggaXMNCisvLyAgICAgICAlUHJvamVjdCBEaXJlY3RvcnklXG9ialw8Y29uZmlndXJhdGlvbj4uIEZvciBleGFtcGxlLCBpZiB5b3VyIEtleUZpbGUgaXMNCisvLyAgICAgICBsb2NhdGVkIGluIHRoZSBwcm9qZWN0IGRpcmVjdG9yeSwgeW91IHdvdWxkIHNwZWNpZnkgdGhlIEFzc2VtYmx5S2V5RmlsZSANCisvLyAgICAgICBhdHRyaWJ1dGUgYXMgW2Fzc2VtYmx5OiBBc3NlbWJseUtleUZpbGUoIi4uXFwuLlxcbXlrZXkuc25rIildDQorLy8gICAoKikgRGVsYXkgU2lnbmluZyBpcyBhbiBhZHZhbmNlZCBvcHRpb24gLSBzZWUgdGhlIE1pY3Jvc29mdCAuTkVUIEZyYW1ld29yaw0KKy8vICAgICAgIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcy4NCisvLw0KK1thc3NlbWJseSA6IEFzc2VtYmx5RGVsYXlTaWduKGZhbHNlKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseUtleUZpbGUoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5S2V5TmFtZSgiIildClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvQ29yZS9DaGFpbi5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L0NvcmUvQ2hhaW4uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDFmYjFhNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L0NvcmUvQ2hhaW4uY3MKQEAgLTAsMCArMSwxODggQEAKKy8qDQorICogQ29weXJpZ2h0IDE5OTktMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24NCisgKg0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKg0KKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKg0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8NCit1c2luZyBTeXN0ZW07DQordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KKw0KK25hbWVzcGFjZSBBZ2lsaXR5LkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIENvbmNyZXRlIHtAbGluayBJSUNoYWlufSBpbXBsZW1lbnRhdGlvbg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gPHJlbWFya3M+PHA+QHZlcnNpb24gJFJldmlzaW9uJCAkRGF0ZSQ8L3A+PC9yZW1hcmtzPg0KKwkvLy8gDQorCXB1YmxpYyBjbGFzcyBDaGFpbiA6IElDaGFpbg0KKwl7DQorCQkjcmVnaW9uIENvbnN0cnVjdG9ycw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENvbnN0cnVjdCBhIHtAbGluayBJQ2hhaW59IHdpdGggbm8gY29uZmlndXJlZCB7QGxpbmsgSUNvbW1hbmR9cy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgQ2hhaW4oKQ0KKwkJew0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENvbnN0cnVjdCBhIHtAbGluayBJQ2hhaW59IGNvbmZpZ3VyZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHtAbGluayBJQ29tbWFuZH0uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb21tYW5kIj5UaGUge0BsaW5rIElDb21tYW5kfSB0byBiZSBjb25maWd1cmVkLjwvcGFyYW0+DQorCQlwdWJsaWMgQ2hhaW4oSUNvbW1hbmQgY29tbWFuZCkNCisJCXsNCisJCQlBZGRDb21tYW5kKGNvbW1hbmQpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENvbnN0cnVjdCBhIHtAbGluayBJQ2hhaW59IGNvbmZpZ3VyZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHtAbGluayBJQ29tbWFuZH1zLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29tbWFuZHMiPlRoZSB7QGxpbmsgSUNvbW1hbmR9cyB0byBiZSBjb25maWd1cmVkLjwvcGFyYW0+DQorCQlwdWJsaWMgQ2hhaW4oSUNvbW1hbmRbXSBjb21tYW5kcykNCisJCXsNCisJCQlpZiAoY29tbWFuZHMgPT0gbnVsbCkgLy8gRklYTUU6IElsbGVnYWwgQXJndW1lbnQNCisJCQkJdGhyb3cgbmV3IEV4Y2VwdGlvbigpOw0KKwkJCWZvciAoaW50IGkgPSAwOyBpIDwgY29tbWFuZHMuTGVuZ3RoOyBpKyspIEFkZENvbW1hbmQoY29tbWFuZHNbaV0pOw0KKw0KKwkJfQ0KKw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENvbnN0cnVjdCBhIHtAbGluayBJQ2hhaW59IGNvbmZpZ3VyZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHtAbGluayBJQ29tbWFuZH1zLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29tbWFuZHMiPlRoZSB7QGxpbmsgSUNvbW1hbmR9cyB0byBiZSBjb25maWd1cmVkPC9wYXJhbT4NCisJCXB1YmxpYyBDaGFpbihJTGlzdCBjb21tYW5kcykgOiBiYXNlKCkNCisJCXsNCisJCQlBZGRDb21tYW5kcyA9IGNvbW1hbmRzOw0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbg0KKw0KKwkJI3JlZ2lvbiBJbnN0YW5jZSBWYXJpYWJsZXMNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUaGUgbGlzdCBvZiB7QGxpbmsgSUNvbW1hbmR9cyBjb25maWd1cmVkIGZvciB0aGlzIHtAbGluayBJQ2hhaW59LCBpbiB0aGUgb3JkZXIgaW4gd2hpY2ggdGhleSBtYXkgZGVsZWdhdGUgcHJvY2Vzc2luZyB0byB0aGUgcmVtYWluZGVyIG9mIHRoZSB7QGxpbmsgSUNoYWlufS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcm90ZWN0ZWQgSUNvbW1hbmRbXSBjb21tYW5kcyA9IG5ldyBJQ29tbWFuZFswXTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBGbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgY29uZmlndXJhdGlvbiBvZiBvdXIgY29tbWFuZHMgbGlzdCBoYXMgYmVlbiBmcm96ZW4gYnkgYSBjYWxsIHRvIHRoZSA8Y29kZT5leGVjdXRlKCk8L2NvZGU+IG1ldGhvZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcm90ZWN0ZWQgYm9vbCBmcm96ZW4gPSBmYWxzZTsNCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gQ2hhaW4gTWV0aG9kcw0KKw0KKwkJLy8gU2VlIGludGVyZmFjZQ0KKwkJcHVibGljIHZvaWQgQWRkQ29tbWFuZChJQ29tbWFuZCBjb21tYW5kKQ0KKwkJew0KKwkJCWlmIChjb21tYW5kID09IG51bGwpDQorCQkJCXRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24oImNvbW1hbmQ9PW51bGwiLCAiQ2hhaW4uQWRkQ29tbWFuZCIpOw0KKwkJCWlmIChmcm96ZW4pDQorCQkJCXRocm93IG5ldyBBcHBsaWNhdGlvbkV4Y2VwdGlvbigiQ2hhaW4uQWRkQ29tbWFuZDogZnJvemVuPT10cnVlIik7DQorCQkJSUNvbW1hbmRbXSByZXN1bHRzID0gbmV3IElDb21tYW5kW2NvbW1hbmRzLkxlbmd0aCArIDFdOw0KKwkJCUFycmF5LkNvcHkoY29tbWFuZHMsIDAsIHJlc3VsdHMsIDAsIGNvbW1hbmRzLkxlbmd0aCk7DQorCQkJcmVzdWx0c1tjb21tYW5kcy5MZW5ndGhdID0gY29tbWFuZDsNCisJCQljb21tYW5kcyA9IHJlc3VsdHM7DQorDQorCQl9DQorDQorCQlwdWJsaWMgSUxpc3QgQWRkQ29tbWFuZHMNCisJCXsNCisJCQlzZXQNCisJCQl7DQorCQkJCWlmICh2YWx1ZSA9PSBudWxsKQ0KKwkJCQkJdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbigidmFsdWU9PW51bGwiLCAiQ2hhaW4uQWRkQ29tbWFuZHMiKTsNCisJCQkJSUVudW1lcmF0b3IgZWxlbWVudHMgPSB2YWx1ZS5HZXRFbnVtZXJhdG9yKCk7DQorCQkJCXdoaWxlIChlbGVtZW50cy5Nb3ZlTmV4dCgpKSBBZGRDb21tYW5kKGVsZW1lbnRzLkN1cnJlbnQgYXMgSUNvbW1hbmQpOw0KKwkJCX0NCisJCX0NCisNCisNCisJCS8vIFNlZSBpbnRlcmZhY2UNCisJCXB1YmxpYyBib29sIEV4ZWN1dGUoSUNvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQkvLyBWZXJpZnkgb3VyIHBhcmFtZXRlcnMNCisJCQlpZiAoY29udGV4dCA9PSBudWxsKQ0KKwkJCQl0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKCJjb250ZXh0PT1udWxsIiwgIkNoYWluLkV4ZWN1dGUiKTsNCisNCisJCQkvLyBGcmVlemUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGNvbW1hbmQgbGlzdA0KKwkJCWZyb3plbiA9IHRydWU7DQorDQorCQkJLy8gRXhlY3V0ZSB0aGUgY29tbWFuZHMgaW4gdGhpcyBsaXN0IHVudGlsIG9uZSByZXR1cm5zIHRydWUNCisJCQkvLyBvciB0aHJvd3MgYW4gZXhjZXB0aW9uDQorCQkJYm9vbCBzYXZlUmVzdWx0ID0gZmFsc2U7DQorCQkJRXhjZXB0aW9uIHNhdmVFeGNlcHRpb24gPSBudWxsOw0KKwkJCWludCBpOw0KKwkJCWludCBuID0gY29tbWFuZHMuTGVuZ3RoOw0KKwkJCTsNCisJCQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQ0KKwkJCXsNCisJCQkJdHJ5DQorCQkJCXsNCisJCQkJCXNhdmVSZXN1bHQgPSBjb21tYW5kc1tpXS5FeGVjdXRlKGNvbnRleHQpOw0KKwkJCQkJaWYgKHNhdmVSZXN1bHQpIGJyZWFrOw0KKwkJCQl9DQorCQkJCWNhdGNoIChFeGNlcHRpb24gZSkNCisJCQkJew0KKwkJCQkJc2F2ZUV4Y2VwdGlvbiA9IGU7DQorCQkJCQlicmVhazsNCisJCQkJfQ0KKwkJCX0NCisNCisJCQkvLyBDYWxsIHBvc3Rwcm9jZXNzIG1ldGhvZHMgb24gRmlsdGVycyBpbiByZXZlcnNlIG9yZGVyDQorCQkJaWYgKGkgPj0gbikNCisJCQl7IC8vIEZlbGwgb2ZmIHRoZSBlbmQgb2YgdGhlIGNoYWluDQorCQkJCWktLTsNCisJCQl9DQorCQkJYm9vbCBoYW5kbGVkID0gZmFsc2U7DQorCQkJYm9vbCByZXN1bHQ7DQorCQkJZm9yIChpbnQgaiA9IGk7IGogPj0gMDsgai0tKQ0KKwkJCXsNCisJCQkJaWYgKGNvbW1hbmRzW2pdIGlzIElGaWx0ZXIpDQorCQkJCXsNCisJCQkJCXRyeQ0KKwkJCQkJew0KKwkJCQkJCXJlc3VsdCA9DQorCQkJCQkJCSgoSUZpbHRlcikgY29tbWFuZHNbal0pLlBvc3RQcm9jZXNzKGNvbnRleHQsIHNhdmVFeGNlcHRpb24pOw0KKwkJCQkJCWlmIChyZXN1bHQpDQorCQkJCQkJCWhhbmRsZWQgPSB0cnVlOw0KKwkJCQkJfQ0KKwkJCQkJY2F0Y2ggKEV4Y2VwdGlvbiBlKQ0KKwkJCQkJew0KKwkJCQkJCWlmIChlID09IG51bGwpIHRocm93IChlKTsgLy8gU2lsZW50bHkgaWdub3JlDQorCQkJCQl9DQorCQkJCX0NCisJCQl9DQorCQkJLy8gUmV0dXJuIHRoZSBleGNlcHRpb24gb3IgcmVzdWx0IHN0YXRlIGZyb20gdGhlIGxhc3QgZXhlY3V0ZSgpDQorCQkJaWYgKChzYXZlRXhjZXB0aW9uICE9IG51bGwpICYmICFoYW5kbGVkKSB0aHJvdyBzYXZlRXhjZXB0aW9uOw0KKwkJCWVsc2UgcmV0dXJuIChzYXZlUmVzdWx0KTsNCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gSW50ZXJuYWwgTWV0aG9kcw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJldHVybiBhbiBhcnJheSBvZiB0aGUgY29uZmlndXJlZCB7QGxpbmsgSUNvbW1hbmR9cyBmb3IgdGhpcyB7QGxpbmsgSUNoYWlufS4gIFRoaXMgbWV0aG9kIGlzIGludGVybmFsIHRvIHRoZSBhc3NlbWJseSBhbmQgaXMgdXNlZCBvbmx5IGZvciB0aGUgdW5pdCB0ZXN0cy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJldHVybnM+QW4gYXJyYXkgb2YgdGhlIGNvbmZpZ3VyZWQge0BsaW5rIElDb21tYW5kfXMgZm9yIHRoaXMge0BsaW5rIElDaGFpbn08L3JldHVybnM+DQorCQlwdWJsaWMgSUNvbW1hbmRbXSBHZXRDb21tYW5kcygpDQorCQl7DQorCQkJcmV0dXJuIChjb21tYW5kcyk7DQorDQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvQ29yZS9Db250ZXh0LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvQ29yZS9Db250ZXh0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzN2QwZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9Db3JlL0NvbnRleHQuY3MKQEAgLTAsMCArMSw0MyBAQAorLyoNCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbg0KKyAqDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqDQorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCisNCituYW1lc3BhY2UgQWdpbGl0eS5Db3JlDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBDb25jcmV0ZSB7QGxpbmsgSUNvbnRleHR9IGltcGxlbWVudGF0aW9uLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlwdWJsaWMgY2xhc3MgQ29udGV4dCA6IEhhc2h0YWJsZSwgSUNvbnRleHQNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIERlZmF1bHQgY29uc3RydWN0b3IuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIENvbnRleHQoKQ0KKwkJew0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENvbnZlbmllbmNlIGNvbnN0cnVjdG9yIHRvIGNyZWF0ZSBuZXcgQ29udGV4dCANCisJCS8vLyBhbmQgYWRkIGEgbmV3IGl0ZW0uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJrZXkiPkluZGV4IGZvciBlbnRyeTwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9Il92YWx1ZSI+VmFsdWUgZm9yIGVudHJ5PC9wYXJhbT4NCisJCXB1YmxpYyBDb250ZXh0KHN0cmluZyBrZXksIG9iamVjdCBfdmFsdWUpDQorCQl7DQorCQkJdGhpcy5BZGQoa2V5LCBfdmFsdWUpOw0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L0NvcmUvQ29yZS5jc3Byb2ogYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9Db3JlL0NvcmUuY3Nwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNDAxOGYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9Db3JlL0NvcmUuY3Nwcm9qCkBAIC0wLDAgKzEsMTMwIEBACis8VmlzdWFsU3R1ZGlvUHJvamVjdD4NCisgICAgPENTSEFSUA0KKyAgICAgICAgUHJvamVjdFR5cGUgPSAiTG9jYWwiDQorICAgICAgICBQcm9kdWN0VmVyc2lvbiA9ICI3LjEwLjMwNzciDQorICAgICAgICBTY2hlbWFWZXJzaW9uID0gIjIuMCINCisgICAgICAgIFByb2plY3RHdWlkID0gIns3RTE1RkY3OC02NjYxLTRFRDQtQTFDQy02NDY2NDY0Nzg1NUZ9Ig0KKyAgICA+DQorICAgICAgICA8QnVpbGQ+DQorICAgICAgICAgICAgPFNldHRpbmdzDQorICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uSWNvbiA9ICIiDQorICAgICAgICAgICAgICAgIEFzc2VtYmx5S2V5Q29udGFpbmVyTmFtZSA9ICIiDQorICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJBZ2lsaXR5LkNvcmUiDQorICAgICAgICAgICAgICAgIEFzc2VtYmx5T3JpZ2luYXRvcktleUZpbGUgPSAiIg0KKyAgICAgICAgICAgICAgICBEZWZhdWx0Q2xpZW50U2NyaXB0ID0gIkpTY3JpcHQiDQorICAgICAgICAgICAgICAgIERlZmF1bHRIVE1MUGFnZUxheW91dCA9ICJHcmlkIg0KKyAgICAgICAgICAgICAgICBEZWZhdWx0VGFyZ2V0U2NoZW1hID0gIklFNTAiDQorICAgICAgICAgICAgICAgIERlbGF5U2lnbiA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgT3V0cHV0VHlwZSA9ICJMaWJyYXJ5Ig0KKyAgICAgICAgICAgICAgICBQcmVCdWlsZEV2ZW50ID0gIiINCisgICAgICAgICAgICAgICAgUG9zdEJ1aWxkRXZlbnQgPSAiJChTb2x1dGlvbkRpcilwb3N0YnVpbGQuYmF0ICAgICQoVGFyZ2V0RGlyKSAgJChUYXJnZXROYW1lKSAgJChTb2x1dGlvbk5hbWUpICAkKFNvbHV0aW9uRGlyKSINCisgICAgICAgICAgICAgICAgUm9vdE5hbWVzcGFjZSA9ICJBZ2lsaXR5LkNvcmUiDQorICAgICAgICAgICAgICAgIFJ1blBvc3RCdWlsZEV2ZW50ID0gIk9uQnVpbGRTdWNjZXNzIg0KKyAgICAgICAgICAgICAgICBTdGFydHVwT2JqZWN0ID0gIiINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgICAgIDxDb25maWcNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiRGVidWciDQorICAgICAgICAgICAgICAgICAgICBBbGxvd1Vuc2FmZUJsb2NrcyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIEJhc2VBZGRyZXNzID0gIjI4NTIxMjY3MiINCisgICAgICAgICAgICAgICAgICAgIENoZWNrRm9yT3ZlcmZsb3dVbmRlcmZsb3cgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uT3ZlcnJpZGVGaWxlID0gIiINCisgICAgICAgICAgICAgICAgICAgIERlZmluZUNvbnN0YW50cyA9ICJERUJVRztUUkFDRSINCisgICAgICAgICAgICAgICAgICAgIERvY3VtZW50YXRpb25GaWxlID0gIiINCisgICAgICAgICAgICAgICAgICAgIERlYnVnU3ltYm9scyA9ICJ0cnVlIg0KKyAgICAgICAgICAgICAgICAgICAgRmlsZUFsaWdubWVudCA9ICI0MDk2Ig0KKyAgICAgICAgICAgICAgICAgICAgSW5jcmVtZW50YWxCdWlsZCA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE5vU3RkTGliID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgTm9XYXJuID0gIiINCisgICAgICAgICAgICAgICAgICAgIE9wdGltaXplID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgT3V0cHV0UGF0aCA9ICJiaW5cRGVidWdcIg0KKyAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJGb3JDb21JbnRlcm9wID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgUmVtb3ZlSW50ZWdlckNoZWNrcyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFRyZWF0V2FybmluZ3NBc0Vycm9ycyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFdhcm5pbmdMZXZlbCA9ICI0Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8Q29uZmlnDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIlJlbGVhc2UiDQorICAgICAgICAgICAgICAgICAgICBBbGxvd1Vuc2FmZUJsb2NrcyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIEJhc2VBZGRyZXNzID0gIjI4NTIxMjY3MiINCisgICAgICAgICAgICAgICAgICAgIENoZWNrRm9yT3ZlcmZsb3dVbmRlcmZsb3cgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uT3ZlcnJpZGVGaWxlID0gIiINCisgICAgICAgICAgICAgICAgICAgIERlZmluZUNvbnN0YW50cyA9ICJUUkFDRSINCisgICAgICAgICAgICAgICAgICAgIERvY3VtZW50YXRpb25GaWxlID0gIiINCisgICAgICAgICAgICAgICAgICAgIERlYnVnU3ltYm9scyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIEZpbGVBbGlnbm1lbnQgPSAiNDA5NiINCisgICAgICAgICAgICAgICAgICAgIEluY3JlbWVudGFsQnVpbGQgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBOb1N0ZExpYiA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE5vV2FybiA9ICIiDQorICAgICAgICAgICAgICAgICAgICBPcHRpbWl6ZSA9ICJ0cnVlIg0KKyAgICAgICAgICAgICAgICAgICAgT3V0cHV0UGF0aCA9ICJiaW5cUmVsZWFzZVwiDQorICAgICAgICAgICAgICAgICAgICBSZWdpc3RlckZvckNvbUludGVyb3AgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBSZW1vdmVJbnRlZ2VyQ2hlY2tzID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgVHJlYXRXYXJuaW5nc0FzRXJyb3JzID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgV2FybmluZ0xldmVsID0gIjQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgPC9TZXR0aW5ncz4NCisgICAgICAgICAgICA8UmVmZXJlbmNlcz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJTeXN0ZW0iDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3lzdGVtIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cLi5cLi5cLi5cLi5cLi5cV0lORE9XU1xNaWNyb3NvZnQuTkVUXEZyYW1ld29ya1x2MS4xLjQzMjJcU3lzdGVtLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJTeXN0ZW0uRGF0YSINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJTeXN0ZW0uRGF0YSINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIi4uXC4uXC4uXC4uXC4uXC4uXC4uXFdJTkRPV1NcTWljcm9zb2Z0Lk5FVFxGcmFtZXdvcmtcdjEuMS40MzIyXFN5c3RlbS5EYXRhLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJTeXN0ZW0uWE1MIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIlN5c3RlbS5YbWwiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlwuLlwuLlwuLlwuLlxXSU5ET1dTXE1pY3Jvc29mdC5ORVRcRnJhbWV3b3JrXHYxLjEuNDMyMlxTeXN0ZW0uWE1MLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICA8L1JlZmVyZW5jZXM+DQorICAgICAgICA8L0J1aWxkPg0KKyAgICAgICAgPEZpbGVzPg0KKyAgICAgICAgICAgIDxJbmNsdWRlPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJBc3NlbWJseUluZm8uY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJDaGFpbi5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbnRleHQuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJJQ2F0YWxvZy5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIklDaGFpbi5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIklDb21tYW5kLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiSUNvbnRleHQuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJJRmlsdGVyLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICA8L0luY2x1ZGU+DQorICAgICAgICA8L0ZpbGVzPg0KKyAgICA8L0NTSEFSUD4NCis8L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQorDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvQ29yZS9JQ2F0YWxvZy5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L0NvcmUvSUNhdGFsb2cuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTNkMDQyMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L0NvcmUvSUNhdGFsb2cuY3MKQEAgLTAsMCArMSw1OSBAQAorLyoNCisgKiBDb3B5cmlnaHQgMjAwMy0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbg0KKyAqDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqDQorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQorDQorbmFtZXNwYWNlIEFnaWxpdHkuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gQSB7QGxpbmsgSUNhdGFsb2d9IGlzIGEgY29sbGVjdGlvbiBvZiBuYW1lZCB7QGxpbmsgSUNvbW1hbmR9cyAob3INCisJLy8vIHtAbGluayBJQ2hhaW59cykgdGhhdCBjYW4gYmUgdXNlZCByZXRyaWV2ZSB0aGUgc2V0IG9mIGNvbW1hbmRzIHRoYXQNCisJLy8vIHNob3VsZCBiZSBwZXJmb3JtZWQgYmFzZWQgb24gYSBzeW1ib2xpYyBpZGVudGlmaWVyLiAgDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyA8cmVtYXJrcz4NCisJLy8vIDxwPlVzZSBvZiBjYXRhbG9ncyBpcyBvcHRpb25hbCwgYnV0IGNvbnZlbmllbnQgd2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgcG9zc2libGUgDQorCS8vLyBjaGFpbnMgdGhhdCBjYW4gYmUgc2VsZWN0ZWQgYW5kIGV4ZWN1dGVkIGJhc2VkIG9uIGVudmlyb25tZW50YWwgY29uZGl0aW9ucy48L3A+DQorCS8vLyA8L3JlbWFya3M+DQorCXB1YmxpYyBpbnRlcmZhY2UgSUNhdGFsb2cNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEFkZCBhIG5ldyBuYW1lIGFuZCBhc3NvY2lhdGVkIHtAbGluayBJQ29tbWFuZH0gb3Ige0BsaW5rIElDaGFpbn0NCisJCS8vLyB0byB0aGUgc2V0IG9mIG5hbWVkIGNvbW1hbmRzIGtub3duIHRvIHRoaXMge0BsaW5rIElDYXRhbG9nfSwNCisJCS8vLyByZXBsYWNpbmcgYW55IHByZXZpb3VzIGNvbW1hbmQgZm9yIHRoYXQgbmFtZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9Im5hbWUiPk5hbWUgb2YgdGhlIG5ldyBjb21tYW5kPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29tbWFuZCI+e0BsaW5rIElDb21tYW5kfSBvciB7QGxpbmsgSUNoYWlufSB0byBiZSByZXR1cm5lZDwvcGFyYW0+DQorCQl2b2lkIEFkZENvbW1hbmQoU3RyaW5nIG5hbWUsIElDb21tYW5kIGNvbW1hbmQpOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJldHVybiB0aGUge0BsaW5rIElDb21tYW5kfSBvciB7QGxpbmsgSUNoYWlufSBhc3NvY2lhdGVkIHdpdGggdGhlDQorCQkvLy8gc3BlY2lmaWVkIG5hbWUsIGlmIGFueTsgb3RoZXJ3aXNlLCByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJuYW1lIj5OYW1lIGZvciB3aGljaCBhIHtAbGluayBJQ29tbWFuZH0gb3Ige0BsaW5rIElDaGFpbn0NCisJCS8vLyAgc2hvdWxkIGJlIHJldHJpZXZlZDwvcGFyYW0+DQorCQlJQ29tbWFuZCBHZXRDb21tYW5kKFN0cmluZyBuYW1lKTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZXR1cm4gYW4gPGNvZGU+SUVudW1lcmF0b3I8L2NvZGU+IG92ZXIgdGhlIHNldCBvZiBuYW1lZCBjb21tYW5kcw0KKwkJLy8vIGtub3duIHRvIHRoaXMge0BsaW5rIElDYXRhbG9nfS4gIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz4NCisJCS8vLyA8cD5JZiB0aGVyZSBhcmUgbm8ga25vd24gY29tbWFuZHMsIGFuIGVtcHR5IElFbnVtZXJhdG9yIGlzIHJldHVybmVkLjwvcD4NCisJCS8vLyA8L3JlbWFya3M+DQorCQlJRW51bWVyYXRvciBHZXROYW1lcygpOw0KKw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L0NvcmUvSUNoYWluLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvQ29yZS9JQ2hhaW4uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZhMGIwZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L0NvcmUvSUNoYWluLmNzCkBAIC0wLDAgKzEsMTE1IEBACit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQorLyoNCisgKiBDb3B5cmlnaHQgMjAwMy0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbg0KKyAqDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqDQorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KKw0KK25hbWVzcGFjZSBBZ2lsaXR5LkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEEge0BsaW5rIElDaGFpbn0gcmVwcmVzZW50cyBhIGNvbmZpZ3VyZWQgbGlzdCBvZg0KKwkvLy8ge0BsaW5rIElDb21tYW5kfXMgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIGluIG9yZGVyIHRvIHBlcmZvcm0gcHJvY2Vzc2luZw0KKwkvLy8gb24gYSBzcGVjaWZpZWQge0BsaW5rIElDb250ZXh0fS4gIA0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gPHJlbWFya3M+DQorCS8vLyA8cD5FYWNoIGluY2x1ZGVkIHtAbGluayBJQ29tbWFuZH0gd2lsbCBiZQ0KKwkvLy8gZXhlY3V0ZWQgaW4gdHVybiwgdW50aWwgZWl0aGVyIG9uZSBvZiB0aGVtIHJldHVybnMgPGNvZGU+dHJ1ZTwvY29kZT4sDQorCS8vLyBvbmUgb2YgdGhlIGV4ZWN1dGVkIHtAbGluayBJQ29tbWFuZH1zIHRocm93cyBhbiBFeGNlcHRpb24sDQorCS8vLyBvciB0aGUgZW5kIG9mIHRoZSBjaGFpbiBoYXMgYmVlbiByZWFjaGVkLiAgVGhlIHtAbGluayBJQ2hhaW59IGl0c2VsZiB3aWxsDQorCS8vLyByZXR1cm4gdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgbGFzdCB7QGxpbmsgSUNvbW1hbmR9IHRoYXQgd2FzIGV4ZWN1dGVkDQorCS8vLyAoaWYgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24pLCBvciByZXRocm93IHRoZSB0aHJvd24gRXhjZXB0aW9uLjwvcD4NCisJLy8vDQorCS8vLyA8cD5Ob3RlIHRoYXQge0BsaW5rIElDaGFpbn0gZXh0ZW5kcyB7QGxpbmsgSUNvbW1hbmR9LCBzbyB0aGF0IHRoZSB0d28gY2FuDQorCS8vLyBiZSB1c2VkIGludGVyY2hhbmdlYWJseSB3aGVuIGEge0BsaW5rIElDb21tYW5kfSBpcyBleHBlY3RlZC4gIFRoaXMgbWFrZXMgaXQNCisJLy8vIGVhc3kgdG8gYXNzZW1ibGUgd29ya2Zsb3dzIGluIGEgaGllcmFyY2hpY2FsIG1hbm5lciBieSBjb21iaW5pbmcgc3ViY2hhaW5zDQorCS8vLyBpbnRvIGFuIG92ZXJhbGwgcHJvY2Vzc2luZyBjaGFpbi48L3A+DQorCS8vLw0KKwkvLy8gPHA+VG8gcHJvdGVjdCBhcHBsaWNhdGlvbnMgZnJvbSBldm9sdXRpb24gb2YgdGhpcyBpbnRlcmZhY2UsIHNwZWNpYWxpemVkDQorCS8vLyBpbXBsZW1lbnRhdGlvbnMgb2Yge0BsaW5rIElDaGFpbn0gc2hvdWxkIGdlbmVyYWxseSBiZSBjcmVhdGVkIGJ5IGV4dGVuZGluZw0KKwkvLy8gdGhlIHByb3ZpZGVkIGJhc2UgY2xhc3Mge0BsaW5rIEFnaWxpdHkuQ29yZS5DaGFpbn0pDQorCS8vLyByYXRoZXIgdGhhbiBkaXJlY3RseSBpbXBsZW1lbnRpbmcgdGhpcyBpbnRlcmZhY2UuPC9wPg0KKwkvLy8NCisJLy8vIDxwPntAbGluayBJQ2hhaW59IGltcGxlbWVudGF0aW9ucyBzaG91bGQgYmUgZGVzaWduZWQgaW4gYSB0aHJlYWQtc2FmZQ0KKwkvLy8gbWFubmVyLCBzdWl0YWJsZSBmb3IgZXhlY3V0aW9uIG9uIG11bHRpcGxlIHRocmVhZHMgc2ltdWx0YW5lb3VzbHkuICBJbg0KKwkvLy8gZ2VuZXJhbCwgdGhpcyBpbXBsaWVzIHRoYXQgdGhlIHN0YXRlIGluZm9ybWF0aW9uIGlkZW50aWZ5aW5nIHdoaWNoDQorCS8vLyB7QGxpbmsgSUNvbW1hbmR9IGlzIGN1cnJlbnRseSBiZWluZyBleGVjdXRlZCBzaG91bGQgYmUgbWFpbnRhaW5lZCBpbiBhDQorCS8vLyBsb2NhbCB2YXJpYWJsZSBpbnNpZGUgdGhlIDxjb2RlPkV4ZWN1dGU8L2NvZGU+IG1ldGhvZCwgcmF0aGVyIHRoYW4NCisJLy8vIGluIGFuIGluc3RhbmNlIHZhcmlhYmxlLiAgVGhlIHtAbGluayBJQ29tbWFuZH1zIGluIGEge0BsaW5rIElDaGFpbn0gbWF5IGJlDQorCS8vLyBjb25maWd1cmVkICh2aWEgY2FsbHMgdG8gPGNvZGU+QWRkQ29tbWFuZDwvY29kZT4pIGF0IGFueSB0aW1lIGJlZm9yZQ0KKwkvLy8gdGhlIDxjb2RlPkV4ZWN1dGUoKTwvY29kZT4gbWV0aG9kIG9mIHRoZSB7QGxpbmsgSUNoYWlufSBpcyBmaXJzdCBjYWxsZWQuDQorCS8vLyBBZnRlciB0aGF0LCB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUge0BsaW5rIElDaGFpbn0gaXMgZnJvemVuLjwvcD4NCisJLy8vIDwvcmVtYXJrcz4NCisJcHVibGljIGludGVyZmFjZSBJQ2hhaW4gOiBJQ29tbWFuZA0KKwl7DQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQWRkIGEge0BsaW5rIElDb21tYW5kfSB0byB0aGUgbGlzdCBvZiB7QGxpbmsgSUNvbW1hbmR9cyB0aGF0IHdpbGwNCisJCS8vLyBiZSBjYWxsZWQgaW4gdHVybiB3aGVuIHRoaXMge0BsaW5rIElDaGFpbn0ncyA8Y29kZT5FeGVjdXRlKCk8L2NvZGU+DQorCQkvLy8gbWV0aG9kIGlzIGNhbGxlZC4gIA0KKwkJLy8vPC9zdW1tYXJ5Pg0KKwkJLy8vPHJlbWFya3M+DQorCQkvLy8gPHA+T25jZSA8Y29kZT5FeGVjdXRlPC9jb2RlPiBoYXMgYmVlbiBjYWxsZWQNCisJCS8vLyBhdCBsZWFzdCBvbmNlLCBpdCBpcyBubyBsb25nZXIgcG9zc2libGUgdG8gYWRkIGFkZGl0aW9uYWwNCisJCS8vLyB7QGxpbmsgSUNvbW1hbmR9czsgaW5zdGVhZCwgYW4gRXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duLjwvcD4NCisJCS8vLyA8L3JlbWFya3M+DQorCQl2b2lkIEFkZENvbW1hbmQoSUNvbW1hbmQgY29tbWFuZCk7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQWRkIGEgSUxpc3Qgb2Yge0BsaW5rIElDb21tYW5kfXMgdG8gdGhlIGxpc3Qgb2Yge0BsaW5rIElDb21tYW5kfXMuDQorCQkvLy88L3N1bW1hcnk+DQorCQkvLy88cmVtYXJrcz4NCisJCS8vLyBBbHRob3VnaCByZW5kZXJlZCBhcyBhIHByb3BlcnR5LCB0aGlzIG1lbWJlciBkb2VzIGFkZCBhIENvbW1hbmQgdG8gdGhlIGxpc3QsIA0KKwkJLy8vIHdpdGhvdXQgb3ZlcndyaXRpZ24gYW55IGV4aXN0aW5nIGNvbW1hbmRzLCB1bmxlc3Mga2V5cyBjb25mbGljdHMuIA0KKwkJLy8vIElmIGtleSBjb25mbGljdCwgdGhlIGxhc3Qgb25lIGFkZGVkIHdpbnMuDQorCQkvLy88L3JlbWFya3M+DQorCQlJTGlzdCBBZGRDb21tYW5kcyB7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEV4ZWN1dGUgdGhlIHByb2Nlc3NpbmcgcmVwcmVzZW50ZWQgYnkgdGhpcyB7QGxpbmsgSUNoYWlufS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+DQorCQkvLy8gPHA+UHJvY2Vzc2luZyB1c2VzIHRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtOjwvcD4NCisJCS8vLyA8dWw+DQorCQkvLy8gPGxpPklmIHRoZXJlIGFyZSBubyBjb25maWd1cmVkIHtAbGluayBJQ29tbWFuZH1zIGluIHRoZSB7QGxpbmsgSUNoYWlufSwNCisJCS8vLyAgICAgcmV0dXJuIDxjb2RlPmZhbHNlPC9jb2RlPi48L2xpPg0KKwkJLy8vIDxsaT5DYWxsIHRoZSA8Y29kZT5FeGVjdXRlPC9jb2RlPiBtZXRob2Qgb2YgZWFjaCB7QGxpbmsgSUNvbW1hbmR9DQorCQkvLy8gICAgIGNvbmZpZ3VyZWQgb24gdGhpcyBjaGFpbiwgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBhZGRlZCB2aWEgY2FsbHMNCisJCS8vLyAgICAgdG8gdGhlIDxjb2RlPkFkZENvbW1hbmQ8L2NvZGU+IG1ldGhvZCwgdW50aWwgdGhlIGVuZCBvZiB0aGUNCisJCS8vLyAgICAgY29uZmlndXJlZCB7QGxpbmsgSUNvbW1hbmR9cyBpcyBlbmNvdW50ZXJlZCwgb3IgdW50aWwgb25lIG9mDQorCQkvLy8gICAgIHRoZSBleGVjdXRlZCB7QGxpbmsgSUNvbW1hbmR9cyByZXR1cm5zIDxjb2RlPnRydWU8L2NvZGU+DQorCQkvLy8gICAgIG9yIHRocm93cyBhbiBFeGNlcHRpb24uPC9saT4NCisJCS8vLyA8bGk+V2FsayBiYWNrd2FyZHMgdGhyb3VnaCB0aGUge0BsaW5rIElDb21tYW5kfXMgd2hvc2UNCisJCS8vLyAgICAgPGNvZGU+RXhlY3V0ZTwvY29kZT4gbWV0aG9kcywgc3RhcnRpbmcgd2l0aCB0aGUgbGFzdCBvbmUgdGhhdA0KKwkJLy8vICAgICB3YXMgZXhlY3V0ZWQuICBJZiB0aGlzIHtAbGluayBJQ29tbWFuZH0gaW5zdGFuY2UgaXMgYWxzbyBhDQorCQkvLy8gICAgIHtAbGluayBJRmlsdGVyfSwgY2FsbCBpdHMgPGNvZGU+UG9zdFByb2Nlc3M8L2NvZGU+IG1ldGhvZC4NCisJCS8vLyAgICAgPGI+SWYgPGNvZGU+UG9zdFByb2Nlc3M8L2NvZGU+IHRocm93cyBhbiBFeGNlcHRpb24sIGl0IGlzIGlnbm9yZWQuPC9iPjwvbGk+DQorCQkvLy8gPGxpPklmIHRoZSBsYXN0IHtAbGluayBJQ29tbWFuZH0gd2hvc2UgPGNvZGU+RXhlY3V0ZTwvY29kZT4gbWV0aG9kDQorCQkvLy8gICAgIHdhcyBjYWxsZWQgdGhyb3dzIGFuIEV4Y2VwdGlvbiwgcmV0aHJvdyB0aGF0IEV4Y2VwdGlvbi48L2xpPg0KKwkJLy8vIDxsaT5PdGhlcndpc2UsIHJldHVybiB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgdGhlIDxjb2RlPkV4ZWN1dGU8L2NvZGU+DQorCQkvLy8gICAgIG1ldGhvZCBvZiB0aGUgbGFzdCB7QGxpbmsgSUNvbW1hbmR9IHRoYXQgd2FzIGV4ZWN1dGVkLiAgVGhpcyB3aWxsIGJlDQorCQkvLy8gICAgIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSBsYXN0IHtAbGluayBJQ29tbWFuZH0gaW5kaWNhdGVkIHRoYXQNCisJCS8vLyAgICAgcHJvY2Vzc2luZyBvZiB0aGlzIHtAbGluayBJQ29udGV4dH0gaGFzIGJlZW4gY29tcGxldGVkLCBvcg0KKwkJLy8vICAgICA8Y29kZT5mYWxzZTwvY29kZT4gaWYgbm9uZSBvZiB0aGUgY2FsbGVkIHtAbGluayBJQ29tbWFuZH1zDQorCQkvLy8gICAgIHJldHVybmVkIDxjb2RlPnRydWU8L2NvZGU+LjwvbGk+DQorCQkvLy8gPC91bD4NCisJCS8vLyA8L3JlbWFya3M+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRleHQiPlRoZSB7QGxpbmsgSUNvbnRleHR9IHRvIGJlIHByb2Nlc3NlZCBieSB0aGlzDQorCQkvLy8gIHtAbGluayBJQ2hhaW59PC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz48Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgcHJvY2Vzc2luZyBvZiB0aGlzIHtAbGluayBJQ29udGV4dH0NCisJCS8vLyAgaXMgY29tcGxldGUsIG9yIDxjb2RlPmZhbHNlPC9jb2RlPiBpZiBmdXJ0aGVyIHByb2Nlc3NpbmcNCisJCS8vLyAgb2YgdGhpcyB7QGxpbmsgSUNvbnRleHR9IGNhbiBiZSBkZWxlZ2F0ZWQgdG8gYSBzdWJzZXF1ZW50DQorCQkvLy8gIHtAbGluayBJQ29tbWFuZH0gaW4gYW4gZW5jbG9zaW5nIHtAbGluayBJQ2hhaW59PC9yZXR1cm5zPg0KKwkJbmV3IGJvb2wgRXhlY3V0ZShJQ29udGV4dCBjb250ZXh0KTsNCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9Db3JlL0lDb21tYW5kLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvQ29yZS9JQ29tbWFuZC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjIyZGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvQ29yZS9JQ29tbWFuZC5jcwpAQCAtMCwwICsxLDk3IEBACisgLyoNCisgKiBDb3B5cmlnaHQgMjAwMy0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbg0KKyAqDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqDQorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KKw0KK25hbWVzcGFjZSBBZ2lsaXR5LkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEEge0BsaW5rIENvbW1hbmR9IGVuY2Fwc3VsYXRlcyBhIHVuaXQgb2YgcHJvY2Vzc2luZyB3b3JrIHRvIGJlDQorCS8vLyBwZXJmb3JtZWQsIHdob3NlIHB1cnBvc2UgaXMgdG8gZXhhbWluZSBhbmQvb3IgbW9kaWZ5IHRoZSBzdGF0ZSBvZiBhDQorCS8vLyB0cmFuc2FjdGlvbiB0aGF0IGlzIHJlcHJlc2VudGVkIGJ5IGEge0BsaW5rIENvbnRleHR9LiANCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIDxyZW1hcmtzPg0KKwkvLy8gPHA+SW5kaXZpZHVhbCB7QGxpbmsgQ29tbWFuZH1zIGNhbiBiZSBhc3NlbWJsZWQgaW50byBhIHtAbGluayBDaGFpbn0sIHdoaWNoIGFsbG93cw0KKwkvLy8gdGhlbSB0byBlaXRoZXIgY29tcGxldGUgdGhlIHJlcXVpcmVkIHByb2Nlc3Npbmcgb3IgZGVsZWdhdGUgZnVydGhlcg0KKwkvLy8gcHJvY2Vzc2luZyB0byB0aGUgbmV4dCB7QGxpbmsgQ29tbWFuZH0gaW4gdGhlIHtAbGluayBDaGFpbn0uPC9wPg0KKwkvLy8NCisJLy8vIDxwPntAbGluayBDb21tYW5kfSBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIGJlIGRlc2lnbmVkIGluIGEgdGhyZWFkLXNhZmUNCisJLy8vIG1hbm5lciwgc3VpdGFibGUgZm9yIGluY2x1c2lvbiBpbiBtdWx0aXBsZSB7QGxpbmsgQ2hhaW59cyB0aGF0IG1pZ2h0IGJlDQorCS8vLyBwcm9jZXNzZWQgYnkgZGlmZmVyZW50IHRocmVhZHMgc2ltdWx0YW5lb3VzbHkuICBJbiBnZW5lcmFsLCB0aGlzIGltcGxpZXMNCisJLy8vIHRoYXQge0BsaW5rIENvbW1hbmR9IGNsYXNzZXMgc2hvdWxkIG5vdCBtYWludGFpbiBzdGF0ZSBpbmZvcm1hdGlvbiBpbg0KKwkvLy8gaW5zdGFuY2UgdmFyaWFibGVzLiAgSW5zdGVhZCwgc3RhdGUgaW5mb3JtYXRpb24gc2hvdWxkIGJlIG1haW50YWluZWQgdmlhDQorCS8vLyBzdWl0YWJsZSBtb2RpZmljYXRpb25zIHRvIHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSB7QGxpbmsgQ29udGV4dH0gdGhhdCBpcw0KKwkvLy8gcGFzc2VkIHRvIHRoZSA8Y29kZT5FeGVjdXRlPC9jb2RlPiBjb21tYW5kLjwvcD4NCisJLy8vDQorCS8vLyA8cD57QGxpbmsgQ29tbWFuZH0gaW1wbGVtZW50YXRpb25zIHR5cGljYWxseSByZXRyaWV2ZSBhbmQgc3RvcmUgc3RhdGUNCisJLy8vIGluZm9ybWF0aW9uIGluIHRoZSB7QGxpbmsgQ29udGV4dH0gaW5zdGFuY2UgdGhhdCBpcyBwYXNzZWQgYXMgYSBwYXJhbWV0ZXINCisJLy8vIHRvIHRoZSA8Y29kZT5FeGVjdXRlPC9jb2RlPiBtZXRob2QsIHVzaW5nIHBhcnRpY3VsYXIga2V5cyBpbnRvIHRoZQ0KKwkvLy8gPGNvZGU+SURpY3Rpb25hcnk8L2NvZGU+IHRoYXQgY2FuIGJlIGFjcXVpcmVkIHZpYSANCisJLy8vIDxjb2RlPkNvbnRleHQuS2V5czwvY29kZT4uIA0KKwkvLy8gDQorCS8vLyA8cD5UbyBpbXByb3ZlIGludGVyb3BlcmFiaWxpdHkgb2YNCisJLy8vIHtAbGluayBDb21tYW5kfSBpbXBsZW1lbnRhdGlvbnMsIGEgdXNlZnVsIGRlc2lnbiBwYXR0ZXJuIGlzIHRvIGV4cG9zZSB0aGUNCisJLy8vIGtleSB2YWx1ZXMgdXNlZCBhcyBQcm9wZXJ0aWVzIG9mIHRoZSB7QGxpbmsgQ29tbWFuZH0NCisJLy8vIGltcGxlbWVudGF0aW9uIGNsYXNzIGl0c2VsZi4gIEZvciBleGFtcGxlLCBhIHtAbGluayBDb21tYW5kfSB0aGF0IHJlcXVpcmVzDQorCS8vLyBhbiBpbnB1dCBhbmQgYW4gb3V0cHV0IGtleSBtaWdodCBpbXBsZW1lbnQgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOjwvcD4NCisJLy8vDQorCS8vLyA8cHJlPg0KKwkvLy8gICBwcml2YXRlIHN0cmluZyBfSW5wdXRLZXkgPSAiaW5wdXQiOw0KKwkvLy8gICBwdWJsaWMgc3RyaW5nIElucHV0S2V5IHsNCisJLy8vICAgIGdldCB7IHJldHVybiBfSW5wdXRLZXk7IH0NCisJLy8vCSAgIHNldCB7IF9JbnB1dEtleSA9IHZhbHVlOyB9DQorCS8vLyAgIH0NCisJLy8vDQorCS8vLyAgIHByaXZhdGUgc3RyaW5nIF9PdXRwdXRLZXkgPSAib3V0cHV0IjsNCisJLy8vICAgcHVibGljIHN0cmluZyBPdXRwdXRLZXkgew0KKwkvLy8gICAgZ2V0IHsgcmV0dXJuIF9PdXRwdXRLZXk7IH0NCisJLy8vCSAgIHNldCB7IF9PdXRwdXRLZXkgPSB2YWx1ZTsgfQ0KKwkvLy8gICB9DQorCS8vLyA8L3ByZT4NCisJLy8vDQorCS8vLyA8cD5BbmQgdGhlIG9wZXJhdGlvbiBvZiBhY2Nlc3NpbmcgdGhlICJpbnB1dCIgaW5mb3JtYXRpb24gaW4gdGhlIGNvbnRleHQNCisJLy8vIHdvdWxkIGJlIGV4ZWN1dGVkIGJ5IGNhbGxpbmc6PC9wPg0KKwkvLy8NCisJLy8vIDxwcmU+DQorCS8vLyAgIHN0cmluZyBpbnB1dCA9IGNvbnRleHRbZ2V0SW5wdXRLZXkoKV0gYXMgc3RyaW5nOw0KKwkvLy8gPC9wcmU+DQorCS8vLw0KKwkvLy8gPHA+aW5zdGVhZCBvZiBoYXJkIGNvZGluZyB0aGUga2V5IGF0dHJpYnV0ZS4gIFRoZSB1c2Ugb2YgdGhlICJLZXkiDQorCS8vLyBzdWZmaXggb24gc3VjaCBwcm9wZXJ0eSBuYW1lcyBpcyBhIHVzZWZ1bCBjb252ZW50aW9uIHRvIGlkZW50aWZ5IHByb3BlcnRpZXMNCisJLy8vIGJlaW5nIHVzZWQgaW4gdGhpcyBmYXNoaW9uLCBhcyBvcHBvc2VkIHRvIHByb3BlcnRpZXMgdGhhdCBzaW1wbHkNCisJLy8vIGNvbmZpZ3VyZSB0aGUgaW50ZXJuYWwgb3BlcmF0aW9uIG9mIHRoaXMge0BsaW5rIENvbW1hbmR9LjwvcD4NCisJLy8vIDwvcmVtYXJrcz4NCisJcHVibGljIGludGVyZmFjZSBJQ29tbWFuZA0KKwl7DQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRXhlY3V0ZSBhIHVuaXQgb2YgcHJvY2Vzc2luZyB3b3JrIHRvIGJlIHBlcmZvcm1lZC4gIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz4NCisJCS8vLyBUaGlzIHtAbGluayBJQ29tbWFuZH0gbWF5IGVpdGhlciBjb21wbGV0ZSB0aGUgcmVxdWlyZWQgcHJvY2Vzc2luZw0KKwkJLy8vIGFuZCByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4sIG9yIGRlbGVnYXRlIHJlbWFpbmluZyBwcm9jZXNzaW5nDQorCQkvLy8gdG8gdGhlIG5leHQge0BsaW5rIElDb21tYW5kfSBpbiBhIHtAbGluayBJQ2hhaW59IGNvbnRhaW5pbmcgdGhpcw0KKwkJLy8vIHtAbGluayBJQ29tbWFuZH0gYnkgcmV0dXJuaW5nIDxjb2RlPmZhbHNlPC9jb2RlPg0KKwkJLy8vIDwvcmVtYXJrcz4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+VGhlIHtAbGluayBJQ29udGV4dH0gdG8gYmUgcHJvY2Vzc2VkIGJ5IHRoaXMNCisJCS8vLyAge0BsaW5rIElDb21tYW5kfTwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+DQorCQkvLy8gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIHByb2Nlc3Npbmcgb2YgdGhpcyB7QGxpbmsgQ29udGV4dH0NCisJCS8vLyAgaGFzIGJlZW4gY29tcGxldGVkLCBvciA8Y29kZT5mYWxzZTwvY29kZT4gaWYgdGhlIHByb2Nlc3NpbmcNCisJCS8vLyAgb2YgdGhpcyB7QGxpbmsgSUNvbnRleHR9IHNob3VsZCBiZSBkZWxlZ2F0ZWQgdG8gYSBzdWJzZXF1ZW50DQorCQkvLy8gIHtAbGluayBJQ29tbWFuZH0gaW4gYW4gZW5jbG9zaW5nIHtAbGluayBJQ2hhaW59DQorCQkvLy8gPC9yZXR1cm5zPg0KKwkJYm9vbCBFeGVjdXRlKElDb250ZXh0IGNvbnRleHQpOw0KKw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L0NvcmUvSUNvbnRleHQuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9Db3JlL0lDb250ZXh0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYjZkNDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9Db3JlL0lDb250ZXh0LmNzCkBAIC0wLDAgKzEsNTAgQEAKKy8qDQorICogQ29weXJpZ2h0IDIwMDMtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24NCisgKg0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKg0KKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKg0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8NCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQorDQorbmFtZXNwYWNlIEFnaWxpdHkuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gQSB7QGxpbmsgQ29udGV4dH0gcmVwcmVzZW50cyB0aGUgc3RhdGUgaW5mb3JtYXRpb24gdGhhdCBpcw0KKwkvLy8gYWNjZXNzZWQgYW5kIG1hbmlwdWxhdGVkIGJ5IHRoZSBleGVjdXRpb24gb2YgYSB7QGxpbmsgSUNvbW1hbmR9IG9yIGENCisJLy8vIHtAbGluayBJQ2hhaW59LiAgDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyA8cmVtYXJrcz4NCisJLy8vIDxwPlNwZWNpYWxpemVkIGltcGxlbWVudGF0aW9ucyBvZiB7QGxpbmsgSUNvbnRleHR9IG1heQ0KKwkvLy8gYWRkIHByb3BlcnRpZXMgdGhhdCBjb250YWluIHR5cGVzYWZlIGFjY2Vzc29ycyB0byBpbmZvcm1hdGlvbiB0aGF0IA0KKwkvLy8gaXMgcmVsZXZhbnQgdG8gYSBwYXJ0aWN1bGFyIHVzZSBjYXNlIGZvciB0aGlzIGNvbnRleHQsIGFuZC9vciBhZGQgDQorCS8vLyBvcGVyYXRpb25zIHRoYXQgYWZmZWN0IHRoZSBzdGF0ZSBpbmZvcm1hdGlvbiB0aGF0IGlzIHNhdmVkIGluIHRoZSANCisJLy8vIGNvbnRleHQuPC9wPg0KKwkvLy8gDQorCS8vLyA8cD5JbXBsZW1lbnRhdGlvbnMgb2Yge0BsaW5rIElDb250ZXh0fSBtdXN0IGFsc28gaW1wbGVtZW50IGFsbCBvZiB0aGUNCisJLy8vIHJlcXVpcmVkIGFuZCBvcHRpb25hbCBjb250cmFjdHMgb2YgdGhlIDxjb2RlPklEaWN0aW9uYXJ5PC9jb2RlPg0KKwkvLy8gaW50ZXJmYWNlLjwvcD4NCisJLy8vDQorCS8vLyA8cD5UbyBwcm90ZWN0IGFwcGxpY2F0aW9ucyBmcm9tIGV2b2x1dGlvbiBvZiB0aGlzIGludGVyZmFjZSwgc3BlY2lhbGl6ZWQNCisJLy8vIGltcGxlbWVudGF0aW9ucyBvZiB7QGxpbmsgQ29udGV4dH0gc2hvdWxkIGdlbmVyYWxseSBiZSBjcmVhdGVkIGJ5IGV4dGVuZGluZw0KKwkvLy8gdGhlIHByb3ZpZGVkIGJhc2UgY2xhc3MgKHtAbGluayBBZ2lsaXR5LkNvcmUuQ29udGV4dH0pDQorCS8vLyByYXRoZXIgdGhhbiBkaXJlY3RseSBpbXBsZW1lbnRpbmcgdGhpcyBpbnRlcmZhY2UuPC9wPg0KKwkvLy8NCisJLy8vIDxwPkFwcGxpY2F0aW9ucyBzaG91bGQgPHN0cm9uZz5OT1Q8L3N0cm9uZz4gYXNzdW1lIHRoYXQNCisJLy8vIHtAbGluayBDb250ZXh0fSBpbXBsZW1lbnRhdGlvbnMsIG9yIHRoZSB2YWx1ZXMgc3RvcmVkIGluIGl0cw0KKwkvLy8gYXR0cmlidXRlcywgbWF5IGJlIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgdGhyZWFkcw0KKwkvLy8gc2ltdWx0YW5lb3VzbHksIHVubGVzcyB0aGlzIGlzIGV4cGxpY2l0bHkgZG9jdW1lbnRlZCBmb3IgYSBwYXJ0aWN1bGFyDQorCS8vLyBpbXBsZW1lbnRhdGlvbi48L3A+DQorCS8vLyA8L3JlbWFya3M+DQorCXB1YmxpYyBpbnRlcmZhY2UgSUNvbnRleHQgOiBJRGljdGlvbmFyeQ0KKwl7DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvQ29yZS9JRmlsdGVyLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvQ29yZS9JRmlsdGVyLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViOGU5OTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9Db3JlL0lGaWx0ZXIuY3MKQEAgLTAsMCArMSw0MSBAQAorLyoNCisgKiBDb3B5cmlnaHQgMjAwMy0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbg0KKyAqDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqDQorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIFN5c3RlbTsNCisNCituYW1lc3BhY2UgQWdpbGl0eS5Db3JlDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBBIHtAbGluayBGaWx0ZXJ9IGlzIGEgc3BlY2lhbGl6ZWQge0BsaW5rIENvbW1hbmR9IHRoYXQgYWxzbyBleHBlY3RzIHRoZSB7QGxpbmsgQ2hhaW59IHRoYXQgaXMgZXhlY3V0aW5nIGl0IHRvIGNhbGwgdGhlIDxjb2RlPnBvc3Rwcm9jZXNzKCk8L2NvZGU+IG1ldGhvZCBpZiBpdCBjYWxsZWQgdGhlIDxjb2RlPmV4ZWN1dGUoKTwvY29kZT4gbWV0aG9kLiAgDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyA8cmVtYXJrcz4NCisJLy8vIDxwPlRoaXMgY29udHJhY3QgbXVzdCBiZSBmdWxmaWxsZWQgcmVnYXJkbGVzcyBvZiBhbnkgcG9zc2libGUgZXhjZXB0aW9ucyB0aHJvd24gYnkgdGhlIDxjb2RlPkV4ZWN1dGU8L2NvZGU+IG1ldGhvZCBvZiB0aGlzIHtAbGluayBJQ29tbWFuZH0sIG9yIGFueSBzdWJzZXF1ZW50IHtAbGluayBJQ29tbWFuZH0gd2hvc2UgPGNvZGU+RXhlY3V0ZTwvY29kZT4gbWV0aG9kIGlzIGNhbGxlZC4gIA0KKwkvLy8gVGhlIG93bmluZyB7QGxpbmsgSUNoYWlufSBtdXN0IGNhbGwgdGhlIDxjb2RlPlBvc3RQcm9jZXNzPC9jb2RlPiBtZXRob2Qgb2YgZWFjaCB7QGxpbmsgSUZpbHRlcn0gaW4gYSB7QGxpbmsgSUNoYWlufSBpbiByZXZlcnNlIG9yZGVyIG9mIHRoZSBpbnZvY2F0aW9uIG9mIHRoZWlyIDxjb2RlPkV4ZWN1dGU8L2NvZGU+IG1ldGhvZHMuPC9wPg0KKwkvLy8gPHA+VGhlIG1vc3QgY29tbW9uIHVzZSBjYXNlIGZvciBhIHtAbGluayBJRmlsdGVyfSwgYXMgb3Bwb3NlZCB0byBhIHtAbGluayBJQ29tbWFuZH0sIGlzIHdoZXJlIHBvdGVudGlhbGx5IGV4cGVuc2l2ZSByZXNvdXJjZXMgbXVzdCBiZSBhY3F1aXJlZCBhbmQgaGVsZCB1bnRpbCB0aGUgcHJvY2Vzc2luZyBvZiBhIHBhcnRpY3VsYXIgcmVxdWVzdCBoYXMgYmVlbiBjb21wbGV0ZWQsIGV2ZW4gaWYgZXhlY3V0aW9uIGlzIGRlbGVnYXRlZCB0byBhIHN1YnNlcXVlbnQge0BsaW5rIENvbW1hbmR9IHZpYSB0aGUgPGNvZGU+RXhlY3V0ZTwvY29kZT4gcmV0dXJuaW5nIDxjb2RlPmZhbHNlPC9jb2RlPi4gIA0KKwkvLy8gQSB7QGxpbmsgSUZpbHRlcn0gY2FuIHJlbGlhYmx5IHJlbGVhc2Ugc3VjaCByZXNvdXJjZXMgaW4gdGhlIDxjb2RlPlBvc3RQcm9jZXNzPC9jb2RlPiBtZXRob2QsIHdoaWNoIGlzIGd1YXJhbnRlZWQgdG8gYmUgY2FsbGVkIGJ5IHRoZSBvd25pbmcge0BsaW5rIElDaGFpbn0uPC9wPg0KKwkvLy8gPHA+QHZlcnNpb24gJFJldmlzaW9uJCAkRGF0ZSQ8L3A+DQorCS8vLyA8L3JlbWFya3M+DQorCS8vLyAgDQorCXB1YmxpYyBpbnRlcmZhY2UgSUZpbHRlciA6IElDb21tYW5kDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBFeGVjdXRlIGFueSBjbGVhbnVwIGFjdGl2aXRpZXMsIHN1Y2ggYXMgcmVsZWFzaW5nIHJlc291cmNlcyB0aGF0IHdlcmUgYWNxdWlyZWQgZHVyaW5nIHRoZSA8Y29kZT5leGVjdXRlKCk8L2NvZGU+IG1ldGhvZCBvZiB0aGlzIHtAbGluayBGaWx0ZXJ9IGluc3RhbmNlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+VGhlIHtAbGluayBDb250ZXh0fSB0byBiZSBwcm9jZXNzZWQgYnkgdGhpcyB7QGxpbmsgRmlsdGVyfTwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImV4Y2VwdGlvbiI+VGhlIDxjb2RlPkV4Y2VwdGlvbjwvY29kZT4gKGlmIGFueSkgdGhhdCB3YXMgdGhyb3duICBieSB0aGUgbGFzdCB7QGxpbmsgQ29tbWFuZH0gdGhhdCB3YXMgZXhlY3V0ZWQ7IG90aGVyd2lzZSA8Y29kZT5udWxsPC9jb2RlPjwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+SWYgYSBub24tbnVsbCA8Y29kZT5leGNlcHRpb248L2NvZGU+IHdhcyAiaGFuZGxlZCIgYnkgdGhpcyAgbWV0aG9kIChhbmQgdGhlcmVmb3JlIG5lZWQgbm90IGJlIHJldGhyb3duKSwgcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+OyAgb3RoZXJ3aXNlIHJldHVybiA8Y29kZT5mYWxzZTwvY29kZT48L3JldHVybnM+DQorCQlib29sIFBvc3RQcm9jZXNzKElDb250ZXh0IGNvbnRleHQsIEV4Y2VwdGlvbiBleGNlcHRpb24pOw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L0xJQ0VOU0UudHh0IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvTElDRU5TRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY0NTY5NQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L0xJQ0VOU0UudHh0CkBAIC0wLDAgKzEsMjAyIEBACisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0CisgICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCisKKyAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgorCisgICAxLiBEZWZpbml0aW9ucy4KKworICAgICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKKyAgICAgIGFuZCBkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgorCisgICAgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQorICAgICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgorCisgICAgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCisgICAgICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCisgICAgICBjb250cm9sIHdpdGggdGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAorICAgICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCisgICAgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvcgorICAgICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCisgICAgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgorCisgICAgICAiWW91IiAob3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisgICAgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgorCisgICAgICAiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKKyAgICAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KKyAgICAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisKKyAgICAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCisgICAgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0CisgICAgICBub3QgbGltaXRlZCB0byBjb21waWxlZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCisgICAgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCisKKyAgICAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3b3JrIG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCisgICAgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCisgICAgICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsKKyAgICAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdykuCisKKyAgICAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBvciBPYmplY3QKKyAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKKyAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKKyAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLiBGb3IgdGhlIHB1cnBvc2VzCisgICAgICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KKyAgICAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKKyAgICAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCisKKyAgICAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCisgICAgICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMgb3IgYWRkaXRpb25zCisgICAgICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0aGF0IGlzIGludGVudGlvbmFsbHkKKyAgICAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKKyAgICAgIG9yIGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFsZiBvZgorICAgICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJzdWJtaXR0ZWQiCisgICAgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CisgICAgICB0byB0aGUgTGljZW5zb3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bworICAgICAgY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtcywKKyAgICAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCisgICAgICBMaWNlbnNvciBmb3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKKyAgICAgIGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3aXNlCisgICAgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKKworICAgICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFuIExpY2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKyAgICAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAorICAgICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCisKKyAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKyAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAorICAgICAgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCisgICAgICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLgorCisgICAzLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKyAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisgICAgICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhhdmUgbWFkZSwKKyAgICAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3JrLAorICAgICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKKyAgICAgIGJ5IHN1Y2ggQ29udHJpYnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCisgICAgICBDb250cmlidXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpCisgICAgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQorICAgICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKKyAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKKyAgICAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CisgICAgICBvciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vuc2VzCisgICAgICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFsbCB0ZXJtaW5hdGUKKyAgICAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKworICAgNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUKKyAgICAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAorICAgICAgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKKyAgICAgIG1lZXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCisgICAgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgorICAgICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5IG9mIHRoaXMgTGljZW5zZTsgYW5kCisKKyAgICAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKKyAgICAgICAgICBzdGF0aW5nIHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKKworICAgICAgKGMpIFlvdSBtdXN0IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCisgICAgICAgICAgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAorICAgICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCisgICAgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZgorICAgICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKKworICAgICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQgb2YgaXRzCisgICAgICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUgbXVzdAorICAgICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAorICAgICAgICAgIHdpdGhpbiBzdWNoIE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAorICAgICAgICAgIHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0IG9uZQorICAgICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCisgICAgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgorICAgICAgICAgIGRvY3VtZW50YXRpb24sIGlmIHByb3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAorICAgICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKKyAgICAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBwZWFyLiBUaGUgY29udGVudHMKKyAgICAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCisgICAgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KKyAgICAgICAgICBub3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQorICAgICAgICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3JrLCBwcm92aWRlZAorICAgICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAorICAgICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5zZS4KKworICAgICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCisgICAgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCisgICAgICBmb3IgdXNlLCByZXByb2R1Y3Rpb24sIG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCisgICAgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKKyAgICAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aAorICAgICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4KKworICAgNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAorICAgICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCisgICAgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCisgICAgICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5CisgICAgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAorICAgICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25zLgorCisgICA2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCisgICAgICBuYW1lcywgdHJhZGVtYXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCisgICAgICBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVzY3JpYmluZyB0aGUKKyAgICAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgorCisgICA3LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKKyAgICAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKKyAgICAgIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisgICAgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucworICAgICAgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQorICAgICAgUEFSVElDVUxBUiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCisgICAgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKKyAgICAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KKworICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCisgICAgICB3aGV0aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwKKyAgICAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVyYXRlIGFuZCBncm9zc2x5CisgICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQorICAgICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAorICAgICAgaW5jaWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBhCisgICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCisgICAgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCisgICAgICB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAorICAgICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgorICAgICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgorCisgICA5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCisgICAgICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLAorICAgICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKKyAgICAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCisgICAgICBMaWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBhY3Qgb25seQorICAgICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxpdHksIG5vdCBvbiBiZWhhbGYKKyAgICAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKKyAgICAgIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQorICAgICAgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgorICAgICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCisKKyAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUworCisgICBBUFBFTkRJWDogSG93IHRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmsuCisKKyAgICAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCisgICAgICBib2lsZXJwbGF0ZSBub3RpY2UsIHdpdGggdGhlIGZpZWxkcyBlbmNsb3NlZCBieSBicmFja2V0cyAiW10iCisgICAgICByZXBsYWNlZCB3aXRoIHlvdXIgb3duIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uLiAoRG9uJ3QgaW5jbHVkZQorICAgICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKKyAgICAgIGNvbW1lbnQgc3ludGF4IGZvciB0aGUgZmlsZSBmb3JtYXQuIFdlIGFsc28gcmVjb21tZW5kIHRoYXQgYQorICAgICAgZmlsZSBvciBjbGFzcyBuYW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBwdXJwb3NlIGJlIGluY2x1ZGVkIG9uIHRoZQorICAgICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCisgICAgICBpZGVudGlmaWNhdGlvbiB3aXRoaW4gdGhpcmQtcGFydHkgYXJjaGl2ZXMuCisKKyAgIENvcHlyaWdodCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0IG93bmVyXQorCisgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvTk9USUNFLnR4dCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L05PVElDRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzNjNDYzNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L05PVElDRS50eHQKQEAgLTAsMCArMSw2IEBACitOT1RJQ0UNCisNCitUaGlzIHNvZnR3YXJlIGNvbnNpc3RzIG9mIHZvbHVudGFyeSBjb250cmlidXRpb25zIG1hZGUgYnkgbWFueQ0KK2luZGl2aWR1YWxzIG9uIGJlaGFsZiBvZiB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gYW5kIHdhcyANCitvcmlnaW5hbGx5IGJhc2VkLCBpbiBwYXJ0LCBvbiBwdWJsaWMgZG9tYWluIHNvZnR3YXJlIHdyaXR0ZW4gYnkgdGhlIA0KK09rbGFob21hIERlcGFydG1lbnQgb2YgRW52aXJvbm1lbnRhbCBRdWFsaXR5LCBPa2xhaG9tYSBDaXR5IE9LIFVTLg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L1Rlc3QvQXNzZW1ibHlJbmZvLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9Bc3NlbWJseUluZm8uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVhZjk0NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L1Rlc3QvQXNzZW1ibHlJbmZvLmNzCkBAIC0wLDAgKzEsNTYgQEAKK3VzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOw0KKy8vDQorLy8gR2VuZXJhbCBJbmZvcm1hdGlvbiBhYm91dCBhbiBhc3NlbWJseSBpcyBjb250cm9sbGVkIHRocm91Z2ggdGhlIGZvbGxvd2luZyANCisvLyBzZXQgb2YgYXR0cmlidXRlcy4gQ2hhbmdlIHRoZXNlIGF0dHJpYnV0ZSB2YWx1ZXMgdG8gbW9kaWZ5IHRoZSBpbmZvcm1hdGlvbg0KKy8vIGFzc29jaWF0ZWQgd2l0aCBhbiBhc3NlbWJseS4NCisvLw0KK1thc3NlbWJseSA6IEFzc2VtYmx5VGl0bGUoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5RGVzY3JpcHRpb24oIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5Q29uZmlndXJhdGlvbigiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDb21wYW55KCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseVByb2R1Y3QoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5Q29weXJpZ2h0KCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseVRyYWRlbWFyaygiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDdWx0dXJlKCIiKV0NCisNCisvLw0KKy8vIFZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGFuIGFzc2VtYmx5IGNvbnNpc3RzIG9mIHRoZSBmb2xsb3dpbmcgZm91ciB2YWx1ZXM6DQorLy8NCisvLyAgICAgIE1ham9yIFZlcnNpb24NCisvLyAgICAgIE1pbm9yIFZlcnNpb24gDQorLy8gICAgICBCdWlsZCBOdW1iZXINCisvLyAgICAgIFJldmlzaW9uDQorLy8NCisvLyBZb3UgY2FuIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgb3IgeW91IGNhbiBkZWZhdWx0IHRoZSBSZXZpc2lvbiBhbmQgQnVpbGQgTnVtYmVycyANCisvLyBieSB1c2luZyB0aGUgJyonIGFzIHNob3duIGJlbG93Og0KKw0KK1thc3NlbWJseSA6IEFzc2VtYmx5VmVyc2lvbigiMS4wLioiKV0NCisNCisvLw0KKy8vIEluIG9yZGVyIHRvIHNpZ24geW91ciBhc3NlbWJseSB5b3UgbXVzdCBzcGVjaWZ5IGEga2V5IHRvIHVzZS4gUmVmZXIgdG8gdGhlIA0KKy8vIE1pY3Jvc29mdCAuTkVUIEZyYW1ld29yayBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGFzc2VtYmx5IHNpZ25pbmcuDQorLy8NCisvLyBVc2UgdGhlIGF0dHJpYnV0ZXMgYmVsb3cgdG8gY29udHJvbCB3aGljaCBrZXkgaXMgdXNlZCBmb3Igc2lnbmluZy4gDQorLy8NCisvLyBOb3RlczogDQorLy8gICAoKikgSWYgbm8ga2V5IGlzIHNwZWNpZmllZCwgdGhlIGFzc2VtYmx5IGlzIG5vdCBzaWduZWQuDQorLy8gICAoKikgS2V5TmFtZSByZWZlcnMgdG8gYSBrZXkgdGhhdCBoYXMgYmVlbiBpbnN0YWxsZWQgaW4gdGhlIENyeXB0byBTZXJ2aWNlDQorLy8gICAgICAgUHJvdmlkZXIgKENTUCkgb24geW91ciBtYWNoaW5lLiBLZXlGaWxlIHJlZmVycyB0byBhIGZpbGUgd2hpY2ggY29udGFpbnMNCisvLyAgICAgICBhIGtleS4NCisvLyAgICgqKSBJZiB0aGUgS2V5RmlsZSBhbmQgdGhlIEtleU5hbWUgdmFsdWVzIGFyZSBib3RoIHNwZWNpZmllZCwgdGhlIA0KKy8vICAgICAgIGZvbGxvd2luZyBwcm9jZXNzaW5nIG9jY3VyczoNCisvLyAgICAgICAoMSkgSWYgdGhlIEtleU5hbWUgY2FuIGJlIGZvdW5kIGluIHRoZSBDU1AsIHRoYXQga2V5IGlzIHVzZWQuDQorLy8gICAgICAgKDIpIElmIHRoZSBLZXlOYW1lIGRvZXMgbm90IGV4aXN0IGFuZCB0aGUgS2V5RmlsZSBkb2VzIGV4aXN0LCB0aGUga2V5IA0KKy8vICAgICAgICAgICBpbiB0aGUgS2V5RmlsZSBpcyBpbnN0YWxsZWQgaW50byB0aGUgQ1NQIGFuZCB1c2VkLg0KKy8vICAgKCopIEluIG9yZGVyIHRvIGNyZWF0ZSBhIEtleUZpbGUsIHlvdSBjYW4gdXNlIHRoZSBzbi5leGUgKFN0cm9uZyBOYW1lKSB1dGlsaXR5Lg0KKy8vICAgICAgIFdoZW4gc3BlY2lmeWluZyB0aGUgS2V5RmlsZSwgdGhlIGxvY2F0aW9uIG9mIHRoZSBLZXlGaWxlIHNob3VsZCBiZQ0KKy8vICAgICAgIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IG91dHB1dCBkaXJlY3Rvcnkgd2hpY2ggaXMNCisvLyAgICAgICAlUHJvamVjdCBEaXJlY3RvcnklXG9ialw8Y29uZmlndXJhdGlvbj4uIEZvciBleGFtcGxlLCBpZiB5b3VyIEtleUZpbGUgaXMNCisvLyAgICAgICBsb2NhdGVkIGluIHRoZSBwcm9qZWN0IGRpcmVjdG9yeSwgeW91IHdvdWxkIHNwZWNpZnkgdGhlIEFzc2VtYmx5S2V5RmlsZSANCisvLyAgICAgICBhdHRyaWJ1dGUgYXMgW2Fzc2VtYmx5OiBBc3NlbWJseUtleUZpbGUoIi4uXFwuLlxcbXlrZXkuc25rIildDQorLy8gICAoKikgRGVsYXkgU2lnbmluZyBpcyBhbiBhZHZhbmNlZCBvcHRpb24gLSBzZWUgdGhlIE1pY3Jvc29mdCAuTkVUIEZyYW1ld29yaw0KKy8vICAgICAgIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcy4NCisvLw0KK1thc3NlbWJseSA6IEFzc2VtYmx5RGVsYXlTaWduKGZhbHNlKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseUtleUZpbGUoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5S2V5TmFtZSgiIildClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9Db21tYW5kVGVzdC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L1Rlc3QvQ29tbWFuZFRlc3QuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2MxNDQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L1Rlc3QvQ29tbWFuZFRlc3QuY3MKQEAgLTAsMCArMSw2OSBAQAordXNpbmcgU3lzdGVtOw0KK3VzaW5nIE5Vbml0LkZyYW1ld29yazsNCisNCituYW1lc3BhY2UgQWdpbGl0eS5Db3JlDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBUZXN0IHN1aXRlIGZvciB0aGUgdmFyaW91cyBUZXN0KkNvbW1hbmRzLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlbVGVzdEZpeHR1cmVdDQorCXB1YmxpYyBjbGFzcyBDb21tYW5kVGVzdA0KKwl7DQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIE1vZGlmeUNvbW1hbmQoKQ0KKwkJew0KKwkJCWNvbnN0IHN0cmluZyBWQUxVRSA9IFRlc3RJbnB1dENvbW1hbmQuVkFMVUU7DQorCQkJVGVzdENvbnRleHQgY29udGV4dCA9IG5ldyBUZXN0Q29udGV4dCgpOw0KKwkJCWNvbnRleHQuQWRkKGNvbnRleHQuSW5wdXRLZXksIFZBTFVFKTsNCisJCQlJQ29tbWFuZCBjb21tYW5kID0gbmV3IFRlc3RNb2RpZnlDb21tYW5kKCk7DQorCQkJY29tbWFuZC5FeGVjdXRlKGNvbnRleHQpOw0KKwkJCXN0cmluZyBvdXRwdXQgPSBjb250ZXh0W2NvbnRleHQuT3V0cHV0S2V5XSBhcyBzdHJpbmc7DQorCQkJQXNzZXJ0LklzTm90TnVsbChvdXRwdXQsICJFeHBlY3RlZCBvdXRwdXQiKTsNCisJCQlBc3NlcnQuSXNGYWxzZShWQUxVRS5FcXVhbHMob3V0cHV0KSwgIkV4cGVjdGVkIG1vZGlmaWVkIG91dHB1dCIpOw0KKwkJCXN0cmluZyBpbnB1dCA9IGNvbnRleHRbY29udGV4dC5JbnB1dEtleV0gYXMgc3RyaW5nOw0KKwkJCUFzc2VydC5Jc1RydWUoVkFMVUUuRXF1YWxzKGlucHV0KSwgIkV4cGVjdGVkICIgKyBWQUxVRSArICIgYnV0IGZvdW5kICIgKyBpbnB1dCk7DQorCQl9DQorDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIE5vdEltcGxlbWVudGVkQ29tbWFuZCgpDQorCQl7DQorCQkJVGVzdENvbnRleHQgY29udGV4dCA9IG5ldyBUZXN0Q29udGV4dCgpOw0KKwkJCUlDb21tYW5kIGNvbW1hbmQgPSBuZXcgVGVzdE5vdEltcGxlbWVudGVkQ29tbWFuZCgpOw0KKwkJCXRyeQ0KKwkJCXsNCisJCQkJY29tbWFuZC5FeGVjdXRlKGNvbnRleHQpOw0KKwkJCQlBc3NlcnQuRmFpbCgiRXhwZWN0ZWQgZXhjZXB0aW9uIik7DQorCQkJfQ0KKwkJCWNhdGNoIChOb3RJbXBsZW1lbnRlZEV4Y2VwdGlvbiBleHBlY3RlZCkNCisJCQl7DQorCQkJCUFzc2VydC5Jc05vdE51bGwoZXhwZWN0ZWQsICJFeHBlY3RlZCBleGNlcHRpb24iKTsNCisJCQl9DQorCQl9DQorDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIE5vd0NvbW1hbmQoKQ0KKwkJew0KKwkJCVRlc3RDb250ZXh0IGNvbnRleHQgPSBuZXcgVGVzdENvbnRleHQoKTsNCisJCQlJQ29tbWFuZCBjb21tYW5kID0gbmV3IFRlc3ROb3dDb21tYW5kKCk7DQorCQkJY29tbWFuZC5FeGVjdXRlKGNvbnRleHQpOw0KKwkJCURhdGVUaW1lIHRoZW4gPSAoRGF0ZVRpbWUpIGNvbnRleHRbY29udGV4dC5PdXRwdXRLZXldOw0KKwkJCWludCBncmVhdGVyID0gRGF0ZVRpbWUuTm93LkNvbXBhcmVUbyh0aGVuKTsNCisJCQlBc3NlcnQuSXNUcnVlKGdyZWF0ZXIgPj0gMCwgIkV4cGVjdGVkIG5vdyB0byBiZSBwYXN0Iik7DQorCQl9DQorDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIFJlbW92ZUNvbW1hbmQoKQ0KKwkJew0KKwkJCUlDb21tYW5kIGNvbW1hbmQgPSBuZXcgVGVzdFJlbW92ZUNvbW1hbmQoKTsNCisJCQljb25zdCBzdHJpbmcgVkFMVUUgPSBUZXN0SW5wdXRDb21tYW5kLlZBTFVFOw0KKwkJCVRlc3RDb250ZXh0IGNvbnRleHQgPSBuZXcgVGVzdENvbnRleHQoKTsNCisJCQljb250ZXh0LkFkZChjb250ZXh0LklucHV0S2V5LCBWQUxVRSk7DQorCQkJY29tbWFuZC5FeGVjdXRlKGNvbnRleHQpOw0KKwkJCXN0cmluZyBpbnB1dCA9IGNvbnRleHRbY29udGV4dC5JbnB1dEtleV0gYXMgc3RyaW5nOw0KKwkJCUFzc2VydC5Jc051bGwoaW5wdXQsICJFeHBlY3RlZCBpbnB1dCB0byBiZSByZW1vdmVkIik7DQorCQkJc3RyaW5nIG91dHB1dCA9IGNvbnRleHRbY29udGV4dC5PdXRwdXRLZXldIGFzIHN0cmluZzsNCisJCQlBc3NlcnQuSXNOb3ROdWxsKG91dHB1dCwgIkV4cGVjdGVkIG5vbi1udWxsIG91dHB1dCIpOw0KKwkJCUFzc2VydC5Jc1RydWUoVkFMVUUuRXF1YWxzKG91dHB1dCksICJFeHBlY3RlZCAiICsgVkFMVUUgKyAiIGJ1dCBmb3VuZCAiICsgb3V0cHV0KTsNCisJCX0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9UZXN0L1Rlc3QuY3Nwcm9qIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9UZXN0LmNzcHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDcwMWNjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9UZXN0LmNzcHJvagpAQCAtMCwwICsxLDE2MSBAQAorPFZpc3VhbFN0dWRpb1Byb2plY3Q+DQorICAgIDxDU0hBUlANCisgICAgICAgIFByb2plY3RUeXBlID0gIkxvY2FsIg0KKyAgICAgICAgUHJvZHVjdFZlcnNpb24gPSAiNy4xMC4zMDc3Ig0KKyAgICAgICAgU2NoZW1hVmVyc2lvbiA9ICIyLjAiDQorICAgICAgICBQcm9qZWN0R3VpZCA9ICJ7NTJCNjJDNzAtQTM5RS00OEJBLTk3NTktREIzM0RCOEYwOTlGfSINCisgICAgPg0KKyAgICAgICAgPEJ1aWxkPg0KKyAgICAgICAgICAgIDxTZXR0aW5ncw0KKyAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbkljb24gPSAiIg0KKyAgICAgICAgICAgICAgICBBc3NlbWJseUtleUNvbnRhaW5lck5hbWUgPSAiIg0KKyAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiQWdpbGl0eS5UZXN0Ig0KKyAgICAgICAgICAgICAgICBBc3NlbWJseU9yaWdpbmF0b3JLZXlGaWxlID0gIiINCisgICAgICAgICAgICAgICAgRGVmYXVsdENsaWVudFNjcmlwdCA9ICJKU2NyaXB0Ig0KKyAgICAgICAgICAgICAgICBEZWZhdWx0SFRNTFBhZ2VMYXlvdXQgPSAiR3JpZCINCisgICAgICAgICAgICAgICAgRGVmYXVsdFRhcmdldFNjaGVtYSA9ICJJRTUwIg0KKyAgICAgICAgICAgICAgICBEZWxheVNpZ24gPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgIE91dHB1dFR5cGUgPSAiTGlicmFyeSINCisgICAgICAgICAgICAgICAgUHJlQnVpbGRFdmVudCA9ICIiDQorICAgICAgICAgICAgICAgIFBvc3RCdWlsZEV2ZW50ID0gIiQoU29sdXRpb25EaXIpcG9zdGJ1aWxkLmJhdCAgJChUYXJnZXREaXIpICAkKFRhcmdldE5hbWUpICAkKFNvbHV0aW9uTmFtZSkgICQoU29sdXRpb25EaXIpIg0KKyAgICAgICAgICAgICAgICBSb290TmFtZXNwYWNlID0gIkFnaWxpdHkuQ29yZSINCisgICAgICAgICAgICAgICAgUnVuUG9zdEJ1aWxkRXZlbnQgPSAiT25CdWlsZFN1Y2Nlc3MiDQorICAgICAgICAgICAgICAgIFN0YXJ0dXBPYmplY3QgPSAiIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICAgICAgPENvbmZpZw0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJEZWJ1ZyINCisgICAgICAgICAgICAgICAgICAgIEFsbG93VW5zYWZlQmxvY2tzID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgQmFzZUFkZHJlc3MgPSAiMjg1MjEyNjcyIg0KKyAgICAgICAgICAgICAgICAgICAgQ2hlY2tGb3JPdmVyZmxvd1VuZGVyZmxvdyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIENvbmZpZ3VyYXRpb25PdmVycmlkZUZpbGUgPSAiIg0KKyAgICAgICAgICAgICAgICAgICAgRGVmaW5lQ29uc3RhbnRzID0gIkRFQlVHO1RSQUNFIg0KKyAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnRhdGlvbkZpbGUgPSAiIg0KKyAgICAgICAgICAgICAgICAgICAgRGVidWdTeW1ib2xzID0gInRydWUiDQorICAgICAgICAgICAgICAgICAgICBGaWxlQWxpZ25tZW50ID0gIjQwOTYiDQorICAgICAgICAgICAgICAgICAgICBJbmNyZW1lbnRhbEJ1aWxkID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgTm9TdGRMaWIgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBOb1dhcm4gPSAiIg0KKyAgICAgICAgICAgICAgICAgICAgT3B0aW1pemUgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBPdXRwdXRQYXRoID0gImJpblxEZWJ1Z1wiDQorICAgICAgICAgICAgICAgICAgICBSZWdpc3RlckZvckNvbUludGVyb3AgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBSZW1vdmVJbnRlZ2VyQ2hlY2tzID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgVHJlYXRXYXJuaW5nc0FzRXJyb3JzID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgV2FybmluZ0xldmVsID0gIjQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxDb25maWcNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiUmVsZWFzZSINCisgICAgICAgICAgICAgICAgICAgIEFsbG93VW5zYWZlQmxvY2tzID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgQmFzZUFkZHJlc3MgPSAiMjg1MjEyNjcyIg0KKyAgICAgICAgICAgICAgICAgICAgQ2hlY2tGb3JPdmVyZmxvd1VuZGVyZmxvdyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIENvbmZpZ3VyYXRpb25PdmVycmlkZUZpbGUgPSAiIg0KKyAgICAgICAgICAgICAgICAgICAgRGVmaW5lQ29uc3RhbnRzID0gIlRSQUNFIg0KKyAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnRhdGlvbkZpbGUgPSAiIg0KKyAgICAgICAgICAgICAgICAgICAgRGVidWdTeW1ib2xzID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgRmlsZUFsaWdubWVudCA9ICI0MDk2Ig0KKyAgICAgICAgICAgICAgICAgICAgSW5jcmVtZW50YWxCdWlsZCA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE5vU3RkTGliID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgTm9XYXJuID0gIiINCisgICAgICAgICAgICAgICAgICAgIE9wdGltaXplID0gInRydWUiDQorICAgICAgICAgICAgICAgICAgICBPdXRwdXRQYXRoID0gImJpblxSZWxlYXNlXCINCisgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyRm9yQ29tSW50ZXJvcCA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFJlbW92ZUludGVnZXJDaGVja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBUcmVhdFdhcm5pbmdzQXNFcnJvcnMgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBXYXJuaW5nTGV2ZWwgPSAiNCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICA8L1NldHRpbmdzPg0KKyAgICAgICAgICAgIDxSZWZlcmVuY2VzPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIlN5c3RlbSINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJTeXN0ZW0iDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlwuLlwuLlwuLlwuLlxXSU5ET1dTXE1pY3Jvc29mdC5ORVRcRnJhbWV3b3JrXHYxLjEuNDMyMlxTeXN0ZW0uZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIlN5c3RlbS5EYXRhIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIlN5c3RlbS5EYXRhIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cLi5cLi5cLi5cLi5cLi5cV0lORE9XU1xNaWNyb3NvZnQuTkVUXEZyYW1ld29ya1x2MS4xLjQzMjJcU3lzdGVtLkRhdGEuZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIlN5c3RlbS5YTUwiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3lzdGVtLlhtbCINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIi4uXC4uXC4uXC4uXC4uXC4uXC4uXFdJTkRPV1NcTWljcm9zb2Z0Lk5FVFxGcmFtZXdvcmtcdjEuMS40MzIyXFN5c3RlbS5YTUwuZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIm51bml0LmZyYW1ld29yayINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJudW5pdC5mcmFtZXdvcmsiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlwuLlwuLlwuLlwuLlxQcm9ncmFtIEZpbGVzXE5Vbml0IDIuMlxiaW5cbnVuaXQuZnJhbWV3b3JrLmRsbCINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5Rm9sZGVyS2V5ID0gImhrbG1cZG5cbnVuaXQuZnJhbWV3b3JrIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIkNvcmUiDQorICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ID0gIns3RTE1RkY3OC02NjYxLTRFRDQtQTFDQy02NDY2NDY0Nzg1NUZ9Ig0KKyAgICAgICAgICAgICAgICAgICAgUGFja2FnZSA9ICJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICA8L1JlZmVyZW5jZXM+DQorICAgICAgICA8L0J1aWxkPg0KKyAgICAgICAgPEZpbGVzPg0KKyAgICAgICAgICAgIDxJbmNsdWRlPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJBc3NlbWJseUluZm8uY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJDb21tYW5kVGVzdC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlRlc3RDaGFpbi5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlRlc3RDb21tYW5kLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiVGVzdENvbnRleHQuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJUZXN0RmlsdGVyQ29tbWFuZC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlRlc3RGaWx0ZXJIYW5kbGVyLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiVGVzdElucHV0Q29tbWFuZC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlRlc3RNb2RpZnlDb21tYW5kLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiVGVzdE5vdEltcGxlbWVudGVkQ29tbWFuZC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlRlc3ROb3dDb21tYW5kLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiVGVzdFJlbW92ZUNvbW1hbmQuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgIDwvSW5jbHVkZT4NCisgICAgICAgIDwvRmlsZXM+DQorICAgIDwvQ1NIQVJQPg0KKzwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCisNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9UZXN0L1Rlc3RDaGFpbi5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L1Rlc3QvVGVzdENoYWluLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkMmZkZjkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9UZXN0L1Rlc3RDaGFpbi5jcwpAQCAtMCwwICsxLDEyMSBAQAordXNpbmcgU3lzdGVtOw0KK3VzaW5nIE5Vbml0LkZyYW1ld29yazsNCisNCituYW1lc3BhY2UgQWdpbGl0eS5Db3JlDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBTdW1tYXJ5IGRlc2NyaXB0aW9uIGZvciBUZXN0Q2hhaW4uDQorCS8vLyA8L3N1bW1hcnk+DQorCVtUZXN0Rml4dHVyZV0NCisJcHVibGljIGNsYXNzIFRlc3RDaGFpbg0KKwl7DQorCQlwcml2YXRlIElDaGFpbiBjaGFpbjsNCisNCisJCVtTZXRVcF0NCisJCXB1YmxpYyB2b2lkIFNldFVwKCkNCisJCXsNCisJCQljaGFpbiA9IG5ldyBDaGFpbigpOw0KKwkJfQ0KKw0KKw0KKwkJLy8gVE9ETzogVGVzdCBDb25zdHJ1Y3RvcnMgYW5kIEFkZENvbW1hbmRzLg0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRlc3QgYWRkaW5nIGNvbW1hbmRzIGFuZCB0aGF0IGNoYWluICJmcmVlemVzIiBhZnRlciBleGVjdXRlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgVGVzdEFkZENvbW1hbmQoKQ0KKwkJew0KKwkJCUNoYWluIHRlc3QgPSBjaGFpbiBhcyBDaGFpbjsNCisJCQlJQ29tbWFuZFtdIGJlZm9yZSA9IHRlc3QuR2V0Q29tbWFuZHMoKTsNCisJCQlBc3NlcnQuQXJlRXF1YWwoMCwgYmVmb3JlLkxlbmd0aCwgIkV4cGVjdGVkIGFuIGVtcHR5IGNoYWluIik7DQorDQorCQkJSUNvbW1hbmQgYzEgPSBuZXcgVGVzdENvbW1hbmQoKTsNCisJCQljaGFpbi5BZGRDb21tYW5kKGMxKTsNCisNCisJCQlJQ29tbWFuZFtdIGZpcnN0ID0gdGVzdC5HZXRDb21tYW5kcygpOw0KKwkJCUFzc2VydC5BcmVFcXVhbCgxLCBmaXJzdC5MZW5ndGgsICJFeHBlY3RlZCBvbmUgbGluayBpbiB0aGUgY2hhaW4iKTsNCisNCisJCQlJQ29tbWFuZCBjMiA9IG5ldyBUZXN0Tm93Q29tbWFuZCgpOw0KKwkJCWNoYWluLkFkZENvbW1hbmQoYzIpOw0KKw0KKwkJCUlDb21tYW5kW10gc2Vjb25kID0gdGVzdC5HZXRDb21tYW5kcygpOw0KKwkJCUFzc2VydC5BcmVFcXVhbCgyLCBzZWNvbmQuTGVuZ3RoLCAiRXhwZWN0ZWQgdHdvIGxpbmtzIGluIHRoZSBjaGFpbiIpOw0KKw0KKwkJCVRlc3RDb250ZXh0IGNvbnRleHQgPSBuZXcgVGVzdENvbnRleHQoKTsNCisJCQljaGFpbi5FeGVjdXRlKGNvbnRleHQpOw0KKw0KKwkJCURhdGVUaW1lIG91dHB1dCA9IChEYXRlVGltZSkgY29udGV4dFtjb250ZXh0Lk91dHB1dEtleV07DQorCQkJQXNzZXJ0LklzTm90TnVsbChvdXRwdXQsICJFeHBlY3RlZCBvdXRwdXQiKTsNCisNCisJCQl0cnkNCisJCQl7DQorCQkJCWNoYWluLkFkZENvbW1hbmQoYzEpOw0KKwkJCQlBc3NlcnQuRmFpbCgiRXhwZWN0ZWQgZXhjZXB0aW9uIHdoZW4gYWRkaW5nIGNvbW1hbmQgdG8gZnJvemVuIGNoYWluLiIpOw0KKwkJCX0NCisJCQljYXRjaCAoRXhjZXB0aW9uIGV4cGVjdGVkKQ0KKwkJCXsNCisJCQkJLy8gRklYTUU6IEV4Y2VwdGlvbiBoYXMgdG8gYmUgc3BlY2lmaWMNCisJCQkJQXNzZXJ0LklzTm90TnVsbChleHBlY3RlZCwgIkV4cGVjdGVkIGV4Y2VwdGlvbiIpOw0KKwkJCX0NCisJCX0NCisNCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgVGVzdEV4ZWN1dGUoKQ0KKwkJew0KKwkJCWNoYWluLkFkZENvbW1hbmQobmV3IFRlc3RJbnB1dENvbW1hbmQoKSk7DQorCQkJY2hhaW4uQWRkQ29tbWFuZChuZXcgVGVzdE1vZGlmeUNvbW1hbmQoKSk7DQorCQkJVGVzdENvbnRleHQgY29udGV4dCA9IG5ldyBUZXN0Q29udGV4dCgpOw0KKwkJCWNoYWluLkV4ZWN1dGUoY29udGV4dCk7DQorCQkJc3RyaW5nIG91dHB1dCA9IGNvbnRleHRbY29udGV4dC5PdXRwdXRLZXldIGFzIHN0cmluZzsNCisJCQlBc3NlcnQuSXNOb3ROdWxsKG91dHB1dCwgIkV4cGVjdGVkIG91dHB1dCIpOw0KKwkJCXN0cmluZyBleHBlY3RlZCA9IFRlc3RJbnB1dENvbW1hbmQuVkFMVUUgKyBUZXN0TW9kaWZ5Q29tbWFuZC5TVUZGSVg7DQorCQkJQXNzZXJ0LklzVHJ1ZShleHBlY3RlZC5FcXVhbHMob3V0cHV0KSwgIkV4cGVjdGVkIG1vZGlmaWVkIG91dHB1dCIpOw0KKwkJfQ0KKw0KKwkJW1Rlc3RdDQorCQlwdWJsaWMgdm9pZCBUZXh0RXhlY3V0ZVJldmVyc2UoKQ0KKwkJew0KKwkJCWNoYWluLkFkZENvbW1hbmQobmV3IFRlc3RNb2RpZnlDb21tYW5kKCkpOw0KKwkJCWNoYWluLkFkZENvbW1hbmQobmV3IFRlc3RJbnB1dENvbW1hbmQoKSk7DQorCQkJVGVzdENvbnRleHQgY29udGV4dCA9IG5ldyBUZXN0Q29udGV4dCgpOw0KKwkJCWNoYWluLkV4ZWN1dGUoY29udGV4dCk7DQorCQkJc3RyaW5nIG91dHB1dCA9IGNvbnRleHRbY29udGV4dC5PdXRwdXRLZXldIGFzIHN0cmluZzsNCisJCQlzdHJpbmcgZXhwZWN0ZWQgPSBUZXN0TW9kaWZ5Q29tbWFuZC5TVUZGSVg7DQorCQkJQXNzZXJ0LklzVHJ1ZShleHBlY3RlZC5FcXVhbHMob3V0cHV0KSwgIkV4cGVjdGVkIG1vZGlmaWVkIHN1ZmZpeCBvbmx5Iik7DQorCQl9DQorDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIFRlc3RGaWx0ZXJDb21tYW5kKCkNCisJCXsNCisJCQlzdHJpbmcgS0VZID0gIkZJTFRFUiI7IC8vIFRlc3RGaWx0ZXJDb21tYW5kLkZJTFRFUl9LRVk7DQorCQkJY2hhaW4uQWRkQ29tbWFuZChuZXcgVGVzdEZpbHRlckNvbW1hbmQoKSk7DQorCQkJY2hhaW4uQWRkQ29tbWFuZChuZXcgVGVzdE5vdEltcGxlbWVudGVkQ29tbWFuZCgpKTsNCisJCQlJQ29udGV4dCBjb250ZXh0ID0gbmV3IFRlc3RDb250ZXh0KCk7DQorCQkJdHJ5DQorCQkJew0KKwkJCQljaGFpbi5FeGVjdXRlKGNvbnRleHQpOw0KKwkJCQlBc3NlcnQuRmFpbCgiRXhwZWN0ZWQgTm90SW1wbGVtZW50ZWRFeGNlcHRpb24iKTsNCisJCQl9DQorCQkJY2F0Y2ggKE5vdEltcGxlbWVudGVkRXhjZXB0aW9uIGV4cGVjdGVkKQ0KKwkJCXsNCisJCQkJQXNzZXJ0LklzTm90TnVsbChleHBlY3RlZCwgIkV4cGVjdGVkIGV4Y2VwdGlvbiIpOw0KKwkJCX0NCisJCQlJQ29tbWFuZCBmaWx0ZXIgPSBjb250ZXh0W0tFWV0gYXMgSUNvbW1hbmQ7DQorCQkJQXNzZXJ0LklzTnVsbChmaWx0ZXIpOw0KKwkJfQ0KKw0KKwkJW1Rlc3RdDQorCQlwdWJsaWMgdm9pZCBUZXN0RmlsdGVySGFuZGxlcigpDQorCQl7DQorCQkJc3RyaW5nIEtFWSA9ICJGSUxURVIiOyAvLyBUZXN0RmlsdGVyQ29tbWFuZC5GSUxURVJfS0VZOw0KKwkJCWNoYWluLkFkZENvbW1hbmQobmV3IFRlc3RGaWx0ZXJIYW5kbGVyKCkpOw0KKwkJCWNoYWluLkFkZENvbW1hbmQobmV3IFRlc3ROb3RJbXBsZW1lbnRlZENvbW1hbmQoKSk7DQorCQkJSUNvbnRleHQgY29udGV4dCA9IG5ldyBUZXN0Q29udGV4dCgpOw0KKwkJCWNoYWluLkV4ZWN1dGUoY29udGV4dCk7DQorCQkJTm90SW1wbGVtZW50ZWRFeGNlcHRpb24gZmlsdGVyID0gY29udGV4dFtLRVldIGFzIE5vdEltcGxlbWVudGVkRXhjZXB0aW9uOw0KKwkJCUFzc2VydC5Jc05vdE51bGwoZmlsdGVyLCAiRXhwZWN0ZWQgRXhjZXB0aW9uIHRvIGJlIHN0b3JlZC4iKTsNCisJCX0NCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9UZXN0L1Rlc3RDb21tYW5kLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9UZXN0Q29tbWFuZC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzVmMjU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9UZXN0Q29tbWFuZC5jcwpAQCAtMCwwICsxLDE0IEBACituYW1lc3BhY2UgQWdpbGl0eS5Db3JlDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBBIGRvLW5vdGhpbmcgcGFzcy10aHJvdWdoIGNvbW1hbmQuDQorCS8vLyA8L3N1bW1hcnk+DQorCXB1YmxpYyBjbGFzcyBUZXN0Q29tbWFuZCA6IElDb21tYW5kDQorCXsNCisJCXB1YmxpYyBib29sIEV4ZWN1dGUoSUNvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQk7IC8vIGRvIG5vdGhpbmcNCisJCQlyZXR1cm4gZmFsc2U7DQorCQl9DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9UZXN0Q29udGV4dC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L1Rlc3QvVGVzdENvbnRleHQuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQ0NmE3NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L1Rlc3QvVGVzdENvbnRleHQuY3MKQEAgLTAsMCArMSwyNSBAQAorbmFtZXNwYWNlIEFnaWxpdHkuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gU3VtbWFyeSBkZXNjcmlwdGlvbiBmb3IgVGVzdENvbnRleHQuDQorCS8vLyA8L3N1bW1hcnk+DQorCXB1YmxpYyBjbGFzcyBUZXN0Q29udGV4dCA6IENvbnRleHQNCisJew0KKwkJcHJpdmF0ZSBzdHJpbmcgX0lucHV0S2V5ID0gImlucHV0IjsNCisNCisJCXB1YmxpYyBzdHJpbmcgSW5wdXRLZXkNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0lucHV0S2V5OyB9DQorCQkJc2V0IHsgX0lucHV0S2V5ID0gdmFsdWU7IH0NCisNCisJCX0NCisNCisJCXByaXZhdGUgc3RyaW5nIF9PdXRwdXRLZXkgPSAib3V0cHV0IjsNCisNCisJCXB1YmxpYyBzdHJpbmcgT3V0cHV0S2V5DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9PdXRwdXRLZXk7IH0NCisJCQlzZXQgeyBfT3V0cHV0S2V5ID0gdmFsdWU7IH0NCisJCX0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9UZXN0L1Rlc3RGaWx0ZXJDb21tYW5kLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9UZXN0RmlsdGVyQ29tbWFuZC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTQzMzQyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9UZXN0RmlsdGVyQ29tbWFuZC5jcwpAQCAtMCwwICsxLDMzIEBACit1c2luZyBTeXN0ZW07DQorDQorbmFtZXNwYWNlIEFnaWxpdHkuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gQSBDb21tYW5kIHRoYXQgdXNlcyBhIEZpbHRlciB0byBjbGVhbiB1cCBhZnRlciBpdHNlbGYuDQorCS8vLyA8L3N1bW1hcnk+DQorCXB1YmxpYyBjbGFzcyBUZXN0RmlsdGVyQ29tbWFuZCA6IElGaWx0ZXINCisJew0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBGSUxURVJfS0VZID0gIkZJTFRFUiI7DQorDQorCQkjcmVnaW9uIElGaWx0ZXIgTWVtYmVycw0KKw0KKwkJcHVibGljIHZpcnR1YWwgYm9vbCBQb3N0UHJvY2VzcyhJQ29udGV4dCBjb250ZXh0LCBFeGNlcHRpb24gZXhjZXB0aW9uKQ0KKwkJew0KKwkJCWNvbnRleHRbRklMVEVSX0tFWV0gPSBudWxsOw0KKwkJCXJldHVybiBmYWxzZTsgLy8gPT0gSSB0b29rIGNhcmUgb2YgbXkgYnVzaW5lc3MsIGJ1dCBzb21lb25lIA0KKwkJCS8vIHN0aWxsIG5lZWRzIHRvIGhhbmRsZSB0aGUgZXhjZXB0aW9uDQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkjcmVnaW9uIElDb21tYW5kIE1lbWJlcnMNCisNCisJCXB1YmxpYyBib29sIEV4ZWN1dGUoSUNvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQljb250ZXh0LkFkZChGSUxURVJfS0VZLCB0aGlzKTsNCisJCQlyZXR1cm4gZmFsc2U7DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9UZXN0RmlsdGVySGFuZGxlci5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L1Rlc3QvVGVzdEZpbHRlckhhbmRsZXIuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTYzOGNlNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L1Rlc3QvVGVzdEZpbHRlckhhbmRsZXIuY3MKQEAgLTAsMCArMSwxNiBAQAordXNpbmcgU3lzdGVtOw0KKw0KK25hbWVzcGFjZSBBZ2lsaXR5LkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEEgZmlsdGVyIHRoYXQgaGFuZGxlcyB0aGUgZXhjZXB0aW9uIChzb21laG93KS4NCisJLy8vIDwvc3VtbWFyeT4NCisJcHVibGljIGNsYXNzIFRlc3RGaWx0ZXJIYW5kbGVyIDogVGVzdEZpbHRlckNvbW1hbmQNCisJew0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgUG9zdFByb2Nlc3MoSUNvbnRleHQgY29udGV4dCwgRXhjZXB0aW9uIGV4Y2VwdGlvbikNCisJCXsNCisJCQljb250ZXh0W0ZJTFRFUl9LRVldID0gZXhjZXB0aW9uOw0KKwkJCXJldHVybiB0cnVlOyAvLyA9PSBPSywgSSBoYW5kbGVkIGl0IQ0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L1Rlc3QvVGVzdElucHV0Q29tbWFuZC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L1Rlc3QvVGVzdElucHV0Q29tbWFuZC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjUzYTUxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9UZXN0SW5wdXRDb21tYW5kLmNzCkBAIC0wLDAgKzEsMTggQEAKK25hbWVzcGFjZSBBZ2lsaXR5LkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEEgQ29tbWFuZCB0aGF0IGFkZHMgYSB2YWx1ZSB0byBhIFRlc3RDb250ZXh0IHVuZGVyIGl0cyBJbnB1dEtleS4NCisJLy8vIDwvc3VtbWFyeT4NCisJcHVibGljIGNsYXNzIFRlc3RJbnB1dENvbW1hbmQgOiBJQ29tbWFuZA0KKwl7DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFZBTFVFID0gIklOUFVUIjsNCisNCisJCXB1YmxpYyBib29sIEV4ZWN1dGUoSUNvbnRleHQgX2NvbnRleHQpDQorCQl7DQorCQkJVGVzdENvbnRleHQgY29udGV4dCA9IF9jb250ZXh0IGFzIFRlc3RDb250ZXh0Ow0KKwkJCWNvbnRleHQuQWRkKGNvbnRleHQuSW5wdXRLZXksIFZBTFVFKTsNCisJCQlyZXR1cm4gZmFsc2U7DQorCQl9DQorDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9UZXN0TW9kaWZ5Q29tbWFuZC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L1Rlc3QvVGVzdE1vZGlmeUNvbW1hbmQuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU4YjJhMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L1Rlc3QvVGVzdE1vZGlmeUNvbW1hbmQuY3MKQEAgLTAsMCArMSwyMSBAQAorbmFtZXNwYWNlIEFnaWxpdHkuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gQSBDb21tYW5kIHRoYXQgbW9kaWZpZXMgYW4gaW5wdXQgdmFsdWUgYnkgYWRkaW5nIHRoZSANCisJLy8vIHN1YnN0cmluZyAiX01PRElGSUVEIiBhbmQgc2V0cyB0aGUgbmV3IHZhbHVlIGFzIG91dHB1dCwgDQorCS8vLyB3aXRob3V0IGNoYW5naW5nIHRoZSBpbnB1dCB2YWx1ZS4NCisJLy8vIDwvc3VtbWFyeT4NCisJcHVibGljIGNsYXNzIFRlc3RNb2RpZnlDb21tYW5kIDogSUNvbW1hbmQNCisJew0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBTVUZGSVggPSAiX01PRElGSUVEIjsNCisNCisJCXB1YmxpYyBib29sIEV4ZWN1dGUoSUNvbnRleHQgX2NvbnRleHQpDQorCQl7DQorCQkJVGVzdENvbnRleHQgY29udGV4dCA9IF9jb250ZXh0IGFzIFRlc3RDb250ZXh0Ow0KKwkJCXN0cmluZyBpbnB1dCA9IGNvbnRleHRbY29udGV4dC5JbnB1dEtleV0gYXMgc3RyaW5nOw0KKwkJCXN0cmluZyBvdXRwdXQgPSBpbnB1dCArIFNVRkZJWDsNCisJCQljb250ZXh0W2NvbnRleHQuT3V0cHV0S2V5XSA9IG91dHB1dDsNCisJCQlyZXR1cm4gZmFsc2U7DQorCQl9DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9UZXN0Tm90SW1wbGVtZW50ZWRDb21tYW5kLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9UZXN0Tm90SW1wbGVtZW50ZWRDb21tYW5kLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjN2M4ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9UZXN0L1Rlc3ROb3RJbXBsZW1lbnRlZENvbW1hbmQuY3MKQEAgLTAsMCArMSwxNSBAQAordXNpbmcgU3lzdGVtOw0KKw0KK25hbWVzcGFjZSBBZ2lsaXR5LkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEEgY29tbWFuZCB0aGF0IHRocm93cyBhIE5vdEltcGxlbWVudGVkRXhjZXB0aW9uLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlwdWJsaWMgY2xhc3MgVGVzdE5vdEltcGxlbWVudGVkQ29tbWFuZCA6IElDb21tYW5kDQorCXsNCisJCXB1YmxpYyBib29sIEV4ZWN1dGUoSUNvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQl0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFeGNlcHRpb24oKTsNCisJCX0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9UZXN0L1Rlc3ROb3dDb21tYW5kLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9UZXN0Tm93Q29tbWFuZC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTY0ODAwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvVGVzdC9UZXN0Tm93Q29tbWFuZC5jcwpAQCAtMCwwICsxLDE3IEBACit1c2luZyBTeXN0ZW07DQorDQorbmFtZXNwYWNlIEFnaWxpdHkuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gQSBDb21tYW5kIHRoYXQgc2V0cyBhIG5ldyBvdXRwdXQgdmFsdWUgdG8gdGhlIERhdGVUaW1lIGZvciAiTm93Ii4NCisJLy8vIDwvc3VtbWFyeT4NCisJcHVibGljIGNsYXNzIFRlc3ROb3dDb21tYW5kIDogSUNvbW1hbmQNCisJew0KKwkJcHVibGljIGJvb2wgRXhlY3V0ZShJQ29udGV4dCBfY29udGV4dCkNCisJCXsNCisJCQlUZXN0Q29udGV4dCBjb250ZXh0ID0gX2NvbnRleHQgYXMgVGVzdENvbnRleHQ7DQorCQkJY29udGV4dFtjb250ZXh0Lk91dHB1dEtleV0gPSBEYXRlVGltZS5Ob3c7DQorCQkJcmV0dXJuIGZhbHNlOw0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9BZ2lsaXR5L1Rlc3QvVGVzdFJlbW92ZUNvbW1hbmQuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9UZXN0L1Rlc3RSZW1vdmVDb21tYW5kLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4OWEwMTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9UZXN0L1Rlc3RSZW1vdmVDb21tYW5kLmNzCkBAIC0wLDAgKzEsMTggQEAKK25hbWVzcGFjZSBBZ2lsaXR5LkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEEgQ29tbWFuZCB0aGF0IHNldHMgdGhlIGlucHV0IHZhbHVlIGFzIHRoZSBvdXRwdXQgdmFsdWUsIA0KKwkvLy8gYW5kIHJlbW92ZXMgdGhlIGlucHV0IHZhbHVlLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlwdWJsaWMgY2xhc3MgVGVzdFJlbW92ZUNvbW1hbmQgOiBJQ29tbWFuZA0KKwl7DQorCQlwdWJsaWMgYm9vbCBFeGVjdXRlKElDb250ZXh0IF9jb250ZXh0KQ0KKwkJew0KKwkJCVRlc3RDb250ZXh0IGNvbnRleHQgPSBfY29udGV4dCBhcyBUZXN0Q29udGV4dDsNCisJCQlzdHJpbmcgdmFsdWUgPSBjb250ZXh0W2NvbnRleHQuSW5wdXRLZXldIGFzIHN0cmluZzsNCisJCQljb250ZXh0W2NvbnRleHQuSW5wdXRLZXldID0gbnVsbDsNCisJCQljb250ZXh0W2NvbnRleHQuT3V0cHV0S2V5XSA9IHZhbHVlOw0KKwkJCXJldHVybiBmYWxzZTsNCisJCX0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvQWdpbGl0eS9wb3N0YnVpbGQuYmF0IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvcG9zdGJ1aWxkLmJhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGUwZjlhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL0FnaWxpdHkvcG9zdGJ1aWxkLmJhdApAQCAtMCwwICsxLDMgQEAKK1JFTSAlTE9DQUxfQ0FDSEUlIGRvZXNuJ3Qgd29yay4NCitDRCAlNA0KK0NPUFkgJTElMi4qIC4uXGxvY2FsLWNhY2hlXCUzDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvQXNzZW1ibHlJbmZvLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvQXNzZW1ibHlJbmZvLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1YWY5NDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9Bc3NlbWJseUluZm8uY3MKQEAgLTAsMCArMSw1NiBAQAordXNpbmcgU3lzdGVtLlJlZmxlY3Rpb247DQorLy8NCisvLyBHZW5lcmFsIEluZm9ybWF0aW9uIGFib3V0IGFuIGFzc2VtYmx5IGlzIGNvbnRyb2xsZWQgdGhyb3VnaCB0aGUgZm9sbG93aW5nIA0KKy8vIHNldCBvZiBhdHRyaWJ1dGVzLiBDaGFuZ2UgdGhlc2UgYXR0cmlidXRlIHZhbHVlcyB0byBtb2RpZnkgdGhlIGluZm9ybWF0aW9uDQorLy8gYXNzb2NpYXRlZCB3aXRoIGFuIGFzc2VtYmx5Lg0KKy8vDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlUaXRsZSgiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlEZXNjcmlwdGlvbigiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDb25maWd1cmF0aW9uKCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseUNvbXBhbnkoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5UHJvZHVjdCgiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDb3B5cmlnaHQoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5VHJhZGVtYXJrKCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseUN1bHR1cmUoIiIpXQ0KKw0KKy8vDQorLy8gVmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYW4gYXNzZW1ibHkgY29uc2lzdHMgb2YgdGhlIGZvbGxvd2luZyBmb3VyIHZhbHVlczoNCisvLw0KKy8vICAgICAgTWFqb3IgVmVyc2lvbg0KKy8vICAgICAgTWlub3IgVmVyc2lvbiANCisvLyAgICAgIEJ1aWxkIE51bWJlcg0KKy8vICAgICAgUmV2aXNpb24NCisvLw0KKy8vIFlvdSBjYW4gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyBvciB5b3UgY2FuIGRlZmF1bHQgdGhlIFJldmlzaW9uIGFuZCBCdWlsZCBOdW1iZXJzIA0KKy8vIGJ5IHVzaW5nIHRoZSAnKicgYXMgc2hvd24gYmVsb3c6DQorDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlWZXJzaW9uKCIxLjAuKiIpXQ0KKw0KKy8vDQorLy8gSW4gb3JkZXIgdG8gc2lnbiB5b3VyIGFzc2VtYmx5IHlvdSBtdXN0IHNwZWNpZnkgYSBrZXkgdG8gdXNlLiBSZWZlciB0byB0aGUgDQorLy8gTWljcm9zb2Z0IC5ORVQgRnJhbWV3b3JrIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gYXNzZW1ibHkgc2lnbmluZy4NCisvLw0KKy8vIFVzZSB0aGUgYXR0cmlidXRlcyBiZWxvdyB0byBjb250cm9sIHdoaWNoIGtleSBpcyB1c2VkIGZvciBzaWduaW5nLiANCisvLw0KKy8vIE5vdGVzOiANCisvLyAgICgqKSBJZiBubyBrZXkgaXMgc3BlY2lmaWVkLCB0aGUgYXNzZW1ibHkgaXMgbm90IHNpZ25lZC4NCisvLyAgICgqKSBLZXlOYW1lIHJlZmVycyB0byBhIGtleSB0aGF0IGhhcyBiZWVuIGluc3RhbGxlZCBpbiB0aGUgQ3J5cHRvIFNlcnZpY2UNCisvLyAgICAgICBQcm92aWRlciAoQ1NQKSBvbiB5b3VyIG1hY2hpbmUuIEtleUZpbGUgcmVmZXJzIHRvIGEgZmlsZSB3aGljaCBjb250YWlucw0KKy8vICAgICAgIGEga2V5Lg0KKy8vICAgKCopIElmIHRoZSBLZXlGaWxlIGFuZCB0aGUgS2V5TmFtZSB2YWx1ZXMgYXJlIGJvdGggc3BlY2lmaWVkLCB0aGUgDQorLy8gICAgICAgZm9sbG93aW5nIHByb2Nlc3Npbmcgb2NjdXJzOg0KKy8vICAgICAgICgxKSBJZiB0aGUgS2V5TmFtZSBjYW4gYmUgZm91bmQgaW4gdGhlIENTUCwgdGhhdCBrZXkgaXMgdXNlZC4NCisvLyAgICAgICAoMikgSWYgdGhlIEtleU5hbWUgZG9lcyBub3QgZXhpc3QgYW5kIHRoZSBLZXlGaWxlIGRvZXMgZXhpc3QsIHRoZSBrZXkgDQorLy8gICAgICAgICAgIGluIHRoZSBLZXlGaWxlIGlzIGluc3RhbGxlZCBpbnRvIHRoZSBDU1AgYW5kIHVzZWQuDQorLy8gICAoKikgSW4gb3JkZXIgdG8gY3JlYXRlIGEgS2V5RmlsZSwgeW91IGNhbiB1c2UgdGhlIHNuLmV4ZSAoU3Ryb25nIE5hbWUpIHV0aWxpdHkuDQorLy8gICAgICAgV2hlbiBzcGVjaWZ5aW5nIHRoZSBLZXlGaWxlLCB0aGUgbG9jYXRpb24gb2YgdGhlIEtleUZpbGUgc2hvdWxkIGJlDQorLy8gICAgICAgcmVsYXRpdmUgdG8gdGhlIHByb2plY3Qgb3V0cHV0IGRpcmVjdG9yeSB3aGljaCBpcw0KKy8vICAgICAgICVQcm9qZWN0IERpcmVjdG9yeSVcb2JqXDxjb25maWd1cmF0aW9uPi4gRm9yIGV4YW1wbGUsIGlmIHlvdXIgS2V5RmlsZSBpcw0KKy8vICAgICAgIGxvY2F0ZWQgaW4gdGhlIHByb2plY3QgZGlyZWN0b3J5LCB5b3Ugd291bGQgc3BlY2lmeSB0aGUgQXNzZW1ibHlLZXlGaWxlIA0KKy8vICAgICAgIGF0dHJpYnV0ZSBhcyBbYXNzZW1ibHk6IEFzc2VtYmx5S2V5RmlsZSgiLi5cXC4uXFxteWtleS5zbmsiKV0NCisvLyAgICgqKSBEZWxheSBTaWduaW5nIGlzIGFuIGFkdmFuY2VkIG9wdGlvbiAtIHNlZSB0aGUgTWljcm9zb2Z0IC5ORVQgRnJhbWV3b3JrDQorLy8gICAgICAgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzLg0KKy8vDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlEZWxheVNpZ24oZmFsc2UpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5S2V5RmlsZSgiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlLZXlOYW1lKCIiKV0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9Db3JlLmNzcHJvaiBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL0NvcmUuY3Nwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0NzQwZjYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9Db3JlLmNzcHJvagpAQCAtMCwwICsxLDMxMCBAQAorPFZpc3VhbFN0dWRpb1Byb2plY3Q+DQorICAgIDxDU0hBUlANCisgICAgICAgIFByb2plY3RUeXBlID0gIkxvY2FsIg0KKyAgICAgICAgUHJvZHVjdFZlcnNpb24gPSAiNy4xMC4zMDc3Ig0KKyAgICAgICAgU2NoZW1hVmVyc2lvbiA9ICIyLjAiDQorICAgICAgICBQcm9qZWN0R3VpZCA9ICJ7N0M4Q0FGRDQtMUU0NS00MUI0LTk5NjMtRjUxMTk5QjEyRUE3fSINCisgICAgPg0KKyAgICAgICAgPEJ1aWxkPg0KKyAgICAgICAgICAgIDxTZXR0aW5ncw0KKyAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbkljb24gPSAiIg0KKyAgICAgICAgICAgICAgICBBc3NlbWJseUtleUNvbnRhaW5lck5hbWUgPSAiIg0KKyAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiTmV4dXMuQ29yZSINCisgICAgICAgICAgICAgICAgQXNzZW1ibHlPcmlnaW5hdG9yS2V5RmlsZSA9ICIiDQorICAgICAgICAgICAgICAgIERlZmF1bHRDbGllbnRTY3JpcHQgPSAiSlNjcmlwdCINCisgICAgICAgICAgICAgICAgRGVmYXVsdEhUTUxQYWdlTGF5b3V0ID0gIkdyaWQiDQorICAgICAgICAgICAgICAgIERlZmF1bHRUYXJnZXRTY2hlbWEgPSAiSUU1MCINCisgICAgICAgICAgICAgICAgRGVsYXlTaWduID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICBPdXRwdXRUeXBlID0gIkxpYnJhcnkiDQorICAgICAgICAgICAgICAgIFByZUJ1aWxkRXZlbnQgPSAiIg0KKyAgICAgICAgICAgICAgICBQb3N0QnVpbGRFdmVudCA9ICIkKFNvbHV0aW9uRGlyKXBvc3RidWlsZC5iYXQgJChUYXJnZXREaXIpICQoVGFyZ2V0TmFtZSkgJChTb2x1dGlvbk5hbWUpICAkKFNvbHV0aW9uRGlyKSINCisgICAgICAgICAgICAgICAgUm9vdE5hbWVzcGFjZSA9ICJOZXh1cy5Db3JlIg0KKyAgICAgICAgICAgICAgICBSdW5Qb3N0QnVpbGRFdmVudCA9ICJPbkJ1aWxkU3VjY2VzcyINCisgICAgICAgICAgICAgICAgU3RhcnR1cE9iamVjdCA9ICIiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgICAgICA8Q29uZmlnDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIkRlYnVnIg0KKyAgICAgICAgICAgICAgICAgICAgQWxsb3dVbnNhZmVCbG9ja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBCYXNlQWRkcmVzcyA9ICIyODUyMTI2NzIiDQorICAgICAgICAgICAgICAgICAgICBDaGVja0Zvck92ZXJmbG93VW5kZXJmbG93ID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbk92ZXJyaWRlRmlsZSA9ICIiDQorICAgICAgICAgICAgICAgICAgICBEZWZpbmVDb25zdGFudHMgPSAiREVCVUc7VFJBQ0UiDQorICAgICAgICAgICAgICAgICAgICBEb2N1bWVudGF0aW9uRmlsZSA9ICJOZXh1cy5Db3JlLnhtbCINCisgICAgICAgICAgICAgICAgICAgIERlYnVnU3ltYm9scyA9ICJ0cnVlIg0KKyAgICAgICAgICAgICAgICAgICAgRmlsZUFsaWdubWVudCA9ICI0MDk2Ig0KKyAgICAgICAgICAgICAgICAgICAgSW5jcmVtZW50YWxCdWlsZCA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE5vU3RkTGliID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgTm9XYXJuID0gIjE1OTEiDQorICAgICAgICAgICAgICAgICAgICBPcHRpbWl6ZSA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE91dHB1dFBhdGggPSAiYmluXERlYnVnXCINCisgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyRm9yQ29tSW50ZXJvcCA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFJlbW92ZUludGVnZXJDaGVja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBUcmVhdFdhcm5pbmdzQXNFcnJvcnMgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBXYXJuaW5nTGV2ZWwgPSAiNCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPENvbmZpZw0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJSZWxlYXNlIg0KKyAgICAgICAgICAgICAgICAgICAgQWxsb3dVbnNhZmVCbG9ja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBCYXNlQWRkcmVzcyA9ICIyODUyMTI2NzIiDQorICAgICAgICAgICAgICAgICAgICBDaGVja0Zvck92ZXJmbG93VW5kZXJmbG93ID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbk92ZXJyaWRlRmlsZSA9ICIiDQorICAgICAgICAgICAgICAgICAgICBEZWZpbmVDb25zdGFudHMgPSAiVFJBQ0UiDQorICAgICAgICAgICAgICAgICAgICBEb2N1bWVudGF0aW9uRmlsZSA9ICIiDQorICAgICAgICAgICAgICAgICAgICBEZWJ1Z1N5bWJvbHMgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBGaWxlQWxpZ25tZW50ID0gIjQwOTYiDQorICAgICAgICAgICAgICAgICAgICBJbmNyZW1lbnRhbEJ1aWxkID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgTm9TdGRMaWIgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBOb1dhcm4gPSAiIg0KKyAgICAgICAgICAgICAgICAgICAgT3B0aW1pemUgPSAidHJ1ZSINCisgICAgICAgICAgICAgICAgICAgIE91dHB1dFBhdGggPSAiYmluXFJlbGVhc2VcIg0KKyAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJGb3JDb21JbnRlcm9wID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgUmVtb3ZlSW50ZWdlckNoZWNrcyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFRyZWF0V2FybmluZ3NBc0Vycm9ycyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFdhcm5pbmdMZXZlbCA9ICI0Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgIDwvU2V0dGluZ3M+DQorICAgICAgICAgICAgPFJlZmVyZW5jZXM+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIlN5c3RlbSINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIi4uXC4uXC4uXC4uXC4uXC4uXC4uXFdJTkRPV1NcTWljcm9zb2Z0Lk5FVFxGcmFtZXdvcmtcdjEuMS40MzIyXFN5c3RlbS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtLkRhdGEiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3lzdGVtLkRhdGEiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlwuLlwuLlwuLlwuLlxXSU5ET1dTXE1pY3Jvc29mdC5ORVRcRnJhbWV3b3JrXHYxLjEuNDMyMlxTeXN0ZW0uRGF0YS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtLlhNTCINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJTeXN0ZW0uWG1sIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cLi5cLi5cLi5cLi5cLi5cV0lORE9XU1xNaWNyb3NvZnQuTkVUXEZyYW1ld29ya1x2MS4xLjQzMjJcU3lzdGVtLlhNTC5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtLkRyYXdpbmciDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3lzdGVtLkRyYXdpbmciDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlwuLlwuLlwuLlwuLlxXSU5ET1dTXE1pY3Jvc29mdC5ORVRcRnJhbWV3b3JrXHYxLjEuNDMyMlxTeXN0ZW0uRHJhd2luZy5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtLldpbmRvd3MuRm9ybXMiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3lzdGVtLldpbmRvd3MuRm9ybXMiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlwuLlwuLlwuLlwuLlxXSU5ET1dTXE1pY3Jvc29mdC5ORVRcRnJhbWV3b3JrXHYxLjEuNDMyMlxTeXN0ZW0uV2luZG93cy5Gb3Jtcy5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiQWdpbGl0eS5Db3JlIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIkFnaWxpdHkuQ29yZSINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIi4uXC4uXGxvY2FsLWNhY2hlXEFnaWxpdHlcQWdpbGl0eS5Db3JlLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICA8L1JlZmVyZW5jZXM+DQorICAgICAgICA8L0J1aWxkPg0KKyAgICAgICAgPEZpbGVzPg0KKyAgICAgICAgICAgIDxJbmNsdWRlPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJBc3NlbWJseUluZm8uY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJFbnRyeURpY3Rpb25hcnkuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJJRW50cnlMaXN0LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiSUtleVZhbHVlLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiSUtleVZhbHVlTGlzdC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIklSZXF1ZXN0Q2F0YWxvZy5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIklSZXF1ZXN0Q2hhaW4uY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJJUmVxdWVzdENvbW1hbmQuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJJUmVxdWVzdENvbnRleHQuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJLZXlWYWx1ZS5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIktleVZhbHVlTGlzdC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlJlcXVlc3RDaGFpbi5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlJlcXVlc3RDb21tYW5kLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiUmVxdWVzdENvbnRleHQuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJUb2tlbnMuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJIZWxwZXJzXEZpbmRBcmdzLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiSGVscGVyc1xJVmlld0hlbHBlci5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkhlbHBlcnNcVmlld0FyZ3MuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJIZWxwZXJzXFZpZXdIZWxwZXIuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJQcm9maWxlXElQcm9maWxlLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiUHJvZmlsZVxVc2VySWRlbnRpdHkuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJQcm9maWxlXFVzZXJQcmluY2lwYWwuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJQcm9maWxlXFVzZXJQcm9maWxlLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiVGFibGVzXEZpZWxkQ29udGV4dC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlRhYmxlc1xGaWVsZFRhYmxlLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiVGFibGVzXElGaWVsZENvbnRleHQuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJUYWJsZXNcSUZpZWxkVGFibGUuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJWYWxpZGF0b3JzXENsZWFyQ29udGV4dC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlZhbGlkYXRvcnNcQ29sbGVjdGlvblByb2Nlc3Nvci5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlZhbGlkYXRvcnNcQ29udmVydElucHV0LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiVmFsaWRhdG9yc1xEYXRlVGltZVByb2Nlc3Nvci5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlZhbGlkYXRvcnNcRW50cnlMaXN0UHJvY2Vzc29yLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiVmFsaWRhdG9yc1xGb3JtYXRPdXRwdXQuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJWYWxpZGF0b3JzXElQcm9jZXNzb3IuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJWYWxpZGF0b3JzXElQcm9jZXNzb3JDb21tYW5kLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiVmFsaWRhdG9yc1xJUHJvY2Vzc29yQ29udGV4dC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlZhbGlkYXRvcnNcS2V5VmFsdWVQcm9jZXNzb3IuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJWYWxpZGF0b3JzXFByb2Nlc3Nvci5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlZhbGlkYXRvcnNcUHJvY2Vzc29yQ29tbWFuZC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlZhbGlkYXRvcnNcUHJvY2Vzc29yQ29udGV4dC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlZhbGlkYXRvcnNcU3RyaW5nUHJvY2Vzc29yLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICA8L0luY2x1ZGU+DQorICAgICAgICA8L0ZpbGVzPg0KKyAgICA8L0NTSEFSUD4NCis8L1Zpc3VhbFN0dWRpb1Byb2plY3Q+DQorDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvRW50cnlEaWN0aW9uYXJ5LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvRW50cnlEaWN0aW9uYXJ5LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1OWU4ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9FbnRyeURpY3Rpb25hcnkuY3MKQEAgLTAsMCArMSwxMjEgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgU3lzdGVtLlRleHQ7DQorDQorbmFtZXNwYWNlIE5leHVzLkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEV4cG9zZSBmaWVsZCBhdHRyaWJ1dGVzIGFzIHB1YmxpYyBwcm9wZXJ0aWVzLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gPHJlbWFya3M+PHA+DQorCS8vLyBUaGUgRW50cnlEaWN0aW9uYXJ5IGlzIHVzZWQgZm9yIGludGVncmF0aW9uIHdpdGggbGlicmFyaWVzIHRoYXQgDQorCS8vLyBjYW4gdXNlIG9ubHkgcHVibGljIHByb3BlcnRpZXMsIHN1Y2ggYXMgRGF0YUdyaWQuIA0KKwkvLy8gSXQgaXMgYWxzbyB1c2VkIHRvIHBhc3MgcHJvcGVydGllcyBhcyBFdmVudCBhcmd1bWVudCwgDQorCS8vLyBpbiB3aGljaCBjYXNlIGl0IGlzIHVzZWQgbGlrZSBhIGRhdGEgdHJhbnNmZXIgb2JqZWN0Lg0KKwkvLy8gPC9wPjxwPg0KKwkvLy8gVGhlIHZhbHVlcyBhcmUgYXZhaWxhYmxlIGJvdGggYXMgYW4gSURpY3Rpb25hcnkgYW5kIA0KKwkvLy8gKG9wdGlvbmFsbHkpIGFzIFByb3BlcnRpZXMuIA0KKwkvLy8gKFRoZSBwcm9wZXJ0aWVzIHNob3VsZCB1c2UgdGhlIElEaWN0aW9uYXJ5IGZvciBzdG9yYWdlLikNCisJLy8vIFRvIGRlZmluZSBwcm9wZXJ0aWVzLCBleHRlbmQgRW50cnlEaWN0aW9uYXJ5Lg0KKwkvLy8gPC9wPjwvcmVtYXJrcz4NCisJcHVibGljIGNsYXNzIEVudHJ5RGljdGlvbmFyeQ0KKwl7DQorCQlwcml2YXRlIElEaWN0aW9uYXJ5IF9WYWx1ZSA9IG5ldyBIYXNodGFibGUoKTsNCisNCisJCXB1YmxpYyBFbnRyeURpY3Rpb25hcnkoKQ0KKwkJew0KKwkJCS8vIERlZmF1bHQgY29udHN0cnVjdG9yCQ0KKwkJfQ0KKw0KKwkJcHVibGljIEVudHJ5RGljdGlvbmFyeShJRGljdGlvbmFyeSBzb3VyY2VzKQ0KKwkJew0KKwkJCUFkZEFsbChzb3VyY2VzKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBmaWVsZCB2YWx1ZXMgDQorCQkvLy8gaW4gdGhlIGZvcm1hdCAia2V5PXZhbHVlXG4iLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmV0dXJucz5TdHJpbmcgcmVwcmVzZW50YXRpb248L3JldHVybnM+DQorCQlwdWJsaWMgb3ZlcnJpZGUgU3RyaW5nIFRvU3RyaW5nKCkNCisJCXsNCisJCQlTdHJpbmdCdWlsZGVyIGJ1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcigxMjgpOw0KKwkJCXN0cmluZyB0YWIgPSAiPSI7DQorCQkJc3RyaW5nIGVvbCA9ICJcbiI7DQorCQkJSUNvbGxlY3Rpb24ga2V5cyA9IF9WYWx1ZS5LZXlzOw0KKwkJCWZvcmVhY2ggKHN0cmluZyBrZXkgaW4ga2V5cykNCisJCQl7DQorCQkJCWJ1aWxkZXIuQXBwZW5kKGtleSk7DQorCQkJCWJ1aWxkZXIuQXBwZW5kKHRhYik7DQorCQkJCWJ1aWxkZXIuQXBwZW5kKEdldChrZXkpKTsNCisJCQkJYnVpbGRlci5BcHBlbmQoZW9sKTsNCisJCQl9DQorCQkJcmV0dXJuIGJ1aWxkZXIuVG9TdHJpbmcoKTsNCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIEFkZChzdHJpbmcga2V5LCBzdHJpbmcgdmFsdWUpDQorCQl7DQorCQkJX1ZhbHVlLkFkZChrZXksIHZhbHVlKTsNCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIEFkZEFsbChJRGljdGlvbmFyeSBzb3VyY2VzKQ0KKwkJew0KKwkJCUlDb2xsZWN0aW9uIGtleXMgPSBzb3VyY2VzLktleXM7DQorCQkJZm9yZWFjaCAoc3RyaW5nIGtleSBpbiBrZXlzKQ0KKwkJCXsNCisJCQkJb2JqZWN0IHZhbHVlID0gc291cmNlc1trZXldOw0KKwkJCQlpZiAodmFsdWUgPT0gbnVsbCkNCisJCQkJCUFkZChrZXksIHZhbHVlIGFzIHN0cmluZyk7DQorCQkJCWVsc2UNCisJCQkJCUFkZChrZXksIHZhbHVlLlRvU3RyaW5nKCkpOw0KKwkJCX0NCisJCX0NCisNCisJCXByb3RlY3RlZCBJQ29sbGVjdGlvbiBLZXlzDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9WYWx1ZS5LZXlzOyB9DQorCQl9DQorDQorCQlwdWJsaWMgc3RyaW5nIEdldChzdHJpbmcga2V5KQ0KKwkJew0KKwkJCXJldHVybiBfVmFsdWVba2V5XSBhcyBzdHJpbmc7DQorCQl9DQorDQorCQlwdWJsaWMgdm9pZCBTZXQoc3RyaW5nIGtleSwgc3RyaW5nIHZhbHVlKQ0KKwkJew0KKwkJCWlmICh2YWx1ZSA9PSBudWxsKQ0KKwkJCQlfVmFsdWVba2V5XSA9IG51bGw7DQorCQkJZWxzZSBfVmFsdWVba2V5XSA9IHZhbHVlLlRyaW0oKTsNCisJCX0NCisNCisJCXB1YmxpYyBCb29sZWFuIENvbnRhaW5zKE9iamVjdCBrZXkpDQorCQl7DQorCQkJcmV0dXJuIF9WYWx1ZS5Db250YWlucyhrZXkpOw0KKwkJfQ0KKw0KKwkJcHVibGljIElEaWN0aW9uYXJ5IENyaXRlcmlhDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9WYWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENhbGwgY2FsY3VsYXRlZCBwcm9wZXJ0aWVzIHNvIHRoYXQgDQorCQkvLy8gdGhleSBhcmUgY2FjaGVkIGFzIGVudHJpZXMgaW4gdGhlIHRhYmxlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz4NCisJCS8vLyA8cD5PdmVycmlkZSB0byBwcm92aWRlIGZ1bmN0aW9uYWxpdHk8L3A+DQorCQkvLy8gPC9yZW1hcmtzPg0KKwkJLy8vIA0KKwkJcHVibGljIHZpcnR1YWwgdm9pZCBDYWNoZVRleHQoKQ0KKwkJew0KKwkJfQ0KKw0KKwkJLyoNCisJCXB1YmxpYyBzdHJpbmcgUHJvcGVydHkNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gcmV0dXJuIEdldChBcHAuUFJPUEVSVFkpOyB9DQorCQkJc2V0IHsgU2V0KEFwcC5QUk9QRVJUWSwgdmFsdWUpOyB9DQorCQl9DQorCQkqLw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL0hlbHBlcnMvRmluZEFyZ3MuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9IZWxwZXJzL0ZpbmRBcmdzLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjYWFiODEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9IZWxwZXJzL0ZpbmRBcmdzLmNzCkBAIC0wLDAgKzEsNjMgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQorDQorbmFtZXNwYWNlIFdRRC5Db3JlLkNvbnRyb2xzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBQcm92aWRlIGFuIEV2ZW50QXJncyB0eXBlIHRvIGludGVyYWNlIHdpdGggRmluZENvbnRyb2xzDQorCS8vLyB0aGF0IGNhbiBiZSByZWFkIG9yIGJvdW5kIHZpYSBhbiBJRGljdGlvbmFyeSBvYmplY3QuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyANCisJcHVibGljIGNsYXNzIEZpbmRBcmdzIDogRXZlbnRBcmdzDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBIHJlZmVyZW5jZSB0byB0aGUgb3JpZ2luYWwgYXJndW1lbnRzIGZvciBhbiBldmVudCwgaWYgYW55Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBFdmVudEFyZ3MgT2xkQXJnczsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBFeHBvc2Ugb3VyIGRpY3Rpb25hcnkgaW5zdGFuY2UuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIElEaWN0aW9uYXJ5IENyaXRlcmlhOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENyZWF0ZSB0aGlzIGluc3RhbmNlIHVzaW5nIHRoZSBnaXZlbiBkaWN0aW9uYXJ5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBGaW5kQXJncyhJRGljdGlvbmFyeSBjcml0ZXJpYSkNCisJCXsNCisJCQlDcml0ZXJpYSA9IGNyaXRlcmlhOw0KKwkJCU9sZEFyZ3MgPSBuZXcgRXZlbnRBcmdzKCk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQ3JlYXRlIGEgbmV3IGluc3RhbmNlIHdpdGggZW1wdHkgZmllbGRzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBGaW5kQXJncygpDQorCQl7DQorCQkJQ3JpdGVyaWEgPSBuZXcgSGFzaHRhYmxlKCk7DQorCQkJT2xkQXJncyA9IG5ldyBFdmVudEFyZ3MoKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDcmVhdGUgYSBuZXcgaW5zdGFuY2UsIHNldHRpbmcgdGhlIG9sZCBldmVudCBhcmd1bWVudHMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJvbGRBcmdzIj5PbGQgRXZlbnQgYXJndW1lbnRzPC9wYXJhbT4NCisJCS8vLyANCisJCXB1YmxpYyBGaW5kQXJncyhFdmVudEFyZ3Mgb2xkQXJncykNCisJCXsNCisJCQl0aGlzLk9sZEFyZ3MgPSBvbGRBcmdzOw0KKwkJCUNyaXRlcmlhID0gbmV3IEhhc2h0YWJsZSgpOw0KKwkJfQ0KKw0KKwkJcHVibGljIEZpbmRBcmdzKEV2ZW50QXJncyBlLCBJRGljdGlvbmFyeSBjKQ0KKwkJew0KKwkJCU9sZEFyZ3MgPSBlOw0KKwkJCUNyaXRlcmlhID0gYzsNCisJCX0NCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9IZWxwZXJzL0lWaWV3SGVscGVyLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvSGVscGVycy9JVmlld0hlbHBlci5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2Y4ZjUxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvSGVscGVycy9JVmlld0hlbHBlci5jcwpAQCAtMCwwICsxLDIyNyBAQAorLyoNCisgKiBDb3B5cmlnaHQgMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICogDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqIA0KKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICogDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgTmV4dXMuQ29yZS5Qcm9maWxlOw0KK3VzaW5nIE5leHVzLkNvcmUuVGFibGVzOw0KKw0KK25hbWVzcGFjZSBOZXh1cy5Db3JlLkhlbHBlcnMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIFByb3ZpZGUgbWV0aG9kcyBmb3IgcnVubmluZyBhIGJ1c2luZXNzIGNvbW1hbmQgYW5kIGhhbmRsaW5nIHRoZSByZXN1bHQuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyA8cmVtYXJrcz48cD4NCisJLy8vIElWaWV3SGVscGVyIGlzIGEgZmFjYWRlIGZvciB1c2UgYnkgYSBjb2RlLWJlaGluZCB0byBzaW1wbGlmeSBhY2Nlc3MgDQorCS8vLyB0byB0aGUgSVJlcXVlc3RDb250ZXh0IGFuZCBJUmVxdWVzdENvbW1hbmQuIA0KKwkvLy8gPC9wPjxwPg0KKwkvLy8gVGhlIGhlbHBlciBtYXkgYWxzbyB3b3JrIHdpdGggdGhlIGNhdGFsb2cgdG8gYWN0IGFzIGEgDQorCS8vLyAiZnJvbnQgY29udHJvbGxlciIgYnkgZW5zdXJpbmcgcm91dGluZSB0YXNrcyBhcmUgY2FycmllZCBvdXQuDQorCS8vLyBUaGVzZSB0YXNrcyBjYW4gaW5jbHVkZSBpbnB1dCB2YWxpZGF0aW9uLCBkYXRhIGNvbnZlcnNpb24sIA0KKwkvLy8gdGV4dCBmb3JtYXR0aW5nLCBjb21tYW5kIGxvZ2dpbmcsIGFuZCBzbyBmb3J0aC4NCisJLy8vIDwvcD48L3JlbWFya3M+DQorCS8vLyANCisJcHVibGljIGludGVyZmFjZSBJVmlld0hlbHBlcg0KKwl7DQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUGVyZm9ybSB0aGUgQ29tbWFuZCBhc3NvY2lhdGVkIHdpdGggdGhpcyBIZWxwZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJdm9pZCBFeGVjdXRlKCk7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmVhZCBpbnB1dCBpbnRvIHRoZSBDcml0ZXJpYSBmcm9tIGEgZ2l2ZW4gRGljdGlvbmFyeS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNyaXRlcmlhIj5BdHRyaWJ1dGVzIHRvIGFkZCB0byBDcml0aWVyYTwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9Im51bGxJZkVtcHR5Ij5TZXQgYXR0cmlidXRlcyBmb3IgZW1wdHkgc3RyaW5ncyB0byBudWxsPC9wYXJhbT4NCisJCS8vLyANCisJCXZvaWQgUmVhZChJRGljdGlvbmFyeSBjcml0ZXJpYSwgYm9vbCBudWxsSWZFbXB0eSk7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU3RvcmUgaW5wdXQgYW5kIG91dHB1dCB2YWx1ZXMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJSURpY3Rpb25hcnkgQ3JpdGVyaWEgeyBnZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBVc2VyIHByb2ZpbGUsIHdoaWNoIGluY2x1ZGVzIHVzZXIgSUQgYW5kIExvY2FsZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlJUHJvZmlsZSBQcm9maWxlIHsgZ2V0OyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBY2Nlc3MgcmVzdWx0IG9mIG9wZXJhdGlvbiBhcyBhbiBJTGlzdC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gSWYgdGhlIEhlbHBlciBpcyBkZXNpZ25lZCB0byByZXR1cm4gYSBMaXN0IHJlc3VsdCwgDQorCQkvLy8gdGhpcyBtZXRob2Qgc2F2ZXMgY2FzdGluZyB0aGUgb3V0Y29tZS4NCisJCS8vLyBJZiB0aGUgSGVscGVyIGlzIG5vdCBkZXNpZ25lZCB0byByZXR1cm4gdGhlIHJlc3VsdCBhcyBhIElMaXN0LCANCisJCS8vLyB0aGlzIG1ldGhvZCByZXR1cm5zIGEgc2luZ2xlLXZhbHVlIHJlc3VsdCBhcyBhIG9uZS1lbnRyeSBsaXN0Lg0KKwkJLy8vIDwvcD48cD4NCisJCS8vLyBOb3RlIHRoaXMgc2luY2UgdGhpcyBpcyB0aGUgSGVscGVyIE91dGNvbWUsIA0KKwkJLy8vIHRoZSByZXN1bHQgaXMgcmVsYXRpdmUgdG8gdGhlIENyaXRlcmlhLCANCisJCS8vLyByYXRoZXIgdGhhbiB0aGUgbWFpbiBDb250ZXh0Lg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQkvLy8gDQorCQlJTGlzdCBPdXRjb21lIHsgZ2V0OyB9DQorDQorCQkvLyAtLS0tDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmVjb3JkIGEgbGlzdCBvZiBhbGVydCAob3IgZXJyb3IpIG1lc3NhZ2VzLCANCisJCS8vLyBrZXllZCBieSB0aGUgZmllbGQgY2F1c2luZyB0aGUgbWVzc2FnZSwgDQorCQkvLy8gb3IgdG8gYSBtYWdpYyBnbG9iYWwga2V5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz4NCisJCS8vLyBXaGVuIHJlY2FsbGluZyBBbGVydHMsIGJ5IGRlZmF1bHQgaW5jbHVkZSB0aGUgRmF1bHQuDQorCQkvLy8gPC9yZW1hcmtzPg0KKwkJLy8vIA0KKwkJSURpY3Rpb25hcnkgQWxlcnRzIHsgZ2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmV0dXJuIHRoZSBBbGVydHMgZm9yIHRoZSBzcGVjaWZpaWVkIElELCANCisJCS8vLyBmb3JtYXR0ZWQgZm9yIGRpc3BsYXkgYnkgYSBVSSBjb250cm9sLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz4NCisJCS8vLyBJZiBtZXNzYWdlcyBhcmUgbG9jYWxpemVkIG9yIGN1c3RvbWl6ZWQsIA0KKwkJLy8vIHRoZSBoZWxwZXIgd2lsbCByZXR1cm4gY29ycmVjdCB2ZXJzaW9uIGZvciB0aGUgdXNlci4NCisJCS8vLyBVSSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBtYXkgbWFya3VwIHRoZSBlcnJvcnMgYXMgbmVlZGVkLg0KKwkJLy8vIDwvcmVtYXJrcz4NCisJCS8vLyANCisJCXN0cmluZyBBbGVydHNGb3Ioc3RyaW5nIGlkKTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZXR1cm4gdGhlIEFsZXJ0cywgaW5jbHVkaW5nIGFueSBGYXVsdCwgZm9ybWF0dGVkIGZvciBkaXNwbGF5IGJ5IGEgVUkgY29udHJvbC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+DQorCQkvLy8gSWYgbWVzc2FnZXMgYXJlIGxvY2FsaXplZCBvciBjdXN0b21pemVkLCANCisJCS8vLyB0aGUgaGVscGVyIHdpbGwgcmV0dXJuIGNvcnJlY3QgdmVyc2lvbiBmb3IgdGhlIHVzZXIuDQorCQkvLy8gVUkgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gbWF5IG1hcmt1cCB0aGUgZXJyb3JzIGFzIG5lZWRlZC4NCisJCS8vLyA8L3JlbWFya3M+DQorCQkvLy8gDQorCQlzdHJpbmcgQWxlcnRzVGV4dCB7IGdldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEluZGljYXRlIGlmIGFsZXJ0cyBhcmUgcXVldWVkLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmV0dXJucz5UcnVlIGlmIGFsZXJ0cyBhcmUgcXVldWVkLjwvcmV0dXJucz4NCisJCS8vLyANCisJCWJvb2wgSGFzQWxlcnRzIHsgZ2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmVjb3JkIGFuIEV4Y2VwdGlvbiwgaWYgdGhyb3duLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz4NCisJCS8vLyBCeSBkZWZhdWx0LCB0aGUgRmF1bHQgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgbGlzdCBvZiBBbGVydHMuDQorCQkvLy8gPC9yZW1hcmtzPg0KKwkJLy8vIA0KKwkJRXhjZXB0aW9uIEZhdWx0IHsgZ2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5kaWNhdGUgd2hldGhlciBhbiBFeGNlcHRpb24gaXMgY2F1Z2h0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmV0dXJucz5UcnVlIGlmIGFuIEV4Y2VwdGlvbiBpcyBjYXVnaHQuPC9yZXR1cm5zPg0KKwkJLy8vIA0KKwkJYm9vbCBIYXNGYXVsdCB7IGdldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEluZGljYXRlIGlmIHRoZXJlIGFyZSBubyBhbGVydHMgb3IgZmF1bHQgcGVuZGluZy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJldHVybnM+VHJ1ZSBpZiBhbGwgaXMgd2VsbC48L3JldHVybnM+DQorCQkvLy8gDQorCQlib29sIElzTm9taW5hbCB7IGdldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJlY29yZCBhIGxpc3Qgb2YgaGludCAob3IgYWR2aXNvcnkpIG1lc3NhZ2VzLCANCisJCS8vLyBrZXllZCBieSBhIGZpZWxkIG9yIG90aGVyIGlkZW50aWZpZXIsIA0KKwkJLy8vIG9yIHRvIGEgbWFnaWMgZ2xvYmFsIGtleS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlJRGljdGlvbmFyeSBIaW50cyB7IGdldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJldHVybiB0aGUgSGludHMgZm9yIHRoZSBzcGVjaWZpaWVkIElELCANCisJCS8vLyBmb3JtYXR0ZWQgZm9yIGRpc3BsYXkgYnkgYSBVSSBjb250cm9sLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz4NCisJCS8vLyBJZiBtZXNzYWdlcyBhcmUgbG9jYWxpemVkIG9yIGN1c3RvbWl6ZWQsIA0KKwkJLy8vIHRoZSBoZWxwZXIgd2lsbCByZXR1cm4gY29ycmVjdCB2ZXJzaW9uIGZvciB0aGUgdXNlci4NCisJCS8vLyBVSSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBtYXkgbWFya3VwIHRoZSBlcnJvcnMgYXMgbmVlZGVkLg0KKwkJLy8vIDwvcmVtYXJrcz4NCisJCS8vLyANCisJCXN0cmluZyBIaW50c0ZvcihzdHJpbmcgaWQpOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEluZGljYXRlIGlmIEhpbnRzIGFyZSBxdWV1ZWQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZXR1cm5zPlRydWUgaWYgSGludHMgYXJlIHF1ZXVlZC48L3JldHVybnM+DQorCQkvLy8gDQorCQlib29sIEhhc0hpbnRzIHsgZ2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmV0dXJuIEhpbnRzIGZvcm1hdHRlZCBmb3IgZGlzcGxheSBieSBhIFVJIGNvbnRyb2wuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPg0KKwkJLy8vIElmIG1lc3NhZ2VzIGFyZSBsb2NhbGl6ZWQgb3IgY3VzdG9taXplZCwgDQorCQkvLy8gdGhlIGhlbHBlciB3aWxsIHJldHVybiBjb3JyZWN0IHZlcnNpb24gZm9yIHRoZSB1c2VyLg0KKwkJLy8vIFVJIHNwZWNpZmljIGltcGxlbWVudGF0aW9zbiBtYXkgbWFya3VwIHRoZSBtZXNzYWdlcyBhcyBuZWVkZWQuDQorCQkvLy8gPC9yZW1hcmtzPg0KKwkJLy8vIA0KKwkJc3RyaW5nIEhpbnRzVGV4dCB7IGdldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgdGhlIEZpZWxkIFRhYmxlIGZvciB0aGlzIEhlbHBlci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gdXNlcyB0aGUgQ2F0YWxvZyB0byBpbmplY3QgdGhlIGdsb2JhbCANCisJCS8vLyBGaWVsZCBUYWJsZSByZWZlcmVuY2UuIA0KKwkJLy8vIFRoZSBDb250ZXh0LCBhbmQgbWVtYmVycyB3aXRoIGFjY2VzcyB0byBhIENvbnRleHQsIA0KKwkJLy8vIGNhbiB1c2UgdGhlIEZpZWxkVGFibGUgdG8gdmFsaWRhdGUgYW5kIGZvcm1hdCB2YWx1ZXMsIA0KKwkJLy8vIGFuZCBldmVuIHRvIGNyZWF0ZSBjb250cm9scyB0aGF0IGRpc3BsYXkgdmFsdWVzLg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQkvLy8gDQorCQlJRmllbGRUYWJsZSBGaWVsZFRhYmxlIHsgZ2V0OyB9DQorDQorCQkvLyAtLS0tDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSB0aGUgY29tbWFuZCAob3IgY2hhaW4gb2YgY29tbWFuZHMpIGZvciB0aGlzIGhlbHBlcg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBTZXR0aW5nIHRoZSBDb21tYW5kIGFsc28gc2V0cyB0aGUgaW50ZXJuYWwgQ29udGV4dCBmb3IgdGhlIGNvbW1hbmQuDQorCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCS8vLyANCisJCUlSZXF1ZXN0Q29tbWFuZCBDb21tYW5kIHsgZ2V0OyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgc2V0IG9mIElGaWVsZENvbnRleHQgZGVmaW5pdGlvbnMgdG8gYmUgdXNlZCB3aXRoIHRoaXMgaGVscGVyLiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gVGhlIEZpZWxkU2V0IGlzIHVzdWFsbHkgc2V0IGJ5IGRlcGVuZGVuY3kgaW5qZWN0aW9uLg0KKwkJLy8vIFNvbWUgaGVscGVycyBnZW5lcmF0ZSBEYXRhR3JpZHMgb3IgRGF0YUZvcm1zIGJhc2VkIG9uIHRoZSANCisJCS8vLyBGaWVsZERlZmluaXRpb25zIA0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQkvLy8gDQorCQlJTGlzdCBGaWVsZFNldCB7IGdldDsgc2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSB0aGUgY2F0YWxvZyBmb3IgdGhpcyBoZWxwZXIsIA0KKwkJLy8vIHVzdWFsbHkgc2V0IGJ5IGRlcGVuZGVuY3kgaW5qZWN0aW9uLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCUlSZXF1ZXN0Q2F0YWxvZyBDYXRhbG9nIHsgZ2V0OyBzZXQ7IH0NCisNCisJfQ0KKw0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9IZWxwZXJzL1ZpZXdBcmdzLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvSGVscGVycy9WaWV3QXJncy5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZmM1ZTdiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvSGVscGVycy9WaWV3QXJncy5jcwpAQCAtMCwwICsxLDM3IEBACit1c2luZyBTeXN0ZW07DQorDQorbmFtZXNwYWNlIE5leHVzLkNvcmUuSGVscGVycw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gRXZlbnRBcmdzIHR5cGUgd2l0aCBhIElWaWV3SGVscGVyIHByb3BlcnR5Lg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlwdWJsaWMgY2xhc3MgVmlld0FyZ3MgOiBFdmVudEFyZ3MNCisJew0KKwkJcHJpdmF0ZSBJVmlld0hlbHBlciBfSGVscGVyOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhlbHBlciBpbnN0YW5jZSB0byBlbmNhcHN1bGF0ZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgSVZpZXdIZWxwZXIgSGVscGVyDQorCQl7DQorCQkJc2V0IHsgX0hlbHBlciA9IHZhbHVlOyB9DQorCQkJZ2V0IHsgcmV0dXJuIF9IZWxwZXI7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBEZWZhdWx0IGNvbnN0cnVjdG9yLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBWaWV3QXJncygpDQorCQl7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQ29udmVuaWVuY2UgY29uc3RydWN0b3IgdG8gc2V0IGhlbHBlci4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJoZWxwZXIiPjwvcGFyYW0+DQorCQlwdWJsaWMgVmlld0FyZ3MoSVZpZXdIZWxwZXIgaGVscGVyKQ0KKwkJew0KKwkJCUhlbHBlciA9IGhlbHBlcjsNCisJCX0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9IZWxwZXJzL1ZpZXdIZWxwZXIuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9IZWxwZXJzL1ZpZXdIZWxwZXIuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzNjZjdhYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL0hlbHBlcnMvVmlld0hlbHBlci5jcwpAQCAtMCwwICsxLDI4MCBAQAorLyoNCisgKiBDb3B5cmlnaHQgMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICogDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqIA0KKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICogDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgTmV4dXMuQ29yZS5Qcm9maWxlOw0KK3VzaW5nIE5leHVzLkNvcmUuVGFibGVzOw0KKw0KK25hbWVzcGFjZSBOZXh1cy5Db3JlLkhlbHBlcnMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIFN0YW5kYXJkIGltcGxlbWVudGF0aW9uIG9mIElWaWV3SGVscGVyLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gDQorCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBWaWV3SGVscGVyIDogSVZpZXdIZWxwZXINCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIERlZmF1bHQgc2V0dGluZyBmb3IgTGlzdFN1ZmZpeCBbIl9saXN0Il0uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBMSVNUX1NVRkZJWCA9ICJfbGlzdCI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRGVmYXVsdCBzZXR0aW5nIGZvciBOdWxsSWZFbXB0eSBbdHJ1ZV0uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIGNvbnN0IGJvb2wgTlVMTF9JRl9FTVBUWSA9IHRydWU7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRGVmYXVsdCBzZXR0aW5nIGZvciBQcmVmaXggWyIiXS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFBSRUZJWCA9ICIiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIERlZmF1bHQgc2V0dGluZyBmb3IgU2VsZWN0SXRlbVByb21wdCBbIi0tdi0tIl0uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBTRUxFQ1RfSVRFTV9QUk9NUFQgPSAiLS12LS0iOw0KKw0KKwkJI3JlZ2lvbiBSZWFkIGFuZCBCaW5kIA0KKw0KKwkJcHVibGljIHZvaWQgRXhlY3V0ZSgpDQorCQl7DQorCQkJQ2F0YWxvZy5FeGVjdXRlVmlldyhDb250ZXh0KTsNCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIFJlYWQoSURpY3Rpb25hcnkgaW5wdXQsIGJvb2wgbnVsbElmRW1wdHkpDQorCQl7DQorCQkJaWYgKGlucHV0ID09IG51bGwpIHJldHVybjsNCisJCQlJQ29sbGVjdGlvbiBrZXlzID0gaW5wdXQuS2V5czsNCisJCQlJRGljdGlvbmFyeSBjcml0ZXJpYSA9IENyaXRlcmlhOw0KKwkJCWZvcmVhY2ggKHN0cmluZyBrZXkgaW4ga2V5cykNCisJCQl7DQorCQkJCXN0cmluZyBzID0gbnVsbDsNCisJCQkJc3RyaW5nIG8gPSBDb252ZXJ0LlRvU3RyaW5nKGlucHV0W2tleV0pOw0KKwkJCQlpZiAobyE9bnVsbCkgcyA9IG8uVHJpbSgpOw0KKwkJCQlpZiAoKG51bGxJZkVtcHR5KSAmJiAocyAhPSBudWxsKSAmJiAocy5MZW5ndGggPT0gMCkpDQorCQkJCQljcml0ZXJpYS5BZGQoa2V5LCBudWxsKTsNCisJCQkJZWxzZQ0KKwkJCQkJY3JpdGVyaWEuQWRkKGtleSwgcyk7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJcHVibGljIElEaWN0aW9uYXJ5IENyaXRlcmlhDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIENvbnRleHQuQ3JpdGVyaWE7IH0NCisJCX0NCisNCisJCXB1YmxpYyB2aXJ0dWFsIElMaXN0IE91dGNvbWUNCisJCXsNCisJCQlnZXQNCisJCQl7DQorCQkJCUlMaXN0IHJlc3VsdDsNCisJCQkJb2JqZWN0IG8gPSBDcml0ZXJpYVtDb250ZXh0LkNvbW1hbmRdOw0KKwkJCQlpZiAobyA9PSBudWxsKQ0KKwkJCQl7DQorCQkJCQlyZXN1bHQgPSBuZXcgQXJyYXlMaXN0KDEpOw0KKwkJCQkJcmVzdWx0LkFkZChDcml0ZXJpYSk7DQorCQkJCX0NCisJCQkJZWxzZQ0KKwkJCQl7DQorCQkJCQlyZXN1bHQgPSBvIGFzIElMaXN0Ow0KKwkJCQkJaWYgKHJlc3VsdCA9PSBudWxsKQ0KKwkJCQkJew0KKwkJCQkJCXJlc3VsdCA9IG5ldyBBcnJheUxpc3QoMSk7DQorCQkJCQkJcmVzdWx0LkFkZChvKTsNCisJCQkJCX0NCisJCQkJfQ0KKwkJCQlyZXR1cm4gcmVzdWx0Ow0KKwkJCX0NCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gTWVzc2FnZXMNCisNCisJCXB1YmxpYyBJRGljdGlvbmFyeSBBbGVydHMNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gQ29udGV4dC5BbGVydHM7IH0NCisJCX0NCisNCisJCXB1YmxpYyBib29sIEhhc0FsZXJ0cw0KKwkJew0KKwkJCWdldCB7IHJldHVybiBDb250ZXh0Lkhhc0FsZXJ0czsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIEV4Y2VwdGlvbiBGYXVsdA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBDb250ZXh0LkZhdWx0OyB9DQorCQl9DQorDQorCQlwdWJsaWMgYm9vbCBIYXNGYXVsdA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBDb250ZXh0Lkhhc0ZhdWx0OyB9DQorCQl9DQorDQorCQlwdWJsaWMgdmlydHVhbCBib29sIElzTm9taW5hbA0KKwkJew0KKwkJCWdldCB7IHJldHVybiAoIUhhc0FsZXJ0cyAmJiAhSGFzRmF1bHQpOyB9DQorCQl9DQorDQorDQorCQlwdWJsaWMgSURpY3Rpb25hcnkgSGludHMNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gQ29udGV4dC5IaW50czsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIGJvb2wgSGFzSGludHMNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gQ29udGV4dC5IYXNIaW50czsgfQ0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbiANCisNCisJCSNyZWdpb24gTWVzc2FnZXMgKGFic3RyYWN0KSANCisNCisJCXB1YmxpYyBhYnN0cmFjdCBzdHJpbmcgQWxlcnRzRm9yKHN0cmluZyBpZCk7DQorDQorCQlwdWJsaWMgYWJzdHJhY3Qgc3RyaW5nIEFsZXJ0c1RleHQgeyBnZXQ7IH0NCisNCisJCXB1YmxpYyBhYnN0cmFjdCBzdHJpbmcgSGludHNGb3Ioc3RyaW5nIGlkKTsNCisNCisJCXB1YmxpYyBhYnN0cmFjdCBzdHJpbmcgSGludHNUZXh0IHsgZ2V0OyB9DQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkjcmVnaW9uIFRhYmxlcw0KKw0KKwkJcHVibGljIElGaWVsZFRhYmxlIEZpZWxkVGFibGUNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gQ29udGV4dC5GaWVsZFRhYmxlOyB9DQorCQl9DQorDQorCQlwcml2YXRlIElMaXN0IF9GaWVsZFNldDsNCisNCisJCXB1YmxpYyB2aXJ0dWFsIElMaXN0IEZpZWxkU2V0DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9GaWVsZFNldDsgfQ0KKwkJCXNldCB7IF9GaWVsZFNldCA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkjZW5kcmVnaW9uIA0KKw0KKwkJI3JlZ2lvbiBPcHRpb25zDQorDQorCQlwcml2YXRlIHN0cmluZyBfUHJlZml4ID0gUFJFRklYOw0KKw0KKwkJcHVibGljIHN0cmluZyBQcmVmaXgNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX1ByZWZpeDsgfQ0KKwkJCXNldCB7IF9QcmVmaXggPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHJpdmF0ZSBzdHJpbmcgX0xpc3RTdWZmaXggPSBMSVNUX1NVRkZJWDsNCisNCisJCXB1YmxpYyBzdHJpbmcgTGlzdFN1ZmZpeA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfTGlzdFN1ZmZpeDsgfQ0KKwkJCXNldCB7IF9MaXN0U3VmZml4ID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXByaXZhdGUgYm9vbCBfTnVsbElmRW1wdHkgPSBOVUxMX0lGX0VNUFRZOw0KKw0KKwkJcHVibGljIGJvb2wgTnVsbElmRW1wdHkNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX051bGxJZkVtcHR5OyB9DQorCQkJc2V0IHsgX051bGxJZkVtcHR5ID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXByaXZhdGUgc3RyaW5nIF9TZWxlY3RJdGVtUHJvbXB0ID0gU0VMRUNUX0lURU1fUFJPTVBUOw0KKw0KKwkJcHVibGljIHN0cmluZyBTZWxlY3RJdGVtUHJvbXB0DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9TZWxlY3RJdGVtUHJvbXB0OyB9DQorCQkJc2V0IHsgX1NlbGVjdEl0ZW1Qcm9tcHQgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbg0KKw0KKwkJI3JlZ2lvbiBQcm9wZXJ0aWVzDQorDQorCQlwcml2YXRlIElSZXF1ZXN0Q2F0YWxvZyBfQ2F0YWxvZzsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHRoZSBhcHBsaWNhdGlvbiBvYmplY3QgY2F0YWxvZyBmb3IgdGhpcyBIZWxwZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPg0KKwkJLy8vIFRoZSBDYXRhbG9nIGlzIHVzdWFsbHkgc2V0IHRocm91Z2ggZGVwZW5kZW5jeSBpbmplY3Rpb24uIA0KKwkJLy8vIFRoZSBDYXRhbG9nIGFuZCBDb21tYW5kIG11c3QgYmUgc2V0IGJlZm9yZSBjYWxsaW5nIG90aGVyIG1ldGhvZHMuDQorCQkvLy8gPC9yZW1hcmtzPg0KKwkJLy8vIA0KKwkJcHVibGljIElSZXF1ZXN0Q2F0YWxvZyBDYXRhbG9nDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9DYXRhbG9nOyB9DQorCQkJc2V0IHsgX0NhdGFsb2cgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHJpdmF0ZSBJUmVxdWVzdENvbW1hbmQgX0NvbW1hbmQ7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSB0aGUgY29tbWFuZCBmb3IgdGhpcyBIZWxwZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPg0KKwkJLy8vIFRoZSBDb21tYW5kIGlzIHVzdWFsbHkgc2V0IHRocm91Z2ggZGVwZW5kZW5jeSBpbmplY3Rpb24uIA0KKwkJLy8vIFRoZSBDYXRhbG9nIGFuZCBDb21tYW5kIG11c3QgYmUgc2V0IGJlZm9yZSBjYWxsaW5nIG90aGVyIG1ldGhvZHMuDQorCQkvLy8gPC9yZW1hcmtzPg0KKwkJLy8vIA0KKwkJcHVibGljIElSZXF1ZXN0Q29tbWFuZCBDb21tYW5kDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9Db21tYW5kOyB9DQorCQkJc2V0DQorCQkJew0KKwkJCQlfQ29tbWFuZCA9IHZhbHVlOw0KKwkJCQlfQ29udGV4dCA9IENhdGFsb2cuR2V0UmVxdWVzdENvbnRleHQodmFsdWUpOw0KKwkJCX0NCisJCX0NCisNCisJCXByaXZhdGUgSVJlcXVlc3RDb250ZXh0IF9Db250ZXh0Ow0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgdGhlIGFsbC1pbXBvcnRhbnQgQ29udGV4dCBmb3IgdGhpcyBIZWxwZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPg0KKwkJLy8vIFRoZSBDb250ZXh0IGlzIG9idGFpbmVkIHRocm91Z2ggcmVmZXJlbmNlIHRvIHRoZSBDYXRhbG9nIGFuZCBDb21tYW5kLg0KKwkJLy8vIEFsbCBvdGhlciBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIG9mIHRoZSBIZWxwZXIgcmVmZXIgdG8gdGhlIENvbnRleHQsIA0KKwkJLy8vIG1ha2luZyBDb250ZXh0IHRoZSBjb3JuZXJzdG9uZSBwcm9wZXJ0eS4NCisJCS8vLyA8L3JlbWFya3M+DQorCQkvLy8gDQorCQlwdWJsaWMgdmlydHVhbCBJUmVxdWVzdENvbnRleHQgQ29udGV4dA0KKwkJew0KKwkJCWdldA0KKwkJCXsNCisJCQkJaWYgKF9Db250ZXh0ID09IG51bGwpDQorCQkJCXsNCisJCQkJCUlSZXF1ZXN0Q29tbWFuZCByYyA9IENvbW1hbmQ7DQorCQkJCQlpZiAocmMgPT0gbnVsbCkgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbigiQ29tbWFuZD09bnVsbCIsICJWaWV3SGVscGVyLkNvbnRleHQiKTsNCisJCQkJCV9Db250ZXh0ID0gQ2F0YWxvZy5HZXRSZXF1ZXN0Q29udGV4dChyYyk7DQorCQkJCX0NCisJCQkJcmV0dXJuIF9Db250ZXh0Ow0KKwkJCX0NCisJCX0NCisNCisJCXB1YmxpYyBJUHJvZmlsZSBQcm9maWxlDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIENvbnRleHQuUHJvZmlsZTsgfQ0KKwkJCXNldCB7IENvbnRleHQuUHJvZmlsZSA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkjZW5kcmVnaW9uIA0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL0lFbnRyeUxpc3QuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9JRW50cnlMaXN0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjMTIxNzEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9JRW50cnlMaXN0LmNzCkBAIC0wLDAgKzEsMjIgQEAKK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gQSBsaXN0IG9mIGEgc2V0IG9mIEZpZWxkcywgc3VjaCBhcyBkaXNwbGF5ZWQgYXMgdGhlIHJlc3VsdCBvZiBhIHF1ZXJ5Lg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlwdWJsaWMgaW50ZXJmYWNlIElFbnRyeUxpc3QgOiBJTGlzdA0KKwl7DQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQ3JlYXRlIGFuZCBJbnNlcnQgYSBuZXcgZW50cnkgb2JqZWN0IGF0IGluZGV4IDAuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJb2JqZWN0IEluc2VydChzdHJpbmcga2V5KTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBZGQgYSBlbnRyeSBvYmplY3QgYmFzZWQgb24gYW4gSURpY3Rpb25hcnkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJyb3ciPjwvcGFyYW0+DQorCQl2b2lkIEFkZEVudHJ5KElEaWN0aW9uYXJ5IHJvdyk7DQorDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvSUtleVZhbHVlLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvSUtleVZhbHVlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0ZTI5Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9JS2V5VmFsdWUuY3MKQEAgLTAsMCArMSw1MSBAQAorIC8qDQorICogQ29weXJpZ2h0IDIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyAqIA0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKiANCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqIA0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8NCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gUmVwcmVzZW50IGEga2V5L3ZhbHVlIHBhaXIsIA0KKwkvLy8gYXMgc3RvcmVkIGluIGFuIElEaWN0aW9uYXJ5IG9yIGRpc3BsYXllZCANCisJLy8vIGJ5IGEgbGlzdCBpbiBhIHVzZXIgaW50ZXJmYWNlLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gPHJlbWFya3M+DQorCS8vLyBUaGUgVGV4dCBtZXRob2QgcmV0dXJucyB0aGUgc3RyaW5nIGZvcm0gb2YgVmFsdWUsDQorCS8vLyB3aGljaCBpcyB1c2VmdWwgZm9yIHRleHQtYmFzZWQgY29udHJvbHMuDQorCS8vLyA8L3JlbWFya3M+DQorCS8vLyANCisJcHVibGljIGludGVyZmFjZSBJS2V5VmFsdWUNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRoZSBLZXkgcHJvcGVydHkgdW5kZXIgd2hpY2ggdGhlIFZhbHVlIGlzIHN0b3JlZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlzdHJpbmcgS2V5IHsgZ2V0OyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUaGUgVmFsdWUgc3RvcmVkIGZvciB0aGUgS2V5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCW9iamVjdCBWYWx1ZSB7IGdldDsgc2V0OyB9DQorDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVGhlIFZhbHVlIGluIGl0cyBzdGFuZGFyZCBzdHJpbmcgZm9ybWF0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXN0cmluZyBUZXh0IHsgZ2V0OyBzZXQ7IH0NCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9JS2V5VmFsdWVMaXN0LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvSUtleVZhbHVlTGlzdC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzU4NGEzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvSUtleVZhbHVlTGlzdC5jcwpAQCAtMCwwICsxLDEyIEBACit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQorDQorbmFtZXNwYWNlIE5leHVzLkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIExpc3QgS2V5VmFsdWUgb2JqZWN0cy4NCisJLy8vIDwvc3VtbWFyeT4NCisJcHVibGljIGludGVyZmFjZSBJS2V5VmFsdWVMaXN0IDogSUxpc3QNCisJew0KKwkJc3RyaW5nIFZhbHVlRm9yKHN0cmluZyBrZXkpOw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL0lSZXF1ZXN0Q2F0YWxvZy5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL0lSZXF1ZXN0Q2F0YWxvZy5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MWNjMGU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvSVJlcXVlc3RDYXRhbG9nLmNzCkBAIC0wLDAgKzEsMTYwIEBACisvKg0KKyAqIENvcHlyaWdodCAyMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKiANCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KK3VzaW5nIEFnaWxpdHkuQ29yZTsNCit1c2luZyBOZXh1cy5Db3JlLkhlbHBlcnM7DQordXNpbmcgTmV4dXMuQ29yZS5UYWJsZXM7DQorDQorbmFtZXNwYWNlIE5leHVzLkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vICBFeHRlbmQgSUNhdGFsb2cgdG8gYXV0b21hdGljYWxseSBzZXQgSUZpZWxkVGFibGUsIA0KKwkvLy8gIElNZXNzYWdlVGFibGUgYW5kIHByb3ZpZGUgY29udmVuaWVuY2UgbWV0aG9kcyBbT1ZSLThdLiANCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlwdWJsaWMgaW50ZXJmYWNlIElSZXF1ZXN0Q2F0YWxvZyA6IElDYXRhbG9nDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHRoZSBGaWVsZFRhYmxlIGZvciB0aGlzIENhdGFsb2cuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIFRoZSBHZXRSZXF1ZXN0IG1ldGhvZHMgInN0YW1wIiB0aGUgQ29udGV4dCANCisJCS8vLyB3aXRoIGEgcmVmZXJlbmNlIHRvIHRoZSBGaWVsZFRhYmxlLCANCisJCS8vLyBhbW9uZyBvdGhlciB0aGluZ3MuDQorCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCUlGaWVsZFRhYmxlIEZpZWxkVGFibGUgeyBnZXQ7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEV4ZWN1dGUgYmVmb3JlIGEgQ29tbWFuZCBjYWxsZWQgdmlhIEV4ZWN1dGVWaWV3LiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gT2YgY291cnNlLCBhIElSZXF1ZXN0Q2hhaW4gbWF5IGJlIHVzZWQgaGVyZSB0b28uDQorCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCS8vLyANCisJCUlSZXF1ZXN0Q29tbWFuZCBQcmVPcCB7IGdldDsgc2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRXhlY3V0ZSBhZnRlciBhIENvbW1hbmQgY2FsbGVkIHZpYSBFeGVjdXRlVmlldy4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIE9mIGNvdXJzZSwgYSBJUmVxdWVzdENoYWluIG1heSBiZSB1c2VkIGhlcmUgdG9vLg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQkvLy8gDQorCQlJUmVxdWVzdENvbW1hbmQgUG9zdE9wIHsgZ2V0OyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBEZWZhdWx0IElWaWV3SGVscGVyIGluc3RhbmNlIGZvciB0aGlzIENhdGFsb2cuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIFNldCBpbiBjYXRhbG9ncyBmb3IgYXBwbGljYXRpb25zIHRoYXQgdXNlIFZpZXdIZWxwZXJzLg0KKwkJLy8vIFRoZSBvYmplY3Qgc2hvdWxkIGJlIGEgbm9uLXNpbmdsZXRvbiBpbnN0YW5jZSAoInByb3R5cGUiKS4NCisJCS8vLyBVc2VkIGJ5IEdldEhlbHBlckZvci4NCisJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJLy8vIA0KKwkJSVZpZXdIZWxwZXIgVmlld0hlbHBlciB7IGdldDsgc2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gT2J0YWluIGFuIG9iamVjdCBmb3IgSUQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJuYW1lIj5PdXIgb2JqZWN0IElEPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5vYmplY3QgZm9yIG5hbWU8L3JldHVybnM+DQorCQlvYmplY3QgR2V0T2JqZWN0KHN0cmluZyBuYW1lKTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBPYnRhaW4gYSBkZWZhdWx0IElWaWV3SGVscGVyIGluc3RhbmNlLCANCisJCS8vLyBjb25maWd1cmVkIGZvciB0aGUgc3BlY2lmaWVkIGNvbW1hbmQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb21tYW5kIj5UaGUgQ29tbWFuZCBJRDwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+SGVscGVyIGluc3RhbmNlIGZvciBjb21tYW5kPC9yZXR1cm5zPg0KKwkJSVZpZXdIZWxwZXIgR2V0SGVscGVyRm9yKHN0cmluZyBjb21tYW5kKTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBPYnRhaW4gQ29tbWFuZCBhbmQgdmVyaWZ5IHRoYXQgaW5zdGFuY2UgaXMgYSBJUmVxdWVzdENvbW1hbmQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb21tYW5kIj5Db21tYW5kIElEPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5JUmVxdWVzdENvbW1hbmQgaW5zdGFuY2UgZm9yIG5hbWU8L3JldHVybnM+DQorCQkvLy8gPGV4Y2VwdGlvbiBjcmVmPSJFeGNlcHRpb24iPg0KKwkJLy8vIFRocm93cyBFeGNlcHRpb24gaWYgbmFtZSBpcyBudWxsLCANCisJCS8vLyBuYW1lIGlzIG5vdCBpbiBjYXRhbG9nLCANCisJCS8vLyBvciBpZiBpbnN0YW5jZSBmb3IgbmFtZSBpcyBub3QgYSBJUmVxdWVzdENvbW1hbmQNCisJCS8vLyA8L2V4Y2VwdGlvbj4NCisJCUlSZXF1ZXN0Q29tbWFuZCBHZXRSZXF1ZXN0Q29tbWFuZChzdHJpbmcgY29tbWFuZCk7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gT2J0YWluIGEgSVJlcXVlc3RDb250ZXh0IGZvciBjb21tYW5kIElELCANCisJCS8vLyBpbmNsdWRpbmcgZW1iZWRkZWQgcmVzb3VyY2VzIGxpa2UgdGhlIEZpZWxkVGFibGUsDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJuYW1lIj5PdXIgY29tbWFuZCBJRDwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+SVJlcXVlc3RDb250ZXh0IHdpdGggZW1iZWRkZWQgcmVzb3VyY2VzLjwvcmV0dXJucz4NCisJCS8vLyANCisJCUlSZXF1ZXN0Q29udGV4dCBHZXRSZXF1ZXN0Q29udGV4dChzdHJpbmcgbmFtZSk7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gT2J0YWluIGEgSVJlcXVlc3RDb250ZXh0IGZvciBjb21tYW5kIElELCANCisJCS8vLyBpbmNsdWRpbmcgZW1iZWRkZWQgcmVzb3VyY2VzIGxpa2UgdGhlIEZpZWxkVGFibGUsDQorCQkvLy8gYW5kIHByb2Nlc3Mgc3RyaW5nLWJhc2VkIGlucHV0LiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9Im5hbWUiPk91ciBjb21tYW5kIElEPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iaW5wdXQiPk91ciBpbnB1dCB2YWx1ZXM8L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPklSZXF1ZXN0Q29udGV4dCB3aXRoIGVtYmVkZGVkIHJlc291cmNlcy48L3JldHVybnM+DQorCQkvLy8gDQorCQlJUmVxdWVzdENvbnRleHQgR2V0UmVxdWVzdENvbnRleHQoc3RyaW5nIG5hbWUsIElEaWN0aW9uYXJ5IGlucHV0KTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBPYnRhaW4gYSBJUmVxdWVzdENvbnRleHQgZm9yIHRoZSBjb21tYW5kLCANCisJCS8vLyBpbmNsdWRpbmcgZW1iZWRkZWQgcmVzb3VyY2VzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29tbWFuZCI+T3VyIGNvbW1hbmQ8L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPklSZXF1ZXN0Q29udGV4dCB3aXRoIGVtYmVkZGVkIHJlc291cmNlcy48L3JldHVybnM+DQorCQkvLy8gDQorCQlJUmVxdWVzdENvbnRleHQgR2V0UmVxdWVzdENvbnRleHQoSVJlcXVlc3RDb21tYW5kIGNvbW1hbmQpOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIE9idGFpbiBhbmQgZXhlY3V0ZSBhIElSZXF1ZXN0Q29udGV4dC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9Im5hbWUiPk91ciBjb21tYW5kIElEPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5Db250ZXh0IGFmdGVyIGV4ZWN1dGlvbjwvcmV0dXJucz4NCisJCS8vLyANCisJCUlSZXF1ZXN0Q29udGV4dCBFeGVjdXRlUmVxdWVzdChzdHJpbmcgbmFtZSk7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRXhlY3V0ZSBhIElSZXF1ZXN0Q29udGV4dC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRleHQiPkNvbnRleHQgdG8gZXhlY3V0ZTwvcGFyYW0+DQorCQkvLy8gDQorCQl2b2lkIEV4ZWN1dGVSZXF1ZXN0KElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBFeGVjdXRlIGEgSVJlcXVlc3RDb250ZXh0IGFzIHBhcnQgb2YgYSBjaGFpbiANCisJCS8vLyBjcmVhdGVkIHdpdGggdGhlIFByZU9wIGFuZCBQb3N0T3AgY29tbWFuZHMgKGlmIGFueSkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIEFtb25nIG90aGVyIHRoaW5ncywgdGhlIFByZU9wL1Bvc3RPcCBjaGFpbiBtYXkgdHJhbnNmZXIgDQorCQkvLy8gZGF0YSBiZXR3ZWVuIHRoZSBDcml0ZXJpYSBhbmQgdGhlIHJvb3QgQ29udGV4dC4NCisJCS8vLyA8L3A+PHA+DQorCQkvLy8gVGhlIFByZU9wL1Bvc3RPcCBjaGFpbiBhY3RzIGFzIGEgRnJvbnQgQ29udHJvbGxlciANCisJCS8vLyBpbiB0aGF0IGl0IGVuc3VyZXMgY2VydGFpbiB0YXNrcyBhcmUgcGVyZm9ybSANCisJCS8vLyB1cG9uIGV2ZXJ5IHJlcXVlc3QuIA0KKwkJLy8vIDwvcD48cD4NCisJCS8vLyBJVmlld0hlbHBlciBpbXBsZW1lbnRhdGlvbnMgYXJlIGV4cGVjdGVkIHRvIA0KKwkJLy8vIGNhbGwgRXhlY3V0ZVZpZXcgdG8gImludm9rZSB0aGUgSGVscGVyJ3MgY29tbWFuZCIuDQorCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+Q29udGV4dCB0byBleGVjdXRlPC9wYXJhbT4NCisJCS8vLyANCisJCXZvaWQgRXhlY3V0ZVZpZXcoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpOw0KKw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL0lSZXF1ZXN0Q2hhaW4uY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9JUmVxdWVzdENoYWluLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4ZTEwMzYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9JUmVxdWVzdENoYWluLmNzCkBAIC0wLDAgKzEsMTEgQEAKK3VzaW5nIEFnaWxpdHkuQ29yZTsNCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gQ29tcG9zaXRlIElDaGFpbiBhbmQgSVJlcXVlc3RDb21tYW5kLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlwdWJsaWMgaW50ZXJmYWNlIElSZXF1ZXN0Q2hhaW4gOiBJQ2hhaW4sIElSZXF1ZXN0Q29tbWFuZA0KKwl7DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvSVJlcXVlc3RDb21tYW5kLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvSVJlcXVlc3RDb21tYW5kLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxZjI2OTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9JUmVxdWVzdENvbW1hbmQuY3MKQEAgLTAsMCArMSwxNDYgQEAKKy8qDQorICogQ29weXJpZ2h0IDIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyAqIA0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKiANCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqIA0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8NCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgQWdpbGl0eS5Db3JlOw0KKw0KK25hbWVzcGFjZSBOZXh1cy5Db3JlDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBFeHRlbmQgSUNvbW1hbmQgdG8gdXRpbGl6ZSBhbiBJUmVxdWVzdENvbnRleHQgW09WUi05XQ0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gPHJlbWFya3M+PHA+DQorCS8vLyBSYXRoZXIgdGhhbiBoYXZlIGVhY2ggY29tbWFuZCBjYXN0IGl0cyBjb250ZXh0IHRvIGFuIA0KKwkvLy8gSVJlcXVlc3RDb250ZXh0LCANCisJLy8vIHByb3ZpZGUgYSBJUmVxdWVzdENvbW1hbmQgd2l0aCBhbiBhbHRlcm5hdGl2ZSBzaWduYXR1cmUuIA0KKwkvLy8gPC9wPjwvcmVtYXJrcz4NCisJLy8vIA0KKwlwdWJsaWMgaW50ZXJmYWNlIElSZXF1ZXN0Q29tbWFuZCA6IElDb21tYW5kDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBbiBpZGVudGlmaWVyIGZvciB0aGlzIENvbW1hbmQuIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz4NCisJCS8vLyBDb3JyZXNwb25kcyB0byB0aGUgQ29tbWFuZCBwcm9wZXJ0eSBvZiBJSGVscGVyQ29udGV4dC4gDQorCQkvLy8gPC9yZW1hcmtzPg0KKwkJLy8vIDxyZXR1cm5zPkFuIGlkZW50aWZpZXIgZm9yIHRoaXMgQ29tbWFuZC48L3JldHVybnM+DQorCQkvLy8gDQorCQlzdHJpbmcgSUQgeyBnZXQ7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEFuIGlkZW50aWZpZXIgZm9yIGEgUXVlcnkgYXNzb2NpYXRlZCB3aXRoIHRoaXMgQ29tbWFuZCAoaWYgYW55KS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+DQorCQkvLy8gSWYgUXVlcnkgaXMgbm90IHNldCwgdGhlbiBJRCBpcyByZXR1cm5lZCBpbnN0ZWFkLiANCisJCS8vLyAoVGhlIGRlZmF1bHQgUXVlcnlJRCBpcyB0aGUgY29tbWFuZCBJRC4pIA0KKwkJLy8vIDwvcmVtYXJrcz4NCisJCS8vLyA8cmV0dXJucz5BbiBpZGVudGlmaWVyIGZvciB0aGlzIENvbW1hbmQuPC9yZXR1cm5zPg0KKwkJc3RyaW5nIFF1ZXJ5SUQgeyBnZXQ7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEZhY3RvcnkgbWV0aG9kIHRvIHByb3ZpZGUgYW4gZW1wdHkgY29udGV4dCB0aGF0IGNhbiBiZSB1c2VkIA0KKwkJLy8vIHdpdGggdGhlIENvbW1hbmQgaW5zdGFuY2UuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZXR1cm5zPkNvbnRleHQgaW5zdGFuY2Ugd2l0aCBDb21tYW5kIElEIHNldC48L3JldHVybnM+DQorCQkvLy8gDQorCQlJUmVxdWVzdENvbnRleHQgTmV3Q29udGV4dCgpOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEZpZWxkIElEcyByZXF1aXJlZCBieSB0aGlzIENvbW1hbmQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIElmIHJlcXVpc2l0ZSBmaWVsZHMgYXJlIG5vdCBwcmVzZW50IGluIHRoZSBtYWluIENvbnRleHQsIA0KKwkJLy8vIGFwcHJvcHJpYXRlIGVycm9ycyBzaG91bGQgYmUgcG9zdGVkIHRvIHRoZSBFcnJvcnMgcHJvcGVydHksIA0KKwkJLy8vIHNvIHRoYXQgdGhlIGNsaWVudCBjYW4gY29ycmVjdCB0aGUgb3ZlcnNpZ2h0IGFuZCByZXN1Ym1pdCB0aGUgcmVxdWVzdC4NCisJCS8vLyA8L3A+PHA+DQorCQkvLy8gVGhlIFJlbGF0ZWRJRHMgcHJvcGVydHkgbWF5IGJlIHVzZWQgYnkgdGhlIGNvbW1hbmQgaXRzZWxmLCANCisJCS8vLyBvciBieSBhIGNvbGxhYm9yYXRpbmcgImNvbnZlcnNpb24iIGNvbW1hbmQsIA0KKwkJLy8vIHRvIGNvbmZpcm0gdGhhdCByZWxhdGVkIGZpZWxkcywgd2hlbiBwcmVzZW50LCBhcmUgaW4gdGhlIGV4cGVjdGVkIGZvcm1hdC4gDQorCQkvLy8gPC9wPjxwPg0KKwkJLy8vIFRoZSBSZWxhdGVkSURzIHByb3BlcnR5IG1heSBiZSB1c2VkIGJ5IHRoZSBjb21tYW5kIGl0c2VsZiwgDQorCQkvLy8gb3IgYnkgYSBjb2xsYWJvcmF0aW5nICJ2YWxpZGF0aW9uIiBjb21tYW5kLCANCisJCS8vLyB0byBjb25maXJtIHRoYXQgcmVsYXRlZCBmaWVsZHMsIHdoZW4gcHJlc2VudCwgYXJlIGluIHRoZSBleHBlY3RlZCBmb3JtYXQuIA0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQlJTGlzdCBSZXF1aXJlZElEcyB7IGdldDsgc2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQWRkIGEgSUxpc3Qgb2YgSURzIHRvIHRoZSBsaXN0IG9mIHtAbGluayBSZXF1aXJlZElkc30uDQorCQkvLy88L3N1bW1hcnk+DQorCQlJTGlzdCBBZGRSZXF1aXJlZElEcyB7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJlY29yZCBGaWVsZENvbnRleHQgSURzIHJlbGF0ZWQgdG8gdGhpcyBDb21tYW5kLCBpbmNsdWRpbmcgYW55IFJlcXVpcmVkSURzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBJZiBhIEZpZWxkIElEIGlzIG5vdCBzcGVjaWZpZWQgYXMgYSAgUmVsYXRlZElEIG9yIGEgUmVxdWlyZWRJRCwgDQorCQkvLy8gdGhhbiBpdCBtYXkgbm90IGJlIHBhc3NlZCBmcm9tIHRoZSBDcml0ZXJpYSB0byB0aGUgbWFpbiBDb250ZXh0LCANCisJCS8vLyBhbmQgc28gd2lsbCBub3QgYmUgYXZhaWxhYmxlIHRvIHRoZSBDb21tYW5kLiANCisJCS8vLyA8L3A+PHA+DQorCQkvLy8gQXMgdGhlIGZpZWxkIGlzIHBhc3NlZCBmcm9tIHRoZSBGaWVsZHN0YXRlIHRvIHRoZSBtYWluIENvbnRleHQsIA0KKwkJLy8vIGl0IG1heSBhbHNvIGJlIGNvbnZlcnRlZCB0byB0aGUgYXBwcm9wcmlhdGUgRGF0YVR5cGUgb3Igc3RyaW5nIGZvcm1hdC4gDQorCQkvLy8gQSBjb2xsYWJvcmF0aW5nIENvbW1hbmQgbWF5IHJlZmVyZW5jZSB0aGUgRmllbGRUYWJsZSBpbiBhIElOZXh1c0NvbnRleHQgDQorCQkvLy8gdG8gYXNjZXJ0YWluIHRoZSBleHBlY3RlZCB0eXBlIG9yIGZvcm1hdCBmb3IgYSB2YWx1ZSBhbmQgDQorCQkvLy8gdG8gb2J0YWluIHRoZSBhcHByb3ByaWF0ZSBlcnJvciBtZXNzYWdlcyBmb3IgZWFjaCBmaWVsZC4gDQorCQkvLy8gPC9wPjxwPg0KKwkJLy8vIFRoZSBSZWxhdGVkSURzIHByb3BlcnR5IG1heSBiZSB1c2VkIGJ5IHRoZSBjb21tYW5kIGl0c2VsZiwgDQorCQkvLy8gb3IgYnkgYSBjb2xsYWJvcmF0aW5nICJjb252ZXJzaW9uIiBjb21tYW5kLCANCisJCS8vLyB0byBjb25maXJtIHRoYXQgcmVsYXRlZCBmaWVsZHMsIHdoZW4gcHJlc2VudCwgYXJlIGluIHRoZSBleHBlY3RlZCBmb3JtYXQuIA0KKwkJLy8vIDwvcD48cD4NCisJCS8vLyBTaW5jZSBwb3N0aW5nIGVycm9ycyBhbmQgbWVzc2FnZXMgaXMgYSBzcGVjaWFsaXplZCBjb25jZXJuLCANCisJCS8vLyBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IGNvbGxhYm9yYXRpbmcgQ29tbWFuZHMgaGFuZGxlIHZhbGlkYXRpb24gYW5kIGNvbmZpcm1hdGlvbi4NCisJCS8vLyA8L3A+PHA+DQorCQkvLy8gQSBjb2xsYWJvcmF0aW5nIENvbW1hbmQgbWF5IHJlZmVyZW5jZSB0aGUgRmllbGRUYWJsZSBpbiBhIElOZXh1c0NvbnRleHQgDQorCQkvLy8gdG8gYXNjZXJ0YWluIHRoZSBleHBlY3RlZCBmb3JtYXQgZm9yIGEgdmFsdWUgYW5kIA0KKwkJLy8vIHRvIG9idGFpbiB0aGUgYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZXMgZm9yIGVhY2ggZmllbGQuIA0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQlJTGlzdCBSZWxhdGVkSURzIHsgZ2V0OyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBZGQgYSBJTGlzdCBvZiBJRHMgdG8gdGhlIGxpc3Qgb2Yge0BsaW5rIFJlbGF0ZWRJZHN9Lg0KKwkJLy8vPC9zdW1tYXJ5Pg0KKwkJSUxpc3QgQWRkUmVsYXRlZElEcyB7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJlY29yZCBGaWVsZCBJRHMgcHJvdmlkZWQgZHVyaW5nIHRoZSBwcm9jZXNzaW5nIG9mIGEgQ2hhaW4uIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBXaGVuIENvbW1hbmRzIGFyZSBjaGFpbmVkLCB0aGUgb3V0cHV0IGZyb20gb25lIENvbW1hbmQgbWF5IGJlICB1c2VkIA0KKwkJLy8vIGFzIGlucHV0IGZvciBhbm90aGVyIENvbW1hbmQuIElmIGEgY29sbGFib3JhdGluZyBDb21tYW5kIGlzIA0KKwkJLy8vIHZhbGlkYXRpbmcgdGhlIENyaXRlcmlhIGZvciByZXF1aXJlZCBpbnB1dCwgcHJpb3IgdG8gcHJvY2Vzc2luZywgDQorCQkvLy8gdGhlbiBSdW50aW1lIEZpZWxkSURzIG1heSBiZSBleGNsdWRlZCBmcm9tIHRoZSBzZXQgb2YgUmVxdWlyZWRJRHMuIA0KKwkJLy8vIDwvcD48cD4NCisJCS8vLyBUaGUgUnVudGltZUlEcyBhcmUgZXhwZWN0ZWQgdG8gYmUgc2V0IG9uIGEgQ2hhaW4gcmF0aGVyIHRoYW4gYW4gaW5kaXZpZHVhbCANCisJCS8vLyBDb21tYW5kLiBUaGUgcHJvcGVydHkgaXMgYSBtZW1iZXIgb2YgdGhlIElOZXh1c0NvbW1hbmQgaW50ZXJmYWNlIHNvIHRoYXQgDQorCQkvLy8gQ29tbWFuZCBhbmQgQ2hhaW5zIGNhbiBvYnNlcnZlIHRoZSBzdWJzdGl0dXRpb24gcHJpbmNpcGxlLg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQlJTGlzdCBSdW50aW1lSURzIHsgZ2V0OyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBZGQgYSBJTGlzdCBvZiBJRHMgdG8gdGhlIGxpc3Qgb2Yge0BsaW5rIFJ1bnRpbWVJZHN9Lg0KKwkJLy8vPC9zdW1tYXJ5Pg0KKwkJSUxpc3QgQWRkUnVudGltZUlEcyB7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEludm9rZSB0aGUgYnVzaW5lc3Mgb3BlcmF0aW9uLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBFeHBlY3RlZCB0byBiZSBjYWxsZWQgZnJvbSBFeGVjdXRlIGFzIGEgY2FzdGluZyBjb252ZW5pZW5jZS4NCisJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5Db250ZXh0IHRvIHByb2Nlc3MuPC9wYXJhbT4NCisJCS8vLyANCisJCWJvb2wgUmVxdWVzdEV4ZWN1dGUoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpOw0KKw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL0lSZXF1ZXN0Q29udGV4dC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL0lSZXF1ZXN0Q29udGV4dC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZWMyNWE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvSVJlcXVlc3RDb250ZXh0LmNzCkBAIC0wLDAgKzEsMjgzIEBACisvKg0KKyAqIENvcHlyaWdodCAyMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKiANCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBBZ2lsaXR5LkNvcmU7DQordXNpbmcgTmV4dXMuQ29yZS5Qcm9maWxlOw0KK3VzaW5nIE5leHVzLkNvcmUuVGFibGVzOw0KKw0KK25hbWVzcGFjZSBOZXh1cy5Db3JlDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBFeGNoYW5nZSBkYXRhIGJldHdlZW4gYnVzaW5lc3MgYW5kIHByZXNlbnRhdGlvbiBsYXllcnMgW09WUi03XS4gDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyA8cmVtYXJrcz48cD4NCisJLy8vIEFuIElSZXF1ZXN0Q29udGV4dCBjYW4gcHJlZGVmaW5lIHdoYXRldmVyIHByb3BlcnRpZXMgd2UgbmVlZCBmb3IgDQorCS8vLyBzdG9yaW5nIGlucHV0LCBvdXRwdXQsIG1lc3NhZ2VzLCBhbmQgb3RoZXIgY29tbW9uIGF0dHJpYnV0ZXMsIA0KKwkvLy8gaW5jbHVkaW5nIExvY2FsZSAob3IgQ3VsdHVyZSkgYW5kIHVzZXIgY3JlZGVudGlhbHMuIA0KKwkvLy8gPC9wPjxwPg0KKwkvLy8gQSBrZXkgbWVtYmVyIGlzIHRoZSBGaWVsZFRhYmxlLiANCisJLy8vIFRoZSBGaWVsZFRhYmxlIHVzZXMgWEZvcm1zIHRlcm1pbm9sb2d5IGZvciBpdHMgbWVtYmVycyANCisJLy8vIGFuZCBJUmVxdWVzdENvbnRleHQgbWVtYmVycyBmb2xsb3cgc3VpdC4gDQorCS8vLyBGb3IgZXhhbXBsZSwgImVycm9ycyIgYXJlIGNhbGxlZCAiQWxlcnRzIiBhbmQgZ2VuZXJpYyANCisJLy8vIG1lc3NhZ2VzIGFyZSBjYWxsZWQgIkhpbnRzLCANCisJLy8vIHNpbmNlIHRoZXNlIGFyZSB0ZXJtcyB1c2VkIGJ5IHRoZSBGaWVsZFRhYmxlIGFuZCBYRm9ybXMuDQorCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkvLy8gDQorCXB1YmxpYyBpbnRlcmZhY2UgSVJlcXVlc3RDb250ZXh0IDogSUNvbnRleHQNCisJew0KKwkJI3JlZ2lvbiBQcm9jZXNzaW5nIA0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIElkZW50aWZ5IHRoZSB0b3AtbGV2ZWwgQ29tbWFuZCAob3IgQ2hhaW4pIHByb2Nlc3NpbmcgDQorCQkvLy8gdGhpcyBDb250ZXh0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48UD4NCisJCS8vLyBUaGUgQ29tbWFuZCBwcm9wZXJ0eSBjb3JyZXNwb25kcyB0byBJRCBvZiBJTmV4dXNDb21tYW5kIA0KKwkJLy8vIGZvciB0aGUgaW5pdGlhbCBDb21tYW5kIG9yIENoYWluLg0KKwkJLy8vIDwvUD48L3JlbWFya3M+DQorCQkvLy8gDQorCQlzdHJpbmcgQ29tbWFuZCB7IGdldDsgc2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSB0aGUgdG9wLWxldmVsIENvbW1hbmQgKG9yIENoYWluKSBwcm9jZXNzaW5nIHRoaXMgQ29udGV4dC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gQ29tbWFuZCBjb3JyZXNwb25kcyB0byBJRCBvZiBJTmV4dXNDb21tYW5kIGZvciB0aGUgDQorCQkvLy8gaW5pdGlhbCBDb21tYW5kIG9yIENoYWluLg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQkvLy8gDQorCQlJUmVxdWVzdENvbW1hbmQgQ29tbWFuZEJpbiB7IGdldDsgc2V0OyB9DQorDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSB0aGUgRmllbGRUYWJsZSBmb3IgdGhpcyBDb250ZXh0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB1c2VzIHRoZSBDYXRhbG9nIHRvIGluamVjdCB0aGUgZ2xvYmFsIA0KKwkJLy8vIEZpZWxkIFRhYmxlIHJlZmVyZW5jZS4gDQorCQkvLy8gVGhlIENvbnRleHQsIGFuZCBtZW1iZXJzIHdpdGggYWNjZXNzIHRvIGEgQ29udGV4dCwgDQorCQkvLy8gY2FuIHVzZSB0aGUgRmllbGRUYWJsZSB0byB2YWxpZGF0ZSBhbmQgZm9ybWF0IHZhbHVlcywgDQorCQkvLy8gYW5kIGV2ZW4gdG8gY3JlYXRlIGNvbnRyb2xzIHRoYXQgZGlzcGxheSB2YWx1ZXMuDQorCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCS8vLyANCisJCUlGaWVsZFRhYmxlIEZpZWxkVGFibGUgeyBnZXQ7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFVzZXIgcHJvZmlsZSwgd2hpY2ggaW5jbHVkZXMgdXNlciBJRCBhbmQgTG9jYWxlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCUlQcm9maWxlIFByb2ZpbGUgeyBnZXQ7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJldHVybiB0cnVlIGlmIGFuIE91dGNvbWUgb2JqZWN0IGlzIHByZXNlbnQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZXR1cm5zPlRydWUgaWYgYW4gT3V0Y29tZSBjb250ZXh0IGlzIHByZXNlbnQuPC9yZXR1cm5zPg0KKwkJLy8vIA0KKwkJYm9vbCBIYXNPdXRjb21lIHsgZ2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmV0dXJuIGEgSUxpc3Qgc3RvcmVkIHVuZGVyIHRoZSBDb21tYW5kIElELCBpZiBhbnkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIFNvbWUgQ29tbWFuZHMgcmV0dXJucyBMaXN0IG9mIHZhbHVlcy4NCisJCS8vLyBTbyB0aGF0IENvbW1hbmRzIGNhbiB3b3JrIHRvZ2V0aGVyIGFzIHBhcnQgb2YgYSBDaGFpbiwgDQorCQkvLy8gbGlzdC1iYXNlZCBDb21tYW5kcyBhcmUgZXhwZWN0ZWQgdG8gc3RvcmUgdGhlIA0KKwkJLy8vIGxpc3QgdW5kZXIgdGhlaXIgb3duIENvbW1hbmQgSUQuDQorCQkvLy8gT3V0Y29tZSBpcyBhIGNvbnZlbmllbmNlIG1ldGhvZCB0byBhY2Nlc3MgdGhlIA0KKwkJLy8vIGluaXRpYWwgb3IgIm91dGVybW9zdCIgQ29tbWFuZCBvciBDaGFpbiBJRC4gDQorCQkvLy8gPC9wPg0KKwkJLy8vIDxwPg0KKwkJLy8vIFRvIGFsbG93IHVzZSBhcyBzdWJjb21tYW5kcyBpbiBhIENoYWluLCANCisJCS8vLyBJUmVxdWVzdENvbW1hbmQgaW1wbGVtZW50YXRpb25zIHNob3VsZCBwcmVmZXIgdGhlIGlkaW9tIA0KKwkJLy8vIDxjb2RlPkNvbnRleHRbSURdID0gb2JqZWN0PC9jb2RlPg0KKwkJLy8vIHRvIHVzaW5nIHRoZSBPdXRjb21lIGRpcmVjdGx5LiANCisJCS8vLyBTaW5jZSB0aGV5IG1pZ2h0IG5vdCBiZSB0aGUgaW5pdGlhbCBDb21tYW5kLA0KKwkJLy8vIGJ1dCByYXRoZXIgYSBzdWJjb21tYW5kLCBvciBsaW5rLCBpbiBhIENoYWluLg0KKwkJLy8vIDwvcD48cD4NCisJCS8vLyBPdXRjb21lIGlzIG1vcmUgY29udmVuaWVudCB0byBwcmVzZW50YXRpb24gbGF5ZXIgY2xpZW50cywgDQorCQkvLy8gd2hvIGFyZSBsb29raW5nIGZvciB0aGUgdG9wLWxldmVsIG91dHB1dCwgDQorCQkvLy8gcmF0aGVyIHRoYW4gb3V0cHV0IG9mIGEgcGFydGljdWxhciBzdWJjb21tYW5kLg0KKwkJLy8vIDwvcD48cD4NCisJCS8vLyBBcyBtZW50aW9uZWQsIGJvdGggT3V0Y29tZSBhbmQgdGhlIGNvbnRleHRbSURdIGlkaW9tIA0KKwkJLy8vIGNhbiBiZSB1c2VkIGJ5IENvbW1hbmQgdGhhdCByZXR1cm4gbGlzdHMgb2YgdmFsdWVzLiANCisJCS8vLyBDb21tYW5kcyB0aGF0IHJldHVybiBhIHNpbmdsZSBzZXQgb2YgZmllbGRzIA0KKwkJLy8vIGNhbiBzdG9yZSB0aGUgcmVzdWx0IGRpcmVjdGx5IGluIHRoZSBtYWluIENvbnRleHQuIA0KKwkJLy8vIFRoaXMgc3RyYXRlZ3kgYWxsb3dzIG9uZSBDb21tYW5kIHRvIG9idGFpbiBmaWVsZCB2YWx1ZXMgDQorCQkvLy8gdG8gYmUgdXNlZCBieSBhbm90aGVyIENvbW1hbmQgDQorCQkvLy8gKGxpa2UgcGlwaW5nIG91dHB1dCBiZXR3ZWVuIFVuaXggc2hlbGwgY29tbWFuZHMuKQ0KKwkJLy8vIDwvcD48cD4NCisJCS8vLyBOb3RlIHRoYXQgIk91dGNvbWUiIGlzIGFuICJhbGlhcyIgdG8gYW4gZW50cnkgaW4gDQorCQkvLy8gdGhpcyBjb250ZXh0LiANCisJCS8vLyBVbmxpa2UgRmllbGRTdGF0ZSwgT3V0Y29tZSBpcyBub3QgYSBzdWJjb250ZXh0IA0KKwkJLy8vIGluIGl0cyBvd24gcmlnaHQuIA0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQkvLy8JDQorCQlvYmplY3QgT3V0Y29tZSB7IGdldDsgc2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5kaWNhdGUgd2hldGhlciBhIENyaXRlcmlhIGlzIHByZXNlbnQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZXR1cm5zPlRydWUgaWYgYSBDcml0ZXJpYSBpcyBwcmVzZW50LjwvcmV0dXJucz4NCisJCWJvb2wgSGFzQ3JpdGVyaWEoKTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGFuIG9wdGlvbmFsIHN1YmNvbnRleHQgY29udGFpbmluZyBpbnB1dCBvciBvdXRwdXQgDQorCQkvLy8gdmFsdWVzLCB1c3VhbGx5IGV4cHJlc3NlZCBhcyBkaXNwbGF5IHN0cmluZ3MuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPg0KKwkJLy8vIDxwPg0KKwkJLy8vIENyaXRlcmlhIGlzIHByb3ZpZGVkIGZvciBDb21tYW5kcyB0aGF0IGFjY2VwdCBpbnB1dCANCisJCS8vLyBmcm9tIG90aGVyIGNvbXBvbmVudHMgd2hpY2ggbWF5IG5lZWQgdG8gYmUgdmFsaWRhdGVkLCANCisJCS8vLyBjb252ZXJ0ZWQsIG9yIGZvcm1hdHRlZCBiZWZvcmUgdXNlLg0KKwkJLy8vIElmIHRoZSBwcm9wb3NlZCBGaWVsZFN0YXRlIGlzIGFjY2VwdGVkLCANCisJCS8vLyB0aGUgZW50cmllcyBtYXkgYmUgbWVyZ2VkIGludG8gdGhlIHJvb3QgQ29udGV4dCwgDQorCQkvLy8gcGVyaGFwcyBhZnRlciB0eXBlIGNvbnZlcnNpb24gb3IgZm9ybWF0dGluZyB0YXNrcy4NCisJCS8vLyBJZiB0aGUgcHJvcG9zZWQgRmllbGRTdGF0ZSBpcyBub3QgYWNjZXB0ZWQsIA0KKwkJLy8vIHRoZSBlbnRyaWVzIGFyZSBub3QgbWVyZ2VkIGludG8gdGhlIHJvb3QgQ29udGV4dCwgDQorCQkvLy8gYW5kIHRoZXJlIHNob3VsZCBiZSBFcnJvcnMgb3IgYSBGYXVsdCBleHBsYWluaW5nIA0KKwkJLy8vIHdoeSB0aGUgRmllbGRTdGF0ZSAoZS5nIGlucHV0KSBjYW5ub3QgYmUgYWNjZXB0ZWQuDQorCQkvLy8gPC9wPg0KKwkJLy8vIDxwPg0KKwkJLy8vIEluIHByYWN0aWNlLCBpdCBpcyBleHBlY3RlZCwgYnV0IG5vdCByZXF1aXJlZCwgdGhhdCANCisJCS8vLyBhbGwgdGhlIEZpZWxkU3RhdGUgZW50cmllcyB3aWxsIGNvbnRhaW4gc3RyaW5nIHZhbHVlcy4NCisJCS8vLyA8L3A+DQorCQkvLy8gPHA+DQorCQkvLy8gQ29tbWFuZHMgc2hvdWxkIG9ubHkgYWN0IG9uIHRoZSBDcml0ZXJpYSBpbiBvcmRlciANCisJCS8vLyB0byB0cmFuc2ZlciB2YWx1ZXMgYmV0d2VlbiB0aGUgRmllbGRTdGF0ZSBhbmQgdGhlIA0KKwkJLy8vIHJvb3QgQ29udGV4dC4gDQorCQkvLy8gQ29udmVudGlvbmFsIENvbW1hbmRzIHdpbGwgbG9vayB0byB0aGUgcm9vdCBDb250ZXh0IA0KKwkJLy8vIGZvciB0aGUgc3RhdGUgYW5kIG1ha2UgYW55IGV4cGVjdGVkIGNoYW5nZXMgDQorCQkvLy8gb3IgYWRkaXRpb25zIGRpcmVjdGx5IHRvIHRoZSByb290IGNvbnRleHQuDQorCQkvLy8gRmllbGRTdGF0ZSBpcyBub3QgZXhwZWN0ZWQgdG8gYmUgdXNlZCBieSBhIENvbW1hbmRzIA0KKwkJLy8vIHVubGVzcyBpbnB1dCBpcyBiZWluZyBzdWJtaXR0ZWQgZnJvbSBhbiB1bnRydXN0ZWQgb3IgDQorCQkvLy8gbmFpdmUgY29tcG9uZW50LCBvciBuZWVkcyB0byBiZSB0cmFuc2Zvcm1lZCBmb3IgdXNlIA0KKwkJLy8vIGJ5IGEgZGlzcGxheSBjb21wb25lbnQuDQorCQkvLy8gPC9wPg0KKwkJLy8vIDwvcmVtYXJrcz4NCisJCUlEaWN0aW9uYXJ5IENyaXRlcmlhIHsgZ2V0OyBzZXQ7IH0NCisNCisJCSNlbmRyZWdpb24gDQorDQorCQkjcmVnaW9uIE1lc3NhZ2luZw0KKw0KKwkJc3RyaW5nIEZvcm1hdFRlbXBsYXRlKHN0cmluZyB0ZW1wbGF0ZSwgc3RyaW5nIHZhbHVlKTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZWNvcmQgYSBsaXN0IG9mIGFsZXJ0IChvciBlcnJvcikgbWVzc2FnZXMsIA0KKwkJLy8vIGtleWVkIGJ5IHRoZSBmaWVsZCBjYXVzaW5nIHRoZSBtZXNzYWdlLCANCisJCS8vLyBvciB0byBhIG1hZ2ljIGdsb2JhbCBrZXkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcms+PHA+DQorCQkvLy8gVE9ETzogUmVmYWN0b3IgYXMgTmFtZVZhbHVlQ29sbGVjdGlvbiA/DQorCQkvLy8gPC9wPjwvcmVtYXJrPg0KKwkJLy8vIA0KKwkJSURpY3Rpb25hcnkgQWxlcnRzIHsgZ2V0OyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBZGQgYW4gYWxlcnQgbWVzc2FnZSB1bmRlciB0aGUgImdsb2JhbCIga2V5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0idGVtcGxhdGUiPk1lc3NhZ2UgdGVtcGxhdGUuPC9wYXJhbT4NCisJCS8vLyANCisJCXZvaWQgQWRkQWxlcnQoc3RyaW5nIHRlbXBsYXRlKTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBZGQgYW4gYWxlcnQgbWVzc2FnZSwgY3JlYXRpbmcgdGhlIGNvbnRleHQgaWYgbmVlZGVkLiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+DQorCQkvLy8gTXVsdGlwbGUgbWVzc2FnZXMgY2FuIGJlIGFkZGVkIGZvciBhIGtleSBhbmQgcmV0cmlldmVkIGFzIGEgTGlzdC4NCisJCS8vLyA8L3JlbWFya3M+DQorCQkvLy8gPHBhcmFtIG5hbWU9InRlbXBsYXRlIj5NZXNzYWdlIHRlbXBsYXRlLjwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9Im1lc3NhZ2UiPk1lc3NhZ2Uga2V5LjwvcGFyYW0+DQorCQl2b2lkIEFkZEFsZXJ0KHN0cmluZyB0ZW1wbGF0ZSwgc3RyaW5nIG1lc3NhZ2UpOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEFkZCBhIGZvcm1hdHRlZCAiQWxlcnQiIGVycm9yIG1lc3NhZ2UNCisJCS8vLyBmb3IgdGhlIGdpdmVuIGZpZWxkIGtleSB2aWEgdGhlIEZpZWxkVGFibGUuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJrZXkiPktleSBmcm9tIHRoZSBGaWVsZFRhYmxlPC9wYXJhbT4NCisJCXZvaWQgQWRkQWxlcnRGb3JGaWVsZChzdHJpbmcga2V5KTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBZGQgYSBmb3JtYXR0ZWQgIlJlcXVpcmVkIiBlcnJvciBtZXNzYWdlDQorCQkvLy8gZm9yIHRoZSBnaXZlbiBmaWVsZCBrZXkgdmlhIHRoZSBGaWVsZFRhYmxlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ia2V5Ij5LZXkgZnJvbSB0aGUgRmllbGRUYWJsZTwvcGFyYW0+DQorCQl2b2lkIEFkZEFsZXJ0UmVxdWlyZWQoc3RyaW5nIGtleSk7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5kaWNhdGUgd2hldGhlciBhbGVydHMgZXhpc3QuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZXR1cm5zPlRydWUgaWYgdGhlcmUgYXJlIGFsZXJ0cy48L3JldHVybnM+DQorCQkvLy8gDQorCQlib29sIEhhc0FsZXJ0cyB7IGdldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJlY29yZCBhbiBFeGNlcHRpb24sIGlmIHRocm93bi4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlFeGNlcHRpb24gRmF1bHQgeyBnZXQ7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEluZGljYXRlIHdoZXRoZXIgYW4gRXhjZXB0aW9uIHdhcyBjYXVnaHQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZXR1cm5zPlRydWUgaWYgYW4gRXhjZXB0aW9uIHdhcyBjYXVnaHQuPC9yZXR1cm5zPg0KKwkJLy8vIA0KKwkJYm9vbCBIYXNGYXVsdCB7IGdldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEluZGljYXRlIHdoZXRoZXIgY29udGV4dCBpcyBmcmVlIG9mIGZhdWx0IGFuZCBhbGVydHMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZXR1cm5zPlRydWUgaWYgdGhlcmUgYXJlIG5vIGZhdWx0IG9yIGFsZXJ0cy48L3JldHVybnM+DQorCQkvLy8gDQorCQlib29sIElzTm9taW5hbCB7IGdldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJlY29yZCBoaW50IChhZHZpc29yeSBvciB3YXJuaW5nKSBtZXNzYWdlcyAoIWVycm9ycyksIA0KKwkJLy8vIGtleWVkIGJ5IHRoZSBmaWVsZCBjYXVzaW5nIHRoZSBtZXNzYWdlLCANCisJCS8vLyBvciB0byBhIG1hZ2ljIGdsb2JhbCBrZXkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJSURpY3Rpb25hcnkgSGludHMgeyBnZXQ7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEFkZCBhIGhpbnQsIGNyZWF0aW5nIHRoZSBjb250ZXh0IGlmIG5lZWRlZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gTXVsdGlwbGUgaGludHMgY2FuIGJlIGFkZGVkIGZvciBhIGtleSBhbmQgDQorCQkvLy8gcmV0cmlldmVkIGFzIGEgTGlzdC4NCisJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJ0ZW1wbGF0ZSI+TWVzc2FnZSB0ZW1wbGF0ZS48L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJtZXNzYWdlIj5NZXNzYWdlIGtleS48L3BhcmFtPg0KKwkJLy8vIA0KKwkJdm9pZCBBZGRIaW50KHN0cmluZyB0ZW1wbGF0ZSwgc3RyaW5nIG1lc3NhZ2UpOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEFkZCBhIGhpbnQgdW5kZXIgdGhlICJnbG9iYWwiIGtleS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InRlbXBsYXRlIj5NZXNzYWdlIHRlbXBsYXRlLjwvcGFyYW0+DQorCQkvLy8gDQorCQl2b2lkIEFkZEhpbnQoc3RyaW5nIHRlbXBsYXRlKTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJbmRpY2F0ZSB3aGV0aGVyIGhpbnRzIGV4aXN0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmV0dXJucz5UcnVlIGlmIHRoZXJlIGFyZSBoaW50cy48L3JldHVybnM+DQorCQkvLy8gDQorCQlib29sIEhhc0hpbnRzIHsgZ2V0OyB9DQorDQorCQkjZW5kcmVnaW9uDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvS2V5VmFsdWUuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9LZXlWYWx1ZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTVkZGY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvS2V5VmFsdWUuY3MKQEAgLTAsMCArMSw4MiBAQAorLyoNCisgKiBDb3B5cmlnaHQgMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICogDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqIA0KKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICogDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIFN5c3RlbTsNCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gSW1wbGVtZW50IElLZXlWYWx1ZS4NCisJLy8vIDwvc3VtbWFyeT4NCisJW1NlcmlhbGl6YWJsZV0NCisJcHVibGljIGNsYXNzIEtleVZhbHVlIDogSUtleVZhbHVlDQorCXsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBFeHBvc2UgbmFtZSBvZiAiS2V5IiBmaWVsZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gVXNlIHRoaXMgZmllbGQgZm9yIHRoZSBEYXRhVmFsdWVGaWVsZCAoc2ljKS4NCisJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBLRVkgPSAiS2V5IjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBFeHBvc2UgbmFtZSBvZiAiVmFsdWUiIGZpZWxkLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBVc2UgdGhpcyBmaWVsZCBmb3IgdGhlIERhdGFUZXh0RmllbGQgKHNpYykuDQorCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgVkFMVUU9ICJWYWx1ZSI7DQorDQorCQlwdWJsaWMgS2V5VmFsdWUoKQ0KKwkJew0KKwkJCTsNCisJCX0NCisNCisJCXB1YmxpYyBLZXlWYWx1ZShzdHJpbmcgYUtleSwgb2JqZWN0IGFWYWx1ZSkNCisJCXsNCisJCQlfS2V5ID0gYUtleTsNCisJCQlfVmFsdWUgPSBhVmFsdWU7DQorCQl9DQorDQorCQlwcm90ZWN0ZWQgc3RyaW5nIF9LZXk7DQorDQorCQlwdWJsaWMgdmlydHVhbCBzdHJpbmcgS2V5DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9LZXk7IH0NCisJCQlzZXQgeyBfS2V5ID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXByb3RlY3RlZCBvYmplY3QgX1ZhbHVlOw0KKw0KKwkJcHVibGljIHZpcnR1YWwgb2JqZWN0IFZhbHVlDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9WYWx1ZTsgfQ0KKwkJCXNldCB7IF9WYWx1ZSA9IHZhbHVlOyB9DQorCQl9DQorDQorCQlwdWJsaWMgdmlydHVhbCBzdHJpbmcgVGV4dA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfVmFsdWUgYXMgc3RyaW5nOyB9DQorCQkJc2V0IHsgX1ZhbHVlID0gVGV4dDsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIG92ZXJyaWRlIHN0cmluZyBUb1N0cmluZygpDQorCQl7DQorCQkJcmV0dXJuIFRleHQ7DQorCQl9DQorDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvS2V5VmFsdWVMaXN0LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvS2V5VmFsdWVMaXN0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyOGM5ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9LZXlWYWx1ZUxpc3QuY3MKQEAgLTAsMCArMSwxMjcgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQorDQorbmFtZXNwYWNlIE5leHVzLkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEltcGxlbWVudCBJS2V5VmFsdWVMaXN0Lg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlwdWJsaWMgY2xhc3MgS2V5VmFsdWVMaXN0IDogSUtleVZhbHVlTGlzdA0KKwl7DQorDQorCQlwcml2YXRlIElMaXN0IGxpc3Q7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQ29uc3RydWN0IGluc3RhbmNlIHdpdGhvdXQgcGFyYW1ldGVycy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgS2V5VmFsdWVMaXN0KCkNCisJCXsNCisJCQlsaXN0ID0gbmV3IEFycmF5TGlzdCgpOw0KKwkJfQ0KKw0KKwkJcHVibGljIEtleVZhbHVlTGlzdChJTGlzdCBfbGlzdCkNCisJCXsNCisJCQlsaXN0ID0gX2xpc3Q7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQWRkIG1lbWJlcnMgb2YgZ2l2ZW4gbGlzdCB0byB0aGlzIGxpc3QuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIHZpcnR1YWwgSUxpc3QgQWRkQWxsDQorCQl7DQorCQkJc2V0DQorCQkJew0KKwkJCQlmb3JlYWNoIChvYmplY3QgbyBpbiB2YWx1ZSkNCisJCQkJew0KKwkJCQkJbGlzdC5BZGQobyk7DQorCQkJCX0NCisJCQl9DQorCQl9DQorDQorCQlwdWJsaWMgc3RyaW5nIFZhbHVlRm9yKHN0cmluZyBrZXkpDQorCQl7DQorCQkJaWYgKChrZXkgPT0gbnVsbCkgfHwgKGtleS5FcXVhbHMoU3RyaW5nLkVtcHR5KSkpIHJldHVybiBrZXk7DQorCQkJZm9yZWFjaCAoSUtleVZhbHVlIGt2IGluIGxpc3QpDQorCQkJew0KKwkJCQlpZiAoa2V5LkVxdWFscyhrdi5LZXkpKSByZXR1cm4ga3YuVmFsdWUgYXMgc3RyaW5nOw0KKwkJCX0NCisJCQlyZXR1cm4gbnVsbDsNCisJCX0NCisNCisJCXB1YmxpYyBpbnQgQWRkKG9iamVjdCB2YWx1ZSkNCisJCXsNCisJCQlyZXR1cm4gbGlzdC5BZGQodmFsdWUpOw0KKwkJfQ0KKw0KKwkJcHVibGljIGJvb2wgQ29udGFpbnMob2JqZWN0IHZhbHVlKQ0KKwkJew0KKwkJCXJldHVybiBsaXN0LkNvbnRhaW5zKHZhbHVlKTsNCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIENsZWFyKCkNCisJCXsNCisJCQlsaXN0LkNsZWFyKCk7DQorCQl9DQorDQorCQlwdWJsaWMgaW50IEluZGV4T2Yob2JqZWN0IHZhbHVlKQ0KKwkJew0KKwkJCXJldHVybiBsaXN0LkluZGV4T2YodmFsdWUpOw0KKwkJfQ0KKw0KKwkJcHVibGljIHZvaWQgSW5zZXJ0KGludCBpbmRleCwgb2JqZWN0IHZhbHVlKQ0KKwkJew0KKwkJCWxpc3QuSW5zZXJ0KGluZGV4LHZhbHVlKTsNCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIFJlbW92ZShvYmplY3QgdmFsdWUpDQorCQl7DQorCQkJbGlzdC5SZW1vdmUodmFsdWUpOw0KKwkJfQ0KKw0KKwkJcHVibGljIHZvaWQgUmVtb3ZlQXQoaW50IGluZGV4KQ0KKwkJew0KKwkJCWxpc3QuUmVtb3ZlQXQoaW5kZXgpOw0KKwkJfQ0KKw0KKwkJcHVibGljIGJvb2wgSXNSZWFkT25seQ0KKwkJew0KKwkJCWdldCB7IHJldHVybiBsaXN0LklzUmVhZE9ubHk7IH0NCisJCX0NCisNCisJCXB1YmxpYyBib29sIElzRml4ZWRTaXplDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIGxpc3QuSXNGaXhlZFNpemU7IH0NCisJCX0NCisNCisJCXB1YmxpYyBvYmplY3QgdGhpc1tpbnQgaW5kZXhdDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIGxpc3RbaW5kZXhdOyB9DQorCQkJc2V0IHsgbGlzdFtpbmRleF0gPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHZvaWQgQ29weVRvKEFycmF5IGFycmF5LCBpbnQgaW5kZXgpDQorCQl7DQorCQkJdGhpcy5Db3B5VG8oYXJyYXksaW5kZXgpOw0KKwkJfQ0KKw0KKwkJcHVibGljIGludCBDb3VudA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBsaXN0LkNvdW50OyB9DQorCQl9DQorDQorCQlwdWJsaWMgb2JqZWN0IFN5bmNSb290DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIGxpc3QuU3luY1Jvb3Q7IH0NCisJCX0NCisNCisJCXB1YmxpYyBib29sIElzU3luY2hyb25pemVkDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIGxpc3QuSXNTeW5jaHJvbml6ZWQ7IH0NCisJCX0NCisNCisJCXB1YmxpYyBJRW51bWVyYXRvciBHZXRFbnVtZXJhdG9yKCkNCisJCXsNCisJCQlyZXR1cm4gbGlzdC5HZXRFbnVtZXJhdG9yKCk7DQorCQl9DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvTmV4dXMuQ29yZS54bWwgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9OZXh1cy5Db3JlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzYzYTc2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvTmV4dXMuQ29yZS54bWwKQEAgLTAsMCArMSwxNzc4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCis8ZG9jPg0KKyAgICA8YXNzZW1ibHk+DQorICAgICAgICA8bmFtZT5OZXh1cy5Db3JlPC9uYW1lPg0KKyAgICA8L2Fzc2VtYmx5Pg0KKyAgICA8bWVtYmVycz4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpXUUQuQ29yZS5Db250cm9scy5GaW5kQXJncyI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSBhbiBFdmVudEFyZ3MgdHlwZSB0byBpbnRlcmFjZSB3aXRoIEZpbmRDb250cm9scw0KKyAgICAgICAgICAgIHRoYXQgY2FuIGJlIHJlYWQgb3IgYm91bmQgdmlhIGFuIElEaWN0aW9uYXJ5IG9iamVjdC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpXUUQuQ29yZS5Db250cm9scy5GaW5kQXJncy5PbGRBcmdzIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBBIHJlZmVyZW5jZSB0byB0aGUgb3JpZ2luYWwgYXJndW1lbnRzIGZvciBhbiBldmVudCwgaWYgYW55Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOldRRC5Db3JlLkNvbnRyb2xzLkZpbmRBcmdzLkNyaXRlcmlhIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBFeHBvc2Ugb3VyIGRpY3Rpb25hcnkgaW5zdGFuY2UuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06V1FELkNvcmUuQ29udHJvbHMuRmluZEFyZ3MuI2N0b3IoU3lzdGVtLkNvbGxlY3Rpb25zLklEaWN0aW9uYXJ5KSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQ3JlYXRlIHRoaXMgaW5zdGFuY2UgdXNpbmcgdGhlIGdpdmVuIGRpY3Rpb25hcnkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06V1FELkNvcmUuQ29udHJvbHMuRmluZEFyZ3MuI2N0b3IiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSB3aXRoIGVtcHR5IGZpZWxkcy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpXUUQuQ29yZS5Db250cm9scy5GaW5kQXJncy4jY3RvcihTeXN0ZW0uRXZlbnRBcmdzKSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQ3JlYXRlIGEgbmV3IGluc3RhbmNlLCBzZXR0aW5nIHRoZSBvbGQgZXZlbnQgYXJndW1lbnRzLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ib2xkQXJncyI+T2xkIEV2ZW50IGFyZ3VtZW50czwvcGFyYW0+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpOZXh1cy5Db3JlLkhlbHBlcnMuSVZpZXdIZWxwZXIiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFByb3ZpZGUgbWV0aG9kcyBmb3IgcnVubmluZyBhIGJ1c2luZXNzIGNvbW1hbmQgYW5kIGhhbmRsaW5nIHRoZSByZXN1bHQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIElWaWV3SGVscGVyIGlzIGEgZmFjYWRlIGZvciB1c2UgYnkgYSBjb2RlLWJlaGluZCB0byBzaW1wbGlmeSBhY2Nlc3MgDQorICAgICAgICAgICAgdG8gdGhlIElSZXF1ZXN0Q29udGV4dCBhbmQgSVJlcXVlc3RDb21tYW5kLiANCisgICAgICAgICAgICA8L3A+PHA+DQorICAgICAgICAgICAgVGhlIGhlbHBlciBtYXkgYWxzbyB3b3JrIHdpdGggdGhlIGNhdGFsb2cgdG8gYWN0IGFzIGEgDQorICAgICAgICAgICAgImZyb250IGNvbnRyb2xsZXIiIGJ5IGVuc3VyaW5nIHJvdXRpbmUgdGFza3MgYXJlIGNhcnJpZWQgb3V0Lg0KKyAgICAgICAgICAgIFRoZXNlIHRhc2tzIGNhbiBpbmNsdWRlIGlucHV0IHZhbGlkYXRpb24sIGRhdGEgY29udmVyc2lvbiwgDQorICAgICAgICAgICAgdGV4dCBmb3JtYXR0aW5nLCBjb21tYW5kIGxvZ2dpbmcsIGFuZCBzbyBmb3J0aC4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5IZWxwZXJzLklWaWV3SGVscGVyLkV4ZWN1dGUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFBlcmZvcm0gdGhlIENvbW1hbmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgSGVscGVyLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuSGVscGVycy5JVmlld0hlbHBlci5SZWFkKFN5c3RlbS5Db2xsZWN0aW9ucy5JRGljdGlvbmFyeSxTeXN0ZW0uQm9vbGVhbikiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFJlYWQgaW5wdXQgaW50byB0aGUgQ3JpdGVyaWEgZnJvbSBhIGdpdmVuIERpY3Rpb25hcnkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJjcml0ZXJpYSI+QXR0cmlidXRlcyB0byBhZGQgdG8gQ3JpdGllcmE8L3BhcmFtPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJudWxsSWZFbXB0eSI+U2V0IGF0dHJpYnV0ZXMgZm9yIGVtcHR5IHN0cmluZ3MgdG8gbnVsbDwvcGFyYW0+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLkhlbHBlcnMuSVZpZXdIZWxwZXIuQWxlcnRzRm9yKFN5c3RlbS5TdHJpbmcpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBSZXR1cm4gdGhlIEFsZXJ0cyBmb3IgdGhlIHNwZWNpZmlpZWQgSUQsIA0KKyAgICAgICAgICAgIGZvcm1hdHRlZCBmb3IgZGlzcGxheSBieSBhIFVJIGNvbnRyb2wuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPg0KKyAgICAgICAgICAgIElmIG1lc3NhZ2VzIGFyZSBsb2NhbGl6ZWQgb3IgY3VzdG9taXplZCwgDQorICAgICAgICAgICAgdGhlIGhlbHBlciB3aWxsIHJldHVybiBjb3JyZWN0IHZlcnNpb24gZm9yIHRoZSB1c2VyLg0KKyAgICAgICAgICAgIFVJIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIG1heSBtYXJrdXAgdGhlIGVycm9ycyBhcyBuZWVkZWQuDQorICAgICAgICAgICAgPC9yZW1hcmtzPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5IZWxwZXJzLklWaWV3SGVscGVyLkhpbnRzRm9yKFN5c3RlbS5TdHJpbmcpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBSZXR1cm4gdGhlIEhpbnRzIGZvciB0aGUgc3BlY2lmaWllZCBJRCwgDQorICAgICAgICAgICAgZm9ybWF0dGVkIGZvciBkaXNwbGF5IGJ5IGEgVUkgY29udHJvbC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+DQorICAgICAgICAgICAgSWYgbWVzc2FnZXMgYXJlIGxvY2FsaXplZCBvciBjdXN0b21pemVkLCANCisgICAgICAgICAgICB0aGUgaGVscGVyIHdpbGwgcmV0dXJuIGNvcnJlY3QgdmVyc2lvbiBmb3IgdGhlIHVzZXIuDQorICAgICAgICAgICAgVUkgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gbWF5IG1hcmt1cCB0aGUgZXJyb3JzIGFzIG5lZWRlZC4NCisgICAgICAgICAgICA8L3JlbWFya3M+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLkhlbHBlcnMuSVZpZXdIZWxwZXIuQ3JpdGVyaWEiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFN0b3JlIGlucHV0IGFuZCBvdXRwdXQgdmFsdWVzLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuSGVscGVycy5JVmlld0hlbHBlci5Qcm9maWxlIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBVc2VyIHByb2ZpbGUsIHdoaWNoIGluY2x1ZGVzIHVzZXIgSUQgYW5kIExvY2FsZS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLkhlbHBlcnMuSVZpZXdIZWxwZXIuT3V0Y29tZSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQWNjZXNzIHJlc3VsdCBvZiBvcGVyYXRpb24gYXMgYW4gSUxpc3QuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIElmIHRoZSBIZWxwZXIgaXMgZGVzaWduZWQgdG8gcmV0dXJuIGEgTGlzdCByZXN1bHQsIA0KKyAgICAgICAgICAgIHRoaXMgbWV0aG9kIHNhdmVzIGNhc3RpbmcgdGhlIG91dGNvbWUuDQorICAgICAgICAgICAgSWYgdGhlIEhlbHBlciBpcyBub3QgZGVzaWduZWQgdG8gcmV0dXJuIHRoZSByZXN1bHQgYXMgYSBJTGlzdCwgDQorICAgICAgICAgICAgdGhpcyBtZXRob2QgcmV0dXJucyBhIHNpbmdsZS12YWx1ZSByZXN1bHQgYXMgYSBvbmUtZW50cnkgbGlzdC4NCisgICAgICAgICAgICA8L3A+PHA+DQorICAgICAgICAgICAgTm90ZSB0aGlzIHNpbmNlIHRoaXMgaXMgdGhlIEhlbHBlciBPdXRjb21lLCANCisgICAgICAgICAgICB0aGUgcmVzdWx0IGlzIHJlbGF0aXZlIHRvIHRoZSBDcml0ZXJpYSwgDQorICAgICAgICAgICAgcmF0aGVyIHRoYW4gdGhlIG1haW4gQ29udGV4dC4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5IZWxwZXJzLklWaWV3SGVscGVyLkFsZXJ0cyI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUmVjb3JkIGEgbGlzdCBvZiBhbGVydCAob3IgZXJyb3IpIG1lc3NhZ2VzLCANCisgICAgICAgICAgICBrZXllZCBieSB0aGUgZmllbGQgY2F1c2luZyB0aGUgbWVzc2FnZSwgDQorICAgICAgICAgICAgb3IgdG8gYSBtYWdpYyBnbG9iYWwga2V5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz4NCisgICAgICAgICAgICBXaGVuIHJlY2FsbGluZyBBbGVydHMsIGJ5IGRlZmF1bHQgaW5jbHVkZSB0aGUgRmF1bHQuDQorICAgICAgICAgICAgPC9yZW1hcmtzPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5IZWxwZXJzLklWaWV3SGVscGVyLkFsZXJ0c1RleHQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFJldHVybiB0aGUgQWxlcnRzLCBpbmNsdWRpbmcgYW55IEZhdWx0LCBmb3JtYXR0ZWQgZm9yIGRpc3BsYXkgYnkgYSBVSSBjb250cm9sLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz4NCisgICAgICAgICAgICBJZiBtZXNzYWdlcyBhcmUgbG9jYWxpemVkIG9yIGN1c3RvbWl6ZWQsIA0KKyAgICAgICAgICAgIHRoZSBoZWxwZXIgd2lsbCByZXR1cm4gY29ycmVjdCB2ZXJzaW9uIGZvciB0aGUgdXNlci4NCisgICAgICAgICAgICBVSSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBtYXkgbWFya3VwIHRoZSBlcnJvcnMgYXMgbmVlZGVkLg0KKyAgICAgICAgICAgIDwvcmVtYXJrcz4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuSGVscGVycy5JVmlld0hlbHBlci5IYXNBbGVydHMiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEluZGljYXRlIGlmIGFsZXJ0cyBhcmUgcXVldWVkLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmV0dXJucz5UcnVlIGlmIGFsZXJ0cyBhcmUgcXVldWVkLjwvcmV0dXJucz4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuSGVscGVycy5JVmlld0hlbHBlci5GYXVsdCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUmVjb3JkIGFuIEV4Y2VwdGlvbiwgaWYgdGhyb3duLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz4NCisgICAgICAgICAgICBCeSBkZWZhdWx0LCB0aGUgRmF1bHQgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgbGlzdCBvZiBBbGVydHMuDQorICAgICAgICAgICAgPC9yZW1hcmtzPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5IZWxwZXJzLklWaWV3SGVscGVyLkhhc0ZhdWx0Ij4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJbmRpY2F0ZSB3aGV0aGVyIGFuIEV4Y2VwdGlvbiBpcyBjYXVnaHQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZXR1cm5zPlRydWUgaWYgYW4gRXhjZXB0aW9uIGlzIGNhdWdodC48L3JldHVybnM+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLkhlbHBlcnMuSVZpZXdIZWxwZXIuSXNOb21pbmFsIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJbmRpY2F0ZSBpZiB0aGVyZSBhcmUgbm8gYWxlcnRzIG9yIGZhdWx0IHBlbmRpbmcuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZXR1cm5zPlRydWUgaWYgYWxsIGlzIHdlbGwuPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5IZWxwZXJzLklWaWV3SGVscGVyLkhpbnRzIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBSZWNvcmQgYSBsaXN0IG9mIGhpbnQgKG9yIGFkdmlzb3J5KSBtZXNzYWdlcywgDQorICAgICAgICAgICAga2V5ZWQgYnkgYSBmaWVsZCBvciBvdGhlciBpZGVudGlmaWVyLCANCisgICAgICAgICAgICBvciB0byBhIG1hZ2ljIGdsb2JhbCBrZXkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5IZWxwZXJzLklWaWV3SGVscGVyLkhhc0hpbnRzIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJbmRpY2F0ZSBpZiBIaW50cyBhcmUgcXVldWVkLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmV0dXJucz5UcnVlIGlmIEhpbnRzIGFyZSBxdWV1ZWQuPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5IZWxwZXJzLklWaWV3SGVscGVyLkhpbnRzVGV4dCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUmV0dXJuIEhpbnRzIGZvcm1hdHRlZCBmb3IgZGlzcGxheSBieSBhIFVJIGNvbnRyb2wuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPg0KKyAgICAgICAgICAgIElmIG1lc3NhZ2VzIGFyZSBsb2NhbGl6ZWQgb3IgY3VzdG9taXplZCwgDQorICAgICAgICAgICAgdGhlIGhlbHBlciB3aWxsIHJldHVybiBjb3JyZWN0IHZlcnNpb24gZm9yIHRoZSB1c2VyLg0KKyAgICAgICAgICAgIFVJIHNwZWNpZmljIGltcGxlbWVudGF0aW9zbiBtYXkgbWFya3VwIHRoZSBtZXNzYWdlcyBhcyBuZWVkZWQuDQorICAgICAgICAgICAgPC9yZW1hcmtzPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5IZWxwZXJzLklWaWV3SGVscGVyLkZpZWxkVGFibGUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFByb3ZpZGUgdGhlIEZpZWxkIFRhYmxlIGZvciB0aGlzIEhlbHBlci4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+PHA+DQorICAgICAgICAgICAgVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gdXNlcyB0aGUgQ2F0YWxvZyB0byBpbmplY3QgdGhlIGdsb2JhbCANCisgICAgICAgICAgICBGaWVsZCBUYWJsZSByZWZlcmVuY2UuIA0KKyAgICAgICAgICAgIFRoZSBDb250ZXh0LCBhbmQgbWVtYmVycyB3aXRoIGFjY2VzcyB0byBhIENvbnRleHQsIA0KKyAgICAgICAgICAgIGNhbiB1c2UgdGhlIEZpZWxkVGFibGUgdG8gdmFsaWRhdGUgYW5kIGZvcm1hdCB2YWx1ZXMsIA0KKyAgICAgICAgICAgIGFuZCBldmVuIHRvIGNyZWF0ZSBjb250cm9scyB0aGF0IGRpc3BsYXkgdmFsdWVzLg0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLkhlbHBlcnMuSVZpZXdIZWxwZXIuQ29tbWFuZCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSB0aGUgY29tbWFuZCAob3IgY2hhaW4gb2YgY29tbWFuZHMpIGZvciB0aGlzIGhlbHBlcg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz48cD4NCisgICAgICAgICAgICBTZXR0aW5nIHRoZSBDb21tYW5kIGFsc28gc2V0cyB0aGUgaW50ZXJuYWwgQ29udGV4dCBmb3IgdGhlIGNvbW1hbmQuDQorICAgICAgICAgICAgPC9wPjwvcmVtYXJrcz4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuSGVscGVycy5JVmlld0hlbHBlci5GaWVsZFNldCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSBhIHNldCBvZiBJRmllbGRDb250ZXh0IGRlZmluaXRpb25zIHRvIGJlIHVzZWQgd2l0aCB0aGlzIGhlbHBlci4gDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIFRoZSBGaWVsZFNldCBpcyB1c3VhbGx5IHNldCBieSBkZXBlbmRlbmN5IGluamVjdGlvbi4NCisgICAgICAgICAgICBTb21lIGhlbHBlcnMgZ2VuZXJhdGUgRGF0YUdyaWRzIG9yIERhdGFGb3JtcyBiYXNlZCBvbiB0aGUgDQorICAgICAgICAgICAgRmllbGREZWZpbml0aW9ucyANCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5IZWxwZXJzLklWaWV3SGVscGVyLkNhdGFsb2ciPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFByb3ZpZGUgdGhlIGNhdGFsb2cgZm9yIHRoaXMgaGVscGVyLCANCisgICAgICAgICAgICB1c3VhbGx5IHNldCBieSBkZXBlbmRlbmN5IGluamVjdGlvbi4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpOZXh1cy5Db3JlLkhlbHBlcnMuVmlld0FyZ3MiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEV2ZW50QXJncyB0eXBlIHdpdGggYSBJVmlld0hlbHBlciBwcm9wZXJ0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLkhlbHBlcnMuVmlld0FyZ3MuI2N0b3IiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIERlZmF1bHQgY29uc3RydWN0b3IuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5IZWxwZXJzLlZpZXdBcmdzLiNjdG9yKE5leHVzLkNvcmUuSGVscGVycy5JVmlld0hlbHBlcikiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIENvbnZlbmllbmNlIGNvbnN0cnVjdG9yIHRvIHNldCBoZWxwZXIuIA0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0iaGVscGVyIj48L3BhcmFtPg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5IZWxwZXJzLlZpZXdBcmdzLkhlbHBlciI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSGVscGVyIGluc3RhbmNlIHRvIGVuY2Fwc3VsYXRlLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOk5leHVzLkNvcmUuSGVscGVycy5WaWV3SGVscGVyIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBTdGFuZGFyZCBpbXBsZW1lbnRhdGlvbiBvZiBJVmlld0hlbHBlci4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLkhlbHBlcnMuVmlld0hlbHBlci5MSVNUX1NVRkZJWCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRGVmYXVsdCBzZXR0aW5nIGZvciBMaXN0U3VmZml4IFsiX2xpc3QiXS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLkhlbHBlcnMuVmlld0hlbHBlci5OVUxMX0lGX0VNUFRZIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBEZWZhdWx0IHNldHRpbmcgZm9yIE51bGxJZkVtcHR5IFt0cnVlXS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLkhlbHBlcnMuVmlld0hlbHBlci5QUkVGSVgiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIERlZmF1bHQgc2V0dGluZyBmb3IgUHJlZml4IFsiIl0uDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5IZWxwZXJzLlZpZXdIZWxwZXIuU0VMRUNUX0lURU1fUFJPTVBUIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBEZWZhdWx0IHNldHRpbmcgZm9yIFNlbGVjdEl0ZW1Qcm9tcHQgWyItLXYtLSJdLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuSGVscGVycy5WaWV3SGVscGVyLkNhdGFsb2ciPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFByb3ZpZGUgdGhlIGFwcGxpY2F0aW9uIG9iamVjdCBjYXRhbG9nIGZvciB0aGlzIEhlbHBlci4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+DQorICAgICAgICAgICAgVGhlIENhdGFsb2cgaXMgdXN1YWxseSBzZXQgdGhyb3VnaCBkZXBlbmRlbmN5IGluamVjdGlvbi4gDQorICAgICAgICAgICAgVGhlIENhdGFsb2cgYW5kIENvbW1hbmQgbXVzdCBiZSBzZXQgYmVmb3JlIGNhbGxpbmcgb3RoZXIgbWV0aG9kcy4NCisgICAgICAgICAgICA8L3JlbWFya3M+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLkhlbHBlcnMuVmlld0hlbHBlci5Db21tYW5kIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBQcm92aWRlIHRoZSBjb21tYW5kIGZvciB0aGlzIEhlbHBlci4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+DQorICAgICAgICAgICAgVGhlIENvbW1hbmQgaXMgdXN1YWxseSBzZXQgdGhyb3VnaCBkZXBlbmRlbmN5IGluamVjdGlvbi4gDQorICAgICAgICAgICAgVGhlIENhdGFsb2cgYW5kIENvbW1hbmQgbXVzdCBiZSBzZXQgYmVmb3JlIGNhbGxpbmcgb3RoZXIgbWV0aG9kcy4NCisgICAgICAgICAgICA8L3JlbWFya3M+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLkhlbHBlcnMuVmlld0hlbHBlci5Db250ZXh0Ij4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBQcm92aWRlIHRoZSBhbGwtaW1wb3J0YW50IENvbnRleHQgZm9yIHRoaXMgSGVscGVyLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz4NCisgICAgICAgICAgICBUaGUgQ29udGV4dCBpcyBvYnRhaW5lZCB0aHJvdWdoIHJlZmVyZW5jZSB0byB0aGUgQ2F0YWxvZyBhbmQgQ29tbWFuZC4NCisgICAgICAgICAgICBBbGwgb3RoZXIgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBvZiB0aGUgSGVscGVyIHJlZmVyIHRvIHRoZSBDb250ZXh0LCANCisgICAgICAgICAgICBtYWtpbmcgQ29udGV4dCB0aGUgY29ybmVyc3RvbmUgcHJvcGVydHkuDQorICAgICAgICAgICAgPC9yZW1hcmtzPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlQ6TmV4dXMuQ29yZS5Qcm9maWxlLklQcm9maWxlIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBSZWNvcmQgdXNlciBzZXR0aW5ncy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLlByb2ZpbGUuSVByb2ZpbGUuVXNlcklkIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBSZWNvcmQgdGhlIFVzZXIgSUQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5Qcm9maWxlLklQcm9maWxlLlVzZXJMb2NhbGUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFJlY29yZCB0aGUgVXNlciBMb2NhbGUuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5Qcm9maWxlLklQcm9maWxlLkNyaXRlcmlhIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBSZWNvcmQgb3RoZXIgZGVmYXVsdCBzZXR0aW5ncy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpOZXh1cy5Db3JlLlByb2ZpbGUuVXNlcklkZW50aXR5Ij4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJbXBsZW1lbnQgSUlkZW50aXR5IHRvIGNhcHR1cmUgdXNlcidzIGxvZ2luIG5hbWUuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIEFuIGlkZW50aXR5IG9iamVjdCByZXByZXNlbnRzIHRoZSB1c2VyIG9uIHdob3NlIGJlaGFsZiB0aGUgY29kZSBpcyBydW5uaW5nKS4NCisgICAgICAgICAgICA8L3A+PHA+DQorICAgICAgICAgICAgRm9yIHRoaXMgdG8gd29yaywgd2UgbXVzdCB1cGRhdGUgdGhlIFdlYi5jb25maWcgYW5kIHRoZSBzZXJ2ZXIgc2V0dGluZ3MuIA0KKyAgICAgICAgICAgIDwvcD48cD4NCisgICAgICAgICAgICBXZWIuY29uZmlnOiAmbHQ7YXV0aGVudGljYXRpb24gbW9kZT0iV2luZG93cyIgLyZndDsgJmx0O2lkZW50aXR5IGltcGVyc29uYXRlPSJ0cnVlIi8mZ3Q7DQorICAgICAgICAgICAgPC9wPjxwPg0KKyAgICAgICAgICAgIElJUyBBZG1pbjogRGlzYWJsZSBBbm9uIEFjY2VzcyBvbiB0aGUgRGlyZWN0b3J5IFNlY3VyaXR5IHRhYi4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5Qcm9maWxlLlVzZXJJZGVudGl0eS4jY3RvciI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW5zdGFudGlhdGUgd2l0aCB6ZXJvIHBhcmFtZXRlcnMuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5Qcm9maWxlLlVzZXJJZGVudGl0eS4jY3RvcihTeXN0ZW0uU2VjdXJpdHkuUHJpbmNpcGFsLklJZGVudGl0eSkiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEluc3RhbnRpYXRlIHdpdGggYW4gSUlkZW50aXR5LiANCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+DQorICAgICAgICAgICAgRXNzZW50aWFsbHksIGNyZWF0ZSBhIHNoYWxsb3cgY29weSBvZiB0aGUgZ2l2ZW4gSWRlbnRpdHkuDQorICAgICAgICAgICAgPC9yZW1hcmtzPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJpZCI+SWRlbnRpdHkgdG8gY29weTwvcGFyYW0+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLlByb2ZpbGUuVXNlcklkZW50aXR5LiNjdG9yKFN5c3RlbS5TdHJpbmcsU3lzdGVtLlN0cmluZyxTeXN0ZW0uQm9vbGVhbikiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEluc3RhbnRpYXRlIGZyb20gcGFzc2VkIHZhbHVlcy4gDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJuYW1lIj5WYWx1ZSBmb3IgdXNlcidzIG5hbWU8L3BhcmFtPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJhdXRoZW50aWNhdGlvblR5cGUiPlZhbHVlIGZvciBBdXRoZW50aWNhdGlvblR5cGU8L3BhcmFtPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJpc0F1dGhlbnRpY2F0ZWQiPlZhbHVlIGZvciBJc0F1dGhlbnRpY2F0ZWQ8L3BhcmFtPg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlQ6TmV4dXMuQ29yZS5Qcm9maWxlLlVzZXJQcmluY2lwYWwiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEltcGxlbWVudCBJUHJpbmNpcGFsIHRvIGNhcHR1cmUgdGhlIHVzZXIncyBsb2dpbiBuYW1lLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz48cD4NCisgICAgICAgICAgICBJUHJpbmNpcGFsIC0gQSBwcmluY2lwYWwgb2JqZWN0IHJlcHJlc2VudHMgdGhlIHNlY3VyaXR5IGNvbnRleHQgb2YgdGhlIA0KKyAgICAgICAgICAgIHVzZXIgb24gd2hvc2UgYmVoYWxmIHRoZSBjb2RlIGlzIHJ1bm5pbmcsIGluY2x1ZGluZyB0aGF0IHVzZXIncyBpZGVudGl0eSANCisgICAgICAgICAgICAoSUlkZW50aXR5KSBhbmQgYW55IHJvbGVzIHRvIHdoaWNoIHRoZXkgYmVsb25nLg0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLlByb2ZpbGUuVXNlclByaW5jaXBhbC5fUm9sZXMiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEZpZWxkIGZvciBSb2xlcyBwcm9wZXJ0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLlByb2ZpbGUuVXNlclByaW5jaXBhbC4jY3RvciI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW5zdGFudGlhdGUgZGVmYXVsdCBOZXh1c1ByaW5jaXBhbCB3aXRoIGVtcHR5IE5leHVzSWRlbnRpdHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5Qcm9maWxlLlVzZXJQcmluY2lwYWwuI2N0b3IoU3lzdGVtLlNlY3VyaXR5LlByaW5jaXBhbC5JSWRlbnRpdHkpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJbnN0YW50aWF0ZSBmcm9tIGFuIElJZGVudGl0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+DQorICAgICAgICAgICAgVGhlIFJvbGVzIGZvciB0aGlzIHByaW5jaXBhbCB3aWxsIGZvbGxvdyANCisgICAgICAgICAgICB0aG9zZSBzZXQgYnkgdGhlIFJvbGVzIHByb3BlcnR5LCByZWdhcmRsZXNzIG9mIHRoZSANCisgICAgICAgICAgICBJZGVudGl0eSBvciBBdXRoZW50aWNhdGlvbiBUeXBlLg0KKyAgICAgICAgICAgIDwvcmVtYXJrcz4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0iaWQiPlZhbHVlIGZvciB1c2VyIG5hbWU8L3BhcmFtPg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5Qcm9maWxlLlVzZXJQcmluY2lwYWwuUm9sZXMiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRoZSByb2xlcyBmb3IgdGhpcyBwcmluY2lwYWwgcmVwcmVzZW50YXRlZCBhcyBhbiBhcnJheS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpOZXh1cy5Db3JlLlByb2ZpbGUuVXNlclByb2ZpbGUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFJlcHJlc2VudCBhIHVzZXIuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIFRoZSBVc2VyUHJvZmlsZSBpbmNsdWRlcyBhIHN0YW5kYXJkIFByaW5jaXBhbCBvYmplY3QgZm9yIA0KKyAgICAgICAgICAgIGF1dGhlbnRpZmljYXRpb24gYW5kIGF1dGhvcml6YXRpb24uIA0KKyAgICAgICAgICAgIEFueSB1c2VyLXJlbGF0ZWQgcHJvcGVydGllcyBtYXkgYmUgYWRkZWQgaGVyZSwgYWxvbmcgd2l0aCANCisgICAgICAgICAgICBjb252ZW5pZW5jZSBtZXRob2RzIGZvciBkZXRlcm1pbmluZyByb2xlcywgc3VjaCBhcyANCisgICAgICAgICAgICBJc0VuZ2luZWVyLCBJc01hbmFnZXIsIGV0IGFsLg0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLlByb2ZpbGUuVXNlclByb2ZpbGUuVVNFUl9QUk9GSUxFIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJZGVudGlmeSBhdHRyaWJ1dGUga2V5IGZvciBzdG9yaW5nIGEgdXNlciBwcm9maWxlLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuUHJvZmlsZS5Vc2VyUHJvZmlsZS5VU0VSX0lEIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJZGVudGlmeSBhdHRyaWJ1dGUga2V5IGZvciBzdG9yaW5nIGEgdXNlciBJRDsuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Qcm9maWxlLlVzZXJQcm9maWxlLlVTRVJfSURfU0VQQVJBVE9SIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJZGVudGlmeSB0aGUgY2hhcmFjdGVyIHNlcGFyYXRpbmcgYSAibWFjaGluZSBuYW1lIiBmcm9tIGEgInVzZXIgaWQiLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuUHJvZmlsZS5Vc2VyUHJvZmlsZS5UcmltTWFjaGluZU5hbWUoU3lzdGVtLlN0cmluZykiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRyaW0gYW55IG1hY2hpbmUgbmFtZSByZWZlcmVuY2UgZnJvbSBQcmluY2lwYWwgTmFtZS4gDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJuYW1lIj5BIElkZW50aXR5IE5hbWUgdGhhdCBtYXkgY29udGFpbiBhIG1hY2hpbmUgbmFtZSByZWZlcmVuY2U8L3BhcmFtPg0KKyAgICAgICAgICAgIDxyZXR1cm5zPklkZW50aXR5IG5hbWUgd2l0aCBtYWNoaW5lIG5hbWUgcmVtb3ZlZDwvcmV0dXJucz4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuUHJvZmlsZS5Vc2VyUHJvZmlsZS5fVXNlckxvY2FsZSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSBhIGZpZWxkIGZvciBVc2VyTG9jYWxlIHByb3BlcnR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuUHJvZmlsZS5Vc2VyUHJvZmlsZS5fQ3JpdGVyaWEiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFByb3ZpZGUgYSBmaWVsZCBmb3IgQ3JpdGVyaWEgcHJvcGVydHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5Qcm9maWxlLlVzZXJQcm9maWxlLiNjdG9yIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJbnN0YW50aWF0ZSBhIGRlZmF1bHQgcHJvZmlsZS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLlByb2ZpbGUuVXNlclByb2ZpbGUuI2N0b3IoU3lzdGVtLlNlY3VyaXR5LlByaW5jaXBhbC5JUHJpbmNpcGFsKSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW5zdGFudGlhdGUgZnJvbSBhbiBJUHJpbmNpcGFsLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0icHJpbmNpcGFsIj5QcmluY2lwYWwgZm9yIHRoaXMgcHJvZmlsZS48L3BhcmFtPg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5Qcm9maWxlLlVzZXJQcm9maWxlLiNjdG9yKFN5c3RlbS5TZWN1cml0eS5QcmluY2lwYWwuSUlkZW50aXR5KSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW5zdGFudGlhdGUgZnJvbSBhbiBJSWRlbnRpdHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJpZCI+SWRlbnRpdHkgdG8gY29weSBmb3IgdGhpcyBwcm9maWxlLjwvcGFyYW0+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLlByb2ZpbGUuVXNlclByb2ZpbGUuUHJpbmNpcGFsIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBQcm92aWRlIHRoZSBQcmluY2lwYWwgb2JqZWN0IGZvciB0aGlzIHVzZXIuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIFVzdWFsbHksIHRoaXMgaXMgYSBVc2VyUHJpbmNpcGFsLCANCisgICAgICAgICAgICBidXQgYW55IElQcmluY2lwYWwgaW5zdGFuY2UgY291bGQgYmUgdXNlZC4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5Qcm9maWxlLlVzZXJQcm9maWxlLlVzZXJJZCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUmVjb3JkIHRoZSB1c2VyIGlkIHBvcnRpb24gb2YgdGhlIElkZW50aXR5IE5hbWUuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIFRoZSBVc2VySWQgY2FuIGJlIHVzZWQgdG8gcmVsYXRlIHN0YWZmIHJlY29yZHMgdG8gdXNlciBsb2dpbnMuDQorICAgICAgICAgICAgPC9wPjwvcmVtYXJrcz4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOk5leHVzLkNvcmUuVGFibGVzLkZpZWxkQ29udGV4dCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQ29uY3JldGUgSUZpZWxkQ29udGV4dCBpbXBsZW1lbnRhdGlvbi4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpOZXh1cy5Db3JlLlRhYmxlcy5JRmllbGRDb250ZXh0Ij4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBQcm92aWRlIHByb3BlcnRpZXMgY29tbW9uIHRvIGNvbnRyb2xzLCANCisgICAgICAgICAgICBpbmNsdWRpbmcgQWxlcnQsIENvbnRyb2xUeXBlLCBhbmQgUHJvY2Vzc29yLiANCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFyaz48cD4NCisgICAgICAgICAgICBUaGUgRmllbGRDb250ZXh0IGVudHJpZXMgYXJlIG1hZGUgYXZhaWxhYmxlIHRocm91Z2ggYSBGaWVsZFRhYmxlLg0KKyAgICAgICAgICAgIFRoZSBGaWVsZENvbnRleHQgbWVtYmVycyBmb2xsb3cgWEZvcm1zIHRlcm1pbm9sb2d5LiANCisgICAgICAgICAgICA8L3A+PHA+DQorICAgICAgICAgICAgWEZvcm1zIFtodHRwOi8vd3d3LnczLm9yZy9NYXJrVXAvRm9ybXMvXS4gDQorICAgICAgICAgICAgWEZvcm1zIENvbnRyb2xzIFtodHRwOi8vd3d3Lm9yYmVvbi5jb20vb3BzL2RvYy9wcm9jZXNzb3JzLXhmb3Jtc10uDQorICAgICAgICAgICAgWFBhdGggMi4wIGZvciAuTkVUIFtodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3RzL3NheG9uZG90bmV0L10uDQorICAgICAgICAgICAgPC9wPjxwPg0KKyAgICAgICAgICAgIFRvIGdsb2JhbGl6ZSBhbiBhcHBsaWNhdGlvbiwgDQorICAgICAgICAgICAgdXRpbGl6ZSBhIElGaWVsZENvbnRleHQgaW1wbGVtZW50YXRpb24gdGhhdCBzdXBwb3J0cyBsb2NhbGl6YXRpb24uIA0KKyAgICAgICAgICAgIEEgbG9jYWxpemVkIGltcGxlbWVudGF0aW9uIGNhbiBhY2Nlc3MgYSBtZXNzYWdlIHJlc291cmNlIHRvIG9idGFpbiB0ZXh0IGFuZCBtZXNzYWdlcywgDQorICAgICAgICAgICAgcmF0aGVyIHRoYW4gYSBzaW1wbGUgcHJvcGVydHkuIA0KKyAgICAgICAgICAgIExvY2FsaXplZCBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIGFsc28gZGlzc2FsbG93IHNldHRpbmcgdGhlIHRleHQgcHJvcGVydGllcywgDQorICAgICAgICAgICAgc2luY2UgdGhvc2UgdmFsdWVzIHdvdWxkIGJlIHByb3ZpZGVkIHRocm91Z2ggYSBtZXNzYWdlIHJlc291cmNlLiANCisgICAgICAgICAgICA8L3A+PHA+DQorICAgICAgICAgICAgRm9yIGEgbG9jYWxpemVkIGltcGxlbWVudGF0aW9uLCBzZWUgTmV4dXMuQ29yZS5FeHRyYXMuU3ByaW5nLkZpZWxkQ29udGV4dC4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcms+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLlRhYmxlcy5JRmllbGRDb250ZXh0LkFsZXJ0Ij4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBQcm92aWRlIGEgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gaW5wdXQgdmFsaWRhdGlvbiBmYWlscy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+DQorICAgICAgICAgICAgSWYgdGhlIFByb2Nlc3NvciBhbHNvIHByb3ZpZGVzIGFuIEFsZXJ0LCANCisgICAgICAgICAgICB0aGUgUHJvY2Vzc29yJ3MgQWxlcnQgc2hvdWxkIGJlIHJldHVybmVkIGluc3RlYWQuIA0KKyAgICAgICAgICAgIDwvcmVtYXJrcz4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuVGFibGVzLklGaWVsZENvbnRleHQuQ29udHJvbFR5cGVOYW1lIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJZGVudGlmeSBuYW1lIG9mIHRoZSBkZWZhdWx0IENvbnRyb2wgVHlwZS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+PHA+DQorICAgICAgICAgICAgU3RhbmRhcmQgY29udHJvbCB0eXBlcyBhcmU6IGlucHV0LCBzZWNyZXQsIHRleHRhcmVhLCBzZWxlY3QxLCBzZWxlY3QsIHN1Ym1pdCwgdXBsb2FkLg0KKyAgICAgICAgICAgIDwvcD48cD4NCisgICAgICAgICAgICBYRm9ybXMgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIExpc3RzLCBSYWRpbyBCdXR0b25zLCBhbmQgQ2hlY2tCb3hlcyB0aHJvdWdoIGFkZGl0aW9uYWwgDQorICAgICAgICAgICAgcGFyYW1ldGVycy4gRm9yIG5vdywgYWxsIHRocmVlIGNhbiBiZSBpZGVudGlmaWVkIGFzIHNlbGVjdDEgb3Igc2VsZWN0Lg0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLlRhYmxlcy5JRmllbGRDb250ZXh0LkhlbHAiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFByb3ZpZGUgdGV4dCB0byBkaXNwbGF5IGZvciBhIGNvbnRleHQtc2Vuc2l0aXZlIGhlbHAgc2NyZWVuLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuVGFibGVzLklGaWVsZENvbnRleHQuSGludCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUmVjb3JkIGFuIG9uc2NyZWVuIG9yIGhvdmVyIGhpbnQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5UYWJsZXMuSUZpZWxkQ29udGV4dC5JRCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSWRlbnRpZnkgdGhpcyBmaWVsZCB3aXRoIGEgdW5pcXVlIG5hbWUuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5UYWJsZXMuSUZpZWxkQ29udGV4dC5MYWJlbCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSBhIGxhYmVsIGZvciB0aGUgY29udHJvbC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+PHA+DQorICAgICAgICAgICAgSWYgdGhlIExhYmVsIGlzIG51bGwsIHRoZSBJRCBzaG91bGQgIGJlIHJldHVybmVkIGluc3RlYWQuIA0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLlRhYmxlcy5JRmllbGRDb250ZXh0LlByb2Nlc3NvciI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSB0aGUgcHJvY2Vzc29yIGZvciB0aGlzIGZpZWxkIGNvbnRleHQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5UYWJsZXMuSUZpZWxkQ29udGV4dC5SZXF1aXJlZCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSBhIG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIHJlcXVpcmVkIGlucHV0IGlzIG1pc3NpbmcuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlQ6TmV4dXMuQ29yZS5UYWJsZXMuRmllbGRUYWJsZSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW1wbGVtZW50IElGaWVsZFRhYmxlLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz48cD4NCisgICAgICAgICAgICBWYWxpZGF0b3INCisgICAgICAgICAgICAqIE5lZWRzIGNvbmZpZ3VyYWJsZSBudWxsdmFsdWUgc3VwcG9ydA0KKyAgICAgICAgICAgICoqIFN0cmluZywgbnVsbFZhbHVlPSIiDQorICAgICAgICAgICAgKiogRG91YmxlLCBudWxsVmFsdWU9MC4wIg0KKyAgICAgICAgICAgICoqIERhdGFUeXBlLCBhbGxvd051bGwNCisgICAgICAgICAgICAqIElmIHRoZXkgZ2l2ZSB1cyBzb21ldGhpbmcsIGFuZCBpdCBmYWlscyBjb252ZXJzaW9uLCB0aGVuIHZhbGlkYXRpb24gZmFpbHMuIA0KKyAgICAgICAgICAgICogSWYgdGhleSBnaXZlIHVzIG51bGwgb3IgYW4gZW1wdHkgc3RyaW5nLCBhbmQgdGhlIHByb3BlcnR5IGhhcyBhIG51bGxWYWx1ZSwgdGhlbiB0aGUgbnVsbFZhbHVlIGlzIHVzZWQuIA0KKyAgICAgICAgICAgICogSWYgdGhleSBnaXZlIHVzIG51bGwgb3IgYW4gZW1wdHkgc3RyaW5nLCBvciB0aGUgbnVsbFZhbHVlLCBhbmQgdGhlIHByb3BlcnR5IGlzIHJlcXVpcmVkLCB0aGVuIHZhbGlkYXRpb24gZmFpbHMuIA0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpOZXh1cy5Db3JlLlRhYmxlcy5JRmllbGRUYWJsZSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW52ZW50b3J5IG9mIGZpZWxkcyBhbmQgcHJvY2Vzc29ycyB1c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbi4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLlRhYmxlcy5JRmllbGRUYWJsZS5OZXdGaWVsZENvbnRleHQoU3lzdGVtLlN0cmluZykiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEZhY3RvcnkgbWV0aG9kIHRvIGNyZWF0ZSBhIHN0dWIgY29udGV4dCANCisgICAgICAgICAgICB3aGVuIGZpZWxkIGlzIHJlcXVpcmVkIGFuZCBTdHJpY3QgaXMgZmFsc2UuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIFRoZSBJRmllbGRDb250ZXh0IGluc3RhbmNlIHNob3VsZCBwcm92aWRlIGEgZGVmYXVsdCBmb3IgUmVxdWlyZWQuDQorICAgICAgICAgICAgPC9wPjwvcmVtYXJrcz4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0iaWQiPlRoZSBmaWVsZG5hbWU8L3BhcmFtPg0KKyAgICAgICAgICAgIDxyZXR1cm5zPk5ldyBkZWZhdWx0IGNvbnRleHQgZm9yIElEPC9yZXR1cm5zPg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5UYWJsZXMuSUZpZWxkVGFibGUuR2V0RmllbGRDb250ZXh0KFN5c3RlbS5TdHJpbmcpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBPYnRhaW4gdGhlIEZpZWxkQ29udGV4dCBmb3IgdGhlIGdpdmVuIElELCBvYnNlcnZpbmcgU3RyaWN0IHNldHRpbmcuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJpZCI+RmllbGRDb250ZXh0IElEPC9wYXJhbT4NCisgICAgICAgICAgICA8cmV0dXJucz5GaWVsZENvbnRleHQgZm9yIElEPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5UYWJsZXMuSUZpZWxkVGFibGUuQWxlcnQoU3lzdGVtLlN0cmluZykiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFByb3ZpZGUgdGhlIEFsZXJ0IG1lc3NhZ2UgZm9yIGEgZ2l2ZW4gZmllbGQgaWQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJpZCI+RmllbGRDb250ZXh0IElEPC9wYXJhbT4NCisgICAgICAgICAgICA8cmV0dXJucz5BbGVydCBtZXNzYWdlIGZvciBGaWVsZENvbnRleHQgSUQ8L3JldHVybnM+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLlRhYmxlcy5JRmllbGRUYWJsZS5MYWJlbChTeXN0ZW0uU3RyaW5nKSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSB0aGUgTGFiZWwgbWVzc2FnZSBmb3IgYSBnaXZlbiBmaWVsZCBpZC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImlkIj5GaWVsZENvbnRleHQgSUQ8L3BhcmFtPg0KKyAgICAgICAgICAgIDxyZXR1cm5zPkFsZXJ0IG1lc3NhZ2UgZm9yIEZpZWxkQ29udGV4dCBJRDwvcmV0dXJucz4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuVGFibGVzLklGaWVsZFRhYmxlLlJlcXVpcmVkKFN5c3RlbS5TdHJpbmcpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBQcm92aWRlIHRoZSBSZXF1aXJlZCBtZXNzYWdlIGZvciBhIGdpdmVuIGZpZWxkIGlkLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0iaWQiPkZpZWxkQ29udGV4dCBJRDwvcGFyYW0+DQorICAgICAgICAgICAgPHJldHVybnM+UmVxdWlyZWQgbWVzc2FnZSBmb3IgRmllbGRDb250ZXh0IElEPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5UYWJsZXMuSUZpZWxkVGFibGUuU3RyaWN0Ij4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJbmRpY2F0ZSB3aGV0aGVyIHRoaXMgRmllbGRUYWJsZSBtdXN0IGluY2x1ZGUgYWxsIGZpZWxkcywgDQorICAgICAgICAgICAgaW5jbHVkaW5nIHN0cmluZ3MgZmllbGRzIFtGQUxTRV0uDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5UYWJsZXMuSUZpZWxkVGFibGUuQWRkRmllbGRDb250ZXh0Ij4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBBZGQgYSBmaWVsZCB0byB0aGUgc2V0LiANCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLlRhYmxlcy5JRmllbGRUYWJsZS5BZGRGaWVsZENvbnRleHRzIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBBZGQgYSBsaXN0IG9mIGZpZWxkcyB0byB0aGUgc2V0Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuVGFibGVzLklGaWVsZFRhYmxlLkFkZFByb2Nlc3NvciI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQWRkIGEgUHJvY2Vzc29yIHRvIHRoZSBzZXQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5UYWJsZXMuSUZpZWxkVGFibGUuQWRkUHJvY2Vzc29ycyI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQWRkIGEgbGlzdCBvZiBQcm9jZXNzb3JzIHRvIHRoZSBzZXQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5UYWJsZXMuRmllbGRUYWJsZS4jY3RvciI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQ3JlYXRlIGluc3RhbmNlIHdpdGggemVybyBwYXJhbXRlcnMuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5UYWJsZXMuRmllbGRUYWJsZS5GaWVsZCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW50ZXJuYWwgc3RvcmFnZSBmb3IgdGhlIEZpZWxkQ29udGV4dHMuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5UYWJsZXMuRmllbGRUYWJsZS5Qcm9jZXNzb3IiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEludGVybmFsIHN0b3JhZ2UgZm9yIHRoZSBQcm9jZXNzb3JzLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOk5leHVzLkNvcmUuVmFsaWRhdG9ycy5DbGVhckNvbnRleHQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIENsZWFyIGZyb20gdGhlIENvbnRleHQgYW55IGtleXMgcHJlc2VudCBpbiB0aGUgQ3JpdGVyaWEsIA0KKyAgICAgICAgICAgIHNvIHRoYXQsIGlmIHRoZSBjb250ZXh0IGlzIHJlLXVzZWQsIHZhbHVlcyBmcm9tIGEgcHJpb3IgcmVxdWVzdCBkbyBub3QgbGluZ2VyLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz48cD4NCisgICAgICAgICAgICBPbmNlIHRoZSB2YWx1ZXMgYXJlIG91dHB1dCBmcm9tIHRoZSBDb250ZXh0IHRvIHRoZSBDcml0ZXJpYSwgDQorICAgICAgICAgICAgdGhleSBjYW4gYmUgc2FmZWx5IHJlbW92ZWQgZnJvbSB0aGUgQ29udGV4dC4gDQorICAgICAgICAgICAgPC9wPjxwPlRoaXMgY29tbWFuZCBjYW4gYmUgdXNlZCBhcyBwYXJ0IG9mIGEgcG9zdC1vcHQgY2hhaW4gdG8gZW5zdXJlIHRoYXQgDQorICAgICAgICAgICAgQ29udGV4dCB2YWx1ZXMgYXJlIG5vdCByZXRhaW5lZCBpZiBhIENvbnRleHQgb2JqZWN0IGlzIHVzZWQgZm9yIG11bHRpcGxlIA0KKyAgICAgICAgICAgIGJ1c2luZXNzIHJlcXVlc3RzLiANCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlQ6TmV4dXMuQ29yZS5SZXF1ZXN0Q29tbWFuZCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW1wbGVtZW50IElSZXF1ZXN0Q29tbWFuZCwgbGVhdmluZyBSZXF1ZXN0RXhlY3V0ZSBhYnN0cmFjdC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpOZXh1cy5Db3JlLklSZXF1ZXN0Q29tbWFuZCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRXh0ZW5kIElDb21tYW5kIHRvIHV0aWxpemUgYW4gSVJlcXVlc3RDb250ZXh0IFtPVlItOV0NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+PHA+DQorICAgICAgICAgICAgUmF0aGVyIHRoYW4gaGF2ZSBlYWNoIGNvbW1hbmQgY2FzdCBpdHMgY29udGV4dCB0byBhbiANCisgICAgICAgICAgICBJUmVxdWVzdENvbnRleHQsIA0KKyAgICAgICAgICAgIHByb3ZpZGUgYSBJUmVxdWVzdENvbW1hbmQgd2l0aCBhbiBhbHRlcm5hdGl2ZSBzaWduYXR1cmUuIA0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLklSZXF1ZXN0Q29tbWFuZC5OZXdDb250ZXh0Ij4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBGYWN0b3J5IG1ldGhvZCB0byBwcm92aWRlIGFuIGVtcHR5IGNvbnRleHQgdGhhdCBjYW4gYmUgdXNlZCANCisgICAgICAgICAgICB3aXRoIHRoZSBDb21tYW5kIGluc3RhbmNlLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmV0dXJucz5Db250ZXh0IGluc3RhbmNlIHdpdGggQ29tbWFuZCBJRCBzZXQuPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5JUmVxdWVzdENvbW1hbmQuUmVxdWVzdEV4ZWN1dGUoTmV4dXMuQ29yZS5JUmVxdWVzdENvbnRleHQpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJbnZva2UgdGhlIGJ1c2luZXNzIG9wZXJhdGlvbi4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+PHA+DQorICAgICAgICAgICAgRXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGZyb20gRXhlY3V0ZSBhcyBhIGNhc3RpbmcgY29udmVuaWVuY2UuDQorICAgICAgICAgICAgPC9wPjwvcmVtYXJrcz4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0iY29udGV4dCI+Q29udGV4dCB0byBwcm9jZXNzLjwvcGFyYW0+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLklSZXF1ZXN0Q29tbWFuZC5JRCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQW4gaWRlbnRpZmllciBmb3IgdGhpcyBDb21tYW5kLiANCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+DQorICAgICAgICAgICAgQ29ycmVzcG9uZHMgdG8gdGhlIENvbW1hbmQgcHJvcGVydHkgb2YgSUhlbHBlckNvbnRleHQuIA0KKyAgICAgICAgICAgIDwvcmVtYXJrcz4NCisgICAgICAgICAgICA8cmV0dXJucz5BbiBpZGVudGlmaWVyIGZvciB0aGlzIENvbW1hbmQuPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5JUmVxdWVzdENvbW1hbmQuUXVlcnlJRCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQW4gaWRlbnRpZmllciBmb3IgYSBRdWVyeSBhc3NvY2lhdGVkIHdpdGggdGhpcyBDb21tYW5kIChpZiBhbnkpLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz4NCisgICAgICAgICAgICBJZiBRdWVyeSBpcyBub3Qgc2V0LCB0aGVuIElEIGlzIHJldHVybmVkIGluc3RlYWQuIA0KKyAgICAgICAgICAgIChUaGUgZGVmYXVsdCBRdWVyeUlEIGlzIHRoZSBjb21tYW5kIElELikgDQorICAgICAgICAgICAgPC9yZW1hcmtzPg0KKyAgICAgICAgICAgIDxyZXR1cm5zPkFuIGlkZW50aWZpZXIgZm9yIHRoaXMgQ29tbWFuZC48L3JldHVybnM+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLklSZXF1ZXN0Q29tbWFuZC5SZXF1aXJlZElEcyI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRmllbGQgSURzIHJlcXVpcmVkIGJ5IHRoaXMgQ29tbWFuZC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+PHA+DQorICAgICAgICAgICAgSWYgcmVxdWlzaXRlIGZpZWxkcyBhcmUgbm90IHByZXNlbnQgaW4gdGhlIG1haW4gQ29udGV4dCwgDQorICAgICAgICAgICAgYXBwcm9wcmlhdGUgZXJyb3JzIHNob3VsZCBiZSBwb3N0ZWQgdG8gdGhlIEVycm9ycyBwcm9wZXJ0eSwgDQorICAgICAgICAgICAgc28gdGhhdCB0aGUgY2xpZW50IGNhbiBjb3JyZWN0IHRoZSBvdmVyc2lnaHQgYW5kIHJlc3VibWl0IHRoZSByZXF1ZXN0Lg0KKyAgICAgICAgICAgIDwvcD48cD4NCisgICAgICAgICAgICBUaGUgUmVsYXRlZElEcyBwcm9wZXJ0eSBtYXkgYmUgdXNlZCBieSB0aGUgY29tbWFuZCBpdHNlbGYsIA0KKyAgICAgICAgICAgIG9yIGJ5IGEgY29sbGFib3JhdGluZyAiY29udmVyc2lvbiIgY29tbWFuZCwgDQorICAgICAgICAgICAgdG8gY29uZmlybSB0aGF0IHJlbGF0ZWQgZmllbGRzLCB3aGVuIHByZXNlbnQsIGFyZSBpbiB0aGUgZXhwZWN0ZWQgZm9ybWF0LiANCisgICAgICAgICAgICA8L3A+PHA+DQorICAgICAgICAgICAgVGhlIFJlbGF0ZWRJRHMgcHJvcGVydHkgbWF5IGJlIHVzZWQgYnkgdGhlIGNvbW1hbmQgaXRzZWxmLCANCisgICAgICAgICAgICBvciBieSBhIGNvbGxhYm9yYXRpbmcgInZhbGlkYXRpb24iIGNvbW1hbmQsIA0KKyAgICAgICAgICAgIHRvIGNvbmZpcm0gdGhhdCByZWxhdGVkIGZpZWxkcywgd2hlbiBwcmVzZW50LCBhcmUgaW4gdGhlIGV4cGVjdGVkIGZvcm1hdC4gDQorICAgICAgICAgICAgPC9wPjwvcmVtYXJrcz4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuSVJlcXVlc3RDb21tYW5kLkFkZFJlcXVpcmVkSURzIj4NCisgICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgIEFkZCBhIElMaXN0IG9mIElEcyB0byB0aGUgbGlzdCBvZiB7QGxpbmsgUmVxdWlyZWRJZHN9Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuSVJlcXVlc3RDb21tYW5kLlJlbGF0ZWRJRHMiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFJlY29yZCBGaWVsZENvbnRleHQgSURzIHJlbGF0ZWQgdG8gdGhpcyBDb21tYW5kLCBpbmNsdWRpbmcgYW55IFJlcXVpcmVkSURzLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz48cD4NCisgICAgICAgICAgICBJZiBhIEZpZWxkIElEIGlzIG5vdCBzcGVjaWZpZWQgYXMgYSAgUmVsYXRlZElEIG9yIGEgUmVxdWlyZWRJRCwgDQorICAgICAgICAgICAgdGhhbiBpdCBtYXkgbm90IGJlIHBhc3NlZCBmcm9tIHRoZSBDcml0ZXJpYSB0byB0aGUgbWFpbiBDb250ZXh0LCANCisgICAgICAgICAgICBhbmQgc28gd2lsbCBub3QgYmUgYXZhaWxhYmxlIHRvIHRoZSBDb21tYW5kLiANCisgICAgICAgICAgICA8L3A+PHA+DQorICAgICAgICAgICAgQXMgdGhlIGZpZWxkIGlzIHBhc3NlZCBmcm9tIHRoZSBGaWVsZHN0YXRlIHRvIHRoZSBtYWluIENvbnRleHQsIA0KKyAgICAgICAgICAgIGl0IG1heSBhbHNvIGJlIGNvbnZlcnRlZCB0byB0aGUgYXBwcm9wcmlhdGUgRGF0YVR5cGUgb3Igc3RyaW5nIGZvcm1hdC4gDQorICAgICAgICAgICAgQSBjb2xsYWJvcmF0aW5nIENvbW1hbmQgbWF5IHJlZmVyZW5jZSB0aGUgRmllbGRUYWJsZSBpbiBhIElOZXh1c0NvbnRleHQgDQorICAgICAgICAgICAgdG8gYXNjZXJ0YWluIHRoZSBleHBlY3RlZCB0eXBlIG9yIGZvcm1hdCBmb3IgYSB2YWx1ZSBhbmQgDQorICAgICAgICAgICAgdG8gb2J0YWluIHRoZSBhcHByb3ByaWF0ZSBlcnJvciBtZXNzYWdlcyBmb3IgZWFjaCBmaWVsZC4gDQorICAgICAgICAgICAgPC9wPjxwPg0KKyAgICAgICAgICAgIFRoZSBSZWxhdGVkSURzIHByb3BlcnR5IG1heSBiZSB1c2VkIGJ5IHRoZSBjb21tYW5kIGl0c2VsZiwgDQorICAgICAgICAgICAgb3IgYnkgYSBjb2xsYWJvcmF0aW5nICJjb252ZXJzaW9uIiBjb21tYW5kLCANCisgICAgICAgICAgICB0byBjb25maXJtIHRoYXQgcmVsYXRlZCBmaWVsZHMsIHdoZW4gcHJlc2VudCwgYXJlIGluIHRoZSBleHBlY3RlZCBmb3JtYXQuIA0KKyAgICAgICAgICAgIDwvcD48cD4NCisgICAgICAgICAgICBTaW5jZSBwb3N0aW5nIGVycm9ycyBhbmQgbWVzc2FnZXMgaXMgYSBzcGVjaWFsaXplZCBjb25jZXJuLCANCisgICAgICAgICAgICBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IGNvbGxhYm9yYXRpbmcgQ29tbWFuZHMgaGFuZGxlIHZhbGlkYXRpb24gYW5kIGNvbmZpcm1hdGlvbi4NCisgICAgICAgICAgICA8L3A+PHA+DQorICAgICAgICAgICAgQSBjb2xsYWJvcmF0aW5nIENvbW1hbmQgbWF5IHJlZmVyZW5jZSB0aGUgRmllbGRUYWJsZSBpbiBhIElOZXh1c0NvbnRleHQgDQorICAgICAgICAgICAgdG8gYXNjZXJ0YWluIHRoZSBleHBlY3RlZCBmb3JtYXQgZm9yIGEgdmFsdWUgYW5kIA0KKyAgICAgICAgICAgIHRvIG9idGFpbiB0aGUgYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZXMgZm9yIGVhY2ggZmllbGQuIA0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLklSZXF1ZXN0Q29tbWFuZC5BZGRSZWxhdGVkSURzIj4NCisgICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgIEFkZCBhIElMaXN0IG9mIElEcyB0byB0aGUgbGlzdCBvZiB7QGxpbmsgUmVsYXRlZElkc30uDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5JUmVxdWVzdENvbW1hbmQuUnVudGltZUlEcyI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUmVjb3JkIEZpZWxkIElEcyBwcm92aWRlZCBkdXJpbmcgdGhlIHByb2Nlc3Npbmcgb2YgYSBDaGFpbi4gDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIFdoZW4gQ29tbWFuZHMgYXJlIGNoYWluZWQsIHRoZSBvdXRwdXQgZnJvbSBvbmUgQ29tbWFuZCBtYXkgYmUgIHVzZWQgDQorICAgICAgICAgICAgYXMgaW5wdXQgZm9yIGFub3RoZXIgQ29tbWFuZC4gSWYgYSBjb2xsYWJvcmF0aW5nIENvbW1hbmQgaXMgDQorICAgICAgICAgICAgdmFsaWRhdGluZyB0aGUgQ3JpdGVyaWEgZm9yIHJlcXVpcmVkIGlucHV0LCBwcmlvciB0byBwcm9jZXNzaW5nLCANCisgICAgICAgICAgICB0aGVuIFJ1bnRpbWUgRmllbGRJRHMgbWF5IGJlIGV4Y2x1ZGVkIGZyb20gdGhlIHNldCBvZiBSZXF1aXJlZElEcy4gDQorICAgICAgICAgICAgPC9wPjxwPg0KKyAgICAgICAgICAgIFRoZSBSdW50aW1lSURzIGFyZSBleHBlY3RlZCB0byBiZSBzZXQgb24gYSBDaGFpbiByYXRoZXIgdGhhbiBhbiBpbmRpdmlkdWFsIA0KKyAgICAgICAgICAgIENvbW1hbmQuIFRoZSBwcm9wZXJ0eSBpcyBhIG1lbWJlciBvZiB0aGUgSU5leHVzQ29tbWFuZCBpbnRlcmZhY2Ugc28gdGhhdCANCisgICAgICAgICAgICBDb21tYW5kIGFuZCBDaGFpbnMgY2FuIG9ic2VydmUgdGhlIHN1YnN0aXR1dGlvbiBwcmluY2lwbGUuDQorICAgICAgICAgICAgPC9wPjwvcmVtYXJrcz4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuSVJlcXVlc3RDb21tYW5kLkFkZFJ1bnRpbWVJRHMiPg0KKyAgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICAgQWRkIGEgSUxpc3Qgb2YgSURzIHRvIHRoZSBsaXN0IG9mIHtAbGluayBSdW50aW1lSWRzfS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLlJlcXVlc3RDb21tYW5kLlNUT1AiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEV4ZWN1dGUgc2hvdWxkIHJldHVybiBTVE9QIGlmIHByb2JsZW0gb2NjdXJzLCANCisgICAgICAgICAgICBzbyB0aGF0IGEgQ2hhaW4gY2FuIGV4aXQgcHJvY2Vzc2luZyBvbiBlcnJvci4gDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5SZXF1ZXN0Q29tbWFuZC5DT05USU5VRSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUmV0dXJuIENPTlRJTlVFIGlmIGFub3RoZXIgQ29tbWFuZCBjb3VsZCBydW4uDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5WYWxpZGF0b3JzLkNsZWFyQ29udGV4dC5SZXF1ZXN0RXhlY3V0ZShOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dCkiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIENsZWFyIGZyb20gdGhlIENvbnRleHQgYW55IGtleXMgcHJlc2VudCBpbiB0aGUgQ3JpdGVyaWEuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5Db250ZXh0IGFmdGVyIGF0dHJpYnV0ZXMgaGF2ZSBiZWVuIG91dHB1dCB0byBDcml0ZXJpYTwvcGFyYW0+DQorICAgICAgICAgICAgPHJldHVybnM+Q09OVElOVUU8L3JldHVybnM+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpOZXh1cy5Db3JlLlZhbGlkYXRvcnMuUHJvY2Vzc29yIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJbXBsZW1lbnQgY29tbW9uIHByb3BlcnRpZXMuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlQ6TmV4dXMuQ29yZS5WYWxpZGF0b3JzLklQcm9jZXNzb3IiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIENvbnZlcnQgb3IgRm9ybWF0IGEgc3RhbmRhcmQgb3IgY3VzdG9tIERhdGFUeXBlLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOk5leHVzLkNvcmUuVmFsaWRhdG9ycy5Db252ZXJ0SW5wdXQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIENvbnZlcnQgcmVsYXRlZCBmaWVsZHMgZnJvbSBDcml0ZXJpYSB0byB0aGUgbWFpbiBjb250ZXh0LCANCisgICAgICAgICAgICBhZGRpbmcgYW4gQWxlcnQgbWVzc2FnZSB0byBFcnJvcnMgaWYgYSBjb252ZXJzaW9uIGZhaWxzLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOk5leHVzLkNvcmUuVmFsaWRhdG9ycy5Qcm9jZXNzb3JDb21tYW5kIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBQcm92aWRlIGEgYmFzZSBjbGFzcyB0byB1c2Ugd2hlbiBpbXBsZW1lbnRhdGluZyBWYWxpZGF0b3JzLiANCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+DQorICAgICAgICAgICAgU3ViY2xhc3NlcyBtdXN0IHByb3ZpZGUgYSBOZXh1c0V4ZWN1dGUgbWV0aG9kLg0KKyAgICAgICAgICAgIDwvcmVtYXJrcz4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOk5leHVzLkNvcmUuVmFsaWRhdG9ycy5JUHJvY2Vzc29yQ29tbWFuZCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVHJhbnNmb3JtIHZhbHVlcyBmcm9tIG9uZSBkYXRhIHR5cGUgb3IgZm9ybWF0IHRvIGFub3RoZXIuIFtPVlItMTNdLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuVmFsaWRhdG9ycy5JUHJvY2Vzc29yQ29tbWFuZC5FeGVjdXRlUHJvY2VzcyhOZXh1cy5Db3JlLlZhbGlkYXRvcnMuSVByb2Nlc3NvckNvbnRleHQpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUcmFuc2Zvcm0gdGhlIHZhbHVlIGluZGljYXRlZCBieSB0aGUgY29udGV4dCBGaWVsZEtleSwgaWYgcHJlc2VudC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImNvbnRleHQiPlRoZSBjb250ZXh0IHdlIGFyZSBwcm9jZXNzaW5nPC9wYXJhbT4NCisgICAgICAgICAgICA8cmV0dXJucz5UcnVlIGlmIG5vbWluYWw8L3JldHVybnM+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLlZhbGlkYXRvcnMuSVByb2Nlc3NvckNvbW1hbmQuRXhlY3V0ZUNvbnZlcnQoTmV4dXMuQ29yZS5WYWxpZGF0b3JzLklQcm9jZXNzb3JDb250ZXh0KSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQ29udmVydCBhIGZpZWxkIHZhbHVlLCB1dGxpdGl6aW5nIHRoZSBmaWVsZCB0YWJsZSBhbmQgcHJvY2Vzc29yLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0iY29udGV4dCI+VGhlIGNvbnRleHQgd2UgYXJlIHByb2Nlc3Npbmc8L3BhcmFtPg0KKyAgICAgICAgICAgIDxyZXR1cm5zPlRydWUgaWYgbm9taW5hbDwvcmV0dXJucz4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuVmFsaWRhdG9ycy5JUHJvY2Vzc29yQ29tbWFuZC5FeGVjdXRlRm9ybWF0KE5leHVzLkNvcmUuVmFsaWRhdG9ycy5JUHJvY2Vzc29yQ29udGV4dCkiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEZvcm1hdCBhIGZpZWxkIHZhbHVlLCB1dGxpdGl6aW5nIHRoZSBmaWVsZCB0YWJsZSBhbmQgcHJvY2Vzc29yLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0iY29udGV4dCI+VGhlIGNvbnRleHQgd2UgYXJlIHByb2Nlc3Npbmc8L3BhcmFtPg0KKyAgICAgICAgICAgIDxyZXR1cm5zPlRydWUgaWYgbm9taW5hbDwvcmV0dXJucz4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuVmFsaWRhdG9ycy5JUHJvY2Vzc29yQ29tbWFuZC5SZXF1aXJlZCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSBhIG1lc3NhZ2UgdGVtcGxhdGUgdG8gdXNlIHdoZW4gYSByZXF1aXJlZCBmaWVsZCBpcyBtaXNzaW5nLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuVmFsaWRhdG9ycy5Qcm9jZXNzb3JDb21tYW5kLkNvbnZlcnRJbnB1dChOZXh1cy5Db3JlLlZhbGlkYXRvcnMuSVByb2Nlc3NvckNvbnRleHQpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBDb252ZXJ0IGlucHV0IGZvciBmaWVsZHMgdGhhdCBkbyBub3QgaGF2ZSBhIFByb2Nlc3Nvci4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+DQorICAgICAgICAgICAgVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gcGFzcyB0aHJvdWdoIHRoZSBvYmplY3RzLCB2ZXJiYXRpbS4NCisgICAgICAgICAgICA8L3JlbWFya3M+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImNvbnRleHQiPlRoZSBJUHJvY2Vzc29yQ29udGV4dDwvcGFyYW0+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLlZhbGlkYXRvcnMuUHJvY2Vzc29yQ29tbWFuZC5Gb3JtYXRPdXRwdXQoTmV4dXMuQ29yZS5WYWxpZGF0b3JzLklQcm9jZXNzb3JDb250ZXh0KSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRm9ybWF0IG91dHB1dCBmb3IgZmllbGRzIHRoYXQgZG8gbm90IGhhdmUgYSBQcm9jZXNzb3IuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPg0KKyAgICAgICAgICAgIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIHBhc3MgdGhyb3VnaCBudWxscyBhbmQgSUNvbGxlY3Rpb24gdHlwZXMgDQorICAgICAgICAgICAgYW5kIHRvIGNhbGwgVG9TdHJpbmcgb24gZXZlcnl0aGluZyBlbHNlLg0KKyAgICAgICAgICAgIDwvcmVtYXJrcz4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0iY29udGV4dCI+VGhlIElQcm9jZXNzb3JDb250ZXh0PC9wYXJhbT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOk5leHVzLkNvcmUuVmFsaWRhdG9ycy5EYXRlVGltZVByb2Nlc3NvciI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQ29udmVydCBhbmQgZm9ybWF0IERhdGVUaW1lIGZpZWxkcy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpOZXh1cy5Db3JlLlZhbGlkYXRvcnMuRW50cnlMaXN0UHJvY2Vzc29yIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUcmFuc2Zvcm0gSURpY3Rpb25hcnkgZW50cmllcyBpbnRvIGZvcm1hdHRlZCBlbnRyaWVzIG9uIGEgSUVudHJ5TGlzdCBpbnN0YW5jZXMuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIFRvIGltcGxlbWVudCwgb3ZlcnJpZGUgTmV3RW50cnlMaXN0IHRvIHByb3ZpZGUgYW4gaW5zdGFuY2VzIG9mIHRoZSBkZXNpcmVkIHR5cGUuIA0KKyAgICAgICAgICAgIFRoaXMgd2lsbCB1c3VhbGx5IGJlIGFuIElFbnRyeUxpc3QgdGhhdCBjcmVhdGVzIHRoZSBlbnRyeSBvYmplY3RzIHVzZWQgYnkgeW91ciBhcHBsaWNhdGlvbi4gDQorICAgICAgICAgICAgVGhlIGVudHJ5IG9iamVjdHMgY2FuIGJlIGNvbnZlbnRpb25hbCBwcm9wZXJ0eSBvYmplY3RzLCANCisgICAgICAgICAgICBvciBvYmplY3RzIHRoYXQgZXhwb3NlIHByb3BlcnRpZXMgYmFja2VkIGJ5IGFuIElEaWN0aW9uYXJ5LCBhcyB5b3UgcHJlZmVyLg0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLlZhbGlkYXRvcnMuRW50cnlMaXN0UHJvY2Vzc29yLk5ld0VudHJ5TGlzdCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgT3ZlcnJpZGUgdG8gcmV0dXJuIGFuIGluc3RhbmNlIG9mIHRoZSBkZXNpcmVkIElFbnRyeUxpc3QgdHlwZS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJldHVybnM+QW4gSUVudHJ5TGlzdCBpbnN0YW5jZTwvcmV0dXJucz4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOk5leHVzLkNvcmUuVmFsaWRhdG9ycy5Gb3JtYXRPdXRwdXQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEZvcm1hdCByZWxhdGVkIGZpZWxkcyBmcm9tIHRoZSBtYWluIGNvbnRleHQgdG8gQ3JpdGVyaWEsIA0KKyAgICAgICAgICAgIGFkZGluZyBhbiBlcnJvciBtZXNzYWdlIHRvIEFsZXJ0cyBpZiBmb3JtYXR0aW5nIGZhaWxzLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOk5leHVzLkNvcmUuVmFsaWRhdG9ycy5JUHJvY2Vzc29yQ29udGV4dCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRW5jYXBzdWxhdGUgdmFsdWVzIG5lZWRlZCBieSBzdGFuZGFyZCBJUHJvY2Vzc29yQ29tbWFuZHMgW09WUi0xM10uDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5WYWxpZGF0b3JzLklQcm9jZXNzb3JDb250ZXh0LkZpZWxkS2V5Ij4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJZGVudGlmeSB0aGUgZmllbGQgdW5kZXIgdmFsaWRhdGlvbi4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLlZhbGlkYXRvcnMuSVByb2Nlc3NvckNvbnRleHQuU291cmNlIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBSZWNvcmQgdGhlIHNvdXJjZSB2YWx1ZSB0byBwcm9jZXNzLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuVmFsaWRhdG9ycy5JUHJvY2Vzc29yQ29udGV4dC5UYXJnZXQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFJlY29yZCB0aGUgdGFyZ2V0IHZhbHVlIGFmdGVyIGNvbnZlcnNpb24gb3IgZm9ybWF0dGluZy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLlZhbGlkYXRvcnMuSVByb2Nlc3NvckNvbnRleHQuQ29udGV4dCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSWRlbnRpZnkgdGhlIG1haW4gSVJlcXVlc3RDb250ZXh0IGJlaW5nIHByb2Nlc3NlZC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLlZhbGlkYXRvcnMuSVByb2Nlc3NvckNvbnRleHQuQ3JpdGVyaWEiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIElkZW50aWZ5IHRoZSBzZXQgb2YgaW5wdXQvb3V0cHV0IGZpZWxkcyBiZWluZyBwcm9jZXNzZWQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5WYWxpZGF0b3JzLklQcm9jZXNzb3JDb250ZXh0LkZpZWxkVGFibGUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIElkZW50aWZ5IHRoZSBGaWVsZFRhYmxlIGJlaW5nIHV0aWxpemVkLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOk5leHVzLkNvcmUuVmFsaWRhdG9ycy5LZXlWYWx1ZVByb2Nlc3NvciI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvY2VzcyB0aGUgdmFsdWUgb2YgYSBLZXlWYWx1ZSBsaXN0IA0KKyAgICAgICAgICAgIGJ5IHNldHRpbmcgdGhlIEtleSBwcm9wZXJ0eSB0byB0aGUgRmllbGQncyBJRC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpBZ2lsaXR5Lk5leHVzLlZhbGlkYXRvcnMuUHJvY2Vzc29yQ29udGV4dCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW1wbGVtZW50IElQcm9jZXNzb3JDb250ZXh0Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOk5leHVzLkNvcmUuSUVudHJ5TGlzdCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQSBsaXN0IG9mIGEgc2V0IG9mIEZpZWxkcywgc3VjaCBhcyBkaXNwbGF5ZWQgYXMgdGhlIHJlc3VsdCBvZiBhIHF1ZXJ5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuSUVudHJ5TGlzdC5JbnNlcnQoU3lzdGVtLlN0cmluZykiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIENyZWF0ZSBhbmQgSW5zZXJ0IGEgbmV3IGVudHJ5IG9iamVjdCBhdCBpbmRleCAwLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuSUVudHJ5TGlzdC5BZGRFbnRyeShTeXN0ZW0uQ29sbGVjdGlvbnMuSURpY3Rpb25hcnkpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBBZGQgYSBlbnRyeSBvYmplY3QgYmFzZWQgb24gYW4gSURpY3Rpb25hcnkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJyb3ciPjwvcGFyYW0+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpOZXh1cy5Db3JlLklLZXlWYWx1ZSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUmVwcmVzZW50IGEga2V5L3ZhbHVlIHBhaXIsIA0KKyAgICAgICAgICAgIGFzIHN0b3JlZCBpbiBhbiBJRGljdGlvbmFyeSBvciBkaXNwbGF5ZWQgDQorICAgICAgICAgICAgYnkgYSBsaXN0IGluIGEgdXNlciBpbnRlcmZhY2UuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPg0KKyAgICAgICAgICAgIFRoZSBUZXh0IG1ldGhvZCByZXR1cm5zIHRoZSBzdHJpbmcgZm9ybSBvZiBWYWx1ZSwNCisgICAgICAgICAgICB3aGljaCBpcyB1c2VmdWwgZm9yIHRleHQtYmFzZWQgY29udHJvbHMuDQorICAgICAgICAgICAgPC9yZW1hcmtzPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5JS2V5VmFsdWUuS2V5Ij4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUaGUgS2V5IHByb3BlcnR5IHVuZGVyIHdoaWNoIHRoZSBWYWx1ZSBpcyBzdG9yZWQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5JS2V5VmFsdWUuVmFsdWUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRoZSBWYWx1ZSBzdG9yZWQgZm9yIHRoZSBLZXkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5JS2V5VmFsdWUuVGV4dCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVGhlIFZhbHVlIGluIGl0cyBzdGFuZGFyZCBzdHJpbmcgZm9ybWF0Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOk5leHVzLkNvcmUuSUtleVZhbHVlTGlzdCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgTGlzdCBLZXlWYWx1ZSBvYmplY3RzLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOk5leHVzLkNvcmUuSVJlcXVlc3RDYXRhbG9nIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICAgRXh0ZW5kIElDYXRhbG9nIHRvIGF1dG9tYXRpY2FsbHkgc2V0IElGaWVsZFRhYmxlLCANCisgICAgICAgICAgICAgSU1lc3NhZ2VUYWJsZSBhbmQgcHJvdmlkZSBjb252ZW5pZW5jZSBtZXRob2RzIFtPVlItOF0uIA0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuSVJlcXVlc3RDYXRhbG9nLkdldE9iamVjdChTeXN0ZW0uU3RyaW5nKSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgT2J0YWluIGFuIG9iamVjdCBmb3IgSUQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJuYW1lIj5PdXIgb2JqZWN0IElEPC9wYXJhbT4NCisgICAgICAgICAgICA8cmV0dXJucz5vYmplY3QgZm9yIG5hbWU8L3JldHVybnM+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLklSZXF1ZXN0Q2F0YWxvZy5HZXRIZWxwZXJGb3IoU3lzdGVtLlN0cmluZykiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIE9idGFpbiBhIGRlZmF1bHQgSVZpZXdIZWxwZXIgaW5zdGFuY2UsIA0KKyAgICAgICAgICAgIGNvbmZpZ3VyZWQgZm9yIHRoZSBzcGVjaWZpZWQgY29tbWFuZC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImNvbW1hbmQiPlRoZSBDb21tYW5kIElEPC9wYXJhbT4NCisgICAgICAgICAgICA8cmV0dXJucz5IZWxwZXIgaW5zdGFuY2UgZm9yIGNvbW1hbmQ8L3JldHVybnM+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLklSZXF1ZXN0Q2F0YWxvZy5HZXRSZXF1ZXN0Q29tbWFuZChTeXN0ZW0uU3RyaW5nKSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgT2J0YWluIENvbW1hbmQgYW5kIHZlcmlmeSB0aGF0IGluc3RhbmNlIGlzIGEgSVJlcXVlc3RDb21tYW5kLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0iY29tbWFuZCI+Q29tbWFuZCBJRDwvcGFyYW0+DQorICAgICAgICAgICAgPHJldHVybnM+SVJlcXVlc3RDb21tYW5kIGluc3RhbmNlIGZvciBuYW1lPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIDxleGNlcHRpb24gY3JlZj0iITpFeGNlcHRpb24iPg0KKyAgICAgICAgICAgIFRocm93cyBFeGNlcHRpb24gaWYgbmFtZSBpcyBudWxsLCANCisgICAgICAgICAgICBuYW1lIGlzIG5vdCBpbiBjYXRhbG9nLCANCisgICAgICAgICAgICBvciBpZiBpbnN0YW5jZSBmb3IgbmFtZSBpcyBub3QgYSBJUmVxdWVzdENvbW1hbmQNCisgICAgICAgICAgICA8L2V4Y2VwdGlvbj4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuSVJlcXVlc3RDYXRhbG9nLkdldFJlcXVlc3RDb250ZXh0KFN5c3RlbS5TdHJpbmcpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBPYnRhaW4gYSBJUmVxdWVzdENvbnRleHQgZm9yIGNvbW1hbmQgSUQsIA0KKyAgICAgICAgICAgIGluY2x1ZGluZyBlbWJlZGRlZCByZXNvdXJjZXMgbGlrZSB0aGUgRmllbGRUYWJsZSwNCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im5hbWUiPk91ciBjb21tYW5kIElEPC9wYXJhbT4NCisgICAgICAgICAgICA8cmV0dXJucz5JUmVxdWVzdENvbnRleHQgd2l0aCBlbWJlZGRlZCByZXNvdXJjZXMuPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5JUmVxdWVzdENhdGFsb2cuR2V0UmVxdWVzdENvbnRleHQoU3lzdGVtLlN0cmluZyxTeXN0ZW0uQ29sbGVjdGlvbnMuSURpY3Rpb25hcnkpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBPYnRhaW4gYSBJUmVxdWVzdENvbnRleHQgZm9yIGNvbW1hbmQgSUQsIA0KKyAgICAgICAgICAgIGluY2x1ZGluZyBlbWJlZGRlZCByZXNvdXJjZXMgbGlrZSB0aGUgRmllbGRUYWJsZSwNCisgICAgICAgICAgICBhbmQgcHJvY2VzcyBzdHJpbmctYmFzZWQgaW5wdXQuIA0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibmFtZSI+T3VyIGNvbW1hbmQgSUQ8L3BhcmFtPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJpbnB1dCI+T3VyIGlucHV0IHZhbHVlczwvcGFyYW0+DQorICAgICAgICAgICAgPHJldHVybnM+SVJlcXVlc3RDb250ZXh0IHdpdGggZW1iZWRkZWQgcmVzb3VyY2VzLjwvcmV0dXJucz4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuSVJlcXVlc3RDYXRhbG9nLkdldFJlcXVlc3RDb250ZXh0KE5leHVzLkNvcmUuSVJlcXVlc3RDb21tYW5kKSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgT2J0YWluIGEgSVJlcXVlc3RDb250ZXh0IGZvciB0aGUgY29tbWFuZCwgDQorICAgICAgICAgICAgaW5jbHVkaW5nIGVtYmVkZGVkIHJlc291cmNlcy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImNvbW1hbmQiPk91ciBjb21tYW5kPC9wYXJhbT4NCisgICAgICAgICAgICA8cmV0dXJucz5JUmVxdWVzdENvbnRleHQgd2l0aCBlbWJlZGRlZCByZXNvdXJjZXMuPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5JUmVxdWVzdENhdGFsb2cuRXhlY3V0ZVJlcXVlc3QoU3lzdGVtLlN0cmluZykiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIE9idGFpbiBhbmQgZXhlY3V0ZSBhIElSZXF1ZXN0Q29udGV4dC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im5hbWUiPk91ciBjb21tYW5kIElEPC9wYXJhbT4NCisgICAgICAgICAgICA8cmV0dXJucz5Db250ZXh0IGFmdGVyIGV4ZWN1dGlvbjwvcmV0dXJucz4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuSVJlcXVlc3RDYXRhbG9nLkV4ZWN1dGVSZXF1ZXN0KE5leHVzLkNvcmUuSVJlcXVlc3RDb250ZXh0KSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRXhlY3V0ZSBhIElSZXF1ZXN0Q29udGV4dC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImNvbnRleHQiPkNvbnRleHQgdG8gZXhlY3V0ZTwvcGFyYW0+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLklSZXF1ZXN0Q2F0YWxvZy5FeGVjdXRlVmlldyhOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dCkiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEV4ZWN1dGUgYSBJUmVxdWVzdENvbnRleHQgYXMgcGFydCBvZiBhIGNoYWluIA0KKyAgICAgICAgICAgIGNyZWF0ZWQgd2l0aCB0aGUgUHJlT3AgYW5kIFBvc3RPcCBjb21tYW5kcyAoaWYgYW55KS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+PHA+DQorICAgICAgICAgICAgQW1vbmcgb3RoZXIgdGhpbmdzLCB0aGUgUHJlT3AvUG9zdE9wIGNoYWluIG1heSB0cmFuc2ZlciANCisgICAgICAgICAgICBkYXRhIGJldHdlZW4gdGhlIENyaXRlcmlhIGFuZCB0aGUgcm9vdCBDb250ZXh0Lg0KKyAgICAgICAgICAgIDwvcD48cD4NCisgICAgICAgICAgICBUaGUgUHJlT3AvUG9zdE9wIGNoYWluIGFjdHMgYXMgYSBGcm9udCBDb250cm9sbGVyIA0KKyAgICAgICAgICAgIGluIHRoYXQgaXQgZW5zdXJlcyBjZXJ0YWluIHRhc2tzIGFyZSBwZXJmb3JtIA0KKyAgICAgICAgICAgIHVwb24gZXZlcnkgcmVxdWVzdC4gDQorICAgICAgICAgICAgPC9wPjxwPg0KKyAgICAgICAgICAgIElWaWV3SGVscGVyIGltcGxlbWVudGF0aW9ucyBhcmUgZXhwZWN0ZWQgdG8gDQorICAgICAgICAgICAgY2FsbCBFeGVjdXRlVmlldyB0byAiaW52b2tlIHRoZSBIZWxwZXIncyBjb21tYW5kIi4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5Db250ZXh0IHRvIGV4ZWN1dGU8L3BhcmFtPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5JUmVxdWVzdENhdGFsb2cuRmllbGRUYWJsZSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSB0aGUgRmllbGRUYWJsZSBmb3IgdGhpcyBDYXRhbG9nLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz48cD4NCisgICAgICAgICAgICBUaGUgR2V0UmVxdWVzdCBtZXRob2RzICJzdGFtcCIgdGhlIENvbnRleHQgDQorICAgICAgICAgICAgd2l0aCBhIHJlZmVyZW5jZSB0byB0aGUgRmllbGRUYWJsZSwgDQorICAgICAgICAgICAgYW1vbmcgb3RoZXIgdGhpbmdzLg0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLklSZXF1ZXN0Q2F0YWxvZy5QcmVPcCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRXhlY3V0ZSBiZWZvcmUgYSBDb21tYW5kIGNhbGxlZCB2aWEgRXhlY3V0ZVZpZXcuIA0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz48cD4NCisgICAgICAgICAgICBPZiBjb3Vyc2UsIGEgSVJlcXVlc3RDaGFpbiBtYXkgYmUgdXNlZCBoZXJlIHRvby4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5JUmVxdWVzdENhdGFsb2cuUG9zdE9wIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBFeGVjdXRlIGFmdGVyIGEgQ29tbWFuZCBjYWxsZWQgdmlhIEV4ZWN1dGVWaWV3LiANCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+PHA+DQorICAgICAgICAgICAgT2YgY291cnNlLCBhIElSZXF1ZXN0Q2hhaW4gbWF5IGJlIHVzZWQgaGVyZSB0b28uDQorICAgICAgICAgICAgPC9wPjwvcmVtYXJrcz4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuSVJlcXVlc3RDYXRhbG9nLlZpZXdIZWxwZXIiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIERlZmF1bHQgSVZpZXdIZWxwZXIgaW5zdGFuY2UgZm9yIHRoaXMgQ2F0YWxvZy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+PHA+DQorICAgICAgICAgICAgU2V0IGluIGNhdGFsb2dzIGZvciBhcHBsaWNhdGlvbnMgdGhhdCB1c2UgVmlld0hlbHBlcnMuDQorICAgICAgICAgICAgVGhlIG9iamVjdCBzaG91bGQgYmUgYSBub24tc2luZ2xldG9uIGluc3RhbmNlICgicHJvdHlwZSIpLg0KKyAgICAgICAgICAgIFVzZWQgYnkgR2V0SGVscGVyRm9yLg0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpOZXh1cy5Db3JlLklSZXF1ZXN0Q2hhaW4iPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIENvbXBvc2l0ZSBJQ2hhaW4gYW5kIElSZXF1ZXN0Q29tbWFuZC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRXhjaGFuZ2UgZGF0YSBiZXR3ZWVuIGJ1c2luZXNzIGFuZCBwcmVzZW50YXRpb24gbGF5ZXJzIFtPVlItN10uIA0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz48cD4NCisgICAgICAgICAgICBBbiBJUmVxdWVzdENvbnRleHQgY2FuIHByZWRlZmluZSB3aGF0ZXZlciBwcm9wZXJ0aWVzIHdlIG5lZWQgZm9yIA0KKyAgICAgICAgICAgIHN0b3JpbmcgaW5wdXQsIG91dHB1dCwgbWVzc2FnZXMsIGFuZCBvdGhlciBjb21tb24gYXR0cmlidXRlcywgDQorICAgICAgICAgICAgaW5jbHVkaW5nIExvY2FsZSAob3IgQ3VsdHVyZSkgYW5kIHVzZXIgY3JlZGVudGlhbHMuIA0KKyAgICAgICAgICAgIDwvcD48cD4NCisgICAgICAgICAgICBBIGtleSBtZW1iZXIgaXMgdGhlIEZpZWxkVGFibGUuIA0KKyAgICAgICAgICAgIFRoZSBGaWVsZFRhYmxlIHVzZXMgWEZvcm1zIHRlcm1pbm9sb2d5IGZvciBpdHMgbWVtYmVycyANCisgICAgICAgICAgICBhbmQgSVJlcXVlc3RDb250ZXh0IG1lbWJlcnMgZm9sbG93IHN1aXQuIA0KKyAgICAgICAgICAgIEZvciBleGFtcGxlLCAiZXJyb3JzIiBhcmUgY2FsbGVkICJBbGVydHMiIGFuZCBnZW5lcmljIA0KKyAgICAgICAgICAgIG1lc3NhZ2VzIGFyZSBjYWxsZWQgIkhpbnRzLCANCisgICAgICAgICAgICBzaW5jZSB0aGVzZSBhcmUgdGVybXMgdXNlZCBieSB0aGUgRmllbGRUYWJsZSBhbmQgWEZvcm1zLg0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dC5IYXNDcml0ZXJpYSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW5kaWNhdGUgd2hldGhlciBhIENyaXRlcmlhIGlzIHByZXNlbnQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZXR1cm5zPlRydWUgaWYgYSBDcml0ZXJpYSBpcyBwcmVzZW50LjwvcmV0dXJucz4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuSVJlcXVlc3RDb250ZXh0LkFkZEFsZXJ0KFN5c3RlbS5TdHJpbmcpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBBZGQgYW4gYWxlcnQgbWVzc2FnZSB1bmRlciB0aGUgImdsb2JhbCIga2V5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0idGVtcGxhdGUiPk1lc3NhZ2UgdGVtcGxhdGUuPC9wYXJhbT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuSVJlcXVlc3RDb250ZXh0LkFkZEFsZXJ0KFN5c3RlbS5TdHJpbmcsU3lzdGVtLlN0cmluZykiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEFkZCBhbiBhbGVydCBtZXNzYWdlLCBjcmVhdGluZyB0aGUgY29udGV4dCBpZiBuZWVkZWQuIA0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz4NCisgICAgICAgICAgICBNdWx0aXBsZSBtZXNzYWdlcyBjYW4gYmUgYWRkZWQgZm9yIGEga2V5IGFuZCByZXRyaWV2ZWQgYXMgYSBMaXN0Lg0KKyAgICAgICAgICAgIDwvcmVtYXJrcz4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0idGVtcGxhdGUiPk1lc3NhZ2UgdGVtcGxhdGUuPC9wYXJhbT4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWVzc2FnZSI+TWVzc2FnZSBrZXkuPC9wYXJhbT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuSVJlcXVlc3RDb250ZXh0LkFkZEFsZXJ0Rm9yRmllbGQoU3lzdGVtLlN0cmluZykiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEFkZCBhIGZvcm1hdHRlZCAiQWxlcnQiIGVycm9yIG1lc3NhZ2UNCisgICAgICAgICAgICBmb3IgdGhlIGdpdmVuIGZpZWxkIGtleSB2aWEgdGhlIEZpZWxkVGFibGUuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJrZXkiPktleSBmcm9tIHRoZSBGaWVsZFRhYmxlPC9wYXJhbT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuSVJlcXVlc3RDb250ZXh0LkFkZEFsZXJ0UmVxdWlyZWQoU3lzdGVtLlN0cmluZykiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEFkZCBhIGZvcm1hdHRlZCAiUmVxdWlyZWQiIGVycm9yIG1lc3NhZ2UNCisgICAgICAgICAgICBmb3IgdGhlIGdpdmVuIGZpZWxkIGtleSB2aWEgdGhlIEZpZWxkVGFibGUuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJrZXkiPktleSBmcm9tIHRoZSBGaWVsZFRhYmxlPC9wYXJhbT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuSVJlcXVlc3RDb250ZXh0LkFkZEhpbnQoU3lzdGVtLlN0cmluZyxTeXN0ZW0uU3RyaW5nKSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQWRkIGEgaGludCwgY3JlYXRpbmcgdGhlIGNvbnRleHQgaWYgbmVlZGVkLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz48cD4NCisgICAgICAgICAgICBNdWx0aXBsZSBoaW50cyBjYW4gYmUgYWRkZWQgZm9yIGEga2V5IGFuZCANCisgICAgICAgICAgICByZXRyaWV2ZWQgYXMgYSBMaXN0Lg0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9InRlbXBsYXRlIj5NZXNzYWdlIHRlbXBsYXRlLjwvcGFyYW0+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1lc3NhZ2UiPk1lc3NhZ2Uga2V5LjwvcGFyYW0+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dC5BZGRIaW50KFN5c3RlbS5TdHJpbmcpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBBZGQgYSBoaW50IHVuZGVyIHRoZSAiZ2xvYmFsIiBrZXkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJ0ZW1wbGF0ZSI+TWVzc2FnZSB0ZW1wbGF0ZS48L3BhcmFtPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5JUmVxdWVzdENvbnRleHQuQ29tbWFuZCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSWRlbnRpZnkgdGhlIHRvcC1sZXZlbCBDb21tYW5kIChvciBDaGFpbikgcHJvY2Vzc2luZyANCisgICAgICAgICAgICB0aGlzIENvbnRleHQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxQPg0KKyAgICAgICAgICAgIFRoZSBDb21tYW5kIHByb3BlcnR5IGNvcnJlc3BvbmRzIHRvIElEIG9mIElOZXh1c0NvbW1hbmQgDQorICAgICAgICAgICAgZm9yIHRoZSBpbml0aWFsIENvbW1hbmQgb3IgQ2hhaW4uDQorICAgICAgICAgICAgPC9QPjwvcmVtYXJrcz4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuSVJlcXVlc3RDb250ZXh0LkNvbW1hbmRCaW4iPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFByb3ZpZGUgdGhlIHRvcC1sZXZlbCBDb21tYW5kIChvciBDaGFpbikgcHJvY2Vzc2luZyB0aGlzIENvbnRleHQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIENvbW1hbmQgY29ycmVzcG9uZHMgdG8gSUQgb2YgSU5leHVzQ29tbWFuZCBmb3IgdGhlIA0KKyAgICAgICAgICAgIGluaXRpYWwgQ29tbWFuZCBvciBDaGFpbi4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5JUmVxdWVzdENvbnRleHQuRmllbGRUYWJsZSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSB0aGUgRmllbGRUYWJsZSBmb3IgdGhpcyBDb250ZXh0Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz48cD4NCisgICAgICAgICAgICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB1c2VzIHRoZSBDYXRhbG9nIHRvIGluamVjdCB0aGUgZ2xvYmFsIA0KKyAgICAgICAgICAgIEZpZWxkIFRhYmxlIHJlZmVyZW5jZS4gDQorICAgICAgICAgICAgVGhlIENvbnRleHQsIGFuZCBtZW1iZXJzIHdpdGggYWNjZXNzIHRvIGEgQ29udGV4dCwgDQorICAgICAgICAgICAgY2FuIHVzZSB0aGUgRmllbGRUYWJsZSB0byB2YWxpZGF0ZSBhbmQgZm9ybWF0IHZhbHVlcywgDQorICAgICAgICAgICAgYW5kIGV2ZW4gdG8gY3JlYXRlIGNvbnRyb2xzIHRoYXQgZGlzcGxheSB2YWx1ZXMuDQorICAgICAgICAgICAgPC9wPjwvcmVtYXJrcz4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuSVJlcXVlc3RDb250ZXh0LlByb2ZpbGUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFVzZXIgcHJvZmlsZSwgd2hpY2ggaW5jbHVkZXMgdXNlciBJRCBhbmQgTG9jYWxlLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuSVJlcXVlc3RDb250ZXh0Lkhhc091dGNvbWUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFJldHVybiB0cnVlIGlmIGFuIE91dGNvbWUgb2JqZWN0IGlzIHByZXNlbnQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZXR1cm5zPlRydWUgaWYgYW4gT3V0Y29tZSBjb250ZXh0IGlzIHByZXNlbnQuPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5JUmVxdWVzdENvbnRleHQuT3V0Y29tZSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUmV0dXJuIGEgSUxpc3Qgc3RvcmVkIHVuZGVyIHRoZSBDb21tYW5kIElELCBpZiBhbnkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIFNvbWUgQ29tbWFuZHMgcmV0dXJucyBMaXN0IG9mIHZhbHVlcy4NCisgICAgICAgICAgICBTbyB0aGF0IENvbW1hbmRzIGNhbiB3b3JrIHRvZ2V0aGVyIGFzIHBhcnQgb2YgYSBDaGFpbiwgDQorICAgICAgICAgICAgbGlzdC1iYXNlZCBDb21tYW5kcyBhcmUgZXhwZWN0ZWQgdG8gc3RvcmUgdGhlIA0KKyAgICAgICAgICAgIGxpc3QgdW5kZXIgdGhlaXIgb3duIENvbW1hbmQgSUQuDQorICAgICAgICAgICAgT3V0Y29tZSBpcyBhIGNvbnZlbmllbmNlIG1ldGhvZCB0byBhY2Nlc3MgdGhlIA0KKyAgICAgICAgICAgIGluaXRpYWwgb3IgIm91dGVybW9zdCIgQ29tbWFuZCBvciBDaGFpbiBJRC4gDQorICAgICAgICAgICAgPC9wPg0KKyAgICAgICAgICAgIDxwPg0KKyAgICAgICAgICAgIFRvIGFsbG93IHVzZSBhcyBzdWJjb21tYW5kcyBpbiBhIENoYWluLCANCisgICAgICAgICAgICBJUmVxdWVzdENvbW1hbmQgaW1wbGVtZW50YXRpb25zIHNob3VsZCBwcmVmZXIgdGhlIGlkaW9tIA0KKyAgICAgICAgICAgIDxjb2RlPkNvbnRleHRbSURdID0gb2JqZWN0PC9jb2RlPg0KKyAgICAgICAgICAgIHRvIHVzaW5nIHRoZSBPdXRjb21lIGRpcmVjdGx5LiANCisgICAgICAgICAgICBTaW5jZSB0aGV5IG1pZ2h0IG5vdCBiZSB0aGUgaW5pdGlhbCBDb21tYW5kLA0KKyAgICAgICAgICAgIGJ1dCByYXRoZXIgYSBzdWJjb21tYW5kLCBvciBsaW5rLCBpbiBhIENoYWluLg0KKyAgICAgICAgICAgIDwvcD48cD4NCisgICAgICAgICAgICBPdXRjb21lIGlzIG1vcmUgY29udmVuaWVudCB0byBwcmVzZW50YXRpb24gbGF5ZXIgY2xpZW50cywgDQorICAgICAgICAgICAgd2hvIGFyZSBsb29raW5nIGZvciB0aGUgdG9wLWxldmVsIG91dHB1dCwgDQorICAgICAgICAgICAgcmF0aGVyIHRoYW4gb3V0cHV0IG9mIGEgcGFydGljdWxhciBzdWJjb21tYW5kLg0KKyAgICAgICAgICAgIDwvcD48cD4NCisgICAgICAgICAgICBBcyBtZW50aW9uZWQsIGJvdGggT3V0Y29tZSBhbmQgdGhlIGNvbnRleHRbSURdIGlkaW9tIA0KKyAgICAgICAgICAgIGNhbiBiZSB1c2VkIGJ5IENvbW1hbmQgdGhhdCByZXR1cm4gbGlzdHMgb2YgdmFsdWVzLiANCisgICAgICAgICAgICBDb21tYW5kcyB0aGF0IHJldHVybiBhIHNpbmdsZSBzZXQgb2YgZmllbGRzIA0KKyAgICAgICAgICAgIGNhbiBzdG9yZSB0aGUgcmVzdWx0IGRpcmVjdGx5IGluIHRoZSBtYWluIENvbnRleHQuIA0KKyAgICAgICAgICAgIFRoaXMgc3RyYXRlZ3kgYWxsb3dzIG9uZSBDb21tYW5kIHRvIG9idGFpbiBmaWVsZCB2YWx1ZXMgDQorICAgICAgICAgICAgdG8gYmUgdXNlZCBieSBhbm90aGVyIENvbW1hbmQgDQorICAgICAgICAgICAgKGxpa2UgcGlwaW5nIG91dHB1dCBiZXR3ZWVuIFVuaXggc2hlbGwgY29tbWFuZHMuKQ0KKyAgICAgICAgICAgIDwvcD48cD4NCisgICAgICAgICAgICBOb3RlIHRoYXQgIk91dGNvbWUiIGlzIGFuICJhbGlhcyIgdG8gYW4gZW50cnkgaW4gDQorICAgICAgICAgICAgdGhpcyBjb250ZXh0LiANCisgICAgICAgICAgICBVbmxpa2UgRmllbGRTdGF0ZSwgT3V0Y29tZSBpcyBub3QgYSBzdWJjb250ZXh0IA0KKyAgICAgICAgICAgIGluIGl0cyBvd24gcmlnaHQuIA0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dC5Dcml0ZXJpYSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSBhbiBvcHRpb25hbCBzdWJjb250ZXh0IGNvbnRhaW5pbmcgaW5wdXQgb3Igb3V0cHV0IA0KKyAgICAgICAgICAgIHZhbHVlcywgdXN1YWxseSBleHByZXNzZWQgYXMgZGlzcGxheSBzdHJpbmdzLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz4NCisgICAgICAgICAgICA8cD4NCisgICAgICAgICAgICBDcml0ZXJpYSBpcyBwcm92aWRlZCBmb3IgQ29tbWFuZHMgdGhhdCBhY2NlcHQgaW5wdXQgDQorICAgICAgICAgICAgZnJvbSBvdGhlciBjb21wb25lbnRzIHdoaWNoIG1heSBuZWVkIHRvIGJlIHZhbGlkYXRlZCwgDQorICAgICAgICAgICAgY29udmVydGVkLCBvciBmb3JtYXR0ZWQgYmVmb3JlIHVzZS4NCisgICAgICAgICAgICBJZiB0aGUgcHJvcG9zZWQgRmllbGRTdGF0ZSBpcyBhY2NlcHRlZCwgDQorICAgICAgICAgICAgdGhlIGVudHJpZXMgbWF5IGJlIG1lcmdlZCBpbnRvIHRoZSByb290IENvbnRleHQsIA0KKyAgICAgICAgICAgIHBlcmhhcHMgYWZ0ZXIgdHlwZSBjb252ZXJzaW9uIG9yIGZvcm1hdHRpbmcgdGFza3MuDQorICAgICAgICAgICAgSWYgdGhlIHByb3Bvc2VkIEZpZWxkU3RhdGUgaXMgbm90IGFjY2VwdGVkLCANCisgICAgICAgICAgICB0aGUgZW50cmllcyBhcmUgbm90IG1lcmdlZCBpbnRvIHRoZSByb290IENvbnRleHQsIA0KKyAgICAgICAgICAgIGFuZCB0aGVyZSBzaG91bGQgYmUgRXJyb3JzIG9yIGEgRmF1bHQgZXhwbGFpbmluZyANCisgICAgICAgICAgICB3aHkgdGhlIEZpZWxkU3RhdGUgKGUuZyBpbnB1dCkgY2Fubm90IGJlIGFjY2VwdGVkLg0KKyAgICAgICAgICAgIDwvcD4NCisgICAgICAgICAgICA8cD4NCisgICAgICAgICAgICBJbiBwcmFjdGljZSwgaXQgaXMgZXhwZWN0ZWQsIGJ1dCBub3QgcmVxdWlyZWQsIHRoYXQgDQorICAgICAgICAgICAgYWxsIHRoZSBGaWVsZFN0YXRlIGVudHJpZXMgd2lsbCBjb250YWluIHN0cmluZyB2YWx1ZXMuDQorICAgICAgICAgICAgPC9wPg0KKyAgICAgICAgICAgIDxwPg0KKyAgICAgICAgICAgIENvbW1hbmRzIHNob3VsZCBvbmx5IGFjdCBvbiB0aGUgQ3JpdGVyaWEgaW4gb3JkZXIgDQorICAgICAgICAgICAgdG8gdHJhbnNmZXIgdmFsdWVzIGJldHdlZW4gdGhlIEZpZWxkU3RhdGUgYW5kIHRoZSANCisgICAgICAgICAgICByb290IENvbnRleHQuIA0KKyAgICAgICAgICAgIENvbnZlbnRpb25hbCBDb21tYW5kcyB3aWxsIGxvb2sgdG8gdGhlIHJvb3QgQ29udGV4dCANCisgICAgICAgICAgICBmb3IgdGhlIHN0YXRlIGFuZCBtYWtlIGFueSBleHBlY3RlZCBjaGFuZ2VzIA0KKyAgICAgICAgICAgIG9yIGFkZGl0aW9ucyBkaXJlY3RseSB0byB0aGUgcm9vdCBjb250ZXh0Lg0KKyAgICAgICAgICAgIEZpZWxkU3RhdGUgaXMgbm90IGV4cGVjdGVkIHRvIGJlIHVzZWQgYnkgYSBDb21tYW5kcyANCisgICAgICAgICAgICB1bmxlc3MgaW5wdXQgaXMgYmVpbmcgc3VibWl0dGVkIGZyb20gYW4gdW50cnVzdGVkIG9yIA0KKyAgICAgICAgICAgIG5haXZlIGNvbXBvbmVudCwgb3IgbmVlZHMgdG8gYmUgdHJhbnNmb3JtZWQgZm9yIHVzZSANCisgICAgICAgICAgICBieSBhIGRpc3BsYXkgY29tcG9uZW50Lg0KKyAgICAgICAgICAgIDwvcD4NCisgICAgICAgICAgICA8L3JlbWFya3M+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dC5BbGVydHMiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFJlY29yZCBhIGxpc3Qgb2YgYWxlcnQgKG9yIGVycm9yKSBtZXNzYWdlcywgDQorICAgICAgICAgICAga2V5ZWQgYnkgdGhlIGZpZWxkIGNhdXNpbmcgdGhlIG1lc3NhZ2UsIA0KKyAgICAgICAgICAgIG9yIHRvIGEgbWFnaWMgZ2xvYmFsIGtleS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFyaz48cD4NCisgICAgICAgICAgICBUT0RPOiBSZWZhY3RvciBhcyBOYW1lVmFsdWVDb2xsZWN0aW9uID8NCisgICAgICAgICAgICA8L3A+PC9yZW1hcms+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dC5IYXNBbGVydHMiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEluZGljYXRlIHdoZXRoZXIgYWxlcnRzIGV4aXN0Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmV0dXJucz5UcnVlIGlmIHRoZXJlIGFyZSBhbGVydHMuPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6TmV4dXMuQ29yZS5JUmVxdWVzdENvbnRleHQuRmF1bHQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFJlY29yZCBhbiBFeGNlcHRpb24sIGlmIHRocm93bi4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dC5IYXNGYXVsdCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW5kaWNhdGUgd2hldGhlciBhbiBFeGNlcHRpb24gd2FzIGNhdWdodC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJldHVybnM+VHJ1ZSBpZiBhbiBFeGNlcHRpb24gd2FzIGNhdWdodC48L3JldHVybnM+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dC5Jc05vbWluYWwiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEluZGljYXRlIHdoZXRoZXIgY29udGV4dCBpcyBmcmVlIG9mIGZhdWx0IGFuZCBhbGVydHMuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZXR1cm5zPlRydWUgaWYgdGhlcmUgYXJlIG5vIGZhdWx0IG9yIGFsZXJ0cy48L3JldHVybnM+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dC5IaW50cyI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUmVjb3JkIGhpbnQgKGFkdmlzb3J5IG9yIHdhcm5pbmcpIG1lc3NhZ2VzICghZXJyb3JzKSwgDQorICAgICAgICAgICAga2V5ZWQgYnkgdGhlIGZpZWxkIGNhdXNpbmcgdGhlIG1lc3NhZ2UsIA0KKyAgICAgICAgICAgIG9yIHRvIGEgbWFnaWMgZ2xvYmFsIGtleS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dC5IYXNIaW50cyI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW5kaWNhdGUgd2hldGhlciBoaW50cyBleGlzdC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJldHVybnM+VHJ1ZSBpZiB0aGVyZSBhcmUgaGludHMuPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlQ6TmV4dXMuQ29yZS5LZXlWYWx1ZSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW1wbGVtZW50IElLZXlWYWx1ZS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLktleVZhbHVlLktFWSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRXhwb3NlIG5hbWUgb2YgIktleSIgZmllbGQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIFVzZSB0aGlzIGZpZWxkIGZvciB0aGUgRGF0YVZhbHVlRmllbGQgKHNpYykuDQorICAgICAgICAgICAgPC9wPjwvcmVtYXJrcz4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuS2V5VmFsdWUuVkFMVUUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEV4cG9zZSBuYW1lIG9mICJWYWx1ZSIgZmllbGQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIFVzZSB0aGlzIGZpZWxkIGZvciB0aGUgRGF0YVRleHRGaWVsZCAoc2ljKS4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlQ6TmV4dXMuQ29yZS5LZXlWYWx1ZUxpc3QiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEltcGxlbWVudCBJS2V5VmFsdWVMaXN0Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuS2V5VmFsdWVMaXN0LiNjdG9yIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBDb25zdHJ1Y3QgaW5zdGFuY2Ugd2l0aG91dCBwYXJhbWV0ZXJzLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOk5leHVzLkNvcmUuS2V5VmFsdWVMaXN0LkFkZEFsbCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQWRkIG1lbWJlcnMgb2YgZ2l2ZW4gbGlzdCB0byB0aGlzIGxpc3QuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlQ6TmV4dXMuQ29yZS5SZXF1ZXN0Q2hhaW4iPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEltcGxlbWVudCBJUmVxdWVzdENoYWluLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOk5leHVzLkNvcmUuUmVxdWVzdENvbnRleHQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEltcGxlbWVudCBJUmVxdWVzdENvbnRleHQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5SZXF1ZXN0Q29udGV4dC5Ub1N0cmluZyI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRXhwcmVzcyBzdGF0ZSBhcyBhIGtleT12YWx1ZSBsaXN0Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmV0dXJucz5Gb3JtYXR0ZWQgc3RyaW5nIHJlcHJlc2VudGluZyBzdGF0ZS48L3JldHVybnM+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLlJlcXVlc3RDb250ZXh0LiNjdG9yKFN5c3RlbS5TdHJpbmcpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBDb252ZW5pZW5jZSBjb25zdHJ1Y3RvciB0byBzZXQgQ29tbWFuZCBvbiBpbnN0YW50aWF0aW9uLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0iY29tbWFuZCI+TmFtZSBvZiBDb21tYW5kIHByb2Nlc3NpbmcgdGhpcyBDb250ZXh0LjwvcGFyYW0+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLlJlcXVlc3RDb250ZXh0LiNjdG9yIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBEZWZhdWx0LCBubyBhcmd1bWVudCBjb25zdHJ1Y3Rvci4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLlJlcXVlc3RDb250ZXh0LkxhenlDcml0ZXJpYSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW5zdGFudGlhdGUgQ3JpdGVyaWEsIGlmIG5lZWRlZC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpOZXh1cy5Db3JlLlJlcXVlc3RDb250ZXh0LkFkZFN0b3JlKFN5c3RlbS5TdHJpbmcsU3lzdGVtLlN0cmluZyxTeXN0ZW0uU3RyaW5nKSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQ29udmVuaWVuY2UgbWV0aG9kIHRvIGxhemlseSBpbnN0YW50aWF0ZSBhIG1lc3NhZ2Ugc3RvcmUuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJ0ZW1wbGF0ZSI+TWVzc2FnZSB0ZW1wbGF0ZSB0byBhZGQgdG8gdGhlIHF1ZXVlLjwvcGFyYW0+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9InF1ZXVlIj5Ub2tlbiBmb3IgcXVldWUgb2YgbWVzc2FnZXMgd2l0aGluIHRoZSANCisgICAgICAgICAgICBzdG9yZS48L3BhcmFtPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJrZXkiPlRva2VuIGZvciBtZXNzYWdlIHN0b3JlLjwvcGFyYW0+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpOZXh1cy5Db3JlLlRva2VucyI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSB0b2tlbnMgcmVwcmVzZW50aW5nIGNvbnRleHQga2V5cy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+PHA+DQorICAgICAgICAgICAgVGhlIGNvbW1vbiBjb252ZW50aW9uIG9mIHVzaW5nIENBUElUQUxTIGZvciBjb25zdGFudHMgDQorICAgICAgICAgICAgaXMgbm90IGZvbGxvd2VkIGZvciBwcm9wZXJ0aWVzIGJlY2F1c2UgdXNpbmcgdGhlIHNhbWUgDQorICAgICAgICAgICAgY2FzZSBhcyB0aGUgUHJvcGVydHkgc2ltcGxpZmllcyB0aGUgdXNlIG9mIGEgc2ltcGxlIA0KKyAgICAgICAgICAgIHRlbXBsYXRlIHRvIGNyZWF0ZSBuZXcgbWVtYmVycy4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Ub2tlbnMuQWxlcnQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBBbGVydCBwcm9wZXJ0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLlRva2Vucy5BbGVydHMiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBBbGVydHMgcHJvcGVydHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Ub2tlbnMuQ29tbWFuZCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIENvbW1hbmQgcHJvcGVydHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Ub2tlbnMuQ29tbWFuZEJpbiI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIENvbW1hbmRCaW4gcHJvcGVydHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Ub2tlbnMuQ29udHJvbFR5cGVOYW1lIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUb2tlbiBmb3IgQ29udHJvbFR5cGVOYW1lIENvbnRyb2xUeXBlTmFtZS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLlRva2Vucy5Db250ZXh0Ij4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUb2tlbiBmb3IgQ29udGV4dCBwcm9wZXJ0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLlRva2Vucy5Dcml0ZXJpYSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIENyaXRlcmlhIHByb3BlcnR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuVG9rZW5zLlByb2Nlc3NvciI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIFByb2Nlc3NvciBwcm9wZXJ0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLlRva2Vucy5EYXRhRm9ybWF0Ij4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUb2tlbiBmb3IgRGF0YUZvcm1hdCBEYXRhRm9ybWF0Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuVG9rZW5zLkRhdGFUeXBlIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUb2tlbiBmb3IgRGF0YVR5cGUgRGF0YVR5cGUuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Ub2tlbnMuRGF0YVR5cGVJRCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIERhdGFUeXBlTmFtZSBEYXRhVHlwZU5hbWUuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Ub2tlbnMuRmF1bHQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBGYXVsdCBwcm9wZXJ0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLlRva2Vucy5GaWVsZEtleSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIEZpZWxkS2V5IHByb3BlcnR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuVG9rZW5zLkZpZWxkVGFibGUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBGaWVsZFRhYmxlIHByb3BlcnR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuVG9rZW5zLkZpZWxkIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUb2tlbiBmb3IgRmllbGQgcHJvcGVydHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Ub2tlbnMuR2VuZXJpY01lc3NhZ2UiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBhIGdlbmVyaWMgbWVzc2FnZSBwcm9wZXJ0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+PHA+DQorICAgICAgICAgICAgQSBkb3QgaXMgdXNlZCB0byBjb21tdW5pY2F0ZSB0aGUgaWRlYSANCisgICAgICAgICAgICB0aGF0IHRoZSBtZXNzYWdlIGNhdGFnb3J5IGhhcyBubyBuYW1lDQorICAgICAgICAgICAgYW5kIHRvIGF2b2lkIHVzaW5nIGEgbGFuZ3VhZ2UgY29uc3RhbnQgDQorICAgICAgICAgICAgaW4gYSBsYW5ndWFnZS1uZXV0cmFsIGNvbnRlbnQuDQorICAgICAgICAgICAgPC9wPjwvcmVtYXJrcz4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuVG9rZW5zLkhpbnQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBIaW50IHByb3BlcnR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuVG9rZW5zLkhpbnRzIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUb2tlbiBmb3IgSGludHMgcHJvcGVydHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Ub2tlbnMuSGVscCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIEhlbHAgcHJvcGVydHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Ub2tlbnMuSUQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBJRCBJRC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLlRva2Vucy5MYWJlbCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIExhYmVsIHByb3BlcnR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuVG9rZW5zLlJlcXVpcmVkIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUb2tlbiBmb3IgUmVxdWlyZWQgcHJvcGVydHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Ub2tlbnMuU291cmNlIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUb2tlbiBmb3IgU291cmNlIHByb3BlcnR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuVG9rZW5zLlRhcmdldCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIFRhcmdldCBwcm9wZXJ0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLlRva2Vucy5JRF9GSUVMRF9UQUJMRSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIEZpZWxkVGFibGUgY29tbWFuZCBlbGVtZW50Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuVG9rZW5zLkNPTlRST0xfSU5QVVQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBpbnB1dCBDb250cm9sIFR5cGUgTmFtZS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLlRva2Vucy5ISU5UX0VESVQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgICBUb2tlbiBmb3IgRWRpdCBoaW50Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuVG9rZW5zLkhJTlRfU1VDQ0VTU19BREQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgICBUb2tlbiBmb3IgQWRkIFN1Y2NlZXNzIGhpbnQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Ub2tlbnMuSElOVF9TVUNDRVNTX0VESVQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgICBUb2tlbiBmb3IgRWRpdCBTdWNjZXNzIGhpbnQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Ub2tlbnMuSElOVF9TVUNDRVNTX1FVSVQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBRdWl0IFN1Y2Nlc3MgaGludC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLlRva2Vucy5FTlRSWV9FRElUX0NPTU1BTkQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBFbnRyeSBFZGl0IGNvbW1hbmQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Ub2tlbnMuRU5UUllfUVVJVF9DT01NQU5EIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUb2tlbiBmb3IgRW50cnkgUXVpdCBjb21tYW5kLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOk5leHVzLkNvcmUuVG9rZW5zLkVOVFJZX1NBVkVfQ09NTUFORCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIEVudHJ5IFNhdmUgY29tbWFuZC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpOZXh1cy5Db3JlLlRva2Vucy5FTlRSWV9JVEVNX0NPTU1BTkQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBFbnRyeSBJdGVtIGNvbW1hbmQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6TmV4dXMuQ29yZS5Ub2tlbnMuRU5UUllfSVRFTV9DT01NQU5EX05BTUUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBFbnRyeSBJdGVtIGNvbW1hbmQgbmFtZS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpOZXh1cy5Db3JlLkVudHJ5RGljdGlvbmFyeSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRXhwb3NlIGZpZWxkIGF0dHJpYnV0ZXMgYXMgcHVibGljIHByb3BlcnRpZXMuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIFRoZSBFbnRyeURpY3Rpb25hcnkgaXMgdXNlZCBmb3IgaW50ZWdyYXRpb24gd2l0aCBsaWJyYXJpZXMgdGhhdCANCisgICAgICAgICAgICBjYW4gdXNlIG9ubHkgcHVibGljIHByb3BlcnRpZXMsIHN1Y2ggYXMgRGF0YUdyaWQuIA0KKyAgICAgICAgICAgIEl0IGlzIGFsc28gdXNlZCB0byBwYXNzIHByb3BlcnRpZXMgYXMgRXZlbnQgYXJndW1lbnQsIA0KKyAgICAgICAgICAgIGluIHdoaWNoIGNhc2UgaXQgaXMgdXNlZCBsaWtlIGEgZGF0YSB0cmFuc2ZlciBvYmplY3QuDQorICAgICAgICAgICAgPC9wPjxwPg0KKyAgICAgICAgICAgIFRoZSB2YWx1ZXMgYXJlIGF2YWlsYWJsZSBib3RoIGFzIGFuIElEaWN0aW9uYXJ5IGFuZCANCisgICAgICAgICAgICAob3B0aW9uYWxseSkgYXMgUHJvcGVydGllcy4gDQorICAgICAgICAgICAgKFRoZSBwcm9wZXJ0aWVzIHNob3VsZCB1c2UgdGhlIElEaWN0aW9uYXJ5IGZvciBzdG9yYWdlLikNCisgICAgICAgICAgICBUbyBkZWZpbmUgcHJvcGVydGllcywgZXh0ZW5kIEVudHJ5RGljdGlvbmFyeS4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06TmV4dXMuQ29yZS5FbnRyeURpY3Rpb25hcnkuVG9TdHJpbmciPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFByb3ZpZGUgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGZpZWxkIHZhbHVlcyANCisgICAgICAgICAgICBpbiB0aGUgZm9ybWF0ICJrZXk9dmFsdWVcbiIuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZXR1cm5zPlN0cmluZyByZXByZXNlbnRhdGlvbjwvcmV0dXJucz4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJNOk5leHVzLkNvcmUuRW50cnlEaWN0aW9uYXJ5LkNhY2hlVGV4dCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQ2FsbCBjYWxjdWxhdGVkIHByb3BlcnRpZXMgc28gdGhhdCANCisgICAgICAgICAgICB0aGV5IGFyZSBjYWNoZWQgYXMgZW50cmllcyBpbiB0aGUgdGFibGUuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPg0KKyAgICAgICAgICAgIDxwPk92ZXJyaWRlIHRvIHByb3ZpZGUgZnVuY3Rpb25hbGl0eTwvcD4NCisgICAgICAgICAgICA8L3JlbWFya3M+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgPC9tZW1iZXJzPg0KKzwvZG9jPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1Byb2ZpbGUvSVByb2ZpbGUuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9Qcm9maWxlL0lQcm9maWxlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5MTJmYTIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9Qcm9maWxlL0lQcm9maWxlLmNzCkBAIC0wLDAgKzEsMzAgQEAKK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsNCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZS5Qcm9maWxlDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBSZWNvcmQgdXNlciBzZXR0aW5ncy4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlwdWJsaWMgaW50ZXJmYWNlIElQcm9maWxlDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZWNvcmQgdGhlIFVzZXIgSUQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJc3RyaW5nIFVzZXJJZCB7IGdldDsgc2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmVjb3JkIHRoZSBVc2VyIExvY2FsZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlDdWx0dXJlSW5mbyBVc2VyTG9jYWxlIHsgZ2V0OyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZWNvcmQgb3RoZXIgZGVmYXVsdCBzZXR0aW5ncy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlJRGljdGlvbmFyeSBDcml0ZXJpYSB7IGdldDsgc2V0OyB9DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvUHJvZmlsZS9Vc2VySWRlbnRpdHkuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9Qcm9maWxlL1VzZXJJZGVudGl0eS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTZlZTcxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvUHJvZmlsZS9Vc2VySWRlbnRpdHkuY3MKQEAgLTAsMCArMSw4MSBAQAordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5TZWN1cml0eS5QcmluY2lwYWw7DQorDQorbmFtZXNwYWNlIE5leHVzLkNvcmUuUHJvZmlsZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gSW1wbGVtZW50IElJZGVudGl0eSB0byBjYXB0dXJlIHVzZXIncyBsb2dpbiBuYW1lLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gPHJlbWFya3M+PHA+DQorCS8vLyBBbiBpZGVudGl0eSBvYmplY3QgcmVwcmVzZW50cyB0aGUgdXNlciBvbiB3aG9zZSBiZWhhbGYgdGhlIGNvZGUgaXMgcnVubmluZykuDQorCS8vLyA8L3A+PHA+DQorCS8vLyBGb3IgdGhpcyB0byB3b3JrLCB3ZSBtdXN0IHVwZGF0ZSB0aGUgV2ViLmNvbmZpZyBhbmQgdGhlIHNlcnZlciBzZXR0aW5ncy4gDQorCS8vLyA8L3A+PHA+DQorCS8vLyBXZWIuY29uZmlnOiAmbHQ7YXV0aGVudGljYXRpb24gbW9kZT0iV2luZG93cyIgLyZndDsgJmx0O2lkZW50aXR5IGltcGVyc29uYXRlPSJ0cnVlIi8mZ3Q7DQorCS8vLyA8L3A+PHA+DQorCS8vLyBJSVMgQWRtaW46IERpc2FibGUgQW5vbiBBY2Nlc3Mgb24gdGhlIERpcmVjdG9yeSBTZWN1cml0eSB0YWIuDQorCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwlbU2VyaWFsaXphYmxlXQ0KKwlwdWJsaWMgY2xhc3MgVXNlcklkZW50aXR5IDogSUlkZW50aXR5DQorCXsNCisJCXByaXZhdGUgc3RyaW5nIF9OYW1lOw0KKw0KKwkJcHVibGljIHN0cmluZyBOYW1lDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9OYW1lOyB9DQorCQl9DQorDQorCQlwcml2YXRlIHN0cmluZyBfQXV0aGVudGljYXRpb25UeXBlOw0KKw0KKwkJcHVibGljIHN0cmluZyBBdXRoZW50aWNhdGlvblR5cGUNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0F1dGhlbnRpY2F0aW9uVHlwZTsgfQ0KKwkJCXNldCB7IF9BdXRoZW50aWNhdGlvblR5cGUgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHJpdmF0ZSBib29sIF9Jc0F1dGhlbnRpY2F0ZWQgPSBmYWxzZTsNCisNCisJCXB1YmxpYyBib29sIElzQXV0aGVudGljYXRlZA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfSXNBdXRoZW50aWNhdGVkOyB9DQorCQkJc2V0IHsgX0lzQXV0aGVudGljYXRlZCA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5zdGFudGlhdGUgd2l0aCB6ZXJvIHBhcmFtZXRlcnMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIFVzZXJJZGVudGl0eSgpDQorCQl7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5zdGFudGlhdGUgd2l0aCBhbiBJSWRlbnRpdHkuIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz4NCisJCS8vLyBFc3NlbnRpYWxseSwgY3JlYXRlIGEgc2hhbGxvdyBjb3B5IG9mIHRoZSBnaXZlbiBJZGVudGl0eS4NCisJCS8vLyA8L3JlbWFya3M+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImlkIj5JZGVudGl0eSB0byBjb3B5PC9wYXJhbT4NCisJCXB1YmxpYyBVc2VySWRlbnRpdHkoSUlkZW50aXR5IGlkKQ0KKwkJew0KKwkJCWlmIChudWxsICE9IGlkKQ0KKwkJCXsNCisJCQkJX05hbWUgPSBpZC5OYW1lOw0KKwkJCQlBdXRoZW50aWNhdGlvblR5cGUgPSBpZC5BdXRoZW50aWNhdGlvblR5cGU7DQorCQkJCUlzQXV0aGVudGljYXRlZCA9IGlkLklzQXV0aGVudGljYXRlZDsNCisJCQl9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5zdGFudGlhdGUgZnJvbSBwYXNzZWQgdmFsdWVzLiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9Im5hbWUiPlZhbHVlIGZvciB1c2VyJ3MgbmFtZTwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImF1dGhlbnRpY2F0aW9uVHlwZSI+VmFsdWUgZm9yIEF1dGhlbnRpY2F0aW9uVHlwZTwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImlzQXV0aGVudGljYXRlZCI+VmFsdWUgZm9yIElzQXV0aGVudGljYXRlZDwvcGFyYW0+DQorCQlwdWJsaWMgVXNlcklkZW50aXR5KHN0cmluZyBuYW1lLCBzdHJpbmcgYXV0aGVudGljYXRpb25UeXBlLCBib29sIGlzQXV0aGVudGljYXRlZCkNCisJCXsNCisJCQlfTmFtZSA9IG5hbWU7DQorCQkJX0F1dGhlbnRpY2F0aW9uVHlwZSA9IGF1dGhlbnRpY2F0aW9uVHlwZTsNCisJCQlfSXNBdXRoZW50aWNhdGVkID0gaXNBdXRoZW50aWNhdGVkOw0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1Byb2ZpbGUvVXNlclByaW5jaXBhbC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1Byb2ZpbGUvVXNlclByaW5jaXBhbC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWY3MWIwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvUHJvZmlsZS9Vc2VyUHJpbmNpcGFsLmNzCkBAIC0wLDAgKzEsNzEgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uU2VjdXJpdHkuUHJpbmNpcGFsOw0KKw0KK25hbWVzcGFjZSBOZXh1cy5Db3JlLlByb2ZpbGUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEltcGxlbWVudCBJUHJpbmNpcGFsIHRvIGNhcHR1cmUgdGhlIHVzZXIncyBsb2dpbiBuYW1lLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gPHJlbWFya3M+PHA+DQorCS8vLyBJUHJpbmNpcGFsIC0gQSBwcmluY2lwYWwgb2JqZWN0IHJlcHJlc2VudHMgdGhlIHNlY3VyaXR5IGNvbnRleHQgb2YgdGhlIA0KKwkvLy8gdXNlciBvbiB3aG9zZSBiZWhhbGYgdGhlIGNvZGUgaXMgcnVubmluZywgaW5jbHVkaW5nIHRoYXQgdXNlcidzIGlkZW50aXR5IA0KKwkvLy8gKElJZGVudGl0eSkgYW5kIGFueSByb2xlcyB0byB3aGljaCB0aGV5IGJlbG9uZy4NCisJLy8vIDwvcD48L3JlbWFya3M+DQorCVtTZXJpYWxpemFibGVdDQorCXB1YmxpYyBjbGFzcyBVc2VyUHJpbmNpcGFsIDogSVByaW5jaXBhbA0KKwl7DQorCQlwcml2YXRlIElJZGVudGl0eSBfSWRlbnRpdHk7DQorDQorCQlwdWJsaWMgSUlkZW50aXR5IElkZW50aXR5DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9JZGVudGl0eTsgfQ0KKwkJCXNldCB7IF9JZGVudGl0eSA9IHZhbHVlOyB9DQorCQl9DQorDQorCQlwdWJsaWMgYm9vbCBJc0luUm9sZShzdHJpbmcgcm9sZSkNCisJCXsNCisJCQlpZiAoKG51bGwgPT0gX1JvbGVzKSB8fCAoMCA9PSBfUm9sZXMuTGVuZ3RoKSkgcmV0dXJuIGZhbHNlOw0KKwkJCWlmICgobnVsbCA9PSByb2xlKSB8fCAoMCA9PSByb2xlLkxlbmd0aCkpIHJldHVybiBmYWxzZTsNCisJCQlib29sIGZvdW5kID0gZmFsc2U7DQorCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBfUm9sZXMuTGVuZ3RoOyBpKyspDQorCQkJCWZvdW5kID0gZm91bmQgfHwgcm9sZS5FcXVhbHMoX1JvbGVzW2ldKTsNCisJCQlyZXR1cm4gZm91bmQ7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRmllbGQgZm9yIFJvbGVzIHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgc3RyaW5nW10gX1JvbGVzOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRoZSByb2xlcyBmb3IgdGhpcyBwcmluY2lwYWwgcmVwcmVzZW50YXRlZCBhcyBhbiBhcnJheS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgc3RyaW5nW10gUm9sZXMNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX1JvbGVzOyB9DQorCQkJc2V0IHsgX1JvbGVzID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJbnN0YW50aWF0ZSBkZWZhdWx0IE5leHVzUHJpbmNpcGFsIHdpdGggZW1wdHkgTmV4dXNJZGVudGl0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgVXNlclByaW5jaXBhbCgpDQorCQl7DQorCQkJSWRlbnRpdHkgPSBuZXcgVXNlcklkZW50aXR5KCk7IC8vIEZJWE1FOiBTcHJpbmc/DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5zdGFudGlhdGUgZnJvbSBhbiBJSWRlbnRpdHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPg0KKwkJLy8vIFRoZSBSb2xlcyBmb3IgdGhpcyBwcmluY2lwYWwgd2lsbCBmb2xsb3cgDQorCQkvLy8gdGhvc2Ugc2V0IGJ5IHRoZSBSb2xlcyBwcm9wZXJ0eSwgcmVnYXJkbGVzcyBvZiB0aGUgDQorCQkvLy8gSWRlbnRpdHkgb3IgQXV0aGVudGljYXRpb24gVHlwZS4NCisJCS8vLyA8L3JlbWFya3M+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImlkIj5WYWx1ZSBmb3IgdXNlciBuYW1lPC9wYXJhbT4NCisJCXB1YmxpYyBVc2VyUHJpbmNpcGFsKElJZGVudGl0eSBpZCkNCisJCXsNCisJCQlJZGVudGl0eSA9IG5ldyBVc2VySWRlbnRpdHkoaWQpOyAvLyBGSVhNRTogU3ByaW5nPw0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1Byb2ZpbGUvVXNlclByb2ZpbGUuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9Qcm9maWxlL1VzZXJQcm9maWxlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0MDUxYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9Qcm9maWxlL1VzZXJQcm9maWxlLmNzCkBAIC0wLDAgKzEsMTUzIEBACit1c2luZyBTeXN0ZW07DQordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KK3VzaW5nIFN5c3RlbS5HbG9iYWxpemF0aW9uOw0KK3VzaW5nIFN5c3RlbS5TZWN1cml0eS5QcmluY2lwYWw7DQorDQorbmFtZXNwYWNlIE5leHVzLkNvcmUuUHJvZmlsZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gUmVwcmVzZW50IGEgdXNlci4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIDxyZW1hcmtzPjxwPg0KKwkvLy8gVGhlIFVzZXJQcm9maWxlIGluY2x1ZGVzIGEgc3RhbmRhcmQgUHJpbmNpcGFsIG9iamVjdCBmb3IgDQorCS8vLyBhdXRoZW50aWZpY2F0aW9uIGFuZCBhdXRob3JpemF0aW9uLiANCisJLy8vIEFueSB1c2VyLXJlbGF0ZWQgcHJvcGVydGllcyBtYXkgYmUgYWRkZWQgaGVyZSwgYWxvbmcgd2l0aCANCisJLy8vIGNvbnZlbmllbmNlIG1ldGhvZHMgZm9yIGRldGVybWluaW5nIHJvbGVzLCBzdWNoIGFzIA0KKwkvLy8gSXNFbmdpbmVlciwgSXNNYW5hZ2VyLCBldCBhbC4NCisJLy8vIDwvcD48L3JlbWFya3M+DQorCVtTZXJpYWxpemFibGVdDQorCXB1YmxpYyBjbGFzcyBVc2VyUHJvZmlsZSA6IElQcm9maWxlDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJZGVudGlmeSBhdHRyaWJ1dGUga2V5IGZvciBzdG9yaW5nIGEgdXNlciBwcm9maWxlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgVVNFUl9QUk9GSUxFID0gIlVTRVJfUFJPRklMRSI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSWRlbnRpZnkgYXR0cmlidXRlIGtleSBmb3Igc3RvcmluZyBhIHVzZXIgSUQ7Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgVVNFUl9JRCA9ICJVU0VSX0lEIjsNCisNCisJCXByaXZhdGUgSVByaW5jaXBhbCBfUHJpbmNpcGFsOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgdGhlIFByaW5jaXBhbCBvYmplY3QgZm9yIHRoaXMgdXNlci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gVXN1YWxseSwgdGhpcyBpcyBhIFVzZXJQcmluY2lwYWwsIA0KKwkJLy8vIGJ1dCBhbnkgSVByaW5jaXBhbCBpbnN0YW5jZSBjb3VsZCBiZSB1c2VkLg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQlwdWJsaWMgSVByaW5jaXBhbCBQcmluY2lwYWwNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX1ByaW5jaXBhbDsgfQ0KKwkJCXNldCB7IF9QcmluY2lwYWwgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJI3JlZ2lvbiBVc2VySWQNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJZGVudGlmeSB0aGUgY2hhcmFjdGVyIHNlcGFyYXRpbmcgYSAibWFjaGluZSBuYW1lIiBmcm9tIGEgInVzZXIgaWQiLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBzdGF0aWMgY2hhcltdIFVTRVJfSURfU0VQQVJBVE9SID0geydcXCd9OyAvLyBCYWNrc2xhc2ggaXMgdGhlIHF1b3RlIGNoYXJhY3Rlciwgc28geW91IG5lZWQgdG8gZXNjYXBlIGl0Lg0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRyaW0gYW55IG1hY2hpbmUgbmFtZSByZWZlcmVuY2UgZnJvbSBQcmluY2lwYWwgTmFtZS4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJuYW1lIj5BIElkZW50aXR5IE5hbWUgdGhhdCBtYXkgY29udGFpbiBhIG1hY2hpbmUgbmFtZSByZWZlcmVuY2U8L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPklkZW50aXR5IG5hbWUgd2l0aCBtYWNoaW5lIG5hbWUgcmVtb3ZlZDwvcmV0dXJucz4NCisJCXByb3RlY3RlZCBzdHJpbmcgVHJpbU1hY2hpbmVOYW1lKHN0cmluZyBuYW1lKQ0KKwkJew0KKwkJCWlmIChudWxsID09IG5hbWUpIHJldHVybiBTdHJpbmcuRW1wdHk7DQorCQkJc3RyaW5nW10gbG9nb24gPSBuYW1lLlNwbGl0KFVTRVJfSURfU0VQQVJBVE9SKTsNCisJCQlpZiAobG9nb24uTGVuZ3RoID4gMSkgcmV0dXJuIGxvZ29uWzFdOw0KKwkJCXJldHVybiBsb2dvblswXTsNCisJCX0NCisNCisJCXByaXZhdGUgc3RyaW5nIF9Vc2VySWQ7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmVjb3JkIHRoZSB1c2VyIGlkIHBvcnRpb24gb2YgdGhlIElkZW50aXR5IE5hbWUuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIFRoZSBVc2VySWQgY2FuIGJlIHVzZWQgdG8gcmVsYXRlIHN0YWZmIHJlY29yZHMgdG8gdXNlciBsb2dpbnMuDQorCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCXB1YmxpYyBzdHJpbmcgVXNlcklkDQorCQl7DQorCQkJZ2V0DQorCQkJew0KKwkJCQlpZiAobnVsbCA9PSBfVXNlcklkKQ0KKwkJCQkJX1VzZXJJZCA9IFRyaW1NYWNoaW5lTmFtZShQcmluY2lwYWwuSWRlbnRpdHkuTmFtZSk7DQorCQkJCXJldHVybiAobnVsbCA9PSBfVXNlcklkKSA/IFN0cmluZy5FbXB0eSA6IF9Vc2VySWQ7DQorCQkJfQ0KKwkJCXNldCB7IF9Vc2VySWQgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbg0KKw0KKwkJI3JlZ2lvbiBVc2VyTG9jYWxlIA0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBmaWVsZCBmb3IgVXNlckxvY2FsZSBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIEN1bHR1cmVJbmZvIF9Vc2VyTG9jYWxlOw0KKw0KKwkJcHVibGljIEN1bHR1cmVJbmZvIFVzZXJMb2NhbGUNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX1VzZXJMb2NhbGU7IH0NCisJCQlzZXQgeyBfVXNlckxvY2FsZSA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkjcmVnaW9uIENyaXRlcmlhDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBhIGZpZWxkIGZvciBDcml0ZXJpYSBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcml2YXRlIElEaWN0aW9uYXJ5IF9Dcml0ZXJpYTsNCisNCisJCXB1YmxpYyBJRGljdGlvbmFyeSBDcml0ZXJpYQ0KKwkJew0KKwkJCWdldA0KKwkJCXsNCisJCQkJaWYgKF9Dcml0ZXJpYSA9PSBudWxsKQ0KKwkJCQkJX0NyaXRlcmlhID0gbmV3IEhhc2h0YWJsZSgpOw0KKwkJCQlyZXR1cm4gX0NyaXRlcmlhOw0KKwkJCX0NCisJCQlzZXQgeyBfQ3JpdGVyaWEgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbg0KKw0KKwkJI3JlZ2lvbiBDb25zdHJ1Y3RvcnMgDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5zdGFudGlhdGUgYSBkZWZhdWx0IHByb2ZpbGUuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIFVzZXJQcm9maWxlKCkNCisJCXsNCisJCQlQcmluY2lwYWwgPSBuZXcgVXNlclByaW5jaXBhbCgpOyAvLyBGSVhNRTogU3ByaW5nPw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEluc3RhbnRpYXRlIGZyb20gYW4gSVByaW5jaXBhbC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InByaW5jaXBhbCI+UHJpbmNpcGFsIGZvciB0aGlzIHByb2ZpbGUuPC9wYXJhbT4NCisJCXB1YmxpYyBVc2VyUHJvZmlsZShJUHJpbmNpcGFsIHByaW5jaXBhbCkNCisJCXsNCisJCQlQcmluY2lwYWwgPSBwcmluY2lwYWw7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5zdGFudGlhdGUgZnJvbSBhbiBJSWRlbnRpdHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJpZCI+SWRlbnRpdHkgdG8gY29weSBmb3IgdGhpcyBwcm9maWxlLjwvcGFyYW0+DQorCQlwdWJsaWMgVXNlclByb2ZpbGUoSUlkZW50aXR5IGlkKQ0KKwkJew0KKwkJCVByaW5jaXBhbCA9IG5ldyBVc2VyUHJpbmNpcGFsKGlkKTsNCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9SZXF1ZXN0Q2hhaW4uY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9SZXF1ZXN0Q2hhaW4uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWM1YzNkYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1JlcXVlc3RDaGFpbi5jcwpAQCAtMCwwICsxLDU4IEBACit1c2luZyBTeXN0ZW07DQordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KK3VzaW5nIEFnaWxpdHkuQ29yZTsNCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gSW1wbGVtZW50IElSZXF1ZXN0Q2hhaW4uDQorCS8vLyA8L3N1bW1hcnk+DQorCXB1YmxpYyBjbGFzcyBSZXF1ZXN0Q2hhaW4gOiBSZXF1ZXN0Q29tbWFuZCwgSVJlcXVlc3RDaGFpbg0KKwl7DQorCQlwcml2YXRlIENoYWluIGNoYWluID0gbmV3IENoYWluKCk7DQorDQorCQlwdWJsaWMgdm9pZCBBZGRDb21tYW5kKElDb21tYW5kIF9jb21tYW5kKQ0KKwkJew0KKwkJCUlSZXF1ZXN0Q29tbWFuZCBjb21tYW5kID0gX2NvbW1hbmQgYXMgSVJlcXVlc3RDb21tYW5kOw0KKwkJCWlmIChudWxsID09IGNvbW1hbmQpDQorCQkJCXRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24oIlJlcXVlc3RDaGFpbi5BZGRDb21tYW5kIiwgIl9jb21tYW5kIik7DQorDQorCQkJY2hhaW4uQWRkQ29tbWFuZChjb21tYW5kKTsNCisNCisJCQkvLyBDb21wb3NpdGUgUmVxdWlyZWQgYW5kIFJlbGF0ZWQNCisJCQlJTGlzdCBfUmVxdWlyZWRJRHMgPSBjb21tYW5kLlJlcXVpcmVkSURzOw0KKwkJCWlmIChudWxsICE9IF9SZXF1aXJlZElEcykgQWRkUmVxdWlyZWRJRHMgPSBfUmVxdWlyZWRJRHM7DQorDQorCQkJSUxpc3QgX1JlbGF0ZWRJRHMgPSBjb21tYW5kLlJlbGF0ZWRJRHM7DQorCQkJaWYgKG51bGwgIT0gX1JlbGF0ZWRJRHMpIEFkZFJlbGF0ZWRJRHMgPSBfUmVsYXRlZElEczsNCisJCX0NCisNCisJCXB1YmxpYyBJTGlzdCBBZGRDb21tYW5kcw0KKwkJew0KKwkJCXNldA0KKwkJCXsNCisJCQkJZm9yZWFjaCAoSUNvbW1hbmQgY29tbWFuZCBpbiB2YWx1ZSkNCisJCQkJew0KKwkJCQkJQWRkQ29tbWFuZChjb21tYW5kKTsNCisJCQkJfQ0KKwkJCX0NCisJCX0NCisNCisJCXB1YmxpYyBvdmVycmlkZSBib29sIEV4ZWN1dGUoSUNvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQlyZXR1cm4gY2hhaW4uRXhlY3V0ZShjb250ZXh0KTsNCisJCX0NCisNCisJCXB1YmxpYyBJQ29tbWFuZFtdIEdldENvbW1hbmRzKCkNCisJCXsNCisJCQlyZXR1cm4gKGNoYWluLkdldENvbW1hbmRzKCkpOw0KKw0KKwkJfQ0KKw0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgUmVxdWVzdEV4ZWN1dGUoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJcmV0dXJuIEV4ZWN1dGUoY29udGV4dCk7DQorCQl9DQorDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvUmVxdWVzdENvbW1hbmQuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9SZXF1ZXN0Q29tbWFuZC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTNjYWRiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvUmVxdWVzdENvbW1hbmQuY3MKQEAgLTAsMCArMSwxNzQgQEAKKy8qDQorICogQ29weXJpZ2h0IDIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyAqIA0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKiANCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqIA0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8NCit1c2luZyBTeXN0ZW07DQordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KK3VzaW5nIEFnaWxpdHkuQ29yZTsNCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gSW1wbGVtZW50IElSZXF1ZXN0Q29tbWFuZCwgbGVhdmluZyBSZXF1ZXN0RXhlY3V0ZSBhYnN0cmFjdC4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUmVxdWVzdENvbW1hbmQgOiBJUmVxdWVzdENvbW1hbmQNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEV4ZWN1dGUgc2hvdWxkIHJldHVybiBTVE9QIGlmIHByb2JsZW0gb2NjdXJzLCANCisJCS8vLyBzbyB0aGF0IGEgQ2hhaW4gY2FuIGV4aXQgcHJvY2Vzc2luZyBvbiBlcnJvci4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IGJvb2wgU1RPUCA9IHRydWU7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmV0dXJuIENPTlRJTlVFIGlmIGFub3RoZXIgQ29tbWFuZCBjb3VsZCBydW4uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IGJvb2wgQ09OVElOVUUgPSBmYWxzZTsNCisNCisJCXByaXZhdGUgc3RyaW5nIF9JRCA9IG51bGw7DQorDQorCQlwdWJsaWMgdmlydHVhbCBzdHJpbmcgSUQNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0lEOyB9DQorCQkJc2V0IHsgX0lEID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXByaXZhdGUgc3RyaW5nIF9RdWVyeUlEID0gbnVsbDsNCisNCisJCXB1YmxpYyB2aXJ0dWFsIHN0cmluZyBRdWVyeUlEDQorCQl7DQorCQkJZ2V0DQorCQkJew0KKwkJCQlpZiAobnVsbCA9PSBfUXVlcnlJRCkgcmV0dXJuIElEOw0KKwkJCQllbHNlIHJldHVybiBfUXVlcnlJRDsNCisJCQl9DQorCQkJc2V0IHsgX1F1ZXJ5SUQgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHZpcnR1YWwgSVJlcXVlc3RDb250ZXh0IE5ld0NvbnRleHQoKQ0KKwkJew0KKwkJCS8vIFJldHVybiBhIG5ldyBpbnN0YW5jZSBvbiBlYWNoIGNhbGwuDQorCQkJLy8gSVNTVUU6IFNwcmluZz8NCisJCQlyZXR1cm4gbmV3IFJlcXVlc3RDb250ZXh0KElEKTsNCisJCX0NCisNCisJCXByaXZhdGUgSUxpc3QgX1JlcXVpcmVkSURzID0gbnVsbDsNCisNCisJCXB1YmxpYyB2aXJ0dWFsIElMaXN0IFJlcXVpcmVkSURzDQorCQl7DQorCQkJZ2V0DQorCQkJew0KKwkJCQlyZXR1cm4gX1JlcXVpcmVkSURzOw0KKwkJCX0NCisJCQlzZXQgeyBfUmVxdWlyZWRJRHMgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIElMaXN0IEFkZFJlcXVpcmVkSURzDQorCQl7DQorCQkJc2V0DQorCQkJew0KKwkJCQlpZiAodmFsdWUgPT0gbnVsbCkNCisJCQkJCXRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24oIkJhc2VOZXh1c0NvbW1hbmQuQWRkUmVxdWlyZWRJRHMiLCAidmFsdWUiKTsNCisJCQkJSUxpc3QgbGlzdCA9IFJlcXVpcmVkSURzOw0KKwkJCQlpZiAobnVsbCA9PSBsaXN0KQ0KKwkJCQkJUmVxdWlyZWRJRHMgPSB2YWx1ZTsNCisJCQkJZWxzZQ0KKwkJCQl7DQorCQkJCQlJRW51bWVyYXRvciBlbGVtZW50cyA9IHZhbHVlLkdldEVudW1lcmF0b3IoKTsNCisJCQkJCXdoaWxlIChlbGVtZW50cy5Nb3ZlTmV4dCgpKQ0KKwkJCQkJew0KKwkJCQkJCXN0cmluZyBpID0gZWxlbWVudHMuQ3VycmVudCBhcyBzdHJpbmc7DQorCQkJCQkJYm9vbCBuZWVkID0gKGxpc3QuSW5kZXhPZihpKSA8IDApOw0KKwkJCQkJCWlmIChuZWVkKSBsaXN0LkFkZChpKTsNCisJCQkJCX0NCisJCQkJfQ0KKwkJCX0NCisJCX0NCisNCisJCXByaXZhdGUgSUxpc3QgX1JlbGF0ZWRJRHMgPSBudWxsOw0KKw0KKwkJcHVibGljIHZpcnR1YWwgSUxpc3QgUmVsYXRlZElEcw0KKwkJew0KKwkJCWdldA0KKwkJCXsNCisJCQkJaWYgKF9SZWxhdGVkSURzPT1udWxsKSANCisJCQkJCV9SZWxhdGVkSURzID0gbmV3IEFycmF5TGlzdCgpOw0KKwkJCQlyZXR1cm4gX1JlbGF0ZWRJRHM7DQorCQkJfQ0KKwkJCXNldCB7IF9SZWxhdGVkSURzID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXB1YmxpYyBJTGlzdCBBZGRSZWxhdGVkSURzDQorCQl7DQorCQkJc2V0DQorCQkJew0KKwkJCQlpZiAodmFsdWUgPT0gbnVsbCkNCisJCQkJCXRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24oIkJhc2VOZXh1c0NvbW1hbmQuQWRkUmVsYXRlZElEcyIsICJ2YWx1ZSIpOw0KKwkJCQlJTGlzdCBsaXN0ID0gUmVsYXRlZElEczsNCisJCQkJaWYgKG51bGwgPT0gbGlzdCkNCisJCQkJCVJlbGF0ZWRJRHMgPSB2YWx1ZTsNCisJCQkJZWxzZQ0KKwkJCQl7DQorCQkJCQlJRW51bWVyYXRvciBlbGVtZW50cyA9IHZhbHVlLkdldEVudW1lcmF0b3IoKTsNCisJCQkJCXdoaWxlIChlbGVtZW50cy5Nb3ZlTmV4dCgpKQ0KKwkJCQkJew0KKwkJCQkJCXN0cmluZyBpID0gZWxlbWVudHMuQ3VycmVudCBhcyBzdHJpbmc7DQorCQkJCQkJYm9vbCBuZWVkID0gKGxpc3QuSW5kZXhPZihpKSA8IDApOw0KKwkJCQkJCWlmIChuZWVkKSBsaXN0LkFkZChpKTsNCisJCQkJCX0NCisJCQkJfQ0KKwkJCX0NCisJCX0NCisNCisJCXByaXZhdGUgSUxpc3QgX1J1bnRpbWVJRHMgPSBudWxsOw0KKw0KKwkJcHVibGljIHZpcnR1YWwgSUxpc3QgUnVudGltZUlEcw0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfUnVudGltZUlEczsgfQ0KKwkJCXNldCB7IF9SdW50aW1lSURzID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXB1YmxpYyBJTGlzdCBBZGRSdW50aW1lSURzDQorCQl7DQorCQkJc2V0DQorCQkJew0KKwkJCQlpZiAodmFsdWUgPT0gbnVsbCkNCisJCQkJCXRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24oIkJhc2VOZXh1c0NvbW1hbmQuQWRkUnVudGltZUlEcyIsICJ2YWx1ZSIpOw0KKwkJCQlJTGlzdCBsaXN0ID0gUnVudGltZUlEczsNCisJCQkJaWYgKG51bGwgPT0gbGlzdCkNCisJCQkJCVJ1bnRpbWVJRHMgPSB2YWx1ZTsNCisJCQkJZWxzZQ0KKwkJCQl7DQorCQkJCQlJRW51bWVyYXRvciBlbGVtZW50cyA9IHZhbHVlLkdldEVudW1lcmF0b3IoKTsNCisJCQkJCXdoaWxlIChlbGVtZW50cy5Nb3ZlTmV4dCgpKQ0KKwkJCQkJew0KKwkJCQkJCXN0cmluZyBpID0gZWxlbWVudHMuQ3VycmVudCBhcyBzdHJpbmc7DQorCQkJCQkJYm9vbCBuZWVkID0gKGxpc3QuSW5kZXhPZihpKSA8IDApOw0KKwkJCQkJCWlmIChuZWVkKSBsaXN0LkFkZChpKTsNCisJCQkJCX0NCisJCQkJfQ0KKwkJCX0NCisJCX0NCisNCisJCXB1YmxpYyBhYnN0cmFjdCBib29sIFJlcXVlc3RFeGVjdXRlKElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KTsNCisNCisJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgRXhlY3V0ZShJQ29udGV4dCBfY29udGV4dCkNCisJCXsNCisJCQlJUmVxdWVzdENvbnRleHQgY29udGV4dCA9IF9jb250ZXh0IGFzIElSZXF1ZXN0Q29udGV4dDsNCisJCQlyZXR1cm4gUmVxdWVzdEV4ZWN1dGUoY29udGV4dCk7DQorCQl9DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvUmVxdWVzdENvbnRleHQuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9SZXF1ZXN0Q29udGV4dC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmNjMTYxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvUmVxdWVzdENvbnRleHQuY3MKQEAgLTAsMCArMSwyNTIgQEAKKy8qDQorICogQ29weXJpZ2h0IDIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyAqIA0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKiANCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqIA0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8NCit1c2luZyBTeXN0ZW07DQordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KK3VzaW5nIFN5c3RlbS5UZXh0Ow0KK3VzaW5nIEFnaWxpdHkuQ29yZTsNCit1c2luZyBOZXh1cy5Db3JlLlByb2ZpbGU7DQordXNpbmcgTmV4dXMuQ29yZS5UYWJsZXM7DQorDQorbmFtZXNwYWNlIE5leHVzLkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEltcGxlbWVudCBJUmVxdWVzdENvbnRleHQuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyANCisJcHVibGljIGNsYXNzIFJlcXVlc3RDb250ZXh0IDogQ29udGV4dCwgSVJlcXVlc3RDb250ZXh0DQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBFeHByZXNzIHN0YXRlIGFzIGEga2V5PXZhbHVlIGxpc3QuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZXR1cm5zPkZvcm1hdHRlZCBzdHJpbmcgcmVwcmVzZW50aW5nIHN0YXRlLjwvcmV0dXJucz4NCisJCXB1YmxpYyBvdmVycmlkZSBzdHJpbmcgVG9TdHJpbmcoKQ0KKwkJew0KKwkJCVN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOw0KKwkJCWZvcmVhY2ggKERpY3Rpb25hcnlFbnRyeSBlIGluIHRoaXMpDQorCQkJew0KKwkJCQlzYi5BcHBlbmQoIlsiKTsNCisJCQkJc2IuQXBwZW5kKGUuS2V5KTsNCisJCQkJc2IuQXBwZW5kKCI9Iik7DQorCQkJCXNiLkFwcGVuZChlLlZhbHVlLlRvU3RyaW5nKCkpOw0KKwkJCQlzYi5BcHBlbmQoIl0sICIpOw0KKwkJCX0NCisJCQlyZXR1cm4gc2IuVG9TdHJpbmcoKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb252ZW5pZW5jZSBjb25zdHJ1Y3RvciB0byBzZXQgQ29tbWFuZCBvbiBpbnN0YW50aWF0aW9uLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29tbWFuZCI+TmFtZSBvZiBDb21tYW5kIHByb2Nlc3NpbmcgdGhpcyBDb250ZXh0LjwvcGFyYW0+DQorCQkvLy8gDQorCQlwdWJsaWMgUmVxdWVzdENvbnRleHQoc3RyaW5nIGNvbW1hbmQpDQorCQl7DQorCQkJQ29tbWFuZCA9IGNvbW1hbmQ7DQorCQl9DQorDQorCQlwdWJsaWMgUmVxdWVzdENvbnRleHQoSURpY3Rpb25hcnkgZW50cmllcykNCisJCXsNCisJCQlmb3JlYWNoIChEaWN0aW9uYXJ5RW50cnkgZW50cnkgaW4gZW50cmllcykNCisJCQl7DQorCQkJCWJhc2UuQWRkKGVudHJ5LktleSwgZW50cnkuVmFsdWUpOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBEZWZhdWx0LCBubyBhcmd1bWVudCBjb25zdHJ1Y3Rvci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgUmVxdWVzdENvbnRleHQoKQ0KKwkJew0KKwkJfQ0KKw0KKwkJcHVibGljIHN0cmluZyBDb21tYW5kDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIHRoaXNbVG9rZW5zLkNvbW1hbmRdIGFzIHN0cmluZzsgfQ0KKwkJCXNldCB7IHRoaXNbVG9rZW5zLkNvbW1hbmRdID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXB1YmxpYyBJUmVxdWVzdENvbW1hbmQgQ29tbWFuZEJpbg0KKwkJew0KKwkJCWdldCB7IHJldHVybiB0aGlzW1Rva2Vucy5Db21tYW5kQmluXSBhcyBJUmVxdWVzdENvbW1hbmQ7IH0NCisJCQlzZXQgeyB0aGlzW1Rva2Vucy5Db21tYW5kQmluXSA9IHZhbHVlOyB9DQorCQl9DQorDQorCQlwdWJsaWMgSUZpZWxkVGFibGUgRmllbGRUYWJsZQ0KKwkJew0KKwkJCWdldCB7IHJldHVybiB0aGlzW1Rva2Vucy5GaWVsZFRhYmxlXSBhcyBJRmllbGRUYWJsZTsgfQ0KKwkJCXNldCB7IHRoaXNbVG9rZW5zLkZpZWxkVGFibGVdID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXB1YmxpYyBJUHJvZmlsZSBQcm9maWxlDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIHRoaXNbVXNlclByb2ZpbGUuVVNFUl9QUk9GSUxFXSBhcyBJUHJvZmlsZTsgfQ0KKwkJCXNldA0KKwkJCXsNCisJCQkJdGhpc1tVc2VyUHJvZmlsZS5VU0VSX1BST0ZJTEVdID0gdmFsdWU7DQorCQkJCUlQcm9maWxlIHByb2ZpbGUgPSB2YWx1ZTsNCisJCQkJaWYgKG51bGwgIT0gcHJvZmlsZSkNCisJCQkJCXRoaXNbVXNlclByb2ZpbGUuVVNFUl9JRF0gPSBwcm9maWxlLlVzZXJJZDsNCisJCQl9DQorCQl9DQorDQorCQlwdWJsaWMgYm9vbCBIYXNPdXRjb21lDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIENvbnRhaW5zKENvbW1hbmQpOyB9DQorCQl9DQorDQorCQlwdWJsaWMgb2JqZWN0IE91dGNvbWUNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gdGhpc1tDb21tYW5kXTsgfQ0KKwkJCXNldCB7IHRoaXNbQ29tbWFuZF0gPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEluc3RhbnRpYXRlIENyaXRlcmlhLCBpZiBuZWVkZWQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHJpdmF0ZSB2b2lkIExhenlDcml0ZXJpYSgpDQorCQl7DQorCQkJLy8gTmFpdmUsIGJ1dCB3ZSBleHBlY3QgYSBDb250ZXh0IGluc3RhbmNlIHRvIGJlIHNpbmdsZS10aHJlYWRlZC4NCisJCQlpZiAodGhpc1tUb2tlbnMuQ3JpdGVyaWFdID09IG51bGwpDQorCQkJCXRoaXNbVG9rZW5zLkNyaXRlcmlhXSA9IG5ldyBIYXNodGFibGUoKTsgLy8gVE9ETzogU3ByaW5nPw0KKwkJfQ0KKw0KKwkJcHVibGljIElEaWN0aW9uYXJ5IENyaXRlcmlhDQorCQl7DQorCQkJZ2V0DQorCQkJew0KKwkJCQlMYXp5Q3JpdGVyaWEoKTsNCisJCQkJcmV0dXJuIHRoaXNbVG9rZW5zLkNyaXRlcmlhXSBhcyBJRGljdGlvbmFyeTsNCisJCQl9DQorCQkJc2V0IHsgdGhpc1tUb2tlbnMuQ3JpdGVyaWFdID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXB1YmxpYyBib29sIEhhc0NyaXRlcmlhKCkNCisJCXsNCisJCQlyZXR1cm4gQ29udGFpbnNLZXkoVG9rZW5zLkNyaXRlcmlhKTsNCisJCX0NCisNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb252ZW5pZW5jZSBtZXRob2QgdG8gbGF6aWx5IGluc3RhbnRpYXRlIGEgbWVzc2FnZSBzdG9yZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InRlbXBsYXRlIj5NZXNzYWdlIHRlbXBsYXRlIHRvIGFkZCB0byB0aGUgcXVldWUuPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0icXVldWUiPlRva2VuIGZvciBxdWV1ZSBvZiBtZXNzYWdlcyB3aXRoaW4gdGhlIA0KKwkJLy8vIHN0b3JlLjwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImtleSI+VG9rZW4gZm9yIG1lc3NhZ2Ugc3RvcmUuPC9wYXJhbT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBBZGRTdG9yZShzdHJpbmcgdGVtcGxhdGUsIHN0cmluZyBxdWV1ZSwgc3RyaW5nIGtleSkNCisJCXsNCisJCQlJRGljdGlvbmFyeSBzdG9yZSA9IHRoaXNba2V5XSBhcyBJRGljdGlvbmFyeTsNCisJCQlpZiAobnVsbCA9PSBzdG9yZSkNCisJCQl7DQorCQkJCXN0b3JlID0gbmV3IEhhc2h0YWJsZSgpOyAvLyBJU1NVRTogU3ByaW5nPw0KKwkJCQl0aGlzW2tleV0gPSBzdG9yZTsNCisJCQl9DQorCQkJSUxpc3QgbGlzdDsNCisJCQlpZiAoc3RvcmUuQ29udGFpbnMocXVldWUpKQ0KKwkJCQlsaXN0ID0gc3RvcmVbcXVldWVdIGFzIElMaXN0Ow0KKwkJCWVsc2UNCisJCQl7DQorCQkJCWxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7IC8vIElTU1VFOiBTcHJpbmc/DQorCQkJCXN0b3JlW3F1ZXVlXSA9IGxpc3Q7DQorCQkJfQ0KKwkJCWxpc3QuQWRkKHRlbXBsYXRlKTsNCisJCX0NCisNCisJCXB1YmxpYyBzdHJpbmcgRm9ybWF0VGVtcGxhdGUoc3RyaW5nIHRlbXBsYXRlLCBzdHJpbmcgdmFsdWUpDQorCQl7DQorCQkJU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7DQorCQkJc2IuQXBwZW5kRm9ybWF0KHRlbXBsYXRlLCB2YWx1ZSk7DQorCQkJcmV0dXJuIHNiLlRvU3RyaW5nKCk7DQorCQl9DQorDQorCQlwdWJsaWMgSURpY3Rpb25hcnkgQWxlcnRzDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIHRoaXNbVG9rZW5zLkFsZXJ0c10gYXMgSURpY3Rpb25hcnk7IH0NCisJCQlzZXQgeyB0aGlzW1Rva2Vucy5BbGVydHNdID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIEFkZEFsZXJ0KHN0cmluZyB0ZW1wbGF0ZSkNCisJCXsNCisJCQlBZGRTdG9yZSh0ZW1wbGF0ZSwgVG9rZW5zLkdlbmVyaWNNZXNzYWdlLCBUb2tlbnMuQWxlcnRzKTsNCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIEFkZEFsZXJ0KHN0cmluZyB0ZW1wbGF0ZSwgc3RyaW5nIHF1ZXVlKQ0KKwkJew0KKwkJCUFkZFN0b3JlKHRlbXBsYXRlLCBxdWV1ZSwgVG9rZW5zLkFsZXJ0cyk7DQorCQl9DQorDQorCQlwdWJsaWMgdm9pZCBBZGRBbGVydEZvckZpZWxkKHN0cmluZyBrZXkpDQorCQl7DQorCQkJc3RyaW5nIG1lc3NhZ2UgPSBGb3JtYXRUZW1wbGF0ZShGaWVsZFRhYmxlLkFsZXJ0KGtleSksIEZpZWxkVGFibGUuTGFiZWwoa2V5KSk7DQorCQkJQWRkQWxlcnQobWVzc2FnZSwga2V5KTsNCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIEFkZEFsZXJ0UmVxdWlyZWQoc3RyaW5nIGtleSkNCisJCXsNCisJCQlzdHJpbmcgbWVzc2FnZSA9IEZvcm1hdFRlbXBsYXRlKEZpZWxkVGFibGUuUmVxdWlyZWQoa2V5KSwgRmllbGRUYWJsZS5MYWJlbChrZXkpKTsNCisJCQlBZGRBbGVydChtZXNzYWdlLCBrZXkpOw0KKwkJfQ0KKw0KKwkJcHVibGljIGJvb2wgSGFzQWxlcnRzDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIENvbnRhaW5zS2V5KFRva2Vucy5BbGVydHMpOyB9DQorCQl9DQorDQorCQlwdWJsaWMgRXhjZXB0aW9uIEZhdWx0DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIHRoaXNbVG9rZW5zLkZhdWx0XSBhcyBFeGNlcHRpb247IH0NCisJCQlzZXQNCisJCQl7DQorCQkJCUV4Y2VwdGlvbiBlID0gdmFsdWU7DQorCQkJCXRoaXNbVG9rZW5zLkZhdWx0XSA9IGU7DQorCQkJCUFkZEFsZXJ0KGUuTWVzc2FnZSk7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJcHVibGljIGJvb2wgSGFzRmF1bHQNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gQ29udGFpbnNLZXkoVG9rZW5zLkZhdWx0KTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIGJvb2wgSXNOb21pbmFsDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuICghSGFzQWxlcnRzICYmICFIYXNGYXVsdCk7IH0NCisJCX0NCisNCisJCXB1YmxpYyBJRGljdGlvbmFyeSBIaW50cw0KKwkJew0KKwkJCWdldCB7IHJldHVybiB0aGlzW1Rva2Vucy5IaW50c10gYXMgSURpY3Rpb25hcnk7IH0NCisJCQlzZXQgeyB0aGlzW1Rva2Vucy5IaW50c10gPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHZvaWQgQWRkSGludChzdHJpbmcgdGVtcGxhdGUpDQorCQl7DQorCQkJQWRkU3RvcmUodGVtcGxhdGUsIFRva2Vucy5HZW5lcmljTWVzc2FnZSwgVG9rZW5zLkhpbnRzKTsNCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIEFkZEhpbnQoc3RyaW5nIHRlbXBsYXRlLCBzdHJpbmcgcXVldWUpDQorCQl7DQorCQkJQWRkU3RvcmUodGVtcGxhdGUsIHF1ZXVlLCBUb2tlbnMuSGludHMpOw0KKwkJfQ0KKw0KKwkJcHVibGljIGJvb2wgSGFzSGludHMNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gQ29udGFpbnNLZXkoVG9rZW5zLkhpbnRzKTsgfQ0KKwkJfQ0KKw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1RhYmxlcy9GaWVsZENvbnRleHQuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9UYWJsZXMvRmllbGRDb250ZXh0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0ZTMzYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9UYWJsZXMvRmllbGRDb250ZXh0LmNzCkBAIC0wLDAgKzEsODAgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBBZ2lsaXR5LkNvcmU7DQordXNpbmcgTmV4dXMuQ29yZS5WYWxpZGF0b3JzOw0KKw0KK25hbWVzcGFjZSBOZXh1cy5Db3JlLlRhYmxlcw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gQ29uY3JldGUgSUZpZWxkQ29udGV4dCBpbXBsZW1lbnRhdGlvbi4NCisJLy8vIDwvc3VtbWFyeT4NCisJW1NlcmlhbGl6YWJsZV0NCisJcHVibGljIGNsYXNzIEZpZWxkQ29udGV4dCA6IENvbnRleHQsIElGaWVsZENvbnRleHQNCisJew0KKwkJcHVibGljIEZpZWxkQ29udGV4dCgpIDogYmFzZSgpDQorCQl7DQorCQkJQ29udHJvbFR5cGVOYW1lID0gVG9rZW5zLkNPTlRST0xfSU5QVVQ7IC8vIERlZmF1bHQNCisJCX0NCisNCisJCXB1YmxpYyBzdHJpbmcgQWxlcnQNCisJCXsNCisJCQlnZXQNCisJCQl7DQorCQkJCXN0cmluZyBhbGVydCA9IG51bGw7DQorCQkJCUlQcm9jZXNzb3IgcHJvY2Vzc29yID0gUHJvY2Vzc29yOw0KKwkJCQlpZiAocHJvY2Vzc29yICE9IG51bGwpIGFsZXJ0ID0gcHJvY2Vzc29yLkFsZXJ0Ow0KKwkJCQlpZiAoYWxlcnQgPT0gbnVsbCkgYWxlcnQgPSB0aGlzW1Rva2Vucy5BbGVydF0gYXMgc3RyaW5nOw0KKwkJCQlpZiAoYWxlcnQgPT0gbnVsbCkgYWxlcnQgPSB0aGlzW1Rva2Vucy5BbGVydF0gYXMgc3RyaW5nOw0KKwkJCQlyZXR1cm4gYWxlcnQ7DQorCQkJfQ0KKwkJCXNldCB7IHRoaXNbVG9rZW5zLkFsZXJ0XSA9IHZhbHVlOyB9DQorCQl9DQorDQorCQlwdWJsaWMgc3RyaW5nIENvbnRyb2xUeXBlTmFtZQ0KKwkJew0KKwkJCWdldCB7IHJldHVybiB0aGlzW1Rva2Vucy5Db250cm9sVHlwZU5hbWVdIGFzIHN0cmluZzsgfQ0KKwkJCXNldCB7IHRoaXNbVG9rZW5zLkNvbnRyb2xUeXBlTmFtZV0gPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHN0cmluZyBIaW50DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIHRoaXNbVG9rZW5zLkhpbnRdIGFzIHN0cmluZzsgfQ0KKwkJCXNldCB7IHRoaXNbVG9rZW5zLkhpbnRdID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXB1YmxpYyBzdHJpbmcgSGVscA0KKwkJew0KKwkJCWdldCB7IHJldHVybiB0aGlzW1Rva2Vucy5IZWxwXSBhcyBzdHJpbmc7IH0NCisJCQlzZXQgeyB0aGlzW1Rva2Vucy5IZWxwXSA9IHZhbHVlOyB9DQorCQl9DQorDQorCQlwdWJsaWMgc3RyaW5nIElEDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIHRoaXNbVG9rZW5zLklEXSBhcyBzdHJpbmc7IH0NCisJCQlzZXQgeyB0aGlzW1Rva2Vucy5JRF0gPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHN0cmluZyBMYWJlbA0KKwkJew0KKwkJCWdldA0KKwkJCXsNCisJCQkJc3RyaW5nIGxhYmVsID0gdGhpc1tUb2tlbnMuTGFiZWxdIGFzIHN0cmluZzsNCisJCQkJaWYgKGxhYmVsID09IG51bGwpIGxhYmVsID0gSUQ7DQorCQkJCXJldHVybiBsYWJlbDsNCisJCQl9DQorCQkJc2V0IHsgdGhpc1tUb2tlbnMuTGFiZWxdID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXB1YmxpYyBJUHJvY2Vzc29yIFByb2Nlc3Nvcg0KKwkJew0KKwkJCWdldCB7IHJldHVybiB0aGlzW1Rva2Vucy5Qcm9jZXNzb3JdIGFzIElQcm9jZXNzb3I7IH0NCisJCQlzZXQgeyB0aGlzW1Rva2Vucy5Qcm9jZXNzb3JdID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXB1YmxpYyBzdHJpbmcgUmVxdWlyZWQNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gdGhpc1tUb2tlbnMuUmVxdWlyZWRdIGFzIHN0cmluZzsgfQ0KKwkJCXNldCB7IHRoaXNbVG9rZW5zLlJlcXVpcmVkXSA9IHZhbHVlOyB9DQorCQl9DQorDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVGFibGVzL0ZpZWxkVGFibGUuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9UYWJsZXMvRmllbGRUYWJsZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTdkMzRhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVGFibGVzL0ZpZWxkVGFibGUuY3MKQEAgLTAsMCArMSwxNTkgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgQWdpbGl0eS5Db3JlOw0KK3VzaW5nIE5leHVzLkNvcmUuVmFsaWRhdG9yczsNCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZS5UYWJsZXMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEltcGxlbWVudCBJRmllbGRUYWJsZS4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIDxyZW1hcmtzPjxwPg0KKwkvLy8gVmFsaWRhdG9yDQorCS8vLyAqIE5lZWRzIGNvbmZpZ3VyYWJsZSBudWxsdmFsdWUgc3VwcG9ydA0KKwkvLy8gKiogU3RyaW5nLCBudWxsVmFsdWU9IiINCisJLy8vICoqIERvdWJsZSwgbnVsbFZhbHVlPTAuMCINCisJLy8vICoqIERhdGFUeXBlLCBhbGxvd051bGwNCisJLy8vICogSWYgdGhleSBnaXZlIHVzIHNvbWV0aGluZywgYW5kIGl0IGZhaWxzIGNvbnZlcnNpb24sIHRoZW4gdmFsaWRhdGlvbiBmYWlscy4gDQorCS8vLyAqIElmIHRoZXkgZ2l2ZSB1cyBudWxsIG9yIGFuIGVtcHR5IHN0cmluZywgYW5kIHRoZSBwcm9wZXJ0eSBoYXMgYSBudWxsVmFsdWUsIHRoZW4gdGhlIG51bGxWYWx1ZSBpcyB1c2VkLiANCisJLy8vICogSWYgdGhleSBnaXZlIHVzIG51bGwgb3IgYW4gZW1wdHkgc3RyaW5nLCBvciB0aGUgbnVsbFZhbHVlLCBhbmQgdGhlIHByb3BlcnR5IGlzIHJlcXVpcmVkLCB0aGVuIHZhbGlkYXRpb24gZmFpbHMuIA0KKwkvLy8gPC9wPjwvcmVtYXJrcz4NCisJW1NlcmlhbGl6YWJsZV0NCisJcHVibGljIGNsYXNzIEZpZWxkVGFibGUgOiBDb250ZXh0LCBJRmllbGRUYWJsZQ0KKwl7DQorCQkjcmVnaW9uIElGaWVsZFRhYmxlDQorDQorCQkjcmVnaW9uIEZpZWxkDQorDQorCQlwcml2YXRlIGJvb2wgX1N0cmljdCA9IGZhbHNlOw0KKw0KKwkJcHVibGljIHZpcnR1YWwgYm9vbCBTdHJpY3QNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX1N0cmljdDsgfQ0KKwkJCXNldCB7IF9TdHJpY3QgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHZpcnR1YWwgSUZpZWxkQ29udGV4dCBOZXdGaWVsZENvbnRleHQoc3RyaW5nIGlkKQ0KKwkJew0KKwkJCUlGaWVsZENvbnRleHQgZmllbGQgPSBuZXcgRmllbGRDb250ZXh0KCk7DQorCQkJZmllbGQuSUQgPSBpZDsNCisJCQlyZXR1cm4gZmllbGQ7DQorCQl9DQorDQorCQlwdWJsaWMgdmlydHVhbCBJRmllbGRDb250ZXh0IEFkZEZpZWxkQ29udGV4dA0KKwkJew0KKwkJCXNldA0KKwkJCXsNCisJCQkJaWYgKHZhbHVlID09IG51bGwpDQorCQkJCQl0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKCIodmFsdWU9PW51bGwpIHx8IChUeXBlIT1JRmllbGRDb250ZXh0KSIsICJOZXh1cy5Db3JlLlRhYmxlcy5GaWVsZFRhYmxlLkFkZEZpZWxkQ29udGV4dCIpOw0KKwkJCQlGaWVsZFt2YWx1ZS5JRF0gPSB2YWx1ZTsNCisJCQl9DQorCQl9DQorDQorCQlwdWJsaWMgdmlydHVhbCBJTGlzdCBBZGRGaWVsZENvbnRleHRzDQorCQl7DQorCQkJc2V0DQorCQkJew0KKwkJCQlpZiAodmFsdWUgPT0gbnVsbCkNCisJCQkJCXRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24oIih2YWx1ZT09bnVsbCkgfHwgKFR5cGUhPUlGaWVsZENvbnRleHQpIiwgIk5leHVzLkNvcmUuVGFibGVzLkZpZWxkVGFibGUuQWRkRmllbGRDb250ZXh0cyIpOw0KKwkJCQlJRW51bWVyYXRvciBlbGVtZW50cyA9IHZhbHVlLkdldEVudW1lcmF0b3IoKTsNCisJCQkJd2hpbGUgKGVsZW1lbnRzLk1vdmVOZXh0KCkpIEFkZEZpZWxkQ29udGV4dCA9IGVsZW1lbnRzLkN1cnJlbnQgYXMgSUZpZWxkQ29udGV4dDsNCisJCQl9DQorCQl9DQorDQorCQlwdWJsaWMgdmlydHVhbCBJRmllbGRDb250ZXh0IEdldEZpZWxkQ29udGV4dChzdHJpbmcgaWQpDQorCQl7DQorCQkJaWYgKGlkID09IG51bGwpIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24oImlkPT1udWxsIiwgIk5leHVzLkNvcmUuVGFibGVzLkZpZWxkVGFibGUuR2V0RmllbGRDb250ZXh0Iik7DQorCQkJSUZpZWxkQ29udGV4dCBmaWVsZENvbnRleHQgPSBGaWVsZFtpZF0gYXMgSUZpZWxkQ29udGV4dDsNCisJCQlib29sIG1pc3NpbmcgPSAoZmllbGRDb250ZXh0ID09IG51bGwpOw0KKwkJCWlmIChtaXNzaW5nKQ0KKwkJCQlpZiAoU3RyaWN0KQ0KKwkJCQkJdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbihpZCwgIk5leHVzLkNvcmUuVGFibGVzLkZpZWxkVGFibGUuR2V0RmllbGRDb250ZXh0Iik7DQorCQkJCWVsc2UNCisJCQkJew0KKwkJCQkJT2JqZWN0IGxvY2tUaGlzID0gbmV3IE9iamVjdCgpOw0KKwkJCQkJbG9jayAobG9ja1RoaXMpDQorCQkJCQl7DQorCQkJCQkJZmllbGRDb250ZXh0ID0gTmV3RmllbGRDb250ZXh0KGlkKTsNCisJCQkJCQlBZGRGaWVsZENvbnRleHQgPSBmaWVsZENvbnRleHQ7DQorCQkJCQl9DQorCQkJCX0NCisJCQlyZXR1cm4gZmllbGRDb250ZXh0Ow0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbiANCisNCisJCSNyZWdpb24gUHJvY2Vzc29yDQorDQorCQlwdWJsaWMgdmlydHVhbCBJUHJvY2Vzc29yIEFkZFByb2Nlc3Nvcg0KKwkJew0KKwkJCXNldA0KKwkJCXsNCisJCQkJaWYgKHZhbHVlID09IG51bGwpDQorCQkJCQl0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKCJ2YWx1ZT09bnVsbCIsICJOZXh1cy5Db3JlLlRhYmxlcy5GaWVsZFRhYmxlLkFkZFByb2Nlc3NvciIpOw0KKwkJCQlQcm9jZXNzb3JbdmFsdWUuSURdID0gdmFsdWU7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHZpcnR1YWwgSUxpc3QgQWRkUHJvY2Vzc29ycw0KKwkJew0KKwkJCXNldA0KKwkJCXsNCisJCQkJaWYgKHZhbHVlID09IG51bGwpDQorCQkJCQl0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKCJ2YWx1ZT09bnVsbCIsICJOZXh1cy5Db3JlLlRhYmxlcy5GaWVsZFRhYmxlLkFkZFByb2Nlc3NvcnMiKTsNCisJCQkJSUVudW1lcmF0b3IgZWxlbWVudHMgPSB2YWx1ZS5HZXRFbnVtZXJhdG9yKCk7DQorCQkJCXdoaWxlIChlbGVtZW50cy5Nb3ZlTmV4dCgpKSBBZGRQcm9jZXNzb3IgPSBlbGVtZW50cy5DdXJyZW50IGFzIElQcm9jZXNzb3I7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbg0KKw0KKwkJI3JlZ2lvbiBUZXh0IA0KKw0KKwkJcHVibGljIHZpcnR1YWwgc3RyaW5nIEFsZXJ0KHN0cmluZyBpZCkNCisJCXsNCisJCQlyZXR1cm4gR2V0RmllbGRDb250ZXh0KGlkKS5BbGVydDsNCisJCX0NCisNCisJCXB1YmxpYyB2aXJ0dWFsIHN0cmluZyBMYWJlbChzdHJpbmcgaWQpDQorCQl7DQorCQkJcmV0dXJuIEdldEZpZWxkQ29udGV4dChpZCkuTGFiZWw7DQorCQl9DQorDQorCQlwdWJsaWMgdmlydHVhbCBzdHJpbmcgUmVxdWlyZWQoc3RyaW5nIGlkKQ0KKwkJew0KKwkJCXJldHVybiBHZXRGaWVsZENvbnRleHQoaWQpLlJlcXVpcmVkOw0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbg0KKw0KKwkJI2VuZHJlZ2lvbg0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENyZWF0ZSBpbnN0YW5jZSB3aXRoIHplcm8gcGFyYW10ZXJzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBGaWVsZFRhYmxlKCkNCisJCXsNCisJCQl0aGlzW1Rva2Vucy5GaWVsZF0gPSBuZXcgSGFzaHRhYmxlKCk7DQorCQkJdGhpc1tUb2tlbnMuUHJvY2Vzc29yXSA9IG5ldyBIYXNodGFibGUoKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJbnRlcm5hbCBzdG9yYWdlIGZvciB0aGUgRmllbGRDb250ZXh0cy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIElEaWN0aW9uYXJ5IEZpZWxkDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIHRoaXNbVG9rZW5zLkZpZWxkXSBhcyBJRGljdGlvbmFyeTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEludGVybmFsIHN0b3JhZ2UgZm9yIHRoZSBQcm9jZXNzb3JzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgSURpY3Rpb25hcnkgUHJvY2Vzc29yDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIHRoaXNbVG9rZW5zLlByb2Nlc3Nvcl0gYXMgSURpY3Rpb25hcnk7IH0NCisJCX0NCisNCisJfQ0KKw0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9UYWJsZXMvSUZpZWxkQ29udGV4dC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1RhYmxlcy9JRmllbGRDb250ZXh0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5ZGUyMzEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9UYWJsZXMvSUZpZWxkQ29udGV4dC5jcwpAQCAtMCwwICsxLDkyIEBACit1c2luZyBTeXN0ZW0uUnVudGltZS5TZXJpYWxpemF0aW9uOw0KK3VzaW5nIE5leHVzLkNvcmUuVmFsaWRhdG9yczsNCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZS5UYWJsZXMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIFByb3ZpZGUgcHJvcGVydGllcyBjb21tb24gdG8gY29udHJvbHMsIA0KKwkvLy8gaW5jbHVkaW5nIEFsZXJ0LCBDb250cm9sVHlwZSwgYW5kIFByb2Nlc3Nvci4gDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyA8cmVtYXJrPjxwPg0KKwkvLy8gVGhlIEZpZWxkQ29udGV4dCBlbnRyaWVzIGFyZSBtYWRlIGF2YWlsYWJsZSB0aHJvdWdoIGEgRmllbGRUYWJsZS4NCisJLy8vIFRoZSBGaWVsZENvbnRleHQgbWVtYmVycyBmb2xsb3cgWEZvcm1zIHRlcm1pbm9sb2d5LiANCisJLy8vIDwvcD48cD4NCisJLy8vIFhGb3JtcyBbaHR0cDovL3d3dy53My5vcmcvTWFya1VwL0Zvcm1zL10uIA0KKwkvLy8gWEZvcm1zIENvbnRyb2xzIFtodHRwOi8vd3d3Lm9yYmVvbi5jb20vb3BzL2RvYy9wcm9jZXNzb3JzLXhmb3Jtc10uDQorCS8vLyBYUGF0aCAyLjAgZm9yIC5ORVQgW2h0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvc2F4b25kb3RuZXQvXS4NCisJLy8vIDwvcD48cD4NCisJLy8vIFRvIGdsb2JhbGl6ZSBhbiBhcHBsaWNhdGlvbiwgDQorCS8vLyB1dGlsaXplIGEgSUZpZWxkQ29udGV4dCBpbXBsZW1lbnRhdGlvbiB0aGF0IHN1cHBvcnRzIGxvY2FsaXphdGlvbi4gDQorCS8vLyBBIGxvY2FsaXplZCBpbXBsZW1lbnRhdGlvbiBjYW4gYWNjZXNzIGEgbWVzc2FnZSByZXNvdXJjZSB0byBvYnRhaW4gdGV4dCBhbmQgbWVzc2FnZXMsIA0KKwkvLy8gcmF0aGVyIHRoYW4gYSBzaW1wbGUgcHJvcGVydHkuIA0KKwkvLy8gTG9jYWxpemVkIGltcGxlbWVudGF0aW9ucyBzaG91bGQgYWxzbyBkaXNzYWxsb3cgc2V0dGluZyB0aGUgdGV4dCBwcm9wZXJ0aWVzLCANCisJLy8vIHNpbmNlIHRob3NlIHZhbHVlcyB3b3VsZCBiZSBwcm92aWRlZCB0aHJvdWdoIGEgbWVzc2FnZSByZXNvdXJjZS4gDQorCS8vLyA8L3A+PHA+DQorCS8vLyBGb3IgYSBsb2NhbGl6ZWQgaW1wbGVtZW50YXRpb24sIHNlZSBOZXh1cy5Db3JlLkV4dHJhcy5TcHJpbmcuRmllbGRDb250ZXh0Lg0KKwkvLy8gPC9wPjwvcmVtYXJrPg0KKwkvLy8gDQorCXB1YmxpYyBpbnRlcmZhY2UgSUZpZWxkQ29udGV4dCA6IElTZXJpYWxpemFibGUNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiBpbnB1dCB2YWxpZGF0aW9uIGZhaWxzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz4NCisJCS8vLyBJZiB0aGUgUHJvY2Vzc29yIGFsc28gcHJvdmlkZXMgYW4gQWxlcnQsIA0KKwkJLy8vIHRoZSBQcm9jZXNzb3IncyBBbGVydCBzaG91bGQgYmUgcmV0dXJuZWQgaW5zdGVhZC4gDQorCQkvLy8gPC9yZW1hcmtzPg0KKwkJLy8vIA0KKwkJc3RyaW5nIEFsZXJ0IHsgZ2V0OyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJZGVudGlmeSBuYW1lIG9mIHRoZSBkZWZhdWx0IENvbnRyb2wgVHlwZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gU3RhbmRhcmQgY29udHJvbCB0eXBlcyBhcmU6IGlucHV0LCBzZWNyZXQsIHRleHRhcmVhLCBzZWxlY3QxLCBzZWxlY3QsIHN1Ym1pdCwgdXBsb2FkLg0KKwkJLy8vIDwvcD48cD4NCisJCS8vLyBYRm9ybXMgZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuIExpc3RzLCBSYWRpbyBCdXR0b25zLCBhbmQgQ2hlY2tCb3hlcyB0aHJvdWdoIGFkZGl0aW9uYWwgDQorCQkvLy8gcGFyYW1ldGVycy4gRm9yIG5vdywgYWxsIHRocmVlIGNhbiBiZSBpZGVudGlmaWVkIGFzIHNlbGVjdDEgb3Igc2VsZWN0Lg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQkvLy8gDQorCQlzdHJpbmcgQ29udHJvbFR5cGVOYW1lIHsgZ2V0OyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHRleHQgdG8gZGlzcGxheSBmb3IgYSBjb250ZXh0LXNlbnNpdGl2ZSBoZWxwIHNjcmVlbi4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlzdHJpbmcgSGVscCB7IGdldDsgc2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmVjb3JkIGFuIG9uc2NyZWVuIG9yIGhvdmVyIGhpbnQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJc3RyaW5nIEhpbnQgeyBnZXQ7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIElkZW50aWZ5IHRoaXMgZmllbGQgd2l0aCBhIHVuaXF1ZSBuYW1lLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXN0cmluZyBJRCB7IGdldDsgc2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBhIGxhYmVsIGZvciB0aGUgY29udHJvbC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gSWYgdGhlIExhYmVsIGlzIG51bGwsIHRoZSBJRCBzaG91bGQgIGJlIHJldHVybmVkIGluc3RlYWQuIA0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQkvLy8gDQorCQlzdHJpbmcgTGFiZWwgeyBnZXQ7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgdGhlIHByb2Nlc3NvciBmb3IgdGhpcyBmaWVsZCBjb250ZXh0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCUlQcm9jZXNzb3IgUHJvY2Vzc29yIHsgZ2V0OyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gcmVxdWlyZWQgaW5wdXQgaXMgbWlzc2luZy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlzdHJpbmcgUmVxdWlyZWQgeyBnZXQ7IHNldDsgfQ0KKw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1RhYmxlcy9JRmllbGRUYWJsZS5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1RhYmxlcy9JRmllbGRUYWJsZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDc5MmExCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVGFibGVzL0lGaWVsZFRhYmxlLmNzCkBAIC0wLDAgKzEsODcgQEAKK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBTeXN0ZW0uUnVudGltZS5TZXJpYWxpemF0aW9uOw0KK3VzaW5nIEFnaWxpdHkuQ29yZTsNCit1c2luZyBOZXh1cy5Db3JlLlZhbGlkYXRvcnM7DQorDQorbmFtZXNwYWNlIE5leHVzLkNvcmUuVGFibGVzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBJbnZlbnRvcnkgb2YgZmllbGRzIGFuZCBwcm9jZXNzb3JzIHVzZWQgYnkgdGhlIGFwcGxpY2F0aW9uLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gDQorCXB1YmxpYyBpbnRlcmZhY2UgSUZpZWxkVGFibGUgOiBJQ29udGV4dCwgSVNlcmlhbGl6YWJsZQ0KKwl7DQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5kaWNhdGUgd2hldGhlciB0aGlzIEZpZWxkVGFibGUgbXVzdCBpbmNsdWRlIGFsbCBmaWVsZHMsIA0KKwkJLy8vIGluY2x1ZGluZyBzdHJpbmdzIGZpZWxkcyBbRkFMU0VdLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCWJvb2wgU3RyaWN0IHsgc2V0OyBnZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBGYWN0b3J5IG1ldGhvZCB0byBjcmVhdGUgYSBzdHViIGNvbnRleHQgDQorCQkvLy8gd2hlbiBmaWVsZCBpcyByZXF1aXJlZCBhbmQgU3RyaWN0IGlzIGZhbHNlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBUaGUgSUZpZWxkQ29udGV4dCBpbnN0YW5jZSBzaG91bGQgcHJvdmlkZSBhIGRlZmF1bHQgZm9yIFJlcXVpcmVkLg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImlkIj5UaGUgZmllbGRuYW1lPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5OZXcgZGVmYXVsdCBjb250ZXh0IGZvciBJRDwvcmV0dXJucz4NCisJCUlGaWVsZENvbnRleHQgTmV3RmllbGRDb250ZXh0KHN0cmluZyBpZCk7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQWRkIGEgZmllbGQgdG8gdGhlIHNldC4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJSUZpZWxkQ29udGV4dCBBZGRGaWVsZENvbnRleHQgeyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBZGQgYSBsaXN0IG9mIGZpZWxkcyB0byB0aGUgc2V0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCUlMaXN0IEFkZEZpZWxkQ29udGV4dHMgeyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBPYnRhaW4gdGhlIEZpZWxkQ29udGV4dCBmb3IgdGhlIGdpdmVuIElELCBvYnNlcnZpbmcgU3RyaWN0IHNldHRpbmcuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJpZCI+RmllbGRDb250ZXh0IElEPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5GaWVsZENvbnRleHQgZm9yIElEPC9yZXR1cm5zPg0KKwkJLy8vIA0KKwkJSUZpZWxkQ29udGV4dCBHZXRGaWVsZENvbnRleHQoc3RyaW5nIGlkKTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBZGQgYSBQcm9jZXNzb3IgdG8gdGhlIHNldC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlJUHJvY2Vzc29yIEFkZFByb2Nlc3NvciB7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEFkZCBhIGxpc3Qgb2YgUHJvY2Vzc29ycyB0byB0aGUgc2V0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCUlMaXN0IEFkZFByb2Nlc3NvcnMgeyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHRoZSBBbGVydCBtZXNzYWdlIGZvciBhIGdpdmVuIGZpZWxkIGlkLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iaWQiPkZpZWxkQ29udGV4dCBJRDwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+QWxlcnQgbWVzc2FnZSBmb3IgRmllbGRDb250ZXh0IElEPC9yZXR1cm5zPg0KKwkJLy8vIA0KKwkJc3RyaW5nIEFsZXJ0KHN0cmluZyBpZCk7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSB0aGUgTGFiZWwgbWVzc2FnZSBmb3IgYSBnaXZlbiBmaWVsZCBpZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImlkIj5GaWVsZENvbnRleHQgSUQ8L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPkFsZXJ0IG1lc3NhZ2UgZm9yIEZpZWxkQ29udGV4dCBJRDwvcmV0dXJucz4NCisJCS8vLyANCisJCXN0cmluZyBMYWJlbChzdHJpbmcgaWQpOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgdGhlIFJlcXVpcmVkIG1lc3NhZ2UgZm9yIGEgZ2l2ZW4gZmllbGQgaWQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJpZCI+RmllbGRDb250ZXh0IElEPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5SZXF1aXJlZCBtZXNzYWdlIGZvciBGaWVsZENvbnRleHQgSUQ8L3JldHVybnM+DQorCQkvLy8gDQorCQlzdHJpbmcgUmVxdWlyZWQoc3RyaW5nIGlkKTsNCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9Ub2tlbnMuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9Ub2tlbnMuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTliMGJkMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1Rva2Vucy5jcwpAQCAtMCwwICsxLDI2NCBAQAorIC8qDQorICogQ29weXJpZ2h0IDIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyAqIA0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKiANCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqIA0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8NCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gUHJvdmlkZSB0b2tlbnMgcmVwcmVzZW50aW5nIGNvbnRleHQga2V5cy4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIDxyZW1hcmtzPjxwPg0KKwkvLy8gVGhlIGNvbW1vbiBjb252ZW50aW9uIG9mIHVzaW5nIENBUElUQUxTIGZvciBjb25zdGFudHMgDQorCS8vLyBpcyBub3QgZm9sbG93ZWQgZm9yIHByb3BlcnRpZXMgYmVjYXVzZSB1c2luZyB0aGUgc2FtZSANCisJLy8vIGNhc2UgYXMgdGhlIFByb3BlcnR5IHNpbXBsaWZpZXMgdGhlIHVzZSBvZiBhIHNpbXBsZSANCisJLy8vIHRlbXBsYXRlIHRvIGNyZWF0ZSBuZXcgbWVtYmVycy4NCisJLy8vIDwvcD48L3JlbWFya3M+DQorCS8vLyANCisJcHVibGljIGNsYXNzIFRva2Vucw0KKwl7DQorCQlwcml2YXRlIFRva2VucygpDQorCQl7DQorCQkJLy8gTm8gbmVlZCB0byBjb25zdHJ1Y3Qgc3RhdGljIGhlbHBlciBjbGFzcw0KKwkJfQ0KKw0KKwkJI3JlZ2lvbiBQcm9wZXJ0aWVzDQorDQorCQkvKg0KKwkJZ2V0IHsgcmV0dXJuIENvbnRleHRbVG9rZW5zLlByb3BlcnR5XSBhcyBzdHJpbmc7IH0NCisJCXNldCB7IENvbnRleHRbVG9rZW5zLlByb3BlcnR5XSA9IHZhbHVlOyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIFByb3BlcnR5IHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgUHJvcGVydHkgPSAiX1Byb3BlcnR5IjsNCisJCSovDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIEFsZXJ0IHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgQWxlcnQgPSAiX0FsZXJ0IjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgQWxlcnRzIHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgQWxlcnRzID0gIl9BbGVydHMiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBDb21tYW5kIHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgQ29tbWFuZCA9ICJfQ29tbWFuZCI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIENvbW1hbmRCaW4gcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBDb21tYW5kQmluID0gIl9Db21tYW5kQmluIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgQ29udHJvbFR5cGVOYW1lIENvbnRyb2xUeXBlTmFtZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIENvbnRyb2xUeXBlTmFtZSA9ICJfQ29udHJvbFR5cGVOYW1lIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgQ29udGV4dCBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIENvbnRleHQgPSAiX0NvbnRleHQiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBDcml0ZXJpYSBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIENyaXRlcmlhID0gIl9Dcml0ZXJpYSI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIFByb2Nlc3NvciBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFByb2Nlc3NvciA9ICJfUHJvY2Vzc29yIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgRGF0YUZvcm1hdCBEYXRhRm9ybWF0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgRGF0YUZvcm1hdCA9ICJfRGF0YUZvcm1hdCI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIERhdGFUeXBlIERhdGFUeXBlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgRGF0YVR5cGUgPSAiX0RhdGFUeXBlIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgRGF0YVR5cGVOYW1lIERhdGFUeXBlTmFtZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIERhdGFUeXBlSUQgPSAiX0RhdGFUeXBlSUQiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBGYXVsdCBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEZhdWx0ID0gIl9GYXVsdCI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIEZpZWxkS2V5IHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgRmllbGRLZXkgPSAiX0ZpZWxkS2V5IjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgRmllbGRUYWJsZSBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEZpZWxkVGFibGUgPSAiX0ZpZWxkVGFibGUiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBGaWVsZCBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEZpZWxkID0gIl9GaWVsZCI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIGEgZ2VuZXJpYyBtZXNzYWdlIHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBBIGRvdCBpcyB1c2VkIHRvIGNvbW11bmljYXRlIHRoZSBpZGVhIA0KKwkJLy8vIHRoYXQgdGhlIG1lc3NhZ2UgY2F0YWdvcnkgaGFzIG5vIG5hbWUNCisJCS8vLyBhbmQgdG8gYXZvaWQgdXNpbmcgYSBsYW5ndWFnZSBjb25zdGFudCANCisJCS8vLyBpbiBhIGxhbmd1YWdlLW5ldXRyYWwgY29udGVudC4NCisJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBHZW5lcmljTWVzc2FnZSA9ICIuIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgSGludCBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEhpbnQgPSAiX0hpbnQiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBIaW50cyBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEhpbnRzID0gIl9IaW50cyI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIEhlbHAgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBIZWxwID0gIl9IZWxwIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgSUQgSUQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBJRCA9ICJfSUQiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBMYWJlbCBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIExhYmVsID0gIl9MYWJlbCI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIFJlcXVpcmVkIHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgUmVxdWlyZWQgPSAiX1JlcXVpcmVkIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgU291cmNlIHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgU291cmNlID0gIl9Tb3VyY2UiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBUYXJnZXQgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBUYXJnZXQgPSAiX1RhcmdldCI7DQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkjcmVnaW9uIENvbW1hbmQgZWxlbWVudHMNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgRmllbGRUYWJsZSBjb21tYW5kIGVsZW1lbnQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBJRF9GSUVMRF9UQUJMRSA9ICJGaWVsZFRhYmxlIjsNCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gQ29udHJvbCBUeXBlIE5hbWVzDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIGlucHV0IENvbnRyb2wgVHlwZSBOYW1lLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgQ09OVFJPTF9JTlBVVCA9ICJpbnB1dCI7DQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkjcmVnaW9uIE1lc3NhZ2Uga2V5cyAoR3JpZFZpZXdIZWxwZXIpDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gIFRva2VuIGZvciBFZGl0IGhpbnQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBISU5UX0VESVQgPSAiaGludF9lZGl0IjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyAgVG9rZW4gZm9yIEFkZCBTdWNjZWVzcyBoaW50Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgSElOVF9TVUNDRVNTX0FERCA9ICJoaW50X3N1Y2Nlc3NfYWRkIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyAgVG9rZW4gZm9yIEVkaXQgU3VjY2VzcyBoaW50Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgSElOVF9TVUNDRVNTX0VESVQgPSAiaGludF9zdWNjZXNzX2VkaXQiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBRdWl0IFN1Y2Nlc3MgaGludC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEhJTlRfU1VDQ0VTU19RVUlUID0gImhpbnRfc3VjY2Vzc19xdWl0IjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgRW50cnkgRWRpdCBjb21tYW5kLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgRU5UUllfRURJVF9DT01NQU5EID0gImVudHJ5X2VkaXRfY29tbWFuZCI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIEVudHJ5IFF1aXQgY29tbWFuZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEVOVFJZX1FVSVRfQ09NTUFORCA9ICJlbnRyeV9xdWl0X2NvbW1hbmQiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBFbnRyeSBTYXZlIGNvbW1hbmQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBFTlRSWV9TQVZFX0NPTU1BTkQgPSAiZW50cnlfc2F2ZV9jb21tYW5kIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgRW50cnkgSXRlbSBjb21tYW5kLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgRU5UUllfSVRFTV9DT01NQU5EID0gImVudHJ5X2l0ZW1fY29tbWFuZCI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIEVudHJ5IEl0ZW0gY29tbWFuZCBuYW1lLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgRU5UUllfSVRFTV9DT01NQU5EX05BTUUgPSAiZW50cnlfaXRlbV9jb21tYW5kX25hbWUiOw0KKw0KKwkJI2VuZHJlZ2lvbg0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1ZhbGlkYXRvcnMvQ2xlYXJDb250ZXh0LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9DbGVhckNvbnRleHQuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJmYzk2ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1ZhbGlkYXRvcnMvQ2xlYXJDb250ZXh0LmNzCkBAIC0wLDAgKzEsMzQgQEAKK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZS5WYWxpZGF0b3JzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBDbGVhciBmcm9tIHRoZSBDb250ZXh0IGFueSBrZXlzIHByZXNlbnQgaW4gdGhlIENyaXRlcmlhLCANCisJLy8vIHNvIHRoYXQsIGlmIHRoZSBjb250ZXh0IGlzIHJlLXVzZWQsIHZhbHVlcyBmcm9tIGEgcHJpb3IgcmVxdWVzdCBkbyBub3QgbGluZ2VyLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gPHJlbWFya3M+PHA+DQorCS8vLyBPbmNlIHRoZSB2YWx1ZXMgYXJlIG91dHB1dCBmcm9tIHRoZSBDb250ZXh0IHRvIHRoZSBDcml0ZXJpYSwgDQorCS8vLyB0aGV5IGNhbiBiZSBzYWZlbHkgcmVtb3ZlZCBmcm9tIHRoZSBDb250ZXh0LiANCisJLy8vIDwvcD48cD5UaGlzIGNvbW1hbmQgY2FuIGJlIHVzZWQgYXMgcGFydCBvZiBhIHBvc3Qtb3B0IGNoYWluIHRvIGVuc3VyZSB0aGF0IA0KKwkvLy8gQ29udGV4dCB2YWx1ZXMgYXJlIG5vdCByZXRhaW5lZCBpZiBhIENvbnRleHQgb2JqZWN0IGlzIHVzZWQgZm9yIG11bHRpcGxlIA0KKwkvLy8gYnVzaW5lc3MgcmVxdWVzdHMuIA0KKwkvLy8gPC9wPjwvcmVtYXJrcz4NCisJcHVibGljIGNsYXNzIENsZWFyQ29udGV4dCA6IFJlcXVlc3RDb21tYW5kDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDbGVhciBmcm9tIHRoZSBDb250ZXh0IGFueSBrZXlzIHByZXNlbnQgaW4gdGhlIENyaXRlcmlhLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+Q29udGV4dCBhZnRlciBhdHRyaWJ1dGVzIGhhdmUgYmVlbiBvdXRwdXQgdG8gQ3JpdGVyaWE8L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPkNPTlRJTlVFPC9yZXR1cm5zPg0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgUmVxdWVzdEV4ZWN1dGUoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJSUNvbGxlY3Rpb24ga2V5cyA9IGNvbnRleHQuQ3JpdGVyaWEuS2V5czsNCisJCQlmb3JlYWNoIChzdHJpbmcga2V5IGluIGtleXMpDQorCQkJew0KKwkJCQljb250ZXh0LlJlbW92ZShrZXkpOw0KKwkJCX0NCisNCisJCQlyZXR1cm4gQ09OVElOVUU7DQorCQl9DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9Db2xsZWN0aW9uUHJvY2Vzc29yLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9Db2xsZWN0aW9uUHJvY2Vzc29yLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3M2ZkMzAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9WYWxpZGF0b3JzL0NvbGxlY3Rpb25Qcm9jZXNzb3IuY3MKQEAgLTAsMCArMSw2NiBAQAorbmFtZXNwYWNlIE5leHVzLkNvcmUuVmFsaWRhdG9ycw0KK3sNCisJcHVibGljIGNsYXNzIENvbGxlY3Rpb25Qcm9jZXNzb3IgOiBQcm9jZXNzb3INCisJew0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgQ29udmVydElucHV0KElQcm9jZXNzb3JDb250ZXh0IGluY29taW5nKQ0KKwkJew0KKwkJCWluY29taW5nLlRhcmdldCA9IGluY29taW5nLlNvdXJjZTsNCisJCQlyZXR1cm4gdHJ1ZTsNCisJCX0NCisNCisJCXB1YmxpYyBvdmVycmlkZSBib29sIEZvcm1hdE91dHB1dChJUHJvY2Vzc29yQ29udGV4dCBvdXRnb2luZykNCisJCXsNCisJCQlvdXRnb2luZy5UYXJnZXQgPSBvdXRnb2luZy5Tb3VyY2U7DQorCQkJcmV0dXJuIHRydWU7DQorCQl9DQorDQorCX0NCisNCisJI3JlZ2lvbiBOb3Rlcw0KKw0KKwkvKg0KKwkJCS8vLyA8c3VtbWFyeT4NCisJCQkvLy8gSW5zdGFudGlhdGUgZnJvbSBhbiBJRGljdGlvbmFyeSwgDQorCQkJLy8vIGZvcm1hdHRpbmcgZWFjaCBlbnRyeSB1c2luZyB0aGUgRmllbGRUYWJsZSBmcm9tIGEgSU5leHVzQ29udGV4dCwgDQorCQkJLy8vIGFuZCByZXBvcnRpbmcgYW55IGNvbnZlcnNpb24gb3IgZm9ybWF0dGluZyBlcnJvcnMgaW4gdGhlIElOZXh1c0NvbnRleHQuDQorCQkJLy8vIDwvc3VtbWFyeT4NCisJCQkvLy8gPHJlbWFya3M+PHA+DQorCQkJLy8vIFRoZSByZXN1bHQgb2YgYSBxdWVyeSB3aWxsIGNvbWUgYmFjayBhcyBhIGxpc3Qgb2YgSURpY3Rpb25hcmllcywgDQorCQkJLy8vIHVzaW5nIG5hdGl2ZSwgdW5mb3JtYXR0ZWQgZGF0YSB0eXBlcy4gDQorCQkJLy8vIFRoaXMgY29uc3RydWN0b3IgY2FuIGJlIHVzZWQgdG8gbG9vcCB0aHJvdWdoIGEgbGlzdCBvZiBJRGljdGlvbmFpcmVzLCANCisJCQkvLy8gY3JlYXRlIGEgQXBwQ29udGV4dCBmb3IgZWFjaCBlbnRyeSwgYW5kIGZvcm1hdHRpbmcgYW55IHZhbHVlcyANCisJCQkvLy8gYWxvbmcgdGhlIHdheS4gKERhdGVzIGJlaW5nIHRoZSBiZXN0IGV4YW1wbGUuKSANCisJCQkvLy8gVGhlIHJlc3VsdCBpcyBhIEFwcENvbnRleHRMaXN0IHRoYXQgY2FuIGJlIHVzZWQgYXMgYSBEYXRhR3JpZCANCisJCQkvLy8gRGF0YVNvdXJjZSAob3Igd2hhdGV2ZXIpLiANCisJCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCQkvLy8gPHBhcmFtIG5hbWU9ImRpY3Rpb25hcnkiPlZhbHVlcyBmb3IgbmV3IG9iamVjdDwvcGFyYW0+DQorCQkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5Db250ZXh0IHdpdGggRmllbGRUYWJsZSBhbmQgZXJyb3IgaGFuZGxlcjwvcGFyYW0+DQorCQkJcHVibGljIEFwcENvbnRleHQgKElEaWN0aW9uYXJ5IGRpY3Rpb25hcnksIElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KQ0KKwkJCXsNCisJI3JlZ2lvbiBBc3NlcnQgcGFyYW1ldGVycw0KKw0KKwkJCQlpZiAobnVsbCA9PSBkaWN0aW9uYXJ5KSB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uICgiZGljdGlvbmFyeSIsICJBcHBDb250ZXh0KElEaWN0aW9uYXJ5LElOZXh1c0NvbnRleHQiKTsNCisJCQkJaWYgKG51bGwgPT0gY29udGV4dCkgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbiAoImNvbnRleHQiLCAiQXBwQ29udGV4dChJRGljdGlvbmFyeSxJTmV4dXNDb250ZXh0Iik7DQorCQkJCUlGaWVsZFRhYmxlIHRhYmxlID0gY29udGV4dC5GaWVsZFRhYmxlOw0KKwkJCQlpZiAobnVsbCA9PSB0YWJsZSkgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbiAoIkZpZWxkVGFibGUiLCAiQXBwQ29udGV4dChJRGljdGlvbmFyeSxJTmV4dXNDb250ZXh0Iik7DQorDQorCSNlbmRyZWdpb24NCisNCisJCQkJSUVudW1lcmF0b3Iga2V5cyA9IGRpY3Rpb25hcnkuS2V5cy5HZXRFbnVtZXJhdG9yICgpOw0KKwkJCQl3aGlsZSAoa2V5cy5Nb3ZlTmV4dCAoKSkNCisJCQkJew0KKwkJCQkJc3RyaW5nIGtleSA9IGtleXMuQ3VycmVudCBhcyBzdHJpbmc7DQorCQkJCQlJVmFsaWRhdG9yQ29udGV4dCBpbnB1dCA9IG5ldyBWYWxpZGF0b3JDb250ZXh0ICgpOyAvLyBJU1NVRTogU3ByaW5nPyBbV05FLTYzXQ0KKwkJCQkJaW5wdXQuRmllbGRLZXkgPSBrZXk7DQorCQkJCQlpbnB1dC5Tb3VyY2UgPSBkaWN0aW9uYXJ5IFtrZXldOw0KKwkJCQkJYm9vbCBva2F5ID0gdGFibGUuRm9ybWF0IChpbnB1dCk7DQorCQkJCQlpZiAoIW9rYXkpDQorCQkJCQkJLy8gT1IsIGRvIHdlIGp1c3Qgd2FudCB0byBwdXNoIGNvbnZlcnQvZm9ybWF0KGlkKSB1cD8NCisJCQkJCQljb250ZXh0LkFkZEFsZXJ0Rm9yRmllbGQgKGtleSk7DQorCQkJCQl0aGlzLkFkZCAoa2V5LCBpbnB1dC5UYXJnZXQpOw0KKwkJCQl9DQorCQkJfQ0KKwkJCSovDQorDQorCSNlbmRyZWdpb24NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9Db252ZXJ0SW5wdXQuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9WYWxpZGF0b3JzL0NvbnZlcnRJbnB1dC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjJlZWE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9Db252ZXJ0SW5wdXQuY3MKQEAgLTAsMCArMSwzMiBAQAordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KKw0KK25hbWVzcGFjZSBOZXh1cy5Db3JlLlZhbGlkYXRvcnMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIENvbnZlcnQgcmVsYXRlZCBmaWVsZHMgZnJvbSBDcml0ZXJpYSB0byB0aGUgbWFpbiBjb250ZXh0LCANCisJLy8vIGFkZGluZyBhbiBBbGVydCBtZXNzYWdlIHRvIEVycm9ycyBpZiBhIGNvbnZlcnNpb24gZmFpbHMuDQorCS8vLyA8L3N1bW1hcnk+DQorCXB1YmxpYyBjbGFzcyBDb252ZXJ0SW5wdXQgOiBQcm9jZXNzb3JDb21tYW5kDQorCXsNCisJCXB1YmxpYyBvdmVycmlkZSBib29sIEV4ZWN1dGVQcm9jZXNzKElQcm9jZXNzb3JDb250ZXh0IGluY29taW5nKQ0KKwkJew0KKwkJCXN0cmluZyBrZXkgPSBpbmNvbWluZy5GaWVsZEtleTsNCisJCQlJUmVxdWVzdENvbnRleHQgY29udGV4dCA9IGluY29taW5nLkNvbnRleHQ7DQorCQkJSURpY3Rpb25hcnkgY3JpdGVyaWEgPSBpbmNvbWluZy5Dcml0ZXJpYTsNCisNCisJCQlib29sIGhhdmUgPSAoY3JpdGVyaWEuQ29udGFpbnMoa2V5KSk7DQorCQkJaWYgKGhhdmUpDQorCQkJew0KKwkJCQlpbmNvbWluZy5Tb3VyY2UgPSBjcml0ZXJpYVtrZXldOw0KKwkJCQlib29sIG9rYXkgPSBFeGVjdXRlQ29udmVydChpbmNvbWluZyk7DQorCQkJCWlmIChva2F5KQ0KKwkJCQkJLy8gc2V0IHRvIG1haW4gY29udGV4dA0KKwkJCQkJY29udGV4dFtrZXldID0gaW5jb21pbmcuVGFyZ2V0Ow0KKwkJCQllbHNlIGNvbnRleHQuQWRkQWxlcnRGb3JGaWVsZChrZXkpOw0KKwkJCQlyZXR1cm4gU1RPUDsNCisJCQl9DQorDQorCQkJcmV0dXJuIENPTlRJTlVFOw0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1ZhbGlkYXRvcnMvRGF0ZVRpbWVQcm9jZXNzb3IuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9WYWxpZGF0b3JzL0RhdGVUaW1lUHJvY2Vzc29yLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1OTE5YTMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9WYWxpZGF0b3JzL0RhdGVUaW1lUHJvY2Vzc29yLmNzCkBAIC0wLDAgKzEsMTE3IEBACit1c2luZyBTeXN0ZW07DQorDQorbmFtZXNwYWNlIE5leHVzLkNvcmUuVmFsaWRhdG9ycw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gQ29udmVydCBhbmQgZm9ybWF0IERhdGVUaW1lIGZpZWxkcy4NCisJLy8vIDwvc3VtbWFyeT4NCisJcHVibGljIGNsYXNzIERhdGVUaW1lUHJvY2Vzc29yIDogUHJvY2Vzc29yDQorCXsNCisJCSNyZWdpb24gSVByb2Nlc3Nvcg0KKw0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgQ29udmVydElucHV0KElQcm9jZXNzb3JDb250ZXh0IGluY29taW5nKQ0KKwkJew0KKwkJCWJvb2wgb2theSA9IGZhbHNlOw0KKwkJCXN0cmluZyBzb3VyY2UgPSBpbmNvbWluZy5Tb3VyY2UgYXMgc3RyaW5nOw0KKw0KKwkJCWlmIChJc0lucHV0KHNvdXJjZSkpDQorCQkJew0KKwkJCQlEYXRlVGltZSB0ID0gRGF0ZVRpbWVfQ29udmVydChzb3VyY2UpOw0KKwkJCQlib29sIGlzRGF0ZVRpbWVFbXB0eSA9IERhdGVUaW1lX0VtcHR5LkVxdWFscyh0KTsNCisJCQkJb2theSA9ICFpc0RhdGVUaW1lRW1wdHk7DQorCQkJCWluY29taW5nLlRhcmdldCA9IHQ7DQorCQkJfQ0KKwkJCWVsc2UNCisJCQl7DQorCQkJCWluY29taW5nLlRhcmdldCA9IG51bGw7IC8vIEZJWE1FOiBXZSBjb3VsZCB1c2UgRGF0ZVRpbWVfRW1wdHkgaGVyZSwNCisJCQkJb2theSA9IHRydWU7IC8vICBidXQgdGhlcmUgd2FzIGFuIGlzc3VlIHdpdGggaUJBVElTIChpcyB0aGVyZSBzdGlsbD8pDQorCQkJfQ0KKw0KKwkJCXJldHVybiBva2F5Ow0KKwkJfQ0KKw0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgRm9ybWF0T3V0cHV0KElQcm9jZXNzb3JDb250ZXh0IG91dGdvaW5nKQ0KKwkJew0KKwkJCWJvb2wgb2theSA9IGZhbHNlOw0KKwkJCW9iamVjdCBzb3VyY2UgPSBvdXRnb2luZy5Tb3VyY2U7DQorDQorCQkJaWYgKElzRW1wdHkoc291cmNlKSkNCisJCQl7DQorCQkJCW91dGdvaW5nLlRhcmdldCA9IFN0cmluZy5FbXB0eTsNCisJCQkJb2theSA9IHRydWU7DQorCQkJfQ0KKwkJCWVsc2UNCisJCQl7DQorCQkJCXN0cmluZyB0YXJnZXQgPSBEYXRlVGltZV9Gb3JtYXQoc291cmNlKTsNCisJCQkJb3V0Z29pbmcuVGFyZ2V0ID0gdGFyZ2V0Ow0KKwkJCQlva2F5ID0gSXNJbnB1dCh0YXJnZXQpOw0KKwkJCX0NCisJCQlyZXR1cm4gb2theTsNCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisNCisJCXByaXZhdGUgYm9vbCBJc0lucHV0KHN0cmluZyB2KQ0KKwkJew0KKwkJCXJldHVybiAoKHYgIT0gbnVsbCkgJiYgKCFTdHJpbmcuRW1wdHkuRXF1YWxzKHYpKSk7DQorCQl9DQorDQorCQlwcml2YXRlIERhdGVUaW1lIERhdGVUaW1lX0VtcHR5ID0gRGF0ZVRpbWUuTWluVmFsdWU7DQorDQorCQlwcml2YXRlIGJvb2wgSXNFbXB0eShvYmplY3Qgc291cmNlKQ0KKwkJew0KKwkJCVNCeXRlIGRiTnVsbCA9IDA7DQorCQkJcmV0dXJuICgobnVsbCA9PSBzb3VyY2UpIHx8IChEQk51bGwuVmFsdWUuRXF1YWxzKHNvdXJjZSkpIHx8IChkYk51bGwuRXF1YWxzKHNvdXJjZSkgfHwgU3RyaW5nLkVtcHR5LkVxdWFscyhzb3VyY2UpKSk7DQorCQl9DQorDQorCQlwcml2YXRlIERhdGVUaW1lIERhdGVUaW1lX0NvbnZlcnQoc3RyaW5nIHNvdXJjZSkNCisJCXsNCisJCQlEYXRlVGltZSB0ID0gRGF0ZVRpbWVfRW1wdHk7DQorCQkJdHJ5DQorCQkJew0KKwkJCQl0ID0gQ29udmVydC5Ub0RhdGVUaW1lKHNvdXJjZSk7DQorCQkJfQ0KKwkJCWNhdGNoIChJbnZhbGlkQ2FzdEV4Y2VwdGlvbiBlKQ0KKwkJCXsNCisJCQkJZSA9IGU7IC8vIHNpbGx5IGFzc2lnbm1lbnQNCisJCQl9DQorCQkJY2F0Y2ggKEZvcm1hdEV4Y2VwdGlvbiBlKQ0KKwkJCXsNCisJCQkJZSA9IGU7IC8vIHNpbGx5IGFzc2lnbm1lbnQNCisJCQl9DQorCQkJcmV0dXJuIHQ7DQorDQorCQl9DQorDQorCQlwcml2YXRlIHN0cmluZyBEYXRlVGltZV9Gb3JtYXQob2JqZWN0IHNvdXJjZSkNCisJCXsNCisJCQlEYXRlVGltZSB0ID0gRGF0ZVRpbWVfRW1wdHk7DQorCQkJdHJ5DQorCQkJew0KKwkJCQl0ID0gKERhdGVUaW1lKSBzb3VyY2U7DQorCQkJfQ0KKwkJCWNhdGNoIChJbnZhbGlkQ2FzdEV4Y2VwdGlvbiBlKQ0KKwkJCXsNCisJCQkJZSA9IGU7DQorCQkJfQ0KKwkJCWlmIChEYXRlVGltZV9FbXB0eS5FcXVhbHModCkpIHJldHVybiBTdHJpbmcuRW1wdHk7DQorCQkJZWxzZSByZXR1cm4gdC5Ub1N0cmluZyhEYXRhRm9ybWF0KTsNCisJCX0NCisNCisNCisJCS8qDQorCQlwdWJsaWMgYm9vbCBJc015VHlwZSAoVHlwZSBkYXRhVHlwZSkNCisJCXsNCisJCQlib29sIHYgPSAodHlwZW9mIChEYXRlVGltZSkpLklzQXNzaWduYWJsZUZyb20gKGRhdGFUeXBlKTsNCisJCQlyZXR1cm4gdjsNCisJCX0NCisNCisJCXB1YmxpYyBib29sIElzTXlGaWVsZChJRmllbGRDb250ZXh0IGZpZWxkKQ0KKwkJew0KKwkJCWJvb2wgdiA9IChmaWVsZC5Qcm9jZXNzb3JJRC5FcXVhbHMoSUQpKTsNCisJCQlyZXR1cm4gdjsNCisJCX0NCisJCSovDQorDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9FbnRyeUxpc3RQcm9jZXNzb3IuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9WYWxpZGF0b3JzL0VudHJ5TGlzdFByb2Nlc3Nvci5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTY4ZTNkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9FbnRyeUxpc3RQcm9jZXNzb3IuY3MKQEAgLTAsMCArMSw1MyBAQAordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KK3VzaW5nIEFnaWxpdHkuTmV4dXMuVmFsaWRhdG9yczsNCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZS5WYWxpZGF0b3JzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBUcmFuc2Zvcm0gSURpY3Rpb25hcnkgZW50cmllcyBpbnRvIGZvcm1hdHRlZCBlbnRyaWVzIG9uIGEgSUVudHJ5TGlzdCBpbnN0YW5jZXMuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyA8cmVtYXJrcz48cD4NCisJLy8vIFRvIGltcGxlbWVudCwgb3ZlcnJpZGUgTmV3RW50cnlMaXN0IHRvIHByb3ZpZGUgYW4gaW5zdGFuY2VzIG9mIHRoZSBkZXNpcmVkIHR5cGUuIA0KKwkvLy8gVGhpcyB3aWxsIHVzdWFsbHkgYmUgYW4gSUVudHJ5TGlzdCB0aGF0IGNyZWF0ZXMgdGhlIGVudHJ5IG9iamVjdHMgdXNlZCBieSB5b3VyIGFwcGxpY2F0aW9uLiANCisJLy8vIFRoZSBlbnRyeSBvYmplY3RzIGNhbiBiZSBjb252ZW50aW9uYWwgcHJvcGVydHkgb2JqZWN0cywgDQorCS8vLyBvciBvYmplY3RzIHRoYXQgZXhwb3NlIHByb3BlcnRpZXMgYmFja2VkIGJ5IGFuIElEaWN0aW9uYXJ5LCBhcyB5b3UgcHJlZmVyLg0KKwkvLy8gPC9wPjwvcmVtYXJrcz4NCisJLy8vIA0KKwlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRW50cnlMaXN0UHJvY2Vzc29yIDogUHJvY2Vzc29yDQorCXsNCisJCXB1YmxpYyBvdmVycmlkZSBib29sIENvbnZlcnRJbnB1dChJUHJvY2Vzc29yQ29udGV4dCBpbmNvbWluZykNCisJCXsNCisJCQlpbmNvbWluZy5UYXJnZXQgPSBpbmNvbWluZy5Tb3VyY2U7DQorCQkJcmV0dXJuIHRydWU7DQorCQl9DQorDQorCQlwdWJsaWMgb3ZlcnJpZGUgYm9vbCBGb3JtYXRPdXRwdXQoSVByb2Nlc3NvckNvbnRleHQgb3V0Z29pbmcpDQorCQl7DQorCQkJUHJvY2Vzc29yQ29tbWFuZCBmb3JtYXR0ZXIgPSBuZXcgRm9ybWF0T3V0cHV0KCk7DQorCQkJSUxpc3Qgc291cmNlID0gb3V0Z29pbmcuU291cmNlIGFzIElMaXN0Ow0KKw0KKwkJCUlFbnRyeUxpc3QgdGFyZ2V0ID0gTmV3RW50cnlMaXN0KCk7DQorDQorCQkJZm9yZWFjaCAoSURpY3Rpb25hcnkgcm93IGluIHNvdXJjZSkNCisJCQl7DQorCQkJCUlSZXF1ZXN0Q29udGV4dCBjb250ZXh0ID0gbmV3IFJlcXVlc3RDb250ZXh0KHJvdyk7DQorCQkJCWNvbnRleHQuRmllbGRUYWJsZSA9IG91dGdvaW5nLkZpZWxkVGFibGU7DQorCQkJCUlDb2xsZWN0aW9uIGtleXMgPSByb3cuS2V5czsNCisJCQkJZm9yZWFjaCAoc3RyaW5nIGtleSBpbiBrZXlzKQ0KKwkJCQl7DQorCQkJCQlJUHJvY2Vzc29yQ29udGV4dCBfY29udGV4dCA9IG5ldyBQcm9jZXNzb3JDb250ZXh0KGtleSwgY29udGV4dCk7DQorCQkJCQlmb3JtYXR0ZXIuRXhlY3V0ZVByb2Nlc3MoX2NvbnRleHQpOw0KKwkJCQl9DQorCQkJCXRhcmdldC5BZGRFbnRyeShjb250ZXh0LkNyaXRlcmlhKTsNCisJCQl9DQorCQkJb3V0Z29pbmcuVGFyZ2V0ID0gdGFyZ2V0Ow0KKwkJCXJldHVybiB0cnVlOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIE92ZXJyaWRlIHRvIHJldHVybiBhbiBpbnN0YW5jZSBvZiB0aGUgZGVzaXJlZCBJRW50cnlMaXN0IHR5cGUuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZXR1cm5zPkFuIElFbnRyeUxpc3QgaW5zdGFuY2U8L3JldHVybnM+DQorCQlwdWJsaWMgYWJzdHJhY3QgSUVudHJ5TGlzdCBOZXdFbnRyeUxpc3QoKTsNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9WYWxpZGF0b3JzL0Zvcm1hdE91dHB1dC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1ZhbGlkYXRvcnMvRm9ybWF0T3V0cHV0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmN2I2YWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9WYWxpZGF0b3JzL0Zvcm1hdE91dHB1dC5jcwpAQCAtMCwwICsxLDMyIEBACit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQorDQorbmFtZXNwYWNlIE5leHVzLkNvcmUuVmFsaWRhdG9ycw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gRm9ybWF0IHJlbGF0ZWQgZmllbGRzIGZyb20gdGhlIG1haW4gY29udGV4dCB0byBDcml0ZXJpYSwgDQorCS8vLyBhZGRpbmcgYW4gZXJyb3IgbWVzc2FnZSB0byBBbGVydHMgaWYgZm9ybWF0dGluZyBmYWlscy4NCisJLy8vIDwvc3VtbWFyeT4NCisJcHVibGljIGNsYXNzIEZvcm1hdE91dHB1dCA6IFByb2Nlc3NvckNvbW1hbmQNCisJew0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgRXhlY3V0ZVByb2Nlc3MoSVByb2Nlc3NvckNvbnRleHQgb3V0Z29pbmcpDQorCQl7DQorCQkJc3RyaW5nIGtleSA9IG91dGdvaW5nLkZpZWxkS2V5Ow0KKwkJCUlSZXF1ZXN0Q29udGV4dCBjb250ZXh0ID0gb3V0Z29pbmcuQ29udGV4dDsNCisJCQlJRGljdGlvbmFyeSBjcml0ZXJpYSA9IG91dGdvaW5nLkNyaXRlcmlhOw0KKw0KKwkJCWJvb2wgaGF2ZSA9IChjb250ZXh0LkNvbnRhaW5zKGtleSkpOw0KKwkJCWlmIChoYXZlKQ0KKwkJCXsNCisJCQkJb3V0Z29pbmcuU291cmNlID0gY29udGV4dFtrZXldOw0KKwkJCQlib29sIG9rYXkgPSBFeGVjdXRlRm9ybWF0KG91dGdvaW5nKTsNCisJCQkJaWYgKG9rYXkpDQorCQkJCQkvLyBzZXQgdG8gZmllbGQgYnVmZmVyDQorCQkJCQljcml0ZXJpYVtrZXldID0gb3V0Z29pbmcuVGFyZ2V0Ow0KKwkJCQllbHNlIGNvbnRleHQuQWRkQWxlcnRGb3JGaWVsZChrZXkpOw0KKwkJCQlyZXR1cm4gU1RPUDsNCisJCQl9DQorDQorCQkJcmV0dXJuIENPTlRJTlVFOw0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1ZhbGlkYXRvcnMvSVByb2Nlc3Nvci5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1ZhbGlkYXRvcnMvSVByb2Nlc3Nvci5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTY2NGU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9JUHJvY2Vzc29yLmNzCkBAIC0wLDAgKzEsMTUgQEAKK25hbWVzcGFjZSBOZXh1cy5Db3JlLlZhbGlkYXRvcnMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIENvbnZlcnQgb3IgRm9ybWF0IGEgc3RhbmRhcmQgb3IgY3VzdG9tIERhdGFUeXBlLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlwdWJsaWMgaW50ZXJmYWNlIElQcm9jZXNzb3INCisJew0KKwkJc3RyaW5nIEFsZXJ0IHsgZ2V0OyBzZXQ7IH0NCisJCXN0cmluZyBEYXRhRm9ybWF0IHsgZ2V0OyBzZXQ7IH0NCisJCXN0cmluZyBJRCB7IGdldDsgc2V0OyB9DQorDQorCQlib29sIENvbnZlcnRJbnB1dChJUHJvY2Vzc29yQ29udGV4dCBpbmNvbWluZyk7DQorCQlib29sIEZvcm1hdE91dHB1dChJUHJvY2Vzc29yQ29udGV4dCBvdXRnb2luZyk7DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9JUHJvY2Vzc29yQ29tbWFuZC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1ZhbGlkYXRvcnMvSVByb2Nlc3NvckNvbW1hbmQuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE1ZWU1YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1ZhbGlkYXRvcnMvSVByb2Nlc3NvckNvbW1hbmQuY3MKQEAgLTAsMCArMSwzNSBAQAorbmFtZXNwYWNlIE5leHVzLkNvcmUuVmFsaWRhdG9ycw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gVHJhbnNmb3JtIHZhbHVlcyBmcm9tIG9uZSBkYXRhIHR5cGUgb3IgZm9ybWF0IHRvIGFub3RoZXIuIFtPVlItMTNdLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlwdWJsaWMgaW50ZXJmYWNlIElQcm9jZXNzb3JDb21tYW5kIDogSVJlcXVlc3RDb21tYW5kDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgbWVzc2FnZSB0ZW1wbGF0ZSB0byB1c2Ugd2hlbiBhIHJlcXVpcmVkIGZpZWxkIGlzIG1pc3NpbmcuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJc3RyaW5nIFJlcXVpcmVkIHsgZ2V0OyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUcmFuc2Zvcm0gdGhlIHZhbHVlIGluZGljYXRlZCBieSB0aGUgY29udGV4dCBGaWVsZEtleSwgaWYgcHJlc2VudC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRleHQiPlRoZSBjb250ZXh0IHdlIGFyZSBwcm9jZXNzaW5nPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5UcnVlIGlmIG5vbWluYWw8L3JldHVybnM+DQorCQlib29sIEV4ZWN1dGVQcm9jZXNzKElQcm9jZXNzb3JDb250ZXh0IGNvbnRleHQpOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENvbnZlcnQgYSBmaWVsZCB2YWx1ZSwgdXRsaXRpemluZyB0aGUgZmllbGQgdGFibGUgYW5kIHByb2Nlc3Nvci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRleHQiPlRoZSBjb250ZXh0IHdlIGFyZSBwcm9jZXNzaW5nPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5UcnVlIGlmIG5vbWluYWw8L3JldHVybnM+DQorCQlib29sIEV4ZWN1dGVDb252ZXJ0KElQcm9jZXNzb3JDb250ZXh0IGNvbnRleHQpOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEZvcm1hdCBhIGZpZWxkIHZhbHVlLCB1dGxpdGl6aW5nIHRoZSBmaWVsZCB0YWJsZSBhbmQgcHJvY2Vzc29yLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+VGhlIGNvbnRleHQgd2UgYXJlIHByb2Nlc3Npbmc8L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPlRydWUgaWYgbm9taW5hbDwvcmV0dXJucz4NCisJCWJvb2wgRXhlY3V0ZUZvcm1hdChJUHJvY2Vzc29yQ29udGV4dCBjb250ZXh0KTsNCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9WYWxpZGF0b3JzL0lQcm9jZXNzb3JDb250ZXh0LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9JUHJvY2Vzc29yQ29udGV4dC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MzliMjkzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9JUHJvY2Vzc29yQ29udGV4dC5jcwpAQCAtMCwwICsxLDQ2IEBACit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgQWdpbGl0eS5Db3JlOw0KK3VzaW5nIE5leHVzLkNvcmUuVGFibGVzOw0KKw0KK25hbWVzcGFjZSBOZXh1cy5Db3JlLlZhbGlkYXRvcnMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEVuY2Fwc3VsYXRlIHZhbHVlcyBuZWVkZWQgYnkgc3RhbmRhcmQgSVByb2Nlc3NvckNvbW1hbmRzIFtPVlItMTNdLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gDQorCXB1YmxpYyBpbnRlcmZhY2UgSVByb2Nlc3NvckNvbnRleHQgOiBJQ29udGV4dA0KKwl7DQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSWRlbnRpZnkgdGhlIGZpZWxkIHVuZGVyIHZhbGlkYXRpb24uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJc3RyaW5nIEZpZWxkS2V5IHsgZ2V0OyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZWNvcmQgdGhlIHNvdXJjZSB2YWx1ZSB0byBwcm9jZXNzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCW9iamVjdCBTb3VyY2UgeyBnZXQ7IHNldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJlY29yZCB0aGUgdGFyZ2V0IHZhbHVlIGFmdGVyIGNvbnZlcnNpb24gb3IgZm9ybWF0dGluZy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlvYmplY3QgVGFyZ2V0IHsgZ2V0OyBzZXQ7IH0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJZGVudGlmeSB0aGUgbWFpbiBJUmVxdWVzdENvbnRleHQgYmVpbmcgcHJvY2Vzc2VkLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCUlSZXF1ZXN0Q29udGV4dCBDb250ZXh0IHsgZ2V0OyB9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSWRlbnRpZnkgdGhlIHNldCBvZiBpbnB1dC9vdXRwdXQgZmllbGRzIGJlaW5nIHByb2Nlc3NlZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlJRGljdGlvbmFyeSBDcml0ZXJpYSB7IGdldDsgfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIElkZW50aWZ5IHRoZSBGaWVsZFRhYmxlIGJlaW5nIHV0aWxpemVkLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCUlGaWVsZFRhYmxlIEZpZWxkVGFibGUgeyBnZXQ7IH0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9WYWxpZGF0b3JzL0tleVZhbHVlUHJvY2Vzc29yLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9LZXlWYWx1ZVByb2Nlc3Nvci5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTdmNjcxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9LZXlWYWx1ZVByb2Nlc3Nvci5jcwpAQCAtMCwwICsxLDQ0IEBACit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgQWdpbGl0eS5OZXh1cy5WYWxpZGF0b3JzOw0KKw0KK25hbWVzcGFjZSBOZXh1cy5Db3JlLlZhbGlkYXRvcnMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIFByb2Nlc3MgdGhlIHZhbHVlIG9mIGEgS2V5VmFsdWUgbGlzdCANCisJLy8vIGJ5IHNldHRpbmcgdGhlIEtleSBwcm9wZXJ0eSB0byB0aGUgRmllbGQncyBJRC4NCisJLy8vIDwvc3VtbWFyeT4NCisJcHVibGljIGNsYXNzIEtleVZhbHVlUHJvY2Vzc29yIDogUHJvY2Vzc29yDQorCXsNCisJCXByaXZhdGUgc3RyaW5nIF9LZXk7DQorDQorCQlwdWJsaWMgc3RyaW5nIEtleQ0KKwkJew0KKwkJCXNldCB7IF9LZXkgPSB2YWx1ZTsgfQ0KKwkJCWdldCB7IHJldHVybiBfS2V5OyB9DQorCQl9DQorDQorCQlwdWJsaWMgb3ZlcnJpZGUgYm9vbCBDb252ZXJ0SW5wdXQoSVByb2Nlc3NvckNvbnRleHQgaW5jb21pbmcpDQorCQl7DQorCQkJaW5jb21pbmcuVGFyZ2V0ID0gaW5jb21pbmcuU291cmNlOw0KKwkJCXJldHVybiB0cnVlOw0KKwkJfQ0KKw0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgRm9ybWF0T3V0cHV0KElQcm9jZXNzb3JDb250ZXh0IG91dGdvaW5nKQ0KKwkJew0KKwkJCVByb2Nlc3NvckNvbW1hbmQgZm9ybWF0dGVyID0gbmV3IEZvcm1hdE91dHB1dCgpOw0KKwkJCUlMaXN0IHNvdXJjZSA9IG91dGdvaW5nLlNvdXJjZSBhcyBJTGlzdDsNCisJCQlmb3JlYWNoIChJS2V5VmFsdWUgcm93IGluIHNvdXJjZSkNCisJCQl7DQorCQkJCXN0cmluZyBrZXkgPSBLZXk7DQorCQkJCUlSZXF1ZXN0Q29udGV4dCBjb250ZXh0ID0gbmV3IFJlcXVlc3RDb250ZXh0KCk7DQorCQkJCWNvbnRleHRba2V5XSA9IHJvdy5WYWx1ZTsNCisJCQkJY29udGV4dC5GaWVsZFRhYmxlID0gb3V0Z29pbmcuRmllbGRUYWJsZTsNCisJCQkJSVByb2Nlc3NvckNvbnRleHQgX2NvbnRleHQgPSBuZXcgUHJvY2Vzc29yQ29udGV4dChrZXksIGNvbnRleHQpOw0KKwkJCQlmb3JtYXR0ZXIuRXhlY3V0ZVByb2Nlc3MoX2NvbnRleHQpOw0KKwkJCQlyb3cuVmFsdWUgPSBfY29udGV4dC5UYXJnZXQ7DQorCQkJfQ0KKwkJCW91dGdvaW5nLlRhcmdldCA9IG91dGdvaW5nLlNvdXJjZTsNCisJCQlyZXR1cm4gdHJ1ZTsNCisJCX0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9WYWxpZGF0b3JzL1Byb2Nlc3Nvci5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1ZhbGlkYXRvcnMvUHJvY2Vzc29yLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0YzE3NGMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9WYWxpZGF0b3JzL1Byb2Nlc3Nvci5jcwpAQCAtMCwwICsxLDM2IEBACituYW1lc3BhY2UgTmV4dXMuQ29yZS5WYWxpZGF0b3JzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBJbXBsZW1lbnQgY29tbW9uIHByb3BlcnRpZXMuDQorCS8vLyA8L3N1bW1hcnk+DQorCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQcm9jZXNzb3IgOiBJUHJvY2Vzc29yDQorCXsNCisJCXByaXZhdGUgc3RyaW5nIF9BbGVydDsNCisNCisJCXB1YmxpYyBzdHJpbmcgQWxlcnQNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0FsZXJ0OyB9DQorCQkJc2V0IHsgX0FsZXJ0ID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXByaXZhdGUgc3RyaW5nIF9EYXRhRm9ybWF0Ow0KKw0KKwkJcHVibGljIHN0cmluZyBEYXRhRm9ybWF0DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9EYXRhRm9ybWF0OyB9DQorCQkJc2V0IHsgX0RhdGFGb3JtYXQgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHJpdmF0ZSBzdHJpbmcgX0lEOw0KKw0KKwkJcHVibGljIHN0cmluZyBJRA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfSUQ7IH0NCisJCQlzZXQgeyBfSUQgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIGFic3RyYWN0IGJvb2wgQ29udmVydElucHV0KElQcm9jZXNzb3JDb250ZXh0IGluY29taW5nKTsNCisNCisJCXB1YmxpYyBhYnN0cmFjdCBib29sIEZvcm1hdE91dHB1dChJUHJvY2Vzc29yQ29udGV4dCBvdXRnb2luZyk7DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9Qcm9jZXNzb3JDb21tYW5kLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9Qcm9jZXNzb3JDb21tYW5kLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyYzBmZDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9WYWxpZGF0b3JzL1Byb2Nlc3NvckNvbW1hbmQuY3MKQEAgLTAsMCArMSwyMDcgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgQWdpbGl0eS5OZXh1cy5WYWxpZGF0b3JzOw0KK3VzaW5nIE5leHVzLkNvcmUuVGFibGVzOw0KKw0KK25hbWVzcGFjZSBOZXh1cy5Db3JlLlZhbGlkYXRvcnMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIFByb3ZpZGUgYSBiYXNlIGNsYXNzIHRvIHVzZSB3aGVuIGltcGxlbWVudGF0aW5nIFZhbGlkYXRvcnMuIA0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gPHJlbWFya3M+DQorCS8vLyBTdWJjbGFzc2VzIG11c3QgcHJvdmlkZSBhIE5leHVzRXhlY3V0ZSBtZXRob2QuDQorCS8vLyA8L3JlbWFya3M+DQorCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQcm9jZXNzb3JDb21tYW5kIDogUmVxdWVzdENvbW1hbmQsIElQcm9jZXNzb3JDb21tYW5kDQorCXsNCisJCSNyZWdpb24gSVJlcXVlc3RDb21tYW5kIA0KKw0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgUmVxdWVzdEV4ZWN1dGUoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJUHJvY2Vzc1JlbGF0ZWQoY29udGV4dCk7DQorCQkJUHJvY2Vzc1JlcXVpcmVkKGNvbnRleHQpOw0KKwkJCXJldHVybiBjb250ZXh0Lkhhc0FsZXJ0czsNCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gSVByb2Nlc3NvckNvbW1hbmQNCisNCisJCXByaXZhdGUgc3RyaW5nIF9UZW1wbGF0ZSA9IG51bGw7DQorDQorCQlwdWJsaWMgdmlydHVhbCBzdHJpbmcgUmVxdWlyZWQNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX1RlbXBsYXRlOyB9DQorCQkJc2V0IHsgX1RlbXBsYXRlID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb252ZXJ0IGlucHV0IGZvciBmaWVsZHMgdGhhdCBkbyBub3QgaGF2ZSBhIFByb2Nlc3Nvci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+DQorCQkvLy8gVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gcGFzcyB0aHJvdWdoIHRoZSBvYmplY3RzLCB2ZXJiYXRpbS4NCisJCS8vLyA8L3JlbWFya3M+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRleHQiPlRoZSBJUHJvY2Vzc29yQ29udGV4dDwvcGFyYW0+DQorCQlwdWJsaWMgdmlydHVhbCBib29sIENvbnZlcnRJbnB1dChJUHJvY2Vzc29yQ29udGV4dCBjb250ZXh0KQ0KKwkJew0KKwkJCWNvbnRleHQuVGFyZ2V0ID0gY29udGV4dC5Tb3VyY2U7DQorCQkJcmV0dXJuIHRydWU7DQorCQl9DQorDQorCQlwdWJsaWMgdmlydHVhbCBib29sIEV4ZWN1dGVDb252ZXJ0KElQcm9jZXNzb3JDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJYm9vbCBva2F5Ow0KKwkJCXN0cmluZyBpZCA9IGNvbnRleHQuRmllbGRLZXk7DQorCQkJSUZpZWxkVGFibGUgdGFibGUgPSBjb250ZXh0LkZpZWxkVGFibGU7DQorCQkJSUZpZWxkQ29udGV4dCBmaWVsZENvbnRleHQgPSB0YWJsZS5HZXRGaWVsZENvbnRleHQoaWQpOyAvLyBlbmZvcmNlcyBTdHJpY3QNCisNCisJCQlpZiAoKGZpZWxkQ29udGV4dCA9PSBudWxsKSkNCisJCQl7DQorCQkJCUNvbnZlcnRJbnB1dChjb250ZXh0KTsNCisJCQkJcmV0dXJuIHRydWU7DQorCQkJfQ0KKw0KKwkJCUlQcm9jZXNzb3IgcHJvY2Vzc29yID0gZmllbGRDb250ZXh0LlByb2Nlc3NvcjsNCisJCQlpZiAocHJvY2Vzc29yID09IG51bGwpDQorCQkJCW9rYXkgPSBDb252ZXJ0SW5wdXQoY29udGV4dCk7DQorCQkJZWxzZQ0KKwkJCXsNCisJCQkJb2theSA9IHByb2Nlc3Nvci5Db252ZXJ0SW5wdXQoY29udGV4dCk7DQorCQkJfQ0KKwkJCXJldHVybiBva2F5Ow0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEZvcm1hdCBvdXRwdXQgZm9yIGZpZWxkcyB0aGF0IGRvIG5vdCBoYXZlIGEgUHJvY2Vzc29yLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz4NCisJCS8vLyBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBwYXNzIHRocm91Z2ggbnVsbHMgYW5kIElDb2xsZWN0aW9uIHR5cGVzIA0KKwkJLy8vIGFuZCB0byBjYWxsIFRvU3RyaW5nIG9uIGV2ZXJ5dGhpbmcgZWxzZS4NCisJCS8vLyA8L3JlbWFya3M+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRleHQiPlRoZSBJUHJvY2Vzc29yQ29udGV4dDwvcGFyYW0+DQorCQlwdWJsaWMgdmlydHVhbCBib29sIEZvcm1hdE91dHB1dChJUHJvY2Vzc29yQ29udGV4dCBjb250ZXh0KQ0KKwkJew0KKwkJCWlmIChjb250ZXh0LlNvdXJjZSAhPSBudWxsKQ0KKwkJCXsNCisJCQkJVHlwZSBzb3VyY2VUeXBlID0gY29udGV4dC5Tb3VyY2UuR2V0VHlwZSgpOw0KKwkJCQlpZiAoSXNDb2xsZWN0aW9uVHlwZShzb3VyY2VUeXBlKSkgY29udGV4dC5UYXJnZXQgPSBjb250ZXh0LlNvdXJjZTsNCisJCQkJZWxzZSBjb250ZXh0LlRhcmdldCA9IGNvbnRleHQuU291cmNlLlRvU3RyaW5nKCk7DQorCQkJfQ0KKwkJCXJldHVybiB0cnVlOw0KKwkJfQ0KKw0KKwkJcHVibGljIHZpcnR1YWwgYm9vbCBFeGVjdXRlRm9ybWF0KElQcm9jZXNzb3JDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJYm9vbCBva2F5ID0gZmFsc2U7DQorCQkJc3RyaW5nIGlkID0gY29udGV4dC5GaWVsZEtleTsNCisJCQlvYmplY3Qgc291cmNlID0gY29udGV4dC5Tb3VyY2U7DQorCQkJSUZpZWxkVGFibGUgdGFibGUgPSBjb250ZXh0LkZpZWxkVGFibGU7DQorCQkJSUZpZWxkQ29udGV4dCBmaWVsZENvbnRleHQgPSB0YWJsZS5HZXRGaWVsZENvbnRleHQoaWQpOyAvLyBFbmZvcmNlcyBTdHJpY3QNCisNCisJCQlpZiAoKGZpZWxkQ29udGV4dCA9PSBudWxsKSkNCisJCQl7DQorCQkJCWlmIChzb3VyY2UgPT0gbnVsbCkNCisJCQkJCWNvbnRleHQuVGFyZ2V0ID0gbnVsbDsNCisJCQkJZWxzZSBva2F5ID0gRm9ybWF0T3V0cHV0KGNvbnRleHQpOw0KKwkJCQlyZXR1cm4gb2theTsNCisJCQl9DQorDQorCQkJSVByb2Nlc3NvciBwcm9jZXNzb3IgPSBmaWVsZENvbnRleHQuUHJvY2Vzc29yOw0KKwkJCWlmIChwcm9jZXNzb3IgPT0gbnVsbCkNCisJCQkJb2theSA9IEZvcm1hdE91dHB1dChjb250ZXh0KTsNCisJCQllbHNlDQorCQkJew0KKwkJCQlva2F5ID0gcHJvY2Vzc29yLkZvcm1hdE91dHB1dChjb250ZXh0KTsNCisJCQl9DQorCQkJcmV0dXJuIG9rYXk7DQorCQl9DQorDQorCQlwcml2YXRlIGJvb2wgSXNDb2xsZWN0aW9uVHlwZShUeXBlIGRhdGFUeXBlKQ0KKwkJew0KKwkJCWJvb2wgdiA9ICh0eXBlb2YgKElDb2xsZWN0aW9uKSkuSXNBc3NpZ25hYmxlRnJvbShkYXRhVHlwZSk7DQorCQkJcmV0dXJuICh2KTsNCisJCX0NCisNCisJCXB1YmxpYyBhYnN0cmFjdCBib29sIEV4ZWN1dGVQcm9jZXNzKElQcm9jZXNzb3JDb250ZXh0IGNvbnRleHQpOw0KKw0KKwkJI2VuZHJlZ2lvbg0KKw0KKwkJI3JlZ2lvbiBQcm9jZXNzUmVxdWlyZWQNCisNCisJCXByaXZhdGUgdm9pZCBBc3NlcnRQcm9jZXNzUmVxdWlyZWQoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJSURpY3Rpb25hcnkgY3JpdGVyaWEgPSBjb250ZXh0LkNyaXRlcmlhOw0KKwkJCWlmIChudWxsID09IGNyaXRlcmlhKQ0KKwkJCQl0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKCJDcml0ZXJpYT09bnVsbCIsICJCYXNlVmFsaWRhdG9yLk5leHVzRXhlY3V0ZS5Bc3NlcnRQcm9jZXNzUmVxdWlyZWQiKTsNCisJCX0NCisNCisJCXByaXZhdGUgdm9pZCBQcm9jZXNzUmVxdWlyZWQoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJSUxpc3QgcmVxdWlyZWRJRHMgPSBjb250ZXh0LkNvbW1hbmRCaW4uUmVxdWlyZWRJRHM7IC8vIGlubmVyIGxpc3QNCisJCQlpZiAocmVxdWlyZWRJRHMgPT0gbnVsbCkgcmV0dXJuOw0KKw0KKwkJCUlMaXN0IHJ1bnRpbWVJRHMgPSBjb250ZXh0LkNvbW1hbmRCaW4uUnVudGltZUlEczsgLy8gaW5uZXIgbGlzdA0KKwkJCWlmIChydW50aW1lSURzICE9IG51bGwpDQorCQkJew0KKwkJCQlJRW51bWVyYXRvciBydW50aW1lID0gcnVudGltZUlEcy5HZXRFbnVtZXJhdG9yKCk7DQorCQkJCXdoaWxlIChydW50aW1lLk1vdmVOZXh0KCkpDQorCQkJCXsNCisJCQkJCXN0cmluZyBpZCA9IHJ1bnRpbWUuQ3VycmVudCBhcyBzdHJpbmc7DQorCQkJCQlyZXF1aXJlZElEcy5SZW1vdmUoaWQpOw0KKwkJCQl9DQorCQkJfQ0KKw0KKwkJCUlFbnVtZXJhdG9yIHJlcXVpcmVkID0gcmVxdWlyZWRJRHMuR2V0RW51bWVyYXRvcigpOw0KKwkJCXdoaWxlIChyZXF1aXJlZC5Nb3ZlTmV4dCgpKQ0KKwkJCXsNCisJCQkJc3RyaW5nIGlkID0gcmVxdWlyZWQuQ3VycmVudCBhcyBzdHJpbmc7DQorCQkJCWJvb2wgb2theSA9IChjb250ZXh0LkNvbnRhaW5zKGlkKSAmJiAobnVsbCAhPSBjb250ZXh0W2lkXSkgJiYgKCFTdHJpbmcuRW1wdHkuRXF1YWxzKGNvbnRleHRbaWRdLlRvU3RyaW5nKCkpKSk7DQorCQkJCWlmICghb2theSkNCisJCQkJew0KKwkJCQkJY29udGV4dC5BZGRBbGVydFJlcXVpcmVkKGlkKTsNCisJCQkJfQ0KKwkJCX0NCisJCX0NCisNCisJCSNlbmRyZWdpb24gDQorDQorCQkjcmVnaW9uIFByb2Nlc3NSZWxhdGVkDQorDQorCQlwcml2YXRlIHZvaWQgQXNzZXJ0UHJvY2Vzc1JlbGF0ZWQoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJQXNzZXJ0UHJvY2Vzc1JlcXVpcmVkKGNvbnRleHQpOw0KKw0KKwkJCUlGaWVsZFRhYmxlIHRhYmxlID0gY29udGV4dC5GaWVsZFRhYmxlOw0KKwkJCWlmIChudWxsID09IHRhYmxlKQ0KKwkJCQl0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKCJGaWVsZFRhYmxlPT1udWxsIiwgIkJhc2VWYWxpZGF0b3IuTmV4dXNFeGVjdXRlLkFzc2VydFByb2Nlc3NSZWxhdGVkIik7DQorCQl9DQorDQorCQlwcml2YXRlIHZvaWQgUHJvY2Vzc1JlbGF0ZWQoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJQXNzZXJ0UHJvY2Vzc1JlbGF0ZWQoY29udGV4dCk7DQorDQorCQkJSUNvbGxlY3Rpb24gcmVsYXRlZCA9IENvbWJpbmVkSURzKGNvbnRleHQpOw0KKwkJCWZvcmVhY2ggKHN0cmluZyBrZXkgaW4gcmVsYXRlZCkNCisJCQl7DQorCQkJCUlQcm9jZXNzb3JDb250ZXh0IF9jb250ZXh0ID0gbmV3IFByb2Nlc3NvckNvbnRleHQoa2V5LCBjb250ZXh0KTsNCisJCQkJRXhlY3V0ZVByb2Nlc3MoX2NvbnRleHQpOw0KKwkJCX0NCisJCX0NCisNCisJCXByaXZhdGUgSUNvbGxlY3Rpb24gQ29tYmluZWRJRHMoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJSURpY3Rpb25hcnkgY29tYmluZWQgPSBuZXcgSGFzaHRhYmxlKCk7DQorCQkJSUxpc3QgcmVsYXRlZElEcyA9IGNvbnRleHQuQ29tbWFuZEJpbi5SZWxhdGVkSURzOyAvLyBvdXRlciBsaXN0CQkJDQorCQkJCS8vIEFkZCBDb21tYW5kIElEIHRvIHJlbGF0ZWQgbGlzdCAoc2luY2Ugd2Ugc3RvcmUgb3V0Y29tZSB1bmRlciBvdXIgb3duIElEKQ0KKwkJCSAgICAvLyBUaGlzIGNvZGUgcmVsaWVzIG9uIFJlbGF0ZWRJRHMgYmVpbmcgbGF6aWx5IGluc3RhbnRpYXRlZC4NCisJCQkJc3RyaW5nIGlkID0gY29udGV4dC5Db21tYW5kQmluLklEOw0KKwkJCQlib29sIGZvdW5kX3NlbGYgPSByZWxhdGVkSURzLkNvbnRhaW5zKGlkKTsNCisJCQkJaWYgKCFmb3VuZF9zZWxmKSByZWxhdGVkSURzLkFkZChpZCk7DQorCQkJZm9yZWFjaCAoc3RyaW5nIGkgaW4gcmVsYXRlZElEcykgY29tYmluZWRbaV0gPSBpOw0KKwkJCUlMaXN0IHJlcXVpcmVkSURzID0gY29udGV4dC5Db21tYW5kQmluLlJlcXVpcmVkSURzOyAvLyBpbm5lciBsaXN0DQorCQkJaWYgKHJlcXVpcmVkSURzICE9IG51bGwpIGZvcmVhY2ggKHN0cmluZyBpIGluIHJlcXVpcmVkSURzKSBjb21iaW5lZFtpXSA9IGk7DQorCQkJcmV0dXJuIGNvbWJpbmVkLktleXM7DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9Qcm9jZXNzb3JDb250ZXh0LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9Qcm9jZXNzb3JDb250ZXh0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5ZWRmMmQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvQ29yZS9WYWxpZGF0b3JzL1Byb2Nlc3NvckNvbnRleHQuY3MKQEAgLTAsMCArMSw2MyBAQAordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KK3VzaW5nIEFnaWxpdHkuQ29yZTsNCit1c2luZyBOZXh1cy5Db3JlOw0KK3VzaW5nIE5leHVzLkNvcmUuVGFibGVzOw0KK3VzaW5nIE5leHVzLkNvcmUuVmFsaWRhdG9yczsNCisNCituYW1lc3BhY2UgQWdpbGl0eS5OZXh1cy5WYWxpZGF0b3JzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBJbXBsZW1lbnQgSVByb2Nlc3NvckNvbnRleHQuDQorCS8vLyA8L3N1bW1hcnk+DQorCXB1YmxpYyBjbGFzcyBQcm9jZXNzb3JDb250ZXh0IDogQ29udGV4dCwgSVByb2Nlc3NvckNvbnRleHQNCisJew0KKwkJcHVibGljIFByb2Nlc3NvckNvbnRleHQoKQ0KKwkJew0KKwkJfQ0KKw0KKwkJcHVibGljIFByb2Nlc3NvckNvbnRleHQoc3RyaW5nIGtleSwgb2JqZWN0IHNvdXJjZSkNCisJCXsNCisJCQlGaWVsZEtleSA9IGtleTsNCisJCQlTb3VyY2UgPSBzb3VyY2U7DQorCQl9DQorDQorCQlwdWJsaWMgUHJvY2Vzc29yQ29udGV4dChzdHJpbmcga2V5LCBJUmVxdWVzdENvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQlGaWVsZEtleSA9IGtleTsNCisJCQl0aGlzW1Rva2Vucy5Db250ZXh0XSA9IGNvbnRleHQ7DQorCQl9DQorDQorCQlwdWJsaWMgc3RyaW5nIEZpZWxkS2V5DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIHRoaXNbVG9rZW5zLkZpZWxkS2V5XSBhcyBzdHJpbmc7IH0NCisJCQlzZXQgeyB0aGlzW1Rva2Vucy5GaWVsZEtleV0gPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIG9iamVjdCBTb3VyY2UNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gdGhpc1tUb2tlbnMuU291cmNlXTsgfQ0KKwkJCXNldCB7IHRoaXNbVG9rZW5zLlNvdXJjZV0gPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIG9iamVjdCBUYXJnZXQNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gdGhpc1tUb2tlbnMuVGFyZ2V0XTsgfQ0KKwkJCXNldCB7IHRoaXNbVG9rZW5zLlRhcmdldF0gPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIElSZXF1ZXN0Q29udGV4dCBDb250ZXh0DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIHRoaXNbVG9rZW5zLkNvbnRleHRdIGFzIElSZXF1ZXN0Q29udGV4dDsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIElEaWN0aW9uYXJ5IENyaXRlcmlhDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIENvbnRleHQuQ3JpdGVyaWE7IH0NCisJCX0NCisNCisJCXB1YmxpYyBJRmllbGRUYWJsZSBGaWVsZFRhYmxlDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIENvbnRleHQuRmllbGRUYWJsZTsgfQ0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1ZhbGlkYXRvcnMvU3RyaW5nUHJvY2Vzc29yLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0NvcmUvVmFsaWRhdG9ycy9TdHJpbmdQcm9jZXNzb3IuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTMzNWI4MQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9Db3JlL1ZhbGlkYXRvcnMvU3RyaW5nUHJvY2Vzc29yLmNzCkBAIC0wLDAgKzEsNTMgQEAKK3VzaW5nIFN5c3RlbTsNCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZS5WYWxpZGF0b3JzDQorew0KKwlwdWJsaWMgY2xhc3MgU3RyaW5nUHJvY2Vzc29yIDogUHJvY2Vzc29yDQorCXsNCisJCSNyZWdpb24gSVByb2Nlc3NvciANCisNCisJCXB1YmxpYyBvdmVycmlkZSBib29sIENvbnZlcnRJbnB1dChJUHJvY2Vzc29yQ29udGV4dCBpbmNvbWluZykNCisJCXsNCisJCQlzdHJpbmcgc291cmNlID0gaW5jb21pbmcuU291cmNlIGFzIHN0cmluZzsNCisJCQlpbmNvbWluZy5UYXJnZXQgPSBTdHJpbmdfQ29udmVydChzb3VyY2UpOw0KKwkJCXJldHVybiB0cnVlOw0KKwkJfQ0KKw0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgRm9ybWF0T3V0cHV0KElQcm9jZXNzb3JDb250ZXh0IG91dGdvaW5nKQ0KKwkJew0KKwkJCW9iamVjdCBzb3VyY2UgPSBvdXRnb2luZy5Tb3VyY2U7DQorCQkJb3V0Z29pbmcuVGFyZ2V0ID0gU3RyaW5nX0Zvcm1hdChzb3VyY2UpOw0KKwkJCXJldHVybiB0cnVlOw0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbg0KKw0KKwkJcHJpdmF0ZSBzdHJpbmcgU3RyaW5nX0VtcHR5ID0gU3RyaW5nLkVtcHR5Ow0KKw0KKwkJcHJpdmF0ZSBzdHJpbmcgU3RyaW5nX0NvbnZlcnQoc3RyaW5nIHNvdXJjZSkNCisJCXsNCisJCQlib29sIGlzTnVsbCA9IChzb3VyY2UgPT0gbnVsbCk7DQorCQkJcmV0dXJuIGlzTnVsbCA/IFN0cmluZ19FbXB0eSA6IHNvdXJjZTsNCisJCQkvLyBJZiBudWxsLCByZXR1cm4gZW1wdHkgc3RyaW5nIHJhdGhlciB0aGFuIG51bGwJCQkNCisJCX0NCisNCisJCXByaXZhdGUgc3RyaW5nIFN0cmluZ19Gb3JtYXQob2JqZWN0IHNvdXJjZSkNCisJCXsNCisJCQlzdHJpbmcgdCA9IFN0cmluZ19FbXB0eTsNCisJCQlpZiAoc291cmNlID09IG51bGwpIHJldHVybiB0Ow0KKwkJCXN0cmluZyBmb3JtYXQgPSAoRGF0YUZvcm1hdCA9PSBudWxsKSA/IHQgOiBEYXRhRm9ybWF0Ow0KKwkJCWlmIChmb3JtYXQuRXF1YWxzKHQpKSByZXR1cm4gc291cmNlLlRvU3RyaW5nKCk7DQorCQkJcmV0dXJuIFN0cmluZy5Gb3JtYXQoZm9ybWF0LCBzb3VyY2UpOw0KKwkJfQ0KKw0KKwkJLyoNCisJCXByaXZhdGUgYm9vbCBJc015VHlwZSAoVHlwZSBkYXRhVHlwZSkNCisJCXsNCisJCQlib29sIHYgPSAodHlwZW9mIChzdHJpbmcpLklzQXNzaWduYWJsZUZyb20gKGRhdGFUeXBlKSk7DQorCQkJcmV0dXJuIHY7DQorCQl9DQorCQkqLw0KKw0KKw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9FeHRyYXMvQXNzZW1ibHlJbmZvLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0V4dHJhcy9Bc3NlbWJseUluZm8uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVhZjk0NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9FeHRyYXMvQXNzZW1ibHlJbmZvLmNzCkBAIC0wLDAgKzEsNTYgQEAKK3VzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOw0KKy8vDQorLy8gR2VuZXJhbCBJbmZvcm1hdGlvbiBhYm91dCBhbiBhc3NlbWJseSBpcyBjb250cm9sbGVkIHRocm91Z2ggdGhlIGZvbGxvd2luZyANCisvLyBzZXQgb2YgYXR0cmlidXRlcy4gQ2hhbmdlIHRoZXNlIGF0dHJpYnV0ZSB2YWx1ZXMgdG8gbW9kaWZ5IHRoZSBpbmZvcm1hdGlvbg0KKy8vIGFzc29jaWF0ZWQgd2l0aCBhbiBhc3NlbWJseS4NCisvLw0KK1thc3NlbWJseSA6IEFzc2VtYmx5VGl0bGUoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5RGVzY3JpcHRpb24oIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5Q29uZmlndXJhdGlvbigiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDb21wYW55KCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseVByb2R1Y3QoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5Q29weXJpZ2h0KCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseVRyYWRlbWFyaygiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDdWx0dXJlKCIiKV0NCisNCisvLw0KKy8vIFZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGFuIGFzc2VtYmx5IGNvbnNpc3RzIG9mIHRoZSBmb2xsb3dpbmcgZm91ciB2YWx1ZXM6DQorLy8NCisvLyAgICAgIE1ham9yIFZlcnNpb24NCisvLyAgICAgIE1pbm9yIFZlcnNpb24gDQorLy8gICAgICBCdWlsZCBOdW1iZXINCisvLyAgICAgIFJldmlzaW9uDQorLy8NCisvLyBZb3UgY2FuIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgb3IgeW91IGNhbiBkZWZhdWx0IHRoZSBSZXZpc2lvbiBhbmQgQnVpbGQgTnVtYmVycyANCisvLyBieSB1c2luZyB0aGUgJyonIGFzIHNob3duIGJlbG93Og0KKw0KK1thc3NlbWJseSA6IEFzc2VtYmx5VmVyc2lvbigiMS4wLioiKV0NCisNCisvLw0KKy8vIEluIG9yZGVyIHRvIHNpZ24geW91ciBhc3NlbWJseSB5b3UgbXVzdCBzcGVjaWZ5IGEga2V5IHRvIHVzZS4gUmVmZXIgdG8gdGhlIA0KKy8vIE1pY3Jvc29mdCAuTkVUIEZyYW1ld29yayBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGFzc2VtYmx5IHNpZ25pbmcuDQorLy8NCisvLyBVc2UgdGhlIGF0dHJpYnV0ZXMgYmVsb3cgdG8gY29udHJvbCB3aGljaCBrZXkgaXMgdXNlZCBmb3Igc2lnbmluZy4gDQorLy8NCisvLyBOb3RlczogDQorLy8gICAoKikgSWYgbm8ga2V5IGlzIHNwZWNpZmllZCwgdGhlIGFzc2VtYmx5IGlzIG5vdCBzaWduZWQuDQorLy8gICAoKikgS2V5TmFtZSByZWZlcnMgdG8gYSBrZXkgdGhhdCBoYXMgYmVlbiBpbnN0YWxsZWQgaW4gdGhlIENyeXB0byBTZXJ2aWNlDQorLy8gICAgICAgUHJvdmlkZXIgKENTUCkgb24geW91ciBtYWNoaW5lLiBLZXlGaWxlIHJlZmVycyB0byBhIGZpbGUgd2hpY2ggY29udGFpbnMNCisvLyAgICAgICBhIGtleS4NCisvLyAgICgqKSBJZiB0aGUgS2V5RmlsZSBhbmQgdGhlIEtleU5hbWUgdmFsdWVzIGFyZSBib3RoIHNwZWNpZmllZCwgdGhlIA0KKy8vICAgICAgIGZvbGxvd2luZyBwcm9jZXNzaW5nIG9jY3VyczoNCisvLyAgICAgICAoMSkgSWYgdGhlIEtleU5hbWUgY2FuIGJlIGZvdW5kIGluIHRoZSBDU1AsIHRoYXQga2V5IGlzIHVzZWQuDQorLy8gICAgICAgKDIpIElmIHRoZSBLZXlOYW1lIGRvZXMgbm90IGV4aXN0IGFuZCB0aGUgS2V5RmlsZSBkb2VzIGV4aXN0LCB0aGUga2V5IA0KKy8vICAgICAgICAgICBpbiB0aGUgS2V5RmlsZSBpcyBpbnN0YWxsZWQgaW50byB0aGUgQ1NQIGFuZCB1c2VkLg0KKy8vICAgKCopIEluIG9yZGVyIHRvIGNyZWF0ZSBhIEtleUZpbGUsIHlvdSBjYW4gdXNlIHRoZSBzbi5leGUgKFN0cm9uZyBOYW1lKSB1dGlsaXR5Lg0KKy8vICAgICAgIFdoZW4gc3BlY2lmeWluZyB0aGUgS2V5RmlsZSwgdGhlIGxvY2F0aW9uIG9mIHRoZSBLZXlGaWxlIHNob3VsZCBiZQ0KKy8vICAgICAgIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IG91dHB1dCBkaXJlY3Rvcnkgd2hpY2ggaXMNCisvLyAgICAgICAlUHJvamVjdCBEaXJlY3RvcnklXG9ialw8Y29uZmlndXJhdGlvbj4uIEZvciBleGFtcGxlLCBpZiB5b3VyIEtleUZpbGUgaXMNCisvLyAgICAgICBsb2NhdGVkIGluIHRoZSBwcm9qZWN0IGRpcmVjdG9yeSwgeW91IHdvdWxkIHNwZWNpZnkgdGhlIEFzc2VtYmx5S2V5RmlsZSANCisvLyAgICAgICBhdHRyaWJ1dGUgYXMgW2Fzc2VtYmx5OiBBc3NlbWJseUtleUZpbGUoIi4uXFwuLlxcbXlrZXkuc25rIildDQorLy8gICAoKikgRGVsYXkgU2lnbmluZyBpcyBhbiBhZHZhbmNlZCBvcHRpb24gLSBzZWUgdGhlIE1pY3Jvc29mdCAuTkVUIEZyYW1ld29yaw0KKy8vICAgICAgIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcy4NCisvLw0KK1thc3NlbWJseSA6IEFzc2VtYmx5RGVsYXlTaWduKGZhbHNlKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseUtleUZpbGUoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5S2V5TmFtZSgiIildClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0V4dHJhcy9FeHRyYXMuY3Nwcm9qIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0V4dHJhcy9FeHRyYXMuY3Nwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3ZTgxM2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvRXh0cmFzL0V4dHJhcy5jc3Byb2oKQEAgLTAsMCArMSwxMzAgQEAKKzxWaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KKyAgICA8Q1NIQVJQDQorICAgICAgICBQcm9qZWN0VHlwZSA9ICJMb2NhbCINCisgICAgICAgIFByb2R1Y3RWZXJzaW9uID0gIjcuMTAuMzA3NyINCisgICAgICAgIFNjaGVtYVZlcnNpb24gPSAiMi4wIg0KKyAgICAgICAgUHJvamVjdEd1aWQgPSAiezc5MzFDQUNELTBFNzMtNEREMi1BMzczLUZGNkEwMUNFNjE4Nn0iDQorICAgID4NCisgICAgICAgIDxCdWlsZD4NCisgICAgICAgICAgICA8U2V0dGluZ3MNCisgICAgICAgICAgICAgICAgQXBwbGljYXRpb25JY29uID0gIiINCisgICAgICAgICAgICAgICAgQXNzZW1ibHlLZXlDb250YWluZXJOYW1lID0gIiINCisgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIk5leHVzLkV4dHJhcyINCisgICAgICAgICAgICAgICAgQXNzZW1ibHlPcmlnaW5hdG9yS2V5RmlsZSA9ICIiDQorICAgICAgICAgICAgICAgIERlZmF1bHRDbGllbnRTY3JpcHQgPSAiSlNjcmlwdCINCisgICAgICAgICAgICAgICAgRGVmYXVsdEhUTUxQYWdlTGF5b3V0ID0gIkdyaWQiDQorICAgICAgICAgICAgICAgIERlZmF1bHRUYXJnZXRTY2hlbWEgPSAiSUU1MCINCisgICAgICAgICAgICAgICAgRGVsYXlTaWduID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICBPdXRwdXRUeXBlID0gIkxpYnJhcnkiDQorICAgICAgICAgICAgICAgIFByZUJ1aWxkRXZlbnQgPSAiIg0KKyAgICAgICAgICAgICAgICBQb3N0QnVpbGRFdmVudCA9ICIkKFNvbHV0aW9uRGlyKXBvc3RidWlsZC5iYXQgJChUYXJnZXREaXIpICAkKFRhcmdldE5hbWUpICAkKFNvbHV0aW9uTmFtZSkgICQoU29sdXRpb25EaXIpIg0KKyAgICAgICAgICAgICAgICBSb290TmFtZXNwYWNlID0gIk5leHVzLkV4dHJhcyINCisgICAgICAgICAgICAgICAgUnVuUG9zdEJ1aWxkRXZlbnQgPSAiT25CdWlsZFN1Y2Nlc3MiDQorICAgICAgICAgICAgICAgIFN0YXJ0dXBPYmplY3QgPSAiIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICAgICAgPENvbmZpZw0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJEZWJ1ZyINCisgICAgICAgICAgICAgICAgICAgIEFsbG93VW5zYWZlQmxvY2tzID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgQmFzZUFkZHJlc3MgPSAiMjg1MjEyNjcyIg0KKyAgICAgICAgICAgICAgICAgICAgQ2hlY2tGb3JPdmVyZmxvd1VuZGVyZmxvdyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIENvbmZpZ3VyYXRpb25PdmVycmlkZUZpbGUgPSAiIg0KKyAgICAgICAgICAgICAgICAgICAgRGVmaW5lQ29uc3RhbnRzID0gIkRFQlVHO1RSQUNFIg0KKyAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnRhdGlvbkZpbGUgPSAiTmV4dXMuRXh0cmFzLnhtbCINCisgICAgICAgICAgICAgICAgICAgIERlYnVnU3ltYm9scyA9ICJ0cnVlIg0KKyAgICAgICAgICAgICAgICAgICAgRmlsZUFsaWdubWVudCA9ICI0MDk2Ig0KKyAgICAgICAgICAgICAgICAgICAgSW5jcmVtZW50YWxCdWlsZCA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE5vU3RkTGliID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgTm9XYXJuID0gIjE1OTEiDQorICAgICAgICAgICAgICAgICAgICBPcHRpbWl6ZSA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE91dHB1dFBhdGggPSAiYmluXERlYnVnXCINCisgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyRm9yQ29tSW50ZXJvcCA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFJlbW92ZUludGVnZXJDaGVja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBUcmVhdFdhcm5pbmdzQXNFcnJvcnMgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBXYXJuaW5nTGV2ZWwgPSAiNCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPENvbmZpZw0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJSZWxlYXNlIg0KKyAgICAgICAgICAgICAgICAgICAgQWxsb3dVbnNhZmVCbG9ja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBCYXNlQWRkcmVzcyA9ICIyODUyMTI2NzIiDQorICAgICAgICAgICAgICAgICAgICBDaGVja0Zvck92ZXJmbG93VW5kZXJmbG93ID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbk92ZXJyaWRlRmlsZSA9ICIiDQorICAgICAgICAgICAgICAgICAgICBEZWZpbmVDb25zdGFudHMgPSAiVFJBQ0UiDQorICAgICAgICAgICAgICAgICAgICBEb2N1bWVudGF0aW9uRmlsZSA9ICIiDQorICAgICAgICAgICAgICAgICAgICBEZWJ1Z1N5bWJvbHMgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBGaWxlQWxpZ25tZW50ID0gIjQwOTYiDQorICAgICAgICAgICAgICAgICAgICBJbmNyZW1lbnRhbEJ1aWxkID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgTm9TdGRMaWIgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBOb1dhcm4gPSAiIg0KKyAgICAgICAgICAgICAgICAgICAgT3B0aW1pemUgPSAidHJ1ZSINCisgICAgICAgICAgICAgICAgICAgIE91dHB1dFBhdGggPSAiYmluXFJlbGVhc2VcIg0KKyAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJGb3JDb21JbnRlcm9wID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgUmVtb3ZlSW50ZWdlckNoZWNrcyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFRyZWF0V2FybmluZ3NBc0Vycm9ycyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFdhcm5pbmdMZXZlbCA9ICI0Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgIDwvU2V0dGluZ3M+DQorICAgICAgICAgICAgPFJlZmVyZW5jZXM+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIlN5c3RlbSINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIi4uXC4uXC4uXC4uXC4uXC4uXC4uXFdJTkRPV1NcTWljcm9zb2Z0Lk5FVFxGcmFtZXdvcmtcdjEuMS40MzIyXFN5c3RlbS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtLkRhdGEiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3lzdGVtLkRhdGEiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlwuLlwuLlwuLlwuLlxXSU5ET1dTXE1pY3Jvc29mdC5ORVRcRnJhbWV3b3JrXHYxLjEuNDMyMlxTeXN0ZW0uRGF0YS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtLlhNTCINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJTeXN0ZW0uWG1sIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cLi5cLi5cLi5cLi5cLi5cV0lORE9XU1xNaWNyb3NvZnQuTkVUXEZyYW1ld29ya1x2MS4xLjQzMjJcU3lzdGVtLlhNTC5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiQ29yZSINCisgICAgICAgICAgICAgICAgICAgIFByb2plY3QgPSAiezdDOENBRkQ0LTFFNDUtNDFCNC05OTYzLUY1MTE5OUIxMkVBN30iDQorICAgICAgICAgICAgICAgICAgICBQYWNrYWdlID0gIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIkFnaWxpdHkuQ29yZSINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJBZ2lsaXR5LkNvcmUiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlxsb2NhbC1jYWNoZVxBZ2lsaXR5XEFnaWxpdHkuQ29yZS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3ByaW5nLkNvcmUiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3ByaW5nLkNvcmUiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlxsb2NhbC1jYWNoZVxTcHJpbmdOZXRcU3ByaW5nLkNvcmUuZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgIDwvUmVmZXJlbmNlcz4NCisgICAgICAgIDwvQnVpbGQ+DQorICAgICAgICA8RmlsZXM+DQorICAgICAgICAgICAgPEluY2x1ZGU+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkFzc2VtYmx5SW5mby5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlNwcmluZ1xDYXRhbG9nLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiU3ByaW5nXEZpZWxkQ29udGV4dC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlNwcmluZ1xGaWVsZFRhYmxlLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiU3ByaW5nXE9iamVjdHMuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgIDwvSW5jbHVkZT4NCisgICAgICAgIDwvRmlsZXM+DQorICAgIDwvQ1NIQVJQPg0KKzwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCisNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvRXh0cmFzL1NwcmluZy9DYXRhbG9nLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0V4dHJhcy9TcHJpbmcvQ2F0YWxvZy5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDRjOWM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0V4dHJhcy9TcHJpbmcvQ2F0YWxvZy5jcwpAQCAtMCwwICsxLDI4MiBAQAorLyoNCisgKiBDb3B5cmlnaHQgMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICogDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqIA0KKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICogDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgQWdpbGl0eS5Db3JlOw0KK3VzaW5nIE5leHVzLkNvcmU7DQordXNpbmcgTmV4dXMuQ29yZS5IZWxwZXJzOw0KK3VzaW5nIE5leHVzLkNvcmUuVGFibGVzOw0KK3VzaW5nIFNwcmluZy5Db250ZXh0Ow0KKw0KK25hbWVzcGFjZSBOZXh1cy5FeHRyYXMuU3ByaW5nDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBJbXBsZW1lbnQgSVJlcXVlc3RDYXRhbG9nICANCisJLy8vIHVzaW5nIFNwcmluZyBhcyBhbiBJT0MgY29udGFpbmVyIFtPVlItOF0uDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyANCisJcHVibGljIGNsYXNzIENhdGFsb2cgOiBJUmVxdWVzdENhdGFsb2csIElBcHBsaWNhdGlvbkNvbnRleHRBd2FyZQ0KKwl7DQorCQkjcmVnaW9uIE1lc3NhZ2VzIA0KKw0KKwkJcHJpdmF0ZSBjb25zdCBzdHJpbmcgbXNnX0FERF9DT01NQU5EID0gIlRoaXMgY2F0YWxvZyBpbnN0YW5jZSBpcyBjcmVhdGVkIHRocm91Z2ggZGVwZW5kZW5jeSBpbmplY3Rpb24uIjsNCisJCXByaXZhdGUgY29uc3Qgc3RyaW5nIG1zZ19NSVNTSU5HID0gIk9iamVjdCBpcyBub3QgZm91bmQgaW4gRmFjdG9yeS4iOw0KKwkJcHJpdmF0ZSBjb25zdCBzdHJpbmcgbXNnX05VTEwgPSAiT2JqZWN0IElEIGNhbm5vdCBiZSBudWxsLiI7DQorCQlwcml2YXRlIGNvbnN0IHN0cmluZyBtc2dfVFlQRSA9ICJDb21tYW5kIGlzIG5vdCBhIElSZXF1ZXN0Q29tbWFuZCBvciBJUmVxdWVzdENoYWluLiI7DQorCQlwcml2YXRlIGNvbnN0IHN0cmluZyBtc2dfQ0FUQUxPR19DT05URVhUX05VTEwgPSAiQ2F0YWxvZzogQ29udGV4dCBjYW5ub3QgYmUgbnVsbCEiOw0KKwkJcHJpdmF0ZSBjb25zdCBzdHJpbmcgbXNnX0NBVEFMT0dfQ09NTUFORF9OVUxMID0gIkNhdGFsb2c6IENvbW1hbmQgd2l0aGluIENvbnRleHQgY2Fubm90IGJlIG51bGwhIC0tIFdhcyBDb250ZXh0IHJldHJpZXZlZCBmcm9tIENhdGFsb2c/IjsNCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gSUFwcGxpY2F0aW9uQ29udGV4dEF3YXJlIA0KKw0KKwkJcHJpdmF0ZSBJQXBwbGljYXRpb25Db250ZXh0IF9GYWN0b3J5ID0gbnVsbDsNCisNCisJCXB1YmxpYyBJQXBwbGljYXRpb25Db250ZXh0IEFwcGxpY2F0aW9uQ29udGV4dA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfRmFjdG9yeTsgfQ0KKwkJCXNldCB7IF9GYWN0b3J5ID0gdmFsdWU7IH0NCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gSVJlcXVlc3RDYXRhbG9nDQorDQorCQlwdWJsaWMgb2JqZWN0IEdldE9iamVjdChzdHJpbmcgbmFtZSkNCisJCXsNCisJCQlpZiAobnVsbCA9PSBuYW1lKQ0KKwkJCXsNCisJCQkJRXhjZXB0aW9uIGUgPSBuZXcgRXhjZXB0aW9uKG1zZ19OVUxMKTsNCisJCQkJdGhyb3coZSk7DQorCQkJfQ0KKwkJCW9iamVjdCBvID0gRmFjdG9yeSgpLkdldE9iamVjdChuYW1lKTsNCisJCQlpZiAobyA9PSBudWxsKQ0KKwkJCXsNCisJCQkJRXhjZXB0aW9uIGUgPSBuZXcgRXhjZXB0aW9uKG1zZ19NSVNTSU5HKTsNCisJCQkJdGhyb3coZSk7DQorCQkJfQ0KKwkJCXJldHVybiBvOw0KKwkJfQ0KKw0KKwkJcHVibGljIElWaWV3SGVscGVyIEdldEhlbHBlckZvcihzdHJpbmcgY29tbWFuZCkNCisJCXsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSBWaWV3SGVscGVyOw0KKwkJCWhlbHBlci5DYXRhbG9nID0gdGhpczsNCisJCQloZWxwZXIuQ29tbWFuZCA9IEdldFJlcXVlc3RDb21tYW5kKGNvbW1hbmQpOw0KKwkJCXJldHVybiBoZWxwZXI7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gTm90IGltcGxlbWVudGVkIGFzIENhdGFsb2cgaXMgZXhwZWN0ZWQgdG8gYmUgY3JlYXRlZCBieSBhbiBJT0MgZnJhbWV3b3JrLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ibmFtZSI+SUQgZm9yIGNvbW1hbmQ8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb21tYW5kIj5Db21tYW5kIGluc3RhbmNlPC9wYXJhbT4NCisJCXB1YmxpYyB2b2lkIEFkZENvbW1hbmQoc3RyaW5nIG5hbWUsIElDb21tYW5kIGNvbW1hbmQpDQorCQl7DQorCQkJdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXhjZXB0aW9uKG1zZ19BRERfQ09NTUFORCk7IC8vIE9LDQorCQl9DQorDQorCQlwdWJsaWMgSUNvbW1hbmQgR2V0Q29tbWFuZChzdHJpbmcgbmFtZSkNCisJCXsNCisJCQlvYmplY3QgbyA9IEdldE9iamVjdChuYW1lKTsNCisJCQlyZXR1cm4gbyBhcyBJQ29tbWFuZDsNCisJCX0NCisNCisJCXB1YmxpYyBJUmVxdWVzdENvbW1hbmQgR2V0UmVxdWVzdENvbW1hbmQoc3RyaW5nIG5hbWUpDQorCQl7DQorCQkJSUNvbW1hbmQgYyA9IEdldENvbW1hbmQobmFtZSk7DQorCQkJSVJlcXVlc3RDb21tYW5kIGNvbW1hbmQgPSBjIGFzIElSZXF1ZXN0Q29tbWFuZDsNCisJCQlpZiAoY29tbWFuZCA9PSBudWxsKQ0KKwkJCXsNCisJCQkJRXhjZXB0aW9uIGUgPSBuZXcgRXhjZXB0aW9uKG1zZ19UWVBFKTsNCisJCQkJdGhyb3coZSk7DQorCQkJfQ0KKwkJCXJldHVybiBjb21tYW5kOw0KKwkJfQ0KKw0KKwkJcHVibGljIElFbnVtZXJhdG9yIEdldE5hbWVzKCkNCisJCXsNCisJCQlzdHJpbmdbXSBuYW1lcyA9IF9GYWN0b3J5LkdldE9iamVjdERlZmluaXRpb25OYW1lcygpOw0KKwkJCUlFbnVtZXJhdG9yIGVudSA9IG5hbWVzLkdldEVudW1lcmF0b3IoKTsNCisJCQlyZXR1cm4gZW51Ow0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbg0KKw0KKwkJI3JlZ2lvbiBJUmVxdWVzdENhdGFsb2cNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBEZWZhdWx0IGNvbnN0cnVjdG9yLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBDYXRhbG9nKCkNCisJCXsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb25zdHJ1Y3Qgb2JqZWN0IGFuZCBzZXQgQXBwbGljYXRpb25Db250ZXh0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0idmFsdWUiPk91ciBBcHBsaWNhdGlvbkNvbnRleHQ8L3BhcmFtPg0KKwkJcHVibGljIENhdGFsb2coSUFwcGxpY2F0aW9uQ29udGV4dCB2YWx1ZSkNCisJCXsNCisJCQlBcHBsaWNhdGlvbkNvbnRleHQgPSB2YWx1ZTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHRoZSBJQXBwbGljYXRpb25Db250ZXh0IGluc3RhbmNlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmV0dXJucz5JQXBwbGljYXRpb25Db250ZXh0IGluc3RhbmNlPC9yZXR1cm5zPg0KKwkJcHVibGljIElBcHBsaWNhdGlvbkNvbnRleHQgRmFjdG9yeSgpDQorCQl7DQorCQkJcmV0dXJuIF9GYWN0b3J5Ow0KKwkJfQ0KKw0KKwkJcHJpdmF0ZSBJRmllbGRUYWJsZSBfRmllbGRUYWJsZTsNCisNCisJCXB1YmxpYyBJRmllbGRUYWJsZSBGaWVsZFRhYmxlDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9GaWVsZFRhYmxlOyB9DQorCQkJc2V0IHsgX0ZpZWxkVGFibGUgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHJpdmF0ZSBJUmVxdWVzdENvbW1hbmQgX1ByZU9wOw0KKw0KKwkJcHVibGljIElSZXF1ZXN0Q29tbWFuZCBQcmVPcA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfUHJlT3A7IH0NCisJCQlzZXQgeyBfUHJlT3AgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHJpdmF0ZSBJUmVxdWVzdENvbW1hbmQgX1Bvc3RPcDsNCisNCisJCXB1YmxpYyBJUmVxdWVzdENvbW1hbmQgUG9zdE9wDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9Qb3N0T3A7IH0NCisJCQlzZXQgeyBfUG9zdE9wID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXByaXZhdGUgSVZpZXdIZWxwZXIgX1ZpZXdIZWxwZXI7DQorDQorCQlwdWJsaWMgSVZpZXdIZWxwZXIgVmlld0hlbHBlcg0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfVmlld0hlbHBlcjsgfQ0KKwkJCXNldCB7IF9WaWV3SGVscGVyID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXB1YmxpYyBJUmVxdWVzdENvbnRleHQgR2V0UmVxdWVzdENvbnRleHQoc3RyaW5nIG5hbWUpDQorCQl7DQorCQkJSUNvbW1hbmQgX2NvbW1hbmQgPSBHZXRDb21tYW5kKG5hbWUpOw0KKwkJCUlSZXF1ZXN0Q29tbWFuZCBfcmMgPSBfY29tbWFuZCBhcyBJUmVxdWVzdENvbW1hbmQ7DQorCQkJcmV0dXJuIEdldFJlcXVlc3RDb250ZXh0KF9yYyk7DQorCQl9DQorDQorCQlwdWJsaWMgSVJlcXVlc3RDb250ZXh0IEdldFJlcXVlc3RDb250ZXh0KElSZXF1ZXN0Q29tbWFuZCBjb21tYW5kKQ0KKwkJew0KKwkJCUlSZXF1ZXN0Q29udGV4dCBjb250ZXh0Ow0KKwkJCXRyeQ0KKwkJCXsNCisJCQkJY29udGV4dCA9IGNvbW1hbmQuTmV3Q29udGV4dCgpOw0KKwkJCQljb250ZXh0W1Rva2Vucy5Db21tYW5kQmluXSA9IGNvbW1hbmQ7DQorCQkJCWNvbnRleHRbVG9rZW5zLkZpZWxkVGFibGVdID0gRmllbGRUYWJsZTsNCisJCQkJLy8gVE9ETzogTWVzc2FnZVRhYmxlDQorCQkJfQ0KKwkJCWNhdGNoIChFeGNlcHRpb24gZSkNCisJCQl7DQorCQkJCWNvbnRleHQgPSBuZXcgUmVxdWVzdENvbnRleHQoKTsNCisJCQkJY29udGV4dC5GYXVsdCA9IGU7DQorCQkJCS8vIElTU1VFOiBMb2cgZXhjZXB0aW9uKGZhdWx0cykgKExvZyBhbGwgZXJyb3JzIGluIHZlcmJvc2UgbW9kZT8pDQorCQkJCS8vIElTU1VFOiBQcm92aWRlIGFuIGFsdGVybmF0ZSBsb2NhdGlvbiBvbiBmYXVsdD8gLS0gRGVjbGFyYXRpdmUgZXhjZXB0aW9uIGhhbmRpbmcNCisJCQl9DQorCQkJcmV0dXJuIGNvbnRleHQ7DQorDQorCQl9DQorDQorCQlwdWJsaWMgSVJlcXVlc3RDb250ZXh0IEdldFJlcXVlc3RDb250ZXh0KHN0cmluZyBuYW1lLCBJRGljdGlvbmFyeSBpbnB1dCkNCisJCXsNCisJCQlJUmVxdWVzdENvbnRleHQgY29udGV4dCA9IEdldFJlcXVlc3RDb250ZXh0KG5hbWUpOw0KKwkJCWNvbnRleHQuQ3JpdGVyaWEgPSBpbnB1dDsNCisJCQlyZXR1cm4gY29udGV4dDsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb25maXJtIHRoYXQgdGhlIENvbnRleHQgaXMgbm90IG51bGwsIGFuZCB0aGUgQ29udGV4dCdzIENvbW1hbmQgaXMgbm90IG51bGwuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5JUmVxdWVzdENvbnRleHQgdG8gdmVyaWZ5PC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5UaGUgbm9uLW51bGwgQ29tbWFuZCBmb3IgdGhpcyBDb250ZXh0PC9yZXR1cm5zPg0KKwkJcHJpdmF0ZSBJUmVxdWVzdENvbW1hbmQgVmVyaWZ5UmVxdWVzdChJUmVxdWVzdENvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQlpZiAobnVsbCA9PSBjb250ZXh0KQ0KKwkJCXsNCisJCQkJY29udGV4dCA9IG5ldyBSZXF1ZXN0Q29udGV4dCgpOw0KKwkJCQljb250ZXh0LkFkZEFsZXJ0KG1zZ19DQVRBTE9HX0NPTlRFWFRfTlVMTCk7DQorCQkJfQ0KKw0KKwkJCUlSZXF1ZXN0Q29tbWFuZCBjb21tYW5kID0gY29udGV4dFtUb2tlbnMuQ29tbWFuZEJpbl0gYXMgSVJlcXVlc3RDb21tYW5kOw0KKw0KKwkJCWlmIChudWxsID09IGNvbW1hbmQpDQorCQkJCWNvbnRleHQuQWRkQWxlcnQobXNnX0NBVEFMT0dfQ09NTUFORF9OVUxMKTsNCisNCisJCQlyZXR1cm4gY29tbWFuZDsNCisJCX0NCisNCisJCXB1YmxpYyBJUmVxdWVzdENvbnRleHQgRXhlY3V0ZVJlcXVlc3Qoc3RyaW5nIG5hbWUpDQorCQl7DQorCQkJSVJlcXVlc3RDb250ZXh0IGNvbnRleHQgPSBHZXRSZXF1ZXN0Q29udGV4dChuYW1lKTsNCisJCQlFeGVjdXRlUmVxdWVzdChjb250ZXh0KTsNCisJCQlyZXR1cm4gY29udGV4dDsNCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIEV4ZWN1dGVSZXF1ZXN0KElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KQ0KKwkJew0KKwkJCUlSZXF1ZXN0Q29tbWFuZCBjb21tYW5kID0gVmVyaWZ5UmVxdWVzdChjb250ZXh0KTsNCisJCQlpZiAoY29udGV4dC5Jc05vbWluYWwpDQorCQkJew0KKwkJCQl0cnkNCisJCQkJew0KKwkJCQkJY29tbWFuZC5FeGVjdXRlKGNvbnRleHQpOw0KKwkJCQl9DQorCQkJCWNhdGNoIChFeGNlcHRpb24gZSkNCisJCQkJew0KKwkJCQkJY29udGV4dC5GYXVsdCA9IGU7DQorCQkJCX0NCisJCQl9DQorDQorCQkJLy8gSVNTVUU6IExvZyBleGNlcHRpb24oZmF1bHRzKSAoTG9nIGFsbCBlcnJvcnMgaW4gdmVyYm9zZSBtb2RlPykNCisJCQkvLyBJU1NVRTogUHJvdmlkZSBhbiBhbHRlcm5hdGUgbG9jYXRpb24gb24gZmF1bHQ/IC0tIERlY2xhcmF0aXZlIGV4Y2VwdGlvbiBoYW5kaW5nPw0KKwkJfQ0KKw0KKwkJcHVibGljIHZvaWQgRXhlY3V0ZVZpZXcoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJSVJlcXVlc3RDb21tYW5kIGNvbW1hbmQgPSBWZXJpZnlSZXF1ZXN0KGNvbnRleHQpOw0KKwkJCWlmIChjb250ZXh0LklzTm9taW5hbCkNCisJCQl7DQorCQkJCUlDaGFpbiBjaGFpbiA9IG5ldyBDaGFpbigpOw0KKwkJCQlpZiAoX1ByZU9wICE9IG51bGwpIGNoYWluLkFkZENvbW1hbmQoX1ByZU9wKTsNCisJCQkJY2hhaW4uQWRkQ29tbWFuZChjb21tYW5kKTsNCisJCQkJaWYgKF9Qb3N0T3AgIT0gbnVsbCkgY2hhaW4uQWRkQ29tbWFuZChfUG9zdE9wKTsNCisJCQkJdHJ5DQorCQkJCXsNCisJCQkJCWNoYWluLkV4ZWN1dGUoY29udGV4dCk7DQorCQkJCX0NCisJCQkJY2F0Y2ggKEV4Y2VwdGlvbiBlKQ0KKwkJCQl7DQorCQkJCQljb250ZXh0LkZhdWx0ID0gZTsNCisJCQkJfQ0KKwkJCX0NCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvRXh0cmFzL1NwcmluZy9GaWVsZENvbnRleHQuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvRXh0cmFzL1NwcmluZy9GaWVsZENvbnRleHQuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFjYTY2MAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9FeHRyYXMvU3ByaW5nL0ZpZWxkQ29udGV4dC5jcwpAQCAtMCwwICsxLDE4MyBAQAordXNpbmcgU3lzdGVtOw0KK3VzaW5nIEFnaWxpdHkuQ29yZTsNCit1c2luZyBOZXh1cy5Db3JlOw0KK3VzaW5nIE5leHVzLkNvcmUuVGFibGVzOw0KK3VzaW5nIE5leHVzLkNvcmUuVmFsaWRhdG9yczsNCit1c2luZyBTcHJpbmcuQ29udGV4dDsNCisNCituYW1lc3BhY2UgTmV4dXMuRXh0cmFzLlNwcmluZw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gQ29uY3JldGUgSUZpZWxkQ29udGV4dCBpbXBsZW1lbnRhdGlvbiB0aGF0IHVzZXMgU3ByaW5nIE1lc3NhZ2VTb3VyY2UgdG8gcmVzb2x2ZSB0ZXh0IC4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIDxyZW1hcmtzPjxwPg0KKwkvLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiAqcmVxdWlyZXMqIHRoYXQgYSBTcHJpbmcgTWVzc2FnZVNvdXJjZSBiZSBleHBvc2VkIHRvIGVhY2ggdGhlIEZpZWxkQ29udGV4dCBtZW1iZXIuIA0KKwkvLy8gVGhlIHNpbXBsZXN0IHdheSB0byBkbyB0aGF0IGlzIGJ5IHVzaW5nIGEgYmFzZSBGaWVsZENvbnRleHQgaW4gdGhlIFNwcmluZyBjb25maWd1cmF0aW9uIGZpbGUuIA0KKwkvLy8gVGhlIE1lc3NhZ2VTb3VyY2UgcHJvcGVydHkgY2FuIGJlIHNldCBvbmNlIGluIHRoZSBiYXNlIGFuZCBpbmhlcml0ZWQgYnkgdGhlIG90aGVycy4gDQorCS8vLyA8L3A+PHA+DQorCS8vLyBJbiB0aGlzIGltcGxlbWVudGF0aW9uLCANCisJLy8vIHRoZSB0ZXh0IHByb3BlcnRpZXMgLS0gQWxlcnQsIEhpbnQsIEhlbHAsIExhYmVsLCBhbmQgUmVxdWlyZWQgLS0gYXJlIHJlYWQtb25seSANCisJLy8vIGFuZCBjYW5ub3QgYmUgYWNjZXNzZWQgd2l0aCBhIE1lc3NhZ2VTb3VyY2UgcHJvcGVydHkuIA0KKwkvLy8gV2hlbiB0aGUgcHJvcGVydHkgaXMgcmVhZCwgDQorCS8vLyB0aGUgbWV0aG9kIGxvb2tzIGZvciBhIG1lc3NhZ2UgcmVzb3VyY2UgdGhhdCBzaGFyZXMgdGhlIHNhbWUgIElEIGFzIHRoZSBGaWVsZENvbnRleHQsDQorCS8vLyBidXQgd2l0aCBhICJfcHJvcGVydHkiIHN1ZmZpeCAoX2FsZXJ0LCBfaGludCwgX2hlbHAsIF9sYWJlbCwgX3JlcXVpcmVkKS4gDQorCS8vLyBTbywgaWYgdGhlIEZpZWxkQ29udGV4dCBJRCBpcyBMYXN0TmFtZSwgdGhlbiByZWFkaW5nIGl0cyBBbGVydCB3aWxsIGxvb2sgZm9yIGEgbWVzc2FnZSANCisJLy8vIHJlc291cmNlIG5hbWVkICJMYXN0TmFtZV9hbGVydCIuIA0KKwkvLy8gPC9wPjxwPg0KKwkvLy8gSW4gdGhlIGNhc2Ugb2YgYW4gQWxlcnQsIGEgbWVzc2FnZSBtYXkgYWxzbyBiZSBwcm92aWRlZCBieSB0aGUgUHJvY2Vzc29yLiANCisJLy8vIElmIHNvLCB0aGVuIHRoZSBQcm9jZXNzb3IgbWVzc2FnZSBzdXBlcmNlZGVzIHRoZSBkZWZhdWx0IG1lc3NhZ2UuIA0KKwkvLy8gSW4gdGhpcyB3YXksIHlvdSBjYW4gc2V0IGEgZGVmYXVsdCBmb3IgYWxsIHRoZSBjb250cm9scywgDQorCS8vLyBhbmQgdGhlbiBvdmVycmlkZSB0aGUgZGVmYXVsdCBmb3Igc3BlY2lmaWMgcHJvY2Vzc29ycy4NCisJLy8vIDwvcD48cD4NCisJLy8vIFRvIHByb3ZpZGUgYSBkZWZhdWx0IEFsZXJ0IG9yIFJlcXVpcmVkIHRvIHVzZSB3aGVuIG5vIG90aGVyIGlzIHByb3ZpZGVkLCANCisJLy8vIHByb3ZpZGUgYSBNZXNzYWdlIFJlc291cmNlIGVudHJ5IGluIHRoZSBmb3JtOiAiX2FsZXJ0IiBvciAiX3JlcXVpcmVkIi4NCisJLy8vIDwvcD48cD4NCisJLy8vIElmIGEgTGFiZWwgbWVzc2FnZSBpcyBub3QgZm91bmQsIHRoZSBGaWVsZENvbnRleHQgSUQgaXMgcmV0dXJuZWQgaW5zdGVhZC4gDQorCS8vLyBPdGhlcndpc2UsIGlmIG5vIG1lc3NhZ2UgaXMgZm91bmQsIA0KKwkvLy8gdGhlbiB0aGUgRmllbGRDb250ZXh0IElEIGFuZCBwcm9wZXJ0eSB0YWcgKGUuZy4gIkxhc3ROYW1lX3JlcXVpcmVkIikgDQorCS8vLyBpcyByZXR1cm5lZC4gDQorCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkvLy8gDQorCVtTZXJpYWxpemFibGVdDQorCXB1YmxpYyBjbGFzcyBGaWVsZENvbnRleHQgOiBDb250ZXh0LCBJRmllbGRDb250ZXh0DQorCXsNCisJCXB1YmxpYyBGaWVsZENvbnRleHQoKSA6IGJhc2UoKQ0KKwkJew0KKwkJCUNvbnRyb2xUeXBlTmFtZSA9IFRva2Vucy5DT05UUk9MX0lOUFVUOyAvLyBEZWZhdWx0DQorCQl9DQorDQorCQlwdWJsaWMgc3RyaW5nIENvbnRyb2xUeXBlTmFtZQ0KKwkJew0KKwkJCWdldCB7IHJldHVybiB0aGlzW1Rva2Vucy5Db250cm9sVHlwZU5hbWVdIGFzIHN0cmluZzsgfQ0KKwkJCXNldCB7IHRoaXNbVG9rZW5zLkNvbnRyb2xUeXBlTmFtZV0gPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHN0cmluZyBJRA0KKwkJew0KKwkJCWdldCB7IHJldHVybiB0aGlzW1Rva2Vucy5JRF0gYXMgc3RyaW5nOyB9DQorCQkJc2V0IHsgdGhpc1tUb2tlbnMuSURdID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXB1YmxpYyBJUHJvY2Vzc29yIFByb2Nlc3Nvcg0KKwkJew0KKwkJCWdldCB7IHJldHVybiB0aGlzW1Rva2Vucy5Qcm9jZXNzb3JdIGFzIElQcm9jZXNzb3I7IH0NCisJCQlzZXQgeyB0aGlzW1Rva2Vucy5Qcm9jZXNzb3JdID0gdmFsdWU7IH0NCisJCX0NCisNCisJCSNyZWdpb24gdGV4dCBwcm9wZXJ0aWVzDQorDQorCQlwcml2YXRlIElNZXNzYWdlU291cmNlIF9NZXNzYWdlU291cmNlOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIElkZW50aWZ5IHRoZSBtZXNzYWdlIHNvdXJjZSBmb3IgdGhpcyBGaWVsZENvbnRleHQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxleGNlcHRpb24gY3JlZj0iU3lzdGVtLkludmFsaWRPcGVyYXRpb25FeGNlcHRpb24iPg0KKwkJLy8vIElmIHRoZSBjb250ZXh0IGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCB5ZXQuDQorCQkvLy8gPC9leGNlcHRpb24+DQorCQlwdWJsaWMgSU1lc3NhZ2VTb3VyY2UgTWVzc2FnZVNvdXJjZQ0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfTWVzc2FnZVNvdXJjZTsgfQ0KKwkJCXNldCB7IF9NZXNzYWdlU291cmNlID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZXNvbHZlIHRoZSBtZXNzYWdlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ibmFtZSI+VGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIHRvIGdldC48L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPg0KKwkJLy8vIFRoZSByZXNvbHZlZCBtZXNzYWdlIGlmIHRoZSBsb29rdXAgd2FzIHN1Y2Nlc3NmdWwuIE90aGVyd2lzZSwgaXQgZWl0aGVyIHRocm93cw0KKwkJLy8vIGFuIGV4Y2VwdGlvbiBvciByZXR1cm5zIHRoZSByZXNvdXJjZSBuYW1lLCBkZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uLg0KKwkJLy8vIDwvcmV0dXJucz4NCisJCXByaXZhdGUgc3RyaW5nIEdldE1lc3NhZ2Uoc3RyaW5nIG5hbWUpDQorCQl7DQorCQkJcmV0dXJuIE1lc3NhZ2VTb3VyY2UuR2V0TWVzc2FnZShuYW1lKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZXNvbHZlIHRoZSBtZXNzYWdlIG9yIHJldHVybiBudWxsLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ibmFtZSI+VGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIHRvIGdldC48L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPkEgcmVzb2x2ZWQgbWVzc2FnZSBvciBudWxsIGlmIHRoZSBtZXNzYWdlIGNvdWxkIG5vdCBiZSBsb2NhdGVkIGZvciBhbnkgcmVhc29uLjwvcmV0dXJucz4NCisJCXByaXZhdGUgc3RyaW5nIEdldE1lc3NhZ2VPck51bGwoc3RyaW5nIG5hbWUpDQorCQl7DQorCQkJc3RyaW5nIF9uYW1lID0gbnVsbDsNCisJCQl0cnkNCisJCQl7DQorCQkJCV9uYW1lID0gR2V0TWVzc2FnZShuYW1lKTsNCisJCQl9DQorCQkJY2F0Y2ggKEV4Y2VwdGlvbiBlKQ0KKwkJCXsNCisJCQkJZSA9IGU7IC8vIHNpbGx5IGFzc2lnbm1lbnQNCisJCQkJX25hbWUgPSBudWxsOw0KKwkJCX0NCisJCQlyZXR1cm4gX25hbWU7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmV0dXJuIHRoZSBtZXNzYWdlIGZvciB0aGUgUHJvY2Vzc29yLCANCisJCS8vLyBvciB0aGUgbWVzc2FnZSBmb3IgdGhlIEZpZWxkQ29udGV4dCwgDQorCQkvLy8gb3IgdGhlIG1lc3NhZ2UgZm9yIHRoZSBzdWZmaXgsDQorCQkvLy8gb3IgdGhlIEZpZWxkQ29udGV4dCBJRCBhbmQgc3VmZml4IHZlcmJhdGltLCANCisJCS8vLyBpZiBhbGwgZWxzZSBmYWlscy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InJvb3QiPkZpZWxkQ29udGV4dCBJRDwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9InN1ZmZpeCI+TWVzc2FnZSB0eXBlPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5BIG1lc3NhZ2Ugb3IgdGhlIHJvb3Qrc3VmZml4PC9yZXR1cm5zPg0KKwkJcHJpdmF0ZSBzdHJpbmcgR2V0VGV4dChzdHJpbmcgcm9vdCwgc3RyaW5nIHN1ZmZpeCkNCisJCXsNCisJCQlzdHJpbmcgdGV4dCA9IG51bGw7DQorCQkJSVByb2Nlc3NvciBwcm9jZXNzb3IgPSBQcm9jZXNzb3I7DQorCQkJc3RyaW5nIGlkID0gbnVsbDsNCisJCQlpZiAocHJvY2Vzc29yICE9IG51bGwpIGlkID0gcHJvY2Vzc29yLklEOw0KKwkJCWlmIChpZCAhPSBudWxsKSB0ZXh0ID0gR2V0TWVzc2FnZU9yTnVsbChpZCArIHN1ZmZpeCk7DQorCQkJaWYgKHRleHQgPT0gbnVsbCkNCisJCQl7DQorCQkJCXRleHQgPSBHZXRNZXNzYWdlT3JOdWxsKHJvb3QgKyBzdWZmaXgpOw0KKwkJCX0NCisJCQlpZiAodGV4dCA9PSBudWxsKQ0KKwkJCXsNCisJCQkJdGV4dCA9IEdldE1lc3NhZ2VPck51bGwoc3VmZml4KTsNCisJCQl9DQorCQkJaWYgKHRleHQgPT0gbnVsbCkgdGV4dCA9IHJvb3QgKyBzdWZmaXg7DQorDQorCQkJcmV0dXJuIHRleHQ7DQorCQl9DQorDQorCQlwdWJsaWMgc3RyaW5nIEFsZXJ0DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIEdldFRleHQodGhpcy5JRCwgIl9hbGVydCIpOyB9DQorCQkJc2V0IHsgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZEV4Y2VwdGlvbigpOyB9DQorCQl9DQorDQorCQlwdWJsaWMgc3RyaW5nIEhpbnQNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gR2V0VGV4dCh0aGlzLklELCAiX2hpbnQiKTsgfQ0KKwkJCXNldCB7IHRocm93IG5ldyBOb3RTdXBwb3J0ZWRFeGNlcHRpb24oKTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHN0cmluZyBIZWxwDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIEdldFRleHQodGhpcy5JRCwgIl9oZWxwIik7IH0NCisJCQlzZXQgeyB0aHJvdyBuZXcgTm90U3VwcG9ydGVkRXhjZXB0aW9uKCk7IH0NCisJCX0NCisNCisJCXB1YmxpYyBzdHJpbmcgTGFiZWwNCisJCXsNCisJCQlnZXQNCisJCQl7DQorCQkJCXN0cmluZyBsYWJlbCA9IEdldE1lc3NhZ2VPck51bGwodGhpcy5JRCArICJfbGFiZWwiKTsNCisJCQkJaWYgKGxhYmVsID09IG51bGwpIGxhYmVsID0gSUQ7DQorCQkJCXJldHVybiBsYWJlbDsNCisJCQl9DQorCQkJc2V0IHsgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZEV4Y2VwdGlvbigpOyB9DQorCQl9DQorDQorCQlwdWJsaWMgc3RyaW5nIFJlcXVpcmVkDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIEdldFRleHQodGhpcy5JRCwgIl9yZXF1aXJlZCIpOyB9DQorCQkJc2V0IHsgdGhyb3cgbmV3IE5vdFN1cHBvcnRlZEV4Y2VwdGlvbigpOyB9DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0V4dHJhcy9TcHJpbmcvRmllbGRUYWJsZS5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9FeHRyYXMvU3ByaW5nL0ZpZWxkVGFibGUuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI1YzBiMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9FeHRyYXMvU3ByaW5nL0ZpZWxkVGFibGUuY3MKQEAgLTAsMCArMSwzNCBAQAordXNpbmcgTmV4dXMuQ29yZS5UYWJsZXM7DQordXNpbmcgU3ByaW5nLkNvbnRleHQ7DQorDQorbmFtZXNwYWNlIE5leHVzLkV4dHJhcy5TcHJpbmcNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIENvbXBhbmlvbiB0byBOZXh1cy5FeHRyYXMuU3ByaW5nLkZpZWxkQ29udGV4dC4NCisJLy8vIDwvc3VtbWFyeT4NCisJcHVibGljIGNsYXNzIEZpZWxkVGFibGUgOiBDb3JlLlRhYmxlcy5GaWVsZFRhYmxlDQorCXsNCisJCXByaXZhdGUgSU1lc3NhZ2VTb3VyY2UgX01lc3NhZ2VTb3VyY2U7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSWRlbnRpZnkgdGhlIG1lc3NhZ2Ugc291cmNlIGZvciB0aGlzIEZpZWxkVGFibGUuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxleGNlcHRpb24gY3JlZj0iU3lzdGVtLkludmFsaWRPcGVyYXRpb25FeGNlcHRpb24iPg0KKwkJLy8vIElmIHRoZSBjb250ZXh0IGhhcyBub3QgYmVlbiBpbml0aWFsaXplZCB5ZXQuDQorCQkvLy8gPC9leGNlcHRpb24+DQorCQlwdWJsaWMgSU1lc3NhZ2VTb3VyY2UgTWVzc2FnZVNvdXJjZQ0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfTWVzc2FnZVNvdXJjZTsgfQ0KKwkJCXNldCB7IF9NZXNzYWdlU291cmNlID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXB1YmxpYyBvdmVycmlkZSBJRmllbGRDb250ZXh0IE5ld0ZpZWxkQ29udGV4dChzdHJpbmcgaWQpDQorCQl7DQorCQkJRmllbGRDb250ZXh0IGZpZWxkID0gbmV3IEZpZWxkQ29udGV4dCgpOw0KKwkJCWZpZWxkLklEID0gaWQ7DQorCQkJZmllbGQuTWVzc2FnZVNvdXJjZSA9IHRoaXMuTWVzc2FnZVNvdXJjZTsNCisJCQlyZXR1cm4gZmllbGQ7DQorCQl9DQorDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0V4dHJhcy9TcHJpbmcvT2JqZWN0cy5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9FeHRyYXMvU3ByaW5nL09iamVjdHMuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODAxZjM1YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9FeHRyYXMvU3ByaW5nL09iamVjdHMuY3MKQEAgLTAsMCArMSw1MSBAQAordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFNwcmluZy5Db250ZXh0Ow0KK3VzaW5nIFNwcmluZy5Db250ZXh0LlN1cHBvcnQ7DQordXNpbmcgU3ByaW5nLk9iamVjdHMuRmFjdG9yeS5YbWw7DQorDQorbmFtZXNwYWNlIEFnaWxpdHkuRXh0cmFzLlNwcmluZw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gQSBzaW5nbGV0b24gaW1wbGVtZW50YXRpb24gb2YgdGhlIElIZWxwZXIgcHJvdG9jb2wsIA0KKwkvLy8gdXNpbmcgc3RhdGljIG1ldGhvZHMgYW5kIHRoZSBTcHJpbmcgb2JqZWN0IGZhY3RvcnkuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyA8cmVtYXJrcz48cD4NCisJLy8vIFNpbmNlIHN0YXRpYyBtZXRob2RzIGFyZSB1c2VkIGhlcmUsIGFzIGEgY29udmVuaWVuY2UsIA0KKwkvLy8gaXQgaXMgbm90IHBvc3NpYmxlIHRvIGltcGxlbWVudCBJSGVscGVyLiANCisJLy8vIEhvd2V2ZXIsIHRoZSBzYW1lIG1ldGhvZCBzaWduYXR1cmVzIGFyZSBvdGhlcndpc2UgdXNlZC4NCisJLy8vIDwvcD48cD4NCisJLy8vIE9mIGNvdXJzZSwgYW4gYWx0ZXJuYXRpdmUgaXMgdG8gcHJvdmlkZSB0aGUgRmFjdG9yeQ0KKwkvLy8gbWV0aG9kIGEgc2luZ2x0b24sIGFuZCB0aGVuIG9idGFpbiB0aGUgSGVscGVycyANCisJLy8vIGNsYXNzIGZyb20gdGhlIEZhY3RvcnksIGJ1dCBpbXBsZW1lbnRpbmcgdGhlIA0KKwkvLy8gSUhlbHBlcnMgaW50ZXJmYWNlIGFzIGEgc2luZ2xldG9uIHNlZW1zIHNpbXBsZXIuDQorCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwlwdWJsaWMgY2xhc3MgT2JqZWN0cw0KKwl7DQorCQlwcml2YXRlIHN0YXRpYyBzdHJpbmcgRklMRSA9ICIvT2JqZWN0cy54bWwiOw0KKw0KKwkJcHJpdmF0ZSBPYmplY3RzKCkNCisJCXsNCisJCQkvLyBwcml2YXRlIGNvbnN0cnVjdG9yIHByZXZlbnRzIGluc3RhbnRpYXRpb24uIA0KKwkJfQ0KKw0KKwkJLy8gSVNTVUU6IFJlbW92ZSB0aGlzIGtsdWRnZSBhbmQgYWRvcHQgbGF0ZXN0IGlCQVRJUyBhcHByb2FjaC4NCisJCXByaXZhdGUgc3RhdGljIHN0cmluZyBfcm9vdERpcmVjdG9yeSA9DQorCQkJQXBwRG9tYWluLkN1cnJlbnREb21haW4uQmFzZURpcmVjdG9yeS5SZXBsYWNlKEAiXGJpbiIsICIiKS5SZXBsYWNlKEAiXERlYnVnIiwgIiIpLlJlcGxhY2UoQCJcUmVsZWFzZSIsICIiKTsNCisNCisJCXByaXZhdGUgc3RhdGljIHZvbGF0aWxlIElBcHBsaWNhdGlvbkNvbnRleHQgX0ZhY3RvcnkgPSBudWxsOw0KKw0KKwkJcHVibGljIHN0YXRpYyBJQXBwbGljYXRpb25Db250ZXh0IEZhY3RvcnkoKQ0KKwkJew0KKwkJCWlmIChfRmFjdG9yeSA9PSBudWxsKQ0KKwkJCXsNCisJCQkJbG9jayAodHlwZW9mIChYbWxPYmplY3RGYWN0b3J5KSkNCisJCQkJew0KKwkJCQkJc3RyaW5nIGZvbyA9ICJmaWxlOi8vIiArIF9yb290RGlyZWN0b3J5ICsgRklMRTsNCisJCQkJCWlmIChfRmFjdG9yeSA9PSBudWxsKSAvLyBkb3VibGUtY2hlY2sgDQorCQkJCQkJX0ZhY3RvcnkgPSBuZXcgWG1sQXBwbGljYXRpb25Db250ZXh0KGZvbyk7DQorCQkJCX0NCisJCQl9DQorCQkJcmV0dXJuIF9GYWN0b3J5Ow0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9MSUNFTlNFLnR4dCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9MSUNFTlNFLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjQ1Njk1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL0xJQ0VOU0UudHh0CkBAIC0wLDAgKzEsMjAyIEBACisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0CisgICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCisKKyAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgorCisgICAxLiBEZWZpbml0aW9ucy4KKworICAgICAgIkxpY2Vuc2UiIHNoYWxsIG1lYW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwKKyAgICAgIGFuZCBkaXN0cmlidXRpb24gYXMgZGVmaW5lZCBieSBTZWN0aW9ucyAxIHRocm91Z2ggOSBvZiB0aGlzIGRvY3VtZW50LgorCisgICAgICAiTGljZW5zb3IiIHNoYWxsIG1lYW4gdGhlIGNvcHlyaWdodCBvd25lciBvciBlbnRpdHkgYXV0aG9yaXplZCBieQorICAgICAgdGhlIGNvcHlyaWdodCBvd25lciB0aGF0IGlzIGdyYW50aW5nIHRoZSBMaWNlbnNlLgorCisgICAgICAiTGVnYWwgRW50aXR5IiBzaGFsbCBtZWFuIHRoZSB1bmlvbiBvZiB0aGUgYWN0aW5nIGVudGl0eSBhbmQgYWxsCisgICAgICBvdGhlciBlbnRpdGllcyB0aGF0IGNvbnRyb2wsIGFyZSBjb250cm9sbGVkIGJ5LCBvciBhcmUgdW5kZXIgY29tbW9uCisgICAgICBjb250cm9sIHdpdGggdGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAorICAgICAgImNvbnRyb2wiIG1lYW5zIChpKSB0aGUgcG93ZXIsIGRpcmVjdCBvciBpbmRpcmVjdCwgdG8gY2F1c2UgdGhlCisgICAgICBkaXJlY3Rpb24gb3IgbWFuYWdlbWVudCBvZiBzdWNoIGVudGl0eSwgd2hldGhlciBieSBjb250cmFjdCBvcgorICAgICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCisgICAgICBvdXRzdGFuZGluZyBzaGFyZXMsIG9yIChpaWkpIGJlbmVmaWNpYWwgb3duZXJzaGlwIG9mIHN1Y2ggZW50aXR5LgorCisgICAgICAiWW91IiAob3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisgICAgICBleGVyY2lzaW5nIHBlcm1pc3Npb25zIGdyYW50ZWQgYnkgdGhpcyBMaWNlbnNlLgorCisgICAgICAiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKKyAgICAgIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsIGRvY3VtZW50YXRpb24KKyAgICAgIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisKKyAgICAgICJPYmplY3QiIGZvcm0gc2hhbGwgbWVhbiBhbnkgZm9ybSByZXN1bHRpbmcgZnJvbSBtZWNoYW5pY2FsCisgICAgICB0cmFuc2Zvcm1hdGlvbiBvciB0cmFuc2xhdGlvbiBvZiBhIFNvdXJjZSBmb3JtLCBpbmNsdWRpbmcgYnV0CisgICAgICBub3QgbGltaXRlZCB0byBjb21waWxlZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCisgICAgICBhbmQgY29udmVyc2lvbnMgdG8gb3RoZXIgbWVkaWEgdHlwZXMuCisKKyAgICAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3b3JrIG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCisgICAgICBPYmplY3QgZm9ybSwgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIExpY2Vuc2UsIGFzIGluZGljYXRlZCBieSBhCisgICAgICBjb3B5cmlnaHQgbm90aWNlIHRoYXQgaXMgaW5jbHVkZWQgaW4gb3IgYXR0YWNoZWQgdG8gdGhlIHdvcmsKKyAgICAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdykuCisKKyAgICAgICJEZXJpdmF0aXZlIFdvcmtzIiBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBvciBPYmplY3QKKyAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKKyAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKKyAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLiBGb3IgdGhlIHB1cnBvc2VzCisgICAgICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KKyAgICAgIHNlcGFyYWJsZSBmcm9tLCBvciBtZXJlbHkgbGluayAob3IgYmluZCBieSBuYW1lKSB0byB0aGUgaW50ZXJmYWNlcyBvZiwKKyAgICAgIHRoZSBXb3JrIGFuZCBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YuCisKKyAgICAgICJDb250cmlidXRpb24iIHNoYWxsIG1lYW4gYW55IHdvcmsgb2YgYXV0aG9yc2hpcCwgaW5jbHVkaW5nCisgICAgICB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGUgV29yayBhbmQgYW55IG1vZGlmaWNhdGlvbnMgb3IgYWRkaXRpb25zCisgICAgICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0aGF0IGlzIGludGVudGlvbmFsbHkKKyAgICAgIHN1Ym1pdHRlZCB0byBMaWNlbnNvciBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIKKyAgICAgIG9yIGJ5IGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5IGF1dGhvcml6ZWQgdG8gc3VibWl0IG9uIGJlaGFsZiBvZgorICAgICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJzdWJtaXR0ZWQiCisgICAgICBtZWFucyBhbnkgZm9ybSBvZiBlbGVjdHJvbmljLCB2ZXJiYWwsIG9yIHdyaXR0ZW4gY29tbXVuaWNhdGlvbiBzZW50CisgICAgICB0byB0aGUgTGljZW5zb3Igb3IgaXRzIHJlcHJlc2VudGF0aXZlcywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bworICAgICAgY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtcywKKyAgICAgIGFuZCBpc3N1ZSB0cmFja2luZyBzeXN0ZW1zIHRoYXQgYXJlIG1hbmFnZWQgYnksIG9yIG9uIGJlaGFsZiBvZiwgdGhlCisgICAgICBMaWNlbnNvciBmb3IgdGhlIHB1cnBvc2Ugb2YgZGlzY3Vzc2luZyBhbmQgaW1wcm92aW5nIHRoZSBXb3JrLCBidXQKKyAgICAgIGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3aXNlCisgICAgICBkZXNpZ25hdGVkIGluIHdyaXRpbmcgYnkgdGhlIGNvcHlyaWdodCBvd25lciBhcyAiTm90IGEgQ29udHJpYnV0aW9uLiIKKworICAgICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFuIExpY2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKyAgICAgIG9uIGJlaGFsZiBvZiB3aG9tIGEgQ29udHJpYnV0aW9uIGhhcyBiZWVuIHJlY2VpdmVkIGJ5IExpY2Vuc29yIGFuZAorICAgICAgc3Vic2VxdWVudGx5IGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsuCisKKyAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKyAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLAorICAgICAgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgc3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCisgICAgICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLgorCisgICAzLiBHcmFudCBvZiBQYXRlbnQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKyAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisgICAgICAoZXhjZXB0IGFzIHN0YXRlZCBpbiB0aGlzIHNlY3Rpb24pIHBhdGVudCBsaWNlbnNlIHRvIG1ha2UsIGhhdmUgbWFkZSwKKyAgICAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3JrLAorICAgICAgd2hlcmUgc3VjaCBsaWNlbnNlIGFwcGxpZXMgb25seSB0byB0aG9zZSBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUKKyAgICAgIGJ5IHN1Y2ggQ29udHJpYnV0b3IgdGhhdCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZWlyCisgICAgICBDb250cmlidXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpCisgICAgICB3aXRoIHRoZSBXb3JrIHRvIHdoaWNoIHN1Y2ggQ29udHJpYnV0aW9uKHMpIHdhcyBzdWJtaXR0ZWQuIElmIFlvdQorICAgICAgaW5zdGl0dXRlIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKKyAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKKyAgICAgIG9yIGEgQ29udHJpYnV0aW9uIGluY29ycG9yYXRlZCB3aXRoaW4gdGhlIFdvcmsgY29uc3RpdHV0ZXMgZGlyZWN0CisgICAgICBvciBjb250cmlidXRvcnkgcGF0ZW50IGluZnJpbmdlbWVudCwgdGhlbiBhbnkgcGF0ZW50IGxpY2Vuc2VzCisgICAgICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFsbCB0ZXJtaW5hdGUKKyAgICAgIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKworICAgNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUKKyAgICAgIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mIGluIGFueSBtZWRpdW0sIHdpdGggb3Igd2l0aG91dAorICAgICAgbW9kaWZpY2F0aW9ucywgYW5kIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybSwgcHJvdmlkZWQgdGhhdCBZb3UKKyAgICAgIG1lZXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCisgICAgICAoYSkgWW91IG11c3QgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgV29yayBvcgorICAgICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5IG9mIHRoaXMgTGljZW5zZTsgYW5kCisKKyAgICAgIChiKSBZb3UgbXVzdCBjYXVzZSBhbnkgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKKyAgICAgICAgICBzdGF0aW5nIHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKKworICAgICAgKGMpIFlvdSBtdXN0IHJldGFpbiwgaW4gdGhlIFNvdXJjZSBmb3JtIG9mIGFueSBEZXJpdmF0aXZlIFdvcmtzCisgICAgICAgICAgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAorICAgICAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMgZnJvbSB0aGUgU291cmNlIGZvcm0gb2YgdGhlIFdvcmssCisgICAgICAgICAgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QgcGVydGFpbiB0byBhbnkgcGFydCBvZgorICAgICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKKworICAgICAgKGQpIElmIHRoZSBXb3JrIGluY2x1ZGVzIGEgIk5PVElDRSIgdGV4dCBmaWxlIGFzIHBhcnQgb2YgaXRzCisgICAgICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUgbXVzdAorICAgICAgICAgIGluY2x1ZGUgYSByZWFkYWJsZSBjb3B5IG9mIHRoZSBhdHRyaWJ1dGlvbiBub3RpY2VzIGNvbnRhaW5lZAorICAgICAgICAgIHdpdGhpbiBzdWNoIE5PVElDRSBmaWxlLCBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdAorICAgICAgICAgIHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0IG9uZQorICAgICAgICAgIG9mIHRoZSBmb2xsb3dpbmcgcGxhY2VzOiB3aXRoaW4gYSBOT1RJQ0UgdGV4dCBmaWxlIGRpc3RyaWJ1dGVkCisgICAgICAgICAgYXMgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgd2l0aGluIHRoZSBTb3VyY2UgZm9ybSBvcgorICAgICAgICAgIGRvY3VtZW50YXRpb24sIGlmIHByb3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAorICAgICAgICAgIHdpdGhpbiBhIGRpc3BsYXkgZ2VuZXJhdGVkIGJ5IHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpZiBhbmQKKyAgICAgICAgICB3aGVyZXZlciBzdWNoIHRoaXJkLXBhcnR5IG5vdGljZXMgbm9ybWFsbHkgYXBwZWFyLiBUaGUgY29udGVudHMKKyAgICAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCisgICAgICAgICAgZG8gbm90IG1vZGlmeSB0aGUgTGljZW5zZS4gWW91IG1heSBhZGQgWW91ciBvd24gYXR0cmlidXRpb24KKyAgICAgICAgICBub3RpY2VzIHdpdGhpbiBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsb25nc2lkZQorICAgICAgICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3JrLCBwcm92aWRlZAorICAgICAgICAgIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGF0dHJpYnV0aW9uIG5vdGljZXMgY2Fubm90IGJlIGNvbnN0cnVlZAorICAgICAgICAgIGFzIG1vZGlmeWluZyB0aGUgTGljZW5zZS4KKworICAgICAgWW91IG1heSBhZGQgWW91ciBvd24gY29weXJpZ2h0IHN0YXRlbWVudCB0byBZb3VyIG1vZGlmaWNhdGlvbnMgYW5kCisgICAgICBtYXkgcHJvdmlkZSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCBsaWNlbnNlIHRlcm1zIGFuZCBjb25kaXRpb25zCisgICAgICBmb3IgdXNlLCByZXByb2R1Y3Rpb24sIG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCisgICAgICBmb3IgYW55IHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBhcyBhIHdob2xlLCBwcm92aWRlZCBZb3VyIHVzZSwKKyAgICAgIHJlcHJvZHVjdGlvbiwgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgV29yayBvdGhlcndpc2UgY29tcGxpZXMgd2l0aAorICAgICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4KKworICAgNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3MgWW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAorICAgICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCisgICAgICBieSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1zIG9yIGNvbmRpdGlvbnMuCisgICAgICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5CisgICAgICB0aGUgdGVybXMgb2YgYW55IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAorICAgICAgd2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25zLgorCisgICA2LiBUcmFkZW1hcmtzLiBUaGlzIExpY2Vuc2UgZG9lcyBub3QgZ3JhbnQgcGVybWlzc2lvbiB0byB1c2UgdGhlIHRyYWRlCisgICAgICBuYW1lcywgdHJhZGVtYXJrcywgc2VydmljZSBtYXJrcywgb3IgcHJvZHVjdCBuYW1lcyBvZiB0aGUgTGljZW5zb3IsCisgICAgICBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVzY3JpYmluZyB0aGUKKyAgICAgIG9yaWdpbiBvZiB0aGUgV29yayBhbmQgcmVwcm9kdWNpbmcgdGhlIGNvbnRlbnQgb2YgdGhlIE5PVElDRSBmaWxlLgorCisgICA3LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKKyAgICAgIGFncmVlZCB0byBpbiB3cml0aW5nLCBMaWNlbnNvciBwcm92aWRlcyB0aGUgV29yayAoYW5kIGVhY2gKKyAgICAgIENvbnRyaWJ1dG9yIHByb3ZpZGVzIGl0cyBDb250cmlidXRpb25zKSBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisgICAgICBpbXBsaWVkLCBpbmNsdWRpbmcsIHdpdGhvdXQgbGltaXRhdGlvbiwgYW55IHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucworICAgICAgb2YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwgb3IgRklUTkVTUyBGT1IgQQorICAgICAgUEFSVElDVUxBUiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCisgICAgICBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgb3IgcmVkaXN0cmlidXRpbmcgdGhlIFdvcmsgYW5kIGFzc3VtZSBhbnkKKyAgICAgIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBZb3VyIGV4ZXJjaXNlIG9mIHBlcm1pc3Npb25zIHVuZGVyIHRoaXMgTGljZW5zZS4KKworICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCisgICAgICB3aGV0aGVyIGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwKKyAgICAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVyYXRlIGFuZCBncm9zc2x5CisgICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQorICAgICAgbGlhYmxlIHRvIFlvdSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAorICAgICAgaW5jaWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBhCisgICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCisgICAgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCisgICAgICB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAorICAgICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250cmlidXRvcgorICAgICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLgorCisgICA5LiBBY2NlcHRpbmcgV2FycmFudHkgb3IgQWRkaXRpb25hbCBMaWFiaWxpdHkuIFdoaWxlIHJlZGlzdHJpYnV0aW5nCisgICAgICB0aGUgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIFlvdSBtYXkgY2hvb3NlIHRvIG9mZmVyLAorICAgICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKKyAgICAgIG9yIG90aGVyIGxpYWJpbGl0eSBvYmxpZ2F0aW9ucyBhbmQvb3IgcmlnaHRzIGNvbnNpc3RlbnQgd2l0aCB0aGlzCisgICAgICBMaWNlbnNlLiBIb3dldmVyLCBpbiBhY2NlcHRpbmcgc3VjaCBvYmxpZ2F0aW9ucywgWW91IG1heSBhY3Qgb25seQorICAgICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxpdHksIG5vdCBvbiBiZWhhbGYKKyAgICAgIG9mIGFueSBvdGhlciBDb250cmlidXRvciwgYW5kIG9ubHkgaWYgWW91IGFncmVlIHRvIGluZGVtbmlmeSwKKyAgICAgIGRlZmVuZCwgYW5kIGhvbGQgZWFjaCBDb250cmlidXRvciBoYXJtbGVzcyBmb3IgYW55IGxpYWJpbGl0eQorICAgICAgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgorICAgICAgb2YgeW91ciBhY2NlcHRpbmcgYW55IHN1Y2ggd2FycmFudHkgb3IgYWRkaXRpb25hbCBsaWFiaWxpdHkuCisKKyAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUworCisgICBBUFBFTkRJWDogSG93IHRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmsuCisKKyAgICAgIFRvIGFwcGx5IHRoZSBBcGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCisgICAgICBib2lsZXJwbGF0ZSBub3RpY2UsIHdpdGggdGhlIGZpZWxkcyBlbmNsb3NlZCBieSBicmFja2V0cyAiW10iCisgICAgICByZXBsYWNlZCB3aXRoIHlvdXIgb3duIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uLiAoRG9uJ3QgaW5jbHVkZQorICAgICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNsb3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKKyAgICAgIGNvbW1lbnQgc3ludGF4IGZvciB0aGUgZmlsZSBmb3JtYXQuIFdlIGFsc28gcmVjb21tZW5kIHRoYXQgYQorICAgICAgZmlsZSBvciBjbGFzcyBuYW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBwdXJwb3NlIGJlIGluY2x1ZGVkIG9uIHRoZQorICAgICAgc2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCisgICAgICBpZGVudGlmaWNhdGlvbiB3aXRoaW4gdGhpcmQtcGFydHkgYXJjaGl2ZXMuCisKKyAgIENvcHlyaWdodCBbeXl5eV0gW25hbWUgb2YgY29weXJpZ2h0IG93bmVyXQorCisgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL05PVElDRS50eHQgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvTk9USUNFLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43M2M0NjM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL05PVElDRS50eHQKQEAgLTAsMCArMSw2IEBACitOT1RJQ0UNCisNCitUaGlzIHNvZnR3YXJlIGNvbnNpc3RzIG9mIHZvbHVudGFyeSBjb250cmlidXRpb25zIG1hZGUgYnkgbWFueQ0KK2luZGl2aWR1YWxzIG9uIGJlaGFsZiBvZiB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gYW5kIHdhcyANCitvcmlnaW5hbGx5IGJhc2VkLCBpbiBwYXJ0LCBvbiBwdWJsaWMgZG9tYWluIHNvZnR3YXJlIHdyaXR0ZW4gYnkgdGhlIA0KK09rbGFob21hIERlcGFydG1lbnQgb2YgRW52aXJvbm1lbnRhbCBRdWFsaXR5LCBPa2xhaG9tYSBDaXR5IE9LIFVTLg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9OZXh1cy5zbG4gYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvTmV4dXMuc2xuCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyNmFkM2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvTmV4dXMuc2xuCkBAIC0wLDAgKzEsNDggQEAKK01pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIFNvbHV0aW9uIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDguMDANCitQcm9qZWN0KCJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gIkNvcmUiLCAiQ29yZVxDb3JlLmNzcHJvaiIsICJ7N0M4Q0FGRDQtMUU0NS00MUI0LTk5NjMtRjUxMTk5QjEyRUE3fSINCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KKwlFbmRQcm9qZWN0U2VjdGlvbg0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gIlRlc3QiLCAiVGVzdFxUZXN0LmNzcHJvaiIsICJ7QzUzM0ZGQUEtQ0IyQi00MENELUIzQzItNzczOTRFNEQ5MjIyfSINCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KKwkJezdDOENBRkQ0LTFFNDUtNDFCNC05OTYzLUY1MTE5OUIxMkVBN30gPSB7N0M4Q0FGRDQtMUU0NS00MUI0LTk5NjMtRjUxMTk5QjEyRUE3fQ0KKwlFbmRQcm9qZWN0U2VjdGlvbg0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gIkV4dHJhcyIsICJFeHRyYXNcRXh0cmFzLmNzcHJvaiIsICJ7NzkzMUNBQ0QtMEU3My00REQyLUEzNzMtRkY2QTAxQ0U2MTg2fSINCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KKwlFbmRQcm9qZWN0U2VjdGlvbg0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gIldlYiIsICJodHRwOi8vbG9jYWxob3N0L05leHVzL1dlYi5jc3Byb2oiLCAiezJCRDdDREUwLTAxRjctNENDNS05QUU5LTJGOTQ3MEZCNzAwN30iDQorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorR2xvYmFsDQorCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Db25maWd1cmF0aW9uKSA9IHByZVNvbHV0aW9uDQorCQlEZWJ1ZyA9IERlYnVnDQorCQlSZWxlYXNlID0gUmVsZWFzZQ0KKwlFbmRHbG9iYWxTZWN0aW9uDQorCUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb24pID0gcG9zdFNvbHV0aW9uDQorCQl7N0M4Q0FGRDQtMUU0NS00MUI0LTk5NjMtRjUxMTk5QjEyRUE3fS5EZWJ1Zy5BY3RpdmVDZmcgPSBEZWJ1Z3wuTkVUDQorCQl7N0M4Q0FGRDQtMUU0NS00MUI0LTk5NjMtRjUxMTk5QjEyRUE3fS5EZWJ1Zy5CdWlsZC4wID0gRGVidWd8Lk5FVA0KKwkJezdDOENBRkQ0LTFFNDUtNDFCNC05OTYzLUY1MTE5OUIxMkVBN30uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfC5ORVQNCisJCXs3QzhDQUZENC0xRTQ1LTQxQjQtOTk2My1GNTExOTlCMTJFQTd9LlJlbGVhc2UuQnVpbGQuMCA9IFJlbGVhc2V8Lk5FVA0KKwkJe0M1MzNGRkFBLUNCMkItNDBDRC1CM0MyLTc3Mzk0RTREOTIyMn0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8Lk5FVA0KKwkJe0M1MzNGRkFBLUNCMkItNDBDRC1CM0MyLTc3Mzk0RTREOTIyMn0uRGVidWcuQnVpbGQuMCA9IERlYnVnfC5ORVQNCisJCXtDNTMzRkZBQS1DQjJCLTQwQ0QtQjNDMi03NzM5NEU0RDkyMjJ9LlJlbGVhc2UuQWN0aXZlQ2ZnID0gUmVsZWFzZXwuTkVUDQorCQl7QzUzM0ZGQUEtQ0IyQi00MENELUIzQzItNzczOTRFNEQ5MjIyfS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfC5ORVQNCisJCXs3OTMxQ0FDRC0wRTczLTRERDItQTM3My1GRjZBMDFDRTYxODZ9LkRlYnVnLkFjdGl2ZUNmZyA9IERlYnVnfC5ORVQNCisJCXs3OTMxQ0FDRC0wRTczLTRERDItQTM3My1GRjZBMDFDRTYxODZ9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3wuTkVUDQorCQl7NzkzMUNBQ0QtMEU3My00REQyLUEzNzMtRkY2QTAxQ0U2MTg2fS5SZWxlYXNlLkFjdGl2ZUNmZyA9IFJlbGVhc2V8Lk5FVA0KKwkJezc5MzFDQUNELTBFNzMtNEREMi1BMzczLUZGNkEwMUNFNjE4Nn0uUmVsZWFzZS5CdWlsZC4wID0gUmVsZWFzZXwuTkVUDQorCQl7MkJEN0NERTAtMDFGNy00Q0M1LTlBRTktMkY5NDcwRkI3MDA3fS5EZWJ1Zy5BY3RpdmVDZmcgPSBEZWJ1Z3wuTkVUDQorCQl7MkJEN0NERTAtMDFGNy00Q0M1LTlBRTktMkY5NDcwRkI3MDA3fS5EZWJ1Zy5CdWlsZC4wID0gRGVidWd8Lk5FVA0KKwkJezJCRDdDREUwLTAxRjctNENDNS05QUU5LTJGOTQ3MEZCNzAwN30uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfC5ORVQNCisJCXsyQkQ3Q0RFMC0wMUY3LTRDQzUtOUFFOS0yRjk0NzBGQjcwMDd9LlJlbGVhc2UuQnVpbGQuMCA9IFJlbGVhc2V8Lk5FVA0KKwlFbmRHbG9iYWxTZWN0aW9uDQorCUdsb2JhbFNlY3Rpb24oU29sdXRpb25JdGVtcykgPSBwb3N0U29sdXRpb24NCisJRW5kR2xvYmFsU2VjdGlvbg0KKwlHbG9iYWxTZWN0aW9uKEV4dGVuc2liaWxpdHlHbG9iYWxzKSA9IHBvc3RTb2x1dGlvbg0KKwlFbmRHbG9iYWxTZWN0aW9uDQorCUdsb2JhbFNlY3Rpb24oRXh0ZW5zaWJpbGl0eUFkZElucykgPSBwb3N0U29sdXRpb24NCisJRW5kR2xvYmFsU2VjdGlvbg0KK0VuZEdsb2JhbA0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L0Fzc2VtYmx5SW5mby5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L0Fzc2VtYmx5SW5mby5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWFmOTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1Rlc3QvQXNzZW1ibHlJbmZvLmNzCkBAIC0wLDAgKzEsNTYgQEAKK3VzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOw0KKy8vDQorLy8gR2VuZXJhbCBJbmZvcm1hdGlvbiBhYm91dCBhbiBhc3NlbWJseSBpcyBjb250cm9sbGVkIHRocm91Z2ggdGhlIGZvbGxvd2luZyANCisvLyBzZXQgb2YgYXR0cmlidXRlcy4gQ2hhbmdlIHRoZXNlIGF0dHJpYnV0ZSB2YWx1ZXMgdG8gbW9kaWZ5IHRoZSBpbmZvcm1hdGlvbg0KKy8vIGFzc29jaWF0ZWQgd2l0aCBhbiBhc3NlbWJseS4NCisvLw0KK1thc3NlbWJseSA6IEFzc2VtYmx5VGl0bGUoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5RGVzY3JpcHRpb24oIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5Q29uZmlndXJhdGlvbigiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDb21wYW55KCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseVByb2R1Y3QoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5Q29weXJpZ2h0KCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseVRyYWRlbWFyaygiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDdWx0dXJlKCIiKV0NCisNCisvLw0KKy8vIFZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGFuIGFzc2VtYmx5IGNvbnNpc3RzIG9mIHRoZSBmb2xsb3dpbmcgZm91ciB2YWx1ZXM6DQorLy8NCisvLyAgICAgIE1ham9yIFZlcnNpb24NCisvLyAgICAgIE1pbm9yIFZlcnNpb24gDQorLy8gICAgICBCdWlsZCBOdW1iZXINCisvLyAgICAgIFJldmlzaW9uDQorLy8NCisvLyBZb3UgY2FuIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgb3IgeW91IGNhbiBkZWZhdWx0IHRoZSBSZXZpc2lvbiBhbmQgQnVpbGQgTnVtYmVycyANCisvLyBieSB1c2luZyB0aGUgJyonIGFzIHNob3duIGJlbG93Og0KKw0KK1thc3NlbWJseSA6IEFzc2VtYmx5VmVyc2lvbigiMS4wLioiKV0NCisNCisvLw0KKy8vIEluIG9yZGVyIHRvIHNpZ24geW91ciBhc3NlbWJseSB5b3UgbXVzdCBzcGVjaWZ5IGEga2V5IHRvIHVzZS4gUmVmZXIgdG8gdGhlIA0KKy8vIE1pY3Jvc29mdCAuTkVUIEZyYW1ld29yayBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGFzc2VtYmx5IHNpZ25pbmcuDQorLy8NCisvLyBVc2UgdGhlIGF0dHJpYnV0ZXMgYmVsb3cgdG8gY29udHJvbCB3aGljaCBrZXkgaXMgdXNlZCBmb3Igc2lnbmluZy4gDQorLy8NCisvLyBOb3RlczogDQorLy8gICAoKikgSWYgbm8ga2V5IGlzIHNwZWNpZmllZCwgdGhlIGFzc2VtYmx5IGlzIG5vdCBzaWduZWQuDQorLy8gICAoKikgS2V5TmFtZSByZWZlcnMgdG8gYSBrZXkgdGhhdCBoYXMgYmVlbiBpbnN0YWxsZWQgaW4gdGhlIENyeXB0byBTZXJ2aWNlDQorLy8gICAgICAgUHJvdmlkZXIgKENTUCkgb24geW91ciBtYWNoaW5lLiBLZXlGaWxlIHJlZmVycyB0byBhIGZpbGUgd2hpY2ggY29udGFpbnMNCisvLyAgICAgICBhIGtleS4NCisvLyAgICgqKSBJZiB0aGUgS2V5RmlsZSBhbmQgdGhlIEtleU5hbWUgdmFsdWVzIGFyZSBib3RoIHNwZWNpZmllZCwgdGhlIA0KKy8vICAgICAgIGZvbGxvd2luZyBwcm9jZXNzaW5nIG9jY3VyczoNCisvLyAgICAgICAoMSkgSWYgdGhlIEtleU5hbWUgY2FuIGJlIGZvdW5kIGluIHRoZSBDU1AsIHRoYXQga2V5IGlzIHVzZWQuDQorLy8gICAgICAgKDIpIElmIHRoZSBLZXlOYW1lIGRvZXMgbm90IGV4aXN0IGFuZCB0aGUgS2V5RmlsZSBkb2VzIGV4aXN0LCB0aGUga2V5IA0KKy8vICAgICAgICAgICBpbiB0aGUgS2V5RmlsZSBpcyBpbnN0YWxsZWQgaW50byB0aGUgQ1NQIGFuZCB1c2VkLg0KKy8vICAgKCopIEluIG9yZGVyIHRvIGNyZWF0ZSBhIEtleUZpbGUsIHlvdSBjYW4gdXNlIHRoZSBzbi5leGUgKFN0cm9uZyBOYW1lKSB1dGlsaXR5Lg0KKy8vICAgICAgIFdoZW4gc3BlY2lmeWluZyB0aGUgS2V5RmlsZSwgdGhlIGxvY2F0aW9uIG9mIHRoZSBLZXlGaWxlIHNob3VsZCBiZQ0KKy8vICAgICAgIHJlbGF0aXZlIHRvIHRoZSBwcm9qZWN0IG91dHB1dCBkaXJlY3Rvcnkgd2hpY2ggaXMNCisvLyAgICAgICAlUHJvamVjdCBEaXJlY3RvcnklXG9ialw8Y29uZmlndXJhdGlvbj4uIEZvciBleGFtcGxlLCBpZiB5b3VyIEtleUZpbGUgaXMNCisvLyAgICAgICBsb2NhdGVkIGluIHRoZSBwcm9qZWN0IGRpcmVjdG9yeSwgeW91IHdvdWxkIHNwZWNpZnkgdGhlIEFzc2VtYmx5S2V5RmlsZSANCisvLyAgICAgICBhdHRyaWJ1dGUgYXMgW2Fzc2VtYmx5OiBBc3NlbWJseUtleUZpbGUoIi4uXFwuLlxcbXlrZXkuc25rIildDQorLy8gICAoKikgRGVsYXkgU2lnbmluZyBpcyBhbiBhZHZhbmNlZCBvcHRpb24gLSBzZWUgdGhlIE1pY3Jvc29mdCAuTkVUIEZyYW1ld29yaw0KKy8vICAgICAgIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcy4NCisvLw0KK1thc3NlbWJseSA6IEFzc2VtYmx5RGVsYXlTaWduKGZhbHNlKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseUtleUZpbGUoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5S2V5TmFtZSgiIildClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1Rlc3QvQmFzZU5leHVzVGVzdC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L0Jhc2VOZXh1c1Rlc3QuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTI2YzRhNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L0Jhc2VOZXh1c1Rlc3QuY3MKQEAgLTAsMCArMSwzMzAgQEAKKy8qDQorICogQ29weXJpZ2h0IDIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyAqIA0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKiANCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqIA0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8NCit1c2luZyBTeXN0ZW07DQordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KK3VzaW5nIFN5c3RlbS5UZXh0Ow0KK3VzaW5nIEFnaWxpdHkuQ29yZTsNCit1c2luZyBBZ2lsaXR5LkV4dHJhcy5TcHJpbmc7DQordXNpbmcgTmV4dXMuQ29yZS5IZWxwZXJzOw0KK3VzaW5nIE5Vbml0LkZyYW1ld29yazsNCit1c2luZyBTcHJpbmcuQ29udGV4dDsNCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gUHJvdmlkZSBiYXNlIFNldFVwIG1ldGhvZCBhbmQgY29udmVuaWVuY2UgbWV0aG9kcyANCisJLy8vIGZvciB0ZXN0cyB0aGF0IHVzZSBhIElSZXF1ZXN0Q2F0YWxvZy4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlbVGVzdEZpeHR1cmVdDQorCXB1YmxpYyBjbGFzcyBDYXRhbG9nQmFzZVRlc3QNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENhdGFsb2cgaW5zdGFuY2UgdGhhdCB0ZXN0cyBjYW4gdXNlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByb3RlY3RlZCBJUmVxdWVzdENhdGFsb2cgY2F0YWxvZzsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTZXR1cCBjYXRhbG9nIGJldHdlZW4gdGVzdHMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJW1NldFVwXQ0KKwkJcHVibGljIHZpcnR1YWwgdm9pZCBTZXRVcCgpDQorCQl7DQorCQkJSUFwcGxpY2F0aW9uQ29udGV4dCBmYWN0b3J5ID0gT2JqZWN0cy5GYWN0b3J5KCk7DQorCQkJY2F0YWxvZyA9IGZhY3RvcnkuR2V0T2JqZWN0KCJDYXRhbG9nIikgYXMgSVJlcXVlc3RDYXRhbG9nOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEV4ZXJjaXNlIFNldHVwIG1ldGhvZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIEFzc2VydFNldFVwKCkNCisJCXsNCisJCQlBc3NlcnQuSXNUcnVlKGNhdGFsb2cgIT0gbnVsbCwgIkV4cGVjdGVkIG5vbi1udWxsIGNhdGFsb2cuIik7DQorCQl9DQorDQorCQkjcmVnaW9uIElSZXF1ZXN0Q29udGV4dCB0ZXN0cw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIERldGVybWluZSBpZiB0aGUgY29udGV4dCBjb250YWlucyBlYWNoIGtleSBpbiBrZXlzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+Q29udGV4dCB0byBwcm9jZXNzPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ia2V5cyI+S2V5cyB0byB2ZXJpZnk8L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPlRydWUgaWYgY29udGFjdCBjb250YWlucyBlYWNoIGtleSBpbiBrZXlzPC9yZXR1cm5zPg0KKwkJcHJvdGVjdGVkIGJvb2wgQ29udGFpbnNLZXlzKElDb250ZXh0IGNvbnRleHQsIHN0cmluZ1tdIGtleXMpDQorCQl7DQorCQkJYm9vbCBmb3VuZCA9IHRydWU7DQorCQkJZm9yZWFjaCAoc3RyaW5nIGtleSBpbiBrZXlzKQ0KKwkJCXsNCisJCQkJZm91bmQgPSBmb3VuZCAmJiBjb250ZXh0LkNvbnRhaW5zKGtleSk7DQorCQkJfQ0KKwkJCXJldHVybiBmb3VuZDsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBEZXRlcm1pbmUgaWYgdGhlIENyaXRlcmlhIGZvciBjb250ZXh0IGNvbnRhaW5zIGVhY2gga2V5IGluIGtleXMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5Db250ZXh0IHRvIHByb2Nlc3M8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJrZXlzIj5LZXlzIHRvIHZlcmlmeTwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+VHJ1ZSBpZiBDcml0ZXJpYSBmb3IgY29udGFjdCBjb250YWlucyBlYWNoIGtleSBpbiBrZXlzPC9yZXR1cm5zPg0KKwkJcHVibGljIGJvb2wgQ29udGFpbnNDcml0ZXJpYUtleXMoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQsIHN0cmluZ1tdIGtleXMpDQorCQl7DQorCQkJaWYgKCFjb250ZXh0Lkhhc0NyaXRlcmlhKCkpIHJldHVybiBmYWxzZTsNCisNCisJCQlJRGljdGlvbmFyeSBjcml0ZXJpYSA9IGNvbnRleHQuQ3JpdGVyaWE7DQorCQkJYm9vbCBmb3VuZCA9IHRydWU7DQorCQkJZm9yZWFjaCAoc3RyaW5nIHYgaW4ga2V5cykNCisJCQl7DQorCQkJCWZvdW5kID0gZm91bmQgJiYgY3JpdGVyaWEuQ29udGFpbnModik7DQorCQkJfQ0KKwkJCXJldHVybiBmb3VuZDsNCisJCX0NCisJCQ0KKwkJcHJvdGVjdGVkIHZvaWQgRmF1bHRUZXh0KEV4Y2VwdGlvbiBmYXVsdCkNCisJCXsNCisJCQlTdHJpbmdCdWlsZGVyIHRleHQgPSBuZXcgU3RyaW5nQnVpbGRlcigiWyIpOw0KKwkJCXRleHQuQXBwZW5kKGZhdWx0Lk1lc3NhZ2UpOw0KKwkJCXRleHQuQXBwZW5kKCJdICIpOw0KKwkJCXRleHQuQXBwZW5kKGZhdWx0LlNvdXJjZSk7DQorCQkJdGV4dC5BcHBlbmQoZmF1bHQuU3RhY2tUcmFjZSk7DQorCQkJQXNzZXJ0LkZhaWwodGV4dC5Ub1N0cmluZygpKTsJCQkNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb252ZW5pZW5jZSBtZXRob2QgdG8gY29uZmlybSB0aGF0IG5vIEV4Y2VwdGlvbiB3YXMgY2F1Z2h0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+Q29udGV4dCB1bmRlciB0ZXN0PC9wYXJhbT4NCisJCS8vLyANCisJCXB1YmxpYyB2b2lkIEFzc2VydE5vRmF1bHQoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJaWYgKGNvbnRleHQuSGFzRmF1bHQpDQorCQkJew0KKwkJCQlGYXVsdFRleHQoY29udGV4dC5GYXVsdCk7DQorCQkJfQ0KKwkJfQ0KKwkJDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQ29udmVuaWVuY2UgbWV0aG9kIHRvIGNvbmZpcm0gdGhhdCBubyBFeGNlcHRpb24gd2FzIGNhdWdodC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImhlbHBlciI+SGVscGVyIHVuZGVyIHRlc3Q8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHVibGljIHZvaWQgQXNzZXJ0Tm9GYXVsdChJVmlld0hlbHBlciBoZWxwZXIgKQ0KKwkJew0KKwkJCWlmIChoZWxwZXIuSGFzRmF1bHQpIEZhdWx0VGV4dChoZWxwZXIuRmF1bHQpIDsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb252ZW5pZW5jZSBtZXRob2QgdG8gY29uZmlybSANCisJCS8vLyB0aGF0IHRoZXJlIGFyZSBubyBhbGVydHMgb3IgZmF1bHQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5Db250ZXh0IHVuZGVyIHRlc3Q8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHVibGljIHZvaWQgQXNzZXJ0Tm9taW5hbChJUmVxdWVzdENvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQlBc3NlcnROb0ZhdWx0KGNvbnRleHQpOw0KKwkJCWJvb2wgaGFzQWxlcnRzID0gY29udGV4dC5IYXNBbGVydHM7DQorCQkJaWYgKGhhc0FsZXJ0cykNCisJCQl7DQorCQkJCS8vIFRPRE86IFVzZSBuZXcgVGV4dE9ubHkgbWV0aG9kIGhlcmUuDQorCQkJCVN0cmluZ0J1aWxkZXIgb3V0ZXIgPSBuZXcgU3RyaW5nQnVpbGRlcigpOw0KKwkJCQlJRGljdGlvbmFyeSBzdG9yZSA9IGNvbnRleHQuQWxlcnRzOw0KKwkJCQlJQ29sbGVjdGlvbiBrZXlzID0gc3RvcmUuS2V5czsNCisJCQkJZm9yZWFjaCAoc3RyaW5nIGtleSBpbiBrZXlzKQ0KKwkJCQl7DQorCQkJCQlTdHJpbmdCdWlsZGVyIGlubmVyID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsNCisJCQkJCWlubmVyLkFwcGVuZChrZXkpOw0KKwkJCQkJaW5uZXIuQXBwZW5kKCI6ICIpOw0KKwkJCQkJSUxpc3QgbWVzc2FnZXMgPSBzdG9yZVtrZXldIGFzIElMaXN0Ow0KKwkJCQkJZm9yZWFjaCAoc3RyaW5nIG1lc3NhZ2UgaW4gbWVzc2FnZXMpDQorCQkJCQl7DQorCQkJCQkJaW5uZXIuQXBwZW5kKG1lc3NhZ2UpOw0KKwkJCQkJCWlubmVyLkFwcGVuZCgiOyIpOw0KKwkJCQkJfQ0KKwkJCQkJb3V0ZXIuQXBwZW5kKGlubmVyLlRvU3RyaW5nKCkpOw0KKwkJCQkJb3V0ZXIuQXBwZW5kKCIvbiIpOw0KKwkJCQl9DQorCQkJCUFzc2VydC5GYWlsKG91dGVyLlRvU3RyaW5nKCkpOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb252ZW5pZW5jZSBtZXRob2QgdG8gY29uZmlybSANCisJCS8vLyB0aGF0IHRoZXJlIGFyZSBubyBhbGVydHMgb3IgZmF1bHQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJoZWxwZXIiPkhlbHBlciB1bmRlciB0ZXN0PC9wYXJhbT4NCisJCS8vLyANCisJCXB1YmxpYyB2b2lkIEFzc2VydE5vbWluYWwoSVZpZXdIZWxwZXIgaGVscGVyKQ0KKwkJew0KKwkJCUFzc2VydE5vRmF1bHQoaGVscGVyKTsgDQorDQorCQkJYm9vbCBoYXNBbGVydHMgPSBoZWxwZXIuSGFzQWxlcnRzOw0KKwkJCWlmIChoYXNBbGVydHMpDQorCQkJew0KKwkJCQlBc3NlcnQuRmFpbChoZWxwZXIuQWxlcnRzVGV4dCk7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENvbmZpcm0gdGhhdCB0aGUgdmFsdWUgaXMgc3RvcmVkIGluIHRoZSBjb250ZXh0IHVuZGVyIHRoZSBrZXkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5UaGUgY29udGV4dCB0byBjaGVjazwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImtleSI+VGhlIGtleTwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9InZhbHVlIj5UaGUgdmFsdWU8L3BhcmFtPg0KKwkJcHJvdGVjdGVkIHZvaWQgQXNzZXJ0S2V5KElEaWN0aW9uYXJ5IGNvbnRleHQsIHN0cmluZyBrZXksIHN0cmluZyB2YWx1ZSkNCisJCXsNCisJCQlBc3NlcnQuSXNOb3ROdWxsKHZhbHVlLCAiVmFsdWUgaXMgbnVsbCIpOw0KKwkJCUFzc2VydC5Jc05vdE51bGwoa2V5LCAiS2V5IGlzIG51bGwiKTsNCisJCQlBc3NlcnQuSXNUcnVlKHZhbHVlLkVxdWFscyhjb250ZXh0W2tleV0pLCAiS2V5OlZhbHVlIG1pc21hdGNoOiAiICsga2V5ICsgIjoiICsgdmFsdWUpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENvbmZpcm0gdGhhdCB0aGUgZ2l2ZW4gY29udGV4dCBjb250YWlucyB0aGUgZ2l2ZW4ga2V5cy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRleHQiPlRoZSBjb250ZXh0IHRvIGNoZWNrPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ia2V5cyI+VGhlIGtleXMgdG8gY2hlY2s8L3BhcmFtPg0KKwkJcHJvdGVjdGVkIHZvaWQgQXNzZXJ0S2V5cyhJUmVxdWVzdENvbnRleHQgY29udGV4dCwgc3RyaW5nW10ga2V5cykNCisJCXsNCisJCQlBc3NlcnQuSXNUcnVlKENvbnRhaW5zS2V5cyhjb250ZXh0LCBrZXlzKSwgIk1pc3Npbmcga2V5cy4iKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb25maXJtIHRoYXQgdGhlIGNvbnRleHQgY29udGFpbnMgdGhlIGtleXMsIA0KKwkJLy8vIHRoYXQgZWFjaCBrZXkgcmVwcmVzZW50cyBhbiBub24tbnVsbCBJTGlzdCwgDQorCQkvLy8gYW5kIHRoYXQgZWFjaCBJTGlzdCBpcyBub3QgZW1wdHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5UaGUgY29udGV4dCB0byBjaGVjazwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImtleXMiPlRoZSBsaXN0IGtleXM8L3BhcmFtPg0KKwkJcHJvdGVjdGVkIHZvaWQgQXNzZXJ0TGlzdEtleXMoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQsIHN0cmluZ1tdIGtleXMpDQorCQl7DQorCQkJQXNzZXJ0S2V5cyhjb250ZXh0LCBrZXlzKTsNCisJCQlmb3JlYWNoIChzdHJpbmcga2V5IGluIGtleXMpDQorCQkJew0KKwkJCQlJTGlzdCBsaXN0ID0gY29udGV4dFtrZXldIGFzIElMaXN0Ow0KKwkJCQlBc3NlcnQuSXNOb3ROdWxsKGxpc3QsICJMaXN0IGlzIG51bGw6ICIgKyBrZXkpOw0KKwkJCQlBc3NlcnQuSXNUcnVlKGxpc3QuQ291bnQgPiAwLCAiTGlzdCBpcyBlbXB0eSIpOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDYWxsIEFzc2VydExpc3Qoc3RyaW5nLGludCkgd2l0aCBubyBtaW5pbXVtLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iaWQiPjwvcGFyYW0+DQorCQlwcm90ZWN0ZWQgSVJlcXVlc3RDb250ZXh0IEFzc2VydExpc3Qoc3RyaW5nIGlkKQ0KKwkJew0KKwkJCXJldHVybiBBc3NlcnRMaXN0KGlkLCAwKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBFeGVjdXRlIHRoZSBDb21tYW5kIGZvciB0aGUgZ2l2ZW4gaWQsIA0KKwkJLy8vIGFuZCBjb25maXJtIHRoYXQgdGhlIHJldHVybiBzdGF0ZSBpcyBOb21pbmFsLCANCisJCS8vLyBoYXMgYW4gT3V0Y29tZSwgDQorCQkvLy8gdGhhdCB0aGUgT3V0Y29tZSBpcyBhbiBub24tbnVsbCBJTGlzdCwgDQorCQkvLy8gYW5kIHRoYXQgdGhlIElMaXN0IGNvbnRhaW5lcyBhdCBsaXN0IG1pbkNvdW50IGl0ZW1zLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iaWQiPlRoZSBMaXN0IENvbW1hbmQgdG8gY2hlY2s8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJtaW5Db3VudCI+VGhlIG1pbmltdW0gbnVtYmVyIG9mIGl0ZW1zPC9wYXJhbT4NCisJCXByb3RlY3RlZCBJUmVxdWVzdENvbnRleHQgQXNzZXJ0TGlzdChzdHJpbmcgaWQsIGludCBtaW5Db3VudCkNCisJCXsNCisJCQlJUmVxdWVzdENvbnRleHQgY29udGV4dCA9IGNhdGFsb2cuR2V0UmVxdWVzdENvbnRleHQoaWQpOw0KKwkJCWNhdGFsb2cuRXhlY3V0ZVJlcXVlc3QoY29udGV4dCk7DQorCQkJQXNzZXJ0Tm9taW5hbChjb250ZXh0KTsNCisJCQlBc3NlcnQuSXNUcnVlKGNvbnRleHQuSGFzT3V0Y29tZSwgIkV4cGVjdGVkIG91dGNvbWUiKTsNCisJCQlJTGlzdCBsaXN0ID0gY29udGV4dC5PdXRjb21lIGFzIElMaXN0Ow0KKwkJCUFzc2VydC5Jc05vdE51bGwobGlzdCwgIkV4cGVjdGVkIG91dGNvbWUgYXMgSUxpc3QiKTsNCisJCQlBc3NlcnQuSXNUcnVlKGxpc3QuQ291bnQgPj0gbWluQ291bnQsICJFeHBlY3RlZCBsaXN0IGVudHJpZXMiKTsNCisJCQlyZXR1cm4gY29udGV4dDsNCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gZGF0YSBhY2Nlc3MgdGVzdHMNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBWaXJ0dWFsIG1ldGhvZCBmb3IgcG9wdWxhdGluZyBhIGNvbnRleHQgDQorCQkvLy8gZm9yIHVzZSB3aXRoIG90aGVyIHJvdXRpbmUgdGVzdHMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij48L3BhcmFtPg0KKwkJcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBQb3B1bGF0ZShJRGljdGlvbmFyeSBjb250ZXh0KQ0KKwkJew0KKwkJCS8vIG92ZXJyaWRlIHRvIHBvcHVsYXRlIGNvbnRleHQNCisJCQl0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFeGNlcHRpb24oIkNhdGFsb2dCYXNlVGVzdC5Qb3B1bGF0ZSBtdXN0IGJlIG92ZXJyaWRkZW4uIik7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVmlydHVhbCBtZXRob2QgZm9yIHBvcHVsYXRpbmcgYSBjb250ZXh0IA0KKwkJLy8vIGZvciBhbiBpbnNlcnQgdGVzdC4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij48L3BhcmFtPg0KKwkJcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBQb3B1bGF0ZUluc2VydChJRGljdGlvbmFyeSBjb250ZXh0KQ0KKwkJew0KKwkJCVBvcHVsYXRlKGNvbnRleHQpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEluc2VydCBhbmQgdGhlbiBkZWxldGUgYSBuZXcgcmVjb3JkLCANCisJCS8vLyBjYWxsaW5nIHRoZSBQb3B1bGF0ZSBtZXRob2QgdG8gZmlsbCB0aGUgY29udGV4dCB3aXRoIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZXMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJpbnNlcnRJZCI+VGhlICJzYXZlIiBjb21tYW5kIG5hbWU8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJrZXlJZCI+VGhlIG5hbWUgb2YgdGhlIHByaW1hcnkga2V5IGZpZWxkPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ia2V5VmFsdWUiPlRoZSBwcmltYXJ5IGtleSB2YWx1ZSBpbml0aWFsbHkgc2V0IGJ5IFBvcHVsYXRlPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZGVsZXRlSWQiPlRoZSAiZGVsZXRlIiBjb21tYW5kIG5hbWU8L3BhcmFtPg0KKwkJcHJvdGVjdGVkIElSZXF1ZXN0Q29udGV4dCBBc3NlcnRJbnNlcnREZWxldGUoc3RyaW5nIGluc2VydElkLCBzdHJpbmcga2V5SWQsIHN0cmluZyBrZXlWYWx1ZSwgc3RyaW5nIGRlbGV0ZUlkKQ0KKwkJew0KKwkJCUlSZXF1ZXN0Q29udGV4dCBjb250ZXh0ID0gY2F0YWxvZy5HZXRSZXF1ZXN0Q29udGV4dChpbnNlcnRJZCk7DQorCQkJUG9wdWxhdGVJbnNlcnQoY29udGV4dCk7DQorCQkJY29udGV4dFtrZXlJZF0gPSBTdHJpbmcuRW1wdHk7DQorDQorCQkJY2F0YWxvZy5FeGVjdXRlUmVxdWVzdChjb250ZXh0KTsNCisJCQlBc3NlcnROb21pbmFsKGNvbnRleHQpOw0KKwkJCUFzc2VydC5Jc0ZhbHNlKGtleVZhbHVlLkVxdWFscyhjb250ZXh0W2tleUlkXSksICJFeHBlY3RlZCBuZXcgcHJpbWFyeSBrZXkiKTsNCisNCisJCQlJQ29tbWFuZCBkZWxldGUgPSBjYXRhbG9nLkdldENvbW1hbmQoZGVsZXRlSWQpOw0KKwkJCWRlbGV0ZS5FeGVjdXRlKGNvbnRleHQpOw0KKwkJCUFzc2VydE5vbWluYWwoY29udGV4dCk7DQorCQkJcmV0dXJuIGNvbnRleHQ7DQorCQl9DQorDQorCQlwcm90ZWN0ZWQgSVJlcXVlc3RDb250ZXh0IEFzc2VydEVkaXQoc3RyaW5nIGVkaXRJZCwgc3RyaW5nIGtleUlkLCBzdHJpbmcga2V5VmFsdWUsIHN0cmluZ1tdIGtleXMpDQorCQl7DQorCQkJSVJlcXVlc3RDb250ZXh0IGNvbnRleHQgPSBjYXRhbG9nLkdldFJlcXVlc3RDb250ZXh0KGVkaXRJZCk7DQorCQkJY29udGV4dFtrZXlJZF0gPSBrZXlWYWx1ZTsNCisJCQljYXRhbG9nLkV4ZWN1dGVSZXF1ZXN0KGNvbnRleHQpOw0KKwkJCUFzc2VydE5vbWluYWwoY29udGV4dCk7DQorCQkJQXNzZXJ0LklzVHJ1ZShDb250YWluc0tleXMoY29udGV4dCwga2V5cyksICJNaXNzaW5nIGZpZWxkcyIpOw0KKwkJCXJldHVybiBjb250ZXh0Ow0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFVwZGF0ZSB0aGUgZ2l2ZW4gcmVjb3JkICh1c3VhbGx5IHRvIHRoZSBzYW1lIHZhbHVlcykuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJ1cGRhdGVJZCI+VGhlICJzYXZlIiBjb21tYW5kPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ia2V5SWQiPlRoZSBuYW1lIG9mIHRoZSBwcmltYXJ5IGtleTwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImtleVZhbHVlIj5UaGUgdmFsdWUgb2YgdGhlIHByaW1hcnkga2V5PC9wYXJhbT4NCisJCXByb3RlY3RlZCBJUmVxdWVzdENvbnRleHQgQXNzZXJ0VXBkYXRlKHN0cmluZyB1cGRhdGVJZCwgc3RyaW5nIGtleUlkLCBzdHJpbmcga2V5VmFsdWUpDQorCQl7DQorCQkJSVJlcXVlc3RDb250ZXh0IGNvbnRleHQgPSBjYXRhbG9nLkdldFJlcXVlc3RDb250ZXh0KHVwZGF0ZUlkKTsNCisJCQlQb3B1bGF0ZShjb250ZXh0KTsNCisJCQljYXRhbG9nLkV4ZWN1dGVSZXF1ZXN0KGNvbnRleHQpOw0KKwkJCUFzc2VydE5vbWluYWwoY29udGV4dCk7DQorCQkJQXNzZXJ0LklzVHJ1ZShrZXlWYWx1ZS5FcXVhbHMoY29udGV4dFtrZXlJZF0pKTsNCisJCQlyZXR1cm4gY29udGV4dDsNCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9Db21tYW5kcy9MaXN0QWxsLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1Rlc3QvQ29tbWFuZHMvTGlzdEFsbC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Zjk2YWM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1Rlc3QvQ29tbWFuZHMvTGlzdEFsbC5jcwpAQCAtMCwwICsxLDQ4IEBACisvKg0KKyAqIENvcHlyaWdodCAyMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKiANCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KKw0KK25hbWVzcGFjZSBOZXh1cy5Db3JlLkNvbW1hbmRzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBSZXR1cm4gYSBsaXN0IGFzIHRoZSBvdXRjb21lLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gDQorCXB1YmxpYyBjbGFzcyBMaXN0QWxsIDogUmVxdWVzdENvbW1hbmQNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRlc3QgSUQgZm9yIENvbW1hbmQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBMSVNUX0FMTCA9ICJMaXN0QWxsIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBGYWtlIG5hbWUgZm9yIHRlc3QgZGF0YS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcml2YXRlIGNvbnN0IHN0cmluZyBEQVRBID0gImRhdGEiOw0KKw0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgUmVxdWVzdEV4ZWN1dGUoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJLy8gSUxpc3QgbGlzdCA9IE1hcHBlci5HZXQgKCkuUXVlcnlGb3JMaXN0IChJRCwgY29udGV4dCk7DQorCQkJLy8gRmFrZSBpdDoNCisJCQlJTGlzdCBsaXN0ID0gbmV3IEFycmF5TGlzdCgpOw0KKwkJCWxpc3QuQWRkKERBVEEpOw0KKwkJCWNvbnRleHQuT3V0Y29tZSA9IGxpc3Q7DQorCQkJcmV0dXJuIENPTlRJTlVFOw0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L0NvbW1hbmRzL09iamVjdEJ5S2V5LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1Rlc3QvQ29tbWFuZHMvT2JqZWN0QnlLZXkuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTNjNGNjNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L0NvbW1hbmRzL09iamVjdEJ5S2V5LmNzCkBAIC0wLDAgKzEsMjkgQEAKK3VzaW5nIFN5c3RlbTsNCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZS5Db21tYW5kcw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gU2FtcGxlIG1vZGVsIGNvbW1hbmQgdGhhdCBhZGRzIGEgcmVzdWx0IG9iamVjdCBpbnRvIHRoZSBjb250ZXh0IA0KKwkvLy8gaWYgdGhlIGNvcnJlY3Qga2V5IGlzIHBhc3NlZC4NCisJLy8vIDwvc3VtbWFyeT4NCisJcHVibGljIGNsYXNzIE9iamVjdEJ5S2V5IDogUmVxdWVzdENvbW1hbmQNCisJew0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBQS19TT01FVEhJTkcgPSAicGtfc29tZXRoaW5nIjsNCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgUEtfU09NRVRISU5HX1ZBTFVFID0gIjEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OUFCQyI7DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFBLX1NPTUVUSElOR19SRVNVTFQgPSAiU29tZXRoaW5nUmVzdWx0IjsNCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgUEtfU09NRV9EQVRFID0gIlNvbWVEYXRlIjsNCisNCisJCXB1YmxpYyBvdmVycmlkZSBib29sIFJlcXVlc3RFeGVjdXRlKElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KQ0KKwkJew0KKwkJCXN0cmluZyB2YWx1ZSA9IGNvbnRleHRbUEtfU09NRVRISU5HXSBhcyBzdHJpbmc7DQorCQkJLy8gSUxpc3QgbGlzdCA9IE1hcHBlci5HZXQgKCkuUXVlcnlGb3JPYmplY3QgKElELCBrZXkpOw0KKwkJCWlmIChQS19TT01FVEhJTkdfVkFMVUUuRXF1YWxzKHZhbHVlKSkNCisJCQl7DQorCQkJCWNvbnRleHRbUEtfU09NRVRISU5HX1JFU1VMVF0gPSBQS19TT01FVEhJTkdfUkVTVUxUOw0KKwkJCQljb250ZXh0W1BLX1NPTUVfREFURV0gPSBEYXRlVGltZS5Ob3c7DQorCQkJfQ0KKwkJCXJldHVybiBDT05USU5VRTsNCisJCX0NCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9Db250cm9sbGVyVGVzdC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L0NvbnRyb2xsZXJUZXN0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlODgwMTcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9Db250cm9sbGVyVGVzdC5jcwpAQCAtMCwwICsxLDQyIEBACisvKg0KKyAqIENvcHlyaWdodCAyMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKiANCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQordXNpbmcgTmV4dXMuQ29yZS5Db21tYW5kczsNCit1c2luZyBOVW5pdC5GcmFtZXdvcms7DQorDQorbmFtZXNwYWNlIE5leHVzLkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEV4ZXJjaXNlIElSZXF1ZXN0Q2F0YWxvZyBwZXIgW09WUi04XS4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlbVGVzdEZpeHR1cmVdDQorCXB1YmxpYyBjbGFzcyBDYXRhbG9nVGVzdCA6IENhdGFsb2dCYXNlVGVzdA0KKwl7DQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQSBzaW1wbGUgImxpc3QgYWxsIiBjb21tYW5kIHNob3VsZCByZXR1cm4gbm9taW5hbCB3aXRoIGFuIG91dGNvbWUuIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgRXhlY3V0ZVJlcXVlc3QoKQ0KKwkJew0KKwkJCUlSZXF1ZXN0Q29udGV4dCBjb250ZXh0ID0gY2F0YWxvZy5FeGVjdXRlUmVxdWVzdChMaXN0QWxsLkxJU1RfQUxMKTsNCisJCQlBc3NlcnROb21pbmFsKGNvbnRleHQpOw0KKwkJCUFzc2VydC5Jc1RydWUoY29udGV4dC5Jc05vbWluYWwsICJFeHBlY3RlZCBub21pbmFsIHJlc3VsdC4iKTsNCisJCQlBc3NlcnQuSXNUcnVlKGNvbnRleHQuSGFzT3V0Y29tZSwgIkV4cGVjdGVkIG91dGNvbWUgZnJvbSBjb21tYW5kLiIpOw0KKwkJfQ0KKw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L0hlbHBlcnMvVmlld0hlbHBlclRlc3QuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9IZWxwZXJzL1ZpZXdIZWxwZXJUZXN0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliNmE2N2MKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9IZWxwZXJzL1ZpZXdIZWxwZXJUZXN0LmNzCkBAIC0wLDAgKzEsMTI5IEBACisvKg0KKyAqIENvcHlyaWdodCAyMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKiANCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQordXNpbmcgU3lzdGVtOw0KK3VzaW5nIEFnaWxpdHkuQ29yZTsNCit1c2luZyBOZXh1cy5XZWI7DQordXNpbmcgTlVuaXQuRnJhbWV3b3JrOw0KKw0KK25hbWVzcGFjZSBOZXh1cy5Db3JlLkhlbHBlcnMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEV4ZXJjaXNlIG1ldGhvZHMgb2Ygc3RhbmRhcmQgSVZpZXdIZWxwZXIgaW1wbGVtZW50YXRpb24uDQorCS8vLyA8L3N1bW1hcnk+DQorCVtUZXN0Rml4dHVyZV0NCisJcHVibGljIGNsYXNzIFZpZXdIZWxwZXJUZXN0DQorCXsNCisJCXByaXZhdGUgSVZpZXdIZWxwZXIgaGVscGVyOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENyZWF0ZSBhIGNvbW1hbmQgaW4gYmV0d2VlbiB0ZXN0IHJ1bnMuIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCVtTZXRVcF0NCisJCXB1YmxpYyB2b2lkIFNldFVwICgpDQorCQl7DQorCQkJaGVscGVyID0gbmV3IFZpZXdIZWxwZXIgKCk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQW4gZXJyb3IgbWVzc2FnZSB3aWxsIGJlIHJldHVybmVkIHN1cnJvdW5kZWQgYnkgbWFya3VwLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgSHRtbEVycm9yQnVpbGRlciAoKQ0KKwkJew0KKwkJCXN0cmluZyBFUlJPUiA9ICJHbG9iYWwgZXJyb3IhIjsNCisJCQloZWxwZXIuQ29udGV4dC5BZGRFcnJvciAoRVJST1IpOw0KKwkJCXN0cmluZyBlcnJvcnMgPSBWaWV3SGVscGVyLkh0bWxFcnJvckJ1aWxkZXIgKGhlbHBlcik7DQorCQkJQXNzZXJ0LklzTm90TnVsbCAoZXJyb3JzLCAiRXhwZWN0ZWQgbWFya3VwIHN0cmluZy4iKTsNCisJCQlBc3NlcnQuSXNUcnVlIChlcnJvcnMuTGVuZ3RoID4gRVJST1IuTGVuZ3RoKTsNCisJCQlBc3NlcnQuSXNUcnVlIChlcnJvcnMuSW5kZXhPZiAoRVJST1IpID4gMCwgIkV4cGVjdGVkIGVycm9yIHdpdGhpbiBtYXJrdXAuIik7DQorCQl9DQorDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQSBWaWV3SGVscGVyIHdpbGwgaGF2ZSBhIG5vbi1udWxsIENvbnRleHQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJW1Rlc3RdDQorCQlwdWJsaWMgdm9pZCBDb250ZXh0ICgpDQorCQl7DQorCQkJQXNzZXJ0LklzTm90TnVsbCAoaGVscGVyLkNvbnRleHQsICJFeHBlY3RlZCBkZWZhdWx0IENvbnRleHQgaW5zdGFuY2UuIik7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRXJyb3JzIGFkZGVkIHRvIHRoZSB1bmRlcmx5aW5nIENvbnRleHQgcGFzcyB0aHJvdWdoIHRvIFZpZXdIZWxwZXIgRXJyb3JzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgRXJyb3JzICgpDQorCQl7DQorCQkJQXNzZXJ0LklzTnVsbCAoaGVscGVyLkVycm9ycywgIkV4cGVjdGVkIG5vIGVycm9ycyB5ZXQuIik7DQorCQkJSUNvbnRleHQgZXJyb3JzID0gbmV3IENvbnRleHQgKCk7DQorCQkJZXJyb3JzLkFkZCAoIkVSUk9SIiwgIkVycm9yIE1lc3NhZ2UiKTsNCisJCQloZWxwZXIuQ29udGV4dC5FcnJvcnMgPSBlcnJvcnM7DQorCQkJSUNvbnRleHQgX2Vycm9ycyA9IGhlbHBlci5FcnJvcnM7DQorCQkJQXNzZXJ0LklzTm90TnVsbCAoX2Vycm9ycywgIkV4cGVjdGVkIGVycm9ycyB0byBwYXNzIHRocm91Z2guIik7DQorCQkJQXNzZXJ0LklzVHJ1ZSAoX2Vycm9ycy5Db3VudCA9PSAxLCAiRXhwZWNlZCBvbmUgZXJyb3IuIik7DQorCQkJQXNzZXJ0LkFyZUVxdWFsIChlcnJvcnMgWzBdLCBfZXJyb3JzIFswXSk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRXJyb3JzIGFkZGVkIHRvIHRoZSB1bmRlcmx5aW5nIENvbnRleHQgcmVnaXN0ZXIgd2l0aCBIYXNFcnJvcnMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJW1Rlc3RdDQorCQlwdWJsaWMgdm9pZCBIYXNFcnJvcnMgKCkNCisJCXsNCisJCQlBc3NlcnQuSXNGYWxzZSAoaGVscGVyLkhhc0Vycm9ycywgIkV4cGVjdGVkIG5vIGVycm9ycy4iKTsNCisJCQlzdHJpbmcgRVJST1IgPSAiSSBoYXZlIGFuIGVycm9yISI7DQorCQkJaGVscGVyLkNvbnRleHQuQWRkRXJyb3IgKEVSUk9SKTsNCisJCQlBc3NlcnQuSXNUcnVlIChoZWxwZXIuSGFzRXJyb3JzLCAiRXhwZWN0ZWQgdG8gaGF2ZSBlcnJvcnMuIik7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQW4gRXhjZXB0aW9uIGFkZGVkIHRvIHRoZSB1bmRlcmx5aW5nIENvbnRleHQgcGFzc2VzIHRocm91Z2ggdG8gdGhlIFZpZXdIZWxwZXIgRmF1bHQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIHZvaWQgRmF1bHQgKCkNCisJCXsNCisJCQlBc3NlcnQuSXNOdWxsIChoZWxwZXIuRmF1bHQsICJFeHBlY3RlZCBudWxsIGZhdWx0LiIpOw0KKwkJCUV4Y2VwdGlvbiBmYXVsdCA9IG5ldyBFeGNlcHRpb24gKCk7DQorCQkJaGVscGVyLkNvbnRleHQuRmF1bHQgPSBmYXVsdDsNCisJCQlBc3NlcnQuSXNOb3ROdWxsIChoZWxwZXIuRmF1bHQsICJFeHBlY3RlZCBub24tbnVsbCBmYXVsdC4iKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBbiBFeGNlcHRpb24gYWRkZWQgdG8gdGhlIHVuZGVybHlpbmcgQ29udGV4dCByZWdpc3RlcnMgd2l0aCBWaWV3Q29udGV4dCBIYXNGYXVsdC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIEhhc0ZhdWx0ICgpDQorCQl7DQorCQkJQXNzZXJ0LklzRmFsc2UgKGhlbHBlci5IYXNGYXVsdCwgIkV4cGVjdGVkIG5vIGZhdWx0LiIpOw0KKwkJCWhlbHBlci5Db250ZXh0LkZhdWx0ID0gbmV3IEV4Y2VwdGlvbiAoKTsNCisJCQlBc3NlcnQuSXNUcnVlIChoZWxwZXIuSGFzRmF1bHQsICJFeHBlY3RlZCBhIGZhdWx0Iik7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQW4gRXhjZXB0aW9uIG9yIGVycm9yIGFkZGVkIHRvIHRoZSB1bmRlcmx5aW5nIENvbnRleHQgcmVnaXN0ZXJzIHdpdGggSXNOb21pbmFsLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgSXNOb21pbmFsICgpDQorCQl7DQorCQkJQXNzZXJ0LklzVHJ1ZSAoaGVscGVyLklzTm9taW5hbCwgIkV4cGVjdGVkIG5vbWluYWwgc3RhdGUuIik7DQorCQkJaGVscGVyLkNvbnRleHQuQWRkRXJyb3IgKCJZZXQgYW5vdGhlciBlcnJvciBtZXNzYWdlLiIpOw0KKwkJCUFzc2VydC5Jc0ZhbHNlIChoZWxwZXIuSXNOb21pbmFsLCAiRXhwZWN0ZWQgZXJyb3Igc3RhdGUiKTsNCisJCQloZWxwZXIuQ29udGV4dC5GYXVsdCA9IG5ldyBFeGNlcHRpb24gKCk7DQorCQkJQXNzZXJ0LklzVHJ1ZSAoaGVscGVyLkhhc0ZhdWx0LCAiRXhwZWN0ZWQgYSBmYXVsdCIpOw0KKwkJCUFzc2VydC5Jc0ZhbHNlIChoZWxwZXIuSXNOb21pbmFsLCAiRXhwZWN0ZWQgZXJyb3Igc3RhdGUiKTsNCisJCX0NCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9PYmplY3RCeUtleVRlc3QuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9PYmplY3RCeUtleVRlc3QuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGMxNTcyYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L09iamVjdEJ5S2V5VGVzdC5jcwpAQCAtMCwwICsxLDEzNSBAQAordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBOZXh1cy5Db3JlLkNvbW1hbmRzOw0KK3VzaW5nIE5Vbml0LkZyYW1ld29yazsNCisNCituYW1lc3BhY2UgTmV4dXMuQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gUHJvdmUgdGhhdCBhIHNpbmdsZSBvYmplY3QgY2FuIGJlIHJldHVybmVkIGJ5IEV4ZWN1dGUsIHdpdGhvdXQgZXJyb3IuDQorCS8vLyA8L3N1bW1hcnk+DQorCVtUZXN0Rml4dHVyZV0NCisJcHVibGljIGNsYXNzIE9iamVjdEJ5S2V5VGVzdCA6IENhdGFsb2dCYXNlVGVzdA0KKwl7DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIE9CSkVDVF9CWV9LRVkgPSAiT2JqZWN0QnlLZXkiOw0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBPQkpFQ1RfQllfS0VZX1dJVEhfVkFMSURBVEUgPSAiT2JqZWN0QnlLZXlXaXRoVmFsaWRhdGUiOw0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBPQkpFQ1RfQllfS0VZX1dJVEhfUkVRVUlSRUQgPSAiT2JqZWN0QnlLZXlXaXRoUmVxdWlyZWQiOw0KKw0KKwkJcHJpdmF0ZSBzdHJpbmcgUEtfU09NRVRISU5HID0gT2JqZWN0QnlLZXkuUEtfU09NRVRISU5HOw0KKwkJcHJpdmF0ZSBzdHJpbmcgUEtfU09NRVRISU5HX1ZBTFVFID0gT2JqZWN0QnlLZXkuUEtfU09NRVRISU5HX1ZBTFVFOw0KKwkJcHJpdmF0ZSBjb25zdCBzdHJpbmcgUEtfU09NRVRISU5HX1JFU1VMVCA9IE9iamVjdEJ5S2V5LlBLX1NPTUVUSElOR19SRVNVTFQ7DQorCQlwcml2YXRlIGNvbnN0IHN0cmluZyBQS19TT01FX0RBVEUgPSBPYmplY3RCeUtleS5QS19TT01FX0RBVEU7DQorDQorCQlwdWJsaWMgdm9pZCBBc3NlcnRTb21ldGhpbmcoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJQXNzZXJ0Tm9taW5hbChjb250ZXh0KTsNCisJCQlBc3NlcnQuSXNOb3ROdWxsKGNvbnRleHRbUEtfU09NRVRISU5HX1JFU1VMVF0sICJFeHBlY3RlZCByZXN1bHQiKTsNCisJCQlBc3NlcnQuSXNGYWxzZShjb250ZXh0Lkhhc091dGNvbWUsICJVbmV4cGVjdGVkIE91dGNvbWUuIik7DQorCQl9DQorDQorCQlwdWJsaWMgdm9pZCBBc3NlcnRJbnZhbGlkKElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KQ0KKwkJew0KKwkJCUFzc2VydE5vRmF1bHQoY29udGV4dCk7DQorCQkJQXNzZXJ0LklzVHJ1ZShjb250ZXh0Lkhhc0FsZXJ0cywgIkV4cGVjdGVkIGVycm9yIik7DQorCQkJQXNzZXJ0LklzTnVsbChjb250ZXh0W1BLX1NPTUVUSElOR19SRVNVTFRdLCAiVW5leHBlY3RlZCByZXN1bHQiKTsNCisJCQlBc3NlcnQuSXNGYWxzZShjb250ZXh0Lkhhc091dGNvbWUsICJVbmV4cGVjdGVkIE91dGNvbWUuIik7DQorCQl9DQorDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIE9iamVjdEJ5S2V5X1RydXN0ZWQoKQ0KKwkJew0KKwkJCUlSZXF1ZXN0Q29udGV4dCBjb250ZXh0ID0gY2F0YWxvZy5HZXRSZXF1ZXN0Q29udGV4dChPQkpFQ1RfQllfS0VZKTsNCisJCQljb250ZXh0W1BLX1NPTUVUSElOR10gPSBQS19TT01FVEhJTkdfVkFMVUU7DQorDQorCQkJY2F0YWxvZy5FeGVjdXRlUmVxdWVzdChjb250ZXh0KTsgLy8gZG8gdGhlIGFjdHVhbCB3b3JrDQorDQorCQkJQXNzZXJ0U29tZXRoaW5nKGNvbnRleHQpOw0KKwkJfQ0KKw0KKwkJW1Rlc3RdDQorCQlwdWJsaWMgdm9pZCBPYmplY3RCeUtleV9VblRydXN0ZWQoKQ0KKwkJew0KKwkJCUlEaWN0aW9uYXJ5IGZpZWxkcyA9IG5ldyBIYXNodGFibGUoKTsNCisJCQlmaWVsZHNbUEtfU09NRVRISU5HXSA9IFBLX1NPTUVUSElOR19WQUxVRTsNCisJCQlJUmVxdWVzdENvbnRleHQgY29udGV4dCA9IGNhdGFsb2cuR2V0UmVxdWVzdENvbnRleHQoT0JKRUNUX0JZX0tFWV9XSVRIX1JFUVVJUkVELCBmaWVsZHMpOw0KKw0KKwkJCWNhdGFsb2cuRXhlY3V0ZVJlcXVlc3QoY29udGV4dCk7IC8vIGRvIHRoZSBhY3R1YWwgd29yaw0KKw0KKwkJCUFzc2VydFNvbWV0aGluZyhjb250ZXh0KTsNCisJCX0NCisNCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgT2JqZWN0QnlLZXlfVW5UcnVzdGVkX0ZhaWwoKQ0KKwkJew0KKwkJCUlEaWN0aW9uYXJ5IGZpZWxkcyA9IG5ldyBIYXNodGFibGUoKTsNCisJCQlJUmVxdWVzdENvbnRleHQgY29udGV4dCA9IGNhdGFsb2cuR2V0UmVxdWVzdENvbnRleHQoT0JKRUNUX0JZX0tFWV9XSVRIX1JFUVVJUkVELCBmaWVsZHMpOw0KKw0KKwkJCWNhdGFsb2cuRXhlY3V0ZVJlcXVlc3QoY29udGV4dCk7IC8vIGRvIHRoZSBhY3R1YWwgd29yaw0KKw0KKwkJCUFzc2VydEludmFsaWQoY29udGV4dCk7DQorCQl9DQorDQorDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIE9iamVjdEJ5S2V5X1Byb2Nlc3MoKQ0KKwkJew0KKwkJCUlEaWN0aW9uYXJ5IGZpZWxkcyA9IG5ldyBIYXNodGFibGUoKTsNCisJCQlmaWVsZHNbUEtfU09NRVRISU5HXSA9IFBLX1NPTUVUSElOR19WQUxVRTsNCisJCQkvLyBmaWVsZHMgW1BLX1NPTUVfREFURV0gPSBEYXRlVGltZS5Ob3cuVG9TaG9ydERhdGVTdHJpbmcgKCk7DQorCQkJSVJlcXVlc3RDb250ZXh0IGNvbnRleHQgPSBjYXRhbG9nLkdldFJlcXVlc3RDb250ZXh0KE9CSkVDVF9CWV9LRVlfV0lUSF9WQUxJREFURSwgZmllbGRzKTsNCisNCisJCQljYXRhbG9nLkV4ZWN1dGVSZXF1ZXN0KGNvbnRleHQpOyAvLyBkbyB0aGUgYWN0dWFsIHdvcmsNCisNCisJCQlBc3NlcnRTb21ldGhpbmcoY29udGV4dCk7DQorDQorCQkJdHJ5DQorCQkJew0KKwkJCQlEYXRlVGltZSBvdXRwdXQgPSAoRGF0ZVRpbWUpIGNvbnRleHRbUEtfU09NRV9EQVRFXTsNCisJCQkJb3V0cHV0ID0gb3V0cHV0Ow0KKwkJCX0NCisJCQljYXRjaCAoRXhjZXB0aW9uIGUpDQorCQkJew0KKwkJCQlBc3NlcnQuSXNUcnVlKGUgIT0gbnVsbCk7DQorCQkJCUFzc2VydC5GYWlsKCJFeHBlY3RlZCBkYXRlIGFzIGJpbmFyeSBpbiB0aGUgbWFpbiBjb250ZXh0Iik7DQorCQkJfQ0KKw0KKwkJCXN0cmluZyBzaG9ydERhdGUgPSBjb250ZXh0LkNyaXRlcmlhW1BLX1NPTUVfREFURV0gYXMgc3RyaW5nOw0KKwkJCUFzc2VydC5Jc05vdE51bGwoc2hvcnREYXRlLCAiRXhwZWN0ZWQgZGF0ZSBhcyBhIHN0cmluZyBpbiBjcml0ZXJpYSIpOw0KKw0KKwkJCURhdGVUaW1lIG5vdyA9IERhdGVUaW1lLk5vdzsNCisJCQkvLyBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vZ2xvYmFsZGV2L2dldFdSL3N0ZXBzL3dyZ19kYXRlLm1zcHgNCisJCQkvLyBUaHJlYWQuQ3VycmVudFRocmVhZC5DdXJyZW50Q3VsdHVyZSA9IG5ldyBDdWx0dXJlSW5mbygiZW4tVVMiKTsNCisJCQlzdHJpbmcgZXhwZWN0ID0gbm93LlRvU3RyaW5nKCJkIik7DQorCQkJQXNzZXJ0LkFyZUVxdWFsKGV4cGVjdCwgc2hvcnREYXRlKTsNCisJCX0NCisNCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgT2JqZWN0QnlLZXlfRm9ybWF0X0RhdGUoKQ0KKwkJew0KKwkJCUlEaWN0aW9uYXJ5IGZpZWxkcyA9IG5ldyBIYXNodGFibGUoKTsNCisJCQlmaWVsZHNbUEtfU09NRVRISU5HXSA9IFBLX1NPTUVUSElOR19WQUxVRTsNCisJCQlmaWVsZHNbUEtfU09NRV9EQVRFXSA9IERhdGVUaW1lLk5vdy5Ub1Nob3J0RGF0ZVN0cmluZygpOw0KKwkJCUlSZXF1ZXN0Q29udGV4dCBjb250ZXh0ID0gY2F0YWxvZy5HZXRSZXF1ZXN0Q29udGV4dChPQkpFQ1RfQllfS0VZX1dJVEhfVkFMSURBVEUsIGZpZWxkcyk7DQorDQorCQkJY2F0YWxvZy5FeGVjdXRlUmVxdWVzdChjb250ZXh0KTsgLy8gZG8gdGhlIGFjdHVhbCB3b3JrDQorDQorCQkJQXNzZXJ0U29tZXRoaW5nKGNvbnRleHQpOw0KKw0KKwkJCXRyeQ0KKwkJCXsNCisJCQkJRGF0ZVRpbWUgb3V0cHV0ID0gKERhdGVUaW1lKSBjb250ZXh0W1BLX1NPTUVfREFURV07DQorCQkJCW91dHB1dCA9IG91dHB1dDsNCisJCQl9DQorCQkJY2F0Y2ggKEV4Y2VwdGlvbiBlKQ0KKwkJCXsNCisJCQkJQXNzZXJ0LklzVHJ1ZShlICE9IG51bGwpOw0KKwkJCQlBc3NlcnQuRmFpbCgiRXhwZWN0ZWQgZGF0ZSBhcyBiaW5hcnkgaW4gdGhlIG1haW4gY29udGV4dCIpOw0KKwkJCX0NCisNCisJCQlzdHJpbmcgZm9ybWF0dGVkID0gY29udGV4dC5Dcml0ZXJpYVtQS19TT01FX0RBVEVdIGFzIHN0cmluZzsNCisJCQlBc3NlcnQuSXNOb3ROdWxsKGZvcm1hdHRlZCwgIkV4cGVjdGVkIGRhdGUgYXMgYSBzdHJpbmcgaW4gY3JpdGVyaWEiKTsNCisJCX0NCisNCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9PYmplY3RzLnhtbCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L09iamVjdHMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0OThkODQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9PYmplY3RzLnhtbApAQCAtMCwwICsxLDExIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4gDQorPG9iamVjdHMgeG1sbnM9Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCIgDQorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIA0KKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCBodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQveHNkL3NwcmluZy1vYmplY3RzLnhzZCI+DQorDQorCTxvYmplY3QgaWQ9IkJhc2UiIC8+DQorCQ0KKwk8aW1wb3J0IHJlc291cmNlPSJSZXNvdXJjZXMvQ29tbWFuZC9BcHBDb25maWcueG1sIi8+DQorCTxpbXBvcnQgcmVzb3VyY2U9IlJlc291cmNlcy9Db21tYW5kL0NhdGFsb2cueG1sIi8+DQorCQ0KKzwvb2JqZWN0cz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9SZXF1ZXN0Q29tbWFuZFRlc3QuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9SZXF1ZXN0Q29tbWFuZFRlc3QuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc0YzQxOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L1JlcXVlc3RDb21tYW5kVGVzdC5jcwpAQCAtMCwwICsxLDYzIEBACisvKg0KKyAqIENvcHlyaWdodCAyMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKiANCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQordXNpbmcgTmV4dXMuQ29yZS5Db21tYW5kczsNCit1c2luZyBOVW5pdC5GcmFtZXdvcms7DQorDQorbmFtZXNwYWNlIE5leHVzLkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEV4ZXJjaXNlIG1ldGhvZHMgb2Ygc3RhbmRhcmQgSVJlcXVlc3RDb21tYW5kIGltcGxlbWVudGF0aW9uIFtPVlItOV0uDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyANCisJW1Rlc3RGaXh0dXJlXQ0KKwlwdWJsaWMgY2xhc3MgUmVxdWVzdENvbW1hbmRUZXN0DQorCXsNCisJCXByaXZhdGUgSVJlcXVlc3RDb21tYW5kIGNvbW1hbmQ7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQ3JlYXRlIGEgZGVmYXVsdCBjb21tYW5kIGJldHdlZW4gdGVzdCBydW5zLiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlbU2V0VXBdDQorCQlwdWJsaWMgdm9pZCBTZXRVcCgpDQorCQl7DQorCQkJY29tbWFuZCA9IG5ldyBMaXN0QWxsKCk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQSBOZXdDb250ZXh0IGlzIG5vdCBudWxsLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgTmV3UmVxdWVzdENvbnRleHQoKQ0KKwkJew0KKwkJCUlSZXF1ZXN0Q29udGV4dCBjb250ZXh0ID0gY29tbWFuZC5OZXdDb250ZXh0KCk7DQorCQkJQXNzZXJ0LklzTm90TnVsbChjb250ZXh0LCAiRXhwZWN0ZWQgZGVmYXVsdCBjb250ZXh0IGluc3RhbmNlLiIpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vICBBIHN1Y2Nlc3NmdWwgY29tbWFuZCByZXR1cm5zIGEgbm9taW5hbCByZXN1bHQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIHZvaWQgUmVxdWVzdEV4ZWN1dGUoKQ0KKwkJew0KKwkJCUlSZXF1ZXN0Q29udGV4dCBjb250ZXh0ID0gY29tbWFuZC5OZXdDb250ZXh0KCk7DQorCQkJY29tbWFuZC5FeGVjdXRlKGNvbnRleHQpOw0KKwkJCUFzc2VydC5Jc1RydWUoY29udGV4dC5Jc05vbWluYWwsICJFeHBlY3RlZCBub21pbmFsIHJlc3VsdC4iKTsNCisJCX0NCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9SZXF1ZXN0Q29udGV4dFRlc3QuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9SZXF1ZXN0Q29udGV4dFRlc3QuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUyYTA1MgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L1JlcXVlc3RDb250ZXh0VGVzdC5jcwpAQCAtMCwwICsxLDEwMiBAQAorLyoNCisgKiBDb3B5cmlnaHQgMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICogDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqIA0KKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICogDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgTmV4dXMuQ29yZS5Db21tYW5kczsNCit1c2luZyBOVW5pdC5GcmFtZXdvcms7DQorDQorbmFtZXNwYWNlIE5leHVzLkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEV4ZXJjaXNlIElSZXF1ZXN0Q29udGV4dCBwZXIgW09WUi03XS4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlbVGVzdEZpeHR1cmVdDQorCXB1YmxpYyBjbGFzcyBSZXF1ZXN0Q29udGV4dFRlc3QNCisJew0KKwkJcHJpdmF0ZSBJUmVxdWVzdENvbnRleHQgY29udGV4dDsNCisJCXByaXZhdGUgRXhjZXB0aW9uIGZhdWx0Ow0KKwkJcHJpdmF0ZSBJTGlzdCBsaXN0Ow0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEluaXRpYWxpemUgcHJpdmF0ZSBmaWVsZHMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJW1NldFVwXQ0KKwkJcHVibGljIHZvaWQgU2V0VXAoKQ0KKwkJew0KKwkJCWNvbnRleHQgPSBuZXcgUmVxdWVzdENvbnRleHQoKTsNCisJCQljb250ZXh0LkNvbW1hbmQgPSAibGlzdF9hbGwiOw0KKwkJCWNvbnRleHQuQ29tbWFuZEJpbiA9IG5ldyBMaXN0QWxsKCk7DQorCQkJQXNzZXJ0LklzVHJ1ZShjb250ZXh0LklzTm9taW5hbCwgIkV4cGVjdGVkIG5vbWluYWwgc3RhdGUgZm9yIGEgbmV3IElSZXF1ZXN0Q29udGV4dC4iKTsNCisJCQlBc3NlcnQuSXNGYWxzZShjb250ZXh0Lkhhc091dGNvbWUsICJFeHBlY3RlZCBubyBPdXRjb21lIGZvciBhIG5ldyBJUmVxdWVzdENvbnRleHQuIik7DQorDQorCQkJZmF1bHQgPSBuZXcgQXBwbGljYXRpb25FeGNlcHRpb24oIlJlcXVlc3RDb250ZXh0VGVzdCIpOw0KKwkJCWxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7DQorCQkJbGlzdC5BZGQoImRhdGEiKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBIElSZXF1ZXN0Q29udGV4dCBpcyBub3Qgbm9taW5hbCBpZiBhbiBhbGVydCBpcyBhZGRlZC4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJW1Rlc3RdDQorCQlwdWJsaWMgdm9pZCBJc05vbWluYWxfQWxlcnQoKQ0KKwkJew0KKwkJCWNvbnRleHQuQWRkQWxlcnQoIkJ1c2luZXNzIGxvZ2ljIGFsZXJ0Iik7DQorCQkJQXNzZXJ0LklzRmFsc2UoY29udGV4dC5Jc05vbWluYWwsICJFeHBlY3RlZCBub24tbm9taW5hbCBzdGF0ZSBhZnRlciBhZGRpbmcgYWxlcnQgbWVzc2FnZS4iKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBIElSZXF1ZXN0Q29udGV4dCBpcyBub3Qgbm9taW5hbCBpZiBhbiBFeGNlcHRpb24gaXMgc2V0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgSXNOb21pbmFsX0ZhdWx0KCkNCisJCXsNCisJCQljb250ZXh0LkZhdWx0ID0gZmF1bHQ7DQorCQkJQXNzZXJ0LklzRmFsc2UoY29udGV4dC5Jc05vbWluYWwsDQorCQkJICAgICAgICAgICAgICAgIkV4cGVjdGVkIG5vbi1ub21pbmFsIHN0YXRlIGFmdGVyIHNldHRpbmcgRXhjZXB0aW9uLiIpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEEgSVJlcXVlc3RDb250ZXh0IGlzIG5vdCBub21pbmFsIGlmIG11bHRpcGxlIGVycm9ycyBhcmUgYWRkZWQgDQorCQkvLy8gYW5kIGFuIEV4Y2VwdGlvbiBpcyBzZXQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJW1Rlc3RdDQorCQlwdWJsaWMgdm9pZCBJc05vbWluYWxfQWxlcnRzX2FuZF9GYXVsdCgpDQorCQl7DQorCQkJY29udGV4dC5BZGRBbGVydCgiQnVzaW5lc3MgbG9naWMgZXJyb3IiKTsNCisJCQljb250ZXh0LkFkZEFsZXJ0KCJCdXNpbmVzcyBsb2dpYyBlcnJvciAyIik7DQorCQkJY29udGV4dC5GYXVsdCA9IGZhdWx0Ow0KKwkJCUFzc2VydC5Jc0ZhbHNlKGNvbnRleHQuSXNOb21pbmFsLA0KKwkJCSAgICAgICAgICAgICAgICJFeHBlY3RlZCBub24tbm9taW5hbCBzdGF0ZSBhZnRlciBhZGRpbmcgZXJyb3JzIGFuZCBFeGNlcHRpb24uIik7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSWYgZGF0YSBpcyBzZXQgdG8gdGhlIE91dGNvbWUgcHJvcGVydHksIEhhc091dGNvbWUgaXMgdHJ1ZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIEhhc091dGNvbWUoKQ0KKwkJew0KKwkJCWNvbnRleHQuT3V0Y29tZSA9IGxpc3Q7DQorCQkJQXNzZXJ0LklzVHJ1ZShjb250ZXh0Lkhhc091dGNvbWUpOw0KKwkJfQ0KKw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L1Jlc291cmNlcy9Db21tYW5kL0FwcEJhc2UueG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1Rlc3QvUmVzb3VyY2VzL0NvbW1hbmQvQXBwQmFzZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U0YzFjMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L1Jlc291cmNlcy9Db21tYW5kL0FwcEJhc2UueG1sCkBAIC0wLDAgKzEsMjkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/PiANCis8b2JqZWN0cyB4bWxucz0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0IiANCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgDQorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0IGh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldC94c2Qvc3ByaW5nLW9iamVjdHMueHNkIj4NCisNCisgPCEtLSBCYXNlIEVsZW1lbnRzIChwYXJlbnRzKS0tPg0KKyANCisgPG9iamVjdCBpZD0iQmFzZUxvZ2ljIiA+DQorIDwvb2JqZWN0Pg0KKyANCisgPG9iamVjdCBpZD0iQmFzZU1hcHBlciIgPg0KKyAgICAgPHByb3BlcnR5IG5hbWU9Ik1hcHBlciI+PHJlZiBvYmplY3Q9Ik1hcHBlciIvPjwvcHJvcGVydHk+DQorIDwvb2JqZWN0Pg0KKyANCisgPG9iamVjdCBpZD0iQmFzZUNvbnRyb2xsZXIiID4NCisgICAgIDxwcm9wZXJ0eSBuYW1lPSJDb250cm9sbGVyIj48cmVmIG9iamVjdD0iQ29udHJvbGxlciIgLz48L3Byb3BlcnR5Pg0KKyA8L29iamVjdD4NCisNCisgPG9iamVjdCBpZD0iQmFzZUNoYWluIiAvPg0KKyANCisgPCEtLSBJU1NVRTogV2Ugc2hvdWxkIGhhdmUgYSBwYXJlbnQgZm9yIGVhY2ggb2YgdGhlIHN0YW5kYXJkIGJhc2UgY29tbWFuZHMuIC0tPg0KKyANCisgPG9iamVjdCBpZD0iQmFzZUhlbHBlciIgc2luZ2xldG9uPSJmYWxzZSIgc2NvcGU9InJlcXVlc3QiID4NCisJPHByb3BlcnR5IG5hbWU9IkNvbnRyb2xsZXIiPg0KKwkJPHJlZiBvYmplY3Q9IkNvbnRyb2xsZXIiIC8+DQorCTwvcHJvcGVydHk+DQorPC9vYmplY3Q+DQorCQkJDQorPC9vYmplY3RzPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L1Jlc291cmNlcy9Db21tYW5kL0FwcENvbmZpZy54bWwgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9SZXNvdXJjZXMvQ29tbWFuZC9BcHBDb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmYmQzZTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9SZXNvdXJjZXMvQ29tbWFuZC9BcHBDb25maWcueG1sCkBAIC0wLDAgKzEsMTA5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4gDQorPG9iamVjdHMgeG1sbnM9Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCIgDQorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIA0KKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCBodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQveHNkL3NwcmluZy1vYmplY3RzLnhzZCI+DQorCQ0KKzwhLS0gQ2F0YWxvZyAtLT4gICAgCQkNCisgIA0KKyAgPG9iamVjdCBpZD0iQ2F0YWxvZyIgdHlwZT0iTmV4dXMuRXh0cmFzLlNwcmluZy5DYXRhbG9nIj4NCisJICA8cHJvcGVydHkgbmFtZT0iRmllbGRUYWJsZSI+PHJlZiBvYmplY3Q9IkZpZWxkVGFibGUiLz48L3Byb3BlcnR5Pg0KKwkgIDxwcm9wZXJ0eSBuYW1lPSJQcmVPcCI+PHJlZiBvYmplY3Q9IlByZU9wIi8+PC9wcm9wZXJ0eT4NCisJICA8cHJvcGVydHkgbmFtZT0iUG9zdE9wIj48cmVmIG9iamVjdD0iUG9zdE9wIi8+PC9wcm9wZXJ0eT4NCisgIDwvb2JqZWN0Pg0KKyAgDQorPCEtLSBWaWV3IEhlbHBlci0tPg0KKw0KKyAgPG9iamVjdCBpZD0iVmlld0hlbHBlciIgdHlwZT0iTmV4dXMuQ29yZS5IZWxwZXJzLlZpZXdIZWxwZXIiIHNpbmdsZXRvbj0iZmFsc2UiPg0KKyAgICA8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5WaWV3SGVscGVyPC92YWx1ZT48L3Byb3BlcnR5Pg0KKyAgPC9vYmplY3Q+DQorICANCis8IS0tIFJlcXVlc3QgUHJvY2Vzc29ycyAtLT4NCisJDQorICA8b2JqZWN0IGlkPSJDb252ZXJ0SW5wdXQiIHR5cGU9Ik5leHVzLkNvcmUuVmFsaWRhdG9ycy5Db252ZXJ0SW5wdXQiPg0KKyAgICA8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5Db252ZXJ0SW5wdXQ8L3ZhbHVlPjwvcHJvcGVydHk+DQorICA8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9IkZvcm1hdE91dHB1dCIgdHlwZT0iTmV4dXMuQ29yZS5WYWxpZGF0b3JzLkZvcm1hdE91dHB1dCI+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPkZvcm1hdE91dHB1dDwvdmFsdWU+PC9wcm9wZXJ0eT4gICAgDQorICA8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9IlByZU9wIiB0eXBlPSJOZXh1cy5Db3JlLlJlcXVlc3RDaGFpbiI+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPnByZS1vcDwvdmFsdWU+PC9wcm9wZXJ0eT4gICAgDQorCTxwcm9wZXJ0eSBuYW1lPSJBZGRDb21tYW5kcyI+DQorCQk8bGlzdD4NCisJCQk8cmVmIG9iamVjdD0iQ29udmVydElucHV0Ii8+DQorCQk8L2xpc3Q+ICAgDQorICAgIDwvcHJvcGVydHk+ICAgICAgICAgICANCisgIDwvb2JqZWN0PiAgDQorDQorICA8b2JqZWN0IGlkPSJQb3N0T3AiIHR5cGU9Ik5leHVzLkNvcmUuUmVxdWVzdENoYWluIj4NCisgICAgPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+cG9zdC1vcDwvdmFsdWU+PC9wcm9wZXJ0eT4gICAgDQorCTxwcm9wZXJ0eSBuYW1lPSJBZGRDb21tYW5kcyI+DQorCQk8bGlzdD4NCisJCQk8cmVmIG9iamVjdD0iRm9ybWF0T3V0cHV0Ii8+DQorCQk8L2xpc3Q+ICAgDQorICAgIDwvcHJvcGVydHk+ICAgICAgICAgICANCisgIDwvb2JqZWN0Pg0KKyAgICAJDQorIDwhLS0gRmllbGRUYWJsZSAtLT4NCisgDQorCTxvYmplY3QgaWQ9IkZpZWxkVGFibGUiIHR5cGU9Ik5leHVzLkNvcmUuVGFibGVzLkZpZWxkVGFibGUiPg0KKwkJPHByb3BlcnR5IG5hbWU9IlN0cmljdCI+PHZhbHVlPnRydWU8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iQWRkUHJvY2Vzc29ycyI+DQorCQkJPGxpc3Q+DQorCQkJCTxyZWYgb2JqZWN0PSJDb2xsZWN0aW9uUHJvY2Vzc29yIi8+IA0KKwkJCQk8cmVmIG9iamVjdD0iRGF0ZVRpbWVQcm9jZXNzb3IiLz4gDQorCQkJCTxyZWYgb2JqZWN0PSJTdHJpbmdQcm9jZXNzb3IiLz4gDQorCQkJPC9saXN0Pg0KKwkJPC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJBZGRGaWVsZENvbnRleHRzIj4NCisJCQk8bGlzdD4NCisJCQkJPHJlZiBvYmplY3Q9InBrX3NvbWV0aGluZyIvPiANCisJCQkJPHJlZiBvYmplY3Q9IlNvbWVEYXRlIi8+IA0KKwkJCQk8cmVmIG9iamVjdD0iU29tZXRoaW5nUmVzdWx0Ii8+IA0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKwkNCis8IS0tIEZpZWxkIFByb2Nlc3NvcnMgLS0+DQorDQorCTxvYmplY3QgaWQ9IkNvbGxlY3Rpb25Qcm9jZXNzb3IiIHR5cGU9Ik5leHVzLkNvcmUuVmFsaWRhdG9ycy5Db2xsZWN0aW9uUHJvY2Vzc29yIj4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPkNvbGxlY3Rpb25Qcm9jZXNzb3I8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKw0KKwk8b2JqZWN0IGlkPSJEYXRlVGltZVByb2Nlc3NvciIgdHlwZT0iTmV4dXMuQ29yZS5WYWxpZGF0b3JzLkRhdGVUaW1lUHJvY2Vzc29yIj4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPkRhdGVUaW1lUHJvY2Vzc29yPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IkFsZXJ0Ij48dmFsdWU+ezB9IG11c3QgYmUgYSB2YWxpZCBkYXRlPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IkRhdGFGb3JtYXQiPjx2YWx1ZT5kPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0iU3RyaW5nUHJvY2Vzc29yIiB0eXBlPSJOZXh1cy5Db3JlLlZhbGlkYXRvcnMuU3RyaW5nUHJvY2Vzc29yIj4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPlN0cmluZ1Byb2Nlc3NvcjwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorDQorPCEtLSBGaWVsZHMgLS0+DQorDQorCTxvYmplY3QgaWQ9IkJhc2VGaWVsZENvbnRleHQiIHR5cGU9Ik5leHVzLkNvcmUuVGFibGVzLkZpZWxkQ29udGV4dCI+DQorCSAgICA8cHJvcGVydHkgbmFtZT0iQWxlcnQiPjx2YWx1ZT57MH0gaXMgaW52YWxpZC48L3ZhbHVlPjwvcHJvcGVydHk+DQorCSAgICA8cHJvcGVydHkgbmFtZT0iUmVxdWlyZWQiPjx2YWx1ZT57MH0gaXMgcmVxdWlyZWQuPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0icGtfc29tZXRoaW5nIiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+cGtfc29tZXRoaW5nPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkgICAgPHByb3BlcnR5IG5hbWU9IkxhYmVsIj48dmFsdWU+U29tZXRoaW5nIEtleTwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJQcm9jZXNzb3IiPjxyZWYgb2JqZWN0PSJTdHJpbmdQcm9jZXNzb3IiLz48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisJDQorCTxvYmplY3QgaWQ9IlNvbWV0aGluZ1Jlc3VsdCIgcGFyZW50PSJCYXNlRmllbGRDb250ZXh0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPlNvbWV0aGluZ1Jlc3VsdDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJICAgIDxwcm9wZXJ0eSBuYW1lPSJMYWJlbCI+PHZhbHVlPlNvbWV0aGluZyBSZXN1bHQ8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iUHJvY2Vzc29yIj48cmVmIG9iamVjdD0iU3RyaW5nUHJvY2Vzc29yIi8+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorDQorCTxvYmplY3QgaWQ9IlNvbWVEYXRlIiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+U29tZURhdGU8L3ZhbHVlPjwvcHJvcGVydHk+DQorCSAgICA8cHJvcGVydHkgbmFtZT0iTGFiZWwiPjx2YWx1ZT5Tb21lIERhdGU8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iUHJvY2Vzc29yIj48cmVmIG9iamVjdD0iRGF0ZVRpbWVQcm9jZXNzb3IiLz48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisJCSAgICAgICANCis8L29iamVjdHM+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1Rlc3QvUmVzb3VyY2VzL0NvbW1hbmQvQXBwRmllbGRzLnhtbCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L1Jlc291cmNlcy9Db21tYW5kL0FwcEZpZWxkcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGNkZTcxNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L1Jlc291cmNlcy9Db21tYW5kL0FwcEZpZWxkcy54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+IA0KKzxvYmplY3RzIHhtbG5zPSJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQiIA0KKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiANCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQgaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0L3hzZC9zcHJpbmctb2JqZWN0cy54c2QiPg0KKw0KKyA8IS0tIEZJRUxEIFRBQkxFIC0tPg0KKyANCisJPG9iamVjdCBpZD0iRmllbGRUYWJsZSIgdHlwZT0iQWdpbGl0eS5OZXh1cy5GaWVsZFRhYmxlIj4NCisJCTxwcm9wZXJ0eSBuYW1lPSJBZGRGaWVsZHMiPg0KKwkJCTxsaXN0Pg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKwkJDQorPCEtLSBGSUVMRFMgLS0+DQorCQ0KKwkgPCEtLSBwYXJlbnQgZmllbGRzIC0tPg0KKw0KKyAJCTwhLS0gImQiIGlzIC5ORVQgZm9yICJzaG9ydCBkYXRlIiAtLT4gDQorCTxvYmplY3QgaWQ9ImRhdGUiIHR5cGU9IkFnaWxpdHkuTmV4dXMuRmllbGRDb250ZXh0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJBbGVydCI+PHZhbHVlPnswfSBtdXN0IGJlIGEgdmFsaWQgZGF0ZTwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJEYXRhRm9ybWF0Ij48dmFsdWU+ZDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJEYXRhVHlwZU5hbWUiPjx2YWx1ZT5TeXN0ZW0uRGF0ZVRpbWU8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKwkNCisJPG9iamVjdCBpZD0ibGlzdCIgdHlwZT0iQWdpbGl0eS5OZXh1cy5GaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IkNvbnRyb2xUeXBlTmFtZSI+PHZhbHVlPnNlbGVjdDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorCQkNCisNCisJPG9iamVjdCBpZD0iIiB0eXBlPSJBZ2lsaXR5Lk5leHVzLkZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT48L3ZhbHVlPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKw0KKwkgPCEtLSBpbnN0YW5jZSBmaWVsZHMgKGRhdGVzIGFuZCBsaXN0cykgLS0+CQ0KKwkgDQorCQkJIA0KKzwvb2JqZWN0cz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9SZXNvdXJjZXMvQ29tbWFuZC9DYXRhbG9nLnhtbCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9UZXN0L1Jlc291cmNlcy9Db21tYW5kL0NhdGFsb2cueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhZDM0YmQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9SZXNvdXJjZXMvQ29tbWFuZC9DYXRhbG9nLnhtbApAQCAtMCwwICsxLDQ3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4gDQorPCFET0NUWVBFIG9iamVjdHMgUFVCTElDICItLy9TUFJJTkcvL0RURCBPQkpFQ1QvL0VOIg0KKyAgImh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldC9kdGQvc3ByaW5nLW9iamVjdHMuZHRkIj4NCis8b2JqZWN0cz4gDQorDQorICA8b2JqZWN0IGlkPSJMaXN0QWxsIiB0eXBlPSJOZXh1cy5Db3JlLkNvbW1hbmRzLkxpc3RBbGwsIE5leHVzLlRlc3QiPg0KKyAgICA8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5MaXN0QWxsPC92YWx1ZT48L3Byb3BlcnR5PiAgDQorICA8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9Ik9iamVjdEJ5S2V5IiB0eXBlPSJOZXh1cy5Db3JlLkNvbW1hbmRzLk9iamVjdEJ5S2V5LCBOZXh1cy5UZXN0Ij4NCisgICAgPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+T2JqZWN0QnlLZXk8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTxwcm9wZXJ0eSBuYW1lPSJBZGRSZXF1aXJlZElEcyI+DQorCQk8bGlzdD4NCisJCQk8dmFsdWU+cGtfc29tZXRoaW5nPC92YWx1ZT4NCisJCTwvbGlzdD4NCisJIDwvcHJvcGVydHk+ICAgICAgICAgIA0KKyAJIDxwcm9wZXJ0eSBuYW1lPSJBZGRSZWxhdGVkSURzIj4NCisJCTxsaXN0Pg0KKwkJCTx2YWx1ZT5Tb21lRGF0ZTwvdmFsdWU+DQorCQkJPHZhbHVlPlNvbWV0aGluZ1Jlc3VsdDwvdmFsdWU+DQorCQk8L2xpc3Q+DQorCSA8L3Byb3BlcnR5PiAgICAgICAgICANCisgICA8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9Ik9iamVjdEJ5S2V5V2l0aFJlcXVpcmVkIiB0eXBlPSJOZXh1cy5Db3JlLlJlcXVlc3RDaGFpbiI+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5PYmplY3RCeUtleVdpdGhSZXF1aXJlZDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJBZGRDb21tYW5kcyI+DQorCQkJPGxpc3Q+DQorCQkJCTxyZWYgb2JqZWN0PSJDb252ZXJ0SW5wdXQiLz4gDQorCQkJCTxyZWYgb2JqZWN0PSJPYmplY3RCeUtleSIvPiANCisJCQk8L2xpc3Q+DQorCQk8L3Byb3BlcnR5PiAgICAgIA0KKwk8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9Ik9iamVjdEJ5S2V5V2l0aFZhbGlkYXRlIiB0eXBlPSJOZXh1cy5Db3JlLlJlcXVlc3RDaGFpbiI+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5PYmplY3RCeUtleVdpdGhWYWxpZGF0ZTwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJBZGRDb21tYW5kcyI+DQorCQkJPGxpc3Q+DQorCQkJCTxyZWYgb2JqZWN0PSJDb252ZXJ0SW5wdXQiLz4gDQorCQkJCTxyZWYgb2JqZWN0PSJPYmplY3RCeUtleSIvPiANCisJCQkJPHJlZiBvYmplY3Q9IkZvcm1hdE91dHB1dCIvPiANCisJCQk8L2xpc3Q+DQorCQk8L3Byb3BlcnR5PiAgICAgIA0KKwk8L29iamVjdD4NCisNCisNCis8L29iamVjdHM+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1Rlc3QvVGVzdC5jc3Byb2ogYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9UZXN0LmNzcHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTk4YWI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1Rlc3QvVGVzdC5jc3Byb2oKQEAgLTAsMCArMSwxNzkgQEAKKzxWaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KKyAgICA8Q1NIQVJQDQorICAgICAgICBQcm9qZWN0VHlwZSA9ICJMb2NhbCINCisgICAgICAgIFByb2R1Y3RWZXJzaW9uID0gIjcuMTAuMzA3NyINCisgICAgICAgIFNjaGVtYVZlcnNpb24gPSAiMi4wIg0KKyAgICAgICAgUHJvamVjdEd1aWQgPSAie0M1MzNGRkFBLUNCMkItNDBDRC1CM0MyLTc3Mzk0RTREOTIyMn0iDQorICAgID4NCisgICAgICAgIDxCdWlsZD4NCisgICAgICAgICAgICA8U2V0dGluZ3MNCisgICAgICAgICAgICAgICAgQXBwbGljYXRpb25JY29uID0gIiINCisgICAgICAgICAgICAgICAgQXNzZW1ibHlLZXlDb250YWluZXJOYW1lID0gIiINCisgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIk5leHVzLlRlc3QiDQorICAgICAgICAgICAgICAgIEFzc2VtYmx5T3JpZ2luYXRvcktleUZpbGUgPSAiIg0KKyAgICAgICAgICAgICAgICBEZWZhdWx0Q2xpZW50U2NyaXB0ID0gIkpTY3JpcHQiDQorICAgICAgICAgICAgICAgIERlZmF1bHRIVE1MUGFnZUxheW91dCA9ICJGbG93Ig0KKyAgICAgICAgICAgICAgICBEZWZhdWx0VGFyZ2V0U2NoZW1hID0gIklFNTAiDQorICAgICAgICAgICAgICAgIERlbGF5U2lnbiA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgT3V0cHV0VHlwZSA9ICJMaWJyYXJ5Ig0KKyAgICAgICAgICAgICAgICBQcmVCdWlsZEV2ZW50ID0gIiINCisgICAgICAgICAgICAgICAgUG9zdEJ1aWxkRXZlbnQgPSAiJChTb2x1dGlvbkRpcilwb3N0YnVpbGQuYmF0ICQoVGFyZ2V0RGlyKSAgJChUYXJnZXROYW1lKSAgJChTb2x1dGlvbk5hbWUpICAkKFNvbHV0aW9uRGlyKSINCisgICAgICAgICAgICAgICAgUm9vdE5hbWVzcGFjZSA9ICJOZXh1cy5Db3JlIg0KKyAgICAgICAgICAgICAgICBSdW5Qb3N0QnVpbGRFdmVudCA9ICJPbkJ1aWxkU3VjY2VzcyINCisgICAgICAgICAgICAgICAgU3RhcnR1cE9iamVjdCA9ICIiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgICAgICA8Q29uZmlnDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIkRlYnVnIg0KKyAgICAgICAgICAgICAgICAgICAgQWxsb3dVbnNhZmVCbG9ja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBCYXNlQWRkcmVzcyA9ICIyODUyMTI2NzIiDQorICAgICAgICAgICAgICAgICAgICBDaGVja0Zvck92ZXJmbG93VW5kZXJmbG93ID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbk92ZXJyaWRlRmlsZSA9ICIiDQorICAgICAgICAgICAgICAgICAgICBEZWZpbmVDb25zdGFudHMgPSAiREVCVUc7VFJBQ0UiDQorICAgICAgICAgICAgICAgICAgICBEb2N1bWVudGF0aW9uRmlsZSA9ICJOZXh1cy5UZXN0LnhtbCINCisgICAgICAgICAgICAgICAgICAgIERlYnVnU3ltYm9scyA9ICJ0cnVlIg0KKyAgICAgICAgICAgICAgICAgICAgRmlsZUFsaWdubWVudCA9ICI0MDk2Ig0KKyAgICAgICAgICAgICAgICAgICAgSW5jcmVtZW50YWxCdWlsZCA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE5vU3RkTGliID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgTm9XYXJuID0gIjE1OTEiDQorICAgICAgICAgICAgICAgICAgICBPcHRpbWl6ZSA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE91dHB1dFBhdGggPSAiYmluXERlYnVnXCINCisgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyRm9yQ29tSW50ZXJvcCA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFJlbW92ZUludGVnZXJDaGVja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBUcmVhdFdhcm5pbmdzQXNFcnJvcnMgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBXYXJuaW5nTGV2ZWwgPSAiNCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPENvbmZpZw0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJSZWxlYXNlIg0KKyAgICAgICAgICAgICAgICAgICAgQWxsb3dVbnNhZmVCbG9ja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBCYXNlQWRkcmVzcyA9ICIyODUyMTI2NzIiDQorICAgICAgICAgICAgICAgICAgICBDaGVja0Zvck92ZXJmbG93VW5kZXJmbG93ID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbk92ZXJyaWRlRmlsZSA9ICIiDQorICAgICAgICAgICAgICAgICAgICBEZWZpbmVDb25zdGFudHMgPSAiVFJBQ0UiDQorICAgICAgICAgICAgICAgICAgICBEb2N1bWVudGF0aW9uRmlsZSA9ICIiDQorICAgICAgICAgICAgICAgICAgICBEZWJ1Z1N5bWJvbHMgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBGaWxlQWxpZ25tZW50ID0gIjQwOTYiDQorICAgICAgICAgICAgICAgICAgICBJbmNyZW1lbnRhbEJ1aWxkID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgTm9TdGRMaWIgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBOb1dhcm4gPSAiIg0KKyAgICAgICAgICAgICAgICAgICAgT3B0aW1pemUgPSAidHJ1ZSINCisgICAgICAgICAgICAgICAgICAgIE91dHB1dFBhdGggPSAiYmluXFJlbGVhc2VcIg0KKyAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJGb3JDb21JbnRlcm9wID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgUmVtb3ZlSW50ZWdlckNoZWNrcyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFRyZWF0V2FybmluZ3NBc0Vycm9ycyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFdhcm5pbmdMZXZlbCA9ICI0Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgIDwvU2V0dGluZ3M+DQorICAgICAgICAgICAgPFJlZmVyZW5jZXM+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIlN5c3RlbSINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIi4uXC4uXC4uXC4uXC4uXC4uXC4uXFdJTkRPV1NcTWljcm9zb2Z0Lk5FVFxGcmFtZXdvcmtcdjEuMS40MzIyXFN5c3RlbS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtLkRhdGEiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3lzdGVtLkRhdGEiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlwuLlwuLlwuLlwuLlxXSU5ET1dTXE1pY3Jvc29mdC5ORVRcRnJhbWV3b3JrXHYxLjEuNDMyMlxTeXN0ZW0uRGF0YS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtLlhNTCINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJTeXN0ZW0uWG1sIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cLi5cLi5cLi5cLi5cLi5cV0lORE9XU1xNaWNyb3NvZnQuTkVUXEZyYW1ld29ya1x2MS4xLjQzMjJcU3lzdGVtLlhNTC5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAibnVuaXQuZnJhbWV3b3JrIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIm51bml0LmZyYW1ld29yayINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIi4uXC4uXC4uXC4uXC4uXC4uXC4uXFByb2dyYW0gRmlsZXNcTlVuaXQgMi4yXGJpblxudW5pdC5mcmFtZXdvcmsuZGxsIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlGb2xkZXJLZXkgPSAiaGtsbVxkblxudW5pdC5mcmFtZXdvcmsiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiQ29yZSINCisgICAgICAgICAgICAgICAgICAgIFByb2plY3QgPSAiezdDOENBRkQ0LTFFNDUtNDFCNC05OTYzLUY1MTE5OUIxMkVBN30iDQorICAgICAgICAgICAgICAgICAgICBQYWNrYWdlID0gIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIkV4dHJhcyINCisgICAgICAgICAgICAgICAgICAgIFByb2plY3QgPSAiezc5MzFDQUNELTBFNzMtNEREMi1BMzczLUZGNkEwMUNFNjE4Nn0iDQorICAgICAgICAgICAgICAgICAgICBQYWNrYWdlID0gIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIldlYiINCisgICAgICAgICAgICAgICAgICAgIFByb2plY3QgPSAiezJCRDdDREUwLTAxRjctNENDNS05QUU5LTJGOTQ3MEZCNzAwN30iDQorICAgICAgICAgICAgICAgICAgICBQYWNrYWdlID0gIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIlNwcmluZy5Db3JlIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIlNwcmluZy5Db3JlIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cLi5cbG9jYWwtY2FjaGVcU3ByaW5nTmV0XFNwcmluZy5Db3JlLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJBZ2lsaXR5LkNvcmUiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiQWdpbGl0eS5Db3JlIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cLi5cbG9jYWwtY2FjaGVcQWdpbGl0eVxBZ2lsaXR5LkNvcmUuZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIlNwcmluZy5XZWIiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3ByaW5nLldlYiINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIi4uXC4uXGxvY2FsLWNhY2hlXFNwcmluZ05ldFxTcHJpbmcuV2ViLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICA8L1JlZmVyZW5jZXM+DQorICAgICAgICA8L0J1aWxkPg0KKyAgICAgICAgPEZpbGVzPg0KKyAgICAgICAgICAgIDxJbmNsdWRlPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJBc3NlbWJseUluZm8uY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJCYXNlTmV4dXNUZXN0LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiQ29udHJvbGxlclRlc3QuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJPYmplY3RCeUtleVRlc3QuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJPYmplY3RzLnhtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlJlcXVlc3RDb21tYW5kVGVzdC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlJlcXVlc3RDb250ZXh0VGVzdC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGb2xkZXIgUmVsUGF0aCA9ICJiaW5cRGVidWdcIiAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJDb21tYW5kc1xMaXN0QWxsLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiQ29tbWFuZHNcT2JqZWN0QnlLZXkuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJSZXNvdXJjZXNcQ29tbWFuZFxBcHBDb25maWcueG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiUmVzb3VyY2VzXENvbW1hbmRcQ2F0YWxvZy54bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgIDwvSW5jbHVkZT4NCisgICAgICAgIDwvRmlsZXM+DQorICAgIDwvQ1NIQVJQPg0KKzwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCisNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvVGVzdC9iaW4vRGVidWcvUG9zdEJ1aWxkRXZlbnQuYmF0IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1Rlc3QvYmluL0RlYnVnL1Bvc3RCdWlsZEV2ZW50LmJhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTUyOGE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1Rlc3QvYmluL0RlYnVnL1Bvc3RCdWlsZEV2ZW50LmJhdApAQCAtMCwwICsxLDggQEAKK0BlY2hvIG9mZg0KK0M6XHByb2plY3RzXE5leHVzXHN0cnV0cy1vdmVyZHJpdmVcc2FuZGJveFxvdmVyZHJpdmVcTmV4dXNccG9zdGJ1aWxkLmJhdCBDOlxwcm9qZWN0c1xOZXh1c1xzdHJ1dHMtb3ZlcmRyaXZlXHNhbmRib3hcb3ZlcmRyaXZlXE5leHVzXFRlc3RcYmluXERlYnVnXCAgTmV4dXMuVGVzdCAgTmV4dXMgIEM6XHByb2plY3RzXE5leHVzXHN0cnV0cy1vdmVyZHJpdmVcc2FuZGJveFxvdmVyZHJpdmVcTmV4dXNcDQoraWYgZXJyb3JsZXZlbCAxIGdvdG8gQ1NoYXJwUmVwb3J0RXJyb3INCitnb3RvIENTaGFycEVuZA0KKzpDU2hhcnBSZXBvcnRFcnJvcg0KK2VjaG8gUHJvamVjdCBlcnJvcjogQSB0b29sIHJldHVybmVkIGFuIGVycm9yIGNvZGUgZnJvbSB0aGUgYnVpbGQgZXZlbnQNCitleGl0IDENCis6Q1NoYXJwRW5kClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9BbGVydExhYmVsLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9BbGVydExhYmVsLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0ODlhMWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0FsZXJ0TGFiZWwuY3MKQEAgLTAsMCArMSwyOCBAQAorbmFtZXNwYWNlIE5leHVzLldlYg0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gRXh0ZW5kIE1lc3NhZ2VMYWJlbCB0byByZXNwb25kIG9ubHkgdG8gdGhlIFZpZXdfQWxlcnQgZXZlbnQgDQorCS8vLyBhbmQgdXNlIGFuIGFsdGVybmF0ZSBzdWZmaXguDQorCS8vLyA8L3N1bW1hcnk+DQorCXB1YmxpYyBjbGFzcyBBbGVydExhYmVsIDogVmlld0xhYmVsDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBEZWZhdWx0IHN1ZmZpeCBmb3IgTmFtZUxhYmVsIElEcyBbIl9hbGVydCJdLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgQUxFUlRfU1VGRklYID0gIl9hbGVydCI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU2V0IHRoZSBkZWZhdWx0cyBmb3IgdGhpcyBzdWJjbGFzcy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgQWxlcnRMYWJlbCgpIDogYmFzZSgpDQorCQl7DQorCQkJU3VmZml4ID0gQUxFUlRfU1VGRklYOw0KKwkJCVZpZXdfSGludCA9IGZhbHNlOw0KKwkJCWJhc2UuRW5hYmxlVmlld1N0YXRlID0gZmFsc2U7DQorCQkJLy8gaHR0cDovL2Jsb2dzLm1zZG4uY29tL3Njb3R0d2lsL2FyY2hpdmUvMjAwNS8wMS8xNC8zNTMxNzcuYXNweA0KKwkJfQ0KKw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvQXNzZW1ibHlJbmZvLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9Bc3NlbWJseUluZm8uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFkOTVkYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvQXNzZW1ibHlJbmZvLmNzCkBAIC0wLDAgKzEsNjAgQEAKK3VzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOw0KKy8vDQorLy8gR2VuZXJhbCBJbmZvcm1hdGlvbiBhYm91dCBhbiBhc3NlbWJseSBpcyBjb250cm9sbGVkIHRocm91Z2ggdGhlIGZvbGxvd2luZyANCisvLyBzZXQgb2YgYXR0cmlidXRlcy4gQ2hhbmdlIHRoZXNlIGF0dHJpYnV0ZSB2YWx1ZXMgdG8gbW9kaWZ5IHRoZSBpbmZvcm1hdGlvbg0KKy8vIGFzc29jaWF0ZWQgd2l0aCBhbiBhc3NlbWJseS4NCisvLw0KK1thc3NlbWJseSA6IEFzc2VtYmx5VGl0bGUoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5RGVzY3JpcHRpb24oIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5Q29uZmlndXJhdGlvbigiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDb21wYW55KCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseVByb2R1Y3QoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5Q29weXJpZ2h0KCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseVRyYWRlbWFyaygiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDdWx0dXJlKCIiKV0NCisNCisvLw0KKy8vIFZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGFuIGFzc2VtYmx5IGNvbnNpc3RzIG9mIHRoZSBmb2xsb3dpbmcgZm91ciB2YWx1ZXM6DQorLy8NCisvLyAgICAgIE1ham9yIFZlcnNpb24NCisvLyAgICAgIE1pbm9yIFZlcnNpb24gDQorLy8gICAgICBCdWlsZCBOdW1iZXINCisvLyAgICAgIFJldmlzaW9uDQorLy8NCisvLyBZb3UgY2FuIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgb3IgeW91IGNhbiBkZWZhdWx0IHRoZSBSZXZpc2lvbiBhbmQgQnVpbGQgTnVtYmVycyANCisvLyBieSB1c2luZyB0aGUgJyonIGFzIHNob3duIGJlbG93Og0KKw0KK1thc3NlbWJseSA6IEFzc2VtYmx5VmVyc2lvbigiMS4wLioiKV0NCisNCisvLw0KKy8vIEluIG9yZGVyIHRvIHNpZ24geW91ciBhc3NlbWJseSB5b3UgbXVzdCBzcGVjaWZ5IGEga2V5IHRvIHVzZS4gUmVmZXIgdG8gdGhlIA0KKy8vIE1pY3Jvc29mdCAuTkVUIEZyYW1ld29yayBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGFzc2VtYmx5IHNpZ25pbmcuDQorLy8NCisvLyBVc2UgdGhlIGF0dHJpYnV0ZXMgYmVsb3cgdG8gY29udHJvbCB3aGljaCBrZXkgaXMgdXNlZCBmb3Igc2lnbmluZy4gDQorLy8NCisvLyBOb3RlczogDQorLy8gICAoKikgSWYgbm8ga2V5IGlzIHNwZWNpZmllZCwgdGhlIGFzc2VtYmx5IGlzIG5vdCBzaWduZWQuDQorLy8gICAoKikgS2V5TmFtZSByZWZlcnMgdG8gYSBrZXkgdGhhdCBoYXMgYmVlbiBpbnN0YWxsZWQgaW4gdGhlIENyeXB0byBTZXJ2aWNlDQorLy8gICAgICAgUHJvdmlkZXIgKENTUCkgb24geW91ciBtYWNoaW5lLiBLZXlGaWxlIHJlZmVycyB0byBhIGZpbGUgd2hpY2ggY29udGFpbnMNCisvLyAgICAgICBhIGtleS4NCisvLyAgICgqKSBJZiB0aGUgS2V5RmlsZSBhbmQgdGhlIEtleU5hbWUgdmFsdWVzIGFyZSBib3RoIHNwZWNpZmllZCwgdGhlIA0KKy8vICAgICAgIGZvbGxvd2luZyBwcm9jZXNzaW5nIG9jY3VyczoNCisvLyAgICAgICAoMSkgSWYgdGhlIEtleU5hbWUgY2FuIGJlIGZvdW5kIGluIHRoZSBDU1AsIHRoYXQga2V5IGlzIHVzZWQuDQorLy8gICAgICAgKDIpIElmIHRoZSBLZXlOYW1lIGRvZXMgbm90IGV4aXN0IGFuZCB0aGUgS2V5RmlsZSBkb2VzIGV4aXN0LCB0aGUga2V5IA0KKy8vICAgICAgICAgICBpbiB0aGUgS2V5RmlsZSBpcyBpbnN0YWxsZWQgaW50byB0aGUgQ1NQIGFuZCB1c2VkLg0KKy8vICAgKCopIEluIG9yZGVyIHRvIGNyZWF0ZSBhIEtleUZpbGUsIHlvdSBjYW4gdXNlIHRoZSBzbi5leGUgKFN0cm9uZyBOYW1lKSB1dGlsaXR5Lg0KKy8vICAgICAgICBXaGVuIHNwZWNpZnlpbmcgdGhlIEtleUZpbGUsIHRoZSBsb2NhdGlvbiBvZiB0aGUgS2V5RmlsZSBzaG91bGQgYmUNCisvLyAgICAgICAgcmVsYXRpdmUgdG8gdGhlICJwcm9qZWN0IG91dHB1dCBkaXJlY3RvcnkiLiBUaGUgbG9jYXRpb24gb2YgdGhlIHByb2plY3Qgb3V0cHV0DQorLy8gICAgICAgIGRpcmVjdG9yeSBpcyBkZXBlbmRlbnQgb24gd2hldGhlciB5b3UgYXJlIHdvcmtpbmcgd2l0aCBhIGxvY2FsIG9yIHdlYiBwcm9qZWN0Lg0KKy8vICAgICAgICBGb3IgbG9jYWwgcHJvamVjdHMsIHRoZSBwcm9qZWN0IG91dHB1dCBkaXJlY3RvcnkgaXMgZGVmaW5lZCBhcw0KKy8vICAgICAgIDxQcm9qZWN0IERpcmVjdG9yeT5cb2JqXDxDb25maWd1cmF0aW9uPi4gRm9yIGV4YW1wbGUsIGlmIHlvdXIgS2V5RmlsZSBpcw0KKy8vICAgICAgIGxvY2F0ZWQgaW4gdGhlIHByb2plY3QgZGlyZWN0b3J5LCB5b3Ugd291bGQgc3BlY2lmeSB0aGUgQXNzZW1ibHlLZXlGaWxlIA0KKy8vICAgICAgIGF0dHJpYnV0ZSBhcyBbYXNzZW1ibHk6IEFzc2VtYmx5S2V5RmlsZSgiLi5cXC4uXFxteWtleS5zbmsiKV0NCisvLyAgICAgICAgRm9yIHdlYiBwcm9qZWN0cywgdGhlIHByb2plY3Qgb3V0cHV0IGRpcmVjdG9yeSBpcyBkZWZpbmVkIGFzDQorLy8gICAgICAgJUhPTUVQQVRIJVxWU1dlYkNhY2hlXDxNYWNoaW5lIE5hbWU+XDxQcm9qZWN0IERpcmVjdG9yeT5cb2JqXDxDb25maWd1cmF0aW9uPi4NCisvLyAgICgqKSBEZWxheSBTaWduaW5nIGlzIGFuIGFkdmFuY2VkIG9wdGlvbiAtIHNlZSB0aGUgTWljcm9zb2Z0IC5ORVQgRnJhbWV3b3JrDQorLy8gICAgICAgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzLg0KKy8vDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlEZWxheVNpZ24oZmFsc2UpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5S2V5RmlsZSgiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlLZXlOYW1lKCIiKV0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0NvbnRyb2xzL0xldHRlckZpbHRlci5hc2N4IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9Db250cm9scy9MZXR0ZXJGaWx0ZXIuYXNjeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZmYwNWRhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9Db250cm9scy9MZXR0ZXJGaWx0ZXIuYXNjeApAQCAtMCwwICsxLDEwIEBACis8JUAgQ29udHJvbCBMYW5ndWFnZT0iYyMiIEF1dG9FdmVudFdpcmV1cD0iZmFsc2UiIENvZGViZWhpbmQ9IkxldHRlckZpbHRlci5hc2N4LmNzIiBJbmhlcml0cz0iTmV4dXMuV2ViLkNvbnRyb2xzLkxldHRlckZpbHRlciIgVGFyZ2V0U2NoZW1hPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2ludGVsbGlzZW5zZS9pZTUiJT4NCis8YXNwOnJlcGVhdGVyIGlkPSJsZXR0ZXJzIiBydW5hdD0ic2VydmVyIj4NCisJPGl0ZW10ZW1wbGF0ZT4NCisJCTxhc3A6bGlua2J1dHRvbiBpZD0ibGV0dGVyIiBydW5hdD0ic2VydmVyIiANCisJCQljb21tYW5kbmFtZT0iZmlsdGVyIiANCisJCQljb21tYW5kYXJndW1lbnQ9JzwlIyBEYXRhQmluZGVyLkV2YWwoQ29udGFpbmVyLCAiRGF0YUl0ZW0uTGV0dGVyIiklPicgPg0KKwkJCTwlIyBEYXRhQmluZGVyLkV2YWwoQ29udGFpbmVyLCAiRGF0YUl0ZW0uTGV0dGVyIiklPg0KKwkJPC9hc3A6bGlua2J1dHRvbj4NCisJPC9pdGVtdGVtcGxhdGU+DQorPC9hc3A6cmVwZWF0ZXI+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9Db250cm9scy9MZXR0ZXJGaWx0ZXIuYXNjeC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvQ29udHJvbHMvTGV0dGVyRmlsdGVyLmFzY3guY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzkzYjE2OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvQ29udHJvbHMvTGV0dGVyRmlsdGVyLmFzY3guY3MKQEAgLTAsMCArMSwyODYgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgU3lzdGVtLkRhdGE7DQordXNpbmcgU3lzdGVtLldlYi5VSS5XZWJDb250cm9sczsNCit1c2luZyBXUUQuQ29yZS5Db250cm9sczsNCisNCituYW1lc3BhY2UgTmV4dXMuV2ViLkNvbnRyb2xzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBEaXNwbGF5IGEgbGlzdCBvZiBsZXR0ZXJzLCBvbmUgb2Ygd2hpY2ggY2FuIGJlIHNlbGVjdGVkIGF0IGEgdGltZSwgDQorCS8vLyBzbyBhIGNsaWVudCBjb250cm9sIGNhbiBmaWx0ZXIgYSBsaXN0IG9mIGVudHJpZXMuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyA8cmVtYXJrcz48cD4NCisJLy8vIEFkYXB0ZWQgZnJvbSBodHRwOi8vd3d3LmNvZGVwcm9qZWN0LmNvbS9hc3BuZXQvTGV0dGVyQmFzZWRQYWdpbmcuYXNwDQorCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkvLy8gDQorCXB1YmxpYyBjbGFzcyBMZXR0ZXJGaWx0ZXIgOiBGaW5kQ29udHJvbA0KKwl7DQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRG9jdW1lbnQgdG9rZW4gcmVwcmVzZW50aW5nIG1hdGNoIGFsbCBlbnRyaWVzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgQUxMID0gIlsqXSI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRG9jdW1lbnQgdGhlIGF0dHJpYnV0ZSBuYW1lIGZvciB0aGUgaW5pdGlhbCBsZXR0ZXIgYnkgd2hpY2ggdG8gZmlsdGVyLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgSVRFTV9JTklUSUFMID0gImluaXRpYWwiOw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBrZXkgdW5kZXIgd2hpY2ggdG8gc3RvcmUgdGhlIHNlbGVjdGVkIGxldHRlciBpbiBWaWV3U3RhdGUuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBMRVRURVJfS0VZID0gIl9MZXR0ZXIiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIERvY3VtZW50IHRoZSB3aWxkY2FyZCBjaGFyYWN0ZXIgdXNlZCBieSBTUUwgcXVlcmllcy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFdJTERDQVJEID0gIiUiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFNpZ25hbCB0aGF0IGlucHV0IGlzIHJlYWR5IHRvIHN1Ym1pdCwgDQorCQkvLy8gcGFzc2luZyB0aGUgSVRFTV9JTlRJSUFMIHZhbHVlIGFzIEZpbmRBcmdzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBldmVudCBFdmVudEhhbmRsZXIgVmlld19GaWx0ZXI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gTGlzdCB0aGUgbGV0dGVycyB0aGF0IGNhbiBzZWxlY3RlZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgUmVwZWF0ZXIgbGV0dGVyczsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgcHJpdmF0ZSBmaWVsZCB0byBjYWNoZSB0aGUgTGV0dGVyRmlsdGVyIHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByaXZhdGUgc3RyaW5nIF9MZXR0ZXI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU3RvcmUgdGhlIGN1cnJlbnQgbGV0dGVyIGJ5IHdoaWNoIGNsaWVudCBpcyB0byBmaWx0ZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIFRoZSB2YWx1ZSBpcyBzdG9yZWQgYnkgSUQgaW4gVmlld1N0YXRlIA0KKwkJLy8vIHNvIHRoYXQgbW9yZSB0aGFuIG9uZSBMZXR0ZXJGaWx0ZXIgY2FuIGJlIHVzZWQgYnkgdGhlIHNhbWUgcGFyZW50IGNvbnRyb2wuDQorCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCS8vLyANCisJCXB1YmxpYyBzdHJpbmcgTGV0dGVyDQorCQl7DQorCQkJZ2V0DQorCQkJew0KKwkJCQlpZiAoX0xldHRlciA9PSBudWxsKSBfTGV0dGVyID0gVmlld1N0YXRlW0lEICsgTEVUVEVSX0tFWV0gYXMgc3RyaW5nOw0KKwkJCQlyZXR1cm4gX0xldHRlcjsNCisJCQl9DQorCQkJc2V0DQorCQkJew0KKwkJCQlfTGV0dGVyID0gdmFsdWU7DQorCQkJCVZpZXdTdGF0ZVtJRCArIExFVFRFUl9LRVldID0gdmFsdWU7DQorCQkJCS8vIEJpbmQgdGhlIGRhdGFzb3VyY2Ugc28gdGhhdCBMZXR0ZXIgY2hhbmdlIGlzIHJlZmxlY3RlZA0KKwkJCQlsZXR0ZXJzLkRhdGFCaW5kKCk7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBrZXkgdW5kZXIgd2hpY2ggdG8gc3RvcmUgdGhlIERhdGFUYWJsZSBpbiBWaWV3U3RhdGUuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIAkJDQorCQlwcml2YXRlIHN0cmluZyBMRVRURVJfVEFCTEVfS0VZID0gIl9MZXR0ZXJEYXRhIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgcHJpdmF0ZSBmaWVsZCB0byBjYWNoZSB0aGUgTGV0dGVyVGFibGUgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIAkJDQorCQlwcml2YXRlIERhdGFUYWJsZSBfTGV0dGVyVGFibGU7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU3RvcmUgdGhlIERhdGFUYWJsZSBjb250YWluaW5nIG91ciBsZXR0ZXJzLiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gCQkNCisJCXB1YmxpYyBEYXRhVGFibGUgTGV0dGVyVGFibGUNCisJCXsNCisJCQlnZXQNCisJCQl7DQorCQkJCWlmIChfTGV0dGVyVGFibGUgPT0gbnVsbCkgX0xldHRlclRhYmxlID0gVmlld1N0YXRlW0lEICsgTEVUVEVSX1RBQkxFX0tFWV0gYXMgRGF0YVRhYmxlOw0KKwkJCQlyZXR1cm4gX0xldHRlclRhYmxlOw0KKwkJCX0NCisJCQlzZXQNCisJCQl7DQorCQkJCV9MZXR0ZXJUYWJsZSA9IHZhbHVlOw0KKwkJCQlWaWV3U3RhdGVbSUQgKyBMRVRURVJfVEFCTEVfS0VZXSA9IHZhbHVlOw0KKwkJCX0NCisNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHRoZSBuYW1lIG9mIHRoZSBpdGVtIGNvbW1hbmQgdG8gZmlyZSB3aGVuIHRoZSBsaW5rYnV0dG9uIGZvciBhIGxldHRlciBpcyBjbGlja2VkLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyAJCQ0KKwkJcHJvdGVjdGVkIGNvbnN0IHN0cmluZyBGSUxURVJfQ01EID0gImZpbHRlciI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSWRlbnRpZnkgdGhlIGxpbmtidXR0b24gdGhhdCB3aWxsIGNvbnRhaW4gdGhlIGxldHRlciBpbiBlYWNoIHJlcGVhdGVyIGNlbGwuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIGNvbnN0IHN0cmluZyBMRVRURVJfSUQgPSAibGV0dGVyIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJZGVudGlmeSB0aGUgY29sdW1uIGluIG91ciBEYXRhVGFibGUgdGhhdCBob2xkcyB0aGUgbGV0dGVycy4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIGNvbnN0IHN0cmluZyBMRVRURVJfQ09MVU1OID0gIkxldHRlciI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSGFuZGxlIHRoZSAiRmlsdGVyIiBieSBuZXcgbGV0dGVyIGNvbW1hbmQsIA0KKwkJLy8vIHBhc3NpbmcgTlVMTCBpZiAiQUxMIiBpcyBzZWxlY3RlZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgdm9pZCBsZXR0ZXJzX0l0ZW1Db21tYW5kKG9iamVjdCBzb3VyY2UsIFJlcGVhdGVyQ29tbWFuZEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCS8vIEhhbmRsZSB0aGUgIkZpbHRlciIgbmV3IHJlY29yZCBjb21tYW5kDQorCQkJaWYgKGUuQ29tbWFuZE5hbWUgPT0gRklMVEVSX0NNRCkNCisJCQl7DQorCQkJCS8vIFNldCB0aGUgbmV3IExldHRlciBzZWxlY3Rpb24NCisJCQkJTGV0dGVyID0gKHN0cmluZykgZS5Db21tYW5kQXJndW1lbnQ7DQorDQorCQkJCS8vIFJhaXNlIHRoZSAiRmlsdGVyIiBldmVudCBzbyB0aGF0IGNsaWVudCBjYW4gdXBkYXRlIGl0cyBsaXN0LiANCisJCQkJaWYgKFZpZXdfRmlsdGVyICE9IG51bGwpDQorCQkJCXsNCisJCQkJCXN0cmluZyBsZXR0ZXIgPSBMZXR0ZXI7DQorCQkJCQlpZiAoQUxMLkVxdWFscyhsZXR0ZXIpKSBsZXR0ZXIgPSBudWxsOw0KKwkJCQkJc3RyaW5nIGxldHRlcjIgPSBsZXR0ZXIgKyBXSUxEQ0FSRDsNCisJCQkJCUlEaWN0aW9uYXJ5IGNyaXRlcmlhID0gbmV3IEhhc2h0YWJsZSgxKTsNCisJCQkJCWNyaXRlcmlhLkFkZChJVEVNX0lOSVRJQUwsIGxldHRlcjIpOw0KKwkJCQkJRmluZEFyZ3MgYSA9IG5ldyBGaW5kQXJncyhlLCBjcml0ZXJpYSk7DQorCQkJCQlWaWV3X0ZpbHRlcihzb3VyY2UsIGEpOw0KKwkJCQl9DQorCQkJfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENhbGxlZCB3aGVuIGFuIGl0ZW0gaW4gdGhlIGxldHRlcnMgcmVwZWF0ZXIgY29udHJvbCBpcyBkYXRhIGJvdW5kIHRvIGEgc291cmNlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByb3RlY3RlZCB2b2lkIGxldHRlcnNfSXRlbURhdGFCb3VuZChvYmplY3Qgc291cmNlLCBSZXBlYXRlckl0ZW1FdmVudEFyZ3MgZSkNCisJCXsNCisJCQkvLyBSZXRyaWV2ZSB0aGUgcm93IG9mIGRhdGEgdGhhdCBpcyB0byBiZSBib3VuZCB0byB0aGUgcmVwZWF0ZXINCisJCQlEYXRhUm93VmlldyBkYXRhID0gKERhdGFSb3dWaWV3KSBlLkl0ZW0uRGF0YUl0ZW07DQorDQorCQkJLy8gSWYgdGhlIGxldHRlciB3ZSBhcmUgYmluZGluZyB0byB0aGUgY3VycmVudCByZXBlYXRlciBjb250cm9sIGl0ZW0gaXMNCisJCQkvLyAgdGhlIHNhbWUgYXMgdGhlIG9uZSBjdXJyZW50bHkgc2VsZWN0ZWQsIHRoYW4gZGlzYWJsZSBpdCBzbyB0aGUgdXNlcg0KKwkJCS8vICBrbm93cyB3aGljaCBvbmUgd2FzIHNlbGVjdGVkLg0KKwkJCWlmICgoc3RyaW5nKSBkYXRhWzBdID09IExldHRlcikNCisJCQl7DQorCQkJCUxpbmtCdXR0b24gY21kID0gKExpbmtCdXR0b24pIGUuSXRlbS5GaW5kQ29udHJvbChMRVRURVJfSUQpOw0KKwkJCQljbWQuRW5hYmxlZCA9IGZhbHNlOw0KKwkJCX0NCisJCX0NCisNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDcmVhdGUgYSBuZXcgRGF0YVRhYmxlIGZyb20gdGhlIGxpc3Qgb2YgbGV0dGVycyBwcm92aWRlZCwgDQorCQkvLy8gYW5kIHN0b3JlIGEgcmVmZXJhbmNlIHRvIHRoZSBuZXdseSBjcmVhdGUgZGF0YSB0YWJsZSBmb3IgdXNlIG9uIHBvc3QgYmFjay4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImlucHV0Ij5MaXN0IG9mIGxldHRlcnMgdG8gcHJlc2VudCBhcyBjb21tYW5kczwvcGFyYW0+DQorCQlwcml2YXRlIHZvaWQgTGV0dGVyVGFibGVfSW5pdChJTGlzdCBpbnB1dCkNCisJCXsNCisJCQlEYXRhVGFibGUgZHQgPSBuZXcgRGF0YVRhYmxlKCk7DQorCQkJZHQuQ29sdW1ucy5BZGQobmV3IERhdGFDb2x1bW4oTEVUVEVSX0NPTFVNTiwgdHlwZW9mIChzdHJpbmcpKSk7DQorDQorCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBpbnB1dC5Db3VudDsgaSsrKQ0KKwkJCXsNCisJCQkJRGF0YVJvdyBkciA9IGR0Lk5ld1JvdygpOw0KKwkJCQlkclswXSA9IGlucHV0W2ldOw0KKwkJCQlkdC5Sb3dzLkFkZChkcik7DQorCQkJfQ0KKw0KKwkJCUxldHRlclRhYmxlID0gZHQ7DQorCQkJTGV0dGVyID0gbnVsbDsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBCaW5kIHRoZSBsZXR0ZXJzIGFycmF5IHRvIHRoZSByZXBlYXRlciBjb250cm9sLCANCisJCS8vLyBzZXQgdGhlIGRlZmF1bHQgbGV0dGVyLCANCisJCS8vLyBzbyB0aGF0IHRoZSBsZXR0ZXJzIGFyZSByZWFkeSB0byBwcmVzZW50Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBvdmVycmlkZSBib29sIE9wZW4oKQ0KKwkJew0KKwkJCWlmIChMZXR0ZXJUYWJsZSA9PSBudWxsKQ0KKwkJCXsNCisJCQkJLy8gRGVmYXVsdCB0byBBLVoNCisJCQkJc3RyaW5nW10gaW5wdXQgPSB7DQorCQkJCQkiQSIsICJCIiwgIkMiLCAiRCIsICJFIiwgIkYiLCAiRyIsICJIIiwgIkkiLCAiSiIsDQorCQkJCQkiSyIsICJMIiwgIk0iLCAiTiIsICJPIiwgIlAiLCAiUSIsICJSIiwgIlMiLCAiVCIsDQorCQkJCQkiVSIsICJWIiwgIlciLCAiWCIsICJZIiwgIloiLCBBTEwNCisJCQkJfTsNCisNCisJCQkJTGV0dGVyVGFibGVfSW5pdChpbnB1dCk7DQorCQkJfQ0KKw0KKwkJCWxldHRlcnMuRGF0YVNvdXJjZSA9IExldHRlclRhYmxlLkRlZmF1bHRWaWV3Ow0KKwkJCXN0cmluZyBjdXJyZW50ID0gTGV0dGVyOw0KKwkJCWlmIChjdXJyZW50ID09IG51bGwpIExldHRlciA9IEFMTDsNCisJCQlyZXR1cm4gdHJ1ZTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBCaW5kIHRoZSBsZXR0ZXJzIGFycmF5IHRvIHRoZSByZXBlYXRlciBjb250cm9sLCANCisJCS8vLyBzZXQgdGhlIGRlZmF1bHQgbGV0dGVyLCANCisJCS8vLyBzbyB0aGF0IHRoZSBsZXR0ZXJzIGFyZSByZWFkeSB0byBwcmVzZW50Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBib29sIE9wZW4oSUxpc3QgbGV0dGVycykNCisJCXsNCisJCQlMZXR0ZXJUYWJsZV9Jbml0KGxldHRlcnMpOw0KKwkJCXJldHVybiBPcGVuKCk7DQorCQl9DQorDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUGFzcyBvdXIgRGF0YUdyaWQgaW5zdGFuY2UgdG8gYmFzZSBtZW1iZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIFBhZ2VfSW5pdCgpDQorCQl7DQorCQkJbGV0dGVycy5JdGVtQ29tbWFuZCArPSBuZXcgUmVwZWF0ZXJDb21tYW5kRXZlbnRIYW5kbGVyKHRoaXMubGV0dGVyc19JdGVtQ29tbWFuZCk7DQorCQkJbGV0dGVycy5JdGVtRGF0YUJvdW5kICs9IG5ldyBSZXBlYXRlckl0ZW1FdmVudEhhbmRsZXIodGhpcy5sZXR0ZXJzX0l0ZW1EYXRhQm91bmQpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhhbmRsZSB0aGUgcGFnZSBMb2FkIGV2ZW50LiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InNlbmRlciI+RXZlbnQgc291cmNlPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBwYXJhbWV0ZXJzPC9wYXJhbT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBQYWdlX0xvYWQob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJT3BlbigpOw0KKwkJfQ0KKw0KKwkJI3JlZ2lvbiBXZWIgRm9ybSBEZXNpZ25lciBnZW5lcmF0ZWQgY29kZQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vCQlHZW5lcmF0ZWQgbWV0aG9kIGZvciBEZXNpZ25lciBzdXBwb3J0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBwYXJhbWV0ZXJzPC9wYXJhbT4NCisJCS8vLyANCisJCXByb3RlY3RlZCBvdmVycmlkZSB2b2lkIE9uSW5pdChFdmVudEFyZ3MgZSkNCisJCXsNCisJCQkvLw0KKwkJCS8vIENPREVHRU46IFRoaXMgY2FsbCBpcyByZXF1aXJlZCBieSB0aGUgQVNQLk5FVCBXZWIgRm9ybSBEZXNpZ25lci4NCisJCQkvLw0KKwkJCUluaXRpYWxpemVDb21wb25lbnQoKTsNCisJCQliYXNlLk9uSW5pdChlKTsNCisJCQlQYWdlX0luaXQoKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLwkJUmVxdWlyZWQgbWV0aG9kIGZvciBEZXNpZ25lciBzdXBwb3J0IC0gZG8gbm90IG1vZGlmeQ0KKwkJLy8vCQl0aGUgY29udGVudHMgb2YgdGhpcyBtZXRob2Qgd2l0aCB0aGUgY29kZSBlZGl0b3IuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHJpdmF0ZSB2b2lkIEluaXRpYWxpemVDb21wb25lbnQoKQ0KKwkJew0KKwkJCXRoaXMuTG9hZCArPSBuZXcgRXZlbnRIYW5kbGVyKHRoaXMuUGFnZV9Mb2FkKTsNCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0NvbnRyb2xzL0xldHRlckZpbHRlci5hc2N4LnJlc3ggYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0NvbnRyb2xzL0xldHRlckZpbHRlci5hc2N4LnJlc3gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQwZWE0ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvQ29udHJvbHMvTGV0dGVyRmlsdGVyLmFzY3gucmVzeApAQCAtMCwwICsxLDQyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4NCis8cm9vdD4NCisJPHhzZDpzY2hlbWEgaWQ9InJvb3QiIHhtbG5zPSIiIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOm1zZGF0YT0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp4bWwtbXNkYXRhIj4NCisJCTx4c2Q6ZWxlbWVudCBuYW1lPSJyb290IiBtc2RhdGE6SXNEYXRhU2V0PSJ0cnVlIj4NCisJCQk8eHNkOmNvbXBsZXhUeXBlPg0KKwkJCQk8eHNkOmNob2ljZSBtYXhPY2N1cnM9InVuYm91bmRlZCI+DQorCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGF0YSI+DQorCQkJCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJCQkJPHhzZDpzZXF1ZW5jZT4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJjb21tZW50IiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIyIiAvPg0KKwkJCQkJCQk8L3hzZDpzZXF1ZW5jZT4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0idHlwZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibWltZXR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQkJCQk8L3hzZDplbGVtZW50Pg0KKwkJCQkJPHhzZDplbGVtZW50IG5hbWU9InJlc2hlYWRlciI+DQorCQkJCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJCQkJPHhzZDpzZXF1ZW5jZT4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4NCisJCQkJCQkJPC94c2Q6c2VxdWVuY2U+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIHVzZT0icmVxdWlyZWQiIC8+DQorCQkJCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQkJCQk8L3hzZDplbGVtZW50Pg0KKwkJCQk8L3hzZDpjaG9pY2U+DQorCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQk8L3hzZDplbGVtZW50Pg0KKwk8L3hzZDpzY2hlbWE+DQorCTxyZXNoZWFkZXIgbmFtZT0iUmVzTWltZVR5cGUiPg0KKwkJPHZhbHVlPnRleHQvbWljcm9zb2Z0LXJlc3g8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCisJPHJlc2hlYWRlciBuYW1lPSJWZXJzaW9uIj4NCisJCTx2YWx1ZT4xLjAuMC4wPC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iUmVhZGVyIj4NCisJCTx2YWx1ZT5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVJlYWRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iV3JpdGVyIj4NCisJCTx2YWx1ZT5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVdyaXRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorPC9yb290Pg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvRmluZENvbnRyb2wuYXNjeCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvRmluZENvbnRyb2wuYXNjeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWRhYjUxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9GaW5kQ29udHJvbC5hc2N4CkBAIC0wLDAgKzEgQEAKKzwlQCBDb250cm9sIExhbmd1YWdlPSJjIyIgQXV0b0V2ZW50V2lyZXVwPSJmYWxzZSIgQ29kZWJlaGluZD0iRmluZENvbnRyb2wuYXNjeC5jcyIgSW5oZXJpdHM9Ik5leHVzLldlYi5GaW5kQ29udHJvbCIgVGFyZ2V0U2NoZW1hPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2ludGVsbGlzZW5zZS9pZTUiJT4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0ZpbmRDb250cm9sLmFzY3guY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0ZpbmRDb250cm9sLmFzY3guY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc1ODI2MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvRmluZENvbnRyb2wuYXNjeC5jcwpAQCAtMCwwICsxLDEzOCBAQAordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBOZXh1cy5Db3JlLkhlbHBlcnM7DQordXNpbmcgV1FELkNvcmUuQ29udHJvbHM7DQorDQorbmFtZXNwYWNlIE5leHVzLldlYg0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gQmFzZSBjbGFzcyBmb3IgZmluZCBjb250cm9scy4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIDxyZW1hcmtzPjxwPg0KKwkvLy8gVHlwaWNhbGx5LCBhIEZpbmRDb250cm9sIHdpbGwgY29sbGVjdCBpbnB1dCANCisJLy8vIHRvIGZpbHRlciBhIGxpc3Qgb2YgZW50cmllcyBkaXNwbGF5ZWQgYnkgYSBHcmlkQ29udHJvbC4NCisJLy8vIDwvcD48L3JlbWFya3M+DQorCXB1YmxpYyBjbGFzcyBGaW5kQ29udHJvbCA6IFZpZXdDb250cm9sDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgZmllbGQgZm9yIHRoZSBGaW5kQ29tbWFuZCBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIHN0cmluZyBfRmluZENvbW1hbmQ7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSB0aGUgY29tbWFuZCB0aGF0IHdpbGwgcG9wdWxhdGUgdGhlIGRhdGEtZW50cnkgY29udHJvbHMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIHN0cmluZyBGaW5kQ29tbWFuZA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfRmluZENvbW1hbmQ7IH0NCisJCQlzZXQgeyBfRmluZENvbW1hbmQgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEV4cG9zZSB2YWx1ZXMgaW5wdXQgYnkgY2xpZW50IA0KKwkJLy8vIGZvciB1c2UgYnkgYW5vdGhlciBjb21wb25lbnQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIHZpcnR1YWwgSURpY3Rpb25hcnkgQ3JpdGVyaWENCisJCXsNCisJCQlnZXQNCisJCQl7DQorCQkJCUlWaWV3SGVscGVyIGhlbHBlciA9IFJlYWQoRmluZENvbW1hbmQpOw0KKwkJCQlpZiAoIWhlbHBlci5Jc05vbWluYWwpDQorCQkJCXsNCisJCQkJCVBhZ2VfQWxlcnQgPSBoZWxwZXI7DQorCQkJCX0NCisJCQkJcmV0dXJuIGhlbHBlci5Dcml0ZXJpYTsNCisJCQl9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU2lnbmFsIHRoYXQgaW5wdXQgaXMgcmVhZHkgdG8gc3VibWl0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBldmVudCBFdmVudEhhbmRsZXIgVmlld19GaW5kOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEZpcmUgQ2xpY2sgZXZlbnQgd2hlbiBpbnB1dCBpcyByZWFkeSB0byBzdWJtaXQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJzZW5kZXIiPlNvdXJjZSBvZiBldmVudCBbZmluZCBCdXR0b25dPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBwYXJhbWV0ZXJzPC9wYXJhbT4NCisJCS8vLyANCisJCXByb3RlY3RlZCB2b2lkIGZpbmRfQ2xpY2sob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJaWYgKFZpZXdfRmluZCAhPSBudWxsKQ0KKwkJCXsNCisJCQkJRmluZEFyZ3MgYSA9IG5ldyBGaW5kQXJncyhlLCBDcml0ZXJpYSk7DQorCQkJCVZpZXdfRmluZChzZW5kZXIsIGEpOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcmVwYXJlIGNvbnRyb2xzIGZvciBkYXRhIGVudHJ5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBQcmVwYXJhdGlvbiBpbmNsdWRlcyBvYnRhaW5pbmcgbGlzdHMgZnJvbSB0aGUgDQorCQkvLy8gZGF0YWJhc2VzLiANCisJCS8vLyBBbnkgZXJyb3JzIGFyZSByZXBvcnRlZCANCisJCS8vLyB0aHJvdWdoIHRoZSBzdGFuZGFyZCBwYWdlIGVycm9yIGhhbmRsZXIuDQorCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCS8vLyANCisJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgT3BlbigpDQorCQl7DQorCQkJSVZpZXdIZWxwZXIgaGVscGVyID0gRXhlY3V0ZUJpbmQoRmluZENvbW1hbmQpOw0KKwkJCUJpbmQoUHJvZmlsZS5Dcml0ZXJpYSk7DQorCQkJYm9vbCBva2F5ID0gaGVscGVyLklzTm9taW5hbDsNCisJCQlpZiAoIW9rYXkpIFBhZ2VfQWxlcnQgPSBoZWxwZXI7DQorCQkJcmV0dXJuIG9rYXk7DQorCQl9DQorDQorCQlwdWJsaWMgdmlydHVhbCBib29sIE9wZW4oSURpY3Rpb25hcnkgY3JpdGVyaWEpDQorCQl7DQorCQkJSVZpZXdIZWxwZXIgaGVscGVyID0gR2V0SGVscGVyRm9yKEZpbmRDb21tYW5kKTsNCisJCQloZWxwZXIuUmVhZChjcml0ZXJpYSwgdHJ1ZSk7DQorCQkJRXhlY3V0ZUJpbmQoaGVscGVyKTsNCisJCQlib29sIG9rYXkgPSBoZWxwZXIuSXNOb21pbmFsOw0KKwkJCWlmICghb2theSkgUGFnZV9BbGVydCA9IGhlbHBlcjsNCisJCQlyZXR1cm4gb2theTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBIYW5kbGUgdGhlIHBhZ2UgTG9hZCBldmVudC4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJzZW5kZXIiPkV2ZW50IHNvdXJjZTwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImUiPlJ1bnRpbWUgcGFyYW1ldGVyczwvcGFyYW0+DQorCQkvLy8gDQorCQlwcml2YXRlIHZvaWQgUGFnZV9Mb2FkKG9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCS8vIFB1dCB1c2VyIGNvZGUgdG8gaW5pdGlhbGl6ZSB0aGUgcGFnZSBoZXJlDQorCQl9DQorDQorCQkjcmVnaW9uIFdlYiBGb3JtIERlc2lnbmVyIGdlbmVyYXRlZCBjb2RlDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8JCUluaXRpYWxpemUgY29tcG9uZW50cy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImUiPlJ1bnRpbWUgcGFyYW1ldGVyczwvcGFyYW0+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBPbkluaXQoRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJLy8NCisJCQkvLyBDT0RFR0VOOiBUaGlzIGNhbGwgaXMgcmVxdWlyZWQgYnkgdGhlIEFTUC5ORVQgV2ViIEZvcm0gRGVzaWduZXIuDQorCQkJLy8NCisJCQlJbml0aWFsaXplQ29tcG9uZW50KCk7DQorCQkJYmFzZS5PbkluaXQoZSk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8JCVJlcXVpcmVkIG1ldGhvZCBmb3IgRGVzaWduZXIgc3VwcG9ydCAtIGRvIG5vdCBtb2RpZnkNCisJCS8vLwkJdGhlIGNvbnRlbnRzIG9mIHRoaXMgbWV0aG9kIHdpdGggdGhlIGNvZGUgZWRpdG9yLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBJbml0aWFsaXplQ29tcG9uZW50KCkNCisJCXsNCisJCQl0aGlzLkxvYWQgKz0gbmV3IEV2ZW50SGFuZGxlcih0aGlzLlBhZ2VfTG9hZCk7DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9GaW5kQ29udHJvbC5hc2N4LnJlc3ggYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0ZpbmRDb250cm9sLmFzY3gucmVzeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDBlYTRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9GaW5kQ29udHJvbC5hc2N4LnJlc3gKQEAgLTAsMCArMSw0MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQorPHJvb3Q+DQorCTx4c2Q6c2NoZW1hIGlkPSJyb290IiB4bWxucz0iIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczptc2RhdGE9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206eG1sLW1zZGF0YSI+DQorCQk8eHNkOmVsZW1lbnQgbmFtZT0icm9vdCIgbXNkYXRhOklzRGF0YVNldD0idHJ1ZSI+DQorCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJPHhzZDpjaG9pY2UgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KKwkJCQkJPHhzZDplbGVtZW50IG5hbWU9ImRhdGEiPg0KKwkJCQkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCQkJCTx4c2Q6c2VxdWVuY2U+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iY29tbWVudCIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMiIgLz4NCisJCQkJCQkJPC94c2Q6c2VxdWVuY2U+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9InR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im1pbWV0eXBlIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJPC94c2Q6ZWxlbWVudD4NCisJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJyZXNoZWFkZXIiPg0KKwkJCQkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCQkJCTx4c2Q6c2VxdWVuY2U+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+DQorCQkJCQkJCTwveHNkOnNlcXVlbmNlPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIiB1c2U9InJlcXVpcmVkIiAvPg0KKwkJCQkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJPC94c2Q6ZWxlbWVudD4NCisJCQkJPC94c2Q6Y2hvaWNlPg0KKwkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJPC94c2Q6ZWxlbWVudD4NCisJPC94c2Q6c2NoZW1hPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlJlc01pbWVUeXBlIj4NCisJCTx2YWx1ZT50ZXh0L21pY3Jvc29mdC1yZXN4PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iVmVyc2lvbiI+DQorCQk8dmFsdWU+MS4wLjAuMDwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlJlYWRlciI+DQorCQk8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VSZWFkZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IldyaXRlciI+DQorCQk8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VXcml0ZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKzwvcm9vdD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0dsb2JhbC5hc2F4IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9HbG9iYWwuYXNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWI2ZTJkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9HbG9iYWwuYXNheApAQCAtMCwwICsxIEBACis8JUAgQXBwbGljYXRpb24gQ29kZWJlaGluZD0iR2xvYmFsLmFzYXguY3MiIEluaGVyaXRzPSJOZXh1cy5HbG9iYWwiICU+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9HbG9iYWwuYXNheC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvR2xvYmFsLmFzYXguY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Y2MGVkOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvR2xvYmFsLmFzYXguY3MKQEAgLTAsMCArMSw2NyBAQAordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5Db21wb25lbnRNb2RlbDsNCit1c2luZyBTeXN0ZW0uV2ViOw0KKw0KK25hbWVzcGFjZSBOZXh1cw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gU3VtbWFyeSBkZXNjcmlwdGlvbiBmb3IgR2xvYmFsLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlwdWJsaWMgY2xhc3MgR2xvYmFsIDogSHR0cEFwcGxpY2F0aW9uDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZXF1aXJlZCBkZXNpZ25lciB2YXJpYWJsZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIElDb250YWluZXIgY29tcG9uZW50cyA9IG51bGw7DQorDQorCQlwdWJsaWMgR2xvYmFsKCkNCisJCXsNCisJCQlJbml0aWFsaXplQ29tcG9uZW50KCk7DQorCQl9DQorDQorCQlwcm90ZWN0ZWQgdm9pZCBBcHBsaWNhdGlvbl9TdGFydChPYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCX0NCisNCisJCXByb3RlY3RlZCB2b2lkIFNlc3Npb25fU3RhcnQoT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQl9DQorDQorCQlwcm90ZWN0ZWQgdm9pZCBBcHBsaWNhdGlvbl9CZWdpblJlcXVlc3QoT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQl9DQorDQorCQlwcm90ZWN0ZWQgdm9pZCBBcHBsaWNhdGlvbl9FbmRSZXF1ZXN0KE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJfQ0KKw0KKwkJcHJvdGVjdGVkIHZvaWQgQXBwbGljYXRpb25fQXV0aGVudGljYXRlUmVxdWVzdChPYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCX0NCisNCisJCXByb3RlY3RlZCB2b2lkIEFwcGxpY2F0aW9uX0Vycm9yKE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJfQ0KKw0KKwkJcHJvdGVjdGVkIHZvaWQgU2Vzc2lvbl9FbmQoT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQl9DQorDQorCQlwcm90ZWN0ZWQgdm9pZCBBcHBsaWNhdGlvbl9FbmQoT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQl9DQorDQorCQkjcmVnaW9uIFdlYiBGb3JtIERlc2lnbmVyIGdlbmVyYXRlZCBjb2RlDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmVxdWlyZWQgbWV0aG9kIGZvciBEZXNpZ25lciBzdXBwb3J0IC0gZG8gbm90IG1vZGlmeQ0KKwkJLy8vIHRoZSBjb250ZW50cyBvZiB0aGlzIG1ldGhvZCB3aXRoIHRoZSBjb2RlIGVkaXRvci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIHZvaWQgSW5pdGlhbGl6ZUNvbXBvbmVudCgpDQorCQl7DQorCQkJdGhpcy5jb21wb25lbnRzID0gbmV3IENvbnRhaW5lcigpOw0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbg0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvR2xvYmFsLmFzYXgucmVzeCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvR2xvYmFsLmFzYXgucmVzeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDBlYTRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9HbG9iYWwuYXNheC5yZXN4CkBAIC0wLDAgKzEsNDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/Pg0KKzxyb290Pg0KKwk8eHNkOnNjaGVtYSBpZD0icm9vdCIgeG1sbnM9IiIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6bXNkYXRhPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnhtbC1tc2RhdGEiPg0KKwkJPHhzZDplbGVtZW50IG5hbWU9InJvb3QiIG1zZGF0YTpJc0RhdGFTZXQ9InRydWUiPg0KKwkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCTx4c2Q6Y2hvaWNlIG1heE9jY3Vycz0idW5ib3VuZGVkIj4NCisJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJkYXRhIj4NCisJCQkJCQk8eHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJCQk8eHNkOnNlcXVlbmNlPg0KKwkJCQkJCQkJPHhzZDplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIxIiAvPg0KKwkJCQkJCQkJPHhzZDplbGVtZW50IG5hbWU9ImNvbW1lbnQiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjIiIC8+DQorCQkJCQkJCTwveHNkOnNlcXVlbmNlPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJ0eXBlIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJtaW1ldHlwZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQk8L3hzZDpjb21wbGV4VHlwZT4NCisJCQkJCTwveHNkOmVsZW1lbnQ+DQorCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0icmVzaGVhZGVyIj4NCisJCQkJCQk8eHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJCQk8eHNkOnNlcXVlbmNlPg0KKwkJCQkJCQkJPHhzZDplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIxIiAvPg0KKwkJCQkJCQk8L3hzZDpzZXF1ZW5jZT4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHNkOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIgLz4NCisJCQkJCQk8L3hzZDpjb21wbGV4VHlwZT4NCisJCQkJCTwveHNkOmVsZW1lbnQ+DQorCQkJCTwveHNkOmNob2ljZT4NCisJCQk8L3hzZDpjb21wbGV4VHlwZT4NCisJCTwveHNkOmVsZW1lbnQ+DQorCTwveHNkOnNjaGVtYT4NCisJPHJlc2hlYWRlciBuYW1lPSJSZXNNaW1lVHlwZSI+DQorCQk8dmFsdWU+dGV4dC9taWNyb3NvZnQtcmVzeDwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlZlcnNpb24iPg0KKwkJPHZhbHVlPjEuMC4wLjA8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCisJPHJlc2hlYWRlciBuYW1lPSJSZWFkZXIiPg0KKwkJPHZhbHVlPlN5c3RlbS5SZXNvdXJjZXMuUmVzWFJlc291cmNlUmVhZGVyLCBTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODk8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCisJPHJlc2hlYWRlciBuYW1lPSJXcml0ZXIiPg0KKwkJPHZhbHVlPlN5c3RlbS5SZXNvdXJjZXMuUmVzWFJlc291cmNlV3JpdGVyLCBTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODk8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCis8L3Jvb3Q+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9HcmlkQ29udHJvbC5hc2N4IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9HcmlkQ29udHJvbC5hc2N4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmYzZjODAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0dyaWRDb250cm9sLmFzY3gKQEAgLTAsMCArMSBAQAorPCVAIENvbnRyb2wgTGFuZ3VhZ2U9ImMjIiBBdXRvRXZlbnRXaXJldXA9ImZhbHNlIiBDb2RlYmVoaW5kPSJHcmlkQ29udHJvbC5hc2N4LmNzIiBJbmhlcml0cz0iTmV4dXMuV2ViLkdyaWRDb250cm9sIiBUYXJnZXRTY2hlbWE9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vaW50ZWxsaXNlbnNlL2llNSIgJT4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0dyaWRDb250cm9sLmFzY3guY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0dyaWRDb250cm9sLmFzY3guY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFkMmY3YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvR3JpZENvbnRyb2wuYXNjeC5jcwpAQCAtMCwwICsxLDE4MDQgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgU3lzdGVtLldlYi5VSTsNCit1c2luZyBTeXN0ZW0uV2ViLlVJLldlYkNvbnRyb2xzOw0KK3VzaW5nIE5leHVzLkNvcmU7DQordXNpbmcgTmV4dXMuQ29yZS5IZWxwZXJzOw0KK3VzaW5nIFdRRC5Db3JlLkNvbnRyb2xzOw0KKw0KK25hbWVzcGFjZSBOZXh1cy5XZWINCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIExpc3QsIGVkaXQsIGFuZCBzZWxlY3QgaXRlbXMgdXNpbmcgYSBEYXRhR3JpZCBhbmQgSVZpZXdIZWxwZXIgY29tbWFuZHMuIA0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlwdWJsaWMgY2xhc3MgR3JpZENvbnRyb2wgOiBWaWV3Q29udHJvbA0KKwl7DQorCQkjcmVnaW9uIFJ1bnRpbWUgc3RhdGUgUHJvcGVydGllcw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYW4gYXR0cmlidXRlIHRva2VuIGZvciBMaXN0X0NyaXRlcmlhLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgc3RyaW5nIExJU1RfQ1JJVEVSSUFfS0VZID0gImxpc3RfQ3JpdGVyaWEiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFNldCB0aGUgZ2l2ZW4gY3JpdGVyaWEgdG8gdGhlIGxpc3RfQ3JpdGllcmlhIChjcmVhdGluZyBhIG5ldyBvbmUgaWYgbnVsbCksIGFuZCwgDQorCQkvLy8gaWYgQWxsb3dDdXN0b21QYWdlIGlzIHNldCwgDQorCQkvLy8gY2FsY3VsYXRlIG5ldyBMaW1pdCBhbmQgT2Zmc2V0LCBiYXNlZCBvbiBwYWdlSW5kZXgsIGFuZCBzZXQgdG8gY3JpdGVyaWEuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIFRoaXMgZm9ybSBpcyBwcm92aWRlZCB0byBiZSBjYWxsZWQgYnkgbGlzdF9Dcml0ZXJpYV9Jbml0LiANCisJCS8vLyBUaGUgb3RoZXIgZm9ybSBpcyBwcm92aWRlZCB0byBiZSBjYWxsZWQgYnkgb3RoZXIgbWV0aG9kcy4NCisJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjcml0ZXJpYSI+VGhlIGNyaXRlcmlhIGluc3RhbmNlIHRvIHN0b3JlIHRoZSBhdHRyaWJ1dGVzPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0icGFnZUluZGV4Ij5UaGUgbmV3IHBhZ2UgaW5kZXg8L3BhcmFtPg0KKwkJcHJvdGVjdGVkIElEaWN0aW9uYXJ5IGxpc3RfQ3JpdGVyaWFfTmV3UGFnZUluZGV4KElEaWN0aW9uYXJ5IGNyaXRlcmlhLCBpbnQgcGFnZUluZGV4KQ0KKwkJew0KKwkJCWlmIChHcmlkLkFsbG93Q3VzdG9tUGFnaW5nKQ0KKwkJCXsNCisJCQkJaWYgKGNyaXRlcmlhID09IG51bGwpIGNyaXRlcmlhID0gbmV3IEhhc2h0YWJsZSgpOyAvLyBGSVhNRTogU3ByaW5nPw0KKwkJCQlpbnQgcGFnZSA9IHBhZ2VJbmRleDsNCisJCQkJaW50IGxpbWl0ID0gR3JpZC5QYWdlU2l6ZTsNCisJCQkJaW50IG9mZnNldCA9IHBhZ2UqbGltaXQ7DQorCQkJCWNyaXRlcmlhW0lURU1fTElNSVRdID0gbGltaXQ7DQorCQkJCWNyaXRlcmlhW0lURU1fT0ZGU0VUXSA9IG9mZnNldDsNCisJCQl9DQorCQkJbGlzdF9Dcml0ZXJpYSA9IGNyaXRlcmlhOw0KKwkJCXJldHVybiBjcml0ZXJpYTsNCisJCX0NCisNCisJCXByb3RlY3RlZCBJRGljdGlvbmFyeSBsaXN0X0NyaXRlcmlhX05ld1BhZ2VJbmRleChJRGljdGlvbmFyeSBjcml0ZXJpYSwgaW50IHBhZ2VJbmRleCwgYm9vbCBhbGxvd0N1c3RvbVBhZ2luZykNCisJCXsNCisJCQlHcmlkLkFsbG93Q3VzdG9tUGFnaW5nID0gYWxsb3dDdXN0b21QYWdpbmc7DQorCQkJcmV0dXJuIGxpc3RfQ3JpdGVyaWFfTmV3UGFnZUluZGV4KGNyaXRlcmlhLCBwYWdlSW5kZXgpOw0KKwkJfQ0KKw0KKwkJcHJvdGVjdGVkIElEaWN0aW9uYXJ5IGxpc3RfQ3JpdGVyaWFfTmV3UGFnZUluZGV4KGludCBwYWdlSW5kZXgpDQorCQl7DQorCQkJSURpY3Rpb25hcnkgY3JpdGVyaWEgPSBsaXN0X0NyaXRlcmlhOw0KKwkJCXJldHVybiBsaXN0X0NyaXRlcmlhX05ld1BhZ2VJbmRleChjcml0ZXJpYSwgcGFnZUluZGV4KTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHZhbHVlcyB0byB1c2Ugd2l0aCBhIHF1ZXJ5IHN0YXRlbWVudCwgcGVyc2lzdGVkIGFjcm9zcyByZXF1ZXN0cy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcm90ZWN0ZWQgSURpY3Rpb25hcnkgbGlzdF9Dcml0ZXJpYQ0KKwkJew0KKwkJCWdldA0KKwkJCXsNCisJCQkJSURpY3Rpb25hcnkgY3JpdGVyaWEgPSBWaWV3U3RhdGVbTElTVF9DUklURVJJQV9LRVldIGFzIElEaWN0aW9uYXJ5Ow0KKwkJCQlyZXR1cm4gY3JpdGVyaWE7DQorCQkJfQ0KKwkJCXNldCB7IFZpZXdTdGF0ZVtMSVNUX0NSSVRFUklBX0tFWV0gPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIE1lcmdlIHZhbHVlcyBpbnRvIGxpc3RfQ3JpdGVyaWEuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjcml0ZXJpYSI+VmFsdWVzIHRvIGFwcGVuZDwvcGFyYW0+DQorCQlwdWJsaWMgdm9pZCBSZWFkKElEaWN0aW9uYXJ5IGNyaXRlcmlhKQ0KKwkJew0KKwkJCUlDb2xsZWN0aW9uIGtleXMgPSBjcml0ZXJpYS5LZXlzOw0KKwkJCWZvcmVhY2ggKHN0cmluZyBrZXkgaW4ga2V5cykNCisJCQl7DQorCQkJCWxpc3RfQ3JpdGVyaWFba2V5XSA9IGNyaXRlcmlhW2tleV07DQorCQkJfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYXR0cmlidXRlIHRva2VuIGZvciBMaXN0X0l0ZW1JbmRleC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIGNvbnN0IHN0cmluZyBMSVNUX0lURU1fSU5ERVggPSAibGlzdF9JdGVtSW5kZXgiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEN1cnJlbnQgaXRlbSBpbmRleCwgdXNlZCBtYWlubHkgdG8gc2lnbmFsIGVkaXRpbmcuIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyB2aXJ0dWFsIGludCBsaXN0X0l0ZW1JbmRleA0KKwkJew0KKwkJCWdldA0KKwkJCXsNCisJCQkJb2JqZWN0IHZhbHVlID0gVmlld1N0YXRlW0xJU1RfSVRFTV9JTkRFWF07DQorCQkJCWlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gLTE7DQorCQkJCXJldHVybiAoaW50KSB2YWx1ZTsNCisJCQl9DQorCQkJc2V0DQorCQkJew0KKwkJCQlWaWV3U3RhdGVbTElTVF9JVEVNX0lOREVYXSA9IHZhbHVlOw0KKwkJCQlpZiAoR3JpZCAhPSBudWxsKSBHcmlkLkVkaXRJdGVtSW5kZXggPSB2YWx1ZTsNCisJCQl9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBhdHRyaWJ1dGUgdG9rZW4gZm9yIExpc3RfSXRlbUtleS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIGNvbnN0IHN0cmluZyBMSVNUX0lURU1fS0VZID0gImxpc3RfSXRlbUtleSI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBkYXRhIGtleSBmb3IgdGhlIHNlbGVjdGVkIGl0ZW0uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIHZpcnR1YWwgc3RyaW5nIGxpc3RfSXRlbUtleQ0KKwkJew0KKwkJCWdldCB7IHJldHVybiBWaWV3U3RhdGVbTElTVF9JVEVNX0tFWV0gYXMgc3RyaW5nOyB9DQorCQkJc2V0IHsgVmlld1N0YXRlW0xJU1RfSVRFTV9LRVldID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGF0dHJpYnV0ZSB0b2tlbiBmb3IgTGlzdF9JbnNlcnQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHJpdmF0ZSBjb25zdCBzdHJpbmcgTElTVF9JTlNFUlRfS0VZID0gImxpc3RfSW5zZXJ0IjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBEZXRlcm1pbmUgaW5zZXJ0IG1vZGUgLSBhcmUgd2UgYWRkaW5nIG9yIG1vZGlmeWluZz8NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgdmlydHVhbCBib29sIGxpc3RfSW5zZXJ0DQorCQl7DQorCQkJZ2V0DQorCQkJew0KKwkJCQlvYmplY3QgdmFsdWUgPSBWaWV3U3RhdGVbTElTVF9JTlNFUlRfS0VZXTsNCisJCQkJaWYgKHZhbHVlID09IG51bGwpIHJldHVybiBmYWxzZTsNCisJCQkJcmV0dXJuIChib29sKSB2YWx1ZTsNCisJCQl9DQorCQkJc2V0IHsgVmlld1N0YXRlW0xJU1RfSU5TRVJUX0tFWV0gPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFN0b3JlIHdoZXRoZXIgY29tbWFuZCB1c2VzIGNyaXRpZXJhLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgYm9vbCBfSGFzQ3JpdGVyaWEgPSB0cnVlOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRyYWNrIHdoZXRoZXIgYSBjcml0ZXJpYSBpcyB1c2VkLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgSGFzQ3JpdGVyaWENCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0hhc0NyaXRlcmlhOyB9DQorCQkJc2V0IHsgX0hhc0NyaXRlcmlhID0gdmFsdWU7IH0NCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gQ29tbWFuZCBwcm9wZXJ0aWVzIHRvIHNldA0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFN0b3JlIHRoZSBGaW5kIENvbW1hbmQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHJpdmF0ZSBzdHJpbmcgX0ZpbmRDb21tYW5kOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgdGhlIEZpbmQgQ29tbWFuZCB0byBwcmVwYXJlIGEgbmV3IHNlYXJjaC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgdmlydHVhbCBzdHJpbmcgRmluZENvbW1hbmQNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0ZpbmRDb21tYW5kOyB9DQorCQkJc2V0IHsgX0ZpbmRDb21tYW5kID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTdG9yZSB0aGUgTGlzdCBDb21tYW5kLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgc3RyaW5nIF9MaXN0Q29tbWFuZDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHRoZSBMaXN0IENvbW1hbmQgdG8gZmlsdGVyIGl0ZW1zIGFuZCBwb3B1bGF0ZSB0aGUgRGF0YUdyaWQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIHZpcnR1YWwgc3RyaW5nIExpc3RDb21tYW5kDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9MaXN0Q29tbWFuZDsgfQ0KKwkJCXNldCB7IF9MaXN0Q29tbWFuZCA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU3RvcmUgdGhlIFNhdmUgQ29tbWFuZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIHN0cmluZyBfU2F2ZUNvbW1hbmQ7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSB0aGUgU2F2ZSBDb21tYW5kIHRvIHJldGFpbiBjaGFuZ2VzIHRvIGFuIGl0ZW0uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIHZpcnR1YWwgc3RyaW5nIFNhdmVDb21tYW5kDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9TYXZlQ29tbWFuZDsgfQ0KKwkJCXNldCB7IF9TYXZlQ29tbWFuZCA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkjcmVnaW9uIENvbHVtbiBwcm9wZXJ0aWVzIHRvIHNldCANCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTdG9yZSB0aGUga2V5IGZpZWxkLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgc3RyaW5nIF9EYXRhS2V5RmllbGQ7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSB0aGUga2V5IGZpZWxkIGZvciB0aGUgRGF0YUdyaWQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIHZpcnR1YWwgc3RyaW5nIERhdGFLZXlGaWVsZA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfRGF0YUtleUZpZWxkOyB9DQorCQkJc2V0IHsgX0RhdGFLZXlGaWVsZCA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU3RvcmUgdGhlIGxpc3Qgb2YgR3JpZENvbmZpZyBpdGVtcy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIElMaXN0IF9Db25maWdzOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBsaXN0IG9mIHRoZSBHcmlkQ29uZmlnIGl0ZW1zLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBHcmlkQ29uZmlnIGlzIGEgbG9jYWwgY2xhc3MgdGhhdCBkZXNjcmliZXMgDQorCQkvLy8gdGhlIGZpZWxkcyBuZWVkZWQgdG8gcHJvZ3JhbSBhIERhdGFHcmlkIGNvbHVtbi4NCisJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJcHVibGljIHZpcnR1YWwgSUxpc3QgQ29uZmlncw0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfQ29uZmlnczsgfQ0KKwkJCXNldCB7IF9Db25maWdzID0gdmFsdWU7IH0NCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gQ29sdW1uIHByb3BlcnRpZXMgd2l0aCBkZWZhdWx0cw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgZGVmYXVsdCB0ZXh0IGZvciB0aGUgRURJVCBjb250cm9sLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgbXNnX0VESVRfVEVYVCA9ICJFRElUIjsNCisJCQ0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgZGVmYXVsdCB0ZXh0IGZvciB0aGUgQ0FOQ0VMIGNvbnRyb2wuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBtc2dfUVVJVF9URVhUID0gIkNBTkNFTCI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBkZWZhdWx0IHRleHQgZm9yIHRoZSBTQVZFIGNvbnRyb2wuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBtc2dfU0FWRV9URVhUID0gIlNBVkUiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgZGVmYXVsdCB0ZXh0IGZvciB0aGUgSVRFTSBjb250cm9sLg0KKwkJLy8vIDwvc3VtbWFyeT4JCQ0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBtc2dfSVRFTV9URVhUID0gIiMiOw0KKwkJDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU3RvcmUgdGhlIHRleHQgZm9yIHRoZSBFRElUIGNvbnRyb2wuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHJpdmF0ZSBzdHJpbmcgX0VkaXRUZXh0ID0gbXNnX0VESVRfVEVYVDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHRoZSB0ZXh0IGZvciB0aGUgRURJVCBjb250cm9sLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyB2aXJ0dWFsIHN0cmluZyBFZGl0VGV4dA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfRWRpdFRleHQ7IH0NCisJCQlzZXQgeyBfRWRpdFRleHQgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFN0b3JlIHRoZSB0ZXh0IGZvciB0aGUgUVVJVCBjb250cm9sLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgc3RyaW5nIF9RdWl0VGV4dCA9IG1zZ19RVUlUX1RFWFQ7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSB0aGUgdGV4dCBmb3IgdGhlIFFVSVQgY29udHJvbC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgdmlydHVhbCBzdHJpbmcgUXVpdFRleHQNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX1F1aXRUZXh0OyB9DQorCQkJc2V0IHsgX1F1aXRUZXh0ID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTdG9yZSB0aGUgdGV4dCBmb3IgdGhlIFNBVkUgY29udHJvbC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIHN0cmluZyBfU2F2ZVRleHQgPSBtc2dfU0FWRV9URVhUOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgdGhlIHRleHQgZm9yIHRoZSBTQVZFIGNvbnRyb2wuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIHZpcnR1YWwgc3RyaW5nIFNhdmVUZXh0DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9TYXZlVGV4dDsgfQ0KKwkJCXNldCB7IF9TYXZlVGV4dCA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU3RvcmUgdGhlIHRleHQgZm9yIHRoZSBJVEVNIGNvbnRyb2wuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHJpdmF0ZSBzdHJpbmcgX0l0ZW1UZXh0ID0gbXNnX0lURU1fVEVYVDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHRoZSB0ZXh0IGZvciB0aGUgSVRFTSBjb250cm9sLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyB2aXJ0dWFsIHN0cmluZyBJdGVtVGV4dA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfSXRlbVRleHQ7IH0NCisJCQlzZXQgeyBfSXRlbVRleHQgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgZGVmYXVsdCB0b2tlbiB0byBzaWduYWwgYW4gaXRlbSBzZWxlY3QgY29tbWFuZC4NCisJCS8vLyA8L3N1bW1hcnk+CQkNCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgbXNnX0lURU1fQ09NTUFORCA9ICJJdGVtIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTdG9yZSB0aGUgdG9rZW4gdG8gc2lnbmFsIGFuIGl0ZW0gc2VsZWN0IGNvbW1hbmQuIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgc3RyaW5nIF9JdGVtQ29tbWFuZCA9IG1zZ19JVEVNX0NPTU1BTkQ7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSB0aGUgdG9rZW4gdG8gc2lnbmFsIGFuIGl0ZW0gc2VsZWN0IGNvbW1hbmQuIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyB2aXJ0dWFsIHN0cmluZyBJdGVtQ29tbWFuZE5hbWUNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0l0ZW1Db21tYW5kOyB9DQorCQkJc2V0IHsgX0l0ZW1Db21tYW5kID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTdG9yZSB3aGV0aGVyIGFuIGl0ZW0gY29sdW1uIGlzIHByZXNlbnRlZCBbZmFsc2VdLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgYm9vbCBfSGFzSXRlbUNvbHVtbiA9IGZhbHNlOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgd2hldGhlciBhbiBpdGVtIGNvbHVtbiBpcyBwcmVzZW50ZWQgW2ZhbHNlXS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgdmlydHVhbCBib29sIEhhc0l0ZW1Db2x1bW4NCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0hhc0l0ZW1Db2x1bW47IH0NCisJCQlzZXQgeyBfSGFzSXRlbUNvbHVtbiA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU3RvcmUgd2hldGhlciBhbiBlZGl0IGNvbHVtbiBpcyBwcmVzZW50ZWQgW2ZhbHNlXS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIGJvb2wgX0hhc0VkaXRDb2x1bW4gPSBmYWxzZTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHdoZXRoZXIgYW4gZWRpdCBjb2x1bW4gaXMgcHJlc2VudGVkIFtmYWxzZV0uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIHZpcnR1YWwgYm9vbCBIYXNFZGl0Q29sdW1uDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9IYXNFZGl0Q29sdW1uOyB9DQorCQkJc2V0IHsgX0hhc0VkaXRDb2x1bW4gPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFN0b3JlIHdoZXRoZXIgZGF0YXNldCBpcyBiZWluZyBhY2Nlc3NlZCBwYWdlIGJ5IHBhZ2UuIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgYm9vbCBfQWxsb3dDdXN0b21QYWdpbmcgPSB0cnVlOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgd2hldGhlciBkYXRhc2V0IGlzIGJlaW5nIGFjY2Vzc2VkIHBhZ2UgYnkgcGFnZS4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIEN1c3RvbSBwYWdpbmcgcmVmZXJzIHRvIHdoZXRoZXIgdGhlIGVudGlyZSBkYXRhc2V0IGlzIHJldHJpZXZlZCBhbGwgYXQgb25jZQ0KKwkJLy8vIG9yIHdoZXRoZXIgdGhlIGl0ZW1zIHRvIGZpbGwgdGhlIGN1cnJlbnQgcGFnZSBhcmUgcmV0cmlldmVkLg0KKwkJLy8vIEEgRGF0YUdyaWQgbWF5IGJlIGNvbmZpZ3VyZWQgdG8gZGlzcGxheSBwYWdlcyB3aXRoIEFsbG93Q3VzdGVvbVBhZ2luZyBzZXQgdG8gZmFsc2UsIA0KKwkJLy8vIGJ1dCB0aGUgdW5kZXJseWluZyBxdWVyeSBzaG91bGQgcmV0cmlldmUgdGhlIGVudGlyZSBkYXRhc2V0IHVwIGZyb250Lg0KKwkJLy8vIFdoZXRoZXIgcGFnZSBudW1iZXJzIGFyZSB1c2VkIGlzIHNldCBpbiB0aGUgRGF0YUdyaWQgbWFya3VwLCBub3QgaGVyZS4NCisJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJcHVibGljIHZpcnR1YWwgYm9vbCBBbGxvd0N1c3RvbVBhZ2luZw0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfQWxsb3dDdXN0b21QYWdpbmc7IH0NCisJCQlzZXQgeyBfQWxsb3dDdXN0b21QYWdpbmcgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFN0b3JlIHRoZSBBU1AuTkVUIGRlZmF1bHQgZm9yIGEgRGF0YUdyaWQgcGFnZSBzaXplLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCWNvbnN0IGludCBERUZBVUxUX0RBVEFHUklEX1BBR0VTSVpFID0gMTA7DQorCQkNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTdG9yZSB0aGUgRGF0YUdyaWQgZGVmYXVsdCBwYWdlIHNpemUuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHJpdmF0ZSBpbnQgX1BhZ2VTaXplID0gREVGQVVMVF9EQVRBR1JJRF9QQUdFU0laRTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHRoZSBEYXRhR3JpZCBkZWZhdWx0IHBhZ2Ugc2l6ZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgdmlydHVhbCBpbnQgUGFnZVNpemUNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX1BhZ2VTaXplOyB9DQorCQkJc2V0IHsgX1BhZ2VTaXplID0gdmFsdWU7IH0NCisJCX0NCisNCisJCSNlbmRyZWdpb24JCQ0KKw0KKwkJI3JlZ2lvbiBCaW5kaW5nIG1ldGhvZHMgDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU2V0IHRoZSBIZWxwZXIncyBvdXRjb21lIHRvIHRoZSBEYXRhR3JpZCBkYXRhc291cmNlLCANCisJCS8vLyBhbmQgdXBkYXRlIHRoZSB2aXJ0dWFsIGl0ZW0gY291bnQgaWYgQWxsb3dDdXN0b21QYWdpbmcuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJoZWxwZXIiPjwvcGFyYW0+DQorCQlwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIERhdGFTb3VyY2UoSVZpZXdIZWxwZXIgaGVscGVyKQ0KKwkJew0KKwkJCUlMaXN0IGxpc3QgPSBoZWxwZXIuT3V0Y29tZTsNCisJCQlEYXRhR3JpZCBncmlkID0gR3JpZDsNCisJCQlncmlkLkRhdGFTb3VyY2UgPSBsaXN0Ow0KKwkJCWlmIChncmlkLkFsbG93Q3VzdG9tUGFnaW5nKQ0KKwkJCXsNCisJCQkJZ3JpZC5WaXJ0dWFsSXRlbUNvdW50ID0gR2V0SXRlbUNvdW50KGhlbHBlcik7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEJpbmQgdGhlIGN1cnJlbnQgZGF0YXNvdXJjZSB0byB0aGUgYmFzZSBjb250cm9sIGFuZCB0aGUgRGF0YUdyaWQgY29udHJvbC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgb3ZlcnJpZGUgdm9pZCBEYXRhQmluZCgpDQorCQl7DQorCQkJYmFzZS5EYXRhQmluZCgpOw0KKwkJCUdyaWQuRGF0YUJpbmQoKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb25maWd1cmUgYSBjb250cm9sIGNvbHVtbiB0byBzZWxlY3QgYSBEYXRhR3JpZCBpdGVtIChvciByb3cpLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0icG9zIj5UaGUgY29sdW1uIHBvc2l0aW9uPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5UaGUgbmV4dCBjb2x1bW4gcG9zaXRpb248L3JldHVybnM+DQorCQlwcm90ZWN0ZWQgdmlydHVhbCBpbnQgQmluZEl0ZW1Db2x1bW4oaW50IHBvcykNCisJCXsNCisJCQlCdXR0b25Db2x1bW4gY29sdW1uID0gbmV3IEJ1dHRvbkNvbHVtbigpOw0KKwkJCWNvbHVtbi5CdXR0b25UeXBlID0gQnV0dG9uQ29sdW1uVHlwZS5QdXNoQnV0dG9uOw0KKwkJCWNvbHVtbi5UZXh0ID0gSXRlbVRleHQ7DQorCQkJY29sdW1uLkNvbW1hbmROYW1lID0gSXRlbUNvbW1hbmROYW1lOw0KKwkJCUdyaWQuQ29sdW1ucy5BZGRBdChwb3MsIGNvbHVtbik7DQorCQkJcmV0dXJuICsrcG9zOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENvbmZpZ3VyZSBhIGNvbnRyb2wgY29sdW1uIHRvIGVkaXQgYSBEYXRhR3JpZCBpdGVtIChvciByb3cpLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0icG9zIj5UaGUgY29sdW1uIHBvc2l0aW9uPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5UaGUgbmV4dCBjb2x1bW4gcG9zaXRpb248L3JldHVybnM+DQorCQlwcm90ZWN0ZWQgdmlydHVhbCBpbnQgQmluZEVkaXRDb2x1bW4oaW50IHBvcykNCisJCXsNCisJCQlFZGl0Q29tbWFuZENvbHVtbiBjb2x1bW4gPSBuZXcgRWRpdENvbW1hbmRDb2x1bW4oKTsNCisJCQljb2x1bW4uQnV0dG9uVHlwZSA9IEJ1dHRvbkNvbHVtblR5cGUuUHVzaEJ1dHRvbjsNCisJCQljb2x1bW4uRWRpdFRleHQgPSBFZGl0VGV4dDsNCisJCQljb2x1bW4uQ2FuY2VsVGV4dCA9IFF1aXRUZXh0Ow0KKwkJCWNvbHVtbi5VcGRhdGVUZXh0ID0gU2F2ZVRleHQ7DQorCQkJR3JpZC5Db2x1bW5zLkFkZEF0KHBvcywgY29sdW1uKTsNCisJCQlyZXR1cm4gKytwb3M7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQ29uZmlndXJlIHRoZSBsaXN0IG9mIGN1c3RvbSBjb2x1bW5zLCBzdGFydGluZyBmcm9tIGEgZ2l2ZW4gY29sdW1uIHBvc2l0aW9uLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBJZiB0aGUgZWRpdCBvciBpdGVtIGNvbHVtbnMgaGF2ZSBhbHJlYWR5IGJlZW4gY29uZmlndXJlZCwgDQorCQkvLy8gdGhlbiBzdGFydGluZyBwb3NpdGlvbiBtYXkgYmUgMSBvciAyLg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQkvLy8gPHBhcmFtIG5hbWU9InBvcyI+U3RhcnRpbmcgY29sdW1uIHBvc2l0aW9uPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5OZXh0IGNvbHVtbiBwb3NpdGlvbjwvcmV0dXJucz4NCisJCXByb3RlY3RlZCB2aXJ0dWFsIGludCBCaW5kQ29sdW1ucyhpbnQgcG9zKQ0KKwkJew0KKwkJCURhdGFHcmlkIGdyaWQgPSBHcmlkOw0KKwkJCWdyaWQuRGF0YUtleUZpZWxkID0gRGF0YUtleUZpZWxkOw0KKwkJCUlMaXN0IGNvbmZpZ3MgPSBDb25maWdzOw0KKwkJCWludCBjb2xDb3VudCA9IGNvbmZpZ3MuQ291bnQ7DQorCQkJZm9yIChpbnQgYyA9IDA7IGMgPCBjb2xDb3VudDsgYysrKQ0KKwkJCXsNCisJCQkJSUdyaWRDb25maWcgY29uZmlnID0gY29uZmlnc1tjXSBhcyBJR3JpZENvbmZpZzsNCisJCQkJaWYgKGNvbmZpZy5IYXNUZW1wbGF0ZSkNCisJCQkJew0KKwkJCQkJcG9zID0gQmluZFRlbXBsYXRlQ29sdW1uKHBvcywgY29uZmlnKTsNCisJCQkJfQ0KKwkJCQllbHNlIHBvcyA9IEJpbmRDb2x1bW4ocG9zLCBjb25maWcpOw0KKwkJCX0NCisJCQlyZXR1cm4gcG9zOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENvbmZpZ3VyZSBhIERhdGFHcmlkIGNvbHVtbiBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24sIA0KKwkJLy8vIHVzaW5nIHRoZSBJR3JpZENvbmZpZyBzZXR0aW5ncy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InBvcyI+UG9zaXRpb24gdG8gaW5zZXJ0IGNvbHVtbjwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbmZpZyI+Q29sdW1uIHNldHRpbmdzPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5UaGUgbmV4dCBjb2x1bW4gcG9zPC9yZXR1cm5zPg0KKwkJcHJvdGVjdGVkIGludCBCaW5kQ29sdW1uKGludCBwb3MsIElHcmlkQ29uZmlnIGNvbmZpZykNCisJCXsNCisJCQlCb3VuZENvbHVtbiBjb2x1bW4gPSBuZXcgQm91bmRDb2x1bW4oKTsNCisJCQljb2x1bW4uSGVhZGVyVGV4dCA9IGNvbmZpZy5IZWFkZXJUZXh0Ow0KKwkJCWNvbHVtbi5EYXRhRmllbGQgPSBjb25maWcuRGF0YUZpZWxkOw0KKwkJCS8vIGNvbHVtbi5Tb3J0RXhwcmVzc2lvbiA9IGNvbmZpZy5zb3J0RXhwcmVzc2lvbjsgLy8gU2VlIERhdGFHcmlkQ29sdW1uLlNvcnRFeHByZXNzaW9uIFByb3BlcnR5DQorCQkJLy8gY29sdW1uLkRhdGFGb3JtYXRTdHJpbmcgPSBjb25maWcuZGF0YUZvcm1hdDsgLy8gU2VlIEZvcm1hdHRpbmcgVHlwZXMgaW4gLk5FVCBEZXYgR3VpZGUNCisJCQlHcmlkLkNvbHVtbnMuQWRkQXQocG9zLCBjb2x1bW4pOw0KKwkJCXJldHVybiBwb3MgKyAxOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENvbmZpZ3VyZSBhIHRlbXBsYXRlIGNvbHVtbiBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24sIA0KKwkJLy8vIHVzaW5nIHRoZSBJR3RyaWRDb25maWcgc2V0dGluZ3MuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJwb3MiPlBvc2l0aW9uIHRvIGluc2VydCBjb2x1bW48L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb25maWciPkNvbHVtbiBzZXR0aW5nczwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+VGhlIG5leHQgY29sdW1uIHBvczwvcmV0dXJucz4NCisJCXByb3RlY3RlZCBpbnQgQmluZFRlbXBsYXRlQ29sdW1uKGludCBwb3MsIElHcmlkQ29uZmlnIGNvbmZpZykNCisJCXsNCisJCQlUZW1wbGF0ZUNvbHVtbiBjb2x1bW4gPSBuZXcgVGVtcGxhdGVDb2x1bW4oKTsNCisJCQljb2x1bW4uSGVhZGVyVGV4dCA9IGNvbmZpZy5IZWFkZXJUZXh0Ow0KKwkJCWNvbHVtbi5JdGVtVGVtcGxhdGUgPSBjb25maWcuSXRlbVRlbXBsYXRlOw0KKwkJCWNvbHVtbi5FZGl0SXRlbVRlbXBsYXRlID0gY29uZmlnLkVkaXRJdGVtVGVtcGxhdGU7DQorCQkJLy8gY29sdW1uLlNvcnRFeHByZXNzaW9uID0gY29uZmlnLnNvcnRFeHByZXNzaW9uOyAvLyBTZWUgRGF0YUdyaWRDb2x1bW4uU29ydEV4cHJlc3Npb24gUHJvcGVydHkNCisJCQkvLyBjb2x1bW4uRGF0YUZvcm1hdFN0cmluZyA9IGNvbmZpZy5kYXRhRm9ybWF0OyAvLyBTZWUgRm9ybWF0dGluZyBUeXBlcyBpbiAuTkVUIERldiBHdWlkZQ0KKwkJCUdyaWQuQ29sdW1ucy5BZGRBdChwb3MsIGNvbHVtbik7DQorCQkJcmV0dXJuIHBvcyArIDE7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU3RvcmUgd2hldGhlciB0aGUgRGF0YUdyaWQgaGFzIGJlZSBjb25maWd1cmVkLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgYm9vbCBiaW5kID0gdHJ1ZTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJbml0aWFsaXplIHRoZSBEYXRhR3JpZCB3aXRoIGFueSBjdXN0b20gY29sdW1ucy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+DQorCQkvLy8gVGhpcyBtZXRob2QgaXMgbWVhbnQgdG8gYmUgb3ZlcnJpZGVuIGJ5IHN1YmNsYXNzZXMgDQorCQkvLy8gdG8gcHJvZ3JhbSBhIGN1c3RvbSBzZXQgb2YgRGF0YUdyaWQgY29sdW1ucy4NCisJCS8vLyA8L3JlbWFya3M+DQorCQlwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEluaXRHcmlkKCkNCisJCXsNCisJCQliaW5kID0gdHJ1ZTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBPYnRhaW4gdGhlIGl0ZW0gY291bnQgZnJvbSBIZWxwZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJoZWxwZXIiPlRoZSBoZWxwZXIgdG8gZXhhbWluZTwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+VG90YWwgY291bnQgb2YgaXRlbXMgZm9yIGFsbCBwYWdlczwvcmV0dXJucz4NCisJCS8vLyAJDQorCQlwcm90ZWN0ZWQgaW50IEdldEl0ZW1Db3VudChJVmlld0hlbHBlciBoZWxwZXIpDQorCQl7DQorCQkJcmV0dXJuIENvbnZlcnQuVG9JbnQzMihoZWxwZXIuQ3JpdGVyaWFbSVRFTV9DT1VOVF0pOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIE9idGFpbiB0aGUgaXRlbSBwYWdlIGZyb20gSGVscGVyLCBvciB6ZXJvIGlmIG5vIHBhZ2Ugc2V0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iaGVscGVyIj5UaGUgaGVscGVyIHRvIGV4YW1pbmU8L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPkN1cnJlbnQgcGFnZSBudW1iZXIgd2l0aGluIGRhdGEgc2V0PC9yZXR1cm5zPg0KKwkJLy8vIAkNCisJCXByb3RlY3RlZCBpbnQgR2V0SXRlbVBhZ2UoSVZpZXdIZWxwZXIgaGVscGVyKQ0KKwkJew0KKwkJCW9iamVjdCBwYWdlID0gaGVscGVyLkNyaXRlcmlhW0lURU1fUEFHRV07DQorCQkJaWYgKHBhZ2U9PW51bGwpIHJldHVybiAwOwkJCQ0KKwkJCXJldHVybiBDb252ZXJ0LlRvSW50MzIocGFnZSk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVXBkYXRlIHRoZSBpdGVtIHBhZ2UgZnJvbSBIZWxwZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJoZWxwZXIiPlRoZSBoZWxwZXIgdG8gZXhhbWluZTwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+Q3VycmVudCBwYWdlIG51bWJlciBmb3IgY3VycmVudCBpdGVtPC9yZXR1cm5zPg0KKwkJLy8vIAkNCisJCXByb3RlY3RlZCB2b2lkIFNldEl0ZW1QYWdlKElWaWV3SGVscGVyIGhlbHBlciwgaW50IHBhZ2UpDQorCQl7DQorCQkJaGVscGVyLkNyaXRlcmlhW0lURU1fUEFHRV0gPSBDb252ZXJ0LlRvU3RyaW5nKHBhZ2UpOw0KKwkJfQ0KKw0KKwkJDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVXBkYXRlIHRoZSBpdGVtIG9mZnNldCBmcm9tIEhlbHBlci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImhlbHBlciI+VGhlIGhlbHBlciB0byBleGFtaW5lPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5DdXJyZW50IHBhZ2UgbnVtYmVyIGZvciBjdXJyZW50IGl0ZW08L3JldHVybnM+DQorCQkvLy8gCQ0KKwkJcHJvdGVjdGVkIHZvaWQgU2V0SXRlbU9mZnNldChJVmlld0hlbHBlciBoZWxwZXIsIGludCBvZnMpDQorCQl7DQorCQkJaGVscGVyLkNyaXRlcmlhW0lURU1fT0ZGU0VUXSA9IENvbnZlcnQuVG9TdHJpbmcob2ZzKTsNCisJCX0NCisNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBPYnRhaW4gdGhlIGl0ZW0ga2V5IGZpZWxkIG5hbWUuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5UaGUgY29udGV4dCB0byBleGFtaW5lPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5OYW1lIG9mIGtleSBmaWVsZDwvcmV0dXJucz4NCisJCS8vLyAJDQorCQlwcm90ZWN0ZWQgb2JqZWN0IEdldEl0ZW1LZXkoSURpY3Rpb25hcnkgY29udGV4dCkNCisJCXsNCisJCQlpZiAoY29udGV4dD09bnVsbCkgcmV0dXJuIG51bGw7DQorCQkJcmV0dXJuIGNvbnRleHRbSVRFTV9LRVldOw0KKwkJfQ0KKwkJDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU3RvcmUgdGhlIGl0ZW0ga2V5IGZpZWxkIG5hbWUuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5UaGUgY29udGV4dCB0byBleGFtaW5lPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ia2V5Ij5UaGUgbmFtZSBvZiB0aGUgaXRlbSBrZXkgZmllbGQ8L3BhcmFtPg0KKwkJLy8vIAkNCisJCXByb3RlY3RlZCB2b2lkIFNldEl0ZW1LZXkoSURpY3Rpb25hcnkgY29udGV4dCwgc3RyaW5nIGtleSkNCisJCXsNCisJCQlpZiAoY29udGV4dCE9bnVsbCkgY29udGV4dFtJVEVNX0tFWV0gPSBrZXk7DQorCQl9DQorCQkNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBPYnRhaW4gdGhlIGl0ZW0ga2V5IHZhbHVlIGZvciBIZWxwZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5UaGUgY29udGV4dCB0byBleGFtaW5lPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5DdXJyZW50IHBhZ2UgbnVtYmVyIHdpdGhpbiBkYXRhIHNldDwvcmV0dXJucz4NCisJCS8vLyAJDQorCQlwcm90ZWN0ZWQgb2JqZWN0IEdldEl0ZW1LZXlWYWx1ZShJRGljdGlvbmFyeSBjb250ZXh0KQ0KKwkJew0KKwkJCWlmIChjb250ZXh0PT1udWxsKSByZXR1cm4gbnVsbDsNCisJCQlvYmplY3Qga2V5ID0gY29udGV4dFtJVEVNX0tFWV07DQorCQkJaWYgKGtleT09bnVsbCkgcmV0dXJuIG51bGw7DQorCQkJcmV0dXJuIGNvbnRleHRba2V5XTsNCisJCX0NCisJCQ0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFVwZGF0ZSB0aGUgaXRlbSBrZXkgdmFsdWUgZm9yIEhlbHBlciwgZXNwZWNpYWxseSB0byBjbGVhciBvbiBBZGQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5UaGUgY29udGV4dCB0byBleGFtaW5lPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5DdXJyZW50IHBhZ2UgbnVtYmVyIHdpdGhpbiBkYXRhIHNldDwvcmV0dXJucz4NCisJCS8vLyAJDQorCQlwcm90ZWN0ZWQgdm9pZCBTZXRJdGVtS2V5VmFsdWUoSURpY3Rpb25hcnkgY29udGV4dCwgc3RyaW5nIHZhbCkNCisJCXsNCisJCQlpZiAoY29udGV4dD09bnVsbCkgcmV0dXJuOw0KKwkJCW9iamVjdCBrZXkgPSBjb250ZXh0W0lURU1fS0VZXTsNCisJCQlpZiAoa2V5IT1udWxsKSBjb250ZXh0W2tleV0gPSB2YWw7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQ29uZmlndXJlIHRoZSBEYXRhR3JpZCBmb3IgaW5pdGlhbCBkaXNwbGF5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iaGVscGVyIj5UaGUgSGVscGVyIHdpdGggYW4gb3V0Y29tZSB0byBiaW5kIGFzIGEgRGF0YVNvdXJjZTwvcGFyYW0+DQorCQlwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEJpbmRHcmlkKElWaWV3SGVscGVyIGhlbHBlcikNCisJCXsNCisNCisJCQkvLyBPbmx5IGJpbmQgY29sdW1ucyBvbmNlDQorCQkJLy8gV0FSTklORzogV29uJ3Qgd29yayB3aXRoIGEgc2luZ2xldG9uDQorCQkJRGF0YUdyaWQgZ3JpZCA9IEdyaWQ7DQorCQkJaW50IGNvdW50ID0gKGhlbHBlci5PdXRjb21lKS5Db3VudDsNCisJCQlpZiAoYmluZCkNCisJCQl7DQorCQkJCWJpbmQgPSBmYWxzZTsNCisJCQkJaW50IGkgPSAwOw0KKwkJCQlpZiAoSGFzRWRpdENvbHVtbikgaSA9IEJpbmRFZGl0Q29sdW1uKGkpOw0KKwkJCQlpZiAoSGFzSXRlbUNvbHVtbikgaSA9IEJpbmRJdGVtQ29sdW1uKGkpOw0KKwkJCQkvLyBBZG9wdCBhbnkgZGlyZWN0IGNoYW5nZXMgdG8gR3JpZCBvYmplY3QNCisJCQkJaWYgKGdyaWQuUGFnZVNpemU9PURFRkFVTFRfREFUQUdSSURfUEFHRVNJWkUpIGdyaWQuUGFnZVNpemUgPSBQYWdlU2l6ZTsNCisJCQkJQWxsb3dDdXN0b21QYWdpbmcgPSBBbGxvd0N1c3RvbVBhZ2luZyB8fCBncmlkLkFsbG93Q3VzdG9tUGFnaW5nOw0KKwkJCQkvLyBDaGVjayBjdXN0b20gcGFnZSBzZXR0aW5ncw0KKwkJCQlpZiAoQWxsb3dDdXN0b21QYWdpbmcpDQorCQkJCXsJCQkJCQ0KKwkJCQkJZ3JpZC5BbGxvd0N1c3RvbVBhZ2luZyA9IHRydWU7DQorCQkJCQljb3VudCA9IEdldEl0ZW1Db3VudChoZWxwZXIpOw0KKwkJCQkJZ3JpZC5WaXJ0dWFsSXRlbUNvdW50ID0gY291bnQ7DQorCQkJCQlpbnQgcGFnZSA9IEdldEl0ZW1QYWdlKGhlbHBlcik7DQorCQkJCQlpZiAocGFnZSE9MCkgZ3JpZC5DdXJyZW50UGFnZUluZGV4ID0gcGFnZTsNCisJCQkJfQ0KKwkJCQlCaW5kQ29sdW1ucyhpKTsNCisJCQl9DQorCQkJTGlzdFBhZ2VJbmRleENoYW5nZWRfUmFpc2UodGhpcywNCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLkN1cnJlbnRQYWdlSW5kZXgsDQorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC5QYWdlU2l6ZSwNCisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCk7DQorCQkJRGF0YVNvdXJjZShoZWxwZXIpOw0KKwkJCURhdGFCaW5kKCk7DQorCQl9DQorDQorCQkjZW5kcmVnaW9uIA0KKw0KKwkJI3JlZ2lvbiBTcGVjaWFsIFJlYWRDb250cm9scyBtZXRob2QgDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5zcGVjdCBhIGNvbGxlY3Rpb24gb2YgRGF0YUdyaWQgY29udHJvbHMgYW5kIHNldCBjb250cm9sIHZhbHVlcyB0byBhIGRpY3Rpb25hcnkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250cm9scyI+RGF0YUdyaWQgQ29udHJvbCBDb2xsZWN0aW9uPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZGljdGlvbmFyeSI+T3V0cHV0IG9iamVjdCBmb3IgY29udHJvbCB2YWx1ZXM8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJrZXlzIj5MaXN0IG9mIGNvbnRyb2wvYXR0cmlidXRlIG5hbWVzIHRvIGNvbGxlY3Q8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJudWxsSWZFbXB0eSI+SWYgdmFsdWUgaXMgYW4gZW1wdHkgc3Ryb25nLCBzZXQgdG8gbnVsbDwvcGFyYW0+DQorCQlwcm90ZWN0ZWQgdm9pZCBSZWFkR3JpZENvbnRyb2xzKENvbnRyb2xDb2xsZWN0aW9uIGNvbnRyb2xzLCBJRGljdGlvbmFyeSBkaWN0aW9uYXJ5LCBzdHJpbmdbXSBrZXlzLCBib29sIG51bGxJZkVtcHR5KQ0KKwkJew0KKwkJCWludCBpID0gLTE7DQorCQkJZm9yZWFjaCAoQ29udHJvbCB0IGluIGNvbnRyb2xzKQ0KKwkJCXsNCisJCQkJaSsrOw0KKwkJCQlzdHJpbmcga2V5ID0ga2V5c1tpXTsNCisJCQkJaWYgKElzVGV4dEJveCh0KSkNCisJCQkJew0KKwkJCQkJVGV4dEJveCB4ID0gKFRleHRCb3gpIHQ7DQorCQkJCQlzdHJpbmcgdmFsdWUgPSAobnVsbElmRW1wdHkpID8gTnVsbE9uRW1wdHkoeC5UZXh0KSA6IHguVGV4dDsNCisJCQkJCWRpY3Rpb25hcnkuQWRkKGtleSwgdmFsdWUpOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzTGFiZWwodCkpDQorCQkJCXsNCisJCQkJCUxhYmVsIHggPSAoTGFiZWwpIHQ7DQorCQkJCQlzdHJpbmcgdmFsdWUgPSAobnVsbElmRW1wdHkpID8gTnVsbE9uRW1wdHkoeC5UZXh0KSA6IHguVGV4dDsNCisJCQkJCWRpY3Rpb25hcnkuQWRkKGtleSwgdmFsdWUpOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzTGlzdENvbnRyb2wodCkpDQorCQkJCXsNCisJCQkJCUxpc3RDb250cm9sIHggPSAoTGlzdENvbnRyb2wpIHQ7DQorCQkJCQlzdHJpbmcgdmFsdWUgPSAobnVsbElmRW1wdHkpID8gTnVsbE9uRW1wdHkoeC5TZWxlY3RlZFZhbHVlKSA6IHguU2VsZWN0ZWRWYWx1ZTsNCisJCQkJCWRpY3Rpb25hcnkuQWRkKGtleSwgdmFsdWUpOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzQ2hlY2tCb3godCkpDQorCQkJCXsNCisJCQkJCUNoZWNrQm94IHggPSAoQ2hlY2tCb3gpIHQ7DQorCQkJCQlzdHJpbmcgdmFsdWUgPSAoeC5DaGVja2VkKSA/IGtleSA6IG51bGw7DQorCQkJCQlkaWN0aW9uYXJ5LkFkZChrZXksIHZhbHVlKTsNCisJCQkJCWNvbnRpbnVlOw0KKwkJCQl9DQorCQkJCWlmIChJc1JhZGlvQnV0dG9uKHQpKQ0KKwkJCQl7DQorCQkJCQlSYWRpb0J1dHRvbiB4ID0gKFJhZGlvQnV0dG9uKSB0Ow0KKwkJCQkJc3RyaW5nIHZhbHVlID0gKHguQ2hlY2tlZCkgPyBrZXkgOiBudWxsOw0KKwkJCQkJZGljdGlvbmFyeS5BZGQoa2V5LCB2YWx1ZSk7DQorCQkJCQljb250aW51ZTsNCisJCQkJfQ0KKwkJCX0NCisNCisJCQkvLy8gV29ya2Fyb3VuZCBzbyB0aGF0IHRlbXBsYXRlIGNvbHVtbnMgY2FuIGJlIHV0aWxpemVkIGJ5IGEgZHluYW1pYyBEYXRhR3JpZC4NCisJCQkvLy8gW09WUi0yNF0gLSBUZW1wbGF0ZSBjb2x1bW5zIG5vdCBwYXNzZWQgYnkgRGF0YUdyaWRDb21tYW5kRXZlbnRBcmdzDQorCQkJZm9yZWFjaCAoSUdyaWRDb25maWcgYyBpbiBDb25maWdzKQ0KKwkJCXsNCisJCQkJYm9vbCBpc1RlbXBsYXRlQ29sdW1uID0gYy5JdGVtVGVtcGxhdGUhPW51bGw7DQorCQkJCWlmIChpc1RlbXBsYXRlQ29sdW1uKQ0KKwkJCQl7DQorCQkJCQlzdHJpbmcga2V5ID0gYy5EYXRhRmllbGQ7DQorCQkJCQlzdHJpbmcgdmFsdWUgPSAgRmluZENvbnRyb2xWYWx1ZShrZXkpOw0KKwkJCQkJZGljdGlvbmFyeS5BZGQoa2V5LHZhbHVlKTsNCisJCQkJfQ0KKwkJCX0NCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gQ29tbWFuZCBtZXRob2RzDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBhbiBpbnRlcm5hbCBleHRlbnNpb24gcG9pbnQgDQorCQkvLy8gdGhhdCBjYW4gcmV0dXJuIGFuIGVudHJ5IGl0ZW0gb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUgDQorCQkvLy8gdG8gdXNlIHdoZW4gYWRkaW5nIGEgbmV3IGVudHJ5IHRvIHRoZSBkYXRhc2V0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByb3RlY3RlZCB2aXJ0dWFsIElFbnRyeUxpc3QgTmV3Q29udGV4dExpc3QNCisJCXsNCisJCQlnZXQgeyB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFeGNlcHRpb24oKTsgfQ0KKwkJfQ0KKwkJDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQ3JlYXRlIGEgYmxhbmsgZm9yIGVkaXRpbmcgYnkgY3JlYXRpbmcgYW4gZW1wdHkgcm93IA0KKwkJLy8vIGFuZCB0ZW1wb3JhcmlseSBjaGFuZ2luZyB0aGUgZGF0YXNvdXJjZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJldHVybnM+PC9yZXR1cm5zPg0KKwkJcHJvdGVjdGVkIHZpcnR1YWwgSVZpZXdIZWxwZXIgRGF0YUluc2VydCgpDQorCQl7DQorCQkJRGF0YUdyaWQgZ3JpZCA9IEdyaWQ7DQorCQkJSUVudHJ5TGlzdCBsaXN0ID0gTmV3Q29udGV4dExpc3Q7DQorCQkJLy8gRmFrZSBhIGJsYW5rIHJvdw0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IEdldEhlbHBlckZvcihMaXN0Q29tbWFuZCk7DQorCQkJbGlzdC5JbnNlcnQoU3RyaW5nLkVtcHR5KTsNCisJCQloZWxwZXIuQ3JpdGVyaWFbTGlzdENvbW1hbmRdID0gbGlzdDsNCisJCQlncmlkLkRhdGFTb3VyY2UgPSBsaXN0Ow0KKwkJCWdyaWQuQ3VycmVudFBhZ2VJbmRleCA9IDA7DQorCQkJZ3JpZC5FZGl0SXRlbUluZGV4ID0gMDsNCisJCQlCaW5kR3JpZChoZWxwZXIpOw0KKwkJCXJldHVybiBoZWxwZXI7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW52b2tlIGEgRmluZCBjb21tYW5kLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ia2V5Ij5EYXRhIGluZGV4IGtleSBmb3IgdGhlIGVudHJ5LCBpZiBhbnk8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250cm9scyI+VGhlIHNldCBvZiBjb250cm9sczwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+VGhlIGV4ZWN1dGVkIGhlbHBlcjwvcmV0dXJucz4NCisJCXByb3RlY3RlZCB2aXJ0dWFsIElWaWV3SGVscGVyIEZpbmQoc3RyaW5nIGtleSwgQ29udHJvbENvbGxlY3Rpb24gY29udHJvbHMpDQorCQl7DQorCQkJSVZpZXdIZWxwZXIgaGVscGVyID0gRXhlY3V0ZUJpbmQoRmluZENvbW1hbmQpOw0KKwkJCXJldHVybiBoZWxwZXI7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW52b2tlIGEgU2F2ZSBjb21tYW5kLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ia2V5Ij5EYXRhIGluZGV4IGtleSBmb3IgdGhlIGVudHJ5LCBpZiBhbnk8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250cm9scyI+VGhlIHNldCBvZiBjb250cm9sczwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+VGhlIGV4ZWN1dGVkIGhlbHBlcjwvcmV0dXJucz4NCisJCXByb3RlY3RlZCB2aXJ0dWFsIElWaWV3SGVscGVyIFNhdmUoc3RyaW5nIGtleSwgQ29udHJvbENvbGxlY3Rpb24gY29udHJvbHMpDQorCQl7DQorCQkJSVZpZXdIZWxwZXIgaCA9IEdldEhlbHBlckZvcihTYXZlQ29tbWFuZCk7DQorCQkJaWYgKGguSXNOb21pbmFsKQ0KKwkJCXsNCisJCQkJSUxpc3QgY29uZmlncyA9IENvbmZpZ3M7DQorCQkJCWguQ3JpdGVyaWFbRGF0YUtleUZpZWxkXSA9IGtleTsNCisJCQkJaW50IGNvbHMgPSBjb25maWdzLkNvdW50Ow0KKwkJCQlzdHJpbmdbXSBrZXlzID0gbmV3IHN0cmluZ1syICsgY29sc107DQorCQkJCS8vIHJlY29uc3RydWN0IHRoZSBzdGFuZGFyZCBlZGl0IGNvbHVtbiBrZXlzDQorCQkJCS8vIGp1c3QgYXMgcGxhY2Vob2xkZXJzLCByZWFsbHkNCisJCQkJa2V5c1swXSA9IFNhdmVUZXh0Ow0KKwkJCQlrZXlzWzFdID0gUXVpdFRleHQ7DQorCQkJCWludCBpbmRleCA9IDI7DQorCQkJCS8vIGFwcGVuZCBvdXIgZmllbGQgbmFtZXMgdG8gdGhlIGFycmF5IG9mIGtleXMNCisJCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBjb2xzOyBpKyspDQorCQkJCQlrZXlzW2luZGV4KytdID0gKGNvbmZpZ3NbaV0gYXMgSUdyaWRDb25maWcpLkRhdGFGaWVsZDsNCisJCQkJUmVhZEdyaWRDb250cm9scyhjb250cm9scywgaC5Dcml0ZXJpYSwga2V5cywgdHJ1ZSk7DQorDQorCQkJCWguRXhlY3V0ZSgpOw0KKwkJCX0NCisJCQlyZXR1cm4gaDsNCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gTG9hZGluZyBtZXRob2RzDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW52b2tlIGEgTGlzdENvbW1hbmQgdGhhdCBkb2Vzbid0IHJlcXVpcmUgYSBjcml0ZXJpYS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJldHVybnM+RXhlY3V0ZWQgaGVscGVyPC9yZXR1cm5zPg0KKwkJcHVibGljIHZpcnR1YWwgSVZpZXdIZWxwZXIgRXhlY3V0ZUxpc3QoKQ0KKwkJew0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IEV4ZWN1dGUoTGlzdENvbW1hbmQpOw0KKwkJCWJvb2wgb2theSA9IGhlbHBlci5Jc05vbWluYWw7DQorCQkJaWYgKG9rYXkpIEJpbmRHcmlkKGhlbHBlcik7IC8vIERvQmluZEdyaWQgPSBoZWxwZXI7DQorCQkJcmV0dXJuIGhlbHBlcjsNCisJCX0NCisJCQ0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIExvb2sgZm9yIGEgSXNzdWVFdmVudEtleSwgYW5kIHNjcm9sbCB0byBpdCwgaWYgZm91bmQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjcml0ZXJpYSI+SW5wdXQvb3V0cG91dCB2YWx1ZXM8L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPkhlbHBlciBhZnRlciBvYnRhaW5pbmcgbGlzdDwvcmV0dXJucz4NCisJCXB1YmxpYyB2aXJ0dWFsIElWaWV3SGVscGVyIEV4ZWN1dGVMaXN0KElEaWN0aW9uYXJ5IGNyaXRlcmlhKQ0KKwkJew0KKwkJCQ0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IFJlYWRFeGVjdXRlKExpc3RDb21tYW5kLCBjcml0ZXJpYSk7DQorDQorCQkJb2JqZWN0IGlzc3VlX2V2ZW50X2tleSA9IEdldEl0ZW1LZXlWYWx1ZShjcml0ZXJpYSk7DQorCQkJaW50IGNvdW50ID0gR2V0SXRlbUNvdW50KGhlbHBlcik7DQorCQkJYm9vbCBva2F5ID0gaGVscGVyLklzTm9taW5hbDsNCisJCQlib29sIHNraXBfdG9faXRlbSA9IChpc3N1ZV9ldmVudF9rZXkgPT0gbnVsbCkgfHwgKGNvdW50PT0wKSB8fCAhb2theTsNCisJCQlpZiAoc2tpcF90b19pdGVtKQ0KKwkJCXsNCisJCQkJaWYgKG9rYXkpIEJpbmRHcmlkKGhlbHBlcik7IC8vIERvQmluZEdyaWQgPSBoZWxwZXI7DQorCQkJCXJldHVybiBoZWxwZXI7DQorCQkJfQ0KKwkJCQ0KKwkJCWJvb2wgZm91bmQgPSBmYWxzZTsgDQorCQkJaW50IHBhZ2UgPSAtMTsNCisJCQlpbnQgaXRlbSA9IC0xOw0KKwkJCW9iamVjdCBrZXkgPSBHZXRJdGVtS2V5KGNyaXRlcmlhKTsNCisJCQl3aGlsZSAoKCFmb3VuZCkgJiYgKGNvdW50Pml0ZW0pICYmIGhlbHBlci5Jc05vbWluYWwpDQorCQkJew0KKwkJCQlwYWdlKys7DQorCQkJCWlmIChoZWxwZXIuSXNOb21pbmFsKQ0KKwkJCQl7DQorCQkJCQlJTGlzdCBvdXRjb21lID0gaGVscGVyLk91dGNvbWU7DQorCQkJCQlmb3JlYWNoIChFbnRyeURpY3Rpb25hcnkgZSBpbiBvdXRjb21lKQ0KKwkJCQkJew0KKwkJCQkJCWZvdW5kID0gZm91bmQgfHwgKGlzc3VlX2V2ZW50X2tleS5FcXVhbHMoZS5Dcml0ZXJpYVtrZXldKSk7DQorCQkJCQl9DQorCQkJCQlpZiAoIWZvdW5kKQ0KKwkJCQkJew0KKwkJCQkJCWl0ZW0gPSBpdGVtICsgb3V0Y29tZS5Db3VudDsNCisJCQkJCQlTZXRJdGVtT2Zmc2V0KGhlbHBlcixpdGVtKzEpOw0KKwkJCQkJCWhlbHBlci5FeGVjdXRlKCk7DQorCQkJCQl9DQorCQkJCX0NCisJCQl9DQorCQkJDQorCQkJaWYgKGhlbHBlci5Jc05vbWluYWwpDQorCQkJew0KKwkJCQlpZiAoZm91bmQpIFNldEl0ZW1QYWdlKGhlbHBlcixwYWdlKTsJCQkJCQkJDQorCQkJCUJpbmRHcmlkKGhlbHBlcik7IC8vIERvQmluZEdyaWQgPSBoZWxwZXI7DQorCQkJfSANCisJCQlyZXR1cm4gaGVscGVyOw0KKwkJfQ0KKwkJDQorCQkNCisJCQ0KKwkJDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU2V0dXAgdGhlIERhdGFHcmlkIHdoZW4gdGhlIHBhZ2UgaXMgZmlyc3QgaW5pdGlhbGl6ZWQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjcml0ZXJpYSI+UGFyYW1ldGVycyBmb3IgdGhlIGNvbWFtbmQ8L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPjwvcmV0dXJucz4NCisJCXB1YmxpYyB2aXJ0dWFsIElWaWV3SGVscGVyIExvYWRHcmlkKElEaWN0aW9uYXJ5IGNyaXRlcmlhKQ0KKwkJew0KKwkJCUlWaWV3SGVscGVyIGhlbHBlcjsNCisNCisJCQlpZiAoKEdyaWQuQWxsb3dDdXN0b21QYWdpbmcpICYmIChjcml0ZXJpYSA9PSBudWxsKSkNCisJCQl7DQorCQkJCWxpc3RfQ3JpdGVyaWFfTmV3UGFnZUluZGV4KGNyaXRlcmlhLCAwLCB0cnVlKTsNCisJCQkJSGFzQ3JpdGVyaWEgPSB0cnVlOw0KKwkJCX0NCisNCisJCQlpZiAoSGFzQ3JpdGVyaWEpIA0KKwkJCXsNCisJCQkJaGVscGVyID0gRXhlY3V0ZUxpc3QoY3JpdGVyaWEpOw0KKwkJCX0NCisJCQllbHNlDQorCQkJCWhlbHBlciA9IEV4ZWN1dGVMaXN0KCk7DQorCQkJDQorCQkJaWYgKEdyaWQuQWxsb3dDdXN0b21QYWdpbmcpDQorCQkJew0KKwkJCQlpbnQgcGFnZSA9IEdldEl0ZW1QYWdlKGhlbHBlcik7DQorCQkJCWludCBjb3VudCA9IEdldEl0ZW1Db3VudChoZWxwZXIpOw0KKwkJCQlMaXN0UGFnZUluZGV4Q2hhbmdlZF9SYWlzZSh0aGlzLCBwYWdlLCBHcmlkLlBhZ2VTaXplLCBjb3VudCk7CQkJCQkJCQkNCisJCQl9DQorCQkJDQorCQkJcmV0dXJuIGhlbHBlcjsNCisJCX0NCisNCisJCSNlbmRyZWdpb24gDQorDQorCQkjcmVnaW9uIExpc3QgcHJvcGVydGllcyB0byBzZXQNCisNCisJCXByaXZhdGUgRGF0YUdyaWQgX0dyaWQ7DQorDQorCQlwdWJsaWMgRGF0YUdyaWQgR3JpZA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfR3JpZDsgfQ0KKwkJCXNldCB7IF9HcmlkID0gdmFsdWU7IH0NCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gTGlzdCBtZXRob2RzDQorDQorCQlwdWJsaWMgdmlydHVhbCBib29sIE9wZW4oKQ0KKwkJew0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IExvYWRHcmlkKGxpc3RfQ3JpdGVyaWEpOw0KKwkJCWJvb2wgb2theSA9IGhlbHBlci5Jc05vbWluYWw7DQorCQkJaWYgKCFva2F5KQ0KKwkJCXsNCisJCQkJUGFnZV9BbGVydCA9IGhlbHBlcjsNCisJCQl9DQorCQkJcmV0dXJuIG9rYXk7DQorCQl9DQorDQorCQlwdWJsaWMgdmlydHVhbCBib29sIE9wZW4oSURpY3Rpb25hcnkgY3JpdGVyaWEpDQorCQl7DQorCQkJUGFnZV9SZXNldCgpOw0KKwkJCWxpc3RfQ3JpdGVyaWFfTmV3UGFnZUluZGV4KGNyaXRlcmlhLCAwLCBBbGxvd0N1c3RvbVBhZ2luZyk7DQorCQkJcmV0dXJuIE9wZW4oKTsNCisJCX0NCisNCisJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgUmVzZXQoSURpY3Rpb25hcnkgY3JpdGVyaWEpDQorCQl7DQorCQkJbGlzdF9SZXNldEluZGV4KCk7DQorCQkJT3Blbihjcml0ZXJpYSk7DQorCQl9DQorDQorCQlwdWJsaWMgdmlydHVhbCB2b2lkIFJlc2V0KCkNCisJCXsNCisJCQlSZXNldChsaXN0X0NyaXRlcmlhKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBIYW5kbGUgc3RhbmRhcmQgbGlzdCBJdGVtIGV2ZW50cyBieSBvcGVuaW5nIGl0ZW0gDQorCQkvLy8gb3IgcHJlcGFyaW5nIHRvIGFkZCBhIG5ldyBpdGVtLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29tbWFuZE5hbWUiPlRoZSBjb208L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJpbmRleCI+PC9wYXJhbT4NCisJCXByb3RlY3RlZCB2aXJ0dWFsIHZvaWQgbGlzdF9JdGVtKHN0cmluZyBjb21tYW5kTmFtZSwgaW50IGluZGV4KQ0KKwkJew0KKwkJCXN3aXRjaCAoY29tbWFuZE5hbWUpDQorCQkJew0KKwkJCQljYXNlICJQYWdlIjoNCisJCQkJCS8vIEhhbmRsZWQgYnkgU3RlcExpc3RfUGFnZUluZGV4Q2hhbmdlZA0KKwkJCQkJYnJlYWs7DQorCQkJCWNhc2UgbXNnX0lURU1fQ09NTUFORDoNCisJCQkJCXN0cmluZyBrZXkgPSBHcmlkLkRhdGFLZXlzW2luZGV4XSBhcyBzdHJpbmc7DQorCQkJCQlsaXN0X0l0ZW1LZXkgPSBrZXk7DQorCQkJCQlsaXN0X0l0ZW1fQ2xpY2soaW5kZXgpOw0KKwkJCQkJYnJlYWs7DQorCQkJCWRlZmF1bHQ6DQorCQkJCQl7DQorCQkJCQkJaWYgKGxpc3RfSW5zZXJ0KQ0KKwkJCQkJCQkvLyBJU1NVRTogSWYgaW5zZXJ0IGZhaWxzLCBvbGQgaW5wdXQgaXMgbm90IHJldGFpbmVkLiBbV05FLTY3XQ0KKwkJCQkJCQlsaXN0X0FkZCgpOw0KKwkJCQkJCWVsc2UNCisJCQkJCQkJbGlzdF9SZWZyZXNoKCk7DQorCQkJCQkJYnJlYWs7DQorCQkJCQl9DQorCQkJfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhhbmRsZSBzdGFuZGFyZCBFZGl0IGV2ZW50cyBieSBzZXR0aW5nIHRoZSBpbmRleCBhbmQgcmVmcmVzaGluZyBkaXNwbGF5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iaW5kZXgiPjwvcGFyYW0+DQorCQlwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIGxpc3RfRWRpdChpbnQgaW5kZXgpDQorCQl7DQorCQkJLy8gSVNTVUU6IEV2ZW50PyBQYWdlX1Byb21wdCA9IG1zZ19FRElUX0hJTlQ7DQorCQkJbGlzdF9JdGVtSW5kZXggPSBpbmRleDsNCisJCQlsaXN0X1JlZnJlc2goKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZXNldCBEYXRhR3JpZCBzdGF0ZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIGxpc3RfUXVpdCgpDQorCQl7DQorCQkJLy8gSVNTVUU6IEV2ZW50PyBQYWdlX1Byb21wdCA9IG1zZ19RVUlUX1NVQ0NFU1M7DQorCQkJbGlzdF9JbnNlcnQgPSBmYWxzZTsNCisJCQlsaXN0X0l0ZW1JbmRleCA9IC0xOw0KKwkJCWxpc3RfUmVmcmVzaCgpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJlZnJlc2ggRGF0YUdyaWQgIGJ5IHJlYmluZGluZyBkYXRhc291cmNlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByb3RlY3RlZCB2aXJ0dWFsIHZvaWQgbGlzdF9SZWZyZXNoKCkNCisJCXsNCisJCQlEYXRhQmluZCgpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFNldCB0aGUgc2VsZWN0ZWQgaW5kZXggdG8gMC4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIFdoZW4gY2hhbmdpbmcgdGhlIGZpbmQgc2V0LCBhbHNvIGNhbGwgTGlzdF9SZXNldEluZGV4Ow0KKwkJLy8vIG90aGVyd2lzZSwgdGhlIERhdGFHcmlkIG1heSB0cnkgdG8gc2VsZWN0IGFuIGl0ZW0gDQorCQkvLy8gdGhhdCBpcyBvdXRzaWRlIHRoZSBuZXcgZm91bmQgc2V0Lg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQlwcm90ZWN0ZWQgdm9pZCBsaXN0X1Jlc2V0SW5kZXgoKQ0KKwkJew0KKwkJCUdyaWQuU2VsZWN0ZWRJbmRleCA9IDA7DQorCQkJR3JpZC5DdXJyZW50UGFnZUluZGV4ID0gMDsgLy8gc2ljDQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5zZXJ0IGEgbmV3IHJvdyBmb3IgZWRpdGluZy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIGxpc3RfQWRkKCkNCisJCXsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSBEYXRhSW5zZXJ0KCk7DQorCQkJYm9vbCBva2F5ID0gaGVscGVyLklzTm9taW5hbDsNCisJCQlpZiAob2theSkNCisJCQl7DQorCQkJCS8vIElTU1VFOiBFdmVudD8gUGFnZV9Qcm9tcHQgPSBtc2dfRURJVF9ISU5UOw0KKwkJCQlsaXN0X0luc2VydCA9IHRydWU7DQorCQkJCWxpc3RfSXRlbUluZGV4ID0gMDsNCisJCQkJR3JpZC5WaXNpYmxlID0gdHJ1ZTsNCisJCQl9DQorCQkJZWxzZSBQYWdlX0FsZXJ0ID0gaGVscGVyOw0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbg0KKw0KKwkJI3JlZ2lvbiBMaXN0IGV2ZW50cw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByZXBhcmUgYW4gaXRlbSBmb3IgZWRpdGluZyBhbmQgcmV0dXJuIGl0cyBrZXkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZXR1cm5zPkRhdGEga2V5IGZvciBpdGVtIHRvIGVkaXQ8L3JldHVybnM+DQorCQlwcml2YXRlIHN0cmluZyBHZXREYXRhS2V5KCkNCisJCXsNCisJCQlEYXRhR3JpZCBncmlkID0gR3JpZDsNCisJCQlpbnQgaW5kZXggPSBncmlkLkVkaXRJdGVtSW5kZXg7DQorCQkJc3RyaW5nIGtleSA9IGdyaWQuRGF0YUtleXNbaW5kZXhdIGFzIHN0cmluZzsNCisJCQlyZXR1cm4ga2V5Ow0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhhcnZlc3QgYSBjb2xsZWN0aW9uIG9mIGNvbnRyb2xzIGZyb20gRGF0YUdyaWQNCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImUiPjwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+QSBjb250cm9sIGNvbGxlY3Rpb24gZm9yIERhdGFHcmlkPC9yZXR1cm5zPg0KKwkJcHVibGljIHZpcnR1YWwgQ29udHJvbENvbGxlY3Rpb24gR2V0Q29udHJvbHMoRGF0YUdyaWRDb21tYW5kRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJRGF0YUdyaWQgZ3JpZCA9IEdyaWQ7DQorCQkJQ29udHJvbENvbGxlY3Rpb24gY29udHJvbHMgPSBuZXcgQ29udHJvbENvbGxlY3Rpb24oZ3JpZCk7DQorCQkJZm9yZWFjaCAoVGFibGVDZWxsIHQgaW4gZS5JdGVtLkNlbGxzKQ0KKwkJCXsNCisJCQkJZm9yIChpbnQgaSA9IDA7IGkgPCB0LkNvbnRyb2xzLkNvdW50OyBpKyspDQorCQkJCQljb250cm9scy5BZGQodC5Db250cm9sc1tpXSk7DQorCQkJfQ0KKwkJCXJldHVybiBjb250cm9sczsNCisJCX0NCisNCisJCS8vIHBvc3RiYWNrIGV2ZW50cw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhhbmRsZSBldmVudCBieSBwcmVzZW50aW5nIHNlbGVjdGVkIHJvdyBpbiBhbiBlZGl0YWJsZSBmb3JtLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ic291cmNlIj5FdmVudCBzb3VyY2U8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJlIj5FdmVudCBwYXJhbWV0ZXJzPC9wYXJhbT4NCisJCXByaXZhdGUgdm9pZCBsaXN0X0VkaXQob2JqZWN0IHNvdXJjZSwgRGF0YUdyaWRDb21tYW5kRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJbGlzdF9FZGl0KGUuSXRlbS5JdGVtSW5kZXgpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhhbmRsZSBldmVudCBieSByZXRhaW5pbmcgYW55IGNoYW5nZXMgdG8gdGhlIHNlbGVjdGVkIERhdGFHcmlkIHJvdy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InNvdXJjZSI+RXZlbnQgc291cmNlPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+RXZlbnQgcGFyYW1ldGVyczwvcGFyYW0+DQorCQlwcml2YXRlIHZvaWQgbGlzdF9TYXZlKG9iamVjdCBzb3VyY2UsIERhdGFHcmlkQ29tbWFuZEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCXN0cmluZyBrZXkgPSAobGlzdF9JbnNlcnQpID8gbnVsbCA6IEdldERhdGFLZXkoKTsNCisJCQlDb250cm9sQ29sbGVjdGlvbiBjb250cm9scyA9IEdldENvbnRyb2xzKGUpOw0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IFNhdmUoa2V5LCBjb250cm9scyk7DQorCQkJYm9vbCBva2F5ID0gaGVscGVyLklzTm9taW5hbDsNCisJCQlpZiAob2theSkNCisJCQl7CQkJCQ0KKwkJCQlpZiAoVmlld19TYXZlICE9IG51bGwpIFZpZXdfU2F2ZSh0aGlzLCBuZXcgVmlld0FyZ3MoaGVscGVyKSk7DQorCQkJCWxpc3RfSW5zZXJ0ID0gZmFsc2U7DQorCQkJCWxpc3RfSXRlbUluZGV4ID0gLTE7DQorCQkJCW9rYXkgPSBPcGVuKCk7DQorCQkJCS8vIElTU1VFOiBFdmVudD8gUGFnZV9Qcm9tcHQgPSAoTGlzdF9JbnNlcnQpID8gbXNnX0FERF9TVUNDRVNTIDogbXNnX1NBVkVfU1VDQ0VTUzsNCisJCQl9DQorCQkJaWYgKCFva2F5KSBQYWdlX0FsZXJ0ID0gaGVscGVyOw0KKwkJfQ0KKw0KKwkJDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSGFuZGxlIGV2ZW50IGJ5IHJlc2V0dGluZyBEYXRhR3JpZCBzdGF0ZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InNvdXJjZSI+RXZlbnQgc291cmNlPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+RXZlbnQgcGFyYW1ldGVyczwvcGFyYW0+DQorCQlwcml2YXRlIHZvaWQgbGlzdF9RdWl0KG9iamVjdCBzb3VyY2UsIERhdGFHcmlkQ29tbWFuZEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCWxpc3RfUXVpdCgpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhhbmRsZSBsaXN0IGFkZCBldmVudCBieSBpbnNlcnRpbmcgYSBuZXcgcm93LCANCisJCS8vLyBhbmQgcmFpc2luZyBhIFZpZXcgQWRkIGV2ZW50Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ic2VuZGVyIj5FdmVudCBzb3VyY2U8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJlIj5FdmVudCBwYXJhbWV0ZXJzPC9wYXJhbT4NCisJCXByb3RlY3RlZCB2b2lkIGxpc3RfQWRkKG9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCWxpc3RfQWRkKCk7DQorCQkJaWYgKFZpZXdfQWRkICE9IG51bGwpIFZpZXdfQWRkKHNlbmRlciwgZSk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSGFuZGxlIGxpc3QgaXRlbSBldmVudCBieSBvcGVuaW5nIGl0ZW0gb3IgcHJlcGFyaW5nIHRvIGFkZCBuZXcgaXRlbS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InNvdXJjZSI+RXZlbnQgc291cmNlPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+RXZlbnQgcGFyYW1ldGVyczwvcGFyYW0+DQorCQlwcml2YXRlIHZvaWQgTGlzdF9JdGVtKG9iamVjdCBzb3VyY2UsIERhdGFHcmlkQ29tbWFuZEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCWludCBpbmRleCA9IGUuSXRlbS5JdGVtSW5kZXg7DQorCQkJbGlzdF9JdGVtKGUuQ29tbWFuZE5hbWUsIGluZGV4KTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGtleSB0byBzdG9yZSBpdGVtIGxpbWl0IGluIGNyaXRlcmlhLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgSVRFTV9MSU1JVCA9ICJpdGVtX2xpbWl0IjsNCisJCQ0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUga2V5IHRvIHN0b3JlIGl0ZW0gb2Zmc2V0IGluIGNyaXRlcmlhLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgSVRFTV9PRkZTRVQgPSAiaXRlbV9vZmZzZXQiOw0KKwkJDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBrZXkgdG8gc3RvcmUgaXRlbSBjb3VudCBpbiBjcml0ZXJpYS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIElURU1fQ09VTlQgPSAiaXRlbV9jb3VudCI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBrZXkgdG8gc3RvcmUgaXRlbSBwYWdlIGluIGNyaXRlcmlhLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgSVRFTV9QQUdFID0gIml0ZW1fcGFnZSI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBrZXkgdG8gc3RvcmUgaXRlbSBrZXkgaW4gY3JpdGVyaWEuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBJVEVNX0tFWSA9ICJpdGVtX2tleSI7DQorCQkNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gTGlzdFBhZ2VJbmRleENoYW5nZWQgDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU2lnbmFsIHRoYXQgdGhlIEdyaWQgcGFnZSBpbmRleCBoYXMgY2hhbmdlZCwgDQorCQkvLy8gYW5kIHByb3ZpZGUgdmFsdWVzIGZvciBhIHBhZ2UgaW5kZXggaGludC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgZXZlbnQgRXZlbnRIYW5kbGVyIExpc3RQYWdlSW5kZXhDaGFuZ2VkOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBkZWZhdWx0IGtleSBmb3IgbWVzc2FnZSByZXNvdXJjZXMgdGhhdCBzZXQgdGhlIGhpbnQgbGFiZWwuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBQQUdFX0lOREVYX0hJTlQgPSAicGFnZV9pbmRleF9oaW50IjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgZGVmYXVsdCBrZXkgZm9yIHRoZSAiTm90IEZvdW5kIiBoaW50Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgTk9UX0ZPVU5EX0hJTlQgPSAibm90X2ZvdW5kX2hpbnQiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgdmFsdWVzIGZvciBhIHBhZ2UgaW5kZXggbWVzc2FnZSAoaXRlbXMgeCB0aHJ1IHggb2YgeCkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNsYXNzIExpc3RQYWdlSW5kZXhDaGFuZ2VkQXJncyA6IEV2ZW50QXJncw0KKwkJew0KKwkJCXB1YmxpYyBpbnQgSXRlbUZyb207DQorCQkJcHVibGljIGludCBJdGVtVGhydTsNCisJCQlwdWJsaWMgaW50IEl0ZW1Db3VudDsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBPcHRpb25hbCBleHRlbnNpb24gcG9pbnQgc28gdGhhdCBzdWJjbGFzc2VzIGNhbiBtYWtlIGFkanVzdG1lbnRzIA0KKwkJLy8vIGJhc2VkIG9uIHdoZXRoZXIgdGhlcmUgYXJlIGl0ZW1zIHRvIGRpc3BsYXkgb3Igbm90LiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gVGhlIGNsYXNzaWMgdXNlIGNhc2UgZm9yIHRoaXMgbWV0aG9kIGlzIHRvIHR1cm4gb2ZmIHRoZSBHcmlkIA0KKwkJLy8vIGlmIHRoZXJlIGFyZSBub3QgYW55IGl0ZW1zIHRvIGRpc3BsYXkgaW4gdGhlIEdyaWQuIA0KKwkJLy8vIEluIHRoaXMgY2FzZSwgaWYgdGhpcyBjb250cm9sIGlzIHVzZWQgbW9yZSB0aGFuIG9uY2UgaW4gYW4gZW5jbG9zaW5nIA0KKwkJLy8vIHBhZ2Ugb3IgY29udHJvbCwgdGhlbiB0aGUgR3JpZCBzaG91bGQgYmUgdG9nZ2xlZCBvbiBvciBvZmYgZm9yIA0KKwkJLy8vIGVhY2ggaW5zdGFuY2UgKFZpc2libGUgPSBpc0l0ZW1zKTsNCisJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJpc0l0ZW1zIj5UcnVlIGlmIHRoZXJlIGFyZSAxIG9yIG1vcmUgaXRlbXMgdG8gZGlzcGxheTwvcGFyYW0+DQorCQlwdWJsaWMgdmlydHVhbCB2b2lkIExpc3RQYWdlSW5kZXhDaGFuZ2VkX0lzSXRlbXMoYm9vbCBpc0l0ZW1zKQ0KKwkJew0KKwkJCS8vIE92ZXJyaWRlIHRvIHByb3ZpZGUgZnVuY3Rpb25hbGlsdHkJDQorCQl9DQorCQkNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBMb29rdXAgdGhlIFBBR0VfSU5ERVhfSElOVCBvciB0aGUgTk9UX0ZPVU5EX0hJTlQgaW4gdGhlIGFwcGxpY2F0aW9uIA0KKwkJLy8vIG1lc3NhZ2UgcmVzb3VyY2VzLCBhbmQgcmV0dXJuIGFzIGEgZm9ybWF0dGVkIHN0cmluZy4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJhcmdzIj5PdXIgTGlzdFBhZ2VJbmRleENoYW5nZWRBcmdzIHdpdGggdGhlIHBhZ2UgaW5kZXggdmFsdWVzPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5Gb3JtYXR0ZWQgbWVzc2FnZSBzdHJpbmcgcmVhZHkgdG8gbWFya3VwIGFuZCBwcmVzZW50PC9yZXR1cm5zPg0KKwkJLy8vIA0KKwkJcHVibGljIHZpcnR1YWwgc3RyaW5nIExpc3RQYWdlSW5kZXhDaGFuZ2VkX01lc3NhZ2UoTGlzdFBhZ2VJbmRleENoYW5nZWRBcmdzIGFyZ3MpDQorCQl7DQorCQkJYm9vbCBpc0l0ZW1zID0gKGFyZ3MuSXRlbUNvdW50ID4gMCk7DQorCQkJTGlzdFBhZ2VJbmRleENoYW5nZWRfSXNJdGVtcyhpc0l0ZW1zKTsNCisNCisJCQlzdHJpbmdbXSBtX2FyZ3MgPSBuZXcgc3RyaW5nWzNdOw0KKwkJCW1fYXJnc1swXSA9IENvbnZlcnQuVG9TdHJpbmcoYXJncy5JdGVtRnJvbSk7DQorCQkJbV9hcmdzWzFdID0gQ29udmVydC5Ub1N0cmluZyhhcmdzLkl0ZW1UaHJ1KTsNCisJCQltX2FyZ3NbMl0gPSBDb252ZXJ0LlRvU3RyaW5nKGFyZ3MuSXRlbUNvdW50KTsNCisNCisJCQlzdHJpbmcgdGV4dCA9IGlzSXRlbXMgPyBHZXRNZXNzYWdlKFBBR0VfSU5ERVhfSElOVCwgbV9hcmdzKSA6IEdldE1lc3NhZ2UoTk9UX0ZPVU5EX0hJTlQpOw0KKwkJCXJldHVybiB0ZXh0Ow0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJhaXNlIHRoZSBMaXN0UGFnZUluZGV4Q2hhbmdlZCBldmVudC4gIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ic2VuZGVyIj5FdmVudCBzb3VyY2U8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJwYWdlIj5DdXJyZW50IHBhZ2UgbnVtYmVyPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ic2l6ZSI+SXRlbXMgcGVyIHBhZ2U8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb3VudCI+VG90YWwgbnVtYmVyIG9mIGl0ZW1zPC9wYXJhbT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBMaXN0UGFnZUluZGV4Q2hhbmdlZF9SYWlzZShvYmplY3Qgc2VuZGVyLCBpbnQgcGFnZSwgaW50IHNpemUsIGludCBjb3VudCkNCisJCXsNCisJCQlpZiAoTGlzdFBhZ2VJbmRleENoYW5nZWQgIT0gbnVsbCkNCisJCQl7DQorCQkJCWludCBmcm9tID0gKHBhZ2Uqc2l6ZSkgKyAxOw0KKwkJCQlpbnQgdGhydSA9IChwYWdlKnNpemUpICsgc2l6ZTsNCisJCQkJaWYgKHRocnUgPiBjb3VudCkgdGhydSA9IGNvdW50Ow0KKwkJCQlMaXN0UGFnZUluZGV4Q2hhbmdlZEFyZ3MgYSA9IG5ldyBMaXN0UGFnZUluZGV4Q2hhbmdlZEFyZ3MoKTsNCisJCQkJYS5JdGVtRnJvbSA9IGZyb207DQorCQkJCWEuSXRlbVRocnUgPSB0aHJ1Ow0KKwkJCQlhLkl0ZW1Db3VudCA9IGNvdW50Ow0KKwkJCQlMaXN0UGFnZUluZGV4Q2hhbmdlZChzZW5kZXIsIGEpOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBIYW5kbGUgdGhlIFBhZ2VJbmRleENoYW5nZWQgcmFpc2VkIGJ5IG91ciBEYXRhR3JpZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InNlbmRlciI+RXZlbnQgc291cmNlPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBhcmd1ZW1lbnRzPC9wYXJhbT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBsaXN0X1BhZ2VJbmRleENoYW5nZWQob2JqZWN0IHNlbmRlciwgRGF0YUdyaWRQYWdlQ2hhbmdlZEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCURhdGFHcmlkIGdyaWQgPSBHcmlkOw0KKwkJCWludCBjb3VudCA9IChncmlkLkRhdGFTb3VyY2UgYXMgSUxpc3QpLkNvdW50Ow0KKw0KKwkJCWlmIChncmlkLkFsbG93Q3VzdG9tUGFnaW5nKQ0KKwkJCXsNCisJCQkJSURpY3Rpb25hcnkgY3JpdGVyaWEgPSBsaXN0X0NyaXRlcmlhX05ld1BhZ2VJbmRleChlLk5ld1BhZ2VJbmRleCk7DQorCQkJCUlWaWV3SGVscGVyIGhlbHBlciA9IEdldEhlbHBlckZvcihMaXN0Q29tbWFuZCk7DQorCQkJCWhlbHBlci5SZWFkKGNyaXRlcmlhLCB0cnVlKTsNCisJCQkJaGVscGVyLkV4ZWN1dGUoKTsNCisJCQkJRGF0YVNvdXJjZShoZWxwZXIpOw0KKwkJCQljb3VudCA9IEdldEl0ZW1Db3VudChoZWxwZXIpOw0KKwkJCX0NCisJCQlncmlkLkN1cnJlbnRQYWdlSW5kZXggPSBlLk5ld1BhZ2VJbmRleDsNCisNCisJCQlMaXN0UGFnZUluZGV4Q2hhbmdlZF9SYWlzZShzZW5kZXIsIGUuTmV3UGFnZUluZGV4LCBncmlkLlBhZ2VTaXplLCBjb3VudCk7DQorCQkJbGlzdF9SZWZyZXNoKCk7DQorCQl9DQorDQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU2lnbmFsIHdoZW4gYW4gaXRlbSBpcyBiZWluZyBhZGRlZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgZXZlbnQgRXZlbnRIYW5kbGVyIFZpZXdfQWRkOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhhbmRsZSBjbGljayBldmVudCBieSByYWlzaW5nIGEgVmlldyBBZGQgZXZlbnQgDQorCQkvLy8gYW5kIHBhc3NpbmcgdGhlIGxpc3QgY3JpdGVyaWEuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJzZW5kZXIiPkV2ZW50IHNvdXJjZTwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImUiPlJ1bnRpbWUgYXJndW1lbnRzPC9wYXJhbT4NCisJCXByb3RlY3RlZCB2b2lkIGFkZF9DbGljayhvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCQlpZiAoVmlld19BZGQgIT0gbnVsbCkNCisJCQl7DQorCQkJCVNldEl0ZW1LZXlWYWx1ZShsaXN0X0NyaXRlcmlhLCBudWxsKTsNCisJCQkJRmluZEFyZ3MgZiA9IG5ldyBGaW5kQXJncyhlLCBsaXN0X0NyaXRlcmlhKTsNCisJCQkJVmlld19BZGQoc2VuZGVyLCBmKTsNCisJCQl9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBhbiBpbnRlcm5hbCBleHRlbnNpb24gcG9pbnQgZm9yIGhhbmRsaW5nIGEgc2VsZWN0ZWQgaXRlbS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImluZGV4Ij5QYWdlIGluZGV4IG9mIGl0ZW0gYmVpbmcgc2VsZWN0ZWQ8L3BhcmFtPg0KKwkJcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBsaXN0X0l0ZW1fQ2xpY2soaW50IGluZGV4KQ0KKwkJew0KKwkJCS8vIE92ZXJyaWRlIHRvIHByb3ZpZGUgaW1wbGVtZW50YXRpb24JCQkNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTaWduYWwgd2hlbiBhbiBpdGVtIGlzIGJlaW5nIHNhdmVkLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBldmVudCBFdmVudEhhbmRsZXIgVmlld19TYXZlOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJlc2V0IHN0YXRlIGZvciB0aGlzIGNvbnRyb2wsIGluY2x1ZGluZyBhbnkgVmlld1N0YXRlIGF0dHJpYnV0ZXMNCisJCS8vLyBhbmQgdGhlIHBhZ2UgaW5kZXhlcyAoQHNlZShsaXN0X1Jlc2V0SW5kZXgpKSwgDQorCQkvLy8gdXN1YWxseSBvbiBhIG5ldyBPcGVuIGV2ZW50IG9yIG9uIGEgUXVpdCBldmVudCwNCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgb3ZlcnJpZGUgdm9pZCBQYWdlX1Jlc2V0KCkNCisJCXsNCisJCQlsaXN0X1Jlc2V0SW5kZXgoKTsNCisJCQliYXNlLlBhZ2VfUmVzZXQoKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBIYW5kbGUgdGhlIHBhZ2UncyBMb2FkIGV2ZW50Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ic2VuZGVyIj5FdmVudCBzb3VyY2U8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJlIj5SdW50aW1lIGFyZ3VtZW50czwvcGFyYW0+DQorCQlwcml2YXRlIHZvaWQgUGFnZV9Mb2FkKG9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCURhdGFHcmlkIGdyaWQgPSBHcmlkOw0KKwkJCWdyaWQuQXV0b0dlbmVyYXRlQ29sdW1ucyA9IGZhbHNlOw0KKwkJCWdyaWQuRWRpdEl0ZW1JbmRleCA9IGxpc3RfSXRlbUluZGV4Ow0KKwkJCWdyaWQuQ2FuY2VsQ29tbWFuZCArPSBuZXcgRGF0YUdyaWRDb21tYW5kRXZlbnRIYW5kbGVyKGxpc3RfUXVpdCk7DQorCQkJZ3JpZC5FZGl0Q29tbWFuZCArPSBuZXcgRGF0YUdyaWRDb21tYW5kRXZlbnRIYW5kbGVyKGxpc3RfRWRpdCk7DQorCQkJZ3JpZC5VcGRhdGVDb21tYW5kICs9IG5ldyBEYXRhR3JpZENvbW1hbmRFdmVudEhhbmRsZXIobGlzdF9TYXZlKTsNCisJCQlncmlkLkl0ZW1Db21tYW5kICs9IG5ldyBEYXRhR3JpZENvbW1hbmRFdmVudEhhbmRsZXIoTGlzdF9JdGVtKTsNCisJCQlncmlkLlBhZ2VJbmRleENoYW5nZWQgKz0gbmV3IERhdGFHcmlkUGFnZUNoYW5nZWRFdmVudEhhbmRsZXIobGlzdF9QYWdlSW5kZXhDaGFuZ2VkKTsNCisJCQlpZiAoVmlzaWJsZSkgT3BlbigpOw0KKwkJfQ0KKw0KKwkJI3JlZ2lvbiBXZWIgRm9ybSBEZXNpZ25lciBnZW5lcmF0ZWQgY29kZQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vCQlJbml0aWFsaXplIGNvbXBvbmVudHMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJlIj5SdW50aW1lIHBhcmFtZXRlcnM8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIG92ZXJyaWRlIHZvaWQgT25Jbml0KEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCS8vDQorCQkJLy8gQ09ERUdFTjogVGhpcyBjYWxsIGlzIHJlcXVpcmVkIGJ5IHRoZSBBU1AuTkVUIFdlYiBGb3JtIERlc2lnbmVyLg0KKwkJCS8vDQorCQkJSW5pdGlhbGl6ZUNvbXBvbmVudCgpOw0KKwkJCWJhc2UuT25Jbml0KGUpOw0KKwkJCUluaXRHcmlkKCk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8JCVJlcXVpcmVkIG1ldGhvZCBmb3IgRGVzaWduZXIgc3VwcG9ydCAtIGRvIG5vdCBtb2RpZnkNCisJCS8vLwkJdGhlIGNvbnRlbnRzIG9mIHRoaXMgbWV0aG9kIHdpdGggdGhlIGNvZGUgZWRpdG9yLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgdm9pZCBJbml0aWFsaXplQ29tcG9uZW50KCkNCisJCXsNCisJCQl0aGlzLkxvYWQgKz0gbmV3IEV2ZW50SGFuZGxlcih0aGlzLlBhZ2VfTG9hZCk7DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkjcmVnaW9uIFRlbXBsYXRlcw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIERlc2NyaWJlIHRoZSBmaWVsZHMgbmVlZGVkIHRvIHByb2dyYW0gYSBEYXRhR3JpZCBjb2x1bW4uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIGludGVyZmFjZSBJR3JpZENvbmZpZw0KKwkJew0KKwkJCXN0cmluZyBEYXRhRmllbGQgeyBnZXQ7IH0NCisJCQlzdHJpbmcgSGVhZGVyVGV4dCB7IGdldDsgfQ0KKwkJCUlUZW1wbGF0ZSBJdGVtVGVtcGxhdGUgeyBnZXQ7IHNldDsgfQ0KKwkJCUlUZW1wbGF0ZSBFZGl0SXRlbVRlbXBsYXRlIHsgZ2V0OyBzZXQ7IH0NCisJCQlib29sIEhhc1RlbXBsYXRlIHsgZ2V0OyB9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW1wbGVtZW50IElHcmlkQ29uZmlnLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjbGFzcyBHcmlkQ29uZmlnIDogSUdyaWRDb25maWcNCisJCXsNCisJCQkvLy8gPHN1bW1hcnk+DQorCQkJLy8vIFN0b3JlIGF0dHJpYnV0ZSBuYW1lIGZvciBjb2x1bW4gKHJlcXVpcmVkKS4NCisJCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJCXByaXZhdGUgc3RyaW5nIF9EYXRhRmllbGQ7DQorDQorCQkJLy8vIDxzdW1tYXJ5Pg0KKwkJCS8vLyBQcm92aWRlIGF0dHJpYnV0ZSBuYW1lIGZvciBjb2x1bW4gKHJlcXVpcmVkKS4NCisJCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJCXB1YmxpYyBzdHJpbmcgRGF0YUZpZWxkDQorCQkJew0KKwkJCQlnZXQgeyByZXR1cm4gX0RhdGFGaWVsZDsgfQ0KKwkJCX0NCisNCisJCQkvLy8gPHN1bW1hcnk+DQorCQkJLy8vIFN0b3JlIGhlYWRpbmcgZm9yIHRoaXMgY29sdW1uIChvcHRpb25hbCkuDQorCQkJLy8vIDwvc3VtbWFyeT4NCisJCQlwcml2YXRlIHN0cmluZyBfSGVhZGVyVGV4dDsNCisNCisJCQkvLy8gPHN1bW1hcnk+DQorCQkJLy8vIFByb3ZpZGUgaGVhZGluZyBmb3IgdGhpcyBjb2x1bW4gKG9wdGlvbmFsKS4NCisJCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJCXB1YmxpYyBzdHJpbmcgSGVhZGVyVGV4dA0KKwkJCXsNCisJCQkJZ2V0DQorCQkJCXsNCisJCQkJCWlmIChfSGVhZGVyVGV4dCA9PSBudWxsKSByZXR1cm4gRGF0YUZpZWxkOw0KKwkJCQkJcmV0dXJuIF9IZWFkZXJUZXh0Ow0KKwkJCQl9DQorCQkJfQ0KKw0KKwkJCS8vLyA8c3VtbWFyeT4NCisJCQkvLy8gU3RvcmUgaXRlbSB0ZW1wbGF0ZSBmb3IgdGhpcyBjb2x1bW4gKG9wdGlvbmFsKS4NCisJCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJCXByaXZhdGUgSVRlbXBsYXRlIF9JdGVtVGVtcGxhdGU7DQorDQorCQkJLy8vIDxzdW1tYXJ5Pg0KKwkJCS8vLyBQcm92aWRlIGl0ZW0gdGVtcGxhdGUgZm9yIHRoaXMgY29sdW1uIChvcHRpb25hbCkuDQorCQkJLy8vIDwvc3VtbWFyeT4NCisJCQlwdWJsaWMgSVRlbXBsYXRlIEl0ZW1UZW1wbGF0ZQ0KKwkJCXsNCisJCQkJZ2V0IHsgcmV0dXJuIF9JdGVtVGVtcGxhdGU7IH0NCisJCQkJc2V0IHsgX0l0ZW1UZW1wbGF0ZSA9IHZhbHVlOyB9DQorCQkJfQ0KKw0KKwkJCS8vLyA8c3VtbWFyeT4NCisJCQkvLy8gU3RvcmUgZWRpdCB0ZW1wbGF0ZSBmb3IgdGhpcyBjb2x1bW4gKG9wdGlvbmFsKS4NCisJCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJCXByaXZhdGUgSVRlbXBsYXRlIF9FZGl0SXRlbVRlbXBsYXRlOw0KKw0KKwkJCS8vLyA8c3VtbWFyeT4NCisJCQkvLy8gUHJvdmlkZSBlZGl0IHRlbXBsYXRlIGZvciB0aGlzIGNvbHVtbiAob3B0aW9uYWwpLg0KKwkJCS8vLyA8L3N1bW1hcnk+DQorCQkJcHVibGljIElUZW1wbGF0ZSBFZGl0SXRlbVRlbXBsYXRlDQorCQkJew0KKwkJCQlnZXQgeyByZXR1cm4gX0VkaXRJdGVtVGVtcGxhdGU7IH0NCisJCQkJc2V0IHsgX0VkaXRJdGVtVGVtcGxhdGUgPSB2YWx1ZTsgfQ0KKwkJCX0NCisNCisJCQkvLyBzdHJpbmcgRGF0YUZvcm1hdDsNCisJCQkvLyBzdHJpbmcgU29ydEZvcm1hdDsNCisJCQkvLyBJVGVtcGxhdGUgSXRlbUZvcm1hdDsNCisNCisJCQkvLy8gPHN1bW1hcnk+DQorCQkJLy8vIFN0b3JlIHdoZXRoZXIgYXR0cmlidXRlIGhhcyBhIHRlbXBsYXRlLiANCisJCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJCXB1YmxpYyBib29sIEhhc1RlbXBsYXRlDQorCQkJew0KKwkJCQlnZXQgeyByZXR1cm4gKF9JdGVtVGVtcGxhdGUgIT0gbnVsbCkgfHwgKF9FZGl0SXRlbVRlbXBsYXRlICE9IG51bGwpOyB9DQorCQkJfQ0KKw0KKwkJCS8vLyA8c3VtbWFyeT4NCisJCQkvLy8gQ29uc3RydWN0IGEgR3JpZENvbmZpZyBmcm9tIGEgZGF0YSBmaWVsZCBhbmQgaGVhZGVyIHRlc3QuDQorCQkJLy8vIDwvc3VtbWFyeT4NCisJCQkvLy8gPHBhcmFtIG5hbWU9ImRhdGFGaWVsZCI+VGhlIGF0dHJpYnV0ZSBuYW1lIGZvciB0aGlzIGNvbHVtbjwvcGFyYW0+DQorCQkJLy8vIDxwYXJhbSBuYW1lPSJoZWFkZXJUZXh0Ij5UaGUgaGVhZGVyIHRleHQgZm9yIHRoaXMgY29sdW1uPC9wYXJhbT4NCisJCQlwdWJsaWMgR3JpZENvbmZpZyhzdHJpbmcgZGF0YUZpZWxkLCBzdHJpbmcgaGVhZGVyVGV4dCkNCisJCQl7DQorCQkJCV9EYXRhRmllbGQgPSBkYXRhRmllbGQ7DQorCQkJCV9IZWFkZXJUZXh0ID0gaGVhZGVyVGV4dDsNCisJCQl9DQorDQorCQkJLy8vIDxzdW1tYXJ5Pg0KKwkJCS8vLyBDb25zdHJ1Y3QgYSBHcmlkQ29uZmlnIHVzaW5nIGFsbCBhdHRyaWJ1dGVzLg0KKwkJCS8vLyA8L3N1bW1hcnk+DQorCQkJLy8vIDxwYXJhbSBuYW1lPSJkYXRhRmllbGQiPlRoZSBhdHRyaWJ1dGUgbmFtZSBmb3IgdGhpcyBjb2x1bW48L3BhcmFtPg0KKwkJCS8vLyA8cGFyYW0gbmFtZT0iaGVhZGVyVGV4dCI+VGhlIGhlYWRlciB0ZXh0IGZvciB0aGlzIGNvbHVtbjwvcGFyYW0+DQorCQkJLy8vIDxwYXJhbSBuYW1lPSJpdGVtVGVtcGxhdGUiPlRoZSBpdGVtIHRlbXBsYXRlIGZvciB0aGlzIGNvbHVtbjwvcGFyYW0+DQorCQkJLy8vIDxwYXJhbSBuYW1lPSJlZGl0SXRlbVRlbXBsYXRlIj5UaGUgZWRpdCB0ZW1wbGF0ZSBmb3IgdGhpcyBjb2x1bW48L3BhcmFtPg0KKwkJCXB1YmxpYyBHcmlkQ29uZmlnKHN0cmluZyBkYXRhRmllbGQsIHN0cmluZyBoZWFkZXJUZXh0LCBJVGVtcGxhdGUgaXRlbVRlbXBsYXRlLCBJVGVtcGxhdGUgZWRpdEl0ZW1UZW1wbGF0ZSkNCisJCQl7DQorCQkJCV9EYXRhRmllbGQgPSBkYXRhRmllbGQ7DQorCQkJCV9IZWFkZXJUZXh0ID0gaGVhZGVyVGV4dDsNCisJCQkJX0l0ZW1UZW1wbGF0ZSA9IGl0ZW1UZW1wbGF0ZTsNCisJCQkJX0VkaXRJdGVtVGVtcGxhdGUgPSBlZGl0SXRlbVRlbXBsYXRlOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBZGQgbGl0ZXJhbCB0ZXh0IHRvIGEgRGF0YUdyaWQgY29sdW1uLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjbGFzcyBMaXRlcmFsVGVtcGxhdGUgOiBJVGVtcGxhdGUNCisJCXsNCisJCQkNCisJCQkvLy8gPHN1bW1hcnk+DQorCQkJLy8vIFN0b3JlIGF0dHJpYnV0ZSBuYW1lLg0KKwkJCS8vLyA8L3N1bW1hcnk+DQorCQkJcHJpdmF0ZSBzdHJpbmcgX0RhdGFGaWVsZDsNCisNCisJCQkvLy8gPHN1bW1hcnk+DQorCQkJLy8vIEhhbmRsZSBkYXRhIGJpbmRpbmcgZXZlbnQgYnkgc2V0dGluZyBjb250cm9sIHRleHQgdG8gZGF0YSBmaWVsZC4NCisJCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJCS8vLyA8cGFyYW0gbmFtZT0ic2VuZGVyIj48L3BhcmFtPg0KKwkJCS8vLyA8cGFyYW0gbmFtZT0iZSI+PC9wYXJhbT4NCisJCQlwcml2YXRlIHZvaWQgT25EYXRhQmluZGluZyhvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCQl7DQorCQkJCUxpdGVyYWwgY29udHJvbDsNCisJCQkJY29udHJvbCA9IChMaXRlcmFsKSBzZW5kZXI7DQorCQkJCURhdGFHcmlkSXRlbSBjb250YWluZXIgPSAoRGF0YUdyaWRJdGVtKSBjb250cm9sLk5hbWluZ0NvbnRhaW5lcjsNCisJCQkJY29udHJvbC5UZXh0ID0gRGF0YUJpbmRlci5FdmFsKGNvbnRhaW5lci5EYXRhSXRlbSwgX0RhdGFGaWVsZCkgYXMgc3RyaW5nOw0KKwkJCX0NCisNCisJCQlwdWJsaWMgdm9pZCBJbnN0YW50aWF0ZUluKENvbnRyb2wgY29udGFpbmVyKQ0KKwkJCXsNCisJCQkJTGl0ZXJhbCBjb250cm9sID0gbmV3IExpdGVyYWwoKTsNCisJCQkJY29udHJvbC5JRCA9IF9EYXRhRmllbGQ7DQorCQkJCWNvbnRyb2wuRGF0YUJpbmRpbmcgKz0gbmV3IEV2ZW50SGFuZGxlcihPbkRhdGFCaW5kaW5nKTsNCisJCQkJY29udGFpbmVyLkNvbnRyb2xzLkFkZChjb250cm9sKTsNCisJCQl9DQorDQorCQkJLy8vIDxzdW1tYXJ5Pg0KKwkJCS8vLyBDb25zdHJ1Y3QgaW5zdGFuY2UgZnJvbSBhdHRyaWJ1dGUgbmFtZS4NCisJCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJCS8vLyA8cGFyYW0gbmFtZT0iZGF0YUZpZWxkIj5BdHRyaWJ1dGUgbmFtZTwvcGFyYW0+DQorCQkJcHVibGljIExpdGVyYWxUZW1wbGF0ZShzdHJpbmcgZGF0YUZpZWxkKQ0KKwkJCXsNCisJCQkJX0RhdGFGaWVsZCA9IGRhdGFGaWVsZDsNCisJCQl9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQ29uZmlndXJlIGEgRGF0YUdyaWQgY29sdW1uIHRvIGRpc3BsYXkgdGhlIHNlbGVjdGVkIHZhbHVlIG9uIHRoZSBLZXlWYWx1ZSBsaXN0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjbGFzcyBLZXlWYWx1ZVRlbXBsYXRlIDogSVRlbXBsYXRlDQorCQl7DQorCQkJcHJpdmF0ZSBzdHJpbmcgX0RhdGFGaWVsZDsNCisJCQlwcml2YXRlIElLZXlWYWx1ZUxpc3QgX0NvbnRyb2w7DQorDQorCQkJLy8vIDxzdW1tYXJ5Pg0KKwkJCS8vLyBIYW5kbGUgZGF0YSBiaW5kaW5nIGV2ZW50cyBieSBleHRyYWN0aW5nIGtleSBhbmQgdmFsdWUsIA0KKwkJCS8vLyBhbmQgc2V0dGluZyBzZWxlY3RlZCB2YWx1ZSB0byBjb250cm9sIHRleHQuDQorCQkJLy8vIDwvc3VtbWFyeT4NCisJCQkvLy8gPHBhcmFtIG5hbWU9InNlbmRlciI+RXZlbnQgc291cmNlPC9wYXJhbT4NCisJCQkvLy8gPHBhcmFtIG5hbWU9ImUiPlJ1bnRpbWUgYXJndW1lbnRzPC9wYXJhbT4NCisJCQlwcml2YXRlIHZvaWQgT25EYXRhQmluZGluZyhvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCQl7DQorCQkJCUxpdGVyYWwgY29udHJvbDsNCisJCQkJY29udHJvbCA9IChMaXRlcmFsKSBzZW5kZXI7DQorCQkJCURhdGFHcmlkSXRlbSBjb250YWluZXIgPSAoRGF0YUdyaWRJdGVtKSBjb250cm9sLk5hbWluZ0NvbnRhaW5lcjsNCisJCQkJc3RyaW5nIGtleSA9IERhdGFCaW5kZXIuRXZhbChjb250YWluZXIuRGF0YUl0ZW0sIF9EYXRhRmllbGQpIGFzIHN0cmluZzsNCisJCQkJY29udHJvbC5UZXh0ID0gX0NvbnRyb2wuVmFsdWVGb3Ioa2V5KTsNCisJCQl9DQorDQorCQkJcHVibGljIHZvaWQgSW5zdGFudGlhdGVJbihDb250cm9sIGNvbnRhaW5lcikNCisJCQl7DQorCQkJCUxpdGVyYWwgY29udHJvbCA9IG5ldyBMaXRlcmFsKCk7DQorCQkJCWNvbnRyb2wuSUQgPSBfRGF0YUZpZWxkOw0KKwkJCQljb250cm9sLkRhdGFCaW5kaW5nICs9IG5ldyBFdmVudEhhbmRsZXIoT25EYXRhQmluZGluZyk7DQorCQkJCWNvbnRhaW5lci5Db250cm9scy5BZGQoY29udHJvbCk7DQorCQkJfQ0KKw0KKwkJCS8vLyA8c3VtbWFyeT4NCisJCQkvLy8gQ29uc3RydWN0IGluc3RhbmNlIGZyb20gYSBkYXRhZmllbGQgYW5kIHRoZSBsaXN0Lg0KKwkJCS8vLyA8L3N1bW1hcnk+DQorCQkJLy8vIDxwYXJhbSBuYW1lPSJkYXRhRmllbGQiPkF0dHJpYnV0ZSBuYW1lPC9wYXJhbT4NCisJCQkvLy8gPHBhcmFtIG5hbWU9Imxpc3QiPkxpc3Qgb2Yga2V5VmFsdWUgaXRlbXM8L3BhcmFtPg0KKwkJCXB1YmxpYyBLZXlWYWx1ZVRlbXBsYXRlKHN0cmluZyBkYXRhRmllbGQsIElLZXlWYWx1ZUxpc3QgbGlzdCkNCisJCQl7DQorCQkJCV9EYXRhRmllbGQgPSBkYXRhRmllbGQ7DQorCQkJCV9Db250cm9sID0gbGlzdDsJCQkJDQorCQkJfQkNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcmVzZW50IGEgZHJvcCBkb3duIGxpc3QgY29udHJvbCB3aGVuIGVkaXRpbmcgYSBjb2x1bW4uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIGNsYXNzIERyb3BEb3duTGlzdFRlbXBsYXRlIDogSVRlbXBsYXRlDQorCQl7DQorCQkJLy8vIDxzdW1tYXJ5Pg0KKwkJCS8vLyBTdG9yZSBhdHRyaWJ1dGUgbmFtZS4NCisJCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJCXByaXZhdGUgc3RyaW5nIF9EYXRhRmllbGQ7DQorCQkJDQorCQkJLy8vIDxzdW1tYXJ5Pg0KKwkJCS8vLyBTdG9yZSByZWZlcmVuY2UgdG8gdGhlIERyb3BEb3duTGlzdCBjb250cm9sLg0KKwkJCS8vLyA8L3N1bW1hcnk+DQorCQkJcHJpdmF0ZSBEcm9wRG93bkxpc3QgX0NvbnRyb2w7DQorDQorCQkJLy8vIDxzdW1tYXJ5Pg0KKwkJCS8vLyBTY2FuIGxpc3QgZm9yIGFuIGl0ZW0gbWF0Y2hpbmcgdmFsdWUuDQorCQkJLy8vIDwvc3VtbWFyeT4NCisJCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRyb2wiPlRoZSBjb250cm9sIHRvIHNjYW48L3BhcmFtPg0KKwkJCS8vLyA8cGFyYW0gbmFtZT0idmFsdWUiPlRoZSB2YWx1ZSB0byBtYXRjaDwvcGFyYW0+DQorCQkJcHJpdmF0ZSB2b2lkIFNlbGVjdEl0ZW0oTGlzdENvbnRyb2wgY29udHJvbCwgc3RyaW5nIHZhbHVlKQ0KKwkJCXsNCisJCQkJaWYgKHZhbHVlICE9IG51bGwpDQorCQkJCXsNCisJCQkJCWludCBpbmRleCA9IDA7DQorCQkJCQlmb3JlYWNoIChMaXN0SXRlbSBpIGluIGNvbnRyb2wuSXRlbXMpDQorCQkJCQl7DQorCQkJCQkJaWYgKHZhbHVlLkVxdWFscyhpLlZhbHVlKSkNCisJCQkJCQl7DQorCQkJCQkJCWNvbnRyb2wuU2VsZWN0ZWRJbmRleCA9IGluZGV4Ow0KKwkJCQkJCQljb250aW51ZTsNCisJCQkJCQl9DQorCQkJCQkJaW5kZXgrKzsNCisJCQkJCX0NCisJCQkJfQ0KKwkJCX0NCisNCisJCQkvLy8gPHN1bW1hcnk+DQorCQkJLy8vIEhhbmRsZSBhIGRhdGEgYmluZGluZyBldmVudCBieSBzZWxlY3RpbmcgdGhlIGtleSByb3cuDQorCQkJLy8vIDwvc3VtbWFyeT4NCisJCQkvLy8gPHBhcmFtIG5hbWU9InNlbmRlciI+PC9wYXJhbT4NCisJCQkvLy8gPHBhcmFtIG5hbWU9ImUiPjwvcGFyYW0+DQorCQkJcHJpdmF0ZSB2b2lkIE9uRGF0YUJpbmRpbmcob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQkJew0KKwkJCQlEcm9wRG93bkxpc3QgY29udHJvbDsNCisJCQkJY29udHJvbCA9IChEcm9wRG93bkxpc3QpIHNlbmRlcjsNCisJCQkJRGF0YUdyaWRJdGVtIGNvbnRhaW5lciA9IChEYXRhR3JpZEl0ZW0pIGNvbnRyb2wuTmFtaW5nQ29udGFpbmVyOw0KKwkJCQlzdHJpbmcga2V5ID0gRGF0YUJpbmRlci5FdmFsKGNvbnRhaW5lci5EYXRhSXRlbSwgX0RhdGFGaWVsZCkgYXMgc3RyaW5nOw0KKwkJCQlTZWxlY3RJdGVtKGNvbnRyb2wsIGtleSk7DQorCQkJCV9TZWxlY3RlZEluZGV4ID0gY29udHJvbC5TZWxlY3RlZEluZGV4OyAvLyBGSVhNRTogW09WUi0yNF0NCisJCQl9DQorDQorCQkJLy8vIDxzdW1tYXJ5Pg0KKwkJCS8vLyBDYWNoZSB0aGUgc2VsZWN0ZWQgaW5kZXggZm9yIE9uUHJlUmVuZGVyLg0KKwkJCS8vLyA8L3N1bW1hcnk+DQorCQkJcHJpdmF0ZSBpbnQgX1NlbGVjdGVkSW5kZXg7DQorDQorCQkJLy8vIDxzdW1tYXJ5Pg0KKwkJCS8vLyBQcm92aWRlIGEga2x1ZGdlIG1ldGhvZCB0byBzZXQgU2VsZWN0ZWQgSW5kZXguDQorCQkJLy8vIDwvc3VtbWFyeT4NCisJCQkvLy8gPHJlbWFya3M+PHA+DQorCQkJLy8vIEFmdGVyIHNldHRpbmcgdGhlIHNlbGVjdGVkIGluZGV4IG9uIERhdGFCaW5kaW5nLCANCisJCQkvLy8gaXQgaXMgc29tZWhvdyBiZWluZyByZXNldCB0byAwIGJlZm9yZSBwcmVyZW5kZXIuIA0KKwkJCS8vLyBUaGlzIG1ldGhvZCByZXN0b3JlcyB0aGUgc2VsZWN0ZWQgaW5kZXggc3QgYnkgDQorCQkJLy8vIE9uRGF0YUJpbmRpbmcuIA0KKwkJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJCS8vLyA8cGFyYW0gbmFtZT0ic2VuZGVyIj5FdmVudCBzb3VyY2U8L3BhcmFtPg0KKwkJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBwYXJhbWV0ZXJzPC9wYXJhbT4NCisJCQlwcml2YXRlIHZvaWQgT25QcmVSZW5kZXIob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQkJew0KKwkJCQlEcm9wRG93bkxpc3QgY29udHJvbDsNCisJCQkJY29udHJvbCA9IChEcm9wRG93bkxpc3QpIHNlbmRlcjsNCisJCQkJY29udHJvbC5TZWxlY3RlZEluZGV4ID0gX1NlbGVjdGVkSW5kZXg7DQorCQkJfQ0KKw0KKwkJCXB1YmxpYyB2b2lkIEluc3RhbnRpYXRlSW4oQ29udHJvbCBjb250YWluZXIpDQorCQkJew0KKwkJCQljb250YWluZXIuQ29udHJvbHMuQWRkKF9Db250cm9sKTsNCisJCQl9DQorDQorCQkJLy8vIDxzdW1tYXJ5Pg0KKwkJCS8vLyBDb25zdHJ1Y3QgYSBEcm9wRG93bkxpc3RUZW1wYXRlIGZyb20gYW4gaWQgYW5kIGRhdGFzb3VyY2UuIA0KKwkJCS8vLyA8L3N1bW1hcnk+DQorCQkJLy8vIDxwYXJhbSBuYW1lPSJpZCI+RGF0YSBGaWVsZCBOYW1lPC9wYXJhbT4NCisJCQlwdWJsaWMgRHJvcERvd25MaXN0VGVtcGxhdGUoc3RyaW5nIGlkLCBvYmplY3QgZGF0YVNvdXJjZSkNCisJCQl7DQorCQkJCV9EYXRhRmllbGQgPSBpZDsNCisJCQkJX0NvbnRyb2wgPSBuZXcgRHJvcERvd25MaXN0KCk7DQorCQkJCV9Db250cm9sLklEID0gaWQ7DQorCQkJCV9Db250cm9sLkRhdGFTb3VyY2UgPSBkYXRhU291cmNlOw0KKwkJCQlfQ29udHJvbC5EYXRhQmluZCgpOw0KKwkJCQlfQ29udHJvbC5EYXRhQmluZGluZyArPSBuZXcgRXZlbnRIYW5kbGVyKE9uRGF0YUJpbmRpbmcpOw0KKwkJCQlfQ29udHJvbC5QcmVSZW5kZXIgKz0gbmV3IEV2ZW50SGFuZGxlcihPblByZVJlbmRlcik7DQorCQkJfQ0KKw0KKwkJCS8vLyA8c3VtbWFyeT4NCisJCQkvLy8gQ29uc3RydWN0IGEgRHJvcERvd25MaXN0VGVtcGF0ZSBmcm9tIGFuIGlkIGFuZCBsaXN0LiANCisJCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJCS8vLyA8cGFyYW0gbmFtZT0iaWQiPkRhdGEgRmllbGQgTmFtZTwvcGFyYW0+DQorCQkJLy8vIDxwYXJhbSBuYW1lPSJsaXN0Ij5JdGVtcyB0byBsaXN0PC9wYXJhbT4NCisJCQlwdWJsaWMgRHJvcERvd25MaXN0VGVtcGxhdGUoc3RyaW5nIGlkLCBJS2V5VmFsdWVMaXN0IGxpc3QpIDogdGhpcyhpZCxsaXN0LGZhbHNlKQ0KKwkJCXt9DQorDQorCQkJLy8vIDxzdW1tYXJ5Pg0KKwkJCS8vLyBDb25zdHJ1Y3QgYSBEcm9wRG93bkxpc3RUZW1wYXRlIGZyb20gaWQsIGxpc3QsIGluc2VydE51bGxLZXkuDQorCQkJLy8vIDwvc3VtbWFyeT4NCisJCQkvLy8gPHBhcmFtIG5hbWU9ImlkIj5EYXRhIEZpZWxkIE5hbWU8L3BhcmFtPg0KKwkJCS8vLyA8cGFyYW0gbmFtZT0ibGlzdCI+SXRlbXMgdG8gbGlzdDwvcGFyYW0+DQorCQkJLy8vIDxwYXJhbSBuYW1lPSJpbnNlcnROdWxsS2V5Ij5XaGV0aGVyIHRvIHByZXBlbmQgYSAtdi0gaXRlbSB0byB0aGUgbGlzdDwvcGFyYW0+DQorCQkJcHVibGljIERyb3BEb3duTGlzdFRlbXBsYXRlKHN0cmluZyBpZCwgSUtleVZhbHVlTGlzdCBsaXN0LCBib29sIGluc2VydE51bGxLZXkpDQorCQkJew0KKwkJCQlpZiAoaW5zZXJ0TnVsbEtleSkgDQorCQkJCXsNCisJCQkJCWxvY2sobGlzdCkNCisJCQkJCXsNCisJCQkJCQlJS2V5VmFsdWUgZSA9IGxpc3RbMF0gYXMgS2V5VmFsdWU7DQorCQkJCQkJaWYgKCFOVUxMX1RPS0VOLkVxdWFscyhlLlRleHQpKQ0KKwkJCQkJCXsJCQkJCQkJCQ0KKwkJCQkJCQlsaXN0Lkluc2VydCgwLCBuZXcgS2V5VmFsdWUoU3RyaW5nLkVtcHR5LCBOVUxMX1RPS0VOKSk7CQkJCQkJDQorCQkJCQkJfQ0KKwkJCQkJfQ0KKwkJCQl9CQkJCQkNCisNCisJCQkJX0RhdGFGaWVsZCA9IGlkOw0KKwkJCQlfQ29udHJvbCA9IG5ldyBEcm9wRG93bkxpc3QoKTsNCisJCQkJX0NvbnRyb2wuSUQgPSBpZDsNCisJCQkJX0NvbnRyb2wuRGF0YVNvdXJjZSA9IGxpc3Q7DQorCQkJCV9Db250cm9sLkRhdGFUZXh0RmllbGQgPSAidmFsdWUiOw0KKwkJCQlfQ29udHJvbC5EYXRhVmFsdWVGaWVsZCA9ICJrZXkiOw0KKwkJCQlfQ29udHJvbC5EYXRhQmluZCgpOw0KKwkJCQlfQ29udHJvbC5EYXRhQmluZGluZyArPSBuZXcgRXZlbnRIYW5kbGVyKE9uRGF0YUJpbmRpbmcpOw0KKwkJCQlfQ29udHJvbC5QcmVSZW5kZXIgKz0gbmV3IEV2ZW50SGFuZGxlcihPblByZVJlbmRlcik7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbg0KKwl9DQorDQorCS8qIA0KKw0KKwkNCisJI3JlZ2lvbiBMaXN0IFBhbmVsDQorDQorCQlwcm90ZWN0ZWQgUGFuZWwgcG5sTGlzdDsNCisJCXByb3RlY3RlZCBEYXRhR3JpZENvbnRyb2wgbGlzdF9yZXBvcnQ7DQorCQkvLyBmcm9tIEJhc2VHcmlkOiBCdXR0b24gY21kTGlzdEFkZDsNCisNCisJCXByaXZhdGUgdm9pZCBMaXN0X0luaXQoKQ0KKwkJew0KKwkJCWxpc3RfcmVwb3J0LkhlbHBlciA9IHRoaXMuSGVscGVyOw0KKwkJCWxpc3RfcmVwb3J0Lkxpc3RfSW5pdCgpOw0KKwkJCXBubExpc3QuVmlzaWJsZSA9IGZhbHNlOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFNlbGVjdCBvbmx5IHRob3NlIGl0ZW1zIGluIGNvbnRyb2wgDQorCQkvLy8gd2hvc2UgVmFsdWUgcHJvcGVydHkgbWF0Y2hlcyB0aGUgZ2l2ZW4gdmFsdWUuDQorCQkvLy8gSWYgdGhlIHZhbHVlIGlzIG51bGwsIG5vIGFjdGlvbiBpcyB0YWtlbi4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRyb2wiPkxpc3RDb250cm9sIHRvIHByb2Nlc3M8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJ0ZXh0Ij5UZXh0IGxhYmVsIHRvIG1hdGNoPC9wYXJhbT4NCisJCS8vLyANCisJCXN0YXRpYyB2b2lkIFNlbGVjdEl0ZW1UZXh0IChMaXN0Q29udHJvbCBjb250cm9sLCBzdHJpbmcgdGV4dCkNCisJCXsNCisJCQlpZiAodGV4dCAhPSBudWxsKQ0KKwkJCXsNCisJCQkJZm9yZWFjaCAoTGlzdEl0ZW0gaSBpbiBjb250cm9sLkl0ZW1zKQ0KKwkJCQkJaS5TZWxlY3RlZCA9IGZhbHNlOw0KKw0KKwkJCQlmb3JlYWNoIChMaXN0SXRlbSBpIGluIGNvbnRyb2wuSXRlbXMpDQorCQkJCXsNCisJCQkJCWlmICh0ZXh0LkVxdWFscyAoaS5UZXh0KSkNCisJCQkJCQlpLlNlbGVjdGVkID0gdHJ1ZTsNCisJCQkJfQ0KKwkJCX0NCisJCX0NCisNCisJCXByaXZhdGUgdm9pZCBMaXN0X0VkaXRfU3VibWl0KElEaWN0aW9uYXJ5IGNvbnRleHQpDQorCQl7CQkJCQkJCQkJDQorCQkJSGVscGVyLkJpbmRDb250cm9scyhwbmxFZGl0LkNvbnRyb2xzLGNvbnRleHQsbnVsbCk7DQorCQkJc3RyaW5nIGNvdW50eV9uYW1lID0gY29udGV4dFtBcHAuQ09VTlRZX05BTUVdIGFzIHN0cmluZzsNCisJCQlTZWxlY3RJdGVtVGV4dChjb3VudHlfa2V5X2xpc3QsY291bnR5X25hbWUpOw0KKwkJCVRlbXBsYXRlX0xvYWQgKEFwcC5tc2dfUk9VVElOR19IRUFESU5HLCBBcHAubXNnX1JPVVRJTkdfRURJVF9QUk9NUFQpOw0KKwkJCXBubEVkaXQuVmlzaWJsZSA9IHRydWU7DQorCQkJcG5sRmluZC5WaXNpYmxlID0gZmFsc2U7DQorCQkJcG5sTGlzdC5WaXNpYmxlID0gZmFsc2U7CQkJDQorCQl9DQorDQorCSNlbmRyZWdpb24JDQorCQ0KKwkNCisJDQorCSAqLw0KK30NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0dyaWRDb250cm9sLmFzY3gucmVzeCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvR3JpZENvbnRyb2wuYXNjeC5yZXN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMGVhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0dyaWRDb250cm9sLmFzY3gucmVzeApAQCAtMCwwICsxLDQyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4NCis8cm9vdD4NCisJPHhzZDpzY2hlbWEgaWQ9InJvb3QiIHhtbG5zPSIiIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOm1zZGF0YT0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp4bWwtbXNkYXRhIj4NCisJCTx4c2Q6ZWxlbWVudCBuYW1lPSJyb290IiBtc2RhdGE6SXNEYXRhU2V0PSJ0cnVlIj4NCisJCQk8eHNkOmNvbXBsZXhUeXBlPg0KKwkJCQk8eHNkOmNob2ljZSBtYXhPY2N1cnM9InVuYm91bmRlZCI+DQorCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGF0YSI+DQorCQkJCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJCQkJPHhzZDpzZXF1ZW5jZT4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJjb21tZW50IiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIyIiAvPg0KKwkJCQkJCQk8L3hzZDpzZXF1ZW5jZT4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0idHlwZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibWltZXR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQkJCQk8L3hzZDplbGVtZW50Pg0KKwkJCQkJPHhzZDplbGVtZW50IG5hbWU9InJlc2hlYWRlciI+DQorCQkJCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJCQkJPHhzZDpzZXF1ZW5jZT4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4NCisJCQkJCQkJPC94c2Q6c2VxdWVuY2U+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIHVzZT0icmVxdWlyZWQiIC8+DQorCQkJCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQkJCQk8L3hzZDplbGVtZW50Pg0KKwkJCQk8L3hzZDpjaG9pY2U+DQorCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQk8L3hzZDplbGVtZW50Pg0KKwk8L3hzZDpzY2hlbWE+DQorCTxyZXNoZWFkZXIgbmFtZT0iUmVzTWltZVR5cGUiPg0KKwkJPHZhbHVlPnRleHQvbWljcm9zb2Z0LXJlc3g8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCisJPHJlc2hlYWRlciBuYW1lPSJWZXJzaW9uIj4NCisJCTx2YWx1ZT4xLjAuMC4wPC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iUmVhZGVyIj4NCisJCTx2YWx1ZT5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVJlYWRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iV3JpdGVyIj4NCisJCTx2YWx1ZT5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVdyaXRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorPC9yb290Pg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvSGludExhYmVsLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9IaW50TGFiZWwuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGRiMjNjNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvSGludExhYmVsLmNzCkBAIC0wLDAgKzEsMjMgQEAKK25hbWVzcGFjZSBOZXh1cy5XZWINCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEV4dGVuZCBNZXNzYWdlTGFiZWwgdG8gcmVzcG9uZCBvbmx5IHRvIHRoZSBWaWV3X0hpbnQgZXZlbnQgDQorCS8vLyBhbmQgdXNlIGFuIGFsdGVybmF0ZSBzdWZmaXguDQorCS8vLyA8L3N1bW1hcnk+DQorCXB1YmxpYyBjbGFzcyBIaW50TGFiZWwgOiBWaWV3TGFiZWwNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIERlZmF1bHQgc3VmZml4IGZvciBOYW1lTGFiZWwgSURzIFsiX2hpbnQiXS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEhJTlRfU1VGRklYID0gIl9oaW50IjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTZXQgdGhlIGRlZmF1bHRzIGZvciB0aGlzIHN1YmNsYXNzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBIaW50TGFiZWwoKQ0KKwkJew0KKwkJCVN1ZmZpeCA9IEhJTlRfU1VGRklYOw0KKwkJCVZpZXdfQWxlcnQgPSBmYWxzZTsNCisJCX0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0lWaWV3Q29udHJvbC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvSVZpZXdDb250cm9sLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxM2E3YzAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL0lWaWV3Q29udHJvbC5jcwpAQCAtMCwwICsxLDUxIEBACit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgU3lzdGVtLldlYi5VSTsNCit1c2luZyBOZXh1cy5Db3JlLkhlbHBlcnM7DQordXNpbmcgTmV4dXMuQ29yZS5Qcm9maWxlOw0KKw0KK25hbWVzcGFjZSBOZXh1cy5XZWINCit7DQorCXB1YmxpYyBpbnRlcmZhY2UgSVZpZXdDb250cm9sDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTZXQgTGFiZWxzIGFuZCBUZXh0Qm94ZXMgdG8gYW4gZW1wdHkgc3RyaW5nIA0KKwkJLy8vIHRvIGVuc3VyZSBpbmFwcHJvcHJpYXRlIHZhbHVlcyBhcmUgbm90IGNhcnJpZWQgb3Zlci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQl2b2lkIFJlc2V0Q29udHJvbHMoKTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBVc2VyIHByb2ZpbGUsIHdoaWNoIGluY2x1ZGVzIHVzZXIgSUQgYW5kIExvY2FsZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlJUHJvZmlsZSBQcm9maWxlIHsgZ2V0OyBzZXQ7IH0NCisNCisJCUlWaWV3SGVscGVyIEdldEhlbHBlckZvcihzdHJpbmcgY29tbWFuZCk7DQorCQlJVmlld0hlbHBlciBFeGVjdXRlKHN0cmluZyBjb21tYW5kKTsNCisNCisJCXZvaWQgQmluZChDb250cm9sQ29sbGVjdGlvbiBjb250cm9scywgSURpY3Rpb25hcnkgZGljdGlvbmFyeSk7DQorCQl2b2lkIEJpbmQoSURpY3Rpb25hcnkgZGljdGlvbmFyeSk7DQorDQorCQl2b2lkIEV4ZWN1dGVCaW5kKENvbnRyb2xDb2xsZWN0aW9uIGNvbnRyb2xzLCBJVmlld0hlbHBlciBoZWxwZXIpOw0KKwkJdm9pZCBFeGVjdXRlQmluZChJVmlld0hlbHBlciBoZWxwZXIpOw0KKw0KKwkJSVZpZXdIZWxwZXIgRXhlY3V0ZUJpbmQoQ29udHJvbENvbGxlY3Rpb24gY29udHJvbHMsIHN0cmluZyBjb21tYW5kKTsNCisJCUlWaWV3SGVscGVyIEV4ZWN1dGVCaW5kKHN0cmluZyBjb21tYW5kKTsNCisNCisJCXZvaWQgUmVhZEV4ZWN1dGUoSVZpZXdIZWxwZXIgaGVscGVyLCBib29sIG51bGxJZkVtcHR5KTsNCisJCXZvaWQgUmVhZEV4ZWN1dGUoSVZpZXdIZWxwZXIgaGVscGVyKTsNCisNCisJCUlWaWV3SGVscGVyIFJlYWQoc3RyaW5nIGNvbW1hbmQsIGJvb2wgbnVsbElmRW1wdHkpOw0KKwkJSVZpZXdIZWxwZXIgUmVhZChzdHJpbmcgY29tbWFuZCk7DQorDQorCQlJVmlld0hlbHBlciBSZWFkRXhlY3V0ZShzdHJpbmcgY29tbWFuZCwgYm9vbCBudWxsSWZFbXB0eSk7DQorCQlJVmlld0hlbHBlciBSZWFkRXhlY3V0ZShzdHJpbmcgY29tbWFuZCk7DQorDQorCQlJVmlld0hlbHBlciBSZWFkRXhlY3V0ZShDb250cm9sQ29sbGVjdGlvbiBjb2xsZWN0aW9uLCBzdHJpbmcgY29tbWFuZCwgYm9vbCBudWxsSWZFbXB0eSk7DQorCQlJVmlld0hlbHBlciBSZWFkRXhlY3V0ZShDb250cm9sQ29sbGVjdGlvbiBjb2xsZWN0aW9uLCBzdHJpbmcgY29tbWFuZCk7DQorDQorCQlJVmlld0hlbHBlciBSZWFkKHN0cmluZyBjb21tYW5kLCBJRGljdGlvbmFyeSBjcml0ZXJpYSwgYm9vbCBudWxsSWZFbXB0eSk7DQorCQlJVmlld0hlbHBlciBSZWFkRXhlY3V0ZShzdHJpbmcgY29tbWFuZCwgSURpY3Rpb25hcnkgY3JpdGVyaWEsIGJvb2wgbnVsbElmRW1wdHkpOw0KKwkJSVZpZXdIZWxwZXIgUmVhZEV4ZWN1dGUoc3RyaW5nIGNvbW1hbmQsIElEaWN0aW9uYXJ5IGNyaXRlcmlhKTsNCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL01lc3NhZ2VzLnJlc3ggYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL01lc3NhZ2VzLnJlc3gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDdkYjdhZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvTWVzc2FnZXMucmVzeApAQCAtMCwwICsxLDg3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4NCis8cm9vdD4NCisJPHhzZDpzY2hlbWEgaWQ9InJvb3QiIHhtbG5zPSIiIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOm1zZGF0YT0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp4bWwtbXNkYXRhIj4NCisJCTx4c2Q6ZWxlbWVudCBuYW1lPSJyb290IiBtc2RhdGE6SXNEYXRhU2V0PSJ0cnVlIj4NCisJCQk8eHNkOmNvbXBsZXhUeXBlPg0KKwkJCQk8eHNkOmNob2ljZSBtYXhPY2N1cnM9InVuYm91bmRlZCI+DQorCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGF0YSI+DQorCQkJCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJCQkJPHhzZDpzZXF1ZW5jZT4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJjb21tZW50IiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIyIiAvPg0KKwkJCQkJCQk8L3hzZDpzZXF1ZW5jZT4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0idHlwZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibWltZXR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQkJCQk8L3hzZDplbGVtZW50Pg0KKwkJCQkJPHhzZDplbGVtZW50IG5hbWU9InJlc2hlYWRlciI+DQorCQkJCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJCQkJPHhzZDpzZXF1ZW5jZT4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4NCisJCQkJCQkJPC94c2Q6c2VxdWVuY2U+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIHVzZT0icmVxdWlyZWQiIC8+DQorCQkJCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQkJCQk8L3hzZDplbGVtZW50Pg0KKwkJCQk8L3hzZDpjaG9pY2U+DQorCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQk8L3hzZDplbGVtZW50Pg0KKwk8L3hzZDpzY2hlbWE+DQorCTxyZXNoZWFkZXIgbmFtZT0iUmVzTWltZVR5cGUiPg0KKwkJPHZhbHVlPnRleHQvbWljcm9zb2Z0LXJlc3g8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCisJPHJlc2hlYWRlciBuYW1lPSJWZXJzaW9uIj4NCisJCTx2YWx1ZT4xLjAuMC4wPC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iUmVhZGVyIj4NCisJCTx2YWx1ZT5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVJlYWRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iV3JpdGVyIj4NCisJCTx2YWx1ZT5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVdyaXRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCQ0KKwkNCisJPCEtLSBBbnkgb2YgdGhlc2UgdmFsdWVzIGNhbiBiZSBvdmVycmlkZGVuIGluIHRoZSBob3N0IGFwcGxpY2F0aW9uLiBMb2FkIHRoZSBob3N0IHJlc291cmNlcyBGSVJTVCEgLS0+DQorCQ0KKyAgPGRhdGEgbmFtZT0iZW50cnlfZWRpdF9jb21tYW5kIj4NCisJPHZhbHVlPkVESVQ8L3ZhbHVlPg0KKyAgPC9kYXRhPg0KKyAgDQorICA8ZGF0YSBuYW1lPSJlbnRyeV9xdWl0X2NvbW1hbmQiPg0KKwk8dmFsdWU+UVVJVDwvdmFsdWU+DQorICA8L2RhdGE+DQorICANCisgIDxkYXRhIG5hbWU9ImVudHJ5X3NhdmVfY29tbWFuZCI+DQorCTx2YWx1ZT5TQVZFPC92YWx1ZT4NCisgIDwvZGF0YT4NCisNCisgIDxkYXRhIG5hbWU9ImVudHJ5X2l0ZW1fY29tbWFuZCI+DQorCTx2YWx1ZT4jPC92YWx1ZT4NCisgIDwvZGF0YT4NCisNCisgICA8ZGF0YSBuYW1lPSJlbnRyeV9pdGVtX2NvbW1hbmRfbmFtZSI+DQorCTx2YWx1ZT5pdGVtX2NvbW1hbmQ8L3ZhbHVlPg0KKyAgPC9kYXRhPg0KKw0KKyAgPGRhdGEgbmFtZT0iaGludF9lZGl0Ij4NCisJPHZhbHVlPkVkaXQgZW50cnksIHByZXNzIFNBVkUuIDwvdmFsdWU+DQorICA8L2RhdGE+DQorICANCisgIDxkYXRhIG5hbWU9ImhpbnRfc3VjY2Vzc19hZGQiPg0KKyAgICA8dmFsdWU+SXRlbSBhZGRlZC4gPC92YWx1ZT4NCisgIDwvZGF0YT4NCisJDQorICA8ZGF0YSBuYW1lPSJoaW50X3N1Y2Nlc3NfZWRpdCI+DQorICAgIDx2YWx1ZT5DaGFuZ2VzIHNhdmVkLiA8L3ZhbHVlPg0KKyAgPC9kYXRhPg0KKyAgDQorICA8ZGF0YSBuYW1lPSJoaW50X3N1Y2Nlc3NfcXVpdCI+DQorCTx2YWx1ZT5DaGFuZ2UgY2FuY2VsbGVkLiAgPC92YWx1ZT4NCisgIDwvZGF0YT4NCisJDQorICA8ZGF0YSBuYW1lPSJsaXN0X2FkZF9jb21tYW5kIj4NCisgICAgPHZhbHVlPkFERCBJVEVNPC92YWx1ZT4NCisgIDwvZGF0YT4NCisgIA0KKyAgCQ0KKzwvcm9vdD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL1RleHRMYWJlbC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvVGV4dExhYmVsLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2MTBkOGEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL1RleHRMYWJlbC5jcwpAQCAtMCwwICsxLDI1IEBACituYW1lc3BhY2UgTmV4dXMuV2ViDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBFeHRlbmQgTWVzc2FnZUxhYmVsIHRvIGlnbm9yZSBydW50aW1lIGV2ZW50cywgIA0KKwkvLy8gcmVxdWlyZSBhbiBlbnRyeSwgYW5kIHVzZSBhbiBhbHRlcm5hdGUgc3VmZml4Lg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlwdWJsaWMgY2xhc3MgVGV4dExhYmVsIDogVmlld0xhYmVsDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBEZWZhdWx0IHN1ZmZpeCBmb3IgTmFtZUxhYmVsIElEcyBbIl9sYWJlbCJdLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgVEVYVF9TVUZGSVggPSAiX2xhYmVsIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTZXQgdGhlIGRlZmF1bHRzIGZvciB0aGlzIHN1YmNsYXNzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBUZXh0TGFiZWwoKQ0KKwkJew0KKwkJCVN1ZmZpeCA9IFRFWFRfU1VGRklYOw0KKwkJCVJlcXVpcmVkID0gdHJ1ZTsNCisJCQlWaWV3X0hpbnQgPSBmYWxzZTsNCisJCQlWaWV3X0FsZXJ0ID0gZmFsc2U7DQorCQl9DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9WaWV3Q29udHJvbC5hc2N4IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9WaWV3Q29udHJvbC5hc2N4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhMTJlMjUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL1ZpZXdDb250cm9sLmFzY3gKQEAgLTAsMCArMSBAQAorPCVAIENvbnRyb2wgTGFuZ3VhZ2U9ImMjIiBBdXRvRXZlbnRXaXJldXA9ImZhbHNlIiBDb2RlYmVoaW5kPSJWaWV3Q29udHJvbC5hc2N4LmNzIiBJbmhlcml0cz0iTmV4dXMuV2ViLlZpZXdDb250cm9sIiBUYXJnZXRTY2hlbWE9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vaW50ZWxsaXNlbnNlL2llNSIgJT4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL1ZpZXdDb250cm9sLmFzY3guY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL1ZpZXdDb250cm9sLmFzY3guY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBmYzNhYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvVmlld0NvbnRyb2wuYXNjeC5jcwpAQCAtMCwwICsxLDk1MCBAQAordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBTeXN0ZW0uV2ViLlVJOw0KK3VzaW5nIFN5c3RlbS5XZWIuVUkuV2ViQ29udHJvbHM7DQordXNpbmcgTmV4dXMuQ29yZTsNCit1c2luZyBOZXh1cy5Db3JlLkhlbHBlcnM7DQordXNpbmcgTmV4dXMuQ29yZS5Qcm9maWxlOw0KK3VzaW5nIFVzZXJDb250cm9sID0gU3ByaW5nLldlYi5VSS5Vc2VyQ29udHJvbDsNCisNCituYW1lc3BhY2UgTmV4dXMuV2ViDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBCYXNlIGNsYXNzIGZvciB2aWV3IGNvbnRyb2xzIChzdWIgZm9ybXMpLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gPHJlbWFya3M+DQorCS8vLyBWaWV3Q29udHJvbCBjYW4gcmVhZCBhbmQgYmluZCBjb250cm9scywgDQorCS8vLyBhbmQgcHJvdmlkZXMgYWNjZXNzIG1ldGhvZHMgZm9yIGhlbHBlciBhbmQgbWVzc2FnZSByZXNvdXJjZXMgIA0KKwkvLy8gPC9yZW1hcmtzPg0KKwkvLy8gDQorCS8vLyANCisJLy8vIA0KKwlwdWJsaWMgY2xhc3MgVmlld0NvbnRyb2wgOiBVc2VyQ29udHJvbCwgSVZpZXdDb250cm9sDQorCXsNCisJCXByaXZhdGUgSVJlcXVlc3RDYXRhbG9nIF9DYXRhbG9nOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhlbHBlciBwYXNzZWQgYnkgYW4gZW5jbG9zaW5nIGNvbnRyb2wgKGUuZy4gUGFnZSkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIFN1YmNsYXNzZXMgYWRkaW5nIEV2ZW50SGFuZGxlcnMgDQorCQkvLy8gc2hvdWxkIHBhc3MgYSByZWZlcmVuY2UgdG8gdGhlbXNlbHZlcyB3aXRoIGEgVmlld0FyZ3MgaW5zdGFuY2UsIA0KKwkJLy8vIGVuY2Fwc3VsYXRpbmcgdGhlIEhlbHBlci4NCisJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJcHVibGljIHZpcnR1YWwgSVJlcXVlc3RDYXRhbG9nIENhdGFsb2cNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0NhdGFsb2c7IH0NCisJCQlzZXQgeyBfQ2F0YWxvZyA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHN1ZWRvIHByb3BlcnR5IHRvIGdlbmVyYXRlIGFuIEVycm9yIGV2ZW50IGVuY2Fwc3VsYXRpbmcgDQorCQkvLy8gb3VyIEhlbHBlciBwcm9wZXJ0eSwgY29udGFpbmluZyB0aGUgZXJyb3IuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHJvdGVjdGVkIElWaWV3SGVscGVyIFBhZ2VfQWxlcnQNCisJCXsNCisJCQlzZXQgeyBWaWV3X0FsZXJ0X0hhbmRsZXIodGhpcywgbmV3IFZpZXdBcmdzKHZhbHVlKSk7IH0NCisJCX0NCisNCisJCSNyZWdpb24gU3RyaW5nIHV0aWxpdGllcyANCisNCisJCXByb3RlY3RlZCBzdHJpbmcgTnVsbE9uRW1wdHkoc3RyaW5nIGlucHV0KQ0KKwkJew0KKwkJCXJldHVybiAoc3RyaW5nLkVtcHR5LkVxdWFscyhpbnB1dCkpID8gbnVsbCA6IGlucHV0Ow0KKwkJfQ0KKw0KKwkJcHJvdGVjdGVkIHN0cmluZyBUcmltKHN0cmluZyBpbnB1dCwgYm9vbCBudWxsT25FbXB0eSkNCisJCXsNCisJCQlzdHJpbmcgb3V0cHV0ID0gKGlucHV0PT1udWxsKSA/IG51bGwgOiBpbnB1dC5UcmltKCk7DQorCQkJcmV0dXJuIChudWxsT25FbXB0eSkgPyBOdWxsT25FbXB0eShvdXRwdXQpIDogb3V0cHV0Ow0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEV4dHJhY3QgdGhlIHJvb3QgbmFtZSBmcm9tIHRoZSBpZCwgYWxsb3dpbmcgZm9yIGEgcHJlZml4IGFuZCBzdWZmaXguDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJpZCI+VGhlIGZ1bGwgaWQsIGluY2x1ZGluZyBwcmVmaXggYW5kIHN1ZmZpeC48L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJwcmVmaXgiPlRoZSBwcmVmaXggdG8gb21pdC48L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJzdWZmaXgiPlRoZSBzdWZmaXggdG8gb21pdC48L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPklEIGZvciBjb3JyZXNwb25kaW5nIGVudHJ5PC9yZXR1cm5zPg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSBzdHJpbmcgUm9vdElkKHN0cmluZyBpZCwgc3RyaW5nIHByZWZpeCwgc3RyaW5nIHN1ZmZpeCkNCisJCXsNCisJCQlpbnQgdiA9IGlkLkxhc3RJbmRleE9mKHN1ZmZpeCk7DQorCQkJc3RyaW5nIGZvcmUgPSBpZC5TdWJzdHJpbmcoMCwgdik7DQorCQkJc3RyaW5nIHJvb3QgPSBUb0NvbHVtbihmb3JlLCBwcmVmaXgpOw0KKwkJCXJldHVybiByb290Ow0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRyaW0gYW55IFNRTCB3aWxkY2FyZHMgdGhhdCBtYXkgaGF2ZSBiZWVuIGFkZGVkIHRvIGEgc2VhcmNoIHN0cmluZy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImlucHV0Ij5TdHJpbmcgdG8gdHJpbTwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+SW5wdXQgd2l0aG91dCBTUUwgd2lsZGNhcmRzPC9yZXR1cm5zPg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIHN0cmluZyBUcmltV2lsZENhcmRzKHN0cmluZyBpbnB1dCkNCisJCXsNCisJCQlzdHJpbmcgdHJpbW1lZCA9IG51bGw7DQorCQkJaWYgKGlucHV0ICE9IG51bGwpIHRyaW1tZWQgPSBpbnB1dC5UcmltKCclJyk7DQorCQkJcmV0dXJuIHRyaW1tZWQ7DQorCQl9DQorDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIE5VTExfVE9LRU4gPSAiLS12LS0iOw0KKw0KKwkJcHJpdmF0ZSBzdGF0aWMgS2V5VmFsdWUgX051bGxLZXkgPSBuZXcgS2V5VmFsdWUoU3RyaW5nLkVtcHR5LCBOVUxMX1RPS0VOKTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBEZWZhdWx0IHZhbHVlIGZvciBkcm9wZG93biBsaXN0cy4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHJvdGVjdGVkIEtleVZhbHVlIE51bGxLZXkNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX051bGxLZXk7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUaGUgZGVmYXVsdCBsaXN0IHN1ZmZpeC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIHN0cmluZyBfTGlzdFN1ZmZpeCA9ICJfbGlzdCI7DQorDQorCQlwcm90ZWN0ZWQgc3RyaW5nIExpc3RTdWZmaXgNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0xpc3RTdWZmaXg7IH0NCisJCQlzZXQgeyBfTGlzdFN1ZmZpeCA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkjcmVnaW9uIENvbnRyb2wgdXRpbGl0aWVzDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmV0dXJuIHRydWUgaWYgY29udHJvbCBpcyBhIGJ1dHRvbi4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRyb2wiPkNvbnRyb2wgdG8gdGVzdC48L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPlRydWUgaWYgY29udHJvbCBpcyBhIEJ1dHRvbjwvcmV0dXJucz4NCisJCS8vLyANCisJCXByb3RlY3RlZCBib29sIElzQnV0dG9uKENvbnRyb2wgY29udHJvbCkNCisJCXsNCisJCQlyZXR1cm4gKHR5cGVvZiAoQnV0dG9uKS5FcXVhbHMoY29udHJvbC5HZXRUeXBlKCkpKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZXR1cm4gdHJ1ZSBpZiBjb250cm9sIGlzIGEgQ2hlY2tib3guDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250cm9sIj5Db250cm9sIHRvIHRlc3QuPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5UcnVlIGlmIGNvbnRyb2wgaXMgYSBDaGVja2JveDwvcmV0dXJucz4NCisJCS8vLyANCisJCXByb3RlY3RlZCBib29sIElzQ2hlY2tCb3goQ29udHJvbCBjb250cm9sKQ0KKwkJew0KKwkJCXJldHVybiAodHlwZW9mIChDaGVja0JveCkuRXF1YWxzKGNvbnRyb2wuR2V0VHlwZSgpKSk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmV0dXJuIHRydWUgaWYgY29udHJvbCBpcyBhIEh5cGVyTGluay4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRyb2wiPkNvbnRyb2wgdG8gdGVzdC48L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPlRydWUgaWYgY29udHJvbCBpcyBhIFRleHRCb3g8L3JldHVybnM+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgYm9vbCBJc0h5cGVyTGluayhDb250cm9sIGNvbnRyb2wpDQorCQl7DQorCQkJcmV0dXJuICh0eXBlb2YgKEh5cGVyTGluaykuRXF1YWxzKGNvbnRyb2wuR2V0VHlwZSgpKSk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmV0dXJuIHRydWUgaWYgY29udHJvbCBpcyBhIExhYmVsLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udHJvbCI+Q29udHJvbCB0byB0ZXN0LjwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+VHJ1ZSBpZiBjb250cm9sIGlzIGEgTGFiZWw8L3JldHVybnM+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgYm9vbCBJc0xhYmVsKENvbnRyb2wgY29udHJvbCkNCisJCXsNCisJCQlyZXR1cm4gKHR5cGVvZiAoTGFiZWwpLkVxdWFscyhjb250cm9sLkdldFR5cGUoKSkpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJldHVybiB0cnVlIGlmIGNvbnRyb2wgaXMgYSBNZXNzYWdlTGFiZWwgDQorCQkvLy8gb3IgTWVzc2FnZUxhYmVsIHN1YmNsYXNzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udHJvbCI+Q29udHJvbCB0byB0ZXN0LjwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+VHJ1ZSBpZiBjb250cm9sIGlzIGEgTmFtZUxhYmVsPC9yZXR1cm5zPg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIGJvb2wgSXNWaWV3TGFiZWwoQ29udHJvbCBjb250cm9sKQ0KKwkJew0KKwkJCXJldHVybiAoY29udHJvbCBpcyBWaWV3TGFiZWwpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJldHVybiB0cnVlIGlmIGNvbnRyb2wgaXMgYSBMaXN0IENvbnRyb2wgb3Igb25lIG9mIHRoZSBzdGFuZGFyZCBzdWJjbGFzc2VzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udHJvbCI+Q29udHJvbCB0byB0ZXN0LjwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+VHJ1ZSBpZiBjb250cm9sIGlzIGEgVGV4dEJveDwvcmV0dXJucz4NCisJCS8vLyANCisJCXByb3RlY3RlZCBib29sIElzTGlzdENvbnRyb2woQ29udHJvbCBjb250cm9sKQ0KKwkJew0KKwkJCWJvb2wgaXNMaXN0ID0gZmFsc2U7DQorCQkJVHlwZSB0eXBlID0gY29udHJvbC5HZXRUeXBlKCk7DQorCQkJaXNMaXN0ID0gKGlzTGlzdCkgfHwgdHlwZW9mIChMaXN0Q29udHJvbCkuRXF1YWxzKHR5cGUpOw0KKwkJCWlzTGlzdCA9IChpc0xpc3QpIHx8IHR5cGVvZiAoQ2hlY2tCb3hMaXN0KS5FcXVhbHModHlwZSk7DQorCQkJaXNMaXN0ID0gKGlzTGlzdCkgfHwgdHlwZW9mIChEcm9wRG93bkxpc3QpLkVxdWFscyh0eXBlKTsNCisJCQlpc0xpc3QgPSAoaXNMaXN0KSB8fCB0eXBlb2YgKExpc3RCb3gpLkVxdWFscyh0eXBlKTsNCisJCQlpc0xpc3QgPSAoaXNMaXN0KSB8fCB0eXBlb2YgKFJhZGlvQnV0dG9uTGlzdCkuRXF1YWxzKHR5cGUpOw0KKwkJCXJldHVybiBpc0xpc3Q7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmV0dXJuIHRydWUgaWYgY29udHJvbCBpcyBhIFJhZGlvQnV0dG9uLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udHJvbCI+Q29udHJvbCB0byB0ZXN0LjwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+VHJ1ZSBpZiBjb250cm9sIGlzIGEgUmFkaW9CdXR0b248L3JldHVybnM+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgYm9vbCBJc1JhZGlvQnV0dG9uKENvbnRyb2wgY29udHJvbCkNCisJCXsNCisJCQlyZXR1cm4gKHR5cGVvZiAoUmFkaW9CdXR0b24pLkVxdWFscyhjb250cm9sLkdldFR5cGUoKSkpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJldHVybiB0cnVlIGlmIGNvbnRyb2wgaXMgYSBUZXh0Qm94Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udHJvbCI+Q29udHJvbCB0byB0ZXN0LjwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+VHJ1ZSBpZiBjb250cm9sIGlzIGEgVGV4dEJveDwvcmV0dXJucz4NCisJCS8vLyANCisJCXByb3RlY3RlZCBib29sIElzVGV4dEJveChDb250cm9sIGNvbnRyb2wpDQorCQl7DQorCQkJcmV0dXJuICh0eXBlb2YgKFRleHRCb3gpLkVxdWFscyhjb250cm9sLkdldFR5cGUoKSkpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFNlbGVjdCBvbmx5IHRob3NlIGl0ZW1zIGluIGNvbnRyb2wgDQorCQkvLy8gd2hvc2UgVGV4dCBwcm9wZXJ0eSBtYXRjaGVzIHRoZSBnaXZlbiB0ZXh0Lg0KKwkJLy8vIElmIHRoZSB2YWx1ZSBpcyBudWxsLCBubyBhY3Rpb24gaXMgdGFrZW4uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250cm9sIj5Db250cm9sIHRvIHNldDwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9InRleHQiPlRleHQgdG8gbWF0Y2g8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIHZvaWQgU2VsZWN0SXRlbVRleHQoTGlzdENvbnRyb2wgY29udHJvbCwgc3RyaW5nIHRleHQpDQorCQl7DQorCQkJaWYgKHRleHQgIT0gbnVsbCkNCisJCQl7DQorCQkJCWZvcmVhY2ggKExpc3RJdGVtIGkgaW4gY29udHJvbC5JdGVtcykNCisJCQkJCWkuU2VsZWN0ZWQgPSBmYWxzZTsNCisNCisJCQkJZm9yZWFjaCAoTGlzdEl0ZW0gaSBpbiBjb250cm9sLkl0ZW1zKQ0KKwkJCQl7DQorCQkJCQlpZiAodGV4dC5FcXVhbHMoaS5UZXh0KSkNCisJCQkJCQlpLlNlbGVjdGVkID0gdHJ1ZTsNCisJCQkJfQ0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBLbHVkZ3kgbWV0aG9kIHRvIHJlYWQgdGhlIHZhbHVlIG9mIGEgY29udHJvbCANCisJCS8vLyBkaXJlY3RseSBmcm9tIHRoZSByZXF1ZXN0IHVuZGVyIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcy4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIFRoaXMgbWV0aG9kIGlzIGludGVuZGVkIHRvIHdvcmthcm91bmQgYSBwcm9ibGVtIA0KKwkJLy8vIHdlIGFyZSBoYXZpbmcgd2l0aCBkeW1hbmNpIERhdGFHcmlkIHRlbXBsYXRlcy4gDQorCQkvLy8gVGhlIHRlbXBsYXRlIGNvbHVtbiBzZWVtcyB0byBiZSBhYnNlbnQgZnJvbSB0aGUgZXZlbnQgYXJncy4gDQorCQkvLy8gT3RoZXIgY29sdW1ucyBhcmUgdGhlcmUsIGJ1dCBhIHRlbXBsYXRlIGNvbHVtbiBpcyBpZ25vcmVkLiANCisJCS8vLyA8L3A+PHA+DQorCQkvLy8gVGhpcyBtZXRob2QgY2FuIHJldHJpZXZlIHRoZSB2YWx1ZSBkaXJlY3RseSBmcm9tIHRoZSByZXF1ZXN0DQorCQkvLy8gKmlmKiB0aGUgaWRlbnRpZmllciBpcyBhIHVuaXF1ZSBzdHJpbmcgb2YgY2hhcmFjdGVycyB0aGF0IA0KKwkJLy8vIHdvbid0IGJlIGZvdW5kIGFzIHBhcnQgb2YgYW5vdGhlciBwYXJhbWV0ZXIuIA0KKwkJLy8vIFRoZSBEYXRhR3JpZCBjaGFuZ2VzIHRoZSBpZGVudGlmZXIgbmFtZSwgDQorCQkvLy8gYnV0IGFwcGVuZHMgdGhlIGNvbnRyb2wgaWQgZ2l2ZW4gYnkgdGhlIHRlbXBsYXRlLiANCisJCS8vLyBTbywgd2UgdXNlIGtleS5JbmRleE9mIHRvIGZpbmQgdGhlIGNvbnRyb2wgaWQgd2l0aGluIHRoZQ0KKwkJLy8vIG1hbnVmYWN0dXJlZCBwYXJhbWV0ZXIgaWQuIA0KKwkJLy8vIEtsdWRneSwgYnV0IGl0J3Mgb25seSBtZWFudCBhcyBhIHdvcmthcm91bmQgKHNlZSBPVlItMjQpLg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQkvLy8gDQorCQkvLy8gPHBhcmFtIG5hbWU9ImlkIj5Db250cm9sIElEPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5WYWx1ZSBvZiBmaXJzdCBwYXJhbXRlciB0aGF0IGhhcyAiaWQiIA0KKwkJLy8vIGFzIGFueSBwYXJ0IG9mIGl0cyBuYW1lLjwvcmV0dXJucz4NCisJCXByb3RlY3RlZCBzdHJpbmcgRmluZENvbnRyb2xWYWx1ZShzdHJpbmcgaWQpDQorCQl7DQorCQkJc3RyaW5nIGN0bEtleSA9IG51bGw7DQorCQkJc3RyaW5nW10ga2V5cyA9IFJlcXVlc3QuUGFyYW1zLkFsbEtleXM7DQorCQkJZm9yZWFjaCAoc3RyaW5nIGtleSBpbiBrZXlzKQ0KKwkJCXsNCisJCQkJYm9vbCBmb3VuZCA9IChrZXkuSW5kZXhPZihpZCkgPiAtMSk7DQorCQkJCWlmIChmb3VuZCkgY3RsS2V5ID0ga2V5Ow0KKwkJCQljb250aW51ZTsNCisJCQl9DQorCQkJcmV0dXJuIFJlcXVlc3QuUGFyYW1zW2N0bEtleV07IC8vIEZJWE1FDQorCQl9DQorDQorCQkjZW5kcmVnaW9uIA0KKw0KKwkJI3JlZ2lvbiBWaWV3U3RhdGUgbWV0aG9kcyANCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiB1bmRlciB3aGljaCB0byBzdG9yZSB0aGUgYXJyYXkgb2YgcHJpbWFyeSBrZXlzLiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcml2YXRlIGNvbnN0IHN0cmluZyBLRVlTID0gIktleXMiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFNldCBhbiBhcnJheSBvZiBwcmltYXJ5IGtleXMgdG8gdGhlIHZpZXcgc3RhdGUuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJrZXlzIj4uPC9wYXJhbT4NCisJCS8vLyANCisJCXByb3RlY3RlZCB2b2lkIFNldEtleUluZGV4KHN0cmluZ1tdIGtleXMpDQorCQl7DQorCQkJVmlld1N0YXRlW0tFWVNdID0ga2V5czsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZXR1cm4gdGhlIG50aCBrZXkgZnJvbSB0aGUgYXJyYXkga2VwdCBpbiB2aWV3IHN0YXRlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iaW5kZXgiPkFycmF5IGluZGV4IGZvciB0aGUgcHJpbWFyeSBrZXkgKGNvcnJlc3BvbmRzIHRvIGluZGV4IG9mIHRoZSBEYXRhR3JpZCkuPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5OdGgga2V5IGZyb20gcHJpbWFyeSBrZXkgYXJyYXkga2VwdCBpbiB2aWV3IHN0YXRlLjwvcmV0dXJucz4NCisJCXByb3RlY3RlZCBzdHJpbmcgR2V0S2V5SW5kZXgoaW50IGluZGV4KQ0KKwkJew0KKwkJCXN0cmluZ1tdIGtleXMgPSAoc3RyaW5nW10pIFZpZXdTdGF0ZVtLRVlTXTsNCisJCQlyZXR1cm4ga2V5c1tpbmRleF07DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmV0dXJuIHRoZSBwcmltYXJ5IGtleSBmb3IgdGhlIGN1cnJlbnQgaXRlbSBpbmRleCBvZiB0aGUgRGF0YUdyaWQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJlIj5EYXRhR3JpZCBldmVudCBhcmd1bWVudHMuPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ib2Zmc2V0Ij5OdW1iZXIgb2YgaXRlbXMgb24gcHJpb3IgcGFnZXMsIGlmIGFueSAocGFnZSpwYWdlc2l6ZSkuPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5UaGUgcHJpbWFyeSBrZXkgZm9yIHRoZSBjdXJyZW50IGl0ZW0gaW5kZXggb2YgdGhlIERhdGFHcmlkLjwvcmV0dXJucz4NCisJCXByb3RlY3RlZCBzdHJpbmcgR2V0S2V5SW5kZXgoRGF0YUdyaWRDb21tYW5kRXZlbnRBcmdzIGUsIGludCBvZmZzZXQpDQorCQl7DQorCQkJcmV0dXJuIEdldEtleUluZGV4KGUuSXRlbS5JdGVtSW5kZXggKyBvZmZzZXQpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJldHVybiB0aGUgaW5kZXggZm9yIHRoZSBnaXZlbiBrZXksIA0KKwkJLy8vIHVzdWFsbHkgc28gdGhhdCBpdCBjYW4gYmUgc2VsZWN0ZWQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJsaXN0Ij5MaXN0IG9mIEtleVZhbHVlIGVudHJpZXMuPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ia2V5Ij5BIGtleSB2YWx1ZSBmcm9tIHRoZSBsaXN0PC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz4tMSBpZiBub3QgZm91bmQ8L3JldHVybnM+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgaW50IEluZGV4Rm9yS2V5KElMaXN0IGxpc3QsIHN0cmluZyBrZXkpDQorCQl7DQorCQkJaW50IGkgPSAwOw0KKwkJCWZvcmVhY2ggKEtleVZhbHVlIHJvdyBpbiBsaXN0KQ0KKwkJCXsNCisJCQkJaWYgKGtleS5FcXVhbHMocm93LktleSkpDQorCQkJCQlyZXR1cm4gaTsNCisJCQkJaSsrOw0KKwkJCX0NCisJCQlyZXR1cm4gLTE7DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkjcmVnaW9uIElWaWV3Q29udHJvbCBtZXRob2RzDQorDQorCQlwdWJsaWMgdm9pZCBSZXNldENvbnRyb2xzKCkNCisJCXsNCisJCQlDb250cm9sQ29sbGVjdGlvbiBjb250cm9scyA9IENvbnRyb2xzOw0KKwkJCWZvcmVhY2ggKENvbnRyb2wgY29udHJvbCBpbiBjb250cm9scykNCisJCQl7DQorCQkJCWlmIChJc1RleHRCb3goY29udHJvbCkpDQorCQkJCXsNCisJCQkJCVRleHRCb3ggeCA9IChUZXh0Qm94KSBjb250cm9sOw0KKwkJCQkJeC5UZXh0ID0gU3RyaW5nLkVtcHR5Ow0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzTGlzdENvbnRyb2woY29udHJvbCkpDQorCQkJCXsNCisJCQkJCUxpc3RDb250cm9sIHggPSAoTGlzdENvbnRyb2wpIGNvbnRyb2w7DQorCQkJCQl4LlNlbGVjdGVkSW5kZXggPSAtMTsNCisJCQkJCWNvbnRpbnVlOw0KKwkJCQl9DQorDQorCQkJCWlmIChJc1JhZGlvQnV0dG9uKGNvbnRyb2wpKQ0KKwkJCQl7DQorCQkJCQlSYWRpb0J1dHRvbiB4ID0gKFJhZGlvQnV0dG9uKSBjb250cm9sOw0KKwkJCQkJeC5DaGVja2VkID0gZmFsc2U7DQorCQkJCQljb250aW51ZTsNCisJCQkJfQ0KKw0KKwkJCQlpZiAoSXNDaGVja0JveChjb250cm9sKSkNCisJCQkJew0KKwkJCQkJQ2hlY2tCb3ggeCA9IChDaGVja0JveCkgY29udHJvbDsNCisJCQkJCXguQ2hlY2tlZCA9IGZhbHNlOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQl9DQorCQl9DQorDQorCQlwcml2YXRlIElQcm9maWxlIF9Qcm9maWxlOw0KKw0KKwkJcHVibGljIElQcm9maWxlIFByb2ZpbGUNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX1Byb2ZpbGU7IH0NCisJCQlzZXQgeyBfUHJvZmlsZSA9IHZhbHVlOyB9DQorCQl9DQorDQorCQlwdWJsaWMgSVZpZXdIZWxwZXIgR2V0SGVscGVyRm9yKHN0cmluZyBjb21tYW5kKQ0KKwkJew0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IENhdGFsb2cuR2V0SGVscGVyRm9yKGNvbW1hbmQpOw0KKwkJCWhlbHBlci5Qcm9maWxlID0gUHJvZmlsZTsNCisJCQlyZXR1cm4gaGVscGVyOw0KKwkJfQ0KKw0KKwkJcHVibGljIElWaWV3SGVscGVyIEV4ZWN1dGUoc3RyaW5nIGNvbW1hbmQpDQorCQl7DQorCQkJSVZpZXdIZWxwZXIgaGVscGVyID0gR2V0SGVscGVyRm9yKGNvbW1hbmQpOw0KKwkJCWhlbHBlci5FeGVjdXRlKCk7DQorCQkJcmV0dXJuIGhlbHBlcjsNCisJCX0NCisNCisJCXByb3RlY3RlZCB2aXJ0dWFsIHZvaWQgSW5pdFZpZXdMYWJlbHMoKQ0KKwkJew0KKwkJCWZvcmVhY2ggKENvbnRyb2wgdCBpbiBDb250cm9scykNCisJCQl7DQorCQkJCWlmIChJc1ZpZXdMYWJlbCh0KSkNCisJCQkJew0KKwkJCQkJVmlld0xhYmVsIHggPSAoVmlld0xhYmVsKSB0Ow0KKwkJCQkJaWYgKHguVmlld19BbGVydCkNCisJCQkJCXsNCisJCQkJCQlWaWV3X0FsZXJ0ICs9IG5ldyBFdmVudEhhbmRsZXIoeC5WaWV3X0FsZXJ0X0hhbmRsZXIpOw0KKwkJCQkJfQ0KKwkJCQkJLyogDQorCQkJCQlpZiAoeC5WaWV3X0hpbnQpDQorCQkJCQl7DQorCQkJCQkJVmlld19IaW50ICs9IG5ldyBFdmVudEhhbmRsZXIoeC5WaWV3X0hpbnRfSGFuZGxlcik7DQorCQkJCQl9DQorCQkJCQkqLw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQl9DQorCQl9DQorDQorCQlwdWJsaWMgdm9pZCBFbmFibGVDb250cm9scyhDb250cm9sQ29sbGVjdGlvbiBjb250cm9scywgYm9vbCBlbmFibGUpDQorCQl7DQorCQkJZm9yZWFjaCAoQ29udHJvbCB0IGluIGNvbnRyb2xzKQ0KKwkJCXsNCisJCQkJaWYgKElzVGV4dEJveCh0KSkNCisJCQkJew0KKwkJCQkJVGV4dEJveCB4ID0gKFRleHRCb3gpIHQ7DQorCQkJCQl4LkVuYWJsZWQgPSBlbmFibGU7DQorCQkJCQljb250aW51ZTsNCisJCQkJfQ0KKwkJCQlpZiAoSXNWaWV3TGFiZWwodCkpDQorCQkJCXsNCisJCQkJCVZpZXdMYWJlbCB4ID0gKFZpZXdMYWJlbCkgdDsNCisJCQkJCXguRW5hYmxlZCA9IGVuYWJsZTsNCisJCQkJCWNvbnRpbnVlOw0KKwkJCQl9DQorCQkJCWlmIChJc0xhYmVsKHQpKQ0KKwkJCQl7DQorCQkJCQlMYWJlbCB4ID0gKExhYmVsKSB0Ow0KKwkJCQkJeC5FbmFibGVkID0gZW5hYmxlOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzTGlzdENvbnRyb2wodCkpDQorCQkJCXsNCisJCQkJCUxpc3RDb250cm9sIHggPSAoTGlzdENvbnRyb2wpIHQ7DQorCQkJCQl4LkVuYWJsZWQgPSBlbmFibGU7DQorCQkJCQljb250aW51ZTsNCisJCQkJfQ0KKwkJCQlpZiAoSXNDaGVja0JveCh0KSkNCisJCQkJew0KKwkJCQkJQ2hlY2tCb3ggeCA9IChDaGVja0JveCkgdDsNCisJCQkJCXguRW5hYmxlZCA9IGVuYWJsZTsNCisJCQkJCWNvbnRpbnVlOw0KKwkJCQl9DQorCQkJCWlmIChJc1JhZGlvQnV0dG9uKHQpKQ0KKwkJCQl7DQorCQkJCQlSYWRpb0J1dHRvbiB4ID0gKFJhZGlvQnV0dG9uKSB0Ow0KKwkJCQkJeC5FbmFibGVkID0gZW5hYmxlOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzQnV0dG9uKHQpKQ0KKwkJCQl7DQorCQkJCQlCdXR0b24geCA9IChCdXR0b24pIHQ7DQorCQkJCQl4LkVuYWJsZWQgPSBlbmFibGU7DQorCQkJCQljb250aW51ZTsNCisJCQkJfQkJCQ0KKwkJCX0NCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIEVuYWJsZUNvbnRyb2xzKENvbnRyb2xDb2xsZWN0aW9uIGNvbnRyb2xzKQ0KKwkJew0KKwkJCUVuYWJsZUNvbnRyb2xzKGNvbnRyb2xzLHRydWUpOw0KKwkJfQ0KKw0KKwkJcHVibGljIHZvaWQgRW5hYmxlQ29udHJvbHMoKQ0KKwkJew0KKwkJCUVuYWJsZUNvbnRyb2xzKENvbnRyb2xzLHRydWUpOw0KKwkJfQ0KKw0KKwkJcHVibGljIHZvaWQgRGlzYWJsZUNvbnRyb2xzKENvbnRyb2xDb2xsZWN0aW9uIGNvbnRyb2xzKQ0KKwkJew0KKwkJCUVuYWJsZUNvbnRyb2xzKGNvbnRyb2xzLGZhbHNlKTsNCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIERpc2FibGVDb250cm9scygpDQorCQl7DQorCQkJRW5hYmxlQ29udHJvbHMoQ29udHJvbHMsZmFsc2UpOw0KKwkJfQ0KKw0KKwkJcHJpdmF0ZSB2b2lkIEJpbmRDb250cm9scyhDb250cm9sQ29sbGVjdGlvbiBjb250cm9scywgSURpY3Rpb25hcnkgZGljdGlvbmFyeSwgc3RyaW5nIHByZWZpeCwgc3RyaW5nIGxpc3Rfc3VmZml4KQ0KKwkJew0KKwkJCWZvcmVhY2ggKENvbnRyb2wgdCBpbiBjb250cm9scykNCisJCQl7DQorCQkJCWlmIChJc1RleHRCb3godCkpDQorCQkJCXsNCisJCQkJCVRleHRCb3ggeCA9IChUZXh0Qm94KSB0Ow0KKwkJCQkJb2JqZWN0IHYgPSBkaWN0aW9uYXJ5W1RvQ29sdW1uKHguSUQsIHByZWZpeCldOw0KKwkJCQkJaWYgKHYgIT0gbnVsbCkgeC5UZXh0ID0gdi5Ub1N0cmluZygpOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzVmlld0xhYmVsKHQpKQ0KKwkJCQl7DQorCQkJCQlWaWV3TGFiZWwgeCA9IChWaWV3TGFiZWwpIHQ7DQorCQkJCQlvYmplY3QgdiA9IGRpY3Rpb25hcnlbVG9Db2x1bW4oeC5JRCwgcHJlZml4KV07DQorCQkJCQlpZiAodiAhPSBudWxsKSB4LlRleHQgPSB2LlRvU3RyaW5nKCk7DQorCQkJCQljb250aW51ZTsNCisJCQkJfQ0KKwkJCQlpZiAoSXNMYWJlbCh0KSkNCisJCQkJew0KKwkJCQkJTGFiZWwgeCA9IChMYWJlbCkgdDsNCisJCQkJCW9iamVjdCB2ID0gZGljdGlvbmFyeVtUb0NvbHVtbih4LklELCBwcmVmaXgpXTsNCisJCQkJCWlmICh2ICE9IG51bGwpIHguVGV4dCA9IHYuVG9TdHJpbmcoKTsNCisJCQkJCWNvbnRpbnVlOw0KKwkJCQl9DQorCQkJCWlmIChJc0xpc3RDb250cm9sKHQpKQ0KKwkJCQl7DQorCQkJCQlMaXN0Q29udHJvbCB4ID0gKExpc3RDb250cm9sKSB0Ow0KKwkJCQkJc3RyaW5nIHJvb3QgPSBSb290SWQoeC5JRCwgcHJlZml4LCBsaXN0X3N1ZmZpeCk7DQorCQkJCQlJTGlzdCBzID0gZGljdGlvbmFyeVtyb290ICsgbGlzdF9zdWZmaXhdIGFzIElMaXN0OyAvLyB0aGlzX2tleV9saXN0DQorCQkJCQlzdHJpbmcgciA9IGRpY3Rpb25hcnlbcm9vdF0gYXMgc3RyaW5nOyAvLyB0aGlzX2tleQ0KKwkJCQkJaWYgKChudWxsID09IHIpIHx8ICgwID09IHIuTGVuZ3RoKSkNCisJCQkJCQlCaW5kTGlzdENvbnRyb2woeCwgcyk7DQorCQkJCQllbHNlDQorCQkJCQkJQmluZExpc3RDb250cm9sKHgsIHMsIHIpOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzQ2hlY2tCb3godCkpDQorCQkJCXsNCisJCQkJCUNoZWNrQm94IHggPSAoQ2hlY2tCb3gpIHQ7DQorCQkJCQlvYmplY3QgdiA9IGRpY3Rpb25hcnlbVG9Db2x1bW4oeC5JRCwgcHJlZml4KV07DQorCQkJCQlpZiAodiAhPSBudWxsKSB4LkNoZWNrZWQgPSB0cnVlOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzUmFkaW9CdXR0b24odCkpDQorCQkJCXsNCisJCQkJCVJhZGlvQnV0dG9uIHggPSAoUmFkaW9CdXR0b24pIHQ7DQorCQkJCQlvYmplY3QgdiA9IGRpY3Rpb25hcnlbVG9Db2x1bW4oeC5JRCwgcHJlZml4KV07DQorCQkJCQlpZiAodiAhPSBudWxsKSB4LkNoZWNrZWQgPSB0cnVlOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQl9DQorCQl9DQorDQorCQlwdWJsaWMgdm9pZCBCaW5kKENvbnRyb2xDb2xsZWN0aW9uIGNvbnRyb2xzLCBJRGljdGlvbmFyeSBkaWN0aW9uYXJ5KQ0KKwkJew0KKwkJCUJpbmRDb250cm9scyhjb250cm9scywgZGljdGlvbmFyeSwgbnVsbCwgTGlzdFN1ZmZpeCk7DQorCQl9DQorDQorCQlwdWJsaWMgdm9pZCBCaW5kKElEaWN0aW9uYXJ5IGRpY3Rpb25hcnkpDQorCQl7DQorCQkJQmluZENvbnRyb2xzKENvbnRyb2xzLCBkaWN0aW9uYXJ5LCBudWxsLCBMaXN0U3VmZml4KTsNCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIEV4ZWN1dGVCaW5kKENvbnRyb2xDb2xsZWN0aW9uIGNvbnRyb2xzLCBJVmlld0hlbHBlciBoZWxwZXIpDQorCQl7DQorCQkJaGVscGVyLkV4ZWN1dGUoKTsNCisJCQlCaW5kKGNvbnRyb2xzLCBoZWxwZXIuQ3JpdGVyaWEpOw0KKwkJfQ0KKw0KKwkJcHVibGljIElWaWV3SGVscGVyIEV4ZWN1dGVCaW5kKENvbnRyb2xDb2xsZWN0aW9uIGNvbnRyb2xzLCBzdHJpbmcgY29tbWFuZCkNCisJCXsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSBHZXRIZWxwZXJGb3IoY29tbWFuZCk7DQorCQkJRXhlY3V0ZUJpbmQoY29udHJvbHMsIGhlbHBlcik7DQorCQkJcmV0dXJuIGhlbHBlcjsNCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIEV4ZWN1dGVCaW5kKElWaWV3SGVscGVyIGhlbHBlcikNCisJCXsNCisJCQlFeGVjdXRlQmluZChDb250cm9scywgaGVscGVyKTsNCisJCX0NCisNCisJCXB1YmxpYyBJVmlld0hlbHBlciBFeGVjdXRlQmluZChzdHJpbmcgY29tbWFuZCkNCisJCXsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSBHZXRIZWxwZXJGb3IoY29tbWFuZCk7DQorCQkJRXhlY3V0ZUJpbmQoaGVscGVyKTsNCisJCQlyZXR1cm4gaGVscGVyOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJlbmRlciBhIGNvbnRyb2wgaWQgYXMgYSBjb2x1bW4gbmFtZSANCisJCS8vLyBieSB0cmltbWluZyBhIHByZWZpeCBmcm9tIHRoZSBpZCwgaWYgYW55Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iaWQiPlN0cmluZyB0byBwcm9jZXNzLjwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9InByZWZpeCI+UHJlZml4IHRvIHJlbW92ZS48L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPmlkIHdpdGhvdXQgcHJlZml4LjwvcmV0dXJucz4NCisJCS8vLyANCisJCXByaXZhdGUgc3RyaW5nIFRvQ29sdW1uKHN0cmluZyBpZCwgc3RyaW5nIHByZWZpeCkNCisJCXsNCisJCQlzdHJpbmcgdHJpbW1lZDsNCisJCQlpZiAobnVsbCA9PSBwcmVmaXgpIHRyaW1tZWQgPSBpZDsNCisJCQllbHNlIHRyaW1tZWQgPSBpZC5TdWJzdHJpbmcocHJlZml4Lkxlbmd0aCk7DQorCQkJcmV0dXJuIHRyaW1tZWQ7DQorCQl9DQorDQorCQlwcml2YXRlIHZvaWQgUmVhZENvbnRyb2xzKENvbnRyb2xDb2xsZWN0aW9uIGNvbnRyb2xzLCBJRGljdGlvbmFyeSBkaWN0aW9uYXJ5LCBzdHJpbmcgcHJlZml4LCBzdHJpbmcgbGlzdF9zdWZmaXgsIGJvb2wgbnVsbE9uRW1wdHkpDQorCQl7DQorCQkJZm9yZWFjaCAoQ29udHJvbCB0IGluIGNvbnRyb2xzKQ0KKwkJCXsNCisJCQkJaWYgKElzVGV4dEJveCh0KSkNCisJCQkJew0KKwkJCQkJVGV4dEJveCB4ID0gKFRleHRCb3gpIHQ7DQorCQkJCQlzdHJpbmcgdmFsdWUgPSBUcmltKHguVGV4dCwgbnVsbE9uRW1wdHkpOw0KKwkJCQkJZGljdGlvbmFyeS5BZGQoVG9Db2x1bW4oeC5JRCwgcHJlZml4KSwgdmFsdWUpOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzTGFiZWwodCkpDQorCQkJCXsNCisJCQkJCUxhYmVsIHggPSAoTGFiZWwpIHQ7DQorCQkJCQlzdHJpbmcgdmFsdWUgPSBUcmltKHguVGV4dCwgbnVsbE9uRW1wdHkpOw0KKwkJCQkJZGljdGlvbmFyeS5BZGQoVG9Db2x1bW4oeC5JRCwgcHJlZml4KSwgdmFsdWUpOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzTGlzdENvbnRyb2wodCkpDQorCQkJCXsNCisJCQkJCUxpc3RDb250cm9sIHggPSAoTGlzdENvbnRyb2wpIHQ7DQorCQkJCQlzdHJpbmcgcm9vdCA9IFJvb3RJZCh4LklELCBwcmVmaXgsIGxpc3Rfc3VmZml4KTsNCisJCQkJCXN0cmluZyB2YWx1ZSA9IFRyaW0oeC5TZWxlY3RlZFZhbHVlLCBudWxsT25FbXB0eSk7Ow0KKwkJCQkJZGljdGlvbmFyeS5BZGQocm9vdCwgdmFsdWUpOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzQ2hlY2tCb3godCkpDQorCQkJCXsNCisJCQkJCUNoZWNrQm94IHggPSAoQ2hlY2tCb3gpIHQ7DQorCQkJCQlzdHJpbmcga2V5ID0gVG9Db2x1bW4oeC5JRCwgcHJlZml4KTsNCisJCQkJCXN0cmluZyB2YWx1ZSA9ICh4LkNoZWNrZWQpID8ga2V5IDogbnVsbDsNCisJCQkJCWRpY3Rpb25hcnkuQWRkKGtleSwgdmFsdWUpOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzUmFkaW9CdXR0b24odCkpDQorCQkJCXsNCisJCQkJCVJhZGlvQnV0dG9uIHggPSAoUmFkaW9CdXR0b24pIHQ7DQorCQkJCQlzdHJpbmcga2V5ID0gVG9Db2x1bW4oeC5JRCwgcHJlZml4KTsNCisJCQkJCXN0cmluZyB2YWx1ZSA9ICh4LkNoZWNrZWQpID8ga2V5IDogbnVsbDsNCisJCQkJCWRpY3Rpb25hcnkuQWRkKGtleSwgdmFsdWUpOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQl9DQorCQl9DQorDQorCQlwdWJsaWMgdm9pZCBSZWFkKENvbnRyb2xDb2xsZWN0aW9uIGNvbnRyb2xzLCBJRGljdGlvbmFyeSBkaWN0aW9uYXJ5LCBib29sIG51bGxJZkVtcHR5KQ0KKwkJew0KKwkJCVJlYWRDb250cm9scyhjb250cm9scywgZGljdGlvbmFyeSwgbnVsbCwgTGlzdFN1ZmZpeCwgbnVsbElmRW1wdHkpOw0KKwkJfQ0KKw0KKwkJcHVibGljIHZvaWQgUmVhZEV4ZWN1dGUoQ29udHJvbENvbGxlY3Rpb24gY29udHJvbHMsIElWaWV3SGVscGVyIGhlbHBlciwgYm9vbCBudWxsSWZFbXB0eSkNCisJCXsNCisJCQlSZWFkKENvbnRyb2xzLCBoZWxwZXIuQ3JpdGVyaWEsIG51bGxJZkVtcHR5KTsNCisJCQloZWxwZXIuRXhlY3V0ZSgpOw0KKwkJfQ0KKw0KKwkJcHVibGljIHZvaWQgUmVhZEV4ZWN1dGUoSVZpZXdIZWxwZXIgaGVscGVyLCBib29sIG51bGxJZkVtcHR5KQ0KKwkJew0KKwkJCVJlYWRFeGVjdXRlKENvbnRyb2xzLCBoZWxwZXIsIG51bGxJZkVtcHR5KTsNCisJCX0NCisNCisJCXB1YmxpYyB2b2lkIFJlYWRFeGVjdXRlKElWaWV3SGVscGVyIGhlbHBlcikNCisJCXsNCisJCQlSZWFkRXhlY3V0ZShoZWxwZXIsIHRydWUpOw0KKwkJfQ0KKw0KKwkJcHVibGljIElWaWV3SGVscGVyIFJlYWQoQ29udHJvbENvbGxlY3Rpb24gY29udHJvbHMsIHN0cmluZyBjb21tYW5kLCBib29sIG51bGxPbkVtcHR5KQ0KKwkJew0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IEdldEhlbHBlckZvcihjb21tYW5kKTsNCisJCQlSZWFkQ29udHJvbHMoY29udHJvbHMsIGhlbHBlci5Dcml0ZXJpYSwgbnVsbCwgTGlzdFN1ZmZpeCwgbnVsbE9uRW1wdHkpOw0KKwkJCXJldHVybiBoZWxwZXI7DQorCQl9DQorDQorCQlwdWJsaWMgSVZpZXdIZWxwZXIgUmVhZChzdHJpbmcgY29tbWFuZCwgYm9vbCBudWxsT25FbXB0eSkNCisJCXsNCisJCQlyZXR1cm4gUmVhZChDb250cm9scywgY29tbWFuZCwgbnVsbE9uRW1wdHkpOw0KKwkJfQ0KKw0KKwkJcHVibGljIElWaWV3SGVscGVyIFJlYWQoc3RyaW5nIGNvbW1hbmQpDQorCQl7DQorCQkJcmV0dXJuIFJlYWQoQ29udHJvbHMsIGNvbW1hbmQsIHRydWUpOw0KKwkJfQ0KKw0KKwkJcHVibGljIElWaWV3SGVscGVyIFJlYWRFeGVjdXRlKENvbnRyb2xDb2xsZWN0aW9uIGNvbGxlY3Rpb24sIHN0cmluZyBjb21tYW5kLCBib29sIG51bGxPbkVtcHR5KQ0KKwkJew0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IFJlYWQoY29sbGVjdGlvbiwgY29tbWFuZCwgbnVsbE9uRW1wdHkpOw0KKwkJCWhlbHBlci5FeGVjdXRlKCk7DQorCQkJcmV0dXJuIGhlbHBlcjsNCisJCX0NCisNCisJCXB1YmxpYyBJVmlld0hlbHBlciBSZWFkRXhlY3V0ZShDb250cm9sQ29sbGVjdGlvbiBjb2xsZWN0aW9uLCBzdHJpbmcgY29tbWFuZCkNCisJCXsNCisJCQlyZXR1cm4gUmVhZEV4ZWN1dGUoY29sbGVjdGlvbiwgY29tbWFuZCwgdHJ1ZSk7DQorCQl9DQorDQorDQorCQlwdWJsaWMgSVZpZXdIZWxwZXIgUmVhZEV4ZWN1dGUoc3RyaW5nIGNvbW1hbmQsIGJvb2wgbnVsbElmRW1wdHkpDQorCQl7DQorCQkJcmV0dXJuIFJlYWRFeGVjdXRlKENvbnRyb2xzLCBjb21tYW5kLCBudWxsSWZFbXB0eSk7DQorCQl9DQorDQorCQlwdWJsaWMgSVZpZXdIZWxwZXIgUmVhZEV4ZWN1dGUoc3RyaW5nIGNvbW1hbmQpDQorCQl7DQorCQkJcmV0dXJuIFJlYWRFeGVjdXRlKENvbnRyb2xzLCBjb21tYW5kLCB0cnVlKTsNCisJCX0NCisNCisNCisJCXB1YmxpYyBJVmlld0hlbHBlciBSZWFkKHN0cmluZyBjb21tYW5kLCBJRGljdGlvbmFyeSBjcml0ZXJpYSwgYm9vbCBudWxsSWZFbXB0eSkNCisJCXsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSBHZXRIZWxwZXJGb3IoY29tbWFuZCk7DQorCQkJaGVscGVyLlJlYWQoY3JpdGVyaWEsIG51bGxJZkVtcHR5KTsNCisJCQlyZXR1cm4gaGVscGVyOw0KKwkJfQ0KKw0KKwkJcHVibGljIElWaWV3SGVscGVyIFJlYWRFeGVjdXRlKHN0cmluZyBjb21tYW5kLCBJRGljdGlvbmFyeSBjcml0ZXJpYSkNCisJCXsNCisJCQlyZXR1cm4gUmVhZEV4ZWN1dGUoY29tbWFuZCwgY3JpdGVyaWEsIHRydWUpOw0KKwkJfQ0KKw0KKwkJcHVibGljIElWaWV3SGVscGVyIFJlYWRFeGVjdXRlKHN0cmluZyBjb21tYW5kLCBJRGljdGlvbmFyeSBjcml0ZXJpYSwgYm9vbCBudWxsSWZFbXB0eSkNCisJCXsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSBSZWFkKGNvbW1hbmQsIGNyaXRlcmlhLCBudWxsSWZFbXB0eSk7DQorCQkJaGVscGVyLkV4ZWN1dGUoKTsNCisJCQlyZXR1cm4gaGVscGVyOw0KKwkJfQ0KKw0KKwkJcHJpdmF0ZSBzdGF0aWMgc3RyaW5nIFRJVExFID0gIl90aXRsZSI7DQorCQlwcml2YXRlIHN0YXRpYyBzdHJpbmcgTElOSyA9ICJfbGluayI7DQorDQorCQlwdWJsaWMgdmlydHVhbCB2b2lkIEdldE1lc3NhZ2VzKENvbnRyb2xDb2xsZWN0aW9uIGNvbnRyb2xzKQ0KKwkJew0KKwkJCWZvcmVhY2ggKENvbnRyb2wgdCBpbiBjb250cm9scykNCisJCQl7DQorCQkJCWlmIChJc1ZpZXdMYWJlbCh0KSkNCisJCQkJew0KKwkJCQkJVmlld0xhYmVsIHggPSAoVmlld0xhYmVsKSB0Ow0KKwkJCQkJaWYgKHguUmVzb3VyY2UpIHRyeQ0KKwkJCQkJew0KKwkJCQkJCXguVGV4dCA9IEdldE1lc3NhZ2UoeC5JRCk7DQorCQkJCQl9DQorCQkJCQljYXRjaCAoRXhjZXB0aW9uIGUpDQorCQkJCQl7DQorCQkJCQkJaWYgKHguUmVxdWlyZWQpIHRocm93KGUpOw0KKwkJCQkJfQ0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzQnV0dG9uKHQpKQ0KKwkJCQl7DQorCQkJCQlCdXR0b24geCA9IChCdXR0b24pIHQ7DQorCQkJCQl4LlRleHQgPSBHZXRNZXNzYWdlKHguSUQpOw0KKwkJCQkJY29udGludWU7DQorCQkJCX0NCisJCQkJaWYgKElzSHlwZXJMaW5rKHQpKQ0KKwkJCQl7DQorCQkJCQlIeXBlckxpbmsgeCA9IChIeXBlckxpbmspIHQ7DQorCQkJCQl4LlRleHQgPSBHZXRNZXNzYWdlKHguSUQgKyBUSVRMRSk7DQorCQkJCQl4Lk5hdmlnYXRlVXJsID0gR2V0TWVzc2FnZSh4LklEICsgTElOSyk7DQorCQkJCQljb250aW51ZTsNCisJCQkJfQ0KKwkJCX0NCisJCX0NCisNCisJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgR2V0TWVzc2FnZXMoKQ0KKwkJew0KKwkJCUdldE1lc3NhZ2VzKENvbnRyb2xzKTsNCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gTGlzdENvbnRyb2wgbWV0aG9kcyANCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTZWxlY3Qgb25seSB0aG9zZSBpdGVtcyBpbiBjb250cm9sIA0KKwkJLy8vIHdob3NlIFZhbHVlIHByb3BlcnR5IG1hdGNoZXMgdGhlIGdpdmVuIHZhbHVlLg0KKwkJLy8vIElmIHRoZSB2YWx1ZSBpcyBudWxsLCBubyBhY3Rpb24gaXMgdGFrZW4uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250cm9sIj48L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJ2YWx1ZSI+PC9wYXJhbT4NCisJCS8vLyANCisJCXByb3RlY3RlZCB2b2lkIFNlbGVjdEl0ZW0oTGlzdENvbnRyb2wgY29udHJvbCwgc3RyaW5nIHZhbHVlKQ0KKwkJew0KKwkJCWlmICh2YWx1ZSAhPSBudWxsKQ0KKwkJCXsNCisJCQkJZm9yZWFjaCAoTGlzdEl0ZW0gaSBpbiBjb250cm9sLkl0ZW1zKQ0KKwkJCQkJaS5TZWxlY3RlZCA9IGZhbHNlOw0KKw0KKwkJCQlmb3JlYWNoIChMaXN0SXRlbSBpIGluIGNvbnRyb2wuSXRlbXMpDQorCQkJCXsNCisJCQkJCWlmICh2YWx1ZS5FcXVhbHMoaS5WYWx1ZSkpDQorCQkJCQkJaS5TZWxlY3RlZCA9IHRydWU7DQorCQkJCX0NCisJCQl9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRGVhY3RpdmF0ZSB0aGUgc2VsZWN0ZWQgaXRlbSwgYW5kIHNlbGVjdCBhbnkgaXRlbSBtYXRjaGluZyB2YWx1ZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRyb2wiPjwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9InZhbHVlIj48L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIHZvaWQgU2VsZWN0TGlzdEl0ZW0oTGlzdENvbnRyb2wgY29udHJvbCwgc3RyaW5nIHZhbHVlKQ0KKwkJew0KKwkJCXRyeQ0KKwkJCXsNCisJCQkJY29udHJvbC5TZWxlY3RlZEluZGV4ID0gLTE7DQorCQkJCVNlbGVjdEl0ZW0oY29udHJvbCwgdmFsdWUpOw0KKwkJCX0NCisJCQljYXRjaCAoTnVsbFJlZmVyZW5jZUV4Y2VwdGlvbiBva2F5KQ0KKwkJCXsNCisJCQkJaWYgKG9rYXk9PW51bGwpIHRocm93IG9rYXk7IC8vIFNpbGx5LCBidXQgaXQgcGxhY2F0ZXMgdGhlIElERQ0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBCaW5kIGEgbGlzdCBvZiBLZXlWYWx1ZSBvYmplY3RzIHRvIGEgTGlzdENvbnRyb2wsIA0KKwkJLy8vIHNlbGVjdCBhbnkgaXRlbSBtYXRjaGluZyB2YWx1ZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRyb2wiPkxpc3RDb250cm9sIHRvIHByb2Nlc3M8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJsaXN0Ij5MaXN0IG9mIFRleHRLZXkgb2JqZWN0cy48L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJ2YWx1ZSI+VmFsdWUgdG8gc2VsZWN0LCBvciBudWxsIGlmIG5vdGhpbmcgaXMgc2VsZWN0ZWQuPC9wYXJhbT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBCaW5kTGlzdENvbnRyb2woTGlzdENvbnRyb2wgY29udHJvbCwgSUxpc3QgbGlzdCwgc3RyaW5nIHZhbHVlKQ0KKwkJew0KKwkJCWJvb2wgaW5zZXJ0S2V5ID0gKChsaXN0ICE9IG51bGwpICYmICghbGlzdC5Db250YWlucyhOdWxsS2V5KSkpOw0KKwkJCWlmIChpbnNlcnRLZXkpIGxpc3QuSW5zZXJ0KDAsIE51bGxLZXkpOw0KKwkJCWNvbnRyb2wuRGF0YVRleHRGaWVsZCA9IEtleVZhbHVlLlZBTFVFOw0KKwkJCWNvbnRyb2wuRGF0YVZhbHVlRmllbGQgPSBLZXlWYWx1ZS5LRVk7DQorCQkJY29udHJvbC5EYXRhU291cmNlID0gbGlzdDsNCisJCQljb250cm9sLkRhdGFCaW5kKCk7DQorCQkJaWYgKHZhbHVlIT1udWxsKSBTZWxlY3RMaXN0SXRlbShjb250cm9sLCB2YWx1ZSk7DQorCQl9DQorDQorCQlwcm90ZWN0ZWQgdm9pZCBCaW5kTGlzdENvbnRyb2woTGlzdENvbnRyb2wgY29udHJvbCwgSUxpc3QgbGlzdCkNCisJCXsNCisJCQlCaW5kTGlzdENvbnRyb2woY29udHJvbCwgbGlzdCwgbnVsbCk7DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gU2lnbmFsIHdoZW4gYW4gZXJyb3IgaXMgZXhwb3NlZC4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIGV2ZW50IEV2ZW50SGFuZGxlciBWaWV3X0FsZXJ0Ow0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFBhc3MgYW4gZXJyb3IgdG8gYW5vdGhlciBjb250cm9sIHJlZ2lzdGVyZWQgdG8gcmVjZWl2ZWQgaXQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJzZW5kZXIiPlRoaXMgb2JqZWN0PC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+QSBWaWV3QXJncyBpbnN0YW5jZSB3aXRoIHRoZSBJVmlld0hlbHBlciBjb250YWluaW5nIHRoZSBlcnJvciBtZXNzYWdlcyhzKS48L3BhcmFtPg0KKwkJcHJpdmF0ZSB2b2lkIFZpZXdfQWxlcnRfSGFuZGxlcihvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCQlpZiAoVmlld19BbGVydCAhPSBudWxsKQ0KKwkJCXsNCisJCQkJVmlld19BbGVydChzZW5kZXIsIGUpOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJbml0aWFsaXplIHRoZSBjb250cm9sIHRvIHVzZSB0aGUgc3RhbmRhcmQgVmlld19BbGVydCBldmVudCBoYW5kZXJsLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iYyI+Q29udHJvbCB0byByZWdpc3RlcjwvcGFyYW0+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgdm9pZCBJbml0VmlldyhWaWV3Q29udHJvbCBjKQ0KKwkJew0KKwkJCWMuVmlld19BbGVydCArPSBuZXcgRXZlbnRIYW5kbGVyKFZpZXdfQWxlcnRfSGFuZGxlcik7IC8vIEJ1YmJsZSBldmVudA0KKwkJCWMuUHJvZmlsZSA9IFByb2ZpbGU7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmVzZXQgc3RhdGUgZm9yIHRoaXMgY29udHJvbCwgaW5jbHVkaW5nIGFueSBWaWV3U3RhdGUgYXR0cmlidXRlcywgDQorCQkvLy8gdXN1YWxseSBvbiBhIG5ldyBPcGVuIGV2ZW50IG9yIG9uIGEgUXVpdCBldmVudC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gU3ViY2xhc3NlcyBjYW4gb3ZlcnJpZGUgdG8gY2xlYXIgYW55IGF0dHJpYnV0ZXMgbWFuYWdlcyB0aHJvdWdoIFZpZXdTdGF0ZSwgDQorCQkvLy8gYW5kIHRvIHJldGFpbiBhbnkgZGVmYXVsdCB2YWx1ZXMgdGhhdCBzaG91bGQgc3Vydml2ZSBhIHJlc2V0Lg0KKwkJLy8vIElmIG92ZXJyaWRkZW4sIHRoZSBiZXN0IHByYWN0aWNlIGlzIHRvIGNhbGwgYmFzZS5QYWdlX1Jlc2V0IA0KKwkJLy8vIHJhdGhlciB0aGFuIGNhbGwgUmVzZXRDb250cm9scyBkaXJlY3RseS4NCisJCS8vLyA8L3A+PHA+DQorCQkvLy8gVXN1YWxseSwgUGFnZV9SZXNldCBzaG91bGQgKm5vdCogYmUgY2FsbGVkIG9uIGEgU2F2ZSBldmVudCwgDQorCQkvLy8gc2luY2UgdGhlIHN0YXRlIGF0IFNhdmUgbWlnaHQgYmUgbmVlZGVkIGJ5IGFub3RoZXIgY29tcG9uZW50LiANCisJCS8vLyBUaGUgdHlwaWNhbCBpZGlvbSBpcyB0byBjYWxsIFBhZ2VfUmVzZXQgd2hlbiBhbiBPcGVuIG1ldGhvZCBpcyBwYXNzZWQgbmV3IHBhcmFtZXRlcnMgDQorCQkvLy8gb3Igb24gYSBRdWl0IGV2ZW50Lg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQlwdWJsaWMgdmlydHVhbCB2b2lkIFBhZ2VfUmVzZXQoKQ0KKwkJew0KKwkJCVJlc2V0Q29udHJvbHMoKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTaWduYWwgdGhhdCBpbnB1dCB3YXMgcmVzZXQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGV2ZW50IEV2ZW50SGFuZGxlciBWaWV3X1Jlc2V0Ow0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJlc2V0IGNvbnRyb2wgdmFsdWVzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByb3RlY3RlZCB2b2lkIHJlc2V0X0NsaWNrKG9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCVBhZ2VfUmVzZXQoKTsNCisJCQlpZiAoVmlld19SZXNldCAhPSBudWxsKQ0KKwkJCXsNCisJCQkJVmlld19SZXNldChzZW5kZXIsIGUpOyAvLyBidWJibGUgaXQNCisJCQl9CQkJDQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQXV0b21hdGljYWxseSBsb29rdXAgbWVzc2FnZXMgZm9yIEJ1dHRvbnMsIEh5cGVyTGlua3MsIGFuZCBMYWJlbHMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIENhbGxlZCBkdXJpbmcgcGFnZSBJbml0IGN5Y2xlOyBvdmVycmlkZSB0byBjaGFuZ2UgYmVoYXZpb3Igb3IgZGlzYWJsZS4NCisJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBQYWdlX0luaXQoKQ0KKwkJew0KKwkJCUluaXRWaWV3TGFiZWxzKCk7DQorCQkJaWYgKElzUG9zdEJhY2spIHJldHVybjsNCisJCQlHZXRNZXNzYWdlcygpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhhbmRsZSB0aGUgcGFnZSdzIExvYWQgZXZlbnQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJzZW5kZXIiPkV2ZW50IHNvdXJjZTwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImUiPlJ1bnRpbWUgYXJndW1lbnRzPC9wYXJhbT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBQYWdlX0xvYWQob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJLy8gUHV0IHVzZXIgY29kZSB0byBpbml0aWFsaXplIHRoZSBwYWdlIGhlcmUNCisJCX0NCisNCisJCSNyZWdpb24gV2ViIEZvcm0gRGVzaWduZXIgZ2VuZXJhdGVkIGNvZGUNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLwkJSW5pdGlhbGl6ZSBjb21wb25lbnRzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBwYXJhbWV0ZXJzPC9wYXJhbT4NCisJCS8vLyANCisJCXByb3RlY3RlZCBvdmVycmlkZSB2b2lkIE9uSW5pdChFdmVudEFyZ3MgZSkNCisJCXsNCisJCQkvLw0KKwkJCS8vIENPREVHRU46IFRoaXMgY2FsbCBpcyByZXF1aXJlZCBieSB0aGUgQVNQLk5FVCBXZWIgRm9ybSBEZXNpZ25lci4NCisJCQkvLw0KKwkJCUluaXRpYWxpemVDb21wb25lbnQoKTsNCisJCQliYXNlLk9uSW5pdChlKTsNCisJCQlQYWdlX0luaXQoKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLwkJUmVxdWlyZWQgbWV0aG9kIGZvciBEZXNpZ25lciBzdXBwb3J0IC0gZG8gbm90IG1vZGlmeQ0KKwkJLy8vCQl0aGUgY29udGVudHMgb2YgdGhpcyBtZXRob2Qgd2l0aCB0aGUgY29kZSBlZGl0b3IuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHJpdmF0ZSB2b2lkIEluaXRpYWxpemVDb21wb25lbnQoKQ0KKwkJew0KKwkJCXRoaXMuTG9hZCArPSBuZXcgRXZlbnRIYW5kbGVyKHRoaXMuUGFnZV9Mb2FkKTsNCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL1ZpZXdDb250cm9sLmFzY3gucmVzeCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvVmlld0NvbnRyb2wuYXNjeC5yZXN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMGVhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL1ZpZXdDb250cm9sLmFzY3gucmVzeApAQCAtMCwwICsxLDQyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4NCis8cm9vdD4NCisJPHhzZDpzY2hlbWEgaWQ9InJvb3QiIHhtbG5zPSIiIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOm1zZGF0YT0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp4bWwtbXNkYXRhIj4NCisJCTx4c2Q6ZWxlbWVudCBuYW1lPSJyb290IiBtc2RhdGE6SXNEYXRhU2V0PSJ0cnVlIj4NCisJCQk8eHNkOmNvbXBsZXhUeXBlPg0KKwkJCQk8eHNkOmNob2ljZSBtYXhPY2N1cnM9InVuYm91bmRlZCI+DQorCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGF0YSI+DQorCQkJCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJCQkJPHhzZDpzZXF1ZW5jZT4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJjb21tZW50IiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIyIiAvPg0KKwkJCQkJCQk8L3hzZDpzZXF1ZW5jZT4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0idHlwZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibWltZXR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQkJCQk8L3hzZDplbGVtZW50Pg0KKwkJCQkJPHhzZDplbGVtZW50IG5hbWU9InJlc2hlYWRlciI+DQorCQkJCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJCQkJPHhzZDpzZXF1ZW5jZT4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4NCisJCQkJCQkJPC94c2Q6c2VxdWVuY2U+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIHVzZT0icmVxdWlyZWQiIC8+DQorCQkJCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQkJCQk8L3hzZDplbGVtZW50Pg0KKwkJCQk8L3hzZDpjaG9pY2U+DQorCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQk8L3hzZDplbGVtZW50Pg0KKwk8L3hzZDpzY2hlbWE+DQorCTxyZXNoZWFkZXIgbmFtZT0iUmVzTWltZVR5cGUiPg0KKwkJPHZhbHVlPnRleHQvbWljcm9zb2Z0LXJlc3g8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCisJPHJlc2hlYWRlciBuYW1lPSJWZXJzaW9uIj4NCisJCTx2YWx1ZT4xLjAuMC4wPC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iUmVhZGVyIj4NCisJCTx2YWx1ZT5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVJlYWRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iV3JpdGVyIj4NCisJCTx2YWx1ZT5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVdyaXRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorPC9yb290Pg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvVmlld0xhYmVsLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9WaWV3TGFiZWwuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWYyMTkwNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvVmlld0xhYmVsLmNzCkBAIC0wLDAgKzEsMTU2IEBACit1c2luZyBTeXN0ZW07DQordXNpbmcgU3lzdGVtLldlYi5VSS5XZWJDb250cm9sczsNCit1c2luZyBOZXh1cy5Db3JlLkhlbHBlcnM7DQorDQorbmFtZXNwYWNlIE5leHVzLldlYg0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gUHJlc2VudCBkeW5hbWljIG1lc3NhZ2UgYnkgY29uc3VsdGluZyB3aXRoIE1lc3NhZ2UgUmVzb3VyY2VzIA0KKwkvLy8gb3IgaGFuZGxpbmcgYW4gZXZlbnQuDQorCS8vLyA8L3N1bW1hcnk+DQorCXB1YmxpYyBjbGFzcyBWaWV3TGFiZWwgOiBMYWJlbA0KKwl7DQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRmllbGQgZm9yIEVudHJ5SUQgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSBzdHJpbmcgX0VudHJ5SUQ7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gTmFtZSBvZiBjb3JyZXNwb25kaW5nIGVudHJ5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBJZiB0aGlzIGlzIG5vdCBzZXQsIA0KKwkJLy8vIHRoZSBFbnRyeUlkIGlzIG9idGFpbmVkIGJ5IHRydW5jYXRpbmcgdGhlIFN1ZmZpeCANCisJCS8vLyBmcm9tIHRoZSBJRC4NCisJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJcHVibGljIHN0cmluZyBFbnRyeUlEDQorCQl7DQorCQkJZ2V0DQorCQkJew0KKwkJCQlpZiAoKF9FbnRyeUlEID09IG51bGwpIHx8IChfRW50cnlJRC5MZW5ndGggPT0gMCkpDQorCQkJCXsNCisJCQkJCWludCB2ID0gSUQuTGFzdEluZGV4T2YoU3VmZml4KTsNCisJCQkJCV9FbnRyeUlEID0gSUQuU3Vic3RyaW5nKDAsIHYpOw0KKwkJCQl9DQorCQkJCXJldHVybiBfRW50cnlJRDsNCisJCQl9DQorCQkJc2V0IHsgX0VudHJ5SUQgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBNRVNTQUdFX1NVRkZJWCA9ICJfbXNnIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBGaWVsZCBmb3IgU3VmZml4IHByb3BlcnR5IFsiX21zZyJdLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByaXZhdGUgc3RyaW5nIF9TdWZmaXggPSBNRVNTQUdFX1NVRkZJWDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTdWZmaXggdG8gdHJpbSBmcm9tIElEIHRvIG9idGFpbiBFbnRyeUlEIFtNRVNTQUdFX1NVRkZJWF0uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIHN0cmluZyBTdWZmaXgNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX1N1ZmZpeDsgfQ0KKwkJCXNldCB7IF9TdWZmaXggPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEZpZWxkIGZvciBSZXNvdXJjZSBwcm9wZXJ0eSBbVFJVRV0uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSBib29sIF9SZXNvdXJjZSA9IHRydWU7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSWYgdHJ1ZSwgcG9wdWxhdGUgZnJvbSBNZXNzYWdlIFJlc291cmNlcy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgYm9vbCBSZXNvdXJjZQ0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfUmVzb3VyY2U7IH0NCisJCQlzZXQgeyBfUmVzb3VyY2UgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEZpZWxkIGZvciBSZXF1aXJlZCBwcm9wZXJ0eSBbRkFMU0VdLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByaXZhdGUgYm9vbCBfUmVxdWlyZWQgPSBmYWxzZTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJZiB0cnVlLCB0aHJvdyBleGNlcHRpb24gaWYgUmVzb3VyY2U9PXRydWUgDQorCQkvLy8gYW5kIG1lc3NhZ2Ugbm90IGluIHJlc291cmNlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBib29sIFJlcXVpcmVkDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9SZXF1aXJlZDsgfQ0KKwkJCXNldCB7IF9SZXF1aXJlZCA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRmllbGQgZm9yIFZpZXdfSGludCBwcm9wZXJ0eSBbVFJVRV0uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSBib29sIF9WaWV3X0hpbnQgPSB0cnVlOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIElmIHRydWUsIHJlZ2lzdGVyIGZvciBWaWV3X0FsZXJ0IGV2ZW50IA0KKwkJLy8vIGFuZCBkaXNwbGF5IGFueSBhbGVydCBmb3IgY29ycmVzcG9uZGluZyBmaWVsZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgYm9vbCBWaWV3X0hpbnQNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX1ZpZXdfSGludDsgfQ0KKwkJCXNldCB7IF9WaWV3X0hpbnQgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEZpZWxkIGZvciBWaWV3X0FsZXJ0IHByb3BlcnR5IFtUUlVFXS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcml2YXRlIGJvb2wgX1ZpZXdfQWxlcnQgPSB0cnVlOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIElmIHRydWUsIHJlZ2lzdGVyIGZvciBWaWV3X0hpbnQgZXZlbnQgDQorCQkvLy8gYW5kIGRpc3BsYXkgYW55IGhpbnQgZm9yIGNvcnJlc3BvbmRpbmcgZmllbGQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGJvb2wgVmlld19BbGVydA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfVmlld19BbGVydDsgfQ0KKwkJCXNldCB7IF9WaWV3X0FsZXJ0ID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcmVzZW50IGEgbGlzdCBvZiBlcnJvciBtZXNhc2dlcy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgSVZpZXdIZWxwZXIgQWxlcnRzDQorCQl7DQorCQkJc2V0DQorCQkJew0KKwkJCQlpZiAodmFsdWUgIT0gbnVsbCkNCisJCQkJew0KKwkJCQkJVGV4dCA9IHZhbHVlLkFsZXJ0c0ZvcihFbnRyeUlEKTsNCisJCQkJfQ0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgc3RhbmRhcmQgRXZlbnQgSGFuZGxlciBmb3IgcGFzc2luZyBBbGVydCBtZXNzYWdlcy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InNlbmRlciI+RXZlbnQgc291cmNlPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBwYXJhbWV0ZXJzPC9wYXJhbT4NCisJCS8vLyANCisJCXB1YmxpYyB2b2lkIFZpZXdfQWxlcnRfSGFuZGxlcihvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCQlWaWV3QXJncyB2ID0gZSBhcyBWaWV3QXJnczsNCisJCQlpZiAodiA9PSBudWxsKSB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oIlZpZXdMYWJlbC5WaWV3X0FsZXJ0X0hhbmRsZXI6ICEoZSBpcyBWaWV3QXJncykiKTsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSB2LkhlbHBlcjsNCisJCQlpZiAoaGVscGVyICE9IG51bGwpIEFsZXJ0cyA9IGhlbHBlcjsNCisJCQllbHNlIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigiVmlld0xhYmVsLlZpZXdfQWxlcnRfSGFuZGxlcjogKGUuaGVscGVyPT1udWxsKSIpOw0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvV2ViLmNvbmZpZyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvV2ViLmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZmRmYzcwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9XZWIuY29uZmlnCkBAIC0wLDAgKzEsMTE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4NCis8Y29uZmlndXJhdGlvbj4NCisgICAgDQorICA8c3lzdGVtLndlYj4NCisNCisgICAgPCEtLSAgRFlOQU1JQyBERUJVRyBDT01QSUxBVElPTg0KKyAgICAgICAgICBTZXQgY29tcGlsYXRpb24gZGVidWc9InRydWUiIHRvIGVuYWJsZSBBU1BYIGRlYnVnZ2luZy4gIE90aGVyd2lzZSwgc2V0dGluZyB0aGlzIHZhbHVlIHRvDQorICAgICAgICAgIGZhbHNlIHdpbGwgaW1wcm92ZSBydW50aW1lIHBlcmZvcm1hbmNlIG9mIHRoaXMgYXBwbGljYXRpb24uIA0KKyAgICAgICAgICBTZXQgY29tcGlsYXRpb24gZGVidWc9InRydWUiIHRvIGluc2VydCBkZWJ1Z2dpbmcgc3ltYm9scyAoLnBkYiBpbmZvcm1hdGlvbikNCisgICAgICAgICAgaW50byB0aGUgY29tcGlsZWQgcGFnZS4gQmVjYXVzZSB0aGlzIGNyZWF0ZXMgYSBsYXJnZXIgZmlsZSB0aGF0IGV4ZWN1dGVzDQorICAgICAgICAgIG1vcmUgc2xvd2x5LCB5b3Ugc2hvdWxkIHNldCB0aGlzIHZhbHVlIHRvIHRydWUgb25seSB3aGVuIGRlYnVnZ2luZyBhbmQgdG8NCisgICAgICAgICAgZmFsc2UgYXQgYWxsIG90aGVyIHRpbWVzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gYWJvdXQNCisgICAgICAgICAgZGVidWdnaW5nIEFTUC5ORVQgZmlsZXMuDQorICAgIC0tPg0KKyAgICA8Y29tcGlsYXRpb24gDQorICAgICAgICAgZGVmYXVsdExhbmd1YWdlPSJjIyINCisgICAgICAgICBkZWJ1Zz0idHJ1ZSINCisgICAgLz4NCisNCisgICAgPCEtLSAgQ1VTVE9NIEVSUk9SIE1FU1NBR0VTDQorICAgICAgICAgIFNldCBjdXN0b21FcnJvcnMgbW9kZT0iT24iIG9yICJSZW1vdGVPbmx5IiB0byBlbmFibGUgY3VzdG9tIGVycm9yIG1lc3NhZ2VzLCAiT2ZmIiB0byBkaXNhYmxlLiANCisgICAgICAgICAgQWRkIDxlcnJvcj4gdGFncyBmb3IgZWFjaCBvZiB0aGUgZXJyb3JzIHlvdSB3YW50IHRvIGhhbmRsZS4NCisNCisgICAgICAgICAgIk9uIiBBbHdheXMgZGlzcGxheSBjdXN0b20gKGZyaWVuZGx5KSBtZXNzYWdlcy4NCisgICAgICAgICAgIk9mZiIgQWx3YXlzIGRpc3BsYXkgZGV0YWlsZWQgQVNQLk5FVCBlcnJvciBpbmZvcm1hdGlvbi4NCisgICAgICAgICAgIlJlbW90ZU9ubHkiIERpc3BsYXkgY3VzdG9tIChmcmllbmRseSkgbWVzc2FnZXMgb25seSB0byB1c2VycyBub3QgcnVubmluZyANCisgICAgICAgICAgIG9uIHRoZSBsb2NhbCBXZWIgc2VydmVyLiBUaGlzIHNldHRpbmcgaXMgcmVjb21tZW5kZWQgZm9yIHNlY3VyaXR5IHB1cnBvc2VzLCBzbyANCisgICAgICAgICAgIHRoYXQgeW91IGRvIG5vdCBkaXNwbGF5IGFwcGxpY2F0aW9uIGRldGFpbCBpbmZvcm1hdGlvbiB0byByZW1vdGUgY2xpZW50cy4NCisgICAgLS0+DQorICAgIDxjdXN0b21FcnJvcnMgDQorICAgIG1vZGU9IlJlbW90ZU9ubHkiIA0KKyAgICAvPiANCisNCisgICAgPCEtLSAgQVVUSEVOVElDQVRJT04gDQorICAgICAgICAgIFRoaXMgc2VjdGlvbiBzZXRzIHRoZSBhdXRoZW50aWNhdGlvbiBwb2xpY2llcyBvZiB0aGUgYXBwbGljYXRpb24uIFBvc3NpYmxlIG1vZGVzIGFyZSAiV2luZG93cyIsIA0KKyAgICAgICAgICAiRm9ybXMiLCAiUGFzc3BvcnQiIGFuZCAiTm9uZSINCisNCisgICAgICAgICAgIk5vbmUiIE5vIGF1dGhlbnRpY2F0aW9uIGlzIHBlcmZvcm1lZC4gDQorICAgICAgICAgICJXaW5kb3dzIiBJSVMgcGVyZm9ybXMgYXV0aGVudGljYXRpb24gKEJhc2ljLCBEaWdlc3QsIG9yIEludGVncmF0ZWQgV2luZG93cykgYWNjb3JkaW5nIHRvIA0KKyAgICAgICAgICAgaXRzIHNldHRpbmdzIGZvciB0aGUgYXBwbGljYXRpb24uIEFub255bW91cyBhY2Nlc3MgbXVzdCBiZSBkaXNhYmxlZCBpbiBJSVMuIA0KKyAgICAgICAgICAiRm9ybXMiIFlvdSBwcm92aWRlIGEgY3VzdG9tIGZvcm0gKFdlYiBwYWdlKSBmb3IgdXNlcnMgdG8gZW50ZXIgdGhlaXIgY3JlZGVudGlhbHMsIGFuZCB0aGVuIA0KKyAgICAgICAgICAgeW91IGF1dGhlbnRpY2F0ZSB0aGVtIGluIHlvdXIgYXBwbGljYXRpb24uIEEgdXNlciBjcmVkZW50aWFsIHRva2VuIGlzIHN0b3JlZCBpbiBhIGNvb2tpZS4NCisgICAgICAgICAgIlBhc3Nwb3J0IiBBdXRoZW50aWNhdGlvbiBpcyBwZXJmb3JtZWQgdmlhIGEgY2VudHJhbGl6ZWQgYXV0aGVudGljYXRpb24gc2VydmljZSBwcm92aWRlZA0KKyAgICAgICAgICAgYnkgTWljcm9zb2Z0IHRoYXQgb2ZmZXJzIGEgc2luZ2xlIGxvZ29uIGFuZCBjb3JlIHByb2ZpbGUgc2VydmljZXMgZm9yIG1lbWJlciBzaXRlcy4NCisgICAgLS0+DQorICAgIDxhdXRoZW50aWNhdGlvbiBtb2RlPSJXaW5kb3dzIiAvPiANCisNCisJPCEtLSAgQVVUSE9SSVpBVElPTiANCisgICAgICAgICAgVGhpcyBzZWN0aW9uIHNldHMgdGhlIGF1dGhvcml6YXRpb24gcG9saWNpZXMgb2YgdGhlIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsbG93IG9yIGRlbnkgYWNjZXNzDQorICAgICAgICAgIHRvIGFwcGxpY2F0aW9uIHJlc291cmNlcyBieSB1c2VyIG9yIHJvbGUuIFdpbGRjYXJkczogIioiIG1lYW4gZXZlcnlvbmUsICI/IiBtZWFucyBhbm9ueW1vdXMgDQorICAgICAgICAgICh1bmF1dGhlbnRpY2F0ZWQpIHVzZXJzLg0KKyAgICAtLT4NCisNCisgICAgPGF1dGhvcml6YXRpb24+DQorICAgICAgICA8YWxsb3cgdXNlcnM9IioiIC8+IDwhLS0gQWxsb3cgYWxsIHVzZXJzIC0tPg0KKyAgICAgICAgICAgIDwhLS0gIDxhbGxvdyAgICAgdXNlcnM9Iltjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB1c2Vyc10iDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlcz0iW2NvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHJvbGVzXSIvPg0KKyAgICAgICAgICAgICAgICAgIDxkZW55ICAgICAgdXNlcnM9Iltjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB1c2Vyc10iDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlcz0iW2NvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHJvbGVzXSIvPg0KKyAgICAgICAgICAgIC0tPg0KKyAgICA8L2F1dGhvcml6YXRpb24+DQorDQorICAgIDwhLS0gIEFQUExJQ0FUSU9OLUxFVkVMIFRSQUNFIExPR0dJTkcNCisgICAgICAgICAgQXBwbGljYXRpb24tbGV2ZWwgdHJhY2luZyBlbmFibGVzIHRyYWNlIGxvZyBvdXRwdXQgZm9yIGV2ZXJ5IHBhZ2Ugd2l0aGluIGFuIGFwcGxpY2F0aW9uLiANCisgICAgICAgICAgU2V0IHRyYWNlIGVuYWJsZWQ9InRydWUiIHRvIGVuYWJsZSBhcHBsaWNhdGlvbiB0cmFjZSBsb2dnaW5nLiAgSWYgcGFnZU91dHB1dD0idHJ1ZSIsIHRoZQ0KKyAgICAgICAgICB0cmFjZSBpbmZvcm1hdGlvbiB3aWxsIGJlIGRpc3BsYXllZCBhdCB0aGUgYm90dG9tIG9mIGVhY2ggcGFnZS4gIE90aGVyd2lzZSwgeW91IGNhbiB2aWV3IHRoZSANCisgICAgICAgICAgYXBwbGljYXRpb24gdHJhY2UgbG9nIGJ5IGJyb3dzaW5nIHRoZSAidHJhY2UuYXhkIiBwYWdlIGZyb20geW91ciB3ZWIgYXBwbGljYXRpb24NCisgICAgICAgICAgcm9vdC4gDQorICAgIC0tPg0KKyAgICA8dHJhY2UNCisgICAgICAgIGVuYWJsZWQ9ImZhbHNlIg0KKyAgICAgICAgcmVxdWVzdExpbWl0PSIxMCINCisgICAgICAgIHBhZ2VPdXRwdXQ9ImZhbHNlIg0KKyAgICAgICAgdHJhY2VNb2RlPSJTb3J0QnlUaW1lIg0KKwkJbG9jYWxPbmx5PSJ0cnVlIg0KKyAgICAvPg0KKw0KKyAgICA8IS0tICBTRVNTSU9OIFNUQVRFIFNFVFRJTkdTDQorICAgICAgICAgIEJ5IGRlZmF1bHQgQVNQLk5FVCB1c2VzIGNvb2tpZXMgdG8gaWRlbnRpZnkgd2hpY2ggcmVxdWVzdHMgYmVsb25nIHRvIGEgcGFydGljdWxhciBzZXNzaW9uLiANCisgICAgICAgICAgSWYgY29va2llcyBhcmUgbm90IGF2YWlsYWJsZSwgYSBzZXNzaW9uIGNhbiBiZSB0cmFja2VkIGJ5IGFkZGluZyBhIHNlc3Npb24gaWRlbnRpZmllciB0byB0aGUgVVJMLiANCisgICAgICAgICAgVG8gZGlzYWJsZSBjb29raWVzLCBzZXQgc2Vzc2lvblN0YXRlIGNvb2tpZWxlc3M9InRydWUiLg0KKyAgICAtLT4NCisgICAgPHNlc3Npb25TdGF0ZSANCisgICAgICAgICAgICBtb2RlPSJJblByb2MiDQorICAgICAgICAgICAgc3RhdGVDb25uZWN0aW9uU3RyaW5nPSJ0Y3BpcD0xMjcuMC4wLjE6NDI0MjQiDQorICAgICAgICAgICAgc3FsQ29ubmVjdGlvblN0cmluZz0iZGF0YSBzb3VyY2U9MTI3LjAuMC4xO1RydXN0ZWRfQ29ubmVjdGlvbj15ZXMiDQorICAgICAgICAgICAgY29va2llbGVzcz0iZmFsc2UiIA0KKyAgICAgICAgICAgIHRpbWVvdXQ9IjIwIiANCisgICAgLz4NCisNCisgICAgPCEtLSAgR0xPQkFMSVpBVElPTg0KKyAgICAgICAgICBUaGlzIHNlY3Rpb24gc2V0cyB0aGUgZ2xvYmFsaXphdGlvbiBzZXR0aW5ncyBvZiB0aGUgYXBwbGljYXRpb24uIA0KKyAgICAtLT4NCisgICAgPGdsb2JhbGl6YXRpb24gDQorICAgICAgICAgICAgcmVxdWVzdEVuY29kaW5nPSJ1dGYtOCIgDQorICAgICAgICAgICAgcmVzcG9uc2VFbmNvZGluZz0idXRmLTgiIA0KKyAgIC8+DQorICAgDQorIDwvc3lzdGVtLndlYj4NCisgIDxydW50aW1lPg0KKyAgICA8YXNzZW1ibHlCaW5kaW5nIHhtbG5zPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOmFzbS52MSI+DQorICAgICAgPGRlcGVuZGVudEFzc2VtYmx5Pg0KKyAgICAgICAgPGFzc2VtYmx5SWRlbnRpdHkNCisgICAgICAgICAgbmFtZT0ibG9nNG5ldCINCisgICAgICAgICAgcHVibGljS2V5VG9rZW49ImIzMjczMWQxMWNlNTg5MDUiDQorICAgICAgICAgIGN1bHR1cmU9Im5ldXRyYWwiLz4NCisgICAgICAgIDxiaW5kaW5nUmVkaXJlY3QNCisgICAgICAgICAgb2xkVmVyc2lvbj0iMS4yLjAuMzA3MTQiDQorICAgICAgICAgIG5ld1ZlcnNpb249IjEuMi45LjAiLz4NCisgICAgICA8L2RlcGVuZGVudEFzc2VtYmx5Pg0KKyAgICA8L2Fzc2VtYmx5QmluZGluZz4NCisgIDwvcnVudGltZT4gDQorDQorPC9jb25maWd1cmF0aW9uPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvV2ViLmNzcHJvaiBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvV2ViLmNzcHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmRjODU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9XZWIuY3Nwcm9qCkBAIC0wLDAgKzEsMjQxIEBACis8VmlzdWFsU3R1ZGlvUHJvamVjdD4NCisgICAgPENTSEFSUA0KKyAgICAgICAgUHJvamVjdFR5cGUgPSAiV2ViIg0KKyAgICAgICAgUHJvZHVjdFZlcnNpb24gPSAiNy4xMC4zMDc3Ig0KKyAgICAgICAgU2NoZW1hVmVyc2lvbiA9ICIyLjAiDQorICAgICAgICBQcm9qZWN0R3VpZCA9ICJ7MkJEN0NERTAtMDFGNy00Q0M1LTlBRTktMkY5NDcwRkI3MDA3fSINCisgICAgPg0KKyAgICAgICAgPEJ1aWxkPg0KKyAgICAgICAgICAgIDxTZXR0aW5ncw0KKyAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbkljb24gPSAiIg0KKyAgICAgICAgICAgICAgICBBc3NlbWJseUtleUNvbnRhaW5lck5hbWUgPSAiIg0KKyAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiTmV4dXMuV2ViIg0KKyAgICAgICAgICAgICAgICBBc3NlbWJseU9yaWdpbmF0b3JLZXlGaWxlID0gIiINCisgICAgICAgICAgICAgICAgRGVmYXVsdENsaWVudFNjcmlwdCA9ICJKU2NyaXB0Ig0KKyAgICAgICAgICAgICAgICBEZWZhdWx0SFRNTFBhZ2VMYXlvdXQgPSAiRmxvdyINCisgICAgICAgICAgICAgICAgRGVmYXVsdFRhcmdldFNjaGVtYSA9ICJJRTUwIg0KKyAgICAgICAgICAgICAgICBEZWxheVNpZ24gPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgIE91dHB1dFR5cGUgPSAiTGlicmFyeSINCisgICAgICAgICAgICAgICAgUHJlQnVpbGRFdmVudCA9ICIiDQorICAgICAgICAgICAgICAgIFBvc3RCdWlsZEV2ZW50ID0gIiQoU29sdXRpb25EaXIpcG9zdGJ1aWxkLmJhdCAkKFRhcmdldERpcikgICQoVGFyZ2V0TmFtZSkgICQoU29sdXRpb25OYW1lKSAgJChTb2x1dGlvbkRpcikiDQorICAgICAgICAgICAgICAgIFJvb3ROYW1lc3BhY2UgPSAiTmV4dXMuV2ViIg0KKyAgICAgICAgICAgICAgICBSdW5Qb3N0QnVpbGRFdmVudCA9ICJPbkJ1aWxkU3VjY2VzcyINCisgICAgICAgICAgICAgICAgU3RhcnR1cE9iamVjdCA9ICIiDQorICAgICAgICAgICAgPg0KKyAgICAgICAgICAgICAgICA8Q29uZmlnDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIkRlYnVnIg0KKyAgICAgICAgICAgICAgICAgICAgQWxsb3dVbnNhZmVCbG9ja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBCYXNlQWRkcmVzcyA9ICIyODUyMTI2NzIiDQorICAgICAgICAgICAgICAgICAgICBDaGVja0Zvck92ZXJmbG93VW5kZXJmbG93ID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbk92ZXJyaWRlRmlsZSA9ICIiDQorICAgICAgICAgICAgICAgICAgICBEZWZpbmVDb25zdGFudHMgPSAiREVCVUc7VFJBQ0UiDQorICAgICAgICAgICAgICAgICAgICBEb2N1bWVudGF0aW9uRmlsZSA9ICIiDQorICAgICAgICAgICAgICAgICAgICBEZWJ1Z1N5bWJvbHMgPSAidHJ1ZSINCisgICAgICAgICAgICAgICAgICAgIEZpbGVBbGlnbm1lbnQgPSAiNDA5NiINCisgICAgICAgICAgICAgICAgICAgIEluY3JlbWVudGFsQnVpbGQgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBOb1N0ZExpYiA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE5vV2FybiA9ICIiDQorICAgICAgICAgICAgICAgICAgICBPcHRpbWl6ZSA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE91dHB1dFBhdGggPSAiYmluXCINCisgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyRm9yQ29tSW50ZXJvcCA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFJlbW92ZUludGVnZXJDaGVja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBUcmVhdFdhcm5pbmdzQXNFcnJvcnMgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBXYXJuaW5nTGV2ZWwgPSAiNCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPENvbmZpZw0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJSZWxlYXNlIg0KKyAgICAgICAgICAgICAgICAgICAgQWxsb3dVbnNhZmVCbG9ja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBCYXNlQWRkcmVzcyA9ICIyODUyMTI2NzIiDQorICAgICAgICAgICAgICAgICAgICBDaGVja0Zvck92ZXJmbG93VW5kZXJmbG93ID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbk92ZXJyaWRlRmlsZSA9ICIiDQorICAgICAgICAgICAgICAgICAgICBEZWZpbmVDb25zdGFudHMgPSAiVFJBQ0UiDQorICAgICAgICAgICAgICAgICAgICBEb2N1bWVudGF0aW9uRmlsZSA9ICIiDQorICAgICAgICAgICAgICAgICAgICBEZWJ1Z1N5bWJvbHMgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBGaWxlQWxpZ25tZW50ID0gIjQwOTYiDQorICAgICAgICAgICAgICAgICAgICBJbmNyZW1lbnRhbEJ1aWxkID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgTm9TdGRMaWIgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBOb1dhcm4gPSAiIg0KKyAgICAgICAgICAgICAgICAgICAgT3B0aW1pemUgPSAidHJ1ZSINCisgICAgICAgICAgICAgICAgICAgIE91dHB1dFBhdGggPSAiYmluXCINCisgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyRm9yQ29tSW50ZXJvcCA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFJlbW92ZUludGVnZXJDaGVja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBUcmVhdFdhcm5pbmdzQXNFcnJvcnMgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBXYXJuaW5nTGV2ZWwgPSAiNCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICA8L1NldHRpbmdzPg0KKyAgICAgICAgICAgIDxSZWZlcmVuY2VzPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIlN5c3RlbSINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJTeXN0ZW0iDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICJDOlxXSU5ET1dTXE1pY3Jvc29mdC5ORVRcRnJhbWV3b3JrXHYxLjEuNDMyMlxTeXN0ZW0uZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIlN5c3RlbS5EcmF3aW5nIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIlN5c3RlbS5EcmF3aW5nIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiQzpcV0lORE9XU1xNaWNyb3NvZnQuTkVUXEZyYW1ld29ya1x2MS4xLjQzMjJcU3lzdGVtLkRyYXdpbmcuZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIlN5c3RlbS5EYXRhIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIlN5c3RlbS5EYXRhIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiQzpcV0lORE9XU1xNaWNyb3NvZnQuTkVUXEZyYW1ld29ya1x2MS4xLjQzMjJcU3lzdGVtLkRhdGEuZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIlN5c3RlbS5XZWIiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3lzdGVtLldlYiINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIkM6XFdJTkRPV1NcTWljcm9zb2Z0Lk5FVFxGcmFtZXdvcmtcdjEuMS40MzIyXFN5c3RlbS5XZWIuZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIlN5c3RlbS5YTUwiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3lzdGVtLlhtbCINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIkM6XFdJTkRPV1NcTWljcm9zb2Z0Lk5FVFxGcmFtZXdvcmtcdjEuMS40MzIyXFN5c3RlbS5YTUwuZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIkNvcmUiDQorICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ID0gIns3QzhDQUZENC0xRTQ1LTQxQjQtOTk2My1GNTExOTlCMTJFQTd9Ig0KKyAgICAgICAgICAgICAgICAgICAgUGFja2FnZSA9ICJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJTcHJpbmcuV2ViIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIlNwcmluZy5XZWIiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlxsb2NhbC1jYWNoZVxTcHJpbmdOZXRcU3ByaW5nLldlYi5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3ByaW5nLkNvcmUiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3ByaW5nLkNvcmUiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlxsb2NhbC1jYWNoZVxTcHJpbmdOZXRcU3ByaW5nLkNvcmUuZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIkFnaWxpdHkuQ29yZSINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJBZ2lsaXR5LkNvcmUiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlxsb2NhbC1jYWNoZVxBZ2lsaXR5XEFnaWxpdHkuQ29yZS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgPC9SZWZlcmVuY2VzPg0KKyAgICAgICAgPC9CdWlsZD4NCisgICAgICAgIDxGaWxlcz4NCisgICAgICAgICAgICA8SW5jbHVkZT4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiQWxlcnRMYWJlbC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkFzc2VtYmx5SW5mby5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkZpbmRDb250cm9sLmFzY3giDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIlVzZXJDb250cm9sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiRmluZENvbnRyb2wuYXNjeC5jcyINCisgICAgICAgICAgICAgICAgICAgIERlcGVuZGVudFVwb24gPSAiRmluZENvbnRyb2wuYXNjeCINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQVNQWENvZGVCZWhpbmQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJGaW5kQ29udHJvbC5hc2N4LnJlc3giDQorICAgICAgICAgICAgICAgICAgICBEZXBlbmRlbnRVcG9uID0gIkZpbmRDb250cm9sLmFzY3guY3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJFbWJlZGRlZFJlc291cmNlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJHbG9iYWwuYXNheCINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29tcG9uZW50Ig0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiR2xvYmFsLmFzYXguY3MiDQorICAgICAgICAgICAgICAgICAgICBEZXBlbmRlbnRVcG9uID0gIkdsb2JhbC5hc2F4Ig0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiR2xvYmFsLmFzYXgucmVzeCINCisgICAgICAgICAgICAgICAgICAgIERlcGVuZGVudFVwb24gPSAiR2xvYmFsLmFzYXguY3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJFbWJlZGRlZFJlc291cmNlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJHcmlkQ29udHJvbC5hc2N4Ig0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiR3JpZENvbnRyb2wuYXNjeC5jcyINCisgICAgICAgICAgICAgICAgICAgIERlcGVuZGVudFVwb24gPSAiR3JpZENvbnRyb2wuYXNjeCINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQVNQWENvZGVCZWhpbmQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJHcmlkQ29udHJvbC5hc2N4LnJlc3giDQorICAgICAgICAgICAgICAgICAgICBEZXBlbmRlbnRVcG9uID0gIkdyaWRDb250cm9sLmFzY3guY3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJFbWJlZGRlZFJlc291cmNlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJIaW50TGFiZWwuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJJVmlld0NvbnRyb2wuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJNZXNzYWdlcy5yZXN4Ig0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiRW1iZWRkZWRSZXNvdXJjZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiVGV4dExhYmVsLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiVmlld0NvbnRyb2wuYXNjeCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlZpZXdDb250cm9sLmFzY3guY3MiDQorICAgICAgICAgICAgICAgICAgICBEZXBlbmRlbnRVcG9uID0gIlZpZXdDb250cm9sLmFzY3giDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkFTUFhDb2RlQmVoaW5kIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiVmlld0NvbnRyb2wuYXNjeC5yZXN4Ig0KKyAgICAgICAgICAgICAgICAgICAgRGVwZW5kZW50VXBvbiA9ICJWaWV3Q29udHJvbC5hc2N4LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiRW1iZWRkZWRSZXNvdXJjZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiVmlld0xhYmVsLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiV2ViLmNvbmZpZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIldlYkhlbHBlci5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbnRyb2xzXExldHRlckZpbHRlci5hc2N4Ig0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJVc2VyQ29udHJvbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbnRyb2xzXExldHRlckZpbHRlci5hc2N4LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgRGVwZW5kZW50VXBvbiA9ICJMZXR0ZXJGaWx0ZXIuYXNjeCINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQVNQWENvZGVCZWhpbmQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJDb250cm9sc1xMZXR0ZXJGaWx0ZXIuYXNjeC5yZXN4Ig0KKyAgICAgICAgICAgICAgICAgICAgRGVwZW5kZW50VXBvbiA9ICJMZXR0ZXJGaWx0ZXIuYXNjeC5jcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkVtYmVkZGVkUmVzb3VyY2UiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgPC9JbmNsdWRlPg0KKyAgICAgICAgPC9GaWxlcz4NCisgICAgPC9DU0hBUlA+DQorPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KKw0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvV2ViLmNzcHJvai53ZWJpbmZvIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL1dlYi9XZWIuY3Nwcm9qLndlYmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFlZjVkMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvV2ViLmNzcHJvai53ZWJpbmZvCkBAIC0wLDAgKzEsNCBAQAorPFZpc3VhbFN0dWRpb1VOQ1dlYj4NCisgICAgPFdlYiBVUkxQYXRoID0gImh0dHA6Ly9sb2NhbGhvc3QvTmV4dXMvV2ViLmNzcHJvaiIgLz4NCis8L1Zpc3VhbFN0dWRpb1VOQ1dlYj4NCisNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL1dlYkhlbHBlci5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9OZXh1cy9XZWIvV2ViSGVscGVyLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5ZTdlMDEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvV2ViL1dlYkhlbHBlci5jcwpAQCAtMCwwICsxLDEzNyBAQAordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBTeXN0ZW0uVGV4dDsNCit1c2luZyBOZXh1cy5Db3JlLkhlbHBlcnM7DQorDQorbmFtZXNwYWNlIE5leHVzLldlYg0KK3sNCisJcHVibGljIGNsYXNzIFdlYkhlbHBlciA6IFZpZXdIZWxwZXINCisJew0KKwkJcHVibGljIG92ZXJyaWRlIHN0cmluZyBBbGVydHNGb3Ioc3RyaW5nIGlkKQ0KKwkJew0KKwkJCXN0cmluZyBhbGVydCA9IG51bGw7DQorCQkJSUxpc3QgbGlzdCA9IEFsZXJ0c1tpZF0gYXMgSUxpc3Q7DQorCQkJaWYgKGxpc3QgPT0gbnVsbCkgcmV0dXJuIGFsZXJ0Ow0KKw0KKwkJCWlmIChsaXN0LkNvdW50ID09IDEpDQorCQkJew0KKwkJCQlhbGVydCA9IEh0bWxNZXNzYWdlKGxpc3RbMF0pOw0KKwkJCX0NCisJCQllbHNlDQorCQkJew0KKwkJCQlhbGVydCA9IEh0bWxNZXNzYWdlTGlzdChsaXN0KTsNCisJCQl9DQorCQkJcmV0dXJuIGFsZXJ0Ow0KKwkJfQ0KKwkJDQorCQkvKioNCisJCSAqIFJldHVybiBGYXVsdCBtZXNzYWdlcyBpbiBIVE1MIGZvcm1hdC4gDQorCQkgKi8NCisJCXByaXZhdGUgc3RyaW5nIEZhdWx0TWVzc2FnZXMoKQ0KKwkJew0KKwkJCUV4Y2VwdGlvbiBlID0gRmF1bHQ7DQorCQkJU3RyaW5nQnVpbGRlciBmYXVsdCA9IG5ldyBTdHJpbmdCdWlsZGVyKCJbIik7DQorCQkJZmF1bHQuQXBwZW5kKGUuTWVzc2FnZSk7DQorCQkJZmF1bHQuQXBwZW5kKCJdICIpOw0KKwkJCWZhdWx0LkFwcGVuZChlLlNvdXJjZSk7DQorCQkJZmF1bHQuQXBwZW5kKGUuU3RhY2tUcmFjZSk7DQorCQkJcmV0dXJuIEh0bWxNZXNzYWdlKGZhdWx0LlRvU3RyaW5nKCkpOwkJCQ0KKwkJfQ0KKwkJDQorCQlwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIEFsZXJ0c1RleHQNCisJCXsNCisJCQlnZXQNCisJCQl7DQorCQkJCWlmIChIYXNGYXVsdCkNCisJCQkJewkJCQkJDQorCQkJCQlzdHJpbmcgZmllbGRfbWVzc2FnZXMgPSBIdG1sTWVzc2FnZUJ1aWxkZXIoQWxlcnRzKTsNCisJCQkJCVN0cmluZ0J1aWxkZXIgYWxlcnRzID0gbmV3IFN0cmluZ0J1aWxkZXIoZmllbGRfbWVzc2FnZXMpOwkJCQkJDQorCQkJCQlhbGVydHMuQXBwZW5kKEZhdWx0TWVzc2FnZXMoKSk7DQorCQkJCQlyZXR1cm4gYWxlcnRzLlRvU3RyaW5nKCk7DQorCQkJCX0NCisJCQkJZWxzZQ0KKwkJCQl7DQorCQkJCQlyZXR1cm4gSHRtbE1lc3NhZ2VCdWlsZGVyKEFsZXJ0cyk7DQorCQkJCX0gDQorCQkJfQ0KKwkJfQ0KKw0KKwkJcHVibGljIG92ZXJyaWRlIHN0cmluZyBIaW50c0ZvcihzdHJpbmcgaWQpDQorCQl7DQorCQkJcmV0dXJuIEh0bWxNZXNzYWdlTGlzdChIaW50c1tpZF0gYXMgSUxpc3QpOw0KKwkJfQ0KKw0KKwkJcHVibGljIG92ZXJyaWRlIHN0cmluZyBIaW50c1RleHQNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gSHRtbE1lc3NhZ2VCdWlsZGVyKEhpbnRzKTsgfQ0KKwkJfQ0KKw0KKwkJI3JlZ2lvbiBNZXNzYWdlIHV0aWxpdGllcw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEJ1aWxkIGEgIG1lc3NhZ2UgdXNpbmcgSFRNTCBtYXJrdXAuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJtZXNzYWdlIj5BIG1lc3NhZ2U8L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPkhUTUwgbWFya3VwIHByZXNlbnRpbmcgdGhlIG1lc3NhZ2VzLjwvcmV0dXJucz4NCisJCS8vLyANCisJCXByaXZhdGUgc3RyaW5nIEh0bWxNZXNzYWdlKG9iamVjdCBtZXNzYWdlKQ0KKwkJew0KKwkJCWlmIChtZXNzYWdlPT1udWxsKSByZXR1cm4gbnVsbDsNCisJCQlTdHJpbmdCdWlsZGVyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoIjxwPiIpOw0KKwkJCXNiLkFwcGVuZChtZXNzYWdlLlRvU3RyaW5nKCkpOw0KKwkJCXNiLkFwcGVuZCgiPC9wPiIpOw0KKwkJCXJldHVybiBzYi5Ub1N0cmluZygpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEJ1aWxkIGEgc2V0IG9mIG1lc3NhZ2VzIHVzaW5nIEhUTUwgbWFya3VwLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ibWVzc2FnZXMiPkEgbGlzdCBvZiBtZXNzYWdlczwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+SFRNTCBtYXJrdXAgcHJlc2VudGluZyB0aGUgbWVzc2FnZXMuPC9yZXR1cm5zPg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSBzdHJpbmcgSHRtbE1lc3NhZ2VMaXN0KElMaXN0IG1lc3NhZ2VzKQ0KKwkJew0KKwkJCVN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigiPHVsPiIpOw0KKwkJCWZvcmVhY2ggKG9iamVjdCBvIGluIG1lc3NhZ2VzKQ0KKwkJCXsNCisJCQkJc2IuQXBwZW5kKCI8bGk+Iik7DQorCQkJCXNiLkFwcGVuZChvLlRvU3RyaW5nKCkpOw0KKwkJCQlzYi5BcHBlbmQoIjwvbGk+Iik7DQorCQkJfQ0KKwkJCXNiLkFwcGVuZCgiPC91bD4iKTsNCisNCisJCQlyZXR1cm4gc2IuVG9TdHJpbmcoKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBCdWlsZCBhIHNldCBlcnJvciBtZXNzYWdlcyB1c2luZyBIVE1MIG1hcmt1cC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InN0b3JlIj5BIGNvbnRleHQgbGlzdGluZyBlcnJvcnMsIGlmIGFueTwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+SFRNTCBtYXJrdXAgcHJlc2VudGluZyB0aGUgZXJyb3JzLjwvcmV0dXJucz4NCisJCS8vLyANCisJCXByaXZhdGUgc3RyaW5nIEh0bWxNZXNzYWdlQnVpbGRlcihJRGljdGlvbmFyeSBzdG9yZSkNCisJCXsNCisJCQlzdHJpbmcgbWVzc2FnZU1hcmt1cCA9IG51bGw7DQorCQkJaWYgKHN0b3JlICE9IG51bGwpDQorCQkJew0KKwkJCQlJTGlzdCBtZXNzYWdlcyA9IG5ldyBBcnJheUxpc3QoKTsNCisJCQkJSUNvbGxlY3Rpb24ga2V5cyA9IHN0b3JlLktleXM7DQorCQkJCWZvcmVhY2ggKHN0cmluZyBrZXkgaW4ga2V5cykNCisJCQkJew0KKwkJCQkJSUxpc3Qgc3VibGlzdCA9IHN0b3JlW2tleV0gYXMgSUxpc3Q7DQorCQkJCQlmb3JlYWNoIChzdHJpbmcgbWVzc2FnZSBpbiBzdWJsaXN0KSBtZXNzYWdlcy5BZGQobWVzc2FnZSk7DQorCQkJCX0NCisJCQkJbWVzc2FnZU1hcmt1cCA9IEh0bWxNZXNzYWdlTGlzdChtZXNzYWdlcyk7DQorCQkJfQ0KKw0KKwkJCWlmIChtZXNzYWdlTWFya3VwICE9IG51bGwpDQorCQkJew0KKwkJCQlTdHJpbmdCdWlsZGVyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIobWVzc2FnZU1hcmt1cCk7DQorCQkJCXJldHVybiBzYi5Ub1N0cmluZygpOw0KKwkJCX0NCisJCQlyZXR1cm4gbnVsbDsNCisJCX0NCisNCisJCSNlbmRyZWdpb24gDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL3Bvc3RidWlsZC5iYXQgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvTmV4dXMvcG9zdGJ1aWxkLmJhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGUwZjlhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL05leHVzL3Bvc3RidWlsZC5iYXQKQEAgLTAsMCArMSwzIEBACitSRU0gJUxPQ0FMX0NBQ0hFJSBkb2Vzbid0IHdvcmsuDQorQ0QgJTQNCitDT1BZICUxJTIuKiAuLlxsb2NhbC1jYWNoZVwlMw0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9BcHAuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQXBwLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNDdkODAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQXBwLmNzCkBAIC0wLDAgKzEsMjA1IEBACisvKg0KKyogQ29weXJpZ2h0IDIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyogDQorKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyogDQorKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyogDQorKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisqLw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gVG9rZW5zIHJlcHJlc2VudGluZyBjb250ZXh0IGtleXMuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyANCisJcHVibGljIGNsYXNzIEFwcA0KKwl7DQorCQlwcml2YXRlIEFwcCgpDQorCQl7DQorCQkJLy8gTm8gbmVlZCB0byBjb25zdHJ1Y3Qgc3RhdGljIGhlbHBlciBjbGFzcw0KKwkJfQ0KKw0KKwkJI3JlZ2lvbiBQcm9wZXJ0aWVzDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIENhdGFsb2cgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBDQVRBTE9HX0tFWSA9ICJDYXRhbG9nIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgZW50cnlfa2V5IHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgRU5UUllfS0VZID0gImVudHJ5X2tleSI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIGZpcnN0X25hbWUgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBGSVJTVF9OQU1FID0gImZpcnN0X25hbWUiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBsYXN0X25hbWUgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBMQVNUX05BTUUgPSAibGFzdF9uYW1lIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgdXNlcl9uYW1lIHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgVVNFUl9OQU1FID0gInVzZXJfbmFtZSI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIGV4dGVuc2lvbiBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEVYVEVOU0lPTiA9ICJleHRlbnNpb24iOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBoaXJlZCBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEhJUkVEID0gImhpcmVkIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgaG91cnMgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBIT1VSUyA9ICJob3VycyI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIGVkaXRvciBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEVESVRPUiA9ICJlZGl0b3IiOw0KKw0KKwkJI2VuZHJlZ2lvbg0KKw0KKwkJI3JlZ2lvbiBDb21tYW5kcw0KKw0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBGUk9NX0RBVEUgPSAiZnJvbV9kYXRlIjsNCisNCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgVEhSVV9EQVRFID0gInRocnVfZGF0ZSI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIFNRTCBMSU1JVCBjbGF1c2UuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBJVEVNX0xJTUlUID0gIml0ZW1fbGltaXQiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBTUUwgT0ZGU0VUIGNsYXVzZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIElURU1fT0ZGU0VUID0gIml0ZW1fb2Zmc2V0IjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgU1FMIENPVU5UIGNsYXVzZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIElURU1fQ09VTlQgPSAiaXRlbV9jb3VudCI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIHNlbGVjdCBvbmUgY29tbWFuZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEVOVFJZID0gImVudHJ5IjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgbGlzdCBhbGwgY29tbWFuZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEVOVFJZX0xJU1QgPSAiZW50cnlfbGlzdCI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIEVudHJ5IEluaXRpYWwgY29tbWFuZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEVOVFJZX0lOSVRJQUwgPSAiZW50cnlfaW5pdGlhbCI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVG9rZW4gZm9yIExpc3QgTGFzdCBOYW1lcyBjb21tYW5kLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgTEFTVF9OQU1FX0xJU1QgPSAibGFzdF9uYW1lX2xpc3QiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBMaXN0IExhc3QgTmFtZXMgY29tbWFuZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEZJUlNUX05BTUVfTElTVCA9ICJmaXJzdF9uYW1lX2xpc3QiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBMaXN0IEV4dGVuc2lvbnMgY29tbWFuZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEVYVEVOU0lPTl9MSVNUID0gImV4dGVuc2lvbl9saXN0IjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgTGlzdCBVc2VyTmFtZXMgY29tbWFuZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFVTRVJfTkFNRV9MSVNUID0gInVzZXJfbmFtZV9saXN0IjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgTGlzdCBIaXJlIERhdGVzIGNvbW1hbmQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBISVJFRF9MSVNUID0gImhpcmVkX2xpc3QiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBMaXN0IEhvdXJzIGNvbW1hbmQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBIT1VSU19MSVNUID0gImhvdXJzX2xpc3QiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBFbnRyeSBGaW5kIGNvbW1hbmQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBFTlRSWV9GSU5EID0gImVudHJ5X2ZpbmQiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBFbnRyeSBTYXZlIGNvbW1hbmQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBFTlRSWV9TQVZFID0gImVudHJ5X3NhdmUiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBFbnRyeSBEZWxldGUgY29tbWFuZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEVOVFJZX0RFTEVURSA9ICJlbnRyeV9kZWxldGUiOw0KKw0KKwkJI2VuZHJlZ2lvbg0KKw0KKwkJI3JlZ2lvbiBNZXNzYWdlcw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBEaXJlY3RvcnkgcGFnZSB0aXRsZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIERJUkVDVE9SWV9USVRMRSA9ICJkaXJlY3RvcnlfdGl0bGUiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFRva2VuIGZvciBEaXJlY3RvcnkgZGlyZWN0b3J5IHBhZ2UgaGVhZGluZy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIERJUkVDVE9SWV9IRUFESU5HID0gImRpcmVjdG9yeV9oZWFkaW5nIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2tlbiBmb3IgRGlyZWN0b3J5IHBhZ2UgcHJvbXB0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgRElSRUNUT1JZX1BST01QVCA9ICJkaXJlY3RvcnlfcHJvbXB0IjsNCisNCisJCSNlbmRyZWdpb24NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQXBwRW50cnkuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQXBwRW50cnkuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY3YjcwYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9BcHBFbnRyeS5jcwpAQCAtMCwwICsxLDExOSBAQAorLyoNCisgKiBDb3B5cmlnaHQgMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICogDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIF9TdG9yZSBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBOZXh1cy5Db3JlOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gRXhwb3NlIGZpZWxkIGF0dHJpYnV0ZXMgYXMgcHVibGljIHByb3BlcnRpZXMuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyANCisJW1NlcmlhbGl6YWJsZV0NCisJcHVibGljIGNsYXNzIEFwcEVudHJ5IDogRW50cnlEaWN0aW9uYXJ5DQorCXsNCisNCisJCXB1YmxpYyBBcHBFbnRyeSgpDQorCQl7DQorCQkJLy8gRGVmYXVsdCBjb250c3RydWN0b3IJDQorCQl9DQorDQorCQlwdWJsaWMgQXBwRW50cnkoSURpY3Rpb25hcnkgc291cmNlcykNCisJCXsNCisJCQlBZGRBbGwoc291cmNlcyk7DQorCQl9DQorDQorCQlwdWJsaWMgQXBwRW50cnkoQXBwRW50cnkgcm93KQ0KKwkJew0KKwkJCUFkZEFsbChyb3cpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEFkZCBlYWNoIHNvdXJjZSBlbnRyeSB0byBvdXIgaW50ZXJuYWwgc3RvcmUuIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBFbnRyaWVzIHdpdGgga2V5cyB0aGF0IG1hdGNoIHRoZSBwcm9wZXJ0eSBuYW1lcyB3aWxsIGJlIGV4cG9zZWQuIA0KKwkJLy8vIE90aGVyIGVudHJpZXMgbWF5IGJlIGFkZGVkLCBidXQgY2FuIG9ubHkgYmUgcmV0cmlldmVkIHZpYSBHZXQuDQorCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCS8vLyA8cGFyYW0gbmFtZT0icm93Ij5FbnRyaWVzIHRvIGFkZDwvcGFyYW0+DQorCQkvLy8gDQorCQlwdWJsaWMgdm9pZCBBZGRBbGwoQXBwRW50cnkgcm93KQ0KKwkJew0KKwkJCUlDb2xsZWN0aW9uIGtleXMgPSByb3cuS2V5czsNCisJCQlmb3JlYWNoIChzdHJpbmcga2V5IGluIGtleXMpDQorCQkJew0KKwkJCQlBZGQoa2V5LCByb3cuR2V0KGtleSkpOw0KKwkJCX0NCisJCX0NCisNCisJCS8qDQorCQlwdWJsaWMgc3RyaW5nIFByb3BlcnR5DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIEdldChBcHAuUFJPUEVSVFkpOyB9DQorCQkJc2V0IHsgU2V0KEFwcC5QUk9QRVJUWSwgdmFsdWUpOyB9DQorCQl9DQorCQkqLw0KKw0KKwkJcHVibGljIHN0cmluZyBlbnRyeV9rZXkNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gR2V0KEFwcC5FTlRSWV9LRVkpOyB9DQorCQkJc2V0IHsgU2V0KEFwcC5FTlRSWV9LRVksIHZhbHVlKTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHN0cmluZyBmaXJzdF9uYW1lDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIEdldChBcHAuRklSU1RfTkFNRSk7IH0NCisJCQlzZXQgeyBTZXQoQXBwLkZJUlNUX05BTUUsIHZhbHVlKTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHN0cmluZyBsYXN0X25hbWUNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gR2V0KEFwcC5MQVNUX05BTUUpOyB9DQorCQkJc2V0IHsgU2V0KEFwcC5MQVNUX05BTUUsIHZhbHVlKTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHN0cmluZyBleHRlbnNpb24NCisJCXsNCisJCQlnZXQgeyByZXR1cm4gR2V0KEFwcC5FWFRFTlNJT04pOyB9DQorCQkJc2V0IHsgU2V0KEFwcC5FWFRFTlNJT04sIHZhbHVlKTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHN0cmluZyB1c2VyX25hbWUNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gR2V0KEFwcC5VU0VSX05BTUUpOyB9DQorCQkJc2V0IHsgU2V0KEFwcC5VU0VSX05BTUUsIHZhbHVlKTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHN0cmluZyBoaXJlZA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBHZXQoQXBwLkhJUkVEKTsgfQ0KKwkJCXNldCB7IFNldChBcHAuSElSRUQsIHZhbHVlKTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHN0cmluZyBob3Vycw0KKwkJew0KKwkJCWdldCB7IHJldHVybiBHZXQoQXBwLkhPVVJTKTsgfQ0KKwkJCXNldCB7IFNldChBcHAuSE9VUlMsIHZhbHVlKTsgfQ0KKwkJfQ0KKw0KKwkJcHVibGljIHN0cmluZyBlZGl0b3INCisJCXsNCisJCQlnZXQgeyByZXR1cm4gR2V0KEFwcC5FRElUT1IpOyB9DQorCQkJc2V0IHsgU2V0KEFwcC5FRElUT1IsIHZhbHVlKTsgfQ0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9BcHBFbnRyeUxpc3QuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQXBwRW50cnlMaXN0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyZWE4YzYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQXBwRW50cnlMaXN0LmNzCkBAIC0wLDAgKzEsMzggQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgTmV4dXMuQ29yZTsNCisNCituYW1lc3BhY2UgUGhvbmVCb29rLkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEltcGxlbWVudCBOZXh1cy5Db3JlLklFbnRyeUxpc3QgZm9yIEFwcEVudHJ5IG9iamVjdHMuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyANCisJcHVibGljIGNsYXNzIEFwcEVudHJ5TGlzdCA6IEFycmF5TGlzdCwgSUVudHJ5TGlzdA0KKwl7DQorCQlwdWJsaWMgb2JqZWN0IEluc2VydChzdHJpbmcga2V5KQ0KKwkJew0KKwkJCUFwcEVudHJ5IGVudHJ5ID0gbmV3IEFwcEVudHJ5KCk7DQorCQkJZW50cnkuZW50cnlfa2V5ID0ga2V5Ow0KKwkJCUluc2VydCgwLCBlbnRyeSk7DQorCQkJcmV0dXJuIGVudHJ5Ow0KKwkJfQ0KKw0KKwkJcHVibGljIHZvaWQgQWRkRW50cnkoSURpY3Rpb25hcnkgcm93KQ0KKwkJew0KKwkJCUFwcEVudHJ5IGVudHJ5ID0gbmV3IEFwcEVudHJ5KCk7DQorCQkJZm9yZWFjaCAoRGljdGlvbmFyeUVudHJ5IGNvbCBpbiByb3cpDQorCQkJew0KKwkJCQlzdHJpbmcga2V5ID0gQ29udmVydC5Ub1N0cmluZyhjb2wuS2V5KTsNCisJCQkJc3RyaW5nIHZhbHVlID0gQ29udmVydC5Ub1N0cmluZyhjb2wuVmFsdWUpOw0KKwkJCQllbnRyeS5BZGQoa2V5LCB2YWx1ZSk7DQorCQkJfQ0KKwkJCUFkZChlbnRyeSk7DQorCQl9DQorICAgICAgICANCisJCXB1YmxpYyBBcHBFbnRyeVtdIFRvQXBwRW50cnlBcnJheSgpDQorCQl7DQorCQkJcmV0dXJuIChBcHBFbnRyeVtdKVRvQXJyYXkodHlwZW9mKEFwcEVudHJ5KSk7DQorCQl9DQorCX0NCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9Db3JlL0FwcEVudHJ5TGlzdFByb2Nlc3Nvci5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9BcHBFbnRyeUxpc3RQcm9jZXNzb3IuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjlmOGUzOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9BcHBFbnRyeUxpc3RQcm9jZXNzb3IuY3MKQEAgLTAsMCArMSwxNyBAQAordXNpbmcgTmV4dXMuQ29yZTsNCit1c2luZyBOZXh1cy5Db3JlLlZhbGlkYXRvcnM7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5Db3JlDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBJbXBsZW1lbnQgTmV4dXMuQ29yZS5WYWxpZGF0b3JzLkVudHJ5TGlzdFByb2Nlc3MgZm9yIEFwcEVudHJ5TGlzdC4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlwdWJsaWMgY2xhc3MgQXBwRW50cnlMaXN0UHJvY2Vzc29yIDogRW50cnlMaXN0UHJvY2Vzc29yDQorCXsNCisJCXB1YmxpYyBvdmVycmlkZSBJRW50cnlMaXN0IE5ld0VudHJ5TGlzdCgpDQorCQl7DQorCQkJcmV0dXJuIG5ldyBBcHBFbnRyeUxpc3QoKTsNCisJCX0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQXBwVXNlclByb2ZpbGUuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQXBwVXNlclByb2ZpbGUuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQwZGFjOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9BcHBVc2VyUHJvZmlsZS5jcwpAQCAtMCwwICsxLDg0IEBACit1c2luZyBTeXN0ZW0uU2VjdXJpdHkuUHJpbmNpcGFsOw0KK3VzaW5nIFN5c3RlbS5UZXh0Ow0KK3VzaW5nIE5leHVzLkNvcmUuUHJvZmlsZTsNCisNCituYW1lc3BhY2UgUGhvbmVCb29rLkNvcmUNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEV4dGVuZCBVc2VyUHJvZmlsZSB0byBpbmNsdWRlIHByb3BlcnRpZXMgc3BlY2lmaWMgdG8gdGhpcyBhcHBsaWNhdGlvbiwgDQorCS8vLyBzdWNoIGFzIElzRWRpdG9yLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gDQorCXB1YmxpYyBjbGFzcyBBcHBVc2VyUHJvZmlsZSA6IFVzZXJQcm9maWxlDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgZmllbGQgZm9yIElzRWRpdG9yIHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgYm9vbCBfSXNFZGl0b3IgPSBmYWxzZTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJbmRpY2F0ZSB3aGV0aGVyIHVzZXIgaGFzIGVkaXRpbmcgcHJpdmVsZWdlcy4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGJvb2wgSXNFZGl0b3INCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0lzRWRpdG9yOyB9DQorCQkJc2V0IHsgX0lzRWRpdG9yID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgZmllbGQgZm9yIEVudHJ5IHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByaXZhdGUgQXBwRW50cnkgX0VudHJ5Ow0KKw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJlY29yZCBkaXJlY3RvcnkgZW50cnkgZm9yIHVzZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIEFwcEVudHJ5IEVudHJ5DQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9FbnRyeTsgfQ0KKwkJCXNldA0KKwkJCXsNCisJCQkJX0VudHJ5ID0gdmFsdWU7DQorCQkJCWlmIChfRW50cnkgIT0gbnVsbCkNCisJCQkJew0KKwkJCQkJU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7DQorCQkJCQlzYi5BcHBlbmQoX0VudHJ5LmZpcnN0X25hbWUpOw0KKwkJCQkJc2IuQXBwZW5kKCIgIik7DQorCQkJCQlzYi5BcHBlbmQoRW50cnkubGFzdF9uYW1lKTsNCisJCQkJCUZ1bGxOYW1lID0gc2IuVG9TdHJpbmcoKS5UcmltKCk7DQorCQkJCX0NCisJCQl9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBhIGZpZWxkIGZvciBGdWxsTmFtZSBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcml2YXRlIHN0cmluZyBfRnVsbE5hbWU7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmVjb3JkIHRoZSB1c2VyJ3MgZnVsbCBuYW1lIChmaXJzdCBhbmQgbGFzdCBuYW1lcykuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIHN0cmluZyBGdWxsTmFtZQ0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfRnVsbE5hbWU7IH0NCisJCQlzZXQgeyBfRnVsbE5hbWUgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEluc3RhbnRpYXRlIGZyb20gYW4gSUlkZW50aXR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iaWQiPklkZW50aXR5IHRvIGNvcHkgZm9yIHRoaXMgcHJvZmlsZS48L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHVibGljIEFwcFVzZXJQcm9maWxlKElJZGVudGl0eSBpZCkNCisJCXsNCisJCQlQcmluY2lwYWwgPSBuZXcgVXNlclByaW5jaXBhbChpZCk7DQorCQl9DQorDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9Db3JlL0Fzc2VtYmx5SW5mby5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9Bc3NlbWJseUluZm8uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVhZjk0NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9Bc3NlbWJseUluZm8uY3MKQEAgLTAsMCArMSw1NiBAQAordXNpbmcgU3lzdGVtLlJlZmxlY3Rpb247DQorLy8NCisvLyBHZW5lcmFsIEluZm9ybWF0aW9uIGFib3V0IGFuIGFzc2VtYmx5IGlzIGNvbnRyb2xsZWQgdGhyb3VnaCB0aGUgZm9sbG93aW5nIA0KKy8vIHNldCBvZiBhdHRyaWJ1dGVzLiBDaGFuZ2UgdGhlc2UgYXR0cmlidXRlIHZhbHVlcyB0byBtb2RpZnkgdGhlIGluZm9ybWF0aW9uDQorLy8gYXNzb2NpYXRlZCB3aXRoIGFuIGFzc2VtYmx5Lg0KKy8vDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlUaXRsZSgiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlEZXNjcmlwdGlvbigiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDb25maWd1cmF0aW9uKCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseUNvbXBhbnkoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5UHJvZHVjdCgiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDb3B5cmlnaHQoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5VHJhZGVtYXJrKCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseUN1bHR1cmUoIiIpXQ0KKw0KKy8vDQorLy8gVmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYW4gYXNzZW1ibHkgY29uc2lzdHMgb2YgdGhlIGZvbGxvd2luZyBmb3VyIHZhbHVlczoNCisvLw0KKy8vICAgICAgTWFqb3IgVmVyc2lvbg0KKy8vICAgICAgTWlub3IgVmVyc2lvbiANCisvLyAgICAgIEJ1aWxkIE51bWJlcg0KKy8vICAgICAgUmV2aXNpb24NCisvLw0KKy8vIFlvdSBjYW4gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyBvciB5b3UgY2FuIGRlZmF1bHQgdGhlIFJldmlzaW9uIGFuZCBCdWlsZCBOdW1iZXJzIA0KKy8vIGJ5IHVzaW5nIHRoZSAnKicgYXMgc2hvd24gYmVsb3c6DQorDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlWZXJzaW9uKCIxLjAuKiIpXQ0KKw0KKy8vDQorLy8gSW4gb3JkZXIgdG8gc2lnbiB5b3VyIGFzc2VtYmx5IHlvdSBtdXN0IHNwZWNpZnkgYSBrZXkgdG8gdXNlLiBSZWZlciB0byB0aGUgDQorLy8gTWljcm9zb2Z0IC5ORVQgRnJhbWV3b3JrIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gYXNzZW1ibHkgc2lnbmluZy4NCisvLw0KKy8vIFVzZSB0aGUgYXR0cmlidXRlcyBiZWxvdyB0byBjb250cm9sIHdoaWNoIGtleSBpcyB1c2VkIGZvciBzaWduaW5nLiANCisvLw0KKy8vIE5vdGVzOiANCisvLyAgICgqKSBJZiBubyBrZXkgaXMgc3BlY2lmaWVkLCB0aGUgYXNzZW1ibHkgaXMgbm90IHNpZ25lZC4NCisvLyAgICgqKSBLZXlOYW1lIHJlZmVycyB0byBhIGtleSB0aGF0IGhhcyBiZWVuIGluc3RhbGxlZCBpbiB0aGUgQ3J5cHRvIFNlcnZpY2UNCisvLyAgICAgICBQcm92aWRlciAoQ1NQKSBvbiB5b3VyIG1hY2hpbmUuIEtleUZpbGUgcmVmZXJzIHRvIGEgZmlsZSB3aGljaCBjb250YWlucw0KKy8vICAgICAgIGEga2V5Lg0KKy8vICAgKCopIElmIHRoZSBLZXlGaWxlIGFuZCB0aGUgS2V5TmFtZSB2YWx1ZXMgYXJlIGJvdGggc3BlY2lmaWVkLCB0aGUgDQorLy8gICAgICAgZm9sbG93aW5nIHByb2Nlc3Npbmcgb2NjdXJzOg0KKy8vICAgICAgICgxKSBJZiB0aGUgS2V5TmFtZSBjYW4gYmUgZm91bmQgaW4gdGhlIENTUCwgdGhhdCBrZXkgaXMgdXNlZC4NCisvLyAgICAgICAoMikgSWYgdGhlIEtleU5hbWUgZG9lcyBub3QgZXhpc3QgYW5kIHRoZSBLZXlGaWxlIGRvZXMgZXhpc3QsIHRoZSBrZXkgDQorLy8gICAgICAgICAgIGluIHRoZSBLZXlGaWxlIGlzIGluc3RhbGxlZCBpbnRvIHRoZSBDU1AgYW5kIHVzZWQuDQorLy8gICAoKikgSW4gb3JkZXIgdG8gY3JlYXRlIGEgS2V5RmlsZSwgeW91IGNhbiB1c2UgdGhlIHNuLmV4ZSAoU3Ryb25nIE5hbWUpIHV0aWxpdHkuDQorLy8gICAgICAgV2hlbiBzcGVjaWZ5aW5nIHRoZSBLZXlGaWxlLCB0aGUgbG9jYXRpb24gb2YgdGhlIEtleUZpbGUgc2hvdWxkIGJlDQorLy8gICAgICAgcmVsYXRpdmUgdG8gdGhlIHByb2plY3Qgb3V0cHV0IGRpcmVjdG9yeSB3aGljaCBpcw0KKy8vICAgICAgICVQcm9qZWN0IERpcmVjdG9yeSVcb2JqXDxjb25maWd1cmF0aW9uPi4gRm9yIGV4YW1wbGUsIGlmIHlvdXIgS2V5RmlsZSBpcw0KKy8vICAgICAgIGxvY2F0ZWQgaW4gdGhlIHByb2plY3QgZGlyZWN0b3J5LCB5b3Ugd291bGQgc3BlY2lmeSB0aGUgQXNzZW1ibHlLZXlGaWxlIA0KKy8vICAgICAgIGF0dHJpYnV0ZSBhcyBbYXNzZW1ibHk6IEFzc2VtYmx5S2V5RmlsZSgiLi5cXC4uXFxteWtleS5zbmsiKV0NCisvLyAgICgqKSBEZWxheSBTaWduaW5nIGlzIGFuIGFkdmFuY2VkIG9wdGlvbiAtIHNlZSB0aGUgTWljcm9zb2Z0IC5ORVQgRnJhbWV3b3JrDQorLy8gICAgICAgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzLg0KKy8vDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlEZWxheVNpZ24oZmFsc2UpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5S2V5RmlsZSgiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlLZXlOYW1lKCIiKV0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQ29tbWFuZHMvQXBwQ29tbWFuZC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9Db21tYW5kcy9BcHBDb21tYW5kLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyZGRkOWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQ29tbWFuZHMvQXBwQ29tbWFuZC5jcwpAQCAtMCwwICsxLDg0IEBACisvKg0KKyAqIENvcHlyaWdodCAyMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKiANCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQordXNpbmcgU3lzdGVtOw0KK3VzaW5nIElCYXRpc05ldC5EYXRhTWFwcGVyOw0KK3VzaW5nIE5leHVzLkNvcmU7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5Db3JlLkNvbW1hbmRzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBFeHRlbmQgUmVxdWVzdENvbW1hbmQgd2l0aCBkYXRhIGFjY2VzcyBtZXRob2RzLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gDQorCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCYXNlTWFwcGVyIDogUmVxdWVzdENvbW1hbmQNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBmaWVsZCBmb3IgTWFwcGVyIHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByaXZhdGUgU3FsTWFwcGVyIF9NYXBwZXI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRXhwb3NlIGEgcHJlY29uZmlndXJlZCBTcWxNYXBwZXIgaW5zdGFuY2UgdGhhdCBDb21tYW5kcyBjYW4gdXNlIHRvIHJ1biBzdGF0ZW1lbnRzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBDb21tYW5kcyB1c2UgTWFwcGVyIHRvIGludm9rZSBTcWxNYXAgc3RhdGVtZW50cywgc3VjaCBhcyANCisJCS8vLyA8Y29kZT4NCisJCS8vLyBvYmplY3Qgcm93ID0gTWFwcGVyLlF1ZXJ5Rm9yT2JqZWN0IChRdWVyeUlELCBjb250ZXh0KTsNCisJCS8vLyA8L2NvZGU+Lg0KKwkJLy8vIDwvcD48cD4NCisJCS8vLyBBbnkgU3FsTWFwcGVyIEFQSSBtZXRob2QgbWF5IGJlIGNhbGxlZC4gDQorCQkvLy8gPC9wPjxwPg0KKwkJLy8vIFRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIEJBc2VOZXh1c0NvbW1hbmQgaXMgdG8gdXNlIHRoZSANCisJCS8vLyBjb21tYW5kIElEIGlmIHRoZSBRdWVyeUlEIGlzIG51bGwuDQorCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCS8vLyA8cmV0dXJucz5QcmVjb25maWd1cmVkIE1hcHBlciBpbnN0YW5jZTwvcmV0dXJucz4NCisJCS8vLyANCisJCXB1YmxpYyBTcWxNYXBwZXIgTWFwcGVyDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9NYXBwZXI7IH0NCisJCQlzZXQgeyBfTWFwcGVyID0gdmFsdWU7IH0NCisNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJbmRpY2F0ZSB3aGV0aGVyIHN0cmluZyBpcyBudWxsIG9yIHplcm8gbGVuZ3RoLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iaW5wdXQiPklucHV0IHRvIHZhbGlkYXRlPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5UcnVlIGlmIHN0cmluZyBpcyBueXVsbCBvciB6ZXJvIGxlbmd0aDwvcmV0dXJucz4NCisJCS8vLyANCisJCXB1YmxpYyBib29sIElzRW1wdHkoc3RyaW5nIGlucHV0KQ0KKwkJew0KKwkJCXJldHVybiAoKGlucHV0ID09IG51bGwpIHx8IChpbnB1dC5FcXVhbHMoU3RyaW5nLkVtcHR5KSkpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENyZWF0ZSBuZXcgR2xvYmFsIFVuaXZlcnNhbCBJZGVudGlmZXIgYXMgYSBmb3JtYXR0ZWQgc3RyaW5nLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmV0dXJucz5TdHJpbmcgcmVwcmVzZW50aW5nIGEgbmV3IEdVSUQ8L3JldHVybnM+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gTm8gdHdvIGNhbGxzIHRvIHRoaXMgbWV0aG9kIHdpbGwgZXZlciByZXR1cm4gZHVwbGljYXRlIHN0cmluZ3MuDQorCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCS8vLyANCisJCXB1YmxpYyBzdHJpbmcgR3VpZFN0cmluZygpDQorCQl7DQorCQkJR3VpZCBndWlkID0gR3VpZC5OZXdHdWlkKCk7DQorCQkJc3RyaW5nIGdzID0gZ3VpZC5Ub1N0cmluZygpOw0KKwkJCXJldHVybiBnczsNCisJCX0NCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQ29tbWFuZHMvQmFzZUNvbW1hbmQuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQ29tbWFuZHMvQmFzZUNvbW1hbmQuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA5ZjllYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9Db21tYW5kcy9CYXNlQ29tbWFuZC5jcwpAQCAtMCwwICsxLDE2MyBAQAordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5UZXh0Ow0KK3VzaW5nIEFnaWxpdHkuQ29yZTsNCit1c2luZyBJQmF0aXNOZXQuRGF0YU1hcHBlcjsNCit1c2luZyBOZXh1cy5Db3JlOw0KK3VzaW5nIFNwcmluZy5PYmplY3RzLkZhY3Rvcnk7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5Db3JlLkNvbW1hbmRzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBQcm92aWRlIGFuIGFidHJhY3QgZXh0ZW5zaW9uIG9mIEJhc2VOZXh1c0NvbW1hbmQgDQorCS8vLyB3aXRoIHNoYXJlZCBtZW1iZXJzIGZvciBXTkUgQ29tbWFuZHMsIA0KKwkvLy8gaW5jbHVkaW5nIGEgU3FsTWFwcGVyIGZhY3RvcnkgbWV0aG9kLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gPHJlbWFya3M+PHA+DQorCS8vLyBTdXBlcmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgYSBOZXh1c0V4ZWN1dGUgbWV0aG9kIChpbmhlcml0ZWQgZnJvbSBCYXNlTmV4dXNDb21tYW5kLg0KKwkvLy8gPC9wPjxwPg0KKwkvLy8gQ29uY3JldGUgc3ViY2xhc3NlcyBhcmUgZXhwZWN0ZWQgdG8gYmUgY3JlYXRlZCBieSBhIElPQyBDb250YWluZXIsIGxpa2UgU3ByaW5nLk5FVC4gDQorCS8vLyBNb3N0IGNvbmNyZXRlIHN1YmNsYXNzZXMgd2lsbCBiZSAiZGVjb3JhdG9yIiBjbGFzc2VzIGRlc2lnbmVkIHRvIGJlaGF2ZSANCisJLy8vIGRpZmZlcmVudGx5IGJhc2VkIG9uIHdoYXQgcHJvcGVydGllcyBhcmUgc2V0IHdoZW4gdGhlIGNsYXNzIGlzIGNyZWF0ZWQuIA0KKwkvLy8gT3RoZXJzIG1heSBiZSBjdXN0b20gY2xhc3NlcyB3aXRoIHByZWRlZmluZWQgYmVoYXZpb3JzLiANCisJLy8vIDwvcD48cD4NCisJLy8vIFRoZSBTcHJpbmcgY2F0YWxvZyBwcm92aWRlcyB0aGUgdmVyc2F0aWxpdHkgd2UgbmVlZCB0byBtaXgtYW5kLW1hdGNoIA0KKwkvLy8gYmFzZSBjb21tYW5kcyB3aXRoIGN1c3RvbSBjb21tYW5kcywgYXMgbmVlZGVkLCANCisJLy8vIGFuZCBjYWxsIGVpdGhlciBmcm9tIHRoZSBjbGllbnQgaW4gZXhhY3RseSB0aGUgc2FtZSB3YXkuDQorCS8vLyA8L3A+PHA+DQorCS8vLyBOT1RFIHRoYXQgc3ViY2xhc3NlcyBzaG91bGQgTk9UIHVzZSB0aGUgT3V0Y29tZSBwcm9wZXJ0eSBvZiANCisJLy8vIHRoZSBOZXh1cyBjb250ZXh0IHNpbmNlIHRoZXkgbWF5IGJlIHN1YmNvbW1hbmRzIGluIGEgQ2hhaW4uIA0KKwkvLy8gQWxsIEJhc2VDb21tYW5kcyBzaG91bGQgdXNlIHRoZSBpZGlvbSANCisJLy8vIDxjb2RlPmNvbnRleHRbSURdID0gb2JqZWN0PC9jb2RlPg0KKwkvLy8gdG8gc3RvcmUgb3V0cHV0Lg0KKwkvLy8gPC9wPjxwPg0KKwkvLy8gTk9URSBhZnRlciB1c2luZyB0aGUgUmVTaGFwZXIgY29kZSByZWZvcm1hdHRlciwgDQorCS8vLyB0aGUgTWFwcGVyIG1ldGhvZCBuZWVkcyB0byBiZSBlZGl0ZWQuIA0KKwkvLy8gUmVTaGFycGVyIHJlbW92ZXMgYW4gYWJzb2x1dGUgcmVmZXJlbmNlIHRoYXQgd2UgYWN0dWFsbHkgbmVlZC4gDQorCS8vLyAoT3VyIE1hcHBlciBtZXRob2QgY2FsbHMgdGhlIElCYXRpc05ldCBNYXBwZXIgbWV0aG9kLikNCisJLy8vIFRoZSBjb3JyZWN0IGxpbmUgb2YgY29kZSBpcyBtYWludGFpbmVkIGFzIGEgY29tbWVudCwgDQorCS8vLyBzbyB0aGF0IGl0IGNhbiA8Yj5jb3BpZWQ8L2I+IG92ZXIgdGhlIHJlZm9ybWF0dGVkIHZlcnNpb24uIA0KKwkvLy8gPC9wPjwvcmVtYXJrcz4NCisJcHVibGljIGFic3RyYWN0IGNsYXNzIEJhc2VDb21tYW5kIDogUmVxdWVzdENvbW1hbmQsIElPYmplY3ROYW1lQXdhcmUNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIElmIGFuIElEIGlzIG5vdCBwcm92aWRlZCwgZGVmYXVsdCB0byB0aGUgT2JqZWN0TmFtZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIElEDQorCQl7DQorCQkJZ2V0DQorCQkJew0KKwkJCQlzdHJpbmcgX0lEID0gYmFzZS5JRDsNCisJCQkJaWYgKG51bGwgPT0gX0lEKSByZXR1cm4gT2JqZWN0TmFtZTsNCisJCQkJZWxzZSByZXR1cm4gX0lEOw0KKwkJCX0NCisJCQlzZXQgeyBiYXNlLklEID0gdmFsdWU7IH0NCisJCX0NCisNCisJCXByaXZhdGUgc3RyaW5nIF9PYmplY3ROYW1lOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBmaWVsZCBmb3IgdGhlIFNwcmluZyBvYmplY3QgbmFtZSAoc2V0IGJ5IFNwcmluZykuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIHN0cmluZyBPYmplY3ROYW1lDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9PYmplY3ROYW1lOyB9DQorCQkJc2V0IHsgX09iamVjdE5hbWUgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBmaWVsZCBmb3IgdGhlIFJlbWFyayBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIHN0cmluZyBfUmVtYXJrOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEFjY2VwdCBhbiBhcmJpdHJhcnkgY29tbWVudCBhYm91dCBhIGNvbW1hbmQgDQorCQkvLy8gLS0gbW9yZSBmb3IgdXNlIGluIHRoZSBYTUwgZG9jdW1lbnQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIHN0cmluZyBSZW1hcmsNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX1JlbWFyazsgfQ0KKwkJCXNldCB7IF9SZW1hcmsgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBmaWVsZCBmb3IgdGhlIE1hcHBlciBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcml2YXRlIFNxbE1hcHBlciBfTWFwcGVyOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEV4cG9zZSBhIHByZWNvbmZpZ3VyZWQgU3FsTWFwcGVyIGluc3RhbmNlIHRoYXQgQ29tbWFuZHMgY2FuIHVzZSB0byBydW4gc3RhdGVtZW50cy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gQ29tbWFuZHMgdXNlIE1hcHBlciB0byBpbnZva2UgU3FsTWFwIHN0YXRlbWVudHMsIHN1Y2ggYXMgDQorCQkvLy8gPGNvZGU+DQorCQkvLy8gb2JqZWN0IHJvdyA9IE1hcHBlciAoKS5RdWVyeUZvck9iamVjdCAoUXVlcnlJRCwgY29udGV4dCk7DQorCQkvLy8gPC9jb2RlPi4NCisJCS8vLyA8L3A+PHA+DQorCQkvLy8gQW55IFNxbE1hcHBlciBBUEkgbWV0aG9kIG1heSBiZSBjYWxsZWQuIA0KKwkJLy8vIDwvcD48cD4NCisJCS8vLyBUaGUgZGVmYXVsdCBiZWhhdmlvciBvZiBCQXNlTmV4dXNDb21tYW5kIGlzIHRvIHVzZSB0aGUgDQorCQkvLy8gY29tbWFuZCBJRCBpZiB0aGUgUXVlcnlJRCBpcyBudWxsLg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQkvLy8gPHJldHVybnM+UHJlY29uZmlndXJlZCBNYXBwZXI8L3JldHVybnM+DQorCQkvLy8gDQorCQlwdWJsaWMgU3FsTWFwcGVyIE1hcHBlcg0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfTWFwcGVyOyB9DQorCQkJc2V0IHsgX01hcHBlciA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5kaWNhdGUgd2hldGhlciBzdHJpbmcgaXMgbnVsbCBvciB6ZXJvIGxlbmd0aC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImlucHV0Ij5JbnB1dCB0byB2YWxpZGF0ZTwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+VHJ1ZSBpZiBzdHJpbmcgaXMgbnl1bGwgb3IgemVybyBsZW5ndGg8L3JldHVybnM+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgYm9vbCBJc0VtcHR5KHN0cmluZyBpbnB1dCkNCisJCXsNCisJCQlyZXR1cm4gKChpbnB1dCA9PSBudWxsKSB8fCAoaW5wdXQuRXF1YWxzKFN0cmluZy5FbXB0eSkpKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDcmVhdGUgbmV3IEdsb2JhbCBVbml2ZXJzYWwgSWRlbnRpZmVyIGFzIGEgZm9ybWF0dGVkIHN0cmluZy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJldHVybnM+U3RyaW5nIHJlcHJlc2VudGluZyBhIG5ldyBHVUlEPC9yZXR1cm5zPg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIE5vIHR3byBjYWxscyB0byB0aGlzIG1ldGhvZCB3aWxsIGV2ZXIgcmV0dXJuIGR1cGxpY2F0ZSBzdHJpbmdzLg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgc3RyaW5nIEd1aWRTdHJpbmcoKQ0KKwkJew0KKwkJCUd1aWQgZ3VpZCA9IEd1aWQuTmV3R3VpZCgpOw0KKwkJCXN0cmluZyBncyA9IGd1aWQuVG9TdHJpbmcoKTsNCisJCQlyZXR1cm4gZ3M7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRG9jdW1lbnQgdGhlIHdpbGRjYXJkIGNoYXJhY3RlciB1c2VkIGJ5IFNRTCBxdWVyaWVzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgV0lMRENBUkQgPSAiJSI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJlcGFyZSBhbiBhdHRyaWJ1dGUgZm9yIHVzZSB3aXRoIGEgU1FMIHdpbGRjYXJkICgiTElLRSIpIG9wZXJhdGlvbi4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gQSB3aWxkY2FyZCBpcyBwcmVwZW5kZWQgYW5kIGFwcGVuZGVkIGZvciBhIGZ1bGwsIHNjYW4tYWNyb3NzIG1hdGNoLCANCisJCS8vLyBzbyB0aGF0IHRoZSBzdHJpbmcgd2lsbCBmb3VuZCBpbiBhbnkgcGFydCBvZiB0aGUgZmllbGQuDQorCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+Q29udGV4dCB3aXRoIGF0dHJpYnV0ZSB0byBlc2NhcGU8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJpZCI+TmFtZSBvZiBhdHRyaWJ1dGUgdG8gZXNjYXBlPC9wYXJhbT4NCisJCXByb3RlY3RlZCB2b2lkIExpa2VNZShJQ29udGV4dCBjb250ZXh0LCBzdHJpbmcgaWQpDQorCQl7DQorCQkJc3RyaW5nIHBhcmFtID0gY29udGV4dFtpZF0gYXMgc3RyaW5nOw0KKwkJCWlmIChudWxsICE9IHBhcmFtKQ0KKwkJCXsNCisJCQkJU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKFdJTERDQVJEKTsNCisJCQkJc2IuQXBwZW5kKHBhcmFtKTsNCisJCQkJc2IuQXBwZW5kKFdJTERDQVJEKTsNCisJCQkJY29udGV4dFtpZF0gPSBzYi5Ub1N0cmluZygpOw0KKwkJCX0NCisJCX0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQ29tbWFuZHMvQmFzZUNvdW50LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9Db3JlL0NvbW1hbmRzL0Jhc2VDb3VudC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTQwZDllCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9Db3JlL0NvbW1hbmRzL0Jhc2VDb3VudC5jcwpAQCAtMCwwICsxLDE3IEBACit1c2luZyBOZXh1cy5Db3JlOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZS5Db21tYW5kcw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gSW52b2tlIGEgcXVlcnkgdGhhdCByZXR1cm5zIHRoZSBjb3VudCBvZiBhIHJlc3VsdCBzZXQuDQorCS8vLyA8L3N1bW1hcnk+DQorCXB1YmxpYyBjbGFzcyBCYXNlQ291bnQgOiBCYXNlTWFwcGVyDQorCXsNCisJCXB1YmxpYyBvdmVycmlkZSBib29sIFJlcXVlc3RFeGVjdXRlKElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KQ0KKwkJew0KKwkJCW9iamVjdCByZXN1bHQgPSBNYXBwZXIuUXVlcnlGb3JPYmplY3QoUXVlcnlJRCwgY29udGV4dCk7DQorCQkJY29udGV4dFtBcHAuSVRFTV9DT1VOVF0gPSByZXN1bHQ7DQorCQkJcmV0dXJuIENPTlRJTlVFOw0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9Db21tYW5kcy9CYXNlRW50cnkuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQ29tbWFuZHMvQmFzZUVudHJ5LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlNGJhODMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQ29tbWFuZHMvQmFzZUVudHJ5LmNzCkBAIC0wLDAgKzEsNDEgQEAKKy8qDQorICogQ29weXJpZ2h0IDIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyAqIA0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKiANCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqIA0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8NCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgTmV4dXMuQ29yZTsNCisNCituYW1lc3BhY2UgUGhvbmVCb29rLkNvcmUuQ29tbWFuZHMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEV4ZWN1dGUgZGF0YWJhc2Ugc3RhdGVtZW50IGluZGljYXRlZCBieSBRdWVyeUlEIA0KKwkvLy8gZm9yIGEgc2luZ2xlIG9iamVjdCwgDQorCS8vLyByZXR1cm5pbmcgZWFjaCBhdHRyaWJ1dGUgaW4gdGhlIG1haW4gY29udGV4dC4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlwdWJsaWMgY2xhc3MgQmFzZUVudHJ5IDogQmFzZU1hcHBlcg0KKwl7DQorCQlwdWJsaWMgb3ZlcnJpZGUgYm9vbCBSZXF1ZXN0RXhlY3V0ZShJUmVxdWVzdENvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQlvYmplY3QgbyA9IE1hcHBlci5RdWVyeUZvck9iamVjdChRdWVyeUlELCBjb250ZXh0KTsNCisJCQljb250ZXh0W0lEXSA9IG87DQorCQkJSURpY3Rpb25hcnkgZW50cnkgPSBvIGFzIElEaWN0aW9uYXJ5Ow0KKwkJCWZvcmVhY2ggKERpY3Rpb25hcnlFbnRyeSBlIGluIGVudHJ5KQ0KKwkJCXsNCisJCQkJY29udGV4dFtlLktleV0gPSBlLlZhbHVlOw0KKwkJCX0NCisJCQlyZXR1cm4gQ09OVElOVUU7DQorCQl9DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9Db3JlL0NvbW1hbmRzL0Jhc2VGaWx0ZXJMaXN0LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9Db3JlL0NvbW1hbmRzL0Jhc2VGaWx0ZXJMaXN0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3NzRiNTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQ29tbWFuZHMvQmFzZUZpbHRlckxpc3QuY3MKQEAgLTAsMCArMSw0MSBAQAorLyoNCisgKiBDb3B5cmlnaHQgMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICogDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqIA0KKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICogDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBOZXh1cy5Db3JlOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZS5Db21tYW5kcw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gRXhlY3V0ZSBkYXRhYmFzZSBzdGF0ZW1lbnQgaW5kaWNhdGVkIGJ5IFF1ZXJ5SUQgDQorCS8vLyBhbmQgd3JhcCByZXN1bHQgaW4gS2V5VmFsdWUgb2JqZWN0cyANCisJLy8vIHNvIHRoYXQgbGlzdHMgY2FuIGJlIGRpc3BsYXllZCBieSBzdGFuZGFyZCBtZXRob2RzLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gDQorCXB1YmxpYyBjbGFzcyBCYXNlRmlsdGVyTGlzdCA6IEJhc2VNYXBwZXINCisJew0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgUmVxdWVzdEV4ZWN1dGUoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJSUxpc3Qgcm93cyA9IE1hcHBlci5RdWVyeUZvckxpc3QoUXVlcnlJRCwgbnVsbCk7DQorCQkJSUtleVZhbHVlTGlzdCBsaXN0ID0gbmV3IEtleVZhbHVlTGlzdCgpOw0KKwkJCWZvcmVhY2ggKG9iamVjdCBrZXkgaW4gcm93cykNCisJCQl7DQorCQkJCWxpc3QuQWRkKG5ldyBLZXlWYWx1ZShrZXkuVG9TdHJpbmcoKSwga2V5KSk7DQorCQkJfQ0KKwkJCWNvbnRleHRbSURdID0gbGlzdDsNCisJCQlyZXR1cm4gQ09OVElOVUU7DQorCQl9DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9Db3JlL0NvbW1hbmRzL0Jhc2VMaXN0LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9Db3JlL0NvbW1hbmRzL0Jhc2VMaXN0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlOTFkODIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQ29tbWFuZHMvQmFzZUxpc3QuY3MKQEAgLTAsMCArMSwxMjIgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgTmV4dXMuQ29yZTsNCit1c2luZyBQaG9uZUJvb2suQ29yZTsNCisNCituYW1lc3BhY2UgUGhvbmVCb29rLkNvcmUuQ29tbWFuZHMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIFJ1biB0aGUgc2VsZWN0IHF1ZXJ5IGluZGljYXRlZCBieSBRdWVyeUlELCANCisJLy8vIGZpcnN0IGVzY2FwaW5nIGFueSBMaWtlSURzIGFuZCBleHRlbmRpbmcgYW55IGRhdGUgcmFuZ2VzLA0KKwkvLy8gYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIGFuIElMaXN0LCANCisJLy8vIDwvc3VtbWFyeT4NCisJcHVibGljIGNsYXNzIEJhc2VMaXN0IDogQmFzZUNvbW1hbmQNCisJew0KKwkJcHJpdmF0ZSBJTGlzdCBfTGlrZUlEcyA9IG51bGw7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gTmFtZXMgb2Yga2V5IGZpZWxkcyB0byBlc2NhcGUgZm9yIGEgImxpa2UiIHNlYXJjaC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgSUxpc3QgTGlrZUlEcw0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfTGlrZUlEczsgfQ0KKwkJCXNldCB7IF9MaWtlSURzID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBHZW5lcmF0ZSBhbiBhcnJheSBmcm9tIHRoZSBJRHMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZXR1cm5zPkFycmF5IG9mIExpa2VJRHM8L3JldHVybnM+DQorCQlwcm90ZWN0ZWQgc3RyaW5nW10gR2V0QXJyYXkoc3RyaW5nIElEcykNCisJCXsNCisJCQlzdHJpbmcgY3N2ID0gSURzOw0KKwkJCWJvb2wgbm9MaWtlID0gKChudWxsID09IGNzdikgfHwgKHN0cmluZy5FbXB0eS5FcXVhbHMoY3N2KSkpOw0KKwkJCWlmIChub0xpa2UpDQorCQkJCXJldHVybiBuZXcgc3RyaW5nWzBdOw0KKwkJCWVsc2UNCisJCQl7DQorCQkJCXN0cmluZ1tdIF9BcnJheSA9IGNzdi5TcGxpdCgnLCcpOw0KKwkJCQlyZXR1cm4gX0FycmF5Ow0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBEb2N1bWVudCB0aGUgbGFzdCBzZWNvbmQgb2YgdGhlIGRheSANCisJCS8vLyBzbyBhcyB0byBjYWxjdWxhdGUgdmFsdWVzIGZvciBjb25jZXB0cyBsaWtlIHRvZGF5IGFuZCB0b21vcnJvdy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIHN0cmluZyBMQVNUX1RJQ0sgPSAiIDIzOjU5IjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJZiBUaHJ1RGF0ZSBpcyBzZXQgdG8gdGhlIG1pbmltdW0gdGltZSAoMDA6MDApLCANCisJCS8vLyBzZXQgdG8gdGhlIG1heGltdW0gdGltZSBpbnN0ZWFkICgyMzo1OSkuIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+PC9wYXJhbT4NCisJCXByaXZhdGUgdm9pZCBFeHRlbmRUaHJ1RGF0ZShJUmVxdWVzdENvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQlib29sIGhhdmUgPSBjb250ZXh0LkNvbnRhaW5zKEFwcC5USFJVX0RBVEUpOw0KKwkJCWlmICghaGF2ZSkgcmV0dXJuOw0KKwkJCURhdGVUaW1lIHRocnVEYXRlID0gRGF0ZVRpbWUuTWluVmFsdWU7DQorCQkJdHJ5DQorCQkJew0KKwkJCQl0aHJ1RGF0ZSA9IChEYXRlVGltZSkgY29udGV4dFtBcHAuVEhSVV9EQVRFXTsNCisJCQl9DQorCQkJY2F0Y2ggKEV4Y2VwdGlvbiBlKQ0KKwkJCXsNCisJCQkJaWYgKGUgIT0gbnVsbCkgcmV0dXJuOyAvLyBQbGFjYXRlIFJlc2hhcnBlcg0KKwkJCX0NCisJCQlib29sIGRlZmF1bHRUaW1lID0gKHRocnVEYXRlLkhvdXIgPT0gMCkgJiYgKHRocnVEYXRlLk1pbnV0ZSA9PSAwKSAmJiAodGhydURhdGUuU2Vjb25kID09IDApICYmDQorCQkJCSh0aHJ1RGF0ZS5NaWxsaXNlY29uZCA9PSAwKTsNCisJCQlpZiAoZGVmYXVsdFRpbWUpDQorCQkJew0KKwkJCQlzdHJpbmcgc3RyVGhydURhdGUgPSB0aHJ1RGF0ZS5Ub1Nob3J0RGF0ZVN0cmluZygpICsgTEFTVF9USUNLOw0KKwkJCQlEYXRlVGltZSBuZXdUaHJ1RGF0ZSA9IENvbnZlcnQuVG9EYXRlVGltZShzdHJUaHJ1RGF0ZSk7DQorCQkJCWNvbnRleHQuUmVtb3ZlKEFwcC5USFJVX0RBVEUpOw0KKwkJCQljb250ZXh0LkFkZChBcHAuVEhSVV9EQVRFLCBuZXdUaHJ1RGF0ZSk7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByZXBhcmUgc3BlY2lhbCBhdHRyaWJ1dGVzIGZvciB0aGUgcXVlcnkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5UaGUgY29udGV4dCB3ZSBhcmUgcHJvY2Vzc2luZzwvcGFyYW0+DQorCQlwcm90ZWN0ZWQgdm9pZCBQcmVQcm9jZXNzKElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KQ0KKwkJew0KKwkJCS8vIEVzY2FwZSBhbnkgImxpa2UiIGZpZWxkcw0KKwkJCUlMaXN0IGxpa2VzID0gTGlrZUlEczsNCisJCQlpZiAobGlrZXMgIT0gbnVsbCkNCisJCQl7DQorCQkJCUlFbnVtZXJhdG9yIGUgPSBsaWtlcy5HZXRFbnVtZXJhdG9yKCk7DQorCQkJCXdoaWxlIChlLk1vdmVOZXh0KCkpDQorCQkJCQlMaWtlTWUoY29udGV4dCwgZS5DdXJyZW50IGFzIHN0cmluZyk7DQorCQkJfQ0KKw0KKwkJCS8vIEV4dGVuZCBhbnkgInRocnVfZGF0ZSIgdG8gbWlkbmlnaHQNCisJCQlFeHRlbmRUaHJ1RGF0ZShjb250ZXh0KTsNCisNCisJCQkvLyBFbnN1cmUgdGhhdCBsaXN0X2l0ZW0gYW5kIGxpc3Rfb2Zmc2V0IGFyZSBudW1lcmljDQorCQkJb2JqZWN0IGxpbWl0ID0gY29udGV4dFtBcHAuSVRFTV9MSU1JVF07DQorCQkJaWYgKGxpbWl0ICE9IG51bGwpDQorCQkJew0KKwkJCQljb250ZXh0W0FwcC5JVEVNX0xJTUlUXSA9IENvbnZlcnQuVG9JbnQzMihsaW1pdCk7DQorCQkJCW9iamVjdCBvZmZzZXQgPSBjb250ZXh0W0FwcC5JVEVNX09GRlNFVF07DQorCQkJCWNvbnRleHRbQXBwLklURU1fT0ZGU0VUXSA9IENvbnZlcnQuVG9JbnQzMihvZmZzZXQpOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgZGVmYXVsdCwgY29udmVuaWVuY2UgaW1wbGVtZW50YXRpb24gdGhhdCB3aWxsIHJ1biBhICJRdWVyeUZvckxpc3QiIA0KKwkJLy8vIHVzaW5nIGEgZGF0YSBtYXBwaW5nIHN0YXRlbWVudCBvZiB0aGUgc2FtZSBJRCBhcyB0aGUgQ29tbWFuZDsgDQorCQkvLy8gb3ZlcnJpZGUgYXMgbmVlZGVkLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+VGhlIElOZXh1c0NvbnRleHQgd2UgYXJlIHByb2Nlc3NpbmcuPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5DT05USU5VRSwgaWYgYW4gRXhjZXB0aW9uIGlzIG5vdCB0aHJvd24uPC9yZXR1cm5zPg0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgUmVxdWVzdEV4ZWN1dGUoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJUHJlUHJvY2Vzcyhjb250ZXh0KTsNCisNCisJCQlJTGlzdCByb3dzID0gTWFwcGVyLlF1ZXJ5Rm9yTGlzdChRdWVyeUlELCBjb250ZXh0KTsNCisJCQljb250ZXh0W0lEXSA9IHJvd3M7DQorCQkJcmV0dXJuIENPTlRJTlVFOw0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9Db21tYW5kcy9CYXNlU2F2ZS5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9Db21tYW5kcy9CYXNlU2F2ZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODFmZGFjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9Db3JlL0NvbW1hbmRzL0Jhc2VTYXZlLmNzCkBAIC0wLDAgKzEsOTIgQEAKK3VzaW5nIE5leHVzLkNvcmU7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5Db3JlLkNvbW1hbmRzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBTdG9yZSBhbiBlbnRpdHkgZm9yIGZ1dHVyZSByZWZlcmVuY2UuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyANCisJcHVibGljIGNsYXNzIEJhc2VTYXZlIDogQmFzZU1hcHBlcg0KKwl7DQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBhIGZpZWxkIGZvciBLZXlJRCBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcml2YXRlIHN0cmluZyBfS2V5SUQgPSBudWxsOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJlY29yZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBlbnRpdHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIHN0cmluZyBLZXlJRA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfS2V5SUQ7IH0NCisJCQlzZXQgeyBfS2V5SUQgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBmaWVsZCBmb3IgSW5zZXJ0SUQgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHJpdmF0ZSBzdHJpbmcgX0luc2VydElEID0gbnVsbDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZWNvcmQgdGhlIG5hbWUgb2YgdGhlICJpbnNlcnQiIG1hcHBpbmcgZm9yIHRoZSBlbnRpdHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIHN0cmluZyBJbnNlcnRJRA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfSW5zZXJ0SUQ7IH0NCisJCQlzZXQgeyBfSW5zZXJ0SUQgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBmaWVsZCBmb3IgVXBkYXRlSUQgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSBzdHJpbmcgX1VwZGF0ZUlEID0gbnVsbDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZWNvcmQgdGhlIG5hbWUgb2YgdGhlICJ1cGRhdGUiIG1hcHBpbmcgZm9yIHRoZSBlbnRpdHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIHN0cmluZyBVcGRhdGVJRA0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfVXBkYXRlSUQ7IH0NCisJCQlzZXQgeyBfVXBkYXRlSUQgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEluc2VydCBvciB1cGRhdGUgYW4gZW50aXR5IHRvIHRoZSBwZXJzaXN0ZW50IHN0b3JlLiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFyaz48cD4NCisJCS8vLyBJZiB0aGUgImZpZWxkSUQiIGlzIGVtcHR5LCB1c2UgdGhlIGluc2VydElEIHN0YXRlbWVudCwgDQorCQkvLy8gb3RoZXJ3aXNlLCB1c2UgdGhlIHVwZGF0ZUlEIHN0YXRlbWVudC4NCisJCS8vLyA8L3A+PC9yZW1hcms+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRleHQiPlRoZSBJTmV4dXNDb250ZXh0IHdlIGFyZSBwcm9jZXNzaW5nLjwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImZpZWxkSUQiPlRoZSBuYW1lIG9mIHRoZSBrZXkgZmllbGQuPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iaW5zZXJ0SUQiPlRoZSBuYW1lIG9mIHRoZSAiaW5zZXJ0IiBtYXBwaW5nIGZvciB0aGUgRW50aXR5LjwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9InVwZGF0ZUlEIj5UaGUgbmFtZSBvZiB0aGUgInVwZGF0ZSIgbWFwcGluZyBmb3IgdGhlIEVudGl0eS48L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPkZhbHNlPC9yZXR1cm5zPg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIGJvb2wgU2F2ZShJUmVxdWVzdENvbnRleHQgY29udGV4dCwgc3RyaW5nIGZpZWxkSUQsIHN0cmluZyBpbnNlcnRJRCwgc3RyaW5nIHVwZGF0ZUlEKQ0KKwkJew0KKwkJCWJvb2wgaW5zZXJ0ID0gSXNFbXB0eShjb250ZXh0W2ZpZWxkSURdIGFzIHN0cmluZyk7DQorDQorCQkJaWYgKGluc2VydCkNCisJCQl7DQorCQkJCWNvbnRleHRbZmllbGRJRF0gPSBHdWlkU3RyaW5nKCk7DQorCQkJCU1hcHBlci5JbnNlcnQoaW5zZXJ0SUQsIGNvbnRleHQpOw0KKwkJCX0NCisJCQllbHNlDQorCQkJCU1hcHBlci5VcGRhdGUodXBkYXRlSUQsIGNvbnRleHQpOw0KKw0KKwkJCXJldHVybiBDT05USU5VRTsNCisJCX0NCisNCisJCXB1YmxpYyBvdmVycmlkZSBib29sIFJlcXVlc3RFeGVjdXRlKElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KQ0KKwkJew0KKwkJCXJldHVybiBTYXZlKGNvbnRleHQsIEtleUlELCBJbnNlcnRJRCwgVXBkYXRlSUQpOw0KKwkJfQ0KKw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9Db21tYW5kcy9FbnRyeUluaXRpYWwuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQ29tbWFuZHMvRW50cnlJbml0aWFsLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzMDgzYjAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvQ29tbWFuZHMvRW50cnlJbml0aWFsLmNzCkBAIC0wLDAgKzEsNDYgQEAKK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBOZXh1cy5Db3JlOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZS5Db21tYW5kcw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gQ3JlYXRlIGxpc3Qgb2YgaW5pdGlhbCBsZXR0ZXJzIGZvciBGYWNpbGl0eSBOYW1lcy4NCisJLy8vIDwvc3VtbWFyeT4NCisJcHVibGljIGNsYXNzIEVudHJ5SW5pdGlhbCA6IEJhc2VNYXBwZXINCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIERvY3VtZW50IHRva2VuIHJlcHJlc2VudGluZyBtYXRjaCBhbGwgZW50cmllcy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEFMTCA9ICJbKl0iOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIERvY3VtZW50IHRoZSB3aWxkY2FyZCBjaGFyYWN0ZXIgdXNlZCBieSBTUUwgcXVlcmllcy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFdJTERDQVJEID0gIiUiOw0KKw0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgUmVxdWVzdEV4ZWN1dGUoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJY29uc3Qgc3RyaW5nIFpFUk8gPSAiMCI7DQorDQorCQkJc3RyaW5nW10gaW5wdXQgPSB7DQorCQkJCSJBIiwgIkIiLCAiQyIsICJEIiwgIkUiLCAiRiIsICJHIiwgIkgiLCAiSSIsICJKIiwNCisJCQkJIksiLCAiTCIsICJNIiwgIk4iLCAiTyIsICJQIiwgIlEiLCAiUiIsICJTIiwgIlQiLA0KKwkJCQkiVSIsICJWIiwgIlciLCAiWCIsICJZIiwgIloiDQorCQkJfTsNCisNCisJCQlJTGlzdCBvdXRwdXQgPSBuZXcgQXJyYXlMaXN0KDI2KTsNCisNCisJCQlmb3JlYWNoIChzdHJpbmcgbGV0dGVyIGluIGlucHV0KQ0KKwkJCXsNCisJCQkJc3RyaW5nIGluaXRpYWwgPSBsZXR0ZXIgKyBXSUxEQ0FSRDsNCisJCQkJb2JqZWN0IHJlc3VsdCA9IE1hcHBlci5RdWVyeUZvck9iamVjdChRdWVyeUlELCBpbml0aWFsKTsNCisJCQkJaWYgKFpFUk8uRXF1YWxzKHJlc3VsdCkpIGNvbnRpbnVlOw0KKwkJCQlvdXRwdXQuQWRkKGxldHRlcik7DQorCQkJfQ0KKw0KKwkJCW91dHB1dC5BZGQoQUxMKTsNCisJCQljb250ZXh0Lk91dGNvbWUgPSBvdXRwdXQ7DQorCQkJcmV0dXJuIENPTlRJTlVFOw0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9Db3JlLmNzcHJvaiBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9Db3JlLmNzcHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDk1ZmIwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9Db3JlL0NvcmUuY3Nwcm9qCkBAIC0wLDAgKzEsMTk1IEBACis8VmlzdWFsU3R1ZGlvUHJvamVjdD4NCisgICAgPENTSEFSUA0KKyAgICAgICAgUHJvamVjdFR5cGUgPSAiTG9jYWwiDQorICAgICAgICBQcm9kdWN0VmVyc2lvbiA9ICI3LjEwLjMwNzciDQorICAgICAgICBTY2hlbWFWZXJzaW9uID0gIjIuMCINCisgICAgICAgIFByb2plY3RHdWlkID0gInszMTUwRjNFOC05QTA0LTRGRUQtQjE2Ri1DRUE1Nzc1NkU5MzR9Ig0KKyAgICA+DQorICAgICAgICA8QnVpbGQ+DQorICAgICAgICAgICAgPFNldHRpbmdzDQorICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uSWNvbiA9ICIiDQorICAgICAgICAgICAgICAgIEFzc2VtYmx5S2V5Q29udGFpbmVyTmFtZSA9ICIiDQorICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJQaG9uZUJvb2suQ29yZSINCisgICAgICAgICAgICAgICAgQXNzZW1ibHlPcmlnaW5hdG9yS2V5RmlsZSA9ICIiDQorICAgICAgICAgICAgICAgIERlZmF1bHRDbGllbnRTY3JpcHQgPSAiSlNjcmlwdCINCisgICAgICAgICAgICAgICAgRGVmYXVsdEhUTUxQYWdlTGF5b3V0ID0gIkdyaWQiDQorICAgICAgICAgICAgICAgIERlZmF1bHRUYXJnZXRTY2hlbWEgPSAiSUU1MCINCisgICAgICAgICAgICAgICAgRGVsYXlTaWduID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICBPdXRwdXRUeXBlID0gIkxpYnJhcnkiDQorICAgICAgICAgICAgICAgIFByZUJ1aWxkRXZlbnQgPSAiIg0KKyAgICAgICAgICAgICAgICBQb3N0QnVpbGRFdmVudCA9ICIiDQorICAgICAgICAgICAgICAgIFJvb3ROYW1lc3BhY2UgPSAiUGhvbmVCb29rLkNvcmUiDQorICAgICAgICAgICAgICAgIFJ1blBvc3RCdWlsZEV2ZW50ID0gIk9uQnVpbGRTdWNjZXNzIg0KKyAgICAgICAgICAgICAgICBTdGFydHVwT2JqZWN0ID0gIiINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgICAgIDxDb25maWcNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiRGVidWciDQorICAgICAgICAgICAgICAgICAgICBBbGxvd1Vuc2FmZUJsb2NrcyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIEJhc2VBZGRyZXNzID0gIjI4NTIxMjY3MiINCisgICAgICAgICAgICAgICAgICAgIENoZWNrRm9yT3ZlcmZsb3dVbmRlcmZsb3cgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uT3ZlcnJpZGVGaWxlID0gIiINCisgICAgICAgICAgICAgICAgICAgIERlZmluZUNvbnN0YW50cyA9ICJERUJVRztUUkFDRSINCisgICAgICAgICAgICAgICAgICAgIERvY3VtZW50YXRpb25GaWxlID0gIlBob25lQm9vay5Db3JlLnhtbCINCisgICAgICAgICAgICAgICAgICAgIERlYnVnU3ltYm9scyA9ICJ0cnVlIg0KKyAgICAgICAgICAgICAgICAgICAgRmlsZUFsaWdubWVudCA9ICI0MDk2Ig0KKyAgICAgICAgICAgICAgICAgICAgSW5jcmVtZW50YWxCdWlsZCA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE5vU3RkTGliID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgTm9XYXJuID0gIjE1OTEiDQorICAgICAgICAgICAgICAgICAgICBPcHRpbWl6ZSA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE91dHB1dFBhdGggPSAiYmluXERlYnVnXCINCisgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyRm9yQ29tSW50ZXJvcCA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFJlbW92ZUludGVnZXJDaGVja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBUcmVhdFdhcm5pbmdzQXNFcnJvcnMgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBXYXJuaW5nTGV2ZWwgPSAiNCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPENvbmZpZw0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJSZWxlYXNlIg0KKyAgICAgICAgICAgICAgICAgICAgQWxsb3dVbnNhZmVCbG9ja3MgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBCYXNlQWRkcmVzcyA9ICIyODUyMTI2NzIiDQorICAgICAgICAgICAgICAgICAgICBDaGVja0Zvck92ZXJmbG93VW5kZXJmbG93ID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbk92ZXJyaWRlRmlsZSA9ICIiDQorICAgICAgICAgICAgICAgICAgICBEZWZpbmVDb25zdGFudHMgPSAiVFJBQ0UiDQorICAgICAgICAgICAgICAgICAgICBEb2N1bWVudGF0aW9uRmlsZSA9ICIiDQorICAgICAgICAgICAgICAgICAgICBEZWJ1Z1N5bWJvbHMgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBGaWxlQWxpZ25tZW50ID0gIjQwOTYiDQorICAgICAgICAgICAgICAgICAgICBJbmNyZW1lbnRhbEJ1aWxkID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgTm9TdGRMaWIgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBOb1dhcm4gPSAiIg0KKyAgICAgICAgICAgICAgICAgICAgT3B0aW1pemUgPSAidHJ1ZSINCisgICAgICAgICAgICAgICAgICAgIE91dHB1dFBhdGggPSAiYmluXFJlbGVhc2VcIg0KKyAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJGb3JDb21JbnRlcm9wID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgUmVtb3ZlSW50ZWdlckNoZWNrcyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFRyZWF0V2FybmluZ3NBc0Vycm9ycyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFdhcm5pbmdMZXZlbCA9ICI0Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgIDwvU2V0dGluZ3M+DQorICAgICAgICAgICAgPFJlZmVyZW5jZXM+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIlN5c3RlbSINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIi4uXC4uXC4uXC4uXC4uXC4uXC4uXFdJTkRPV1NcTWljcm9zb2Z0Lk5FVFxGcmFtZXdvcmtcdjEuMS40MzIyXFN5c3RlbS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtLkRhdGEiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3lzdGVtLkRhdGEiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlwuLlwuLlwuLlwuLlxXSU5ET1dTXE1pY3Jvc29mdC5ORVRcRnJhbWV3b3JrXHYxLjEuNDMyMlxTeXN0ZW0uRGF0YS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtLlhNTCINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJTeXN0ZW0uWG1sIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cLi5cLi5cLi5cLi5cLi5cV0lORE9XU1xNaWNyb3NvZnQuTkVUXEZyYW1ld29ya1x2MS4xLjQzMjJcU3lzdGVtLlhNTC5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiTmV4dXMuQ29yZSINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJOZXh1cy5Db3JlIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cbG9jYWwtY2FjaGVcTmV4dXNcTmV4dXMuQ29yZS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiSUJhdGlzTmV0LkRhdGFNYXBwZXIiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiSUJhdGlzTmV0LkRhdGFNYXBwZXIiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlxsb2NhbC1jYWNoZVxpQmF0aXNOZXRcSUJhdGlzTmV0LkRhdGFNYXBwZXIuZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIkFnaWxpdHkuQ29yZSINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJBZ2lsaXR5LkNvcmUiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlxsb2NhbC1jYWNoZVxBZ2lsaXR5XEFnaWxpdHkuQ29yZS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3ByaW5nLkNvcmUiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3ByaW5nLkNvcmUiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlxsb2NhbC1jYWNoZVxTcHJpbmdOZXRcU3ByaW5nLkNvcmUuZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgIDwvUmVmZXJlbmNlcz4NCisgICAgICAgIDwvQnVpbGQ+DQorICAgICAgICA8RmlsZXM+DQorICAgICAgICAgICAgPEluY2x1ZGU+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkFwcC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkFwcEVudHJ5LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiQXBwRW50cnlMaXN0LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiQXBwRW50cnlMaXN0UHJvY2Vzc29yLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiQXBwVXNlclByb2ZpbGUuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJBc3NlbWJseUluZm8uY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJNZXNzYWdlcy5yZXN4Ig0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiRW1iZWRkZWRSZXNvdXJjZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiVGVsZXBob25lUHJvY2Vzc29yLmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZvbGRlciBSZWxQYXRoID0gImJpblxEZWJ1Z1wiIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbW1hbmRzXEFwcENvbW1hbmQuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJDb21tYW5kc1xCYXNlQ29tbWFuZC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbW1hbmRzXEJhc2VDb3VudC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbW1hbmRzXEJhc2VEZWxldGUuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJDb21tYW5kc1xCYXNlRW50cnkuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJDb21tYW5kc1xCYXNlRmlsdGVyTGlzdC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbW1hbmRzXEJhc2VMaXN0LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiQ29tbWFuZHNcQmFzZVNhdmUuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJDb21tYW5kc1xFbnRyeUluaXRpYWwuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgIDwvSW5jbHVkZT4NCisgICAgICAgIDwvRmlsZXM+DQorICAgIDwvQ1NIQVJQPg0KKzwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCisNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvTWVzc2FnZXMucmVzeCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svQ29yZS9NZXNzYWdlcy5yZXN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllMmIyYmQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvTWVzc2FnZXMucmVzeApAQCAtMCwwICsxLDEyOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQorPHJvb3Q+DQorCTx4c2Q6c2NoZW1hIGlkPSJyb290IiB4bWxucz0iIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczptc2RhdGE9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206eG1sLW1zZGF0YSI+DQorCQk8eHNkOmVsZW1lbnQgbmFtZT0icm9vdCIgbXNkYXRhOklzRGF0YVNldD0idHJ1ZSI+DQorCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJPHhzZDpjaG9pY2UgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KKwkJCQkJPHhzZDplbGVtZW50IG5hbWU9ImRhdGEiPg0KKwkJCQkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCQkJCTx4c2Q6c2VxdWVuY2U+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iY29tbWVudCIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMiIgLz4NCisJCQkJCQkJPC94c2Q6c2VxdWVuY2U+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9InR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im1pbWV0eXBlIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJPC94c2Q6ZWxlbWVudD4NCisJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJyZXNoZWFkZXIiPg0KKwkJCQkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCQkJCTx4c2Q6c2VxdWVuY2U+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+DQorCQkJCQkJCTwveHNkOnNlcXVlbmNlPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIiB1c2U9InJlcXVpcmVkIiAvPg0KKwkJCQkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJPC94c2Q6ZWxlbWVudD4NCisJCQkJPC94c2Q6Y2hvaWNlPg0KKwkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJPC94c2Q6ZWxlbWVudD4NCisJPC94c2Q6c2NoZW1hPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlJlc01pbWVUeXBlIj4NCisJCTx2YWx1ZT50ZXh0L21pY3Jvc29mdC1yZXN4PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iVmVyc2lvbiI+DQorCQk8dmFsdWU+MS4wLjAuMDwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlJlYWRlciI+DQorCQk8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VSZWFkZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IldyaXRlciI+DQorCQk8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VXcml0ZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwkNCisJPGRhdGEgbmFtZT0icGFnZV9pbmRleF9oaW50Ij4NCisJCTx2YWx1ZT5WaWV3aW5nIHswfS17MX0gb2YgezJ9LjwvdmFsdWU+DQorCTwvZGF0YT4JDQorDQorICAgIDwhLS0gY29tbWFuZCBsYWJlbHMgLS0+DQorDQorICAgIDxkYXRhIG5hbWU9ImZpbmQiPg0KKyAgICAgIDx2YWx1ZT5MSVNUIEFMTDwvdmFsdWU+DQorICAgIDwvZGF0YT4NCisNCisgICAgPGRhdGEgbmFtZT0iYWRkIj4NCisgICAgICA8dmFsdWU+QUREPC92YWx1ZT4NCisgICAgPC9kYXRhPg0KKw0KKyAgICA8IS0tIGZpZWxkIGFsZXJ0cyAtLT4NCisNCisgICAgPGRhdGEgbmFtZT0iX2FsZXJ0Ij4NCisJCTx2YWx1ZT57MH0gaXMgaW52YWxpZC48L3ZhbHVlPg0KKwk8L2RhdGE+DQorDQorICAgIDxkYXRhIG5hbWU9Il9yZXF1aXJlZCI+DQorCQk8dmFsdWU+ezB9IGlzIHJlcXVpcmVkLjwvdmFsdWU+DQorCTwvZGF0YT4NCisgICAgDQorCTxkYXRhIG5hbWU9IkRhdGVUaW1lUHJvY2Vzc29yX2FsZXJ0Ij4NCisJCTx2YWx1ZT57MH0gbXVzdCBiZSBhIHZhbGlkIGRhdGUuPC92YWx1ZT4NCisJPC9kYXRhPg0KKwkNCisJPGRhdGEgbmFtZT0iVGVsZXBob25lUHJvY2Vzc29yX2FsZXJ0Ij4NCisJCTx2YWx1ZT57MH0gbXVzdCBiZSBhIHRlbGVwaG9uZSBleHRlbnNpb24uPC92YWx1ZT4NCisJPC9kYXRhPg0KKwkJDQorDQorCTwhLS0gZmllbGQgbGFiZWxzIC0tPiAgICANCisgICAgICAgIA0KKyAgICA8ZGF0YSBuYW1lPSJsYXN0X25hbWVfbGFiZWwiPg0KKyAgICAgIDx2YWx1ZT5MYXN0IE5hbWU8L3ZhbHVlPg0KKyAgICA8L2RhdGE+DQorICAgIA0KKyAgICA8ZGF0YSBuYW1lPSJmaXJzdF9uYW1lX2xhYmVsIj4NCisgICAgICA8dmFsdWU+Rmlyc3QgTmFtZTwvdmFsdWU+DQorICAgIDwvZGF0YT4NCisNCisgICAgPGRhdGEgbmFtZT0iZXh0ZW5zaW9uX2xhYmVsIj4NCisgICAgICA8dmFsdWU+RXh0ZW5zaW9uPC92YWx1ZT4NCisgICAgPC9kYXRhPg0KKw0KKyAgICA8ZGF0YSBuYW1lPSJ1c2VyX25hbWVfbGFiZWwiPg0KKyAgICAgIDx2YWx1ZT5Vc2VyIE5hbWU8L3ZhbHVlPg0KKyAgICA8L2RhdGE+DQorDQorICAgIDxkYXRhIG5hbWU9ImhpcmVkX2xhYmVsIj4NCisgICAgICA8dmFsdWU+SGlyZWQ8L3ZhbHVlPg0KKyAgICA8L2RhdGE+DQorCQ0KKyAgICA8ZGF0YSBuYW1lPSJob3Vyc19sYWJlbCI+DQorICAgICAgPHZhbHVlPkhvdXJzPC92YWx1ZT4NCisgICAgPC9kYXRhPg0KKwkNCisgICAgPGRhdGEgbmFtZT0iZWRpdG9yX2xhYmVsIj4NCisgICAgICA8dmFsdWU+RWRpdG9yPzwvdmFsdWU+DQorICAgIDwvZGF0YT4NCisgICAgDQorDQorCTwhLS0gcHJvbXB0cyAtLT4NCisJDQorCTxkYXRhIG5hbWU9ImdyZWV0aW5nIj4NCisJCTx2YWx1ZT5XZWxjb21lLCA8L3ZhbHVlPg0KKwk8L2RhdGE+DQorDQorICAgIDxkYXRhIG5hbWU9ImRpcmVjdG9yeV90aXRsZSI+DQorICAgICAgPHZhbHVlPkRpcmVjdG9yeSAoMik8L3ZhbHVlPg0KKyAgICA8L2RhdGE+DQorICAgIA0KKyAgICA8ZGF0YSBuYW1lPSJkaXJlY3RvcnlfaGVhZGluZyI+DQorICAgICA8dmFsdWU+RGlyZWN0b3J5PC92YWx1ZT4NCisgICAgPC9kYXRhPg0KKyAgICAgICAgDQorICAgIDxkYXRhIG5hbWU9ImRpcmVjdG9yeV9wcm9tcHQiPg0KKwkgIDx2YWx1ZT5TZWxlY3QgYSBmaWx0ZXIgdG8gZGlzcGxheSBmZXdlciBlbnRyaWVzPC92YWx1ZT4NCisgICAgPC9kYXRhPg0KKyAgICANCisJPGRhdGEgbmFtZT0ibm90X2ZvdW5kX2hpbnQiPg0KKwkJPHZhbHVlPk5vIG1hdGNoaW5nIGVudHJpZXMgZm91bmQuPC92YWx1ZT4NCisJPC9kYXRhPg0KKw0KKzwvcm9vdD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvUGhvbmVCb29rLkNvcmUueG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9Db3JlL1Bob25lQm9vay5Db3JlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGMxOGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9Db3JlL1Bob25lQm9vay5Db3JlLnhtbApAQCAtMCwwICsxLDU2NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+DQorPGRvYz4NCisgICAgPGFzc2VtYmx5Pg0KKyAgICAgICAgPG5hbWU+UGhvbmVCb29rLkNvcmU8L25hbWU+DQorICAgIDwvYXNzZW1ibHk+DQorICAgIDxtZW1iZXJzPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VNYXBwZXIiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEV4dGVuZCBSZXF1ZXN0Q29tbWFuZCB3aXRoIGRhdGEgYWNjZXNzIG1ldGhvZHMuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6UGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuQmFzZU1hcHBlci5fTWFwcGVyIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBQcm92aWRlIGEgZmllbGQgZm9yIE1hcHBlciBwcm9wZXJ0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlTWFwcGVyLklzRW1wdHkoU3lzdGVtLlN0cmluZykiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEluZGljYXRlIHdoZXRoZXIgc3RyaW5nIGlzIG51bGwgb3IgemVybyBsZW5ndGguDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJpbnB1dCI+SW5wdXQgdG8gdmFsaWRhdGU8L3BhcmFtPg0KKyAgICAgICAgICAgIDxyZXR1cm5zPlRydWUgaWYgc3RyaW5nIGlzIG55dWxsIG9yIHplcm8gbGVuZ3RoPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06UGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuQmFzZU1hcHBlci5HdWlkU3RyaW5nIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBDcmVhdGUgbmV3IEdsb2JhbCBVbml2ZXJzYWwgSWRlbnRpZmVyIGFzIGEgZm9ybWF0dGVkIHN0cmluZy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJldHVybnM+U3RyaW5nIHJlcHJlc2VudGluZyBhIG5ldyBHVUlEPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIE5vIHR3byBjYWxscyB0byB0aGlzIG1ldGhvZCB3aWxsIGV2ZXIgcmV0dXJuIGR1cGxpY2F0ZSBzdHJpbmdzLg0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlTWFwcGVyLk1hcHBlciI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRXhwb3NlIGEgcHJlY29uZmlndXJlZCBTcWxNYXBwZXIgaW5zdGFuY2UgdGhhdCBDb21tYW5kcyBjYW4gdXNlIHRvIHJ1biBzdGF0ZW1lbnRzLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz48cD4NCisgICAgICAgICAgICBDb21tYW5kcyB1c2UgTWFwcGVyIHRvIGludm9rZSBTcWxNYXAgc3RhdGVtZW50cywgc3VjaCBhcyANCisgICAgICAgICAgICA8Y29kZT4NCisgICAgICAgICAgICBvYmplY3Qgcm93ID0gTWFwcGVyLlF1ZXJ5Rm9yT2JqZWN0IChRdWVyeUlELCBjb250ZXh0KTsNCisgICAgICAgICAgICA8L2NvZGU+Lg0KKyAgICAgICAgICAgIDwvcD48cD4NCisgICAgICAgICAgICBBbnkgU3FsTWFwcGVyIEFQSSBtZXRob2QgbWF5IGJlIGNhbGxlZC4gDQorICAgICAgICAgICAgPC9wPjxwPg0KKyAgICAgICAgICAgIFRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIEJBc2VOZXh1c0NvbW1hbmQgaXMgdG8gdXNlIHRoZSANCisgICAgICAgICAgICBjb21tYW5kIElEIGlmIHRoZSBRdWVyeUlEIGlzIG51bGwuDQorICAgICAgICAgICAgPC9wPjwvcmVtYXJrcz4NCisgICAgICAgICAgICA8cmV0dXJucz5QcmVjb25maWd1cmVkIE1hcHBlciBpbnN0YW5jZTwvcmV0dXJucz4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VDb21tYW5kIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBQcm92aWRlIGFuIGFidHJhY3QgZXh0ZW5zaW9uIG9mIEJhc2VOZXh1c0NvbW1hbmQgDQorICAgICAgICAgICAgd2l0aCBzaGFyZWQgbWVtYmVycyBmb3IgV05FIENvbW1hbmRzLCANCisgICAgICAgICAgICBpbmNsdWRpbmcgYSBTcWxNYXBwZXIgZmFjdG9yeSBtZXRob2QuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIFN1cGVyY2xhc3NlcyBtdXN0IGltcGxlbWVudCBhIE5leHVzRXhlY3V0ZSBtZXRob2QgKGluaGVyaXRlZCBmcm9tIEJhc2VOZXh1c0NvbW1hbmQuDQorICAgICAgICAgICAgPC9wPjxwPg0KKyAgICAgICAgICAgIENvbmNyZXRlIHN1YmNsYXNzZXMgYXJlIGV4cGVjdGVkIHRvIGJlIGNyZWF0ZWQgYnkgYSBJT0MgQ29udGFpbmVyLCBsaWtlIFNwcmluZy5ORVQuIA0KKyAgICAgICAgICAgIE1vc3QgY29uY3JldGUgc3ViY2xhc3NlcyB3aWxsIGJlICJkZWNvcmF0b3IiIGNsYXNzZXMgZGVzaWduZWQgdG8gYmVoYXZlIA0KKyAgICAgICAgICAgIGRpZmZlcmVudGx5IGJhc2VkIG9uIHdoYXQgcHJvcGVydGllcyBhcmUgc2V0IHdoZW4gdGhlIGNsYXNzIGlzIGNyZWF0ZWQuIA0KKyAgICAgICAgICAgIE90aGVycyBtYXkgYmUgY3VzdG9tIGNsYXNzZXMgd2l0aCBwcmVkZWZpbmVkIGJlaGF2aW9ycy4gDQorICAgICAgICAgICAgPC9wPjxwPg0KKyAgICAgICAgICAgIFRoZSBTcHJpbmcgY2F0YWxvZyBwcm92aWRlcyB0aGUgdmVyc2F0aWxpdHkgd2UgbmVlZCB0byBtaXgtYW5kLW1hdGNoIA0KKyAgICAgICAgICAgIGJhc2UgY29tbWFuZHMgd2l0aCBjdXN0b20gY29tbWFuZHMsIGFzIG5lZWRlZCwgDQorICAgICAgICAgICAgYW5kIGNhbGwgZWl0aGVyIGZyb20gdGhlIGNsaWVudCBpbiBleGFjdGx5IHRoZSBzYW1lIHdheS4NCisgICAgICAgICAgICA8L3A+PHA+DQorICAgICAgICAgICAgTk9URSB0aGF0IHN1YmNsYXNzZXMgc2hvdWxkIE5PVCB1c2UgdGhlIE91dGNvbWUgcHJvcGVydHkgb2YgDQorICAgICAgICAgICAgdGhlIE5leHVzIGNvbnRleHQgc2luY2UgdGhleSBtYXkgYmUgc3ViY29tbWFuZHMgaW4gYSBDaGFpbi4gDQorICAgICAgICAgICAgQWxsIEJhc2VDb21tYW5kcyBzaG91bGQgdXNlIHRoZSBpZGlvbSANCisgICAgICAgICAgICA8Y29kZT5jb250ZXh0W0lEXSA9IG9iamVjdDwvY29kZT4NCisgICAgICAgICAgICB0byBzdG9yZSBvdXRwdXQuDQorICAgICAgICAgICAgPC9wPjxwPg0KKyAgICAgICAgICAgIE5PVEUgYWZ0ZXIgdXNpbmcgdGhlIFJlU2hhcGVyIGNvZGUgcmVmb3JtYXR0ZXIsIA0KKyAgICAgICAgICAgIHRoZSBNYXBwZXIgbWV0aG9kIG5lZWRzIHRvIGJlIGVkaXRlZC4gDQorICAgICAgICAgICAgUmVTaGFycGVyIHJlbW92ZXMgYW4gYWJzb2x1dGUgcmVmZXJlbmNlIHRoYXQgd2UgYWN0dWFsbHkgbmVlZC4gDQorICAgICAgICAgICAgKE91ciBNYXBwZXIgbWV0aG9kIGNhbGxzIHRoZSBJQmF0aXNOZXQgTWFwcGVyIG1ldGhvZC4pDQorICAgICAgICAgICAgVGhlIGNvcnJlY3QgbGluZSBvZiBjb2RlIGlzIG1haW50YWluZWQgYXMgYSBjb21tZW50LCANCisgICAgICAgICAgICBzbyB0aGF0IGl0IGNhbiA8Yj5jb3BpZWQ8L2I+IG92ZXIgdGhlIHJlZm9ybWF0dGVkIHZlcnNpb24uIA0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlQ29tbWFuZC5XSUxEQ0FSRCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRG9jdW1lbnQgdGhlIHdpbGRjYXJkIGNoYXJhY3RlciB1c2VkIGJ5IFNRTCBxdWVyaWVzLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VDb21tYW5kLl9SZW1hcmsiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFByb3ZpZGUgYSBmaWVsZCBmb3IgdGhlIFJlbWFyayBwcm9wZXJ0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlQ29tbWFuZC5fTWFwcGVyIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBQcm92aWRlIGEgZmllbGQgZm9yIHRoZSBNYXBwZXIgcHJvcGVydHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06UGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuQmFzZUNvbW1hbmQuSXNFbXB0eShTeXN0ZW0uU3RyaW5nKSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW5kaWNhdGUgd2hldGhlciBzdHJpbmcgaXMgbnVsbCBvciB6ZXJvIGxlbmd0aC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImlucHV0Ij5JbnB1dCB0byB2YWxpZGF0ZTwvcGFyYW0+DQorICAgICAgICAgICAgPHJldHVybnM+VHJ1ZSBpZiBzdHJpbmcgaXMgbnl1bGwgb3IgemVybyBsZW5ndGg8L3JldHVybnM+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlQ29tbWFuZC5HdWlkU3RyaW5nIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBDcmVhdGUgbmV3IEdsb2JhbCBVbml2ZXJzYWwgSWRlbnRpZmVyIGFzIGEgZm9ybWF0dGVkIHN0cmluZy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJldHVybnM+U3RyaW5nIHJlcHJlc2VudGluZyBhIG5ldyBHVUlEPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIE5vIHR3byBjYWxscyB0byB0aGlzIG1ldGhvZCB3aWxsIGV2ZXIgcmV0dXJuIGR1cGxpY2F0ZSBzdHJpbmdzLg0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlQ29tbWFuZC5MaWtlTWUoQWdpbGl0eS5Db3JlLklDb250ZXh0LFN5c3RlbS5TdHJpbmcpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBQcmVwYXJlIGFuIGF0dHJpYnV0ZSBmb3IgdXNlIHdpdGggYSBTUUwgd2lsZGNhcmQgKCJMSUtFIikgb3BlcmF0aW9uLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz48cD4NCisgICAgICAgICAgICBBIHdpbGRjYXJkIGlzIHByZXBlbmRlZCBhbmQgYXBwZW5kZWQgZm9yIGEgZnVsbCwgc2Nhbi1hY3Jvc3MgbWF0Y2gsIA0KKyAgICAgICAgICAgIHNvIHRoYXQgdGhlIHN0cmluZyB3aWxsIGZvdW5kIGluIGFueSBwYXJ0IG9mIHRoZSBmaWVsZC4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5Db250ZXh0IHdpdGggYXR0cmlidXRlIHRvIGVzY2FwZTwvcGFyYW0+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImlkIj5OYW1lIG9mIGF0dHJpYnV0ZSB0byBlc2NhcGU8L3BhcmFtPg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6UGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuQmFzZUNvbW1hbmQuSUQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIElmIGFuIElEIGlzIG5vdCBwcm92aWRlZCwgZGVmYXVsdCB0byB0aGUgT2JqZWN0TmFtZS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlQ29tbWFuZC5PYmplY3ROYW1lIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBQcm92aWRlIGEgZmllbGQgZm9yIHRoZSBTcHJpbmcgb2JqZWN0IG5hbWUgKHNldCBieSBTcHJpbmcpLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VDb21tYW5kLlJlbWFyayI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQWNjZXB0IGFuIGFyYml0cmFyeSBjb21tZW50IGFib3V0IGEgY29tbWFuZCANCisgICAgICAgICAgICAtLSBtb3JlIGZvciB1c2UgaW4gdGhlIFhNTCBkb2N1bWVudC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlQ29tbWFuZC5NYXBwZXIiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEV4cG9zZSBhIHByZWNvbmZpZ3VyZWQgU3FsTWFwcGVyIGluc3RhbmNlIHRoYXQgQ29tbWFuZHMgY2FuIHVzZSB0byBydW4gc3RhdGVtZW50cy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFya3M+PHA+DQorICAgICAgICAgICAgQ29tbWFuZHMgdXNlIE1hcHBlciB0byBpbnZva2UgU3FsTWFwIHN0YXRlbWVudHMsIHN1Y2ggYXMgDQorICAgICAgICAgICAgPGNvZGU+DQorICAgICAgICAgICAgb2JqZWN0IHJvdyA9IE1hcHBlciAoKS5RdWVyeUZvck9iamVjdCAoUXVlcnlJRCwgY29udGV4dCk7DQorICAgICAgICAgICAgPC9jb2RlPi4NCisgICAgICAgICAgICA8L3A+PHA+DQorICAgICAgICAgICAgQW55IFNxbE1hcHBlciBBUEkgbWV0aG9kIG1heSBiZSBjYWxsZWQuIA0KKyAgICAgICAgICAgIDwvcD48cD4NCisgICAgICAgICAgICBUaGUgZGVmYXVsdCBiZWhhdmlvciBvZiBCQXNlTmV4dXNDb21tYW5kIGlzIHRvIHVzZSB0aGUgDQorICAgICAgICAgICAgY29tbWFuZCBJRCBpZiB0aGUgUXVlcnlJRCBpcyBudWxsLg0KKyAgICAgICAgICAgIDwvcD48L3JlbWFya3M+DQorICAgICAgICAgICAgPHJldHVybnM+UHJlY29uZmlndXJlZCBNYXBwZXI8L3JldHVybnM+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlQ291bnQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEludm9rZSBhIHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgY291bnQgb2YgYSByZXN1bHQgc2V0Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VEZWxldGUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEV4ZWN1dGUgZGVsZXRlIHN0YXRlbWVudCBpbmRpY2F0ZWQgYnkgUXVlcnlJRCANCisgICAgICAgICAgICBmb3IgYSBzaW5nbGUgZW50aXR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VFbnRyeSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRXhlY3V0ZSBkYXRhYmFzZSBzdGF0ZW1lbnQgaW5kaWNhdGVkIGJ5IFF1ZXJ5SUQgDQorICAgICAgICAgICAgZm9yIGEgc2luZ2xlIG9iamVjdCwgDQorICAgICAgICAgICAgcmV0dXJuaW5nIGVhY2ggYXR0cmlidXRlIGluIHRoZSBtYWluIGNvbnRleHQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlQ6UGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuQmFzZUZpbHRlckxpc3QiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEV4ZWN1dGUgZGF0YWJhc2Ugc3RhdGVtZW50IGluZGljYXRlZCBieSBRdWVyeUlEIA0KKyAgICAgICAgICAgIGFuZCB3cmFwIHJlc3VsdCBpbiBLZXlWYWx1ZSBvYmplY3RzIA0KKyAgICAgICAgICAgIHNvIHRoYXQgbGlzdHMgY2FuIGJlIGRpc3BsYXllZCBieSBzdGFuZGFyZCBtZXRob2RzLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VMaXN0Ij4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBSdW4gdGhlIHNlbGVjdCBxdWVyeSBpbmRpY2F0ZWQgYnkgUXVlcnlJRCwgDQorICAgICAgICAgICAgZmlyc3QgZXNjYXBpbmcgYW55IExpa2VJRHMgYW5kIGV4dGVuZGluZyBhbnkgZGF0ZSByYW5nZXMsDQorICAgICAgICAgICAgYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIGFuIElMaXN0LCANCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlTGlzdC5HZXRBcnJheShTeXN0ZW0uU3RyaW5nKSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgR2VuZXJhdGUgYW4gYXJyYXkgZnJvbSB0aGUgSURzLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmV0dXJucz5BcnJheSBvZiBMaWtlSURzPC9yZXR1cm5zPg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6UGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuQmFzZUxpc3QuTEFTVF9USUNLIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBEb2N1bWVudCB0aGUgbGFzdCBzZWNvbmQgb2YgdGhlIGRheSANCisgICAgICAgICAgICBzbyBhcyB0byBjYWxjdWxhdGUgdmFsdWVzIGZvciBjb25jZXB0cyBsaWtlIHRvZGF5IGFuZCB0b21vcnJvdy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlTGlzdC5FeHRlbmRUaHJ1RGF0ZShOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dCkiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIElmIFRocnVEYXRlIGlzIHNldCB0byB0aGUgbWluaW11bSB0aW1lICgwMDowMCksIA0KKyAgICAgICAgICAgIHNldCB0byB0aGUgbWF4aW11bSB0aW1lIGluc3RlYWQgKDIzOjU5KS4gDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij48L3BhcmFtPg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06UGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuQmFzZUxpc3QuUHJlUHJvY2VzcyhOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dCkiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFByZXBhcmUgc3BlY2lhbCBhdHRyaWJ1dGVzIGZvciB0aGUgcXVlcnkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5UaGUgY29udGV4dCB3ZSBhcmUgcHJvY2Vzc2luZzwvcGFyYW0+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iTTpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlTGlzdC5SZXF1ZXN0RXhlY3V0ZShOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dCkiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFByb3ZpZGUgYSBkZWZhdWx0LCBjb252ZW5pZW5jZSBpbXBsZW1lbnRhdGlvbiB0aGF0IHdpbGwgcnVuIGEgIlF1ZXJ5Rm9yTGlzdCIgDQorICAgICAgICAgICAgdXNpbmcgYSBkYXRhIG1hcHBpbmcgc3RhdGVtZW50IG9mIHRoZSBzYW1lIElEIGFzIHRoZSBDb21tYW5kOyANCisgICAgICAgICAgICBvdmVycmlkZSBhcyBuZWVkZWQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5UaGUgSU5leHVzQ29udGV4dCB3ZSBhcmUgcHJvY2Vzc2luZy48L3BhcmFtPg0KKyAgICAgICAgICAgIDxyZXR1cm5zPkNPTlRJTlVFLCBpZiBhbiBFeGNlcHRpb24gaXMgbm90IHRocm93bi48L3JldHVybnM+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlTGlzdC5MaWtlSURzIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBOYW1lcyBvZiBrZXkgZmllbGRzIHRvIGVzY2FwZSBmb3IgYSAibGlrZSIgc2VhcmNoLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VTYXZlIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBTdG9yZSBhbiBlbnRpdHkgZm9yIGZ1dHVyZSByZWZlcmVuY2UuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6UGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuQmFzZVNhdmUuX0tleUlEIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBQcm92aWRlIGEgZmllbGQgZm9yIEtleUlEIHByb3BlcnR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VTYXZlLl9JbnNlcnRJRCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSBhIGZpZWxkIGZvciBJbnNlcnRJRCBwcm9wZXJ0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlU2F2ZS5fVXBkYXRlSUQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFByb3ZpZGUgYSBmaWVsZCBmb3IgVXBkYXRlSUQgcHJvcGVydHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06UGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuQmFzZVNhdmUuU2F2ZShOZXh1cy5Db3JlLklSZXF1ZXN0Q29udGV4dCxTeXN0ZW0uU3RyaW5nLFN5c3RlbS5TdHJpbmcsU3lzdGVtLlN0cmluZykiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEluc2VydCBvciB1cGRhdGUgYW4gZW50aXR5IHRvIHRoZSBwZXJzaXN0ZW50IHN0b3JlLiANCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHJlbWFyaz48cD4NCisgICAgICAgICAgICBJZiB0aGUgImZpZWxkSUQiIGlzIGVtcHR5LCB1c2UgdGhlIGluc2VydElEIHN0YXRlbWVudCwgDQorICAgICAgICAgICAgb3RoZXJ3aXNlLCB1c2UgdGhlIHVwZGF0ZUlEIHN0YXRlbWVudC4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcms+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImNvbnRleHQiPlRoZSBJTmV4dXNDb250ZXh0IHdlIGFyZSBwcm9jZXNzaW5nLjwvcGFyYW0+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImZpZWxkSUQiPlRoZSBuYW1lIG9mIHRoZSBrZXkgZmllbGQuPC9wYXJhbT4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0iaW5zZXJ0SUQiPlRoZSBuYW1lIG9mIHRoZSAiaW5zZXJ0IiBtYXBwaW5nIGZvciB0aGUgRW50aXR5LjwvcGFyYW0+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9InVwZGF0ZUlEIj5UaGUgbmFtZSBvZiB0aGUgInVwZGF0ZSIgbWFwcGluZyBmb3IgdGhlIEVudGl0eS48L3BhcmFtPg0KKyAgICAgICAgICAgIDxyZXR1cm5zPkZhbHNlPC9yZXR1cm5zPg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6UGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuQmFzZVNhdmUuS2V5SUQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFJlY29yZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBlbnRpdHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6UGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuQmFzZVNhdmUuSW5zZXJ0SUQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFJlY29yZCB0aGUgbmFtZSBvZiB0aGUgImluc2VydCIgbWFwcGluZyBmb3IgdGhlIGVudGl0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iUDpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlU2F2ZS5VcGRhdGVJRCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUmVjb3JkIHRoZSBuYW1lIG9mIHRoZSAidXBkYXRlIiBtYXBwaW5nIGZvciB0aGUgZW50aXR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkVudHJ5SW5pdGlhbCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQ3JlYXRlIGxpc3Qgb2YgaW5pdGlhbCBsZXR0ZXJzIGZvciBGYWNpbGl0eSBOYW1lcy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5FbnRyeUluaXRpYWwuQUxMIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBEb2N1bWVudCB0b2tlbiByZXByZXNlbnRpbmcgbWF0Y2ggYWxsIGVudHJpZXMuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6UGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuRW50cnlJbml0aWFsLldJTERDQVJEIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBEb2N1bWVudCB0aGUgd2lsZGNhcmQgY2hhcmFjdGVyIHVzZWQgYnkgU1FMIHF1ZXJpZXMuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlQ6UGhvbmVCb29rLkNvcmUuQXBwIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUb2tlbnMgcmVwcmVzZW50aW5nIGNvbnRleHQga2V5cy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpQaG9uZUJvb2suQ29yZS5BcHAuQ0FUQUxPR19LRVkiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBDYXRhbG9nIHByb3BlcnR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkFwcC5FTlRSWV9LRVkiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBlbnRyeV9rZXkgcHJvcGVydHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6UGhvbmVCb29rLkNvcmUuQXBwLkZJUlNUX05BTUUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBmaXJzdF9uYW1lIHByb3BlcnR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkFwcC5MQVNUX05BTUUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBsYXN0X25hbWUgcHJvcGVydHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6UGhvbmVCb29rLkNvcmUuQXBwLlVTRVJfTkFNRSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIHVzZXJfbmFtZSBwcm9wZXJ0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpQaG9uZUJvb2suQ29yZS5BcHAuRVhURU5TSU9OIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUb2tlbiBmb3IgZXh0ZW5zaW9uIHByb3BlcnR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkFwcC5ISVJFRCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIGhpcmVkIHByb3BlcnR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkFwcC5IT1VSUyI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIGhvdXJzIHByb3BlcnR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkFwcC5FRElUT1IiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBlZGl0b3IgcHJvcGVydHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6UGhvbmVCb29rLkNvcmUuQXBwLklURU1fTElNSVQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBTUUwgTElNSVQgY2xhdXNlLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkFwcC5JVEVNX09GRlNFVCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIFNRTCBPRkZTRVQgY2xhdXNlLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkFwcC5JVEVNX0NPVU5UIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUb2tlbiBmb3IgU1FMIENPVU5UIGNsYXVzZS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpQaG9uZUJvb2suQ29yZS5BcHAuRU5UUlkiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBzZWxlY3Qgb25lIGNvbW1hbmQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6UGhvbmVCb29rLkNvcmUuQXBwLkVOVFJZX0xJU1QiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBsaXN0IGFsbCBjb21tYW5kLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkFwcC5FTlRSWV9JTklUSUFMIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUb2tlbiBmb3IgRW50cnkgSW5pdGlhbCBjb21tYW5kLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkFwcC5MQVNUX05BTUVfTElTVCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIExpc3QgTGFzdCBOYW1lcyBjb21tYW5kLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkFwcC5GSVJTVF9OQU1FX0xJU1QiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBMaXN0IExhc3QgTmFtZXMgY29tbWFuZC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpQaG9uZUJvb2suQ29yZS5BcHAuRVhURU5TSU9OX0xJU1QiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBMaXN0IEV4dGVuc2lvbnMgY29tbWFuZC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpQaG9uZUJvb2suQ29yZS5BcHAuVVNFUl9OQU1FX0xJU1QiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBMaXN0IFVzZXJOYW1lcyBjb21tYW5kLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkFwcC5ISVJFRF9MSVNUIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBUb2tlbiBmb3IgTGlzdCBIaXJlIERhdGVzIGNvbW1hbmQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6UGhvbmVCb29rLkNvcmUuQXBwLkhPVVJTX0xJU1QiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBMaXN0IEhvdXJzIGNvbW1hbmQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6UGhvbmVCb29rLkNvcmUuQXBwLkVOVFJZX0ZJTkQiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBFbnRyeSBGaW5kIGNvbW1hbmQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6UGhvbmVCb29rLkNvcmUuQXBwLkVOVFJZX1NBVkUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBFbnRyeSBTYXZlIGNvbW1hbmQuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6UGhvbmVCb29rLkNvcmUuQXBwLkVOVFJZX0RFTEVURSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIEVudHJ5IERlbGV0ZSBjb21tYW5kLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkFwcC5ESVJFQ1RPUllfVElUTEUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBEaXJlY3RvcnkgcGFnZSB0aXRsZS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpQaG9uZUJvb2suQ29yZS5BcHAuRElSRUNUT1JZX0hFQURJTkciPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFRva2VuIGZvciBEaXJlY3RvcnkgZGlyZWN0b3J5IHBhZ2UgaGVhZGluZy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpQaG9uZUJvb2suQ29yZS5BcHAuRElSRUNUT1JZX1BST01QVCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgVG9rZW4gZm9yIERpcmVjdG9yeSBwYWdlIHByb21wdC4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpQaG9uZUJvb2suQ29yZS5BcHBFbnRyeSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgRXhwb3NlIGZpZWxkIGF0dHJpYnV0ZXMgYXMgcHVibGljIHByb3BlcnRpZXMuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06UGhvbmVCb29rLkNvcmUuQXBwRW50cnkuQWRkQWxsKFBob25lQm9vay5Db3JlLkFwcEVudHJ5KSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgQWRkIGVhY2ggc291cmNlIGVudHJ5IHRvIG91ciBpbnRlcm5hbCBzdG9yZS4gDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgICAgIEVudHJpZXMgd2l0aCBrZXlzIHRoYXQgbWF0Y2ggdGhlIHByb3BlcnR5IG5hbWVzIHdpbGwgYmUgZXhwb3NlZC4gDQorICAgICAgICAgICAgT3RoZXIgZW50cmllcyBtYXkgYmUgYWRkZWQsIGJ1dCBjYW4gb25seSBiZSByZXRyaWV2ZWQgdmlhIEdldC4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJyb3ciPkVudHJpZXMgdG8gYWRkPC9wYXJhbT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOlBob25lQm9vay5Db3JlLkFwcEVudHJ5TGlzdCI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgSW1wbGVtZW50IE5leHVzLkNvcmUuSUVudHJ5TGlzdCBmb3IgQXBwRW50cnkgb2JqZWN0cy4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iVDpQaG9uZUJvb2suQ29yZS5BcHBFbnRyeUxpc3RQcm9jZXNzb3IiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIEltcGxlbWVudCBOZXh1cy5Db3JlLlZhbGlkYXRvcnMuRW50cnlMaXN0UHJvY2VzcyBmb3IgQXBwRW50cnlMaXN0Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOlBob25lQm9vay5Db3JlLkFwcFVzZXJQcm9maWxlIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBFeHRlbmQgVXNlclByb2ZpbGUgdG8gaW5jbHVkZSBwcm9wZXJ0aWVzIHNwZWNpZmljIHRvIHRoaXMgYXBwbGljYXRpb24sIA0KKyAgICAgICAgICAgIHN1Y2ggYXMgSXNFZGl0b3IuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IkY6UGhvbmVCb29rLkNvcmUuQXBwVXNlclByb2ZpbGUuX0lzRWRpdG9yIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBQcm92aWRlIGEgZmllbGQgZm9yIElzRWRpdG9yIHByb3BlcnR5Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJGOlBob25lQm9vay5Db3JlLkFwcFVzZXJQcm9maWxlLl9FbnRyeSI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUHJvdmlkZSBhIGZpZWxkIGZvciBFbnRyeSBwcm9wZXJ0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgDQorICAgICAgICA8L21lbWJlcj4NCisgICAgICAgIDxtZW1iZXIgbmFtZT0iRjpQaG9uZUJvb2suQ29yZS5BcHBVc2VyUHJvZmlsZS5fRnVsbE5hbWUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFByb3ZpZGUgYSBmaWVsZCBmb3IgRnVsbE5hbWUgcHJvcGVydHkuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9Ik06UGhvbmVCb29rLkNvcmUuQXBwVXNlclByb2ZpbGUuI2N0b3IoU3lzdGVtLlNlY3VyaXR5LlByaW5jaXBhbC5JSWRlbnRpdHkpIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJbnN0YW50aWF0ZSBmcm9tIGFuIElJZGVudGl0eS4NCisgICAgICAgICAgICA8L3N1bW1hcnk+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImlkIj5JZGVudGl0eSB0byBjb3B5IGZvciB0aGlzIHByb2ZpbGUuPC9wYXJhbT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJQOlBob25lQm9vay5Db3JlLkFwcFVzZXJQcm9maWxlLklzRWRpdG9yIj4NCisgICAgICAgICAgICA8c3VtbWFyeT4NCisgICAgICAgICAgICBJbmRpY2F0ZSB3aGV0aGVyIHVzZXIgaGFzIGVkaXRpbmcgcHJpdmVsZWdlcy4gDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6UGhvbmVCb29rLkNvcmUuQXBwVXNlclByb2ZpbGUuRW50cnkiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFJlY29yZCBkaXJlY3RvcnkgZW50cnkgZm9yIHVzZXIuDQorICAgICAgICAgICAgPC9zdW1tYXJ5Pg0KKyAgICAgICAgICAgIA0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgICAgICA8bWVtYmVyIG5hbWU9IlA6UGhvbmVCb29rLkNvcmUuQXBwVXNlclByb2ZpbGUuRnVsbE5hbWUiPg0KKyAgICAgICAgICAgIDxzdW1tYXJ5Pg0KKyAgICAgICAgICAgIFJlY29yZCB0aGUgdXNlcidzIGZ1bGwgbmFtZSAoZmlyc3QgYW5kIGxhc3QgbmFtZXMpLg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICANCisgICAgICAgIDwvbWVtYmVyPg0KKyAgICAgICAgPG1lbWJlciBuYW1lPSJUOlBob25lQm9vay5Db3JlLlRlbGVwaG9uZVByb2Nlc3NvciI+DQorICAgICAgICAgICAgPHN1bW1hcnk+DQorICAgICAgICAgICAgUmVtb3ZlIHB1bmN0dWF0aW9uIG9uIGlucHV0IGFuZCBpbnNlcnQgcHVuY3R1YXRpb24gb24gb3V0cHV0Lg0KKyAgICAgICAgICAgIDwvc3VtbWFyeT4NCisgICAgICAgICAgICA8cmVtYXJrcz48cD4NCisgICAgICAgICAgICBOdWxsIGlucHV0IG9yIG91dHB1dCBpcyBwYXNzZWQgdGhvcnVnaCBhcyBudWxsLiANCisgICAgICAgICAgICBOb24tbnVsbCBpbnB1dCBvciBvdXRwdXQgbXVzdCBiZSBzdHJpbmdzLg0KKyAgICAgICAgICAgIE91dHB1dCBpcyBmb3JtYXR0ZWQgZm9yIGxvY2FsIG9yIGxvbmcgZGlzdGFuZSBVUyB0ZWxlcGhvbmUgbnVtYmVycy4gDQorICAgICAgICAgICAgT3V0cHV0IHN0cmluZ3MgdGhhdCBhcmUgdG9vIHNob3J0IG9yIHRvbyBsb25nIGFyZSBwYXNzZWQgdGhyb3VnaC4NCisgICAgICAgICAgICA8L3A+PC9yZW1hcmtzPg0KKyAgICAgICAgPC9tZW1iZXI+DQorICAgIDwvbWVtYmVycz4NCis8L2RvYz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL0NvcmUvVGVsZXBob25lUHJvY2Vzc29yLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9Db3JlL1RlbGVwaG9uZVByb2Nlc3Nvci5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTYxNGIyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9Db3JlL1RlbGVwaG9uZVByb2Nlc3Nvci5jcwpAQCAtMCwwICsxLDY1IEBACit1c2luZyBTeXN0ZW0uVGV4dDsNCit1c2luZyBOZXh1cy5Db3JlLlZhbGlkYXRvcnM7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5Db3JlDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBSZW1vdmUgcHVuY3R1YXRpb24gb24gaW5wdXQgYW5kIGluc2VydCBwdW5jdHVhdGlvbiBvbiBvdXRwdXQuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyA8cmVtYXJrcz48cD4NCisJLy8vIE51bGwgaW5wdXQgb3Igb3V0cHV0IGlzIHBhc3NlZCB0aG9ydWdoIGFzIG51bGwuIA0KKwkvLy8gTm9uLW51bGwgaW5wdXQgb3Igb3V0cHV0IG11c3QgYmUgc3RyaW5ncy4NCisJLy8vIE91dHB1dCBpcyBmb3JtYXR0ZWQgZm9yIGxvY2FsIG9yIGxvbmcgZGlzdGFuZSBVUyB0ZWxlcGhvbmUgbnVtYmVycy4gDQorCS8vLyBPdXRwdXQgc3RyaW5ncyB0aGF0IGFyZSB0b28gc2hvcnQgb3IgdG9vIGxvbmcgYXJlIHBhc3NlZCB0aHJvdWdoLg0KKwkvLy8gPC9wPjwvcmVtYXJrcz4NCisJcHVibGljIGNsYXNzIFRlbGVwaG9uZVByb2Nlc3NvciA6IFByb2Nlc3Nvcg0KKwl7DQorCQlwdWJsaWMgb3ZlcnJpZGUgYm9vbCBDb252ZXJ0SW5wdXQoSVByb2Nlc3NvckNvbnRleHQgaW5jb21pbmcpDQorCQl7DQorCQkJb2JqZWN0IHNvdXJjZSA9IGluY29taW5nLlNvdXJjZTsNCisJCQlpZiAoc291cmNlID09IG51bGwpIHJldHVybiB0cnVlOw0KKw0KKwkJCXN0cmluZyBpbnB1dCA9IHNvdXJjZSBhcyBzdHJpbmc7DQorCQkJaWYgKGlucHV0ID09IG51bGwpIHJldHVybiBmYWxzZTsNCisNCisJCQljaGFyW10gbWFya3MgPSB7Jy0nfTsNCisJCQlzdHJpbmdbXSBzcGxpdHMgPSBpbnB1dC5TcGxpdChtYXJrcyk7DQorCQkJU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKGlucHV0Lkxlbmd0aCk7DQorCQkJZm9yZWFjaCAoc3RyaW5nIHMgaW4gc3BsaXRzKQ0KKwkJCXsNCisJCQkJc2IuQXBwZW5kKHMpOw0KKwkJCX0NCisJCQlpbmNvbWluZy5UYXJnZXQgPSBzYi5Ub1N0cmluZygpOw0KKwkJCXJldHVybiB0cnVlOw0KKwkJfQ0KKw0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgRm9ybWF0T3V0cHV0KElQcm9jZXNzb3JDb250ZXh0IG91dGdvaW5nKQ0KKwkJew0KKwkJCW9iamVjdCBzb3VyY2UgPSBvdXRnb2luZy5Tb3VyY2U7DQorCQkJaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4gdHJ1ZTsNCisNCisJCQlzdHJpbmcgb3V0cHV0ID0gc291cmNlIGFzIHN0cmluZzsNCisJCQlpZiAob3V0cHV0ID09IG51bGwpIHJldHVybiBmYWxzZTsNCisNCisJCQlzdHJpbmcgbWFyayA9ICItIjsNCisJCQlpZiAob3V0cHV0ID09IG51bGwpIHJldHVybiBmYWxzZTsNCisJCQlzdHJpbmcgYnVmZmVyID0gbnVsbDsNCisNCisJCQlpZiAob3V0cHV0Lkxlbmd0aCA9PSAxMCkNCisJCQl7DQorCQkJCS8vIDAxMi0zNDUtNjc4OQ0KKwkJCQlzdHJpbmcgYnVmZmVyMSA9IG91dHB1dC5JbnNlcnQoNiwgbWFyayk7DQorCQkJCWJ1ZmZlciA9IGJ1ZmZlcjEuSW5zZXJ0KDMsIG1hcmspOw0KKwkJCX0NCisJCQllbHNlIGlmIChvdXRwdXQuTGVuZ3RoID09IDcpDQorCQkJew0KKwkJCQkvLyAwMTItMzQ1Ng0KKwkJCQlidWZmZXIgPSBvdXRwdXQuSW5zZXJ0KDMsIG1hcmspOw0KKwkJCX0NCisJCQllbHNlIGJ1ZmZlciA9IG91dHB1dDsNCisNCisJCQlvdXRnb2luZy5UYXJnZXQgPSBidWZmZXI7DQorCQkJcmV0dXJuIHRydWU7DQorCQl9DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9MSUNFTlNFLnR4dCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svTElDRU5TRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY0NTY5NQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svTElDRU5TRS50eHQKQEAgLTAsMCArMSwyMDIgQEAKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKKyAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KKworICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCisKKyAgIDEuIERlZmluaXRpb25zLgorCisgICAgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisKKyAgICAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5CisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCisKKyAgICAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKKyAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKyAgICAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCisgICAgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUKKyAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCisgICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKKyAgICAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCisKKyAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKyAgICAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCisKKyAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAorICAgICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKworICAgICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKKyAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKyAgICAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKKyAgICAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKworICAgICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKKyAgICAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKKyAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yaworICAgICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KKworICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAorICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKKyAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgorICAgICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAorICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKworICAgICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKKyAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKKyAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQorICAgICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgorICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKKyAgICAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKKyAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCisgICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAorICAgICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKyAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAorICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKKyAgICAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgorCisgICAgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICAgICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCisgICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KKworICAgMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCisgICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKKyAgICAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCisKKyAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKyAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAorICAgICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCisgICAgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQorICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKKyAgICAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKKyAgICAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91CisgICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yaworICAgICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKKyAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKKyAgICAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQorICAgICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgorCisgICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQorICAgICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CisgICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorICAgICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKyAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCisgICAgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKKworICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICAgICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAorCisgICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKKyAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCisgICAgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKKyAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCisgICAgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAorCisgICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKKyAgICAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CisgICAgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCisgICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisgICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCisgICAgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKKyAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCisgICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCisgICAgICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAorICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cworICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKKyAgICAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgorICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCisgICAgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCisgICAgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCisgICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgorCisgICAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKKyAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKyAgICAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKKyAgICAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAorICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCisgICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgorCisgICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCisgICAgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKKyAgICAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKyAgICAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKKyAgICAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCisgICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCisKKyAgIDYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKKyAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKKyAgICAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQorICAgICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCisKKyAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgorICAgICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAorICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyAgICAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCisgICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCisgICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKKyAgICAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQorICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorCisgICA4LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKKyAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAorICAgICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKKyAgICAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCisgICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCisgICAgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKKyAgICAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKKyAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKKyAgICAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCisgICAgICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCisgICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCisKKyAgIDkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKKyAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCisgICAgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAorICAgICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKKyAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CisgICAgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgorICAgICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAorICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CisgICAgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCisgICAgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KKworICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCisKKyAgIEFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KKworICAgICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBmb2xsb3dpbmcKKyAgICAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKKyAgICAgIHJlcGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24ndCBpbmNsdWRlCisgICAgICB0aGUgYnJhY2tldHMhKSAgVGhlIHRleHQgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQorICAgICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCisgICAgICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCisgICAgICBzYW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciBlYXNpZXIKKyAgICAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KKworICAgQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCisKKyAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL05PVElDRS50eHQgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL05PVElDRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzNjNDYzNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svTk9USUNFLnR4dApAQCAtMCwwICsxLDYgQEAKK05PVElDRQ0KKw0KK1RoaXMgc29mdHdhcmUgY29uc2lzdHMgb2Ygdm9sdW50YXJ5IGNvbnRyaWJ1dGlvbnMgbWFkZSBieSBtYW55DQoraW5kaXZpZHVhbHMgb24gYmVoYWxmIG9mIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiBhbmQgd2FzIA0KK29yaWdpbmFsbHkgYmFzZWQsIGluIHBhcnQsIG9uIHB1YmxpYyBkb21haW4gc29mdHdhcmUgd3JpdHRlbiBieSB0aGUgDQorT2tsYWhvbWEgRGVwYXJ0bWVudCBvZiBFbnZpcm9ubWVudGFsIFF1YWxpdHksIE9rbGFob21hIENpdHkgT0sgVVMuDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9QaG9uZUJvb2stc3RhcnQuc3FsIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9QaG9uZUJvb2stc3RhcnQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyMjFjNTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Bob25lQm9vay1zdGFydC5zcWwKQEAgLTAsMCArMSwxOCBAQAorQ1JFQVRFIERBVEFCQVNFIGBwaG9uZWJvb2tgOw0KK1VTRSBgcGhvbmVib29rYDsNCitDUkVBVEUgVEFCTEUgYGVudHJ5YCAoDQorICBgcGtfZW50cnlgIGNoYXIoMzYpIE5PVCBOVUxMIGRlZmF1bHQgJycsDQorICBgbGFzdF9uYW1lYCBjaGFyKDE4KSBOT1QgTlVMTCBkZWZhdWx0ICcnLA0KKyAgYGZpcnN0X25hbWVgIGNoYXIoMTgpIE5PVCBOVUxMIGRlZmF1bHQgJycsDQorICBgZXh0ZW5zaW9uYCBjaGFyKDE4KSBOT1QgTlVMTCBkZWZhdWx0ICcnLA0KKyAgYHVzZXJfbmFtZWAgY2hhcig5KSBOT1QgTlVMTCBkZWZhdWx0ICcnLA0KKyAgYGVkaXRvcmAgdGlueWludCgzKSB1bnNpZ25lZCBOT1QgTlVMTCBkZWZhdWx0ICcwJywNCisgIGBoaXJlZGAgZGF0ZXRpbWUgTk9UIE5VTEwgZGVmYXVsdCAnMDAwMC0wMC0wMCAwMDowMDowMCcsDQorICBgaG91cnNgIGRvdWJsZSBOT1QgTlVMTCBkZWZhdWx0ICczNy41Jw0KKykgVFlQRT1NeUlTQU0gUk9XX0ZPUk1BVD1GSVhFRDsNCitJTlNFUlQgSU5UTyBgZW50cnlgIChgcGtfZW50cnlgLGBsYXN0X25hbWVgLGBmaXJzdF9uYW1lYCxgZXh0ZW5zaW9uYCxgdXNlcl9uYW1lYCxgZWRpdG9yYCxgaGlyZWRgLGBob3Vyc2ApIFZBTFVFUyANCisgKCdjNWI2YmJiMS02NmQ2LTQ5Y2ItOWRiNi03NDNhZjY2Mjc4MjgnLCdDbGludG9uJywnV2lsbGlhbScsJzU1NTc0Mzc4MjgnLCdidWJiYScsMCwnMTk5Mi0wOC0xOSAwMDowMDowMCcsMzcuNSksDQorICgnN2M0MjQyMjctOGUxOS00ZmI1LWIwODktNDIzY2ZjYTcyM2UxJywnUm9vc2V2ZWx0JywnVGhlb2RvcmUnLCc1NTU3NDM4OTQyJywnYnVsbCcsMCwnMjAwMS0wOS0xNCAwMDowMDowMCcsMzcuNSksDQorICgnOTMyMGVhNDAtMGMwMS00M2U4LTljZWMtOGZiOWIzOTI4YzJjJywnS2VubmVkeScsJ0pvaG4gRi4nLCc1NTU3NDMzOTI4JywnZml0eicsMCwnMTk4Ny0wNS0yOSAwMDowMDowMCcsMzcuNSksDQorICgnM2IyN2M5MzMtYzFkYy00ZDg1LTk3NDQtYzdkOWRlYmFlMTk2JywnUGllcmNlJywnRnJhbmtsaW4nLCc1NTU3NDM3OTE5JywnaGF3a2V5ZScsMCwnMTk4NC0xMS0xOCAwMDowMDowMCcsMzUpLA0KKyAoJzU1NGZmOWU3LWE2ZjUtNDc4YS1iNzZiLWE2NjZmNWM1NGU0MCcsJ0plZmZlcnNvbicsJ1Rob21hcycsJzU1NTc0MzU0NDAnLCdtb250eScsMCwnMTk3Ni0wNy0wNCAwMDowMDowMCcsMzcuNSk7DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9QaG9uZUJvb2suc2xuIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9QaG9uZUJvb2suc2xuCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxN2IzN2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Bob25lQm9vay5zbG4KQEAgLTAsMCArMSw0MyBAQAorTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24gOC4wMA0KK1Byb2plY3QoIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9IikgPSAiV2ViIiwgImh0dHA6Ly9sb2NhbGhvc3QvUGhvbmVCb29rL1dlYi5jc3Byb2oiLCAiezk0OEVFMzQ0LUQwMzMtNDM1OC04OEU4LTc3RkRFMDgwRDkzQ30iDQorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCisJCXszMTUwRjNFOC05QTA0LTRGRUQtQjE2Ri1DRUE1Nzc1NkU5MzR9ID0gezMxNTBGM0U4LTlBMDQtNEZFRC1CMTZGLUNFQTU3NzU2RTkzNH0NCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorUHJvamVjdCgie0ZBRTA0RUMwLTMwMUYtMTFEMy1CRjRCLTAwQzA0Rjc5RUZCQ30iKSA9ICJDb3JlIiwgIkNvcmVcQ29yZS5jc3Byb2oiLCAiezMxNTBGM0U4LTlBMDQtNEZFRC1CMTZGLUNFQTU3NzU2RTkzNH0iDQorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorUHJvamVjdCgie0ZBRTA0RUMwLTMwMUYtMTFEMy1CRjRCLTAwQzA0Rjc5RUZCQ30iKSA9ICJUZXN0IiwgIlRlc3RcVGVzdC5jc3Byb2oiLCAiezJGNEQwNTZCLTQyMTEtNEExNy04RjQ3LTM3OTAxMDg1QjNBRX0iDQorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCisJCXszMTUwRjNFOC05QTA0LTRGRUQtQjE2Ri1DRUE1Nzc1NkU5MzR9ID0gezMxNTBGM0U4LTlBMDQtNEZFRC1CMTZGLUNFQTU3NzU2RTkzNH0NCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorR2xvYmFsDQorCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Db25maWd1cmF0aW9uKSA9IHByZVNvbHV0aW9uDQorCQlEZWJ1ZyA9IERlYnVnDQorCQlSZWxlYXNlID0gUmVsZWFzZQ0KKwlFbmRHbG9iYWxTZWN0aW9uDQorCUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb24pID0gcG9zdFNvbHV0aW9uDQorCQl7OTQ4RUUzNDQtRDAzMy00MzU4LTg4RTgtNzdGREUwODBEOTNDfS5EZWJ1Zy5BY3RpdmVDZmcgPSBEZWJ1Z3wuTkVUDQorCQl7OTQ4RUUzNDQtRDAzMy00MzU4LTg4RTgtNzdGREUwODBEOTNDfS5EZWJ1Zy5CdWlsZC4wID0gRGVidWd8Lk5FVA0KKwkJezk0OEVFMzQ0LUQwMzMtNDM1OC04OEU4LTc3RkRFMDgwRDkzQ30uUmVsZWFzZS5BY3RpdmVDZmcgPSBSZWxlYXNlfC5ORVQNCisJCXs5NDhFRTM0NC1EMDMzLTQzNTgtODhFOC03N0ZERTA4MEQ5M0N9LlJlbGVhc2UuQnVpbGQuMCA9IFJlbGVhc2V8Lk5FVA0KKwkJezMxNTBGM0U4LTlBMDQtNEZFRC1CMTZGLUNFQTU3NzU2RTkzNH0uRGVidWcuQWN0aXZlQ2ZnID0gRGVidWd8Lk5FVA0KKwkJezMxNTBGM0U4LTlBMDQtNEZFRC1CMTZGLUNFQTU3NzU2RTkzNH0uRGVidWcuQnVpbGQuMCA9IERlYnVnfC5ORVQNCisJCXszMTUwRjNFOC05QTA0LTRGRUQtQjE2Ri1DRUE1Nzc1NkU5MzR9LlJlbGVhc2UuQWN0aXZlQ2ZnID0gUmVsZWFzZXwuTkVUDQorCQl7MzE1MEYzRTgtOUEwNC00RkVELUIxNkYtQ0VBNTc3NTZFOTM0fS5SZWxlYXNlLkJ1aWxkLjAgPSBSZWxlYXNlfC5ORVQNCisJCXsyRjREMDU2Qi00MjExLTRBMTctOEY0Ny0zNzkwMTA4NUIzQUV9LkRlYnVnLkFjdGl2ZUNmZyA9IERlYnVnfC5ORVQNCisJCXsyRjREMDU2Qi00MjExLTRBMTctOEY0Ny0zNzkwMTA4NUIzQUV9LkRlYnVnLkJ1aWxkLjAgPSBEZWJ1Z3wuTkVUDQorCQl7MkY0RDA1NkItNDIxMS00QTE3LThGNDctMzc5MDEwODVCM0FFfS5SZWxlYXNlLkFjdGl2ZUNmZyA9IFJlbGVhc2V8Lk5FVA0KKwkJezJGNEQwNTZCLTQyMTEtNEExNy04RjQ3LTM3OTAxMDg1QjNBRX0uUmVsZWFzZS5CdWlsZC4wID0gUmVsZWFzZXwuTkVUDQorCUVuZEdsb2JhbFNlY3Rpb24NCisJR2xvYmFsU2VjdGlvbihTb2x1dGlvbkl0ZW1zKSA9IHBvc3RTb2x1dGlvbg0KKwkJLi5cTmV4dXNcV2ViXEdyaWRDb250cm9sLmFzY3guY3MgPSAuLlxOZXh1c1xXZWJcR3JpZENvbnRyb2wuYXNjeC5jcw0KKwkJcHJlYnVpbGQuYmF0ID0gcHJlYnVpbGQuYmF0DQorCUVuZEdsb2JhbFNlY3Rpb24NCisJR2xvYmFsU2VjdGlvbihFeHRlbnNpYmlsaXR5R2xvYmFscykgPSBwb3N0U29sdXRpb24NCisJRW5kR2xvYmFsU2VjdGlvbg0KKwlHbG9iYWxTZWN0aW9uKEV4dGVuc2liaWxpdHlBZGRJbnMpID0gcG9zdFNvbHV0aW9uDQorCUVuZEdsb2JhbFNlY3Rpb24NCitFbmRHbG9iYWwNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Rlc3QvQXNzZW1ibHlJbmZvLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9UZXN0L0Fzc2VtYmx5SW5mby5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWFmOTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9UZXN0L0Fzc2VtYmx5SW5mby5jcwpAQCAtMCwwICsxLDU2IEBACit1c2luZyBTeXN0ZW0uUmVmbGVjdGlvbjsNCisvLw0KKy8vIEdlbmVyYWwgSW5mb3JtYXRpb24gYWJvdXQgYW4gYXNzZW1ibHkgaXMgY29udHJvbGxlZCB0aHJvdWdoIHRoZSBmb2xsb3dpbmcgDQorLy8gc2V0IG9mIGF0dHJpYnV0ZXMuIENoYW5nZSB0aGVzZSBhdHRyaWJ1dGUgdmFsdWVzIHRvIG1vZGlmeSB0aGUgaW5mb3JtYXRpb24NCisvLyBhc3NvY2lhdGVkIHdpdGggYW4gYXNzZW1ibHkuDQorLy8NCitbYXNzZW1ibHkgOiBBc3NlbWJseVRpdGxlKCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseURlc2NyaXB0aW9uKCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseUNvbmZpZ3VyYXRpb24oIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5Q29tcGFueSgiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlQcm9kdWN0KCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseUNvcHlyaWdodCgiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlUcmFkZW1hcmsoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5Q3VsdHVyZSgiIildDQorDQorLy8NCisvLyBWZXJzaW9uIGluZm9ybWF0aW9uIGZvciBhbiBhc3NlbWJseSBjb25zaXN0cyBvZiB0aGUgZm9sbG93aW5nIGZvdXIgdmFsdWVzOg0KKy8vDQorLy8gICAgICBNYWpvciBWZXJzaW9uDQorLy8gICAgICBNaW5vciBWZXJzaW9uIA0KKy8vICAgICAgQnVpbGQgTnVtYmVyDQorLy8gICAgICBSZXZpc2lvbg0KKy8vDQorLy8gWW91IGNhbiBzcGVjaWZ5IGFsbCB0aGUgdmFsdWVzIG9yIHlvdSBjYW4gZGVmYXVsdCB0aGUgUmV2aXNpb24gYW5kIEJ1aWxkIE51bWJlcnMgDQorLy8gYnkgdXNpbmcgdGhlICcqJyBhcyBzaG93biBiZWxvdzoNCisNCitbYXNzZW1ibHkgOiBBc3NlbWJseVZlcnNpb24oIjEuMC4qIildDQorDQorLy8NCisvLyBJbiBvcmRlciB0byBzaWduIHlvdXIgYXNzZW1ibHkgeW91IG11c3Qgc3BlY2lmeSBhIGtleSB0byB1c2UuIFJlZmVyIHRvIHRoZSANCisvLyBNaWNyb3NvZnQgLk5FVCBGcmFtZXdvcmsgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBhc3NlbWJseSBzaWduaW5nLg0KKy8vDQorLy8gVXNlIHRoZSBhdHRyaWJ1dGVzIGJlbG93IHRvIGNvbnRyb2wgd2hpY2gga2V5IGlzIHVzZWQgZm9yIHNpZ25pbmcuIA0KKy8vDQorLy8gTm90ZXM6IA0KKy8vICAgKCopIElmIG5vIGtleSBpcyBzcGVjaWZpZWQsIHRoZSBhc3NlbWJseSBpcyBub3Qgc2lnbmVkLg0KKy8vICAgKCopIEtleU5hbWUgcmVmZXJzIHRvIGEga2V5IHRoYXQgaGFzIGJlZW4gaW5zdGFsbGVkIGluIHRoZSBDcnlwdG8gU2VydmljZQ0KKy8vICAgICAgIFByb3ZpZGVyIChDU1ApIG9uIHlvdXIgbWFjaGluZS4gS2V5RmlsZSByZWZlcnMgdG8gYSBmaWxlIHdoaWNoIGNvbnRhaW5zDQorLy8gICAgICAgYSBrZXkuDQorLy8gICAoKikgSWYgdGhlIEtleUZpbGUgYW5kIHRoZSBLZXlOYW1lIHZhbHVlcyBhcmUgYm90aCBzcGVjaWZpZWQsIHRoZSANCisvLyAgICAgICBmb2xsb3dpbmcgcHJvY2Vzc2luZyBvY2N1cnM6DQorLy8gICAgICAgKDEpIElmIHRoZSBLZXlOYW1lIGNhbiBiZSBmb3VuZCBpbiB0aGUgQ1NQLCB0aGF0IGtleSBpcyB1c2VkLg0KKy8vICAgICAgICgyKSBJZiB0aGUgS2V5TmFtZSBkb2VzIG5vdCBleGlzdCBhbmQgdGhlIEtleUZpbGUgZG9lcyBleGlzdCwgdGhlIGtleSANCisvLyAgICAgICAgICAgaW4gdGhlIEtleUZpbGUgaXMgaW5zdGFsbGVkIGludG8gdGhlIENTUCBhbmQgdXNlZC4NCisvLyAgICgqKSBJbiBvcmRlciB0byBjcmVhdGUgYSBLZXlGaWxlLCB5b3UgY2FuIHVzZSB0aGUgc24uZXhlIChTdHJvbmcgTmFtZSkgdXRpbGl0eS4NCisvLyAgICAgICBXaGVuIHNwZWNpZnlpbmcgdGhlIEtleUZpbGUsIHRoZSBsb2NhdGlvbiBvZiB0aGUgS2V5RmlsZSBzaG91bGQgYmUNCisvLyAgICAgICByZWxhdGl2ZSB0byB0aGUgcHJvamVjdCBvdXRwdXQgZGlyZWN0b3J5IHdoaWNoIGlzDQorLy8gICAgICAgJVByb2plY3QgRGlyZWN0b3J5JVxvYmpcPGNvbmZpZ3VyYXRpb24+LiBGb3IgZXhhbXBsZSwgaWYgeW91ciBLZXlGaWxlIGlzDQorLy8gICAgICAgbG9jYXRlZCBpbiB0aGUgcHJvamVjdCBkaXJlY3RvcnksIHlvdSB3b3VsZCBzcGVjaWZ5IHRoZSBBc3NlbWJseUtleUZpbGUgDQorLy8gICAgICAgYXR0cmlidXRlIGFzIFthc3NlbWJseTogQXNzZW1ibHlLZXlGaWxlKCIuLlxcLi5cXG15a2V5LnNuayIpXQ0KKy8vICAgKCopIERlbGF5IFNpZ25pbmcgaXMgYW4gYWR2YW5jZWQgb3B0aW9uIC0gc2VlIHRoZSBNaWNyb3NvZnQgLk5FVCBGcmFtZXdvcmsNCisvLyAgICAgICBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMuDQorLy8NCitbYXNzZW1ibHkgOiBBc3NlbWJseURlbGF5U2lnbihmYWxzZSldDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlLZXlGaWxlKCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseUtleU5hbWUoIiIpXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9CYXNlVGVzdC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9CYXNlVGVzdC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmRlZGRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9UZXN0L0Jhc2VUZXN0LmNzCkBAIC0wLDAgKzEsNzMgQEAKKy8qDQorICogQ29weXJpZ2h0IDIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyAqIA0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKiANCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqIA0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8NCit1c2luZyBTeXN0ZW07DQordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KK3VzaW5nIE5leHVzLkNvcmU7DQordXNpbmcgTlVuaXQuRnJhbWV3b3JrOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gUHJvdmlkZSBiYXNlIGNsYXNzIHNvIHVuaXQgdGVzdHMgY2FuIHNoYXJlIHV0aWxpdHkuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyANCisJW1Rlc3RGaXh0dXJlXQ0KKwlwdWJsaWMgY2xhc3MgQmFzZVRlc3QgOiBDYXRhbG9nQmFzZVRlc3QNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENvbmZpcm0gdGhhdCB0aGUgb3V0Y29tZSBpcyBhIG5vbi1udWxsLCBub24tZW1wdHkgbGlzdC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRleHQiPkNvbnRleHQgdG8gY29uZmlybTwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+VGhlIG5vbi1udWxsLCBub24tZW1wdHkgbGlzdDwvcmV0dXJucz4NCisJCS8vLyANCisJCXByb3RlY3RlZCBJTGlzdCBBc3NlcnRMaXN0T3V0Y29tZShJUmVxdWVzdENvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQlBc3NlcnROb21pbmFsKGNvbnRleHQpOw0KKwkJCUFzc2VydC5Jc1RydWUoY29udGV4dC5IYXNPdXRjb21lLCAiRXhwZWN0ZWQgY29tbWFuZCB0byBzZXQgYW4gT3V0Y29tZS4iKTsNCisJCQlJTGlzdCBsaXN0ID0gY29udGV4dC5PdXRjb21lIGFzIElMaXN0Ow0KKwkJCWJvb2wgbm90RW1wdHkgPSAoKGxpc3QgIT0gbnVsbCkgJiYgKGxpc3QuQ291bnQgPiAwKSk7DQorCQkJQXNzZXJ0LklzVHJ1ZShub3RFbXB0eSwgIkV4cGVjdGVkIG91dGNvbWUgdG8gYmUgYSBub3QtZW1wdHkgbGlzdCIpOw0KKwkJCXJldHVybiBsaXN0Ow0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEV4ZXJjaXNlIHRoZSB0ZXN0aW5nIGluZnJhc3RydWN0dXJlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgUGFzcygpDQorCQl7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRXhlcmNpc2UgR1VJRCBjcmVhdGlvbiwgDQorCQkvLy8gYW5kIHByb3ZpZGUgYSBkZXZpY2UgZm9yIGdlbmVyYXRpbmcgR1VJRHMgaWYgbmVlZGVkLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgR3VpZFN0cmluZygpDQorCQl7DQorCQkJSURpY3Rpb25hcnkgdGVzdCA9IG5ldyBIYXNodGFibGUoKTsNCisJCQlmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspDQorCQkJew0KKwkJCQlzdHJpbmcga2V5ID0gR3VpZC5OZXdHdWlkKCkuVG9TdHJpbmcoKTsNCisJCQkJQXNzZXJ0LklzTm90TnVsbChrZXkpOw0KKwkJCQlBc3NlcnQuSXNUcnVlKDM2ID09IGtleS5MZW5ndGgpOw0KKwkJCQl0ZXN0LkFkZChrZXksIGtleSk7IC8vIEFkZCB0aHJvd3MgYW4gZXhjZXB0aW9uIG9uIGR1cGxpY2F0ZSBrZXlzDQorCQkJfQ0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9Db21tYW5kcy9EaXJlY3RvcnlWaWV3VGVzdC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9Db21tYW5kcy9EaXJlY3RvcnlWaWV3VGVzdC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjcyNDFmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9UZXN0L0NvbW1hbmRzL0RpcmVjdG9yeVZpZXdUZXN0LmNzCkBAIC0wLDAgKzEsNDMgQEAKK3VzaW5nIE5leHVzLkNvcmU7DQordXNpbmcgTmV4dXMuQ29yZS5IZWxwZXJzOw0KK3VzaW5nIE5Vbml0LkZyYW1ld29yazsNCisNCituYW1lc3BhY2UgUGhvbmVCb29rLkNvcmUuQ29tbWFuZHMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEV4ZXJjaXNlIERpcmVjdG9yeSBWaWV3IENvbW1hbmQuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyANCisJW1Rlc3RGaXh0dXJlXQ0KKwlwdWJsaWMgY2xhc3MgRW50cnlGaW5kVGVzdCA6IEJhc2VUZXN0DQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb25maXJtIHRoYXQgQ29udGV4dCBjb250YWlucyB0aGUgZXhwZWN0ZWQgYXR0cmlidXRlcyBmb3IgdGhlIGxpc3QgZmlsdGVyLTBwcy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIENvbnRhaW5zRmlsdGVycygpDQorCQl7DQorCQkJSVJlcXVlc3RDb250ZXh0IGNvbnRleHQgPSBjYXRhbG9nLkV4ZWN1dGVSZXF1ZXN0KEFwcC5FTlRSWV9GSU5EKTsNCisJCQl0aGlzLkFzc2VydE5vbWluYWwoY29udGV4dCk7DQorCQkJc3RyaW5nW10gRklMVEVSUyA9IHtBcHAuTEFTVF9OQU1FX0xJU1QsIEFwcC5GSVJTVF9OQU1FX0xJU1QsIEFwcC5FWFRFTlNJT05fTElTVCwgQXBwLlVTRVJfTkFNRV9MSVNULCBBcHAuSElSRURfTElTVCwgQXBwLkhPVVJTX0xJU1R9Ow0KKwkJCWZvcmVhY2ggKHN0cmluZyBmaWx0ZXIgaW4gRklMVEVSUykNCisJCQl7DQorCQkJCUFzc2VydC5Jc1RydWUoY29udGV4dC5Db250YWlucyhmaWx0ZXIpLCBmaWx0ZXIgKyAiOiBFeHBlY3RlZCBjb250ZXh0IHRvIGNvbnRhaW4ga2V5LiIpOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb25maXJtIHRoYXQgSGVscGVyIGNvbnRhaW5zIHRoZSBleHBlY3RlZCBjb21tYW5kLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgSGVscGVyQ29udGFpbnMoKQ0KKwkJew0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IGNhdGFsb2cuR2V0SGVscGVyRm9yKEFwcC5FTlRSWV9GSU5EKTsNCisJCQlJUmVxdWVzdENvbW1hbmQgY29tbWFuZCA9IGhlbHBlci5Db21tYW5kOw0KKwkJCUFzc2VydC5Jc05vdE51bGwoY29tbWFuZCwgIkV4cGVjdGVkIEhlbHBlciB0byBoYXZlIGEgQ29tbWFuZCIpOw0KKwkJCUFzc2VydC5BcmVFcXVhbChBcHAuRU5UUllfRklORCwgY29tbWFuZC5JRCwgIkV4cGVjdGVkIEhlbHBlciB0byBoYXZlIFZpZXcgQ29tbWFuZC4iKTsNCisJCX0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Rlc3QvQ29tbWFuZHMvRmlsdGVyTGlzdHMuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Rlc3QvQ29tbWFuZHMvRmlsdGVyTGlzdHMuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTcxNjFjNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9Db21tYW5kcy9GaWx0ZXJMaXN0cy5jcwpAQCAtMCwwICsxLDE1MCBAQAorLyoNCisgKiBDb3B5cmlnaHQgMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICogDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqIA0KKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICogDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgTmV4dXMuQ29yZTsNCit1c2luZyBOZXh1cy5Db3JlLkhlbHBlcnM7DQordXNpbmcgTlVuaXQuRnJhbWV3b3JrOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZS5Db21tYW5kcw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gRXhlcmNpc2UgdGhlIHZhcmlvdXMgbGlzdHMgb2YgZGlzdGluY3QgdmFsdWVzIA0KKwkvLy8gdGhhdCBhcmUgdXNlZCB0byBmaWx0ZXIgdGhlIGRpcmVjdG9yeS4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlbVGVzdEZpeHR1cmVdDQorCXB1YmxpYyBjbGFzcyBGaWx0ZXJMaXN0c1Rlc3QgOiBCYXNlVGVzdA0KKwl7DQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQ29uZmlybSB0aGF0IGEgbGlzdCBpcyByZXR1cm5lZCBhcyB0aGUgb3V0Y29tZSwgDQorCQkvLy8gYW5kIHRoYXQgZWFjaCBpdGVtIG9uIHRoZSBsaXN0IGlzIG5vdC1lbXB0eSBhbmQgdW5pcXVlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+Q29udGV4dCByZXR1cm5lZCBieSBjb21tYW5kPC9wYXJhbT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBGaWx0ZXJMaXN0X1Jlc3VsdChJUmVxdWVzdENvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQlJTGlzdCBsaXN0ID0gQXNzZXJ0TGlzdE91dGNvbWUoY29udGV4dCk7DQorCQkJZm9yZWFjaCAoSUtleVZhbHVlIGl0ZW0gaW4gbGlzdCkNCisJCQl7DQorCQkJCUFzc2VydC5Jc05vdE51bGwoaXRlbSwgIkV4cGVjdGVkIGVhY2ggaXRlbSB0byBiZSBub24tbnVsbCIpOw0KKwkJCQlvYmplY3Qga2V5ID0gaXRlbS5WYWx1ZTsNCisJCQkJQXNzZXJ0LklzTm90TnVsbChrZXksICJFeHBlY3RlZCBlYWNoIGtleSB0byBiZSBub24tbnVsbCIpOw0KKwkJCQlzdHJpbmcga2V5c3RyaW5nID0ga2V5LlRvU3RyaW5nKCk7DQorCQkJCUFzc2VydC5Jc1RydWUoa2V5c3RyaW5nLkxlbmd0aCA+IDAsICJFeHBlY3RlZCBlYWNoIGtleSB0byBiZSBub24tZW1wdHkiKTsNCisJCQl9DQorCQkJSURpY3Rpb25hcnkga2V5cyA9IG5ldyBIYXNodGFibGUobGlzdC5Db3VudCk7DQorCQkJZm9yZWFjaCAoSUtleVZhbHVlIGl0ZW0gaW4gbGlzdCkNCisJCQl7DQorCQkJCXN0cmluZyBrZXkgPSBpdGVtLlZhbHVlLlRvU3RyaW5nKCk7DQorCQkJCWlmIChrZXlzLkNvbnRhaW5zKGtleSkpIEFzc2VydC5GYWlsKGtleSArICI6IEV4cGVjdGVkIGVhY2ggaXRlbSB0byBiZSB1bmlxdWUiKTsNCisJCQkJa2V5cy5BZGQoa2V5LCBrZXkpOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBFeGVyY2lzZSB0aGUgZmlsdGVyIGNvbW1hbmRzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgVGVzdEZpbHRlckxpc3RzKCkNCisJCXsNCisJCQlzdHJpbmdbXSBGSUxURVJTID0ge0FwcC5MQVNUX05BTUVfTElTVCwgQXBwLkZJUlNUX05BTUVfTElTVCwgQXBwLkVYVEVOU0lPTl9MSVNULCBBcHAuVVNFUl9OQU1FX0xJU1QsIEFwcC5ISVJFRF9MSVNULCBBcHAuSE9VUlNfTElTVH07DQorCQkJZm9yZWFjaCAoc3RyaW5nIGZpbHRlciBpbiBGSUxURVJTKQ0KKwkJCXsNCisJCQkJSVJlcXVlc3RDb250ZXh0IGNvbnRleHQgPSBjYXRhbG9nLkV4ZWN1dGVSZXF1ZXN0KGZpbHRlcik7DQorCQkJCUZpbHRlckxpc3RfUmVzdWx0KGNvbnRleHQpOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBFeGNlcmNpc2UgZW50cnkgZmlsZSBhbmQgdmFsaWRhdGUga2V5IHZhbHVlIGxpc3QuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJrZXkiPklEIGZvciBsaXN0PC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5UaGUgdmFsaWRhdGVkIGxpc3Q8L3JldHVybnM+DQorCQkvLy8gDQorCQlwcml2YXRlIElLZXlWYWx1ZUxpc3QgRmlsdGVyTGlzdChzdHJpbmcga2V5KQ0KKwkJew0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IGNhdGFsb2cuR2V0SGVscGVyRm9yKEFwcC5FTlRSWV9GSU5EKTsNCisJCQloZWxwZXIuRXhlY3V0ZSgpOw0KKwkJCUlLZXlWYWx1ZUxpc3QgbGlzdCA9IGhlbHBlci5Dcml0ZXJpYVtrZXldIGFzIElLZXlWYWx1ZUxpc3Q7DQorCQkJQXNzZXJ0LklzTm90TnVsbChsaXN0LCAiRXhwZWN0ZWQgS2V5VmFsdWVMaXN0Iik7DQorCQkJcmV0dXJuIGxpc3Q7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRXhlcmNpc2UgRXh0ZW5zaW9uIExpc3QgZmlsdGVyLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgVGVzdEZpbHRlckZvcm1hdF9leHRlbnNpb24oKQ0KKwkJew0KKwkJCUlLZXlWYWx1ZUxpc3QgbGlzdCA9IEZpbHRlckxpc3QoQXBwLkVYVEVOU0lPTl9MSVNUKTsNCisJCQlmb3JlYWNoIChJS2V5VmFsdWUgaXRlbSBpbiBsaXN0KQ0KKwkJCXsNCisJCQkJc3RyaW5nIGtleSA9IGl0ZW0uVmFsdWUgYXMgc3RyaW5nOw0KKwkJCQlBc3NlcnQuSXNUcnVlKGtleS5MZW5ndGggPiAiMTIzNDU2Nzg5MCIuTGVuZ3RoLCAiRXhwZWN0ZWQgZm9ybWF0dGVkIGV4dGVuc2lvbiwgbm90OiAiICsga2V5KTsNCisJCQl9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRXhlcmNpc2UgSGlyZWQgZmlsdGVyLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgVGVzdEZpbHRlckZvcm1hdF9oaXJlZCgpDQorCQl7DQorCQkJSUtleVZhbHVlTGlzdCBsaXN0ID0gRmlsdGVyTGlzdChBcHAuSElSRURfTElTVCk7DQorCQkJZm9yZWFjaCAoSUtleVZhbHVlIGl0ZW0gaW4gbGlzdCkNCisJCQl7DQorCQkJCXN0cmluZyBrZXkgPSBpdGVtLlZhbHVlIGFzIHN0cmluZzsNCisJCQkJYm9vbCBva2F5ID0gKGtleS5MZW5ndGggPiAwKSAmJiAoa2V5Lkxlbmd0aCA8ICIjIy8jIy8jIyMjICIuTGVuZ3RoKTsNCisJCQkJQXNzZXJ0LklzVHJ1ZShva2F5LCAiRXhwZWN0ZWQgc2hvcnQgZGF0ZSBmb3JtYXQsIG5vdDogIiArIGtleSk7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJW1Rlc3RdDQorCQlwdWJsaWMgdm9pZCBJbml0aWFsKCkNCisJCXsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSBjYXRhbG9nLkdldEhlbHBlckZvcihBcHAuRU5UUllfTElTVCk7DQorCQkJaGVscGVyLkNyaXRlcmlhWyJpbml0aWFsIl0gPSAiQyUiOw0KKwkJCWhlbHBlci5FeGVjdXRlKCk7DQorCQkJQXNzZXJ0LklzVHJ1ZShoZWxwZXIuSXNOb21pbmFsLCBoZWxwZXIuQWxlcnRzVGV4dCk7DQorCQkJSUxpc3QgbGlzdCA9IGhlbHBlci5PdXRjb21lOw0KKwkJCUFzc2VydC5Jc1RydWUobGlzdC5Db3VudCA+IDAsICJFeHBlY3RlZCBvbmUgb3IgbW9yZSBlbnRyaWVzIik7DQorCQkJZm9yZWFjaCAoQXBwRW50cnkgZW50cnkgaW4gbGlzdCkNCisJCQl7DQorCQkJCUFzc2VydC5Jc1RydWUoIkMiLkVxdWFscyhlbnRyeS5sYXN0X25hbWUuU3Vic3RyaW5nKDAsIDEpKSwgIkV4cGVjdGVkIGFsbCB0byBiZSBDKiIpOw0KKwkJCX0NCisJCQlpbnQgY291bnQgPSBDb252ZXJ0LlRvSW50MzIoaGVscGVyLkNyaXRlcmlhWyJpdGVtX2NvdW50Il0pOw0KKwkJCUFzc2VydC5Jc1RydWUoY291bnQgPT0gbGlzdC5Db3VudCwgIkV4cGVjdGVkIGNvdW50cyB0byBtYXRjaCIpOw0KKwkJfQ0KKw0KKwkJW1Rlc3RdDQorCQlwdWJsaWMgdm9pZCBJbml0aWFsRGlzdGluY3QoKQ0KKwkJew0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IGNhdGFsb2cuR2V0SGVscGVyRm9yKEFwcC5FTlRSWV9JTklUSUFMKTsNCisJCQloZWxwZXIuRXhlY3V0ZSgpOw0KKwkJCUFzc2VydC5Jc1RydWUoaGVscGVyLklzTm9taW5hbCwgaGVscGVyLkFsZXJ0c1RleHQpOw0KKwkJCUlMaXN0IGxpc3QgPSBoZWxwZXIuT3V0Y29tZTsNCisJCQlBc3NlcnQuSXNUcnVlKGxpc3QuQ291bnQgPiAwLCAiRXhwZWN0ZWQgb25lIG9yIG1vcmUgZW50cmllcyIpOw0KKwkJCXN0cmluZyBhID0gbGlzdFswXSBhcyBzdHJpbmc7DQorCQkJQXNzZXJ0LklzTm90TnVsbChhLCAiRXhwZWN0ZWQgbGV0dGVyIik7DQorCQkJQXNzZXJ0LklzVHJ1ZSgiQyIuRXF1YWxzKGEpLCAiRXhwZWN0ZWQgQyIpOw0KKwkJfQ0KKw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9Db21tYW5kcy9TZWxlY3RBbGxUZXN0LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9UZXN0L0NvbW1hbmRzL1NlbGVjdEFsbFRlc3QuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjEyZjA5MQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9Db21tYW5kcy9TZWxlY3RBbGxUZXN0LmNzCkBAIC0wLDAgKzEsMTEzIEBACisvKg0KKyAqIENvcHlyaWdodCAyMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKiANCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBOZXh1cy5Db3JlOw0KK3VzaW5nIE5leHVzLkNvcmUuSGVscGVyczsNCit1c2luZyBOVW5pdC5GcmFtZXdvcms7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5Db3JlLkNvbW1hbmRzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBFeGVyY2lzZSBTZWxlY3RBbGwgQ29tbWFuZCBwZXIgW09WUi01XS4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlbVGVzdEZpeHR1cmVdDQorCXB1YmxpYyBjbGFzcyBTZWxlY3RBbGxUZXN0IDogQmFzZVRlc3QNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEFzc2VydCByZXN1bHQgb2YgU2VsZWN0QWxsLCBhZnRlciBhbm90aGVyIG1ldGhvZCBydW5zIHRoZSBjb21tYW5kLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+Q29udGV4dCB3aXRoIHJlc3VsdCB0byBhc3NlcnQuPC9wYXJhbT4JDQorCQkvLy8gCQ0KKwkJcHJpdmF0ZSB2b2lkIFNlbGVjdEFsbF9SZXN1bHQoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJSUxpc3QgbGlzdCA9IEFzc2VydExpc3RPdXRjb21lKGNvbnRleHQpOw0KKwkJCUlEaWN0aW9uYXJ5IHJvdyA9IGxpc3RbMF0gYXMgSURpY3Rpb25hcnk7DQorCQkJQXNzZXJ0LklzTm90TnVsbChyb3csICJFeHBlY3RlZCBsaXN0IGVudHJ5IHRvIGJlIGFuIElEaWN0aW9uYXJ5LiIpOw0KKwkJCXN0cmluZ1tdIEtFWVMgPSB7QXBwLkZJUlNUX05BTUUsIEFwcC5MQVNUX05BTUUsIEFwcC5VU0VSX05BTUUsIEFwcC5FWFRFTlNJT04sIEFwcC5ISVJFRCwgQXBwLkhPVVJTLCBBcHAuRURJVE9SfTsNCisJCQlib29sIHZhbGlkID0gdHJ1ZTsNCisJCQlmb3JlYWNoIChzdHJpbmcga2V5IGluIEtFWVMpDQorCQkJew0KKwkJCQl2YWxpZCA9IHZhbGlkICYmIHJvdy5Db250YWlucyhrZXkpOw0KKwkJCX0NCisJCQlBc3NlcnQuSXNUcnVlKHZhbGlkLCAiRXhwZWN0ZWQgcm93IHRvIGNvbnRhaW4gYWxsIGtleXMuIik7DQorCQl9DQorDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRmlsdGVyIGFsbCBhbmQgc3VjY2VlZCwgdXNpbmcgY2F0YWxvZy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIFNlbGVjdEFsbF9QYXNzKCkNCisJCXsNCisJCQlJUmVxdWVzdENvbnRleHQgY29udGV4dCA9IGNhdGFsb2cuRXhlY3V0ZVJlcXVlc3QoQXBwLkVOVFJZX0xJU1QpOw0KKwkJCVNlbGVjdEFsbF9SZXN1bHQoY29udGV4dCk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRXhlcmNpc2UgRW50cnkgTGlzdCBhbmQgdmFsaWRhdGUgaGlyZWQgYW5kIGV4dGVuc2lvbiBzdHJpbmcgZm9ybWF0dGluZy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIEZpbHRlckhlbHBlcl9Gb3JtYXQoKQ0KKwkJew0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IGNhdGFsb2cuR2V0SGVscGVyRm9yKEFwcC5FTlRSWV9MSVNUKTsNCisJCQloZWxwZXIuRXhlY3V0ZSgpOw0KKwkJCUFzc2VydE5vbWluYWwoaGVscGVyKTsNCisJCQlBcHBFbnRyeUxpc3QgbGlzdCA9IGhlbHBlci5PdXRjb21lIGFzIEFwcEVudHJ5TGlzdDsNCisJCQlBc3NlcnQuSXNOb3ROdWxsKGxpc3QsICJFeHBlY3RlZCBsaXN0IHRvIGJlIEFwcEVudHJ5TGlzdCIpOw0KKwkJCUFwcEVudHJ5IHJvdyA9IGxpc3RbMF0gYXMgQXBwRW50cnk7DQorCQkJQXNzZXJ0LklzTm90TnVsbChyb3csICJFeHBlY3RlZCByb3dzIHRvIGJlIEFwcEVudHJpZXMiKTsNCisNCisJCQlzdHJpbmcgaGlyZWQgPSByb3cuaGlyZWQ7DQorCQkJQXNzZXJ0LklzTm90TnVsbChoaXJlZCwgIkV4cGVjdGVkIGVhY2ggcm93IHRvIGhhdmUgYSBoaXJlZCBkYXRlLiIpOw0KKwkJCUFzc2VydC5Jc1RydWUoaGlyZWQuTGVuZ3RoIDwgIiMjLyMjLyMjIyMgIi5MZW5ndGgsIGhpcmVkICsgIjogRXhwZWN0ZWQgc2hvcnQgZGF0ZSBmb3JtYXQuIik7DQorDQorCQkJc3RyaW5nIGV4dGVuc2lvbiA9IHJvdy5leHRlbnNpb247DQorCQkJQXNzZXJ0LklzTm90TnVsbChleHRlbnNpb24sICJFeHBlY3RlZCBlYWNoIHJvdyB0byBoYXZlIGFuIGV4dGVuc2lvbi4iKTsNCisJCQlBc3NlcnQuSXNUcnVlKGV4dGVuc2lvbi5MZW5ndGggPiAiMTIzNDU2Nzg5MCIuTGVuZ3RoLCBleHRlbnNpb24gKyAiOiBFeHBlY3RlZCBmb3JtYXR0ZWQgZXh0ZW5zaW9uLiIpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEV4ZXJjaXNlIGN1c3RvbSBwYWdpbmcgDQorCQkvLy8gKHJldHJpZXZlIG9ubHkgdmlzaWJsZSBzZWN0aW9uIG9mIHRoZSByZXN1bHQgc2UpLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgU2VsZWN0QWxsX0xpbWl0KCkNCisJCXsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSBjYXRhbG9nLkdldEhlbHBlckZvcihBcHAuRU5UUllfTElTVCk7DQorCQkJaGVscGVyLkNyaXRlcmlhW0FwcC5JVEVNX0xJTUlUXSA9IDI7DQorCQkJaGVscGVyLkNyaXRlcmlhW0FwcC5JVEVNX09GRlNFVF0gPSAwOw0KKwkJCWhlbHBlci5FeGVjdXRlKCk7DQorCQkJaWYgKCFoZWxwZXIuSXNOb21pbmFsKSBBc3NlcnQuRmFpbChoZWxwZXIuQWxlcnRzVGV4dCk7DQorCQkJSUxpc3QgbGlzdCA9IGhlbHBlci5PdXRjb21lOw0KKwkJCUFzc2VydC5Jc1RydWUobGlzdC5Db3VudCA9PSAyLCAiRXhwZWN0ZWQgcmVzdWx0IHNldCB0byBiZSBsaW1pdGVkIHRvIHR3byBlbnRyaWVzLiIpOw0KKwkJCUFwcEVudHJ5IGVudHJ5ID0gbGlzdFswXSBhcyBBcHBFbnRyeTsNCisJCQloZWxwZXIuQ3JpdGVyaWFbQXBwLklURU1fTElNSVRdID0gMjsNCisJCQloZWxwZXIuQ3JpdGVyaWFbQXBwLklURU1fT0ZGU0VUXSA9IDM7DQorCQkJaGVscGVyLkV4ZWN1dGUoKTsNCisJCQlJTGlzdCBsaXN0MiA9IGhlbHBlci5PdXRjb21lOw0KKwkJCUFwcEVudHJ5IGVudHJ5MiA9IGxpc3QyWzBdIGFzIEFwcEVudHJ5Ow0KKwkJCUFzc2VydC5Jc0ZhbHNlKGVudHJ5LmVudHJ5X2tleS5FcXVhbHMoZW50cnkyLmVudHJ5X2tleSksICJFeHBlY3RlZCByZXN1bHQgc2V0cyB0byBiZSBkaWZmZXJlbnQiKTsNCisJCQlpbnQgY291bnQgPSBDb252ZXJ0LlRvSW50MzIoaGVscGVyLkNyaXRlcmlhW0FwcC5JVEVNX0NPVU5UXSk7DQorCQkJQXNzZXJ0LklzVHJ1ZShjb3VudCA+IDIsICJFeHBlY3RlZCB0aGUgb3ZlcmFsbCBjb3VudCB0byBiZSBoaWdoZXIiKTsNCisJCX0NCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Rlc3QvT2JqZWN0cy54bWwgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Rlc3QvT2JqZWN0cy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY5YWJkYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9PYmplY3RzLnhtbApAQCAtMCwwICsxLDExIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4gDQorPG9iamVjdHMgeG1sbnM9Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCIgDQorICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIA0KKyAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCBodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQveHNkL3NwcmluZy1vYmplY3RzLnhzZCI+DQorDQorICA8aW1wb3J0IHJlc291cmNlPSJSZXNvdXJjZXMvQXBwQmFzZS54bWwiLz4NCisgIDxpbXBvcnQgcmVzb3VyY2U9IlJlc291cmNlcy9BcHBDb25maWcueG1sIi8+DQorICA8aW1wb3J0IHJlc291cmNlPSJSZXNvdXJjZXMvQXBwRmllbGRzLnhtbCIvPg0KKyAgPGltcG9ydCByZXNvdXJjZT0iUmVzb3VyY2VzL0NhdGFsb2cueG1sIi8+DQorDQorPC9vYmplY3RzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9SZXNvdXJjZXMvQXBwQmFzZS54bWwgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Rlc3QvUmVzb3VyY2VzL0FwcEJhc2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiYjExZTYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Rlc3QvUmVzb3VyY2VzL0FwcEJhc2UueG1sCkBAIC0wLDAgKzEsMzYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/PiANCis8b2JqZWN0cyB4bWxucz0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0IiANCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgDQorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0IGh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldC94c2Qvc3ByaW5nLW9iamVjdHMueHNkIj4NCisNCisgPCEtLSBCYXNlIGVsZW1lbnQgKHN1cGVyIHBhcmVudCktLT4NCisgDQorIDxvYmplY3QgaWQ9IkJhc2VNYXBwZXIiIGFic3RyYWN0PSJ0cnVlIj4NCisgICAgIDxwcm9wZXJ0eSBuYW1lPSJNYXBwZXIiPjxyZWYgb2JqZWN0PSJNYXBwZXIiLz48L3Byb3BlcnR5Pg0KKyA8L29iamVjdD4NCisgDQorIDwhLS0gQmFzZSBjbGFzcyBwYXJlbnRzIC0tPiANCisNCisJPG9iamVjdCBpZD0iQmFzZUNoYWluIiB0eXBlPSJOZXh1cy5Db3JlLlJlcXVlc3RDaGFpbiwgTmV4dXMuQ29yZSIvPg0KKwkNCisJPG9iamVjdCBpZD0iQmFzZUNvdW50IiB0eXBlPSJQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlQ291bnQsIFBob25lQm9vay5Db3JlIiBwYXJlbnQ9IkJhc2VNYXBwZXIiLz4NCisNCisJPG9iamVjdCBpZD0iQmFzZUVudHJ5IiB0eXBlPSJQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlRW50cnksIFBob25lQm9vay5Db3JlIiBwYXJlbnQ9IkJhc2VNYXBwZXIiLz4NCisJDQorCTxvYmplY3QgaWQ9IkJhc2VGaWx0ZXJMaXN0IiB0eXBlPSJQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlRmlsdGVyTGlzdCwgUGhvbmVCb29rLkNvcmUiIHBhcmVudD0iQmFzZU1hcHBlciIvPg0KKwkNCisJPG9iamVjdCBpZD0iQmFzZUZpZWxkQ29udGV4dCIgdHlwZT0iTmV4dXMuRXh0cmFzLlNwcmluZy5GaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9Ik1lc3NhZ2VTb3VyY2UiPg0KKwkJCTxyZWYgb2JqZWN0PSJtZXNzYWdlU291cmNlIiAvPg0KKwkJPC9wcm9wZXJ0eT4JCQ0KKwk8L29iamVjdD4NCisJDQorCTxvYmplY3QgaWQ9IkJhc2VLZXlWYWx1ZVByb2Nlc3NvciIgdHlwZT0iTmV4dXMuQ29yZS5WYWxpZGF0b3JzLktleVZhbHVlUHJvY2Vzc29yIi8+DQorDQorCTxvYmplY3QgaWQ9IkJhc2VMaXN0IiB0eXBlPSJQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlTGlzdCwgUGhvbmVCb29rLkNvcmUiIHBhcmVudD0iQmFzZU1hcHBlciIvPg0KKw0KKwk8b2JqZWN0IGlkPSJCYXNlU2F2ZSIgdHlwZT0iUGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuQmFzZVNhdmUsIFBob25lQm9vay5Db3JlIiBwYXJlbnQ9IkJhc2VNYXBwZXIiLz4NCisNCisgICAgPG9iamVjdCBpZD0iRW50cnlJbml0aWFsIiB0eXBlPSJQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5FbnRyeUluaXRpYWwsIFBob25lQm9vay5Db3JlIiBwYXJlbnQ9IkJhc2VNYXBwZXIiLz4NCisNCis8L29iamVjdHM+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9UZXN0L1Jlc291cmNlcy9BcHBDb25maWcueG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9UZXN0L1Jlc291cmNlcy9BcHBDb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzYmJjYmQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Rlc3QvUmVzb3VyY2VzL0FwcENvbmZpZy54bWwKQEAgLTAsMCArMSw2NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+IA0KKzxvYmplY3RzIHhtbG5zPSJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQiIA0KKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiANCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQgaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0L3hzZC9zcHJpbmctb2JqZWN0cy54c2QiPg0KKw0KKyA8IS0tIE1lc3NhZ2UgU291cmNlIC0tPg0KKw0KKwk8b2JqZWN0IGlkPSJtZXNzYWdlU291cmNlIiB0eXBlPSJTcHJpbmcuQ29udGV4dC5TdXBwb3J0LlJlc291cmNlU2V0TWVzc2FnZVNvdXJjZSwgU3ByaW5nLkNvcmUiPg0KKyAgICAgICAgPHByb3BlcnR5IG5hbWU9IlJlc291cmNlTWFuYWdlcnMiPg0KKyAgICAgICAgICAgIDxsaXN0Pg0KKyAgICAgICAgICAgICAgICA8dmFsdWU+UGhvbmVCb29rLkNvcmUuTWVzc2FnZXMsIFBob25lQm9vay5Db3JlPC92YWx1ZT4NCisgICAgICAgICAgICAgICAgPHZhbHVlPk5leHVzLldlYi5NZXNzYWdlcywgTmV4dXMuV2ViPC92YWx1ZT4NCisgICAgICAgICAgICA8L2xpc3Q+DQorICAgICAgICA8L3Byb3BlcnR5PiAgICANCisgICAgPC9vYmplY3Q+DQorDQorDQorIDwhLS0gUmVxdWVzdCBQcm9jZXNzb3JzIC0tPg0KKwkNCisgIDxvYmplY3QgaWQ9ImNvbnZlcnRfaW5wdXQiIHR5cGU9Ik5leHVzLkNvcmUuVmFsaWRhdG9ycy5Db252ZXJ0SW5wdXQiPg0KKyAgICA8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5jb252ZXJ0X2lucHV0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKyAgPC9vYmplY3Q+DQorDQorICA8b2JqZWN0IGlkPSJmb3JtYXRfb3V0cHV0IiB0eXBlPSJOZXh1cy5Db3JlLlZhbGlkYXRvcnMuRm9ybWF0T3V0cHV0Ij4NCisgICAgPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+Zm9ybWF0X291dHB1dDwvdmFsdWU+PC9wcm9wZXJ0eT4gICAgDQorICA8L29iamVjdD4NCisgIA0KKyAgPG9iamVjdCBpZD0iY2xlYXJfY29udGV4dCIgdHlwZT0iTmV4dXMuQ29yZS5WYWxpZGF0b3JzLkNsZWFyQ29udGV4dCI+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmNsZWFyX2NvbnRleHQ8L3ZhbHVlPjwvcHJvcGVydHk+ICAgIA0KKyAgPC9vYmplY3Q+DQorDQorIDwhLS0gcHJlLW9wIC0tPg0KKw0KKyAgPG9iamVjdCBpZD0icHJlLW9wIiBwYXJlbnQ9IkJhc2VDaGFpbiI+DQorCTxwcm9wZXJ0eSBuYW1lPSJBZGRDb21tYW5kcyI+DQorCQk8bGlzdD4NCisJCQk8cmVmIG9iamVjdD0iY29udmVydF9pbnB1dCIvPg0KKwkJPC9saXN0PiAgIA0KKyAgICA8L3Byb3BlcnR5PiAgICAgICAgICAgDQorICA8L29iamVjdD4gIA0KKyAgDQorIDwhLS0gcG9zdC1vcCAtLT4NCisNCisgIDxvYmplY3QgaWQ9InBvc3Qtb3AiIHBhcmVudD0iQmFzZUNoYWluIj4NCisJPHByb3BlcnR5IG5hbWU9IkFkZENvbW1hbmRzIj4NCisJCTxsaXN0Pg0KKwkJCTxyZWYgb2JqZWN0PSJmb3JtYXRfb3V0cHV0Ii8+DQorCQk8L2xpc3Q+ICAgDQorICAgIDwvcHJvcGVydHk+ICAgICAgICAgICANCisgIDwvb2JqZWN0Pg0KKyAgICAJCQ0KKyA8IS0tIENhdGFsb2cgLS0+DQorIA0KKyAgPG9iamVjdCBpZD0iQ2F0YWxvZyIgdHlwZT0iTmV4dXMuRXh0cmFzLlNwcmluZy5DYXRhbG9nIj4NCisJICA8cHJvcGVydHkgbmFtZT0iRmllbGRUYWJsZSI+PHJlZiBvYmplY3Q9IkZpZWxkVGFibGUiLz48L3Byb3BlcnR5Pg0KKwkgIDxwcm9wZXJ0eSBuYW1lPSJQcmVPcCI+PHJlZiBvYmplY3Q9InByZS1vcCIvPjwvcHJvcGVydHk+DQorCSAgPHByb3BlcnR5IG5hbWU9IlBvc3RPcCI+PHJlZiBvYmplY3Q9InBvc3Qtb3AiLz48L3Byb3BlcnR5Pg0KKwkgIDxwcm9wZXJ0eSBuYW1lPSJWaWV3SGVscGVyIj48b2JqZWN0IHR5cGU9Ik5leHVzLldlYi5XZWJIZWxwZXIsIE5leHVzLldlYiIgc2luZ2xldG9uPSJmYWxzZSIvPjwvcHJvcGVydHk+DQorIDwvb2JqZWN0Pg0KKyANCis8IS0tIGlCQVRJUyBNYXBwZXIgLS0+DQorICANCisgIDxvYmplY3QgaWQ9Ik1hcHBlciIgdHlwZT0iSUJhdGlzTmV0LkRhdGFNYXBwZXIuTWFwcGVyLCBJQmF0aXNOZXQuRGF0YU1hcHBlciIgDQorCQlmYWN0b3J5LW1ldGhvZD0iSW5zdGFuY2UiLz4gDQorICAgICAgDQorPC9vYmplY3RzPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9SZXNvdXJjZXMvQXBwRmllbGRzLnhtbCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9SZXNvdXJjZXMvQXBwRmllbGRzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDNmYzJiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9UZXN0L1Jlc291cmNlcy9BcHBGaWVsZHMueG1sCkBAIC0wLDAgKzEsMTE1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4gDQorPG9iamVjdHMgeG1sbnM9Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCIgDQorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIA0KKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCBodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQveHNkL3NwcmluZy1vYmplY3RzLnhzZCI+DQorDQorCSA8IS0tIEZpZWxkVGFibGUgLS0+DQorDQorCTxvYmplY3QgaWQ9IkZpZWxkVGFibGUiIHR5cGU9Ik5leHVzLkNvcmUuVGFibGVzLkZpZWxkVGFibGUiPg0KKwkJPHByb3BlcnR5IG5hbWU9IkFkZEZpZWxkQ29udGV4dHMiPg0KKwkJCTxsaXN0Pg0KKwkJCQk8cmVmIG9iamVjdD0ibGFzdF9uYW1lIi8+IA0KKwkJCQk8cmVmIG9iamVjdD0iZmlyc3RfbmFtZSIvPiANCisJCQkJPHJlZiBvYmplY3Q9ImV4dGVuc2lvbiIvPiANCisJCQkJPHJlZiBvYmplY3Q9InVzZXJfbmFtZSIvPiANCisJCQkJPHJlZiBvYmplY3Q9ImhpcmVkIi8+IA0KKwkJCQk8cmVmIG9iamVjdD0iaG91cnMiLz4gCQkJCQ0KKwkJCQk8cmVmIG9iamVjdD0iX2VudHJ5X2xpc3QiLz4gDQorCQkJCTxyZWYgb2JqZWN0PSJfZW50cnlfbGlzdF9jb3VudCIvPiANCisJCQkJPHJlZiBvYmplY3Q9Il9leHRlbnNpb25fbGlzdCIvPg0KKwkJCQk8cmVmIG9iamVjdD0iX2hpcmVkX2xpc3QiLz4NCisJCQk8L2xpc3Q+DQorCQk8L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IkFkZFByb2Nlc3NvcnMiPg0KKwkJCTxsaXN0Pg0KKwkJCQk8cmVmIG9iamVjdD0iRGF0ZVRpbWVQcm9jZXNzb3IiLz4gDQorCQkJCTxyZWYgb2JqZWN0PSJUZWxlcGhvbmVQcm9jZXNzb3IiLz4gDQorCQkJCTxyZWYgb2JqZWN0PSJFbnRyeUxpc3RQcm9jZXNzb3IiLz4gDQorCQkJCTxyZWYgb2JqZWN0PSJFeHRlbnNpb25MaXN0UHJvY2Vzc29yIi8+DQorCQkJCTxyZWYgb2JqZWN0PSJIaXJlZExpc3RQcm9jZXNzb3IiLz4NCisJCQk8L2xpc3Q+DQorCQk8L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0ibGFzdF9uYW1lIiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+bGFzdF9uYW1lPC92YWx1ZT48L3Byb3BlcnR5PgkNCisJPC9vYmplY3Q+DQorDQorCTxvYmplY3QgaWQ9ImZpcnN0X25hbWUiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5maXJzdF9uYW1lPC92YWx1ZT48L3Byb3BlcnR5PgkNCisJPC9vYmplY3Q+DQorDQorCTxvYmplY3QgaWQ9InVzZXJfbmFtZSIgcGFyZW50PSJCYXNlRmllbGRDb250ZXh0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPnVzZXJfbmFtZTwvdmFsdWU+PC9wcm9wZXJ0eT4JDQorCTwvb2JqZWN0Pg0KKwkNCisJPG9iamVjdCBpZD0iZXh0ZW5zaW9uIiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+ZXh0ZW5zaW9uPC92YWx1ZT48L3Byb3BlcnR5PgkJDQorCQk8cHJvcGVydHkgbmFtZT0iUHJvY2Vzc29yIj48cmVmIG9iamVjdD0iVGVsZXBob25lUHJvY2Vzc29yIi8+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorDQorCTxvYmplY3QgaWQ9ImhpcmVkIiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+aGlyZWQ8L3ZhbHVlPjwvcHJvcGVydHk+CQ0KKwkJPHByb3BlcnR5IG5hbWU9IlByb2Nlc3NvciI+PHJlZiBvYmplY3Q9IkRhdGVUaW1lUHJvY2Vzc29yIi8+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorCQ0KKwk8b2JqZWN0IGlkPSJob3VycyIgcGFyZW50PSJCYXNlRmllbGRDb250ZXh0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmhvdXJzPC92YWx1ZT48L3Byb3BlcnR5PgkNCisJPC9vYmplY3Q+DQorCQ0KKwk8b2JqZWN0IGlkPSJlZGl0b3IiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5lZGl0b3I8L3ZhbHVlPjwvcHJvcGVydHk+CQ0KKwk8L29iamVjdD4NCisNCisJPCEtLSBwcm9wZXJ0eSBuYW1lPSJDb250cm9sVHlwZU5hbWUiPjx2YWx1ZT5DaGVja0JveDwvdmFsdWU+PC9wcm9wZXJ0eSAtLT4JDQorDQorCTwhLS0gV2UgbmVlZCB0byAiaGFzaCIgdGhlIG5hbWUgd2l0aCAiXyIgdG8gYXZvaWQgY29uZmxpY3Qgd2l0aCB0aGUgZmlsdGVyIENvbW1hbmQgLS0+DQorCTxvYmplY3QgaWQ9Il9lbnRyeV9saXN0IiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+ZW50cnlfbGlzdDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJQcm9jZXNzb3IiPjxyZWYgb2JqZWN0PSJFbnRyeUxpc3RQcm9jZXNzb3IiLz48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisJCQ0KKwk8b2JqZWN0IGlkPSJfZW50cnlfbGlzdF9jb3VudCIgcGFyZW50PSJCYXNlRmllbGRDb250ZXh0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmVudHJ5X2xpc3RfY291bnQ8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iUHJvY2Vzc29yIj48cmVmIG9iamVjdD0iQ29sbGVjdGlvblByb2Nlc3NvciIvPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKw0KKwk8b2JqZWN0IGlkPSJfZXh0ZW5zaW9uX2xpc3QiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5leHRlbnNpb25fbGlzdDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJQcm9jZXNzb3IiPjxyZWYgb2JqZWN0PSJFeHRlbnNpb25MaXN0UHJvY2Vzc29yIi8+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorDQorCTxvYmplY3QgaWQ9Il9oaXJlZF9saXN0IiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+aGlyZWRfbGlzdDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJQcm9jZXNzb3IiPjxyZWYgb2JqZWN0PSJIaXJlZExpc3RQcm9jZXNzb3IiLz48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0iQ29sbGVjdGlvblByb2Nlc3NvciIgdHlwZT0iTmV4dXMuQ29yZS5WYWxpZGF0b3JzLkNvbGxlY3Rpb25Qcm9jZXNzb3IsIE5leHVzLkNvcmUiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+RW50cnlDb3VudFByb2Nlc3NvcjwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorCQ0KKyAJCTwhLS0gImQiIGlzIC5ORVQgZm9yICJzaG9ydCBkYXRlIiAtLT4gDQorCTxvYmplY3QgaWQ9IkRhdGVUaW1lUHJvY2Vzc29yIiB0eXBlPSJOZXh1cy5Db3JlLlZhbGlkYXRvcnMuRGF0ZVRpbWVQcm9jZXNzb3IiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+RGF0ZVRpbWVQcm9jZXNzb3I8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iRGF0YUZvcm1hdCI+PHZhbHVlPmQ8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKwkNCisJPG9iamVjdCBpZD0iVGVsZXBob25lUHJvY2Vzc29yIiB0eXBlPSJQaG9uZUJvb2suQ29yZS5UZWxlcGhvbmVQcm9jZXNzb3IiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+VGVsZXBob25lUHJvY2Vzc29yPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0iRW50cnlMaXN0UHJvY2Vzc29yIiB0eXBlPSJQaG9uZUJvb2suQ29yZS5BcHBFbnRyeUxpc3RQcm9jZXNzb3IiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+RW50cnlMaXN0UHJvY2Vzc29yPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisJDQorCTxvYmplY3QgaWQ9IkV4dGVuc2lvbkxpc3RQcm9jZXNzb3IiIHBhcmVudD0iQmFzZUtleVZhbHVlUHJvY2Vzc29yIj4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPkV4dGVuc2lvbkxpc3RQcm9jZXNzb3I8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iS2V5Ij48dmFsdWU+ZXh0ZW5zaW9uPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisJDQorCTxvYmplY3QgaWQ9IkhpcmVkTGlzdFByb2Nlc3NvciIgcGFyZW50PSJCYXNlS2V5VmFsdWVQcm9jZXNzb3IiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+SGlyZWRMaXN0UHJvY2Vzc29yPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IktleSI+PHZhbHVlPmhpcmVkPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisNCis8L29iamVjdHM+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9UZXN0L1Jlc291cmNlcy9DYXRhbG9nLnhtbCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9SZXNvdXJjZXMvQ2F0YWxvZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDZhZTRhMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9SZXNvdXJjZXMvQ2F0YWxvZy54bWwKQEAgLTAsMCArMSwxNzQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/PiANCis8b2JqZWN0cyB4bWxucz0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0IiANCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgDQorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0IGh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldC94c2Qvc3ByaW5nLW9iamVjdHMueHNkIj4NCisNCisJPCEtLSBlbnRyeSBjb21tYW5kcyAtLT4NCisNCisgIDxvYmplY3QgaWQ9ImVudHJ5X2xpc3Rfcm93cyIgcGFyZW50PSJCYXNlTGlzdCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5lbnRyeV9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlF1ZXJ5SUQiPjx2YWx1ZT5lbnRyeTwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj4NCisJCQk8bGlzdD4NCisJCQkJPHZhbHVlPmVudHJ5X2xpc3Q8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+ZW50cnlfa2V5PC92YWx1ZT4NCisJCQkJPHZhbHVlPmxhc3RfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5maXJzdF9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmV4dGVuc2lvbjwvdmFsdWU+DQorCQkJCTx2YWx1ZT51c2VyX25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aGlyZWQ8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aG91cnM8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+ZWRpdG9yPC92YWx1ZT4NCisJCQkJPHZhbHVlPmluaXRpYWw8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aXRlbV9jb3VudDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5pdGVtX29mZnNldDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5pdGVtX2xpbWl0PC92YWx1ZT4NCisJCQk8L2xpc3Q+DQorCQk8L3Byb3BlcnR5Pg0KKyAgPC9vYmplY3Q+DQorICANCisgIDxvYmplY3QgaWQ9ImVudHJ5X2xpc3RfY291bnQiIHBhcmVudD0iQmFzZUNvdW50Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmVudHJ5X2xpc3RfY291bnQ8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iUXVlcnlJRCI+PHZhbHVlPmVudHJ5X2NvdW50PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlJlbGF0ZWRJRHMiPg0KKwkJCTxsaXN0Pg0KKwkJCQk8dmFsdWU+ZW50cnlfbGlzdDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5lbnRyeV9rZXk8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+bGFzdF9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmZpcnN0X25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+ZXh0ZW5zaW9uPC92YWx1ZT4NCisJCQkJPHZhbHVlPnVzZXJfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5oaXJlZDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5ob3VyczwvdmFsdWU+DQorCQkJCTx2YWx1ZT5lZGl0b3I8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aW5pdGlhbDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5pdGVtX2NvdW50PC92YWx1ZT4NCisJCQkJPHZhbHVlPml0ZW1fb2Zmc2V0PC92YWx1ZT4NCisJCQkJPHZhbHVlPml0ZW1fbGltaXQ8L3ZhbHVlPg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorICA8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9ImVudHJ5IiBwYXJlbnQ9IkJhc2VFbnRyeSI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5lbnRyeTwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj4NCisJCQk8bGlzdD4NCisJCQkJPHZhbHVlPmVudHJ5PC92YWx1ZT4NCisJCQkJPHZhbHVlPmVudHJ5X2tleTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5sYXN0X25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+Zmlyc3RfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5leHRlbnNpb248L3ZhbHVlPg0KKwkJCQk8dmFsdWU+dXNlcl9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmhpcmVkPC92YWx1ZT4NCisJCQkJPHZhbHVlPmhvdXJzPC92YWx1ZT4NCisJCQkJPHZhbHVlPmVkaXRvcjwvdmFsdWU+DQorCQkJPC9saXN0Pg0KKwkJPC9wcm9wZXJ0eT4NCisgIDwvb2JqZWN0Pg0KKyAgDQorCQ0KKwk8IS0tIGZpbHRlciBsaXN0IGNvbW1hbmRzIC0tPg0KKwkJDQorICA8b2JqZWN0IGlkPSJsYXN0X25hbWVfbGlzdCIgcGFyZW50PSJCYXNlRmlsdGVyTGlzdCI+DQorCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmxhc3RfbmFtZV9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8cHJvcGVydHkgbmFtZT0iUmVsYXRlZElEcyI+PGxpc3Q+PHZhbHVlPmxhc3RfbmFtZV9saXN0PC92YWx1ZT48L2xpc3Q+PC9wcm9wZXJ0eT4NCisgIDwvb2JqZWN0Pg0KKw0KKyAgPG9iamVjdCBpZD0iZmlyc3RfbmFtZV9saXN0IiBwYXJlbnQ9IkJhc2VGaWx0ZXJMaXN0Ij4NCisJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+Zmlyc3RfbmFtZV9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8cHJvcGVydHkgbmFtZT0iUmVsYXRlZElEcyI+PGxpc3Q+PHZhbHVlPmZpcnN0X25hbWVfbGlzdDwvdmFsdWU+PC9saXN0PjwvcHJvcGVydHk+DQorICA8L29iamVjdD4NCisgIA0KKyAgPG9iamVjdCBpZD0iZXh0ZW5zaW9uX2xpc3QiIHBhcmVudD0iQmFzZUZpbHRlckxpc3QiPg0KKwk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5leHRlbnNpb25fbGlzdDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPHByb3BlcnR5IG5hbWU9IlJlbGF0ZWRJRHMiPjxsaXN0Pjx2YWx1ZT5leHRlbnNpb25fbGlzdDwvdmFsdWU+PC9saXN0PjwvcHJvcGVydHk+CQ0KKyAgPC9vYmplY3Q+DQorDQorICA8b2JqZWN0IGlkPSJ1c2VyX25hbWVfbGlzdCIgcGFyZW50PSJCYXNlRmlsdGVyTGlzdCI+DQorCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPnVzZXJfbmFtZV9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8cHJvcGVydHkgbmFtZT0iUmVsYXRlZElEcyI+PGxpc3Q+PHZhbHVlPnVzZXJfbmFtZV9saXN0PC92YWx1ZT48L2xpc3Q+PC9wcm9wZXJ0eT4JDQorICA8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9ImhpcmVkX2xpc3QiIHBhcmVudD0iQmFzZUZpbHRlckxpc3QiPg0KKwk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5oaXJlZF9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8cHJvcGVydHkgbmFtZT0iUmVsYXRlZElEcyI+PGxpc3Q+PHZhbHVlPmhpcmVkX2xpc3Q8L3ZhbHVlPjwvbGlzdD48L3Byb3BlcnR5PgkNCisgIDwvb2JqZWN0Pg0KKw0KKyAgPG9iamVjdCBpZD0iaG91cnNfbGlzdCIgcGFyZW50PSJCYXNlRmlsdGVyTGlzdCI+DQorCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmhvdXJzX2xpc3Q8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj48bGlzdD48dmFsdWU+aG91cnNfbGlzdDwvdmFsdWU+PC9saXN0PjwvcHJvcGVydHk+CQ0KKyAgPC9vYmplY3Q+DQorICANCisJPG9iamVjdCBpZD0iZW50cnlfaW5pdGlhbCIgcGFyZW50PSJFbnRyeUluaXRpYWwiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj4NCisJCQk8dmFsdWU+ZW50cnlfaW5pdGlhbDwvdmFsdWU+DQorCQk8L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlJlbGF0ZWRJRHMiPg0KKwkJCTxsaXN0Pg0KKwkJCQk8dmFsdWU+ZW50cnlfaW5pdGlhbDwvdmFsdWU+DQorCQkJPC9saXN0PgkJDQorCQk8L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisgIA0KKwk8IS0tIGNoYWlucyAtLT4NCisgICAgDQorICAgIDxvYmplY3QgaWQ9ImVudHJ5X2xpc3QiIHBhcmVudD0iQmFzZUNoYWluIj4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+DQorCQkJPHZhbHVlPmVudHJ5X2xpc3Q8L3ZhbHVlPg0KKwkJPC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJBZGRDb21tYW5kcyI+DQorCQkJPGxpc3Q+DQorCQkJCTxyZWYgb2JqZWN0PSJlbnRyeV9saXN0X2NvdW50IiAvPg0KKwkJCQk8cmVmIG9iamVjdD0iZW50cnlfbGlzdF9yb3dzIiAvPg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKyAgICANCisgICAgPG9iamVjdCBpZD0iZW50cnlfZmluZCIgcGFyZW50PSJCYXNlQ2hhaW4iPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj4NCisJCQk8dmFsdWU+ZW50cnlfZmluZDwvdmFsdWU+DQorCQk8L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IkFkZENvbW1hbmRzIj4NCisJCQk8bGlzdD4NCisJCQkJPHJlZiBvYmplY3Q9Imxhc3RfbmFtZV9saXN0IiAvPg0KKwkJCQk8cmVmIG9iamVjdD0iZmlyc3RfbmFtZV9saXN0IiAvPg0KKwkJCQk8cmVmIG9iamVjdD0iZXh0ZW5zaW9uX2xpc3QiIC8+DQorCQkJCTxyZWYgb2JqZWN0PSJ1c2VyX25hbWVfbGlzdCIgLz4NCisJCQkJPHJlZiBvYmplY3Q9ImhpcmVkX2xpc3QiIC8+DQorCQkJCTxyZWYgb2JqZWN0PSJob3Vyc19saXN0IiAvPg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKwkJCQ0KKyAgPG9iamVjdCBpZD0iZW50cnlfc2F2ZSIgcGFyZW50PSJCYXNlU2F2ZSI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPg0KKwkJCTx2YWx1ZT5lbnRyeV9zYXZlPC92YWx1ZT4NCisJCTwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iS2V5SUQiPg0KKwkJCTx2YWx1ZT5lbnRyeV9rZXk8L3ZhbHVlPg0KKwkJPC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJbnNlcnRJRCI+DQorCQkJPHZhbHVlPmVudHJ5X2luc2VydDwvdmFsdWU+DQorCQk8L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlVwZGF0ZUlEIj4NCisJCQk8dmFsdWU+ZW50cnlfdXBkYXRlPC92YWx1ZT4NCisJCTwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iUmVsYXRlZElEcyI+DQorCQkJPGxpc3Q+DQorCQkJCTx2YWx1ZT5lbnRyeV9rZXk8L3ZhbHVlPg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iUmVxdWlyZWRJRHMiPg0KKwkJCTxsaXN0Pg0KKwkJCQk8dmFsdWU+Zmlyc3RfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5sYXN0X25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+ZXh0ZW5zaW9uPC92YWx1ZT4NCisJCQkJPHZhbHVlPnVzZXJfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5ob3VyczwvdmFsdWU+DQorCQkJCTx2YWx1ZT5oaXJlZDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5lZGl0b3I8L3ZhbHVlPg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKw0KKzwvb2JqZWN0cz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Rlc3QvUmVzb3VyY2VzL1F1ZXJpZXMueG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9UZXN0L1Jlc291cmNlcy9RdWVyaWVzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzA2MzlmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9UZXN0L1Jlc291cmNlcy9RdWVyaWVzLnhtbApAQCAtMCwwICsxLDE4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+DQorPHNxbE1hcCANCisJbmFtZXNwYWNlPSJwaG9uZWJvb2siIA0KKwl4bWxucz0iaHR0cDovL2liYXRpcy5hcGFjaGUub3JnL21hcHBpbmciIA0KKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiA+DQorDQorIMKgIDxwYXJhbWV0ZXJNYXBzPg0KKwkJDQorwqAgwqAJCTxwYXJhbWV0ZXJNYXAgaWQ9ImVudHJ5X3NhdmVfcGFyYW0iPg0KKwkJCTxwYXJhbWV0ZXIgcHJvcGVydHk9Imxhc3RfbmFtZSIvPg0KKwkJCTxwYXJhbWV0ZXIgcHJvcGVydHk9ImZpcnN0X25hbWUiLz4NCisJCQk8cGFyYW1ldGVyIHByb3BlcnR5PSJleHRlbnNpb24iLz4NCisJCQk8cGFyYW1ldGVyIHByb3BlcnR5PSJ1c2VyX25hbWUiLz4NCisJCQk8cGFyYW1ldGVyIHByb3BlcnR5PSJoaXJlZCIvPg0KKwkJCTxwYXJhbWV0ZXIgcHJvcGVydHk9ImhvdXJzIi8+DQorCQkJPHBhcmFtZXRlciBwcm9wZXJ0eT0iZWRpdG9yIi8+DQorwqAgwqAJCQk8cGFyYW1ldGVyIHByb3BlcnR5PSJlbnRyeV9rZXkiLz7CoCDCoAkJDQorwqAgwqAgwqAgwqAgPC9wYXJhbWV0ZXJNYXA+IMKgIMKgCQkNCivCoCAJDQorwqAgCTwvcGFyYW1ldGVyTWFwcz4NCisJCQ0KKwk8c3RhdGVtZW50cz4NCisJDQorCQk8c2VsZWN0IGlkPSJsYXN0X25hbWVfbGlzdCIgcmVzdWx0Q2xhc3M9InN0cmluZyI+DQorCQkJU0VMRUNUIERJU1RJTkNUIA0KKwkJCQlsYXN0X25hbWUNCisJCQlGUk9NIGVudHJ5DQorCQkJT1JERVIgQlkgbGFzdF9uYW1lCQkJDQorCQk8L3NlbGVjdD4NCisJCQ0KKwkJPHNlbGVjdCBpZD0iZmlyc3RfbmFtZV9saXN0IiByZXN1bHRDbGFzcz0ic3RyaW5nIj4NCisJCQlTRUxFQ1QgRElTVElOQ1QgDQorCQkJCWZpcnN0X25hbWUNCisJCQlGUk9NIGVudHJ5DQorCQkJT1JERVIgQlkgZmlyc3RfbmFtZQ0KKwkJPC9zZWxlY3Q+DQorCQkNCisJCTxzZWxlY3QgaWQ9ImV4dGVuc2lvbl9saXN0IiByZXN1bHRDbGFzcz0ic3RyaW5nIj4NCisJCQlTRUxFQ1QgRElTVElOQ1QgDQorCQkJCWV4dGVuc2lvbg0KKwkJCUZST00gZW50cnkNCisJCQlPUkRFUiBCWSBleHRlbnNpb24NCisJCTwvc2VsZWN0Pg0KKw0KKwkJPHNlbGVjdCBpZD0idXNlcl9uYW1lX2xpc3QiIHJlc3VsdENsYXNzPSJzdHJpbmciPg0KKwkJCVNFTEVDVCBESVNUSU5DVCANCisJCQkJdXNlcl9uYW1lDQorCQkJRlJPTSBlbnRyeQ0KKwkJCU9SREVSIEJZIHVzZXJfbmFtZQ0KKwkJPC9zZWxlY3Q+DQorDQorCQk8c2VsZWN0IGlkPSJoaXJlZF9saXN0IiAgcmVzdWx0Q2xhc3M9ImRhdGUiPg0KKwkJCVNFTEVDVCBESVNUSU5DVCANCisJCQkJaGlyZWQNCisJCQlGUk9NIGVudHJ5DQorCQkJT1JERVIgQlkgaGlyZWQNCisJCTwvc2VsZWN0Pg0KKw0KKwkJPHNlbGVjdCBpZD0iaG91cnNfbGlzdCIgIHJlc3VsdENsYXNzPSJzdHJpbmciPg0KKwkJCVNFTEVDVCBESVNUSU5DVCANCisJCQkJaG91cnMNCisJCQlGUk9NIGVudHJ5DQorCQkJT1JERVIgQlkgaG91cnMNCisJCTwvc2VsZWN0Pg0KKw0KKwkJPHNlbGVjdCBpZD0iZW50cnkiIHBhcmFtQ2xhc3M9Ikhhc2h0YWJsZSIgcmVzdWx0Q2xhc3M9Ikhhc2h0YWJsZSI+DQorCQkJU0VMRUNUIA0KKwkJCQlsYXN0X25hbWUsDQorCQkJCWZpcnN0X25hbWUsDQorCQkJCWV4dGVuc2lvbiwNCisJCQkJdXNlcl9uYW1lLA0KKwkJCQloaXJlZCwNCisJCQkJaG91cnMsDQorCQkJCWVkaXRvciwNCisJCQkJcGtfZW50cnkgQVMgZW50cnlfa2V5CQkJCQ0KKwkJCUZST00gZW50cnkNCisJCQk8ZHluYW1pYyBwcmVwZW5kPSJXSEVSRSI+CQkJDQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImluaXRpYWwiIHByZXBlbmQ9IkFORCI+DQorCQkJCQlsYXN0X25hbWUgTElLRSAjaW5pdGlhbCMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9Imxhc3RfbmFtZSIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWxhc3RfbmFtZT0jbGFzdF9uYW1lIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iZmlyc3RfbmFtZSIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWZpcnN0X25hbWU9I2ZpcnN0X25hbWUjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJleHRlbnNpb24iIHByZXBlbmQ9IkFORCI+DQorCQkJCQlleHRlbnNpb249I2V4dGVuc2lvbiMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9InVzZXJfbmFtZSIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCXVzZXJfbmFtZT0jdXNlcl9uYW1lIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iaGlyZWQiIHByZXBlbmQ9IkFORCI+DQorCQkJCQloaXJlZD0jaGlyZWQjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJob3VycyIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWhvdXJzPSNob3VycyMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImVkaXRvciIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWhvdXJzPSNlZGl0b3IjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJlbnRyeV9rZXkiIHByZXBlbmQ9IkFORCI+DQorCQkJCQlwa19lbnRyeT0jZW50cnlfa2V5Iw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQk8L2R5bmFtaWM+CQkJDQorCQkJPGR5bmFtaWM+DQorCQkJICAgPGlzTm90TnVsbCBwcm9wZXJ0eT0iaXRlbV9saW1pdCI+DQorCQkJCQlMSU1JVCAjaXRlbV9saW1pdCMgT0ZGU0VUICNpdGVtX29mZnNldCMgDQorCQkJICAgPC9pc05vdE51bGw+CQkJDQorCQkJPC9keW5hbWljPjsNCisJCTwvc2VsZWN0Pg0KKw0KKwkJPHNlbGVjdCBpZD0iZW50cnlfY291bnQiIHBhcmFtQ2xhc3M9Ikhhc2h0YWJsZSIgcmVzdWx0Q2xhc3M9InN0cmluZyI+DQorCQkJU0VMRUNUIENPVU5UKCopIEZST00gZW50cnkNCisJCQk8ZHluYW1pYyBwcmVwZW5kPSJXSEVSRSI+CQkJDQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImluaXRpYWwiIHByZXBlbmQ9IkFORCI+DQorCQkJCQlsYXN0X25hbWUgTElLRSAjaW5pdGlhbCMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9Imxhc3RfbmFtZSIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWxhc3RfbmFtZT0jbGFzdF9uYW1lIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iZmlyc3RfbmFtZSIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWZpcnN0X25hbWU9I2ZpcnN0X25hbWUjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJleHRlbnNpb24iIHByZXBlbmQ9IkFORCI+DQorCQkJCQlleHRlbnNpb249I2V4dGVuc2lvbiMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9InVzZXJfbmFtZSIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCXVzZXJfbmFtZT0jdXNlcl9uYW1lIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iaGlyZWQiIHByZXBlbmQ9IkFORCI+DQorCQkJCQloaXJlZD0jaGlyZWQjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJob3VycyIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWhvdXJzPSNob3VycyMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImVkaXRvciIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWhvdXJzPSNlZGl0b3IjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJlbnRyeV9rZXkiIHByZXBlbmQ9IkFORCI+DQorCQkJCQlwa19lbnRyeT0jZW50cnlfa2V5Iw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQk8L2R5bmFtaWM+CQkJDQorCQk8L3NlbGVjdD4NCisJCQ0KKwkJPHNlbGVjdCBpZD0iZW50cnlfaW5pdGlhbCIgcGFyYW1DbGFzcz0ic3RyaW5nIiByZXN1bHRDbGFzcz0ic3RyaW5nIj4JCQ0KKwkJCVNFTEVDVCBDT1VOVCgqKSANCisJCQlGUk9NIGVudHJ5DQorCQkJV0hFUkUgbGFzdF9uYW1lIExJS0UgI3ZhbHVlIw0KKwkJPC9zZWxlY3Q+CQkJCQkJCQkJDQorCQkNCisJCTxpbnNlcnQgaWQ9ImVudHJ5X2luc2VydCIgcGFyYW1ldGVyTWFwPSJlbnRyeV9zYXZlX3BhcmFtIj4NCisgwqAgwqAJCUlOU0VSVCBJTlRPIGVudHJ5ICggwqAgwqAJCQkNCisJCQkJbGFzdF9uYW1lLA0KKwkJCQlmaXJzdF9uYW1lLA0KKwkJCQlleHRlbnNpb24sDQorCQkJCXVzZXJfbmFtZSwNCisJCQkJaGlyZWQsDQorCQkJCWhvdXJzLA0KKwkJCQllZGl0b3IsDQorCQkJCXBrX2VudHJ5DQorCQkJCSkNCisJCQlWQUxVRVMgKD8sPyw/LD8sID8sPyw/LD8pDQorCQk8L2luc2VydD4JCQ0KKw0KKwkJPHVwZGF0ZSBpZD0iZW50cnlfdXBkYXRlIiBwYXJhbWV0ZXJNYXA9ImVudHJ5X3NhdmVfcGFyYW0iPg0KKwkJCVVQREFURSBlbnRyeSBTRVQNCisJCQkJbGFzdF9uYW1lPT8sDQorCQkJCWZpcnN0X25hbWU9PywNCisJCQkJZXh0ZW5zaW9uPT8sDQorCQkJCXVzZXJfbmFtZT0/LA0KKwkJCQloaXJlZD0/LA0KKwkJCQlob3Vycz0/LA0KKwkJCQllZGl0b3I9Pw0KKwkJCVdIRVJFIA0KKwkJCQlwa19lbnRyeT0/DQorCQk8L3VwZGF0ZT4NCisNCisgICAgPGRlbGV0ZSBpZD0iZW50cnlfZGVsZXRlIiBwYXJhbUNsYXNzPSJIYXNodGFibGUiPg0KKyAgICAgICBERUxFVEUgRlJPTSBlbnRyeSBXSEVSRSBwa19lbnRyeT0jZW50cnlfa2V5IzsgICAgICAgIA0KKyAgICA8L2RlbGV0ZT4NCisNCisgIDwvc3RhdGVtZW50cz4NCis8L3NxbE1hcD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Rlc3QvVGVzdC5jc3Byb2ogYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Rlc3QvVGVzdC5jc3Byb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjExYzFkZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9UZXN0LmNzcHJvagpAQCAtMCwwICsxLDE5MiBAQAorPFZpc3VhbFN0dWRpb1Byb2plY3Q+DQorICAgIDxDU0hBUlANCisgICAgICAgIFByb2plY3RUeXBlID0gIkxvY2FsIg0KKyAgICAgICAgUHJvZHVjdFZlcnNpb24gPSAiNy4xMC4zMDc3Ig0KKyAgICAgICAgU2NoZW1hVmVyc2lvbiA9ICIyLjAiDQorICAgICAgICBQcm9qZWN0R3VpZCA9ICJ7MkY0RDA1NkItNDIxMS00QTE3LThGNDctMzc5MDEwODVCM0FFfSINCisgICAgPg0KKyAgICAgICAgPEJ1aWxkPg0KKyAgICAgICAgICAgIDxTZXR0aW5ncw0KKyAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbkljb24gPSAiIg0KKyAgICAgICAgICAgICAgICBBc3NlbWJseUtleUNvbnRhaW5lck5hbWUgPSAiIg0KKyAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiUGhvbmVCb29rLlRlc3QiDQorICAgICAgICAgICAgICAgIEFzc2VtYmx5T3JpZ2luYXRvcktleUZpbGUgPSAiIg0KKyAgICAgICAgICAgICAgICBEZWZhdWx0Q2xpZW50U2NyaXB0ID0gIkpTY3JpcHQiDQorICAgICAgICAgICAgICAgIERlZmF1bHRIVE1MUGFnZUxheW91dCA9ICJHcmlkIg0KKyAgICAgICAgICAgICAgICBEZWZhdWx0VGFyZ2V0U2NoZW1hID0gIklFNTAiDQorICAgICAgICAgICAgICAgIERlbGF5U2lnbiA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgT3V0cHV0VHlwZSA9ICJMaWJyYXJ5Ig0KKyAgICAgICAgICAgICAgICBQcmVCdWlsZEV2ZW50ID0gIiQoU29sdXRpb25EaXIpcHJlYnVpbGQgJChTb2x1dGlvbkRpcikiDQorICAgICAgICAgICAgICAgIFBvc3RCdWlsZEV2ZW50ID0gIiINCisgICAgICAgICAgICAgICAgUm9vdE5hbWVzcGFjZSA9ICJQaG9uZUJvb2suQ29yZSINCisgICAgICAgICAgICAgICAgUnVuUG9zdEJ1aWxkRXZlbnQgPSAiT25CdWlsZFN1Y2Nlc3MiDQorICAgICAgICAgICAgICAgIFN0YXJ0dXBPYmplY3QgPSAiIg0KKyAgICAgICAgICAgID4NCisgICAgICAgICAgICAgICAgPENvbmZpZw0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJEZWJ1ZyINCisgICAgICAgICAgICAgICAgICAgIEFsbG93VW5zYWZlQmxvY2tzID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgQmFzZUFkZHJlc3MgPSAiMjg1MjEyNjcyIg0KKyAgICAgICAgICAgICAgICAgICAgQ2hlY2tGb3JPdmVyZmxvd1VuZGVyZmxvdyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIENvbmZpZ3VyYXRpb25PdmVycmlkZUZpbGUgPSAiIg0KKyAgICAgICAgICAgICAgICAgICAgRGVmaW5lQ29uc3RhbnRzID0gIkRFQlVHO1RSQUNFIg0KKyAgICAgICAgICAgICAgICAgICAgRG9jdW1lbnRhdGlvbkZpbGUgPSAiUGhvbmVCb29rLlRlc3QueG1sIg0KKyAgICAgICAgICAgICAgICAgICAgRGVidWdTeW1ib2xzID0gInRydWUiDQorICAgICAgICAgICAgICAgICAgICBGaWxlQWxpZ25tZW50ID0gIjQwOTYiDQorICAgICAgICAgICAgICAgICAgICBJbmNyZW1lbnRhbEJ1aWxkID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgTm9TdGRMaWIgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBOb1dhcm4gPSAiMTU5MSINCisgICAgICAgICAgICAgICAgICAgIE9wdGltaXplID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgT3V0cHV0UGF0aCA9ICJiaW5cRGVidWdcIg0KKyAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJGb3JDb21JbnRlcm9wID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgUmVtb3ZlSW50ZWdlckNoZWNrcyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFRyZWF0V2FybmluZ3NBc0Vycm9ycyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFdhcm5pbmdMZXZlbCA9ICI0Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8Q29uZmlnDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIlJlbGVhc2UiDQorICAgICAgICAgICAgICAgICAgICBBbGxvd1Vuc2FmZUJsb2NrcyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIEJhc2VBZGRyZXNzID0gIjI4NTIxMjY3MiINCisgICAgICAgICAgICAgICAgICAgIENoZWNrRm9yT3ZlcmZsb3dVbmRlcmZsb3cgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uT3ZlcnJpZGVGaWxlID0gIiINCisgICAgICAgICAgICAgICAgICAgIERlZmluZUNvbnN0YW50cyA9ICJUUkFDRSINCisgICAgICAgICAgICAgICAgICAgIERvY3VtZW50YXRpb25GaWxlID0gIiINCisgICAgICAgICAgICAgICAgICAgIERlYnVnU3ltYm9scyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIEZpbGVBbGlnbm1lbnQgPSAiNDA5NiINCisgICAgICAgICAgICAgICAgICAgIEluY3JlbWVudGFsQnVpbGQgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBOb1N0ZExpYiA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE5vV2FybiA9ICIiDQorICAgICAgICAgICAgICAgICAgICBPcHRpbWl6ZSA9ICJ0cnVlIg0KKyAgICAgICAgICAgICAgICAgICAgT3V0cHV0UGF0aCA9ICJiaW5cUmVsZWFzZVwiDQorICAgICAgICAgICAgICAgICAgICBSZWdpc3RlckZvckNvbUludGVyb3AgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBSZW1vdmVJbnRlZ2VyQ2hlY2tzID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgVHJlYXRXYXJuaW5nc0FzRXJyb3JzID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgV2FybmluZ0xldmVsID0gIjQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgPC9TZXR0aW5ncz4NCisgICAgICAgICAgICA8UmVmZXJlbmNlcz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJTeXN0ZW0iDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3lzdGVtIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cLi5cLi5cLi5cLi5cLi5cV0lORE9XU1xNaWNyb3NvZnQuTkVUXEZyYW1ld29ya1x2MS4xLjQzMjJcU3lzdGVtLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJTeXN0ZW0uRGF0YSINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJTeXN0ZW0uRGF0YSINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIi4uXC4uXC4uXC4uXC4uXC4uXC4uXFdJTkRPV1NcTWljcm9zb2Z0Lk5FVFxGcmFtZXdvcmtcdjEuMS40MzIyXFN5c3RlbS5EYXRhLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJTeXN0ZW0uWE1MIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIlN5c3RlbS5YbWwiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlwuLlwuLlwuLlwuLlxXSU5ET1dTXE1pY3Jvc29mdC5ORVRcRnJhbWV3b3JrXHYxLjEuNDMyMlxTeXN0ZW0uWE1MLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJudW5pdC5mcmFtZXdvcmsiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAibnVuaXQuZnJhbWV3b3JrIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cLi5cLi5cLi5cLi5cLi5cUHJvZ3JhbSBGaWxlc1xOVW5pdCAyLjJcYmluXG51bml0LmZyYW1ld29yay5kbGwiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseUZvbGRlcktleSA9ICJoa2xtXGRuXG51bml0LmZyYW1ld29yayINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJDb3JlIg0KKyAgICAgICAgICAgICAgICAgICAgUHJvamVjdCA9ICJ7MzE1MEYzRTgtOUEwNC00RkVELUIxNkYtQ0VBNTc3NTZFOTM0fSINCisgICAgICAgICAgICAgICAgICAgIFBhY2thZ2UgPSAie0ZBRTA0RUMwLTMwMUYtMTFEMy1CRjRCLTAwQzA0Rjc5RUZCQ30iDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiTmV4dXMuQ29yZSINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJOZXh1cy5Db3JlIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cbG9jYWwtY2FjaGVcTmV4dXNcTmV4dXMuQ29yZS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiTmV4dXMuVGVzdCINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJOZXh1cy5UZXN0Ig0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cbG9jYWwtY2FjaGVcTmV4dXNcTmV4dXMuVGVzdC5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiQWdpbGl0eS5Db3JlIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIkFnaWxpdHkuQ29yZSINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIi4uXC4uXGxvY2FsLWNhY2hlXEFnaWxpdHlcQWdpbGl0eS5Db3JlLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJOZXh1cy5XZWIiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiTmV4dXMuV2ViIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cbG9jYWwtY2FjaGVcTmV4dXNcTmV4dXMuV2ViLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJOZXh1cy5FeHRyYXMiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiTmV4dXMuRXh0cmFzIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cbG9jYWwtY2FjaGVcTmV4dXNcTmV4dXMuRXh0cmFzLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJXZWIiDQorICAgICAgICAgICAgICAgICAgICBQcm9qZWN0ID0gIns5NDhFRTM0NC1EMDMzLTQzNTgtODhFOC03N0ZERTA4MEQ5M0N9Ig0KKyAgICAgICAgICAgICAgICAgICAgUGFja2FnZSA9ICJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICA8L1JlZmVyZW5jZXM+DQorICAgICAgICA8L0J1aWxkPg0KKyAgICAgICAgPEZpbGVzPg0KKyAgICAgICAgICAgIDxJbmNsdWRlPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJBc3NlbWJseUluZm8uY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJCYXNlVGVzdC5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIk9iamVjdHMueG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiYmluXERlYnVnXHByb3ZpZGVycy5jb25maWciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJiaW5cRGVidWdcc3FsbWFwLmNvbmZpZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImJpblxEZWJ1Z1xzcWxtYXAuY29uZmlnLnhtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbW1hbmRzXERpcmVjdG9yeVZpZXdUZXN0LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiQ29tbWFuZHNcRmlsdGVyTGlzdHMuY3MiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvZGUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJDb21tYW5kc1xTZWxlY3RBbGxUZXN0LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJDb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiUmVzb3VyY2VzXEFwcEJhc2UueG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiUmVzb3VyY2VzXEFwcENvbmZpZy54bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJSZXNvdXJjZXNcQXBwRmllbGRzLnhtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlJlc291cmNlc1xDYXRhbG9nLnhtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlJlc291cmNlc1xRdWVyaWVzLnhtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgPC9JbmNsdWRlPg0KKyAgICAgICAgPC9GaWxlcz4NCisgICAgPC9DU0hBUlA+DQorPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KKw0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9iaW4vRGVidWcvcHJvdmlkZXJzLmNvbmZpZyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9iaW4vRGVidWcvcHJvdmlkZXJzLmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMGE1MjQxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9UZXN0L2Jpbi9EZWJ1Zy9wcm92aWRlcnMuY29uZmlnCkBAIC0wLDAgKzEsMzA3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KKzxwcm92aWRlcnMgDQoreG1sbnM9Imh0dHA6Ly9pYmF0aXMuYXBhY2hlLm9yZy9wcm92aWRlcnMiIA0KK3htbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KKw0KKzxjbGVhci8+DQorPHByb3ZpZGVyIA0KKwkgIG5hbWU9InNxbFNlcnZlcjEuMCIgDQorCSAgZGVzY3JpcHRpb249Ik1pY3Jvc29mdCBTUUwgU2VydmVyLCBwcm92aWRlciBWMS4wLjMzMDAuMCBpbiBmcmFtZXdvcmsgLk5FVCBWMS4wIiANCisJICBlbmFibGVkPSJmYWxzZSIgDQorCSAgYXNzZW1ibHlOYW1lPSJTeXN0ZW0uRGF0YSwgVmVyc2lvbj0xLjAuMzMwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiIGNvbm5lY3Rpb25DbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbENvbm5lY3Rpb24iIA0KKwkgIGNvbW1hbmRDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbENvbW1hbmQiIA0KKwkgIHBhcmFtZXRlckNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsUGFyYW1ldGVyIiANCisJICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iU3lzdGVtLkRhdGEuU3FsRGJUeXBlIiANCisJICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iU3FsRGJUeXBlIiANCisJICBkYXRhQWRhcHRlckNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsRGF0YUFkYXB0ZXIiIA0KKwkgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb21tYW5kQnVpbGRlciIgDQorCSAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9ImZhbHNlIiANCisJICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0idHJ1ZSIgDQorCSAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9InRydWUiIA0KKwkgIHBhcmFtZXRlclByZWZpeD0iQCINCisgICAgICBhbGxvd01BUlM9ImZhbHNlIg0KKyAgLz4NCis8cHJvdmlkZXIgDQorCSAgbmFtZT0ic3FsU2VydmVyMS4xIiANCisJICBkZXNjcmlwdGlvbj0iTWljcm9zb2Z0IFNRTCBTZXJ2ZXIsIHByb3ZpZGVyIFYxLjAuNTAwMC4wIGluIGZyYW1ld29yayAuTkVUIFYxLjEiIA0KKwkgIGVuYWJsZWQ9InRydWUiDQorCSAgZGVmYXVsdD0idHJ1ZSIgDQorCSAgYXNzZW1ibHlOYW1lPSJTeXN0ZW0uRGF0YSwgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiIA0KKwkgIGNvbm5lY3Rpb25DbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbENvbm5lY3Rpb24iIA0KKwkgIGNvbW1hbmRDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbENvbW1hbmQiIA0KKwkgIHBhcmFtZXRlckNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsUGFyYW1ldGVyIiANCisJICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iU3lzdGVtLkRhdGEuU3FsRGJUeXBlIiANCisJICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iU3FsRGJUeXBlIiANCisJICBkYXRhQWRhcHRlckNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsRGF0YUFkYXB0ZXIiIA0KKwkgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb21tYW5kQnVpbGRlciIgDQorCSAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9ImZhbHNlIiANCisJICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0idHJ1ZSIgDQorCSAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9InRydWUiIA0KKwkgIHBhcmFtZXRlclByZWZpeD0iQCINCisgICAgICBhbGxvd01BUlM9ImZhbHNlIg0KKyAgLz4NCis8cHJvdmlkZXINCisgICAgbmFtZT0ic3FsU2VydmVyMi4wIg0KKyAgICBlbmFibGVkPSJmYWxzZSINCisgICAgZGVzY3JpcHRpb249Ik1pY3Jvc29mdCBTUUwgU2VydmVyLCBwcm92aWRlciBWMi4wLjAuMCBpbiBmcmFtZXdvcmsgLk5FVCBWMi4wIiANCisgICAgYXNzZW1ibHlOYW1lPSJTeXN0ZW0uRGF0YSwgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiIA0KKyAgICBjb25uZWN0aW9uQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb25uZWN0aW9uIiANCisgICAgY29tbWFuZENsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsQ29tbWFuZCINCisgICAgcGFyYW1ldGVyQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxQYXJhbWV0ZXIiDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxEYlR5cGUiDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJTcWxEYlR5cGUiDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxEYXRhQWRhcHRlciINCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iIFN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb21tYW5kQnVpbGRlciINCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnMgPSAiZmFsc2UiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsID0gInRydWUiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyID0gInRydWUiIA0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiDQorICAgIC8+DQorPHByb3ZpZGVyIG5hbWU9Ik9sZURiMS4xIiANCisJICBkZXNjcmlwdGlvbj0iT2xlRGIsIHByb3ZpZGVyIFYxLjAuNTAwMC4wIGluIGZyYW1ld29yayAuTkVUIFYxLjEiIA0KKwkgIGVuYWJsZWQ9InRydWUiDQorCSAgYXNzZW1ibHlOYW1lPSJTeXN0ZW0uRGF0YSwgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiIA0KKyAgICBjb25uZWN0aW9uQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiQ29ubmVjdGlvbiIgDQorCSAgY29tbWFuZENsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYkNvbW1hbmQiIA0KKwkgIHBhcmFtZXRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYlBhcmFtZXRlciIgDQorCSAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiVHlwZSIgDQorCSAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9Ik9sZURiVHlwZSIgDQorCSAgZGF0YUFkYXB0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJEYXRhQWRhcHRlciIgDQorCSAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJDb21tYW5kQnVpbGRlciIgDQorCSAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9InRydWUiIA0KKwkgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJmYWxzZSIgDQorCSAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9ImZhbHNlIiANCisJICBwYXJhbWV0ZXJQcmVmaXg9IiINCisgICAgYWxsb3dNQVJTPSJmYWxzZSIgICAgDQorICAgIC8+DQorICA8cHJvdmlkZXIgbmFtZT0iT2xlRGIyLjAiIA0KKyAgICBkZXNjcmlwdGlvbj0iT2xlRGIsIHByb3ZpZGVyIFYyLjAuMC4wIGluIGZyYW1ld29yayAuTkVUIFYyIiANCisgICAgZW5hYmxlZD0iZmFsc2UiDQorICAgIGFzc2VtYmx5TmFtZT0iU3lzdGVtLkRhdGEsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiANCisgICAgY29ubmVjdGlvbkNsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYkNvbm5lY3Rpb24iIA0KKyAgICBjb21tYW5kQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiQ29tbWFuZCIgDQorICAgIHBhcmFtZXRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYlBhcmFtZXRlciIgDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYlR5cGUiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iT2xlRGJUeXBlIiANCisgICAgZGF0YUFkYXB0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJEYXRhQWRhcHRlciIgDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiQ29tbWFuZEJ1aWxkZXIiIA0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0idHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJmYWxzZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iIg0KKyAgICBhbGxvd01BUlM9ImZhbHNlIg0KKyAgICAvPiAgDQorICA8cHJvdmlkZXIgDQorICAgIG5hbWU9Ik9kYmMxLjEiIA0KKyAgICBkZXNjcmlwdGlvbj0iT2RiYywgcHJvdmlkZXIgVjEuMC41MDAwLjAgaW4gZnJhbWV3b3JrIC5ORVQgVjEuMSIgDQorICAgIGVuYWJsZWQ9InRydWUiIA0KKyAgICBhc3NlbWJseU5hbWU9IlN5c3RlbS5EYXRhLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSIgDQorICAgIGNvbm5lY3Rpb25DbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjQ29ubmVjdGlvbiIgDQorICAgIGNvbW1hbmRDbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjQ29tbWFuZCIgDQorICAgIHBhcmFtZXRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PZGJjLk9kYmNQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjVHlwZSIgDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJPZGJjVHlwZSIgDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY0RhdGFBZGFwdGVyIiANCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjQ29tbWFuZEJ1aWxkZXIiIA0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0idHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJmYWxzZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iQCINCisgICAgYWxsb3dNQVJTPSJmYWxzZSIgICAgDQorICAgIC8+DQorICA8cHJvdmlkZXIgDQorICAgIG5hbWU9Ik9kYmMyLjAiIA0KKyAgICBkZXNjcmlwdGlvbj0iT2RiYywgcHJvdmlkZXIgVjIuMC4wLjAgaW4gZnJhbWV3b3JrIC5ORVQgVjIiIA0KKyAgICBlbmFibGVkPSJmYWxzZSIgDQorICAgIGFzc2VtYmx5TmFtZT0iU3lzdGVtLkRhdGEsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiANCisgICAgY29ubmVjdGlvbkNsYXNzPSJTeXN0ZW0uRGF0YS5PZGJjLk9kYmNDb25uZWN0aW9uIiANCisgICAgY29tbWFuZENsYXNzPSJTeXN0ZW0uRGF0YS5PZGJjLk9kYmNDb21tYW5kIiANCisgICAgcGFyYW1ldGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY1BhcmFtZXRlciIgDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJTeXN0ZW0uRGF0YS5PZGJjLk9kYmNUeXBlIiANCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9Ik9kYmNUeXBlIiANCisgICAgZGF0YUFkYXB0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjRGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PZGJjLk9kYmNDb21tYW5kQnVpbGRlciIgDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJ0cnVlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9ImZhbHNlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9ImZhbHNlIiANCisgICAgcGFyYW1ldGVyUHJlZml4PSJAIg0KKyAgICBhbGxvd01BUlM9ImZhbHNlIiAgICANCisgIC8+ICANCisgIDxwcm92aWRlciANCisgICAgbmFtZT0ib3JhY2xlOS4yIiANCisgICAgZGVzY3JpcHRpb249Ik9yYWNsZSwgT3JhY2xlIHByb3ZpZGVyIFY5LjIuMC40MDEiIA0KKyAgICBlbmFibGVkPSJmYWxzZSIgDQorICAgIGFzc2VtYmx5TmFtZT0iT3JhY2xlLkRhdGFBY2Nlc3MsIFZlcnNpb249OS4yLjAuNDAxLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTg5YjQ4M2Y0MjljNDczNDIiIGNvbm5lY3Rpb25DbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZUNvbm5lY3Rpb24iIA0KKyAgICBjb21tYW5kQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVDb21tYW5kIiANCisgICAgcGFyYW1ldGVyQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZURiVHlwZSIgDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJPcmFjbGVEYlR5cGUiIA0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJPcmFjbGUuRGF0YUFjY2Vzcy5DbGllbnQuT3JhY2xlRGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJPcmFjbGUuRGF0YUFjY2Vzcy5DbGllbnQuT3JhY2xlQ29tbWFuZEJ1aWxkZXIiIA0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0iZmFsc2UiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9ImZhbHNlIiANCisgICAgcGFyYW1ldGVyUHJlZml4PSI6IiANCisgICAgdXNlRGVyaXZlUGFyYW1ldGVycz0iZmFsc2UiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiICAgIA0KKyAgLz4NCisgIDxwcm92aWRlciANCisgICAgbmFtZT0ib3JhY2xlMTAuMSIgDQorICAgIGRlc2NyaXB0aW9uPSJPcmFjbGUsIG9yYWNsZSBwcm92aWRlciBWMTAuMS4wLjMwMSINCisgICAgZW5hYmxlZD0iZmFsc2UiIA0KKyAgICBhc3NlbWJseU5hbWU9Ik9yYWNsZS5EYXRhQWNjZXNzLCBWZXJzaW9uPTEwLjEuMC4zMDEsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49ODliNDgzZjQyOWM0NzM0MiIgY29ubmVjdGlvbkNsYXNzPSJPcmFjbGUuRGF0YUFjY2Vzcy5DbGllbnQuT3JhY2xlQ29ubmVjdGlvbiIgDQorICAgIGNvbW1hbmRDbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZUNvbW1hbmQiIA0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZVBhcmFtZXRlciIgDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJPcmFjbGUuRGF0YUFjY2Vzcy5DbGllbnQuT3JhY2xlRGJUeXBlIiANCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9Ik9yYWNsZURiVHlwZSIgDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVEYXRhQWRhcHRlciIgDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVDb21tYW5kQnVpbGRlciIgDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJ0cnVlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9InRydWUiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJ0cnVlIiANCisgICAgcGFyYW1ldGVyUHJlZml4PSI6IiANCisgICAgdXNlRGVyaXZlUGFyYW1ldGVycz0iZmFsc2UiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiICAgIA0KKyAgLz4NCisgIDxwcm92aWRlciANCisgICAgbmFtZT0ib3JhY2xlQ2xpZW50MS4wIiANCisgICAgZGVzY3JpcHRpb249Ik9yYWNsZSwgTWljcm9zb2Z0IHByb3ZpZGVyIFYxLjAuNTAwMC4wIiANCisgICAgZW5hYmxlZD0iZmFsc2UiIA0KKyAgICBhc3NlbWJseU5hbWU9IlN5c3RlbS5EYXRhLk9yYWNsZUNsaWVudCwgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiIGNvbm5lY3Rpb25DbGFzcz0iU3lzdGVtLkRhdGEuT3JhY2xlQ2xpZW50Lk9yYWNsZUNvbm5lY3Rpb24iIA0KKyAgICBjb21tYW5kQ2xhc3M9IlN5c3RlbS5EYXRhLk9yYWNsZUNsaWVudC5PcmFjbGVDb21tYW5kIiANCisgICAgcGFyYW1ldGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9yYWNsZUNsaWVudC5PcmFjbGVQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iU3lzdGVtLkRhdGEuT3JhY2xlQ2xpZW50Lk9yYWNsZVR5cGUiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iT3JhY2xlVHlwZSIgDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9yYWNsZUNsaWVudC5PcmFjbGVEYXRhQWRhcHRlciIgDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9yYWNsZUNsaWVudC5PcmFjbGVDb21tYW5kQnVpbGRlciIgDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9ImZhbHNlIiANCisgICAgcGFyYW1ldGVyUHJlZml4PSI6Ig0KKyAgICBhbGxvd01BUlM9ImZhbHNlIiAgICANCisgIC8+DQorICA8cHJvdmlkZXIgDQorICAgIG5hbWU9IkJ5dGVGeCIgDQorICAgIGRlc2NyaXB0aW9uPSJNeVNRTCwgQnl0ZUZ4IHByb3ZpZGVyIFYwLjcuNi4xNTA3MyIgDQorICAgIGVuYWJsZWQ9ImZhbHNlIiANCisgICAgYXNzZW1ibHlOYW1lPSJCeXRlRlguTXlTcWxDbGllbnQsIFZlcnNpb249MC43LjYuMTUwNzMsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49ZjJmZWY2ZmVkMTczMmZjMSIgY29ubmVjdGlvbkNsYXNzPSJCeXRlRlguRGF0YS5NeVNxbENsaWVudC5NeVNxbENvbm5lY3Rpb24iIA0KKyAgICBjb21tYW5kQ2xhc3M9IkJ5dGVGWC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsQ29tbWFuZCIgDQorICAgIHBhcmFtZXRlckNsYXNzPSJCeXRlRlguRGF0YS5NeVNxbENsaWVudC5NeVNxbFBhcmFtZXRlciIgDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJCeXRlRlguRGF0YS5NeVNxbENsaWVudC5NeVNxbERiVHlwZSIgDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJNeVNxbERiVHlwZSIgDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IkJ5dGVGWC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsRGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJCeXRlRlguRGF0YS5NeVNxbENsaWVudC5NeVNxbENvbW1hbmRCdWlsZGVyIiANCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9ImZhbHNlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9InRydWUiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0idHJ1ZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iQCINCisgICAgYWxsb3dNQVJTPSJmYWxzZSIgICAgDQorICAvPg0KKyAgPHByb3ZpZGVyIA0KKyAgICBuYW1lPSJNeVNxbCIgDQorICAgIGRlc2NyaXB0aW9uPSJNeVNRTCwgTXlTUUwgcHJvdmlkZXIgMS4wLjcuMzAwNzIiIA0KKyAgICBlbmFibGVkPSJ0cnVlIiANCisgICAgYXNzZW1ibHlOYW1lPSJNeVNxbC5EYXRhLCBWZXJzaW9uPTEuMC43LjMwMDcyLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWM1Njg3ZmM4ODk2OWM0NGQiIGNvbm5lY3Rpb25DbGFzcz0iTXlTcWwuRGF0YS5NeVNxbENsaWVudC5NeVNxbENvbm5lY3Rpb24iIA0KKyAgICBjb21tYW5kQ2xhc3M9Ik15U3FsLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxDb21tYW5kIiANCisgICAgcGFyYW1ldGVyQ2xhc3M9Ik15U3FsLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iTXlTcWwuRGF0YS5NeVNxbENsaWVudC5NeVNxbERiVHlwZSIgDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJNeVNxbERiVHlwZSIgDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9Ik15U3FsLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxEYXRhQWRhcHRlciIgDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9Ik15U3FsLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxDb21tYW5kQnVpbGRlciIgDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9InRydWUiIA0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9Ij8iDQorICAgIGFsbG93TUFSUz0iZmFsc2UiICAgIA0KKyAgLz4NCisgIDxwcm92aWRlciBuYW1lPSJTUUxpdGUzIg0KKyAgICBkZXNjcmlwdGlvbj0iU1FMaXRlLCBTUUxpdGUuTkVUIHByb3ZpZGVyIFYwLjIxLjE4NjkuMzc5NCINCisgICAgZW5hYmxlZD0iZmFsc2UiDQorICAgIGFzc2VtYmx5TmFtZT0iU1FMaXRlLk5FVCwgVmVyc2lvbj0wLjIxLjE4NjkuMzc5NCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1jMjczYmQzNzVlNjk1ZjljIiANCisgICAgY29ubmVjdGlvbkNsYXNzPSJGaW5pc2FyLlNRTGl0ZS5TUUxpdGVDb25uZWN0aW9uIg0KKyAgICBjb21tYW5kQ2xhc3M9IkZpbmlzYXIuU1FMaXRlLlNRTGl0ZUNvbW1hbmQiDQorICAgIHBhcmFtZXRlckNsYXNzPSJGaW5pc2FyLlNRTGl0ZS5TUUxpdGVQYXJhbWV0ZXIiDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJTeXN0ZW0uRGF0YS5EYlR5cGUsIFN5c3RlbS5EYXRhIg0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iRGJUeXBlIg0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJGaW5pc2FyLlNRTGl0ZS5TUUxpdGVEYXRhQWRhcHRlciINCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iRmluaXNhci5TUUxpdGUuU1FMaXRlQ29tbWFuZEJ1aWxkZXIiDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJmYWxzZSINCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9InRydWUiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJ0cnVlIg0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgIHNldERiUGFyYW1ldGVyUHJlY2lzaW9uPSJmYWxzZSINCisgICAgc2V0RGJQYXJhbWV0ZXJTY2FsZT0iZmFsc2UiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiICAgIA0KKyAgLz4NCisgIDxwcm92aWRlcg0KKyAgICBuYW1lPSJGaXJlYmlyZDEuNyIgDQorICAgIGRlc2NyaXB0aW9uPSJGaXJlYmlyZCwgRmlyZWJpcmQgU1FMIC5ORVQgcHJvdmlkZXIgVjEuNy4wLjMzMjAwIiANCisgICAgZW5hYmxlZD0iZmFsc2UiIA0KKyAgICBhc3NlbWJseU5hbWU9IkZpcmViaXJkU3FsLkRhdGEuRmlyZWJpcmQsIFZlcnNpb249MS43LjAuMzMyMDAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49ZmE4NDNkMTgwMjk0MzY5ZCIgY29ubmVjdGlvbkNsYXNzPSJGaXJlYmlyZFNxbC5EYXRhLkZpcmViaXJkLkZiQ29ubmVjdGlvbiIgDQorICAgIGNvbW1hbmRDbGFzcz0iRmlyZWJpcmRTcWwuRGF0YS5GaXJlYmlyZC5GYkNvbW1hbmQiIA0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iRmlyZWJpcmRTcWwuRGF0YS5GaXJlYmlyZC5GYlBhcmFtZXRlciIgDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJGaXJlYmlyZFNxbC5EYXRhLkZpcmViaXJkLkZiRGJUeXBlIiANCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9IkZiRGJUeXBlIiANCisgICAgZGF0YUFkYXB0ZXJDbGFzcz0iRmlyZWJpcmRTcWwuRGF0YS5GaXJlYmlyZC5GYkRhdGFBZGFwdGVyIiANCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iRmlyZWJpcmRTcWwuRGF0YS5GaXJlYmlyZC5GYkNvbW1hbmRCdWlsZGVyIiANCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9ImZhbHNlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9InRydWUiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0idHJ1ZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iQCINCisgICAgYWxsb3dNQVJTPSJmYWxzZSIgICAgDQorICAvPg0KKyAgPHByb3ZpZGVyDQorICAgIG5hbWU9IlBvc3RncmVTcWwwLjk5LjEuMCIgDQorICAgIGRlc2NyaXB0aW9uPSJQb3N0Z3JlU3FsLCBOcGdzcWwgcHJvdmlkZXIgVjAuOTkuMS4wIiANCisgICAgZW5hYmxlZD0iZmFsc2UiIA0KKyAgICBhc3NlbWJseU5hbWU9Ik5wZ3NxbCwgVmVyc2lvbj0wLjk5LjEuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj01ZDhiOTBkNTJmNDZmZGE3IiANCisgICAgY29ubmVjdGlvbkNsYXNzPSJOcGdzcWwuTnBnc3FsQ29ubmVjdGlvbiIgDQorICAgIGNvbW1hbmRDbGFzcz0iTnBnc3FsLk5wZ3NxbENvbW1hbmQiIA0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iTnBnc3FsLk5wZ3NxbFBhcmFtZXRlciIgDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJOcGdzcWxUeXBlcy5OcGdzcWxEYlR5cGUiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iTnBnc3FsRGJUeXBlIiANCisgICAgZGF0YUFkYXB0ZXJDbGFzcz0iTnBnc3FsLk5wZ3NxbERhdGFBZGFwdGVyIiANCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iTnBnc3FsLk5wZ3NxbENvbW1hbmRCdWlsZGVyIiANCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9ImZhbHNlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9InRydWUiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0idHJ1ZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iOiINCisgICAgYWxsb3dNQVJTPSJ0cnVlIiAgICANCisgIC8+CQ0KKyAgPHByb3ZpZGVyIA0KKyAgICBuYW1lPSJpRGIyLjEwIiANCisgICAgZGVzY3JpcHRpb249IklCTSBEQjIgUHJvdmlkZXIsIFYgMTAuMCIgDQorICAgIGVuYWJsZWQ9ImZhbHNlIiANCisgICAgYXNzZW1ibHlOYW1lPSJJQk0uRGF0YS5EQjIuaVNlcmllcywgVmVyc2lvbj0xMC4wLjAuMCxDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTljZGIyZWJmYjFmOTNhMjYsIEN1c3RvbT1udWxsIiBjb25uZWN0aW9uQ2xhc3M9IklCTS5EYXRhLkRCMi5pU2VyaWVzLmlEQjJDb25uZWN0aW9uIiANCisgICAgY29tbWFuZENsYXNzPSJJQk0uRGF0YS5EQjIuaVNlcmllcy5pREIyQ29tbWFuZCIgDQorICAgIHBhcmFtZXRlckNsYXNzPSJJQk0uRGF0YS5EQjIuaVNlcmllcy5pREIyUGFyYW1ldGVyIiANCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IklCTS5EYXRhLkRCMi5pU2VyaWVzLmlEQjJEYlR5cGUiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iaURCMkRiVHlwZSIgDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IklCTS5EYXRhLkRCMi5pU2VyaWVzLmlEQjJEYXRhQWRhcHRlciIgDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IklCTS5EYXRhLkRCMi5pU2VyaWVzLmlEQjJDb21tYW5kQnVpbGRlciIgDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJ0cnVlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9ImZhbHNlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9ImZhbHNlIiANCisgICAgcGFyYW1ldGVyUHJlZml4PSIiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiICAgIA0KKyAgLz4NCisgIDxwcm92aWRlciANCisgICAgbmFtZT0iSW5mb3JtaXgiIA0KKyAgICBkZXNjcmlwdGlvbj0iSW5mb3JtaXggTkVUIFByb3ZpZGVyLCAyLjgxLjAuMCIgDQorICAgIGVuYWJsZWQ9ImZhbHNlIiANCisgICAgYXNzZW1ibHlOYW1lPSJJQk0uRGF0YS5JbmZvcm1peCwgVmVyc2lvbj0yLjgxLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03YzMwN2I5MWFhMTNkMjA4IiANCisgICAgY29ubmVjdGlvbkNsYXNzPSJJQk0uRGF0YS5JbmZvcm1peC5JZnhDb25uZWN0aW9uIiANCisgICAgY29tbWFuZENsYXNzPSJJQk0uRGF0YS5JbmZvcm1peC5JZnhDb21tYW5kIiANCisgICAgcGFyYW1ldGVyQ2xhc3M9IklCTS5EYXRhLkluZm9ybWl4LklmeFBhcmFtZXRlciIgDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJJQk0uRGF0YS5JbmZvcm1peC5JZnhUeXBlIiANCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9IklmeFR5cGUiIA0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJJQk0uRGF0YS5JbmZvcm1peC5JZnhEYXRhQWRhcHRlciIgDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IklCTS5EYXRhLkluZm9ybWl4LklmeENvbW1hbmRCdWlsZGVyIiANCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnMgPSAidHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsID0gImZhbHNlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXIgPSAiZmFsc2UiIA0KKyAgICB1c2VEZXJpdmVQYXJhbWV0ZXJzPSJmYWxzZSIgDQorICAgIGFsbG93TUFSUz0iZmFsc2UiICAgIA0KKwkvPg0KKzwvcHJvdmlkZXJzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9iaW4vRGVidWcvc3FsbWFwLmNvbmZpZyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9iaW4vRGVidWcvc3FsbWFwLmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzI5MjlmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9UZXN0L2Jpbi9EZWJ1Zy9zcWxtYXAuY29uZmlnCkBAIC0wLDAgKzEsMjAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQorPHNxbE1hcENvbmZpZyB4bWxucz0iaHR0cDovL2liYXRpcy5hcGFjaGUub3JnL2RhdGFNYXBwZXIiIHhtbG5zOnhzaT0iIGh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiA+DQorDQorICAgIDxwcm9wZXJ0aWVzIHJlc291cmNlPSJzcWxtYXAuY29uZmlnLnhtbCIvPg0KKyAgICANCisJPHNldHRpbmdzPg0KKwkJPHNldHRpbmcgdXNlU3RhdGVtZW50TmFtZXNwYWNlcz0iZmFsc2UiLz4NCisJCTxzZXR0aW5nIGNhY2hlTW9kZWxzRW5hYmxlZD0idHJ1ZSIvPg0KKwk8L3NldHRpbmdzPg0KKwkNCisJPGRhdGFiYXNlPgkNCisJCTxwcm92aWRlciBuYW1lPSIke3Byb3ZpZGVyfSIvPg0KKwkJPGRhdGFTb3VyY2UgbmFtZT0iZGVmYXVsdCIgIGNvbm5lY3Rpb25TdHJpbmc9IiR7ZGV2ZWxvcG1lbnR9Ii8+DQorCTwvZGF0YWJhc2U+DQorDQorCTxzcWxNYXBzPg0KKwkJPHNxbE1hcCByZXNvdXJjZT0iJHtyb290fS9SZXNvdXJjZXMvUXVlcmllcy54bWwiLz4NCisJPC9zcWxNYXBzPg0KKw0KKzwvc3FsTWFwQ29uZmlnPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svVGVzdC9iaW4vRGVidWcvc3FsbWFwLmNvbmZpZy54bWwgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Rlc3QvYmluL0RlYnVnL3NxbG1hcC5jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzOTA1N2EKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1Rlc3QvYmluL0RlYnVnL3NxbG1hcC5jb25maWcueG1sCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+IA0KKzxzZXR0aW5ncz4NCisgICAgPGFkZCBrZXk9InJvb3QiIHZhbHVlPSIuLi8uLi8iIC8+DQorICAgIDxhZGQga2V5PSJwcm92aWRlciIgdmFsdWU9Ik15U3FsIiAvPg0KKyAgICA8YWRkIGtleT0iZGV2ZWxvcG1lbnQiIHZhbHVlPSJIb3N0PUNMSUZGT1JEO0RhdGFiYXNlPXBob25lYm9vaztVc2VybmFtZT1waG9uZWJvb2tBcHA7UGFzc3dvcmQ9cDFuSDM0ZCIgLz4NCisgICAgPGFkZCBrZXk9InByb2R1Y3Rpb24iIHZhbHVlPSJIb3N0PXppcHB5O0RhdGFiYXNlPXBob25lYm9vaztVc2VybmFtZT1waG9uZWJvb2tBcHA7UGFzc3dvcmQ9cDFuSDM0ZCIgLz4NCis8L3NldHRpbmdzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0Fzc2VtYmx5SW5mby5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0Fzc2VtYmx5SW5mby5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWQ5NWRjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQXNzZW1ibHlJbmZvLmNzCkBAIC0wLDAgKzEsNjAgQEAKK3VzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOw0KKy8vDQorLy8gR2VuZXJhbCBJbmZvcm1hdGlvbiBhYm91dCBhbiBhc3NlbWJseSBpcyBjb250cm9sbGVkIHRocm91Z2ggdGhlIGZvbGxvd2luZyANCisvLyBzZXQgb2YgYXR0cmlidXRlcy4gQ2hhbmdlIHRoZXNlIGF0dHJpYnV0ZSB2YWx1ZXMgdG8gbW9kaWZ5IHRoZSBpbmZvcm1hdGlvbg0KKy8vIGFzc29jaWF0ZWQgd2l0aCBhbiBhc3NlbWJseS4NCisvLw0KK1thc3NlbWJseSA6IEFzc2VtYmx5VGl0bGUoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5RGVzY3JpcHRpb24oIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5Q29uZmlndXJhdGlvbigiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDb21wYW55KCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseVByb2R1Y3QoIiIpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5Q29weXJpZ2h0KCIiKV0NCitbYXNzZW1ibHkgOiBBc3NlbWJseVRyYWRlbWFyaygiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlDdWx0dXJlKCIiKV0NCisNCisvLw0KKy8vIFZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGFuIGFzc2VtYmx5IGNvbnNpc3RzIG9mIHRoZSBmb2xsb3dpbmcgZm91ciB2YWx1ZXM6DQorLy8NCisvLyAgICAgIE1ham9yIFZlcnNpb24NCisvLyAgICAgIE1pbm9yIFZlcnNpb24gDQorLy8gICAgICBCdWlsZCBOdW1iZXINCisvLyAgICAgIFJldmlzaW9uDQorLy8NCisvLyBZb3UgY2FuIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgb3IgeW91IGNhbiBkZWZhdWx0IHRoZSBSZXZpc2lvbiBhbmQgQnVpbGQgTnVtYmVycyANCisvLyBieSB1c2luZyB0aGUgJyonIGFzIHNob3duIGJlbG93Og0KKw0KK1thc3NlbWJseSA6IEFzc2VtYmx5VmVyc2lvbigiMS4wLioiKV0NCisNCisvLw0KKy8vIEluIG9yZGVyIHRvIHNpZ24geW91ciBhc3NlbWJseSB5b3UgbXVzdCBzcGVjaWZ5IGEga2V5IHRvIHVzZS4gUmVmZXIgdG8gdGhlIA0KKy8vIE1pY3Jvc29mdCAuTkVUIEZyYW1ld29yayBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGFzc2VtYmx5IHNpZ25pbmcuDQorLy8NCisvLyBVc2UgdGhlIGF0dHJpYnV0ZXMgYmVsb3cgdG8gY29udHJvbCB3aGljaCBrZXkgaXMgdXNlZCBmb3Igc2lnbmluZy4gDQorLy8NCisvLyBOb3RlczogDQorLy8gICAoKikgSWYgbm8ga2V5IGlzIHNwZWNpZmllZCwgdGhlIGFzc2VtYmx5IGlzIG5vdCBzaWduZWQuDQorLy8gICAoKikgS2V5TmFtZSByZWZlcnMgdG8gYSBrZXkgdGhhdCBoYXMgYmVlbiBpbnN0YWxsZWQgaW4gdGhlIENyeXB0byBTZXJ2aWNlDQorLy8gICAgICAgUHJvdmlkZXIgKENTUCkgb24geW91ciBtYWNoaW5lLiBLZXlGaWxlIHJlZmVycyB0byBhIGZpbGUgd2hpY2ggY29udGFpbnMNCisvLyAgICAgICBhIGtleS4NCisvLyAgICgqKSBJZiB0aGUgS2V5RmlsZSBhbmQgdGhlIEtleU5hbWUgdmFsdWVzIGFyZSBib3RoIHNwZWNpZmllZCwgdGhlIA0KKy8vICAgICAgIGZvbGxvd2luZyBwcm9jZXNzaW5nIG9jY3VyczoNCisvLyAgICAgICAoMSkgSWYgdGhlIEtleU5hbWUgY2FuIGJlIGZvdW5kIGluIHRoZSBDU1AsIHRoYXQga2V5IGlzIHVzZWQuDQorLy8gICAgICAgKDIpIElmIHRoZSBLZXlOYW1lIGRvZXMgbm90IGV4aXN0IGFuZCB0aGUgS2V5RmlsZSBkb2VzIGV4aXN0LCB0aGUga2V5IA0KKy8vICAgICAgICAgICBpbiB0aGUgS2V5RmlsZSBpcyBpbnN0YWxsZWQgaW50byB0aGUgQ1NQIGFuZCB1c2VkLg0KKy8vICAgKCopIEluIG9yZGVyIHRvIGNyZWF0ZSBhIEtleUZpbGUsIHlvdSBjYW4gdXNlIHRoZSBzbi5leGUgKFN0cm9uZyBOYW1lKSB1dGlsaXR5Lg0KKy8vICAgICAgICBXaGVuIHNwZWNpZnlpbmcgdGhlIEtleUZpbGUsIHRoZSBsb2NhdGlvbiBvZiB0aGUgS2V5RmlsZSBzaG91bGQgYmUNCisvLyAgICAgICAgcmVsYXRpdmUgdG8gdGhlICJwcm9qZWN0IG91dHB1dCBkaXJlY3RvcnkiLiBUaGUgbG9jYXRpb24gb2YgdGhlIHByb2plY3Qgb3V0cHV0DQorLy8gICAgICAgIGRpcmVjdG9yeSBpcyBkZXBlbmRlbnQgb24gd2hldGhlciB5b3UgYXJlIHdvcmtpbmcgd2l0aCBhIGxvY2FsIG9yIHdlYiBwcm9qZWN0Lg0KKy8vICAgICAgICBGb3IgbG9jYWwgcHJvamVjdHMsIHRoZSBwcm9qZWN0IG91dHB1dCBkaXJlY3RvcnkgaXMgZGVmaW5lZCBhcw0KKy8vICAgICAgIDxQcm9qZWN0IERpcmVjdG9yeT5cb2JqXDxDb25maWd1cmF0aW9uPi4gRm9yIGV4YW1wbGUsIGlmIHlvdXIgS2V5RmlsZSBpcw0KKy8vICAgICAgIGxvY2F0ZWQgaW4gdGhlIHByb2plY3QgZGlyZWN0b3J5LCB5b3Ugd291bGQgc3BlY2lmeSB0aGUgQXNzZW1ibHlLZXlGaWxlIA0KKy8vICAgICAgIGF0dHJpYnV0ZSBhcyBbYXNzZW1ibHk6IEFzc2VtYmx5S2V5RmlsZSgiLi5cXC4uXFxteWtleS5zbmsiKV0NCisvLyAgICAgICAgRm9yIHdlYiBwcm9qZWN0cywgdGhlIHByb2plY3Qgb3V0cHV0IGRpcmVjdG9yeSBpcyBkZWZpbmVkIGFzDQorLy8gICAgICAgJUhPTUVQQVRIJVxWU1dlYkNhY2hlXDxNYWNoaW5lIE5hbWU+XDxQcm9qZWN0IERpcmVjdG9yeT5cb2JqXDxDb25maWd1cmF0aW9uPi4NCisvLyAgICgqKSBEZWxheSBTaWduaW5nIGlzIGFuIGFkdmFuY2VkIG9wdGlvbiAtIHNlZSB0aGUgTWljcm9zb2Z0IC5ORVQgRnJhbWV3b3JrDQorLy8gICAgICAgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzLg0KKy8vDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlEZWxheVNpZ24oZmFsc2UpXQ0KK1thc3NlbWJseSA6IEFzc2VtYmx5S2V5RmlsZSgiIildDQorW2Fzc2VtYmx5IDogQXNzZW1ibHlLZXlOYW1lKCIiKV0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9BcHBHcmlkQ29udHJvbC5hc2N4IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvQXBwR3JpZENvbnRyb2wuYXNjeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjExMTQzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvQXBwR3JpZENvbnRyb2wuYXNjeApAQCAtMCwwICsxIEBACis8JUAgQ29udHJvbCBMYW5ndWFnZT0iYyMiIEF1dG9FdmVudFdpcmV1cD0iZmFsc2UiIENvZGViZWhpbmQ9IkFwcEdyaWRDb250cm9sLmFzY3guY3MiIEluaGVyaXRzPSJQaG9uZUJvb2suV2ViLkNvbnRyb2xzLkFwcEdyaWRDb250cm9sIiBUYXJnZXRTY2hlbWE9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vaW50ZWxsaXNlbnNlL2llNSIlPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0FwcEdyaWRDb250cm9sLmFzY3guY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9BcHBHcmlkQ29udHJvbC5hc2N4LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjMmZlMDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9BcHBHcmlkQ29udHJvbC5hc2N4LmNzCkBAIC0wLDAgKzEsNDIgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBOZXh1cy5Db3JlOw0KK3VzaW5nIE5leHVzLldlYjsNCit1c2luZyBQaG9uZUJvb2suQ29yZTsNCisNCituYW1lc3BhY2UgUGhvbmVCb29rLldlYi5Db250cm9scw0KK3sNCisJcHVibGljIGNsYXNzIEFwcEdyaWRDb250cm9sIDogR3JpZENvbnRyb2wNCisJew0KKwkJcHJvdGVjdGVkIG92ZXJyaWRlIElFbnRyeUxpc3QgTmV3Q29udGV4dExpc3QNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gbmV3IEFwcEVudHJ5TGlzdCgpOyB9DQorCQl9DQorDQorCQlwcml2YXRlIHZvaWQgUGFnZV9Mb2FkKG9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCS8vIFB1dCB1c2VyIGNvZGUgdG8gaW5pdGlhbGl6ZSB0aGUgcGFnZSBoZXJlDQorCQl9DQorDQorCQkjcmVnaW9uIFdlYiBGb3JtIERlc2lnbmVyIGdlbmVyYXRlZCBjb2RlDQorDQorCQlwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBPbkluaXQoRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJLy8NCisJCQkvLyBDT0RFR0VOOiBUaGlzIGNhbGwgaXMgcmVxdWlyZWQgYnkgdGhlIEFTUC5ORVQgV2ViIEZvcm0gRGVzaWduZXIuDQorCQkJLy8NCisJCQlJbml0aWFsaXplQ29tcG9uZW50KCk7DQorCQkJYmFzZS5PbkluaXQoZSk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8JCVJlcXVpcmVkIG1ldGhvZCBmb3IgRGVzaWduZXIgc3VwcG9ydCAtIGRvIG5vdCBtb2RpZnkNCisJCS8vLwkJdGhlIGNvbnRlbnRzIG9mIHRoaXMgbWV0aG9kIHdpdGggdGhlIGNvZGUgZWRpdG9yLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgdm9pZCBJbml0aWFsaXplQ29tcG9uZW50KCkNCisJCXsNCisJCQl0aGlzLkxvYWQgKz0gbmV3IEV2ZW50SGFuZGxlcih0aGlzLlBhZ2VfTG9hZCk7DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvQXBwR3JpZENvbnRyb2wuYXNjeC5yZXN4IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvQXBwR3JpZENvbnRyb2wuYXNjeC5yZXN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMGVhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9BcHBHcmlkQ29udHJvbC5hc2N4LnJlc3gKQEAgLTAsMCArMSw0MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQorPHJvb3Q+DQorCTx4c2Q6c2NoZW1hIGlkPSJyb290IiB4bWxucz0iIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczptc2RhdGE9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206eG1sLW1zZGF0YSI+DQorCQk8eHNkOmVsZW1lbnQgbmFtZT0icm9vdCIgbXNkYXRhOklzRGF0YVNldD0idHJ1ZSI+DQorCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJPHhzZDpjaG9pY2UgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KKwkJCQkJPHhzZDplbGVtZW50IG5hbWU9ImRhdGEiPg0KKwkJCQkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCQkJCTx4c2Q6c2VxdWVuY2U+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iY29tbWVudCIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMiIgLz4NCisJCQkJCQkJPC94c2Q6c2VxdWVuY2U+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9InR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im1pbWV0eXBlIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJPC94c2Q6ZWxlbWVudD4NCisJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJyZXNoZWFkZXIiPg0KKwkJCQkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCQkJCTx4c2Q6c2VxdWVuY2U+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+DQorCQkJCQkJCTwveHNkOnNlcXVlbmNlPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIiB1c2U9InJlcXVpcmVkIiAvPg0KKwkJCQkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJPC94c2Q6ZWxlbWVudD4NCisJCQkJPC94c2Q6Y2hvaWNlPg0KKwkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJPC94c2Q6ZWxlbWVudD4NCisJPC94c2Q6c2NoZW1hPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlJlc01pbWVUeXBlIj4NCisJCTx2YWx1ZT50ZXh0L21pY3Jvc29mdC1yZXN4PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iVmVyc2lvbiI+DQorCQk8dmFsdWU+MS4wLjAuMDwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlJlYWRlciI+DQorCQk8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VSZWFkZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IldyaXRlciI+DQorCQk8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VXcml0ZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKzwvcm9vdD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9GaW5kZXIuYXNjeCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0ZpbmRlci5hc2N4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwMjczY2EKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9GaW5kZXIuYXNjeApAQCAtMCwwICsxLDI0IEBACis8JUAgQ29udHJvbCBMYW5ndWFnZT0iYyMiIEF1dG9FdmVudFdpcmV1cD0iZmFsc2UiIENvZGViZWhpbmQ9IkZpbmRlci5hc2N4LmNzIiBJbmhlcml0cz0iUGhvbmVCb29rLldlYi5Db250cm9scy5GaW5kZXIiIFRhcmdldFNjaGVtYT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9pbnRlbGxpc2Vuc2UvaWU1IiU+DQorPHRhYmxlPg0KKwk8dHI+DQorCQk8dGQgY29sc3Bhbj0iNiIgPg0KKwkJCTxhc3A6QnV0dG9uIElEPSJmaW5kIiBSdW5hdD0ic2VydmVyIj48L2FzcDpCdXR0b24+DQorCQkJPElOUFVUIG9uY2xpY2s9ImphdmFzY3JpcHQ6d2luZG93LnByaW50KCk7IiB0eXBlPSJidXR0b24iIHZhbHVlPSJQUklOVCIgbmFtZT0icHJpbnQiIGlkPSJwcmludCI+DQorCQk8L3RkPg0KKwk8dHI+DQorCQk8dGQ+TGFzdCBOYW1lPC90ZD4NCisJCTx0ZD5GaXJzdCBOYW1lPC90ZD4NCisJCTx0ZD5FeHRlbnNpb248L3RkPg0KKwkJPHRkPlVzZXI8L3RkPg0KKwkJPHRkPkhpcmUgRGF0ZTwvdGQ+DQorCQk8dGQ+SG91cnM8L3RkPgkJCSAgDQorCTwvdHI+DQorCTx0cj4NCisJCTx0ZD48YXNwOkRyb3BEb3duTGlzdCBJRD0ibGFzdF9uYW1lX2xpc3QiIFJ1bmF0PXNlcnZlcj48L2FzcDpEcm9wRG93bkxpc3Q+PC90ZD4NCisJCTx0ZD48YXNwOkRyb3BEb3duTGlzdCBJRD0iZmlyc3RfbmFtZV9saXN0IiBSdW5hdD1zZXJ2ZXI+PC9hc3A6RHJvcERvd25MaXN0PjwvdGQ+DQorCQk8dGQ+PGFzcDpEcm9wRG93bkxpc3QgSUQ9ImV4dGVuc2lvbl9saXN0IiBSdW5hdD1zZXJ2ZXI+PC9hc3A6RHJvcERvd25MaXN0PjwvdGQ+DQorCQk8dGQ+PGFzcDpEcm9wRG93bkxpc3QgSUQ9InVzZXJfbmFtZV9saXN0IiBSdW5hdD1zZXJ2ZXI+PC9hc3A6RHJvcERvd25MaXN0PjwvdGQ+DQorCQk8dGQ+PGFzcDpEcm9wRG93bkxpc3QgSUQ9ImhpcmVkX2xpc3QiIFJ1bmF0PXNlcnZlcj48L2FzcDpEcm9wRG93bkxpc3Q+PC90ZD4NCisJCTx0ZD48YXNwOkRyb3BEb3duTGlzdCBJRD0iaG91cnNfbGlzdCIgUnVuYXQ9c2VydmVyPjwvYXNwOkRyb3BEb3duTGlzdD48L3RkPg0KKwkgPC90cj4NCis8L3RhYmxlPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0ZpbmRlci5hc2N4LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvRmluZGVyLmFzY3guY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmEzM2RkNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0ZpbmRlci5hc2N4LmNzCkBAIC0wLDAgKzEsMTkwIEBACit1c2luZyBTeXN0ZW07DQordXNpbmcgU3lzdGVtLldlYi5VSS5XZWJDb250cm9sczsNCit1c2luZyBOZXh1cy5Db3JlLkhlbHBlcnM7DQordXNpbmcgTmV4dXMuV2ViOw0KK3VzaW5nIFBob25lQm9vay5Db3JlOw0KK3VzaW5nIFBob25lQm9vay5XZWIuRm9ybXM7DQordXNpbmcgV1FELkNvcmUuQ29udHJvbHM7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5XZWIuQ29udHJvbHMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIENhcHR1cmUgaW5wdXQgdmFsdWVzIHRvIGZpbHRlciBhIGxpc3Qgb2YgZGlyZWN0b3J5IGVudHJpZXMuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyANCisJcHVibGljIGNsYXNzIEZpbmRlciA6IFZpZXdDb250cm9sDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTaWduYWwgdXBkYXRlIHRvIGlucHV0IGZpbHRlcnMgDQorCQkvLy8gYnkgcGFzc2luZyBGaW5kQXJncyB3aXRoIHRoZSBzZWFyY2ggY3JpdGllcnMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGV2ZW50IEV2ZW50SGFuZGxlciBGaWx0ZXJfQ2hhbmdlZDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQb3B1bGF0ZSB0aGUgZW50cnkgZmluZGVyJ3Mgb3duIGNvbnRyb2xzLiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgdm9pZCBPcGVuKCkNCisJCXsNCisJCQlJVmlld0hlbHBlciBoID0gRXhlY3V0ZUJpbmQoQXBwLkVOVFJZX0ZJTkQpOw0KKwkJCWJvb2wgb2sgPSAoaC5Jc05vbWluYWwpOw0KKwkJCWlmICghb2spDQorCQkJCVBhZ2VfQWxlcnQgPSBoOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgcnVudGltZSBpbnN0YW5jZSBvZiBsYXN0X25hbWVfbGlzdCBmaWx0ZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIERyb3BEb3duTGlzdCBsYXN0X25hbWVfbGlzdDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHJ1bnRpbWUgaW5zdGFuY2Ugb2YgZmlyc3RfbmFtZV9saXN0IGZpbHRlci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgRHJvcERvd25MaXN0IGZpcnN0X25hbWVfbGlzdDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHJ1bnRpbWUgaW5zdGFuY2Ugb2YgZXh0ZW5zaW9uX2xpc3QgZmlsdGVyLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByb3RlY3RlZCBEcm9wRG93bkxpc3QgZXh0ZW5zaW9uX2xpc3Q7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBydW50aW1lIGluc3RhbmNlIG9mIHVzZXJfbmFtZV9saXN0IGZpbHRlci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgRHJvcERvd25MaXN0IHVzZXJfbmFtZV9saXN0Ow0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgcnVudGltZSBpbnN0YW5jZSBvZiBoaXJlZF9saXN0IGZpbHRlci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgRHJvcERvd25MaXN0IGhpcmVkX2xpc3Q7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBydW50aW1lIGluc3RhbmNlIG9mIGhvdXJzX2xpc3QgZmlsdGVyLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByb3RlY3RlZCBEcm9wRG93bkxpc3QgaG91cnNfbGlzdDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHJ1bnRpbWUgaW5zdGFuY2Ugb2YgZmluZCBmaWx0ZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIEJ1dHRvbiBmaW5kOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYW4gYXJyYXkgZm9yIGZpbHRlcnMgc28gdGhleSBjYW4gYmUgaGFuZGxlZCBhcyBhIGdyb3VwIChvciBjb21wb3NpdGUpLiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJldHVybnM+QXJyYXkgb2YgZmlsdGVyIGluc3RhbmNlczwvcmV0dXJucz4NCisJCS8vLyANCisJCXByaXZhdGUgRHJvcERvd25MaXN0W10gRmlsdGVyTGlzdCgpDQorCQl7DQorCQkJRHJvcERvd25MaXN0W10gbGlzdHMgPSB7bGFzdF9uYW1lX2xpc3QsIGZpcnN0X25hbWVfbGlzdCwgZXh0ZW5zaW9uX2xpc3QsIHVzZXJfbmFtZV9saXN0LCBoaXJlZF9saXN0LCBob3Vyc19saXN0fTsNCisJCQlyZXR1cm4gbGlzdHM7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVW5zZWxlY3QgYWxsIGJ1dCB0aGUgYWN0aXZlIGZpbHRlci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImV4Y2VwdCI+VGhlIGFjdGl2ZSBmaWx0ZXI8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIEZpbHRlcl9SZXNldChEcm9wRG93bkxpc3QgZXhjZXB0KQ0KKwkJew0KKwkJCWludCBleGNlcHRJbmRleCA9IDA7DQorCQkJaWYgKGV4Y2VwdCAhPSBudWxsKSBleGNlcHRJbmRleCA9IGV4Y2VwdC5TZWxlY3RlZEluZGV4Ow0KKwkJCWZvcmVhY2ggKERyb3BEb3duTGlzdCBmaWx0ZXIgaW4gRmlsdGVyTGlzdCgpKQ0KKwkJCXsNCisJCQkJZmlsdGVyLlNlbGVjdGVkSW5kZXggPSAwOw0KKwkJCX0NCisJCQlpZiAoZXhjZXB0ICE9IG51bGwpIGV4Y2VwdC5TZWxlY3RlZEluZGV4ID0gZXhjZXB0SW5kZXg7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSGFuZGxlIHRoZSBTZWxlY3RJbmRleENoYW5nZWQgZXZlbnQgZm9yIGFueSBvZiB0aGUgZmlsdGVycyANCisJCS8vLyBieSBjYXB0dXJpbmcgaXRzIHNldHRpbmdzIA0KKwkJLy8vIGFuZCByYWlzaW5nIHRoZSBGaWx0ZXJfQ2hhbmdlZCBldmVudC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InNlbmRlciI+RXZlbnQgc291cmNlPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBwYXJhbWV0ZXJzPC9wYXJhbT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBmaWx0ZXJfU2VsZWN0ZWRJbmRleENoYW5nZWQob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJSVZpZXdIZWxwZXIgaGVscGVyID0gQ2F0YWxvZy5HZXRIZWxwZXJGb3IoQXBwLkVOVFJZX0xJU1QpOw0KKwkJCURyb3BEb3duTGlzdCBsaXN0ID0gc2VuZGVyIGFzIERyb3BEb3duTGlzdDsNCisJCQlzdHJpbmcgaWQgPSBsaXN0LklEOw0KKwkJCWludCB2ID0gaWQuTGFzdEluZGV4T2YoTGlzdFN1ZmZpeCk7DQorCQkJc3RyaW5nIGtleSA9IGlkLlN1YnN0cmluZygwLCB2KTsNCisJCQloZWxwZXIuQ3JpdGVyaWFba2V5XSA9IGxpc3QuU2VsZWN0ZWRWYWx1ZTsNCisJCQlGaWx0ZXJfUmVzZXQobGlzdCk7DQorCQkJRmlsdGVyX0NoYW5nZWQodGhpcywgbmV3IEZpbmRBcmdzKGUsIGhlbHBlci5Dcml0ZXJpYSkpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhhbmRsZSB0aGUgQ2xpY2sgZXZlbnQgb2YgdGhlIEZpbmQgYnV0dG9uIA0KKwkJLy8vIGJ5IHJlc2V0dGluZyB0aGUgZmlsdGVycyANCisJCS8vLyBhbmQgcmFpc2luZyB0aGUgRmlsdGVyIENoYW5nZWQgZXZlbnQNCisJCS8vLyBzbyB0aGF0IHRoZSBwcmVzZW50YXRpb24gd2lsbCBsaXN0IGFsbCBlbnRyaWVzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ic2VuZGVyIj5FdmVudCBzb3VyY2U8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJlIj5SdW50aW1lIHBhcmFtZXRlcnM8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIGZpbmRfQ2xpY2sob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJaWYgKEZpbHRlcl9DaGFuZ2VkID09IG51bGwpIHJldHVybjsNCisJCQlGaWx0ZXJfUmVzZXQobnVsbCk7DQorCQkJSVZpZXdIZWxwZXIgaGVscGVyID0gUmVhZChBcHAuRU5UUllfRklORCk7DQorCQkJRmlsdGVyX0NoYW5nZWQodGhpcywgbmV3IFZpZXdBcmdzKGhlbHBlcikpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhhbmRsZSBwYWdlJ3MgbG9hZCBldmVudC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InNlbmRlciI+RXZlbnQgc291cmNlPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBwYXJhbWV0ZXJzPC9wYXJhbT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBQYWdlX0xvYWQob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJZmluZC5UZXh0ID0gRGlyZWN0b3J5Lm1zZ19MSVNUX0FMTF9DTUQ7DQorCQkJZmluZC5DbGljayArPSBuZXcgRXZlbnRIYW5kbGVyKGZpbmRfQ2xpY2spOw0KKw0KKwkJCWZvcmVhY2ggKERyb3BEb3duTGlzdCBmaWx0ZXIgaW4gRmlsdGVyTGlzdCgpKQ0KKwkJCXsNCisJCQkJZmlsdGVyLkF1dG9Qb3N0QmFjayA9IHRydWU7DQorCQkJCWZpbHRlci5TZWxlY3RlZEluZGV4Q2hhbmdlZCArPSBuZXcgRXZlbnRIYW5kbGVyKGZpbHRlcl9TZWxlY3RlZEluZGV4Q2hhbmdlZCk7DQorCQkJfQ0KKw0KKwkJCWlmICghSXNQb3N0QmFjaykgT3BlbigpOw0KKwkJfQ0KKw0KKwkJI3JlZ2lvbiBXZWIgRm9ybSBEZXNpZ25lciBnZW5lcmF0ZWQgY29kZQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vCQlJbml0aWFsaXplIGNvbXBvbmVudHMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJlIj5SdW50aW1lIHBhcmFtZXRlcnM8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIG92ZXJyaWRlIHZvaWQgT25Jbml0KEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCS8vDQorCQkJLy8gQ09ERUdFTjogVGhpcyBjYWxsIGlzIHJlcXVpcmVkIGJ5IHRoZSBBU1AuTkVUIFdlYiBGb3JtIERlc2lnbmVyLg0KKwkJCS8vDQorCQkJSW5pdGlhbGl6ZUNvbXBvbmVudCgpOw0KKwkJCWJhc2UuT25Jbml0KGUpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vCQlSZXF1aXJlZCBtZXRob2QgZm9yIERlc2lnbmVyIHN1cHBvcnQgLSBkbyBub3QgbW9kaWZ5DQorCQkvLy8JCXRoZSBjb250ZW50cyBvZiB0aGlzIG1ldGhvZCB3aXRoIHRoZSBjb2RlIGVkaXRvci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcml2YXRlIHZvaWQgSW5pdGlhbGl6ZUNvbXBvbmVudCgpDQorCQl7DQorCQkJdGhpcy5Mb2FkICs9IG5ldyBFdmVudEhhbmRsZXIodGhpcy5QYWdlX0xvYWQpOw0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbg0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0ZpbmRlci5hc2N4LnJlc3ggYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9GaW5kZXIuYXNjeC5yZXN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMGVhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9GaW5kZXIuYXNjeC5yZXN4CkBAIC0wLDAgKzEsNDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/Pg0KKzxyb290Pg0KKwk8eHNkOnNjaGVtYSBpZD0icm9vdCIgeG1sbnM9IiIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6bXNkYXRhPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnhtbC1tc2RhdGEiPg0KKwkJPHhzZDplbGVtZW50IG5hbWU9InJvb3QiIG1zZGF0YTpJc0RhdGFTZXQ9InRydWUiPg0KKwkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCTx4c2Q6Y2hvaWNlIG1heE9jY3Vycz0idW5ib3VuZGVkIj4NCisJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJkYXRhIj4NCisJCQkJCQk8eHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJCQk8eHNkOnNlcXVlbmNlPg0KKwkJCQkJCQkJPHhzZDplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIxIiAvPg0KKwkJCQkJCQkJPHhzZDplbGVtZW50IG5hbWU9ImNvbW1lbnQiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjIiIC8+DQorCQkJCQkJCTwveHNkOnNlcXVlbmNlPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJ0eXBlIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJtaW1ldHlwZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQk8L3hzZDpjb21wbGV4VHlwZT4NCisJCQkJCTwveHNkOmVsZW1lbnQ+DQorCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0icmVzaGVhZGVyIj4NCisJCQkJCQk8eHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJCQk8eHNkOnNlcXVlbmNlPg0KKwkJCQkJCQkJPHhzZDplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIxIiAvPg0KKwkJCQkJCQk8L3hzZDpzZXF1ZW5jZT4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHNkOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIgLz4NCisJCQkJCQk8L3hzZDpjb21wbGV4VHlwZT4NCisJCQkJCTwveHNkOmVsZW1lbnQ+DQorCQkJCTwveHNkOmNob2ljZT4NCisJCQk8L3hzZDpjb21wbGV4VHlwZT4NCisJCTwveHNkOmVsZW1lbnQ+DQorCTwveHNkOnNjaGVtYT4NCisJPHJlc2hlYWRlciBuYW1lPSJSZXNNaW1lVHlwZSI+DQorCQk8dmFsdWU+dGV4dC9taWNyb3NvZnQtcmVzeDwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlZlcnNpb24iPg0KKwkJPHZhbHVlPjEuMC4wLjA8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCisJPHJlc2hlYWRlciBuYW1lPSJSZWFkZXIiPg0KKwkJPHZhbHVlPlN5c3RlbS5SZXNvdXJjZXMuUmVzWFJlc291cmNlUmVhZGVyLCBTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODk8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCisJPHJlc2hlYWRlciBuYW1lPSJXcml0ZXIiPg0KKwkJPHZhbHVlPlN5c3RlbS5SZXNvdXJjZXMuUmVzWFJlc291cmNlV3JpdGVyLCBTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODk8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCis8L3Jvb3Q+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvRmluZGVyMi5hc2N4IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvRmluZGVyMi5hc2N4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmYmFjZDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9GaW5kZXIyLmFzY3gKQEAgLTAsMCArMSwyNiBAQAorPCVAIENvbnRyb2wgTGFuZ3VhZ2U9ImMjIiBBdXRvRXZlbnRXaXJldXA9ImZhbHNlIiBDb2RlYmVoaW5kPSJGaW5kZXIyLmFzY3guY3MiIEluaGVyaXRzPSJQaG9uZUJvb2suV2ViLkNvbnRyb2xzLkZpbmRlcjIiIFRhcmdldFNjaGVtYT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9pbnRlbGxpc2Vuc2UvaWU1IiU+DQorPCVAIFJlZ2lzdGVyIFRhZ1ByZWZpeD0ieCIgTmFtZXNwYWNlPSJOZXh1cy5XZWIiIEFzc2VtYmx5PSJOZXh1cy5XZWIiICU+DQorPHRhYmxlPg0KKwk8dHI+DQorCQk8dGQgY29sc3Bhbj0iNiIgPg0KKwkJCTxhc3A6QnV0dG9uIElEPSJmaW5kIiBSdW5hdD0ic2VydmVyIj48L2FzcDpCdXR0b24+DQorCQkJPElOUFVUIG9uY2xpY2s9ImphdmFzY3JpcHQ6d2luZG93LnByaW50KCk7IiB0eXBlPSJidXR0b24iIHZhbHVlPSJQUklOVCIgbmFtZT0iY21kX3ByaW50IiBpZD0iY21kX3ByaW50Ij4NCisJCTwvdGQ+DQorCTwvdHI+DQorCTx0cj4NCisJCTx0ZD48eDpUZXh0TGFiZWwgcnVuYXQ9InNlcnZlciIgaWQ9Imxhc3RfbmFtZV9sYWJlbCI+PC94OlRleHRMYWJlbD48L3RkPg0KKwkJPHRkPjx4OlRleHRMYWJlbCBydW5hdD0ic2VydmVyIiBpZD0iZmlyc3RfbmFtZV9sYWJlbCI+PC94OlRleHRMYWJlbD48L3RkPg0KKwkJPHRkPjx4OlRleHRMYWJlbCBydW5hdD0ic2VydmVyIiBpZD0iZXh0ZW5zaW9uX2xhYmVsIj48L3g6VGV4dExhYmVsPjwvdGQ+DQorCQk8dGQ+PHg6VGV4dExhYmVsIHJ1bmF0PSJzZXJ2ZXIiIGlkPSJ1c2VyX25hbWVfbGFiZWwiPjwveDpUZXh0TGFiZWw+PC90ZD4NCisJCTx0ZD48eDpUZXh0TGFiZWwgcnVuYXQ9InNlcnZlciIgaWQ9ImhpcmVkX2xhYmVsIj48L3g6VGV4dExhYmVsPjwvdGQ+DQorCQk8dGQ+PHg6VGV4dExhYmVsIHJ1bmF0PSJzZXJ2ZXIiIGlkPSJob3Vyc19sYWJlbCI+PC94OlRleHRMYWJlbD48L3RkPgkJCSAgDQorCTwvdHI+DQorCTx0cj4NCisJCTx0ZD48YXNwOkRyb3BEb3duTGlzdCBJRD0ibGFzdF9uYW1lX2xpc3QiIFJ1bmF0PXNlcnZlcj48L2FzcDpEcm9wRG93bkxpc3Q+PC90ZD4NCisJCTx0ZD48YXNwOkRyb3BEb3duTGlzdCBJRD0iZmlyc3RfbmFtZV9saXN0IiBSdW5hdD1zZXJ2ZXI+PC9hc3A6RHJvcERvd25MaXN0PjwvdGQ+DQorCQk8dGQ+PGFzcDpEcm9wRG93bkxpc3QgSUQ9ImV4dGVuc2lvbl9saXN0IiBSdW5hdD1zZXJ2ZXI+PC9hc3A6RHJvcERvd25MaXN0PjwvdGQ+DQorCQk8dGQ+PGFzcDpEcm9wRG93bkxpc3QgSUQ9InVzZXJfbmFtZV9saXN0IiBSdW5hdD1zZXJ2ZXI+PC9hc3A6RHJvcERvd25MaXN0PjwvdGQ+DQorCQk8dGQ+PGFzcDpEcm9wRG93bkxpc3QgSUQ9ImhpcmVkX2xpc3QiIFJ1bmF0PXNlcnZlcj48L2FzcDpEcm9wRG93bkxpc3Q+PC90ZD4NCisJCTx0ZD48YXNwOkRyb3BEb3duTGlzdCBJRD0iaG91cnNfbGlzdCIgUnVuYXQ9c2VydmVyPjwvYXNwOkRyb3BEb3duTGlzdD48L3RkPg0KKwk8L3RyPg0KKzwvdGFibGU+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvRmluZGVyMi5hc2N4LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvRmluZGVyMi5hc2N4LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMjM3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9GaW5kZXIyLmFzY3guY3MKQEAgLTAsMCArMSwxMzYgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uV2ViLlVJOw0KK3VzaW5nIFN5c3RlbS5XZWIuVUkuV2ViQ29udHJvbHM7DQordXNpbmcgTmV4dXMuQ29yZS5IZWxwZXJzOw0KK3VzaW5nIE5leHVzLldlYjsNCit1c2luZyBQaG9uZUJvb2suQ29yZTsNCisNCituYW1lc3BhY2UgUGhvbmVCb29rLldlYi5Db250cm9scw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gQ2FwdHVyZSBpbnB1dCB2YWx1ZXMgdG8gZmlsdGVyIGEgbGlzdCBvZiBkaXJlY3RvcnkgZW50cmllcy4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlwdWJsaWMgY2xhc3MgRmluZGVyMiA6IFZpZXdDb250cm9sDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBTaWduYWwgdXBkYXRlIHRvIGlucHV0IGZpbHRlcnMgDQorCQkvLy8gYnkgcGFzc2luZyBGaW5kQXJncyB3aXRoIHRoZSBzZWFyY2ggY3JpdGllcnMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIGV2ZW50IEV2ZW50SGFuZGxlciBGaWx0ZXJfQ2hhbmdlZDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQb3B1bGF0ZSB0aGUgZW50cnkgZmluZGVyJ3Mgb3duIGNvbnRyb2xzLiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgdm9pZCBPcGVuKCkNCisJCXsNCisJCQlJVmlld0hlbHBlciBoID0gR2V0SGVscGVyRm9yKEFwcC5FTlRSWV9GSU5EKTsNCisJCQlFeGVjdXRlQmluZChoKTsNCisJCQlib29sIG9rID0gKGguSXNOb21pbmFsKTsNCisJCQlpZiAoIW9rKQ0KKwkJCQlQYWdlX0FsZXJ0ID0gaDsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHJ1bnRpbWUgaW5zdGFuY2Ugb2YgZmluZCBCdXR0b24uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIEJ1dHRvbiBmaW5kOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhhbmRsZSB0aGUgQ2xpY2sgZXZlbnQgb2YgdGhlIEZpbmQgYnV0dG9uIA0KKwkJLy8vIGJ5IHJlc2V0dGluZyB0aGUgZmlsdGVycyANCisJCS8vLyBhbmQgcmFpc2luZyB0aGUgRmlsdGVyIENoYW5nZWQgZXZlbnQNCisJCS8vLyBzbyB0aGF0IHRoZSBwcmVzZW50YXRpb24gd2lsbCBsaXN0IGFsbCBlbnRyaWVzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ic2VuZGVyIj5FdmVudCBzb3VyY2U8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJlIj5SdW50aW1lIHBhcmFtZXRlcnM8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIGZpbmRfQ2xpY2sob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJaWYgKEZpbHRlcl9DaGFuZ2VkID09IG51bGwpIHJldHVybjsNCisJCQlGaWx0ZXJfUmVzZXQobnVsbCk7DQorCQkJSVZpZXdIZWxwZXIgaGVscGVyID0gUmVhZChBcHAuRU5UUllfTElTVCk7DQorCQkJRmlsdGVyX0NoYW5nZWQodGhpcywgbmV3IFZpZXdBcmdzKGhlbHBlcikpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFVuc2VsZWN0IGFsbCBidXQgdGhlIGFjdGl2ZSBmaWx0ZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJleGNlcHQiPlRoZSBhY3RpdmUgZmlsdGVyPC9wYXJhbT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBGaWx0ZXJfUmVzZXQoRHJvcERvd25MaXN0IGV4Y2VwdCkNCisJCXsNCisJCQkvLyBSZXNldCBmaWx0ZXIgY29udHJvbHMNCisJCQlpbnQgZXhjZXB0SW5kZXggPSAwOw0KKwkJCWlmIChleGNlcHQgIT0gbnVsbCkgZXhjZXB0SW5kZXggPSBleGNlcHQuU2VsZWN0ZWRJbmRleDsNCisJCQlmb3JlYWNoIChDb250cm9sIGMgaW4gQ29udHJvbHMpDQorCQkJew0KKwkJCQlpZiAoSXNMaXN0Q29udHJvbChjKSkNCisJCQkJew0KKwkJCQkJRHJvcERvd25MaXN0IHggPSAoRHJvcERvd25MaXN0KSBjOw0KKwkJCQkJeC5TZWxlY3RlZEluZGV4ID0gMDsNCisJCQkJfQ0KKwkJCX0NCisJCQlpZiAoZXhjZXB0ICE9IG51bGwpIGV4Y2VwdC5TZWxlY3RlZEluZGV4ID0gZXhjZXB0SW5kZXg7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSGFuZGxlIHRoZSBTZWxlY3RJbmRleENoYW5nZWQgZXZlbnQgZm9yIGFueSBvZiB0aGUgZmlsdGVycyANCisJCS8vLyBieSBjYXB0dXJpbmcgaXRzIHNldHRpbmdzIA0KKwkJLy8vIGFuZCByYWlzaW5nIHRoZSBGaWx0ZXJfQ2hhbmdlZCBldmVudC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InNlbmRlciI+RXZlbnQgc291cmNlPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBwYXJhbWV0ZXJzPC9wYXJhbT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBmaWx0ZXJfU2VsZWN0ZWRJbmRleENoYW5nZWQob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJSVZpZXdIZWxwZXIgaGVscGVyID0gQ2F0YWxvZy5HZXRIZWxwZXJGb3IoQXBwLkVOVFJZX0xJU1QpOw0KKwkJCURyb3BEb3duTGlzdCBsaXN0ID0gc2VuZGVyIGFzIERyb3BEb3duTGlzdDsNCisJCQlzdHJpbmcgaWQgPSBsaXN0LklEOw0KKwkJCWludCB2ID0gaWQuTGFzdEluZGV4T2YoTGlzdFN1ZmZpeCk7DQorCQkJc3RyaW5nIGtleSA9IGlkLlN1YnN0cmluZygwLCB2KTsNCisJCQloZWxwZXIuQ3JpdGVyaWFba2V5XSA9IGxpc3QuU2VsZWN0ZWRWYWx1ZTsNCisJCQlGaWx0ZXJfUmVzZXQobGlzdCk7DQorCQkJRmlsdGVyX0NoYW5nZWQodGhpcywgbmV3IFZpZXdBcmdzKGhlbHBlcikpOw0KKwkJfQ0KKw0KKwkJcHJpdmF0ZSB2b2lkIFBhZ2VfTG9hZChvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCQlmaW5kLkNsaWNrICs9IG5ldyBFdmVudEhhbmRsZXIoZmluZF9DbGljayk7DQorCQkJZm9yZWFjaCAoQ29udHJvbCBjb250cm9sIGluIENvbnRyb2xzKQ0KKwkJCXsNCisJCQkJaWYgKElzTGlzdENvbnRyb2woY29udHJvbCkpDQorCQkJCXsNCisJCQkJCURyb3BEb3duTGlzdCBmaWx0ZXIgPSAoRHJvcERvd25MaXN0KSBjb250cm9sOw0KKwkJCQkJZmlsdGVyLlNlbGVjdGVkSW5kZXhDaGFuZ2VkICs9IG5ldyBFdmVudEhhbmRsZXIoZmlsdGVyX1NlbGVjdGVkSW5kZXhDaGFuZ2VkKTsNCisJCQkJCWZpbHRlci5BdXRvUG9zdEJhY2sgPSB0cnVlOw0KKwkJCQl9DQorCQkJfQ0KKwkJfQ0KKw0KKwkJI3JlZ2lvbiBXZWIgRm9ybSBEZXNpZ25lciBnZW5lcmF0ZWQgY29kZQ0KKw0KKwkJcHJvdGVjdGVkIG92ZXJyaWRlIHZvaWQgT25Jbml0KEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCS8vDQorCQkJLy8gQ09ERUdFTjogVGhpcyBjYWxsIGlzIHJlcXVpcmVkIGJ5IHRoZSBBU1AuTkVUIFdlYiBGb3JtIERlc2lnbmVyLg0KKwkJCS8vDQorCQkJSW5pdGlhbGl6ZUNvbXBvbmVudCgpOw0KKwkJCWJhc2UuT25Jbml0KGUpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vCQlSZXF1aXJlZCBtZXRob2QgZm9yIERlc2lnbmVyIHN1cHBvcnQgLSBkbyBub3QgbW9kaWZ5DQorCQkvLy8JCXRoZSBjb250ZW50cyBvZiB0aGlzIG1ldGhvZCB3aXRoIHRoZSBjb2RlIGVkaXRvci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIHZvaWQgSW5pdGlhbGl6ZUNvbXBvbmVudCgpDQorCQl7DQorCQkJdGhpcy5Mb2FkICs9IG5ldyBFdmVudEhhbmRsZXIodGhpcy5QYWdlX0xvYWQpOw0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbg0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0ZpbmRlcjIuYXNjeC5yZXN4IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvRmluZGVyMi5hc2N4LnJlc3gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQwZWE0ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0ZpbmRlcjIuYXNjeC5yZXN4CkBAIC0wLDAgKzEsNDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/Pg0KKzxyb290Pg0KKwk8eHNkOnNjaGVtYSBpZD0icm9vdCIgeG1sbnM9IiIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6bXNkYXRhPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnhtbC1tc2RhdGEiPg0KKwkJPHhzZDplbGVtZW50IG5hbWU9InJvb3QiIG1zZGF0YTpJc0RhdGFTZXQ9InRydWUiPg0KKwkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCTx4c2Q6Y2hvaWNlIG1heE9jY3Vycz0idW5ib3VuZGVkIj4NCisJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJkYXRhIj4NCisJCQkJCQk8eHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJCQk8eHNkOnNlcXVlbmNlPg0KKwkJCQkJCQkJPHhzZDplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIxIiAvPg0KKwkJCQkJCQkJPHhzZDplbGVtZW50IG5hbWU9ImNvbW1lbnQiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjIiIC8+DQorCQkJCQkJCTwveHNkOnNlcXVlbmNlPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJ0eXBlIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJtaW1ldHlwZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQk8L3hzZDpjb21wbGV4VHlwZT4NCisJCQkJCTwveHNkOmVsZW1lbnQ+DQorCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0icmVzaGVhZGVyIj4NCisJCQkJCQk8eHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJCQk8eHNkOnNlcXVlbmNlPg0KKwkJCQkJCQkJPHhzZDplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIxIiAvPg0KKwkJCQkJCQk8L3hzZDpzZXF1ZW5jZT4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHNkOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIgLz4NCisJCQkJCQk8L3hzZDpjb21wbGV4VHlwZT4NCisJCQkJCTwveHNkOmVsZW1lbnQ+DQorCQkJCTwveHNkOmNob2ljZT4NCisJCQk8L3hzZDpjb21wbGV4VHlwZT4NCisJCTwveHNkOmVsZW1lbnQ+DQorCTwveHNkOnNjaGVtYT4NCisJPHJlc2hlYWRlciBuYW1lPSJSZXNNaW1lVHlwZSI+DQorCQk8dmFsdWU+dGV4dC9taWNyb3NvZnQtcmVzeDwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlZlcnNpb24iPg0KKwkJPHZhbHVlPjEuMC4wLjA8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCisJPHJlc2hlYWRlciBuYW1lPSJSZWFkZXIiPg0KKwkJPHZhbHVlPlN5c3RlbS5SZXNvdXJjZXMuUmVzWFJlc291cmNlUmVhZGVyLCBTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODk8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCisJPHJlc2hlYWRlciBuYW1lPSJXcml0ZXIiPg0KKwkJPHZhbHVlPlN5c3RlbS5SZXNvdXJjZXMuUmVzWFJlc291cmNlV3JpdGVyLCBTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODk8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCis8L3Jvb3Q+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvSW5pdGlhbEZpbHRlci5hc2N4IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvSW5pdGlhbEZpbHRlci5hc2N4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiOTQ0ODIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9Jbml0aWFsRmlsdGVyLmFzY3gKQEAgLTAsMCArMSwxMCBAQAorPCVAIENvbnRyb2wgTGFuZ3VhZ2U9ImMjIiBBdXRvRXZlbnRXaXJldXA9ImZhbHNlIiBDb2RlYmVoaW5kPSJJbml0aWFsRmlsdGVyLmFzY3guY3MiIEluaGVyaXRzPSJQaG9uZUJvb2suV2ViLkNvbnRyb2xzLkluaXRpYWxGaWx0ZXIiIFRhcmdldFNjaGVtYT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9pbnRlbGxpc2Vuc2UvaWU1IiU+DQorPGFzcDpyZXBlYXRlciBpZD0ibGV0dGVycyIgcnVuYXQ9InNlcnZlciI+DQorCTxpdGVtdGVtcGxhdGU+DQorCQk8YXNwOmxpbmtidXR0b24gaWQ9ImxldHRlciIgcnVuYXQ9InNlcnZlciIgDQorCQkJY29tbWFuZG5hbWU9ImZpbHRlciIgDQorCQkJY29tbWFuZGFyZ3VtZW50PSc8JSMgRGF0YUJpbmRlci5FdmFsKENvbnRhaW5lciwgIkRhdGFJdGVtLkxldHRlciIpJT4nID4NCisJCQk8JSMgRGF0YUJpbmRlci5FdmFsKENvbnRhaW5lciwgIkRhdGFJdGVtLkxldHRlciIpJT4NCisJCTwvYXNwOmxpbmtidXR0b24+DQorCTwvaXRlbXRlbXBsYXRlPg0KKzwvYXNwOnJlcGVhdGVyPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0luaXRpYWxGaWx0ZXIuYXNjeC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0luaXRpYWxGaWx0ZXIuYXNjeC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTEyZTYwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvSW5pdGlhbEZpbHRlci5hc2N4LmNzCkBAIC0wLDAgKzEsOCBAQAordXNpbmcgTmV4dXMuV2ViLkNvbnRyb2xzOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suV2ViLkNvbnRyb2xzDQorew0KKwlwdWJsaWMgY2xhc3MgSW5pdGlhbEZpbHRlciA6IExldHRlckZpbHRlcg0KKwl7DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvSW5pdGlhbEZpbHRlci5hc2N4LnJlc3ggYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9Jbml0aWFsRmlsdGVyLmFzY3gucmVzeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDBlYTRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvSW5pdGlhbEZpbHRlci5hc2N4LnJlc3gKQEAgLTAsMCArMSw0MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQorPHJvb3Q+DQorCTx4c2Q6c2NoZW1hIGlkPSJyb290IiB4bWxucz0iIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczptc2RhdGE9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206eG1sLW1zZGF0YSI+DQorCQk8eHNkOmVsZW1lbnQgbmFtZT0icm9vdCIgbXNkYXRhOklzRGF0YVNldD0idHJ1ZSI+DQorCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJPHhzZDpjaG9pY2UgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KKwkJCQkJPHhzZDplbGVtZW50IG5hbWU9ImRhdGEiPg0KKwkJCQkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCQkJCTx4c2Q6c2VxdWVuY2U+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iY29tbWVudCIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMiIgLz4NCisJCQkJCQkJPC94c2Q6c2VxdWVuY2U+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9InR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im1pbWV0eXBlIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJPC94c2Q6ZWxlbWVudD4NCisJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJyZXNoZWFkZXIiPg0KKwkJCQkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCQkJCTx4c2Q6c2VxdWVuY2U+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+DQorCQkJCQkJCTwveHNkOnNlcXVlbmNlPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIiB1c2U9InJlcXVpcmVkIiAvPg0KKwkJCQkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJPC94c2Q6ZWxlbWVudD4NCisJCQkJPC94c2Q6Y2hvaWNlPg0KKwkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJPC94c2Q6ZWxlbWVudD4NCisJPC94c2Q6c2NoZW1hPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlJlc01pbWVUeXBlIj4NCisJCTx2YWx1ZT50ZXh0L21pY3Jvc29mdC1yZXN4PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iVmVyc2lvbiI+DQorCQk8dmFsdWU+MS4wLjAuMDwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlJlYWRlciI+DQorCQk8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VSZWFkZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IldyaXRlciI+DQorCQk8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VXcml0ZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKzwvcm9vdD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9MaXN0ZXIuYXNjeCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0xpc3Rlci5hc2N4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwNGNkMWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9MaXN0ZXIuYXNjeApAQCAtMCwwICsxLDEzIEBACis8JUAgQ29udHJvbCBMYW5ndWFnZT0iYyMiIEF1dG9FdmVudFdpcmV1cD0iZmFsc2UiIENvZGViZWhpbmQ9Ikxpc3Rlci5hc2N4LmNzIiBJbmhlcml0cz0iUGhvbmVCb29rLldlYi5Db250cm9scy5MaXN0ZXIiIFRhcmdldFNjaGVtYT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9pbnRlbGxpc2Vuc2UvaWU1IiU+DQorPGFzcDpEYXRhR3JpZCBpZD0ibGlzdCIgUnVuYXQ9InNlcnZlciIgQXV0b0dlbmVyYXRlQ29sdW1ucz1GYWxzZT4NCisJPEhlYWRlclN0eWxlIENzc0NsYXNzPSJIZWFkZXJTdHlsZSIgQmFja0NvbG9yPSIjQ0NDQzk5Ij48L0hlYWRlclN0eWxlPg0KKwk8QWx0ZXJuYXRpbmdJdGVtU3R5bGUgQ3NzQ2xhc3M9IkFsdGVybmF0aW5nSXRlbVN0eWxlIiBCYWNrQ29sb3I9IiNDQ0NDOTkiPjwvQWx0ZXJuYXRpbmdJdGVtU3R5bGU+DQorCTxDb2x1bW5zPg0KKwkJPGFzcDpCb3VuZENvbHVtbiBEYXRhRmllbGQ9Imxhc3RfbmFtZSIgSGVhZGVyVGV4dD0iTGFzdCBOYW1lIj48L2FzcDpCb3VuZENvbHVtbj4NCisJCTxhc3A6Qm91bmRDb2x1bW4gRGF0YUZpZWxkPSJmaXJzdF9uYW1lIiBIZWFkZXJUZXh0PSJGaXJzdCBOYW1lIj48L2FzcDpCb3VuZENvbHVtbj4NCisJCTxhc3A6Qm91bmRDb2x1bW4gRGF0YUZpZWxkPSJleHRlbnNpb24iIEhlYWRlclRleHQ9IkV4dGVuc2lvbiI+PC9hc3A6Qm91bmRDb2x1bW4+DQorCQk8YXNwOkJvdW5kQ29sdW1uIERhdGFGaWVsZD0idXNlcl9uYW1lIiBIZWFkZXJUZXh0PSJVc2VyIj48L2FzcDpCb3VuZENvbHVtbj4NCisJCTxhc3A6Qm91bmRDb2x1bW4gRGF0YUZpZWxkPSJoaXJlZCIgSGVhZGVyVGV4dD0iSGlyZSBEYXRlIj48L2FzcDpCb3VuZENvbHVtbj4NCisJCTxhc3A6Qm91bmRDb2x1bW4gRGF0YUZpZWxkPSJob3VycyIgSGVhZGVyVGV4dD0iSG91cnMiPjwvYXNwOkJvdW5kQ29sdW1uPg0KKwkJPC9Db2x1bW5zPg0KKzwvYXNwOkRhdGFHcmlkPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0xpc3Rlci5hc2N4LmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvTGlzdGVyLmFzY3guY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2QzMzM3ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0xpc3Rlci5hc2N4LmNzCkBAIC0wLDAgKzEsODAgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgU3lzdGVtLldlYi5VSS5XZWJDb250cm9sczsNCit1c2luZyBOZXh1cy5Db3JlLkhlbHBlcnM7DQordXNpbmcgTmV4dXMuV2ViOw0KK3VzaW5nIFBob25lQm9vay5Db3JlOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suV2ViLkNvbnRyb2xzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBQcmVzZW50IG1hdGNoaW5nIGRpcmVjdG9yeSBlbnRyaWVzLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gDQorCXB1YmxpYyBjbGFzcyBMaXN0ZXIgOiBWaWV3Q29udHJvbA0KKwl7DQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUG9wdWxhdGUgdGhlIERhdGFHcmlkIHdpdGggZGlyZWN0b3J5IGVudHJpZXMgbWF0Y2hpbmcgdGhlIGZpbHRlciBzZXR0aW5ncy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNyaXRlcmlhIj5GaWx0ZXIgc2V0dGluZ3M8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHVibGljIHZvaWQgT3BlbihJRGljdGlvbmFyeSBjcml0ZXJpYSkNCisJCXsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSBSZWFkRXhlY3V0ZShBcHAuRU5UUllfTElTVCwgY3JpdGVyaWEpOw0KKwkJCWJvb2wgb2sgPSBoZWxwZXIuSXNOb21pbmFsOw0KKwkJCWlmICghb2spIFBhZ2VfQWxlcnQgPSBoZWxwZXI7DQorCQkJZWxzZQ0KKwkJCXsNCisJCQkJSUxpc3QgcmVzdWx0ID0gaGVscGVyLk91dGNvbWU7DQorCQkJCWxpc3QuRGF0YVNvdXJjZSA9IHJlc3VsdDsNCisJCQkJbGlzdC5EYXRhQmluZCgpOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHJlZmVyZW5jZSB0byBkYXRhZ3JpZCBpbnN0YW5jZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgRGF0YUdyaWQgbGlzdDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBIYW5kbGUgcGFnZSdzIGxvYWQgZXZlbnQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJzZW5kZXIiPkV2ZW50IHNvdXJjZTwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImUiPlJ1bnRpbWUgcGFyYW1ldGVyczwvcGFyYW0+DQorCQkvLy8gDQorCQlwcml2YXRlIHZvaWQgUGFnZV9Mb2FkKG9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCWlmIChJc1Bvc3RCYWNrKSByZXR1cm47DQorCQkJT3BlbihudWxsKTsNCisJCX0NCisNCisJCSNyZWdpb24gV2ViIEZvcm0gRGVzaWduZXIgZ2VuZXJhdGVkIGNvZGUNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLwkJSW5pdGlhbGl6ZSBjb21wb25lbnRzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBwYXJhbWV0ZXJzPC9wYXJhbT4NCisJCS8vLyANCisJCXByb3RlY3RlZCBvdmVycmlkZSB2b2lkIE9uSW5pdChFdmVudEFyZ3MgZSkNCisJCXsNCisJCQkvLw0KKwkJCS8vIENPREVHRU46IFRoaXMgY2FsbCBpcyByZXF1aXJlZCBieSB0aGUgQVNQLk5FVCBXZWIgRm9ybSBEZXNpZ25lci4NCisJCQkvLw0KKwkJCUluaXRpYWxpemVDb21wb25lbnQoKTsNCisJCQliYXNlLk9uSW5pdChlKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLwkJUmVxdWlyZWQgbWV0aG9kIGZvciBEZXNpZ25lciBzdXBwb3J0IC0gZG8gbm90IG1vZGlmeQ0KKwkJLy8vCQl0aGUgY29udGVudHMgb2YgdGhpcyBtZXRob2Qgd2l0aCB0aGUgY29kZSBlZGl0b3IuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIEluaXRpYWxpemVDb21wb25lbnQoKQ0KKwkJew0KKwkJCXRoaXMuTG9hZCArPSBuZXcgRXZlbnRIYW5kbGVyKHRoaXMuUGFnZV9Mb2FkKTsNCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9MaXN0ZXIuYXNjeC5yZXN4IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvTGlzdGVyLmFzY3gucmVzeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDBlYTRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvTGlzdGVyLmFzY3gucmVzeApAQCAtMCwwICsxLDQyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4NCis8cm9vdD4NCisJPHhzZDpzY2hlbWEgaWQ9InJvb3QiIHhtbG5zPSIiIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOm1zZGF0YT0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp4bWwtbXNkYXRhIj4NCisJCTx4c2Q6ZWxlbWVudCBuYW1lPSJyb290IiBtc2RhdGE6SXNEYXRhU2V0PSJ0cnVlIj4NCisJCQk8eHNkOmNvbXBsZXhUeXBlPg0KKwkJCQk8eHNkOmNob2ljZSBtYXhPY2N1cnM9InVuYm91bmRlZCI+DQorCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGF0YSI+DQorCQkJCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJCQkJPHhzZDpzZXF1ZW5jZT4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJjb21tZW50IiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIyIiAvPg0KKwkJCQkJCQk8L3hzZDpzZXF1ZW5jZT4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0idHlwZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibWltZXR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQkJCQk8L3hzZDplbGVtZW50Pg0KKwkJCQkJPHhzZDplbGVtZW50IG5hbWU9InJlc2hlYWRlciI+DQorCQkJCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJCQkJPHhzZDpzZXF1ZW5jZT4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4NCisJCQkJCQkJPC94c2Q6c2VxdWVuY2U+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIHVzZT0icmVxdWlyZWQiIC8+DQorCQkJCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQkJCQk8L3hzZDplbGVtZW50Pg0KKwkJCQk8L3hzZDpjaG9pY2U+DQorCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQk8L3hzZDplbGVtZW50Pg0KKwk8L3hzZDpzY2hlbWE+DQorCTxyZXNoZWFkZXIgbmFtZT0iUmVzTWltZVR5cGUiPg0KKwkJPHZhbHVlPnRleHQvbWljcm9zb2Z0LXJlc3g8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCisJPHJlc2hlYWRlciBuYW1lPSJWZXJzaW9uIj4NCisJCTx2YWx1ZT4xLjAuMC4wPC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iUmVhZGVyIj4NCisJCTx2YWx1ZT5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVJlYWRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iV3JpdGVyIj4NCisJCTx2YWx1ZT5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVdyaXRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorPC9yb290Pg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0xpc3RlcjIuYXNjeCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0xpc3RlcjIuYXNjeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjM3OTZiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvTGlzdGVyMi5hc2N4CkBAIC0wLDAgKzEsOCBAQAorPCVAIENvbnRyb2wgTGFuZ3VhZ2U9ImMjIiBBdXRvRXZlbnRXaXJldXA9ImZhbHNlIiBDb2RlYmVoaW5kPSJMaXN0ZXIyLmFzY3guY3MiIEluaGVyaXRzPSJQaG9uZUJvb2suV2ViLkNvbnRyb2xzLkxpc3RlcjIiIFRhcmdldFNjaGVtYT0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9pbnRlbGxpc2Vuc2UvaWU1IiU+DQorPGFzcDpMYWJlbCBJRD0iaGludCIgUnVuYXQ9InNlcnZlciI+PC9hc3A6TGFiZWw+DQorPGFzcDpEYXRhR3JpZCBpZD0ibGlzdCIgUnVuYXQ9InNlcnZlciIgQXV0b0dlbmVyYXRlQ29sdW1ucz0iRmFsc2UiDQorCVBhZ2VTaXplPSIyIiBBbGxvd1BhZ2luZz0idHJ1ZSIgUGFnZXJTdHlsZS1Nb2RlPSJOdW1lcmljUGFnZXMiPg0KKwk8SGVhZGVyU3R5bGUgQ3NzQ2xhc3M9IkhlYWRlclN0eWxlIiBCYWNrQ29sb3I9IiNDQ0NDOTkiPjwvSGVhZGVyU3R5bGU+DQorCTxBbHRlcm5hdGluZ0l0ZW1TdHlsZSBDc3NDbGFzcz0iQWx0ZXJuYXRpbmdJdGVtU3R5bGUiIEJhY2tDb2xvcj0iI0NDQ0M5OSI+PC9BbHRlcm5hdGluZ0l0ZW1TdHlsZT4NCis8L2FzcDpEYXRhR3JpZD4NCis8cD48YXNwOkJ1dHRvbiBJRD0iYWRkIiBSdW5hdD0ic2VydmVyIj48L2FzcDpCdXR0b24+PC9wPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0xpc3RlcjIuYXNjeC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0xpc3RlcjIuYXNjeC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzA1NTAwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvQ29udHJvbHMvTGlzdGVyMi5hc2N4LmNzCkBAIC0wLDAgKzEsMjU3IEBACit1c2luZyBTeXN0ZW07DQordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KK3VzaW5nIFN5c3RlbS5XZWIuVUk7DQordXNpbmcgU3lzdGVtLldlYi5VSS5XZWJDb250cm9sczsNCit1c2luZyBOZXh1cy5Db3JlOw0KK3VzaW5nIE5leHVzLkNvcmUuSGVscGVyczsNCit1c2luZyBOZXh1cy5Db3JlLlByb2ZpbGU7DQordXNpbmcgUGhvbmVCb29rLkNvcmU7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5XZWIuQ29udHJvbHMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIFByZXNlbnQgbWF0Y2hpbmcgZGlyZWN0b3J5IGVudHJpZXMuDQorCS8vLyA8L3N1bW1hcnk+DQorCXB1YmxpYyBjbGFzcyBMaXN0ZXIyIDogQXBwR3JpZENvbnRyb2wNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgaW5zdGFuY2Ugb2YgRGF0YUdyaWQgY29udHJvbA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByb3RlY3RlZCBEYXRhR3JpZCBsaXN0Ow0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgaW5zdGFuY2Ugb2YgQWRkIGJ1dHRvbi4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgQnV0dG9uIGFkZDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2dnbGUgb2ZmIHRoZSBhZGQgYnV0dG9uIHdoZW4gYWRkaW5nLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByb3RlY3RlZCBvdmVycmlkZSB2b2lkIGxpc3RfQWRkKCkNCisJCXsNCisJCQliYXNlLmxpc3RfQWRkKCk7DQorCQkJYWRkLlZpc2libGUgPSBmYWxzZTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2dnbGUgb2ZmIHRoZSBhZGQgYnV0dG9uIHdoZW4gZWRpdGluZy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBsaXN0X0VkaXQoaW50IGluZGV4KQ0KKwkJew0KKwkJCWJhc2UubGlzdF9FZGl0KGluZGV4KTsNCisJCQlhZGQuVmlzaWJsZSA9IGZhbHNlOw0KKwkJfQ0KKw0KKwkJcHJvdGVjdGVkIG92ZXJyaWRlIElWaWV3SGVscGVyIFNhdmUoc3RyaW5nIGtleSwgQ29udHJvbENvbGxlY3Rpb24gY29udHJvbHMpDQorCQl7DQorCQkJSVZpZXdIZWxwZXIgaCA9IGJhc2UuU2F2ZShrZXksIGNvbnRyb2xzKTsNCisJCQlpZiAoaC5Jc05vbWluYWwpDQorCQkJew0KKwkJCQlib29sIG5lZWRFZGl0b3JWYWx1ZSA9IChudWxsID09IGguQ3JpdGVyaWFbQXBwLkVESVRPUl0pOw0KKwkJCQkvLyBGSVhNRTogW09WUi0yNF0gLSBUZW1wbGF0ZSBjb2x1bW5zIG5vdCBwYXNzZWQgYnkgRGF0YUdyaWRDb21tYW5kRXZlbnRBcmdzDQorCQkJCWlmIChuZWVkRWRpdG9yVmFsdWUpDQorCQkJCXsNCisJCQkJCWguQ3JpdGVyaWFbQXBwLkVESVRPUl0gPSBGaW5kQ29udHJvbFZhbHVlKEFwcC5FRElUT1IpOw0KKwkJCQl9DQorCQkJCWguRXhlY3V0ZSgpOw0KKwkJCX0NCisJCQlyZXR1cm4gaDsNCisJCX0NCisNCisJCXB1YmxpYyBvdmVycmlkZSBDb250cm9sQ29sbGVjdGlvbiBHZXRDb250cm9scyhEYXRhR3JpZENvbW1hbmRFdmVudEFyZ3MgZSkNCisJCXsNCisJCQlEYXRhR3JpZCBncmlkID0gR3JpZDsNCisJCQlDb250cm9sQ29sbGVjdGlvbiBjb250cm9scyA9IG5ldyBDb250cm9sQ29sbGVjdGlvbihncmlkKTsNCisJCQlmb3JlYWNoIChUYWJsZUNlbGwgY2VsbCBpbiBlLkl0ZW0uQ2VsbHMpDQorCQkJew0KKwkJCQlmb3IgKGludCBpID0gMDsgaSA8IGNlbGwuQ29udHJvbHMuQ291bnQ7IGkrKykNCisJCQkJCWNvbnRyb2xzLkFkZChjZWxsLkNvbnRyb2xzW2ldKTsNCisJCQl9DQorDQorCQkJLyoNCisJCQkvLyBXaGF0IHRoZSBzY3JpcHRzIHVzdWFsbHkgZG8sIGJ1dCBvdXIgRURJVE9SX0NFTEwgaXMgbnVsbC4NCisJCQljb25zdCBpbnQgRURJVE9SX0NFTEwgPSA4Ow0KKwkJCVRhYmxlQ2VsbCBvID0gZS5JdGVtLkNlbGxzW0VESVRPUl9DRUxMXTsNCisJCQlEcm9wRG93bkxpc3QgciA9IChEcm9wRG93bkxpc3QpIG8uRmluZENvbnRyb2woQXBwLkVESVRPUik7DQorCQkJY29udHJvbHMuQWRkKHIpOw0KKwkJCW9iamVjdCBvID0gZS5JdGVtLkZpbmRDb250cm9sKEFwcC5FRElUT1IpOw0KKw0KKwkJCS8vIFRoZSB0ZW1wbGF0ZSBpcyBpbiB0aGUgRGF0YUdyaWQsIGp1c3Qgbm90IGluIHRoZSBldmVudA0KKwkJCVRhYmxlUm93IGl0ZW0gPSBncmlkLkl0ZW1zWzFdOw0KKwkJCWZvcmVhY2ggKFRhYmxlQ2VsbCBjZWxsIGluIGl0ZW0uQ2VsbHMpDQorCQkJew0KKwkJCQlmb3IgKGludCBpID0gMDsgaSA8IGNlbGwuQ29udHJvbHMuQ291bnQ7IGkrKykNCisJCQkJCWNvbnRyb2xzLkFkZChjZWxsLkNvbnRyb2xzW2ldKTsJCQkJDQorCQkJfQkNCisJCQkqLw0KKw0KKwkJCXJldHVybiBjb250cm9sczsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBUb2dnbGUgYWRkIGJ1dHRvbiBvbiBhbmQgcHJlc2VudCBHcmlkLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmV0dXJucz5UcnVlIGlmIG5vbWluYWw8L3JldHVybnM+DQorCQkvLy8gDQorCQlwdWJsaWMgb3ZlcnJpZGUgYm9vbCBPcGVuKCkNCisJCXsNCisJCQlhZGQuVmlzaWJsZSA9IHRydWU7DQorCQkJcmV0dXJuIGJhc2UuT3BlbiAoKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb21wbGV0ZSBsb2FkaW5nIEdyaWQgDQorCQkvLy8gYWZ0ZXIgb3RoZXIgbWVtYmVycyBoYXZlIGluaXRpYWxpemVkLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBHcmlkX0xvYWQoKQ0KKwkJew0KKwkJCUFwcFVzZXJQcm9maWxlIHByb2ZpbGUgPSBTZXNzaW9uW1VzZXJQcm9maWxlLlVTRVJfUFJPRklMRV0gYXMgQXBwVXNlclByb2ZpbGU7DQorCQkJSGFzRWRpdENvbHVtbiA9IHByb2ZpbGUuSXNFZGl0b3I7DQorCQl9DQorDQorCQlwcml2YXRlIElLZXlWYWx1ZUxpc3QgX0VkaXRvcktleXMgPSBudWxsOw0KKw0KKwkJcHJpdmF0ZSBJS2V5VmFsdWVMaXN0IEVkaXRvcktleUxpc3QNCisJCXsNCisJCQlnZXQNCisJCQl7DQorCQkJCWlmIChfRWRpdG9yS2V5cyA9PSBudWxsKQ0KKwkJCQl7DQorCQkJCQlJS2V5VmFsdWVMaXN0IGRhdGEgPSBuZXcgS2V5VmFsdWVMaXN0KCk7DQorCQkJCQkvLyBGSVhNRTogT2J0YWluIGZyb20gU3ByaW5nPw0KKwkJCQkJZGF0YS5BZGQobmV3IEtleVZhbHVlKCIgIiwgIi0tdi0tIikpOw0KKwkJCQkJZGF0YS5BZGQobmV3IEtleVZhbHVlKCIwIiwgIk5PIikpOw0KKwkJCQkJZGF0YS5BZGQobmV3IEtleVZhbHVlKCIxIiwgIllFUyIpKTsNCisJCQkJCV9FZGl0b3JLZXlzID0gZGF0YTsNCisJCQkJfQ0KKwkJCQlyZXR1cm4gX0VkaXRvcktleXM7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIElEIFRva2VuIHRvIGluZGljYXRlIGEgTGFiZWwgY29udHJvbC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcml2YXRlIHN0YXRpYyBzdHJpbmcgTEFCRUwgPSAiX2xhYmVsIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBc3NlbWJsZSBhbiBJR3JpZENvbmZpZyBmb3IgYW4gYXR0cmlidXRlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZGF0YUZpZWxkIj5UaGUgYXR0cmlidXRlIElEPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5BbiBJR3JpZENvbmZpZyBpbnN0YW5jZTwvcmV0dXJucz4NCisJCXByaXZhdGUgSUdyaWRDb25maWcgR2V0Q29uZmlnKHN0cmluZyBkYXRhRmllbGQpDQorCQl7DQorCQkJc3RyaW5nIGhlYWRlclRleHQgPSBHZXRNZXNzYWdlKGRhdGFGaWVsZCArIExBQkVMKTsNCisJCQlJR3JpZENvbmZpZyBjb25maWcgPSBuZXcgR3JpZENvbmZpZyhkYXRhRmllbGQsIGhlYWRlclRleHQpOw0KKwkJCXJldHVybiBjb25maWc7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5pdGlhbGl6ZSBvdXIgR3JpZCBpbnN0YW5jZSANCisJCS8vLyBieSBzZXR0aW5nIHRoZSBjb2x1bW5zLCBsYWJlbHMsIA0KKwkJLy8vIGFuZCBvdGhlciBkeW5hbWljIGF0dHJpYnV0ZXMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIEdyaWRfSW5pdChEYXRhR3JpZCBncmlkKQ0KKwkJew0KKwkJCUdyaWQgPSBncmlkOw0KKwkJCUZpbmRDb21tYW5kID0gQXBwLkVOVFJZX0ZJTkQ7DQorCQkJTGlzdENvbW1hbmQgPSBBcHAuRU5UUllfTElTVDsNCisJCQlTYXZlQ29tbWFuZCA9IEFwcC5FTlRSWV9TQVZFOw0KKwkJCURhdGFLZXlGaWVsZCA9IEFwcC5FTlRSWV9LRVk7DQorCQkJQWxsb3dDdXN0b21QYWdpbmcgPSB0cnVlOw0KKwkJCVBhZ2VTaXplID0gMjsNCisJCQkvLyBIYXNFZGl0Q29sdW1uID0gdHJ1ZTsgLy8gU2V0IGZyb20gcHJvZmlsZQ0KKw0KKwkJCUlMaXN0IGNvbHMgPSBuZXcgQXJyYXlMaXN0KDcpOw0KKwkJCWNvbHMuQWRkKEdldENvbmZpZyhBcHAuTEFTVF9OQU1FKSk7DQorCQkJY29scy5BZGQoR2V0Q29uZmlnKEFwcC5GSVJTVF9OQU1FKSk7DQorCQkJY29scy5BZGQoR2V0Q29uZmlnKEFwcC5FWFRFTlNJT04pKTsNCisJCQljb2xzLkFkZChHZXRDb25maWcoQXBwLlVTRVJfTkFNRSkpOw0KKwkJCWNvbHMuQWRkKEdldENvbmZpZyhBcHAuSElSRUQpKTsNCisJCQljb2xzLkFkZChHZXRDb25maWcoQXBwLkhPVVJTKSk7DQorCQkJSUdyaWRDb25maWcgYyA9IEdldENvbmZpZyhBcHAuRURJVE9SKTsNCisJCQljLkl0ZW1UZW1wbGF0ZSA9IG5ldyBLZXlWYWx1ZVRlbXBsYXRlKEFwcC5FRElUT1IsIEVkaXRvcktleUxpc3QpOw0KKwkJCWMuRWRpdEl0ZW1UZW1wbGF0ZSA9IG5ldyBEcm9wRG93bkxpc3RUZW1wbGF0ZShBcHAuRURJVE9SLCBFZGl0b3JLZXlMaXN0KTsNCisJCQljb2xzLkFkZChjKTsNCisJCQlDb25maWdzID0gY29sczsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgcnVudGltZSBpbnN0YW5jZSBvZiB0aGUgbGFiZWwgb3ZlciB0aGUgRGF0YUdyaWQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHVibGljIExhYmVsIGhpbnQ7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gVXBkYXRlIHRoZSBwYWdlIGluZGV4IGhpbnQuIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ic2VuZGVyIj5FdmVudCBzb3VyY2U8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJlIj5SdW50aW1lIHBhcmFtZXRlcnM8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIHRoaXNfTGlzdFBhZ2VJbmRleENoYW5nZWQob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJTGlzdFBhZ2VJbmRleENoYW5nZWRBcmdzIGEgPSBlIGFzIExpc3RQYWdlSW5kZXhDaGFuZ2VkQXJnczsNCisJCQloaW50LlRleHQgPSBMaXN0UGFnZUluZGV4Q2hhbmdlZF9NZXNzYWdlKGEpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhhbmRsZSBQYWdlIEluaXQgZXZlbnQgYnkgb2J0YWluaW5nIHRoZSB1c2VyIHByb2ZpbGUgDQorCQkvLy8gYW5kIGluaXRhbGl6aW5nIHRoZSBjb250cm9scy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcml2YXRlIHZvaWQgUGFnZV9Jbml0KCkNCisJCXsNCisJCQlHcmlkX0luaXQobGlzdCk7DQorCQkJDQorCQkJTGlzdFBhZ2VJbmRleENoYW5nZWQgKz0gbmV3IEV2ZW50SGFuZGxlcih0aGlzX0xpc3RQYWdlSW5kZXhDaGFuZ2VkKTsNCisJCQlhZGQuQ2xpY2sgKz0gbmV3IEV2ZW50SGFuZGxlcihsaXN0X0FkZCk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSGFuZGxlIHBhZ2UncyBsb2FkIGV2ZW50Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ic2VuZGVyIj5FdmVudCBzb3VyY2U8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJlIj5SdW50aW1lIHBhcmFtZXRlcnM8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIFBhZ2VfTG9hZChvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCQlHcmlkX0xvYWQoKTsNCisJCX0NCisNCisJCSNyZWdpb24gV2ViIEZvcm0gRGVzaWduZXIgZ2VuZXJhdGVkIGNvZGUNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLwkJSW5pdGlhbGl6ZSBjb21wb25lbnRzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBwYXJhbWV0ZXJzPC9wYXJhbT4NCisJCS8vLyANCisJCXByb3RlY3RlZCBvdmVycmlkZSB2b2lkIE9uSW5pdChFdmVudEFyZ3MgZSkNCisJCXsNCisJCQkvLw0KKwkJCS8vIENPREVHRU46IFRoaXMgY2FsbCBpcyByZXF1aXJlZCBieSB0aGUgQVNQLk5FVCBXZWIgRm9ybSBEZXNpZ25lci4NCisJCQkvLw0KKwkJCUluaXRpYWxpemVDb21wb25lbnQoKTsNCisJCQliYXNlLk9uSW5pdChlKTsNCisJCQlQYWdlX0luaXQoKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLwkJUmVxdWlyZWQgbWV0aG9kIGZvciBEZXNpZ25lciBzdXBwb3J0IC0gZG8gbm90IG1vZGlmeQ0KKwkJLy8vCQl0aGUgY29udGVudHMgb2YgdGhpcyBtZXRob2Qgd2l0aCB0aGUgY29kZSBlZGl0b3IuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHJpdmF0ZSB2b2lkIEluaXRpYWxpemVDb21wb25lbnQoKQ0KKwkJew0KKwkJCXRoaXMuTG9hZCArPSBuZXcgRXZlbnRIYW5kbGVyKHRoaXMuUGFnZV9Mb2FkKTsNCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisJfQ0KKw0KKw0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9MaXN0ZXIyLmFzY3gucmVzeCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0NvbnRyb2xzL0xpc3RlcjIuYXNjeC5yZXN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMGVhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Db250cm9scy9MaXN0ZXIyLmFzY3gucmVzeApAQCAtMCwwICsxLDQyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4NCis8cm9vdD4NCisJPHhzZDpzY2hlbWEgaWQ9InJvb3QiIHhtbG5zPSIiIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiIHhtbG5zOm1zZGF0YT0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp4bWwtbXNkYXRhIj4NCisJCTx4c2Q6ZWxlbWVudCBuYW1lPSJyb290IiBtc2RhdGE6SXNEYXRhU2V0PSJ0cnVlIj4NCisJCQk8eHNkOmNvbXBsZXhUeXBlPg0KKwkJCQk8eHNkOmNob2ljZSBtYXhPY2N1cnM9InVuYm91bmRlZCI+DQorCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iZGF0YSI+DQorCQkJCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJCQkJPHhzZDpzZXF1ZW5jZT4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJjb21tZW50IiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIyIiAvPg0KKwkJCQkJCQk8L3hzZDpzZXF1ZW5jZT4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0idHlwZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibWltZXR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQkJCQk8L3hzZDplbGVtZW50Pg0KKwkJCQkJPHhzZDplbGVtZW50IG5hbWU9InJlc2hlYWRlciI+DQorCQkJCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJCQkJPHhzZDpzZXF1ZW5jZT4NCisJCQkJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4NCisJCQkJCQkJPC94c2Q6c2VxdWVuY2U+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIHVzZT0icmVxdWlyZWQiIC8+DQorCQkJCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQkJCQk8L3hzZDplbGVtZW50Pg0KKwkJCQk8L3hzZDpjaG9pY2U+DQorCQkJPC94c2Q6Y29tcGxleFR5cGU+DQorCQk8L3hzZDplbGVtZW50Pg0KKwk8L3hzZDpzY2hlbWE+DQorCTxyZXNoZWFkZXIgbmFtZT0iUmVzTWltZVR5cGUiPg0KKwkJPHZhbHVlPnRleHQvbWljcm9zb2Z0LXJlc3g8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCisJPHJlc2hlYWRlciBuYW1lPSJWZXJzaW9uIj4NCisJCTx2YWx1ZT4xLjAuMC4wPC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iUmVhZGVyIj4NCisJCTx2YWx1ZT5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVJlYWRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iV3JpdGVyIj4NCisJCTx2YWx1ZT5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVdyaXRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorPC9yb290Pg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0Zvcm1zL0RpcmVjdG9yeS5hc3B4IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvRm9ybXMvRGlyZWN0b3J5LmFzcHgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY2ZjdmNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0Zvcm1zL0RpcmVjdG9yeS5hc3B4CkBAIC0wLDAgKzEsMzQgQEAKKzwlQCBQYWdlIGxhbmd1YWdlPSJjIyIgQ29kZWJlaGluZD0iRGlyZWN0b3J5LmFzcHguY3MiIEF1dG9FdmVudFdpcmV1cD0iZmFsc2UiIEluaGVyaXRzPSJQaG9uZUJvb2suV2ViLkZvcm1zLkRpcmVjdG9yeSIgJT4NCis8JUAgUmVnaXN0ZXIgVGFnUHJlZml4PSJhcHAiIFRhZ05hbWU9IkZpbmRlciIgU3JjPSIuLi9Db250cm9scy9GaW5kZXIuYXNjeCIgJT4NCis8JUAgUmVnaXN0ZXIgVGFnUHJlZml4PSJhcHAiIFRhZ05hbWU9Ikxpc3RlciIgU3JjPSIuLi9Db250cm9scy9MaXN0ZXIuYXNjeCIgJT4NCisNCis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iID4NCis8SFRNTD4NCisJPEhFQUQ+DQorCQk8dGl0bGU+UGhvbmVCb29rIERpcmVjdG9yeTwvdGl0bGU+CQkNCisJCTxtZXRhIG5hbWU9IkdFTkVSQVRPUiIgQ29udGVudD0iTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gLk5FVCA3LjEiPg0KKwkJPG1ldGEgbmFtZT0iQ09ERV9MQU5HVUFHRSIgQ29udGVudD0iQyMiPg0KKwkJPG1ldGEgbmFtZT0idnNfZGVmYXVsdENsaWVudFNjcmlwdCIgY29udGVudD0iSmF2YVNjcmlwdCI+DQorCQk8bWV0YSBuYW1lPSJ2c190YXJnZXRTY2hlbWEiIGNvbnRlbnQ9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vaW50ZWxsaXNlbnNlL2llNSI+DQorCQk8TElOSyBocmVmPSJkZWZhdWx0LmNzcyIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCI+DQorCTwvSEVBRD4NCisJPGJvZHk+DQorCQk8aDE+UGhvbmVCb29rIERpcmVjdG9yeTwvaDE+DQorCQkJPGZvcm0gaWQ9ImZvcm0xIiBtZXRob2Q9InBvc3QiIHJ1bmF0PSJzZXJ2ZXIiPg0KKwkJCQ0KKwkJCTwhLS0gRVJST1IgLS0+DQorCQkJPGFzcDpQYW5lbCBpZD0iZXJyb3JfcGFuZWwiIHJ1bmF0PSJzZXJ2ZXIiPg0KKwkJCTxwPjxhc3A6TGFiZWwgaWQ9ImVycm9yX2xhYmVsIiBydW5hdD0ic2VydmVyIj48L2FzcDpMYWJlbD48L3A+DQorCQkJPGhyPg0KKwkJCTwvYXNwOlBhbmVsPg0KKwkJCQ0KKwkJCTwhLS0gUFJPTVBUIC0tPg0KKwkJCTxwPlNlbGVjdCBhIGZpbHRlciB0byBkaXNwbGF5IGZld2VyIGVudHJpZXMuPC9wPgkNCisNCisJCQk8YXBwOkZpbmRlciBpZD0iZmluZGVyIiBydW5hdD0ic2VydmVyIj48L2FwcDpGaW5kZXI+DQorCQkJDQorIAkJCTxhcHA6TGlzdGVyIGlkPSJsaXN0ZXIiIHJ1bmF0PSJzZXJ2ZXIiPjwvYXBwOkxpc3Rlcj4NCisNCisJCTwvZm9ybT4NCisJPC9ib2R5Pg0KKzwvSFRNTD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Gb3Jtcy9EaXJlY3RvcnkuYXNweC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0Zvcm1zL0RpcmVjdG9yeS5hc3B4LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0YzU3ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Gb3Jtcy9EaXJlY3RvcnkuYXNweC5jcwpAQCAtMCwwICsxLDE4MyBAQAordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5XZWIuVUk7DQordXNpbmcgU3lzdGVtLldlYi5VSS5XZWJDb250cm9sczsNCit1c2luZyBOZXh1cy5Db3JlOw0KK3VzaW5nIE5leHVzLkNvcmUuSGVscGVyczsNCit1c2luZyBOZXh1cy5XZWI7DQordXNpbmcgUGhvbmVCb29rLldlYi5Db250cm9sczsNCisNCituYW1lc3BhY2UgUGhvbmVCb29rLldlYi5Gb3Jtcw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gIERpc3BsYXkgYSBsaXN0IG9mIGVtcGxveWVlcyB3aXRoIHRoZWlyIHRlbGVwaG9uZSBleHRlbnNpb24gW09WUi01XS4gDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyA8cmVtYXJrcz48cD4NCisJLy8vIFRoaXMgaXMgYSBzdGFydGVyIHZlcnNpb24gb2YgdGhlIERpcmVjdG9yeSBwYWdlIA0KKwkvLy8gdGhhdCBwcmVzZW50cyB0aGUgbGlzdCANCisJLy8vIHdpdGhvdXQgb2ZmZXJpbmcgbW9yZSBhZHZhbmNlZCBmZWF0dXJlcy4NCisJLy8vIDwvcD48L3JlbWFya3M+DQorCS8vLyANCisJcHVibGljIGNsYXNzIERpcmVjdG9yeSA6IFBhZ2UNCisJew0KKwkJI3JlZ2lvbiBNZXNzYWdlcw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBtZXNzYWdlIGZvciB0aGUgTGlzdCBBbGwgY29tbWFuZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIG1zZ19MSVNUX0FMTF9DTUQgPSAiU0hPVyBBTEwiOw0KKw0KKwkJI2VuZHJlZ2lvbg0KKw0KKwkJI3JlZ2lvbiBQYWdlIFByb3BlcnRpZXMgDQorDQorCQlwcm90ZWN0ZWQgUGFuZWwgZXJyb3JfcGFuZWw7DQorCQlwcm90ZWN0ZWQgTGFiZWwgZXJyb3JfbGFiZWw7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRGlzcGxheSBhIGxpc3Qgb2YgZXJyb3IgbWVzc2FnZXMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIElWaWV3SGVscGVyIFBhZ2VfRXJyb3INCisJCXsNCisJCQlzZXQNCisJCQl7DQorCQkJCWVycm9yX2xhYmVsLlRleHQgPSB2YWx1ZS5BbGVydHNUZXh0Ow0KKwkJCQllcnJvcl9wYW5lbC5WaXNpYmxlID0gdHJ1ZTsNCisJCQl9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBmaWxlZCBmb3IgQ2F0YWxvZyBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIElSZXF1ZXN0Q2F0YWxvZyBfQ2F0YWxvZzsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIHJlZmVyZW5jZSB0byB0aGUgQ2F0YWxvZyAob2JqZWN0IGZhY3RvcnkpIGZvciB0aGlzIGFwcGxpY2F0aW9uLiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJlbWFya3M+PHA+DQorCQkvLy8gU3ViY2xhc3NlcyBhZGRpbmcgRXZlbnRIYW5kbGVycyANCisJCS8vLyBzaG91bGQgcGFzcyBhIHJlZmVyZW5jZSB0byB0aGVtc2VsdmVzIHdpdGggYSBWaWV3QXJncyBpbnN0YW5jZSwgDQorCQkvLy8gZW5jYXBzdWxhdGluZyB0aGUgSGVscGVyLg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQlwdWJsaWMgdmlydHVhbCBJUmVxdWVzdENhdGFsb2cgQ2F0YWxvZw0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfQ2F0YWxvZzsgfQ0KKwkJCXNldCB7IF9DYXRhbG9nID0gdmFsdWU7IH0NCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gRXZlbnQgaGFuZGxlcnMNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcmVzZW50IG1hdGNoaW5nIGRpcmVjdG9yeSBlbnRyaWVzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByb3RlY3RlZCBMaXN0ZXIgbGlzdGVyOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENhcHR1cmUgaW5wdXQgdmFsdWVzIHRvIGZpbHRlciBhIGxpc3Qgb2YgZGlyZWN0b3J5IGVudHJpZXMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIEZpbmRlciBmaW5kZXI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSGFuZGxlIEZpbHRlciBDaGFuZ2VkIGV2ZW50IGJ5IG9wZW5pbmcgdGhlIExpc3RlciBjb250cm9sIA0KKwkJLy8vIGFuZCBwYXNzaW5nIHRocm91Z2ggdGhlIHNlYXJjaCBjcml0ZXJpYSANCisJCS8vLyBwcm92aWRlZCBieSB0aGUgZXZlbnQgYXJ0cy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InNlbmRlciI+RXZlbnQgc291cmNlPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBhcmd1ZW1lbnRzPC9wYXJhbT4NCisJCS8vLyANCisJCXByb3RlY3RlZCB2b2lkIGZpbmRlcl9GaWx0ZXJDaGFuZ2VkKG9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJCVZpZXdBcmdzIGEgPSBlIGFzIFZpZXdBcmdzOw0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IGEuSGVscGVyOw0KKwkJCWxpc3Rlci5PcGVuKGhlbHBlci5Dcml0ZXJpYSk7DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkjcmVnaW9uIFBhZ2UgRXZlbnRzDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSGFuZGxlIFZpZXdfRXJyb3IgZXZlbnQgYnkgcHJlc2VudGluZyB0aGUgZXJyb3IgbWVzc2FnZQ0KKwkJLy8vIHByb3ZpZGVkIGJ5IHRoZSBIZWxwZXIgY2xhc3MuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJzZW5kZXIiPkV2ZW50IHNvdXJjZTwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImUiPlJ1bnRpbWUgcGFyYW1ldGVyczwvcGFyYW0+DQorCQkvLy8gDQorCQlwcml2YXRlIHZvaWQgVmlld19FcnJvcihvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCQlWaWV3QXJncyB2ID0gZSBhcyBWaWV3QXJnczsNCisJCQlpZiAodiA9PSBudWxsKSB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oIlZpZXdfRXJyb3I6ICEoZSBpcyBWaWV3QXJncykiKTsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSB2LkhlbHBlcjsNCisJCQlpZiAoaGVscGVyICE9IG51bGwpIFBhZ2VfRXJyb3IgPSBoZWxwZXI7DQorCQkJZWxzZSB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oIlZpZXdfRXJyb3I6IChlLmhlbHBlcj09bnVsbCkiKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJbml0aWFsaXplIGNvbnRyb2xzIGJ5IHJlZ2lzdGVyaW5nIGZvciBWaWV3IEVycm9yIGV2ZW50cyANCisJCS8vLyBhbmQgcGFzc2luZyB0aHJvdWdoIG91ciBDYXRhbG9nIGluc3RhbmNlLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iYyI+Q29udHJvbCB0byBpbml0aWFsaXplPC9wYXJhbT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBWaWV3X0luaXQoVmlld0NvbnRyb2wgYykNCisJCXsNCisJCQljLlZpZXdfQWxlcnQgKz0gbmV3IEV2ZW50SGFuZGxlcihWaWV3X0Vycm9yKTsNCisJCQljLkNhdGFsb2cgPSBDYXRhbG9nOyAvLyBJU1NVRTogV2h5IGlzbid0IGNvbnRyb2wgaW5qZWN0aW9uIHdvcmtpbmc/DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSGFuZGxlIFBhZ2UgSW5pdCBldmVudCBieSBpbml0YWxpemluZyB0aGUgY29udHJvbHMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIFBhZ2VfSW5pdCgpDQorCQl7DQorCQkJVmlld19Jbml0KGZpbmRlcik7DQorCQkJVmlld19Jbml0KGxpc3Rlcik7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSGFuZGxlIHBhZ2UncyBsb2FkIGV2ZW50Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ic2VuZGVyIj5FdmVudCBzb3VyY2U8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJlIj5SdW50aW1lIHBhcmFtZXRlcnM8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIFBhZ2VfTG9hZChvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCQllcnJvcl9wYW5lbC5WaXNpYmxlID0gZmFsc2U7DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkjcmVnaW9uIFdlYiBGb3JtIERlc2lnbmVyIGdlbmVyYXRlZCBjb2RlDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8JCUluaXRpYWxpemUgY29tcG9uZW50cy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImUiPlJ1bnRpbWUgcGFyYW1ldGVyczwvcGFyYW0+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBPbkluaXQoRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJLy8NCisJCQkvLyBDT0RFR0VOOiBUaGlzIGNhbGwgaXMgcmVxdWlyZWQgYnkgdGhlIEFTUC5ORVQgV2ViIEZvcm0gRGVzaWduZXIuDQorCQkJLy8NCisJCQlJbml0aWFsaXplQ29tcG9uZW50KCk7DQorCQkJYmFzZS5PbkluaXQoZSk7DQorCQkJUGFnZV9Jbml0KCk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8JCVJlcXVpcmVkIG1ldGhvZCBmb3IgRGVzaWduZXIgc3VwcG9ydCAtIGRvIG5vdCBtb2RpZnkNCisJCS8vLwkJdGhlIGNvbnRlbnRzIG9mIHRoaXMgbWV0aG9kIHdpdGggdGhlIGNvZGUgZWRpdG9yLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBJbml0aWFsaXplQ29tcG9uZW50KCkNCisJCXsNCisJCQl0aGlzLkxvYWQgKz0gbmV3IEV2ZW50SGFuZGxlcih0aGlzLlBhZ2VfTG9hZCk7DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvRm9ybXMvRGlyZWN0b3J5LmFzcHgucmVzeCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0Zvcm1zL0RpcmVjdG9yeS5hc3B4LnJlc3gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQwZWE0ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0Zvcm1zL0RpcmVjdG9yeS5hc3B4LnJlc3gKQEAgLTAsMCArMSw0MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQorPHJvb3Q+DQorCTx4c2Q6c2NoZW1hIGlkPSJyb290IiB4bWxucz0iIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczptc2RhdGE9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206eG1sLW1zZGF0YSI+DQorCQk8eHNkOmVsZW1lbnQgbmFtZT0icm9vdCIgbXNkYXRhOklzRGF0YVNldD0idHJ1ZSI+DQorCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJPHhzZDpjaG9pY2UgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KKwkJCQkJPHhzZDplbGVtZW50IG5hbWU9ImRhdGEiPg0KKwkJCQkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCQkJCTx4c2Q6c2VxdWVuY2U+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iY29tbWVudCIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMiIgLz4NCisJCQkJCQkJPC94c2Q6c2VxdWVuY2U+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9InR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im1pbWV0eXBlIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJPC94c2Q6ZWxlbWVudD4NCisJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJyZXNoZWFkZXIiPg0KKwkJCQkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCQkJCTx4c2Q6c2VxdWVuY2U+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+DQorCQkJCQkJCTwveHNkOnNlcXVlbmNlPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIiB1c2U9InJlcXVpcmVkIiAvPg0KKwkJCQkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJPC94c2Q6ZWxlbWVudD4NCisJCQkJPC94c2Q6Y2hvaWNlPg0KKwkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJPC94c2Q6ZWxlbWVudD4NCisJPC94c2Q6c2NoZW1hPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlJlc01pbWVUeXBlIj4NCisJCTx2YWx1ZT50ZXh0L21pY3Jvc29mdC1yZXN4PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iVmVyc2lvbiI+DQorCQk8dmFsdWU+MS4wLjAuMDwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlJlYWRlciI+DQorCQk8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VSZWFkZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IldyaXRlciI+DQorCQk8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VXcml0ZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKzwvcm9vdD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Gb3Jtcy9EaXJlY3RvcnkyLmFzcHggYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Gb3Jtcy9EaXJlY3RvcnkyLmFzcHgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdlOTgyZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0Zvcm1zL0RpcmVjdG9yeTIuYXNweApAQCAtMCwwICsxLDQxIEBACis8JUAgUmVnaXN0ZXIgVGFnUHJlZml4PSJhcHAiIFRhZ05hbWU9IkZpbmRlciIgU3JjPSIuLi9Db250cm9scy9GaW5kZXIyLmFzY3giICU+DQorPCVAIFJlZ2lzdGVyIFRhZ1ByZWZpeD0iYXBwIiBUYWdOYW1lPSJMaXN0ZXIiIFNyYz0iLi4vQ29udHJvbHMvTGlzdGVyMi5hc2N4IiAlPg0KKzwlQCBSZWdpc3RlciBUYWdQcmVmaXg9ImFwcCIgVGFnTmFtZT0iRmlsdGVyIiBTcmM9Ii4uL0NvbnRyb2xzL0luaXRpYWxGaWx0ZXIuYXNjeCIgJT4NCis8JUAgUGFnZSBsYW5ndWFnZT0iYyMiIENvZGViZWhpbmQ9IkRpcmVjdG9yeTIuYXNweC5jcyIgQXV0b0V2ZW50V2lyZXVwPSJmYWxzZSIgSW5oZXJpdHM9IlBob25lQm9vay5XZWIuRm9ybXMuRGlyZWN0b3J5MiIgJT4NCis8JUAgUmVnaXN0ZXIgVGFnUHJlZml4PSJvdnIiIE5hbWVzcGFjZT0iTmV4dXMuV2ViIiBBc3NlbWJseT0iTmV4dXMuV2ViIiAlPg0KKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiIgPg0KKzxIVE1MPg0KKwk8SEVBRD4NCisJCTx0aXRsZSBydW5hdD0ic2VydmVyIiBpZD0idGl0bGUiPjwvdGl0bGU+DQorCQk8bWV0YSBuYW1lPSJHRU5FUkFUT1IiIENvbnRlbnQ9Ik1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIC5ORVQgNy4xIj4NCisJCTxtZXRhIG5hbWU9IkNPREVfTEFOR1VBR0UiIENvbnRlbnQ9IkMjIj4NCisJCTxtZXRhIG5hbWU9InZzX2RlZmF1bHRDbGllbnRTY3JpcHQiIGNvbnRlbnQ9IkphdmFTY3JpcHQiPg0KKwkJPG1ldGEgbmFtZT0idnNfdGFyZ2V0U2NoZW1hIiBjb250ZW50PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2ludGVsbGlzZW5zZS9pZTUiPg0KKwkJPExJTksgaHJlZj0iZGVmYXVsdC5jc3MiIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiPg0KKwk8L0hFQUQ+DQorCTxib2R5Pg0KKwkJPGgxIGlkPSJoZWFkaW5nIiBydW5hdD0ic2VydmVyIj48L2gxPg0KKwkJPGZvcm0gaWQ9ImZvcm0xIiBtZXRob2Q9InBvc3QiIHJ1bmF0PSJzZXJ2ZXIiPg0KKwkJCTxwPjxhc3A6TGFiZWwgSUQ9ImdyZWV0aW5nIiBSdW5hdD0ic2VydmVyIj48L2FzcDpMYWJlbD4NCisJCQkJPGFzcDpMYWJlbCBJRD0icHJvZmlsZV9sYWJlbCIgUnVuYXQ9InNlcnZlciI+PC9hc3A6TGFiZWw+PC9wPg0KKwkJCTwhLS0gRVJST1IgLS0+DQorCQkJPGFzcDpQYW5lbCBJRD0iZXJyb3JfcGFuZWwiIFJ1bmF0PSJzZXJ2ZXIiPg0KKwkJCQk8UD4NCisJCQkJCTxhc3A6TGFiZWwgaWQ9ImVycm9yX2xhYmVsIiBSdW5hdD0ic2VydmVyIj48L2FzcDpMYWJlbD48L1A+DQorCQkJCTxIUj4NCisJCQk8L2FzcDpQYW5lbD4NCisJCQk8IS0tIFBST01QVCAtLT4NCisJCQk8YXNwOlBhbmVsIElEPSJwcm9tcHRfcGFuZWwiIFJ1bmF0PSJzZXJ2ZXIiPg0KKwkJCQk8UD4NCisJCQkJCTxhc3A6TGFiZWwgaWQ9InByb21wdF9sYWJlbCIgUnVuYXQ9InNlcnZlciI+PC9hc3A6TGFiZWw+PC9QPg0KKwkJCQk8SFI+DQorCQkJPC9hc3A6UGFuZWw+DQorCQkJPCEtLSBGSU5ERVIgLS0+DQorCQkJPGFwcDpGaW5kZXIgaWQ9ImZpbmRlciIgUnVuYXQ9InNlcnZlciI+PC9hcHA6RmluZGVyPg0KKwkJCTwhLS0gTEVUVEVSIEZJTFRFUiAtLT4NCisJCQk8YXBwOkZpbHRlciBpZD0ibGV0dGVyX2ZpbHRlciIgUnVuYXQ9InNlcnZlciI+PC9hcHA6RmlsdGVyPg0KKwkJCTwhLS0gTElTVEVSIC0tPg0KKwkJCTxhcHA6TGlzdGVyIGlkPSJsaXN0ZXIiIHJ1bmF0PSJzZXJ2ZXIiPjwvYXBwOkxpc3Rlcj4NCisJCTwvZm9ybT4NCisJPC9ib2R5Pg0KKzwvSFRNTD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Gb3Jtcy9EaXJlY3RvcnkyLmFzcHguY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Gb3Jtcy9EaXJlY3RvcnkyLmFzcHguY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWZhMjhiYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0Zvcm1zL0RpcmVjdG9yeTIuYXNweC5jcwpAQCAtMCwwICsxLDMwNSBAQAordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5TZWN1cml0eS5QcmluY2lwYWw7DQordXNpbmcgU3lzdGVtLldlYi5VSS5IdG1sQ29udHJvbHM7DQordXNpbmcgU3lzdGVtLldlYi5VSS5XZWJDb250cm9sczsNCit1c2luZyBOZXh1cy5Db3JlOw0KK3VzaW5nIE5leHVzLkNvcmUuSGVscGVyczsNCit1c2luZyBOZXh1cy5Db3JlLlByb2ZpbGU7DQordXNpbmcgTmV4dXMuV2ViOw0KK3VzaW5nIFBob25lQm9vay5Db3JlOw0KK3VzaW5nIFBob25lQm9vay5XZWIuQ29udHJvbHM7DQordXNpbmcgU3ByaW5nLldlYi5VSTsNCit1c2luZyBXUUQuQ29yZS5Db250cm9sczsNCisNCituYW1lc3BhY2UgUGhvbmVCb29rLldlYi5Gb3Jtcw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gIE1haW50YWluIGEgbGlzdCBvZiBlbXBsb3llZXMgd2l0aCB0aGVpciB0ZWxlcGhvbmUgZXh0ZW5zaW9uIFtPVlItNV0uIA0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gPHJlbWFya3M+PHA+DQorCS8vLyBUaGlzIHZlcnNpb24gb2YgdGhlIGRpcmVjdG9yeSBwYWdlIHN1cHBvcnRzIHBhZ2luZyBhbmQgZWRpdGluZyANCisJLy8vIHRocm91Z2ggdXNlIG9mIHRoZSBOZXh1cyBHcmlkQ29udHJvbC4NCisJLy8vIDwvcD48L3JlbWFya3M+DQorCS8vLyANCisJcHVibGljIGNsYXNzIERpcmVjdG9yeTIgOiBQYWdlDQorCXsNCisJCSNyZWdpb24gQmFzZSBQYWdlIG1lbWJlcnMNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGZpZWxkIGZvciBBcHBVc2VyUHJvZmlsZSBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcml2YXRlIEFwcFVzZXJQcm9maWxlIF9Qcm9maWxlOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEV4cG9zZSB0aGUgdXNlcidzIHByb2ZpbGUuIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByb3RlY3RlZCBBcHBVc2VyUHJvZmlsZSBQcm9maWxlDQorCQl7DQorCQkJc2V0DQorCQkJew0KKwkJCQlpZiAodmFsdWUgPT0gbnVsbCkNCisJCQkJCV9Qcm9maWxlID0gTmV3UHJvZmlsZSgpOw0KKwkJCQllbHNlDQorCQkJCQlfUHJvZmlsZSA9IHZhbHVlOw0KKw0KKwkJCX0NCisJCQlnZXQgeyByZXR1cm4gX1Byb2ZpbGU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDcmVhdGUgb3IgcmV0cmlldmUgYW4gQXBwVXNlclByb2ZpbGUgDQorCQkvLy8gYmFzZWQgb24gdGhlIGNsaWVudCdzIFdpbmRvd3NJZGVudGl0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHJldHVybnM+QSBuZXcgb3IgcHJleGlzdGluZyBBcHBVc2VyUHJvZmlsZTwvcmV0dXJucz4NCisJCS8vLyANCisJCXByb3RlY3RlZCBBcHBVc2VyUHJvZmlsZSBOZXdQcm9maWxlKCkNCisJCXsNCisJCQlXaW5kb3dzSWRlbnRpdHkgaWQgPSBXaW5kb3dzSWRlbnRpdHkuR2V0Q3VycmVudCgpOw0KKwkJCUFwcFVzZXJQcm9maWxlIHByb2ZpbGUgPSBuZXcgQXBwVXNlclByb2ZpbGUoaWQpOw0KKwkJCVNlc3Npb25bVXNlclByb2ZpbGUuVVNFUl9QUk9GSUxFXSA9IHByb2ZpbGU7DQorDQorCQkJSVZpZXdIZWxwZXIgaGVscGVyID0gQ2F0YWxvZy5HZXRIZWxwZXJGb3IoQXBwLkVOVFJZKTsNCisJCQloZWxwZXIuQ3JpdGVyaWFbQXBwLlVTRVJfTkFNRV0gPSBwcm9maWxlLlVzZXJJZDsNCisJCQloZWxwZXIuRXhlY3V0ZSgpOw0KKwkJCWlmIChoZWxwZXIuSXNOb21pbmFsKQ0KKwkJCXsNCisJCQkJc3RyaW5nIGVkaXRvciA9IGhlbHBlci5Dcml0ZXJpYVtBcHAuRURJVE9SXSBhcyBzdHJpbmc7DQorCQkJCS8vIElTU1VFOiBOZWVkIGNvbnN0YW50IGZvciAiMSIgKHRydWUpDQorCQkJCWJvb2wgaXNFZGl0b3IgPSAoKGVkaXRvciAhPSBudWxsKSAmJiAoZWRpdG9yLkVxdWFscygiMSIpKSk7DQorCQkJCXByb2ZpbGUuSXNFZGl0b3IgPSBpc0VkaXRvcjsNCisJCQkJaWYgKGVkaXRvciAhPSBudWxsKQ0KKwkJCQl7DQorCQkJCQlBcHBFbnRyeSBlbnRyeSA9IG5ldyBBcHBFbnRyeSgpOw0KKwkJCQkJZW50cnkuQWRkQWxsKGhlbHBlci5Dcml0ZXJpYSk7DQorCQkJCQlwcm9maWxlLkVudHJ5ID0gZW50cnk7DQorCQkJCX0NCisJCQl9DQorCQkJcmV0dXJuIHByb2ZpbGU7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJlc2VudCBhIGxpc3Qgb2YgZXJyb3IgbWVzc2FnZXMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIElWaWV3SGVscGVyIFBhZ2VfRXJyb3INCisJCXsNCisJCQlzZXQNCisJCQl7DQorCQkJCWVycm9yX2xhYmVsLlRleHQgPSB2YWx1ZS5BbGVydHNUZXh0Ow0KKwkJCQllcnJvcl9wYW5lbC5WaXNpYmxlID0gdHJ1ZTsNCisJCQl9DQorCQl9DQorDQorCQlwcm90ZWN0ZWQgUGFuZWwgcHJvbXB0X3BhbmVsOw0KKwkJcHJvdGVjdGVkIExhYmVsIHByb21wdF9sYWJlbDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBEaXNwbGF5IGEgUHJvbXB0IG1lc3NhZ2UuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIHN0cmluZyBQYWdlX1Byb21wdA0KKwkJew0KKwkJCXNldCB7IHByb21wdF9sYWJlbC5UZXh0ID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgZmllbGQgZm9yIENhdGFsb2cgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSBJUmVxdWVzdENhdGFsb2cgX0NhdGFsb2c7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRXhwb3NlIHRoZSBDYXRhbG9nIChvYmplY3QgZmFjdG9yeSkgZm9yIHRoaXMgYXBwbGljYXRpb24uIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBTdWJjbGFzc2VzIGFkZGluZyBFdmVudEhhbmRsZXJzIA0KKwkJLy8vIHNob3VsZCBwYXNzIGEgcmVmZXJlbmNlIHRvIHRoZW1zZWx2ZXMgd2l0aCBhIFZpZXdBcmdzIGluc3RhbmNlLCANCisJCS8vLyBlbmNhcHN1bGF0aW5nIHRoZSBIZWxwZXIuDQorCQkvLy8gPC9wPjwvcmVtYXJrcz4NCisJCS8vLyANCisJCXB1YmxpYyB2aXJ0dWFsIElSZXF1ZXN0Q2F0YWxvZyBDYXRhbG9nDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9DYXRhbG9nOyB9DQorCQkJc2V0IHsgX0NhdGFsb2cgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEhhbmRsZSBWaWV3IEVycm9yDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJzZW5kZXIiPjwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImUiPjwvcGFyYW0+DQorCQlwcml2YXRlIHZvaWQgVmlld19FcnJvcihvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCQlWaWV3QXJncyB2ID0gZSBhcyBWaWV3QXJnczsNCisJCQlpZiAodiA9PSBudWxsKSB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oIlZpZXdfRXJyb3I6ICEoZSBpcyBWaWV3QXJncykiKTsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSB2LkhlbHBlcjsNCisJCQlpZiAoaGVscGVyICE9IG51bGwpIFBhZ2VfRXJyb3IgPSBoZWxwZXI7DQorCQkJZWxzZSB0aHJvdyBuZXcgQXJndW1lbnRFeGNlcHRpb24oIlZpZXdfRXJyb3I6IChlLmhlbHBlcj09bnVsbCkiKTsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJbml0aWFsaXplIFVzZXIgQ29udHJvbHMgYnkgaGFuZGxpbmcgVmlldyBFcnJvciBldmVudHMgDQorCQkvLy8gYW5kIHBhc3NpbmcgdGhyb3VnaCBvdXIgQ2F0YWxvZyByZWZlcmVuY2UuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjIj5Db250cm9sIHRvIGluaXRpYWxpemU8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIFZpZXdfSW5pdChWaWV3Q29udHJvbCBjKQ0KKwkJew0KKwkJCWMuVmlld19BbGVydCArPSBuZXcgRXZlbnRIYW5kbGVyKFZpZXdfRXJyb3IpOw0KKwkJCWMuQ2F0YWxvZyA9IENhdGFsb2c7IC8vIElTU1VFOiBXaHkgaXNuJ3QgY29udHJvbCBpbmplY3Rpb24gd29ya2luZz8NCisJCX0NCisNCisJCXByaXZhdGUgdm9pZCBQYWdlX1ByZVJlbmRlcihvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCQlncmVldGluZy5UZXh0ID0gR2V0TWVzc2FnZShncmVldGluZy5JRCk7DQorCQkJdGl0bGUuSW5uZXJUZXh0ID0gR2V0TWVzc2FnZShBcHAuRElSRUNUT1JZX1RJVExFKTsNCisJCQloZWFkaW5nLklubmVyVGV4dCA9IEdldE1lc3NhZ2UoQXBwLkRJUkVDVE9SWV9IRUFESU5HKTsNCisJCX0NCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gRXZlbnQgaGFuZGxlcnMNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBGaWx0ZXIgTGlzdGVyIGZvciBEaXJlY3RvcnkNCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgSW5pdGlhbEZpbHRlciBsZXR0ZXJfZmlsdGVyOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEFwcGx5IGxldHRlciBmaWx0ZXIgdG8gV05FIEZhY2lsdHkgTGlzdC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9InNlbmRlciI+RXZlbnQgc291cmNlPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBhcmd1bWVudHM8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIGxldHRlcl9maWx0ZXJfVmlld19GaWx0ZXIob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJRmluZEFyZ3MgYSA9IGUgYXMgRmluZEFyZ3M7DQorCQkJbGlzdGVyLlJlYWQoYS5Dcml0ZXJpYSk7DQorCQkJbGlzdGVyLlJlc2V0KCk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gTGlzdCBtYXRjaGluZyBkaXJlY3RvcnkgZW50cmllcy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgTGlzdGVyMiBsaXN0ZXI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQ2FwdHVyZSBpbnB1dCB2YWx1ZXMgdG8gZmlsdGVyIGEgbGlzdCBvZiBkaXJlY3RvcnkgZW50cmllcy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgRmluZGVyMiBmaW5kZXI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSGFuZGxlIEZpbHRlciBDaGFuZ2VkIGV2ZW50IGJ5IG9wZW5pbmcgdGhlIExpc3RlciBjb250cm9sIA0KKwkJLy8vIGFuZCBwYXNzaW5nIHRocm91Z2ggdGhlIHNlYXJjaCBjcml0ZXJpYSANCisJCS8vLyBwcm92aWRlZCBieSB0aGUgZXZlbnQgYXJncywgDQorCQkvLy8gc28gdGhhdCB0aGUgTGlzdGVyIGNvbnRyb2wgY2FuIHByZXNlbnQgdGhlIG1hdGNoaW5nIGVudGl0aWVzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmVtYXJrcz4NCisJCS8vLyA8L3JlbWFya3M+DQorCQkvLy8gPHBhcmFtIG5hbWU9InNlbmRlciI+RXZlbnQgc291cmNlPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iZSI+UnVudGltZSBhcmd1ZW1lbnRzPC9wYXJhbT4NCisJCS8vLyANCisJCXByb3RlY3RlZCB2b2lkIGZpbmRlcl9GaWx0ZXJfQ2hhbmdlZChvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCQlWaWV3QXJncyBhID0gZSBhcyBWaWV3QXJnczsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSBhLkhlbHBlcjsNCisJCQlsaXN0ZXIuUmVzZXQoaGVscGVyLkNyaXRlcmlhKTsgLy8gUnVucyB0aGUgbGlzdCBjb21tYW5kIHdpdGggbmV3IGNyaXRlcmlhDQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkjcmVnaW9uIFBhZ2UgUHJvcGVydGllcyANCisNCisJCXByb3RlY3RlZCBIdG1sR2VuZXJpY0NvbnRyb2wgdGl0bGU7DQorCQlwcm90ZWN0ZWQgSHRtbEdlbmVyaWNDb250cm9sIGhlYWRpbmc7DQorCQlwcm90ZWN0ZWQgTGFiZWwgZ3JlZXRpbmc7DQorCQlwcm90ZWN0ZWQgTGFiZWwgcHJvZmlsZV9sYWJlbDsNCisJCXByb3RlY3RlZCBQYW5lbCBlcnJvcl9wYW5lbDsNCisJCXByb3RlY3RlZCBMYWJlbCBlcnJvcl9sYWJlbDsNCisNCisJCSNlbmRyZWdpb24NCisNCisJCSNyZWdpb24gUGFnZSBFdmVudHMNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBIYW5kbGUgUGFnZSBJbml0IGV2ZW50IGJ5IG9idGFpbmluZyB0aGUgdXNlciBwcm9maWxlIA0KKwkJLy8vIGFuZCBpbml0YWxpemluZyB0aGUgY29udHJvbHMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIFBhZ2VfSW5pdCgpDQorCQl7DQorCQkJUHJvZmlsZSA9IFNlc3Npb25bVXNlclByb2ZpbGUuVVNFUl9QUk9GSUxFXSBhcyBBcHBVc2VyUHJvZmlsZTsNCisJCQlQcmVSZW5kZXIgKz0gbmV3IEV2ZW50SGFuZGxlcihQYWdlX1ByZVJlbmRlcik7DQorDQorCQkJVmlld19Jbml0KGZpbmRlcik7DQorDQorCQkJVmlld19Jbml0KGxldHRlcl9maWx0ZXIpOw0KKwkJCWxldHRlcl9maWx0ZXIuVmlld19GaWx0ZXIgKz0gbmV3IEV2ZW50SGFuZGxlcihsZXR0ZXJfZmlsdGVyX1ZpZXdfRmlsdGVyKTsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSBDYXRhbG9nLkdldEhlbHBlckZvcihBcHAuRU5UUllfSU5JVElBTCk7DQorDQorCQkJaGVscGVyLkV4ZWN1dGUoKTsNCisJCQlsZXR0ZXJfZmlsdGVyLk9wZW4oaGVscGVyLk91dGNvbWUpOw0KKw0KKwkJCVZpZXdfSW5pdChsaXN0ZXIpOw0KKwkJCWZpbmRlci5GaWx0ZXJfQ2hhbmdlZCArPSBuZXcgRXZlbnRIYW5kbGVyKGZpbmRlcl9GaWx0ZXJfQ2hhbmdlZCk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSGFuZGxlIHBhZ2UncyBsb2FkIGV2ZW50Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0ic2VuZGVyIj5FdmVudCBzb3VyY2U8L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJlIj5SdW50aW1lIHBhcmFtZXRlcnM8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIFBhZ2VfTG9hZChvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCQllcnJvcl9wYW5lbC5WaXNpYmxlID0gZmFsc2U7DQorCQkJaWYgKCFJc1Bvc3RCYWNrKQ0KKwkJCXsNCisJCQkJUGFnZV9Qcm9tcHQgPSBHZXRNZXNzYWdlKEFwcC5ESVJFQ1RPUllfUFJPTVBUKTsNCisJCQkJc3RyaW5nIG5hbWUgPSBQcm9maWxlLkZ1bGxOYW1lOw0KKwkJCQlpZiAobmFtZSA9PSBudWxsKQ0KKwkJCQkJcHJvZmlsZV9sYWJlbC5UZXh0ID0gUHJvZmlsZS5Vc2VySWQ7DQorCQkJCWVsc2UNCisJCQkJCXByb2ZpbGVfbGFiZWwuVGV4dCA9IG5hbWU7DQorCQkJCS8vIFVzZXJMb2NhbGUgPSBQcm9maWxlLkxvY2FsZTsNCisJCQkJZmluZGVyLk9wZW4oKTsNCisJCQl9DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorDQorCQkjcmVnaW9uIFdlYiBGb3JtIERlc2lnbmVyIGdlbmVyYXRlZCBjb2RlDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8JCUluaXRpYWxpemUgY29tcG9uZW50cy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImUiPlJ1bnRpbWUgcGFyYW1ldGVyczwvcGFyYW0+DQorCQkvLy8gDQorCQlwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBPbkluaXQoRXZlbnRBcmdzIGUpDQorCQl7DQorCQkJLy8NCisJCQkvLyBDT0RFR0VOOiBUaGlzIGNhbGwgaXMgcmVxdWlyZWQgYnkgdGhlIEFTUC5ORVQgV2ViIEZvcm0gRGVzaWduZXIuDQorCQkJLy8NCisJCQlJbml0aWFsaXplQ29tcG9uZW50KCk7DQorCQkJYmFzZS5PbkluaXQoZSk7DQorCQkJUGFnZV9Jbml0KCk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8JCVJlcXVpcmVkIG1ldGhvZCBmb3IgRGVzaWduZXIgc3VwcG9ydCAtIGRvIG5vdCBtb2RpZnkNCisJCS8vLwkJdGhlIGNvbnRlbnRzIG9mIHRoaXMgbWV0aG9kIHdpdGggdGhlIGNvZGUgZWRpdG9yLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByaXZhdGUgdm9pZCBJbml0aWFsaXplQ29tcG9uZW50KCkNCisJCXsNCisJCQl0aGlzLkxvYWQgKz0gbmV3IEV2ZW50SGFuZGxlcih0aGlzLlBhZ2VfTG9hZCk7DQorCQl9DQorDQorCQkjZW5kcmVnaW9uDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvRm9ybXMvRGlyZWN0b3J5Mi5hc3B4LnJlc3ggYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Gb3Jtcy9EaXJlY3RvcnkyLmFzcHgucmVzeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDBlYTRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvRm9ybXMvRGlyZWN0b3J5Mi5hc3B4LnJlc3gKQEAgLTAsMCArMSw0MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQorPHJvb3Q+DQorCTx4c2Q6c2NoZW1hIGlkPSJyb290IiB4bWxucz0iIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczptc2RhdGE9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206eG1sLW1zZGF0YSI+DQorCQk8eHNkOmVsZW1lbnQgbmFtZT0icm9vdCIgbXNkYXRhOklzRGF0YVNldD0idHJ1ZSI+DQorCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJPHhzZDpjaG9pY2UgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KKwkJCQkJPHhzZDplbGVtZW50IG5hbWU9ImRhdGEiPg0KKwkJCQkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCQkJCTx4c2Q6c2VxdWVuY2U+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iY29tbWVudCIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMiIgLz4NCisJCQkJCQkJPC94c2Q6c2VxdWVuY2U+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9InR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im1pbWV0eXBlIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJPC94c2Q6ZWxlbWVudD4NCisJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJyZXNoZWFkZXIiPg0KKwkJCQkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCQkJCTx4c2Q6c2VxdWVuY2U+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+DQorCQkJCQkJCTwveHNkOnNlcXVlbmNlPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIiB1c2U9InJlcXVpcmVkIiAvPg0KKwkJCQkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJPC94c2Q6ZWxlbWVudD4NCisJCQkJPC94c2Q6Y2hvaWNlPg0KKwkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJPC94c2Q6ZWxlbWVudD4NCisJPC94c2Q6c2NoZW1hPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlJlc01pbWVUeXBlIj4NCisJCTx2YWx1ZT50ZXh0L21pY3Jvc29mdC1yZXN4PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iVmVyc2lvbiI+DQorCQk8dmFsdWU+MS4wLjAuMDwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlJlYWRlciI+DQorCQk8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VSZWFkZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IldyaXRlciI+DQorCQk8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VXcml0ZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKzwvcm9vdD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9Gb3Jtcy9XZWIuY29uZmlnIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvRm9ybXMvV2ViLmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODYyNmU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvRm9ybXMvV2ViLmNvbmZpZwpAQCAtMCwwICsxLDQzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KKzxjb25maWd1cmF0aW9uPg0KKw0KKyAgPGNvbmZpZ1NlY3Rpb25zPg0KKyAgICA8c2VjdGlvbkdyb3VwIG5hbWU9InNwcmluZyI+DQorICAgICAgIDxzZWN0aW9uIG5hbWU9Im9iamVjdHMiIHR5cGU9IlNwcmluZy5Db250ZXh0LlN1cHBvcnQuRGVmYXVsdFNlY3Rpb25IYW5kbGVyLCBTcHJpbmcuQ29yZSIvPg0KKyAgICA8L3NlY3Rpb25Hcm91cD4NCisgIDwvY29uZmlnU2VjdGlvbnM+DQorICANCisgIDxzcHJpbmc+DQorICANCisgICAgPGNvbnRleHQgdHlwZT0iU3ByaW5nLkNvbnRleHQuU3VwcG9ydC5XZWJBcHBsaWNhdGlvbkNvbnRleHQsIFNwcmluZy5XZWIiPg0KKyAgICAgICAgPHJlc291cmNlIHVyaT0iY29uZmlnOi8vc3ByaW5nL29iamVjdHMiLz4NCisgICAgPC9jb250ZXh0Pg0KKw0KKyAgICA8b2JqZWN0cyB4bWxucz0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0Ij4NCisgICAgDQorCQk8b2JqZWN0IGlkPSJEaXJlY3RvcnkiIHR5cGU9IkRpcmVjdG9yeS5hc3B4Ij4NCisJCQk8cHJvcGVydHkgbmFtZT0iQ2F0YWxvZyI+DQorCQkJCTxyZWYgb2JqZWN0PSJDYXRhbG9nIi8+DQorCQkJPC9wcm9wZXJ0eT4JCQ0KKwkJPC9vYmplY3Q+DQorICAgICAgICAgICAgICANCisJCTxvYmplY3QgaWQ9IkRpcmVjdG9yeTIiIHR5cGU9IkRpcmVjdG9yeTIuYXNweCI+DQorCQkJPHByb3BlcnR5IG5hbWU9IkNhdGFsb2ciPg0KKwkJCQk8cmVmIG9iamVjdD0iQ2F0YWxvZyIvPg0KKwkJCTwvcHJvcGVydHk+CQkNCisJCTwvb2JqZWN0Pg0KKw0KKwkgICA8IS0tIFVzZXIgQ29udHJvbHMgLS0+DQorCSAgIA0KKwkJPG9iamVjdCBpZD0iVmlld0NvbnRyb2wiIGFic3RyYWN0PSJ0cnVlIj4NCisJCQk8cHJvcGVydHkgbmFtZT0iQ2F0YWxvZyI+DQorCQkJCTxyZWYgb2JqZWN0PSJDYXRhbG9nIi8+DQorCQkJPC9wcm9wZXJ0eT4JCQ0KKwkJPC9vYmplY3Q+DQorCQk8b2JqZWN0IGlkPSJQaG9uZUJvb2suV2ViLkNvbnRyb2xzLkZpbmRlciIgYWJzdHJhY3Q9InRydWUiIHBhcmVudD0iVmlld0NvbnRyb2wiLz4JICAgCSAgICAJCSAgICAgICAgICAgICAgDQorCQk8b2JqZWN0IGlkPSJQaG9uZUJvb2suV2ViLkNvbnRyb2xzLkxpc3RlciIgYWJzdHJhY3Q9InRydWUiIHBhcmVudD0iVmlld0NvbnRyb2wiLz4NCisNCisgICA8L29iamVjdHM+DQorDQorIDwvc3ByaW5nPiAgDQorPC9jb25maWd1cmF0aW9uPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0Zvcm1zL2RlZmF1bHQuY3NzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvRm9ybXMvZGVmYXVsdC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTNlOWM5NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0Zvcm1zL2RlZmF1bHQuY3NzCkBAIC0wLDAgKzEsMTE1IEBACitib2R5DQorew0KKyAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGOw0KKwljb2xvcjogYmxhY2s7DQorCW1hcmdpbjogMCUgNSUgMCUgMTAlOw0KKyAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsNCit9DQorDQorQTpob3ZlciB7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0NCisNCitoMSwgaDIsIGgzLCBoNCwgaDUsIGg2IA0KK3sNCisJZm9udC1mYW1pbHk6IFZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7DQorCWNvbG9yOiMwMDMzOTk7DQorfQ0KKw0KK2gxIA0KK3sNCisJZm9udC1zaXplOjE4cHQ7DQorfQ0KKw0KKy5IZWFkZXJTdHlsZSANCit7DQorCWJhY2tncm91bmQtY29sb3I6IzAwMzM5OTsNCisJY29sb3I6I0ZGRkZGRjsNCisJZm9udC13ZWlnaHQ6Ym9sZDsNCisJcGFkZGluZzogMzBweCAxMHB4Ow0KK30NCisNCisuSXRlbVN0eWxlIA0KK3sNCisJYmFja2dyb3VuZC1jb2xvcjojRUVFRUVFOw0KKwljb2xvcjojMDAwMDAwOw0KKwlib3JkZXItdG9wLXdpZHRoOiB0aGluOw0KKwlib3JkZXItcmlnaHQtd2lkdGg6IHRoaW47DQorCWJvcmRlci1ib3R0b20td2lkdGg6IHRoaW47DQorCWJvcmRlci1sZWZ0LXdpZHRoOiB0aGluOw0KKwlib3JkZXItdG9wLXN0eWxlOiBub25lOw0KKwlib3JkZXItcmlnaHQtc3R5bGU6IHNvbGlkOw0KKwlib3JkZXItYm90dG9tLXN0eWxlOiBub25lOw0KKwlib3JkZXItbGVmdC1zdHlsZTogc29saWQ7DQorCWJvcmRlci10b3AtY29sb3I6ICMwMDAwMDA7DQorCWJvcmRlci1yaWdodC1jb2xvcjogIzAwMDAwMDsNCisJYm9yZGVyLWJvdHRvbS1jb2xvcjogIzAwMDAwMDsNCisJYm9yZGVyLWxlZnQtY29sb3I6ICMwMDAwMDA7DQorCXBhZGRpbmc6IDEwcHg7DQorfQ0KKw0KKy5BbHRlcm5hdGluZ0l0ZW1TdHlsZSANCit7DQorCWJhY2tncm91bmQtY29sb3I6I0RERERERDsNCisJY29sb3I6IzAwMDAwMDsNCisJcGFkZGluZzogMTBweDsNCit9DQorDQorLlNlbGVjdGVkSXRlbVN0eWxlIA0KK3sNCisJYmFja2dyb3VuZC1jb2xvcjojOTk5OUZGOw0KKwlmb250LXN0eWxlOml0YWxpYzsNCisJY29sb3I6IzAwMDAwMDsNCit9DQorDQorLkVkaXRJdGVtU3R5bGUgDQorew0KKwliYWNrZ3JvdW5kLWNvbG9yOiNGRjlGOUY7DQorCWZvbnQtc3R5bGU6aXRhbGljOw0KK30NCisNCisuUGFnZXJTdHlsZSBhDQorew0KKwlmb250LXN0eWxlOml0YWxpYzsNCisJZm9udC1zaXplOjE4cHg7DQorCXRleHQtZGVjb3JhdGlvbjpub25lOw0KK30NCisNCisuSGlnaGxpZ2h0ZWRJdGVtU3R5bGUNCit7DQorCWJhY2tncm91bmQtY29sb3I6Izk5OTlDQzsNCisJY3Vyc29yOnBvaW50ZXI7DQorfQ0KKw0KK3RkLnJlYWRvbmx5IA0KK3sNCisgIGZvbnQtd2VpZ2h0OmJvbGQ7DQorfQ0KKw0KK3RkLmhpbnQgew0KKyAgZm9udC1zaXplOjgwJTsNCisgIGZvbnQtZmFtaWx5OlZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7DQorICBmb250LXdlaWdodDpub3JtYWw7DQorfQ0KKw0KK3RkLnN1YnRpdGxlIHsNCisgIGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRjsNCisgIGZvbnQtZmFtaWx5OlZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7DQorICBmb250LXdlaWdodDpib2xkOw0KK30NCisNCit0ZC50aXRsZSB7DQorICBmb250LXNpemU6MTQwJTsNCisgIGZvbnQtZmFtaWx5OlZlcmRhbmEsQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7DQorICBmb250LXdlaWdodDpib2xkOw0KK30NCisuRGF0YUdyaWRTdHlsZSB7DQorCW1hcmdpbjogMHB4Ow0KKwlwYWRkaW5nOiAxMHB4Ow0KK30NCit0ZCB7DQorCXBhZGRpbmc6IDBweCAxMHB4Ow0KK30NCisNCisuYXBwX25hbWUgDQorew0KKwlmb250LXNpemU6MTBwdDsNCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvR2xvYmFsLmFzYXggYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9HbG9iYWwuYXNheApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjRkNzI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvR2xvYmFsLmFzYXgKQEAgLTAsMCArMSBAQAorPCVAIEFwcGxpY2F0aW9uIENvZGViZWhpbmQ9Ikdsb2JhbC5hc2F4LmNzIiBJbmhlcml0cz0iUGhvbmVCb29rLkdsb2JhbCIgJT4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9HbG9iYWwuYXNheC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0dsb2JhbC5hc2F4LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5MmUzMmYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9HbG9iYWwuYXNheC5jcwpAQCAtMCwwICsxLDY3IEBACit1c2luZyBTeXN0ZW07DQordXNpbmcgU3lzdGVtLkNvbXBvbmVudE1vZGVsOw0KK3VzaW5nIFN5c3RlbS5XZWI7DQorDQorbmFtZXNwYWNlIFBob25lQm9vaw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gU3VtbWFyeSBkZXNjcmlwdGlvbiBmb3IgR2xvYmFsLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlwdWJsaWMgY2xhc3MgR2xvYmFsIDogSHR0cEFwcGxpY2F0aW9uDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZXF1aXJlZCBkZXNpZ25lciB2YXJpYWJsZS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIElDb250YWluZXIgY29tcG9uZW50cyA9IG51bGw7DQorDQorCQlwdWJsaWMgR2xvYmFsKCkNCisJCXsNCisJCQlJbml0aWFsaXplQ29tcG9uZW50KCk7DQorCQl9DQorDQorCQlwcm90ZWN0ZWQgdm9pZCBBcHBsaWNhdGlvbl9TdGFydChPYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCX0NCisNCisJCXByb3RlY3RlZCB2b2lkIFNlc3Npb25fU3RhcnQoT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQl9DQorDQorCQlwcm90ZWN0ZWQgdm9pZCBBcHBsaWNhdGlvbl9CZWdpblJlcXVlc3QoT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQl9DQorDQorCQlwcm90ZWN0ZWQgdm9pZCBBcHBsaWNhdGlvbl9FbmRSZXF1ZXN0KE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJfQ0KKw0KKwkJcHJvdGVjdGVkIHZvaWQgQXBwbGljYXRpb25fQXV0aGVudGljYXRlUmVxdWVzdChPYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkNCisJCXsNCisJCX0NCisNCisJCXByb3RlY3RlZCB2b2lkIEFwcGxpY2F0aW9uX0Vycm9yKE9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBlKQ0KKwkJew0KKwkJfQ0KKw0KKwkJcHJvdGVjdGVkIHZvaWQgU2Vzc2lvbl9FbmQoT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQl9DQorDQorCQlwcm90ZWN0ZWQgdm9pZCBBcHBsaWNhdGlvbl9FbmQoT2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorCQl7DQorCQl9DQorDQorCQkjcmVnaW9uIFdlYiBGb3JtIERlc2lnbmVyIGdlbmVyYXRlZCBjb2RlDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmVxdWlyZWQgbWV0aG9kIGZvciBEZXNpZ25lciBzdXBwb3J0IC0gZG8gbm90IG1vZGlmeQ0KKwkJLy8vIHRoZSBjb250ZW50cyBvZiB0aGlzIG1ldGhvZCB3aXRoIHRoZSBjb2RlIGVkaXRvci4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIHZvaWQgSW5pdGlhbGl6ZUNvbXBvbmVudCgpDQorCQl7DQorCQkJdGhpcy5jb21wb25lbnRzID0gbmV3IENvbnRhaW5lcigpOw0KKwkJfQ0KKw0KKwkJI2VuZHJlZ2lvbg0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL0dsb2JhbC5hc2F4LnJlc3ggYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9HbG9iYWwuYXNheC5yZXN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMGVhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9HbG9iYWwuYXNheC5yZXN4CkBAIC0wLDAgKzEsNDIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/Pg0KKzxyb290Pg0KKwk8eHNkOnNjaGVtYSBpZD0icm9vdCIgeG1sbnM9IiIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6bXNkYXRhPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnhtbC1tc2RhdGEiPg0KKwkJPHhzZDplbGVtZW50IG5hbWU9InJvb3QiIG1zZGF0YTpJc0RhdGFTZXQ9InRydWUiPg0KKwkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCTx4c2Q6Y2hvaWNlIG1heE9jY3Vycz0idW5ib3VuZGVkIj4NCisJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJkYXRhIj4NCisJCQkJCQk8eHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJCQk8eHNkOnNlcXVlbmNlPg0KKwkJCQkJCQkJPHhzZDplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIxIiAvPg0KKwkJCQkJCQkJPHhzZDplbGVtZW50IG5hbWU9ImNvbW1lbnQiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjIiIC8+DQorCQkJCQkJCTwveHNkOnNlcXVlbmNlPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJ0eXBlIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJtaW1ldHlwZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4NCisJCQkJCQk8L3hzZDpjb21wbGV4VHlwZT4NCisJCQkJCTwveHNkOmVsZW1lbnQ+DQorCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0icmVzaGVhZGVyIj4NCisJCQkJCQk8eHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJCQk8eHNkOnNlcXVlbmNlPg0KKwkJCQkJCQkJPHhzZDplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIxIiAvPg0KKwkJCQkJCQk8L3hzZDpzZXF1ZW5jZT4NCisJCQkJCQkJPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHNkOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIgLz4NCisJCQkJCQk8L3hzZDpjb21wbGV4VHlwZT4NCisJCQkJCTwveHNkOmVsZW1lbnQ+DQorCQkJCTwveHNkOmNob2ljZT4NCisJCQk8L3hzZDpjb21wbGV4VHlwZT4NCisJCTwveHNkOmVsZW1lbnQ+DQorCTwveHNkOnNjaGVtYT4NCisJPHJlc2hlYWRlciBuYW1lPSJSZXNNaW1lVHlwZSI+DQorCQk8dmFsdWU+dGV4dC9taWNyb3NvZnQtcmVzeDwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlZlcnNpb24iPg0KKwkJPHZhbHVlPjEuMC4wLjA8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCisJPHJlc2hlYWRlciBuYW1lPSJSZWFkZXIiPg0KKwkJPHZhbHVlPlN5c3RlbS5SZXNvdXJjZXMuUmVzWFJlc291cmNlUmVhZGVyLCBTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODk8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCisJPHJlc2hlYWRlciBuYW1lPSJXcml0ZXIiPg0KKwkJPHZhbHVlPlN5c3RlbS5SZXNvdXJjZXMuUmVzWFJlc291cmNlV3JpdGVyLCBTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODk8L3ZhbHVlPg0KKwk8L3Jlc2hlYWRlcj4NCis8L3Jvb3Q+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvT2JqZWN0cy1XZWIueG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvT2JqZWN0cy1XZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwYzFhNDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9PYmplY3RzLVdlYi54bWwKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+IA0KKzxvYmplY3RzIHhtbG5zPSJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQiIA0KKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiANCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQgaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0L3hzZC9zcHJpbmctb2JqZWN0cy54c2QiPg0KKw0KKyAgPGltcG9ydCByZXNvdXJjZT0id2ViOi8vfi9SZXNvdXJjZXMvQXBwQmFzZS54bWwiLz4NCisgIDxpbXBvcnQgcmVzb3VyY2U9IndlYjovL34vUmVzb3VyY2VzL0FwcENvbmZpZy54bWwiLz4NCisgIDxpbXBvcnQgcmVzb3VyY2U9IndlYjovL34vUmVzb3VyY2VzL0FwcEZpZWxkcy54bWwiLz4NCisgIDxpbXBvcnQgcmVzb3VyY2U9IndlYjovL34vUmVzb3VyY2VzL0NhdGFsb2cueG1sIi8+DQorDQorPC9vYmplY3RzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL09iamVjdHMueG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvT2JqZWN0cy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE3M2I5ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL09iamVjdHMueG1sCkBAIC0wLDAgKzEsMTEgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/PiANCis8b2JqZWN0cyB4bWxucz0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0IiANCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgDQorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0IGh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldC94c2Qvc3ByaW5nLW9iamVjdHMueHNkIj4NCisNCisgIDxpbXBvcnQgcmVzb3VyY2U9IndlYjovL34vUmVzb3VyY2VzL0FwcEJhc2UueG1sIi8+DQorICA8aW1wb3J0IHJlc291cmNlPSJ3ZWI6Ly9+L1Jlc291cmNlcy9BcHBDb25maWcueG1sIi8+DQorICA8aW1wb3J0IHJlc291cmNlPSJ3ZWI6Ly9+L1Jlc291cmNlcy9BcHBGaWVsZHMueG1sIi8+DQorICA8aW1wb3J0IHJlc291cmNlPSJ3ZWI6Ly9+L1Jlc291cmNlcy9DYXRhbG9nLnhtbCIvPg0KKw0KKzwvb2JqZWN0cz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9QaG9uZUJvb2suYXNoeCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL1Bob25lQm9vay5hc2h4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNWNjNDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9QaG9uZUJvb2suYXNoeApAQCAtMCwwICsxLDk4IEBACis8JUAgV2ViSGFuZGxlciBDbGFzcz0iSmF5cm9ja1dlYi5QaG9uZUJvb2siICBMYW5ndWFnZT0iQyMiICU+DQorDQordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBBZ2lsaXR5LkV4dHJhcy5TcHJpbmc7DQordXNpbmcgSmF5cm9jay5Kc29uUnBjOw0KK3VzaW5nIEpheXJvY2suSnNvblJwYy5XZWI7DQordXNpbmcgTmV4dXMuQ29yZTsNCit1c2luZyBOZXh1cy5Db3JlLkhlbHBlcnM7DQordXNpbmcgUGhvbmVCb29rLkNvcmU7DQordXNpbmcgU3ByaW5nLkNvbnRleHQ7DQorDQorbmFtZXNwYWNlIEpheXJvY2tXZWINCit7DQorICAgIHB1YmxpYyBjbGFzcyBQaG9uZUJvb2sgOiBKc29uUnBjSGFuZGxlcg0KKyAgICB7DQorDQorICAgICAgICBwcml2YXRlIElSZXF1ZXN0Q2F0YWxvZyBjYXRhbG9nID0gbnVsbDsNCisNCisgICAgICAgIHByaXZhdGUgSVJlcXVlc3RDYXRhbG9nIEdldENhdGFsb2coKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIGlmIChjYXRhbG9nID09IG51bGwpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBJQXBwbGljYXRpb25Db250ZXh0IGZhY3RvcnkgPSBPYmplY3RzLkZhY3RvcnkoKTsNCisgICAgICAgICAgICAgICAgY2F0YWxvZyA9IGZhY3RvcnkuR2V0T2JqZWN0KEFwcC5DQVRBTE9HX0tFWSkgYXMgSVJlcXVlc3RDYXRhbG9nOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICByZXR1cm4gY2F0YWxvZzsNCisgICAgICAgIH0NCisgICAgICAgIA0KKyAgICAgICAgcHJpdmF0ZSBSZXF1ZXN0Q29udGV4dCBFeGVjdXRlKHN0cmluZyBjb21tYW5kKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiAoUmVxdWVzdENvbnRleHQpIEdldENhdGFsb2coKS5FeGVjdXRlUmVxdWVzdChjb21tYW5kKTsgICAgICAgICAgICANCisgICAgICAgIH0NCisgICAgICAgIA0KKyAgICAgICAgW0pzb25ScGNNZXRob2QoQXBwLkxBU1RfTkFNRV9MSVNULCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbSnNvblJwY0hlbHAoIlJldHVybnMgTGFzdCBOYW1lIExpc3QgYXMgYW4gYXJyYXkuIildDQorICAgICAgICBwdWJsaWMgc3RyaW5nW10gbGFzdF9uYW1lX2xpc3QoKQ0KKyAgICAgICAgeyAgICAgICAgICAgIA0KKyAgICAgICAgICAgIFJlcXVlc3RDb250ZXh0IGNvbnRleHQgPSBFeGVjdXRlKEFwcC5MQVNUX05BTUVfTElTVCk7DQorICAgICAgICAgICAgS2V5VmFsdWVMaXN0IGxpc3QgPSBjb250ZXh0Lk91dGNvbWUgYXMgS2V5VmFsdWVMaXN0Ow0KKyAgICAgICAgICAgIEFycmF5TGlzdCBuYW1lcyA9IG5ldyBBcnJheUxpc3QobGlzdC5Db3VudCk7DQorICAgICAgICAgICAgZm9yZWFjaCAoS2V5VmFsdWUgayBpbiBsaXN0KQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgbmFtZXMuQWRkKGsuVmFsdWUpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICByZXR1cm4gKHN0cmluZ1tdKSBuYW1lcy5Ub0FycmF5KHR5cGVvZiAoU3RyaW5nKSk7DQorICAgICAgICB9DQorDQorICAgICAgICBbSnNvblJwY01ldGhvZChBcHAuRU5UUllfTElTVCwgSWRlbXBvdGVudCA9IHRydWUpXQ0KKyAgICAgICAgW0pzb25ScGNIZWxwKCJSZXR1cm5zIHRoZSBjb21wbGV0ZSBkaXJlY3RvcnkgYXMgYW4gYXJyYXkgb2YgZm9ybWF0dGVkIElEaWN0aW9uYXJ5IG9iamVjdHMuIildDQorICAgICAgICBwdWJsaWMgQXBwRW50cnlMaXN0IGVudHJ5X2xpc3QoKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIElWaWV3SGVscGVyIGhlbHBlciA9IEdldENhdGFsb2coKS5HZXRIZWxwZXJGb3IoQXBwLkVOVFJZX0xJU1QpOw0KKyAgICAgICAgICAgIGhlbHBlci5FeGVjdXRlKCk7DQorICAgICAgICAgICAgLy8gaWYgaGVscGVyLklzTm9taW5hbCAuLi4gDQorICAgICAgICAgICAgQXBwRW50cnlMaXN0IGxpc3QgPSBoZWxwZXIuT3V0Y29tZSBhcyBBcHBFbnRyeUxpc3Q7DQorICAgICAgICAgICAgcmV0dXJuIGxpc3Q7DQorICAgICAgICB9DQorDQorICAgICAgICBbSnNvblJwY01ldGhvZChBcHAuRU5UUlksIElkZW1wb3RlbnQgPSB0cnVlKV0NCisgICAgICAgIFtKc29uUnBjSGVscCgiUmV0dXJucyBhbiBlbnRyeSBieSBrZXkuIildDQorICAgICAgICBwdWJsaWMgQXBwRW50cnkgZW50cnkoc3RyaW5nIGtleSkNCisgICAgICAgIHsNCisgICAgICAgICAgICBJVmlld0hlbHBlciBoZWxwZXIgPSBHZXRDYXRhbG9nKCkuR2V0SGVscGVyRm9yKEFwcC5FTlRSWSk7DQorICAgICAgICAgICAgaGVscGVyLkNyaXRlcmlhW0FwcC5FTlRSWV9LRVldID0ga2V5Ow0KKyAgICAgICAgICAgIGhlbHBlci5FeGVjdXRlKCk7DQorICAgICAgICAgICAgLy8gaWYgaGVscGVyLklzTm9taW5hbCAuLi4gDQorICAgICAgICAgICAgQXBwRW50cnkgZW50cnkgPSBuZXcgQXBwRW50cnkoaGVscGVyLkNyaXRlcmlhKTsNCisgICAgICAgICAgICByZXR1cm4gZW50cnk7DQorICAgICAgICB9DQorDQorICAgICAgICBbSnNvblJwY01ldGhvZChBcHAuRU5UUllfU0FWRSwgSWRlbXBvdGVudCA9IHRydWUpXQ0KKyAgICAgICAgW0pzb25ScGNIZWxwKCJTYXZlcyB0aGUgZW50cnksIGluc2VydCBvciB1cGRhdGluZyBhcyBhcHByb3ByaWF0ZS4iKV0NCisgICAgICAgIHB1YmxpYyBBcHBFbnRyeSBlbnRyeV9zYXZlKElEaWN0aW9uYXJ5IGlucHV0KQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIElWaWV3SGVscGVyIGhlbHBlciA9IEdldENhdGFsb2coKS5HZXRIZWxwZXJGb3IoQXBwLkVOVFJZX1NBVkUpOw0KKyAgICAgICAgICAgIGhlbHBlci5SZWFkKGlucHV0LHRydWUpOw0KKyAgICAgICAgICAgIGhlbHBlci5FeGVjdXRlKCk7DQorICAgICAgICAgICAgLy8gaWYgaGVscGVyLklzTm9taW5hbCAuLi4gDQorICAgICAgICAgICAgQXBwRW50cnkgZW50cnkgPSBuZXcgQXBwRW50cnkoaGVscGVyLkNyaXRlcmlhKTsNCisgICAgICAgICAgICByZXR1cm4gZW50cnk7DQorICAgICAgICB9DQorDQorICAgICAgICBbSnNvblJwY01ldGhvZChBcHAuRU5UUllfREVMRVRFLCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbSnNvblJwY0hlbHAoIkRlbGV0ZXMgYW4gZW50cnkgYnkga2V5LiIpXQ0KKyAgICAgICAgcHVibGljIEFwcEVudHJ5IGVudHJ5X2RlbGV0ZShzdHJpbmcga2V5KQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIElWaWV3SGVscGVyIGhlbHBlciA9IEdldENhdGFsb2coKS5HZXRIZWxwZXJGb3IoQXBwLkVOVFJZX0RFTEVURSk7DQorICAgICAgICAgICAgaGVscGVyLkNyaXRlcmlhW0FwcC5FTlRSWV9LRVldID0ga2V5Ow0KKyAgICAgICAgICAgIGhlbHBlci5FeGVjdXRlKCk7DQorICAgICAgICAgICAgLy8gaWYgaGVscGVyLklzTm9taW5hbCAuLi4gDQorICAgICAgICAgICAgQXBwRW50cnkgZW50cnkgPSBuZXcgQXBwRW50cnkoaGVscGVyLkNyaXRlcmlhKTsNCisgICAgICAgICAgICByZXR1cm4gZW50cnk7DQorICAgICAgICB9DQorDQorICAgIA0KKyAgICB9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL1Bob25lQm9vay5odG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvUGhvbmVCb29rLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE2NzQxNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL1Bob25lQm9vay5odG1sCkBAIC0wLDAgKzEsMjkzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPg0KKzxodG1sPg0KKyAgICAgICAgPGhlYWQ+DQorICAgICAgICAgICAgICAgIDx0aXRsZT5QaG9uZUJvb2s8L3RpdGxlPg0KKyAgICAgICAgICAgICAgICA8bWV0YSBuYW1lPSJHRU5FUkFUT1IiIGNvbnRlbnQ9Ik1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIC5ORVQgNy4xIj4NCisgICAgICAgICAgICAgICAgPG1ldGEgbmFtZT1Qcm9nSWQgY29udGVudD1WaXN1YWxTdHVkaW8uSFRNTD4NCisgICAgICAgICAgICAgICAgPG1ldGEgbmFtZT1PcmlnaW5hdG9yIGNvbnRlbnQ9Ik1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIC5ORVQgNy4xIj4NCisgICAgICAgICAgICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSJQaG9uZUJvb2suYXNoeD9wcm94eSZ2PTIiPjwvc2NyaXB0PiAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSJqcy9kb2pvL2Rvam8uanMiPjwvc2NyaXB0Pg0KKyAgICAgICAgICAgICAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0Ij4NCisgICAgICAgICAgICAgICAgICAgIGRvam8ucmVxdWlyZSgiZG9qby5pby4qIik7DQorICAgICAgICAgICAgICAgICAgICBkb2pvLnJlcXVpcmUoImRvam8uZXZlbnQuKiIpOw0KKyAgICAgICAgICAgICAgICAgICAgZG9qby5yZXF1aXJlKCJkb2pvLmh0bWwuKiIpOw0KKyAgICAgICAgICAgICAgICAgICAgZG9qby5yZXF1aXJlKCJkb2pvLmpzb24iKTsNCisgICAgICAgICAgICAJCWRvam8ucmVxdWlyZSgiZG9qby53aWRnZXQuRmlsdGVyaW5nVGFibGUiKTsNCisgICAgICAgICAgICAJCWRvam8uaG9zdGVudi53cml0ZUluY2x1ZGVzKCk7DQorICAgICAgICAgICAgCQkNCisgICAgICAgICAgICAJCS8qIGNhbGwgc2VydmVyICovDQorICAgICAgICAgICAgCQkNCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHNlcnZlcihjYWxsKQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciBiaW5kQXJncyA9IHsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBjYWxsLnVybCsnP3JwYycsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbih0eXBlLCBkYXRhLCBldnQpe2FsZXJ0KCJFcnJvciBDb21tdW5pY2F0aW5nIHdpdGggU2VydmVyOiAiICsgZGF0YS5yZXN1bHQpO30sDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogIlBPU1QiLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW1ldHlwZTogInRleHQvanNvbiIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZTogY2FsbC5jYWxsYmFjaywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zdENvbnRlbnQ6IGRvam8uanNvbi5zZXJpYWxpemUoY2FsbC5yZXF1ZXN0KQ0KKyAgICAgICAgICAgICAgICAgICAgICAgIH07DQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlcSA9IGRvam8uaW8uYmluZChiaW5kQXJncyk7DQorICAgICAgICAgICAgICAgICAgICAgICAgZG9qby5ldmVudA0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXE7DQorICAgICAgICAgICAgICAgICAgICB9DQorDQorICAgICAgICAgICAgICAgICAgICAvKiBsaXN0ZXIgKi8NCisgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZW50cnlfbGlzdF9yZXN1bHQodHlwZSwgZGF0YSwgZXZ0KQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgCXZhciB3ID0gZG9qby53aWRnZXQuYnlJZCgiZW50cnlfbGlzdCIpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIHcuc3RvcmUuc2V0RGF0YShkYXRhLnJlc3VsdCk7DQorICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVudHJ5X2xpc3QoKQ0KKyAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgUGhvbmVCb29rLnJwYy5lbnRyeV9saXN0KGVudHJ5X2xpc3RfcmVzdWx0KS5jYWxsKHNlcnZlcik7DQorICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICBkb2pvLmFkZE9uTG9hZChlbnRyeV9saXN0KTsNCisgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZW50cnlfbGlzdF9zZWxlY3RfZWRpdChldnQpIHsgICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRhYmxlID0gZG9qby53aWRnZXQuYnlJZCgiZW50cnlfbGlzdCIpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5X2VkaXQodGFibGUuZ2V0U2VsZWN0ZWREYXRhKCkuZW50cnlfa2V5KTsNCisgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBlbnRyeV9saXN0X3NlbGVjdF9kZWxldGUoZXZ0KSB7ICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0YWJsZSA9IGRvam8ud2lkZ2V0LmJ5SWQoImVudHJ5X2xpc3QiKTsNCisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeV9kZWxldGUodGFibGUuZ2V0U2VsZWN0ZWREYXRhKCkuZW50cnlfa2V5KTsNCisgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgDQorDQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBlbnRyeV9saXN0X3NlbGVjdCgpIHsNCisgICAgICAgICAgICAgICAgICAgICAgICBkb2pvLmV2ZW50LmNvbm5lY3QoZG9qby5ieUlkKCJlbnRyeV9saXN0IiksICJvblNlbGVjdCIsCWVudHJ5X2xpc3Rfc2VsZWN0X2VkaXQpOw0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgZG9qby5hZGRPbkxvYWQoZW50cnlfbGlzdF9zZWxlY3QpOw0KKyAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAvKiBsaXN0ZXIgZmlsdGVycyAqLw0KKyAgICAgICAgICAgICAgICAgICAgDQorICAgIAkJICAgICAgICBmdW5jdGlvbiBkYXRlRmlsdGVyKGhpcmVkKSB7DQorCQkJICAgICAgICAgICAgcmV0dXJuIChoaXJlZCA9PSAnNS8yOS8xOTg3JyB8fCBoaXJlZCA9PSAnMTEvMTgvMTk4NCcpOw0KKwkJICAgICAgICAgICAgfQ0KKwkJICAgICAgICAgICAgZnVuY3Rpb24gYXBwbHlEYXRlKGlkKXsNCisJCQkgICAgICAgICAgICBkb2pvLndpZGdldC5ieUlkKGlkKS5zZXRGaWx0ZXIoImhpcmVkIiwgZGF0ZUZpbHRlcik7DQorCQkgICAgICAgICAgICB9DQorCQkJCQ0KKwkJICAgICAgICAgICAgZnVuY3Rpb24gbmFtZUZpbHRlcihsYXN0X25hbWUpew0KKwkJCSAgICAgICAgICAgIHJldHVybiAobGFzdF9uYW1lLmNoYXJBdCgwKSA+PSAnTScgJiYgbGFzdF9uYW1lLmNoYXJBdCgwKSA8PSAnWicpOw0KKwkJICAgICAgICAgICAgfQ0KKwkJICAgICAgICAgICAgZnVuY3Rpb24gYXBwbHlOYW1lKGlkKXsNCisJCQkgICAgICAgICAgICBkb2pvLndpZGdldC5ieUlkKGlkKS5zZXRGaWx0ZXIoImxhc3RfbmFtZSIsIG5hbWVGaWx0ZXIpOw0KKwkgICAgICAgICAgICAJfQ0KKwkJDQorCQkgICAgICAgICAgICBmdW5jdGlvbiBjbGVhckZpbHRlcnMoaWQpew0KKwkJCSAgICAgICAgICAgIGRvam8ud2lkZ2V0LmJ5SWQoaWQpLmNsZWFyRmlsdGVycygpOw0KKwkJICAgICAgICAgICAgfQkJICAgICAgICAgICAgDQorCQkgICAgICAgICAgICBmdW5jdGlvbiByZWxvYWREYXRhKGlkKXsNCisJCQkgICAgICAgICAgICBkb2pvLndpZGdldC5ieUlkKGlkKS5zdG9yZS5jbGVhckRhdGEoKTsNCisJCQkgICAgICAgICAgICBlbnRyeV9saXN0KCk7DQorCQkJICAgICAgICB9DQorCQkJICAgICAgICAJCQkgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgLyogZWRpdG9yICovDQorDQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBzZXRIaXJlZChoaXJlZCkgeyAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRwSGlyZWQgPSBkb2pvLndpZGdldC5ieUlkKCJkcEhpcmVkIik7DQorICAgICAgICAgICAgICAgICAgICAJZHBIaXJlZC5zZXREYXRlKGhpcmVkKTsNCisgICAgICAgICAgICAgICAgICAgIH0NCisNCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVudHJ5X2VkaXRfcmVzdWx0KHR5cGUsIGRhdGEsIGV2dCkgDQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAJdmFyIHcgPSBkb2pvLndpZGdldC5ieUlkKCJlbnRyeV9mb3JtIik7ICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAJdy5zZXRWYWx1ZXMoZGF0YS5yZXN1bHQpOyAgIA0KKyAgICAgICAgICAgICAgICAgICAgCXZhciBwYXJ0ID0gbmV3IEFycmF5KCk7DQorICAgICAgICAgICAgICAgICAgICAJcGFydCA9IGRhdGEucmVzdWx0LmhpcmVkLnNwbGl0KCcvJywzKTsgLy8gbW0vZGQveXl5eQ0KKyAgICAgICAgICAgICAgICAgICAgCXZhciB5eXl5ID0gcGFydFsyXTsNCisgICAgICAgICAgICAgICAgICAgIAl2YXIgbW0gPSBwYXJ0WzBdOw0KKyAgICAgICAgICAgICAgICAgICAgCXZhciBkZCA9IHBhcnRbMV07DQorICAgICAgICAgICAgICAgICAgICAJaWYgKG1tLmxlbmd0aD09MSkgbW0gPSBuZXcgU3RyaW5nKCkuY29uY2F0KCcwJyxtbSk7DQorICAgICAgICAgICAgICAgICAgICAJaWYgKGRkLmxlbmd0aD09MSkgZGQgPSBuZXcgU3RyaW5nKCkuY29uY2F0KCcwJyxkZCk7DQorICAgICAgICAgICAgICAgICAgICAJdmFyIGhpcmVkID0gbmV3IFN0cmluZygpLmNvbmNhdCggeXl5eSwnLScsbW0sJy0nLGRkICk7DQorICAgICAgICAgICAgICAgICAgICAJc2V0SGlyZWQoaGlyZWQpOyANCisgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVudHJ5X2VkaXQoZW50cnlfa2V5KSANCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgICAgICBQaG9uZUJvb2sucnBjLmVudHJ5KGVudHJ5X2tleSxlbnRyeV9lZGl0X3Jlc3VsdCkuY2FsbChzZXJ2ZXIpOw0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZW50cnlfc2F2ZV9yZXN1bHQoKSB7DQorICAgICAgICAgICAgICAgICAgICAJcmVsb2FkRGF0YSgnZW50cnlfbGlzdCcpOw0KKyAgICAgICAgICAgICAgICAgICAgCWVudHJ5X3Jlc2V0KCk7DQorICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVudHJ5X3NhdmVfdXBkYXRlX3Jlc3VsdCh0eXBlLCBkYXRhLCBldnQpDQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAJYWxlcnQgKCAiRWRpdGVkOiAiICsgZGF0YS5yZXN1bHQudXNlcl9uYW1lICsgIiAoIiArIGRhdGEucmVzdWx0LmVudHJ5X2tleSArICIpIiApOw0KKyAgICAgICAgICAgICAgICAgICAgCWVudHJ5X3NhdmVfcmVzdWx0KCk7DQorICAgICAgICAgICAgICAgICAgICB9ICAgIA0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZW50cnlfc2F2ZV9pbnNlcnRfcmVzdWx0KHR5cGUsIGRhdGEsIGV2dCkNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgIAlhbGVydCAoICJBZGRlZDogIiArIGRhdGEucmVzdWx0LnVzZXJfbmFtZSArICIgKCIgKyBkYXRhLnJlc3VsdC5lbnRyeV9rZXkgKyAiKSIgKTsNCisgICAgICAgICAgICAgICAgICAgIAllbnRyeV9zYXZlX3Jlc3VsdCgpOw0KKyAgICAgICAgICAgICAgICAgICAgfSAgICANCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVudHJ5X3NhdmUoKQ0KKyAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAJdmFyIHcgPSBkb2pvLndpZGdldC5ieUlkKCJlbnRyeV9mb3JtIik7ICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAJdmFyIHZhbHVlcyA9IHcuZ2V0VmFsdWVzKCk7ICAgICAgICANCisgICAgICAgICAgICAgICAgICAgIAlpZiAodmFsdWVzLmVudHJ5X2tleSkgICAJDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBob25lQm9vay5ycGMuZW50cnlfc2F2ZSh2YWx1ZXMsZW50cnlfc2F2ZV91cGRhdGVfcmVzdWx0KS5jYWxsKHNlcnZlcik7DQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBob25lQm9vay5ycGMuZW50cnlfc2F2ZSh2YWx1ZXMsZW50cnlfc2F2ZV9pbnNlcnRfcmVzdWx0KS5jYWxsKHNlcnZlcik7DQorICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZW50cnlfcmVzZXQoKSB7DQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHcgPSBkb2pvLndpZGdldC5ieUlkKCJlbnRyeV9mb3JtIik7DQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IHcuZ2V0VmFsdWVzKCk7IA0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5maXJzdF9uYW1lID0gIiI7DQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmxhc3RfbmFtZSA9ICIiOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5leHRlbnNpb24gPSAiIjsNCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMudXNlcl9uYW1lID0gIiI7DQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmhvdXJzID0gIjM3LjUiOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5lbnRyeV9rZXkgPSAiIjsNCisgICAgICAgICAgICAgICAgICAgICAgICB3LnNldFZhbHVlcyh2YWx1ZXMpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0b2RheSA9IG5ldyBEYXRlKCk7DQorICAgICAgICAgICAgICAgICAgICAgICAgc2V0SGlyZWQodG9kYXkpOw0KKyAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVudHJ5X2FkZCgpIA0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5X3Jlc2V0KCk7DQorICAgICAgICAgICAgICAgICAgICB9DQorDQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBlbnRyeV9kZWxldGVfcmVzdWx0KHR5cGUsIGRhdGEsIGV2dCkNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgIAlhbGVydCAoICJEZWxldGVkOiAoIiArIGRhdGEucmVzdWx0LmVudHJ5X2tleSArICIpIiApOw0KKyAgICAgICAgICAgICAgICAgICAgCWVudHJ5X3NhdmVfcmVzdWx0KCk7DQorICAgICAgICAgICAgICAgICAgICB9ICAgIA0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZW50cnlfZGVsZXRlKGVudHJ5X2tleSkgDQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAJaWYgKGVudHJ5X2tleSkgeyAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maXJtICggIkRlbGV0ZSBlbnRyeT8iICk7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBob25lQm9vay5ycGMuZW50cnlfZGVsZXRlKGVudHJ5X2tleSxlbnRyeV9kZWxldGVfcmVzdWx0KS5jYWxsKHNlcnZlcik7DQorICAgICAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAgICAgICA8L3NjcmlwdD4NCisgICAgICAgICAgICAgICAgDQorCSAgICAgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQorCQkgICAgICAgIC8qKioNCisJCQkgICAgICAgIFRoZSBmb2xsb3dpbmcgaXMganVzdCBhbiBleGFtcGxlIG9mIGhvdyB0byB1c2UgdGhlIHRhYmxlLg0KKwkJCSAgICAgICAgWW91IGNhbiBvdmVycmlkZSBhbnkgY2xhc3MgbmFtZXMgdG8gYmUgdXNlZCBpZiB5b3Ugd2lzaC4NCisJCSAgICAgICAgKioqLw0KKwkJICAgICAgICB0YWJsZSB7DQorCQkJICAgICAgICBmb250LWZhbWlseTpMdWNpZGEgR3JhbmRlLCBWZXJkYW5hOw0KKwkJCSAgICAgICAgZm9udC1zaXplOjAuOGVtOw0KKwkJCSAgICAgICAgd2lkdGg6MTAwJTsNCisJCQkgICAgICAgIGJvcmRlcjoxcHggc29saWQgI2NjYzsNCisJCQkgICAgICAgIGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsNCisJCQkgICAgICAgIGN1cnNvcjpkZWZhdWx0Ow0KKwkJICAgICAgICB9DQorCQkgICAgICAgIHRhYmxlIHRkLA0KKwkJICAgICAgICB0YWJsZSB0aHsNCisJCQkgICAgICAgIHBhZGRpbmc6MnB4Ow0KKwkJCSAgICAgICAgZm9udC13ZWlnaHQ6bm9ybWFsOw0KKwkJICAgICAgICB9DQorCQkgICAgICAgIHRhYmxlIHRoZWFkIHRkLCB0YWJsZSB0aGVhZCB0aCB7DQorCQkJICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOnVybChpbWFnZXMvZnQtaGVhZC5naWYpOw0KKwkJCSAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0Ow0KKwkJCSAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjp0b3AgcmlnaHQ7DQorCQkgICAgICAgIH0NCisJCSAgICAgICAgdGFibGUgdGhlYWQgdGQuc2VsZWN0ZWRVcCwgdGFibGUgdGhlYWQgdGguc2VsZWN0ZWRVcCB7DQorCQkJICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOnVybChpbWFnZXMvZnQtaGVhZHVwLmdpZik7DQorCQkgICAgICAgIH0NCisJCSAgICAgICAgdGFibGUgdGhlYWQgdGQuc2VsZWN0ZWREb3duLCB0YWJsZSB0aGVhZCB0aC5zZWxlY3RlZERvd24gew0KKwkJCSAgICAgICAgYmFja2dyb3VuZC1pbWFnZTp1cmwoaW1hZ2VzL2Z0LWhlYWRkb3duLmdpZik7DQorCQkgICAgICAgIH0NCisJCQkNCisJCSAgICAgICAgdGFibGUgdGJvZHkgdHIgdGR7DQorCQkJICAgICAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkOw0KKwkJICAgICAgICB9DQorCQkgICAgICAgIHRhYmxlIHRib2R5IHRyLmFsdCB0ZHsNCisJCQkgICAgICAgIGJhY2tncm91bmQ6ICNlM2VkZmE7DQorCQkgICAgICAgIH0NCisJCSAgICAgICAgdGFibGUgdGJvZHkgdHIuc2VsZWN0ZWQgdGR7DQorCQkJICAgICAgIGJhY2tncm91bmQ6IHllbGxvdzsNCisJCSAgICAgICAgfQ0KKwkJICAgICAgICB0YWJsZSB0Ym9keSB0cjpob3ZlciB0ZHsNCisJCQkgICAgICAgIGJhY2tncm91bmQ6ICNhNmMyZTc7DQorCQkgICAgICAgIH0NCisJCSAgICAgICAgdGFibGUgdGJvZHkgdHIuc2VsZWN0ZWQ6aG92ZXIgdGR7DQorCQkJICAgICAgICBiYWNrZ3JvdW5kOiNmZjk7DQorCQkgICAgICAgIH0NCisNCisJCSAgICAgICAgI2lucHV0QXJlYXsNCisJCQkgICAgICAgIG1hcmdpbjoxZW0gMDsNCisJCQkgICAgICAgIHBhZGRpbmc6MWVtOw0KKwkJCSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjojZWVmOw0KKwkJICAgICAgICB9DQorCQkgICAgICAgICN1cGRhdGVUZXN0SW5wdXR7DQorCQkJICAgICAgICBib3JkZXI6MXB4IHNvbGlkICNjY2M7DQorCQkJICAgICAgICB3aWR0aDoxMDAlOw0KKwkJCSAgICAgICAgaGVpZ2h0OjgwcHg7DQorCQkJICAgICAgICBmb250LWZhbWlseTpzZXJpZjsNCisJCQkgICAgICAgIGZvbnQtc2l6ZTowLjllbTsNCisJCQkgICAgICAgIG92ZXJmbG93OmF1dG87DQorCQkgICAgICAgIH0NCisgICAgCTwvc3R5bGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICA8L2hlYWQ+DQorICAgIDxib2R5PiAgIA0KKyAgICANCisgICAgICAgIDxkaXYgaWQ9ImZpbmRlciIgLz4NCisgICAgICAgIA0KKyAgICAgICAgPGRpdiBpZD0ibGlzdGVyIj4NCisgICAgICAgIA0KKyAgICAgICAgPHRhYmxlIGlkPSJmaWx0ZXJfbWVudSI+PHRyPjx0ZD4NCisgICAgICAgCSAgICA8aW5wdXQgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJhcHBseURhdGUoJ2VudHJ5X2xpc3QnKTsiIHZhbHVlPSJTaG93IG9ubHkgaGlyZXMgYmV0d2VlbiAxLzEvMTk4NCBhbmQgMS8xLzE5ODciIElEPSJCdXR0b24xIiBOQU1FPSJCdXR0b24xIi8+IA0KKyAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIG9uY2xpY2s9ImFwcGx5TmFtZSgnZW50cnlfbGlzdCcpOyIgdmFsdWU9IlNob3cgb25seSBuYW1lcyBiZXR3ZWVuIE0gYW5kIFoiIElEPSJCdXR0b24yIiBOQU1FPSJCdXR0b24yIi8+IA0KKyAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJTaG93IEFsbCBFbnRyaWVzIiBvbmNsaWNrPSJjbGVhckZpbHRlcnMoJ2VudHJ5X2xpc3QnKTsiIElEPSJCdXR0b24zIiBOQU1FPSJCdXR0b24zIi8+DQorICAgCQkgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlJlbG9hZCBFbnRyaWVzIiBvbmNsaWNrPSJyZWxvYWREYXRhKCdlbnRyeV9saXN0Jyk7IiBJRD0iQnV0dG9uNCIgTkFNRT0iQnV0dG9uNCIvPiAgICAgICAgDQorICAgICAgICA8L3RkPjwvdHI+PC90YWJsZT4NCisgICAgICAgIA0KKwkgICAgPHRhYmxlIGlkPSJlbnRyeV9saXN0IiANCisgICAgICAgICAgICBkb2pvVHlwZT0iZmlsdGVyaW5nVGFibGUiIGFsdGVybmF0ZVJvd3M9InRydWUiIHZhbHVlRmllbGQ9InVzZXJfbmFtZSIgPg0KKwkgICAgICAgIDx0aGVhZD4NCisJCSAgICA8dHI+DQorCQkJICAgIDx0aCBmaWVsZD0ibGFzdF9uYW1lIiBzb3J0PSJhc2MiPkxhc3QgTmFtZTwvdGg+DQorCQkJICAgIDx0aCBmaWVsZD0iZmlyc3RfbmFtZSI+Rmlyc3QgTmFtZTwvdGg+DQorCQkJICAgIDx0aCBmaWVsZD0iZXh0ZW5zaW9uIj5FeHRlbnNpb248L3RoPg0KKwkJCSAgICA8dGggZmllbGQ9InVzZXJfbmFtZSI+VXNlcjwvdGg+DQorCQkJICAgIDx0aCBmaWVsZD0iaGlyZWQiIGFsaWduPSJjZW50ZXIiPkhpcmVkPC90aD4NCisJCQkgICAgPHRoIGZpZWxkPSJob3VycyIgYWxpZ249ImNlbnRlciI+SG91cnM8L3RoPg0KKwkJICAgIDwvdHI+DQorCSAgICAgICAgPC90aGVhZD4NCisJICAgIDwvdGFibGU+DQorICAgICAgICANCisgICAgICAgIDx0YWJsZSBpZD0iZWRpdF9tZW51Ij48dHI+PHRkPg0KKyAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJFZGl0IEVudHJ5IiBvbmNsaWNrPSJlbnRyeV9saXN0X3NlbGVjdF9lZGl0KCdlbnRyeV9saXN0Jyk7IiBJRD0iQnV0dG9uNSIgTkFNRT0iQnV0dG9uNSIvPg0KKyAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJBZGQgRW50cnkiIG9uY2xpY2s9ImVudHJ5X2FkZCgnZW50cnlfbGlzdCcpOyIgSUQ9IkJ1dHRvbjYiIE5BTUU9IkJ1dHRvbjYiLz4NCisgICAgICAgICAgICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iRGVsZXRlIEVudHJ5IiBvbmNsaWNrPSJlbnRyeV9saXN0X3NlbGVjdF9kZWxldGUoJ2VudHJ5X2xpc3QnKTsiIElEPSJCdXR0b243IiBOQU1FPSJCdXR0b243Ii8+DQorICAgICAgICA8L3RkPjwvdHI+PC90YWJsZT4NCisgICAgICAgIA0KKyAgICAgICAJPC9kaXY+IA0KKyAgICAgICAJDQorICAgICAgIAk8ZGl2IGlkPSJ2aWV3ZXIiIC8+DQorICAgICAgIAkNCisgICAgICAgIDxkaXYgaWQ9ImVkaXRvciI+DQorICAgICAgICANCisgICAgICAgIDxmb3JtIGlkPSJlbnRyeV9mb3JtIiBkb2pvVHlwZT0iRm9ybSI+DQorICAgICAgICAgICAgPHRhYmxlIElEPSJUYWJsZTEiPjx0cj4NCisgICAgICAgICAgICAgICAgICAgIDx0ZD5GaXJzdCBOYW1lPC90ZD48dGQ+PGlucHV0IG5hbWU9ImZpcnN0X25hbWUiIElEPSJUZXh0MSIvPjwvdGQ+DQorICAgICAgICAgICAgICAgIDwvdHI+PHRyPg0KKyAgICAgICAgICAgICAgICAgICAgPHRkPkxhc3QgTmFtZTwvdGQ+PHRkPjxpbnB1dCBuYW1lPSJsYXN0X25hbWUiIElEPSJUZXh0MiIvPjwvdGQ+DQorICAgICAgICAgICAgICAgIDwvdHI+PHRyPg0KKyAgICAgICAgICAgICAgICAgICAgPHRkPkV4dGVuc2lvbjwvdGQ+PHRkPjxpbnB1dCBuYW1lPSJleHRlbnNpb24iIElEPSJUZXh0MyIvPjwvdGQ+DQorICAgICAgICAgICAgICAgIDwvdHI+PHRyPg0KKyAgICAgICAgICAgICAgICAgICAgPHRkPlVzZXIgTmFtZTwvdGQ+PHRkPjxpbnB1dCBuYW1lPSJ1c2VyX25hbWUiIElEPSJUZXh0NCIvPjwvdGQ+DQorICAgICAgICAgICAgICAgIDwvdHI+PHRyPg0KKyAgICAgICAgICAgICAgICAgICAgPHRkPkhpcmVkPC90ZD48dGQ+PGlucHV0IG5hbWU9ImhpcmVkIiB3aWRnZXRpZD0iZHBIaXJlZCIgZG9qb1R5cGU9ImRyb3Bkb3duZGF0ZXBpY2tlciIgZGlzcGxheUZvcm1hdD0iTU0vZGQveXl5eSIgSUQ9IlRleHQ1Ii8+PC90ZD4NCisgICAgICAgICAgICAgICAgPC90cj48dHI+DQorICAgICAgICAgICAgICAgICAgICA8dGQ+SG91cnM8L3RkPjx0ZD48aW5wdXQgbmFtZT0iaG91cnMiIElEPSJUZXh0NiIvPjwvdGQ+DQorICAgICAgICAgICAgICAgIDwvdHI+PHRyPg0KKyAgICAgICAgICAgICAgICAgICAgPHRkIHJvd3NwYW49IjIiPjxpbnB1dCB0eXBlPSJidXR0b24iIG9uQ2xpY2s9ImVudHJ5X3NhdmUoKTsiIHZhbHVlPSJTQVZFIiBJRD0iQnV0dG9uOCIgTkFNRT0iQnV0dG9uOCIvPg0KKyAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZWRpdG9yIiB2YWx1ZT0iMSIgSUQ9ImVkaXRvciIvPg0KKyAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZW50cnlfa2V5IiBJRD0iZW50cnlfa2V5Ii8+DQorICAgICAgICAgICAgICAgIDwvdGQ+DQorICAgICAgICAgICAgPC90cj48L3RhYmxlPg0KKyAgICAgICAgPC9mb3JtPg0KKyAgICAgICAgPC9kaXY+DQorICAgICAgICANCisgICAgPC9ib2R5Pg0KKzwvaHRtbD4gDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvUmVzb3VyY2VzL0FwcEJhc2UueG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvUmVzb3VyY2VzL0FwcEJhc2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2MGM0NDEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9SZXNvdXJjZXMvQXBwQmFzZS54bWwKQEAgLTAsMCArMSwzOCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+IA0KKzxvYmplY3RzIHhtbG5zPSJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQiIA0KKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiANCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQgaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0L3hzZC9zcHJpbmctb2JqZWN0cy54c2QiPg0KKw0KKyA8IS0tIEJhc2UgZWxlbWVudCAoc3VwZXIgcGFyZW50KS0tPg0KKyANCisgPG9iamVjdCBpZD0iQmFzZU1hcHBlciIgYWJzdHJhY3Q9InRydWUiPg0KKyAgICAgPHByb3BlcnR5IG5hbWU9Ik1hcHBlciI+PHJlZiBvYmplY3Q9Ik1hcHBlciIvPjwvcHJvcGVydHk+DQorIDwvb2JqZWN0Pg0KKyANCisgPCEtLSBCYXNlIGNsYXNzIHBhcmVudHMgLS0+IA0KKw0KKwk8b2JqZWN0IGlkPSJCYXNlQ2hhaW4iIHR5cGU9Ik5leHVzLkNvcmUuUmVxdWVzdENoYWluLCBOZXh1cy5Db3JlIi8+DQorCQ0KKwk8b2JqZWN0IGlkPSJCYXNlQ291bnQiIHR5cGU9IlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VDb3VudCwgUGhvbmVCb29rLkNvcmUiIHBhcmVudD0iQmFzZU1hcHBlciIvPg0KKw0KKwk8b2JqZWN0IGlkPSJCYXNlRGVsZXRlIiB0eXBlPSJQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlRGVsZXRlLCBQaG9uZUJvb2suQ29yZSIgcGFyZW50PSJCYXNlTWFwcGVyIi8+DQorCQ0KKwk8b2JqZWN0IGlkPSJCYXNlRW50cnkiIHR5cGU9IlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VFbnRyeSwgUGhvbmVCb29rLkNvcmUiIHBhcmVudD0iQmFzZU1hcHBlciIvPg0KKwkNCisJPG9iamVjdCBpZD0iQmFzZUZpbHRlckxpc3QiIHR5cGU9IlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VGaWx0ZXJMaXN0LCBQaG9uZUJvb2suQ29yZSIgcGFyZW50PSJCYXNlTWFwcGVyIi8+DQorCQ0KKwk8b2JqZWN0IGlkPSJCYXNlRmllbGRDb250ZXh0IiB0eXBlPSJOZXh1cy5FeHRyYXMuU3ByaW5nLkZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iTWVzc2FnZVNvdXJjZSI+DQorCQkJPHJlZiBvYmplY3Q9Im1lc3NhZ2VTb3VyY2UiIC8+DQorCQk8L3Byb3BlcnR5PgkJDQorCTwvb2JqZWN0Pg0KKwkNCisJPG9iamVjdCBpZD0iQmFzZUtleVZhbHVlUHJvY2Vzc29yIiB0eXBlPSJOZXh1cy5Db3JlLlZhbGlkYXRvcnMuS2V5VmFsdWVQcm9jZXNzb3IiLz4NCisNCisJPG9iamVjdCBpZD0iQmFzZUxpc3QiIHR5cGU9IlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VMaXN0LCBQaG9uZUJvb2suQ29yZSIgcGFyZW50PSJCYXNlTWFwcGVyIi8+DQorDQorCTxvYmplY3QgaWQ9IkJhc2VTYXZlIiB0eXBlPSJQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlU2F2ZSwgUGhvbmVCb29rLkNvcmUiIHBhcmVudD0iQmFzZU1hcHBlciIvPg0KKw0KKyAgICA8b2JqZWN0IGlkPSJFbnRyeUluaXRpYWwiIHR5cGU9IlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkVudHJ5SW5pdGlhbCwgUGhvbmVCb29rLkNvcmUiIHBhcmVudD0iQmFzZU1hcHBlciIvPg0KKw0KKzwvb2JqZWN0cz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9SZXNvdXJjZXMvQXBwQ29uZmlnLnhtbCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL1Jlc291cmNlcy9BcHBDb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzYmJjYmQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9SZXNvdXJjZXMvQXBwQ29uZmlnLnhtbApAQCAtMCwwICsxLDY2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4gDQorPG9iamVjdHMgeG1sbnM9Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCIgDQorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIA0KKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCBodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQveHNkL3NwcmluZy1vYmplY3RzLnhzZCI+DQorDQorIDwhLS0gTWVzc2FnZSBTb3VyY2UgLS0+DQorDQorCTxvYmplY3QgaWQ9Im1lc3NhZ2VTb3VyY2UiIHR5cGU9IlNwcmluZy5Db250ZXh0LlN1cHBvcnQuUmVzb3VyY2VTZXRNZXNzYWdlU291cmNlLCBTcHJpbmcuQ29yZSI+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iUmVzb3VyY2VNYW5hZ2VycyI+DQorICAgICAgICAgICAgPGxpc3Q+DQorICAgICAgICAgICAgICAgIDx2YWx1ZT5QaG9uZUJvb2suQ29yZS5NZXNzYWdlcywgUGhvbmVCb29rLkNvcmU8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgICA8dmFsdWU+TmV4dXMuV2ViLk1lc3NhZ2VzLCBOZXh1cy5XZWI8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvbGlzdD4NCisgICAgICAgIDwvcHJvcGVydHk+ICAgIA0KKyAgICA8L29iamVjdD4NCisNCisNCisgPCEtLSBSZXF1ZXN0IFByb2Nlc3NvcnMgLS0+DQorCQ0KKyAgPG9iamVjdCBpZD0iY29udmVydF9pbnB1dCIgdHlwZT0iTmV4dXMuQ29yZS5WYWxpZGF0b3JzLkNvbnZlcnRJbnB1dCI+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmNvbnZlcnRfaW5wdXQ8L3ZhbHVlPjwvcHJvcGVydHk+DQorICA8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9ImZvcm1hdF9vdXRwdXQiIHR5cGU9Ik5leHVzLkNvcmUuVmFsaWRhdG9ycy5Gb3JtYXRPdXRwdXQiPg0KKyAgICA8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5mb3JtYXRfb3V0cHV0PC92YWx1ZT48L3Byb3BlcnR5PiAgICANCisgIDwvb2JqZWN0Pg0KKyAgDQorICA8b2JqZWN0IGlkPSJjbGVhcl9jb250ZXh0IiB0eXBlPSJOZXh1cy5Db3JlLlZhbGlkYXRvcnMuQ2xlYXJDb250ZXh0Ij4NCisgICAgPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+Y2xlYXJfY29udGV4dDwvdmFsdWU+PC9wcm9wZXJ0eT4gICAgDQorICA8L29iamVjdD4NCisNCisgPCEtLSBwcmUtb3AgLS0+DQorDQorICA8b2JqZWN0IGlkPSJwcmUtb3AiIHBhcmVudD0iQmFzZUNoYWluIj4NCisJPHByb3BlcnR5IG5hbWU9IkFkZENvbW1hbmRzIj4NCisJCTxsaXN0Pg0KKwkJCTxyZWYgb2JqZWN0PSJjb252ZXJ0X2lucHV0Ii8+DQorCQk8L2xpc3Q+ICAgDQorICAgIDwvcHJvcGVydHk+ICAgICAgICAgICANCisgIDwvb2JqZWN0PiAgDQorICANCisgPCEtLSBwb3N0LW9wIC0tPg0KKw0KKyAgPG9iamVjdCBpZD0icG9zdC1vcCIgcGFyZW50PSJCYXNlQ2hhaW4iPg0KKwk8cHJvcGVydHkgbmFtZT0iQWRkQ29tbWFuZHMiPg0KKwkJPGxpc3Q+DQorCQkJPHJlZiBvYmplY3Q9ImZvcm1hdF9vdXRwdXQiLz4NCisJCTwvbGlzdD4gICANCisgICAgPC9wcm9wZXJ0eT4gICAgICAgICAgIA0KKyAgPC9vYmplY3Q+DQorICAgIAkJDQorIDwhLS0gQ2F0YWxvZyAtLT4NCisgDQorICA8b2JqZWN0IGlkPSJDYXRhbG9nIiB0eXBlPSJOZXh1cy5FeHRyYXMuU3ByaW5nLkNhdGFsb2ciPg0KKwkgIDxwcm9wZXJ0eSBuYW1lPSJGaWVsZFRhYmxlIj48cmVmIG9iamVjdD0iRmllbGRUYWJsZSIvPjwvcHJvcGVydHk+DQorCSAgPHByb3BlcnR5IG5hbWU9IlByZU9wIj48cmVmIG9iamVjdD0icHJlLW9wIi8+PC9wcm9wZXJ0eT4NCisJICA8cHJvcGVydHkgbmFtZT0iUG9zdE9wIj48cmVmIG9iamVjdD0icG9zdC1vcCIvPjwvcHJvcGVydHk+DQorCSAgPHByb3BlcnR5IG5hbWU9IlZpZXdIZWxwZXIiPjxvYmplY3QgdHlwZT0iTmV4dXMuV2ViLldlYkhlbHBlciwgTmV4dXMuV2ViIiBzaW5nbGV0b249ImZhbHNlIi8+PC9wcm9wZXJ0eT4NCisgPC9vYmplY3Q+DQorIA0KKzwhLS0gaUJBVElTIE1hcHBlciAtLT4NCisgIA0KKyAgPG9iamVjdCBpZD0iTWFwcGVyIiB0eXBlPSJJQmF0aXNOZXQuRGF0YU1hcHBlci5NYXBwZXIsIElCYXRpc05ldC5EYXRhTWFwcGVyIiANCisJCWZhY3RvcnktbWV0aG9kPSJJbnN0YW5jZSIvPiANCisgICAgICANCis8L29iamVjdHM+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvUmVzb3VyY2VzL0FwcEZpZWxkcy54bWwgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9SZXNvdXJjZXMvQXBwRmllbGRzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDNmYzJiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvUmVzb3VyY2VzL0FwcEZpZWxkcy54bWwKQEAgLTAsMCArMSwxMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/PiANCis8b2JqZWN0cyB4bWxucz0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0IiANCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgDQorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0IGh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldC94c2Qvc3ByaW5nLW9iamVjdHMueHNkIj4NCisNCisJIDwhLS0gRmllbGRUYWJsZSAtLT4NCisNCisJPG9iamVjdCBpZD0iRmllbGRUYWJsZSIgdHlwZT0iTmV4dXMuQ29yZS5UYWJsZXMuRmllbGRUYWJsZSI+DQorCQk8cHJvcGVydHkgbmFtZT0iQWRkRmllbGRDb250ZXh0cyI+DQorCQkJPGxpc3Q+DQorCQkJCTxyZWYgb2JqZWN0PSJsYXN0X25hbWUiLz4gDQorCQkJCTxyZWYgb2JqZWN0PSJmaXJzdF9uYW1lIi8+IA0KKwkJCQk8cmVmIG9iamVjdD0iZXh0ZW5zaW9uIi8+IA0KKwkJCQk8cmVmIG9iamVjdD0idXNlcl9uYW1lIi8+IA0KKwkJCQk8cmVmIG9iamVjdD0iaGlyZWQiLz4gDQorCQkJCTxyZWYgb2JqZWN0PSJob3VycyIvPiAJCQkJDQorCQkJCTxyZWYgb2JqZWN0PSJfZW50cnlfbGlzdCIvPiANCisJCQkJPHJlZiBvYmplY3Q9Il9lbnRyeV9saXN0X2NvdW50Ii8+IA0KKwkJCQk8cmVmIG9iamVjdD0iX2V4dGVuc2lvbl9saXN0Ii8+DQorCQkJCTxyZWYgb2JqZWN0PSJfaGlyZWRfbGlzdCIvPg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iQWRkUHJvY2Vzc29ycyI+DQorCQkJPGxpc3Q+DQorCQkJCTxyZWYgb2JqZWN0PSJEYXRlVGltZVByb2Nlc3NvciIvPiANCisJCQkJPHJlZiBvYmplY3Q9IlRlbGVwaG9uZVByb2Nlc3NvciIvPiANCisJCQkJPHJlZiBvYmplY3Q9IkVudHJ5TGlzdFByb2Nlc3NvciIvPiANCisJCQkJPHJlZiBvYmplY3Q9IkV4dGVuc2lvbkxpc3RQcm9jZXNzb3IiLz4NCisJCQkJPHJlZiBvYmplY3Q9IkhpcmVkTGlzdFByb2Nlc3NvciIvPg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKw0KKwk8b2JqZWN0IGlkPSJsYXN0X25hbWUiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5sYXN0X25hbWU8L3ZhbHVlPjwvcHJvcGVydHk+CQ0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0iZmlyc3RfbmFtZSIgcGFyZW50PSJCYXNlRmllbGRDb250ZXh0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmZpcnN0X25hbWU8L3ZhbHVlPjwvcHJvcGVydHk+CQ0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0idXNlcl9uYW1lIiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+dXNlcl9uYW1lPC92YWx1ZT48L3Byb3BlcnR5PgkNCisJPC9vYmplY3Q+DQorCQ0KKwk8b2JqZWN0IGlkPSJleHRlbnNpb24iIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5leHRlbnNpb248L3ZhbHVlPjwvcHJvcGVydHk+CQkNCisJCTxwcm9wZXJ0eSBuYW1lPSJQcm9jZXNzb3IiPjxyZWYgb2JqZWN0PSJUZWxlcGhvbmVQcm9jZXNzb3IiLz48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0iaGlyZWQiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5oaXJlZDwvdmFsdWU+PC9wcm9wZXJ0eT4JDQorCQk8cHJvcGVydHkgbmFtZT0iUHJvY2Vzc29yIj48cmVmIG9iamVjdD0iRGF0ZVRpbWVQcm9jZXNzb3IiLz48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisJDQorCTxvYmplY3QgaWQ9ImhvdXJzIiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+aG91cnM8L3ZhbHVlPjwvcHJvcGVydHk+CQ0KKwk8L29iamVjdD4NCisJDQorCTxvYmplY3QgaWQ9ImVkaXRvciIgcGFyZW50PSJCYXNlRmllbGRDb250ZXh0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmVkaXRvcjwvdmFsdWU+PC9wcm9wZXJ0eT4JDQorCTwvb2JqZWN0Pg0KKw0KKwk8IS0tIHByb3BlcnR5IG5hbWU9IkNvbnRyb2xUeXBlTmFtZSI+PHZhbHVlPkNoZWNrQm94PC92YWx1ZT48L3Byb3BlcnR5IC0tPgkNCisNCisJPCEtLSBXZSBuZWVkIHRvICJoYXNoIiB0aGUgbmFtZSB3aXRoICJfIiB0byBhdm9pZCBjb25mbGljdCB3aXRoIHRoZSBmaWx0ZXIgQ29tbWFuZCAtLT4NCisJPG9iamVjdCBpZD0iX2VudHJ5X2xpc3QiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5lbnRyeV9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlByb2Nlc3NvciI+PHJlZiBvYmplY3Q9IkVudHJ5TGlzdFByb2Nlc3NvciIvPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKwkJDQorCTxvYmplY3QgaWQ9Il9lbnRyeV9saXN0X2NvdW50IiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+ZW50cnlfbGlzdF9jb3VudDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJQcm9jZXNzb3IiPjxyZWYgb2JqZWN0PSJDb2xsZWN0aW9uUHJvY2Vzc29yIi8+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorDQorCTxvYmplY3QgaWQ9Il9leHRlbnNpb25fbGlzdCIgcGFyZW50PSJCYXNlRmllbGRDb250ZXh0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmV4dGVuc2lvbl9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlByb2Nlc3NvciI+PHJlZiBvYmplY3Q9IkV4dGVuc2lvbkxpc3RQcm9jZXNzb3IiLz48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0iX2hpcmVkX2xpc3QiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5oaXJlZF9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlByb2Nlc3NvciI+PHJlZiBvYmplY3Q9IkhpcmVkTGlzdFByb2Nlc3NvciIvPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKw0KKwk8b2JqZWN0IGlkPSJDb2xsZWN0aW9uUHJvY2Vzc29yIiB0eXBlPSJOZXh1cy5Db3JlLlZhbGlkYXRvcnMuQ29sbGVjdGlvblByb2Nlc3NvciwgTmV4dXMuQ29yZSI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5FbnRyeUNvdW50UHJvY2Vzc29yPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisJDQorIAkJPCEtLSAiZCIgaXMgLk5FVCBmb3IgInNob3J0IGRhdGUiIC0tPiANCisJPG9iamVjdCBpZD0iRGF0ZVRpbWVQcm9jZXNzb3IiIHR5cGU9Ik5leHVzLkNvcmUuVmFsaWRhdG9ycy5EYXRlVGltZVByb2Nlc3NvciI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5EYXRlVGltZVByb2Nlc3NvcjwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJEYXRhRm9ybWF0Ij48dmFsdWU+ZDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorCQ0KKwk8b2JqZWN0IGlkPSJUZWxlcGhvbmVQcm9jZXNzb3IiIHR5cGU9IlBob25lQm9vay5Db3JlLlRlbGVwaG9uZVByb2Nlc3NvciI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5UZWxlcGhvbmVQcm9jZXNzb3I8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKw0KKwk8b2JqZWN0IGlkPSJFbnRyeUxpc3RQcm9jZXNzb3IiIHR5cGU9IlBob25lQm9vay5Db3JlLkFwcEVudHJ5TGlzdFByb2Nlc3NvciI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5FbnRyeUxpc3RQcm9jZXNzb3I8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKwkNCisJPG9iamVjdCBpZD0iRXh0ZW5zaW9uTGlzdFByb2Nlc3NvciIgcGFyZW50PSJCYXNlS2V5VmFsdWVQcm9jZXNzb3IiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+RXh0ZW5zaW9uTGlzdFByb2Nlc3NvcjwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJLZXkiPjx2YWx1ZT5leHRlbnNpb248L3ZhbHVlPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKwkNCisJPG9iamVjdCBpZD0iSGlyZWRMaXN0UHJvY2Vzc29yIiBwYXJlbnQ9IkJhc2VLZXlWYWx1ZVByb2Nlc3NvciI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5IaXJlZExpc3RQcm9jZXNzb3I8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iS2V5Ij48dmFsdWU+aGlyZWQ8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKw0KKzwvb2JqZWN0cz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9SZXNvdXJjZXMvQ2F0YWxvZy54bWwgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9SZXNvdXJjZXMvQ2F0YWxvZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmQ4OWM0NQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL1Jlc291cmNlcy9DYXRhbG9nLnhtbApAQCAtMCwwICsxLDE4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+IA0KKzxvYmplY3RzIHhtbG5zPSJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQiIA0KKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiANCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQgaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0L3hzZC9zcHJpbmctb2JqZWN0cy54c2QiPg0KKw0KKwk8IS0tIGVudHJ5IGNvbW1hbmRzIC0tPg0KKw0KKyAgPG9iamVjdCBpZD0iZW50cnlfbGlzdF9yb3dzIiBwYXJlbnQ9IkJhc2VMaXN0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmVudHJ5X2xpc3Q8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iUXVlcnlJRCI+PHZhbHVlPmVudHJ5PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlJlbGF0ZWRJRHMiPg0KKwkJCTxsaXN0Pg0KKwkJCQk8dmFsdWU+ZW50cnlfbGlzdDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5lbnRyeV9rZXk8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+bGFzdF9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmZpcnN0X25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+ZXh0ZW5zaW9uPC92YWx1ZT4NCisJCQkJPHZhbHVlPnVzZXJfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5oaXJlZDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5ob3VyczwvdmFsdWU+DQorCQkJCTx2YWx1ZT5lZGl0b3I8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aW5pdGlhbDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5pdGVtX2NvdW50PC92YWx1ZT4NCisJCQkJPHZhbHVlPml0ZW1fb2Zmc2V0PC92YWx1ZT4NCisJCQkJPHZhbHVlPml0ZW1fbGltaXQ8L3ZhbHVlPg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorICA8L29iamVjdD4NCisgIA0KKyAgPG9iamVjdCBpZD0iZW50cnlfbGlzdF9jb3VudCIgcGFyZW50PSJCYXNlQ291bnQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+ZW50cnlfbGlzdF9jb3VudDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJRdWVyeUlEIj48dmFsdWU+ZW50cnlfY291bnQ8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iUmVsYXRlZElEcyI+DQorCQkJPGxpc3Q+DQorCQkJCTx2YWx1ZT5lbnRyeV9saXN0PC92YWx1ZT4NCisJCQkJPHZhbHVlPmVudHJ5X2tleTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5sYXN0X25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+Zmlyc3RfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5leHRlbnNpb248L3ZhbHVlPg0KKwkJCQk8dmFsdWU+dXNlcl9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmhpcmVkPC92YWx1ZT4NCisJCQkJPHZhbHVlPmhvdXJzPC92YWx1ZT4NCisJCQkJPHZhbHVlPmVkaXRvcjwvdmFsdWU+DQorCQkJCTx2YWx1ZT5pbml0aWFsPC92YWx1ZT4NCisJCQkJPHZhbHVlPml0ZW1fY291bnQ8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aXRlbV9vZmZzZXQ8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aXRlbV9saW1pdDwvdmFsdWU+DQorCQkJPC9saXN0Pg0KKwkJPC9wcm9wZXJ0eT4NCisgIDwvb2JqZWN0Pg0KKw0KKyAgPG9iamVjdCBpZD0iZW50cnkiIHBhcmVudD0iQmFzZUVudHJ5Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmVudHJ5PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlJlbGF0ZWRJRHMiPg0KKwkJCTxsaXN0Pg0KKwkJCQk8dmFsdWU+ZW50cnk8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+ZW50cnlfa2V5PC92YWx1ZT4NCisJCQkJPHZhbHVlPmxhc3RfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5maXJzdF9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmV4dGVuc2lvbjwvdmFsdWU+DQorCQkJCTx2YWx1ZT51c2VyX25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aGlyZWQ8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aG91cnM8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+ZWRpdG9yPC92YWx1ZT4NCisJCQk8L2xpc3Q+DQorCQk8L3Byb3BlcnR5Pg0KKyAgPC9vYmplY3Q+DQorDQorICA8b2JqZWN0IGlkPSJlbnRyeV9kZWxldGUiIHBhcmVudD0iQmFzZURlbGV0ZSI+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJJRCI+DQorICAgICAgPHZhbHVlPmVudHJ5X2RlbGV0ZTwvdmFsdWU+DQorICAgIDwvcHJvcGVydHk+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJSZXF1aXJlZElEcyI+DQorICAgICAgPGxpc3Q+DQorICAgICAgICA8dmFsdWU+ZW50cnlfa2V5PC92YWx1ZT4NCisgICAgICA8L2xpc3Q+DQorICAgIDwvcHJvcGVydHk+DQorICA8L29iamVjdD4NCisNCisgIDwhLS0gZmlsdGVyIGxpc3QgY29tbWFuZHMgLS0+DQorCQkNCisgIDxvYmplY3QgaWQ9Imxhc3RfbmFtZV9saXN0IiBwYXJlbnQ9IkJhc2VGaWx0ZXJMaXN0Ij4NCisJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+bGFzdF9uYW1lX2xpc3Q8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj48bGlzdD48dmFsdWU+bGFzdF9uYW1lX2xpc3Q8L3ZhbHVlPjwvbGlzdD48L3Byb3BlcnR5Pg0KKyAgPC9vYmplY3Q+DQorDQorICA8b2JqZWN0IGlkPSJmaXJzdF9uYW1lX2xpc3QiIHBhcmVudD0iQmFzZUZpbHRlckxpc3QiPg0KKwk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5maXJzdF9uYW1lX2xpc3Q8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj48bGlzdD48dmFsdWU+Zmlyc3RfbmFtZV9saXN0PC92YWx1ZT48L2xpc3Q+PC9wcm9wZXJ0eT4NCisgIDwvb2JqZWN0Pg0KKyAgDQorICA8b2JqZWN0IGlkPSJleHRlbnNpb25fbGlzdCIgcGFyZW50PSJCYXNlRmlsdGVyTGlzdCI+DQorCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmV4dGVuc2lvbl9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8cHJvcGVydHkgbmFtZT0iUmVsYXRlZElEcyI+PGxpc3Q+PHZhbHVlPmV4dGVuc2lvbl9saXN0PC92YWx1ZT48L2xpc3Q+PC9wcm9wZXJ0eT4JDQorICA8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9InVzZXJfbmFtZV9saXN0IiBwYXJlbnQ9IkJhc2VGaWx0ZXJMaXN0Ij4NCisJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+dXNlcl9uYW1lX2xpc3Q8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj48bGlzdD48dmFsdWU+dXNlcl9uYW1lX2xpc3Q8L3ZhbHVlPjwvbGlzdD48L3Byb3BlcnR5PgkNCisgIDwvb2JqZWN0Pg0KKw0KKyAgPG9iamVjdCBpZD0iaGlyZWRfbGlzdCIgcGFyZW50PSJCYXNlRmlsdGVyTGlzdCI+DQorCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmhpcmVkX2xpc3Q8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj48bGlzdD48dmFsdWU+aGlyZWRfbGlzdDwvdmFsdWU+PC9saXN0PjwvcHJvcGVydHk+CQ0KKyAgPC9vYmplY3Q+DQorDQorICA8b2JqZWN0IGlkPSJob3Vyc19saXN0IiBwYXJlbnQ9IkJhc2VGaWx0ZXJMaXN0Ij4NCisJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+aG91cnNfbGlzdDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPHByb3BlcnR5IG5hbWU9IlJlbGF0ZWRJRHMiPjxsaXN0Pjx2YWx1ZT5ob3Vyc19saXN0PC92YWx1ZT48L2xpc3Q+PC9wcm9wZXJ0eT4JDQorICA8L29iamVjdD4NCisgIA0KKwk8b2JqZWN0IGlkPSJlbnRyeV9pbml0aWFsIiBwYXJlbnQ9IkVudHJ5SW5pdGlhbCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPg0KKwkJCTx2YWx1ZT5lbnRyeV9pbml0aWFsPC92YWx1ZT4NCisJCTwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iUmVsYXRlZElEcyI+DQorCQkJPGxpc3Q+DQorCQkJCTx2YWx1ZT5lbnRyeV9pbml0aWFsPC92YWx1ZT4NCisJCQk8L2xpc3Q+CQkNCisJCTwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKyAgDQorCTwhLS0gY2hhaW5zIC0tPg0KKyAgICANCisgICAgPG9iamVjdCBpZD0iZW50cnlfbGlzdCIgcGFyZW50PSJCYXNlQ2hhaW4iPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj4NCisJCQk8dmFsdWU+ZW50cnlfbGlzdDwvdmFsdWU+DQorCQk8L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IkFkZENvbW1hbmRzIj4NCisJCQk8bGlzdD4NCisJCQkJPHJlZiBvYmplY3Q9ImVudHJ5X2xpc3RfY291bnQiIC8+DQorCQkJCTxyZWYgb2JqZWN0PSJlbnRyeV9saXN0X3Jvd3MiIC8+DQorCQkJPC9saXN0Pg0KKwkJPC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorICAgIA0KKyAgICA8b2JqZWN0IGlkPSJlbnRyeV9maW5kIiBwYXJlbnQ9IkJhc2VDaGFpbiI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPg0KKwkJCTx2YWx1ZT5lbnRyeV9maW5kPC92YWx1ZT4NCisJCTwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iQWRkQ29tbWFuZHMiPg0KKwkJCTxsaXN0Pg0KKwkJCQk8cmVmIG9iamVjdD0ibGFzdF9uYW1lX2xpc3QiIC8+DQorCQkJCTxyZWYgb2JqZWN0PSJmaXJzdF9uYW1lX2xpc3QiIC8+DQorCQkJCTxyZWYgb2JqZWN0PSJleHRlbnNpb25fbGlzdCIgLz4NCisJCQkJPHJlZiBvYmplY3Q9InVzZXJfbmFtZV9saXN0IiAvPg0KKwkJCQk8cmVmIG9iamVjdD0iaGlyZWRfbGlzdCIgLz4NCisJCQkJPHJlZiBvYmplY3Q9ImhvdXJzX2xpc3QiIC8+DQorCQkJPC9saXN0Pg0KKwkJPC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorCQkJDQorICA8b2JqZWN0IGlkPSJlbnRyeV9zYXZlIiBwYXJlbnQ9IkJhc2VTYXZlIj4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+DQorCQkJPHZhbHVlPmVudHJ5X3NhdmU8L3ZhbHVlPg0KKwkJPC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJLZXlJRCI+DQorCQkJPHZhbHVlPmVudHJ5X2tleTwvdmFsdWU+DQorCQk8L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9Ikluc2VydElEIj4NCisJCQk8dmFsdWU+ZW50cnlfaW5zZXJ0PC92YWx1ZT4NCisJCTwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iVXBkYXRlSUQiPg0KKwkJCTx2YWx1ZT5lbnRyeV91cGRhdGU8L3ZhbHVlPg0KKwkJPC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj4NCisJCQk8bGlzdD4NCisJCQkJPHZhbHVlPmVudHJ5X2tleTwvdmFsdWU+DQorCQkJPC9saXN0Pg0KKwkJPC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJSZXF1aXJlZElEcyI+DQorCQkJPGxpc3Q+DQorCQkJCTx2YWx1ZT5maXJzdF9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmxhc3RfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5leHRlbnNpb248L3ZhbHVlPg0KKwkJCQk8dmFsdWU+dXNlcl9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmhvdXJzPC92YWx1ZT4NCisJCQkJPHZhbHVlPmhpcmVkPC92YWx1ZT4NCisJCQkJPHZhbHVlPmVkaXRvcjwvdmFsdWU+DQorCQkJPC9saXN0Pg0KKwkJPC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorDQorPC9vYmplY3RzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL1Jlc291cmNlcy9RdWVyaWVzLnhtbCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL1Jlc291cmNlcy9RdWVyaWVzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzA2MzlmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvUmVzb3VyY2VzL1F1ZXJpZXMueG1sCkBAIC0wLDAgKzEsMTg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4NCis8c3FsTWFwIA0KKwluYW1lc3BhY2U9InBob25lYm9vayIgDQorCXhtbG5zPSJodHRwOi8vaWJhdGlzLmFwYWNoZS5vcmcvbWFwcGluZyIgDQorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiID4NCisNCisgwqAgPHBhcmFtZXRlck1hcHM+DQorCQkNCivCoCDCoAkJPHBhcmFtZXRlck1hcCBpZD0iZW50cnlfc2F2ZV9wYXJhbSI+DQorCQkJPHBhcmFtZXRlciBwcm9wZXJ0eT0ibGFzdF9uYW1lIi8+DQorCQkJPHBhcmFtZXRlciBwcm9wZXJ0eT0iZmlyc3RfbmFtZSIvPg0KKwkJCTxwYXJhbWV0ZXIgcHJvcGVydHk9ImV4dGVuc2lvbiIvPg0KKwkJCTxwYXJhbWV0ZXIgcHJvcGVydHk9InVzZXJfbmFtZSIvPg0KKwkJCTxwYXJhbWV0ZXIgcHJvcGVydHk9ImhpcmVkIi8+DQorCQkJPHBhcmFtZXRlciBwcm9wZXJ0eT0iaG91cnMiLz4NCisJCQk8cGFyYW1ldGVyIHByb3BlcnR5PSJlZGl0b3IiLz4NCivCoCDCoAkJCTxwYXJhbWV0ZXIgcHJvcGVydHk9ImVudHJ5X2tleSIvPsKgIMKgCQkNCivCoCDCoCDCoCDCoCA8L3BhcmFtZXRlck1hcD4gwqAgwqAJCQ0KK8KgIAkNCivCoCAJPC9wYXJhbWV0ZXJNYXBzPg0KKwkJDQorCTxzdGF0ZW1lbnRzPg0KKwkNCisJCTxzZWxlY3QgaWQ9Imxhc3RfbmFtZV9saXN0IiByZXN1bHRDbGFzcz0ic3RyaW5nIj4NCisJCQlTRUxFQ1QgRElTVElOQ1QgDQorCQkJCWxhc3RfbmFtZQ0KKwkJCUZST00gZW50cnkNCisJCQlPUkRFUiBCWSBsYXN0X25hbWUJCQkNCisJCTwvc2VsZWN0Pg0KKwkJDQorCQk8c2VsZWN0IGlkPSJmaXJzdF9uYW1lX2xpc3QiIHJlc3VsdENsYXNzPSJzdHJpbmciPg0KKwkJCVNFTEVDVCBESVNUSU5DVCANCisJCQkJZmlyc3RfbmFtZQ0KKwkJCUZST00gZW50cnkNCisJCQlPUkRFUiBCWSBmaXJzdF9uYW1lDQorCQk8L3NlbGVjdD4NCisJCQ0KKwkJPHNlbGVjdCBpZD0iZXh0ZW5zaW9uX2xpc3QiIHJlc3VsdENsYXNzPSJzdHJpbmciPg0KKwkJCVNFTEVDVCBESVNUSU5DVCANCisJCQkJZXh0ZW5zaW9uDQorCQkJRlJPTSBlbnRyeQ0KKwkJCU9SREVSIEJZIGV4dGVuc2lvbg0KKwkJPC9zZWxlY3Q+DQorDQorCQk8c2VsZWN0IGlkPSJ1c2VyX25hbWVfbGlzdCIgcmVzdWx0Q2xhc3M9InN0cmluZyI+DQorCQkJU0VMRUNUIERJU1RJTkNUIA0KKwkJCQl1c2VyX25hbWUNCisJCQlGUk9NIGVudHJ5DQorCQkJT1JERVIgQlkgdXNlcl9uYW1lDQorCQk8L3NlbGVjdD4NCisNCisJCTxzZWxlY3QgaWQ9ImhpcmVkX2xpc3QiICByZXN1bHRDbGFzcz0iZGF0ZSI+DQorCQkJU0VMRUNUIERJU1RJTkNUIA0KKwkJCQloaXJlZA0KKwkJCUZST00gZW50cnkNCisJCQlPUkRFUiBCWSBoaXJlZA0KKwkJPC9zZWxlY3Q+DQorDQorCQk8c2VsZWN0IGlkPSJob3Vyc19saXN0IiAgcmVzdWx0Q2xhc3M9InN0cmluZyI+DQorCQkJU0VMRUNUIERJU1RJTkNUIA0KKwkJCQlob3Vycw0KKwkJCUZST00gZW50cnkNCisJCQlPUkRFUiBCWSBob3Vycw0KKwkJPC9zZWxlY3Q+DQorDQorCQk8c2VsZWN0IGlkPSJlbnRyeSIgcGFyYW1DbGFzcz0iSGFzaHRhYmxlIiByZXN1bHRDbGFzcz0iSGFzaHRhYmxlIj4NCisJCQlTRUxFQ1QgDQorCQkJCWxhc3RfbmFtZSwNCisJCQkJZmlyc3RfbmFtZSwNCisJCQkJZXh0ZW5zaW9uLA0KKwkJCQl1c2VyX25hbWUsDQorCQkJCWhpcmVkLA0KKwkJCQlob3VycywNCisJCQkJZWRpdG9yLA0KKwkJCQlwa19lbnRyeSBBUyBlbnRyeV9rZXkJCQkJDQorCQkJRlJPTSBlbnRyeQ0KKwkJCTxkeW5hbWljIHByZXBlbmQ9IldIRVJFIj4JCQkNCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iaW5pdGlhbCIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWxhc3RfbmFtZSBMSUtFICNpbml0aWFsIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0ibGFzdF9uYW1lIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJbGFzdF9uYW1lPSNsYXN0X25hbWUjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJmaXJzdF9uYW1lIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJZmlyc3RfbmFtZT0jZmlyc3RfbmFtZSMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImV4dGVuc2lvbiIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWV4dGVuc2lvbj0jZXh0ZW5zaW9uIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0idXNlcl9uYW1lIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJdXNlcl9uYW1lPSN1c2VyX25hbWUjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJoaXJlZCIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWhpcmVkPSNoaXJlZCMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImhvdXJzIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJaG91cnM9I2hvdXJzIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iZWRpdG9yIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJaG91cnM9I2VkaXRvciMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImVudHJ5X2tleSIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCXBrX2VudHJ5PSNlbnRyeV9rZXkjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCTwvZHluYW1pYz4JCQkNCisJCQk8ZHluYW1pYz4NCisJCQkgICA8aXNOb3ROdWxsIHByb3BlcnR5PSJpdGVtX2xpbWl0Ij4NCisJCQkJCUxJTUlUICNpdGVtX2xpbWl0IyBPRkZTRVQgI2l0ZW1fb2Zmc2V0IyANCisJCQkgICA8L2lzTm90TnVsbD4JCQkNCisJCQk8L2R5bmFtaWM+Ow0KKwkJPC9zZWxlY3Q+DQorDQorCQk8c2VsZWN0IGlkPSJlbnRyeV9jb3VudCIgcGFyYW1DbGFzcz0iSGFzaHRhYmxlIiByZXN1bHRDbGFzcz0ic3RyaW5nIj4NCisJCQlTRUxFQ1QgQ09VTlQoKikgRlJPTSBlbnRyeQ0KKwkJCTxkeW5hbWljIHByZXBlbmQ9IldIRVJFIj4JCQkNCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iaW5pdGlhbCIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWxhc3RfbmFtZSBMSUtFICNpbml0aWFsIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0ibGFzdF9uYW1lIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJbGFzdF9uYW1lPSNsYXN0X25hbWUjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJmaXJzdF9uYW1lIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJZmlyc3RfbmFtZT0jZmlyc3RfbmFtZSMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImV4dGVuc2lvbiIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWV4dGVuc2lvbj0jZXh0ZW5zaW9uIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0idXNlcl9uYW1lIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJdXNlcl9uYW1lPSN1c2VyX25hbWUjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJoaXJlZCIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWhpcmVkPSNoaXJlZCMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImhvdXJzIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJaG91cnM9I2hvdXJzIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iZWRpdG9yIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJaG91cnM9I2VkaXRvciMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImVudHJ5X2tleSIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCXBrX2VudHJ5PSNlbnRyeV9rZXkjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCTwvZHluYW1pYz4JCQkNCisJCTwvc2VsZWN0Pg0KKwkJDQorCQk8c2VsZWN0IGlkPSJlbnRyeV9pbml0aWFsIiBwYXJhbUNsYXNzPSJzdHJpbmciIHJlc3VsdENsYXNzPSJzdHJpbmciPgkJDQorCQkJU0VMRUNUIENPVU5UKCopIA0KKwkJCUZST00gZW50cnkNCisJCQlXSEVSRSBsYXN0X25hbWUgTElLRSAjdmFsdWUjDQorCQk8L3NlbGVjdD4JCQkJCQkJCQkNCisJCQ0KKwkJPGluc2VydCBpZD0iZW50cnlfaW5zZXJ0IiBwYXJhbWV0ZXJNYXA9ImVudHJ5X3NhdmVfcGFyYW0iPg0KKyDCoCDCoAkJSU5TRVJUIElOVE8gZW50cnkgKCDCoCDCoAkJCQ0KKwkJCQlsYXN0X25hbWUsDQorCQkJCWZpcnN0X25hbWUsDQorCQkJCWV4dGVuc2lvbiwNCisJCQkJdXNlcl9uYW1lLA0KKwkJCQloaXJlZCwNCisJCQkJaG91cnMsDQorCQkJCWVkaXRvciwNCisJCQkJcGtfZW50cnkNCisJCQkJKQ0KKwkJCVZBTFVFUyAoPyw/LD8sPywgPyw/LD8sPykNCisJCTwvaW5zZXJ0PgkJDQorDQorCQk8dXBkYXRlIGlkPSJlbnRyeV91cGRhdGUiIHBhcmFtZXRlck1hcD0iZW50cnlfc2F2ZV9wYXJhbSI+DQorCQkJVVBEQVRFIGVudHJ5IFNFVA0KKwkJCQlsYXN0X25hbWU9PywNCisJCQkJZmlyc3RfbmFtZT0/LA0KKwkJCQlleHRlbnNpb249PywNCisJCQkJdXNlcl9uYW1lPT8sDQorCQkJCWhpcmVkPT8sDQorCQkJCWhvdXJzPT8sDQorCQkJCWVkaXRvcj0/DQorCQkJV0hFUkUgDQorCQkJCXBrX2VudHJ5PT8NCisJCTwvdXBkYXRlPg0KKw0KKyAgICA8ZGVsZXRlIGlkPSJlbnRyeV9kZWxldGUiIHBhcmFtQ2xhc3M9Ikhhc2h0YWJsZSI+DQorICAgICAgIERFTEVURSBGUk9NIGVudHJ5IFdIRVJFIHBrX2VudHJ5PSNlbnRyeV9rZXkjOyAgICAgICAgDQorICAgIDwvZGVsZXRlPg0KKw0KKyAgPC9zdGF0ZW1lbnRzPg0KKzwvc3FsTWFwPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL1dlYi5jb25maWcgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9XZWIuY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4MWU1MDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9XZWIuY29uZmlnCkBAIC0wLDAgKzEsMTI1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4NCis8Y29uZmlndXJhdGlvbj4NCisgICAgDQorICAgIDxjb25maWdTZWN0aW9ucz4NCisgICAgICAgIDxzZWN0aW9uR3JvdXAgbmFtZT0ic3ByaW5nIj4NCisgICAgICAgICAgICA8c2VjdGlvbiBuYW1lPSJjb250ZXh0Igl0eXBlPSJTcHJpbmcuQ29udGV4dC5TdXBwb3J0LkNvbnRleHRIYW5kbGVyLCBTcHJpbmcuQ29yZSIvPg0KKyAgICAgICAgPC9zZWN0aW9uR3JvdXA+DQorICAgIDwvY29uZmlnU2VjdGlvbnM+DQorDQorICAgIDxzcHJpbmc+DQorICAgICAgICA8Y29udGV4dCB0eXBlPSJTcHJpbmcuQ29udGV4dC5TdXBwb3J0LldlYkFwcGxpY2F0aW9uQ29udGV4dCwgU3ByaW5nLldlYiI+DQorICAgICAgICAgICAgPHJlc291cmNlIHVyaT0ifi9PYmplY3RzLVdlYi54bWwiLz4NCisgICAgICAgIDwvY29udGV4dD4NCisgICAgPC9zcHJpbmc+ICANCisgICAgDQorICA8c3lzdGVtLndlYj4NCisNCisgICA8IS0tIEFVVE9NQVRJQyBDT05URVhUIExPQURJTkcgV0lUSCBTUFJJTkcNCisJCVNwcmluZy5XZWIgdXNlcyBjdXN0b20gUGFnZUhhbmRsZXJGYWN0b3J5IHRvIGxvYWQgYXBwcm9wcmlhdGUNCisJCWFwcGxpY2F0aW9uIGNvbnRleHQsIHdoaWNoIGlzIGluIHR1cm4gdXNlZCB0byBmaW5kIGFwcHJvcHJpYXRlIHBhZ2UgdG8NCisJCWV4ZWN1dGUuIA0KK2h0dHA6Ly9vcGVuc291cmNlLmF0bGFzc2lhbi5jb20vY29uZmx1ZW5jZS9zcHJpbmcvZGlzcGxheS9ORVQvQXV0b21hdGljK2NvbnRleHQrbG9hZGluZythbmQraGllcmFyY2hpY2FsK2NvbnRleHRzDQorCQktLT4NCisNCisgICA8aHR0cEhhbmRsZXJzPg0KKyAgICAgICAgPGFkZCB2ZXJiPSIqIiBwYXRoPSIqLmFzcHgiIHR5cGU9IlNwcmluZy5XZWIuU3VwcG9ydC5QYWdlSGFuZGxlckZhY3RvcnksIFNwcmluZy5XZWIiLz4NCisgICAgPC9odHRwSGFuZGxlcnM+DQorICAgDQorICAgIDwhLS0gIERZTkFNSUMgREVCVUcgQ09NUElMQVRJT04NCisgICAgICAgICAgU2V0IGNvbXBpbGF0aW9uIGRlYnVnPSJ0cnVlIiB0byBlbmFibGUgQVNQWCBkZWJ1Z2dpbmcuICBPdGhlcndpc2UsIHNldHRpbmcgdGhpcyB2YWx1ZSB0bw0KKyAgICAgICAgICBmYWxzZSB3aWxsIGltcHJvdmUgcnVudGltZSBwZXJmb3JtYW5jZSBvZiB0aGlzIGFwcGxpY2F0aW9uLiANCisgICAgICAgICAgU2V0IGNvbXBpbGF0aW9uIGRlYnVnPSJ0cnVlIiB0byBpbnNlcnQgZGVidWdnaW5nIHN5bWJvbHMgKC5wZGIgaW5mb3JtYXRpb24pDQorICAgICAgICAgIGludG8gdGhlIGNvbXBpbGVkIHBhZ2UuIEJlY2F1c2UgdGhpcyBjcmVhdGVzIGEgbGFyZ2VyIGZpbGUgdGhhdCBleGVjdXRlcw0KKyAgICAgICAgICBtb3JlIHNsb3dseSwgeW91IHNob3VsZCBzZXQgdGhpcyB2YWx1ZSB0byB0cnVlIG9ubHkgd2hlbiBkZWJ1Z2dpbmcgYW5kIHRvDQorICAgICAgICAgIGZhbHNlIGF0IGFsbCBvdGhlciB0aW1lcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGFib3V0DQorICAgICAgICAgIGRlYnVnZ2luZyBBU1AuTkVUIGZpbGVzLg0KKyAgICAtLT4NCisgICAgPGNvbXBpbGF0aW9uIA0KKyAgICAgICAgIGRlZmF1bHRMYW5ndWFnZT0iYyMiDQorICAgICAgICAgZGVidWc9InRydWUiDQorICAgIC8+DQorDQorICAgIDwhLS0gIENVU1RPTSBFUlJPUiBNRVNTQUdFUw0KKyAgICAgICAgICBTZXQgY3VzdG9tRXJyb3JzIG1vZGU9Ik9uIiBvciAiUmVtb3RlT25seSIgdG8gZW5hYmxlIGN1c3RvbSBlcnJvciBtZXNzYWdlcywgIk9mZiIgdG8gZGlzYWJsZS4gDQorICAgICAgICAgIEFkZCA8ZXJyb3I+IHRhZ3MgZm9yIGVhY2ggb2YgdGhlIGVycm9ycyB5b3Ugd2FudCB0byBoYW5kbGUuDQorDQorICAgICAgICAgICJPbiIgQWx3YXlzIGRpc3BsYXkgY3VzdG9tIChmcmllbmRseSkgbWVzc2FnZXMuDQorICAgICAgICAgICJPZmYiIEFsd2F5cyBkaXNwbGF5IGRldGFpbGVkIEFTUC5ORVQgZXJyb3IgaW5mb3JtYXRpb24uDQorICAgICAgICAgICJSZW1vdGVPbmx5IiBEaXNwbGF5IGN1c3RvbSAoZnJpZW5kbHkpIG1lc3NhZ2VzIG9ubHkgdG8gdXNlcnMgbm90IHJ1bm5pbmcgDQorICAgICAgICAgICBvbiB0aGUgbG9jYWwgV2ViIHNlcnZlci4gVGhpcyBzZXR0aW5nIGlzIHJlY29tbWVuZGVkIGZvciBzZWN1cml0eSBwdXJwb3Nlcywgc28gDQorICAgICAgICAgICB0aGF0IHlvdSBkbyBub3QgZGlzcGxheSBhcHBsaWNhdGlvbiBkZXRhaWwgaW5mb3JtYXRpb24gdG8gcmVtb3RlIGNsaWVudHMuDQorICAgIC0tPg0KKyAgICA8Y3VzdG9tRXJyb3JzIA0KKyAgICBtb2RlPSJSZW1vdGVPbmx5IiANCisgICAgLz4gDQorDQorICAgIDwhLS0gIEFVVEhFTlRJQ0FUSU9OIA0KKyAgICAgICAgICBUaGlzIHNlY3Rpb24gc2V0cyB0aGUgYXV0aGVudGljYXRpb24gcG9saWNpZXMgb2YgdGhlIGFwcGxpY2F0aW9uLiBQb3NzaWJsZSBtb2RlcyBhcmUgIldpbmRvd3MiLCANCisgICAgICAgICAgIkZvcm1zIiwgIlBhc3Nwb3J0IiBhbmQgIk5vbmUiDQorDQorICAgICAgICAgICJOb25lIiBObyBhdXRoZW50aWNhdGlvbiBpcyBwZXJmb3JtZWQuIA0KKyAgICAgICAgICAiV2luZG93cyIgSUlTIHBlcmZvcm1zIGF1dGhlbnRpY2F0aW9uIChCYXNpYywgRGlnZXN0LCBvciBJbnRlZ3JhdGVkIFdpbmRvd3MpIGFjY29yZGluZyB0byANCisgICAgICAgICAgIGl0cyBzZXR0aW5ncyBmb3IgdGhlIGFwcGxpY2F0aW9uLiBBbm9ueW1vdXMgYWNjZXNzIG11c3QgYmUgZGlzYWJsZWQgaW4gSUlTLiANCisgICAgICAgICAgIkZvcm1zIiBZb3UgcHJvdmlkZSBhIGN1c3RvbSBmb3JtIChXZWIgcGFnZSkgZm9yIHVzZXJzIHRvIGVudGVyIHRoZWlyIGNyZWRlbnRpYWxzLCBhbmQgdGhlbiANCisgICAgICAgICAgIHlvdSBhdXRoZW50aWNhdGUgdGhlbSBpbiB5b3VyIGFwcGxpY2F0aW9uLiBBIHVzZXIgY3JlZGVudGlhbCB0b2tlbiBpcyBzdG9yZWQgaW4gYSBjb29raWUuDQorICAgICAgICAgICJQYXNzcG9ydCIgQXV0aGVudGljYXRpb24gaXMgcGVyZm9ybWVkIHZpYSBhIGNlbnRyYWxpemVkIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2UgcHJvdmlkZWQNCisgICAgICAgICAgIGJ5IE1pY3Jvc29mdCB0aGF0IG9mZmVycyBhIHNpbmdsZSBsb2dvbiBhbmQgY29yZSBwcm9maWxlIHNlcnZpY2VzIGZvciBtZW1iZXIgc2l0ZXMuDQorICAgIC0tPg0KKyAgICA8YXV0aGVudGljYXRpb24gbW9kZT0iV2luZG93cyIgLz4gDQorICAgIDxpZGVudGl0eSBpbXBlcnNvbmF0ZT0idHJ1ZSIgLz4NCisNCisJPCEtLSAgQVVUSE9SSVpBVElPTiANCisgICAgICAgICAgVGhpcyBzZWN0aW9uIHNldHMgdGhlIGF1dGhvcml6YXRpb24gcG9saWNpZXMgb2YgdGhlIGFwcGxpY2F0aW9uLiBZb3UgY2FuIGFsbG93IG9yIGRlbnkgYWNjZXNzDQorICAgICAgICAgIHRvIGFwcGxpY2F0aW9uIHJlc291cmNlcyBieSB1c2VyIG9yIHJvbGUuIFdpbGRjYXJkczogIioiIG1lYW4gZXZlcnlvbmUsICI/IiBtZWFucyBhbm9ueW1vdXMgDQorICAgICAgICAgICh1bmF1dGhlbnRpY2F0ZWQpIHVzZXJzLg0KKyAgICAtLT4NCisNCisgICAgPGF1dGhvcml6YXRpb24+DQorICAgICAgICA8YWxsb3cgdXNlcnM9IioiIC8+IDwhLS0gQWxsb3cgYWxsIHVzZXJzIC0tPg0KKyAgICAgICAgICAgIDwhLS0gIDxhbGxvdyAgICAgdXNlcnM9Iltjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB1c2Vyc10iDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlcz0iW2NvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHJvbGVzXSIvPg0KKyAgICAgICAgICAgICAgICAgIDxkZW55ICAgICAgdXNlcnM9Iltjb21tYSBzZXBhcmF0ZWQgbGlzdCBvZiB1c2Vyc10iDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlcz0iW2NvbW1hIHNlcGFyYXRlZCBsaXN0IG9mIHJvbGVzXSIvPg0KKyAgICAgICAgICAgIC0tPg0KKyAgICA8L2F1dGhvcml6YXRpb24+DQorDQorICAgIDwhLS0gIEFQUExJQ0FUSU9OLUxFVkVMIFRSQUNFIExPR0dJTkcNCisgICAgICAgICAgQXBwbGljYXRpb24tbGV2ZWwgdHJhY2luZyBlbmFibGVzIHRyYWNlIGxvZyBvdXRwdXQgZm9yIGV2ZXJ5IHBhZ2Ugd2l0aGluIGFuIGFwcGxpY2F0aW9uLiANCisgICAgICAgICAgU2V0IHRyYWNlIGVuYWJsZWQ9InRydWUiIHRvIGVuYWJsZSBhcHBsaWNhdGlvbiB0cmFjZSBsb2dnaW5nLiAgSWYgcGFnZU91dHB1dD0idHJ1ZSIsIHRoZQ0KKyAgICAgICAgICB0cmFjZSBpbmZvcm1hdGlvbiB3aWxsIGJlIGRpc3BsYXllZCBhdCB0aGUgYm90dG9tIG9mIGVhY2ggcGFnZS4gIE90aGVyd2lzZSwgeW91IGNhbiB2aWV3IHRoZSANCisgICAgICAgICAgYXBwbGljYXRpb24gdHJhY2UgbG9nIGJ5IGJyb3dzaW5nIHRoZSAidHJhY2UuYXhkIiBwYWdlIGZyb20geW91ciB3ZWIgYXBwbGljYXRpb24NCisgICAgICAgICAgcm9vdC4gDQorICAgIC0tPg0KKyAgICA8dHJhY2UNCisgICAgICAgIGVuYWJsZWQ9ImZhbHNlIg0KKyAgICAgICAgcmVxdWVzdExpbWl0PSIxMCINCisgICAgICAgIHBhZ2VPdXRwdXQ9ImZhbHNlIg0KKyAgICAgICAgdHJhY2VNb2RlPSJTb3J0QnlUaW1lIg0KKwkJbG9jYWxPbmx5PSJ0cnVlIg0KKyAgICAvPg0KKw0KKyAgICA8IS0tICBTRVNTSU9OIFNUQVRFIFNFVFRJTkdTDQorICAgICAgICAgIEJ5IGRlZmF1bHQgQVNQLk5FVCB1c2VzIGNvb2tpZXMgdG8gaWRlbnRpZnkgd2hpY2ggcmVxdWVzdHMgYmVsb25nIHRvIGEgcGFydGljdWxhciBzZXNzaW9uLiANCisgICAgICAgICAgSWYgY29va2llcyBhcmUgbm90IGF2YWlsYWJsZSwgYSBzZXNzaW9uIGNhbiBiZSB0cmFja2VkIGJ5IGFkZGluZyBhIHNlc3Npb24gaWRlbnRpZmllciB0byB0aGUgVVJMLiANCisgICAgICAgICAgVG8gZGlzYWJsZSBjb29raWVzLCBzZXQgc2Vzc2lvblN0YXRlIGNvb2tpZWxlc3M9InRydWUiLg0KKyAgICAtLT4NCisgICAgPHNlc3Npb25TdGF0ZSANCisgICAgICAgICAgICBtb2RlPSJJblByb2MiDQorICAgICAgICAgICAgc3RhdGVDb25uZWN0aW9uU3RyaW5nPSJ0Y3BpcD0xMjcuMC4wLjE6NDI0MjQiDQorICAgICAgICAgICAgc3FsQ29ubmVjdGlvblN0cmluZz0iZGF0YSBzb3VyY2U9MTI3LjAuMC4xO1RydXN0ZWRfQ29ubmVjdGlvbj15ZXMiDQorICAgICAgICAgICAgY29va2llbGVzcz0iZmFsc2UiIA0KKyAgICAgICAgICAgIHRpbWVvdXQ9IjIwIiANCisgICAgLz4NCisNCisgICAgPCEtLSAgR0xPQkFMSVpBVElPTg0KKyAgICAgICAgICBUaGlzIHNlY3Rpb24gc2V0cyB0aGUgZ2xvYmFsaXphdGlvbiBzZXR0aW5ncyBvZiB0aGUgYXBwbGljYXRpb24uIA0KKyAgICAtLT4NCisgICAgPGdsb2JhbGl6YXRpb24gDQorICAgICAgICAgICAgcmVxdWVzdEVuY29kaW5nPSJ1dGYtOCIgDQorICAgICAgICAgICAgcmVzcG9uc2VFbmNvZGluZz0idXRmLTgiIA0KKyAgIC8+DQorICAgDQorIDwvc3lzdGVtLndlYj4NCisNCis8L2NvbmZpZ3VyYXRpb24+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvV2ViLmNzcHJvaiBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL1dlYi5jc3Byb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRiMjkxYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL1dlYi5jc3Byb2oKQEAgLTAsMCArMSw2MTk5IEBACis8VmlzdWFsU3R1ZGlvUHJvamVjdD4NCisgICAgPENTSEFSUA0KKyAgICAgICAgUHJvamVjdFR5cGUgPSAiV2ViIg0KKyAgICAgICAgUHJvZHVjdFZlcnNpb24gPSAiNy4xMC4zMDc3Ig0KKyAgICAgICAgU2NoZW1hVmVyc2lvbiA9ICIyLjAiDQorICAgICAgICBQcm9qZWN0R3VpZCA9ICJ7OTQ4RUUzNDQtRDAzMy00MzU4LTg4RTgtNzdGREUwODBEOTNDfSINCisgICAgPg0KKyAgICAgICAgPEJ1aWxkPg0KKyAgICAgICAgICAgIDxTZXR0aW5ncw0KKyAgICAgICAgICAgICAgICBBcHBsaWNhdGlvbkljb24gPSAiIg0KKyAgICAgICAgICAgICAgICBBc3NlbWJseUtleUNvbnRhaW5lck5hbWUgPSAiIg0KKyAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiUGhvbmVCb29rLldlYiINCisgICAgICAgICAgICAgICAgQXNzZW1ibHlPcmlnaW5hdG9yS2V5RmlsZSA9ICIiDQorICAgICAgICAgICAgICAgIERlZmF1bHRDbGllbnRTY3JpcHQgPSAiSlNjcmlwdCINCisgICAgICAgICAgICAgICAgRGVmYXVsdEhUTUxQYWdlTGF5b3V0ID0gIkdyaWQiDQorICAgICAgICAgICAgICAgIERlZmF1bHRUYXJnZXRTY2hlbWEgPSAiSUU1MCINCisgICAgICAgICAgICAgICAgRGVsYXlTaWduID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICBPdXRwdXRUeXBlID0gIkxpYnJhcnkiDQorICAgICAgICAgICAgICAgIFByZUJ1aWxkRXZlbnQgPSAiJChTb2x1dGlvbkRpcilwcmVidWlsZCAkKFNvbHV0aW9uRGlyKSINCisgICAgICAgICAgICAgICAgUG9zdEJ1aWxkRXZlbnQgPSAiIg0KKyAgICAgICAgICAgICAgICBSb290TmFtZXNwYWNlID0gIlBob25lQm9vay5XZWIiDQorICAgICAgICAgICAgICAgIFJ1blBvc3RCdWlsZEV2ZW50ID0gIk9uQnVpbGRTdWNjZXNzIg0KKyAgICAgICAgICAgICAgICBTdGFydHVwT2JqZWN0ID0gIiINCisgICAgICAgICAgICA+DQorICAgICAgICAgICAgICAgIDxDb25maWcNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiRGVidWciDQorICAgICAgICAgICAgICAgICAgICBBbGxvd1Vuc2FmZUJsb2NrcyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIEJhc2VBZGRyZXNzID0gIjI4NTIxMjY3MiINCisgICAgICAgICAgICAgICAgICAgIENoZWNrRm9yT3ZlcmZsb3dVbmRlcmZsb3cgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uT3ZlcnJpZGVGaWxlID0gIiINCisgICAgICAgICAgICAgICAgICAgIERlZmluZUNvbnN0YW50cyA9ICJERUJVRztUUkFDRSINCisgICAgICAgICAgICAgICAgICAgIERvY3VtZW50YXRpb25GaWxlID0gIlBob25lQm9vay5XZWIueG1sIg0KKyAgICAgICAgICAgICAgICAgICAgRGVidWdTeW1ib2xzID0gInRydWUiDQorICAgICAgICAgICAgICAgICAgICBGaWxlQWxpZ25tZW50ID0gIjQwOTYiDQorICAgICAgICAgICAgICAgICAgICBJbmNyZW1lbnRhbEJ1aWxkID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgTm9TdGRMaWIgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBOb1dhcm4gPSAiMTU5MSINCisgICAgICAgICAgICAgICAgICAgIE9wdGltaXplID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgT3V0cHV0UGF0aCA9ICJiaW5cIg0KKyAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJGb3JDb21JbnRlcm9wID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgUmVtb3ZlSW50ZWdlckNoZWNrcyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFRyZWF0V2FybmluZ3NBc0Vycm9ycyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFdhcm5pbmdMZXZlbCA9ICI0Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8Q29uZmlnDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIlJlbGVhc2UiDQorICAgICAgICAgICAgICAgICAgICBBbGxvd1Vuc2FmZUJsb2NrcyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIEJhc2VBZGRyZXNzID0gIjI4NTIxMjY3MiINCisgICAgICAgICAgICAgICAgICAgIENoZWNrRm9yT3ZlcmZsb3dVbmRlcmZsb3cgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uT3ZlcnJpZGVGaWxlID0gIiINCisgICAgICAgICAgICAgICAgICAgIERlZmluZUNvbnN0YW50cyA9ICJUUkFDRSINCisgICAgICAgICAgICAgICAgICAgIERvY3VtZW50YXRpb25GaWxlID0gIiINCisgICAgICAgICAgICAgICAgICAgIERlYnVnU3ltYm9scyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIEZpbGVBbGlnbm1lbnQgPSAiNDA5NiINCisgICAgICAgICAgICAgICAgICAgIEluY3JlbWVudGFsQnVpbGQgPSAiZmFsc2UiDQorICAgICAgICAgICAgICAgICAgICBOb1N0ZExpYiA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIE5vV2FybiA9ICIiDQorICAgICAgICAgICAgICAgICAgICBPcHRpbWl6ZSA9ICJ0cnVlIg0KKyAgICAgICAgICAgICAgICAgICAgT3V0cHV0UGF0aCA9ICJiaW5cIg0KKyAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXJGb3JDb21JbnRlcm9wID0gImZhbHNlIg0KKyAgICAgICAgICAgICAgICAgICAgUmVtb3ZlSW50ZWdlckNoZWNrcyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFRyZWF0V2FybmluZ3NBc0Vycm9ycyA9ICJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgIFdhcm5pbmdMZXZlbCA9ICI0Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgIDwvU2V0dGluZ3M+DQorICAgICAgICAgICAgPFJlZmVyZW5jZXM+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIlN5c3RlbSINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIi4uXC4uXC4uXC4uXC4uXC4uXC4uXFdJTkRPV1NcTWljcm9zb2Z0Lk5FVFxGcmFtZXdvcmtcdjEuMS40MzIyXFN5c3RlbS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtLkRyYXdpbmciDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3lzdGVtLkRyYXdpbmciDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlwuLlwuLlwuLlwuLlxXSU5ET1dTXE1pY3Jvc29mdC5ORVRcRnJhbWV3b3JrXHYxLjEuNDMyMlxTeXN0ZW0uRHJhd2luZy5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtLkRhdGEiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiU3lzdGVtLkRhdGEiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlwuLlwuLlwuLlwuLlwuLlxXSU5ET1dTXE1pY3Jvc29mdC5ORVRcRnJhbWV3b3JrXHYxLjEuNDMyMlxTeXN0ZW0uRGF0YS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtLldlYiINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJTeXN0ZW0uV2ViIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cLi5cLi5cLi5cLi5cLi5cV0lORE9XU1xNaWNyb3NvZnQuTkVUXEZyYW1ld29ya1x2MS4xLjQzMjJcU3lzdGVtLldlYi5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiU3lzdGVtLlhNTCINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJTeXN0ZW0uWG1sIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cLi5cLi5cLi5cLi5cLi5cV0lORE9XU1xNaWNyb3NvZnQuTkVUXEZyYW1ld29ya1x2MS4xLjQzMjJcU3lzdGVtLlhNTC5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiTmV4dXMuQ29yZSINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJOZXh1cy5Db3JlIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cbG9jYWwtY2FjaGVcTmV4dXNcTmV4dXMuQ29yZS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiQ29yZSINCisgICAgICAgICAgICAgICAgICAgIFByb2plY3QgPSAiezMxNTBGM0U4LTlBMDQtNEZFRC1CMTZGLUNFQTU3NzU2RTkzNH0iDQorICAgICAgICAgICAgICAgICAgICBQYWNrYWdlID0gIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIk5leHVzLldlYiINCisgICAgICAgICAgICAgICAgICAgIEFzc2VtYmx5TmFtZSA9ICJOZXh1cy5XZWIiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlxsb2NhbC1jYWNoZVxOZXh1c1xOZXh1cy5XZWIuZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8UmVmZXJlbmNlDQorICAgICAgICAgICAgICAgICAgICBOYW1lID0gIlNwcmluZy5Db3JlIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIlNwcmluZy5Db3JlIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cbG9jYWwtY2FjaGVcU3ByaW5nTmV0XFNwcmluZy5Db3JlLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJTcHJpbmcuV2ViIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIlNwcmluZy5XZWIiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlxsb2NhbC1jYWNoZVxTcHJpbmdOZXRcU3ByaW5nLldlYi5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiQWdpbGl0eS5Db3JlIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIkFnaWxpdHkuQ29yZSINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIi4uXC4uXGxvY2FsLWNhY2hlXEFnaWxpdHlcQWdpbGl0eS5Db3JlLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJOZXh1cy5FeHRyYXMiDQorICAgICAgICAgICAgICAgICAgICBBc3NlbWJseU5hbWUgPSAiTmV4dXMuRXh0cmFzIg0KKyAgICAgICAgICAgICAgICAgICAgSGludFBhdGggPSAiLi5cLi5cbG9jYWwtY2FjaGVcTmV4dXNcTmV4dXMuRXh0cmFzLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJNeVNxbC5EYXRhIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIk15U3FsLkRhdGEiDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlxsb2NhbC1jYWNoZVxpQmF0aXNOZXRcTXlTcWwuRGF0YS5kbGwiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxSZWZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgIE5hbWUgPSAiSmF5cm9jay5Kc29uIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIkpheXJvY2suSnNvbiINCisgICAgICAgICAgICAgICAgICAgIEhpbnRQYXRoID0gIi4uXC4uXGxvY2FsLWNhY2hlXGpheXJvY2tcSmF5cm9jay5Kc29uLmRsbCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPFJlZmVyZW5jZQ0KKyAgICAgICAgICAgICAgICAgICAgTmFtZSA9ICJKYXlyb2NrIg0KKyAgICAgICAgICAgICAgICAgICAgQXNzZW1ibHlOYW1lID0gIkpheXJvY2siDQorICAgICAgICAgICAgICAgICAgICBIaW50UGF0aCA9ICIuLlwuLlxsb2NhbC1jYWNoZVxqYXlyb2NrXEpheXJvY2suZGxsIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgIDwvUmVmZXJlbmNlcz4NCisgICAgICAgIDwvQnVpbGQ+DQorICAgICAgICA8RmlsZXM+DQorICAgICAgICAgICAgPEluY2x1ZGU+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkFzc2VtYmx5SW5mby5jcyINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImRlZmF1bHQuaHRtIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiR2xvYmFsLmFzYXgiDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkNvbXBvbmVudCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkdsb2JhbC5hc2F4LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgRGVwZW5kZW50VXBvbiA9ICJHbG9iYWwuYXNheCINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQ29kZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkdsb2JhbC5hc2F4LnJlc3giDQorICAgICAgICAgICAgICAgICAgICBEZXBlbmRlbnRVcG9uID0gIkdsb2JhbC5hc2F4LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiRW1iZWRkZWRSZXNvdXJjZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiT2JqZWN0cy54bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJPYmplY3RzLVdlYi54bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJQaG9uZUJvb2suYXNoeCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlBob25lQm9vay5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAicHJvdmlkZXJzLmNvbmZpZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gInNxbG1hcC5jb25maWciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJzcWxtYXAuY29uZmlnLnhtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIldlYi5jb25maWciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJDb250cm9sc1xBcHBHcmlkQ29udHJvbC5hc2N4Ig0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJVc2VyQ29udHJvbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbnRyb2xzXEFwcEdyaWRDb250cm9sLmFzY3guY3MiDQorICAgICAgICAgICAgICAgICAgICBEZXBlbmRlbnRVcG9uID0gIkFwcEdyaWRDb250cm9sLmFzY3giDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkFTUFhDb2RlQmVoaW5kIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiQ29udHJvbHNcQXBwR3JpZENvbnRyb2wuYXNjeC5yZXN4Ig0KKyAgICAgICAgICAgICAgICAgICAgRGVwZW5kZW50VXBvbiA9ICJBcHBHcmlkQ29udHJvbC5hc2N4LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiRW1iZWRkZWRSZXNvdXJjZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiQ29udHJvbHNcRmluZGVyLmFzY3giDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIlVzZXJDb250cm9sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiQ29udHJvbHNcRmluZGVyLmFzY3guY3MiDQorICAgICAgICAgICAgICAgICAgICBEZXBlbmRlbnRVcG9uID0gIkZpbmRlci5hc2N4Ig0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJBU1BYQ29kZUJlaGluZCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbnRyb2xzXEZpbmRlci5hc2N4LnJlc3giDQorICAgICAgICAgICAgICAgICAgICBEZXBlbmRlbnRVcG9uID0gIkZpbmRlci5hc2N4LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiRW1iZWRkZWRSZXNvdXJjZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiQ29udHJvbHNcRmluZGVyMi5hc2N4Ig0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJVc2VyQ29udHJvbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbnRyb2xzXEZpbmRlcjIuYXNjeC5jcyINCisgICAgICAgICAgICAgICAgICAgIERlcGVuZGVudFVwb24gPSAiRmluZGVyMi5hc2N4Ig0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJBU1BYQ29kZUJlaGluZCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbnRyb2xzXEZpbmRlcjIuYXNjeC5yZXN4Ig0KKyAgICAgICAgICAgICAgICAgICAgRGVwZW5kZW50VXBvbiA9ICJGaW5kZXIyLmFzY3guY3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJFbWJlZGRlZFJlc291cmNlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJDb250cm9sc1xJbml0aWFsRmlsdGVyLmFzY3giDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIlVzZXJDb250cm9sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiQ29udHJvbHNcSW5pdGlhbEZpbHRlci5hc2N4LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgRGVwZW5kZW50VXBvbiA9ICJJbml0aWFsRmlsdGVyLmFzY3giDQorICAgICAgICAgICAgICAgICAgICBTdWJUeXBlID0gIkFTUFhDb2RlQmVoaW5kIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29tcGlsZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiQ29udHJvbHNcSW5pdGlhbEZpbHRlci5hc2N4LnJlc3giDQorICAgICAgICAgICAgICAgICAgICBEZXBlbmRlbnRVcG9uID0gIkluaXRpYWxGaWx0ZXIuYXNjeC5jcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkVtYmVkZGVkUmVzb3VyY2UiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbnRyb2xzXExpc3Rlci5hc2N4Ig0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJVc2VyQ29udHJvbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbnRyb2xzXExpc3Rlci5hc2N4LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgRGVwZW5kZW50VXBvbiA9ICJMaXN0ZXIuYXNjeCINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQVNQWENvZGVCZWhpbmQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJDb250cm9sc1xMaXN0ZXIuYXNjeC5yZXN4Ig0KKyAgICAgICAgICAgICAgICAgICAgRGVwZW5kZW50VXBvbiA9ICJMaXN0ZXIuYXNjeC5jcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkVtYmVkZGVkUmVzb3VyY2UiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkNvbnRyb2xzXExpc3RlcjIuYXNjeCINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiVXNlckNvbnRyb2wiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJDb250cm9sc1xMaXN0ZXIyLmFzY3guY3MiDQorICAgICAgICAgICAgICAgICAgICBEZXBlbmRlbnRVcG9uID0gIkxpc3RlcjIuYXNjeCINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQVNQWENvZGVCZWhpbmQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJDb250cm9sc1xMaXN0ZXIyLmFzY3gucmVzeCINCisgICAgICAgICAgICAgICAgICAgIERlcGVuZGVudFVwb24gPSAiTGlzdGVyMi5hc2N4LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiRW1iZWRkZWRSZXNvdXJjZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiRm9ybXNcZGVmYXVsdC5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJGb3Jtc1xEaXJlY3RvcnkuYXNweCINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiRm9ybSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkZvcm1zXERpcmVjdG9yeS5hc3B4LmNzIg0KKyAgICAgICAgICAgICAgICAgICAgRGVwZW5kZW50VXBvbiA9ICJEaXJlY3RvcnkuYXNweCINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiQVNQWENvZGVCZWhpbmQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb21waWxlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJGb3Jtc1xEaXJlY3RvcnkuYXNweC5yZXN4Ig0KKyAgICAgICAgICAgICAgICAgICAgRGVwZW5kZW50VXBvbiA9ICJEaXJlY3RvcnkuYXNweC5jcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkVtYmVkZGVkUmVzb3VyY2UiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkZvcm1zXERpcmVjdG9yeTIuYXNweCINCisgICAgICAgICAgICAgICAgICAgIFN1YlR5cGUgPSAiRm9ybSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkZvcm1zXERpcmVjdG9yeTIuYXNweC5jcyINCisgICAgICAgICAgICAgICAgICAgIERlcGVuZGVudFVwb24gPSAiRGlyZWN0b3J5Mi5hc3B4Ig0KKyAgICAgICAgICAgICAgICAgICAgU3ViVHlwZSA9ICJBU1BYQ29kZUJlaGluZCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbXBpbGUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIkZvcm1zXERpcmVjdG9yeTIuYXNweC5yZXN4Ig0KKyAgICAgICAgICAgICAgICAgICAgRGVwZW5kZW50VXBvbiA9ICJEaXJlY3RvcnkyLmFzcHguY3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJFbWJlZGRlZFJlc291cmNlIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJGb3Jtc1xXZWIuY29uZmlnIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xidWlsZC50eHQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRvam8uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRvam8uanMudW5jb21wcmVzc2VkLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xmbGFzaDZfZ2F0ZXdheS5zd2YiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGlmcmFtZV9oaXN0b3J5Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXExJQ0VOU0UiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXFJFQURNRSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3RvcmFnZV9kaWFsb2cuc3dmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xTdG9yYWdlX3ZlcnNpb242LnN3ZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cU3RvcmFnZV92ZXJzaW9uOC5zd2YiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXGRlMi5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xkZW1vRW5naW5lLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3NcZGVtb0VuZ2luZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xkZW1vUmVnaXN0cnkuanNvbiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3NcZG9qb0RlbW9zLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncdmlld0RlbW8ucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xnZnhcY2lyY2xlcy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xnZnhcY2xvY2suaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3NcZ2Z4XGltYWdlc1xjbG9ja19mYWNlLmpwZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncc2NyZWVuc2hvdHNcdGVzdF9BY2NvcmRpb25UaHVtYi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHNjcmVlbnNob3RzXHRlc3RfQnV0dG9uVGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X0NoYXJ0VGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X0NoZWNrYm94VGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X0NpdmlDcm1EYXRlVGltZVBpY2tlclRodW1iLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncc2NyZWVuc2hvdHNcdGVzdF9Db2xvclBhbGV0dGVUaHVtYi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHNjcmVlbnNob3RzXHRlc3RfQ29tYm9Cb3hUaHVtYi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHNjcmVlbnNob3RzXHRlc3RfQ29udGVudFBhbmVUaHVtYi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHNjcmVlbnNob3RzXHRlc3RfRGF0ZVBpY2tlclRodW1iLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncc2NyZWVuc2hvdHNcdGVzdF9EYXRlUGlja2VyVGh1bWIucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X0RpYWxvZ1RodW1iLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncc2NyZWVuc2hvdHNcdGVzdF9EcmFnRHJvcFRodW1iLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncc2NyZWVuc2hvdHNcdGVzdF9EcmFnSGFuZGxlVGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X0RyYWdNb3ZlVGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X0VkaXRvclRodW1iLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncc2NyZWVuc2hvdHNcdGVzdF9FZmZlY3RzVGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X0Zpc2hleWVUaHVtYi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHNjcmVlbnNob3RzXHRlc3RfRm9ybUJpbmRUaHVtYi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHNjcmVlbnNob3RzXHRlc3RfRm9ybVRvdXJUaHVtYi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHNjcmVlbnNob3RzXHRlc3RfR29vZ2xlTWFwVGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X0lubGluZUVkaXRUaHVtYi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHNjcmVlbnNob3RzXHRlc3RfSlNPTlJQQ1RodW1iLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncc2NyZWVuc2hvdHNcdGVzdF9MYXlvdXRDb250YWluZXJUaHVtYi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHNjcmVlbnNob3RzXHRlc3RfTGF5b3V0VGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X01haWxUaHVtYi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHNjcmVlbnNob3RzXHRlc3RfTWVudVRodW1iLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncc2NyZWVuc2hvdHNcdGVzdF9Nb3hpZVRodW1iLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncc2NyZWVuc2hvdHNcdGVzdF9Ob1RodW1iLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncc2NyZWVuc2hvdHNcdGVzdF9Sb3VuZGVkVGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X1NsaWRlU2hvd1RodW1iLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncc2NyZWVuc2hvdHNcdGVzdF9Tb3J0YWJsZVRhYmxlVGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X1NwbGl0Q29udGFpbmVyVGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X1RhYkNvbnRhaW5lclRodW1iLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncc2NyZWVuc2hvdHNcdGVzdF9UaW1lUGlja2VyVGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X1RpdGxlUGFuZVRodW1iLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncc2NyZWVuc2hvdHNcdGVzdF9Ub29sdGlwVGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X1RyZWVUaHVtYi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHNjcmVlbnNob3RzXHRlc3RfVmFsaWRhdGlvblRodW1iLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncc2NyZWVuc2hvdHNcdGVzdF9XaW5kb3dUaHVtYi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHNjcmVlbnNob3RzXHRlc3RfV2l6YXJkVGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzY3JlZW5zaG90c1x0ZXN0X1lhaG9vTWFwVGh1bWIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzdG9yYWdlXGVkaXRvci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1xzdG9yYWdlXGVkaXRvci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XGFjY29yZGlvbkNvbnRhaW5lci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcY29tYm9Cb3guaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XGNvbnRlbnRQYW5lLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxkYXRlUGlja2VyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxkaWFsb2cuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XEVkaXRvci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcRmlzaGV5ZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcRm9ybS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcbGF5b3V0Q29udGFpbmVyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxNYWlsLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxQYW5lcy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRccm91bmRlZC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcc3BsaXRDb250YWluZXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XHRhYkNvbnRhaW5lci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcdG9vbHRpcC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcdHJlZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcaW1hZ2VzXGljb25fYnJvd3Nlci5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxpbWFnZXNcaWNvbl9icm93c2VyLnN2ZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XGltYWdlc1xpY29uX2NhbGVuZGFyLnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XGltYWdlc1xpY29uX2NhbGVuZGFyLnN2ZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XGltYWdlc1xpY29uX2VtYWlsLnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XGltYWdlc1xpY29uX2VtYWlsLnN2ZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XGltYWdlc1xpY29uX3RleHRlZGl0b3IucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcaW1hZ2VzXGljb25fdGV4dGVkaXRvci5zdmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxpbWFnZXNcaWNvbl91cGRhdGUucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcaW1hZ2VzXGljb25fdXBkYXRlLnN2ZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XGltYWdlc1xpY29uX3VzZXJzLnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XGltYWdlc1xpY29uX3VzZXJzLnN2ZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XGltYWdlc1xyb3VuZGVkYmcuanBnIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcTWFpbFxCb2IuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XE1haWxcY2FuY2VsLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XE1haWxcY2hlY2ttYXJrLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XE1haWxcRGVsZXRlZC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcTWFpbFxmb2xkZXJfZG9jdW1lbnRzLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XE1haWxcZm9sZGVyX2luYm94LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XE1haWxcZm9sZGVyX3NlbnRfbWFpbC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxNYWlsXEZyaWVuZHMuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XE1haWxcSW5ib3guaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XE1haWxcSmFjay5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcTWFpbFxMdW5jaC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcTWFpbFxtYWlsLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XE1haWxcbWFpbC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XE1haWxcbWFpbF9nZXQuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcTWFpbFxtYWlsX25ldy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxNYWlsXE1haWxBY2NvdW50Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxNYWlsXG1haWxib3gxLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XE1haWxcTWVldGluZy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcTWFpbFxOZXdNZXNzYWdlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxNYWlsXG9rLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XE1haWxcUGFpbnQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XE1haWxcUmVtYWluaW5nV29yay5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcTWFpbFxTYXZlZE1haWwuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XE1haWxcU2VudE1haWwuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XE1haWxcdHJhc2hjYW5fZnVsbC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxNYWlsXFdvcmsuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XFRyZWVcY3JlYXRlQ2hpbGQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxUcmVlXGdldENoaWxkcmVuIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcVHJlZVxtb3ZlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcVHJlZVxyZW1vdmVOb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcVHJlZVx0cmVlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxUcmVlXHN0YXRpY1xjcmVhdGUuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcVHJlZVxzdGF0aWNcY3JlYXRlc21hbGwuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcVHJlZVxzdGF0aWNcZG93bi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxUcmVlXHN0YXRpY1xkb3duc21hbGwucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xkZW1vc1x3aWRnZXRcVHJlZVxzdGF0aWNcbG9hZGluZy5qcGciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXGRlbW9zXHdpZGdldFxUcmVlXHN0YXRpY1xyZWN5Y2xlYmluLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XFRyZWVcc3RhdGljXHJlbW92ZXNtYWxsLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XFRyZWVcc3RhdGljXHVwLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cZGVtb3Ncd2lkZ2V0XFRyZWVcc3RhdGljXHVwc21hbGwucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xyZWxlYXNlXGRvam9cdGVzdHNcZmxhc2hccmVzb3VyY2VzXEhlbGxvV29ybGRfdmVyc2lvbjYuc3dmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xyZWxlYXNlXGRvam9cdGVzdHNcZmxhc2hccmVzb3VyY2VzXEhlbGxvV29ybGRfdmVyc2lvbjguc3dmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xyZWxlYXNlXGRvam9cdGVzdHNcZmxhc2hccmVzb3VyY2VzXFVuaXRUZXN0c0NvbW1fdmVyc2lvbjYuc3dmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xyZWxlYXNlXGRvam9cdGVzdHNcZmxhc2hccmVzb3VyY2VzXFVuaXRUZXN0c0NvbW1fdmVyc2lvbjguc3dmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcYTExeS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXEFkYXB0ZXJSZWdpc3RyeS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGFuaW1hdGlvbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGJlaGF2aW9yLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcYm9vdHN0cmFwMS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGJvb3RzdHJhcDIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xicm93c2VyX2RlYnVnLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcY3J5cHRvLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZGF0YS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkZWJ1Zy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXERlZmVycmVkLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcRGVmZXJyZWRMaXN0LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZG9jcy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRvbS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGV2ZW50LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZXhwZXJpbWVudGFsLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZmxhc2guanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xob3N0ZW52X2Fkb2Jlc3ZnLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaG9zdGVudl9icm93c2VyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaG9zdGVudl9kYXNoYm9hcmQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xob3N0ZW52X2pzYy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGhvc3RlbnZfcmhpbm8uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xob3N0ZW52X3NwaWRlcm1vbmtleS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGhvc3RlbnZfc3ZnLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaG9zdGVudl93c2guanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xodG1sLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaUNhbGVuZGFyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaW8uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xqc29uLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcbGFuZy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGxvYWRlci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGxvYWRlcl94ZC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXG1hdGguanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xucy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHByb2ZpbGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xyZWdleHAuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xzdG9yYWdlLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcc3RyaW5nLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcc3R5bGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xzdmcuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x2YWxpZGF0ZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGFuaW1hdGlvblxfX3BhY2thZ2VfXy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGFuaW1hdGlvblxBbmltYXRpb24uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xhbmltYXRpb25cQW5pbWF0aW9uRXZlbnQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xhbmltYXRpb25cQW5pbWF0aW9uU2VxdWVuY2UuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xhbmltYXRpb25cVGltZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xjYWxcaUNhbGVuZGFyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcY2FsXHRleHREaXJlY3RvcnkuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xjaGFydGluZ1xfX3BhY2thZ2VfXy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGNoYXJ0aW5nXEF4aXMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xjaGFydGluZ1xDaGFydC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGNoYXJ0aW5nXFBsb3QuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xjaGFydGluZ1xQbG90QXJlYS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGNoYXJ0aW5nXFBsb3R0ZXJzLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcY2hhcnRpbmdcUkVBRE1FLnR4dCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGNoYXJ0aW5nXFNlcmllcy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGNoYXJ0aW5nXHN2Z1xBeGlzLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcY2hhcnRpbmdcc3ZnXFBsb3RBcmVhLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcY2hhcnRpbmdcc3ZnXFBsb3R0ZXJzLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcY2hhcnRpbmdcdm1sXEF4aXMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xjaGFydGluZ1x2bWxcUGxvdEFyZWEuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xjaGFydGluZ1x2bWxcUGxvdHRlcnMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xjb2xsZWN0aW9uc1xfX3BhY2thZ2VfXy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGNvbGxlY3Rpb25zXEFycmF5TGlzdC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGNvbGxlY3Rpb25zXEJpbmFyeVRyZWUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xjb2xsZWN0aW9uc1xDb2xsZWN0aW9ucy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGNvbGxlY3Rpb25zXERpY3Rpb25hcnkuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xjb2xsZWN0aW9uc1xHcmFwaC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGNvbGxlY3Rpb25zXFF1ZXVlLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcY29sbGVjdGlvbnNcU2V0LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcY29sbGVjdGlvbnNcU2tpcExpc3QuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xjb2xsZWN0aW9uc1xTb3J0ZWRMaXN0LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcY29sbGVjdGlvbnNcU3RhY2suanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xjb2xsZWN0aW9uc1xTdG9yZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGNyeXB0b1xfX3BhY2thZ2VfXy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGNyeXB0b1xCbG93ZmlzaC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGNyeXB0b1xMSUNFTlNFIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcY3J5cHRvXE1ENS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGNyeXB0b1xSaWpuZGFlbC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGNyeXB0b1xTSEExLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcY3J5cHRvXFNIQTI1Ni5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGFcQ3N2U3RvcmUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkYXRhXE9wbWxTdG9yZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGFcUmRmU3RvcmUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkYXRhXFlhaG9vU3RvcmUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkYXRhXGNvcmVcUmVhZC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGFcY29yZVxSZW1vdGVTdG9yZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGFcY29yZVxSZXN1bHQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkYXRhXGNvcmVcV3JpdGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkYXRhXG9sZFxfX3BhY2thZ2VfXy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGFcb2xkXEF0dHJpYnV0ZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGFcb2xkXEl0ZW0uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkYXRhXG9sZFxLaW5kLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZGF0YVxvbGRcT2JzZXJ2YWJsZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGFcb2xkXFJlc3VsdFNldC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGFcb2xkXHRvX2RvLnR4dCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGFcb2xkXFR5cGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkYXRhXG9sZFxWYWx1ZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGFcb2xkXGZvcm1hdFxDc3YuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkYXRhXG9sZFxmb3JtYXRcSnNvbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGFcb2xkXHByb3ZpZGVyXEJhc2UuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkYXRhXG9sZFxwcm92aWRlclxEZWxpY2lvdXMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkYXRhXG9sZFxwcm92aWRlclxGbGF0RmlsZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGFcb2xkXHByb3ZpZGVyXEpvdFNwb3QuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkYXRhXG9sZFxwcm92aWRlclxNeVNxbC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGVcY29tbW9uLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZGF0ZVxmb3JtYXQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkYXRlXHNlcmlhbGl6ZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRhdGVcc3VwcGxlbWVudGFsLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZGVidWdcYXJyb3dfaGlkZS5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkZWJ1Z1xhcnJvd19zaG93LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRlYnVnXGNvbnNvbGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkZWJ1Z1xkZWVwLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkZWJ1Z1xGaXJlYnVnLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZGVidWdcc3BhY2VyLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRuZFxfX3BhY2thZ2VfXy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRuZFxEcmFnQW5kRHJvcC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRuZFxIdG1sRHJhZ0FuZERyb3AuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkbmRcSHRtbERyYWdDb3B5LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZG5kXEh0bWxEcmFnTWFuYWdlci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGRuZFxIdG1sRHJhZ01vdmUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkbmRcU29ydGFibGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xkbmRcVHJlZURyYWdBbmREcm9wLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZG5kXFRyZWVEcmFnQW5kRHJvcFYzLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZXZlbnRcX19wYWNrYWdlX18uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xldmVudFxicm93c2VyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZXZlbnRcY29tbW9uLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZXZlbnRcdG9waWMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xmbGFzaFxmbGFzaDZcRG9qb0V4dGVybmFsSW50ZXJmYWNlLmFzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZmxhc2hcZmxhc2g2XGZsYXNoNl9nYXRld2F5LmZsYSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGZsYXNoXGZsYXNoOFxEb2pvRXh0ZXJuYWxJbnRlcmZhY2UuYXMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xmbGFzaFxmbGFzaDhcRXhwcmVzc0luc3RhbGwuYXMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xnZnhcX19wYWNrYWdlX18uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xnZnhcY29sb3IuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xnZnhcQ29sb3JzcGFjZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGdmeFxjb21tb24uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xnZnhcbWF0cml4LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZ2Z4XHBhdGguanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xnZnhcc2hhcGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xnZnhcc3ZnLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZ2Z4XHZtbC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGdmeFxjb2xvclxoc2wuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xnZnhcY29sb3JcaHN2LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcZ3JhcGhpY3NcX19wYWNrYWdlX18uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xncmFwaGljc1xjb2xvci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGdyYXBoaWNzXENvbG9yc3BhY2UuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xncmFwaGljc1xjb2xvclxoc2wuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xncmFwaGljc1xjb2xvclxoc3YuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xodG1sXF9fcGFja2FnZV9fLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaHRtbFxjb2xvci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGh0bWxcY29tbW9uLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaHRtbFxkaXNwbGF5LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaHRtbFxpZnJhbWUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xodG1sXGxheW91dC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGh0bWxcbWV0cmljcy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGh0bWxcc2VsZWN0aW9uLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaHRtbFxzaGFkb3cuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xodG1sXHN0eWxlLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaHRtbFx1dGlsLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaHRtbFxpbWFnZXNcc2hhZG93Qi5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xodG1sXGltYWdlc1xzaGFkb3dCTC5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xodG1sXGltYWdlc1xzaGFkb3dCUi5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xodG1sXGltYWdlc1xzaGFkb3dMLnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGh0bWxcaW1hZ2VzXHNoYWRvd1IucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaHRtbFxpbWFnZXNcc2hhZG93VC5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xodG1sXGltYWdlc1xzaGFkb3dUTC5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xodG1sXGltYWdlc1xzaGFkb3dUUi5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xpMThuXGNvbW1vbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY3VycmVuY3kuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xpMThuXG51bWJlci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXGdyZWdvcmlhbkV4dHJhcy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXFJFQURNRSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXGRlXGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXGVuXGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXGVzXGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXGZpXGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXGZyXGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXGh1XGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXGl0XGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXGphXGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXGphXGdyZWdvcmlhbkV4dHJhcy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXGtvXGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXG5sXGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXHB0XGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXHB0LWJyXGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXHN2XGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXHpoXGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXHpoXGdyZWdvcmlhbkV4dHJhcy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXHpoLWNuXGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXHpoLWhrXGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY2FsZW5kYXJcbmxzXHpoLXR3XGdyZWdvcmlhbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGkxOG5cY3VycmVuY3lcY29tbW9uLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcRVVSLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcR0JQLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcSU5SLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcSVRMLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcSlBZLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcUkVBRE1FIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcVVNELmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcZW5cRVVSLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcZW5cR0JQLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcZW5cSU5SLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcZW5cSVRMLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcZW5cSlBZLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcZW5cVVNELmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcZW4tdXNcVVNELmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcaGlcRVVSLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcaGlcR0JQLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcaGlcSU5SLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcaGlcSVRMLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcaGlcSlBZLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcaGlcVVNELmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcamFcRVVSLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcamFcR0JQLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcamFcSU5SLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcamFcSVRMLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcamFcSlBZLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaTE4blxjdXJyZW5jeVxubHNcamFcVVNELmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaW9cX19wYWNrYWdlX18uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xpb1xCcm93c2VySU8uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xpb1xjb21ldGQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xpb1xjb21tb24uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xpb1xjb29raWUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xpb1xJZnJhbWVJTy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGlvXFJlcHVic3ViSU8uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xpb1xSaGlub0lPLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcaW9cU2NyaXB0U3JjSU8uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xpb1xYaHJJZnJhbWVQcm94eS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGlvXHhpcF9jbGllbnQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGlvXHhpcF9zZXJ2ZXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGxhbmdcX19wYWNrYWdlX18uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xsYW5nXGFycmF5LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcbGFuZ1xhc3NlcnQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xsYW5nXGNvbW1vbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGxhbmdcZGVjbGFyZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGxhbmdcZXh0cmFzLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcbGFuZ1xmdW5jLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcbGFuZ1xyZXByLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcbGFuZ1x0eXBlLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcbGFuZ1x0aW1pbmdcX19wYWNrYWdlX18uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xsYW5nXHRpbWluZ1xTdHJlYW1lci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGxhbmdcdGltaW5nXFRpbWVyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcbGZ4XF9fcGFja2FnZV9fLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcbGZ4XEFuaW1hdGlvbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGxmeFxleHRyYXMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xsZnhcaHRtbC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGxmeFxyb3VuZGVkLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcbGZ4XHNoYWRvdy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXGxmeFx0b2dnbGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xsb2dnaW5nXF9fcGFja2FnZV9fLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcbG9nZ2luZ1xDb25zb2xlTG9nZ2VyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcbG9nZ2luZ1xMb2dnZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xtYXRoXF9fcGFja2FnZV9fLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcbWF0aFxjdXJ2ZXMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xtYXRoXG1hdHJpeC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXG1hdGhccG9pbnRzLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcbmFtZXNwYWNlc1xkb2pvLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNccnBjXF9fcGFja2FnZV9fLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNccnBjXERlZmVycmVkLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNccnBjXEpvdFNlcnZpY2UuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xycGNcSnNvblNlcnZpY2UuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xycGNcUnBjU2VydmljZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHJwY1x5YWhvby5zbWQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xycGNcWWFob29TZXJ2aWNlLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcc2VsZWN0aW9uXFNlbGVjdGlvbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHN0b3JhZ2VcX19wYWNrYWdlX18uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xzdG9yYWdlXGJyb3dzZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xzdG9yYWdlXFN0b3JhZ2UuYXMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1xzdG9yYWdlXHN0b3JhZ2VfZGlhbG9nLmZsYSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHN0cmluZ1xfX3BhY2thZ2VfXy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHN0cmluZ1xCdWlsZGVyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcc3RyaW5nXGNvbW1vbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHN0cmluZ1xleHRyYXMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x0ZXh0XF9fcGFja2FnZV9fLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcdGV4dFx0ZXh0RGlyZWN0b3J5LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcdW5kb1xfX3BhY2thZ2VfXy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHVuZG9cYnJvd3Nlci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHVuZG9cTWFuYWdlci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHVyaVxfX3BhY2thZ2VfXy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHVyaVxVcmkuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x1dWlkXF9fcGFja2FnZV9fLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcdXVpZFxMaWdodHdlaWdodEdlbmVyYXRvci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHV1aWRcTmFtZUJhc2VkR2VuZXJhdG9yLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcdXVpZFxOaWxHZW5lcmF0b3IuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x1dWlkXFJhbmRvbUdlbmVyYXRvci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHV1aWRcVGltZUJhc2VkR2VuZXJhdG9yLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcdXVpZFxVdWlkLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcdmFsaWRhdGVcX19wYWNrYWdlX18uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x2YWxpZGF0ZVxjaGVjay5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHZhbGlkYXRlXGNvbW1vbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHZhbGlkYXRlXGNyZWRpdENhcmQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x2YWxpZGF0ZVxkYXRldGltZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHZhbGlkYXRlXGRlLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcdmFsaWRhdGVcanAuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x2YWxpZGF0ZVx1cy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHZhbGlkYXRlXHdlYi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxfX3BhY2thZ2VfXy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxBY2NvcmRpb25Db250YWluZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcQW5pbWF0ZWRQbmcuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcQnV0dG9uLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XENoYXJ0LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XENoZWNrYm94LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XENsb2NrLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XENvbG9yUGFsZXR0ZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxDb21ib0JveC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxDb250ZW50UGFuZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxDdXJyZW5jeVRleHRib3guanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcRGF0ZVBpY2tlci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxEYXRlVGV4dGJveC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxEZWJ1Z0NvbnNvbGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcRGlhbG9nLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XERvY1BhbmUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcRG9tV2lkZ2V0LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XERyb3Bkb3duQ29udGFpbmVyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XERyb3Bkb3duRGF0ZVBpY2tlci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxEcm9wZG93blRpbWVQaWNrZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcRWRpdG9yLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XEVkaXRvcjIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcRWRpdG9yMlRvb2xiYXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcRmlsdGVyaW5nVGFibGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcRmlzaGV5ZUxpc3QuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcRmxvYXRpbmdQYW5lLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XEZvcm0uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcR29vZ2xlTWFwLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XEh0bWxXaWRnZXQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcSW5saW5lRWRpdEJveC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxJbnRlZ2VyVGV4dGJveC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxJbnRlcm5ldFRleHRib3guanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcTGF5b3V0Q29udGFpbmVyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XExpbmtQYW5lLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XE1hbmFnZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcTWVudTIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcTW9udGhseUNhbGVuZGFyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFBhZ2VDb250YWluZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcUGFyc2UuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcUG9wdXBDb250YWluZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcUHJvZ3Jlc3NCYXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcUmFkaW9Hcm91cC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxSZWFsTnVtYmVyVGV4dGJveC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxSZWdleHBUZXh0Ym94LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFJlbW90ZVRhYkNvbnRyb2xsZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcUmVwZWF0ZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcUmVzaXphYmxlVGV4dGFyZWEuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcUmVzaXplSGFuZGxlLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFJpY2hUZXh0LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFJvdW5kZWQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcU2VsZWN0LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFNob3cuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcU2hvd0FjdGlvbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxTaG93U2xpZGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcU2xpZGVyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFNsaWRlU2hvdy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxTb3J0YWJsZVRhYmxlLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFNwaW5uZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcU3BsaXRDb250YWluZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcU3ZnQnV0dG9uLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFN2Z1dpZGdldC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxTd3RXaWRnZXQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVGFiQ29udGFpbmVyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFRhc2tCYXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVGV4dGJveC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxUaW1lUGlja2VyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFRpdGxlUGFuZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxUb2FzdGVyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFRvZ2dsZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVG9vbGJhci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxUb29sdGlwLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFRyZWUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZUJhc2ljQ29udHJvbGxlci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxUcmVlQmFzaWNDb250cm9sbGVyVjMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZUNvbW1vbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxUcmVlQ29udGV4dE1lbnUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZUNvbnRleHRNZW51VjMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZUNvbnRyb2xsZXJFeHRlbnNpb24uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZURlbW8uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZURlc2VsZWN0T25EYmxzZWxlY3QuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZURpc2FibGVXcmFwRXh0ZW5zaW9uLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFRyZWVEbmRDb250cm9sbGVyVjMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZURvY0ljb25FeHRlbnNpb24uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZUVkaXRvci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxUcmVlRW1waGFzaXplT25TZWxlY3QuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZUV4cGFuZFRvTm9kZU9uU2VsZWN0LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFRyZWVFeHRlbnNpb24uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZUxpbmtFeHRlbnNpb24uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZUxvYWRpbmdDb250cm9sbGVyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFRyZWVMb2FkaW5nQ29udHJvbGxlclYzLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFRyZWVOb2RlLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFRyZWVOb2RlVjMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZVJQQ0NvbnRyb2xsZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZVJwY0NvbnRyb2xsZXJWMy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxUcmVlU2VsZWN0b3IuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZVNlbGVjdG9yVjMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZVRpbWVvdXRJdGVyYXRvci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxUcmVlVG9nZ2xlT25TZWxlY3QuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVHJlZVYzLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFRyZWVXaXRoTm9kZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxVc1RleHRib3guanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdmFsaWRhdGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcVmFsaWRhdGlvblRleHRib3guanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcV2lkZ2V0LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XFdpemFyZC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxZYWhvb01hcC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxkZW1vRW5naW5lXF9fcGFja2FnZV9fLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XGRlbW9FbmdpbmVcRGVtb0NvbnRhaW5lci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxkZW1vRW5naW5lXERlbW9JdGVtLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XGRlbW9FbmdpbmVcRGVtb05hdmlnYXRvci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxkZW1vRW5naW5lXERlbW9QYW5lLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XGRlbW9FbmdpbmVcU291cmNlUGFuZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxkZW1vRW5naW5lXHRlbXBsYXRlc1xEZW1vQ29udGFpbmVyLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxkZW1vRW5naW5lXHRlbXBsYXRlc1xEZW1vQ29udGFpbmVyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcZGVtb0VuZ2luZVx0ZW1wbGF0ZXNcRGVtb0l0ZW0uY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XGRlbW9FbmdpbmVcdGVtcGxhdGVzXERlbW9JdGVtLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcZGVtb0VuZ2luZVx0ZW1wbGF0ZXNcRGVtb05hdmlnYXRvci5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcZGVtb0VuZ2luZVx0ZW1wbGF0ZXNcRGVtb05hdmlnYXRvci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XGRlbW9FbmdpbmVcdGVtcGxhdGVzXERlbW9QYW5lLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxkZW1vRW5naW5lXHRlbXBsYXRlc1xEZW1vUGFuZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XGRlbW9FbmdpbmVcdGVtcGxhdGVzXGdlbmVyYWwuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XGRlbW9FbmdpbmVcdGVtcGxhdGVzXFNvdXJjZVBhbmUuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XGRlbW9FbmdpbmVcdGVtcGxhdGVzXFNvdXJjZVBhbmUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxkZW1vRW5naW5lXHRlbXBsYXRlc1xpbWFnZXNcdGVzdF90aHVtYi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcZGVtb0VuZ2luZVx0ZW1wbGF0ZXNcaW1hZ2VzXHZpZXdEZW1vLnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxFZGl0b3IyUGx1Z2luXF9fcGFja2FnZV9fLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XEVkaXRvcjJQbHVnaW5cQWx3YXlzU2hvd1Rvb2xiYXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcRWRpdG9yMlBsdWdpblxDb250ZXh0TWVudS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxFZGl0b3IyUGx1Z2luXENyZWF0ZUxpbmtEaWFsb2cuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcRWRpdG9yMlBsdWdpblxGaW5kUmVwbGFjZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxFZGl0b3IyUGx1Z2luXEZpbmRSZXBsYWNlRGlhbG9nLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XEVkaXRvcjJQbHVnaW5cSW5zZXJ0SW1hZ2VEaWFsb2cuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcRWRpdG9yMlBsdWdpblxJbnNlcnRUYWJsZURpYWxvZy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxFZGl0b3IyUGx1Z2luXFNpbXBsZVNpZ25hbENvbW1hbmRzLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XEVkaXRvcjJQbHVnaW5cVGFibGVPcGVyYXRpb24uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcRWRpdG9yMlBsdWdpblxUb29sYmFyRG5kU3VwcG9ydC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxodG1sXGxheW91dC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxodG1sXGxvYWRlci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxodG1sXHN0YWJpbGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcbmxzXERyb3Bkb3duRGF0ZVBpY2tlci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxubHNcRHJvcGRvd25UaW1lUGlja2VyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XG5sc1xUaW1lUGlja2VyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XG5sc1x2YWxpZGF0ZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxubHNcZnJcdmFsaWRhdGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcbmxzXGphXHZhbGlkYXRlLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XG5sc1x6aC1jblx2YWxpZGF0ZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFxzdmdcQ2hhcnQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXEFjY29yZGlvblBhbmUuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xBY2NvcmRpb25QYW5lLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXEJ1dHRvblRlbXBsYXRlLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcQnV0dG9uVGVtcGxhdGUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcY2hlY2suZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xDaGVja2JveC5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXENoZWNrYm94Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXENoZWNrYm94QTExeS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xDaXZpQ3JtRGF0ZVBpY2tlci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xDb21ib0JveC5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXENvbWJvQm94Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXENvbWJvQnV0dG9uVGVtcGxhdGUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcRGF0ZVBpY2tlci5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXERhdGVQaWNrZXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcZGVjcmVtZW50TW9udGguZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xkZWNyZW1lbnRXZWVrLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcRGVtb0VuZ2luZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xEaWFsb2cuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcRG9jUGFuZS5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXERvY1BhbmUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcRHJvcERvd25CdXR0b25UZW1wbGF0ZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xFZGl0b3JUb29sYmFyLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcRWRpdG9yVG9vbGJhci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xFZGl0b3JUb29sYmFyT25lbGluZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xGaXNoZXllTGlzdC5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXEZsb2F0aW5nUGFuZS5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXEZsb2F0aW5nUGFuZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xncmFiQ29ybmVyLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW5jcmVtZW50TW9udGguZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbmNyZW1lbnRXZWVrLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcSW5saW5lRWRpdEJveC5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXElubGluZUVkaXRCb3guaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcTWVudS5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXE1lbnUyLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcTW9udGhseUNhbGVuZGFyLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcTW9udGhseUNhbGVuZGFyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXFBvcFVwQnV0dG9uLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcUHJvZ3Jlc3NCYXIuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xQcm9ncmVzc0Jhci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xSZW1vdGVUYWJDb250cm9sLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcUmVzaXphYmxlVGV4dGFyZWEuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xSZXNpemFibGVUZXh0YXJlYS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xSZXNpemVIYW5kbGUuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xyaWNodGV4dGZyYW1lLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXFNob3cuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xTaG93Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXFNob3dTbGlkZS5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXFNob3dTbGlkZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xTbGlkZXIuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xTbGlkZXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcU2xpZGVySG9yaXpvbnRhbC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xTbGlkZXJWZXJ0aWNhbC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xTbGlkZVNob3cuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xTbGlkZVNob3cuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcU3Bpbm5lci5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXFNwaW5uZXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcU3BsaXRDb250YWluZXIuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xUYWJDb250YWluZXIuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xUYWJDb250YWluZXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcVGFiQ29udGFpbmVyQTExeS5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXFRhc2tCYXIuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xUYXNrQmFySXRlbVRlbXBsYXRlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXFRleHRib3guaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcVGltZVBpY2tlci5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXFRpbWVQaWNrZXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcVGl0bGVQYW5lLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXFRvYXN0ZXIuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xUb29sYmFyLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcVG9vbHRpcFRlbXBsYXRlLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcVHJlZS5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXFRyZWVEaXNhYmxlV3JhcC5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXFRyZWVEb2NJY29uLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcVHJlZUVkaXRvci5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXFRyZWVWMy5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXFZhbGlkYXRlLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcVmFsaWRhdGlvblRleHRib3guaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcV2l6YXJkLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcV2l6YXJkLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGJ1dHRvbnNcYWdncmVnYXRlLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcYnV0dG9uc1xiYWNrY29sb3IuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXGJnLWZhZGUucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXGJvbGQuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXGNhbmNlbC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGJ1dHRvbnNcY29weS5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGJ1dHRvbnNcY3JlYXRlbGluay5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGJ1dHRvbnNcY3V0LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcYnV0dG9uc1xkZWxldGUuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXGZvcmVjb2xvci5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGJ1dHRvbnNcaGlsaXRlY29sb3IuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXGluZGVudC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGJ1dHRvbnNcaW5zZXJ0aG9yaXpvbnRhbHJ1bGUuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXGluc2VydGltYWdlLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcYnV0dG9uc1xpbnNlcnRvcmRlcmVkbGlzdC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGJ1dHRvbnNcaW5zZXJ0dGFibGUuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXGluc2VydHVub3JkZXJlZGxpc3QuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXGl0YWxpYy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGJ1dHRvbnNcanVzdGlmeWNlbnRlci5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGJ1dHRvbnNcanVzdGlmeWZ1bGwuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXGp1c3RpZnlsZWZ0LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcYnV0dG9uc1xqdXN0aWZ5cmlnaHQuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXGxlZnRfdG9fcmlnaHQuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXGxpc3RfYnVsbGV0X2luZGVudC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGJ1dHRvbnNcbGlzdF9idWxsZXRfb3V0ZGVudC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGJ1dHRvbnNcbGlzdF9udW1faW5kZW50LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcYnV0dG9uc1xsaXN0X251bV9vdXRkZW50LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcYnV0dG9uc1xvdXRkZW50LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcYnV0dG9uc1xwYXN0ZS5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGJ1dHRvbnNccmVkby5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGJ1dHRvbnNccmVtb3ZlZm9ybWF0LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcYnV0dG9uc1xyaWdodF90b19sZWZ0LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcYnV0dG9uc1xzYXZlLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcYnV0dG9uc1xzZXAuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXHNwYWNlLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcYnV0dG9uc1xzdHJpa2V0aHJvdWdoLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcYnV0dG9uc1xzdWJzY3JpcHQuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXHN1cGVyc2NyaXB0LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcYnV0dG9uc1x1bmRlcmxpbmUuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXHVuZG8uZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xidXR0b25zXHdpa2l3b3JkLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcRWRpdG9yMlxFZGl0b3JEaWFsb2cuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcRWRpdG9yMlxFZGl0b3JUb29sYmFyX0ZvbnROYW1lLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXEVkaXRvcjJcRWRpdG9yVG9vbGJhcl9Gb250U2l6ZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xFZGl0b3IyXEVkaXRvclRvb2xiYXJfRm9ybWF0QmxvY2suaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcRWRpdG9yMlxzaG93dGFibGVib3JkZXJfZ2Vja28uY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xFZGl0b3IyXHNob3d0YWJsZWJvcmRlcl9pZS5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXEVkaXRvcjJcRGlhbG9nXGNyZWF0ZWxpbmsuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcRWRpdG9yMlxEaWFsb2dcZmluZC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xFZGl0b3IyXERpYWxvZ1xpbnNlcnRpbWFnZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xFZGl0b3IyXERpYWxvZ1xpbnNlcnR0YWJsZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xFZGl0b3IyXERpYWxvZ1xyZXBsYWNlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xiYXIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcYmRZZWFyQmcuMS5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xiZFllYXJCZy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xibGFuay5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xjbG9jay5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xjb21ib19ib3hfYXJyb3cucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcZGF0ZUljb24uZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcZGVjcmVtZW50TW9udGguZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcZGVjcmVtZW50TW9udGgucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcZHBCZy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xkcEN1cnZlQkwucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcZHBDdXJ2ZUJSLnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXGRwQ3VydmVUTC5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xkcEN1cnZlVFIucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcZHBIb3JpekxpbmUuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcZHBIb3JpekxpbmVGb290LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXGRwTW9udGhCZy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xkcE1vbnRoQmcucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcZHBNb250aEJnMi5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xkcFZlcnRMaW5lLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXGRwWWVhckJnLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXGRwWWVhckJnLnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXGRyb3Bkb3duQnV0dG9uc0Fycm93LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXGRyb3Bkb3duQnV0dG9uc0Fycm93LWRpc2FibGVkLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXGZsb2F0aW5nUGFuZUNsb3NlLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXGZsb2F0aW5nUGFuZU1heGltaXplLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXGZsb2F0aW5nUGFuZU1pbmltaXplLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXGZsb2F0aW5nUGFuZVJlc3RvcmUuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcaC1iYXIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcaW5jcmVtZW50TW9udGguZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcaW5jcmVtZW50TW9udGgucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcbm8uZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcbm8uc3ZnIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcc2NCYWNrZ3JvdW5kLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHNsaWRlci5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xzbGlkZXJfZG93bl9hcnJvdy5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xzbGlkZXJfbGVmdF9hcnJvdy5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xzbGlkZXJfcmlnaHRfYXJyb3cucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcc2xpZGVyX3VwX2Fycm93LnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHNsaWRlci1iZy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xzbGlkZXItYmctcHJvZ3Jlc3MtdmVydC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xzbGlkZXItYmctdmVydC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xzbGlkZXItYnV0dG9uLnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHNsaWRlci1idXR0b24taG9yei5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xzbGlkZXItYnV0dG9uLXZlcnQucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcc29yaWFBY2NvcmRpb25PZmYuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcc29yaWFBY2NvcmRpb25TZWxlY3RlZC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xzb3JpYUFjdGl2ZS1jLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHNvcmlhQWN0aXZlLWwuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcc29yaWFBY3RpdmUtci5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xzb3JpYUJhckJnLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHNvcmlhQnV0dG9uLWMuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcc29yaWFCdXR0b24tbC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xzb3JpYUJ1dHRvbi1yLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHNvcmlhRGlzYWJsZWQtYy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xzb3JpYURpc2FibGVkLWwuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcc29yaWFEaXNhYmxlZC1yLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHNvcmlhTWVudUJnLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHNvcmlhUHJlc3NlZC1jLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHNvcmlhUHJlc3NlZC1sLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHNvcmlhUHJlc3NlZC1yLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHNwaW5uZXJEZWNyZW1lbnQuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcc3Bpbm5lckluY3JlbWVudC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xzdWJtZW51X2Rpc2FibGVkLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHN1Ym1lbnVfb2ZmLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHN1Ym1lbnVfb24uZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcdGFiX2JvdF9sZWZ0LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHRhYl9ib3RfbGVmdF9jdXJyLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHRhYl9ib3RfcmlnaHQuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcdGFiX2JvdF9yaWdodF9jdXJyLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHRhYl9jbG9zZS5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1x0YWJfY2xvc2VfaC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1x0YWJfbGVmdC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1x0YWJfbGVmdF9yLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHRhYl9sZWZ0X3JfY3Vyci5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1x0YWJfcmlnaHQuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcdGFiX3JpZ2h0X3IuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcdGFiX3JpZ2h0X3JfY3Vyci5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1x0YWJfdG9wX2xlZnQuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcdGFiX3RvcF9yaWdodC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1x0aW1lSWNvbi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1x0b29sYmFyLWJnLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHRyYW5zcGFyZW50LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHRyZWVub2RlX2JsYW5rLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHRyZWVub2RlX2NoaWxkLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHRyZWVub2RlX2V4cGFuZF9taW51cy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1x0cmVlbm9kZV9leHBhbmRfcGx1cy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1x0cmVlbm9kZV9ncmlkX2MuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcdHJlZW5vZGVfZ3JpZF9sLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHRyZWVub2RlX2dyaWRfcC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1x0cmVlbm9kZV9ncmlkX3QuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcdHJlZW5vZGVfZ3JpZF92LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHRyZWVub2RlX2dyaWRfeC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1x0cmVlbm9kZV9ncmlkX3kuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcdHJlZW5vZGVfZ3JpZF96LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXHRyZWVub2RlX25vZGUuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcdmVydGljYWxiYXIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcd2hpdGVEb3duQXJyb3cuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcVHJlZVxibGFuay5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xUcmVlXGNsb3NlZC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xUcmVlXGRvY3VtZW50LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVcbWludXMuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcVHJlZVxwbHVzLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVcdHJhbnNwYXJlbnQuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcVHJlZVxUcmVlLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVcdHJlZW5vZGVfYmxhbmsuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcVHJlZVx0cmVlbm9kZV9jaGlsZC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xUcmVlXHRyZWVub2RlX2V4cGFuZF9taW51cy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xUcmVlXHRyZWVub2RlX2V4cGFuZF9wbHVzLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVcdHJlZW5vZGVfZ3JpZF9jLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVcdHJlZW5vZGVfZ3JpZF9sLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVcdHJlZW5vZGVfZ3JpZF9wLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVcdHJlZW5vZGVfZ3JpZF90LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVcdHJlZW5vZGVfZ3JpZF92LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVcdHJlZW5vZGVfZ3JpZF94LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVcdHJlZW5vZGVfZ3JpZF95LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVcdHJlZW5vZGVfZ3JpZF96LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVcdHJlZW5vZGVfbG9hZGluZy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xUcmVlXHRyZWVub2RlX2xvYWRpbmcuanBnIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcVHJlZVYzXGNsb3NlZC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xUcmVlVjNcZG9jdW1lbnQuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcVHJlZVYzXGV4cGFuZF9sZWFmLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVWM1xleHBhbmRfbG9hZGluZy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xUcmVlVjNcZXhwYW5kX21pbnVzLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVWM1xleHBhbmRfcGx1cy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xUcmVlVjNcaS5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xUcmVlVjNcaV9iaGFsZi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x3aWRnZXRcdGVtcGxhdGVzXGltYWdlc1xUcmVlVjNcaV9oYWxmLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVWM1xpX2xvbmcuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcVHJlZVYzXGwuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1xzcmNcd2lkZ2V0XHRlbXBsYXRlc1xpbWFnZXNcVHJlZVYzXG1pbnVzLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVWM1xvcGVuLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVWM1xwbHVzLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVWM1x0LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx0ZW1wbGF0ZXNcaW1hZ2VzXFRyZWVWM1x4LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cc3JjXHdpZGdldFx2bWxcQ2hhcnQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x4bWxcX19wYWNrYWdlX18uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x4bWxcUGFyc2UuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHNyY1x4bWxcWHNsVHJhbnNmb3JtLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xfX3BhY2thZ2VfXy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcX2Jvb3RzdHJhcC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZGVmZXJyZWRMaXN0Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGVwaWxvZ3VlLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xqc3VuaXRfYnJvd3Nlci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcTW9ja1hNTEh0dHBSZXF1ZXN0LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xwcm9sb2d1ZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcdGVzdF9iZWhhdmlvci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x0ZXN0X2Jvb3RzdHJhcC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x0ZXN0X2Jvb3RzdHJhcC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcdGVzdF9jYWxlbmRhci5pY3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHRlc3RfZGVmZXJyZWQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHRlc3RfZG9jcy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x0ZXN0X2Rvam8ueG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x0ZXN0X2Rvam8ueHNsIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x0ZXN0X2Rvam9fZG91YmxlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHRlc3RfZG9tLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHRlc3RfZG9tLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x0ZXN0X2VtYmVkZGVkX2h0bWwuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcdGVzdF9maXhfZWNtYS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x0ZXN0X2hvc3RlbnZfYWRvYmVzdmcuc3ZnIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x0ZXN0X2hvc3RlbnZfYnJvd3Nlci5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcdGVzdF9odG1sLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHRlc3RfaHRtbF9jb250ZW50Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHRlc3RfaHRtbF9zZWxlY3Rpb24uaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcdGVzdF9pQ2FsZW5kYXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcdGVzdF9tYXRoLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x0ZXN0X01vY2tYTUxIdHRwUmVxdWVzdC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x0ZXN0X01vY2tYTUxIdHRwUmVxdWVzdC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcdGVzdF9ucy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcdGVzdF9wbGFjZU9uU2NyZWVuLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGFuaW1hdGlvblx0ZXN0X2FjY2VsbGVyYXRpb25fZGVtby5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xhbmltYXRpb25cdGVzdF9hbmltYXRpb24uaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcYW5pbWF0aW9uXHRlc3Rfd2lwZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xjaGFydGluZ1x0ZXN0X2VuZ2luZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xjb2xsZWN0aW9uc1x0ZXN0X0FycmF5TGlzdC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcY29sbGVjdGlvbnNcdGVzdF9EaWN0aW9uYXJ5LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xjb2xsZWN0aW9uc1x0ZXN0X0RpY3Rpb25hcnlFbnRyeS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcY29sbGVjdGlvbnNcdGVzdF9RdWV1ZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcY29sbGVjdGlvbnNcdGVzdF9TZXQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGNvbGxlY3Rpb25zXHRlc3RfU29ydGVkTGlzdC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcY29sbGVjdGlvbnNcdGVzdF9TdGFjay5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcY29sbGVjdGlvbnNcdGVzdF9TdG9yZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcY29tcGF0XHRlc3RfY29tcGF0Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGNyeXB0b1x0ZXN0X0Jsb3dmaXNoLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGNyeXB0b1x0ZXN0X0Jsb3dmaXNoLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xjcnlwdG9cdGVzdF9NRDUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGNyeXB0b1x0ZXN0X1Jpam5kYWVsLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xjcnlwdG9cdGVzdF9TSEEuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGNyeXB0b1x0ZXN0X1NIQTI1Ni5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcY3J5cHRvXFRFU1RWQUxVRVMudHh0Ig0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xkYXRhXGJvb2tzLmNzdiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZGF0YVxkaXNwbGF5RmlsdGVyaW5nVGFibGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGFcZGlzcGxheVZpYURvam9EZWJ1Zy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZGF0YVxmaWx0ZXJpbmdUYWJsZVN0eWxlcy5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGFcZ2VvZ3JhcGh5Lm9wbWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGFcbW92aWVzLmNzdiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZGF0YVxyc3NfZmVlZHMub3BtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZGF0YVx0ZXN0X0NzdlN0b3JlX2luX0ZpbHRlcmluZ1RhYmxlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGFcdGVzdF9PcG1sU3RvcmUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZGF0YVx0ZXN0X09wbWxTdG9yZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZGF0YVx0ZXN0X1JkZlN0b3JlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGFcdGVzdF9SZGZTdG9yZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZGF0YVx0ZXN0X1JlbW90ZVN0b3JlX2luX0ZpbHRlcmluZ1RhYmxlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGFcdGVzdF9ZYWhvb1N0b3JlX3BhZ2luZy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xkYXRhXHRlc3RfWWFob29TdG9yZV9wYWdpbmcuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGFcY29yZVx0ZXN0X1JlbW90ZVN0b3JlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGFcY29yZVx0ZXN0X1JlbW90ZVN0b3JlLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xkYXRhXG9sZFxCaW5kaW5nSGFjay5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZGF0YVxvbGRcZGF0YV9zZXRfZm91ci5qc29uIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xkYXRhXG9sZFxtb3ZpZXMuY3N2Ig0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xkYXRhXG9sZFxzdGF0ZXNfd2l0aF9oZWFkZXJfcm93Lmpzb24iDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGFcb2xkXHN0YXRlc193aXRoX2tleXdvcmRzLmpzb24iDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGFcb2xkXHRlc3RfZGF0YS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xkYXRhXG9sZFx0ZXN0X2RhdGEuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGFcb2xkXHRlc3RfZGF0YV9iaW5kaW5nLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGFcb2xkXHRlc3RfZGF0YV9iaW5kaW5nLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xkYXRhXG9sZFx0ZXN0X2RlbGljaW91cy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xkYXRhXG9sZFx0ZXN0X2RlbGljaW91cy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZGF0ZVx0ZXN0X2RhdGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGVcdGVzdF9mb3JtYXQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGVcdGVzdF9zZXJpYWxpemUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRhdGVcdGVzdF9zdXBwbGVtZW50YWwuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRlYnVnXHRlc3RfZGVidWcuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZGVidWdcdGVzdF9kZWJ1Z19jb25zb2xlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGRlYnVnXHRlc3RfZGVidWdfRmlyZWJ1Zy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xkbmRcdGVzdF9jb250YWluZXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZG5kXHRlc3RfZHJhZ2NvcHkuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZG5kXHRlc3RfZHJhZ2Ryb3BwYXJlbnQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZG5kXHRlc3RfZHJhZ2hhbmRsZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xkbmRcdGVzdF9kcmFnaGFuZGxlXzIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZG5kXHRlc3RfZHJhZ21vdmUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZG5kXHRlc3RfZHJhZ21vdmVwYXJlbnQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZG5kXHRlc3RfbmVzdGVkX2Ryb3BfdGFyZ2V0cy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xkbmRcdGVzdF9zaW1wbGUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZXZlbnRcZW1wdHkuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZXZlbnRcdGVzdF9icm93c2VyZXZlbnQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZXZlbnRcdGVzdF9FdmVudC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZXZlbnRcdGVzdF9nZXRFdmVudFRhcmdldC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xldmVudFx0ZXN0X2llX3J1bnRpbWVfdXNhZ2UuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZXZlbnRcdGVzdF9pZnJhbWVzLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGV2ZW50XHRlc3RfbXVsdGljb25uZWN0Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGV2ZW50XHRlc3RfbXVsdGlkaXNjb25uZWN0Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGV2ZW50XHRlc3RfcmF0ZV9saW1pdGVkX2V2ZW50cy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xldmVudFx0ZXN0X3RvcGljLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGV2ZW50XHRlc3RfVG9waWMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGV2ZW50XHRlc3RfdG9waWMyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGZsYXNoXEhlbGxvV29ybGQuYXMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGZsYXNoXHRlc3RfY29tbV9zaW1wbGUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZmxhc2hcdW5pdF90ZXN0c19jb21tLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGZsYXNoXFVuaXRUZXN0c0NvbW0uYXMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGZsYXNoXHJlc291cmNlc1xIZWxsb1dvcmxkX3ZlcnNpb242LnN3ZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZmxhc2hccmVzb3VyY2VzXEhlbGxvV29ybGRfdmVyc2lvbjguc3dmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xmbGFzaFxyZXNvdXJjZXNcdGVzdC54bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGZsYXNoXHJlc291cmNlc1x0ZXN0Qm9vay50eHQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGZsYXNoXHJlc291cmNlc1xVbml0VGVzdHNDb21tX3ZlcnNpb242LnN3ZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZmxhc2hccmVzb3VyY2VzXFVuaXRUZXN0c0NvbW1fdmVyc2lvbjguc3dmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xnZnhcdGVzdF9hcmMuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZ2Z4XHRlc3RfYmV6aWVyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGdmeFx0ZXN0X2NvbG9yLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGdmeFx0ZXN0X0NvbG9yc3BhY2UuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZ2Z4XHRlc3RfZ2Z4Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGdmeFx0ZXN0X2dmeDEyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGdmeFx0ZXN0X2dyb3VwLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGdmeFx0ZXN0X2ltYWdlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGdmeFx0ZXN0X21hdHJpeC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xnZnhcdGVzdF9wYXR0ZXJuLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGdmeFx0ZXN0X3BvbHkuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZ2Z4XHRlc3Rfc2V0UGF0aC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xnZnhcdGVzdF90cmFuc2Zvcm0uaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZ2Z4XGhzdlx0ZXN0X2hzdi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcZ2Z4XGltYWdlc1xlcnJvci5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGdmeFxpbWFnZXNccGxhY2Vob2xkZXIucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xnZnhcaW1hZ2VzXHJlY3QucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xncmFwaGljc1x0ZXN0X2NvbG9yLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGdyYXBoaWNzXHRlc3RfQ29sb3JzcGFjZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xodG1sXGllX2J5SWRfYnVnLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGh0bWxcdGVzdF9jc3NoYWNrLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGh0bWxcdGVzdF9tZXRyaWNzLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGkxOG5cdGVzdF9jdXJyZW5jeS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpMThuXHRlc3RfbnVtYmVyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGkxOG5cdGVzdF9zdHJpbmdzLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGkxOG5cdGVzdF9zdHJpbmdzMi5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpMThuXG5sc1xzYWx1dGF0aW9ucy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaTE4blxubHNcYXJcc2FsdXRhdGlvbnMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGkxOG5cbmxzXGNzXHNhbHV0YXRpb25zLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpMThuXG5sc1xkZVxzYWx1dGF0aW9ucy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaTE4blxubHNcZWxcc2FsdXRhdGlvbnMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGkxOG5cbmxzXGVuLWF1XHNhbHV0YXRpb25zLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpMThuXG5sc1xlbi11cy1oYXdhaWlcc2FsdXRhdGlvbnMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGkxOG5cbmxzXGVuLXVzLW5ld195b3JrLWJyb29rbHluXHNhbHV0YXRpb25zLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpMThuXG5sc1xlbi11cy10ZXhhc1xzYWx1dGF0aW9ucy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaTE4blxubHNcZXNcc2FsdXRhdGlvbnMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGkxOG5cbmxzXGZhXHNhbHV0YXRpb25zLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpMThuXG5sc1xmclxzYWx1dGF0aW9ucy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaTE4blxubHNcaGVcc2FsdXRhdGlvbnMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGkxOG5cbmxzXGhpXHNhbHV0YXRpb25zLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpMThuXG5sc1xpdFxzYWx1dGF0aW9ucy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaTE4blxubHNcamFcc2FsdXRhdGlvbnMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGkxOG5cbmxzXGtvXHNhbHV0YXRpb25zLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpMThuXG5sc1xwbFxzYWx1dGF0aW9ucy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaTE4blxubHNccHRcc2FsdXRhdGlvbnMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGkxOG5cbmxzXHJ1XHNhbHV0YXRpb25zLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpMThuXG5sc1xzd1xzYWx1dGF0aW9ucy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaTE4blxubHNcdGhcc2FsdXRhdGlvbnMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGkxOG5cbmxzXHRyXHNhbHV0YXRpb25zLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpMThuXG5sc1x5aVxzYWx1dGF0aW9ucy5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaTE4blxubHNcemgtY25cc2FsdXRhdGlvbnMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGkxOG5cbmxzXHpoLXR3XHNhbHV0YXRpb25zLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1xidXR0b24ucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1xkYXRhLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1xkYXRhLWpzb24uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGlvXGZyYWcueG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1xJZnJhbWVJT1Jlc3BvbnNlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGlvXElmcmFtZUlPUmVzcG9uc2UudGV4dC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1xyZWZsZWN0b3IuY2dpIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1x0ZXN0X0Jyb3dzZXJJTy5jYWNoZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1x0ZXN0X0Jyb3dzZXJJTy5mb3JtTm9kZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1x0ZXN0X0Jyb3dzZXJJTy5mcmFnLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGlvXHRlc3RfQnJvd3NlcklPLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGlvXHRlc3RfQnJvd3NlcklPLmphdmFzY3JpcHQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaW9cdGVzdF9Ccm93c2VySU8uanNvbi5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1x0ZXN0X0Jyb3dzZXJJTy5sb2FkUHJvYmxlbS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1x0ZXN0X0Jyb3dzZXJJTy5tZXRob2QuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaW9cdGVzdF9Ccm93c2VySU8udGltZW91dC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1x0ZXN0X0Jyb3dzZXJJTy51cGRhdGVOb2RlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGlvXHRlc3RfQnJvd3NlcklPX2Fib3J0Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGlvXHRlc3RfQnJvd3NlcklPX2NhY2hlRGF0YS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaW9cdGVzdF9Ccm93c2VySU9fY2FjaGVEYXRhMi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaW9cdGVzdF9Ccm93c2VySU9fZGF0YS50eHQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGlvXHRlc3RfQnJvd3NlcklPX3RocmVhZC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1x0ZXN0X0Nvb2tpZXMuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaW9cdGVzdF9JZnJhbWVJTy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1x0ZXN0X0lmcmFtZUlPLmh0bWwuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaW9cdGVzdF9JZnJhbWVJTy5ub2Zvcm0uaHRtbC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1x0ZXN0X0lmcmFtZUlPLnRleHQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaW9cdGVzdF9JZnJhbWVJTy54bWwuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaW9cdGVzdF9wb3N0UmVzcG9uc2UudHh0Ig0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1x0ZXN0X1JoaW5vSU8uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGlvXHRlc3RfU2NyaXB0U3JjSU8uaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaW9cdGltZW91dC5jZ2kiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGlvXHVwZGF0ZU5vZGUudHh0Ig0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1x1cGxvYWQuY2dpIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xpb1xpZnJhbWVwcm94eVx0ZXN0X0Jyb3dzZXJJT19pZnAuZXJyb3IuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaW9caWZyYW1lcHJveHlcdGVzdF9Ccm93c2VySU9faWZwLmZyYWcuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaW9caWZyYW1lcHJveHlcdGVzdF9Ccm93c2VySU9faWZwLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGlvXGlmcmFtZXByb3h5XHRlc3RfQnJvd3NlcklPX2lmcC5tZXRob2QuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaW9caWZyYW1lcHJveHlcdGVzdF9Ccm93c2VySU9faWZwLnRpbWVvdXQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcaW9cc2NyaXB0c3JjXFRlc3QuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGlvXHNjcmlwdHNyY1xUZXN0SnNvbnAuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGlvXHNjcmlwdHNyY1xUZXN0TXVsdGlwYXJ0LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xqc2xpbmtcbGliLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xqc2xpbmtcbGluay1hbmQtcnVuLnNoIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xqc2xpbmtccHJvZ3JhbS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcbGFuZ1x0ZXN0X2FycmF5LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xsYW5nXHRlc3RfYXNzZXJ0LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xsYW5nXHRlc3RfZGVjbGFyZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xsYW5nXHRlc3RfZGVjbGFyZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcbGFuZ1x0ZXN0X2RlY2xhcmVfYmVuY2htYXJrLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGxhbmdcdGVzdF9kZWNsYXJlX21peGlucy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xsYW5nXHRlc3RfZGVjbGFyZV9tb3JlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGxhbmdcdGVzdF9sYW5nLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xsYW5nXHRlc3Rfc3VwZXJjbGFzc19iZW5jaG1hcmsuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcbGFuZ1x0ZXN0X3R5cGUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGxmeFxtY2UuanBnIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xsZnhcdGVzdF9mYWRlcy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xsZnhcdGVzdF9sZnguaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcbGZ4XHRlc3Rfbm9zdGFydC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xsZnhcdGVzdF9yb3VuZGVkLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGxmeFx0ZXN0X3NjYWxlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGxmeFx0ZXN0X3dpcGVzLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGxmeFx0ZXN0X3dpcGVzMi5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xsb2FkZXJcMTY0MFxiaWd0ZXh0LnR4dCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcbG9hZGVyXDE2NDBcaGFuZy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xsb2FkZXJcMTY0MFxpbWcxLmpwZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcbG9hZGVyXDE2NDBcaW1nMi5qcGciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGxvYWRlclwxNjQwXGltZzMuanBnIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xsb2FkZXJcMTY0MFxpbWc0LmpwZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcbG9hZGVyXDE2NDBcaW1nNS5qcGciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXGxvYWRlclwxNjQwXG5vaGFuZy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xsb2dnaW5nXHRlc3RfTG9nZ2VyLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xtYXRoXHRlc3RfY3VydmVzLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXG1hdGhcdGVzdF9tYXRyaXguaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNccnBjXGVycm9yaW5nQ2xhc3Muc21kIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xycGNcSlNPTi5waHAiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHJwY1x0ZXN0X0pzb25SUENNZWRpYXRvci5waHAiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHJwY1x0ZXN0X0pzb25TZXJ2aWNlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHJwY1x0ZXN0X1lhaG9vU2VydmljZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xycGNcdGVzdENsYXNzLnBocCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNccnBjXHRlc3RDbGFzcy5zbWQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHN0b3JhZ2Vcc3RvcmFnZV90ZXN0LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xzdG9yYWdlXHRlc3Rfc3RvcmFnZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xzdG9yYWdlXHJlc291cmNlc1x0ZXN0Qm9vay50eHQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHN0cmluZ1x0ZXN0X0J1aWxkZXIuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHN0cmluZ1x0ZXN0X2NvbW1vbi5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcc3RyaW5nXHRlc3RfZXh0cmFzLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xzdHlsZVx0ZXN0X2Fic29sdXRlUG9zaXRpb24uaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcc3R5bGVcdGVzdF9hYnNvbHV0ZVBvc2l0aW9uU3RyaWN0Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHN0eWxlXHRlc3Rfc2l6aW5nLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHN0eWxlXHRlc3Rfc3R5bGVfY3NzX2luc2VydC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xzdHlsZVx0ZXN0X3N0eWxlX2dldEJveC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1xzdHlsZVx0ZXN0X3N0eWxlX21ldHJpY3MuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcc3R5bGVcdGVzdF9zdHlsZV9zZXRCb3guaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcc3R5bGVcdGVzdF9zdHlsZV9zaG93SGlkZURpc3BsYXlWaXNpYmxlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHVuZG9cdGVzdF9icm93c2VyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHVuZG9cdGVzdF9icm93c2VyX2Jvb2ttYXJrLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHVuZG9cdGVzdF9NYW5hZ2VyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHVuZG9cYnJvd3NlclxBcHBsaWNhdGlvblN0YXRlLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x1bmRvXGJyb3dzZXJceGhyMS54bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHVuZG9cYnJvd3Nlclx4aHIyLnhtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcdW5kb1xicm93c2VyXHhocjMueG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x1bmRvXGJyb3dzZXJceGhyNC54bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHVyaVx0ZXN0X1VyaS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcdXVpZFx0ZXN0X3V1aWQuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHZhbGlkYXRlXHRlc3RfY3JlZGl0Q2FyZC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcdmFsaWRhdGVcdGVzdF92YWxpZGF0ZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGJ1dHRvblByb3BlcnRpZXMuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxjb21ib0JveERhdGEuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxjb21ib0JveERhdGFLZXlWYWx1ZS5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGRpYWxvZ0NvbnRlbnRzLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxkb2MwLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxkb2MwLnBocCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGRvYzEuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGRvYzIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGV4dGVybmFsX3dpZGdldF9leGFtcGxlX2Zvby56aXAiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxnb29nbGVtYXBzLmFwaS5kb2pvdG9vbGtpdC50eHQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxsb2FkaW5nMS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRccmVtb3RlQ29tYm9Cb3hEYXRhLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcc2NyaXB0U2NvcGUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHNob3dQb3N0LnBocCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRhYjEuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRhYjIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfQWNjb3JkaW9uQ29udGFpbmVyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0FuaW1hdGVkUG5nLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0J1dHRvbi5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9CdXR0b24uc3ZnIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9CdXR0b25fc3RhdGljLnN2ZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfQnV0dG9uMi5zdmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0NhbGVuZGFyLmljcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfQ2hhcnQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfQ2hlY2tib3guaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfQ2xvY2suaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfQ29sb3JQYWxldHRlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0NvbWJvQm94Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0NvbWJvQm94LmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9Db250ZW50UGFuZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9Db250ZW50UGFuZV9leGVjdXRlU2NyaXB0cy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9jcmVhdGVXaWRnZXQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfY3JlYXRlV2lkZ2V0X3BhcnNlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0N1c3RvbV9XaWRnZXRfRGVidWdnaW5nLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0N1c3RvbV9XaWRnZXRfSW5saW5lLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0RhdGVQaWNrZXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfRGVidWdDb25zb2xlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X2RlZmluZVdpZGdldC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9EaWFsb2cuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfRGlhbG9nX2NyZWF0ZVdpZGdldC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9EaWFsb2cyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0RpYWxvZzMuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfRGlhbG9nUmVtb3RlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0RvbVdpZGdldC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfRHJvcGRvd25Db250YWluZXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfRHJvcGRvd25EYXRlUGlja2VyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0Ryb3Bkb3duVGltZVBpY2tlci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9GaWx0ZXJpbmdUYWJsZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9GaWx0ZXJpbmdUYWJsZV9wcm9ncmFtbWF0aWMuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfRmlzaGV5ZUxpc3QuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfRmxvYXRpbmdQYW5lLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0Zsb2F0aW5nUGFuZV9ldmVudHMuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfRmxvYXRpbmdQYW5lQ29kZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9Gb3JtLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X2Z1bmNBcmdzLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X2dldFdpZGdldHNCeUZpbHRlci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9Hb29nbGVNYXAuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfSHRtbExvYWRlci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9JbmxpbmVFZGl0Qm94Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0xheW91dC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9MYXlvdXQxOTUwLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0xheW91dENvZGUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfTGF5b3V0Q29udGFpbmVyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0xheW91dENvbnRhaW5lcl8yLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X0xheW91dENvbnRhaW5lcl8zLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X01lbnUyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X01lbnUyX0Fyb3VuZF9Qb3NpdGlvbi5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9NZW51Ml9Ob2RlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X01lbnUyX05vZGVfQ29kZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9NZW51Ml9Qb3NpdGlvbi5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9NZW51MkNvZGUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfTW9kYWxGbG9hdGluZ1BhbmUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfTW9udGhseUNhbGVuZGFyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X1BhZ2VDb250YWluZXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfUGFyc2VyX3Byb3BlcnR5c2V0Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X1Byb2dyZXNzQmFyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X1JhZGlvR3JvdXAuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfUmFkaW9Hcm91cF90YWJzLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X1JlbW90ZVBhbmUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfUmVtb3RlVGFiQ29udHJvbGxlci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9SZW1vdGVUYWJDb250cm9sbGVyX3Byb2dyYW1tYXRpYy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9SZXNpemVhYmxlVGV4dGFyZWEuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfUmVzaXplSGFuZGxlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X3NlYXJjaGlkcy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9TZWxlY3QuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfU2VsZWN0TkxTLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X1Nob3cuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfU2xpZGVyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X1NsaWRlU2hvdy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9TbGlkZVNob3cyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X1NvcnRhYmxlVGFibGUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfU3Bpbm5lci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9TcGxpdENvbnRhaW5lci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9TcGxpdENvbnRhaW5lcl8yLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X1NwbGl0Q29udGFpbmVyX3Byb2dyYW1tYXRpYy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9UYWJDb250YWluZXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfVGFiQ29udGFpbmVyX2xhenlMb2FkLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X1RhYkNvbnRhaW5lcl9ub0xheW91dC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9UYWJTdHJpY3QuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfVGFza0Jhci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9UaW1lUGlja2VyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X1RpdGxlUGFuZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9Ub2FzdGVyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X1RvZ2dsZXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfVG9vbGJhci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdGVzdF9Ub29sdGlwLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X3ZhbGlkYXRlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X1dpZGdldC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfV2lkZ2V0UGFja2FnZUxpc3QuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3Rfd2lkZ2V0c0luVGVtcGxhdGUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRlc3RfV2l6YXJkLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0X1lhaG9vTWFwLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0ZXN0UmVtb3RlVGFiQ29udHJvbGxlci5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxhY21lXF9fcGFja2FnZV9fLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcYWNtZVxCdXR0b24uanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxhY21lXFJFQURNRSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGFjbWVcUmVtb3RlUGF0aHNfdGVzdC5qcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGFjbWVcdGVzdF9FeGVjRXJyb3IuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGFjbWVcdGVzdF9SZW1vdGVBY21lQnV0dG9uLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxhY21lXHRlc3RfUmVtb3RlQWNtZUJ1dHRvbkF1dG8uaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGFjbWVcdGVzdF9SZW1vdGVQYXRocy5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxhY21lXHRlc3RfUmVtb3RlUGF0aHMuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGFjbWVcdXNlckFjdGl2ZS1jLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGFjbWVcdXNlckFjdGl2ZS1sLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGFjbWVcdXNlckFjdGl2ZS1yLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGFjbWVcdXNlci1jLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGFjbWVcdXNlci1sLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGFjbWVcdXNlclByZXNzZWQtYy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxhY21lXHVzZXJQcmVzc2VkLWwuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcYWNtZVx1c2VyUHJlc3NlZC1yLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGFjbWVcdXNlci1yLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XENoYXJ0XHRlc3RfYXJlYS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcQ2hhcnRcdGVzdF9iYXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XENoYXJ0XHRlc3RfZnJvbVNjcmlwdC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcQ2hhcnRcdGVzdF9saW5lLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxjc3NcZGVtb3MuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcZGVtb0VuZ2luZVxkZW1vUmVnaXN0cnkuanNvbiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGRlbW9FbmdpbmVcdGVzdF9kZW1vQ29udGFpbmVyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxkZW1vRW5naW5lXHRlc3RfZGVtb0l0ZW0uaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGRlbW9FbmdpbmVcdGVzdF9kZW1vTmF2aWdhdG9yLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxkZW1vRW5naW5lXHRlc3RfZGVtb1BhbmUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGRlbW9FbmdpbmVcdGVzdF9zb3VyY2VQYW5lLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxkZW1vRW5naW5lXGltYWdlc1xkb2pvRGVtb3MuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcZGVtb0VuZ2luZVxpbWFnZXNcdGVzdF90aHVtYi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxkZW1vRW5naW5lXGltYWdlc1x2aWV3RGVtby5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxkZXByZWNhdGVkXHRlc3RfQnV0dG9uX2xvdHMuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGRlcHJlY2F0ZWRcdGVzdF9CdXR0b25fbG90czIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XEVkaXRvclxFZGl0b3JUb29sYmFyTGlnaHQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XEVkaXRvclx0ZXN0X0VkaXRvci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcRWRpdG9yXHRlc3RfRWRpdG9yX2Zyb21fdGV4dGFyZWEuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XEVkaXRvclx0ZXN0X0VkaXRvcjIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XEVkaXRvclx0ZXN0X0VkaXRvcjJfcmVwbGFjZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcRWRpdG9yXHRlc3RfRWRpdG9yMl9zaGFyZWQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XEVkaXRvclx0ZXN0X0VkaXRvcjJDb2RlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxFZGl0b3JcdGVzdF9FZGl0b3IySW5zaWRlRGlhbG9nLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxFZGl0b3JcdGVzdF9FZGl0b3IySW5zaWRlRmxvYXRpbmdQYW5lLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxFZGl0b3JcdGVzdF9FZGl0b3IyVG9vbGJhci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcRWRpdG9yXHRlc3RfcmljaHRleHQuY3NzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcRWRpdG9yXHRlc3RfUmljaFRleHQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XEVkaXRvclx0ZXN0X3JpY2h0ZXh0X290aGVyLmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XEVkaXRvclx0ZXN0X1JpY2hUZXh0U3R5bGVTaGVldHMuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1wxLmpwZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1wyLmpwZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1wzLmpwZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1w0LmpwZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1w1LmpwZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1w2LmpwZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1xhbmltYXRlZHBuZ19mcmFtZXMuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXGFuaW1hdGVkcG5nX3N0YXRpYy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxpbWFnZXNcYXJyb3dTbWFsbC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxpbWFnZXNcY2hlY2suZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXGNyZWF0ZS5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxpbWFnZXNcY3JlYXRlc21hbGwuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXGN1c3RvbVRhYkxlZnQuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXGN1c3RvbVRhYlJpZ2h0LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1xkb3duLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1xkb3duc21hbGwucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXGZpc2hleWVfMS5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxpbWFnZXNcZmlzaGV5ZV8yLnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1xmaXNoZXllXzMucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXGZpc2hleWVfNC5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxpbWFnZXNcZmxhdFNjcmVlbi5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxpbWFnZXNcZm9yd2FyZC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxpbWFnZXNcZnQtaGVhZC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxpbWFnZXNcZnQtaGVhZGRvd24uZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXGZ0LWhlYWR1cC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxpbWFnZXNcZ3JhcGguZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXGxvYWRpbmcuanBnIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXG5vdGUuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXG5vdGUuc3ZnIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXG9wZW5Gb2xkZXIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXHBsdXMuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXHF1ZXN0aW9uLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1xyZWN5Y2xlYmluLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1xyZW1vdmVzbWFsbC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxpbWFnZXNccmVwbHkuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXHRhYl9sZWZ0LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1x0YWJfbGVmdF9yLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1x0YWJfbGVmdF9yX2N1cnIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXHRhYl9yaWdodC5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxpbWFnZXNcdGFiX3JpZ2h0X3IuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXHRhYl9yaWdodF9yX2N1cnIuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXFRodW1icy5kYiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1x0b29scy5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxpbWFnZXNcdHViZS5naWYiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxpbWFnZXNcdHViZVRhbGwuZ2lmIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcaW1hZ2VzXHVwLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1x1cHNtYWxsLnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XGltYWdlc1x4LmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XG5hbWVzcGFjZXNcdGVzdF9tb3JlX3dpZGdldHMuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XG5hbWVzcGFjZXNcdGVzdF9teW5zLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxuYW1lc3BhY2VzXHRlc3RfbXluc19keW5hbWljLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxuYW1lc3BhY2VzXG15bnNcbWFuaWZlc3QuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxuYW1lc3BhY2VzXG15bnNcd2lkZ2V0XGNoZWNrLmdpZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XG5hbWVzcGFjZXNcbXluc1x3aWRnZXRcQ2hlY2suanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFxuYW1lc3BhY2VzXG15bnNcd2lkZ2V0XENoZWNrQm94LmNzcyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XG5hbWVzcGFjZXNcbXluc1x3aWRnZXRcQ2hlY2tCb3guaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVcY3JlYXRlQ2hpbGQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlXGdldENoaWxkcmVuIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVxtb3ZlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVxyZW1vdmVOb2RlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVx0ZXN0X1RyZWVfMC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVx0ZXN0X1RyZWVfMS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVx0ZXN0X3RyZWVfMTAuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVcdGVzdF9UcmVlXzIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVcdGVzdF9UcmVlXzMuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVcdGVzdF9UcmVlXzQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVcdGVzdF9UcmVlXzUuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVcdGVzdF9UcmVlXzVfMS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVx0ZXN0X1RyZWVfNi5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVx0ZXN0X1RyZWVfNy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVx0ZXN0X1RyZWVfOC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVx0ZXN0X1RyZWVfOS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGJlbmNoX2xhenlDaGlsZHJlbjIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xjb3B5Lmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcY3JlYXRlX290aGVyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcZGVtby5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGRlc3Ryb3kuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xkaXNhYmxlV3JhcC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGRuZF9vdGhlci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGRuZDEuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xkbmRzZWxlY3Rvci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGRvY0ljb24xLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcZWFnZXJDcmVhdGUxLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcZWFnZXJDcmVhdGUyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcZWFnZXJDcmVhdGVDb21wYXJlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcZWRpdG9yLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcZWRpdG9yX3JwYy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGV4cGFuZExldmVsMS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGdvLnBocCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xsYXJnZWRuZC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGxhcmdlZG5kbWVudS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGxhcmdlTm9XcmFwLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcbGlua3MuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xsb2FkaW5nMS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGxvYWRpbmcyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcbG9hZGluZ0V4cGFuZEFsbC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGxvYWRpbmdQaHAuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xtYWtlVHJlZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXG1ha2VUcmVlLnBocCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xtYXJrdXBfbm9zY3JpcHQuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xtYXJrdXBfbm9zY3JpcHRfMi5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXG1hcmt1cDEuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xtYXJrdXAyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcbWFya3VwMy5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXG1lbW9yeS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXG1lbnUxLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNccHJvZ3JhbTEuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xwcm9ncmFtVHJlZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXHJlbW92ZUNsYXNzLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNccnBjLnBocCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xycGMxLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcc2VsZWN0ZWRNYXJrdXAxLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcc2VsZWN0b3IuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xzZWxlY3Rvck5vTXVsdGkuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1x0aGluLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcdHJlZVN0eWxlLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNceHRyZWVfYmVuY2guaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xpbWFnZXNcYmxhbmsucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGltYWdlc1xmaWxlLnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xpbWFnZXNcZm9sZGVyaWNvbi5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcaW1hZ2VzXEkucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGltYWdlc1xMLnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xpbWFnZXNcTElDRU5TRSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xpbWFnZXNcTG1pbnVzLnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xpbWFnZXNcTHBsdXMucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGltYWdlc1xuZXcucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGltYWdlc1xvcGVuZm9sZGVyaWNvbi5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcaW1hZ2VzXHBzcGJyd3NlLmpiZiINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xpbWFnZXNcVC5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcaW1hZ2VzXFRtaW51cy5wbmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcaW1hZ2VzXFRwbHVzLnBuZyINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xsb2NhbFxjbG9uZSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xsb2NhbFxjcmVhdGVDaGlsZCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xsb2NhbFxkZXN0cm95Q2hpbGQiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNcbG9jYWxcZGV0YWNoIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGxvY2FsXGVkaXRMYWJlbEZpbmlzaENhbmNlbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1xsb2NhbFxlZGl0TGFiZWxTYXZlIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGxvY2FsXGVkaXRMYWJlbFN0YXJ0Ig0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGxvY2FsXGdldENoaWxkcmVuIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiTm9uZSINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x3aWRnZXRcdHJlZVYzXGxvY2FsXG1vdmUiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJOb25lIg0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNceHRyZWVcTElDRU5TRSINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIk5vbmUiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNcd2lkZ2V0XHRyZWVWM1x4dHJlZVx4dHJlZS5jc3MiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHdpZGdldFx0cmVlVjNceHRyZWVceHRyZWUuanMiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHhkb21haW5cZG9jMC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4ZG9tYWluXHRlc3RfZm9yY2VYRG9tYWluTG9jYWwuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNceGRvbWFpblx0ZXN0X3JlbW90ZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4ZG9tYWluXHRlc3RfcmVtb3RlRGVsYXllZC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4ZG9tYWluXHRlc3RfcmVtb3RlRmFpbC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4ZG9tYWluXHRlc3RfcmVtb3RlTG9jYWxNaXguaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNceGRvbWFpblx0ZXN0X3hkb21haW5Ecm9wZG93bkRhdGVQaWNrZXIuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNceGRvbWFpblx0ZXN0X3hkb21haW5GaXNoZXllTGlzdC5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4ZG9tYWluXHRlc3RfeGRvbWFpblNpbXBsZURyb3Bkb3duRGF0ZVBpY2tlci5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4ZG9tYWluXHRlc3RfeGRvbWFpblRvb2x0aXAuaHRtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNceGRvbWFpblxicm93c2VyXHhocjEueG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4ZG9tYWluXGJyb3dzZXJceGhyMi54bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHhkb21haW5cYnJvd3Nlclx4aHIzLnhtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNceGRvbWFpblxicm93c2VyXHhocjQueG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4ZG9tYWluXGltYWdlc1xmaXNoZXllXzEucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4ZG9tYWluXGltYWdlc1xmaXNoZXllXzIucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4ZG9tYWluXGltYWdlc1xmaXNoZXllXzMucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4ZG9tYWluXGltYWdlc1xmaXNoZXllXzQucG5nIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4bWxcZnVsbC1wYWdlLnhzbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNceG1sXGhlbGxvLXdvcmxkLnhtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNceG1sXG5hdi10cmVlLnhzbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gImpzXGRvam9cdGVzdHNceG1sXHBsYWNlaG9sZGVyLmh0bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHhtbFxzaW1wbGUueHNsIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4bWxcc2l0ZS54bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHhtbFx0ZXN0X0VDTUFfRTRYLmpzIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4bWxcdGVzdF9wYXJzZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4bWxcdGVzdF9zdmdTY29wZS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAianNcZG9qb1x0ZXN0c1x4bWxcdGVzdF9zdmdTY29wZS5zdmciDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJqc1xkb2pvXHRlc3RzXHhtbFx0ZXN0X1hzbFRyYW5zZm9ybS5odG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiUmVzb3VyY2VzXEFwcEJhc2UueG1sIg0KKyAgICAgICAgICAgICAgICAgICAgQnVpbGRBY3Rpb24gPSAiQ29udGVudCINCisgICAgICAgICAgICAgICAgLz4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisgICAgICAgICAgICAgICAgICAgIFJlbFBhdGggPSAiUmVzb3VyY2VzXEFwcENvbmZpZy54bWwiDQorICAgICAgICAgICAgICAgICAgICBCdWlsZEFjdGlvbiA9ICJDb250ZW50Ig0KKyAgICAgICAgICAgICAgICAvPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAgICAgICAgICAgICAgICAgUmVsUGF0aCA9ICJSZXNvdXJjZXNcQXBwRmllbGRzLnhtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlJlc291cmNlc1xDYXRhbG9nLnhtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxQYXRoID0gIlJlc291cmNlc1xRdWVyaWVzLnhtbCINCisgICAgICAgICAgICAgICAgICAgIEJ1aWxkQWN0aW9uID0gIkNvbnRlbnQiDQorICAgICAgICAgICAgICAgIC8+DQorICAgICAgICAgICAgPC9JbmNsdWRlPg0KKyAgICAgICAgPC9GaWxlcz4NCisgICAgPC9DU0hBUlA+DQorPC9WaXN1YWxTdHVkaW9Qcm9qZWN0Pg0KKw0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL1dlYi5jc3Byb2oud2ViaW5mbyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL1dlYi5jc3Byb2oud2ViaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Zjc3MTU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvV2ViLmNzcHJvai53ZWJpbmZvCkBAIC0wLDAgKzEsNCBAQAorPFZpc3VhbFN0dWRpb1VOQ1dlYj4NCisgICAgPFdlYiBVUkxQYXRoID0gImh0dHA6Ly9sb2NhbGhvc3QvUGhvbmVCb29rL1dlYi5jc3Byb2oiIC8+DQorPC9WaXN1YWxTdHVkaW9VTkNXZWI+DQorDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvZGVmYXVsdC5odG0gYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9kZWZhdWx0Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNWExYTIyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvZGVmYXVsdC5odG0KQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPg0KKzxodG1sPg0KKwk8aGVhZD4NCisJCTxNRVRBIEhUVFAtRVFVSVY9IlJlZnJlc2giIENPTlRFTlQ9IjA7VVJMPS4vRm9ybXMvRGlyZWN0b3J5LmFzcHgiPg0KKwk8L2hlYWQ+DQorCTxib2R5Pg0KKwkJPHA+TG9hZGluZy4uLjwvcD4NCisJPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9wcm92aWRlcnMuY29uZmlnIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvcHJvdmlkZXJzLmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMGE1MjQxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvcHJvdmlkZXJzLmNvbmZpZwpAQCAtMCwwICsxLDMwNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCis8cHJvdmlkZXJzIA0KK3htbG5zPSJodHRwOi8vaWJhdGlzLmFwYWNoZS5vcmcvcHJvdmlkZXJzIiANCit4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4NCisNCis8Y2xlYXIvPg0KKzxwcm92aWRlciANCisJICBuYW1lPSJzcWxTZXJ2ZXIxLjAiIA0KKwkgIGRlc2NyaXB0aW9uPSJNaWNyb3NvZnQgU1FMIFNlcnZlciwgcHJvdmlkZXIgVjEuMC4zMzAwLjAgaW4gZnJhbWV3b3JrIC5ORVQgVjEuMCIgDQorCSAgZW5hYmxlZD0iZmFsc2UiIA0KKwkgIGFzc2VtYmx5TmFtZT0iU3lzdGVtLkRhdGEsIFZlcnNpb249MS4wLjMzMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiBjb25uZWN0aW9uQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb25uZWN0aW9uIiANCisJICBjb21tYW5kQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb21tYW5kIiANCisJICBwYXJhbWV0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbFBhcmFtZXRlciIgDQorCSAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbERiVHlwZSIgDQorCSAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9IlNxbERiVHlwZSIgDQorCSAgZGF0YUFkYXB0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbERhdGFBZGFwdGVyIiANCisJICBjb21tYW5kQnVpbGRlckNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsQ29tbWFuZEJ1aWxkZXIiIA0KKwkgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJmYWxzZSIgDQorCSAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9InRydWUiIA0KKwkgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJ0cnVlIiANCisJICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgICAgYWxsb3dNQVJTPSJmYWxzZSINCisgIC8+DQorPHByb3ZpZGVyIA0KKwkgIG5hbWU9InNxbFNlcnZlcjEuMSIgDQorCSAgZGVzY3JpcHRpb249Ik1pY3Jvc29mdCBTUUwgU2VydmVyLCBwcm92aWRlciBWMS4wLjUwMDAuMCBpbiBmcmFtZXdvcmsgLk5FVCBWMS4xIiANCisJICBlbmFibGVkPSJ0cnVlIg0KKwkgIGRlZmF1bHQ9InRydWUiIA0KKwkgIGFzc2VtYmx5TmFtZT0iU3lzdGVtLkRhdGEsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiANCisJICBjb25uZWN0aW9uQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb25uZWN0aW9uIiANCisJICBjb21tYW5kQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb21tYW5kIiANCisJICBwYXJhbWV0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbFBhcmFtZXRlciIgDQorCSAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbERiVHlwZSIgDQorCSAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9IlNxbERiVHlwZSIgDQorCSAgZGF0YUFkYXB0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbERhdGFBZGFwdGVyIiANCisJICBjb21tYW5kQnVpbGRlckNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsQ29tbWFuZEJ1aWxkZXIiIA0KKwkgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJmYWxzZSIgDQorCSAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9InRydWUiIA0KKwkgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJ0cnVlIiANCisJICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgICAgYWxsb3dNQVJTPSJmYWxzZSINCisgIC8+DQorPHByb3ZpZGVyDQorICAgIG5hbWU9InNxbFNlcnZlcjIuMCINCisgICAgZW5hYmxlZD0iZmFsc2UiDQorICAgIGRlc2NyaXB0aW9uPSJNaWNyb3NvZnQgU1FMIFNlcnZlciwgcHJvdmlkZXIgVjIuMC4wLjAgaW4gZnJhbWV3b3JrIC5ORVQgVjIuMCIgDQorICAgIGFzc2VtYmx5TmFtZT0iU3lzdGVtLkRhdGEsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiANCisgICAgY29ubmVjdGlvbkNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsQ29ubmVjdGlvbiIgDQorICAgIGNvbW1hbmRDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbENvbW1hbmQiDQorICAgIHBhcmFtZXRlckNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsUGFyYW1ldGVyIg0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iU3lzdGVtLkRhdGEuU3FsRGJUeXBlIg0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iU3FsRGJUeXBlIg0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsRGF0YUFkYXB0ZXIiDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IiBTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsQ29tbWFuZEJ1aWxkZXIiDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzID0gImZhbHNlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbCA9ICJ0cnVlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlciA9ICJ0cnVlIiANCisgICAgcGFyYW1ldGVyUHJlZml4PSJAIg0KKyAgICBhbGxvd01BUlM9ImZhbHNlIg0KKyAgICAvPg0KKzxwcm92aWRlciBuYW1lPSJPbGVEYjEuMSIgDQorCSAgZGVzY3JpcHRpb249Ik9sZURiLCBwcm92aWRlciBWMS4wLjUwMDAuMCBpbiBmcmFtZXdvcmsgLk5FVCBWMS4xIiANCisJICBlbmFibGVkPSJ0cnVlIg0KKwkgIGFzc2VtYmx5TmFtZT0iU3lzdGVtLkRhdGEsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiANCisgICAgY29ubmVjdGlvbkNsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYkNvbm5lY3Rpb24iIA0KKwkgIGNvbW1hbmRDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJDb21tYW5kIiANCisJICBwYXJhbWV0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJQYXJhbWV0ZXIiIA0KKwkgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYlR5cGUiIA0KKwkgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJPbGVEYlR5cGUiIA0KKwkgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiRGF0YUFkYXB0ZXIiIA0KKwkgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiQ29tbWFuZEJ1aWxkZXIiIA0KKwkgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJ0cnVlIiANCisJICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0iZmFsc2UiIA0KKwkgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJmYWxzZSIgDQorCSAgcGFyYW1ldGVyUHJlZml4PSIiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiICAgIA0KKyAgICAvPg0KKyAgPHByb3ZpZGVyIG5hbWU9Ik9sZURiMi4wIiANCisgICAgZGVzY3JpcHRpb249Ik9sZURiLCBwcm92aWRlciBWMi4wLjAuMCBpbiBmcmFtZXdvcmsgLk5FVCBWMiIgDQorICAgIGVuYWJsZWQ9ImZhbHNlIg0KKyAgICBhc3NlbWJseU5hbWU9IlN5c3RlbS5EYXRhLCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSIgDQorICAgIGNvbm5lY3Rpb25DbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJDb25uZWN0aW9uIiANCisgICAgY29tbWFuZENsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYkNvbW1hbmQiIA0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJUeXBlIiANCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9Ik9sZURiVHlwZSIgDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiRGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYkNvbW1hbmRCdWlsZGVyIiANCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9InRydWUiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0iZmFsc2UiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0iZmFsc2UiIA0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IiINCisgICAgYWxsb3dNQVJTPSJmYWxzZSINCisgICAgLz4gIA0KKyAgPHByb3ZpZGVyIA0KKyAgICBuYW1lPSJPZGJjMS4xIiANCisgICAgZGVzY3JpcHRpb249Ik9kYmMsIHByb3ZpZGVyIFYxLjAuNTAwMC4wIGluIGZyYW1ld29yayAuTkVUIFYxLjEiIA0KKyAgICBlbmFibGVkPSJ0cnVlIiANCisgICAgYXNzZW1ibHlOYW1lPSJTeXN0ZW0uRGF0YSwgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiIA0KKyAgICBjb25uZWN0aW9uQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY0Nvbm5lY3Rpb24iIA0KKyAgICBjb21tYW5kQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY0NvbW1hbmQiIA0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjUGFyYW1ldGVyIiANCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY1R5cGUiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iT2RiY1R5cGUiIA0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PZGJjLk9kYmNEYXRhQWRhcHRlciIgDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY0NvbW1hbmRCdWlsZGVyIiANCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9InRydWUiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0iZmFsc2UiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0iZmFsc2UiIA0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiICAgIA0KKyAgICAvPg0KKyAgPHByb3ZpZGVyIA0KKyAgICBuYW1lPSJPZGJjMi4wIiANCisgICAgZGVzY3JpcHRpb249Ik9kYmMsIHByb3ZpZGVyIFYyLjAuMC4wIGluIGZyYW1ld29yayAuTkVUIFYyIiANCisgICAgZW5hYmxlZD0iZmFsc2UiIA0KKyAgICBhc3NlbWJseU5hbWU9IlN5c3RlbS5EYXRhLCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSIgDQorICAgIGNvbm5lY3Rpb25DbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjQ29ubmVjdGlvbiIgDQorICAgIGNvbW1hbmRDbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjQ29tbWFuZCIgDQorICAgIHBhcmFtZXRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PZGJjLk9kYmNQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjVHlwZSIgDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJPZGJjVHlwZSIgDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY0RhdGFBZGFwdGVyIiANCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjQ29tbWFuZEJ1aWxkZXIiIA0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0idHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJmYWxzZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iQCINCisgICAgYWxsb3dNQVJTPSJmYWxzZSIgICAgDQorICAvPiAgDQorICA8cHJvdmlkZXIgDQorICAgIG5hbWU9Im9yYWNsZTkuMiIgDQorICAgIGRlc2NyaXB0aW9uPSJPcmFjbGUsIE9yYWNsZSBwcm92aWRlciBWOS4yLjAuNDAxIiANCisgICAgZW5hYmxlZD0iZmFsc2UiIA0KKyAgICBhc3NlbWJseU5hbWU9Ik9yYWNsZS5EYXRhQWNjZXNzLCBWZXJzaW9uPTkuMi4wLjQwMSwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj04OWI0ODNmNDI5YzQ3MzQyIiBjb25uZWN0aW9uQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVDb25uZWN0aW9uIiANCisgICAgY29tbWFuZENsYXNzPSJPcmFjbGUuRGF0YUFjY2Vzcy5DbGllbnQuT3JhY2xlQ29tbWFuZCIgDQorICAgIHBhcmFtZXRlckNsYXNzPSJPcmFjbGUuRGF0YUFjY2Vzcy5DbGllbnQuT3JhY2xlUGFyYW1ldGVyIiANCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVEYlR5cGUiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iT3JhY2xlRGJUeXBlIiANCisgICAgZGF0YUFkYXB0ZXJDbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZURhdGFBZGFwdGVyIiANCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZUNvbW1hbmRCdWlsZGVyIiANCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9ImZhbHNlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0idHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJmYWxzZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iOiIgDQorICAgIHVzZURlcml2ZVBhcmFtZXRlcnM9ImZhbHNlIg0KKyAgICBhbGxvd01BUlM9ImZhbHNlIiAgICANCisgIC8+DQorICA8cHJvdmlkZXIgDQorICAgIG5hbWU9Im9yYWNsZTEwLjEiIA0KKyAgICBkZXNjcmlwdGlvbj0iT3JhY2xlLCBvcmFjbGUgcHJvdmlkZXIgVjEwLjEuMC4zMDEiDQorICAgIGVuYWJsZWQ9ImZhbHNlIiANCisgICAgYXNzZW1ibHlOYW1lPSJPcmFjbGUuRGF0YUFjY2VzcywgVmVyc2lvbj0xMC4xLjAuMzAxLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTg5YjQ4M2Y0MjljNDczNDIiIGNvbm5lY3Rpb25DbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZUNvbm5lY3Rpb24iIA0KKyAgICBjb21tYW5kQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVDb21tYW5kIiANCisgICAgcGFyYW1ldGVyQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZURiVHlwZSIgDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJPcmFjbGVEYlR5cGUiIA0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJPcmFjbGUuRGF0YUFjY2Vzcy5DbGllbnQuT3JhY2xlRGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJPcmFjbGUuRGF0YUFjY2Vzcy5DbGllbnQuT3JhY2xlQ29tbWFuZEJ1aWxkZXIiIA0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0idHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0idHJ1ZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iOiIgDQorICAgIHVzZURlcml2ZVBhcmFtZXRlcnM9ImZhbHNlIg0KKyAgICBhbGxvd01BUlM9ImZhbHNlIiAgICANCisgIC8+DQorICA8cHJvdmlkZXIgDQorICAgIG5hbWU9Im9yYWNsZUNsaWVudDEuMCIgDQorICAgIGRlc2NyaXB0aW9uPSJPcmFjbGUsIE1pY3Jvc29mdCBwcm92aWRlciBWMS4wLjUwMDAuMCIgDQorICAgIGVuYWJsZWQ9ImZhbHNlIiANCisgICAgYXNzZW1ibHlOYW1lPSJTeXN0ZW0uRGF0YS5PcmFjbGVDbGllbnQsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiBjb25uZWN0aW9uQ2xhc3M9IlN5c3RlbS5EYXRhLk9yYWNsZUNsaWVudC5PcmFjbGVDb25uZWN0aW9uIiANCisgICAgY29tbWFuZENsYXNzPSJTeXN0ZW0uRGF0YS5PcmFjbGVDbGllbnQuT3JhY2xlQ29tbWFuZCIgDQorICAgIHBhcmFtZXRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PcmFjbGVDbGllbnQuT3JhY2xlUGFyYW1ldGVyIiANCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IlN5c3RlbS5EYXRhLk9yYWNsZUNsaWVudC5PcmFjbGVUeXBlIiANCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9Ik9yYWNsZVR5cGUiIA0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PcmFjbGVDbGllbnQuT3JhY2xlRGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PcmFjbGVDbGllbnQuT3JhY2xlQ29tbWFuZEJ1aWxkZXIiIA0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0iZmFsc2UiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0idHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJmYWxzZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iOiINCisgICAgYWxsb3dNQVJTPSJmYWxzZSIgICAgDQorICAvPg0KKyAgPHByb3ZpZGVyIA0KKyAgICBuYW1lPSJCeXRlRngiIA0KKyAgICBkZXNjcmlwdGlvbj0iTXlTUUwsIEJ5dGVGeCBwcm92aWRlciBWMC43LjYuMTUwNzMiIA0KKyAgICBlbmFibGVkPSJmYWxzZSIgDQorICAgIGFzc2VtYmx5TmFtZT0iQnl0ZUZYLk15U3FsQ2xpZW50LCBWZXJzaW9uPTAuNy42LjE1MDczLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWYyZmVmNmZlZDE3MzJmYzEiIGNvbm5lY3Rpb25DbGFzcz0iQnl0ZUZYLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxDb25uZWN0aW9uIiANCisgICAgY29tbWFuZENsYXNzPSJCeXRlRlguRGF0YS5NeVNxbENsaWVudC5NeVNxbENvbW1hbmQiIA0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iQnl0ZUZYLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iQnl0ZUZYLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxEYlR5cGUiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iTXlTcWxEYlR5cGUiIA0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJCeXRlRlguRGF0YS5NeVNxbENsaWVudC5NeVNxbERhdGFBZGFwdGVyIiANCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iQnl0ZUZYLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxDb21tYW5kQnVpbGRlciIgDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9InRydWUiIA0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiICAgIA0KKyAgLz4NCisgIDxwcm92aWRlciANCisgICAgbmFtZT0iTXlTcWwiIA0KKyAgICBkZXNjcmlwdGlvbj0iTXlTUUwsIE15U1FMIHByb3ZpZGVyIDEuMC43LjMwMDcyIiANCisgICAgZW5hYmxlZD0idHJ1ZSIgDQorICAgIGFzc2VtYmx5TmFtZT0iTXlTcWwuRGF0YSwgVmVyc2lvbj0xLjAuNy4zMDA3MiwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1jNTY4N2ZjODg5NjljNDRkIiBjb25uZWN0aW9uQ2xhc3M9Ik15U3FsLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxDb25uZWN0aW9uIiANCisgICAgY29tbWFuZENsYXNzPSJNeVNxbC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsQ29tbWFuZCIgDQorICAgIHBhcmFtZXRlckNsYXNzPSJNeVNxbC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsUGFyYW1ldGVyIiANCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9Ik15U3FsLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxEYlR5cGUiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iTXlTcWxEYlR5cGUiIA0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJNeVNxbC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsRGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJNeVNxbC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsQ29tbWFuZEJ1aWxkZXIiIA0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0iZmFsc2UiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0idHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJ0cnVlIiANCisgICAgcGFyYW1ldGVyUHJlZml4PSI/Ig0KKyAgICBhbGxvd01BUlM9ImZhbHNlIiAgICANCisgIC8+DQorICA8cHJvdmlkZXIgbmFtZT0iU1FMaXRlMyINCisgICAgZGVzY3JpcHRpb249IlNRTGl0ZSwgU1FMaXRlLk5FVCBwcm92aWRlciBWMC4yMS4xODY5LjM3OTQiDQorICAgIGVuYWJsZWQ9ImZhbHNlIg0KKyAgICBhc3NlbWJseU5hbWU9IlNRTGl0ZS5ORVQsIFZlcnNpb249MC4yMS4xODY5LjM3OTQsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YzI3M2JkMzc1ZTY5NWY5YyIgDQorICAgIGNvbm5lY3Rpb25DbGFzcz0iRmluaXNhci5TUUxpdGUuU1FMaXRlQ29ubmVjdGlvbiINCisgICAgY29tbWFuZENsYXNzPSJGaW5pc2FyLlNRTGl0ZS5TUUxpdGVDb21tYW5kIg0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iRmluaXNhci5TUUxpdGUuU1FMaXRlUGFyYW1ldGVyIg0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iU3lzdGVtLkRhdGEuRGJUeXBlLCBTeXN0ZW0uRGF0YSINCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9IkRiVHlwZSINCisgICAgZGF0YUFkYXB0ZXJDbGFzcz0iRmluaXNhci5TUUxpdGUuU1FMaXRlRGF0YUFkYXB0ZXIiDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IkZpbmlzYXIuU1FMaXRlLlNRTGl0ZUNvbW1hbmRCdWlsZGVyIg0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0iZmFsc2UiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0idHJ1ZSINCisgICAgcGFyYW1ldGVyUHJlZml4PSJAIg0KKyAgICBzZXREYlBhcmFtZXRlclByZWNpc2lvbj0iZmFsc2UiDQorICAgIHNldERiUGFyYW1ldGVyU2NhbGU9ImZhbHNlIg0KKyAgICBhbGxvd01BUlM9ImZhbHNlIiAgICANCisgIC8+DQorICA8cHJvdmlkZXINCisgICAgbmFtZT0iRmlyZWJpcmQxLjciIA0KKyAgICBkZXNjcmlwdGlvbj0iRmlyZWJpcmQsIEZpcmViaXJkIFNRTCAuTkVUIHByb3ZpZGVyIFYxLjcuMC4zMzIwMCIgDQorICAgIGVuYWJsZWQ9ImZhbHNlIiANCisgICAgYXNzZW1ibHlOYW1lPSJGaXJlYmlyZFNxbC5EYXRhLkZpcmViaXJkLCBWZXJzaW9uPTEuNy4wLjMzMjAwLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWZhODQzZDE4MDI5NDM2OWQiIGNvbm5lY3Rpb25DbGFzcz0iRmlyZWJpcmRTcWwuRGF0YS5GaXJlYmlyZC5GYkNvbm5lY3Rpb24iIA0KKyAgICBjb21tYW5kQ2xhc3M9IkZpcmViaXJkU3FsLkRhdGEuRmlyZWJpcmQuRmJDb21tYW5kIiANCisgICAgcGFyYW1ldGVyQ2xhc3M9IkZpcmViaXJkU3FsLkRhdGEuRmlyZWJpcmQuRmJQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iRmlyZWJpcmRTcWwuRGF0YS5GaXJlYmlyZC5GYkRiVHlwZSIgDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJGYkRiVHlwZSIgDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IkZpcmViaXJkU3FsLkRhdGEuRmlyZWJpcmQuRmJEYXRhQWRhcHRlciIgDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IkZpcmViaXJkU3FsLkRhdGEuRmlyZWJpcmQuRmJDb21tYW5kQnVpbGRlciIgDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9InRydWUiIA0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiICAgIA0KKyAgLz4NCisgIDxwcm92aWRlcg0KKyAgICBuYW1lPSJQb3N0Z3JlU3FsMC45OS4xLjAiIA0KKyAgICBkZXNjcmlwdGlvbj0iUG9zdGdyZVNxbCwgTnBnc3FsIHByb3ZpZGVyIFYwLjk5LjEuMCIgDQorICAgIGVuYWJsZWQ9ImZhbHNlIiANCisgICAgYXNzZW1ibHlOYW1lPSJOcGdzcWwsIFZlcnNpb249MC45OS4xLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49NWQ4YjkwZDUyZjQ2ZmRhNyIgDQorICAgIGNvbm5lY3Rpb25DbGFzcz0iTnBnc3FsLk5wZ3NxbENvbm5lY3Rpb24iIA0KKyAgICBjb21tYW5kQ2xhc3M9Ik5wZ3NxbC5OcGdzcWxDb21tYW5kIiANCisgICAgcGFyYW1ldGVyQ2xhc3M9Ik5wZ3NxbC5OcGdzcWxQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iTnBnc3FsVHlwZXMuTnBnc3FsRGJUeXBlIiANCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9Ik5wZ3NxbERiVHlwZSIgDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9Ik5wZ3NxbC5OcGdzcWxEYXRhQWRhcHRlciIgDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9Ik5wZ3NxbC5OcGdzcWxDb21tYW5kQnVpbGRlciIgDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9InRydWUiIA0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IjoiDQorICAgIGFsbG93TUFSUz0idHJ1ZSIgICAgDQorICAvPgkNCisgIDxwcm92aWRlciANCisgICAgbmFtZT0iaURiMi4xMCIgDQorICAgIGRlc2NyaXB0aW9uPSJJQk0gREIyIFByb3ZpZGVyLCBWIDEwLjAiIA0KKyAgICBlbmFibGVkPSJmYWxzZSIgDQorICAgIGFzc2VtYmx5TmFtZT0iSUJNLkRhdGEuREIyLmlTZXJpZXMsIFZlcnNpb249MTAuMC4wLjAsQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj05Y2RiMmViZmIxZjkzYTI2LCBDdXN0b209bnVsbCIgY29ubmVjdGlvbkNsYXNzPSJJQk0uRGF0YS5EQjIuaVNlcmllcy5pREIyQ29ubmVjdGlvbiIgDQorICAgIGNvbW1hbmRDbGFzcz0iSUJNLkRhdGEuREIyLmlTZXJpZXMuaURCMkNvbW1hbmQiIA0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iSUJNLkRhdGEuREIyLmlTZXJpZXMuaURCMlBhcmFtZXRlciIgDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJJQk0uRGF0YS5EQjIuaVNlcmllcy5pREIyRGJUeXBlIiANCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9ImlEQjJEYlR5cGUiIA0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJJQk0uRGF0YS5EQjIuaVNlcmllcy5pREIyRGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJJQk0uRGF0YS5EQjIuaVNlcmllcy5pREIyQ29tbWFuZEJ1aWxkZXIiIA0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0idHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJmYWxzZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iIg0KKyAgICBhbGxvd01BUlM9ImZhbHNlIiAgICANCisgIC8+DQorICA8cHJvdmlkZXIgDQorICAgIG5hbWU9IkluZm9ybWl4IiANCisgICAgZGVzY3JpcHRpb249IkluZm9ybWl4IE5FVCBQcm92aWRlciwgMi44MS4wLjAiIA0KKyAgICBlbmFibGVkPSJmYWxzZSIgDQorICAgIGFzc2VtYmx5TmFtZT0iSUJNLkRhdGEuSW5mb3JtaXgsIFZlcnNpb249Mi44MS4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2MzMDdiOTFhYTEzZDIwOCIgDQorICAgIGNvbm5lY3Rpb25DbGFzcz0iSUJNLkRhdGEuSW5mb3JtaXguSWZ4Q29ubmVjdGlvbiIgDQorICAgIGNvbW1hbmRDbGFzcz0iSUJNLkRhdGEuSW5mb3JtaXguSWZ4Q29tbWFuZCIgDQorICAgIHBhcmFtZXRlckNsYXNzPSJJQk0uRGF0YS5JbmZvcm1peC5JZnhQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iSUJNLkRhdGEuSW5mb3JtaXguSWZ4VHlwZSIgDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJJZnhUeXBlIiANCisgICAgZGF0YUFkYXB0ZXJDbGFzcz0iSUJNLkRhdGEuSW5mb3JtaXguSWZ4RGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJJQk0uRGF0YS5JbmZvcm1peC5JZnhDb21tYW5kQnVpbGRlciIgDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzID0gInRydWUiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbCA9ICJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyID0gImZhbHNlIiANCisgICAgdXNlRGVyaXZlUGFyYW1ldGVycz0iZmFsc2UiIA0KKyAgICBhbGxvd01BUlM9ImZhbHNlIiAgICANCisJLz4NCis8L3Byb3ZpZGVycz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL1dlYi9zcWxtYXAuY29uZmlnIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvc3FsbWFwLmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTg2MjM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvc3FsbWFwLmNvbmZpZwpAQCAtMCwwICsxLDIwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KKzxzcWxNYXBDb25maWcgeG1sbnM9Imh0dHA6Ly9pYmF0aXMuYXBhY2hlLm9yZy9kYXRhTWFwcGVyIiB4bWxuczp4c2k9IiBodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgPg0KKw0KKyAgICA8cHJvcGVydGllcyByZXNvdXJjZT0ic3FsbWFwLmNvbmZpZy54bWwiLz4NCisgICAgDQorCTxzZXR0aW5ncz4NCisJCTxzZXR0aW5nIHVzZVN0YXRlbWVudE5hbWVzcGFjZXM9ImZhbHNlIi8+DQorCQk8c2V0dGluZyBjYWNoZU1vZGVsc0VuYWJsZWQ9InRydWUiLz4NCisJPC9zZXR0aW5ncz4NCisJDQorCTxkYXRhYmFzZT4JDQorCQk8cHJvdmlkZXIgbmFtZT0iJHtwcm92aWRlcn0iLz4NCisJCTxkYXRhU291cmNlIG5hbWU9ImRlZmF1bHQiICBjb25uZWN0aW9uU3RyaW5nPSIke2RldmVsb3BtZW50fSIvPg0KKwk8L2RhdGFiYXNlPg0KKw0KKwk8c3FsTWFwcz4NCisJCTxzcWxNYXAgcmVzb3VyY2U9IiR7cm9vdH1SZXNvdXJjZXMvUXVlcmllcy54bWwiLz4NCisJPC9zcWxNYXBzPg0KKw0KKzwvc3FsTWFwQ29uZmlnPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL3NxbG1hcC5jb25maWcueG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9XZWIvc3FsbWFwLmNvbmZpZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDk0NmYxOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2svV2ViL3NxbG1hcC5jb25maWcueG1sCkBAIC0wLDAgKzEsNyBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+IA0KKzxzZXR0aW5ncz4NCisgICAgPGFkZCBrZXk9InJvb3QiIHZhbHVlPSIuLyIgLz4NCisgICAgPGFkZCBrZXk9InByb3ZpZGVyIiB2YWx1ZT0iTXlTcWwiIC8+DQorICAgIDxhZGQga2V5PSJkZXZlbG9wbWVudCIgdmFsdWU9Ikhvc3Q9Q0xJRkZPUkQ7RGF0YWJhc2U9cGhvbmVib29rO1VzZXJuYW1lPXBob25lYm9va0FwcDtQYXNzd29yZD1wMW5IMzRkIiAvPg0KKyAgICA8YWRkIGtleT0icHJvZHVjdGlvbiIgdmFsdWU9Ikhvc3Q9emlwcHk7RGF0YWJhc2U9cGhvbmVib29rO1VzZXJuYW1lPXBob25lYm9va0FwcDtQYXNzd29yZD1wMW5IMzRkIiAvPg0KKzwvc2V0dGluZ3M+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9wcmVidWlsZC5iYXQgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rL3ByZWJ1aWxkLmJhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTZlODlkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vay9wcmVidWlsZC5iYXQKQEAgLTAsMCArMSBAQAorWENPUFkgJTFUZXN0XFJlc291cmNlc1wqLiogJTFXZWJcUmVzb3VyY2VzXCouKiAvTSAvWQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL1Bob25lQm9vazIuY3Nwcm9qIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvUGhvbmVCb29rMi5jc3Byb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGE4MTg3YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL1Bob25lQm9vazIuY3Nwcm9qCkBAIC0wLDAgKzEsNjIgQEAKK++7vzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQorICA8UHJvcGVydHlHcm91cD4NCisgICAgPENvbmZpZ3VyYXRpb24gQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbiknID09ICcnICI+RGVidWc8L0NvbmZpZ3VyYXRpb24+DQorICAgIDxQbGF0Zm9ybSBDb25kaXRpb249IiAnJChQbGF0Zm9ybSknID09ICcnICI+QW55Q1BVPC9QbGF0Zm9ybT4NCisgICAgPFByb2R1Y3RWZXJzaW9uPjguMC41MDcyNzwvUHJvZHVjdFZlcnNpb24+DQorICAgIDxTY2hlbWFWZXJzaW9uPjIuMDwvU2NoZW1hVmVyc2lvbj4NCisgICAgPFByb2plY3RHdWlkPntFQjFGMjUyRS0wQUE1LTQ0ODUtOTY2RC05RDdBQUMxOEFDNUV9PC9Qcm9qZWN0R3VpZD4NCisgICAgPE91dHB1dFR5cGU+TGlicmFyeTwvT3V0cHV0VHlwZT4NCisgICAgPEFwcERlc2lnbmVyRm9sZGVyPlByb3BlcnRpZXM8L0FwcERlc2lnbmVyRm9sZGVyPg0KKyAgICA8Um9vdE5hbWVzcGFjZT5QaG9uZUJvb2syPC9Sb290TmFtZXNwYWNlPg0KKyAgICA8QXNzZW1ibHlOYW1lPlBob25lQm9vazI8L0Fzc2VtYmx5TmFtZT4NCisgIDwvUHJvcGVydHlHcm91cD4NCisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnRGVidWd8QW55Q1BVJyAiPg0KKyAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4NCisgICAgPERlYnVnVHlwZT5mdWxsPC9EZWJ1Z1R5cGU+DQorICAgIDxPcHRpbWl6ZT5mYWxzZTwvT3B0aW1pemU+DQorICAgIDxPdXRwdXRQYXRoPmJpblxEZWJ1Z1w8L091dHB1dFBhdGg+DQorICAgIDxEZWZpbmVDb25zdGFudHM+REVCVUc7VFJBQ0U8L0RlZmluZUNvbnN0YW50cz4NCisgICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+DQorICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPg0KKyAgPC9Qcm9wZXJ0eUdyb3VwPg0KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNlfEFueUNQVScgIj4NCisgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+DQorICAgIDxPcHRpbWl6ZT50cnVlPC9PcHRpbWl6ZT4NCisgICAgPE91dHB1dFBhdGg+YmluXFJlbGVhc2VcPC9PdXRwdXRQYXRoPg0KKyAgICA8RGVmaW5lQ29uc3RhbnRzPlRSQUNFPC9EZWZpbmVDb25zdGFudHM+DQorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0Pg0KKyAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4NCisgIDwvUHJvcGVydHlHcm91cD4NCisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnRGVidWd8eDg2JyAiPg0KKyAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4NCisgICAgPE91dHB1dFBhdGg+YmluXHg4NlxEZWJ1Z1w8L091dHB1dFBhdGg+DQorICAgIDxEZWZpbmVDb25zdGFudHM+REVCVUc7VFJBQ0U8L0RlZmluZUNvbnN0YW50cz4NCisgICAgPERlYnVnVHlwZT5mdWxsPC9EZWJ1Z1R5cGU+DQorICAgIDxQbGF0Zm9ybVRhcmdldD54ODY8L1BsYXRmb3JtVGFyZ2V0Pg0KKyAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJvclJlcG9ydD4NCisgIDwvUHJvcGVydHlHcm91cD4NCisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXx4ODYnICI+DQorICAgIDxPdXRwdXRQYXRoPmJpblx4ODZcUmVsZWFzZVw8L091dHB1dFBhdGg+DQorICAgIDxEZWZpbmVDb25zdGFudHM+VFJBQ0U8L0RlZmluZUNvbnN0YW50cz4NCisgICAgPE9wdGltaXplPnRydWU8L09wdGltaXplPg0KKyAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4NCisgICAgPFBsYXRmb3JtVGFyZ2V0Png4NjwvUGxhdGZvcm1UYXJnZXQ+DQorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0Pg0KKyAgPC9Qcm9wZXJ0eUdyb3VwPg0KKyAgPEl0ZW1Hcm91cD4NCisgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0iIC8+DQorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtLkRhdGEiIC8+DQorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtLlhtbCIgLz4NCisgIDwvSXRlbUdyb3VwPg0KKyAgPEl0ZW1Hcm91cD4NCisgICAgPENvbXBpbGUgSW5jbHVkZT0iUHJvcGVydGllc1xBc3NlbWJseUluZm8uY3MiIC8+DQorICA8L0l0ZW1Hcm91cD4NCisgIDxJbXBvcnQgUHJvamVjdD0iJChNU0J1aWxkQmluUGF0aClcTWljcm9zb2Z0LkNTaGFycC50YXJnZXRzIiAvPg0KKyAgPCEtLSBUbyBtb2RpZnkgeW91ciBidWlsZCBwcm9jZXNzLCBhZGQgeW91ciB0YXNrIGluc2lkZSBvbmUgb2YgdGhlIHRhcmdldHMgYmVsb3cgYW5kIHVuY29tbWVudCBpdC4gDQorICAgICAgIE90aGVyIHNpbWlsYXIgZXh0ZW5zaW9uIHBvaW50cyBleGlzdCwgc2VlIE1pY3Jvc29mdC5Db21tb24udGFyZ2V0cy4NCisgIDxUYXJnZXQgTmFtZT0iQmVmb3JlQnVpbGQiPg0KKyAgPC9UYXJnZXQ+DQorICA8VGFyZ2V0IE5hbWU9IkFmdGVyQnVpbGQiPg0KKyAgPC9UYXJnZXQ+DQorICAtLT4NCis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvUGhvbmVCb29rMi5zbG4gYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9QaG9uZUJvb2syLnNsbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjM5MjgzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvUGhvbmVCb29rMi5zbG4KQEAgLTAsMCArMSw4OSBAQAor77u/DQorTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24gOS4wMA0KKyMgVmlzdWFsIFN0dWRpbyAyMDA1DQorUHJvamVjdCgie0ZBRTA0RUMwLTMwMUYtMTFEMy1CRjRCLTAwQzA0Rjc5RUZCQ30iKSA9ICJQaG9uZUJvb2syIiwgIlBob25lQm9vazIuY3Nwcm9qIiwgIntFQjFGMjUyRS0wQUE1LTQ0ODUtOTY2RC05RDdBQUMxOEFDNUV9Ig0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gIkNvcmUiLCAicHJvamVjdHNcQ29yZVxDb3JlLmNzcHJvaiIsICJ7RjY1RkNDOTEtQzlDQi00MENFLTg3QTYtQzBDQjAwRjczNTkyfSINCitFbmRQcm9qZWN0DQorUHJvamVjdCgie0ZBRTA0RUMwLTMwMUYtMTFEMy1CRjRCLTAwQzA0Rjc5RUZCQ30iKSA9ICJUZXN0IiwgInByb2plY3RzXFRlc3RcVGVzdC5jc3Byb2oiLCAie0M0NjFEOTg2LUJDM0MtNEE0OC04QjZGLUI0RUZBNDcwMzNFNn0iDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIntFMjRDNjVEQy03Mzc3LTQ3MkItOUFCQS1CQzgwM0I3M0M2MUF9IikgPSAiQzpcLi4uXFdlYlwiLCAicHJvamVjdHNcV2ViXCIsICJ7MDU1QUJGMzAtNkY5MS00OEVCLUI0NTctMkQ5Mjc0RjBEMzRGfSINCisJUHJvamVjdFNlY3Rpb24oV2Vic2l0ZVByb3BlcnRpZXMpID0gcHJlUHJvamVjdA0KKwkJUHJvamVjdFJlZmVyZW5jZXMgPSAie0Y2NUZDQzkxLUM5Q0ItNDBDRS04N0E2LUMwQ0IwMEY3MzU5Mn18UGhvbmVCb29rLkNvcmUuZGxsOyINCisJCURlYnVnLkFzcE5ldENvbXBpbGVyLlZpcnR1YWxQYXRoID0gIi9XZWIiDQorCQlEZWJ1Zy5Bc3BOZXRDb21waWxlci5QaHlzaWNhbFBhdGggPSAicHJvamVjdHNcV2ViXCINCisJCURlYnVnLkFzcE5ldENvbXBpbGVyLlRhcmdldFBhdGggPSAiUHJlY29tcGlsZWRXZWJcV2ViXCINCisJCURlYnVnLkFzcE5ldENvbXBpbGVyLlVwZGF0ZWFibGUgPSAidHJ1ZSINCisJCURlYnVnLkFzcE5ldENvbXBpbGVyLkZvcmNlT3ZlcndyaXRlID0gInRydWUiDQorCQlEZWJ1Zy5Bc3BOZXRDb21waWxlci5GaXhlZE5hbWVzID0gImZhbHNlIg0KKwkJRGVidWcuQXNwTmV0Q29tcGlsZXIuRGVidWcgPSAiVHJ1ZSINCisJCVJlbGVhc2UuQXNwTmV0Q29tcGlsZXIuVmlydHVhbFBhdGggPSAiL1dlYiINCisJCVJlbGVhc2UuQXNwTmV0Q29tcGlsZXIuUGh5c2ljYWxQYXRoID0gInByb2plY3RzXFdlYlwiDQorCQlSZWxlYXNlLkFzcE5ldENvbXBpbGVyLlRhcmdldFBhdGggPSAiUHJlY29tcGlsZWRXZWJcV2ViXCINCisJCVJlbGVhc2UuQXNwTmV0Q29tcGlsZXIuVXBkYXRlYWJsZSA9ICJ0cnVlIg0KKwkJUmVsZWFzZS5Bc3BOZXRDb21waWxlci5Gb3JjZU92ZXJ3cml0ZSA9ICJ0cnVlIg0KKwkJUmVsZWFzZS5Bc3BOZXRDb21waWxlci5GaXhlZE5hbWVzID0gImZhbHNlIg0KKwkJUmVsZWFzZS5Bc3BOZXRDb21waWxlci5EZWJ1ZyA9ICJGYWxzZSINCisJCVZXRFBvcnQgPSAiMzU5NCINCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorUHJvamVjdCgiezIxNTBFMzMzLThGREMtNDJBMy05NDc0LTFBMzk1NkQ0NkRFOH0iKSA9ICJTb2x1dGlvbiBJdGVtcyIsICJTb2x1dGlvbiBJdGVtcyIsICJ7RjVCNjk3RjItMEZGQy00NDU5LUJDQkItNUY2RjREQjAxRDY0fSINCisJUHJvamVjdFNlY3Rpb24oU29sdXRpb25JdGVtcykgPSBwcmVQcm9qZWN0DQorCQkuLlxOZXh1c1xDb3JlXFZhbGlkYXRvcnNcRGF0ZVRpbWVQcm9jZXNzb3IuY3MgPSAuLlxOZXh1c1xDb3JlXFZhbGlkYXRvcnNcRGF0ZVRpbWVQcm9jZXNzb3IuY3MNCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorR2xvYmFsDQorCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Db25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHByZVNvbHV0aW9uDQorCQlEZWJ1Z3wuTkVUID0gRGVidWd8Lk5FVA0KKwkJRGVidWd8QW55IENQVSA9IERlYnVnfEFueSBDUFUNCisJCURlYnVnfE1peGVkIFBsYXRmb3JtcyA9IERlYnVnfE1peGVkIFBsYXRmb3Jtcw0KKwkJUmVsZWFzZXwuTkVUID0gUmVsZWFzZXwuTkVUDQorCQlSZWxlYXNlfEFueSBDUFUgPSBSZWxlYXNlfEFueSBDUFUNCisJCVJlbGVhc2V8TWl4ZWQgUGxhdGZvcm1zID0gUmVsZWFzZXxNaXhlZCBQbGF0Zm9ybXMNCisJRW5kR2xvYmFsU2VjdGlvbg0KKwlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHBvc3RTb2x1dGlvbg0KKwkJe0VCMUYyNTJFLTBBQTUtNDQ4NS05NjZELTlEN0FBQzE4QUM1RX0uRGVidWd8Lk5FVC5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVDQorCQl7RUIxRjI1MkUtMEFBNS00NDg1LTk2NkQtOUQ3QUFDMThBQzVFfS5EZWJ1Z3xBbnkgQ1BVLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUNCisJCXtFQjFGMjUyRS0wQUE1LTQ0ODUtOTY2RC05RDdBQUMxOEFDNUV9LkRlYnVnfEFueSBDUFUuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUNCisJCXtFQjFGMjUyRS0wQUE1LTQ0ODUtOTY2RC05RDdBQUMxOEFDNUV9LkRlYnVnfE1peGVkIFBsYXRmb3Jtcy5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVDQorCQl7RUIxRjI1MkUtMEFBNS00NDg1LTk2NkQtOUQ3QUFDMThBQzVFfS5EZWJ1Z3xNaXhlZCBQbGF0Zm9ybXMuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUNCisJCXtFQjFGMjUyRS0wQUE1LTQ0ODUtOTY2RC05RDdBQUMxOEFDNUV9LlJlbGVhc2V8Lk5FVC5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUNCisJCXtFQjFGMjUyRS0wQUE1LTQ0ODUtOTY2RC05RDdBQUMxOEFDNUV9LlJlbGVhc2V8QW55IENQVS5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUNCisJCXtFQjFGMjUyRS0wQUE1LTQ0ODUtOTY2RC05RDdBQUMxOEFDNUV9LlJlbGVhc2V8QW55IENQVS5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVDQorCQl7RUIxRjI1MkUtMEFBNS00NDg1LTk2NkQtOUQ3QUFDMThBQzVFfS5SZWxlYXNlfE1peGVkIFBsYXRmb3Jtcy5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUNCisJCXtFQjFGMjUyRS0wQUE1LTQ0ODUtOTY2RC05RDdBQUMxOEFDNUV9LlJlbGVhc2V8TWl4ZWQgUGxhdGZvcm1zLkJ1aWxkLjAgPSBSZWxlYXNlfEFueSBDUFUNCisJCXtGNjVGQ0M5MS1DOUNCLTQwQ0UtODdBNi1DMENCMDBGNzM1OTJ9LkRlYnVnfC5ORVQuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQ0KKwkJe0Y2NUZDQzkxLUM5Q0ItNDBDRS04N0E2LUMwQ0IwMEY3MzU5Mn0uRGVidWd8QW55IENQVS5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVDQorCQl7RjY1RkNDOTEtQzlDQi00MENFLTg3QTYtQzBDQjAwRjczNTkyfS5EZWJ1Z3xBbnkgQ1BVLkJ1aWxkLjAgPSBEZWJ1Z3xBbnkgQ1BVDQorCQl7RjY1RkNDOTEtQzlDQi00MENFLTg3QTYtQzBDQjAwRjczNTkyfS5EZWJ1Z3xNaXhlZCBQbGF0Zm9ybXMuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQ0KKwkJe0Y2NUZDQzkxLUM5Q0ItNDBDRS04N0E2LUMwQ0IwMEY3MzU5Mn0uRGVidWd8TWl4ZWQgUGxhdGZvcm1zLkJ1aWxkLjAgPSBEZWJ1Z3xBbnkgQ1BVDQorCQl7RjY1RkNDOTEtQzlDQi00MENFLTg3QTYtQzBDQjAwRjczNTkyfS5SZWxlYXNlfC5ORVQuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVDQorCQl7RjY1RkNDOTEtQzlDQi00MENFLTg3QTYtQzBDQjAwRjczNTkyfS5SZWxlYXNlfEFueSBDUFUuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVDQorCQl7RjY1RkNDOTEtQzlDQi00MENFLTg3QTYtQzBDQjAwRjczNTkyfS5SZWxlYXNlfEFueSBDUFUuQnVpbGQuMCA9IFJlbGVhc2V8QW55IENQVQ0KKwkJe0Y2NUZDQzkxLUM5Q0ItNDBDRS04N0E2LUMwQ0IwMEY3MzU5Mn0uUmVsZWFzZXxNaXhlZCBQbGF0Zm9ybXMuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVDQorCQl7RjY1RkNDOTEtQzlDQi00MENFLTg3QTYtQzBDQjAwRjczNTkyfS5SZWxlYXNlfE1peGVkIFBsYXRmb3Jtcy5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVDQorCQl7QzQ2MUQ5ODYtQkMzQy00QTQ4LThCNkYtQjRFRkE0NzAzM0U2fS5EZWJ1Z3wuTkVULkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUNCisJCXtDNDYxRDk4Ni1CQzNDLTRBNDgtOEI2Ri1CNEVGQTQ3MDMzRTZ9LkRlYnVnfEFueSBDUFUuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQ0KKwkJe0M0NjFEOTg2LUJDM0MtNEE0OC04QjZGLUI0RUZBNDcwMzNFNn0uRGVidWd8QW55IENQVS5CdWlsZC4wID0gRGVidWd8QW55IENQVQ0KKwkJe0M0NjFEOTg2LUJDM0MtNEE0OC04QjZGLUI0RUZBNDcwMzNFNn0uRGVidWd8TWl4ZWQgUGxhdGZvcm1zLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUNCisJCXtDNDYxRDk4Ni1CQzNDLTRBNDgtOEI2Ri1CNEVGQTQ3MDMzRTZ9LkRlYnVnfE1peGVkIFBsYXRmb3Jtcy5CdWlsZC4wID0gRGVidWd8QW55IENQVQ0KKwkJe0M0NjFEOTg2LUJDM0MtNEE0OC04QjZGLUI0RUZBNDcwMzNFNn0uUmVsZWFzZXwuTkVULkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQ0KKwkJe0M0NjFEOTg2LUJDM0MtNEE0OC04QjZGLUI0RUZBNDcwMzNFNn0uUmVsZWFzZXxBbnkgQ1BVLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQ0KKwkJe0M0NjFEOTg2LUJDM0MtNEE0OC04QjZGLUI0RUZBNDcwMzNFNn0uUmVsZWFzZXxBbnkgQ1BVLkJ1aWxkLjAgPSBSZWxlYXNlfEFueSBDUFUNCisJCXtDNDYxRDk4Ni1CQzNDLTRBNDgtOEI2Ri1CNEVGQTQ3MDMzRTZ9LlJlbGVhc2V8TWl4ZWQgUGxhdGZvcm1zLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQ0KKwkJe0M0NjFEOTg2LUJDM0MtNEE0OC04QjZGLUI0RUZBNDcwMzNFNn0uUmVsZWFzZXxNaXhlZCBQbGF0Zm9ybXMuQnVpbGQuMCA9IFJlbGVhc2V8QW55IENQVQ0KKwkJezA1NUFCRjMwLTZGOTEtNDhFQi1CNDU3LTJEOTI3NEYwRDM0Rn0uRGVidWd8Lk5FVC5BY3RpdmVDZmcgPSBEZWJ1Z3wuTkVUDQorCQl7MDU1QUJGMzAtNkY5MS00OEVCLUI0NTctMkQ5Mjc0RjBEMzRGfS5EZWJ1Z3wuTkVULkJ1aWxkLjAgPSBEZWJ1Z3wuTkVUDQorCQl7MDU1QUJGMzAtNkY5MS00OEVCLUI0NTctMkQ5Mjc0RjBEMzRGfS5EZWJ1Z3xBbnkgQ1BVLkFjdGl2ZUNmZyA9IERlYnVnfC5ORVQNCisJCXswNTVBQkYzMC02RjkxLTQ4RUItQjQ1Ny0yRDkyNzRGMEQzNEZ9LkRlYnVnfE1peGVkIFBsYXRmb3Jtcy5BY3RpdmVDZmcgPSBEZWJ1Z3wuTkVUDQorCQl7MDU1QUJGMzAtNkY5MS00OEVCLUI0NTctMkQ5Mjc0RjBEMzRGfS5EZWJ1Z3xNaXhlZCBQbGF0Zm9ybXMuQnVpbGQuMCA9IERlYnVnfC5ORVQNCisJCXswNTVBQkYzMC02RjkxLTQ4RUItQjQ1Ny0yRDkyNzRGMEQzNEZ9LlJlbGVhc2V8Lk5FVC5BY3RpdmVDZmcgPSBEZWJ1Z3wuTkVUDQorCQl7MDU1QUJGMzAtNkY5MS00OEVCLUI0NTctMkQ5Mjc0RjBEMzRGfS5SZWxlYXNlfC5ORVQuQnVpbGQuMCA9IERlYnVnfC5ORVQNCisJCXswNTVBQkYzMC02RjkxLTQ4RUItQjQ1Ny0yRDkyNzRGMEQzNEZ9LlJlbGVhc2V8QW55IENQVS5BY3RpdmVDZmcgPSBEZWJ1Z3wuTkVUDQorCQl7MDU1QUJGMzAtNkY5MS00OEVCLUI0NTctMkQ5Mjc0RjBEMzRGfS5SZWxlYXNlfE1peGVkIFBsYXRmb3Jtcy5BY3RpdmVDZmcgPSBEZWJ1Z3wuTkVUDQorCQl7MDU1QUJGMzAtNkY5MS00OEVCLUI0NTctMkQ5Mjc0RjBEMzRGfS5SZWxlYXNlfE1peGVkIFBsYXRmb3Jtcy5CdWlsZC4wID0gRGVidWd8Lk5FVA0KKwlFbmRHbG9iYWxTZWN0aW9uDQorCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Qcm9wZXJ0aWVzKSA9IHByZVNvbHV0aW9uDQorCQlIaWRlU29sdXRpb25Ob2RlID0gRkFMU0UNCisJRW5kR2xvYmFsU2VjdGlvbg0KK0VuZEdsb2JhbA0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvUHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzNlMTU2MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzCkBAIC0wLDAgKzEsMzUgQEAKK++7v3VzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOw0KK3VzaW5nIFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXM7DQordXNpbmcgU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzOw0KKw0KKy8vIEdlbmVyYWwgSW5mb3JtYXRpb24gYWJvdXQgYW4gYXNzZW1ibHkgaXMgY29udHJvbGxlZCB0aHJvdWdoIHRoZSBmb2xsb3dpbmcgDQorLy8gc2V0IG9mIGF0dHJpYnV0ZXMuIENoYW5nZSB0aGVzZSBhdHRyaWJ1dGUgdmFsdWVzIHRvIG1vZGlmeSB0aGUgaW5mb3JtYXRpb24NCisvLyBhc3NvY2lhdGVkIHdpdGggYW4gYXNzZW1ibHkuDQorW2Fzc2VtYmx5OiBBc3NlbWJseVRpdGxlKCJQaG9uZUJvb2syIildDQorW2Fzc2VtYmx5OiBBc3NlbWJseURlc2NyaXB0aW9uKCIiKV0NCitbYXNzZW1ibHk6IEFzc2VtYmx5Q29uZmlndXJhdGlvbigiIildDQorW2Fzc2VtYmx5OiBBc3NlbWJseUNvbXBhbnkoIiIpXQ0KK1thc3NlbWJseTogQXNzZW1ibHlQcm9kdWN0KCJQaG9uZUJvb2syIildDQorW2Fzc2VtYmx5OiBBc3NlbWJseUNvcHlyaWdodCgiQ29weXJpZ2h0IMKpICAyMDA2IildDQorW2Fzc2VtYmx5OiBBc3NlbWJseVRyYWRlbWFyaygiIildDQorW2Fzc2VtYmx5OiBBc3NlbWJseUN1bHR1cmUoIiIpXQ0KKw0KKy8vIFNldHRpbmcgQ29tVmlzaWJsZSB0byBmYWxzZSBtYWtlcyB0aGUgdHlwZXMgaW4gdGhpcyBhc3NlbWJseSBub3QgdmlzaWJsZSANCisvLyB0byBDT00gY29tcG9uZW50cy4gIElmIHlvdSBuZWVkIHRvIGFjY2VzcyBhIHR5cGUgaW4gdGhpcyBhc3NlbWJseSBmcm9tIA0KKy8vIENPTSwgc2V0IHRoZSBDb21WaXNpYmxlIGF0dHJpYnV0ZSB0byB0cnVlIG9uIHRoYXQgdHlwZS4NCitbYXNzZW1ibHk6IENvbVZpc2libGUoZmFsc2UpXQ0KKw0KKy8vIFRoZSBmb2xsb3dpbmcgR1VJRCBpcyBmb3IgdGhlIElEIG9mIHRoZSB0eXBlbGliIGlmIHRoaXMgcHJvamVjdCBpcyBleHBvc2VkIHRvIENPTQ0KK1thc3NlbWJseTogR3VpZCgiZTdkMjJlZmQtYWY4YS00YTZjLWFiOTMtM2FmYjcxZTFjN2Y3IildDQorDQorLy8gVmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYW4gYXNzZW1ibHkgY29uc2lzdHMgb2YgdGhlIGZvbGxvd2luZyBmb3VyIHZhbHVlczoNCisvLw0KKy8vICAgICAgTWFqb3IgVmVyc2lvbg0KKy8vICAgICAgTWlub3IgVmVyc2lvbiANCisvLyAgICAgIEJ1aWxkIE51bWJlcg0KKy8vICAgICAgUmV2aXNpb24NCisvLw0KKy8vIFlvdSBjYW4gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyBvciB5b3UgY2FuIGRlZmF1bHQgdGhlIFJldmlzaW9uIGFuZCBCdWlsZCBOdW1iZXJzIA0KKy8vIGJ5IHVzaW5nIHRoZSAnKicgYXMgc2hvd24gYmVsb3c6DQorW2Fzc2VtYmx5OiBBc3NlbWJseVZlcnNpb24oIjEuMC4wLjAiKV0NCitbYXNzZW1ibHk6IEFzc2VtYmx5RmlsZVZlcnNpb24oIjEuMC4wLjAiKV0NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0FwcC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQXBwLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5YzVlMDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0FwcC5jcwpAQCAtMCwwICsxLDIwNSBAQAorLyoNCisqIENvcHlyaWdodCAyMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisqIA0KKyogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisqIA0KKyogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisqIA0KKyogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorKi8NCisNCituYW1lc3BhY2UgUGhvbmVCb29rLkNvcmUNCit7DQorICAgIC8vLyA8c3VtbWFyeT4NCisgICAgLy8vIFRva2VucyByZXByZXNlbnRpbmcgY29udGV4dCBrZXlzLg0KKyAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAvLy8gDQorICAgIHB1YmxpYyBjbGFzcyBBcHANCisgICAgew0KKyAgICAgICAgcHJpdmF0ZSBBcHAoKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIC8vIE5vIG5lZWQgdG8gY29uc3RydWN0IHN0YXRpYyBoZWxwZXIgY2xhc3MNCisgICAgICAgIH0NCisNCisgICAgICAgICNyZWdpb24gUHJvcGVydGllcw0KKw0KKyAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KKyAgICAgICAgLy8vIFRva2VuIGZvciBDYXRhbG9nIHByb3BlcnR5Lg0KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4NCisgICAgICAgIC8vLyANCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgQ0FUQUxPR19LRVkgPSAiQ2F0YWxvZyI7DQorDQorICAgICAgICAvLy8gPHN1bW1hcnk+DQorICAgICAgICAvLy8gVG9rZW4gZm9yIGVudHJ5X2tleSBwcm9wZXJ0eS4NCisgICAgICAgIC8vLyA8L3N1bW1hcnk+DQorICAgICAgICAvLy8gDQorICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEVOVFJZX0tFWSA9ICJlbnRyeV9rZXkiOw0KKw0KKyAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KKyAgICAgICAgLy8vIFRva2VuIGZvciBmaXJzdF9uYW1lIHByb3BlcnR5Lg0KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4NCisgICAgICAgIC8vLyANCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRklSU1RfTkFNRSA9ICJmaXJzdF9uYW1lIjsNCisNCisgICAgICAgIC8vLyA8c3VtbWFyeT4NCisgICAgICAgIC8vLyBUb2tlbiBmb3IgbGFzdF9uYW1lIHByb3BlcnR5Lg0KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4NCisgICAgICAgIC8vLyANCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgTEFTVF9OQU1FID0gImxhc3RfbmFtZSI7DQorDQorICAgICAgICAvLy8gPHN1bW1hcnk+DQorICAgICAgICAvLy8gVG9rZW4gZm9yIHVzZXJfbmFtZSBwcm9wZXJ0eS4NCisgICAgICAgIC8vLyA8L3N1bW1hcnk+DQorICAgICAgICAvLy8gDQorICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIFVTRVJfTkFNRSA9ICJ1c2VyX25hbWUiOw0KKw0KKyAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KKyAgICAgICAgLy8vIFRva2VuIGZvciBleHRlbnNpb24gcHJvcGVydHkuDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgLy8vIA0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFWFRFTlNJT04gPSAiZXh0ZW5zaW9uIjsNCisNCisgICAgICAgIC8vLyA8c3VtbWFyeT4NCisgICAgICAgIC8vLyBUb2tlbiBmb3IgaGlyZWQgcHJvcGVydHkuDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgLy8vIA0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBISVJFRCA9ICJoaXJlZCI7DQorDQorICAgICAgICAvLy8gPHN1bW1hcnk+DQorICAgICAgICAvLy8gVG9rZW4gZm9yIGhvdXJzIHByb3BlcnR5Lg0KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4NCisgICAgICAgIC8vLyANCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSE9VUlMgPSAiaG91cnMiOw0KKw0KKyAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KKyAgICAgICAgLy8vIFRva2VuIGZvciBlZGl0b3IgcHJvcGVydHkuDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgLy8vIA0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFRElUT1IgPSAiZWRpdG9yIjsNCisNCisgICAgICAgICNlbmRyZWdpb24NCisNCisgICAgICAgICNyZWdpb24gQ29tbWFuZHMNCisNCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRlJPTV9EQVRFID0gImZyb21fZGF0ZSI7DQorDQorICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIFRIUlVfREFURSA9ICJ0aHJ1X2RhdGUiOw0KKw0KKyAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KKyAgICAgICAgLy8vIFRva2VuIGZvciBTUUwgTElNSVQgY2xhdXNlLg0KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4NCisgICAgICAgIC8vLyANCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSVRFTV9MSU1JVCA9ICJpdGVtX2xpbWl0IjsNCisNCisgICAgICAgIC8vLyA8c3VtbWFyeT4NCisgICAgICAgIC8vLyBUb2tlbiBmb3IgU1FMIE9GRlNFVCBjbGF1c2UuDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgLy8vIA0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVEVNX09GRlNFVCA9ICJpdGVtX29mZnNldCI7DQorDQorICAgICAgICAvLy8gPHN1bW1hcnk+DQorICAgICAgICAvLy8gVG9rZW4gZm9yIFNRTCBDT1VOVCBjbGF1c2UuDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgLy8vIA0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBJVEVNX0NPVU5UID0gIml0ZW1fY291bnQiOw0KKw0KKyAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KKyAgICAgICAgLy8vIFRva2VuIGZvciBzZWxlY3Qgb25lIGNvbW1hbmQuDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgLy8vIA0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFTlRSWSA9ICJlbnRyeSI7DQorDQorICAgICAgICAvLy8gPHN1bW1hcnk+DQorICAgICAgICAvLy8gVG9rZW4gZm9yIGxpc3QgYWxsIGNvbW1hbmQuDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgLy8vIA0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFTlRSWV9MSVNUID0gImVudHJ5X2xpc3QiOw0KKw0KKyAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KKyAgICAgICAgLy8vIFRva2VuIGZvciBFbnRyeSBJbml0aWFsIGNvbW1hbmQuDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgLy8vIA0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFTlRSWV9JTklUSUFMID0gImVudHJ5X2luaXRpYWwiOw0KKw0KKyAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KKyAgICAgICAgLy8vIFRva2VuIGZvciBMaXN0IExhc3QgTmFtZXMgY29tbWFuZC4NCisgICAgICAgIC8vLyA8L3N1bW1hcnk+DQorICAgICAgICAvLy8gDQorICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIExBU1RfTkFNRV9MSVNUID0gImxhc3RfbmFtZV9saXN0IjsNCisNCisgICAgICAgIC8vLyA8c3VtbWFyeT4NCisgICAgICAgIC8vLyBUb2tlbiBmb3IgTGlzdCBMYXN0IE5hbWVzIGNvbW1hbmQuDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgLy8vIA0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBGSVJTVF9OQU1FX0xJU1QgPSAiZmlyc3RfbmFtZV9saXN0IjsNCisNCisgICAgICAgIC8vLyA8c3VtbWFyeT4NCisgICAgICAgIC8vLyBUb2tlbiBmb3IgTGlzdCBFeHRlbnNpb25zIGNvbW1hbmQuDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgLy8vIA0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFWFRFTlNJT05fTElTVCA9ICJleHRlbnNpb25fbGlzdCI7DQorDQorICAgICAgICAvLy8gPHN1bW1hcnk+DQorICAgICAgICAvLy8gVG9rZW4gZm9yIExpc3QgVXNlck5hbWVzIGNvbW1hbmQuDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgLy8vIA0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBVU0VSX05BTUVfTElTVCA9ICJ1c2VyX25hbWVfbGlzdCI7DQorDQorICAgICAgICAvLy8gPHN1bW1hcnk+DQorICAgICAgICAvLy8gVG9rZW4gZm9yIExpc3QgSGlyZSBEYXRlcyBjb21tYW5kLg0KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4NCisgICAgICAgIC8vLyANCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSElSRURfTElTVCA9ICJoaXJlZF9saXN0IjsNCisNCisgICAgICAgIC8vLyA8c3VtbWFyeT4NCisgICAgICAgIC8vLyBUb2tlbiBmb3IgTGlzdCBIb3VycyBjb21tYW5kLg0KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4NCisgICAgICAgIC8vLyANCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSE9VUlNfTElTVCA9ICJob3Vyc19saXN0IjsNCisNCisgICAgICAgIC8vLyA8c3VtbWFyeT4NCisgICAgICAgIC8vLyBUb2tlbiBmb3IgRW50cnkgRmluZCBjb21tYW5kLg0KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4NCisgICAgICAgIC8vLyANCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRU5UUllfRklORCA9ICJlbnRyeV9maW5kIjsNCisNCisgICAgICAgIC8vLyA8c3VtbWFyeT4NCisgICAgICAgIC8vLyBUb2tlbiBmb3IgRW50cnkgU2F2ZSBjb21tYW5kLg0KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4NCisgICAgICAgIC8vLyANCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRU5UUllfU0FWRSA9ICJlbnRyeV9zYXZlIjsNCisNCisgICAgICAgIC8vLyA8c3VtbWFyeT4NCisgICAgICAgIC8vLyBUb2tlbiBmb3IgRW50cnkgRGVsZXRlIGNvbW1hbmQuDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgLy8vIA0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFTlRSWV9ERUxFVEUgPSAiZW50cnlfZGVsZXRlIjsNCisNCisgICAgICAgICNlbmRyZWdpb24NCisNCisgICAgICAgICNyZWdpb24gTWVzc2FnZXMNCisNCisgICAgICAgIC8vLyA8c3VtbWFyeT4NCisgICAgICAgIC8vLyBUb2tlbiBmb3IgRGlyZWN0b3J5IHBhZ2UgdGl0bGUuDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBESVJFQ1RPUllfVElUTEUgPSAiZGlyZWN0b3J5X3RpdGxlIjsNCisNCisgICAgICAgIC8vLyA8c3VtbWFyeT4NCisgICAgICAgIC8vLyBUb2tlbiBmb3IgRGlyZWN0b3J5IGRpcmVjdG9yeSBwYWdlIGhlYWRpbmcuDQorICAgICAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBESVJFQ1RPUllfSEVBRElORyA9ICJkaXJlY3RvcnlfaGVhZGluZyI7DQorDQorICAgICAgICAvLy8gPHN1bW1hcnk+DQorICAgICAgICAvLy8gVG9rZW4gZm9yIERpcmVjdG9yeSBwYWdlIHByb21wdC4NCisgICAgICAgIC8vLyA8L3N1bW1hcnk+DQorICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIERJUkVDVE9SWV9QUk9NUFQgPSAiZGlyZWN0b3J5X3Byb21wdCI7DQorDQorICAgICAgICAjZW5kcmVnaW9uDQorICAgIH0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9BcHBFbnRyeS5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQXBwRW50cnkuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEwNTU3ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQXBwRW50cnkuY3MKQEAgLTAsMCArMSwxMTkgQEAKKy8qDQorICogQ29weXJpZ2h0IDIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyAqIA0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSBfU3RvcmUgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqIA0KKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICogDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgTmV4dXMuQ29yZTsNCisNCituYW1lc3BhY2UgUGhvbmVCb29rLkNvcmUNCit7DQorICAgIC8vLyA8c3VtbWFyeT4NCisgICAgLy8vIEV4cG9zZSBmaWVsZCBhdHRyaWJ1dGVzIGFzIHB1YmxpYyBwcm9wZXJ0aWVzLg0KKyAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAvLy8gDQorICAgIFtTZXJpYWxpemFibGVdDQorICAgIHB1YmxpYyBjbGFzcyBBcHBFbnRyeSA6IEVudHJ5RGljdGlvbmFyeQ0KKyAgICB7DQorDQorICAgICAgICBwdWJsaWMgQXBwRW50cnkoKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIC8vIERlZmF1bHQgY29udHN0cnVjdG9yCQ0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgcHVibGljIEFwcEVudHJ5KElEaWN0aW9uYXJ5IHNvdXJjZXMpDQorICAgICAgICB7DQorICAgICAgICAgICAgQWRkQWxsKHNvdXJjZXMpOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgcHVibGljIEFwcEVudHJ5KEFwcEVudHJ5IHJvdykNCisgICAgICAgIHsNCisgICAgICAgICAgICBBZGRBbGwocm93KTsNCisgICAgICAgIH0NCisNCisgICAgICAgIC8vLyA8c3VtbWFyeT4NCisgICAgICAgIC8vLyBBZGQgZWFjaCBzb3VyY2UgZW50cnkgdG8gb3VyIGludGVybmFsIHN0b3JlLiANCisgICAgICAgIC8vLyA8L3N1bW1hcnk+DQorICAgICAgICAvLy8gPHJlbWFya3M+PHA+DQorICAgICAgICAvLy8gRW50cmllcyB3aXRoIGtleXMgdGhhdCBtYXRjaCB0aGUgcHJvcGVydHkgbmFtZXMgd2lsbCBiZSBleHBvc2VkLiANCisgICAgICAgIC8vLyBPdGhlciBlbnRyaWVzIG1heSBiZSBhZGRlZCwgYnV0IGNhbiBvbmx5IGJlIHJldHJpZXZlZCB2aWEgR2V0Lg0KKyAgICAgICAgLy8vIDwvcD48L3JlbWFya3M+DQorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InJvdyI+RW50cmllcyB0byBhZGQ8L3BhcmFtPg0KKyAgICAgICAgLy8vIA0KKyAgICAgICAgcHVibGljIHZvaWQgQWRkQWxsKEFwcEVudHJ5IHJvdykNCisgICAgICAgIHsNCisgICAgICAgICAgICBJQ29sbGVjdGlvbiBrZXlzID0gcm93LktleXM7DQorICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIGtleSBpbiBrZXlzKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgQWRkKGtleSwgcm93LkdldChrZXkpKTsNCisgICAgICAgICAgICB9DQorICAgICAgICB9DQorDQorICAgICAgICAvKg0KKyAgICAgICAgcHVibGljIHN0cmluZyBQcm9wZXJ0eQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIGdldCB7IHJldHVybiBHZXQoQXBwLlBST1BFUlRZKTsgfQ0KKyAgICAgICAgICAgIHNldCB7IFNldChBcHAuUFJPUEVSVFksIHZhbHVlKTsgfQ0KKyAgICAgICAgfQ0KKyAgICAgICAgKi8NCisNCisgICAgICAgIHB1YmxpYyBzdHJpbmcgZW50cnlfa2V5DQorICAgICAgICB7DQorICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIEdldChBcHAuRU5UUllfS0VZKTsgfQ0KKyAgICAgICAgICAgIHNldCB7IFNldChBcHAuRU5UUllfS0VZLCB2YWx1ZSk7IH0NCisgICAgICAgIH0NCisNCisgICAgICAgIHB1YmxpYyBzdHJpbmcgZmlyc3RfbmFtZQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIGdldCB7IHJldHVybiBHZXQoQXBwLkZJUlNUX05BTUUpOyB9DQorICAgICAgICAgICAgc2V0IHsgU2V0KEFwcC5GSVJTVF9OQU1FLCB2YWx1ZSk7IH0NCisgICAgICAgIH0NCisNCisgICAgICAgIHB1YmxpYyBzdHJpbmcgbGFzdF9uYW1lDQorICAgICAgICB7DQorICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIEdldChBcHAuTEFTVF9OQU1FKTsgfQ0KKyAgICAgICAgICAgIHNldCB7IFNldChBcHAuTEFTVF9OQU1FLCB2YWx1ZSk7IH0NCisgICAgICAgIH0NCisNCisgICAgICAgIHB1YmxpYyBzdHJpbmcgZXh0ZW5zaW9uDQorICAgICAgICB7DQorICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIEdldChBcHAuRVhURU5TSU9OKTsgfQ0KKyAgICAgICAgICAgIHNldCB7IFNldChBcHAuRVhURU5TSU9OLCB2YWx1ZSk7IH0NCisgICAgICAgIH0NCisNCisgICAgICAgIHB1YmxpYyBzdHJpbmcgdXNlcl9uYW1lDQorICAgICAgICB7DQorICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIEdldChBcHAuVVNFUl9OQU1FKTsgfQ0KKyAgICAgICAgICAgIHNldCB7IFNldChBcHAuVVNFUl9OQU1FLCB2YWx1ZSk7IH0NCisgICAgICAgIH0NCisNCisgICAgICAgIHB1YmxpYyBzdHJpbmcgaGlyZWQNCisgICAgICAgIHsNCisgICAgICAgICAgICBnZXQgeyByZXR1cm4gR2V0KEFwcC5ISVJFRCk7IH0NCisgICAgICAgICAgICBzZXQgeyBTZXQoQXBwLkhJUkVELCB2YWx1ZSk7IH0NCisgICAgICAgIH0NCisNCisgICAgICAgIHB1YmxpYyBzdHJpbmcgaG91cnMNCisgICAgICAgIHsNCisgICAgICAgICAgICBnZXQgeyByZXR1cm4gR2V0KEFwcC5IT1VSUyk7IH0NCisgICAgICAgICAgICBzZXQgeyBTZXQoQXBwLkhPVVJTLCB2YWx1ZSk7IH0NCisgICAgICAgIH0NCisNCisgICAgICAgIHB1YmxpYyBzdHJpbmcgZWRpdG9yDQorICAgICAgICB7DQorICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIEdldChBcHAuRURJVE9SKTsgfQ0KKyAgICAgICAgICAgIHNldCB7IFNldChBcHAuRURJVE9SLCB2YWx1ZSk7IH0NCisgICAgICAgIH0NCisgICAgfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0FwcEVudHJ5TGlzdC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQXBwRW50cnlMaXN0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhODY1YmMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0FwcEVudHJ5TGlzdC5jcwpAQCAtMCwwICsxLDM4IEBACit1c2luZyBTeXN0ZW07DQordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KK3VzaW5nIE5leHVzLkNvcmU7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5Db3JlDQorew0KKyAgICAvLy8gPHN1bW1hcnk+DQorICAgIC8vLyBJbXBsZW1lbnQgTmV4dXMuQ29yZS5JRW50cnlMaXN0IGZvciBBcHBFbnRyeSBvYmplY3RzLg0KKyAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAvLy8gDQorICAgIHB1YmxpYyBjbGFzcyBBcHBFbnRyeUxpc3QgOiBBcnJheUxpc3QsIElFbnRyeUxpc3QNCisgICAgew0KKyAgICAgICAgcHVibGljIG9iamVjdCBJbnNlcnQoc3RyaW5nIGtleSkNCisgICAgICAgIHsNCisgICAgICAgICAgICBBcHBFbnRyeSBlbnRyeSA9IG5ldyBBcHBFbnRyeSgpOw0KKyAgICAgICAgICAgIGVudHJ5LmVudHJ5X2tleSA9IGtleTsNCisgICAgICAgICAgICBJbnNlcnQoMCwgZW50cnkpOw0KKyAgICAgICAgICAgIHJldHVybiBlbnRyeTsNCisgICAgICAgIH0NCisNCisgICAgICAgIHB1YmxpYyB2b2lkIEFkZEVudHJ5KElEaWN0aW9uYXJ5IHJvdykNCisgICAgICAgIHsNCisgICAgICAgICAgICBBcHBFbnRyeSBlbnRyeSA9IG5ldyBBcHBFbnRyeSgpOw0KKyAgICAgICAgICAgIGZvcmVhY2ggKERpY3Rpb25hcnlFbnRyeSBjb2wgaW4gcm93KQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgc3RyaW5nIGtleSA9IENvbnZlcnQuVG9TdHJpbmcoY29sLktleSk7DQorICAgICAgICAgICAgICAgIHN0cmluZyB2YWx1ZSA9IENvbnZlcnQuVG9TdHJpbmcoY29sLlZhbHVlKTsNCisgICAgICAgICAgICAgICAgZW50cnkuQWRkKGtleSwgdmFsdWUpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBBZGQoZW50cnkpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgDQorICAgICAgICBwdWJsaWMgQXBwRW50cnlbXSBUb0FwcEVudHJ5QXJyYXkoKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiAoQXBwRW50cnlbXSlUb0FycmF5KHR5cGVvZihBcHBFbnRyeSkpOw0KKyAgICAgICAgfQ0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQXBwRW50cnlMaXN0UHJvY2Vzc29yLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9BcHBFbnRyeUxpc3RQcm9jZXNzb3IuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjlmOGUzOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQXBwRW50cnlMaXN0UHJvY2Vzc29yLmNzCkBAIC0wLDAgKzEsMTcgQEAKK3VzaW5nIE5leHVzLkNvcmU7DQordXNpbmcgTmV4dXMuQ29yZS5WYWxpZGF0b3JzOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gSW1wbGVtZW50IE5leHVzLkNvcmUuVmFsaWRhdG9ycy5FbnRyeUxpc3RQcm9jZXNzIGZvciBBcHBFbnRyeUxpc3QuDQorCS8vLyA8L3N1bW1hcnk+DQorCS8vLyANCisJcHVibGljIGNsYXNzIEFwcEVudHJ5TGlzdFByb2Nlc3NvciA6IEVudHJ5TGlzdFByb2Nlc3Nvcg0KKwl7DQorCQlwdWJsaWMgb3ZlcnJpZGUgSUVudHJ5TGlzdCBOZXdFbnRyeUxpc3QoKQ0KKwkJew0KKwkJCXJldHVybiBuZXcgQXBwRW50cnlMaXN0KCk7DQorCQl9DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9BcHBVc2VyUHJvZmlsZS5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQXBwVXNlclByb2ZpbGUuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQwZGFjOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQXBwVXNlclByb2ZpbGUuY3MKQEAgLTAsMCArMSw4NCBAQAordXNpbmcgU3lzdGVtLlNlY3VyaXR5LlByaW5jaXBhbDsNCit1c2luZyBTeXN0ZW0uVGV4dDsNCit1c2luZyBOZXh1cy5Db3JlLlByb2ZpbGU7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5Db3JlDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBFeHRlbmQgVXNlclByb2ZpbGUgdG8gaW5jbHVkZSBwcm9wZXJ0aWVzIHNwZWNpZmljIHRvIHRoaXMgYXBwbGljYXRpb24sIA0KKwkvLy8gc3VjaCBhcyBJc0VkaXRvci4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlwdWJsaWMgY2xhc3MgQXBwVXNlclByb2ZpbGUgOiBVc2VyUHJvZmlsZQ0KKwl7DQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBhIGZpZWxkIGZvciBJc0VkaXRvciBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwcml2YXRlIGJvb2wgX0lzRWRpdG9yID0gZmFsc2U7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSW5kaWNhdGUgd2hldGhlciB1c2VyIGhhcyBlZGl0aW5nIHByaXZlbGVnZXMuIA0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBib29sIElzRWRpdG9yDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9Jc0VkaXRvcjsgfQ0KKwkJCXNldCB7IF9Jc0VkaXRvciA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBhIGZpZWxkIGZvciBFbnRyeSBwcm9wZXJ0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlwcml2YXRlIEFwcEVudHJ5IF9FbnRyeTsNCisNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZWNvcmQgZGlyZWN0b3J5IGVudHJ5IGZvciB1c2VyLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBBcHBFbnRyeSBFbnRyeQ0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfRW50cnk7IH0NCisJCQlzZXQNCisJCQl7DQorCQkJCV9FbnRyeSA9IHZhbHVlOw0KKwkJCQlpZiAoX0VudHJ5ICE9IG51bGwpDQorCQkJCXsNCisJCQkJCVN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOw0KKwkJCQkJc2IuQXBwZW5kKF9FbnRyeS5maXJzdF9uYW1lKTsNCisJCQkJCXNiLkFwcGVuZCgiICIpOw0KKwkJCQkJc2IuQXBwZW5kKEVudHJ5Lmxhc3RfbmFtZSk7DQorCQkJCQlGdWxsTmFtZSA9IHNiLlRvU3RyaW5nKCkuVHJpbSgpOw0KKwkJCQl9DQorCQkJfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBmaWVsZCBmb3IgRnVsbE5hbWUgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSBzdHJpbmcgX0Z1bGxOYW1lOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFJlY29yZCB0aGUgdXNlcidzIGZ1bGwgbmFtZSAoZmlyc3QgYW5kIGxhc3QgbmFtZXMpLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBzdHJpbmcgRnVsbE5hbWUNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0Z1bGxOYW1lOyB9DQorCQkJc2V0IHsgX0Z1bGxOYW1lID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJbnN0YW50aWF0ZSBmcm9tIGFuIElJZGVudGl0eS4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImlkIj5JZGVudGl0eSB0byBjb3B5IGZvciB0aGlzIHByb2ZpbGUuPC9wYXJhbT4NCisJCS8vLyANCisJCXB1YmxpYyBBcHBVc2VyUHJvZmlsZShJSWRlbnRpdHkgaWQpDQorCQl7DQorCQkJUHJpbmNpcGFsID0gbmV3IFVzZXJQcmluY2lwYWwoaWQpOw0KKwkJfQ0KKw0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQ2xhc3MxLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9DbGFzczEuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdhODJkMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQ2xhc3MxLmNzCkBAIC0wLDAgKzEsNyBAQAorDQorbmFtZXNwYWNlIFBob25lQm9vazIuQ29yZQ0KK3sNCisgICAgcHVibGljIGNsYXNzIENsYXNzMQ0KKyAgICB7DQorICAgIH0NCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db21tYW5kcy9BcHBDb21tYW5kLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db21tYW5kcy9BcHBDb21tYW5kLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhZWI4MzgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvbW1hbmRzL0FwcENvbW1hbmQuY3MKQEAgLTAsMCArMSw4NCBAQAorLyoNCisgKiBDb3B5cmlnaHQgMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICogDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqIA0KKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICogDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIFN5c3RlbTsNCit1c2luZyBJQmF0aXNOZXQuRGF0YU1hcHBlcjsNCit1c2luZyBOZXh1cy5Db3JlOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZS5Db21tYW5kcw0KK3sNCisgICAgLy8vIDxzdW1tYXJ5Pg0KKyAgICAvLy8gRXh0ZW5kIFJlcXVlc3RDb21tYW5kIHdpdGggZGF0YSBhY2Nlc3MgbWV0aG9kcy4NCisgICAgLy8vIDwvc3VtbWFyeT4NCisgICAgLy8vIA0KKyAgICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQmFzZU1hcHBlciA6IFJlcXVlc3RDb21tYW5kDQorICAgIHsNCisgICAgICAgIC8vLyA8c3VtbWFyeT4NCisgICAgICAgIC8vLyBQcm92aWRlIGEgZmllbGQgZm9yIE1hcHBlciBwcm9wZXJ0eS4NCisgICAgICAgIC8vLyA8L3N1bW1hcnk+DQorICAgICAgICAvLy8gDQorICAgICAgICBwcml2YXRlIFNxbE1hcHBlciBfTWFwcGVyOw0KKw0KKyAgICAgICAgLy8vIDxzdW1tYXJ5Pg0KKyAgICAgICAgLy8vIEV4cG9zZSBhIHByZWNvbmZpZ3VyZWQgU3FsTWFwcGVyIGluc3RhbmNlIHRoYXQgQ29tbWFuZHMgY2FuIHVzZSB0byBydW4gc3RhdGVtZW50cy4NCisgICAgICAgIC8vLyA8L3N1bW1hcnk+DQorICAgICAgICAvLy8gPHJlbWFya3M+PHA+DQorICAgICAgICAvLy8gQ29tbWFuZHMgdXNlIE1hcHBlciB0byBpbnZva2UgU3FsTWFwIHN0YXRlbWVudHMsIHN1Y2ggYXMgDQorICAgICAgICAvLy8gPGNvZGU+DQorICAgICAgICAvLy8gb2JqZWN0IHJvdyA9IE1hcHBlci5RdWVyeUZvck9iamVjdCAoUXVlcnlJRCwgY29udGV4dCk7DQorICAgICAgICAvLy8gPC9jb2RlPi4NCisgICAgICAgIC8vLyA8L3A+PHA+DQorICAgICAgICAvLy8gQW55IFNxbE1hcHBlciBBUEkgbWV0aG9kIG1heSBiZSBjYWxsZWQuIA0KKyAgICAgICAgLy8vIDwvcD48cD4NCisgICAgICAgIC8vLyBUaGUgZGVmYXVsdCBiZWhhdmlvciBvZiBCQXNlTmV4dXNDb21tYW5kIGlzIHRvIHVzZSB0aGUgDQorICAgICAgICAvLy8gY29tbWFuZCBJRCBpZiB0aGUgUXVlcnlJRCBpcyBudWxsLg0KKyAgICAgICAgLy8vIDwvcD48L3JlbWFya3M+DQorICAgICAgICAvLy8gPHJldHVybnM+UHJlY29uZmlndXJlZCBNYXBwZXIgaW5zdGFuY2U8L3JldHVybnM+DQorICAgICAgICAvLy8gDQorICAgICAgICBwdWJsaWMgU3FsTWFwcGVyIE1hcHBlcg0KKyAgICAgICAgew0KKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfTWFwcGVyOyB9DQorICAgICAgICAgICAgc2V0IHsgX01hcHBlciA9IHZhbHVlOyB9DQorDQorICAgICAgICB9DQorDQorICAgICAgICAvLy8gPHN1bW1hcnk+DQorICAgICAgICAvLy8gSW5kaWNhdGUgd2hldGhlciBzdHJpbmcgaXMgbnVsbCBvciB6ZXJvIGxlbmd0aC4NCisgICAgICAgIC8vLyA8L3N1bW1hcnk+DQorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImlucHV0Ij5JbnB1dCB0byB2YWxpZGF0ZTwvcGFyYW0+DQorICAgICAgICAvLy8gPHJldHVybnM+VHJ1ZSBpZiBzdHJpbmcgaXMgbnl1bGwgb3IgemVybyBsZW5ndGg8L3JldHVybnM+DQorICAgICAgICAvLy8gDQorICAgICAgICBwdWJsaWMgYm9vbCBJc0VtcHR5KHN0cmluZyBpbnB1dCkNCisgICAgICAgIHsNCisgICAgICAgICAgICByZXR1cm4gKChpbnB1dCA9PSBudWxsKSB8fCAoaW5wdXQuRXF1YWxzKFN0cmluZy5FbXB0eSkpKTsNCisgICAgICAgIH0NCisNCisgICAgICAgIC8vLyA8c3VtbWFyeT4NCisgICAgICAgIC8vLyBDcmVhdGUgbmV3IEdsb2JhbCBVbml2ZXJzYWwgSWRlbnRpZmVyIGFzIGEgZm9ybWF0dGVkIHN0cmluZy4NCisgICAgICAgIC8vLyA8L3N1bW1hcnk+DQorICAgICAgICAvLy8gPHJldHVybnM+U3RyaW5nIHJlcHJlc2VudGluZyBhIG5ldyBHVUlEPC9yZXR1cm5zPg0KKyAgICAgICAgLy8vIDxyZW1hcmtzPjxwPg0KKyAgICAgICAgLy8vIE5vIHR3byBjYWxscyB0byB0aGlzIG1ldGhvZCB3aWxsIGV2ZXIgcmV0dXJuIGR1cGxpY2F0ZSBzdHJpbmdzLg0KKyAgICAgICAgLy8vIDwvcD48L3JlbWFya3M+DQorICAgICAgICAvLy8gDQorICAgICAgICBwdWJsaWMgc3RyaW5nIEd1aWRTdHJpbmcoKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIEd1aWQgZ3VpZCA9IEd1aWQuTmV3R3VpZCgpOw0KKyAgICAgICAgICAgIHN0cmluZyBncyA9IGd1aWQuVG9TdHJpbmcoKTsNCisgICAgICAgICAgICByZXR1cm4gZ3M7DQorICAgICAgICB9DQorDQorICAgIH0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db21tYW5kcy9CYXNlQ29tbWFuZC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQ29tbWFuZHMvQmFzZUNvbW1hbmQuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA5ZjllYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQ29tbWFuZHMvQmFzZUNvbW1hbmQuY3MKQEAgLTAsMCArMSwxNjMgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uVGV4dDsNCit1c2luZyBBZ2lsaXR5LkNvcmU7DQordXNpbmcgSUJhdGlzTmV0LkRhdGFNYXBwZXI7DQordXNpbmcgTmV4dXMuQ29yZTsNCit1c2luZyBTcHJpbmcuT2JqZWN0cy5GYWN0b3J5Ow0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZS5Db21tYW5kcw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gUHJvdmlkZSBhbiBhYnRyYWN0IGV4dGVuc2lvbiBvZiBCYXNlTmV4dXNDb21tYW5kIA0KKwkvLy8gd2l0aCBzaGFyZWQgbWVtYmVycyBmb3IgV05FIENvbW1hbmRzLCANCisJLy8vIGluY2x1ZGluZyBhIFNxbE1hcHBlciBmYWN0b3J5IG1ldGhvZC4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIDxyZW1hcmtzPjxwPg0KKwkvLy8gU3VwZXJjbGFzc2VzIG11c3QgaW1wbGVtZW50IGEgTmV4dXNFeGVjdXRlIG1ldGhvZCAoaW5oZXJpdGVkIGZyb20gQmFzZU5leHVzQ29tbWFuZC4NCisJLy8vIDwvcD48cD4NCisJLy8vIENvbmNyZXRlIHN1YmNsYXNzZXMgYXJlIGV4cGVjdGVkIHRvIGJlIGNyZWF0ZWQgYnkgYSBJT0MgQ29udGFpbmVyLCBsaWtlIFNwcmluZy5ORVQuIA0KKwkvLy8gTW9zdCBjb25jcmV0ZSBzdWJjbGFzc2VzIHdpbGwgYmUgImRlY29yYXRvciIgY2xhc3NlcyBkZXNpZ25lZCB0byBiZWhhdmUgDQorCS8vLyBkaWZmZXJlbnRseSBiYXNlZCBvbiB3aGF0IHByb3BlcnRpZXMgYXJlIHNldCB3aGVuIHRoZSBjbGFzcyBpcyBjcmVhdGVkLiANCisJLy8vIE90aGVycyBtYXkgYmUgY3VzdG9tIGNsYXNzZXMgd2l0aCBwcmVkZWZpbmVkIGJlaGF2aW9ycy4gDQorCS8vLyA8L3A+PHA+DQorCS8vLyBUaGUgU3ByaW5nIGNhdGFsb2cgcHJvdmlkZXMgdGhlIHZlcnNhdGlsaXR5IHdlIG5lZWQgdG8gbWl4LWFuZC1tYXRjaCANCisJLy8vIGJhc2UgY29tbWFuZHMgd2l0aCBjdXN0b20gY29tbWFuZHMsIGFzIG5lZWRlZCwgDQorCS8vLyBhbmQgY2FsbCBlaXRoZXIgZnJvbSB0aGUgY2xpZW50IGluIGV4YWN0bHkgdGhlIHNhbWUgd2F5Lg0KKwkvLy8gPC9wPjxwPg0KKwkvLy8gTk9URSB0aGF0IHN1YmNsYXNzZXMgc2hvdWxkIE5PVCB1c2UgdGhlIE91dGNvbWUgcHJvcGVydHkgb2YgDQorCS8vLyB0aGUgTmV4dXMgY29udGV4dCBzaW5jZSB0aGV5IG1heSBiZSBzdWJjb21tYW5kcyBpbiBhIENoYWluLiANCisJLy8vIEFsbCBCYXNlQ29tbWFuZHMgc2hvdWxkIHVzZSB0aGUgaWRpb20gDQorCS8vLyA8Y29kZT5jb250ZXh0W0lEXSA9IG9iamVjdDwvY29kZT4NCisJLy8vIHRvIHN0b3JlIG91dHB1dC4NCisJLy8vIDwvcD48cD4NCisJLy8vIE5PVEUgYWZ0ZXIgdXNpbmcgdGhlIFJlU2hhcGVyIGNvZGUgcmVmb3JtYXR0ZXIsIA0KKwkvLy8gdGhlIE1hcHBlciBtZXRob2QgbmVlZHMgdG8gYmUgZWRpdGVkLiANCisJLy8vIFJlU2hhcnBlciByZW1vdmVzIGFuIGFic29sdXRlIHJlZmVyZW5jZSB0aGF0IHdlIGFjdHVhbGx5IG5lZWQuIA0KKwkvLy8gKE91ciBNYXBwZXIgbWV0aG9kIGNhbGxzIHRoZSBJQmF0aXNOZXQgTWFwcGVyIG1ldGhvZC4pDQorCS8vLyBUaGUgY29ycmVjdCBsaW5lIG9mIGNvZGUgaXMgbWFpbnRhaW5lZCBhcyBhIGNvbW1lbnQsIA0KKwkvLy8gc28gdGhhdCBpdCBjYW4gPGI+Y29waWVkPC9iPiBvdmVyIHRoZSByZWZvcm1hdHRlZCB2ZXJzaW9uLiANCisJLy8vIDwvcD48L3JlbWFya3M+DQorCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tbWFuZCA6IFJlcXVlc3RDb21tYW5kLCBJT2JqZWN0TmFtZUF3YXJlDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJZiBhbiBJRCBpcyBub3QgcHJvdmlkZWQsIGRlZmF1bHQgdG8gdGhlIE9iamVjdE5hbWUuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIG92ZXJyaWRlIHN0cmluZyBJRA0KKwkJew0KKwkJCWdldA0KKwkJCXsNCisJCQkJc3RyaW5nIF9JRCA9IGJhc2UuSUQ7DQorCQkJCWlmIChudWxsID09IF9JRCkgcmV0dXJuIE9iamVjdE5hbWU7DQorCQkJCWVsc2UgcmV0dXJuIF9JRDsNCisJCQl9DQorCQkJc2V0IHsgYmFzZS5JRCA9IHZhbHVlOyB9DQorCQl9DQorDQorCQlwcml2YXRlIHN0cmluZyBfT2JqZWN0TmFtZTsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgZmllbGQgZm9yIHRoZSBTcHJpbmcgb2JqZWN0IG5hbWUgKHNldCBieSBTcHJpbmcpLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXB1YmxpYyBzdHJpbmcgT2JqZWN0TmFtZQ0KKwkJew0KKwkJCWdldCB7IHJldHVybiBfT2JqZWN0TmFtZTsgfQ0KKwkJCXNldCB7IF9PYmplY3ROYW1lID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgZmllbGQgZm9yIHRoZSBSZW1hcmsgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHJpdmF0ZSBzdHJpbmcgX1JlbWFyazsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBBY2NlcHQgYW4gYXJiaXRyYXJ5IGNvbW1lbnQgYWJvdXQgYSBjb21tYW5kIA0KKwkJLy8vIC0tIG1vcmUgZm9yIHVzZSBpbiB0aGUgWE1MIGRvY3VtZW50Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBzdHJpbmcgUmVtYXJrDQorCQl7DQorCQkJZ2V0IHsgcmV0dXJuIF9SZW1hcms7IH0NCisJCQlzZXQgeyBfUmVtYXJrID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgZmllbGQgZm9yIHRoZSBNYXBwZXIgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSBTcWxNYXBwZXIgX01hcHBlcjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBFeHBvc2UgYSBwcmVjb25maWd1cmVkIFNxbE1hcHBlciBpbnN0YW5jZSB0aGF0IENvbW1hbmRzIGNhbiB1c2UgdG8gcnVuIHN0YXRlbWVudHMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIENvbW1hbmRzIHVzZSBNYXBwZXIgdG8gaW52b2tlIFNxbE1hcCBzdGF0ZW1lbnRzLCBzdWNoIGFzIA0KKwkJLy8vIDxjb2RlPg0KKwkJLy8vIG9iamVjdCByb3cgPSBNYXBwZXIgKCkuUXVlcnlGb3JPYmplY3QgKFF1ZXJ5SUQsIGNvbnRleHQpOw0KKwkJLy8vIDwvY29kZT4uDQorCQkvLy8gPC9wPjxwPg0KKwkJLy8vIEFueSBTcWxNYXBwZXIgQVBJIG1ldGhvZCBtYXkgYmUgY2FsbGVkLiANCisJCS8vLyA8L3A+PHA+DQorCQkvLy8gVGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgQkFzZU5leHVzQ29tbWFuZCBpcyB0byB1c2UgdGhlIA0KKwkJLy8vIGNvbW1hbmQgSUQgaWYgdGhlIFF1ZXJ5SUQgaXMgbnVsbC4NCisJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJLy8vIDxyZXR1cm5zPlByZWNvbmZpZ3VyZWQgTWFwcGVyPC9yZXR1cm5zPg0KKwkJLy8vIA0KKwkJcHVibGljIFNxbE1hcHBlciBNYXBwZXINCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX01hcHBlcjsgfQ0KKwkJCXNldCB7IF9NYXBwZXIgPSB2YWx1ZTsgfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEluZGljYXRlIHdoZXRoZXIgc3RyaW5nIGlzIG51bGwgb3IgemVybyBsZW5ndGguDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJpbnB1dCI+SW5wdXQgdG8gdmFsaWRhdGU8L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPlRydWUgaWYgc3RyaW5nIGlzIG55dWxsIG9yIHplcm8gbGVuZ3RoPC9yZXR1cm5zPg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIGJvb2wgSXNFbXB0eShzdHJpbmcgaW5wdXQpDQorCQl7DQorCQkJcmV0dXJuICgoaW5wdXQgPT0gbnVsbCkgfHwgKGlucHV0LkVxdWFscyhTdHJpbmcuRW1wdHkpKSk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQ3JlYXRlIG5ldyBHbG9iYWwgVW5pdmVyc2FsIElkZW50aWZlciBhcyBhIGZvcm1hdHRlZCBzdHJpbmcuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZXR1cm5zPlN0cmluZyByZXByZXNlbnRpbmcgYSBuZXcgR1VJRDwvcmV0dXJucz4NCisJCS8vLyA8cmVtYXJrcz48cD4NCisJCS8vLyBObyB0d28gY2FsbHMgdG8gdGhpcyBtZXRob2Qgd2lsbCBldmVyIHJldHVybiBkdXBsaWNhdGUgc3RyaW5ncy4NCisJCS8vLyA8L3A+PC9yZW1hcmtzPg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIHN0cmluZyBHdWlkU3RyaW5nKCkNCisJCXsNCisJCQlHdWlkIGd1aWQgPSBHdWlkLk5ld0d1aWQoKTsNCisJCQlzdHJpbmcgZ3MgPSBndWlkLlRvU3RyaW5nKCk7DQorCQkJcmV0dXJuIGdzOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIERvY3VtZW50IHRoZSB3aWxkY2FyZCBjaGFyYWN0ZXIgdXNlZCBieSBTUUwgcXVlcmllcy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFdJTERDQVJEID0gIiUiOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByZXBhcmUgYW4gYXR0cmlidXRlIGZvciB1c2Ugd2l0aCBhIFNRTCB3aWxkY2FyZCAoIkxJS0UiKSBvcGVyYXRpb24uDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcmtzPjxwPg0KKwkJLy8vIEEgd2lsZGNhcmQgaXMgcHJlcGVuZGVkIGFuZCBhcHBlbmRlZCBmb3IgYSBmdWxsLCBzY2FuLWFjcm9zcyBtYXRjaCwgDQorCQkvLy8gc28gdGhhdCB0aGUgc3RyaW5nIHdpbGwgZm91bmQgaW4gYW55IHBhcnQgb2YgdGhlIGZpZWxkLg0KKwkJLy8vIDwvcD48L3JlbWFya3M+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRleHQiPkNvbnRleHQgd2l0aCBhdHRyaWJ1dGUgdG8gZXNjYXBlPC9wYXJhbT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iaWQiPk5hbWUgb2YgYXR0cmlidXRlIHRvIGVzY2FwZTwvcGFyYW0+DQorCQlwcm90ZWN0ZWQgdm9pZCBMaWtlTWUoSUNvbnRleHQgY29udGV4dCwgc3RyaW5nIGlkKQ0KKwkJew0KKwkJCXN0cmluZyBwYXJhbSA9IGNvbnRleHRbaWRdIGFzIHN0cmluZzsNCisJCQlpZiAobnVsbCAhPSBwYXJhbSkNCisJCQl7DQorCQkJCVN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcihXSUxEQ0FSRCk7DQorCQkJCXNiLkFwcGVuZChwYXJhbSk7DQorCQkJCXNiLkFwcGVuZChXSUxEQ0FSRCk7DQorCQkJCWNvbnRleHRbaWRdID0gc2IuVG9TdHJpbmcoKTsNCisJCQl9DQorCQl9DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db21tYW5kcy9CYXNlQ291bnQuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvbW1hbmRzL0Jhc2VDb3VudC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTQwZDllCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db21tYW5kcy9CYXNlQ291bnQuY3MKQEAgLTAsMCArMSwxNyBAQAordXNpbmcgTmV4dXMuQ29yZTsNCisNCituYW1lc3BhY2UgUGhvbmVCb29rLkNvcmUuQ29tbWFuZHMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEludm9rZSBhIHF1ZXJ5IHRoYXQgcmV0dXJucyB0aGUgY291bnQgb2YgYSByZXN1bHQgc2V0Lg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwlwdWJsaWMgY2xhc3MgQmFzZUNvdW50IDogQmFzZU1hcHBlcg0KKwl7DQorCQlwdWJsaWMgb3ZlcnJpZGUgYm9vbCBSZXF1ZXN0RXhlY3V0ZShJUmVxdWVzdENvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQlvYmplY3QgcmVzdWx0ID0gTWFwcGVyLlF1ZXJ5Rm9yT2JqZWN0KFF1ZXJ5SUQsIGNvbnRleHQpOw0KKwkJCWNvbnRleHRbQXBwLklURU1fQ09VTlRdID0gcmVzdWx0Ow0KKwkJCXJldHVybiBDT05USU5VRTsNCisJCX0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvbW1hbmRzL0Jhc2VEZWxldGUuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvbW1hbmRzL0Jhc2VEZWxldGUuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFjMjQ4YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQ29tbWFuZHMvQmFzZURlbGV0ZS5jcwpAQCAtMCwwICsxLDM1IEBACisvKg0KKyAqIENvcHlyaWdodCAyMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKiANCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQordXNpbmcgU3lzdGVtOw0KK3VzaW5nIE5leHVzLkNvcmU7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5Db3JlLkNvbW1hbmRzDQorew0KKyAgICAvLy8gPHN1bW1hcnk+DQorICAgIC8vLyBFeGVjdXRlIGRlbGV0ZSBzdGF0ZW1lbnQgaW5kaWNhdGVkIGJ5IFF1ZXJ5SUQgDQorICAgIC8vLyBmb3IgYSBzaW5nbGUgZW50aXR5Lg0KKyAgICAvLy8gPC9zdW1tYXJ5Pg0KKyAgICAvLy8gDQorICAgIHB1YmxpYyBjbGFzcyBCYXNlRGVsZXRlIDogQmFzZU1hcHBlcg0KKyAgICB7DQorICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgYm9vbCBSZXF1ZXN0RXhlY3V0ZShJUmVxdWVzdENvbnRleHQgY29udGV4dCkNCisgICAgICAgIHsNCisgICAgICAgICAgICBpbnQgY291bnQgPSBNYXBwZXIuRGVsZXRlKFF1ZXJ5SUQsIGNvbnRleHQpOw0KKyAgICAgICAgICAgIGlmIChjb3VudCA9PSAwKSB0aHJvdyBuZXcgQXBwbGljYXRpb25FeGNlcHRpb24oIkRlbGV0ZTogUmVjb3JkIG5vdCBmb3VuZC4iKTsNCisgICAgICAgICAgICByZXR1cm4gQ09OVElOVUU7DQorICAgICAgICB9DQorICAgIH0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db21tYW5kcy9CYXNlRW50cnkuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvbW1hbmRzL0Jhc2VFbnRyeS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2Y2OWQxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db21tYW5kcy9CYXNlRW50cnkuY3MKQEAgLTAsMCArMSw0NiBAQAorLyoNCisgKiBDb3B5cmlnaHQgMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICogDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqIA0KKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICogDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBOZXh1cy5Db3JlOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZS5Db21tYW5kcw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gRXhlY3V0ZSBkYXRhYmFzZSBzdGF0ZW1lbnQgaW5kaWNhdGVkIGJ5IFF1ZXJ5SUQgDQorCS8vLyBmb3IgYSBzaW5nbGUgb2JqZWN0LCANCisJLy8vIHJldHVybmluZyBlYWNoIGF0dHJpYnV0ZSBpbiB0aGUgbWFpbiBjb250ZXh0Lg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gDQorCXB1YmxpYyBjbGFzcyBCYXNlRW50cnkgOiBCYXNlTWFwcGVyDQorCXsNCisJCXB1YmxpYyBvdmVycmlkZSBib29sIFJlcXVlc3RFeGVjdXRlKElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KQ0KKwkJew0KKwkJCW9iamVjdCBvID0gTWFwcGVyLlF1ZXJ5Rm9yT2JqZWN0KFF1ZXJ5SUQsIGNvbnRleHQpOw0KKyAgICAgICAgICAgIElEaWN0aW9uYXJ5IHJlc3VsdCA9IG8gYXMgSURpY3Rpb25hcnk7DQorDQorCQkgICAgSUNvbGxlY3Rpb24ga2V5cyA9IHJlc3VsdC5LZXlzOw0KKyAgICAgICAgICAgIGZvcmVhY2ggKHN0cmluZyBrZXkgaW4ga2V5cykNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIGNvbnRleHRba2V5XSA9IHJlc3VsdFtrZXldOw0KKyAgICAgICAgICAgIH0NCisNCisJCSAgICBBcHBFbnRyeSBlbnRyeSA9IG5ldyBBcHBFbnRyeShyZXN1bHQpOw0KKyAgICAgICAgICAgIGNvbnRleHRbSURdID0gZW50cnk7DQorCQkgICAgDQorCQkgICAgcmV0dXJuIENPTlRJTlVFOw0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQ29tbWFuZHMvQmFzZUZpbHRlckxpc3QuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvbW1hbmRzL0Jhc2VGaWx0ZXJMaXN0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3NzRiNTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvbW1hbmRzL0Jhc2VGaWx0ZXJMaXN0LmNzCkBAIC0wLDAgKzEsNDEgQEAKKy8qDQorICogQ29weXJpZ2h0IDIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyAqIA0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKiANCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqIA0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8NCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgTmV4dXMuQ29yZTsNCisNCituYW1lc3BhY2UgUGhvbmVCb29rLkNvcmUuQ29tbWFuZHMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIEV4ZWN1dGUgZGF0YWJhc2Ugc3RhdGVtZW50IGluZGljYXRlZCBieSBRdWVyeUlEIA0KKwkvLy8gYW5kIHdyYXAgcmVzdWx0IGluIEtleVZhbHVlIG9iamVjdHMgDQorCS8vLyBzbyB0aGF0IGxpc3RzIGNhbiBiZSBkaXNwbGF5ZWQgYnkgc3RhbmRhcmQgbWV0aG9kcy4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlwdWJsaWMgY2xhc3MgQmFzZUZpbHRlckxpc3QgOiBCYXNlTWFwcGVyDQorCXsNCisJCXB1YmxpYyBvdmVycmlkZSBib29sIFJlcXVlc3RFeGVjdXRlKElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KQ0KKwkJew0KKwkJCUlMaXN0IHJvd3MgPSBNYXBwZXIuUXVlcnlGb3JMaXN0KFF1ZXJ5SUQsIG51bGwpOw0KKwkJCUlLZXlWYWx1ZUxpc3QgbGlzdCA9IG5ldyBLZXlWYWx1ZUxpc3QoKTsNCisJCQlmb3JlYWNoIChvYmplY3Qga2V5IGluIHJvd3MpDQorCQkJew0KKwkJCQlsaXN0LkFkZChuZXcgS2V5VmFsdWUoa2V5LlRvU3RyaW5nKCksIGtleSkpOw0KKwkJCX0NCisJCQljb250ZXh0W0lEXSA9IGxpc3Q7DQorCQkJcmV0dXJuIENPTlRJTlVFOw0KKwkJfQ0KKwl9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQ29tbWFuZHMvQmFzZUxpc3QuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvbW1hbmRzL0Jhc2VMaXN0LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlOTFkODIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvbW1hbmRzL0Jhc2VMaXN0LmNzCkBAIC0wLDAgKzEsMTIyIEBACit1c2luZyBTeXN0ZW07DQordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KK3VzaW5nIE5leHVzLkNvcmU7DQordXNpbmcgUGhvbmVCb29rLkNvcmU7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5Db3JlLkNvbW1hbmRzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBSdW4gdGhlIHNlbGVjdCBxdWVyeSBpbmRpY2F0ZWQgYnkgUXVlcnlJRCwgDQorCS8vLyBmaXJzdCBlc2NhcGluZyBhbnkgTGlrZUlEcyBhbmQgZXh0ZW5kaW5nIGFueSBkYXRlIHJhbmdlcywNCisJLy8vIGFuZCByZXR1cm4gdGhlIHJlc3VsdCBhcyBhbiBJTGlzdCwgDQorCS8vLyA8L3N1bW1hcnk+DQorCXB1YmxpYyBjbGFzcyBCYXNlTGlzdCA6IEJhc2VDb21tYW5kDQorCXsNCisJCXByaXZhdGUgSUxpc3QgX0xpa2VJRHMgPSBudWxsOw0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIE5hbWVzIG9mIGtleSBmaWVsZHMgdG8gZXNjYXBlIGZvciBhICJsaWtlIiBzZWFyY2guDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIElMaXN0IExpa2VJRHMNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0xpa2VJRHM7IH0NCisJCQlzZXQgeyBfTGlrZUlEcyA9IHZhbHVlOyB9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gR2VuZXJhdGUgYW4gYXJyYXkgZnJvbSB0aGUgSURzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cmV0dXJucz5BcnJheSBvZiBMaWtlSURzPC9yZXR1cm5zPg0KKwkJcHJvdGVjdGVkIHN0cmluZ1tdIEdldEFycmF5KHN0cmluZyBJRHMpDQorCQl7DQorCQkJc3RyaW5nIGNzdiA9IElEczsNCisJCQlib29sIG5vTGlrZSA9ICgobnVsbCA9PSBjc3YpIHx8IChzdHJpbmcuRW1wdHkuRXF1YWxzKGNzdikpKTsNCisJCQlpZiAobm9MaWtlKQ0KKwkJCQlyZXR1cm4gbmV3IHN0cmluZ1swXTsNCisJCQllbHNlDQorCQkJew0KKwkJCQlzdHJpbmdbXSBfQXJyYXkgPSBjc3YuU3BsaXQoJywnKTsNCisJCQkJcmV0dXJuIF9BcnJheTsNCisJCQl9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRG9jdW1lbnQgdGhlIGxhc3Qgc2Vjb25kIG9mIHRoZSBkYXkgDQorCQkvLy8gc28gYXMgdG8gY2FsY3VsYXRlIHZhbHVlcyBmb3IgY29uY2VwdHMgbGlrZSB0b2RheSBhbmQgdG9tb3Jyb3cuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHJpdmF0ZSBzdHJpbmcgTEFTVF9USUNLID0gIiAyMzo1OSI7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gSWYgVGhydURhdGUgaXMgc2V0IHRvIHRoZSBtaW5pbXVtIHRpbWUgKDAwOjAwKSwgDQorCQkvLy8gc2V0IHRvIHRoZSBtYXhpbXVtIHRpbWUgaW5zdGVhZCAoMjM6NTkpLiANCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRleHQiPjwvcGFyYW0+DQorCQlwcml2YXRlIHZvaWQgRXh0ZW5kVGhydURhdGUoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJYm9vbCBoYXZlID0gY29udGV4dC5Db250YWlucyhBcHAuVEhSVV9EQVRFKTsNCisJCQlpZiAoIWhhdmUpIHJldHVybjsNCisJCQlEYXRlVGltZSB0aHJ1RGF0ZSA9IERhdGVUaW1lLk1pblZhbHVlOw0KKwkJCXRyeQ0KKwkJCXsNCisJCQkJdGhydURhdGUgPSAoRGF0ZVRpbWUpIGNvbnRleHRbQXBwLlRIUlVfREFURV07DQorCQkJfQ0KKwkJCWNhdGNoIChFeGNlcHRpb24gZSkNCisJCQl7DQorCQkJCWlmIChlICE9IG51bGwpIHJldHVybjsgLy8gUGxhY2F0ZSBSZXNoYXJwZXINCisJCQl9DQorCQkJYm9vbCBkZWZhdWx0VGltZSA9ICh0aHJ1RGF0ZS5Ib3VyID09IDApICYmICh0aHJ1RGF0ZS5NaW51dGUgPT0gMCkgJiYgKHRocnVEYXRlLlNlY29uZCA9PSAwKSAmJg0KKwkJCQkodGhydURhdGUuTWlsbGlzZWNvbmQgPT0gMCk7DQorCQkJaWYgKGRlZmF1bHRUaW1lKQ0KKwkJCXsNCisJCQkJc3RyaW5nIHN0clRocnVEYXRlID0gdGhydURhdGUuVG9TaG9ydERhdGVTdHJpbmcoKSArIExBU1RfVElDSzsNCisJCQkJRGF0ZVRpbWUgbmV3VGhydURhdGUgPSBDb252ZXJ0LlRvRGF0ZVRpbWUoc3RyVGhydURhdGUpOw0KKwkJCQljb250ZXh0LlJlbW92ZShBcHAuVEhSVV9EQVRFKTsNCisJCQkJY29udGV4dC5BZGQoQXBwLlRIUlVfREFURSwgbmV3VGhydURhdGUpOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcmVwYXJlIHNwZWNpYWwgYXR0cmlidXRlcyBmb3IgdGhlIHF1ZXJ5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+VGhlIGNvbnRleHQgd2UgYXJlIHByb2Nlc3Npbmc8L3BhcmFtPg0KKwkJcHJvdGVjdGVkIHZvaWQgUHJlUHJvY2VzcyhJUmVxdWVzdENvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQkvLyBFc2NhcGUgYW55ICJsaWtlIiBmaWVsZHMNCisJCQlJTGlzdCBsaWtlcyA9IExpa2VJRHM7DQorCQkJaWYgKGxpa2VzICE9IG51bGwpDQorCQkJew0KKwkJCQlJRW51bWVyYXRvciBlID0gbGlrZXMuR2V0RW51bWVyYXRvcigpOw0KKwkJCQl3aGlsZSAoZS5Nb3ZlTmV4dCgpKQ0KKwkJCQkJTGlrZU1lKGNvbnRleHQsIGUuQ3VycmVudCBhcyBzdHJpbmcpOw0KKwkJCX0NCisNCisJCQkvLyBFeHRlbmQgYW55ICJ0aHJ1X2RhdGUiIHRvIG1pZG5pZ2h0DQorCQkJRXh0ZW5kVGhydURhdGUoY29udGV4dCk7DQorDQorCQkJLy8gRW5zdXJlIHRoYXQgbGlzdF9pdGVtIGFuZCBsaXN0X29mZnNldCBhcmUgbnVtZXJpYw0KKwkJCW9iamVjdCBsaW1pdCA9IGNvbnRleHRbQXBwLklURU1fTElNSVRdOw0KKwkJCWlmIChsaW1pdCAhPSBudWxsKQ0KKwkJCXsNCisJCQkJY29udGV4dFtBcHAuSVRFTV9MSU1JVF0gPSBDb252ZXJ0LlRvSW50MzIobGltaXQpOw0KKwkJCQlvYmplY3Qgb2Zmc2V0ID0gY29udGV4dFtBcHAuSVRFTV9PRkZTRVRdOw0KKwkJCQljb250ZXh0W0FwcC5JVEVNX09GRlNFVF0gPSBDb252ZXJ0LlRvSW50MzIob2Zmc2V0KTsNCisJCQl9DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUHJvdmlkZSBhIGRlZmF1bHQsIGNvbnZlbmllbmNlIGltcGxlbWVudGF0aW9uIHRoYXQgd2lsbCBydW4gYSAiUXVlcnlGb3JMaXN0IiANCisJCS8vLyB1c2luZyBhIGRhdGEgbWFwcGluZyBzdGF0ZW1lbnQgb2YgdGhlIHNhbWUgSUQgYXMgdGhlIENvbW1hbmQ7IA0KKwkJLy8vIG92ZXJyaWRlIGFzIG5lZWRlZC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImNvbnRleHQiPlRoZSBJTmV4dXNDb250ZXh0IHdlIGFyZSBwcm9jZXNzaW5nLjwvcGFyYW0+DQorCQkvLy8gPHJldHVybnM+Q09OVElOVUUsIGlmIGFuIEV4Y2VwdGlvbiBpcyBub3QgdGhyb3duLjwvcmV0dXJucz4NCisJCXB1YmxpYyBvdmVycmlkZSBib29sIFJlcXVlc3RFeGVjdXRlKElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KQ0KKwkJew0KKwkJCVByZVByb2Nlc3MoY29udGV4dCk7DQorDQorCQkJSUxpc3Qgcm93cyA9IE1hcHBlci5RdWVyeUZvckxpc3QoUXVlcnlJRCwgY29udGV4dCk7DQorCQkJY29udGV4dFtJRF0gPSByb3dzOw0KKwkJCXJldHVybiBDT05USU5VRTsNCisJCX0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvbW1hbmRzL0Jhc2VTYXZlLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db21tYW5kcy9CYXNlU2F2ZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODFmZGFjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db21tYW5kcy9CYXNlU2F2ZS5jcwpAQCAtMCwwICsxLDkyIEBACit1c2luZyBOZXh1cy5Db3JlOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZS5Db21tYW5kcw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gU3RvcmUgYW4gZW50aXR5IGZvciBmdXR1cmUgcmVmZXJlbmNlLg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gDQorCXB1YmxpYyBjbGFzcyBCYXNlU2F2ZSA6IEJhc2VNYXBwZXINCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIFByb3ZpZGUgYSBmaWVsZCBmb3IgS2V5SUQgcHJvcGVydHkuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSBzdHJpbmcgX0tleUlEID0gbnVsbDsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBSZWNvcmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZW50aXR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBzdHJpbmcgS2V5SUQNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0tleUlEOyB9DQorCQkJc2V0IHsgX0tleUlEID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgZmllbGQgZm9yIEluc2VydElEIHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCXByaXZhdGUgc3RyaW5nIF9JbnNlcnRJRCA9IG51bGw7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmVjb3JkIHRoZSBuYW1lIG9mIHRoZSAiaW5zZXJ0IiBtYXBwaW5nIGZvciB0aGUgZW50aXR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBzdHJpbmcgSW5zZXJ0SUQNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX0luc2VydElEOyB9DQorCQkJc2V0IHsgX0luc2VydElEID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBQcm92aWRlIGEgZmllbGQgZm9yIFVwZGF0ZUlEIHByb3BlcnR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXByaXZhdGUgc3RyaW5nIF9VcGRhdGVJRCA9IG51bGw7DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gUmVjb3JkIHRoZSBuYW1lIG9mIHRoZSAidXBkYXRlIiBtYXBwaW5nIGZvciB0aGUgZW50aXR5Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCXB1YmxpYyBzdHJpbmcgVXBkYXRlSUQNCisJCXsNCisJCQlnZXQgeyByZXR1cm4gX1VwZGF0ZUlEOyB9DQorCQkJc2V0IHsgX1VwZGF0ZUlEID0gdmFsdWU7IH0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBJbnNlcnQgb3IgdXBkYXRlIGFuIGVudGl0eSB0byB0aGUgcGVyc2lzdGVudCBzdG9yZS4gDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxyZW1hcms+PHA+DQorCQkvLy8gSWYgdGhlICJmaWVsZElEIiBpcyBlbXB0eSwgdXNlIHRoZSBpbnNlcnRJRCBzdGF0ZW1lbnQsIA0KKwkJLy8vIG90aGVyd2lzZSwgdXNlIHRoZSB1cGRhdGVJRCBzdGF0ZW1lbnQuDQorCQkvLy8gPC9wPjwvcmVtYXJrPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5UaGUgSU5leHVzQ29udGV4dCB3ZSBhcmUgcHJvY2Vzc2luZy48L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJmaWVsZElEIj5UaGUgbmFtZSBvZiB0aGUga2V5IGZpZWxkLjwvcGFyYW0+DQorCQkvLy8gPHBhcmFtIG5hbWU9Imluc2VydElEIj5UaGUgbmFtZSBvZiB0aGUgImluc2VydCIgbWFwcGluZyBmb3IgdGhlIEVudGl0eS48L3BhcmFtPg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJ1cGRhdGVJRCI+VGhlIG5hbWUgb2YgdGhlICJ1cGRhdGUiIG1hcHBpbmcgZm9yIHRoZSBFbnRpdHkuPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5GYWxzZTwvcmV0dXJucz4NCisJCS8vLyANCisJCXByb3RlY3RlZCBib29sIFNhdmUoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQsIHN0cmluZyBmaWVsZElELCBzdHJpbmcgaW5zZXJ0SUQsIHN0cmluZyB1cGRhdGVJRCkNCisJCXsNCisJCQlib29sIGluc2VydCA9IElzRW1wdHkoY29udGV4dFtmaWVsZElEXSBhcyBzdHJpbmcpOw0KKw0KKwkJCWlmIChpbnNlcnQpDQorCQkJew0KKwkJCQljb250ZXh0W2ZpZWxkSURdID0gR3VpZFN0cmluZygpOw0KKwkJCQlNYXBwZXIuSW5zZXJ0KGluc2VydElELCBjb250ZXh0KTsNCisJCQl9DQorCQkJZWxzZQ0KKwkJCQlNYXBwZXIuVXBkYXRlKHVwZGF0ZUlELCBjb250ZXh0KTsNCisNCisJCQlyZXR1cm4gQ09OVElOVUU7DQorCQl9DQorDQorCQlwdWJsaWMgb3ZlcnJpZGUgYm9vbCBSZXF1ZXN0RXhlY3V0ZShJUmVxdWVzdENvbnRleHQgY29udGV4dCkNCisJCXsNCisJCQlyZXR1cm4gU2F2ZShjb250ZXh0LCBLZXlJRCwgSW5zZXJ0SUQsIFVwZGF0ZUlEKTsNCisJCX0NCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvbW1hbmRzL0VudHJ5SW5pdGlhbC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQ29tbWFuZHMvRW50cnlJbml0aWFsLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzMDgzYjAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvbW1hbmRzL0VudHJ5SW5pdGlhbC5jcwpAQCAtMCwwICsxLDQ2IEBACit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgTmV4dXMuQ29yZTsNCisNCituYW1lc3BhY2UgUGhvbmVCb29rLkNvcmUuQ29tbWFuZHMNCit7DQorCS8vLyA8c3VtbWFyeT4NCisJLy8vIENyZWF0ZSBsaXN0IG9mIGluaXRpYWwgbGV0dGVycyBmb3IgRmFjaWxpdHkgTmFtZXMuDQorCS8vLyA8L3N1bW1hcnk+DQorCXB1YmxpYyBjbGFzcyBFbnRyeUluaXRpYWwgOiBCYXNlTWFwcGVyDQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBEb2N1bWVudCB0b2tlbiByZXByZXNlbnRpbmcgbWF0Y2ggYWxsIGVudHJpZXMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBBTEwgPSAiWypdIjsNCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBEb2N1bWVudCB0aGUgd2lsZGNhcmQgY2hhcmFjdGVyIHVzZWQgYnkgU1FMIHF1ZXJpZXMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJcHVibGljIGNvbnN0IHN0cmluZyBXSUxEQ0FSRCA9ICIlIjsNCisNCisJCXB1YmxpYyBvdmVycmlkZSBib29sIFJlcXVlc3RFeGVjdXRlKElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KQ0KKwkJew0KKwkJCWNvbnN0IHN0cmluZyBaRVJPID0gIjAiOw0KKw0KKwkJCXN0cmluZ1tdIGlucHV0ID0gew0KKwkJCQkiQSIsICJCIiwgIkMiLCAiRCIsICJFIiwgIkYiLCAiRyIsICJIIiwgIkkiLCAiSiIsDQorCQkJCSJLIiwgIkwiLCAiTSIsICJOIiwgIk8iLCAiUCIsICJRIiwgIlIiLCAiUyIsICJUIiwNCisJCQkJIlUiLCAiViIsICJXIiwgIlgiLCAiWSIsICJaIg0KKwkJCX07DQorDQorCQkJSUxpc3Qgb3V0cHV0ID0gbmV3IEFycmF5TGlzdCgyNik7DQorDQorCQkJZm9yZWFjaCAoc3RyaW5nIGxldHRlciBpbiBpbnB1dCkNCisJCQl7DQorCQkJCXN0cmluZyBpbml0aWFsID0gbGV0dGVyICsgV0lMRENBUkQ7DQorCQkJCW9iamVjdCByZXN1bHQgPSBNYXBwZXIuUXVlcnlGb3JPYmplY3QoUXVlcnlJRCwgaW5pdGlhbCk7DQorCQkJCWlmIChaRVJPLkVxdWFscyhyZXN1bHQpKSBjb250aW51ZTsNCisJCQkJb3V0cHV0LkFkZChsZXR0ZXIpOw0KKwkJCX0NCisNCisJCQlvdXRwdXQuQWRkKEFMTCk7DQorCQkJY29udGV4dC5PdXRjb21lID0gb3V0cHV0Ow0KKwkJCXJldHVybiBDT05USU5VRTsNCisJCX0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvcmUuY3Nwcm9qIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db3JlLmNzcHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYWY0ODNiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db3JlLmNzcHJvagpAQCAtMCwwICsxLDk3IEBACivvu788UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPg0KKyAgPFByb3BlcnR5R3JvdXA+DQorICAgIDxDb25maWd1cmF0aW9uIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pJyA9PSAnJyAiPkRlYnVnPC9Db25maWd1cmF0aW9uPg0KKyAgICA8UGxhdGZvcm0gQ29uZGl0aW9uPSIgJyQoUGxhdGZvcm0pJyA9PSAnJyAiPkFueUNQVTwvUGxhdGZvcm0+DQorICAgIDxQcm9kdWN0VmVyc2lvbj44LjAuNTA3Mjc8L1Byb2R1Y3RWZXJzaW9uPg0KKyAgICA8U2NoZW1hVmVyc2lvbj4yLjA8L1NjaGVtYVZlcnNpb24+DQorICAgIDxQcm9qZWN0R3VpZD57RjY1RkNDOTEtQzlDQi00MENFLTg3QTYtQzBDQjAwRjczNTkyfTwvUHJvamVjdEd1aWQ+DQorICAgIDxPdXRwdXRUeXBlPkxpYnJhcnk8L091dHB1dFR5cGU+DQorICAgIDxBcHBEZXNpZ25lckZvbGRlcj5Qcm9wZXJ0aWVzPC9BcHBEZXNpZ25lckZvbGRlcj4NCisgICAgPFJvb3ROYW1lc3BhY2U+UGhvbmVCb29rLkNvcmU8L1Jvb3ROYW1lc3BhY2U+DQorICAgIDxBc3NlbWJseU5hbWU+UGhvbmVCb29rLkNvcmU8L0Fzc2VtYmx5TmFtZT4NCisgIDwvUHJvcGVydHlHcm91cD4NCisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnRGVidWd8QW55Q1BVJyAiPg0KKyAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4NCisgICAgPERlYnVnVHlwZT5mdWxsPC9EZWJ1Z1R5cGU+DQorICAgIDxPcHRpbWl6ZT5mYWxzZTwvT3B0aW1pemU+DQorICAgIDxPdXRwdXRQYXRoPmJpblxEZWJ1Z1w8L091dHB1dFBhdGg+DQorICAgIDxEZWZpbmVDb25zdGFudHM+REVCVUc7VFJBQ0U8L0RlZmluZUNvbnN0YW50cz4NCisgICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+DQorICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPg0KKyAgPC9Qcm9wZXJ0eUdyb3VwPg0KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNlfEFueUNQVScgIj4NCisgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+DQorICAgIDxPcHRpbWl6ZT50cnVlPC9PcHRpbWl6ZT4NCisgICAgPE91dHB1dFBhdGg+YmluXFJlbGVhc2VcPC9PdXRwdXRQYXRoPg0KKyAgICA8RGVmaW5lQ29uc3RhbnRzPlRSQUNFPC9EZWZpbmVDb25zdGFudHM+DQorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0Pg0KKyAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4NCisgIDwvUHJvcGVydHlHcm91cD4NCisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnRGVidWd8eDg2JyAiPg0KKyAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4NCisgICAgPE91dHB1dFBhdGg+YmluXHg4NlxEZWJ1Z1w8L091dHB1dFBhdGg+DQorICAgIDxEZWZpbmVDb25zdGFudHM+REVCVUc7VFJBQ0U8L0RlZmluZUNvbnN0YW50cz4NCisgICAgPERlYnVnVHlwZT5mdWxsPC9EZWJ1Z1R5cGU+DQorICAgIDxQbGF0Zm9ybVRhcmdldD54ODY8L1BsYXRmb3JtVGFyZ2V0Pg0KKyAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJvclJlcG9ydD4NCisgIDwvUHJvcGVydHlHcm91cD4NCisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXx4ODYnICI+DQorICAgIDxPdXRwdXRQYXRoPmJpblx4ODZcUmVsZWFzZVw8L091dHB1dFBhdGg+DQorICAgIDxEZWZpbmVDb25zdGFudHM+VFJBQ0U8L0RlZmluZUNvbnN0YW50cz4NCisgICAgPE9wdGltaXplPnRydWU8L09wdGltaXplPg0KKyAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4NCisgICAgPFBsYXRmb3JtVGFyZ2V0Png4NjwvUGxhdGZvcm1UYXJnZXQ+DQorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0Pg0KKyAgPC9Qcm9wZXJ0eUdyb3VwPg0KKyAgPEl0ZW1Hcm91cD4NCisgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJBZ2lsaXR5LkNvcmUsIFZlcnNpb249MS4wLjIzNTUuMjU2NDAsIEN1bHR1cmU9bmV1dHJhbCI+DQorICAgICAgPFNwZWNpZmljVmVyc2lvbj5GYWxzZTwvU3BlY2lmaWNWZXJzaW9uPg0KKyAgICAgIDxIaW50UGF0aD4uLlwuLlwuLlxsb2NhbC1jYWNoZVxBZ2lsaXR5XEFnaWxpdHkuQ29yZS5kbGw8L0hpbnRQYXRoPg0KKyAgICA8L1JlZmVyZW5jZT4NCisgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJJQmF0aXNOZXQuRGF0YU1hcHBlciwgVmVyc2lvbj0xLjUuMS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWVkNzgxZDlmYzM5NmM2Y2EsIHByb2Nlc3NvckFyY2hpdGVjdHVyZT1NU0lMIj4NCisgICAgICA8U3BlY2lmaWNWZXJzaW9uPkZhbHNlPC9TcGVjaWZpY1ZlcnNpb24+DQorICAgICAgPEhpbnRQYXRoPi4uXC4uXC4uXGxvY2FsLWNhY2hlXGlCYXRpc05ldFxJQmF0aXNOZXQuRGF0YU1hcHBlci5kbGw8L0hpbnRQYXRoPg0KKyAgICA8L1JlZmVyZW5jZT4NCisgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJOZXh1cy5Db3JlLCBWZXJzaW9uPTEuMC4yNTM5LjIyMTk3LCBDdWx0dXJlPW5ldXRyYWwiPg0KKyAgICAgIDxTcGVjaWZpY1ZlcnNpb24+RmFsc2U8L1NwZWNpZmljVmVyc2lvbj4NCisgICAgICA8SGludFBhdGg+Li5cLi5cLi5cbG9jYWwtY2FjaGVcTmV4dXNcTmV4dXMuQ29yZS5kbGw8L0hpbnRQYXRoPg0KKyAgICA8L1JlZmVyZW5jZT4NCisgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJTcHJpbmcuQ29yZSwgVmVyc2lvbj0xLjEuMC4yLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTY1ZTQ3NGQxNDFlMjVlMDcsIHByb2Nlc3NvckFyY2hpdGVjdHVyZT1NU0lMIj4NCisgICAgICA8U3BlY2lmaWNWZXJzaW9uPkZhbHNlPC9TcGVjaWZpY1ZlcnNpb24+DQorICAgICAgPEhpbnRQYXRoPi4uXC4uXC4uXGxvY2FsLWNhY2hlXFNwcmluZ05ldFxTcHJpbmcuQ29yZS5kbGw8L0hpbnRQYXRoPg0KKyAgICA8L1JlZmVyZW5jZT4NCisgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0iIC8+DQorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtLkRhdGEiIC8+DQorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtLlhtbCIgLz4NCisgIDwvSXRlbUdyb3VwPg0KKyAgPEl0ZW1Hcm91cD4NCisgICAgPENvbXBpbGUgSW5jbHVkZT0iQXBwLmNzIiAvPg0KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJBcHBFbnRyeS5jcyIgLz4NCisgICAgPENvbXBpbGUgSW5jbHVkZT0iQXBwRW50cnlMaXN0LmNzIiAvPg0KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJBcHBFbnRyeUxpc3RQcm9jZXNzb3IuY3MiIC8+DQorICAgIDxDb21waWxlIEluY2x1ZGU9IkNvbW1hbmRzXEFwcENvbW1hbmQuY3MiIC8+DQorICAgIDxDb21waWxlIEluY2x1ZGU9IkNvbW1hbmRzXEJhc2VDb21tYW5kLmNzIiAvPg0KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJDb21tYW5kc1xCYXNlQ291bnQuY3MiIC8+DQorICAgIDxDb21waWxlIEluY2x1ZGU9IkNvbW1hbmRzXEJhc2VEZWxldGUuY3MiIC8+DQorICAgIDxDb21waWxlIEluY2x1ZGU9IkNvbW1hbmRzXEJhc2VFbnRyeS5jcyIgLz4NCisgICAgPENvbXBpbGUgSW5jbHVkZT0iQ29tbWFuZHNcQmFzZUZpbHRlckxpc3QuY3MiIC8+DQorICAgIDxDb21waWxlIEluY2x1ZGU9IkNvbW1hbmRzXEJhc2VMaXN0LmNzIiAvPg0KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJDb21tYW5kc1xCYXNlU2F2ZS5jcyIgLz4NCisgICAgPENvbXBpbGUgSW5jbHVkZT0iQ29tbWFuZHNcRW50cnlJbml0aWFsLmNzIiAvPg0KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJQcm9wZXJ0aWVzXEFzc2VtYmx5SW5mby5jcyIgLz4NCisgICAgPENvbXBpbGUgSW5jbHVkZT0iVGVsZXBob25lUHJvY2Vzc29yLmNzIiAvPg0KKyAgPC9JdGVtR3JvdXA+DQorICA8SXRlbUdyb3VwPg0KKyAgICA8RW1iZWRkZWRSZXNvdXJjZSBJbmNsdWRlPSJNZXNzYWdlcy5yZXN4Ij4NCisgICAgICA8U3ViVHlwZT5EZXNpZ25lcjwvU3ViVHlwZT4NCisgICAgPC9FbWJlZGRlZFJlc291cmNlPg0KKyAgPC9JdGVtR3JvdXA+DQorICA8SW1wb3J0IFByb2plY3Q9IiQoTVNCdWlsZEJpblBhdGgpXE1pY3Jvc29mdC5DU2hhcnAudGFyZ2V0cyIgLz4NCisgIDwhLS0gVG8gbW9kaWZ5IHlvdXIgYnVpbGQgcHJvY2VzcywgYWRkIHlvdXIgdGFzayBpbnNpZGUgb25lIG9mIHRoZSB0YXJnZXRzIGJlbG93IGFuZCB1bmNvbW1lbnQgaXQuIA0KKyAgICAgICBPdGhlciBzaW1pbGFyIGV4dGVuc2lvbiBwb2ludHMgZXhpc3QsIHNlZSBNaWNyb3NvZnQuQ29tbW9uLnRhcmdldHMuDQorICA8VGFyZ2V0IE5hbWU9IkJlZm9yZUJ1aWxkIj4NCisgIDwvVGFyZ2V0Pg0KKyAgPFRhcmdldCBOYW1lPSJBZnRlckJ1aWxkIj4NCisgIDwvVGFyZ2V0Pg0KKyAgLS0+DQorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQ29yZS5jc3Byb2oudXNlciBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQ29yZS5jc3Byb2oudXNlcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODc1YzBjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db3JlLmNzcHJvai51c2VyCkBAIC0wLDAgKzEsNSBAQAor77u/PFByb2plY3QgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+DQorICA8UHJvcGVydHlHcm91cD4NCisgICAgPFByb2plY3RWaWV3PlByb2plY3RGaWxlczwvUHJvamVjdFZpZXc+DQorICA8L1Byb3BlcnR5R3JvdXA+DQorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQ29yZS5yZXNoYXJwZXIudXNlciBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQ29yZS5yZXNoYXJwZXIudXNlcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGYwYmY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db3JlLnJlc2hhcnBlci51c2VyCkBAIC0wLDAgKzEsMjcgQEAKKzxDb25maWd1cmF0aW9uPg0KKyAgPENvbXBsZXRpb25TdGF0aXN0aWNzTWFuYWdlciAvPg0KKyAgPEVkaXRvck1hbmFnZXI+DQorICAgIDxSZWNlbnRGaWxlcz4NCisgICAgICA8RmlsZSBpZD0iRjY1RkNDOTEtQzlDQi00MENFLTg3QTYtQzBDQjAwRjczNTkyL2Y6Q2xhc3MxLmNzIiBjYXJldD0iMTMzIiB2aXN1YWwteD0iMCIgdmlzdWFsLXk9IjAiIC8+DQorICAgIDwvUmVjZW50RmlsZXM+DQorICA8L0VkaXRvck1hbmFnZXI+DQorICA8RmlsZVN0cnVjdHVyZVZpZXc+DQorICAgIDxBdXRvU2Nyb2xsVG9Tb3VyY2U+RmFsc2U8L0F1dG9TY3JvbGxUb1NvdXJjZT4NCisgICAgPFRyYWNrQ2FyZXRMb2NhdGlvbj5GYWxzZTwvVHJhY2tDYXJldExvY2F0aW9uPg0KKyAgPC9GaWxlU3RydWN0dXJlVmlldz4NCisgIDxOQW50VmFsaWRhdGlvblNldHRpbmdzPg0KKyAgICA8TkFudFBhdGggdmFsdWU9IiIgLz4NCisgIDwvTkFudFZhbGlkYXRpb25TZXR0aW5ncz4NCisgIDxSZUZvcm1hdENvZGU+DQorICAgIDxPcHRpbWl6ZVVzaW5ncz5GYWxzZTwvT3B0aW1pemVVc2luZ3M+DQorICAgIDxSZW1vdmVSZWR1bmRhbnRUaGlzPkZhbHNlPC9SZW1vdmVSZWR1bmRhbnRUaGlzPg0KKyAgICA8U2hvcnRlblJlZmVyZW5jZXM+RmFsc2U8L1Nob3J0ZW5SZWZlcmVuY2VzPg0KKyAgICA8RGVjb3JhdGVNb2RpZmllcnM+RmFsc2U8L0RlY29yYXRlTW9kaWZpZXJzPg0KKyAgPC9SZUZvcm1hdENvZGU+DQorICA8U2hhcmVkU29sdXRpb25EaXNhYmxlZFRlbXBsYXRlc01hbmFnZXI+DQorICAgIDxEaXNhYmxlZFRlbXBsYXRlcyAvPg0KKyAgPC9TaGFyZWRTb2x1dGlvbkRpc2FibGVkVGVtcGxhdGVzTWFuYWdlcj4NCisgIDxVc2VyU29sdXRpb25EaXNhYmxlZFRlbXBsYXRlc01hbmFnZXI+DQorICAgIDxEaXNhYmxlZFRlbXBsYXRlcyAvPg0KKyAgPC9Vc2VyU29sdXRpb25EaXNhYmxlZFRlbXBsYXRlc01hbmFnZXI+DQorPC9Db25maWd1cmF0aW9uPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvQ29yZS5zbG4gYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvcmUuc2xuCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhZTIzYzgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvcmUuc2xuCkBAIC0wLDAgKzEsMjAgQEAKK++7vw0KK01pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIFNvbHV0aW9uIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDkuMDANCisjIFZpc3VhbCBTdHVkaW8gMjAwNQ0KK1Byb2plY3QoIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9IikgPSAiQ29yZSIsICJDb3JlLmNzcHJvaiIsICJ7RjY1RkNDOTEtQzlDQi00MENFLTg3QTYtQzBDQjAwRjczNTkyfSINCitFbmRQcm9qZWN0DQorR2xvYmFsDQorCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Db25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHByZVNvbHV0aW9uDQorCQlEZWJ1Z3xBbnkgQ1BVID0gRGVidWd8QW55IENQVQ0KKwkJUmVsZWFzZXxBbnkgQ1BVID0gUmVsZWFzZXxBbnkgQ1BVDQorCUVuZEdsb2JhbFNlY3Rpb24NCisJR2xvYmFsU2VjdGlvbihQcm9qZWN0Q29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwb3N0U29sdXRpb24NCisJCXtGNjVGQ0M5MS1DOUNCLTQwQ0UtODdBNi1DMENCMDBGNzM1OTJ9LkRlYnVnfEFueSBDUFUuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQ0KKwkJe0Y2NUZDQzkxLUM5Q0ItNDBDRS04N0E2LUMwQ0IwMEY3MzU5Mn0uRGVidWd8QW55IENQVS5CdWlsZC4wID0gRGVidWd8QW55IENQVQ0KKwkJe0Y2NUZDQzkxLUM5Q0ItNDBDRS04N0E2LUMwQ0IwMEY3MzU5Mn0uUmVsZWFzZXxBbnkgQ1BVLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQ0KKwkJe0Y2NUZDQzkxLUM5Q0ItNDBDRS04N0E2LUMwQ0IwMEY3MzU5Mn0uUmVsZWFzZXxBbnkgQ1BVLkJ1aWxkLjAgPSBSZWxlYXNlfEFueSBDUFUNCisJRW5kR2xvYmFsU2VjdGlvbg0KKwlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uUHJvcGVydGllcykgPSBwcmVTb2x1dGlvbg0KKwkJSGlkZVNvbHV0aW9uTm9kZSA9IEZBTFNFDQorCUVuZEdsb2JhbFNlY3Rpb24NCitFbmRHbG9iYWwNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL0NvcmUuc3VvIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db3JlLnN1bwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2E5YzFhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Db3JlLnN1bwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL01lc3NhZ2VzLnJlc3ggYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL01lc3NhZ2VzLnJlc3gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWUyYjJiZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL0NvcmUvTWVzc2FnZXMucmVzeApAQCAtMCwwICsxLDEyOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+DQorPHJvb3Q+DQorCTx4c2Q6c2NoZW1hIGlkPSJyb290IiB4bWxucz0iIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczptc2RhdGE9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206eG1sLW1zZGF0YSI+DQorCQk8eHNkOmVsZW1lbnQgbmFtZT0icm9vdCIgbXNkYXRhOklzRGF0YVNldD0idHJ1ZSI+DQorCQkJPHhzZDpjb21wbGV4VHlwZT4NCisJCQkJPHhzZDpjaG9pY2UgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPg0KKwkJCQkJPHhzZDplbGVtZW50IG5hbWU9ImRhdGEiPg0KKwkJCQkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCQkJCTx4c2Q6c2VxdWVuY2U+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0iY29tbWVudCIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMiIgLz4NCisJCQkJCQkJPC94c2Q6c2VxdWVuY2U+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9InR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+DQorCQkJCQkJCTx4c2Q6YXR0cmlidXRlIG5hbWU9Im1pbWV0eXBlIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPg0KKwkJCQkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJPC94c2Q6ZWxlbWVudD4NCisJCQkJCTx4c2Q6ZWxlbWVudCBuYW1lPSJyZXNoZWFkZXIiPg0KKwkJCQkJCTx4c2Q6Y29tcGxleFR5cGU+DQorCQkJCQkJCTx4c2Q6c2VxdWVuY2U+DQorCQkJCQkJCQk8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+DQorCQkJCQkJCTwveHNkOnNlcXVlbmNlPg0KKwkJCQkJCQk8eHNkOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIiB1c2U9InJlcXVpcmVkIiAvPg0KKwkJCQkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJCQkJPC94c2Q6ZWxlbWVudD4NCisJCQkJPC94c2Q6Y2hvaWNlPg0KKwkJCTwveHNkOmNvbXBsZXhUeXBlPg0KKwkJPC94c2Q6ZWxlbWVudD4NCisJPC94c2Q6c2NoZW1hPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlJlc01pbWVUeXBlIj4NCisJCTx2YWx1ZT50ZXh0L21pY3Jvc29mdC1yZXN4PC92YWx1ZT4NCisJPC9yZXNoZWFkZXI+DQorCTxyZXNoZWFkZXIgbmFtZT0iVmVyc2lvbiI+DQorCQk8dmFsdWU+MS4wLjAuMDwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IlJlYWRlciI+DQorCQk8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VSZWFkZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwk8cmVzaGVhZGVyIG5hbWU9IldyaXRlciI+DQorCQk8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VXcml0ZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+DQorCTwvcmVzaGVhZGVyPg0KKwkNCisJPGRhdGEgbmFtZT0icGFnZV9pbmRleF9oaW50Ij4NCisJCTx2YWx1ZT5WaWV3aW5nIHswfS17MX0gb2YgezJ9LjwvdmFsdWU+DQorCTwvZGF0YT4JDQorDQorICAgIDwhLS0gY29tbWFuZCBsYWJlbHMgLS0+DQorDQorICAgIDxkYXRhIG5hbWU9ImZpbmQiPg0KKyAgICAgIDx2YWx1ZT5MSVNUIEFMTDwvdmFsdWU+DQorICAgIDwvZGF0YT4NCisNCisgICAgPGRhdGEgbmFtZT0iYWRkIj4NCisgICAgICA8dmFsdWU+QUREPC92YWx1ZT4NCisgICAgPC9kYXRhPg0KKw0KKyAgICA8IS0tIGZpZWxkIGFsZXJ0cyAtLT4NCisNCisgICAgPGRhdGEgbmFtZT0iX2FsZXJ0Ij4NCisJCTx2YWx1ZT57MH0gaXMgaW52YWxpZC48L3ZhbHVlPg0KKwk8L2RhdGE+DQorDQorICAgIDxkYXRhIG5hbWU9Il9yZXF1aXJlZCI+DQorCQk8dmFsdWU+ezB9IGlzIHJlcXVpcmVkLjwvdmFsdWU+DQorCTwvZGF0YT4NCisgICAgDQorCTxkYXRhIG5hbWU9IkRhdGVUaW1lUHJvY2Vzc29yX2FsZXJ0Ij4NCisJCTx2YWx1ZT57MH0gbXVzdCBiZSBhIHZhbGlkIGRhdGUuPC92YWx1ZT4NCisJPC9kYXRhPg0KKwkNCisJPGRhdGEgbmFtZT0iVGVsZXBob25lUHJvY2Vzc29yX2FsZXJ0Ij4NCisJCTx2YWx1ZT57MH0gbXVzdCBiZSBhIHRlbGVwaG9uZSBleHRlbnNpb24uPC92YWx1ZT4NCisJPC9kYXRhPg0KKwkJDQorDQorCTwhLS0gZmllbGQgbGFiZWxzIC0tPiAgICANCisgICAgICAgIA0KKyAgICA8ZGF0YSBuYW1lPSJsYXN0X25hbWVfbGFiZWwiPg0KKyAgICAgIDx2YWx1ZT5MYXN0IE5hbWU8L3ZhbHVlPg0KKyAgICA8L2RhdGE+DQorICAgIA0KKyAgICA8ZGF0YSBuYW1lPSJmaXJzdF9uYW1lX2xhYmVsIj4NCisgICAgICA8dmFsdWU+Rmlyc3QgTmFtZTwvdmFsdWU+DQorICAgIDwvZGF0YT4NCisNCisgICAgPGRhdGEgbmFtZT0iZXh0ZW5zaW9uX2xhYmVsIj4NCisgICAgICA8dmFsdWU+RXh0ZW5zaW9uPC92YWx1ZT4NCisgICAgPC9kYXRhPg0KKw0KKyAgICA8ZGF0YSBuYW1lPSJ1c2VyX25hbWVfbGFiZWwiPg0KKyAgICAgIDx2YWx1ZT5Vc2VyIE5hbWU8L3ZhbHVlPg0KKyAgICA8L2RhdGE+DQorDQorICAgIDxkYXRhIG5hbWU9ImhpcmVkX2xhYmVsIj4NCisgICAgICA8dmFsdWU+SGlyZWQ8L3ZhbHVlPg0KKyAgICA8L2RhdGE+DQorCQ0KKyAgICA8ZGF0YSBuYW1lPSJob3Vyc19sYWJlbCI+DQorICAgICAgPHZhbHVlPkhvdXJzPC92YWx1ZT4NCisgICAgPC9kYXRhPg0KKwkNCisgICAgPGRhdGEgbmFtZT0iZWRpdG9yX2xhYmVsIj4NCisgICAgICA8dmFsdWU+RWRpdG9yPzwvdmFsdWU+DQorICAgIDwvZGF0YT4NCisgICAgDQorDQorCTwhLS0gcHJvbXB0cyAtLT4NCisJDQorCTxkYXRhIG5hbWU9ImdyZWV0aW5nIj4NCisJCTx2YWx1ZT5XZWxjb21lLCA8L3ZhbHVlPg0KKwk8L2RhdGE+DQorDQorICAgIDxkYXRhIG5hbWU9ImRpcmVjdG9yeV90aXRsZSI+DQorICAgICAgPHZhbHVlPkRpcmVjdG9yeSAoMik8L3ZhbHVlPg0KKyAgICA8L2RhdGE+DQorICAgIA0KKyAgICA8ZGF0YSBuYW1lPSJkaXJlY3RvcnlfaGVhZGluZyI+DQorICAgICA8dmFsdWU+RGlyZWN0b3J5PC92YWx1ZT4NCisgICAgPC9kYXRhPg0KKyAgICAgICAgDQorICAgIDxkYXRhIG5hbWU9ImRpcmVjdG9yeV9wcm9tcHQiPg0KKwkgIDx2YWx1ZT5TZWxlY3QgYSBmaWx0ZXIgdG8gZGlzcGxheSBmZXdlciBlbnRyaWVzPC92YWx1ZT4NCisgICAgPC9kYXRhPg0KKyAgICANCisJPGRhdGEgbmFtZT0ibm90X2ZvdW5kX2hpbnQiPg0KKwkJPHZhbHVlPk5vIG1hdGNoaW5nIGVudHJpZXMgZm91bmQuPC92YWx1ZT4NCisJPC9kYXRhPg0KKw0KKzwvcm9vdD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNGQyZTNmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcwpAQCAtMCwwICsxLDM1IEBACivvu791c2luZyBTeXN0ZW0uUmVmbGVjdGlvbjsNCit1c2luZyBTeXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzOw0KK3VzaW5nIFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlczsNCisNCisvLyBHZW5lcmFsIEluZm9ybWF0aW9uIGFib3V0IGFuIGFzc2VtYmx5IGlzIGNvbnRyb2xsZWQgdGhyb3VnaCB0aGUgZm9sbG93aW5nIA0KKy8vIHNldCBvZiBhdHRyaWJ1dGVzLiBDaGFuZ2UgdGhlc2UgYXR0cmlidXRlIHZhbHVlcyB0byBtb2RpZnkgdGhlIGluZm9ybWF0aW9uDQorLy8gYXNzb2NpYXRlZCB3aXRoIGFuIGFzc2VtYmx5Lg0KK1thc3NlbWJseTogQXNzZW1ibHlUaXRsZSgiQ29yZSIpXQ0KK1thc3NlbWJseTogQXNzZW1ibHlEZXNjcmlwdGlvbigiIildDQorW2Fzc2VtYmx5OiBBc3NlbWJseUNvbmZpZ3VyYXRpb24oIiIpXQ0KK1thc3NlbWJseTogQXNzZW1ibHlDb21wYW55KCIiKV0NCitbYXNzZW1ibHk6IEFzc2VtYmx5UHJvZHVjdCgiQ29yZSIpXQ0KK1thc3NlbWJseTogQXNzZW1ibHlDb3B5cmlnaHQoIkNvcHlyaWdodCDCqSAgMjAwNiIpXQ0KK1thc3NlbWJseTogQXNzZW1ibHlUcmFkZW1hcmsoIiIpXQ0KK1thc3NlbWJseTogQXNzZW1ibHlDdWx0dXJlKCIiKV0NCisNCisvLyBTZXR0aW5nIENvbVZpc2libGUgdG8gZmFsc2UgbWFrZXMgdGhlIHR5cGVzIGluIHRoaXMgYXNzZW1ibHkgbm90IHZpc2libGUgDQorLy8gdG8gQ09NIGNvbXBvbmVudHMuICBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgYSB0eXBlIGluIHRoaXMgYXNzZW1ibHkgZnJvbSANCisvLyBDT00sIHNldCB0aGUgQ29tVmlzaWJsZSBhdHRyaWJ1dGUgdG8gdHJ1ZSBvbiB0aGF0IHR5cGUuDQorW2Fzc2VtYmx5OiBDb21WaXNpYmxlKGZhbHNlKV0NCisNCisvLyBUaGUgZm9sbG93aW5nIEdVSUQgaXMgZm9yIHRoZSBJRCBvZiB0aGUgdHlwZWxpYiBpZiB0aGlzIHByb2plY3QgaXMgZXhwb3NlZCB0byBDT00NCitbYXNzZW1ibHk6IEd1aWQoImU1ZjU2Y2FiLTAwMGEtNDJiZC05ZjEzLTlmNTAwMzllM2Y4MCIpXQ0KKw0KKy8vIFZlcnNpb24gaW5mb3JtYXRpb24gZm9yIGFuIGFzc2VtYmx5IGNvbnNpc3RzIG9mIHRoZSBmb2xsb3dpbmcgZm91ciB2YWx1ZXM6DQorLy8NCisvLyAgICAgIE1ham9yIFZlcnNpb24NCisvLyAgICAgIE1pbm9yIFZlcnNpb24gDQorLy8gICAgICBCdWlsZCBOdW1iZXINCisvLyAgICAgIFJldmlzaW9uDQorLy8NCisvLyBZb3UgY2FuIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgb3IgeW91IGNhbiBkZWZhdWx0IHRoZSBSZXZpc2lvbiBhbmQgQnVpbGQgTnVtYmVycyANCisvLyBieSB1c2luZyB0aGUgJyonIGFzIHNob3duIGJlbG93Og0KK1thc3NlbWJseTogQXNzZW1ibHlWZXJzaW9uKCIxLjAuMC4wIildDQorW2Fzc2VtYmx5OiBBc3NlbWJseUZpbGVWZXJzaW9uKCIxLjAuMC4wIildDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9UZWxlcGhvbmVQcm9jZXNzb3IuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9Db3JlL1RlbGVwaG9uZVByb2Nlc3Nvci5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDVjODgzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvQ29yZS9UZWxlcGhvbmVQcm9jZXNzb3IuY3MKQEAgLTAsMCArMSw2NSBAQAordXNpbmcgU3lzdGVtLlRleHQ7DQordXNpbmcgTmV4dXMuQ29yZS5WYWxpZGF0b3JzOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZQ0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gUmVtb3ZlIHB1bmN0dWF0aW9uIG9uIGlucHV0IGFuZCBpbnNlcnQgcHVuY3R1YXRpb24gb24gb3V0cHV0Lg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gPHJlbWFya3M+PHA+DQorCS8vLyBOdWxsIGlucHV0IG9yIG91dHB1dCBpcyBwYXNzZWQgdGhvcnVnaCBhcyBudWxsLiANCisJLy8vIE5vbi1udWxsIGlucHV0IG9yIG91dHB1dCBtdXN0IGJlIHN0cmluZ3MuDQorCS8vLyBPdXRwdXQgaXMgZm9ybWF0dGVkIGZvciBsb2NhbCBvciBsb25nIGRpc3RhbmUgVVMgdGVsZXBob25lIG51bWJlcnMuIA0KKwkvLy8gT3V0cHV0IHN0cmluZ3MgdGhhdCBhcmUgdG9vIHNob3J0IG9yIHRvbyBsb25nIGFyZSBwYXNzZWQgdGhyb3VnaC4NCisJLy8vIDwvcD48L3JlbWFya3M+DQorCXB1YmxpYyBjbGFzcyBUZWxlcGhvbmVQcm9jZXNzb3IgOiBQcm9jZXNzb3INCisJew0KKwkJcHVibGljIG92ZXJyaWRlIGJvb2wgQ29udmVydElucHV0KElQcm9jZXNzb3JDb250ZXh0IGluY29taW5nKQ0KKwkJew0KKwkJCW9iamVjdCBzb3VyY2UgPSBpbmNvbWluZy5Tb3VyY2U7DQorCQkJaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4gdHJ1ZTsNCisNCisJCQlzdHJpbmcgaW5wdXQgPSBzb3VyY2UgYXMgc3RyaW5nOw0KKwkJCWlmIChpbnB1dCA9PSBudWxsKSByZXR1cm4gZmFsc2U7DQorDQorCQkJY2hhcltdIG1hcmtzID0geyctJ307DQorCQkJc3RyaW5nW10gc3BsaXRzID0gaW5wdXQuU3BsaXQobWFya3MpOw0KKwkJCVN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcihpbnB1dC5MZW5ndGgpOw0KKwkJCWZvcmVhY2ggKHN0cmluZyBzIGluIHNwbGl0cykNCisJCQl7DQorCQkJCXNiLkFwcGVuZChzKTsNCisJCQl9DQorCQkJaW5jb21pbmcuVGFyZ2V0ID0gc2IuVG9TdHJpbmcoKTsNCisJCQlyZXR1cm4gdHJ1ZTsNCisJCX0NCisNCisJCXB1YmxpYyBvdmVycmlkZSBib29sIEZvcm1hdE91dHB1dChJUHJvY2Vzc29yQ29udGV4dCBvdXRnb2luZykNCisJCXsNCisJCQlvYmplY3Qgc291cmNlID0gb3V0Z29pbmcuU291cmNlOw0KKwkJCWlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHRydWU7DQorDQorCQkJc3RyaW5nIG91dHB1dCA9IHNvdXJjZSBhcyBzdHJpbmc7DQorCQkJaWYgKG91dHB1dCA9PSBudWxsKSByZXR1cm4gZmFsc2U7DQorDQorCQkJc3RyaW5nIG1hcmsgPSAiLSI7DQorCQkJaWYgKG91dHB1dCA9PSBudWxsKSByZXR1cm4gZmFsc2U7DQorCQkJc3RyaW5nIGJ1ZmZlcjsNCisNCisJCQlpZiAob3V0cHV0Lkxlbmd0aCA9PSAxMCkNCisJCQl7DQorCQkJCS8vIDAxMi0zNDUtNjc4OQ0KKwkJCQlzdHJpbmcgYnVmZmVyMSA9IG91dHB1dC5JbnNlcnQoNiwgbWFyayk7DQorCQkJCWJ1ZmZlciA9IGJ1ZmZlcjEuSW5zZXJ0KDMsIG1hcmspOw0KKwkJCX0NCisJCQllbHNlIGlmIChvdXRwdXQuTGVuZ3RoID09IDcpDQorCQkJew0KKwkJCQkvLyAwMTItMzQ1Ng0KKwkJCQlidWZmZXIgPSBvdXRwdXQuSW5zZXJ0KDMsIG1hcmspOw0KKwkJCX0NCisJCQllbHNlIGJ1ZmZlciA9IG91dHB1dDsNCisNCisJCQlvdXRnb2luZy5UYXJnZXQgPSBidWZmZXI7DQorCQkJcmV0dXJuIHRydWU7DQorCQl9DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9CYXNlVGVzdC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvQmFzZVRlc3QuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZkZWRkZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvQmFzZVRlc3QuY3MKQEAgLTAsMCArMSw3MyBAQAorLyoNCisgKiBDb3B5cmlnaHQgMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICogDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqIA0KKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICogDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgTmV4dXMuQ29yZTsNCit1c2luZyBOVW5pdC5GcmFtZXdvcms7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5Db3JlDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBQcm92aWRlIGJhc2UgY2xhc3Mgc28gdW5pdCB0ZXN0cyBjYW4gc2hhcmUgdXRpbGl0eS4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlbVGVzdEZpeHR1cmVdDQorCXB1YmxpYyBjbGFzcyBCYXNlVGVzdCA6IENhdGFsb2dCYXNlVGVzdA0KKwl7DQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gQ29uZmlybSB0aGF0IHRoZSBvdXRjb21lIGlzIGEgbm9uLW51bGwsIG5vbi1lbXB0eSBsaXN0Lg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+Q29udGV4dCB0byBjb25maXJtPC9wYXJhbT4NCisJCS8vLyA8cmV0dXJucz5UaGUgbm9uLW51bGwsIG5vbi1lbXB0eSBsaXN0PC9yZXR1cm5zPg0KKwkJLy8vIA0KKwkJcHJvdGVjdGVkIElMaXN0IEFzc2VydExpc3RPdXRjb21lKElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KQ0KKwkJew0KKwkJCUFzc2VydE5vbWluYWwoY29udGV4dCk7DQorCQkJQXNzZXJ0LklzVHJ1ZShjb250ZXh0Lkhhc091dGNvbWUsICJFeHBlY3RlZCBjb21tYW5kIHRvIHNldCBhbiBPdXRjb21lLiIpOw0KKwkJCUlMaXN0IGxpc3QgPSBjb250ZXh0Lk91dGNvbWUgYXMgSUxpc3Q7DQorCQkJYm9vbCBub3RFbXB0eSA9ICgobGlzdCAhPSBudWxsKSAmJiAobGlzdC5Db3VudCA+IDApKTsNCisJCQlBc3NlcnQuSXNUcnVlKG5vdEVtcHR5LCAiRXhwZWN0ZWQgb3V0Y29tZSB0byBiZSBhIG5vdC1lbXB0eSBsaXN0Iik7DQorCQkJcmV0dXJuIGxpc3Q7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRXhlcmNpc2UgdGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJW1Rlc3RdDQorCQlwdWJsaWMgdm9pZCBQYXNzKCkNCisJCXsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBFeGVyY2lzZSBHVUlEIGNyZWF0aW9uLCANCisJCS8vLyBhbmQgcHJvdmlkZSBhIGRldmljZSBmb3IgZ2VuZXJhdGluZyBHVUlEcyBpZiBuZWVkZWQuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJW1Rlc3RdDQorCQlwdWJsaWMgdm9pZCBHdWlkU3RyaW5nKCkNCisJCXsNCisJCQlJRGljdGlvbmFyeSB0ZXN0ID0gbmV3IEhhc2h0YWJsZSgpOw0KKwkJCWZvciAoaW50IGkgPSAwOyBpIDwgMTA7IGkrKykNCisJCQl7DQorCQkJCXN0cmluZyBrZXkgPSBHdWlkLk5ld0d1aWQoKS5Ub1N0cmluZygpOw0KKwkJCQlBc3NlcnQuSXNOb3ROdWxsKGtleSk7DQorCQkJCUFzc2VydC5Jc1RydWUoMzYgPT0ga2V5Lkxlbmd0aCk7DQorCQkJCXRlc3QuQWRkKGtleSwga2V5KTsgLy8gQWRkIHRocm93cyBhbiBleGNlcHRpb24gb24gZHVwbGljYXRlIGtleXMNCisJCQl9DQorCQl9DQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9DbGFzczEuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L0NsYXNzMS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDVjY2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9DbGFzczEuY3MKQEAgLTAsMCArMSwyNCBAQAordXNpbmcgUGhvbmVCb29rMi5Db3JlOw0KK3VzaW5nIE5Vbml0LkZyYW1ld29yazsNCisNCituYW1lc3BhY2UgUGhvbmVCb29rMi5Db3JlDQorew0KKyAgICBbVGVzdEZpeHR1cmVdDQorICAgIHB1YmxpYyBjbGFzcyBDbGFzczFGaXh0dXJlDQorICAgIHsNCisNCisgICAgICAgIENsYXNzMSBjbGFzczE7DQorICAgICAgICANCisgICAgICAgIFtTZXRVcF0NCisgICAgICAgIHB1YmxpYyB2b2lkIFNldFVwKCkNCisgICAgICAgIHsNCisgICAgICAgICAgICBjbGFzczEgPSBuZXcgQ2xhc3MxKCk7ICAgICAgICAgICAgDQorICAgICAgICB9DQorICAgICAgICANCisgICAgICAgIFtUZXN0XQ0KKyAgICAgICAgcHVibGljIHZvaWQgQ2xhc3MxVGVzdCAoKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIEFzc2VydC5Jc05vdE51bGwoY2xhc3MxLCJTZXRVcCBmYWlsZWQhIik7DQorICAgICAgICB9DQorICAgIH0NCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9Db21tYW5kcy9EaXJlY3RvcnlWaWV3VGVzdC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvQ29tbWFuZHMvRGlyZWN0b3J5Vmlld1Rlc3QuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFkMjlmMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvQ29tbWFuZHMvRGlyZWN0b3J5Vmlld1Rlc3QuY3MKQEAgLTAsMCArMSw0MyBAQAordXNpbmcgTmV4dXMuQ29yZTsNCit1c2luZyBOZXh1cy5Db3JlLkhlbHBlcnM7DQordXNpbmcgTlVuaXQuRnJhbWV3b3JrOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZS5Db21tYW5kcw0KK3sNCisJLy8vIDxzdW1tYXJ5Pg0KKwkvLy8gRXhlcmNpc2UgRGlyZWN0b3J5IFZpZXcgQ29tbWFuZC4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlbVGVzdEZpeHR1cmVdDQorCXB1YmxpYyBjbGFzcyBFbnRyeUZpbmRUZXN0IDogQmFzZVRlc3QNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIENvbmZpcm0gdGhhdCBDb250ZXh0IGNvbnRhaW5zIHRoZSBleHBlY3RlZCBhdHRyaWJ1dGVzIGZvciB0aGUgbGlzdCBmaWx0ZXItMHBzLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgQ29udGFpbnNGaWx0ZXJzKCkNCisJCXsNCisJCQlJUmVxdWVzdENvbnRleHQgY29udGV4dCA9IGNhdGFsb2cuRXhlY3V0ZVJlcXVlc3QoQXBwLkVOVFJZX0ZJTkQpOw0KKwkJCUFzc2VydE5vbWluYWwoY29udGV4dCk7DQorCQkJc3RyaW5nW10gRklMVEVSUyA9IHtBcHAuTEFTVF9OQU1FX0xJU1QsIEFwcC5GSVJTVF9OQU1FX0xJU1QsIEFwcC5FWFRFTlNJT05fTElTVCwgQXBwLlVTRVJfTkFNRV9MSVNULCBBcHAuSElSRURfTElTVCwgQXBwLkhPVVJTX0xJU1R9Ow0KKwkJCWZvcmVhY2ggKHN0cmluZyBmaWx0ZXIgaW4gRklMVEVSUykNCisJCQl7DQorCQkJCUFzc2VydC5Jc1RydWUoY29udGV4dC5Db250YWlucyhmaWx0ZXIpLCBmaWx0ZXIgKyAiOiBFeHBlY3RlZCBjb250ZXh0IHRvIGNvbnRhaW4ga2V5LiIpOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb25maXJtIHRoYXQgSGVscGVyIGNvbnRhaW5zIHRoZSBleHBlY3RlZCBjb21tYW5kLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgSGVscGVyQ29udGFpbnMoKQ0KKwkJew0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IGNhdGFsb2cuR2V0SGVscGVyRm9yKEFwcC5FTlRSWV9GSU5EKTsNCisJCQlJUmVxdWVzdENvbW1hbmQgY29tbWFuZCA9IGhlbHBlci5Db21tYW5kOw0KKwkJCUFzc2VydC5Jc05vdE51bGwoY29tbWFuZCwgIkV4cGVjdGVkIEhlbHBlciB0byBoYXZlIGEgQ29tbWFuZCIpOw0KKwkJCUFzc2VydC5BcmVFcXVhbChBcHAuRU5UUllfRklORCwgY29tbWFuZC5JRCwgIkV4cGVjdGVkIEhlbHBlciB0byBoYXZlIFZpZXcgQ29tbWFuZC4iKTsNCisJCX0NCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L0NvbW1hbmRzL0VkaXRGaXh0dXJlLmNzIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9Db21tYW5kcy9FZGl0Rml4dHVyZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzUxODFhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9Db21tYW5kcy9FZGl0Rml4dHVyZS5jcwpAQCAtMCwwICsxLDQzIEBACit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgTlVuaXQuRnJhbWV3b3JrOw0KKw0KK25hbWVzcGFjZSBQaG9uZUJvb2suQ29yZS5Db21tYW5kcw0KK3sNCisgICAgLy8vIDxzdW1tYXJ5Pg0KKyAgICAvLy8gRXhlcmNpc2UgZWRpdGluZyBjb21tYW5kcy4NCisgICAgLy8vIDwvc3VtbWFyeT4NCisgICAgLy8vIA0KKyAgICBbVGVzdEZpeHR1cmVdDQorICAgIHB1YmxpYyBjbGFzcyBFZGl0Rml4dHVyZSA6IEJhc2VUZXN0DQorICAgIHsNCisNCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRU5UUllfS0VZX1ZBTFVFID0gIjEyMzQ1Njc4LTEyMzQtMTIzNDU2Nzg5LTEyMzQ1Njc4OTBBQiI7DQorICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEZJUlNUX05BTUVfVkFMVUUgPSBBcHAuRklSU1RfTkFNRTsNCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgTEFTVF9OQU1FX1ZBTFVFID0gQXBwLkxBU1RfTkFNRTsNCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgVVNFUl9OQU1FX1ZBTFVFID0gQXBwLlVTRVJfTkFNRTsNCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgRVhURU5TSU9OX1ZBTFVFID0gIjEyMzQ1Njc4OTAiOw0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBISVJFRF9WQUxVRSA9ICIyMDAyLTA3LTMxIjsNCisgICAgICAgIHB1YmxpYyBjb25zdCBzdHJpbmcgSE9VUlNfVkFMVUUgPSAiMjAiOw0KKyAgICAgICAgcHVibGljIGNvbnN0IHN0cmluZyBFRElUT1JfVkFMVUUgPSAiMSI7DQorDQorICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBQb3B1bGF0ZShJRGljdGlvbmFyeSBjb250ZXh0KQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIGNvbnRleHRbQXBwLkVOVFJZX0tFWV0gPSBFTlRSWV9LRVlfVkFMVUU7DQorICAgICAgICAgICAgY29udGV4dFtBcHAuRklSU1RfTkFNRV0gPSBGSVJTVF9OQU1FX1ZBTFVFOw0KKyAgICAgICAgICAgIGNvbnRleHRbQXBwLkxBU1RfTkFNRV0gPSBMQVNUX05BTUVfVkFMVUU7DQorICAgICAgICAgICAgY29udGV4dFtBcHAuVVNFUl9OQU1FXSA9IFVTRVJfTkFNRV9WQUxVRTsNCisgICAgICAgICAgICBjb250ZXh0W0FwcC5FWFRFTlNJT05dID0gRVhURU5TSU9OX1ZBTFVFOw0KKyAgICAgICAgICAgIGNvbnRleHRbQXBwLkhJUkVEXSA9IEhJUkVEX1ZBTFVFOw0KKyAgICAgICAgICAgIGNvbnRleHRbQXBwLkhPVVJTXSA9IEhPVVJTX1ZBTFVFOw0KKyAgICAgICAgICAgIGNvbnRleHRbQXBwLkVESVRPUl0gPSBFRElUT1JfVkFMVUU7DQorICAgICAgICB9DQorICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgICAgIFtUZXN0XQ0KKyAgICAgICAgcHVibGljIHZvaWQgSW5zZXJ0RGVsZXRlKCkNCisgICAgICAgIHsNCisgICAgICAgICAgICBBc3NlcnRJbnNlcnREZWxldGUoQXBwLkVOVFJZX1NBVkUsIEFwcC5FTlRSWV9LRVksIEVOVFJZX0tFWV9WQUxVRSwgQXBwLkVOVFJZX0RFTEVURSk7DQorICAgICAgICB9DQorICAgICAgICANCisgICB9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvQ29tbWFuZHMvRmlsdGVyTGlzdHMuY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L0NvbW1hbmRzL0ZpbHRlckxpc3RzLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3MTYxYzUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L0NvbW1hbmRzL0ZpbHRlckxpc3RzLmNzCkBAIC0wLDAgKzEsMTUwIEBACisvKg0KKyAqIENvcHlyaWdodCAyMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKiANCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBOZXh1cy5Db3JlOw0KK3VzaW5nIE5leHVzLkNvcmUuSGVscGVyczsNCit1c2luZyBOVW5pdC5GcmFtZXdvcms7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5Db3JlLkNvbW1hbmRzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBFeGVyY2lzZSB0aGUgdmFyaW91cyBsaXN0cyBvZiBkaXN0aW5jdCB2YWx1ZXMgDQorCS8vLyB0aGF0IGFyZSB1c2VkIHRvIGZpbHRlciB0aGUgZGlyZWN0b3J5Lg0KKwkvLy8gPC9zdW1tYXJ5Pg0KKwkvLy8gDQorCVtUZXN0Rml4dHVyZV0NCisJcHVibGljIGNsYXNzIEZpbHRlckxpc3RzVGVzdCA6IEJhc2VUZXN0DQorCXsNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBDb25maXJtIHRoYXQgYSBsaXN0IGlzIHJldHVybmVkIGFzIHRoZSBvdXRjb21lLCANCisJCS8vLyBhbmQgdGhhdCBlYWNoIGl0ZW0gb24gdGhlIGxpc3QgaXMgbm90LWVtcHR5IGFuZCB1bmlxdWUuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5Db250ZXh0IHJldHVybmVkIGJ5IGNvbW1hbmQ8L3BhcmFtPg0KKwkJLy8vIA0KKwkJcHJpdmF0ZSB2b2lkIEZpbHRlckxpc3RfUmVzdWx0KElSZXF1ZXN0Q29udGV4dCBjb250ZXh0KQ0KKwkJew0KKwkJCUlMaXN0IGxpc3QgPSBBc3NlcnRMaXN0T3V0Y29tZShjb250ZXh0KTsNCisJCQlmb3JlYWNoIChJS2V5VmFsdWUgaXRlbSBpbiBsaXN0KQ0KKwkJCXsNCisJCQkJQXNzZXJ0LklzTm90TnVsbChpdGVtLCAiRXhwZWN0ZWQgZWFjaCBpdGVtIHRvIGJlIG5vbi1udWxsIik7DQorCQkJCW9iamVjdCBrZXkgPSBpdGVtLlZhbHVlOw0KKwkJCQlBc3NlcnQuSXNOb3ROdWxsKGtleSwgIkV4cGVjdGVkIGVhY2gga2V5IHRvIGJlIG5vbi1udWxsIik7DQorCQkJCXN0cmluZyBrZXlzdHJpbmcgPSBrZXkuVG9TdHJpbmcoKTsNCisJCQkJQXNzZXJ0LklzVHJ1ZShrZXlzdHJpbmcuTGVuZ3RoID4gMCwgIkV4cGVjdGVkIGVhY2gga2V5IHRvIGJlIG5vbi1lbXB0eSIpOw0KKwkJCX0NCisJCQlJRGljdGlvbmFyeSBrZXlzID0gbmV3IEhhc2h0YWJsZShsaXN0LkNvdW50KTsNCisJCQlmb3JlYWNoIChJS2V5VmFsdWUgaXRlbSBpbiBsaXN0KQ0KKwkJCXsNCisJCQkJc3RyaW5nIGtleSA9IGl0ZW0uVmFsdWUuVG9TdHJpbmcoKTsNCisJCQkJaWYgKGtleXMuQ29udGFpbnMoa2V5KSkgQXNzZXJ0LkZhaWwoa2V5ICsgIjogRXhwZWN0ZWQgZWFjaCBpdGVtIHRvIGJlIHVuaXF1ZSIpOw0KKwkJCQlrZXlzLkFkZChrZXksIGtleSk7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEV4ZXJjaXNlIHRoZSBmaWx0ZXIgY29tbWFuZHMuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJW1Rlc3RdDQorCQlwdWJsaWMgdm9pZCBUZXN0RmlsdGVyTGlzdHMoKQ0KKwkJew0KKwkJCXN0cmluZ1tdIEZJTFRFUlMgPSB7QXBwLkxBU1RfTkFNRV9MSVNULCBBcHAuRklSU1RfTkFNRV9MSVNULCBBcHAuRVhURU5TSU9OX0xJU1QsIEFwcC5VU0VSX05BTUVfTElTVCwgQXBwLkhJUkVEX0xJU1QsIEFwcC5IT1VSU19MSVNUfTsNCisJCQlmb3JlYWNoIChzdHJpbmcgZmlsdGVyIGluIEZJTFRFUlMpDQorCQkJew0KKwkJCQlJUmVxdWVzdENvbnRleHQgY29udGV4dCA9IGNhdGFsb2cuRXhlY3V0ZVJlcXVlc3QoZmlsdGVyKTsNCisJCQkJRmlsdGVyTGlzdF9SZXN1bHQoY29udGV4dCk7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEV4Y2VyY2lzZSBlbnRyeSBmaWxlIGFuZCB2YWxpZGF0ZSBrZXkgdmFsdWUgbGlzdC4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gPHBhcmFtIG5hbWU9ImtleSI+SUQgZm9yIGxpc3Q8L3BhcmFtPg0KKwkJLy8vIDxyZXR1cm5zPlRoZSB2YWxpZGF0ZWQgbGlzdDwvcmV0dXJucz4NCisJCS8vLyANCisJCXByaXZhdGUgSUtleVZhbHVlTGlzdCBGaWx0ZXJMaXN0KHN0cmluZyBrZXkpDQorCQl7DQorCQkJSVZpZXdIZWxwZXIgaGVscGVyID0gY2F0YWxvZy5HZXRIZWxwZXJGb3IoQXBwLkVOVFJZX0ZJTkQpOw0KKwkJCWhlbHBlci5FeGVjdXRlKCk7DQorCQkJSUtleVZhbHVlTGlzdCBsaXN0ID0gaGVscGVyLkNyaXRlcmlhW2tleV0gYXMgSUtleVZhbHVlTGlzdDsNCisJCQlBc3NlcnQuSXNOb3ROdWxsKGxpc3QsICJFeHBlY3RlZCBLZXlWYWx1ZUxpc3QiKTsNCisJCQlyZXR1cm4gbGlzdDsNCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBFeGVyY2lzZSBFeHRlbnNpb24gTGlzdCBmaWx0ZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJW1Rlc3RdDQorCQlwdWJsaWMgdm9pZCBUZXN0RmlsdGVyRm9ybWF0X2V4dGVuc2lvbigpDQorCQl7DQorCQkJSUtleVZhbHVlTGlzdCBsaXN0ID0gRmlsdGVyTGlzdChBcHAuRVhURU5TSU9OX0xJU1QpOw0KKwkJCWZvcmVhY2ggKElLZXlWYWx1ZSBpdGVtIGluIGxpc3QpDQorCQkJew0KKwkJCQlzdHJpbmcga2V5ID0gaXRlbS5WYWx1ZSBhcyBzdHJpbmc7DQorCQkJCUFzc2VydC5Jc1RydWUoa2V5Lkxlbmd0aCA+ICIxMjM0NTY3ODkwIi5MZW5ndGgsICJFeHBlY3RlZCBmb3JtYXR0ZWQgZXh0ZW5zaW9uLCBub3Q6ICIgKyBrZXkpOw0KKwkJCX0NCisJCX0NCisNCisJCS8vLyA8c3VtbWFyeT4NCisJCS8vLyBFeGVyY2lzZSBIaXJlZCBmaWx0ZXIuDQorCQkvLy8gPC9zdW1tYXJ5Pg0KKwkJLy8vIA0KKwkJW1Rlc3RdDQorCQlwdWJsaWMgdm9pZCBUZXN0RmlsdGVyRm9ybWF0X2hpcmVkKCkNCisJCXsNCisJCQlJS2V5VmFsdWVMaXN0IGxpc3QgPSBGaWx0ZXJMaXN0KEFwcC5ISVJFRF9MSVNUKTsNCisJCQlmb3JlYWNoIChJS2V5VmFsdWUgaXRlbSBpbiBsaXN0KQ0KKwkJCXsNCisJCQkJc3RyaW5nIGtleSA9IGl0ZW0uVmFsdWUgYXMgc3RyaW5nOw0KKwkJCQlib29sIG9rYXkgPSAoa2V5Lkxlbmd0aCA+IDApICYmIChrZXkuTGVuZ3RoIDwgIiMjLyMjLyMjIyMgIi5MZW5ndGgpOw0KKwkJCQlBc3NlcnQuSXNUcnVlKG9rYXksICJFeHBlY3RlZCBzaG9ydCBkYXRlIGZvcm1hdCwgbm90OiAiICsga2V5KTsNCisJCQl9DQorCQl9DQorDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIEluaXRpYWwoKQ0KKwkJew0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IGNhdGFsb2cuR2V0SGVscGVyRm9yKEFwcC5FTlRSWV9MSVNUKTsNCisJCQloZWxwZXIuQ3JpdGVyaWFbImluaXRpYWwiXSA9ICJDJSI7DQorCQkJaGVscGVyLkV4ZWN1dGUoKTsNCisJCQlBc3NlcnQuSXNUcnVlKGhlbHBlci5Jc05vbWluYWwsIGhlbHBlci5BbGVydHNUZXh0KTsNCisJCQlJTGlzdCBsaXN0ID0gaGVscGVyLk91dGNvbWU7DQorCQkJQXNzZXJ0LklzVHJ1ZShsaXN0LkNvdW50ID4gMCwgIkV4cGVjdGVkIG9uZSBvciBtb3JlIGVudHJpZXMiKTsNCisJCQlmb3JlYWNoIChBcHBFbnRyeSBlbnRyeSBpbiBsaXN0KQ0KKwkJCXsNCisJCQkJQXNzZXJ0LklzVHJ1ZSgiQyIuRXF1YWxzKGVudHJ5Lmxhc3RfbmFtZS5TdWJzdHJpbmcoMCwgMSkpLCAiRXhwZWN0ZWQgYWxsIHRvIGJlIEMqIik7DQorCQkJfQ0KKwkJCWludCBjb3VudCA9IENvbnZlcnQuVG9JbnQzMihoZWxwZXIuQ3JpdGVyaWFbIml0ZW1fY291bnQiXSk7DQorCQkJQXNzZXJ0LklzVHJ1ZShjb3VudCA9PSBsaXN0LkNvdW50LCAiRXhwZWN0ZWQgY291bnRzIHRvIG1hdGNoIik7DQorCQl9DQorDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIEluaXRpYWxEaXN0aW5jdCgpDQorCQl7DQorCQkJSVZpZXdIZWxwZXIgaGVscGVyID0gY2F0YWxvZy5HZXRIZWxwZXJGb3IoQXBwLkVOVFJZX0lOSVRJQUwpOw0KKwkJCWhlbHBlci5FeGVjdXRlKCk7DQorCQkJQXNzZXJ0LklzVHJ1ZShoZWxwZXIuSXNOb21pbmFsLCBoZWxwZXIuQWxlcnRzVGV4dCk7DQorCQkJSUxpc3QgbGlzdCA9IGhlbHBlci5PdXRjb21lOw0KKwkJCUFzc2VydC5Jc1RydWUobGlzdC5Db3VudCA+IDAsICJFeHBlY3RlZCBvbmUgb3IgbW9yZSBlbnRyaWVzIik7DQorCQkJc3RyaW5nIGEgPSBsaXN0WzBdIGFzIHN0cmluZzsNCisJCQlBc3NlcnQuSXNOb3ROdWxsKGEsICJFeHBlY3RlZCBsZXR0ZXIiKTsNCisJCQlBc3NlcnQuSXNUcnVlKCJDIi5FcXVhbHMoYSksICJFeHBlY3RlZCBDIik7DQorCQl9DQorDQorCX0NCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9Db21tYW5kcy9Gb3JtYXRFbnRyeS5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvQ29tbWFuZHMvRm9ybWF0RW50cnkuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5MzE5MAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvQ29tbWFuZHMvRm9ybWF0RW50cnkuY3MKQEAgLTAsMCArMSw2MSBAQAorLyoNCisgKiBDb3B5cmlnaHQgMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICogDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqIA0KKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICogDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3VzaW5nIE5leHVzLkNvcmUuSGVscGVyczsNCit1c2luZyBOVW5pdC5GcmFtZXdvcms7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5Db3JlLkNvbW1hbmRzDQorew0KKw0KKyAgICAvLy8gPHN1bW1hcnk+DQorICAgIC8vLyBFeGVyY2lzZSBmb3JtYXR0aW5nIHByb2Nlc3NvcnMuDQorICAgIC8vLyA8L3N1bW1hcnk+DQorICAgIC8vLyANCisgICAgW1Rlc3RGaXh0dXJlXQ0KKyAgICBwdWJsaWMgY2xhc3MgRm9ybWF0RW50cnkgOiBCYXNlVGVzdA0KKyAgICB7DQorDQorICAgICAgICBwdWJsaWMgY29uc3Qgc3RyaW5nIEVOVFJZX0tFWV9WQUxVRV9GT1JNQVQgPSAiYzViNmJiYjEtNjZkNi00OWNiLTlkYjYtNzQzYWY2NjI3ODI4IjsgICAgICAgIA0KKw0KKyAgICAgICAgcHJpdmF0ZSBBcHBFbnRyeSBnZXRBcHBFbnRyeSgpDQorICAgICAgICB7DQorICAgICAgICAgICAgSVZpZXdIZWxwZXIgaGVscGVyID0gY2F0YWxvZy5HZXRIZWxwZXJGb3IoQXBwLkVOVFJZKTsNCisgICAgICAgICAgICBoZWxwZXIuQ3JpdGVyaWFbQXBwLkVOVFJZX0tFWV0gPSBFTlRSWV9LRVlfVkFMVUVfRk9STUFUOw0KKyAgICAgICAgICAgIGhlbHBlci5FeGVjdXRlKCk7DQorICAgICAgICAgICAgQXNzZXJ0Tm9taW5hbChoZWxwZXIpOw0KKyAgICAgICAgICAgIEFwcEVudHJ5IGVudHJ5ID0gbmV3IEFwcEVudHJ5KGhlbHBlci5Dcml0ZXJpYSk7DQorICAgICAgICAgICAgcmV0dXJuIGVudHJ5Ow0KKyAgICAgICAgfQ0KKyAgICAgICAgDQorICAgICAgICBbVGVzdF0NCisgICAgICAgIHB1YmxpYyB2b2lkIEhpcmVkKCkNCisgICAgICAgIHsNCisgICAgICAgICAgICBBcHBFbnRyeSBlbnRyeSA9IGdldEFwcEVudHJ5KCk7DQorICAgICAgICAgICAgc3RyaW5nIGhpcmVkID0gZW50cnkuaGlyZWQ7DQorICAgICAgICAgICAgQXNzZXJ0LklzTm90TnVsbChoaXJlZCwgIkV4cGVjdGVkIHJvdyB0byBoYXZlIGEgaGlyZWQgZGF0ZSBpbiBzdHJpbmcgZm9ybWF0LiIpOw0KKyAgICAgICAgICAgIEFzc2VydC5Jc1RydWUoaGlyZWQuTGVuZ3RoIDwgIiMjLyMjLyMjIyMgIi5MZW5ndGgsIGhpcmVkICsgIjogRXhwZWN0ZWQgc2hvcnQgZGF0ZSBmb3JtYXQuIik7DQorICAgICAgICB9DQorDQorICAgICAgICBbVGVzdF0NCisgICAgICAgIHB1YmxpYyB2b2lkIGV4dGVuc2lvbigpDQorICAgICAgICB7DQorICAgICAgICAgICAgQXBwRW50cnkgZW50cnkgPSBnZXRBcHBFbnRyeSgpOw0KKyAgICAgICAgICAgIHN0cmluZyBleHRlbnNpb24gPSBlbnRyeS5leHRlbnNpb247DQorICAgICAgICAgICAgQXNzZXJ0LklzTm90TnVsbChleHRlbnNpb24sICJFeHBlY3RlZCBlYWNoIHJvdyB0byBoYXZlIGFuIGV4dGVuc2lvbi4iKTsNCisgICAgICAgICAgICBBc3NlcnQuSXNUcnVlKGV4dGVuc2lvbi5MZW5ndGggPiAiMTIzNDU2Nzg5MCIuTGVuZ3RoLCBleHRlbnNpb24gKyAiOiBFeHBlY3RlZCBmb3JtYXR0ZWQgZXh0ZW5zaW9uLiIpOw0KKyAgICAgICAgfQ0KKw0KKyAgICB9DQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvQ29tbWFuZHMvU2VsZWN0QWxsVGVzdC5jcyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvQ29tbWFuZHMvU2VsZWN0QWxsVGVzdC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTJmMDkxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9Db21tYW5kcy9TZWxlY3RBbGxUZXN0LmNzCkBAIC0wLDAgKzEsMTEzIEBACisvKg0KKyAqIENvcHlyaWdodCAyMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKiANCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICogDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKiANCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQordXNpbmcgU3lzdGVtOw0KK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9uczsNCit1c2luZyBOZXh1cy5Db3JlOw0KK3VzaW5nIE5leHVzLkNvcmUuSGVscGVyczsNCit1c2luZyBOVW5pdC5GcmFtZXdvcms7DQorDQorbmFtZXNwYWNlIFBob25lQm9vay5Db3JlLkNvbW1hbmRzDQorew0KKwkvLy8gPHN1bW1hcnk+DQorCS8vLyBFeGVyY2lzZSBTZWxlY3RBbGwgQ29tbWFuZCBwZXIgW09WUi01XS4NCisJLy8vIDwvc3VtbWFyeT4NCisJLy8vIA0KKwlbVGVzdEZpeHR1cmVdDQorCXB1YmxpYyBjbGFzcyBTZWxlY3RBbGxUZXN0IDogQmFzZVRlc3QNCisJew0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEFzc2VydCByZXN1bHQgb2YgU2VsZWN0QWxsLCBhZnRlciBhbm90aGVyIG1ldGhvZCBydW5zIHRoZSBjb21tYW5kLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+Q29udGV4dCB3aXRoIHJlc3VsdCB0byBhc3NlcnQuPC9wYXJhbT4JDQorCQkvLy8gCQ0KKwkJcHJpdmF0ZSB2b2lkIFNlbGVjdEFsbF9SZXN1bHQoSVJlcXVlc3RDb250ZXh0IGNvbnRleHQpDQorCQl7DQorCQkJSUxpc3QgbGlzdCA9IEFzc2VydExpc3RPdXRjb21lKGNvbnRleHQpOw0KKwkJCUlEaWN0aW9uYXJ5IHJvdyA9IGxpc3RbMF0gYXMgSURpY3Rpb25hcnk7DQorCQkJQXNzZXJ0LklzTm90TnVsbChyb3csICJFeHBlY3RlZCBsaXN0IGVudHJ5IHRvIGJlIGFuIElEaWN0aW9uYXJ5LiIpOw0KKwkJCXN0cmluZ1tdIEtFWVMgPSB7QXBwLkZJUlNUX05BTUUsIEFwcC5MQVNUX05BTUUsIEFwcC5VU0VSX05BTUUsIEFwcC5FWFRFTlNJT04sIEFwcC5ISVJFRCwgQXBwLkhPVVJTLCBBcHAuRURJVE9SfTsNCisJCQlib29sIHZhbGlkID0gdHJ1ZTsNCisJCQlmb3JlYWNoIChzdHJpbmcga2V5IGluIEtFWVMpDQorCQkJew0KKwkJCQl2YWxpZCA9IHZhbGlkICYmIHJvdy5Db250YWlucyhrZXkpOw0KKwkJCX0NCisJCQlBc3NlcnQuSXNUcnVlKHZhbGlkLCAiRXhwZWN0ZWQgcm93IHRvIGNvbnRhaW4gYWxsIGtleXMuIik7DQorCQl9DQorDQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRmlsdGVyIGFsbCBhbmQgc3VjY2VlZCwgdXNpbmcgY2F0YWxvZy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIFNlbGVjdEFsbF9QYXNzKCkNCisJCXsNCisJCQlJUmVxdWVzdENvbnRleHQgY29udGV4dCA9IGNhdGFsb2cuRXhlY3V0ZVJlcXVlc3QoQXBwLkVOVFJZX0xJU1QpOw0KKwkJCVNlbGVjdEFsbF9SZXN1bHQoY29udGV4dCk7DQorCQl9DQorDQorCQkvLy8gPHN1bW1hcnk+DQorCQkvLy8gRXhlcmNpc2UgRW50cnkgTGlzdCBhbmQgdmFsaWRhdGUgaGlyZWQgYW5kIGV4dGVuc2lvbiBzdHJpbmcgZm9ybWF0dGluZy4NCisJCS8vLyA8L3N1bW1hcnk+DQorCQkvLy8gDQorCQlbVGVzdF0NCisJCXB1YmxpYyB2b2lkIEZpbHRlckhlbHBlcl9Gb3JtYXQoKQ0KKwkJew0KKwkJCUlWaWV3SGVscGVyIGhlbHBlciA9IGNhdGFsb2cuR2V0SGVscGVyRm9yKEFwcC5FTlRSWV9MSVNUKTsNCisJCQloZWxwZXIuRXhlY3V0ZSgpOw0KKwkJCUFzc2VydE5vbWluYWwoaGVscGVyKTsNCisJCQlBcHBFbnRyeUxpc3QgbGlzdCA9IGhlbHBlci5PdXRjb21lIGFzIEFwcEVudHJ5TGlzdDsNCisJCQlBc3NlcnQuSXNOb3ROdWxsKGxpc3QsICJFeHBlY3RlZCBsaXN0IHRvIGJlIEFwcEVudHJ5TGlzdCIpOw0KKwkJCUFwcEVudHJ5IHJvdyA9IGxpc3RbMF0gYXMgQXBwRW50cnk7DQorCQkJQXNzZXJ0LklzTm90TnVsbChyb3csICJFeHBlY3RlZCByb3dzIHRvIGJlIEFwcEVudHJpZXMiKTsNCisNCisJCQlzdHJpbmcgaGlyZWQgPSByb3cuaGlyZWQ7DQorCQkJQXNzZXJ0LklzTm90TnVsbChoaXJlZCwgIkV4cGVjdGVkIGVhY2ggcm93IHRvIGhhdmUgYSBoaXJlZCBkYXRlLiIpOw0KKwkJCUFzc2VydC5Jc1RydWUoaGlyZWQuTGVuZ3RoIDwgIiMjLyMjLyMjIyMgIi5MZW5ndGgsIGhpcmVkICsgIjogRXhwZWN0ZWQgc2hvcnQgZGF0ZSBmb3JtYXQuIik7DQorDQorCQkJc3RyaW5nIGV4dGVuc2lvbiA9IHJvdy5leHRlbnNpb247DQorCQkJQXNzZXJ0LklzTm90TnVsbChleHRlbnNpb24sICJFeHBlY3RlZCBlYWNoIHJvdyB0byBoYXZlIGFuIGV4dGVuc2lvbi4iKTsNCisJCQlBc3NlcnQuSXNUcnVlKGV4dGVuc2lvbi5MZW5ndGggPiAiMTIzNDU2Nzg5MCIuTGVuZ3RoLCBleHRlbnNpb24gKyAiOiBFeHBlY3RlZCBmb3JtYXR0ZWQgZXh0ZW5zaW9uLiIpOw0KKwkJfQ0KKw0KKwkJLy8vIDxzdW1tYXJ5Pg0KKwkJLy8vIEV4ZXJjaXNlIGN1c3RvbSBwYWdpbmcgDQorCQkvLy8gKHJldHJpZXZlIG9ubHkgdmlzaWJsZSBzZWN0aW9uIG9mIHRoZSByZXN1bHQgc2UpLg0KKwkJLy8vIDwvc3VtbWFyeT4NCisJCS8vLyANCisJCVtUZXN0XQ0KKwkJcHVibGljIHZvaWQgU2VsZWN0QWxsX0xpbWl0KCkNCisJCXsNCisJCQlJVmlld0hlbHBlciBoZWxwZXIgPSBjYXRhbG9nLkdldEhlbHBlckZvcihBcHAuRU5UUllfTElTVCk7DQorCQkJaGVscGVyLkNyaXRlcmlhW0FwcC5JVEVNX0xJTUlUXSA9IDI7DQorCQkJaGVscGVyLkNyaXRlcmlhW0FwcC5JVEVNX09GRlNFVF0gPSAwOw0KKwkJCWhlbHBlci5FeGVjdXRlKCk7DQorCQkJaWYgKCFoZWxwZXIuSXNOb21pbmFsKSBBc3NlcnQuRmFpbChoZWxwZXIuQWxlcnRzVGV4dCk7DQorCQkJSUxpc3QgbGlzdCA9IGhlbHBlci5PdXRjb21lOw0KKwkJCUFzc2VydC5Jc1RydWUobGlzdC5Db3VudCA9PSAyLCAiRXhwZWN0ZWQgcmVzdWx0IHNldCB0byBiZSBsaW1pdGVkIHRvIHR3byBlbnRyaWVzLiIpOw0KKwkJCUFwcEVudHJ5IGVudHJ5ID0gbGlzdFswXSBhcyBBcHBFbnRyeTsNCisJCQloZWxwZXIuQ3JpdGVyaWFbQXBwLklURU1fTElNSVRdID0gMjsNCisJCQloZWxwZXIuQ3JpdGVyaWFbQXBwLklURU1fT0ZGU0VUXSA9IDM7DQorCQkJaGVscGVyLkV4ZWN1dGUoKTsNCisJCQlJTGlzdCBsaXN0MiA9IGhlbHBlci5PdXRjb21lOw0KKwkJCUFwcEVudHJ5IGVudHJ5MiA9IGxpc3QyWzBdIGFzIEFwcEVudHJ5Ow0KKwkJCUFzc2VydC5Jc0ZhbHNlKGVudHJ5LmVudHJ5X2tleS5FcXVhbHMoZW50cnkyLmVudHJ5X2tleSksICJFeHBlY3RlZCByZXN1bHQgc2V0cyB0byBiZSBkaWZmZXJlbnQiKTsNCisJCQlpbnQgY291bnQgPSBDb252ZXJ0LlRvSW50MzIoaGVscGVyLkNyaXRlcmlhW0FwcC5JVEVNX0NPVU5UXSk7DQorCQkJQXNzZXJ0LklzVHJ1ZShjb3VudCA+IDIsICJFeHBlY3RlZCB0aGUgb3ZlcmFsbCBjb3VudCB0byBiZSBoaWdoZXIiKTsNCisJCX0NCisNCisJfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L09iamVjdHMueG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9PYmplY3RzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmQ3ZDliCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9PYmplY3RzLnhtbApAQCAtMCwwICsxLDExIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4gDQorPG9iamVjdHMgeG1sbnM9Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCIgDQorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIA0KKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCBodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQveHNkL3NwcmluZy1vYmplY3RzLnhzZCI+DQorDQorICA8aW1wb3J0IHJlc291cmNlPSJSZXNvdXJjZXMvQXBwQmFzZS54bWwiLz4NCisgIDxpbXBvcnQgcmVzb3VyY2U9IlJlc291cmNlcy9BcHBDb25maWcueG1sIi8+DQorICA8aW1wb3J0IHJlc291cmNlPSJSZXNvdXJjZXMvQXBwRmllbGRzLnhtbCIvPg0KKyAgPGltcG9ydCByZXNvdXJjZT0iUmVzb3VyY2VzL0NhdGFsb2cueG1sIi8+DQorDQorPC9vYmplY3RzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvUHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiZjI4YjcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzCkBAIC0wLDAgKzEsMzUgQEAKK++7v3VzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOw0KK3VzaW5nIFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXM7DQordXNpbmcgU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzOw0KKw0KKy8vIEdlbmVyYWwgSW5mb3JtYXRpb24gYWJvdXQgYW4gYXNzZW1ibHkgaXMgY29udHJvbGxlZCB0aHJvdWdoIHRoZSBmb2xsb3dpbmcgDQorLy8gc2V0IG9mIGF0dHJpYnV0ZXMuIENoYW5nZSB0aGVzZSBhdHRyaWJ1dGUgdmFsdWVzIHRvIG1vZGlmeSB0aGUgaW5mb3JtYXRpb24NCisvLyBhc3NvY2lhdGVkIHdpdGggYW4gYXNzZW1ibHkuDQorW2Fzc2VtYmx5OiBBc3NlbWJseVRpdGxlKCJUZXN0IildDQorW2Fzc2VtYmx5OiBBc3NlbWJseURlc2NyaXB0aW9uKCIiKV0NCitbYXNzZW1ibHk6IEFzc2VtYmx5Q29uZmlndXJhdGlvbigiIildDQorW2Fzc2VtYmx5OiBBc3NlbWJseUNvbXBhbnkoIiIpXQ0KK1thc3NlbWJseTogQXNzZW1ibHlQcm9kdWN0KCJUZXN0IildDQorW2Fzc2VtYmx5OiBBc3NlbWJseUNvcHlyaWdodCgiQ29weXJpZ2h0IMKpICAyMDA2IildDQorW2Fzc2VtYmx5OiBBc3NlbWJseVRyYWRlbWFyaygiIildDQorW2Fzc2VtYmx5OiBBc3NlbWJseUN1bHR1cmUoIiIpXQ0KKw0KKy8vIFNldHRpbmcgQ29tVmlzaWJsZSB0byBmYWxzZSBtYWtlcyB0aGUgdHlwZXMgaW4gdGhpcyBhc3NlbWJseSBub3QgdmlzaWJsZSANCisvLyB0byBDT00gY29tcG9uZW50cy4gIElmIHlvdSBuZWVkIHRvIGFjY2VzcyBhIHR5cGUgaW4gdGhpcyBhc3NlbWJseSBmcm9tIA0KKy8vIENPTSwgc2V0IHRoZSBDb21WaXNpYmxlIGF0dHJpYnV0ZSB0byB0cnVlIG9uIHRoYXQgdHlwZS4NCitbYXNzZW1ibHk6IENvbVZpc2libGUoZmFsc2UpXQ0KKw0KKy8vIFRoZSBmb2xsb3dpbmcgR1VJRCBpcyBmb3IgdGhlIElEIG9mIHRoZSB0eXBlbGliIGlmIHRoaXMgcHJvamVjdCBpcyBleHBvc2VkIHRvIENPTQ0KK1thc3NlbWJseTogR3VpZCgiOTFiNTljYWUtOGViYS00MGQ3LWIyYWUtZmM5NDVkMTYyNDJhIildDQorDQorLy8gVmVyc2lvbiBpbmZvcm1hdGlvbiBmb3IgYW4gYXNzZW1ibHkgY29uc2lzdHMgb2YgdGhlIGZvbGxvd2luZyBmb3VyIHZhbHVlczoNCisvLw0KKy8vICAgICAgTWFqb3IgVmVyc2lvbg0KKy8vICAgICAgTWlub3IgVmVyc2lvbiANCisvLyAgICAgIEJ1aWxkIE51bWJlcg0KKy8vICAgICAgUmV2aXNpb24NCisvLw0KKy8vIFlvdSBjYW4gc3BlY2lmeSBhbGwgdGhlIHZhbHVlcyBvciB5b3UgY2FuIGRlZmF1bHQgdGhlIFJldmlzaW9uIGFuZCBCdWlsZCBOdW1iZXJzIA0KKy8vIGJ5IHVzaW5nIHRoZSAnKicgYXMgc2hvd24gYmVsb3c6DQorW2Fzc2VtYmx5OiBBc3NlbWJseVZlcnNpb24oIjEuMC4wLjAiKV0NCitbYXNzZW1ibHk6IEFzc2VtYmx5RmlsZVZlcnNpb24oIjEuMC4wLjAiKV0NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L1Jlc291cmNlcy9BcHBCYXNlLnhtbCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvUmVzb3VyY2VzL0FwcEJhc2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyODA2ODkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L1Jlc291cmNlcy9BcHBCYXNlLnhtbApAQCAtMCwwICsxLDM4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4gDQorPG9iamVjdHMgeG1sbnM9Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCIgDQorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIA0KKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCBodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQveHNkL3NwcmluZy1vYmplY3RzLnhzZCI+DQorDQorIDwhLS0gQmFzZSBlbGVtZW50IChzdXBlciBwYXJlbnQpLS0+DQorIA0KKyA8b2JqZWN0IGlkPSJCYXNlTWFwcGVyIiBhYnN0cmFjdD0idHJ1ZSI+DQorICAgICA8cHJvcGVydHkgbmFtZT0iTWFwcGVyIj48cmVmIG9iamVjdD0iTWFwcGVyIi8+PC9wcm9wZXJ0eT4NCisgPC9vYmplY3Q+DQorIA0KKyA8IS0tIEJhc2UgY2xhc3MgcGFyZW50cyAtLT4gDQorDQorCTxvYmplY3QgaWQ9IkJhc2VDaGFpbiIgdHlwZT0iTmV4dXMuQ29yZS5SZXF1ZXN0Q2hhaW4sIE5leHVzLkNvcmUiLz4NCisJDQorCTxvYmplY3QgaWQ9IkJhc2VDb3VudCIgdHlwZT0iUGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuQmFzZUNvdW50LCBQaG9uZUJvb2suQ29yZSIgcGFyZW50PSJCYXNlTWFwcGVyIi8+DQorDQorICA8b2JqZWN0IGlkPSJCYXNlRGVsZXRlIiB0eXBlPSJQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlRGVsZXRlLCBQaG9uZUJvb2suQ29yZSIgcGFyZW50PSJCYXNlTWFwcGVyIi8+DQorDQorICA8b2JqZWN0IGlkPSJCYXNlRW50cnkiIHR5cGU9IlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VFbnRyeSwgUGhvbmVCb29rLkNvcmUiIHBhcmVudD0iQmFzZU1hcHBlciIvPg0KKw0KKyAgPG9iamVjdCBpZD0iQmFzZUZpbHRlckxpc3QiIHR5cGU9IlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VGaWx0ZXJMaXN0LCBQaG9uZUJvb2suQ29yZSIgcGFyZW50PSJCYXNlTWFwcGVyIi8+DQorCQ0KKwk8b2JqZWN0IGlkPSJCYXNlRmllbGRDb250ZXh0IiB0eXBlPSJOZXh1cy5FeHRyYXMuU3ByaW5nLkZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iTWVzc2FnZVNvdXJjZSI+DQorCQkJPHJlZiBvYmplY3Q9Im1lc3NhZ2VTb3VyY2UiIC8+DQorCQk8L3Byb3BlcnR5PgkJDQorCTwvb2JqZWN0Pg0KKwkNCisJPG9iamVjdCBpZD0iQmFzZUtleVZhbHVlUHJvY2Vzc29yIiB0eXBlPSJOZXh1cy5Db3JlLlZhbGlkYXRvcnMuS2V5VmFsdWVQcm9jZXNzb3IiLz4NCisNCisJPG9iamVjdCBpZD0iQmFzZUxpc3QiIHR5cGU9IlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VMaXN0LCBQaG9uZUJvb2suQ29yZSIgcGFyZW50PSJCYXNlTWFwcGVyIi8+DQorDQorCTxvYmplY3QgaWQ9IkJhc2VTYXZlIiB0eXBlPSJQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlU2F2ZSwgUGhvbmVCb29rLkNvcmUiIHBhcmVudD0iQmFzZU1hcHBlciIvPg0KKw0KKyAgICA8b2JqZWN0IGlkPSJFbnRyeUluaXRpYWwiIHR5cGU9IlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkVudHJ5SW5pdGlhbCwgUGhvbmVCb29rLkNvcmUiIHBhcmVudD0iQmFzZU1hcHBlciIvPg0KKw0KKzwvb2JqZWN0cz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L1Jlc291cmNlcy9BcHBDb25maWcueG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9SZXNvdXJjZXMvQXBwQ29uZmlnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mM2JiY2JkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9SZXNvdXJjZXMvQXBwQ29uZmlnLnhtbApAQCAtMCwwICsxLDY2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4gDQorPG9iamVjdHMgeG1sbnM9Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCIgDQorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIA0KKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCBodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQveHNkL3NwcmluZy1vYmplY3RzLnhzZCI+DQorDQorIDwhLS0gTWVzc2FnZSBTb3VyY2UgLS0+DQorDQorCTxvYmplY3QgaWQ9Im1lc3NhZ2VTb3VyY2UiIHR5cGU9IlNwcmluZy5Db250ZXh0LlN1cHBvcnQuUmVzb3VyY2VTZXRNZXNzYWdlU291cmNlLCBTcHJpbmcuQ29yZSI+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iUmVzb3VyY2VNYW5hZ2VycyI+DQorICAgICAgICAgICAgPGxpc3Q+DQorICAgICAgICAgICAgICAgIDx2YWx1ZT5QaG9uZUJvb2suQ29yZS5NZXNzYWdlcywgUGhvbmVCb29rLkNvcmU8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgICA8dmFsdWU+TmV4dXMuV2ViLk1lc3NhZ2VzLCBOZXh1cy5XZWI8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvbGlzdD4NCisgICAgICAgIDwvcHJvcGVydHk+ICAgIA0KKyAgICA8L29iamVjdD4NCisNCisNCisgPCEtLSBSZXF1ZXN0IFByb2Nlc3NvcnMgLS0+DQorCQ0KKyAgPG9iamVjdCBpZD0iY29udmVydF9pbnB1dCIgdHlwZT0iTmV4dXMuQ29yZS5WYWxpZGF0b3JzLkNvbnZlcnRJbnB1dCI+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmNvbnZlcnRfaW5wdXQ8L3ZhbHVlPjwvcHJvcGVydHk+DQorICA8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9ImZvcm1hdF9vdXRwdXQiIHR5cGU9Ik5leHVzLkNvcmUuVmFsaWRhdG9ycy5Gb3JtYXRPdXRwdXQiPg0KKyAgICA8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5mb3JtYXRfb3V0cHV0PC92YWx1ZT48L3Byb3BlcnR5PiAgICANCisgIDwvb2JqZWN0Pg0KKyAgDQorICA8b2JqZWN0IGlkPSJjbGVhcl9jb250ZXh0IiB0eXBlPSJOZXh1cy5Db3JlLlZhbGlkYXRvcnMuQ2xlYXJDb250ZXh0Ij4NCisgICAgPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+Y2xlYXJfY29udGV4dDwvdmFsdWU+PC9wcm9wZXJ0eT4gICAgDQorICA8L29iamVjdD4NCisNCisgPCEtLSBwcmUtb3AgLS0+DQorDQorICA8b2JqZWN0IGlkPSJwcmUtb3AiIHBhcmVudD0iQmFzZUNoYWluIj4NCisJPHByb3BlcnR5IG5hbWU9IkFkZENvbW1hbmRzIj4NCisJCTxsaXN0Pg0KKwkJCTxyZWYgb2JqZWN0PSJjb252ZXJ0X2lucHV0Ii8+DQorCQk8L2xpc3Q+ICAgDQorICAgIDwvcHJvcGVydHk+ICAgICAgICAgICANCisgIDwvb2JqZWN0PiAgDQorICANCisgPCEtLSBwb3N0LW9wIC0tPg0KKw0KKyAgPG9iamVjdCBpZD0icG9zdC1vcCIgcGFyZW50PSJCYXNlQ2hhaW4iPg0KKwk8cHJvcGVydHkgbmFtZT0iQWRkQ29tbWFuZHMiPg0KKwkJPGxpc3Q+DQorCQkJPHJlZiBvYmplY3Q9ImZvcm1hdF9vdXRwdXQiLz4NCisJCTwvbGlzdD4gICANCisgICAgPC9wcm9wZXJ0eT4gICAgICAgICAgIA0KKyAgPC9vYmplY3Q+DQorICAgIAkJDQorIDwhLS0gQ2F0YWxvZyAtLT4NCisgDQorICA8b2JqZWN0IGlkPSJDYXRhbG9nIiB0eXBlPSJOZXh1cy5FeHRyYXMuU3ByaW5nLkNhdGFsb2ciPg0KKwkgIDxwcm9wZXJ0eSBuYW1lPSJGaWVsZFRhYmxlIj48cmVmIG9iamVjdD0iRmllbGRUYWJsZSIvPjwvcHJvcGVydHk+DQorCSAgPHByb3BlcnR5IG5hbWU9IlByZU9wIj48cmVmIG9iamVjdD0icHJlLW9wIi8+PC9wcm9wZXJ0eT4NCisJICA8cHJvcGVydHkgbmFtZT0iUG9zdE9wIj48cmVmIG9iamVjdD0icG9zdC1vcCIvPjwvcHJvcGVydHk+DQorCSAgPHByb3BlcnR5IG5hbWU9IlZpZXdIZWxwZXIiPjxvYmplY3QgdHlwZT0iTmV4dXMuV2ViLldlYkhlbHBlciwgTmV4dXMuV2ViIiBzaW5nbGV0b249ImZhbHNlIi8+PC9wcm9wZXJ0eT4NCisgPC9vYmplY3Q+DQorIA0KKzwhLS0gaUJBVElTIE1hcHBlciAtLT4NCisgIA0KKyAgPG9iamVjdCBpZD0iTWFwcGVyIiB0eXBlPSJJQmF0aXNOZXQuRGF0YU1hcHBlci5NYXBwZXIsIElCYXRpc05ldC5EYXRhTWFwcGVyIiANCisJCWZhY3RvcnktbWV0aG9kPSJJbnN0YW5jZSIvPiANCisgICAgICANCis8L29iamVjdHM+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9SZXNvdXJjZXMvQXBwRmllbGRzLnhtbCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvUmVzb3VyY2VzL0FwcEZpZWxkcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzAzZmMyYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvUmVzb3VyY2VzL0FwcEZpZWxkcy54bWwKQEAgLTAsMCArMSwxMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/PiANCis8b2JqZWN0cyB4bWxucz0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0IiANCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgDQorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0IGh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldC94c2Qvc3ByaW5nLW9iamVjdHMueHNkIj4NCisNCisJIDwhLS0gRmllbGRUYWJsZSAtLT4NCisNCisJPG9iamVjdCBpZD0iRmllbGRUYWJsZSIgdHlwZT0iTmV4dXMuQ29yZS5UYWJsZXMuRmllbGRUYWJsZSI+DQorCQk8cHJvcGVydHkgbmFtZT0iQWRkRmllbGRDb250ZXh0cyI+DQorCQkJPGxpc3Q+DQorCQkJCTxyZWYgb2JqZWN0PSJsYXN0X25hbWUiLz4gDQorCQkJCTxyZWYgb2JqZWN0PSJmaXJzdF9uYW1lIi8+IA0KKwkJCQk8cmVmIG9iamVjdD0iZXh0ZW5zaW9uIi8+IA0KKwkJCQk8cmVmIG9iamVjdD0idXNlcl9uYW1lIi8+IA0KKwkJCQk8cmVmIG9iamVjdD0iaGlyZWQiLz4gDQorCQkJCTxyZWYgb2JqZWN0PSJob3VycyIvPiAJCQkJDQorCQkJCTxyZWYgb2JqZWN0PSJfZW50cnlfbGlzdCIvPiANCisJCQkJPHJlZiBvYmplY3Q9Il9lbnRyeV9saXN0X2NvdW50Ii8+IA0KKwkJCQk8cmVmIG9iamVjdD0iX2V4dGVuc2lvbl9saXN0Ii8+DQorCQkJCTxyZWYgb2JqZWN0PSJfaGlyZWRfbGlzdCIvPg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iQWRkUHJvY2Vzc29ycyI+DQorCQkJPGxpc3Q+DQorCQkJCTxyZWYgb2JqZWN0PSJEYXRlVGltZVByb2Nlc3NvciIvPiANCisJCQkJPHJlZiBvYmplY3Q9IlRlbGVwaG9uZVByb2Nlc3NvciIvPiANCisJCQkJPHJlZiBvYmplY3Q9IkVudHJ5TGlzdFByb2Nlc3NvciIvPiANCisJCQkJPHJlZiBvYmplY3Q9IkV4dGVuc2lvbkxpc3RQcm9jZXNzb3IiLz4NCisJCQkJPHJlZiBvYmplY3Q9IkhpcmVkTGlzdFByb2Nlc3NvciIvPg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKw0KKwk8b2JqZWN0IGlkPSJsYXN0X25hbWUiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5sYXN0X25hbWU8L3ZhbHVlPjwvcHJvcGVydHk+CQ0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0iZmlyc3RfbmFtZSIgcGFyZW50PSJCYXNlRmllbGRDb250ZXh0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmZpcnN0X25hbWU8L3ZhbHVlPjwvcHJvcGVydHk+CQ0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0idXNlcl9uYW1lIiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+dXNlcl9uYW1lPC92YWx1ZT48L3Byb3BlcnR5PgkNCisJPC9vYmplY3Q+DQorCQ0KKwk8b2JqZWN0IGlkPSJleHRlbnNpb24iIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5leHRlbnNpb248L3ZhbHVlPjwvcHJvcGVydHk+CQkNCisJCTxwcm9wZXJ0eSBuYW1lPSJQcm9jZXNzb3IiPjxyZWYgb2JqZWN0PSJUZWxlcGhvbmVQcm9jZXNzb3IiLz48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0iaGlyZWQiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5oaXJlZDwvdmFsdWU+PC9wcm9wZXJ0eT4JDQorCQk8cHJvcGVydHkgbmFtZT0iUHJvY2Vzc29yIj48cmVmIG9iamVjdD0iRGF0ZVRpbWVQcm9jZXNzb3IiLz48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisJDQorCTxvYmplY3QgaWQ9ImhvdXJzIiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+aG91cnM8L3ZhbHVlPjwvcHJvcGVydHk+CQ0KKwk8L29iamVjdD4NCisJDQorCTxvYmplY3QgaWQ9ImVkaXRvciIgcGFyZW50PSJCYXNlRmllbGRDb250ZXh0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmVkaXRvcjwvdmFsdWU+PC9wcm9wZXJ0eT4JDQorCTwvb2JqZWN0Pg0KKw0KKwk8IS0tIHByb3BlcnR5IG5hbWU9IkNvbnRyb2xUeXBlTmFtZSI+PHZhbHVlPkNoZWNrQm94PC92YWx1ZT48L3Byb3BlcnR5IC0tPgkNCisNCisJPCEtLSBXZSBuZWVkIHRvICJoYXNoIiB0aGUgbmFtZSB3aXRoICJfIiB0byBhdm9pZCBjb25mbGljdCB3aXRoIHRoZSBmaWx0ZXIgQ29tbWFuZCAtLT4NCisJPG9iamVjdCBpZD0iX2VudHJ5X2xpc3QiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5lbnRyeV9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlByb2Nlc3NvciI+PHJlZiBvYmplY3Q9IkVudHJ5TGlzdFByb2Nlc3NvciIvPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKwkJDQorCTxvYmplY3QgaWQ9Il9lbnRyeV9saXN0X2NvdW50IiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+ZW50cnlfbGlzdF9jb3VudDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJQcm9jZXNzb3IiPjxyZWYgb2JqZWN0PSJDb2xsZWN0aW9uUHJvY2Vzc29yIi8+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorDQorCTxvYmplY3QgaWQ9Il9leHRlbnNpb25fbGlzdCIgcGFyZW50PSJCYXNlRmllbGRDb250ZXh0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmV4dGVuc2lvbl9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlByb2Nlc3NvciI+PHJlZiBvYmplY3Q9IkV4dGVuc2lvbkxpc3RQcm9jZXNzb3IiLz48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0iX2hpcmVkX2xpc3QiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5oaXJlZF9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlByb2Nlc3NvciI+PHJlZiBvYmplY3Q9IkhpcmVkTGlzdFByb2Nlc3NvciIvPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKw0KKwk8b2JqZWN0IGlkPSJDb2xsZWN0aW9uUHJvY2Vzc29yIiB0eXBlPSJOZXh1cy5Db3JlLlZhbGlkYXRvcnMuQ29sbGVjdGlvblByb2Nlc3NvciwgTmV4dXMuQ29yZSI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5FbnRyeUNvdW50UHJvY2Vzc29yPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisJDQorIAkJPCEtLSAiZCIgaXMgLk5FVCBmb3IgInNob3J0IGRhdGUiIC0tPiANCisJPG9iamVjdCBpZD0iRGF0ZVRpbWVQcm9jZXNzb3IiIHR5cGU9Ik5leHVzLkNvcmUuVmFsaWRhdG9ycy5EYXRlVGltZVByb2Nlc3NvciI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5EYXRlVGltZVByb2Nlc3NvcjwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJEYXRhRm9ybWF0Ij48dmFsdWU+ZDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorCQ0KKwk8b2JqZWN0IGlkPSJUZWxlcGhvbmVQcm9jZXNzb3IiIHR5cGU9IlBob25lQm9vay5Db3JlLlRlbGVwaG9uZVByb2Nlc3NvciI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5UZWxlcGhvbmVQcm9jZXNzb3I8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKw0KKwk8b2JqZWN0IGlkPSJFbnRyeUxpc3RQcm9jZXNzb3IiIHR5cGU9IlBob25lQm9vay5Db3JlLkFwcEVudHJ5TGlzdFByb2Nlc3NvciI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5FbnRyeUxpc3RQcm9jZXNzb3I8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKwkNCisJPG9iamVjdCBpZD0iRXh0ZW5zaW9uTGlzdFByb2Nlc3NvciIgcGFyZW50PSJCYXNlS2V5VmFsdWVQcm9jZXNzb3IiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+RXh0ZW5zaW9uTGlzdFByb2Nlc3NvcjwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJLZXkiPjx2YWx1ZT5leHRlbnNpb248L3ZhbHVlPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKwkNCisJPG9iamVjdCBpZD0iSGlyZWRMaXN0UHJvY2Vzc29yIiBwYXJlbnQ9IkJhc2VLZXlWYWx1ZVByb2Nlc3NvciI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5IaXJlZExpc3RQcm9jZXNzb3I8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iS2V5Ij48dmFsdWU+aGlyZWQ8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKw0KKzwvb2JqZWN0cz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L1Jlc291cmNlcy9DYXRhbG9nLnhtbCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvUmVzb3VyY2VzL0NhdGFsb2cueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkODljNDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L1Jlc291cmNlcy9DYXRhbG9nLnhtbApAQCAtMCwwICsxLDE4NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+IA0KKzxvYmplY3RzIHhtbG5zPSJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQiIA0KKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiANCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQgaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0L3hzZC9zcHJpbmctb2JqZWN0cy54c2QiPg0KKw0KKwk8IS0tIGVudHJ5IGNvbW1hbmRzIC0tPg0KKw0KKyAgPG9iamVjdCBpZD0iZW50cnlfbGlzdF9yb3dzIiBwYXJlbnQ9IkJhc2VMaXN0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmVudHJ5X2xpc3Q8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iUXVlcnlJRCI+PHZhbHVlPmVudHJ5PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlJlbGF0ZWRJRHMiPg0KKwkJCTxsaXN0Pg0KKwkJCQk8dmFsdWU+ZW50cnlfbGlzdDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5lbnRyeV9rZXk8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+bGFzdF9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmZpcnN0X25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+ZXh0ZW5zaW9uPC92YWx1ZT4NCisJCQkJPHZhbHVlPnVzZXJfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5oaXJlZDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5ob3VyczwvdmFsdWU+DQorCQkJCTx2YWx1ZT5lZGl0b3I8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aW5pdGlhbDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5pdGVtX2NvdW50PC92YWx1ZT4NCisJCQkJPHZhbHVlPml0ZW1fb2Zmc2V0PC92YWx1ZT4NCisJCQkJPHZhbHVlPml0ZW1fbGltaXQ8L3ZhbHVlPg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorICA8L29iamVjdD4NCisgIA0KKyAgPG9iamVjdCBpZD0iZW50cnlfbGlzdF9jb3VudCIgcGFyZW50PSJCYXNlQ291bnQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+ZW50cnlfbGlzdF9jb3VudDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJRdWVyeUlEIj48dmFsdWU+ZW50cnlfY291bnQ8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iUmVsYXRlZElEcyI+DQorCQkJPGxpc3Q+DQorCQkJCTx2YWx1ZT5lbnRyeV9saXN0PC92YWx1ZT4NCisJCQkJPHZhbHVlPmVudHJ5X2tleTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5sYXN0X25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+Zmlyc3RfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5leHRlbnNpb248L3ZhbHVlPg0KKwkJCQk8dmFsdWU+dXNlcl9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmhpcmVkPC92YWx1ZT4NCisJCQkJPHZhbHVlPmhvdXJzPC92YWx1ZT4NCisJCQkJPHZhbHVlPmVkaXRvcjwvdmFsdWU+DQorCQkJCTx2YWx1ZT5pbml0aWFsPC92YWx1ZT4NCisJCQkJPHZhbHVlPml0ZW1fY291bnQ8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aXRlbV9vZmZzZXQ8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aXRlbV9saW1pdDwvdmFsdWU+DQorCQkJPC9saXN0Pg0KKwkJPC9wcm9wZXJ0eT4NCisgIDwvb2JqZWN0Pg0KKw0KKyAgPG9iamVjdCBpZD0iZW50cnkiIHBhcmVudD0iQmFzZUVudHJ5Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmVudHJ5PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlJlbGF0ZWRJRHMiPg0KKwkJCTxsaXN0Pg0KKwkJCQk8dmFsdWU+ZW50cnk8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+ZW50cnlfa2V5PC92YWx1ZT4NCisJCQkJPHZhbHVlPmxhc3RfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5maXJzdF9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmV4dGVuc2lvbjwvdmFsdWU+DQorCQkJCTx2YWx1ZT51c2VyX25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aGlyZWQ8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aG91cnM8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+ZWRpdG9yPC92YWx1ZT4NCisJCQk8L2xpc3Q+DQorCQk8L3Byb3BlcnR5Pg0KKyAgPC9vYmplY3Q+DQorDQorICA8b2JqZWN0IGlkPSJlbnRyeV9kZWxldGUiIHBhcmVudD0iQmFzZURlbGV0ZSI+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJJRCI+DQorICAgICAgPHZhbHVlPmVudHJ5X2RlbGV0ZTwvdmFsdWU+DQorICAgIDwvcHJvcGVydHk+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJSZXF1aXJlZElEcyI+DQorICAgICAgPGxpc3Q+DQorICAgICAgICA8dmFsdWU+ZW50cnlfa2V5PC92YWx1ZT4NCisgICAgICA8L2xpc3Q+DQorICAgIDwvcHJvcGVydHk+DQorICA8L29iamVjdD4NCisNCisgIDwhLS0gZmlsdGVyIGxpc3QgY29tbWFuZHMgLS0+DQorCQkNCisgIDxvYmplY3QgaWQ9Imxhc3RfbmFtZV9saXN0IiBwYXJlbnQ9IkJhc2VGaWx0ZXJMaXN0Ij4NCisJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+bGFzdF9uYW1lX2xpc3Q8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj48bGlzdD48dmFsdWU+bGFzdF9uYW1lX2xpc3Q8L3ZhbHVlPjwvbGlzdD48L3Byb3BlcnR5Pg0KKyAgPC9vYmplY3Q+DQorDQorICA8b2JqZWN0IGlkPSJmaXJzdF9uYW1lX2xpc3QiIHBhcmVudD0iQmFzZUZpbHRlckxpc3QiPg0KKwk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5maXJzdF9uYW1lX2xpc3Q8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj48bGlzdD48dmFsdWU+Zmlyc3RfbmFtZV9saXN0PC92YWx1ZT48L2xpc3Q+PC9wcm9wZXJ0eT4NCisgIDwvb2JqZWN0Pg0KKyAgDQorICA8b2JqZWN0IGlkPSJleHRlbnNpb25fbGlzdCIgcGFyZW50PSJCYXNlRmlsdGVyTGlzdCI+DQorCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmV4dGVuc2lvbl9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8cHJvcGVydHkgbmFtZT0iUmVsYXRlZElEcyI+PGxpc3Q+PHZhbHVlPmV4dGVuc2lvbl9saXN0PC92YWx1ZT48L2xpc3Q+PC9wcm9wZXJ0eT4JDQorICA8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9InVzZXJfbmFtZV9saXN0IiBwYXJlbnQ9IkJhc2VGaWx0ZXJMaXN0Ij4NCisJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+dXNlcl9uYW1lX2xpc3Q8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj48bGlzdD48dmFsdWU+dXNlcl9uYW1lX2xpc3Q8L3ZhbHVlPjwvbGlzdD48L3Byb3BlcnR5PgkNCisgIDwvb2JqZWN0Pg0KKw0KKyAgPG9iamVjdCBpZD0iaGlyZWRfbGlzdCIgcGFyZW50PSJCYXNlRmlsdGVyTGlzdCI+DQorCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmhpcmVkX2xpc3Q8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj48bGlzdD48dmFsdWU+aGlyZWRfbGlzdDwvdmFsdWU+PC9saXN0PjwvcHJvcGVydHk+CQ0KKyAgPC9vYmplY3Q+DQorDQorICA8b2JqZWN0IGlkPSJob3Vyc19saXN0IiBwYXJlbnQ9IkJhc2VGaWx0ZXJMaXN0Ij4NCisJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+aG91cnNfbGlzdDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPHByb3BlcnR5IG5hbWU9IlJlbGF0ZWRJRHMiPjxsaXN0Pjx2YWx1ZT5ob3Vyc19saXN0PC92YWx1ZT48L2xpc3Q+PC9wcm9wZXJ0eT4JDQorICA8L29iamVjdD4NCisgIA0KKwk8b2JqZWN0IGlkPSJlbnRyeV9pbml0aWFsIiBwYXJlbnQ9IkVudHJ5SW5pdGlhbCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPg0KKwkJCTx2YWx1ZT5lbnRyeV9pbml0aWFsPC92YWx1ZT4NCisJCTwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iUmVsYXRlZElEcyI+DQorCQkJPGxpc3Q+DQorCQkJCTx2YWx1ZT5lbnRyeV9pbml0aWFsPC92YWx1ZT4NCisJCQk8L2xpc3Q+CQkNCisJCTwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKyAgDQorCTwhLS0gY2hhaW5zIC0tPg0KKyAgICANCisgICAgPG9iamVjdCBpZD0iZW50cnlfbGlzdCIgcGFyZW50PSJCYXNlQ2hhaW4iPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj4NCisJCQk8dmFsdWU+ZW50cnlfbGlzdDwvdmFsdWU+DQorCQk8L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IkFkZENvbW1hbmRzIj4NCisJCQk8bGlzdD4NCisJCQkJPHJlZiBvYmplY3Q9ImVudHJ5X2xpc3RfY291bnQiIC8+DQorCQkJCTxyZWYgb2JqZWN0PSJlbnRyeV9saXN0X3Jvd3MiIC8+DQorCQkJPC9saXN0Pg0KKwkJPC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorICAgIA0KKyAgICA8b2JqZWN0IGlkPSJlbnRyeV9maW5kIiBwYXJlbnQ9IkJhc2VDaGFpbiI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPg0KKwkJCTx2YWx1ZT5lbnRyeV9maW5kPC92YWx1ZT4NCisJCTwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iQWRkQ29tbWFuZHMiPg0KKwkJCTxsaXN0Pg0KKwkJCQk8cmVmIG9iamVjdD0ibGFzdF9uYW1lX2xpc3QiIC8+DQorCQkJCTxyZWYgb2JqZWN0PSJmaXJzdF9uYW1lX2xpc3QiIC8+DQorCQkJCTxyZWYgb2JqZWN0PSJleHRlbnNpb25fbGlzdCIgLz4NCisJCQkJPHJlZiBvYmplY3Q9InVzZXJfbmFtZV9saXN0IiAvPg0KKwkJCQk8cmVmIG9iamVjdD0iaGlyZWRfbGlzdCIgLz4NCisJCQkJPHJlZiBvYmplY3Q9ImhvdXJzX2xpc3QiIC8+DQorCQkJPC9saXN0Pg0KKwkJPC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorCQkJDQorICA8b2JqZWN0IGlkPSJlbnRyeV9zYXZlIiBwYXJlbnQ9IkJhc2VTYXZlIj4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+DQorCQkJPHZhbHVlPmVudHJ5X3NhdmU8L3ZhbHVlPg0KKwkJPC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJLZXlJRCI+DQorCQkJPHZhbHVlPmVudHJ5X2tleTwvdmFsdWU+DQorCQk8L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9Ikluc2VydElEIj4NCisJCQk8dmFsdWU+ZW50cnlfaW5zZXJ0PC92YWx1ZT4NCisJCTwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iVXBkYXRlSUQiPg0KKwkJCTx2YWx1ZT5lbnRyeV91cGRhdGU8L3ZhbHVlPg0KKwkJPC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj4NCisJCQk8bGlzdD4NCisJCQkJPHZhbHVlPmVudHJ5X2tleTwvdmFsdWU+DQorCQkJPC9saXN0Pg0KKwkJPC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJSZXF1aXJlZElEcyI+DQorCQkJPGxpc3Q+DQorCQkJCTx2YWx1ZT5maXJzdF9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmxhc3RfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5leHRlbnNpb248L3ZhbHVlPg0KKwkJCQk8dmFsdWU+dXNlcl9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmhvdXJzPC92YWx1ZT4NCisJCQkJPHZhbHVlPmhpcmVkPC92YWx1ZT4NCisJCQkJPHZhbHVlPmVkaXRvcjwvdmFsdWU+DQorCQkJPC9saXN0Pg0KKwkJPC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorDQorPC9vYmplY3RzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvUmVzb3VyY2VzL1F1ZXJpZXMueG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9SZXNvdXJjZXMvUXVlcmllcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzcwNjM5ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvUmVzb3VyY2VzL1F1ZXJpZXMueG1sCkBAIC0wLDAgKzEsMTg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4NCis8c3FsTWFwIA0KKwluYW1lc3BhY2U9InBob25lYm9vayIgDQorCXhtbG5zPSJodHRwOi8vaWJhdGlzLmFwYWNoZS5vcmcvbWFwcGluZyIgDQorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiID4NCisNCisgwqAgPHBhcmFtZXRlck1hcHM+DQorCQkNCivCoCDCoAkJPHBhcmFtZXRlck1hcCBpZD0iZW50cnlfc2F2ZV9wYXJhbSI+DQorCQkJPHBhcmFtZXRlciBwcm9wZXJ0eT0ibGFzdF9uYW1lIi8+DQorCQkJPHBhcmFtZXRlciBwcm9wZXJ0eT0iZmlyc3RfbmFtZSIvPg0KKwkJCTxwYXJhbWV0ZXIgcHJvcGVydHk9ImV4dGVuc2lvbiIvPg0KKwkJCTxwYXJhbWV0ZXIgcHJvcGVydHk9InVzZXJfbmFtZSIvPg0KKwkJCTxwYXJhbWV0ZXIgcHJvcGVydHk9ImhpcmVkIi8+DQorCQkJPHBhcmFtZXRlciBwcm9wZXJ0eT0iaG91cnMiLz4NCisJCQk8cGFyYW1ldGVyIHByb3BlcnR5PSJlZGl0b3IiLz4NCivCoCDCoAkJCTxwYXJhbWV0ZXIgcHJvcGVydHk9ImVudHJ5X2tleSIvPsKgIMKgCQkNCivCoCDCoCDCoCDCoCA8L3BhcmFtZXRlck1hcD4gwqAgwqAJCQ0KK8KgIAkNCivCoCAJPC9wYXJhbWV0ZXJNYXBzPg0KKwkJDQorCTxzdGF0ZW1lbnRzPg0KKwkNCisJCTxzZWxlY3QgaWQ9Imxhc3RfbmFtZV9saXN0IiByZXN1bHRDbGFzcz0ic3RyaW5nIj4NCisJCQlTRUxFQ1QgRElTVElOQ1QgDQorCQkJCWxhc3RfbmFtZQ0KKwkJCUZST00gZW50cnkNCisJCQlPUkRFUiBCWSBsYXN0X25hbWUJCQkNCisJCTwvc2VsZWN0Pg0KKwkJDQorCQk8c2VsZWN0IGlkPSJmaXJzdF9uYW1lX2xpc3QiIHJlc3VsdENsYXNzPSJzdHJpbmciPg0KKwkJCVNFTEVDVCBESVNUSU5DVCANCisJCQkJZmlyc3RfbmFtZQ0KKwkJCUZST00gZW50cnkNCisJCQlPUkRFUiBCWSBmaXJzdF9uYW1lDQorCQk8L3NlbGVjdD4NCisJCQ0KKwkJPHNlbGVjdCBpZD0iZXh0ZW5zaW9uX2xpc3QiIHJlc3VsdENsYXNzPSJzdHJpbmciPg0KKwkJCVNFTEVDVCBESVNUSU5DVCANCisJCQkJZXh0ZW5zaW9uDQorCQkJRlJPTSBlbnRyeQ0KKwkJCU9SREVSIEJZIGV4dGVuc2lvbg0KKwkJPC9zZWxlY3Q+DQorDQorCQk8c2VsZWN0IGlkPSJ1c2VyX25hbWVfbGlzdCIgcmVzdWx0Q2xhc3M9InN0cmluZyI+DQorCQkJU0VMRUNUIERJU1RJTkNUIA0KKwkJCQl1c2VyX25hbWUNCisJCQlGUk9NIGVudHJ5DQorCQkJT1JERVIgQlkgdXNlcl9uYW1lDQorCQk8L3NlbGVjdD4NCisNCisJCTxzZWxlY3QgaWQ9ImhpcmVkX2xpc3QiICByZXN1bHRDbGFzcz0iZGF0ZSI+DQorCQkJU0VMRUNUIERJU1RJTkNUIA0KKwkJCQloaXJlZA0KKwkJCUZST00gZW50cnkNCisJCQlPUkRFUiBCWSBoaXJlZA0KKwkJPC9zZWxlY3Q+DQorDQorCQk8c2VsZWN0IGlkPSJob3Vyc19saXN0IiAgcmVzdWx0Q2xhc3M9InN0cmluZyI+DQorCQkJU0VMRUNUIERJU1RJTkNUIA0KKwkJCQlob3Vycw0KKwkJCUZST00gZW50cnkNCisJCQlPUkRFUiBCWSBob3Vycw0KKwkJPC9zZWxlY3Q+DQorDQorCQk8c2VsZWN0IGlkPSJlbnRyeSIgcGFyYW1DbGFzcz0iSGFzaHRhYmxlIiByZXN1bHRDbGFzcz0iSGFzaHRhYmxlIj4NCisJCQlTRUxFQ1QgDQorCQkJCWxhc3RfbmFtZSwNCisJCQkJZmlyc3RfbmFtZSwNCisJCQkJZXh0ZW5zaW9uLA0KKwkJCQl1c2VyX25hbWUsDQorCQkJCWhpcmVkLA0KKwkJCQlob3VycywNCisJCQkJZWRpdG9yLA0KKwkJCQlwa19lbnRyeSBBUyBlbnRyeV9rZXkJCQkJDQorCQkJRlJPTSBlbnRyeQ0KKwkJCTxkeW5hbWljIHByZXBlbmQ9IldIRVJFIj4JCQkNCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iaW5pdGlhbCIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWxhc3RfbmFtZSBMSUtFICNpbml0aWFsIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0ibGFzdF9uYW1lIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJbGFzdF9uYW1lPSNsYXN0X25hbWUjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJmaXJzdF9uYW1lIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJZmlyc3RfbmFtZT0jZmlyc3RfbmFtZSMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImV4dGVuc2lvbiIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWV4dGVuc2lvbj0jZXh0ZW5zaW9uIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0idXNlcl9uYW1lIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJdXNlcl9uYW1lPSN1c2VyX25hbWUjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJoaXJlZCIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWhpcmVkPSNoaXJlZCMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImhvdXJzIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJaG91cnM9I2hvdXJzIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iZWRpdG9yIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJaG91cnM9I2VkaXRvciMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImVudHJ5X2tleSIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCXBrX2VudHJ5PSNlbnRyeV9rZXkjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCTwvZHluYW1pYz4JCQkNCisJCQk8ZHluYW1pYz4NCisJCQkgICA8aXNOb3ROdWxsIHByb3BlcnR5PSJpdGVtX2xpbWl0Ij4NCisJCQkJCUxJTUlUICNpdGVtX2xpbWl0IyBPRkZTRVQgI2l0ZW1fb2Zmc2V0IyANCisJCQkgICA8L2lzTm90TnVsbD4JCQkNCisJCQk8L2R5bmFtaWM+Ow0KKwkJPC9zZWxlY3Q+DQorDQorCQk8c2VsZWN0IGlkPSJlbnRyeV9jb3VudCIgcGFyYW1DbGFzcz0iSGFzaHRhYmxlIiByZXN1bHRDbGFzcz0ic3RyaW5nIj4NCisJCQlTRUxFQ1QgQ09VTlQoKikgRlJPTSBlbnRyeQ0KKwkJCTxkeW5hbWljIHByZXBlbmQ9IldIRVJFIj4JCQkNCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iaW5pdGlhbCIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWxhc3RfbmFtZSBMSUtFICNpbml0aWFsIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0ibGFzdF9uYW1lIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJbGFzdF9uYW1lPSNsYXN0X25hbWUjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJmaXJzdF9uYW1lIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJZmlyc3RfbmFtZT0jZmlyc3RfbmFtZSMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImV4dGVuc2lvbiIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWV4dGVuc2lvbj0jZXh0ZW5zaW9uIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0idXNlcl9uYW1lIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJdXNlcl9uYW1lPSN1c2VyX25hbWUjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJoaXJlZCIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCWhpcmVkPSNoaXJlZCMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImhvdXJzIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJaG91cnM9I2hvdXJzIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iZWRpdG9yIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJaG91cnM9I2VkaXRvciMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImVudHJ5X2tleSIgcHJlcGVuZD0iQU5EIj4NCisJCQkJCXBrX2VudHJ5PSNlbnRyeV9rZXkjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCTwvZHluYW1pYz4JCQkNCisJCTwvc2VsZWN0Pg0KKwkJDQorCQk8c2VsZWN0IGlkPSJlbnRyeV9pbml0aWFsIiBwYXJhbUNsYXNzPSJzdHJpbmciIHJlc3VsdENsYXNzPSJzdHJpbmciPgkJDQorCQkJU0VMRUNUIENPVU5UKCopIA0KKwkJCUZST00gZW50cnkNCisJCQlXSEVSRSBsYXN0X25hbWUgTElLRSAjdmFsdWUjDQorCQk8L3NlbGVjdD4JCQkJCQkJCQkNCisJCQ0KKwkJPGluc2VydCBpZD0iZW50cnlfaW5zZXJ0IiBwYXJhbWV0ZXJNYXA9ImVudHJ5X3NhdmVfcGFyYW0iPg0KKyDCoCDCoAkJSU5TRVJUIElOVE8gZW50cnkgKCDCoCDCoAkJCQ0KKwkJCQlsYXN0X25hbWUsDQorCQkJCWZpcnN0X25hbWUsDQorCQkJCWV4dGVuc2lvbiwNCisJCQkJdXNlcl9uYW1lLA0KKwkJCQloaXJlZCwNCisJCQkJaG91cnMsDQorCQkJCWVkaXRvciwNCisJCQkJcGtfZW50cnkNCisJCQkJKQ0KKwkJCVZBTFVFUyAoPyw/LD8sPywgPyw/LD8sPykNCisJCTwvaW5zZXJ0PgkJDQorDQorCQk8dXBkYXRlIGlkPSJlbnRyeV91cGRhdGUiIHBhcmFtZXRlck1hcD0iZW50cnlfc2F2ZV9wYXJhbSI+DQorCQkJVVBEQVRFIGVudHJ5IFNFVA0KKwkJCQlsYXN0X25hbWU9PywNCisJCQkJZmlyc3RfbmFtZT0/LA0KKwkJCQlleHRlbnNpb249PywNCisJCQkJdXNlcl9uYW1lPT8sDQorCQkJCWhpcmVkPT8sDQorCQkJCWhvdXJzPT8sDQorCQkJCWVkaXRvcj0/DQorCQkJV0hFUkUgDQorCQkJCXBrX2VudHJ5PT8NCisJCTwvdXBkYXRlPg0KKw0KKyAgICA8ZGVsZXRlIGlkPSJlbnRyeV9kZWxldGUiIHBhcmFtQ2xhc3M9Ikhhc2h0YWJsZSI+DQorICAgICAgIERFTEVURSBGUk9NIGVudHJ5IFdIRVJFIHBrX2VudHJ5PSNlbnRyeV9rZXkjOyAgICAgICAgDQorICAgIDwvZGVsZXRlPg0KKw0KKyAgPC9zdGF0ZW1lbnRzPg0KKzwvc3FsTWFwPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvVGVzdC5jc3Byb2ogYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L1Rlc3QuY3Nwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2YTU3YjcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L1Rlc3QuY3Nwcm9qCkBAIC0wLDAgKzEsMTEyIEBACivvu788UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPg0KKyAgPFByb3BlcnR5R3JvdXA+DQorICAgIDxDb25maWd1cmF0aW9uIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pJyA9PSAnJyAiPkRlYnVnPC9Db25maWd1cmF0aW9uPg0KKyAgICA8UGxhdGZvcm0gQ29uZGl0aW9uPSIgJyQoUGxhdGZvcm0pJyA9PSAnJyAiPkFueUNQVTwvUGxhdGZvcm0+DQorICAgIDxQcm9kdWN0VmVyc2lvbj44LjAuNTA3Mjc8L1Byb2R1Y3RWZXJzaW9uPg0KKyAgICA8U2NoZW1hVmVyc2lvbj4yLjA8L1NjaGVtYVZlcnNpb24+DQorICAgIDxQcm9qZWN0R3VpZD57QzQ2MUQ5ODYtQkMzQy00QTQ4LThCNkYtQjRFRkE0NzAzM0U2fTwvUHJvamVjdEd1aWQ+DQorICAgIDxPdXRwdXRUeXBlPkxpYnJhcnk8L091dHB1dFR5cGU+DQorICAgIDxBcHBEZXNpZ25lckZvbGRlcj5Qcm9wZXJ0aWVzPC9BcHBEZXNpZ25lckZvbGRlcj4NCisgICAgPFJvb3ROYW1lc3BhY2U+UGhvbmVCb29rLkNvcmU8L1Jvb3ROYW1lc3BhY2U+DQorICAgIDxBc3NlbWJseU5hbWU+UGhvbmVCb29rLlRlc3Q8L0Fzc2VtYmx5TmFtZT4NCisgIDwvUHJvcGVydHlHcm91cD4NCisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnRGVidWd8QW55Q1BVJyAiPg0KKyAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4NCisgICAgPERlYnVnVHlwZT5mdWxsPC9EZWJ1Z1R5cGU+DQorICAgIDxPcHRpbWl6ZT5mYWxzZTwvT3B0aW1pemU+DQorICAgIDxPdXRwdXRQYXRoPmJpblxEZWJ1Z1w8L091dHB1dFBhdGg+DQorICAgIDxEZWZpbmVDb25zdGFudHM+REVCVUc7VFJBQ0U8L0RlZmluZUNvbnN0YW50cz4NCisgICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+DQorICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPg0KKyAgPC9Qcm9wZXJ0eUdyb3VwPg0KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNlfEFueUNQVScgIj4NCisgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+DQorICAgIDxPcHRpbWl6ZT50cnVlPC9PcHRpbWl6ZT4NCisgICAgPE91dHB1dFBhdGg+YmluXFJlbGVhc2VcPC9PdXRwdXRQYXRoPg0KKyAgICA8RGVmaW5lQ29uc3RhbnRzPlRSQUNFPC9EZWZpbmVDb25zdGFudHM+DQorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0Pg0KKyAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4NCisgIDwvUHJvcGVydHlHcm91cD4NCisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnRGVidWd8eDg2JyAiPg0KKyAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4NCisgICAgPE91dHB1dFBhdGg+YmluXHg4NlxEZWJ1Z1w8L091dHB1dFBhdGg+DQorICAgIDxEZWZpbmVDb25zdGFudHM+REVCVUc7VFJBQ0U8L0RlZmluZUNvbnN0YW50cz4NCisgICAgPERlYnVnVHlwZT5mdWxsPC9EZWJ1Z1R5cGU+DQorICAgIDxQbGF0Zm9ybVRhcmdldD54ODY8L1BsYXRmb3JtVGFyZ2V0Pg0KKyAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJvclJlcG9ydD4NCisgIDwvUHJvcGVydHlHcm91cD4NCisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXx4ODYnICI+DQorICAgIDxPdXRwdXRQYXRoPmJpblx4ODZcUmVsZWFzZVw8L091dHB1dFBhdGg+DQorICAgIDxEZWZpbmVDb25zdGFudHM+VFJBQ0U8L0RlZmluZUNvbnN0YW50cz4NCisgICAgPE9wdGltaXplPnRydWU8L09wdGltaXplPg0KKyAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4NCisgICAgPFBsYXRmb3JtVGFyZ2V0Png4NjwvUGxhdGZvcm1UYXJnZXQ+DQorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0Pg0KKyAgPC9Qcm9wZXJ0eUdyb3VwPg0KKyAgPEl0ZW1Hcm91cD4NCisgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJBZ2lsaXR5LkNvcmUsIFZlcnNpb249MS4wLjIzNTUuMjU2NDAsIEN1bHR1cmU9bmV1dHJhbCI+DQorICAgICAgPFNwZWNpZmljVmVyc2lvbj5GYWxzZTwvU3BlY2lmaWNWZXJzaW9uPg0KKyAgICAgIDxIaW50UGF0aD4uLlwuLlwuLlxsb2NhbC1jYWNoZVxBZ2lsaXR5XEFnaWxpdHkuQ29yZS5kbGw8L0hpbnRQYXRoPg0KKyAgICA8L1JlZmVyZW5jZT4NCisgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJNeVNxbC5EYXRhLCBWZXJzaW9uPTEuMC43LjMwMDcyLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWM1Njg3ZmM4ODk2OWM0NGQiPg0KKyAgICAgIDxTcGVjaWZpY1ZlcnNpb24+RmFsc2U8L1NwZWNpZmljVmVyc2lvbj4NCisgICAgICA8SGludFBhdGg+Li5cLi5cLi5cbG9jYWwtY2FjaGVcaUJhdGlzTmV0XE15U3FsLkRhdGEuZGxsPC9IaW50UGF0aD4NCisgICAgPC9SZWZlcmVuY2U+DQorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iTmV4dXMuQ29yZSwgVmVyc2lvbj0xLjAuMjUzOS4yMjE5NywgQ3VsdHVyZT1uZXV0cmFsIj4NCisgICAgICA8U3BlY2lmaWNWZXJzaW9uPkZhbHNlPC9TcGVjaWZpY1ZlcnNpb24+DQorICAgICAgPEhpbnRQYXRoPi4uXC4uXC4uXGxvY2FsLWNhY2hlXE5leHVzXE5leHVzLkNvcmUuZGxsPC9IaW50UGF0aD4NCisgICAgPC9SZWZlcmVuY2U+DQorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iTmV4dXMuVGVzdCwgVmVyc2lvbj0xLjAuMjUzOS4yMjE5OCwgQ3VsdHVyZT1uZXV0cmFsIj4NCisgICAgICA8U3BlY2lmaWNWZXJzaW9uPkZhbHNlPC9TcGVjaWZpY1ZlcnNpb24+DQorICAgICAgPEhpbnRQYXRoPi4uXC4uXC4uXGxvY2FsLWNhY2hlXE5leHVzXE5leHVzLlRlc3QuZGxsPC9IaW50UGF0aD4NCisgICAgPC9SZWZlcmVuY2U+DQorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iTmV4dXMuV2ViLCBWZXJzaW9uPTEuMC4yNTM5LjIyMTk3LCBDdWx0dXJlPW5ldXRyYWwiPg0KKyAgICAgIDxTcGVjaWZpY1ZlcnNpb24+RmFsc2U8L1NwZWNpZmljVmVyc2lvbj4NCisgICAgICA8SGludFBhdGg+Li5cLi5cLi5cbG9jYWwtY2FjaGVcTmV4dXNcTmV4dXMuV2ViLmRsbDwvSGludFBhdGg+DQorICAgIDwvUmVmZXJlbmNlPg0KKyAgICA8UmVmZXJlbmNlIEluY2x1ZGU9Im51bml0LmZyYW1ld29yaywgVmVyc2lvbj0yLjIuOS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTk2ZDA5YTFlYjdmNDRhNzcsIHByb2Nlc3NvckFyY2hpdGVjdHVyZT1NU0lMIiAvPg0KKyAgICA8UmVmZXJlbmNlIEluY2x1ZGU9IlNwcmluZy5Db3JlLCBWZXJzaW9uPTEuMS4wLjIsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49NjVlNDc0ZDE0MWUyNWUwNywgcHJvY2Vzc29yQXJjaGl0ZWN0dXJlPU1TSUwiPg0KKyAgICAgIDxTcGVjaWZpY1ZlcnNpb24+RmFsc2U8L1NwZWNpZmljVmVyc2lvbj4NCisgICAgICA8SGludFBhdGg+Li5cLi5cLi5cbG9jYWwtY2FjaGVcU3ByaW5nTmV0XFNwcmluZy5Db3JlLmRsbDwvSGludFBhdGg+DQorICAgIDwvUmVmZXJlbmNlPg0KKyAgICA8UmVmZXJlbmNlIEluY2x1ZGU9IlN5c3RlbSIgLz4NCisgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0uRGF0YSIgLz4NCisgICAgPFJlZmVyZW5jZSBJbmNsdWRlPSJTeXN0ZW0uWG1sIiAvPg0KKyAgPC9JdGVtR3JvdXA+DQorICA8SXRlbUdyb3VwPg0KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJCYXNlVGVzdC5jcyIgLz4NCisgICAgPENvbXBpbGUgSW5jbHVkZT0iQ29tbWFuZHNcRGlyZWN0b3J5Vmlld1Rlc3QuY3MiIC8+DQorICAgIDxDb21waWxlIEluY2x1ZGU9IkNvbW1hbmRzXEVkaXRGaXh0dXJlLmNzIiAvPg0KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJDb21tYW5kc1xGaWx0ZXJMaXN0cy5jcyIgLz4NCisgICAgPENvbXBpbGUgSW5jbHVkZT0iQ29tbWFuZHNcRm9ybWF0RW50cnkuY3MiIC8+DQorICAgIDxDb21waWxlIEluY2x1ZGU9IkNvbW1hbmRzXFNlbGVjdEFsbFRlc3QuY3MiIC8+DQorICAgIDxDb21waWxlIEluY2x1ZGU9IlByb3BlcnRpZXNcQXNzZW1ibHlJbmZvLmNzIiAvPg0KKyAgPC9JdGVtR3JvdXA+DQorICA8SXRlbUdyb3VwPg0KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSIuLlxDb3JlXENvcmUuY3Nwcm9qIj4NCisgICAgICA8UHJvamVjdD57RjY1RkNDOTEtQzlDQi00MENFLTg3QTYtQzBDQjAwRjczNTkyfTwvUHJvamVjdD4NCisgICAgICA8TmFtZT5Db3JlPC9OYW1lPg0KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+DQorICA8L0l0ZW1Hcm91cD4NCisgIDxJdGVtR3JvdXA+DQorICAgIDxDb250ZW50IEluY2x1ZGU9ImJpblxEZWJ1Z1xzcWxtYXAuY29uZmlnLnhtbCIgLz4NCisgICAgPENvbnRlbnQgSW5jbHVkZT0iT2JqZWN0cy54bWwiIC8+DQorICAgIDxDb250ZW50IEluY2x1ZGU9IlJlc291cmNlc1xBcHBCYXNlLnhtbCIgLz4NCisgICAgPENvbnRlbnQgSW5jbHVkZT0iUmVzb3VyY2VzXEFwcENvbmZpZy54bWwiIC8+DQorICAgIDxDb250ZW50IEluY2x1ZGU9IlJlc291cmNlc1xBcHBGaWVsZHMueG1sIiAvPg0KKyAgICA8Q29udGVudCBJbmNsdWRlPSJSZXNvdXJjZXNcQ2F0YWxvZy54bWwiIC8+DQorICAgIDxDb250ZW50IEluY2x1ZGU9IlJlc291cmNlc1xRdWVyaWVzLnhtbCIgLz4NCisgIDwvSXRlbUdyb3VwPg0KKyAgPEl0ZW1Hcm91cD4NCisgICAgPE5vbmUgSW5jbHVkZT0iYmluXERlYnVnXHByb3ZpZGVycy5jb25maWciIC8+DQorICAgIDxOb25lIEluY2x1ZGU9ImJpblxEZWJ1Z1xzcWxtYXAuY29uZmlnIiAvPg0KKyAgPC9JdGVtR3JvdXA+DQorICA8SW1wb3J0IFByb2plY3Q9IiQoTVNCdWlsZEJpblBhdGgpXE1pY3Jvc29mdC5DU2hhcnAudGFyZ2V0cyIgLz4NCisgIDwhLS0gVG8gbW9kaWZ5IHlvdXIgYnVpbGQgcHJvY2VzcywgYWRkIHlvdXIgdGFzayBpbnNpZGUgb25lIG9mIHRoZSB0YXJnZXRzIGJlbG93IGFuZCB1bmNvbW1lbnQgaXQuIA0KKyAgICAgICBPdGhlciBzaW1pbGFyIGV4dGVuc2lvbiBwb2ludHMgZXhpc3QsIHNlZSBNaWNyb3NvZnQuQ29tbW9uLnRhcmdldHMuDQorICA8VGFyZ2V0IE5hbWU9IkJlZm9yZUJ1aWxkIj4NCisgIDwvVGFyZ2V0Pg0KKyAgPFRhcmdldCBOYW1lPSJBZnRlckJ1aWxkIj4NCisgIDwvVGFyZ2V0Pg0KKyAgLS0+DQorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvVGVzdC5yZXNoYXJwZXIudXNlciBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvVGVzdC5yZXNoYXJwZXIudXNlcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTE1N2ExCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9UZXN0LnJlc2hhcnBlci51c2VyCkBAIC0wLDAgKzEsMjcgQEAKKzxDb25maWd1cmF0aW9uPg0KKyAgPENvbXBsZXRpb25TdGF0aXN0aWNzTWFuYWdlciAvPg0KKyAgPEVkaXRvck1hbmFnZXI+DQorICAgIDxSZWNlbnRGaWxlcz4NCisgICAgICA8RmlsZSBpZD0iQzQ2MUQ5ODYtQkMzQy00QTQ4LThCNkYtQjRFRkE0NzAzM0U2L2Y6Q2xhc3MxLmNzIiBjYXJldD0iMCIgdmlzdWFsLXg9IjAiIHZpc3VhbC15PSIwIiAvPg0KKyAgICA8L1JlY2VudEZpbGVzPg0KKyAgPC9FZGl0b3JNYW5hZ2VyPg0KKyAgPEZpbGVTdHJ1Y3R1cmVWaWV3Pg0KKyAgICA8QXV0b1Njcm9sbFRvU291cmNlPkZhbHNlPC9BdXRvU2Nyb2xsVG9Tb3VyY2U+DQorICAgIDxUcmFja0NhcmV0TG9jYXRpb24+RmFsc2U8L1RyYWNrQ2FyZXRMb2NhdGlvbj4NCisgIDwvRmlsZVN0cnVjdHVyZVZpZXc+DQorICA8TkFudFZhbGlkYXRpb25TZXR0aW5ncz4NCisgICAgPE5BbnRQYXRoIHZhbHVlPSIiIC8+DQorICA8L05BbnRWYWxpZGF0aW9uU2V0dGluZ3M+DQorICA8UmVGb3JtYXRDb2RlPg0KKyAgICA8T3B0aW1pemVVc2luZ3M+RmFsc2U8L09wdGltaXplVXNpbmdzPg0KKyAgICA8UmVtb3ZlUmVkdW5kYW50VGhpcz5GYWxzZTwvUmVtb3ZlUmVkdW5kYW50VGhpcz4NCisgICAgPFNob3J0ZW5SZWZlcmVuY2VzPkZhbHNlPC9TaG9ydGVuUmVmZXJlbmNlcz4NCisgICAgPERlY29yYXRlTW9kaWZpZXJzPkZhbHNlPC9EZWNvcmF0ZU1vZGlmaWVycz4NCisgIDwvUmVGb3JtYXRDb2RlPg0KKyAgPFNoYXJlZFNvbHV0aW9uRGlzYWJsZWRUZW1wbGF0ZXNNYW5hZ2VyPg0KKyAgICA8RGlzYWJsZWRUZW1wbGF0ZXMgLz4NCisgIDwvU2hhcmVkU29sdXRpb25EaXNhYmxlZFRlbXBsYXRlc01hbmFnZXI+DQorICA8VXNlclNvbHV0aW9uRGlzYWJsZWRUZW1wbGF0ZXNNYW5hZ2VyPg0KKyAgICA8RGlzYWJsZWRUZW1wbGF0ZXMgLz4NCisgIDwvVXNlclNvbHV0aW9uRGlzYWJsZWRUZW1wbGF0ZXNNYW5hZ2VyPg0KKzwvQ29uZmlndXJhdGlvbj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L1Rlc3Quc2xuIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9UZXN0LnNsbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmRmZDZhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9UZXN0LnNsbgpAQCAtMCwwICsxLDIwIEBACivvu78NCitNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiA5LjAwDQorIyBWaXN1YWwgU3R1ZGlvIDIwMDUNCitQcm9qZWN0KCJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gIlRlc3QiLCAiVGVzdC5jc3Byb2oiLCAie0M0NjFEOTg2LUJDM0MtNEE0OC04QjZGLUI0RUZBNDcwMzNFNn0iDQorRW5kUHJvamVjdA0KK0dsb2JhbA0KKwlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uQ29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbg0KKwkJRGVidWd8QW55IENQVSA9IERlYnVnfEFueSBDUFUNCisJCVJlbGVhc2V8QW55IENQVSA9IFJlbGVhc2V8QW55IENQVQ0KKwlFbmRHbG9iYWxTZWN0aW9uDQorCUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcG9zdFNvbHV0aW9uDQorCQl7QzQ2MUQ5ODYtQkMzQy00QTQ4LThCNkYtQjRFRkE0NzAzM0U2fS5EZWJ1Z3xBbnkgQ1BVLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUNCisJCXtDNDYxRDk4Ni1CQzNDLTRBNDgtOEI2Ri1CNEVGQTQ3MDMzRTZ9LkRlYnVnfEFueSBDUFUuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUNCisJCXtDNDYxRDk4Ni1CQzNDLTRBNDgtOEI2Ri1CNEVGQTQ3MDMzRTZ9LlJlbGVhc2V8QW55IENQVS5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUNCisJCXtDNDYxRDk4Ni1CQzNDLTRBNDgtOEI2Ri1CNEVGQTQ3MDMzRTZ9LlJlbGVhc2V8QW55IENQVS5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVDQorCUVuZEdsb2JhbFNlY3Rpb24NCisJR2xvYmFsU2VjdGlvbihTb2x1dGlvblByb3BlcnRpZXMpID0gcHJlU29sdXRpb24NCisJCUhpZGVTb2x1dGlvbk5vZGUgPSBGQUxTRQ0KKwlFbmRHbG9iYWxTZWN0aW9uDQorRW5kR2xvYmFsDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9iaW4vRGVidWcvcHJvdmlkZXJzLmNvbmZpZyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvYmluL0RlYnVnL3Byb3ZpZGVycy5jb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDIyOTA5MAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvYmluL0RlYnVnL3Byb3ZpZGVycy5jb25maWcKQEAgLTAsMCArMSwzMDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQorPHByb3ZpZGVycw0KK3htbG5zPSJodHRwOi8vaWJhdGlzLmFwYWNoZS5vcmcvcHJvdmlkZXJzIg0KK3htbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiPg0KKw0KKyAgPGNsZWFyLz4NCisgIDxwcm92aWRlcg0KKyAgICAgIG5hbWU9InNxbFNlcnZlcjEuMCINCisgICAgICBkZXNjcmlwdGlvbj0iTWljcm9zb2Z0IFNRTCBTZXJ2ZXIsIHByb3ZpZGVyIFYxLjAuMzMwMC4wIGluIGZyYW1ld29yayAuTkVUIFYxLjAiDQorICAgICAgZW5hYmxlZD0iZmFsc2UiDQorICAgICAgYXNzZW1ibHlOYW1lPSJTeXN0ZW0uRGF0YSwgVmVyc2lvbj0xLjAuMzMwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiIGNvbm5lY3Rpb25DbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbENvbm5lY3Rpb24iDQorICAgICAgY29tbWFuZENsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsQ29tbWFuZCINCisgICAgICBwYXJhbWV0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbFBhcmFtZXRlciINCisgICAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iU3lzdGVtLkRhdGEuU3FsRGJUeXBlIg0KKyAgICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJTcWxEYlR5cGUiDQorICAgICAgZGF0YUFkYXB0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbERhdGFBZGFwdGVyIg0KKyAgICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb21tYW5kQnVpbGRlciINCisgICAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0iZmFsc2UiDQorICAgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9InRydWUiDQorICAgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9InRydWUiDQorICAgICAgcGFyYW1ldGVyUHJlZml4PSJAIg0KKyAgICAgICAgYWxsb3dNQVJTPSJmYWxzZSINCisgIC8+DQorICA8cHJvdmlkZXINCisgICAgICBuYW1lPSJzcWxTZXJ2ZXIxLjEiDQorICAgICAgZGVzY3JpcHRpb249Ik1pY3Jvc29mdCBTUUwgU2VydmVyLCBwcm92aWRlciBWMS4wLjUwMDAuMCBpbiBmcmFtZXdvcmsgLk5FVCBWMS4xIg0KKyAgICAgIGVuYWJsZWQ9InRydWUiDQorICAgICAgZGVmYXVsdD0idHJ1ZSINCisgICAgICBhc3NlbWJseU5hbWU9IlN5c3RlbS5EYXRhLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSINCisgICAgICBjb25uZWN0aW9uQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb25uZWN0aW9uIg0KKyAgICAgIGNvbW1hbmRDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbENvbW1hbmQiDQorICAgICAgcGFyYW1ldGVyQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxQYXJhbWV0ZXIiDQorICAgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbERiVHlwZSINCisgICAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iU3FsRGJUeXBlIg0KKyAgICAgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxEYXRhQWRhcHRlciINCisgICAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsQ29tbWFuZEJ1aWxkZXIiDQorICAgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9ImZhbHNlIg0KKyAgICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIg0KKyAgICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJ0cnVlIg0KKyAgICAgIHBhcmFtZXRlclByZWZpeD0iQCINCisgICAgICAgIGFsbG93TUFSUz0iZmFsc2UiDQorICAvPg0KKyAgPHByb3ZpZGVyDQorICAgICAgbmFtZT0ic3FsU2VydmVyMi4wIg0KKyAgICAgIGVuYWJsZWQ9ImZhbHNlIg0KKyAgICAgIGRlc2NyaXB0aW9uPSJNaWNyb3NvZnQgU1FMIFNlcnZlciwgcHJvdmlkZXIgVjIuMC4wLjAgaW4gZnJhbWV3b3JrIC5ORVQgVjIuMCINCisgICAgICBhc3NlbWJseU5hbWU9IlN5c3RlbS5EYXRhLCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSINCisgICAgICBjb25uZWN0aW9uQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb25uZWN0aW9uIg0KKyAgICAgIGNvbW1hbmRDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbENvbW1hbmQiDQorICAgICAgcGFyYW1ldGVyQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxQYXJhbWV0ZXIiDQorICAgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbERiVHlwZSINCisgICAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iU3FsRGJUeXBlIg0KKyAgICAgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxEYXRhQWRhcHRlciINCisgICAgICBjb21tYW5kQnVpbGRlckNsYXNzPSIgU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbENvbW1hbmRCdWlsZGVyIg0KKyAgICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzID0gImZhbHNlIg0KKyAgICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsID0gInRydWUiDQorICAgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXIgPSAidHJ1ZSINCisgICAgICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgICAgYWxsb3dNQVJTPSJmYWxzZSINCisgICAgLz4NCisgIDxwcm92aWRlciBuYW1lPSJPbGVEYjEuMSINCisgICAgICBkZXNjcmlwdGlvbj0iT2xlRGIsIHByb3ZpZGVyIFYxLjAuNTAwMC4wIGluIGZyYW1ld29yayAuTkVUIFYxLjEiDQorICAgICAgZW5hYmxlZD0idHJ1ZSINCisgICAgICBhc3NlbWJseU5hbWU9IlN5c3RlbS5EYXRhLCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSINCisgICAgICBjb25uZWN0aW9uQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiQ29ubmVjdGlvbiINCisgICAgICBjb21tYW5kQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiQ29tbWFuZCINCisgICAgICBwYXJhbWV0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJQYXJhbWV0ZXIiDQorICAgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiVHlwZSINCisgICAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iT2xlRGJUeXBlIg0KKyAgICAgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiRGF0YUFkYXB0ZXIiDQorICAgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJDb21tYW5kQnVpbGRlciINCisgICAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0idHJ1ZSINCisgICAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0iZmFsc2UiDQorICAgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9ImZhbHNlIg0KKyAgICAgIHBhcmFtZXRlclByZWZpeD0iIg0KKyAgICAgIGFsbG93TUFSUz0iZmFsc2UiDQorICAgIC8+DQorICA8cHJvdmlkZXIgbmFtZT0iT2xlRGIyLjAiDQorICAgIGRlc2NyaXB0aW9uPSJPbGVEYiwgcHJvdmlkZXIgVjIuMC4wLjAgaW4gZnJhbWV3b3JrIC5ORVQgVjIiDQorICAgIGVuYWJsZWQ9ImZhbHNlIg0KKyAgICBhc3NlbWJseU5hbWU9IlN5c3RlbS5EYXRhLCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSINCisgICAgY29ubmVjdGlvbkNsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYkNvbm5lY3Rpb24iDQorICAgIGNvbW1hbmRDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJDb21tYW5kIg0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJQYXJhbWV0ZXIiDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYlR5cGUiDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJPbGVEYlR5cGUiDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiRGF0YUFkYXB0ZXIiDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiQ29tbWFuZEJ1aWxkZXIiDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJ0cnVlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0iZmFsc2UiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJmYWxzZSINCisgICAgcGFyYW1ldGVyUHJlZml4PSIiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiDQorICAgIC8+DQorICA8cHJvdmlkZXINCisgICAgbmFtZT0iT2RiYzEuMSINCisgICAgZGVzY3JpcHRpb249Ik9kYmMsIHByb3ZpZGVyIFYxLjAuNTAwMC4wIGluIGZyYW1ld29yayAuTkVUIFYxLjEiDQorICAgIGVuYWJsZWQ9InRydWUiDQorICAgIGFzc2VtYmx5TmFtZT0iU3lzdGVtLkRhdGEsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5Ig0KKyAgICBjb25uZWN0aW9uQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY0Nvbm5lY3Rpb24iDQorICAgIGNvbW1hbmRDbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjQ29tbWFuZCINCisgICAgcGFyYW1ldGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY1BhcmFtZXRlciINCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY1R5cGUiDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJPZGJjVHlwZSINCisgICAgZGF0YUFkYXB0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjRGF0YUFkYXB0ZXIiDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY0NvbW1hbmRCdWlsZGVyIg0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0idHJ1ZSINCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9ImZhbHNlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0iZmFsc2UiDQorICAgIHBhcmFtZXRlclByZWZpeD0iQCINCisgICAgYWxsb3dNQVJTPSJmYWxzZSINCisgICAgLz4NCisgIDxwcm92aWRlcg0KKyAgICBuYW1lPSJPZGJjMi4wIg0KKyAgICBkZXNjcmlwdGlvbj0iT2RiYywgcHJvdmlkZXIgVjIuMC4wLjAgaW4gZnJhbWV3b3JrIC5ORVQgVjIiDQorICAgIGVuYWJsZWQ9ImZhbHNlIg0KKyAgICBhc3NlbWJseU5hbWU9IlN5c3RlbS5EYXRhLCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSINCisgICAgY29ubmVjdGlvbkNsYXNzPSJTeXN0ZW0uRGF0YS5PZGJjLk9kYmNDb25uZWN0aW9uIg0KKyAgICBjb21tYW5kQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY0NvbW1hbmQiDQorICAgIHBhcmFtZXRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PZGJjLk9kYmNQYXJhbWV0ZXIiDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJTeXN0ZW0uRGF0YS5PZGJjLk9kYmNUeXBlIg0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iT2RiY1R5cGUiDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY0RhdGFBZGFwdGVyIg0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PZGJjLk9kYmNDb21tYW5kQnVpbGRlciINCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9InRydWUiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJmYWxzZSINCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9ImZhbHNlIg0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiDQorICAvPg0KKyAgPHByb3ZpZGVyDQorICAgIG5hbWU9Im9yYWNsZTkuMiINCisgICAgZGVzY3JpcHRpb249Ik9yYWNsZSwgT3JhY2xlIHByb3ZpZGVyIFY5LjIuMC40MDEiDQorICAgIGVuYWJsZWQ9ImZhbHNlIg0KKyAgICBhc3NlbWJseU5hbWU9Ik9yYWNsZS5EYXRhQWNjZXNzLCBWZXJzaW9uPTkuMi4wLjQwMSwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj04OWI0ODNmNDI5YzQ3MzQyIiBjb25uZWN0aW9uQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVDb25uZWN0aW9uIg0KKyAgICBjb21tYW5kQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVDb21tYW5kIg0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZVBhcmFtZXRlciINCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVEYlR5cGUiDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJPcmFjbGVEYlR5cGUiDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVEYXRhQWRhcHRlciINCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZUNvbW1hbmRCdWlsZGVyIg0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0iZmFsc2UiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0iZmFsc2UiDQorICAgIHBhcmFtZXRlclByZWZpeD0iOiINCisgICAgdXNlRGVyaXZlUGFyYW1ldGVycz0iZmFsc2UiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiDQorICAvPg0KKyAgPHByb3ZpZGVyDQorICAgIG5hbWU9Im9yYWNsZTEwLjEiDQorICAgIGRlc2NyaXB0aW9uPSJPcmFjbGUsIG9yYWNsZSBwcm92aWRlciBWMTAuMS4wLjMwMSINCisgICAgZW5hYmxlZD0iZmFsc2UiDQorICAgIGFzc2VtYmx5TmFtZT0iT3JhY2xlLkRhdGFBY2Nlc3MsIFZlcnNpb249MTAuMS4wLjMwMSwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj04OWI0ODNmNDI5YzQ3MzQyIiBjb25uZWN0aW9uQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVDb25uZWN0aW9uIg0KKyAgICBjb21tYW5kQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVDb21tYW5kIg0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZVBhcmFtZXRlciINCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVEYlR5cGUiDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJPcmFjbGVEYlR5cGUiDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVEYXRhQWRhcHRlciINCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZUNvbW1hbmRCdWlsZGVyIg0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0idHJ1ZSINCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9InRydWUiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJ0cnVlIg0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IjoiDQorICAgIHVzZURlcml2ZVBhcmFtZXRlcnM9ImZhbHNlIg0KKyAgICBhbGxvd01BUlM9ImZhbHNlIg0KKyAgLz4NCisgIDxwcm92aWRlcg0KKyAgICBuYW1lPSJvcmFjbGVDbGllbnQxLjAiDQorICAgIGRlc2NyaXB0aW9uPSJPcmFjbGUsIE1pY3Jvc29mdCBwcm92aWRlciBWMS4wLjUwMDAuMCINCisgICAgZW5hYmxlZD0iZmFsc2UiDQorICAgIGFzc2VtYmx5TmFtZT0iU3lzdGVtLkRhdGEuT3JhY2xlQ2xpZW50LCBWZXJzaW9uPTEuMC41MDAwLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSIgY29ubmVjdGlvbkNsYXNzPSJTeXN0ZW0uRGF0YS5PcmFjbGVDbGllbnQuT3JhY2xlQ29ubmVjdGlvbiINCisgICAgY29tbWFuZENsYXNzPSJTeXN0ZW0uRGF0YS5PcmFjbGVDbGllbnQuT3JhY2xlQ29tbWFuZCINCisgICAgcGFyYW1ldGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9yYWNsZUNsaWVudC5PcmFjbGVQYXJhbWV0ZXIiDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJTeXN0ZW0uRGF0YS5PcmFjbGVDbGllbnQuT3JhY2xlVHlwZSINCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9Ik9yYWNsZVR5cGUiDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9yYWNsZUNsaWVudC5PcmFjbGVEYXRhQWRhcHRlciINCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iU3lzdGVtLkRhdGEuT3JhY2xlQ2xpZW50Lk9yYWNsZUNvbW1hbmRCdWlsZGVyIg0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0iZmFsc2UiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0iZmFsc2UiDQorICAgIHBhcmFtZXRlclByZWZpeD0iOiINCisgICAgYWxsb3dNQVJTPSJmYWxzZSINCisgIC8+DQorICA8cHJvdmlkZXINCisgICAgbmFtZT0iQnl0ZUZ4Ig0KKyAgICBkZXNjcmlwdGlvbj0iTXlTUUwsIEJ5dGVGeCBwcm92aWRlciBWMC43LjYuMTUwNzMiDQorICAgIGVuYWJsZWQ9ImZhbHNlIg0KKyAgICBhc3NlbWJseU5hbWU9IkJ5dGVGWC5NeVNxbENsaWVudCwgVmVyc2lvbj0wLjcuNi4xNTA3MywgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1mMmZlZjZmZWQxNzMyZmMxIiBjb25uZWN0aW9uQ2xhc3M9IkJ5dGVGWC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsQ29ubmVjdGlvbiINCisgICAgY29tbWFuZENsYXNzPSJCeXRlRlguRGF0YS5NeVNxbENsaWVudC5NeVNxbENvbW1hbmQiDQorICAgIHBhcmFtZXRlckNsYXNzPSJCeXRlRlguRGF0YS5NeVNxbENsaWVudC5NeVNxbFBhcmFtZXRlciINCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IkJ5dGVGWC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsRGJUeXBlIg0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iTXlTcWxEYlR5cGUiDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IkJ5dGVGWC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsRGF0YUFkYXB0ZXIiDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IkJ5dGVGWC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsQ29tbWFuZEJ1aWxkZXIiDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJmYWxzZSINCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9InRydWUiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJ0cnVlIg0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiDQorICAvPg0KKyAgPHByb3ZpZGVyDQorICAgIG5hbWU9Ik15U3FsIg0KKyAgICBkZXNjcmlwdGlvbj0iTXlTUUwsIE15U1FMIHByb3ZpZGVyIDEuMC43LjMwMDcyIg0KKyAgICBlbmFibGVkPSJ0cnVlIg0KKyAgICBhc3NlbWJseU5hbWU9Ik15U3FsLkRhdGEsIFZlcnNpb249MS4wLjcuMzAwNzIsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YzU2ODdmYzg4OTY5YzQ0ZCIgY29ubmVjdGlvbkNsYXNzPSJNeVNxbC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsQ29ubmVjdGlvbiINCisgICAgY29tbWFuZENsYXNzPSJNeVNxbC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsQ29tbWFuZCINCisgICAgcGFyYW1ldGVyQ2xhc3M9Ik15U3FsLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxQYXJhbWV0ZXIiDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJNeVNxbC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsRGJUeXBlIg0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iTXlTcWxEYlR5cGUiDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9Ik15U3FsLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxEYXRhQWRhcHRlciINCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iTXlTcWwuRGF0YS5NeVNxbENsaWVudC5NeVNxbENvbW1hbmRCdWlsZGVyIg0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0iZmFsc2UiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0idHJ1ZSINCisgICAgcGFyYW1ldGVyUHJlZml4PSI/Ig0KKyAgICBhbGxvd01BUlM9ImZhbHNlIg0KKyAgLz4NCisgIDxwcm92aWRlciBuYW1lPSJTUUxpdGUzIg0KKyAgICBkZXNjcmlwdGlvbj0iU1FMaXRlLCBTUUxpdGUuTkVUIHByb3ZpZGVyIFYwLjIxLjE4NjkuMzc5NCINCisgICAgZW5hYmxlZD0iZmFsc2UiDQorICAgIGFzc2VtYmx5TmFtZT0iU1FMaXRlLk5FVCwgVmVyc2lvbj0wLjIxLjE4NjkuMzc5NCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1jMjczYmQzNzVlNjk1ZjljIg0KKyAgICBjb25uZWN0aW9uQ2xhc3M9IkZpbmlzYXIuU1FMaXRlLlNRTGl0ZUNvbm5lY3Rpb24iDQorICAgIGNvbW1hbmRDbGFzcz0iRmluaXNhci5TUUxpdGUuU1FMaXRlQ29tbWFuZCINCisgICAgcGFyYW1ldGVyQ2xhc3M9IkZpbmlzYXIuU1FMaXRlLlNRTGl0ZVBhcmFtZXRlciINCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IlN5c3RlbS5EYXRhLkRiVHlwZSwgU3lzdGVtLkRhdGEiDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJEYlR5cGUiDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IkZpbmlzYXIuU1FMaXRlLlNRTGl0ZURhdGFBZGFwdGVyIg0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJGaW5pc2FyLlNRTGl0ZS5TUUxpdGVDb21tYW5kQnVpbGRlciINCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9ImZhbHNlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0idHJ1ZSINCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9InRydWUiDQorICAgIHBhcmFtZXRlclByZWZpeD0iQCINCisgICAgc2V0RGJQYXJhbWV0ZXJQcmVjaXNpb249ImZhbHNlIg0KKyAgICBzZXREYlBhcmFtZXRlclNjYWxlPSJmYWxzZSINCisgICAgYWxsb3dNQVJTPSJmYWxzZSINCisgIC8+DQorICA8cHJvdmlkZXINCisgICAgbmFtZT0iRmlyZWJpcmQxLjciDQorICAgIGRlc2NyaXB0aW9uPSJGaXJlYmlyZCwgRmlyZWJpcmQgU1FMIC5ORVQgcHJvdmlkZXIgVjEuNy4wLjMzMjAwIg0KKyAgICBlbmFibGVkPSJmYWxzZSINCisgICAgYXNzZW1ibHlOYW1lPSJGaXJlYmlyZFNxbC5EYXRhLkZpcmViaXJkLCBWZXJzaW9uPTEuNy4wLjMzMjAwLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWZhODQzZDE4MDI5NDM2OWQiIGNvbm5lY3Rpb25DbGFzcz0iRmlyZWJpcmRTcWwuRGF0YS5GaXJlYmlyZC5GYkNvbm5lY3Rpb24iDQorICAgIGNvbW1hbmRDbGFzcz0iRmlyZWJpcmRTcWwuRGF0YS5GaXJlYmlyZC5GYkNvbW1hbmQiDQorICAgIHBhcmFtZXRlckNsYXNzPSJGaXJlYmlyZFNxbC5EYXRhLkZpcmViaXJkLkZiUGFyYW1ldGVyIg0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iRmlyZWJpcmRTcWwuRGF0YS5GaXJlYmlyZC5GYkRiVHlwZSINCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9IkZiRGJUeXBlIg0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJGaXJlYmlyZFNxbC5EYXRhLkZpcmViaXJkLkZiRGF0YUFkYXB0ZXIiDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IkZpcmViaXJkU3FsLkRhdGEuRmlyZWJpcmQuRmJDb21tYW5kQnVpbGRlciINCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9ImZhbHNlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0idHJ1ZSINCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9InRydWUiDQorICAgIHBhcmFtZXRlclByZWZpeD0iQCINCisgICAgYWxsb3dNQVJTPSJmYWxzZSINCisgIC8+DQorICA8cHJvdmlkZXINCisgICAgbmFtZT0iUG9zdGdyZVNxbDAuOTkuMS4wIg0KKyAgICBkZXNjcmlwdGlvbj0iUG9zdGdyZVNxbCwgTnBnc3FsIHByb3ZpZGVyIFYwLjk5LjEuMCINCisgICAgZW5hYmxlZD0iZmFsc2UiDQorICAgIGFzc2VtYmx5TmFtZT0iTnBnc3FsLCBWZXJzaW9uPTAuOTkuMS4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTVkOGI5MGQ1MmY0NmZkYTciDQorICAgIGNvbm5lY3Rpb25DbGFzcz0iTnBnc3FsLk5wZ3NxbENvbm5lY3Rpb24iDQorICAgIGNvbW1hbmRDbGFzcz0iTnBnc3FsLk5wZ3NxbENvbW1hbmQiDQorICAgIHBhcmFtZXRlckNsYXNzPSJOcGdzcWwuTnBnc3FsUGFyYW1ldGVyIg0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iTnBnc3FsVHlwZXMuTnBnc3FsRGJUeXBlIg0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iTnBnc3FsRGJUeXBlIg0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJOcGdzcWwuTnBnc3FsRGF0YUFkYXB0ZXIiDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9Ik5wZ3NxbC5OcGdzcWxDb21tYW5kQnVpbGRlciINCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9ImZhbHNlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0idHJ1ZSINCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9InRydWUiDQorICAgIHBhcmFtZXRlclByZWZpeD0iOiINCisgICAgYWxsb3dNQVJTPSJ0cnVlIg0KKyAgLz4NCisgIDxwcm92aWRlcg0KKyAgICBuYW1lPSJpRGIyLjEwIg0KKyAgICBkZXNjcmlwdGlvbj0iSUJNIERCMiBQcm92aWRlciwgViAxMC4wIg0KKyAgICBlbmFibGVkPSJmYWxzZSINCisgICAgYXNzZW1ibHlOYW1lPSJJQk0uRGF0YS5EQjIuaVNlcmllcywgVmVyc2lvbj0xMC4wLjAuMCxDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTljZGIyZWJmYjFmOTNhMjYsIEN1c3RvbT1udWxsIiBjb25uZWN0aW9uQ2xhc3M9IklCTS5EYXRhLkRCMi5pU2VyaWVzLmlEQjJDb25uZWN0aW9uIg0KKyAgICBjb21tYW5kQ2xhc3M9IklCTS5EYXRhLkRCMi5pU2VyaWVzLmlEQjJDb21tYW5kIg0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iSUJNLkRhdGEuREIyLmlTZXJpZXMuaURCMlBhcmFtZXRlciINCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IklCTS5EYXRhLkRCMi5pU2VyaWVzLmlEQjJEYlR5cGUiDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJpREIyRGJUeXBlIg0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJJQk0uRGF0YS5EQjIuaVNlcmllcy5pREIyRGF0YUFkYXB0ZXIiDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IklCTS5EYXRhLkRCMi5pU2VyaWVzLmlEQjJDb21tYW5kQnVpbGRlciINCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9InRydWUiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJmYWxzZSINCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9ImZhbHNlIg0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IiINCisgICAgYWxsb3dNQVJTPSJmYWxzZSINCisgIC8+DQorICA8cHJvdmlkZXINCisgICAgbmFtZT0iSW5mb3JtaXgiDQorICAgIGRlc2NyaXB0aW9uPSJJbmZvcm1peCBORVQgUHJvdmlkZXIsIDIuODEuMC4wIg0KKyAgICBlbmFibGVkPSJmYWxzZSINCisgICAgYXNzZW1ibHlOYW1lPSJJQk0uRGF0YS5JbmZvcm1peCwgVmVyc2lvbj0yLjgxLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj03YzMwN2I5MWFhMTNkMjA4Ig0KKyAgICBjb25uZWN0aW9uQ2xhc3M9IklCTS5EYXRhLkluZm9ybWl4LklmeENvbm5lY3Rpb24iDQorICAgIGNvbW1hbmRDbGFzcz0iSUJNLkRhdGEuSW5mb3JtaXguSWZ4Q29tbWFuZCINCisgICAgcGFyYW1ldGVyQ2xhc3M9IklCTS5EYXRhLkluZm9ybWl4LklmeFBhcmFtZXRlciINCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IklCTS5EYXRhLkluZm9ybWl4LklmeFR5cGUiDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJJZnhUeXBlIg0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJJQk0uRGF0YS5JbmZvcm1peC5JZnhEYXRhQWRhcHRlciINCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iSUJNLkRhdGEuSW5mb3JtaXguSWZ4Q29tbWFuZEJ1aWxkZXIiDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzID0gInRydWUiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsID0gImZhbHNlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlciA9ICJmYWxzZSINCisgICAgdXNlRGVyaXZlUGFyYW1ldGVycz0iZmFsc2UiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiDQorCS8+DQorPC9wcm92aWRlcnM+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvVGVzdC9iaW4vRGVidWcvc3FsbWFwLmNvbmZpZyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvYmluL0RlYnVnL3NxbG1hcC5jb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM3M2ZmZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvYmluL0RlYnVnL3NxbG1hcC5jb25maWcKQEAgLTAsMCArMSwyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCis8c3FsTWFwQ29uZmlnIHhtbG5zPSJodHRwOi8vaWJhdGlzLmFwYWNoZS5vcmcvZGF0YU1hcHBlciIgeG1sbnM6eHNpPSIgaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiID4NCisNCisgIDxwcm9wZXJ0aWVzIHJlc291cmNlPSJzcWxtYXAuY29uZmlnLnhtbCIvPg0KKw0KKyAgPHNldHRpbmdzPg0KKyAgICA8c2V0dGluZyB1c2VTdGF0ZW1lbnROYW1lc3BhY2VzPSJmYWxzZSIvPg0KKyAgICA8c2V0dGluZyBjYWNoZU1vZGVsc0VuYWJsZWQ9InRydWUiLz4NCisgIDwvc2V0dGluZ3M+DQorDQorICA8ZGF0YWJhc2U+DQorICAgIDxwcm92aWRlciBuYW1lPSIke3Byb3ZpZGVyfSIvPg0KKyAgICA8ZGF0YVNvdXJjZSBuYW1lPSJkZWZhdWx0IiAgY29ubmVjdGlvblN0cmluZz0iJHtkZXZlbG9wbWVudH0iLz4NCisgIDwvZGF0YWJhc2U+DQorDQorICA8c3FsTWFwcz4NCisgICAgPHNxbE1hcCByZXNvdXJjZT0iJHtyb290fS9SZXNvdXJjZXMvUXVlcmllcy54bWwiLz4NCisgIDwvc3FsTWFwcz4NCisNCis8L3NxbE1hcENvbmZpZz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L2Jpbi9EZWJ1Zy9zcWxtYXAuY29uZmlnLnhtbCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1Rlc3QvYmluL0RlYnVnL3NxbG1hcC5jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2OWFiNDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9UZXN0L2Jpbi9EZWJ1Zy9zcWxtYXAuY29uZmlnLnhtbApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/Pg0KKzxzZXR0aW5ncz4NCisgIDxhZGQga2V5PSJyb290IiB2YWx1ZT0iLi4vLi4vIiAvPg0KKyAgPGFkZCBrZXk9InByb3ZpZGVyIiB2YWx1ZT0iTXlTcWwiIC8+DQorICA8YWRkIGtleT0iZGV2ZWxvcG1lbnQiIHZhbHVlPSJIb3N0PWNsaWZmb3JkO0RhdGFiYXNlPXBob25lYm9vaztVc2VybmFtZT1waG9uZWJvb2tBcHA7UGFzc3dvcmQ9cDFuSDM0ZCIgLz4NCisgIDxhZGQga2V5PSJwcm9kdWN0aW9uIiB2YWx1ZT0iSG9zdD16aXBweTtEYXRhYmFzZT1waG9uZWJvb2s7VXNlcm5hbWU9cGhvbmVib29rQXBwO1Bhc3N3b3JkPXAxbkgzNGQiIC8+DQorPC9zZXR0aW5ncz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvRGVmYXVsdC5hc3B4IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL0RlZmF1bHQuYXNweApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzM3NGFjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL0RlZmF1bHQuYXNweApAQCAtMCwwICsxLDM3IEBACivvu788JUAgUGFnZSBMYW5ndWFnZT0iQyMiIEF1dG9FdmVudFdpcmV1cD0idHJ1ZSIgIENvZGVGaWxlPSJEZWZhdWx0LmFzcHguY3MiIEluaGVyaXRzPSJfRGVmYXVsdCIgJT4NCisNCis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+DQorDQorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiID4NCis8aGVhZCBydW5hdD0ic2VydmVyIj4NCisgICAgPHRpdGxlPlBob25lQm9vayBhbmQgRnJpZW5kczwvdGl0bGU+DQorPC9oZWFkPg0KKzxib2R5Pg0KKyAgICA8Zm9ybSBpZD0iZm9ybTEiIHJ1bmF0PSJzZXJ2ZXIiPg0KKyAgICA8ZGl2Pg0KKyAgICA8dWw+DQorICAgIDxsaT4NCisgICAgICAgIDxhIGhyZWY9IkhlbGxvV29ybGQuaHRtbCI+SGVsbG9Xb3JsZC5odG1sPC9hPiAtIFNpbXBsZSBKYXlyb2NrIGV4YW1wbGUNCisgICAgPC9saT4NCisgICAgPGxpPg0KKyAgICAgICAgPGEgaHJlZj0iRGVtb1NlcnZpY2UuaHRtbCI+RGVtb1NlcnZpY2UuaHRtbDwvYT4gLSBTaW1wbGUgZXhhbXBsZSBvZiBpbnRlZ3JhdGluZyBEb2pvIGFuZCBKYXlyb2NrDQorICAgIDwvbGk+DQorICAgIDxsaT4NCisgICAgICAgIDxhIGhyZWY9IlBob25lQm9vay5odG1sIj5QaG9uZUJvb2suaHRtbDwvYT4gLSBGaXJzdCBibHVzaCBleGFtcGxlIG9mIGNhbGxpbmcgTmV4dXMgY29tbWFuZHMgZnJvbSBKU09OLVJQQyBzZXJ2aWNlDQorICAgIDwvbGk+DQorICAgIDwvdWw+DQorICAgIDx1bD4NCisgICAgPGxpPg0KKyAgICAgICAgPGEgaHJlZj0iSGVsbG9Xb3JsZC5hc2h4Ij5IZWxsb1dvcmxkLmFzaHg8L2E+IC0gU2ltcGxlIGV4YW1wbGUgb2YgYSBKYXlyb2NrIEpTT04tUlBDIHNlcnZpY2UuDQorICAgIDwvbGk+ICAgIA0KKyAgICA8bGk+DQorICAgICAgICA8YSBocmVmPSJEZW1vU2VydmljZS5hc2h4Ij5EZW1vU2VydmljZS5hc2h4PC9hPiAtIEV4YW1wbGVzIG9mIHZhcmlvdXMgb3V0cHV0IHR5cGVzLg0KKyAgICA8L2xpPiAgICANCisgICAgPGxpPg0KKyAgICAgICAgPGEgaHJlZj0iUGhvbmVCb29rLmFzaHgiPlBob25lQm9vay5hc2h4PC9hPiAtIFBob25lQm9vayBBUEkgLSBXT1JLIElOIFBST0dSRVNTLg0KKyAgICA8L2xpPiAgICANCisgICAgPC91bD4NCisgICAgPC9kaXY+DQorICAgIDwvZm9ybT4NCis8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1dlYi9EZWZhdWx0LmFzcHguY3MgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvRGVmYXVsdC5hc3B4LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0ODIyNjIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvRGVmYXVsdC5hc3B4LmNzCkBAIC0wLDAgKzEsMTcgQEAKK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uRGF0YTsNCit1c2luZyBTeXN0ZW0uQ29uZmlndXJhdGlvbjsNCit1c2luZyBTeXN0ZW0uV2ViOw0KK3VzaW5nIFN5c3RlbS5XZWIuU2VjdXJpdHk7DQordXNpbmcgU3lzdGVtLldlYi5VSTsNCit1c2luZyBTeXN0ZW0uV2ViLlVJLldlYkNvbnRyb2xzOw0KK3VzaW5nIFN5c3RlbS5XZWIuVUkuV2ViQ29udHJvbHMuV2ViUGFydHM7DQordXNpbmcgU3lzdGVtLldlYi5VSS5IdG1sQ29udHJvbHM7DQorDQorcHVibGljIHBhcnRpYWwgY2xhc3MgX0RlZmF1bHQgOiBTeXN0ZW0uV2ViLlVJLlBhZ2UgDQorew0KKyAgICBwcm90ZWN0ZWQgdm9pZCBQYWdlX0xvYWQob2JqZWN0IHNlbmRlciwgRXZlbnRBcmdzIGUpDQorICAgIHsNCisNCisgICAgfQ0KK30NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvRGVtb1NlcnZpY2UuYXNoeCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1dlYi9EZW1vU2VydmljZS5hc2h4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiZmRkMTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvRGVtb1NlcnZpY2UuYXNoeApAQCAtMCwwICsxLDMxMCBAQAorPCVAIFdlYkhhbmRsZXIgQ2xhc3M9IkpheXJvY2tXZWIuRGVtb1NlcnZpY2UiIExhbmd1YWdlPSJDIyIgJT4NCisNCituYW1lc3BhY2UgSmF5cm9ja1dlYg0KK3sNCisgICAgdXNpbmcgU3lzdGVtOw0KKyAgICB1c2luZyBTeXN0ZW0uQ29uZmlndXJhdGlvbjsNCisgICAgdXNpbmcgU3lzdGVtLkRhdGE7DQorICAgIHVzaW5nIFN5c3RlbS5EYXRhLlNxbENsaWVudDsNCisgICAgdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KKyAgICB1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuU3BlY2lhbGl6ZWQ7DQorICAgIHVzaW5nIFN5c3RlbS5XZWI7DQorICAgIHVzaW5nIFN5c3RlbS5XZWIuU2Vzc2lvblN0YXRlOw0KKyAgICB1c2luZyBTeXN0ZW0uV2ViLlVJOw0KKyAgICB1c2luZyBTeXN0ZW0uV2ViLlVJLldlYkNvbnRyb2xzOw0KKyAgICB1c2luZyBKYXlyb2NrLkpzb25ScGM7DQorICAgIHVzaW5nIEpheXJvY2suSnNvblJwYy5XZWI7DQorDQorICAgIFsgSnNvblJwY0hlbHAoIlRoaXMgaXMgYSBKU09OLVJQQyBzZXJ2aWNlIHRoYXQgZGVtb25zdHJhdGVzIHRoZSBiYXNpYyBmZWF0dXJlcyBvZiB0aGUgSmF5cm9jayBsaWJyYXJ5LiIpIF0gICAgDQorICAgIHB1YmxpYyBjbGFzcyBEZW1vU2VydmljZSA6IEpzb25ScGNIYW5kbGVyLCBJUmVxdWlyZXNTZXNzaW9uU3RhdGUgDQorICAgIHsNCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgiZWNobyIsIElkZW1wb3RlbnQgPSB0cnVlKV0NCisgICAgICAgIFsgSnNvblJwY0hlbHAoIkVjaG9lcyBiYWNrIHRoZSB0ZXh0IHNlbnQgYXMgaW5wdXQuIikgXQ0KKyAgICAgICAgcHVibGljIHN0cmluZyBFY2hvKHN0cmluZyB0ZXh0KQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiB0ZXh0Ow0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgWyBKc29uUnBjTWV0aG9kKCJlY2hvT2JqZWN0IiwgSWRlbXBvdGVudCA9IHRydWUpXQ0KKyAgICAgICAgWyBKc29uUnBjSGVscCgiRWNob2VzIGJhY2sgdGhlIG9iamVjdCBzZW50IGFzIGlucHV0LiIpIF0NCisgICAgICAgIHB1YmxpYyBvYmplY3QgRWNob09qZWN0KG9iamVjdCBvKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiBvOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgWyBKc29uUnBjTWV0aG9kKCJlY2hvQXJncyIsIElkZW1wb3RlbnQgPSB0cnVlKV0NCisgICAgICAgIFsgSnNvblJwY0hlbHAoIkVjaG9lcyBiYWNrIHRoZSBhcmd1bWVudHMgc2VudCBhcyBpbnB1dC4gVGhpcyBtZXRob2QgZGVtb25zdHJhdGVzIHZhcmlhYmxlIG51bWJlciBvZiBhcmd1bWVudHMuIikgXQ0KKyAgICAgICAgcHVibGljIG9iamVjdCBFY2hvQXJncyhwYXJhbXMgb2JqZWN0W10gYXJncykNCisgICAgICAgIHsNCisgICAgICAgICAgICByZXR1cm4gYXJnczsNCisgICAgICAgIH0NCisNCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgiZWNob0FzU3RyaW5ncyIsIElkZW1wb3RlbnQgPSB0cnVlKV0NCisgICAgICAgIFsgSnNvblJwY0hlbHAoIkVjaG9lcyBiYWNrIHRoZSBhcmd1bWVudHMgYXMgYW4gYXJyYXkgb2Ygc3RyaW5ncy4gVGhpcyBtZXRob2QgZGVtb25zdHJhdGVzIHdvcmtpbmcgd2l0aCB2YXJpYWJsZSBudW1iZXIgb2YgYXJndW1lbnRzLiIpIF0NCisgICAgICAgIHB1YmxpYyBvYmplY3QgRWNob0FzU3RyaW5ncyhwYXJhbXMgb2JqZWN0W10gYXJncykNCisgICAgICAgIHsNCisgICAgICAgICAgICBzdHJpbmdbXSBzdHJpbmdzID0gbmV3IHN0cmluZ1thcmdzLkxlbmd0aF07DQorDQorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcmdzLkxlbmd0aDsgaSsrKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgaWYgKGFyZ3NbaV0gIT0gbnVsbCkNCisgICAgICAgICAgICAgICAgICAgIHN0cmluZ3NbaV0gPSBhcmdzW2ldLlRvU3RyaW5nKCk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICANCisgICAgICAgICAgICByZXR1cm4gc3RyaW5nczsNCisgICAgICAgIH0NCisNCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgiZWNob0d1aWQiLCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbIEpzb25ScGNIZWxwKCJFY2hvZXMgYmFjayB0aGUgZ2l2ZW4gR1VJRC4gVGhpcyBtZXRob2QgZGVtb25zdHJhdGVzIHdvcmtpbmcgd2l0aCBhbiBhcmd1bWVudCB0eXBlZCBhcyBTeXN0ZW0uR3VpZC4iKSBdDQorICAgICAgICBwdWJsaWMgR3VpZCBFY2hvR3VpZChHdWlkIGlkKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiBpZDsNCisgICAgICAgIH0NCisNCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgic3VtIiwgSWRlbXBvdGVudCA9IHRydWUpXQ0KKyAgICAgICAgWyBKc29uUnBjSGVscCgiUmV0dXJuIHRoZSBzdW0gb2YgdHdvIGludGVnZXJzLiIpIF0NCisgICAgICAgIFsgSnNvblJwY09ic29sZXRlKCJVc2UgdGhlIHRvdGFsIG1ldGhvZCBpbnN0ZWFkLiIpIF0NCisgICAgICAgIHB1YmxpYyBpbnQgU3VtKGludCBhLCBpbnQgYikNCisgICAgICAgIHsNCisgICAgICAgICAgICByZXR1cm4gYSArIGI7DQorICAgICAgICB9DQorICAgICAgICANCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgiZ2V0U3RyaW5nQXJyYXkiLCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbIEpzb25ScGNIZWxwKCJSZXR1cm5zIGFuIGFycmF5IG9mIGNpdHkgbmFtZXMuIERlbW9uc3RyYXRlcyByZXR1cm5pbmcgYSBzdHJvbmdseS10eXBlZCBhcnJheS4iKSBdDQorICAgICAgICBwdWJsaWMgc3RyaW5nW10gR2V0Q2l0aWVzKCkNCisgICAgICAgIHsNCisgICAgICAgICAgICByZXR1cm4gbmV3IHN0cmluZ1tdIHsgIkxvbmRvbiIsICJadXJpY2giLCAiUGFyaXMiLCAiTmV3IFlvcmsiIH07DQorICAgICAgICB9DQorICAgICAgICANCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgibm93IiwgSWRlbXBvdGVudCA9IHRydWUpXQ0KKyAgICAgICAgWyBKc29uUnBjSGVscCgiUmV0dXJucyB0aGUgbG9jYWwgdGltZSBvbiB0aGUgc2VydmVyLiBEZW1vbnN0cmF0ZXMgaG93IERhdGVUaW1lIGlzIHJldHVybmVkIHNpbXBseSBhcyBhIHN0cmluZyB1c2luZyB0aGUgSVNPIDg2MDEgZm9ybWF0LiIpIF0NCisgICAgICAgIHB1YmxpYyBEYXRlVGltZSBOb3coKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiBEYXRlVGltZS5Ob3c7DQorICAgICAgICB9DQorDQorICAgICAgICBbIEpzb25ScGNNZXRob2QoIm5ld0d1aWQiLCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbIEpzb25ScGNIZWxwKCJHZW5lcmF0ZXMgYW5kIHJldHVybnMgYSBHVUlEIGFzIGEgc3RyaW5nLiIpIF0NCisgICAgICAgIHB1YmxpYyBHdWlkIE5ld0d1aWQoKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiBHdWlkLk5ld0d1aWQoKTsNCisgICAgICAgIH0NCisNCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgiY29va2llcyIsIElkZW1wb3RlbnQgPSB0cnVlKV0NCisgICAgICAgIFsgSnNvblJwY0hlbHAoIlJldHVybnMgdGhlIGNvb2tpZSBuYW1lcyBzZWVuIGJ5IHRoZSBzZXJ2ZXIuIikgXQ0KKyAgICAgICAgcHVibGljIEh0dHBDb29raWVDb2xsZWN0aW9uIENvb2tpZXMoKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiBSZXF1ZXN0LkNvb2tpZXM7DQorICAgICAgICB9DQorICAgICAgICANCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgic2VydmVyVmFyaWFibGVzIiwgSWRlbXBvdGVudCA9IHRydWUpXQ0KKyAgICAgICAgWyBKc29uUnBjSGVscCgiUmV0dXJucyB0aGUgc2VydmVyIHZhcmlhYmxlcyBjb2xsZWN0aW9uIGF0IHRoZSBzZXJ2ZXIuIERlbW9uc3RyYXRlcyByZXR1cm5pbmcgTmFtZVZhbHVlQ29sbGVjdGlvbi4iKSBdDQorICAgICAgICBwdWJsaWMgTmFtZVZhbHVlQ29sbGVjdGlvbiBTZXJ2ZXJWYXJpYWJsZXMoKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiBSZXF1ZXN0LlNlcnZlclZhcmlhYmxlczsNCisgICAgICAgIH0NCisNCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgiZ2V0QXV0aG9yIiwgSWRlbXBvdGVudCA9IHRydWUpXQ0KKyAgICAgICAgWyBKc29uUnBjSGVscCgiUmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYXV0aG9yLiBEZW1vbnN0cmF0ZXMgaG93IGEgSGFzaHRhYmxlIGZyb20gdGhlIHNlcnZlciBpcyBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCBpbnRvIGFuIG9iamVjdCBvbiB0aGUgY2xpZW50LXNpZGUuIikgXQ0KKyAgICAgICAgcHVibGljIElEaWN0aW9uYXJ5IEdldEF1dGhvcigpDQorICAgICAgICB7DQorICAgICAgICAgICAgSGFzaHRhYmxlIGF1dGhvciA9IG5ldyBIYXNodGFibGUoKTsNCisgICAgICAgICAgICBhdXRob3JbIkZpcnN0TmFtZSJdID0gIkF0aWYiOw0KKyAgICAgICAgICAgIGF1dGhvclsiTGFzdE5hbWUiXSA9ICJBeml6IjsNCisgICAgICAgICAgICByZXR1cm4gYXV0aG9yOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgWyBKc29uUnBjTWV0aG9kKCJnZXRDb3VwbGUiLCBJZGVtcG90ZW50ID0gdHJ1ZSkgXQ0KKyAgICAgICAgWyBKc29uUnBjSGVscCgiUmV0dXJucyBhIHNlcnZlci10eXBlZCBvYmplY3QgcmVwcmVzZW50aW5nIGEgY291cGxlLiBEZW1vbnN0cmF0ZXMgdG8gcmV0dXJuaW5nIHNlcnZlci10eXBlZCBvYmplY3RzLiIpXQ0KKyAgICAgICAgcHVibGljIE1hcnJpYWdlIEdldENvdXBsZSgpDQorICAgICAgICB7DQorICAgICAgICAgICAgcmV0dXJuIG5ldyBNYXJyaWFnZSgNCisgICAgICAgICAgICAgICAgbmV3IFBlcnNvbigiTWlja2V5IiwgIk1vdXNlIiksDQorICAgICAgICAgICAgICAgIG5ldyBQZXJzb24oIk1pbm5pZSIsICJNb3VzZSIpKTsNCisgICAgICAgIH0NCisNCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgic3dhcE5hbWVzIiwgSWRlbXBvdGVudCA9IHRydWUpXQ0KKyAgICAgICAgWyBKc29uUnBjSGVscCgiU3dhcHMgZmlyc3QgYW5kIGxhc3QgbmFtZSBvZiBwZXJzb24uIERlbW9uc3RyYXRlcyByZWNlaXZpbmcgYW5kIHJldHVybmluZyBhIHNlcnZlci10eXBlZCBvYmplY3QuIildDQorICAgICAgICBwdWJsaWMgUGVyc29uIFN3YXBQZXJzb25OYW1lcyhQZXJzb24gcCkNCisgICAgICAgIHsNCisgICAgICAgICAgICByZXR1cm4gcCA9PSBudWxsID8gbmV3IFBlcnNvbigpIDogbmV3IFBlcnNvbihwLkxhc3ROYW1lLCBwLkZpcnN0TmFtZSk7DQorICAgICAgICB9DQorDQorICAgICAgICBbSnNvblJwY01ldGhvZCgiZ2V0RGF0YVNldCIsIElkZW1wb3RlbnQgPSB0cnVlKV0NCisgICAgICAgIFsgSnNvblJwY0hlbHAoIlJldHVybnMgdGhlIE5vcnRod2luZCBlbXBsb3llZXMgYXMgYSBEYXRhU2V0LiIpIF0NCisgICAgICAgIHB1YmxpYyBEYXRhU2V0IEdldEVtcGxveWVlU2V0KCkNCisgICAgICAgIHsNCisgICAgICAgICAgICB1c2luZyAoU3FsQ29ubmVjdGlvbiBjb25uZWN0aW9uID0gbmV3IFNxbENvbm5lY3Rpb24oQ29uZmlndXJhdGlvblNldHRpbmdzLkFwcFNldHRpbmdzWyJOb3J0aHdpbmRDb25uZWN0aW9uU3RyaW5nIl0pKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgU3FsRGF0YUFkYXB0ZXIgYSA9IG5ldyBTcWxEYXRhQWRhcHRlcigpOw0KKyAgICAgICAgICAgICAgICBhLlNlbGVjdENvbW1hbmQgPSBuZXcgU3FsQ29tbWFuZCgiU0VMRUNUIEVtcGxveWVlSUQsIExhc3ROYW1lLCBGaXJzdE5hbWUsIFRpdGxlLCBUaXRsZU9mQ291cnRlc3ksIEJpcnRoRGF0ZSwgSGlyZURhdGUsIEFkZHJlc3MsIENpdHksIFJlZ2lvbiwgUG9zdGFsQ29kZSwgQ291bnRyeSwgSG9tZVBob25lLCBFeHRlbnNpb24sIE5vdGVzLCBSZXBvcnRzVG8sIFBob3RvUGF0aCBGUk9NIEVtcGxveWVlcyIsIGNvbm5lY3Rpb24pOw0KKyAgICAgICAgICAgICAgICBEYXRhU2V0IGRzID0gbmV3IERhdGFTZXQoKTsNCisgICAgICAgICAgICAgICAgYS5GaWxsKGRzLCAiRW1wbG95ZWUiKTsNCisgICAgICAgICAgICAgICAgcmV0dXJuIGRzOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisgICAgICAgIA0KKyAgICAgICAgWyBKc29uUnBjTWV0aG9kKCJnZXREYXRhVGFibGUiLCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbIEpzb25ScGNIZWxwKCJSZXR1cm5zIHRoZSBOb3J0aHdpbmQgZW1wbG95ZWVzIGFzIGEgRGF0YVRhYmxlLiIpIF0NCisgICAgICAgIHB1YmxpYyBEYXRhVGFibGUgR2V0RW1wbG95ZWVUYWJsZSgpDQorICAgICAgICB7DQorICAgICAgICAgICAgcmV0dXJuIEdldEVtcGxveWVlU2V0KCkuVGFibGVzWzBdOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgWyBKc29uUnBjTWV0aG9kKCJnZXRSb3dBcnJheSIsIElkZW1wb3RlbnQgPSB0cnVlKV0NCisgICAgICAgIFsgSnNvblJwY0hlbHAoIlJldHVybnMgdGhlIE5vcnRod2luZCBlbXBsb3llZXMgYXMgYW4gYXJyYXkgb2YgRGF0YVJvdyBvYmplY3RzLiIpIF0NCisgICAgICAgIHB1YmxpYyBEYXRhUm93W10gR2V0RW1wbG95ZWVSb3dBcnJheSgpDQorICAgICAgICB7DQorICAgICAgICAgICAgcmV0dXJuIEdldEVtcGxveWVlU2V0KCkuVGFibGVzWzBdLlNlbGVjdCgpOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgWyBKc29uUnBjTWV0aG9kKCJnZXRSb3dDb2xsZWN0aW9uIiwgSWRlbXBvdGVudCA9IHRydWUpXQ0KKyAgICAgICAgWyBKc29uUnBjSGVscCgiUmV0dXJucyB0aGUgTm9ydGh3aW5kIGVtcGxveWVlcyBhcyBhIERhdGFSb3dDb2xsZWN0aW9uLiIpIF0NCisgICAgICAgIHB1YmxpYyBEYXRhUm93Q29sbGVjdGlvbiBHZXRFbXBsb3llZVJvd3MoKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiBHZXRFbXBsb3llZVNldCgpLlRhYmxlc1swXS5Sb3dzOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgWyBKc29uUnBjTWV0aG9kKCJnZXREYXRhVmlldyIsIElkZW1wb3RlbnQgPSB0cnVlKV0NCisgICAgICAgIFsgSnNvblJwY0hlbHAoIlJldHVybnMgdGhlIE5vcnRod2luZCBlbXBsb3llZXMgYXMgYSBEYXRhVmlldyBvYmplY3QuIikgXQ0KKyAgICAgICAgcHVibGljIERhdGFWaWV3IEdldEVtcGxveWVlVmlldygpDQorICAgICAgICB7DQorICAgICAgICAgICAgcmV0dXJuIEdldEVtcGxveWVlU2V0KCkuVGFibGVzWzBdLkRlZmF1bHRWaWV3Ow0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgWyBKc29uUnBjTWV0aG9kKCJnZXRGaXJzdERhdGFSb3ciLCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbIEpzb25ScGNIZWxwKCJSZXR1cm5zIHRoZSBmaXJzdCBOb3J0aHdpbmQgZW1wbG95ZWUgYXMgYSBEYXRhUm93IG9iamVjdC4iKSBdDQorICAgICAgICBwdWJsaWMgRGF0YVJvdyBHZXRGaXJzdEVtcGxveWVlUm93KCkNCisgICAgICAgIHsNCisgICAgICAgICAgICByZXR1cm4gR2V0RW1wbG95ZWVTZXQoKS5UYWJsZXNbMF0uUm93c1swXTsNCisgICAgICAgIH0NCisNCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgiZ2V0Rmlyc3REYXRhUm93VmlldyIsIElkZW1wb3RlbnQgPSB0cnVlKV0NCisgICAgICAgIFsgSnNvblJwY0hlbHAoIlJldHVybnMgdGhlIGZpcnN0IE5vcnRod2luZCBlbXBsb3llZSBhcyBhIERhdGFSb3dWaWV3IG9iamVjdC4iKSBdDQorICAgICAgICBwdWJsaWMgRGF0YVJvd1ZpZXcgR2V0Rmlyc3RFbXBsb3llZVJvd1ZpZXcoKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiBHZXRFbXBsb3llZVNldCgpLlRhYmxlc1swXS5EZWZhdWx0Vmlld1swXTsNCisgICAgICAgIH0NCisNCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgiZ2V0RHJvcERvd24iLCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbIEpzb25ScGNIZWxwKCJSZXR1cm5zIGEgZGF0YS1ib3VuZCBEcm9wRG93bkxpc3QgdG8gdGhlIGNsaWVudCBhcyBIVE1MLiIpIF0NCisgICAgICAgIHB1YmxpYyBDb250cm9sIEVtcGxveWVlRHJvcERvd24oKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIERyb3BEb3duTGlzdCBkZGwgPSBuZXcgRHJvcERvd25MaXN0KCk7DQorICAgICAgICAgICAgRGF0YVNldCBkcyA9IEdldEVtcGxveWVlU2V0KCk7DQorICAgICAgICAgICAgZHMuVGFibGVzWzBdLkNvbHVtbnMuQWRkKCJGdWxsTmFtZSIsIHR5cGVvZihzdHJpbmcpLCAiRmlyc3ROYW1lICsgJyAnICsgTGFzdE5hbWUiKTsNCisgICAgICAgICAgICBkZGwuRGF0YVNvdXJjZSA9IGRzOw0KKyAgICAgICAgICAgIGRkbC5EYXRhTWVtYmVyID0gIkVtcGxveWVlIjsNCisgICAgICAgICAgICBkZGwuRGF0YVRleHRGaWVsZCA9ICJGdWxsTmFtZSI7DQorICAgICAgICAgICAgZGRsLkRhdGFWYWx1ZUZpZWxkID0gIkVtcGxveWVlSUQiOw0KKyAgICAgICAgICAgIGRkbC5EYXRhQmluZCgpOw0KKyAgICAgICAgICAgIHJldHVybiBkZGw7DQorICAgICAgICB9DQorICAgICAgICANCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgiZ2V0RGF0YUdyaWQiLCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbIEpzb25ScGNIZWxwKCJSZXR1cm5zIGEgZGF0YS1ib3VuZCBEYXRhR3JpZCB0byB0aGUgY2xpZW50IGFzIEhUTUwuIikgXQ0KKyAgICAgICAgcHVibGljIENvbnRyb2wgRW1wbG95ZWVEYXRhR3JpZCgpDQorICAgICAgICB7DQorICAgICAgICAgICAgRGF0YUdyaWQgZ3JpZCA9IG5ldyBEYXRhR3JpZCgpOw0KKyAgICAgICAgICAgIGdyaWQuRGF0YVNvdXJjZSA9IEdldEVtcGxveWVlU2V0KCk7DQorICAgICAgICAgICAgZ3JpZC5EYXRhQmluZCgpOw0KKyAgICAgICAgICAgIHJldHVybiBncmlkOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgWyBKc29uUnBjTWV0aG9kKCJ0b3RhbCIsIElkZW1wb3RlbnQgPSB0cnVlKV0NCisgICAgICAgIFsgSnNvblJwY0hlbHAoIlJldHVybnMgdGhlIHRvdGFsIG9mIGFsbCBpbnRlZ2VycyBzZW50IGluIGFuIGFycmF5LiIpIF0NCisgICAgICAgIHB1YmxpYyBpbnQgVG90YWwoaW50W10gdmFsdWVzKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIGludCB0b3RhbCA9IDA7DQorICAgICAgICAgICAgDQorICAgICAgICAgICAgaWYgKHZhbHVlcyAhPSBudWxsKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgZm9yZWFjaCAoaW50IHZhbHVlIGluIHZhbHVlcykNCisgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9IHZhbHVlOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICANCisgICAgICAgICAgICByZXR1cm4gdG90YWw7DQorICAgICAgICB9DQorICAgICAgICANCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgic2xlZXAiLCBJZGVtcG90ZW50ID0gdHJ1ZSkgXQ0KKyAgICAgICAgWyBKc29uUnBjSGVscCgiQmxvY2tzIHRoZSByZXF1ZXN0IGZvciB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaWxsaXNlY29uZHMgKG1heGltdW0gNyBzZWNvbmRzKS4iKSBdDQorICAgICAgICBwdWJsaWMgdm9pZCBTbGVlcChpbnQgbWlsbGlzZWNvbmRzKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIFN5c3RlbS5UaHJlYWRpbmcuVGhyZWFkLlNsZWVwKE1hdGguTWluKDcwMDAsIG1pbGxpc2Vjb25kcykpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgDQorICAgICAgICBbIEpzb25ScGNNZXRob2QoInRocm93RXJyb3IiLCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbIEpzb25ScGNIZWxwKCJUaHJvd3MgYW4gZXJyb3IgaWYgeW91IHRyeSB0byBjYWxsIHRoaXMgbWV0aG9kLiIpIF0NCisgICAgICAgIHB1YmxpYyB2b2lkIFRocm93RXJyb3IoKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHRocm93IG5ldyBBcHBsaWNhdGlvbkV4Y2VwdGlvbigpOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgWyBKc29uUnBjTWV0aG9kKCJmb3JtYXQiLCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbIEpzb25ScGNIZWxwKCJGb3JtYXRzIHBsYWNlaG9sZGVycyBpbiBhIGZvcm1hdCBzcGVjaWZpY2F0aW9uIHdpdGggc3VwcGxpZWQgcmVwbGFjZW1lbnRzLiBUaGlzIG1ldGhvZCBkZW1vbnN0cmF0ZXMgZml4ZWQgYW5kIHZhcmlhYmxlIGFyZ3VtZW50cy4iKSBdDQorICAgICAgICBwdWJsaWMgc3RyaW5nIEZvcm1hdChzdHJpbmcgZm9ybWF0LCBwYXJhbXMgb2JqZWN0W10gYXJncykNCisgICAgICAgIHsNCisgICAgICAgICAgICByZXR1cm4gc3RyaW5nLkZvcm1hdChmb3JtYXQsIGFyZ3MpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgDQorICAgICAgICBbIEpzb25ScGNNZXRob2QoImNvdW50ZXIiLCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbIEpzb25ScGNIZWxwKCJJbmNyZW1lbnRzIGEgY291bnRlciBhbmQgcmV0dXJucyBpdHMgbmV3IHZhbHVlLiBEZW1vbnN0cmF0ZXMgdXNlIG9mIHNlc3Npb24gc3RhdGUuIikgXQ0KKyAgICAgICAgcHVibGljIGludCBTZXNzaW9uQ291bnRlcigpDQorICAgICAgICB7DQorICAgICAgICAgICAgaW50IGNvdW50ZXIgPSAwOw0KKyAgICAgICAgICAgIG9iamVjdCBjb3VudGVyT2JqZWN0ID0gU2Vzc2lvblsiQ291bnRlciJdOw0KKyAgICAgICAgICAgIGlmIChjb3VudGVyT2JqZWN0ICE9IG51bGwpDQorICAgICAgICAgICAgICAgIGNvdW50ZXIgPSAoaW50KSBjb3VudGVyT2JqZWN0Ow0KKyAgICAgICAgICAgIFNlc3Npb25bIkNvdW50ZXIiXSA9ICsrY291bnRlcjsNCisgICAgICAgICAgICByZXR1cm4gY291bnRlcjsNCisgICAgICAgIH0NCisNCisgICAgICAgIFsgSnNvblJwY01ldGhvZCgiZW5jb2RlIiwgSWRlbXBvdGVudCA9IHRydWUpXQ0KKyAgICAgICAgWyBKc29uUnBjSGVscCgiUmV0dXJucyB0aGUgYnl0ZXMgb2YgYSBzdHJpbmcgaW4gYSBnaXZlbiBlbmNvZGluZyB0aGF0IGFyZSB0cmFuc21pdHRlZCBhcyBhIEJhc2U2NCBzdHJpbmcuIikgXQ0KKyAgICAgICAgcHVibGljIGJ5dGVbXSBFbmNvZGVCeXRlcyhzdHJpbmcgcywgc3RyaW5nIGVuY29kaW5nKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHJldHVybiBTeXN0ZW0uVGV4dC5FbmNvZGluZy5HZXRFbmNvZGluZyhlbmNvZGluZykuR2V0Qnl0ZXMocyk7DQorICAgICAgICB9DQorDQorICAgICAgICBbSnNvblJwY01ldGhvZCgiZGVjb2RlIiwgSWRlbXBvdGVudCA9IHRydWUpXQ0KKyAgICAgICAgW0pzb25ScGNIZWxwKCJSZXR1cm5zIHRoZSBzdHJpbmcgZnJvbSBlbmNvZGVkIGJ5dGVzICh0cmFuc21pdHRlZCBhcyBhIEJhc2U2NCBzdHJpbmcpLiIpXQ0KKyAgICAgICAgcHVibGljIHN0cmluZyBEZWNvZGVTdHJpbmcoYnl0ZVtdIGJ5dGVzLCBzdHJpbmcgZW5jb2RpbmcpDQorICAgICAgICB7DQorICAgICAgICAgICAgcmV0dXJuIFN5c3RlbS5UZXh0LkVuY29kaW5nLkdldEVuY29kaW5nKGVuY29kaW5nKS5HZXRTdHJpbmcoYnl0ZXMpOw0KKyAgICAgICAgfQ0KKyAgICAgICAgDQorICAgICAgICAvLw0KKyAgICAgICAgLy8gTk9URTogVG8gc2VuZCBhbmQgcmVjZWl2ZSB0eXBlZCBvYmplY3RzLCB1c2UgcHVibGljIHR5cGVzIG9ubHkgDQorICAgICAgICAvLyB0aGF0IGhhdmUgYSBkZWZhdWx0IGNvbnN0cnVjdG9yLiBPbmx5IHB1YmxpYyByZWFkL3dyaXRlIGZpZWxkcw0KKyAgICAgICAgLy8gYW5kIHByb3BlcnRpZXMgYXJlIGNvbnZlcnQgdG8gYW5kIGZyb20gSlNPTi4NCisgICAgICAgIC8vDQorDQorICAgICAgICBwdWJsaWMgY2xhc3MgTWFycmlhZ2UNCisgICAgICAgIHsNCisgICAgICAgICAgICBwdWJsaWMgUGVyc29uIEh1c2JhbmQ7DQorICAgICAgICAgICAgcHVibGljIFBlcnNvbiBXaWZlOw0KKw0KKyAgICAgICAgICAgIHB1YmxpYyBNYXJyaWFnZSgpIHsgfQ0KKw0KKyAgICAgICAgICAgIHB1YmxpYyBNYXJyaWFnZShQZXJzb24gaHVzYmFuZCwgUGVyc29uIHdpZmUpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBIdXNiYW5kID0gaHVzYmFuZDsNCisgICAgICAgICAgICAgICAgV2lmZSA9IHdpZmU7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgcHVibGljIGNsYXNzIFBlcnNvbg0KKyAgICAgICAgew0KKyAgICAgICAgICAgIHB1YmxpYyBzdHJpbmcgRmlyc3ROYW1lOw0KKyAgICAgICAgICAgIHB1YmxpYyBzdHJpbmcgTGFzdE5hbWU7DQorDQorICAgICAgICAgICAgcHVibGljIFBlcnNvbigpIHsgfQ0KKw0KKyAgICAgICAgICAgIHB1YmxpYyBQZXJzb24oc3RyaW5nIGZuLCBzdHJpbmcgbG4pDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBGaXJzdE5hbWUgPSBmbjsNCisgICAgICAgICAgICAgICAgTGFzdE5hbWUgPSBsbjsNCisgICAgICAgICAgICB9DQorICAgICAgICB9DQorICAgIH0NCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL0RlbW9TZXJ2aWNlLmh0bWwgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvRGVtb1NlcnZpY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmI3MzUzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL0RlbW9TZXJ2aWNlLmh0bWwKQEAgLTAsMCArMSw2MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4NCis8aHRtbD4NCisgICAgICAgIDxoZWFkPg0KKyAgICAgICAgICAgICAgICA8dGl0bGU+RG9qbyBFbGVtZW50IC8gSmF5cm9ja3MgU2VydmljZSBEZW1vbnN0cmF0aW9uPC90aXRsZT4NCisgICAgICAgICAgICAgICAgPG1ldGEgbmFtZT0iR0VORVJBVE9SIiBjb250ZW50PSJNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyAuTkVUIDcuMSI+DQorICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9UHJvZ0lkIGNvbnRlbnQ9VmlzdWFsU3R1ZGlvLkhUTUw+DQorICAgICAgICAgICAgICAgIDxtZXRhIG5hbWU9T3JpZ2luYXRvciBjb250ZW50PSJNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyAuTkVUIDcuMSI+DQorICAgICAgICAgICAgICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0iRGVtb1NlcnZpY2UuYXNoeD9wcm94eSZ2PTIiPjwvc2NyaXB0Pg0KKyAgICAgICAgICAgICAgICA8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiBzcmM9ImpzL2Rvam8vZG9qby5qcyI+PC9zY3JpcHQ+DQorICAgICAgICAgICAgICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPg0KKyAgICAgICAgICAgICAgICAgICAgZG9qby5yZXF1aXJlKCJkb2pvLmlvLioiKTsNCisgICAgICAgICAgICAgICAgICAgIGRvam8ucmVxdWlyZSgiZG9qby5ldmVudC4qIik7DQorICAgICAgICAgICAgICAgICAgICBkb2pvLnJlcXVpcmUoImRvam8uaHRtbC4qIik7DQorICAgICAgICAgICAgICAgICAgICBkb2pvLnJlcXVpcmUoImRvam8uanNvbiIpOw0KKw0KKyAgICAgICAgICAgICAgICAgICAgLy8gSW52b2tlcyBzZXJ2aWNlIG1ldGhvZA0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZG9qb0NoYW5uZWwoY2FsbCkNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgYmluZEFyZ3MgPSB7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogY2FsbC51cmwrJz9ycGMnLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24odHlwZSwgZGF0YSwgZXZ0KXthbGVydCgiZXJyb3IiKTt9LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICJQT1NUIiwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWltZXR5cGU6ICJ0ZXh0L2pzb24iLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU6IGNhbGwuY2FsbGJhY2ssDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RDb250ZW50OiAgZG9qby5qc29uLnNlcmlhbGl6ZShjYWxsLnJlcXVlc3QpDQorICAgICAgICAgICAgICAgICAgICAgICAgfTsNCisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVxID0gZG9qby5pby5iaW5kKGJpbmRBcmdzKTsNCisgICAgICAgICAgICAgICAgICAgICAgICBkb2pvLmV2ZW50DQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcTsNCisgICAgICAgICAgICAgICAgICAgIH0NCisNCisgICAgICAgICAgICAgICAgICAgIC8vIEZvcm1hdHMgb3V0cHV0IGludG8gYSBjb250cm9sDQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBzdHJpbmdfYXJyYXlfZWxlbWVudCh0eXBlLCBkYXRhLCBldnQpDQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGFyciA9IGRhdGEucmVzdWx0Ow0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0aGVEaXYgPSBkb2pvLmJ5SWQoJ3N0cmluZ19hcnJheScpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzZWxlY3QnKTsNCisgICAgICAgICAgICAgICAgICAgICAgICBmb3IodmFyIGk9MDsgaSA8IGFyci5sZW5ndGg7IGkrKykNCisgICAgICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC5vcHRpb25zW2ldID0gbmV3IE9wdGlvbihhcnJbaV0sIGFycltpXSk7DQorICAgICAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRoZURpdi5hcHBlbmRDaGlsZChzZWxlY3QpOw0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAgICAgICAgICAgLy8gV3JhcHMgY2FsbCB0byBSUEMgbWV0aG9kDQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBnZXRTdHJpbmdBcnJheSgpDQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAgICAgRGVtb1NlcnZpY2UucnBjLmdldFN0cmluZ0FycmF5KHN0cmluZ19hcnJheV9lbGVtZW50KS5jYWxsKGRvam9DaGFubmVsKTsNCisgICAgICAgICAgICAgICAgICAgIH0NCisNCisgICAgICAgICAgICAgICAgICAgIC8vIE9idGFpbnMgb3V0cHV0IG9uIHBhZ2UgbG9hZA0KKyAgICAgICAgICAgICAgICAgICAgZG9qby5ldmVudC5jb25uZWN0KHdpbmRvdywgIm9ubG9hZCIsIGdldFN0cmluZ0FycmF5KTsNCisgICAgICAgICAgICAgICAgPC9zY3JpcHQ+DQorICAgICAgICA8L2hlYWQ+DQorICAgIDxib2R5Pg0KKw0KKyAgICAgICAgPGgyPmdldFN0cmluZ0FycmF5IGFzIFNlbGVjdCBjb250cm9sPC9oMj4NCisgICAgICAgIDxkaXYgaWQ9InN0cmluZ19hcnJheSI+PC9kaXY+DQorICAgICAgICA8aHIgLz4NCisNCisgICAgPC9ib2R5Pg0KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvSGVsbG9Xb3JsZC5hc2h4IGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL0hlbGxvV29ybGQuYXNoeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDMzMmFiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL0hlbGxvV29ybGQuYXNoeApAQCAtMCwwICsxLDE2IEBACis8JUAgV2ViSGFuZGxlciBDbGFzcz0iSmF5cm9ja1dlYi5IZWxsb1dvcmxkIiAgTGFuZ3VhZ2U9IkMjIiAlPg0KKw0KK25hbWVzcGFjZSBKYXlyb2NrV2ViDQorew0KKyAgICB1c2luZyBKYXlyb2NrLkpzb25ScGM7DQorICAgIHVzaW5nIEpheXJvY2suSnNvblJwYy5XZWI7DQorDQorICAgIHB1YmxpYyBjbGFzcyBIZWxsb1dvcmxkIDogSnNvblJwY0hhbmRsZXINCisgICAgew0KKyAgICAgICAgWyBKc29uUnBjTWV0aG9kKCJncmVldGluZ3MiKSBdDQorICAgICAgICBwdWJsaWMgc3RyaW5nIEdyZWV0aW5ncygpDQorICAgICAgICB7DQorICAgICAgICAgICAgcmV0dXJuICJXZWxjb21lIHRvIEpheXJvY2shIjsNCisgICAgICAgIH0NCisgICAgfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvSGVsbG9Xb3JsZC5odG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL0hlbGxvV29ybGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmY2NTk0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL0hlbGxvV29ybGQuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIg0KKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+DQorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9ImVuIiB4bWw6bGFuZz0iZW4iPg0KKzxoZWFkPg0KKyAgICA8dGl0bGU+SGVsbG8gSmF5cm9jayBhbmQgRG9qbzwvdGl0bGU+DQorDQorICAgIDwhLS0gQmFzaWMgSmF5cm9jayAtLT4NCisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianMvanNvbi5qcyI+PC9zY3JpcHQ+DQorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImhlbGxvd29ybGQuYXNoeD9wcm94eSI+PC9zY3JpcHQ+DQorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCisgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpDQorICAgICAgICB7ICAgICAgIA0KKyAgICAgICAgICAgIHZhciBzID0gbmV3IEhlbGxvV29ybGQoKTsNCisgICAgICAgICAgICBhbGVydCgic3luYzoiICsgcy5ncmVldGluZ3MoKSk7DQorICAgICAgICAgICAgcy5ncmVldGluZ3MoZnVuY3Rpb24ocmVzcG9uc2UpIHsNCisgICAgICAgICAgICAgICAgYWxlcnQoImFzeW5jOiIgKyByZXNwb25zZS5yZXN1bHQpDQorICAgICAgICAgICAgfSk7DQorICAgICAgICB9DQorICAgIDwvc2NyaXB0Pg0KKyAgICA8IS0tIEJhc2ljIERvam8gLS0+DQorICAgIDxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHNyYz0ianMvZG9qby9kb2pvLmpzIj48L3NjcmlwdD4NCisgICAgPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCI+DQorICAgICAgICBkb2pvLnJlcXVpcmUoImRvam8uZXZlbnQuKiIpOw0KKwkgICAgZG9qby5yZXF1aXJlKCJkb2pvLndpZGdldC4qIik7DQorCSAgICBkb2pvLnJlcXVpcmUoImRvam8ud2lkZ2V0LkJ1dHRvbiIpOw0KKw0KKyAgICAgICAgZnVuY3Rpb24gaGVsbG9QcmVzc2VkKCkNCisgICAgICAgIHsNCisgICAgICAgICAgICBhbGVydCgnWW91IHByZXNzZWQgdGhlIGJ1dHRvbicpOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgZnVuY3Rpb24gaGVsbG9Jbml0KCkNCisgICAgICAgIHsNCisgICAgICAgICAgICB2YXIgaGVsbG9CdXR0b24gPSBkb2pvLndpZGdldC5ieUlkKCdoZWxsb0J1dHRvbicpOw0KKyAgICAgICAgICAgIGRvam8uZXZlbnQuY29ubmVjdChoZWxsb0J1dHRvbiwgJ29uQ2xpY2snLCAnaGVsbG9QcmVzc2VkJykNCisgICAgICAgICAgICANCisgICAgICAgIH0gICAgICAgIA0KKyAgICAgICAgZG9qby5hZGRPbkxvYWQoaGVsbG9Jbml0KTsgICAgICAgIA0KKyAgICA8L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwPlRoaXMgcGFnZSBjb21iaW5lcyB0aGUgSmF5cm9jayBhbmQgRG9qbyBIZWxsbyBXb3JsZCBleGFtcGxlcy48L3A+DQorICAgIA0KKyAgICA8cD48YnV0dG9uIGlkPSJoZWxsb0J1dHRvbiIgY2xhc3M9ImRvam8tQnV0dG9uIj5IZWxsbyBXb3JsZCE8L2J1dHRvbj48L3A+DQorICAgIA0KKzwvYm9keT4NCis8L2h0bWw+DQorDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL09iamVjdHMueG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL09iamVjdHMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5OWY0ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvT2JqZWN0cy54bWwKQEAgLTAsMCArMSwxMSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+IA0KKzxvYmplY3RzIHhtbG5zPSJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQiIA0KKwl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiANCisJeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQgaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0L3hzZC9zcHJpbmctb2JqZWN0cy54c2QiPg0KKw0KKwk8aW1wb3J0IHJlc291cmNlPSJSZXNvdXJjZXMvQXBwQmFzZS54bWwiLz4NCisJPGltcG9ydCByZXNvdXJjZT0iUmVzb3VyY2VzL0FwcENvbmZpZy54bWwiLz4NCisJPGltcG9ydCByZXNvdXJjZT0iUmVzb3VyY2VzL0FwcEZpZWxkcy54bWwiLz4NCisJPGltcG9ydCByZXNvdXJjZT0iUmVzb3VyY2VzL0NhdGFsb2cueG1sIi8+DQorCQ0KKzwvb2JqZWN0cz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvUGhvbmVCb29rLmFzaHggYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvUGhvbmVCb29rLmFzaHgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY2YjljYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1dlYi9QaG9uZUJvb2suYXNoeApAQCAtMCwwICsxLDEwMyBAQAorPCVAIFdlYkhhbmRsZXIgQ2xhc3M9IkpheXJvY2tXZWIuUGhvbmVCb29rIiAgTGFuZ3VhZ2U9IkMjIiAlPg0KKw0KK3VzaW5nIFN5c3RlbTsNCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7DQordXNpbmcgU3lzdGVtLkNvbmZpZ3VyYXRpb247DQordXNpbmcgQWdpbGl0eS5FeHRyYXMuU3ByaW5nOw0KK3VzaW5nIEpheXJvY2suSnNvblJwYzsNCit1c2luZyBKYXlyb2NrLkpzb25ScGMuV2ViOw0KK3VzaW5nIE5leHVzLkNvcmU7DQordXNpbmcgTmV4dXMuQ29yZS5IZWxwZXJzOw0KK3VzaW5nIFBob25lQm9vay5Db3JlOw0KK3VzaW5nIFNwcmluZy5Db250ZXh0Ow0KKw0KK25hbWVzcGFjZSBKYXlyb2NrV2ViDQorew0KKyAgICBwdWJsaWMgY2xhc3MgUGhvbmVCb29rIDogSnNvblJwY0hhbmRsZXINCisgICAgew0KKw0KKyAgICAgICAgcHJpdmF0ZSBJUmVxdWVzdENhdGFsb2cgY2F0YWxvZyA9IG51bGw7DQorDQorICAgICAgICBwcml2YXRlIElSZXF1ZXN0Q2F0YWxvZyBHZXRDYXRhbG9nKCkNCisgICAgICAgIHsNCisgICAgICAgICAgICBpZiAoY2F0YWxvZyA9PSBudWxsKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgSUFwcGxpY2F0aW9uQ29udGV4dCBmYWN0b3J5ID0gT2JqZWN0cy5GYWN0b3J5KCk7DQorICAgICAgICAgICAgICAgIGNhdGFsb2cgPSBmYWN0b3J5LkdldE9iamVjdChBcHAuQ0FUQUxPR19LRVkpIGFzIElSZXF1ZXN0Q2F0YWxvZzsNCisgICAgICAgICAgICAgICAgaWYgKGNhdGFsb2cgPT0gbnVsbCkgDQorICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29uZmlndXJhdGlvbkVycm9yc0V4Y2VwdGlvbigiUGhvbmVCb29rOiBHZXRDYXRhbG9nKCk9PW51bGwiKTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgcmV0dXJuIGNhdGFsb2c7DQorICAgICAgICB9DQorICAgICAgICANCisgICAgICAgIHByaXZhdGUgUmVxdWVzdENvbnRleHQgRXhlY3V0ZShzdHJpbmcgY29tbWFuZCkNCisgICAgICAgIHsNCisgICAgICAgICAgICByZXR1cm4gKFJlcXVlc3RDb250ZXh0KSBHZXRDYXRhbG9nKCkuRXhlY3V0ZVJlcXVlc3QoY29tbWFuZCk7ICAgICAgICAgICAgDQorICAgICAgICB9DQorICAgICAgICANCisgICAgICAgIFtKc29uUnBjTWV0aG9kKEFwcC5MQVNUX05BTUVfTElTVCwgSWRlbXBvdGVudCA9IHRydWUpXQ0KKyAgICAgICAgW0pzb25ScGNIZWxwKCJSZXR1cm5zIExhc3QgTmFtZSBMaXN0IGFzIGFuIGFycmF5LiIpXQ0KKyAgICAgICAgcHVibGljIHN0cmluZ1tdIGxhc3RfbmFtZV9saXN0KCkNCisgICAgICAgIHsgICAgICAgICAgICANCisgICAgICAgICAgICBSZXF1ZXN0Q29udGV4dCBjb250ZXh0ID0gRXhlY3V0ZShBcHAuTEFTVF9OQU1FX0xJU1QpOw0KKyAgICAgICAgICAgIEtleVZhbHVlTGlzdCBsaXN0ID0gY29udGV4dC5PdXRjb21lIGFzIEtleVZhbHVlTGlzdDsNCisgICAgICAgICAgICBpZiAobGlzdCA9PSBudWxsKSByZXR1cm4gbnVsbDsgLy8gRklYTUU6IEJldHRlciBlcnJvciBoYW5kbGluZw0KKyAgICAgICAgICAgIA0KKyAgICAgICAgICAgIEFycmF5TGlzdCBuYW1lcyA9IG5ldyBBcnJheUxpc3QobGlzdC5Db3VudCk7DQorICAgICAgICAgICAgZm9yZWFjaCAoS2V5VmFsdWUgayBpbiBsaXN0KQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgbmFtZXMuQWRkKGsuVmFsdWUpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICByZXR1cm4gKHN0cmluZ1tdKSBuYW1lcy5Ub0FycmF5KHR5cGVvZiAoU3RyaW5nKSk7DQorICAgICAgICB9DQorDQorICAgICAgICBbSnNvblJwY01ldGhvZChBcHAuRU5UUllfTElTVCwgSWRlbXBvdGVudCA9IHRydWUpXQ0KKyAgICAgICAgW0pzb25ScGNIZWxwKCJSZXR1cm5zIHRoZSBjb21wbGV0ZSBkaXJlY3RvcnkgYXMgYW4gYXJyYXkgb2YgZm9ybWF0dGVkIElEaWN0aW9uYXJ5IG9iamVjdHMuIildDQorICAgICAgICBwdWJsaWMgQXBwRW50cnlMaXN0IGVudHJ5X2xpc3QoKQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIElWaWV3SGVscGVyIGhlbHBlciA9IEdldENhdGFsb2coKS5HZXRIZWxwZXJGb3IoQXBwLkVOVFJZX0xJU1QpOw0KKyAgICAgICAgICAgIGhlbHBlci5FeGVjdXRlKCk7DQorICAgICAgICAgICAgLy8gaWYgaGVscGVyLklzTm9taW5hbCAuLi4gLy8gRklYTUU6IEJldHRlciBlcnJvciBoYW5kbGluZw0KKyAgICAgICAgICAgIEFwcEVudHJ5TGlzdCBsaXN0ID0gaGVscGVyLk91dGNvbWUgYXMgQXBwRW50cnlMaXN0Ow0KKyAgICAgICAgICAgIHJldHVybiBsaXN0Ow0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgW0pzb25ScGNNZXRob2QoQXBwLkVOVFJZLCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbSnNvblJwY0hlbHAoIlJldHVybnMgYW4gZW50cnkgYnkga2V5LiIpXQ0KKyAgICAgICAgcHVibGljIEFwcEVudHJ5IGVudHJ5KHN0cmluZyBrZXkpDQorICAgICAgICB7DQorICAgICAgICAgICAgSVZpZXdIZWxwZXIgaGVscGVyID0gR2V0Q2F0YWxvZygpLkdldEhlbHBlckZvcihBcHAuRU5UUlkpOw0KKyAgICAgICAgICAgIGhlbHBlci5Dcml0ZXJpYVtBcHAuRU5UUllfS0VZXSA9IGtleTsNCisgICAgICAgICAgICBoZWxwZXIuRXhlY3V0ZSgpOw0KKyAgICAgICAgICAgIC8vIGlmIGhlbHBlci5Jc05vbWluYWwgLi4uIC8vIEZJWE1FOiBCZXR0ZXIgZXJyb3IgaGFuZGxpbmcNCisgICAgICAgICAgICBBcHBFbnRyeSBlbnRyeSA9IG5ldyBBcHBFbnRyeShoZWxwZXIuQ3JpdGVyaWEpOw0KKyAgICAgICAgICAgIHJldHVybiBlbnRyeTsNCisgICAgICAgIH0NCisNCisgICAgICAgIFtKc29uUnBjTWV0aG9kKEFwcC5FTlRSWV9TQVZFLCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbSnNvblJwY0hlbHAoIlNhdmVzIHRoZSBlbnRyeSwgaW5zZXJ0IG9yIHVwZGF0aW5nIGFzIGFwcHJvcHJpYXRlLiIpXQ0KKyAgICAgICAgcHVibGljIEFwcEVudHJ5IGVudHJ5X3NhdmUoSURpY3Rpb25hcnkgaW5wdXQpDQorICAgICAgICB7DQorICAgICAgICAgICAgSVZpZXdIZWxwZXIgaGVscGVyID0gR2V0Q2F0YWxvZygpLkdldEhlbHBlckZvcihBcHAuRU5UUllfU0FWRSk7DQorICAgICAgICAgICAgaGVscGVyLlJlYWQoaW5wdXQsdHJ1ZSk7DQorICAgICAgICAgICAgaGVscGVyLkV4ZWN1dGUoKTsNCisgICAgICAgICAgICAvLyBpZiBoZWxwZXIuSXNOb21pbmFsIC4uLiAvLyBGSVhNRTogQmV0dGVyIGVycm9yIGhhbmRsaW5nDQorICAgICAgICAgICAgQXBwRW50cnkgZW50cnkgPSBuZXcgQXBwRW50cnkoaGVscGVyLkNyaXRlcmlhKTsNCisgICAgICAgICAgICByZXR1cm4gZW50cnk7DQorICAgICAgICB9DQorDQorICAgICAgICBbSnNvblJwY01ldGhvZChBcHAuRU5UUllfREVMRVRFLCBJZGVtcG90ZW50ID0gdHJ1ZSldDQorICAgICAgICBbSnNvblJwY0hlbHAoIkRlbGV0ZXMgYW4gZW50cnkgYnkga2V5LiIpXQ0KKyAgICAgICAgcHVibGljIEFwcEVudHJ5IGVudHJ5X2RlbGV0ZShzdHJpbmcga2V5KQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIElWaWV3SGVscGVyIGhlbHBlciA9IEdldENhdGFsb2coKS5HZXRIZWxwZXJGb3IoQXBwLkVOVFJZX0RFTEVURSk7DQorICAgICAgICAgICAgaGVscGVyLkNyaXRlcmlhW0FwcC5FTlRSWV9LRVldID0ga2V5Ow0KKyAgICAgICAgICAgIGhlbHBlci5FeGVjdXRlKCk7DQorICAgICAgICAgICAgLy8gaWYgaGVscGVyLklzTm9taW5hbCAuLi4gLy8gRklYTUU6IEJldHRlciBlcnJvciBoYW5kbGluZw0KKyAgICAgICAgICAgIEFwcEVudHJ5IGVudHJ5ID0gbmV3IEFwcEVudHJ5KGhlbHBlci5Dcml0ZXJpYSk7DQorICAgICAgICAgICAgcmV0dXJuIGVudHJ5Ow0KKyAgICAgICAgfQ0KKw0KKyAgICANCisgICAgfQ0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvUGhvbmVCb29rLmh0bWwgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvUGhvbmVCb29rLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc5MzhjOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1dlYi9QaG9uZUJvb2suaHRtbApAQCAtMCwwICsxLDMzOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4NCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+DQorICAgICAgICA8aGVhZD4NCisgICAgICAgICAgICAgICAgPHRpdGxlPlBob25lQm9vazwvdGl0bGU+DQorICAgICAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlBob25lQm9vay5hc2h4P3Byb3h5JnY9MiI+PC9zY3JpcHQ+ICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcy9kb2pvL2Rvam8uanMiPjwvc2NyaXB0Pg0KKyAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQorICAgICAgICAgICAgICAgIAlkb2pvLnJlcXVpcmUoImRvam8ud2lkZ2V0LlRhYkNvbnRhaW5lciIpOyAgICAgICAgICAgICAgICANCisJICAgICAgICAgICAgICAgIGRvam8ucmVxdWlyZSgiZG9qby53aWRnZXQuQ29udGVudFBhbmUiKTsNCisJICAgICAgICAgICAgICAgIGRvam8ucmVxdWlyZSgiZG9qby53aWRnZXQuTGF5b3V0Q29udGFpbmVyIik7DQorICAgICAgICAgICAgICAgICAgICBkb2pvLnJlcXVpcmUoImRvam8uaW8uKiIpOw0KKyAgICAgICAgICAgICAgICAgICAgZG9qby5yZXF1aXJlKCJkb2pvLmV2ZW50LioiKTsNCisgICAgICAgICAgICAgICAgICAgIGRvam8ucmVxdWlyZSgiZG9qby5odG1sLioiKTsNCisgICAgICAgICAgICAgICAgICAgIGRvam8ucmVxdWlyZSgiZG9qby5qc29uIik7DQorICAgICAgICAgICAgCQlkb2pvLnJlcXVpcmUoImRvam8ud2lkZ2V0LkZpbHRlcmluZ1RhYmxlIik7DQorICAgICAgICAgICAgCQlkb2pvLmhvc3RlbnYud3JpdGVJbmNsdWRlcygpOw0KKw0KKyAgICAgICAgICAgICAgICAgICAgLyogY2FsbCBzZXJ2ZXIgKi8NCisgICAgICAgICAgICAJCQ0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gc2VydmVyKGNhbGwpDQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGJpbmRBcmdzID0gew0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGNhbGwudXJsKyc/cnBjJywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKHR5cGUsIGRhdGEsIGV2dCl7YWxlcnQoIkVycm9yIENvbW11bmljYXRpbmcgd2l0aCBTZXJ2ZXI6ICIgKyBkYXRhLnJlc3VsdCk7fSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAiUE9TVCIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbWV0eXBlOiAidGV4dC9qc29uIiwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlOiBjYWxsLmNhbGxiYWNrLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0Q29udGVudDogZG9qby5qc29uLnNlcmlhbGl6ZShjYWxsLnJlcXVlc3QpDQorICAgICAgICAgICAgICAgICAgICAgICAgfTsNCisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVxID0gZG9qby5pby5iaW5kKGJpbmRBcmdzKTsNCisgICAgICAgICAgICAgICAgICAgICAgICBkb2pvLmV2ZW50DQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcTsNCisgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAkJDQorICAgICAgICAgICAgCQl2YXIgY29udGFpbmVyX2lkID0gImNvbnRhaW5lciI7DQorDQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiB2aWV3X3NlbGVjdChpZCkgew0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciB3ID0gZG9qby53aWRnZXQuYnlJZChjb250YWluZXJfaWQpOyAgDQorICAgICAgICAgICAJICAgICAgICAgICAgdy5zZWxlY3RDaGlsZChpZCk7ICAgICAgICAgICAgICAgICAgICAJDQorICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgIC8qIGxpc3RlciAqLw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAJCXZhciBsaXN0ZXJfaWQgPSAibGlzdGVyIjsNCisgICAgICAgICAgICAJCXZhciBlbnRyeV9saXN0X2lkID0gImVudHJ5X2xpc3QiOw0KKyAgICAgICAgICAgIAkJDQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBsaXN0ZXJfc2VsZWN0KCkgew0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdfc2VsZWN0KGxpc3Rlcl9pZCk7IA0KKyAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgIAkJDQorICAgICAgICAgICAgCQkNCisgICAgICAgICAgICAJCWZ1bmN0aW9uIGVudHJ5X2xpc3QoKSB7DQorICAgICAgICAgICAgCQkgICAgcmV0dXJuIGRvam8ud2lkZ2V0LmJ5SWQoZW50cnlfbGlzdF9pZCk7DQorICAgICAgICAgICAgCQl9DQorICAgICAgICAgICAgCQkNCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVudHJ5X2xpc3RfcmVzdWx0KHR5cGUsIGRhdGEsIGV2dCkNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeV9saXN0KCkuc3RvcmUuc2V0RGF0YShkYXRhLnJlc3VsdCk7DQorICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVudHJ5X2xpc3RfbG9hZCgpDQorICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICBQaG9uZUJvb2sucnBjLmVudHJ5X2xpc3QoZW50cnlfbGlzdF9yZXN1bHQpLmNhbGwoc2VydmVyKTsNCisgICAgICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICAgICAgICAgIGRvam8uYWRkT25Mb2FkKGVudHJ5X2xpc3RfbG9hZCk7DQorICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVudHJ5X2xpc3Rfc2VsZWN0X2VkaXQoZXZ0KSB7ICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5X2VkaXQoZW50cnlfbGlzdCgpLmdldFNlbGVjdGVkRGF0YSgpLmVudHJ5X2tleSk7DQorICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZW50cnlfbGlzdF9zZWxlY3RfZGVsZXRlKGV2dCkgeyAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeV9kZWxldGUoZW50cnlfbGlzdCgpLmdldFNlbGVjdGVkRGF0YSgpLmVudHJ5X2tleSk7DQorICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgIA0KKw0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZW50cnlfbGlzdF9zZWxlY3QoKSB7DQorICAgICAgICAgICAgICAgICAgICAgICAgZG9qby5ldmVudC5jb25uZWN0KGVudHJ5X2xpc3QoKSwgIm9uU2VsZWN0IiwgZW50cnlfbGlzdF9zZWxlY3RfZWRpdCk7DQorICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgICAgICBkb2pvLmFkZE9uTG9hZChlbnRyeV9saXN0X3NlbGVjdCk7DQorICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgIC8qIGxpc3RlciBmaWx0ZXJzICovDQorICAgICAgICAgICAgICAgICAgICANCisgICAgCQkgICAgICAgIGZ1bmN0aW9uIGRhdGVGaWx0ZXIoaGlyZWQpIHsNCisJCQkgICAgICAgICAgICByZXR1cm4gKGhpcmVkID09ICc1LzI5LzE5ODcnIHx8IGhpcmVkID09ICcxMS8xOC8xOTg0Jyk7DQorCQkgICAgICAgICAgICB9DQorCQkgICAgICAgICAgICBmdW5jdGlvbiBhcHBseURhdGUoaWQpew0KKwkJCSAgICAgICAgICAgIGRvam8ud2lkZ2V0LmJ5SWQoaWQpLnNldEZpbHRlcigiaGlyZWQiLCBkYXRlRmlsdGVyKTsNCisJCSAgICAgICAgICAgIH0NCisJCQkJDQorCQkgICAgICAgICAgICBmdW5jdGlvbiBuYW1lRmlsdGVyKGxhc3RfbmFtZSl7DQorCQkJICAgICAgICAgICAgcmV0dXJuIChsYXN0X25hbWUuY2hhckF0KDApID49ICdNJyAmJiBsYXN0X25hbWUuY2hhckF0KDApIDw9ICdaJyk7DQorCQkgICAgICAgICAgICB9DQorCQkgICAgICAgICAgICBmdW5jdGlvbiBhcHBseU5hbWUoaWQpew0KKwkJCSAgICAgICAgICAgIGRvam8ud2lkZ2V0LmJ5SWQoaWQpLnNldEZpbHRlcigibGFzdF9uYW1lIiwgbmFtZUZpbHRlcik7DQorCSAgICAgICAgICAgIAl9DQorCQkNCisJCSAgICAgICAgICAgIGZ1bmN0aW9uIGNsZWFyRmlsdGVycyhpZCl7DQorCQkJICAgICAgICAgICAgZG9qby53aWRnZXQuYnlJZChpZCkuY2xlYXJGaWx0ZXJzKCk7DQorCQkgICAgICAgICAgICB9CQkgICAgICAgICAgICANCisJCSAgICAgICAgICAgIGZ1bmN0aW9uIHJlbG9hZERhdGEoaWQpew0KKwkJCSAgICAgICAgICAgIGRvam8ud2lkZ2V0LmJ5SWQoaWQpLnN0b3JlLmNsZWFyRGF0YSgpOw0KKwkJCSAgICAgICAgICAgIGVudHJ5X2xpc3RfbG9hZCgpOw0KKwkJCSAgICAgICAgfQ0KKwkJCSAgICAgICAgCQkJICAgICAgICANCisgICAgICAgICAgICAgICAgICAgIC8qIGVkaXRvciAqLw0KKw0KKyAgICAgICAgICAgIAkJdmFyIGVkaXRvcl9pZCA9ICJlZGl0b3IiOw0KKw0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZWRpdG9yX3NlbGVjdCgpIHsNCisgICAgICAgICAgICAgICAgICAgICAgICB2aWV3X3NlbGVjdChlZGl0b3JfaWQpOyANCisgICAgICAgICAgICAgICAgICAgIH0NCisNCisgICAgICAgICAgICAJCXZhciBlbnRyeV9mb3JtX2lkID0gImVudHJ5X2Zvcm0iOw0KKw0KKyAgICAgICAgICAgIAkJZnVuY3Rpb24gZW50cnlfZm9ybSgpIHsNCisgICAgICAgICAgICAJCSAgICByZXR1cm4gZG9qby53aWRnZXQuYnlJZChlbnRyeV9mb3JtX2lkKTsNCisgICAgICAgICAgICAJICAgIH0NCisgICAgICAgICAgICAJCQ0KKyAgICAgICAgICAgIAkJdmFyIGRwSGlyZWRfaWQgPSAiZHBIaXJlZCI7DQorICAgICAgICAgICAgCQkgICAgICAgICAgICAJCQ0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gc2V0SGlyZWQoaGlyZWQpIHsgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkcEhpcmVkID0gZG9qby53aWRnZXQuYnlJZChkcEhpcmVkX2lkKTsNCisgICAgICAgICAgICAgICAgICAgIAlkcEhpcmVkLnNldERhdGUoaGlyZWQpOw0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZW50cnlfZWRpdF9yZXN1bHQodHlwZSwgZGF0YSwgZXZ0KSANCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgIAllbnRyeV9mb3JtKCkuc2V0VmFsdWVzKGRhdGEucmVzdWx0KTsgICANCisgICAgICAgICAgICAgICAgICAgIAl2YXIgcGFydCA9IG5ldyBBcnJheSgpOw0KKyAgICAgICAgICAgICAgICAgICAgCXBhcnQgPSBkYXRhLnJlc3VsdC5oaXJlZC5zcGxpdCgnLycsMyk7IC8vIG1tL2RkL3l5eXkNCisgICAgICAgICAgICAgICAgICAgIAl2YXIgeXl5eSA9IHBhcnRbMl07DQorICAgICAgICAgICAgICAgICAgICAJdmFyIG1tID0gcGFydFswXTsNCisgICAgICAgICAgICAgICAgICAgIAl2YXIgZGQgPSBwYXJ0WzFdOw0KKyAgICAgICAgICAgICAgICAgICAgCWlmIChtbS5sZW5ndGg9PTEpIG1tID0gbmV3IFN0cmluZygpLmNvbmNhdCgnMCcsbW0pOw0KKyAgICAgICAgICAgICAgICAgICAgCWlmIChkZC5sZW5ndGg9PTEpIGRkID0gbmV3IFN0cmluZygpLmNvbmNhdCgnMCcsZGQpOw0KKyAgICAgICAgICAgICAgICAgICAgCXZhciBoaXJlZCA9IG5ldyBTdHJpbmcoKS5jb25jYXQoIHl5eXksJy0nLG1tLCctJyxkZCApOw0KKyAgICAgICAgICAgICAgICAgICAgCXNldEhpcmVkKGhpcmVkKTsgDQorICAgICAgICAgICAgICAgICAgICAJDQorICAgICAgICAgICAgICAgICAgICAJZWRpdG9yX3NlbGVjdCgpOw0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZW50cnlfZWRpdChlbnRyeV9rZXkpIA0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgICAgIFBob25lQm9vay5ycGMuZW50cnkoZW50cnlfa2V5LGVudHJ5X2VkaXRfcmVzdWx0KS5jYWxsKHNlcnZlcik7DQorICAgICAgICAgICAgICAgICAgICB9DQorDQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBlbnRyeV9zYXZlX3Jlc3VsdCgpIHsNCisgICAgICAgICAgICAgICAgICAgIAlyZWxvYWREYXRhKGVudHJ5X2xpc3RfaWQpOw0KKyAgICAgICAgICAgICAgICAgICAgCWVudHJ5X3Jlc2V0KCk7DQorICAgICAgICAgICAgICAgICAgICAJbGlzdGVyX3NlbGVjdCgpOw0KKyAgICAgICAgICAgICAgICAgICAgCQ0KKyAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBlbnRyeV9zYXZlX3VwZGF0ZV9yZXN1bHQodHlwZSwgZGF0YSwgZXZ0KQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgCWFsZXJ0ICggIkVkaXRlZDogIiArIGRhdGEucmVzdWx0LnVzZXJfbmFtZSArICIgKCIgKyBkYXRhLnJlc3VsdC5lbnRyeV9rZXkgKyAiKSIgKTsNCisgICAgICAgICAgICAgICAgICAgIAllbnRyeV9zYXZlX3Jlc3VsdCgpOw0KKyAgICAgICAgICAgICAgICAgICAgfSAgICANCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVudHJ5X3NhdmVfaW5zZXJ0X3Jlc3VsdCh0eXBlLCBkYXRhLCBldnQpDQorICAgICAgICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICAJYWxlcnQgKCAiQWRkZWQ6ICIgKyBkYXRhLnJlc3VsdC51c2VyX25hbWUgKyAiICgiICsgZGF0YS5yZXN1bHQuZW50cnlfa2V5ICsgIikiICk7DQorICAgICAgICAgICAgICAgICAgICAJZW50cnlfc2F2ZV9yZXN1bHQoKTsNCisgICAgICAgICAgICAgICAgICAgIH0gICAgDQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBlbnRyeV9zYXZlKCkNCisgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgCXZhciB2YWx1ZXMgPSBlbnRyeV9mb3JtKCkuZ2V0VmFsdWVzKCk7ICAgICAgICANCisgICAgICAgICAgICAgICAgICAgIAlpZiAodmFsdWVzLmVudHJ5X2tleSkgICAJDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBob25lQm9vay5ycGMuZW50cnlfc2F2ZSh2YWx1ZXMsZW50cnlfc2F2ZV91cGRhdGVfcmVzdWx0KS5jYWxsKHNlcnZlcik7DQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBob25lQm9vay5ycGMuZW50cnlfc2F2ZSh2YWx1ZXMsZW50cnlfc2F2ZV9pbnNlcnRfcmVzdWx0KS5jYWxsKHNlcnZlcik7DQorICAgICAgICAgICAgICAgICAgICB9ICAgICANCisgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZW50cnlfcXVpdCgpIHsNCisgICAgICAgICAgICAgICAgICAgIAllbnRyeV9yZXNldCgpOw0KKyAgICAgICAgICAgICAgICAgICAgCWxpc3Rlcl9zZWxlY3QoKTsNCisgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gZW50cnlfcmVzZXQoKSB7DQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlcyA9IGVudHJ5X2Zvcm0oKS5nZXRWYWx1ZXMoKTsgDQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmZpcnN0X25hbWUgPSAiIjsNCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMubGFzdF9uYW1lID0gIiI7DQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmV4dGVuc2lvbiA9ICIiOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcy51c2VyX25hbWUgPSAiIjsNCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuaG91cnMgPSAiMzcuNSI7DQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmVudHJ5X2tleSA9ICIiOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5X2Zvcm0oKS5zZXRWYWx1ZXModmFsdWVzKTsNCisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdG9kYXkgPSBuZXcgRGF0ZSgpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIHNldEhpcmVkKHRvZGF5KTsNCisgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBlbnRyeV9hZGQoKSANCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeV9yZXNldCgpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvcl9zZWxlY3QoKTsNCisgICAgICAgICAgICAgICAgICAgIH0NCisNCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGVudHJ5X2RlbGV0ZV9yZXN1bHQodHlwZSwgZGF0YSwgZXZ0KQ0KKyAgICAgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgICAgCWFsZXJ0ICggIkRlbGV0ZWQ6ICgiICsgZGF0YS5yZXN1bHQuZW50cnlfa2V5ICsgIikiICk7DQorICAgICAgICAgICAgICAgICAgICAJZW50cnlfc2F2ZV9yZXN1bHQoKTsNCisgICAgICAgICAgICAgICAgICAgIH0gICAgDQorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBlbnRyeV9kZWxldGUoZW50cnlfa2V5KSANCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgIAlpZiAoZW50cnlfa2V5KSB7ICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvayA9IGNvbmZpcm0gKCAiRGVsZXRlIGVudHJ5PyIgKTsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9rKSANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBob25lQm9vay5ycGMuZW50cnlfZGVsZXRlKGVudHJ5X2tleSxlbnRyeV9kZWxldGVfcmVzdWx0KS5jYWxsKHNlcnZlcik7DQorICAgICAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAgICAgICAgICA8L3NjcmlwdD4NCisgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQorICAgICAgICAgICAgICAgIGJvZHkgew0KKwkgICAgICAgICAgICAgICAgZm9udC1mYW1pbHkgOiBzYW5zLXNlcmlmOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAgIC5kb2pvVGFiUGFuZVdyYXBwZXIgew0KKyAgICAgICAgICAgICAgICAgICAgcGFkZGluZyA6IDEwcHggMTBweCAxMHB4IDEwcHg7DQorICAgICAgICAgICAgICAgIH0NCisNCisgICAgICAgICAgICAgICAgPC9zdHlsZT4NCisgICAgICAgICAgICAgICAgDQorCSAgICAgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQorCQkgICAgICAgIC8qKioNCisJCQkgICAgICAgIFRoZSBmb2xsb3dpbmcgaXMganVzdCBhbiBleGFtcGxlIG9mIGhvdyB0byB1c2UgdGhlIHRhYmxlLg0KKwkJCSAgICAgICAgWW91IGNhbiBvdmVycmlkZSBhbnkgY2xhc3MgbmFtZXMgdG8gYmUgdXNlZCBpZiB5b3Ugd2lzaC4NCisJCSAgICAgICAgKioqLw0KKwkJICAgICAgICB0YWJsZSB7DQorCQkJICAgICAgICBmb250LWZhbWlseTpMdWNpZGEgR3JhbmRlLCBWZXJkYW5hOw0KKwkJCSAgICAgICAgZm9udC1zaXplOjAuOGVtOw0KKwkJCSAgICAgICAgd2lkdGg6MTAwJTsNCisJCQkgICAgICAgIGJvcmRlcjoxcHggc29saWQgI2NjYzsNCisJCQkgICAgICAgIGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsNCisJCQkgICAgICAgIGN1cnNvcjpkZWZhdWx0Ow0KKwkJICAgICAgICB9DQorCQkgICAgICAgIHRhYmxlIHRkLA0KKwkJICAgICAgICB0YWJsZSB0aHsNCisJCQkgICAgICAgIHBhZGRpbmc6MnB4Ow0KKwkJCSAgICAgICAgZm9udC13ZWlnaHQ6bm9ybWFsOw0KKwkJICAgICAgICB9DQorCQkgICAgICAgIHRhYmxlIHRoZWFkIHRkLCB0YWJsZSB0aGVhZCB0aCB7DQorCQkJICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOnVybChpbWFnZXMvZnQtaGVhZC5naWYpOw0KKwkJCSAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0Ow0KKwkJCSAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjp0b3AgcmlnaHQ7DQorCQkgICAgICAgIH0NCisJCSAgICAgICAgdGFibGUgdGhlYWQgdGQuc2VsZWN0ZWRVcCwgdGFibGUgdGhlYWQgdGguc2VsZWN0ZWRVcCB7DQorCQkJICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOnVybChpbWFnZXMvZnQtaGVhZHVwLmdpZik7DQorCQkgICAgICAgIH0NCisJCSAgICAgICAgdGFibGUgdGhlYWQgdGQuc2VsZWN0ZWREb3duLCB0YWJsZSB0aGVhZCB0aC5zZWxlY3RlZERvd24gew0KKwkJCSAgICAgICAgYmFja2dyb3VuZC1pbWFnZTp1cmwoaW1hZ2VzL2Z0LWhlYWRkb3duLmdpZik7DQorCQkgICAgICAgIH0NCisJCQkNCisJCSAgICAgICAgdGFibGUgdGJvZHkgdHIgdGR7DQorCQkJICAgICAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkOw0KKwkJICAgICAgICB9DQorCQkgICAgICAgIHRhYmxlIHRib2R5IHRyLmFsdCB0ZHsNCisJCQkgICAgICAgIGJhY2tncm91bmQ6ICNlM2VkZmE7DQorCQkgICAgICAgIH0NCisJCSAgICAgICAgdGFibGUgdGJvZHkgdHIuc2VsZWN0ZWQgdGR7DQorCQkJICAgICAgIGJhY2tncm91bmQ6IHllbGxvdzsNCisJCSAgICAgICAgfQ0KKwkJICAgICAgICB0YWJsZSB0Ym9keSB0cjpob3ZlciB0ZHsNCisJCQkgICAgICAgIGJhY2tncm91bmQ6ICNhNmMyZTc7DQorCQkgICAgICAgIH0NCisJCSAgICAgICAgdGFibGUgdGJvZHkgdHIuc2VsZWN0ZWQ6aG92ZXIgdGR7DQorCQkJICAgICAgICBiYWNrZ3JvdW5kOiNmZjk7DQorCQkgICAgICAgIH0NCisNCisJCSAgICAgICAgI2lucHV0QXJlYXsNCisJCQkgICAgICAgIG1hcmdpbjoxZW0gMDsNCisJCQkgICAgICAgIHBhZGRpbmc6MWVtOw0KKwkJCSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjojZWVmOw0KKwkJICAgICAgICB9DQorCQkgICAgICAgICN1cGRhdGVUZXN0SW5wdXR7DQorCQkJICAgICAgICBib3JkZXI6MXB4IHNvbGlkICNjY2M7DQorCQkJICAgICAgICB3aWR0aDoxMDAlOw0KKwkJCSAgICAgICAgaGVpZ2h0OjgwcHg7DQorCQkJICAgICAgICBmb250LWZhbWlseTpzZXJpZjsNCisJCQkgICAgICAgIGZvbnQtc2l6ZTowLjllbTsNCisJCQkgICAgICAgIG92ZXJmbG93OmF1dG87DQorCQkgICAgICAgIH0NCisgICAgCTwvc3R5bGU+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICA8L2hlYWQ+DQorICAgIDxib2R5PiAgIA0KKyAgICANCisgICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lciIgZG9qb1R5cGU9IlRhYkNvbnRhaW5lciIgc3R5bGU9IndpZHRoOjEwMCU7IGhlaWdodDo3MCU7IiBzZWxlY3RlZENoaWxkPSJsaXN0ZXIiPg0KKw0KKyAgICAgICAgPGRpdiBpZD0ibGlzdGVyIiBkb2pvVHlwZT0iQ29udGVudFBhbmUiIGxhYmVsPSJQaG9uZUJvb2sgRGlyZWN0b3J5IiA+DQorICAgICAgICA8dGFibGUgaWQ9ImZpbHRlcl9tZW51Ij48dHI+PHRkPg0KKyAgICAgICAJICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIG9uY2xpY2s9ImFwcGx5RGF0ZSgnZW50cnlfbGlzdCcpOyIgdmFsdWU9IlNob3cgb25seSBoaXJlcyBiZXR3ZWVuIDEvMS8xOTg0IGFuZCAxLzEvMTk4NyIgLz4gDQorICAgICAgICAgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgb25jbGljaz0iYXBwbHlOYW1lKCdlbnRyeV9saXN0Jyk7IiB2YWx1ZT0iU2hvdyBvbmx5IG5hbWVzIGJldHdlZW4gTSBhbmQgWiIgLz4gDQorICAgICAgICAgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlNob3cgQWxsIEVudHJpZXMiIG9uY2xpY2s9ImNsZWFyRmlsdGVycygnZW50cnlfbGlzdCcpOyIgLz4NCisgICAJCSAgICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iUmVsb2FkIEVudHJpZXMiIG9uY2xpY2s9InJlbG9hZERhdGEoJ2VudHJ5X2xpc3QnKTsiIC8+ICAgICAgICANCisgICAgICAgIDwvdGQ+PC90cj48L3RhYmxlPg0KKyAgICAgICAgDQorCSAgICA8dGFibGUgaWQ9ImVudHJ5X2xpc3QiIA0KKyAgICAgICAgICAgIGRvam9UeXBlPSJmaWx0ZXJpbmdUYWJsZSIgYWx0ZXJuYXRlUm93cz0idHJ1ZSIgdmFsdWVGaWVsZD0idXNlcl9uYW1lIiA+DQorCSAgICAgICAgPHRoZWFkPg0KKwkJICAgIDx0cj4NCisJCQkgICAgPHRoIGZpZWxkPSJsYXN0X25hbWUiIHNvcnQ9ImFzYyI+TGFzdCBOYW1lPC90aD4NCisJCQkgICAgPHRoIGZpZWxkPSJmaXJzdF9uYW1lIj5GaXJzdCBOYW1lPC90aD4NCisJCQkgICAgPHRoIGZpZWxkPSJleHRlbnNpb24iPkV4dGVuc2lvbjwvdGg+DQorCQkJICAgIDx0aCBmaWVsZD0idXNlcl9uYW1lIj5Vc2VyPC90aD4NCisJCQkgICAgPHRoIGZpZWxkPSJoaXJlZCIgYWxpZ249ImNlbnRlciI+SGlyZWQ8L3RoPg0KKwkJCSAgICA8dGggZmllbGQ9ImhvdXJzIiBhbGlnbj0iY2VudGVyIj5Ib3VyczwvdGg+DQorCQkgICAgPC90cj4NCisJICAgICAgICA8L3RoZWFkPg0KKwkgICAgPC90YWJsZT4NCisgICAgICAgIA0KKyAgICAgICAgPHRhYmxlIGlkPSJlZGl0X21lbnUiPjx0cj48dGQ+DQorICAgICAgICAgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IkFkZCBFbnRyeSIgb25jbGljaz0iZW50cnlfYWRkKCdlbnRyeV9saXN0Jyk7IiAvPg0KKyAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+DQorICAgICAgICANCisgICAgICAgCTwvZGl2PiANCisgICAgICAgCQ0KKyAgICAgICAgPGRpdiBpZD0iZWRpdG9yIiBkb2pvVHlwZT0iQ29udGVudFBhbmUiIGxhYmVsPSJFbnRyeSBFZGl0b3IiPg0KKyAgICAgICAgDQorICAgICAgICA8Zm9ybSBpZD0iZW50cnlfZm9ybSIgZG9qb1R5cGU9IkZvcm0iPg0KKyAgICAgICAgICAgIDx0YWJsZT48dHI+DQorICAgICAgICAgICAgICAgICAgICA8dGQ+Rmlyc3QgTmFtZTwvdGQ+PHRkPjxpbnB1dCBuYW1lPSJmaXJzdF9uYW1lIiAvPjwvdGQ+DQorICAgICAgICAgICAgICAgIDwvdHI+PHRyPg0KKyAgICAgICAgICAgICAgICAgICAgPHRkPkxhc3QgTmFtZTwvdGQ+PHRkPjxpbnB1dCBuYW1lPSJsYXN0X25hbWUiIC8+PC90ZD4NCisgICAgICAgICAgICAgICAgPC90cj48dHI+DQorICAgICAgICAgICAgICAgICAgICA8dGQ+RXh0ZW5zaW9uPC90ZD48dGQ+PGlucHV0IG5hbWU9ImV4dGVuc2lvbiIgLz48L3RkPg0KKyAgICAgICAgICAgICAgICA8L3RyPjx0cj4NCisgICAgICAgICAgICAgICAgICAgIDx0ZD5Vc2VyIE5hbWU8L3RkPjx0ZD48aW5wdXQgbmFtZT0idXNlcl9uYW1lIiAvPjwvdGQ+DQorICAgICAgICAgICAgICAgIDwvdHI+PHRyPg0KKyAgICAgICAgICAgICAgICAgICAgPHRkPkhpcmVkPC90ZD48dGQ+PGlucHV0IG5hbWU9ImhpcmVkIiB3aWRnZXRpZD0iZHBIaXJlZCIgZG9qb1R5cGU9ImRyb3Bkb3duZGF0ZXBpY2tlciIgZGlzcGxheUZvcm1hdD0iTU0vZGQveXl5eSIgLz48L3RkPg0KKyAgICAgICAgICAgICAgICA8L3RyPjx0cj4NCisgICAgICAgICAgICAgICAgICAgIDx0ZD5Ib3VyczwvdGQ+PHRkPjxpbnB1dCBuYW1lPSJob3VycyIgLz48L3RkPg0KKyAgICAgICAgICAgICAgICA8L3RyPjx0cj4NCisgICAgICAgICAgICAgICAgICAgIDx0ZCByb3dzcGFuPSIyIj4NCisgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJTQVZFIiBvbkNsaWNrPSJlbnRyeV9zYXZlKCk7IiAvPg0KKyAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IkNBTkNFTCIgb25DbGljaz0iZW50cnlfcXVpdCgpOyIgLz4NCisgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJERUxFVEUiIG9uY2xpY2s9ImVudHJ5X2xpc3Rfc2VsZWN0X2RlbGV0ZSgnZW50cnlfbGlzdCcpOyIgLz4NCisgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImVkaXRvciIgdmFsdWU9IjEiIC8+DQorICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJlbnRyeV9rZXkiIC8+DQorICAgICAgICAgICAgICAgIDwvdGQ+DQorICAgICAgICAgICAgPC90cj48L3RhYmxlPg0KKyAgICAgICAgPC9mb3JtPg0KKyAgICAgICAgPC9kaXY+DQorICAgICAgICA8L2Rpdj4NCisgICAgICAgIA0KKyAgICA8L2JvZHk+DQorPC9odG1sPiANCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvUmVzb3VyY2VzL0FwcEJhc2UueG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL1Jlc291cmNlcy9BcHBCYXNlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjgwNjg5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL1Jlc291cmNlcy9BcHBCYXNlLnhtbApAQCAtMCwwICsxLDM4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4gDQorPG9iamVjdHMgeG1sbnM9Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCIgDQorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIA0KKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCBodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQveHNkL3NwcmluZy1vYmplY3RzLnhzZCI+DQorDQorIDwhLS0gQmFzZSBlbGVtZW50IChzdXBlciBwYXJlbnQpLS0+DQorIA0KKyA8b2JqZWN0IGlkPSJCYXNlTWFwcGVyIiBhYnN0cmFjdD0idHJ1ZSI+DQorICAgICA8cHJvcGVydHkgbmFtZT0iTWFwcGVyIj48cmVmIG9iamVjdD0iTWFwcGVyIi8+PC9wcm9wZXJ0eT4NCisgPC9vYmplY3Q+DQorIA0KKyA8IS0tIEJhc2UgY2xhc3MgcGFyZW50cyAtLT4gDQorDQorCTxvYmplY3QgaWQ9IkJhc2VDaGFpbiIgdHlwZT0iTmV4dXMuQ29yZS5SZXF1ZXN0Q2hhaW4sIE5leHVzLkNvcmUiLz4NCisJDQorCTxvYmplY3QgaWQ9IkJhc2VDb3VudCIgdHlwZT0iUGhvbmVCb29rLkNvcmUuQ29tbWFuZHMuQmFzZUNvdW50LCBQaG9uZUJvb2suQ29yZSIgcGFyZW50PSJCYXNlTWFwcGVyIi8+DQorDQorICA8b2JqZWN0IGlkPSJCYXNlRGVsZXRlIiB0eXBlPSJQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlRGVsZXRlLCBQaG9uZUJvb2suQ29yZSIgcGFyZW50PSJCYXNlTWFwcGVyIi8+DQorDQorICA8b2JqZWN0IGlkPSJCYXNlRW50cnkiIHR5cGU9IlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VFbnRyeSwgUGhvbmVCb29rLkNvcmUiIHBhcmVudD0iQmFzZU1hcHBlciIvPg0KKw0KKyAgPG9iamVjdCBpZD0iQmFzZUZpbHRlckxpc3QiIHR5cGU9IlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VGaWx0ZXJMaXN0LCBQaG9uZUJvb2suQ29yZSIgcGFyZW50PSJCYXNlTWFwcGVyIi8+DQorCQ0KKwk8b2JqZWN0IGlkPSJCYXNlRmllbGRDb250ZXh0IiB0eXBlPSJOZXh1cy5FeHRyYXMuU3ByaW5nLkZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iTWVzc2FnZVNvdXJjZSI+DQorCQkJPHJlZiBvYmplY3Q9Im1lc3NhZ2VTb3VyY2UiIC8+DQorCQk8L3Byb3BlcnR5PgkJDQorCTwvb2JqZWN0Pg0KKwkNCisJPG9iamVjdCBpZD0iQmFzZUtleVZhbHVlUHJvY2Vzc29yIiB0eXBlPSJOZXh1cy5Db3JlLlZhbGlkYXRvcnMuS2V5VmFsdWVQcm9jZXNzb3IiLz4NCisNCisJPG9iamVjdCBpZD0iQmFzZUxpc3QiIHR5cGU9IlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkJhc2VMaXN0LCBQaG9uZUJvb2suQ29yZSIgcGFyZW50PSJCYXNlTWFwcGVyIi8+DQorDQorCTxvYmplY3QgaWQ9IkJhc2VTYXZlIiB0eXBlPSJQaG9uZUJvb2suQ29yZS5Db21tYW5kcy5CYXNlU2F2ZSwgUGhvbmVCb29rLkNvcmUiIHBhcmVudD0iQmFzZU1hcHBlciIvPg0KKw0KKyAgICA8b2JqZWN0IGlkPSJFbnRyeUluaXRpYWwiIHR5cGU9IlBob25lQm9vay5Db3JlLkNvbW1hbmRzLkVudHJ5SW5pdGlhbCwgUGhvbmVCb29rLkNvcmUiIHBhcmVudD0iQmFzZU1hcHBlciIvPg0KKw0KKzwvb2JqZWN0cz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvUmVzb3VyY2VzL0FwcENvbmZpZy54bWwgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvUmVzb3VyY2VzL0FwcENvbmZpZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjNiYmNiZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1dlYi9SZXNvdXJjZXMvQXBwQ29uZmlnLnhtbApAQCAtMCwwICsxLDY2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4gDQorPG9iamVjdHMgeG1sbnM9Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCIgDQorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIA0KKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCBodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQveHNkL3NwcmluZy1vYmplY3RzLnhzZCI+DQorDQorIDwhLS0gTWVzc2FnZSBTb3VyY2UgLS0+DQorDQorCTxvYmplY3QgaWQ9Im1lc3NhZ2VTb3VyY2UiIHR5cGU9IlNwcmluZy5Db250ZXh0LlN1cHBvcnQuUmVzb3VyY2VTZXRNZXNzYWdlU291cmNlLCBTcHJpbmcuQ29yZSI+DQorICAgICAgICA8cHJvcGVydHkgbmFtZT0iUmVzb3VyY2VNYW5hZ2VycyI+DQorICAgICAgICAgICAgPGxpc3Q+DQorICAgICAgICAgICAgICAgIDx2YWx1ZT5QaG9uZUJvb2suQ29yZS5NZXNzYWdlcywgUGhvbmVCb29rLkNvcmU8L3ZhbHVlPg0KKyAgICAgICAgICAgICAgICA8dmFsdWU+TmV4dXMuV2ViLk1lc3NhZ2VzLCBOZXh1cy5XZWI8L3ZhbHVlPg0KKyAgICAgICAgICAgIDwvbGlzdD4NCisgICAgICAgIDwvcHJvcGVydHk+ICAgIA0KKyAgICA8L29iamVjdD4NCisNCisNCisgPCEtLSBSZXF1ZXN0IFByb2Nlc3NvcnMgLS0+DQorCQ0KKyAgPG9iamVjdCBpZD0iY29udmVydF9pbnB1dCIgdHlwZT0iTmV4dXMuQ29yZS5WYWxpZGF0b3JzLkNvbnZlcnRJbnB1dCI+DQorICAgIDxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmNvbnZlcnRfaW5wdXQ8L3ZhbHVlPjwvcHJvcGVydHk+DQorICA8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9ImZvcm1hdF9vdXRwdXQiIHR5cGU9Ik5leHVzLkNvcmUuVmFsaWRhdG9ycy5Gb3JtYXRPdXRwdXQiPg0KKyAgICA8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5mb3JtYXRfb3V0cHV0PC92YWx1ZT48L3Byb3BlcnR5PiAgICANCisgIDwvb2JqZWN0Pg0KKyAgDQorICA8b2JqZWN0IGlkPSJjbGVhcl9jb250ZXh0IiB0eXBlPSJOZXh1cy5Db3JlLlZhbGlkYXRvcnMuQ2xlYXJDb250ZXh0Ij4NCisgICAgPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+Y2xlYXJfY29udGV4dDwvdmFsdWU+PC9wcm9wZXJ0eT4gICAgDQorICA8L29iamVjdD4NCisNCisgPCEtLSBwcmUtb3AgLS0+DQorDQorICA8b2JqZWN0IGlkPSJwcmUtb3AiIHBhcmVudD0iQmFzZUNoYWluIj4NCisJPHByb3BlcnR5IG5hbWU9IkFkZENvbW1hbmRzIj4NCisJCTxsaXN0Pg0KKwkJCTxyZWYgb2JqZWN0PSJjb252ZXJ0X2lucHV0Ii8+DQorCQk8L2xpc3Q+ICAgDQorICAgIDwvcHJvcGVydHk+ICAgICAgICAgICANCisgIDwvb2JqZWN0PiAgDQorICANCisgPCEtLSBwb3N0LW9wIC0tPg0KKw0KKyAgPG9iamVjdCBpZD0icG9zdC1vcCIgcGFyZW50PSJCYXNlQ2hhaW4iPg0KKwk8cHJvcGVydHkgbmFtZT0iQWRkQ29tbWFuZHMiPg0KKwkJPGxpc3Q+DQorCQkJPHJlZiBvYmplY3Q9ImZvcm1hdF9vdXRwdXQiLz4NCisJCTwvbGlzdD4gICANCisgICAgPC9wcm9wZXJ0eT4gICAgICAgICAgIA0KKyAgPC9vYmplY3Q+DQorICAgIAkJDQorIDwhLS0gQ2F0YWxvZyAtLT4NCisgDQorICA8b2JqZWN0IGlkPSJDYXRhbG9nIiB0eXBlPSJOZXh1cy5FeHRyYXMuU3ByaW5nLkNhdGFsb2ciPg0KKwkgIDxwcm9wZXJ0eSBuYW1lPSJGaWVsZFRhYmxlIj48cmVmIG9iamVjdD0iRmllbGRUYWJsZSIvPjwvcHJvcGVydHk+DQorCSAgPHByb3BlcnR5IG5hbWU9IlByZU9wIj48cmVmIG9iamVjdD0icHJlLW9wIi8+PC9wcm9wZXJ0eT4NCisJICA8cHJvcGVydHkgbmFtZT0iUG9zdE9wIj48cmVmIG9iamVjdD0icG9zdC1vcCIvPjwvcHJvcGVydHk+DQorCSAgPHByb3BlcnR5IG5hbWU9IlZpZXdIZWxwZXIiPjxvYmplY3QgdHlwZT0iTmV4dXMuV2ViLldlYkhlbHBlciwgTmV4dXMuV2ViIiBzaW5nbGV0b249ImZhbHNlIi8+PC9wcm9wZXJ0eT4NCisgPC9vYmplY3Q+DQorIA0KKzwhLS0gaUJBVElTIE1hcHBlciAtLT4NCisgIA0KKyAgPG9iamVjdCBpZD0iTWFwcGVyIiB0eXBlPSJJQmF0aXNOZXQuRGF0YU1hcHBlci5NYXBwZXIsIElCYXRpc05ldC5EYXRhTWFwcGVyIiANCisJCWZhY3RvcnktbWV0aG9kPSJJbnN0YW5jZSIvPiANCisgICAgICANCis8L29iamVjdHM+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL1Jlc291cmNlcy9BcHBGaWVsZHMueG1sIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL1Jlc291cmNlcy9BcHBGaWVsZHMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5YzIzZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvUmVzb3VyY2VzL0FwcEZpZWxkcy54bWwKQEAgLTAsMCArMSwxMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04IiA/PiANCis8b2JqZWN0cyB4bWxucz0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0IiANCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgDQorCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsubmV0IGh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldC94c2Qvc3ByaW5nLW9iamVjdHMueHNkIj4NCisNCisJIDwhLS0gRmllbGRUYWJsZSAtLT4NCisNCisJPG9iamVjdCBpZD0iRmllbGRUYWJsZSIgdHlwZT0iTmV4dXMuQ29yZS5UYWJsZXMuRmllbGRUYWJsZSI+DQorCQk8cHJvcGVydHkgbmFtZT0iQWRkRmllbGRDb250ZXh0cyI+DQorCQkJPGxpc3Q+DQorCQkJCTxyZWYgb2JqZWN0PSJsYXN0X25hbWUiLz4gDQorCQkJCTxyZWYgb2JqZWN0PSJmaXJzdF9uYW1lIi8+IA0KKwkJCQk8cmVmIG9iamVjdD0iZXh0ZW5zaW9uIi8+IA0KKwkJCQk8cmVmIG9iamVjdD0idXNlcl9uYW1lIi8+IA0KKwkJCQk8cmVmIG9iamVjdD0iaGlyZWQiLz4gDQorCQkJCTxyZWYgb2JqZWN0PSJob3VycyIvPiAJCQkJDQorCQkJCTxyZWYgb2JqZWN0PSJfZW50cnlfbGlzdCIvPiANCisJCQkJPHJlZiBvYmplY3Q9Il9lbnRyeV9saXN0X2NvdW50Ii8+IA0KKwkJCQk8cmVmIG9iamVjdD0iX2V4dGVuc2lvbl9saXN0Ii8+DQorCQkJCTxyZWYgb2JqZWN0PSJfaGlyZWRfbGlzdCIvPg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iQWRkUHJvY2Vzc29ycyI+DQorCQkJPGxpc3Q+DQorCQkJCTxyZWYgb2JqZWN0PSJEYXRlVGltZVByb2Nlc3NvciIvPiANCisJCQkJPHJlZiBvYmplY3Q9IlRlbGVwaG9uZVByb2Nlc3NvciIvPiANCisJCQkJPHJlZiBvYmplY3Q9IkVudHJ5TGlzdFByb2Nlc3NvciIvPiANCisJCQkJPHJlZiBvYmplY3Q9IkV4dGVuc2lvbkxpc3RQcm9jZXNzb3IiLz4NCisJCQkJPHJlZiBvYmplY3Q9IkhpcmVkTGlzdFByb2Nlc3NvciIvPg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKw0KKwk8b2JqZWN0IGlkPSJsYXN0X25hbWUiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5sYXN0X25hbWU8L3ZhbHVlPjwvcHJvcGVydHk+CQ0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0iZmlyc3RfbmFtZSIgcGFyZW50PSJCYXNlRmllbGRDb250ZXh0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmZpcnN0X25hbWU8L3ZhbHVlPjwvcHJvcGVydHk+CQ0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0idXNlcl9uYW1lIiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+dXNlcl9uYW1lPC92YWx1ZT48L3Byb3BlcnR5PgkNCisJPC9vYmplY3Q+DQorCQ0KKwk8b2JqZWN0IGlkPSJleHRlbnNpb24iIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5leHRlbnNpb248L3ZhbHVlPjwvcHJvcGVydHk+CQkNCisJCTxwcm9wZXJ0eSBuYW1lPSJQcm9jZXNzb3IiPjxyZWYgb2JqZWN0PSJUZWxlcGhvbmVQcm9jZXNzb3IiLz48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0iaGlyZWQiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5oaXJlZDwvdmFsdWU+PC9wcm9wZXJ0eT4JDQorCQk8cHJvcGVydHkgbmFtZT0iUHJvY2Vzc29yIj48cmVmIG9iamVjdD0iRGF0ZVRpbWVQcm9jZXNzb3IiLz48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisJDQorCTxvYmplY3QgaWQ9ImhvdXJzIiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+aG91cnM8L3ZhbHVlPjwvcHJvcGVydHk+CQ0KKwk8L29iamVjdD4NCisJDQorCTxvYmplY3QgaWQ9ImVkaXRvciIgcGFyZW50PSJCYXNlRmllbGRDb250ZXh0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmVkaXRvcjwvdmFsdWU+PC9wcm9wZXJ0eT4JDQorCTwvb2JqZWN0Pg0KKw0KKwk8IS0tIHByb3BlcnR5IG5hbWU9IkNvbnRyb2xUeXBlTmFtZSI+PHZhbHVlPkNoZWNrQm94PC92YWx1ZT48L3Byb3BlcnR5IC0tPgkNCisNCisJPCEtLSBXZSBuZWVkIHRvICJoYXNoIiB0aGUgbmFtZSB3aXRoICJfIiB0byBhdm9pZCBjb25mbGljdCB3aXRoIHRoZSBmaWx0ZXIgQ29tbWFuZCAtLT4NCisJPG9iamVjdCBpZD0iX2VudHJ5X2xpc3QiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5lbnRyeV9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlByb2Nlc3NvciI+PHJlZiBvYmplY3Q9IkVudHJ5TGlzdFByb2Nlc3NvciIvPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKwkJDQorCTxvYmplY3QgaWQ9Il9lbnRyeV9saXN0X2NvdW50IiBwYXJlbnQ9IkJhc2VGaWVsZENvbnRleHQiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+ZW50cnlfbGlzdF9jb3VudDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJQcm9jZXNzb3IiPjxyZWYgb2JqZWN0PSJDb2xsZWN0aW9uUHJvY2Vzc29yIi8+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorDQorCTxvYmplY3QgaWQ9Il9leHRlbnNpb25fbGlzdCIgcGFyZW50PSJCYXNlRmllbGRDb250ZXh0Ij4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmV4dGVuc2lvbl9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlByb2Nlc3NvciI+PHJlZiBvYmplY3Q9IkV4dGVuc2lvbkxpc3RQcm9jZXNzb3IiLz48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisNCisJPG9iamVjdCBpZD0iX2hpcmVkX2xpc3QiIHBhcmVudD0iQmFzZUZpZWxkQ29udGV4dCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5oaXJlZF9saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlByb2Nlc3NvciI+PHJlZiBvYmplY3Q9IkhpcmVkTGlzdFByb2Nlc3NvciIvPjwvcHJvcGVydHk+DQorCTwvb2JqZWN0Pg0KKw0KKwk8b2JqZWN0IGlkPSJDb2xsZWN0aW9uUHJvY2Vzc29yIiB0eXBlPSJOZXh1cy5Db3JlLlZhbGlkYXRvcnMuQ29sbGVjdGlvblByb2Nlc3NvciwgTmV4dXMuQ29yZSI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5FbnRyeUNvdW50UHJvY2Vzc29yPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisJDQorIAkJPCEtLSAiZCIgaXMgLk5FVCBmb3IgInNob3IgZGF0ZSIgLS0+IA0KKwk8b2JqZWN0IGlkPSJEYXRlVGltZVByb2Nlc3NvciIgdHlwZT0iTmV4dXMuQ29yZS5WYWxpZGF0b3JzLkRhdGVUaW1lUHJvY2Vzc29yIj4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPkRhdGVUaW1lUHJvY2Vzc29yPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IkRhdGFGb3JtYXQiPjx2YWx1ZT5kPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisJDQorCTxvYmplY3QgaWQ9IlRlbGVwaG9uZVByb2Nlc3NvciIgdHlwZT0iUGhvbmVCb29rLkNvcmUuVGVsZXBob25lUHJvY2Vzc29yIj4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPlRlbGVwaG9uZVByb2Nlc3NvcjwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorDQorCTxvYmplY3QgaWQ9IkVudHJ5TGlzdFByb2Nlc3NvciIgdHlwZT0iUGhvbmVCb29rLkNvcmUuQXBwRW50cnlMaXN0UHJvY2Vzc29yIj4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPkVudHJ5TGlzdFByb2Nlc3NvcjwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorCQ0KKwk8b2JqZWN0IGlkPSJFeHRlbnNpb25MaXN0UHJvY2Vzc29yIiBwYXJlbnQ9IkJhc2VLZXlWYWx1ZVByb2Nlc3NvciI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5FeHRlbnNpb25MaXN0UHJvY2Vzc29yPC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IktleSI+PHZhbHVlPmV4dGVuc2lvbjwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorCQ0KKwk8b2JqZWN0IGlkPSJIaXJlZExpc3RQcm9jZXNzb3IiIHBhcmVudD0iQmFzZUtleVZhbHVlUHJvY2Vzc29yIj4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPkhpcmVkTGlzdFByb2Nlc3NvcjwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJLZXkiPjx2YWx1ZT5oaXJlZDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorDQorPC9vYmplY3RzPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1dlYi9SZXNvdXJjZXMvQ2F0YWxvZy54bWwgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvUmVzb3VyY2VzL0NhdGFsb2cueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkODljNDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvUmVzb3VyY2VzL0NhdGFsb2cueG1sCkBAIC0wLDAgKzEsMTg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCIgPz4gDQorPG9iamVjdHMgeG1sbnM9Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCIgDQorCXhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIA0KKwl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm5ldCBodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5uZXQveHNkL3NwcmluZy1vYmplY3RzLnhzZCI+DQorDQorCTwhLS0gZW50cnkgY29tbWFuZHMgLS0+DQorDQorICA8b2JqZWN0IGlkPSJlbnRyeV9saXN0X3Jvd3MiIHBhcmVudD0iQmFzZUxpc3QiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+ZW50cnlfbGlzdDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJRdWVyeUlEIj48dmFsdWU+ZW50cnk8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iUmVsYXRlZElEcyI+DQorCQkJPGxpc3Q+DQorCQkJCTx2YWx1ZT5lbnRyeV9saXN0PC92YWx1ZT4NCisJCQkJPHZhbHVlPmVudHJ5X2tleTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5sYXN0X25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+Zmlyc3RfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5leHRlbnNpb248L3ZhbHVlPg0KKwkJCQk8dmFsdWU+dXNlcl9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmhpcmVkPC92YWx1ZT4NCisJCQkJPHZhbHVlPmhvdXJzPC92YWx1ZT4NCisJCQkJPHZhbHVlPmVkaXRvcjwvdmFsdWU+DQorCQkJCTx2YWx1ZT5pbml0aWFsPC92YWx1ZT4NCisJCQkJPHZhbHVlPml0ZW1fY291bnQ8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aXRlbV9vZmZzZXQ8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aXRlbV9saW1pdDwvdmFsdWU+DQorCQkJPC9saXN0Pg0KKwkJPC9wcm9wZXJ0eT4NCisgIDwvb2JqZWN0Pg0KKyAgDQorICA8b2JqZWN0IGlkPSJlbnRyeV9saXN0X2NvdW50IiBwYXJlbnQ9IkJhc2VDb3VudCI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5lbnRyeV9saXN0X2NvdW50PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlF1ZXJ5SUQiPjx2YWx1ZT5lbnRyeV9jb3VudDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj4NCisJCQk8bGlzdD4NCisJCQkJPHZhbHVlPmVudHJ5X2xpc3Q8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+ZW50cnlfa2V5PC92YWx1ZT4NCisJCQkJPHZhbHVlPmxhc3RfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5maXJzdF9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmV4dGVuc2lvbjwvdmFsdWU+DQorCQkJCTx2YWx1ZT51c2VyX25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aGlyZWQ8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aG91cnM8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+ZWRpdG9yPC92YWx1ZT4NCisJCQkJPHZhbHVlPmluaXRpYWw8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aXRlbV9jb3VudDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5pdGVtX29mZnNldDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5pdGVtX2xpbWl0PC92YWx1ZT4NCisJCQk8L2xpc3Q+DQorCQk8L3Byb3BlcnR5Pg0KKyAgPC9vYmplY3Q+DQorDQorICA8b2JqZWN0IGlkPSJlbnRyeSIgcGFyZW50PSJCYXNlRW50cnkiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+ZW50cnk8L3ZhbHVlPjwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iUmVsYXRlZElEcyI+DQorCQkJPGxpc3Q+DQorCQkJCTx2YWx1ZT5lbnRyeTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5lbnRyeV9rZXk8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+bGFzdF9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmZpcnN0X25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+ZXh0ZW5zaW9uPC92YWx1ZT4NCisJCQkJPHZhbHVlPnVzZXJfbmFtZTwvdmFsdWU+DQorCQkJCTx2YWx1ZT5oaXJlZDwvdmFsdWU+DQorCQkJCTx2YWx1ZT5ob3VyczwvdmFsdWU+DQorCQkJCTx2YWx1ZT5lZGl0b3I8L3ZhbHVlPg0KKwkJCTwvbGlzdD4NCisJCTwvcHJvcGVydHk+DQorICA8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9ImVudHJ5X2RlbGV0ZSIgcGFyZW50PSJCYXNlRGVsZXRlIj4NCisgICAgPHByb3BlcnR5IG5hbWU9IklEIj4NCisgICAgICA8dmFsdWU+ZW50cnlfZGVsZXRlPC92YWx1ZT4NCisgICAgPC9wcm9wZXJ0eT4NCisgICAgPHByb3BlcnR5IG5hbWU9IlJlcXVpcmVkSURzIj4NCisgICAgICA8bGlzdD4NCisgICAgICAgIDx2YWx1ZT5lbnRyeV9rZXk8L3ZhbHVlPg0KKyAgICAgIDwvbGlzdD4NCisgICAgPC9wcm9wZXJ0eT4NCisgIDwvb2JqZWN0Pg0KKw0KKyAgPCEtLSBmaWx0ZXIgbGlzdCBjb21tYW5kcyAtLT4NCisJCQ0KKyAgPG9iamVjdCBpZD0ibGFzdF9uYW1lX2xpc3QiIHBhcmVudD0iQmFzZUZpbHRlckxpc3QiPg0KKwk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5sYXN0X25hbWVfbGlzdDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPHByb3BlcnR5IG5hbWU9IlJlbGF0ZWRJRHMiPjxsaXN0Pjx2YWx1ZT5sYXN0X25hbWVfbGlzdDwvdmFsdWU+PC9saXN0PjwvcHJvcGVydHk+DQorICA8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9ImZpcnN0X25hbWVfbGlzdCIgcGFyZW50PSJCYXNlRmlsdGVyTGlzdCI+DQorCTxwcm9wZXJ0eSBuYW1lPSJJRCI+PHZhbHVlPmZpcnN0X25hbWVfbGlzdDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPHByb3BlcnR5IG5hbWU9IlJlbGF0ZWRJRHMiPjxsaXN0Pjx2YWx1ZT5maXJzdF9uYW1lX2xpc3Q8L3ZhbHVlPjwvbGlzdD48L3Byb3BlcnR5Pg0KKyAgPC9vYmplY3Q+DQorICANCisgIDxvYmplY3QgaWQ9ImV4dGVuc2lvbl9saXN0IiBwYXJlbnQ9IkJhc2VGaWx0ZXJMaXN0Ij4NCisJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+ZXh0ZW5zaW9uX2xpc3Q8L3ZhbHVlPjwvcHJvcGVydHk+DQorCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj48bGlzdD48dmFsdWU+ZXh0ZW5zaW9uX2xpc3Q8L3ZhbHVlPjwvbGlzdD48L3Byb3BlcnR5PgkNCisgIDwvb2JqZWN0Pg0KKw0KKyAgPG9iamVjdCBpZD0idXNlcl9uYW1lX2xpc3QiIHBhcmVudD0iQmFzZUZpbHRlckxpc3QiPg0KKwk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT51c2VyX25hbWVfbGlzdDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPHByb3BlcnR5IG5hbWU9IlJlbGF0ZWRJRHMiPjxsaXN0Pjx2YWx1ZT51c2VyX25hbWVfbGlzdDwvdmFsdWU+PC9saXN0PjwvcHJvcGVydHk+CQ0KKyAgPC9vYmplY3Q+DQorDQorICA8b2JqZWN0IGlkPSJoaXJlZF9saXN0IiBwYXJlbnQ9IkJhc2VGaWx0ZXJMaXN0Ij4NCisJPHByb3BlcnR5IG5hbWU9IklEIj48dmFsdWU+aGlyZWRfbGlzdDwvdmFsdWU+PC9wcm9wZXJ0eT4NCisJPHByb3BlcnR5IG5hbWU9IlJlbGF0ZWRJRHMiPjxsaXN0Pjx2YWx1ZT5oaXJlZF9saXN0PC92YWx1ZT48L2xpc3Q+PC9wcm9wZXJ0eT4JDQorICA8L29iamVjdD4NCisNCisgIDxvYmplY3QgaWQ9ImhvdXJzX2xpc3QiIHBhcmVudD0iQmFzZUZpbHRlckxpc3QiPg0KKwk8cHJvcGVydHkgbmFtZT0iSUQiPjx2YWx1ZT5ob3Vyc19saXN0PC92YWx1ZT48L3Byb3BlcnR5Pg0KKwk8cHJvcGVydHkgbmFtZT0iUmVsYXRlZElEcyI+PGxpc3Q+PHZhbHVlPmhvdXJzX2xpc3Q8L3ZhbHVlPjwvbGlzdD48L3Byb3BlcnR5PgkNCisgIDwvb2JqZWN0Pg0KKyAgDQorCTxvYmplY3QgaWQ9ImVudHJ5X2luaXRpYWwiIHBhcmVudD0iRW50cnlJbml0aWFsIj4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+DQorCQkJPHZhbHVlPmVudHJ5X2luaXRpYWw8L3ZhbHVlPg0KKwkJPC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJSZWxhdGVkSURzIj4NCisJCQk8bGlzdD4NCisJCQkJPHZhbHVlPmVudHJ5X2luaXRpYWw8L3ZhbHVlPg0KKwkJCTwvbGlzdD4JCQ0KKwkJPC9wcm9wZXJ0eT4NCisJPC9vYmplY3Q+DQorICANCisJPCEtLSBjaGFpbnMgLS0+DQorICAgIA0KKyAgICA8b2JqZWN0IGlkPSJlbnRyeV9saXN0IiBwYXJlbnQ9IkJhc2VDaGFpbiI+DQorCQk8cHJvcGVydHkgbmFtZT0iSUQiPg0KKwkJCTx2YWx1ZT5lbnRyeV9saXN0PC92YWx1ZT4NCisJCTwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iQWRkQ29tbWFuZHMiPg0KKwkJCTxsaXN0Pg0KKwkJCQk8cmVmIG9iamVjdD0iZW50cnlfbGlzdF9jb3VudCIgLz4NCisJCQkJPHJlZiBvYmplY3Q9ImVudHJ5X2xpc3Rfcm93cyIgLz4NCisJCQk8L2xpc3Q+DQorCQk8L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisgICAgDQorICAgIDxvYmplY3QgaWQ9ImVudHJ5X2ZpbmQiIHBhcmVudD0iQmFzZUNoYWluIj4NCisJCTxwcm9wZXJ0eSBuYW1lPSJJRCI+DQorCQkJPHZhbHVlPmVudHJ5X2ZpbmQ8L3ZhbHVlPg0KKwkJPC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJBZGRDb21tYW5kcyI+DQorCQkJPGxpc3Q+DQorCQkJCTxyZWYgb2JqZWN0PSJsYXN0X25hbWVfbGlzdCIgLz4NCisJCQkJPHJlZiBvYmplY3Q9ImZpcnN0X25hbWVfbGlzdCIgLz4NCisJCQkJPHJlZiBvYmplY3Q9ImV4dGVuc2lvbl9saXN0IiAvPg0KKwkJCQk8cmVmIG9iamVjdD0idXNlcl9uYW1lX2xpc3QiIC8+DQorCQkJCTxyZWYgb2JqZWN0PSJoaXJlZF9saXN0IiAvPg0KKwkJCQk8cmVmIG9iamVjdD0iaG91cnNfbGlzdCIgLz4NCisJCQk8L2xpc3Q+DQorCQk8L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisJCQkNCisgIDxvYmplY3QgaWQ9ImVudHJ5X3NhdmUiIHBhcmVudD0iQmFzZVNhdmUiPg0KKwkJPHByb3BlcnR5IG5hbWU9IklEIj4NCisJCQk8dmFsdWU+ZW50cnlfc2F2ZTwvdmFsdWU+DQorCQk8L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IktleUlEIj4NCisJCQk8dmFsdWU+ZW50cnlfa2V5PC92YWx1ZT4NCisJCTwvcHJvcGVydHk+DQorCQk8cHJvcGVydHkgbmFtZT0iSW5zZXJ0SUQiPg0KKwkJCTx2YWx1ZT5lbnRyeV9pbnNlcnQ8L3ZhbHVlPg0KKwkJPC9wcm9wZXJ0eT4NCisJCTxwcm9wZXJ0eSBuYW1lPSJVcGRhdGVJRCI+DQorCQkJPHZhbHVlPmVudHJ5X3VwZGF0ZTwvdmFsdWU+DQorCQk8L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlJlbGF0ZWRJRHMiPg0KKwkJCTxsaXN0Pg0KKwkJCQk8dmFsdWU+ZW50cnlfa2V5PC92YWx1ZT4NCisJCQk8L2xpc3Q+DQorCQk8L3Byb3BlcnR5Pg0KKwkJPHByb3BlcnR5IG5hbWU9IlJlcXVpcmVkSURzIj4NCisJCQk8bGlzdD4NCisJCQkJPHZhbHVlPmZpcnN0X25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+bGFzdF9uYW1lPC92YWx1ZT4NCisJCQkJPHZhbHVlPmV4dGVuc2lvbjwvdmFsdWU+DQorCQkJCTx2YWx1ZT51c2VyX25hbWU8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aG91cnM8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+aGlyZWQ8L3ZhbHVlPg0KKwkJCQk8dmFsdWU+ZWRpdG9yPC92YWx1ZT4NCisJCQk8L2xpc3Q+DQorCQk8L3Byb3BlcnR5Pg0KKwk8L29iamVjdD4NCisNCis8L29iamVjdHM+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL1Jlc291cmNlcy9RdWVyaWVzLnhtbCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1dlYi9SZXNvdXJjZXMvUXVlcmllcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzcwNjM5ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1dlYi9SZXNvdXJjZXMvUXVlcmllcy54bWwKQEAgLTAsMCArMSwxODQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/Pg0KKzxzcWxNYXAgDQorCW5hbWVzcGFjZT0icGhvbmVib29rIiANCisJeG1sbnM9Imh0dHA6Ly9pYmF0aXMuYXBhY2hlLm9yZy9tYXBwaW5nIiANCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgPg0KKw0KKyDCoCA8cGFyYW1ldGVyTWFwcz4NCisJCQ0KK8KgIMKgCQk8cGFyYW1ldGVyTWFwIGlkPSJlbnRyeV9zYXZlX3BhcmFtIj4NCisJCQk8cGFyYW1ldGVyIHByb3BlcnR5PSJsYXN0X25hbWUiLz4NCisJCQk8cGFyYW1ldGVyIHByb3BlcnR5PSJmaXJzdF9uYW1lIi8+DQorCQkJPHBhcmFtZXRlciBwcm9wZXJ0eT0iZXh0ZW5zaW9uIi8+DQorCQkJPHBhcmFtZXRlciBwcm9wZXJ0eT0idXNlcl9uYW1lIi8+DQorCQkJPHBhcmFtZXRlciBwcm9wZXJ0eT0iaGlyZWQiLz4NCisJCQk8cGFyYW1ldGVyIHByb3BlcnR5PSJob3VycyIvPg0KKwkJCTxwYXJhbWV0ZXIgcHJvcGVydHk9ImVkaXRvciIvPg0KK8KgIMKgCQkJPHBhcmFtZXRlciBwcm9wZXJ0eT0iZW50cnlfa2V5Ii8+wqAgwqAJCQ0KK8KgIMKgIMKgIMKgIDwvcGFyYW1ldGVyTWFwPiDCoCDCoAkJDQorwqAgCQ0KK8KgIAk8L3BhcmFtZXRlck1hcHM+DQorCQkNCisJPHN0YXRlbWVudHM+DQorCQ0KKwkJPHNlbGVjdCBpZD0ibGFzdF9uYW1lX2xpc3QiIHJlc3VsdENsYXNzPSJzdHJpbmciPg0KKwkJCVNFTEVDVCBESVNUSU5DVCANCisJCQkJbGFzdF9uYW1lDQorCQkJRlJPTSBlbnRyeQ0KKwkJCU9SREVSIEJZIGxhc3RfbmFtZQkJCQ0KKwkJPC9zZWxlY3Q+DQorCQkNCisJCTxzZWxlY3QgaWQ9ImZpcnN0X25hbWVfbGlzdCIgcmVzdWx0Q2xhc3M9InN0cmluZyI+DQorCQkJU0VMRUNUIERJU1RJTkNUIA0KKwkJCQlmaXJzdF9uYW1lDQorCQkJRlJPTSBlbnRyeQ0KKwkJCU9SREVSIEJZIGZpcnN0X25hbWUNCisJCTwvc2VsZWN0Pg0KKwkJDQorCQk8c2VsZWN0IGlkPSJleHRlbnNpb25fbGlzdCIgcmVzdWx0Q2xhc3M9InN0cmluZyI+DQorCQkJU0VMRUNUIERJU1RJTkNUIA0KKwkJCQlleHRlbnNpb24NCisJCQlGUk9NIGVudHJ5DQorCQkJT1JERVIgQlkgZXh0ZW5zaW9uDQorCQk8L3NlbGVjdD4NCisNCisJCTxzZWxlY3QgaWQ9InVzZXJfbmFtZV9saXN0IiByZXN1bHRDbGFzcz0ic3RyaW5nIj4NCisJCQlTRUxFQ1QgRElTVElOQ1QgDQorCQkJCXVzZXJfbmFtZQ0KKwkJCUZST00gZW50cnkNCisJCQlPUkRFUiBCWSB1c2VyX25hbWUNCisJCTwvc2VsZWN0Pg0KKw0KKwkJPHNlbGVjdCBpZD0iaGlyZWRfbGlzdCIgIHJlc3VsdENsYXNzPSJkYXRlIj4NCisJCQlTRUxFQ1QgRElTVElOQ1QgDQorCQkJCWhpcmVkDQorCQkJRlJPTSBlbnRyeQ0KKwkJCU9SREVSIEJZIGhpcmVkDQorCQk8L3NlbGVjdD4NCisNCisJCTxzZWxlY3QgaWQ9ImhvdXJzX2xpc3QiICByZXN1bHRDbGFzcz0ic3RyaW5nIj4NCisJCQlTRUxFQ1QgRElTVElOQ1QgDQorCQkJCWhvdXJzDQorCQkJRlJPTSBlbnRyeQ0KKwkJCU9SREVSIEJZIGhvdXJzDQorCQk8L3NlbGVjdD4NCisNCisJCTxzZWxlY3QgaWQ9ImVudHJ5IiBwYXJhbUNsYXNzPSJIYXNodGFibGUiIHJlc3VsdENsYXNzPSJIYXNodGFibGUiPg0KKwkJCVNFTEVDVCANCisJCQkJbGFzdF9uYW1lLA0KKwkJCQlmaXJzdF9uYW1lLA0KKwkJCQlleHRlbnNpb24sDQorCQkJCXVzZXJfbmFtZSwNCisJCQkJaGlyZWQsDQorCQkJCWhvdXJzLA0KKwkJCQllZGl0b3IsDQorCQkJCXBrX2VudHJ5IEFTIGVudHJ5X2tleQkJCQkNCisJCQlGUk9NIGVudHJ5DQorCQkJPGR5bmFtaWMgcHJlcGVuZD0iV0hFUkUiPgkJCQ0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJpbml0aWFsIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJbGFzdF9uYW1lIExJS0UgI2luaXRpYWwjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJsYXN0X25hbWUiIHByZXBlbmQ9IkFORCI+DQorCQkJCQlsYXN0X25hbWU9I2xhc3RfbmFtZSMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImZpcnN0X25hbWUiIHByZXBlbmQ9IkFORCI+DQorCQkJCQlmaXJzdF9uYW1lPSNmaXJzdF9uYW1lIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iZXh0ZW5zaW9uIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJZXh0ZW5zaW9uPSNleHRlbnNpb24jDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJ1c2VyX25hbWUiIHByZXBlbmQ9IkFORCI+DQorCQkJCQl1c2VyX25hbWU9I3VzZXJfbmFtZSMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImhpcmVkIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJaGlyZWQ9I2hpcmVkIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iaG91cnMiIHByZXBlbmQ9IkFORCI+DQorCQkJCQlob3Vycz0jaG91cnMjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJlZGl0b3IiIHByZXBlbmQ9IkFORCI+DQorCQkJCQlob3Vycz0jZWRpdG9yIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iZW50cnlfa2V5IiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJcGtfZW50cnk9I2VudHJ5X2tleSMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJPC9keW5hbWljPgkJCQ0KKwkJCTxkeW5hbWljPg0KKwkJCSAgIDxpc05vdE51bGwgcHJvcGVydHk9Iml0ZW1fbGltaXQiPg0KKwkJCQkJTElNSVQgI2l0ZW1fbGltaXQjIE9GRlNFVCAjaXRlbV9vZmZzZXQjIA0KKwkJCSAgIDwvaXNOb3ROdWxsPgkJCQ0KKwkJCTwvZHluYW1pYz47DQorCQk8L3NlbGVjdD4NCisNCisJCTxzZWxlY3QgaWQ9ImVudHJ5X2NvdW50IiBwYXJhbUNsYXNzPSJIYXNodGFibGUiIHJlc3VsdENsYXNzPSJzdHJpbmciPg0KKwkJCVNFTEVDVCBDT1VOVCgqKSBGUk9NIGVudHJ5DQorCQkJPGR5bmFtaWMgcHJlcGVuZD0iV0hFUkUiPgkJCQ0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJpbml0aWFsIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJbGFzdF9uYW1lIExJS0UgI2luaXRpYWwjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJsYXN0X25hbWUiIHByZXBlbmQ9IkFORCI+DQorCQkJCQlsYXN0X25hbWU9I2xhc3RfbmFtZSMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImZpcnN0X25hbWUiIHByZXBlbmQ9IkFORCI+DQorCQkJCQlmaXJzdF9uYW1lPSNmaXJzdF9uYW1lIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iZXh0ZW5zaW9uIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJZXh0ZW5zaW9uPSNleHRlbnNpb24jDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJ1c2VyX25hbWUiIHByZXBlbmQ9IkFORCI+DQorCQkJCQl1c2VyX25hbWU9I3VzZXJfbmFtZSMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJCTxpc05vdE51bGwgcHJvcGVydHk9ImhpcmVkIiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJaGlyZWQ9I2hpcmVkIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iaG91cnMiIHByZXBlbmQ9IkFORCI+DQorCQkJCQlob3Vycz0jaG91cnMjDQorCQkJCTwvaXNOb3ROdWxsPg0KKwkJCQk8aXNOb3ROdWxsIHByb3BlcnR5PSJlZGl0b3IiIHByZXBlbmQ9IkFORCI+DQorCQkJCQlob3Vycz0jZWRpdG9yIw0KKwkJCQk8L2lzTm90TnVsbD4NCisJCQkJPGlzTm90TnVsbCBwcm9wZXJ0eT0iZW50cnlfa2V5IiBwcmVwZW5kPSJBTkQiPg0KKwkJCQkJcGtfZW50cnk9I2VudHJ5X2tleSMNCisJCQkJPC9pc05vdE51bGw+DQorCQkJPC9keW5hbWljPgkJCQ0KKwkJPC9zZWxlY3Q+DQorCQkNCisJCTxzZWxlY3QgaWQ9ImVudHJ5X2luaXRpYWwiIHBhcmFtQ2xhc3M9InN0cmluZyIgcmVzdWx0Q2xhc3M9InN0cmluZyI+CQkNCisJCQlTRUxFQ1QgQ09VTlQoKikgDQorCQkJRlJPTSBlbnRyeQ0KKwkJCVdIRVJFIGxhc3RfbmFtZSBMSUtFICN2YWx1ZSMNCisJCTwvc2VsZWN0PgkJCQkJCQkJCQ0KKwkJDQorCQk8aW5zZXJ0IGlkPSJlbnRyeV9pbnNlcnQiIHBhcmFtZXRlck1hcD0iZW50cnlfc2F2ZV9wYXJhbSI+DQorIMKgIMKgCQlJTlNFUlQgSU5UTyBlbnRyeSAoIMKgIMKgCQkJDQorCQkJCWxhc3RfbmFtZSwNCisJCQkJZmlyc3RfbmFtZSwNCisJCQkJZXh0ZW5zaW9uLA0KKwkJCQl1c2VyX25hbWUsDQorCQkJCWhpcmVkLA0KKwkJCQlob3VycywNCisJCQkJZWRpdG9yLA0KKwkJCQlwa19lbnRyeQ0KKwkJCQkpDQorCQkJVkFMVUVTICg/LD8sPyw/LCA/LD8sPyw/KQ0KKwkJPC9pbnNlcnQ+CQkNCisNCisJCTx1cGRhdGUgaWQ9ImVudHJ5X3VwZGF0ZSIgcGFyYW1ldGVyTWFwPSJlbnRyeV9zYXZlX3BhcmFtIj4NCisJCQlVUERBVEUgZW50cnkgU0VUDQorCQkJCWxhc3RfbmFtZT0/LA0KKwkJCQlmaXJzdF9uYW1lPT8sDQorCQkJCWV4dGVuc2lvbj0/LA0KKwkJCQl1c2VyX25hbWU9PywNCisJCQkJaGlyZWQ9PywNCisJCQkJaG91cnM9PywNCisJCQkJZWRpdG9yPT8NCisJCQlXSEVSRSANCisJCQkJcGtfZW50cnk9Pw0KKwkJPC91cGRhdGU+DQorDQorICAgIDxkZWxldGUgaWQ9ImVudHJ5X2RlbGV0ZSIgcGFyYW1DbGFzcz0iSGFzaHRhYmxlIj4NCisgICAgICAgREVMRVRFIEZST00gZW50cnkgV0hFUkUgcGtfZW50cnk9I2VudHJ5X2tleSM7ICAgICAgICANCisgICAgPC9kZWxldGU+DQorDQorICA8L3N0YXRlbWVudHM+DQorPC9zcWxNYXA+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL1dlYi5Db25maWcgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvV2ViLkNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWJiNDkxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL1dlYi5Db25maWcKQEAgLTAsMCArMSw0MCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+DQorPCEtLSANCisgICAgTm90ZTogQXMgYW4gYWx0ZXJuYXRpdmUgdG8gaGFuZCBlZGl0aW5nIHRoaXMgZmlsZSB5b3UgY2FuIHVzZSB0aGUgDQorICAgIHdlYiBhZG1pbiB0b29sIHRvIGNvbmZpZ3VyZSBzZXR0aW5ncyBmb3IgeW91ciBhcHBsaWNhdGlvbi4gVXNlDQorICAgIHRoZSBXZWJzaXRlLT5Bc3AuTmV0IENvbmZpZ3VyYXRpb24gb3B0aW9uIGluIFZpc3VhbCBTdHVkaW8uDQorICAgIEEgZnVsbCBsaXN0IG9mIHNldHRpbmdzIGFuZCBjb21tZW50cyBjYW4gYmUgZm91bmQgaW4gDQorICAgIG1hY2hpbmUuY29uZmlnLmNvbW1lbnRzIHVzdWFsbHkgbG9jYXRlZCBpbiANCisgICAgXFdpbmRvd3NcTWljcm9zb2Z0Lk5ldFxGcmFtZXdvcmtcdjIueFxDb25maWcgDQorLS0+DQorPGNvbmZpZ3VyYXRpb24+DQorCTxhcHBTZXR0aW5ncy8+DQorCTxjb25uZWN0aW9uU3RyaW5ncy8+DQorCTxzeXN0ZW0ud2ViPg0KKwkJPCEtLSANCisgICAgICAgICAgICBTZXQgY29tcGlsYXRpb24gZGVidWc9InRydWUiIHRvIGluc2VydCBkZWJ1Z2dpbmcgDQorICAgICAgICAgICAgc3ltYm9scyBpbnRvIHRoZSBjb21waWxlZCBwYWdlLiBCZWNhdXNlIHRoaXMgDQorICAgICAgICAgICAgYWZmZWN0cyBwZXJmb3JtYW5jZSwgc2V0IHRoaXMgdmFsdWUgdG8gdHJ1ZSBvbmx5IA0KKyAgICAgICAgICAgIGR1cmluZyBkZXZlbG9wbWVudC4NCisgICAgICAgIC0tPg0KKwkJPGNvbXBpbGF0aW9uIGRlYnVnPSJ0cnVlIi8+DQorCQk8IS0tDQorICAgICAgICAgICAgVGhlIDxhdXRoZW50aWNhdGlvbj4gc2VjdGlvbiBlbmFibGVzIGNvbmZpZ3VyYXRpb24gDQorICAgICAgICAgICAgb2YgdGhlIHNlY3VyaXR5IGF1dGhlbnRpY2F0aW9uIG1vZGUgdXNlZCBieSANCisgICAgICAgICAgICBBU1AuTkVUIHRvIGlkZW50aWZ5IGFuIGluY29taW5nIHVzZXIuIA0KKyAgICAgICAgLS0+DQorCQk8YXV0aGVudGljYXRpb24gbW9kZT0iV2luZG93cyIvPg0KKwkJPCEtLQ0KKyAgICAgICAgICAgIFRoZSA8Y3VzdG9tRXJyb3JzPiBzZWN0aW9uIGVuYWJsZXMgY29uZmlndXJhdGlvbiANCisgICAgICAgICAgICBvZiB3aGF0IHRvIGRvIGlmL3doZW4gYW4gdW5oYW5kbGVkIGVycm9yIG9jY3VycyANCisgICAgICAgICAgICBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBvZiBhIHJlcXVlc3QuIFNwZWNpZmljYWxseSwgDQorICAgICAgICAgICAgaXQgZW5hYmxlcyBkZXZlbG9wZXJzIHRvIGNvbmZpZ3VyZSBodG1sIGVycm9yIHBhZ2VzIA0KKyAgICAgICAgICAgIHRvIGJlIGRpc3BsYXllZCBpbiBwbGFjZSBvZiBhIGVycm9yIHN0YWNrIHRyYWNlLg0KKw0KKyAgICAgICAgPGN1c3RvbUVycm9ycyBtb2RlPSJSZW1vdGVPbmx5IiBkZWZhdWx0UmVkaXJlY3Q9IkdlbmVyaWNFcnJvclBhZ2UuaHRtIj4NCisgICAgICAgICAgICA8ZXJyb3Igc3RhdHVzQ29kZT0iNDAzIiByZWRpcmVjdD0iTm9BY2Nlc3MuaHRtIiAvPg0KKyAgICAgICAgICAgIDxlcnJvciBzdGF0dXNDb2RlPSI0MDQiIHJlZGlyZWN0PSJGaWxlTm90Rm91bmQuaHRtIiAvPg0KKyAgICAgICAgPC9jdXN0b21FcnJvcnM+DQorICAgICAgICAtLT4NCisJPC9zeXN0ZW0ud2ViPg0KKzwvY29uZmlndXJhdGlvbj4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvcHJvdmlkZXJzLmNvbmZpZyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1dlYi9wcm92aWRlcnMuY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwYTUyNDEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvcHJvdmlkZXJzLmNvbmZpZwpAQCAtMCwwICsxLDMwNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCis8cHJvdmlkZXJzIA0KK3htbG5zPSJodHRwOi8vaWJhdGlzLmFwYWNoZS5vcmcvcHJvdmlkZXJzIiANCit4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4NCisNCis8Y2xlYXIvPg0KKzxwcm92aWRlciANCisJICBuYW1lPSJzcWxTZXJ2ZXIxLjAiIA0KKwkgIGRlc2NyaXB0aW9uPSJNaWNyb3NvZnQgU1FMIFNlcnZlciwgcHJvdmlkZXIgVjEuMC4zMzAwLjAgaW4gZnJhbWV3b3JrIC5ORVQgVjEuMCIgDQorCSAgZW5hYmxlZD0iZmFsc2UiIA0KKwkgIGFzc2VtYmx5TmFtZT0iU3lzdGVtLkRhdGEsIFZlcnNpb249MS4wLjMzMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiBjb25uZWN0aW9uQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb25uZWN0aW9uIiANCisJICBjb21tYW5kQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb21tYW5kIiANCisJICBwYXJhbWV0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbFBhcmFtZXRlciIgDQorCSAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbERiVHlwZSIgDQorCSAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9IlNxbERiVHlwZSIgDQorCSAgZGF0YUFkYXB0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbERhdGFBZGFwdGVyIiANCisJICBjb21tYW5kQnVpbGRlckNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsQ29tbWFuZEJ1aWxkZXIiIA0KKwkgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJmYWxzZSIgDQorCSAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9InRydWUiIA0KKwkgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJ0cnVlIiANCisJICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgICAgYWxsb3dNQVJTPSJmYWxzZSINCisgIC8+DQorPHByb3ZpZGVyIA0KKwkgIG5hbWU9InNxbFNlcnZlcjEuMSIgDQorCSAgZGVzY3JpcHRpb249Ik1pY3Jvc29mdCBTUUwgU2VydmVyLCBwcm92aWRlciBWMS4wLjUwMDAuMCBpbiBmcmFtZXdvcmsgLk5FVCBWMS4xIiANCisJICBlbmFibGVkPSJ0cnVlIg0KKwkgIGRlZmF1bHQ9InRydWUiIA0KKwkgIGFzc2VtYmx5TmFtZT0iU3lzdGVtLkRhdGEsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiANCisJICBjb25uZWN0aW9uQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb25uZWN0aW9uIiANCisJICBjb21tYW5kQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbENsaWVudC5TcWxDb21tYW5kIiANCisJICBwYXJhbWV0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbFBhcmFtZXRlciIgDQorCSAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IlN5c3RlbS5EYXRhLlNxbERiVHlwZSIgDQorCSAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9IlNxbERiVHlwZSIgDQorCSAgZGF0YUFkYXB0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbERhdGFBZGFwdGVyIiANCisJICBjb21tYW5kQnVpbGRlckNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsQ29tbWFuZEJ1aWxkZXIiIA0KKwkgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJmYWxzZSIgDQorCSAgdXNlUGFyYW1ldGVyUHJlZml4SW5TcWw9InRydWUiIA0KKwkgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJ0cnVlIiANCisJICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgICAgYWxsb3dNQVJTPSJmYWxzZSINCisgIC8+DQorPHByb3ZpZGVyDQorICAgIG5hbWU9InNxbFNlcnZlcjIuMCINCisgICAgZW5hYmxlZD0iZmFsc2UiDQorICAgIGRlc2NyaXB0aW9uPSJNaWNyb3NvZnQgU1FMIFNlcnZlciwgcHJvdmlkZXIgVjIuMC4wLjAgaW4gZnJhbWV3b3JrIC5ORVQgVjIuMCIgDQorICAgIGFzc2VtYmx5TmFtZT0iU3lzdGVtLkRhdGEsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiANCisgICAgY29ubmVjdGlvbkNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsQ29ubmVjdGlvbiIgDQorICAgIGNvbW1hbmRDbGFzcz0iU3lzdGVtLkRhdGEuU3FsQ2xpZW50LlNxbENvbW1hbmQiDQorICAgIHBhcmFtZXRlckNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsUGFyYW1ldGVyIg0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iU3lzdGVtLkRhdGEuU3FsRGJUeXBlIg0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iU3FsRGJUeXBlIg0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsRGF0YUFkYXB0ZXIiDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IiBTeXN0ZW0uRGF0YS5TcWxDbGllbnQuU3FsQ29tbWFuZEJ1aWxkZXIiDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzID0gImZhbHNlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbCA9ICJ0cnVlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlciA9ICJ0cnVlIiANCisgICAgcGFyYW1ldGVyUHJlZml4PSJAIg0KKyAgICBhbGxvd01BUlM9ImZhbHNlIg0KKyAgICAvPg0KKzxwcm92aWRlciBuYW1lPSJPbGVEYjEuMSIgDQorCSAgZGVzY3JpcHRpb249Ik9sZURiLCBwcm92aWRlciBWMS4wLjUwMDAuMCBpbiBmcmFtZXdvcmsgLk5FVCBWMS4xIiANCisJICBlbmFibGVkPSJ0cnVlIg0KKwkgIGFzc2VtYmx5TmFtZT0iU3lzdGVtLkRhdGEsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiANCisgICAgY29ubmVjdGlvbkNsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYkNvbm5lY3Rpb24iIA0KKwkgIGNvbW1hbmRDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJDb21tYW5kIiANCisJICBwYXJhbWV0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJQYXJhbWV0ZXIiIA0KKwkgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYlR5cGUiIA0KKwkgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJPbGVEYlR5cGUiIA0KKwkgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiRGF0YUFkYXB0ZXIiIA0KKwkgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiQ29tbWFuZEJ1aWxkZXIiIA0KKwkgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJ0cnVlIiANCisJICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0iZmFsc2UiIA0KKwkgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJmYWxzZSIgDQorCSAgcGFyYW1ldGVyUHJlZml4PSIiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiICAgIA0KKyAgICAvPg0KKyAgPHByb3ZpZGVyIG5hbWU9Ik9sZURiMi4wIiANCisgICAgZGVzY3JpcHRpb249Ik9sZURiLCBwcm92aWRlciBWMi4wLjAuMCBpbiBmcmFtZXdvcmsgLk5FVCBWMiIgDQorICAgIGVuYWJsZWQ9ImZhbHNlIg0KKyAgICBhc3NlbWJseU5hbWU9IlN5c3RlbS5EYXRhLCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSIgDQorICAgIGNvbm5lY3Rpb25DbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJDb25uZWN0aW9uIiANCisgICAgY29tbWFuZENsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYkNvbW1hbmQiIA0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iU3lzdGVtLkRhdGEuT2xlRGIuT2xlRGJUeXBlIiANCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9Ik9sZURiVHlwZSIgDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9sZURiLk9sZURiRGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PbGVEYi5PbGVEYkNvbW1hbmRCdWlsZGVyIiANCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9InRydWUiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0iZmFsc2UiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0iZmFsc2UiIA0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IiINCisgICAgYWxsb3dNQVJTPSJmYWxzZSINCisgICAgLz4gIA0KKyAgPHByb3ZpZGVyIA0KKyAgICBuYW1lPSJPZGJjMS4xIiANCisgICAgZGVzY3JpcHRpb249Ik9kYmMsIHByb3ZpZGVyIFYxLjAuNTAwMC4wIGluIGZyYW1ld29yayAuTkVUIFYxLjEiIA0KKyAgICBlbmFibGVkPSJ0cnVlIiANCisgICAgYXNzZW1ibHlOYW1lPSJTeXN0ZW0uRGF0YSwgVmVyc2lvbj0xLjAuNTAwMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkiIA0KKyAgICBjb25uZWN0aW9uQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY0Nvbm5lY3Rpb24iIA0KKyAgICBjb21tYW5kQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY0NvbW1hbmQiIA0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjUGFyYW1ldGVyIiANCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY1R5cGUiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iT2RiY1R5cGUiIA0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PZGJjLk9kYmNEYXRhQWRhcHRlciIgDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY0NvbW1hbmRCdWlsZGVyIiANCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9InRydWUiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0iZmFsc2UiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0iZmFsc2UiIA0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiICAgIA0KKyAgICAvPg0KKyAgPHByb3ZpZGVyIA0KKyAgICBuYW1lPSJPZGJjMi4wIiANCisgICAgZGVzY3JpcHRpb249Ik9kYmMsIHByb3ZpZGVyIFYyLjAuMC4wIGluIGZyYW1ld29yayAuTkVUIFYyIiANCisgICAgZW5hYmxlZD0iZmFsc2UiIA0KKyAgICBhc3NlbWJseU5hbWU9IlN5c3RlbS5EYXRhLCBWZXJzaW9uPTIuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OSIgDQorICAgIGNvbm5lY3Rpb25DbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjQ29ubmVjdGlvbiIgDQorICAgIGNvbW1hbmRDbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjQ29tbWFuZCIgDQorICAgIHBhcmFtZXRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PZGJjLk9kYmNQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjVHlwZSIgDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJPZGJjVHlwZSIgDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IlN5c3RlbS5EYXRhLk9kYmMuT2RiY0RhdGFBZGFwdGVyIiANCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iU3lzdGVtLkRhdGEuT2RiYy5PZGJjQ29tbWFuZEJ1aWxkZXIiIA0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0idHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJmYWxzZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iQCINCisgICAgYWxsb3dNQVJTPSJmYWxzZSIgICAgDQorICAvPiAgDQorICA8cHJvdmlkZXIgDQorICAgIG5hbWU9Im9yYWNsZTkuMiIgDQorICAgIGRlc2NyaXB0aW9uPSJPcmFjbGUsIE9yYWNsZSBwcm92aWRlciBWOS4yLjAuNDAxIiANCisgICAgZW5hYmxlZD0iZmFsc2UiIA0KKyAgICBhc3NlbWJseU5hbWU9Ik9yYWNsZS5EYXRhQWNjZXNzLCBWZXJzaW9uPTkuMi4wLjQwMSwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj04OWI0ODNmNDI5YzQ3MzQyIiBjb25uZWN0aW9uQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVDb25uZWN0aW9uIiANCisgICAgY29tbWFuZENsYXNzPSJPcmFjbGUuRGF0YUFjY2Vzcy5DbGllbnQuT3JhY2xlQ29tbWFuZCIgDQorICAgIHBhcmFtZXRlckNsYXNzPSJPcmFjbGUuRGF0YUFjY2Vzcy5DbGllbnQuT3JhY2xlUGFyYW1ldGVyIiANCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVEYlR5cGUiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iT3JhY2xlRGJUeXBlIiANCisgICAgZGF0YUFkYXB0ZXJDbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZURhdGFBZGFwdGVyIiANCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZUNvbW1hbmRCdWlsZGVyIiANCisgICAgdXNlUG9zaXRpb25hbFBhcmFtZXRlcnM9ImZhbHNlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0idHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJmYWxzZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iOiIgDQorICAgIHVzZURlcml2ZVBhcmFtZXRlcnM9ImZhbHNlIg0KKyAgICBhbGxvd01BUlM9ImZhbHNlIiAgICANCisgIC8+DQorICA8cHJvdmlkZXIgDQorICAgIG5hbWU9Im9yYWNsZTEwLjEiIA0KKyAgICBkZXNjcmlwdGlvbj0iT3JhY2xlLCBvcmFjbGUgcHJvdmlkZXIgVjEwLjEuMC4zMDEiDQorICAgIGVuYWJsZWQ9ImZhbHNlIiANCisgICAgYXNzZW1ibHlOYW1lPSJPcmFjbGUuRGF0YUFjY2VzcywgVmVyc2lvbj0xMC4xLjAuMzAxLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTg5YjQ4M2Y0MjljNDczNDIiIGNvbm5lY3Rpb25DbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZUNvbm5lY3Rpb24iIA0KKyAgICBjb21tYW5kQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVDb21tYW5kIiANCisgICAgcGFyYW1ldGVyQ2xhc3M9Ik9yYWNsZS5EYXRhQWNjZXNzLkNsaWVudC5PcmFjbGVQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iT3JhY2xlLkRhdGFBY2Nlc3MuQ2xpZW50Lk9yYWNsZURiVHlwZSIgDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJPcmFjbGVEYlR5cGUiIA0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJPcmFjbGUuRGF0YUFjY2Vzcy5DbGllbnQuT3JhY2xlRGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJPcmFjbGUuRGF0YUFjY2Vzcy5DbGllbnQuT3JhY2xlQ29tbWFuZEJ1aWxkZXIiIA0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0idHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0idHJ1ZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iOiIgDQorICAgIHVzZURlcml2ZVBhcmFtZXRlcnM9ImZhbHNlIg0KKyAgICBhbGxvd01BUlM9ImZhbHNlIiAgICANCisgIC8+DQorICA8cHJvdmlkZXIgDQorICAgIG5hbWU9Im9yYWNsZUNsaWVudDEuMCIgDQorICAgIGRlc2NyaXB0aW9uPSJPcmFjbGUsIE1pY3Jvc29mdCBwcm92aWRlciBWMS4wLjUwMDAuMCIgDQorICAgIGVuYWJsZWQ9ImZhbHNlIiANCisgICAgYXNzZW1ibHlOYW1lPSJTeXN0ZW0uRGF0YS5PcmFjbGVDbGllbnQsIFZlcnNpb249MS4wLjUwMDAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5IiBjb25uZWN0aW9uQ2xhc3M9IlN5c3RlbS5EYXRhLk9yYWNsZUNsaWVudC5PcmFjbGVDb25uZWN0aW9uIiANCisgICAgY29tbWFuZENsYXNzPSJTeXN0ZW0uRGF0YS5PcmFjbGVDbGllbnQuT3JhY2xlQ29tbWFuZCIgDQorICAgIHBhcmFtZXRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PcmFjbGVDbGllbnQuT3JhY2xlUGFyYW1ldGVyIiANCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9IlN5c3RlbS5EYXRhLk9yYWNsZUNsaWVudC5PcmFjbGVUeXBlIiANCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9Ik9yYWNsZVR5cGUiIA0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PcmFjbGVDbGllbnQuT3JhY2xlRGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJTeXN0ZW0uRGF0YS5PcmFjbGVDbGllbnQuT3JhY2xlQ29tbWFuZEJ1aWxkZXIiIA0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0iZmFsc2UiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0idHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJmYWxzZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iOiINCisgICAgYWxsb3dNQVJTPSJmYWxzZSIgICAgDQorICAvPg0KKyAgPHByb3ZpZGVyIA0KKyAgICBuYW1lPSJCeXRlRngiIA0KKyAgICBkZXNjcmlwdGlvbj0iTXlTUUwsIEJ5dGVGeCBwcm92aWRlciBWMC43LjYuMTUwNzMiIA0KKyAgICBlbmFibGVkPSJmYWxzZSIgDQorICAgIGFzc2VtYmx5TmFtZT0iQnl0ZUZYLk15U3FsQ2xpZW50LCBWZXJzaW9uPTAuNy42LjE1MDczLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWYyZmVmNmZlZDE3MzJmYzEiIGNvbm5lY3Rpb25DbGFzcz0iQnl0ZUZYLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxDb25uZWN0aW9uIiANCisgICAgY29tbWFuZENsYXNzPSJCeXRlRlguRGF0YS5NeVNxbENsaWVudC5NeVNxbENvbW1hbmQiIA0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iQnl0ZUZYLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iQnl0ZUZYLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxEYlR5cGUiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iTXlTcWxEYlR5cGUiIA0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJCeXRlRlguRGF0YS5NeVNxbENsaWVudC5NeVNxbERhdGFBZGFwdGVyIiANCisgICAgY29tbWFuZEJ1aWxkZXJDbGFzcz0iQnl0ZUZYLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxDb21tYW5kQnVpbGRlciIgDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9InRydWUiIA0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiICAgIA0KKyAgLz4NCisgIDxwcm92aWRlciANCisgICAgbmFtZT0iTXlTcWwiIA0KKyAgICBkZXNjcmlwdGlvbj0iTXlTUUwsIE15U1FMIHByb3ZpZGVyIDEuMC43LjMwMDcyIiANCisgICAgZW5hYmxlZD0idHJ1ZSIgDQorICAgIGFzc2VtYmx5TmFtZT0iTXlTcWwuRGF0YSwgVmVyc2lvbj0xLjAuNy4zMDA3MiwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1jNTY4N2ZjODg5NjljNDRkIiBjb25uZWN0aW9uQ2xhc3M9Ik15U3FsLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxDb25uZWN0aW9uIiANCisgICAgY29tbWFuZENsYXNzPSJNeVNxbC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsQ29tbWFuZCIgDQorICAgIHBhcmFtZXRlckNsYXNzPSJNeVNxbC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsUGFyYW1ldGVyIiANCisgICAgcGFyYW1ldGVyRGJUeXBlQ2xhc3M9Ik15U3FsLkRhdGEuTXlTcWxDbGllbnQuTXlTcWxEYlR5cGUiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVQcm9wZXJ0eT0iTXlTcWxEYlR5cGUiIA0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJNeVNxbC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsRGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJNeVNxbC5EYXRhLk15U3FsQ2xpZW50Lk15U3FsQ29tbWFuZEJ1aWxkZXIiIA0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0iZmFsc2UiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbD0idHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJ0cnVlIiANCisgICAgcGFyYW1ldGVyUHJlZml4PSI/Ig0KKyAgICBhbGxvd01BUlM9ImZhbHNlIiAgICANCisgIC8+DQorICA8cHJvdmlkZXIgbmFtZT0iU1FMaXRlMyINCisgICAgZGVzY3JpcHRpb249IlNRTGl0ZSwgU1FMaXRlLk5FVCBwcm92aWRlciBWMC4yMS4xODY5LjM3OTQiDQorICAgIGVuYWJsZWQ9ImZhbHNlIg0KKyAgICBhc3NlbWJseU5hbWU9IlNRTGl0ZS5ORVQsIFZlcnNpb249MC4yMS4xODY5LjM3OTQsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YzI3M2JkMzc1ZTY5NWY5YyIgDQorICAgIGNvbm5lY3Rpb25DbGFzcz0iRmluaXNhci5TUUxpdGUuU1FMaXRlQ29ubmVjdGlvbiINCisgICAgY29tbWFuZENsYXNzPSJGaW5pc2FyLlNRTGl0ZS5TUUxpdGVDb21tYW5kIg0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iRmluaXNhci5TUUxpdGUuU1FMaXRlUGFyYW1ldGVyIg0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iU3lzdGVtLkRhdGEuRGJUeXBlLCBTeXN0ZW0uRGF0YSINCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9IkRiVHlwZSINCisgICAgZGF0YUFkYXB0ZXJDbGFzcz0iRmluaXNhci5TUUxpdGUuU1FMaXRlRGF0YUFkYXB0ZXIiDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IkZpbmlzYXIuU1FMaXRlLlNRTGl0ZUNvbW1hbmRCdWlsZGVyIg0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0iZmFsc2UiDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIg0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblBhcmFtZXRlcj0idHJ1ZSINCisgICAgcGFyYW1ldGVyUHJlZml4PSJAIg0KKyAgICBzZXREYlBhcmFtZXRlclByZWNpc2lvbj0iZmFsc2UiDQorICAgIHNldERiUGFyYW1ldGVyU2NhbGU9ImZhbHNlIg0KKyAgICBhbGxvd01BUlM9ImZhbHNlIiAgICANCisgIC8+DQorICA8cHJvdmlkZXINCisgICAgbmFtZT0iRmlyZWJpcmQxLjciIA0KKyAgICBkZXNjcmlwdGlvbj0iRmlyZWJpcmQsIEZpcmViaXJkIFNRTCAuTkVUIHByb3ZpZGVyIFYxLjcuMC4zMzIwMCIgDQorICAgIGVuYWJsZWQ9ImZhbHNlIiANCisgICAgYXNzZW1ibHlOYW1lPSJGaXJlYmlyZFNxbC5EYXRhLkZpcmViaXJkLCBWZXJzaW9uPTEuNy4wLjMzMjAwLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWZhODQzZDE4MDI5NDM2OWQiIGNvbm5lY3Rpb25DbGFzcz0iRmlyZWJpcmRTcWwuRGF0YS5GaXJlYmlyZC5GYkNvbm5lY3Rpb24iIA0KKyAgICBjb21tYW5kQ2xhc3M9IkZpcmViaXJkU3FsLkRhdGEuRmlyZWJpcmQuRmJDb21tYW5kIiANCisgICAgcGFyYW1ldGVyQ2xhc3M9IkZpcmViaXJkU3FsLkRhdGEuRmlyZWJpcmQuRmJQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iRmlyZWJpcmRTcWwuRGF0YS5GaXJlYmlyZC5GYkRiVHlwZSIgDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJGYkRiVHlwZSIgDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9IkZpcmViaXJkU3FsLkRhdGEuRmlyZWJpcmQuRmJEYXRhQWRhcHRlciIgDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9IkZpcmViaXJkU3FsLkRhdGEuRmlyZWJpcmQuRmJDb21tYW5kQnVpbGRlciIgDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9InRydWUiIA0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IkAiDQorICAgIGFsbG93TUFSUz0iZmFsc2UiICAgIA0KKyAgLz4NCisgIDxwcm92aWRlcg0KKyAgICBuYW1lPSJQb3N0Z3JlU3FsMC45OS4xLjAiIA0KKyAgICBkZXNjcmlwdGlvbj0iUG9zdGdyZVNxbCwgTnBnc3FsIHByb3ZpZGVyIFYwLjk5LjEuMCIgDQorICAgIGVuYWJsZWQ9ImZhbHNlIiANCisgICAgYXNzZW1ibHlOYW1lPSJOcGdzcWwsIFZlcnNpb249MC45OS4xLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49NWQ4YjkwZDUyZjQ2ZmRhNyIgDQorICAgIGNvbm5lY3Rpb25DbGFzcz0iTnBnc3FsLk5wZ3NxbENvbm5lY3Rpb24iIA0KKyAgICBjb21tYW5kQ2xhc3M9Ik5wZ3NxbC5OcGdzcWxDb21tYW5kIiANCisgICAgcGFyYW1ldGVyQ2xhc3M9Ik5wZ3NxbC5OcGdzcWxQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iTnBnc3FsVHlwZXMuTnBnc3FsRGJUeXBlIiANCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9Ik5wZ3NxbERiVHlwZSIgDQorICAgIGRhdGFBZGFwdGVyQ2xhc3M9Ik5wZ3NxbC5OcGdzcWxEYXRhQWRhcHRlciIgDQorICAgIGNvbW1hbmRCdWlsZGVyQ2xhc3M9Ik5wZ3NxbC5OcGdzcWxDb21tYW5kQnVpbGRlciIgDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzPSJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJ0cnVlIiANCisgICAgdXNlUGFyYW1ldGVyUHJlZml4SW5QYXJhbWV0ZXI9InRydWUiIA0KKyAgICBwYXJhbWV0ZXJQcmVmaXg9IjoiDQorICAgIGFsbG93TUFSUz0idHJ1ZSIgICAgDQorICAvPgkNCisgIDxwcm92aWRlciANCisgICAgbmFtZT0iaURiMi4xMCIgDQorICAgIGRlc2NyaXB0aW9uPSJJQk0gREIyIFByb3ZpZGVyLCBWIDEwLjAiIA0KKyAgICBlbmFibGVkPSJmYWxzZSIgDQorICAgIGFzc2VtYmx5TmFtZT0iSUJNLkRhdGEuREIyLmlTZXJpZXMsIFZlcnNpb249MTAuMC4wLjAsQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj05Y2RiMmViZmIxZjkzYTI2LCBDdXN0b209bnVsbCIgY29ubmVjdGlvbkNsYXNzPSJJQk0uRGF0YS5EQjIuaVNlcmllcy5pREIyQ29ubmVjdGlvbiIgDQorICAgIGNvbW1hbmRDbGFzcz0iSUJNLkRhdGEuREIyLmlTZXJpZXMuaURCMkNvbW1hbmQiIA0KKyAgICBwYXJhbWV0ZXJDbGFzcz0iSUJNLkRhdGEuREIyLmlTZXJpZXMuaURCMlBhcmFtZXRlciIgDQorICAgIHBhcmFtZXRlckRiVHlwZUNsYXNzPSJJQk0uRGF0YS5EQjIuaVNlcmllcy5pREIyRGJUeXBlIiANCisgICAgcGFyYW1ldGVyRGJUeXBlUHJvcGVydHk9ImlEQjJEYlR5cGUiIA0KKyAgICBkYXRhQWRhcHRlckNsYXNzPSJJQk0uRGF0YS5EQjIuaVNlcmllcy5pREIyRGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJJQk0uRGF0YS5EQjIuaVNlcmllcy5pREIyQ29tbWFuZEJ1aWxkZXIiIA0KKyAgICB1c2VQb3NpdGlvbmFsUGFyYW1ldGVycz0idHJ1ZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluU3FsPSJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyPSJmYWxzZSIgDQorICAgIHBhcmFtZXRlclByZWZpeD0iIg0KKyAgICBhbGxvd01BUlM9ImZhbHNlIiAgICANCisgIC8+DQorICA8cHJvdmlkZXIgDQorICAgIG5hbWU9IkluZm9ybWl4IiANCisgICAgZGVzY3JpcHRpb249IkluZm9ybWl4IE5FVCBQcm92aWRlciwgMi44MS4wLjAiIA0KKyAgICBlbmFibGVkPSJmYWxzZSIgDQorICAgIGFzc2VtYmx5TmFtZT0iSUJNLkRhdGEuSW5mb3JtaXgsIFZlcnNpb249Mi44MS4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49N2MzMDdiOTFhYTEzZDIwOCIgDQorICAgIGNvbm5lY3Rpb25DbGFzcz0iSUJNLkRhdGEuSW5mb3JtaXguSWZ4Q29ubmVjdGlvbiIgDQorICAgIGNvbW1hbmRDbGFzcz0iSUJNLkRhdGEuSW5mb3JtaXguSWZ4Q29tbWFuZCIgDQorICAgIHBhcmFtZXRlckNsYXNzPSJJQk0uRGF0YS5JbmZvcm1peC5JZnhQYXJhbWV0ZXIiIA0KKyAgICBwYXJhbWV0ZXJEYlR5cGVDbGFzcz0iSUJNLkRhdGEuSW5mb3JtaXguSWZ4VHlwZSIgDQorICAgIHBhcmFtZXRlckRiVHlwZVByb3BlcnR5PSJJZnhUeXBlIiANCisgICAgZGF0YUFkYXB0ZXJDbGFzcz0iSUJNLkRhdGEuSW5mb3JtaXguSWZ4RGF0YUFkYXB0ZXIiIA0KKyAgICBjb21tYW5kQnVpbGRlckNsYXNzPSJJQk0uRGF0YS5JbmZvcm1peC5JZnhDb21tYW5kQnVpbGRlciIgDQorICAgIHVzZVBvc2l0aW9uYWxQYXJhbWV0ZXJzID0gInRydWUiIA0KKyAgICB1c2VQYXJhbWV0ZXJQcmVmaXhJblNxbCA9ICJmYWxzZSIgDQorICAgIHVzZVBhcmFtZXRlclByZWZpeEluUGFyYW1ldGVyID0gImZhbHNlIiANCisgICAgdXNlRGVyaXZlUGFyYW1ldGVycz0iZmFsc2UiIA0KKyAgICBhbGxvd01BUlM9ImZhbHNlIiAgICANCisJLz4NCis8L3Byb3ZpZGVycz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvc3FsbWFwLmNvbmZpZyBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1dlYi9zcWxtYXAuY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhODYyMzkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUGhvbmVCb29rMi9wcm9qZWN0cy9XZWIvc3FsbWFwLmNvbmZpZwpAQCAtMCwwICsxLDIwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KKzxzcWxNYXBDb25maWcgeG1sbnM9Imh0dHA6Ly9pYmF0aXMuYXBhY2hlLm9yZy9kYXRhTWFwcGVyIiB4bWxuczp4c2k9IiBodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgPg0KKw0KKyAgICA8cHJvcGVydGllcyByZXNvdXJjZT0ic3FsbWFwLmNvbmZpZy54bWwiLz4NCisgICAgDQorCTxzZXR0aW5ncz4NCisJCTxzZXR0aW5nIHVzZVN0YXRlbWVudE5hbWVzcGFjZXM9ImZhbHNlIi8+DQorCQk8c2V0dGluZyBjYWNoZU1vZGVsc0VuYWJsZWQ9InRydWUiLz4NCisJPC9zZXR0aW5ncz4NCisJDQorCTxkYXRhYmFzZT4JDQorCQk8cHJvdmlkZXIgbmFtZT0iJHtwcm92aWRlcn0iLz4NCisJCTxkYXRhU291cmNlIG5hbWU9ImRlZmF1bHQiICBjb25uZWN0aW9uU3RyaW5nPSIke2RldmVsb3BtZW50fSIvPg0KKwk8L2RhdGFiYXNlPg0KKw0KKwk8c3FsTWFwcz4NCisJCTxzcWxNYXAgcmVzb3VyY2U9IiR7cm9vdH1SZXNvdXJjZXMvUXVlcmllcy54bWwiLz4NCisJPC9zcWxNYXBzPg0KKw0KKzwvc3FsTWFwQ29uZmlnPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1dlYi9zcWxtYXAuY29uZmlnLnhtbCBiL3N0cnV0cy1zYW5kYm94L292ZXJkcml2ZS9QaG9uZUJvb2syL3Byb2plY3RzL1dlYi9zcWxtYXAuY29uZmlnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmQ0OWU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1Bob25lQm9vazIvcHJvamVjdHMvV2ViL3NxbG1hcC5jb25maWcueG1sCkBAIC0wLDAgKzEsNyBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+IA0KKzxzZXR0aW5ncz4NCisJPGFkZCBrZXk9InJvb3QiIHZhbHVlPSIuLyIgLz4NCisJPGFkZCBrZXk9InByb3ZpZGVyIiB2YWx1ZT0iTXlTcWwiIC8+DQorCTxhZGQga2V5PSJkZXZlbG9wbWVudCIgdmFsdWU9Ikhvc3Q9Y2xpZmZvcmQ7RGF0YWJhc2U9cGhvbmVib29rO1VzZXJuYW1lPXBob25lYm9va0FwcDtQYXNzd29yZD1wMW5IMzRkIiAvPg0KKwk8YWRkIGtleT0icHJvZHVjdGlvbiIgdmFsdWU9Ikhvc3Q9emlwcHk7RGF0YWJhc2U9cGhvbmVib29rO1VzZXJuYW1lPXBob25lYm9va0FwcDtQYXNzd29yZD1wMW5IMzRkIiAvPg0KKzwvc2V0dGluZ3M+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1JFQURNRS50eHQgYi9zdHJ1dHMtc2FuZGJveC9vdmVyZHJpdmUvUkVBRE1FLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjFkN2U1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvb3ZlcmRyaXZlL1JFQURNRS50eHQKQEAgLTAsMCArMSwxNzQgQEAKK0Fib3V0IE92ZXJEcml2ZQ0KKw0KK092ZXJEcml2ZSBpcyBhIHdvcmtpbmcgd2hpdGVib2FyZCBwcm9wb3NhbCBmb3IgYSBuZXcgU3RydXRzIHN1YnByb2plY3QuIA0KK1RoZSBzdWJwcm9qZWN0IHdpbGwgZmVhdHVyZSBhIHNldCBvZiBiZXN0LXByYWN0aWNlIGFwcGxpY2F0aW9ucyB3cml0dGVuIA0KK3VzaW5nIGEgTVZDIGZyYW1ld29yayB0aGF0IG1lcmdlcyBTdHJ1dHMgd2l0aCB0aGUgQ29tbW9ucyBDaGFpbiBvZiANCitSZXNwb25zaWJsaXR5IHBhY2thZ2UuDQorDQorLS0tLQ0KKw0KK0FwcGxpY2F0aW9ucyBydWxlLCBmcmFtZXdvcmtzIGRyb29sLg0KKw0KK01vc3QgYXBwbGljYXRpb24gZnJhbWV3b3JrcyBzaGlwIHdpdGggb25lIG9yIG1vcmUgZXhhbXBsZSBhcHBsaWNhdGlvbnMuIA0KK1N0cnV0cyBoYXMgTWFpbFJlYWRlci4gaUJBVElTIGhhcyBQZXRzdG9yZS4gSlNGIGhhcyBDYXJEZW1vLiBBU1AuTkVUIA0KK2Rpc3RyaWJ1dGVzIHNldmVyYWwgInN0YXJ0ZXIga2l0cyIuIFNvbWUgZnJhbWV3b3JrcywgbGlrZSBTcHJpbmcsIGV2ZW4gDQorY29uc2lkZXIgdGhlIGV4YW1wbGVzIHRvIGJlICJmaXJzdC1jbGFzcyBjaXRpemVucyIuDQorDQorRnJvbSB0aGUgT3ZlckRyaXZlIHBlcnNwZWN0aXZlLCB0aGUgYXBwbGljYXRpb25zIGFyZSBub3QganVzdCBmaXJzdC1jbGFzcyANCitjaXRpemVucywgdGhleSBhcmUgdGhlIG9ubHkgZmlyc3QtY2xhc3MgY2l0aXplbnMuIFRoZSBNVkMgZnJhbWV3b3JrIHNoYXJlZCANCitieSB0aGUgYXBwbGljYXRpb25zIGlzIHNpbXBseSBhIG1lYW5zIHRvIGFuIGVuZC4NCisNCitPdmVyRHJpdmUgaXMgYWJvdXQgd3JpdGluZyBidXNpbmVzcyBhcHBsaWNhdGlvbnMsIHJlZ2FyZGxlc3Mgb2YgcGxhdGZvcm0sIA0KK2FuZCBleHRyYWN0aW5nIGNvbXBvbmVudHMgdGhlIGFwcGxpY2F0aW9ucyBjYW4gc2hhcmUuIFRoZSBpbml0aWFsIE92ZXJEcml2ZSANCithcHBsaWNhdGlvbnMgYXJlIGJlaW5nIHdyaXR0ZW4gZm9yIEFTUC5ORVQvTW9ubywgYnV0IHZlcnNpb25zIGZvciBKYXZhNSBhbmQgDQorUEhQNSBhcmUgZXhwZWN0ZWQuDQorDQorVGhlIGZpcnN0IHR3byBhcHBsaWNhdGlvbnMgb24gdGhlIGJpbGxldCBhcmUNCisNCisgICAgKiBQaG9uZUJvb2sgliBBIHNpbmdsZS10YWJsZSBlbXBsb3llZSBkaXJlY3RvcnkuDQorICAgICogTWFpbFJlYWRlciCWIEEgbXVsdGktdGFibGUgYWNjb3VudCBsaXN0aW5nLg0KKw0KK09uY2UgdGhlc2Ugc2hpcCwgb3RoZXJzIHdpbGwgZm9sbG93LCBpbmNsdWRpbmcNCisNCisgICAgKiBFeGFtcGxlcyCWIEEgY29kaW5nIHJlZmVyZW5jZSB0byBkb2N1bWVudCBjb21tb24gc3RyYXRlZ2llcy4NCisgICAgKiBXaWNrZXIgLSBBIHNob3BwaW5nIGNhcnQgYXBwbGljYXRpb24uDQorICAgICogR2F2ZWwgLSBBbiBvbmxpbmUgYjJjIGF1Y3Rpb24gYXBwbGljYXRpb24uDQorDQorVGhlIE1WQyBGcmFtZXdvcmsgYmVoaW5kIHRoZSBPdmVyRHJpdmUgYXBwbGljYXRpb25zIGJ1bmRsZXMgdHdvIG1ham9yIGNvbXBvbmVudHM6DQorDQorICAgICogQWdpbGl0eSwgYSBDIyBwb3J0IG9mIENvbW1vbnMgQ2hhaW4gb2YgUmVzcG9uc2liaWxpdHkuDQorICAgICogTmV4dXMsIGFuIGFwcGxpY2F0aW9uIGNvbnRyb2xsZXIgYnVpbHQgb3ZlciBBZ2lsaXR5Lg0KKw0KKy0tLS0NCisNCitJbnN0YWxsaW5nIGEgZGV2ZWxvcG1lbnQgY29weSBvZiBPdmVyRHJpdmUgDQorDQorDQorU1VCVkVSU0lPTg0KKw0KKyogVXNlIFN1YnZlcnNpb24gdG8gY2hlY2tvdXQgT3ZlckRyaXZlIGZyb20gdGhlIA0KKyAgIFtBcGFjaGUgcmVwb3NpdG9yeXxodHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld2N2cy5jZ2kvc3RydXRzL3NhbmRib3gvdHJ1bmsvb3ZlcmRyaXZlL10uDQorDQorKiBJZiB5b3UgYXJlIHVzaW5nIFtUb3J0b2lzZVNWTnxodHRwOi8vdG9ydG9pc2Vzdm4udGlncmlzLm9yZy9dIChyZWNvbW1lbmRlZCkgDQorKiogQ3JlYXRlIGEgbGlrZWx5IHN1YmRpcmVjdG9yeSAoZS5nLiAvcHJvamVjdHMvU3RydXRzL092ZXJEcml2ZSkNCisqKiBSaWdodC1jbGljayBvbiB0aGUgc3VkaXJlY3RvcnkgYW5kIHNlbGVjdCBDaGVja291dA0KKyoqIEVudGVyIHRoZSBVUkw6IFtodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9zdHJ1dHMvc2FuZGJveC90cnVuay9vdmVyZHJpdmVdDQorKioqIEJlIHN1cmUgdGhlIGRlc3RpbmF0aW9uIHBhdGggaXMgc2V0IHRvIHRoZSBmb2xkZXIgeW91IGNyZWF0ZWQhDQorDQorKiBBZnRlciB0aGUgY2hlY2tvdXQ6DQorKiogW0Rvd25sb2FkIHRoZSBleHRlcm5hbCBkZXBlbmRlbmNpZXN8DQorICAgaHR0cDovL29wZW5zb3VyY2UyLmF0bGFzc2lhbi5jb20vY29uZmx1ZW5jZS9vc3MvZG93bmxvYWQvYXR0YWNobWVudHMvNDQyL292ZXJkcml2ZS1sb2NhbC1jYWNoZS56aXBdIA0KKyAgIChsb2NhbC1jYWNoZSkgdG8gdGhlIHNhbWUgZGlyZWN0b3J5Lg0KKyoqIFVuemlwIHRoaXMgYXJjaGl2ZSB0byB0aGUgc2FtZSBkaXJlY3RvcnksIHRvIGNyZWF0ZSB0aGUgZm9sZGVyIGxvY2FsLWNhY2hlIA0KKyAgIHdpdGggc2V2ZXJhbCBzdWJmb2xkZXJzLg0KKyoqKiBsb2NhbC1jYWNoZQ0KKyoqKiogQWdpbGl0eQ0KKyoqKiogaUJhdGlzTmV0DQorKioqKiBOVW5pdEFzcA0KKyoqKiogTmV4dXMNCisqKioqIFNwcmluZ05ldCANCisqKiBUaGlzIGFyY2hpdmUgbWF5IGNvbnRhaW4gZGV2ZWxvcG1lbnQgdmVyc2lvbnMgb2Ygc29tZSBwcm9kdWN0cywgDQorICAgc28gYmUgc3VyZSB0byB1c2UgdGhlc2UgcmF0aGVyIHRoYW4gdGhlIHJlbGVhc2VkIGFzc2VtYmxpZXMuIA0KKyAgIE91ciBnb2FsIGlzIHRvIHN0YXkgY3VycmVudCB3aXRoIHRoZSBkZXZlbG9wbWVudCB2ZXJzaW9ucyBmb3Igbm93Lg0KKyoqIElmIHlvdSBoYXZlIG5vdCBhbHJlYWR5IGRvbmUgc28sIGFsc28gaW5zdGFsbCBOVW5pdCAyLjIgb3IgbGF0ZXIuIA0KKyAgIFRoZXJlIGlzIGEgTVNJIGF2YWlsYWJsZSBmcm9tICBbaHR0cDovL05Vbml0Lm9yZ10sIGFsb25nIHdpdGggYSBNb25vLWZyaWVuZGx5IFpJUC4gDQorDQorLS0tLQ0KKw0KK1NlZSBhbHNvIA0KKyogW1ZTdHVkaW8gUmVhZG1lXQ0KKyogW0RhdGFiYXNlIFJlYWRtZV0NCisNCisNCitWSVNVQUwgU1RVRElPDQorDQoraDIuIE5Vbml0DQorDQorKiBUbyBydW4gdGhlIE5Vbml0IFRlc3RzICh2Mi4yKQ0KKyoqIENvbmZpZ3VyZSB0aGUgVGVzdCBwcm9qZWN0IHRvIHJ1biBOVW5pdA0KKyoqKiBSaWdodCBDbGljayBvbiAiVGVzdHMiLCBzZWxlY3QgIlByb3BlcnRpZXMiDQorKioqIE9wZW4gIkNvbmZpZ3VyYXRpb24gUHJvcGVydGllcyINCisqKiogT3BlbiAiRGVidWdnaW5nIg0KKyoqKiBDaGFuZ2UgIkRlYnVnIE1vZGUiIHRvICJQcm9ncmFtIg0KKyoqKiBQcmVzcyBBcHBseSANCisqKiogRm9yICJTdGFydCBBcHBsaWNhdGlvbiIsIGJyb3dzZSB0byB5b3VyIGluc3RhbmNlIG9mICJudW5pdC1ndWkuZXhlIi4NCisNCisqIFdlIHJlY29tbWVuZCB1c2luZyB0aGUgVGVzdERyaXZlbi5OZXQgcGx1Z2luIHJhdGhlciB0aGFuIHRoZSBOVW5pdCBHVUkuDQorKiogW2h0dHA6Ly93d3cudGVzdGRyaXZlbi5uZXQvXQ0KKw0KK2gyLiBBZ2lsaXR5IA0KKw0KKyogQnVpbGQgQWdpbGl0eSBmaXJzdA0KKw0KK2gyLiBOZXh1cw0KKw0KKyogVGhlIE5leHVzIHNvbHV0aW9uIGhhcyBhIHdlYiBwcm9qZWN0LiBUbyBhbGxvdyBydW5uaW5nIHRoZSBwcm9qZWN0IGluLXBsYWNlOiANCisqKiBSaWdodC1jbGljayBvbiB0aGUgIk5leHVzL1dlYiIgZm9sZGVyIA0KKyoqIE9wZW4gIlNoYXJpbmciIGFuZCAiU2VjdXJpdHkvV2ViIFNoYXJpbmciDQorKiogU2V0IHRoZSBzaGFyZW5hbWUgdG8gIk5leHVzIg0KKyogQnVpbGQgQWdpbGl0eSBiZWZvcmUgYnVpbGRpbmcgTmV4dXMNCisNCitoMi4gUGhvbmVCb29rDQorDQorKiBUaGUgUGhvbmVCb29rIHNvbHV0aW9uIGhhcyBhIHdlYiBwcm9qZWN0LiBUbyBhbGxvdyBydW5uaW5nIHRoZSBwcm9qZWN0IGluLXBsYWNlOiANCisqKiBSaWdodC1jbGljayBvbiB0aGUgIlBob25lQm9vay9XZWIiIGZvbGRlciANCisqKiBPcGVuICJTaGFyaW5nIiBhbmQgIlNlY3VyaXR5L1dlYiIgU2hhcmluZw0KKyoqIFNldCB0aGUgc2hhcmVuYW1lIHRvICJQaG9uZWJvb2siDQorKiBCdWlsZCBOZXh1cyAoYW5kIEFnaWxpdHkpIGJlZm9yZSBidWlsZGluZyBQaG9uZUJvb2sNCisNCitoMi4gU3VidmVyc2lvbiANCisNCisqIFdlIHJlY29tbWVuZCB1c2luZyB0aGUgQW5raCBwbHVnaW4gZm9yIFN1YnZlcnNpb24uDQorKiogW2h0dHA6Ly9hbmtoc3ZuLnRpZ3Jpcy5vcmcvXQ0KKw0KKy0tLS0NCisNCitTZWUgYWxzbw0KKw0KKyogW1N1YnZlcnNpb24gUmVhZG1lXQ0KKyogW0RhdGFiYXNlIFJlYWRtZV0NCisNCisNCitEQVRBQkFTRQ0KKw0KKyogUmlnaHQgbm93LCB0aGUgUGhvbmVCb29rIGFwcGxpY2F0aW9uIGlzIHVzaW5nIGEgTXlTUUwgNC4wIGRhdGFiYXNlIGJ5IGRlZmF1bHQuIA0KKyoqIFdlIG1lYW4gdG8gY2hhbmdlIHRoZSBkZWZhdWx0IHRoYXQgdG8gW1NoYXJwSFNRTHwNCisgICBodHRwOi8vd3d3LmMtc2hhcnBjb3JuZXIuY29tL2RhdGFiYXNlL1NoYXJwSFNRTC5hc3BdIFJlYWwgU29vbiBOb3csIA0KKyAgIGFuZCBtYWtlIGl0IGVhc3kgdG8gc3dpdGNoIGJldHdlZW4gdmFyaW91cyBkYXRhYmFzZSBzeXN0ZW1zLiANCisqKiBCdXQgZm9yIG5vdywgeW91IHdpbGwgbmVlZCBbTXlTUUwgNC4wfA0KKyAgIGZ0cDovL21pcnJvci5tY3MuYW5sLmdvdi9wdWIvbXlzcWwvRG93bmxvYWRzL015U1FMLTQuMC9dIGluc3RhbGxlZC4gDQorICAgVGhlbiwgYWxsIHlvdSBuZWVkIHRvIGRvIGlzIGV4ZWN1dGUgdGhlIHt7UGhvbmVib29rLVN0YXJ0LnNxbH19IHNjcmlwdA0KKw0KK3tjb2RlOnNxbH0NCitDUkVBVEUgREFUQUJBU0UgYHBob25lYm9va2A7DQorVVNFIGBwaG9uZWJvb2tgOw0KK0NSRUFURSBUQUJMRSBgZW50cnlgICgNCisgIGBwa19lbnRyeWAgY2hhcigzNikgTk9UIE5VTEwgZGVmYXVsdCAnJywNCisgIGBsYXN0X25hbWVgIGNoYXIoMTgpIE5PVCBOVUxMIGRlZmF1bHQgJycsDQorICBgZmlyc3RfbmFtZWAgY2hhcigxOCkgTk9UIE5VTEwgZGVmYXVsdCAnJywNCisgIGBleHRlbnNpb25gIGNoYXIoMTgpIE5PVCBOVUxMIGRlZmF1bHQgJycsDQorICBgdXNlcl9uYW1lYCBjaGFyKDkpIE5PVCBOVUxMIGRlZmF1bHQgJycsDQorICBgZWRpdG9yYCB0aW55aW50KDMpIHVuc2lnbmVkIE5PVCBOVUxMIGRlZmF1bHQgJzAnLA0KKyAgYGhpcmVkYCBkYXRldGltZSBOT1QgTlVMTCBkZWZhdWx0ICcwMDAwLTAwLTAwIDAwOjAwOjAwJywNCisgIGBob3Vyc2AgZG91YmxlIE5PVCBOVUxMIGRlZmF1bHQgJzM3LjUnDQorKSBUWVBFPU15SVNBTSBST1dfRk9STUFUPUZJWEVEOw0KK0lOU0VSVCBJTlRPIGBlbnRyeWAgKGBwa19lbnRyeWAsYGxhc3RfbmFtZWAsYGZpcnN0X25hbWVgLGBleHRlbnNpb25gLGB1c2VyX25hbWVgLGBlZGl0b3JgLGBoaXJlZGAsYGhvdXJzYCkgVkFMVUVTIA0KKyAoJ2M1YjZiYmIxLTY2ZDYtNDljYi05ZGI2LTc0M2FmNjYyNzgyOCcsJ0NsaW50b24nLCdXaWxsaWFtJywnNTU1NzQzNzgyOCcsJ2J1YmJhJywwLCcxOTkyLTA4LTE5IDAwOjAwOjAwJywzNy41KSwNCisgKCc3YzQyNDIyNy04ZTE5LTRmYjUtYjA4OS00MjNjZmNhNzIzZTEnLCdSb29zZXZlbHQnLCdUaGVvZG9yZScsJzU1NTc0Mzg5NDInLCdidWxsJywwLCcyMDAxLTA5LTE0IDAwOjAwOjAwJywzNy41KSwNCisgKCc5MzIwZWE0MC0wYzAxLTQzZTgtOWNlYy04ZmI5YjM5MjhjMmMnLCdLZW5uZWR5JywnSm9obiBGLicsJzU1NTc0MzM5MjgnLCdmaXR6JywwLCcxOTg3LTA1LTI5IDAwOjAwOjAwJywzNy41KSwNCisgKCczYjI3YzkzMy1jMWRjLTRkODUtOTc0NC1jN2Q5ZGViYWUxOTYnLCdQaWVyY2UnLCdGcmFua2xpbicsJzU1NTc0Mzc5MTknLCdoYXdrZXllJywwLCcxOTg0LTExLTE4IDAwOjAwOjAwJywzNSksDQorICgnNTU0ZmY5ZTctYTZmNS00NzhhLWI3NmItYTY2NmY1YzU0ZTQwJywnSmVmZmVyc29uJywnVGhvbWFzJywnNTU1NzQzNTQ0MCcsJ21vbnR5JywwLCcxOTc2LTA3LTA0IDAwOjAwOjAwJywzNy41KTsNCit7Y29kZX0NCisNCistLS0tDQorDQorU2VlIGFsc28gDQorDQorKiBbU3VidmVyc2lvbiBSZWFkbWVdIA0KKyogW1ZTdHVkaW8gUmVhZG1lXQ0KKw0KKy0tLS0NCisNCitGb3IgbW9yZSBoZWxwLCB2aXNpdCBodHRwOi8vb3BlbnNvdXJjZS5hdGxhc3NpYW4uY29tL2NvbmZsdWVuY2Uvb3NzL2Rpc3BsYXkvT1ZSL0hvbWUNCisNCistLS0tDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvcG9tLnhtbCBiL3N0cnV0cy1zYW5kYm94L3BvbS54bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2JiMGUzMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3BvbS54bWwKQEAgLTAsMCArMSw1NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IS0tCisvKgorICogQ29weXJpZ2h0IDIwMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICogCisgKiAkSWQkCisgKi8KKy0tPgorCis8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIgorICAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKKyAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPgorCisgICA8cGFyZW50PgorICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5zdHJ1dHM8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5zdHJ1dHMtbWFzdGVyPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MzwvdmVyc2lvbj4KKyAgIDwvcGFyZW50PgorCisgICAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICAgIDxncm91cElkPm9yZy5hcGFjaGUuc3RydXRzPC9ncm91cElkPgorICAgIDxhcnRpZmFjdElkPnN0cnV0cy1zYW5kYm94PC9hcnRpZmFjdElkPgorICAgIDx2ZXJzaW9uPjItU05BUFNIT1Q8L3ZlcnNpb24+CisgICAgPHBhY2thZ2luZz5wb208L3BhY2thZ2luZz4KKyAgICA8bmFtZT5BcGFjaGUgU3RydXRzIFNhbmRib3g8L25hbWU+CisgICAgPGRlc2NyaXB0aW9uPkFwYWNoZSBTdHJ1dHMgU2FuZGJveDwvZGVzY3JpcHRpb24+CisKKyAgICA8aW5jZXB0aW9uWWVhcj4yMDAwPC9pbmNlcHRpb25ZZWFyPgorCisgICAgPHNjbT4KKyAgICAgICA8Y29ubmVjdGlvbj5zY206c3ZuOmh0dHA6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2Yvc3RydXRzL3NhbmRib3gvdHJ1bms8L2Nvbm5lY3Rpb24+CisgICAgICAgPGRldmVsb3BlckNvbm5lY3Rpb24+c2NtOnN2bjpodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9zdHJ1dHMvc2FuZGJveC90cnVuazwvZGV2ZWxvcGVyQ29ubmVjdGlvbj4KKyAgICAgICA8dXJsPmh0dHA6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvc3RydXRzL3NhbmRib3gvdHJ1bms8L3VybD4KKyAgICA8L3NjbT4KKworICAgIDxkaXN0cmlidXRpb25NYW5hZ2VtZW50PgorICAgICAgICA8c2l0ZT4KKyAgICAgICAgICAgIDxpZD5hcGFjaGUtc2l0ZTwvaWQ+CisgICAgICAgICAgICA8dXJsPnNjcDovL3Blb3BsZS5hcGFjaGUub3JnL3d3dy9zdHJ1dHMuYXBhY2hlLm9yZy9zdHJ1dHMtc2FuZGJveDwvdXJsPgorICAgICAgICA8L3NpdGU+CisgICAgPC9kaXN0cmlidXRpb25NYW5hZ2VtZW50PgorCis8L3Byb2plY3Q+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL0xJQ0VOU0UudHh0IGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvTElDRU5TRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQ1YjNhNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL0xJQ0VOU0UudHh0CkBAIC0wLDAgKzEsMTc0IEBACisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAorICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLworCisgICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KKworICAgMS4gRGVmaW5pdGlvbnMuCisKKyAgICAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCisgICAgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KKworICAgICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkKKyAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KKworICAgICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAorICAgICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbgorICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKKyAgICAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQorICAgICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IKKyAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQorICAgICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KKworICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICAgICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KKworICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCisgICAgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCisgICAgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgorCisgICAgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbAorICAgICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAorICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAorICAgICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgorCisgICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgorICAgICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQorICAgICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCisgICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgorCisgICAgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0CisgICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCisgICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisgICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3NlcworICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCisgICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCisgICAgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgorCisgICAgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZworICAgICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucworICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CisgICAgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCisgICAgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKKyAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgorICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAorICAgICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KKyAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCisgICAgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQorICAgICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0CisgICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQorICAgICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCisKKyAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisgICAgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKKyAgICAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgorCisgICAyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKyAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisgICAgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKKyAgICAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQorICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KKworICAgMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCisgICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKKyAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCisgICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgorICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQorICAgICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UKKyAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCisgICAgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAorICAgICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcworICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCisgICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisKKyAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCisgICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKKyAgICAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91CisgICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworICAgICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKKyAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAorCisgICAgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCisgICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCisKKyAgICAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcworICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKKyAgICAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLAorICAgICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YKKyAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCisKKyAgICAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cworICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKKyAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKKyAgICAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKKyAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKKyAgICAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZAorICAgICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKKyAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKKyAgICAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCisgICAgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzCisgICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAorICAgICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCisgICAgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKKyAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKKyAgICAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKKyAgICAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCisKKyAgICAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZAorICAgICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucworICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgorICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCisgICAgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKKyAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCisKKyAgIDUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwKKyAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaworICAgICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgorICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQorICAgICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKKyAgICAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4KKworICAgNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQorICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAorICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCisgICAgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KKworICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCisgICAgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCisgICAgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKKyAgICAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEKKyAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQorICAgICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55CisgICAgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCisKKyAgIDguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAorICAgICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsCisgICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQorICAgICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKKyAgICAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKKyAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQorICAgICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQorICAgICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAorICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKKyAgICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKKyAgICAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KKworICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZworICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKKyAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCisgICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcworICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKKyAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCisgICAgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCisgICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKKyAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KKyAgICAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvTk9USUNFLnR4dCBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL05PVElDRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjVhNzk2YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL05PVElDRS50eHQKQEAgLTAsMCArMSwzMCBAQAorVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieQorVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChodHRwOi8vd3d3LmFwYWNoZS5vcmcvKS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVnYXJkaW5nOiBCYXNlQWN0aW9uLCBCYXNlRm9ybSwgQmFzZUhlbHBlckFjdGlvbiwgQmFzZU1hcEZvcm0sIEJpekFjdGlvbiwKK1Byb2Nlc3NBY3Rpb24sIFByb2RjZXNzRGlzcGF0Y2hBY3Rpb24gYW5kIFByb2Nlc3NGb3JtQWN0aW9uCisKK0NvcHlyaWdodCAoYykgMjAwMiBTeW50aGlzIENvcnBvcmF0aW9uLgorNDMwIDEwdGggU3RyZWV0IE5XLCBTdWl0ZSBTLTEwOCwgQXRsYW50YSBHQSAzMDMxOCwgVS5TLkEuCitBbGwgcmlnaHRzIHJlc2VydmVkLgorCitUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHRvIHlvdSBmcmVlIG9mIGNoYXJnZSB1bmRlcgordGhlIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlLCBzbyBsb25nIGFzIHRoaXMgY29weXJpZ2h0CitzdGF0ZW1lbnQsIGxpc3Qgb2YgY29uZGl0aW9ucywgYW5kIGNvbW1lbnRzLCAgcmVtYWlucworaW4gdGhlIHNvdXJjZSBjb2RlLgorCitUaGlzIHNvZnR3YXJlIHdhcyB3cml0dGVuIHRvIHN1cHBvcnQgY29kZSBnZW5lcmF0aW9uCitmb3IgdGhlIEFwYWNoZSBTdHJ1dHMgSjJFRSBhcmNoaXRlY3R1cmUgYnkgU3ludGhpcycKK3Zpc3VhbCBhcHBsaWNhdGlvbiBtb2RlbGluZyB0b29sIEFkYWxvbi4KKworRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gQWRhbG9uIGFuZCBTdHJ1dHMgY29kZQorZ2VuZXJhdGlvbiBwbGVhc2UgdmlzaXQgaHR0cDovL3d3dy5zeW50aGlzLmNvbQorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisiU25vb3BBY3Rpb24uamF2YSIgY29udGFpbnMgY29kZSBkZXJpdmVkIGZyb20gdGhlIEpldHR5IFNub29wU2VydmxldAoraHR0cDovL3d3dy50aGVjb3J0ZXgubmV0L2Nsb3Zlci9lZy9qZXR0eS9yZXBvcnQvZGVmYXVsdC1wa2cvU25vb3BTZXJ2bGV0Lmh0bWw+CithbmQgZGlzdHJpYnV0ZWQgdW5kZXIgaXRzIG9wZW4gc291cmNlIGxpY2Vuc2UKK2h0dHA6Ly9qZXR0eS5tb3J0YmF5Lm9yZy9qZXR0eS9MSUNFTlNFLmh0bWw+LgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvUkVBRE1FLnR4dCBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL1JFQURNRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI5M2VkMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL1JFQURNRS50eHQKQEAgLTAsMCArMSwxOCBAQAorU2NhZmZvbGQgLSBXZWIgQXBwbGljYXRpb24gVG9vbGtpdAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworU2NhZmZvbGQgaXMgYSB0b29sa2l0IGZvciBidWlsZGluZyB3ZWIgYXBwbGljYXRpb25zLiBXZWIgYXBwbGljYXRpb24gCitmcmFtZXdvcmtzLCBsaWtlIFN0cnV0cywgcHJvdmlkZSB0aGUgZXNzZW50aWFsIGluZnJhc3RydWN0dXJlIG1vc3QgCitkZXZlbG9wZXJzIG5lZWQgdG8gY3JlYXRlIGFwcGxpY2F0aW9ucy4gQnV0IHRoZXJlIGFyZSBzdGlsbCBtYW55IAorcmV1c2FibGUgcGllY2VzIHRoYXQgbW9zdCBhcHBsaWNhdGlvbnMgbmVlZCBidXQgZnJhbWV3b3JrcyBkb24ndCAKK3R5cGljYWxseSBwcm92aWRlLiBTY2FmZm9sZCBpcyBhIGhvbWUgZm9yIGNsYXNzZXMgdGhhdCBjYW4gYmUgcmV1c2VkIAorYmV0d2VlbiBhcHBsaWNhdGlvbnMgYnV0IGFyZSBub3Qgc2V4eSBlbm91Z2ggKG9yIHNvbWV0aW1lcyB0b28gc2V4eSkgCitmb3IgYSBmcmFtZXdvcmsgZGlzdHJpYnV0aW9uLiAKKworVGhlIGJ1bGsgb2YgU2NhZmZvbGQgaXMgYmVpbmcgcHJvdmlkZWQgdGhyb3VnaCB0aGUgQ29tbW9ucy4gVGhpcyAKK2lzIGEgU3RydXRzIHNwZWNpZmljIHBhY2thZ2UgaXMgcHJvdmlkZWQgaW4gdGhlIFN0cnV0cyBzb3VyY2UgY29kZSAKK2Rpc3RyaWJ1dGlvbiB3aGljaCBidWlsZHMgb24gdGhlIGNsYXNzZXMgcHJvdmlkZWQgdGhlcmUuCisKK1NlZSBidWlsZC5odG1sIGZvciByZXF1aXNpdGUgSkFScy4KKworIyMjCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9idWlsZC5odG1sIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvYnVpbGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDFiY2UwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvYnVpbGQuaHRtbApAQCAtMCwwICsxLDIyIEBACis8aHRtbD4KKzxib2R5PgorCis8cD5SZXF1aXNpdGUgSkFSczwvcD4KKworPHVsPgorPGxpPmNvbW1vbnMtZGlnZXN0ZXIuamFyIC0gPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9idWlsZHMvamFrYXJ0YS1jb21tb25zL3JlbGVhc2UvY29tbW9ucy1kaWdlc3Rlci92MS4xLjEvIj5KYWthcnRhIENvbW1vbnMgRGlnZXN0ZXI8L2E+PC9saT4KKzxsaT5jb21tb25zLXNjYWZmb2xkLmphciAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuaHVzdGVkLmNvbS9idWlsZHMvc2NhZmZvbGQiPkpha2FydGEgQ29tbW9ucyBTY2FmZm9sZDwvYT48L2xpPgorPGxpPnNjYWZmb2xkLXN0cnV0cy5qYXIgLSA8YSBocmVmPSJodHRwOi8vd3d3Lmh1c3RlZC5jb20vYnVpbGRzL3NjYWZmb2xkIj5KYWthcnRhIFN0cnV0cyBTY2FmZm9sZDwvYT48L2xpPgorPGxpPnN0cnV0cy5qYXIgLSA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2J1aWxkcy9qYWthcnRhLXN0cnV0cy9yZWxlYXNlLyI+SmFrYXJ0YSBTdHJ1dHMgMS4wLjI8L2E+PC9saT4KKzxsaT5zdHJ1dHMtdmFsaWRhdG9yLmphciAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuaHVzdGVkLmNvbS9idWlsZHMvdmFsaWRhdG9yIj5TdHJ1dHMgVmFsaWRhdG9yIDEuMDwvYT48L2xpPgorPC91bD4KKworPHA+QWxzbyB0aGVzZSB0bGQncyBmcm9tIHRoZSBTdHJ1dHMgZGlzdHJpYnV0aW9uIChhYm92ZSkgcGxhY2VkIGluIHRoZSAvV0VCLUlORi9saWIgZm9sZGVyIHdpdGggdGhlIEpBUnM8L3A+Cis8dWw+Cis8bGk+c3RydXRzLWJlYW4udGxkPC9saT4KKzxsaT5zdHJ1dHMtaHRtbC50bGQ8L2xpPgorPGxpPnN0cnV0cy1sb2dpYy50bGQ8L2xpPgorPC91bD4KKworPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL2J1aWxkLnhtbCBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL2J1aWxkLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYmE1ZDkyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvYnVpbGQueG1sCkBAIC0wLDAgKzEsMTM3IEBACis8IS0tCitAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKy0tPgorCis8cHJvamVjdCBuYW1lPSJzY2FmZm9sZCIgZGVmYXVsdD0iY29tcGlsZS5saWIiPgorCisgICAgPCEtLSBDaGFuZ2UgdGhpcyB0byBjb21waWxlIGFnYWluc3QgYSBkaWZmZXJlbnQgdmVyc2lvbiAgLS0+CisgICAgPHByb3BlcnR5IG5hbWU9ImNvbXBpbGUuY2xhc3NwYXRoIiB2YWx1ZT0iY29tcGlsZS5jbGFzc3BhdGhfMV8yIi8+CisKKyAgICA8IS0tIExvY2FsIHN5c3RlbSBwYXRocyAtLT4KKyAgICA8cHJvcGVydHkgbmFtZT0icGF0aC5kaXN0IiB2YWx1ZT0iLi90YXJnZXQiLz4KKyAgICA8cHJvcGVydHkgbmFtZT0icGF0aC5qYXZhc29mdCIgdmFsdWU9Ii9vcHQvSmF2YVNvZnQvbGliIi8+CisgICAgPHByb3BlcnR5IG5hbWU9InBhdGguamFrYXJ0YSIgdmFsdWU9Ii9vcHQvamFrYXJ0YSIvPgorICAgIDxwcm9wZXJ0eSBuYW1lPSJwYXRoLnNmIiB2YWx1ZT0iL29wdC9zb3VyY2Vmb3JnZSIvPgorICAgIDxwcm9wZXJ0eSBuYW1lPSJwYXRoLnN0cnV0cyIgdmFsdWU9Ii9vcHQvc3RydXRzL2pha2FydGEtc3RydXRzLTEuMi40LWxpYiIvPgorCisgICAgPCEtLSBQcm9qZWN0IHNldHRpbmdzIC0tPgorICAgIDxwcm9wZXJ0eSBuYW1lPSJwcm9qZWN0LnRpdGxlIiB2YWx1ZT0ic2NhZmZvbGQiLz4KKyAgICA8cHJvcGVydHkgbmFtZT0icHJvamVjdC52ZXJzaW9uIiB2YWx1ZT0iMC42Ii8+CisgICAgPHByb3BlcnR5IG5hbWU9InByb2plY3QuZGlzdG5hbWUiIHZhbHVlPSJzdHJ1dHMtc2NhZmZvbGRfMV8yIi8+CisKKyAgICA8IS0tIFN0YW5kYXJkIEphdmFzb2Z0IGphcnMgLS0+CisgICAgPHByb3BlcnR5IG5hbWU9InNlcnZsZXQuamFyIiAgIHZhbHVlPSIke3BhdGguamF2YXNvZnR9L3NlcnZsZXRhcGlfMl8zLmphciIvPgorICAgIDxwcm9wZXJ0eSBuYW1lPSJqZGJjMjBleHQuamFyIiB2YWx1ZT0iJHtwYXRoLmphdmFzb2Z0fS9qZGJjMl8wLXN0ZGV4dC5qYXIiLz4KKworICAgIDwhLS0gUGF0aCBzZXR0aW5ncyAtLT4KKyAgICA8cHJvcGVydHkgbmFtZT0iZG9jLnBhdGgiIHZhbHVlPSIuL2RvYy9hcGkiLz4KKyAgICA8cHJvcGVydHkgbmFtZT0iZG9jLnNyYyIgdmFsdWU9Ii4vc3JjL2phdmEiLz4KKworICAgIDwhLS0gQnVpbGQgd29ya2luZyBjbGFzc3BhdGggLS0+CisgICAgPHBhdGggaWQ9ImNvbXBpbGUuY2xhc3NwYXRoXzFfMiI+CisgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoID0iJHtwYXRoLmpha2FydGF9L2x1Y2VuZS0xLjQuMy5qYXIiLz4KKyAgICAgICAgPHBhdGhlbGVtZW50IHBhdGggPSIke3BhdGguc2Z9L3Bvb2xtYW4tMi0wLTQvbGliL3Bvb2xtYW4uamFyIi8+CisgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoID0iJHtwYXRoLnN0cnV0c30vY29tbW9ucy1iZWFudXRpbHMuamFyIi8+CisgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoID0iJHtwYXRoLnN0cnV0c30vY29tbW9ucy1kaWdlc3Rlci5qYXIiLz4KKyAgICAgICAgPHBhdGhlbGVtZW50IHBhdGggPSIke3BhdGguamFrYXJ0YX0vY29tbW9ucy1zY2FmZm9sZC5qYXIiLz4KKyAgICAgICAgPHBhdGhlbGVtZW50IHBhdGggPSIke3BhdGguamFrYXJ0YX0vY29tbW9ucy1yZXNvdXJjZXMuamFyIi8+CisgICAgICAgIDxwYXRoZWxlbWVudCBwYXRoID0iJHtwYXRoLnN0cnV0c30vc3RydXRzLmphciIvPgorICAgICAgICA8cGF0aGVsZW1lbnQgcGF0aCA9ImNsYXNzZXMiLz4KKyAgICAgICAgPHBhdGhlbGVtZW50IHBhdGggPSIke2NsYXNzcGF0aH0iLz4KKyAgICA8L3BhdGg+CisKKyAgICA8IS0tIENoZWNrIHRpbWVzdGFtcCBvbiBmaWxlcyAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9InByZXBhcmUiPgorICAgICAgICA8dHN0YW1wPgorICAgICAgICAgICAgPGZvcm1hdCBwcm9wZXJ0eT0ieWVhciIgcGF0dGVybj0ieXl5eSIvPgorICAgICAgICA8L3RzdGFtcD4KKyAgICA8L3RhcmdldD4KKworICAgPCEtLSBDb3B5IGFueSByZXNvdXJjZSBvciBjb25maWd1cmF0aW9uIGZpbGVzIC0tPgorICAgIDx0YXJnZXQgbmFtZT0icmVzb3VyY2VzIj4KKyAgICAgICAgPGNvcHkgdG9kaXI9ImNsYXNzZXMiIGluY2x1ZGVFbXB0eURpcnM9Im5vIj4KKyAgICAgICAgICAgIDxmaWxlc2V0IGRpcj0ic3JjL2phdmEiPgorICAgICAgICAgICAgPHBhdHRlcm5zZXQ+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5jb25mIi8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi5wcm9wZXJ0aWVzIi8+CisgICAgICAgICAgICAgICAgPGluY2x1ZGUgbmFtZT0iKiovKi54bWwiLz4KKyAgICAgICAgICAgIDwvcGF0dGVybnNldD4KKyAgICAgICAgICAgIDwvZmlsZXNldD4KKyAgICAgICAgPC9jb3B5PgorICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLSBOb3JtYWwgYnVpbGQgb2YgYXBwbGljYXRpb24gLS0+CisgICAgPHRhcmdldCBuYW1lPSJjb21waWxlIiBkZXBlbmRzPSJwcmVwYXJlLHJlc291cmNlcyI+CisgICAgICA8Y29weQorICAgICAgICBmaWxlPSIuL0xJQ0VOU0UudHh0IgorICAgICAgICB0b2Rpcj0iY2xhc3NlcyIvPgorICAgICAgICA8IS0tIFJlbW92ZSAiamlrZXMiIHZhbHVlIGlmIHlvdSBtdXN0IHVzZSBqYXZhYyBpbnN0ZWFkIC0tPgorICAgICAgICA8IS0tIHByb3BlcnR5IG5hbWU9ImJ1aWxkLmNvbXBpbGVyIiB2YWx1ZT0iamlrZXMiLyAtLT4KKyAgICAgICAgPGphdmFjIHNyY2Rpcj0ic3JjIiBkZXN0ZGlyPSJjbGFzc2VzIj4KKyAgICAgICAgICAgIDxjbGFzc3BhdGggcGF0aD0iJHtzZXJ2bGV0Lmphcn06JHtqZGJjMjBleHQuamFyfSIgLz4KKyAgICAgICAgICAgIDxjbGFzc3BhdGggcmVmaWQ9IiR7Y29tcGlsZS5jbGFzc3BhdGh9Ii8+CisgICAgICAgIDwvamF2YWM+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tIFJlbW92ZSBjbGFzc2VzIGRpcmVjdG9yeSBmb3IgY2xlYW4gYnVpbGQgLS0+CisgICAgPHRhcmdldCBuYW1lPSJjbGVhbiIKKyAgICAgIGRlc2NyaXB0aW9uPSJQcmVwYXJlIGZvciBjbGVhbiBidWlsZCI+CisgICAgICA8ZGVsZXRlIGRpcj0iY2xhc3NlcyIvPgorICAgICAgPG1rZGlyICBkaXI9ImNsYXNzZXMiLz4KKyAgICA8L3RhcmdldD4KKworICAgIDwhLS0gQnVpbGQgSmF2YWRvYyBkb2N1bWVudGF0aW9uIC0tPgorICAgIDx0YXJnZXQgbmFtZT0iamF2YWRvYyIKKyAgICAgZGVzY3JpcHRpb249IkdlbmVyYXRlIEphdmFEb2MgQVBJIGRvY3MiPgorICAgICAgICA8ZGVsZXRlIGRpcj0iLi9kb2MvYXBpIi8+CisgICAgICAgIDxta2RpciBkaXI9Ii4vZG9jL2FwaSIvPgorICAgICAgICA8amF2YWRvYyBzb3VyY2VwYXRoPSIuL3NyYy9qYXZhIgorICAgICAgICAgICAgZGVzdGRpcj0iLi9kb2MvYXBpIgorICAgICAgICAgICAgY2xhc3NwYXRoPSIke3NlcnZsZXQuamFyfToke2pkYmMyMGV4dC5qYXJ9IgorICAgICAgICAgICAgcGFja2FnZW5hbWVzPSJvcmcuKiIKKyAgICAgICAgICAgIGF1dGhvcj0iZmFsc2UiCisgICAgICAgICAgICBwcml2YXRlPSJ0cnVlIgorICAgICAgICAgICAgdmVyc2lvbj0idHJ1ZSIKKyAgICAgICAgICAgIHdpbmRvd3RpdGxlPSIke3Byb2plY3QudGl0bGV9IEFQSSBEb2N1bWVudGF0aW9uIgorICAgICAgICAgICAgZG9jdGl0bGU9IiZsdDtoMSZndDske3Byb2plY3QudGl0bGV9IEFQSSBEb2N1bWVudGF0aW9uIChWZXJzaW9uICR7cHJvamVjdC52ZXJzaW9ufSkmbHQ7L2gxJmd0OyIKKyAgICAgICAgICAgIGJvdHRvbT0iQ29weXJpZ2h0ICYjMTY5OyAyMDAxLSR7eWVhcn0gLSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiI+CisgICAgICAgICAgICA8Y2xhc3NwYXRoIHJlZmlkPSIke2NvbXBpbGUuY2xhc3NwYXRofSIvPgorICAgICAgICA8L2phdmFkb2M+CisgICAgPC90YXJnZXQ+CisKKyAgICA8IS0tIEJ1aWxkIGJpbmFyeSBkaXN0cmlidXRpb24gLS0+CisgICAgPHRhcmdldCBuYW1lPSJjb21waWxlLmxpYiIKKyAgICAgICAgZGVwZW5kcz0iY29tcGlsZSIKKyAgICAgICAgZGVzY3JpcHRpb249IkNyZWF0ZSBiaW5hcnkgZGlzdHJpYnV0aW9uIj4KKworICAgICAgPG1rZGlyCisgICAgICAgIGRpcj0iJHtwYXRoLmRpc3R9Ii8+CisKKyAgICAgIDxqYXIKKyAgICAgICAgamFyZmlsZT0iJHtwYXRoLmRpc3R9LyR7cHJvamVjdC5kaXN0bmFtZX0uamFyIgorICAgICAgICBiYXNlZGlyPSIuL2NsYXNzZXMiLz4KKworICAgIDwvdGFyZ2V0PgorCisgICAgPCEtLSBCdWlsZCBkaXN0cmlidXRpb24gLS0+CisgICAgPHRhcmdldCBuYW1lPSJkaXN0IgorICAgICAgICBkZXNjcmlwdGlvbj0iQ3JlYXRlIGRpc3RyaWJ1dGlvbiI+CisKKyAgICAgIDxta2RpcgorICAgICAgICBkaXI9IiR7cGF0aC5kaXN0fSIvPgorCisgICAgICA8emlwIHppcGZpbGU9IiR7cGF0aC5kaXN0fS8ke3Byb2plY3QuZGlzdG5hbWV9LnppcCI+CisgICAgICAgIDx6aXBmaWxlc2V0IGRpcj0iLiIgcHJlZml4PSJzdHJ1dHMtc2NhZmZvbGQiLz4KKyAgICAgIDwvemlwPgorCisgICAgICA8amFyCisgICAgICAgIGphcmZpbGU9IiR7cGF0aC5kaXN0fS8ke3Byb2plY3QuZGlzdG5hbWV9LmphciIKKyAgICAgICAgYmFzZWRpcj0iLi9jbGFzc2VzIi8+CisKKyAgICA8L3RhcmdldD4KKworCisgICAgPCEtLSBCdWlsZCBlbnRpcmUgcHJvamVjdCAtLT4KKyAgICA8dGFyZ2V0IG5hbWU9InByb2plY3QiIGRlcGVuZHM9ImNsZWFuLHByZXBhcmUsY29tcGlsZSxqYXZhZG9jLGRpc3QiLz4KKworPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvY29uZi9mcmFtZXdvcmsvbWFuaWZlc3QgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9jb25mL2ZyYW1ld29yay9tYW5pZmVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGE0OGRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvY29uZi9mcmFtZXdvcmsvbWFuaWZlc3QKQEAgLTAsMCArMSwxMCBAQAorTWFuaWZlc3QtVmVyc2lvbjogMS4wCitDcmVhdGVkLUJ5OiBBbnQKKworTmFtZTogQHByb2plY3QubmFtZS5maWxlQC8KK1NwZWNpZmljYXRpb24tVGl0bGU6IEBwcm9qZWN0Lm5hbWUudGV4dEAKK1NwZWNpZmljYXRpb24tVmVuZG9yOiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KK0ltcGxlbWVudGF0aW9uLVZlbmRvcjogVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCitTcGVjaWZpY2F0aW9uLVZlcnNpb246IEB2ZXJzaW9uQAorSW1wbGVtZW50YXRpb24tVmVyc2lvbjogQHZlcnNpb25ACitJbXBsZW1lbnRhdGlvbi1UaXRsZTogQHByb2plY3QubmFtZS5maWxlQApkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvY29uZi9zYW1wbGUvQXBwbGljYXRpb25SZXNvdXJjZXMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL2NvbmYvc2FtcGxlL0FwcGxpY2F0aW9uUmVzb3VyY2VzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE4OWE1ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL2NvbmYvc2FtcGxlL0FwcGxpY2F0aW9uUmVzb3VyY2VzLnByb3BlcnRpZXMKQEAgLTAsMCArMSw1IEBACitpbmRleC50aXRsZT1TY2FmZm9sZCBTYW1wbGUgQXBwbGljYXRpb24KK2luZGV4LmhlYWRpbmc9SGVsbG8gV29ybGQhCitpbmRleC5tZXNzYWdlPVRoaXMgaXMgYSBzYW1wbGUgYXBwbGljYXRpb24gdGhhdCBkb2VzIG5vdCBkbyBtdWNoIGJ1dCBpdCBzaG93cworaG93IHRvIHBhY2thZ2UgYSBTY2FmZm9sZCBhcHBsaWNhdGlvbiBhbmQgYWxzbyBzZXJ2ZXMgYXMgYW4gaW50ZWdyYXRpb24gdGVzdAorYmVkIGZvciBTY2FmZm9sZC4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9jb25mL3NhbXBsZS9tYW5pZmVzdCBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL2NvbmYvc2FtcGxlL21hbmlmZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjMjdiODEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9jb25mL3NhbXBsZS9tYW5pZmVzdApAQCAtMCwwICsxLDEwIEBACitNYW5pZmVzdC1WZXJzaW9uOiAxLjAKK0NyZWF0ZWQtQnk6IEFudAorCitOYW1lOiBAcHJvamVjdC5uYW1lLmZpbGVAL3NhbXBsZQorU3BlY2lmaWNhdGlvbi1UaXRsZTogQHByb2plY3QubmFtZS50ZXh0QCBTYW1wbGUKK1NwZWNpZmljYXRpb24tVmVuZG9yOiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KK0ltcGxlbWVudGF0aW9uLVZlbmRvcjogVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCitTcGVjaWZpY2F0aW9uLVZlcnNpb246IEB2ZXJzaW9uQAorSW1wbGVtZW50YXRpb24tVmVyc2lvbjogQHZlcnNpb25ACitJbXBsZW1lbnRhdGlvbi1UaXRsZTogQHByb2plY3QubmFtZS5maWxlQC1zYW1wbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL2NvbmYvc2FtcGxlL3N0cnV0cy1jb25maWcueG1sIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvY29uZi9zYW1wbGUvc3RydXRzLWNvbmZpZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODEzYWVmOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL2NvbmYvc2FtcGxlL3N0cnV0cy1jb25maWcueG1sCkBAIC0wLDAgKzEsOTkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+CisKKzwhRE9DVFlQRSBzdHJ1dHMtY29uZmlnIFBVQkxJQworICAgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDEuMC8vRU4iCisgICAgICAgICAgImh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL2R0ZHMvc3RydXRzLWNvbmZpZ18xXzAuZHRkIj4KKworPCEtLQorICAgICBUaGlzIGlzIGEgYmxhbmsgU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZSBiYXNlZCBvbiB0aGUgZXhhbXBsZSBhcHBsaWNhdGlvbiwKKyAgICAgd2l0aCBjb21tZW50ZWQgZXhhbXBsZXMgb2Ygc29tZSBpdGVtcy4KKworICAgICBOT1RFOiBJZiB5b3UgaGF2ZSBhIGdlbmVyYXRvciB0b29sIHRvIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBKYXZhIGNsYXNzZXMgCisgICAgIGZvciB5b3UsIHlvdSBjb3VsZCBpbmNsdWRlIHRoZSBkZXRhaWxzIGluIHRoZSAiZm9ybS1iZWFuIiBkZWNsYXJhdGlvbnMuICAKKyAgICAgT3RoZXJ3aXNlLCB5b3Ugd291bGQgb25seSBkZWZpbmUgdGhlICJmb3JtLWJlYW4iIGVsZW1lbnQgaXRzZWxmLCB3aXRoIHRoZSAKKyAgICAgY29ycmVzcG9uZGluZyAibmFtZSIgYW5kICJ0eXBlIiBhdHRyaWJ1dGVzLCBhcyBzaG93biBoZXJlLgorLS0+CisKKworPHN0cnV0cy1jb25maWc+CisKKworICA8IS0tID09PT09PT09PT0gRGF0YSBTb3VyY2UgQ29uZmlndXJhdGlvbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorPCEtLQorICA8ZGF0YS1zb3VyY2VzPgorICAgIDxkYXRhLXNvdXJjZQorICAgICAgIGF1dG9Db21taXQ9ImZhbHNlIgorICAgICAgZGVzY3JpcHRpb249IkV4YW1wbGUgRGF0YSBTb3VyY2UgQ29uZmlndXJhdGlvbiIKKyAgICAgIGRyaXZlckNsYXNzPSJvcmcucG9zdGdyZXNxbC5Ecml2ZXIiCisgICAgICAgICBtYXhDb3VudD0iNCIKKyAgICAgICAgIG1pbkNvdW50PSIyIgorICAgICAgICAgcGFzc3dvcmQ9Im15cGFzc3dvcmQiCisgICAgICAgICAgICAgIHVybD0iamRiYzpwb3N0Z3Jlc3FsOi8vbG9jYWxob3N0L215ZGF0YWJhc2UiCisgICAgICAgICAgICAgdXNlcj0ibXl1c2VybmFtZSIKKyAgICAvPgorICA8L2RhdGEtc291cmNlcz4KKy0tPgorCisgIDwhLS0gPT09PT09PT09PSBGb3JtIEJlYW4gRGVmaW5pdGlvbnMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgIDxmb3JtLWJlYW5zPgorCisgICAgPCEtLSBFeGFtcGxlIGxvZ29uIGZvcm0gYmVhbiAKKyAgICA8Zm9ybS1iZWFuICAgICAgbmFtZT0ibG9nb25Gb3JtIgorICAgICAgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5leGFtcGxlLkxvZ29uRm9ybSIvPgorICAgICAtLT4KKworICA8L2Zvcm0tYmVhbnM+CisKKworICA8IS0tID09PT09PT09PT0gR2xvYmFsIEZvcndhcmQgRGVmaW5pdGlvbnMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorICA8Z2xvYmFsLWZvcndhcmRzPgorCisgICAgPCEtLSBFeGFtcGxlIGxvZ29uIGZvcndhcmQgCisgICAgIDxmb3J3YXJkICAgbmFtZT0ibG9nb24iICAgICAgICAgICAgICAgIHBhdGg9Ii9sb2dvbi5qc3AiLz4KKyAgICAgLS0+CisKKyAgPC9nbG9iYWwtZm9yd2FyZHM+CisKKworICA8IS0tID09PT09PT09PT0gQWN0aW9uIE1hcHBpbmcgRGVmaW5pdGlvbnMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorICA8YWN0aW9uLW1hcHBpbmdzPgorCisgICAgPCEtLSBFeGFtcGxlIGxvZ29uIGFjdGlvbiAKKyAgICA8YWN0aW9uICAgIHBhdGg9Ii9sb2dvbiIKKyAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmV4YW1wbGUuTG9nb25BY3Rpb24iCisgICAgICAgICAgICAgICBuYW1lPSJsb2dvbkZvcm0iCisgICAgICAgICAgICAgIHNjb3BlPSJyZXF1ZXN0IgorICAgICAgICAgICAgICBpbnB1dD0iL2xvZ29uLmpzcCI+CisgICAgPC9hY3Rpb24+CisgICAgLS0+CisKKyAgICA8IS0tIEV4YW1wbGUgbG9nb2ZmIGFjdGlvbiAKKyAgICA8YWN0aW9uICAgIHBhdGg9Ii9sb2dvZmYiCisgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5leGFtcGxlLkxvZ29mZkFjdGlvbiI+CisgICAgICA8Zm9yd2FyZCBuYW1lPSJzdWNjZXNzIiAgICAgICAgICAgICAgcGF0aD0iL2luZGV4LmpzcCIvPgorICAgIDwvYWN0aW9uPgorICAgIC0tPgorCisKKyAgICA8IS0tIFRoZSBzdGFuZGFyZCBhZG1pbmlzdHJhdGl2ZSBhY3Rpb25zIGF2YWlsYWJsZSB3aXRoIFN0cnV0cyAtLT4KKyAgICA8IS0tIFRoZXNlIHdvdWxkIGJlIGVpdGhlciBvbWl0dGVkIG9yIHByb3RlY3RlZCBieSBzZWN1cml0eSAtLT4KKyAgICA8IS0tIGluIGEgcmVhbCBhcHBsaWNhdGlvbiBkZXBsb3ltZW50IC0tPgorICAgIDxhY3Rpb24gICAgcGF0aD0iL2FkbWluL2FkZEZvcm1CZWFuIgorICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5BZGRGb3JtQmVhbkFjdGlvbiIvPgorICAgIDxhY3Rpb24gICAgcGF0aD0iL2FkbWluL2FkZEZvcndhcmQiCisgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkFkZEZvcndhcmRBY3Rpb24iLz4KKyAgICA8YWN0aW9uICAgIHBhdGg9Ii9hZG1pbi9hZGRNYXBwaW5nIgorICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5BZGRNYXBwaW5nQWN0aW9uIi8+CisgICAgPGFjdGlvbiAgICBwYXRoPSIvYWRtaW4vcmVsb2FkIgorICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5SZWxvYWRBY3Rpb24iLz4KKyAgICA8YWN0aW9uICAgIHBhdGg9Ii9hZG1pbi9yZW1vdmVGb3JtQmVhbiIKKyAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuUmVtb3ZlRm9ybUJlYW5BY3Rpb24iLz4KKyAgICA8YWN0aW9uICAgIHBhdGg9Ii9hZG1pbi9yZW1vdmVGb3J3YXJkIgorICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5SZW1vdmVGb3J3YXJkQWN0aW9uIi8+CisgICAgPGFjdGlvbiAgICBwYXRoPSIvYWRtaW4vcmVtb3ZlTWFwcGluZyIKKyAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuUmVtb3ZlTWFwcGluZ0FjdGlvbiIvPgorCisKKyAgPC9hY3Rpb24tbWFwcGluZ3M+CisKKzwvc3RydXRzLWNvbmZpZz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL2NvbmYvc2FtcGxlL3Rlc3QvY2FjdHVzLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9jb25mL3NhbXBsZS90ZXN0L2NhY3R1cy5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1YzRjYmQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9jb25mL3NhbXBsZS90ZXN0L2NhY3R1cy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTIgQEAKKyMgQ29uZmlndXJhdGlvbiBmaWxlIGZvciBDYWN0dXMuCisKKyMgRWFjaCBwcm9qZWN0IHVzaW5nIENhY3R1cyBuZWVkIHRvIGhhdmUgc3VjaCBhIGZpbGUgcHV0IGluIHRoZSBjbGllbnQgc2lkZQorIyBDTEFTU1BBVEggKE1lYW5pbmcgdGhlIGRpcmVjdG9yeSBjb250YWluZ2luIHRoaXMgZmlsZSBzaG91bGQgYmUgaW4gdGhlIGNsaWVudAorIyBzaWRlIENMQVNTUEFUSCwgbm90IHRoZSBmaWxlIGl0c2VsZiBvZiBjb3Vyc2UgLi4uIDopICkKKworIyBEZWZpbmVzIHRoZSBVUkxzIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IENhY3R1cyB0byBjYWxsIGl0J3MgcmVkaXJlY3RvcnMuCisjIFlvdSBuZWVkIHRvIHNwZWNpZnkgaW4gdGhlc2UgVVJMcyB0aGUgd2ViYXBwIGNvbnRleHQgdGhhdCB5b3UgdXNlIGZvciB5b3VyCisjIGFwcGxpY2F0aW9uLiBJbiB0aGUgZXhhbXBsZSBiZWxvdywgdGhlIGNvbnRleHQgaXMgInRlc3QiLgorCisjIFNlcnZsZXQgUmVkaXJlY3Rvci4gVXNlZCBieSBTZXJ2bGV0VGVzdENhc2UgdGVzdCBjYXNlcy4KK2NhY3R1cy5zZXJ2bGV0UmVkaXJlY3RvclVSTCA9IGh0dHA6Ly9sb2NhbGhvc3Q6QHRlc3QucG9ydEAvQHByb2plY3QubmFtZS5maWxlQC1zYW1wbGUvU2VydmxldFJlZGlyZWN0b3IKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL2NvbmYvc2FtcGxlL3Rlc3QvdG9tY2F0NDAvc2VydmVyLnhtbCBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL2NvbmYvc2FtcGxlL3Rlc3QvdG9tY2F0NDAvc2VydmVyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGE2NDNkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvY29uZi9zYW1wbGUvdGVzdC90b21jYXQ0MC9zZXJ2ZXIueG1sCkBAIC0wLDAgKzEsMjEgQEAKKzxTZXJ2ZXIgcG9ydD0iODAwNSIgc2h1dGRvd249IlNIVVRET1dOIiBkZWJ1Zz0iMCI+CisKKyAgPFNlcnZpY2UgbmFtZT0iVG9tY2F0LVN0YW5kYWxvbmUiPgorCisgICAgPENvbm5lY3RvciBjbGFzc05hbWU9Im9yZy5hcGFjaGUuY2F0YWxpbmEuY29ubmVjdG9yLmh0dHAuSHR0cENvbm5lY3RvciIKKyAgICAgIHBvcnQ9IkB0ZXN0LnBvcnRAIiBtaW5Qcm9jZXNzb3JzPSI1IiBtYXhQcm9jZXNzb3JzPSI3NSIKKyAgICAgIGFjY2VwdENvdW50PSIxMCIgZGVidWc9IjAiLz4KKworICAgIDxFbmdpbmUgbmFtZT0iU3RhbmRhbG9uZSIgZGVmYXVsdEhvc3Q9ImxvY2FsaG9zdCIgZGVidWc9IjAiPgorCisgICAgICA8UmVhbG0gY2xhc3NOYW1lPSJvcmcuYXBhY2hlLmNhdGFsaW5hLnJlYWxtLk1lbW9yeVJlYWxtIiAvPgorCisgICAgICA8SG9zdCBuYW1lPSJsb2NhbGhvc3QiIGRlYnVnPSIwIgorICAgICAgICBhcHBCYXNlPSJAdGFyZ2V0LnRvbWNhdDQwLmZ1bGwuZGlyQC93ZWJhcHBzIj4KKyAgICAgIDwvSG9zdD4KKworICAgIDwvRW5naW5lPgorCisgIDwvU2VydmljZT4KKworPC9TZXJ2ZXI+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9jb25mL3NhbXBsZS90ZXN0L3RvbWNhdDQwL3dlYi54bWwgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9jb25mL3NhbXBsZS90ZXN0L3RvbWNhdDQwL3dlYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTE3ZTFkNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL2NvbmYvc2FtcGxlL3Rlc3QvdG9tY2F0NDAvd2ViLnhtbApAQCAtMCwwICsxLDcwNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorCis8IURPQ1RZUEUgd2ViLWFwcAorICAgIFBVQkxJQyAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIFdlYiBBcHBsaWNhdGlvbiAyLjMvL0VOIgorICAgICJodHRwOi8vamF2YS5zdW4uY29tL2oyZWUvZHRkcy93ZWItYXBwXzJfMy5kdGQiPgorCis8d2ViLWFwcD4KKworICA8IS0tIE1hcHBpbmdzIGluIHRoaXMgZmlsZSBhcmUgdGhlIGRlZmF1bHRzIGZvciBhbGwgQ29udGV4dHMgLS0+CisKKyAgPCEtLSBUaGUgZGVmYXVsdCBzZXJ2bGV0IHRoYXQgc2VydmVzIHN0YXRpYyByZXNvdXJjZXMgLS0+CisgIDxzZXJ2bGV0PgorICAgIDxzZXJ2bGV0LW5hbWU+ZGVmYXVsdDwvc2VydmxldC1uYW1lPgorICAgIDxzZXJ2bGV0LWNsYXNzPm9yZy5hcGFjaGUuY2F0YWxpbmEuc2VydmxldHMuRGVmYXVsdFNlcnZsZXQ8L3NlcnZsZXQtY2xhc3M+CisgICAgPGluaXQtcGFyYW0+CisgICAgICA8cGFyYW0tbmFtZT5kZWJ1ZzwvcGFyYW0tbmFtZT4KKyAgICAgIDxwYXJhbS12YWx1ZT4wPC9wYXJhbS12YWx1ZT4KKyAgICA8L2luaXQtcGFyYW0+CisgICAgPGluaXQtcGFyYW0+CisgICAgICA8cGFyYW0tbmFtZT5saXN0aW5nczwvcGFyYW0tbmFtZT4KKyAgICAgIDxwYXJhbS12YWx1ZT50cnVlPC9wYXJhbS12YWx1ZT4KKyAgICA8L2luaXQtcGFyYW0+CisgICAgPGxvYWQtb24tc3RhcnR1cD4xPC9sb2FkLW9uLXN0YXJ0dXA+CisgIDwvc2VydmxldD4KKworICA8IS0tIFRoZSBpbnZva2VyIHNlcnZsZXQgdGhhdCBleGVjdXRlcyBub24tcmVnaXN0ZXJlZCBzZXJ2bGV0cyAtLT4KKyAgPHNlcnZsZXQ+CisgICAgPHNlcnZsZXQtbmFtZT5pbnZva2VyPC9zZXJ2bGV0LW5hbWU+CisgICAgPHNlcnZsZXQtY2xhc3M+b3JnLmFwYWNoZS5jYXRhbGluYS5zZXJ2bGV0cy5JbnZva2VyU2VydmxldDwvc2VydmxldC1jbGFzcz4KKyAgICA8aW5pdC1wYXJhbT4KKyAgICAgIDxwYXJhbS1uYW1lPmRlYnVnPC9wYXJhbS1uYW1lPgorICAgICAgPHBhcmFtLXZhbHVlPjA8L3BhcmFtLXZhbHVlPgorICAgIDwvaW5pdC1wYXJhbT4KKyAgICA8bG9hZC1vbi1zdGFydHVwPjI8L2xvYWQtb24tc3RhcnR1cD4KKyAgPC9zZXJ2bGV0PgorCisgIDwhLS0gVGhlIEpTUCBwYWdlIGNvbXBpbGVyIGFuZCBleGVjdXRpb24gc2VydmxldCAtLT4KKyAgPHNlcnZsZXQ+CisgICAgPHNlcnZsZXQtbmFtZT5qc3A8L3NlcnZsZXQtbmFtZT4KKyAgICAgIDxzZXJ2bGV0LWNsYXNzPm9yZy5hcGFjaGUuamFzcGVyLnNlcnZsZXQuSnNwU2VydmxldDwvc2VydmxldC1jbGFzcz4KKyAgICA8IS0tIFVuY29tbWVudCB0aGUgZm9sbG93aW5nIHRvIHVzZSBKaWtlcyBmb3IgSlNQIGNvbXBpbGF0aW9uIC0tPgorPCEtLQorICAgIDxpbml0LXBhcmFtPgorICAgICAgPHBhcmFtLW5hbWU+anNwQ29tcGlsZXJQbHVnaW48L3BhcmFtLW5hbWU+CisgICAgICA8cGFyYW0tdmFsdWU+b3JnLmFwYWNoZS5qYXNwZXIuY29tcGlsZXIuSmlrZXNKYXZhQ29tcGlsZXI8L3BhcmFtLXZhbHVlPgorICAgIDwvaW5pdC1wYXJhbT4KKy0tPgorICAgIDxpbml0LXBhcmFtPgorICAgICAgPCEtLSBBbiBhbHRlcm5hdGUgamF2YSBlbmNvZGluZyAtLT4KKyAgICAgIDxwYXJhbS1uYW1lPmphdmFFbmNvZGluZzwvcGFyYW0tbmFtZT4KKyAgICAgIDxwYXJhbS12YWx1ZT5VVEYtODwvcGFyYW0tdmFsdWU+CisgICAgPC9pbml0LXBhcmFtPgorICAgIDxpbml0LXBhcmFtPgorICAgICAgPCEtLSBMZXZlbHM6IEZBVEFMIEVSUk9SIFdBUk5JTkcgSU5GT1JNQVRJT04gREVCVUcgLS0+CisgICAgICA8cGFyYW0tbmFtZT5sb2dWZXJib3NpdHlMZXZlbDwvcGFyYW0tbmFtZT4KKyAgICAgIDxwYXJhbS12YWx1ZT5XQVJOSU5HPC9wYXJhbS12YWx1ZT4KKyAgICA8L2luaXQtcGFyYW0+CisgICAgPGxvYWQtb24tc3RhcnR1cD40PC9sb2FkLW9uLXN0YXJ0dXA+CisgIDwvc2VydmxldD4KKworICA8IS0tIFNTSUludm9rZXIgU2VydmxldCAtLT4KKyAgPHNlcnZsZXQ+CisgICAgPHNlcnZsZXQtbmFtZT5zc2k8L3NlcnZsZXQtbmFtZT4KKyAgICA8c2VydmxldC1jbGFzcz5vcmcuYXBhY2hlLmNhdGFsaW5hLnNlcnZsZXRzLlNzaUludm9rZXJTZXJ2bGV0PC9zZXJ2bGV0LWNsYXNzPgorICAgIDxpbml0LXBhcmFtPgorICAgICAgPCEtLSBkZWJ1ZyA+IDAgPT0gZGVidWcgZW5hYmxlZCAtLT4KKyAgICAgIDxwYXJhbS1uYW1lPmRlYnVnPC9wYXJhbS1uYW1lPgorICAgICAgPHBhcmFtLXZhbHVlPjA8L3BhcmFtLXZhbHVlPgorICAgIDwvaW5pdC1wYXJhbT4KKyAgICA8aW5pdC1wYXJhbT4KKyAgICAgIDwhLS0gdGltZSBpbiBzZWNvbmRzIGJlZm9yZSB0aGUgU1NJIHBhZ2UgZXhwaXJlcyAtLT4KKyAgICAgIDxwYXJhbS1uYW1lPmV4cGlyZXM8L3BhcmFtLW5hbWU+CisgICAgICA8cGFyYW0tdmFsdWU+NjY2PC9wYXJhbS12YWx1ZT4KKyAgICA8L2luaXQtcGFyYW0+CisgICAgPGluaXQtcGFyYW0+CisgICAgICA8IS0tIDAgPT0gZmFsc2U7IDEgPT0gdHJ1ZSAtLT4KKyAgICAgIDxwYXJhbS1uYW1lPmJ1ZmZlcmVkPC9wYXJhbS1uYW1lPgorICAgICAgPHBhcmFtLXZhbHVlPjE8L3BhcmFtLXZhbHVlPgorICAgIDwvaW5pdC1wYXJhbT4KKyAgICA8aW5pdC1wYXJhbT4KKyAgICAgIDwhLS0gMCA9PSBmYWxzZTsgMSA9PSB0cnVlIC0tPgorICAgICAgPHBhcmFtLW5hbWU+aXNWaXJ0dWFsV2ViYXBwUmVsYXRpdmU8L3BhcmFtLW5hbWU+CisgICAgICA8cGFyYW0tdmFsdWU+MDwvcGFyYW0tdmFsdWU+CisgICAgPC9pbml0LXBhcmFtPgorICAgIDxsb2FkLW9uLXN0YXJ0dXA+NTwvbG9hZC1vbi1zdGFydHVwPgorICA8L3NlcnZsZXQ+CisKKyAgPCEtLSBDR0lTZXJ2bGV0IC0tPgorICAgPHNlcnZsZXQ+CisgICAgIDxzZXJ2bGV0LW5hbWU+Y2dpPC9zZXJ2bGV0LW5hbWU+CisgICAgIDxzZXJ2bGV0LWNsYXNzPm9yZy5hcGFjaGUuY2F0YWxpbmEuc2VydmxldHMuQ0dJU2VydmxldDwvc2VydmxldC1jbGFzcz4KKyAgICAgPGluaXQtcGFyYW0+CisgICAgICAgPCEtLSBkZWJ1ZyA+IDAgPT0gZGVidWcgZW5hYmxlZCAtLT4KKyAgICAgICA8cGFyYW0tbmFtZT5kZWJ1ZzwvcGFyYW0tbmFtZT4KKyAgICAgICA8cGFyYW0tdmFsdWU+NjwvcGFyYW0tdmFsdWU+CisgICAgIDwvaW5pdC1wYXJhbT4KKyAgICAgPGluaXQtcGFyYW0+CisgICAgICAgPCEtLSBjbGllbnRJbnB1dFRpbWVvdXQgaXMgdGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yLS0+CisgICAgICAgPCEtLSAgIGlucHV0IGZyb20gdGhlIGNsaWVudCBicm93c2VyIGJlZm9yZSBhc3N1bWluZyB0aGVyZSBpcyBub25lIC0tPgorICAgICAgIDxwYXJhbS1uYW1lPmNsaWVudElucHV0VGltZW91dDwvcGFyYW0tbmFtZT4KKyAgICAgICA8cGFyYW0tdmFsdWU+MTAwPC9wYXJhbS12YWx1ZT4KKyAgICAgPC9pbml0LXBhcmFtPgorICAgICA8aW5pdC1wYXJhbT4KKyAgICAgICA8IS0tIFRoZSBDR0kgc2VhcmNoIHBhdGggd2lsbCBzdGFydCBhdCAgICAgICAgICAgICAgICAgICAgLS0+CisgICAgICAgPCEtLSAgICAgd2ViQXBwUm9vdERpciArIEZpbGUuc2VwYXJhdG9yICsgY2dpUGF0aFByZWZpeCAgIC0tPgorICAgICAgIDxwYXJhbS1uYW1lPmNnaVBhdGhQcmVmaXg8L3BhcmFtLW5hbWU+CisgICAgICAgPHBhcmFtLXZhbHVlPldFQi1JTkYvY2dpPC9wYXJhbS12YWx1ZT4KKyAgICAgPC9pbml0LXBhcmFtPgorICAgICA8bG9hZC1vbi1zdGFydHVwPjY8L2xvYWQtb24tc3RhcnR1cD4KKyAgIDwvc2VydmxldD4KKworICA8IS0tIFRoZSBtYXBwaW5nIGZvciB0aGUgZGVmYXVsdCBzZXJ2bGV0IC0tPgorICA8c2VydmxldC1tYXBwaW5nPgorICAgIDxzZXJ2bGV0LW5hbWU+ZGVmYXVsdDwvc2VydmxldC1uYW1lPgorICAgIDx1cmwtcGF0dGVybj4vPC91cmwtcGF0dGVybj4KKyAgPC9zZXJ2bGV0LW1hcHBpbmc+CisKKyAgPCEtLSBUaGUgbWFwcGluZyBmb3IgdGhlIGludm9rZXIgc2VydmxldCAtLT4KKyAgPCEtLSBDb21tZW50IHRoaXMgb3V0IGlmIHlvdSBkbyBub3Qgd2FudCAiaW52b2tlciIgc2VydmljZSAtLT4KKyAgPHNlcnZsZXQtbWFwcGluZz4KKyAgICA8c2VydmxldC1uYW1lPmludm9rZXI8L3NlcnZsZXQtbmFtZT4KKyAgICA8dXJsLXBhdHRlcm4+L3NlcnZsZXQvKjwvdXJsLXBhdHRlcm4+CisgIDwvc2VydmxldC1tYXBwaW5nPgorCisgIDwhLS0gVGhlIG1hcHBpbmcgZm9yIHRoZSBKU1Agc2VydmxldCAtLT4KKyAgPCEtLSBDb21tZW50IHRoaXMgb3V0IGlmIHlvdSBkbyBub3Qgd2FudCAianNwIiBzZXJ2aWNlIC0tPgorICA8c2VydmxldC1tYXBwaW5nPgorICAgIDxzZXJ2bGV0LW5hbWU+anNwPC9zZXJ2bGV0LW5hbWU+CisgICAgPHVybC1wYXR0ZXJuPiouanNwPC91cmwtcGF0dGVybj4KKyAgPC9zZXJ2bGV0LW1hcHBpbmc+CisKKyAgPCEtLSBUaGUgbWFwcGluZyBmb3IgU1NJLS0+CisgIDxzZXJ2bGV0LW1hcHBpbmc+CisgICAgPHNlcnZsZXQtbmFtZT5zc2k8L3NlcnZsZXQtbmFtZT4KKyAgICA8dXJsLXBhdHRlcm4+Ki5zaHRtbDwvdXJsLXBhdHRlcm4+CisgIDwvc2VydmxldC1tYXBwaW5nPgorCisgICAgIDwhLS0gVGhlIG1hcHBpbmcgZm9yIHRoZSBDR0kgR2F0ZXdheSBzZXJ2bGV0IC0tPgorICAgICA8IS0tIENvbW1lbnQgdGhpcyBvdXQgaWYgeW91IGRvIG5vdCB3YW50ICJDR0kgR2F0ZXdheSIgc2VydmljZSAtLT4KKyAgICAgICA8c2VydmxldC1tYXBwaW5nPgorICAgICAgICAgICA8c2VydmxldC1uYW1lPmNnaTwvc2VydmxldC1uYW1lPgorICAgICAgIDx1cmwtcGF0dGVybj4vY2dpLWJpbi8qPC91cmwtcGF0dGVybj4KKyAgICAgICA8L3NlcnZsZXQtbWFwcGluZz4KKworICA8IS0tIFNldCB0aGUgZGVmYXVsdCBzZXNzaW9uIHRpbWVvdXQgKGluIHNlY29uZHMpIC0tPgorICA8c2Vzc2lvbi1jb25maWc+CisgICAgPHNlc3Npb24tdGltZW91dD4zMDwvc2Vzc2lvbi10aW1lb3V0PgorICA8L3Nlc3Npb24tY29uZmlnPgorCisgIDwhLS0gRXN0YWJsaXNoIHRoZSBkZWZhdWx0IE1JTUUgdHlwZSBtYXBwaW5ncyAtLT4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnR4dDwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+dGV4dC9wbGFpbjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmh0bWw8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPnRleHQvaHRtbDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmh0bTwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+dGV4dC9odG1sPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+Z2lmPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5pbWFnZS9naWY8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5qcGc8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmltYWdlL2pwZWc8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5qcGU8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmltYWdlL2pwZWc8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5qcGVnPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5pbWFnZS9qcGVnPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+amF2YTwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+dGV4dC9wbGFpbjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmJvZHk8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPnRleHQvaHRtbDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnJ0eDwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+dGV4dC9yaWNodGV4dDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnRzdjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+dGV4dC90YWItc2VwYXJhdGVkLXZhbHVlczwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmV0eDwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+dGV4dC94LXNldGV4dDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnBzPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hcHBsaWNhdGlvbi94LXBvc3RzY3JpcHQ8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5jbGFzczwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24vamF2YTwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmNzaDwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24veC1jc2g8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5zaDwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24veC1zaDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnRjbDwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24veC10Y2w8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj50ZXg8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL3gtdGV4PC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+dGV4aW5mbzwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24veC10ZXhpbmZvPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+dGV4aTwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24veC10ZXhpbmZvPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+dDwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24veC10cm9mZjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnRyPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hcHBsaWNhdGlvbi94LXRyb2ZmPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+cm9mZjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24veC10cm9mZjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPm1hbjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24veC10cm9mZi1tYW48L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5tZTwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24veC10cm9mZi1tZTwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPm1zPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hcHBsaWNhdGlvbi94LXdhaXMtc291cmNlPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+c3JjPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hcHBsaWNhdGlvbi94LXdhaXMtc291cmNlPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+emlwPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hcHBsaWNhdGlvbi96aXA8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5iY3BpbzwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24veC1iY3BpbzwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmNwaW88L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL3gtY3BpbzwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmd0YXI8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL3gtZ3RhcjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnNoYXI8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL3gtc2hhcjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnN2NGNwaW88L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL3gtc3Y0Y3BpbzwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnN2NGNyYzwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24veC1zdjRjcmM8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj50YXI8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL3gtdGFyPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+dXN0YXI8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL3gtdXN0YXI8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5kdmk8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL3gtZHZpPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+aGRmPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hcHBsaWNhdGlvbi94LWhkZjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmxhdGV4PC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hcHBsaWNhdGlvbi94LWxhdGV4PC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+YmluPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hcHBsaWNhdGlvbi9vY3RldC1zdHJlYW08L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5vZGE8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL29kYTwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnBkZjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24vcGRmPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+cHM8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL3Bvc3RzY3JpcHQ8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5lcHM8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL3Bvc3RzY3JpcHQ8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5haTwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24vcG9zdHNjcmlwdDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnJ0ZjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24vcnRmPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+bmM8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL3gtbmV0Y2RmPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+Y2RmPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hcHBsaWNhdGlvbi94LW5ldGNkZjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmNlcjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24veC14NTA5LWNhLWNlcnQ8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5leGU8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmd6PC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hcHBsaWNhdGlvbi94LWd6aXA8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5aPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hcHBsaWNhdGlvbi94LWNvbXByZXNzPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+ejwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24veC1jb21wcmVzczwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmhxeDwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24vbWFjLWJpbmhleDQwPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+bWlmPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hcHBsaWNhdGlvbi94LW1pZjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmllZjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+aW1hZ2UvaWVmPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+dGlmZjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+aW1hZ2UvdGlmZjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnRpZjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+aW1hZ2UvdGlmZjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnJhczwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+aW1hZ2UveC1jbXUtcmFzdGVyPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+cG5tPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5pbWFnZS94LXBvcnRhYmxlLWFueW1hcDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnBibTwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+aW1hZ2UveC1wb3J0YWJsZS1iaXRtYXA8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5wZ208L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmltYWdlL3gtcG9ydGFibGUtZ3JheW1hcDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnBwbTwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+aW1hZ2UveC1wb3J0YWJsZS1waXhtYXA8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5yZ2I8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmltYWdlL3gtcmdiPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+eGJtPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5pbWFnZS94LXhiaXRtYXA8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj54cG08L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmltYWdlL3gteHBpeG1hcDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnh3ZDwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+aW1hZ2UveC14d2luZG93ZHVtcDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmF1PC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hdWRpby9iYXNpYzwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnNuZDwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXVkaW8vYmFzaWM8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5haWY8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmF1ZGlvL3gtYWlmZjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmFpZmY8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmF1ZGlvL3gtYWlmZjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmFpZmM8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmF1ZGlvL3gtYWlmZjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPndhdjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXVkaW8veC13YXY8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5tcGVnPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT52aWRlby9tcGVnPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+bXBnPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT52aWRlby9tcGVnPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+bXBlPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT52aWRlby9tcGVnPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+cXQ8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPnZpZGVvL3F1aWNrdGltZTwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPm1vdjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+dmlkZW8vcXVpY2t0aW1lPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+cXQ8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPnZpZGVvL3F1aWNrdGltZTwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmF2aTwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+dmlkZW8veC1tc3ZpZGVvPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+bW92aWU8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPnZpZGVvL3gtc2dpLW1vdmllPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+YXZ4PC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT52aWRlby94LXJhZC1zY3JlZW5wbGF5PC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+d3JsPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT54LXdvcmxkL3gtdnJtbDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPm1wdjI8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPnZpZGVvL21wZWcyPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICAgPG1pbWUtbWFwcGluZz4gPCEtLSBXTUwgU291cmNlIC0tPgorICAgICA8ZXh0ZW5zaW9uPndtbDwvZXh0ZW5zaW9uPgorICAgICA8bWltZS10eXBlPnRleHQvdm5kLndhcC53bWw8L21pbWUtdHlwZT4KKyAgIDwvbWltZS1tYXBwaW5nPgorICAgPG1pbWUtbWFwcGluZz4gPCEtLSBDb21waWxlZCBXTUwgLS0+CisgICAgIDxleHRlbnNpb24+d21sYzwvZXh0ZW5zaW9uPgorICAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL3ZuZC53YXAud21sYzwvbWltZS10eXBlPgorICAgPC9taW1lLW1hcHBpbmc+CisgICA8bWltZS1tYXBwaW5nPiA8IS0tIFdNTCBTY3JpcHQgU291cmNlIC0tPgorICAgICA8ZXh0ZW5zaW9uPndtbHM8L2V4dGVuc2lvbj4KKyAgICAgPG1pbWUtdHlwZT50ZXh0L3ZuZC53YXAud21sczwvbWltZS10eXBlPgorICAgPC9taW1lLW1hcHBpbmc+CisgICA8bWltZS1tYXBwaW5nPiA8IS0tIENvbXBpbGVkIFdNTCBTY3JpcHQgLS0+CisgICAgIDxleHRlbnNpb24+d21sc2NyaXB0YzwvZXh0ZW5zaW9uPgorICAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL3ZuZC53YXAud21sc2NyaXB0YzwvbWltZS10eXBlPgorICAgPC9taW1lLW1hcHBpbmc+CisgICA8bWltZS1tYXBwaW5nPiA8IS0tIFdpcmVsZXNzIEJpdG1hcCAtLT4KKyAgICAgPGV4dGVuc2lvbj53Ym1wPC9leHRlbnNpb24+CisgICAgIDxtaW1lLXR5cGU+aW1hZ2Uvdm5kLndhcC53Ym1wPC9taW1lLXR5cGU+CisgICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPm1wMjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXVkaW8veC1tcGVnPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+bXAzPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hdWRpby94LW1wZWc8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5tcDE8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmF1ZGlvL3gtbXBlZzwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPm1wYTwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXVkaW8veC1tcGVnPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+YWJzPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hdWRpby94LW1wZWc8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5tcGVnYTwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXVkaW8veC1tcGVnPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+bWlkaTwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXVkaW8veC1taWRpPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+bWlkPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hdWRpby94LW1pZGk8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5zbWY8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmF1ZGlvL3gtbWlkaTwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmthcjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXVkaW8veC1taWRpPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+YWlmZjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXVkaW8veC1haWZmPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+YWlmPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hdWRpby94LWFpZmY8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5haWZjPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hdWRpby94LWFpZmY8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5haW08L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL3gtYWltPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+YXJ0PC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5pbWFnZS94LWpnPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+YXU8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmF1ZGlvL2Jhc2ljPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+c25kPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hdWRpby9iYXNpYzwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnVsdzwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXVkaW8vYmFzaWM8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5ibXA8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmltYWdlL2JtcDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmRpYjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+aW1hZ2UvYm1wPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+Y2RmPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hcHBsaWNhdGlvbi94LWNkZjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmR2PC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT52aWRlby94LWR2PC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+bTN1PC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hdWRpby94LW1wZWd1cmw8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5qYXI8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL2phdmEtYXJjaGl2ZTwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmhxeDwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24vbWFjLWJpbmhleDQwPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+cG50PC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5pbWFnZS94LW1hY3BhaW50PC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+bWFjPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5pbWFnZS94LW1hY3BhaW50PC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+YXNmPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT52aWRlby94LW1zLWFzZjwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPmFzeDwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+dmlkZW8veC1tcy1hc2Y8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5kb2M8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmFwcGxpY2F0aW9uL21zd29yZDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnJtPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5hcHBsaWNhdGlvbi92bmQucm4tcmVhbG1lZGlhPC9taW1lLXR5cGU+CisgIDwvbWltZS1tYXBwaW5nPgorICA8bWltZS1tYXBwaW5nPgorICAgIDxleHRlbnNpb24+cHNkPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5pbWFnZS94LXBob3Rvc2hvcDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnBpYzwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+aW1hZ2UvcGljdDwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnBpY3Q8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmltYWdlL3BpY3Q8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5wY3Q8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmltYWdlL3BpY3Q8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5wbHM8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmF1ZGlvL3gtc2NwbHM8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5wbmc8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPmltYWdlL3BuZzwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnF0aTwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+aW1hZ2UveC1xdWlja3RpbWU8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5xdGlmPC9leHRlbnNpb24+CisgICAgPG1pbWUtdHlwZT5pbWFnZS94LXF1aWNrdGltZTwvbWltZS10eXBlPgorICA8L21pbWUtbWFwcGluZz4KKyAgPG1pbWUtbWFwcGluZz4KKyAgICA8ZXh0ZW5zaW9uPnN3ZjwvZXh0ZW5zaW9uPgorICAgIDxtaW1lLXR5cGU+YXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2g8L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisgIDxtaW1lLW1hcHBpbmc+CisgICAgPGV4dGVuc2lvbj5kdGQ8L2V4dGVuc2lvbj4KKyAgICA8bWltZS10eXBlPnRleHQvcGxhaW48L21pbWUtdHlwZT4KKyAgPC9taW1lLW1hcHBpbmc+CisKKyAgPCEtLSBFc3RhYmxpc2ggdGhlIGRlZmF1bHQgbGlzdCBvZiB3ZWxjb21lIGZpbGVzIC0tPgorICA8d2VsY29tZS1maWxlLWxpc3Q+CisgICAgPHdlbGNvbWUtZmlsZT5pbmRleC5odG1sPC93ZWxjb21lLWZpbGU+CisgICAgPHdlbGNvbWUtZmlsZT5pbmRleC5odG08L3dlbGNvbWUtZmlsZT4KKyAgICA8d2VsY29tZS1maWxlPmluZGV4LmpzcDwvd2VsY29tZS1maWxlPgorICA8L3dlbGNvbWUtZmlsZS1saXN0PgorCisgIDwhLS0gPT09PT09PT09PT09PT09PSBTZWN1cml0eSBDb25zdHJhaW50cyBmb3IgVGVzdGluZyA9PT09PT09PT09PT09PT0gLS0+CisKKzwhLS0KKyAgPHNlY3VyaXR5LWNvbnN0cmFpbnQ+CisgICAgPHdlYi1yZXNvdXJjZS1jb2xsZWN0aW9uPgorICAgICAgPHdlYi1yZXNvdXJjZS1uYW1lPlRoZSBFbnRpcmUgV2ViIEFwcGxpY2F0aW9uPC93ZWItcmVzb3VyY2UtbmFtZT4KKyAgICAgIDx1cmwtcGF0dGVybj4vKjwvdXJsLXBhdHRlcm4+CisgICAgPC93ZWItcmVzb3VyY2UtY29sbGVjdGlvbj4KKyAgICA8YXV0aC1jb25zdHJhaW50PgorICAgICAgPHJvbGUtbmFtZT50b21jYXQ8L3JvbGUtbmFtZT4KKyAgICA8L2F1dGgtY29uc3RyYWludD4KKyAgPC9zZWN1cml0eS1jb25zdHJhaW50PgorCisgIDxsb2dpbi1jb25maWc+CisgICAgPGF1dGgtbWV0aG9kPkJBU0lDPC9hdXRoLW1ldGhvZD4KKyAgICA8cmVhbG0tbmFtZT5Ub21jYXQgU3VwcG9ydGVkIFJlYWxtPC9yZWFsbS1uYW1lPgorICA8L2xvZ2luLWNvbmZpZz4KKworICA8c2VjdXJpdHktcm9sZT4KKyAgICA8ZGVzY3JpcHRpb24+CisgICAgICBBbiBleGFtcGxlIHJvbGUgZGVmaW5lZCBpbiAiY29uZi90b21jYXQtdXNlcnMueG1sIgorICAgIDwvZGVzY3JpcHRpb24+CisgICAgPHJvbGUtbmFtZT50b21jYXQ8L3JvbGUtbmFtZT4KKyAgPC9zZWN1cml0eS1yb2xlPgorLS0+CisKKzwvd2ViLWFwcD4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvY29uZi9zYW1wbGUvd2ViLnhtbCBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL2NvbmYvc2FtcGxlL3dlYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjM5ODVmMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL2NvbmYvc2FtcGxlL3dlYi54bWwKQEAgLTAsMCArMSw3NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorCis8IURPQ1RZUEUgd2ViLWFwcAorICBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4yLy9FTiIKKyAgImh0dHA6Ly9qYXZhLnN1bi5jb20vajJlZS9kdGRzL3dlYi1hcHBfMl8yLmR0ZCI+CisKKzx3ZWItYXBwPgorCisKKyAgPCEtLSBTdGFuZGFyZCBBY3Rpb24gU2VydmxldCBDb25maWd1cmF0aW9uICh3aXRoIGRlYnVnZ2luZykgLS0+CisgIDxzZXJ2bGV0PgorICAgIDxzZXJ2bGV0LW5hbWU+YWN0aW9uPC9zZXJ2bGV0LW5hbWU+CisgICAgPHNlcnZsZXQtY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvblNlcnZsZXQ8L3NlcnZsZXQtY2xhc3M+CisgICAgPGluaXQtcGFyYW0+CisgICAgICA8cGFyYW0tbmFtZT5hcHBsaWNhdGlvbjwvcGFyYW0tbmFtZT4KKyAgICAgIDxwYXJhbS12YWx1ZT5BcHBsaWNhdGlvblJlc291cmNlczwvcGFyYW0tdmFsdWU+CisgICAgPC9pbml0LXBhcmFtPgorICAgIDxpbml0LXBhcmFtPgorICAgICAgPHBhcmFtLW5hbWU+Y29uZmlnPC9wYXJhbS1uYW1lPgorICAgICAgPHBhcmFtLXZhbHVlPi9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sPC9wYXJhbS12YWx1ZT4KKyAgICA8L2luaXQtcGFyYW0+CisgICAgPGluaXQtcGFyYW0+CisgICAgICA8cGFyYW0tbmFtZT5kZWJ1ZzwvcGFyYW0tbmFtZT4KKyAgICAgIDxwYXJhbS12YWx1ZT4yPC9wYXJhbS12YWx1ZT4KKyAgICA8L2luaXQtcGFyYW0+CisgICAgPGluaXQtcGFyYW0+CisgICAgICA8cGFyYW0tbmFtZT5kZXRhaWw8L3BhcmFtLW5hbWU+CisgICAgICA8cGFyYW0tdmFsdWU+MjwvcGFyYW0tdmFsdWU+CisgICAgPC9pbml0LXBhcmFtPgorICAgIDxpbml0LXBhcmFtPgorICAgICAgPHBhcmFtLW5hbWU+dmFsaWRhdGU8L3BhcmFtLW5hbWU+CisgICAgICA8cGFyYW0tdmFsdWU+dHJ1ZTwvcGFyYW0tdmFsdWU+CisgICAgPC9pbml0LXBhcmFtPgorICAgIDxsb2FkLW9uLXN0YXJ0dXA+MjwvbG9hZC1vbi1zdGFydHVwPgorICA8L3NlcnZsZXQ+CisKKyAgPCEtLSBUaGlzIGlzIG9ubHkgbmVlZGVkIGZvciBDYWN0dXMgaW50ZWdyYXRpb24gdW5pdCB0ZXN0cyAtLT4KKyAgPHNlcnZsZXQ+CisgICAgPHNlcnZsZXQtbmFtZT5TZXJ2bGV0UmVkaXJlY3Rvcjwvc2VydmxldC1uYW1lPgorICAgIDxzZXJ2bGV0LWNsYXNzPm9yZy5hcGFjaGUuY2FjdHVzLnNlcnZlci5TZXJ2bGV0VGVzdFJlZGlyZWN0b3I8L3NlcnZsZXQtY2xhc3M+CisgIDwvc2VydmxldD4KKworICA8IS0tIFN0YW5kYXJkIEFjdGlvbiBTZXJ2bGV0IE1hcHBpbmcgLS0+CisgIDxzZXJ2bGV0LW1hcHBpbmc+CisgICAgPHNlcnZsZXQtbmFtZT5hY3Rpb248L3NlcnZsZXQtbmFtZT4KKyAgICA8dXJsLXBhdHRlcm4+L2RvLyo8L3VybC1wYXR0ZXJuPgorICA8L3NlcnZsZXQtbWFwcGluZz4KKworICA8IS0tIFRoaXMgaXMgb25seSBuZWVkZWQgZm9yIENhY3R1cyBpbnRlZ3JhdGlvbiB1bml0IHRlc3RzIC0tPgorICA8c2VydmxldC1tYXBwaW5nPgorICAgIDxzZXJ2bGV0LW5hbWU+U2VydmxldFJlZGlyZWN0b3I8L3NlcnZsZXQtbmFtZT4KKyAgICA8dXJsLXBhdHRlcm4+L1NlcnZsZXRSZWRpcmVjdG9yPC91cmwtcGF0dGVybj4KKyAgPC9zZXJ2bGV0LW1hcHBpbmc+CisKKyAgPCEtLSBUaGUgVXN1YWwgV2VsY29tZSBGaWxlIExpc3QgLS0+CisgIDx3ZWxjb21lLWZpbGUtbGlzdD4KKyAgICA8d2VsY29tZS1maWxlPmluZGV4LmpzcDwvd2VsY29tZS1maWxlPgorICA8L3dlbGNvbWUtZmlsZS1saXN0PgorCisgIDwhLS0gU3RydXRzIFRhZyBMaWJyYXJ5IERlc2NyaXB0b3JzIC0tPgorICA8dGFnbGliPgorICAgIDx0YWdsaWItdXJpPi9XRUItSU5GL3N0cnV0cy1iZWFuPC90YWdsaWItdXJpPgorICAgIDx0YWdsaWItbG9jYXRpb24+L1dFQi1JTkYvc3RydXRzLWJlYW4udGxkPC90YWdsaWItbG9jYXRpb24+CisgIDwvdGFnbGliPgorCisgIDx0YWdsaWI+CisgICAgPHRhZ2xpYi11cmk+L1dFQi1JTkYvc3RydXRzLWh0bWw8L3RhZ2xpYi11cmk+CisgICAgPHRhZ2xpYi1sb2NhdGlvbj4vV0VCLUlORi9zdHJ1dHMtaHRtbC50bGQ8L3RhZ2xpYi1sb2NhdGlvbj4KKyAgPC90YWdsaWI+CisKKyAgPHRhZ2xpYj4KKyAgICA8dGFnbGliLXVyaT4vV0VCLUlORi9zdHJ1dHMtbG9naWM8L3RhZ2xpYi11cmk+CisgICAgPHRhZ2xpYi1sb2NhdGlvbj4vV0VCLUlORi9zdHJ1dHMtbG9naWMudGxkPC90YWdsaWItbG9jYXRpb24+CisgIDwvdGFnbGliPgorCis8L3dlYi1hcHA+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9yc3MvUGFyc2VSc3MuamF2YSBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3Jzcy9QYXJzZVJzcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkYzJhM2UKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9yc3MvUGFyc2VSc3MuamF2YQpAQCAtMCwwICsxLDkzIEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAKKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5zY2FmZm9sZC5yc3M7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIucnNzLlJTU0RpZ2VzdGVyOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5yc3MuQ2hhbm5lbDsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQubGFuZy5Ub2tlbnM7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3I7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9yczsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uU2VydmxldDsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnNjYWZmb2xkLkJhc2VBY3Rpb247CisKKworLyoqCisgKiBSZWFkIGFuZCBwYXJzZSBSU1MgZmlsZSBmb3VuZCBhdCBhIGdpdmVuCisgKiBwYXRoLCBzYXZlIHRoZSBDaGFubmVsIGJlYW4gaW4gcmVxdWVzdCBzY29wZSwKKyAqIGFuZCBmb3J3YXJkIHRvICJzdWNjZXNzIi4KKyAqCisgKiBAYXV0aG9yIFRlZCBIdXN0ZWQKKyAqIEB2ZXJzaW9uICRSZXYkICREYXRlJAorICovCitwdWJsaWMgZmluYWwgY2xhc3MgUGFyc2VSc3MgZXh0ZW5kcyBCYXNlQWN0aW9uIHsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJbnN0YW5jZXMgVmFyaWFibGVzCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBNZXRob2RzCisKKyAgICAvKioKKyAgICAgKiBSZXF1ZXN0IGF0dHJpYnV0ZSBrZXkgZm9yIHNhdmluZyBDaGFubmVsIGJlYW4gWyJDSEFOTkVMIl0uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0hBTk5FTF9LRVkgPSAiQ0hBTk5FTCI7CisKKworICAgIC8qKgorICAgICAqIFJlYWQgYW5kIHBhcnNlIFJTUyBmaWxlIGZvdW5kIGF0IGEgZ2l2ZW4KKyAgICAgKiBwYXRoLCBzYXZlIHRoZSBDaGFubmVsIGJlYW4gaW4gcmVxdWVzdCBzY29wZSwKKyAgICAgKiBhbmQgZm9yd2FyZCB0byAic3VjY2VzcyIuCisgICAgICoKKyAgICAgKiBAZXhwZWN0cyBwYXRoPXt1cml9IG9uIGNvbW1hbmQgbGluZSBvciBhcyBwYXJhbWV0ZXIgcHJvcGVydHkgdG8gQWN0aW9uTWFwcGluZy4KKyAgICAgKiBAZXhwZWN0cyBhbiBpbnB1dCBwYWdlIG9yIGVycm9yIGZvcndhcmRpbmcgaWYgZXhjZXB0aW9uIGRpZ2VzdGluZyBSU1MKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGFjdGlvbkZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgcmVzb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKiBAcGFyYW0gZXJyb3JzIE91ciBBY3Rpb25FcnJvcnMgY29sbGVjdGlvbgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGV4ZWN1dGVMb2dpYygKKyAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkKKyAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgQ2hhbm5lbCBjaGFubmVsID0gbnVsbDsKKworICAgICAgICBTdHJpbmcgcGF0aCA9IHJlcXVlc3QuZ2V0UGFyYW1ldGVyKFRva2Vucy5QQVRIKTsKKyAgICAgICAgaWYgKHBhdGg9PW51bGwpIHBhdGggPSBtYXBwaW5nLmdldFBhcmFtZXRlcigpOworCisgICAgICAgIFJTU0RpZ2VzdGVyIGRpZ2VzdGVyID0gbmV3IFJTU0RpZ2VzdGVyKCk7CisgICAgICAgIGNoYW5uZWwgPSAoQ2hhbm5lbCkgZGlnZXN0ZXIucGFyc2UocGF0aCk7CisKKyAgICAgICAgcmVxdWVzdC5zZXRBdHRyaWJ1dGUoQ0hBTk5FTF9LRVksY2hhbm5lbCk7CisKKyAgIH0gLy8gZW5kIGV4ZWN1dGVMb2dpYygpCisKK30gLy8gZW5kIFBhcnNlUnNzCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9yc3MvUmVuZGVyUnNzLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9yc3MvUmVuZGVyUnNzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ5NTFhNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3Jzcy9SZW5kZXJSc3MuamF2YQpAQCAtMCwwICsxLDE0MSBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDE5OTktMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgCisgCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnNjYWZmb2xkLnJzczsKKworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEuc3FsLlNRTEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb247CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5yc3MuQ2hhbm5lbDsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIucnNzLkl0ZW07CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQubGFuZy5Ub2tlbnM7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLnV0aWwuUmVzdWx0TGlzdDsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0OworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQuQmFzZUFjdGlvbjsKKworCisvKioKKyAqIENvbnZlcnQgcmVzdWx0IGJlYW4gdG8gY2hhbm5lbCBhbmQgcmVuZGVyIGFzIHJlc3BvbnNlLgorICoKKyAqIEBhdXRob3IgVGVkIEh1c3RlZAorICogQHZlcnNpb24gJFJldiQgJERhdGUkCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBSZW5kZXJSc3MgZXh0ZW5kcyBCYXNlQWN0aW9uIHsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJbnN0YW5jZSBWYXJpYWJsZXMKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBNZXRob2RzCisKKworICAgIC8qKgorICAgICAoKiAvLyA6RklYTUU6IEhhc24ndCBiZWVuIHRlc3RlZC4KKyAgICAgKiBSZXRyaWV2ZXMgYSBEaWdlc3RlciBDaGFubmVsIGJlYW4gZnJvbSByZXF1ZXN0IGNvbnRleHQgYW5kCisgICAgICogcmVuZGVycyBpdC4KKyAgICAgKiA8cD4KKyAgICAgKiBDaGFubmVsIGJlYW4gbXVzdCBiZSBzdG9yZWQgdW5kZXIgdGhlIGF0dHJpYnV0ZQorICAgICAqIFBhcnNlUnNzLkNIQU5ORUxfS0VZIG9yIHVuZGVyIGFuIGF0dHJpYnV0ZSBnaXZlbiBhcyB0aGUKKyAgICAgKiBwYXJhbWV0ZXIgcHJvcGVydHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0CisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgcmVzb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKiBAZml4bWUgVXNlIEFjdGlvbkZvcndhcmRzIGZvciBsaW5rcyBpbnN0ZWFkIG9mIHByb3BlcnRpZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBleGVjdXRlTG9naWMoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgICAgIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIEFjdGlvbkVycm9ycyBlcnJvcnMgPSBuZXcgQWN0aW9uRXJyb3JzKCk7CisgICAgICAgIENoYW5uZWwgY2hhbm5lbCA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNoYW5uZWwgPSAoQ2hhbm5lbCkKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmdldEF0dHJpYnV0ZShQYXJzZVJzcy5DSEFOTkVMX0tFWSk7CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICBjaGFubmVsID0gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChudWxsPT1jaGFubmVsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGNoYW5uZWwgPSAoQ2hhbm5lbCkKKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5nZXRBdHRyaWJ1dGUobWFwcGluZy5nZXRQYXJhbWV0ZXIoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgICAgICBjaGFubmVsID0gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChudWxsPT1jaGFubmVsKSB7CisgICAgICAgICAgICBlcnJvcnMuYWRkKEFjdGlvbkVycm9ycy5HTE9CQUxfRVJST1IsCisgICAgICAgICAgICAgICAgbmV3IEFjdGlvbkVycm9yKFRva2Vucy5QUk9DRVNTX01JU1NJTkdfUEFSQU1FVEVSKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZXJyb3JzLmVtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRDb250ZW50VHlwZShUb2tlbnMuVEVYVF9QTEFJTik7CisgICAgICAgICAgICAgICAgY2hhbm5lbC5yZW5kZXIocmVzcG9uc2UuZ2V0V3JpdGVyKCkpOworICAgICAgICB9CisKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyB3aWxsIHRyaWdnZXIgZmluZEZhaWx1cmUoKSBpbiB0aGUgQmFzZUFjdGlvbgorICAgICAgICAgICAgc2F2ZUVycm9ycyhyZXF1ZXN0LGVycm9ycyk7CisgICAgICAgIH0KKworICAgIH0gLy8gZW5kIGV4ZWN1dGVMb2dpYygpCisKKworICAgICAvKioKKyAgICAgICogUmV0dXJuIG51bGwgdG8gdGhlIGNvbnRyb2xsZXIsIGluZGljYXRpbmcgdGhhdCB0aGUKKyAgICAgICogcmVzcG9uc2UgaGFzIGJlZW4gcmVuZGVyZWQuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgICogQHBhcmFtIGFjdGlvbkZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpCisgICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgICogQHBhcmFtIGVycm9ycyBPdXIgQWN0aW9uRXJyb3JzIGNvbGxlY3Rpb24KKyAgICAgICovCisgICAgIHByb3RlY3RlZCBBY3Rpb25Gb3J3YXJkIGZpbmRTdWNjZXNzKAorICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKSB7CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICB9IC8vIGVuZCBmaW5kU3VjZXNzKCkKKworfSAvLyBlbmQgUmVuZGVyUnNzCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvU1RBVFVTLnR4dCBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9TVEFUVVMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3ZTJkMWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvU1RBVFVTLnR4dApAQCAtMCwwICsxLDEwNSBAQAorCitbU0NBRkZPTERdCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorW09yZGVyaW5nIGlzIExJRk8uIExhc3QgdGhpbmcgZG9uZSBmb3IgYSBkYXkgaXMgdGhlIGZpcnN0IGl0ZW0gbGlzdGVkLl0KKworCisqKiogV0FSTklORyAtIFBBQ0tBR0UgSVMgVU5ERVJHT0lORyBBTiBVUERBVEUgQU5EICpJUyBOT1QgU1RBQkxFKi4gKioqCisKKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGSVhNRQorCitCYXNlQWN0aW9uIC0gIU1VU1QhIHByb3ZpZGUgZXF1aXZhbGVudCBvZgorQWN0aW9uRm9ybUJlYW4gZm9ybUJlYW4gPSBzZXJ2bGV0LmZpbmRGb3JtQmVhbihoZWxwZXJOYW1lKTsKK0JpekZvcm1JbXBsZSAtIERpdHRvLgorCitSZW1vdmVBdHRyaWJ1dGVBY3Rpb24gLSBOZWVkcyB0byBiZSB0ZXN0ZWQuCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVE9ETworCistIEJpekFjdGlvbiAtIFJlc29sdmUgbWVzc2FnZSBoYW5kbGluZyB3aXRoIGxhdGVzdCBDb21tb25zIFJlc291cmNlcworLSBCaXpGb3JtKysgLSBVcGRhdGUgZm9yIGxhdGVzdCByZWxlYXNlcworCistIFByb2Nlc3NEaXNwYXRjaEFjdGlvbjogUmVmYWN0b3Igd2l0aCBQcm9jZXNzQWN0aW9uIHNvIHRoZXJlIGlzIG5vdCAKK3NvIG11Y2ggZHVwbGljYXRlIGNvZGUgaGVyZQorLSBCYXNlRm9ybTogQ2hhbmdlIGZyb20gQmVhblV0aWwucG9wdWxhdGUgdG8gY29weVByb3BlcnRpZXMKKy0gRXhpc3RzQXR0cmlidXRlQWN0aW9uOiBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgYXR0cmlidXRlcworLSBQcm9jZXNzRm9ybUFjdGlvbjogQ2hhbmdlIGZyb20gQmVhblV0aWwucG9wdWxhdGUgdG8gY29weVByb3BlcnRpZXMKKy0gUmVtb3ZlQXR0cmlidXRlQWN0aW9uOiBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgYXR0cmlidXRlcworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ0hBTkdFUworCitbMjAwNC0xMi0yOF0KKysgQmFzZUFjdGlvbjogRXh0ZW5kIGZyb20gRHluYVZhbGlkYXRvckZvcm0KKysgKjogUmVtb3ZlIG9ic29sZXRlIGxvZ2dpbmcgc3RhdGVtZW50cworKyAqOiBNb3ZlIHRvIEdsb2JhbC4qIGNvbnN0YW50cworKyBCZWdhbiB1cGRhdGluZyBjb2RlIGZvciBsYXRlc3QgcmVsZWFzZXMuCisrIFVwZGF0ZWQgYnVpbGQgZm9yIGxhdGVzdCByZWxlYXNlcy4KKworWzIwMDItMTEtMTFdCisrIEJhc2VBY3Rpb246IEV4dGVuZCBmcm9tIFZhbGlkYXRvckZvcm0gYWdhaW4uCisrIFBhcmFtZXRlckFjdGlvbjogQW1lbmQgSmF2YURvY3MuCisKK1syMDAyLTEwLTI5XQorKyBQcm9jZXNzRGlzcGF0Y2hBY3Rpb246IFJlc29sdmUgcHJvYmxlbSBpbiBTY3JvbGxlci9TY3JvbGxCZWFuQmFzZTsgCitoZWxwZXIgbWV0aG9kcyBuZWVkZWQgdG8gYmUgbmFtZWQgVU5saWtlIHByb3BlcnRpZXMgdG8ga2VlcCBmcm9tIAorY29uZnVzaW5nIEJlYW5VdGlscy4KKysgUHJvY2Vzc0Rpc3BhdGNoQWN0aW9uOiBDaGFuZ2UgdG8gYnlwYXNzIFByb2Nlc3NGb3JtQWN0aW9uLiBOb3cgd29ya3MuIAorKyBQcm9jZXNzRGlzcGF0Y2hBY3Rpb246IE5vdyBjYXVzaW5nIGEgcmVmbGVjdGlvbiBlcnJvciB3aGVuIHVzZWQuIAorCisKKzI0LU9DVC0yMDAyCistLS0tLS0tLS0tLQorKyBQYXJhbWV0ZXJBY3Rpb246IEZpeCB0byBvYnNlcnZlciByZWRpcmVjdCBvbiB0ZW1wbGF0ZSBmcm93YXJkLgorCiswOS1PQ1QtMjAwMgorLS0tLS0tLS0tLS0KKysgQWRkIEJhc2VBY3Rpb25NYXBwaW5nCisKKzA3LU9DVC0yMDAyCistLS0tLS0tLS0tLQorKyBBZGQgUmVjcmVhdGVTZXNzaW9uQWN0aW9uLgorKyBBZGQgSW1hZ2VCZWFuQnV0dG9uCisKKzE5LVNFUC0yMDAyCistLS0tLS0tLS0tLQorKyBSZW1vdmVBdHRyaWJ1dGVBY3Rpb246IENvcnJlY3Qgb3BlcmF0aW9uLgorCisKKzExLVNFUC0yMDAyCistLS0tLS0tLS0tLQorKyBSZXBsYWNlIGNhbGxzIHRvIEJlYW5VdGlscy5wb3B1bGF0ZSB3aXRoIGNvcHlQcm9wZXJ0aWVzCisrIE1pZ3JhdGUgdG8gbGF0ZXN0IGNvbW1vbnMuYmVhbnV0aWwuQmVhblV0aWxzCisKKworMDYtU0VQLTIwMDIKKy0tLS0tLS0tLS0tCisrIEFjdGlvbkZvcm06IEFkZCByZW1vdGVBZGRyIHByb3BlcnR5IChhdXRvbWF0aWMpLiBBZGQgdmFsaWRhdGUgCittZXRob2QgdGhhdCB3aWxsIG5vdCByZXR1cm4gbnVsbC4gCisKKworMjEtQVVHLTIwMDIKKy0tLS0tLS0tLS0tCisrIHJlc291cmNlcy5wcm9wZXJ0aWVzOiBBZGQgcHJvY2VzcyBjb21wbGV0ZSBtZXNzYWdlLgorKyBQcm9jZXNzRGlzcGF0Y2hBY3Rpb246IENoYW5nZSB0byBleHRlbmQgUHJvY2Vzc0Zvcm1BY3Rpb24KKworCisyMC1BVUctMjAwMgorLS0tLS0tLS0tLS0KKysgUHJvY2Vzc0FjdGlvbjogVXBkYXRlIHRvIHVzZSBMSVNUX0tFWQorKyBQcm9jZXNzRm9ybUFjdGlvbjogRXhwYW5kZWQgSmF2YURvY3MKKworCisxOS1BVUctMjAwMgorLS0tLS0tLS0tLS0KKysgUmVzb3VyY2VzLnByb3BlcnRpZXM6IENvbmZvcm0gd2l0aCBsYXRlc3QgVG9rZW4gY2xhc3MuCisrIFByb2Nlc3NEaXNwYXRjaEFjdGlvbjogSW1wcm92ZSBleGNlcHRpb24gaGFuZGxpbmcuCisrIEJhc2VBY3Rpb246IFVwZGF0ZSB0byBiZXR0ZXIgaGFuZGxlIGV4Y2VwdGlvbnMgd2l0aCBudWxsIG1lc3NhZ2UuCisKKworMTQtQVVHLTIwMDIKKy0tLS0tLS0tLS0tCisrIEluaXRpYWwgdXBsb2FkIG9mIG5ldyB2ZXJzaW9uIHRvIFN0cnV0cyBDb250cmliLiAKKworCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9CYXNlQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9CYXNlQWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjE3ZmUzNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0Jhc2VBY3Rpb24uamF2YQpAQCAtMCwwICsxLDkxOSBAQAorLyoKKy8vIE1VU1QhIDpGSVhNRTogTmVlZCB0byBwcm92aWRlIGVxdWl2YWxlbnQgb2YKKy8vIEFjdGlvbkZvcm1CZWFuIGZvcm1CZWFuID0gc2VydmxldC5maW5kRm9ybUJlYW4oaGVscGVyTmFtZSk7CisqLworCisvKgorICogJElkJAorICoKKyAqIENvcHlyaWdodCAyMDAxLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5zY2FmZm9sZDsKKworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5Qcm9wZXJ0aWVzOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLio7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzOworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLmxhbmcuQmFzZUV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQubGFuZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLmxhbmcuVG9rZW5zOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5zY2FmZm9sZC50ZXh0LkNvbnZlcnRVdGlsczsKKworCisvKioKKyAqIEVuaGFuY2VkIGJhc2UgQWN0aW9uLgorICogU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgPGNvZGU+ZXhlY3V0ZTwvY29kZT4gbWV0aG9kIGZvcgorICogb3BlcmF0aW9uYWwgZGV0YWlscy4KKyAqIEEgPGNvZGU+cGVyZm9ybTwvY29kZT4gbWV0aG9kIGlzIGFsc28gcHJvdmlkZWQgZm9yIGJhY2t3YXJkcworICogY29tcGF0aWJpbGl0eSB3aXRoIDFfMC4KKyAqIDpUT0RPOiBSZW1vdmUgZGVwcmVjYXRpb25zIGFmdGVyIGZvcm1hbCAxLjAgU2NhZmZvZCByZWxlYXNlLgorICoKKyAqIEB2ZXJzaW9uICRSZXYkICREYXRlJAorICovCitwdWJsaWMgY2xhc3MgQmFzZUFjdGlvbiBleHRlbmRzIEFjdGlvbiB7CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBVVElJVElFUworCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gd2hldGhlciBTdHJ1dHMgMS4wIGNvbXBhdGliaWxpdHkgc2hvdWxkIGJlIHVzZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRydWUgaWYgYnVpbHQgZm9yIFN0cnV0cyAxLjAueCwgZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCBhZnRlciBTdHJ1dHMgMS4xIGZpbmFsIHNoaXBzLgorICAgICAqLworICAgIHByaXZhdGUgZmluYWwgYm9vbGVhbiBpc1N0cnV0c18xXzAoKSB7CisgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gU3RydXRzIDEuMSsKKyAgICB9CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTG9nCisKKyAgICAvKioKKyAgICAgKiBJcyBsb2dnaW5nIHNldCB0aGlzIGxldmVsIG9yIGhpZ2hlcj8KKyAgICAgKgorICAgICAqIEBwYXJhbSBsZXZlbCBUaGUgZGVidWcgbGV2ZWwgdG8gdGVzdAorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIGlzTG9nTGV2ZWwoaW50IGxldmVsKSB7CisgICAgICAgIC8vIEZJWE1FOiByZXR1cm4gc2VydmxldC5nZXREZWJ1ZygpPj1sZXZlbCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIElzIGxvZ2dpbmcgc2V0IHRvIGRlYnVnZ2luZz8KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0RlYnVnKCkgeworICAgICAgICAvLyBGSVhNRTogcmV0dXJuIChzZXJ2bGV0LmdldERlYnVnKCk+PUxvZy5ERUJVRyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIElzIGxvZ2dpbmcgc2V0IHRvIHZlcmJvc2U/CisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNWZXJib3NlKCkgeworICAgICAgICAvLyBGSVhNRTogcmV0dXJuIChzZXJ2bGV0LmdldERlYnVnKCk+PUxvZy5WRVJCT1NFKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEV4Y2VwdGlvbgorCisKKyAgICAvKioKKyAgICAgKiBTZXQgZXhjZXB0aW9uIHRvIHJlcXVlc3QgdW5kZXIgcHVibGljIGtleSBbQWN0aW9uLkVYQ0VQVElPTl0uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIGUgVGhlIG5ldyBFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRFeGNlcHRpb24oCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEV4Y2VwdGlvbiBlKSB7CisgICAgICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKEdsb2JhbHMuRVhDRVBUSU9OX0tFWSxlKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJldHVybiBleGNlcHRpb24gc3RvcmVkIGluIHJlcXVlc3QgdW5kZXIgcHVibGljIGtleSBbQWN0aW9uLkVYQ0VQVElPTl0uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIEV4Y2VwdGlvbiBnZXRFeGNlcHRpb24oSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QpIHsKKyAgICAgICAgcmV0dXJuIChFeGNlcHRpb24pIHJlcXVlc3QuZ2V0QXR0cmlidXRlKEdsb2JhbHMuRVhDRVBUSU9OX0tFWSk7CisgICAgfQorCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gTG9jYWxlCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZyYW1ld29yayBsb2NhbGUgb2JqZWN0IGZvciB0aGUgdXNlciBzZXNzaW9uCisgICAgICogZm9yIGdpdmVuIHJlcXVlc3QuCisgICAgICogSWYgbm8gc2Vzc2lvbiBpcyBzZXQsIG9yIGlmIHRoZSBzZXNzaW9uIGhhcyBubyBsb2NhbGUKKyAgICAgKiBzZXQsIHRoZSBkZWZhdWx0IGxvY2FsZSBpcyByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgKiBhdXRob3IgIEZyYW7nb2lzIFJleSAoRlJFWSAtIGZyYW5jb2lzLnJleUBjYXBjby5jb20pCisgICAgICogYXV0aG9yICBFcmljIEJhcmlhdXggKEVCUlggLSBlcmljLmJhcmlhdXhAY2FwY28uY29tKQorICAgICAqLworICAgIHByb3RlY3RlZCBMb2NhbGUgZ2V0TG9jYWxlKEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0KSB7CisKKyAgICAgICAgTG9jYWxlIHJlc3VsdCA9IG51bGw7CisgICAgICAgIEh0dHBTZXNzaW9uIHNlc3Npb24gPSByZXF1ZXN0LmdldFNlc3Npb24oKTsKKyAgICAgICAgaWYgKHNlc3Npb24hPW51bGwpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IChMb2NhbGUpIHNlc3Npb24uZ2V0QXR0cmlidXRlKEdsb2JhbHMuTE9DQUxFX0tFWSk7CisgICAgICAgICAgICBpZiAocmVzdWx0ID09IG51bGwpIHJlc3VsdCA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgIH0gLy8gZW5kIGdldExvY2FsZSgpCisKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZnJhbWV3b3JrIGxvY2FsZSBvYmplY3QgaW4gdGhlIHNlc3Npb24gZm9yIHRoaXMgcmVxdWVzdC4KKyAgICAgKiBJZiBhIHNlc3Npb24gY29udGV4dCBkb2VzIG5vdCBleGlzdCwgb25lIGlzIGNyZWF0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIHRvIHVzZSBmb3IgdGhpcyBzZXNzaW9uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0TG9jYWxlKAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBMb2NhbGUgbG9jYWxlKSB7CisKKyAgICAgICAgSHR0cFNlc3Npb24gc2Vzc2lvbiA9IHJlcXVlc3QuZ2V0U2Vzc2lvbih0cnVlKTsKKyAgICAgICAgc2Vzc2lvbi5zZXRBdHRyaWJ1dGUoR2xvYmFscy5MT0NBTEVfS0VZLGxvY2FsZSk7CisKKyAgICB9IC8vIGVuZCBzZXRMb2NhbGUoKQorCisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFJlbW90ZSBOb2RlCisKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIFJlbW90ZUhvc3QgSVAgYXMgYW4gSW50ZWdlci4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgSW50ZWdlciBnZXRSZW1vdGVOb2RlKEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0KSB7CisgICAgICAgIHJldHVybiBuZXcgSW50ZWdlcigwKTsgLy8gOkZJWE1FOiBOb24gZnVuY3Rpb25hbAorICAgIH0KKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVtb3RlIFNlcnZlcgorCisgICAgLyoqCisgICAgICogRGVmYXVsdCBuYW1lIGZvciBhIHJlbW90ZSBzZXJ2ZXIgdGhhdCBtYXkgYmUgZm91bmQKKyAgICAgKiBpbiBhcHBsaWNhdGlvbiBzY29wZSBbIlJFTU9URV9TRVJWRVIiXS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBSRU1PVEVfU0VSVkVSX0tFWSA9ICJSRU1PVEVfU0VSVkVSIjsKKworCisgICAgLyoqCisgICAgICogUmV0dXJucyBuYW1lIG9mIHJlc3VsdCBzZXJ2ZXIgdG8gYmUgdXNlZCBieSB0aGlzIEFjdGlvbiwKKyAgICAgKiBlLmcsIFJFU1VMVF9TRVJWRVJfS0VZLgorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgZ2V0UmVtb3RlU2VydmVyTmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIFJFTU9URV9TRVJWRVJfS0VZOworICAgIH0KKworCisgICAgLyoqCisgICAgICogQ2hlY2tzIGFwcGxpY2F0aW9uIHNjb3BlIGZvciB0aGUgcmVtb3RlIHNlcnZlciBvYmplY3QKKyAgICAgKiBzcGVjaWZpZWQgYnkgPGNvZGU+Z2V0UmVtb3RlU2VydmVyTmFtZTwvY29kZT4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgT2JqZWN0IGdldFJlbW90ZVNlcnZlcigpIHsKK3JldHVybiBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkuZ2V0QXR0cmlidXRlKGdldFJlbW90ZVNlcnZlck5hbWUoKSk7CisgICAgfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNZXNzYWdlcworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBhcHBsaWNhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGlzIHdlYiBhcHBsaWNhdGlvbiwKKyAgICAgKiBpZiBhbnkuCisgICAgICovCisgICAgcHJvdGVjdGVkIFByb3BlcnRpZXMgZ2V0UHJvcGVydGllcygpIHsKKyAgICAgICAgcmV0dXJuIChQcm9wZXJ0aWVzKSBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkuZ2V0QXR0cmlidXRlKAorICAgICAgICAgICAgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLmxhbmcuVG9rZW5zLlBST1BFUlRJRVNfS0VZKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIE51bWJlciBvZiByZXBsYWNlbWVudCBwYXJhbWV0ZXJzIHBlcm1pdHRlZCBpbiBTdHJ1dHMgMS4wLgorICAgICAqIFNlZSBhbHNvIHNhdmVDb25maXJtLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGludCBDT05GSVJNX01BWCA9IDU7IC8vIChNZXNzYWdlIEtleSwgcGx1cyAxLi40KQorCisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgYSBiYXNlIG1lc3NhZ2VzIGFuZCB1cCB0byBmb3VyIHJlcGxhY2VhYmxlCisgICAgICogcGFyYW1ldGVycyBmcm9tIGEgTGlzdCwgYW5kIGFkZHMgdGhlbSB0byBhbiBBY3Rpb25FcnJvcnMKKyAgICAgKiBjb2xsZWN0aW9uLgorICAgICAqCisgICAgICogLy8gOkZJWE1FOiBUaGlzIHNob3VsZCBiZSB1cGRhdGVkIHRvIHVzZSB0aGUKKyAgICAgKiBuZXcgQWN0aW9uTWVzc2FnZXMgc3VwZXJjbGFzcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSByZXF1ZXN0IHdlIGFyZSBzZXJ2aWNpbmcKKyAgICAgKiBAcGFyYW0gYWxlcnRzIE91ciBBY3Rpb25FcnJvcnMgY29sbGVjdGlvbgorICAgICAqIEBwYXJhbSBsaXN0IG91ciBsaXN0IG9mIHJlcGxhY2VhYmxlIHBhcmFtZXRlcnMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBtZXJnZUFsZXJ0cygKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgQWN0aW9uRXJyb3JzIGFsZXJ0cywKKyAgICAgICAgICAgIExpc3QgbGlzdCkgeworCisgICAgICAgIGlmICgobnVsbCE9bGlzdCkgJiYgKDAhPWxpc3Quc2l6ZSgpKSkgeworCisgICAgICAgICAgICBpbnQgc2l6ZSA9IGxpc3Quc2l6ZSgpOworICAgICAgICAgICAgICAgIC8vIFN0cnV0cyAxLjAgYWxsb3dzIHVwIHRvIDQgcGFyYW1ldGVycywgMS4uNAorICAgICAgICAgICAgaWYgKHNpemUgPiBDT05GSVJNX01BWCkgc2l6ZSA9IENPTkZJUk1fTUFYOworICAgICAgICAgICAgT2JqZWN0W10gY29uZmlybSA9IG5ldyBPYmplY3Rbc2l6ZV07CisKKyAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxzaXplOyBpKyspIHsKKyAgICAgICAgICAgICAgICBjb25maXJtW2ldID0gbGlzdC5nZXQoaSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN3aXRjaCAoc2l6ZSkgeworICAgICAgICAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgICAgICAgICBhbGVydHMuYWRkKEFjdGlvbkVycm9ycy5HTE9CQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQWN0aW9uRXJyb3IoKFN0cmluZykgY29uZmlybVswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maXJtWzFdLGNvbmZpcm1bMl0sY29uZmlybVszXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maXJtWzRdKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgICAgICAgICBhbGVydHMuYWRkKEFjdGlvbkVycm9ycy5HTE9CQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQWN0aW9uRXJyb3IoKFN0cmluZykgY29uZmlybVswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maXJtWzFdLGNvbmZpcm1bMl0sY29uZmlybVszXSkpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAgICAgICAgYWxlcnRzLmFkZChBY3Rpb25FcnJvcnMuR0xPQkFMX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEFjdGlvbkVycm9yKChTdHJpbmcpIGNvbmZpcm1bMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlybVsxXSxjb25maXJtWzJdKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICBhbGVydHMuYWRkKEFjdGlvbkVycm9ycy5HTE9CQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQWN0aW9uRXJyb3IoKFN0cmluZykgY29uZmlybVswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maXJtWzFdKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAgICBhbGVydHMuYWRkKEFjdGlvbkVycm9ycy5HTE9CQUxfRVJST1IsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQWN0aW9uRXJyb3IoKFN0cmluZykgY29uZmlybVswXSkpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKworICAgIH0gLy8gZW5kIG1lcmdlQWxlcnRzKCkKKworCisgICAgLyoqCisgICAgICogQ2hlY2sgZm9yIHBlbmRpbmcgbWVzc2FnZSBjb2xsZWN0aW9uLgorICAgICAqIElmIGl0IGRvZXNuJ3QgZXhpc3QsIGFuZCBjcmVhdGUgaXMgdHJ1ZSwgYSBuZXcgY29sbGVjdGlvbiBpcworICAgICAqIHJldHVybmVkLgorICAgICAqCisgICAgICogOkZJWE1FOiBUaGlzIHNob3VsZCBiZSB0aGUgQWN0aW9uTWVzc2FnZSBzdXBlcmNsYXNzCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSBjcmVhdGUgV2hldGhlciB0byBjcmVhdGUgYSBuZXcgY29sbGVjdGlvbiBpZiBvbmUgZG9lcworICAgICAqIG5vdCBleGlzdAorICAgICAqIEByZXR1cm4gVGhlIHBlbmRpbmcgQWN0aW9uRXJyb3IgcXVldWUKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQWN0aW9uRXJyb3JzIGdldE1lc3NhZ2VzKAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBib29sZWFuIGNyZWF0ZSkgeworCisgICAgICAgIGZpbmFsIFN0cmluZworICAgICAgICAgICAgTUVTU0FHRV9LRVkgPSBHbG9iYWxzLk1FU1NBR0VfS0VZOworCisgICAgICAgIEFjdGlvbkVycm9ycyBhbGVydHMgPSAoQWN0aW9uRXJyb3JzKQorICAgICAgICAgICAgcmVxdWVzdC5nZXRBdHRyaWJ1dGUoTUVTU0FHRV9LRVkpOworCisgICAgICAgIGlmICgobnVsbD09YWxlcnRzKSAmJiAoY3JlYXRlKSkgeworICAgICAgICAgICAgYWxlcnRzID0gbmV3IEFjdGlvbkVycm9ycygpOworICAgICAgICAgICAgICAgIC8vIEJ5cGFzcyBBY3Rpb24uU2F2ZU1lc3NhZ2UoKSBzaW5jZSBpdAorICAgICAgICAgICAgICAgIC8vIHdvbid0IGFjY2VwdCBhIGJsYW5rIGNvbGxlY3Rpb24KKyAgICAgICAgICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKE1FU1NBR0VfS0VZLGFsZXJ0cyk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYWxlcnRzOworCisgICAgfSAvLyBlbmQgZ2V0TWVzc2FnZXMoKQorCisKKyAgICAvKioKKyAgICAgKiBNZXJnZSBpbmNvbWluZyBtZXNzYWdlcyBhbmQgc2F2ZSB0byBtZXNzYWdlcworICAgICAqIGNvbGxlY3Rpb24uIFRoZSBjb2xsZWN0aW9uIGlzIGF1dG9tYXRpY2FsbHkgc2F2ZWQgdG8gdGhlIHJlcXVlc3QsCisgICAgICogc28gPGNvZGU+QWN0aW9uLnNhdmVFcnJvcnMocmVxdWVzdCxlcnJvcnMpPC9jb2RlPiBkb2VzIG5vdCBuZWVkCisgICAgICogdG8gYmUgY2FsbGVkLiBJZiB0aGlzIG1ldGhvZCBjYWxsZWQgbW9yZSB0aGFuIG9uY2UsIHRoZSBuZXcKKyAgICAgKiBtZXNzYWdlcyBhcmUgYXBwZW5kZWQuCisgICAgICogPHA+CisgICAgICogVGhpcyBtZXRob2QgaXMgdXB3YXJkbHkgY29tcGF0YWJpbGUgd2l0aCBTdHJ1dHMgMS4xIGFuZCB1c2VzIHRoZQorICAgICAqIG1lc3NhZ2VzIHF1ZXVlIGludHJvZHVjZWQgd2l0aCB0aGF0IHJlbGVhc2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIGxpc3QgVGhlIFJlc291cmNlQnVuZGxlIHRva2VuIGZvbGxvd2VkIGJ5IDAgb3IgbW9yZQorICAgICAqIHBhcmFtZXRlcnMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBzYXZlTWVzc2FnZXMoCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIExpc3QgbGlzdCkgeworCisgICAgICAgIEFjdGlvbkVycm9ycyBhbGVydHMgPSBnZXRNZXNzYWdlcyhyZXF1ZXN0LHRydWUpOworICAgICAgICBtZXJnZUFsZXJ0cyhyZXF1ZXN0LGFsZXJ0cyxsaXN0KTsKKworICAgIH0gLy8gZW5kIHNhdmVNZXNzYWdlcygpCisKKworICAgIC8qKgorICAgICAqIFJldHVybiB3aGV0aGVyIHRoZXJlIGlzIGFuIGluZm9ybWF0aW9uYWwgYWxlcnQgY29sbGVjdGlvbiBwZW5kaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEByZXR1cm4gVHJ1ZSBpZiBhbiBpbmZvcm1hdGlvbmFsIGFsZXJ0IGNvbGxlY3Rpb24gZXhpc3RzCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNNZXNzYWdlcyhIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCkgeworICAgICAgICByZXR1cm4gKG51bGwhPWdldE1lc3NhZ2VzKHJlcXVlc3QsZmFsc2UpKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIE1lcmdlIGluY29taW5nIG1lc3NhZ2VzIGFuZCBzYXZlIHRvIGVycm9ycworICAgICAqIGNvbGxlY3Rpb24uIFRoZSBjb2xsZWN0aW9uIGlzIGF1dG9tYXRpY2FsbHkgc2F2ZWQgdG8gdGhlIHJlcXVlc3QsCisgICAgICogc28gPGNvZGU+QWN0aW9uLnNhdmVFcnJvcnMocmVxdWVzdCxlcnJvcnMpPC9jb2RlPiBkb2VzIG5vdCBuZWVkCisgICAgICogdG8gYmUgY2FsbGVkLiBJZiB0aGlzIG1ldGhvZCBjYWxsZWQgbW9yZSB0aGFuIG9uY2UsIHRoZSBuZXcKKyAgICAgKiBtZXNzYWdlcyBhcmUgYXBwZW5kZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIGxpc3QgVGhlIFJlc291cmNlQnVuZGxlIHRva2VuIGZvbGxvd2VkIGJ5IDAgb3IgbW9yZQorICAgICAqIHBhcmFtZXRlcnMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBzYXZlRXJyb3JzKAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBMaXN0IGxpc3QpIHsKKworICAgICAgICBBY3Rpb25FcnJvcnMgYWxlcnRzID0gZ2V0RXJyb3JzKHJlcXVlc3QsdHJ1ZSk7CisgICAgICAgIG1lcmdlQWxlcnRzKHJlcXVlc3QsYWxlcnRzLGxpc3QpOworCisgICAgfSAvLyBlbmQgc2F2ZUVycm9ycworCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gd2hldGhlciB0aGVyZSBpcyBhbiBlcnJvcnMgYWxlcnQgY29sbGVjdGlvbiBwZW5kaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEByZXR1cm4gVHJ1ZSBpZiBhbiBlcnJvcnMgYWxlcnQgY29sbGVjdGlvbiBleGlzdHMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQWN0aW9uRXJyb3JzIGdldEVycm9ycygKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgYm9vbGVhbiBjcmVhdGUpIHsKKworICAgICAgICBBY3Rpb25FcnJvcnMgYWxlcnRzID0gKEFjdGlvbkVycm9ycykKKyAgICAgICAgICAgIHJlcXVlc3QuZ2V0QXR0cmlidXRlKEdsb2JhbHMuRVJST1JfS0VZKTsKKworICAgICAgICBpZiAoKG51bGw9PWFsZXJ0cykgJiYgKGNyZWF0ZSkpIHsKKworICAgICAgICAgICAgYWxlcnRzID0gbmV3IEFjdGlvbkVycm9ycygpOworICAgICAgICAgICAgICAgIC8vIEJ5cGFzcyBBY3Rpb24uU2F2ZUVycm9yKCkgc2luY2UgaXQKKyAgICAgICAgICAgICAgICAvLyB3b24ndCBhY2NlcHQgYSBibGFuayBjb2xsZWN0aW9uCisgICAgICAgICAgICByZXF1ZXN0LnNldEF0dHJpYnV0ZShHbG9iYWxzLkVSUk9SX0tFWSxhbGVydHMpOworCisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYWxlcnRzOworCisgICAgfSAvLyBlbmQgZ2V0RXJyb3JzKCkKKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHdoZXRoZXIgdGhlcmUgaXMgYW4gZXJyb3JzIGFsZXJ0IGNvbGxlY3Rpb24gcGVuZGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgKiBAcmV0dXJuIFRydWUgaWYgYW4gZXJyb3JzIGFsZXJ0IGNvbGxlY3Rpb24gZXhpc3RzCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNFcnJvcnMoSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QpIHsKKyAgICAgICAgcmV0dXJuIChudWxsIT1nZXRFcnJvcnMocmVxdWVzdCxmYWxzZSkpOworICAgIH0KKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSGVscGVycworCisgICAgLyoqCisgICAgICogRGVmYXVsdCBzZXBhcmF0b3IgY2hhcmFjdGVyIGZvciBsaXN0IG9mIHRva2VucyBbIjsiXSAoc2VtaS1jb2xvbikuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVE9LRU5fU0VQID0gIjsiOworCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gc2VwYXJhdG9yIGNoYXJhY3RlciBmb3IgbGlzdCBvZiB0b2tlbnMKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRva2VuU2VwKCkgeworICAgICAgICByZXR1cm4gVE9LRU5fU0VQOworICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0dXJuIGFycmF5IG9mIHRva2VucywKKyAgICAgKiB1c2luZyB0aGUgcmVzdWx0IG9mIDxjb2RlPmdldFRva2VTZXAoKTwvY29kZT4gYXMgdGhlCisgICAgICogc2VwYXJhdG9yLgorICAgICAqIEJsYW5rcyBhcmUgdHJpbW1lZCBmcm9tIHRva2Vucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXJhbWV0ZXIgVGhlIHN0cmluZyB0byB0b2tlbml6ZSBpbnRvIGFuIGFycmF5CisgICAgICovCisgICAgcHVibGljIFN0cmluZ1tdIHRva2VuaXplKFN0cmluZyBwYXJhbWV0ZXIpIHsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBDb252ZXJ0VXRpbHMudG9rZW5zVG9BcnJheShwYXJhbWV0ZXIsZ2V0VG9rZW5TZXAoKSk7CisgICAgICAgICAgICAgCisvKiAgICAgICAgCisgICAgICAgIFN0cmluZ1Rva2VuaXplciB0b2tlbml6ZXIgPQorICAgICAgICAgICAgbmV3IFN0cmluZ1Rva2VuaXplcihwYXJhbWV0ZXIsZ2V0VG9rZW5TZXAoKSk7CisgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgU3RyaW5nW10gdG9rZW5zID0gbmV3IFN0cmluZ1t0b2tlbml6ZXIuY291bnRUb2tlbnMoKV07CisgICAgICAgIHdoaWxlICh0b2tlbml6ZXIuaGFzTW9yZVRva2VucygpKSB7CisgICAgICAgICAgICBTdHJpbmcgdG9rZW4gPSB0b2tlbml6ZXIubmV4dFRva2VuKCkudHJpbSgpOworICAgICAgICAgICAgaWYgKCh0b2tlbj09bnVsbCkgfHwgKHRva2VuLmxlbmd0aCgpPT0wKSkgY29udGludWU7CisgICAgICAgICAgICB0b2tlbnNbaSsrXSA9IHRva2VuOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0b2tlbnM7CisqLworICAgIH0gLy8gZW5kIHRva2VuaXplKCkKKworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIG9iamVjdCBvZiB0aGUgc3BlY2lmaWVkIGNsYXNzLAorICAgICAqIHRocm93aW5nIGEgcnVudGltZSBleGNlcHRpb24gaWYgYW55IGVycm9yIG9jY3Vycy4KKyAgICAgKiBJZiBtZXRob2Qgc3VjY2VlZHMsIHRoZW4gaGVscGVycyBhcmUgZ3VhcmFudGVlZAorICAgICAqIHRvIGV4aXN0LgorICAgICAqCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSBoZWxwZXJDbGFzcyBUaGUgbmFtZSBvZiB0aGUgY2xhc3MKKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBoZWxwZXIgY2Fubm90IGJlCisgICAgICogaW5zdGFudGlhdGVkCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjcmVhdGVIZWxwZXJPYmplY3QoCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIFN0cmluZyBoZWxwZXJDbGFzcykgeworCisgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBpZiAoaXNEZWJ1ZygpKSB7CisgICAgICAgICAgICBzYi5hcHBlbmQoTG9nLkhFTFBFUl9DUkVBVElORyk7CisgICAgICAgICAgICBzYi5hcHBlbmQoaGVscGVyQ2xhc3MpOworICAgICAgICAgICAgc2VydmxldC5sb2coc2IudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICAgICAgLy8gVHJ5IHRoZSBjcmVhdGUKKyAgICAgICAgT2JqZWN0IGhlbHBlciA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBoZWxwZXIgPSBDbGFzcy5mb3JOYW1lKGhlbHBlckNsYXNzKS5uZXdJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICBoZWxwZXIgPSBudWxsOworICAgICAgICAgICAgICAgLy8gYXNzZW1ibGUgbWVzc2FnZToge2NsYXNzfToge2V4Y2VwdGlvbn0KKyAgICAgICAgICAgc2Iuc2V0TGVuZ3RoKDApOworICAgICAgICAgICBzYi5hcHBlbmQoTG9nLkNSRUFURV9PQkpFQ1RfRVJST1IpOworICAgICAgICAgICBzYi5hcHBlbmQoTG9nLkNMQVNTKTsKKyAgICAgICAgICAgc2IuYXBwZW5kKGhlbHBlckNsYXNzKTsKKyAgICAgICAgICAgc2IuYXBwZW5kKExvZy5TUEFDRSk7CisgICAgICAgICAgIHNiLmFwcGVuZChMb2cuQUNUSU9OX0VYQ0VQVElPTik7CisgICAgICAgICAgIHNiLmFwcGVuZCh0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIC8vIHRocm93IHJ1bnRpbWUgZXhjZXB0aW9uCisgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oc2IudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXNEZWJ1ZygpKSB7CisgICAgICAgICAgICBzYi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICBzYi5hcHBlbmQoTG9nLkhFTFBFUl9DUkVBVEVEKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZChMb2cuQ0xBU1MpOworICAgICAgICAgICAgc2IuYXBwZW5kKGhlbHBlckNsYXNzKTsKKyAgICAgICAgICAgIHNlcnZsZXQubG9nKHNiLnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGhlbHBlcjsKKworICAgICB9IC8vIGNyZWF0ZUhlbHBlck9iamVjdCgpCisKKworICAgIC8qKgorICAgICAqIFJldHVybiBhbiBpbnN0YW5jZSBvZiB0aGUgZm9ybS1iZWFuIGFzc29jaWF0ZWQgd2l0aCB0aGUKKyAgICAgKiBzcGVjaWZpZWQgbmFtZSwgaWYgYW55OyBvdGhlcndpc2UgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+LgorICAgICAqIE1heSBiZSB1c2VkIHRvIGNyZWF0ZSBhbiBiZWFuIHJlZ2lzdGVyZWQgdW5kZXIgYSBrbm93biBuYW1lIG9yCisgICAgICogYSBmb3JtLWJlYW4gbmFtZSBwYXNzZWQgd2l0aCB0aGUgbWFwcGluZy4KKyAgICAgKiA8cD4KKyAgICAgKiBJdCBpcyBub3QgcmVxdWlyZWQgdGhhdCB0aGUgZm9ybS1iZWFuIHNwZWNpZmllZCBoZXJlIGJlIGFuCisgICAgICogQWN0aW9uRm9ybSBzdWJjbGFzcy4gVGhpcyBhbGxvd3Mgb3RoZXIgaGVscGVyIGNsYXNzZXMgdG8gYmUKKyAgICAgKiByZWdpc3RlcmVkIGFzIGZvcm0tYmVhbnMgYW5kIHRoZW4gaW5zdGFudGlhdGVkIGJ5IHRoZSBBY3Rpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIGhlbHBlck5hbWUgbmFtZSBvZiB0aGUgZm9ybS1iZWFuIGhlbHBlcgorICAgICAqLworICAgIHByb3RlY3RlZCBPYmplY3QgY3JlYXRlSGVscGVyQmVhbigKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgU3RyaW5nIGhlbHBlck5hbWUpIHsKKworICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgaWYgKGlzRGVidWcoKSkgeworICAgICAgICAgICAgc2IuYXBwZW5kKExvZy5IRUxQRVJfQ1JFQVRJTkcpOworICAgICAgICAgICAgc2IuYXBwZW5kKExvZy5OQU1FKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZChoZWxwZXJOYW1lKTsKKyAgICAgICAgICAgIHNlcnZsZXQubG9nKHNiLnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICAgICAgT2JqZWN0IGJlYW4gPSBudWxsOworICAgICAgICAgICAgLy8gTVVTVCEgOkZJWE1FOiBOZWVkIHRvIHByb3ZpZGUgZXF1aXZhbGVudCBvZgorICAgICAgICAgICAgLy8gQWN0aW9uRm9ybUJlYW4gZm9ybUJlYW4gPSBzZXJ2bGV0LmZpbmRGb3JtQmVhbihoZWxwZXJOYW1lKTsKKyAgICAgICAgQWN0aW9uRm9ybUJlYW4gZm9ybUJlYW4gPSBudWxsOworICAgICAgICBpZiAoZm9ybUJlYW4gIT0gbnVsbCkgeworICAgICAgICAgICAgU3RyaW5nIGNsYXNzTmFtZSA9IG51bGw7CisgICAgICAgICAgICBjbGFzc05hbWUgPSBmb3JtQmVhbi5nZXRUeXBlKCk7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIENsYXNzIGNsYXp6ID0gQ2xhc3MuZm9yTmFtZShjbGFzc05hbWUpOworICAgICAgICAgICAgICAgIGJlYW4gPSBjbGF6ei5uZXdJbnN0YW5jZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgICAgICBiZWFuID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgLy8gYXNzZW1ibGUgbWVzc2FnZToge2NsYXNzfToge2V4Y2VwdGlvbn0KKyAgICAgICAgICAgICAgICBzYi5zZXRMZW5ndGgoMCk7CisgICAgICAgICAgICAgICAgc2IuYXBwZW5kKExvZy5DUkVBVEVfT0JKRUNUX0VSUk9SKTsKKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQoTG9nLk5BTUUpOworICAgICAgICAgICAgICAgIHNiLmFwcGVuZChoZWxwZXJOYW1lKTsKKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQoTG9nLlNQQUNFKTsKKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQoTG9nLkFDVElPTl9FWENFUFRJT04pOworICAgICAgICAgICAgICAgIHNiLmFwcGVuZCh0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gc2IudG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICBzZXJ2bGV0LmxvZyhtZXNzYWdlKTsKKyAgICAgICAgICAgICAgICAgICAvLyBlY2hvIGxvZyBtZXNzYWdlIGFzIGVycm9yCisgICAgICAgICAgICAgICAgQWN0aW9uRXJyb3JzIGVycm9ycyA9IGdldEVycm9ycyhyZXF1ZXN0LHRydWUpOworICAgICAgICAgICAgICAgIGVycm9ycy5hZGQoQWN0aW9uRXJyb3JzLkdMT0JBTF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAgbmV3IEFjdGlvbkVycm9yKFRva2Vucy5IRUxQRVJfQUNDRVNTX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGlzRGVidWcoKSkgeworICAgICAgICAgICAgICAgIHNiLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQoTG9nLkhFTFBFUl9DUkVBVEVEKTsKKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQoTG9nLk5BTUUpOworICAgICAgICAgICAgICAgIHNiLmFwcGVuZChoZWxwZXJOYW1lKTsKKyAgICAgICAgICAgICAgICBzZXJ2bGV0LmxvZyhzYi50b1N0cmluZygpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBOb3QgZm91bmQKKyAgICAgICAgICAgIHNiLnNldExlbmd0aCgwKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZChMb2cuQ1JFQVRFX09CSkVDVF9FUlJPUik7CisgICAgICAgICAgICBzYi5hcHBlbmQoTG9nLk5BTUUpOworICAgICAgICAgICAgc2IuYXBwZW5kKGhlbHBlck5hbWUpOworICAgICAgICAgICAgc2IuYXBwZW5kKExvZy5TUEFDRSk7CisgICAgICAgICAgICBzYi5hcHBlbmQoTG9nLk5PVF9GT1VORCk7CisgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IHNiLnRvU3RyaW5nKCk7CisgICAgICAgICAgICBzZXJ2bGV0LmxvZyhtZXNzYWdlKTsKKyAgICAgICAgICAgICAgICAvLyBlY2hvIGxvZyBtZXNzYWdlIGFzIGVycm9yCisgICAgICAgICAgICBBY3Rpb25FcnJvcnMgZXJyb3JzID0gZ2V0RXJyb3JzKHJlcXVlc3QsdHJ1ZSk7CisgICAgICAgICAgICBlcnJvcnMuYWRkKEFjdGlvbkVycm9ycy5HTE9CQUxfRVJST1IsCisgICAgICAgICAgICAgICAgbmV3IEFjdGlvbkVycm9yKFRva2Vucy5IRUxQRVJfQUNDRVNTX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gYmVhbjsKKworICAgIH0gLy8gY3JlYXRlSGVscGVyQmVhbigpCisKKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRVhURU5TSU9OIFBPSU5UUworCisKKyAgICAvKioKKyAgICAgKiBPcHRpb25hbCBleHRlbnNpb24gcG9pbnQgZm9yIHByZS1wcm9jZXNzaW5nLgorICAgICAqIERlZmF1bHQgbWV0aG9kIGRvZXMgbm90aGluZy4KKyAgICAgKiBUbyBicmFuY2ggdG8gYW5vdGhlciBVUkksIHJldHVybiBhbiBub24tbnVsbCBBY3Rpb25Gb3J3YXJkLgorICAgICAqIElmIGVycm9ycyBhcmUgbG9nZ2VkIChnZXRFcnJvcnMoKSBldCBhbCksCisgICAgICogZGVmYXVsdCBiZWhhdmlvdXIgd2lsbCBicmFuY2ggdG8gZmluZEZhaWx1cmUoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gZm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSByZXNvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHByZVByb2Nlc3MoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpIHsKKworICAgICAgICAvLyBvdmVycmlkZSB0byBwcm92aWRlIGZ1bmN0aW9uYWxpdHkKKworICAgIH0gLy8gZW5kIHByZVByb2Nlc3MoKQorCisKKyAgICAgLyoqCisgICAgICAqIFJldHVybiB0aGUgYXBwcm9wcmlhdGUgQWN0aW9uRm9yd2FyZCBmb3IgYW4KKyAgICAgICogZXJyb3IgY29uZGl0aW9uLgorICAgICAgKiBUaGUgZGVmYXVsdCBtZXRob2QgcmV0dXJucyBhIGZvcndhcmQgdG8gaW5wdXQsCisgICAgICAqIHdoZW4gdGhlcmUgaXMgb25lLCBvciAiZXJyb3IiIHdoZW4gbm90LgorICAgICAgKiBUaGUgYXBwbGljYXRpb24gbXVzdCBwcm92aWRlIGFuICJlcnJvciIgZm9yd2FyZC4KKyAgICAgICogQW4gYWR2YW5jZWQgaW1wbGVtZW50YXRpb24gY291bGQgY2hlY2sgdGhlIGVycm9ycworICAgICAgKiBhbmQgcHJvdmlkZSBkaWZmZXJlbnQgZm9yd2FyZGluZ3MgZm9yIGRpZmZlcmVudCBjaXJjdW1zdGFuY2VzLgorICAgICAgKiBPbmUgcG9zc2libGUgZXJyb3IgbWF5IGJlIHdoZXRoZXIgdGhlIGZvcm0gaXMgbnVsbC4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAgKiBAcGFyYW0gZm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QKKyAgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAgKiBAcGFyYW0gcmVzcG9uc2UgVGhlIHJlc29uc2Ugd2UgYXJlIGNyZWF0aW5nCisgICAgICAqIEByZXR1cm4gVGhlIEFjdGlvbkZvcndhcmQgcmVwcmVzZW50aW5nIEZBSUxVUkUKKyAgICAgICogb3IgbnVsbCBpZiBhIEZBSUxVUkUgZm9yd2FyZCBoYXMgbm90IGJlZW4gc3BlY2lmaWVkLgorICAgICAgKi8KKyAgICAgcHJvdGVjdGVkIEFjdGlvbkZvcndhcmQgZmluZEZhaWx1cmUoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpIHsKKworICAgICAgICAgICAgLy8gSWYgaW5wdXQgcGFnZSwgdXNlIHRoYXQKKyAgICAgICAgaWYgKG1hcHBpbmcuZ2V0SW5wdXQoKSE9bnVsbCkKKyAgICAgICAgICAgIHJldHVybiAobmV3IEFjdGlvbkZvcndhcmQobWFwcGluZy5nZXRJbnB1dCgpKSk7CisKKyAgICAgICAgICAgIC8vIElmIG5vIGlucHV0IHBhZ2UsIHVzZSBlcnJvciBmb3J3YXJkaW5nCisgICAgICAgIHJldHVybiBtYXBwaW5nLmZpbmRGb3J3YXJkKFRva2Vucy5GQUlMVVJFKTsKKworICAgIH0gLy8gZW5kIGZpbmRGYWlsdXJlKCkKKworCisgICAgLyoqCisgICAgICogRXhlY3V0ZSB0aGUgYnVzaW5lc3MgbG9naWMgZm9yIHRoaXMgQWN0aW9uLgorICAgICAqIDxwPgorICAgICAqIFRoZSBkZWZhdWx0IG1ldGhvZCBsb2dzIHRoZSBleGVjdXRlTG9naWMoKSAiZXZlbnQiCisgICAgICogd2hlbiB0aGUgbG9nZ2luZyBsZXZlbCBpcyBzZXQgdG8gREVCVUcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0CisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgcmVzb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBleGVjdXRlTG9naWMoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgICAgIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgICAgICAvLyBvdmVycmlkZSB0byBwcm92aWRlIGZ1bmN0aW9uYWxpdHksIGxpa2UKKyAgICAgICAgICAgIC8vIG15QnVzaW5lc3NPYmplY3QuZXhlY3V0ZShmb3JtKTsKKworICAgIH0gLy8gZW5kIGV4ZWN1dGVMb2dpYygpCisKKworICAgIC8qKgorICAgICAqIFRva2VuIHRvIHByaW50IGJlZm9yZSBzaG9ydCBkZXNjcmlwdGlvbgorICAgICAqIG9mIGFuIGV4Y2VwdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1IgPSAiIEVSUk9SOiAiOworCisgICAgLyoqCisgICAgICogVG9rZW4gdG8gcHJpbnQgYmV0d2VlbiBzaG9ydCBhbmQgbG9uZyBkZXNjcmlwdGlvbgorICAgICAqIG9mIGFuIGV4Y2VwdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVUQUlMUyA9ICIgREVUQUlMUzogIjsKKworCisgICAgLyoqCisgICAgICogUHJvY2VzcyB0aGUgZXhjZXB0aW9uIGhhbmRsaW5nIGZvciB0aGlzIEFjdGlvbi4KKyAgICAgKgorICAgICAqIElmIEV4Y2VwdGlvbiBpcyBzdWJjbGFzcyBvZiBCYXNlRXhjZXB0aW9uLCB3aWxsCisgICAgICogcmVwb3J0IG9uIGV2ZXJ5dGhpbmcgaW4gY2hhaW4uCisgICAgICoKKyAgICAgKiBEZWZhdWx0IGJlaGF2aW91ciBzaG91bGQgc3VmZmljZSBmb3IgbW9zdCBjaXJjdW1zdGFuY2VzLgorICAgICAqIElmIG92ZXJyaWRkZW4sIGlmIGFuIGFsZXJ0IGlzIGxvZ2dlZCB0byB0aGUgZXJyb3JzCisgICAgICogcXVldWUgKGdldEVycm9ycygpKSwgdGhlbiBkZWZhdWx0IGJlaGF2aW91ciB3aWxsIGJyYW5jaAorICAgICAqIHRvIGZpbmRGYWlsdXJlKCkuCisgICAgICogOlRPRE86IFVzZSBhIFN0cmluZ0J1ZmZlck9VVFBVVFN0cmVhbSB0byBjYXB0dXJlIHRyYWNlIGZvciBlcnJvciBxdWV1ZQorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSBmb3JtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdAorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgKiBAcGFyYW0gcmVzcG9uc2UgVGhlIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGNhdGNoRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkgeworCisKKyAgICAgICAgICAgIC8vIFJldHJpZXZlLCBsb2cgYW5kIHByaW50IHRvIGVycm9yIGNvbnNvbGUKKyAgICAgICAgRXhjZXB0aW9uIGV4Y2VwdGlvbiA9IGdldEV4Y2VwdGlvbihyZXF1ZXN0KTsKKyAgICAgICAgc2VydmxldC5sb2coTG9nLkFDVElPTl9FWENFUFRJT04sIGV4Y2VwdGlvbik7CisgICAgICAgIGV4Y2VwdGlvbi5wcmludFN0YWNrVHJhY2UoKTsKKworICAgICAgICAgICAgLy8gR2VuZXJhbCBlcnJvciBtZXNzYWdlCisgICAgICAgIEFjdGlvbkVycm9ycyBlcnJvcnMgPSBnZXRFcnJvcnMocmVxdWVzdCx0cnVlKTsKKyAgICAgICAgZXJyb3JzLmFkZChBY3Rpb25FcnJvcnMuR0xPQkFMX0VSUk9SLAorICAgICAgICAgICAgbmV3IEFjdGlvbkVycm9yKFRva2Vucy5FUlJPUl9HRU5FUkFMKSk7CisKKyAgICAgICAgICAgIC8vIFdyYXAgZXhjZXB0aW9uIG1lc3NhZ2VzIGluIEFjdGlvbkVycm9yCisgICAgICAgICAgICAvLyBJZiBjaGFpbmVkLCBkZXNjZW5kIGRvd24gY2hhaW4KKyAgICAgICAgICAgIC8vIGFwcGVuZGluZyBtZXNzYWdlcyB0byBTdHJpbmdCdWZmZXIKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICBpZiAoZXhjZXB0aW9uIGluc3RhbmNlb2YgQmFzZUV4Y2VwdGlvbikgeworICAgICAgICAgICBCYXNlRXhjZXB0aW9uIGUgPSAoQmFzZUV4Y2VwdGlvbikgZXhjZXB0aW9uOworICAgICAgICAgICBlLmdldE1lc3NhZ2Uoc2IpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgc2IuYXBwZW5kKENvbnZlcnRVdGlscy5MSU5FX0ZFRUQpOworICAgICAgICAgICAgc2IuYXBwZW5kKEVSUk9SKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZChleGNlcHRpb24udG9TdHJpbmcoKSk7CisgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IGV4Y2VwdGlvbi5nZXRNZXNzYWdlKCk7CisgICAgICAgICAgICBpZiAobnVsbCE9bWVzc2FnZSkgeworICAgICAgICAgICAgICAgIHNiLmFwcGVuZChDb252ZXJ0VXRpbHMuTElORV9GRUVEKTsKKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQoREVUQUlMUyk7CisgICAgICAgICAgICAgICAgc2IuYXBwZW5kKG1lc3NhZ2UpOworICAgICAgICAgICAgICAgIHNiLmFwcGVuZChDb252ZXJ0VXRpbHMuTElORV9GRUVEKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIDpUT0RPOiBVc2UgYSBTdHJpbmdCdWZmZXJPVVRQVVRTdHJlYW0gdG8gY2FwdHVyZSB0cmFjZQorICAgICAgICB9CisKKyAgICAgICAgZXJyb3JzLmFkZChBY3Rpb25FcnJvcnMuR0xPQkFMX0VSUk9SLAorICAgICAgICAgICAgbmV3IEFjdGlvbkVycm9yKFRva2Vucy5FUlJPUl9ERVRBSUwsc2IudG9TdHJpbmcoKSkpOworCisgICAgfSAvLyBlbmQgY2F0Y2hFeGNlcHRpb24oKQorCisKKyAgICAvKioKKyAgICAgKiBPcHRpb25hbCBleHRlbnNpb24gcG9pbnQgZm9yIHBvc3QtcHJvY2Vzc2luZy4KKyAgICAgKiBEZWZhdWx0IG1ldGhvZCBkb2VzIG5vdGhpbmcuCisgICAgICogVGhpcyBpcyBjYWxsZWQgZnJvbSBhIGZpbmFsbHl7fSBjbGF1c2UsCisgICAgICogYW5kIHNvIGlzIGd1YXJhbnRlZWQgdG8gYmUgY2FsbGVkIGFmdGVyIGV4ZWN1dGVMb2dpYygpIG9yCisgICAgICogY2F0Y2hFeGNlcHRpb24oKS4KKyAgICAgKiBVc2UgZ2V0RXhjZXB0aW9uKCkgdG8gY2hlY2sgaWYgZXJyb3Igb2NjdXJlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gZm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSByZXNvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHBvc3RQcm9jZXNzKAorICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKSB7CisKKyAgICAgICAgLy8gb3ZlcnJpZGUgdG8gcHJvdmlkZSBmdW5jdGlvbmFsaXR5CisKKyAgICB9IC8vIGVuZCBwb3N0UHJvY2VzcygpCisKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYXBwcm9wcmlhdGUgQWN0aW9uRm9yd2FyZCBmb3IgdGhlIG5vbWluYWwsCisgICAgICogbm9uLWVycm9yIHN0YXRlLgorICAgICAqIFRoZSBkZWZhdWx0IHJldHVybnMgbWFwcGluZy5maW5kRm9yd2FyZCgiY29udGludWUiKTsKKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gZm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKiBAcmV0dXJuIFRoZSBBY3Rpb25Gb3J3YXJkIHJlcHJlc2VudGluZyBTVUNDRVNTCisgICAgICogb3IgbnVsbCBpZiBhIFNVQ0NFU1MgZm9yd2FyZCBoYXMgbm90IGJlZW4gc3BlY2lmaWVkLgorICAgICAqLworICAgIHByb3RlY3RlZCBBY3Rpb25Gb3J3YXJkIGZpbmRTdWNjZXNzKAorICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKSB7CisKKyAgICAgICAgcmV0dXJuIG1hcHBpbmcuZmluZEZvcndhcmQoVG9rZW5zLlNVQ0NFU1MpOworCisgICAgfSAvLyBlbmQgZmluZFN1Y2Nlc3MoKQorCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBTkNFU1RPUiBNRVRIT0RTCisKKworICAgIC8qKgorICAgICAqIFdyYXBwZXIgYXJvdW5kIG9yaWdpbmFsIDxjb2RlPnBlcmZvcm0oKTwvY29kZT4gbWV0aG9kCisgICAgICogdG8gY2FsbCBub3ctcHJlZmVycmVkIDxjb2RlPmV4ZWN1dGUoKTwvY29kZT4gbWV0aG9kLAorICAgICAqIFRoaXMgcHJvdmlkZXMgZm9yd2FyZCBjb21wYXRpYmlsaXR5IGZvciBTdHJ1dHMgMS4wLnggYQorICAgICAqIGFwcGxpY2F0aW9ucy4KKyAgICAgKiBBIDEuMC54IGFwcGxpY2F0aW9uIHdpbGwgY2FsbCB0aGlzIG1ldGhvZCwgd2hpY2ggd2lsbCByZXR1cm4gdGhlCisgICAgICogb3V0Y29tZSBvZiB0aGUgPGNvZGU+ZXhlY3V0ZSgpPC9jb2RlPiBtZXRob2QuCisgICAgICogQSAxLjErIGFwcGxpY2F0aW9uIHdpbGwgaWdub3JlIHRoaXMgd3JhcHBlciBtZXRob2QsIGFuZCBjYWxsCisgICAgICogPGNvZGU+ZXhlY3V0ZSgpPC9jb2RlPiBkaXJlY3RseS4KKyAgICAgKiBHb29kIHByYWN0aWNlIHNheXMgdGhhdCB0aGUgPGNvZGU+ZXhlY3V0ZSgpPC9jb2RlPiBtZXRob2QKKyAgICAgKiBzaG91bGQgY29wZSB3aXRoIGFueSBleGNlcHRpb25zIGFuZCBmb3J3YXJkIHRvIHRoZSBhcHByb3ByaWF0ZQorICAgICAqIGVycm9yIHBhZ2UuCisgICAgICogQnV0IGlmIGFueSB3ZXJlIHRvIHNsaXAgdGhyb3VnaCwgdGhleSBhcmUgd3JhcHBlZCBhcworICAgICAqIDxjb2RlPlNlcnZldEV4Y2VwdGlvbnM8L2NvZGU+IGFuZCByZXRocm93bi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gZm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VycworICAgICAqIEBleGNlcHRpb24gU2VydmxldEV4Y2VwdGlvbiBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIG9jY3VycworICAgICAqLworICAgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkIHBlcmZvcm0oCisgICAgICAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkKKyAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uLCBTZXJ2bGV0RXhjZXB0aW9uIHsKKworICAgICAgICB0cnkgeworCisgICAgICAgICAgICByZXR1cm4gZXhlY3V0ZSgKKyAgICAgICAgICAgICAgICBtYXBwaW5nLAorICAgICAgICAgICAgICAgIGZvcm0sCisgICAgICAgICAgICAgICAgcmVxdWVzdCwKKyAgICAgICAgICAgICAgICByZXNwb25zZQorICAgICAgICAgICAgKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IFNlcnZsZXRFeGNlcHRpb24oZSk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFNrZWxldG9uIG1ldGhvZCB0aGF0IGNhbGxzIHRoZSBvdGhlciBleHRlbnNpb24gcG9pbnRzCisgICAgICogKG9yICJob3RzcG90cyIpIHByb3ZpZGVkIGJ5IHRoaXMgY2xhc3MuIFRoZXNlIGFyZToKKyAgICAgKiA8dWw+CisgICAgICogPGxpPjxjb2RlPnByZVByb2Nlc3MoKSw8L2NvZGU+PC9saT4KKyAgICAgKiA8bGk+PGNvZGU+ZXhlY3V0ZUxvZ2ljKCksPC9jb2RlPjwvbGk+CisgICAgICogPGxpPjxjb2RlPmNhdGNoRXhjZXB0aW9uKCksPC9jb2RlPjwvbGk+CisgICAgICogPGxpPjxjb2RlPnBvc3RQcm9jZXNzKCksPC9jb2RlPjwvbGk+CisgICAgICogPGxpPjxjb2RlPmZpbmRGYWlsdXJlKCksPC9jb2RlPjwvbGk+CisgICAgICogPGxpPjxjb2RlPmZpbmRTdWNjZXNzKCk8L2NvZGU+PC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqIFR5cGljYWxseSwgeW91IGNhbiBqdXN0IG92ZXJyaWRlIHRoZSBvdGhlciBleHRlbnNpb24gcG9pbnRzCisgICAgICogYXMgbmVlZGVkLCBhbmQgbGVhdmUgdGhpcyBvbmUgYXMgaXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0CisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKyAgICAgKiBAZXhjZXB0aW9uIFNlcnZsZXRFeGNlcHRpb24gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnMKKyAgICAgKi8KKyAgICBwdWJsaWMgQWN0aW9uRm9yd2FyZCBleGVjdXRlKAorICAgICAgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpIHRocm93cyBFeGNlcHRpb24geworCisKKyAgICAgICAgICAgIC8vIENoZWNrIGZvciBwcmVjb25kaXRpb24gZXJyb3JzOyBmYWlsIGlmIGZvdW5kCisgICAgICAgIHByZVByb2Nlc3MobWFwcGluZyxmb3JtLHJlcXVlc3QscmVzcG9uc2UpOworCisgICAgICAgIGlmIChpc0Vycm9ycyhyZXF1ZXN0KSkgeworICAgICAgICAgICAgcmV0dXJuIGZpbmRGYWlsdXJlKG1hcHBpbmcsZm9ybSxyZXF1ZXN0LHJlc3BvbnNlKTsKKyAgICAgICAgfQorCisgICAgICAgICAgICAvLyBUcnkgdGhlIGxvZ2ljOyBDYWxsIGNhdGNoRXhjZXB0aW9uKCkgaWYgbmVlZGVkCisgICAgICAgIHRyeSB7CisKKyAgICAgICAgICAgIGV4ZWN1dGVMb2dpYyhtYXBwaW5nLGZvcm0scmVxdWVzdCxyZXNwb25zZSk7CisgICAgICAgIH0KKworICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAvLyBTdG9yZSBFeGNlcHRpb247IGNhbGwgZXh0ZW5zaW9uIHBvaW50CisgICAgICAgICAgICBzZXRFeGNlcHRpb24ocmVxdWVzdCxlKTsKKyAgICAgICAgICAgIGNhdGNoRXhjZXB0aW9uKG1hcHBpbmcsZm9ybSxyZXF1ZXN0LHJlc3BvbnNlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmFsbHkgeworICAgICAgICAgICAgcG9zdFByb2Nlc3MobWFwcGluZyxmb3JtLHJlcXVlc3QscmVzcG9uc2UpOworICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIElmIGVycm9ycyBxdWV1ZWQsIGZhaWwKKyAgICAgICAgaWYgKGlzRXJyb3JzKHJlcXVlc3QpKSB7CisgICAgICAgICAgICByZXR1cm4gZmluZEZhaWx1cmUobWFwcGluZyxmb3JtLHJlcXVlc3QscmVzcG9uc2UpOworICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgY2hlY2sgZm9yIG1lc3NhZ2VzIGFuZCBzdWNjZWVkIChvbmx5IDFfMCkKKyAgICAgICAgaWYgKChpc1N0cnV0c18xXzAoKSkgJiYgKGlzTWVzc2FnZXMocmVxdWVzdCkpKSB7CisgICAgICAgICAgICBzYXZlRXJyb3JzKHJlcXVlc3QsZ2V0TWVzc2FnZXMocmVxdWVzdCxmYWxzZSkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZpbmRTdWNjZXNzKG1hcHBpbmcsZm9ybSxyZXF1ZXN0LHJlc3BvbnNlKTsKKworICAgIH0gLy8gZW5kIGV4ZWN1dGUoKQorCit9IC8vIGVuZCBCYXNlQWN0aW9uClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvQmFzZUFjdGlvbk1hcHBpbmcuamF2YSBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0Jhc2VBY3Rpb25NYXBwaW5nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFkNTkyNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0Jhc2VBY3Rpb25NYXBwaW5nLmphdmEKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDIwMDEtMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQ7CisKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5SZXF1ZXN0QWN0aW9uTWFwcGluZzsKKworLyoqCisgKiBFbmhhbmNlZCBiYXNlIEFjdGlvbk1hcHBpbmcuCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGNsYXNzIEJhc2VBY3Rpb25NYXBwaW5nIGV4dGVuZHMgUmVxdWVzdEFjdGlvbk1hcHBpbmcgeworCisgICAgLyoqCisgICAgICogRm9yd2FyZCBjb21wYXRhYmlsdHkgd2l0aCBTdHJ1dHMgMS4xLgorICAgICAqIENvbW1lbnQgb3IgcmVtb3ZlIHRoaXMgZmllbGQgZm9yIFN0dXRzIDEuMQorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gY29uZmlndXJlZCA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogTWVzc2FnZSBpZiB0aGV5IHRyeSB0byBzZXQgYSBmcm96ZW4gY29uZmlndXJhdGlvbiBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgRlJPWkVOX01FU1NBR0UgPSAiQ29uZmlndXJhdGlvbiBpcyBmcm96ZW4iOworCisgICAgLyoqCisgICAgICogQWRkcyBzdWJtaXRQYXRoIHRvIFJlcXVlc3RBY3Rpb25NYXBwaW5nLgorICAgICAqCisgICAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiB1c2luZyBvbmUgbWFwcGluZyB0byBhY3F1aXJlIGEKKyAgICAgKiBibGFuayBvciBwcmVwb3B1bGF0ZWQgZm9ybSwgYW5kIHRoZW4gc3VibWl0dGluZyB0aGF0CisgICAgICogZm9ybSB0byBhbm90aGVyIG1hcHBpbmcgdG8gY29tcGxldGUgdGhlIGluc2VydCBvciB1cGRhdGUuCisgICAgICoKKyAgICAgKiBJdCBpcyBhbHNvIHVzZWZ1bCB3aGVuIHJldXNpbmcgdGhlIHNhbWUgYmFzZSBmb3JtCisgICAgICogb3IgcmVzdWx0IGxpc3QgaW4gZGlmZmVyZW50IHdvcmtmbG93cy4KKyAgICAgKiBFYWNoIG1hcHBpbmcgY2FuIGluZGljYXRlIHdoZXJlIHRvIHJldHVybiwKKyAgICAgKiBmb3IgaXRzIG93biB3b3JrZmxvdy4KKyAgICAgKgorICAgICAqIFRoZSBjdXJyZW50IG1hcHBpbmcgaXMgc3RvcmVkIGluIHRoZSByZXF1ZXN0IHVuZGVyCisgICAgICogdGhlIEdsb2JhbHMuTUFQUElOR19LRVkgKG9yIHRoZSBlcXVpdmFsZW50IFN0cnV0cyAxLjAKKyAgICAgKiBBY3Rpb24uTUFQUElOR19LRVkpLgorICAgICAqCisgICAgICogWW91IGNhbiBhY2Nlc3MgdGhpcyBwcm9wZXJ0eSwgb3IgYW55IG1hcHBpbmcgcHJvcGVydHksCisgICAgICogdXNpbmcgPGJlYW46ZGVmaW5lPiwgb3IgdGhlIGVxdWl2YWxlbnQsIGFuZCB0aGVuIHVzaW5nCisgICAgICogYSBSdW50aW1lIEV4cHJlc3Npb24gdG8gdXNlIHRoZSBwcm9wZXJ0eSB3aXRoIHRoZQorICAgICAqIDxjb2RlPmFjdGlvbjwvY29kZT4gcHJvcGVydHkgb2YgdGhlIGh0bWw6Zm9ybSB0YWcuCisgICAgICoKKyAgICAgKiBUbyBtb2RpZnkgcnVudGltZSBiZWhhdmlvciBkZXBlbmRpbmcgb24gd2hldGhlciByZXR1cm5QYXRoCisgICAgICogaGFzIGJlZW4gc2V0LCB1c2UgdGhlIDxsb2dpYzpwcmVzZW50PiB0YWcgdG8gZWl0aGVyCisgICAgICogdXNlIHRoZSByZXR1cm5QYXRoIG9yIHNvbWUgYWx0ZXJuYXRlIHByb3BlcnR5LgorICAgICAqCisgICAgICogVG8gdXNlIG1vcmUgdGhhbiBvbmUtdGltZSBwcm9wZXJ0eSBpbiBhIHJlc3BvbnNlLAorICAgICAqIHBhc3MgYSBoZWxwZXIgYmVhbiBmcm9tIHRoZSBhY3Rpb24gaW5zdGVhZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHN1Ym1pdFBhdGggPSBudWxsOworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3VibWl0UGF0aCgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuc3VibWl0UGF0aDsKKyAgICB9CisgICAgcHVibGljIHZvaWQgc2V0U3VibWl0UGF0aChTdHJpbmcgc3VibWl0UGF0aCkgeworICAgICAgICBpZiAoY29uZmlndXJlZCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbihGUk9aRU5fTUVTU0FHRSk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5zdWJtaXRQYXRoID0gc3VibWl0UGF0aDsKKyAgICB9CisKKworfSAvLyBlbmQgQmFzZUFjdGlvbk1hcHBpbmcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9CYXNlRm9ybS5qYXZhIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvQmFzZUZvcm0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2M0NTZkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvQmFzZUZvcm0uamF2YQpAQCAtMCwwICsxLDUyNSBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDIwMDEtMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnNjYWZmb2xkOworCisKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb247CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkJlYW5VdGlsczsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLlByb3BlcnR5VXRpbHM7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnZhbGlkYXRvci5EeW5hVmFsaWRhdG9yRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5HbG9iYWxzOworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLmxhbmcuQ2hhaW5lZEV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQubGFuZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLmxhbmcuVG9rZW5zOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5zY2FmZm9sZC50ZXh0LkNvbnZlcnRVdGlsczsKKworCisvKioKKyAqIEVuaGFuY2VkIGJhc2UgQWN0aW9uRm9ybS4KKyAqIEB2ZXJzaW9uICRSZXYkICREYXRlJAorICovCitwdWJsaWMgY2xhc3MgQmFzZUZvcm0gZXh0ZW5kcyBEeW5hVmFsaWRhdG9yRm9ybSB7CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZW1vdGUgSG9zdAorIAorICAgIC8qKgorICAgICAqIFRoZSBuZXR3b3JrIGFkZHJlc3MgbWFraW5nIHRoaXMgcmVxdWVzdC4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIGlzIHRoZSB2YWx1ZSByZXR1cm5lZCBieSByZXFlc3QuZ2V0cmVtb3RlSG9zdC4KKyAgICAgKiBJdCBpcyBwcm92aWRlZCBzbyB0aGF0IHRoaXMgY2FuIGJlIGxvZ2dlZCBieSBjb21wb25lbnRzIG9uCisgICAgICogdGhlIGJ1c2luZXNzIHRpZXIgaWYgbmVlZGVkLgorICAgICAqIFRoaXMgcHJvcGVydHkgaXMgbWFpbnRhaW5lZCBhdXRvbWF0aWNhbGx5IHRocm91Z2ggdGhlCisgICAgICogPGNvZGU+cmVzZXQ8L2NvZGU+IG1ldGhvZC4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyByZW1vdGVIb3N0ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFJldHVybiBvdXIgcmVtb3RlSG9zdCBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFJlbW90ZUhvc3QoKSB7CisgICAgICAgIHJldHVybiAodGhpcy5yZW1vdGVIb3N0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgb3VyIHJlbW90ZUhvc3QgcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UmVtb3RlSG9zdChTdHJpbmcgcmVtb3RlSG9zdCkgeworICAgICAgICB0aGlzLnJlbW90ZUhvc3QgPSByZW1vdGVIb3N0OworICAgIH0KKworCisgICAgIC8qKgorICAgICAgKiBTZXRzIFJlbW90ZUhvc3QgYXR0cmlidXRlIHRvIHJlcXVlc3QuZ2V0UmVtb3RlSG9zdCgpLgorICAgICAgKi8KKyAgICAgcHJvdGVjdGVkIHZvaWQgcmVzZXRSZW1vdGVIb3N0KEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0KSB7CisgICAgICAgICBzZXRSZW1vdGVIb3N0KHJlcXVlc3QuZ2V0UmVtb3RlSG9zdCgpKTsKKyAgICAgfQorIAorIAorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTZXNzaW9uIExvY2FsZQorCisgICAgLyoqCisgICAgICogVGhlIHNlc3Npb24gYXR0cmlidXRlIGtleSBmb3Igb3VyIHNlc3Npb24gbG9jYWxlIFtBY3Rpb24uTE9DQUxFX0tFWV0uCisgICAgICogKFN1Z2dlc3Rpb24gb25seSwgbWF5IGJlIG92ZXJyaWRkZW4gYnkgcHJlc2VudGF0aW9uIGZyYW1ld29yaworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIFNUUlVUU19MT0NBTEVfS0VZID0gR2xvYmFscy5MT0NBTEVfS0VZOworCisKKyAgICAvKioKKyAgICAgKiBPdXIgbG9jYWxlIHByb3BlcnR5LgorICAgICAqIDxwPgorICAgICAqIElmIHRoZSBmb3JtQmVhbiBpbnN0YW5jZSBpcyBtdXRhYmxlLCB0aGlzIGlzIHNldCB0byB0aGUgU3RydXRzCisgICAgICogc2Vzc2lvbiBsb2NhbGUgd2hlbmV2ZXIgPGNvZGU+cmVzZXQoKTwvY29kZT4gaXMgY2FsbGVkLiB0byB1cGRhdGUKKyAgICAgKiB0aGUgc2Vzc2lvbiBsb2NhbGUsIHVzZSA8Y29kZT5wdXRTZXNzaW9uTG9jYWxlKCk8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIFRoZSBwcm9wZXJ0aWVzIHJlZmVyIHRvIHRoaXMgYXMgdGhlICJTZXNzaW9uTG9jYWxlIiBzbyBhcyB0byBhdm9pZAorICAgICAqIG5hbWluZy9zaWduYXR1cmUgY29uZmxpY3RzIHdpdGggYnVzaW5lc3MgYmVhbnMgd2hpY2ggbWF5IGFsc28KKyAgICAgKiBtYWludGFpbiBhIExvY2FsZSBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwcml2YXRlIExvY2FsZSBsb2NhbGUgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiBTZXQgb3VyIGxvY2FsZSBwcm9wZXJ0eS4KKyAgICAgKgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNlc3Npb25Mb2NhbGUoTG9jYWxlIGxvY2FsZSkgeworICAgICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIG91ciBsb2NhbGUgcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIExvY2FsZSBnZXRTZXNzaW9uTG9jYWxlKCkgeworICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGU7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNlc3Npb24ga2V5IGF0dHJpYnV0ZSBmb3Igb3VyIGxvY2FsZSBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRTZXNzaW9uTG9jYWxlTmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIFNUUlVUU19MT0NBTEVfS0VZOworICAgIH0KKworCisgICAgLyoqCisgICAgICogUmVzZXQgb3VyIGxvY2FsZSBwcm9wZXJ0eSB0byB0aGUgbG9jYWxlIG9iamVjdCBmb3VuZCBpbgorICAgICAqIHRoZSBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3QuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgcmVzZXRTZXNzaW9uTG9jYWxlKEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0KSB7CisKKyAgICAgICAgSHR0cFNlc3Npb24gc2Vzc2lvbiA9IHJlcXVlc3QuZ2V0U2Vzc2lvbigpOworICAgICAgICBpZiAoc2Vzc2lvbiE9bnVsbCkgeworCisgICAgICAgICAgICBzZXRTZXNzaW9uTG9jYWxlKChMb2NhbGUpCisgICAgICAgICAgICAgICAgc2Vzc2lvbi5nZXRBdHRyaWJ1dGUoZ2V0U2Vzc2lvbkxvY2FsZU5hbWUoKSkpOworCisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgIHNldFNlc3Npb25Mb2NhbGUoTG9jYWxlLmdldERlZmF1bHQoKSk7CisgICAgICAgIH0KKworICAgIH0gLy8gZW5kIHJlc2V0U2Vzc2lvbkxvY2FsZQorCisKKyAgICAvKioKKyAgICAgKiBDaGFuZ2UgdGhlIGxvY2FsZSBwcm9wZXJ0eSBpbiB0aGUgc2Vzc2lvbiB0byBvdXIgbG9jYWxlIG9iamVjdCwKKyAgICAgKiBvciB0aGUgZGVmYXVsdCBMb2NhbGUgaWYgb3VycyBpcyBudWxsLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHB1dFNlc3Npb25Mb2NhbGUoSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QpIHsKKworICAgICAgICBMb2NhbGUgbG9jYWxlID0gZ2V0U2Vzc2lvbkxvY2FsZSgpOworICAgICAgICBpZiAobnVsbD09bG9jYWxlKSBsb2NhbGUgPSBMb2NhbGUuZ2V0RGVmYXVsdCgpOworCisgICAgICAgIHJlcXVlc3QuZ2V0U2Vzc2lvbih0cnVlKS5zZXRBdHRyaWJ1dGUoR2xvYmFscy5MT0NBTEVfS0VZLGxvY2FsZSk7CisKKyAgICB9IC8vIGVuZCBwdXRTZXNzaW9uTG9jYWxlCisKKworICAgIC8qKgorICAgICAqIERpc3BsYXkgdGhlIHVzZXIncyBsb2NhbGUgc2V0dGluZyBvciB0aGUgZGVmYXVsdCBsb2NhbGUuCisgICAgICovCisgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TG9jYWxlRGlzcGxheSgpIHsKKworICAgICAgICAgTG9jYWxlIGxvY2FsZSA9IGdldFNlc3Npb25Mb2NhbGUoKTsKKyAgICAgICAgIGlmIChudWxsPT1sb2NhbGUpIGxvY2FsZSA9IExvY2FsZS5nZXREZWZhdWx0KCk7CisgICAgICAgICByZXR1cm4gbG9jYWxlLmdldERpc3BsYXlOYW1lKCk7CisKKyAgICAgfSAvLyBlbmQgZ2V0TG9jYWxlRGlzcGxheQorCisKKyAgICAvKioKKyAgICAgKiBTZXQgb3VyIGxvY2FsZSB0byBnaXZlbiBJU08gTGFuZ3VhZ2UgQ29kZS4KKyAgICAgKiBBbiBlbXB0eSBTdHJpbmcgaXMgdXNlZCBmb3IgdGhlIGNvdW50cnkuCisgICAgICogPHA+CisgICAgICogTWFpbmx5IHByb3ZpZGVkIGZvciBjb21wbGV0ZW5lc3MuCisgICAgICovCisgICAgIHB1YmxpYyB2b2lkIHNldExvY2FsZURpc3BsYXkoU3RyaW5nIGxhbmd1YWdlKSB7CisgICAgICAgICBzZXRTZXNzaW9uTG9jYWxlKG5ldyBMb2NhbGUobGFuZ3VhZ2UsRU1QVFkpKTsKKyAgICAgfQorCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE11dGFibGUKKworICAgIC8qKgorICAgICAqIFRoZSBtdXRhYmxlIHN0YXRlLgorICAgICAqIDxwPgorICAgICAqIFRvIGF2b2lkIGF1dG9wb3B1bGF0aW9uIHdoZW4gZm9yd2FyZGluZyBiZWFucyBiZXR3ZWVuIGFjdGlvbnMsCisgICAgICogc2V0IG11dGFibGUgdG8gYmUgdHJ1ZSBhbmQgYmUgc3VyZSBhbGwgc2V0dGVycyBvYnNlcnZlIHRoZQorICAgICAqIG11dGFibGUgc3RhdGUuCisgICAgICogPHA+CisgICAgICogKDxjb2RlPmlmIChpc011dGFibGUoKSkgdGhpcy5maWVsZCA9IGZpZWxkOzwvY29kZT4pLgorICAgICAqIHN1YmplY3QgdG8gYXV0b3BvcHVsYXRpb24uCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIG11dGFibGUgPSB0cnVlOworCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG11dGFibGUgc3RhdGUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TXV0YWJsZShib29sZWFuIG11dGFibGUpIHsKKyAgICAgICAgdGhpcy5tdXRhYmxlID0gbXV0YWJsZTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBtdXRhYmxlIHN0YXRlLgorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTXV0YWJsZSgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMubXV0YWJsZTsKKyAgICB9CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBEaXNwYXRjaAorCisgICAgLyoqCisgICAgICogVGhlIGRpc3BhdGNoIHByb3BlcnR5LgorICAgICAqIDxwPgorICAgICAqIFRoaXMgY2FuIGJlIHNldCBieSBhIEphdmFTY3JpcHQgYnV0dG9udG8gaW5kaWNhdGUgd2hpY2ggdGFzayBzaG91bGQKKyAgICAgKiBiZSBwZXJmb3JtZWQgKG9yIGRpc3BhdGNoZWQpIGJ5IGFuIGFjdGlvbi4KKyAgICAgKiBPYnNlcnZlcyB0aGUgYmVhbidzIG11dGFibGUgc3RhdGUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBkaXNwYXRjaCA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIFNldCBkaXNwYXRjaC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREaXNwYXRjaChTdHJpbmcgZGlzcGF0Y2gpIHsKKyAgICAgICAgaWYgKGlzTXV0YWJsZSgpKSB0aGlzLmRpc3BhdGNoID0gZGlzcGF0Y2g7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGRpc3BhdGNoLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGlzcGF0Y2goKSB7CisgICAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoOworICAgIH0KKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHVibGljIE1ldGhvZHMKKworICAgIC8qKgorICAgICAqIEEgc3RhdGljLCBlbXB0eSBTdHJpbmcgdXNlZCBieSBpc0JsYW5rLgorICAgICAqLworICAgICBwcml2YXRlIHN0YXRpYyBTdHJpbmcgRU1QVFkgPSAiIjsKKworCisgICAgLyoqCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kIHRvIGNoZWNrIGZvciBhIG51bGwgb3IgZW1wdHkgU3RyaW5nLgorICAgICAqCisgICAgICogQHBhcmFtIHMgVGhlIHN0aW5nIHRvIGNoZWNrCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gYmxhbmsoU3RyaW5nIHMpIHsKKyAgICAgICAgcmV0dXJuIENvbnZlcnRVdGlscy5ibGFuayhzKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byBjaGVjayBmb3IgYSBudWxsLCBlbXB0eSwgb3IgIjAiIFN0cmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzIFRoZSBzdGluZyB0byBjaGVjaworICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIGJsYW5rVmFsdWUoU3RyaW5nIHMpIHsKKyAgICAgICAgcmV0dXJuIENvbnZlcnRVdGlscy5ibGFua1ZhbHVlKHMpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogQGRlcHJlY2F0ZWQgVXNlIGJsYW5rIGluc3RlYWQuCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gaXNCbGFuayhTdHJpbmcgcykgeworICAgICAgICByZXR1cm4gYmxhbmsocyk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gdGVzdCBmb3IgYSByZXF1aXJlZCBmaWVsZAorICAgICAqIGFuZCBzZXR1cCB0aGUgZXJyb3IgbWVzc2FnZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCByZXF1aXJlZCgKKyAgICAgICAgQWN0aW9uRXJyb3JzIGVycm9ycywKKyAgICAgICAgU3RyaW5nIGZpZWxkLAorICAgICAgICBTdHJpbmcgbmFtZSwKKyAgICAgICAgU3RyaW5nIGFyZykgeworICAgICAgICBpZiAoKG51bGw9PWZpZWxkKSB8fCAoMD09ZmllbGQubGVuZ3RoKCkpKSB7CisgICAgICAgICAgICBlcnJvcnMuYWRkKG5hbWUsCisgICAgICAgICAgICAgICAgbmV3IEFjdGlvbkVycm9yKFRva2Vucy5FUlJPUlNfUkVRVUlSRUQsYXJnKSk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCB0byB0ZXN0IGZvciBhIHJlcXVpcmVkIGFycmF5CisgICAgICogYW5kIHNldHVwIHRoZSBlcnJvciBtZXNzYWdlLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHJlcXVpcmVkKAorICAgICAgICBBY3Rpb25FcnJvcnMgZXJyb3JzLAorICAgICAgICBTdHJpbmdbXSBmaWVsZCwKKyAgICAgICAgU3RyaW5nIG5hbWUsCisgICAgICAgIFN0cmluZyBhcmcpIHsKKyAgICAgICAgaWYgKChudWxsPT1maWVsZCkgfHwgKDA9PWZpZWxkLmxlbmd0aCkpIHsKKyAgICAgICAgICAgIGVycm9ycy5hZGQobmFtZSwKKyAgICAgICAgICAgICAgICBuZXcgQWN0aW9uRXJyb3IoVG9rZW5zLkVSUk9SU19SRVFVSVJFRCxhcmcpKTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuIG9iamVjdCBvZiB0aGUgc3BlY2lmaWVkIGNsYXNzLAorICAgICAqIHRocm93aW5nIGEgcnVudGltZSBleGNlcHRpb24gaWYgYW55IGVycm9yIG9jY3Vycy4KKyAgICAgKiBJZiBhbiBleGNlcHRpb24gaXMgbm90IHRocm93biwgdGhlbiBoZWxwZXIgaXMgZ3VhcmFudGVlZCB0byBleGlzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvYmplY3RDbGFzcyBUaGUgbmFtZSBvZiB0aGUgY2xhc3MKKyAgICAgKiBAdGhyb3dzIElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBpZiBvYmplY3QgY2Fubm90IGJlCisgICAgICogaW5zdGFudGlhdGVkCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBjcmVhdGVPYmplY3QoCisgICAgICAgICAgICBTdHJpbmcgb2JqZWN0Q2xhc3MpIHsKKworICAgICAgICAgICAgLy8gVHJ5IHRoZSBjcmVhdGUKKyAgICAgICAgT2JqZWN0IG9iamVjdCA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBvYmplY3QgPSBDbGFzcy5mb3JOYW1lKG9iamVjdENsYXNzKS5uZXdJbnN0YW5jZSgpOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICBvYmplY3QgPSBudWxsOworICAgICAgICAgICAgICAgLy8gYXNzZW1ibGUgbWVzc2FnZToge2NsYXNzfToge2V4Y2VwdGlvbn0KKyAgICAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigpOworICAgICAgICAgICBzYi5hcHBlbmQoTG9nLkNSRUFURV9PQkpFQ1RfRVJST1IpOworICAgICAgICAgICBzYi5hcHBlbmQoTG9nLkNMQVNTKTsKKyAgICAgICAgICAgc2IuYXBwZW5kKG9iamVjdENsYXNzKTsKKyAgICAgICAgICAgc2IuYXBwZW5kKExvZy5TUEFDRSk7CisgICAgICAgICAgIHNiLmFwcGVuZChMb2cuQUNUSU9OX0VYQ0VQVElPTik7CisgICAgICAgICAgIHNiLmFwcGVuZCh0LnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIC8vIHRocm93IHJ1bnRpbWUgZXhjZXB0aW9uCisgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oc2IudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG9iamVjdDsKKworICAgICB9IC8vIGNyZWF0ZUhlbHBlck9iamVjdCgpCisKKworICAgIC8qKgorICAgICAqIFJldHVybiBtYXAgb2YgcHJvcGVydGllcyBmb3IgdGhpcyBiZWFuLgorICAgICAqIEJhc2UgbWV0aG9kIHVzZXMgPGNvZGU+UHJvcGVydHlVdGlscy5kZXNjcmliZTwvY29kZT4uCisgICAgICogT3ZlcnJpZGUgaWYgc29tZSBwcm9wZXJ0aWVzIHNob3VsZCBub3QgYmUgdHJhbnNmZXJlZAorICAgICAqIHRoaXMgd2F5LCBvciBhIHByb3BlcnR5IG5hbWUgc2hvdWxkIGJlIGFsdGVyZWQuCisgICAgICogVGhpcyB3aWxsIHJldHVybiB0aGUgYWN0dWFsIHB1YmxpYyBwcm9wZXJ0aWVzLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gb24gYW55IGVycm9yLgorICAgICAqLworICAgIHB1YmxpYyBNYXAgZGVzY3JpYmUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIFByb3BlcnR5VXRpbHMuZGVzY3JpYmUodGhpcyk7CisgICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgQ2hhaW5lZEV4Y2VwdGlvbih0KTsKKyAgICAgIH0KKworICAgIH0gLy8gZW5kIGRlc2NyaWJlCisKKworICAgIC8qKgorICAgICAqIFNldCBwcm9wZXJ0aWVzIGZyb20gZ2l2ZW4gb2JqZWN0LgorICAgICAqIEJhc2UgbWV0aG9kIHVzZXMgPGNvZGU+QmVhblV0aWxzLmNvcHlQcm9wZXJ0aWVzPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5Qcm9wZXJ0eVV0aWxzLmRlc2NyaWJlPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvIFRoZSBvYmplY3QgdG8gdXNlIHRvIHBvcHVsYXRlIHRoaXMgb2JqZWN0LgorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIG9uIGFueSBlcnJvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXQoT2JqZWN0IG8pIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBCZWFuVXRpbHMuY29weVByb3BlcnRpZXModGhpcyxvKTsKKyAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBDaGFpbmVkRXhjZXB0aW9uKHQpOworICAgICAgfQorCisgICAgfSAvLyBlbmQgc2V0CisKKworICAgIC8qKgorICAgICAqIFBvcHVsYXRlIG1hdGNoaW5nIHByb3BlcnRpZXMgb24gZ2l2ZW4gb2JqZWN0LgorICAgICAqIEJhc2UgbWV0aG9kIHVzZXMgPGNvZGU+QmVhblV0aWxzLmNvcHlQcm9wZXJ0aWVzPC9jb2RlPiBhbmQKKyAgICAgKiA8Y29kZT5kZXNjcmliZSgpPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBvIFRoZSBvYmplY3QgdG8gcG9wdWxhdGUgZnJvbSB0aGlzIG9iamVjdC4KKyAgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiBvbiBhbnkgZXJyb3IuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcG9wdWxhdGUoT2JqZWN0IG8pIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBCZWFuVXRpbHMuY29weVByb3BlcnRpZXMobyxkZXNjcmliZSgpKTsKKyAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHQpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBDaGFpbmVkRXhjZXB0aW9uKHQpOworICAgICAgfQorCisgICAgfSAvLyBlbmQgcG9wdWxhdGUKKworCisgICAgLyoqCisgICAgICogLy8gOkZJWE1FOiBOZWVkcyB0ZXN0aW5nLiBXb3JrcyBPSyB3aXRob3V0IGEgcHJvZmlsZSBiZWFuID06bykKKyAgICAgKiBNZXJnZSBhIHByb2ZpbGUgYmVhbiB3aXRoIHRoaXMgYmVhbiB0byBwcm92aWRlIGEgdW5pZmllZCBtYXAKKyAgICAgKiBvZiB0aGUgY29tYmluZWQgcGFyYW1ldGVycy4gV2lsbCBvbiBhZGQgcHJvcGVydGllcyB0byB0aGUgbWFwCisgICAgICogZnJvbSB0aGUgcHJvZmlsZSBiZWFuIGlmIG1hdGNoaW5nIHByb3BlcnR5IG9uIHRoaXMgYmVhbiBpcworICAgICAqIGJsYW5rIG9yIG51bGwgKHdoaWNoIGluY2x1ZGVzIGFic2VudCkuCisgICAgICogVGhlIHJlc3VsdCBpcyBhIHVuaW9uIG9mIHRoZSBwcm9wZXJ0aWVzLCB3aXRoIHRoZSB0aGlzCisgICAgICogYmVhbidzIG5vbi1ibGFuayBwcm9wZXJ0aWVzIGhhdmluZyBwcmVjZWRlbmNlIG92ZXIgdGhlCisgICAgICogcHJvZmlsZSdzIHByb3BlcnRpZXMuIFRoZSBwcm9maWxlIGlzIGEgYmFzZSB0aGF0IHRoaXMgYmVhbgorICAgICAqIGNhbiBvdmVycmlkZSBvbiB0aGUgZmx5IC0tIElmIHRoaXMgYmVhbiBkb2VzIG5vdCBzdXBwbHkgYQorICAgICAqIHByb3BlcnR5LCB0aGVuIHRoZSBwcm9maWxlIHByb3BlcnR5IGlzIHVzZWQuIEJ1dCBhbnkgCisgICAgICogcHJvcGVydHkgbmFtZWQgb24gdGhlIHVzZXJQcm9maWxlIGlzIGluY2x1ZGVkIChldmVuIGlmIAorICAgICAqIGl0IGhhcyBubyBtYXRjaCBvbiB0aGlzIGJlYW4pLgorICAgICAqIDxwPgorICAgICAqIElmIHByb2ZpbGUgaXMgbnVsbCwgYSBtYXAgb2YgdGhpcyBiZWFuJ3MgcHJvcGVydGllcyBpcyByZXR1cm5lZC4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgcHJvZmlsZSBjYW4gYmUgYW55IEphdmFCZWFuLgorICAgICAqIDxwPgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGZvcndhcmRseS1jb21wYXRpYmxlIHdpdGggQmFzZU1hcEZvcm0uCisgICAgICogRm9yIGFuIGluc3RhbmNlIG9mIEJhc2VNYXBGb3JtLCBnZXRNYXAoKSBpcyB1c2VkOyBvdGhlcndpc2UKKyAgICAgKiBkZXNjcmliZSgpIG9yIFByb3BlcnR5VXRpbHMuZGVzY3JpYmUoKSBpcyB1c2VkLgorICAgICAqCisgICAgICogOkZJWE1FOiBOZWVkcyB0ZXN0aW5nLiBXb3JrcyBPSyB3aXRob3V0IGEgcHJvZmlsZSBiZWFuID06bykKKyAgICAgKiBAcGFyYW0gcHJvZmlsZSBUaGUgcHJvZmlsZSBiZWFuLCBpZiBhbnkKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBpZiBlcnJvciB0cmFuc2ZlcmluZyBkYXRhIHRvIG1hcAorICAgICAqLworICAgIHByb3RlY3RlZCBNYXAgbWVyZ2UoT2JqZWN0IHByb2ZpbGUpIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIE1hcCBmb3JtTWFwID0gbnVsbDsKKyAgICAgICAgaWYgKHRoaXMgaW5zdGFuY2VvZiBCYXNlTWFwRm9ybSkgeworICAgICAgICAgICAgQmFzZU1hcEZvcm0gZm9ybSA9IChCYXNlTWFwRm9ybSkgdGhpczsKKyAgICAgICAgICAgIGZvcm1NYXAgPSBmb3JtLmdldE1hcCgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9ybU1hcCA9IGRlc2NyaWJlKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocHJvZmlsZSE9bnVsbCkgeworCisgICAgICAgICAgICBNYXAgdXNlck1hcCA9IG51bGw7CisgICAgICAgICAgICBpZiAocHJvZmlsZSBpbnN0YW5jZW9mIEJhc2VNYXBGb3JtKSB7CisgICAgICAgICAgICAgICAgQmFzZU1hcEZvcm0gZm9ybSA9IChCYXNlTWFwRm9ybSkgcHJvZmlsZTsKKyAgICAgICAgICAgICAgICB1c2VyTWFwID0gZm9ybS5nZXRNYXAoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHByb2ZpbGUgaW5zdGFuY2VvZiBCYXNlRm9ybSkgeworICAgICAgICAgICAgICAgIEJhc2VGb3JtIGZvcm0gPSAoQmFzZUZvcm0pIHByb2ZpbGU7CisgICAgICAgICAgICAgICAgdXNlck1hcCA9IGZvcm0uZGVzY3JpYmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHVzZXJNYXAgPSBQcm9wZXJ0eVV0aWxzLmRlc2NyaWJlKHRoaXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBBZGQgdXNlciBlbGVtZW50IHRvIGZvcm1NYXAgaWYgZm9ybSBlbGVtZW50IGlzIG51bGwgb3IgYmxhbmsKKyAgICAgICAgICAgIC8vIFN0YXJ0aW5nIHdpdGggdGhlIGZvcm1NYXAsIGZvciBldmVyeSBlbGVtZW50IGluIHRoZSB1c2VyTWFwLCAKKyAgICAgICAgICAgIC8vIHNlZSBpZiB0aGUgZm9ybU1hcCBlbGVtZW50IGlzIG5vbi1leGlzdGFudCwgbnVsbCwgb3IgYW4gZW1wdHkgU3RyaW5nLiAKKyAgICAgICAgICAgIC8vIElmIGl0IGlzIChvdXIgZm9ybU1hcCBkb2Vzbid0IG92ZXJyaWRlKSwgYWRkIHRoZSB1c2VyTWFwIHZhbHVlIAorICAgICAgICAgICAgLy8gdG8gdGhlIGZvcm1NYXAuIAorICAgICAgICAgICAgSXRlcmF0b3IgaSA9IHVzZXJNYXAua2V5U2V0KCkuaXRlcmF0b3IoKTsKKyAgICAgICAgICAgIHdoaWxlIChpLmhhc05leHQoKSkgeworICAgICAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBpLm5leHQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZm9ybVZhbHVlID0gKFN0cmluZykgZm9ybU1hcC5nZXQoa2V5KTsKKyAgICAgICAgICAgICAgICBpZiAoaXNCbGFuayhmb3JtVmFsdWUpKSB7CisgICAgICAgICAgICAgICAgICAgIGZvcm1NYXAucHV0KGtleSx1c2VyTWFwLmdldChrZXkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZm9ybU1hcDsKKworICAgIH0gLy8gZW5kIG1lcmdlCisKKworIAorICAgIC8qKgorICAgICAqIElmIGJlYW4gaXMgc2V0IHRvIG11dGFibGUsIGNhbGxzIDxjb2RlPnJlc2V0U2Vzc2lvbkxvY2FsZTwvY29kZT4KKyAgICAgKiBhbmQgPGNvZGU+cmVzZXRSZW1vdGVIb3N0PC9jb2RlPi4KKyAgICAgKgorICAgICAqIFN1YmNsYXNzZXMgcmVzZXR0aW5nIHRoZWlyIG93biBmaWVsZHMgc2hvdWxkIG9ic2VydmUgdGhlIG11dGFibGUKKyAgICAgKiBzdGF0ZSAoPGNvZGU+aWYgKGlzTXV0YWJsZSgpKSAuLi48L2NvZGU+KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBtYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgc2VydmxldCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXQoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCkgeworCisgICAgICAgIGlmIChpc011dGFibGUoKSkgeworICAgICAgICAgICAgCisgICAgICAgICAgICBzdXBlci5yZXNldChtYXBwaW5nLHJlcXVlc3QpOworCisgICAgICAgICAgIC8vIDpUT0RPOiBNaWdodCBiZSB1c2VmdWwgdG8gaGF2ZSBhIGNvbGxlY3Rpb24gb2YgcmVzZXQgbGlzdGVuZXJzIAorICAgICAgICAgICAgcmVzZXRSZW1vdGVIb3N0KHJlcXVlc3QpOworICAgICAgICAgICAgcmVzZXRTZXNzaW9uTG9jYWxlKHJlcXVlc3QpOworICAgICAgICB9CisKKyAgICB9IC8vIGVuZCByZXNldAorCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYW4gZW1wdHkgQWN0aW9uRXJyb3JzIG9yIHRoZSByZXN1bHQgb2YgY2FsbGluZworICAgICAqIHRoZSBzdXBlcmNsYXNzIHZhbGlkYXRlLiBXaWxsIG5vdCByZXR1cm4gbnVsbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgQWN0aW9uRXJyb3JzIHZhbGlkYXRlKEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QpIHsKKworICAgICAgICBBY3Rpb25FcnJvcnMgZXJyb3JzID0gc3VwZXIudmFsaWRhdGUobWFwcGluZyxyZXF1ZXN0KTsKKyAgICAgICAgaWYgKG51bGw9PWVycm9ycykgZXJyb3JzID0gbmV3IEFjdGlvbkVycm9ycygpOworICAgICAgICByZXR1cm4gZXJyb3JzOworICAgIH0KKyAgICAKKworfSAvLyBlbmQgQmFzZUZvcm0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9CYXNlSGVscGVyQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9CYXNlSGVscGVyQWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIxOTI2NQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0Jhc2VIZWxwZXJBY3Rpb24uamF2YQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDIwMDEtMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnNjYWZmb2xkOworCitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLmxhbmcuVG9rZW5zOworCisKKy8qKgorICogQmFzZSBjbGFzcyB0byBpbnN0YW50aWF0ZSBoZWxwZXIgb2JqZWN0cyBmcm9tIHBhcmFtZXRlciBwcm9wZXJ0eS4KKyAqIFN1YmNsYXNzZXMgc2hvdWxkIG92ZXJyaWRlIHRoZSBhbHRlcm5hdGUgZXhlY3V0ZUxvZ2ljIHRvIHByb3ZpZGUKKyAqIGZ1bmN0aW9uYWxpdHkuCisgKiBUaGUgc3RhbmRhcmQgZXhlY3V0ZUxvZ2ljIHdpbGwgaW5zdGFudGlhdGUgdGhlIG9iamVjdChzKSwKKyAqIGFuZCBjYWxsIHRoZSBhbHRlcm5hdGUgZXhlY3V0ZUxvZ2ljIG1ldGhvZCwgcGFzc2luZyB0aGUgaGVscGVycworICogaW4gYW4gYXJyYXkuCisgKiA8cD4KKyAqIE11bHRpcGxlIGhlbHBlciBjbGFzc2VzIG1heSBiZSBzcGVjaWZpZWQgaW4gYSBzZW1pLWNvbG9uIGRlbGltaXRlZCBsaXN0LAorICogd2hpY2ggd2lsbCBiZSBpbnN0YW50aWF0ZWQgaW4gdGhlIGhlbHBlcnMgYXJyYXkgaW4gdGhlIG9yZGVyIGdpdmVuLgorICoKKyAqIEB2ZXJzaW9uICRSZXYkICREYXRlJAorICovCitwdWJsaWMgY2xhc3MgQmFzZUhlbHBlckFjdGlvbiBleHRlbmRzIEJhc2VBY3Rpb24geworCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQdWJsaWMgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiBTaW1wbGUgdGVzdCB0byByZW5kZXIgU3RyaW5nIHZlcnNpb24gb2YgaW5zdGFudGlhdGVkCisgICAgICogaGVscGVycy4gU2hvdWxkIGJlIG92ZXJyaWRkZW4gdG8gcHJvdmlkZSBmdW5jdGlvbmFsaXR5CisgICAgICogKHdpdGhvdXQgY2FsbGluZyBzdXBlciEpLgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSBmb3JtIFRoZSBBY3Rpb25Gb3JtCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKiBAcGFyYW0gaGVscGVycyBUaGUgb2JqZWN0IGluc3RhbnRpYXRlZCBmcm9tIHR5cGUgZ2l2ZW4gYXMgcGFyYW1ldGVyLgorICAgICAqIEBleGNlcHRpb24gamF2YS5pby5JT0V4Y2VwdGlvbiBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzCisgICAgICogQGV4Y2VwdGlvbiBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb24gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBleGVjdXRlTG9naWMoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UsCisgICAgICAgICAgICBPYmplY3RbXSBoZWxwZXJzKQorICAgICAgICB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgLy8gb3ZlcnJpZGUgdG8gcHJvdmlkZSBuZXcgZnVuY3Rpb25hbGl0eQorICAgICAgICByZXNwb25zZS5zZXRDb250ZW50VHlwZShUb2tlbnMuVEVYVF9QTEFJTik7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaGVscGVycy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIHJlc3BvbnNlLmdldFdyaXRlcigpLnByaW50KGhlbHBlcnNbaV0udG9TdHJpbmcoKSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBJbnN0YW50aWF0ZSBoZWxwZXIgb2JqZWN0cyBmcm9tIHRoZSB0eXBlIGdpdmVuIGFzIHRoZQorICAgICAqIEFjdGlvbk1hcHBpbmcgcGFyYW1ldGVyIChkZWxpbWl0ZWQgd2l0aCBzZW1pY29sb25zKSwgYW5kIGNhbGwKKyAgICAgKiB0aGUgYWx0ZXJuYXRlIGV4ZWN1dGVMb2dpYy4KKyAgICAgKiBXaWxsIG5vdCBjYWxsICJoZWxwZXIiIHBlcmZvcm0gaWYgaGVscGVyIGNyZWF0aW9uIGZhaWxzLgorICAgICAqIFRoZSBlcnJvciBpcyBsb2dnZWQsIGFuZCBudWxsIHJldHVybmVkLgorICAgICAqIDxwPgorICAgICAqIEFsc28gY2hlY2tzIGZvciBjYW5jZWwgYW5kIHRva2VuIGNvbmRpdGlvbnMsIGlmIGFuCisgICAgICogYXBwcm9wcmlhdGUgZm9yd2FyZCBpcyBwcmVzZW50LgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSBmb3JtIFRoZSBBY3Rpb25Gb3JtCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKiA8cD4KKyAgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiBpZiBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBleGVjdXRlTG9naWMoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgICAgIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIFN0cmluZ1tdIHRva2VucyA9IHRva2VuaXplKG1hcHBpbmcuZ2V0UGFyYW1ldGVyKCkpOworICAgICAgICBpbnQgaGVscGVyQ291bnQgPSB0b2tlbnMubGVuZ3RoOworICAgICAgICBPYmplY3RbXSBoZWxwZXJzID0gbmV3IE9iamVjdFtoZWxwZXJDb3VudF07CisKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpPGhlbHBlckNvdW50OyBpKyspIHsKKyAgICAgICAgICAgIGhlbHBlcnNbaV0gPSBjcmVhdGVIZWxwZXJPYmplY3QocmVxdWVzdCx0b2tlbnNbaV0pOworICAgICAgICB9CisKKyAgICAgICAgZXhlY3V0ZUxvZ2ljKG1hcHBpbmcsZm9ybSxyZXF1ZXN0LHJlc3BvbnNlLGhlbHBlcnMpOworICAgIH0KKworfSAvLyBlbmQgQmFzZUhlbHBlckFjdGlvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0Jhc2VNYXBGb3JtLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9CYXNlTWFwRm9ybS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhOGJkYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9CYXNlTWFwRm9ybS5qYXZhCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAyMDAxLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5zY2FmZm9sZDsKKworLyoqCisgKiBFbmhhbmNlZCBiYXNlIEFjdGlvbkZvcm0gZm9yIFN0cnV0cyAxLjEgYW5kIGxhdGVyLgorICoKKyAqIEB2ZXJzaW9uICRSZXYkICREYXRlJAorICovCitwdWJsaWMgY2xhc3MgQmFzZU1hcEZvcm0gZXh0ZW5kcyBCYXNlRm9ybSB7CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3BlcnRpZXMKKworICAgIC8qKgorICAgICAqIEFzc29jaWF0ZXMgdGhlIHNwZWNpZmllZCB2YWx1ZSB3aXRoIHRoZSBzcGVjaWZpZWQga2V5IGluCisgICAgICogdGhlIHByb3BlcnR5IG1hcCBmb3IgdGhpcyBvYmplY3QKKyAgICAgKiAtLSB0aGUgZXF1aXZhbGVudCBvZiA8Y29kZT5nZXRNYXAoKS5wdXQoa2V5LHZhbHVlKS4KKyAgICAgKiBPYnNlcnZlcyB0aGUgbXV0YWJsZSBwcm9wZXJ0eSBhbmQgb25seSBzZXQgbmV3IHZhbHVlIHdoZW4KKyAgICAgKiA8Y29kZT5pc011dGFibGUoKTwvY29kZT4gaXMgdHJ1ZS4KKyAgICAgKiA8cD4KKyAgICAgKiBJbiBhIFN0cnV0cyAxLjEgYXBwbGljYXRpb24sIHRoaXMgd2lsbCBzZXQgYW4gZWxlbWVudCB0byB0aGUKKyAgICAgKiBtYXAuIFNlZSBhbHNvIDxjb2RlPmdldFZhbHVlKCk8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIFBhc3NlcyB0aHJvdWdoIGFueSBFeGNlcHRpb24gdGhyb3duIGJ5IHVuZGVybHlpbmcKKyAgICAgKiBoYXNobWFwLgorICAgICAqIEBwYXJhbSBrZXkgLSBrZXkgd2l0aCB3aGljaCB0aGUgc3BlY2lmaWVkIHZhbHVlIGlzIHRvIGJlIGFzc29jaWF0ZWQuCisgICAgICogQHBhcmFtIHZhbHVlIC0gdmFsdWUgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQga2V5LiovCisgICAgcHVibGljIHZvaWQgc2V0VmFsdWUoU3RyaW5nIGtleSwgT2JqZWN0IHZhbHVlKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKGlzTXV0YWJsZSgpKSBnZXRNYXAoKS5wdXQoa2V5LHZhbHVlKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIHZhbHVlIHRvIHdoaWNoIHRoaXMgbWFwIG1hcHMgdGhlIHNwZWNpZmllZCBrZXkKKyAgICAgKiAtLSB0aGUgZXF1aXZhbGVudCBvZiA8Y29kZT5PYmplY3QgZ2V0TWFwKCkuZ2V0KGtleSk8L2NvZGU+LgorICAgICAqIDxwPgorICAgICAqIEluIGEgU3RydXRzIDEuMSBhcHBsaWNhdGlvbiwgdGhpcyBjYW4gYmUgdXNlZCB0byByZXRyaWV2ZSBhCisgICAgICogcHJvcGVydHkgZnJvbSB0aGUgTWFwLCBlLmcuLCBwcm9wZXJ0eT0idmFsdWUodXNlcm5hbWUpIgorICAgICAqIDxwPgorICAgICAqIEBwYXJhbSBrZXkgLSBrZXkgd2hvc2UgYXNzb2NpYXRlZCB2YWx1ZSBpcyB0byBiZSByZXR1cm5lZC4KKyAgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiBQYXNzZXMgdGhyb3VnaCBhbnkgRXhjZXB0aW9uIHRocm93biBieSB1bmRlcmx5aW5nCisgICAgICogaGFzaG1hcC4KKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldFZhbHVlKFN0cmluZyBrZXkpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICByZXR1cm4gZ2V0TWFwKCkuZ2V0KGtleSk7CisgICAgfQorCisvLyBlbmQgQmFzZU1hcEZvcm0KKworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0JpekFjdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvQml6QWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg1ZjEwMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0JpekFjdGlvbi5qYXZhCkBAIC0wLDAgKzEsNTg5IEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMjAwMS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQ7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZDsKKworaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkJlYW5VdGlsczsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLmxhbmcuTG9nOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5zY2FmZm9sZC5sYW5nLlBhcmFtZXRlckV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQubGFuZy5Ub2tlbnM7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLnV0aWwuQml6UmVxdWVzdDsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQudXRpbC5CaXpSZXNwb25zZTsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQudXRpbC5CaXpTZXJ2aWNlOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5yZXNvdXJjZXMuTWVzc2FnZTsKKworLyoqCisgKiBBZHZhbmNlZCBmcmFtZXdvcmsgY2xhc3MgdG8gaW52b2tlIGEgYnVzaW5lc3Mgc2VydmljZQorICogYW5kIHByb2Nlc3MgdGhlIHJlc3BvbnNlLgorICoKKyAqIEB2ZXJzaW9uICRSZXYkICREYXRlJAorICovCitwdWJsaWMgY2xhc3MgQml6QWN0aW9uIGV4dGVuZHMgQmFzZUhlbHBlckFjdGlvbiB7CisKKworICAgIC8qKgorICAgICAqIEV4cG9zZXMgcmVzdWx0IGluIGEgc2VydmxldCBjb250ZXh0LgorICAgICAqIElmIHRoZXJlIGlzIGFuIGV4aXN0aW5nIGJlYW4gd2l0aCBzYW1lIGF0dHJpYnV0ZSBuYW1lIGluIHRoZSB0YXJnZXQKKyAgICAgKiBjb250ZXh0LAorICAgICAqIHRoZW4gdGhlIG1hdGNoaW5nIHByb3BlcnRpZXMgb24gdGhhdCBiZWFuIGFyZSBwb3B1bGF0ZWQgd2l0aCB0aGUKKyAgICAgKiByZXN1bHQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCB0aGUgcmVxdWVzdCBiZWluZyBzZXJ2aWNlZAorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIHRvIHVzZSBpbiBzY29wZQorICAgICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgdG8gc2V0IHRoZSBhdHRyaWJ1dGUgaW4KKyAgICAgKiBAcGFyYW0gYmVhbiBUaGUgYXR0cmlidXRlIHRvIGJlIHNldAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGV4cG9zZUluU2NvcGUoCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIFN0cmluZyBuYW1lLAorICAgICAgICAgICAgU3RyaW5nIHNjb3BlLAorICAgICAgICAgICAgT2JqZWN0IGJlYW4pIHsKKworICAgICAgICBpZiAoKG51bGw9PXNjb3BlKSB8fCAobnVsbD09YmVhbikpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKFRva2Vucy5SRVFVRVNULmVxdWFscyhzY29wZSkpIHsKKyAgICAgICAgICAgIE9iamVjdCBmb3JtID0gcmVxdWVzdC5nZXRBdHRyaWJ1dGUobmFtZSk7CisgICAgICAgICAgICBpZiAobnVsbD09Zm9ybSkgeworICAgICAgICAgICAgICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKG5hbWUsYmVhbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBCZWFuVXRpbHMuY29weVByb3BlcnRpZXMoZm9ybSxiZWFuKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKFRva2Vucy5TRVNTSU9OLmVxdWFscyhzY29wZSkpIHsKKyAgICAgICAgICAgIE9iamVjdCBmb3JtID0gcmVxdWVzdC5nZXRTZXNzaW9uKCkuZ2V0QXR0cmlidXRlKG5hbWUpOworICAgICAgICAgICAgaWYgKG51bGw9PWZvcm0pIHsKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmdldFNlc3Npb24oKS5zZXRBdHRyaWJ1dGUobmFtZSxiZWFuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIEJlYW5VdGlscy5jb3B5UHJvcGVydGllcyhmb3JtLGJlYW4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoVG9rZW5zLkFQUExJQ0FUSU9OLmVxdWFscyhzY29wZSkpIHsKKyAgICAgICAgICAgIE9iamVjdCBmb3JtID0gc2VydmxldC5nZXRTZXJ2bGV0Q29udGV4dCgpLmdldEF0dHJpYnV0ZShuYW1lKTsKKyAgICAgICAgICAgIGlmIChudWxsPT1mb3JtKSB7CisgICAgICAgICAgICAgICAgc2VydmxldC5nZXRTZXJ2bGV0Q29udGV4dCgpLnNldEF0dHJpYnV0ZShuYW1lLGJlYW4pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgQmVhblV0aWxzLmNvcHlQcm9wZXJ0aWVzKGZvcm0sYmVhbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoImV4cG9zZUluU2NvcGU6ICIpOworICAgICAgICAgICAgc2IuYXBwZW5kKHNjb3BlKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZChUb2tlbnMuSU5WQUxJRF9TQ09QRSk7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKHNiLnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICB9IC8vIGVuZCBleHBvc2VJblNjb3BlKCkKKworCisgICAgLyoqCisgICAgICogU2F2ZSB0aGUgcmVzdWx0IG9iamVjdCB3aXRoaW4gdGhlIGJ1c2luZXNzIHJlc3BvbnNlIHRvIHNlcnZsZXQgY29udGV4dC4KKyAgICAgKiA8cD4KKyAgICAgKiA8Y29kZT5iaXpSZXNwb25zZS5nZXREYXRhKCk8L2NvZGU+IG11c3QgcmV0dXJuIG5vbi1udWxsLgorICAgICAqIDxwPgorICAgICAqIElmIDxjb2RlPmJpelJlc3BvbnNlLmdldE5hbWUoKTwvY29kZT4gaXMgbnVsbCwgdGhlIG1hcHBpbmcncyBhdHRyaWJ1dGUKKyAgICAgKiAoPGNvZGU+bWFwcGluZy5nZXRBdHRyaWJ1dGUoKTwvY29kZT4pIGlzIHVzZWQgaW5zdGVhZC4KKyAgICAgKiBCeSBkZWZhdWx0LCB0aGlzIGlzIHRoZSA8Y29kZT5mb3JtLWJlYW48L2NvZGU+J3MgbmFtZS4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiBkYXRhIGlzIGEgQ29sbGVjdGlvbiwgb25seSB0aGUgZmlyc3QgZWxlbWVudCBpcyBzdG9yZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSBiaXpSZXNwb25zZSBUaGUgQml6UmVzcG9uc2Ugd2UgYXJlIGhhbmRsaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgY2hlY2tEYXRhU2luZ2xlKAorICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBCaXpSZXNwb25zZSBiaXpSZXNwb25zZSkgeworCisgICAgICAgIFN0cmluZyBuYW1lID0gYml6UmVzcG9uc2UuZ2V0TmFtZSgpOworICAgICAgICBpZiAobnVsbD09bmFtZSkgeworICAgICAgICAgICAgICAgIC8vIHVzZSBmb3JtLWJlYW4gb3IgbWFwcGluZyBuYW1lCisgICAgICAgICAgICBuYW1lID0gbWFwcGluZy5nZXRBdHRyaWJ1dGUoKTsKKyAgICAgICAgICAgIGJpelJlc3BvbnNlLnNldE5hbWUobmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHNjb3BlID0gYml6UmVzcG9uc2UuZ2V0U2NvcGUoKTsKKyAgICAgICAgT2JqZWN0IGJlYW4gPSBiaXpSZXNwb25zZS5nZXREYXRhKCk7CisKKyAgICAgICAgICAgIC8vIGlmIGRhdGEgaXMgY29sbGVjdGlvbiwgdXNlIGZpcnN0IGVsZW1lbnQKKyAgICAgICAgaWYgKGJlYW4gaW5zdGFuY2VvZiBDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICBDb2xsZWN0aW9uIGNvbGxlY3Rpb24gPSAoQ29sbGVjdGlvbikgYmVhbjsKKyAgICAgICAgICAgIGlmIChjb2xsZWN0aW9uLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyBmb3IgbGFjayBvZiBhIGJldHRlciBpZGVhLCBnZXQgYSBmcmVzaCBmb3JtLWJlYW4KKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyB3aWxsIHJldHVybiBudWxsIGlmIHRoZXJlIGlzIG5vdCBhIGZvcm0tYmVhbgorICAgICAgICAgICAgICAgICAgICAvLyBhc3NvY2lhdGVkIHdpdGggdGhpcyBtYXBwaW5nCisgICAgICAgICAgICAgICAgYmVhbiA9IGNyZWF0ZUhlbHBlckJlYW4ocmVxdWVzdCxtYXBwaW5nLmdldE5hbWUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBiZWFuID0gY29sbGVjdGlvbi5pdGVyYXRvcigpLm5leHQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoYml6UmVzcG9uc2UuaXNFeHBvc2VkKCkpIHsKKyAgICAgICAgICAgIGV4cG9zZUluU2NvcGUocmVxdWVzdCxuYW1lLHNjb3BlLGJlYW4pOworCisgICAgICAgIH0KKworICAgIH0gLy8gZW5kIGNoZWNrRGF0YVNpbmdsZQorCisKKyAgICAvKioKKyAgICAgKiBTYXZlIGFueSByZXN1bHQgb2JqZWN0cyB3aXRoaW4gdGhlIGJ1c2luZXNzIHJlc3BvbnNlIHRvIHNlcnZsZXQgY29udGV4dC4KKyAgICAgKiA8cD4KKyAgICAgKiA8Y29kZT5iaXpSZXNwb25zZS5nZXREYXRhKCk8L2NvZGU+IG11c3QgcmV0dXJuIG5vbi1udWxsLgorICAgICAqIDxwPgorICAgICAqIElmIDxjb2RlPmJpelJlc3BvbnNlLmdldE5hbWUoKTwvY29kZT4gaXMgbnVsbCwgdGhlIG1hcHBpbmcncyBhdHRyaWJ1dGUKKyAgICAgKiAoPGNvZGU+bWFwcGluZy5nZXRBdHRyaWJ1dGUoKTwvY29kZT4pIGlzIHVzZWQgaW5zdGVhZC4KKyAgICAgKiBCeSBkZWZhdWx0LCB0aGlzIGlzIHRoZSA8Y29kZT5mb3JtLWJlYW48L2NvZGU+J3MgbmFtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIGJpelJlc3BvbnNlIFRoZSBCaXpSZXNwb25zZSB3ZSBhcmUgaGFuZGxpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjaGVja0RhdGEoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEJpelJlc3BvbnNlIGJpelJlc3BvbnNlKSB7CisKKyAgICAgICAgaWYgKGJpelJlc3BvbnNlLmlzU2luZ2xlRm9ybSgpKSB7CisgICAgICAgICAgICBjaGVja0RhdGFTaW5nbGUobWFwcGluZyxyZXF1ZXN0LGJpelJlc3BvbnNlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBiaXpSZXNwb25zZS5nZXROYW1lKCk7CisgICAgICAgICAgICBpZiAobnVsbD09bmFtZSkgeworICAgICAgICAgICAgICAgIG5hbWUgPSBUb2tlbnMuTElTVF9LRVk7CisgICAgICAgICAgICAgICAgYml6UmVzcG9uc2Uuc2V0TmFtZShuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBzY29wZSA9IGJpelJlc3BvbnNlLmdldFNjb3BlKCk7CisgICAgICAgICAgICBPYmplY3QgYmVhbiA9IGJpelJlc3BvbnNlLmdldERhdGEoKTsKKworICAgICAgICAgICAgaWYgKGJpelJlc3BvbnNlLmlzRXhwb3NlZCgpKSB7CisgICAgICAgICAgICAgICAgZXhwb3NlSW5TY29wZShyZXF1ZXN0LG5hbWUsc2NvcGUsYmVhbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworCX0gLy8gZW5kIGNoZWNrRGF0YQorCisKKyAgICAvKioKKyAgICAgKiBQcm9jZXNzIG5ldyBkaXNwYXRjaCBhZHZpY2UgcGFzc2VkIGJ5IHRoZSBidXNpbmVzcyB0aWVyLgorICAgICAqIDxwPgorICAgICAqIFRoaXMgaXMgdXNlZCB0byByb3V0ZSBjb250cm9sIHRvIGFub3RoZXIgbG9jYXRpb24gYmVzaWRlcworICAgICAqIHRoZSBkZWZhdWx0ICJzdWNjZXNzIiBmb3J3YXJkIHJlZ2lzdGVyZWQgd2l0aCB0aGUgY29udHJvbGxlci4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGUgYnVzaW5lc3MgdGllciBjYW4gcGFzcyBiYWNrIGVpdGhlciBhIHBhdGggb3IgdGhlIG5hbWUgb2YKKyAgICAgKiBhbiBBY3Rpb25Gb3J3YXJkLgorICAgICAqIDxjb2RlPmNoZWNrRGlzcGF0Y2g8L2NvZGU+IHdpbGwgdGhlbiBjcmVhdGUgYW4gQWN0aW9uRm9yd2FyZCB0byByZXR1cm4KKyAgICAgKiBhbmQgc2F2ZSBpdCBpbiB0aGUgcmVxdWVzdCB1bmRlciB0aGUgU1VDQ0VTUyB0b2tlbi4KKyAgICAgKiBUaGUgPGNvZGU+ZmluZFN1Y2Nlc3MoKTwvY29kZT4gd2lsbCBjaGVjayBmb3IgdGhpcyBhdHRyaWJ1dGUKKyAgICAgKiBiZWZvcmUgcmV0dXJuaW5nIHRoZSBjb250cm9sbGVyJ3MgZGVmYXVsdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIGJpelJlc3BvbnNlIFRoZSBCaXpSZXNwb25zZSB3ZSBhcmUgaGFuZGxpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjaGVja0Rpc3BhdGNoKAorICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBCaXpSZXNwb25zZSBiaXpSZXNwb25zZSkgeworCisgICAgICAgIFN0cmluZyBkaXNwYXRjaCA9IGJpelJlc3BvbnNlLmdldERpc3BhdGNoKCk7CisgICAgICAgIEFjdGlvbkZvcndhcmQgZm9yd2FyZCA9IG51bGw7CisKKyAgICAgICAgaWYgKGJpelJlc3BvbnNlLmlzRGlzcGF0Y2hQYXRoKCkpIHsKKyAgICAgICAgICAgIGZvcndhcmQgPSBuZXcgQWN0aW9uRm9yd2FyZChkaXNwYXRjaCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3J3YXJkID0gbWFwcGluZy5maW5kRm9yd2FyZChkaXNwYXRjaCk7CisgICAgICAgIH0KKworICAgICAgICAgICAgLy8gT3VyIGZpbmRTdWNjZXNzIGxvb2tzIGZvciB0aGlzCisgICAgICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKFRva2Vucy5TVUNDRVNTLGZvcndhcmQpOworCisgICAgfSAvLyBlbmQgY2hlY2tEaXNwYXRjaAorCisKKyAgICAvKioKKyAgICAgKiBDaGVjayBvdXRjb21lLCBpZiBhbnk7IHJlY3Vyc2UgaWYgY29udGFpbmVyIGZvciBvdGhlciBvdXRjb21lcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIGJpelJlc3BvbnNlIFRoZSBCaXpSZXNwb25zZSB3ZSBhcmUgaGFuZGxpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjaGVja091dGNvbWUoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEJpelJlc3BvbnNlIGJpelJlc3BvbnNlKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoYml6UmVzcG9uc2UhPW51bGwpIHsKKworICAgICAgICAgICAgaWYgKGJpelJlc3BvbnNlLmlzQWdncmVnYXRlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gcmVjdXJzZSBmb3IgZWFjaCBCaXpSZXNwb25zZSBpbiBjb2xsZWN0aW9uCisgICAgICAgICAgICAgICAgQ29sbGVjdGlvbiBjb2xsZWN0aW9uID0gKENvbGxlY3Rpb24pCisgICAgICAgICAgICAgICAgICAgIGJpelJlc3BvbnNlLmdldERhdGEoKTsKKyAgICAgICAgICAgICAgICBJdGVyYXRvciBpdGVyYXRvciA9IGNvbGxlY3Rpb24uaXRlcmF0b3IoKTsKKyAgICAgICAgICAgICAgICB3aGlsZSAoaXRlcmF0b3IuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgICAgIEJpelJlc3BvbnNlIG5leHRCaXpSZXNwb25zZSA9CisgICAgICAgICAgICAgICAgICAgICAgICAoQml6UmVzcG9uc2UpIGl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tPdXRjb21lKG1hcHBpbmcscmVxdWVzdCxuZXh0Qml6UmVzcG9uc2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGNhbGwgZXh0ZW5zaW9uIHBvaW50cyBmb3Igd2hhdGV2ZXIgaXMgcmV0dXJuZWQKKyAgICAgICAgICAgICAgICBpZiAoYml6UmVzcG9uc2UuaXNEYXRhKCkpCisgICAgICAgICAgICAgICAgICAgIGNoZWNrRGF0YShtYXBwaW5nLHJlcXVlc3QsYml6UmVzcG9uc2UpOworCisgICAgICAgICAgICAgICAgaWYgKGJpelJlc3BvbnNlLmlzTWVzc2FnZXMoKSkKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tNZXNzYWdlcyhtYXBwaW5nLHJlcXVlc3QsYml6UmVzcG9uc2UpOworCisgICAgICAgICAgICAgICAgaWYgKGJpelJlc3BvbnNlLmlzRGlzcGF0Y2goKSkKKyAgICAgICAgICAgICAgICAgICAgY2hlY2tEaXNwYXRjaChtYXBwaW5nLHJlcXVlc3QsYml6UmVzcG9uc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKExvZy5QUk9DRVNTX1JFU1VMVF9OVUxMKTsKKyAgICAgICAgfQorCisJfSAvLyBlbmQgY2hlY2tPdXRjb21lCisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIFN0b3JlcyBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzIGZvciBkaXNwbGF5IGJ5IHRoZSBwcmVzZW50aW9uIGRldmljZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIGJpelJlc3BvbnNlIFRoZSBCaXpSZXNwb25zZSB3ZSBhcmUgaGFuZGxpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjaGVja01lc3NhZ2VzKAorCQkJQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBCaXpSZXNwb25zZSBiaXpSZXNwb25zZSkgeworCisJCS8vIHNhdmVNZXNzYWdlcyhyZXF1ZXN0LGJpelJlc3BvbnNlLmdldE1lc3NhZ2VzKCkpOworCisgICAgfSAvLyBlbmQgY2hlY2tNZXNzYWdlcworCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGFwcHJvcHJpYXRlIEFjdGlvbkZvcndhcmQgZm9yIGVycm9yIG9yIGZhaWx1cmUKKyAgICAgKiBjb25kaXRpb25zLgorICAgICAqIEZpcnN0IGNoZWNrcyBmb3IgYSBGQUlMVVJFIEFjdGlvbkZvcndhcmQgc3RvcmVkIGluIHRoZSByZXF1ZXN0LgorICAgICAqIElmIGFuIG92ZXJyaWRlIGlzIG5vdCBmb3VuZCwgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZQorICAgICAqIHN1cGVyY2xhc3MgbWV0aG9kLgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSBmb3JtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdAorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgKiBAcGFyYW0gcmVzcG9uc2UgVGhlIHJlc29uc2Ugd2UgYXJlIGNyZWF0aW5nCisgICAgICogQHJldHVybiBUaGUgQWN0aW9uRm9yd2FyZCByZXByZXNlbnRpbmcgRkFJTFVSRQorICAgICAqIG9yIG51bGwgaWYgYSBGQUlMVVJFIGZvcndhcmQgaGFzIG5vdCBiZWVuIHNwZWNpZmllZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQWN0aW9uRm9yd2FyZCBmaW5kRmFpbHVyZSgKKwkJCUFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkgeworCisgICAgICAgICAgICAvLyBEaWQgc29tZW9uZSBsZWF2ZSB1cyBhIGZvcndhcmQ/CisgICAgICAgIEFjdGlvbkZvcndhcmQgZm9yd2FyZCA9IChBY3Rpb25Gb3J3YXJkKQorICAgICAgICAgICAgcmVxdWVzdC5nZXRBdHRyaWJ1dGUoVG9rZW5zLkZBSUxVUkUpOworCisgICAgICAgIGlmIChudWxsPT1mb3J3YXJkKSB7CisgICAgICAgICAgICAgICAgLy8gTm8gb3ZlcnJpZGUsIHVzZSBkZWZhdWx0CisgICAgICAgICAgICBmb3J3YXJkID0gc3VwZXIuZmluZEZhaWx1cmUobWFwcGluZyxmb3JtLHJlcXVlc3QscmVzcG9uc2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIENsZWFyIGFkdmljZSBmcm9tIHRoZSByZXF1ZXN0CisgICAgICAgICAgICByZXF1ZXN0LnNldEF0dHJpYnV0ZShUb2tlbnMuRkFJTFVSRSxudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmb3J3YXJkOworCisgICAgfSAvLyBlbmQgZmluZEZhaWx1cmUKKworCisgICAgLyoqCisgICAgICogT3B0aW9uYWwgZXh0ZW5zaW9uIHBvaW50IGZvciBwcmUtcHJvY2Vzc2luZy4KKyAgICAgKiBEZWZhdWx0IG1ldGhvZCBkb2VzIG5vdGhpbmcuCisgICAgICogVG8gYnJhbmNoIHRvIGFub3RoZXIgVVJJLCByZXR1cm4gYW4gbm9uLW51bGwgQWN0aW9uRm9yd2FyZC4KKyAgICAgKiBJZiBlcnJvcnMgYXJlIGxvZ2dlZCAoZ2V0RXJyb3JzKCkgZXQgYWwpLAorICAgICAqIGRlZmF1bHQgYmVoYXZpb3VyIHdpbGwgYnJhbmNoIHRvIGZpbmRGYWlsdXJlKCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0CisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgcmVzb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBwcmVQcm9jZXNzKAorICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKSB7CisKKyAgICAgICAgICAgIC8vIENoZWNrIGZvciBjYW5jZWxsZWQKKyAgICAgICAgQWN0aW9uRm9yd2FyZCBmb3J3YXJkID0gbWFwcGluZy5maW5kRm9yd2FyZChUb2tlbnMuQ0FOQ0VMKTsKKyAgICAgICAgaWYgKChudWxsIT1mb3J3YXJkKSAmJiAoaXNDYW5jZWxsZWQocmVxdWVzdCkpKSB7CisgICAgICAgICAgICAvLyBPdXIgZmluZEZhaWx1cmUgbG9va3MgZm9yIHRoaXMKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKFRva2Vucy5GQUlMVVJFLGZvcndhcmQpOworICAgICAgICAgICAvLyBQb3N0IGNhbmNlbCBlcnJvciBtZXNzYWdlCisgICAgICAgICAgIEFjdGlvbkVycm9ycyBlcnJvcnMgPSBnZXRFcnJvcnMocmVxdWVzdCx0cnVlKTsKKyAgICAgICAgICAgZXJyb3JzLmFkZChBY3Rpb25FcnJvcnMuR0xPQkFMX0VSUk9SLAorICAgICAgICAgICAgICAgIG5ldyBBY3Rpb25FcnJvcihUb2tlbnMuRVJST1JfQ0FOQ0VMKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIENoZWNrIGZvciBtaXNzaW5nIHRva2VuCisgICAgICAgIGZvcndhcmQgPSBtYXBwaW5nLmZpbmRGb3J3YXJkKFRva2Vucy5HRVRfVE9LRU4pOworICAgICAgICBpZiAoKG51bGwhPWZvcndhcmQpICYmICghaXNUb2tlblZhbGlkKHJlcXVlc3QpKSkgeworICAgICAgICAgICAgLy8gT3VyIGZpbmRGYWlsdXJlIGxvb2tzIGZvciB0aGlzCisgICAgICAgICAgICByZXF1ZXN0LnNldEF0dHJpYnV0ZShUb2tlbnMuRkFJTFVSRSxmb3J3YXJkKTsKKyAgICAgICAgICAgLy8gUG9zdCB0b2tlbiBlcnJvciBtZXNzYWdlCisgICAgICAgICAgIEFjdGlvbkVycm9ycyBlcnJvcnMgPSBnZXRFcnJvcnMocmVxdWVzdCx0cnVlKTsKKyAgICAgICAgICAgZXJyb3JzLmFkZChBY3Rpb25FcnJvcnMuR0xPQkFMX0VSUk9SLAorICAgICAgICAgICAgICAgIG5ldyBBY3Rpb25FcnJvcihUb2tlbnMuRVJST1JfVE9LRU4pKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAobnVsbCE9Zm9yd2FyZCkgeworICAgICAgICAgICAgLy8gcmVzZXQgdG8gZ3VhcmQgYWdhaW5zdCBkdXBsaWNhdGUgcmVxdWVzdAorICAgICAgICAgICAgcmVzZXRUb2tlbihyZXF1ZXN0KTsKKyAgICAgICAgfQorCisgICAgICAgICAgLy8gQ2hlY2sgZm9yIHNhdmUgdG9rZW4gZGlyZWN0aXZlIChkbyB0aGlzIGxhc3QpCisgICAgICAgIGZvcndhcmQgPSBtYXBwaW5nLmZpbmRGb3J3YXJkKFRva2Vucy5TRVRfVE9LRU4pOworICAgICAgICBpZiAobnVsbCE9Zm9yd2FyZCkgc2F2ZVRva2VuKHJlcXVlc3QpOworCisKKwl9IC8vIGVuZCBwcmVQcm9jZXNzCisKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYXBwcm9wcmlhdGUgQWN0aW9uRm9yd2FyZCBmb3IgdGhlIG5vbWluYWwsCisgICAgICogbm9uLWVycm9yIHN0YXRlLgorICAgICAqIEZpcnN0IGNoZWNrcyBmb3IgYSBTVUNDRVNTIEFjdGlvbkZvcndhcmQgc3RvcmVkIGluIHRoZSByZXF1ZXN0LgorICAgICAqIElmIGFuIG92ZXJyaWRlIGlzIG5vdCBmb3VuZCwgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZQorICAgICAqIHN1cGVyY2xhc3MgbWV0aG9kLgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSBmb3JtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KQorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgKiBAcGFyYW0gcmVzcG9uc2UgVGhlIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqIEByZXR1cm4gVGhlIEFjdGlvbkZvcndhcmQgcmVwcmVzZW50aW5nIFNVQ0NFU1MKKyAgICAgKiBvciBudWxsIGlmIGEgU1VDQ0VTUyBmb3J3YXJkIGhhcyBub3QgYmVlbiBzcGVjaWZpZWQuCisgICAgICovCisgICAgcHJvdGVjdGVkIEFjdGlvbkZvcndhcmQgZmluZFN1Y2Nlc3MoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpIHsKKworICAgICAgICAgICAgLy8gRGlkIHNvbWVvbmUgbGVhdmUgdXMgYSBmb3J3YXJkPworICAgICAgICBBY3Rpb25Gb3J3YXJkIGZvcndhcmQgPSAoQWN0aW9uRm9yd2FyZCkKKyAgICAgICAgICAgIHJlcXVlc3QuZ2V0QXR0cmlidXRlKFRva2Vucy5TVUNDRVNTKTsKKworICAgICAgICBpZiAobnVsbD09Zm9yd2FyZCkgeworICAgICAgICAgICAgICAgIC8vIE5vIG92ZXJyaWRlLCB1c2UgZGVmYXVsdAorICAgICAgICAgICAgZm9yd2FyZCA9IHN1cGVyLmZpbmRTdWNjZXNzKG1hcHBpbmcsZm9ybSxyZXF1ZXN0LHJlc3BvbnNlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBDbGVhciBhZHZpY2UgZnJvbSB0aGUgcmVxdWVzdAorICAgICAgICAgICAgcmVxdWVzdC5zZXRBdHRyaWJ1dGUoVG9rZW5zLlNVQ0NFU1MsbnVsbCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZm9yd2FyZDsKKworCX0gLy8gZW5kIGZpbmRTdWNjZXNzCisKKworICAgIC8qKgorICAgICAqIFRoZSBzZXQgb2YgYXJndW1lbnQgdHlwZSBjbGFzc2VzIGZvciB0aGUgcmVmbGVjdGVkIG1ldGhvZCBjYWxsLgorICAgICAqIFRoZXNlIGFyZSB0aGUgc2FtZSBmb3IgYWxsIGNhbGxzLCBzbyBjYWxjdWxhdGUgdGhlbSBvbmx5IG9uY2UuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgQ2xhc3MgdHlwZXNbXSA9IHsgT2JqZWN0LmNsYXNzIH07CisKKworICAgIC8qKgorICAgICAqIEVycm9yIGhhbmRsZXIuCisgICAgICogUG9zdHMgYSBtZXNzYWdlIHRlbXBsYXRlIGFuZCB0d28gcGFyYW1ldGVycyBpbiBhIEJpelJlc3BvbnNlLgorICAgICAqLworICAgIHByaXZhdGUgQml6UmVzcG9uc2UgcHJvY2Vzc0Vycm9yKAorICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisJCVN0cmluZyB0ZW1wbGF0ZSkgeworCisJCQkvLyBBbnkgb3RoZXIgd2F5IHRvIGRvIHRoaXM/CisJCUJpelJlc3BvbnNlIGJpelJlc3BvbnNlID0gCisJCQluZXcgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLnV0aWwuQml6UmVzcG9uc2VJbXBsKCk7IAorCQlNZXNzYWdlIG1lc3NhZ2UgPSBuZXcgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLnV0aWwuTWVzc2FnZUltcGwoCisJCQl0ZW1wbGF0ZSwKKwkJCW1hcHBpbmcuZ2V0UGF0aCgpLAorCQkJbWFwcGluZy5nZXRQYXJhbWV0ZXIoKQorCQkpOworCQkKKwkJYml6UmVzcG9uc2UuYWRkTWVzc2FnZShtZXNzYWdlKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIGJpelJlc3BvbnNlOworICAgIH0KKworCisgICAgLyoqCisgICAgICogSW52b2tlIGFuIGFsdGVybmF0ZSBtZXRob2Qgb24gQml6U2VydmljZS4KKyAgICAgKi8KKwlwcm90ZWN0ZWQgQml6UmVzcG9uc2UgcHJvY2Vzc0Rpc3BhdGNoKAorCQkJQWN0aW9uTWFwcGluZyBtYXBwaW5nLCAKKyAgICAgICAgICAgIEJpelNlcnZpY2UgYml6U2VydmljZSwKKyAgICAgICAgICAgIEJpelJlcXVlc3QgYml6UmVxdWVzdCwKKyAgICAgICAgICAgIFN0cmluZyBtZXRob2ROYW1lKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBNZXRob2QgbWV0aG9kID0gYml6U2VydmljZS5nZXRDbGFzcygpLmdldE1ldGhvZChtZXRob2ROYW1lLHR5cGVzKTsKKyAgICAgICAgT2JqZWN0IGFyZ3NbXSA9IHsgYml6UmVxdWVzdCB9OworCisJCUJpelJlc3BvbnNlIGJpelJlc3BvbnNlID0gbnVsbDsKKyAgICAgICAgdHJ5IHsKKworICAgICAgICAgICAgYml6UmVzcG9uc2UgPSAoQml6UmVzcG9uc2UpIG1ldGhvZC5pbnZva2UoYml6U2VydmljZSxhcmdzKTsKKworICAgICAgICB9CisKKyAgICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisKKyAgICAgICAgICAgICBiaXpSZXNwb25zZSA9IHByb2Nlc3NFcnJvcihtYXBwaW5nLFRva2Vucy5FUlJPUl9ESVNQQVRDSF9SRVRVUk4pOworICAgICAgICB9CisKKyAgICAgICAgY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZSkgeworCisgICAgICAgICAgICBiaXpSZXNwb25zZSA9IHByb2Nlc3NFcnJvcihtYXBwaW5nLFRva2Vucy5FUlJPUl9ESVNQQVRDSF9SRVRVUk4pOworICAgICAgICB9CisKKyAgICAgICAgY2F0Y2ggKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgeworCisgICAgICAgICAgICAvLyBSZXRocm93IHRoZSB0YXJnZXQgZXhjZXB0aW9uIGlmIHBvc3NpYmxlIHNvIHRoYXQgdGhlCisgICAgICAgICAgICAvLyBleGNlcHRpb24gaGFuZGxpbmcgbWFjaGluZXJ5IGNhbiBkZWFsIHdpdGggaXQKKyAgICAgICAgICAgIFRocm93YWJsZSB0ID0gZS5nZXRUYXJnZXRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIGlmICh0IGluc3RhbmNlb2YgRXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgKChFeGNlcHRpb24pIHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBiaXpSZXNwb25zZSA9IHByb2Nlc3NFcnJvcihtYXBwaW5nLFRva2Vucy5FUlJPUl9ESVNQQVRDSCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBiaXpSZXNwb25zZTsKKwl9CisKKworCisgICAgLyoqCisgICAgICogT2J0YWluIHRoZSBidXNpbmVzcyByZXF1ZXN0LCBpbnZva2UgdGhlIGJ1c2luZXNzIHNlcnZpY2UsCisgICAgICogYW5kIHByb2Nlc3MgdGhlIG91dGNvbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGZvcm0gVGhlIEFjdGlvbkZvcm0KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqIEBwYXJhbSBoZWxwZXJzIFRoZSBvYmplY3QgaW5zdGFudGlhdGVkIGZyb20gdHlwZSBnaXZlbiBhcyBwYXJhbWV0ZXIuCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gaWYgYSBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBleGVjdXRlTG9naWMoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UsCisgICAgICAgICAgICBPYmplY3RbXSBoZWxwZXJzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworCQlCaXpSZXNwb25zZSBiaXpSZXNwb25zZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisKKyAgICAgICAgICAgIC8vIENhc3Qgb3VyIGZvcm0gYmVhbjsgc25hZyBvdXIgcmVxdWVzdCBiZWFuCisgICAgICAgIAlCaXpGb3JtIGJpekZvcm0gPSAoQml6Rm9ybSkgZm9ybTsKKyAgICAgICAgCUJpelJlcXVlc3QgYml6UmVxdWVzdCA9IGJpekZvcm0uZ2V0Qml6UmVxdWVzdCgpOworCisgICAgICAgICAgICAvLyBNdW5nZSB0aGUgcGFyYW1ldGVyIHByb3BlcnR5CisJICAgICAgICBTdHJpbmdbXSB0b2tlbnMgPSB0b2tlbml6ZShtYXBwaW5nLmdldFBhcmFtZXRlcigpKTsKKworICAgICAgICAgICAgLy8gQ3JlYXRlIG91ciBidXNpbmVzcyBzZXJ2aWNlIGhlbHBlcgorCSAgICAgICAgT2JqZWN0IGhlbHBlciA9IGNyZWF0ZUhlbHBlck9iamVjdChyZXF1ZXN0LHRva2Vuc1swXSk7CisJICAgICAgICBCaXpTZXJ2aWNlIGJpelNlcnZpY2UgPSAoQml6U2VydmljZSkgaGVscGVyOworCisgICAgICAgICAgICAvLyBQcm9jZXNzIGJ1c2luZXNzIGxvZ2ljCisgICAgICAgICAgICBpZiAodG9rZW5zLmxlbmd0aD4xKSB7CisKKwkgICAgICAgICAgICAvLyBQYXNzIGFsb25nIHRoZSBoZWxwZXIncyBwYXJhbWV0ZXIsIGlmIGFueQorCSAgICAgICAgICAgIGlmICh0b2tlbnMubGVuZ3RoPjIpIHsKKwkJCQkJYml6UmVxdWVzdC5zZXRQYXJhbWV0ZXIodG9rZW5zWzJdKTsKKwkJCQl9CisgICAgICAgICAgICAgICAKKwkJCQliaXpSZXNwb25zZSA9IHByb2Nlc3NEaXNwYXRjaCgKKwkJCQkJbWFwcGluZywKKwkJCQkJYml6U2VydmljZSwKKwkJCQkJYml6UmVxdWVzdCwKKwkJCQkJdG9rZW5zWzFdKTsKKwkJCX0KKwkJCQorCQkJZWxzZSB7CisgICAgICAgICAgICAJYml6UmVzcG9uc2UgPSAoQml6UmVzcG9uc2UpIGJpelNlcnZpY2UucHJvY2VzcyhiaXpSZXF1ZXN0KTsKKwkJCX0KKwkJfQorCisJCS8vIEdyYWNlZnVsbHkgdHJhcCBhbnkga2lua3kgY2xhc3MtY2FzdCBvciBOUEUgdHlwZSBleGNlcHRpb25zIAorCQljYXRjaCAoVGhyb3dhYmxlIHQpIHsJCisJCQl0aHJvdyBuZXcgUGFyYW1ldGVyRXhjZXB0aW9uKHQpOworCQl9CisKKwkJLy8gQW5hbHl6ZSByZXN1bHQgb2YgYnVzaW5lc3MgbG9naWMKKwkJY2hlY2tPdXRjb21lKG1hcHBpbmcscmVxdWVzdCxiaXpSZXNwb25zZSk7ICAgICAgIAorCisgICAgfSAvLyBlbmQgZXhlY3V0ZUxvZ2ljCisKK30gLy8gZW5kIEJpekFjdGlvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0JpekZvcm0uamF2YSBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0JpekZvcm0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzc4NTAyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvQml6Rm9ybS5qYXZhCkBAIC0wLDAgKzEsMTE5IEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMjAwMS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAKKyAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQ7CisKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzOworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLnV0aWwuQml6UmVxdWVzdDsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQudXRpbC5NZXNzYWdlczsKKworCisvKioKKyAqIEEgQml6Rm9ybSBjcmVhdGVzIGFuZCB2YWxpZGF0ZXMgYSBidXNpbmVzcyByZXF1ZXN0IAorICogWzxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5zY2FmZm9sZC5CaXpSZXF1ZXN0PC9jb2RlPl0KKyAqIGFzIHBhcnQgb2YgaXRzIG93biB2YWxpZGF0aW9uIHJvdXRpbmUuCisgKiBBIEJpekZvcm0gaXMgdHlwaWNhbGx5IHByb2Nlc2VkIGJ5IGEgYnVzaW5lc3MgYWN0aW9uIAorICogWzxjb2RlPm9yZy5hcGFjaGUuY29tbW9ucy5zY2FmZm9sZC5CaXpBY3Rpb248L2NvZGU+XQorICogd2hpY2ggcGFzc2VzIHRoZSBidXNpbmVzcyByZXF1ZXN0IHRvIGEgYnVzaW5lc3Mgc2VydmljZSAKKyAqIFs8Y29kZT5vcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQuQml6U2VydmljZTwvY29kZT5dLgorICogCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGludGVyZmFjZSBCaXpGb3JtIHsKKwkKKyAgICAvKioKKyAgICAgKiBUaGUgc2Vzc2lvbiBhdHRyaWJ1dGUga2V5IGZvciBvdXIgdXNlciBwcm9maWxlIGJlYW4gWyJVU0VSX1BST0ZJTEUiXS4KKyAgICAgKiAoU3VnZ2VzdGlvbiBvbmx5LCBtYXkgYmUgb3ZlcnJpZGRlbiBieSBwcmVzZW50YXRpb24gZnJhbWV3b3JrCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgVVNFUl9QUk9GSUxFX0tFWSA9ICJVU0VSX1BST0ZJTEUiOworCisgICAgLyoqCisgICAgICogUmV0dXJuIG91ciBiaXpSZXF1ZXN0IHByb3BlcnR5LgorICAgICAqLworICAgIHB1YmxpYyBCaXpSZXF1ZXN0IGdldEJpelJlcXVlc3QoKTsKKyAgICAKKyAgICAvKioKKyAgICAgKiBTZXQgb3VyIGJpelJlcXVlc3QgcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Qml6UmVxdWVzdChCaXpSZXF1ZXN0IGJpelJlcXVlc3QpOworCisgICAgLyoqCisgICAgICogRmFjdG9yeSBtZXRob2QgdG8gY3JlYXRlIGJ1c2luZXNzIHJlcXVlc3Qgb2JqZWN0LgorICAgICAqLworICAgIHB1YmxpYyBCaXpSZXF1ZXN0IGNyZWF0ZUJpelJlcXVlc3QoU3RyaW5nIGJpelR5cGUpOworIAorICAKKyAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVXNlciBQcm9maWxlCisKKyAgIC8qKgorICAgICAqIFJldHVybiBvdXIgdXNlclByb2ZpbGUgcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRVc2VyUHJvZmlsZSgpOworICAgIAorICAgIC8qKgorICAgICAqIFNldCBvdXIgdXNlclByb2ZpbGUgcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VXNlclByb2ZpbGUoT2JqZWN0IHVzZXJQcm9maWxlKTsKKworCS8qKgorICAgICAqIFJldHVybnMgbmFtZSBvZiByZXN1bHQgc2VydmVyIHRvIGJlIHVzZWQgYnkgdGhpcyBBY3Rpb24sCisJICogW0JpelJlcXVlc3QuVVNFUl9QUk9GSUxFX0tFWV0KKwkgKi8KKwlwdWJsaWMgU3RyaW5nIGdldFVzZXJQcm9maWxlTmFtZSgpOworCisgICAgLyoqCisgICAgICogUmV0cmlldmUgZnJvbSBzZXNzaW9uIHVuZGVyIGtub3duIGtleQorICAgICAqICg8Y29kZT5Qcm9jZXNzQmVhbi5VU0VSX1BST0ZJTEVfS0VZPC9jb2RlPikuCisgICAgICogT3ZlcnJpZGUgdGhpcyBhcHByb2FjaCB0byBpbXBsZW1lbnQgYW5vdGhlciBtZXRob2QgKGUuZyBjb29raWVzKS4KKyAgICAgKiBBbHNvIHJldmlzZSBVcGRhdGVQcm9maWxlIGFjdGlvbi1tYXBwaW5nIHRvIHN0b3JlIGNoYW5nZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXRVc2VyUHJvZmlsZShIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCk7CisgICAgCisgICAgLyoqCisgICAgICogUmV0dXJuIG91ciByZW1vdGVTZXJ2ZXIgcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRSZW1vdGVTZXJ2ZXIoKTsKKworICAgIC8qKgorICAgICAqIFNldCBvdXIgcmVtb3RlU2VydmVyIHByb3BlcnR5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJlbW90ZVNlcnZlcihPYmplY3QgcmVtb3RlU2VydmVyKTsKKworICAgIC8qKgorICAgICAqIENoZWNrcyBhcHBsaWNhdGlvbiBzY29wZSBmb3IgdGhlIHJlbW90ZSBzZXJ2ZXIgb2JqZWN0CisgICAgICogc3BlY2lmaWVkIGJ5IDxjb2RlPmdldFJlbW90ZVNlcnZlck5hbWU8L2NvZGU+CisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVzZXRSZW1vdGVTZXJ2ZXIoSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QpOworIAorICAgIC8qKgorICAgICAqIENvcHkgbWVzc2FnZXMgZnJvbSBidXNpbmVzcyB0aWVyIG1lc3NhZ2UgY2xhc3MgdG8gcHJlc2VudGF0aW9uIAorICAgICAqIHRpZXIgZXJyb3IgY2xhc3MuCisgICAgICogOlRPRE86IFJlZmFjdG9yIG9uY2UgZXZlcnl0aGluZyBpcyBiYXNlZCBvbiBhIHJvb3QgQ29tbW9ucyAKKyAgICAgKiBNZXNzYWdlcyBjbGFzcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRNZXNzYWdlcyhBY3Rpb25FcnJvcnMgZXJyb3JzLCBNZXNzYWdlcyBtZXNzYWdlcyk7CisgICAgICAKKyAKK30gLy8gZW5kIEJpekZvcm0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9CaXpGb3JtQmVhbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvQml6Rm9ybUJlYW4uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hN2Y0YWIzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvQml6Rm9ybUJlYW4uamF2YQpAQCAtMCwwICsxLDQ3IEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMjAwMS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAKKyAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQ7CisKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtQmVhbjsKKworLyoqCisgKiBBbiA8Y29kZT5BY3Rpb25Gb3JtQmVhbjwvY29kZT4gZm9yIHNwZWNpZnlpbmcgYSA8Y29kZT5CaXpGb3JtPC9jb2RlPi4KKyAqCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGNsYXNzIEJpekZvcm1CZWFuIGV4dGVuZHMgQWN0aW9uRm9ybUJlYW4geworCisgICAgLyoqCisgICAgICogVGhlIGJ1c2luZXNzIHJlcXVlc3QgdHlwZSB0byBjcmVhdGUsIHBvcHVsYXRlLCBhbmQgdmFsaWRhdGUuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgYml6VHlwZSA9IG51bGw7CisKKwkvLyBzZWUgaW50ZXJmYWNlIGZvciBKYXZhZG9jCisgICAgcHVibGljIFN0cmluZyBnZXRCaXpUeXBlKCkgeworICAgICAgICByZXR1cm4gKHRoaXMuYml6VHlwZSk7CisgICAgfQorCisJLy8gc2VlIGludGVyZmFjZSBmb3IgSmF2YWRvYworICAgIHB1YmxpYyB2b2lkIHNldEJpelR5cGUoU3RyaW5nIGJpelR5cGUpIHsKKyAgICAgICAgdGhpcy5iaXpUeXBlID0gYml6VHlwZTsKKyAgICB9CisKK30gLy8gZW5kIEJpekZvcm1CZWFuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvQml6Rm9ybUltcGwuamF2YSBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0JpekZvcm1JbXBsLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUzNWZkZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0JpekZvcm1JbXBsLmphdmEKQEAgLTAsMCArMSwyMjUgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAyMDAxLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIAorICAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQ7CisKKworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5CZWFuVXRpbHM7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcnM7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQubGFuZy5Ub2tlbnM7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLnV0aWwuQml6UmVxdWVzdDsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQudXRpbC5NZXNzYWdlSW1wbDsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQudXRpbC5NZXNzYWdlczsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQudXRpbC5NZXNzYWdlc0ltcGw7CisKKworLyoqCisgKiBDb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBhIEJpekZvcm0uCisgKiBUbyB1c2UgdGhpcyBvYmplY3QsIHlvdSBtdXN0IHNwZWNpZnkgdGhlIEJpekZvcm1CZWFuIG9yIGEgc3VwZXJjbGFzcworICogYXMgdGhlIGRlZmF1bHQgQWN0aW9uRm9ybUJlYW4gdHlwZSBmb3IgdGhlIEFjdGlvblNlcnZsZXQgY29udHJvbGxlci4KKyAqCisgKiA6RklYTUU6IFRoaXMgaW1wbGVtZW50YXRpb24gY2FuIG9ubHkgYmUgdXNlZCB3aXRoIHRoZSBkZWZhdWx0IG1vZHVsZS4KKyAqCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGNsYXNzIEJpekZvcm1JbXBsIGV4dGVuZHMgQmFzZUZvcm0gaW1wbGVtZW50cyBCaXpGb3JtIHsKKyAgICAKKworIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBCdXNpbmVzcyBSZXF1ZXN0CisKKyAgICAvKioKKyAgICAgKiBUaGUgYnVzaW5lc3MgcmVxdWVzdCBvYmplY3QuCisgICAgICovCisgICAgcHJpdmF0ZSBCaXpSZXF1ZXN0IGJpelJlcXVlc3QgPSBudWxsOworCisgICAgLy8gc2VlIGludGVyZmFjZSBmb3IgSmF2YWRvYworICAgIHB1YmxpYyBCaXpSZXF1ZXN0IGdldEJpelJlcXVlc3QoKSB7CisgICAgICAgIHJldHVybiAodGhpcy5iaXpSZXF1ZXN0KTsKKyAgICB9CisKKyAgICAvLyBzZWUgaW50ZXJmYWNlIGZvciBKYXZhZG9jCisgICAgcHVibGljIHZvaWQgc2V0Qml6UmVxdWVzdChCaXpSZXF1ZXN0IGJpelJlcXVlc3QpIHsKKyAgICAgICAgdGhpcy5iaXpSZXF1ZXN0ID0gYml6UmVxdWVzdDsKKyAgICB9CisKKyAgICAvLyBzZWUgaW50ZXJmYWNlIGZvciBKYXZhZG9jCisgICAgcHVibGljIEJpelJlcXVlc3QgY3JlYXRlQml6UmVxdWVzdChTdHJpbmcgYml6VHlwZSkgeworICAgICAgIAorICAgICAgIEJpelJlcXVlc3QgYml6UmVxdWVzdCA9IChCaXpSZXF1ZXN0KSBjcmVhdGVPYmplY3QoYml6VHlwZSkgOworCisgICAgICAgcmV0dXJuIGJpelJlcXVlc3Q7ICAgCisgICAgfQorIAorIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBVc2VyIFByb2ZpbGUKKworICAgIC8qKgorICAgICAqIFRoZSBidXNpbmVzcyByZXF1ZXN0IHR5cGUgdG8gY3JlYXRlLCBwb3B1bGF0ZSwgYW5kIHZhbGlkYXRlLgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0IHVzZXJQcm9maWxlID0gbnVsbDsKKworICAgIC8vIHNlZSBpbnRlcmZhY2UgZm9yIEphdmFkb2MKKyAgICBwdWJsaWMgT2JqZWN0IGdldFVzZXJQcm9maWxlKCkgeworICAgICAgICByZXR1cm4gKHRoaXMudXNlclByb2ZpbGUpOworICAgIH0KKworICAgIC8vIHNlZSBpbnRlcmZhY2UgZm9yIEphdmFkb2MKKyAgICBwdWJsaWMgdm9pZCBzZXRVc2VyUHJvZmlsZShPYmplY3QgdXNlclByb2ZpbGUpIHsKKyAgICAgICAgdGhpcy51c2VyUHJvZmlsZSA9IHVzZXJQcm9maWxlOworICAgIH0KKworICAgIC8vIHNlZSBpbnRlcmZhY2UgZm9yIEphdmFkb2MKKyAgICBwdWJsaWMgU3RyaW5nIGdldFVzZXJQcm9maWxlTmFtZSgpIHsgICAgCisgICAgICAgICByZXR1cm4gVVNFUl9QUk9GSUxFX0tFWTsgICAgCisgICAgfQorCisgICAgLy8gc2VlIGludGVyZmFjZSBmb3IgSmF2YWRvYworICAgIHB1YmxpYyB2b2lkIHJlc2V0VXNlclByb2ZpbGUoSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QpIHsKKworICAgICAgICBzZXRVc2VyUHJvZmlsZSgKKyAgICAgICAgICAgIHJlcXVlc3QuZ2V0U2Vzc2lvbigpLmdldEF0dHJpYnV0ZShnZXRVc2VyUHJvZmlsZU5hbWUoKSkKKyAgICAgICAgKTsKKworICAgIH0gCisKKyAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVtb3RlIFNlcnZlcgorICAKKyAgICAvKioKKyAgICAgKiBUaGUgYnVzaW5lc3MgcmVxdWVzdCB0eXBlIHRvIGNyZWF0ZSwgcG9wdWxhdGUsIGFuZCB2YWxpZGF0ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIE9iamVjdCByZW1vdGVTZXJ2ZXIgPSBudWxsOworCisgICAgLy8gc2VlIGludGVyZmFjZSBmb3IgSmF2YWRvYworICAgIHB1YmxpYyBPYmplY3QgZ2V0UmVtb3RlU2VydmVyKCkgeworICAgICAgICByZXR1cm4gKHRoaXMucmVtb3RlU2VydmVyKTsKKyAgICB9CisKKyAgICAvLyBzZWUgaW50ZXJmYWNlIGZvciBKYXZhZG9jCisgICAgcHVibGljIHZvaWQgc2V0UmVtb3RlU2VydmVyKE9iamVjdCByZW1vdGVTZXJ2ZXIpIHsKKyAgICAgICAgdGhpcy5yZW1vdGVTZXJ2ZXIgPSByZW1vdGVTZXJ2ZXI7CisgICAgfQorCisgICAgLy8gc2VlIGludGVyZmFjZSBmb3IgSmF2YWRvYworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UmVtb3RlU2VydmVyTmFtZSgpIHsKKyAgICAgICAgIHJldHVybiBCaXpSZXF1ZXN0LlJFTU9URV9TRVJWRVJfS0VZOworICAgICB9CisgCisgICAgLy8gc2VlIGludGVyZmFjZSBmb3IgSmF2YWRvYworICAgIHB1YmxpYyB2b2lkIHJlc2V0UmVtb3RlU2VydmVyKEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0KSB7CisgCisgICAgICAgIHNldFJlbW90ZVNlcnZlcihzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkuZ2V0QXR0cmlidXRlKAorICAgICAgICAgICAgZ2V0UmVtb3RlU2VydmVyTmFtZSgpKSk7CisgCisgICAgfQorIAorIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisgICAgLy8gc2VlIGludGVyZmFjZSBmb3IgSmF2YWRvYworICAgcHVibGljIHZvaWQgYWRkTWVzc2FnZXMoQWN0aW9uRXJyb3JzIGVycm9ycywgTWVzc2FnZXMgbWVzc2FnZXMpIHsKKyAgICAgICAKKyAgICAgICAvLzpUT0RPOiBhZGQgZnVuY3Rpb25hbGl0eQorICAgICAgIAorICAgfQorICAgCisgICAgLyoqCisgICAgICogQ2FsbCBzdXBlcmNsYXNzIHJlc2V0IGFuZCBvdGhlciByZXNldCogbWV0aG9kcyBpbiB0aGlzIGNsYXNzLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlc2V0KEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QpIHsKKyAKKyAgICAgICAgc3VwZXIucmVzZXQobWFwcGluZyxyZXF1ZXN0KTsgCisgICAgICAgIAorICAgICAgICBpZiAoaXNNdXRhYmxlKCkpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmVzZXRVc2VyUHJvZmlsZShyZXF1ZXN0KTsKKyAgICAgICAgICAgIHJlc2V0UmVtb3RlU2VydmVyKHJlcXVlc3QpOworICAgICAgICB9ICAgCisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsbCBzdXBlcmNsYXNzIHZhbGlkYXRlLgorICAgICAqIElmIHJldHVybnMgbnVsbCwgcmV0dXJuIGFuIGVtcHR5IEFjdGlvbkVycm9ycyBmb3IgdGhlCisgICAgICogYmVuZWZpdCBvZiBvdXIgc3ViY2xhc3Nlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgQWN0aW9uRXJyb3JzIHZhbGlkYXRlKEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QpIHsKKworICAgICAgICAvLyBGaXJzdCB2YWxpZGF0ZSBvdXJzZWxmCisgICAgICAgIEFjdGlvbkVycm9ycyBlcnJvcnMgPSBzdXBlci52YWxpZGF0ZShtYXBwaW5nLHJlcXVlc3QpOworICAgICAgICBpZiAobnVsbD09ZXJyb3JzKSBlcnJvcnMgPSBuZXcgQWN0aW9uRXJyb3JzKCk7CisgICAgICAgIAorICAgICAgICAvLyBUaGVuIHZhbGlkYXRlIG91ciBidXNpbmVzcyByZXF1ZXN0CisgICAgICAgIGlmICgoaXNNdXRhYmxlKCkpICYmIChlcnJvcnMuZW1wdHkoKSkpIHsKKwkJCQorICAgICAgICAgICAgLy8gRmluZCBvdXIgYnVzaW5lc3MgcmVxdWVzdCB0eXBlCisgICAgICAgIAlCaXpGb3JtQmVhbiBiaXpGb3JtQmVhbiA9IChCaXpGb3JtQmVhbikKKyAgICAgICAgICAgIAltYXBwaW5nLmdldE1hcHBpbmdzKCkuZ2V0U2VydmxldCgpLmZpbmRGb3JtQmVhbihtYXBwaW5nLmdldE5hbWUoKSk7CisgICAgICAgICAgICBTdHJpbmcgYml6VHlwZSA9IGJpekZvcm1CZWFuLmdldEJpelR5cGUoKTsKKworICAgICAgICAgICAgaWYgKChlcnJvcnMuZW1wdHkoKSkgJiYgKG51bGwhPWJpelR5cGUpKSB7CisKKyAgICAgICAgICAgICAgICAvLyBHZW5lcmF0ZSBhbmQgcG9wdWxhdGUgb3VyIGJ1c2luZXNzIHJlcXVlc3QKKyAgICAgICAgICAgICAgICBNZXNzYWdlcyBtZXNzYWdlcyA9IG5ldyBNZXNzYWdlc0ltcGwoKTsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgIAorICAgICAgICAgICAgICAgICAgICBCaXpSZXF1ZXN0IGJpelJlcXVlc3QgPSBjcmVhdGVCaXpSZXF1ZXN0KGJpelR5cGUpOworICAgICAgICAgICAgICAgICAgICAvLyBQb3B1bGF0ZSB0aGUgYnVzaW5lc3MgcmVxdWVzdCB3aXRoIG91cnNlbHZlcworICAgICAgICAgICAgICAgICAgICAvLyBtZXJnZWQgd2l0aCBhbnkgdXNlciBwcm9maWxlIHByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgICAgTWFwIHByb3BlcnRpZXMgPSBtZXJnZShnZXRVc2VyUHJvZmlsZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgQmVhblV0aWxzLmNvcHlQcm9wZXJ0aWVzKGJpelJlcXVlc3QscHJvcGVydGllcyk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChUaHJvd2FibGUgdCkgeyAKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmFkZChuZXcgTWVzc2FnZUltcGwoCisgICAgICAgICAgICAgICAgICAgICAgICBUb2tlbnMuRVJST1JfR0VORVJBTCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHQudG9TdHJpbmcoKQorICAgICAgICAgICAgICAgICAgICApKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gVmFsaWRhdGUgb3VyIGJ1c2luZXNzIHJlcXVlc3QKKyAgICAgICAgICAgICAgICBpZiAobWVzc2FnZXMuaXNFbXB0eSgpKSB7IAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5hZGQoCisgICAgICAgICAgICAgICAgICAgICAgICBiaXpSZXF1ZXN0LnZhbGlkYXRlKG1hcHBpbmcuZ2V0QXR0cmlidXRlKCkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2VzLmlzRW1wdHkoKSkgeyAKKworICAgICAgICAgICAgICAgICAgICBzZXRCaXpSZXF1ZXN0KGJpelJlcXVlc3QpOyAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgICAgICAgICAgc2V0Qml6UmVxdWVzdChudWxsKTsKKworICAgICAgICAgICAgICAgICAgICBhZGRNZXNzYWdlcyhlcnJvcnMsbWVzc2FnZXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0gLy8gZW5kIGVycm9ycyBlbXB0eQorICAgICAgICAKKyAgICAgICAgfSAvLyBlbmQgaXNNdXRhYmxlCisgICAgICAgIAorICAgICAgICByZXR1cm4gZXJyb3JzOworICAgICAgICAgCisgICAgIH0KKyAKK30gLy8gZW5kIEJpekZvcm1JbXBsClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvQ29udGludWVBY3Rpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0NvbnRpbnVlQWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWMxMGMwZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0NvbnRpbnVlQWN0aW9uLmphdmEKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDIwMDEtMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgCisgIAorcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5zY2FmZm9sZDsKKworCitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLmxhbmcuVG9rZW5zOworCisKKy8qKgorICogU3RhbmRhcmQgQWN0aW9uIHRvIGZvcndhcmQgY29udHJvbCB0byBjb250aW51ZS4KKyAqIFVzZWZ1bCBmb3IgcHJvdG90eXBpbmcgZmxvdyBkdXJpbmcgZGV2ZWxvcG1lbnQsCisgKiBhbmQgZm9yIGNyZWF0aW5nIGJsYW5rIGZvcm1zIGZvciBuZXcgaW5wdXQuCisgKiA8cD4KKyAqIEVxdWl2YWxlbnQgdG8gb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkZvcndhcmRBY3Rpb24KKyAqIGJ1dCB1c2VzIEFjdGlvbkZvcndhcmQgc2VtYW50aWNzLgorICogPHA+CisgKiBUaGlzIGNsYXNzIGV4dGVuZHMgQmFzZUFjdGlvbiB0byBwcm92aWRlCisgKiBjcm9zcy1jb21wYXRpYmlsaXR5IHdpdGggU3RydXRzIDEuMSBhbmQgMS4wCisgKgorICogQHZlcnNpb24gJFJldiQgJERhdGUkCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBDb250aW51ZUFjdGlvbiBleHRlbmRzIEJhc2VBY3Rpb24geworCisgICAgLyoqCisgICAgICogRm9yd2FyZCB0byB0aGUgImNvbnRpbnVlIiBBY3Rpb25Gb3J3YXJkLgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSBmb3JtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KQorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgKiBAcGFyYW0gcmVzcG9uc2UgVGhlIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqLworICAgIHByb3RlY3RlZCBBY3Rpb25Gb3J3YXJkIGZpbmRTdWNjZXNzKAorICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKSB7CisKKyAgICAgICAgcmV0dXJuIG1hcHBpbmcuZmluZEZvcndhcmQoVG9rZW5zLkNPTlRJTlVFKTsKKworICAgIH0KKworfSAvLyBlbmQgQ29udGludWVBY3Rpb24KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9FeGlzdHNBdHRyaWJ1dGVBY3Rpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0V4aXN0c0F0dHJpYnV0ZUFjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4NDE0MDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9FeGlzdHNBdHRyaWJ1dGVBY3Rpb24uamF2YQpAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDIwMDEtMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgCisgIAorcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5zY2FmZm9sZDsKKworCitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLmxhbmcuVG9rZW5zOworCisvKioKKyAqIFJlbW92ZSBhbiBvYmplY3QgZnJvbSB0aGUgdXNlcidzIHNlc3Npb24uCisgKiBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIGlzIHBhc3NlZCB2aWEgdGhlIHBhcmFtZXRlciBwcm9wZXJ0eS4KKyAqCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEV4aXN0c0F0dHJpYnV0ZUFjdGlvbiBleHRlbmRzIEJhc2VBY3Rpb24geworCisgICAgLyoqCisgICAgICogRmluZCAic3VjY2VzcyIgaWYgYXR0cmlidXRlIGV4aXN0cywgb3IgImZhaWx1cmUiIGlmIG5vdC4KKyAgICAgKgorICAgICAqIFRoZSBzZXJ2bGV0IGNvbnRleHQgYW5kIGF0dHJpYnV0ZXMgYXJlIHNwZWNpZmllZCBhcyB0aGUKKyAgICAgKiBwYXJhbWV0ZXJzIHByb3BlcnR5LCBzZXBlcmF0ZWQgYnkgc2VtaS1jb2xvbnMKKyAgICAgKiBbcGFyYW1ldGVyPSJhcHBsaWNhdGlvbjtIT1VSU10uCisgICAgICogbm9uLWVycm9yIHN0YXRlLgorICAgICAqCisgICAgICogVG8gaW5kaWNhdGV0aGF0IGFsbCBzY29wZXMgYXJlIHRvIGJlIGNoZWNrZWQsCisgICAgICogc3BlY2lmeSBhbiBhc3RlcmlzayBpbnN0ZWFkIG9mIHRoZSBzY29wZSBuYW1lCisgICAgICogW3BhcmFtZXRlcj0iKjtIT1VSU10uCisgICAgICoKKyAgICAgKiBJZiBib3RoIHBhcmFtZXRlcnMgYXJlIG5vdCBnaXZlbiwgYW4gZXJyb3IgaXMgc2V0LgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSBmb3JtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdAorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgKiBAcGFyYW0gcmVzcG9uc2UgVGhlIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqIEB0b2RvIEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBhdHRyaWJ1dGVzCisgICAgICovCisgICBwcm90ZWN0ZWQgQWN0aW9uRm9yd2FyZCBmaW5kU3VjY2VzcygKKyAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkgeworCisgICAgICAgIFN0cmluZ1tdIHBhcmFtZXRlcnMgPSB0b2tlbml6ZShtYXBwaW5nLmdldFBhcmFtZXRlcigpKTsKKworICAgICAgICAgICAgLy8gSWYgbm90IDIrIHBhcmFtZXRlcnMsIGJhaWwKKyAgICAgICAgaWYgKDI+cGFyYW1ldGVycy5sZW5ndGgpIHsKKyAgICAgICAgICAgIEFjdGlvbkVycm9ycyBlcnJvcnMgPSBuZXcgQWN0aW9uRXJyb3JzKCk7CisgICAgICAgICAgICBlcnJvcnMuYWRkKEFjdGlvbkVycm9ycy5HTE9CQUxfRVJST1IsCisgICAgICAgICAgICAgICAgbmV3IEFjdGlvbkVycm9yKFRva2Vucy5QUk9DRVNTX01JU1NJTkdfUEFSQU1FVEVSKSk7CisgICAgICAgICAgICBzYXZlRXJyb3JzKHJlcXVlc3QsZXJyb3JzKTsKKyAgICAgICAgICAgIHJldHVybiBtYXBwaW5nLmZpbmRGb3J3YXJkKFRva2Vucy5GQUlMVVJFKTsKKyAgICAgICAgfQorCisgICAgICAgIFN0cmluZyBzY29wZSA9IHBhcmFtZXRlcnNbMF07CisgICAgICAgIE9iamVjdCBiZWFuID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSBwYXJhbWV0ZXJzWzFdOworCisgICAgICAgIC8vIDpUT0RPOiBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgYXR0cmlidXRlcworCisgICAgICAgIGJvb2xlYW4gYW55ID0gKCIqIi5lcXVhbHMobmFtZSkpOworCisgICAgICAgIGlmIChhbnkpIHsKKworICAgICAgICAgICAgYmVhbiA9IHJlcXVlc3QuZ2V0QXR0cmlidXRlKG5hbWUpOworCisgICAgICAgICAgICBpZiAobnVsbD09YmVhbikKKyAgICAgICAgICAgICAgICBiZWFuID0gcmVxdWVzdC5nZXRTZXNzaW9uKCkuZ2V0QXR0cmlidXRlKG5hbWUpOworCisgICAgICAgICAgICBpZiAobnVsbD09YmVhbikKKyAgICAgICAgICAgICAgICBiZWFuID0gc2VydmxldC5nZXRTZXJ2bGV0Q29udGV4dCgpLmdldEF0dHJpYnV0ZShuYW1lKTsKKworICAgICAgICB9IC8vIGVuZCBhbnkKKworICAgICAgICBlbHNlIHsKKworICAgICAgICAgICAgaWYgKFRva2Vucy5SRVFVRVNULmVxdWFscyhzY29wZSkpCisgICAgICAgICAgICAgICAgYmVhbiA9IHJlcXVlc3QuZ2V0QXR0cmlidXRlKG5hbWUpOworCisgICAgICAgICAgICBpZiAoVG9rZW5zLlNFU1NJT04uZXF1YWxzKHNjb3BlKSkKKyAgICAgICAgICAgICAgICBiZWFuID0gcmVxdWVzdC5nZXRTZXNzaW9uKCkuZ2V0QXR0cmlidXRlKG5hbWUpOworCisgICAgICAgICAgICBpZiAoVG9rZW5zLkFQUExJQ0FUSU9OLmVxdWFscyhzY29wZSkpCisgICAgICAgICAgICAgICAgYmVhbiA9IHNlcnZsZXQuZ2V0U2VydmxldENvbnRleHQoKS5nZXRBdHRyaWJ1dGUobmFtZSk7CisKKyAgICAgICAgfSAvLyBlbmQgIWFueQorCisKKyAgICAgICAgaWYgKG51bGw9PWJlYW4pIHsKKworICAgICAgICAgICAgcmV0dXJuIG1hcHBpbmcuZmluZEZvcndhcmQoVG9rZW5zLkZBSUxVUkUpOworCisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbWFwcGluZy5maW5kRm9yd2FyZChUb2tlbnMuU1VDQ0VTUyk7CisgICAgfQorCisKK30gLy8gZW5kIEV4aXN0c0F0dHJpYnV0ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL0ZpbmRGb3J3YXJkQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9GaW5kRm9yd2FyZEFjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3OGE2ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9GaW5kRm9yd2FyZEFjdGlvbi5qYXZhCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAyMDAxLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIAorICAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQ7CisKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5zY2FmZm9sZC5sYW5nLlRva2VuczsKKworCisvKioKKyAqIFNjYW4gcmVxdWVzdCBwYXJhbWV0ZXJzIGZvciB0aGUgbmFtZSBvZiBhIGxvY2FsIG9yIGdsb2JhbAorICogZm9yd2FyZC4gSWYgb25lIGlzIGZvdW5kLCB1c2UgaXQuIElmIG5vdCwgcmV0dXJuIG51bGwuCisgKiA8cD4KKyAqIFRoaXMgY2xhc3MgZXh0ZW5kcyBCYXNlQWN0aW9uIHRvIHByb3ZpZGUKKyAqIGNyb3NzLWNvbXBhdGliaWxpdHkgd2l0aCBTdHJ1dHMgMS4xIGFuZCAxLjAKKyAqCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIEZpbmRGb3J3YXJkQWN0aW9uIGV4dGVuZHMgQmFzZUFjdGlvbiB7CisKKyAgICAvKioKKyAgICAgKiBTY2FuIHJlcXVlc3QgcGFyYW1ldGVycyBmb3IgdGhlIG5hbWUgb2YgYSBsb2NhbCBvciBnbG9iYWwKKyAgICAgKiBmb3J3YXJkLiBJZiBvbmUgaXMgZm91bmQsIHVzZSBpdC4gSWYgbm90LCByZXR1cm4gbnVsbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gZm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSkKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQWN0aW9uRm9yd2FyZCBmaW5kU3VjY2VzcygKKyAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkgeworCisgICAgICAgIFN0cmluZyBmb3J3YXJkc1tdID0gbWFwcGluZy5maW5kRm9yd2FyZHMoKTsKKworICAgICAgICAvKiAtLSBub24tZGVwcmVjYXRlZCB2ZXJzaW9uIGZvciAxLjEKKyAgICAgICAgQXBwbGljYXRpb25Db25maWcgY29uZmlnID0gKEFwcGxpY2F0aW9uQ29uZmlnKQorICAgICAgICAgICAgcmVxdWVzdC5nZXRBdHRyaWJ1dGUoQWN0aW9uLkFQUExJQ0FUSU9OX0tFWSk7CisgICAgICAgIEZvcndhcmRDb25maWcgZm9yd2FyZHNbXSA9IGNvbmZpZy5maW5kRm9yd2FyZENvbmZpZ3MoKTsKKyAgICAgICAgKi8KKworICAgICAgICBmb3IgKGludCBpPTA7IGk8Zm9yd2FyZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChyZXF1ZXN0LmdldFBhcmFtZXRlcihmb3J3YXJkc1tpXSkhPW51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gUmV0dXJuIHRoZSByZXF1aXJlZCBBY3Rpb25Gb3J3YXJkIGluc3RhbmNlCisgICAgICAgICAgICAgICAgIHJldHVybiBtYXBwaW5nLmZpbmRGb3J3YXJkKGZvcndhcmRzW2ldKTsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICB9CisKK30gLy8gZW5kIEZpbmRGb3J3YXJkQWN0aW9uClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvSW1hZ2VCdXR0b25CZWFuLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9JbWFnZUJ1dHRvbkJlYW4uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZDJlOTMyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvSW1hZ2VCdXR0b25CZWFuLmphdmEKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDIwMDEtMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgCisgIAorcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5zY2FmZm9sZDsKKworCisvKioKKyAqIEdlbmVyaWMgYmVhbiB0byB1c2Ugd2l0aCBpbWFnZSBidXR0b25zLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgSW1hZ2VCdXR0b25CZWFuIGV4dGVuZHMgT2JqZWN0IHsKKworICAgIHByaXZhdGUgU3RyaW5nIHggPSBudWxsOworICAgIHByaXZhdGUgU3RyaW5nIHkgPSBudWxsOworCisgICAgcHVibGljIFN0cmluZyBnZXRYKCkgeworICAgICAgICByZXR1cm4gKHRoaXMueCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0WChTdHJpbmcgeCkgeworICAgICAgICB0aGlzLnggPSB4OworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0WSgpIHsKKyAgICAgICAgIHJldHVybiAodGhpcy55KTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRZKFN0cmluZyB5KSB7CisgICAgICAgIHRoaXMueSA9IHk7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNTZWxlY3RlZCgpIHsKKyAgICAgICAgICByZXR1cm4gKCh4IT1udWxsKSB8fCAoeSE9bnVsbCkpOworICAgIH0KKworfSAvLyBlbmQgSW1hZ2VCdXR0b25CZWFuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvTWVudUZvcm0uamF2YSBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL01lbnVGb3JtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTJiZTMwNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL01lbnVGb3JtLmphdmEKQEAgLTAsMCArMSwyMzEgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAyMDAxLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIAorICAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQ7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKKworCisvKioKKyAqIEdlbmVyaWMgcHJvcGVydGllcyBmb3IgdXNlIHdpdGggbWVudSBpdGVtcy4KKyAqLworcHVibGljIGNsYXNzIE1lbnVGb3JtIGV4dGVuZHMgQWN0aW9uRm9ybSB7CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm9wZXJ0aWVzCisKKworICAgIC8qKgorICAgICAqIEEgZ2VuZXJpYyBuYW1lIGZpZWxkLAorICAgICAqIHVzZSB0byBzdG9yZSBhIHNlbGVjdGVkIG9wdGlvbiBvciB0aGUgbmFtZSBvZiBhIHByb3BlcnR5LgorICAgICAqIDxwPgorICAgICAqIEZvciBleGFtcGxlLCB0byBpbmRpY2F0ZSBhIHNlYXJjaCBieSBwcm9kdWN0LCB5b3UgbWlnaHQgc2V0CisgICAgICoga2V5TmFtZT1wcm9kdWN0IGFuZCBrZXlWYWx1ZT1TY2FmZm9sZC4KKyAgICAgKiA8cD4KKyAgICAgKiBXaGVuIGJvdGggbmFtZSBhbmQgdmFsdWUgYXJlIHVzZWQsIHZhbHVlIHNob3VsZCBiZSB0aGUgInNjYWxhciIuCisgICAgICogPHA+CisgICAgICogSW4gZm9ybXMsIHRoZSBhYmJyZXZpYXRpb25zIE4gYW5kIFYgbWF5IGJlIHVzZWQuCisgICAgICogKFNlZSBQdWJsaWMgTWV0aG9kcyBzZWN0aW9uLikKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBrZXlOYW1lID0gbnVsbDsKKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBrZXlOYW1lLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0S2V5TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMua2V5TmFtZTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFNldCB0aGUga2V5TmFtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlOYW1lIFRoZSBuZXcga2V5TmFtZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEtleU5hbWUoU3RyaW5nIGtleU5hbWUpIHsKKyAgICAgICAgdGhpcy5rZXlOYW1lID0ga2V5TmFtZTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIEEgZ2VuZXJpYyB2YWx1ZSBmaWVsZCwKKyAgICAgKiB1c2UgdG8gc3RvcmUgYSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggYW4gb3B0aW9uIG9yIHRoZQorICAgICAqIHZhbHVlIG9mIGEgcHJvcGVydHkuCisgICAgICogPHA+CisgICAgICogRm9yIGV4YW1wbGUsIHRvIGluZGljYXRlIGEgc2VhcmNoIGJ5IHByb2R1Y3QgeW91IG1pZ2h0IHNldAorICAgICAqIGtleU5hbWU9cHJvZHVjdCBhbmQga2V5VmFsdWU9U2NhZmZvbGQuCisgICAgICogPHA+CisgICAgICogV2hlbiBib3RoIGtleSBhbmQgdmFsdWUgYXJlIHVzZWQsIHZhbHVlIHNob3VsZCBiZSB0aGUgInNjYWxhciIuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcga2V5VmFsdWUgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHZhbHVlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0S2V5VmFsdWUoKSB7CisgICAgICAgIHJldHVybiB0aGlzLmtleVZhbHVlOworICAgIH0KKworCisgICAgLyoqCisgICAgICogU2V0IHRoZSB2YWx1ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlWYWx1ZSBUaGUgbmV3IHZhbHVlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0S2V5VmFsdWUoU3RyaW5nIGtleVZhbHVlKSB7CisgICAgICAgIHRoaXMua2V5VmFsdWUgPSBrZXlWYWx1ZTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFRoZSBwYWdlLCBmb3IgdXNlIGluIHdvcmtmbG93cy4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBwYWdlID0gMDsKKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBwYWdlLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZ2V0UGFnZSgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMucGFnZTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgcGFnZSBrZXkKKyAgICAgKgorICAgICAqIEBwYXJhbSBwYWdlIFRoZSBuZXcgcGFnZSBrZXkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYWdlKGludCBwYWdlKSB7CisgICAgICAgIHRoaXMucGFnZSA9IHBhZ2U7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBUaGUgbmFtZSBvZiBhIGxvZ2ljYWwgZm9yd2FyZAorICAgICAqIGZvciB1c2UgaW4gbWFwcGluZyBhIGZvcndhcmQgdG8gYSBtZW51IG9wdGlvbi4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBkaXNwYXRjaCA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZGlzcGF0Y2guCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXREaXNwYXRjaCgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2g7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGRpc3BhdGNoCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGF0Y2ggVGhlIG5ldyBkaXNwYXRjaAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERpc3BhdGNoKFN0cmluZyBkaXNwYXRjaCkgeworICAgICAgICB0aGlzLmRpc3BhdGNoID0gZGlzcGF0Y2g7CisgICAgfQorCisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHVibGljIE1ldGhvZHMKKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBrZXlOYW1lIGFiYnJldmlhdGVkIGFzIE4uCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROKCkgeworICAgICAgICByZXR1cm4gZ2V0S2V5TmFtZSgpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBrZXlOYW1lIGFiYnJldmlhdGVkIGFzIE4uCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5TmFtZSBUaGUgbmV3IGtleU5hbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXROKFN0cmluZyBrZXlOYW1lKSB7CisgICAgICAgIHNldEtleU5hbWUoa2V5TmFtZSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIE9wdGlvbiAoYWxpYXMgZm9yIG5hbWUpLgorICAgICAqIDxwPgorICAgICAqIE1uZW1vcmljOiBPLU4gLyBOYW1lCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRPKCkgeworICAgICAgICByZXR1cm4gZ2V0S2V5TmFtZSgpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBPcHRpb24gKGFsaWFzIGZvciBuYW1lKQorICAgICAqIDxwPgorICAgICAqIE1uZW1vcmljOiBPLU4gLyBOYW1lCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5TmFtZSBUaGUgbmV3IGtleU5hbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRPKFN0cmluZyBrZXlOYW1lKSB7CisgICAgICAgIHNldEtleU5hbWUoa2V5TmFtZSk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHZhbHVlIGFiYnJldmlhdGVkIGFzIFYuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRWKCkgeworICAgICAgICByZXR1cm4gZ2V0S2V5VmFsdWUoKTsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgdmFsdWUgYWJicmV2aWF0ZWQgYXMgVi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlWYWx1ZSBUaGUgbmV3IGtleVZhbHVlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VihTdHJpbmcga2V5VmFsdWUpIHsKKyAgICAgICAgc2V0S2V5VmFsdWUoa2V5VmFsdWUpOworICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBUZXh0IChhbGlhcyBmb3IgdmFsdWUpLgorICAgICAqIDxwPgorICAgICAqIE1uZW1vcmljOiBULVYgLyB2YWx1ZQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VCgpIHsKKyAgICAgICAgcmV0dXJuIGdldEtleVZhbHVlKCk7CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIFRleHQgKGFsaWFzIGZvciB2YWx1ZSkKKyAgICAgKiA8cD4KKyAgICAgKiBNbmVtb3JpYzogVC1WIC8gdmFsdWUKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlWYWx1ZSBUaGUgbmV3IEtleVZhbHVlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VChTdHJpbmcga2V5VmFsdWUpIHsKKyAgICAgICAgc2V0S2V5VmFsdWUoa2V5VmFsdWUpOworICAgIH0KKworCit9IC8vIGVuZCBNZW51Rm9ybQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL01lbnVSZWxheUFjdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvTWVudVJlbGF5QWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGYzNTRjMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL01lbnVSZWxheUFjdGlvbi5qYXZhCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAyMDAxLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIAorICAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQ7CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQubGFuZy5Ub2tlbnM7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLnRleHQuQ29udmVydFV0aWxzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnNjYWZmb2xkLkJhc2VBY3Rpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQuQmFzZUZvcm07CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworCisKKy8qKgorICogU3RhbmRhcmQgQWN0aW9uIHRvIGZvcndhcmQgY29udHJvbCB0byBhbm90aGVyIG1hcHBpbmcKKyAqIGdpdmVuIGFzIGEgcnVudGltZSBwYXJhbWV0ZXIgKD9kaXNwYXRjaD0pLAorICogYWZ0ZXIgcnVubmluZyBhbnkgbW9kZWwgY2xhc3Nlcy4KKyAqCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIE1lbnVSZWxheUFjdGlvbiBleHRlbmRzIEJhc2VBY3Rpb24geworCisKKyAgICAvKioKKyAgICAgKiBMb29rcyBmb3IgYSBydW50aW1lIHBhcmFtZXRlciBuYW1lZCAiZGlzcGF0Y2giLAorICAgICAqIGFuZCB1c2VzIGl0cyB2YWx1ZSB0byBzZWFyY2ggZm9yIGFuIEFjdGlvbkZvcndhcmQuCisgICAgICogSWYgYSAiZGlzcGF0Y2giIHBhcmFtZXRlciBpcyBub3QgYXZhaWxhYmxlLAorICAgICAqIGFuZCB0aGUgZm9ybSBpcyBhIEJhc2VGb3JtIGlzdGFuY2UsIHRoZW4gdGhlCisgICAgICogZGlzcGF0Y2ggcHJvcGVydHkgaXMgY2hlY2tlZC4KKyAgICAgKiBJZiBkaXNwYXRjaCBpcyBibGFuaywgdGhlIG1hcHBpbmcgcGFyYW1ldGVyIGlzCisgICAgICogY2hlY2tlZC4KKyAgICAgKiBGaW5hbGx5LCBpZiBhbGwgb2YgdGhlc2UgYXJlIGJsYW5rLAorICAgICAqIE1lbnVSZWxheUFjdGlvbiBsb29rcyBmb3IgYSAibWVudSIgZm9yd2FyZC4KKyAgICAgKiA8cD4KKyAgICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgcmV0dXJuaW5nIHRvIGEgc3VibWVudSB3aGVuCisgICAgICogYSBNZW51Rm9ybSBpcyBrZXB0IGluIHRoZSBzZXNzaW9uIGZvciBlYWNoIHVzZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nCisgICAgICovCisgICBwcm90ZWN0ZWQgQWN0aW9uRm9yd2FyZCBmaW5kU3VjY2VzcygKKyAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkgeworCisgICAgICAgIFN0cmluZyBmb3J3YXJkID0gcmVxdWVzdC5nZXRQYXJhbWV0ZXIoVG9rZW5zLkRJU1BBVENIKTsKKyAgICAgICAgaWYgKChDb252ZXJ0VXRpbHMuYmxhbmsoZm9yd2FyZCkpICYmIChmb3JtIGluc3RhbmNlb2YgQmFzZUZvcm0pKSB7CisgICAgICAgICAgICBCYXNlRm9ybSBiYXNlRm9ybSA9IChCYXNlRm9ybSkgZm9ybTsKKyAgICAgICAgICAgIGZvcndhcmQgPSBiYXNlRm9ybS5nZXREaXNwYXRjaCgpOworICAgICAgICB9CisgICAgICAgIGlmIChDb252ZXJ0VXRpbHMuYmxhbmsoZm9yd2FyZCkpIGZvcndhcmQgPSBtYXBwaW5nLmdldFBhcmFtZXRlcigpOworICAgICAgICBpZiAoQ29udmVydFV0aWxzLmJsYW5rKGZvcndhcmQpKSBmb3J3YXJkID0gVG9rZW5zLk1FTlU7CisgICAgICAgIHJldHVybiBtYXBwaW5nLmZpbmRGb3J3YXJkKGZvcndhcmQpOworICAgIH0KKworfSAvLyBlbmQgUmVsYXlIZWxwZXJBY3Rpb24KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL051bGxGb3JtLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9OdWxsRm9ybS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxZmYzZDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9OdWxsRm9ybS5qYXZhCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAyMDAxLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnNjYWZmb2xkOworCisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKKworCisvKioKKyAqIEVtcHR5IChvciAibnVsbCIpIGZvcm0gZm9yIHVzZSB3aXRoICJmb3JtbGVzcyIgZm9ybXMuCisgKiBUaGUgU3RydXRzIEpTUCB0YWdzIHJlcXVpcmUgYSBmb3JtIGJlYW4gdG8gY3JlYXRlIGVsZW1lbnRzIGxpa2UKKyAqIGJ1dHRvbnMsIGV2ZW4gaWYgb25lIGlzIG5vdCBhY3R1YWxseSBuZWVkZWQuCisgKiBUaGUgTnVsbEZvcm0gcGxhY2F0ZXMgdGhlIHRhZyBieSBwcm92aWRpbmcgYW4gZW1wdHkgZm9ybS4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIE51bGxGb3JtIGV4dGVuZHMgQWN0aW9uRm9ybSB7CisKKyAgICAvLyBibGFuayBmb3JtIGZvciB1c2Ugd2l0aCBjb21tYW5kIGJ1dHRvbnMKKworfSAvLyBlbmQgTnVsbEZvcm0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9QYXJhbWV0ZXJBY3Rpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL1BhcmFtZXRlckFjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiODdmYjYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9QYXJhbWV0ZXJBY3Rpb24uamF2YQpAQCAtMCwwICsxLDgxIEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMjAwMS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAKKyAgCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnNjYWZmb2xkOworCisKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQubGFuZy5Ub2tlbnM7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzsKKworCisvKioKKyAqIFN0YW5kYXJkIEFjdGlvbiB0byBhcHBlbmQgYSBwYXNzZWQgcGFyYW1ldGVyIHRvIHF1ZXJ5IHN0cmluZy4KKyAqIDxwPgorICogVGhpcyBjbGFzcyBleHRlbmRzIEJhc2VBY3Rpb24gdG8gcHJvdmlkZQorICogY3Jvc3MtY29tcGF0aWJpbGl0eSB3aXRoIFN0cnV0cyAxLjEgYW5kIDEuMAorICoKKyAqIEB2ZXJzaW9uICRSZXYkICREYXRlJAorICovCitwdWJsaWMgY2xhc3MgUGFyYW1ldGVyQWN0aW9uIGV4dGVuZHMgQmFzZUFjdGlvbiB7CisKKyAgICAvKioKKyAgICAgKiBBcHBlbmQgcGFyYW1ldGVyIHRvIGEgcXVlcnkgc3RyaW5nLgorICAgICAqIFRoZSAiZGlzcGF0Y2giIHBhcmFtZXRlciBpcyB1c2VkIHRvIHNlbGVjdCBhIGZvcndhcmQuCisgICAgICogVGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIgbmFtZWQgYnkgdGhlICJwYXJhbWV0ZXIiIHByb3BlcnR5CisgICAgICogaXMgY29uY2F0ZXJuYXRlZCB0byB0aGUgZm9yd2FyZCdzIHBhdGguCisgICAgICogTm8gcGFyc2luZyBvZiB0aGUgcGF0aCBpcyBwZXJmb3JtZWQgYXQgdGhpcyB0aW1lLgorICAgICAqIFRoZSB2YWx1ZSBpcyBzaW1wbHkgYXBwZW5kZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIEFjdGlvbkZvcndhcmQgZmluZFN1Y2Nlc3MoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpIHsKKworICAgICAgICAgICAgLy8gR2V0ICJkaXNwYXRjaCIgcGFyYW1ldGVyCisgICAgICAgIFN0cmluZyBwYXJhbWV0ZXIgPSByZXF1ZXN0LmdldFBhcmFtZXRlcihUb2tlbnMuRElTUEFUQ0gpOworCisgICAgICAgICAgICAvLyBHZXQgcGFyYW1ldGVyIG5hbWUgZm9yIHRoaXMgbWFwcGluZworICAgICAgICBTdHJpbmcgcGFyYW1OYW1lID0gbWFwcGluZy5nZXRQYXJhbWV0ZXIoKTsKKworICAgICAgICAgICAgLy8gR2V0IHN0dWIgVVJJIGZyb20gbWFwcGluZyAoL2RvL3doYXRldmVyP3BhcmFtTmFtZT0pCisgICAgICAgIFN0cmluZ0J1ZmZlciBwYXRoID0gbmV3IFN0cmluZ0J1ZmZlcig2NCk7CisgICAgICAgIEFjdGlvbkZvcndhcmQgdGVtcGxhdGUgPSBtYXBwaW5nLmZpbmRGb3J3YXJkKHBhcmFtZXRlcik7CisgICAgICAgIHBhdGguYXBwZW5kKHRlbXBsYXRlLmdldFBhdGgoKSk7CisgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIHZhbHVlIHBhc3NlZCAoL2RvL3doYXRldmVyP3BhcmFtTmFtZT1wYXJhbVByb3BlcnR5KQorICAgICAgICBwYXRoLmFwcGVuZChyZXF1ZXN0LmdldFBhcmFtZXRlcihwYXJhbU5hbWUpKTsKKworICAgICAgICAgICAgLy8gUmV0dXJuIGEgbmV3IGZvcndhcmQgYmFzZWQgb24gc3R1Yit2YWx1ZQorICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkZvcndhcmQocGF0aC50b1N0cmluZygpLHRlbXBsYXRlLmdldFJlZGlyZWN0KCkpOworCisgICAgfQorCit9IC8vIGVuZCBQYXJhbWV0ZXJBY3Rpb24KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9Qcm9jZXNzQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9Qcm9jZXNzQWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjhiNmJkMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL1Byb2Nlc3NBY3Rpb24uamF2YQpAQCAtMCwwICsxLDUwMCBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDIwMDEtMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnNjYWZmb2xkOworCisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLlByb3BlcnR5VXRpbHM7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLmxhbmcuTG9nOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5zY2FmZm9sZC5sYW5nLlRva2VuczsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQudXRpbC5Qcm9jZXNzQmVhbjsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQudXRpbC5Qcm9jZXNzUmVzdWx0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi4qOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworCisvKioKKyAqIEFkdmFuY2VkIGZyYW1ld29yayBjbGFzcyB0byBpbnN0YW50aWF0ZSBhbmQgZXhlY3V0ZSBoZWxwZXIgYmVhbnMKKyAqIGFuZCBwcm9jZXNzIHRoZSByZXN1bHQuCisgKgorICogQHZlcnNpb24gJFJldiQgJERhdGUkCisgKiBAZGVwcmVjYXRlZCBVc2UgQml6QWN0aW9uIGluc3RlYWQKKyAqLworcHVibGljIGNsYXNzIFByb2Nlc3NBY3Rpb24gZXh0ZW5kcyBCYXNlSGVscGVyQWN0aW9uIHsKKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHVibGljIE1ldGhvZHMKKworCisgICAgLyoqCisgICAgICogRXhwb3NlcyByZXN1bHQgaW4gYSBzZXJ2bGV0IGNvbnRleHQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCB0aGUgcmVxdWVzdCBiZWluZyBzZXJ2aWNlZAorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIHRvIHVzZSBpbiBzY29wZQorICAgICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgdG8gc2V0IHRoZSBhdHRyaWJ1dGUgaW4KKyAgICAgKiBAcGFyYW0gYmVhbiBUaGUgYXR0cmlidXRlIHRvIGJlIHNldAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGV4cG9zZUluU2NvcGUoCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UsCisgICAgICAgICAgICBTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgIFN0cmluZyBzY29wZSwKKyAgICAgICAgICAgIE9iamVjdCBiZWFuKSB7CisKKyAgICAgICAgaWYgKG51bGw9PXNjb3BlKSB7CisgICAgICAgICAgICAvLworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKFRva2Vucy5SRVFVRVNULmVxdWFscyhzY29wZSkpIHsKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKG5hbWUsYmVhbik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoVG9rZW5zLlNFU1NJT04uZXF1YWxzKHNjb3BlKSkgeworICAgICAgICAgICAgcmVxdWVzdC5nZXRTZXNzaW9uKCkuc2V0QXR0cmlidXRlKG5hbWUsYmVhbik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoVG9rZW5zLkFQUExJQ0FUSU9OLmVxdWFscyhzY29wZSkpIHsKKyAgICAgICAgICAgIHNlcnZsZXQuZ2V0U2VydmxldENvbnRleHQoKS5zZXRBdHRyaWJ1dGUobmFtZSxiZWFuKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoImV4cG9zZUluU2NvcGU6ICIpOworICAgICAgICAgICAgc2IuYXBwZW5kKHNjb3BlKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZChUb2tlbnMuSU5WQUxJRF9TQ09QRSk7CisgICAgICAgICAgICB0aHJvdyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKHNiLnRvU3RyaW5nKCkpOworICAgICAgICB9CisKKyAgICB9IC8vIGVuZCBleHBvc2VJblNjb3BlCisKKworICAgIC8qKgorICAgICAqIFNhdmUgcmVzdWx0IG9iamVjdCB0byBzZXJ2bGV0IGNvbnRleHQuCisgICAgICogPHA+CisgICAgICogPGNvZGU+cmVzdWx0LmdldERhdGEoKTwvY29kZT4gbXVzdCByZXR1cm4gbm9uLW51bGwuCisgICAgICogSWYgPGNvZGU+cmVzdWx0LmdldE5hbWUoKTwvY29kZT4gaXMgbnVsbCwgdGhlIG1hcHBpbmcncyBhdHRyaWJ1dGUKKyAgICAgKiAoPGNvZGU+bWFwcGluZy5nZXRBdHRyaWJ1dGUoKTwvY29kZT4pIGlzIHVzZWQgaW5zdGVhZC4KKyAgICAgKiBCeSBkZWZhdWx0LCB0aGlzIGlzIHRoZSA8Y29kZT5mb3JtLWJlYW48L2NvZGU+J3MgbmFtZS4KKyAgICAgKiA8cD4KKyAgICAgKiBJZiBkYXRhIGlzIGEgQ29sbGVjdGlvbiwgb25seSB0aGUgZmlyc3QgZWxlbWVudCBpcyBzdG9yZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXN1bHQgVGhlIFByb2Nlc3NSZXN1bHQgd2UgYXJlIGhhbmRsaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgY2hlY2tEYXRhU2luZ2xlKAorICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlLAorICAgICAgICAgICAgUHJvY2Vzc1Jlc3VsdCByZXN1bHQpIHsKKworICAgICAgICBTdHJpbmcgbmFtZSA9IHJlc3VsdC5nZXROYW1lKCk7CisgICAgICAgIGlmIChudWxsPT1uYW1lKSB7CisgICAgICAgICAgICAgICAgLy8gdXNlIGZvcm0tYmVhbiBvciBtYXBwaW5nIG5hbWUKKyAgICAgICAgICAgIG5hbWUgPSBtYXBwaW5nLmdldEF0dHJpYnV0ZSgpOworICAgICAgICAgICAgcmVzdWx0LnNldE5hbWUobmFtZSk7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5nIHNjb3BlID0gcmVzdWx0LmdldFNjb3BlKCk7CisgICAgICAgIE9iamVjdCBiZWFuID0gcmVzdWx0LmdldERhdGEoKTsKKworICAgICAgICAgICAgLy8gaWYgZGF0YSBpcyBjb2xsZWN0aW9uLCB1c2UgZmlyc3QgZWxlbWVudAorICAgICAgICBpZiAoYmVhbiBpbnN0YW5jZW9mIENvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgIENvbGxlY3Rpb24gY29sbGVjdGlvbiA9IChDb2xsZWN0aW9uKSBiZWFuOworICAgICAgICAgICAgaWYgKGNvbGxlY3Rpb24uaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGZvciBsYWNrIG9mIGEgYmV0dGVyIGlkZWEsIGdldCBhIGZyZXNoIGZvcm0tYmVhbgorICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIHdpbGwgcmV0dXJuIG51bGwgaWYgdGhlcmUgaXMgbm90IGEgZm9ybS1iZWFuCisgICAgICAgICAgICAgICAgICAgIC8vIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hcHBpbmcKKyAgICAgICAgICAgICAgICBiZWFuID0gY3JlYXRlSGVscGVyQmVhbihyZXF1ZXN0LG1hcHBpbmcuZ2V0TmFtZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGJlYW4gPSBjb2xsZWN0aW9uLml0ZXJhdG9yKCkubmV4dCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQuaXNFeHBvc2VkKCkpIHsKKyAgICAgICAgICAgIGV4cG9zZUluU2NvcGUocmVxdWVzdCxyZXNwb25zZSxuYW1lLHNjb3BlLGJlYW4pOworCisgICAgICAgIH0KKworICAgIH0gLy8gZW5kIGNoZWNrRGF0YVNpbmdsZQorCisKKyAgICAvKioKKyAgICAgKiBTYXZlIHJlc3VsdCBvYmplY3QgdG8gc2VydmxldCBjb250ZXh0LgorICAgICAqIDxwPgorICAgICAqIDxjb2RlPnJlc3VsdC5nZXREYXRhKCk8L2NvZGU+IG11c3QgcmV0dXJuIG5vbi1udWxsLgorICAgICAqIElmIDxjb2RlPnJlc3VsdC5nZXROYW1lKCk8L2NvZGU+IGlzIG51bGwsIHRoZSBtYXBwaW5nJ3MgYXR0cmlidXRlCisgICAgICogKDxjb2RlPm1hcHBpbmcuZ2V0QXR0cmlidXRlKCk8L2NvZGU+KSBpcyB1c2VkIGluc3RlYWQuCisgICAgICogQnkgZGVmYXVsdCwgdGhpcyBpcyB0aGUgPGNvZGU+Zm9ybS1iZWFuPC9jb2RlPidzIG5hbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXN1bHQgVGhlIFByb2Nlc3NSZXN1bHQgd2UgYXJlIGhhbmRsaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgY2hlY2tEYXRhKAorICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlLAorICAgICAgICAgICAgUHJvY2Vzc1Jlc3VsdCByZXN1bHQpIHsKKworICAgICAgICBpZiAocmVzdWx0LmlzU2luZ2xlRm9ybSgpKSB7CisgICAgICAgICAgICBjaGVja0RhdGFTaW5nbGUobWFwcGluZyxyZXF1ZXN0LHJlc3BvbnNlLHJlc3VsdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgIFN0cmluZyBuYW1lID0gcmVzdWx0LmdldE5hbWUoKTsKKyAgICAgICAgICAgIGlmIChudWxsPT1uYW1lKSB7CisgICAgICAgICAgICAgICAgbmFtZSA9IFRva2Vucy5MSVNUX0tFWTsKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0TmFtZShuYW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFN0cmluZyBzY29wZSA9IHJlc3VsdC5nZXRTY29wZSgpOworICAgICAgICAgICAgT2JqZWN0IGJlYW4gPSByZXN1bHQuZ2V0RGF0YSgpOworCisgICAgICAgICAgICBpZiAocmVzdWx0LmlzRXhwb3NlZCgpKSB7CisgICAgICAgICAgICAgICAgZXhwb3NlSW5TY29wZShyZXF1ZXN0LHJlc3BvbnNlLG5hbWUsc2NvcGUsYmVhbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0gLy8gZW5kIGNoZWNrRGF0YQorCisKKyAgICAvKioKKyAgICAgKiBTdG9yZXMgaW5mb3JtYXRpb25hbCBtZXNzYWdlcyBmb3IgZGlzcGxheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHByb2Nlc3NSZXN1bHQgVGhlIFByb2Nlc3NSZXN1bHQgd2UgYXJlIGhhbmRsaW5nCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgY2hlY2tNZXNzYWdlcygKKyAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSwKKyAgICAgICAgICAgIFByb2Nlc3NSZXN1bHQgcHJvY2Vzc1Jlc3VsdCkgeworCisgICAgICAgIHNhdmVNZXNzYWdlcyhyZXF1ZXN0LHByb2Nlc3NSZXN1bHQuZ2V0TWVzc2FnZXMoKSk7CisKKyAgICB9IC8vIGVuZCBjaGVja01lc3NhZ2VzCisKKworICAgIC8qKgorICAgICAqIFByb2Nlc3MgbmV3IGRpc3BhdGNoIGFkdmljZSBwYXNzZWQgYnkgdGhlIGJ1c2luZXNzIHRpZXIuCisgICAgICogPHA+CisgICAgICogVGhpcyBpcyB1c2VkIHRvIHJvdXRlIGNvbnRyb2wgdG8gYW5vdGhlciBsb2NhdGlvbiBiZXNpZGVzCisgICAgICogdGhlIGRlZmF1bHQgInN1Y2Nlc3MiIGZvcndhcmQgcmVnaXN0ZXJlZCB3aXRoIHRoZSBjb250cm9sbGVyLgorICAgICAqCisgICAgICogVGhlIGJ1c2luZXNzIHRpZXIgY2FuIHBhc3MgYmFjayBlaXRoZXIgYSBwYXRoIG9yIHRoZSBuYW1lIG9mCisgICAgICogYW4gQWN0aW9uRm9yd2FyZC4KKyAgICAgKiBjaGVja0Rpc3BhdGNoKCkgd2lsbCB0aGVuIGNyZWF0ZSBhbiBBY3Rpb25Gb3J3YXJkIHRvIHJldHVybgorICAgICAqIGFuZCBzYXZlIGl0IGluIHRoZSByZXF1ZXN0IHVuZGVyIHRoZSBTVUNDRVNTIHRva2VuLgorICAgICAqIFRoZSA8Y29kZT5maW5kU3VjY2VzcygpPC9jb2RlPiB3aWxsIGNoZWNrIGZvciB0aGlzIGF0dHJpYnV0ZQorICAgICAqIGJlZm9yZSByZXR1cm5pbmcgdGhlIGNvbnRyb2xsZXIncyBkZWZhdWx0LgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgKiBAcGFyYW0gcHJvY2Vzc1Jlc3VsdCBUaGUgUHJvY2Vzc1Jlc3VsdCB3ZSBhcmUgaGFuZGxpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBjaGVja0Rpc3BhdGNoKAorICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlLAorICAgICAgICAgICAgUHJvY2Vzc1Jlc3VsdCBwcm9jZXNzUmVzdWx0KSB7CisKKyAgICAgICAgU3RyaW5nIGRpc3BhdGNoID0gcHJvY2Vzc1Jlc3VsdC5nZXREaXNwYXRjaCgpOworICAgICAgICBBY3Rpb25Gb3J3YXJkIGZvcndhcmQgPSBudWxsOworCisgICAgICAgIGlmIChwcm9jZXNzUmVzdWx0LmlzRGlzcGF0Y2hQYXRoKCkpIHsKKyAgICAgICAgICAgIGZvcndhcmQgPSBuZXcgQWN0aW9uRm9yd2FyZChkaXNwYXRjaCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3J3YXJkID0gbWFwcGluZy5maW5kRm9yd2FyZChkaXNwYXRjaCk7CisgICAgICAgIH0KKworICAgICAgICAgICAgLy8gT3VyIGZpbmRTdWNjZXNzIGxvb2tzIGZvciB0aGlzCisgICAgICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKFRva2Vucy5TVUNDRVNTLGZvcndhcmQpOworCisgICAgfSAvLyBlbmQgY2hlY2tEaXNwYXRjaAorCisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQdWJsaWMgTWV0aG9kcworCisKKyAgICAgLyoqCisgICAgICAqIFJldHVybiB0aGUgYXBwcm9wcmlhdGUgQWN0aW9uRm9yd2FyZCBmb3IgZXJyb3Igb3IgZmFpbHVyZQorICAgICAgKiBjb25kaXRpb25zLgorICAgICAgKiBGaXJzdCBjaGVja3MgZm9yIGEgRkFJTFVSRSBBY3Rpb25Gb3J3YXJkIHN0b3JlZCBpbiB0aGUgcmVxdWVzdC4KKyAgICAgICogSWYgYW4gb3ZlcnJpZGUgaXMgbm90IGZvdW5kLCByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlCisgICAgICAqIHN1cGVyY2xhc3MgbWV0aG9kLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICAqIEBwYXJhbSBmb3JtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdAorICAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgcmVzb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgICogQHJldHVybiBUaGUgQWN0aW9uRm9yd2FyZCByZXByZXNlbnRpbmcgRkFJTFVSRQorICAgICAgKiBvciBudWxsIGlmIGEgRkFJTFVSRSBmb3J3YXJkIGhhcyBub3QgYmVlbiBzcGVjaWZpZWQuCisgICAgICAqLworICAgICBwcm90ZWN0ZWQgQWN0aW9uRm9yd2FyZCBmaW5kRmFpbHVyZSgKKyAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkgeworCisgICAgICAgICAgICAvLyBEaWQgc29tZW9uZSBsZWF2ZSB1cyBhIGZvcndhcmQ/CisgICAgICAgIEFjdGlvbkZvcndhcmQgZm9yd2FyZCA9IChBY3Rpb25Gb3J3YXJkKQorICAgICAgICAgICAgcmVxdWVzdC5nZXRBdHRyaWJ1dGUoVG9rZW5zLkZBSUxVUkUpOworCisgICAgICAgIGlmIChudWxsPT1mb3J3YXJkKSB7CisgICAgICAgICAgICAgICAgLy8gTm8gb3ZlcnJpZGUsIHVzZSBkZWZhdWx0CisgICAgICAgICAgICBmb3J3YXJkID0gc3VwZXIuZmluZEZhaWx1cmUobWFwcGluZyxmb3JtLHJlcXVlc3QscmVzcG9uc2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIENsZWFyIGFkdmljZSBmcm9tIHRoZSByZXF1ZXN0CisgICAgICAgICAgICByZXF1ZXN0LnNldEF0dHJpYnV0ZShUb2tlbnMuRkFJTFVSRSxudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmb3J3YXJkOworCisgICAgfSAvLyBlbmQgZmluZEZhaWx1cmUKKworCisgICAvKioKKyAgICAgKiBPcHRpb25hbCBleHRlbnNpb24gcG9pbnQgZm9yIHByZS1wcm9jZXNzaW5nLgorICAgICAqIERlZmF1bHQgbWV0aG9kIGRvZXMgbm90aGluZy4KKyAgICAgKiBUbyBicmFuY2ggdG8gYW5vdGhlciBVUkksIHJldHVybiBhbiBub24tbnVsbCBBY3Rpb25Gb3J3YXJkLgorICAgICAqIElmIGVycm9ycyBhcmUgbG9nZ2VkIChnZXRFcnJvcnMoKSBldCBhbCksCisgICAgICogZGVmYXVsdCBiZWhhdmlvdXIgd2lsbCBicmFuY2ggdG8gZmluZEZhaWx1cmUoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gZm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSByZXNvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHByZVByb2Nlc3MoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpIHsKKworICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIGNhbmNlbGxlZAorICAgICAgICBBY3Rpb25Gb3J3YXJkIGZvcndhcmQgPSBtYXBwaW5nLmZpbmRGb3J3YXJkKFRva2Vucy5DQU5DRUwpOworICAgICAgICBpZiAoKG51bGwhPWZvcndhcmQpICYmIChpc0NhbmNlbGxlZChyZXF1ZXN0KSkpIHsKKyAgICAgICAgICAgIC8vIE91ciBmaW5kRmFpbHVyZSBsb29rcyBmb3IgdGhpcworICAgICAgICAgICAgcmVxdWVzdC5zZXRBdHRyaWJ1dGUoVG9rZW5zLkZBSUxVUkUsZm9yd2FyZCk7CisgICAgICAgICAgIC8vIFBvc3QgY2FuY2VsIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgICAgQWN0aW9uRXJyb3JzIGVycm9ycyA9IGdldEVycm9ycyhyZXF1ZXN0LHRydWUpOworICAgICAgICAgICBlcnJvcnMuYWRkKEFjdGlvbkVycm9ycy5HTE9CQUxfRVJST1IsCisgICAgICAgICAgICAgICAgbmV3IEFjdGlvbkVycm9yKFRva2Vucy5FUlJPUl9DQU5DRUwpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIG1pc3NpbmcgdG9rZW4KKyAgICAgICAgZm9yd2FyZCA9IG1hcHBpbmcuZmluZEZvcndhcmQoVG9rZW5zLkdFVF9UT0tFTik7CisgICAgICAgIGlmICgobnVsbCE9Zm9yd2FyZCkgJiYgKCFpc1Rva2VuVmFsaWQocmVxdWVzdCkpKSB7CisgICAgICAgICAgICAvLyBPdXIgZmluZEZhaWx1cmUgbG9va3MgZm9yIHRoaXMKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKFRva2Vucy5GQUlMVVJFLGZvcndhcmQpOworICAgICAgICAgICAvLyBQb3N0IHRva2VuIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgICAgQWN0aW9uRXJyb3JzIGVycm9ycyA9IGdldEVycm9ycyhyZXF1ZXN0LHRydWUpOworICAgICAgICAgICBlcnJvcnMuYWRkKEFjdGlvbkVycm9ycy5HTE9CQUxfRVJST1IsCisgICAgICAgICAgICAgICAgbmV3IEFjdGlvbkVycm9yKFRva2Vucy5FUlJPUl9UT0tFTikpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChudWxsIT1mb3J3YXJkKSB7CisgICAgICAgICAgICAvLyByZXNldCB0byBndWFyZCBhZ2FpbnN0IGR1cGxpY2F0ZSByZXF1ZXN0CisgICAgICAgICAgICByZXNldFRva2VuKHJlcXVlc3QpOworICAgICAgICB9CisKKyAgICAgICAgICAvLyBDaGVjayBmb3Igc2F2ZSB0b2tlbiBkaXJlY3RpdmUgKGRvIHRoaXMgbGFzdCkKKyAgICAgICAgZm9yd2FyZCA9IG1hcHBpbmcuZmluZEZvcndhcmQoVG9rZW5zLlNFVF9UT0tFTik7CisgICAgICAgIGlmIChudWxsIT1mb3J3YXJkKSBzYXZlVG9rZW4ocmVxdWVzdCk7CisKKworICAgICB9IC8vIGVuZCBwcmVQcm9jZXNzCisKKworICAgIC8qKgorICAgICAqIENoZWNrIG91dGNvbWUsIGlmIGFueTsgcmVjdXJzZSBpZiBjb250YWluZXIgZm9yIG90aGVyIG91dGNvbWVzLgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgKiBAcGFyYW0gcmVzdWx0IFRoZSBQcm9jZXNzUmVzdWx0IHdlIGFyZSBoYW5kbGluZworICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGNoZWNrT3V0Y29tZSgKKyAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSwKKyAgICAgICAgICAgIFByb2Nlc3NSZXN1bHQgcmVzdWx0KSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAocmVzdWx0IT1udWxsKSB7CisKKyAgICAgICAgICAgIGlmIChyZXN1bHQuaXNBZ2dyZWdhdGUoKSkgeworICAgICAgICAgICAgICAgICAgICAvLyByZWN1cnNlIGZvciBlYWNoIFByb2Nlc3NSZXN1bHQgaW4gY29sbGVjdGlvbgorICAgICAgICAgICAgICAgIENvbGxlY3Rpb24gY29sbGVjdGlvbiA9IChDb2xsZWN0aW9uKQorICAgICAgICAgICAgICAgICAgICByZXN1bHQuZ2V0RGF0YSgpOworICAgICAgICAgICAgICAgIEl0ZXJhdG9yIGl0ZXJhdG9yID0gY29sbGVjdGlvbi5pdGVyYXRvcigpOworICAgICAgICAgICAgICAgIHdoaWxlIChpdGVyYXRvci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgUHJvY2Vzc1Jlc3VsdCBuZXh0UmVzdWx0ID0KKyAgICAgICAgICAgICAgICAgICAgICAgIChQcm9jZXNzUmVzdWx0KSBpdGVyYXRvci5uZXh0KCk7CisgICAgICAgICAgICAgICAgICAgIGNoZWNrT3V0Y29tZShtYXBwaW5nLHJlcXVlc3QscmVzcG9uc2UsbmV4dFJlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gY2FsbCBleHRlbnNpb24gcG9pbnRzIGZvciB3aGF0ZXZlciBpcyByZXR1cm5lZAorICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNEYXRhKCkpCisgICAgICAgICAgICAgICAgICAgIGNoZWNrRGF0YShtYXBwaW5nLHJlcXVlc3QscmVzcG9uc2UscmVzdWx0KTsKKworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNNZXNzYWdlcygpKQorICAgICAgICAgICAgICAgICAgICBjaGVja01lc3NhZ2VzKG1hcHBpbmcscmVxdWVzdCxyZXNwb25zZSxyZXN1bHQpOworCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0Rpc3BhdGNoKCkpCisgICAgICAgICAgICAgICAgICAgIGNoZWNrRGlzcGF0Y2gobWFwcGluZyxyZXF1ZXN0LHJlc3BvbnNlLHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeGNlcHRpb24oTG9nLlBST0NFU1NfUkVTVUxUX05VTEwpOworICAgICAgICB9CisKKyAgICB9IC8vIGVuZCBjaGVja091dGNvbWUKKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBhcHByb3ByaWF0ZSBBY3Rpb25Gb3J3YXJkIGZvciB0aGUgbm9taW5hbCwKKyAgICAgKiBub24tZXJyb3Igc3RhdGUuCisgICAgICogRmlyc3QgY2hlY2tzIGZvciBhIFNVQ0NFU1MgQWN0aW9uRm9yd2FyZCBzdG9yZWQgaW4gdGhlIHJlcXVlc3QuCisgICAgICogSWYgYW4gb3ZlcnJpZGUgaXMgbm90IGZvdW5kLCByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlCisgICAgICogc3VwZXJjbGFzcyBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nCisgICAgICogQHJldHVybiBUaGUgQWN0aW9uRm9yd2FyZCByZXByZXNlbnRpbmcgU1VDQ0VTUworICAgICAqIG9yIG51bGwgaWYgYSBTVUNDRVNTIGZvcndhcmQgaGFzIG5vdCBiZWVuIHNwZWNpZmllZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQWN0aW9uRm9yd2FyZCBmaW5kU3VjY2VzcygKKyAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkgeworCisgICAgICAgICAgICAvLyBEaWQgc29tZW9uZSBsZWF2ZSB1cyBhIGZvcndhcmQ/CisgICAgICAgIEFjdGlvbkZvcndhcmQgZm9yd2FyZCA9IChBY3Rpb25Gb3J3YXJkKQorICAgICAgICAgICAgcmVxdWVzdC5nZXRBdHRyaWJ1dGUoVG9rZW5zLlNVQ0NFU1MpOworCisgICAgICAgIGlmIChudWxsPT1mb3J3YXJkKSB7CisgICAgICAgICAgICAgICAgLy8gTm8gb3ZlcnJpZGUsIHVzZSBkZWZhdWx0CisgICAgICAgICAgICBmb3J3YXJkID0gc3VwZXIuZmluZFN1Y2Nlc3MobWFwcGluZyxmb3JtLHJlcXVlc3QscmVzcG9uc2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIC8vIENsZWFyIGFkdmljZSBmcm9tIHRoZSByZXF1ZXN0CisgICAgICAgICAgICByZXF1ZXN0LnNldEF0dHJpYnV0ZShUb2tlbnMuU1VDQ0VTUyxudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmb3J3YXJkOworCisgICAgfSAvLyBlbmQgZmluZFN1Y2Nlc3MKKworCisgICAgLyoqCisgICAgICogUmV0cmlldmUgZnJvbSBzZXNzaW9uIHVuZGVyIGtub3duIGtleQorICAgICAqICg8Y29kZT5Qcm9jZXNzQmVhbi5VU0VSX1BST0ZJTEVfS0VZPC9jb2RlPikuCisgICAgICogT3ZlcnJpZGUgdGhpcyBhcHByb2FjaCB0byBpbXBsZW1lbnQgYW5vdGhlciBtZXRob2QgKGUuZyBjb29raWVzKS4KKyAgICAgKiBBbHNvIHJldmlzZSBVcGRhdGVQcm9maWxlIGFjdGlvbi1tYXBwaW5nIHRvIHN0b3JlIGNoYW5nZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGZvcm0gVGhlIEFjdGlvbkZvcm0KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqLworICAgIHByb3RlY3RlZCBCYXNlRm9ybSBnZXRVc2VyUHJvZmlsZSgKKyAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkgeworCisgICAgICAgIHJldHVybihCYXNlRm9ybSkKKyAgICAgICAgICAgIHJlcXVlc3QuZ2V0U2Vzc2lvbigpLmdldEF0dHJpYnV0ZShQcm9jZXNzQmVhbi5VU0VSX1BST0ZJTEVfS0VZKTsKKworICAgIH0gLy8gZW5kIGdldFVzZXJQcm9maWxlCisKKworICAgIC8qKgorICAgICAqIEFzc3VtZSB0aGF0IGhlbHBlcnMgYXJlIFByb2Nlc3NCZWFucywgZXhlY3V0ZSBlYWNoLCBhbmQKKyAgICAgKiBwcm9jZXNzIG91dGNvbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGZvcm0gVGhlIEFjdGlvbkZvcm0KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqIEBwYXJhbSBoZWxwZXJzIFRoZSBvYmplY3QgaW5zdGFudGlhdGVkIGZyb20gdHlwZSBnaXZlbiBhcyBwYXJhbWV0ZXIuCisgICAgICogQGV4Y2VwdGlvbiBJT0V4Y2VwdGlvbiBpZiBhbiBpbnB1dC9vdXRwdXQgZXJyb3Igb2NjdXJzCisgICAgICogQGV4Y2VwdGlvbiBTZXJ2bGV0RXhjZXB0aW9uIGlmIGEgc2VydmxldCBleGNlcHRpb24gb2NjdXJzCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgZXhlY3V0ZUxvZ2ljKAorICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlLAorICAgICAgICAgICAgT2JqZWN0W10gaGVscGVycykgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgICAgIC8vIFJldHJpZXZlIHVzZXIgcHJvZmlsZSwgaWYgYW55CisgICAgICAgIEJhc2VGb3JtIHVzZXJCZWFuID0KKyAgICAgICAgICAgIGdldFVzZXJQcm9maWxlKG1hcHBpbmcsZm9ybSxyZXF1ZXN0LHJlc3BvbnNlKTsKKworICAgICAgICBNYXAgcHJvcGVydGllcyA9IG51bGw7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaGVscGVycy5sZW5ndGg7IGkrKykgeworCisgICAgICAgICAgICAgICAgLy8gR2V0IGhlbHBlciBpbnN0YW50aWF0ZWQgYnkgYW5jZXN0b3IKKyAgICAgICAgICAgIFByb2Nlc3NCZWFuIGRhdGFCZWFuID0gKFByb2Nlc3NCZWFuKSBoZWxwZXJzW2ldOworCisgICAgICAgICAgICBwcm9wZXJ0aWVzID0gbnVsbDsKKyAgICAgICAgICAgIGlmIChudWxsIT1mb3JtKSB7CisgICAgICAgICAgICAgICAgaWYgKGZvcm0gaW5zdGFuY2VvZiBCYXNlRm9ybSkgeworCisgICAgICAgICAgICAgICAgICAgIEJhc2VGb3JtIGZvcm1CZWFuID0gKEJhc2VGb3JtKSBmb3JtOworCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBNZXJnZSB1c2VyIHByb2ZpbGUgKGlmIGZvdW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5kIG91ciBmb3JtIGludG8gYSBzaW5nbGUgbWFwCisgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSBmb3JtQmVhbi5tZXJnZSh1c2VyQmVhbik7CisKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhc3MgdXAgdGhlIExvY2FsZSwgUmVtb3RlTm9kZSwgYW5kIFJlbW90ZVNlcnZlciAoaWYgYW55KQorICAgICAgICAgICAgICAgICAgICBkYXRhQmVhbi5zZXRMb2NhbGUoZm9ybUJlYW4uZ2V0U2Vzc2lvbkxvY2FsZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZGF0YUJlYW4uc2V0UmVtb3RlTm9kZShnZXRSZW1vdGVOb2RlKHJlcXVlc3QpKTsKKyAgICAgICAgICAgICAgICAgICAgZGF0YUJlYW4uc2V0UmVtb3RlU2VydmVyKGdldFJlbW90ZVNlcnZlcigpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSBQcm9wZXJ0eVV0aWxzLmRlc2NyaWJlKGZvcm0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gLy8gZW5kIG51bGwgZm9ybQorICAgICAgICAgICAgZWxzZSBpZiAobnVsbCE9dXNlckJlYW4pIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaWYgbm8gZm9ybSwgYnV0IGlzIHByb2ZpbGUsIHN0aWxsIHVzZSBwcm9maWxlCisgICAgICAgICAgICAgICAgcHJvcGVydGllcyA9IFByb3BlcnR5VXRpbHMuZGVzY3JpYmUodXNlckJlYW4pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gRXhlY3V0ZSBidXNpbmVzcyBsb2dpYywgdXNpbmcgdmFsdWVzIGZyb20gIG1hcAorICAgICAgICAgICAgUHJvY2Vzc1Jlc3VsdCByZXN1bHQgPSAoUHJvY2Vzc1Jlc3VsdCkKKyAgICAgICAgICAgICAgICBkYXRhQmVhbi5leGVjdXRlKHByb3BlcnRpZXMpOworCisgICAgICAgICAgICAgICAgLy8gQW5hbHl6ZSByZXN1bHQgb2YgYnVzaW5lc3MgbG9naWMKKyAgICAgICAgICAgIGNoZWNrT3V0Y29tZShtYXBwaW5nLHJlcXVlc3QscmVzcG9uc2UscmVzdWx0KTsKKworICAgICAgICB9IC8vIGVuZCBmb3IKKworICAgIH0gLy8gZW5kIGV4ZWN1dGVMb2dpYworCit9IC8vIGVuZCBQcm9jZXNzQWN0aW9uClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvUHJvY2Vzc0Rpc3BhdGNoQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9Qcm9jZXNzRGlzcGF0Y2hBY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTU0MzRiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvUHJvY2Vzc0Rpc3BhdGNoQWN0aW9uLmphdmEKQEAgLTAsMCArMSwxODAgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAyMDAxLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5zY2FmZm9sZDsKKworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247CitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kOworCitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5Qcm9wZXJ0eVV0aWxzOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQubGFuZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLmxhbmcuVG9rZW5zOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5zY2FmZm9sZC51dGlsLlByb2Nlc3NCZWFuOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5zY2FmZm9sZC51dGlsLlByb2Nlc3NSZXN1bHQ7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLnV0aWwuUHJvY2Vzc1Jlc3VsdEJhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLnV0aWwuUmVzdWx0TGlzdDsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQudXRpbC5SZXN1bHRMaXN0QmFzZTsKKworCisvKioKKyAqIFByb2Nlc3NGb3JtQWN0aW9uIHRoYXQgYWNjZXB0cyB0aGUgbmFtZSBvZiBhIGNsYXNzIGFuZCBhIG1ldGhvZAorICogd2l0aCB0aGUgc2lnbmF0dXJlICJPYmplY3QgbWV0aG9kKE9iamVjdCkiIGFzIHRoZSBwYXJhbWV0ZXIuCisgKiBbb3JnLmFwYWNoZS5jZXJlYnVzLkFjY291bnQ7c3RvcmVdLgorICoKKyAqIEB2ZXJzaW9uICRSZXYkICREYXRlJAorICovCitwdWJsaWMgY2xhc3MgUHJvY2Vzc0Rpc3BhdGNoQWN0aW9uIGV4dGVuZHMgUHJvY2Vzc0Zvcm1BY3Rpb24geworCisgICAgLyoqCisgICAgICogVGhlIHNldCBvZiBhcmd1bWVudCB0eXBlIGNsYXNzZXMgZm9yIHRoZSByZWZsZWN0ZWQgbWV0aG9kIGNhbGwuCisgICAgICogVGhlc2UgYXJlIHRoZSBzYW1lIGZvciBhbGwgY2FsbHMsIHNvIGNhbGN1bGF0ZSB0aGVtIG9ubHkgb25jZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBDbGFzcyB0eXBlc1tdID0geyBPYmplY3QuY2xhc3MgfTsKKworCisgICAgLyoqCisgICAgICogRXJyb3IgaGFuZGxlci4KKyAgICAgKiBQb3N0cyBhIG1lc3NhZ2UgdGVtcGxhdGUgYW5kIHR3byBwYXJhbWV0ZXJzIGluIGEgUHJvY2Vzc1Jlc3VsdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwcm9jZXNzRXJyb3IoUHJvY2Vzc1Jlc3VsdCByZXN1bHQsIFN0cmluZyB0ZW1wbGF0ZSwKKyAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nKSB7CisgICAgICAgIHJlc3VsdCA9IG5ldyBQcm9jZXNzUmVzdWx0QmFzZSh0aGlzKTsKKyAgICAgICAgcmVzdWx0LmFkZE1lc3NhZ2UodGVtcGxhdGUpOworICAgICAgICByZXN1bHQuYWRkTWVzc2FnZShtYXBwaW5nLmdldFBhdGgoKSk7CisgICAgICAgIHJlc3VsdC5hZGRNZXNzYWdlKG1hcHBpbmcuZ2V0UGFyYW1ldGVyKCkpOworICAgIH0KKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHVibGljIE1ldGhvZHMKKworICAgIC8qKgorICAgICAqIEluc3RhbnRpYXRlIGhlbHBlciBvYmplY3QgZnJvbSB0aGUgdHlwZSBnaXZlbiBhcyB0aGUKKyAgICAgKiBmaXJzdCBBY3Rpb25NYXBwaW5nIHBhcmFtZXRlciBhbmQgZXhlY3V0ZSB0aGUgbWV0aG9kIGdpdmVuCisgICAgICogYXMgdGhlIHNlY29uZCBwYXJhbWV0ZXIgKGRlbGltaXRlZCB3aXRoIHNlbWljb2xvbnMpLgorICAgICAqIDxwPgorICAgICAqIE90aGVyd2lzZSBvcGVyYXRlcyBhcyBhIFByb2Nlc3NBY3Rpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGZvcm0gVGhlIEFjdGlvbkZvcm0KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqIDxwPgorICAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VycworICAgICAqIEBleGNlcHRpb24gU2VydmxldEV4Y2VwdGlvbiBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIG9jY3VycworICAgICAqIEB0b2RvIFJlZmFjdG9yIHNvIGJvdGggUHJvY2VzcypBY3Rpb25zIGNhbiBjYWxsIGNvcmUgbG9naWMKKyAgICAgKiBAdG9kbyBBZGQgc3VwcG9ydCBmb3IgbXV0bGlwbGUgb2JqZWN0L21ldGhvZHMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBleGVjdXRlTG9naWMoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgICAgIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgICAgICAvLyBSZXRyaWV2ZSB1c2VyIHByb2ZpbGUsIGlmIGFueQorICAgICAgICBCYXNlRm9ybSB1c2VyQmVhbiA9CisgICAgICAgICAgICBnZXRVc2VyUHJvZmlsZShtYXBwaW5nLGZvcm0scmVxdWVzdCxyZXNwb25zZSk7CisKKyAgICAgICAgTWFwIHByb3BlcnRpZXMgPSBudWxsOworCisgICAgICAgICAgICAvLyBNdW5nZSB0aGUgcGFyYW1ldGVyIHByb3BlcnR5CisgICAgICAgIFN0cmluZ1tdIHRva2VucyA9IHRva2VuaXplKG1hcHBpbmcuZ2V0UGFyYW1ldGVyKCkpOworICAgICAgICAgICAgICAgCisgICAgICAgICAgICAvLyBDcmVhdGUgb3VyIFByb2Nlc3NCZWFuIGhlbHBlcgorICAgICAgICBPYmplY3QgaGVscGVyID0gY3JlYXRlSGVscGVyT2JqZWN0KHJlcXVlc3QsdG9rZW5zWzBdKTsKKyAgICAgICAgUHJvY2Vzc0JlYW4gZGF0YUJlYW4gPSAoUHJvY2Vzc0JlYW4pIGhlbHBlcjsKKyAgICAgICAgCisgICAgICAgICAgICAvLyBQYXNzIGFsb25nIHRoZSBoZWxwZXIncyBwYXJhbWV0ZXIsIGlmIGFueQorICAgICAgICBpZiAodG9rZW5zLmxlbmd0aD4yKSB7CisgICAgICAgICAgICBkYXRhQmVhbi5zZXRQYXJhbWV0ZXIodG9rZW5zWzJdKTsKKyAgICAgICAgfQorCisgICAgICAgIHByb3BlcnRpZXMgPSBudWxsOworICAgICAgICBpZiAobnVsbCE9Zm9ybSkgeworICAgICAgICAgICAgaWYgKGZvcm0gaW5zdGFuY2VvZiBCYXNlRm9ybSkgeworCisgICAgICAgICAgICAgICAgQmFzZUZvcm0gZm9ybUJlYW4gPSAoQmFzZUZvcm0pIGZvcm07CisKKyAgICAgICAgICAgICAgICAgICAgLy8gTWVyZ2UgdXNlciBwcm9maWxlIChpZiBmb3VuZCkKKyAgICAgICAgICAgICAgICAgICAgLy8gYW5kIG91ciBmb3JtIGludG8gYSBzaW5nbGUgbWFwCisgICAgICAgICAgICAgICAgcHJvcGVydGllcyA9IGZvcm1CZWFuLm1lcmdlKHVzZXJCZWFuKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBQYXNzIHVwIHRoZSBMb2NhbGUgYW5kIFJlbW90ZVNlcnZlciAoaWYgYW55KQorICAgICAgICAgICAgICAgIGRhdGFCZWFuLnNldExvY2FsZShmb3JtQmVhbi5nZXRTZXNzaW9uTG9jYWxlKCkpOworICAgICAgICAgICAgICAgIGRhdGFCZWFuLnNldFJlbW90ZVNlcnZlcihnZXRSZW1vdGVTZXJ2ZXIoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0gUHJvcGVydHlVdGlscy5kZXNjcmliZShmb3JtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAvLyBlbmQgbnVsbCBmb3JtCisgICAgICAgIGVsc2UgaWYgKG51bGwhPXVzZXJCZWFuKSB7CisgICAgICAgICAgICAgICAgLy8gaWYgbm8gZm9ybSwgYnV0IGlzIHByb2ZpbGUsIHN0aWxsIHVzZSBwcm9maWxlCisgICAgICAgICAgICBwcm9wZXJ0aWVzID0gUHJvcGVydHlVdGlscy5kZXNjcmliZSh1c2VyQmVhbik7CisgICAgICAgIH0KKworICAgICAgICAgICAgLy8gRXhlY3V0ZSBidXNpbmVzcyBsb2dpYywgdXNpbmcgdmFsdWVzIGZyb20gIG1hcAorICAgICAgICBNZXRob2QgbWV0aG9kID0gZGF0YUJlYW4uZ2V0Q2xhc3MoKS5nZXRNZXRob2QodG9rZW5zWzFdLHR5cGVzKTsKKyAgICAgICAgT2JqZWN0IGFyZ3NbXSA9IHsgcHJvcGVydGllcyB9OworCisgICAgICAgIFByb2Nlc3NSZXN1bHQgcmVzdWx0ID0gbnVsbDsKKworICAgICAgICB0cnkgeworCisgICAgICAgICAgICByZXN1bHQgPSAoUHJvY2Vzc1Jlc3VsdCkgbWV0aG9kLmludm9rZShkYXRhQmVhbixhcmdzKTsKKworICAgICAgICB9CisKKyAgICAgICAgY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBlKSB7CisKKyAgICAgICAgICAgIHByb2Nlc3NFcnJvcihyZXN1bHQsVG9rZW5zLkVSUk9SX0RJU1BBVENIX1JFVFVSTixtYXBwaW5nKTsKKyAgICAgICAgfQorCisgICAgICAgIGNhdGNoIChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGUpIHsKKworICAgICAgICAgICAgcHJvY2Vzc0Vycm9yKHJlc3VsdCxUb2tlbnMuRVJST1JfRElTUEFUQ0hfUkVUVVJOLG1hcHBpbmcpOworICAgICAgICB9CisKKyAgICAgICAgY2F0Y2ggKEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24gZSkgeworCisgICAgICAgICAgICAvLyBSZXRocm93IHRoZSB0YXJnZXQgZXhjZXB0aW9uIGlmIHBvc3NpYmxlIHNvIHRoYXQgdGhlCisgICAgICAgICAgICAvLyBleGNlcHRpb24gaGFuZGxpbmcgbWFjaGluZXJ5IGNhbiBkZWFsIHdpdGggaXQKKyAgICAgICAgICAgIFRocm93YWJsZSB0ID0gZS5nZXRUYXJnZXRFeGNlcHRpb24oKTsKKyAgICAgICAgICAgIGlmICh0IGluc3RhbmNlb2YgRXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgKChFeGNlcHRpb24pIHQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9jZXNzRXJyb3IocmVzdWx0LFRva2Vucy5FUlJPUl9ESVNQQVRDSCxtYXBwaW5nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEV4ZWN1dGUgYnVzaW5lc3MgbG9naWMsIHVzaW5nICBtYXAKKyAgICAgICAgY2hlY2tPdXRjb21lKG1hcHBpbmcscmVxdWVzdCxyZXNwb25zZSxyZXN1bHQpOworICAgICB9CisKK30gLy8gZW5kIFByb2Nlc3NEaXNwYXRjaEFjdGlvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL1Byb2Nlc3NGb3JtQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9Qcm9jZXNzRm9ybUFjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhZWY5NjEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9Qcm9jZXNzRm9ybUFjdGlvbi5qYXZhCkBAIC0wLDAgKzEsMTM1IEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMjAwMS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQ7CisKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkJlYW5VdGlsczsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5zY2FmZm9sZC5sYW5nLkxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuc2NhZmZvbGQubGFuZy5Ub2tlbnM7CisKKy8qKgorICogUHJvY2Vzc0FjdGlvbiBzdWJjbGFzcyB0aGF0IGNoZWNrcyB0byBzZWUgaWYgYSBhbm90aGVyCisgKiBiZWFuIGV4aXN0cyBpbiB0aGUgcmVxdWVzdCBzY29wZSBiZWZvcmUgb3ZlcndyaXRpbmcgaXQuCisgKiBJZiBhbm90aGVyIGJlYW4gaXMgcHJlc2VudCwgaXQgaXMgcG9wdWxhdGVkIGZyb20gdGhlCisgKiBQcm9jZXNzQmVhbi4KKyAqIDxQPgorICogQW55IEphdmFCZWFuIGNhbiBiZSB1c2VkIHRvIHBvcHVsYXRlIGEgU3RydXRzIHByZXNlbnRhdGlvbgorICogcGFnZSwgYW5kIGl0IGlzIG5vdCBhbHdheXMgbmVjZXNzYXJ5IHRvIHRyYW5zZmVyIGRhdGEgZnJvbQorICogYSBidXNpbmVzcyBiZWFuIHRvIGEgZm9ybSBiZWFuLgorICogT3RoZXIgdGltZXMsIHRoZSBmb3JtIGJlYW4gd2lsbCBoYXZlIHNwZWNpYWwgaGVscGVyCisgKiBwcm9wZXJ0aWVzIGZvciB0aGUgYmVuZWZpdCBvZiB0aGUgcHJlc2VudGF0aW9uIGxheWVyLgorICogRm9yIGV4YW1wbGUsIGEgc2Vjb25kIHBhc3N3b3JkIGZpZWxkIG1heSBiZSBuZWVkZWQgdG8KKyAqIHZhbGlkYXRlIHRoZSB1c2VyJ3MgZGF0YS1lbnRyeSBidXQgd291bGQgbm90IGJlIHBhcnQgb2YKKyAqIHRoZSBidXNpbmVzcyBBUEkuCisgKiA8UD4KKyAqIFRoZSA8Q09ERT5Qcm9jZXNzRm9ybUFjdGlvbjwvQ09ERT4gd2lsbCBjaGVjayB0byBzZWUgaWYKKyAqIGFub3RoZXIgYmVhbiBpcyBpbiBzY29wZSAocHJlc3VtYWJseSBhIGZvcm0gYmVhbikuCisgKiBJZiBhbm90aGVyIGJlYW4gZXhpc3RzLCBQcm9jZXNzRm9ybUFjdGlvbiBwb3B1bGF0ZXMgaXQKKyAqIGZyb20gdGhlIGJ1c2luZXNzIGJlYW4sCisgKiBUaGUgbmV0IHJlc3VsdCBpcyBhbiBhdXRvbWF0aWMgZGF0YSB0cmFuc2ZlciBmcm9tIGEKKyAqIGJ1c2luZXNzIGJlYW4gdG8gdGhlIGZvcm0gYmVhbi4KKyAqCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGNsYXNzIFByb2Nlc3NGb3JtQWN0aW9uIGV4dGVuZHMgUHJvY2Vzc0FjdGlvbiB7CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIEV4cG9zZXMgcmVzdWx0IGluIGEgc2VydmxldCBjb250ZXh0LgorICAgICAqIElmIHRoZXJlIGlzIGFuIGV4aXN0aW5nIGJlYW4gd2l0aCBzYW1lIGF0dHJpYnV0ZSBuYW1lIGluIHRoZSB0YXJnZXQKKyAgICAgKiBjb250ZXh0LAorICAgICAqIHRoZW4gdGhlIG1hdGNoaW5nIHByb3BlcnRpZXMgb24gdGhhdCBiZWFuIGFyZSBwb3B1bGF0ZWQgd2l0aCB0aGUKKyAgICAgKiByZXN1bHQuCisgICAgICogOlRPRE86IENoYW5nZSBmcm9tIEJlYW5VdGlsLnBvcHVsYXRlIHRvIGNvcHlQcm9wZXJ0aWVzCisgICAgICogaW4gMS4xIHZlcnNpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCB0aGUgcmVxdWVzdCBiZWluZyBzZXJ2aWNlZAorICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIHRvIHVzZSBpbiBzY29wZQorICAgICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgdG8gc2V0IHRoZSBhdHRyaWJ1dGUgaW4KKyAgICAgKiBAcGFyYW0gYmVhbiBUaGUgYXR0cmlidXRlIHRvIGJlIHNldAorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGV4cG9zZUluU2NvcGUoCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UsCisgICAgICAgICAgICBTdHJpbmcgbmFtZSwKKyAgICAgICAgICAgIFN0cmluZyBzY29wZSwKKyAgICAgICAgICAgIE9iamVjdCBiZWFuKSB7CisKKyAgICAgICAgaWYgKG51bGw9PXNjb3BlKSB7CisgICAgICAgICAgICAvLworICAgICAgICB9CisgICAgICAgIGlmIChudWxsPT1iZWFuKSBzdXBlci5leHBvc2VJblNjb3BlKHJlcXVlc3QscmVzcG9uc2UsbmFtZSxzY29wZSxiZWFuKTsKKyAgICAgICAgZWxzZSBpZiAoVG9rZW5zLlJFUVVFU1QuZXF1YWxzKHNjb3BlKSkgeworICAgICAgICAgICAgT2JqZWN0IGZvcm0gPSByZXF1ZXN0LmdldEF0dHJpYnV0ZShuYW1lKTsKKyAgICAgICAgICAgIGlmIChudWxsPT1mb3JtKSB7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5zZXRBdHRyaWJ1dGUobmFtZSxiZWFuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIEJlYW5VdGlscy5jb3B5UHJvcGVydGllcyhmb3JtLGJlYW4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZS50b1N0cmluZygpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoVG9rZW5zLlNFU1NJT04uZXF1YWxzKHNjb3BlKSkgeworICAgICAgICAgICAgT2JqZWN0IGZvcm0gPSByZXF1ZXN0LmdldFNlc3Npb24oKS5nZXRBdHRyaWJ1dGUobmFtZSk7CisgICAgICAgICAgICBpZiAobnVsbD09Zm9ybSkgeworICAgICAgICAgICAgICAgIHJlcXVlc3QuZ2V0U2Vzc2lvbigpLnNldEF0dHJpYnV0ZShuYW1lLGJlYW4pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgQmVhblV0aWxzLmNvcHlQcm9wZXJ0aWVzKGZvcm0sYmVhbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUnVudGltZUV4Y2VwdGlvbihlLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChUb2tlbnMuQVBQTElDQVRJT04uZXF1YWxzKHNjb3BlKSkgeworICAgICAgICAgICAgT2JqZWN0IGZvcm0gPSBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkuZ2V0QXR0cmlidXRlKG5hbWUpOworICAgICAgICAgICAgaWYgKG51bGw9PWZvcm0pIHsKKyAgICAgICAgICAgICAgICBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkuc2V0QXR0cmlidXRlKG5hbWUsYmVhbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBCZWFuVXRpbHMuY29weVByb3BlcnRpZXMoZm9ybSxiZWFuKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUudG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigiZXhwb3NlSW5TY29wZTogIik7CisgICAgICAgICAgICBzYi5hcHBlbmQoc2NvcGUpOworICAgICAgICAgICAgc2IuYXBwZW5kKFRva2Vucy5JTlZBTElEX1NDT1BFKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24oc2IudG9TdHJpbmcoKSk7CisgICAgICAgIH0KKworICAgIH0gLy8gZW5kIGV4cG9zZUluU2NvcGUoKQorCit9IC8vIGVuZCBQcm9jZXNzRm9ybUFjdGlvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL1JlY3JlYXRlU2Vzc2lvbkFjdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvUmVjcmVhdGVTZXNzaW9uQWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc2OGRkMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL1JlY3JlYXRlU2Vzc2lvbkFjdGlvbi5qYXZhCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAyMDAxLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIAorICAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQ7CisKKworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb247CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuR2xvYmFsczsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5zY2FmZm9sZC5sYW5nLlRva2VuczsKKworCisvKioKKyAqIENyZWF0ZSBhIG5ldyBzZXNzaW9uLCBwZXJzZXJ2aW5nIGFueSBsb2NhbGUgYXR0cmlidXRlCisgKiBmcm9tIHRoZSBjdXJyZW50IHNlc3Npb24uCisgKgorICogQHZlcnNpb24gJFJldiQgJERhdGUkCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBSZWNyZWF0ZVNlc3Npb25BY3Rpb24gZXh0ZW5kcyBCYXNlQWN0aW9uIHsKKworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIG5ldyBzZXNzaW9uLCBwZXJzZXJ2aW5nIGFueSBwcmlvciBMb2NhbGUgYXR0cmlidXRlLgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSBmb3JtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdAorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgKiBAcGFyYW0gcmVzcG9uc2UgVGhlIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqIEB0b2RvIEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBhdHRyaWJ1dGVzCisgICAgICogQGZpeG1lIE5lZWRzIHRvIGJlIHRlc3RlZC4KKyAgICAgKi8KKyAgIHByb3RlY3RlZCBBY3Rpb25Gb3J3YXJkIGZpbmRTdWNjZXNzKAorICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKSB7CisKKyAgICAgICAgSHR0cFNlc3Npb24gc2Vzc2lvbiA9IHJlcXVlc3QuZ2V0U2Vzc2lvbigpOworCisgICAgICAgIExvY2FsZSBsb2NhbGUgPSAoTG9jYWxlKSBzZXNzaW9uLmdldEF0dHJpYnV0ZShHbG9iYWxzLkxPQ0FMRV9LRVkpOworCisgICAgICAgIHNlc3Npb24uaW52YWxpZGF0ZSgpOworCisgICAgICAgIHNlc3Npb24gPSByZXF1ZXN0LmdldFNlc3Npb24odHJ1ZSk7CisKKyAgICAgICAgc2Vzc2lvbi5zZXRBdHRyaWJ1dGUoR2xvYmFscy5MT0NBTEVfS0VZLGxvY2FsZSk7CisKKyAgICAgICAgcmV0dXJuIG1hcHBpbmcuZmluZEZvcndhcmQoVG9rZW5zLlNVQ0NFU1MpOworICAgIH0KKworfSAvLyBlbmQgUmVjcmVhdGVTZXNzaW9uQWN0aW9uClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvUmVsYXlBY3Rpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL1JlbGF5QWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzA2MGRjNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL1JlbGF5QWN0aW9uLmphdmEKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDIwMDEtMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgCisgCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnNjYWZmb2xkOworCitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLnNjYWZmb2xkLmxhbmcuVG9rZW5zOworCisKKy8qKgorICogU3RhbmRhcmQgQWN0aW9uIHRvIGZvcndhcmQgY29udHJvbCB0byBhbm90aGVyIG1hcHBpbmcKKyAqIGdpdmVuIGFzIGEgcnVudGltZSBwYXJhbWV0ZXIgKD9kaXNwYXRjaD0pLgorICogPHA+CisgKiBUaGlzIGNsYXNzIGV4dGVuZHMgQmFzZUFjdGlvbiB0byBwcm92aWRlCisgKiBjcm9zcy1jb21wYXRpYmlsaXR5IHdpdGggU3RydXRzIDEuMSBhbmQgMS4wCisgKgorICogQHZlcnNpb24gJFJldiQgJERhdGUkCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBSZWxheUFjdGlvbiBleHRlbmRzIEJhc2VBY3Rpb24geworCisgICAgLyoqCisgICAgICogTG9va3MgZm9yIGEgcnVudGltZSBwYXJhbWV0ZXIgbmFtZWQgImRpc3BhdGNoIiwKKyAgICAgKiBhbmQgdXNlcyBpdHMgdmFsdWUgdG8gc2VhcmNoIGZvciBhbiBBY3Rpb25Gb3J3YXJkLgorICAgICAqIDxwPgorICAgICAqIDxjb2RlPmRpc3BhdGNoPWZpbmRCeVRpbGU8L2NvZGU+IHdpbGwgcmV0dXJuCisgICAgICogdGhlIEFjdGlvbkZvcndhcmQgbmFtZWQgImZpbmRCeVRpdGxlIi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gZm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSkKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQWN0aW9uRm9yd2FyZCBmaW5kU3VjY2VzcygKKyAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkgeworCisgICAgICAgIHJldHVybiBtYXBwaW5nLmZpbmRGb3J3YXJkKHJlcXVlc3QuZ2V0UGFyYW1ldGVyKFRva2Vucy5ESVNQQVRDSCkpOworCisgICAgfSAvLyBlbmQgZmluZFN1Y2Nlc3MKKworfSAvLyBlbmQgUmVsYXlBY3Rpb24KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9SZW1vdmVBdHRyaWJ1dGVBY3Rpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL1JlbW92ZUF0dHJpYnV0ZUFjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0ZWNkYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9SZW1vdmVBdHRyaWJ1dGVBY3Rpb24uamF2YQpAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDIwMDEtMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisgCisgCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnNjYWZmb2xkOworCisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworCisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3I7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkVycm9yczsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5zY2FmZm9sZC5sYW5nLlRva2VuczsKKworCisvKioKKyAqIFJlbW92ZSBhbiBvYmplY3QgZnJvbSB0aGUgdXNlcidzIHNlc3Npb24uCisgKiBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlIGlzIHBhc3NlZCB2aWEgdGhlIHBhcmFtZXRlciBwcm9wZXJ0eS4KKyAqCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFJlbW92ZUF0dHJpYnV0ZUFjdGlvbiBleHRlbmRzIEJhc2VBY3Rpb24geworCisKKyAgICAvKioKKyAgICAgKiAvLyA6RklYTUU6IE5lZWRzIHRvIGJlIHRlc3RlZC48cD4KKyAgICAgKiBBdHRlbXB0IHRvIHJlbW92ZSBhbiBhdHRyaWJ1dGUgZnJvbSBhIHNlcnZsZXQgY29udGV4dC4KKyAgICAgKiBGaW5kICJzdWNjZXNzIiBpZiBhdHRyaWJ1dGUgZXhpc3RzLCBvciAiZmFpbHVyZSIgaWYgbm90LgorICAgICAqCisgICAgICogVGhlIHNlcnZsZXQgY29udGV4dCBhbmQgYXR0cmlidXRlcyBhcmUgc3BlY2lmaWVkIGFzIHRoZQorICAgICAqIHBhcmFtZXRlcnMgcHJvcGVydHksIHNlcGVyYXRlZCBieSBzZW1pLWNvbG9ucworICAgICAqIFtwYXJhbWV0ZXI9ImFwcGxpY2F0aW9uO0hPVVJTXS4KKyAgICAgKiBub24tZXJyb3Igc3RhdGUuCisgICAgICoKKyAgICAgKiBUbyBpbmRpY2F0ZSB0aGF0IGFsbCBzY29wZXMgYXJlIHRvIGJlIGNoZWNrZWQsCisgICAgICogc3BlY2lmeSBhbiBhc3RlcmlzayBpbnN0ZWFkIG9mIHRoZSBzY29wZSBuYW1lCisgICAgICogW3BhcmFtZXRlcj0iKjtIT1VSU10uIFRoZSBhdHRyaWJ1dGUgd2lsbCBiZSByZW1vdmVkCisgICAgICogZnJvbSA8Yj5vbmx5PC9iPiB0aGUgZmlyc3QgY29udGV4dCBmb3VuZC4KKyAgICAgKgorICAgICAqIElmIGJvdGggcGFyYW1ldGVycyBhcmUgbm90IGdpdmVuLCBhbiBlcnJvciBpcyBzZXQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0CisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nCisgICAgICogQHRvZG8gQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIGF0dHJpYnV0ZXMKKyAgICAgKiBAZml4bWUgTmVlZHMgdG8gYmUgdGVzdGVkLgorICAgICAqLworICAgcHJvdGVjdGVkIEFjdGlvbkZvcndhcmQgZmluZFN1Y2Nlc3MoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpIHsKKworICAgICAgICBTdHJpbmdbXSBwYXJhbWV0ZXJzID0gdG9rZW5pemUobWFwcGluZy5nZXRQYXJhbWV0ZXIoKSk7CisKKyAgICAgICAgICAgIC8vIElmIG5vdCAyKyBwYXJhbWV0ZXJzLCBiYWlsCisgICAgICAgIGlmICgyPnBhcmFtZXRlcnMubGVuZ3RoKSB7CisgICAgICAgICAgICBBY3Rpb25FcnJvcnMgZXJyb3JzID0gbmV3IEFjdGlvbkVycm9ycygpOworICAgICAgICAgICAgZXJyb3JzLmFkZChBY3Rpb25FcnJvcnMuR0xPQkFMX0VSUk9SLAorICAgICAgICAgICAgICAgIG5ldyBBY3Rpb25FcnJvcihUb2tlbnMuUFJPQ0VTU19NSVNTSU5HX1BBUkFNRVRFUikpOworICAgICAgICAgICAgc2F2ZUVycm9ycyhyZXF1ZXN0LGVycm9ycyk7CisgICAgICAgICAgICByZXR1cm4gbWFwcGluZy5maW5kRm9yd2FyZChUb2tlbnMuRkFJTFVSRSk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgc2NvcGUgPSBwYXJhbWV0ZXJzWzBdOworICAgICAgICBPYmplY3QgYmVhbiA9IG51bGw7CisgICAgICAgIFN0cmluZyBuYW1lID0gcGFyYW1ldGVyc1sxXTsKKworICAgICAgICAvLyA6VE9ETzogQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIGF0dHJpYnV0ZXMKKworICAgICAgICBib29sZWFuIGFueSA9ICgiKiIuZXF1YWxzKHNjb3BlKSk7CisKKyAgICAgICAgaWYgKGFueSkgeworCisgICAgICAgICAgICBiZWFuID0gcmVxdWVzdC5nZXRBdHRyaWJ1dGUobmFtZSk7CisgICAgICAgICAgICBpZiAobnVsbCE9YmVhbikKKyAgICAgICAgICAgICAgICByZXF1ZXN0LnJlbW92ZUF0dHJpYnV0ZShuYW1lKTsKKworICAgICAgICAgICAgaWYgKG51bGw9PWJlYW4pIHsKKyAgICAgICAgICAgICAgICBiZWFuID0gcmVxdWVzdC5nZXRTZXNzaW9uKCkuZ2V0QXR0cmlidXRlKG5hbWUpOworICAgICAgICAgICAgICAgIGlmIChudWxsIT1iZWFuKQorICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmdldFNlc3Npb24oKS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChudWxsPT1iZWFuKSB7CisgICAgICAgICAgICAgICAgYmVhbiA9IHNlcnZsZXQuZ2V0U2VydmxldENvbnRleHQoKS5nZXRBdHRyaWJ1dGUobmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKG51bGwhPWJlYW4pCisgICAgICAgICAgICAgICAgICAgIHNlcnZsZXQuZ2V0U2VydmxldENvbnRleHQoKS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfSAvLyBlbmQgYW55CisKKyAgICAgICAgZWxzZSB7CisKKyAgICAgICAgICAgIGlmIChUb2tlbnMuUkVRVUVTVC5lcXVhbHMoc2NvcGUpKSB7CisgICAgICAgICAgICAgICAgYmVhbiA9IHJlcXVlc3QuZ2V0QXR0cmlidXRlKG5hbWUpOworICAgICAgICAgICAgICAgIHJlcXVlc3QucmVtb3ZlQXR0cmlidXRlKG5hbWUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoVG9rZW5zLlNFU1NJT04uZXF1YWxzKHNjb3BlKSkgeworICAgICAgICAgICAgICAgIGJlYW4gPSByZXF1ZXN0LmdldFNlc3Npb24oKS5nZXRBdHRyaWJ1dGUobmFtZSk7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5nZXRTZXNzaW9uKCkucmVtb3ZlQXR0cmlidXRlKG5hbWUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoVG9rZW5zLkFQUExJQ0FUSU9OLmVxdWFscyhzY29wZSkpIHsKKyAgICAgICAgICAgICAgICBiZWFuID0gc2VydmxldC5nZXRTZXJ2bGV0Q29udGV4dCgpLmdldEF0dHJpYnV0ZShuYW1lKTsKKyAgICAgICAgICAgICAgICBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkucmVtb3ZlQXR0cmlidXRlKG5hbWUpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0gLy8gZW5kICFhbnkKKworCisgICAgICAgIGlmIChudWxsPT1iZWFuKSB7CisKKyAgICAgICAgICAgIHJldHVybiBtYXBwaW5nLmZpbmRGb3J3YXJkKFRva2Vucy5GQUlMVVJFKTsKKworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG1hcHBpbmcuZmluZEZvcndhcmQoVG9rZW5zLlNVQ0NFU1MpOworICAgIH0KKworfSAvLyBlbmQgUmVtb3ZlQXR0cmlidXRlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvUmVzb3VyY2VzLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9SZXNvdXJjZXMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hM2I4ZTY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvUmVzb3VyY2VzLnByb3BlcnRpZXMKQEAgLTAsMCArMSw0NCBAQAorIyBAdmVyc2lvbiAkUmV2aXNpb246IDEuNCAkICREYXRlJAorIworIyAtLSEhIEZPUiBSRUZFUkVOQ0UgT05MWSAhIS0tIAorIyAtLSEhIFlPVSBNVVNUIENPUFkgVEhFU0UgVE8gWU9VUiBBUFBMSUNBVElPTidTIEZJTEUgISEtLQorIyAtLSBTZWUgYWxzbyBjb25zdGFudHMgaW4gbGFuZy9Ub2tlbnMgLS0KKyMKKyMKK2Vycm9ycy5oZWFkZXI9CitlcnJvcnMuZm9vdGVyPQorZXJyb3IuY2FuY2VsPU9wZXJhdGlvbiBjYW5jZWxsZWQuCitlcnJvci5kZXRhaWw9ezB9CitlcnJvci5nZW5lcmFsPVRoZSBwcm9jZXNzIGRpZCBub3QgY29tcGxldGUuIERldGFpbHMgc2hvdWxkIGZvbGxvdy4KK2Vycm9yLnRva2VuPVJlcXVlc3QgY291bGQgbm90IGJlIGNvbXBsZXRlZC4gT3BlcmF0aW9uIGlzIG5vdCBpbiBzZXF1ZW5jZS4KK2Vycm9yLmRpc3BhdGNoPVByb2Nlc3MgY291bGQgbm90IGJlIGRpc3BhdGNoZWQuIFBhdGg6IFt7MH1dLiBQYXJhbWV0ZXI6IFt7MX1dLgorZXJyb3IuZGlzcGF0Y2gucmV0dXJuPVRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHByb2Nlc3MgaXMgbm90IGNvcnJlY3QuIFBhdGg6IFt7MH1dLiBQYXJhbWV0ZXI6IFt7MX1dLgorIyAtLSB2YWxpZGF0b3IgLS0KK2Vycm9ycy5yZXF1aXJlZD17MH0gaXMgcmVxdWlyZWQuCitlcnJvcnMubWlubGVuZ3RoPXswfSBjYW4gbm90IGJlIGxlc3MgdGhhbiB7MX0gY2hhcmFjdGVycy4KK2Vycm9ycy5tYXhsZW5ndGg9ezB9IGNhbiBub3QgYmUgZ3JlYXRlciB0aGFuIHsxfSBjaGFyYWN0ZXJzLgorZXJyb3JzLmludmFsaWQ9ezB9IGlzIGludmFsaWQuCitlcnJvcnMuYnl0ZT17MH0gbXVzdCBiZSBhbiBieXRlLgorZXJyb3JzLnNob3J0PXswfSBtdXN0IGJlIGFuIHNob3J0LgorZXJyb3JzLmludGVnZXI9ezB9IG11c3QgYmUgYW4gaW50ZWdlci4KK2Vycm9ycy5sb25nPXswfSBtdXN0IGJlIGFuIGxvbmcuCitlcnJvcnMuZmxvYXQ9ezB9IG11c3QgYmUgYW4gZmxvYXQuCitlcnJvcnMuZG91YmxlPXswfSBtdXN0IGJlIGFuIGRvdWJsZS4KK2Vycm9ycy5kYXRlPXswfSBpcyBub3QgYSBkYXRlLgorZXJyb3JzLnJhbmdlPXswfSBpcyBub3QgaW4gdGhlIHJhbmdlIHsxfSB0aHJvdWdoIHsyfS4KK2Vycm9ycy5jcmVkaXRjYXJkPXswfSBpcyBub3QgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuCitlcnJvcnMuZW1haWw9ezB9IGlzIGFuIGludmFsaWQgZS1tYWlsIGFkZHJlc3MuCisjIC0tIGRhdGEgLS0KK2RhdGEuYWNjZXNzLmRlbmllZD1BY2Nlc3MgZGVuaWVkLgorZGF0YS5hY2Nlc3MuZXJyb3I9VW5hYmxlIHRvIGFjY2VzcyBkYXRhYmFzZS4KK2RhdGEuYWNjZXNzLmVtcHR5PVJlcXVlc3RlZCByZWNvcmRzIHdlcmUgbm90IGZvdW5kLgorZGF0YS5yZWNvcmQuaW5zZXJ0ZWQ9UmVjb3JkIHswfSBpbnNlcnRlZC4KK2RhdGEucmVjb3JkLnVwZGF0ZWQ9UmVjb3JkIHswfSB1cGRhdGVkLgorZGF0YS5yZWNvcmQuZGVsZXRlZD1SZWNvcmQgezB9IGRlbGV0ZWQuCitkYXRhLnJlY29yZC5yZWN5Y2xlZD1SZWNvcmQgezB9IG1hcmtlZCBmb3IgZGVsZXRpb24uCitkYXRhLnJlY29yZC5yZXN0b3JlZD1SZWNvcmQgezB9IHJlc3RvcmVkLgorZGF0YS5yZWNvcmQuZHVwbGljYXRlPXswfSBpcyBhbHJlYWR5IGluIHVzZS4gUGxlYXNlIHNlbGVjdCBhbm90aGVyIHZhbHVlLgorZGF0YS50cmFuc2Zlci5lcnJvcj1VbmFibGUgdG8gdHJhbnNmZXIgZGF0YS4KKyMgLS0gcHJvY2VzcyAtLSAKK3Byb2Nlc3MuY29tcGxldGU9UHJvY2VzcyBjb21wbGV0ZS4KK3Byb2Nlc3MubWlzc2luZy5wYXJhbWV0ZXI9QSByZXF1aXJlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZy4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL1NldFBhdGhzQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9TZXRQYXRoc0FjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyMGQzNDEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9TZXRQYXRoc0FjdGlvbi5qYXZhCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAyMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAKKyAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQ7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnNjYWZmb2xkLkJhc2VBY3Rpb247CisKKworLyoqCisgKiBTdGFuZGFyZCBBY3Rpb24gdG8gc2V0IHRoZSBwYXRocyBmcm9tCisgKiBlbnVtZXJhdGVkIGZvcndhcmRzIGFzIHJlcXVlc3QgYXR0cmlidXRlcy4KKyAqCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFNldFBhdGhzQWN0aW9uIGV4dGVuZHMgQmFzZUFjdGlvbiB7CisKKworICAgIC8qKgorICAgICAqIExvb2t1cCB0aGUgZm9yd2FyZCBlYWNoIHRva2VuIGdpdmVuIG9uIHRoZSBwYXJhbWV0ZXIgcHJvcGVydHksCisgICAgICogYW5kIHNldCBpdHMgcGF0aCBhcyBhIHJlcXVlc3QgYXR0cmlidXRlIHVuZGVyIHRoZSB0b2tlbiBuYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSBmb3JtIFRoZSBBY3Rpb25Gb3JtCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKiA8cD4KKyAgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKyAgICAgKiBAZXhjZXB0aW9uIFNlcnZsZXRFeGNlcHRpb24gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnMKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBleGVjdXRlTG9naWMoCisgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgICAgIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIFN0cmluZ1tdIHRva2VucyA9IHRva2VuaXplKG1hcHBpbmcuZ2V0UGFyYW1ldGVyKCkpOworICAgICAgICBpbnQgaGVscGVyQ291bnQgPSB0b2tlbnMubGVuZ3RoOworCisgICAgICAgIGZvciAoaW50IGk9MDsgaTxoZWxwZXJDb3VudDsgaSsrKSB7CisgICAgICAgICAgICByZXF1ZXN0LnNldEF0dHJpYnV0ZSgKKyAgICAgICAgICAgICAgICB0b2tlbnNbaV0sCisgICAgICAgICAgICAgICAgbWFwcGluZy5maW5kRm9yd2FyZCh0b2tlbnNbaV0pLmdldFBhdGgoKSk7CisgICAgICAgIH0KKworICAgIH0KKworfSAvLyBlbmQgU2V0UGF0aHNBY3Rpb24KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zY2FmZm9sZC9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy9zY2FmZm9sZC9Tbm9vcEFjdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvU25vb3BBY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTZhZWUzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvU25vb3BBY3Rpb24uamF2YQpAQCAtMCwwICsxLDE3NCBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworIAorIC8qCisgICogRGVyaXZlZCBmcm9tIHRoZSBKZXR0eSBTbm9vcFNlcnZsZXQKKyAgKiA8aHR0cDovL3d3dy50aGVjb3J0ZXgubmV0L2Nsb3Zlci9lZy9qZXR0eS9yZXBvcnQvZGVmYXVsdC1wa2cvU25vb3BTZXJ2bGV0Lmh0bWw+CisgICogYW5kIGRpc3RyaWJ1dGVkIHVuZGVyIGl0cyBvcGVuIHNvdXJjZSBsaWNlbnNlCisgICogPGh0dHA6Ly9qZXR0eS5tb3J0YmF5Lm9yZy9qZXR0eS9MSUNFTlNFLmh0bWw+LgorICAqIFRoZSBvbmx5IG1vZGlmaWNhdGlvbnMgd2VyZSB0byBjaGFuZ2UgdGhlIG1ldGhvZAorICAqIHNpZ25hdHVyZXMgdG8gbWFrZSB0aGUgc2VydmxldCBhbiBBY3Rpb24uCisgICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQ7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uKjsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5QcmludFdyaXRlcjsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YXguc2VydmxldC4qOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC4qOworCisvKioKKyAqCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIFNub29wQWN0aW9uIGV4dGVuZHMgQWN0aW9uIHsKKworICAgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkIHBlcmZvcm0oQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKQorICAgICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uLCBTZXJ2bGV0RXhjZXB0aW9uIHsKKyAgICAgICAgQWN0aW9uU2VydmxldCBzZXJ2bGV0ID0gZ2V0U2VydmxldCgpOworICAgICAgICBQcmludFdyaXRlciBvdXQgPSByZXNwb25zZS5nZXRXcml0ZXIoKTsKKyAgICAgICAgcmVzcG9uc2Uuc2V0Q29udGVudFR5cGUoInRleHQvcGxhaW4iKTsKKyAgICAgICAgb3V0LnByaW50bG4oIlNub29wIFNlcnZsZXQiKTsKKyAgICAgICAgb3V0LnByaW50bG4oKTsKKyAgICAgICAgb3V0LnByaW50bG4oIlNlcnZsZXQgaW5pdCBwYXJhbWV0ZXJzOiIpOworICAgICAgICBFbnVtZXJhdGlvbiBlID0gc2VydmxldC5nZXRJbml0UGFyYW1ldGVyTmFtZXMoKTsKKyAgICAgICAgd2hpbGUgKGUuaGFzTW9yZUVsZW1lbnRzKCkpIHsKKyAgICAgICAgICAgIFN0cmluZyBrZXkgPSAoU3RyaW5nKSBlLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICBTdHJpbmcgdmFsdWUgPSBzZXJ2bGV0LmdldEluaXRQYXJhbWV0ZXIoa2V5KTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCIgICAiICsga2V5ICsgIiA9ICIgKyB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgb3V0LnByaW50bG4oKTsKKworICAgICAgICBvdXQucHJpbnRsbigiQ29udGV4dCBpbml0IHBhcmFtZXRlcnM6Iik7CisgICAgICAgIFNlcnZsZXRDb250ZXh0IGNvbnRleHQgPSBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCk7CisgICAgICAgIGUgPSBjb250ZXh0LmdldEluaXRQYXJhbWV0ZXJOYW1lcygpOworICAgICAgICB3aGlsZSAoZS5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IGNvbnRleHQuZ2V0SW5pdFBhcmFtZXRlcihrZXkpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIiAgICIgKyBrZXkgKyAiID0gIiArIHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBvdXQucHJpbnRsbigpOworCisgICAgICAgIG91dC5wcmludGxuKCJDb250ZXh0IGF0dHJpYnV0ZXM6Iik7CisgICAgICAgIGUgPSBjb250ZXh0LmdldEF0dHJpYnV0ZU5hbWVzKCk7CisgICAgICAgIHdoaWxlIChlLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykgZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgT2JqZWN0IHZhbHVlID0gY29udGV4dC5nZXRBdHRyaWJ1dGUoa2V5KTsKKyAgICAgICAgICAgIG91dC5wcmludGxuKCIgICAiICsga2V5ICsgIiA9ICIgKyB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgb3V0LnByaW50bG4oKTsKKworICAgICAgICBvdXQucHJpbnRsbigiUmVxdWVzdCBhdHRyaWJ1dGVzOiIpOworICAgICAgICBlID0gcmVxdWVzdC5nZXRBdHRyaWJ1dGVOYW1lcygpOworICAgICAgICB3aGlsZSAoZS5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIE9iamVjdCB2YWx1ZSA9IHJlcXVlc3QuZ2V0QXR0cmlidXRlKGtleSk7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiICAgIiArIGtleSArICIgPSAiICsgdmFsdWUpOworICAgICAgICB9CisgICAgICAgIG91dC5wcmludGxuKCk7CisKKyAgICAgICAgb3V0LnByaW50bG4oIlNlcnZsZXQgTmFtZTogIiArIHNlcnZsZXQuZ2V0U2VydmxldE5hbWUoKSk7CisgICAgICAgIG91dC5wcmludGxuKCJQcm90b2NvbDogIiArIHJlcXVlc3QuZ2V0UHJvdG9jb2woKSk7CisgICAgICAgIG91dC5wcmludGxuKCJTY2hlbWU6ICIgKyByZXF1ZXN0LmdldFNjaGVtZSgpKTsKKyAgICAgICAgb3V0LnByaW50bG4oIlNlcnZlciBOYW1lOiAiICsgcmVxdWVzdC5nZXRTZXJ2ZXJOYW1lKCkpOworICAgICAgICBvdXQucHJpbnRsbigiU2VydmVyIFBvcnQ6ICIgKyByZXF1ZXN0LmdldFNlcnZlclBvcnQoKSk7CisgICAgICAgIG91dC5wcmludGxuKCJTZXJ2ZXIgSW5mbzogIiArIGNvbnRleHQuZ2V0U2VydmVySW5mbygpKTsKKyAgICAgICAgb3V0LnByaW50bG4oIlJlbW90ZSBBZGRyOiAiICsgcmVxdWVzdC5nZXRSZW1vdGVBZGRyKCkpOworICAgICAgICBvdXQucHJpbnRsbigiUmVtb3RlIEhvc3Q6ICIgKyByZXF1ZXN0LmdldFJlbW90ZUhvc3QoKSk7CisgICAgICAgIG91dC5wcmludGxuKCJDaGFyYWN0ZXIgRW5jb2Rpbmc6ICIgKyByZXF1ZXN0LmdldENoYXJhY3RlckVuY29kaW5nKCkpOworICAgICAgICBvdXQucHJpbnRsbigiQ29udGVudCBMZW5ndGg6ICIgKyByZXF1ZXN0LmdldENvbnRlbnRMZW5ndGgoKSk7CisgICAgICAgIG91dC5wcmludGxuKCJDb250ZW50IFR5cGU6ICIgKyByZXF1ZXN0LmdldENvbnRlbnRUeXBlKCkpOworICAgICAgICBvdXQucHJpbnRsbigiTG9jYWxlOiAiICsgcmVxdWVzdC5nZXRMb2NhbGUoKSk7CisgICAgICAgIG91dC5wcmludGxuKCJEZWZhdWx0IFJlc3BvbnNlIEJ1ZmZlcjogIiArIHJlc3BvbnNlLmdldEJ1ZmZlclNpemUoKSk7CisgICAgICAgIG91dC5wcmludGxuKCk7CisKKyAgICAgICAgb3V0LnByaW50bG4oIlBhcmFtZXRlciBuYW1lcyBpbiB0aGlzIHJlcXVlc3Q6Iik7CisgICAgICAgIGUgPSByZXF1ZXN0LmdldFBhcmFtZXRlck5hbWVzKCk7CisgICAgICAgIHdoaWxlIChlLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gKFN0cmluZykgZS5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgU3RyaW5nW10gdmFsdWVzID0gcmVxdWVzdC5nZXRQYXJhbWV0ZXJWYWx1ZXMoa2V5KTsKKyAgICAgICAgICAgIG91dC5wcmludCgiICAgIiArIGtleSArICIgPSAiKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdmFsdWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgb3V0LnByaW50KHZhbHVlc1tpXSArICIgIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvdXQucHJpbnRsbigpOworICAgICAgICB9CisgICAgICAgIG91dC5wcmludGxuKCk7CisKKyAgICAgICAgb3V0LnByaW50bG4oIkhlYWRlcnMgaW4gdGhpcyByZXF1ZXN0OiIpOworICAgICAgICBlID0gcmVxdWVzdC5nZXRIZWFkZXJOYW1lcygpOworICAgICAgICB3aGlsZSAoZS5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIGUubmV4dEVsZW1lbnQoKTsKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IHJlcXVlc3QuZ2V0SGVhZGVyKGtleSk7CisgICAgICAgICAgICBvdXQucHJpbnRsbigiICAgIiArIGtleSArICI6ICIgKyB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgb3V0LnByaW50bG4oKTsKKworICAgICAgICBvdXQucHJpbnRsbigiQ29va2llcyBpbiB0aGlzIHJlcXVlc3Q6Iik7CisgICAgICAgIENvb2tpZVtdIGNvb2tpZXMgPSByZXF1ZXN0LmdldENvb2tpZXMoKTsKKyAgICAgICAgaWYgKGNvb2tpZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb29raWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgQ29va2llIGNvb2tpZSA9IGNvb2tpZXNbaV07CisgICAgICAgICAgICAgICAgb3V0LnByaW50bG4oIiAgICIgKyBjb29raWUuZ2V0TmFtZSgpICsgIiA9ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICsgY29va2llLmdldFZhbHVlKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG91dC5wcmludGxuKCk7CisKKyAgICAgICAgb3V0LnByaW50bG4oIlJlcXVlc3QgSXMgU2VjdXJlOiAiICsgcmVxdWVzdC5pc1NlY3VyZSgpKTsKKyAgICAgICAgb3V0LnByaW50bG4oIkF1dGggVHlwZTogIiArIHJlcXVlc3QuZ2V0QXV0aFR5cGUoKSk7CisgICAgICAgIG91dC5wcmludGxuKCJIVFRQIE1ldGhvZDogIiArIHJlcXVlc3QuZ2V0TWV0aG9kKCkpOworICAgICAgICBvdXQucHJpbnRsbigiUmVtb3RlIFVzZXI6ICIgKyByZXF1ZXN0LmdldFJlbW90ZVVzZXIoKSk7CisgICAgICAgIG91dC5wcmludGxuKCJSZXF1ZXN0IFVSSTogIiArIHJlcXVlc3QuZ2V0UmVxdWVzdFVSSSgpKTsKKyAgICAgICAgb3V0LnByaW50bG4oIkNvbnRleHQgUGF0aDogIiArIHJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSk7CisgICAgICAgIG91dC5wcmludGxuKCJTZXJ2bGV0IFBhdGg6ICIgKyByZXF1ZXN0LmdldFNlcnZsZXRQYXRoKCkpOworICAgICAgICBvdXQucHJpbnRsbigiUGF0aCBJbmZvOiAiICsgcmVxdWVzdC5nZXRQYXRoSW5mbygpKTsKKyAgICAgICAgb3V0LnByaW50bG4oIlBhdGggVHJhbnM6ICIgKyByZXF1ZXN0LmdldFBhdGhUcmFuc2xhdGVkKCkpOworICAgICAgICBvdXQucHJpbnRsbigiUXVlcnkgU3RyaW5nOiAiICsgcmVxdWVzdC5nZXRRdWVyeVN0cmluZygpKTsKKyAgICAgICAgb3V0LnByaW50bG4oKTsKKworICAgICAgICBIdHRwU2Vzc2lvbiBzZXNzaW9uID0gcmVxdWVzdC5nZXRTZXNzaW9uKCk7CisgICAgICAgIG91dC5wcmludGxuKCJSZXF1ZXN0ZWQgU2Vzc2lvbiBJZDogIiArCisgICAgICAgICAgICAgICAgcmVxdWVzdC5nZXRSZXF1ZXN0ZWRTZXNzaW9uSWQoKSk7CisgICAgICAgIG91dC5wcmludGxuKCJDdXJyZW50IFNlc3Npb24gSWQ6ICIgKyBzZXNzaW9uLmdldElkKCkpOworICAgICAgICBvdXQucHJpbnRsbigiU2Vzc2lvbiBDcmVhdGVkIFRpbWU6ICIgKyBzZXNzaW9uLmdldENyZWF0aW9uVGltZSgpKTsKKyAgICAgICAgb3V0LnByaW50bG4oIlNlc3Npb24gTGFzdCBBY2Nlc3NlZCBUaW1lOiAiICsKKyAgICAgICAgICAgICAgICBzZXNzaW9uLmdldExhc3RBY2Nlc3NlZFRpbWUoKSk7CisgICAgICAgIG91dC5wcmludGxuKCJTZXNzaW9uIE1heCBJbmFjdGl2ZSBJbnRlcnZhbCBTZWNvbmRzOiAiICsKKyAgICAgICAgICAgICAgICBzZXNzaW9uLmdldE1heEluYWN0aXZlSW50ZXJ2YWwoKSk7CisgICAgICAgIG91dC5wcmludGxuKCk7CisKKyAgICAgICAgb3V0LnByaW50bG4oIlNlc3Npb24gdmFsdWVzOiAiKTsKKyAgICAgICAgRW51bWVyYXRpb24gbmFtZXMgPSBzZXNzaW9uLmdldEF0dHJpYnV0ZU5hbWVzKCk7CisgICAgICAgIHdoaWxlIChuYW1lcy5oYXNNb3JlRWxlbWVudHMoKSkgeworICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSAoU3RyaW5nKSBuYW1lcy5uZXh0RWxlbWVudCgpOworICAgICAgICAgICAgb3V0LnByaW50bG4oIiAgICIgKyBuYW1lICsgIiA9ICIgKyBzZXNzaW9uLmdldEF0dHJpYnV0ZShuYW1lKSk7CisgICAgICAgIH0KKyAgICAgICAgb3V0LnByaW50bG4oIiMjIyIpOworCisgICAgcmV0dXJuIG51bGw7CisKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL1N1Y2Nlc3NBY3Rpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3NjYWZmb2xkL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3NjYWZmb2xkL1N1Y2Nlc3NBY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDI0MGE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc2NhZmZvbGQvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvc2NhZmZvbGQvU3VjY2Vzc0FjdGlvbi5qYXZhCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAyMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyAKKyAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMuc2NhZmZvbGQ7CisKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb247CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CisKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5zY2FmZm9sZC5sYW5nLlRva2VuczsKKworCisvKioKKyAqIFN0YW5kYXJkIEFjdGlvbiB0byBmb3J3YXJkIGNvbnRyb2wgdG8gInN1Y2Nlc3MiLgorICogVXNlZnVsIGZvciBwcm90b3R5cGluZyBmbG93IGR1cmluZyBkZXZlbG9wbWVudCwKKyAqIGFuZCBmb3IgY3JlYXRpbmcgYmxhbmsgZm9ybXMgZm9yIG5ldyBpbnB1dC4KKyAqCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFN1Y2Nlc3NBY3Rpb24gZXh0ZW5kcyBBY3Rpb24geworCisgICAgLyoqCisgICAgICogRm9yd2FyZCB0byAic3VjY2VzcyIgW1Rva2Vucy5TVUNDRVNTXS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gZm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSkKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqIEBleGNlcHRpb24gSU9FeGNlcHRpb24gaWYgYW4gaW5wdXQvb3V0cHV0IGVycm9yIG9jY3VycworICAgICAqIEBleGNlcHRpb24gU2VydmxldEV4Y2VwdGlvbiBpZiBhIHNlcnZsZXQgZXhjZXB0aW9uIG9jY3VycworICAgICAqLworICAgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkIHBlcmZvcm0oQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKQorICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgU2VydmxldEV4Y2VwdGlvbiB7CisKKyAgICAgICAgcmV0dXJuIG1hcHBpbmcuZmluZEZvcndhcmQoVG9rZW5zLlNVQ0NFU1MpOworCisgICAgfQorCit9IC8vIGVuZCBTdWNjZXNzQWN0aW9uClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzLWplcmljaG8vT1ZFUlZJRVcudHh0IGIvc3RydXRzLXNhbmRib3gvc3RydXRzLWplcmljaG8vT1ZFUlZJRVcudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkOTI0MGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMtamVyaWNoby9PVkVSVklFVy50eHQKQEAgLTAsMCArMSw1NiBAQAorLUNPTVBPTkVOVCBPVkVSVklFVy0KKworQ29uZmlndXJhdGlvbiByZWdpc3RyeQorKiBBdCBpbml0aWFsaXphdGlvbiwgZWFjaCByZXF1ZXN0IGFkYXB0ZXIgKHNlcnZsZXQsIGZpbHRlciwgZXQgY2V0ZXJhKSwgYWRkcyBpdHMgY29uZmlndXJhdGlvbiB0byBhIHNpbmdsZSByZWdpc3RyeSBhdCBhIGdsb2JhbCBsb2NhdGlvbiB1bmRlciBhIHVuaXF1ZSBrZXkuCisKK0NvbW1hbmQgQ29udGV4dAorKiBFeHRlbmRzIENvUiBDb250ZXh0IHRvIGVuY2Fwc3VsYXRlIGZyYW1ld29yayBtZW1iZXJzIG5lZWRlZCB0byBwcm9jZXNzIHJlcXVlc3QgYW5kIHJlbmRlciByZXNwb25zZQorCitSZXF1ZXN0IEFkYXB0ZXIgKHNlcnZsZXQgbW9kdWxlLCBwb3J0bGV0LCBTT0FQLCBtb2NrKQorKiBSZWNlaXZlcyByZXF1ZXN0IGZyb20gY29udGFpbmVyIChvciBUZXN0UnVubmVyKQorKiBOb3JtYWxpemVzIHJlcXVlc3QgcGF0aCAobWFza3MgcGF0dGVybiByZWdpc3RlcmVkIHdpdGggY29udGFpbmVyKQorKiBDcmVhdGVzIGNvbnRleHQgdG8gd3JhcCByZXF1ZXN0IGFuZCByZXNwb25zZSBvYmplY3RzCisqIEFkZHMgcmVmZXJlbmNlIHRvIGl0cyBjb25maWd1cmF0aW9uIChzdG9yZWQgaW4gZ2xvYmFsIHJlZ2lzdHJ5KQorKiBJbnZva2VzIENvbnRyb2xsZXIKKyogV2hlbiBjb250cm9sIHJldHVybnMsIGRpc3BhdGNoZXMgdG8gTG9jYXRpb24gKGlmIGFueSkKKworQ29udHJvbGxlcgorKiBSZWNlaXZlcyBjb250ZXh0IGFuZCBzZWxlY3RzIHRoZSBtYXRjaGluZyBtYXBwaW5nCisqIEFkZHMgcmVmZXJlbmNlIHRvIG1hcHBpbmcgaW5zdGFuY2UgdG8gY29udGV4dAorKiBTZXRzIG1hcHBpbmcncyBkZWZhdWx0IExvY2F0aW9uIHRvIGNvbnRleHQKKyogUmVtb3ZlcyBhbnkgZXhwaXJlZCBtZXNzYWdlcyBmcm9tIGNvbnRleHQKKyogSW52b2tlcyBwcm9jZXNzb3IgZm9yIG1hcHBpbmcKKworUHJvY2Vzc29yCisqIEludm9rZXMgc2VyaWVzIG9mIG1ldGhvZHMgKCJDaGFpbiBvZiBDb21tYW5kcyIpIHRvIGhhbmRsZSByZXF1ZXN0LiBUaGUgZGVmYXVsdCBzZXJpZXMgaW5jbHVkZXMKKyAgKiBNdWx0aXBhcnQKKyAgKiBMb2NhbGUKKyAgKiBDb250ZW50VHlwZQorICAqIE5vQ2FjaGUKKyAgKiBQcmVQcm9jZXNzCisgICogUm9sZXMKKyAgKiBJbnB1dEhhbmRsZXIKKyAgICAqIENhbmNlbAorICAgICogUmVzZXQKKyAgICAqIFBvcHVsYXRlCisgICAgKiBWYWxpZGF0ZQorICAgICogSW52YWxpZAorICAqIE1hcHBpbmdIYW5kbGVyCisgICAgKiBDb21tYW5kIHwgU2NyaXB0CisgICAgICAqIEludm9rZSBidXNpbmVzcyBsb2dpYworICAgICAgKiBBZmZlY3QgY29udGV4dCBzdGF0ZQorICAgICAgKiBJZGVudGlmeSByZXNvdXJjZSB0byByZW5kZXIgcmVzcG9uc2UKKyAgICAqIExvY2F0aW9uCisgICAgICAqIElkZW50aWZ5IHJlc291cmNlIHRvIHJlbmRlciByZXNwb25zZQorCitFeGNlcHRpb25IYW5kbGVyCisqIEludGVyY2VwdCBhbnkgRXhjZXB0aW9uIHRocm93biBieSBQcm9jZXNzb3IgYW5kIHNldCBMb2NhdGlvbiB0byBkZXNpZ25hdGVkIGVycm9yIHBhZ2UuCisKK1RhZ3MvVG9vbHMKKyogUmVmZXJlbmNlIENvbW1hbmQgQ29udGV4dCAoc3RvcmVkIGluIHJlcXVlc3QpIHRvIGFjY2VzcyBmcmFtZXdvcmsgbWVtYmVycworCitTZXJ2ZXIgUGFnZXMKKyogVXRpbGl6ZSB0YWdzIGFuZCB0b29scyB0byByZW5kZXIgZHluYW1pYyBkYXRhLgorCisjIyMKKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzLWplcmljaG8vUkVBRE1FLnR4dCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0cy1qZXJpY2hvL1JFQURNRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODUxNWEwNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0cy1qZXJpY2hvL1JFQURNRS50eHQKQEAgLTAsMCArMSw2NSBAQAorSmVyaWNobyBpcyBhIHdoaXRlYm9hcmQgcHJvcG9zYWwgZGVzY3JpYmluZyBvbmUgcG9zc2libGUgaW1wbGVtZW50YXRpb24gb2YgU3RydXRzIDIueC4KKworU2luY2UgU3RydXRzIDIueCBpcyBzbGF0ZWQgYXMgYSAicmV2b2x1dGlvbiIsIHRoZSBBcGFjaGUgcHJhY3RpY2UgaXMgdG8gYXNzaWduIGEgY29kZW5hbWUgdG8gYSBwcm9wb3NhbCB1bnRpbCB0aGUgQ29tbXVuaXR5IGNvbWVzIHRvIGEgY29uc2Vuc3VzLgorCitUaGlzIHByb3Bvc2FsIGlzIGNhbGxlZCAiSmVyaWNobyIgc2luY2UgaXQgdHJpZXMgdG8gdGVhci1kb3duIHRoZSB3YWxscyB3aXRoaW4gdGhlIFN0cnV0cyBhcmNoaXRlY3R1cmUuIEplcmljaG8gcHJvcG9zZXMgdG8gb3Blbi11cCBTdHJ1dHMgYnkKKworKiBEZWNsYXJpbmcgaW50ZXJmYWNlcyBmb3IgYWxsIGNvcmUgY29tcG9uZW50cy4KKworKiBQcm92aWRpbmcgd29ya2luZyBiYXNlIGltcGxlbWVudGF0aW9ucyBmb3IgYWxsIGNvcmUgY29tcG9uZW50cy4KKworKiBFbmNhcHN1bGF0aW5nIGFsbCBwYXRoIHJlZmVyZW5jZXMgd2l0aGluICJMb2NhdGlvbiIgb2JqZWN0cyAoYWthIEFjdGlvbkZvcndhcmRzKWFuZCByZWZlcnJpbmcgb25seSB0byBMb2NhdGlvbnMgZnJvbSBhbGwgb3RoZXIgb2JqZWN0cy4KKworKiBQcm92aWRpbmcgYWRkaXRpb25hbCBleHRlbnNpb24gcG9pbnRzIGZyb20gY29yZSBjb21wb25lbnRzIHNvIHRoYXQgdGhlICJJbnZlcnNpb24gb2YgQ29udHJvbCIgcGF0dGVybiBpcyBmdWxseSByZWFsaXplZC4gKGUuZy4sIGEgcG9wdWxhdGUgbWV0aG9kIGZvciB0aGUgRm9ybUhhbmRsZXIuKQorCisqIFByb3ZpZGluZyAiUE9KTyIgc2lnbmF0dXJlcyB0aGF0IGVuY2Fwc3VsYXRlIHNlcnZsZXQvcG9ydGxldC9zb2FwIGJlaGF2aW9yIHNvIHRoYXQgYXBwbGljYXRpb25zIGNhbiBiZSBmcmVlZCBvZiBzZXJ2bGV0L3BvcnRsZXQvc29hcCBzZW1hbnRpY3MsIGlmIHNvIGRlc2lyZWQuIFRoaXMgc3RyYXRlZ3kgd291bGQgYWxzbyBiZSBhcHBsaWVkIHRvIG9wdGlvbmFsIHBhY2thZ2VzIGxpa2UgVmFsaWRhdG9yIGFuZCBUaWxlcy4KKworKiBSZXRhaW4gb3B0aW9uYWwgYWNjZXNzIHRvIHNlcnZsZXQvcG9ydGxldCBvYmplY3RzIHNvIHRoYXQgYXBwbGljYXRpb25zIGNhbiBiZSBmcmVlIHRvIGRvIHdoYXRldmVyIHRoZXkgbmVlZCB0byBkby4KKworLUJhY2t3YXJkIENvbXBhdGliaWxpdHktCisKK0plcmljaG8gaXMgYSByZXZvbHV0aW9uIGFuZCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggcHJpb3IgdmVyc2lvbnMgb2YgU3RydXRzIGlzIG5vdCB0aGUgcHJpbWUgY29uc2lkZXJhdGlvbi4gSG93ZXZlciwgY2FyZSBpcyBiZWluZyB0YWtlbiB0byBjcmVhdGUgYSBjbGVhciBtaWdyYXRpb24gcGF0aCwgd2hlcmUgcHJhY3RpY2FsLCBzbyB0aGF0IEplcmljaG8gaXMgYXZhaWxhYmxlIHRvIHRoZSB3aWRlc3QgY29tbXVuaXR5IHBvc3NpYmxlLgorCistVGFnbGlicy9Ub29scy0KKworSlNQIHRhZ2xpYnMgYW5kIG90aGVyIHByZXNlbnRhdGlvbiB0b29scyB3aWxsIGJlIHBhY2thZ2VkIHNlcGFyYXRlbHkgZnJvbSB0aGUgY29yZSBjb250cm9sbGVyIGNsYXNzZXMuIFRhZ3MgYW5kIHRvb2xzIGNhbiBhY2Nlc3MgdGhlIGZyYW1ld29yayB0aHJvdWdoIGEgU3RydXRzQ29udGV4dCBvYmplY3QgcGFzc2VkIHRocm91Z2ggdGhlIHJlcXVlc3QsIHJhdGhlciB0aGFuIHNlYXJjaGluZyB0aHJvdWdoIHRoZSBzZXJ2bGV0IG9yIHBvcnRsZXQgY29udGV4dHMuCisKKy1BY3Rpb25Gb3Jtcy9BY3Rpb25zLCBldCBhbC0KKworTmV3IGltcGxlbWVudGF0aW9ucyBvZiBTdHJ1dHMgMS54IGJhc2UgY2xhc3NlcyB3aWxsIGJlIHByb3ZpZGVkLiBUaGVzZSBjbGFzc2VzIHdpbGwgcHJvdmlkZSB0aGUgU3RydXRzIDEueCBiZWhhdmlvciwgYnV0IHdpbGwgYWxzbyBpbXBsZW1lbnQgdGhlIEplcmljaG8gaW50ZXJmYWNlcy4gKE11Y2ggdGhlIHNhbWUgd2F5IHBlcmZvcm0gd2FzIHN1cHBvcnRlZCBpbiBTdHJ1dHMgMS4xLikKKworVGhlc2Ugc2FtZSB0ZWNobmlxdWVzIG1heSBiZSBhcHBsaWVkIHRvIHByb3ZpZGUgYWRhcHRvcnMgZm9yIG90aGVyIGZyYW1ld29ya3MsIHNvIGFzIHRvIG1ha2UgU3RydXRzIEplcmljaG8gYXZhaWxhYmxlIHRvIHRoZSB3aWRlc3QgY29tbXVuaXR5IHBvc3NpYmxlLgorCistQ29uZmlndXJhdGlvbi0KKworVGhlIEplcmljaG8gQ29uZmlndXJhdGlvbiBidWlsZHMgb24gdGhlIGJlc3QgYXNwZWN0cyBvZiBTdHJ1dHMgMS4yLiBUaGUgZWxlbWVudHMgYXJlIGRpZmZlcmVudCBidXQgc3RpbGwgc2ltaWxhci4gT3VyIGdvYWwgaXMgdG8gYWxsb3cgYSB0b29sLCBzdWNoIGFzIGEgWExTVCBwcm9jZXNzb3IsIHRvIG1pZ3JhdGUgYSBTdHJ1dHMgMS4yIERURCB0byBTdHJ1dHMgSmVyaWNoby4KKworQSBzZWNvbmQgYWx0ZXJuYXRpdmUgbWlnaHQgYmUgdG8gcHJvdmlkZSBhbiBhbHRlcm5hdGUgY29uZmlndXJhdGlvbiBsb2FkZXIgdGhhdCB3b3VsZCBtYXAgdGhlIFN0cnV0cyAxLjIgZWxlbWVudHMgdG8gU3RydXRzIEplcmljaG8gb2JqZWN0cyBhdCBpbml0aWFsaXphdGlvbi4KKworLVNlcnZsZXQvUG9ydGxldC9Tb2FwL01vY2sgc3VwcG9ydC0KKworQ29yZSBjb21wb25lbnRzIHdpbGwgaW1wbGVtZW50IHNpZ25hdHVyZXMgdGhhdCByZWZlcmVuY2UgYSBTdHJ1dHNDb250ZXh0LiBJbXBsZW1lbnRhdGlvbnMgb2YgdGhpcyBpbnRlcmZhY2UgY2FuIGJlIGJhY2tlZCBieSBzZXJ2bGV0LCBwb3J0bGV0LCBzb2FwLCBvciBtb2NrIGltcGxlbWVudGF0aW9ucyBhcyBuZWVkZWQuCisKKy1BbHNvIHVuZGVyIGNvbnNpZGVyYXRpb24tCisKKyogU2VydmljZXMgZnJhbWV3b3JrLiBVdGlsaXplIFNwcmluZyBJb0MsIEhpdmVNaW5kLCBBdmFsb24sIFBpY28sIENvcm5lcnN0b25lLCBldCBjZXRlcmEsIHRvIGNvbmZpZ3VyZSBzZXJ2aWNlcy4KKworKiBDb25maWd1cmF0aW9uIHRlc3RpbmcuIEludGVncmF0ZSB1dGlsaXR5IG9mIFN0cnV0cyBUZXN0Q2FzZSwgaWRlYWxseSBjb25maWd1cmVkIGZyb20gYW4gWE1MIGNvbmZpZ3VyYXRpb24gKGEgbGEgQ2Fub28gV2VidGVzdCkuCisKKyogUmVwbGFjZSBEVEQgd2l0aCBYTUwgU2NoZW1hLgorCisqIFV0aWxpemUgcHJvdG9jb2xzIGluIHJlc291cmNlIHBhdGhzLiBBbiBtYXBwZWQgcGF0aCB3b3VsZCBsb29rIGxpa2UgIm1hcHBpbmc6Ly9mb28iIG9yIGEgdGlsZXMgZm9yd2FyZCB3b3VsZCBiZSAidGlsZXM6Ly90aWxlc2RlZiIgIFRoaXMgd291bGQgbWFrZSBpdCBlYXN5IHRvIHBsdWcgaW4gaGFuZGxlcnMgdG8gc3VwcG9ydCBkaWZmZXJlbnQgcHJlc2VudGF0aW9uIGVuZ2luZXMuICBJZiBubyBwcm90b2NvbCBpcyBzcGVjaWZpZWQsIHRoZSBwYXRoIGlzIGhhbmRsZWQgYXMgdXN1YWwuCisKKyogQ29tYmluZSBmb3JtLWJlYW4gYW5kIHZhbGlkYXRvci1mb3JtIGNvbmZpZ3VyYXRpb25zLiBBIHNpbmdsZSBlbGVtZW50IHdvdWxkIGFsbG93IGV2ZXJ5dGhpbmcgU3RydXRzIGtub3dzIGFib3V0IGEgZm9ybSB0byBiZSBjb25maWd1cmVkIGluIG9uZSBwbGFjZS4KKworKiBJbnRlZ3JhdGUgVGlsZXMgZGVmaW5pdGlvbnMgaW50byBjb3JlIGNvbmZpZ3VyYXRpb24uCisKKyogQWRvcHQgU3RydXRzIFdvcmtmbG93IGFuZCBTdHJ1dHMgTWVudSBhcyBzdGFuZGFyZCBvcHRpb25zLCBsaWtlIFZhbGlkYXRvciBhbmQgVGlsZXMuCisKKyogVXRpbGl6ZSBKb2RhQmVhbnMgPGh0dHA6Ly93d3cuam9kYS5vcmcvPiBhcyBhIGZvdW5kYXRpb24gY2xhc3MgZm9yIGNvcmUgY29tcG9uZW50cy4KKworKiBMb2FkIGFsbCBjb25maWd1cmF0aW9uIGRlZmF1bHRzIGZvcm0gYSBjb3JlLnByb3BlcnRpZXMgZmlsZSBzbyB0aGF0IGxlc3MgaXMgaGFyZGNvZGVkLCBpbmNsdWRpbmcgYSBQbHVnSW4gY2xhc3MgdG8gYm9vdHN0cmFwIGxvYWRpbmcgdGhlIGNvcmUgY29uZmlndXJhdGlvbi4KKworKiBFbnN1cmUgdGhhdCBhbGwgZnJhbWV3b3JrIG9iamVjdHMgaW4gMi4wIGhhdmUgY29uc2lzdGVudCBmYWN0b3J5LWJhc2VkIG1lY2hhbmlzbXMgdG8gaW5zdGFudGlhdGUgaW5zdGFuY2VzLiA8aHR0cDovL2lzc3Vlcy5hcGFjaGUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xNTYwND4KKworIyMjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzLWplcmljaG8vcHJvamVjdC5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzLWplcmljaG8vcHJvamVjdC5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ODQ0ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMtamVyaWNoby9wcm9qZWN0LnByb3BlcnRpZXMKQEAgLTAsMCArMSwxNCBAQAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFAgUiBPIEogRSBDIFQgIFAgUiBPIFAgRSBSIFQgSSBFIFMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitjb21waWxlLmRlYnVnID0gb24KK2NvbXBpbGUub3B0aW1pemUgPSBvZmYKK2NvbXBpbGUuZGVwcmVjYXRpb24gPSBvZmYKKworbWF2ZW4ubGlua2NoZWNrLmVuYWJsZT10cnVlIAorCisjIGRvY3VtZW50YXRpb24gcHJvcGVydGllcworbWF2ZW4ueGRvYy5kYXRlPWxlZnQKK21hdmVuLnhkb2MudmVyc2lvbj0ke3BvbS5jdXJyZW50VmVyc2lvbn0KK21hdmVuLnhkb2MuZGV2ZWxvcG1lbnRQcm9jZXNzVXJsPWh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9zdGF0dXMuaHRtbApkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzLWplcmljaG8vcHJvamVjdC54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMtamVyaWNoby9wcm9qZWN0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGEwMzM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzLWplcmljaG8vcHJvamVjdC54bWwKQEAgLTAsMCArMSwzMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKworPHByb2plY3Q+CisgIDxleHRlbmQ+Li4vcHJvamVjdC54bWw8L2V4dGVuZD4KKyAgPG5hbWU+SmVyaWNobzwvbmFtZT4KKyAgPGFydGlmYWN0SWQ+c3RydXRzLWplcmljaG88L2FydGlmYWN0SWQ+CisgIDxjdXJyZW50VmVyc2lvbj4wLjEtZGV2PC9jdXJyZW50VmVyc2lvbj4KKyAgPGluY2VwdGlvblllYXI+MjAwMzwvaW5jZXB0aW9uWWVhcj4KKyAgPHNob3J0RGVzY3JpcHRpb24+U3RydXRzIEplcmljaG8gMi54IFdoaXRlYm9hcmQ8L3Nob3J0RGVzY3JpcHRpb24+CisgIDxkZXNjcmlwdGlvbj4KKyAgICAgIEplcmljaG8gaXMgYSB3aGl0ZWJvYXJkIHByb3Bvc2FsIGRlc2NyaWJpbmcgb25lIHBvc3NpYmxlIGltcGxlbWVudGF0aW9uIG9mIFN0cnV0cyAyLnguCisgICAgICBTaW5jZSBTdHJ1dHMgMi54IGlzIHNsYXRlZCBhcyBhICJyZXZvbHV0aW9uIiwgdGhlIEFwYWNoZSBwcmFjdGljZSBpcyB0byBhc3NpZ24gYSBjb2RlbmFtZSB0byBhIHByb3Bvc2FsCisgICAgICB1bnRpbCB0aGUgQ29tbXVuaXR5IGNvbWVzIHRvIGEgY29uc2Vuc3VzLgorICAgICAgVGhpcyBwcm9wb3NhbCBpcyBjYWxsZWQgIkplcmljaG8iIHNpbmNlIGl0IHRyaWVzIHRvIHRlYXItZG93biB0aGUgd2FsbHMgd2l0aGluIHRoZSBTdHJ1dHMgYXJjaGl0ZWN0dXJlLgorICA8L2Rlc2NyaXB0aW9uPgorICA8ZGV2ZWxvcGVycz4KKyAgICA8ZGV2ZWxvcGVyPgorICAgICAgPG5hbWU+VGVkIEh1c3RlZDwvbmFtZT4KKyAgICAgIDxpZD5odXN0ZWQ8L2lkPgorICAgICAgPGVtYWlsPmh1c3RlZEBhcGFjaGUub3JnPC9lbWFpbD4KKyAgICAgIDxvcmdhbml6YXRpb24+PC9vcmdhbml6YXRpb24+CisgICAgPC9kZXZlbG9wZXI+CisgIDwvZGV2ZWxvcGVycz4KKworICA8YnVpbGQ+CisgICAgPHVuaXRUZXN0PgorICAgICAgPGluY2x1ZGVzPgorICAgICAgICA8aW5jbHVkZT4qKi8qVGVzdC5qYXZhPC9pbmNsdWRlPgorICAgICAgPC9pbmNsdWRlcz4KKyAgICA8L3VuaXRUZXN0PgorICA8L2J1aWxkPgorCis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMtamVyaWNoby9zcmMvY29uZi9zdHJ1dHMtamVyaWNoby1jb25maWdfMl8wLmR0ZCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0cy1qZXJpY2hvL3NyYy9jb25mL3N0cnV0cy1qZXJpY2hvLWNvbmZpZ18yXzAuZHRkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzNzY1MTQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMtamVyaWNoby9zcmMvY29uZi9zdHJ1dHMtamVyaWNoby1jb25maWdfMl8wLmR0ZApAQCAtMCwwICsxLDc3MSBAQAorPCEtLQorICAgICBEVEQgZm9yIHRoZSBTdHJ1dHMgQXBwbGljYXRpb24gQ29uZmlndXJhdGlvbiBGaWxlCisKKyAgICAgVG8gc3VwcG9ydCB2YWxpZGF0aW9uIG9mIHlvdXIgY29uZmlndXJhdGlvbiBmaWxlLCBpbmNsdWRlIHRoZSBmb2xsb3dpbmcKKyAgICAgRE9DVFlQRSBlbGVtZW50IGF0IHRoZSBiZWdpbm5pbmcgKGFmdGVyIHRoZSAieG1sIiBkZWNsYXJhdGlvbik6CisKKyAgICAgPCFET0NUWVBFIHN0cnV0cy1jb25maWcgUFVCTElDCisgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMS4yLy9FTiIKKyAgICAgICAiaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvZHRkcy9zdHJ1dHMtamVyaWNoby1jb25maWdfMl8wLmR0ZCI+CisKKyAgICAgJElkOiBzdHJ1dHMtamVyaWNoby1jb25maWdfMl8wLmR0ZCx2IDEuNSAyMDAzLzEyLzE5IDAyOjM1OjA3IGh1c3RlZCBFeHAgJAorLS0+CisKKworPCEtLSA9PT09PT09PT09IERlZmluZWQgVHlwZXMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorCisKKzwhLS0gQW4gIklkZW50aWZpZXIiIGlzIHRoZSBuYW1lIG9mIGEgcHJvZ3JhbW1pbmcgY29uc3RydWN0IGFuZCBtdXN0IGNvbmZvcm0KKyAgICAgdG8gdGhlIHJ1bGVzIGZvciBpZGVudGlmaWVycyBpbiB0aGUgSmF2YSBsYW5ndWFnZS4KKy0tPgorPCFFTlRJVFkgJSBJZGVudGlmaWVyICJDREFUQSI+CisKKworPCEtLSBBbiAiQXR0cmlidXRlTmFtZSIgaXMgdGhlIGlkZW50aWZpZXIgb2YgYSBwYWdlLCByZXF1ZXN0LCBzZXNzaW9uLCBvcgorICAgICBhcHBsaWNhdGlvbiBzY29wZSBhdHRyaWJ1dGUuCistLT4KKzwhRU5USVRZICUgQXR0cmlidXRlTmFtZSAiQ0RBVEEiPgorCisKKzwhLS0gQSAiUHJvcE9iamVjdCIgaXMgdGhlIGlkZW50aWZpZXIgb2YgYW4gb2JqZWN0LCBzdWNoIGFzIGFuIGlucHV0IGZvcm0sCisgICAgIGFuZCBhbHNvIHNlcnZlcyBhcyB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBzY3JpcHRpbmcgdmFyaWFibGUKKyAgICAgYW5kIHRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgdW5kZXIgd2hpY2ggdGhlIG9iamVjdCBpcyBhY2Nlc3NlZC4KKyAgICAgVGhlcmVmb3JlLCBpdCBtdXN0IGNvbmZvcm0gdG8gdGhlIHJ1bGVzIGZvciBhbiBJZGVudGlmaWVyLgorLS0+Cis8IUVOVElUWSAlIFByb3BPYmplY3QgIkNEQVRBIj4KKworCis8IS0tIEEgIkJvb2xlYW4iIGlzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBib29sZWFuICh0cnVlIG9yIGZhbHNlKQorICAgICB2YXJpYWJsZS4KKy0tPgorPCFFTlRJVFkgJSBCb29sZWFuICIodHJ1ZXxmYWxzZSkiPgorCisKKzwhLS0gQSAiQ2xhc3NOYW1lIiBpcyB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgYSBjb21waWxlZCBjbGFzcyB0aGF0IGlzCisgICAgIGluc3RhbnRpYXRlZCB0byBwcm92aWRlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBlbmNsb3NpbmcgZWxlbWVudC4KKy0tPgorPCFFTlRJVFkgJSBDbGFzc05hbWUgIkNEQVRBIj4KKworCis8IS0tIEFuICJJbnRlZ2VyIiBpcyBhIGNoYXJhY3RlciBzdHJpbmcgY29uc2lzdGluZyBzb2xlbHkgb2YgbnVtZXJpYyBkaWdpdHMsCisgICAgIG9wdGlvbmFsbHkgcHJlY2VlZGVkIGJ5IGEgbWludXMgc2lnbiwgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEKKyAgICAgMzItYml0IGludGVnZXIuCistLT4KKzwhRU5USVRZICUgSW50ZWdlciAiQ0RBVEEiPgorCisKKzwhLS0gQSAiUmVzb3VyY2UiIGlzIGEgcmVsYXRpdmUgcGF0aCwgZGVsaW1pdGVkIGJ5ICIvIiBjaGFyYWN0ZXJzLCB0aGF0CisgICAgIGRlZmluZXMgdGhlIGxvY2F0aW9uIG9mIGEgcmVzb3VyY2UgcmVsYXRpdmUgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZQorICAgICBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlIGl0c2VsZi4KKy0tPgorPCFFTlRJVFkgJSBSZXNvdXJjZSAiI1BDREFUQSI+CisKKworPCEtLSBBICJQcm9wTmFtZSIgaXMgdGhlIG5hbWUgb2YgYW4gb2JqZWN0IHByb3BlcnR5LCBhbmQgbXVzdCBiZWdpbiB3aXRoCisgICAgIGEgbG93ZXIgY2FzZSBsZXR0ZXIgYW5kIGNvbnRhaW4gb25seSBjaGFyYWN0ZXJzIHRoYXQgYXJlIGxlZ2FsIGluIGEKKyAgICAgaWRlbnRpZmllci4KKy0tPgorPCFFTlRJVFkgJSBQcm9wTmFtZSAiQ0RBVEEiPgorCisKKzwhLS0gQSAiUmVxdWVzdFBhdGgiIGlzIGFuIGFwcGxpY2F0aW9uLXJlbGF0aXZlIFVSSSBwYXRoLCBiZWdpbm5pbmcgd2l0aCBhCisgICAgIHNsYXNoLCB0aGF0IGlkZW50aWZpZXMgYSBtYXBwZWQgcmVzb3VyY2UgKHN1Y2ggYXMgYSBzZXJ2ZXIgcGFnZSBvciBhCisgICAgIHNlcnZsZXQpIHdpdGhpbiB0aGlzIHdlYiBhcHBsaWNhdGlvbi4KKy0tPgorPCFFTlRJVFkgJSBSZXF1ZXN0UGF0aCAiQ0RBVEEiPgorCisKKzwhLS0gVGhlIG5hbWUgb2YgYSBzY29wZSB3aXRoaW4gd2hpY2ggYSBvYmplY3QsIHN1Y2ggYXMgYW4gaW5wdXQgaGFuZGxlciwgbWF5IGJlIGFjY2Vzc2VkLgorLS0+Cis8IUVOVElUWSAlIFNjb3BlICIocmVxdWVzdHxzZXNzaW9ufGFwcGxpY2F0aW9uKSI+CisKKworPCEtLSBBICJMb2NhdGlvblR5cGUiIGlzIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFsdGVybmF0ZSB3YXlzIGEgcmVzcG9uc2UKKyAgICAgY2FuIGJlIHJlbmRlcmVkCistLT4KKzwhRU5USVRZICUgTG9jYXRpb25UeXBlICIoZm9yd2FyZHxpbmNsdWRlfHJlZGlyZWN0KSI+CisKKworPCEtLSA9PT09PT09PT09IFRvcCBMZXZlbCBFbGVtZW50cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorCisKKzwhLS0gVGhlICJzdHJ1dHMtY29uZmlnIiBlbGVtZW50IGlzIHRoZSByb290IG9mIHRoZSBjb25maWd1cmF0aW9uIGZpbGUKKyAgICAgaGllcmFyY2h5LCBhbmQgY29udGFpbnMgbmVzdGVkIGVsZW1lbnRzIGZvciBhbGwgb2YgdGhlIG90aGVyCisgICAgIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuCistLT4KKzwhRUxFTUVOVCBzdHJ1dHMtY29uZmlnICgKKyBkaXNwbGF5LW5hbWU/LAorIGRlc2NyaXB0aW9uPywKKyBwcm9wZXJ0eSosCisgY2F0YWxvZyosCisgaW5wdXRzPywKKyBsb2NhdGlvbnM/LAorIGV4Y2VwdGlvbnM/LAorIHByb2Nlc3NvcnM/LAorIG1hcHBpbmdzPywKKyBidW5kbGVzLAorIHBsdWctaW4qKT4KKworPCFBVFRMSVNUIHN0cnV0cy1jb25maWcgIGlkICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRD4KKworPCEtLSBUaGUgPHByb3BlcnR5PiBlbGVtZW50IHJlZmVycyB0byB0aGUgbG9jYXRpb24gb2YgYSBwcm9wZXJ0aWVzIGZpbGUsCisgICAgIHJlbGF0aXZlIHRvIHRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlLCB0aGF0IGNvbnRhaW5zIHJlcGxhY2VtZW50CisgICAgIHZhcmlhYmxlcyB0byB1c2Ugd2hlbiBwcm9jZXNzaW5nIHRoZSBlbGVtZW50cy4gVGhlIHByb3BlcnRpZXMgZGVmaW5lZAorICAgICBjYW4gYmUgcmVmZXJyZWQgdG8gdXNpbmcgdGhlIHN0YW5kYXJkICJzaGVsbCIgbm90YXRpb246ICR7cHJvcGVydHl9LgorCisgICAgIFByb3BlcnRpZXMgY2FuIGJlIHVzZWQgdG8gYXZvaWQgcmVkdW5kYWN5LiBGb3IgZXhhbXBsZSwgYW4gb2Z0ZW4tdXNlZAorICAgICBjbGFzcyBuYW1lIGNhbiBiZSBsaXN0ZWQgaW4gdGhlIHByb3BlcnRpZXMgZmlsZToKKworICAgICAgICAgaW5wdXRIYW5kbGVyID0gYXBwLnN0cnV0cy5NeUlucHV0SGFuZGxlcgorCisgICAgIGFuZCB0aGVuIHJlZmVycmVkIHRvIGFzIHRoZSB2YWx1ZSBmb3IgYW4gYXR0cmlidXRlOgorCisgICAgICAgICBoYW5kbGVyID0gJHtpbnB1dEhhbmRsZXJ9CisKKyAgICAgVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGUgaXMgZGVmaW5lZDoKKworICAgICByZXNvdXJjZSAgICAgICAgVGhlIHBhdGggdG8gdGhlIHByb3BlcnRpZXMgZmlsZSwgcmVsYXRpdmUgdG8gdGhlIFN0cnV0cworICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbiBmaWxlIGJlaW5nIHByb2Nlc3NlZC4KKy0tPgorPCFFTEVNRU5UIHByb3BlcnR5PgorPCFBVFRMSVNUIHByb3BlcnR5ICAgICAgICAgICBpZCAgICAgICAgICBJRCAgICAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgcHJvcGVydHkgICAgICAgICAgIHJlc291cmNlICAgICVSZXNvdXJjZTsgICAgICAjUkVRVUlSRUQ+CisKKworPCEtLSBUaGUgPGNhdGFsb2c+IGVsZW1lbnQgcmVmZXJzIHRvIHRoZSBsb2NhdGlvbiBvZiBhIENhdGFsb2cgZmlsZSwKKyAgICAgcmVsYXRpdmUgdG8gdGhlIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGUsIHRoYXQgY29udGFpbnMgYSByZWdpc3RyeQorICAgICBvZiBDb21tYW5kIENoYWlucyB0aGF0IGNhbiBiZSByZWZlcnJlZCB0byBpbiB0aGUgImNvbW1hbmQiIGF0dHJpYnV0ZXMKKyAgICAgb2Ygb3RoZXIgZWxlbWVudHMuCisKKyAgICAgVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGUgaXMgZGVmaW5lZDoKKworICAgICByZXNvdXJjZSAgICAgICAgVGhlIHBhdGggdG8gdGhlIENhdGFsb2cgZmlsZSwgcmVsYXRpdmUgdG8gdGhlIFN0cnV0cworICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbiBmaWxlIGJlaW5nIHByb2Nlc3NlZC4KKy0tPgorPCFFTEVNRU5UIHByb3BlcnR5PgorPCFBVFRMSVNUIHByb3BlcnR5ICAgICAgICAgICBpZCAgICAgICAgICBJRCAgICAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgcHJvcGVydHkgICAgICAgICAgIHJlc291cmNlICAgICVSZXNvdXJjZTsgICAgICAjUkVRVUlSRUQ+CisKKworPCEtLSBUaGUgPGlucHV0cz4gZWxlbWVudCBkZXNjcmliZXMgdGhlIHNldCBvZiBpbnB1dCBkZXNjcmlwdG9ycy4KK1RoZSBmb2xsb3dpbmcgYXR0cmlidXRlIGlzIGRlZmluZWQ6CisKKyAgICAgY29uZmlnICAgICAgICAgIEZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIHRvIHVzZSB3aGVuIGluc3RhbnRpYXRpbmcKKyAgICAgICAgICAgICAgICAgICAgIElucHV0IG9iamVjdHMuIElmIHNwZWNpZmllZCwgdGhlIG9iamVjdCBtdXN0IGltcGxlbWVudAorICAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMuY29yZS5JbnB1dC4KKyAgICAgICAgICAgICAgICAgICAgIFsib3JnLmFwYWNoZS5zdHJ1dHMuY29yZS5JbnB1dEJhc2UiXQorCisgICAgIGhhbmRsZXIgICAgICAgICBGdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyB0byB1c2Ugd2hlbiBpbnN0YW50aWF0aW5nCisgICAgICAgICAgICAgICAgICAgICBJbnB1dEhhbmRsZXIgb2JqZWN0cy4gSWYgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IG11c3QgaW1wbGVtZW50CisgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLnN0cnV0cy5jb3JlLklucHV0SGFuZGxlci4KKyAgICAgICAgICAgICAgICAgICAgIFsib3JnLmFwYWNoZS5zdHJ1dHMuY29yZS5EeW5hSW5wdXRIYW5kbGVyQmFzZSJdCistLT4KKzwhRUxFTUVOVCBpbnB1dHMgKGlucHV0Kik+Cis8IUFUVExJU1QgaW5wdXRzIGlkICAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgaW5wdXRzIGNvbmZpZyAgICAgICAgICAlQ2xhc3NOYW1lOyAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgaW5wdXRzIGhhbmRsZXIgICAgICAgICAlQ2xhc3NOYW1lOyAgICAgI0lNUExJRUQ+CisKKworPCEtLSBUaGUgPGlucHV0PiBlbGVtZW50IGRlc2NyaWJlcyBhbiBJbnB1dEhhbmRsZXIgKG9yZy5hcGFjaGUuc3RydXRzLmNvcmUuSW5wdXRIYW5kbGVyKQorICAgICBpbnN0YW5jZSB0aGF0IGNhbiBiZSByZWZlcmVuY2VkIGJ5IGEgTWFwcGluZyBpbnN0YW5jZS4KKworICAgICBuYW1lICAgICAgICAgICAgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGlucHV0IGRlc2NyaXB0b3IuCisgICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2VkIGJ5IHRoZSAiaW5wdXQiIGF0dHJpYnV0ZSBvZiB0aGUgPG1hcHBpbmc+IGVsZW1lbnQKKyAgICAgICAgICAgICAgICAgICAgIHRvIHNwZWNpZnkgd2hpY2ggaW5wdXQgaGFuZGxlciB0byB1c2Ugd2l0aCBhIG1hdGNoaW5nIHJlcXVlc3QuIE1heSBhbHNvCisgICAgICAgICAgICAgICAgICAgICBiZSByZWZlcmVuY2VkIGJ5IGFuICJleHRlbmRzIiBhdHRyaWJ1dGUgaW4gYW5vdGhlciA8aW5wdXQ+IGVsZW1lbnQuCisKKyAgICAgZXh0ZW5kcyAgICAgICAgIE5hbWUgb2YgYW4gaW5wdXQgZGVzY3JpcHRvciB0aGF0IGlzIHVzZWQgYXMgYSB2YWx1ZSB0ZW1wbGF0ZSBmb3IKKyAgICAgICAgICAgICAgICAgICAgIHRoaXMgZWxlbWVudC4gQWxsIGF0dHJpYnV0ZXMgZnJvbSB0aGUgdGVtcGxhdGUgYXJlIGF2YWlsYWJsZSB0bworICAgICAgICAgICAgICAgICAgICAgdGhlIG5ldyBlbGVtZW50LiBBbnkgYXR0cmlidXRlIGluaGVyaXRlZCBmcm9tIHRoZSB0ZW1wbGF0ZSBjYW4KKyAgICAgICAgICAgICAgICAgICAgIGJlIG92ZXJsb2FkZWQgYnkgcHJvdmlkaW5nIGEgbmV3IHZhbHVlLgorCisgICAgIGNvbmZpZyAgICAgICAgICBGdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSBvZiB0aGUgSW5wdXQgY2xhc3MgdG8gdXNlIHdpdGgKKyAgICAgICAgICAgICAgICAgICAgIHRoaXMgaW5wdXQgdGhhdCBpbXBsZW1lbnRzIG9yZy5hcGFjaGUuc3RydXRzLmNvcmUuSW5wdXQuCisgICAgICAgICAgICAgICAgICAgICBbIm9yZy5hcGFjaGUuc3RydXRzLmNvcmUuSW5wdXRCYXNlIl0KKworICAgICBoYW5kbGVyICAgICAgICAgRnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgb2YgdGhlIElucHV0SGFuZGxlciBjbGFzcyB0byB1c2Ugd2l0aAorICAgICAgICAgICAgICAgICAgICAgdGhpcyBpbnB1dCB0aGF0IGltcGxlbWVudHMgb3JnLmFwYWNoZS5zdHJ1dHMuY29yZS5JbnB1dEhhbmRsZXIuCisgICAgICAgICAgICAgICAgICAgICBbIm9yZy5hcGFjaGUuc3RydXRzLmNvcmUuRHluYUlucHV0SGFuZGxlckJhc2UiXQorCistLT4KKzwhRUxFTUVOVCBpbnB1dCAoaWNvbj8sIGRpc3BsYXktbmFtZT8sIGRlc2NyaXB0aW9uPywgc2V0LXByb3BlcnR5KiwgaW5wdXQtcHJvcGVydHkqKT4KKzwhQVRUTElTVCBpbnB1dCAgICAgaWQgICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBpbnB1dCAgICAgbmFtZSAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgaW5wdXQgICAgIGV4dGVuZHMgICAgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgaW5wdXQgICAgIGNvbmZpZyAgICAgICAgICAlQ2xhc3NOYW1lOyAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgaW5wdXQgICAgIGhhbmRsZXIgICAgICAgICAlQ2xhc3NOYW1lOyAgICAgI1JFUVVJUkVEPgorCisKKzwhLS0gVGhlIDxpbnB1dC1wcm9wZXJ0eT4gZWxlbWVudCBkZXNjcmliZXMgYW4gb2JqZWN0IHByb3BlcnR5IHRoYXQgY2FuIGJlIHVzZWQgdG8KKyAgICAgY29uZmlndXJlIGFuIGluc3RhbmNlIG9mIGEgRHluYUlucHV0SGFuZGxlci4gVGhpcyBlbGVtZW50IGlzIG9ubHkgdXRpbGl6ZWQgd2hlbiB0aGUKKyAgICAgImhhbmRsZXIiIGF0dHJpYnV0ZSBvZiB0aGUgZW5jbG9zaW5nIDxpbnB1dD4gZWxlbWVudCBpbXBsZW1lbnRzCisgICAgIG9yZy5hcGFjaGUuc3RydXRzLmNvcmUuRHluYUlucHV0SGFuZGxlci4KKworICAgICBuYW1lICAgICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIG9iamVjdCBwcm9wZXJ0eSBkZXNjcmliZWQgYnkgdGhpcyBlbGVtZW50LgorCisgICAgIGV4dGVuZHMgICAgICAgICBOYW1lIG9mIGFuIGlucHV0IGRlc2NyaXB0b3IgdGhhdCBpcyB1c2VkIGFzIGEgdmFsdWUgdGVtcGxhdGUgZm9yCisgICAgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQuIEFsbCBhdHRyaWJ1dGVzIGZyb20gdGhlIHRlbXBsYXRlIGFyZSBhdmFpbGFibGUgdG8KKyAgICAgICAgICAgICAgICAgICAgIHRoZSBuZXcgZWxlbWVudC4gQW55IGF0dHJpYnV0ZSBpbmhlcml0ZWQgZnJvbSB0aGUgdGVtcGxhdGUgY2FuCisgICAgICAgICAgICAgICAgICAgICBiZSBvdmVybG9hZGVkIGJ5IHByb3ZpZGluZyBhIG5ldyB2YWx1ZS4KKworICAgICBjb25maWcgICAgICAgICAgRnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgdG8gdXNlIHdoZW4gaW5zdGFudGlhdGluZworICAgICAgICAgICAgICAgICAgICAgRHluYUlucHV0UHJvcGVydHkgb2JqZWN0cy4gSWYgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IG11c3QgaW1wbGVtZW50CisgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLnN0cnV0cy5jb3JlLkR5bmFJbnB1dFByb3BlcnR5LgorICAgICAgICAgICAgICAgICAgICAgWyJvcmcuYXBhY2hlLnN0cnV0cy5jb3JlLkR5bmFJbnB1dFByb3BlcnR5QmFzZSJdCisKKyAgICAgaGFuZGxlciAgICAgICAgIEZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIG9mIHRoZSBmaWVsZCB0aGF0IHdpbGwgaGFuZGxlIHRoaXMKKyAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5LCBvcHRpb25hbGx5IGZvbGxvd2VkIGJ5ICJbXSIgdG8gaW5kaWNhdGUgdGhhdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgIGZpZWxkIGlzIGluZGV4ZWQuCisKKyAgICAgaW5pdGlhbCAgICAgICAgIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgaW5pdGlhbCB2YWx1ZSBmb3IgdGhpcyBwcm9wZXJ0eS4KKyAgICAgICAgICAgICAgICAgICAgIElmIG5vdCBzcGVjaWZpZWQsIHByaW1pdGl2ZXMgd2lsbCBiZSBpbml0aWFsaXplZCB0byB6ZXJvIGFuZAorICAgICAgICAgICAgICAgICAgICAgb2JqZWN0cyBpbml0aWFsaXplZCB0byB0aGUgemVyby1hcmd1bWVudCBpbnN0YW50aWF0aW9uIG9mIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgIG9iamVjdCBjbGFzcy4gRm9yIGV4YW1wbGUsIFN0cmluZ3Mgd2lsbCBiZSBpbml0aWFsaXplZCB0byAiIgorCisgICAgIHNpemUgICAgICAgICAgICBUaGUgbnVtYmVyIG9mIGFycmF5IGVsZW1lbnRzIHRvIGNyZWF0ZSBpZiB0aGUgdmFsdWUgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAiaGFuZGxlciIgYXR0cmlidXRlIHNwZWNpZmllcyBhbiBhcnJheSwgYnV0IHRoZXJlIGlzIG5vIHZhbHVlCisgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpZWQgZm9yIHRoZSAiaW5pdGlhbCIgYXR0cmlidXRlLgorLS0+Cis8IUVMRU1FTlQgaW5wdXQtcHJvcGVydHkgIChzZXQtcHJvcGVydHkqKT4KKzwhQVRUTElTVCBpbnB1dC1wcm9wZXJ0eSAgbmFtZSAgICAgICAgICAgIENEQVRBICAgICAgICAgICNSRVFVSVJFRD4KKzwhQVRUTElTVCBpbnB1dC1wcm9wZXJ0eSAgZXh0ZW5kcyAgICAgICAgIENEQVRBICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIGlucHV0LXByb3BlcnR5ICBjb25maWcgICAgICAgICAlQ2xhc3NOYW1lOyAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgaW5wdXQtcHJvcGVydHkgIGhhbmRsZXIgICAgICAgICVDbGFzc05hbWU7ICAgICAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgaW5wdXQtcHJvcGVydHkgIGluaXRpYWwgICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBpbnB1dC1wcm9wZXJ0eSAgc2l6ZSAgICAgICAgICAgJUludGVnZXI7ICAgICAgICNJTVBMSUVEPgorCisKKzwhLS0gVGhlIDxsb2NhdGlvbnM+IGVsZW1lbnQgZGVzY3JpYmVzIGEgc2V0IG9mIExvY2F0aW9uIG9iamVjdHMKKyAgICAgKG9yZy5hcGFjaGUuc3RydXRzLmNvcmUuTG9jYXRpb24pIHRoYXQgbWF5IGJlIHJlZmVyZW5jZWQgYnkgb3RoZXIgZWxlbWVudHMKKyAgICAgYW5kIHJldHVybmVkIGJ5IGFuIE1hcHBpbmdIYW5kbGVyJ3MgZXhlY3V0ZSBtZXRob2QuIFRoZSBpbmRpdmlkdWFsIExvY2F0aW9ucworICAgICBhcmUgY29uZmlndXJlZCB0aHJvdWdoIG5lc3RlZCA8bG9jYXRpb24+IGVsZW1lbnRzLiBPdGhlciBlbGVtZW50cywgc3VjaAorICAgICBhcyA8ZXhjZXB0aW9uPiBhbmQgPG1hcHBpbmc+LCBtYXkgYWxzbyBwcm92aWRlIG5lc3RlZCBsb2NhdGlvbnMgc3BlY2lmaWMKKyAgICAgdG8gdGhhdCBlbGVtZW50IChsb2NhbCBzY29wZSkuIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlIGlzIGRlZmluZWQ6CisKKyAgICAgaGFuZGxlciAgICAgICAgRnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgdG8gdXNlIHdoZW4gaW5zdGFudGlhdGluZworICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbiBvYmplY3RzLiBJZiBzcGVjaWZpZWQsIHRoZSBvYmplY3QgbXVzdCBpbXBsZW1lbnQKKyAgICAgICAgICAgICAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMuY29yZS5Mb2NhdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgWyJvcmcuYXBhY2hlLnN0cnV0cy5jb3JlLkxvY2F0aW9uQmFzZSJdCistLT4KKzwhRUxFTUVOVCBsb2NhdGlvbnMgKGxvY2F0aW9uKik+Cis8IUFUVExJU1QgbG9jYXRpb25zIGlkICAgICAgICAgICAgSUQgICAgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIGxvY2F0aW9ucyBjbGFzc05hbWUgICAgICVDbGFzc05hbWU7ICAgICAjSU1QTElFRD4KKworCis8IS0tIFRoZSA8bG9jYXRpb24+IGVsZW1lbnQgaXMgcmVmZXJlbmNlZCBieQorICAgICBhIGxvZ2ljYWwgbmFtZSBhbmQgZW5jYXBzdWxhdGVzIGEgVVJJIG9yIGEgcmVmZXJlbmNlIHRvIGEgbWFwcGluZy4gQQorICAgICAibG9jYXRpb24iIGVsZW1lbnQgbWF5IGJlIHVzZWQgdG8gZGVzY3JpYmUgYm90aCBnbG9iYWwgYW5kIGxvY2FsIGxvY2F0aW9ucy4KKyAgICAgR2xvYmFsIGxvY2F0aW9ucyBhcmUgYXZhaWxhYmxlIHRvIGFsbCB0aGUgZWxlbWVudHMuIExvY2FsIGxvY2F0aW9ucyBjYW4gYmUKKyAgICAgbmVzdGVkIHdpdGhpbiBhbiA8ZXhjZXB0aW9uPiBvciA8bWFwcGluZz4gZWxlbWVudCBhbmQgb25seSBhdmFpbGFibGUgd2hlbiBpdAorICAgICBpcyBpbnZva2VkIGluIHRoYXQgY29udGV4dC4KKworICAgICBuYW1lICAgICAgICAgICAgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGxvY2F0aW9uLiBSZWZlcmVuY2VkIGJ5CisgICAgICAgICAgICAgICAgICAgICBvdGhlciBlbGVtZW50cyBhbmQgYnkgdGhlIE1hcHBpbmdIYW5kbGVyIG9iamVjdCBhdCBydW50aW1lCisgICAgICAgICAgICAgICAgICAgICB0byBzZWxlY3QgLSBieSBpdHMgbG9naWNhbCBuYW1lIC0gdGhlIHJlc291cmNlIHRoYXQgc2hvdWxkCisgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZSB0aGUgcmVxdWVzdC9yZXNwb25zZS4gTWF5IGFsc28gYmUgcmVmZXJlbmNlZCBieQorICAgICAgICAgICAgICAgICAgICAgYW4gImV4dGVuZHMiIGF0dHJpYnV0ZSBvZiBhbm90aGVyIDxsb2NhdGlvbj4gZWxlbWVudC4KKworICAgICBleHRlbmRzICAgICAgICAgTmFtZSBvZiBhIGxvY2F0aW9uIGRlc2NyaXB0b3IgdGhhdCBpcyB1c2VkIGFzIGEgdmFsdWUgdGVtcGxhdGUgZm9yCisgICAgICAgICAgICAgICAgICAgICB0aGlzIGVsZW1lbnQuIEFsbCBhdHRyaWJ1dGVzIGZyb20gdGhlIHRlbXBsYXRlIGFyZSBhdmFpbGFibGUgdG8KKyAgICAgICAgICAgICAgICAgICAgIHRoZSBuZXcgZWxlbWVudC4gQW55IGF0dHJpYnV0ZSBpbmhlcml0ZWQgZnJvbSB0aGUgdGVtcGxhdGUgY2FuCisgICAgICAgICAgICAgICAgICAgICBiZSBvdmVycmlkZGVuIGJ5IHByb3ZpZGluZyBhIG5ldyB2YWx1ZS4KKworICAgICBjb21tYW5kICAgICAgICAgTmFtZSBvZiBhIENvbW1hbmQgdG8gZXhlY3V0ZSBiZWZvcmUgZGlzcGF0Y2hpbmcgY29udHJvbCB0bworICAgICAgICAgICAgICAgICAgICAgdGhlIHJlc291cmNlIGZvciB0aGlzIGVsZW1lbnQuIFRoZSBDb21tYW5kIGNhbiBiZSB1c2VkIHRvCisgICAgICAgICAgICAgICAgICAgICBwcmVwYXJlIHRoZSBjb250ZXh0cyBmb3IgdGhlIHJlc291cmNlLgorCisgICAgIHJlc291cmNlICAgICAgICBUaGUgbW9kdWxlLXJlbGF0aXZlIG9yIGNvbnRleHQtcmVsYXRpdmUgcGF0aCB0byB0aGUgcmVzb3VyY2UKKyAgICAgICAgICAgICAgICAgICAgIHRoYXQgaXMgZW5jYXBzdWxhdGVkIGJ5IHRoZSBsb2dpY2FsIG5hbWUgb2YgdGhpcyBMb2NhdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgIElmIHRoZSBwYXRoIGlzIHRvIGJlIGNvbnNpZGVyZWQgcmVsYXRpdmUgdG8gdGhlIHJvb3QgYXBwbGljYXRpb24KKyAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQgd2hlbiB1c2VkIGluIGEgbW9kdWxhciBhcHBsaWNhdGlvbiwgdGhlbiB0aGUgImFwcFJlbGF0aXZlIgorICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIHNob3VsZCBiZSBzZXQgdG8gInRydWUiLiBUaGlzIHZhbHVlIHNob3VsZCBiZWdpbiB3aXRoCisgICAgICAgICAgICAgICAgICAgICBhIHNsYXNoICgiLyIpIGNoYXJhY3Rlci4KKworICAgICBtYXBwaW5nUmVmICAgICAgU2V0IHRvICJ0cnVlIiBpZiB0aGUgcGF0aCBzcGVjaWZpZWQgZm9yICJyZXNvdXJjZSIgaXMgYSByZWZlcmVuY2UKKyAgICAgICAgICAgICAgICAgICAgIHRvIGEgTWFwcGluZy4gSWYgInRydWUiLCBjYWxsaW5nICJnZXRSZXNvdXJjZSIgd2lsbCByZXR1cm4gYSBVUkkgdG8KKyAgICAgICAgICAgICAgICAgICAgIHRoZSBNYXBwaW5nIHdpdGggdGhlIGFwcHJvcHJpYXRlIHByZWZpeCBvciBleHRlbnNpb24gcmVzb2x2ZWQuCisgICAgICAgICAgICAgICAgICAgICBbImZhbHNlIl0KKworICAgICBhcHBSZWxhdGl2ZSAgICAgU2V0IHRvICJ0cnVlIiBpZiwgaW4gYSBtb2R1bGFyIGFwcGxpY2F0aW9uLCB0aGUgcmVzb3VyY2UKKyAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBzdGFydHMgd2l0aCBhIHNsYXNoICIvIiBhbmQgc2hvdWxkIGJlIGNvbnNpZGVyZWQKKyAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlIHRvIHRoZSBhcHBsaWNhdGlvbiByb290IHJhdGhlciB0aGFuIHRoZSBjdXJyZW50IG1vZHVsZS4KKyAgICAgICAgICAgICAgICAgICAgIFsiZmFsc2UiXQorCisgICAgIG1lcmdlICAgICAgICAgICBTZXQgdG8gInRydWUiIGlmIHRoZSByZXNvdXJjZSBwYXRoIHNob3VsZCBiZSBzY2FubmVkIGZvciByZXBsYWNlbWVudAorICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczoge1tzY29wZTpdeHl6fS4gUmVwbGFjZW1lbnQgcGFyYW1ldGVycyBtdXN0IGJlZ2luCisgICAgICAgICAgICAgICAgICAgICB3aXRoIGEgbGV0dGVyLiBJZiBhIHNjb3BlIGlzIG5vdCBzcGVjaWZpZWQsIGFsbCBzY29wZXMgYXJlCisgICAgICAgICAgICAgICAgICAgICBjaGVja2VkIGluIHR1cm4gKHJlcXVlc3QsIHNlc3Npb24sIGFwcGxpY2F0aW9uKS4KKworICAgICB0eXBlICAgICAgICAgICAgTWF5IGJlIHNldCB0byAiZm9yd2FyZCIsICJpbmNsdWRlIiwgb3IgInJlZGlyZWN0IiB0byBpbmRpY2F0ZQorICAgICAgICAgICAgICAgICAgICAgd2hhdCBhcHByb2FjaCBpcyB0byBiZSB0YWtlbiB0byByZW5kZXIgcmVzcG9uc2UuCisgICAgICAgICAgICAgICAgICAgICBbImZvcndhcmQiXQorLS0+Cis8IUVMRU1FTlQgbG9jYXRpb24gKGljb24/LCBkaXNwbGF5LW5hbWU/LCBkZXNjcmlwdGlvbj8sIHNldC1wcm9wZXJ0eSopPgorPCFBVFRMSVNUIGxvY2F0aW9uICAgICAgICBpZCAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgbG9jYXRpb24gICAgICAgIG5hbWUgICAgICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBsb2NhdGlvbiAgICAgICAgZXh0ZW5kcyAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIGxvY2F0aW9uICAgICAgICBjb21tYW5kICAgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgbG9jYXRpb24gICAgICAgIHJlc291cmNlICAgICAgICVSZXF1ZXN0UGF0aDsgICAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgbG9jYXRpb24gICAgICAgIG1hcHBpbmdSZWYgICAgICVCb29sZWFuOyAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBsb2NhdGlvbiAgICAgICAgYXBwUmVsYXRpdmUgICAgJUJvb2xlYW47ICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIGxvY2F0aW9uICAgICAgICBtZXJnZSAgICAgICAgICAlQm9vbGVhbjsgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgbG9jYXRpb24gICAgICAgIHJlZGlyZWN0ICAgICAgICVCb29sZWFuOyAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBsb2NhdGlvbiAgICAgICAgdHlwZSAgICAgICAgICAgJUxvY2F0aW9uVHlwZTsgICNJTVBMSUVEPgorCisKKzwhLS0gVGhlIDxleGNlcHRpb25zPiBlbGVtZW50IGRlc2NyaWJlcyBhIHNldCBvZiBleGNlcHRpb25zIHRoYXQgbWlnaHQgYmUKKyAgICAgdGhyb3duIGJ5IGFuIE1hcHBpbmdIYW5kbGVyIG9iamVjdC4gVGhlIGhhbmRsaW5nIG9mIGluZGl2aWR1YWwgZXhjZXB0aW9uCisgICAgIGNsYXNzZXMgY2FuIGJlIGNvbmZpZ3VyZWQgdGhyb3VnaCBuZXN0ZWQgZXhjZXB0aW9uIGVsZW1lbnRzLgorICAgICBJZiBhIDxtYXBwaW5nPiBlbGVtZW50IHJlZ2lzdGVycyBhIGxvY2FsIGV4Y2VwdGlvbiBoYW5kbGVyIGZvciB0aGUgc2FtZQorICAgICBleGNlcHRpb24gdHlwZSwgdGhlIGxvY2FsIGhhbmRsZXIgb3ZlcnJpZGVzIHRoZSBnbG9iYWwgZXhjZXB0aW9uIGhhbmRsZXIuCisgICAgIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlIGlzIGRlZmluZWQ6CisKKyAgICAgaGFuZGxlciAgICAgICAgRnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgdG8gdXNlIHdoZW4gaW5zdGFudGlhdGluZworICAgICAgICAgICAgICAgICAgICBFeGNlcHRpb25Db25maWcgb2JqZWN0cy4gSWYgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IG11c3QgaW1wbGVtZW50CisgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzLmNvcmUuRXhjZXB0aW9uQ29uZmlnLgorLS0+Cis8IUVMRU1FTlQgZXhjZXB0aW9ucyAoZXhjZXB0aW9uKik+Cis8IUFUVExJU1QgZXhjZXB0aW9ucyBpZCAgICAgICAgICBJRCAgICAgICAgICAgICAgI0lNUExJRUQ+CisKKworPCEtLSBUaGUgPGV4Y2VwdGlvbj4gZWxlbWVudCByZWdpc3RlcnMgYW4gRXhjZXB0aW9uSGFuZGxlcgorICAgIChvcmcuYXBhY2hlLnN0cnV0cy5jb3JlLkV4Y2VwdGlvbkhhbmRsZXIpIGZvciBhbiBleGNlcHRpb24gY2xhc3MuCisgICAgIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgZGVmaW5lZDoKKworICAgICBuYW1lICAgICAgICAgICAgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyA8ZXhjZXB0aW9uPiBlbGVtZW50IHNvIHRoYXQgaXQKKyAgICAgICAgICAgICAgICAgICAgIGNhbiBiZSByZWZlcmVuY2VkIGJ5IGFuICJleHRlbmRzIiBhdHRyaWJ1dGUuCisKKyAgICAgZXh0ZW5kcyAgICAgICAgIE5hbWUgb2YgYW4gPGV4Y2VwdGlvbj4gZWxlbWVudCB0aGF0IGlzIHVzZWQgYXMgYSB2YWx1ZSB0ZW1wbGF0ZQorICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC4gQWxsIGF0dHJpYnV0ZXMgZnJvbSB0aGUgdGVtcGxhdGUgYXJlIGF2YWlsYWJsZQorICAgICAgICAgICAgICAgICAgICAgdG8gdGhlIG5ldyBlbGVtZW50LiBBbnkgYXR0cmlidXRlIGluaGVyaXRlZCBmcm9tIHRoZSB0ZW1wbGF0ZQorICAgICAgICAgICAgICAgICAgICAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgcHJvdmlkaW5nIGEgbmV3IHZhbHVlLgorCisgICAgIGNvbmZpZyAgICAgICAgICBGdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSB0byB1c2Ugd2hlbiBpbnN0YW50aWF0aW5nCisgICAgICAgICAgICAgICAgICAgICBFeGNlcHRpb25Db25maWcgb2JqZWN0cy4gSWYgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IG11c3QgaW1wbGVtZW50CisgICAgICAgICAgICAgICAgICAgICBvcmcuYXBhY2hlLnN0cnV0cy5jb3JlLkV4Y2VwdGlvbkNvbmZpZy4KKyAgICAgICAgICAgICAgICAgICAgIFsib3JnLmFwYWNoZS5zdHJ1dHMuY29yZS5FeGNlcHRpb25Db25maWdCYXNlIl0KKworICAgICBoYW5kbGVyICAgICAgICAgRnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgb2YgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyIHRvIHVzZQorICAgICAgICAgICAgICAgICAgICAgd2l0aCB0aGlzIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgIFsib3JnLmFwYWNoZS5zdHJ1dHMuY29yZS5FeGNlcHRpb25IYW5kbGVyQmFzZSJdCisKKyAgICAgbG9jYXRpb24gICAgICAgIFRoZSBuYW1lIG9mIHRoZSA8bG9jYXRpb24+IGVsZW1lbnQgKGxvY2FsIG9yIGdsb2JhbCkgdGhhdCB3aWxsCisgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZSB0aGUgcmVxdWVzdC9yZXNwb25zZSBpZiB0aGUgRXhjZXB0aW9uIHNwZWNpZmllZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICJ0cmlnZ2VyIiBhdHRyaWJ1dGUgaXMgdGhyb3duLgorCisgICAgIHNjb3BlICAgICAgICAgICBUaGUgc2NvcGUgKCJyZXF1ZXN0IiBvciAic2Vzc2lvbiIpIHRoYXQgaXMgdXNlZCB0byBhY2Nlc3MKKyAgICAgICAgICAgICAgICAgICAgIHRoZSBNZXNzYWdlIG9iamVjdCAob3JnLmFwYWNoZS5zdHJ1dHMuY29yZS5NZXNzYWdlKQorICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZXhjZXB0aW9uLgorCisgICAgIGJ1bmRsZU5hbWUgICAgICBBdHRyaWJ1dGUgbmFtZSBmb3IgdGhlIG1lc3NhZ2UgYnVuZGxlIGFzc29jaWF0ZWQgd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyLiBbb3JnLmFwYWNoZS5zdHJ1dHMuY29yZS5LZXlzLkJVTkRMRV9LRVldCisKKyAgICAga2V5ICAgICAgICAgICAgIFRoZSBrZXkgdG8gdXNlIHdpdGggdGhpcyBoYW5kbGVyJ3MgbWVzc2FnZSBidW5kbGUKKyAgICAgICAgICAgICAgICAgICAgIHRoYXQgd2lsbCByZXRyaWV2ZSB0aGUgbWVzc2FnZSB0ZW1wbGF0ZSB0byB1c2Ugd2l0aCB0aGlzCisgICAgICAgICAgICAgICAgICAgICBleGNlcHRpb24uCisKKyAgICAgdHJpZ2dlciAgICAgICAgIEZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIG9mIHRoZSBFeGNlcHRpb24gY2xhc3MgdG8KKyAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyIHdpdGggdGhpcyBoYW5kbGVyLgorLS0+Cis8IUVMRU1FTlQgZXhjZXB0aW9uIChpY29uPywgZGlzcGxheS1uYW1lPywgZGVzY3JpcHRpb24/LCBzZXQtcHJvcGVydHkqLCBsb2NhdGlvbiopPgorPCFBVFRMSVNUIGV4Y2VwdGlvbiAgICAgIGlkICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBleGNlcHRpb24gICAgICBuYW1lICAgICAgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgZXhjZXB0aW9uICAgICAgZXh0ZW5kcyAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIGV4Y2VwdGlvbiAgICAgIGNvbmZpZyAgICAgICAgICVDbGFzc05hbWU7ICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBleGNlcHRpb24gICAgICBoYW5kbGVyICAgICAgICAlQ2xhc3NOYW1lOyAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgZXhjZXB0aW9uICAgICAgbG9jYXRpb24gICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIGV4Y2VwdGlvbiAgICAgIHNjb3BlICAgICAgICAgICVTY29wZTsgICAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBleGNlcHRpb24gICAgICBidW5kbGVOYW1lICAgICAlQXR0cmlidXRlTmFtZTsgI0lNUExJRUQ+Cis8IUFUVExJU1QgZXhjZXB0aW9uICAgICAga2V5ICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNSRVFVSVJFRD4KKzwhQVRUTElTVCBleGNlcHRpb24gICAgICB0cmlnZ2VyICAgICAgICAlQ2xhc3NOYW1lOyAgICAgI1JFUVVJUkVEPgorCisKKzwhLS0gVGhlIDxwcm9jZXNzb3JzPiBlbGVtZW50IGRlc2NyaWJlcyBhIHNldCBvZiBQcm9jZXNzb3Igb2JqZWN0cworICAgICAob3JnLmFwYWNoZS5zdHJ1dHMuY29yZS5Qcm9jZXNzb3IpIHRoYXQgYXJlIGF2YWlsYWJsZSB0byBwcm9jZXNzCisgICAgIHJlcXVlc3RzLiBUaGUgaW5kaXZpZHVhbCBQcm9jZXNzb3JzIGFyZSBjb25maWd1cmVkIHRocm91Z2ggbmVzdGVkCisgICAgIDxwcm9jZXNzb3I+IGVsZW1lbnRzLiBUaGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQ6CisKKyAgICAgY29uZmlnICAgICAgICAgRnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgdG8gdXNlIHdoZW4gaW5zdGFudGlhdGluZworICAgICAgICAgICAgICAgICAgICBQcm9jZXNzb3Igb2JqZWN0cy4gSWYgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IG11c3QgaW1wbGVtZW50CisgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzLmNvcmUuUHJvY2Vzc29yLgorICAgICAgICAgICAgICAgICAgICBbIm9yZy5hcGFjaGUuc3RydXRzLmNvcmUuUHJvY2Vzc29yQmFzZSJdCistLT4KKzwhRUxFTUVOVCBwcm9jZXNzb3JzIChwcm9jZXNzb3IqKT4KKzwhQVRUTElTVCBwcm9jZXNzb3JzIGlkICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBwcm9jZXNzb3JzIGNvbmZpZyAgICAgICAgICVDbGFzc05hbWU7ICAgICAjSU1QTElFRD4KKworCis8IS0tIFRoZSA8cHJvY2Vzc29yPiBlbGVtZW50IGRlc2NyaWJlcyB0aGUgYSBQcm9jZXNzb3Igb2JqZWN0CisgICAgIFtvcmcuYXBhY2hlLnN0cnV0cy5jb3JlLlByb2Nlc3Nvcl0gdGhhdCBpcyB1c2VkIHRvIG1hbmFnZSBhCisgICAgIHJlcXVlc3QvcmVzcG9uc2UgZXZlbnQuIEVhY2ggPG1hcHBpbmc+IGVsZW1lbnQgY2FuIHNwZWNpZnkKKyAgICAgaXRzIG93biBQcm9jZXNzb3Igb2JqZWN0LCBpZiBuZWVkZWQuIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcworICAgICBhcmUgZGVmaW5lZDoKKworICAgICBuYW1lICAgICAgICAgICAgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyA8cHJvY2Vzc29yPiBlbGVtZW50IHNvIHRoYXQgaXQKKyAgICAgICAgICAgICAgICAgICAgIGNhbiBiZSByZWZlcmVuY2VkIGJ5IGFuICJleHRlbmRzIiBhdHRyaWJ1dGUuCisKKyAgICAgZXh0ZW5kcyAgICAgICAgIE5hbWUgb2YgYSA8cHJvY2Vzc29yPiBlbGVtZW50IHRoYXQgaXMgdXNlZCBhcyBhIHZhbHVlIHRlbXBsYXRlCisgICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBlbGVtZW50LiBBbGwgYXR0cmlidXRlcyBmcm9tIHRoZSB0ZW1wbGF0ZSBhcmUgYXZhaWxhYmxlCisgICAgICAgICAgICAgICAgICAgICB0byB0aGUgbmV3IGVsZW1lbnQuIEFueSBhdHRyaWJ1dGUgaW5oZXJpdGVkIGZyb20gdGhlIHRlbXBsYXRlCisgICAgICAgICAgICAgICAgICAgICBjYW4gYmUgb3ZlcnJpZGRlbiBieSBwcm92aWRpbmcgYSBuZXcgdmFsdWUuCisKKyAgICAgY29uZmlnICAgICAgICAgIEZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIHRvIHVzZSB3aGVuIGluc3RhbnRpYXRpbmcKKyAgICAgICAgICAgICAgICAgICAgIFByb2Nlc3NvciBvYmplY3RzLiBJZiBzcGVjaWZpZWQsIHRoZSBvYmplY3QgbXVzdCBpbXBsZW1lbnQKKyAgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzLmNvcmUuUHJvY2Vzc29yLgorICAgICAgICAgICAgICAgICAgICAgWyJvcmcuYXBhY2hlLnN0cnV0cy5jb3JlLlByb2Nlc3NvckJhc2UiXQorCisgICAgIGhhbmRsZXIgICAgICAgICBUaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICBSZXF1ZXN0SGFuZGxlciBzdWJjbGFzcyB0byBiZSB1c2VkIHdpdGggdGhpcyBtb2R1bGUuCisgICAgICAgICAgICAgICAgICAgICBbIm9yZy5hcGFjaGUuc3RydXRzLmNvcmUuUmVxdWVzdEhhbmRsZXIiXQorCisgICAgIGxvY2FsZSAgICAgICAgICBTZXQgdG8gImZhbHNlIiBpZiB5b3UgZG8gbm90IHdhbnQgYSBMb2NhbGUgb2JqZWN0IHN0b3JlZCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgIHVzZXIncyBzZXNzaW9uLgorICAgICAgICAgICAgICAgICAgICAgWyJ0cnVlIl0KKworICAgICBwYXRoUGF0dGVybiAgICAgUmVwbGFjZW1lbnQgcGF0dGVybiBkZWZpbmluZyBob3cgdGhlICJyZXNvdXJjZSIgYXR0cmlidXRlIG9mIGEKKyAgICAgICAgICAgICAgICAgICAgIDxsb2NhdGlvbj4gZWxlbWVudCBpcyBtYXBwZWQgdG8gYSBjb250ZXh0LXJlbGF0aXZlIFVSTCB3aGVuCisgICAgICAgICAgICAgICAgICAgICBpdCBzdGFydHMgd2l0aCBhIHNsYXNoIChhbmQgd2hlbiB0aGUgYXBwUmVsYXRpdmUKKyAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5IGlzIGZhbHNlKS4gVGhpcyB2YWx1ZSBtYXkgY29uc2lzdCBvZiBhbnkKKyAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmF0aW9uIG9mIHRoZSBmb2xsb3dpbmc6CisgICAgICAgICAgICAgICAgICAgICAtICIkTSIgLSBSZXBsYWNlZCBieSB0aGUgbW9kdWxlIHByZWZpeCBvZiB0aGlzIG1vZHVsZQorICAgICAgICAgICAgICAgICAgICAgLSAiJFIiIC0gUmVwbGFjZWQgYnkgdGhlICJyZXNvdXJjZSIgYXR0cmlidXRlIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQgImxvY2F0aW9uIiBlbGVtZW50CisgICAgICAgICAgICAgICAgICAgICAtICIkUCIgLSBTYW1lIGFzICIkUiIuCisgICAgICAgICAgICAgICAgICAgICAtICIkJCIgLSBDYXVzZXMgYSBsaXRlcmFsIGRvbGxhciBzaWduIHRvIGJlIHJlbmRlcmVkCisgICAgICAgICAgICAgICAgICAgICAtICIkeCIgLSAoV2hlcmUgIngiIGlzIGFueSBjaGFyYWN0ZXIgbm90IGRlZmluZWQgYWJvdmUpCisgICAgICAgICAgICAgICAgICAgICBTaWxlbnRseSBzd2FsbG93ZWQsIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlCisgICAgICAgICAgICAgICAgICAgICBbIiRNJFIiXQorCisgICAgIHBhZ2VQYXR0ZXJuICAgICBSZXBsYWNlbWVudCBwYXR0ZXJuIGRlZmluaW5nIGhvdyB0aGUgInBhZ2UiIGF0dHJpYnV0ZSBvZgorICAgICAgICAgICAgICAgICAgICAgY3VzdG9tIHRhZ3MgdXNpbmcgaXQgaXMgbWFwcGVkIHRvIGEgY29udGV4dC1yZWxhdGl2ZSBVUkwKKyAgICAgICAgICAgICAgICAgICAgIG9mIHRoZSBjb3JyZXNwb25kaW5nIHJlc291cmNlLiAgVGhpcyB2YWx1ZSBtYXkgY29uc2lzdCBvZgorICAgICAgICAgICAgICAgICAgICAgYW55IGNvbWJpbmF0aW9uIG9mIHRoZSBmb2xsb3dpbmc6CisgICAgICAgICAgICAgICAgICAgICAtICIkTSIgLSBSZXBsYWNlZCBieSB0aGUgbW9kdWxlIHByZWZpeCBvZiB0aGlzIG1vZHVsZQorICAgICAgICAgICAgICAgICAgICAgLSAiJFAiIC0gUmVwbGFjZWQgYnkgdGhlIHZhbHVlIG9mIHRoZSAicGFnZSIgYXR0cmlidXRlCisgICAgICAgICAgICAgICAgICAgICAtICIkJCIgLSBDYXVzZXMgYSBsaXRlcmFsIGRvbGxhciBzaWduIHRvIGJlIHJlbmRlcmVkCisgICAgICAgICAgICAgICAgICAgICAtICIkeCIgLSAoV2hlcmUgIngiIGlzIGFueSBjaGFyYWN0ZXIgbm90IGRlZmluZWQgYWJvdmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaWxlbnRseSBzd2FsbG93ZWQsIHJlc2VydmVkIGZvciBmdXR1cmUgdXNlCisgICAgICAgICAgICAgICAgICAgICBbIiRNJFAiXQorCisgICAgIGNvbnRlbnRUeXBlICAgICBEZWZhdWx0IGNvbnRlbnQgdHlwZSAoYW5kIG9wdGlvbmFsIGNoYXJhY3RlciBlbmNvZGluZykgdG8KKyAgICAgICAgICAgICAgICAgICAgIGJlIHNldCBvbiBlYWNoIHJlc3BvbnNlLiBNYXkgYmUgb3ZlcnJpZGRlbiBieSB0aGUgQWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgc2VydmVyIHBhZ2UsIG9yIG90aGVyIHJlc291cmNlIHRvIHdoaWNoIHRoZSByZXF1ZXN0IGlzIGZvcndhcmRlZC4KKyAgICAgICAgICAgICAgICAgICAgIFsidGV4dC9odG1sIl0KKworICAgICBub2NhY2hlICAgICAgICAgU2V0IHRvICJ0cnVlIiBpZiB5b3Ugd2FudCB0aGUgY29udHJvbGxlciB0byBhZGQgSFRUUAorICAgICAgICAgICAgICAgICAgICAgaGVhZGVycyBmb3IgZGVmZWF0aW5nIGNhY2hpbmcgdG8gZXZlcnkgcmVzcG9uc2UgZnJvbQorICAgICAgICAgICAgICAgICAgICAgdGhpcyBtb2R1bGUuCisgICAgICAgICAgICAgICAgICAgICBbImZhbHNlIl0KKworICAgICBidWZmZXJTaXplICAgICAgVGhlIHNpemUgb2YgdGhlIGlucHV0IGJ1ZmZlciB1c2VkIHdoZW4gcHJvY2Vzc2luZworICAgICAgICAgICAgICAgICAgICAgZmlsZSB1cGxvYWRzLgorICAgICAgICAgICAgICAgICAgICAgWyI0MDk2Il0KKworICAgICBtYXhGaWxlU2l6ZSAgICAgVGhlIG1heGltdW0gc2l6ZSAoaW4gYnl0ZXMpIG9mIGEgZmlsZSB0byBiZSBhY2NlcHRlZCBhcyBhCisgICAgICAgICAgICAgICAgICAgICBmaWxlIHVwbG9hZC4gIENhbiBiZSBleHByZXNzZWQgYXMgYSBudW1iZXIgZm9sbG93ZWQgYnkgYQorICAgICAgICAgICAgICAgICAgICAgIksiLCAiTSIsIG9yICJHIiwgd2hpY2ggYXJlIGludGVycHJldGVkIHRvIG1lYW4ga2lsb2J5dGVzLAorICAgICAgICAgICAgICAgICAgICAgbWVnYWJ5dGVzLCBvciBnaWdhYnl0ZXMsIHJlc3BlY3RpdmVseS4KKyAgICAgICAgICAgICAgICAgICAgIFsiMjUwTSJdCisKKyAgICAgbWVtRmlsZVNpemUgICAgIFRoZSBtYXhpbXVtIHNpemUgKGluIGJ5dGVzKSBvZiBhIGZpbGUgd2hvc2UgY29udGVudHMgd2lsbAorICAgICAgICAgICAgICAgICAgICAgYmUgcmV0YWluZWQgaW4gbWVtb3J5IGFmdGVyIHVwbG9hZGluZy4gRmlsZXMgbGFyZ2VyIHRoYW4KKyAgICAgICAgICAgICAgICAgICAgIHRoaXMgdGhyZXNob2xkIHdpbGwgYmUgd3JpdHRlbiB0byBzb21lIGFsdGVybmF0aXZlIHN0b3JhZ2UKKyAgICAgICAgICAgICAgICAgICAgIG1lZGl1bSwgdHlwaWNhbGx5IGEgaGFyZCBkaXNrLiBDYW4gYmUgZXhwcmVzc2VkIGFzIGEgbnVtYmVyCisgICAgICAgICAgICAgICAgICAgICBmb2xsb3dlZCBieSBhICJLIiwgIk0iLCBvciAiRyIsIHdoaWNoIGFyZSBpbnRlcnByZXRlZCB0bworICAgICAgICAgICAgICAgICAgICAgbWVhbiBraWxvYnl0ZXMsIG1lZ2FieXRlcywgb3IgZ2lnYWJ5dGVzLCByZXNwZWN0aXZlbHkuCisgICAgICAgICAgICAgICAgICAgICBbIjI1NksiXQorCisgICAgIG11bHRpcGFydENsYXNzICBUaGUgZnVsbHkgcXVhbGlmaWVkIEphdmEgY2xhc3MgbmFtZSBvZiB0aGUgbXVsdGlwYXJ0CisgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0IGhhbmRsZXIgY2xhc3MgdG8gYmUgdXNlZCB3aXRoIHRoaXMgbW9kdWxlLgorICAgICAgICAgICAgICAgICAgICAgWyJvcmcuYXBhY2hlLnN0cnV0cy51cGxvYWQuQ29tbW9uc011bHRpcGFydFJlcXVlc3RIYW5kbGVyIl0KKworICAgICB0ZW1wRGlyICAgICAgICAgVGVtcG9yYXJ5IHdvcmtpbmcgZGlyZWN0b3J5IHRvIHVzZSB3aGVuIHByb2Nlc3NpbmcKKyAgICAgICAgICAgICAgICAgICAgIGZpbGUgdXBsb2Fkcy4KKyAgICAgICAgICAgICAgICAgICAgIFt7RGlyZWN0b3J5IHByb3ZpZGVkIGJ5IHNlcnZsZXQgY29udGFpbmVyfV0KKy0tPgorPCFFTEVNRU5UIHByb2Nlc3NvciAgICAgKHNldC1wcm9wZXJ0eSopPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgaWQgICAgICAgICAgICAgSUQgICAgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgbmFtZSAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgZXh0ZW5kcyAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgY29uZmlnICAgICAgICAgJUNsYXNzTmFtZTsgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgaGFuZGxlciAgICAgICAgJUNsYXNzTmFtZTsgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgbG9jYWxlICAgICAgICAgJUJvb2xlYW47ICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgcGF0aFBhdHRlcm4gICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgcGFnZVBhdHRlcm4gICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgY29udGVudFR5cGUgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgbm9jYWNoZSAgICAgICAgJUJvb2xlYW47ICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgYnVmZmVyU2l6ZSAgICAgJUludGVnZXI7ICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgbWF4RmlsZVNpemUgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgbWVtRmlsZVNpemUgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgbXVsdGlwYXJ0Q2xhc3MgJUNsYXNzTmFtZTsgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHByb2Nlc3NvciAgICAgdGVtcERpciAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorCisKKzwhLS0gVGhlIDxtYXBwaW5ncz4gZWxlbWVudCBkZXNjcmliZXMgYSBzZXQgb2YgTWFwcGluZyBvYmplY3RzCisgICAgIChvcmcuYXBhY2hlLnN0cnV0cy5jb3JlLk1hcHBpbmcpIHRoYXQgYXJlIGF2YWlsYWJsZSB0byBwcm9jZXNzCisgICAgIHJlcXVlc3RzLiBUaGUgaW5kaXZpZHVhbCBNYXBwaW5ncyBhcmUgY29uZmlndXJlZCB0aHJvdWdoIG5lc3RlZAorICAgICA8bWFwcGluZz4gZWxlbWVudHMuIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgZGVmaW5lZDoKKworICAgICBjb25maWcgICAgICAgICBGdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSB0byB1c2Ugd2hlbiBpbnN0YW50aWF0aW5nCisgICAgICAgICAgICAgICAgICAgIE1hcHBpbmcgb2JqZWN0cy4gSWYgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IG11c3QgaW1wbGVtZW50CisgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzLmNvcmUuTWFwcGluZy4KKyAgICAgICAgICAgICAgICAgICAgWyJvcmcuYXBhY2hlLnN0cnV0cy5jb3JlLk1hcHBpbmdCYXNlIl0KKy0tPgorPCFFTEVNRU5UIG1hcHBpbmdzIChhY3Rpb24qKT4KKzwhQVRUTElTVCBtYXBwaW5ncyBpZCAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWFwcGluZ3MgY29uZmlnICAgICAgICAgJUNsYXNzTmFtZTsgICAgICNJTVBMSUVEPgorCisKKzwhLS0gVGhlIDxtYXBwaW5nPiBlbGVtZW50IGRlc2NyaWJlcyBhbiBNYXBwaW5nIG9iamVjdCB0aGF0IGlzIHRvIGJlIHVzZWQKKyAgICAgdG8gcHJvY2VzcyBhIHJlcXVlc3QuIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgZGVmaW5lZDoKKworICAgICBuYW1lICAgICAgICAgICAgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBleGNlcHRpb24gZWxlbWVudCBzbyB0aGF0IGl0CisgICAgICAgICAgICAgICAgICAgICBjYW4gYmUgcmVmZXJlbmNlZCBieSBhbiAiZXh0ZW5kcyIgYXR0cmlidXRlLiAoVGhpcyBpcyAqbm90KgorICAgICAgICAgICAgICAgICAgICAgYSByZWZlcmVuY2UgdG8gYW4gPGlucHV0PiBlbGVtZW50ISkKKworICAgICBleHRlbmRzICAgICAgICAgTmFtZSBvZiBhbiA8bWFwcGluZz4gZWxlbWVudCB0aGF0IGlzIHVzZWQgYXMgYSB2YWx1ZSB0ZW1wbGF0ZQorICAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZWxlbWVudC4gQWxsIGF0dHJpYnV0ZXMgZnJvbSB0aGUgdGVtcGxhdGUgYXJlIGF2YWlsYWJsZQorICAgICAgICAgICAgICAgICAgICAgdG8gdGhlIG5ldyBlbGVtZW50LiBBbnkgYXR0cmlidXRlIGluaGVyaXRlZCBmcm9tIHRoZSB0ZW1wbGF0ZQorICAgICAgICAgICAgICAgICAgICAgY2FuIGJlIG92ZXJyaWRkZW4gYnkgcHJvdmlkaW5nIGEgbmV3IHZhbHVlLgorCisgICAgIGNvbmZpZyAgICAgICAgICBUaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgb2YgdGhlIE1hcHBpbmcgb2JqZWN0IHRvIHVzZQorICAgICAgICAgICAgICAgICAgICAgd2l0aCB0aGlzIGluc3RhbmNlLiBEZWZhdWx0cyB0byB0aGUgdHlwZSBzcGVjaWZpZWQgYnkgdGhlCisgICAgICAgICAgICAgICAgICAgICBlbmNsb3NpbmcgPG1hcHBpbmdzPiBlbGVtZW50IG9yIHRvCisgICAgICAgICAgICAgICAgICAgICAib3JnLmFwYWNoZS5zdHJ1dHMuY29yZS5NYXBwaW5nQmFzZSIgaWYgbm90IHNwZWNpZmllZC4KKyAgICAgICAgICAgICAgICAgICAgIFsib3JnLmFwYWNoZS5zdHJ1dHMuY29yZS5NYXBwaW5nQmFzZSJdCisKKyAgICAgY29tbWFuZCAgICAgICAgIE5hbWUgb2YgYSBDb21tYW5kIHRvIGV4ZWN1dGUgaW4gb3JkZXIgdG8gcHJvY2VzcyB0aGlzCisgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LiBUaGUgQ29tbWFuZCBpcyBwYXNzZWQgYSBTdHJ1dHNDb250ZXh0IG9iamVjdCB3cmFwcGluZworICAgICAgICAgICAgICAgICAgICAgdGhlIHJlcXVlc3QuIElmIHRoZSBDb21tYW5kIHJldHVybnMgImZhbHNlIiwgdGhlIExvY2F0aW9uCisgICAgICAgICAgICAgICAgICAgICBvYmplY3QgaXMgcHJvY2Vzc2VkIHRvIGNvbXBsZXRlIHRoZSByZXNwb25zZS4KKyAgICAgICAgICAgICAgICAgICAgIChvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uIG5vdyBpbXBsZW1lbnRzIENvbW1hbmQKKyAgICAgICAgICAgICAgICAgICAgIGFuZCBwcm92aWRlcyBkZWZhdWx0IGJlaGF2aW9yIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LikKKworICAgICBsb2NhdGlvbiAgICAgICAgVGhlIGRlZmF1bHQgbG9jYXRpb24gdG8gc2V0IGluIHRoZSBDb250ZXh0IGZvciB0aGlzIE1hcHBpbmcuCisgICAgICAgICAgICAgICAgICAgICBJZiBub3QgY2hhbmdlZCBieSBhIENvbW1hbmQsIHRoaXMgTG9jYXRpb24gd2lsbCBiZSB1c2VkIHRvIHJlbmRlcgorICAgICAgICAgICAgICAgICAgICAgdGhlIHJlcG9uc2UuCisgICAgICAgICAgICAgICAgICAgICBbbnVsbF0KKworICAgICBtYXRjaGVzICAgICAgICAgVGhlIHBhdGggdG8gbWF0Y2ggYWdhaW5zdCB0aGUgc3VibWl0dGVkIHJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICBzdGFydGluZyB3aXRoIGEgIi8iIGNoYXJhY3RlciwgYW5kIHdpdGhvdXQgdGhlIGZpbGVuYW1lIGV4dGVuc2lvbgorICAgICAgICAgICAgICAgICAgICAgaWYgZXh0ZW5zaW9uIG1hcHBpbmcgaXMgdXNlZC4KKworICAgICAgICAgICAgICAgICAgICAgTk9URTogIERvICpub3QqIGluY2x1ZGUgYSBwZXJpb2QgaW4geW91ciBwYXRoIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICBiZWNhdXNlIGl0IHdpbGwgbG9vayBsaWtlIGEgZmlsZW5hbWUgZXh0ZW5zaW9uIGFuZAorICAgICAgICAgICAgICAgICAgICAgbWF5IGNhdXNlIHlvdXIgTWFwcGluZyBub3QgdG8gZm91bmQuCisKKyAgICBwcm9jZXNzb3IgICAgICAgIE5hbWUgb2YgYSBQcm9jZXNzb3Igb2JqZWN0IHRvIHVzZSB3aGVuIGhhbmRsaW5nIHRoaXMgcmVxdWVzdC4KKyAgICAgICAgICAgICAgICAgICAgIElmIG5vdCBzcGVjaWZpZWQsIHRoZSAidW5uYW1lZCIgcHJvY2Vzc29yIGlzIHVzZWQuCisKKyAgICBkZWZhdWx0ICAgICAgICAgIFNldCB0byAidHJ1ZSIgaWYgdGhpcyBvYmplY3Qgc2hvdWxkIGJlIGNvbmZpZ3VyZWQgYXMgdGhlCisgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0IG1hcHBpbmcuIElmIGEgcmVxdWVzdCBkb2VzIG5vdCBtYXRjaCBhbm90aGVyIG1hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICBpdCB3aWxsIGJlIHBhc3NlZCB0byB0aGUgTWFwcGluZyBvYmplY3Qgd2l0aCBkZWZhdWx0IHNldCB0bworICAgICAgICAgICAgICAgICAgICAgInRydWUiLiBPbmx5IG9uZSBNYXBwaW5nIGNhbiBiZSBtYXJrZWQgYXMgImRlZmF1bHQiIHdpdGhpbiBhCisgICAgICAgICAgICAgICAgICAgICBtb2R1bGUuCisgICAgICAgICAgICAgICAgICAgICBbZmFsc2VdCisKKyAgICAgc2VjdXJlICAgICAgICAgIHdoZXRoZXIgdG8gZm9yY2Ugc2VjdXJlIGFjY2VzcyB0byB0aGlzIG1hcHBpbmcgKHZpYSBTU0wpLgorCisgICAgIHJvbGVzICAgICAgICAgICBDb21tYS1kZWxpbWl0ZWQgbGlzdCBvZiBzZWN1cml0eSByb2xlIG5hbWVzIHRoYXQgYXJlIGFsbG93ZWQKKyAgICAgICAgICAgICAgICAgICAgIGFjY2VzcyB0byB0aGlzIE1hcHBpbmcgb2JqZWN0LgorCisgICAgIHBhcmFtZXRlciAgICAgICBHZW5lcmFsLXB1cnBvc2UgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgdXNlZCB0bworICAgICAgICAgICAgICAgICAgICAgcGFzcyBleHRyYSBpbmZvcm1hdGlvbiB0byB0aGUgQ29tbWFuZCBvYmplY3Qgc2VsZWN0ZWQgYnkKKyAgICAgICAgICAgICAgICAgICAgIHRoaXMgbWFwcGluZy4KKworICAgICBhdHRyaWJ1dGUgICAgICAgTmFtZSBvZiB0aGUgcmVxdWVzdC1zY29wZSBvciBzZXNzaW9uLXNjb3BlIGF0dHJpYnV0ZSB0aGF0CisgICAgICAgICAgICAgICAgICAgICBpcyB1c2VkIHRvIGFjY2VzcyBvdXIgSW5wdXRIYW5kbGVyIG9iamVjdCwgaWYgaXQgaXMgb3RoZXIgdGhhbgorICAgICAgICAgICAgICAgICAgICAgdGhlIG9iamVjdCdzIGRlZmF1bHQgImlucHV0Ii4gT3B0aW9uYWwgaWYgImlucHV0IiBpcyBzcGVjaWZpZWQsCisgICAgICAgICAgICAgICAgICAgICBlbHNlIG5vdCB2YWxpZC4KKworICAgICBpbnB1dCAgICAgICAgICAgTmFtZSBvZiB0aGUgaW5wdXQgZGVzY3JpcHRvciwgaWYgYW55LCB0byB1c2Ugd2l0aCB0aGlzIG1hcHBpbmcuCisgICAgICAgICAgICAgICAgICAgICAoVGhpcyBpcyAqbm90KiB0aGUgZGlzcGF0Y2ggTG9jYXRpb24gaWYgdmFsaWRhdGUgZmFpbHMuKQorCisgICAgIHNjb3BlICAgICAgICAgICBUaGUgc2NvcGUgKCJyZXF1ZXN0IiBvciAic2Vzc2lvbiIpIHRoYXQgaXMgdXNlZCB0bworICAgICAgICAgICAgICAgICAgICAgYWNjZXNzIG91ciBJbnB1dEhhbmRsZXIsIGlmIGFueS4gT3B0aW9uYWwgaWYgPGlucHV0PiBpcworICAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkLCBlbHNlIG5vdCB2YWxpZC4KKworICAgICBwb3B1bGF0ZSAgICAgICAgU2V0IHRvICJmYWxzZSIgaWYgdGhlIHBvcHVsYXRlIG1ldGhvZCBvZiB0aGUgSW5wdXRIYW5kbGVyCisgICAgICAgICAgICAgICAgICAgICBzaG91bGQgbm90IGJlIGNhbGxlZCBwcmlvciB0byBjYWxsaW5nIHRoZSBNYXBwaW5nSGFuZGxlciBmb3IKKyAgICAgICAgICAgICAgICAgICAgIHRoaXMgcmVxdWVzdC4gSWYgImZhbHNlIiwgdGhlIHJlc2V0IG1ldGhvZCBpcyBhbHNvIGJ5cGFzc2VkLgorICAgICAgICAgICAgICAgICAgICAgW3RydWVdCisKKyAgICAgdmFsaWRhdGUgICAgICAgIFNldCB0byAiZmFsc2UiIGlmIHRoZSB2YWxpZGF0ZSBtZXRob2Qgb2YgdGhlIElucHV0SGFuZGxlcgorICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIG5vdCBiZSBjYWxsZWQgcHJpb3IgdG8gY2FsbGluZyB0aGUgTWFwcGluZ0hhbmRsZXIgZm9yCisgICAgICAgICAgICAgICAgICAgICB0aGlzIHJlcXVlc3QuCisgICAgICAgICAgICAgICAgICAgICBbdHJ1ZV0KKworICAgICBvbkludmFsaWQgICAgICAgTmFtZSBvZiBhIGxvY2FsIG9yIGdsb2JhbCBMb2NhdGlvbiB0aGF0IHNob3VsZCBoYW5kbGUgdGhlCisgICAgICAgICAgICAgICAgICAgICByZXNwb25zZSBpZiBhIHZhbGlkYXRpb24gbWVzc2FnZSBpcyBnZW5lcmF0ZWQuCisgICAgICAgICAgICAgICAgICAgICBWYWxpZCBvbmx5IHdoZW4gImlucHV0IiBpcyBzcGVjaWZpZWQuCisgICAgICAgICAgICAgICAgICAgICBSZXF1aXJlZCBpZiAiaW5wdXQiIGlzIHNwZWNpZmllZCBhbmQgdGhlIElucHV0SGFuZGxlciByZXR1cm5zCisgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uIG1lc3NhZ2VzLgorICAgICAgICAgICAgICAgICAgICAgT3B0aW9uYWwgaWYgImlucHV0IiBpcyBzcGVjaWZpZWQgYW5kIHRoZQorICAgICAgICAgICAgICAgICAgICAgSW5wdXRIYW5kbGVyIGRvZXMgbm90IHJldHVybiB2YWxpZGF0aW9uIG1lc3NhZ2VzLgorCisgICAgIG9uQ2FuY2VsICAgICAgICBOYW1lIG9mIGEgbG9jYWwgb3IgZ2xvYmFsIExvY2F0aW9uIHRoYXQgc2hvdWxkIGhhbmRsZSB0aGUKKyAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlIGlmICJjYW5jZWwiIGlzIHNpZ25hbGVkIGluIHRoZSByZXF1ZXN0LgorIC0tPgorPCFFTEVNRU5UIG1hcHBpbmcgKGljb24/LCBkaXNwbGF5LW5hbWU/LCBkZXNjcmlwdGlvbj8sIHNldC1wcm9wZXJ0eSosIGV4Y2VwdGlvbiosIGxvY2F0aW9uKik+Cis8IUFUVExJU1QgbWFwcGluZyAgICAgICAgIGlkICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBtYXBwaW5nICAgICAgICAgbmFtZSAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIG1hcHBpbmcgICAgICAgICBleHRlbmRzICAgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWFwcGluZyAgICAgICAgIGNvbmZpZyAgICAgICAgICVDbGFzc05hbWU7ICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBtYXBwaW5nICAgICAgICAgY29tbWFuZCAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIG1hcHBpbmcgICAgICAgICBmb3J3YXJkICAgICAgICAlUmVxdWVzdFBhdGg7ICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWFwcGluZyAgICAgICAgIGluY2x1ZGUgICAgICAgICVSZXF1ZXN0UGF0aDsgICAjSU1QTElFRD4KKzwhQVRUTElTVCBtYXBwaW5nICAgICAgICAgbWF0Y2hlcyAgICAgICAgJVJlcXVlc3RQYXRoOyAgICNSRVFVSVJFRD4KKzwhQVRUTElTVCBtYXBwaW5nICAgICAgICAgcHJvY2Vzc29yICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIG1hcHBpbmcgICAgICAgICBkZWZhdWx0ICAgICAgICAlQm9vbGVhbjsgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWFwcGluZyAgICAgICAgIHNlY3VyZSAgICAgICAgICVCb29sZWFuOyAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBtYXBwaW5nICAgICAgICAgcm9sZXMgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIG1hcHBpbmcgICAgICAgICBwYXJhbWV0ZXIgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWFwcGluZyAgICAgICAgIGF0dHJpYnV0ZSAgICAgICVQcm9wTmFtZTsgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBtYXBwaW5nICAgICAgICAgaW5wdXQgICAgICAgICAgQ0RBVEE7ICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIG1hcHBpbmcgICAgICAgICBzY29wZSAgICAgICAgICAlU2NvcGU7ICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWFwcGluZyAgICAgICAgIHBvcHVsYXRlICAgICAgICVCb29sZWFuOyAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBtYXBwaW5nICAgICAgICAgdmFsaWRhdGUgICAgICAgJUJvb2xlYW47ICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIG1hcHBpbmcgICAgICAgICBvbkludmFsaWQgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgbWFwcGluZyAgICAgICAgIG9uQ2FuY2VsICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRD4KKworCis8IS0tIFRoZSA8YnVuZGxlcz4gZWxlbWVudCBkZXNjcmliZXMgYSBzZXQgb2YgQnVuZGxlIG9iamVjdHMKKyAgICAgKG9yZy5hcGFjaGUuc3RydXRzLmNvcmUuTWVzc2FnZUJ1bmRsZSkgdGhhdCBhcmUgYXZhaWxhYmxlIHRvIHByb3ZpZGUKKyAgICAgbWVzc2FnZSBidW5kbGVzLiBUaGUgaW5kaXZpZHVhbCBCdW5kbGVzIGFyZSBjb25maWd1cmVkIHRocm91Z2ggbmVzdGVkCisgICAgIDxidW5kbGU+IGVsZW1lbnRzLiBUaGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQ6CisKKyAgICAgY29uZmlnICAgICAgICAgRnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgdG8gdXNlIHdoZW4gaW5zdGFudGlhdGluZworICAgICAgICAgICAgICAgICAgICBCdW5kbGUgb2JqZWN0cy4gSWYgc3BlY2lmaWVkLCB0aGUgb2JqZWN0IG11c3QgaW1wbGVtZW50CisgICAgICAgICAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzLmNvcmUuTWVzc2FnZUJ1bmRsZS4KKyAgICAgICAgICAgICAgICAgICAgWyJvcmcuYXBhY2hlLnN0cnV0cy5jb3JlLk1lc3NhZ2VCdW5kbGVCYXNlIl0KKy0tPgorPCFFTEVNRU5UIGJ1bmRsZXMgKHByb2Nlc3NvciopPgorPCFBVFRMSVNUIGJ1bmRsZXMgaWQgICAgICAgICAgICAgSUQgICAgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIGJ1bmRsZXMgY29uZmlnICAgICAgICAgJUNsYXNzTmFtZTsgICAgICNJTVBMSUVEPgorCisKKzwhLS0gVGhlIDxidW5kbGU+IGVsZW1lbnQgZGVzY3JpYmVzIGEgTWVzc2FnZUJ1bmRsZSBvYmplY3Qgd2l0aAorICAgICBtZXNzYWdlIHRlbXBsYXRlcyBmb3IgdGhpcyBtb2R1bGUuIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgZGVmaW5lZDoKKworICAgICBuYW1lICAgICAgICAgICAgQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBidW5kbGUgZWxlbWVudCBzbyB0aGF0IGl0CisgICAgICAgICAgICAgICAgICAgICBjYW4gYmUgcmVmZXJlbmNlZCBieSBhbiAiZXh0ZW5kcyIgYXR0cmlidXRlLgorCisgICAgIGV4dGVuZHMgICAgICAgICBOYW1lIG9mIGFuIDxidW5kbGU+IGVsZW1lbnQgdGhhdCBpcyB1c2VkIGFzIGEgdmFsdWUgdGVtcGxhdGUKKyAgICAgICAgICAgICAgICAgICAgIGZvciB0aGlzIGVsZW1lbnQuIEFsbCBhdHRyaWJ1dGVzIGZyb20gdGhlIHRlbXBsYXRlIGFyZSBhdmFpbGFibGUKKyAgICAgICAgICAgICAgICAgICAgIHRvIHRoZSBuZXcgZWxlbWVudC4gQW55IGF0dHJpYnV0ZSBpbmhlcml0ZWQgZnJvbSB0aGUgdGVtcGxhdGUKKyAgICAgICAgICAgICAgICAgICAgIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHByb3ZpZGluZyBhIG5ldyB2YWx1ZS4KKworICAgICBjb25maWcgICAgICAgICAgVGhlIGZ1bGx5IHF1YWxpZmllZCBjbGFzcyBuYW1lIG9mIHRoZSBNZXNzYWdlQnVuZGxlIG9iamVjdCB0byB1c2UKKyAgICAgICAgICAgICAgICAgICAgIHdpdGggdGhpcyBpbnN0YW5jZS4gRGVmYXVsdHMgdG8gdGhlIHR5cGUgc3BlY2lmaWVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgICAgZW5jbG9zaW5nIDxidW5kbGVzPiBlbGVtZW50IG9yIHRvCisgICAgICAgICAgICAgICAgICAgICAib3JnLmFwYWNoZS5zdHJ1dHMuY29yZS5NZXNzYWdlQnVuZGxlQmFzZSIgaWYgbm90IHNwZWNpZmllZC4KKyAgICAgICAgICAgICAgICAgICAgIFsib3JnLmFwYWNoZS5zdHJ1dHMuY29yZS5NYXBwaW5nQmFzZSJdCisKKyAgICAgZmFjdG9yeSAgICAgICAgIEZ1bGx5IHF1YWxpZmllZCBKYXZhIGNsYXNzIG5hbWUgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlQnVuZGxlRmFjdG9yeSBzdWJjbGFzcyB0byB1c2UgZm9yIHRoaXMgbWVzc2FnZQorICAgICAgICAgICAgICAgICAgICAgYnVuZGxlIG9iamVjdC4KKyAgICAgICAgICAgICAgICAgICAgIFsib3JnLmFwYWNoZS5zdHJ1dHMudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VCdW5kbGVGYWN0b3J5Il0KKworICAgICBrZXkgICAgICAgICAgICAgU2VydmxldCBjb250ZXh0IGF0dHJpYnV0ZSB1bmRlciB3aGljaCB0aGlzIG1lc3NhZ2UKKyAgICAgICAgICAgICAgICAgICAgIGJ1bmRsZSB3aWxsIGJlIHN0b3JlZC4gVGhlIGRlZmF1bHQgYXR0cmlidXRlIGlzCisgICAgICAgICAgICAgICAgICAgICB0aGUgdmFsdWUgc3BlY2lmaWVkIGJ5IHRoZSBzdHJpbmcgY29uc3RhbnQgYXQKKyAgICAgICAgICAgICAgICAgICAgIFtLZXlzLkJVTkRMRV9LRVldLiBUaGUgYXBwbGljYXRpb24gbW9kdWxlIHByZWZpeCAoaWYKKyAgICAgICAgICAgICAgICAgICAgIGFueSkgaXMgYXBwZW5kZWQgdG8gdGhlIGtleSAoJHtrZXl9JHtwcmVmaXh9KS4KKyAgICAgICAgICAgICAgICAgICAgIFtvcmcuYXBhY2hlLnN0cnV0cy5jb3JlLktleXMuQlVORExFX0tFWV0KKworICAgICAgICAgICAgICAgICAgICAgTk9URTogVGhlIGFwcGxpY2F0aW9uIG1vZHVsZSBwcmVmaXggaW5jbHVkZXMgdGhlIGxlYWRpbmcKKyAgICAgICAgICAgICAgICAgICAgIHNsYXNoLCBzbyB0aGUgZGVmYXVsdCBtZXNzYWdlIHJlc291cmNlIGJ1bmRsZSBmb3IgYSBtb2R1bGUKKyAgICAgICAgICAgICAgICAgICAgIG5hbWVkICJmb28iIGlzIHN0b3JlZCB1bmRlcgorICAgICAgICAgICAgICAgICAgICAgIm9yZy5hcGFjaGUuc3RydXRzLmNvcmUuQlVORExFL2ZvbyIuCisKKyAgICAgbnVsbCAgICAgICAgICAgIFNldCB0byAidHJ1ZSIgaWYgeW91IHdhbnQgdGhpcyBtZXNzYWdlIGJ1bmRsZSB0byByZXR1cm4gYQorICAgICAgICAgICAgICAgICAgICAgbnVsbCBzdHJpbmcgZm9yIHVua25vd24gbWVzc2FnZSBrZXlzLCBvciAiZmFsc2UiIHRvIHJldHVybiBhCisgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlIHdpdGggdGhlIGJhZCBrZXkgdmFsdWUuCisKKyAgICAgcGFyYW1ldGVyICAgICAgIENvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCB0byB0aGUgY3JlYXRlQnVuZGxlCisgICAgICAgICAgICAgICAgICAgICBtZXRob2Qgb2Ygb3VyIGZhY3Rvcnkgb2JqZWN0LgorLS0+Cis8IUVMRU1FTlQgYnVuZGxlIChzZXQtcHJvcGVydHkqKT4KKzwhQVRUTElTVCBidW5kbGUgaWQgICAgICAgICAgSUQgICAgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIGJ1bmRsZSBoYW5kbGVyICAgICAlQ2xhc3NOYW1lOyAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgYnVuZGxlIGZhY3RvcnkgICAgICVDbGFzc05hbWU7ICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBidW5kbGUga2V5ICAgICAgICAgJUF0dHJpYnV0ZU5hbWU7ICNJTVBMSUVEPgorPCFBVFRMSVNUIGJ1bmRsZSBudWxsICAgICAgICAlQm9vbGVhbjsgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgYnVuZGxlIHBhcmFtZXRlciAgIENEQVRBICAgICAgICAgICAjUkVRVUlSRUQ+CisKKworPCEtLSBUaGUgPHBsdWctaW4+IGVsZW1lbnQgc3BlY2lmaWVzIHRoZSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSBvZiBhCisgICAgIGdlbmVyYWwtcHVycG9zZSBhcHBsaWNhdGlvbiBwbHVnLWluIGNvbXBvbmVudCB0aGF0IHJlY2VpdmVzIG5vdGlmaWNhdGlvbiBvZgorICAgICBhcHBsaWNhdGlvbiBzdGFydHVwIGFuZCBzaHV0ZG93biBldmVudHMuIEFuIGluc3RhbmNlIG9mIHRoZSBzcGVjaWZpZWQgY2xhc3MKKyAgICAgaXMgY3JlYXRlZCBmb3IgZWFjaCBlbGVtZW50LCBhbmQgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCBuZXN0ZWQgPHNldC1wcm9wZXJ0eT4KKyAgICAgZWxlbWVudHMuIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgc3VwcG9ydGVkOgorCisgICAgIGhhbmRsZXIgICAgICAgICBGdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBwbHVnLWluIGNsYXNzOyBtdXN0CisgICAgICAgICAgICAgICAgICAgICBpbXBsZW1lbnQgW29yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5QbHVnSW5dLgorLS0+Cis8IUVMRU1FTlQgcGx1Zy1pbiAgICAgICAgICAgKHNldC1wcm9wZXJ0eSopPgorPCFBVFRMSVNUIHBsdWctaW4gICAgICAgICAgIGlkICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBwbHVnLWluICAgICAgICAgICBoYW5kbGVyICAgICAlQ2xhc3NOYW1lOyAgICAgI1JFUVVJUkVEPgorCisKKzwhLS0gPT09PT09PT09PSBTdWJvcmRpbmF0ZSBFbGVtZW50cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKworCis8IS0tIFRoZSAiZGVzY3JpcHRpb24iIGVsZW1lbnQgY29udGFpbnMgZGVzY3JpcHRpdmUgKHBhcmFncmFwaCBsZW5ndGgpIHRleHQKKyAgICAgYWJvdXQgdGhlIHN1cnJvdW5kaW5nIGVsZW1lbnQsIHN1aXRhYmxlIGZvciB1c2UgaW4gR1VJIHRvb2xzLgorLS0+Cis8IUVMRU1FTlQgZGVzY3JpcHRpb24gICAgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGRlc2NyaXB0aW9uICAgIGlkICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRD4KKworCis8IS0tIFRoZSAiZGlzcGxheS1uYW1lIiBlbGVtZW50IGNvbnRhaW5zIGEgc2hvcnQgKG9uZSBsaW5lKSBkZXNjcmlwdGlvbiBvZgorICAgICB0aGUgc3Vycm91bmRpbmcgZWxlbWVudCwgc3VpdGFibGUgZm9yIHVzZSBpbiBHVUkgdG9vbHMuCistLT4KKzwhRUxFTUVOVCBkaXNwbGF5LW5hbWUgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGRpc3BsYXktbmFtZSAgIGlkICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRD4KKworCis8IS0tIFRoZSAiaWNvbiIgZWxlbWVudCBjb250YWlucyBhIHNtYWxsLWljb24gYW5kIGxhcmdlLWljb24gZWxlbWVudCB3aGljaAorICAgICBzcGVjaWZ5IHRoZSBsb2NhdGlvbiwgcmVsYXRpdmUgdG8gdGhlIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGUsIGZvciBzbWFsbAorICAgICBhbmQgbGFyZ2UgaW1hZ2VzIHVzZWQgdG8gcmVwcmVzZW50IHRoZSBzdXJyb3VuZGluZyBlbGVtZW50IGluIEdVSSB0b29scy4KKy0tPgorPCFFTEVNRU5UIGljb24gICAgICAgICAgIChzbWFsbC1pY29uPywgbGFyZ2UtaWNvbj8pPgorPCFBVFRMSVNUIGljb24gICAgICAgICAgIGlkICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRD4KKworCis8IS0tIFRoZSAibGFyZ2UtaWNvbiIgZWxlbWVudCBzcGVjaWZpZXMgdGhlIGxvY2F0aW9uLCByZWxhdGl2ZSB0byB0aGUgU3RydXRzCisgICAgIGNvbmZpZ3VyYXRpb24gZmlsZSwgb2YgYSByZXNvdXJjZSBjb250YWluaW5nIGEgbGFyZ2UgKDMyeDMyIHBpeGVsKQorICAgICBpY29uIGltYWdlLgorLS0+Cis8IUVMRU1FTlQgbGFyZ2UtaWNvbiAgICAgKCVMb2NhdGlvbjspPgorPCFBVFRMSVNUIGxhcmdlLWljb24gICAgIGlkICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRD4KKworCis8IS0tIFRoZSAic2V0LXByb3BlcnR5IiBlbGVtZW50IHNwZWNpZmllcyB0aGUgbWV0aG9kIG5hbWUgYW5kIGluaXRpYWwgdmFsdWUgb2YKKyAgICAgYW4gYWRkaXRpb25hbCBKYXZhQmVhbiBjb25maWd1cmF0aW9uIHByb3BlcnR5LiBXaGVuIHRoZSBvYmplY3QgcmVwcmVzZW50aW5nCisgICAgIHRoZSBzdXJyb3VuZGluZyBlbGVtZW50IGlzIGluc3RhbnRpYXRlZCwgdGhlIGFjY2Vzc29yIGZvciB0aGUgaW5kaWNhdGVkCisgICAgIHByb3BlcnR5IGlzIGNhbGxlZCBhbmQgcGFzc2VkIHRoZSBpbmRpY2F0ZWQgdmFsdWUuIFRoZSAic2V0LXByb3BlcnR5IgorICAgICBlbGVtZW50IGlzIGVzcGVjaWFsbHkgdXNlZnVsIHdoZW4gYSBjdXN0b20gc3ViY2xhc3MgaXMgdXNlZCB3aXRoCisgICAgIDxsb2NhdGlvbj4sIDxtYXBwaW5nPiwgb3IgPHBsdWctaW4+IGVsZW1lbnRzLiBUaGUgc3ViY2xhc3MKKyAgICAgY2FuIGJlIHBhc3NlZCB3aGF0ZXZlciBvdGhlciBwcm9wZXJ0aWVzIG1heSBiZSByZXF1aXJlZCB0byBjb25maWd1cmUgdGhlCisgICAgIG9iamVjdCB3aXRob3V0IGNoYW5naW5nIGhvdyB0aGUgc3RydXRzLWNvbmZpZyBpcyBwYXJzZWQuCisKKyAgICAgcHJvcGVydHkgICAgICAgIE5hbWUgb2YgdGhlIEphdmFCZWFucyBwcm9wZXJ0eSB3aG9zZSBzZXR0ZXIgbWV0aG9kCisgICAgICAgICAgICAgICAgICAgICB3aWxsIGJlIGNhbGxlZC4KKworICAgICB2YWx1ZSAgICAgICAgICAgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YWx1ZSB0byB3aGljaCB0aGlzCisgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eSB3aWxsIGJlIHNldCwgYWZ0ZXIgc3VpdGFibGUgdHlwZSBjb252ZXJzaW9uCistLT4KKzwhRUxFTUVOVCBzZXQtcHJvcGVydHkgICBFTVBUWT4KKzwhQVRUTElTVCBzZXQtcHJvcGVydHkgICBpZCAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1Qgc2V0LXByb3BlcnR5ICAgcHJvcGVydHkgICAgICAgJVByb3BOYW1lOyAgICAgICNSRVFVSVJFRD4KKzwhQVRUTElTVCBzZXQtcHJvcGVydHkgICB2YWx1ZSAgICAgICAgICBDREFUQSAgICAgICAgICAgI1JFUVVJUkVEPgorCisKKzwhLS0gVGhlICJzbWFsbC1pY29uIiBlbGVtZW50IHNwZWNpZmllcyB0aGUgbG9jYXRpb24sIHJlbGF0aXZlIHRvIHRoZSBTdHJ1dHMKKyAgICAgY29uZmlndXJhdGlvbiBmaWxlLCBvZiBhIHJlc291cmNlIGNvbnRhaW5pbmcgYSBzbWFsbCAoMTZ4MTYgcGl4ZWwpCisgICAgIGljb24gaW1hZ2UuCistLT4KKzwhRUxFTUVOVCBzbWFsbC1pY29uICAgICAoJUxvY2F0aW9uOyk+Cis8IUFUVExJU1Qgc21hbGwtaWNvbiAgICAgaWQgICAgICAgICAgICAgSUQgICAgICAgICAgICAgICNJTVBMSUVEPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL0xJQ0VOU0UudHh0IGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9MSUNFTlNFLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDViM2E1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9MSUNFTlNFLnR4dApAQCAtMCwwICsxLDE3NCBAQAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKKyAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KKworICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCisKKyAgIDEuIERlZmluaXRpb25zLgorCisgICAgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisKKyAgICAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5CisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCisKKyAgICAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKKyAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKyAgICAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCisgICAgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUKKyAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCisgICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKKyAgICAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCisKKyAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKyAgICAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCisKKyAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAorICAgICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKworICAgICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKKyAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKyAgICAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKKyAgICAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKworICAgICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKKyAgICAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKKyAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yaworICAgICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KKworICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAorICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKKyAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgorICAgICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAorICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKworICAgICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKKyAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKKyAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQorICAgICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgorICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKKyAgICAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKKyAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCisgICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAorICAgICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKyAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAorICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKKyAgICAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgorCisgICAgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICAgICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCisgICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KKworICAgMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCisgICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKKyAgICAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCisKKyAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKyAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAorICAgICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCisgICAgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQorICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKKyAgICAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKKyAgICAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91CisgICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yaworICAgICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKKyAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKKyAgICAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQorICAgICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgorCisgICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQorICAgICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CisgICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorICAgICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKyAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCisgICAgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKKworICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICAgICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAorCisgICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKKyAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCisgICAgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKKyAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCisgICAgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAorCisgICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKKyAgICAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CisgICAgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCisgICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisgICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCisgICAgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKKyAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCisgICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCisgICAgICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAorICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cworICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKKyAgICAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgorICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCisgICAgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCisgICAgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCisgICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgorCisgICAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKKyAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKyAgICAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKKyAgICAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAorICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCisgICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgorCisgICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCisgICAgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKKyAgICAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKyAgICAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKKyAgICAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCisgICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCisKKyAgIDYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKKyAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKKyAgICAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQorICAgICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCisKKyAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgorICAgICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAorICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyAgICAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCisgICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCisgICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKKyAgICAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQorICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorCisgICA4LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKKyAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAorICAgICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKKyAgICAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCisgICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCisgICAgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKKyAgICAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKKyAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKKyAgICAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCisgICAgICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCisgICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCisKKyAgIDkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKKyAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCisgICAgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAorICAgICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKKyAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CisgICAgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgorICAgICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAorICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CisgICAgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCisgICAgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvTk9USUNFLnR4dCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvTk9USUNFLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDA5YTlmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9OT1RJQ0UudHh0CkBAIC0wLDAgKzEsOSBAQAorVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieQorVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChodHRwOi8vd3d3LmFwYWNoZS5vcmcvKS4KKworVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHRoZSBBTlRMUiBwYXJzaW5nIGxpYnJhcnksCitkZXZlbG9wZWQgYnkgSkd1cnUuY29tIChodHRwOi8vd3d3LmFudGxyLm9yZyBhbmQKK2h0dHA6Ly93d3cuamd1cnUuY29tKS4KKworVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSAKK1RoZSBPcGVuU3ltcGhvbnkgR3JvdXAgKGh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS8pLgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9QUkFDVElDRVMudHh0IGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9QUkFDVElDRVMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllOWU3MTcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL1BSQUNUSUNFUy50eHQKQEAgLTAsMCArMSw1NyBAQAorQWN0aW9uMiBBcHBzIEJlc3QgUHJhY3RpY2VzCisKKyogTGluayBvbmx5IHRvIGFjdGlvbnMsIG5ldmVyIHRvIHNlcnZlciBwYWdlcyBvciB0ZW1wbGF0ZXMKKworKiBEbyBub3QgZXhwb3NlIHRoZSBhY3Rpb24gZXh0ZW5zaW9uIGluIHlvdXIgdGFncy4gVXNlIHRoZSBhY3Rpb24gcGFyYW1ldGVyIGluc3RlYWQuCisKKyogVXNlIG5hbWVzcGFjZXMgdG8gb3JnYW5pemUgeW91ciBhcHBsaWNhdGlvbiBpbnRvIGxvZ2ljYWwgIm1vZHVsZXMiIG9yIHVuaXRzIG9mIHdvcmsuCisKKyogUGxhY2UgZWFjaCBuYW1lc3BhY2UgaW50byBpdCdzIG93biBYd29yayBjb25maWcuCisgKiogVHJ5IHRvIGtlZXAgdGhlIEFjdGlvbnMgY2xhc3NlcyBmb3IgdGhlIG5hbWVzcGFjZSBpbiBhIGNvbW1vbiBwYWNrYWdlLgorICoqIFN0b3JlIHRoZSBYd29yayBjb25maWd1cmF0aW9uIGZvciB0aGF0IG5hbWVzcGFjZSB3aXRoIHRoZSBBY3Rpb25zLgorICoqIElmIHlvdSBhcmUgdXNpbmcgSlNQcywgdHJ5IHRvIG5hbWUgdGhlIEpTUCBmb2xkZXIgYWZ0ZXIgdGhlIEFjdGlvbiBwYWNrYWdlLgorICoqIElmIHlvdSB1c2luZyB0ZW1wbGF0ZXMsIGJ1bmRsZSB0aGUgdGVtcGxhdGVzIHdpdGggdGhlIEFjdGlvbnMuCisgKiogUmVtZW1iZXIsIGlmIHRoZSBuYW1lc3BhY2UgbmVlZHMgdG8gY2hhbmdlLCB5b3UgZG8gbm90IG5lZWQgdG8gY2hhbmdlIHBhY2thZ2VzIG9yIEpTUCBmb2xkZXJzLCBpZiB5b3UgZG9uJ3Qgd2FudCB0by4KKworKiBXaXRoaW4gYSBuYW1lc3BhY2UsIHJldXNlIG5hbWVzIGZvciBjb21tb24gY29uY2VwdHMuIElmIGVhY2ggbmFtZXNwYWNlIGhhcyBhbiBlbnRyeSBwYWdlLCB1c2UgdGhlIHNhbWUgYWN0aW9uIG5hbWUgaW4gZWFjaCBuYW1lc3BhY2UuIEZvciBleGFtcGxlLCBlYWNoIG5hbWVzcGFjZSBpbiB0aGUgQ29va2Jvb2sgaGFzIGFuICJPcGVuIiBhY3Rpb24uCisKKyogVW5pdCB0ZXN0IGFjdGlvbnMgYmVmb3JlIHRyeWluZyB0aGVtIGluIGEgd2ViIGFwcGxpY2F0aW9uLgorICAqKiBTaW5jZSBKVW5pdCBpcyBpbnRlZ3JhdGVkIGluIG1vc3QgSURFcyBub3csIHRoZXJlIGlzIG5vIGV4Y3VzZS4KKworKiBDb25zaWRlciB1c2luZyBXZWJDYW5vbywgSHRtbFVuaXQsIG9yIEh0dHBVbml0IHRvIHRlc3QgbmF2aWdhdGlvbiwgYXMgdGhlIGFwcGxpY2F0aW9uIGlzIGJlaW5nIGRldmVsb3BlZC4KKworKiBVc2UgU2l0ZU1lc2gsIG9yIHRoZSBlcXVpdmFsZW50LCB0byBzZXBhcmF0ZSBhcHBsaWNhdGlvbiAiY2hyb21lIiBmcm9tIHRoZSBjb3JlIHV0aWxpdHkgb2YgdGhlIHNlcnZlciBwYWdlcy4KKworKiBTcGVjaWZ5IHRoZSBQT1NUIG1ldGhvZCBmb3IgZm9ybXMsIHVubGVzcyB0aGVyZSBpcyBhIHJlYXNvbiB0byB1c2UgdGhlIGRlZmF1bHQgR0VUIG1ldGhvZC4KKworKiBJZiBhbiBpbWFnZSwgb3Igb3RoZXIgc3dhdGNoIG9mIG1hcmt1cCwgaXMgYmVpbmcgdXNlZCBieSBtdWx0aXBsZSBwYWdlcywgcmVtb3ZlIGl0IHRvIGl0cyBvd24gc2VydmVyIHBhZ2UgYW5kIGluY2x1ZGUgaXQgd2hlcmUgbmVjZXNzYXJ5LgorICoqIEJldHRlciB5ZXQsIGVuY2Fwc3VsYXRlIHRoZSBtYXJrdXAgaW4gaXRzIG93biBVSSB0YWcuCisKKyogRXh0ZW5kIHRoZSBVSSB0YWdzIGFzIG5lZWRlZC4KKworKiBDb25zaWRlciB1c2luZyB0aGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHBhZ2UgdGl0bGVzLCBjb250cm9sIGxhYmVscywgYW5kIHNvIGZvcnRoLCBldmVuIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBub3QgYmVpbmcgbG9jYWxpemVkLgorICoqIEl0IGlzIG9mdGVuIHVzZWZ1bCB0byBzZXBlcmF0ZSB0aGUgY29uY2VybiBvZiB3aGF0IG1lc3NhZ2UgdG8gZGlzcGxheSBmcm9tIHRoZSBjb25jZXJuIG9mIHdoZXJlIHRvIGRpc3BsYXkgaXQuCisKKyogVXNlIHRoZSBYTUwgZnJhbWV3b3JrIHRvIHZhbGlkYXRlIGlucHV0LgorCisqIERvIG5vdCBlbWJlZCBidXNpbmVzcyBsb2dpYyBpbiBhY3Rpb24gY2xhc3Nlcy4KKyAqKiBSZW1vdmUgYnVzaW5lc3MgbG9naWMgdG8gYSBidXNpbmVzcyBmYWNhZGUgdGhhdCB0aGUgYWN0aW9ucyBjYW4gY2FsbC4gKFNwcmluZyBpcyBhbiBleGNlbGxlbnQgd2F5IHRvIGJ1aWxkIGEgYnVzaW5lc3MgZmFjYWRlLikKKyAqKiBBY3Rpb25zIGFyZSBhIG5lY2Vzc2FyeSBldmlsLiBFdmVyeSBsaW5lIG9mIGNvZGUgaW4gYW4gQWN0aW9uIGlzIGd1aWx0eSB1bnRpbCBwcm92ZW4gaW5ub2NlbnQuIElkZWFsbHksIHRoZXJlIHNob3VsZCBiZSBvbmUgbGluZSBvZiBjb2RlIHRoYXQgY2FsbHMgdGhlIGJ1c2luZXNzIGZhY2FkZSwgYW5kIGV2ZXJ5IG90aGVyIGxpbmUgb2YgYSBjb2RlIGluIGFuIGFjdGlvbiBzaG91bGQgYmUgYm91bmQgdG8gdGhlIGZyYW1ld29yay4KKworKiBDZW50cmFsaXplIG90aGVyIGFwcGxpY2F0aW9uIGFuZCBidXNpbmVzcyBsb2dpYyBpbnRvIGEgYmFzZSBjbGFzcyB0aGF0IGFjdGlvbiBjYW4gc2hhcmUuIAorCisKKy0tLS0KKworT3RoZXIgQmVzdCBQcmFjdGljZSBSZXNvdXJjZXMgCisKKyogU2hvd2Nhc2UgQmVzdCBQcmFjdGljZXMgdGhyZWFkIC0gaHR0cDovL2ZvcnVtcy5vcGVuc3ltcGhvbnkuY29tL3RocmVhZC5qc3BhP21lc3NhZ2VJRD0yNDY5MSYjMjQ2OTEKKworKiBPcmlnaW5hbCAiQWN0aW9uIDEiIENhdGFsb2cgLSBodHRwOi8vaHVzdGVkLmNvbS9zdHJ1dHMvY2F0YWxvZy5odG1sCisKKyogV2lraSB2ZXJzaW9uIC0gaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9zdHJ1dHMvU3RydXRzQ2F0YWxvZworCisqICJBY3Rpb24gMSIgQmVzdCBQcmFjdGljZXMgLSBodHRwOi8vb3BlbnNvdXJjZS5hdGxhc3NpYW4uY29tL2NvbmZsdWVuY2Uvb3NzL3BhZ2VzL3ZpZXdwYWdlYXR0YWNobWVudHMuYWN0aW9uP3BhZ2VJZD04MjkKKworCisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvUkVBRE1FLnR4dCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvUkVBRE1FLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWVkYzVhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9SRUFETUUudHh0CkBAIC0wLDAgKzEsMjY2IEBACitUaGlzIGRpcmVjdG9yeSBpcyBhIHdoaXRlYm9hcmQgYXJlYSBmb3Igd29ya2luZyBvbiBuZXcgbWF0ZXJpYWwgcmVsYXRlZCB0bwordGhlIGFkb3B0aW9uIG9mIFdlYldvcmsyIGFzIEFjdGlvbjIuCisKK1doaWxlIFdlYldvcmsyL0FjdGlvbjIgaXMgcGFzc2luZyB0aHJvdWdoIHRoZSBpbmN1YmF0b3IsIHRoaXMgbWF0ZXJpYWwgaXMKK2JlaW5nIGJhc2VkIG9uIE9TIFdlYldvcmsgMi4yLjIuCisKK05vdGUgdGhpcyBhcmVhIGlzIGludGVuZGVkIGZvciAqTkVXKiBtYXRlcmlhbCBvbmx5LiBFeGlzdGluZyBtYXRlcmlhbCBtdXN0CitlbnRlciBBcGFjaGUgU3RydXRzIHRocm91Z2ggdGhlIGluY3ViYXRpb24gcHJvY2Vzcy4KKworQXQgdGhpcyB0aW1lLCB0aGUgbWF0ZXJpYWwgaXMgYmVpbmcgYnVpbHQgZGlyZWN0bHkgd2l0aCBJREVBLCBhbmQgYSBzdGFuZGFyZAorYnVpbGQgZmlsZSBpcyBub3QgeWV0IGF2YWlsYWJsZS4KKworRm9yIHRoZSB0aW1lIGJlaW5nLCB0aGUgZGVwZW5kZW5jaWVzIHJlcXVpcmVkIHRvIGJ1aWxkIHRoaXMgbWF0ZXJpYWwgbWF5IGJlCitkb3dubG9hZGVkIGhlcmU6CisKKyogaHR0cDovL3Blb3BsZS5hcGFjaGUub3JnL35odXN0ZWQvc2FuZGJveC1hY3Rpb24yLWxpYi56aXAKKworRm9yIG1vcmUgYWJvdXQgdGhlIG1hdGVyaWFscyB1bmRlciBjb25zdHJ1Y3Rpb24sIHZpc2l0CisKKyogaHR0cDovL3d3dy5TdHJ1dHNVbml2ZXJzaXR5Lm9yZy9BcHBsaWNhdGlvbitVc2UrQ2FzZXMKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitBUFBTCisKK1VuZGVyIHRoZSBhcHBzIGZvbGRlciwgdHdvIGFwcGxpY2F0aW9ucyBhcmUgbm93IGJlaW5nIGNvbnN0cnVjdGVkCisKKyAqIENvb2tib29rLCBhbmQKKyAqIE1haWxyZWFkZXIKKworVGhlIGdvYWwgb2YgdGhlIENvb2tib29rIGlzIHRvIGNvbWJpbmUgdGhlIFdlYldvcmsgMi4yLjIgIFNob3djYXNlIHdpdGggdGhlCitTdHJ1dHMgMS4zIEV4YW1wbGVzIGFuZCB0aGUgU3RydXRzIDEuMyBDb29rYm9vay4KKworVGhlIENvb2tib29rIGRlbW9uc3RyYXRlcyB3b3JraW5nIGNvZGUgYW5kIHByb3ZpZGVzIGxpbmtzIHRvIGRpc3BsYXkgdGhlCitjb2RlIGZvciBlYWNoIGV4YW1wbGUuCisKK1RoZSBnb2FsIG9mIHRoZSBNYWlscmVhZGVyIGlzIHRvIHByb3ZpZGUgYSBzaW1wbGUgYXBwbGljYXRpb24gdGhhdAorZGVtb25zdHJhdGVzIGJlc3QgcHJhY3RpY2VzLgorCitUaGUgTWFpbHJlYWRlciBpcyBhIHNpbXBsZSBwYXJlbnQvY2hpbGQgd29ya2Zsb3csIHdoZXJlIHZpc2l0b3JzIGNhbiByZWdpc3Rlcgord2l0aCB0aGUgYXBwbGljYXRpb24gYW5kIHRoZSBjcmVhdGUgY2hpbGQgcmVjb3JkcyByZWxhdGVkIHRvIHRoZSB1c2VyJ3MKK21hc3RlciBhY2NvdW50LgorCitPdGhlciBuZXcgYXBwbGljYXRpb25zIG1heSBpbmNsdWRlIHRoZSBpQkFUSVMgSlBldHN0b3JlIGV4YW1wbGUsCit3aGljaCB3YXMgYmFzZWQgb24gU3RydXRzIEFjdGlvbiAxLgorCitPdGhlciBXZWJXb3JrIGV4YW1wbGUgYXBwbGljYXRpb25zLCBsaWtlIHRoZSBzaG9wcGluZyBjYXJ0LCBjb3VsZCBhbHNvIGJlCitrZXB0IGhlcmUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworU1RBVFVTIC0gQ09PS0JPT0sKKworKiBTZXZlcmFsIGV4YW1wbGVzIGhhdmUgYmVlbiBhZGRlZC4KKworKiBUaGUgIlNlbGVjdCIgZXhhbXBsZSBjb3VsZCBiZSBzdHJlYW1saW5lZCB0byB1c2Ugb25lIGV4YW1wbGUgb2YgZWFjaAorU2VsZWN0IGNvbnRyb2wuCisKKyogT3RoZXIgZXhhbXBsZXMgY2FuIGJlIGFkZGVkIGF0IHdpbGwuCisKKy0tLS0KKworSG1tbW0gLi4uIAorCisqIEFyZSB0aGUgdmFsaWRhdG9yIG9iamVjdHMgc2luZ2xldG9ucz8KKworCistLS0tCisKK0V4YW1wbGUgaWRlYSBqYXIKKworKiBTZWUgaHR0cDovL3d3dy5uaWFsbHAucHdwLmJsdWV5b25kZXIuY28udWsvc3RydXRzdmFsaWRhdG9yZXh0ZW5kcy5odG1sCitmb3Igc29tZSB2YWxpZGF0aW9uIHVzZSBjYXNlcy4KKworKiBodHRwOi8vd2lraS5vcGVuc3ltcGhvbnkuY29tL2Rpc3BsYXkvV1cvQ29va2Jvb2sKKworCisqIERpc3BsYXkgYW4gdW5leHBlY3RlZCBleGNlcHRpb24gb24gYW4gZXJyb3IgcGFnZS4gCisqKiBXaGF0J3MgdGhlIGNvbmRpdGlvbmFsIGxvZ2ljIHVzaW5nIEpTUCB0YWdzPworCisqICJwYXJhbS0+cHJlcGFyZS0+cGFyYW0gaW50ZXJjZXB0b3IgcGF0dGVybiIKKyoqIGh0dHA6Ly9mb3J1bXMub3BlbnN5bXBob255LmNvbS90aHJlYWQuanNwYT90aHJlYWRJRD0yMzc1MCZ0c3RhcnQ9MAorCisqIFVzaW5nIHByb3h5IG9iamVjdHMgdG8gcmVzdHJpY3QgYWNjZXNzIHRvIGRvbWFpbiBvYmplY3RzCisqKiBodHRwOi8vZm9ydW1zLm9wZW5zeW1waG9ueS5jb20vdGhyZWFkLmpzcGE/dGhyZWFkSUQ9MjM3NTAmdHN0YXJ0PTAKKworKiBVc2luZyBhbiBhdXRoZW50aWZpY2F0aW9uIGludGVyY2VwdG9yLiAKKyoqIAorCisqIE92ZXJyaWRpbmcgYSBidW5kbGVkIFVJIFRhZy4gCisKKyogQ3JlYXRpbmcgYSBjdXN0b20gVUkgVGFnLgorCisqIENhbmNlbGluZyBhIGZvcm0gd2l0aCBjbGllbnQtc2lkZSB2YWxpZGF0aW9uLgorKiogKFNob3VsZCB0aGVyZSBiZSBhICJ2YWxpZGF0ZSIgYXR0cmlidXRlIHRvIGdlbmVyYXRlIHRoZSAiZm9ybS5vbnN1Ym1pdD1udWxsIiBzY3JpcHQ/KQorKiogKFNob3VsZCBBY3Rpb25TdXBwb3J0IHByb3ZpZGUgInB1YmxpYyBTdHJpbmcgY2FuY2VsKCkge3JldHVybiBDQU5DRUw7fSA/CisqKiAoU2hvdWxkIHdlIHN1cHBvcnQgYWN0aW9uPSIhY2FuY2VsIiB0byBiZSBjb25zaXN0ZW50IHdpdGggZm9ybSB0YWcuKQorKioqIChUcnlpbmcgIWNhbmNlbCBpbiBXVzIuMi4yIGNhcnJpZXMgY2FuY2VsIG92ZXIgdG8gdGhlIG5leHQgYWN0aW9uLikKKworKiBTZXR0aW5nIGZvcm0gdHlwZSB0byAiUE9TVCIKKyoqIChTaG91bGQgUE9TVCBiZSB0aGUgZGVmYXVsdD8pCisKKyogU3dpdGNoaW5nIHRvIFNTTCBhZnRlciBsb2dpbgorKiogaHR0cDovL2ZvcnVtcy5vcGVuc3ltcGhvbnkuY29tL3RocmVhZC5qc3BhP21lc3NhZ2VJRD0xMTQ1MiYjMTE0NTIKKworKiBDdXN0b21pemluZyBwYWdlcyBmb3IgbXVsdGlwbGUgaW5zdGFsbGF0aW9ucyBhY3Jvc3MgbXVsdGlwbGUgcmVsZWFzZXMKKyoqIGh0dHA6Ly9mb3J1bXMub3BlbnN5bXBob255LmNvbS90aHJlYWQuanNwYT9tZXNzYWdlSUQ9MjM5OTEmIzIzOTkxCisKKy0tLS0KKworRXhhbXBsZXMgdGhhdCBtaWdodCBpbnZvbHZlIG5ldyBkZXZlbG9wbWVudAorCisqIEhvdyBkbyB3ZSBzZXQgY2hlY2tib3hlcyBmYWxzZSAob24gdW5jaGVjayk/CisqKiBodHRwOi8vZm9ydW1zLm9wZW5zeW1waG9ueS5jb20vdGhyZWFkLmpzcGE/dGhyZWFkSUQ9MjM2MDEmdHN0YXJ0PTAKKworKiBIb3cgdG8gc2V0IHRoZSBmb2N1cyBvbiBhIGZvcm0gZmllbGQ/CisqKiBodHRwOi8vZm9ydW1zLm9wZW5zeW1waG9ueS5jb20vdGhyZWFkLmpzcGE/dGhyZWFkSUQ9MjM3NzcmdHN0YXJ0PTAKKworKiAgUG9wdWxhdGluZyBQT0pPIHRoYXQgaW1wbGVtZW50cyBhbiBJbnRlcmZhY2UgCisqKiBodHRwOi8vZm9ydW1zLm9wZW5zeW1waG9ueS5jb20vdGhyZWFkLmpzcGE/dGhyZWFkSUQ9MjM3NTAmdHN0YXJ0PTAKKworKiAgV2l6YXJkCisqKiBodHRwOi8vZm9ydW1zLm9wZW5zeW1waG9ueS5jb20vdGhyZWFkLmpzcGE/dGhyZWFkSUQ9MjM3NzgmdHN0YXJ0PTE1CisKKyogRFJZIFVJIFRhZ3MgCisqKiBodHRwOi8vZm9ydW1zLm9wZW5zeW1waG9ueS5jb20vdGhyZWFkLmpzcGE/dGhyZWFkSUQ9MjQxNDAmdHN0YXJ0PTAKKworKiBEZWZhdWx0IHBhY2thZ2UgbmFtZXMgCisqKiBBbGxvdyBhIGRlZmF1bHQgcGFja2FnZSBuYW1lIHRvIGJlIHNldCBmb3IgQWN0aW9uIGNsYXNzZXMKKyAgIHNvIHRoYXQgLk15QWN0aW9uIGNvdWxkIHJlc29sdmUgdG8gb3JnLm15Y29ycC5teWFwcC5teXBhY2thZ2UuTXlBY3Rpb24gCisKKyogUHJveHkgUmVzdWx0IAorKiogaHR0cDovL2ZvcnVtcy5vcGVuc3ltcGhvbnkuY29tL3RocmVhZC5qc3BhP3RocmVhZElEPTIzNjIxJnRzdGFydD0wCisKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitTVEFUVVMgLSBNQUlMUkVBREVSCisKKyogRmVhdHVyZSBjb21wbGV0ZSwgYnV0IHNvbWUgbWFyZ2luYWwgaXNzdWUgcmVtYWluLiAKKyogQ291bGQgdXNlIGEgc2NyZWVuIHNob3QgbmV4dCB0byB0aGUgY29kZSBmb3IgZWFjaCBwYWdlLgorCistLS0tCisKK1dlbGNvbWUKKworTm9taW5hbAorKyBMb2dvbiAtIENhbmNlbAorKyBSZWdpc3RlciAtIENhbmNlbAorCistLS0tCisKK0xvZ29uCisKK05vbWluYWwKKysgQ2FuY2VsCisrIFJlc2V0CistIFN1Ym1pdCAoaW52YWxpZCkgCisrIFN1Ym1pdCAoaW5jb3JyZWN0KQorKyBTdWJtaXQKKworLS0tLQorCitSZWdpc3RyYXRvbiBFZGl0CisKK05vbWluYWwKKysgQ2FuY2VsCisrIFJlc2V0CisrIFN1Ym1pdCAobm8gY2hhbmdlKQorKyBTdWJtaXQgKGNoYW5nZSkgCisrIFN1Ym1pdCAoaW52YWxpZCBjaGFuZ2UpIAorCitJc3N1ZXMKKyogV2hlbiBjbGllbnQtc2lkZSB2YWxpZGF0aW9uIGlzIGVuYWJsZWQsIG1lc3NhZ2VzIHN0YWNrIHVwIG9uIG11bHRpcGxlIGludmFsaWQgc3VibWl0cy4gU2V2ZXItc2lkZSBvbmx5IE9LLgorKioqIFRoaXMgZG9lc24ndCBoYXBwZW4gd2l0aCBMb2dvbiBwYWdlLCBvbmx5IFJlZ2lzdHJhdGlvbiBhbmQgU3Vic2NyaXB0aW9uICghPykoCisqKiogQXNrZWQgb24gZm9ydW0gLSBodHRwOi8vZm9ydW1zLm9wZW5zeW1waG9ueS5jb20vdGhyZWFkLmpzcGE/dGhyZWFkSUQ9MjM4NzEmdHN0YXJ0PTAKKworLS0tLQorCitTdWJzY3JpcHRpb24gRWRpdAorCitOb21pbmFsCisrIENhbmNlbAorKyBTYXZlIChubyBjaGFuZ2VzKQorKyBTYXZlIChjaGFuZ2VzKQorCistLS0tCisKK1N1YnNjcmlwdGlvbiBEZWxldGUKKworTm9ybWluYWwKKysgQ2FuY2VsCisrIENvbmZpcm0KKworLS0tLQorCitTdWJzY3JpcHRpb24gQWRkCisrIENhbmNlbCAKKysgU3VibWl0IAorKyBTdWJtaXQgKGJhZCBkYXRhKQorKyBEb3VibGUgc3VibWl0CisKKy0tLS0KKworTG9nb2ZmCisKK05vbWluYWwKKysgTG9nb2ZmIC0gUmVmcmVzaAorKyBMb2dvZmYgLSBTa2lwIHRvIFJlZ2lzdGVyYXRpb24gcGFnZQorCistLS0tCisKK1JlZ2lzdHJhdGlvbiBDcmVhdGUKKworTm9taW5hbAorKyBDYW5jZWwKKysgUmVzZXQKKysgU3VibWl0IChubyBkYXRhKQorKyBTdWJtaXQgKGludmFsaWQgZGF0YSkKKysgU3VibWl0IChkYXRhKQorKyBTdWJtaXQgKGR1cGxpY2F0ZSBkYXRhKQorKyBEb3VibGUgc3VibWl0CisKKy0tLS0KKworTG9jYWxlIGNoYW5nZQorKyBDaGFuZ2UgbG9jYWxlIGZyb20gV2VsY29tZSBwYWdlLgorKyBCdXR0b25zIGFuZCBMYWJlbHMgcmVmbGVjdCBjaGFuZ2VkIGxvY2FsZQorCistLS0tCisKK1RvdXIKKyogSW4gcHJvZ3Jlc3MKKworLS0tLQorCitFcnJvcgorKyBOZWVkIHRvIGxvZyBhbmQgcHJlc2VudCB1bmV4cGVjdGVkIGV4Y2VwdGlvbnMKKworCitJc3N1ZSAKKyogSWYgdGhlIGVycm9yIHBhZ2UgaXMgZmlyZWQgYnkgYSBnbG9iYWwgZXhjZXB0aW9uIGhhbmRsZXIsIGlzIHRoZSBleGNlcHRpb24gZ29pbmcgdG8gYmUgbG9nZ2VkLiBEbyB3ZSBuZWVkIHRvIHVzZSBhIGNoYWluIHJlc3VsdCB0byBhbiBhY3Rpb24gdGhhdCB3b3VsZCBsb2cgdGhlIGV4Y2VwdGlvbj8gV2hhdCB3b3VsZCBiZSB0aGUgSmF2YSBzeW50YXg/CisKKyogSXQgd291bGQgYmUgbmljZSB0byBvbWl0IHRoZSBtZXNzYWdlIG1hcmt1cCBpZiB0aGVyZSBpcyBub3QgbWVzc2FnZS4gCisqKiBodHRwOi8vZm9ydW1zLm9wZW5zeW1waG9ueS5jb20vdGhyZWFkLmpzcGE/dGhyZWFkSUQ9NzQ4MCZtZXNzYWdlSUQ9MTY2MTgjMTY2MTgKKworVGhpbmdzIHRoYXQgZGlkbid0IHdvcms6CisKKzxzYWY6aWYgdGVzdD0iICUoZXhjZXB0aW9uLm1lc3NhZ2V9P2V4aXN0cyI+CisKKzxzYWY6aWYgdGVzdD0iICV0aGlzLmV4Y2VwdGlvbi5tZXNzYWdlP2V4aXN0cyI+CisKKzxzYWY6aWYgdGVzdD0iICMoZXhjZXB0aW9uLm1lc3NhZ2V9ICE9IG51bGwgIj4KKworLS0tLQorCitBcHBsaWNhdGlvbkxpc3RlbmVyCisqIEFub3RoZXIgYXBwcm9hY2ggd291bGQgYmUgdG8gaW5zdGFudGlhdGUgdGhlIGRhdGFiYXNlIHZpYSBTcHJpbmcuCisKKworLS0tLQorCitWZXJpZnlSZXNvdXJjZXNJbnRlcmNlcHRvcgorKiBDb3VsZCB1c2UgYSBiZXR0ZXIgdGVzdCB0byBkZXRlY3Qgd2hldGhlciBtZXNzYWdlIHJlc291cmNlcyBsb2FkZWQKKworPT09PQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2JsYW5rL01FVEEtSU5GL2NvbnRleHQueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2JsYW5rL01FVEEtSU5GL2NvbnRleHQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMGI1ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvYmxhbmsvTUVUQS1JTkYvY29udGV4dC54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPENvbnRleHQgcGF0aD0iLyI+Cis8L0NvbnRleHQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvYmxhbmsvc3JjL2phdmEvYmxhbmsyL0hvbWUuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9ibGFuay9zcmMvamF2YS9ibGFuazIvSG9tZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkMTA0ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvYmxhbmsvc3JjL2phdmEvYmxhbmsyL0hvbWUuamF2YQpAQCAtMCwwICsxLDE4IEBACitwYWNrYWdlIGJsYW5rMjsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuQWN0aW9uU3VwcG9ydDsKKworLyoqCisgKiBVdGlsaXplIHRoZSBTVUNDRVNTIHJlc3VsdC4KKyAqLworcHVibGljIGNsYXNzIEhvbWUgZXh0ZW5kcyBBY3Rpb25TdXBwb3J0IHsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgZGVmYXVsdCBTVUNDRVNTIHRva2VuLgorICAgICAqCisgICAgICogQHJldHVybiB7QGxpbmsgI1NVQ0NFU1N9CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9ibGFuay9zcmMvd2ViYXBwL1dFQi1JTkYvYXBwbGljYXRpb25Db250ZXh0LnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9ibGFuay9zcmMvd2ViYXBwL1dFQi1JTkYvYXBwbGljYXRpb25Db250ZXh0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOThlMWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2JsYW5rL3NyYy93ZWJhcHAvV0VCLUlORi9hcHBsaWNhdGlvbkNvbnRleHQueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBiZWFucyBQVUJMSUMgIi0vL1NQUklORy8vRFREIEJFQU4vL0VOIiAiaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsub3JnL2R0ZC9zcHJpbmctYmVhbnMuZHRkIj4KKworPGJlYW5zIGRlZmF1bHQtYXV0b3dpcmU9ImF1dG9kZXRlY3QiPgorICAgIDwhLS0gYWRkIHlvdXIgc3ByaW5nIGJlYW5zIGhlcmUgLS0+Cis8L2JlYW5zPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9ibGFuay9zcmMvd2ViYXBwL1dFQi1JTkYvY2xhc3Nlcy93ZWJ3b3JrLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvYmxhbmsvc3JjL3dlYmFwcC9XRUItSU5GL2NsYXNzZXMvd2Vid29yay5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2MTVjNDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvYmxhbmsvc3JjL3dlYmFwcC9XRUItSU5GL2NsYXNzZXMvd2Vid29yay5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMiBAQAord2Vid29yay5vYmplY3RGYWN0b3J5ID0gc3ByaW5nCit3ZWJ3b3JrLmRldk1vZGUgPSB0cnVlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2JsYW5rL3NyYy93ZWJhcHAvV0VCLUlORi9jbGFzc2VzL3h3b3JrLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9ibGFuay9zcmMvd2ViYXBwL1dFQi1JTkYvY2xhc3Nlcy94d29yay54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmM4ZjEyMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9ibGFuay9zcmMvd2ViYXBwL1dFQi1JTkYvY2xhc3Nlcy94d29yay54bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIHh3b3JrIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayAxLjEuMS8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstMS4xLjEuZHRkIj4KKworPHh3b3JrPgorICAgIDxpbmNsdWRlIGZpbGU9IndlYndvcmstZGVmYXVsdC54bWwiLz4KKworICAgIDxwYWNrYWdlIG5hbWU9ImRlZmF1bHQiIGV4dGVuZHM9IndlYndvcmstZGVmYXVsdCI+CisKKyAgICAgICAgPGRlZmF1bHQtYWN0aW9uLXJlZiBuYW1lPSJob21lIi8+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJIZWxsbyIgY2xhc3M9IkFjdGlvbjIuSGVsbG8iPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvSGVsbG8uanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDwhLS0gQWRkIHlvdXIgYWN0aW9ucyBoZXJlIC0tPgorICAgIDwvcGFja2FnZT4KKzwveHdvcms+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvYmxhbmsvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvYmxhbmsvc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTMyODc1NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9ibGFuay9zcmMvd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApAQCAtMCwwICsxLDM2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgd2ViLWFwcCBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4zLy9FTiIgImh0dHA6Ly9qYXZhLnN1bi5jb20vZHRkL3dlYi1hcHBfMl8zLmR0ZCI+Cis8d2ViLWFwcD4KKworICAgIDxkaXNwbGF5LW5hbWU+QWNtZSBDb3JwPC9kaXNwbGF5LW5hbWU+CisKKyAgICA8ZmlsdGVyPgorICAgICAgICA8ZmlsdGVyLW5hbWU+d2Vid29yazwvZmlsdGVyLW5hbWU+CisgICAgICAgIDxmaWx0ZXItY2xhc3M+Y29tLm9wZW5zeW1waG9ueS53ZWJ3b3JrLmRpc3BhdGNoZXIuRmlsdGVyRGlzcGF0Y2hlcjwvZmlsdGVyLWNsYXNzPgorICAgIDwvZmlsdGVyPgorCisgICAgPGZpbHRlci1tYXBwaW5nPgorICAgICAgICA8ZmlsdGVyLW5hbWU+d2Vid29yazwvZmlsdGVyLW5hbWU+CisgICAgICAgIDx1cmwtcGF0dGVybj4vKjwvdXJsLXBhdHRlcm4+CisgICAgPC9maWx0ZXItbWFwcGluZz4KKworICAgIDxsaXN0ZW5lcj4KKyAgICAgICAgPGxpc3RlbmVyLWNsYXNzPm9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLmNvbnRleHQuQ29udGV4dExvYWRlckxpc3RlbmVyPC9saXN0ZW5lci1jbGFzcz4KKyAgICA8L2xpc3RlbmVyPgorCisgICAgPHdlbGNvbWUtZmlsZS1saXN0PgorICAgICAgICA8d2VsY29tZS1maWxlPmluZGV4LmpzcDwvd2VsY29tZS1maWxlPgorICAgICAgICA8d2VsY29tZS1maWxlPmRlZmF1bHQuanNwPC93ZWxjb21lLWZpbGU+CisgICAgICAgIDx3ZWxjb21lLWZpbGU+aW5kZXguaHRtbDwvd2VsY29tZS1maWxlPgorICAgIDwvd2VsY29tZS1maWxlLWxpc3Q+CisKKyAgICA8IS0tCisgICAgICAgIFRoaXMgdHlwaWNhbGx5IGlzbid0IHJlcXVpcmVkLCBhcyB0aGUgdGFnbGliIGlzIGluY2x1ZGVkIGluIHdlYndvcmsuamFyLgorICAgICAgICBJZiB5b3UgcmVhbGx5IG5lZWQgYSB0YWdsaWIgY29uZmlndXJhdGlvbiB3aXRoaW4gd2ViLnhtbCwgY29weSB3ZWJ3b3JrL3NyYy9qYXZhL01FVEEtSU5GL3RhZ2xpYi50bGQKKyAgICAgICAgdG8gdGhlIFdFQi1JTkYgZGlyZWN0b3J5IGFzIHdlYndvcmsudGxkLgorICAgICAtLT4KKyAgICA8IS0tdGFnbGliPgorICAgICAgICA8dGFnbGliLXVyaT53ZWJ3b3JrPC90YWdsaWItdXJpPgorICAgICAgICA8dGFnbGliLWxvY2F0aW9uPi9XRUItSU5GL3dlYndvcmsudGxkPC90YWdsaWItbG9jYXRpb24+CisgICAgPC90YWdsaWItLT4KKzwvd2ViLWFwcD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9ibGFuay9zcmMvd2ViYXBwL2luZGV4LmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9ibGFuay9zcmMvd2ViYXBwL2luZGV4LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzMxNDNiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2JsYW5rL3NyYy93ZWJhcHAvaW5kZXguanNwCkBAIC0wLDAgKzEgQEAKKzwlIHJlc3BvbnNlLnNlbmRSZWRpcmVjdChyZXF1ZXN0LmdldENvbnRleHRQYXRoKCkgKyAiL0hlbGxvLmFjdGlvbiIpOyAlPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2JsYW5rL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8uanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2JsYW5rL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8uanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlODZlNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvYmxhbmsvc3JjL3dlYmFwcC9wYWdlcy9IZWxsby5qc3AKQEAgLTAsMCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5XZWxjb21lPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDE+RG9uJ3QgcGFuaWMhIFN0cnV0cyBpcyBtb3N0bHkgaGFybWxlc3MgLi4uIDwvaDE+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL01FVEEtSU5GL2NvbnRleHQueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL01FVEEtSU5GL2NvbnRleHQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMGI1ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svTUVUQS1JTkYvY29udGV4dC54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPENvbnRleHQgcGF0aD0iLyI+Cis8L0NvbnRleHQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svUkVBRE1FLnR4dCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9SRUFETUUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmNWEzZWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svUkVBRE1FLnR4dApAQCAtMCwwICsxLDEzIEBACitSRUFETUUudHh0IC0gY29va2Jvb2sNCisNCitUaGUgQ29va2Jvb2sgaXMgIGEgY29sbGVjdGlvbiBvZiB3b3JraW5nIGV4YW1wbGVzIHdoaWNoIGRlbW9uc3RyYXRlIGhvdyB0byANCitjb2RlIGNvbW1vbiB3ZWIgYXBwbGljYXRpb24gdXNlIGNhc2VzLg0KKw0KK1RoZSBhcHBsaWNhdGlvbiBpcyBkZXNpZ25lZCBzbyB0aGF0IHRoZSBjb2RlIHVzZWQgdG8gaW1wb2xlbWVudCB0aGUgDQorZXhhbXBsZXMgY2FuIGJlIHZpZXdlZCBvbmxpbmUuIA0KKw0KK1RoaXMgYXBwbGljYXRpb24gaXMgYmVpbmcgcmV0YWluZWQgYXMgYSBwbGFjZWhvbGRlciB1bnRpbCB3ZSBjYW4gcmVmYWN0b3IgDQordGhlIFNob3djYXNlIHRvIHVzZSBhIHNpbWlsYXIgZm9ybWF0LiANCisNCisNCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9CdXR0b25zLWNvbmZpZy54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL0J1dHRvbnMtY29uZmlnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjNhY2ViCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9CdXR0b25zLWNvbmZpZy54bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIHh3b3JrIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayAxLjEuMS8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstMS4xLjEuZHRkIj4KKworPHh3b3JrPgorCisgICAgPHBhY2thZ2UgbmFtZT0iQnV0dG9ucyIgbmFtZXNwYWNlPSIvQnV0dG9ucyIgZXh0ZW5kcz0id2Vid29yay1kZWZhdWx0Ij4KKworICAgICAgICA8YWN0aW9uIG5hbWU9Ik9wZW4iIGNsYXNzPSJjb29rYm9vazIuQnV0dG9ucyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9CdXR0b25zL1Jlc3VsdC5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9CdXR0b25zL0lucHV0LmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlZpZXciPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvQnV0dG9ucy9pbmRleC5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJWaWV3LUlucHV0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icGxhaW50ZXh0Ij4vcGFnZXMvQnV0dG9ucy9JbnB1dC5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJWaWV3LVJlc3VsdCI+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InBsYWludGV4dCI+L3BhZ2VzL0J1dHRvbnMvUmVzdWx0LmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlZpZXctQWN0aW9uIj4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icGxhaW50ZXh0Ij4vV0VCLUlORi9zcmMvamF2YS9jb29rYm9vazIvQnV0dG9ucy5qYXZhPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iVmlldy1Db25maWciPgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJwbGFpbnRleHQiPi9XRUItSU5GL2NsYXNzZXMvY29va2Jvb2syL0J1dHRvbnMtY29uZmlnLnhtbDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgIDwvcGFja2FnZT4KKzwveHdvcms+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL0J1dHRvbnMuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvamF2YS9jb29rYm9vazIvQnV0dG9ucy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNmU0NTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL0J1dHRvbnMuamF2YQpAQCAtMCwwICsxLDM5IEBACitwYWNrYWdlIGNvb2tib29rMjsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuQWN0aW9uU3VwcG9ydDsKKworcHVibGljIGNsYXNzIEJ1dHRvbnMgZXh0ZW5kcyBBY3Rpb25TdXBwb3J0IHsKKworICAgIHByaXZhdGUgU3RyaW5nIHJlY2lwaWVudCA9ICJOb2JvZHkiOworCisgICAgcHVibGljIFN0cmluZyBnZXRSZWNpcGllbnQoKSB7CisgICAgICAgIHJldHVybiByZWNpcGllbnQ7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UmVjaXBpZW50KFN0cmluZyB2YWx1ZSkgeworICAgICAgICByZWNpcGllbnQgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyBtZXNzYWdlOworCisgICAgcHVibGljIFN0cmluZyBnZXRNZXNzYWdlKCkgeworICAgICAgICByZXR1cm4gbWVzc2FnZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRNZXNzYWdlKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBtZXNzYWdlID0gdmFsdWU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Rm9yZChTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgc2V0UmVjaXBpZW50KCJGb3JkIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0TWFydmluKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBzZXRSZWNpcGllbnQoIk1hcnZpbiIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFRyaWxsaWFuKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBzZXRSZWNpcGllbnQoIlRyaWxsaWFuIik7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL0hlbGxvLWNvbmZpZy54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL0hlbGxvLWNvbmZpZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWZhYjZjNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvamF2YS9jb29rYm9vazIvSGVsbG8tY29uZmlnLnhtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgeHdvcmsgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIDEuMS4xLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay0xLjEuMS5kdGQiPgorCis8eHdvcms+CisKKyAgICA8cGFja2FnZSBuYW1lPSJIZWxsbyIgbmFtZXNwYWNlPSIvSGVsbG8iIGV4dGVuZHM9IndlYndvcmstZGVmYXVsdCI+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJPcGVuIj4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL0hlbGxvL1Jlc3VsdC5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJWaWV3Ij4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL0hlbGxvL2luZGV4LmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlZpZXctUmVzdWx0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icGxhaW50ZXh0Ij4vcGFnZXMvSGVsbG8vUmVzdWx0LmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlZpZXctQ29uZmlnIj4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icGxhaW50ZXh0Ij4vV0VCLUlORi9jbGFzc2VzL2Nvb2tib29rMi9IZWxsby1jb25maWcueG1sPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgPC9wYWNrYWdlPgorPC94d29yaz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvamF2YS9jb29rYm9vazIvSG9tZS1jb25maWcueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9Ib21lLWNvbmZpZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDYwZWNhZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvamF2YS9jb29rYm9vazIvSG9tZS1jb25maWcueG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSB4d29yayBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgMS4xLjEvL0VOIiAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLTEuMS4xLmR0ZCI+CisKKzx4d29yaz4KKworICAgIDxwYWNrYWdlIG5hbWU9IkhvbWUiIGV4dGVuZHM9IndlYndvcmstZGVmYXVsdCI+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJIb21lIj4KKyAgICAgICAgICAgIDxyZXN1bHQ+L0hvbWUuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgPC9wYWNrYWdlPgorPC94d29yaz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvamF2YS9jb29rYm9vazIvU2VsZWN0LWNvbmZpZy54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL1NlbGVjdC1jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzNTQ1ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL1NlbGVjdC1jb25maWcueG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSB4d29yayBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgMS4xLjEvL0VOIiAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLTEuMS4xLmR0ZCI+CisKKzx4d29yaz4KKworICAgIDxwYWNrYWdlIG5hbWU9IlNlbGVjdCIgbmFtZXNwYWNlPSIvU2VsZWN0IiBleHRlbmRzPSJ3ZWJ3b3JrLWRlZmF1bHQiPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iT3BlbiIgY2xhc3M9ImNvb2tib29rMi5TZWxlY3QiPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvU2VsZWN0L1Jlc3VsdC5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9TZWxlY3QvSW5wdXQuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iVmlldyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9TZWxlY3QvaW5kZXguanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iVmlldy1JbnB1dCI+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InBsYWludGV4dCI+L3BhZ2VzL1NlbGVjdC9JbnB1dC5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJWaWV3LVJlc3VsdCI+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InBsYWludGV4dCI+L3BhZ2VzL1NlbGVjdC9SZXN1bHQuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iVmlldy1BY3Rpb24iPgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJwbGFpbnRleHQiPi9XRUItSU5GL3NyYy9qYXZhL2Nvb2tib29rMi9TZWxlY3QuamF2YTwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlZpZXctQ29uZmlnIj4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icGxhaW50ZXh0Ij4vV0VCLUlORi9jbGFzc2VzL2Nvb2tib29rMi9TZWxlY3QtY29uZmlnLnhtbDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgIDwvcGFja2FnZT4KKzwveHdvcms+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL1NlbGVjdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9TZWxlY3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDc5ZDJiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9TZWxlY3QuamF2YQpAQCAtMCwwICsxLDMxOCBAQAorcGFja2FnZSBjb29rYm9vazI7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255LndlYndvcmsuU2VydmxldEFjdGlvbkNvbnRleHQ7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yay5BY3Rpb25TdXBwb3J0OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuVmFsaWRhdGVhYmxlOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsudXRpbC5PZ25sVmFsdWVTdGFjazsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5EYXRlOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK3B1YmxpYyBjbGFzcyBTZWxlY3QgZXh0ZW5kcyBBY3Rpb25TdXBwb3J0IGltcGxlbWVudHMgVmFsaWRhdGVhYmxlIHsKKworICAgIFN0cmluZyBuYW1lOworICAgIERhdGUgYmlydGhkYXk7CisgICAgU3RyaW5nIGJpbzsKKyAgICBTdHJpbmcgZmF2b3JpdGVDb2xvcjsKKyAgICBMaXN0IGZyaWVuZHM7CisgICAgYm9vbGVhbiBsZWdhbEFnZTsKKyAgICBTdHJpbmcgc3RhdGU7CisgICAgU3RyaW5nIHJlZ2lvbjsKKyAgICBGaWxlIHBpY3R1cmU7CisgICAgU3RyaW5nIHBpY3R1cmVDb250ZW50VHlwZTsKKyAgICBTdHJpbmcgcGljdHVyZUZpbGVOYW1lOworICAgIFN0cmluZyBmYXZvdXJpdGVMYW5ndWFnZTsKKyAgICBTdHJpbmcgZmF2b3VyaXRlVmVoaWNhbFR5cGUgPSAiTW90b3JjeWNsZUtleSI7CisgICAgU3RyaW5nIGZhdm91cml0ZVZlaGljYWxTcGVjaWZpYyA9ICJZYW1haGFLZXkiOworCisgICAgTGlzdCBsZWZ0U2lkZUNhcnRvb25DaGFyYWN0ZXJzOworICAgIExpc3QgcmlnaHRTaWRlQ2FydG9vbkNoYXJhY3RlcnM7CisKKyAgICBMaXN0IGZhdm91cml0ZUxhbmd1YWdlcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICBMaXN0IHZlaGljYWxUeXBlTGlzdCA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICBNYXAgdmVoaWNhbFNwZWNpZmljTWFwID0gbmV3IEhhc2hNYXAoKTsKKworICAgIFN0cmluZyB0aG91Z2h0czsKKworICAgIC8qKgorICAgICAqIFRoZSBjb25zdHJ1Y3RvciBwcmUtcG9wdWxhdGVzIHRoZSBjb250cm9zbCBmb3IgdXMuCisgICAgICovCisgICAgcHVibGljIFNlbGVjdCgpIHsKKyAgICAgICAgZmF2b3VyaXRlTGFuZ3VhZ2VzLmFkZChuZXcgTGFuZ3VhZ2UoIkVuZ2xpc2hLZXkiLCAiRW5nbGlzaCBMYW5ndWFnZSIpKTsKKyAgICAgICAgZmF2b3VyaXRlTGFuZ3VhZ2VzLmFkZChuZXcgTGFuZ3VhZ2UoIkZyZW5jaEtleSIsICJGcmVuY2ggTGFuZ3VhZ2UiKSk7CisgICAgICAgIGZhdm91cml0ZUxhbmd1YWdlcy5hZGQobmV3IExhbmd1YWdlKCJTcGFuaXNoS2V5IiwgIlNwYW5pc2ggTGFuZ3VhZ2UiKSk7CisKKyAgICAgICAgVmVoaWNhbFR5cGUgY2FyID0gbmV3IFZlaGljYWxUeXBlKCJDYXJLZXkiLCAiQ2FyIik7CisgICAgICAgIFZlaGljYWxUeXBlIG1vdG9yY3ljbGUgPSBuZXcgVmVoaWNhbFR5cGUoIk1vdG9yY3ljbGVLZXkiLCAiTW90b3JjeWNsZSIpOworICAgICAgICB2ZWhpY2FsVHlwZUxpc3QuYWRkKGNhcik7CisgICAgICAgIHZlaGljYWxUeXBlTGlzdC5hZGQobW90b3JjeWNsZSk7CisKKyAgICAgICAgTGlzdCBjYXJzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBjYXJzLmFkZChuZXcgVmVoaWNhbFNwZWNpZmljKCJNZXJjZWRlc0tleSIsICJNZXJjZWRlcyIpKTsKKyAgICAgICAgY2Fycy5hZGQobmV3IFZlaGljYWxTcGVjaWZpYygiSG9uZGFLZXkiLCAiSG9uZGEiKSk7CisgICAgICAgIGNhcnMuYWRkKG5ldyBWZWhpY2FsU3BlY2lmaWMoIkZvcmRLZXkiLCAiRm9yZCIpKTsKKworICAgICAgICBMaXN0IG1vdG9yY3ljbGVzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICBtb3RvcmN5Y2xlcy5hZGQobmV3IFZlaGljYWxTcGVjaWZpYygiU3V6dWtpS2V5IiwgIlN1enVraSIpKTsKKyAgICAgICAgbW90b3JjeWNsZXMuYWRkKG5ldyBWZWhpY2FsU3BlY2lmaWMoIllhbWFoYUtleSIsICJZYW1haGEiKSk7CisKKyAgICAgICAgdmVoaWNhbFNwZWNpZmljTWFwLnB1dChjYXIsIGNhcnMpOworICAgICAgICB2ZWhpY2FsU3BlY2lmaWNNYXAucHV0KG1vdG9yY3ljbGUsIG1vdG9yY3ljbGVzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcmVwYXJlIGZvcm0gZm9yIGRpc3BsYXkuCisgICAgICoKKyAgICAgKiA8cD4gSW4gdGhpcyBleGFtcGxlLCBhbGwgdGhlIHdvcmsgaXMgZG9uZSBpbiB0aGUgY29uc3RydWN0b3IuIE90aGVyIGNhc2VzIG1heSBuZWVkIHRvIGNvbnN1bHQgZGF0YSBhY2Nlc3MgbG9naWMKKyAgICAgKiB0byBwb3B1bGF0ZSB0aGUgY29udHJvbHMuIDwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gUmVzdWx0CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBzZXR1cCgpIHsKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorCisgICAgLyoqCisgICAgICogRXhlY3V0ZSB0aGUgIlNlbGVjdCIgYWN0aW9uLgorICAgICAqCisgICAgICogPHA+IEluIHRoaXMgZXhhbXBsZSwgd2UgYXJlIHNpbXBseSBkaXNwbGF5aW5nIHRoZSBpbnB1dC4gT3RoZXIgY2FzZXMgbWF5IG5lZWQgdG8gY29uc3VsdCBidXNpbmVzcyBvciBkYXRhIGFjY2VzcworICAgICAqIGxvZ2ljLiA8L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFJlc3VsdAorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIG9uIGFueSBlcnJvcgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICByZXR1cm4gU1VDQ0VTUzsKKyAgICB9CisKKyAgICAvLyAtLSBNZXRob2RzIHRoYXQgcG9wdWxhdGUgY29udHJvbHMgZnJvbSBkYXRhIHByZXBhcmVkIGluIHRoZSBjb25zdHJ1Y3RvciAtLQorCisgICAgcHVibGljIExpc3QgZ2V0TGVmdFNpZGVDYXJ0b29uQ2hhcmFjdGVycygpIHsKKyAgICAgICAgcmV0dXJuIGxlZnRTaWRlQ2FydG9vbkNoYXJhY3RlcnM7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0TGVmdFNpZGVDYXJ0b29uQ2hhcmFjdGVycyhMaXN0IGxlZnRTaWRlQ2FydG9vbkNoYXJhY3RlcnMpIHsKKyAgICAgICAgdGhpcy5sZWZ0U2lkZUNhcnRvb25DaGFyYWN0ZXJzID0gbGVmdFNpZGVDYXJ0b29uQ2hhcmFjdGVyczsKKyAgICB9CisKKworICAgIHB1YmxpYyBMaXN0IGdldFJpZ2h0U2lkZUNhcnRvb25DaGFyYWN0ZXJzKCkgeworICAgICAgICByZXR1cm4gcmlnaHRTaWRlQ2FydG9vbkNoYXJhY3RlcnM7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UmlnaHRTaWRlQ2FydG9vbkNoYXJhY3RlcnMoTGlzdCByaWdodFNpZGVDYXJ0b29uQ2hhcmFjdGVycykgeworICAgICAgICB0aGlzLnJpZ2h0U2lkZUNhcnRvb25DaGFyYWN0ZXJzID0gcmlnaHRTaWRlQ2FydG9vbkNoYXJhY3RlcnM7CisgICAgfQorCisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEZhdm91cml0ZVZlaGljYWxUeXBlKCkgeworICAgICAgICByZXR1cm4gZmF2b3VyaXRlVmVoaWNhbFR5cGU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RmF2b3VyaXRlVmVoaWNhbFR5cGUoU3RyaW5nIGZhdm91cml0ZVZlaGljYWxUeXBlKSB7CisgICAgICAgIHRoaXMuZmF2b3VyaXRlVmVoaWNhbFR5cGUgPSBmYXZvdXJpdGVWZWhpY2FsVHlwZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEZhdm91cml0ZVZlaGljYWxTcGVjaWZpYygpIHsKKyAgICAgICAgcmV0dXJuIGZhdm91cml0ZVZlaGljYWxTcGVjaWZpYzsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRGYXZvdXJpdGVWZWhpY2FsU3BlY2lmaWMoU3RyaW5nIGZhdm91cml0ZVZlaGljYWxTcGVjaWZpYykgeworICAgICAgICB0aGlzLmZhdm91cml0ZVZlaGljYWxTcGVjaWZpYyA9IGZhdm91cml0ZVZlaGljYWxTcGVjaWZpYzsKKyAgICB9CisKKworICAgIHB1YmxpYyBMaXN0IGdldFZlaGljYWxUeXBlTGlzdCgpIHsKKyAgICAgICAgcmV0dXJuIHZlaGljYWxUeXBlTGlzdDsKKyAgICB9CisKKyAgICBwdWJsaWMgTGlzdCBnZXRWZWhpY2FsU3BlY2lmaWNMaXN0KCkgeworICAgICAgICBPZ25sVmFsdWVTdGFjayBzdGFjayA9IFNlcnZsZXRBY3Rpb25Db250ZXh0LmdldFZhbHVlU3RhY2soU2VydmxldEFjdGlvbkNvbnRleHQuZ2V0UmVxdWVzdCgpKTsKKyAgICAgICAgVmVoaWNhbFR5cGUgdmVoaWNhbFR5cGUgPSAoVmVoaWNhbFR5cGUpIHN0YWNrLmZpbmRWYWx1ZSgidG9wIik7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigidmVoaWNhbFR5cGUuZ2V0S2V5KCkiICsgdmVoaWNhbFR5cGUuZ2V0S2V5KCkpOworICAgICAgICByZXR1cm4gKExpc3QpIHZlaGljYWxTcGVjaWZpY01hcC5nZXQodmVoaWNhbFR5cGUpOworICAgIH0KKworICAgIHB1YmxpYyBMaXN0IGdldEZhdm91cml0ZUxhbmd1YWdlcygpIHsKKyAgICAgICAgcmV0dXJuIGZhdm91cml0ZUxhbmd1YWdlczsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgIHJldHVybiBuYW1lOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldE5hbWUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGF0ZSBnZXRCaXJ0aGRheSgpIHsKKyAgICAgICAgcmV0dXJuIGJpcnRoZGF5OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEJpcnRoZGF5KERhdGUgYmlydGhkYXkpIHsKKyAgICAgICAgdGhpcy5iaXJ0aGRheSA9IGJpcnRoZGF5OworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0QmlvKCkgeworICAgICAgICByZXR1cm4gYmlvOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEJpbyhTdHJpbmcgYmlvKSB7CisgICAgICAgIHRoaXMuYmlvID0gYmlvOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RmF2b3JpdGVDb2xvcigpIHsKKyAgICAgICAgcmV0dXJuIGZhdm9yaXRlQ29sb3I7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RmF2b3JpdGVDb2xvcihTdHJpbmcgZmF2b3JpdGVDb2xvcikgeworICAgICAgICB0aGlzLmZhdm9yaXRlQ29sb3IgPSBmYXZvcml0ZUNvbG9yOworICAgIH0KKworICAgIHB1YmxpYyBMaXN0IGdldEZyaWVuZHMoKSB7CisgICAgICAgIHJldHVybiBmcmllbmRzOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEZyaWVuZHMoTGlzdCBmcmllbmRzKSB7CisgICAgICAgIHRoaXMuZnJpZW5kcyA9IGZyaWVuZHM7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gaXNMZWdhbEFnZSgpIHsKKyAgICAgICAgcmV0dXJuIGxlZ2FsQWdlOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldExlZ2FsQWdlKGJvb2xlYW4gbGVnYWxBZ2UpIHsKKyAgICAgICAgdGhpcy5sZWdhbEFnZSA9IGxlZ2FsQWdlOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3RhdGUoKSB7CisgICAgICAgIHJldHVybiBzdGF0ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRTdGF0ZShTdHJpbmcgc3RhdGUpIHsKKyAgICAgICAgdGhpcy5zdGF0ZSA9IHN0YXRlOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UmVnaW9uKCkgeworICAgICAgICByZXR1cm4gcmVnaW9uOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFJlZ2lvbihTdHJpbmcgcmVnaW9uKSB7CisgICAgICAgIHRoaXMucmVnaW9uID0gcmVnaW9uOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFBpY3R1cmUoRmlsZSBwaWN0dXJlKSB7CisgICAgICAgIHRoaXMucGljdHVyZSA9IHBpY3R1cmU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UGljdHVyZUNvbnRlbnRUeXBlKFN0cmluZyBwaWN0dXJlQ29udGVudFR5cGUpIHsKKyAgICAgICAgdGhpcy5waWN0dXJlQ29udGVudFR5cGUgPSBwaWN0dXJlQ29udGVudFR5cGU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UGljdHVyZUZpbGVOYW1lKFN0cmluZyBwaWN0dXJlRmlsZU5hbWUpIHsKKyAgICAgICAgdGhpcy5waWN0dXJlRmlsZU5hbWUgPSBwaWN0dXJlRmlsZU5hbWU7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RmF2b3VyaXRlTGFuZ3VhZ2UoU3RyaW5nIGZhdm91cml0ZUxhbmd1YWdlKSB7CisgICAgICAgIHRoaXMuZmF2b3VyaXRlTGFuZ3VhZ2UgPSBmYXZvdXJpdGVMYW5ndWFnZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEZhdm91cml0ZUxhbmd1YWdlKCkgeworICAgICAgICByZXR1cm4gZmF2b3VyaXRlTGFuZ3VhZ2U7CisgICAgfQorCisKKyAgICBwdWJsaWMgdm9pZCBzZXRUaG91Z2h0cyhTdHJpbmcgdGhvdWdodHMpIHsKKyAgICAgICAgdGhpcy50aG91Z2h0cyA9IHRob3VnaHRzOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGhvdWdodHMoKSB7CisgICAgICAgIHJldHVybiB0aGlzLnRob3VnaHRzOworICAgIH0KKworICAgIC8vIC0tIGlubmVyIGNsYXNzZXMgLS0KKworICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgTGFuZ3VhZ2UgeworICAgICAgICBTdHJpbmcgZGVzY3JpcHRpb247CisgICAgICAgIFN0cmluZyBrZXk7CisKKyAgICAgICAgcHVibGljIExhbmd1YWdlKFN0cmluZyBrZXksIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7CisgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEtleSgpIHsKKyAgICAgICAgICAgIHJldHVybiBrZXk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERlc2NyaXB0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFZlaGljYWxUeXBlIHsKKyAgICAgICAgU3RyaW5nIGtleTsKKyAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uOworCisgICAgICAgIHB1YmxpYyBWZWhpY2FsVHlwZShTdHJpbmcga2V5LCBTdHJpbmcgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAgIHRoaXMua2V5ID0ga2V5OworICAgICAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRLZXkoKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5rZXk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldERlc2NyaXB0aW9uKCkgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRpb247CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG9iaikgeworICAgICAgICAgICAgaWYgKCEgKG9iaiBpbnN0YW5jZW9mIFZlaGljYWxUeXBlKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGtleS5lcXVhbHMoKChWZWhpY2FsVHlwZSkgb2JqKS5nZXRLZXkoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICAgICAgcmV0dXJuIGtleS5oYXNoQ29kZSgpOworICAgICAgICB9CisgICAgfQorCisKKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFZlaGljYWxTcGVjaWZpYyB7CisgICAgICAgIFN0cmluZyBrZXk7CisgICAgICAgIFN0cmluZyBkZXNjcmlwdGlvbjsKKworICAgICAgICBwdWJsaWMgVmVoaWNhbFNwZWNpZmljKFN0cmluZyBrZXksIFN0cmluZyBkZXNjcmlwdGlvbikgeworICAgICAgICAgICAgdGhpcy5rZXkgPSBrZXk7CisgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RyaW5nIGdldEtleSgpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmtleTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGVzY3JpcHRpb24oKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sZWFuIGVxdWFscyhPYmplY3Qgb2JqKSB7CisgICAgICAgICAgICBpZiAoISAob2JqIGluc3RhbmNlb2YgVmVoaWNhbFNwZWNpZmljKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGtleS5lcXVhbHMoKChWZWhpY2FsU3BlY2lmaWMpIG9iaikuZ2V0S2V5KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBrZXkuaGFzaENvZGUoKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvamF2YS9jb29rYm9vazIvU2ltcGxlLWNvbmZpZy54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL1NpbXBsZS1jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2MDA0YzYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL1NpbXBsZS1jb25maWcueG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSB4d29yayBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgMS4xLjEvL0VOIiAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLTEuMS4xLmR0ZCI+CisKKzx4d29yaz4KKworICAgIDxwYWNrYWdlIG5hbWU9IlNpbXBsZSIgbmFtZXNwYWNlPSIvU2ltcGxlIiBleHRlbmRzPSJ3ZWJ3b3JrLWRlZmF1bHQiPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iT3BlbiIgY2xhc3M9ImNvb2tib29rMi5TaW1wbGUiPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvU2ltcGxlL1Jlc3VsdC5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9TaW1wbGUvSW5wdXQuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iVmlldyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9TaW1wbGUvaW5kZXguanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iVmlldy1JbnB1dCI+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InBsYWludGV4dCI+L3BhZ2VzL1NpbXBsZS9JbnB1dC5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJWaWV3LVJlc3VsdCI+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InBsYWludGV4dCI+L3BhZ2VzL1NpbXBsZS9SZXN1bHQuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iVmlldy1BY3Rpb24iPgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJwbGFpbnRleHQiPi9XRUItSU5GL3NyYy9qYXZhL2Nvb2tib29rMi9TaW1wbGUuamF2YTwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlZpZXctQ29uZmlnIj4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icGxhaW50ZXh0Ij4vV0VCLUlORi9jbGFzc2VzL2Nvb2tib29rMi9TaW1wbGUtY29uZmlnLnhtbDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlZpZXctVmFsaWRhdGlvbiI+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InBsYWludGV4dCI+L1dFQi1JTkYvY2xhc3Nlcy9jb29rYm9vazIvU2ltcGxlLXZhbGlkYXRpb24ueG1sPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgPC9wYWNrYWdlPgorPC94d29yaz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvamF2YS9jb29rYm9vazIvU2ltcGxlLXZhbGlkYXRpb24ueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9TaW1wbGUtdmFsaWRhdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzA1ZmQyMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvamF2YS9jb29rYm9vazIvU2ltcGxlLXZhbGlkYXRpb24ueG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+CisKKzx2YWxpZGF0b3JzPgorICAgIDxmaWVsZCBuYW1lPSJuYW1lIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZT5Zb3UgbXVzdCBlbnRlciBhIG5hbWU8L21lc3NhZ2U+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+Cis8L3ZhbGlkYXRvcnM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL1NpbXBsZS5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9TaW1wbGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTc1ZTA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9TaW1wbGUuamF2YQpAQCAtMCwwICsxLDI3IEBACitwYWNrYWdlIGNvb2tib29rMjsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuQWN0aW9uU3VwcG9ydDsKKworcHVibGljIGNsYXNzIFNpbXBsZSBleHRlbmRzIEFjdGlvblN1cHBvcnQgeworCisgICAgcHJpdmF0ZSBTdHJpbmcgbmFtZTsKKworICAgIHB1YmxpYyB2b2lkIHNldE5hbWUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIG5hbWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgIHJldHVybiB0aGlzLm5hbWU7CisgICAgfQorCisKKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB7CisKKyAgICAgICAgaWYgKHRoaXMuaGFzRXJyb3JzKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBJTlBVVDsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9hY3Rpb250YWcvQWN0aW9uVGFnLWNvbmZpZy54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL2FjdGlvbnRhZy9BY3Rpb25UYWctY29uZmlnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGY2YzRiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9hY3Rpb250YWcvQWN0aW9uVGFnLWNvbmZpZy54bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBFIHh3b3JrIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayAxLjEuMS8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstMS4xLjEuZHRkIj4KKworPHh3b3JrPgorCisgICAgPHBhY2thZ2UgbmFtZT0iQWN0aW9uVGFnIiBleHRlbmRzPSJ3ZWJ3b3JrLWRlZmF1bHQiIG5hbWVzcGFjZT0iL0FjdGlvblRhZyI+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJPcGVuIiBjbGFzcz0iY29va2Jvb2syLmFjdGlvbnRhZy5SZXN1bHQiPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvQWN0aW9uVGFnL1Jlc3VsdC5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9BY3Rpb25UYWcvSW5wdXQuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iVmlldyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9BY3Rpb25UYWcvaW5kZXguanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iVmlldy1JbnB1dCI+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InBsYWludGV4dCI+L3BhZ2VzL0FjdGlvblRhZy9JbnB1dC5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJsYW5ndWFnZXMiIGNsYXNzPSJjb29rYm9vazIuYWN0aW9udGFnLkxhbmd1YWdlcyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9BY3Rpb25UYWcvbGFuZ3VhZ2VzLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9ImNvbG9ycyI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9BY3Rpb25UYWcvY29sb3JzLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlZpZXctUmVzdWx0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icGxhaW50ZXh0Ij4vcGFnZXMvQWN0aW9uVGFnL1Jlc3VsdC5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJWaWV3LUNvbG9ycyI+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InBsYWludGV4dCI+L3BhZ2VzL0FjdGlvblRhZy9jb2xvcnMuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iVmlldy1MYW5ndWFnZXMiPgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJwbGFpbnRleHQiPi9wYWdlcy9BY3Rpb25UYWcvbGFuZ3VhZ2VzLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlZpZXctQWN0aW9uIj4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icGxhaW50ZXh0Ij4vV0VCLUlORi9zcmMvamF2YS9jb29rYm9vazIvYWN0aW9udGFnL1Jlc3VsdC5qYXZhPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iVmlldy1BY3Rpb24tTGFuZ3VhZ2VzIj4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icGxhaW50ZXh0Ij4vV0VCLUlORi9zcmMvamF2YS9jb29rYm9vazIvYWN0aW9udGFnL0xhbmd1YWdlcy5qYXZhPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iVmlldy1UZXN0LUxhbmd1YWdlcyI+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InBsYWludGV4dCI+L1dFQi1JTkYvc3JjL3Rlc3QvY29va2Jvb2syL2FjdGlvbnRhZy9MYW5ndWFnZXNUZXN0LmphdmE8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJWaWV3LUNvbmZpZyI+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InBsYWludGV4dCI+L1dFQi1JTkYvY2xhc3Nlcy9jb29rYm9vazIvYWN0aW9udGFnL0FjdGlvblRhZy1jb25maWcueG1sPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgPC9wYWNrYWdlPgorCis8L3h3b3JrPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL2FjdGlvbnRhZy9MYW5ndWFnZXMuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvamF2YS9jb29rYm9vazIvYWN0aW9udGFnL0xhbmd1YWdlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjOTc5MDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL2FjdGlvbnRhZy9MYW5ndWFnZXMuamF2YQpAQCAtMCwwICsxLDI2IEBACitwYWNrYWdlIGNvb2tib29rMi5hY3Rpb250YWc7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrLkFjdGlvblN1cHBvcnQ7CitpbXBvcnQgY29va2Jvb2syLlNlbGVjdDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKK3B1YmxpYyBjbGFzcyBMYW5ndWFnZXMgZXh0ZW5kcyBBY3Rpb25TdXBwb3J0IHsKKworICAgIExpc3QgZmF2b3JpdGVMYW5ndWFnZXMgPSBuZXcgQXJyYXlMaXN0KCk7CisKKyAgICBwdWJsaWMgTGlzdCBnZXRGYXZvcml0ZUxhbmd1YWdlcygpIHsKKyAgICAgICAgcmV0dXJuIGZhdm9yaXRlTGFuZ3VhZ2VzOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHsKKworICAgICAgICBmYXZvcml0ZUxhbmd1YWdlcy5hZGQobmV3IFNlbGVjdC5MYW5ndWFnZSgiRW5nbGlzaEtleSIsICJFbmdsaXNoIExhbmd1YWdlIikpOworICAgICAgICBmYXZvcml0ZUxhbmd1YWdlcy5hZGQobmV3IFNlbGVjdC5MYW5ndWFnZSgiRnJlbmNoS2V5IiwgIkZyZW5jaCBMYW5ndWFnZSIpKTsKKyAgICAgICAgZmF2b3JpdGVMYW5ndWFnZXMuYWRkKG5ldyBTZWxlY3QuTGFuZ3VhZ2UoIlNwYW5pc2hLZXkiLCAiU3BhbmlzaCBMYW5ndWFnZSIpKTsKKworICAgICAgICByZXR1cm4gU1VDQ0VTUzsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvamF2YS9jb29rYm9vazIvYWN0aW9udGFnL1Jlc3VsdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9hY3Rpb250YWcvUmVzdWx0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDExOWU0OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvamF2YS9jb29rYm9vazIvYWN0aW9udGFnL1Jlc3VsdC5qYXZhCkBAIC0wLDAgKzEsMjcgQEAKK3BhY2thZ2UgY29va2Jvb2syLmFjdGlvbnRhZzsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuQWN0aW9uU3VwcG9ydDsKKworcHVibGljIGNsYXNzIFJlc3VsdCBleHRlbmRzIEFjdGlvblN1cHBvcnQgeworCisgICAgU3RyaW5nIGZhdm9yaXRlTGFuZ3VhZ2U7CisKKyAgICBwdWJsaWMgdm9pZCBzZXRGYXZvcml0ZUxhbmd1YWdlKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBmYXZvcml0ZUxhbmd1YWdlID0gdmFsdWU7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRGYXZvcml0ZUxhbmd1YWdlKCkgeworICAgICAgICByZXR1cm4gZmF2b3JpdGVMYW5ndWFnZTsKKyAgICB9CisKKyAgICBTdHJpbmcgZmF2b3JpdGVDb2xvcjsKKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RmF2b3JpdGVDb2xvcigpIHsKKyAgICAgICAgcmV0dXJuIGZhdm9yaXRlQ29sb3I7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RmF2b3JpdGVDb2xvcihTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgZmF2b3JpdGVDb2xvciA9IHZhbHVlOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9wb2pvL0RpcmVjdG9yeUVudHJ5LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL3Bvam8vRGlyZWN0b3J5RW50cnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44N2ZhZGE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9wb2pvL0RpcmVjdG9yeUVudHJ5LmphdmEKQEAgLTAsMCArMSw3NyBAQAorcGFja2FnZSBjb29rYm9vazIucG9qbzsKKworaW1wb3J0IGphdmEudXRpbC5EYXRlOworCitwdWJsaWMgY2xhc3MgRGlyZWN0b3J5RW50cnkgeworCisgICAgcHJpdmF0ZSBTdHJpbmcgZmlyc3RuYW1lOworCisgICAgcHJpdmF0ZSBTdHJpbmcgbGFzdG5hbWU7CisKKyAgICBwcml2YXRlIFN0cmluZyBleHRlbnNpb247CisKKyAgICBwcml2YXRlIFN0cmluZyB1c2VybmFtZTsKKworICAgIHByaXZhdGUgRGF0ZSBoaXJlZDsKKworICAgIHByaXZhdGUgSW50ZWdlciBob3VyczsKKworICAgIHByaXZhdGUgQm9vbGVhbiBlZGl0b3I7CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEZpcnN0bmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGZpcnN0bmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRGaXJzdG5hbWUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIGZpcnN0bmFtZSA9IHZhbHVlOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TGFzdG5hbWUoKSB7CisgICAgICAgIHJldHVybiBsYXN0bmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRMYXN0bmFtZShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgbGFzdG5hbWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEV4dGVuc2lvbigpIHsKKyAgICAgICAgcmV0dXJuIGV4dGVuc2lvbjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRFeHRlbnNpb24oU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIGV4dGVuc2lvbiA9IHZhbHVlOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VXNlcm5hbWUoKSB7CisgICAgICAgIHJldHVybiB1c2VybmFtZTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVc2VybmFtZShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgdXNlcm5hbWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGF0ZSBnZXRIaXJlZCgpIHsKKyAgICAgICAgcmV0dXJuIGhpcmVkOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEhpcmVkKERhdGUgdmFsdWUpIHsKKyAgICAgICAgaGlyZWQgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgSW50ZWdlciBnZXRIb3VycygpIHsKKyAgICAgICAgcmV0dXJuIGhvdXJzOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEhvdXJzKEludGVnZXIgdmFsdWUpIHsKKyAgICAgICAgaG91cnMgPSB2YWx1ZTsKKyAgICB9CisKKyAgICBwdWJsaWMgQm9vbGVhbiBnZXRFZGl0b3IoKSB7CisgICAgICAgIHJldHVybiBlZGl0b3I7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0RWRpdG9yKEJvb2xlYW4gdmFsdWUpIHsKKyAgICAgICAgZWRpdG9yID0gdmFsdWU7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL3Bvam8vUG9qby1jb25maWcueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9wb2pvL1Bvam8tY29uZmlnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjg3ZTYwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9wb2pvL1Bvam8tY29uZmlnLnhtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgeHdvcmsgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIDEuMS4xLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay0xLjEuMS5kdGQiPgorCis8eHdvcms+CisKKyAgICA8cGFja2FnZSBuYW1lPSJQb2pvIiBuYW1lc3BhY2U9Ii9Qb2pvIiBleHRlbmRzPSJ3ZWJ3b3JrLWRlZmF1bHQiPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iT3BlbiIgY2xhc3M9ImNvb2tib29rMi5wb2pvLlJlc3VsdCI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9Qb2pvL1Jlc3VsdC5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9Qb2pvL0lucHV0LmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlZpZXciPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvUG9qby9pbmRleC5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJWaWV3LUlucHV0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icGxhaW50ZXh0Ij4vcGFnZXMvUG9qby9JbnB1dC5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJWaWV3LVJlc3VsdCI+CisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InBsYWludGV4dCI+L3BhZ2VzL1Bvam8vUmVzdWx0LmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IlZpZXctQWN0aW9uLUVudHJ5Ij4KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icGxhaW50ZXh0Ij4vV0VCLUlORi9zcmMvamF2YS9jb29rYm9vazIvcG9qby9EaXJlY3RvcnlFbnRyeS5qYXZhPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iVmlldy1Db25maWciPgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJwbGFpbnRleHQiPi9XRUItSU5GL2NsYXNzZXMvY29va2Jvb2syL3Bvam8vUG9qby1jb25maWcueG1sPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgPC9wYWNrYWdlPgorPC94d29yaz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvamF2YS9jb29rYm9vazIvcG9qby9SZXN1bHQtdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL3Bvam8vUmVzdWx0LXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlZTliMTIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL3Bvam8vUmVzdWx0LXZhbGlkYXRpb24ueG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIiAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLXZhbGlkYXRvci0xLjAuMi5kdGQiPg0KKw0KKzx2YWxpZGF0b3JzPg0KKyAgICA8ZmllbGQgbmFtZT0iZmlyc3RuYW1lIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlPllvdSBtdXN0IGVudGVyIGEgZmlyc3QgbmFtZTwvbWVzc2FnZT4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0ibGFzdG5hbWUiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2U+WW91IG11c3QgZW50ZXIgYSBsYXN0IG5hbWU8L21lc3NhZ2U+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9InVzZXJuYW1lIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0iZW1haWwiPg0KKyAgICAgICAgICAgIDxtZXNzYWdlPllvdSBtdXN0IGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzczwvbWVzc2FnZT4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0iZXh0ZW5zaW9uIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlPllvdSBtdXN0IGVudGVyIGEgdGVsZXBob25lIGV4dGVuc2lvbjwvbWVzc2FnZT4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0iaGlyZWQiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJkYXRlIj4NCisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluIj4wNy8yNS8yMDA1PC9wYXJhbT4NCisgICAgICAgICAgICA8bWVzc2FnZT5IaXJlIGRhdGUgbXVzdCBiZSBhZnRlciAyNyBKYW4gMjAwNTwvbWVzc2FnZT4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0iaG91cnMiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJpbnQiPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW4iPjE8L3BhcmFtPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtYXgiPjQwPC9wYXJhbT4NCisgICAgICAgICAgICA8bWVzc2FnZT5Ib3VycyBtdXN0IGJldHdlZW4gMSBhbmQgNDAsIGluY2x1c2l2ZT48L21lc3NhZ2U+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9ImVkaXRvciI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9ImJvb2wiPg0KKyAgICAgICAgICAgIDxtZXNzYWdlPkVkaXRvciBtdXN0IGJlIFRSVUUgb3IgRkFMU0U8L21lc3NhZ2U+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCis8L3ZhbGlkYXRvcnM+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9wb2pvL1Jlc3VsdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL2Nvb2tib29rMi9wb2pvL1Jlc3VsdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlMTNlMjEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvY29va2Jvb2syL3Bvam8vUmVzdWx0LmphdmEKQEAgLTAsMCArMSwxNCBAQAorcGFja2FnZSBjb29rYm9vazIucG9qbzsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuQWN0aW9uU3VwcG9ydDsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrLk1vZGVsRHJpdmVuOworCitwdWJsaWMgY2xhc3MgUmVzdWx0IGV4dGVuZHMgQWN0aW9uU3VwcG9ydCBpbXBsZW1lbnRzIE1vZGVsRHJpdmVuIHsKKworICAgIHByaXZhdGUgRGlyZWN0b3J5RW50cnkgZGlyZWN0b3J5RW50cnkgPSBuZXcgRGlyZWN0b3J5RW50cnkoKTsKKworICAgIHB1YmxpYyBPYmplY3QgZ2V0TW9kZWwoKSB7CisgICAgICAgIHJldHVybiBkaXJlY3RvcnlFbnRyeTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvamF2YS93ZWJ3b3JrLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvd2Vid29yay5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5MTgwN2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEvd2Vid29yay5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMyBAQAord2Vid29yay5vYmplY3RGYWN0b3J5ID0gc3ByaW5nCit3ZWJ3b3JrLmRldk1vZGUgPSB0cnVlCit3ZWJ3b3JrLmFjdGlvbi5leHRlbnNpb24gPSBkbyxqc3BhCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL2phdmEveHdvcmsueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL3h3b3JrLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzUzNjcyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy9qYXZhL3h3b3JrLnhtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgeHdvcmsgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIDEuMS4xLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay0xLjEuMS5kdGQiPgorCis8eHdvcms+CisKKyAgICA8aW5jbHVkZSBmaWxlPSJ3ZWJ3b3JrLWRlZmF1bHQueG1sIi8+CisKKyAgICA8aW5jbHVkZSBmaWxlPSJjb29rYm9vazIvSG9tZS1jb25maWcueG1sIi8+CisKKyAgICA8aW5jbHVkZSBmaWxlPSJjb29rYm9vazIvSGVsbG8tY29uZmlnLnhtbCIvPgorCisgICAgPGluY2x1ZGUgZmlsZT0iY29va2Jvb2syL1NpbXBsZS1jb25maWcueG1sIi8+CisKKyAgICA8aW5jbHVkZSBmaWxlPSJjb29rYm9vazIvcG9qby9Qb2pvLWNvbmZpZy54bWwiLz4KKworICAgIDxpbmNsdWRlIGZpbGU9ImNvb2tib29rMi9TZWxlY3QtY29uZmlnLnhtbCIvPgorCisgICAgPGluY2x1ZGUgZmlsZT0iY29va2Jvb2syL2FjdGlvbnRhZy9BY3Rpb25UYWctY29uZmlnLnhtbCIvPgorCisgICAgPGluY2x1ZGUgZmlsZT0iY29va2Jvb2syL0J1dHRvbnMtY29uZmlnLnhtbCIvPgorCis8L3h3b3JrPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy90ZXN0L2Nvb2tib29rMi9hY3Rpb250YWcvTGFuZ3VhZ2VzVGVzdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy90ZXN0L2Nvb2tib29rMi9hY3Rpb250YWcvTGFuZ3VhZ2VzVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzYjdiNDIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3Rlc3QvY29va2Jvb2syL2FjdGlvbnRhZy9MYW5ndWFnZXNUZXN0LmphdmEKQEAgLTAsMCArMSwzNCBAQAorcGFja2FnZSBjb29rYm9vazIuYWN0aW9udGFnOworCitpbXBvcnQgY29va2Jvb2syLlNlbGVjdDsKK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworcHVibGljIGNsYXNzIExhbmd1YWdlc1Rlc3QgZXh0ZW5kcyBUZXN0Q2FzZSB7CisKKyAgICBwcml2YXRlIExhbmd1YWdlcyBhY3Rpb247CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVcCgpIHsKKworICAgICAgICBhY3Rpb24gPSBuZXcgTGFuZ3VhZ2VzKCk7CisKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q29udGVudHMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBMaXN0IGxpc3QgPSBhY3Rpb24uZ2V0RmF2b3JpdGVMYW5ndWFnZXMoKTsKKyAgICAgICAgYXNzZXJ0Tm90TnVsbCgiTGlzdCBpcyBudWxsISIsIGxpc3QpOworICAgICAgICBhc3NlcnRUcnVlKCJMaXN0IGlzIG5vdCBlbXB0eSIsIGxpc3Quc2l6ZSgpID09IDApOworCisgICAgICAgIGFjdGlvbi5leGVjdXRlKCk7CisKKyAgICAgICAgTGlzdCBsaXN0MiA9IGFjdGlvbi5nZXRGYXZvcml0ZUxhbmd1YWdlcygpOworICAgICAgICBhc3NlcnROb3ROdWxsKCJMaXN0IGlzIG51bGwhIiwgbGlzdDIpOworICAgICAgICBhc3NlcnRUcnVlKCJMaXN0IGlzIGVtcHR5ISIsIGxpc3Quc2l6ZSgpID4gMCk7CisgICAgICAgIFNlbGVjdC5MYW5ndWFnZSBlbnRyeSA9IChTZWxlY3QuTGFuZ3VhZ2UpIGxpc3QuZ2V0KDApOworICAgICAgICBhc3NlcnROb3ROdWxsKCJFbnRyeSBpcyBudWxsIiwgZW50cnkpOworICAgICAgICBhc3NlcnRUcnVlKCJFbnRyeSBpcyBlbXB0eSIsIGVudHJ5LmdldERlc2NyaXB0aW9uKCkubGVuZ3RoKCkgPiAwKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL0hvbWUuanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvSG9tZS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U2Y2E1MQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL0hvbWUuanNwCkBAIC0wLDAgKzEsMTkxIEBACis8JUAgdGFnbGliIHVyaT0iL3dlYndvcmsiIHByZWZpeD0id3ciICU+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz4KKyAgICA8dGl0bGU+U3RydXRzIEFjdGlvbiAyIENvb2tib29rPC90aXRsZT4KKworICAgIDxsaW5rIGhyZWY9Ijx3dzp1cmwgdmFsdWU9Ii9jc3MvY29va2Jvb2suY3NzIi8+IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgyPlN0cnV0cyBBY3Rpb24gMiBDb29rYm9vayAtLSBFeGFtcGxlcyB3aXRoIENvZGU8L2gyPgorCis8cD4KKyAgICBUaGlzIGlzIGEgY29sbGVjdGlvbiBvZiB3b3JraW5nIGV4YW1wbGVzIHdoaWNoIGRlbW9uc3RyYXRlIGhvdyB0byBjb2RlCisgICAgc29tZSBjb21tb24gd2ViIGFwcGxpY2F0aW9uIHVzZSBjYXNlcy4KKzwvcD4KKworPHA+CisgICAgVG8gbmF2aWdhdGUgeW91ciB3YXkgdGhyb3VnaCB0aGUgZXhhbXBsZXMsIHRoZSBmb2xsb3dpbmcgaWNvbnMgd2lsbCBoZWxwOgorPC9wPgorPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjUiIHdpZHRoPSI4NSUiPgorICAgIDx0ciB2YWxpZ249InRvcCI+CisgICAgICAgIDx0ZCB3aWR0aD0iMzAiPjx3dzppbmNsdWRlIHZhbHVlPSIvaWNvbi1vcGVuLmpzcCIvPjwvdGQ+CisgICAgICAgIDx0ZD5FeGVjdXRlIHRoZSBleGFtcGxlPC90ZD4KKyAgICA8L3RyPgorICAgIDx0ciB2YWxpZ249InRvcCI+CisgICAgICAgIDx0ZD48d3c6aW5jbHVkZSB2YWx1ZT0iL2ljb24tdmlldy5qc3AiLz48L3RkPgorICAgICAgICA8dGQ+VmlldyB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBleGFtcGxlPC90ZD4KKyAgICA8L3RyPgorICAgIDx0ciB2YWxpZ249InRvcCI+CisgICAgICAgIDx0ZCB3aWR0aD0iMzAiPjx3dzppbmNsdWRlIHZhbHVlPSIvaWNvbi1ob21lLmpzcCIvPjwvdGQ+CisgICAgICAgIDx0ZD5SZXR1cm4gdG8gdGhpcyBzY3JlZW48L3RkPgorICAgIDwvdHI+Cis8L3RhYmxlPgorPGJyLz4KKzx0YWJsZSB3aWR0aD0iODUlIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iNSI+CisKKzx0ciB2YWxpZ249InRvcCI+CisgICAgPHRkPkhlbGxvIFdvcmxkPC90ZD4KKyAgICA8dGQ+CisKKyAgICAgICAgPHd3OnVybCBpZD0iSGVsbG9fT3BlbiIgYWN0aW9uPSJPcGVuIiBuYW1lc3BhY2U9Ii9IZWxsbyIvPgorICAgICAgICA8d3c6YSBocmVmPSIle0hlbGxvX09wZW59Ij4KKyAgICAgICAgICAgIDx3dzppbmNsdWRlIHZhbHVlPSIvaWNvbi1vcGVuLmpzcCIvPgorICAgICAgICA8L3d3OmE+CisgICAgICAgIDx3dzphIGhyZWY9IiV7SGVsbG9fT3Blbn0iPkV4ZWN1dGU8L3d3OmE+CisKKyAgICA8L3RkPgorICAgIDx0ZD4KKworICAgICAgICA8d3c6dXJsIGlkPSJIZWxsb19WaWV3IiBhY3Rpb249IlZpZXciIG5hbWVzcGFjZT0iL0hlbGxvIi8+CisgICAgICAgIDx3dzphIGhyZWY9IiV7SGVsbG9fVmlld30iPgorICAgICAgICAgICAgPHd3OmluY2x1ZGUgdmFsdWU9Ii9pY29uLXZpZXcuanNwIi8+CisgICAgICAgIDwvd3c6YT4KKyAgICAgICAgPHd3OmEgaHJlZj0iJXtIZWxsb19WaWV3fSI+CisgICAgICAgICAgICBWaWV3IFNvdXJjZQorICAgICAgICA8L3d3OmE+CisKKyAgICA8L3RkPgorPC90cj4KKworCis8dHIgdmFsaWduPSJ0b3AiPgorICAgIDx0ZD5TaW1wbGUgSW5wdXQgRm9ybSB1c2luZyBBY3Rpb24gUHJvcGVydGllczwvdGQ+CisgICAgPHRkPgorCisgICAgICAgIDx3dzp1cmwgaWQ9IlNpbXBsZV9PcGVuIiBhY3Rpb249Ik9wZW4haW5wdXQiIG5hbWVzcGFjZT0iL1NpbXBsZSIvPgorICAgICAgICA8d3c6YSBocmVmPSIle1NpbXBsZV9PcGVufSI+CisgICAgICAgICAgICA8d3c6aW5jbHVkZSB2YWx1ZT0iL2ljb24tb3Blbi5qc3AiLz4KKyAgICAgICAgPC93dzphPgorICAgICAgICA8d3c6YSBocmVmPSIle1NpbXBsZV9PcGVufSI+RXhlY3V0ZTwvd3c6YT4KKworICAgIDwvdGQ+CisgICAgPHRkPgorCisgICAgICAgIDx3dzp1cmwgaWQ9IlNpbXBsZV9WaWV3IiBhY3Rpb249IlZpZXciIG5hbWVzcGFjZT0iL1NpbXBsZSIvPgorICAgICAgICA8d3c6YSBocmVmPSIle1NpbXBsZV9WaWV3fSI+CisgICAgICAgICAgICA8d3c6aW5jbHVkZSB2YWx1ZT0iL2ljb24tdmlldy5qc3AiLz4KKyAgICAgICAgPC93dzphPgorICAgICAgICA8d3c6YSBocmVmPSIle1NpbXBsZV9WaWV3fSI+CisgICAgICAgICAgICBWaWV3IFNvdXJjZQorICAgICAgICA8L3d3OmE+CisKKyAgICA8L3RkPgorPC90cj4KKworCis8dHIgdmFsaWduPSJ0b3AiPgorICAgIDx0ZD5JbnB1dCBGb3JtIHVzaW5nIGEgUE9KTzwvdGQ+CisgICAgPHRkPgorCisgICAgICAgIDx3dzp1cmwgaWQ9IlBvam9fT3BlbiIgYWN0aW9uPSJPcGVuIWlucHV0IiBuYW1lc3BhY2U9Ii9Qb2pvIi8+CisgICAgICAgIDx3dzphIGhyZWY9IiV7UG9qb19PcGVufSI+CisgICAgICAgICAgICA8d3c6aW5jbHVkZSB2YWx1ZT0iL2ljb24tb3Blbi5qc3AiLz4KKyAgICAgICAgPC93dzphPgorICAgICAgICA8d3c6YSBocmVmPSIle1Bvam9fT3Blbn0iPkV4ZWN1dGU8L3d3OmE+CisKKyAgICA8L3RkPgorICAgIDx0ZD4KKworICAgICAgICA8d3c6dXJsIGlkPSJQb2pvX1ZpZXciIGFjdGlvbj0iVmlldyIgbmFtZXNwYWNlPSIvUG9qbyIvPgorICAgICAgICA8d3c6YSBocmVmPSIle1Bvam9fVmlld30iPgorICAgICAgICAgICAgPHd3OmluY2x1ZGUgdmFsdWU9Ii9pY29uLXZpZXcuanNwIi8+CisgICAgICAgIDwvd3c6YT4KKyAgICAgICAgPHd3OmEgaHJlZj0iJXtQb2pvX1ZpZXd9Ij4KKyAgICAgICAgICAgIFZpZXcgU291cmNlCisgICAgICAgIDwvd3c6YT4KKworICAgIDwvdGQ+Cis8L3RyPgorCis8dHIgdmFsaWduPSJ0b3AiPgorICAgIDx0ZD5Db21wbGV4IElucHV0IEZvcm0gdXNpbmcgU2VsZWN0IENvbnRyb2xzPC90ZD4KKyAgICA8dGQ+CisKKyAgICAgICAgPHd3OnVybCBpZD0iU2VsZWN0X09wZW4iIGFjdGlvbj0iT3BlbiFpbnB1dCIgbmFtZXNwYWNlPSIvU2VsZWN0Ii8+CisgICAgICAgIDx3dzphIGhyZWY9IiV7U2VsZWN0X09wZW59Ij4KKyAgICAgICAgICAgIDx3dzppbmNsdWRlIHZhbHVlPSIvaWNvbi1vcGVuLmpzcCIvPgorICAgICAgICA8L3d3OmE+CisgICAgICAgIDx3dzphIGhyZWY9IiV7U2VsZWN0X09wZW59Ij5FeGVjdXRlPC93dzphPgorCisgICAgPC90ZD4KKyAgICA8dGQ+CisKKyAgICAgICAgPHd3OnVybCBpZD0iU2VsZWN0X1ZpZXciIGFjdGlvbj0iVmlldyIgbmFtZXNwYWNlPSIvU2VsZWN0Ii8+CisgICAgICAgIDx3dzphIGhyZWY9IiV7U2VsZWN0X1ZpZXd9Ij4KKyAgICAgICAgICAgIDx3dzppbmNsdWRlIHZhbHVlPSIvaWNvbi12aWV3LmpzcCIvPgorICAgICAgICA8L3d3OmE+CisgICAgICAgIDx3dzphIGhyZWY9IiV7U2VsZWN0X1ZpZXd9Ij4KKyAgICAgICAgICAgIFZpZXcgU291cmNlCisgICAgICAgIDwvd3c6YT4KKworICAgIDwvdGQ+Cis8L3RyPgorCis8dHIgdmFsaWduPSJ0b3AiPgorICAgIDx0ZD5BY3Rpb24gYXMgUGFnZSBDb250cm9sbGVyczwvdGQ+CisgICAgPHRkPgorCisgICAgICAgIDx3dzp1cmwgaWQ9IkFjdGlvblRhZ19PcGVuIiBhY3Rpb249Ik9wZW4haW5wdXQiIG5hbWVzcGFjZT0iL0FjdGlvblRhZyIvPgorICAgICAgICA8d3c6YSBocmVmPSIle0FjdGlvblRhZ19PcGVufSI+CisgICAgICAgICAgICA8d3c6aW5jbHVkZSB2YWx1ZT0iL2ljb24tb3Blbi5qc3AiLz4KKyAgICAgICAgPC93dzphPgorICAgICAgICA8d3c6YSBocmVmPSIle0FjdGlvblRhZ19PcGVufSI+RXhlY3V0ZTwvd3c6YT4KKworICAgIDwvdGQ+CisgICAgPHRkPgorCisgICAgICAgIDx3dzp1cmwgaWQ9IkFjdGlvblRhZ19WaWV3IiBhY3Rpb249IlZpZXciIG5hbWVzcGFjZT0iL0FjdGlvblRhZyIvPgorICAgICAgICA8d3c6YSBocmVmPSIle0FjdGlvblRhZ19WaWV3fSI+CisgICAgICAgICAgICA8d3c6aW5jbHVkZSB2YWx1ZT0iL2ljb24tdmlldy5qc3AiLz4KKyAgICAgICAgPC93dzphPgorICAgICAgICA8d3c6YSBocmVmPSIle0FjdGlvblRhZ19WaWV3fSI+CisgICAgICAgICAgICBWaWV3IFNvdXJjZQorICAgICAgICA8L3d3OmE+CisKKyAgICA8L3RkPgorPC90cj4KKworPHRyIHZhbGlnbj0idG9wIj4KKyAgICA8dGQ+RGV0ZWN0aW5nIEJ1dHRvbnM8L3RkPgorICAgIDx0ZD4KKworICAgICAgICA8d3c6dXJsIGlkPSJCdXR0b25zX09wZW4iIGFjdGlvbj0iT3BlbiFpbnB1dCIgbmFtZXNwYWNlPSIvQnV0dG9ucyIvPgorICAgICAgICA8d3c6YSBocmVmPSIle0J1dHRvbnNfT3Blbn0iPgorICAgICAgICAgICAgPHd3OmluY2x1ZGUgdmFsdWU9Ii9pY29uLW9wZW4uanNwIi8+CisgICAgICAgIDwvd3c6YT4KKyAgICAgICAgPHd3OmEgaHJlZj0iJXtCdXR0b25zX09wZW59Ij5FeGVjdXRlPC93dzphPgorCisgICAgPC90ZD4KKyAgICA8dGQ+CisKKyAgICAgICAgPHd3OnVybCBpZD0iQnV0dG9uc19WaWV3IiBhY3Rpb249IlZpZXciIG5hbWVzcGFjZT0iL0J1dHRvbnMiLz4KKyAgICAgICAgPHd3OmEgaHJlZj0iJXtCdXR0b25zX1ZpZXd9Ij4KKyAgICAgICAgICAgIDx3dzppbmNsdWRlIHZhbHVlPSIvaWNvbi12aWV3LmpzcCIvPgorICAgICAgICA8L3d3OmE+CisgICAgICAgIDx3dzphIGhyZWY9IiV7QnV0dG9uc19WaWV3fSI+CisgICAgICAgICAgICBWaWV3IFNvdXJjZQorICAgICAgICA8L3d3OmE+CisKKyAgICA8L3RkPgorPC90cj4KKworCis8L3RhYmxlPgorPHA+PGltZyBzcmM9Ijx3dzp1cmwgdmFsdWU9Ii9pbWFnZXMvdmFsaWQteGh0bWwxMC5wbmciLz4iIGFsdD0iVmFsaWQgWEhUTUwgMS4wISIgaGVpZ2h0PSIzMSIgd2lkdGg9Ijg4Ii8+PC9wPgorPC9ib2R5PgorCis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvV0VCLUlORi9hcHBsaWNhdGlvbkNvbnRleHQueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvV0VCLUlORi9hcHBsaWNhdGlvbkNvbnRleHQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5OGUxZDgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9XRUItSU5GL2FwcGxpY2F0aW9uQ29udGV4dC54bWwKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGJlYW5zIFBVQkxJQyAiLS8vU1BSSU5HLy9EVEQgQkVBTi8vRU4iICJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5vcmcvZHRkL3NwcmluZy1iZWFucy5kdGQiPgorCis8YmVhbnMgZGVmYXVsdC1hdXRvd2lyZT0iYXV0b2RldGVjdCI+CisgICAgPCEtLSBhZGQgeW91ciBzcHJpbmcgYmVhbnMgaGVyZSAtLT4KKzwvYmVhbnM+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2YzM3M2EKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKQEAgLTAsMCArMSwzNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIHdlYi1hcHAgUFVCTElDICItLy9TdW4gTWljcm9zeXN0ZW1zLCBJbmMuLy9EVEQgV2ViIEFwcGxpY2F0aW9uIDIuMy8vRU4iICJodHRwOi8vamF2YS5zdW4uY29tL2R0ZC93ZWItYXBwXzJfMy5kdGQiPgorPHdlYi1hcHA+CisKKyAgICA8ZGlzcGxheS1uYW1lPkFjdGlvbjIgQ29va2Jvb2s8L2Rpc3BsYXktbmFtZT4KKworICAgIDxmaWx0ZXI+CisgICAgICAgIDxmaWx0ZXItbmFtZT53ZWJ3b3JrPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPGZpbHRlci1jbGFzcz5jb20ub3BlbnN5bXBob255LndlYndvcmsuZGlzcGF0Y2hlci5GaWx0ZXJEaXNwYXRjaGVyPC9maWx0ZXItY2xhc3M+CisgICAgPC9maWx0ZXI+CisKKyAgICA8ZmlsdGVyLW1hcHBpbmc+CisgICAgICAgIDxmaWx0ZXItbmFtZT53ZWJ3b3JrPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPHVybC1wYXR0ZXJuPi8qPC91cmwtcGF0dGVybj4KKyAgICA8L2ZpbHRlci1tYXBwaW5nPgorCisgICAgPGxpc3RlbmVyPgorICAgICAgICA8bGlzdGVuZXItY2xhc3M+b3JnLnNwcmluZ2ZyYW1ld29yay53ZWIuY29udGV4dC5Db250ZXh0TG9hZGVyTGlzdGVuZXI8L2xpc3RlbmVyLWNsYXNzPgorICAgIDwvbGlzdGVuZXI+CisKKyAgICA8d2VsY29tZS1maWxlLWxpc3Q+CisgICAgICAgIDx3ZWxjb21lLWZpbGU+SG9tZS5qc3A8L3dlbGNvbWUtZmlsZT4KKyAgICAgICAgPHdlbGNvbWUtZmlsZT5pbmRleC5qc3A8L3dlbGNvbWUtZmlsZT4KKyAgICA8L3dlbGNvbWUtZmlsZS1saXN0PgorCisgICAgPCEtLQorICAgICAgICBUaGlzIHR5cGljYWxseSBpc24ndCByZXF1aXJlZCwgYXMgdGhlIHRhZ2xpYiBpcyBpbmNsdWRlZCBpbiB3ZWJ3b3JrLmphci4KKyAgICAgICAgSWYgeW91IHJlYWxseSBuZWVkIGEgdGFnbGliIGNvbmZpZ3VyYXRpb24gd2l0aGluIHdlYi54bWwsIGNvcHkgd2Vid29yay9zcmMvamF2YS9NRVRBLUlORi90YWdsaWIudGxkCisgICAgICAgIHRvIHRoZSBXRUItSU5GIGRpcmVjdG9yeSBhcyB3ZWJ3b3JrLnRsZC4KKyAgICAgLS0+CisgICAgPCEtLXRhZ2xpYj4KKyAgICAgICAgPHRhZ2xpYi11cmk+d2Vid29yazwvdGFnbGliLXVyaT4KKyAgICAgICAgPHRhZ2xpYi1sb2NhdGlvbj4vV0VCLUlORi93ZWJ3b3JrLnRsZDwvdGFnbGliLWxvY2F0aW9uPgorICAgIDwvdGFnbGliLS0+Cis8L3dlYi1hcHA+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9jc3MvY29va2Jvb2suY3NzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvY3NzL2Nvb2tib29rLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzcyMTI3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvY3NzL2Nvb2tib29rLmNzcwpAQCAtMCwwICsxLDY4IEBACitib2R5IHsKKyAgICBtYXJnaW46IDIlIDEwJTsKKyAgICBmb250OiAxMnB4IC8gMS40IFZlcmRhbmEsIEdlbmV2YSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKK30KKworaDEgeworICAgIGZvbnQtc2l6ZTogMjBweDsKK30KKworaDIgeworICAgIGZvbnQtc2l6ZTogMTZweDsKKyAgICBtYXJnaW46IDNlbSAwIDAuNWVtOworfQorCitoMyB7CisgICAgZm9udC1zaXplOiAxNHB4OworICAgIG1hcmdpbjogMmVtIDAgMC41ZW07Cit9CisKK2g0IHsKKyAgICBmb250LXNpemU6IDEycHg7Cit9CisKK2g1IHsKKyAgICBmb250LXNpemU6IDExcHg7Cit9CisKK2g2IHsKKyAgICBmb250LXNpemU6IDEwcHg7Cit9CisKK2hyIHsKKyAgICBjb2xvcjogIzk5OTk5OTsKKyAgICBoZWlnaHQ6IDFweDsKK30KKworaW1nIHsKKyAgICBib3JkZXI6IG5vbmU7Cit9CisKK3RoIHsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworfQorCisuZXJyb3IgeworICAgIGNvbG9yOiAjRkYwMDAwOworfQorCisuaWNvbiB7CisgICAgZmxvYXQ6IHJpZ2h0OworICAgIG1hcmdpbjogNXB4OworfQorCisuaW50cm8geworICAgIGZvbnQtc2l6ZTogMTRweDsKKyAgICBsaW5lLWhlaWdodDogMS42OworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworfQorCisubGFiZWwgeworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgIHdpZHRoOiAyNjBweDsKK30KKworLnJlc3VsdCB7CisgICAgd2lkdGg6IDEwMCU7CisgICAgYmFja2dyb3VuZDogI2VlZjsKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL2hlYWRlci1pbmRleC5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9oZWFkZXItaW5kZXguanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNjkxM2UKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9oZWFkZXItaW5kZXguanNwCkBAIC0wLDAgKzEsMTIgQEAKKzwlQCB0YWdsaWIgdXJpPSIvd2Vid29yayIgcHJlZml4PSJ3dyIgJT4KKzxwPgorICAgIDxhIGhyZWY9Ijx3dzp1cmwgYWN0aW9uPSJIb21lIiAvPiI+CisgICAgICAgIDxpbWcgc3JjPSI8d3c6dXJsIHZhbHVlPSIvaW1hZ2VzL3JldHVybi5naWYiLz4iIGFsdD0iSG9tZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0IiBoc3BhY2U9IjQiIGJvcmRlcj0iMCIKKyAgICAgICAgICAgICBhbGlnbj0idG9wIiBjbGFzcz0iaWNvbiIvPgorICAgIDwvYT4KKyAgICA8YSBocmVmPSI8d3c6dXJsIGFjdGlvbj0iT3BlbiFpbnB1dCIgLz4iPgorICAgICAgICA8aW1nIHNyYz0iPHd3OnVybCB2YWx1ZT0iL2ltYWdlcy9leGVjdXRlLmdpZiIvPiIgYWx0PSJPcGVuIiBoZWlnaHQ9IjI0IiB3aWR0aD0iMjQiIGhzcGFjZT0iNCIgYm9yZGVyPSIwIgorICAgICAgICAgICAgIGFsaWduPSJ0b3AiIGNsYXNzPSJpY29uIi8+CisgICAgPC9hPgorPC9wPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9oZWFkZXItcmVzdWx0LmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL2hlYWRlci1yZXN1bHQuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmZGM4YmMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9oZWFkZXItcmVzdWx0LmpzcApAQCAtMCwwICsxLDEyIEBACis8JUAgdGFnbGliIHVyaT0iL3dlYndvcmsiIHByZWZpeD0id3ciICU+Cis8cD4KKyAgICA8YSBocmVmPSI8d3c6dXJsIGFjdGlvbj0iSG9tZSIgLz4iPgorICAgICAgICA8aW1nIHNyYz0iPHd3OnVybCB2YWx1ZT0iL2ltYWdlcy9yZXR1cm4uZ2lmIi8+IiBhbHQ9IkhvbWUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgaHNwYWNlPSI0IiBib3JkZXI9IjAiCisgICAgICAgICAgICAgYWxpZ249InRvcCIgY2xhc3M9Imljb24iLz4KKyAgICA8L2E+CisgICAgPGEgaHJlZj0iPHd3OnVybCBhY3Rpb249IlZpZXciIC8+Ij4KKyAgICAgICAgPGltZyBzcmM9Ijx3dzp1cmwgdmFsdWU9Ii9pbWFnZXMvY29kZS5naWYiLz4iCisgICAgICAgICAgICAgYWx0PSJPcGVuIiBoZWlnaHQ9IjI0IiB3aWR0aD0iMjQiIGhzcGFjZT0iNCIKKyAgICAgICAgICAgICBib3JkZXI9IjAiIGFsaWduPSJ0b3AiIGNsYXNzPSJpY29uIi8+CisgICAgPC9hPgorPC9wPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvaWNvbi1ob21lLmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL2ljb24taG9tZS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc0ZmUxOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL2ljb24taG9tZS5qc3AKQEAgLTAsMCArMSwzIEBACis8JUAgdGFnbGliIHVyaT0iL3dlYndvcmsiIHByZWZpeD0id3ciICU+Cis8aW1nIHNyYz0iPHd3OnVybCB2YWx1ZT0iL2ltYWdlcy9yZXR1cm4uZ2lmIi8+IiBhbHQ9IkhvbWUiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgaHNwYWNlPSI0IiBib3JkZXI9IjAiIGFsaWduPSJ0b3AiCisgICAgIGNsYXNzPSJpbmxpbmUiLz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9pY29uLW9wZW4uanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvaWNvbi1vcGVuLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGNhZjY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvaWNvbi1vcGVuLmpzcApAQCAtMCwwICsxLDMgQEAKKzwlQCB0YWdsaWIgdXJpPSIvd2Vid29yayIgcHJlZml4PSJ3dyIgJT4KKzxpbWcgc3JjPSI8d3c6dXJsIHZhbHVlPSIvaW1hZ2VzL2V4ZWN1dGUuZ2lmIi8+IiBhbHQ9Ik9wZW4iIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgaHNwYWNlPSI0IiBib3JkZXI9IjAiIGFsaWduPSJ0b3AiCisgICAgIGNsYXNzPSJpbmxpbmUiLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL2ljb24tdmlldy5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9pY29uLXZpZXcuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmYmI4YTUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9pY29uLXZpZXcuanNwCkBAIC0wLDAgKzEsMyBAQAorPCVAIHRhZ2xpYiB1cmk9Ii93ZWJ3b3JrIiBwcmVmaXg9Ind3IiAlPgorPGltZyBzcmM9Ijx3dzp1cmwgdmFsdWU9Ii9pbWFnZXMvY29kZS5naWYiLz4iIGFsdD0iVmlldyIgYm9yZGVyPSIwIiBoZWlnaHQ9IjI0IiB3aWR0aD0iMjQiIGhzcGFjZT0iNCIgYWxpZ249InRvcCIKKyAgICAgY2xhc3M9ImlubGluZSIvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvaW1hZ2VzL2NvZGUuZ2lmIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvaW1hZ2VzL2NvZGUuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzYWYyY2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9pbWFnZXMvY29kZS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvaW1hZ2VzL2V4ZWN1dGUuZ2lmIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvaW1hZ2VzL2V4ZWN1dGUuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2NGQ3MGYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9pbWFnZXMvZXhlY3V0ZS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvaW1hZ2VzL2pzcC5naWYgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9pbWFnZXMvanNwLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjU3ZDUyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvaW1hZ2VzL2pzcC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvaW1hZ2VzL3JldHVybi5naWYgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9pbWFnZXMvcmV0dXJuLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjRmNjhmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvaW1hZ2VzL3JldHVybi5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvaW1hZ2VzL3ZhbGlkLXhodG1sMTAucG5nIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvaW1hZ2VzL3ZhbGlkLXhodG1sMTAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyNzVlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9pbWFnZXMvdmFsaWQteGh0bWwxMC5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvaW5kZXguaHRtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL2luZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGI0MjZhMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL2luZGV4Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4KKzxodG1sPgorPGhlYWQ+CisgICAgPE1FVEEgSFRUUC1FUVVJVj0iUmVmcmVzaCIgQ09OVEVOVD0iMDtVUkw9SG9tZS5qc3AiPgorPC9oZWFkPgorCis8Ym9keT4KKzxwPkxvYWRpbmcgLi4uPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvQWN0aW9uVGFnL0lucHV0LmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL0FjdGlvblRhZy9JbnB1dC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZlMzUzMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL0FjdGlvblRhZy9JbnB1dC5qc3AKQEAgLTAsMCArMSwzMiBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9Ind3IiB1cmk9Ii93ZWJ3b3JrIiAlPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5Db29rQm9vayAtIEFjdGlvbiBhcyBQYWdlIENvbnRyb2xsZXI8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ijx3dzp1cmwgdmFsdWU9Ii9jc3MvY29va2Jvb2suY3NzIiAvPiI+Cis8L2hlYWQ+CisKKzxib2R5PgorCis8d3c6aW5jbHVkZSB2YWx1ZT0iL2hlYWRlci1yZXN1bHQuanNwIi8+CisKKzxoMT5BY3Rpb24gYXMgUGFnZSBDb250cm9sbGVyPC9oMT4KKworPHA+CisgICAgVGhlIGNvbnRyb2xzIG9uIHRoaXMgcGFnZSBpcyBlYWNoIHBvcHVsYXRlZCBieSBpdHMgb3duIGFjdGlvbgorICAgIGFuZCBmb3JtYXR0ZWQgb24gaXRzIG93biBzZXJ2ZXIgcGFnZSBmcmFnbWVudC4KKyAgICBBY2NvcmRpbmdseSwgZWFjaCBjb250cm9sIGNvdWxkIGJlIHJlLXVzZWQgb24gYW55IG51bWJlciBvZiBwYWdlcy4KKzwvcD4KKworPHd3OmZvcm0gbWV0aG9kPSJQT1NUIj4KKworICAgIDx3dzphY3Rpb24gbmFtZT0ibGFuZ3VhZ2VzIiBuYW1lc3BhY2U9Ii9BY3Rpb25UYWciIGV4ZWN1dGVSZXN1bHQ9InRydWUiLz4KKworICAgIDx3dzphY3Rpb24gbmFtZT0iY29sb3JzIiBuYW1lc3BhY2U9Ii9BY3Rpb25UYWciIGV4ZWN1dGVSZXN1bHQ9InRydWUiLz4KKworICAgIDx3dzpzdWJtaXQvPgorCis8L3d3OmZvcm0+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL0FjdGlvblRhZy9SZXN1bHQuanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvQWN0aW9uVGFnL1Jlc3VsdC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRhNWRkYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL0FjdGlvblRhZy9SZXN1bHQuanNwCkBAIC0wLDAgKzEsMTkgQEAKKzwlQCB0YWdsaWIgcHJlZml4PSJ3dyIgdXJpPSIvd2Vid29yayIgJT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkNvb2tib29rIC0gQWN0aW9uIGFzIFBhZ2UgQ29udHJvbGxlcjwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iPHd3OnVybCB2YWx1ZT0iL2Nzcy9jb29rYm9vay5jc3MiIC8+Ij4KKzwvaGVhZD4KKworPGJvZHk+Cis8d3c6aW5jbHVkZSB2YWx1ZT0iL2hlYWRlci1yZXN1bHQuanNwIi8+CisKKzxoMT5JbnB1dCBSZXN1bHQ8L2gxPgorCis8dGFibGU+CisgICAgPHd3OmxhYmVsIGxhYmVsPSJGYXZvcml0ZSBMYW5ndWFnZSIgbmFtZT0iZmF2b3JpdGVMYW5ndWFnZSIvPgorICAgIDx3dzpsYWJlbCBsYWJlbD0iRmF2b3JpdGUgQ29sb3IiIG5hbWU9ImZhdm9yaXRlQ29sb3IiLz4KKzwvdGFibGU+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL0FjdGlvblRhZy9jb2xvcnMuanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvQWN0aW9uVGFnL2NvbG9ycy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFkZTQzNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL0FjdGlvblRhZy9jb2xvcnMuanNwCkBAIC0wLDAgKzEsMTAgQEAKKzwlQCB0YWdsaWIgcHJlZml4PSJ3dyIgdXJpPSIvd2Vid29yayIgJT4KKzx3dzpzZWxlY3QKKyAgICAgICAgdG9vbHRpcD0iQ2hvb3NlIFlvdXIgRmF2b3VyaXRlIENvbG9yIgorICAgICAgICBsYWJlbD0iRmF2b3JpdGUgQ29sb3IiCisgICAgICAgIGxpc3Q9InsnUmVkJywgJ0JsdWUnLCAnR3JlZW4nfSIKKyAgICAgICAgbmFtZT0iZmF2b3JpdGVDb2xvciIKKyAgICAgICAgZW1wdHlPcHRpb249InRydWUiCisgICAgICAgIGhlYWRlcktleT0iTm9uZSIKKyAgICAgICAgaGVhZGVyVmFsdWU9Ik5vbmUiLz4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvQWN0aW9uVGFnL2luZGV4LmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL0FjdGlvblRhZy9pbmRleC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZhMmNhOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL0FjdGlvblRhZy9pbmRleC5qc3AKQEAgLTAsMCArMSw1MyBAQAorPCVAIHRhZ2xpYiB1cmk9Ii93ZWJ3b3JrIiBwcmVmaXg9Ind3IiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+CisgICAgPHRpdGxlPlNvdXJjZSBDb2RlIGZvciBBY3Rpb24gYXMgUGFnZSBDb250cm9sbGVyPC90aXRsZT4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSI8d3c6dXJsIHZhbHVlPSIvY3NzL2Nvb2tib29rLmNzcyIgLz4iPgorPC9oZWFkPgorCis8Ym9keT4KKworPHd3OmluY2x1ZGUgdmFsdWU9Ii9oZWFkZXItaW5kZXguanNwIi8+CisKKzxoMT5Tb3VyY2UgQ29kZSBmb3IgQWN0aW9uIGFzIFBhZ2UgQ29udHJvbGxlcjwvaDE+Cis8aHIgbm9zaGFkZT0ibm9zaGFkZSIvPgorCis8aDI+U2VydmVyIFBhZ2VzPC9oMj4KKzx1bD48bGk+CisgICAgPGEgaHJlZj0iPHd3OnVybCBhY3Rpb249IlZpZXctSW5wdXQiLz4iPklucHV0LmpzcDwvYT4KKzwvbGk+PGxpPgorICAgIDxhIGhyZWY9Ijx3dzp1cmwgYWN0aW9uPSJWaWV3LVJlc3VsdCIvPiI+UmVzdWx0LmpzcDwvYT4KKzwvbGk+PGxpPgorICAgIDxhIGhyZWY9Ijx3dzp1cmwgYWN0aW9uPSJWaWV3LUNvbG9ycyIvPiI+Y29sb3JzLmpzcDwvYT4KKzwvbGk+PGxpPgorICAgIDxhIGhyZWY9Ijx3dzp1cmwgYWN0aW9uPSJWaWV3LUxhbmd1YWdlcyIvPiI+bGFuZ3VhZ2VzLmpzcDwvYT4KKzwvbGk+PC91bD4KKworPGgyPkFjdGlvbnM8L2gyPgorPHVsPjxsaT4KKyAgICA8YSBocmVmPSI8d3c6dXJsIGFjdGlvbj0iVmlldy1BY3Rpb24iLz4iPlJlc3VsdC5qYXZhPC9hPgorPC9saT48bGk+CisgICAgPGEgaHJlZj0iPHd3OnVybCBhY3Rpb249IlZpZXctQWN0aW9uLUxhbmd1YWdlcyIvPiI+TGFuZ3VhZ2VzLmphdmE8L2E+Cis8L2xpPjwvdWw+CisKKworPGgyPlRlc3RzPC9oMj4KKzx1bD48bGk+CisgICAgPGEgaHJlZj0iPHd3OnVybCBhY3Rpb249IlZpZXctVGVzdC1MYW5ndWFnZXMiLz4iPkxhbmd1YWdlc1Rlc3QuamF2YTwvYT4KKzwvbGk+PC91bD4KKworCis8aDI+Q29uZmlndXJhdGlvbiBmaWxlczwvaDI+Cis8dWw+PGxpPgorICAgIDxhIGhyZWY9Ijx3dzp1cmwgYWN0aW9uPSJWaWV3LUNvbmZpZyIvPiI+QWN0aW9uVGFnLWNvbmZpZy54bWw8L2E+Cis8L2xpPjwvdWw+CisKKzxoMj5PdGhlciBzb3VyY2UgZmlsZXM8L2gyPgorCis8cD5Ob25lPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvQWN0aW9uVGFnL2xhbmd1YWdlcy5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9wYWdlcy9BY3Rpb25UYWcvbGFuZ3VhZ2VzLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjdkMDRhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvQWN0aW9uVGFnL2xhbmd1YWdlcy5qc3AKQEAgLTAsMCArMSwxNCBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9Ind3IiB1cmk9Ii93ZWJ3b3JrIiAlPgorPHd3OnNlbGVjdAorICAgICAgICB0b29sdGlwPSJDaG9vc2UgWW91ciBGYXZvcml0ZSBMYW5ndWFnZSIKKyAgICAgICAgbGFiZWw9IkZhdm9yaXRlIExhbmd1YWdlIgorICAgICAgICBsaXN0PSJmYXZvcml0ZUxhbmd1YWdlcyIKKyAgICAgICAgbmFtZT0iZmF2b3JpdGVMYW5ndWFnZSIKKyAgICAgICAgbGlzdEtleT0ia2V5IgorICAgICAgICBsaXN0VmFsdWU9ImRlc2NyaXB0aW9uIgorICAgICAgICBlbXB0eU9wdGlvbj0idHJ1ZSIKKyAgICAgICAgaGVhZGVyS2V5PSJOb25lIgorICAgICAgICBoZWFkZXJWYWx1ZT0iTm9uZSIvPgorCisKKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvQnV0dG9ucy9JbnB1dC5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9wYWdlcy9CdXR0b25zL0lucHV0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTEwOGExCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvQnV0dG9ucy9JbnB1dC5qc3AKQEAgLTAsMCArMSwyNCBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9Ind3IiB1cmk9Ii93ZWJ3b3JrIiAlPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+Q29va2Jvb2sgLSBEZXRlY3RpbmcgQnV0dG9uczwvdGl0bGU+CisgICAgPHd3OmhlYWQvPgorPC9oZWFkPgorCis8Ym9keT4KKworPHd3OmZvcm0gbWV0aG9kPSJQT1NUIj4KKworICAgIDx3dzp0ZXh0ZmllbGQKKyAgICAgICAgICAgIGxhYmVsPSJNZXNzYWdlIgorICAgICAgICAgICAgbmFtZT0ibWVzc2FnZSIKKyAgICAgICAgICAgIHRvb2x0aXA9IkVudGVyIHlvdXIgdGV4dCBtZXNzYWdlIGhlcmUiLz4KKworICAgIDx3dzpzdWJtaXQgbmFtZT0iZm9yZCIgdmFsdWU9IlNlbmQgTWVzc2FnZSB0byBGb3JkIi8+CisgICAgPHd3OnN1Ym1pdCBuYW1lPSJtYXJ2aW4iIHZhbHVlPSJTZW5kIE1lc3NhZ2UgdG8gTWFydmluIi8+CisgICAgPHd3OnN1Ym1pdCBuYW1lPSJ0cmlsbGlhbiIgdmFsdWU9IlNlbmQgTWVzc2FnZSB0byBUcmlsbGlhbiIvPgorCis8L3d3OmZvcm0+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL0J1dHRvbnMvUmVzdWx0LmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL0J1dHRvbnMvUmVzdWx0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjJjNjZkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvQnV0dG9ucy9SZXN1bHQuanNwCkBAIC0wLDAgKzEsMTcgQEAKKzwlQCB0YWdsaWIgcHJlZml4PSJ3dyIgdXJpPSIvd2Vid29yayIgJT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkNvb2tib29rIC0gRGV0ZWN0aW5nIEJ1dHRvbnM8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ijx3dzp1cmwgdmFsdWU9Ii9jc3MvY29va2Jvb2suY3NzIiAvPiI+Cis8L2hlYWQ+CisKKzxib2R5PgorPHd3OmluY2x1ZGUgdmFsdWU9Ii9oZWFkZXItcmVzdWx0LmpzcCIvPgorCis8aDE+SW5wdXQgUmVzdWx0PC9oMT4KKzx0YWJsZT4KKyAgICA8d3c6bGFiZWwgbGFiZWw9Ik1lc3NhZ2UiIG5hbWU9Im1lc3NhZ2UiLz4KKyAgICA8d3c6bGFiZWwgbGFiZWw9IlNlbnQgdG8iIG5hbWU9InJlY2lwaWVudCIvPgorPC90YWJsZT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9wYWdlcy9CdXR0b25zL2luZGV4LmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL0J1dHRvbnMvaW5kZXguanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MTc1NmEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9wYWdlcy9CdXR0b25zL2luZGV4LmpzcApAQCAtMCwwICsxLDQwIEBACis8JUAgdGFnbGliIHVyaT0iL3dlYndvcmsiIHByZWZpeD0id3ciICU+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz4KKyAgICA8dGl0bGU+U291cmNlIENvZGUgZm9yIERldGVjdGluZyBCdXR0b25zPC90aXRsZT4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSI8d3c6dXJsIHZhbHVlPSIvY3NzL2Nvb2tib29rLmNzcyIgLz4iPgorPC9oZWFkPgorCis8Ym9keT4KKworPHd3OmluY2x1ZGUgdmFsdWU9Ii9oZWFkZXItaW5kZXguanNwIi8+CisKKzxoMT5Tb3VyY2UgQ29kZSBmb3IgRGV0ZWN0aW5nIEJ1dHRvbnM8L2gxPgorPGhyIG5vc2hhZGU9Im5vc2hhZGUiLz4KKworPGgyPlNlcnZlciBQYWdlczwvaDI+Cis8dWw+PGxpPgorICAgIDxhIGhyZWY9Ijx3dzp1cmwgYWN0aW9uPSJWaWV3LUlucHV0Ii8+Ij5JbnB1dC5qc3A8L2E+Cis8L2xpPjxsaT4KKyAgICA8YSBocmVmPSI8d3c6dXJsIGFjdGlvbj0iVmlldy1SZXN1bHQiLz4iPlJlc3VsdC5qc3A8L2E+Cis8L2xpPjwvdWw+CisKKzxoMj5BY3Rpb25zPC9oMj4KKzx1bD48bGk+CisgICAgPGEgaHJlZj0iPHd3OnVybCBhY3Rpb249IlZpZXctQWN0aW9uIi8+Ij5CdXR0b25zLmphdmE8L2E+Cis8L2xpPjwvdWw+CisKKzxoMj5Db25maWd1cmF0aW9uIGZpbGVzPC9oMj4KKzx1bD48bGk+CisgICAgPGEgaHJlZj0iPHd3OnVybCBhY3Rpb249IlZpZXctQ29uZmlnIi8+Ij5CdXR0b25zLWNvbmZpZy54bWw8L2E+Cis8L2xpPjwvdWw+CisKKzxoMj5PdGhlciBzb3VyY2UgZmlsZXM8L2gyPgorCis8cD5Ob25lPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8vUmVzdWx0LmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL0hlbGxvL1Jlc3VsdC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFkM2Y4ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL0hlbGxvL1Jlc3VsdC5qc3AKQEAgLTAsMCArMSwxNCBAQAorPCVAIHRhZ2xpYiB1cmk9Ii93ZWJ3b3JrIiBwcmVmaXg9Ind3IiAlPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+Q29va2Jvb2sgLSBIZWxsbyBXb3JsZDwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iPHd3OnVybCB2YWx1ZT0iL2Nzcy9jb29rYm9vay5jc3MiIC8+Ij4KKzwvaGVhZD4KKworPGJvZHk+Cis8d3c6aW5jbHVkZSB2YWx1ZT0iL2hlYWRlci1yZXN1bHQuanNwIi8+CisKKzxoMT5Eb24ndCBwYW5pYyEgU3RydXRzIGlzIG1vc3RseSBoYXJtbGVzcyAuLi48L2gxPgorCis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8vaW5kZXguanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvSGVsbG8vaW5kZXguanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0M2EwYzIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9wYWdlcy9IZWxsby9pbmRleC5qc3AKQEAgLTAsMCArMSwzNiBAQAorPCVAIHRhZ2xpYiB1cmk9Ii93ZWJ3b3JrIiBwcmVmaXg9Ind3IiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT5Tb3VyY2UgQ29kZSBmb3IgSGVsbG8gV29ybGQ8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ijx3dzp1cmwgdmFsdWU9Ii9jc3MvY29va2Jvb2suY3NzIiAvPiI+Cis8L2hlYWQ+CisKKzxib2R5PgorCis8d3c6aW5jbHVkZSB2YWx1ZT0iL2hlYWRlci1pbmRleC5qc3AiLz4KKworPGgxPlNvdXJjZSBDb2RlIGZvciBIZWxsbyBXb3JsZDwvaDE+Cis8aHIgbm9zaGFkZT0ibm9zaGFkZSIvPgorCis8aDI+U2VydmVyIFBhZ2VzPC9oMj4KKzx1bD48bGk+CisgICAgPGEgaHJlZj0iPHd3OnVybCBhY3Rpb249IlZpZXctUmVzdWx0Ii8+Ij5SZXN1bHQuanNwPC9hPgorPC9saT48L3VsPgorCis8aDI+QWN0aW9uczwvaDI+CisKKzxwPk5vbmU8L3A+CisKKzxoMj5Db25maWd1cmF0aW9uIGZpbGVzPC9oMj4KKzx1bD48bGk+CisgICAgPGEgaHJlZj0iPHd3OnVybCBhY3Rpb249IlZpZXctQ29uZmlnIi8+Ij5IZWxsby1jb25maWcueG1sPC9hPgorPC9saT48L3VsPgorCis8aDI+T3RoZXIgc291cmNlIGZpbGVzPC9oMj4KKworPHA+Tm9uZTwvcD4KKworPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL1Bvam8vSW5wdXQuanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvUG9qby9JbnB1dC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmVmZjA1ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL1Bvam8vSW5wdXQuanNwCkBAIC0wLDAgKzEsNTAgQEAKKzwlQCB0YWdsaWIgcHJlZml4PSJ3dyIgdXJpPSIvd2Vid29yayIgJT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkNvb2tib29rIC0gSW5wdXQgRm9ybSB1c2luZyBhIFBPSk88L3RpdGxlPgorICAgIDx3dzpoZWFkLz4KKzwvaGVhZD4KKworPGJvZHk+CisKKzx3dzpmb3JtIG1ldGhvZD0iUE9TVCI+CisgICAgPHd3OnRleHRmaWVsZAorICAgICAgICAgICAgbGFiZWw9IkZpcnN0IE5hbWUiCisgICAgICAgICAgICBuYW1lPSJmaXJzdG5hbWUiCisgICAgICAgICAgICB0b29sdGlwPSJFbnRlciB5b3VyIGZpcnN0IG5hbWUgaGVyZSIvPgorCisgICAgPHd3OnRleHRmaWVsZAorICAgICAgICAgICAgbGFiZWw9Ikxhc3QgTmFtZSIKKyAgICAgICAgICAgIG5hbWU9Imxhc3RuYW1lIgorICAgICAgICAgICAgdG9vbHRpcD0iRW50ZXIgeW91ciBsYXN0IG5hbWUgaGVyZSIvPgorCisgICAgPHd3OnRleHRmaWVsZAorICAgICAgICAgICAgbGFiZWw9IlRlbGVwaG9uZSIKKyAgICAgICAgICAgIG5hbWU9ImV4dGVuc2lvbiIKKyAgICAgICAgICAgIHRvb2x0aXA9IkVudGVyIHlvdXIgb2ZmaWNlIHRlbGVwaG9uZSBudW1iZXIgaGVyZSIvPgorCisgICAgPHd3OnRleHRmaWVsZAorICAgICAgICAgICAgbGFiZWw9IkVtYWlsIEFkZHJlc3MiCisgICAgICAgICAgICBuYW1lPSJ1c2VybmFtZSIKKyAgICAgICAgICAgIHRvb2x0aXA9IkVudGVyIHlvdXIgZW1haWwgYWRkcmVzcyBoZXJlIi8+CisKKyAgICA8d3c6ZGF0ZXBpY2tlcgorICAgICAgICAgICAgdG9vbHRpcD0iU2VsZWN0IHlvdXIgaGlyZSBkYXRlIgorICAgICAgICAgICAgbGFiZWw9IkhpcmUgRGF0ZSIKKyAgICAgICAgICAgIG5hbWU9ImhpcmVkIi8+CisKKyAgICA8d3c6dGV4dGZpZWxkCisgICAgICAgICAgICBsYWJlbD0iSG91cnMiCisgICAgICAgICAgICBuYW1lPSJob3VycyIKKyAgICAgICAgICAgIHRvb2x0aXA9IkVudGVyIHRoZSBudW1iZXIgb2YgaG91cnMgeW91IGFyZSBzY2hlZHVsZWQgdG8gd29yayIvPgorCisgICAgPHd3OmNoZWNrYm94CisgICAgICAgICAgICBsYWJlbD0iRWRpdG9yPyIKKyAgICAgICAgICAgIG5hbWU9ImVkaXRvciIKKyAgICAgICAgICAgIHRvb2x0aXA9IkFyZSB5b3UgYXV0aG9yaXplZCB0byBlZGl0IGRpcmVjdG9yeSBlbnRyaWVzPyIvPgorCisgICAgPHd3OnN1Ym1pdC8+Cis8L3d3OmZvcm0+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL1Bvam8vUmVzdWx0LmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL1Bvam8vUmVzdWx0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Mjk1MWM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvUG9qby9SZXN1bHQuanNwCkBAIC0wLDAgKzEsMjIgQEAKKzwlQCB0YWdsaWIgcHJlZml4PSJ3dyIgdXJpPSIvd2Vid29yayIgJT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkNvb2tib29rIC0gSW5wdXQgRm9ybSB1c2luZyBhIFBPSk88L3RpdGxlPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ijx3dzp1cmwgdmFsdWU9Ii9jc3MvY29va2Jvb2suY3NzIiAvPiI+Cis8L2hlYWQ+CisKKzxib2R5PgorPHd3OmluY2x1ZGUgdmFsdWU9Ii9oZWFkZXItcmVzdWx0LmpzcCIvPgorCis8aDE+SW5wdXQgUmVzdWx0PC9oMT4KKzx0YWJsZT4KKyAgICA8d3c6bGFiZWwgbGFiZWw9IkZpcnN0IE5hbWUiIG5hbWU9ImZpcnN0bmFtZSIvPgorICAgIDx3dzpsYWJlbCBsYWJlbD0iTGFzdCBOYW1lIiBuYW1lPSJsYXN0bmFtZSIvPgorICAgIDx3dzpsYWJlbCBsYWJlbD0iVGVsZXBob25lIiBuYW1lPSJleHRlbnNpb24iLz4KKyAgICA8d3c6bGFiZWwgbGFiZWw9IlVzZXIgTmFtZSIgbmFtZT0idXNlcm5hbWUiLz4KKyAgICA8d3c6bGFiZWwgbGFiZWw9IkhpcmVkIiBuYW1lPSJoaXJlZCIvPgorICAgIDx3dzpsYWJlbCBsYWJlbD0iSG91cnMiIG5hbWU9ImhvdXJzIi8+CisgICAgPHd3OmxhYmVsIGxhYmVsPSJFZGl0b3I/IiBuYW1lPSJlZGl0b3IiLz4KKzwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvUG9qby9pbmRleC5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9wYWdlcy9Qb2pvL2luZGV4LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDAwMjg0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvUG9qby9pbmRleC5qc3AKQEAgLTAsMCArMSw0MCBAQAorPCVAIHRhZ2xpYiB1cmk9Ii93ZWJ3b3JrIiBwcmVmaXg9Ind3IiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+CisgICAgPHRpdGxlPlNvdXJjZSBDb2RlIGZvciBJbnB1dCBGb3JtIHVzaW5nIGEgUE9KTzwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iPHd3OnVybCB2YWx1ZT0iL2Nzcy9jb29rYm9vay5jc3MiIC8+Ij4KKzwvaGVhZD4KKworPGJvZHk+CisKKzx3dzppbmNsdWRlIHZhbHVlPSIvaGVhZGVyLWluZGV4LmpzcCIvPgorCis8aDE+U291cmNlIENvZGUgZm9yIElucHV0IEZvcm0gdXNpbmcgYSBQT0pPPC9oMT4KKzxociBub3NoYWRlPSJub3NoYWRlIi8+CisKKzxoMj5TZXJ2ZXIgUGFnZXM8L2gyPgorPHVsPjxsaT4KKyAgICA8YSBocmVmPSI8d3c6dXJsIGFjdGlvbj0iVmlldy1JbnB1dCIvPiI+SW5wdXQuanNwPC9hPgorPC9saT48bGk+CisgICAgPGEgaHJlZj0iPHd3OnVybCBhY3Rpb249IlZpZXctUmVzdWx0Ii8+Ij5SZXN1bHQuanNwPC9hPgorPC9saT48L3VsPgorCis8aDI+QWN0aW9uczwvaDI+Cis8dWw+PGxpPgorICAgIDxhIGhyZWY9Ijx3dzp1cmwgYWN0aW9uPSJWaWV3LUFjdGlvbi1FbnRyeSIvPiI+RGlyZWN0b3J5RW50cnkuamF2YTwvYT4KKzwvbGk+PC91bD4KKworPGgyPkNvbmZpZ3VyYXRpb24gZmlsZXM8L2gyPgorPHVsPjxsaT4KKyAgICA8YSBocmVmPSI8d3c6dXJsIGFjdGlvbj0iVmlldy1Db25maWciLz4iPlBvam8tY29uZmlnLnhtbDwvYT4KKzwvbGk+PC91bD4KKworPGgyPk90aGVyIHNvdXJjZSBmaWxlczwvaDI+CisKKzxwPk5vbmU8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9wYWdlcy9TZWxlY3QvSW5wdXQuanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvU2VsZWN0L0lucHV0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTg0Y2FiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvU2VsZWN0L0lucHV0LmpzcApAQCAtMCwwICsxLDExNCBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9Ind3IiB1cmk9Ii93ZWJ3b3JrIiAlPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+Q29va2Jvb2sgLSBDb21wbGV4IElucHV0IEZvcm0gdXNpbmcgU2VsZWN0IENvbnRyb2xzPC90aXRsZT4KKyAgICA8d3c6aGVhZC8+Cis8L2hlYWQ+CisKKzxib2R5PgorCis8d3c6Zm9ybSBtZXRob2Q9IlBPU1QiPgorPHd3OnRleHRmaWVsZAorICAgICAgICBsYWJlbD0iTmFtZSIKKyAgICAgICAgbmFtZT0ibmFtZSIKKyAgICAgICAgdG9vbHRpcD0iRW50ZXIgeW91ciBOYW1lIGhlcmUiLz4KKworPHd3OmRhdGVwaWNrZXIKKyAgICAgICAgdG9vbHRpcD0iU2VsZWN0IFlvdXIgQmlydGhkYXkiCisgICAgICAgIGxhYmVsPSJCaXJ0aGRheSIKKyAgICAgICAgbmFtZT0iYmlydGhkYXkiLz4KKworPHd3OnRleHRhcmVhCisgICAgICAgIHRvb2x0aXA9IkVudGVyIHlvdXIgQmlvZ3JhcGh5IgorICAgICAgICBsYWJlbD0iQmlvZ3JhcGgiCisgICAgICAgIG5hbWU9ImJpbyIKKyAgICAgICAgY29scz0iMjAiCisgICAgICAgIHJvd3M9IjMiLz4KKworPHd3OnNlbGVjdAorICAgICAgICB0b29sdGlwPSJDaG9vc2UgWW91ciBGYXZvdXJpdGUgQ29sb3IiCisgICAgICAgIGxhYmVsPSJGYXZvcml0ZSBDb2xvciIKKyAgICAgICAgbGlzdD0ieydSZWQnLCAnQmx1ZScsICdHcmVlbid9IgorICAgICAgICBuYW1lPSJmYXZvcml0ZUNvbG9yIgorICAgICAgICBlbXB0eU9wdGlvbj0idHJ1ZSIKKyAgICAgICAgaGVhZGVyS2V5PSJOb25lIgorICAgICAgICBoZWFkZXJWYWx1ZT0iTm9uZSIvPgorCis8d3c6c2VsZWN0CisgICAgICAgIHRvb2x0aXA9IkNob29zZSBZb3VyIEZhdm91cml0ZSBMYW5ndWFnZSIKKyAgICAgICAgbGFiZWw9IkZhdm91cml0ZSBMYW5ndWFnZSIKKyAgICAgICAgbGlzdD0iZmF2b3VyaXRlTGFuZ3VhZ2VzIgorICAgICAgICBuYW1lPSJmYXZvdXJpdGVMYW5ndWFnZSIKKyAgICAgICAgbGlzdEtleT0ia2V5IgorICAgICAgICBsaXN0VmFsdWU9ImRlc2NyaXB0aW9uIgorICAgICAgICBlbXB0eU9wdGlvbj0idHJ1ZSIKKyAgICAgICAgaGVhZGVyS2V5PSJOb25lIgorICAgICAgICBoZWFkZXJWYWx1ZT0iTm9uZSIvPgorCis8d3c6Y2hlY2tib3hsaXN0CisgICAgICAgIHRvb2x0aXA9IkNob29zZSB5b3VyIEZyaWVuZHMiCisgICAgICAgIGxhYmVsPSJGcmllbmRzIgorICAgICAgICBsaXN0PSJ7J1BhdHJpY2snLCAnSmFzb24nLCAnSmF5JywgJ1RvYnknLCAnUmVuZSd9IgorICAgICAgICBuYW1lPSJmcmllbmRzIi8+CisKKzx3dzpjaGVja2JveAorICAgICAgICB0b29sdGlwPSJDb25maXJtZWQgdGhhdCB5b3VyIGFyZSBPdmVyIDE4IgorICAgICAgICBsYWJlbD0iQWdlIDE4KyIKKyAgICAgICAgbmFtZT0ibGVnYWxBZ2UiLz4KKworPHd3OmRvdWJsZXNlbGVjdAorICAgICAgICB0b29sdGlwPSJDaG9vc2UgWW91ciBTdGF0ZSIKKyAgICAgICAgbGFiZWw9IlN0YXRlIgorICAgICAgICBuYW1lPSJyZWdpb24iIGxpc3Q9InsnTm9ydGgnLCAnU291dGgnfSIKKyAgICAgICAgdmFsdWU9IidTb3V0aCciCisgICAgICAgIGRvdWJsZVZhbHVlPSInRmxvcmlkYSciCisgICAgICAgIGRvdWJsZUxpc3Q9InRvcCA9PSAnTm9ydGgnID8geydPcmVnb24nLCAnV2FzaGluZ3Rvbid9IDogeydUZXhhcycsICdGbG9yaWRhJ30iCisgICAgICAgIGRvdWJsZU5hbWU9InN0YXRlIgorICAgICAgICBoZWFkZXJLZXk9Ii0xIgorICAgICAgICBoZWFkZXJWYWx1ZT0iLS0tLS0tLS0tLSBQbGVhc2UgU2VsZWN0IC0tLS0tLS0tLS0iCisgICAgICAgIGVtcHR5T3B0aW9uPSJ0cnVlIi8+CisKKzx3dzpkb3VibGVzZWxlY3QKKyAgICAgICAgdG9vbHRpcD0iQ2hvb3NlIHlvdXIgVmVoaWNsZSIKKyAgICAgICAgbGFiZWw9IkZhdm91cml0ZSBWZWhpY2FsIgorICAgICAgICBuYW1lPSJmYXZvdXJpdGVWZWhpY2FsVHlwZSIKKyAgICAgICAgbGlzdD0idmVoaWNhbFR5cGVMaXN0IgorICAgICAgICBsaXN0S2V5PSJrZXkiCisgICAgICAgIGxpc3RWYWx1ZT0iZGVzY3JpcHRpb24iCisgICAgICAgIHZhbHVlPSInTW90b3JjeWNsZUtleSciCisgICAgICAgIGRvdWJsZVZhbHVlPSInWWFtYWhhS2V5JyIKKyAgICAgICAgZG91YmxlTGlzdD0idmVoaWNhbFNwZWNpZmljTGlzdCIKKyAgICAgICAgZG91YmxlTGlzdEtleT0ia2V5IgorICAgICAgICBkb3VibGVMaXN0VmFsdWU9ImRlc2NyaXB0aW9uIgorICAgICAgICBkb3VibGVOYW1lPSJmYXZvdXJpdGVWZWhpY2FsU3BlY2lmaWMiIGhlYWRlcktleT0iLTEiCisgICAgICAgIGhlYWRlclZhbHVlPSItLS0tLS0tLS0tIFBsZWFzZSBTZWxlY3QgLS0tLS0tLS0tLSIKKyAgICAgICAgZW1wdHlPcHRpb249InRydWUiLz4KKworPHd3OmZpbGUKKyAgICAgICAgdG9vbHRpcD0iVXBsb2FkIFlvdXIgUGljdHVyZSIKKyAgICAgICAgbGFiZWw9IlBpY3R1cmUiCisgICAgICAgIG5hbWU9InBpY3R1cmUiLz4KKworPHd3Om9wdGlvbnRyYW5zZmVyc2VsZWN0CisgICAgICAgIHRvb2x0aXA9IlNlbGVjdCBZb3VyIEZhdm91cml0ZSBDYXJ0b29uIENoYXJhY3RlcnMiCisgICAgICAgIGxhYmVsPSJGYXZvdXJpdGUgQ2FydG9vbnMgQ2hhcmFjdGVycyIKKyAgICAgICAgbmFtZT0ibGVmdFNpZGVDYXJ0b29uQ2hhcmFjdGVycyIKKyAgICAgICAgbGVmdFRpdGxlPSJMZWZ0IFRpdGxlIgorICAgICAgICByaWdodFRpdGxlPSJSaWdodCBUaXRsZSIKKyAgICAgICAgbGlzdD0ieydQb3BleWUnLCAnSGUtTWFuJywgJ1NwaWRlcm1hbid9IgorICAgICAgICBtdWx0aXBsZT0idHJ1ZSIKKyAgICAgICAgaGVhZGVyS2V5PSJoZWFkZXJLZXkiCisgICAgICAgIGhlYWRlclZhbHVlPSItLS0gUGxlYXNlIFNlbGVjdCAtLS0iCisgICAgICAgIGVtcHR5T3B0aW9uPSJ0cnVlIgorICAgICAgICBkb3VibGVMaXN0PSJ7J1N1cGVybWFuJywgJ01pY2tleSBNb3VzZScsICdEb25hbGQgRHVjayd9IgorICAgICAgICBkb3VibGVOYW1lPSJyaWdodFNpZGVDYXJ0b29uQ2hhcmFjdGVycyIKKyAgICAgICAgZG91YmxlSGVhZGVyS2V5PSJkb3VibGVIZWFkZXJLZXkiCisgICAgICAgIGRvdWJsZUhlYWRlclZhbHVlPSItLS0gUGxlYXNlIFNlbGVjdCAtLS0iCisgICAgICAgIGRvdWJsZUVtcHR5T3B0aW9uPSJ0cnVlIgorICAgICAgICBkb3VibGVNdWx0aXBsZT0idHJ1ZSIvPgorCis8d3c6c3VibWl0IG9uY2xpY2s9ImFsZXJ0KCdEb24ndCBQYW5pYyEgKEp1c3QgcHJlc3MgT0sgdG8gY29udGludWUpJyk7Ii8+Cis8L3d3OmZvcm0+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9wYWdlcy9TZWxlY3QvUmVzdWx0LmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9jb29rYm9vay9zcmMvd2ViYXBwL3BhZ2VzL1NlbGVjdC9SZXN1bHQuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlZGEzOTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9wYWdlcy9TZWxlY3QvUmVzdWx0LmpzcApAQCAtMCwwICsxLDQ0IEBACis8JUAgdGFnbGliIHByZWZpeD0id3ciIHVyaT0iL3dlYndvcmsiICU+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5Db29rYm9vayAtIENvbXBsZXggSW5wdXQgRm9ybSB1c2luZyBTZWxlY3QgQ29udHJvbHM8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ijx3dzp1cmwgdmFsdWU9Ii9jc3MvY29va2Jvb2suY3NzIiAvPiI+Cis8L2hlYWQ+CisKKzxib2R5PgorPHd3OmluY2x1ZGUgdmFsdWU9Ii9oZWFkZXItcmVzdWx0LmpzcCIvPgorCis8aDE+SW5wdXQgUmVzdWx0PC9oMT4KKzx0YWJsZT4KKyAgICA8d3c6bGFiZWwgbGFiZWw9Ik5hbWUiIG5hbWU9Im5hbWUiLz4KKyAgICA8d3c6bGFiZWwgbGFiZWw9IkJpcnRoZGF5IiBuYW1lPSJiaXJ0aGRheSIvPgorICAgIDx3dzpsYWJlbCBsYWJlbD0iQmlvZ3JhcGh5IiBuYW1lPSJiaW8iLz4KKyAgICA8d3c6bGFiZWwgbGFiZWw9IkZhdm91cml0ZSBDb2xvciIgbmFtZT0iZmF2b3VyaXRlQ29sb3IiLz4KKyAgICA8d3c6bGFiZWwgbGFiZWw9IkZyaWVuZHMiIG5hbWU9ImZyaWVuZHMiLz4KKyAgICA8d3c6bGFiZWwgbGFiZWw9IkxlZ2FsIEFnZSIgbmFtZT0ibGVnYWxBZ2UiLz4KKyAgICA8d3c6bGFiZWwgbGFiZWw9IlJlZ2lvbiIgbmFtZT0icmVnaW9uIi8+CisgICAgPHd3OmxhYmVsIGxhYmVsPSJTdGF0ZSIgbmFtZT0ic3RhdGUiLz4KKyAgICA8d3c6bGFiZWwgbGFiZWw9IlBpY3R1cmUiIG5hbWU9InBpY3R1cmUiLz4KKyAgICA8d3c6bGFiZWwgbGFiZWw9IkZhdm91cml0ZSBMYW5ndWFnZSIgbmFtZT0iZmF2b3VyaXRlTGFuZ3VhZ2UiLz4KKyAgICA8d3c6bGFiZWwgbGFiZWw9IkZhdm91cml0ZSBWZWhpY2FsIFR5cGUiIG5hbWU9ImZhdm91cml0ZVZlaGljYWxUeXBlIi8+CisgICAgPHd3OmxhYmVsIGxhYmVsPSJGYXZvdXJpdGUgVmVoaWNhbCBTcGVjaWZpYyIgbmFtZT0iZmF2b3VyaXRlVmVoaWNhbFNwZWNpZmljIi8+CisgICAgPHRyPgorICAgICAgICA8dGQ+RmF2b3VyaXRlIENhcnRvb24gQ2hhcmFjdGVycyAoTGVmdCk6PC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgICAgPHd3Oml0ZXJhdG9yIHZhbHVlPSJsZWZ0U2lkZUNhcnRvb25DaGFyYWN0ZXJzIiBzdGF0dXM9InN0YXQiPgorICAgICAgICAgICAgICAgIDx3dzpwcm9wZXJ0eSB2YWx1ZT0iJXsjc3RhdC5jb3VudH0iLz4uPHd3OnByb3BlcnR5IHZhbHVlPSJ0b3AiLz4mbmJzcDsKKyAgICAgICAgICAgIDwvd3c6aXRlcmF0b3I+CisgICAgICAgIDwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICAgIDx0ZD5GYXZvdXJpdGUgQ2FydG9vbiBDaGFyYWN0ZXJzIChSaWdodCk6PC90ZD4KKyAgICAgICAgPHRkPgorICAgICAgICAgICAgPHd3Oml0ZXJhdG9yIHZhbHVlPSJyaWdodFNpZGVDYXJ0b29uQ2hhcmFjdGVycyIgc3RhdHVzPSJzdGF0Ij4KKyAgICAgICAgICAgICAgICA8d3c6cHJvcGVydHkgdmFsdWU9IiV7I3N0YXQuY291bnR9Ii8+Ljx3dzpwcm9wZXJ0eSB2YWx1ZT0idG9wIi8+Jm5ic3A7CisgICAgICAgICAgICA8L3d3Oml0ZXJhdG9yPgorICAgICAgICA8L3RkPgorICAgIDwvdHI+Cis8L3RhYmxlPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9wYWdlcy9TZWxlY3QvaW5kZXguanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvU2VsZWN0L2luZGV4LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2VhMDZjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvU2VsZWN0L2luZGV4LmpzcApAQCAtMCwwICsxLDQwIEBACis8JUAgdGFnbGliIHVyaT0iL3dlYndvcmsiIHByZWZpeD0id3ciICU+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz4KKyAgICA8dGl0bGU+U291cmNlIENvZGUgZm9yIENvbXBsZXggSW5wdXQgRm9ybSB1c2luZyBTZWxlY3QgQ29udHJvbHM8L3RpdGxlPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ijx3dzp1cmwgdmFsdWU9Ii9jc3MvY29va2Jvb2suY3NzIiAvPiI+Cis8L2hlYWQ+CisKKzxib2R5PgorCis8d3c6aW5jbHVkZSB2YWx1ZT0iL2hlYWRlci1pbmRleC5qc3AiLz4KKworPGgxPlNvdXJjZSBDb2RlIGZvciBDb21wbGV4IElucHV0IEZvcm0gdXNpbmcgU2VsZWN0IENvbnRyb2xzPC9oMT4KKzxociBub3NoYWRlPSJub3NoYWRlIi8+CisKKzxoMj5TZXJ2ZXIgUGFnZXM8L2gyPgorPHVsPjxsaT4KKyAgICA8YSBocmVmPSI8d3c6dXJsIGFjdGlvbj0iVmlldy1JbnB1dCIvPiI+SW5wdXQuanNwPC9hPgorPC9saT48bGk+CisgICAgPGEgaHJlZj0iPHd3OnVybCBhY3Rpb249IlZpZXctUmVzdWx0Ii8+Ij5SZXN1bHQuanNwPC9hPgorPC9saT48L3VsPgorCis8aDI+QWN0aW9uczwvaDI+Cis8dWw+PGxpPgorICAgIDxhIGhyZWY9Ijx3dzp1cmwgYWN0aW9uPSJWaWV3LUFjdGlvbiIvPiI+U2VsZWN0LmphdmE8L2E+Cis8L2xpPjwvdWw+CisKKzxoMj5Db25maWd1cmF0aW9uIGZpbGVzPC9oMj4KKzx1bD48bGk+CisgICAgPGEgaHJlZj0iPHd3OnVybCBhY3Rpb249IlZpZXctQ29uZmlnIi8+Ij5TZWxlY3QtY29uZmlnLnhtbDwvYT4KKzwvbGk+PC91bD4KKworPGgyPk90aGVyIHNvdXJjZSBmaWxlczwvaDI+CisKKzxwPk5vbmU8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9wYWdlcy9TaW1wbGUvSW5wdXQuanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvU2ltcGxlL0lucHV0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDkwMGI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvU2ltcGxlL0lucHV0LmpzcApAQCAtMCwwICsxLDE0IEBACis8JUAgdGFnbGliIHByZWZpeD0id3ciIHVyaT0iL3dlYndvcmsiICU+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5Db29rYm9vayAtIFNpbXBsZSBJbnB1dCBGb3JtIHVzaW5nIEFjdGlvbiBQcm9wZXJ0aWVzPC90aXRsZT4KKyAgICA8d3c6aGVhZC8+Cis8L2hlYWQ+CisKKzxib2R5PgorPHd3OmZvcm0gbWV0aG9kPSJQT1NUIj4KKyAgICA8d3c6dGV4dGZpZWxkIGxhYmVsPSJQbGVhc2UgZW50ZXIgeW91ciBuYW1lIiBuYW1lPSJuYW1lIi8+CisgICAgPHd3OnN1Ym1pdC8+Cis8L3d3OmZvcm0+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvU2ltcGxlL1Jlc3VsdC5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9wYWdlcy9TaW1wbGUvUmVzdWx0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGRkY2U5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvU2ltcGxlL1Jlc3VsdC5qc3AKQEAgLTAsMCArMSwxNSBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9Ind3IiB1cmk9Ii93ZWJ3b3JrIiAlPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+Q29va2Jvb2sgLSBTaW1wbGUgSW5wdXQgRm9ybSB1c2luZyBBY3Rpb24gUHJvcGVydGllczwvdGl0bGU+Cis8L2hlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSI8d3c6dXJsIHZhbHVlPSIvY3NzL2Nvb2tib29rLmNzcyIgLz4iPgorCis8Ym9keT4KKzx3dzppbmNsdWRlIHZhbHVlPSIvaGVhZGVyLXJlc3VsdC5qc3AiLz4KKworPGgxPkRvbid0IHBhbmljIDx3dzpwcm9wZXJ0eSB2YWx1ZT0ibmFtZSIvPiEKKyAgICBTdHJ1dHMgaXMgbW9zdGx5IGhhcm1sZXNzIC4uLjwvaDE+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvY29va2Jvb2svc3JjL3dlYmFwcC9wYWdlcy9TaW1wbGUvaW5kZXguanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvU2ltcGxlL2luZGV4LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjEyMWUxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL2Nvb2tib29rL3NyYy93ZWJhcHAvcGFnZXMvU2ltcGxlL2luZGV4LmpzcApAQCAtMCwwICsxLDQyIEBACis8JUAgdGFnbGliIHVyaT0iL3dlYndvcmsiIHByZWZpeD0id3ciICU+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz4KKyAgICA8dGl0bGU+U291cmNlIENvZGUgZm9yIFNpbXBsZSBJbnB1dCBGb3JtIHVzaW5nIEFjdGlvbiBQcm9wZXJ0aWVzPC90aXRsZT4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSI8d3c6dXJsIHZhbHVlPSIvY3NzL2Nvb2tib29rLmNzcyIgLz4iPgorPC9oZWFkPgorCis8Ym9keT4KKworPHd3OmluY2x1ZGUgdmFsdWU9Ii9oZWFkZXItaW5kZXguanNwIi8+CisKKzxoMT5Tb3VyY2UgQ29kZSBmb3IgU2ltcGxlIElucHV0IEZvcm0gdXNpbmcgQWN0aW9uIFByb3BlcnRpZXM8L2gxPgorPGhyIG5vc2hhZGU9Im5vc2hhZGUiLz4KKworPGgyPlNlcnZlciBQYWdlczwvaDI+Cis8dWw+PGxpPgorICAgIDxhIGhyZWY9Ijx3dzp1cmwgYWN0aW9uPSJWaWV3LUlucHV0Ii8+Ij5JbnB1dC5qc3A8L2E+Cis8L2xpPjxsaT4KKyAgICA8YSBocmVmPSI8d3c6dXJsIGFjdGlvbj0iVmlldy1SZXN1bHQiLz4iPlJlc3VsdC5qc3A8L2E+Cis8L2xpPjwvdWw+CisKKzxoMj5BY3Rpb25zPC9oMj4KKzx1bD48bGk+CisgICAgPGEgaHJlZj0iPHd3OnVybCBhY3Rpb249IlZpZXctQWN0aW9uIi8+Ij5TaW1wbGUuamF2YTwvYT4KKzwvbGk+PC91bD4KKworPGgyPkNvbmZpZ3VyYXRpb24gZmlsZXM8L2gyPgorPHVsPjxsaT4KKyAgICA8YSBocmVmPSI8d3c6dXJsIGFjdGlvbj0iVmlldy1Db25maWciLz4iPlNpbXBsZS1jb25maWcueG1sPC9hPgorPC9saT48bGk+CisgICAgPGEgaHJlZj0iPHd3OnVybCBhY3Rpb249IlZpZXctVmFsaWRhdGlvbiIvPiI+U2ltcGxlLXZhbGlkYXRpb24ueG1sPC9hPgorPC9saT48L3VsPgorCis8aDI+T3RoZXIgc291cmNlIGZpbGVzPC9oMj4KKworPHA+Tm9uZTwvcD4KKworPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvUkVBRE1FLnR4dCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvUkVBRE1FLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjNiYzdjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9SRUFETUUudHh0CkBAIC0wLDAgKzEsMjYgQEAKK1JFQURNRS50eHQgLSBtYWlscmVhZGVyLWJhbmcgDQorDQorVGhlIE1haWxSZWFkZXIgZGVtb25zdHJhdGVzIGEgbG9jYWxpemVkIGFwcGxpY2F0aW9uIHdpdGggYSBtYXN0ZXIvY2hpbGQgDQorQ1JVRCB3b3JrZmxvdy4gDQorDQorVGhpcyByZW5kaXRpb24gYWxzbyBkZW1vbnN0cmF0ZXMgc3dpdGNoaW5nIGZyb20gdGhlICJiYW5nIiBzeW50YXggZm9yIA0KK2ludm9raW5nIGR5bmFtaWMgbWV0aG9kcyB0byBhIGdlbmVyYWwtcHVycG9zZSB3aWxkIGNhcmQgYXBwcm9hY2guIA0KKw0KK1RvIHN3aXRjaCBiZXR3ZWVuIGFwcHJvYWNoZXMsIGVkaXQgdGhlIHN0cnV0cy54bWwgZmlsZSB0byBpbmNsdWRlIGVpdGhlciANCit0aGUgc3RydXRzLWJhbmcueG1sIGZpbGUgT1IgdGhlIHN0cnV0cy13aWxkY2FyZC54bWwuIChCdXQgbm90IGJvdGguKQ0KKw0KK1doZW4gdXNpbmcgdGhlIC1iYW5nIGFwcGxpY2F0aW9uLCBiZSBzdXJlIHRoYXQgdGhlIA0KK3N0cnV0cy5lbmFibGUuRHluYW1pY01ldGhvZEludm9jYXRpb24gcHJvcGVydHkgaXMgc2V0IHRvICJ0cnVlIi4NCisNCitGb3IgdGhlIC13aWxjYXJkIGFwcGxpY2F0aW9uLiBiZSBzdXJlIHRoYXQgdGhlIA0KK3N0cnV0cy5lbmFibGUuRHluYW1pY01ldGhvZEludm9jYXRpb24gcHJvcGVydHkgaXMgc2V0IHRvICJmYWxzZSIuIA0KKw0KK1NlZSB0aGUgU2FuZGJveCBmb3Igb3RoZXIgTWFpbFJlYWRlciBleGFtcGxlcyB1c2luZyBvdGhlciBhcmNoaXRlY3R1cmVzLiANCisNCisqIGh0dHA6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvc3RydXRzL3NhbmRib3gvdHJ1bmsvc3RydXRzMi9hcHBzLw0KKw0KK0ZvciBtb3JlIGFib3V0IHRoZSBNYWlsUmVhZGVyIGFwcGxpY2F0b24gZ2VubmVyYWx5LCB2aXNpdCBTdHJ1dHMgVW5pdmVyc2l0eS4NCisNCisqIGh0dHA6Ly93d3cuU3RydXRzVW5pdmVyc2l0eS5vcmcvDQorDQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvcG9tLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvcG9tLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDkxNWUyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9wb20ueG1sCkBAIC0wLDAgKzEsNDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgorICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4tdjRfMF8wLnhzZCI+CisgICAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICAgIDxwYXJlbnQ+CisgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLnN0cnV0czwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPnN0cnV0czItYXBwczwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjIuMC1TTkFQU0hPVDwvdmVyc2lvbj4KKyAgICA8L3BhcmVudD4KKyAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLnN0cnV0czwvZ3JvdXBJZD4KKyAgICA8YXJ0aWZhY3RJZD5zdHJ1dHMyLW1haWxyZWFkZXI8L2FydGlmYWN0SWQ+CisgICAgPHBhY2thZ2luZz53YXI8L3BhY2thZ2luZz4KKyAgICA8bmFtZT5TdGFydGVyIFdlYmFwcDwvbmFtZT4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgIAorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgPGdyb3VwSWQ+amF2YXguc2VydmxldDwvZ3JvdXBJZD4KKyAgICAgICAgICAgPGFydGlmYWN0SWQ+c2VydmxldC1hcGk8L2FydGlmYWN0SWQ+CisgICAgICAgICAgIDx2ZXJzaW9uPjIuNDwvdmVyc2lvbj4KKyAgICAgICAgICAgPHNjb3BlPnByb3ZpZGVkPC9zY29wZT4KKyAgICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICAgPGdyb3VwSWQ+JHtwb20uZ3JvdXBJZH08L2dyb3VwSWQ+CisgICAgICAgICAgIDxhcnRpZmFjdElkPnN0cnV0cy1tYWlscmVhZGVyLWRhbzwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgPHZlcnNpb24+MS4zLjUtU05BUFNIT1Q8L3ZlcnNpb24+CisgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAKKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICAKKyAgICA8YnVpbGQ+CisgICAgCTxwbHVnaW5zPgorICAgIAkJPHBsdWdpbj4KKyAgICAJCQk8Z3JvdXBJZD5vcmcubW9ydGJheS5qZXR0eTwvZ3JvdXBJZD4KKyAgICAJCQk8YXJ0aWZhY3RJZD5tYXZlbi1qZXR0eTYtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgIAkJCTxjb25maWd1cmF0aW9uPgorICAgIAkJCQk8c2NhbkludGVydmFsU2Vjb25kcz4xMDwvc2NhbkludGVydmFsU2Vjb25kcz4KKyAgICAJCQk8L2NvbmZpZ3VyYXRpb24+CisgICAgCQkJPGRlcGVuZGVuY2llcz4KKyAgICAJCQkJPGRlcGVuZGVuY3k+CisgICAgCQkJCQk8Z3JvdXBJZD5vcmcuYXBhY2hlLmdlcm9uaW1vLnNwZWNzPC9ncm91cElkPgorICAgIAkJCQkJPGFydGlmYWN0SWQ+Z2Vyb25pbW8tajJlZV8xLjRfc3BlYzwvYXJ0aWZhY3RJZD4KKyAgICAJCQkJCTx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAJCQkJCTxzY29wZT5wcm92aWRlZDwvc2NvcGU+CisgICAgCQkJCTwvZGVwZW5kZW5jeT4KKyAgICAJCQk8L2RlcGVuZGVuY2llcz4KKyAgICAJCTwvcGx1Z2luPgorICAgIAk8L3BsdWdpbnM+CisgICAgPC9idWlsZD4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9BcHBsaWNhdGlvbkxpc3RlbmVyLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvQXBwbGljYXRpb25MaXN0ZW5lci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzMmZiNzEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvQXBwbGljYXRpb25MaXN0ZW5lci5qYXZhCkBAIC0wLDAgKzEsMjMxIEBACisvKgorICogQ29weXJpZ2h0IDE5OTktMjAwMiwyMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogJElkOiBBcHBsaWNhdGlvbkxpc3RlbmVyLmphdmEgMzcyMDg3IDIwMDYtMDEtMjUgMDM6Mzg6NDJaIGNyYWlnbWNjICQKKyAqLworCitwYWNrYWdlIG1haWxyZWFkZXIyOworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZ0ZhY3Rvcnk7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5pbXBsLm1lbW9yeS5NZW1vcnlVc2VyRGF0YWJhc2U7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHRFdmVudDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0TGlzdGVuZXI7CitpbXBvcnQgamF2YS5pby4qOworCisvKioKKyAqIDxwPjxjb2RlPlNlcnZsZXRDb250ZXh0TGlzdGVuZXI8L2NvZGU+IHRoYXQgaW5pdGlhbGl6ZXMgYW5kIGZpbmFsaXplcyB0aGUKKyAqIHBlcnNpc3RlbnQgc3RvcmFnZSBvZiBVc2VyIGFuZCBTdWJzY3JpcHRpb24gaW5mb3JtYXRpb24gZm9yIHRoZSBTdHJ1dHMKKyAqIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24sIHVzaW5nIGFuIGluLW1lbW9yeSBkYXRhYmFzZSBiYWNrZWQgYnkgYW4gWE1MCisgKiBmaWxlLjwvcD4KKyAqIDxwLz4KKyAqIDxwPjxzdHJvbmc+SU1QTEVNRU5UQVRJT04gV0FSTklORzwvc3Ryb25nPiAtIElmIHRoaXMgd2ViIGFwcGxpY2F0aW9uIGlzIHJ1bgorICogZnJvbSBhIFdBUiBmaWxlLCBvciBpbiBhbm90aGVyIGVudmlyb25tZW50IHdoZXJlIHJlYWRpbmcgYW5kIHdyaXRpbmcgb2YgdGhlCisgKiB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgaXMgaW1wb3NzaWJsZSwgdGhlIGluaXRpYWwgY29udGVudHMgd2lsbCBiZSBjb3BpZWQKKyAqIHRvIGEgZmlsZSBpbiB0aGUgd2ViIGFwcGxpY2F0aW9uIHRlbXBvcmFyeSBkaXJlY3RvcnkgcHJvdmlkZWQgYnkgdGhlCisgKiBjb250YWluZXIuICBUaGlzIGlzIGZvciBkZW1vbnN0cmF0aW9uIHB1cnBvc2VzIG9ubHkgLSB5b3Ugc2hvdWxkCisgKiA8c3Ryb25nPk5PVDwvc3Ryb25nPiBhc3N1bWUgdGhhdCBmaWxlcyB3cml0dGVuIGhlcmUgd2lsbCBzdXJ2aXZlIGEgcmVzdGFydAorICogb2YgeW91ciBzZXJ2bGV0IGNvbnRhaW5lci48L3A+CisgKiA8cC8+CisgKiA8cD5UaGlzIGNsYXNzIHdhcyBib3Jyb3dlZCBmcm9tIHRoZSBTaGFsZSBNYWlscmVhZGVyLiBDaGFuZ2VzIHdlcmU6PC9wPgorICogPHAvPgorICogPHVsPgorICogPHAvPgorICogPGxpPlBhdGggdG8gZGF0YWJhc2UueG1sICh1bmRlciBjbGFzc2VzIGhlcmUpLiA8L2xpPgorICogPHAvPgorICogPGxpPkNsYXNzIHRvIHN0b3JlIHByb3RvY29sIGxpc3QgKGFuIGFycmF5IGhlcmUpLiA8L2xpPgorICogPHAvPgorICogPC91bD4KKyAqIDxwPgorICogREVWRUxPUE1FTlQgTk9URSAtIEFub3RoZXIgYXBwcm9hY2ggd291bGQgYmUgdG8gaW5zdGFudGlhdGUgdGhlIGRhdGFiYXNlIHZpYSBTcHJpbmcuCisgKiA8L3A+CisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIEFwcGxpY2F0aW9uTGlzdGVuZXIgaW1wbGVtZW50cyBTZXJ2bGV0Q29udGV4dExpc3RlbmVyIHsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNYW5pZmVzdCBDb25zdGFudHMKKworCisgICAgLyoqCisgICAgICogPHA+QXBwaWNhdGlvbiBzY29wZSBhdHRyaWJ1dGUga2V5IHVuZGVyIHdoaWNoIHRoZSBpbi1tZW1vcnkgdmVyc2lvbiBvZgorICAgICAqIG91ciBkYXRhYmFzZSBpcyBzdG9yZWQuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFCQVNFX0tFWSA9ICJkYXRhYmFzZSI7CisKKworICAgIC8qKgorICAgICAqIDxwPkFwcGxpY2F0aW9uIHNjb3BlIGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggdGhlIHZhbGlkIHNlbGVjdGlvbgorICAgICAqIGl0ZW1zIGZvciB0aGUgcHJvdG9jb2wgcHJvcGVydHkgaXMgc3RvcmVkLjwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQUk9UT0NPTFNfS0VZID0gInByb3RvY29scyI7CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSW5zdGFuY2UgVmFyaWFibGVzCisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSA8Y29kZT5TZXJ2bGV0Q29udGV4dDwvY29kZT4gZm9yIHRoaXMgd2ViIGFwcGxpY2F0aW9uLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFNlcnZsZXRDb250ZXh0IGNvbnRleHQgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiBUaGUge0BsaW5rIE1lbW9yeVVzZXJEYXRhYmFzZX0gb2JqZWN0IHdlIGNvbnN0cnVjdCBhbmQgbWFrZSBhdmFpbGFibGUuCisgICAgICovCisgICAgcHJpdmF0ZSBNZW1vcnlVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiA8cD5Mb2dnaW5nIG91dHB1dCBmb3IgdGhpcyBwbHVnIGluIGluc3RhbmNlLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyh0aGlzLmdldENsYXNzKCkpOworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm9wZXJ0aWVzCisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCBvZiBvdXIgcGVyc2lzdGVudCBkYXRhYmFzZSBzdG9yYWdlCisgICAgICogZmlsZS48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0aG5hbWUgPSAiL1dFQi1JTkYvY2xhc3Nlcy9kYXRhYmFzZS54bWwiOworCisgICAgLyoqCisgICAgICogPHA+UmV0dXJuIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIHRvIHRoZSBkYXRhYmFzZS48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFwcGxpY2F0aW9uIHJlc291cmNlIHBhdGggcGF0aCB0byB0aGUgZGF0YWJhc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhdGhuYW1lKCkgeworICAgICAgICByZXR1cm4gKHRoaXMucGF0aG5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNldCB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCB0byB0aGUgZGF0YWJhc2UuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHBhdGhuYW1lIHRvIHRoZSBkYXRhYmFzZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhdGhuYW1lKFN0cmluZyBwYXRobmFtZSkgeworICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7CisgICAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNlcnZsZXRDb250ZXh0TGlzdGVuZXIgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiA8cD5HcmFjZWZ1bGx5IHNodXQgZG93biB0aGlzIGRhdGFiYXNlLCByZWxlYXNpbmcgYW55IHJlc291cmNlcyB0aGF0CisgICAgICogd2VyZSBhbGxvY2F0ZWQgYXQgaW5pdGlhbGl6YXRpb24uPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGV2ZW50IFNlcnZsZXRDb250ZXh0RXZlbnQgdG8gcHJvY2VzcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbnRleHREZXN0cm95ZWQoU2VydmxldENvbnRleHRFdmVudCBldmVudCkgeworCisgICAgICAgIGxvZy5pbmZvKCJGaW5hbGl6aW5nIG1lbW9yeSBkYXRhYmFzZSBwbHVnIGluIik7CisKKyAgICAgICAgaWYgKGRhdGFiYXNlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZGF0YWJhc2UuY2xvc2UoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nLmVycm9yKCJDbG9zaW5nIG1lbW9yeSBkYXRhYmFzZSIsIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoREFUQUJBU0VfS0VZKTsKKyAgICAgICAgY29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoUFJPVE9DT0xTX0tFWSk7CisgICAgICAgIGRhdGFiYXNlID0gbnVsbDsKKyAgICAgICAgY29udGV4dCA9IG51bGw7CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIDxwPkluaXRpYWxpemUgYW5kIGxvYWQgb3VyIGluaXRpYWwgZGF0YWJhc2UgZnJvbSBwZXJzaXN0ZW50CisgICAgICogc3RvcmFnZS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIGNvbnRleHQgaW5pdGlhbGl6YXRpb24gZXZlbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb250ZXh0SW5pdGlhbGl6ZWQoU2VydmxldENvbnRleHRFdmVudCBldmVudCkgeworCisgICAgICAgIGxvZy5pbmZvKCJJbml0aWFsaXppbmcgbWVtb3J5IGRhdGFiYXNlIHBsdWcgaW4gZnJvbSAnIiArCisgICAgICAgICAgICAgICAgcGF0aG5hbWUgKyAiJyIpOworCisgICAgICAgIC8vIFJlbWVtYmVyIG91ciBhc3NvY2lhdGVkIFNlcnZsZXRDb250ZXh0CisgICAgICAgIHRoaXMuY29udGV4dCA9IGV2ZW50LmdldFNlcnZsZXRDb250ZXh0KCk7CisKKyAgICAgICAgLy8gQ29uc3RydWN0IGEgbmV3IGRhdGFiYXNlIGFuZCBtYWtlIGl0IGF2YWlsYWJsZQorICAgICAgICBkYXRhYmFzZSA9IG5ldyBNZW1vcnlVc2VyRGF0YWJhc2UoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gY2FsY3VsYXRlUGF0aCgpOworICAgICAgICAgICAgaWYgKGxvZy5pc0RlYnVnRW5hYmxlZCgpKSB7CisgICAgICAgICAgICAgICAgbG9nLmRlYnVnKCIgTG9hZGluZyBkYXRhYmFzZSBmcm9tICciICsgcGF0aCArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkYXRhYmFzZS5zZXRQYXRobmFtZShwYXRoKTsKKyAgICAgICAgICAgIGRhdGFiYXNlLm9wZW4oKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZy5lcnJvcigiT3BlbmluZyBtZW1vcnkgZGF0YWJhc2UiLCBlKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkNhbm5vdCBsb2FkIGRhdGFiYXNlIGZyb20gJyIgKworICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSArICInOiAiICsgZSk7CisgICAgICAgIH0KKyAgICAgICAgY29udGV4dC5zZXRBdHRyaWJ1dGUoREFUQUJBU0VfS0VZLCBkYXRhYmFzZSk7CisKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcml2YXRlIE1ldGhvZHMKKworCisgICAgLyoqCisgICAgICogPHA+Q2FsY3VsYXRlIGFuZCByZXR1cm4gYW4gYWJzb2x1dGUgcGF0aG5hbWUgdG8gdGhlIFhNTCBmaWxlIHRvIGNvbnRhaW4KKyAgICAgKiBvdXIgcGVyc2lzdGVudCBzdG9yYWdlIGluZm9ybWF0aW9uLjwvcD4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBjYWxjdWxhdGVQYXRoKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gQ2FuIHdlIGFjY2VzcyB0aGUgZGF0YWJhc2UgdmlhIGZpbGUgSS9PPworICAgICAgICBTdHJpbmcgcGF0aCA9IGNvbnRleHQuZ2V0UmVhbFBhdGgocGF0aG5hbWUpOworICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gKHBhdGgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRG9lcyBhIGNvcHkgb2YgdGhpcyBmaWxlIGFscmVhZHkgZXhpc3QgaW4gb3VyIHRlbXBvcmFyeSBkaXJlY3RvcnkKKyAgICAgICAgRmlsZSBkaXIgPSAoRmlsZSkKKyAgICAgICAgICAgICAgICBjb250ZXh0LmdldEF0dHJpYnV0ZSgiamF2YXguc2VydmxldC5jb250ZXh0LnRlbXBkaXIiKTsKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoZGlyLCAic3RydXRzLWV4YW1wbGUtZGF0YWJhc2UueG1sIik7CisgICAgICAgIGlmIChmaWxlLmV4aXN0cygpKSB7CisgICAgICAgICAgICByZXR1cm4gKGZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29weSB0aGUgc3RhdGljIHJlc291cmNlIHRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHJldHVybiBpdHMgcGF0aAorICAgICAgICBJbnB1dFN0cmVhbSBpcyA9CisgICAgICAgICAgICAgICAgY29udGV4dC5nZXRSZXNvdXJjZUFzU3RyZWFtKHBhdGhuYW1lKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiaXMgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcywgMTAyNCk7CisgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gb3MgPQorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGUpOworICAgICAgICBCdWZmZXJlZE91dHB1dFN0cmVhbSBib3MgPSBuZXcgQnVmZmVyZWRPdXRwdXRTdHJlYW0ob3MsIDEwMjQpOworICAgICAgICBieXRlIGJ1ZmZlcltdID0gbmV3IGJ5dGVbMTAyNF07CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgbiA9IGJpcy5yZWFkKGJ1ZmZlcik7CisgICAgICAgICAgICBpZiAobiA8PSAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib3Mud3JpdGUoYnVmZmVyLCAwLCBuKTsKKyAgICAgICAgfQorICAgICAgICBib3MuY2xvc2UoKTsKKyAgICAgICAgYmlzLmNsb3NlKCk7CisgICAgICAgIHJldHVybiAoZmlsZS5nZXRBYnNvbHV0ZVBhdGgoKSk7CisKKyAgICB9CisKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL0F1dGhlbnRpY2F0aW9uSW50ZXJjZXB0b3IuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9BdXRoZW50aWNhdGlvbkludGVyY2VwdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBjYzM2OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9BdXRoZW50aWNhdGlvbkludGVyY2VwdG9yLmphdmEKQEAgLTAsMCArMSwzMSBAQAorcGFja2FnZSBtYWlscmVhZGVyMjsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmludGVyY2VwdG9yLkludGVyY2VwdG9yOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbkludm9jYXRpb247CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworCitwdWJsaWMgY2xhc3MgQXV0aGVudGljYXRpb25JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEludGVyY2VwdG9yICB7CisKKyAgICBwdWJsaWMgdm9pZCBkZXN0cm95ICgpIHt9CisKKyAgICBwdWJsaWMgdm9pZCBpbml0KCkge30KKworICAgIHB1YmxpYyBTdHJpbmcgaW50ZXJjZXB0KEFjdGlvbkludm9jYXRpb24gYWN0aW9uSW52b2NhdGlvbikgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgTWFwIHNlc3Npb24gPSBhY3Rpb25JbnZvY2F0aW9uLmdldEludm9jYXRpb25Db250ZXh0KCkuZ2V0U2Vzc2lvbigpOworCisgICAgICAgIFVzZXIgdXNlciA9IChVc2VyKSBzZXNzaW9uLmdldChDb25zdGFudHMuVVNFUl9LRVkpOworCisgICAgICAgIGJvb2xlYW4gaXNBdXRoZW50aWNhdGVkID0gKG51bGwhPXVzZXIpICYmIChudWxsIT11c2VyLmdldERhdGFiYXNlKCkpOworCisgICAgICAgIGlmICghaXNBdXRoZW50aWNhdGVkKSB7CisgICAgICAgICAgICByZXR1cm4gQWN0aW9uLkxPR0lOOyAgICAgICAgICAgIAorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGFjdGlvbkludm9jYXRpb24uaW52b2tlKCk7CisgICAgICAgIH0KKworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9Db25zdGFudHMuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9Db25zdGFudHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWQ5NjA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL0NvbnN0YW50cy5qYXZhCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogJElkOiBDb25zdGFudHMuamF2YSAzNjA0NDIgMjAwNS0xMi0zMSAyMDoxMDowNFogaHVzdGVkICQKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBtYWlscmVhZGVyMjsKKworLyoqCisgKiA8cD4gTWFuaWZlc3QgY29uc3RhbnRzIGZvciB0aGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbi4gPC9wPgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQ29uc3RhbnRzIHsKKworICAgIC8vIC0tLSBUb2tlbnMgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+IFRoZSB0b2tlbiByZXByZXNlbnRpbmcgYSAiY2FuY2VsIiByZXF1ZXN0LiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0FOQ0VMID0gImNhbmNlbCI7CisKKyAgICAvKioKKyAgICAgKiA8cD4gVGhlIHRva2VuIHJlcHJlc2VudGluZyBhICJjcmVhdGUiIHRhc2suIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDUkVBVEUgPSAiQ3JlYXRlIjsKKworICAgIC8qKgorICAgICAqIDxwPiBUaGUgYXBwbGljYXRpb24gc2NvcGUgYXR0cmlidXRlIHVuZGVyIHdoaWNoIG91ciB1c2VyIGRhdGFiYXNlIGlzCisgICAgICogc3RvcmVkLiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQUJBU0VfS0VZID0gImRhdGFiYXNlIjsKKworICAgIC8qKgorICAgICAqIDxwPiBUaGUgdG9rZW4gcmVwcmVzZW50aW5nIGEgImVkaXQiIHRhc2suIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBERUxFVEUgPSAiRGVsZXRlIjsKKworICAgIC8qKgorICAgICAqIDxwPiBUaGUgdG9rZW4gcmVwcmVzZW50aW5nIGEgImVkaXQiIHRhc2suIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFRElUID0gIkVkaXQiOworCisgICAgLyoqCisgICAgICogPHA+IFRoZSBwYWNrYWdlIG5hbWUgZm9yIHRoaXMgYXBwbGljYXRpb24uIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQQUNLQUdFID0gIm9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlciI7CisKKyAgICAvKioKKyAgICAgKiA8cD4gVGhlIHNlc3Npb24gc2NvcGUgYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZSBTdWJzY3JpcHRpb24gb2JqZWN0CisgICAgICogY3VycmVudGx5IHNlbGVjdGVkIGJ5IG91ciBsb2dnZWQtaW4gVXNlciBpcyBzdG9yZWQuIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTVUJTQ1JJUFRJT05fS0VZID0gInN1YnNjcmlwdGlvbiI7CisKKyAgICAvKioKKyAgICAgKiA8cD4gVGhlIHNlc3Npb24gc2NvcGUgYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZSBVc2VyIG9iamVjdCBmb3IgdGhlCisgICAgICogY3VycmVudGx5IGxvZ2dlZCBpbiB1c2VyIGlzIHN0b3JlZC4gPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFVTRVJfS0VZID0gInVzZXIiOworCisgICAgLyoqCisgICAgICogPHA+VGhlIHRva2VuIHJlcHJlc2VudGluZyB0aGUgIkhvc3QiIHByb3BlcnR5LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEhPU1QgPSAiaG9zdCI7CisKKyAgICAKKyAgICAvLyAtLS0tIEVycm9yIE1lc3NhZ2VzIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIEEgc3RhdGljIG1lc3NhZ2UgaW4gY2FzZSBtZXNzYWdlIHJlc291cmNlIGlzIG5vdCBsb2FkZWQuCisgICAgICogPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVSUk9SX01FU1NBR0VTX05PVF9MT0FERUQgPQorICAgICAgICAgICAgIkVSUk9SOiAgTWVzc2FnZSByZXNvdXJjZXMgbm90IGxvYWRlZCAtLSBjaGVjayBzZXJ2bGV0IGNvbnRhaW5lciBsb2dzIGZvciBlcnJvciBtZXNzYWdlcy4iOworCisgICAgLyoqCisgICAgICogPHA+CisgICAgICogQSBzdGF0aWMgbWVzc2FnZSBpbiBjYXNlIGRhdGFiYXNlIHJlc291cmNlIGlzIG5vdCBsb2FkZWQuCisgICAgICogPHA+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfREFUQUJBU0VfTk9UX0xPQURFRCA9CisgICAgICAgICAgICAiRVJST1I6ICBVc2VyIGRhdGFiYXNlIG5vdCBsb2FkZWQgLS0gY2hlY2sgc2VydmxldCBjb250YWluZXIgbG9ncyBmb3IgZXJyb3IgbWVzc2FnZXMuIjsKKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIEEgc3RhbmRhcmQga2V5IGZyb20gdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZpbGUsIHRvIHRlc3QgaWYgaXQgaXMgYXZhaWxhYmxlLgorICAgICAqIDxwPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVSUk9SX0RBVEFCQVNFX01JU1NJTkcgPSAiZXJyb3IuZGF0YWJhc2UubWlzc2luZyI7CisKKyAgICAvKioKKyAgICAgKiA8UD4KKyAgICAgKiBBICJtYWdpYyIgdXNlcm5hbWUgdG8gdHJpZ2dlciBhbiBFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24gZm9yIHRlc3RpbmcuCisgICAgICo8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVhQSVJFRF9QQVNTV09SRF9FWENFUFRJT04gPSAiRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIjsKKworICAgIC8qKgorICAgICAqIDxwPgorICAgICAqIE5hbWUgb2YgZmllbGQgdG8gYXNzb2NpYXRlIHdpdGggYXV0aGVudGlmaWNhdGlvbiBlcnJvcnMuCisgICAgICogPHA+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUEFTU1dPUkRfTUlTTUFUQ0hfRklFTEQgPSAicGFzc3dvcmQiOworCisgICAgLy8gLS0tLSBMb2cgTWVzc2FnZXMgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+IE1lc3NhZ2UgdG8gbG9nIGlmIHNhdmluZyBhIHVzZXIgZmFpbHMuIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMT0dfREFUQUJBU0VfU0FWRV9FUlJPUiA9CisgICAgICAgICAgICAiIFVuZXhwZWN0ZWQgZXJyb3Igd2hlbiBzYXZpbmcgVXNlcjogIjsKKworCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTG9nb2ZmLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTG9nb2ZmLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGNiYWZhNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9Mb2dvZmYuamF2YQpAQCAtMCwwICsxLDMyIEBACisvKgorICogJElkOiBMb2dvbkFjdGlvbi5qYXZhIDM2MDQ0MiAyMDA1LTEyLTMxIDIwOjEwOjA0WiBodXN0ZWQgJAorICoKKyAqIENvcHlyaWdodCAyMDAwLTIwMDQgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG1haWxyZWFkZXIyOworCisvKioKKyAqIDxwPiBMb2cgdXNlciBvdXQgb2YgdGhlIGN1cnJlbnQgc2Vzc2lvbi4gPC9wPgorICovCitwdWJsaWMgY2xhc3MgTG9nb2ZmIGV4dGVuZHMgTWFpbHJlYWRlclN1cHBvcnQgeworCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgeworCisgICAgICAgIHNldFVzZXIobnVsbCk7CisKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL0xvZ29uLXZhbGlkYXRpb24ueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL0xvZ29uLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhMDRjNzYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTG9nb24tdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+DQorDQorPHZhbGlkYXRvcnM+DQorICAgIDxmaWVsZCBuYW1lPSJ1c2VybmFtZSI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIi8+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisgICAgPGZpZWxkIG5hbWU9InBhc3N3b3JkIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucGFzc3dvcmQucmVxdWlyZWQiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKzwvdmFsaWRhdG9ycz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTG9nb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9Mb2dvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjOGZhNzMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTG9nb24uamF2YQpAQCAtMCwwICsxLDQ1IEBACisvKgorICogJElkOiBMb2dvbkFjdGlvbi5qYXZhIDM2MDQ0MiAyMDA1LTEyLTMxIDIwOjEwOjA0WiBodXN0ZWQgJAorICoKKyAqIENvcHlyaWdodCAyMDAwLTIwMDQgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG1haWxyZWFkZXIyOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uOworCisvKioKKyAqIDxwPiBWYWxpZGF0ZSBhIHVzZXIgbG9nb24uIDwvcD4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIExvZ29uIGV4dGVuZHMgTWFpbHJlYWRlclN1cHBvcnQgeworCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgdGhyb3dzIEV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbiAgeworCisgICAgICAgIFVzZXIgdXNlciA9IGZpbmRVc2VyKGdldFVzZXJuYW1lKCksIGdldFBhc3N3b3JkKCkpOworCisgICAgICAgIGlmICh1c2VyICE9IG51bGwpIHsKKyAgICAgICAgICAgIHNldFVzZXIodXNlcik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaGFzRXJyb3JzKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBJTlBVVDsKKyAgICAgICAgfQorCisgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9NYWlscmVhZGVyU3VwcG9ydC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL01haWxyZWFkZXJTdXBwb3J0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFlOTcxYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9NYWlscmVhZGVyU3VwcG9ydC5qYXZhCkBAIC0wLDAgKzEsNTU5IEBACisvKgorICogJElkOiBCYXNlQWN0aW9uLmphdmEgMzYwNDQyIDIwMDUtMTItMzEgMjA6MTA6MDRaIGh1c3RlZCAkCisgKgorICogQ29weXJpZ2h0IDE5OTktMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgbWFpbHJlYWRlcjI7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255LnV0aWwuQmVhblV0aWxzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5pbnRlcmNlcHRvci5BcHBsaWNhdGlvbkF3YXJlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5pbnRlcmNlcHRvci5TZXNzaW9uQXdhcmU7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uU3VwcG9ydDsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlN1YnNjcmlwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyRGF0YWJhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5pbXBsLm1lbW9yeS5NZW1vcnlTdWJzY3JpcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5pbXBsLm1lbW9yeS5NZW1vcnlVc2VyOworCitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworLyoqCisgKiA8cD4gQmFzZSBBY3Rpb24gZm9yIE1haWxyZWFkZXJTdXBwb3J0IGFwcGxpY2F0aW9uLiA8L3A+CisgKiA8cC8+CisgKiA8cD4gTm90ZSB0aGF0IHRoaXMgY2xhc3MgZG9lcyBOT1QgaW1wbGVtZW50IG1vZGVsIGRyaXZlbiBiZWNhdXNlIG9mIHRoZSB3YXkKKyAqIHRoZSBwcmUtZXhpc3RpbmcgbW9kZWwgaXMgZGVzaWduZWQuIFRoZSBNYWlsUmVhZGVyIERBTyBpbmNsdWRlcyBpbW11dGFibGUKKyAqIGZpZWxkcyB0aGF0IGNhbiBvbmx5IGJlIHNldCBvbiBjb25zdHJ1Y3Rpb24sIGFuZCBzb21lIG9iamVjdHMgZG8gbm90IGhhdmUgYQorICogZGVmYXVsdCBjb25zdHJ1Y3Rpb24uIE9uZSBhcHByb2FjaCB3b3VsZCBiZSB0byBtaXJyb3IgYWxsIHRoZSBEQU8KKyAqIHByb3BlcnRpZXMgb24gdGhlIEFjdGlvbnMuIEFzIGFuIGFsdGVybmF0aXZlLCB0aGlzIGltcGxlbWVudGF0aW9ucyB1c2VzIHRoZQorICogREFPIHByb3BlcnRpZXMgd2hlcmUgcG9zc2libGUsIGFuZCB1c2VzIGxvY2FsIEFjdGlvbiBwcm9wZXJ0aWVzIG9ubHkgYXMKKyAqIG5lZWRlZC4gVG8gY3JlYXRlIG5ldyBvYmplY3RzLCBhIGJsYW5rIHRlbXBvcmFyeSBvYmplY3QgaXMgY29uc3RydWN0ZWQsIGFuZAorICogdGhlIHBhZ2UgdXNlcyBhIG1peCBvZiBsb2NhbCBBY3Rpb24gcHJvcGVydGllcyBhbmQgREFPIHByb3BlcnRpZXMuIFdoZW4gdGhlCisgKiBuZXcgb2JqZWN0IGlzIHRvIGJlIHNhdmVkLCB0aGUgbG9jYWwgQWN0aW9uIHByb3BlcnRpZXMgYXJlIHVzZWQgdG8gY3JlYXRlCisgKiB0aGUgb2JqZWN0IHVzaW5nIHRoZSBEQU8gZmFjdG9yeSBtZXRob2RzLCB0aGUgaW5wdXQgdmFsdWVzIGFyZSBjb3BpZWQgZnJvbQorICogdGhlIHRlbXBvcmFyeSBvYmplY3QsIGFuZCB0aGUgbmV3IG9iamVjdCBpcyBzYXZlZC4gSXQncyBrbHVkZ2UsIGJ1dCBpdAorICogYXZvaWRzIGNyZWF0aW5nIHVubmVjZXNzYXJ5IGxvY2FsIHByb3BlcnRpZXMuIFBpY2sgeW91ciBwb2lzb24uPC9wPgorICovCitwdWJsaWMgY2xhc3MgTWFpbHJlYWRlclN1cHBvcnQgZXh0ZW5kcyBBY3Rpb25TdXBwb3J0CisgICAgICAgIGltcGxlbWVudHMgU2Vzc2lvbkF3YXJlLCBBcHBsaWNhdGlvbkF3YXJlIHsKKworICAgIC8qKgorICAgICAqIFJldHVybiBDQU5DRUwgc28gYXByb3ByaWF0ZSByZXN1bHQgY2FuIGJlIHNlbGVjdGVkLgorICAgICAqIEByZXR1cm4gImNhbmNlbCIgc28gYXByb3ByaWF0ZSByZXN1bHQgY2FuIGJlIHNlbGVjdGVkLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgY2FuY2VsKCkgeworICAgICAgICByZXR1cm4gQ29uc3RhbnRzLkNBTkNFTDsKKyAgICB9CisKKworICAgIC8vIC0tLS0gQXBwbGljYXRpb25Bd2FyZSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5GaWVsZCB0byBzdG9yZSBhcHBsaWNhdGlvbiBjb250ZXh0IG9yIGl0cyBwcm94eS48L3A+CisgICAgICogPHAvPgorICAgICAqIDxwPlRoZSBhcHBsaWNhdGlvbiBjb250ZXh0IGxhc3RzIGZvciB0aGUgbGlmZSBvZiB0aGUgYXBwbGljYXRpb24uIEEKKyAgICAgKiByZWZlcmVuY2UgdG8gdGhlIGRhdGFiYXNlIGlzIHN0b3JlZCBpbiB0aGUgYXBwbGljYXRpb24gY29udGV4dCBhdAorICAgICAqIHN0YXJ0dXAuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgTWFwIGFwcGxpY2F0aW9uOworCisgICAgLyoqCisgICAgICogPHA+U3RvcmUgYSBuZXcgYXBwbGljYXRpb24gY29udGV4dC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgQSBNYXAgcmVwcmVzZW50aW5nIGFwcGxpY2F0aW9uIHN0YXRlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0QXBwbGljYXRpb24oTWFwIHZhbHVlKSB7CisgICAgICAgIGFwcGxpY2F0aW9uID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSBhcHBsaWNhdGlvbiBjb250ZXh0LjwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgTWFwIGdldEFwcGxpY2F0aW9uKCkgeworICAgICAgICByZXR1cm4gYXBwbGljYXRpb247CisgICAgfQorCisgICAgLy8gLS0tLSBTZXNzaW9uQXdhcmUgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+RmllbGQgdG8gc3RvcmUgc2Vzc2lvbiBjb250ZXh0LCBvciBpdHMgcHJveHkuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgTWFwIHNlc3Npb247CisKKyAgICAvKioKKyAgICAgKiA8cD5TdG9yZSBhIG5ldyBzZXNzaW9uIGNvbnRleHQuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHZhbHVlIEEgTWFwIHJlcHJlc2VudGluZyBzZXNzaW9uIHN0YXRlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U2Vzc2lvbihNYXAgdmFsdWUpIHsKKyAgICAgICAgc2Vzc2lvbiA9IHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgc2Vzc2lvbiBjb250ZXh0LjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc2Vzc2lvbiBjb250ZXh0CisgICAgICovCisgICAgcHVibGljIE1hcCBnZXRTZXNzaW9uKCkgeworICAgICAgICByZXR1cm4gc2Vzc2lvbjsKKyAgICB9CisKKyAgICAvLyAtLS0tIFRhc2sgcHJvcGVydHkgKHV0aWxpemVkIGJ5IFVJKSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5GaWVsZCB0byBzdG9yZSB3b3JrZmxvdyB0YXNrLjwvcD4KKyAgICAgKiA8cC8+CisgICAgICogPHA+VGhlIFRhc2sgaXMgdXNlZCB0byB0cmFjayB0aGUgc3RhdGUgb2YgdGhlIENSVUQgd29ya2Zsb3dzLiBJdCBjYW4gYmUKKyAgICAgKiBzZXQgdG8gQ29uc3RhbnQuQ1JFQVRFLCBDb25zdGFudC5FRElULCBvciBDb25zdGFudC5ERUxFVEUgYXMKKyAgICAgKiBuZWVkZWQuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHRhc2sgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIHdvcmtsb3cgdGFzay48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIHRhc2suCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUYXNrKCkgeworICAgICAgICByZXR1cm4gdGFzazsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TdG9yZSBuZXcgd29ya2Zsb3cgdGFzay48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHRhc2sgdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRhc2soU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHRhc2sgPSAgdmFsdWU7CisgICAgfQorCisgICAgLy8gLS0tLSBUb2tlbiBwcm9wZXJ0eSAodXRpbGl6ZWQgYnkgVUkpIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPkZpZWxkIHRvIHN0b3JlIGRvdWJsZS1zdWJtaXQgZ3VhcmQuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHRva2VuID0gbnVsbDsKKworCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSBUb2tlbi48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIHRva2VuLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VG9rZW4oKSB7CisgICAgICAgIHJldHVybiB0b2tlbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TdG9yZSBuZXcgVG9rZW4uPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHZhbHVlIFRoZSB0b2tlbiB0byBzZXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VG9rZW4oU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHRva2VuID0gIHZhbHVlOworICAgIH0KKworCisgICAgLy8gLS0tLSBIb3N0IHByb3BlcnR5IC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPkZpZWxkIHRvIHN0b3JlIFN1YnNjcmlwdGlvbiBob3N0LjwvcD4KKyAgICAgKiA8cC8+CisgICAgICogPHA+IFRoZSBob3N0IGlzIGFuIGltbXV0YWJsZSBwcm9wZXJ0eSBvZiB0aGUgU3Vic2NydGlvbiBEQVAgb2JqZWN0LCBzbworICAgICAqIHdlIG5lZWQgdG8gc3RvcmUgaXQgbG9jYWxseSB1bnRpbCB3ZSBhcmUgcmVhZHkgdG8gY3JlYXRlIHRoZQorICAgICAqIFN1YnNjcmlwdGlvbi4gPC9wPgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGhvc3Q7CisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIHRTdWJzY3JpcHRpb24gaG9zdC48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGhvc3QgcHJvcGVydHkKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEhvc3QoKSB7CisgICAgICAgIHJldHVybiBob3N0OworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIG5ldyBTdWJzY3JpcHRpb24gaG9zdC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRIb3N0KFN0cmluZyB2YWx1ZSkgeworICAgICAgICBob3N0ID0gdmFsdWU7CisgICAgfQorCisgICAgLy8gLS0tLSBQYXNzd29yZCBwcm9wZXJ0eSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5GaWVsZCB0byBzdG9yZSBVc2VyIHBhc3N3b3JkIHByb3BlcnR5LjwvcD4KKyAgICAgKiA8cC8+CisgICAgICogPHA+VGhlIFVzZXIgREFPIG9iamVjdCBwYXNzd29yZCBwcm9lcnR5IGlzIGltbXV0YWJsZSwgc28gd2Ugc3RvcmUgaXQKKyAgICAgKiBsb2NhbGx5IHVudGlsIHdlIGFyZSByZWFkeSB0byBjcmVhdGUgdGhlIG9iamVjdC48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIFVzZXIgcGFzc3dvcmQ8L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIHBhc3N3b3JkLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGFzc3dvcmQoKSB7CisgICAgICAgIHJldHVybiBwYXNzd29yZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TdG9yZSBuZXcgVXNlciBQYXNzd29yZDwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgcGFzc3dvcmQgdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhc3N3b3JkKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBwYXNzd29yZCA9IHZhbHVlOworICAgIH0KKworICAgIC8vIC0tLS0gUGFzc3dvcmQyIHByb3BlcnR5IChjb25maXJtYXRpb24pIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPkZpZWxkIHRvIHN0b3JlIHRoZSBVc2VyIHBhc3N3b3JkIGNvbmZpcm1hdGlvbi48L3A+CisgICAgICogPHAvPgorICAgICAqIDxwPldoZW4gYSBVc2VyIG9iamVjdCBpcyBjcmVhdGVkLCB3ZSBhc2sgdGhlIGNsaWVudCB0byBlbnRlciB0aGUKKyAgICAgKiBwYXNzd29yZCB0d2ljZSwgdG8gaGVscCBlbnN1cmUgdGhlIHBhc3N3b3JkIGlzIGJlaW5nIHR5cGVkCisgICAgICogY29ycmVjdGx5LjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBwYXNzd29yZDIgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIHRoZSBVc2VyIHBhc3N3b3JkIGNvbmZpcm1hdGlvbi48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIGNvbmZpcm1hdGlvbnBhc3N3b3JkLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGFzc3dvcmQyKCkgeworICAgICAgICByZXR1cm4gcGFzc3dvcmQyOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIGEgbmV3IFVzZXIgcGFzc3dvcmQgY29uZmlybWF0aW9uLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgY29uZmlybWF0aW9uIHBhc3N3b3JkIHRvIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYXNzd29yZDIoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHBhc3N3b3JkMiA9IHZhbHVlOworICAgIH0KKworICAgIC8vIC0tLS0gVXNlcm5hbWUgcHJvcGVydHkgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+RmllbGQgdG8gc3RvcmUgVXNlciB1c2VybmFtZS48L3A+CisgICAgICogPHAvPgorICAgICAqIDxwPlRoZSBVc2VyIERBTyBvYmplY3QgcGFzc3dvcmQgcHJvZXJ0eSBpcyBpbW11dGFibGUsIHNvIHdlIHN0b3JlIGl0CisgICAgICogbG9jYWxseSB1bnRpbCB3ZSBhcmUgcmVhZHkgdG8gY3JlYXRlIHRoZSBvYmplY3QuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHVzZXJuYW1lID0gbnVsbDsKKworCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSBVc2VyIHVzZXJuYW1lLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gUmV0dXJucyB0aGUgVXNlciB1c2VybmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFVzZXJuYW1lKCkgeworICAgICAgICByZXR1cm4gdXNlcm5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U3RvcmUgbmV3IFVzZXIgdXNlcm5hbWU8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHVzZXJuYW1lIHRvIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRVc2VybmFtZShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgdXNlcm5hbWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvLyAtLS0tIERhdGFiYXNlIHByb3BlcnR5IC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgcmVmZXJlbmNlIHRvIFVzZXJEYXRhYmFzZSwgb3IgbnVsbCBpZiB0aGUgZGF0YWJhc2UgaXMgbm90CisgICAgICogYXZhaWxhYmxlLiA8L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGEgcmVmZXJlbmNlIHRvIHRoZSBVc2VyRGF0YWJhc2Ugb3IgbnVsbCBpZiB0aGUgZGF0YWJhc2UgaXMgbm90CisgICAgICogICAgICAgICBhdmFpbGFibGUKKyAgICAgKi8KKyAgICBwdWJsaWMgVXNlckRhdGFiYXNlIGdldERhdGFiYXNlKCkgeworICAgICAgICBPYmplY3QgZGIgPSBnZXRBcHBsaWNhdGlvbigpLmdldChDb25zdGFudHMuREFUQUJBU0VfS0VZKTsKKyAgICAgICAgaWYgKGRiID09IG51bGwpIHsKKyAgICAgICAgICAgIHRoaXMuYWRkQWN0aW9uRXJyb3IoZ2V0VGV4dCgiZXJyb3IuZGF0YWJhc2UubWlzc2luZyIpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKFVzZXJEYXRhYmFzZSkgZGI7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U3RvcmUgYSBuZXcgcmVmZXJlbmNlIHRvIFVzZXJEYXRhYmFzZTwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRhYmFzZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERhdGFiYXNlKFVzZXJEYXRhYmFzZSBkYXRhYmFzZSkgeworICAgICAgICBnZXRBcHBsaWNhdGlvbigpLnB1dChDb25zdGFudHMuREFUQUJBU0VfS0VZLCBkYXRhYmFzZSk7CisgICAgfQorCisgICAgLy8gLS0tLSBVc2VyIHByb3BlcnR5IC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgcmVmZXJlbmNlIHRvIFVzZXIgb2JqZWN0IGZvciBhdXRoZW50aWNhdGVkIHVzZXIuPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBVc2VyIG9iamVjdCBmb3IgYXV0aGVudGljYXRlZCB1c2VyLgorICAgICAqLworICAgIHB1YmxpYyBVc2VyIGdldFVzZXIoKSB7CisgICAgICAgIHJldHVybiAoVXNlcikgZ2V0U2Vzc2lvbigpLmdldChDb25zdGFudHMuVVNFUl9LRVkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIG5ldyByZWZlcmVuY2UgdG8gVXNlciBPYmplY3QuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHVzZXIgVXNlciBvYmplY3QgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFVzZXIoVXNlciB1c2VyKSB7CisgICAgICAgIGdldFNlc3Npb24oKS5wdXQoQ29uc3RhbnRzLlVTRVJfS0VZLCB1c2VyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5PYnRhaW4gVXNlciBvYmplY3QgZnJvbSBkYXRhYmFzZSwgb3IgcmV0dXJuIG51bGwgaWYgdGhlIGNyZWRlbnRpYWxzCisgICAgICogYXJlIG5vdCBmb3VuZCBvciBpbnZhbGlkLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1c2VybmFtZSBVc2VyIHVzZXJuYW1lCisgICAgICogQHBhcmFtIHBhc3N3b3JkIFVzZXIgcGFzc3dvcmQKKyAgICAgKiBAcmV0dXJuIFVzZXIgb2JqZWN0IG9yIG51bGwgaWYgbm90IGZvdW5kCisgICAgICogQHRocm93cyBFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgVXNlciBmaW5kVXNlcihTdHJpbmcgdXNlcm5hbWUsIFN0cmluZyBwYXNzd29yZCkKKyAgICAgICAgICAgIHRocm93cyBFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24geworICAgICAgICAvLyBGSVhNRTogU3R1cGlkIHRlc3RpbmcgaGFjayB0byBjb21wZW5zYXRlIGZvciBpbmFkZXF1YXRlIERBTyBsYXllcgorICAgICAgICBpZiAoQ29uc3RhbnRzLkVYUElSRURfUEFTU1dPUkRfRVhDRVBUSU9OLmVxdWFscyh1c2VybmFtZSkpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24oQ29uc3RhbnRzLkVYUElSRURfUEFTU1dPUkRfRVhDRVBUSU9OKTsKKyAgICAgICAgfQorCisgICAgICAgIFVzZXIgdXNlciA9IGdldERhdGFiYXNlKCkuZmluZFVzZXIodXNlcm5hbWUpOworICAgICAgICBpZiAoKHVzZXIgIT0gbnVsbCkgJiYgIXVzZXIuZ2V0UGFzc3dvcmQoKS5lcXVhbHMocGFzc3dvcmQpKSB7CisgICAgICAgICAgICB1c2VyID0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBpZiAodXNlciA9PSBudWxsKSB7CisgICAgICAgICAgICB0aGlzLmFkZEZpZWxkRXJyb3IoQ29uc3RhbnRzLlBBU1NXT1JEX01JU01BVENIX0ZJRUxELAorICAgICAgICAgICAgICAgICAgICBnZXRUZXh0KCJlcnJvci5wYXNzd29yZC5taXNtYXRjaCIpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdXNlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD48Y29kZT5Mb2c8L2NvZGU+IGluc3RhbmNlIGZvciB0aGlzIGFwcGxpY2F0aW9uLiA8L3A+CisgICAgICovCisgICAgcHJvdGVjdGVkIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyhDb25zdGFudHMuUEFDS0FHRSk7CisKKyAgICAvKioKKyAgICAgKiA8cD4gUGVyc2lzdCB0aGUgVXNlciBvYmplY3QsIGluY2x1ZGluZyBzdWJzY3JpcHRpb25zLCB0byB0aGUgZGF0YWJhc2UuCisgICAgICogPC9wPgorICAgICAqCisgICAgICogQHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uIG9uIGRhdGFiYXNlIGVycm9yCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2F2ZVVzZXIoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGdldERhdGFiYXNlKCkuc2F2ZSgpOworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSBDb25zdGFudHMuTE9HX0RBVEFCQVNFX1NBVkVfRVJST1IgKyBnZXRVc2VyKCkKKyAgICAgICAgICAgICAgICAgICAgLmdldFVzZXJuYW1lKCk7CisgICAgICAgICAgICBsb2cuZXJyb3IobWVzc2FnZSwgZSk7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKG1lc3NhZ2UsIGUpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgY3JlYXRlSW5wdXRVc2VyKCkgeworICAgICAgICBVc2VyIHVzZXIgPSBuZXcgTWVtb3J5VXNlcihudWxsLCBudWxsKTsKKyAgICAgICAgc2V0VXNlcih1c2VyKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4gVmVyaWZ5IGlucHV0IGZvciBjcmVhdGluZyBhIG5ldyB1c2VyLCBjcmVhdGUgdGhlIHVzZXIsIGFuZCBwcm9jZXNzCisgICAgICogdGhlIGxvZ2luLiA8L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIEEgbmV3IFVzZXIgYW5kIGVtcHR5IEVycm9ycyBpZiBjcmVhdGUgc3VjY2VlZHMsIG9yIG51bGwgYW5kCisgICAgICogICAgICAgICBFcnJvcnMgaWYgY3JlYXRlIGZhaWxzCisgICAgICovCisgICAgcHVibGljIFVzZXIgY3JlYXRlVXNlcihTdHJpbmcgdXNlcm5hbWUsIFN0cmluZyBwYXNzd29yZCkgeworCisgICAgICAgIFVzZXJEYXRhYmFzZSBkYXRhYmFzZSA9IGdldERhdGFiYXNlKCk7CisgICAgICAgIFVzZXIgdXNlcjsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgdXNlciA9IGRhdGFiYXNlLmZpbmRVc2VyKHVzZXJuYW1lKTsKKyAgICAgICAgIH0KKworICAgICAgICBjYXRjaCAoRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHVzZXIgPSBnZXRVc2VyKCk7IC8vIEp1c3Qgc28gdGhhdCBpdCBpcyBub3QgbnVsbAorICAgICAgICB9CisKKyAgICAgICAgaWYgKHVzZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhpcy5hZGRGaWVsZEVycm9yKCJ1c2VybmFtZSIsICJlcnJvci51c2VybmFtZS51bmlxdWUiKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGRhdGFiYXNlLmNyZWF0ZVVzZXIodXNlcm5hbWUpOworICAgIH0KKworICAgIC8vIFNpbmNlIHVzZXIudXNlcm5hbWUgaXMgaW1tdXRhYmxlLCB3ZSBoYXZlIHRvIHVzZSBzb21lIGxvY2FsIHByb3BlcnRpZXMKKworICAgIC8qKgorICAgICAqIDxwPlVzZSB0aGUgY3VycmVudCBVc2VyIG9iamVjdCB0byBjcmVhdGUgYSBuZXcgVXNlciBvYmplY3QsIGFuZCBtYWtlCisgICAgICogdGhlIG5ldyBVc2VyIG9iamVjdCB0aGUgYXV0aGVudGljYXRlZCB1c2VyLjwvcD4KKyAgICAgKiA8cC8+CisgICAgICogPHA+VGhlICJjdXJyZW50IiBVc2VyIG9iamVjdCBpcyB1c3VhbGx5IGEgdGVtcG9yYXJ5IG9iamVjdCBiZWluZyB1c2VkCisgICAgICogdG8gY2FwdHVyZSBpbnB1dC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gX3VzZXJuYW1lIFVzZXIgdXNlcm5hbWUKKyAgICAgKiBAcGFyYW0gX3Bhc3N3b3JkIFVzZXIgcGFzc3dvcmQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb3B5VXNlcihTdHJpbmcgX3VzZXJuYW1lLCBTdHJpbmcgX3Bhc3N3b3JkKSB7CisgICAgICAgIFVzZXIgaW5wdXQgPSBnZXRVc2VyKCk7CisgICAgICAgIGlucHV0LnNldFBhc3N3b3JkKF9wYXNzd29yZCk7CisgICAgICAgIFVzZXIgdXNlciA9IGNyZWF0ZVVzZXIoX3VzZXJuYW1lLCBfcGFzc3dvcmQpOworICAgICAgICBpZiAobnVsbCAhPSB1c2VyKSB7CisgICAgICAgICAgICBCZWFuVXRpbHMuc2V0VmFsdWVzKHVzZXIsIGlucHV0LCBudWxsKTsKKyAgICAgICAgICAgIHNldFVzZXIodXNlcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyAtLS0tIFN1YnNjcmlwdGlvbiBwcm9wZXJ0eSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5PYnRhaW4gdGhlIGNhY2hlZCBTdWJzY3JpcHRpb24gb2JqZWN0LCBpZiBhbnkuIDwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gQ2FjaGVkIFN1YnNjcmlwdGlvbiBvYmplY3Qgb3IgbnVsbAorICAgICAqLworICAgIHB1YmxpYyBTdWJzY3JpcHRpb24gZ2V0U3Vic2NyaXB0aW9uKCkgeworICAgICAgICByZXR1cm4gKFN1YnNjcmlwdGlvbikgZ2V0U2Vzc2lvbigpLmdldChDb25zdGFudHMuU1VCU0NSSVBUSU9OX0tFWSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U3RvcmUgbmV3IFVzZXIgU3Vic2NyaXB0aW9uLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzdWJzY3JpcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTdWJzY3JpcHRpb24oU3Vic2NyaXB0aW9uIHN1YnNjcmlwdGlvbikgeworICAgICAgICBnZXRTZXNzaW9uKCkucHV0KENvbnN0YW50cy5TVUJTQ1JJUFRJT05fS0VZLCBzdWJzY3JpcHRpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPiBPYnRhaW4gVXNlciBTdWJzY3JpcHRpb24gb2JqZWN0IGZvciB0aGUgZ2l2ZW4gaG9zdCwgb3IgcmV0dXJuIG51bGwKKyAgICAgKiBpZiBub3QgZm91bmQuIDwvcD4KKyAgICAgKgorICAgICAqIDxwPkl0IHdvdWxkIGJlIHBvc3NpYmxlIGZvciB0aGlzIGNvZGUgdG8gdGhyb3cgYSBOdWxsUG9pbnRlckV4Y2VwdGlvbiwKKyAgICAgKiBidXQgdGhlIEV4Y2VwdGlvbkhhbmRsZXIgaW4gdGhlIHh3b3JrLnhtbCB3aWxsIGNhdGNoIHRoYXQgZm9yIHVzLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVGhlIG1hdGNoaW5nIFN1YnNjcmlwdGlvbiBvciBudWxsCisgICAgICovCisgICAgcHVibGljIFN1YnNjcmlwdGlvbiBmaW5kU3Vic2NyaXB0aW9uKFN0cmluZyBob3N0KSB7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWJzY3JpcHRpb247CisgICAgICAgIHN1YnNjcmlwdGlvbiA9IGdldFVzZXIoKS5maW5kU3Vic2NyaXB0aW9uKGhvc3QpOworICAgICAgICByZXR1cm4gc3Vic2NyaXB0aW9uOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPk9idGFpbiB1U0VSIFN1YnNjcmlwdGlvbiBmb3IgdGhlIGxvY2FsIEhvc3QgcHJvcGVydHkuPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD5Vc3VhbGx5LCB0aGUgaG9zdCBwcm9wZXJ0eSB3aWxsIGJlIHNldCBmcm9tIHRoZSBjbGllbnQgcmVxdWVzdCwKKyAgICAgKiBiZWNhdXNlIGl0IHdhcyBlbWJlZGRlZCBpbiBhIGxpbmsgdG8gdGhlIFN1YmNyaXB0aW9uIGFjdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU3Vic2NyaXB0aW9uIG9yIG51bGwgaWYgbm90IGZvdW5kCisgICAgICovCisgICAgcHVibGljIFN1YnNjcmlwdGlvbiBmaW5kU3Vic2NyaXB0aW9uKCkgeworICAgICAgICByZXR1cm4gZmluZFN1YnNjcmlwdGlvbihnZXRIb3N0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgYSAidGVtcG9yYXJ5IiBVc2VyIFN1YnNjcmlwdGlvbiBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0bworICAgICAqIGNhcHR1cmUgaW5wdXQgdmFsdWVzLjwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjcmVhdGVJbnB1dFN1YnNjcmlwdGlvbigpIHsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YiA9IG5ldyBNZW1vcnlTdWJzY3JpcHRpb24oZ2V0VXNlcigpLCBudWxsKTsKKyAgICAgICAgc2V0U3Vic2NyaXB0aW9uKHN1Yik7CisgICAgICAgIHNldEhvc3Qoc3ViLmdldEhvc3QoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSBuZXcgVXNlciBTdWJzY3JpcHRpb24gb2JqZWN0IGZvciB0aGUgZ2l2ZW4gaG9zdCwgb3IgbnVsbCBpZgorICAgICAqIHRoZSBob3N0IGlzIG5vdCB1bmlxdWUuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGhvc3QKKyAgICAgKiBAcmV0dXJuIE5ldyBVc2VyIFN1YnNjcmlwdGlvbiBvYmplY3Qgb3IgbnVsbAorICAgICAqLworICAgIHB1YmxpYyBTdWJzY3JpcHRpb24gY3JlYXRlU3Vic2NyaXB0aW9uKFN0cmluZyBob3N0KSB7CisKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YjsKKworICAgICAgICBzdWIgPSBmaW5kU3Vic2NyaXB0aW9uKGhvc3QpOworCisgICAgICAgIGlmIChudWxsICE9IHN1YikgeworICAgICAgICAgICAgLy8gRklYTUUgLSBsb2NhbGl6YXRpb24gLSAiZXJyb3IuaG9zdC51bmlxdWUiKQorICAgICAgICAgICAgYWRkRmllbGRFcnJvcihDb25zdGFudHMuSE9TVCwiVGhhdCBob3N0bmFtZSBpcyBhbHJlYWR5IGRlZmluZWQiKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGdldFVzZXIoKS5jcmVhdGVTdWJzY3JpcHRpb24oaG9zdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+Q3JlYXRlIGEgbmV3IFN1YnNjcmlwdGlvbiBmcm9tIHRoZSBjdXJyZW50IFN1YnNjcmlwdGlvbiBvYmplY3QsCisgICAgICogbWFraW5nIHRoZSBuZXcgU3Vic2NyaXB0aW9uIHRoZSBjdXJyZW50IFN1YnNjcmlwdGlvbi4gPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD5Vc3VhbGx5LCB0aGUgImN1cnJlbnQiIFN1YnNjcmlwdGlvbiBpcyBhIHRlbXBvcmFyeSBvYmplY3QgYmVpbmcgdXNlZAorICAgICAqIHRvIGNhcHR1cmUgaW5wdXQgdmFsdWVzLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSBob3N0CisgICAgICovCisgICAgcHVibGljIHZvaWQgY29weVN1YnNjcmlwdGlvbihTdHJpbmcgaG9zdCkgeworICAgICAgICBTdWJzY3JpcHRpb24gaW5wdXQgPSBnZXRTdWJzY3JpcHRpb24oKTsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YiA9IGNyZWF0ZVN1YnNjcmlwdGlvbihob3N0KTsKKyAgICAgICAgaWYgKG51bGwgIT0gc3ViKSB7CisgICAgICAgICAgICBCZWFuVXRpbHMuc2V0VmFsdWVzKHN1YiwgaW5wdXQsIG51bGwpOworICAgICAgICAgICAgc2V0U3Vic2NyaXB0aW9uKHN1Yik7CisgICAgICAgICAgICBzZXRIb3N0KHN1Yi5nZXRIb3N0KCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+RGVsZXRlIHRoZSBjdXJyZW50IFN1YnNjcmlwdGlvbiBvYmplY3QgZnJvbSB0aGUgZGF0YWJhc2UuPC9wPgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbW92ZVN1YnNjcmlwdGlvbigpICB7CisgICAgICAgIGdldFVzZXIoKS5yZW1vdmVTdWJzY3JpcHRpb24oZ2V0U3Vic2NyaXB0aW9uKCkpOworICAgICAgICBnZXRTZXNzaW9uKCkucmVtb3ZlKENvbnN0YW50cy5TVUJTQ1JJUFRJT05fS0VZKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIE1haWxTZXJ2ZXIgSG9zdCBmb3IgY3VycmVudCBVc2VyIFN1YnNjcmlwdGlvbi48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIE1haWxTZXJ2ZXIgSG9zdCBmb3IgY3VycmVudCBVc2VyIFN1YnNjcmlwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3Vic2NyaXB0aW9uSG9zdCgpIHsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YiA9IGdldFN1YnNjcmlwdGlvbigpOworICAgICAgICBpZiAobnVsbCA9PSBzdWIpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdWIuZ2V0SG9zdCgpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL01haWxyZWFkZXJTdXBwb3J0LnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTWFpbHJlYWRlclN1cHBvcnQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjMzZDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL01haWxyZWFkZXJTdXBwb3J0LnByb3BlcnRpZXMKQEAgLTAsMCArMSw5MyBAQAorYnV0dG9uLmNhbmNlbD1DYW5jZWwNCitidXR0b24uY29uZmlybT1Db25maXJtDQorYnV0dG9uLmRvU3VibWl0PURPX1NVQk1JVA0KK2J1dHRvbi5kb1Jlc2V0PURPX1JFU1VMVA0KK2J1dHRvbi5kb0NhbmNlbD1vcmcuYXBhY2hlLnN0cnV0cy50YWdsaWIuaHRtbC5DQU5DRUwNCitidXR0b24ucmVzZXQ9UmVzZXQNCitidXR0b24uc2F2ZT1TYXZlDQorY2hhbmdlLm1lc3NhZ2U9WW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZC4gIFBsZWFzZSBhc2sgdGhlIHN5c3RlbSBhZG1pbmlzdHJhdG9yIHRvIGNoYW5nZSBpdC4NCitjaGFuZ2UudHJ5PVRyeSBBZ2Fpbg0KK2NoYW5nZS50aXRsZT1QYXNzd29yZCBIYXMgRXhwaXJlZA0KK2RhdGFiYXNlLmxvYWQ9Q2Fubm90IGxvYWQgZGF0YWJhc2UgZnJvbSB7MH0NCitlcnJvci5kYXRhYmFzZS5taXNzaW5nPVVzZXIgZGF0YWJhc2UgaXMgbWlzc2luZywgY2Fubm90IHZhbGlkYXRlIGxvZ29uIGNyZWRlbnRpYWxzDQorZXJyb3IuZnJvbUFkZHJlc3MuZm9ybWF0PUludmFsaWQgZm9ybWF0IGZvciBGcm9tIEFkZHJlc3MNCitlcnJvci5mcm9tQWRkcmVzcy5yZXF1aXJlZD1Gcm9tIEFkZHJlc3MgaXMgcmVxdWlyZWQNCitlcnJvci5mdWxsTmFtZS5yZXF1aXJlZD1GdWxsIE5hbWUgaXMgcmVxdWlyZWQNCitlcnJvci5ob3N0LnJlcXVpcmVkPU1haWwgU2VydmVyIGlzIHJlcXVpcmVkDQorZXJyb3Iubm9TdWJzY3JpcHRpb249Tm8gU3Vic2NyaXB0aW9uIGJlYW4gaW4gdXNlciBzZXNzaW9uDQorZXJyb3IucGFzc3dvcmQuZXhwaXJlZD1Zb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkIGZvciB1c2VybmFtZSB7MH0NCitlcnJvci5wYXNzd29yZC5yZXF1aXJlZD1QYXNzd29yZCBpcyByZXF1aXJlZA0KK2Vycm9yLnBhc3N3b3JkMi5yZXF1aXJlZD1Db25maXJtYXRpb24gcGFzc3dvcmQgaXMgcmVxdWlyZWQNCitlcnJvci5wYXNzd29yZC5tYXRjaD1QYXNzd29yZCBhbmQgY29uZmlybWF0aW9uIHBhc3N3b3JkIG11c3QgbWF0Y2gNCitlcnJvci5wYXNzd29yZC5taXNtYXRjaD1JbnZhbGlkIHVzZXJuYW1lIGFuZC9vciBwYXNzd29yZCwgcGxlYXNlIHRyeSBhZ2Fpbg0KK2Vycm9yLnJlcGx5VG9BZGRyZXNzLmZvcm1hdD1JbnZhbGlkIGZvcm1hdCBmb3IgUmVwbHkgVG8gQWRkcmVzcw0KK3N0cnV0cy5tZXNzYWdlcy5pbnZhbGlkLnRva2VuPUNhbm5vdCBzdWJtaXQgdGhpcyBmb3JtIG91dCBvZiBvcmRlcg0KK2Vycm9yLnR5cGUuaW52YWxpZD1TZXJ2ZXIgVHlwZSBtdXN0IGJlICdpbWFwJyBvciAncG9wMycNCitlcnJvci50eXBlLnJlcXVpcmVkPVNlcnZlciBUeXBlIGlzIHJlcXVpcmVkDQorZXJyb3IudXNlcm5hbWUucmVxdWlyZWQ9VXNlcm5hbWUgaXMgcmVxdWlyZWQNCitlcnJvci51c2VybmFtZS51bmlxdWU9VGhhdCB1c2VybmFtZSBpcyBhbHJlYWR5IGluIHVzZSAtIHBsZWFzZSBzZWxlY3QgYW5vdGhlcg0KK2Vycm9ycy5mb290ZXI9PC91bD48aHI+DQorZXJyb3JzLmhlYWRlcj08aDM+PGZvbnQgY29sb3I9InJlZCI+VmFsaWRhdGlvbiBFcnJvcjwvZm9udD48L2gzPjxwPllvdSBtdXN0IGNvcnJlY3QgdGhlIGZvbGxvd2luZyBlcnJvcihzKSBiZWZvcmUgcHJvY2VlZGluZzo8L3A+PHVsPg0KK2Vycm9ycy5wcmVmaXg9PGxpPg0KK2Vycm9ycy5zdWZmaXg9PC9saT4NCitlcnJvcnMuaW9FeGNlcHRpb249SS9PIGV4Y2VwdGlvbiByZW5kZXJpbmcgZXJyb3IgbWVzc2FnZXM6IHswfQ0KK2V4cGlyZWQucGFzc3dvcmQ9VXNlciBQYXNzd29yZCBoYXMgZXhwaXJlZCBmb3IgezB9DQoraGVhZGluZy5hdXRvQ29ubmVjdD1BdXRvDQoraGVhZGluZy5zdWJzY3JpcHRpb25zPUN1cnJlbnQgU3Vic2NyaXB0aW9ucw0KK2hlYWRpbmcuaG9zdD1Ib3N0IE5hbWUNCitoZWFkaW5nLnVzZXI9VXNlciBOYW1lDQoraGVhZGluZy50eXBlPVNlcnZlciBUeXBlDQoraGVhZGluZy5hY3Rpb249QWN0aW9uDQoraW5kZXguaGVhZGluZz1NYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24gT3B0aW9ucw0KK2luZGV4LmxvZ29uPUxvZyBvbiB0byB0aGUgTWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uDQoraW5kZXgucmVnaXN0cmF0aW9uPVJlZ2lzdGVyIHdpdGggdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbg0KK2luZGV4LnRpdGxlPU1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbg0KK2luZGV4LnRvdXI9QSBXYWxraW5nIFRvdXIgb2YgdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbg0KK2xpbmtTdWJzY3JpcHRpb24uaW89SS9PIEVycm9yOiB7MH0NCitsaW5rU3Vic2NyaXB0aW9uLm5vU3Vic2NyaXB0aW9uPU5vIHN1YnNjcmlwdGlvbiB1bmRlciBhdHRyaWJ1dGUgezB9DQorbGlua1VzZXIuaW89SS9PIEVycm9yOiB7MH0NCitsaW5rVXNlci5ub1VzZXI9Tm8gdXNlciB1bmRlciBhdHRyaWJ1dGUgezB9DQorbG9nb24udGl0bGU9TWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uIC0gTG9nb24NCittYWluTWVudS5oZWFkaW5nPU1haW4gTWVudSBPcHRpb25zIGZvciANCittYWluTWVudS5sb2dvZmY9TG9nIG9mZiBNYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24NCittYWluTWVudS5yZWdpc3RyYXRpb249RWRpdCB5b3VyIHVzZXIgcmVnaXN0cmF0aW9uIHByb2ZpbGUNCittYWluTWVudS50aXRsZT1NYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24gLSBNYWluIE1lbnUNCitvcHRpb24uaW1hcD1JTUFQIFByb3RvY29sDQorb3B0aW9uLnBvcDM9UE9QMyBQcm90b2NvbA0KKyMgcHJvbXB0Lg0KK2F1dG9Db25uZWN0PUF1dG8gQ29ubmVjdA0KK2Zyb21BZGRyZXNzPUZyb20gQWRkcmVzcw0KK2Z1bGxOYW1lPUZ1bGwgTmFtZQ0KK21haWxIb3N0bmFtZT1NYWlsIFNlcnZlcg0KK21haWxQYXNzd29yZD1NYWlsIFBhc3N3b3JkDQorbWFpbFNlcnZlclR5cGU9U2VydmVyIFR5cGUNCittYWlsVXNlcm5hbWU9TWFpbCBVc2VybmFtZQ0KK3Bhc3N3b3JkPVBhc3N3b3JkDQorcGFzc3dvcmQyPShSZXBlYXQpIFBhc3N3b3JkDQorcmVwbHlUb0FkZHJlc3M9UmVwbHkgVG8gQWRkcmVzcw0KK3VzZXJuYW1lPVVzZXJuYW1lDQorcmVnaXN0cmF0aW9uLmFkZFN1YnNjcmlwdGlvbj1BZGQNCityZWdpc3RyYXRpb24uZGVsZXRlU3Vic2NyaXB0aW9uPURlbGV0ZQ0KK3JlZ2lzdHJhdGlvbi5lZGl0U3Vic2NyaXB0aW9uPUVkaXQNCityZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlPVJlZ2lzdGVyIGZvciB0aGUgTWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uDQorcmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQ9RWRpdCBSZWdpc3RyYXRpb24gZm9yIHRoZSBNYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24NCitzdWJzY3JpcHRpb24udGl0bGUuY3JlYXRlPUNyZWF0ZSBOZXcgTWFpbCBTdWJzY3JpcHRpb24NCitzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlPURlbGV0ZSBFeGlzdGluZyBNYWlsIFN1YnNjcmlwdGlvbg0KK3N1YnNjcmlwdGlvbi50aXRsZS5lZGl0PUVkaXQgRXhpc3RpbmcgTWFpbCBTdWJzY3JpcHRpb24NCisNCisjIFN0YW5kYXJkIGVycm9yIG1lc3NhZ2VzIGZvciB2YWxpZGF0b3IgZnJhbWV3b3JrIGNoZWNrcw0KK2Vycm9ycy5yZXF1aXJlZD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgcmVxdWlyZWQuDQorZXJyb3JzLm1pbmxlbmd0aD0ke2dldFRleHQoZmllbGROYW1lKX0gY2Fubm90IGJlIGxlc3MgdGhhbiB7MX0gY2hhcmFjdGVycy4NCitlcnJvcnMubWF4bGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHsxfSBjaGFyYWN0ZXJzLg0KK2Vycm9ycy5pbnZhbGlkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBpbnZhbGlkLg0KK2Vycm9ycy5ieXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGJ5dGUuDQorZXJyb3JzLnNob3J0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIHNob3J0Lg0KK2Vycm9ycy5pbnRlZ2VyPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGludGVnZXIuDQorZXJyb3JzLmxvbmc9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gbG9uZy4NCitlcnJvcnMuZmxvYXQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gZmxvYXQuDQorZXJyb3JzLmRvdWJsZT0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBkb3VibGUuDQorZXJyb3JzLmRhdGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIG5vdCBhIGRhdGUuDQorZXJyb3JzLnJhbmdlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgaW4gdGhlIHJhbmdlICR7bWluTGVuZ3RofSB0aHJvdWdoICR7bWF4TGVuZ3RofS4NCitlcnJvcnMuY3JlZGl0Y2FyZD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgbm90IGEgdmFsaWQgY3JlZGl0IGNhcmQgbnVtYmVyLg0KK2Vycm9ycy5lbWFpbD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgYW4gaW52YWxpZCBlLW1haWwgYWRkcmVzcy4NCitlcnJvcnMubGl0ZXJhbD0ke2dldFRleHQoZmllbGROYW1lKX0NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTWFpbHJlYWRlclN1cHBvcnRfamEucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9NYWlscmVhZGVyU3VwcG9ydF9qYS5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmNGYxNzQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTWFpbHJlYWRlclN1cHBvcnRfamEucHJvcGVydGllcwpAQCAtMCwwICsxLDg5IEBACitidXR0b24uY2FuY2VsPVx1MzBhZFx1MzBlM1x1MzBmM1x1MzBiYlx1MzBlYg0KK2J1dHRvbi5jb25maXJtPVx1NzhiYVx1OGE4ZA0KK2J1dHRvbi5yZXNldD1cdTMwZWFcdTMwYmJcdTMwYzNcdTMwYzgNCitidXR0b24uc2F2ZT1cdTRmZGRcdTViNTgNCitjaGFuZ2UubWVzc2FnZT1cdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNkVcdTY3MDlcdTUyQjlcdTY3MUZcdTk2NTBcdTMwNENcdTkwNEVcdTMwNEVcdTMwN0VcdTMwNTdcdTMwNUZcdTMwMDJcdTMwQjdcdTMwQjlcdTMwQzZcdTMwRTBcdTdCQTFcdTc0MDZcdTgwMDVcdTMwNkJcdTMwNEFcdTU1NEZcdTMwNDRcdTU0MDhcdTMwOEZcdTMwNUJcdTRFMEJcdTMwNTVcdTMwNDQNCitjaGFuZ2UudHJ5PVx1NTE4RFx1OEE2Nlx1ODg0Qw0KK2NoYW5nZS50aXRsZT1cdTMwZDFcdTMwYjlcdTMwZWZcdTMwZmNcdTMwYzlcdTY3MWZcdTk2NTBcdTUyMDdcdTMwOGMNCitkYXRhYmFzZS5sb2FkPSB7MH0gXHUzMDRCXHUzMDg5XHUzMEM3XHUzMEZDXHUzMEJGXHUzMEQ5XHUzMEZDXHUzMEI5XHUzMDkyXHUzMEVEXHUzMEZDXHUzMEM5XHUzMDY3XHUzMDREXHUzMDdFXHUzMDVCXHUzMDkzDQorZXJyb3IuZGF0YWJhc2UubWlzc2luZz1cdTMwRTZcdTMwRkNcdTMwQjZcdTMwQzdcdTMwRkNcdTMwQkZcdTMwRDlcdTMwRkNcdTMwQjlcdTMwNENcdTg5OEJcdTMwNjRcdTMwNEJcdTMwOEFcdTMwN0VcdTMwNUJcdTMwOTNcdTMwMDJcdTMwRURcdTMwQjBcdTMwQUFcdTMwRjNcdTMwNkVcdThBOERcdThBM0NcdTMwNENcdTUxRkFcdTY3NjVcdTMwN0VcdTMwNUJcdTMwOTMNCitlcnJvci5mcm9tQWRkcmVzcy5mb3JtYXQ9RnJvbVx1MzBBMlx1MzBDOVx1MzBFQ1x1MzBCOVx1MzA2RVx1NjZGOFx1NUYwRlx1MzA0Q1x1NkI2M1x1MzA1N1x1MzA0Rlx1MzA0Mlx1MzA4QVx1MzA3RVx1MzA1Qlx1MzA5Mw0KK2Vycm9yLmZyb21BZGRyZXNzLnJlcXVpcmVkPUZyb21cdTMwQTJcdTMwQzlcdTMwRUNcdTMwQjlcdTMwOTJcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQNCitlcnJvci5mdWxsTmFtZS5yZXF1aXJlZD1cdTMwRDVcdTMwRUJcdTMwQ0RcdTMwRkNcdTMwRTBcdTMwOTJcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQNCitlcnJvci5ob3N0LnJlcXVpcmVkPVx1MzBFMVx1MzBGQ1x1MzBFQlx1MzBCNVx1MzBGQ1x1MzBEMFx1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NA0KK2Vycm9yLm5vU3Vic2NyaXB0aW9uPVN1YnNjcmlwdGlvbiBiZWFuIFx1MzA0Y1x1MzBiYlx1MzBjM1x1MzBiN1x1MzBlN1x1MzBmM1x1MzA2ZVx1NGUyZFx1MzA2Ylx1MzA0Mlx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5Mw0KK2Vycm9yLnBhc3N3b3JkLmV4cGlyZWQ9XHUzMEU2XHUzMEZDXHUzMEI2IHswfSBcdTMwNkVcdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNkVcdTY3MDlcdTUyQjlcdTY3MUZcdTk2NTBcdTMwNENcdTkwNEVcdTMwNEVcdTMwN0VcdTMwNTdcdTMwNUYNCitlcnJvci5wYXNzd29yZC5yZXF1aXJlZD1cdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNENcdTVGQzVcdTg5ODFcdTMwNjdcdTMwNTkNCitlcnJvci5wYXNzd29yZDIucmVxdWlyZWQ9XHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5KFx1NzhCQVx1OEE4RFx1NzUyOClcdTMwNENcdTVGQzVcdTg5ODFcdTMwNjdcdTMwNTkNCitlcnJvci5wYXNzd29yZC5tYXRjaD1cdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNjhcdTc4QkFcdThBOERcdTc1MjhcdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNENcdTRFMDBcdTgxRjRcdTMwNTdcdTMwNjZcdTMwNDRcdTMwN0VcdTMwNUJcdTMwOTMNCitlcnJvci5wYXNzd29yZC5taXNtYXRjaD1cdTMwRTZcdTMwRkNcdTMwQjZcdTU0MERcdTMwN0VcdTMwNUZcdTMwNkZcdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNENcdTRFMERcdTZCNjNcdTMwNjdcdTMwNTlcdTMwMDJcdTUxOERcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQNCitlcnJvci5yZXBseVRvQWRkcmVzcy5mb3JtYXQ9XHU4RkQ0XHU0RkUxXHUzMEEyXHUzMEM5XHUzMEVDXHUzMEI5XHUzMDZFXHU2NkY4XHU1RjBGXHUzMDRDXHU2QjYzXHUzMDU3XHUzMDRGXHUzMDQyXHUzMDhBXHUzMDdFXHUzMDVCXHUzMDkzDQorc3RydXRzLm1lc3NhZ2VzLmludmFsaWQudG9rZW49XHUzMDUzXHUzMDZFXHUzMEQ1XHUzMEE5XHUzMEZDXHUzMEUwXHUzMDZFXHU1MTg1XHU1QkI5XHUzMDRDXHU2QjYzXHUzMDU3XHUzMDRGXHUzMDZBXHUzMDQ0XHUzMDVGXHUzMDgxXHU5MDAxXHU0RkUxXHUzMDU5XHUzMDhCXHUzMDUzXHUzMDY4XHUzMDRDXHU1MUZBXHU2NzY1XHUzMDdFXHUzMDVCXHUzMDkzDQorZXJyb3IudHlwZS5pbnZhbGlkPVx1MzBCNVx1MzBGQ1x1MzBEMFx1MzBCRlx1MzBBNFx1MzBEN1x1MzA2RiAnaW1hcCcgXHUzMDRCICdwb3AzJ1x1MzA2RVx1MzA2OVx1MzA2MVx1MzA4OVx1MzA0Qlx1MzA2N1x1MzA2QVx1MzA1MVx1MzA4Q1x1MzA3MFx1MzA2QVx1MzA4QVx1MzA3RVx1MzA1Qlx1MzA5Mw0KK2Vycm9yLnR5cGUucmVxdWlyZWQ9XHUzMEI1XHUzMEZDXHUzMEQwXHUzMEJGXHUzMEE0XHUzMEQ3XHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0DQorZXJyb3IudXNlcm5hbWUucmVxdWlyZWQ9XHUzMEU2XHUzMEZDXHUzMEI2XHU1NDBEXHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0DQorZXJyb3IudXNlcm5hbWUudW5pcXVlPVx1MzA1RFx1MzA2RVx1MzBFNlx1MzBGQ1x1MzBCNlx1NTQwRFx1MzA2Rlx1NjVFMlx1MzA2Qlx1NEY3Rlx1NzUyOFx1MzA1NVx1MzA4Q1x1MzA2Nlx1MzA0NFx1MzA3RVx1MzA1OVx1MzAwMiBcdTUyMjVcdTMwNkVcdTMwRTZcdTMwRkNcdTMwQjZcdTU0MERcdTMwOTJcdTkwNzhcdTYyOUVcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQNCitlcnJvcnMuZm9vdGVyPTwvdWw+PGhyPg0KK2Vycm9ycy5oZWFkZXI9PGgzPjxmb250IGNvbG9yPSJyZWQiPlx1NTE2NVx1NTI5Ylx1MzBjMVx1MzBhN1x1MzBjM1x1MzBhZlx1MzBhOFx1MzBlOVx1MzBmYzwvZm9udD48L2gzPjxwPlx1NGVlNVx1NGUwYlx1MzA2ZVx1MzBhOFx1MzBlOVx1MzBmY1x1MzA5Mlx1NzhiYVx1OGE4ZFx1MzA1N1x1MzA2Nlx1MzA0Zlx1MzA2MFx1MzA1NVx1MzA0NDo8L3A+PHVsPg0KK2Vycm9ycy5wcmVmaXg9PGxpPg0KK2Vycm9ycy5zdWZmaXg9PC9saT4NCitlcnJvcnMuaW9FeGNlcHRpb249SS9PXHU0ZjhiXHU1OTE2XHUzMDRjXHU3NjdhXHU3NTFmXHUzMDU3XHUzMDdlXHUzMDU3XHUzMDVmOiB7MH0NCitleHBpcmVkLnBhc3N3b3JkPVx1MzBFNlx1MzBGQ1x1MzBCNiB7MH0gXHUzMDZFXHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDZFXHU2NzA5XHU1MkI5XHU2NzFGXHU5NjUwXHUzMDRDXHU5MDRFXHUzMDRFXHUzMDdFXHUzMDU3XHUzMDVGDQoraGVhZGluZy5hdXRvQ29ubmVjdD1cdTgxZWFcdTUyZDVcdTYzYTVcdTdkOWENCitoZWFkaW5nLnN1YnNjcmlwdGlvbnM9XHU3M2ZlXHU1NzI4XHUzMDZlXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxDQoraGVhZGluZy5ob3N0PVx1MzBkYlx1MzBiOVx1MzBjOFx1NTQwZA0KK2hlYWRpbmcudXNlcj1cdTMwZTZcdTMwZmNcdTMwYjZcdTU0MGQNCitoZWFkaW5nLnR5cGU9XHUzMGI1XHUzMGZjXHUzMGQwXHUzMGJmXHUzMGE0XHUzMGQ3DQoraGVhZGluZy5hY3Rpb249XHU2NGNkXHU0ZjVjDQoraW5kZXguaGVhZGluZz1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIFx1MzBhYVx1MzBkN1x1MzBiN1x1MzBlN1x1MzBmMw0KK2luZGV4LmxvZ29uPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZWRcdTMwYjBcdTMwYWFcdTMwZjMNCitpbmRleC5yZWdpc3RyYXRpb249TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBlNlx1MzBmY1x1MzBiNlx1NzY3Ylx1OTMzMg0KK2luZGV4LnRpdGxlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMoU3RydXRzIDEuMS1kZXYpDQoraW5kZXgudG91cj1cdTMwYjVcdTMwZjNcdTMwZDdcdTMwZWJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjNcdTMwOTJcdTY1NjNcdTdiNTZcdTMwNTlcdTMwOGINCitsaW5rU3Vic2NyaXB0aW9uLmlvPUkvT1x1MzBhOFx1MzBlOVx1MzBmYzogezB9DQorbGlua1N1YnNjcmlwdGlvbi5ub1N1YnNjcmlwdGlvbj1cdTVjNWVcdTYwMjcgezB9IFx1MzA2Ylx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMVx1MzA0Y1x1NWI1OFx1NTcyOFx1MzA1N1x1MzA3ZVx1MzA1Ylx1MzA5MyAgDQorbGlua1VzZXIuaW89SS9PXHUzMGE4XHUzMGU5XHUzMGZjOiB7MH0NCitsaW5rVXNlci5ub1VzZXI9XHU1YzVlXHU2MDI3IHswfSBcdTMwNmJcdTMwZTZcdTMwZmNcdTMwYjZcdTYwYzVcdTU4MzFcdTMwNGNcdTViNThcdTU3MjhcdTMwNTdcdTMwN2VcdTMwNWJcdTMwOTMNCitsb2dvbi50aXRsZT1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGVkXHUzMGIwXHUzMGFhXHUzMGYzDQorbWFpbk1lbnUuaGVhZGluZz1cdTMwZTFcdTMwYTRcdTMwZjNcdTMwZTFcdTMwY2JcdTMwZTVcdTMwZmMNCittYWluTWVudS5sb2dvZmY9TWFpbFJlYWRlciBcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjNcdTMwNmVcdTMwZWRcdTMwYjBcdTMwYWFcdTMwZDUNCittYWluTWVudS5yZWdpc3RyYXRpb249XHUzMGQ3XHUzMGVkXHUzMGQ1XHUzMGExXHUzMGE0XHUzMGViXHUzMDZlXHU3ZGU4XHU5NmM2DQorbWFpbk1lbnUudGl0bGU9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBlMVx1MzBhNFx1MzBmM1x1MzBlMVx1MzBjYlx1MzBlNVx1MzBmYw0KK29wdGlvbi5pbWFwPUlNQVAgXHUzMGQ3XHUzMGVkXHUzMGM4XHUzMGIzXHUzMGViDQorb3B0aW9uLnBvcDM9UE9QMyBcdTMwZDdcdTMwZWRcdTMwYzhcdTMwYjNcdTMwZWINCisjIHByb21wdC4NCithdXRvQ29ubmVjdD1cdTgxZWFcdTUyZDVcdTYzYTVcdTdkOWENCitmcm9tQWRkcmVzcz1Gcm9tXHUzMGEyXHUzMGM5XHUzMGVjXHUzMGI5DQorZnVsbE5hbWU9XHUzMGQ1XHUzMGViXHUzMGNkXHUzMGZjXHUzMGUwDQorbWFpbEhvc3RuYW1lPVx1MzBlMVx1MzBmY1x1MzBlYlx1MzBiNVx1MzBmY1x1MzBkMA0KK21haWxQYXNzd29yZD1cdTMwZTFcdTMwZmNcdTMwZWJcdTMwZDFcdTMwYjlcdTMwZWZcdTMwZmNcdTMwYzkNCittYWlsU2VydmVyVHlwZT1cdTMwYjVcdTMwZmNcdTMwZDBcdTMwYmZcdTMwYTRcdTMwZDcNCittYWlsVXNlcm5hbWU9XHUzMGUxXHUzMGZjXHUzMGViXHUzMGU2XHUzMGZjXHUzMGI2XHU1NDBkDQorLnBhc3N3b3JkPVx1MzBkMVx1MzBiOVx1MzBlZlx1MzBmY1x1MzBjOQ0KK3Bhc3N3b3JkMj1cdTMwZDFcdTMwYjlcdTMwZWZcdTMwZmNcdTMwYzkoXHU3OGJhXHU4YThkXHU3NTI4KQ0KK3JlcGx5VG9BZGRyZXNzPVx1OGZkNFx1NGZlMVx1MzBhMlx1MzBjOVx1MzBlY1x1MzBiOQ0KK3VzZXJuYW1lPVx1MzBlNlx1MzBmY1x1MzBiNlx1NTQwZA0KK3JlZ2lzdHJhdGlvbi5hZGRTdWJzY3JpcHRpb249XHU2NWIwXHU4OThmXHU0ZjVjXHU2MjEwDQorcmVnaXN0cmF0aW9uLmRlbGV0ZVN1YnNjcmlwdGlvbj1cdTUyNGFcdTk2NjQNCityZWdpc3RyYXRpb24uZWRpdFN1YnNjcmlwdGlvbj1cdTdkZThcdTk2YzYNCityZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZTZcdTMwZmNcdTMwYjZcdTc2N2JcdTkzMzINCityZWdpc3RyYXRpb24udGl0bGUuZWRpdD1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGQ3XHUzMGVkXHUzMGQ1XHUzMGExXHUzMGE0XHUzMGViXHU3ZGU4XHU5NmM2DQorc3Vic2NyaXB0aW9uLnRpdGxlLmNyZWF0ZT1cdTMwZTFcdTMwZmNcdTMwZWJcdThjZmNcdThhYWRcdTYwYzVcdTU4MzFcdTMwNmVcdTY1YjBcdTg5OGZcdTRmNWNcdTYyMTANCitzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlPVx1MzBlMVx1MzBmY1x1MzBlYlx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMVx1MzA2ZVx1NTI0YVx1OTY2NA0KK3N1YnNjcmlwdGlvbi50aXRsZS5lZGl0PVx1MzBlMVx1MzBmY1x1MzBlYlx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMVx1MzA2ZVx1N2RlOFx1OTZjNg0KKw0KKyMgU3RhbmRhcmQgZXJyb3IgbWVzc2FnZXMgZm9yIHZhbGlkYXRvciBmcmFtZXdvcmsgY2hlY2tzDQorZXJyb3JzLnJlcXVpcmVkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwOTJcdTUxNjVcdTUyOWJcdTMwNTdcdTMwNjZcdTMwNGZcdTMwNjBcdTMwNTVcdTMwNDRcdTMwMDINCitlcnJvcnMubWlubGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmYgezF9IFx1NjU4N1x1NWI1N1x1NGVlNVx1NGUwYVx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMg0KK2Vycm9ycy5tYXhsZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZiB7Mn0gXHU2NTg3XHU1YjU3XHU0ZWU1XHU0ZTBiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyDQorZXJyb3JzLmludmFsaWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2Zlx1NmI2M1x1MzA1N1x1MzA0Zlx1MzA0Mlx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMg0KK2Vycm9ycy5ieXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZieXRlXHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyDQorZXJyb3JzLnNob3J0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZzaG9ydFx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMg0KK2Vycm9ycy5pbnRlZ2VyPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZpbnRlZ2VyXHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyDQorZXJyb3JzLmxvbmc9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZmxvbmdcdTU3OGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDINCitlcnJvcnMuZmxvYXQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZmZsb2F0XHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyDQorZXJyb3JzLmRvdWJsZT0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmZG91YmxlXHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyDQorZXJyb3JzLmRhdGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2Zlx1NjVlNVx1NGVkOFx1MzA2N1x1MzA2Zlx1MzA0Mlx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMg0KK2Vycm9ycy5yYW5nZT0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmIHsxfSBcdTMwNGJcdTMwODkgezJ9IFx1MzA2ZVx1OTU5M1x1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMg0KK2Vycm9ycy5jcmVkaXRjYXJkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZcdTZiNjNcdTMwNTdcdTMwNDRcdTMwYWZcdTMwZWNcdTMwYjhcdTMwYzNcdTMwYzhcdTMwYWJcdTMwZmNcdTMwYzlcdTc1NmFcdTUzZjdcdTMwNjdcdTMwNmZcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDINCitlcnJvcnMuZW1haWw9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2Zlx1NmI2M1x1MzA1N1x1MzA0NFx1MzBlMVx1MzBmY1x1MzBlYlx1MzBhMlx1MzBjOVx1MzBlY1x1MzBiOVx1MzA2N1x1MzA2Zlx1MzA0Mlx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9NYWlscmVhZGVyU3VwcG9ydF9ydS5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL01haWxyZWFkZXJTdXBwb3J0X3J1LnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjgwZWNkNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9NYWlscmVhZGVyU3VwcG9ydF9ydS5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsODkgQEAKK2J1dHRvbi5jYW5jZWw9XHUwNDFlXHUwNDQyXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDQyXHUwNDRjDQorYnV0dG9uLmNvbmZpcm09XHUwNDFmXHUwNDNlXHUwNDM0XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM0XHUwNDM4XHUwNDQyXHUwNDRjDQorYnV0dG9uLnJlc2V0PVx1MDQyMVx1MDQzMVx1MDQ0MFx1MDQzZVx1MDQ0MVx1MDQzOFx1MDQ0Mlx1MDQ0Yw0KK2J1dHRvbi5zYXZlPVx1MDQyMVx1MDQzZVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0Yw0KK2NoYW5nZS5tZXNzYWdlPVlvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQuICBQbGVhc2UgYXNrIHRoZSBzeXN0ZW0gYWRtaW5pc3RyYXRvciB0byBjaGFuZ2UgaXQuDQorY2hhbmdlLnRyeT1UcnkgQWdhaW4NCitjaGFuZ2UudGl0bGU9UGFzc3dvcmQgSGFzIEV4cGlyZWQNCitkYXRhYmFzZS5sb2FkPVx1MDQxMVx1MDQzMFx1MDQzN1x1MDQzMCBcdTA0MzRcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0NDUgXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDM3XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDMwIFx1MDQzOFx1MDQzNyB7MH0NCitlcnJvci5kYXRhYmFzZS5taXNzaW5nPVx1MDQxZFx1MDQzNSBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2UgXHUwNDM4XHUwNDNjXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0ZiAtIFx1MDQzZFx1MDQzNVx1MDQzMlx1MDQzZVx1MDQzN1x1MDQzY1x1MDQzZVx1MDQzNlx1MDQzZFx1MDQzZSBcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzggXHUwNDMwXHUwNDQzXHUwNDQyXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDM4XHUwNDQ0XHUwNDM4XHUwNDNhXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDRlLg0KK2Vycm9yLmZyb21BZGRyZXNzLmZvcm1hdD1cdTA0MTIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDM1ICdcdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyOicgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkIFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MzIgXHUwNDNkXHUwNDM1XHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDNiXHUwNDRjXHUwNDNkXHUwNDNlXHUwNDNjIFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzNS4NCitlcnJvci5mcm9tQWRkcmVzcy5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MzIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDM1ICdcdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyOicuDQorZXJyb3IuZnVsbE5hbWUucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDM4XHUwNDNjXHUwNDRmLg0KK2Vycm9yLmhvc3QucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0NGJcdTA0MzkgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwLg0KK2Vycm9yLm5vU3Vic2NyaXB0aW9uPVx1MDQxZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQzMCBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDMwXHUwNDM5XHUwNDM0XHUwNDM1XHUwNDNkXHUwNDMwIFx1MDQzMiBcdTA0NDFcdTA0MzVcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRmDQorZXJyb3IucGFzc3dvcmQuZXhwaXJlZD1Zb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkIGZvciB1c2VybmFtZSB7MH0NCitlcnJvci5wYXNzd29yZC5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0Yy4NCitlcnJvci5wYXNzd29yZDIucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRmLg0KK2Vycm9yLnBhc3N3b3JkLm1hdGNoPVx1MDQxZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0YyBcdTA0MzggXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0ZiBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDNlXHUwNDMyXHUwNDNmXHUwNDMwXHUwNDM0XHUwNDMwXHUwNDRlXHUwNDQyLg0KK2Vycm9yLnBhc3N3b3JkLm1pc21hdGNoPVx1MDQxZFx1MDQzNVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0MzhcdTA0M2NcdTA0NGYgXHUwNDM4L1x1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGMgLSBcdTA0M2ZcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0MzFcdTA0NDNcdTA0MzlcdTA0NDJcdTA0MzUsIFx1MDQzZlx1MDQzZVx1MDQzNlx1MDQzMFx1MDQzYlx1MDQ0M1x1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMCwgXHUwNDQxXHUwNDNkXHUwNDNlXHUwNDMyXHUwNDMwLg0KK2Vycm9yLnJlcGx5VG9BZGRyZXNzLmZvcm1hdD1cdTA0MTIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDM1ICdcdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzZFx1MDQzMDonIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDMyIFx1MDQzZFx1MDQzNVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQzZVx1MDQzYyBcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDJcdTA0MzUuDQorc3RydXRzLm1lc3NhZ2VzLmludmFsaWQudG9rZW49XHUwNDJkXHUwNDQyXHUwNDMwIFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMCBcdTA0M2RcdTA0MzUgXHUwNDNjXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDQyIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0M2VcdTA0MzFcdTA0NDBcdTA0MzBcdTA0MzFcdTA0M2VcdTA0NDJcdTA0MzBcdTA0M2RcdTA0MzAgLSBcdTA0M2RcdTA0MzBcdTA0NDBcdTA0NDNcdTA0NDhcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQwXHUwNDRmXHUwNDM0XHUwNDNhXHUwNDMwIFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZiBcdTA0MzRcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0NDUuDQorZXJyb3IudHlwZS5pbnZhbGlkPVx1MDQxMiBcdTA0M2FcdTA0MzBcdTA0NDdcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzUgXHUwNDQyXHUwNDM4XHUwNDNmXHUwNDMwIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMCBcdTA0M2NcdTA0M2VcdTA0MzNcdTA0NDNcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQ0YiBcdTA0M2JcdTA0MzhcdTA0NDhcdTA0NGMgJ2ltYXAnIFx1MDQzOFx1MDQzYlx1MDQzOCAncG9wMycNCitlcnJvci50eXBlLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQyXHUwNDM4XHUwNDNmIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMA0KK2Vycm9yLnVzZXJuYW1lLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDM4XHUwNDNjXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Zg0KK2Vycm9yLnVzZXJuYW1lLnVuaXF1ZT1cdTA0MjNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDM4XHUwNDNjXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0ZiBcdTA0NDNcdTA0MzZcdTA0MzUgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIC0gXHUwNDMyXHUwNDRiXHUwNDMxXHUwNDM1XHUwNDQwXHUwNDM4XHUwNDQyXHUwNDM1LCBcdTA0M2ZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQzNFx1MDQ0MFx1MDQ0M1x1MDQzM1x1MDQzZVx1MDQzNSBcdTA0MzhcdTA0M2NcdTA0NGYuDQorZXJyb3JzLmZvb3Rlcj08L3VsPjxocj4NCitlcnJvcnMuaGVhZGVyPTxoMz48Zm9udCBjb2xvcj0icmVkIj5cdTA0MWVcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzggXHUwNDNmXHUwNDQwXHUwNDM4IFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzNVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzOCBcdTA0MzRcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0NDU8L2ZvbnQ+PC9oMz48cD5cdTA0MTJcdTA0NGIgXHUwNDM0XHUwNDNlXHUwNDNiXHUwNDM2XHUwNDNkXHUwNDRiIFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzUgXHUwNDNkXHUwNDM4XHUwNDM2XHUwNDM1IFx1MDQzZVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzYVx1MDQzODo8L3A+PHVsPg0KK2Vycm9ycy5wcmVmaXg9PGxpPg0KK2Vycm9ycy5zdWZmaXg9PC9saT4NCitlcnJvcnMuaW9FeGNlcHRpb249XHUwNDFlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDMwIFx1MDQzMlx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMC9cdTA0MzJcdTA0NGJcdTA0MzJcdTA0M2VcdTA0MzRcdTA0MzAgXHUwNDNmXHUwNDQwXHUwNDM4IFx1MDQ0MVx1MDQzZVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQzZFx1MDQzOFx1MDQzOCBcdTA0NDFcdTA0M2VcdTA0M2VcdTA0MzFcdTA0NDlcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzkgXHUwNDNlXHUwNDMxIFx1MDQzZVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzYVx1MDQzMFx1MDQ0NTogezB9DQorZXhwaXJlZC5wYXNzd29yZD1Vc2VyIFBhc3N3b3JkIGhhcyBleHBpcmVkIGZvciB7MH0NCitoZWFkaW5nLmF1dG9Db25uZWN0PVx1MDQxMFx1MDQzMlx1MDQ0Mlx1MDQzZVx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzYVx1MDQzOA0KK2hlYWRpbmcuc3Vic2NyaXB0aW9ucz1cdTA0MTdcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDM4DQoraGVhZGluZy5ob3N0PVx1MDQyMVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MA0KK2hlYWRpbmcudXNlcj1cdTA0MThcdTA0M2NcdTA0NGYNCitoZWFkaW5nLnR5cGU9XHUwNDIyXHUwNDM4XHUwNDNmIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMA0KK2hlYWRpbmcuYWN0aW9uPVx1MDQxNFx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQzOFx1MDQzNQ0KK2luZGV4LmhlYWRpbmc9XHUwNDE0XHUwNDM1XHUwNDNjXHUwNDNlXHUwNDNkXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNlXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYlx1MDQzZVx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSAnXHUwNDI3XHUwNDQyXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQ0YicNCitpbmRleC5sb2dvbj1cdTA0MTJcdTA0M2VcdTA0MzlcdTA0NDJcdTA0MzggXHUwNDNhXHUwNDMwXHUwNDNhIFx1MDQzN1x1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQzOSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGMNCitpbmRleC5yZWdpc3RyYXRpb249XHUwNDE3XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRjXHUwNDQxXHUwNDRmDQoraW5kZXgudGl0bGU9XHUwNDE0XHUwNDM1XHUwNDNjXHUwNDNlXHUwNDNkXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNlXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYlx1MDQzZVx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSAnXHUwNDI3XHUwNDQyXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQ0YicgKFN0cnV0cyAxLjEtZGV2KQ0KK2luZGV4LnRvdXI9XHUwNDFlXHUwNDMxXHUwNDM3XHUwNDNlXHUwNDQwIFx1MDQxNFx1MDQzNVx1MDQzY1x1MDQzZVx1MDQzZFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzZVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzM1x1MDQzZSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgJ1x1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0NGInDQorbGlua1N1YnNjcmlwdGlvbi5pbz1cdTA0MWVcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzAgXHUwNDMyXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwL1x1MDQzMlx1MDQ0Ylx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMCAoXHUwNDM0XHUwNDNiXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQzOCk6IHswfQ0KK2xpbmtTdWJzY3JpcHRpb24ubm9TdWJzY3JpcHRpb249XHUwNDEwXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDMxXHUwNDQzXHUwNDQyIHswfSBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDNlXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM4XHUwNDQyIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M2UgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDM1IFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDM1XHUwNDQyLg0KK2xpbmtVc2VyLmlvPVx1MDQxZVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzYVx1MDQzMCBcdTA0MzJcdTA0MzJcdTA0M2VcdTA0MzRcdTA0MzAvXHUwNDMyXHUwNDRiXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwIChcdTA0MzRcdTA0M2JcdTA0NGYgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRmKTogezB9DQorbGlua1VzZXIubm9Vc2VyPVx1MDQxMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0MiB7MH0gXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzZVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzOFx1MDQ0MiBcdTA0MzhcdTA0M2RcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNlIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQzNSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0M1x1MDQ0OVx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQ0M1x1MDQzNVx1MDQ0Mi4NCitsb2dvbi50aXRsZT1cdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0NGIgLSBcdTA0MWZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2FcdTA0MzAgXHUwNDM4XHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM4IFx1MDQzOCBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGYuDQorbWFpbk1lbnUuaGVhZGluZz1cdTA0MWRcdTA0MzBcdTA0NDFcdTA0NDJcdTA0NDBcdTA0M2VcdTA0MzlcdTA0M2FcdTA0MzggXHUwNDMzXHUwNDNiXHUwNDMwXHUwNDMyXHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0ZSBcdTA0MzRcdTA0M2JcdTA0NGYNCittYWluTWVudS5sb2dvZmY9XHUwNDEyXHUwNDRiXHUwNDM5XHUwNDQyXHUwNDM4DQorbWFpbk1lbnUucmVnaXN0cmF0aW9uPVx1MDQxOFx1MDQzN1x1MDQzY1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0MzJcdTA0M2VcdTA0MzggXHUwNDNkXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDM5XHUwNDNhXHUwNDM4DQorbWFpbk1lbnUudGl0bGU9XHUwNDE0XHUwNDM1XHUwNDNjXHUwNDNlXHUwNDNkXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNlXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYlx1MDQzZVx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSAnXHUwNDI3XHUwNDQyXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQ0YicgLSBcdTA0MWVcdTA0NDFcdTA0M2RcdTA0M2VcdTA0MzJcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDRlDQorb3B0aW9uLmltYXA9XHUwNDFmXHUwNDQwXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDNhXHUwNDNlXHUwNDNiIElNQVAgDQorb3B0aW9uLnBvcDM9XHUwNDFmXHUwNDQwXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDNhXHUwNDNlXHUwNDNiIFBPUDMgDQorIyBwcm9tcHQuDQorYXV0b0Nvbm5lY3Q9XHUwNDEwXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDNjXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDM1IFx1MDQ0MVx1MDQzZVx1MDQzNVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNToNCitmcm9tQWRkcmVzcz1cdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyOg0KK2Z1bGxOYW1lPVx1MDQxZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0MzhcdTA0M2NcdTA0NGY6DQorbWFpbEhvc3RuYW1lPVx1MDQxZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQ0Ylx1MDQzOSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDA6DQorbWFpbFBhc3N3b3JkPVx1MDQxZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0YyBcdTA0MzRcdTA0M2JcdTA0NGYgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMDoNCittYWlsU2VydmVyVHlwZT1cdTA0MjJcdTA0MzhcdTA0M2YgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwOg0KK21haWxVc2VybmFtZT1cdTA0MThcdTA0M2NcdTA0NGYgXHUwNDM0XHUwNDNiXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzZVx1MDQzM1x1MDQzZSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzA6DQorcGFzc3dvcmQ9XHUwNDFmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRjOg0KK3Bhc3N3b3JkMj0oXHUwNDFmXHUwNDNlXHUwNDM0XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1KSBcdTA0MWZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGM6DQorcmVwbHlUb0FkZHJlc3M9XHUwNDEwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQxZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0M2RcdTA0MzA6DQordXNlcm5hbWU9XHUwNDE4XHUwNDNjXHUwNDRmOg0KK3JlZ2lzdHJhdGlvbi5hZGRTdWJzY3JpcHRpb249XHUwNDE0XHUwNDNlXHUwNDMxXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjDQorcmVnaXN0cmF0aW9uLmRlbGV0ZVN1YnNjcmlwdGlvbj1cdTA0MjNcdTA0MzRcdTA0MzBcdTA0M2JcdTA0MzhcdTA0NDJcdTA0NGMNCityZWdpc3RyYXRpb24uZWRpdFN1YnNjcmlwdGlvbj1cdTA0MjBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2FcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGMNCityZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlPVx1MDQxN1x1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Y1x1MDQ0MVx1MDQ0Zg0KK3JlZ2lzdHJhdGlvbi50aXRsZS5lZGl0PVx1MDQxOFx1MDQzN1x1MDQzY1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0MzRcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzUgXHUwNDNlIFx1MDQ0MVx1MDQzMlx1MDQzZVx1MDQzNVx1MDQzOSBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzgNCitzdWJzY3JpcHRpb24udGl0bGUuY3JlYXRlPVx1MDQyMVx1MDQzZVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2RcdTA0M2VcdTA0MzJcdTA0NDNcdTA0NGUgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDQzDQorc3Vic2NyaXB0aW9uLnRpdGxlLmRlbGV0ZT1cdTA0MjNcdTA0MzRcdTA0MzBcdTA0M2JcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDQzXHUwNDRlIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQ0Mw0KK3N1YnNjcmlwdGlvbi50aXRsZS5lZGl0PVx1MDQyMFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzYVx1MDQ0Mlx1MDQzOFx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDNcdTA0NDlcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0NGVcdTA0NDlcdTA0NDNcdTA0NGUgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDQzDQorDQorIyBTdGFuZGFyZCBlcnJvciBtZXNzYWdlcyBmb3IgdmFsaWRhdG9yIGZyYW1ld29yayBjaGVja3MNCitlcnJvcnMucmVxdWlyZWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIHJlcXVpcmVkLg0KK2Vycm9ycy5taW5sZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGNhbm5vdCBiZSBsZXNzIHRoYW4gezF9IGNoYXJhY3RlcnMuDQorZXJyb3JzLm1heGxlbmd0aD0ke2dldFRleHQoZmllbGROYW1lKX0gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiB7Mn0gY2hhcmFjdGVycy4NCitlcnJvcnMuaW52YWxpZD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgaW52YWxpZC4NCitlcnJvcnMuYnl0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBieXRlLg0KK2Vycm9ycy5zaG9ydD0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBzaG9ydC4NCitlcnJvcnMuaW50ZWdlcj0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBpbnRlZ2VyLg0KK2Vycm9ycy5sb25nPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGxvbmcuDQorZXJyb3JzLmZsb2F0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGZsb2F0Lg0KK2Vycm9ycy5kb3VibGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gZG91YmxlLg0KK2Vycm9ycy5kYXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSBkYXRlLg0KK2Vycm9ycy5yYW5nZT0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgbm90IGluIHRoZSByYW5nZSB7MX0gdGhyb3VnaCB7Mn0uDQorZXJyb3JzLmNyZWRpdGNhcmQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIG5vdCBhIHZhbGlkIGNyZWRpdCBjYXJkIG51bWJlci4NCitlcnJvcnMuZW1haWw9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGFuIGludmFsaWQgZS1tYWlsIGFkZHJlc3MuDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL1JlZ2lzdHJhdGlvbi1SZWdpc3RyYXRpb25TYXZlLXZhbGlkYXRpb24ueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL1JlZ2lzdHJhdGlvbi1SZWdpc3RyYXRpb25TYXZlLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4OTY0MDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvUmVnaXN0cmF0aW9uLVJlZ2lzdHJhdGlvblNhdmUtdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+CisKKzx2YWxpZGF0b3JzPgorCisgICAgPGZpZWxkIG5hbWU9InBhc3N3b3JkIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnBhc3N3b3JkLnJlcXVpcmVkIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InN0cmluZ2xlbmd0aCI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0idHJpbSI+dHJ1ZTwvcGFyYW0+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWluTGVuZ3RoIj40PC9wYXJhbT4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtYXhMZW5ndGgiPjEwPC9wYXJhbT4KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3JzLnJhbmdlIi8+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisKKyAgICA8ZmllbGQgbmFtZT0icGFzc3dvcmQyIj4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+CisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnBhc3N3b3JkMi5yZXF1aXJlZCIvPgorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICA8L2ZpZWxkPgorCisgICAgPHZhbGlkYXRvciB0eXBlPSJleHByZXNzaW9uIj4KKyAgICAgICAgPHBhcmFtIG5hbWU9ImV4cHJlc3Npb24iPnBhc3N3b3JkIGVxIHBhc3N3b3JkMjwvcGFyYW0+CisgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IucGFzc3dvcmQubWF0Y2giLz4KKyAgICA8L3ZhbGlkYXRvcj4KKworPC92YWxpZGF0b3JzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL1JlZ2lzdHJhdGlvbi12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9SZWdpc3RyYXRpb24tdmFsaWRhdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDRkNjZiYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9SZWdpc3RyYXRpb24tdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+DQorDQorPHZhbGlkYXRvcnM+DQorDQorICAgIDxmaWVsZCBuYW1lPSJ1c2VybmFtZSI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIi8+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9InVzZXIuZnVsbE5hbWUiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5mdWxsTmFtZS5yZXF1aXJlZCIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorICAgIDxmaWVsZCBuYW1lPSJ1c2VyLmZyb21BZGRyZXNzIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IuZnJvbUFkZHJlc3MucmVxdWlyZWQiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJlbWFpbCI+DQorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvcnMuZW1haWwiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0idXNlci5yZXBseVRvQWRkcmVzcyI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9ImVtYWlsIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9ycy5lbWFpbCIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorPC92YWxpZGF0b3JzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9SZWdpc3RyYXRpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9SZWdpc3RyYXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjc2NGVlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL1JlZ2lzdHJhdGlvbi5qYXZhCkBAIC0wLDAgKzEsOTEgQEAKK3BhY2thZ2UgbWFpbHJlYWRlcjI7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CisKKworLyoqCisgKiA8cD5JbnNlcnQgb3IgdXBkYXRlIGEgVXNlciBvYmplY3QgdG8gdGhlIHBlcnNpc3RlbnQgc3RvcmUuIDwvcD4KKyAqLworcHVibGljIGNsYXNzIFJlZ2lzdHJhdGlvbiBleHRlbmRzIE1haWxyZWFkZXJTdXBwb3J0IHsKKworICAgIC8qKgorICAgICAqIDxwPkRvdWJsZSBjaGVjayB0aGF0IHRoZXJlIGlzIG5vdCBhIHZhbGlkIFVzZXIgbG9nb24uIDwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGVyZSBpcyBub3QgYSB2YWxpZCBVc2VyIGxvZ29uCisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzQ3JlYXRpbmcoKSB7CisgICAgICAgIFVzZXIgdXNlciA9IGdldFVzZXIoKTsKKyAgICAgICAgcmV0dXJuIChudWxsID09IHVzZXIpIHx8IChudWxsID09IHVzZXIuZ2V0RGF0YWJhc2UoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+IFJldHJpZXZlIFVzZXIgb2JqZWN0IHRvIGVkaXQgb3IgbnVsbCBpZiBVc2VyIGRvZXMgbm90IGV4aXN0LiA8L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSAiU3VjY2VzcyIgcmVzdWx0IGZvciB0aGlzIG1hcHBpbmcKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBvbiBhbnkgZXJyb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGlucHV0KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgaWYgKGlzQ3JlYXRpbmcoKSkgeworICAgICAgICAgICAgY3JlYXRlSW5wdXRVc2VyKCk7CisgICAgICAgICAgICBzZXRUYXNrKENvbnN0YW50cy5DUkVBVEUpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2V0VGFzayhDb25zdGFudHMuRURJVCk7CisgICAgICAgICAgICBzZXRVc2VybmFtZShnZXRVc2VyKCkuZ2V0VXNlcm5hbWUoKSk7CisgICAgICAgICAgICBzZXRQYXNzd29yZChnZXRVc2VyKCkuZ2V0UGFzc3dvcmQoKSk7CisgICAgICAgICAgICBzZXRQYXNzd29yZDIoZ2V0VXNlcigpLmdldFBhc3N3b3JkKCkpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIElOUFVUOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPiBJbnNlcnQgb3IgdXBkYXRlIGEgVXNlciBvYmplY3QgdG8gdGhlIHBlcnNpc3RlbnQgc3RvcmUuIDwvcD4KKyAgICAgKiA8cC8+CisgICAgICogPHA+IElmIGEgVXNlciBpcyBub3QgbG9nZ2VkIGluLCB0aGVuIGEgbmV3IFVzZXIgaXMgY3JlYXRlZCBhbmQKKyAgICAgKiBhdXRvbWF0aWNhbGx5IGxvZ2dlZCBpbi4gT3RoZXJ3aXNlLCB0aGUgZXhpc3RpbmcgVXNlciBpcyB1cGRhdGVkLiA8L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSAiU3VjY2VzcyIgcmVzdWx0IGZvciB0aGlzIG1hcHBpbmcKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBvbiBhbnkgZXJyb3IKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKQorICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgYm9vbGVhbiBjcmVhdGluZyA9IENvbnN0YW50cy5DUkVBVEUuZXF1YWxzKGdldFRhc2soKSk7CisgICAgICAgIGNyZWF0aW5nID0gY3JlYXRpbmcgJiYgaXNDcmVhdGluZygpOyAvLyB0cnVzdCBidXQgdmVyaWZ5CisKKyAgICAgICAgaWYgKGNyZWF0aW5nKSB7CisKKyAgICAgICAgICAgIFVzZXIgdXNlciA9IGZpbmRVc2VyKGdldFVzZXJuYW1lKCksIGdldFBhc3N3b3JkKCkpOworICAgICAgICAgICAgYm9vbGVhbiBoYXZlVXNlciA9ICh1c2VyICE9IG51bGwpOworCisgICAgICAgICAgICBpZiAoaGF2ZVVzZXIpIHsKKyAgICAgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihnZXRUZXh0KCJlcnJvci51c2VybmFtZS51bmlxdWUiKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIElOUFVUOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb3B5VXNlcihnZXRVc2VybmFtZSgpLCBnZXRQYXNzd29yZCgpKTsKKworICAgICAgICB9IGVsc2UgeworCisgICAgICAgICAgICAvLyBGSVhNRTogQW55IHdheSB0byBjYWxsIHRoZSBSZWdpc3JhdGlvblNhdmUgdmFsaWRhdG9ycyBmcm9tIGhlcmU/CisgICAgICAgICAgICBTdHJpbmcgbmV3UGFzc3dvcmQgPSBnZXRQYXNzd29yZCgpOworICAgICAgICAgICAgaWYgKG5ld1Bhc3N3b3JkICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY29uZmlybVBhc3N3b3JkID0gZ2V0UGFzc3dvcmQyKCk7CisgICAgICAgICAgICAgICAgYm9vbGVhbiBtYXRjaGVzID0gKChudWxsICE9IGNvbmZpcm1QYXNzd29yZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICYmIChjb25maXJtUGFzc3dvcmQuZXF1YWxzKG5ld1Bhc3N3b3JkKSkpOworICAgICAgICAgICAgICAgIGlmIChtYXRjaGVzKSB7CisgICAgICAgICAgICAgICAgICAgIGdldFVzZXIoKS5zZXRQYXNzd29yZChuZXdQYXNzd29yZCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkQWN0aW9uRXJyb3IoZ2V0VGV4dCgiZXJyb3IucGFzc3dvcmQubWF0Y2giKSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBJTlBVVDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBzYXZlVXNlcigpOworCisgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL1N1YnNjcmlwdGlvbi12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9TdWJzY3JpcHRpb24tdmFsaWRhdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY5MDNjMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9TdWJzY3JpcHRpb24tdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+DQorDQorPHZhbGlkYXRvcnM+DQorDQorICAgIDxmaWVsZCBuYW1lPSJob3N0Ij4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IuaG9zdC5yZXF1aXJlZCIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorPC92YWxpZGF0b3JzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9TdWJzY3JpcHRpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9TdWJzY3JpcHRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hM2YzMmVkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL1N1YnNjcmlwdGlvbi5qYXZhCkBAIC0wLDAgKzEsMTI0IEBACitwYWNrYWdlIG1haWxyZWFkZXIyOworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuUHJlcGFyYWJsZTsKKworaW1wb3J0IGphdmEudXRpbC5MaW5rZWRIYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKKy8qKgorICogPHA+IFByb3ZpZGUgYW4gRWRpdCBtZXRob2QgZm9yIHJldHJpZXZpbmcgYW4gZXhpc3Rpbmcgc3Vic2NyaXB0aW9uLCBhbmQgYQorICogU2F2ZSBtZXRob2QgZm9yIHVwZGF0aW5nIG9yIGluc2VydGluZyBhIHN1YnNjcmlwdGlvbi4gPC9wPgorICovCitwdWJsaWMgY2xhc3MgU3Vic2NyaXB0aW9uIGV4dGVuZHMgTWFpbHJlYWRlclN1cHBvcnQKKyAgICAgICAgaW1wbGVtZW50cyBQcmVwYXJhYmxlIHsKKworICAgIC8qKgorICAgICAqIDxwPkZpZWxkIHRvIHN0b3JlIGxpc3Qgb2YgTWFpbFNlcnZlciB0eXBlczwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIE1hcCB0eXBlcyA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIHRoZSBsaXN0IG9mIE1haWxTZXJ2ZXIgdHlwZXMuPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBMaXN0IG9mIE1haWxTZXJ2ZXIgdHlwZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgTWFwIGdldFR5cGVzKCkgeworICAgICAgICByZXR1cm4gdHlwZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0dXAgdGhlIE1haWxlclNlcnZlciB0eXBlcyBhbmQgc2V0IHRoZSBsb2NhbCBIb3N0IHByb3BlcnR5IGZyb20KKyAgICAgKiB0aGUgVXNlciBTdWJzY3JpcHRpb24gKGlmIGFueSkuIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwcmVwYXJlKCkgeworCisgICAgICAgIE1hcCBtID0gbmV3IExpbmtlZEhhc2hNYXAoKTsKKyAgICAgICAgbS5wdXQoImltYXAiLCAiSU1BUCBQcm90b2NvbCIpOworICAgICAgICBtLnB1dCgicG9wMyIsICJQT1AzIFByb3RvY29sIik7CisgICAgICAgIHR5cGVzID0gbTsKKworICAgICAgICBzZXRIb3N0KGdldFN1YnNjcmlwdGlvbkhvc3QoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U2V0dXAgYSB0ZW1wb3JhcnkgVXNlciBTdWJzY3JpcHRpb24gb2JqZWN0IHRvIGNhcHR1cmUgaW5wdXQKKyAgICAgKiB2YWx1ZXMuPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBJTlBVVAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgaW5wdXQoKSB7CisgICAgICAgIGNyZWF0ZUlucHV0U3Vic2NyaXB0aW9uKCk7CisgICAgICAgIHNldFRhc2soQ29uc3RhbnRzLkNSRUFURSk7CisgICAgICAgIHJldHVybiBJTlBVVDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Mb2FkIFVzZXIgU3Vic2NyaXB0aW9uIGZvciB0aGUgbG9jYWwgSG9zdCBwcm9wZXJ0eS48L3A+CisgICAgICogPHAvPgorICAgICAqIDxwPlVzdWFsbHksIHRoZSBIb3N0IGlzIGJlaW5nIHNldCBmcm9tIHRoZSByZXF1ZXN0IGJ5IGEgbGluayB0byBhbiBFZGl0CisgICAgICogb3IgRGVsZXRlIHRhc2suPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBJTlBVVCBvciBFcnJvciwgaWYgU3Vic2NyaXB0aW9uIGlzIG5vdCBmb3VuZAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZmluZCgpIHsKKworICAgICAgICBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlN1YnNjcmlwdGlvbgorICAgICAgICAgICAgICAgIHN1YiA9IGZpbmRTdWJzY3JpcHRpb24oKTsKKworICAgICAgICBpZiAoc3ViID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBFUlJPUjsKKyAgICAgICAgfQorCisgICAgICAgIHNldFN1YnNjcmlwdGlvbihzdWIpOworCisgICAgICAgIHJldHVybiBJTlBVVDsKKworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlByZXBhcmUgdG8gcHJlc2VudCBhIGNvbmZpcm1hdGlvbiBwYWdlIGJlZm9yZSByZW1vdmluZworICAgICAqIFN1YnNjcmlwdGlvbi48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIElOUFVUIG9yIEVycm9yLCBpZiBTdWJzY3JpcHRpb24gaXMgbm90IGZvdW5kCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBkZWxldGUoKSB7CisKKyAgICAgICAgc2V0VGFzayhDb25zdGFudHMuREVMRVRFKTsKKyAgICAgICAgcmV0dXJuIGZpbmQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5QcmVwYXJlIHRvIGVkaXQgVXNlciBTdWJzY3JpcHRpb24uPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBJTlBVVCBvciBFcnJvciwgaWYgU3Vic2NyaXB0aW9uIGlzIG5vdCBmb3VuZAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZWRpdCgpIHsKKworICAgICAgICBzZXRUYXNrKENvbnN0YW50cy5FRElUKTsKKyAgICAgICAgcmV0dXJuIGZpbmQoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4gRXhhbWluZSB0aGUgVGFzayBwcm9wZXJ0eSBhbmQgREVMRVRFLCBDUkVBVEUsIG9yIHNhdmUgdGhlIFVzZXIKKyAgICAgKiBTdWJzY3JpcHRpb24sIGFzIGFwcHJvcHJpYXRlLiA8L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFNVQ0NFU1MKKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBvbiBhIGRhdGFiYXNlIGVycm9yCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBzYXZlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgaWYgKENvbnN0YW50cy5ERUxFVEUuZXF1YWxzKGdldFRhc2soKSkpIHsKKyAgICAgICAgICAgIHJlbW92ZVN1YnNjcmlwdGlvbigpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKENvbnN0YW50cy5DUkVBVEUuZXF1YWxzKGdldFRhc2soKSkpIHsKKyAgICAgICAgICAgIGNvcHlTdWJzY3JpcHRpb24oZ2V0SG9zdCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChoYXNFcnJvcnMoKSkgcmV0dXJuIElOUFVUOworICAgICAgICAKKyAgICAgICAgc2F2ZVVzZXIoKTsKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvU3Vic2NyaXB0aW9uU2F2ZS12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9TdWJzY3JpcHRpb25TYXZlLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmMmY2ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvU3Vic2NyaXB0aW9uU2F2ZS12YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4NCisNCis8dmFsaWRhdG9ycz4NCisNCisgICAgPGZpZWxkIG5hbWU9InN1YnNjcmlwdGlvbi51c2VybmFtZSI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIi8+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9InN1YnNjcmlwdGlvbi5wYXNzd29yZCI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnBhc3N3b3JkLnJlcXVpcmVkIi8+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9InN1YnNjcmlwdGlvbi50eXBlIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IudHlwZS5pbnZhbGlkIi8+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCis8L3ZhbGlkYXRvcnM+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL1N1YnNjcmlwdGlvblNhdmUuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9TdWJzY3JpcHRpb25TYXZlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q5MzVjNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9TdWJzY3JpcHRpb25TYXZlLmphdmEKQEAgLTAsMCArMSwyMCBAQAorcGFja2FnZSBtYWlscmVhZGVyMjsKKworLyoqCisgKiA8cD4gU2F2ZSBhIHN1YnNjcmlwdGlvaW4sIHJlc2V0dGluZyBjaGVja2JveCBpbiBwcmVwYXJlLjwvcD4KKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFN1YnNjcmlwdGlvblNhdmUgZXh0ZW5kcyBTdWJzY3JpcHRpb24geworCisgICAgcHVibGljIHZvaWQgcHJlcGFyZSgpIHsKKyAgICAgICAgc3VwZXIucHJlcGFyZSgpOworICAgICAgICAgICAgLy8gY2hlY2tib3ggd29ya2Fyb3VuZAorICAgICAgICBnZXRTdWJzY3JpcHRpb24oKS5zZXRBdXRvQ29ubmVjdChmYWxzZSk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBzYXZlKCk7CisgICAgfQorCisKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL1dlbGNvbWUuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9XZWxjb21lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhlYzEyNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9XZWxjb21lLmphdmEKQEAgLTAsMCArMSwyOCBAQAorcGFja2FnZSBtYWlscmVhZGVyMjsKKworLyoqCisgKiBWZXJpZnkgdGhhdCBlc3NlbnRpYWwgcmVzb3VyY2VzIGFyZSBhdmFpbGFibGUuCisgKi8KK3B1YmxpYyBjbGFzcyBXZWxjb21lIGV4dGVuZHMgTWFpbHJlYWRlclN1cHBvcnQgeworCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgeworCisgICAgICAgIC8vIENvbmZpcm0gbWVzc2FnZSByZXNvdXJjZXMgbG9hZGVkCisgICAgICAgIFN0cmluZyBtZXNzYWdlID0gZ2V0VGV4dChDb25zdGFudHMuRVJST1JfREFUQUJBU0VfTUlTU0lORyk7CisgICAgICAgIGlmIChDb25zdGFudHMuRVJST1JfREFUQUJBU0VfTUlTU0lORy5lcXVhbHMobWVzc2FnZSkpIHsKKyAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKENvbnN0YW50cy5FUlJPUl9NRVNTQUdFU19OT1RfTE9BREVEKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENvbmZpcm0gZGF0YWJhc2UgbG9hZGVkCisgICAgICAgIGlmIChudWxsPT1nZXREYXRhYmFzZSgpKSB7CisgICAgICAgICAgICAgYWRkQWN0aW9uRXJyb3IoQ29uc3RhbnRzLkVSUk9SX0RBVEFCQVNFX05PVF9MT0FERUQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGhhc0Vycm9ycygpKSB7CisgICAgICAgICAgICByZXR1cm4gRVJST1I7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gU1VDQ0VTUzsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9zdHJ1dHMtYmFuZy54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvc3RydXRzLWJhbmcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjYWVmNGYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvc3RydXRzLWJhbmcueG1sCkBAIC0wLDAgKzEsNDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/Pg0KKzwhRE9DVFlQRSBzdHJ1dHMgUFVCTElDDQorICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDIuMC8vRU4iDQorICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtMi4wLmR0ZCI+DQorDQorPHN0cnV0cz4NCisgICAgPHBhY2thZ2UgbmFtZT0iYmFuZyIgbmFtZXNwYWNlPSIvIiBleHRlbmRzPSJzdHJ1dHMtc3VwcG9ydCI+DQorDQorICAgICAgICA8YWN0aW9uIG5hbWU9IkxvZ29uIiBjbGFzcz0ibWFpbHJlYWRlcjIuTG9nb24iPg0KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9Mb2dvbi5qc3A8L3Jlc3VsdD4NCisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImNhbmNlbCIgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5XZWxjb21lPC9yZXN1bHQ+DQorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPk1haW5NZW51PC9yZXN1bHQ+DQorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJleHBpcmVkIiB0eXBlPSJjaGFpbiI+Q2hhbmdlUGFzc3dvcmQ8L3Jlc3VsdD4NCisgICAgICAgICAgICA8ZXhjZXB0aW9uLW1hcHBpbmcNCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbj0ib3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5FeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24iDQorICAgICAgICAgICAgICAgICAgICByZXN1bHQ9ImV4cGlyZWQiLz4NCisgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9Imd1ZXN0Ii8+DQorICAgICAgICA8L2FjdGlvbj4NCisNCisgICAgICAgIDxhY3Rpb24gbmFtZT0iUmVnaXN0cmF0aW9uIiBjbGFzcz0ibWFpbHJlYWRlcjIuUmVnaXN0cmF0aW9uIj4NCisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvUmVnaXN0cmF0aW9uLmpzcDwvcmVzdWx0Pg0KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5NYWluTWVudTwvcmVzdWx0Pg0KKyAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0iZ3Vlc3QiLz4NCisgICAgICAgIDwvYWN0aW9uPg0KKw0KKyAgICAgICAgPGFjdGlvbiBuYW1lPSJSZWdpc3RyYXRpb25TYXZlIiBjbGFzcz0ibWFpbHJlYWRlcjIuUmVnaXN0cmF0aW9uIj4NCisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvUmVnaXN0cmF0aW9uLmpzcDwvcmVzdWx0Pg0KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5NYWluTWVudTwvcmVzdWx0Pg0KKyAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0iZ3Vlc3Qtc3VibWl0IiAvPg0KKyAgICAgICAgPC9hY3Rpb24+DQorDQorICAgICAgICA8YWN0aW9uIG5hbWU9IlN1YnNjcmlwdGlvbiIgY2xhc3M9Im1haWxyZWFkZXIyLlN1YnNjcmlwdGlvbiI+DQorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL1N1YnNjcmlwdGlvbi5qc3A8L3Jlc3VsdD4NCisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+UmVnaXN0cmF0aW9uIWlucHV0PC9yZXN1bHQ+DQorICAgICAgICA8L2FjdGlvbj4NCisNCisgICAgICAgIDxhY3Rpb24gbmFtZT0iU3Vic2NyaXB0aW9uU2F2ZSIgY2xhc3M9Im1haWxyZWFkZXIyLlN1YnNjcmlwdGlvblNhdmUiPg0KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9TdWJzY3JpcHRpb24uanNwPC9yZXN1bHQ+DQorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPlJlZ2lzdHJhdGlvbiFpbnB1dDwvcmVzdWx0Pg0KKyAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0idXNlci1zdWJtaXQiIC8+DQorICAgICAgICA8L2FjdGlvbj4NCisNCisgICAgPC9wYWNrYWdlPg0KKzwvc3RydXRzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9zdHJ1dHMtc3VwcG9ydC54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvc3RydXRzLXN1cHBvcnQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyODkzZDMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvc3RydXRzLXN1cHBvcnQueG1sCkBAIC0wLDAgKzEsNzQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/Pg0KKzwhRE9DVFlQRSBzdHJ1dHMgUFVCTElDDQorICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDIuMC8vRU4iDQorICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtMi4wLmR0ZCI+DQorDQorPHN0cnV0cz4NCisNCisgICAgPHBhY2thZ2UgbmFtZT0ic3RydXRzLXN1cHBvcnQiIG5hbWVzcGFjZT0iLyIgZXh0ZW5kcz0ic3RydXRzLWRlZmF1bHQiPg0KKw0KKyAgICAgICAgPGludGVyY2VwdG9ycz4NCisNCisgICAgICAgICAgICA8aW50ZXJjZXB0b3IgbmFtZT0iYXV0aGVudGljYXRpb24iDQorICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJtYWlscmVhZGVyMi5BdXRoZW50aWNhdGlvbkludGVyY2VwdG9yIi8+DQorDQorICAgICAgICAgICAgPGludGVyY2VwdG9yLXN0YWNrIG5hbWU9InVzZXIiID4NCisgICAgICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJhdXRoZW50aWNhdGlvbiIgLz4NCisgICAgICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJkZWZhdWx0U3RhY2siLz4NCisgICAgICAgICAgICA8L2ludGVyY2VwdG9yLXN0YWNrPg0KKw0KKyAgICAgICAgICAgIDxpbnRlcmNlcHRvci1zdGFjayBuYW1lPSJ1c2VyLXN1Ym1pdCIgPg0KKyAgICAgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9InRva2VuLXNlc3Npb24iIC8+DQorICAgICAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0idXNlciIvPg0KKyAgICAgICAgICAgIDwvaW50ZXJjZXB0b3Itc3RhY2s+DQorDQorICAgICAgICAgICAgPGludGVyY2VwdG9yLXN0YWNrIG5hbWU9Imd1ZXN0IiA+DQorICAgICAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0iZGVmYXVsdFN0YWNrIi8+DQorICAgICAgICAgICAgPC9pbnRlcmNlcHRvci1zdGFjaz4NCisNCisgICAgICAgICAgICA8aW50ZXJjZXB0b3Itc3RhY2sgbmFtZT0iZ3Vlc3Qtc3VibWl0IiA+DQorICAgICAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0idG9rZW4tc2Vzc2lvbiIgLz4NCisgICAgICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPg0KKyAgICAgICAgICAgIDwvaW50ZXJjZXB0b3Itc3RhY2s+DQorDQorICAgICAgICA8L2ludGVyY2VwdG9ycz4NCisNCisgICAgICAgIDxkZWZhdWx0LWludGVyY2VwdG9yLXJlZiBuYW1lPSJ1c2VyIi8+DQorDQorICAgICAgICA8Z2xvYmFsLXJlc3VsdHM+DQorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJlcnJvciI+L3BhZ2VzL0Vycm9yLmpzcDwvcmVzdWx0Pg0KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW52YWxpZC50b2tlbiI+L3BhZ2VzL0Vycm9yLmpzcDwvcmVzdWx0Pg0KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0ibG9naW4iIHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+TG9nb24haW5wdXQ8L3Jlc3VsdD4NCisgICAgICAgIDwvZ2xvYmFsLXJlc3VsdHM+DQorDQorICAgICAgICA8Z2xvYmFsLWV4Y2VwdGlvbi1tYXBwaW5ncz4NCisgICAgICAgICAgICA8ZXhjZXB0aW9uLW1hcHBpbmcNCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdD0iZXJyb3IiDQorICAgICAgICAgICAgICAgICAgICBleGNlcHRpb249ImphdmEubGFuZy5UaHJvd2FibGUiLz4NCisgICAgICAgIDwvZ2xvYmFsLWV4Y2VwdGlvbi1tYXBwaW5ncz4NCisNCisgICAgICAgIDxhY3Rpb24gbmFtZT0iV2VsY29tZSIgY2xhc3M9Im1haWxyZWFkZXIyLldlbGNvbWUiPg0KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL1dlbGNvbWUuanNwPC9yZXN1bHQ+DQorICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPg0KKyAgICAgICAgPC9hY3Rpb24+DQorDQorICAgICAgICA8YWN0aW9uIG5hbWU9IkNoYW5nZVBhc3N3b3JkIiBjbGFzcz0ibWFpbHJlYWRlcjIuTWFpbHJlYWRlclN1cHBvcnQiPg0KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL0NoYW5nZVBhc3N3b3JkLmpzcDwvcmVzdWx0Pg0KKyAgICAgICAgPC9hY3Rpb24+DQorDQorICAgICAgICA8YWN0aW9uIG5hbWU9Ik1haW5NZW51IiBjbGFzcz0ibWFpbHJlYWRlcjIuTWFpbHJlYWRlclN1cHBvcnQiPg0KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL01haW5NZW51LmpzcDwvcmVzdWx0Pg0KKyAgICAgICAgPC9hY3Rpb24+DQorDQorICAgICAgICA8YWN0aW9uIG5hbWU9IkxvZ29mZiIgY2xhc3M9Im1haWxyZWFkZXIyLkxvZ29mZiI+DQorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPldlbGNvbWU8L3Jlc3VsdD4NCisgICAgICAgIDwvYWN0aW9uPg0KKw0KKyAgICAgICAgPGFjdGlvbiBuYW1lPSJUb3VyIj4NCisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy90b3VyLmh0bWw8L3Jlc3VsdD4NCisgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9Imd1ZXN0Ii8+DQorICAgICAgICA8L2FjdGlvbj4NCisNCisgICAgPC9wYWNrYWdlPg0KKw0KKzwvc3RydXRzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9zdHJ1dHMtd2lsZGNhcmQueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9qYXZhL3N0cnV0cy13aWxkY2FyZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZjN2MwNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9zdHJ1dHMtd2lsZGNhcmQueG1sCkBAIC0wLDAgKzEsNDQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/Pg0KKzwhRE9DVFlQRSBzdHJ1dHMgUFVCTElDDQorICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDIuMC8vRU4iDQorICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtMi4wLmR0ZCI+DQorDQorPHN0cnV0cz4NCisgICAgPHBhY2thZ2UgbmFtZT0id2lsZGNhcmQiIG5hbWVzcGFjZT0iLyIgZXh0ZW5kcz0ic3RydXRzLXN1cHBvcnQiPg0KKw0KKyAgICAgICAgPGFjdGlvbiBuYW1lPSJMb2dvbiEqIiBjbGFzcz0ibWFpbHJlYWRlcjIuTG9nb24iIG1ldGhvZD0iezF9Ij4NCisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvTG9nb24uanNwPC9yZXN1bHQ+DQorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJjYW5jZWwiIHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+V2VsY29tZTwvcmVzdWx0Pg0KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5NYWluTWVudTwvcmVzdWx0Pg0KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iZXhwaXJlZCIgdHlwZT0iY2hhaW4iPkNoYW5nZVBhc3N3b3JkPC9yZXN1bHQ+DQorICAgICAgICAgICAgPGV4Y2VwdGlvbi1tYXBwaW5nDQorICAgICAgICAgICAgICAgICAgICBleGNlcHRpb249Im9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIg0KKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0PSJleHBpcmVkIi8+DQorICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPg0KKyAgICAgICAgPC9hY3Rpb24+DQorDQorICAgICAgICA8YWN0aW9uIG5hbWU9IlJlZ2lzdHJhdGlvbiEqIiBjbGFzcz0ibWFpbHJlYWRlcjIuUmVnaXN0cmF0aW9uIiBtZXRob2Q9InsxfSI+DQorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL1JlZ2lzdHJhdGlvbi5qc3A8L3Jlc3VsdD4NCisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+TWFpbk1lbnU8L3Jlc3VsdD4NCisgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9Imd1ZXN0Ii8+DQorICAgICAgICA8L2FjdGlvbj4NCisNCisgICAgICAgIDxhY3Rpb24gbmFtZT0iUmVnaXN0cmF0aW9uU2F2ZSIgY2xhc3M9Im1haWxyZWFkZXIyLlJlZ2lzdHJhdGlvbiI+DQorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL1JlZ2lzdHJhdGlvbi5qc3A8L3Jlc3VsdD4NCisgICAgICAgICAgICA8cmVzdWx0IHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+TWFpbk1lbnU8L3Jlc3VsdD4NCisgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9Imd1ZXN0LXN1Ym1pdCIgLz4NCisgICAgICAgIDwvYWN0aW9uPg0KKw0KKyAgICAgICAgPGFjdGlvbiBuYW1lPSJTdWJzY3JpcHRpb24hKiIgY2xhc3M9Im1haWxyZWFkZXIyLlN1YnNjcmlwdGlvbiIgbWV0aG9kPSJ7MX0iPg0KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9TdWJzY3JpcHRpb24uanNwPC9yZXN1bHQ+DQorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPlJlZ2lzdHJhdGlvbiFpbnB1dDwvcmVzdWx0Pg0KKyAgICAgICAgPC9hY3Rpb24+DQorDQorICAgICAgICA8YWN0aW9uIG5hbWU9IlN1YnNjcmlwdGlvblNhdmUiIGNsYXNzPSJtYWlscmVhZGVyMi5TdWJzY3JpcHRpb25TYXZlIj4NCisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvU3Vic2NyaXB0aW9uLmpzcDwvcmVzdWx0Pg0KKyAgICAgICAgICAgIDxyZXN1bHQgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5SZWdpc3RyYXRpb24haW5wdXQ8L3Jlc3VsdD4NCisgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9InVzZXItc3VibWl0IiAvPg0KKyAgICAgICAgPC9hY3Rpb24+DQorDQorICAgIDwvcGFja2FnZT4NCis8L3N0cnV0cz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvc3RydXRzLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvc3RydXRzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDdiY2MxYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9zdHJ1dHMucHJvcGVydGllcwpAQCAtMCwwICsxLDMgQEAKK3N0cnV0cy5kZXZNb2RlID0gdHJ1ZQ0KK3N0cnV0cy5hY3Rpb24uZXh0ZW5zaW9uID0gZG8NCitzdHJ1dHMuZW5hYmxlLkR5bmFtaWNNZXRob2RJbnZvY2F0aW9uID0gZmFsc2UNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvc3RydXRzLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vamF2YS9zdHJ1dHMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhZWEwYzgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL2phdmEvc3RydXRzLnhtbApAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4NCis8IURPQ1RZUEUgc3RydXRzIFBVQkxJQw0KKyAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAyLjAvL0VOIg0KKyAgICAiaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL2R0ZHMvc3RydXRzLTIuMC5kdGQiPg0KKw0KKzxzdHJ1dHM+DQorDQorICAgIDxpbmNsdWRlIGZpbGU9InN0cnV0cy1kZWZhdWx0LnhtbCIvPg0KKw0KKyAgICA8aW5jbHVkZSBmaWxlPSJzdHJ1dHMtc3VwcG9ydC54bWwiLz4NCisNCisgICAgPCEtLQ0KKyAgICA8aW5jbHVkZSBmaWxlPSJzdHJ1dHMtYmFuZy54bWwiLz4NCisgICAgLS0+DQorICAgIDxpbmNsdWRlIGZpbGU9InN0cnV0cy13aWxkY2FyZC54bWwiLz4NCisNCis8L3N0cnV0cz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3Jlc291cmNlcy9hbHRlcm5hdGUucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vcmVzb3VyY2VzL2FsdGVybmF0ZS5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZjRkZDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3Jlc291cmNlcy9hbHRlcm5hdGUucHJvcGVydGllcwpAQCAtMCwwICsxLDMgQEAKK3Bhc3N3b3JkPUVudGVyIHlvdXIgUGFzc3dvcmQgaGVyZSA9PT4KK3N0cnV0cy5sb2dvLnBhdGg9L3N0cnV0cy1wb3dlci5naWYKK3N0cnV0cy5sb2dvLmFsdD1Qb3dlcmVkIGJ5IFN0cnV0cwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9yZXNvdXJjZXMvYWx0ZXJuYXRlX2phLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3Jlc291cmNlcy9hbHRlcm5hdGVfamEucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODFhZGM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9yZXNvdXJjZXMvYWx0ZXJuYXRlX2phLnByb3BlcnRpZXMKQEAgLTAsMCArMSBAQAorLnBhc3N3b3JkPVx1MzBkMVx1MzBiOVx1MzBlZlx1MzBmY1x1MzBjOVx1MzA5Mlx1NTE2NVx1NTI5Yj09PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9yZXNvdXJjZXMvYXBwbGljYXRpb25Db250ZXh0LnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uQ29udGV4dC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk4ZTFkOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uQ29udGV4dC54bWwKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGJlYW5zIFBVQkxJQyAiLS8vU1BSSU5HLy9EVEQgQkVBTi8vRU4iICJodHRwOi8vd3d3LnNwcmluZ2ZyYW1ld29yay5vcmcvZHRkL3NwcmluZy1iZWFucy5kdGQiPgorCis8YmVhbnMgZGVmYXVsdC1hdXRvd2lyZT0iYXV0b2RldGVjdCI+CisgICAgPCEtLSBhZGQgeW91ciBzcHJpbmcgYmVhbnMgaGVyZSAtLT4KKzwvYmVhbnM+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9yZXNvdXJjZXMvZGF0YWJhc2UueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi9yZXNvdXJjZXMvZGF0YWJhc2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiYzgzM2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3Jlc291cmNlcy9kYXRhYmFzZS54bWwKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0nMS4wJz8+Cis8ZGF0YWJhc2U+CisgICAgPHVzZXIgdXNlcm5hbWU9InVzZXIiIGZyb21BZGRyZXNzPSJKb2huLlVzZXJAc29tZXdoZXJlLmNvbSIKKyAgICAgICAgICBmdWxsTmFtZT0iSm9obiBRLiBVc2VyIiBwYXNzd29yZD0icGFzcyI+CisgICAgICAgIDxzdWJzY3JpcHRpb24gaG9zdD0ibWFpbC5ob3RtYWlsLmNvbSIgYXV0b0Nvbm5lY3Q9ImZhbHNlIgorICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkPSJiYXIiIHR5cGU9InBvcDMiIHVzZXJuYW1lPSJ1c2VyMTIzNCI+CisgICAgICAgIDwvc3Vic2NyaXB0aW9uPgorICAgICAgICA8c3Vic2NyaXB0aW9uIGhvc3Q9Im1haWwueWFob28uY29tIiBhdXRvQ29ubmVjdD0iZmFsc2UiIHBhc3N3b3JkPSJmb28iCisgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iaW1hcCIgdXNlcm5hbWU9ImpxdXNlciI+CisgICAgICAgIDwvc3Vic2NyaXB0aW9uPgorICAgIDwvdXNlcj4KKzwvZGF0YWJhc2U+CisgICAgICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vd2ViYXBwL01FVEEtSU5GL2NvbnRleHQueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi93ZWJhcHAvTUVUQS1JTkYvY29udGV4dC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWIwYjVkMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vd2ViYXBwL01FVEEtSU5GL2NvbnRleHQueG1sCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxDb250ZXh0IHBhdGg9Ii8iPgorPC9Db250ZXh0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi93ZWIueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi93ZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyNTcxMzIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKQEAgLTAsMCArMSw0MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorPCFET0NUWVBFIHdlYi1hcHAgUFVCTElDICItLy9TdW4gTWljcm9zeXN0ZW1zLCBJbmMuLy9EVEQgV2ViIEFwcGxpY2F0aW9uIDIuMy8vRU4iICJodHRwOi8vamF2YS5zdW4uY29tL2R0ZC93ZWItYXBwXzJfMy5kdGQiPgorPHdlYi1hcHA+CisKKyAgICA8ZGlzcGxheS1uYW1lPlN0cnV0cyAyIE1haWxyZWFkZXI8L2Rpc3BsYXktbmFtZT4KKworICAgIDxjb250ZXh0LXBhcmFtPgorICAgICAgICA8cGFyYW0tbmFtZT5jb250ZXh0Q29uZmlnTG9jYXRpb248L3BhcmFtLW5hbWU+CisgICAgICAgIDxwYXJhbS12YWx1ZT5jbGFzc3BhdGgqOmFwcGxpY2F0aW9uQ29udGV4dCoueG1sPC9wYXJhbS12YWx1ZT4KKyAgICA8L2NvbnRleHQtcGFyYW0+CisKKyAgICA8ZmlsdGVyPgorICAgICAgICA8ZmlsdGVyLW5hbWU+U3RydXRzMjwvZmlsdGVyLW5hbWU+CisgICAgICAgIDxmaWx0ZXItY2xhc3M+CisgICAgICAgICAgICBvcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5GaWx0ZXJEaXNwYXRjaGVyCisgICAgICAgIDwvZmlsdGVyLWNsYXNzPgorICAgIDwvZmlsdGVyPgorCisgICAgPGZpbHRlci1tYXBwaW5nPgorICAgICAgICA8ZmlsdGVyLW5hbWU+U3RydXRzMjwvZmlsdGVyLW5hbWU+CisgICAgICAgIDx1cmwtcGF0dGVybj4vKjwvdXJsLXBhdHRlcm4+CisgICAgPC9maWx0ZXItbWFwcGluZz4KKworICAgIDxsaXN0ZW5lcj4KKyAgICAgICAgPGxpc3RlbmVyLWNsYXNzPgorICAgICAgICAgICAgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIuY29udGV4dC5Db250ZXh0TG9hZGVyTGlzdGVuZXIKKyAgICAgICAgPC9saXN0ZW5lci1jbGFzcz4KKyAgICA8L2xpc3RlbmVyPgorCisgICAgPCEtLSBBcHBsaWNhdGlvbiBMaXN0ZW5lciBmb3IgTWFpbHJlYWRlciBkYXRhYmFzZSAtLT4KKyAgICA8bGlzdGVuZXI+CisgICAgICAgIDxsaXN0ZW5lci1jbGFzcz4KKyAgICAgICAgICAgIG1haWxyZWFkZXIyLkFwcGxpY2F0aW9uTGlzdGVuZXIKKyAgICAgICAgPC9saXN0ZW5lci1jbGFzcz4KKyAgICA8L2xpc3RlbmVyPgorICAgICAgIAorICAgIDx3ZWxjb21lLWZpbGUtbGlzdD4KKyAgICAgICAgPHdlbGNvbWUtZmlsZT5pbmRleC5odG1sPC93ZWxjb21lLWZpbGU+CisgICAgPC93ZWxjb21lLWZpbGUtbGlzdD4KKworPC93ZWItYXBwPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi93ZWJhcHAvY3NzL21haWxyZWFkZXIuY3NzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi93ZWJhcHAvY3NzL21haWxyZWFkZXIuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmYzc2NDgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9jc3MvbWFpbHJlYWRlci5jc3MKQEAgLTAsMCArMSw0NiBAQAorLyoqCisqIE1haWxyZWFkZXIgc3R5bGVzaGVldAorKi8KKworYm9keSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsKKyAgICBjb2xvcjogIzAwMDAwMDsKKyAgICBsaW5rOiAwMDAwNjY7CisgICAgdmlzaXRlZDogIzY2MDA2NjsKKyAgICBhY3RpdmU6ICMzM0NDQ0M7Cit9CisKK0E6aG92ZXIgeworICAgIGNvbG9yOiAjRkYwMDAwOworfQorCitoMSB7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Cit9CisKK2gyIHsKKyAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKK30KKworaDMgeworICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOworfQorCitoNCB7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Cit9CisKK2g1IHsKKyAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKK30KKworaDYgeworICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOworfQorCitmb250LmhpbnQgeworICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICBmb250LXNpemU6IDgwJTsKKyAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vd2ViYXBwL2luZGV4Lmh0bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiMDFiM2YKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9pbmRleC5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxNRVRBIEhUVFAtRVFVSVY9IlJlZnJlc2giIENPTlRFTlQ9IjA7VVJMPVdlbGNvbWUuZG8iPgorPC9oZWFkPgorCis8Ym9keT4KKzxwPkxvYWRpbmcgLi4uPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvQ2hhbmdlUGFzc3dvcmQuanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvQ2hhbmdlUGFzc3dvcmQuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2NzgzNGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9DaGFuZ2VQYXNzd29yZC5qc3AKQEAgLTAsMCArMSwyNSBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzwlQCB0YWdsaWIgdXJpPSIvc3RydXRzLXRhZ3MiIHByZWZpeD0icyIgJT4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+PHM6dGV4dCBuYW1lPSJjaGFuZ2UudGl0bGUiLz48L3RpdGxlPgorICAgIDxsaW5rIGhyZWY9IjxzOnVybCB2YWx1ZT0iL2Nzcy9tYWlscmVhZGVyLmNzcyIvPiIgcmVsPSJzdHlsZXNoZWV0IgorICAgICAgICAgIHR5cGU9InRleHQvY3NzIi8+Cis8L2hlYWQ+CisKKzxib2R5PgorCis8cD4KKyAgICA8czp0ZXh0IG5hbWU9ImNoYW5nZS5tZXNzYWdlIi8+Cis8L3A+CisKKzxwPgorICAgIDxhIGhyZWY9IjxzOnVybCBhY3Rpb249IkxvZ29uIWlucHV0Ii8+Ij4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJjaGFuZ2UudHJ5Ii8+CisgICAgPC9hPgorPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9FcnJvci5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9FcnJvci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDVhYjVlMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vd2ViYXBwL3BhZ2VzL0Vycm9yLmpzcApAQCAtMCwwICsxLDQwIEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiB1cmk9Ii9zdHJ1dHMtdGFncyIgcHJlZml4PSJzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT5VbmV4cGVjdGVkIEVycm9yPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDI+QW4gdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJlZDwvaDI+CisKKzxwPgorICAgIFBsZWFzZSByZXBvcnQgdGhpcyBlcnJvciB0byB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yCisgICAgb3IgYXBwcm9wcmlhdGUgdGVjaG5pY2FsIHN1cHBvcnQgcGVyc29ubmVsLgorICAgIFRoYW5rIHlvdSBmb3IgeW91ciBjb29wZXJhdGlvbi4KKzwvcD4KKworPGhyLz4KKworPGgzPkVycm9yIE1lc3NhZ2U8L2gzPgorCis8czphY3Rpb25lcnJvciAvPgorCis8cD4KKyAgICA8czpwcm9wZXJ0eSB2YWx1ZT0iJXtleGNlcHRpb24ubWVzc2FnZX0iLz4KKzwvcD4KKworPGhyLz4KKworPGgzPlRlY2huaWNhbCBEZXRhaWxzPC9oMz4KKworPHA+CisgICAgPHM6cHJvcGVydHkgdmFsdWU9IiV7ZXhjZXB0aW9uU3RhY2t9Ii8+Cis8L3A+CisKKzxqc3A6aW5jbHVkZSBwYWdlPSJGb290ZXIuanNwIi8+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vd2ViYXBwL3BhZ2VzL0Zvb3Rlci5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9Gb290ZXIuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiM2I4NmMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9Gb290ZXIuanNwCkBAIC0wLDAgKzEsNiBAQAorPCVAIHRhZ2xpYiB1cmk9Ii9zdHJ1dHMtdGFncyIgcHJlZml4PSJzIiAlPgorPGhyLz4KKworPHA+CisgICAgPGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iV2VsY29tZSIgLz4iPjxzOnRleHQgbmFtZT0iaW5kZXgudGl0bGUiLz48L2E+Cis8L3A+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9Mb2dvbi5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9Mb2dvbi5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM4Y2UwYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vd2ViYXBwL3BhZ2VzL0xvZ29uLmpzcApAQCAtMCwwICsxLDMwIEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiB1cmk9Ii9zdHJ1dHMtdGFncyIgcHJlZml4PSJzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT48czp0ZXh0IG5hbWU9ImxvZ29uLnRpdGxlIi8+PC90aXRsZT4KKyAgICA8bGluayBocmVmPSI8czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICAgICAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorPC9oZWFkPgorCis8Ym9keSBvbkxvYWQ9InNlbGYuZm9jdXMoKTtkb2N1bWVudC5Mb2dvbi51c2VybmFtZS5mb2N1cygpIj4KKworPHM6YWN0aW9uZXJyb3IgLz4KKzxzOmZvcm0gYWN0aW9uPSJMb2dvbiIgdmFsaWRhdGU9InRydWUiPgorICAgIDxzOnRleHRmaWVsZCBsYWJlbD0iJXtnZXRUZXh0KCd1c2VybmFtZScpfSIgbmFtZT0idXNlcm5hbWUiLz4KKworICAgIDxzOnBhc3N3b3JkIGxhYmVsPSIle2dldFRleHQoJ3Bhc3N3b3JkJyl9IiBuYW1lPSJwYXNzd29yZCIgc2hvd1Bhc3N3b3JkPSJ0cnVlIi8+CisKKyAgICA8czpzdWJtaXQgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLnNhdmUnKX0iLz4KKworICAgIDxzOnJlc2V0IHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5yZXNldCcpfSIvPgorCisgICAgPHM6c3VibWl0IGFjdGlvbj0iTG9nb24hY2FuY2VsIiB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uY2FuY2VsJyl9IgorICAgICAgICAgICAgICAgIG9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCIvPgorPC9zOmZvcm0+CisKKzxqc3A6aW5jbHVkZSBwYWdlPSJGb290ZXIuanNwIi8+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9NYWluTWVudS5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9NYWluTWVudS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGM0Yzk4YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vd2ViYXBwL3BhZ2VzL01haW5NZW51LmpzcApAQCAtMCwwICsxLDI1IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiB1cmk9Ii9zdHJ1dHMtdGFncyIgcHJlZml4PSJzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT48czp0ZXh0IG5hbWU9Im1haW5NZW51LnRpdGxlIi8+PC90aXRsZT4KKyAgICA8bGluayBocmVmPSI8czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICAgICAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorPC9oZWFkPgorCis8Ym9keT4KKzxoMz48czp0ZXh0IG5hbWU9Im1haW5NZW51LmhlYWRpbmciLz4gPHM6cHJvcGVydHkKKyAgICAgICAgdmFsdWU9InVzZXIuZnVsbE5hbWUiLz48L2gzPgorPHVsPgorICAgIDxsaT48YSBocmVmPSI8czp1cmwgYWN0aW9uPSJSZWdpc3RyYXRpb24haW5wdXQiIC8+Ij4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJtYWluTWVudS5yZWdpc3RyYXRpb24iLz4KKyAgICA8L2E+CisgICAgPC9saT4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iTG9nb2ZmIi8+Ij4KKyAgICAgICAgPHM6dGV4dCBuYW1lPSJtYWluTWVudS5sb2dvZmYiLz4KKyAgICA8L2E+Cis8L3VsPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvUmVnaXN0cmF0aW9uLmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vd2ViYXBwL3BhZ2VzL1JlZ2lzdHJhdGlvbi5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY3ZjZiZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vd2ViYXBwL3BhZ2VzL1JlZ2lzdHJhdGlvbi5qc3AKQEAgLTAsMCArMSwxMjYgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+Cis8JUAgdGFnbGliIHVyaT0iL3N0cnV0cy10YWdzIiBwcmVmaXg9InMiICU+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHM6aWYgdGVzdD0idGFzaz09J0NyZWF0ZSciPgorICAgICAgICA8dGl0bGU+PHM6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlIi8+PC90aXRsZT4KKyAgICA8L3M6aWY+CisgICAgPHM6aWYgdGVzdD0idGFzaz09J0VkaXQnIj4KKyAgICAgICAgPHRpdGxlPjxzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQiLz48L3RpdGxlPgorICAgIDwvczppZj4KKyAgICA8bGluayBocmVmPSI8czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICAgICAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorPC9oZWFkPgorCis8Ym9keSBvbkxvYWQ9InNlbGYuZm9jdXMoKTtkb2N1bWVudC5SZWdpc3RyYXRpb24udXNlcm5hbWUuZm9jdXMoKSI+CisKKzxzOmFjdGlvbmVycm9yLz4KKzxzOmZvcm0gYWN0aW9uPSJSZWdpc3RyYXRpb25TYXZlIiB2YWxpZGF0ZT0iZmFsc2UiPgorICAgIDxzOnRva2VuIC8+CisgICAgPHM6aGlkZGVuIG5hbWU9InRhc2siLz4KKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdDcmVhdGUnIj4KKyAgICAgICAgPHM6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ3VzZXJuYW1lJyl9IiBuYW1lPSJ1c2VybmFtZSIvPgorICAgIDwvczppZj4KKyAgICA8czplbHNlPgorICAgICAgICA8czpsYWJlbCBsYWJlbD0iJXtnZXRUZXh0KCd1c2VybmFtZScpfSIgbmFtZT0idXNlcm5hbWUiLz4KKyAgICAgICAgPHM6aGlkZGVuIG5hbWU9InVzZXJuYW1lIi8+CisgICAgPC9zOmVsc2U+CisKKyAgICA8czpwYXNzd29yZCBsYWJlbD0iJXtnZXRUZXh0KCdwYXNzd29yZCcpfSIgbmFtZT0icGFzc3dvcmQiLz4KKworICAgIDxzOnBhc3N3b3JkIGxhYmVsPSIle2dldFRleHQoJ3Bhc3N3b3JkMicpfSIgbmFtZT0icGFzc3dvcmQyIi8+CisKKyAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IiV7Z2V0VGV4dCgnZnVsbE5hbWUnKX0iCisgICAgICAgICAgICAgICAgICAgbmFtZT0idXNlci5mdWxsTmFtZSIvPgorCisgICAgPHM6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ2Zyb21BZGRyZXNzJyl9IgorICAgICAgICAgICAgICAgICAgIG5hbWU9InVzZXIuZnJvbUFkZHJlc3MiLz4KKworICAgIDxzOnRleHRmaWVsZCBsYWJlbD0iJXtnZXRUZXh0KCdyZXBseVRvQWRkcmVzcycpfSIKKyAgICAgICAgICAgICAgICAgICBuYW1lPSJ1c2VyLnJlcGx5VG9BZGRyZXNzIi8+CisKKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdDcmVhdGUnIj4KKyAgICAgICAgPHM6c3VibWl0IHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5zYXZlJyl9IiBhY3Rpb249IlJlZ2lzdHJhdGlvblNhdmUiLz4KKworICAgICAgICA8czpyZXNldCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24ucmVzZXQnKX0iLz4KKworICAgICAgICA8czpzdWJtaXQgYWN0aW9uPSJXZWxjb21lIiB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uY2FuY2VsJyl9IgorICAgICAgICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4KKyAgICA8L3M6aWY+CisgICAgPHM6ZWxzZT4KKyAgICAgICAgPHM6c3VibWl0IHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5zYXZlJyl9IiBhY3Rpb249IlJlZ2lzdHJhdGlvbiIvPgorCisgICAgICAgIDxzOnJlc2V0IHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5yZXNldCcpfSIvPgorCisgICAgICAgIDxzOnN1Ym1pdCBhY3Rpb249Ik1haW5NZW51IiB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uY2FuY2VsJyl9IgorICAgICAgICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4KKyAgICA8L3M6ZWxzZT4KKworPC9zOmZvcm0+CisKKzxzOmlmIHRlc3Q9InRhc2sgPT0gJ0VkaXQnIj4KKyAgICA8ZGl2IGFsaWduPSJjZW50ZXIiPgorICAgICAgICA8aDM+PHM6dGV4dCBuYW1lPSJoZWFkaW5nLnN1YnNjcmlwdGlvbnMiLz48L2gzPgorICAgIDwvZGl2PgorCisgICAgPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiPgorCisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMzAlIj4KKyAgICAgICAgICAgICAgICA8czp0ZXh0IG5hbWU9ImhlYWRpbmcuaG9zdCIvPgorICAgICAgICAgICAgPC90aD4KKyAgICAgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMjUlIj4KKyAgICAgICAgICAgICAgICA8czp0ZXh0IG5hbWU9ImhlYWRpbmcudXNlciIvPgorICAgICAgICAgICAgPC90aD4KKyAgICAgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTAlIj4KKyAgICAgICAgICAgICAgICA8czp0ZXh0IG5hbWU9ImhlYWRpbmcudHlwZSIvPgorICAgICAgICAgICAgPC90aD4KKyAgICAgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTAlIj4KKyAgICAgICAgICAgICAgICA8czp0ZXh0IG5hbWU9ImhlYWRpbmcuYXV0b0Nvbm5lY3QiLz4KKyAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjE1JSI+CisgICAgICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJoZWFkaW5nLmFjdGlvbiIvPgorICAgICAgICAgICAgPC90aD4KKyAgICAgICAgPC90cj4KKworICAgICAgICA8czppdGVyYXRvciB2YWx1ZT0idXNlci5zdWJzY3JpcHRpb25zIj4KKyAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgICAgICA8czpwcm9wZXJ0eSB2YWx1ZT0iaG9zdCIvPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICAgICAgPHM6cHJvcGVydHkgdmFsdWU9InVzZXJuYW1lIi8+CisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICAgICAgICAgIDxzOnByb3BlcnR5IHZhbHVlPSJ0eXBlIi8+CisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICAgICAgICAgIDxzOnByb3BlcnR5IHZhbHVlPSJhdXRvQ29ubmVjdCIvPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgorCisgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IjxzOnVybCBhY3Rpb249IlN1YnNjcmlwdGlvbiFkZWxldGUiPjxzOnBhcmFtIG5hbWU9Imhvc3QiIHZhbHVlPSJob3N0Ii8+PC9zOnVybD4iPgorICAgICAgICAgICAgICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24uZGVsZXRlU3Vic2NyaXB0aW9uIi8+CisgICAgICAgICAgICAgICAgICAgIDwvYT4KKyAgICAgICAgICAgICAgICAgICAgJm5ic3A7CisgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IjxzOnVybCBhY3Rpb249IlN1YnNjcmlwdGlvbiFlZGl0Ij48czpwYXJhbSBuYW1lPSJob3N0IiB2YWx1ZT0iaG9zdCIvPjwvczp1cmw+Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLmVkaXRTdWJzY3JpcHRpb24iLz4KKyAgICAgICAgICAgICAgICAgICAgPC9hPgorCisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvczppdGVyYXRvcj4KKworICAgIDwvdGFibGU+CisKKyAgICA8YSBocmVmPSI8czp1cmwgYWN0aW9uPSJTdWJzY3JpcHRpb24haW5wdXQiLz4iPjxzOnRleHQKKyAgICAgICAgICAgIG5hbWU9InJlZ2lzdHJhdGlvbi5hZGRTdWJzY3JpcHRpb24iLz48L2E+CisKKzwvczppZj4KKworPGpzcDppbmNsdWRlIHBhZ2U9IkZvb3Rlci5qc3AiLz4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvU3Vic2NyaXB0aW9uLmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vd2ViYXBwL3BhZ2VzL1N1YnNjcmlwdGlvbi5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGU2ZDk0YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vd2ViYXBwL3BhZ2VzL1N1YnNjcmlwdGlvbi5qc3AKQEAgLTAsMCArMSw2OCBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzwlQCB0YWdsaWIgdXJpPSIvc3RydXRzLXRhZ3MiIHByZWZpeD0icyIgJT4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8czppZiB0ZXN0PSJ0YXNrPT0nQ3JlYXRlJyI+CisgICAgICAgIDx0aXRsZT48czp0ZXh0IG5hbWU9InN1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGUiLz48L3RpdGxlPgorICAgIDwvczppZj4KKyAgICA8czppZiB0ZXN0PSJ0YXNrPT0nRWRpdCciPgorICAgICAgICA8dGl0bGU+PHM6dGV4dCBuYW1lPSJzdWJzY3JpcHRpb24udGl0bGUuZWRpdCIvPjwvdGl0bGU+CisgICAgPC9zOmlmPgorICAgIDxzOmlmIHRlc3Q9InRhc2s9PSdEZWxldGUnIj4KKyAgICAgICAgPHRpdGxlPjxzOnRleHQgbmFtZT0ic3Vic2NyaXB0aW9uLnRpdGxlLmRlbGV0ZSIvPjwvdGl0bGU+CisgICAgPC9zOmlmPgorICAgIDxsaW5rIGhyZWY9IjxzOnVybCB2YWx1ZT0iL2Nzcy9tYWlscmVhZGVyLmNzcyIvPiIgcmVsPSJzdHlsZXNoZWV0IgorICAgICAgICAgIHR5cGU9InRleHQvY3NzIi8+Cis8L2hlYWQ+CisKKzxib2R5IG9uTG9hZD0ic2VsZi5mb2N1cygpO2RvY3VtZW50LlN1YnNjcmlwdGlvbi51c2VybmFtZS5mb2N1cygpIj4KKworPHM6YWN0aW9uZXJyb3IvPgorPHM6Zm9ybSBhY3Rpb249IlN1YnNjcmlwdGlvblNhdmUiIHZhbGlkYXRlPSJmYWxzZSI+CisgICAgPHM6dG9rZW4gLz4KKyAgICA8czpoaWRkZW4gbmFtZT0idGFzayIvPgorICAgIDxzOmxhYmVsIGxhYmVsPSIle2dldFRleHQoJ3VzZXJuYW1lJyl9IiBuYW1lPSJ1c2VyLnVzZXJuYW1lIi8+CisKKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdDcmVhdGUnIj4KKyAgICAgICAgPHM6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ21haWxIb3N0bmFtZScpfSIgbmFtZT0iaG9zdCIvPgorICAgIDwvczppZj4KKyAgICA8czplbHNlPgorICAgICAgICA8czpsYWJlbCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsSG9zdG5hbWUnKX0iIG5hbWU9Imhvc3QiLz4KKyAgICAgICAgPHM6aGlkZGVuIG5hbWU9Imhvc3QiLz4KKyAgICA8L3M6ZWxzZT4KKworICAgIDxzOmlmIHRlc3Q9InRhc2sgPT0gJ0RlbGV0ZSciPgorICAgICAgICA8czpsYWJlbCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsVXNlcm5hbWUnKX0iCisgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnVzZXJuYW1lIi8+CisgICAgICAgIDxzOmxhYmVsIGxhYmVsPSIle2dldFRleHQoJ21haWxQYXNzd29yZCcpfSIKKyAgICAgICAgICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24ucGFzc3dvcmQiLz4KKyAgICAgICAgPHM6bGFiZWwgbGFiZWw9IiV7Z2V0VGV4dCgnbWFpbFNlcnZlclR5cGUnKX0iCisgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnR5cGUiLz4KKyAgICAgICAgPHM6bGFiZWwgbGFiZWw9IiV7Z2V0VGV4dCgnYXV0b0Nvbm5lY3QnKX0iCisgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLmF1dG9Db25uZWN0Ii8+CisgICAgICAgIDxzOnN1Ym1pdCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uY29uZmlybScpfSIvPgorICAgIDwvczppZj4KKyAgICA8czplbHNlPgorICAgICAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IiV7Z2V0VGV4dCgnbWFpbFVzZXJuYW1lJyl9IgorICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24udXNlcm5hbWUiLz4KKyAgICAgICAgPHM6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ21haWxQYXNzd29yZCcpfSIKKyAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnBhc3N3b3JkIi8+CisgICAgICAgIDxzOnNlbGVjdCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsU2VydmVyVHlwZScpfSIKKyAgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnR5cGUiIGxpc3Q9InR5cGVzIi8+CisgICAgICAgIDxzOmNoZWNrYm94IGxhYmVsPSIle2dldFRleHQoJ2F1dG9Db25uZWN0Jyl9IgorICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InN1YnNjcmlwdGlvbi5hdXRvQ29ubmVjdCIvPgorICAgICAgICA8czpzdWJtaXQgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLnNhdmUnKX0iLz4KKyAgICAgICAgPHM6cmVzZXQgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLnJlc2V0Jyl9Ii8+CisgICAgPC9zOmVsc2U+CisKKyAgICA8czpzdWJtaXQgYWN0aW9uPSJSZWdpc3RyYXRpb24haW5wdXQiCisgICAgICAgICAgICAgICAgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLmNhbmNlbCcpfSIKKyAgICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4KKzwvczpmb3JtPgorCis8anNwOmluY2x1ZGUgcGFnZT0iRm9vdGVyLmpzcCIvPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vd2ViYXBwL3BhZ2VzL1dlbGNvbWUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMzA3ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcApAQCAtMCwwICsxLDU2IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiB1cmk9Ii9zdHJ1dHMtdGFncyIgcHJlZml4PSJzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+CisgICAgPHRpdGxlPjxzOnRleHQgbmFtZT0iaW5kZXgudGl0bGUiLz48L3RpdGxlPgorICAgIDxsaW5rIGhyZWY9IjxzOnVybCB2YWx1ZT0iL2Nzcy9tYWlscmVhZGVyLmNzcyIvPiIgcmVsPSJzdHlsZXNoZWV0IgorICAgICAgICAgIHR5cGU9InRleHQvY3NzIi8+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgzPjxzOnRleHQgbmFtZT0iaW5kZXguaGVhZGluZyIvPjwvaDM+CisKKzx1bD4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iUmVnaXN0cmF0aW9uIWlucHV0Ii8+Ij48czp0ZXh0CisgICAgICAgICAgICBuYW1lPSJpbmRleC5yZWdpc3RyYXRpb24iLz48L2E+PC9saT4KKyAgICA8bGk+PGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iTG9nb24haW5wdXQiLz4iPjxzOnRleHQKKyAgICAgICAgICAgIG5hbWU9ImluZGV4LmxvZ29uIi8+PC9hPjwvbGk+Cis8L3VsPgorCis8aDM+TGFuZ3VhZ2UgT3B0aW9uczwvaDM+Cis8dWw+CisgICAgPGxpPgorICAgICAgICA8czp1cmwgaWQ9ImVuIiBhY3Rpb249IldlbGNvbWUiPgorICAgICAgICAgICAgPHM6cGFyYW0gbmFtZT0icmVxdWVzdF9sb2NhbGUiPmVuPC9zOnBhcmFtPgorICAgICAgICA8L3M6dXJsPgorICAgICAgICA8czphIGhyZWY9IiV7ZW59Ij5FbmdsaXNoPC9zOmE+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICAgIDxzOnVybCBpZD0iamEiIGFjdGlvbj0iV2VsY29tZSI+CisgICAgICAgICAgICA8czpwYXJhbSBuYW1lPSJyZXF1ZXN0X2xvY2FsZSI+amE8L3M6cGFyYW0+CisgICAgICAgIDwvczp1cmw+CisgICAgICAgIDxzOmEgaHJlZj0iJXtqYX0iPkphcGFuZXNlPC9zOmE+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICAgIDxzOnVybCBpZD0icnUiIGFjdGlvbj0iV2VsY29tZSI+CisgICAgICAgICAgICA8czpwYXJhbSBuYW1lPSJyZXF1ZXN0X2xvY2FsZSI+cnU8L3M6cGFyYW0+CisgICAgICAgIDwvczp1cmw+CisgICAgICAgIDxzOmEgaHJlZj0iJXtydX0iPlJ1c3NpYW48L3M6YT4KKyAgICA8L2xpPgorPC91bD4KKworPGhyLz4KKworPHA+PHM6aTE4biBuYW1lPSJhbHRlcm5hdGUiPgorICAgIDxpbWcgc3JjPSI8czp0ZXh0IG5hbWU9InN0cnV0cy5sb2dvLnBhdGgiLz4iCisgICAgICAgICBhbHQ9IjxzOnRleHQgbmFtZT0ic3RydXRzLmxvZ28uYWx0Ii8+Ii8+Cis8L3M6aTE4bj48L3A+CisKKzxwPjxhIGhyZWY9IjxzOnVybCBhY3Rpb249IlRvdXIiIC8+Ij48czp0ZXh0IG5hbWU9ImluZGV4LnRvdXIiLz48L2E+PC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vd2ViYXBwL3BhZ2VzL3RvdXIuaHRtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWJhbmcvc3JjL21haW4vd2ViYXBwL3BhZ2VzL3RvdXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjdlOWU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvdG91ci5odG1sCkBAIC0wLDAgKzEsMjQyMyBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11cy1hc2NpaSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL2Nzcy9tYWlscmVhZGVyLmNzcyIvPgorCisgICAgPHRpdGxlPkEgV2Fsa2luZyBUb3VyIG9mIHRoZSBTdHJ1dHMgMiBNYWlsUmVhZGVyIEFwcGxpY2F0aW9uPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8YmxvY2txdW90ZT4KKzxoMj5BIFdhbGtpbmcgVG91ciBvZiB0aGUgU3RydXRzIDIgTWFpbFJlYWRlciBBcHBsaWNhdGlvbjwvaDI+CisKKzxwPgorICAgIDxpPgorICAgICAgICBUaGlzIGFydGljbGUgaXMgbWVhbnQgdG8gaW50cm9kdWNlIGEgbmV3IHVzZXIgdG8gQXBhY2hlIFN0cnV0cyAyIGJ5IAorICAgICAgICAid2Fsa2luZyB0aHJvdWdoIiBhIHNpbXBsZSwgYnV0IGZ1bmN0aW9uYWwsIGFwcGxpY2F0aW9uLgorICAgICAgICBUaGUgYXJ0aWNsZSBpbmNsdWRlcyBjb2RlIHNuaXBwZXRzLCBidXQgZm9yIHRoZSBiZXN0IHJlc3VsdCwgeW91IG1pZ2h0IAorICAgICAgICB3YW50IHRvIGluc3RhbGwgdGhlIE1haWxSZWFkZXIgYXBwbGljYXRpb24gb24geW91ciBvd24gZGV2ZWxvcG1lbnQgCisgICAgICAgIHdvcmtzdGF0aW9uIGFuZCBmb2xsb3cgYWxvbmcuCisgICAgICAgIE9mIGNvdXJzZSwgdGhlIGZ1bGwgc291cmNlIGNvZGUgdG8gdGhlIE1haWxSZWFkZXIgaXMgaW5jbHVkZWQgaW4gdGhlIAorICAgICAgICBkaXN0cmlidXRpb24uCisgICAgPC9pPgorCis8L3A+CisKKzxwPgorICAgIDxpPgorICAgICAgICBUaGUgdG91ciBhc3N1bWVzIHRoZSByZWFkZXIgaGFzIGEgYmFzaWMgdW5kZXJzdGFuZGluZyBvZiB0aGUgSmF2YQorICAgICAgICBsYW5ndWFnZSwgSmF2YUJlYW5zLCB3ZWIgYXBwbGljYXRpb25zLCBhbmQgSmF2YVNlcnZlciBQYWdlcy4gRm9yIAorICAgICAgICBiYWNrZ3JvdW5kIG9uIHRoZXNlIHRlY2hub2xvZ2llcywgc2VlIHRoZQorICAgICAgICA8YSBocmVmPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvcHJpbWVyLmh0bWwiPgorICAgICAgICAgICAgS2V5IFRlY2hub2xvZ2llcyBQcmltZXI8L2E+LgorICAgIDwvaT4KKzwvcD4KKworPGhyLz4KKworPHA+TG9nZ2luZyBJbjwvcD4KKworPHVsPgorICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0iI1dlbGNvbWUiPldlbGNvbWU8L2E+CisKKyAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiN3ZWIueG1sIj53ZWIueG1sIGFuZCByZXNvdXJjZXMucHJvcGVydGllczwvYT48L2xpPgorCisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI1dlbGNvbWUuZG8iPldlbGNvbWUuZG88L2E+PC9saT4KKworICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNXZWxjb21lLmphdmEiPldlbGNvbWUgQWN0aW9uPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjZ2xvYmFsLXJlc3VsdHMiPkdsb2JhbCBSZXN1bHRzPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjQXBwbGljYXRpb25MaXN0ZW5lci5qYXZhIj5BcHBsaWNhdGlvbkxpc3RlbmVyLmphdmE8L2E+PC9saT4KKworICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNyZXNvdXJjZXMucHJvcGVydGllcyI+TWVzc2FnZSBSZXNvdXJjZXM8L2E+PC9saT4KKworICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNXZWxjb21lLmpzcCI+V2VsY29tZSBQYWdlPC9hPjwvbGk+CisKKyAgICAgICAgPC91bD4KKyAgICA8L2xpPgorPC91bD4KKworPHVsPgorICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0iI0xvZ29uIj5Mb2dvbjwvYT4KKyAgICAgICAgPHVsPgorCisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI0xvZ29uLmpzcCI+TG9nb24gUGFnZTwvYT48L2xpPgorCisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI0xvZ29uLXZhbGlkYXRpb24ueG1sIj5Mb2dvbi12YWxpZGF0aW9uLnhtbDwvYT48L2xpPgorCisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI0xvZ29uLmphdmEiPkxvZ29uLmphdmE8L2E+PC9saT4KKworICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNNYWlscmVhZGVyU3VwcG9ydC5qYXZhIj5NYWlscmVhZGVyU3VwcG9ydC5qYXZhPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjTG9nb24ueG1sIj5Mb2dvbiBDb25maWd1cmF0aW9uPC9hPjwvbGk+CisKKyAgICAgICAgPC91bD4KKyAgICA8L2xpPgorPC91bD4KKworPHVsPgorICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0iI01haW5NZW51Ij5NYWluTWVudTwvYT4KKyAgICA8L2xpPgorPC91bD4KKworPHVsPgorICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0iI1JlZ2lzdHJhdGlvbi5qc3AiPlJlZ2lzdHJhdGlvbiBwYWdlPC9hPgorICAgICAgICA8dWw+CisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI2l0ZXJhdG9yIj5pdGVyYXRvcjwvYT48L2xpPgorICAgICAgICA8L3VsPgorICAgIDwvbGk+Cis8L3VsPgorCis8dWw+CisgICAgPGxpPgorICAgICAgICA8YSBocmVmPSIjU3Vic2NyaXB0aW9uIj5TdWJzY3JpcHRpb248L2E+CisKKyAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNTdWJzY3JpcHRpb25BY3Rpb24uamF2YSI+U3Vic2NyaXB0aW9uLmphdmE8L2E+CisgICAgICAgICAgICA8L2xpPgorICAgICAgICA8L3VsPgorICAgIDwvbGk+Cis8L3VsPgorPGhyLz4KKworPHA+CisgICAgVGhlIHByZW1pc2Ugb2YgdGhlIE1haWxSZWFkZXIgaXMgdGhhdCBpdCBpcyB0aGUgZmlyc3QgaXRlcmF0aW9uIG9mIGEKKyAgICBwb3J0YWwgYXBwbGljYXRpb24uCisgICAgVGhpcyB2ZXJzaW9uIGFsbG93cyB1c2VycyB0byByZWdpc3RlciBhbmQgbWFpbnRhaW4gYSBzZXQgb2YKKyAgICBhY2NvdW50cyB3aXRoIHZhcmlvdXMgbWFpbCBzZXJ2ZXJzLgorICAgIElmIGNvbXBsZXRlZCwgdGhlIGFwcGxpY2F0aW9uIHdvdWxkIGxldCB1c2VycyByZWFkIG1haWwgZnJvbSB0aGVpcgorICAgIGFjY291bnRzLgorPC9wPgorCis8cD4KKyAgICBUaGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbiBkZW1vbnN0cmF0ZXMgcmVnaXN0ZXJpbmcgd2l0aCBhbiBhcHBsaWNhdGlvbiwKKyAgICBsb2dnaW5nIGludG8gYW4gYXBwbGljYXRpb24sIG1haW50YWluaW5nIGEgbWFzdGVyIHJlY29yZCwgYW5kIG1haW50YWluaW5nCisgICAgY2hpbGQgcmVjb3Jkcy4KKyAgICBUaGlzIGFydGljbGUgb3ZlcnZpZXdzIHRoZSBjb25zdHJ1Y3RzIG5lZWRlZCB0byBkbyB0aGVzZSB0aGluZ3MsCisgICAgaW5jbHVkaW5nIHRoZSBzZXJ2ZXIgcGFnZXMsIEphdmEgY2xhc3NlcywgYW5kIGNvbmZpZ3VyYXRpb24gZWxlbWVudHMuCis8L3A+CisKKzxwPgorICAgIEZvciBtb3JlIGFib3V0IHRoZSBNYWlsUmVhZGVyLCBpbmNsdWRpbmcgYWx0ZXJuYXRlIGltcGxlbWVudGF0aW9ucyBhbmQgYQorICAgIHNldCBvZiBmb3JtYWwgVXNlIENhc2VzLAorICAgIHBsZWFzZSB2aXNpdCB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5TdHJ1dHNVbml2ZXJzaXR5Lm9yZy9NYWlsUmVhZGVyIj4KKyAgICBTdHJ1dHMgVW5pdmVyc2l0eSBNYWlsUmVhZGVyIHNpdGU8L2E+LgorPC9wPgorCis8aHIvPgorPGJsb2NrcXVvdGU+CisgICAgPHA+PGZvbnQgY2xhc3M9ImhpbnQiPgorICAgICAgICA8c3Ryb25nPkpBQVM8L3N0cm9uZz4gLQorICAgICAgICBOb3RlIHRoYXQgZm9yIGNvbXBhdGliaWxpdHkgYW5kIGVhc2Ugb2YgZGVwbG95bWVudCwgdGhlIE1haWxSZWFkZXIKKyAgICAgICAgdXNlcyAiYXBwbGljYXRpb24tYmFzZWQiIGF1dGhvcml6YXRpb24uCisgICAgICAgIEhvd2V2ZXIsIHVzZSBvZiB0aGUgc3RhbmRhcmQgSmF2YSBBdXRoZW50aWNhdGlvbiBhbmQgQXV0aG9yaXphdGlvbgorICAgICAgICBTZXJ2aWNlIChKQUFTKSBpcyByZWNvbW1lbmRlZCBmb3IgbW9zdCBhcHBsaWNhdGlvbnMuCisgICAgICAgIChTZWUgdGhlIDxhCisgICAgICAgICAgICBocmVmPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvcHJpbWVyLmh0bWwiPgorICAgICAgICBLZXkgVGVjaG5vbG9naWVzIFByaW1lcjwvYT4gZm9yIG1vcmUgYWJvdXQKKyAgICAgICAgYXV0aGVudGljYXRpb24gdGVjaG5vbG9naWVzLikKKyAgICA8L2ZvbnQ+PC9wPgorPC9ibG9ja3F1b3RlPgorPGhyLz4KKworPHA+CisgICAgVGhlIHRvdXIgc3RhcnRzIHdpdGggaG93IHRoZSBpbml0aWFsIHdlbGNvbWUgcGFnZSBpcyBkaXNwbGF5ZWQsIGFuZAorICAgIHRoZW4gc3RlcHMgdGhyb3VnaCBsb2dnaW5nIGludG8gdGhlIGFwcGxpY2F0aW9uIGFuZCBlZGl0aW5nIGEgc3Vic2NyaXB0aW9uLgorICAgIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBub3QgYSBxdWljayBwZWVrIGF0IGEgIkhlbGxvIFdvcmxkIiBhcHBsaWNhdGlvbi4KKyAgICBUaGUgdG91ciBpcyBhIHJpY2ggdHJlayBpbnRvIGEgcmVhbGlzdGljLCBiZXN0IHByYWN0aWNlcyBhcHBsaWNhdGlvbi4KKyAgICBZb3UgbWF5IG5lZWQgdG8gYWRqdXN0IHlvdXIgY2hhaXIgYW5kIGdldCBhIGZyZXNoIGN1cCBvZiBjb2ZmZWUuCisgICAgUHJpbnRlZCwgdGhlIGFydGljbGUgaXMgMjkgcGFnZXMgbG9uZyAoVVMpLgorPC9wPgorCis8aDM+PGEgbmFtZT0iV2VsY29tZSIgaWQ9IldlbGNvbWUiPldlbGNvbWUgUGFnZTwvYT48L2gzPgorCis8cD4KKyAgICBBIHdlYiBhcHBsaWNhdGlvbiwgbGlrZSBhbnkgb3RoZXIgd2ViIHNpdGUsIGNhbiBzcGVjaWZ5IGEgbGlzdCBvZiB3ZWxjb21lIHBhZ2VzLgorICAgIFdoZW4geW91IG9wZW4gYSB3ZWIgYXBwbGljYXRpb24gd2l0aG91dCBzcGVjaWZ5aW5nIGEgcGFydGljdWxhciBwYWdlLCBhCisgICAgZGVmYXVsdCAid2VsY29tZSBwYWdlIiBpcyBzZXJ2ZWQgYXMgdGhlIHJlc3BvbnNlLgorPC9wPgorCis8aDQ+PGEgbmFtZT0id2ViLnhtbCIgaWQ9IndlYi54bWwiPndlYi54bWw8L2E+PC9oND4KKworPHA+CisgICAgV2hlbiBhIHdlYiBhcHBsaWNhdGlvbiBsb2FkcywKKyAgICB0aGUgY29udGFpbmVyIHJlYWRzIGFuZCBwYXJzZXMgdGhlICJXZWIgQXBwbGljYXRpb24gRGVwbG95bWVudAorICAgIERlc2NyaXB0b3IiLCBvciAid2ViLnhtbCIgZmlsZS4KKyAgICBUaGUgZnJhbWV3b3JrIHBsdWdzIGludG8gYSB3ZWIgYXBwbGljYXRpb24gdmlhIGEgc2VydmxldCBmaWx0ZXIuCisgICAgTGlrZSBhbnkgZmlsdGVyLCB0aGUgInN0cnV0czIiIGZpbHRlciBpcyBkZXBsb3llZCB2aWEgdGhlICJ3ZWIueG1sIi4KKzwvcD4KKworPGhyLz4KKzxoNT53ZWIueG1sIC0gVGhlIFdlYiBBcHBsaWNhdGlvbiBEZXBsb3ltZW50IERlc2NyaXB0b3I8L2g1PgorPHByZT48Y29kZT4mbHQ7P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+CismbHQ7IURPQ1RZUEUgd2ViLWFwcCBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4zLy9FTiIKKyAgImh0dHA6Ly9qYXZhLnN1bi5jb20vZHRkL3dlYi1hcHBfMl8zLmR0ZCI+CismbHQ7d2ViLWFwcD4KKworICAmbHQ7ZGlzcGxheS1uYW1lPlN0cnV0cyAyIE1haWxSZWFkZXImbHQ7L2Rpc3BsYXktbmFtZT4KKworICA8c3Ryb25nPiZsdDtmaWx0ZXI+CisgICAgJmx0O2ZpbHRlci1uYW1lPnN0cnV0czImbHQ7L2ZpbHRlci1uYW1lPgorICAgICZsdDtmaWx0ZXItY2xhc3M+CisgICAgICBvcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5GaWx0ZXJEaXNwYXRjaGVyCisgICAgJmx0Oy9maWx0ZXItY2xhc3M+CisgICAmbHQ7L2ZpbHRlcj48L3N0cm9uZz4KKworICAmbHQ7ZmlsdGVyLW1hcHBpbmc+CisgICAgJmx0O2ZpbHRlci1uYW1lPjxzdHJvbmc+c3RydXRzMjwvc3Ryb25nPiZsdDsvZmlsdGVyLW5hbWU+CisgICAgJmx0O3VybC1wYXR0ZXJuPi8qJmx0Oy91cmwtcGF0dGVybj4KKyAgJmx0Oy9maWx0ZXItbWFwcGluZz4KKworICAmbHQ7bGlzdGVuZXI+CisgICAgJmx0O2xpc3RlbmVyLWNsYXNzPgorICAgICAgb3JnLnNwcmluZ2ZyYW1ld29yay53ZWIuY29udGV4dC5Db250ZXh0TG9hZGVyTGlzdGVuZXIKKyAgICAmbHQ7L2xpc3RlbmVyLWNsYXNzPgorICAmbHQ7L2xpc3RlbmVyPgorCisgICZsdDshLS0gQXBwbGljYXRpb24gTGlzdGVuZXIgZm9yIE1haWxSZWFkZXIgZGF0YWJhc2UgLS0+CisgICZsdDtsaXN0ZW5lcj4KKyAgICAmbHQ7bGlzdGVuZXItY2xhc3M+CisgICAgICBtYWlscmVhZGVyMi5BcHBsaWNhdGlvbkxpc3RlbmVyCisgICAgJmx0Oy9saXN0ZW5lci1jbGFzcz4KKyAgJmx0Oy9saXN0ZW5lcj4KKworICAmbHQ7d2VsY29tZS1maWxlLWxpc3Q+CisgICAgJmx0O3dlbGNvbWUtZmlsZT5pbmRleC5odG1sJmx0Oy93ZWxjb21lLWZpbGU+CisgICZsdDsvd2VsY29tZS1maWxlLWxpc3Q+CisKKyAgJmx0Oy93ZWItYXBwPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIEFtb25nIG90aGVyIHRoaW5ncywKKyAgICB0aGUgd2ViLnhtbCBzcGVjaWZpZXMgdGhlICJXZWxjb21lIEZpbGUgTGlzdCIgZm9yIGFuIGFwcGxpY2F0aW9uLgorICAgIFdoZW4gYSB3ZWIgYWRkcmVzcyByZWZlcnMgdG8gYSBkaXJlY3RvcnkgcmF0aGVyIHRoYW4gYW4gaW5kaXZpZHVhbCBmaWxlLAorICAgIHRoZSBjb250YWluZXIgY29uc3VsdHMgdGhlIFdlbGNvbWUgRmlsZSBMaXN0IGZvciB0aGUgbmFtZSBvZiBhIHBhZ2UgdG8KKyAgICBvcGVuIGJ5IGRlZmF1bHQuCis8L3A+CisKKzxwPgorICAgIEhvd2V2ZXIsIG1vc3QgU3RydXRzIGFwcGxpY2F0aW9ucyBkbyBub3QgcmVmZXIgdG8gcGh5c2ljYWwgcGFnZXMsCisgICAgYnV0IHRvICJ2aXJ0dWFsIHJlc291cmNlcyIgY2FsbGVkIDxpPmFjdGlvbnM8L2k+LgorICAgIEFjdGlvbnMgc3BlY2lmeSBjb2RlIHRoYXQgd2Ugd2FudCB0byBiZSBydW4gYmVmb3JlIGEgcGFnZQorICAgIG9yIG90aGVyIHJlc291cmNlIHJlbmRlcnMgdGhlIHJlc3BvbnNlLgorICAgIEFuIGFjY2VwdGVkIHByYWN0aWNlIGlzIHRvIG5ldmVyIGxpbmsgZGlyZWN0bHkgdG8gc2VydmVyIHBhZ2VzLAorICAgIGJ1dCBvbmx5IHRvIGxvZ2ljYWwgYWN0aW9uIG1hcHBpbmdzLgorICAgIEJ5IGxpbmtpbmcgdG8gYWN0aW9ucywgZGV2ZWxvcGVycyBjYW4gb2Z0ZW4gInJld2lyZSIgYW4gYXBwbGljYXRpb24KKyAgICB3aXRob3V0IGVkaXRpbmcgdGhlIHNlcnZlciBwYWdlcy4KKzwvcD4KKworPGhyLz4KKzxoNT5CZXN0IFByYWN0aWNlOjwvaDU+Cis8YmxvY2txdW90ZT4KKyAgICA8cD48Zm9udCBjbGFzcz0iaGludCI+IkxpbmsgYWN0aW9ucyBub3QgcGFnZXMuIjwvZm9udD48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8aHIvPgorCis8cD4KKyAgICBUaGUgYWN0aW9ucyBhcmUgbGlzdGVkIGluIG9uZSBvciBtb3JlIFhNTCBjb25maWd1cmF0aW9uIGZpbGVzLAorICAgIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZmlsZSBiZWluZyBuYW1lZCAic3RydXRzLnhtbCIuCisgICAgV2hlbiB0aGUgYXBwbGljYXRpb24gbG9hZHMsIHRoZSBzdHJ1dHMueG1sLCBhbmQgYW55IG90aGVyIGZpbGVzIAorICAgIGl0IGluY2x1ZGVzLCBhcmUgcGFyc2VkLCBhbmQgdGhlIGZyYW1ld29yayBjcmVhdGVzIGEgc2V0IG9mIAorICAgIGNvbmZpZ3VyYXRpb24gb2JqZWN0cy4gCisgICAgQW1vbmcgb3RoZXIgdGhpbmdzLCB0aGUgY29uZmlndXJhdGlvbiBtYXBzIGEgcmVxdWVzdCBmb3IgYSBjZXJ0YWluIAorICAgIHBhZ2UgdG8gYSBjZXJ0YWluIGFjdGlvbiBtYXBwaW5nLgorPC9wPgorCis8cD4KKyAgICBTaXRlcyBjYW4gbGlzdCB6ZXJvIG9yIG1vcmUgIldlbGNvbWUiIHBhZ2VzIGluIHRoZSB3ZWIueG1sLgorICAgIFVubGVzcyB5b3UgYXJlIHVzaW5nIEphdmEgMS41LCBhY3Rpb25zIGNhbm5vdCBiZSBzcGVjaWZpZWQgYXMgYSBXZWxjb21lCisgICAgcGFnZS4KKyAgICBTbywgaW4gdGhlIGNhc2Ugb2YgYSBXZWxjb21lIHBhZ2UsCisgICAgaG93IGRvIHdlIGZvbGxvdyB0aGUgYmVzdCBwcmFjdGljZSBvZiBuYXZpZ2F0aW5nIHRocm91Z2ggYWN0aW9ucworICAgIHJhdGhlciB0aGFuIHBhZ2VzPworPC9wPgorCis8cD4KKyAgICBPbmUgc29sdXRpb24gaXMgdG8gdXNlIGEgcGFnZSB0byAiYm9vdHN0cmFwIiBvbmUgb2Ygb3VyIGFjdGlvbnMuCisgICAgV2UgY2FuIHJlZ2lzdGVyIHRoZSB1c3VhbCAiaW5kZXguaHRtbCIgYXMgdGhlIFdlbGNvbWUgcGFnZSBhbmQgaGF2ZSBpdAorICAgIHJlZGlyZWN0IHRvIGEgIldlbGNvbWUiIGFjdGlvbi4KKzwvcD4KKworPGhyLz4KKzxoNT5NYWlsUmVhZGVyJ3MgaW5kZXguaHRtbDwvaDU+Cis8cHJlPjxjb2RlPiZsdDshRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiI+CismbHQ7aHRtbD4mbHQ7aGVhZD4KKyAgJmx0O01FVEEgSFRUUC1FUVVJVj0iUmVmcmVzaCIgQ09OVEVOVD0iMDs8c3Ryb25nPlVSTD1XZWxjb21lLmRvPC9zdHJvbmc+Ij4KKyAgJmx0Oy9oZWFkPgorICAmbHQ7Ym9keT4KKyAgICAmbHQ7cD5Mb2FkaW5nIC4uLiZsdDsvcD4KKyZsdDsvYm9keT4mbHQ7L2h0bWw+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgQXMgYW4gYWx0ZXJuYXRpdmUsCisgICAgd2UgY291bGQgYWxzbyBoYXZlIHVzZWQgYSBKU1AgcGFnZSB0aGF0IGlzc3VlZCB0aGUgcmVkaXJlY3Qgd2l0aCBhIFN0cnV0cyB0YWcsCisgICAgYnV0IGEgcGxhaW4gSFRNTCBzb2x1dGlvbiB3b3JrcyBhcyB3ZWxsLgorPC9wPgorCis8aDQ+PGEgbmFtZT0iV2VsY29tZS5kbyIgaWQ9IldlbGNvbWUuZG8iPldlbGNvbWUuZG88L2E+PC9oND4KKworPHA+CisgICAgV2hlbiB0aGUgY2xpZW50IHJlcXVlc3RzICJXZWxjb21lLmRvIiwgdGhlIHJlcXVlc3QgaXMgcGFzc2VkIHRvIHRoZSAic3RydXRzMiIgRmlsdGVyRGlzcGF0Y2hlcgorICAgICh0aGF0IHdlIHJlZ2lzdGVyZWQgaW4gdGhlIHdlYi54bWwgZmlsZSkuCisgICAgVGhlIEZpbHRlckRpc3BhdGNoZXIgcmV0cmlldmVzIHRoZSBhcHByb3ByaWF0ZSBhY3Rpb24gbWFwcGluZyBmcm9tIHRoZSAKKyAgICBjb25maWd1cmF0aW9uLgorICAgIElmIHdlIGp1c3Qgd2FudGVkIHRvIGZvcndhcmQgdG8gdGhlIFdlbGNvbWUgcGFnZSwgd2UgY291bGQgdXNlIGEgc2ltcGxlCisgICAgY29uZmlndXJhdGlvbiBlbGVtZW50LgorPC9wPgorPGhyLz4KKzxoNT5BIHNpbXBsZSAiZm9yd2FyZCB0aHJ1IiBhY3Rpb24gZWxlbWVudDwvaDU+Cis8cHJlPjxjb2RlPiZsdDthY3Rpb24gbmFtZT0iPHN0cm9uZz5XZWxjb21lPC9zdHJvbmc+Ij4KKyAgJmx0O3Jlc3VsdD48c3Ryb25nPi9wYWdlcy9XZWxjb21lLmpzcDwvc3Ryb25nPiZsdDsvcmVzdWx0PgorJmx0Oy9hY3Rpb24+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgSWYgYSBjbGllbnQgYXNrcyBmb3IgdGhlIFdlbGNvbWUgYWN0aW9uICgiV2VsY29tZS5kbyksIHRoZSAiL3BhZ2UvV2VsY29tZS5qc3AiCisgICAgcGFnZSB3b3VsZCBiZSByZXR1cm5lZCBpbiByZXNwb25zZS4KKyAgICBUaGUgY2xpZW50IGRvZXMgbm90IGtub3csIG9yIG5lZWQgdG8ga25vdywgdGhhdCB0aGUgcGh5c2ljYWwgcmVzb3VyY2UgaXMgbG9jYXRlZCBhdAorICAgICIvcGFnZXMvV2VsY29tZS5qc3AiLgorICAgIEFsbCB0aGUgY2xpZW50IGtub3dzIGlzIHRoYXQgaXQgcmVxdWVzdGVkIHRoZSByZXNvdXJjZSAiV2VsY29tZS5kbyIuCis8L3A+CisKKzxwPgorICAgIEJ1dCBpZiB3ZSBwZWVrIGF0IHRoZSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBNYWlsUmVhZGVyLAorICAgIHdlIGZpbmQgYSBzbGlnaHRseSBtb3JlIGNvbXBsaWNhdGVkIFhNTCBlbGVtZW50IGZvciB0aGUgV2VsY29tZSBhY3Rpb24uCis8L3A+CisKKzxoci8+Cis8aDU+VGhlIFdlbGNvbWUgYWN0aW9uIGVsZW1lbnQ8L2g1PgorPHByZT48Y29kZT4mbHQ7YWN0aW9uIG5hbWU9IldlbGNvbWUiIDxiPmNsYXNzPSJtYWlscmVhZGVyMi5XZWxjb21lIjwvYj4+CisgICAgJmx0O3Jlc3VsdD4vcGFnZXMvV2VsY29tZS5qc3AmbHQ7L3Jlc3VsdD4KKyAgICA8c3Ryb25nPiZsdDtpbnRlcmNlcHRvci1yZWYgbmFtZT0iZ3Vlc3QiLz48L3N0cm9uZz4KKyAgICAmbHQ7L2FjdGlvbj48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBIZXJlLCB0aGUgPHN0cm9uZz5XZWxjb21lPC9zdHJvbmc+IEphdmEgY2xhc3MgZXhlY3V0ZXMgd2hlbmV2ZXIKKyAgICBzb21lb25lIGFza3MgZm9yIHRoZSBXZWxjb21lIGFjdGlvbi4KKyAgICBBcyBpdCBjb21wbGV0ZXMsIHRoZSBBY3Rpb24gY2xhc3MgY2FuIHNlbGVjdCB3aGljaCAicmVzdWx0IiBpcyBkaXNwbGF5ZWQuCisgICAgVGhlIGRlZmF1bHQgcmVzdWx0IG5hbWUgaXMgInN1Y2Nlc3MiLgorICAgIEFub3RoZXIgYXZhaWxhYmxlIHJlc3VsdCwgZGVmaW5lZCBhdCBhIGdsb2JhbCBzY29wZSwgaXMgImVycm9yIi4KKzwvcD4KKworPGhyLz4KKzxoNT5LZXkgY29uY2VwdDo8L2g1PgorPGJsb2NrcXVvdGU+CisgICAgPHA+CisgICAgICAgIFRoZSBBY3Rpb24gY2xhc3MgZG9lc24ndCBuZWVkIHRvIGtub3cgd2hhdCByZXN1bHQgdHlwZSBpcyBuZWVkZWQKKyAgICAgICAgZm9yICJzdWNjZXNzIiBvciAiZXJyb3IiLgorICAgICAgICBUaGUgQWN0aW9uIGNhbiBqdXN0IHJldHVybiB0aGUgbG9naWNhbCBuYW1lIGZvciBhIHJlc3VsdCwKKyAgICAgICAgd2l0aG91dCBrbm93aW5nIGhvdyB0aGUgcmVzdWx0IGlzIGltcGxlbWVudGVkLgorICAgIDwvcD4KKzwvYmxvY2txdW90ZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSBuZXQgZWZmZWN0IGlzIHRoYXQgYWxsIG9mIHRoZSByZXN1bHQgZGV0YWlscywKKyAgICBpbmNsdWRpbmcgdGhlIHBhdGhzIHRvIHNlcnZlciBwYWdlcywKKyAgICBhbGwgY2FuIGJlIGRlY2xhcmVkIDxlbT5vbmNlPC9lbT4gaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisgICAgVGlnaHRseSBjb3VwbGVkIGltcGxlbWVudGF0aW9uIGRldGFpbHMgYXJlIG5vdCBzY2F0dGVyZWQgYWxsIG92ZXIKKyAgICB0aGUgYXBwbGljYXRpb24uCis8L3A+CisKKzxoci8+Cis8aDU+S2V5IGNvbmNlcHQ6PC9oNT4KKzxibG9ja3F1b3RlPgorICAgIDxwPgorICAgICAgICBUaGUgU3RydXRzIGNvbmZpZ3VyYXRpb24gbGV0cyB1cyBzZXBhcmF0ZSBjb25jZXJucyBhbmQgInNheSBpdCBvbmNlIi4KKyAgICAgICAgVGhlIGNvbmZpZ3VyYXRpb24gaGVscHMgdXMgIm5vcm1hbGl6ZSIgYW4gYXBwbGljYXRpb24sIAorICAgICAgICBpbiBtdWNoIHRoZSBzYW1lIHdheSB3ZSBub3JtYWxpemUgYSBkYXRhYmFzZSBzY2hlbWEuIAorICAgIDwvcD4KKzwvYmxvY2txdW90ZT4KKzxoci8+CisKKworPHA+CisgICAgT0sgLi4uIGJ1dCB3aHkgd291bGQgYSBXZWxjb21lIEFjdGlvbiB3YW50IHRvIGNob29zZSBiZXR3ZWVuICJzdWNjZXNzIiBhbmQKKyAgICAiZXJyb3IiPworPC9wPgorCis8aDQ+PGEgbmFtZT0iV2VsY29tZS5qYXZhIiBpZD0iV2VsY29tZS5qYXZhIj5XZWxjb21lIEFjdGlvbjwvYT48L2g0PgorCis8cD4KKyAgICBUaGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbiByZXRhaW5zIGEgbGlzdCBvZiB1c2VycyBhbG9uZyB3aXRoIHRoZWlyIGVtYWlsCisgICAgYWNjb3VudHMuCisgICAgVGhlIGFwcGxpY2F0aW9uIHN0b3JlcyB0aGlzIGluZm9ybWF0aW9uIGluIGEgZGF0YWJhc2UuCisgICAgSWYgdGhlIGFwcGxpY2F0aW9uIGNhbid0IGNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlLCB0aGUgYXBwbGljYXRpb24gY2FuJ3QgZG8KKyAgICBpdHMgam9iLgorICAgIFNvIGJlZm9yZSBkaXNwbGF5aW5nIHRoZSBXZWxjb21lIDxzdHJvbmc+cGFnZTwvc3Ryb25nPiwgdGhlIFdlbGNvbWUKKyAgICA8c3Ryb25nPmNsYXNzPC9zdHJvbmc+IGNoZWNrcyB0byBzZWUgaWYgdGhlIGRhdGFiYXNlIGlzIGF2YWlsYWJsZS4KKzwvcD4KKworPHA+CisgICAgVGhlIE1haWxSZWFkZXIgaXMgYWxzbyBhbiBpbnRlcm5hdGlvbmFsaXplZCBhcHBsaWNhdGlvbi4KKyAgICBTbywgdGhlIFdlbGNvbWUgQWN0aW9uIGNsYXNzIGNoZWNrcyB0byBzZWUgaWYgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGFyZQorICAgIGF2YWlsYWJsZSB0b28uCisgICAgSWYgYm90aCByZXNvdXJjZXMgYXJlIGF2YWlsYWJsZSwgdGhlIGNsYXNzIHBhc3NlcyBiYWNrIHRoZSAic3VjY2VzcyIgdG9rZW4uCisgICAgT3RoZXJ3aXNlLCB0aGUgY2xhc3MgcGFzc2VzIGJhY2sgdGhlICJlcnJvciIgdG9rZW4sCisgICAgc28gdGhhdCB0aGUgYXBwcm9wcmlhdGUgbWVzc2FnZXMgY2FuIGJlIGRpc3BsYXllZC4KKzwvcD4KKworPGhyLz4KKzxoNT5UaGUgV2VsY29tZSBBY3Rpb24gY2xhc3M8L2g1PgorPHByZT48Y29kZT5wYWNrYWdlIG1haWxyZWFkZXIyOworcHVibGljIGNsYXNzIFdlbGNvbWUgZXh0ZW5kcyBNYWlscmVhZGVyU3VwcG9ydCB7CisKKyAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgeworCisgICAgLy8gQ29uZmlybSBtZXNzYWdlIHJlc291cmNlcyBsb2FkZWQKKyAgICBTdHJpbmcgbWVzc2FnZSA9IGdldFRleHQoQ29uc3RhbnRzLkVSUk9SX0RBVEFCQVNFX01JU1NJTkcpOworICAgIGlmIChDb25zdGFudHMuRVJST1JfREFUQUJBU0VfTUlTU0lORy5lcXVhbHMobWVzc2FnZSkpIHsKKyAgICAgIDxzdHJvbmc+YWRkQWN0aW9uRXJyb3IoQ29uc3RhbnRzLkVSUk9SX01FU1NBR0VTX05PVF9MT0FERUQpOzwvc3Ryb25nPgorICAgIH0KKworICAgIC8vIENvbmZpcm0gZGF0YWJhc2UgbG9hZGVkCisgICAgaWYgKG51bGw9PWdldERhdGFiYXNlKCkpIHsKKyAgICAgIDxzdHJvbmc+YWRkQWN0aW9uRXJyb3IoQ29uc3RhbnRzLkVSUk9SX0RBVEFCQVNFX05PVF9MT0FERUQpOzwvc3Ryb25nPgorICAgIH0KKworICAgIGlmIChoYXNFcnJvcnMoKSkgeworICAgICAgPHN0cm9uZz5yZXR1cm4gRVJST1I7PC9zdHJvbmc+CisgICAgfQorICAgIGVsc2UgeworICAgICAgPHN0cm9uZz5yZXR1cm4gU1VDQ0VTUzs8L3N0cm9uZz4KKyAgICB9CisgIH0KK308L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBTZXZlcmFsIGNvbW1vbiByZXN1bHQgbmFtZXMgYXJlIHByZWRlZmluZWQsIAorICAgIGluY2x1ZGluZyBFUlJPUiwgU1VDQ0VTUywgTE9HSU4sIE5PTkUsIGFuZCBJTlBVVCwKKyAgICBzbyB0aGF0IHRoZXNlIHRva2VucyBjYW4gYmUgdXNlZCBjb25zaXN0ZW50bHkgYWNyb3NzIFN0cnV0cyAyIGFwcGxpY2F0aW9ucy4KKzwvcD4KKworCis8aDQ+PGEgbmFtZT0iZ2xvYmFsLXJlc3VsdHMiIGlkPSJnbG9iYWwtcmVzdWx0cyI+R2xvYmFsIFJlc3VsdHM8L2E+PC9oND4KKworPHA+CisgICAgQXMgbWVudGlvbmVkLCAiZXJyb3IiIGlzIGRlZmluZWQgaW4gYSBnbG9iYWwgc2NvcGUuCisgICAgT3RoZXIgYWN0aW9ucyBtYXkgaGF2ZSB0cm91YmxlIGNvbm5lY3RpbmcgdG8gdGhlIGRhdGFiYXNlIGxhdGVyLAorICAgIG9yIG90aGVyIHVuZXhwZWN0ZWQgZXJyb3JzIG1heSBvY2N1ci4KKyAgICBUaGUgTWFpbFJlYWRlciBkZWZpbmVzIHRoZSAiZXJyb3IiIHJlc3VsdCBhcyBhIEdsb2JhbCBSZXN1bHQsCisgICAgc28gdGhhdCBhbnkgYWN0aW9uIGNhbiB1c2UgaXQuCis8L3A+CisKKzxoci8+Cis8aDU+TWFpbFJlYWRlcidzIGdsb2JhbC1yZXN1bHQgZWxlbWVudDwvaDU+Cis8cHJlPjxjb2RlPiAmbHQ7Z2xvYmFsLXJlc3VsdHM+CisgICZsdDtyZXN1bHQgbmFtZT08c3Ryb25nPiJlcnJvciI8L3N0cm9uZz4+PHN0cm9uZz4vcGFnZXMvRXJyb3IuanNwPC9zdHJvbmc+Jmx0Oy9yZXN1bHQ+CisgICZsdDtyZXN1bHQgbmFtZT0iaW52YWxpZC50b2tlbiI+L3BhZ2VzL0Vycm9yLmpzcCZsdDsvcmVzdWx0PgorICAmbHQ7cmVzdWx0IG5hbWU9ImxvZ2luIiB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPkxvZ29uIWlucHV0Jmx0Oy9yZXN1bHQ+CismbHQ7L2dsb2JhbC1yZXN1bHRzPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIE9mIGNvdXJzZSwgaWYgYW4gaW5kaXZpZHVhbCBhY3Rpb24gbWFwcGluZyBkZWZpbmVzIGl0cyBvd24gImVycm9yIiByZXN1bHQgdHlwZSwKKyAgICB0aGUgbG9jYWwgcmVzdWx0IHdvdWxkIGJlIHVzZWQgaW5zdGVhZC4KKzwvcD4KKworPGg0PjxhIG5hbWU9IkFwcGxpY2F0aW9uTGlzdGVuZXIuamF2YSIgaWQ9IkFwcGxpY2F0aW9uTGlzdGVuZXIuamF2YSI+QXBwbGljYXRpb25MaXN0ZW5lci5qYXZhPC9hPgorPC9oND4KKworPHA+CisgICAgVGhlIGRhdGFiYXNlIGlzIGV4cG9zZWQgYXMgYW4gb2JqZWN0IHN0b3JlZCBpbiBhcHBsaWNhdGlvbiBzY29wZS4KKyAgICBUaGUgZGF0YWJhc2Ugb2JqZWN0IGlzIGJhc2VkIG9uIGFuIGludGVyZmFjZS4KKyAgICBEaWZmZXJlbnQgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBkYXRhYmFzZSBjb3VsZCBiZSBsb2FkZWQgd2l0aG91dCBjaGFuZ2luZworICAgIHRoZSByZXN0IG9mIHRoZSBhcHBsaWNhdGlvbi4KKyAgICBCdXQgaG93IGlzIHRoZSBkYXRhYmFzZSBvYmplY3QgbG9hZGVkIGluIHRoZSBmaXJzdCBwbGFjZT8KKzwvcD4KKworPHA+CisgICAgVGhlIGRhdGFiYXNlIGlzIGNyZWF0ZWQgYnkgYSBjdXN0b20gTGlzdGVuZXIgdGhhdCB3ZSBjb25maWd1cmVkIGluIHRoZSAid2ViLnhtbCIuCis8L3A+CisKKzxoci8+Cis8aDU+bWFpbHJlYWRlcjIuQXBwbGljYXRpb25MaXN0ZW5lcjwvaDU+Cis8cHJlPjxjb2RlPiAmbHQ7bGlzdGVuZXI+CisgICZsdDtsaXN0ZW5lci1jbGFzcz4KKyAgICA8c3Ryb25nPm1haWxyZWFkZXIyLkFwcGxpY2F0aW9uTGlzdGVuZXI8L3N0cm9uZz4KKyAgJmx0Oy9saXN0ZW5lci1jbGFzcz4KKyZsdDsvbGlzdGVuZXI+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgQnkgZGVmYXVsdCwgb3VyIEFwcGxpY2F0aW9uTGlzdGVuZXIgbG9hZHMgYSA8c3Ryb25nPk1lbW9yeURhdGFiYXNlPC9zdHJvbmc+CisgICAgaW1wbGVtZW50YXRpb24gb2YgdGhlIFVzZXJEYXRhYmFzZS4KKyAgICBNZW1vcnlEYXRhYmFzZSBzdG9yZXMgdGhlIGRhdGFiYXNlIGNvbnRlbnQgYXMgYSBYTUwgZG9jdW1lbnQsCisgICAgd2hpY2ggaXMgcGFyc2VkIGFuZCBsb2FkZWQgYXMgYSBzZXQgb2YgbmVzdGVkIGhhc2h0YWJsZXMuCisgICAgVGhlIG91dGVyIHRhYmxlIGlzIHRoZSBsaXN0IG9mIHVzZXIgb2JqZWN0cywgZWFjaCBvZiB3aGljaCBoYXMgaXRzIG93bgorICAgIGlubmVyIGhhc2h0YWJsZSBvZiBzdWJzY3JpcHRpb25zLgorICAgIFdoZW4geW91IHJlZ2lzdGVyLCBhIHVzZXIgb2JqZWN0IGlzIHN0b3JlZCBpbiB0aGlzIGhhc2h0YWJsZS4KKyAgICBXaGVuIHlvdSBsb2dpbiwgdGhlIHVzZXIgb2JqZWN0IGlzIHN0b3JlZCB3aXRoaW4gdGhlIHNlc3Npb24gY29udGV4dC4KKzwvcD4KKworPHA+CisgICAgVGhlIGRhdGFiYXNlIGNvbWVzIHNlZWRlZCB3aXRoIGEgc2FtcGxlIHVzZXIuCisgICAgSWYgeW91IGNoZWNrIHRoZSAiZGF0YWJhc2UueG1sIiBmaWxlIHVuZGVyICIvc3JjL21haW4iLAorICAgIHlvdSdsbCBzZWUgdGhlIHNhbXBsZSB1c2VyIGRlc2NyaWJlZCBpbiBYTUwuCis8L3A+CisKKzxoci8+Cis8aDU+VGhlICJzZWVkIiB1c2VyIGVsZW1lbnQgZnJvbSB0aGUgTWFpbFJlYWRlciBkYXRhYmFzZS54bWw8L2g1PgorPHByZT48Y29kZT4mbHQ7dXNlciB1c2VybmFtZT0iPHN0cm9uZz51c2VyPC9zdHJvbmc+IiBmcm9tQWRkcmVzcz0iSm9obi5Vc2VyQHNvbWV3aGVyZS5jb20iCisgIGZ1bGxOYW1lPSI8c3Ryb25nPkpvaG4gUS4gVXNlcjwvc3Ryb25nPiIgcGFzc3dvcmQ9IjxzdHJvbmc+cGFzczwvc3Ryb25nPiI+CisgICAgJmx0O3N1YnNjcmlwdGlvbiBob3N0PSI8c3Ryb25nPm1haWwuaG90bWFpbC5jb20iPC9zdHJvbmc+IGF1dG9Db25uZWN0PSJmYWxzZSIKKyAgICAgIHBhc3N3b3JkPSJiYXIiIHR5cGU9InBvcDMiIHVzZXJuYW1lPSJ1c2VyMTIzNCI+CisgICAgJmx0Oy9zdWJzY3JpcHRpb24+CisgICAgJmx0O3N1YnNjcmlwdGlvbiBob3N0PSI8c3Ryb25nPm1haWwueWFob28uY29tPC9zdHJvbmc+IiBhdXRvQ29ubmVjdD0iZmFsc2UiIHBhc3N3b3JkPSJmb28iCisgICAgICB0eXBlPSJpbWFwIiB1c2VybmFtZT0ianF1c2VyIj4KKyAgICAmbHQ7L3N1YnNjcmlwdGlvbj4KKyZsdDsvdXNlcj48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBUaGUgInNlZWQiIHVzZXIgZWxlbWVudCBjcmVhdGVzIGEgcmVnaXN0cmF0aW9uIHJlY29yZCBmb3IgIkpvaG4gUS4gVXNlciIsCisgICAgd2l0aCB0aGUgc3Vic2NyaXB0aW9uIGRldGFpbCBmb3IgaGlzIGhvdG1haWwgYW5kIHlhaG9vIGFjY291bnRzLgorPC9wPgorCis8aDQ+PGEgbmFtZT0icmVzb3VyY2VzLnByb3BlcnRpZXMiIGlkPSJyZXNvdXJjZXMucHJvcGVydGllcyI+TWVzc2FnZSBSZXNvdXJjZXM8L2E+Cis8L2g0PgorCis8cD4KKyAgICBBcyBtZW50aW9uZWQsIE1haWxSZWFkZXIgaXMgYW4gaW50ZXJuYXRpb25hbGl6ZWQgYXBwbGljYXRpb24uCisgICAgVGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciB0aGUgYXBwbGljYXRpb24gYXJlIGxvYWRlZCB0aHJvdWdoIGEgcmVmZXJlbmNlIGluIHRoZQorICAgICJzdHJ1dHMucHJvcGVydGllcyIgZmlsZS4KKyAgICBMaWtlIHRoZSBkYXRhYmFzZSBjb250ZW50cywgdGhlICJzdHJ1dHMucHJvcGVydGllcyIgZmlsZSBpcyBrZXB0IHVuZGVyCisgICAgIi9zcmMvbWFpbi8iIGluIHRoZSBzb3VyY2UgdHJlZS4KKzwvcD4KKworPGhyLz4KKzxoNT5zdHJ1dHMucHJvcGVydGllczwvaDU+Cis8cHJlPjxjb2RlPnN0cnV0cy5jdXN0b20uaTE4bi5yZXNvdXJjZXMgPSA8c3Ryb25nPnJlc291cmNlczwvc3Ryb25nPgorc3RydXRzLmFjdGlvbi5leHRlbnNpb24gPSA8c3Ryb25nPmRvPC9zdHJvbmc+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgV2hlbiB3ZSBzcGVjaWZ5ICJyZXNvdXJjZXMiIGluIHRoZSBwcm9wZXJ0aWVzIGZpbGUsCisgICAgd2UgYXJlIHRlbGxpbmcgdGhlIGZyYW1ld29yayB0byBzY2FuIHRoZSBjbGFzc3BhdGgKKyAgICBmb3IgYSBSZXNvdXJjZSBCdW5kbGUgbmFtZWQgInJlc291cmNlcy5wcm9wZXJ0aWVzIi4KKyAgICBUaGUgYnVuZGxlIG1pZ2h0IGJlIGVtYmVkZGVkIGluIGEgSkFSLCBvciBmb3VuZCBpbiB0aGUgIldFQi1JTkYvY2xhc3NlcyIKKyAgICBmb2xkZXIsIG9yIGFueXdoZXJlIGVsc2Ugb24gdGhlIHJ1bnRpbWUgY2xhc3NwYXRoLgorICAgIEluIHRoZSBNYWlsUmVhZGVyLCB3ZSBrZWVwIHRoZSA8c3Ryb25nPm9yaWdpbmFsPC9zdHJvbmc+IGJ1bmRsZSBpbiB0aGUgCisgICAgc291cmNlIHRyZWUgdW5kZXIgInNyYy9tYWluLyIuIFdoZW4gdGhlIGFwcGxpY2F0aW9uIGlzIGJ1aWx0LCB0aGUgCisgICAgcHJvcGVydGllcyBmaWxlcyBhcmUgIDxzdHJvbmc+Y29waWVkPC9zdHJvbmc+IHRvICJXRUItSU5GL2NsYXNzZXMiLCBzbyAKKyAgICB0aGF0IHRoZXkgYXJlIG9uIHRoZSBKYXZhIGNsYXNzcGF0aC4KKzwvcD4KKworPGhyLz4KKzxoNT5NZXNzYWdlIFJlc291cmNlIGVudHJpZXMgdXNlZCBieSB0aGUgV2VsY29tZSBwYWdlPC9oNT4KKzxwcmU+PGNvZGU+PHN0cm9uZz5pbmRleC5oZWFkaW5nPTwvc3Ryb25nPk1haWxSZWFkZXIgQXBwbGljYXRpb24gT3B0aW9ucworPHN0cm9uZz5pbmRleC5sb2dvbj08L3N0cm9uZz5Mb2cgb24gdG8gdGhlIE1haWxSZWFkZXIgQXBwbGljYXRpb24KKzxzdHJvbmc+aW5kZXgucmVnaXN0cmF0aW9uPTwvc3Ryb25nPlJlZ2lzdGVyIHdpdGggdGhlIE1haWxSZWFkZXIgQXBwbGljYXRpb24KKzxzdHJvbmc+aW5kZXgudGl0bGU9PC9zdHJvbmc+TWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uCis8c3Ryb25nPmluZGV4LnRvdXI9PC9zdHJvbmc+QSBXYWxraW5nIFRvdXIgb2YgdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIElmIHlvdSBjaGFuZ2UgYSBtZXNzYWdlIGluIHRoZSByZXNvdXJjZSwgYW5kIHRoZW4gcmVidWlsZCBhbmQgcmVsb2FkIHRoZSAKKyAgICBhcHBsaWNhdGlvbiwgdGhlIGNoYW5nZSB3aWxsIGFwcGVhciB0aHJvdWdob3V0IHRoZSBhcHBsaWNhdGlvbi4KKyAgICBJZiB5b3UgcHJvdmlkZSBtZXNzYWdlIHJlc291cmNlcyBmb3IgYWRkaXRpb25hbCBsb2NhbGVzLCB5b3UgY2FuCisgICAgbG9jYWxpemUgeW91ciBhcHBsaWNhdGlvbi4KKyAgICBUaGUgTWFpbFJlYWRlciBwcm92aWRlcyByZXNvdXJjZXMgZm9yIEVuZ2xpc2gsIFJ1c3NpYW4sIGFuZCBKYXBhbmVzZS4KKzwvcD4KKworPGg0PjxhIG5hbWU9IldlbGNvbWUuanNwIiBpZD0iV2VsY29tZS5qc3AiPldlbGNvbWUgUGFnZTwvYT48L2g0PgorCis8cD4KKyAgICBBZnRlciBjb25maXJtaW5nIHRoYXQgdGhlIG5lY2Vzc2FyeSByZXNvdXJjZXMgZXhpc3QsIHRoZSBXZWxjb21lIGFjdGlvbgorICAgIGZvcndhcmRzIHRvIHRoZSBXZWxjb21lIHBhZ2UuCis8L3A+Cis8aHIvPgorPGg1PldlbGNvbWUuanNwPC9oNT4KKzxwcmU+PGNvZGU+Jmx0OyVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzxzdHJvbmc+Jmx0OyVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MiICU+PC9zdHJvbmc+CisgICZsdDshRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorICAmbHQ7aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CisgICAgJmx0O2hlYWQ+CisgICAgICAmbHQ7bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIvPgorICAgICAgJmx0O3RpdGxlPjxzdHJvbmc+Jmx0O3M6dGV4dCBuYW1lPSJpbmRleC50aXRsZSIvPjwvc3Ryb25nPiZsdDsvdGl0bGU+CisgICAgICAmbHQ7bGluayBocmVmPSI8c3Ryb25nPiZsdDtzOnVybCB2YWx1ZT0iL2Nzcy9tYWlscmVhZGVyLmNzcyIvPjwvc3Ryb25nPiIgcmVsPSJzdHlsZXNoZWV0IgorICAgICAgdHlwZT0idGV4dC9jc3MiLz4KKyAgICAmbHQ7L2hlYWQ+CisKKyAgICAmbHQ7Ym9keT4KKyAgICAgICZsdDtoMz4mbHQ7czp0ZXh0IG5hbWU9ImluZGV4LmhlYWRpbmciLz4mbHQ7L2gzPgorCisgICAgICAmbHQ7dWw+CisgICAgICAgICZsdDtsaT4mbHQ7YSBocmVmPSImbHQ7czp1cmwgYWN0aW9uPSJSZWdpc3RyYXRpb24haW5wdXQiLz4iPiZsdDtzOnRleHQKKyAgICAgICAgICBuYW1lPSJpbmRleC5yZWdpc3RyYXRpb24iLz4mbHQ7L2E+Jmx0Oy9saT4KKyAgICAgICAgJmx0O2xpPiZsdDthIGhyZWY9IiZsdDtzOnVybCBhY3Rpb249IkxvZ29uIWlucHV0Ii8+Ij4mbHQ7czp0ZXh0CisgICAgICAgICAgbmFtZT0iaW5kZXgubG9nb24iLz4mbHQ7L2E+Jmx0Oy9saT4KKyAgICAgICZsdDsvdWw+CisKKyAgICAgICZsdDtoMz5MYW5ndWFnZSBPcHRpb25zJmx0Oy9oMz4KKyAgICAgICZsdDt1bD4KKyAgICAgICAgJmx0O2xpPiZsdDthIGhyZWY9IiZsdDtzOnVybCBhY3Rpb249IldlbGNvbWU/cmVxdWVzdF9sb2NhbGU9ZW4iLz4iPkVuZ2xpc2gmbHQ7L2E+Jmx0Oy9saT4KKyAgICAgICAgJmx0O2xpPiZsdDthIGhyZWY9IiZsdDtzOnVybCBhY3Rpb249IldlbGNvbWU/cmVxdWVzdF9sb2NhbGU9amEiLz4iPkphcGFuZXNlJmx0Oy9hPiZsdDsvbGk+CisgICAgICAgICZsdDtsaT4mbHQ7YSBocmVmPSImbHQ7czp1cmwgYWN0aW9uPSJXZWxjb21lP3JlcXVlc3RfbG9jYWxlPXJ1Ii8+Ij5SdXNzaWFuJmx0Oy9hPiZsdDsvbGk+CisgICAgICAmbHQ7L3VsPgorCisgICAgJmx0O2hyIC8+CisKKyAgICAmbHQ7cD48c3Ryb25nPiZsdDtzOmkxOG4gbmFtZT0iYWx0ZXJuYXRlIj48L3N0cm9uZz4KKyAgICAmbHQ7aW1nIHNyYz0iJmx0O3M6dGV4dCBuYW1lPSJzdHJ1dHMubG9nby5wYXRoIi8+IgorICAgICAgYWx0PSImbHQ7czp0ZXh0IG5hbWU9InN0cnV0cy5sb2dvLmFsdCIvPiIvPgorICAgIDxzdHJvbmc+Jmx0Oy9zOmkxOG4+PC9zdHJvbmc+Jmx0Oy9wPgorCisgICAgJmx0O3A+Jmx0O2EgaHJlZj0iJmx0O3M6dXJsIGFjdGlvbj0iVG91ciIgLz4iPiZsdDtzOnRleHQgbmFtZT0iaW5kZXgudG91ciIvPiZsdDsvYT4mbHQ7L3A+CisKKyAgJmx0Oy9ib2R5PgorJmx0Oy9odG1sPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIEF0IHRoZSB0b3Agb2YgdGhlIFdlbGNvbWUgcGFnZSwgdGhlcmUgYXJlIHNldmVyYWwgZGlyZWN0aXZlcyB0aGF0IGxvYWQgdGhlCisgICAgU3RydXRzIDIgdGFnIGxpYnJhcmllcy4KKyAgICBUaGVzZSBhcmUganVzdCB0aGUgdXN1YWwgcmVkIHRhcGUgdGhhdCBnb2VzIHdpdGggYW55IEpTUCBmaWxlLgorICAgIFRoZSByZXN0IG9mIHRoZSBwYWdlIHV0aWxpemVzIHRocmVlIFN0cnV0cyBKU1AgdGFnczoKKyAgICAidGV4dCIsICJ1cmwiLCBhbmQgImkxOG4iLgorPC9wPgorCis8cD4KKyAgICAoV2UgdXNlIHRoZSB0YWcgcHJlZml4ICJzOiIgaW4gdGhlIFN0cnV0cyAyIE1haWxSZWFkZXIgYXBwbGljYXRpb24sCisgICAgYnV0IHlvdSBjYW4gdXNlIHdoYXRldmVyIHByZWZpeCB5b3UgbGlrZSBpbiB5b3VyIGFwcGxpY2F0aW9ucy4pCis8L3A+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPnRleHQ8L3N0cm9uZz4gdGFnIGluc2VydHMgYSBtZXNzYWdlIGZyb20gYW4KKyAgICBhcHBsaWNhdGlvbidzIGRlZmF1bHQgcmVzb3VyY2UgYnVuZGxlLgorICAgIElmIHRoZSBmcmFtZXdvcmsncyBsb2NhbGUgc2V0dGluZyBpcyBjaGFuZ2VkIGZvciBhIHVzZXIsCisgICAgdGhlIHRleHQgdGFnIHdpbGwgcmVuZGVyIG1lc3NhZ2VzIGZyb20gdGhlIG5ldyBsb2NhbGUncyByZXNvdXJjZQorICAgIGJ1bmRsZSBpbnN0ZWFkLgorPC9wPgorCis8cD4KKyAgICBUaGUgPHN0cm9uZz51cmw8L3N0cm9uZz4gdGFnIGNhbiByZW5kZXIgYSByZWZlcmVuY2UgdG8gYW4KKyAgICBhY3Rpb24gb3IgYW55IG90aGVyIHdlYiByZXNvdXJjZSwKKyAgICBhcHBseWluZyAiVVJMIGVuY29kaW5nIiB0byB0aGUgaHlwZXJsaW5rcyBhcyBuZWVkZWQuCisgICAgSmF2YSdzIFVSTCBlbmNvZGluZyBmZWF0dXJlIGxldHMgeW91ciBhcHBsaWNhdGlvbiBtYWludGFpbiBjbGllbnQgc3RhdGUKKyAgICB3aXRob3V0IHJlcXVpcmluZyBjb29raWVzLgorPC9wPgorCis8aHIvPgorPGg1PlRpcDo8L2g1PgorPGJsb2NrcXVvdGU+CisgICAgPHA+PGZvbnQgY2xhc3M9ImhpbnQiPgorICAgICAgICA8c3Ryb25nPkNvb2tpZXM8L3N0cm9uZz4gLQorICAgICAgICBJZiB5b3UgdHVybiBjb29raWVzIG9mZiBpbiB5b3VyIGJyb3dzZXIsIGFuZCB0aGVuIHJlbG9hZCB5b3VyIGJyb3dzZXIKKyAgICAgICAgYW5kIHRoaXMgcGFnZSwKKyAgICAgICAgeW91IHdpbGwgc2VlIHRoZSBsaW5rcyB3aXRoIHRoZSBKYXZhIHNlc3Npb24gaWQgaW5mb3JtYXRpb24gYXR0YWNoZWQuCisgICAgICAgIChJZiB5b3UgYXJlIHVzaW5nIEludGVybmV0IEV4cGxvcmVyIGFuZCB0cnkgdGhpcywKKyAgICAgICAgYmUgc3VyZSB5b3UgcmVzZXQgY29va2llcyBmb3IgdGhlIGFwcHJvcHJpYXRlIHNlY3VyaXR5IHpvbmUsCisgICAgICAgIGFuZCB0aGF0IHlvdSBkaXNhbGxvdyAicGVyLXNlc3Npb24iIGNvb2tpZXMuKQorICAgIDwvZm9udD48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8aHIvPgorCis8cD4KKyAgICBUaGUgPHN0cm9uZz5pMThuPC9zdHJvbmc+IHRhZyBwcm92aWRlcyBhY2Nlc3MgdG8gbXVsdGlwbGUgcmVzb3VyY2UgYnVuZGxlcy4KKyAgICBUaGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbiB1c2VzIGEgc2Vjb25kIHNldCBvZiBtZXNzYWdlIHJlc291cmNlcyBmb3IKKyAgICBub24tdGV4dCBlbGVtZW50cy4KKyAgICBXaGVuIHRoZXNlIGFyZSBuZWVkZWQsIHdlIHVzZSB0aGUgImkxOG4iIHRhZyB0byBzcGVjaWZ5IGEgZGlmZmVyZW50IGJ1bmRsZS4KKzwvcD4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+YWx0ZXJuYXRlPC9zdHJvbmc+IGJ1bmRsZSBpcyBzdG9yZWQgbmV4dCB0byB0aGUgZGVmYXVsdCBidW5kbGUsCisgICAgc28gdGhhdCBpdCBlbmRzIHVwIHVuZGVyICJjbGFzc2VzIiwgd2hpY2ggaXMgb24gdGhlIGFwcGxpY2F0aW9uJ3MgY2xhc3MgcGF0aC4KKzwvcD4KKworPHA+CisgICAgSW4gdGhlIHNwYW4gb2YgYSBzaW5nbGUgcmVxdWVzdCBmb3IgdGhlIFdlbGNvbWUgcGFnZSwgdGhlIGZyYW1ld29yayBoYXMgZG9uZQorICAgIHF1aXRlIGEgYml0IGFscmVhZHk6Cis8L3A+CisKKzx1bD4KKyAgICA8bGk+CisgICAgICAgIENvbmZpcm1lZCB0aGF0IHJlcXVpcmVkIHJlc291cmNlcyB3ZXJlIGxvYWRlZCBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCisgICAgPC9saT4KKworICAgIDxsaT4KKyAgICAgICAgV3JpdHRlbiBhbGwgdGhlIHBhZ2UgaGVhZGluZ3MgYW5kIGxhYmVscyBmcm9tIGludGVybmF0aW9uYWxpemVkCisgICAgICAgIG1lc3NhZ2UgcmVzb3VyY2VzLgorICAgIDwvbGk+CisKKyAgICA8bGk+CisgICAgICAgIEF1dG9tYXRpY2FsbHkgVVJMLWVuY29kZWQgcGF0aHMgYXMgbmVlZGVkLgorICAgIDwvbGk+Cis8L3VsPgorCis8cD4KKyAgICBXaGVuIHJlbmRlcmVkLCB0aGUgV2VsY29tZSBwYWdlIGxpc3RzIHR3byBtZW51IG9wdGlvbnM6CisgICAgb25lIHRvIHJlZ2lzdGVyIHdpdGggdGhlIGFwcGxpY2F0aW9uIGFuZCBvbmUgdG8gbG9nIG9uIChpZiB5b3UgaGF2ZQorICAgIGFscmVhZHkgcmVnaXN0ZXJlZCkuCisgICAgTGV0J3MgZm9sbG93IHRoZSBMb2dvbiBsaW5rIGZpcnN0LgorPC9wPgorCis8aDM+PGEgbmFtZT0iTG9nb24iIGlkPSJMb2dvbiI+TG9nb248L2E+PC9oMz4KKworPHA+CisgICAgSWYgeW91IGNob29zZSB0aGUgTG9nb24gbGluaywgYW5kIGFsbCBnb2VzIHdlbGwsIHRoZSBMb2dvbiBhY3Rpb24gZm9yd2FyZHMKKyAgICBjb250cm9sIHRvIHRoZSBMb2dvbiBwYWdlLgorPC9wPgorCis8aDQ+PGEgbmFtZT0iTG9nb24uanNwIiBpZD0iTG9nb24uanNwIj5Mb2dvbiBQYWdlPC9hPjwvaDQ+CisKKzxwPgorICAgIFRoZSBMb2dvbiBwYWdlIGRpc3BsYXlzIGEgZm9ybSB0aGF0IGFjY2VwdHMgYSB1c2VybmFtZSBhbmQgcGFzc3dvcmQuCisgICAgWW91IGNhbiB1c2UgdGhlIGRlZmF1bHQgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIHRvIGxvZ29uCisgICAgKDxzdHJvbmc+dXNlcjwvc3Ryb25nPiBhbmQgPHN0cm9uZz5wYXNzPC9zdHJvbmc+KSwgaWYKKyAgICB5b3UgbGlrZS4gVHJ5IG9taXR0aW5nIG9yIG1pc3NwZWxsaW5nIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgaW4KKyAgICB2YXJpb3VzIGNvbWJpbmF0aW9ucyB0byBzZWUgaG93IHRoZSBhcHBsaWNhdGlvbiByZWFjdHMuCisgICAgTm90ZSB0aGF0IGJvdGggdGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcmUgY2FzZSBzZW5zaXRpdmUuCis8L3A+CisKKzxoci8+Cis8aDU+TG9naW4uanNwPC9oNT4KKzxwcmU+PGNvZGU+Jmx0OyVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKyAgJmx0OyVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MiICAlPgorICAmbHQ7IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKyAgJmx0O2h0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorICAmbHQ7aGVhZD4KKyAgICAmbHQ7dGl0bGU+Jmx0O3M6dGV4dCBuYW1lPSJsb2dvbi50aXRsZSIvPiZsdDsvdGl0bGU+CisgICAgICAmbHQ7bGluayBocmVmPSImbHQ7czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICAgICAgdHlwZT0idGV4dC9jc3MiLz4KKyAgJmx0Oy9oZWFkPgorICAmbHQ7Ym9keSBvbkxvYWQ9InNlbGYuZm9jdXMoKTtkb2N1bWVudC5Mb2dvbi51c2VybmFtZS5mb2N1cygpIj4KKyAgICA8c3Ryb25nPiZsdDtzOmFjdGlvbmVycm9yLz48L3N0cm9uZz4KKyAgICA8c3Ryb25nPiZsdDtzOmZvcm0gbWV0aG9kPSJQT1NUIiB2YWxpZGF0ZT0idHJ1ZSI+PC9zdHJvbmc+CisgICAgICA8c3Ryb25nPiZsdDtzOnRleHRmaWVsZCBsYWJlbD0iJXtnZXRUZXh0KCd1c2VybmFtZScpfSIgbmFtZT0idXNlcm5hbWUiLz48L3N0cm9uZz4KKyAgICAgIDxzdHJvbmc+Jmx0O3M6cGFzc3dvcmQgbGFiZWw9IiV7Z2V0VGV4dCgncGFzc3dvcmQnKX0iIG5hbWU9InBhc3N3b3JkIi8+PC9zdHJvbmc+CisgICAgICA8c3Ryb25nPiZsdDtzOnN1Ym1pdCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uc2F2ZScpfSIvPjwvc3Ryb25nPgorICAgICAgPHN0cm9uZz4mbHQ7czpyZXNldCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24ucmVzZXQnKX0iLz48L3N0cm9uZz4KKyAgICAgICZsdDtzOnN1Ym1pdCA8c3Ryb25nPmFjdGlvbj0iTG9nb24hY2FuY2VsIiBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiPC9zdHJvbmc+CisgICAgICAgIHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5jYW5jZWwnKX0iLz4KKyAgICAmbHQ7L3M6Zm9ybT4KKyAgICAmbHQ7anNwOmluY2x1ZGUgcGFnZT0iRm9vdGVyLmpzcCIvPgorICAmbHQ7L2JvZHk+CismbHQ7L2h0bWw+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgV2UgYWxyZWFkeSBzYXcgc29tZSBvZiB0aGUgdGFncyB1c2VkIGJ5IHRoZSBMb2dvbiBwYWdlIG9uIHRoZSBXZWxjb21lIHBhZ2UuCisgICAgTGV0J3MgZm9jdXMgb24gdGhlIG5ldyB0YWdzLgorPC9wPgorCis8cD4KKyAgICBUaGUgZmlyc3QgbmV3IHRhZyBvbiB0aGUgTG9nb24gcGFnZSBpcyA8c3Ryb25nPmFjdGlvbmVycm9yczwvc3Ryb25nPi4KKyAgICBNb3N0IG9mIHRoZSBwb3NzaWJsZSB2YWxpZGF0aW9uIGVycm9ycyBhcmUgcmVsYXRlZCB0byBhIHNpbmdsZSBmaWVsZC4KKyAgICBJZiB5b3UgZG9uJ3QgZW50ZXIgYSB1c2VybmFtZSwKKyAgICB0aGUgZnJhbWV3b3JrIGNhbiBwbGFjZSBhbiBlcnJvciBtZXNzYWdlIG5lYXIgdGhlIHRhZyBwcm9tcHRpbmcgeW91IHRvCisgICAgZW50ZXIgYSB1c2VybmFtZS4KKyAgICBCdXQgc29tZSBtZXNzYWdlcyBhcmUgbm90IHJlbGF0ZWQgdG8gYSBzaW5nbGUgZmllbGQuCisgICAgRm9yIGV4YW1wbGUsIHRoZSBkYXRhYmFzZSBtaWdodCBiZSBkb3duLgorICAgIElmIHRoZSBhY3Rpb24gcmV0dXJucyBhbiAiQWN0aW9uIEVycm9yIiwgYXMgb3Bwb3NlZCB0byBhICJGaWVsZCBFcnJvciIsCisgICAgdGhlIG1lc3NhZ2VzIGFyZSByZW5kZXJlZCBpbiBwbGFjZSBvZiB0aGUgImFjdGlvbmVycm9yIiB0YWcuCisgICAgVGhlIHRleHQgZm9yIHRoZSB2YWxpZGF0aW9uIGVycm9ycywgd2hldGhlciB0aGV5IGFyZSBBY3Rpb24gRXJyb3JzIG9yCisgICAgRmllbGQgRXJyb3JzLCBjYW4gYmUgc3BlY2lmaWVkIGluIHRoZSByZXNvdXJjZSBidW5kbGUsCisgICAgbWFraW5nIHRoZSBtZXNzYWdlcyBlYXN5IHRvIG1hbmFnZSBhbmQgbG9jYWxpemUuCis8L3A+CisKKzxwPgorICAgIFRoZSBzZWNvbmQgbmV3IHRhZyBpcyA8c3Ryb25nPmZvcm08L3N0cm9uZz4uCisgICAgVGhpcyB0YWcgcmVuZGVycyBhIEhUTUwgZm9ybSB0YWcuCisgICAgQnkgZGVmYXVsdCwgdGhlIGZvcm0gd2lsbCBzdWJtaXQgYmFjayB0byB3aGF0ZXZlciBhY3Rpb24gaW52b2tlZCB0aGUgcGFnZS4KKyAgICBUaGUgInZhbGlkYXRlPXRydWUiIHNldHRpbmcgZW5hYmxlcyBjbGllbnQtc2lkZSB2YWxpZGF0aW9uLAorICAgIHNvIHRoYXQgdGhlIGZvcm0gY2FuIGJlIHZhbGlkYXRlZCB3aXRoIEphdmFTY3JpcHQgYmVmb3JlIGJlaW5nIHNlbnQKKyAgICBiYWNrIHRvIHRoZSBzZXJ2ZXIuCisgICAgVGhlIGZyYW1ld29yayB3aWxsIHN0aWxsIHZhbGlkYXRlIHRoZSBmb3JtIGFnYWluLCBqdXN0IHRvIGJlIHN1cmUsIGJ1dCB0aGUKKyAgICBjbGllbnQtc2lkZSB2YWxpZGF0aW9uIGNhbiBzYXZlIGEgZmV3IHJvdW5kLXRyaXBzIHRvIHRoZSBzZXJ2ZXIuCisgICAgWW91IGNhbiB1c2UgdGhlIG1ldGhvZCBhdHRyaWJ1dGUgdG8gZGVzaWduYXRlICJHRVQiIG9yICJQT1NUIiwKKyAgICBqdXN0IGxpa2UgdGhlIEhUTUwgZm9ybSB0YWcuCis8L3A+CisKKzxwPgorICAgIFdpdGhpbiB0aGUgZm9ybSB0YWcsCisgICAgd2Ugc2VlIGZvdXIgbW9yZSBuZXcgdGFnczogInRleHRmaWVsZCIsICJwYXNzd29yZCIsICJzdWJtaXQiLAorICAgIGFuZCAicmVzZXQiLiBXZSBhbHNvIHNlZSBhIHNlY29uZCB1c2FnZSBvZiAic3VibWl0IiB0aGF0IHV0aWxpemVzIGFuCisgICAgImFjdGlvbiIgYXR0cmlidXRlLgorPC9wPgorCis8cD4KKyAgICBXaGVuIHdlIHBsYWNlIGEgY29udHJvbCBvbiBhIGZvcm0sIHdlIHVzdWFsbHkgbmVlZCB0byBjb2RlIGEgc2V0IG9mCisgICAgSFRNTCB0YWdzIHRvIGRvIGV2ZXJ5dGhpbmcgd2Ugd2FudCB0byBkby4KKyAgICBNb3N0IG9mdGVuLCB3ZSBkbyBub3QganVzdCB3YW50IGEgcGxhaW4gImlucHV0IHR5cGU9dGV4dCIgdGFnLgorICAgIFdlIHdhbnQgdGhlIGlucHV0IGZpZWxkIHRvIGhhdmUgYSBsYWJlbCB0b28sIGFuZCBtYXliZSBldmVuCisgICAgYSB0b29sdGlwLiBBbmQsIG9mIGNvdXJzZSwgYSBwbGFjZSB0byBwcmludCBhIG1lc3NhZ2UKKyAgICBzaG91bGQgaW52YWxpZCBkYXRhIGJlIGVudGVyZWQuCis8L3A+CisKKzxwPgorICAgIFRoZSBVSSBUYWdzIHN1cHBvcnQgdGVtcGxhdGVzIGFuZCB0aGVtZXMgc28gdGhhdCBhIHNldCBvZiBIVE1MIHRhZ3MgY2FuIGJlCisgICAgcmVuZGVyZWQgZnJvbSBhIHNpbmdsZSBVSSBUYWcuIEZvciBleGFtcGxlLCB0aGUgc2luZ2xlIHRhZworPC9wPgorCis8cHJlPjxjb2RlPgorICAgICZsdDtzOjxzdHJvbmc+dGV4dGZpZWxkPC9zdHJvbmc+IGxhYmVsPSIle2dldFRleHQoJ3VzZXJuYW1lJyl9IiBuYW1lPSJ1c2VybmFtZSIvPgorPC9jb2RlPjwvcHJlPgorCis8cD4KKyAgICBnZW5lcmF0ZXMgYSB3YWQgb2YgSFRNTCBtYXJrdXAuCis8L3A+CisKKzxoci8+Cis8cHJlPjxjb2RlPiZsdDt0cj4KKyAgJmx0O3RkIGNsYXNzPSJ0ZExhYmVsIj4KKyAgICAmbHQ7bGFiZWwgZm9yPSJMb2dvbl91c2VybmFtZSIgY2xhc3M9ImxhYmVsIj5Vc2VybmFtZTombHQ7L2xhYmVsPgorICAmbHQ7L3RkPgorICAmbHQ7dGQ+CisgICAgJmx0O2lucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiB2YWx1ZT0iIiBpZD0iTG9nb25fdXNlcm5hbWUiLz4KKyAgJmx0Oy90ZD4KKyZsdDsvdHI+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgSWYgZm9yIHNvbWUgcmVhc29uIHlvdSBkb24ndCBsaWtlIHRoZSBtYXJrdXAgZ2VuZXJhdGVkIGJ5IGEgVUkgVGFnLAorICAgIGl0J3MgZWFjaCB0byBjaGFuZ2UuCisgICAgRWFjaCB0YWcgaXMgZHJpdmVuIGJ5IGEgdGVtcGxhdGUgdGhhdCBjYW4gYmUgdXBkYXRlZCBvbiBhIHRhZy1ieS10YWcgYmFzaXMuCisgICAgRm9yIGV4YW1wbGUsCisgICAgaGVyZSBpcyB0aGUgZGVmYXVsdCB0ZW1wbGF0ZSB0aGF0IGdlbmVyYXRlcyB0aGUgbWFya3VwIGZvciB0aGUgQWN0aW9uRXJyb3JzIHRhZzoKKzwvcD4KKworPGhyLz4KKzxwcmU+PGNvZGU+Jmx0OyNpZiAoYWN0aW9uRXJyb3JzP2V4aXN0cyAmJiBhY3Rpb25FcnJvcnM/c2l6ZSA+IDApPgorICAmbHQ7dWw+CisgICAgJmx0OyNsaXN0IGFjdGlvbkVycm9ycyBhcyBlcnJvcj4KKyAgICAgICZsdDtsaT4mbHQ7c3BhbiBjbGFzcz0iZXJyb3JNZXNzYWdlIj4ke2Vycm9yfSZsdDsvc3Bhbj4mbHQ7L2xpPgorICAgICZsdDsvI2xpc3Q+CisgICZsdDsvdWw+CismbHQ7LyNpZj48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBJZiB5b3Ugd2FudGVkIEFjdGlvbkVycm9ycyBkaXNwbGF5ZWQgaW4gYSB0YWJsZSBpbnN0ZWFkIG9mIGEgbGlzdCwKKyAgICB5b3UgY291bGQgZWRpdCBhIGNvcHkgb2YgdGhpcyBmaWxlLCBzYXZlIGl0IGFzIGEgZmlsZSBuYW1lZCAiYWN0aW9uZXJyb3IuZnRsIiwKKyAgICBhbmQgcGxhY2UgdGhpcyBvbmUgZmlsZSBzb21ld2hlcmUgb24geW91ciBjbGFzc3BhdGguCis8L3A+CisKKzxoci8+Cis8cHJlPjxjb2RlPiZsdDsjaWYgKGFjdGlvbkVycm9ycz9leGlzdHMgJiYgYWN0aW9uRXJyb3JzP3NpemUgPiAwKT4KKyAgPHN0cm9uZz4mbHQ7dGFibGU+PC9zdHJvbmc+CisgICAgJmx0OyNsaXN0IGFjdGlvbkVycm9ycyBhcyBlcnJvcj4KKyAgICAgIDxzdHJvbmc+Jmx0O3RyPiZsdDt0ZD48L3N0cm9uZz4mbHQ7c3BhbiBjbGFzcz0iZXJyb3JNZXNzYWdlIj4ke2Vycm9yfSZsdDsvc3Bhbj48c3Ryb25nPiZsdDsvdGQ+Jmx0Oy90cj48L3N0cm9uZz4KKyAgICAmbHQ7LyNsaXN0PgorICA8c3Ryb25nPiZsdDsvdGFibGU+PC9zdHJvbmc+CismbHQ7LyNpZj48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBVbmRlciB0aGUgY292ZXJzLCB0aGUgZnJhbWV3b3JrIHVzZXMKKyAgICA8YSBocmVmPSJodHRwOi8vZnJlZW1hcmtlci5zb3VyY2Vmb3JnZS5uZXQvIj5GcmVlbWFya2VyPC9hPgorICAgIGZvciBpdHMgc3RhbmRhcmQgdGVtcGxhdGluZyBsYW5ndWFnZS4KKyAgICBGcmVlTWFya2VyIGlzIHNpbWlsYXIgdG8KKyAgICA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3ZlbG9jaXR5LyI+VmVsb2NpdHk8L2E+LAorICAgIGJ1dCBpdCBvZmZlcnMgYmV0dGVyIGVycm9yIHJlcG9ydGluZyBhbmQgc29tZSBhZGRpdGlvbmFsIGZlYXR1cmVzLgorICAgIElmIHlvdSBwcmVmZXIsIFZlbG9jaXR5IGFuZCBKU1AgdGVtcGxhdGVzIGNhbiBhbHNvIGJlIHVzZWQgdG8gY3JlYXRlIHlvdXIgb3duIFVJIFRhZ3MuCis8L3A+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPnBhc3N3b3JkPC9zdHJvbmc+IHRhZyByZW5kZXJzIGEgImlucHV0IHR5cGU9cGFzc3dvcmQiCisgICAgdGFnLCBhbG9uZyB3aXRoIHRoZSB1c3VhbCB0ZW1wbGF0ZS90aGVtZSBtYXJrdXAuCisgICAgQnkgZGVmYXVsdCwgdGhlIHBhc3N3b3JkIHRhZyB3aWxsIG5vdCByZXRhaW4gaW5wdXQgaWYgdGhlIHN1Ym1pdCBmYWlscy4KKyAgICBJZiB0aGUgdXNlcm5hbWUgaXMgd3JvbmcsCisgICAgdGhlIGNsaWVudCB3aWxsIGhhdmUgdG8gZW50ZXIgdGhlIHBhc3N3b3JkIGFnYWluIHRvby4KKyAgICAoSWYgeW91IGRpZCB3YW50IHRvIHJldGFpbiB0aGUgcGFzc3dvcmQgd2hlbiB2YWxpZGF0aW9uIGZhaWxzLAorICAgIHlvdSBjYW4gc2V0IHRoZSB0YWcncyAic2hvd1Bhc3N3b3JkIiBwcm9wZXJ0eSB0byB0cnVlLikKKzwvcD4KKworPHA+CisgICAgVW5zdXJwcmlzaW5nbHksIHRoZSA8c3Ryb25nPnN1Ym1pdDwvc3Ryb25nPiBhbmQgPHN0cm9uZz5yZXNldDwvc3Ryb25nPiB0YWdzCisgICAgcmVuZGVyIGJ1dHRvbnMgb2YgdGhlIGNvcnJlc3BvbmRpbmcgdHlwZXMuCis8L3A+CisKKzxwPgorICAgIFRoZSBzZWNvbmQgc3VibWl0IGJ1dHRvbiBpcyBtb3JlIGludGVyZXN0aW5nLgorPC9wPgorCis8cHJlPjxjb2RlPiAgJmx0O3M6c3VibWl0IDxzdHJvbmc+YWN0aW9uPSJMb2dvbiFjYW5jZWwiIG9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCI8L3N0cm9uZz4KKyAgICB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uY2FuY2VsJyl9Ii8+Cis8L2NvZGU+PC9wcmU+CisKKzxwPgorICAgIEhlcmUgd2UgYXJlIGNyZWF0aW5nIHRoZSBDYW5jZWwgYnV0dG9uIGZvciB0aGUgZm9ybS4KKyAgICBUaGUgYnV0dG9uJ3MgYXR0cmlidXRlIDxlbT5hY3Rpb249IkxvZ29uPHN0cm9uZz4hPC9zdHJvbmc+Y2FuY2VsIjwvZW0+CisgICAgdGVsbHMgdGhlIGZyYW1ld29yayB0byBzdWJtaXQgdG8gdGhlIExvZ29uJ3MgImNhbmNlbCIgbWV0aG9kCisgICAgaW5zdGVhZCBvZiB0aGUgdXN1YWwgImV4ZWN1dGUiIG1ldGhvZC4KKyAgICBUaGUgPGVtPm9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCI8L2VtPiBzY3JpcHQgZGVmZWF0cyBjbGllbnQtc2lkZSB2YWxpZGF0aW9uLgorICAgIE9uIHRoZSBzZXJ2ZXIgc2lkZSwgImNhbmNlbCIgaXMgb24gYSBzcGVjaWFsIGxpc3Qgb2YgbWV0aG9kcyB0aGF0IGJ5cGFzcyB2YWxpZGF0aW9uLAorICAgIHNvIHRoZSByZXF1ZXN0IHdpbGwgZ28gZGlyZWN0bHkgdG8gdGhlIEFjdGlvbidzIDxzdHJvbmc+Y2FuY2VsPC9zdHJvbmc+IG1ldGhvZC4KKyAgICAoT3RoZXIgc3BlY2lhbCBhbGlhc2VzIG9uIHRoZSBieXBhc3MgbGlzdCBpbmNsdWRlICJpbnB1dCIgYW5kICJiYWNrIi4pCis8L3A+CisKKzxoci8+Cis8aDU+VGlwOjwvaDU+Cis8YmxvY2txdW90ZT4KKyAgICA8cD48Zm9udCBjbGFzcz0iaGludCI+CisgICAgICAgIFRoZSBVSSB0YWdzIGhhdmUgb3B0aW9ucyBhbmQgY2FwYWJpbGl0aWVzIGJleW9uZCB3aGF0IHdlIGhhdmUgc2hvd24gaGVyZS4KKyAgICAgICAgRm9yIG1vcmUgc2VlLCB0aGUgPGEgaHJlZj0iaHR0cDovL2NvbmZsdWVuY2UudHdkYXRhLm9yZy9kaXNwbGF5L1dXL1RhZ3MiPlVJIFRhZyBkb2N1bWVudGF0aW9uLjwvYT4KKyAgICA8L2ZvbnQ+PC9wPgorPC9ibG9ja3F1b3RlPgorPGhyLz4KKworPHA+CisgICAgT0ssIGJ1dCBob3cgZG8gdGhlIHRhZ3Mga25vdyB0aGF0IGJvdGggb2YgdGhlc2UgZmllbGRzIGFyZSByZXF1aXJlZD8KKyAgICBIb3cgZG8gdGhleSBrbm93IHdoYXQgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gdGhlIGZpZWxkcyBhcmUgZW1wdHk/Cis8L3A+CisKKzxwPgorICAgIEZvciB0aGUgYW5zd2Vycywgd2UgbmVlZCB0byBsb29rIGF0IGFub3RoZXIgZmxhdm9yIG9mIGNvbmZpZ3VyYXRpb24gZmlsZToKKyAgICB0aGUgInZhbGlkYXRpb24iIGZpbGUuCis8L3A+CisKKzxoND48YSBuYW1lPSJMb2dvbi12YWxpZGF0aW9uLnhtbCIgaWQ9IkxvZ29uLXZhbGlkYXRpb24ueG1sIj5Mb2dvbi12YWxpZGF0aW9uLnhtbDwvYT4KKzwvaDQ+CisKKzxwPgorICAgIFdoaWxlIGl0IGlzIG5vdCBoYXJkIHRvIGNvZGUgZGF0YS1lbnRyeSB2YWxpZGF0aW9uIGludG8gYW4gQWN0aW9uIGNsYXNzLAorICAgIHRoZSBmcmFtZXdvcmsgcHJvdmlkZXMgYW4gZXZlbiBlYXNpZXIgd2F5IHRvIHZhbGlkYXRlIGlucHV0LgorPC9wPgorCis8cD4KKyAgICBUaGUgdmFsaWRhdGlvbiBmcmFtZXdvcmsgaXMgY29uZmlndXJlZCB0aHJvdWdoIGFub3RoZXIgWE1MIGRvY3VtZW50LCB0aGUgPHN0cm9uZz4KKyAgICBMb2dvbi12YWxpZGF0aW9uLnhtbDwvc3Ryb25nPi4KKzwvcD4KKworPGhyLz4KKzxoNT5WYWxpZGF0aW9uIGZpbGUgZm9yIExvZ29uIEFjdGlvbjwvaDU+Cis8cHJlPjxjb2RlPiZsdDshRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIgorICAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLXZhbGlkYXRvci0xLjAuMi5kdGQiPgorJmx0O3ZhbGlkYXRvcnM+CisgICZsdDtmaWVsZCBuYW1lPSI8c3Ryb25nPnVzZXJuYW1lPC9zdHJvbmc+Ij4KKyAgICAmbHQ7ZmllbGQtdmFsaWRhdG9yIHR5cGU9IjxzdHJvbmc+cmVxdWlyZWRzdHJpbmc8L3N0cm9uZz4iPgorICAgICZsdDttZXNzYWdlIGtleT0iPHN0cm9uZz5lcnJvci51c2VybmFtZS5yZXF1aXJlZDwvc3Ryb25nPiIvPgorICAmbHQ7L2ZpZWxkLXZhbGlkYXRvcj4KKyAgJmx0Oy9maWVsZD4KKyAgJmx0O2ZpZWxkIG5hbWU9IjxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4iPgorICAgICZsdDtmaWVsZC12YWxpZGF0b3IgdHlwZT0iPHN0cm9uZz5yZXF1aXJlZHN0cmluZzwvc3Ryb25nPiI+CisgICAgJmx0O21lc3NhZ2Uga2V5PSI8c3Ryb25nPmVycm9yLnBhc3N3b3JkLnJlcXVpcmVkPC9zdHJvbmc+Ii8+CisgICAgJmx0Oy9maWVsZC12YWxpZGF0b3I+CisgICZsdDsvZmllbGQ+CismbHQ7L3ZhbGlkYXRvcnM+Cis8L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgIFlvdSBtYXkgbm90ZSB0aGF0IHRoZSBEVEQgcmVmZXJzIHRvICJYV29yayIuIAorICAgPGEgaHJlZj0iaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrLyI+CisgICAgIE9wZW4gU3ltcGhvbnkgWFdvcmsKKyAgIDwvYT4gaXMgYSBnZW5lcmljIGNvbW1hbmQtcGF0dGVybiBmcmFtZXdvcmsgdGhhdCBjYW4gYmUgdXNlZCBvdXRzaWRlIG9mIGEgCisgICB3ZWIgZW52aXJvbm1lbnQuIEluIHByYWN0aWNlLCBTdHJ1dHMgMiBpcyBhIHdlYi1iYXNlZCBleHRlbnNpb24gb2YgdGhlIAorICAgWFdvcmsgZnJhbWV3b3JrLiAKKzwvcD4KKworPHA+CisgICAgVGhlIGZpZWxkIGVsZW1lbnRzIGNvcnJlc3BvbmQgdG8gdGhlIEFjdGlvbkZvcm0gcHJvcGVydGllcy4KKyAgICBUaGUgPHN0cm9uZz51c2VybmFtZTwvc3Ryb25nPiBhbmQgPHN0cm9uZz5wYXNzd29yZDwvc3Ryb25nPiBmaWVsZCBlbGVtZW50cworICAgIHNheSB0aGF0IGVhY2ggZmllbGQgZGVwZW5kcyBvbiB0aGUgInJlcXVpcmVkc3RyaW5nIiB2YWxpZGF0b3IuCisgICAgSWYgdGhlIHVzZXJuYW1lIGlzIGJsYW5rIG9yIGFic2VudCwgdmFsaWRhdGlvbiB3aWxsIGZhaWwgYW5kIGFuIGVycm9yCisgICAgbWVzc2FnZSBpcyBnZW5lcmF0ZWQuCisgICAgVGhlIG1lc3NhZ2VzIHdvdWxkIGJlIGJhc2VkIG9uIHRoZSAiZXJyb3IudXNlcm5hbWUucmVxdWlyZWQiIG9yCisgICAgImVycm9yLnBhc3N3b3JkLnJlcXVpcmVkIiBtZXNzYWdlIHRlbXBsYXRlcywgZnJvbSB0aGUgcmVzb3VyY2UgYnVuZGxlLgorPC9wPgorCis8IS0tCis8cD4KKyAgICBUaGUgPHN0cm9uZz5wYXNzd29yZDwvc3Ryb25nPiBmaWVsZCAob3IgcHJvcGVydHkpIGlzIGFsc28gcmVxdWlyZWQuCisgICAgSW4gYWRkaXRpb24sIGl0IG11c3QgYWxzbyBwYXNzIHRoZSAibWF4bGVuZ3RoIiBhbmQgIm1pbmxlbmd0aCIKKyAgICB2YWxpZGF0aW9ucy4KKyAgICBIZXJlLCB0aGUgbWluaW11bSBsZW5ndGggaXMgdGhyZWUgY2hhcmFjdGVycyBhbmQgdGhlIG1heGltdW0gbGVuZ3RoIGlzCisgICAgc2l4dGVlbi4KKyAgICBJZiB0aGUgbGVuZ3RoIG9mIHRoZSBwYXNzd29yZCBkb2Vzbid0IG1lZXQgdGhlc2UgY3JpdGVyaWEsIGEgY29ycmVzcG9uZGluZworICAgIGVycm9yIG1lc3NhZ2UgaXMgZ2VuZXJhdGVkLgorICAgIE9mIGNvdXJzZSwgdGhlIG1lc3NhZ2VzIGFyZSBnZW5lcmF0ZWQgZnJvbSB0aGUgTWVzc2FnZVJlc291cmNlIGJ1bmRsZXMgYW5kCisgICAgYXJlIGVhc3kgdG8gbG9jYWxpemUuCis8L3A+CistLT4KKworPGg0PjxhIG5hbWU9IkxvZ29uLmphdmEiIGlkPSJMb2dvbi5qYXZhIj5Mb2dvbiBBY3Rpb248L2E+PC9oND4KKworPHA+CisgICAgSWYgdmFsaWRhdGlvbiBwYXNzZXMsIHRoZSBmcmFtZXdvcmsgaW52b2tlcyB0aGUgImV4ZWN1dGUiIG1ldGhvZCBvZiB0aGUgTG9nb24gQWN0aW9uLgorICAgIFRoZSBhY3R1YWwgTG9nb24gQWN0aW9uIGlzIGJyaWVmLCBzaW5jZSBtb3N0IG9mIHRoZSBmdW5jdGlvbmFsaXR5IGRlcml2ZXMKKyAgICBmcm9tIHRoZSBiYXNlIGNsYXNzLCA8c3Ryb25nPk1haWxyZWFkZXJTdXBwb3J0PC9zdHJvbmc+LgorPC9wPgorCis8aHIvPgorPGg1PkxvZ29uLmphdmE8L2g1PgorPHByZT48Y29kZT5wYWNrYWdlIG1haWxyZWFkZXIyOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKK3B1YmxpYyBmaW5hbCBjbGFzcyA8c3Ryb25nPkxvZ29uPC9zdHJvbmc+IGV4dGVuZHMgTWFpbHJlYWRlclN1cHBvcnQgeworcHVibGljIFN0cmluZyA8c3Ryb25nPmV4ZWN1dGUoKTwvc3Ryb25nPiB0aHJvd3MgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIHsKKyAgVXNlciB1c2VyID0gPHN0cm9uZz5maW5kVXNlcihnZXRVc2VybmFtZSgpLCBnZXRQYXNzd29yZCgpKTs8L3N0cm9uZz4KKyAgaWYgKHVzZXIgIT0gbnVsbCkgeworICAgIDxzdHJvbmc+c2V0VXNlcih1c2VyKTs8L3N0cm9uZz4KKyAgfQorICBpZiAoPHN0cm9uZz5oYXNFcnJvcnMoKTwvc3Ryb25nPikgeworICAgIHJldHVybiBJTlBVVDsKKyAgfQorICAgIHJldHVybiBTVUNDRVNTOworICB9Cit9PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgTG9nb24gbGF5cyBvdXQgd2hhdCB3ZSBkbyB0byBhdXRoZW50aWNhdGUgYSB1c2VyLgorICAgIFdlIHRyeSB0byBmaW5kIHRoZSB1c2VyIHVzaW5nIHRoZSBjcmVkZW50aWFscyBwcm92aWRlZC4KKyAgICBJZiB0aGUgdXNlciBpcyBmb3VuZCwgd2UgY2FjaGUgYSByZWZlcmVuY2UuCisgICAgSWYgdGhlIHVzZXIgaXMgbm90IGZvdW5kLCB3ZSByZXR1cm4gImlucHV0IiBzbyB0aGUgY2xpZW50IGNhbiB0cnkgYWdhaW4uCisgICAgT3RoZXJ3aXNlLCB3ZSByZXR1cm4gInN1Y2Nlc3MiLCBzbyB0aGF0IHRoZSBjbGllbnQgY2FuIGFjY2VzcyB0aGUgcmVzdCBvZiB0aGUgYXBwbGljYXRpb24uCis8L3A+CisKKzxoND48YSBuYW1lPSJNYWlscmVhZGVyU3VwcG9ydC5qYXZhIiBpZD0iTWFpbHJlYWRlclN1cHBvcnQuamF2YSI+TWFpbHJlYWRlclN1cHBvcnQuamF2YTwvYT48L2g0PgorCis8cD4KKyAgICBMZXQncyBsb29rIGF0IHRoZSByZWxldmFudCBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGZyb20gTWFpbHJlYWRlclN1cHBvcnQKKyAgICBhbmQgYW5vdGhlciBiYXNlIGNsYXNzLCA8c3Ryb25nPkFjdGlvblN1cHBvcnQ8L3N0cm9uZz4sIG5hbWVseSAKKyAgICAiZ2V0VXNlcm5hbWUiLCAiZ2V0UGFzc3dvcmQiLCAiZmluZFVzZXIiLCAic2V0VXNlciIsIGFuZCAiaGFzRXJyb3JzIi4KKzwvcD4KKworPHA+CisgICAgVGhlIGZyYW1ld29yayBsZXRzIHlvdSBkZWZpbmUKKyAgICA8YSBocmVmPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvcHJpbWVyLmh0bWwjamF2YWJlYW5zIj5KYXZhQmVhbiBwcm9wZXJ0aWVzPC9hPgorICAgIGRpcmVjdGx5IG9uIHRoZSBBY3Rpb24uCisgICAgQW55IEphdmFCZWFuIHByb3BlcnR5IGNhbiBiZSB1c2VkLCBpbmNsdWRpbmcgcmljaCBvYmplY3RzLgorICAgIFdoZW4gYSByZXF1ZXN0IGNvbWVzIGluLAorICAgIGFueSBwdWJsaWMgcHJvcGVydGllcyBvbiB0aGUgQWN0aW9uIGNsYXNzIGFyZSBtYXRjaGVkIHdpdGggdGhlIHJlcXVlc3QgcGFyYW1ldGVycy4KKyAgICBXaGVuIHRoZSBuYW1lcyBtYXRjaCwgdGhlIHJlcXVlc3QgcGFyYW1ldGVyIHZhbHVlIGlzIHNldCB0byB0aGUgSmF2YUJlYW4gcHJvcGVydHkuCisgICAgVGhlIGZyYW1ld29yayB3aWxsIG1ha2UgaXRzIGJlc3QgZWZmb3J0IHRvIGNvbnZlcnQgdGhlIGRhdGEsCisgICAgYW5kLCBpZiBuZWNlc3NhcnksIGl0IHdpbGwgcmVwb3J0IGFueSBjb252ZXJzaW9uIGVycm9ycy4KKzwvcD4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+VXNlcm5hbWU8L3N0cm9uZz4gYW5kIDxzdHJvbmc+UGFzc3dvcmQ8L3N0cm9uZz4gcHJvcGVydGllcyBhcmUgbm90aGluZyBmYW5jeSwKKyAgICBqdXN0IHN0YW5kYXJkIEphdmFCZWFuIHByb3BlcnRpZXMuCis8L3A+CisKKzxoci8+Cis8aDU+TWFpbHJlYWRlclN1cHBvcnQuZ2V0VXNlcm5hbWUoKSBhbmQgZ2V0UGFzc3dvcmQoKTwvaDU+Cis8cHJlPjxjb2RlPnByaXZhdGUgU3RyaW5nIHVzZXJuYW1lID0gbnVsbDsKK3B1YmxpYyBTdHJpbmcgPHN0cm9uZz5nZXRVc2VybmFtZSgpPC9zdHJvbmc+IHsKKyAgcmV0dXJuIHRoaXMudXNlcm5hbWU7Cit9CitwdWJsaWMgdm9pZCBzZXRVc2VybmFtZShTdHJpbmcgdXNlcm5hbWUpIHsKKyAgdGhpcy51c2VybmFtZSA9IHVzZXJuYW1lOworfQorCitwcml2YXRlIFN0cmluZyBwYXNzd29yZCA9IG51bGw7CitwdWJsaWMgU3RyaW5nIDxzdHJvbmc+Z2V0UGFzc3dvcmQoKTwvc3Ryb25nPiB7CisgIHJldHVybiB0aGlzLnBhc3N3b3JkOworfQorcHVibGljIHZvaWQgc2V0UGFzc3dvcmQoU3RyaW5nIHBhc3N3b3JkKSB7CisgIHRoaXMucGFzc3dvcmQgPSBwYXNzd29yZDsKK308L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBXZSB1c2UgdGhlc2UgcHJvcGVydGllcyB0byBjYXB0dXJlIHRoZSBjbGllbnQncyBjcmVkZW50aWFscywKKyAgICBhbmQgcGFzcyB0aGVtIHRvIHRoZSBtb3JlIGludGVyZXN0aW5nIDxzdHJvbmc+ZmluZFVzZXI8L3N0cm9uZz4gbWV0aG9kLgorPC9wPgorCis8aHIvPgorPGg1Pk1haWxyZWFkZXJTdXBwb3J0LmZpbmRVc2VyPC9oNT4KKzxwcmU+PGNvZGU+cHVibGljIFVzZXIgPHN0cm9uZz5maW5kVXNlcjwvc3Ryb25nPihTdHJpbmcgdXNlcm5hbWUsIFN0cmluZyBwYXNzd29yZCkKKyAgdGhyb3dzIDxzdHJvbmc+RXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uPC9zdHJvbmc+IHsKKyAgVXNlciB1c2VyID0gPHN0cm9uZz5nZXREYXRhYmFzZSgpLmZpbmRVc2VyKHVzZXJuYW1lKTwvc3Ryb25nPjsKKyAgaWYgKCh1c2VyICE9IG51bGwpICYmICF1c2VyLmdldFBhc3N3b3JkKCkuZXF1YWxzKHBhc3N3b3JkKSkgeworICAgIHVzZXIgPSBudWxsOworICB9CisgIGlmICh1c2VyID09IG51bGwpIHsKKyAgICB0aGlzLjxzdHJvbmc+YWRkRmllbGRFcnJvcjwvc3Ryb25nPigicGFzc3dvcmQiLCBnZXRUZXh0KCJlcnJvci5wYXNzd29yZC5taXNtYXRjaCIpKTsKKyAgfQorICByZXR1cm4gdXNlcjsKK308L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBUaGUgImZpbmRVc2VyIiBtZXRob2QgZGlwcyBpbnRvIHRoZSBNYWlsUmVhZGVyIERhdGEgQWNjZXNzIE9iamVjdCBsYXllciwKKyAgICB3aGljaCBpcyByZXByZXNlbnRlZCBieSB0aGUgPHN0cm9uZz5EYXRhYmFzZTwvc3Ryb25nPiBwcm9wZXJ0eS4KKyAgICBUaGUgY29kZSBmb3IgdGhlIERBTyBsYXllciBpcyBtYWludGFpbmVkIGFzIGEgc2VwYXJhdGUgY29tcG9uZW50LgorICAgIFRoZSBNYWlsUmVhZGVyIGFwcGxpY2F0aW9uIGltcG9ydHMgdGhlIERBTyBKQVIsCisgICAgYnV0IGl0IGlzIG5vdCByZXNwb25zaWJsZSBmb3IgbWFpbnRhaW5pbmcgYW55IG9mIHRoZSBEQU8gc291cmNlLgorICAgIEtlZXBpbmcgdGhlIGRhdGEgYWNjZXNzIGxheWVyIGF0ICJhcm1zLWxlbmd0aCIgaXMgYSB2ZXJ5IGdvb2QgaGFiaXQuCisgICAgSXQgZW5jb3VyYWdlcyBhIHN0eWxlIG9mIGRldmVsb3BtZW50IHdoZXJlIHRoZSBkYXRhIGFjY2VzcyBsYXllcgorICAgIGNhbiBiZSB0ZXN0ZWQgYW5kIGRldmVsb3BlZCBpbmRlcGVuZGVudGx5IG9mIGEgc3BlY2lmaWMgZW5kLXVzZXIgYXBwbGljYXRpb24uCisgICAgSW4gZmFjdCwgdGhlcmUgYXJlIHNldmVyYWwgcmVuZGl0aW9ucyBvZiB0aGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbiwKKyAgICBhbGwgd2hpY2ggc2hhcmUgdGhlIHNhbWUgTWFpbFJlYWRlciBEQU8gSkFSIQorPC9wPgorCis8aHIvPgorPGg1PkJlc3QgUHJhY3RpY2U6PC9oNT4KKzxibG9ja3F1b3RlPgorICAgIDxwPjxmb250IGNsYXNzPSJoaW50Ij4iU3Ryb25nbHkgc2VwYXJhdGUgZGF0YSBhY2Nlc3MgYW5kIGJ1c2luZXNzIGxvZ2ljIGZyb20gdGhlIHJlc3Qgb2YgdGhlIGFwcGxpY2F0aW9uLiI8L2ZvbnQ+CisgICAgPC9wPgorPC9ibG9ja3F1b3RlPgorPGhyLz4KKworPHA+CisgICAgV2hlbiAiZmluZFVzZXIiIHJldHVybnMsCisgICAgdGhlIExvZ29uIEFjdGlvbiBsb29rcyB0byBzZWUgaWYgYSB2YWxpZCAobm9uLW51bGwpIFVzZXIgb2JqZWN0IGlzIHJldHVybmVkLgorICAgIEEgdmFsaWQgVXNlciBpcyBwYXNzZWQgdG8gdGhlIDxzdHJvbmc+VXNlciBwcm9wZXJ0eTwvc3Ryb25nPi4KKyAgICBBbHRob3VnaCBpdCBpcyBzdGlsbCBhIEphdmFCZWFuIHByb3BlcnR5LCAKKyAgICB0aGUgVXNlciBwcm9wZXJ0eSBpcyBub3QgaW1wbGVtZW50ZWQgaW4gcXVpdGUgdGhlIHNhbWUgd2F5IGFzIFVzZXJuYW1lIGFuZCBQYXNzd29yZC4KKzwvcD4KKworPGhyLz4KKzxoNT5NYWlscmVhZGVyU3VwcG9ydC5zZXRVc2VyPC9oNT4KKzxwcmU+PGNvZGU+cHVibGljIFVzZXIgZ2V0VXNlcigpIHsKKyAgcmV0dXJuIChVc2VyKSA8c3Ryb25nPmdldFNlc3Npb24oKS5nZXQoQ29uc3RhbnRzLlVTRVJfS0VZKTwvc3Ryb25nPjsKK30KK3B1YmxpYyB2b2lkIHNldFVzZXIoVXNlciB1c2VyKSB7CisgIGdldFNlc3Npb24oKS5wdXQoQ29uc3RhbnRzLlVTRVJfS0VZLCB1c2VyKTsKK308L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBJbnN0ZWFkIG9mIHVzaW5nIGEgZmllbGQgdG8gc3RvcmUgdGhlIHByb3BlcnR5IHZhbHVlLAorICAgICJzZXRVc2VyIiBwYXNzZXMgaXQgdG8gYSA8c3Ryb25nPlNlc3Npb248L3N0cm9uZz4gcHJvcGVydHkuCis8L3A+CisKKzxociAvPgorPGg1Pk1haWxyZWFkZXJTdXBwb3J0LmdldFNlc3Npb24oKSBhbmQgc2V0U2Vzc2lvbigpPC9oNT4KKzxwcmU+PGNvZGU+cHJpdmF0ZSBNYXAgc2Vzc2lvbjsKK3B1YmxpYyBNYXAgPHN0cm9uZz5nZXRTZXNzaW9uKCk8L3N0cm9uZz4geworICByZXR1cm4gc2Vzc2lvbjsKKworcHVibGljIHZvaWQgPHN0cm9uZz5zZXRTZXNzaW9uKE1hcCB2YWx1ZSk8L3N0cm9uZz4geworICBzZXNzaW9uID0gdmFsdWU7Cit9PC9jb2RlPjwvcHJlPgorPGhyIC8+CisKKzxwPgorICAgIFRvIGxvb2sgYXQgdGhlIE1haWxyZWFkZXJTdXBwb3J0IGNsYXNzLCB5b3Ugd291bGQgdGhpbmsgdGhlIFNlc3Npb24gcHJvcGVydHkgaXMgYSBwbGFpbi1vbGQgTWFwLgorICAgIEluIGZhY3QsIHRoZSBTZXNzaW9uIHByb3BlcnR5IGlzIGFuIGFkYXB0ZXIgdGhhdCBpcyBiYWNrZWQgYnkgdGhlIHNlcnZsZXQgc2Vzc2lvbiBvYmplY3QgYXQgcnVudGltZS4KKyAgICBUaGUgTWFpbHJlYWRlclN1cHBvcnQgY2xhc3MgZG9lc24ndCBuZWVkIHRvIGtub3cgdGhhdCB0aG91Z2guCisgICAgSXQgY2FuIHRyZWF0IFNlc3Npb24gbGlrZSBhbnkgb3RoZXIgTWFwLgorICAgIFdlIGNhbiBhbHNvIHRlc3QgdGhlIE1haWxyZWFkZXJTdXBwb3J0IGNsYXNzIGJ5IHBhc3NpbmcgaXQgc29tZSBvdGhlciBpbXBsZW1lbnRhdGlvbiBvZiBNYXAsCisgICAgcnVubmluZyB0aGUgdGVzdCwKKyAgICBhbmQgdGhlbiBsb29raW5nIHRvIHNlZSB3aGF0IGNoYW5nZXMgTWFpbHJlYWRlclN1cHBvcnQgbWFkZSB0byBvdXIgIm1vY2siIFNlc3Npb24gb2JqZWN0LgorPC9wPgorCis8cD4KKyAgICBCdXQsIHdoZW4gTWFpbHJlYWRlclN1cHBvcnQgaXMgcnVubmluZyBpbnNpZGUgYSB3ZWIgYXBwbGljYXRpb24sCisgICAgaG93IGRvZXMgaXQgYWNxdWlyZSBhIHJlZmVyZW5jZSB0byB0aGUgc2VydmxldCBzZXNzaW9uPworPC9wPgorCis8cD4KKyAgICBHb29kIHF1ZXN0aW9uLiBJZiB5b3Ugd2VyZSB0byBsb29rIGF0IGp1c3QgdGhlIE1haWxyZWFkZXJTdXBwb3J0IGNsYXNzLAorICAgIHlvdSB3b3VsZCBub3Qgc2VlIGEgc2luZ2xlIGxpbmUgb2YgY29kZSB0aGF0IHNldHMgdGhlIHNlc3Npb24gcHJvcGVydHkuCisgICAgQnV0LCB5ZXQsIHdoZW4gd2UgcnVuIHRoZSBjbGFzcywgdGhlIHNlc3Npb24gcHJvcGVydHkgaXMgbm90IG51bGwuCisgICAgSG1tbS4KKzwvcD4KKworPHA+CisgICAgVGhlIG1hZ2ljIHRoYXQgcHJvdmlkZXMgdGhlIFNlc3Npb24gcHJvcGVydHkgYSBydW50aW1lIHZhbHVlIGlzIGNhbGxlZCAiZGVwZW5kZW5jeSBpbmplY3Rpb24iLgorICAgIFRoZSBNYWlscmVhZGVyU3VwcG9ydCBjbGFzcyBpbXBsZW1lbnRzIGEgaW50ZXJmYWNlIGNhbGxlZCA8c3Ryb25nPlNlc3Npb25Bd2FyZTwvc3Ryb25nPi4KKyAgICBTZXNzaW9uQXdhcmUgaXMgYnVuZGxlZCB3aXRoIHRoZSBmcmFtZXdvcmssIGFuZCBpdCBkZWZpbmVzIGEgc2V0dGVyIGZvciB0aGUgU2Vzc2lvbiBwcm9wZXJ0eS4KKzwvcD4KKworPHA+CisgICAgPGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5zZXRTZXNzaW9uPC9zdHJvbmc+KE1hcCBzZXNzaW9uKTs8L2NvZGU+Cis8L3A+CisKKzxwPgorICAgIEFsc28gYnVuZGxlZCB3aXRoIHRoZSBmcmFtZXdvcmsgaXMgYW4gb2JqZWN0IGNhbGxlZCB0aGUgPHN0cm9uZz5TZXJ2bGV0Q29uZmlnSW50ZXJjZXB0b3I8L3N0cm9uZz4uCisgICAgSWYgdGhlIFNlcnZsZXRDb25maWdJbnRlcmNlcHRvciBzZWVzIHRoYXQgYW4gQWN0aW9uIGltcGxlbWVudHMgdGhlIFNlc3Npb25Bd2FyZSBpbnRlcmZhY2UsCisgICAgaXQgYXV0b21hdGljYWxseSBzZXQgdGhlIHNlc3Npb24gcHJvcGVydHkuCis8L3A+CisKKzxwcmU+PGNvZGU+aWYgKGFjdGlvbiBpbnN0YW5jZW9mIDxjb2RlPlNlc3Npb25Bd2FyZTwvY29kZT4pIHsKKyAgKChTZXNzaW9uQXdhcmUpIGFjdGlvbikuPGNvZGU+c2V0U2Vzc2lvbjwvY29kZT4oY29udGV4dC5nZXRTZXNzaW9uKCkpOworfTwvY29kZT48L3ByZT4KKworPHA+CisgICAgVGhlIGZyYW1ld29yayB1c2VzIHRoZXNlICJJbnRlcmNlcHRvciIgY2xhc3NlcyB0byBjcmVhdGUgYSA8c3Ryb25nPmZyb250IGNvbnRyb2xsZXI8L3N0cm9uZz4KKyAgICBmb3IgZWFjaCBhY3Rpb24gYW4gYXBwbGljYXRpb24gZGVmaW5lcy4KKyAgICBFYWNoIEludGVyY2VwdG9yIGNhbiBwZWVrIGF0IHRoZSByZXF1ZXN0IGJlZm9yZSBhbiBBY3Rpb24gY2xhc3MgaXMgaW52b2tlZCwKKyAgICBhbmQgdGhlbiBhZ2FpbiBhZnRlciB0aGUgQWN0aW9uIGNsYXNzIGlzIGludm9rZWQuCisgICAgKElmIHlvdSBoYXZlIHdvcmtlZCB3aXRoIFNlcnZsZXQKKyAgICA8YSBocmVmPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvcHJpbWVyLmh0bWwjZmlsdGVycyI+RmlsdGVyczwvYT4sCisgICAgeW91IHdpbGwgcmVjb2duaXplIHRoaXMgcGF0dGVybi4KKyAgICBCdXQsIHVubGlrZSBGaWx0ZXJzLCBJbnRlcmNlcHRvcnMgYXJlIG5vdCB0aWVkIHRvIEhUVFAuCisgICAgSW50ZXJjZXB0b3JzIGNhbiBiZSB0ZXN0ZWQgYW5kIGRldmVsb3BlZCBvdXRzaWRlIG9mIGEgd2ViIGFwcGxpY2F0aW9uLikKKzwvcD4KKworPHA+CisgICAgWW91IGNhbiB1c2UgdGhlIHNhbWUgc2V0IG9mIEludGVyY2VwdG9ycyBmb3IgYWxsIHlvdXIgYWN0aW9ucywKKyAgICBvciBkZWZpbmUgYSBzcGVjaWFsIHNldCBvZiBJbnRlcmNlcHRvcnMgZm9yIGFueSBnaXZlbiBhY3Rpb24sCisgICAgb3IgZGVmaW5lIGRpZmZlcmVudCBzZXRzIG9mIEludGVyY2VwdG9ycyB0byB1c2Ugd2l0aCBkaWZmZXJlbnQgdHlwZXMgb2YgYWN0aW9ucy4KKyAgICBUaGUgZnJhbWV3b3JrIGNvbWVzIHdpdGggYSBkZWZhdWx0IHNldCBvZiBJbnRlcmNlcHRvcnMsCisgICAgdGhhdCBpdCB3aWxsIHVzZSB3aGVuIGFub3RoZXIgc2V0IGlzIG5vdCBzcGVjaWZpZWQsCisgICAgYnV0IHlvdSBjYW4gZGVzaWduYXRlIHlvdXIgb3duIGRlZmF1bHQgSW50ZXJjZXB0b3Igc2V0IChvciAic3RhY2siKQorICAgIGluIHRoZSBzdHJ1dHMueG1sIGNvbmZpZ3VyYXRpb24gZmlsZS4KKzwvcD4KKworPHA+CisgICAgTWFueSBJbnRlcmNlcHRvcnMgcHJvdmlkZSBhIHV0aWxpdHkgb3IgaGVscGVyIGZ1bmN0aW9ucywgbGlrZSBzZXR0aW5nIHRoZSBzZXNzaW9uIHByb3BlcnR5LgorICAgIE90aGVycywgbGlrZSB0aGUgPHN0cm9uZz5WYWxpZGF0aW9uSW50ZXJjZXB0b3I8L3N0cm9uZz4sIGNhbiBjaGFuZ2UgdGhlIHdvcmtmbG93IG9mIGFuIGFjdGlvbi4KKyAgICBJbnRlcmNlcHRvcnMgYXJlIGtleSBmZWF0dXJlIG9mIHRoZSBmcmFtZXdvcmssCisgICAgYW5kIHdlIHdpbGwgc2VlIGEgZmV3IG1vcmUgb24gdGhlIHRvdXIuCis8L3A+CisKKzxwPgorICAgIElmIGEgdmFsaWQgVXNlciBpcyBub3QgZm91bmQsIG9yIHRoZSBwYXNzd29yZCBkb2Vzbid0IG1hdGNoLAorICAgIHRoZSAiZmluZFVzZXIiIG1ldGhvZCBpbnZva2VzIHRoZSA8c3Ryb25nPmFkZEZpZWxkRXJyb3I8L3N0cm9uZz4gbWV0aG9kIHRvIG5vdGUgdGhlIHByb2JsZW0uCisgICAgV2hlbiAiZmluZFVzZXIiIHJldHVybnMsIHRoZSBMb2dvbiBBY3Rpb24gY2hlY2tzIGZvciBlcnJvcnMsCisgICAgYW5kIHRoZW4gaXQgcmV0dXJucyBlaXRoZXIgSU5QVVQgb3IgU1VDQ0VTUy4KKzwvcD4KKworPHA+CisgICAgVGhlICJhZGRGaWVsZEVycm9yIiBtZXRob2QgaXMgcHJvdmlkZWQgYnkgdGhlIEFjdGlvblN1cHBvcnQgY2xhc3MsCisgICAgd2hpY2ggaXMgYnVuZGxlZCB3aXRoIHRoZSBmcmFtZXdvcmsuCisgICAgVGhlIGNvbnN0YW50cyBmb3IgSU5QVVQgYW5kIFNVQ0NFU1MgYXJlIGFsc28gcHJvdmlkZWQgYnkgQWN0aW9uU3VwcG9ydC4KKyAgICBXaGlsZSB0aGUgQWN0aW9uU3VwcG9ydCBjbGFzcyBwcm92aWRlcyBtYW55IHVzZWZ1bCB1dGlsaXRpZXMsCisgICAgeW91IGFyZSBub3QgcmVxdWlyZWQgdG8gdXNlIGl0IGFzIGEgYmFzZSBjbGFzcy4KKyAgICBBbnkgSmF2YSBjbGFzcyBjYW4gYmUgdXNlZCBhcyBhbiBBY3Rpb24sIGlmIHlvdSBsaWtlLgorPC9wPgorCis8cD4KKyAgICBJdCBpcyBhIGdvb2QgcHJhY3RpY2UgdG8gcHJvdmlkZSBhIGJhc2UgY2xhc3Mgd2l0aCB1dGlsaXRpZXMKKyAgICB0aGF0IGNhbiBiZSBzaGFyZWQgYnkgYW4gYXBwbGljYXRpb24ncyBBY3Rpb24gY2xhc3Nlcy4KKyAgICBUaGUgZnJhbWV3b3JrIGRvZXMgdGhpcyB3aXRoIEFjdGlvblN1cHBvcnQsCisgICAgYW5kIHRoZSBNYWlsUmVhZGVyIGFwcGxpY2F0aW9uIGRvZXMgdGhlIHNhbWUgd2l0aCB0aGUgTWFpbHJlYWRlclN1cHBvcnQgY2xhc3MuCis8L3A+CisKKzxoci8+Cis8aDU+QmVzdCBQcmFjdGljZTo8L2g1PgorPGJsb2NrcXVvdGU+CisgIDxwPjxmb250IGNsYXNzPSJoaW50Ij4iVXNlIGEgYmFzZSBjbGFzcyB0byBkZWZpbmUgY29tbW9uIGZ1bmN0aW9uYWxpdHkuIjwvZm9udD48L3A+Cis8L2Jsb2NrcXVvdGU+Cis8aHIvPgorCis8cD4KKyAgICBCdXQsIHdoYXQgaGFwcGVucyBpZiBMb2dvbiByZXR1cm5zIElOUFVUIGluc3RlYWQgb2YgU1VDQ0VTUy4KKyAgICBIb3cgZG9lcyB0aGUgZnJhbWV3b3JrIGtub3cgd2hhdCB0byBkbyBuZXh0PworPC9wPgorCis8cD4KKyAgICBUbyBhbnN3ZXIgdGhhdCBxdWVzdGlvbiwKKyAgICB3ZSBuZWVkIHRvIHR1cm4gYmFjayB0byB0aGUgInN0cnV0cy54bWwiIGZpbGUgYW5kIGxvb2sgYXQgaG93IExvZ29uIGlzIGNvbmZpZ3VyZWQuCis8L3A+CisKKworPGg0PjxhIG5hbWU9IkxvZ29uLnhtbCIgaWQ9IkxvZ29uLnhtbCI+TG9nb24gQ29uZmlndXJhdGlvbjwvYT48L2g0PgorCis8cD4KKyAgICBUaGUgTG9nb24gYWN0aW9uIGVsZW1lbnQgb3V0bGluZXMgaG93IHRoZSBMb2dvbiB3b3JrZmxvdyBvcGVyYXRlcywKKyAgICBpbmNsdWRpbmcgd2hhdCB0byBkbyB3aGVuIHRoZSBBY3Rpb24gcmV0dXJucyAiaW5wdXQiLAorICAgIG9yIHRoZSBkZWZhdWx0IHJlc3VsdCBuYW1lICJzdWNjZXNzIi4KKzwvcD4KKworPGhyLz4KKzxoNT5zdHJ1dHMueG1sIExvZ29uPC9oNT4KKzxwcmU+PGNvZGU+Jmx0O2FjdGlvbiBuYW1lPSI8c3Ryb25nPkxvZ29uPC9zdHJvbmc+IiBjbGFzcz0ibWFpbHJlYWRlcjIuTG9nb24iPgorICAmbHQ7cmVzdWx0IG5hbWU9IjxzdHJvbmc+aW5wdXQ8L3N0cm9uZz4iPi9wYWdlcy9Mb2dvbi5qc3AmbHQ7L3Jlc3VsdD4KKyAgJmx0O3Jlc3VsdCBuYW1lPSI8c3Ryb25nPmNhbmNlbDwvc3Ryb25nPiIgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5XZWxjb21lJmx0Oy9yZXN1bHQ+CisgICZsdDtyZXN1bHQgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5NYWluTWVudSZsdDsvcmVzdWx0PgorICAmbHQ7cmVzdWx0IG5hbWU9IjxzdHJvbmc+ZXhwaXJlZDwvc3Ryb25nPiIgdHlwZT0iY2hhaW4iPkNoYW5nZVBhc3N3b3JkJmx0Oy9yZXN1bHQ+CisgICZsdDs8c3Ryb25nPmV4Y2VwdGlvbi1tYXBwaW5nPC9zdHJvbmc+CisgICAgZXhjZXB0aW9uPSJvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbiIKKyAgcmVzdWx0PSI8c3Ryb25nPmV4cGlyZWQ8L3N0cm9uZz4iLz4KKyAgJmx0O2ludGVyY2VwdG9yLXJlZiBuYW1lPSI8c3Ryb25nPmd1ZXN0PC9zdHJvbmc+Ii8+CismbHQ7L2FjdGlvbj48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBJbiB0aGUgTG9nb24gYWN0aW9uIGVsZW1lbnQsIHRoZSBmaXJzdCByZXN1bHQgZWxlbWVudCBpcyBuYW1lZCAiaW5wdXQiLgorICAgIElmIHZhbGlkYXRpb24gb3IgYXV0aGVudGlmaWNhdGlvbiBmYWlsLAorICAgIHRoZSBBY3Rpb24gY2xhc3Mgd2lsbCByZXR1cm4gImlucHV0IiBhbmQgdGhlIGZyYW1ld29yayB3aWxsIHRyYW5zZmVyIGNvbnRyb2wgdG8gdGhlIAorICAgICJMb2dvbi5qc3AiIHBhZ2UuCis8L3A+CisKKzxwPgorICAgIFRoZSBzZWNvbmQgcmVzdWx0IGVsZW1lbnQgaXMgbmFtZWQgPHN0cm9uZz5jYW5jZWw8L3N0cm9uZz4uCisgICAgSWYgc29tZW9uZSBwcmVzc2VzIHRoZSBjYW5jZWwgYnV0dG9uIG9uIHRoZSBMb2dvbiBwYWdlLAorICAgIHRoZSBBY3Rpb24gY2xhc3Mgd2lsbCByZXR1cm4gImNhbmNlbCIsIHRoaXMgcmVzdWx0IHdpbGwgYmUgc2VsZWN0ZWQsCisgICAgYW5kIHRoZSBmcmFtZXdvcmsgd2lsbCBpc3N1ZSBhIHJlZGlyZWN0IHRvIHRoZSBXZWxjb21lIGFjdGlvbi4KKzwvcD4KKworPHA+CisgICAgVGhlIHRoaXJkIHJlc3VsdCBoYXMgbm8gbmFtZSwKKyAgICBzbyBpdCB3aWxsIGJlIGNhbGxlZCBpZiB0aGUgZGVmYXVsdCA8c3Ryb25nPnN1Y2Nlc3M8L3N0cm9uZz4gdG9rZW4gaXMgcmV0dXJuZWQuCisgICAgU28sIGlmIHRoZSBMb2dvbiBzdWNjZWVkcywKKyAgICBjb250cm9sIHdpbGwgdHJhbnNmZXIgdG8gdGhlIE1haW5NZW51IGFjdGlvbi4KKzwvcD4KKworPHA+CisgICAgVGhlIE1haWxSZWFkZXIgREFPIGV4cG9zZXMgYSAiRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIi4KKyAgICBJZiB0aGUgREFPIHRocm93cyB0aGlzIGV4Y2VwdGlvbiB3aGVuIHRoZSBVc2VyIGxvZ3MgaW4sCisgICAgdGhlIGZyYW1ld29yayB3aWxsIHByb2Nlc3MgdGhlIGV4Y2VwdGlvbi1tYXBwaW5nCisgICAgYW5kIHRyYW5zZmVyIGNvbnRyb2wgdG8gdGhlICJDaGFuZ2VQYXNzd29yZCIgYWN0aW9uLgorPC9wPgorCis8cD4KKyAgICBKdXN0IGluIGNhc2UgYW55IG90aGVyIEV4Y2VwdGlvbnMgYXJlIHRocm93biwKKyAgICB0aGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbiBhbHNvIGRlZmluZXMgYSBnbG9iYWwgaGFuZGxlci4KKzwvcD4KKworPGhyLz4KKzxoNT5zdHJ1dHMueG1sIGV4Y2VwdGlvbi1tYXBwaW5nPC9oNT4KKzxwcmU+PGNvZGU+Jmx0O2dsb2JhbC1leGNlcHRpb24tbWFwcGluZ3M+CisgICZsdDtleGNlcHRpb24tbWFwcGluZworICAgIHJlc3VsdD0iZXJyb3IiCisgICAgZXhjZXB0aW9uPSJqYXZhLmxhbmcuRXhjZXB0aW9uIi8+CismbHQ7L2dsb2JhbC1leGNlcHRpb24tbWFwcGluZ3M+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgSWYgYW4gdW5leHBlY3RlZCBFeGNlcHRpb24gaXMgdGhyb3duLAorICAgIHRoZSBleGNlcHRpb24tbWFwcGluZyB3aWxsIHRyYW5zZmVyIGNvbnRyb2wgdG8gdGhlIGFjdGlvbidzICJlcnJvciIgcmVzdWx0LAorICAgIG9yIHRvIGEgZ2xvYmFsICJlcnJvciIgcmVzdWx0LgorICAgIFRoZSBNYWlsUmVhZGVyIGRlZmluZXMgYSBnbG9iYWwgImVycm9yIiByZXN1bHQKKyAgICB3aGljaCB0cmFuc2ZlcnMgY29udHJvbCB0byBhbiAiRXJyb3IuanNwIiBwYWdlCisgICAgdGhhdCBjYW4gZGlzcGxheSB0aGUgZXJyb3IgbWVzc2FnZS4KKzwvcD4KKworPGhyLz4KKzxoNT5FcnJvci5qc3A8L2g1PgorPHByZT48Y29kZT4mbHQ7JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorJmx0OyVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MiICU+CisgICZsdDshRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorICAmbHQ7aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CisgICZsdDtoZWFkPgorICAgICZsdDt0aXRsZT5VbmV4cGVjdGVkIEVycm9yJmx0Oy90aXRsZT4KKyAgJmx0Oy9oZWFkPgorICAmbHQ7Ym9keT4KKyAgICAmbHQ7aDI+QW4gdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJlZCZsdDsvaDI+CisgICAgJmx0O3A+CisgICAgICBQbGVhc2UgcmVwb3J0IHRoaXMgZXJyb3IgdG8geW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvcgorICAgICAgb3IgYXBwcm9wcmlhdGUgdGVjaG5pY2FsIHN1cHBvcnQgcGVyc29ubmVsLgorICAgICAgVGhhbmsgeW91IGZvciB5b3VyIGNvb3BlcmF0aW9uLgorICAgICZsdDsvcD4KKyAgICAmbHQ7aHIgLz4KKyAgICAmbHQ7aDM+RXJyb3IgTWVzc2FnZSZsdDsvaDM+CisgICAgPHN0cm9uZz4mbHQ7czphY3Rpb25lcnJvciAvPjwvc3Ryb25nPgorICAgICZsdDtwPgorICAgICAgPHN0cm9uZz4mbHQ7czpwcm9wZXJ0eSB2YWx1ZT0iJXtleGNlcHRpb24ubWVzc2FnZX0iLz48L3N0cm9uZz4KKyAgICAmbHQ7L3A+CisgICAgJmx0O2hyIC8+CisgICAgJmx0O2gzPlRlY2huaWNhbCBEZXRhaWxzJmx0Oy9oMz4KKyAgICAmbHQ7cD4KKyAgICAgIDxzdHJvbmc+Jmx0O3M6cHJvcGVydHkgdmFsdWU9IiV7ZXhjZXB0aW9uU3RhY2t9Ii8+PC9zdHJvbmc+CisgICAgJmx0Oy9wPgorICAgICZsdDtqc3A6aW5jbHVkZSBwYWdlPSJGb290ZXIuanNwIi8+CisgICZsdDsvYm9keT4KKyZsdDsvaHRtbD48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBUaGUgRXJyb3IgcGFnZSB1c2VzIDxzdHJvbmc+cHJvcGVydHk8L3N0cm9uZz4gdGFncyB0byBleHBvc2UKKyAgICB0aGUgRXhjZXB0aW9uIG1lc3NhZ2UgYW5kIHRoZSBFeGNlcHRpb24gc3RhY2suCis8L3A+CisKKzxwPgorICAgIEZpbmFsbHksIHRoZSBMb2dvbiBhY3Rpb24gc3BlY2lmaWVzIGFuIDxzdHJvbmc+SW50ZXJjZXB0b3JTdGFjazwvc3Ryb25nPgorICAgIG5hbWVkIDxzdHJvbmc+ZGVmYXVsdFN0YWNrLjwvc3Ryb25nPgorICAgIElmIHlvdSd2ZSB3b3JrZWQgd2l0aCBTdHJ1dHMgMiBvciBXZWJXb3JrIDIgYmVmb3JlLCB0aGF0IG1pZ2h0IHNlZW0gc3RyYW5nZSwKKyAgICBzaW5jZSAiZGVmYXVsdFN0YWNrIiBpcyB0aGUgZmFjdG9yeSBkZWZhdWx0LgorPC9wPgorCis8cD4KKyAgICBJbiB0aGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbiwgbW9zdCBvZiB0aGUgYWN0aW9ucyBhcmUgb25seSBhdmFpbGFibGUKKyAgICB0byBhdXRoZW50aWNhdGVkIHVzZXJzLgorICAgIFRoZSBleGNlcHRpb25zIGFyZSB0aGUgV2VsY29tZSwgTG9nb24sIGFuZCBSZWdpc3RlciBhY3Rpb25zCisgICAgd2hpY2ggYXJlIGF2YWlsYWJsZSB0byBldmVyeW9uZS4KKyAgICBUbyBhdXRoZW50aWNhdGUgY2xpZW50cywKKyAgICB0aGUgTWFpbFJlYWRlciB1c2VzIGEgY3VzdG9tIEludGVyY2VwdG9yIGFuZCBhIGN1c3RvbSBJbnRlcmNlcHRvciBzdGFjay4KKzwvcD4KKworPGhyLz4KKzxoNT5tYWlscmVhZGVyMi5BdXRoZW50aWNhdGlvbkludGVyY2VwdG9yPC9oNT4KKzxwcmU+PGNvZGU+cGFja2FnZSBtYWlscmVhZGVyMjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5pbnRlcmNlcHRvci5JbnRlcmNlcHRvcjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25JbnZvY2F0aW9uOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKKworcHVibGljIGNsYXNzIDxzdHJvbmc+QXV0aGVudGljYXRpb25JbnRlcmNlcHRvcjwvc3Ryb25nPiBpbXBsZW1lbnRzIEludGVyY2VwdG9yIHsKKyAgcHVibGljIHZvaWQgZGVzdHJveSAoKSB7fQorICBwdWJsaWMgdm9pZCBpbml0KCkge30KKyAgcHVibGljIFN0cmluZyA8c3Ryb25nPmludGVyY2VwdDwvc3Ryb25nPihBY3Rpb25JbnZvY2F0aW9uIGFjdGlvbkludm9jYXRpb24pIHRocm93cyBFeGNlcHRpb24geworICAgIE1hcCBzZXNzaW9uID0gYWN0aW9uSW52b2NhdGlvbi5nZXRJbnZvY2F0aW9uQ29udGV4dCgpLmdldFNlc3Npb24oKTsKKyAgICBVc2VyIHVzZXIgPSAoVXNlcikgc2Vzc2lvbi5nZXQoQ29uc3RhbnRzLlVTRVJfS0VZKTsKKyAgICBib29sZWFuIGlzQXV0aGVudGljYXRlZCA9IChudWxsIT11c2VyKSAmJiAobnVsbCE9dXNlci5nZXREYXRhYmFzZSgpKTsKKyAgICBpZiAoPHN0cm9uZz5pc0F1dGhlbnRpY2F0ZWQ8L3N0cm9uZz4pIHsKKyAgICAgIHJldHVybiBhY3Rpb25JbnZvY2F0aW9uLmludm9rZSgpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgIHJldHVybiBBY3Rpb24uTE9HSU47CisgICAgfQorICB9Cit9PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+QXV0aGVudGljYXRpb25JbnRlcmNlcHRvcjwvc3Ryb25nPiBsb29rcyB0byBzZWUgaWYgYSBVc2VyIG9iamVjdAorICAgIGhhcyBiZWVuIHN0b3JlZCBpbiB0aGUgY2xpZW50J3Mgc2Vzc2lvbiBzdGF0ZS4KKyAgICBJZiBzbywgaXQgcmV0dXJucyBub3JtYWxseSwgYW5kIHRoZSBuZXh0IEludGVyY2VwdG9yIGluIHRoZSBzZXQgd291bGQgYmUgaW52b2tlZC4KKyAgICBJZiB0aGUgVXNlciBvYmplY3QgaXMgbWlzc2luZywgdGhlIEludGVyY2VwdG9ycyByZXR1cm5zICJsb2dpbiIuCisgICAgVGhlIGZyYW1ld29yayB3b3VsZCBtYXRjaCAibG9naW4iIHRvIHRoZSBnbG9iYWwgcmVzdWx0LAorICAgIGFuZCB0cmFuc2ZlciBjb250cm9sIHRvIHRoZSBMb2dvbiBhY3Rpb24uCis8L3A+CisKKzxwPgorICAgIFRoZSBNYWlsUmVhZGVyIGRlZmluZXMgZm91ciBjdXN0b20gSW50ZXJjZXB0b3Igc3RhY2tzOiAidXNlciIsICJ1c2VyLXN1Ym1pdCIsCisgICAgImd1ZXN0IiwgYW5kICJndWVzdC1zdWJtaXQiLgorPC9wPgorCis8aHIvPgorPGg1PnN0cnV0cy54bWwgaW50ZXJjZXB0b3JzPC9oNT4KKzxwcmU+PGNvZGU+Jmx0O2ludGVyY2VwdG9ycz4KKyAgJmx0O2ludGVyY2VwdG9yIG5hbWU9IjxzdHJvbmc+YXV0aGVudGljYXRpb248L3N0cm9uZz4iCisgICAgICAgICAgICAgICBjbGFzcz0ibWFpbHJlYWRlcjIuQXV0aGVudGljYXRpb25JbnRlcmNlcHRvciIvPgorICAmbHQ7aW50ZXJjZXB0b3Itc3RhY2sgbmFtZT0iPHN0cm9uZz51c2VyPC9zdHJvbmc+IiA+CisgICAgICAmbHQ7aW50ZXJjZXB0b3ItcmVmIG5hbWU9ImF1dGhlbnRpY2F0aW9uIiAvPgorICAgICAgJmx0O2ludGVyY2VwdG9yLXJlZiBuYW1lPSJkZWZhdWx0U3RhY2siLz4KKyAgJmx0Oy9pbnRlcmNlcHRvci1zdGFjaz4KKyAgJmx0O2ludGVyY2VwdG9yLXN0YWNrIG5hbWU9IjxzdHJvbmc+dXNlci1zdWJtaXQ8L3N0cm9uZz4iID4KKyAgICAgICZsdDtpbnRlcmNlcHRvci1yZWYgbmFtZT0idG9rZW4tc2Vzc2lvbiIgLz4KKyAgICAgICZsdDtpbnRlcmNlcHRvci1yZWYgbmFtZT0idXNlciIvPgorICAmbHQ7L2ludGVyY2VwdG9yLXN0YWNrPgorICAmbHQ7aW50ZXJjZXB0b3Itc3RhY2sgbmFtZT0iPHN0cm9uZz5ndWVzdDwvc3Ryb25nPiIgPgorICAgICAgJmx0O2ludGVyY2VwdG9yLXJlZiBuYW1lPSJkZWZhdWx0U3RhY2siLz4KKyAgJmx0Oy9pbnRlcmNlcHRvci1zdGFjaz4KKyAgJmx0O2ludGVyY2VwdG9yLXN0YWNrIG5hbWU9IjxzdHJvbmc+Z3Vlc3Qtc3VibWl0PC9zdHJvbmc+IiA+CisgICAgICAmbHQ7aW50ZXJjZXB0b3ItcmVmIG5hbWU9InRva2VuLXNlc3Npb24iIC8+CisgICAgICAmbHQ7aW50ZXJjZXB0b3ItcmVmIG5hbWU9Imd1ZXN0Ii8+CisgICZsdDsvaW50ZXJjZXB0b3Itc3RhY2s+CismbHQ7L2ludGVyY2VwdG9ycz4KKyZsdDs8c3Ryb25nPmRlZmF1bHQtaW50ZXJjZXB0b3ItcmVmPC9zdHJvbmc+IG5hbWU9InVzZXIiLz48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBUaGUgPHN0cm9uZz51c2VyPC9zdHJvbmc+IHN0YWNrcyByZXF1aXJlIHRoYXQgdGhlIGNsaWVudCBiZSBhdXRoZW50aWNhdGVkLiAKKyAgICBJbiBvdGhlciB3b3JkcywgdGhhdCBhIFVzZXIgb2JqZWN0IGlzIHByZXNlbnQgaW4gdGhlIHNlc3Npb24uCisgICAgVGhlIGFjdGlvbnMgdXNpbmcgYSA8c3Ryb25nPmd1ZXN0PC9zdHJvbmc+IHN0YWNrIGNhbiBiZSBhY2Nlc3NlZCBieSBhbnkgY2xpZW50LgorICAgIFRoZSA8c3Ryb25nPi1zdWJtaXQ8L3N0cm9uZz4gdmVyc2lvbnMgb2YgZWFjaCBjYW4gYmUgdXNlZCB3aXRoIGFjdGlvbnMKKyAgICB3aXRoIGZvcm1zLCB0byBndWFyZCBhZ2FpbnN0IGRvdWJsZSBzdWJtaXRzLgorPC9wPgorCis8aDU+RG91YmxlIFN1Ym1pdHM8L2g1PgorCis8cD4KKyAgICBBIGNvbW1vbiBwcm9ibGVtIHdpdGggZGVzaWduaW5nIHdlYiBhcHBsaWNhdGlvbnMgaXMgdGhhdCB1c2VycyBhcmUgaW1wYXRpZW50IAorICAgIGFuZCByZXNwb25zZSB0aW1lcyBjYW4gdmFyeS4KKyAgICBTb21ldGltZXMsIHBlb3BsZSB3aWxsIHByZXNzIGEgc3VibWl0IGJ1dHRvbiBhIHNlY29uZCB0aW1lLgorICAgIFdoZW4gdGhpcyBoYXBwZW5zLCB0aGUgYnJvd3NlciBzdWJtaXRzIHRoZSByZXF1ZXN0IGFnYWluLAorICAgIHNvIHRoYXQgd2Ugbm93IGhhdmUgdHdvIHJlcXVlc3RzIGZvciB0aGUgc2FtZSB0aGluZy4KKyAgICBJbiB0aGUgY2FzZSBvZiByZWdpc3RlcmluZyBhIHVzZXIsIGlmIHNvbWVvbmUgZG9lcyBwcmVzcyB0aGUgc3VibWl0IGJ1dHRvbgorICAgIGFnYWluLCBhbmQgdGhlaXIgdGltaW5nIGlzIGJhZCwKKyAgICBpdCBjb3VsZCByZXN1bHQgaW4gdGhlIHN5c3RlbSByZXBvcnRpbmcgdGhhdCB0aGUgdXNlcm5hbWUgaGFzIGFscmVhZHkgYmVlbgorICAgIHVzZWQuCisgICAgKFRoZSBmaXJzdCB0aW1lIHRoZSBidXR0b24gd2FzIHByZXNzZWQuKQorICAgIEluIHByYWN0aWNlLCB0aGlzIHdvdWxkIHByb2JhYmx5IG5ldmVyIGhhcHBlbiwgYnV0IGZvciBhIGxvbmdlciBydW5uaW5nCisgICAgcHJvY2VzcywgbGlrZSBjaGVja2luZyBvdXQgYSBzaG9wcGluZyBjYXJ0LAorICAgIGl0J3MgZWFzaWVyIGZvciBhIGRvdWJsZSBzdWJtaXQgdG8gb2NjdXIuCis8L3A+CisKKzxwPgorICAgIFRvIGZvcmVzdGFsbCBkb3VibGUgc3VibWl0cywgYW5kICJiYWNrIGJ1dHRvbiIgcmVzdWJtaXRzLAorICAgIHRoZSBmcmFtZXdvcmsgY2FuIGdlbmVyYXRlIGEgdG9rZW4gdGhhdCBpcyBlbWJlZGRlZCBpbiB0aGUgZm9ybQorICAgIGFuZCBhbHNvIGtlcHQgaW4gdGhlIHNlc3Npb24uCisgICAgSWYgdGhlIHZhbHVlIG9mIHRoZSB0b2tlbnMgZG8gbm90IGNvbXBhcmUsCisgICAgdGhlbiB3ZSBrbm93IHRoYXQgdGhlcmUgaGFzIGJlZW4gYSBwcm9ibGVtLAorICAgIGFuZCB0aGF0IGEgZm9ybSBoYXMgYmVlbiBzdWJtaXR0ZWQgdHdpY2Ugb3Igb3V0IG9mIHNlcXVlbmNlLgorPC9wPgorCis8cD4KKyAgICBUaGUgVG9rZW4gU2Vzc2lvbiBJbnRlcmNlcHRvciB3aWxsIGFsc28gYXR0ZW1wdCB0byBwcm92aWRlIGludGVsbGlnZW50CisgICAgZmFpbC1vdmVyIGluIHRoZSBldmVudCBvZiBtdWx0aXBsZSByZXF1ZXN0cyB1c2luZyB0aGUgc2FtZSBzZXNzaW9uLgorICAgIFRoYXQgaXMsIGl0IHdpbGwgYmxvY2sgc3Vic2VxdWVudCByZXF1ZXN0cyB1bnRpbCB0aGUgZmlyc3QgcmVxdWVzdCBpcyBjb21wbGV0ZSwKKyAgICBhbmQgdGhlbiBpbnN0ZWFkIG9mIHJldHVybmluZyB0aGUgImludmFsaWQudG9rZW4iIGNvZGUsCisgICAgaXQgd2lsbCBhdHRlbXB0IHRvIGRpc3BsYXkgdGhlIHNhbWUgcmVzcG9uc2UgdGhhdCB0aGUKKyAgICBvcmlnaW5hbCwgdmFsaWQgYWN0aW9uIGludm9jYXRpb24gd291bGQgaGF2ZSBkaXNwbGF5ZWQKKzwvcD4KKworPHA+CisgICAgQmVjYXVzZSB0aGUgZGVmYXVsdCBpbnRlcmNlcHRvciBzdGFjayB3aWxsIG5vdyBhdXRoZW50aWNhdGUgdGhlIGNsaWVudCwKKyAgICB3ZSBuZWVkIHRvIHNwZWNpZnkgdGhlIHN0YW5kYXJkICJkZWZhdWx0U3RhY2siIGZvciB0aGUgdGhyZWUgCisgICAgImd1ZXN0IGFjdGlvbnMiLCBXZWxjb21lLCBMb2dvbiwgYW5kIFJlZ2lzdGVyLiAKKyAgICBSZXF1aXJpbmcgYXV0aGVudGlmaWNhdGlvbiBieSBkZWZhdWx0IGlzIHRoZSBiZXR0ZXIgcHJhY3RpY2UsIHNpbmNlIGl0IAorICAgIG1lYW5zIHRoYXQgd2Ugd29uJ3QgZm9yZ2V0IHRvIGVuYWJsZSBpdCB3aGVuIGNyZWF0aW5nIG5ldyBhY3Rpb25zLiAKKyAgICBNZWFud2hpbGUsIHRob3NlIHBlc2t5IHVzZXJzIHdpbGwgZW5zdXJlIHRoYXQgd2UgZG9uJ3QgZm9yZ2V0IHRvIGRpc2FibGUgCisgICAgYXV0aGVudGlmaWNhdGlvbiBmb3IgImd1ZXN0IiBzZXJ2aWNlcy4KKzwvcD4KKworPGgzPjxhIG5hbWU9Ik1haW5NZW51IiBpZD0iTWFpbk1lbnUiPk1haW5NZW51PC9hPjwvaDM+CisKKzxwPgorICAgIE9uIGEgc3VjY2Vzc2Z1bCBsb2dvbiwgdGhlIE1haW4gTWVudSBwYWdlIGRpc3BsYXlzLgorICAgIElmIHlvdSBsb2dnZWQgaW4gdXNpbmcgdGhlIGRlbW8gYWNjb3VudCwKKyAgICB0aGUgcGFnZSB0aXRsZSBzaG91bGQgYmUgIk1haW4gTWVudSBPcHRpb25zIGZvciBKb2huIFEuIFVzZXIiLgorICAgIEJlbG93IHRoaXMgbGVnZW5kIHNob3VsZCBiZSB0d28gbGlua3M6Cis8L3A+CisKKzx1bD4KKyAgICA8bGk+CisgICAgICAgIEVkaXQgeW91ciB1c2VyIHJlZ2lzdHJhdGlvbiBwcm9maWxlCisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICAgIExvZyBvZmYgTWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uCisgICAgPC9saT4KKzwvdWw+CisKKzxwPgorICAgIExldCdzIHJldmlldyB0aGUgc291cmNlIGZvciB0aGUgIk1haW5NZW51IiBhY3Rpb24gbWFwcGluZywKKyAgICBhbmQgdGhlICJNYWluTWVudS5qc3AiLgorPC9wPgorCis8aHIvPgorPGg1PkFjdGlvbiBtYXBwaW5nIGVsZW1lbnQgZm9yIE1haW5NZW51PC9oNT4KKzxwcmU+PGNvZGU+Jmx0O2FjdGlvbiBuYW1lPSJNYWluTWVudSIgY2xhc3M9Im1haWxyZWFkZXIyLk1haWxyZWFkZXJTdXBwb3J0Ij4KKyAgICAmbHQ7cmVzdWx0Pi9wYWdlcy9NYWluTWVudS5qc3AmbHQ7L3Jlc3VsdD4KKyAgICAmbHQ7L2FjdGlvbj48L2NvZGU+PC9wcmU+CisKKzxoNT5NYWluTWVudS5qc3A8L2g1PgorPHByZT48Y29kZT4mbHQ7JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorJmx0OyVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MiICAlPgorJmx0OyFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorICAmbHQ7aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CisgICZsdDtoZWFkPgorICAgICZsdDt0aXRsZT4mbHQ7czp0ZXh0IG5hbWU9Im1haW5NZW51LnRpdGxlIi8+Jmx0Oy90aXRsZT4KKyAgICAgICZsdDtsaW5rIGhyZWY9IiZsdDtzOnVybCB2YWx1ZT0iL2Nzcy9tYWlscmVhZGVyLmNzcyIvPiIgcmVsPSJzdHlsZXNoZWV0IgorICAgICAgdHlwZT0idGV4dC9jc3MiLz4KKyAgJmx0Oy9oZWFkPgorCisgICZsdDtib2R5PgorICAmbHQ7aDM+Jmx0O3M6dGV4dCBuYW1lPSJtYWluTWVudS5oZWFkaW5nIi8+IDxzdHJvbmc+Jmx0O3M6cHJvcGVydHkKKyAgICB2YWx1ZT0idXNlci5mdWxsTmFtZSIvPjwvc3Ryb25nPiZsdDsvaDM+CisgICZsdDt1bD4KKyAgICAmbHQ7bGk+Jmx0O2EgaHJlZj0iJmx0O3M6dXJsIDxzdHJvbmc+YWN0aW9uPSJSZWdpc3RyYXRpb24haW5wdXQiPC9zdHJvbmc+IC8+Ij4KKyAgICAgICAgJmx0O3M6dGV4dCBuYW1lPSJtYWluTWVudS5yZWdpc3RyYXRpb24iLz4KKyAgICAgICZsdDsvYT4KKyAgICAmbHQ7L2xpPgorICAgICZsdDtsaT4mbHQ7YSBocmVmPSImbHQ7czp1cmwgPHN0cm9uZz5hY3Rpb249IkxvZ29mZiI8L3N0cm9uZz4gLz4iPgorICAgICAgJmx0O3M6dGV4dCBuYW1lPSJtYWluTWVudS5sb2dvZmYiLz4KKyAgICAgICZsdDsvYT4KKyAgICAmbHQ7L3VsPgorICAmbHQ7L2JvZHk+CismbHQ7L2h0bWw+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgVGhlIHNvdXJjZSBmb3IgIk1haW5NZW51LmpzcCIgYWxzbyBjb250YWlucyBhIG5ldyB0YWcsIDxzdHJvbmc+CisgICAgcHJvcGVydHk8L3N0cm9uZz4sIHdoaWNoIHdlIHVzZSB0byBjdXN0b21pemUgdGhlIHBhZ2Ugd2l0aCB0aGUKKyAgICAiZnVsbE5hbWUiIHByb3BlcnR5IG9mIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuCis8L3A+CisKKzxwPgorICAgIERpc3BsYXlpbmcgdGhlIHVzZXIncyBmdWxsIG5hbWUgaXMgdGhlIHJlYXNvbiB0aGUgTWFpbk1lbnUgYWN0aW9uCisgICAgcmVmZXJlbmNlcyB0aGUgTWFpbHJlYWRlclN1cHBvcnQgY2xhc3MuCisgICAgVGhlIE1haWxyZWFkZXJTdXBwb3J0IGNsYXNzIGhhcyBhIFVzZXIgcHJvcGVydHkgdGhhdCB0aGUgdGV4dCB0YWcKKyAgICBjYW4gYWNjZXNzLgorICAgIElmIHdlIGRpZCBub3QgdXRpbGl6ZSBNYWlscmVhZGVyU3VwcG9ydCwKKyAgICB0aGUgcHJvcGVydHkgdGFnIHdvdWxkIG5vdCBiZSBhYmxlIHRvIGZpbmQgdGhlIFVzZXIgb2JqZWN0IHRvIHByaW50CisgICAgdGhlIGZ1bGwgbmFtZS4KKzwvcD4KKworPHA+CisgICAgVGhlIGN1c3RvbWl6ZWQgTWFpbk1lbnUgcGFnZSBvZmZlcnMgdHdvIHN0YW5kYXJkIGxpbmtzLgorICAgIE9uZSBpcyB0byAiRWRpdCB5b3VyIHVzZXIgcmVnaXN0cmF0aW9uIHByb2ZpbGUiLgorICAgIFRoZSBvdGhlciBpcyB0byAiTG9nb2ZmIHRoZSBNYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24iLgorPC9wPgorCis8aDM+PGEgbmFtZT0iUmVnaXN0cmF0aW9uLmpzcCIgaWQ9IlJlZ2lzdHJhdGlvbi5qc3AiPlJlZ2lzdHJhdGlvbiBwYWdlPC9hPgorPC9oMz4KKworPHA+CisgICAgSWYgeW91IGZvbGxvdyB0aGUgIkVkaXQgeW91ciB1c2VyIHJlZ2lzdHJhdGlvbiBwcm9maWxlIiBsaW5rIGZyb20gdGhlIE1haW4KKyAgICBNZW51IHBhZ2UsCisgICAgd2Ugd2lsbCBmaW5hbGx5IHJlYWNoIHRoZSBoZWFydCBvZiB0aGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbjogdGhlCisgICAgUmVnaXN0cmF0aW9uLCBvciAiUHJvZmlsZSIsIHBhZ2UuCisgICAgVGhpcyBwYWdlIGRpc3BsYXlzIGV2ZXJ5dGhpbmcgTWFpbFJlYWRlciBrbm93cyBhYm91dCB5b3UKKyAgICAob3IgYXQgbGVhc3QgeW91ciBsb2dpbiksCisgICAgd2hpbGUgdXRpbGl6aW5nIHNldmVyYWwgaW50ZXJlc3RpbmcgdGVjaG5pcXVlcy4KKzwvcD4KKworPHA+CisgICAgVG8gZG8gZG91YmxlIGR1dHkgYXMgdGhlICJDcmVhdGUiIFJlZ2lzdHJhdGlvbiBwYWdlIGFuZCB0aGUgIkVkaXQiCisgICAgUmVnaXN0cmF0aW9uIHBhZ2UsCisgICAgdGhlICJSZWdpc3RyYXRpb24uanNwIiBtYWtlcyBleHRlbnNpdmUgdXNlIG9mIHRoZSB0ZXN0IHRhZ3MsCisgICAgdG8gbWFrZSBpdCBhcHBlYXJzIGFzIHRob3VnaCB0aGVyZSBhcmUgdHdvIGRpc3RpbmN0IHBhZ2VzLgorPC9wPgorCis8aHIgLz4KKzxoNT5SZWdpc3RyYXRpb24uanNwIC0gaGVhZCBlbGVtZW50PC9oNT4KKzxwcmU+PGNvZGU+Jmx0O2hlYWQ+CisgICZsdDtzOmlmIHRlc3Q9IjxzdHJvbmc+dGFzaz09J0NyZWF0ZSc8L3N0cm9uZz4iPgorICAgICZsdDt0aXRsZT4mbHQ7czp0ZXh0IG5hbWU9InJlZ2lzdHJhdGlvbi50aXRsZS5jcmVhdGUiLz4mbHQ7L3RpdGxlPgorICAmbHQ7L3M6aWY+CisgICZsdDtzOmlmIHRlc3Q9IjxzdHJvbmc+dGFzaz09J0VkaXQnPC9zdHJvbmc+Ij4KKyAgICAmbHQ7dGl0bGU+Jmx0O3M6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24udGl0bGUuZWRpdCIvPiZsdDsvdGl0bGU+CisgICZsdDsvczppZj4KKyAgJmx0O2xpbmsgaHJlZj0iJmx0O3M6dXJsIHZhbHVlPSIvY3NzL21haWxyZWFkZXIuY3NzIi8+IiByZWw9InN0eWxlc2hlZXQiCisgICAgdHlwZT0idGV4dC9jc3MiLz4KKyZsdDsvaGVhZD48L2NvZGU+PC9wcmU+Cis8aHIgLz4KKworPHA+CisgICAgRm9yIGV4YW1wbGUsIGlmIGNsaWVudCBpcyBlZGl0aW5nIHRoZSBmb3JtICh0YXNrID09ICdFZGl0JyksCisgICAgdGhlIHBhZ2UgaW5zZXJ0cyB0aGUgdXNlcm5hbWUgZnJvbSB0aGUgVXNlciBvYmplY3QuCisgICAgRm9yIGEgbmV3IFJlZ2lzdHJhdGlvbiAodGFzayA9PSAnQ3JlYXRlJyksCisgICAgdGhlIHBhZ2UgY3JlYXRlcyBhbiBlbXB0eSBkYXRhLWVudHJ5IGZpZWxkLgorPC9wPgorCis8aHIvPgorPGg1Pk5vdGU6PC9oNT4KKzxibG9ja3F1b3RlPgorICAgIDxwPjxmb250IGNsYXNzPSJoaW50Ij4KKyAgICAgICAgPHN0cm9uZz5QcmVzZW50aW9uIExvZ2ljPC9zdHJvbmc+IC0KKyAgICAgICAgVGhlICJ0ZXN0IiB0YWcgaXMgYSBjb252ZW5pZW50IHdheSB0byBleHByZXNzIHByZXNlbnRhdGlvbgorICAgICAgICBsb2dpYyB3aXRoaW4geW91ciBwYWdlcy4KKyAgICAgICAgQ3VzdG9taXplZCBwYWdlcyBoZWxwIHRvIHByZXZlbnQgdXNlciBlcnJvciwKKyAgICAgICAgYW5kIGR5bmFtaWMgY3VzdG9taXphdGlvbiByZWR1Y2VzIHRoZSBudW1iZXIgb2Ygc2VydmVyIHBhZ2VzIHlvdXIgCisgICAgICAgIGFwcGxpY2F0aW9uIG5lZWRzIHRvIG1haW50YWluLCBhbW9uZyBvdGhlciBiZW5lZml0cy4KKyAgICA8L2ZvbnQ+PC9wPgorPC9ibG9ja3F1b3RlPgorPGhyLz4KKworPHA+CisgICAgVGhlIHBhZ2UgYWxzbyB1c2VzIGxvZ2ljIHRhZ3MgdG8gZGlzcGxheSBhIGxpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgIGZvciB0aGUgZ2l2ZW4gdXNlci4KKyAgICBJZiB0aGUgUmVnaXN0cmF0aW9uRm9ybSBoYXMgdGFzayBzZXQgdG8gIkVkaXQiLAorICAgIHRoZSBsb3dlciBwYXJ0IG9mIHRoZSBwYWdlIHRoYXQgbGlzdHMgdGhlIHN1YnNjcmlwdGlvbnMgaXMgZXhwb3NlZC4KKzwvcD4KKworPGhyLz4KKzxoNT48L2g1PgorPHByZT48Y29kZT4mbHQ7czppZiB0ZXN0PTxzdHJvbmc+InRhc2sgPT0gJ0VkaXQnIjwvc3Ryb25nPj4KKyAgJmx0O2RpdiBhbGlnbj0iY2VudGVyIj4KKyAgICAmbHQ7aDM+Jmx0O3M6dGV4dCBuYW1lPSJoZWFkaW5nLnN1YnNjcmlwdGlvbnMiLz4mbHQ7L2gzPgorICAmbHQ7L2Rpdj4KKyAgICAmbHQ7IS0tIC4uLiAtLT4KKyAgJmx0Oy9zOmlmPgorJmx0O2pzcDppbmNsdWRlIHBhZ2U9IkZvb3Rlci5qc3AiLz4KKyZsdDsvYm9keT4mbHQ7L2h0bWw+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgT3RoZXJ3aXNlLCB0aGUgcGFnZSBjb250YWlucyBqdXN0IHRoZSB0b3AgcG9ydGlvbiAtLQorICAgIGEgZGF0YS1lbnRyeSBmb3JtIGZvciBtYW5hZ2luZyB0aGUgdXNlcidzIHJlZ2lzdHJhdGlvbi4KKzwvcD4KKworPGg0PjxhIG5hbWU9Iml0ZXJhdG9yIiBpZD0iaXRlcmF0b3IiPml0ZXJhdG9yPC9hPjwvaDQ+CisKKzxwPgorICAgIEJlc2lkZXMgImlmIiB0aGVyZSBhcmUgc2V2ZXJhbCBvdGhlciBjb250cm9sIHRhZ3MgdGhhdCB5b3UgY2FuIHVzZQorICAgIHRvIHNvcnQsIGZpbHRlciwgb3IgaXRlcmF0ZSBvdmVyIGRhdGEuCisgICAgVGhlIFJlZ2lzdHJhdGlvbiBwYWdlIGluY2x1ZGVzIGEgZ29vZCBleGFtcGxlIG9mIHVzaW5nIHRoZSA8c3Ryb25nPml0ZXJhdG9yPC9zdHJvbmc+CisgICAgdGFnIHRvIGRpc3BsYXkgdGhlIFVzZXIncyBTdWJzY3JpcHRpb25zLgorPC9wPgorCis8cD4KKyAgICBUaGUgc3Vic2NyaXB0aW9ucyBhcmUgc3RvcmVkIGluIGEgaGFzaHRhYmxlIG9iamVjdCwgd2hpY2ggaXMgaW4gdHVybgorICAgIHN0b3JlZCBpbiB0aGUgdXNlciBvYmplY3QuCisgICAgU28gdG8gZGlzcGxheSBlYWNoIHN1YnNjcmlwdGlvbiwgd2UgaGF2ZSB0byByZWFjaCBpbnRvIHRoZSB1c2VyIG9iamVjdCwKKyAgICBhbmQgbG9vcCB0aHJvdWdoIHRoZSBtZW1iZXJzIG9mIHRoZSBzdWJzY3JpcHRpb24gY29sbGVjdGlvbi4KKyAgICBVc2luZyB0aGUgaXRlcmF0b3IgdGFnLCB5b3UgY2FuIGNvZGUgaXQgdGhlIHdheSBpdCBzb3VuZHMuCisgPC9wPgorCis8aHIvPgorPGg1PlVzaW5nIGl0ZXJhdG9yIHRvIGxpc3QgdGhlIFN1YnNjcmlwdGlvbnM8L2g1PgorPHByZT48Y29kZT4mbHQ7czppdGVyYXRvciB2YWx1ZT0iPHN0cm9uZz51c2VyLnN1YnNjcmlwdGlvbnM8L3N0cm9uZz4iPgorICAmbHQ7dHI+CisgICAgJmx0O3RkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICZsdDtzOnByb3BlcnR5IHZhbHVlPSI8c3Ryb25nPmhvc3Q8L3N0cm9uZz4iLz4KKyAgICAmbHQ7L3RkPgorICAgICZsdDt0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgJmx0O3M6cHJvcGVydHkgdmFsdWU9IjxzdHJvbmc+dXNlcm5hbWU8L3N0cm9uZz4iLz4KKyAgICZsdDsvdGQ+CisgICZsdDt0ZCBhbGlnbj0iY2VudGVyIj4KKyAgICAgICZsdDtzOnByb3BlcnR5IHZhbHVlPSI8c3Ryb25nPnR5cGU8L3N0cm9uZz4iLz4KKyAgJmx0Oy90ZD4KKyAgJmx0O3RkIGFsaWduPSJjZW50ZXIiPgorICAgICAmbHQ7czpwcm9wZXJ0eSB2YWx1ZT0iPHN0cm9uZz5hdXRvQ29ubmVjdDwvc3Ryb25nPiIvPgorICAmbHQ7L3RkPgorICAmbHQ7dGQgYWxpZ249ImNlbnRlciI+CisgICAgJmx0O2EgaHJlZj0iJmx0O3M6dXJsIGFjdGlvbj0iPHN0cm9uZz5TdWJzY3JpcHRpb24hZGVsZXRlPC9zdHJvbmc+Ij4mbHQ7czpwYXJhbSBuYW1lPSI8c3Ryb25nPmhvc3Q8L3N0cm9uZz4iIHZhbHVlPSJob3N0Ii8+Jmx0Oy9zOnVybD4iPgorICAgICAgJmx0O3M6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24uZGVsZXRlU3Vic2NyaXB0aW9uIi8+CisgICAgJmx0Oy9hPiZuYnNwOworICAgICZsdDthIGhyZWY9IiZsdDtzOnVybCBhY3Rpb249IjxzdHJvbmc+U3Vic2NyaXB0aW9uIWVkaXQ8L3N0cm9uZz4iPiZsdDtzOnBhcmFtIG5hbWU9IjxzdHJvbmc+aG9zdDwvc3Ryb25nPiIgdmFsdWU9Imhvc3QiLz4mbHQ7L3M6dXJsPiI+CisgICAgICAmbHQ7czp0ZXh0IG5hbWU9InJlZ2lzdHJhdGlvbi5lZGl0U3Vic2NyaXB0aW9uIi8+CisgICAgICZsdDsvYT4KKyAgICZsdDsvdGQ+CisgJmx0Oy90cj4KKyZsdDsvczppdGVyYXRvcj48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBXaGVuIHRoZSBpdGVyYXRvciByZW5kZXJzLCBpdCBnZW5lcmF0ZXMgYSBsaXN0IG9mIFN1YnNjcmlwdGlvbnMgZm9yIHRoZSBjdXJyZW50IFVzZXIuCis8L3A+CisKKzxociAvPgorCisgICAgPGRpdiBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgPGgzPkN1cnJlbnQgU3Vic2NyaXB0aW9uczwvaDM+CisgICAgPC9kaXY+CisKKyAgICA8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMzAlIj4KKyAgICAgICAgICAgICAgICBIb3N0IE5hbWUKKyAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjI1JSI+CisgICAgICAgICAgICAgICAgVXNlciBOYW1lCisgICAgICAgICAgICA8L3RoPgorCisgICAgICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjEwJSI+CisgICAgICAgICAgICAgICAgU2VydmVyIFR5cGUKKyAgICAgICAgICAgIDwvdGg+CisgICAgICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjEwJSI+CisgICAgICAgICAgICAgICAgQXV0bworICAgICAgICAgICAgPC90aD4KKyAgICAgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTUlIj4KKyAgICAgICAgICAgICAgICBBY3Rpb24KKyAgICAgICAgICAgIDwvdGg+CisgICAgICAgIDwvdHI+CisgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICAgICAgbWFpbC5ob3RtYWlsLmNvbQorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICAgICAgdXNlcjEyMzQKKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgICAgICAgICAgICAgcG9wMworICAgICAgICAgICAgICAgIDwvdGQ+CisKKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICAgICAgICAgIGZhbHNlCisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9zdHJ1dHMyLW1haWxyZWFkZXIvU3Vic2NyaXB0aW9uIWRlbGV0ZS5kbz9ob3N0PW1haWwuaG90bWFpbC5jb20iPgorICAgICAgICAgICAgICAgICAgICAgICAgRGVsZXRlCisgICAgICAgICAgICAgICAgICAgIDwvYT4KKyAgICAgICAgICAgICAgICAgICAgJm5ic3A7CisgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9zdHJ1dHMyLW1haWxyZWFkZXIvU3Vic2NyaXB0aW9uIWVkaXQuZG8/aG9zdD1tYWlsLmhvdG1haWwuY29tIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQKKyAgICAgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgICAgIG1haWwueWFob28uY29tCisgICAgICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgICAgICBqcXVzZXIKKyAgICAgICAgICAgICAgICA8L3RkPgorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgICAgICAgICAgICAgaW1hcAorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgICAgICAgICBmYWxzZQorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvc3RydXRzMi1tYWlscmVhZGVyL1N1YnNjcmlwdGlvbiFkZWxldGUuZG8/aG9zdD1tYWlsLnlhaG9vLmNvbSI+CisgICAgICAgICAgICAgICAgICAgICAgICBEZWxldGUKKyAgICAgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgICAgICAgICAmbmJzcDsKKyAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL3N0cnV0czItbWFpbHJlYWRlci9TdWJzY3JpcHRpb24hZWRpdC5kbz9ob3N0PW1haWwueWFob28uY29tIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIEVkaXQKKyAgICAgICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgICAgIDwvdGQ+CisgICAgICAgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgICAgPGEgaHJlZj0iL3N0cnV0czItbWFpbHJlYWRlci9TdWJzY3JpcHRpb24haW5wdXQuZG8iPkFkZDwvYT4KKworPGhyIC8+CisKKyAgICA8cD4KKyAgICAgICAgTm93IGxvb2sgYmFjayBhdCB0aGUgY29kZSB1c2VkIHRvIGdlbmVyYXRlIHRoaXMgYmxvY2suCisgICAgPC9wPgorICAgIDxwPgorICAgICAgICBOb3RpY2UgYW55dGhpbmcgbmlmdHk/CisgICAgPC9wPgorICAgIDxwPgorICAgICAgICBIb3cgYWJvdXQgdGhhdCB0aGUgbWFya3VwIGJldHdlZW4gdGhlIGl0ZXJhdG9yIHRhZyBpcworICAgICAgICBhY3R1YWxseSA8ZW0+c2ltcGxlcjwvZW0+IHRoYW4gdGhlIG1hcmt1cCB0aGF0IHdlIHdvdWxkIHVzZSB0byByZW5kZXIgb25lIHJvdyBvZiB0aGUgdGFibGU/CisgICAgPC9wPgorICAgIDxwPgorICAgICAgICBJbnN0ZWFkIG9mIHVzaW5nIGEgcXVhbGlmaWVkIHJlZmVyZW5jZSAgbGlrZSAidmFsdWU9dXNlci5zdWJzY3JpcHRpb25bMF0uaG9zdCIsCisgICAgICAgIHdlIHVzZSB0aGUgc2ltcGxlc3QgcG9zc2libGUgcmVmZXJlbmNlOiAidmFsdWU9aG9zdCIuCisgICAgICAgIFdlIGRpZG4ndCBoYXZlIHRvIGRlZmluZSBhIGxvY2FsIHZhcmlhYmxlLCBhbmQgcmVmZXJlbmNlIHRoYXQgbG9jYWwgaW4gdGhlIGxvb3AgY29kZS4KKyAgICAgICAgVGhlIHJlZmVyZW5jZSB0byBlYWNoIGl0ZW0gaW4gdGhlIGxpc3QgaXMgYXV0b21hdGljYWxseSByZXNvbHZlZCwgbm8gZnVzcywgbm8gbXVzcy4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICAgIE5pY2UgdHJpY2shCisgICAgPC9wPgorCis8cD4KKyAgICBUaGUgc2VjcmV0IHRvIHRoaXMgbWFnaWMgaXMgdGhlIDxzdHJvbmc+dmFsdWUgc3RhY2s8L3N0cm9uZz4uCisgICAgTmV4dCB0byBJbnRlcmNlcHRvcnMsIHRoZSB2YWx1ZSBzdGFjayBpcyBwcm9iYWJseSB0aGUgY29vbGVzdCB0aGluZyB0aGVyZSBpcyBhYm91dCB0aGUgZnJhbWV3b3JrLgorICAgIFRvIGV4cGxhaW4gdGhlIHZhbHVlIHN0YWNrLCBsZXQncyBzdGVwIGJhY2sgYW5kIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZy4KKzwvcD4KKworPHA+CisgICAgTWVyZ2luZyBkeW5hbWljIGRhdGEgaW50byBzdGF0aWMgd2ViIHBhZ2VzIGlzIGEgcHJpbWFyeSByZWFzb24KKyAgICB3ZSBjcmVhdGUgd2ViIGFwcGxpY2F0aW9ucy4KKyAgICBUaGUgSmF2YSBBUEkgaGFzIGEgbWVjaGFuaXNtIHRoYXQgYWxsb3dzIHlvdSB0bworICAgIHBsYWNlIG9iamVjdHMgaW4gYSBzZXJ2bGV0IHNjb3BlIChwYWdlLCByZXF1ZXN0LCBzZXNzaW9uLCBvcgorICAgIGFwcGxpY2F0aW9uKSwgYW5kIHRoZW4gcmV0cmlldmUgdGhlbSB1c2luZyBhIEpTUCBzY3JpcGxldC4KKyAgICBJZiB0aGUgb2JqZWN0IGlzIHBsYWNlZCBkaXJlY3RseSBpbiBvbmUgb2YgdGhlIHNjb3BlcywKKyAgICBhIEpTUCB0YWcgb3Igc2NyaXB0bGV0IGNhbiBmaW5kIHRoYXQgb2JqZWN0IGJ5IHNlYXJjaGluZyBwYWdlIHNjb3BlIGFuZAorICAgIHRoZW4gcmVxdWVzdCBzY29wZSwgYW5kIHNlc3Npb24gc2NvcGUsIGFuZCBmaW5hbGx5IGFwcGxpY2F0aW9uIHNjb3BlLgorPC9wPgorCis8cD4KKyAgICBUaGUgdmFsdWUgc3RhY2sgd29ya3MgbXVjaCB0aGUgc2FtZSB3YXksIG9ubHkgYmV0dGVyLgorICAgIFdoZW4geW91IHB1c2ggYW4gb2JqZWN0IG9uIHRoZSB2YWx1ZSBzdGFjaywKKyAgICB0aGUgcHVibGljIHByb3BlcnRpZXMgb2YgdGhhdCBvYmplY3QgYmVjb21lIGZpcnN0LWNsYXNzIHByb3BlcnRpZXMgb2YgdGhlIHN0YWNrLgorICAgIFRoZSBvYmplY3QncyBwcm9wZXJ0aWVzIGJlY29tZSB0aGUgc3RhY2sncyBwcm9wZXJ0aWVzLgorICAgIElmIGFub3RoZXIgb2JqZWN0IG9uIHRoZSBzdGFjayBoYXMgcHJvcGVydGllcyBvZiB0aGUgc2FtZSBuYW1lLAorICAgIHRoZSBsYXN0IG9iamVjdCBwdXNoZWQgb250byB0aGUgc3RhY2sgd2lucy4gKExhc3QtSW4sIEZpcnN0LU91dC4pCis8L3A+CisKKzxwPgorICAgIFdoZW4gdGhlIGl0ZXJhdG9yIHRhZyBsb29wcyB0aHJvdWdoIGEgY29sbGVjdGlvbiwKKyAgICBpdCBwdXNoZXMgZWFjaCBpdGVtIGluIHRoZSBjb2xsZWN0aW9uIG9udG8gdGhlIHN0YWNrLgorICAgIFRoZSBpdGVtJ3MgcHJvcGVydGllcyBiZWNvbWUgdGhlIHN0YWNrJ3MgcHJvcGVydHkuCisgICAgSW4gdGhlIGNhc2Ugb2YgdGhlIFN1YnNjcmlwdGlvbnMsCisgICAgaWYgdGhlIFN1YnNjcmlwdGlvbiBoYXMgYSBwdWJsaWMgSG9zdCBwcm9wZXJ0eSwKKyAgICB0aGVuIGR1cmluZyB0aGF0IGl0ZXJhdGlvbiwKKyAgICB0aGUgc3RhY2sgY2FuIGFjY2VzcyB0aGUgc2FtZSBwcm9wZXJ0eS4KKzwvcD4KKworPHA+CisgICAgT2YgY291cnNlLCBhdCB0aGUgZW5kIG9mIGVhY2ggaXRlcmF0aW9uLCB0aGUgdGFnICJwb3BzIiB0aGUgaXRlbSBvZmYgdGhlIHN0YWNrLgorICAgIElmIHdlIHdlcmUgdG8gdHJ5IGFuZCBhY2Nlc3MgdGhlIEhvc3QgcHJvcGVydHkgbGF0ZXIgaW4gdGhlIHBhZ2UsCisgICAgaXQgd29uJ3QgYmUgdGhlcmUuCis8L3A+CisKKzxwPgorICAgIFdoZW4gYW4gQWN0aW9uIGlzIGludm9rZWQsIHRoZSBBY3Rpb24gY2xhc3MgaXMgcHVzaGVkIG9udG8gdGhlIHZhbHVlIHN0YWNrLgorICAgIFNpbmNlIHRoZSBBY3Rpb24gaXMgb24gdGhlIHZhbHVlIHN0YWNrLAorICAgIG91ciB0YWdzIGNhbiBhY2Nlc3MgYW55IHByb3BlcnR5IG9mIHRoZSBBY3Rpb24gYXMgaWYgaXQgd2VyZSBhbiBpbXBsaWNpdCBwcm9wZXJ0eSBvZiB0aGUgcGFnZS4KKyAgICBUaGUgdGFncyBkb24ndCBhY2Nlc3MgdGhlIEFjdGlvbiBkaXJlY3RseS4KKyAgICBJZiBhIHRleHRmaWVsZCB0YWcgaXMgdG9sZCB0byByZW5kZXIgdGhlICJVc2VybmFtZSIgcHJvcGVydHksCisgICAgdGhlIHRhZyBhc2tzIHRoZSB2YWx1ZSBzdGFjayBmb3IgdGhlIHZhbHVlIG9mICJVc2VybmFtZSIsCisgICAgYW5kIHRoZSB2YWx1ZSBzdGFjayByZXR1cm5zIHRoZSBmaXJzdCBwcm9wZXJ0eSBpdCBmaW5kcyBieSB0aGF0IG5hbWUuCis8L3A+CisKKzxwPgorICAgIFRoZSBWYWxpZGF0b3JzIGFsc28gdXNlIHRoZSBzdGFjay4KKyAgICBXaGVuIHZhbGlkYXRpb24gZmFpbHMgb24gYSBmaWVsZCwKKyAgICB0aGUgdmFsdWUgZm9yIHRoZSBmaWVsZCBpcyBwdXNoZWQgb250byB0aGUgdmFsdWUgc3RhY2suCisgICAgQXMgYSByZXN1bHQsIGlmIHRoZSBjbGllbnQgZW50ZXJzIHRleHQgaW50byBhbiBJbnRlZ2VyIGZpZWxkLAorICAgIHRoZSBmcmFtZXdvcmsgY2FuIHN0aWxsIHJlZGlzcGxheSB3aGF0ZXZlciB3YXMgZW50ZXJlZC4KKyAgICBBbiBpbnZhbGlkIGlucHV0IHZhbHVlIGlzIG5vdCBzdG9yZWQgaW4gdGhlIGZpZWxkIChldmVuIGlmIGl0IGNvdWxkIGJlKS4gCisgICAgVGhlIGludmFsaWQgaW5wdXQgaXMgcHVzaGVkIG9udG8gdGhlIHN0YWNrIGZvciB0aGUgc2NvcGUgb2YgdGhlIHJlcXVlc3QuCis8L3A+CisKKzxwPgorICAgIFRoZSBTdWJzY3JpcHRpb24gbGlzdCB1c2VzIGFub3RoZXIgbmV3IHRhZzogdGhlIDxzdHJvbmc+cGFyYW08L3N0cm9uZz4gdGFnLgorICAgIEFzIHRhZ3MgZ28sICJwYXJhbSIgdGFrZXMgdmVyeSBmZXcgcGFyYW1ldGVycyBvZiBpdHMgb3duOiBqdXN0ICJuYW1lIiBhbmQgInZhbHVlIiwgYW5kIG5laXRoZXIgaXMgcmVxdWlyZWQuCisgICAgQWx0aG91Z2ggc2ltcGxlLCAicGFyYW0iIGlzIG9uZSBvZiB0aGUgbW9zdCBwb3dlcmZ1bCB0YWdzIHRoZSBmcmFtZXdvcmsgcHJvdmlkZXMuCisgICAgTm90IHNvIG11Y2ggYmVjYXVzZSBvZiB3aGF0IGl0IGRvZXMsIGJ1dCBiZWNhdXNlIG9mIHdoYXQgInBhcmFtIiBhbGxvd3MgdGhlIG90aGVyIHRhZ3MgdG8gZG8uCis8L3A+CisKKzxwPgorICAgIEVzc2VudGlhbGx5LCB0aGUgInBhcmFtIiB0YWcgcHJvdmlkZXMgcGFyYW1ldGVycyB0byBvdGhlciB0YWdzLgorICAgIEEgdGFnIGxpa2UgInRleHQiIG1pZ2h0IGJlIHJldHJpZXZpbmcgYSBtZXNzYWdlIHRlbXBsYXRlIHdpdGggc2V2ZXJhbCByZXBsYWNlYWJsZSBwYXJhbWV0ZXJzLgorICAgIE5vIG1hdHRlciBob3cgbWFueSBwYXJhbWV0ZXJzIGFyZSBpbiB0aGUgdGVtcGxhdGUsIGFuZCBubyBtYXR0ZXIgd2hhdCB0aGV5IGFyZSBuYW1lZCwKKyAgICB5b3UgY2FuIHVzZSB0aGUgInBhcmFtIiB0YWcgdG8gcGFzcyBpbiB3aGF0ZXZlciB5b3UgbmVlZC4KKzwvcD4KKworPHByZT48Y29kZT5wYWdlci5sZWdlbmQgPSBEaXNwbGF5aW5nIHtjdXJyZW50fSBvZiB7Y291bnR9IGl0ZW1zIG1hdGNoaW5nIHtjcml0ZXJpYX0uCisuLi4KKyZsdDtzOnRleHQgbmFtZT0icGFnZXIubGVnZW5kIj4KKyAgICAmbHQ7czo8c3Ryb25nPnBhcmFtPC9zdHJvbmc+IG5hbWU9ImN1cnJlbnQiIHZhbHVlPSI0MiIgLz4KKyAgICAmbHQ7czo8c3Ryb25nPnBhcmFtPC9zdHJvbmc+IG5hbWU9ImNvdW50IiB2YWx1ZT0iMzE0IiAvPgorICAgICZsdDtzOjxzdHJvbmc+cGFyYW08L3N0cm9uZz4gbmFtZT0iY3JpdGVyaWEiIHZhbHVlPSJMaWZlLCB0aGUgVW5pdmVyc2UsIGFuZCBFdmVyeXRoaW5nIiAvPgorJmx0Oy9zOnRleHQ+PC9jb2RlPjwvcHJlPgorCis8cD4KKyAgICBJbiB0aGUgY2FzZSBvZiBhbiAidXJsIiB0YWcsCisgICAgd2UgY2FuIHVzZSAicGFyYW0iIHRvIGNyZWF0ZSB0aGUgcXVlcnkgc3RyaW5nLgorICAgIEEgc3RhdGVtZW50IGxpa2UgdGhpczoKKzwvcD4KKworPHByZT48Y29kZT4KKyAgJmx0O3M6dXJsIGFjdGlvbj0iU3Vic2NyaXB0aW9uIWVkaXQiPiZsdDtzOnBhcmFtIG5hbWU9IjxzdHJvbmc+aG9zdCIgdmFsdWU9Imhvc3Q8L3N0cm9uZz4iLz4mbHQ7L3M6dXJsPiI+Cis8L2NvZGU+PC9wcmU+CisKKzxwPgorICBjYW4gcmVuZGVyIGEgaHlwZXJsaW5rIGxpa2UgdGhpczoKKzwvcD4KKworPHByZT48Y29kZT4KKyAgJmx0O2EgaHJlZj0iL3N0cnV0czItbWFpbHJlYWRlci9TdWJzY3JpcHRpb24hZWRpdC5kbz88c3Ryb25nPmhvc3Q9bWFpbC55YWhvby5jb208L3N0cm9uZz4iPkVkaXQmbHQ7L2E+Cis8L2NvZGU+PC9wcmU+CisKKworPCEtLQorPHA+CisgICAgQXQgdGhlIGZvb3Qgb2YgdGhlIFJlZ2lzdGVyIHBhZ2UgaXMgYSBsaW5rIGZvciBhZGRpbmcgYSBzdWJzY3JpcHRpb24uCisgICAgTGV0J3Mgd2luZCB1cCB0aGUgdG91ciBieSBmb2xsb3dpbmcgdGhlIEFkZCBsaW5rIGFuZCB0aGVuIGxvZ2dpbmcgb2ZmLgorICAgIExpa2UgdGhlIGxpbmsgZm9yIGNyZWF0aW5nIGEgUmVnaXN0cmF0aW9uLCBBZGQgcG9pbnRzIHRvIGFuICJFZGl0IiBhY3Rpb24sCisgICAgbmFtZWx5ICJFZGl0U3Vic2NyaXB0aW9uIi4KKzwvcD4KKy0tPgorCis8cD4KKyAgICBJZiBhIGh5cGVybGluayBuZWVkcyBtb3JlIHBhcmFtZXRlcnMsCisgICAgeW91IGNhbiB1c2UgInBhcmFtIiB0byBhZGQgYXMgbWFueSBwYXJhbWV0ZXJzIGFzIG5lZWRlZC4KKzwvcD4KKworPGgzPgorICAgIDxhIG5hbWU9IlN1YnNjcmlwdGlvbiIgaWQ9IlN1YnNjcmlwdGlvbiI+U3Vic2NyaXB0aW9uPC9hPgorPC9oMz4KKworPHA+CisgICAgSWYgd2UgZm9sbG93IG9uZSBvZiB0aGUgIkVkaXQiIHN1YnNjcmlwdGlvbiBsaW5rcyBvbiB0aGUgUmVnaXN0cmF0aW9uIHBhZ2UsCisgICAgd2UgY29tZSB0byB0aGUgU3Vic2NyaXB0aW9ucyBwYWdlLAorICAgIHdoaWNoIGRpc3BsYXlzIHRoZSBkZXRhaWxzIG9mIG91ciBkZXNjcmlwdGlvbiBpbiBhIGRhdGEtZW50cnkgZm9ybS4KKyAgICBMZXQncyBoYXZlIGEgbG9vayBhIHRoZSBTdWJzY3JpcHRpb24gY29uZmlndXJhdGlvbiBpbiAic3RydXRzLnhtbCIKKyAgICBhbmQgZm9sbG93IHRoZSBib3VuY2luZyBiYWxsIGZyb20gcGFnZSB0byBhY3Rpb24gdG8gcGFnZS4KKzwvcD4KKworPGhyIC8+Cis8aDU+c3RydXRzLnhtbCBTdWJzY3JpcHRpb24gZWxlbWVudDwvaDU+Cis8cHJlPjxjb2RlPiZsdDthY3Rpb24gbmFtZT0iU3Vic2NyaXB0aW9uIiBjbGFzcz0ibWFpbHJlYWRlcjIuU3Vic2NyaXB0aW9uIj4KKyAgJmx0O3Jlc3VsdCBuYW1lPSJpbnB1dCI+L3BhZ2VzL1N1YnNjcmlwdGlvbi5qc3AmbHQ7L3Jlc3VsdD4KKyAgJmx0O3Jlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPlJlZ2lzdHJhdGlvbiFpbnB1dCZsdDsvcmVzdWx0PgorJmx0Oy9hY3Rpb24+PC9jb2RlPjwvcHJlPgorPGhyIC8+CisKKzxwPgorICAgIFRoZSBFZGl0IGxpbmsgc3BlY2lmaWVkIHRoZSBTdWJzY3JpcHRpb24gYWN0aW9uLAorICAgIGJ1dCBhbHNvIGluY2x1ZGVzIHRoZSBxdWFsaWZpZXIgPHN0cm9uZz4hZWRpdDwvc3Ryb25nPi4KKyAgICBUaGUgPHN0cm9uZz4hPC9zdHJvbmc+IGlkaW9tIHRlbGxzIHRoZSBmcmFtZXdvcmsgdG8gaW52b2tlIHRoZQorICAgICJlZGl0IiBtZXRob2Qgb2YgdGhlIFN1YnNjcmlwdGlvbiBhY3Rpb24sCisgICAgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCAiZXhlY3V0ZSIgbWV0aG9kCisgICAgVGhlICJhbHRlcm5hdGUiIGV4ZWN1dGUgbWV0aG9kcyBhcmUgY2FsbGVkIDxzdHJvbmc+YWxpYXM8L3N0cm9uZz4gbWV0aG9kcy4KKzwvcD4KKworPGhyIC8+Cis8aDU+U3Vic2NyaXB0aW9uIGVkaXQgYWxpYXM8L2g1PgorPHByZT48Y29kZT5wdWJsaWMgU3RyaW5nIDxzdHJvbmc+ZWRpdCgpPC9zdHJvbmc+IHsKKyAgPHN0cm9uZz5zZXRUYXNrKENvbnN0YW50cy5FRElUKTs8L3N0cm9uZz4+CisgIHJldHVybiBmaW5kKCk7Cit9CisKK3B1YmxpYyBTdHJpbmcgZmluZCgpIHsKKyAgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5TdWJzY3JpcHRpb24KKyAgICBzdWIgPSBmaW5kU3Vic2NyaXB0aW9uKCk7CisgICBpZiAoc3ViID09IG51bGwpIHsKKyAgICAgICByZXR1cm4gRVJST1I7CisgICB9CisgICA8c3Ryb25nPnNldFN1YnNjcmlwdGlvbihzdWIpOzwvc3Ryb25nPgorICAgcmV0dXJuIElOUFVUOworfTwvY29kZT48L3ByZT4KKzxociAvPgorCis8cD4KKyAgICBUaGUgImVkaXQiIGFsaWFzIGhhcyB0d28gcmVzcG9uc2liaWxpdGllcy4KKyAgICBGaXJzdCwgaXQgbXVzdCBzZXQgdGhlIFRhc2sgcHJvcGVydHkgdG8gIkVkaXQiLgorICAgIFRoZSBTdWJzY3JpcHRpb24gcGFnZSB3aWxsIHJlbmRlciBpdHNlbGYgZGlmZmVyZW50bHkKKyAgICBkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIHRoZSBUYXNrIHByb3BlcnR5LgorICAgIFNlY29uZCwgImVkaXQiIG11c3QgbG9jYXRlIHRoZSByZWxldmFudCBTdWJzY3JpcHRpb24KKyAgICBhbmQgc2V0IGl0IHRvIHRoZSBTdWJzY3JpcHRpb24gcHJvcGVydHkuCisgICAgSWYgYWxsIGdvZXMgd2VsbCwgImVkaXQiIHJldHVybnMgdGhlIElOUFVUIHRva2VuLAorICAgIHNvIHRoYXQgdGhlICJpbnB1dCIgcmVzdWx0IHdpbGwgYmUgaW52b2tlZC4KKzwvcD4KKworPHA+CisgICAgSW4gdGhlIG5vcm1hbCBjb3Vyc2UsIHRoZSBTdWJzY3JpcHRpb24gc2hvdWxkIGFsd2F5cyBiZSBmb3VuZCwKKyAgICBzaW5jZSB3ZSBzZWxlY3RlZCB0aGUgZW50cnkgZnJvbSBhIHN5c3RlbS1nZW5lcmF0ZWQgbGlzdC4KKyAgICBJZiB0aGUgU3Vic2NyaXB0aW9uIGlzIG5vdCBmb3VuZCwKKyAgICBpdCB3b3VsZCBiZSBiZWNhdXNlIHRoZSBkYXRhYmFzZSBkaXNhcHBlYXJlZAorICAgIG9yIHRoZSByZXF1ZXN0IGlzIGJlaW5nIHNwb29mZWQuCisgICAgSWYgdGhlIFN1YnNjcmlwdGlvbiBpcyBub3QgZm91bmQsCisgICAgZWRpdCByZXR1cm5zIHRoZSB0b2tlbiBmb3IgdGhlIGdsb2JhbCAiZXJyb3IiIHJlc3VsdCwKKyAgICBiZWNhdXNlIHRoaXMgY29uZGl0aW9uIGlzIHVuZXhwZWN0ZWQuCis8L3A+CisKKzxwPgorICAgIFRoZSBidXNpbmVzcyBsb2dpYyBmb3IgdGhlICJlZGl0IiBhbGlhcyBpcyBhIHNpbXBsZSB3cmFwcGVyCisgICAgYXJvdW5kIHRoZSBNYWlsUmVhZGVyIERBTyBjbGFzc2VzLgorPC9wPgorCis8aHIgLz4KKzxoNT5NYWlscmVhZGVyU3VwcG9ydCBmaW5kU3Vic2NyaXB0aW9uKCk8L2g1PgorPHByZT48Y29kZT5wdWJsaWMgU3Vic2NyaXB0aW9uIDxzdHJvbmc+ZmluZFN1YnNjcmlwdGlvbigpPC9zdHJvbmc+IHsKKyAgICByZXR1cm4gZmluZFN1YnNjcmlwdGlvbihnZXRIb3N0KCkpOworfQorCitwdWJsaWMgU3Vic2NyaXB0aW9uIGZpbmRTdWJzY3JpcHRpb24oU3RyaW5nIGhvc3QpIHsKKyAgICBTdWJzY3JpcHRpb24gc3Vic2NyaXB0aW9uOworICAgIHN1YnNjcmlwdGlvbiA9IDxzdHJvbmc+Z2V0VXNlcigpLmZpbmRTdWJzY3JpcHRpb24oaG9zdCk7PC9zdHJvbmc+CisgICAgcmV0dXJuIHN1YnNjcmlwdGlvbjsKK308L2NvZGU+PC9wcmU+Cis8aHIgLz4KKworPHA+CisgICAgVGhpcyBjb2RlIGlzIHZlcnkgc2ltcGxlCisgICAgYW5kIGRvZXNuJ3Qgc2VlbSB0byBwcm92aWRlIG11Y2ggaW4gdGhlIHdheSBvZiBlcnJvciBoYW5kbGluZy4KKyAgICBCdXQsIHRoYXQncyBPSy4KKyAgICBTaW5jZSB0aGUgcGFnZSBpcyBzdXBwb3NlIHRvIGJlIGVudGVyZWQgZnJvbSBhIGxpbmsgdGhhdCB3ZSBjcmVhdGVkLAorICAgIHdlIGRvIGV4cGVjdCBldmVyeXRoaW5nIHRvIGdvIHJpZ2h0IGhlcmUuCisgICAgQnV0LCBpZiBpdCBkb2Vzbid0LCB0aGUgZ2xvYmFsIGV4Y2VwdGlvbiBoYW5kbGVyIHdlIGRlZmluZWQgaW4gInN0cnV0cy54bWwiCisgICAgd2lsbCB0cmFwIHRoZSBleGNlcHRpb24gZm9yIHVzLgorPC9wPgorCis8cD4KKyAgICBMaWtld2lzZSwgdGhlIEF1dGhlbnRpZmljYXRpb25JbnRlcmNlcHRvciB3aWxsIGVuc3VyZSB0aGF0IG9ubHkgY2xpZW50cworICAgIHdpdGggYSB2YWxpZCBVc2VyIG9iamVjdCBjYW4gdHJ5IHRvIGVkaXQgYSBTdWJzY3JpcHRpb24uCisgICAgSWYgdGhlIHNlc3Npb24gZXhwaXJlZCwgb3Igc29tZW9uZSBib29rbWFya2VkIHRoZSBwYWdlLAorICAgIHRoZSBjbGllbnQgd2lsbCBiZSByZWRpcmVjdGVkIHRvIHRoZSBMb2dvbiBwYWdlIGF1dG9tYXRpY2FsbHkuCis8L3A+CisKKzxwPgorICAgIEFzIGEgZmluYWwgbGF5ZXIgb2YgZGVmZW5zZSwgd2UgYWxzbyBjb25maWd1cmVkIGEgdmFsaWRhdG9yIGZvciBTdWJzY3JpcHRpb24sCisgICAgdG8gZW5zdXJlIHRoYXQgd2UgYXJlIHBhc3NlZCBhIEhvc3QgcGFyYW1ldGVyLgorPC9wPgorCis8aHIgLz4KKzxoNT5TdWJzY3JpcHRpb24tdmFsaWRhdGlvbi54bWw8L2g1PgorPHByZT48Y29kZT4mbHQ7IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4KKyZsdDt2YWxpZGF0b3JzPgorICAmbHQ7ZmllbGQgbmFtZT0iPHN0cm9uZz5ob3N0PC9zdHJvbmc+Ij4KKyAgICAmbHQ7ZmllbGQtdmFsaWRhdG9yIHR5cGU9IjxzdHJvbmc+cmVxdWlyZWRzdHJpbmc8L3N0cm9uZz4iPgorICAgICAgICAmbHQ7bWVzc2FnZSBrZXk9ImVycm9yLmhvc3QucmVxdWlyZWQiLz4KKyAgICAmbHQ7L2ZpZWxkLXZhbGlkYXRvcj4KKyAgJmx0Oy9maWVsZD4KKyZsdDsvdmFsaWRhdG9ycz48L2NvZGU+PC9wcmU+Cis8aHIgLz4KKworPHA+CisgICAgQnkga2VlcGluZyByb3V0aW5lIHNldHkgcHJlY2F1dGlvbnMgb3V0IG9mIHRoZSBBY3Rpb24gY2xhc3MsCisgICAgdGhlIGFsbC1pbXBvcnRhbnQgQWN0aW9ucyBiZWNvbWVzIHNtYWxsZXIgYW5kIGVhc2llciB0byBtYWludGFpbi4KKzwvcD4KKworPHA+CisgICAgQWZ0ZXIgc2V0dGluZyB0aGUgcmVsZXZlbnQgU3Vic2NyaXB0aW9uIG9iamVjdCB0byB0aGUgU3Vic2NyaXB0aW9uIHByb3BlcnR5LAorICAgIHRoZSBmcmFtZXdvcmsgdHJhbnNmZXJzIGNvbnRyb2wgdG8gdGhlICh5b3UgZ3Vlc3NlZCBpdCkgU3Vic2NyaXB0aW9uIHBhZ2UuCis8L3A+CisKKzxociAvPgorPGg1PlN1YnNjcmlwdGlvbi5qc3A8L2g1PgorPHByZT48Y29kZT4mbHQ7JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorJmx0OyVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MiICU+CismbHQ7IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorJmx0O2h0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorICAmbHQ7aGVhZD4KKyAgICAmbHQ7czppZiB0ZXN0PSJ0YXNrPT0nQ3JlYXRlJyI+CisgICAgICAgICZsdDt0aXRsZT4mbHQ7czp0ZXh0IG5hbWU9InN1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGUiLz4mbHQ7L3RpdGxlPgorICAgICZsdDsvczppZj4KKyAgICAmbHQ7czppZiB0ZXN0PSJ0YXNrPT0nRWRpdCciPgorICAgICAgICAmbHQ7dGl0bGU+Jmx0O3M6dGV4dCBuYW1lPSJzdWJzY3JpcHRpb24udGl0bGUuZWRpdCIvPiZsdDsvdGl0bGU+CisgICAgJmx0Oy9zOmlmPgorICAgICZsdDtzOmlmIHRlc3Q9InRhc2s9PSdEZWxldGUnIj4KKyAgICAgICAgJmx0O3RpdGxlPiZsdDtzOnRleHQgbmFtZT0ic3Vic2NyaXB0aW9uLnRpdGxlLmRlbGV0ZSIvPiZsdDsvdGl0bGU+CisgICAgJmx0Oy9zOmlmPgorICAgICZsdDtsaW5rIGhyZWY9IiZsdDtzOnVybCB2YWx1ZT0iL2Nzcy9tYWlscmVhZGVyLmNzcyIvPiIgcmVsPSJzdHlsZXNoZWV0IgorICAgICAgICAgIHR5cGU9InRleHQvY3NzIi8+CisgICZsdDsvaGVhZD4KKyAgJmx0O2JvZHkgb25Mb2FkPSJzZWxmLmZvY3VzKCk7ZG9jdW1lbnQuU3Vic2NyaXB0aW9uLnVzZXJuYW1lLmZvY3VzKCkiPgorCisgICAgJmx0O3M6YWN0aW9uZXJyb3IvPgorICAgICZsdDtzOmZvcm0gbWV0aG9kPSJQT1NUIiA8c3Ryb25nPmFjdGlvbj0iU3Vic2NyaXB0aW9uU2F2ZSI8L3N0cm9uZz4gdmFsaWRhdGU9ImZhbHNlIj4KKyAgICAgIDxzdHJvbmc+Jmx0O3M6dG9rZW4gLz48L3N0cm9uZz4KKyAgICAgIDxzdHJvbmc+Jmx0O3M6aGlkZGVuIG5hbWU9InRhc2siLz48L3N0cm9uZz4KKyAgICAgIDxzdHJvbmc+Jmx0O3M6bGFiZWwgbGFiZWw9IiV7Z2V0VGV4dCgndXNlcm5hbWUnKX0iIG5hbWU9InVzZXIudXNlcm5hbWUiLz48L3N0cm9uZz4KKworICAgICAgJmx0O3M6aWYgdGVzdD0idGFzayA9PSAnQ3JlYXRlJyI+CisgICAgICAgICZsdDtzOnRleHRmaWVsZCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsSG9zdG5hbWUnKX0iIG5hbWU9Imhvc3QiLz4KKyAgICAgICZsdDsvczppZj4KKyAgICAgICZsdDtzOmVsc2U+CisgICAgICAgICZsdDtzOmxhYmVsIGxhYmVsPSIle2dldFRleHQoJ21haWxIb3N0bmFtZScpfSIgbmFtZT0iaG9zdCIvPgorICAgICAgICAmbHQ7czpoaWRkZW4gbmFtZT0iaG9zdCIvPgorICAgICAgJmx0Oy9zOmVsc2U+CisKKyAgICAgICZsdDtzOmlmIHRlc3Q9InRhc2sgPT0gJ0RlbGV0ZSciPgorICAgICAgICAmbHQ7czpsYWJlbCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsVXNlcm5hbWUnKX0iCisgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnVzZXJuYW1lIi8+CisgICAgICAgICZsdDtzOmxhYmVsIGxhYmVsPSIle2dldFRleHQoJ21haWxQYXNzd29yZCcpfSIKKyAgICAgICAgICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24ucGFzc3dvcmQiLz4KKyAgICAgICAgJmx0O3M6bGFiZWwgbGFiZWw9IiV7Z2V0VGV4dCgnbWFpbFNlcnZlclR5cGUnKX0iCisgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnR5cGUiLz4KKyAgICAgICAgJmx0O3M6bGFiZWwgbGFiZWw9IiV7Z2V0VGV4dCgnYXV0b0Nvbm5lY3QnKX0iCisgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLmF1dG9Db25uZWN0Ii8+CisgICAgICAgICZsdDtzOnN1Ym1pdCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uY29uZmlybScpfSIvPgorICAgICAgJmx0Oy9zOmlmPgorICAgICAgJmx0O3M6ZWxzZT4KKyAgICAgICAgJmx0O3M6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ21haWxVc2VybmFtZScpfSIKKyAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnVzZXJuYW1lIi8+CisgICAgICAgICZsdDtzOnRleHRmaWVsZCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsUGFzc3dvcmQnKX0iCisgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InN1YnNjcmlwdGlvbi5wYXNzd29yZCIvPgorICAgICAgICA8c3Ryb25nPiZsdDtzOnNlbGVjdCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsU2VydmVyVHlwZScpfSIKKyAgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnR5cGUiIGxpc3Q9InR5cGVzIi8+PC9zdHJvbmc+CisgICAgICAgIDxzdHJvbmc+Jmx0O3M6Y2hlY2tib3ggbGFiZWw9IiV7Z2V0VGV4dCgnYXV0b0Nvbm5lY3QnKX0iCisgICAgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLmF1dG9Db25uZWN0Ii8+PC9zdHJvbmc+CisgICAgICAgICZsdDtzOnN1Ym1pdCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uc2F2ZScpfSIvPgorICAgICAgICAmbHQ7czpyZXNldCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24ucmVzZXQnKX0iLz4KKyAgICAgICZsdDsvczplbHNlPgorCisgICAgICAmbHQ7czpzdWJtaXQgYWN0aW9uPSJSZWdpc3RyYXRpb24haW5wdXQiCisgICAgICAgICAgICAgICAgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLmNhbmNlbCcpfSIKKyAgICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4KKyAgJmx0Oy9zOmZvcm0+CisKKyAgJmx0O2pzcDppbmNsdWRlIHBhZ2U9IkZvb3Rlci5qc3AiLz4KKyAgJmx0Oy9ib2R5PgorJmx0Oy9odG1sPjwvY29kZT48L3ByZT4KKzxociAvPgorCis8cD4KKyAgICBBcyBiZWZvcmUsIHdlJ2xsIGRpc2N1c3MgdGhlIHRhZ3MgYW5kIGF0dHJpYnV0ZXMgdGhhdCBhcmUgbmV3IHRvIHRoaXMgcGFnZToKKyAgICAidG9rZW4iLCAiaGlkZGVuIiwgImxhYmVsIiwgInNlbGVjdCIsIGFuZCAiY2hlY2tib3giLgorPC9wPgorCis8cD4KKyAgICBXaGVuIHdlIGxvb2tlZCBhdCB0aGUgZm9ybSB0YWcgZm9yIHRoZSBMb2dvbiBwYWdlLAorICAgIGl0IGRpZCBub3Qgc3BlY2lmeSBhIHRhcmdldCBmb3IgdGhlIHN1Ym1pdC4KKyAgICBJbnN0ZWFkLCBpdCBqdXN0IHBvc3RlZCBiYWNrIHRvIHRoZSBMb2dvbiBhY3Rpb24uCisgICAgSW4gdGhpcyA8c3Ryb25nPmZvcm08L3N0cm9uZz4gdGFnLCB3ZSBhcmUgc3BlY2lmeWluZyBhIGRpZmZlcmVudCBhY3Rpb24sCisgICAgPHN0cm9uZz5TdWJzY3JpcHRpb25TYXZlPC9zdHJvbmc+CisgICAgdG8gYmUgdGhlIHRhcmdldCBvZiB0aGUgc3VibWl0LAorPC9wPgorCis8cD4KKyAgICBUaGUgbWFpbiByZWFzb24gd2UgdXNlIGFub3RoZXIgYWN0aW9uIGlzIHNvIHRoYXQgd2UgY2FuIHVzZSBhIGRpZmZlcmVudCBzZXQgb2YgdmFsaWRhdGlvbnMuCisgICAgV2hlbiB3ZSByZXRyaWV2ZSB0aGUgU3Vic2NyaXB0aW9uIGZvciBlZGl0aW5nLCBhbGwgd2UgbmVlZCBpcyB0aGUgSG9zdCBwcm9wZXJ0eS4KKyAgICBXaGVuIHdlIHNhdmUgdGhlIFN1YnNjcmlwdGlvbiwgd2Ugd2FudCB0byB2YWxpZGF0ZSBhZGRpdGlvbmFsIHByb3BlcnRpZXMuCisgICAgU2luY2UgdGhlIHZhbGlkYXRpb24gZmlsZXMgYXJlIGNvdXBsZWQgdG8gdGhlIGNsYXNzZXMsCisgICAgd2UgY3JlYXRlZCBhIG5ldyBBY3Rpb24gY2xhc3MgZm9yIHNhdmluZyBhIFN1YnNjcmlwdGlvbi4KKzwvcD4KKworPGhyIC8+Cis8aDU+U3Vic2NyaXB0aW9uLXZhbGlkYXRpb24ueG1sPC9oNT4KKzxwcmU+PGNvZGU+Jmx0OyFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iCisgICAgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4KKyZsdDt2YWxpZGF0b3JzPgorICAmbHQ7ZmllbGQgbmFtZT0iPHN0cm9uZz5ob3N0PC9zdHJvbmc+Ij4KKyAgICAmbHQ7ZmllbGQtdmFsaWRhdG9yIHR5cGU9IjxzdHJvbmc+cmVxdWlyZWRzdHJpbmc8L3N0cm9uZz4iPgorICAgICAgICAmbHQ7bWVzc2FnZSBrZXk9ImVycm9yLmhvc3QucmVxdWlyZWQiLz4KKyAgICAmbHQ7L2ZpZWxkLXZhbGlkYXRvcj4KKyAgJmx0Oy9maWVsZD4KKyZsdDsvdmFsaWRhdG9ycz48L2NvZGU+PC9wcmU+Cis8aHIgLz4KKworPHA+CisgICAgVGhlIHZhbGlkYXRvcnMgZm9sbG93IHRoZSBzYW1lIHR5cGUgb2YgaW5oZXJpdGFuY2UgcGF0aCBhcyB0aGUgY2xhc3Nlcy4KKyAgICBTdWJzY3JpcHRpb25TYXZlIGV4dGVuZHMgU3Vic2NyaXB0aW9uLAorICAgIHNvIHdoZW4gU3Vic2NyaXB0aW9uU2F2ZSBpcyB2YWxpZGF0ZWQsCisgICAgdGhlIEhvc3QgcHJvcGVydHkgc3BlY2lmaWVkIGJ5ICJTdWJzY3JpcHRpb24tdmFsaWRhdGlvbi54bWwiIHdpbGwgYWxzbyBiZSByZXF1aXJlZC4KKzwvcD4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+dG9rZW48L3N0cm9uZz4gdGFnIHdvcmtzIHdpdGggdGhlIFRva2VuIFNlc3Npb24gSW50ZXJjZXB0b3IgdG8gZm9pbCBkb3VibGUgc3VibWl0cy4KKyAgICBUaGUgdGFnIGdlbmVyYXRlcyBhIGtleSB0aGF0IGlzIGVtYmVkZGVkIGluIHRoZSBmb3JtIGFuZCBjYWNoZWQgaW4gdGhlIHNlc3Npb24uCisgICAgV2l0aG91dCB0aGlzIHRhZywgdGhlIEludGVyY2VwdG9yIGNhbid0IHdvcmsgaXQncyBtYWdpYy4KKzwvcD4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+aGlkZGVuPC9zdHJvbmc+IHRhZyBlbWJlZHMgdGhlIFRhc2sgcHJvcGVydHkgaW50byB0aGUgZm9ybS4KKyAgICBXaGVuIHRoZSBmb3JtIGlzIHN1Ym1pdHRlZCwKKyAgICB0aGUgU3Vic2NyaXB0aW9uU2F2ZSBhY3Rpb24gd2lsIHVzZSB0aGUgVGFzayBwcm9wZXJ0eSB0byBkZWNpZGUKKyAgICB3aGV0aGVyIHRvIGluc2VydCBvciB1cGRhdGUgdGhlIGZvcm0uCis8L3A+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPmxhYmVsPC9zdHJvbmc+IHJlbmRlcnMgYSAicmVhZCBvbmx5IiB2ZXJzaW9uIG9mIGEgcHJvcGVydHksCisgICAgc3VpdGFibGUgZm9yIHBsYWNlbWVudCBpbiB0aGUgZm9ybS4KKyAgICBJbiBFZGl0IG9yIERlbGV0ZSBtb2RlLCB3ZSB3YW50IHRoZSBIb3N0IHByb3BlcnR5IHRvIGJlIGltbXV0YWJsZSwKKyAgICBzaW5jZSBpdCBpcyB1c2VkIGFzIGEga2V5LiAoQXMgdW53aXNlIGFzIHRoYXQgbWlnaHQgc291bmQuKQorICAgIEluIERlbGV0ZSBtb2RlLCBhbGwgb2YgdGhlIHByb3BlcnRpZXMgYXJlIGltbXV0YWJsZSwKKyAgICBzaW5jZSB3ZSBhcmUgc2ltcGx5IGNvbmZpcm1pbmcgdGhlIGRlbGV0ZSBvcGVyYXRpb24uCis8L3A+CisKKzxwPgorICAgIFNhdmluZyB0aGUgYmVzdCBmb3IgbGFzdCwgdGhlIFN1YnNjcmlwdGlvbiB1dGlsaXplcyB0d28gbW9yZSBpbnRlcmVzdGluZworICAgIHRhZ3MsICJzZWxlY3QiIGFuZCAiY2hlY2tib3giLgorPC9wPgorCis8cD4KKyAgICBVbnN1cnByaXNpbmdseSwgdGhlIDxzdHJvbmc+c2VsZWN0PC9zdHJvbmc+IHRhZyByZW5kZXJzIGEgc2VsZWN0IGNvbnRyb2wsCisgICAgYnV0IHRoZSB0YWcgZG9lcyBzbyB3aXRob3V0IHJlcXVpcmluZyBhIGxvdCBvZiBtYXJrdXAgb3IgcmVkdGFwZS4KKzwvcD4KKworPHByZT48Y29kZT4mbHQ7czpzZWxlY3QgbGFiZWw9IiV7Z2V0VGV4dCgnbWFpbFNlcnZlclR5cGUnKX0iCisgIG5hbWU9InN1YnNjcmlwdGlvbi50eXBlIiA8c3Ryb25nPmxpc3Q9InR5cGVzIjwvc3Ryb25nPiAvPgorPC9jb2RlPjwvcHJlPgorCis8cD4KKyAgICBUaGUgaW50ZXJlc3RpbmcgYXR0cmlidXRlIG9mIHRoZSAic2VsZWN0IiB0YWcgaXMgImxpc3QiLAorICAgIHdoaWNoLCBpbiBvdXIgY2FzZSwgc3BlY2lmaWVzIGEgdmFsdWUgb2YgInR5cGVzIi4KKyAgICBJZiB3ZSB0YWtlIGFub3RoZXIgbG9vayBhdCB0aGUgU3Vic2NyaXB0aW9uIGFjdGlvbiwKKyAgICB3ZSBjYW4gc2VlIHRoYXQgaXQgaW1wbGVtZW50cyBhbiBpbnRlcmZhY2UgbmFtZWQgUHJlcGFyYWJsZQorICAgIGFuZCBwb3B1bGF0ZXMgYSBUeXBlcyBwcm9wZXJ0eSBpbiBhIG1ldGhvZCBuYW1lZCAicHJlcGFyZSIuCis8L3A+CisKKzxociAvPgorPGg1PlN1YnNjcmlwdGlvbi12YWxpZGF0aW9uLnhtbDwvaDU+Cis8cHJlPjxjb2RlPnB1YmxpYyBjbGFzcyA8c3Ryb25nPlN1YnNjcmlwdGlvbjwvc3Ryb25nPiBleHRlbmRzIE1haWxyZWFkZXJTdXBwb3J0CisgIDxzdHJvbmc+aW1wbGVtZW50cyBQcmVwYXJhYmxlPC9zdHJvbmc+IHsKKworICBwcml2YXRlIE1hcCB0eXBlcyA9IG51bGw7CisgIHB1YmxpYyBNYXAgPHN0cm9uZz5nZXRUeXBlcygpPC9zdHJvbmc+IHsKKyAgICByZXR1cm4gdHlwZXM7CisgICB9CisKKyAgIHB1YmxpYyB2b2lkIDxzdHJvbmc+cHJlcGFyZSgpPC9zdHJvbmc+IHsKKyAgICAgTWFwIG0gPSBuZXcgTGlua2VkSGFzaE1hcCgpOworICAgICAgIG0ucHV0KCJpbWFwIiwgIklNQVAgUHJvdG9jb2wiKTsKKyAgICAgICBtLnB1dCgicG9wMyIsICJQT1AzIFByb3RvY29sIik7CisgICAgICAgdHlwZXMgPSBtOworICAgICAgIHNldEhvc3QoZ2V0U3Vic2NyaXB0aW9uSG9zdCgpKTsKKyAgICB9CisKKyAgICAvLyAuLi4gPC9jb2RlPjwvcHJlPgorPGhyIC8+CisKKzxwPgorICAgIFRoZSBkZWZhdWx0IEludGVyY2VwdG9yIHN0YWNrIGluY2x1ZGVzIHRoZSA8c3Ryb25nPlByZXBhcmVJbnRlcmNlcHRvcjwvc3Ryb25nPiwKKyAgICB3aGljaCBvYnNlcnZlcyB0aGUgUHJlcGFyYWJsZSBpbnRlcmZhY2UuCis8L3A+CisKKzxociAvPgorPGg1PlByZXBhcmVJbnRlcmNlcHRvcjwvaDU+Cis8cHJlPjxjb2RlPnB1YmxpYyBjbGFzcyA8c3Ryb25nPlByZXBhcmVJbnRlcmNlcHRvcjwvc3Ryb25nPiBleHRlbmRzIEFyb3VuZEludGVyY2VwdG9yIHsKKworICBwcm90ZWN0ZWQgdm9pZCBhZnRlcihBY3Rpb25JbnZvY2F0aW9uIGRpc3BhdGNoZXIsIFN0cmluZyByZXN1bHQpIHRocm93cyBFeGNlcHRpb24geworICB9CisKKyAgcHJvdGVjdGVkIHZvaWQgYmVmb3JlKEFjdGlvbkludm9jYXRpb24gaW52b2NhdGlvbikgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgT2JqZWN0IGFjdGlvbiA9IGludm9jYXRpb24uZ2V0QWN0aW9uKCk7CisgICAgIDxzdHJvbmc+aWYgKGFjdGlvbiBpbnN0YW5jZW9mIFByZXBhcmFibGUpIHsKKyAgICAgICAgKChQcmVwYXJhYmxlKSBhY3Rpb24pLnByZXBhcmUoKTs8L3N0cm9uZz4KKyAgICB9CisgIH0KK308L2NvZGU+PC9wcmU+CisKKzxwPgorICAgIFRoZSBQcmVwYXJlSW50ZXJjZXB0b3IgZW5zdXJlcyB0aGF0IHRoZSAicHJlcGFyZSIgbWV0aG9kIHdpbGwgYWx3YXlzIGJlIGNhbGxlZAorICAgIGJlZm9yZSAiZXhlY3V0ZSIgb3IgYW4gYWxpYXMgbWV0aG9kIGlzIGludm9rZWQuCisgICAgV2UgdXNlICJwcmVwYXJlIiB0byBzZXR1cCB0aGUgbGlzdCBvZiBpdGVtcyBmb3IgdGhlIHNlbGVjdCBsaXN0IHRvIGRpc3BsYXkuCisgICAgV2UgYWxzbyB0cmFuc2ZlciB0aGUgSG9zdCBwcm9wZXJ0eSBmcm9tIG91ciBTdWJzY3JpcHRpb24gb2JqZWN0CisgICAgdG8gYSBsb2NhbCBwcm9wZXJ0eSwgd2hlcmUgaXQgaXMgZWFzaWVyIHRvIG1hbmFnZS4KKzwvcD4KKworCis8aDQ+CisgICAgPGEgbmFtZT0iU3Vic2NyaXB0aW9uQWN0aW9uLmphdmEiIGlkPSJTdWJzY3JpcHRpb25BY3Rpb24uamF2YSI+U3Vic2NyaXB0aW9uQWN0aW9uLmphdmE8L2E+Cis8L2g0PgorCis8cD4KKyAgICBMaWtlIG1hbnkgYXBwbGljYXRpb25zLCB0aGUgTWFpbFJlYWRlciB1c2VzIG1haW5seSBTdHJpbmcgcHJvcGVydGllcy4KKyAgICBPbmUgZXhjZXB0aW9uIGlzIHRoZSBBdXRvQ29ubmVjdCBwcm9wZXJ0eSBvZiB0aGUgU3Vic2NyaXB0aW9uIG9iamVjdC4KKyAgICBPbiB0aGUgSFRNTCBmb3JtLCB0aGUgQXV0b0Nvbm5lY3QgcHJvcGVydHkgaXMgcmVwcmVzZW50ZWQgYnkgYSBjaGVja2JveCwKKyAgICBhbmQgY2hlY2tib3hlcyBuZWVkIHRvIGJlIGhhbmRsZWQgZGlmZmVyZW50bHkgdGhhdCBvdGhlciBjb250cm9scy4KKzwvcD4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+Y2hlY2tib3g8L3N0cm9uZz4gc3RhcnRzIG91dCBhcyBhIHNpbXBsZSBlbm91Z2ggY29udHJvbC4KKzwvcD4KKworPHByZT48Y29kZT4gICZsdDtzOmNoZWNrYm94IGxhYmVsPSIle2dldFRleHQoJ2F1dG9Db25uZWN0Jyl9IgorICBuYW1lPSJzdWJzY3JpcHRpb24uYXV0b0Nvbm5lY3QiLz48L2NvZGU+PC9wcmU+CisKKzxwPgorICAgIFRoZSBTdWJzY3JpcHRpb24gb2JqZWN0IGhhcyBhIGJvb2xlYW4gQXV0b0Nvbm5lY3QgcHJvcGVydHksCisgICAgYW5kIHRoZSBjaGVja2JveCBzaW1wbHkgaGFzIHRvIHJlcHJlc2VudCBpdHMgc3RhdGUuCisgICAgVGhlIHByb2JsZW0gaXMsIGlmIHlvdSBjbGVhciBhIGNoZWNrYm94LCB0aGUgYnJvd3NlciBjbGllbnQgd2lsbCBub3Qgc3VibWl0IDxlbT5hbnl0aGluZzwvZW0+LgorICAgIE5hZGEuIFppcC4KKyAgICBJdCBpcyBhcyBpZiB0aGUgY2hlY2tib3ggY29udHJvbCBuZXZlciBleGlzdGVkLgorICAgIFRoZSBIVFRQIHByb3RvY29sIGhhcyBubyB3YXkgdG8gYWZmaXJtICJmYWxzZSIuIAorICAgIElmIHRoZSBjb250cm9sIGlzIG1pc3NpbmcsIHdlIG5lZWQgdG8gZmlndXJlIG91dCBpdCdzIGJlZW4gdW5jbGlja2VkLgorPC9wPgorCis8aHIvPgorPGg1PlRpcDo8L2g1PgorPGJsb2NrcXVvdGU+CisgICAgPHAgY2xhc3M9ImhpbnQiPgorICAgICAgICA8c3Ryb25nPkNoZWNrYm94ZXM8L3N0cm9uZz4gLQorICAgICAgICBUaGUgSFRNTCBjaGVja2JveCBpcyBhIHRyaWNreSBjb250cm9sLgorICAgICAgICBUaGUgcHJvYmxlbSBpcyB0aGF0LCBhY2NvcmRpbmcgdG8gdGhlIFczQyBzcGVjaWZpY2F0aW9uLCBhIHZhbHVlIGlzCisgICAgICAgIG9ubHkgZ3VhcmFudGVlZCB0byBiZSBzZW50CisgICAgICAgIGlmIHRoZSBjb250cm9sIGlzIGNoZWNrZWQuCisgICAgICAgIElmIHRoZSBjb250cm9sIGlzIG5vdCBjaGVja2VkLCB0aGVuIHRoZSBjb250cm9sIG1heSBiZSBvbWl0dGVkIGZyb20KKyAgICAgICAgdGhlIHJlcXVlc3QsIGFzIGlmIGl0IHdhcyBvbiB0aGUgcGFnZS4KKyAgICAgICAgVGhpcyBjYW4gY2F1c2UgYSBwcm9ibGVtIHdpdGggc2Vzc2lvbi1zY29wZSBjaGVja2JveGVzLgorICAgICAgICBPbmNlIHlvdSBzZXQgdGhlIGNoZWNrYm94IHRvIHRydWUsIHRoZSBjb250cm9sIGNhbid0IHNldCBpdCB0byBmYWxzZQorICAgICAgICBhZ2FpbiwKKyAgICAgICAgYmVjYXVzZSBpZiB5b3UgdW5jaGVjayB0aGUgYm94LCBub3RoaW5nIGlzIHNlbnQsIGFuZCBzbyB0aGUgY29udHJvbAorICAgICAgICBzdGF5cyBjaGVja2VkLgorICAgIDwvcD4KKzwvYmxvY2txdW90ZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSBzaW1wbGVzdCBzb2x1dGlvbiBpcyB0byBlbXBsb3kgb3VyIG9sZCBmcmllbmQgUHJlcGFyYWJsZSBhZ2Fpbi4KKyAgICBJbiB0aGUgInByZXBhcmUiIG1ldGhvZCBmb3IgU3Vic2NyaXB0aW9uU2F2ZSwKKyAgICB3ZSBjYW4gc2V0IHRoZSBwcm9wZXJ0eSByZXByZXNlbnRlZCBieSB0aGUgY2hlY2tib3ggdG8gZmFsc2UuCisgICAgSWYgdGhlIGNvbnRyb2wgaXMgbm90IHN1Ym1pdHRlZCwgdGhlbiB0aGUgcHJvcGVydHkgcmVtYWlucyBmYWxzZS4KKyAgICBJZiB0aGUgY29udHJvbCBpcyBzdWJtaXR0ZWQsIHRoZW4gdGhlIHByb3BlcnR5IGlzIHNldCB0byB0cnVlLgorPC9wPgorCis8aHIgLz4KKzxoNT5TdWJzY3JpcHRpb25TYXZlPC9oNT4KKzxwcmU+PGNvZGU+cHVibGljIGZpbmFsIGNsYXNzIFN1YnNjcmlwdGlvblNhdmUgZXh0ZW5kcyBTdWJzY3JpcHRpb24geworCisgIHB1YmxpYyB2b2lkIHByZXBhcmUoKSB7CisgICAgc3VwZXIucHJlcGFyZSgpOworICAgIC8vIGNoZWNrYm94IHdvcmthcm91bmQKKyAgICA8c3Ryb25nPmdldFN1YnNjcmlwdGlvbigpLnNldEF1dG9Db25uZWN0KGZhbHNlKTs8L3N0cm9uZz4KKyAgfQorCisgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24geworICAgIHJldHVybiBzYXZlKCk7CisgIH0KK308L2NvZGU+PC9wcmU+Cis8aHIgLz4KKworCis8cD4KKyAgICBJZiB3ZSBwcmVzcyB0aGUgU0FWRSBidXR0b24sCisgICAgdGhlIGZvcm0gd2lsbCBiZSBzdWJtaXR0ZWQgdG8gdGhlIFN1YnNjcmlwdGlvblNhdmUgYWN0aW9uLgorICAgIElmIHRoZSB2YWxpZGF0aW9uIHN1Y2NlZWRzLCBhcyB3ZSd2ZSBzZWVuLAorICAgIFN1YnNjcmlwdGlvblNhdmUgd2lsbCBpbnZva2UgdGhlIFN1YnNjcmlwdGlvbi5zYXZlIG1ldGhvZC4KKzwvcD4KKworPGhyIC8+Cis8aDU+U3Vic2NyaXB0aW9uIHNhdmUgbWV0aG9kPC9oNT4KKzxwcmU+PGNvZGU+cHVibGljIFN0cmluZyA8c3Ryb25nPnNhdmU8L3N0cm9uZz4oKSB0aHJvd3MgRXhjZXB0aW9uIHsKKworICBpZiAoQ29uc3RhbnRzLkRFTEVURS5lcXVhbHMoZ2V0VGFzaygpKSkgeworICAgPHN0cm9uZz5yZW1vdmVTdWJzY3JpcHRpb248L3N0cm9uZz4oKTsKKyAgfQorCisgIGlmIChDb25zdGFudHMuQ1JFQVRFLmVxdWFscyhnZXRUYXNrKCkpKSB7CisgICAgPHN0cm9uZz5jb3B5U3Vic2NyaXB0aW9uKDwvc3Ryb25nPmdldEhvc3QoKSk7CisgIH0KKworICBzYXZlVXNlcigpOworICByZXR1cm4gU1VDQ0VTUzsKK308L2NvZGU+PC9wcmU+Cis8aHIgLz4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+c2F2ZTwvc3Ryb25nPiBtZXRob2QgdXNlcyB0aGUgVGFzayBwcm9wZXJ0eSB0byBoYW5kbGUKKyAgICB0aGUgc3BlY2lhbCBjYXNlcyBvZiBkZWxldGluZyBhbmQgY3JlYXRpbmcsCisgICAgYW5kIHRoZW4gdXBkYXRlcyB0aGUgc3RhdGUgb2YgdGhlIFVzZXIgb2JqZWN0LgorPC9wPgorCis8cD4KKyAgICBUaGUgPHN0cm9uZz5yZW1vdmVTdWJzY3JpcHRpb248L3N0cm9uZz4gbWV0aG9kIGNhbGxzIHRoZSBEQU8gZmFjYWRlLAorICAgIGFuZCB0aGVuIHVwZGF0ZXMgdGhlIGFwcGxpY2F0aW9uIHN0YXRlLgorPC9wPgorCis8aHIgLz4KKzxoNT5yZW1vdmVTdWJzY3JpcHRpb248L2g1PgorPHByZT48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnJlbW92ZVN1YnNjcmlwdGlvbjwvc3Ryb25nPigpIHRocm93cyBFeGNlcHRpb24geworICBnZXRVc2VyKCkucmVtb3ZlU3Vic2NyaXB0aW9uKGdldFN1YnNjcmlwdGlvbigpKTsKKyAgZ2V0U2Vzc2lvbigpLnJlbW92ZShDb25zdGFudHMuU1VCU0NSSVBUSU9OX0tFWSk7Cit9PC9jb2RlPjwvcHJlPgorPGhyIC8+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPmNvcHlTdWJzY3JpcHRpb248L3N0cm9uZz4gbWV0aG9kIGlzIGEgYml0IG1vcmUgaW50ZXJlc3RpbmcuCisgICAgVGhlIE1haWxSZWFkZXIgREFPIGxheWVyIEFQSSBpbmNsdWRlcyBzb21lIGltbXV0YWJsZSBmaWVsZHMKKyAgICB0aGF0IGNhbid0IGJlIHNldCBvbmNlIHRoZSBvYmplY3QgaXMgY3JlYXRlZC4KKyAgICBCZWNhdXNlIGtleSBmaWVsZHMgYXJlIGltbXV0YWJsZSwKKyAgICB3ZSBjYW4ndCBqdXN0IGNyZWF0ZSBhIFN1YnNjcmlwdGlvbiwgbGV0IHRoZSBmcmFtZXdvcmsgcG9wdWxhdGUgYWxsIHRoZSBmaWVsZHMsCisgICAgYW5kIHRoZW4gc2F2ZSBpdCB3aGVuIHdlIGFyZSBkb25lIC0tIGJlY2F1c2Ugc29tZSBmaWVsZHMgY2FuJ3QgYmUgcG9wdWxhdGVkLAorICAgIGV4Y2VwdCBhdCBjb25zdHJ1Y3Rpb24uCis8L3A+CisKKzxwPgorICAgIE9uZSB3b3JrYXJvdW5kIHdvdWxkIGJlIHRvIGRlY2xhcmUgcHJvcGVydGllcyBvbiB0aGUgQWN0aW9uCisgICAgZm9yIGFsbCB0aGUgcHJvcGVydGllcyB3ZSBuZWVkIHRvIHBhc3MgdG8gdGhlIFN1YnNjcmlwdGlvbiBvciBVc2VyIG9iamVjdHMuCisgICAgV2hlbiB3ZSBhcmUgcmVhZHkgdG8gY3JlYXRlIHRoZSBvYmplY3QsCisgICAgd2UgY291bGQgcGFzcyB0aGUgbmV3IG9iamVjdCB2YWx1ZXMgZnJvbSB0aGUgQWN0aW9uIHByb3BlcnRpZXMuCis8L3A+CisKKzxwPgorICAgIEFub3RoZXIgd29ya2Fyb3VuZCBpcyB0byBkZWNsYXJlIG9ubHkgdGhlIGltbXV0YWJsZSBwcm9wZXJ0aWVzIG9uIHRoZSBBY3Rpb24sCisgICAgYW5kIHRoZW4gdXNlIHdoYXQgd2UgY2FuIGZyb20gdGhlIGRvbWFpbiBvYmplY3QuCis8L3A+CisKKzxwPgorICAgIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1haWxSZWFkZXIgdXRpbGl6ZXMgdGhlIHNlY29uZCBhbHRlcm5hdGl2ZS4KKyAgICBXZSBkZWZpbmUgVXNlciBhbmQgU3Vic2NyaXB0aW9uIG9iamVjdHMgb24gb3VyIGJhc2UgQWN0aW9uLAorICAgIGFuZCBhZGQgb3RoZXIgcHJvcGVydGllcyBvbmx5IGFzIG5lZWRlZC4KKzwvcD4KKworPHA+CisgICAgVG8gYWRkIGEgbmV3IFN1YnNjcmlwdGlvbiBvciBVc2VyLAorICAgIHdlIGNyZWF0ZSBhIGJsYW5rIG9iamVjdCB0byBjYXB0dXJlIHdoYXRldmVyIGZpZWxkcyB3ZSBjYW4uCisgICAgV2hlbiB0aGlzICJpbnB1dCIgb2JqZWN0IHJldHVybnMsIHdlIGNyZWF0ZSBhIG5ldyBvYmplY3QsCisgICAgc2V0dGluZyB0aGUgaW1tdXRhYmxlIGZpZWxkcyB0byBhcHByb3ByaWF0ZSB2YWx1ZXMsCisgICAgYW5kIGNvcHkgb3ZlciB0aGUgcmVzdCBvZiB0aGUgcHJvcGVydGllcy4KKzwvcD4KKworPGhyIC8+Cis8aDU+Y29weVN1YnNjcmlwdGlvbjwvaDU+Cis8cHJlPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+Y29weVN1YnNjcmlwdGlvbjwvc3Ryb25nPihTdHJpbmcgaG9zdCkgeworICBTdWJzY3JpcHRpb24gaW5wdXQgPSBnZXRTdWJzY3JpcHRpb24oKTsKKyAgU3Vic2NyaXB0aW9uIHN1YiA9IGNyZWF0ZVN1YnNjcmlwdGlvbihob3N0KTsKKyAgaWYgKG51bGwgIT0gc3ViKSB7CisgICAgPHN0cm9uZz5CZWFuVXRpbHMuc2V0VmFsdWVzPC9zdHJvbmc+KHN1YiwgaW5wdXQsIG51bGwpOworICAgIHNldFN1YnNjcmlwdGlvbihzdWIpOworICAgIHNldEhvc3Qoc3ViLmdldEhvc3QoKSk7CisgIH0KK308L2NvZGU+PC9wcmU+CisKKzxwPgorICAgIE9mIGNvdXJzZSwgdGhpcyBpcyBub3QgYSBwcmVmZXJyZWQgc29sdXRpb24sCisgICAgYnV0IG1lcmVseSBhIHdheSB0byB3b3JrIGFyb3VuZCBhbiBpc3N1ZSBpbiB0aGUgTWFpbFJlYWRlciBEQU8gQVBJCisgICAgdGhhdCB3b3VsZCBub3QgYmUgZWFzeSBmb3IgdXMgY2hhbmdlLgorPC9wPgorCis8aDM+U3VtbWFyeTwvaDM+Cis8cD4KKyAgICBBdCB0aGlzIHBvaW50LCB3ZSd2ZSBib290ZWQgdGhlIGFwcGxpY2F0aW9uLCBsb2dnZWQgb24sCisgICAgcmV2aWV3ZWQgYSBSZWdpc3RyYXRpb24gcmVjb3JkLCBhbmQgZWRpdGVkIGEgU3Vic2NyaXB0aW9uLgorICAgIE9mIGNvdXJzZSwgdGhlcmUncyBtb3JlLCBidXQgZnJvbSBoZXJlIG9uLCBpdCBpcyBtb3N0bHkgbW9yZSBvZiB0aGUgc2FtZS4KKyAgICBUaGUgZnVsbCBzb3VyY2UgY29kZSBmb3IgTWFpbFJlYWRlciBpcworICAgIDxhIGhyZWY9Imh0dHA6Ly9zdm4uYXBhY2hlLm9yZy92aWV3Y3ZzLmNnaS9zdHJ1dHMvc2FuZGJveC90cnVuay9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci8iPmF2YWlsYWJsZSBvbmxpbmU8L2E+CisgICAgYW5kIGluIHRoZSBkaXN0cmlidXRpb24uCis8L3A+CisKKzxwPgorICAgIEVuam95IQorPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1iYW5nL3NyYy9tYWluL3dlYmFwcC9zdHJ1dHMtcG93ZXIuZ2lmIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi93ZWJhcHAvc3RydXRzLXBvd2VyLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjRlOWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItYmFuZy9zcmMvbWFpbi93ZWJhcHAvc3RydXRzLXBvd2VyLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvUkVBRE1FLnR4dCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9SRUFETUUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzMmQyOGMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvUkVBRE1FLnR4dApAQCAtMCwwICsxLDE4IEBACitSRUFETUUudHh0IC0gbWFpbHJlYWRlci1pYmF0aXMNCisNCitUaGUgTWFpbFJlYWRlciBkZW1vbnN0cmF0ZXMgYSBsb2NhbGl6ZWQgYXBwbGljYXRpb24gd2l0aCBhIG1hc3Rlci9jaGlsZCANCitDUlVEIHdvcmtmbG93LiANCisNCitUaGlzIHJlbmRpdGlvbiBhbHNvIGRlbW9uc3RyYXRlcyB1c2luZyBpQkFUSVMgU1FMIE1hcHMgYW5kIGEgc3RyZWFtbGluZWQgDQorZGF0YSBhY2Nlc3MgbGF5ZXIgZm9yIGRhdGFiYXNlIGFjY2Vzcy4gDQorDQorU2VlIHRoZSBTYW5kYm94IGZvciBvdGhlciBNYWlsUmVhZGVyIGV4YW1wbGVzIHVzaW5nIG90aGVyIGFyY2hpdGVjdHVyZXMuIA0KKw0KKyogaHR0cDovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9zdHJ1dHMvc2FuZGJveC90cnVuay9zdHJ1dHMyL2FwcHMvDQorDQorRm9yIG1vcmUgYWJvdXQgdGhlIE1haWxSZWFkZXIgYXBwbGljYXRvbiBnZW5uZXJhbHksIHZpc2l0IFN0cnV0cyBVbml2ZXJzaXR5Lg0KKw0KKyogaHR0cDovL3d3dy5TdHJ1dHNVbml2ZXJzaXR5Lm9yZy8NCisNCisNCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3BvbS54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvcG9tLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjIzZWU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3BvbS54bWwKQEAgLTAsMCArMSw2MCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9tYXZlbi12NF8wXzAueHNkIj4KKyAgICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisgICAgPHBhcmVudD4KKyAgICAgIDxncm91cElkPm9yZy5hcGFjaGUuc3RydXRzPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+c3RydXRzMi1hcHBzPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+Mi4wLjAtU05BUFNIT1Q8L3ZlcnNpb24+CisgICAgPC9wYXJlbnQ+CisgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5zdHJ1dHM8L2dyb3VwSWQ+CisgICAgPGFydGlmYWN0SWQ+c3RydXRzMi1tYWlscmVhZGVyPC9hcnRpZmFjdElkPgorICAgIDxwYWNrYWdpbmc+d2FyPC9wYWNrYWdpbmc+CisgICAgPG5hbWU+TWFpbFJlYWRlciBFeGFtcGxlIEFwcGxpY2F0aW9uPC9uYW1lPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgCisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICA8Z3JvdXBJZD5qYXZheC5zZXJ2bGV0PC9ncm91cElkPgorICAgICAgICAgICA8YXJ0aWZhY3RJZD5zZXJ2bGV0LWFwaTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgPHZlcnNpb24+Mi40PC92ZXJzaW9uPgorICAgICAgICAgICA8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisKKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgIDxncm91cElkPmhzcWxkYjwvZ3JvdXBJZD4KKyAgICAgICAgICAgPGFydGlmYWN0SWQ+aHNxbGRiPC9hcnRpZmFjdElkPgorICAgICAgICAgICA8dmVyc2lvbj4xLjguMC40PC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICA8Z3JvdXBJZD5jb20uaWJhdGlzPC9ncm91cElkPgorICAgICAgICAgICA8YXJ0aWZhY3RJZD5pYmF0aXMyLXNxbG1hcDwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgPHZlcnNpb24+Mi4xLjcuNTk3PC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisKKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgIDxncm91cElkPiR7cG9tLmdyb3VwSWR9PC9ncm91cElkPgorICAgICAgICAgICA8YXJ0aWZhY3RJZD5zdHJ1dHMtbWFpbHJlYWRlci1kYW88L2FydGlmYWN0SWQ+CisgICAgICAgICAgIDx2ZXJzaW9uPjEuMy41PC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgCisgICAgPGJ1aWxkPgorICAgICAgICA8cGx1Z2lucz4KKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLm1vcnRiYXkuamV0dHk8L2dyb3VwSWQ+CisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tamV0dHk2LXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgPHNjYW5JbnRlcnZhbFNlY29uZHM+MTA8L3NjYW5JbnRlcnZhbFNlY29uZHM+CisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICAgICAgICAgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5nZXJvbmltby5zcGVjczwvZ3JvdXBJZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPmdlcm9uaW1vLWoyZWVfMS40X3NwZWM8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgICAgICAgICAgICAgICAgICA8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgorICAgICAgICAgICAgICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgICAgICAgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgPC9wbHVnaW5zPgorICAgIDwvYnVpbGQ+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9BcHBsaWNhdGlvbkxpc3RlbmVyLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9BcHBsaWNhdGlvbkxpc3RlbmVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdhMjY5YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL0FwcGxpY2F0aW9uTGlzdGVuZXIuamF2YQpAQCAtMCwwICsxLDIzMSBAQAorLyoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDIsMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqICRJZDogQXBwbGljYXRpb25MaXN0ZW5lci5qYXZhIDM3MjA4NyAyMDA2LTAxLTI1IDAzOjM4OjQyWiBjcmFpZ21jYyAkCisgKi8KKworcGFja2FnZSBtYWlscmVhZGVyMjsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uaW1wbC5tZW1vcnkuTWVtb3J5VXNlckRhdGFiYXNlOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0RXZlbnQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dExpc3RlbmVyOworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiA8cD48Y29kZT5TZXJ2bGV0Q29udGV4dExpc3RlbmVyPC9jb2RlPiB0aGF0IGluaXRpYWxpemVzIGFuZCBmaW5hbGl6ZXMgdGhlCisgKiBwZXJzaXN0ZW50IHN0b3JhZ2Ugb2YgVXNlciBhbmQgU3VwcG9ydCBpbmZvcm1hdGlvbiBmb3IgdGhlIFN0cnV0cworICogRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbiwgdXNpbmcgYW4gaW4tbWVtb3J5IGRhdGFiYXNlIGJhY2tlZCBieSBhbiBYTUwKKyAqIGZpbGUuPC9wPgorICogPHAvPgorICogPHA+PHN0cm9uZz5JTVBMRU1FTlRBVElPTiBXQVJOSU5HPC9zdHJvbmc+IC0gSWYgdGhpcyB3ZWIgYXBwbGljYXRpb24gaXMgcnVuCisgKiBmcm9tIGEgV0FSIGZpbGUsIG9yIGluIGFub3RoZXIgZW52aXJvbm1lbnQgd2hlcmUgcmVhZGluZyBhbmQgd3JpdGluZyBvZiB0aGUKKyAqIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSBpcyBpbXBvc3NpYmxlLCB0aGUgaW5pdGlhbCBjb250ZW50cyB3aWxsIGJlIGNvcGllZAorICogdG8gYSBmaWxlIGluIHRoZSB3ZWIgYXBwbGljYXRpb24gdGVtcG9yYXJ5IGRpcmVjdG9yeSBwcm92aWRlZCBieSB0aGUKKyAqIGNvbnRhaW5lci4gIFRoaXMgaXMgZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMgb25seSAtIHlvdSBzaG91bGQKKyAqIDxzdHJvbmc+Tk9UPC9zdHJvbmc+IGFzc3VtZSB0aGF0IGZpbGVzIHdyaXR0ZW4gaGVyZSB3aWxsIHN1cnZpdmUgYSByZXN0YXJ0CisgKiBvZiB5b3VyIHNlcnZsZXQgY29udGFpbmVyLjwvcD4KKyAqIDxwLz4KKyAqIDxwPlRoaXMgY2xhc3Mgd2FzIGJvcnJvd2VkIGZyb20gdGhlIFNoYWxlIE1haWxyZWFkZXIuIENoYW5nZXMgd2VyZTo8L3A+CisgKiA8cC8+CisgKiA8dWw+CisgKiA8cC8+CisgKiA8bGk+UGF0aCB0byBkYXRhYmFzZS54bWwgKHVuZGVyIGNsYXNzZXMgaGVyZSkuIDwvbGk+CisgKiA8cC8+CisgKiA8bGk+Q2xhc3MgdG8gc3RvcmUgcHJvdG9jb2wgbGlzdCAoYW4gYXJyYXkgaGVyZSkuIDwvbGk+CisgKiA8cC8+CisgKiA8L3VsPgorICogPHAvPgorICogREVWRUxPUE1FTlQgTk9URSAtIEFub3RoZXIgYXBwcm9hY2ggd291bGQgYmUgdG8gaW5zdGFudGlhdGUgdGhlIGRhdGFiYXNlIHZpYSBTcHJpbmcuCisgKiA8L3A+CisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIEFwcGxpY2F0aW9uTGlzdGVuZXIgaW1wbGVtZW50cyBTZXJ2bGV0Q29udGV4dExpc3RlbmVyIHsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNYW5pZmVzdCBDb25zdGFudHMKKworCisgICAgLyoqCisgICAgICogPHA+QXBwaWNhdGlvbiBzY29wZSBhdHRyaWJ1dGUga2V5IHVuZGVyIHdoaWNoIHRoZSBpbi1tZW1vcnkgdmVyc2lvbiBvZgorICAgICAqIG91ciBkYXRhYmFzZSBpcyBzdG9yZWQuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFCQVNFX0tFWSA9ICJkYXRhYmFzZSI7CisKKworICAgIC8qKgorICAgICAqIDxwPkFwcGxpY2F0aW9uIHNjb3BlIGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggdGhlIHZhbGlkIHNlbGVjdGlvbgorICAgICAqIGl0ZW1zIGZvciB0aGUgcHJvdG9jb2wgcHJvcGVydHkgaXMgc3RvcmVkLjwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQUk9UT0NPTFNfS0VZID0gInByb3RvY29scyI7CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSW5zdGFuY2UgVmFyaWFibGVzCisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSA8Y29kZT5TZXJ2bGV0Q29udGV4dDwvY29kZT4gZm9yIHRoaXMgd2ViIGFwcGxpY2F0aW9uLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFNlcnZsZXRDb250ZXh0IGNvbnRleHQgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiBUaGUge0BsaW5rIE1lbW9yeVVzZXJEYXRhYmFzZX0gb2JqZWN0IHdlIGNvbnN0cnVjdCBhbmQgbWFrZSBhdmFpbGFibGUuCisgICAgICovCisgICAgcHJpdmF0ZSBNZW1vcnlVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiA8cD5Mb2dnaW5nIG91dHB1dCBmb3IgdGhpcyBwbHVnIGluIGluc3RhbmNlLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyh0aGlzLmdldENsYXNzKCkpOworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm9wZXJ0aWVzCisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCBvZiBvdXIgcGVyc2lzdGVudCBkYXRhYmFzZSBzdG9yYWdlCisgICAgICogZmlsZS48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0aG5hbWUgPSAiL1dFQi1JTkYvY2xhc3Nlcy9kYXRhYmFzZS54bWwiOworCisgICAgLyoqCisgICAgICogPHA+UmV0dXJuIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIHRvIHRoZSBkYXRhYmFzZS48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFwcGxpY2F0aW9uIHJlc291cmNlIHBhdGggcGF0aCB0byB0aGUgZGF0YWJhc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhdGhuYW1lKCkgeworICAgICAgICByZXR1cm4gKHRoaXMucGF0aG5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNldCB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCB0byB0aGUgZGF0YWJhc2UuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHBhdGhuYW1lIHRvIHRoZSBkYXRhYmFzZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhdGhuYW1lKFN0cmluZyBwYXRobmFtZSkgeworICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7CisgICAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNlcnZsZXRDb250ZXh0TGlzdGVuZXIgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiA8cD5HcmFjZWZ1bGx5IHNodXQgZG93biB0aGlzIGRhdGFiYXNlLCByZWxlYXNpbmcgYW55IHJlc291cmNlcyB0aGF0CisgICAgICogd2VyZSBhbGxvY2F0ZWQgYXQgaW5pdGlhbGl6YXRpb24uPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGV2ZW50IFNlcnZsZXRDb250ZXh0RXZlbnQgdG8gcHJvY2VzcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbnRleHREZXN0cm95ZWQoU2VydmxldENvbnRleHRFdmVudCBldmVudCkgeworCisgICAgICAgIGxvZy5pbmZvKCJGaW5hbGl6aW5nIG1lbW9yeSBkYXRhYmFzZSBwbHVnIGluIik7CisKKyAgICAgICAgaWYgKGRhdGFiYXNlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZGF0YWJhc2UuY2xvc2UoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nLmVycm9yKCJDbG9zaW5nIG1lbW9yeSBkYXRhYmFzZSIsIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoREFUQUJBU0VfS0VZKTsKKyAgICAgICAgY29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoUFJPVE9DT0xTX0tFWSk7CisgICAgICAgIGRhdGFiYXNlID0gbnVsbDsKKyAgICAgICAgY29udGV4dCA9IG51bGw7CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIDxwPkluaXRpYWxpemUgYW5kIGxvYWQgb3VyIGluaXRpYWwgZGF0YWJhc2UgZnJvbSBwZXJzaXN0ZW50CisgICAgICogc3RvcmFnZS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIGNvbnRleHQgaW5pdGlhbGl6YXRpb24gZXZlbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb250ZXh0SW5pdGlhbGl6ZWQoU2VydmxldENvbnRleHRFdmVudCBldmVudCkgeworCisgICAgICAgIGxvZy5pbmZvKCJJbml0aWFsaXppbmcgbWVtb3J5IGRhdGFiYXNlIHBsdWcgaW4gZnJvbSAnIiArCisgICAgICAgICAgICAgICAgcGF0aG5hbWUgKyAiJyIpOworCisgICAgICAgIC8vIFJlbWVtYmVyIG91ciBhc3NvY2lhdGVkIFNlcnZsZXRDb250ZXh0CisgICAgICAgIHRoaXMuY29udGV4dCA9IGV2ZW50LmdldFNlcnZsZXRDb250ZXh0KCk7CisKKyAgICAgICAgLy8gQ29uc3RydWN0IGEgbmV3IGRhdGFiYXNlIGFuZCBtYWtlIGl0IGF2YWlsYWJsZQorICAgICAgICBkYXRhYmFzZSA9IG5ldyBNZW1vcnlVc2VyRGF0YWJhc2UoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gY2FsY3VsYXRlUGF0aCgpOworICAgICAgICAgICAgaWYgKGxvZy5pc0RlYnVnRW5hYmxlZCgpKSB7CisgICAgICAgICAgICAgICAgbG9nLmRlYnVnKCIgTG9hZGluZyBkYXRhYmFzZSBmcm9tICciICsgcGF0aCArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkYXRhYmFzZS5zZXRQYXRobmFtZShwYXRoKTsKKyAgICAgICAgICAgIGRhdGFiYXNlLm9wZW4oKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZy5lcnJvcigiT3BlbmluZyBtZW1vcnkgZGF0YWJhc2UiLCBlKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkNhbm5vdCBsb2FkIGRhdGFiYXNlIGZyb20gJyIgKworICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSArICInOiAiICsgZSk7CisgICAgICAgIH0KKyAgICAgICAgY29udGV4dC5zZXRBdHRyaWJ1dGUoREFUQUJBU0VfS0VZLCBkYXRhYmFzZSk7CisKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcml2YXRlIE1ldGhvZHMKKworCisgICAgLyoqCisgICAgICogPHA+Q2FsY3VsYXRlIGFuZCByZXR1cm4gYW4gYWJzb2x1dGUgcGF0aG5hbWUgdG8gdGhlIFhNTCBmaWxlIHRvIGNvbnRhaW4KKyAgICAgKiBvdXIgcGVyc2lzdGVudCBzdG9yYWdlIGluZm9ybWF0aW9uLjwvcD4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBjYWxjdWxhdGVQYXRoKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gQ2FuIHdlIGFjY2VzcyB0aGUgZGF0YWJhc2UgdmlhIGZpbGUgSS9PPworICAgICAgICBTdHJpbmcgcGF0aCA9IGNvbnRleHQuZ2V0UmVhbFBhdGgocGF0aG5hbWUpOworICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gKHBhdGgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRG9lcyBhIGNvcHkgb2YgdGhpcyBmaWxlIGFscmVhZHkgZXhpc3QgaW4gb3VyIHRlbXBvcmFyeSBkaXJlY3RvcnkKKyAgICAgICAgRmlsZSBkaXIgPSAoRmlsZSkKKyAgICAgICAgICAgICAgICBjb250ZXh0LmdldEF0dHJpYnV0ZSgiamF2YXguc2VydmxldC5jb250ZXh0LnRlbXBkaXIiKTsKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoZGlyLCAic3RydXRzLWV4YW1wbGUtZGF0YWJhc2UueG1sIik7CisgICAgICAgIGlmIChmaWxlLmV4aXN0cygpKSB7CisgICAgICAgICAgICByZXR1cm4gKGZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29weSB0aGUgc3RhdGljIHJlc291cmNlIHRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHJldHVybiBpdHMgcGF0aAorICAgICAgICBJbnB1dFN0cmVhbSBpcyA9CisgICAgICAgICAgICAgICAgY29udGV4dC5nZXRSZXNvdXJjZUFzU3RyZWFtKHBhdGhuYW1lKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiaXMgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcywgMTAyNCk7CisgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gb3MgPQorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGUpOworICAgICAgICBCdWZmZXJlZE91dHB1dFN0cmVhbSBib3MgPSBuZXcgQnVmZmVyZWRPdXRwdXRTdHJlYW0ob3MsIDEwMjQpOworICAgICAgICBieXRlIGJ1ZmZlcltdID0gbmV3IGJ5dGVbMTAyNF07CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgbiA9IGJpcy5yZWFkKGJ1ZmZlcik7CisgICAgICAgICAgICBpZiAobiA8PSAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib3Mud3JpdGUoYnVmZmVyLCAwLCBuKTsKKyAgICAgICAgfQorICAgICAgICBib3MuY2xvc2UoKTsKKyAgICAgICAgYmlzLmNsb3NlKCk7CisgICAgICAgIHJldHVybiAoZmlsZS5nZXRBYnNvbHV0ZVBhdGgoKSk7CisKKyAgICB9CisKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvQXV0aGVudGljYXRpb25JbnRlcmNlcHRvci5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvQXV0aGVudGljYXRpb25JbnRlcmNlcHRvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyN2M0NTYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9BdXRoZW50aWNhdGlvbkludGVyY2VwdG9yLmphdmEKQEAgLTAsMCArMSwzMyBAQAorcGFja2FnZSBtYWlscmVhZGVyMjsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25JbnZvY2F0aW9uOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmludGVyY2VwdG9yLkludGVyY2VwdG9yOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKKworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK3B1YmxpYyBjbGFzcyBBdXRoZW50aWNhdGlvbkludGVyY2VwdG9yIGltcGxlbWVudHMgSW50ZXJjZXB0b3IgeworCisgICAgcHVibGljIHZvaWQgZGVzdHJveSgpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBpbml0KCkgeworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgaW50ZXJjZXB0KEFjdGlvbkludm9jYXRpb24gYWN0aW9uSW52b2NhdGlvbikgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgTWFwIHNlc3Npb24gPSBhY3Rpb25JbnZvY2F0aW9uLmdldEludm9jYXRpb25Db250ZXh0KCkuZ2V0U2Vzc2lvbigpOworCisgICAgICAgIFVzZXIgdXNlciA9IChVc2VyKSBzZXNzaW9uLmdldChDb25zdGFudHMuVVNFUl9LRVkpOworCisgICAgICAgIGJvb2xlYW4gaXNBdXRoZW50aWNhdGVkID0gKG51bGwgIT0gdXNlcikgJiYgKG51bGwgIT0gdXNlci5nZXREYXRhYmFzZSgpKTsKKworICAgICAgICBpZiAoIWlzQXV0aGVudGljYXRlZCkgeworICAgICAgICAgICAgcmV0dXJuIEFjdGlvbi5MT0dJTjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBhY3Rpb25JbnZvY2F0aW9uLmludm9rZSgpOworICAgICAgICB9CisKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9DaGFuZ2VQYXNzd29yZC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvQ2hhbmdlUGFzc3dvcmQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YmQ5NThiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvQ2hhbmdlUGFzc3dvcmQuamF2YQpAQCAtMCwwICsxLDEwIEBACitwYWNrYWdlIG1haWxyZWFkZXIyOw0KKw0KKy8qKg0KKyAqIDxwPg0KKyAqIFdoZW4gaW1wbGVtZW50ZWQsIGFsbG93IGd1ZXN0IHRvIGNoYW5nZSBwYXNzd29yZCwNCisgKiBnaXZlbiBjb3JyZWN0IGNyZWRlbnRpYWxzLg0KKyAqIDwvcD4NCisgKi8NCitwdWJsaWMgY2xhc3MgQ2hhbmdlUGFzc3dvcmQgZXh0ZW5kcyBNYWlscmVhZGVyU3VwcG9ydCB7DQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL0NvbnN0YW50cy5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvQ29uc3RhbnRzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDVhZmQ0OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL0NvbnN0YW50cy5qYXZhCkBAIC0wLDAgKzEsMTUwIEBACisvKgorICogJElkOiBDb25zdGFudHMuamF2YSAzNjA0NDIgMjAwNS0xMi0zMSAyMDoxMDowNFogaHVzdGVkICQKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBtYWlscmVhZGVyMjsKKworLyoqCisgKiA8cD4gTWFuaWZlc3QgY29uc3RhbnRzIGZvciB0aGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbi4gPC9wPgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQ29uc3RhbnRzIHsKKworICAgIC8vIC0tIFN0YXRlbWVudHMgLS0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgSW50ZWdlciBEQl9GQUxTRSA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIERCX1RSVUUgPSAxOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9DQUxFX0xJU1QgPSAiTE9DQUxFX0xJU1QiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJFR0lTVFJBVElPTl9JTlNFUlRfQVNTRVJUID0gIlJFR0lTVFJBVElPTl9JTlNFUlRfQVNTRVJUIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBSRUdJU1RSQVRJT05fSU5TRVJUID0gIlJFR0lTVFJBVElPTl9JTlNFUlQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJFR0lTVFJBVElPTl9QQVNTV09SRCA9ICJSRUdJU1RSQVRJT05fUEFTU1dPUkQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJFR0lTVFJBVElPTl9GVUxMTkFNRSA9ICJSRUdJU1RSQVRJT05fRlVMTE5BTUUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJFR0lTVFJBVElPTl9FRElUID0gIlJFR0lTVFJBVElPTl9FRElUIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBSRUdJU1RSQVRJT05fVVBEQVRFID0gIlJFR0lTVFJBVElPTl9VUERBVEUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVQlNDUklQVElPTl9JTlNFUlRfQVNTRVJUID0gIlNVQlNDUklQVElPTl9JTlNFUlRfQVNTRVJUIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTVUJTQ1JJUFRJT05fSU5TRVJUID0gIlNVQlNDUklQVElPTl9JTlNFUlQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVQlNDUklQVElPTl9MSVNUID0gIlNVQlNDUklQVElPTl9MSVNUIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTVUJTQ1JJUFRJT05fRURJVCA9ICJTVUJTQ1JJUFRJT05fRURJVCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1VCU0NSSVBUSU9OX1VQREFURSA9ICJTVUJTQ1JJUFRJT05fVVBEQVRFIjsKKworICAgIC8vIC0tIFRva2VucyAtLQorCisgICAgLyoqCisgICAgICogPHA+IFRoZSB0b2tlbiByZXByZXNlbnRpbmcgYSAiY2FuY2VsIiByZXF1ZXN0LiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0FOQ0VMID0gImNhbmNlbCI7CisKKyAgICAvKioKKyAgICAgKiA8cD4gVGhlIHRva2VuIHJlcHJlc2VudGluZyBhICJjcmVhdGUiIHRhc2suIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDUkVBVEUgPSAiQ3JlYXRlIjsKKworICAgIC8qKgorICAgICAqIDxwPiBUaGUgYXBwbGljYXRpb24gc2NvcGUgYXR0cmlidXRlIHVuZGVyIHdoaWNoIG91ciB1c2VyIGRhdGFiYXNlIGlzCisgICAgICogc3RvcmVkLiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQUJBU0VfS0VZID0gImRhdGFiYXNlIjsKKworICAgIC8qKgorICAgICAqIDxwPiBUaGUgdG9rZW4gcmVwcmVzZW50aW5nIGEgImVkaXQiIHRhc2suIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBERUxFVEUgPSAiRGVsZXRlIjsKKworICAgIC8qKgorICAgICAqIDxwPiBUaGUgdG9rZW4gcmVwcmVzZW50aW5nIGEgImVkaXQiIHRhc2suIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFRElUID0gIkVkaXQiOworCisgICAgLyoqCisgICAgICogPHA+IFRoZSBwYWNrYWdlIG5hbWUgZm9yIHRoaXMgYXBwbGljYXRpb24uIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQQUNLQUdFID0gIm9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlciI7CisKKyAgICAvKioKKyAgICAgKiA8cD4gVGhlIHNlc3Npb24gc2NvcGUgYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZSBTdXBwb3J0IG9iamVjdAorICAgICAqIGN1cnJlbnRseSBzZWxlY3RlZCBieSBvdXIgbG9nZ2VkLWluIFVzZXIgaXMgc3RvcmVkLiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1VCU0NSSVBUSU9OX0tFWSA9ICJzdWJzY3JpcHRpb24iOworCisgICAgLyoqCisgICAgICogPHA+IFRoZSBzZXNzaW9uIHNjb3BlIGF0dHJpYnV0ZSB1bmRlciB3aGljaCB0aGUgVXNlciBvYmplY3QgZm9yIHRoZQorICAgICAqIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlciBpcyBzdG9yZWQuIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBVU0VSX0tFWSA9ICJ1c2VyIjsKKworICAgIC8qKgorICAgICAqIDxwPlRoZSB0b2tlbiByZXByZXNlbnRpbmcgdGhlICJIb3N0IiBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBIT1NUID0gImhvc3QiOworCisgICAgLy8gLS0tLSBFcnJvciBNZXNzYWdlcyAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogQSBzdGF0aWMgbWVzc2FnZSBpbiBjYXNlIG1lc3NhZ2UgcmVzb3VyY2UgaXMgbm90IGxvYWRlZC4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfTUVTU0FHRVNfTk9UX0xPQURFRCA9CisgICAgICAgICAgICAiRVJST1I6ICBNZXNzYWdlIHJlc291cmNlcyBub3QgbG9hZGVkIC0tIGNoZWNrIHNlcnZsZXQgY29udGFpbmVyIGxvZ3MgZm9yIGVycm9yIG1lc3NhZ2VzLiI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogQSBzdGF0aWMgbWVzc2FnZSBpbiBjYXNlIGRhdGFiYXNlIHJlc291cmNlIGlzIG5vdCBsb2FkZWQuCisgICAgICogPHAvPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVSUk9SX0RBVEFCQVNFX05PVF9MT0FERUQgPQorICAgICAgICAgICAgIkVSUk9SOiAgVXNlciBkYXRhYmFzZSBub3QgbG9hZGVkIC0tIGNoZWNrIHNlcnZsZXQgY29udGFpbmVyIGxvZ3MgZm9yIGVycm9yIG1lc3NhZ2VzLiI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogQSBzdGFuZGFyZCBrZXkgZnJvbSB0aGUgbWVzc2FnZSByZXNvdXJjZXMgZmlsZSwgdG8gdGVzdCBpZiBpdCBpcyBhdmFpbGFibGUuCisgICAgICogPHAvPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVSUk9SX0RBVEFCQVNFX01JU1NJTkcgPSAiZXJyb3IuZGF0YWJhc2UubWlzc2luZyI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogQSAibWFnaWMiIHVzZXJuYW1lIHRvIHRyaWdnZXIgYW4gRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIGZvciB0ZXN0aW5nLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFWFBJUkVEX1BBU1NXT1JEX0VYQ0VQVElPTiA9ICJFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24iOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIE5hbWUgb2YgZmllbGQgdG8gYXNzb2NpYXRlIHdpdGggYXV0aGVudGlmaWNhdGlvbiBlcnJvcnMuCisgICAgICogPHAvPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBBU1NXT1JEX01JU01BVENIX0ZJRUxEID0gInBhc3N3b3JkIjsKKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBBIHN0YXRpYyBtZXNzYWdlIGluIGNhc2UgbWVzc2FnZSByZXNvdXJjZSBpcyBub3QgbG9hZGVkLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9JTlZBTElEX1dPUktGTE9XID0KKyAgICAgICAgICAgICJFUlJPUjogIEFjdGlvbiBpcyBiZWluZyBleGVjdXRlZCBvdXQgb2Ygc2VxdWVuY2UhIjsKKworICAgIC8vIC0tLS0gTG9nIE1lc3NhZ2VzIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPiBNZXNzYWdlIHRvIGxvZyBpZiBzYXZpbmcgYSB1c2VyIGZhaWxzLiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9HX0RBVEFCQVNFX1NBVkVfRVJST1IgPQorICAgICAgICAgICAgIiBVbmV4cGVjdGVkIGVycm9yIHdoZW4gc2F2aW5nIFVzZXI6ICI7CisKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTG9nb2ZmLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9Mb2dvZmYuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDg4MzkzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTG9nb2ZmLmphdmEKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqICRJZDogTG9nb25BY3Rpb24uamF2YSAzNjA0NDIgMjAwNS0xMi0zMSAyMDoxMDowNFogaHVzdGVkICQKKyAqCisgKiBDb3B5cmlnaHQgMjAwMC0yMDA0IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBtYWlscmVhZGVyMjsKKworLyoqCisgKiA8cD4gTG9nIHVzZXIgb3V0IG9mIHRoZSBjdXJyZW50IHNlc3Npb24uIDwvcD4KKyAqLworcHVibGljIGNsYXNzIExvZ29mZiBleHRlbmRzIE1haWxyZWFkZXJTdXBwb3J0IHsKKworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHsKKyAgICAgICAgc2V0VXNlcihudWxsKTsKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTWFpbHJlYWRlclN1cHBvcnQuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL01haWxyZWFkZXJTdXBwb3J0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY0YjY0OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL01haWxyZWFkZXJTdXBwb3J0LmphdmEKQEAgLTAsMCArMSw1NTggQEAKKy8qCisgKiAkSWQ6IEJhc2VBY3Rpb24uamF2YSAzNjA0NDIgMjAwNS0xMi0zMSAyMDoxMDowNFogaHVzdGVkICQKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBtYWlscmVhZGVyMjsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkudXRpbC5CZWFuVXRpbHM7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uU3VwcG9ydDsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5Nb2RlbERyaXZlbjsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlN1YnNjcmlwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyRGF0YWJhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5pbXBsLm1lbW9yeS5NZW1vcnlTdWJzY3JpcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5pbXBsLm1lbW9yeS5NZW1vcnlVc2VyOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5pbnRlcmNlcHRvci5BcHBsaWNhdGlvbkF3YXJlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5pbnRlcmNlcHRvci5TZXNzaW9uQXdhcmU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCisvKioKKyAqIDxwPiBCYXNlIEFjdGlvbiBmb3IgTWFpbHJlYWRlclN1cHBvcnQgYXBwbGljYXRpb24uIDwvcD4KKyAqIDxwLz4KKyAqIDxwPiBOb3RlIHRoYXQgdGhpcyBjbGFzcyBkb2VzIE5PVCBpbXBsZW1lbnQgbW9kZWwgZHJpdmVuIGJlY2F1c2Ugb2YgdGhlIHdheQorICogdGhlIHByZS1leGlzdGluZyBtb2RlbCBpcyBkZXNpZ25lZC4gVGhlIE1haWxSZWFkZXIgREFPIGluY2x1ZGVzIGltbXV0YWJsZQorICogZmllbGRzIHRoYXQgY2FuIG9ubHkgYmUgc2V0IG9uIGNvbnN0cnVjdGlvbiwgYW5kIHNvbWUgb2JqZWN0cyBkbyBub3QgaGF2ZSBhCisgKiBkZWZhdWx0IGNvbnN0cnVjdGlvbi4gT25lIGFwcHJvYWNoIHdvdWxkIGJlIHRvIG1pcnJvciBhbGwgdGhlIERBTworICogcHJvcGVydGllcyBvbiB0aGUgQWN0aW9ucy4gQXMgYW4gYWx0ZXJuYXRpdmUsIHRoaXMgaW1wbGVtZW50YXRpb25zIHVzZXMgdGhlCisgKiBEQU8gcHJvcGVydGllcyB3aGVyZSBwb3NzaWJsZSwgYW5kIHVzZXMgbG9jYWwgQWN0aW9uIHByb3BlcnRpZXMgb25seSBhcworICogbmVlZGVkLiBUbyBjcmVhdGUgbmV3IG9iamVjdHMsIGEgYmxhbmsgdGVtcG9yYXJ5IG9iamVjdCBpcyBjb25zdHJ1Y3RlZCwgYW5kCisgKiB0aGUgcGFnZSB1c2VzIGEgbWl4IG9mIGxvY2FsIEFjdGlvbiBwcm9wZXJ0aWVzIGFuZCBEQU8gcHJvcGVydGllcy4gV2hlbiB0aGUKKyAqIG5ldyBvYmplY3QgaXMgdG8gYmUgc2F2ZWQsIHRoZSBsb2NhbCBBY3Rpb24gcHJvcGVydGllcyBhcmUgdXNlZCB0byBjcmVhdGUKKyAqIHRoZSBvYmplY3QgdXNpbmcgdGhlIERBTyBmYWN0b3J5IG1ldGhvZHMsIHRoZSBpbnB1dCB2YWx1ZXMgYXJlIGNvcGllZCBmcm9tCisgKiB0aGUgdGVtcG9yYXJ5IG9iamVjdCwgYW5kIHRoZSBuZXcgb2JqZWN0IGlzIHNhdmVkLiBJdCdzIGtsdWRnZSwgYnV0IGl0CisgKiBhdm9pZHMgY3JlYXRpbmcgdW5uZWNlc3NhcnkgbG9jYWwgcHJvcGVydGllcy4gUGljayB5b3VyIHBvaXNvbi48L3A+CisgKi8KK3B1YmxpYyBjbGFzcyBNYWlscmVhZGVyU3VwcG9ydCBleHRlbmRzIEFjdGlvblN1cHBvcnQKKyAgICAgICAgaW1wbGVtZW50cyBTZXNzaW9uQXdhcmUsIEFwcGxpY2F0aW9uQXdhcmUgeworCisgICAgLyoqCisgICAgICogUmV0dXJuIENBTkNFTCBzbyBhcHJvcHJpYXRlIHJlc3VsdCBjYW4gYmUgc2VsZWN0ZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICJjYW5jZWwiIHNvIGFwcm9wcmlhdGUgcmVzdWx0IGNhbiBiZSBzZWxlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGNhbmNlbCgpIHsKKyAgICAgICAgcmV0dXJuIENvbnN0YW50cy5DQU5DRUw7CisgICAgfQorCisgICAgLy8gLS0tLSBBcHBsaWNhdGlvbkF3YXJlIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPkZpZWxkIHRvIHN0b3JlIGFwcGxpY2F0aW9uIGNvbnRleHQgb3IgaXRzIHByb3h5LjwvcD4KKyAgICAgKiA8cC8+CisgICAgICogPHA+VGhlIGFwcGxpY2F0aW9uIGNvbnRleHQgbGFzdHMgZm9yIHRoZSBsaWZlIG9mIHRoZSBhcHBsaWNhdGlvbi4gQQorICAgICAqIHJlZmVyZW5jZSB0byB0aGUgZGF0YWJhc2UgaXMgc3RvcmVkIGluIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0IGF0CisgICAgICogc3RhcnR1cC48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgYXBwbGljYXRpb247CisKKyAgICAvKioKKyAgICAgKiA8cD5TdG9yZSBhIG5ldyBhcHBsaWNhdGlvbiBjb250ZXh0LjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZSBBIE1hcCByZXByZXNlbnRpbmcgYXBwbGljYXRpb24gc3RhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRBcHBsaWNhdGlvbihNYXAgdmFsdWUpIHsKKyAgICAgICAgYXBwbGljYXRpb24gPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIGFwcGxpY2F0aW9uIGNvbnRleHQuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBNYXAgZ2V0QXBwbGljYXRpb24oKSB7CisgICAgICAgIHJldHVybiBhcHBsaWNhdGlvbjsKKyAgICB9CisKKyAgICAvLyAtLS0tIFNlc3Npb25Bd2FyZSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5GaWVsZCB0byBzdG9yZSBzZXNzaW9uIGNvbnRleHQsIG9yIGl0cyBwcm94eS48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgc2Vzc2lvbjsKKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIGEgbmV3IHNlc3Npb24gY29udGV4dC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgQSBNYXAgcmVwcmVzZW50aW5nIHNlc3Npb24gc3RhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZXNzaW9uKE1hcCB2YWx1ZSkgeworICAgICAgICBzZXNzaW9uID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSBzZXNzaW9uIGNvbnRleHQuPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBzZXNzaW9uIGNvbnRleHQKKyAgICAgKi8KKyAgICBwdWJsaWMgTWFwIGdldFNlc3Npb24oKSB7CisgICAgICAgIHJldHVybiBzZXNzaW9uOworICAgIH0KKworICAgIC8vIC0tLS0gVGFzayBwcm9wZXJ0eSAodXRpbGl6ZWQgYnkgVUkpIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPkZpZWxkIHRvIHN0b3JlIHdvcmtmbG93IHRhc2suPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD5UaGUgVGFzayBpcyB1c2VkIHRvIHRyYWNrIHRoZSBzdGF0ZSBvZiB0aGUgQ1JVRCB3b3JrZmxvd3MuIEl0IGNhbiBiZQorICAgICAqIHNldCB0byBDb25zdGFudC5DUkVBVEUsIENvbnN0YW50LkVESVQsIG9yIENvbnN0YW50LkRFTEVURSBhcworICAgICAqIG5lZWRlZC48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgdGFzayA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgd29ya2xvdyB0YXNrLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gUmV0dXJucyB0aGUgdGFzay4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRhc2soKSB7CisgICAgICAgIHJldHVybiB0YXNrOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIG5ldyB3b3JrZmxvdyB0YXNrLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdGFzayB0byBzZXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGFzayhTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgdGFzayA9IHZhbHVlOworICAgIH0KKworICAgIC8vIC0tLS0gVG9rZW4gcHJvcGVydHkgKHV0aWxpemVkIGJ5IFVJKSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5GaWVsZCB0byBzdG9yZSBkb3VibGUtc3VibWl0IGd1YXJkLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyB0b2tlbiA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgVG9rZW4uPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSB0b2tlbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRva2VuKCkgeworICAgICAgICByZXR1cm4gdG9rZW47CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U3RvcmUgbmV3IFRva2VuLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdG9rZW4gdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRva2VuKFN0cmluZyB2YWx1ZSkgeworICAgICAgICB0b2tlbiA9IHZhbHVlOworICAgIH0KKworICAgIC8vIC0tLS0gSG9zdCBwcm9wZXJ0eSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5GaWVsZCB0byBzdG9yZSBTdXBwb3J0IGhvc3QuPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD4gVGhlIGhvc3QgaXMgYW4gaW1tdXRhYmxlIHByb3BlcnR5IG9mIHRoZSBTdWJzY3J0aW9uIERBUCBvYmplY3QsIHNvCisgICAgICogd2UgbmVlZCB0byBzdG9yZSBpdCBsb2NhbGx5IHVudGlsIHdlIGFyZSByZWFkeSB0byBjcmVhdGUgdGhlCisgICAgICogU3VwcG9ydC4gPC9wPgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGhvc3Q7CisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIHRTdWJzY3JpcHRpb24gaG9zdC48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGhvc3QgcHJvcGVydHkKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEhvc3QoKSB7CisgICAgICAgIHJldHVybiBob3N0OworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIG5ldyBTdXBwb3J0IGhvc3QuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SG9zdChTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgaG9zdCA9IHZhbHVlOworICAgIH0KKworICAgIC8vIC0tLS0gUGFzc3dvcmQgcHJvcGVydHkgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+RmllbGQgdG8gc3RvcmUgVXNlciBwYXNzd29yZCBwcm9wZXJ0eS48L3A+CisgICAgICogPHAvPgorICAgICAqIDxwPlRoZSBVc2VyIERBTyBvYmplY3QgcGFzc3dvcmQgcHJvZXJ0eSBpcyBpbW11dGFibGUsIHNvIHdlIHN0b3JlIGl0CisgICAgICogbG9jYWxseSB1bnRpbCB3ZSBhcmUgcmVhZHkgdG8gY3JlYXRlIHRoZSBvYmplY3QuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHBhc3N3b3JkID0gbnVsbDsKKworCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSBVc2VyIHBhc3N3b3JkPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBwYXNzd29yZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkKCkgeworICAgICAgICByZXR1cm4gcGFzc3dvcmQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U3RvcmUgbmV3IFVzZXIgUGFzc3dvcmQ8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHBhc3N3b3JkIHRvIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYXNzd29yZChTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcGFzc3dvcmQgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvLyAtLS0tIFBhc3N3b3JkMiBwcm9wZXJ0eSAoY29uZmlybWF0aW9uKSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5GaWVsZCB0byBzdG9yZSB0aGUgVXNlciBwYXNzd29yZCBjb25maXJtYXRpb24uPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD5XaGVuIGEgVXNlciBvYmplY3QgaXMgY3JlYXRlZCwgd2UgYXNrIHRoZSBjbGllbnQgdG8gZW50ZXIgdGhlCisgICAgICogcGFzc3dvcmQgdHdpY2UsIHRvIGhlbHAgZW5zdXJlIHRoZSBwYXNzd29yZCBpcyBiZWluZyB0eXBlZAorICAgICAqIGNvcnJlY3RseS48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQyID0gbnVsbDsKKworCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSB0aGUgVXNlciBwYXNzd29yZCBjb25maXJtYXRpb24uPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBjb25maXJtYXRpb25wYXNzd29yZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkMigpIHsKKyAgICAgICAgcmV0dXJuIHBhc3N3b3JkMjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TdG9yZSBhIG5ldyBVc2VyIHBhc3N3b3JkIGNvbmZpcm1hdGlvbi48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIGNvbmZpcm1hdGlvbiBwYXNzd29yZCB0byBzZXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGFzc3dvcmQyKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBwYXNzd29yZDIgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvLyAtLS0tIFVzZXJuYW1lIHByb3BlcnR5IC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPkZpZWxkIHRvIHN0b3JlIFVzZXIgdXNlcm5hbWUuPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD5UaGUgVXNlciBEQU8gb2JqZWN0IHBhc3N3b3JkIHByb2VydHkgaXMgaW1tdXRhYmxlLCBzbyB3ZSBzdG9yZSBpdAorICAgICAqIGxvY2FsbHkgdW50aWwgd2UgYXJlIHJlYWR5IHRvIGNyZWF0ZSB0aGUgb2JqZWN0LjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyB1c2VybmFtZSA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgVXNlciB1c2VybmFtZS48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIFVzZXIgdXNlcm5hbWUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRVc2VybmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIHVzZXJuYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIG5ldyBVc2VyIHVzZXJuYW1lPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHZhbHVlIFRoZSB1c2VybmFtZSB0byBzZXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VXNlcm5hbWUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHVzZXJuYW1lID0gdmFsdWU7CisgICAgfQorCisgICAgLy8gLS0tLSBEYXRhYmFzZSBwcm9wZXJ0eSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIHJlZmVyZW5jZSB0byBVc2VyRGF0YWJhc2UsIG9yIG51bGwgaWYgdGhlIGRhdGFiYXNlIGlzIG5vdAorICAgICAqIGF2YWlsYWJsZS4gPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGUgVXNlckRhdGFiYXNlIG9yIG51bGwgaWYgdGhlIGRhdGFiYXNlIGlzIG5vdAorICAgICAqICAgICAgICAgYXZhaWxhYmxlCisgICAgICovCisgICAgcHVibGljIFVzZXJEYXRhYmFzZSBnZXREYXRhYmFzZSgpIHsKKyAgICAgICAgT2JqZWN0IGRiID0gZ2V0QXBwbGljYXRpb24oKS5nZXQoQ29uc3RhbnRzLkRBVEFCQVNFX0tFWSk7CisgICAgICAgIGlmIChkYiA9PSBudWxsKSB7CisgICAgICAgICAgICB0aGlzLmFkZEFjdGlvbkVycm9yKGdldFRleHQoImVycm9yLmRhdGFiYXNlLm1pc3NpbmciKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChVc2VyRGF0YWJhc2UpIGRiOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIGEgbmV3IHJlZmVyZW5jZSB0byBVc2VyRGF0YWJhc2U8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0YWJhc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREYXRhYmFzZShVc2VyRGF0YWJhc2UgZGF0YWJhc2UpIHsKKyAgICAgICAgZ2V0QXBwbGljYXRpb24oKS5wdXQoQ29uc3RhbnRzLkRBVEFCQVNFX0tFWSwgZGF0YWJhc2UpOworICAgIH0KKworICAgIC8vIC0tLS0gVXNlciBwcm9wZXJ0eSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIHJlZmVyZW5jZSB0byBVc2VyIG9iamVjdCBmb3IgYXV0aGVudGljYXRlZCB1c2VyLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVXNlciBvYmplY3QgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVXNlciBnZXRVc2VyKCkgeworICAgICAgICByZXR1cm4gKFVzZXIpIGdldFNlc3Npb24oKS5nZXQoQ29uc3RhbnRzLlVTRVJfS0VZKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TdG9yZSBuZXcgcmVmZXJlbmNlIHRvIFVzZXIgT2JqZWN0LjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1c2VyIFVzZXIgb2JqZWN0IGZvciBhdXRoZW50aWNhdGVkIHVzZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRVc2VyKFVzZXIgdXNlcikgeworICAgICAgICBnZXRTZXNzaW9uKCkucHV0KENvbnN0YW50cy5VU0VSX0tFWSwgdXNlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+T2J0YWluIFVzZXIgb2JqZWN0IGZyb20gZGF0YWJhc2UsIG9yIHJldHVybiBudWxsIGlmIHRoZSBjcmVkZW50aWFscworICAgICAqIGFyZSBub3QgZm91bmQgb3IgaW52YWxpZC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVXNlciB1c2VybmFtZQorICAgICAqIEBwYXJhbSBwYXNzd29yZCBVc2VyIHBhc3N3b3JkCisgICAgICogQHJldHVybiBVc2VyIG9iamVjdCBvciBudWxsIGlmIG5vdCBmb3VuZAorICAgICAqIEB0aHJvd3MgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIFVzZXIgZmluZFVzZXIoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpCisgICAgICAgICAgICB0aHJvd3MgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIHsKKyAgICAgICAgLy8gRklYTUU6IFN0dXBpZCB0ZXN0aW5nIGhhY2sgdG8gY29tcGVuc2F0ZSBmb3IgaW5hZGVxdWF0ZSBEQU8gbGF5ZXIKKyAgICAgICAgaWYgKENvbnN0YW50cy5FWFBJUkVEX1BBU1NXT1JEX0VYQ0VQVElPTi5lcXVhbHModXNlcm5hbWUpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uKENvbnN0YW50cy5FWFBJUkVEX1BBU1NXT1JEX0VYQ0VQVElPTik7CisgICAgICAgIH0KKworICAgICAgICBVc2VyIHVzZXIgPSBnZXREYXRhYmFzZSgpLmZpbmRVc2VyKHVzZXJuYW1lKTsKKyAgICAgICAgaWYgKCh1c2VyICE9IG51bGwpICYmICF1c2VyLmdldFBhc3N3b3JkKCkuZXF1YWxzKHBhc3N3b3JkKSkgeworICAgICAgICAgICAgdXNlciA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHVzZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhpcy5hZGRGaWVsZEVycm9yKENvbnN0YW50cy5QQVNTV09SRF9NSVNNQVRDSF9GSUVMRCwKKyAgICAgICAgICAgICAgICAgICAgZ2V0VGV4dCgiZXJyb3IucGFzc3dvcmQubWlzbWF0Y2giKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHVzZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+PGNvZGU+TG9nPC9jb2RlPiBpbnN0YW5jZSBmb3IgdGhpcyBhcHBsaWNhdGlvbi4gPC9wPgorICAgICAqLworICAgIHByb3RlY3RlZCBMb2cgbG9nID0gTG9nRmFjdG9yeS5nZXRMb2coQ29uc3RhbnRzLlBBQ0tBR0UpOworCisgICAgLyoqCisgICAgICogPHA+IFBlcnNpc3QgdGhlIFVzZXIgb2JqZWN0LCBpbmNsdWRpbmcgc3Vic2NyaXB0aW9ucywgdG8gdGhlIGRhdGFiYXNlLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbiBvbiBkYXRhYmFzZSBlcnJvcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNhdmVVc2VyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBnZXREYXRhYmFzZSgpLnNhdmUoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gQ29uc3RhbnRzLkxPR19EQVRBQkFTRV9TQVZFX0VSUk9SICsgZ2V0VXNlcigpCisgICAgICAgICAgICAgICAgICAgIC5nZXRVc2VybmFtZSgpOworICAgICAgICAgICAgbG9nLmVycm9yKG1lc3NhZ2UsIGUpOworICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihtZXNzYWdlLCBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNyZWF0ZUlucHV0VXNlcigpIHsKKyAgICAgICAgVXNlciB1c2VyID0gbmV3IE1lbW9yeVVzZXIobnVsbCwgbnVsbCk7CisgICAgICAgIHNldFVzZXIodXNlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+IFZlcmlmeSBpbnB1dCBmb3IgY3JlYXRpbmcgYSBuZXcgdXNlciwgY3JlYXRlIHRoZSB1c2VyLCBhbmQgcHJvY2VzcworICAgICAqIHRoZSBsb2dpbi4gPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBBIG5ldyBVc2VyIGFuZCBlbXB0eSBFcnJvcnMgaWYgY3JlYXRlIHN1Y2NlZWRzLCBvciBudWxsIGFuZAorICAgICAqICAgICAgICAgRXJyb3JzIGlmIGNyZWF0ZSBmYWlscworICAgICAqLworICAgIHB1YmxpYyBVc2VyIGNyZWF0ZVVzZXIoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpIHsKKworICAgICAgICBVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBnZXREYXRhYmFzZSgpOworICAgICAgICBVc2VyIHVzZXI7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHVzZXIgPSBkYXRhYmFzZS5maW5kVXNlcih1c2VybmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBjYXRjaCAoRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHVzZXIgPSBnZXRVc2VyKCk7IC8vIEp1c3Qgc28gdGhhdCBpdCBpcyBub3QgbnVsbAorICAgICAgICB9CisKKyAgICAgICAgaWYgKHVzZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhpcy5hZGRGaWVsZEVycm9yKCJ1c2VybmFtZSIsICJlcnJvci51c2VybmFtZS51bmlxdWUiKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGRhdGFiYXNlLmNyZWF0ZVVzZXIodXNlcm5hbWUpOworICAgIH0KKworICAgIC8vIFNpbmNlIHVzZXIudXNlcm5hbWUgaXMgaW1tdXRhYmxlLCB3ZSBoYXZlIHRvIHVzZSBzb21lIGxvY2FsIHByb3BlcnRpZXMKKworICAgIC8qKgorICAgICAqIDxwPlVzZSB0aGUgY3VycmVudCBVc2VyIG9iamVjdCB0byBjcmVhdGUgYSBuZXcgVXNlciBvYmplY3QsIGFuZCBtYWtlCisgICAgICogdGhlIG5ldyBVc2VyIG9iamVjdCB0aGUgYXV0aGVudGljYXRlZCB1c2VyLjwvcD4KKyAgICAgKiA8cC8+CisgICAgICogPHA+VGhlICJjdXJyZW50IiBVc2VyIG9iamVjdCBpcyB1c3VhbGx5IGEgdGVtcG9yYXJ5IG9iamVjdCBiZWluZyB1c2VkCisgICAgICogdG8gY2FwdHVyZSBpbnB1dC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gX3VzZXJuYW1lIFVzZXIgdXNlcm5hbWUKKyAgICAgKiBAcGFyYW0gX3Bhc3N3b3JkIFVzZXIgcGFzc3dvcmQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb3B5VXNlcihTdHJpbmcgX3VzZXJuYW1lLCBTdHJpbmcgX3Bhc3N3b3JkKSB7CisgICAgICAgIFVzZXIgaW5wdXQgPSBnZXRVc2VyKCk7CisgICAgICAgIGlucHV0LnNldFBhc3N3b3JkKF9wYXNzd29yZCk7CisgICAgICAgIFVzZXIgdXNlciA9IGNyZWF0ZVVzZXIoX3VzZXJuYW1lLCBfcGFzc3dvcmQpOworICAgICAgICBpZiAobnVsbCAhPSB1c2VyKSB7CisgICAgICAgICAgICBCZWFuVXRpbHMuc2V0VmFsdWVzKHVzZXIsIGlucHV0LCBudWxsKTsKKyAgICAgICAgICAgIHNldFVzZXIodXNlcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyAtLS0tIFN1cHBvcnQgcHJvcGVydHkgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+T2J0YWluIHRoZSBjYWNoZWQgU3VwcG9ydCBvYmplY3QsIGlmIGFueS4gPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBDYWNoZWQgU3VwcG9ydCBvYmplY3Qgb3IgbnVsbAorICAgICAqLworICAgIHB1YmxpYyBTdWJzY3JpcHRpb24gZ2V0U3Vic2NyaXB0aW9uKCkgeworICAgICAgICByZXR1cm4gKFN1YnNjcmlwdGlvbikgZ2V0U2Vzc2lvbigpLmdldChDb25zdGFudHMuU1VCU0NSSVBUSU9OX0tFWSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U3RvcmUgbmV3IFVzZXIgU3VwcG9ydC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gc3Vic2NyaXB0aW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U3Vic2NyaXB0aW9uKFN1YnNjcmlwdGlvbiBzdWJzY3JpcHRpb24pIHsKKyAgICAgICAgZ2V0U2Vzc2lvbigpLnB1dChDb25zdGFudHMuU1VCU0NSSVBUSU9OX0tFWSwgc3Vic2NyaXB0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4gT2J0YWluIFVzZXIgU3VwcG9ydCBvYmplY3QgZm9yIHRoZSBnaXZlbiBob3N0LCBvciByZXR1cm4gbnVsbAorICAgICAqIGlmIG5vdCBmb3VuZC4gPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD5JdCB3b3VsZCBiZSBwb3NzaWJsZSBmb3IgdGhpcyBjb2RlIHRvIHRocm93IGEgTnVsbFBvaW50ZXJFeGNlcHRpb24sCisgICAgICogYnV0IHRoZSBFeGNlcHRpb25IYW5kbGVyIGluIHRoZSB4d29yay54bWwgd2lsbCBjYXRjaCB0aGF0IGZvciB1cy48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBtYXRjaGluZyBTdXBwb3J0IG9yIG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgU3Vic2NyaXB0aW9uIGZpbmRTdWJzY3JpcHRpb24oU3RyaW5nIGhvc3QpIHsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YnNjcmlwdGlvbjsKKyAgICAgICAgc3Vic2NyaXB0aW9uID0gZ2V0VXNlcigpLmZpbmRTdWJzY3JpcHRpb24oaG9zdCk7CisgICAgICAgIHJldHVybiBzdWJzY3JpcHRpb247CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+T2J0YWluIHVTRVIgU3VwcG9ydCBmb3IgdGhlIGxvY2FsIEhvc3QgcHJvcGVydHkuPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD5Vc3VhbGx5LCB0aGUgaG9zdCBwcm9wZXJ0eSB3aWxsIGJlIHNldCBmcm9tIHRoZSBjbGllbnQgcmVxdWVzdCwKKyAgICAgKiBiZWNhdXNlIGl0IHdhcyBlbWJlZGRlZCBpbiBhIGxpbmsgdG8gdGhlIFN1YmNyaXB0aW9uIGFjdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU3VwcG9ydCBvciBudWxsIGlmIG5vdCBmb3VuZAorICAgICAqLworICAgIHB1YmxpYyBTdWJzY3JpcHRpb24gZmluZFN1YnNjcmlwdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGZpbmRTdWJzY3JpcHRpb24oZ2V0SG9zdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIGEgInRlbXBvcmFyeSIgVXNlciBTdXBwb3J0IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvCisgICAgICogY2FwdHVyZSBpbnB1dCB2YWx1ZXMuPC9wPgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNyZWF0ZUlucHV0U3Vic2NyaXB0aW9uKCkgeworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gbmV3IE1lbW9yeVN1YnNjcmlwdGlvbihnZXRVc2VyKCksIG51bGwpOworICAgICAgICBzZXRTdWJzY3JpcHRpb24oc3ViKTsKKyAgICAgICAgc2V0SG9zdChzdWIuZ2V0SG9zdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIG5ldyBVc2VyIFN1cHBvcnQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gaG9zdCwgb3IgbnVsbCBpZgorICAgICAqIHRoZSBob3N0IGlzIG5vdCB1bmlxdWUuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGhvc3QKKyAgICAgKiBAcmV0dXJuIE5ldyBVc2VyIFN1cHBvcnQgb2JqZWN0IG9yIG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgU3Vic2NyaXB0aW9uIGNyZWF0ZVN1YnNjcmlwdGlvbihTdHJpbmcgaG9zdCkgeworCisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWI7CisKKyAgICAgICAgc3ViID0gZmluZFN1YnNjcmlwdGlvbihob3N0KTsKKworICAgICAgICBpZiAobnVsbCAhPSBzdWIpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FIC0gbG9jYWxpemF0aW9uIC0gImVycm9yLmhvc3QudW5pcXVlIikKKyAgICAgICAgICAgIGFkZEZpZWxkRXJyb3IoQ29uc3RhbnRzLkhPU1QsICJUaGF0IGhvc3RuYW1lIGlzIGFscmVhZHkgZGVmaW5lZCIpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZ2V0VXNlcigpLmNyZWF0ZVN1YnNjcmlwdGlvbihob3N0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5DcmVhdGUgYSBuZXcgU3VwcG9ydCBmcm9tIHRoZSBjdXJyZW50IFN1cHBvcnQgb2JqZWN0LAorICAgICAqIG1ha2luZyB0aGUgbmV3IFN1cHBvcnQgdGhlIGN1cnJlbnQgU3VwcG9ydC4gPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD5Vc3VhbGx5LCB0aGUgImN1cnJlbnQiIFN1cHBvcnQgaXMgYSB0ZW1wb3Jhcnkgb2JqZWN0IGJlaW5nIHVzZWQKKyAgICAgKiB0byBjYXB0dXJlIGlucHV0IHZhbHVlcy48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gaG9zdAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvcHlTdWJzY3JpcHRpb24oU3RyaW5nIGhvc3QpIHsKKyAgICAgICAgU3Vic2NyaXB0aW9uIGlucHV0ID0gZ2V0U3Vic2NyaXB0aW9uKCk7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIgPSBjcmVhdGVTdWJzY3JpcHRpb24oaG9zdCk7CisgICAgICAgIGlmIChudWxsICE9IHN1YikgeworICAgICAgICAgICAgQmVhblV0aWxzLnNldFZhbHVlcyhzdWIsIGlucHV0LCBudWxsKTsKKyAgICAgICAgICAgIHNldFN1YnNjcmlwdGlvbihzdWIpOworICAgICAgICAgICAgc2V0SG9zdChzdWIuZ2V0SG9zdCgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkRlbGV0ZSB0aGUgY3VycmVudCBTdXBwb3J0IG9iamVjdCBmcm9tIHRoZSBkYXRhYmFzZS48L3A+CisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlU3Vic2NyaXB0aW9uKCkgeworICAgICAgICBnZXRVc2VyKCkucmVtb3ZlU3Vic2NyaXB0aW9uKGdldFN1YnNjcmlwdGlvbigpKTsKKyAgICAgICAgZ2V0U2Vzc2lvbigpLnJlbW92ZShDb25zdGFudHMuU1VCU0NSSVBUSU9OX0tFWSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSBNYWlsU2VydmVyIEhvc3QgZm9yIGN1cnJlbnQgVXNlciBTdXBwb3J0LjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gTWFpbFNlcnZlciBIb3N0IGZvciBjdXJyZW50IFVzZXIgU3VwcG9ydAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3Vic2NyaXB0aW9uSG9zdCgpIHsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YiA9IGdldFN1YnNjcmlwdGlvbigpOworICAgICAgICBpZiAobnVsbCA9PSBzdWIpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdWIuZ2V0SG9zdCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL01haW5NZW51LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9NYWluTWVudS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmYTVlNmMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9NYWluTWVudS5qYXZhCkBAIC0wLDAgKzEsOSBAQAorcGFja2FnZSBtYWlscmVhZGVyMjsNCisNCisvKioNCisgKiA8cD4NCisgKiBQcm92aWRlIGFjY2VzcyB0byBNYWlscmVhZGVyU3VwcG9ydCBwcm9wZXJ0aWVzLg0KKyAqIDwvcD4NCisgKi8NCitwdWJsaWMgY2xhc3MgTWFpbk1lbnUgZXh0ZW5kcyBNYWlscmVhZGVyU3VwcG9ydCB7DQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL1dlbGNvbWUtYWN0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL1dlbGNvbWUtYWN0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTc3ZDA3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvV2VsY29tZS1hY3Rpb24ueG1sCkBAIC0wLDAgKzEsMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/Pg0KKzwhRE9DVFlQRSBzdHJ1dHMgUFVCTElDDQorICAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAyLjAvL0VOIg0KKyAgICAgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy0yLjAuZHRkIj4NCisNCis8c3RydXRzPg0KKyAgICA8cGFja2FnZSBuYW1lPSJXZWxjb21lIiBuYW1lc3BhY2U9Ii8iIGV4dGVuZHM9Ik1haWxyZWFkZXJTdXBwb3J0Ij4NCisNCisgICAgICAgIDxhY3Rpb24gbmFtZT0iV2VsY29tZSIgY2xhc3M9Im1haWxyZWFkZXIyLldlbGNvbWUiPg0KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL1dlbGNvbWUuanNwPC9yZXN1bHQ+DQorICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPg0KKyAgICAgICAgPC9hY3Rpb24+DQorDQorICAgIDwvcGFja2FnZT4NCis8L3N0cnV0cz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9XZWxjb21lLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9XZWxjb21lLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U1NDI2MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL1dlbGNvbWUuamF2YQpAQCAtMCwwICsxLDMxIEBACitwYWNrYWdlIG1haWxyZWFkZXIyOworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuUHJlcGFyYWJsZTsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5Nb2RlbERyaXZlbjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworLyoqCisgKiBWZXJpZnkgdGhhdCBlc3NlbnRpYWwgcmVzb3VyY2VzIGFyZSBhdmFpbGFibGUuCisgKi8KK3B1YmxpYyBjbGFzcyBXZWxjb21lIGV4dGVuZHMgTWFpbHJlYWRlclN1cHBvcnQgIHsKKworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHsKKworICAgICAgICAvLyBDb25maXJtIG1lc3NhZ2UgcmVzb3VyY2VzIGxvYWRlZAorICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IGdldFRleHQoQ29uc3RhbnRzLkVSUk9SX0RBVEFCQVNFX01JU1NJTkcpOworICAgICAgICBpZiAoQ29uc3RhbnRzLkVSUk9SX0RBVEFCQVNFX01JU1NJTkcuZXF1YWxzKG1lc3NhZ2UpKSB7CisgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihDb25zdGFudHMuRVJST1JfTUVTU0FHRVNfTk9UX0xPQURFRCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb25maXJtIGRhdGFiYXNlIGxvYWRlZAorICAgICAgICBpZiAobnVsbCA9PSBnZXREYXRhYmFzZSgpKSB7CisgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihDb25zdGFudHMuRVJST1JfREFUQUJBU0VfTk9UX0xPQURFRCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaGFzRXJyb3JzKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBFUlJPUjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvbG9nb24vSW5wdXQuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL2xvZ29uL0lucHV0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTk3YmZhYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL2xvZ29uL0lucHV0LmphdmEKQEAgLTAsMCArMSw5IEBACitwYWNrYWdlIG1haWxyZWFkZXIyLmxvZ29uOw0KKw0KK2ltcG9ydCBtYWlscmVhZGVyMi5NYWlscmVhZGVyU3VwcG9ydDsNCisNCisvKioNCisgKiA8cD5TdHViIGNsYXNzIGZvciBsb2dpbi9JbnB1dC48L3A+DQorICovDQorcHVibGljIGNsYXNzIElucHV0IGV4dGVuZHMgTWFpbHJlYWRlclN1cHBvcnQgew0KK30NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9sb2dvbi9SZXRyaWV2ZS12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL2xvZ29uL1JldHJpZXZlLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhMDRjNzYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9sb2dvbi9SZXRyaWV2ZS12YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4NCisNCis8dmFsaWRhdG9ycz4NCisgICAgPGZpZWxkIG5hbWU9InVzZXJuYW1lIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IudXNlcm5hbWUucmVxdWlyZWQiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKyAgICA8ZmllbGQgbmFtZT0icGFzc3dvcmQiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5wYXNzd29yZC5yZXF1aXJlZCIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorPC92YWxpZGF0b3JzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL2xvZ29uL1JldHJpZXZlLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9sb2dvbi9SZXRyaWV2ZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4ZDc4ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9sb2dvbi9SZXRyaWV2ZS5qYXZhCkBAIC0wLDAgKzEsNDYgQEAKKy8qDQorICogJElkOiBMb2dvbkFjdGlvbi5qYXZhIDM2MDQ0MiAyMDA1LTEyLTMxIDIwOjEwOjA0WiBodXN0ZWQgJA0KKyAqDQorICogQ29weXJpZ2h0IDIwMDAtMjAwNCBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbg0KKyAqDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqDQorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KKw0KK3BhY2thZ2UgbWFpbHJlYWRlcjIubG9nb247DQorDQoraW1wb3J0IG1haWxyZWFkZXIyLk1haWxyZWFkZXJTdXBwb3J0Ow0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbjsNCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOw0KKw0KKy8qKg0KKyAqIDxwPiBWYWxpZGF0ZSBhIHVzZXIgbG9nb24uIDwvcD4NCisgKi8NCitwdWJsaWMgZmluYWwgY2xhc3MgUmV0cmlldmUgZXh0ZW5kcyBNYWlscmVhZGVyU3VwcG9ydCB7DQorDQorICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHRocm93cyBFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24gew0KKw0KKyAgICAgICAgVXNlciB1c2VyID0gZmluZFVzZXIoZ2V0VXNlcm5hbWUoKSwgZ2V0UGFzc3dvcmQoKSk7DQorDQorICAgICAgICBpZiAodXNlciAhPSBudWxsKSB7DQorICAgICAgICAgICAgc2V0VXNlcih1c2VyKTsNCisgICAgICAgIH0NCisNCisgICAgICAgIGlmIChoYXNFcnJvcnMoKSkgew0KKyAgICAgICAgICAgIHJldHVybiBJTlBVVDsNCisgICAgICAgIH0NCisNCisgICAgICAgIHJldHVybiBTVUNDRVNTOw0KKw0KKyAgICB9DQorDQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9DcmVhdGUtdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9yZWdpc3RyYXRpb24vQ3JlYXRlLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjZjI3N2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9yZWdpc3RyYXRpb24vQ3JlYXRlLXZhbGlkYXRpb24ueG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIiAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLXZhbGlkYXRvci0xLjAuMi5kdGQiPg0KKw0KKzx2YWxpZGF0b3JzPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0icGFzc3dvcmQiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5wYXNzd29yZC5yZXF1aXJlZCIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InN0cmluZ2xlbmd0aCI+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9InRyaW0iPnRydWU8L3BhcmFtPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5MZW5ndGgiPjQ8L3BhcmFtPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtYXhMZW5ndGgiPjEwPC9wYXJhbT4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9ycy5yYW5nZSIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorICAgIDxmaWVsZCBuYW1lPSJwYXNzd29yZDIiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5wYXNzd29yZDIucmVxdWlyZWQiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKyAgICA8dmFsaWRhdG9yIHR5cGU9ImV4cHJlc3Npb24iPg0KKyAgICAgICAgPHBhcmFtIG5hbWU9ImV4cHJlc3Npb24iPnBhc3N3b3JkIGVxIHBhc3N3b3JkMjwvcGFyYW0+DQorICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnBhc3N3b3JkLm1hdGNoIi8+DQorICAgIDwvdmFsaWRhdG9yPg0KKw0KKzwvdmFsaWRhdG9ycz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9yZWdpc3RyYXRpb24vQ3JlYXRlLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9yZWdpc3RyYXRpb24vQ3JlYXRlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTNmZGFkOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9DcmVhdGUuamF2YQpAQCAtMCwwICsxLDM3IEBACitwYWNrYWdlIG1haWxyZWFkZXIyLnJlZ2lzdHJhdGlvbjsNCisNCitpbXBvcnQgbWFpbHJlYWRlcjIuQ29uc3RhbnRzOw0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7DQorDQorLyoqDQorICogPHA+SW5zZXJ0IG5ldyB1c2VyLCBwcm92aWRpbmcgZXh0cmEgdmFsaWRhdGlvbi48L3A+DQorICogPHAvPg0KKyAqIDxwPihPbiBhbiB1cGRhdGUsIHRoZSBwYXNzd29yZCBjaGFuZ2UgaXMgb3B0aW9uYWwuKTwvcD4NCisgKi8NCitwdWJsaWMgZmluYWwgY2xhc3MgQ3JlYXRlIGV4dGVuZHMgVXBkYXRlIHsNCisNCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkNCisgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9uIHsNCisNCisgICAgICAgIC8vIHRydXN0IGJ1dCB2ZXJpZnkNCisgICAgICAgIGJvb2xlYW4gY3JlYXRpbmcgPSBDb25zdGFudHMuQ1JFQVRFLmVxdWFscyhnZXRUYXNrKCkpOw0KKyAgICAgICAgY3JlYXRpbmcgPSBjcmVhdGluZyAmJiBpc0NyZWF0aW5nKCk7DQorICAgICAgICBpZiAoIWNyZWF0aW5nKSB7DQorICAgICAgICAgICAgYWRkQWN0aW9uRXJyb3IoInJlZ2lzdHJhdGlvbi9DcmVhdGU6ICIpOw0KKyAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKENvbnN0YW50cy5FUlJPUl9JTlZBTElEX1dPUktGTE9XKTsNCisgICAgICAgICAgICByZXR1cm4gRVJST1I7DQorICAgICAgICB9DQorDQorICAgICAgICBVc2VyIHVzZXIgPSBmaW5kVXNlcihnZXRVc2VybmFtZSgpLCBnZXRQYXNzd29yZCgpKTsNCisgICAgICAgIGJvb2xlYW4gaGF2ZVVzZXIgPSAodXNlciAhPSBudWxsKTsNCisNCisgICAgICAgIGlmIChoYXZlVXNlcikgew0KKyAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKGdldFRleHQoImVycm9yLnVzZXJuYW1lLnVuaXF1ZSIpKTsNCisgICAgICAgICAgICByZXR1cm4gSU5QVVQ7DQorICAgICAgICB9DQorDQorICAgICAgICBjb3B5VXNlcihnZXRVc2VybmFtZSgpLCBnZXRQYXNzd29yZCgpKTsNCisNCisgICAgICAgIHJldHVybiBTVUNDRVNTOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9JbnB1dC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvcmVnaXN0cmF0aW9uL0lucHV0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAzNDM2NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9JbnB1dC5qYXZhCkBAIC0wLDAgKzEsMzEgQEAKK3BhY2thZ2UgbWFpbHJlYWRlcjIucmVnaXN0cmF0aW9uOw0KKw0KK2ltcG9ydCBtYWlscmVhZGVyMi5Db25zdGFudHM7DQorDQorLyoqDQorICogPHA+IFJldHJpZXZlIFVzZXIgb2JqZWN0IHRvIGVkaXQgb3IgbnVsbCBpZiBVc2VyIGRvZXMgbm90IGV4aXN0LiA8L3A+DQorICovDQorcHVibGljIGNsYXNzIElucHV0IGV4dGVuZHMgU3VwcG9ydCB7DQorDQorICAgIC8qKg0KKyAgICAgKiA8cD4gUmV0cmlldmUgVXNlciBvYmplY3QgdG8gZWRpdCBvciBudWxsIGlmIFVzZXIgZG9lcyBub3QgZXhpc3QuIDwvcD4NCisgICAgICoNCisgICAgICogQHJldHVybiBUaGUgIlN1Y2Nlc3MiIHJlc3VsdCBmb3IgdGhpcyBtYXBwaW5nDQorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIG9uIGFueSBlcnJvcg0KKyAgICAgKi8NCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorDQorICAgICAgICBpZiAoaXNDcmVhdGluZygpKSB7DQorICAgICAgICAgICAgY3JlYXRlSW5wdXRVc2VyKCk7DQorICAgICAgICAgICAgc2V0VGFzayhDb25zdGFudHMuQ1JFQVRFKTsNCisgICAgICAgIH0gZWxzZSB7DQorICAgICAgICAgICAgc2V0VGFzayhDb25zdGFudHMuRURJVCk7DQorICAgICAgICAgICAgc2V0VXNlcm5hbWUoZ2V0VXNlcigpLmdldFVzZXJuYW1lKCkpOw0KKyAgICAgICAgICAgIHNldFBhc3N3b3JkKGdldFVzZXIoKS5nZXRQYXNzd29yZCgpKTsNCisgICAgICAgICAgICBzZXRQYXNzd29yZDIoZ2V0VXNlcigpLmdldFBhc3N3b3JkKCkpOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7DQorICAgIH0NCisNCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvcmVnaXN0cmF0aW9uL1N1cHBvcnQuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9TdXBwb3J0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDMxNjMxNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9TdXBwb3J0LmphdmEKQEAgLTAsMCArMSwyMCBAQAorcGFja2FnZSBtYWlscmVhZGVyMi5yZWdpc3RyYXRpb247DQorDQoraW1wb3J0IG1haWxyZWFkZXIyLk1haWxyZWFkZXJTdXBwb3J0Ow0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7DQorDQorLyoqDQorICogPHA+QmFzZSBjbGFzcyB0byBzdG9yZSBzaGFyZWQgbWV0aG9kcy48L3A+DQorICovDQorcHVibGljIGNsYXNzIFN1cHBvcnQgZXh0ZW5kcyBNYWlscmVhZGVyU3VwcG9ydCB7DQorDQorICAgIC8qKg0KKyAgICAgKiA8cD5Eb3VibGUgY2hlY2sgdGhhdCB0aGVyZSBpcyBub3QgYSB2YWxpZCBVc2VyIGxvZ29uLiA8L3A+DQorICAgICAqDQorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGVyZSBpcyBub3QgYSB2YWxpZCBVc2VyIGxvZ29uDQorICAgICAqLw0KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0NyZWF0aW5nKCkgew0KKyAgICAgICAgVXNlciB1c2VyID0gZ2V0VXNlcigpOw0KKyAgICAgICAgcmV0dXJuIChudWxsID09IHVzZXIpIHx8IChudWxsID09IHVzZXIuZ2V0RGF0YWJhc2UoKSk7DQorICAgIH0NCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvcmVnaXN0cmF0aW9uL1VwZGF0ZS12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9VcGRhdGUtdmFsaWRhdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDRkNjZiYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9VcGRhdGUtdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+DQorDQorPHZhbGlkYXRvcnM+DQorDQorICAgIDxmaWVsZCBuYW1lPSJ1c2VybmFtZSI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIi8+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9InVzZXIuZnVsbE5hbWUiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5mdWxsTmFtZS5yZXF1aXJlZCIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorICAgIDxmaWVsZCBuYW1lPSJ1c2VyLmZyb21BZGRyZXNzIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IuZnJvbUFkZHJlc3MucmVxdWlyZWQiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJlbWFpbCI+DQorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvcnMuZW1haWwiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0idXNlci5yZXBseVRvQWRkcmVzcyI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9ImVtYWlsIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9ycy5lbWFpbCIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorPC92YWxpZGF0b3JzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9VcGRhdGUuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9VcGRhdGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2MxOWIyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvcmVnaXN0cmF0aW9uL1VwZGF0ZS5qYXZhCkBAIC0wLDAgKzEsNDggQEAKK3BhY2thZ2UgbWFpbHJlYWRlcjIucmVnaXN0cmF0aW9uOw0KKw0KK2ltcG9ydCBtYWlscmVhZGVyMi5Db25zdGFudHM7DQorDQorLyoqDQorICogPHA+IFVwZGF0ZSBhIFVzZXIgb2JqZWN0IHRvIHRoZSBwZXJzaXN0ZW50IHN0b3JlLiA8L3A+DQorICovDQorcHVibGljIGNsYXNzIFVwZGF0ZSBleHRlbmRzIFN1cHBvcnQgew0KKw0KKw0KKyAgICANCisNCisgICAgcHJpdmF0ZSBTdHJpbmcgZml4TnVsbChTdHJpbmcgdmFsdWUpIHsNCisgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gbnVsbDsNCisgICAgICAgIFN0cmluZyBidWZmZXIgPSB2YWx1ZS50cmltKCk7DQorICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCgpID09IDApIHJldHVybiBudWxsOw0KKyAgICAgICAgcmV0dXJuIGJ1ZmZlcjsNCisgICAgfQ0KKw0KKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKQ0KKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24gew0KKw0KKyAgICAgICAgYm9vbGVhbiBjcmVhdGluZyA9IENvbnN0YW50cy5DUkVBVEUuZXF1YWxzKGdldFRhc2soKSk7DQorICAgICAgICBjcmVhdGluZyA9IGNyZWF0aW5nICYmIGlzQ3JlYXRpbmcoKTsgLy8gdHJ1c3QgYnV0IHZlcmlmeQ0KKyAgICAgICAgaWYgKGNyZWF0aW5nKSB7DQorICAgICAgICAgICAgYWRkQWN0aW9uRXJyb3IoInJlZ2lzdHJhdGlvbi9VcGRhdGU6ICIpOw0KKyAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKENvbnN0YW50cy5FUlJPUl9JTlZBTElEX1dPUktGTE9XKTsgICAgICAgICAgICANCisgICAgICAgICAgICByZXR1cm4gRVJST1I7DQorICAgICAgICB9DQorICAgICAgICAvLyBGSVhNRTogQW55IHdheSB0byBjYWxsIHRoZSBSZWdpc3JhdGlvblNhdmUgdmFsaWRhdG9ycyBmcm9tIGhlcmU/DQorICAgICAgICBTdHJpbmcgbmV3UGFzc3dvcmQgPSBmaXhOdWxsKGdldFBhc3N3b3JkKCkpOw0KKyAgICAgICAgU3RyaW5nIGNvbmZpcm1QYXNzd29yZCA9IGZpeE51bGwoZ2V0UGFzc3dvcmQyKCkpOw0KKyAgICAgICAgaWYgKG5ld1Bhc3N3b3JkICE9IG51bGwpIHsNCisgICAgICAgICAgICBib29sZWFuIG1hdGNoZXMgPSAoKGNvbmZpcm1QYXNzd29yZCAhPSBudWxsKQ0KKyAgICAgICAgICAgICAgICAgICAgJiYgKGNvbmZpcm1QYXNzd29yZC5lcXVhbHMobmV3UGFzc3dvcmQpKSk7DQorICAgICAgICAgICAgaWYgKG1hdGNoZXMpIHsNCisgICAgICAgICAgICAgICAgZ2V0VXNlcigpLnNldFBhc3N3b3JkKG5ld1Bhc3N3b3JkKTsNCisgICAgICAgICAgICB9IGVsc2Ugew0KKyAgICAgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihnZXRUZXh0KCJlcnJvci5wYXNzd29yZC5tYXRjaCIpKTsNCisgICAgICAgICAgICAgICAgcmV0dXJuIElOUFVUOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIH0NCisNCisgICAgICAgIHNhdmVVc2VyKCk7DQorDQorICAgICAgICByZXR1cm4gU1VDQ0VTUzsNCisgICAgfQ0KK30NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9zdWJzY3JpcHRpb24vRGVsZXRlLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9zdWJzY3JpcHRpb24vRGVsZXRlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODkzOTE2ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9EZWxldGUuamF2YQpAQCAtMCwwICsxLDE1IEBACitwYWNrYWdlIG1haWxyZWFkZXIyLnN1YnNjcmlwdGlvbjsNCisNCitpbXBvcnQgbWFpbHJlYWRlcjIuQ29uc3RhbnRzOw0KKw0KKy8qKg0KKyAqIDxwPlByZXBhcmUgdG8gcHJlc2VudCBhIGNvbmZpcm1hdGlvbiBwYWdlIGJlZm9yZSByZW1vdmluZw0KKyAqIHN1YnNjcmlwdGlvbi48L3A+DQorICovDQorcHVibGljIGNsYXNzIERlbGV0ZSBleHRlbmRzIEVkaXQgew0KKw0KKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisgICAgICAgIHNldFRhc2soQ29uc3RhbnRzLkRFTEVURSk7DQorICAgICAgICByZXR1cm4gZmluZCgpOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9FZGl0LXZhbGlkYXRpb24ueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvc3Vic2NyaXB0aW9uL0VkaXQtdmFsaWRhdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY5MDNjMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9FZGl0LXZhbGlkYXRpb24ueG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIiAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLXZhbGlkYXRvci0xLjAuMi5kdGQiPg0KKw0KKzx2YWxpZGF0b3JzPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0iaG9zdCI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLmhvc3QucmVxdWlyZWQiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKzwvdmFsaWRhdG9ycz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9zdWJzY3JpcHRpb24vRWRpdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvc3Vic2NyaXB0aW9uL0VkaXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYmFmM2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvc3Vic2NyaXB0aW9uL0VkaXQuamF2YQpAQCAtMCwwICsxLDE2IEBACitwYWNrYWdlIG1haWxyZWFkZXIyLnN1YnNjcmlwdGlvbjsNCisNCitpbXBvcnQgbWFpbHJlYWRlcjIuQ29uc3RhbnRzOw0KKw0KKy8qKg0KKyAqIDxwPlByZXBhcmUgdG8gZWRpdCBVc2VyIFN1cHBvcnQuPC9wPg0KKyAqLw0KK3B1YmxpYyBjbGFzcyBFZGl0IGV4dGVuZHMgU3VwcG9ydCB7DQorDQorICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24gew0KKyAgICAgICAgc2V0VGFzayhDb25zdGFudHMuRURJVCk7DQorICAgICAgICByZXR1cm4gZmluZCgpOw0KKyAgICB9DQorDQorDQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9JbnB1dC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvc3Vic2NyaXB0aW9uL0lucHV0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA1M2RkNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9JbnB1dC5qYXZhCkBAIC0wLDAgKzEsMTcgQEAKK3BhY2thZ2UgbWFpbHJlYWRlcjIuc3Vic2NyaXB0aW9uOw0KKw0KK2ltcG9ydCBtYWlscmVhZGVyMi5Db25zdGFudHM7DQorDQorLyoqDQorICogPHA+U2V0dXAgYSB0ZW1wb3JhcnkgVXNlciBTdXBwb3J0IG9iamVjdCB0byBjYXB0dXJlIGlucHV0DQorICogdmFsdWVzLjwvcD4NCisgKi8NCitwdWJsaWMgY2xhc3MgSW5wdXQgZXh0ZW5kcyBTdXBwb3J0IHsNCisNCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgew0KKyAgICAgICAgY3JlYXRlSW5wdXRTdWJzY3JpcHRpb24oKTsNCisgICAgICAgIHNldFRhc2soQ29uc3RhbnRzLkNSRUFURSk7DQorICAgICAgICByZXR1cm4gU1VDQ0VTUzsNCisgICAgfQ0KKw0KK30NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9zdWJzY3JpcHRpb24vU2F2ZS12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9TYXZlLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmMmY2ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9zdWJzY3JpcHRpb24vU2F2ZS12YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4NCisNCis8dmFsaWRhdG9ycz4NCisNCisgICAgPGZpZWxkIG5hbWU9InN1YnNjcmlwdGlvbi51c2VybmFtZSI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIi8+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9InN1YnNjcmlwdGlvbi5wYXNzd29yZCI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnBhc3N3b3JkLnJlcXVpcmVkIi8+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9InN1YnNjcmlwdGlvbi50eXBlIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IudHlwZS5pbnZhbGlkIi8+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCis8L3ZhbGlkYXRvcnM+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvc3Vic2NyaXB0aW9uL1NhdmUuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9TYXZlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI0ZTUzMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9TYXZlLmphdmEKQEAgLTAsMCArMSwzOCBAQAorcGFja2FnZSBtYWlscmVhZGVyMi5zdWJzY3JpcHRpb247DQorDQoraW1wb3J0IG1haWxyZWFkZXIyLkNvbnN0YW50czsNCisNCisvKioNCisgKiA8cD4gV29ya2Fyb3VuZCBjbGFzcy4gU3VibWl0dGluZyB0byBhbiBhbGlhcyBkb2Vzbid0IHNlZW0gdG8gd29yay4gPC9wPg0KKyAqLw0KK3B1YmxpYyBmaW5hbCBjbGFzcyBTYXZlIGV4dGVuZHMgRWRpdCB7DQorDQorICAgIHB1YmxpYyB2b2lkIHByZXBhcmUoKSB7DQorICAgICAgICBzdXBlci5wcmVwYXJlKCk7DQorICAgICAgICAvLyBjaGVja2JveCB3b3JrYXJvdW5kDQorICAgICAgICBnZXRTdWJzY3JpcHRpb24oKS5zZXRBdXRvQ29ubmVjdChmYWxzZSk7DQorICAgIH0NCisNCisgICAgLyoqDQorICAgICAqIDxwPiBFeGFtaW5lIHRoZSBUYXNrIHByb3BlcnR5IGFuZCBERUxFVEUsIENSRUFURSwgb3Igc2F2ZSB0aGUgVXNlcg0KKyAgICAgKiBTdXBwb3J0LCBhcyBhcHByb3ByaWF0ZS4gPC9wPg0KKyAgICAgKg0KKyAgICAgKiBAcmV0dXJuIFNVQ0NFU1MNCisgICAgICogQHRocm93cyBFeGNlcHRpb24gb24gYSBkYXRhYmFzZSBlcnJvcg0KKyAgICAgKi8NCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorDQorICAgICAgICBpZiAoQ29uc3RhbnRzLkRFTEVURS5lcXVhbHMoZ2V0VGFzaygpKSkgew0KKyAgICAgICAgICAgIHJlbW92ZVN1YnNjcmlwdGlvbigpOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgaWYgKENvbnN0YW50cy5DUkVBVEUuZXF1YWxzKGdldFRhc2soKSkpIHsNCisgICAgICAgICAgICBjb3B5U3Vic2NyaXB0aW9uKGdldEhvc3QoKSk7DQorICAgICAgICB9DQorDQorICAgICAgICBpZiAoaGFzRXJyb3JzKCkpIHJldHVybiBJTlBVVDsNCisNCisgICAgICAgIHNhdmVVc2VyKCk7DQorICAgICAgICByZXR1cm4gU1VDQ0VTUzsNCisgICAgfQ0KK30NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9zdWJzY3JpcHRpb24vU3VwcG9ydC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvc3Vic2NyaXB0aW9uL1N1cHBvcnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzJmMjY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvc3Vic2NyaXB0aW9uL1N1cHBvcnQuamF2YQpAQCAtMCwwICsxLDY5IEBACitwYWNrYWdlIG1haWxyZWFkZXIyLnN1YnNjcmlwdGlvbjsNCisNCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuUHJlcGFyYWJsZTsNCitpbXBvcnQgbWFpbHJlYWRlcjIuTWFpbHJlYWRlclN1cHBvcnQ7DQoraW1wb3J0IG1haWxyZWFkZXIyLkNvbnN0YW50czsNCisNCitpbXBvcnQgamF2YS51dGlsLkxpbmtlZEhhc2hNYXA7DQoraW1wb3J0IGphdmEudXRpbC5NYXA7DQorDQorLyoqDQorICogPHA+IFByb3ZpZGUgYW4gRWRpdCBtZXRob2QgZm9yIHJldHJpZXZpbmcgYW4gZXhpc3Rpbmcgc3Vic2NyaXB0aW9uLCBhbmQgYQ0KKyAqIFNhdmUgbWV0aG9kIGZvciB1cGRhdGluZyBvciBpbnNlcnRpbmcgYSBzdWJzY3JpcHRpb24uIDwvcD4NCisgKi8NCitwdWJsaWMgY2xhc3MgU3VwcG9ydCBleHRlbmRzIE1haWxyZWFkZXJTdXBwb3J0DQorICAgICAgICBpbXBsZW1lbnRzIFByZXBhcmFibGUgew0KKw0KKyAgICAvKioNCisgICAgICogPHA+RmllbGQgdG8gc3RvcmUgbGlzdCBvZiBNYWlsU2VydmVyIHR5cGVzPC9wPg0KKyAgICAgKi8NCisgICAgcHJpdmF0ZSBNYXAgdHlwZXMgPSBudWxsOw0KKw0KKyAgICAvKioNCisgICAgICogPHA+UHJvdmlkZSB0aGUgbGlzdCBvZiBNYWlsU2VydmVyIHR5cGVzLjwvcD4NCisgICAgICoNCisgICAgICogQHJldHVybiBMaXN0IG9mIE1haWxTZXJ2ZXIgdHlwZXMNCisgICAgICovDQorICAgIHB1YmxpYyBNYXAgZ2V0VHlwZXMoKSB7DQorICAgICAgICByZXR1cm4gdHlwZXM7DQorICAgIH0NCisNCisgICAgLyoqDQorICAgICAqIDxwPlNldHVwIHRoZSBNYWlsZXJTZXJ2ZXIgdHlwZXMgYW5kIHNldCB0aGUgbG9jYWwgSG9zdCBwcm9wZXJ0eSBmcm9tDQorICAgICAqIHRoZSBVc2VyIFN1cHBvcnQgKGlmIGFueSkuIDwvcD4NCisgICAgICovDQorICAgIHB1YmxpYyB2b2lkIHByZXBhcmUoKSB7DQorDQorICAgICAgICBNYXAgbSA9IG5ldyBMaW5rZWRIYXNoTWFwKCk7DQorICAgICAgICBtLnB1dCgiaW1hcCIsICJJTUFQIFByb3RvY29sIik7DQorICAgICAgICBtLnB1dCgicG9wMyIsICJQT1AzIFByb3RvY29sIik7DQorICAgICAgICB0eXBlcyA9IG07DQorDQorICAgICAgICBzZXRIb3N0KGdldFN1YnNjcmlwdGlvbkhvc3QoKSk7DQorDQorICAgIH0NCisNCisgICAgLyoqDQorICAgICAqIDxwPkxvYWQgVXNlciBTdXBwb3J0IGZvciB0aGUgbG9jYWwgSG9zdCBwcm9wZXJ0eS48L3A+DQorICAgICAqIDxwLz4NCisgICAgICogPHA+VXN1YWxseSwgdGhlIEhvc3QgaXMgYmVpbmcgc2V0IGZyb20gdGhlIHJlcXVlc3QgYnkgYSBsaW5rIHRvIGFuIEVkaXQNCisgICAgICogb3IgRGVsZXRlIHRhc2suPC9wPg0KKyAgICAgKg0KKyAgICAgKiBAcmV0dXJuIElOUFVUIG9yIEVycm9yLCBpZiBTdXBwb3J0IGlzIG5vdCBmb3VuZA0KKyAgICAgKi8NCisgICAgcHVibGljIFN0cmluZyBmaW5kKCkgew0KKw0KKyAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5TdWJzY3JpcHRpb24NCisgICAgICAgICAgICAgICAgc3ViID0gZmluZFN1YnNjcmlwdGlvbigpOw0KKw0KKyAgICAgICAgaWYgKHN1YiA9PSBudWxsKSB7DQorICAgICAgICAgICAgYWRkQWN0aW9uRXJyb3IoImZpbmQgKFN1YnNjcmlwdGlvbik6ICIpOw0KKyAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKENvbnN0YW50cy5FUlJPUl9JTlZBTElEX1dPUktGTE9XKTsgICAgICAgICAgICANCisgICAgICAgICAgICByZXR1cm4gRVJST1I7DQorICAgICAgICB9DQorDQorICAgICAgICBzZXRTdWJzY3JpcHRpb24oc3ViKTsNCisNCisgICAgICAgIHJldHVybiBTVUNDRVNTOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvYWx0ZXJuYXRlLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vcmVzb3VyY2VzL2FsdGVybmF0ZS5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZjRkZDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vcmVzb3VyY2VzL2FsdGVybmF0ZS5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMyBAQAorcGFzc3dvcmQ9RW50ZXIgeW91ciBQYXNzd29yZCBoZXJlID09Pgorc3RydXRzLmxvZ28ucGF0aD0vc3RydXRzLXBvd2VyLmdpZgorc3RydXRzLmxvZ28uYWx0PVBvd2VyZWQgYnkgU3RydXRzCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vcmVzb3VyY2VzL2FsdGVybmF0ZV9qYS5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3Jlc291cmNlcy9hbHRlcm5hdGVfamEucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODFhZGM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3Jlc291cmNlcy9hbHRlcm5hdGVfamEucHJvcGVydGllcwpAQCAtMCwwICsxIEBACisucGFzc3dvcmQ9XHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5XHUzMDkyXHU1MTY1XHU1MjliPT0+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uQ29udGV4dC54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vcmVzb3VyY2VzL2FwcGxpY2F0aW9uQ29udGV4dC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk4ZTFkOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvYXBwbGljYXRpb25Db250ZXh0LnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgYmVhbnMgUFVCTElDICItLy9TUFJJTkcvL0RURCBCRUFOLy9FTiIgImh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm9yZy9kdGQvc3ByaW5nLWJlYW5zLmR0ZCI+CisKKzxiZWFucyBkZWZhdWx0LWF1dG93aXJlPSJhdXRvZGV0ZWN0Ij4KKyAgICA8IS0tIGFkZCB5b3VyIHNwcmluZyBiZWFucyBoZXJlIC0tPgorPC9iZWFucz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vcmVzb3VyY2VzL2RhdGFiYXNlLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvZGF0YWJhc2UueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiYzgzM2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vcmVzb3VyY2VzL2RhdGFiYXNlLnhtbApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPScxLjAnPz4KKzxkYXRhYmFzZT4KKyAgICA8dXNlciB1c2VybmFtZT0idXNlciIgZnJvbUFkZHJlc3M9IkpvaG4uVXNlckBzb21ld2hlcmUuY29tIgorICAgICAgICAgIGZ1bGxOYW1lPSJKb2huIFEuIFVzZXIiIHBhc3N3b3JkPSJwYXNzIj4KKyAgICAgICAgPHN1YnNjcmlwdGlvbiBob3N0PSJtYWlsLmhvdG1haWwuY29tIiBhdXRvQ29ubmVjdD0iZmFsc2UiCisgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ9ImJhciIgdHlwZT0icG9wMyIgdXNlcm5hbWU9InVzZXIxMjM0Ij4KKyAgICAgICAgPC9zdWJzY3JpcHRpb24+CisgICAgICAgIDxzdWJzY3JpcHRpb24gaG9zdD0ibWFpbC55YWhvby5jb20iIGF1dG9Db25uZWN0PSJmYWxzZSIgcGFzc3dvcmQ9ImZvbyIKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJpbWFwIiB1c2VybmFtZT0ianF1c2VyIj4KKyAgICAgICAgPC9zdWJzY3JpcHRpb24+CisgICAgPC91c2VyPgorPC9kYXRhYmFzZT4KKyAgICAgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3Jlc291cmNlcy9yZXNvdXJjZXMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvcmVzb3VyY2VzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGJmYWU4MQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvcmVzb3VyY2VzLnByb3BlcnRpZXMKQEAgLTAsMCArMSw5MyBAQAorYnV0dG9uLmNhbmNlbD1DYW5jZWwKK2J1dHRvbi5jb25maXJtPUNvbmZpcm0KK2J1dHRvbi5kb1N1Ym1pdD1ET19TVUJNSVQKK2J1dHRvbi5kb1Jlc2V0PURPX1JFU1VMVAorYnV0dG9uLmRvQ2FuY2VsPW9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi5odG1sLkNBTkNFTAorYnV0dG9uLnJlc2V0PVJlc2V0CitidXR0b24uc2F2ZT1TYXZlCitjaGFuZ2UubWVzc2FnZT1Zb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkLiAgUGxlYXNlIGFzayB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3IgdG8gY2hhbmdlIGl0LgorY2hhbmdlLnRyeT1UcnkgQWdhaW4KK2NoYW5nZS50aXRsZT1QYXNzd29yZCBIYXMgRXhwaXJlZAorZGF0YWJhc2UubG9hZD1DYW5ub3QgbG9hZCBkYXRhYmFzZSBmcm9tIHswfQorZXJyb3IuZGF0YWJhc2UubWlzc2luZz1Vc2VyIGRhdGFiYXNlIGlzIG1pc3NpbmcsIGNhbm5vdCB2YWxpZGF0ZSBsb2dvbiBjcmVkZW50aWFscworZXJyb3IuZnJvbUFkZHJlc3MuZm9ybWF0PUludmFsaWQgZm9ybWF0IGZvciBGcm9tIEFkZHJlc3MKK2Vycm9yLmZyb21BZGRyZXNzLnJlcXVpcmVkPUZyb20gQWRkcmVzcyBpcyByZXF1aXJlZAorZXJyb3IuZnVsbE5hbWUucmVxdWlyZWQ9RnVsbCBOYW1lIGlzIHJlcXVpcmVkCitlcnJvci5ob3N0LnJlcXVpcmVkPU1haWwgU2VydmVyIGlzIHJlcXVpcmVkCitlcnJvci5ub1N1YnNjcmlwdGlvbj1ObyBTdWJzY3JpcHRpb24gYmVhbiBpbiB1c2VyIHNlc3Npb24KK2Vycm9yLnBhc3N3b3JkLmV4cGlyZWQ9WW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZCBmb3IgdXNlcm5hbWUgezB9CitlcnJvci5wYXNzd29yZC5yZXF1aXJlZD1QYXNzd29yZCBpcyByZXF1aXJlZAorZXJyb3IucGFzc3dvcmQyLnJlcXVpcmVkPUNvbmZpcm1hdGlvbiBwYXNzd29yZCBpcyByZXF1aXJlZAorZXJyb3IucGFzc3dvcmQubWF0Y2g9UGFzc3dvcmQgYW5kIGNvbmZpcm1hdGlvbiBwYXNzd29yZCBtdXN0IG1hdGNoCitlcnJvci5wYXNzd29yZC5taXNtYXRjaD1JbnZhbGlkIHVzZXJuYW1lIGFuZC9vciBwYXNzd29yZCwgcGxlYXNlIHRyeSBhZ2FpbgorZXJyb3IucmVwbHlUb0FkZHJlc3MuZm9ybWF0PUludmFsaWQgZm9ybWF0IGZvciBSZXBseSBUbyBBZGRyZXNzCitzdHJ1dHMubWVzc2FnZXMuaW52YWxpZC50b2tlbj1DYW5ub3Qgc3VibWl0IHRoaXMgZm9ybSBvdXQgb2Ygb3JkZXIKK2Vycm9yLnR5cGUuaW52YWxpZD1TZXJ2ZXIgVHlwZSBtdXN0IGJlICdpbWFwJyBvciAncG9wMycKK2Vycm9yLnR5cGUucmVxdWlyZWQ9U2VydmVyIFR5cGUgaXMgcmVxdWlyZWQKK2Vycm9yLnVzZXJuYW1lLnJlcXVpcmVkPVVzZXJuYW1lIGlzIHJlcXVpcmVkCitlcnJvci51c2VybmFtZS51bmlxdWU9VGhhdCB1c2VybmFtZSBpcyBhbHJlYWR5IGluIHVzZSAtIHBsZWFzZSBzZWxlY3QgYW5vdGhlcgorZXJyb3JzLmZvb3Rlcj08L3VsPjxocj4KK2Vycm9ycy5oZWFkZXI9PGgzPjxmb250IGNvbG9yPSJyZWQiPlZhbGlkYXRpb24gRXJyb3I8L2ZvbnQ+PC9oMz48cD5Zb3UgbXVzdCBjb3JyZWN0IHRoZSBmb2xsb3dpbmcgZXJyb3IocykgYmVmb3JlIHByb2NlZWRpbmc6PC9wPjx1bD4KK2Vycm9ycy5wcmVmaXg9PGxpPgorZXJyb3JzLnN1ZmZpeD08L2xpPgorZXJyb3JzLmlvRXhjZXB0aW9uPUkvTyBleGNlcHRpb24gcmVuZGVyaW5nIGVycm9yIG1lc3NhZ2VzOiB7MH0KK2V4cGlyZWQucGFzc3dvcmQ9VXNlciBQYXNzd29yZCBoYXMgZXhwaXJlZCBmb3IgezB9CitoZWFkaW5nLmF1dG9Db25uZWN0PUF1dG8KK2hlYWRpbmcuc3Vic2NyaXB0aW9ucz1DdXJyZW50IFN1YnNjcmlwdGlvbnMKK2hlYWRpbmcuaG9zdD1Ib3N0IE5hbWUKK2hlYWRpbmcudXNlcj1Vc2VyIE5hbWUKK2hlYWRpbmcudHlwZT1TZXJ2ZXIgVHlwZQoraGVhZGluZy5hY3Rpb249QWN0aW9uCitpbmRleC5oZWFkaW5nPU1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbiBPcHRpb25zCitpbmRleC5sb2dvbj1Mb2cgb24gdG8gdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbgoraW5kZXgucmVnaXN0cmF0aW9uPVJlZ2lzdGVyIHdpdGggdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbgoraW5kZXgudGl0bGU9TWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uCitpbmRleC50b3VyPUEgV2Fsa2luZyBUb3VyIG9mIHRoZSBNYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24KK2xpbmtTdWJzY3JpcHRpb24uaW89SS9PIEVycm9yOiB7MH0KK2xpbmtTdWJzY3JpcHRpb24ubm9TdWJzY3JpcHRpb249Tm8gc3Vic2NyaXB0aW9uIHVuZGVyIGF0dHJpYnV0ZSB7MH0KK2xpbmtVc2VyLmlvPUkvTyBFcnJvcjogezB9CitsaW5rVXNlci5ub1VzZXI9Tm8gdXNlciB1bmRlciBhdHRyaWJ1dGUgezB9Citsb2dvbi50aXRsZT1NYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24gLSBMb2dvbgorbWFpbk1lbnUuaGVhZGluZz1NYWluIE1lbnUgT3B0aW9ucyBmb3IgCittYWluTWVudS5sb2dvZmY9TG9nIG9mZiBNYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24KK21haW5NZW51LnJlZ2lzdHJhdGlvbj1FZGl0IHlvdXIgdXNlciByZWdpc3RyYXRpb24gcHJvZmlsZQorbWFpbk1lbnUudGl0bGU9TWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uIC0gTWFpbiBNZW51CitvcHRpb24uaW1hcD1JTUFQIFByb3RvY29sCitvcHRpb24ucG9wMz1QT1AzIFByb3RvY29sCisjIHByb21wdC4KK2F1dG9Db25uZWN0PUF1dG8gQ29ubmVjdAorZnJvbUFkZHJlc3M9RnJvbSBBZGRyZXNzCitmdWxsTmFtZT1GdWxsIE5hbWUKK21haWxIb3N0bmFtZT1NYWlsIFNlcnZlcgorbWFpbFBhc3N3b3JkPU1haWwgUGFzc3dvcmQKK21haWxTZXJ2ZXJUeXBlPVNlcnZlciBUeXBlCittYWlsVXNlcm5hbWU9TWFpbCBVc2VybmFtZQorcGFzc3dvcmQ9UGFzc3dvcmQKK3Bhc3N3b3JkMj0oUmVwZWF0KSBQYXNzd29yZAorcmVwbHlUb0FkZHJlc3M9UmVwbHkgVG8gQWRkcmVzcwordXNlcm5hbWU9VXNlcm5hbWUKK3JlZ2lzdHJhdGlvbi5hZGRTdWJzY3JpcHRpb249QWRkCityZWdpc3RyYXRpb24uZGVsZXRlU3Vic2NyaXB0aW9uPURlbGV0ZQorcmVnaXN0cmF0aW9uLmVkaXRTdWJzY3JpcHRpb249RWRpdAorcmVnaXN0cmF0aW9uLnRpdGxlLmNyZWF0ZT1SZWdpc3RlciBmb3IgdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbgorcmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQ9RWRpdCBSZWdpc3RyYXRpb24gZm9yIHRoZSBNYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24KK3N1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGU9Q3JlYXRlIE5ldyBNYWlsIFN1YnNjcmlwdGlvbgorc3Vic2NyaXB0aW9uLnRpdGxlLmRlbGV0ZT1EZWxldGUgRXhpc3RpbmcgTWFpbCBTdWJzY3JpcHRpb24KK3N1YnNjcmlwdGlvbi50aXRsZS5lZGl0PUVkaXQgRXhpc3RpbmcgTWFpbCBTdWJzY3JpcHRpb24KKworIyBTdGFuZGFyZCBlcnJvciBtZXNzYWdlcyBmb3IgdmFsaWRhdG9yIGZyYW1ld29yayBjaGVja3MKK2Vycm9ycy5yZXF1aXJlZD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgcmVxdWlyZWQuCitlcnJvcnMubWlubGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBjYW5ub3QgYmUgbGVzcyB0aGFuIHsxfSBjaGFyYWN0ZXJzLgorZXJyb3JzLm1heGxlbmd0aD0ke2dldFRleHQoZmllbGROYW1lKX0gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiB7MX0gY2hhcmFjdGVycy4KK2Vycm9ycy5pbnZhbGlkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBpbnZhbGlkLgorZXJyb3JzLmJ5dGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gYnl0ZS4KK2Vycm9ycy5zaG9ydD0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBzaG9ydC4KK2Vycm9ycy5pbnRlZ2VyPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGludGVnZXIuCitlcnJvcnMubG9uZz0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBsb25nLgorZXJyb3JzLmZsb2F0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGZsb2F0LgorZXJyb3JzLmRvdWJsZT0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBkb3VibGUuCitlcnJvcnMuZGF0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgbm90IGEgZGF0ZS4KK2Vycm9ycy5yYW5nZT0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgbm90IGluIHRoZSByYW5nZSAke21pbkxlbmd0aH0gdGhyb3VnaCAke21heExlbmd0aH0uCitlcnJvcnMuY3JlZGl0Y2FyZD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgbm90IGEgdmFsaWQgY3JlZGl0IGNhcmQgbnVtYmVyLgorZXJyb3JzLmVtYWlsPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBhbiBpbnZhbGlkIGUtbWFpbCBhZGRyZXNzLgorZXJyb3JzLmxpdGVyYWw9JHtnZXRUZXh0KGZpZWxkTmFtZSl9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vcmVzb3VyY2VzL3Jlc291cmNlc19qYS5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3Jlc291cmNlcy9yZXNvdXJjZXNfamEucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzBjYTdkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3Jlc291cmNlcy9yZXNvdXJjZXNfamEucHJvcGVydGllcwpAQCAtMCwwICsxLDg5IEBACitidXR0b24uY2FuY2VsPVx1MzBhZFx1MzBlM1x1MzBmM1x1MzBiYlx1MzBlYgorYnV0dG9uLmNvbmZpcm09XHU3OGJhXHU4YThkCitidXR0b24ucmVzZXQ9XHUzMGVhXHUzMGJiXHUzMGMzXHUzMGM4CitidXR0b24uc2F2ZT1cdTRmZGRcdTViNTgKK2NoYW5nZS5tZXNzYWdlPVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA2RVx1NjcwOVx1NTJCOVx1NjcxRlx1OTY1MFx1MzA0Q1x1OTA0RVx1MzA0RVx1MzA3RVx1MzA1N1x1MzA1Rlx1MzAwMlx1MzBCN1x1MzBCOVx1MzBDNlx1MzBFMFx1N0JBMVx1NzQwNlx1ODAwNVx1MzA2Qlx1MzA0QVx1NTU0Rlx1MzA0NFx1NTQwOFx1MzA4Rlx1MzA1Qlx1NEUwQlx1MzA1NVx1MzA0NAorY2hhbmdlLnRyeT1cdTUxOERcdThBNjZcdTg4NEMKK2NoYW5nZS50aXRsZT1cdTMwZDFcdTMwYjlcdTMwZWZcdTMwZmNcdTMwYzlcdTY3MWZcdTk2NTBcdTUyMDdcdTMwOGMKK2RhdGFiYXNlLmxvYWQ9IHswfSBcdTMwNEJcdTMwODlcdTMwQzdcdTMwRkNcdTMwQkZcdTMwRDlcdTMwRkNcdTMwQjlcdTMwOTJcdTMwRURcdTMwRkNcdTMwQzlcdTMwNjdcdTMwNERcdTMwN0VcdTMwNUJcdTMwOTMKK2Vycm9yLmRhdGFiYXNlLm1pc3Npbmc9XHUzMEU2XHUzMEZDXHUzMEI2XHUzMEM3XHUzMEZDXHUzMEJGXHUzMEQ5XHUzMEZDXHUzMEI5XHUzMDRDXHU4OThCXHUzMDY0XHUzMDRCXHUzMDhBXHUzMDdFXHUzMDVCXHUzMDkzXHUzMDAyXHUzMEVEXHUzMEIwXHUzMEFBXHUzMEYzXHUzMDZFXHU4QThEXHU4QTNDXHUzMDRDXHU1MUZBXHU2NzY1XHUzMDdFXHUzMDVCXHUzMDkzCitlcnJvci5mcm9tQWRkcmVzcy5mb3JtYXQ9RnJvbVx1MzBBMlx1MzBDOVx1MzBFQ1x1MzBCOVx1MzA2RVx1NjZGOFx1NUYwRlx1MzA0Q1x1NkI2M1x1MzA1N1x1MzA0Rlx1MzA0Mlx1MzA4QVx1MzA3RVx1MzA1Qlx1MzA5MworZXJyb3IuZnJvbUFkZHJlc3MucmVxdWlyZWQ9RnJvbVx1MzBBMlx1MzBDOVx1MzBFQ1x1MzBCOVx1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorZXJyb3IuZnVsbE5hbWUucmVxdWlyZWQ9XHUzMEQ1XHUzMEVCXHUzMENEXHUzMEZDXHUzMEUwXHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0CitlcnJvci5ob3N0LnJlcXVpcmVkPVx1MzBFMVx1MzBGQ1x1MzBFQlx1MzBCNVx1MzBGQ1x1MzBEMFx1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorZXJyb3Iubm9TdWJzY3JpcHRpb249U3Vic2NyaXB0aW9uIGJlYW4gXHUzMDRjXHUzMGJiXHUzMGMzXHUzMGI3XHUzMGU3XHUzMGYzXHUzMDZlXHU0ZTJkXHUzMDZiXHUzMDQyXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzCitlcnJvci5wYXNzd29yZC5leHBpcmVkPVx1MzBFNlx1MzBGQ1x1MzBCNiB7MH0gXHUzMDZFXHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDZFXHU2NzA5XHU1MkI5XHU2NzFGXHU5NjUwXHUzMDRDXHU5MDRFXHUzMDRFXHUzMDdFXHUzMDU3XHUzMDVGCitlcnJvci5wYXNzd29yZC5yZXF1aXJlZD1cdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNENcdTVGQzVcdTg5ODFcdTMwNjdcdTMwNTkKK2Vycm9yLnBhc3N3b3JkMi5yZXF1aXJlZD1cdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzkoXHU3OEJBXHU4QThEXHU3NTI4KVx1MzA0Q1x1NUZDNVx1ODk4MVx1MzA2N1x1MzA1OQorZXJyb3IucGFzc3dvcmQubWF0Y2g9XHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDY4XHU3OEJBXHU4QThEXHU3NTI4XHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDRDXHU0RTAwXHU4MUY0XHUzMDU3XHUzMDY2XHUzMDQ0XHUzMDdFXHUzMDVCXHUzMDkzCitlcnJvci5wYXNzd29yZC5taXNtYXRjaD1cdTMwRTZcdTMwRkNcdTMwQjZcdTU0MERcdTMwN0VcdTMwNUZcdTMwNkZcdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNENcdTRFMERcdTZCNjNcdTMwNjdcdTMwNTlcdTMwMDJcdTUxOERcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQKK2Vycm9yLnJlcGx5VG9BZGRyZXNzLmZvcm1hdD1cdThGRDRcdTRGRTFcdTMwQTJcdTMwQzlcdTMwRUNcdTMwQjlcdTMwNkVcdTY2RjhcdTVGMEZcdTMwNENcdTZCNjNcdTMwNTdcdTMwNEZcdTMwNDJcdTMwOEFcdTMwN0VcdTMwNUJcdTMwOTMKK3N0cnV0cy5tZXNzYWdlcy5pbnZhbGlkLnRva2VuPVx1MzA1M1x1MzA2RVx1MzBENVx1MzBBOVx1MzBGQ1x1MzBFMFx1MzA2RVx1NTE4NVx1NUJCOVx1MzA0Q1x1NkI2M1x1MzA1N1x1MzA0Rlx1MzA2QVx1MzA0NFx1MzA1Rlx1MzA4MVx1OTAwMVx1NEZFMVx1MzA1OVx1MzA4Qlx1MzA1M1x1MzA2OFx1MzA0Q1x1NTFGQVx1Njc2NVx1MzA3RVx1MzA1Qlx1MzA5MworZXJyb3IudHlwZS5pbnZhbGlkPVx1MzBCNVx1MzBGQ1x1MzBEMFx1MzBCRlx1MzBBNFx1MzBEN1x1MzA2RiAnaW1hcCcgXHUzMDRCICdwb3AzJ1x1MzA2RVx1MzA2OVx1MzA2MVx1MzA4OVx1MzA0Qlx1MzA2N1x1MzA2QVx1MzA1MVx1MzA4Q1x1MzA3MFx1MzA2QVx1MzA4QVx1MzA3RVx1MzA1Qlx1MzA5MworZXJyb3IudHlwZS5yZXF1aXJlZD1cdTMwQjVcdTMwRkNcdTMwRDBcdTMwQkZcdTMwQTRcdTMwRDdcdTMwOTJcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQKK2Vycm9yLnVzZXJuYW1lLnJlcXVpcmVkPVx1MzBFNlx1MzBGQ1x1MzBCNlx1NTQwRFx1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorZXJyb3IudXNlcm5hbWUudW5pcXVlPVx1MzA1RFx1MzA2RVx1MzBFNlx1MzBGQ1x1MzBCNlx1NTQwRFx1MzA2Rlx1NjVFMlx1MzA2Qlx1NEY3Rlx1NzUyOFx1MzA1NVx1MzA4Q1x1MzA2Nlx1MzA0NFx1MzA3RVx1MzA1OVx1MzAwMiBcdTUyMjVcdTMwNkVcdTMwRTZcdTMwRkNcdTMwQjZcdTU0MERcdTMwOTJcdTkwNzhcdTYyOUVcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQKK2Vycm9ycy5mb290ZXI9PC91bD48aHI+CitlcnJvcnMuaGVhZGVyPTxoMz48Zm9udCBjb2xvcj0icmVkIj5cdTUxNjVcdTUyOWJcdTMwYzFcdTMwYTdcdTMwYzNcdTMwYWZcdTMwYThcdTMwZTlcdTMwZmM8L2ZvbnQ+PC9oMz48cD5cdTRlZTVcdTRlMGJcdTMwNmVcdTMwYThcdTMwZTlcdTMwZmNcdTMwOTJcdTc4YmFcdThhOGRcdTMwNTdcdTMwNjZcdTMwNGZcdTMwNjBcdTMwNTVcdTMwNDQ6PC9wPjx1bD4KK2Vycm9ycy5wcmVmaXg9PGxpPgorZXJyb3JzLnN1ZmZpeD08L2xpPgorZXJyb3JzLmlvRXhjZXB0aW9uPUkvT1x1NGY4Ylx1NTkxNlx1MzA0Y1x1NzY3YVx1NzUxZlx1MzA1N1x1MzA3ZVx1MzA1N1x1MzA1ZjogezB9CitleHBpcmVkLnBhc3N3b3JkPVx1MzBFNlx1MzBGQ1x1MzBCNiB7MH0gXHUzMDZFXHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDZFXHU2NzA5XHU1MkI5XHU2NzFGXHU5NjUwXHUzMDRDXHU5MDRFXHUzMDRFXHUzMDdFXHUzMDU3XHUzMDVGCitoZWFkaW5nLmF1dG9Db25uZWN0PVx1ODFlYVx1NTJkNVx1NjNhNVx1N2Q5YQoraGVhZGluZy5zdWJzY3JpcHRpb25zPVx1NzNmZVx1NTcyOFx1MzA2ZVx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMQoraGVhZGluZy5ob3N0PVx1MzBkYlx1MzBiOVx1MzBjOFx1NTQwZAoraGVhZGluZy51c2VyPVx1MzBlNlx1MzBmY1x1MzBiNlx1NTQwZAoraGVhZGluZy50eXBlPVx1MzBiNVx1MzBmY1x1MzBkMFx1MzBiZlx1MzBhNFx1MzBkNworaGVhZGluZy5hY3Rpb249XHU2NGNkXHU0ZjVjCitpbmRleC5oZWFkaW5nPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgXHUzMGFhXHUzMGQ3XHUzMGI3XHUzMGU3XHUzMGYzCitpbmRleC5sb2dvbj1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGVkXHUzMGIwXHUzMGFhXHUzMGYzCitpbmRleC5yZWdpc3RyYXRpb249TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBlNlx1MzBmY1x1MzBiNlx1NzY3Ylx1OTMzMgoraW5kZXgudGl0bGU9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyhTdHJ1dHMgMS4xLWRldikKK2luZGV4LnRvdXI9XHUzMGI1XHUzMGYzXHUzMGQ3XHUzMGViXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzXHUzMDkyXHU2NTYzXHU3YjU2XHUzMDU5XHUzMDhiCitsaW5rU3Vic2NyaXB0aW9uLmlvPUkvT1x1MzBhOFx1MzBlOVx1MzBmYzogezB9CitsaW5rU3Vic2NyaXB0aW9uLm5vU3Vic2NyaXB0aW9uPVx1NWM1ZVx1NjAyNyB7MH0gXHUzMDZiXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxXHUzMDRjXHU1YjU4XHU1NzI4XHUzMDU3XHUzMDdlXHUzMDViXHUzMDkzICAKK2xpbmtVc2VyLmlvPUkvT1x1MzBhOFx1MzBlOVx1MzBmYzogezB9CitsaW5rVXNlci5ub1VzZXI9XHU1YzVlXHU2MDI3IHswfSBcdTMwNmJcdTMwZTZcdTMwZmNcdTMwYjZcdTYwYzVcdTU4MzFcdTMwNGNcdTViNThcdTU3MjhcdTMwNTdcdTMwN2VcdTMwNWJcdTMwOTMKK2xvZ29uLnRpdGxlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZWRcdTMwYjBcdTMwYWFcdTMwZjMKK21haW5NZW51LmhlYWRpbmc9XHUzMGUxXHUzMGE0XHUzMGYzXHUzMGUxXHUzMGNiXHUzMGU1XHUzMGZjCittYWluTWVudS5sb2dvZmY9TWFpbFJlYWRlciBcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjNcdTMwNmVcdTMwZWRcdTMwYjBcdTMwYWFcdTMwZDUKK21haW5NZW51LnJlZ2lzdHJhdGlvbj1cdTMwZDdcdTMwZWRcdTMwZDVcdTMwYTFcdTMwYTRcdTMwZWJcdTMwNmVcdTdkZThcdTk2YzYKK21haW5NZW51LnRpdGxlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZTFcdTMwYTRcdTMwZjNcdTMwZTFcdTMwY2JcdTMwZTVcdTMwZmMKK29wdGlvbi5pbWFwPUlNQVAgXHUzMGQ3XHUzMGVkXHUzMGM4XHUzMGIzXHUzMGViCitvcHRpb24ucG9wMz1QT1AzIFx1MzBkN1x1MzBlZFx1MzBjOFx1MzBiM1x1MzBlYgorIyBwcm9tcHQuCithdXRvQ29ubmVjdD1cdTgxZWFcdTUyZDVcdTYzYTVcdTdkOWEKK2Zyb21BZGRyZXNzPUZyb21cdTMwYTJcdTMwYzlcdTMwZWNcdTMwYjkKK2Z1bGxOYW1lPVx1MzBkNVx1MzBlYlx1MzBjZFx1MzBmY1x1MzBlMAorbWFpbEhvc3RuYW1lPVx1MzBlMVx1MzBmY1x1MzBlYlx1MzBiNVx1MzBmY1x1MzBkMAorbWFpbFBhc3N3b3JkPVx1MzBlMVx1MzBmY1x1MzBlYlx1MzBkMVx1MzBiOVx1MzBlZlx1MzBmY1x1MzBjOQorbWFpbFNlcnZlclR5cGU9XHUzMGI1XHUzMGZjXHUzMGQwXHUzMGJmXHUzMGE0XHUzMGQ3CittYWlsVXNlcm5hbWU9XHUzMGUxXHUzMGZjXHUzMGViXHUzMGU2XHUzMGZjXHUzMGI2XHU1NDBkCisucGFzc3dvcmQ9XHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5CitwYXNzd29yZDI9XHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5KFx1NzhiYVx1OGE4ZFx1NzUyOCkKK3JlcGx5VG9BZGRyZXNzPVx1OGZkNFx1NGZlMVx1MzBhMlx1MzBjOVx1MzBlY1x1MzBiOQordXNlcm5hbWU9XHUzMGU2XHUzMGZjXHUzMGI2XHU1NDBkCityZWdpc3RyYXRpb24uYWRkU3Vic2NyaXB0aW9uPVx1NjViMFx1ODk4Zlx1NGY1Y1x1NjIxMAorcmVnaXN0cmF0aW9uLmRlbGV0ZVN1YnNjcmlwdGlvbj1cdTUyNGFcdTk2NjQKK3JlZ2lzdHJhdGlvbi5lZGl0U3Vic2NyaXB0aW9uPVx1N2RlOFx1OTZjNgorcmVnaXN0cmF0aW9uLnRpdGxlLmNyZWF0ZT1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGU2XHUzMGZjXHUzMGI2XHU3NjdiXHU5MzMyCityZWdpc3RyYXRpb24udGl0bGUuZWRpdD1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGQ3XHUzMGVkXHUzMGQ1XHUzMGExXHUzMGE0XHUzMGViXHU3ZGU4XHU5NmM2CitzdWJzY3JpcHRpb24udGl0bGUuY3JlYXRlPVx1MzBlMVx1MzBmY1x1MzBlYlx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMVx1MzA2ZVx1NjViMFx1ODk4Zlx1NGY1Y1x1NjIxMAorc3Vic2NyaXB0aW9uLnRpdGxlLmRlbGV0ZT1cdTMwZTFcdTMwZmNcdTMwZWJcdThjZmNcdThhYWRcdTYwYzVcdTU4MzFcdTMwNmVcdTUyNGFcdTk2NjQKK3N1YnNjcmlwdGlvbi50aXRsZS5lZGl0PVx1MzBlMVx1MzBmY1x1MzBlYlx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMVx1MzA2ZVx1N2RlOFx1OTZjNgorCisjIFN0YW5kYXJkIGVycm9yIG1lc3NhZ2VzIGZvciB2YWxpZGF0b3IgZnJhbWV3b3JrIGNoZWNrcworZXJyb3JzLnJlcXVpcmVkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwOTJcdTUxNjVcdTUyOWJcdTMwNTdcdTMwNjZcdTMwNGZcdTMwNjBcdTMwNTVcdTMwNDRcdTMwMDIKK2Vycm9ycy5taW5sZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZiB7MX0gXHU2NTg3XHU1YjU3XHU0ZWU1XHU0ZTBhXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMubWF4bGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmYgezJ9IFx1NjU4N1x1NWI1N1x1NGVlNVx1NGUwYlx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmludmFsaWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2Zlx1NmI2M1x1MzA1N1x1MzA0Zlx1MzA0Mlx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmJ5dGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZmJ5dGVcdTU3OGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5zaG9ydD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmc2hvcnRcdTU3OGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5pbnRlZ2VyPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZpbnRlZ2VyXHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMubG9uZz0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmbG9uZ1x1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmZsb2F0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZmbG9hdFx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMgorZXJyb3JzLmRvdWJsZT0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmZG91YmxlXHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMuZGF0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmXHU2NWU1XHU0ZWQ4XHUzMDY3XHUzMDZmXHUzMDQyXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCitlcnJvcnMucmFuZ2U9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZiB7MX0gXHUzMDRiXHUzMDg5IHsyfSBcdTMwNmVcdTk1OTNcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5jcmVkaXRjYXJkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZcdTZiNjNcdTMwNTdcdTMwNDRcdTMwYWZcdTMwZWNcdTMwYjhcdTMwYzNcdTMwYzhcdTMwYWJcdTMwZmNcdTMwYzlcdTc1NmFcdTUzZjdcdTMwNjdcdTMwNmZcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDIKK2Vycm9ycy5lbWFpbD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmXHU2YjYzXHUzMDU3XHUzMDQ0XHUzMGUxXHUzMGZjXHUzMGViXHUzMGEyXHUzMGM5XHUzMGVjXHUzMGI5XHUzMDY3XHUzMDZmXHUzMDQyXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vcmVzb3VyY2VzL3Jlc291cmNlc19ydS5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3Jlc291cmNlcy9yZXNvdXJjZXNfcnUucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjhjODIwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3Jlc291cmNlcy9yZXNvdXJjZXNfcnUucHJvcGVydGllcwpAQCAtMCwwICsxLDg5IEBACitidXR0b24uY2FuY2VsPVx1MDQxZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YworYnV0dG9uLmNvbmZpcm09XHUwNDFmXHUwNDNlXHUwNDM0XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM0XHUwNDM4XHUwNDQyXHUwNDRjCitidXR0b24ucmVzZXQ9XHUwNDIxXHUwNDMxXHUwNDQwXHUwNDNlXHUwNDQxXHUwNDM4XHUwNDQyXHUwNDRjCitidXR0b24uc2F2ZT1cdTA0MjFcdTA0M2VcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMKK2NoYW5nZS5tZXNzYWdlPVlvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQuICBQbGVhc2UgYXNrIHRoZSBzeXN0ZW0gYWRtaW5pc3RyYXRvciB0byBjaGFuZ2UgaXQuCitjaGFuZ2UudHJ5PVRyeSBBZ2FpbgorY2hhbmdlLnRpdGxlPVBhc3N3b3JkIEhhcyBFeHBpcmVkCitkYXRhYmFzZS5sb2FkPVx1MDQxMVx1MDQzMFx1MDQzN1x1MDQzMCBcdTA0MzRcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0NDUgXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDM3XHUwNDMwXHUwNDMzXHUwNDQwXHUwNDQzXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDMwIFx1MDQzOFx1MDQzNyB7MH0KK2Vycm9yLmRhdGFiYXNlLm1pc3Npbmc9XHUwNDFkXHUwNDM1IFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzZSBcdTA0MzhcdTA0M2NcdTA0NGYgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRmIC0gXHUwNDNkXHUwNDM1XHUwNDMyXHUwNDNlXHUwNDM3XHUwNDNjXHUwNDNlXHUwNDM2XHUwNDNkXHUwNDNlIFx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzOCBcdTA0MzBcdTA0NDNcdTA0NDJcdTA0MzVcdTA0M2RcdTA0NDJcdTA0MzhcdTA0NDRcdTA0MzhcdTA0M2FcdTA0MzBcdTA0NDZcdTA0MzhcdTA0NGUuCitlcnJvci5mcm9tQWRkcmVzcy5mb3JtYXQ9XHUwNDEyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzNSAnXHUwNDEwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQxZVx1MDQ0MjonIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDMyIFx1MDQzZFx1MDQzNVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQzZVx1MDQzYyBcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDJcdTA0MzUuCitlcnJvci5mcm9tQWRkcmVzcy5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MzIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDM1ICdcdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyOicuCitlcnJvci5mdWxsTmFtZS5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0MzhcdTA0M2NcdTA0NGYuCitlcnJvci5ob3N0LnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDRiXHUwNDM5IFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MC4KK2Vycm9yLm5vU3Vic2NyaXB0aW9uPVx1MDQxZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQzMCBcdTA0M2RcdTA0MzUgXHUwNDNkXHUwNDMwXHUwNDM5XHUwNDM0XHUwNDM1XHUwNDNkXHUwNDMwIFx1MDQzMiBcdTA0NDFcdTA0MzVcdTA0NDFcdTA0NDFcdTA0MzhcdTA0MzggXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRmCitlcnJvci5wYXNzd29yZC5leHBpcmVkPVlvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQgZm9yIHVzZXJuYW1lIHswfQorZXJyb3IucGFzc3dvcmQucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGMuCitlcnJvci5wYXNzd29yZDIucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRmLgorZXJyb3IucGFzc3dvcmQubWF0Y2g9XHUwNDFmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRjIFx1MDQzOCBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRmIFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0M2VcdTA0MzJcdTA0M2ZcdTA0MzBcdTA0MzRcdTA0MzBcdTA0NGVcdTA0NDIuCitlcnJvci5wYXNzd29yZC5taXNtYXRjaD1cdTA0MWRcdTA0MzVcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0NGNcdTA0M2RcdTA0NGJcdTA0MzUgXHUwNDM4XHUwNDNjXHUwNDRmIFx1MDQzOC9cdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRjIC0gXHUwNDNmXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDMxXHUwNDQzXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0M2ZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQ0MVx1MDQzZFx1MDQzZVx1MDQzMlx1MDQzMC4KK2Vycm9yLnJlcGx5VG9BZGRyZXNzLmZvcm1hdD1cdTA0MTIgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDM1ICdcdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQzZFx1MDQzMDonIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDMyIFx1MDQzZFx1MDQzNVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQzZVx1MDQzYyBcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDJcdTA0MzUuCitzdHJ1dHMubWVzc2FnZXMuaW52YWxpZC50b2tlbj1cdTA0MmRcdTA0NDJcdTA0MzAgXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwIFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzZVx1MDQzMVx1MDQ0MFx1MDQzMFx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMFx1MDQzZFx1MDQzMCAtIFx1MDQzZFx1MDQzMFx1MDQ0MFx1MDQ0M1x1MDQ0OFx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDBcdTA0NGZcdTA0MzRcdTA0M2FcdTA0MzAgXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRmIFx1MDQzNFx1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQ0NS4KK2Vycm9yLnR5cGUuaW52YWxpZD1cdTA0MTIgXHUwNDNhXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM1IFx1MDQ0Mlx1MDQzOFx1MDQzZlx1MDQzMCBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDNjXHUwNDNlXHUwNDMzXHUwNDQzXHUwNDQyIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0NGIgXHUwNDNiXHUwNDM4XHUwNDQ4XHUwNDRjICdpbWFwJyBcdTA0MzhcdTA0M2JcdTA0MzggJ3BvcDMnCitlcnJvci50eXBlLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQyXHUwNDM4XHUwNDNmIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMAorZXJyb3IudXNlcm5hbWUucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0MzhcdTA0M2NcdTA0NGYgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRmCitlcnJvci51c2VybmFtZS51bmlxdWU9XHUwNDIzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzOFx1MDQzY1x1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYgXHUwNDQzXHUwNDM2XHUwNDM1IFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiAtIFx1MDQzMlx1MDQ0Ylx1MDQzMVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQzNSwgXHUwNDNmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0MzRcdTA0NDBcdTA0NDNcdTA0MzNcdTA0M2VcdTA0MzUgXHUwNDM4XHUwNDNjXHUwNDRmLgorZXJyb3JzLmZvb3Rlcj08L3VsPjxocj4KK2Vycm9ycy5oZWFkZXI9PGgzPjxmb250IGNvbG9yPSJyZWQiPlx1MDQxZVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzYVx1MDQzOCBcdTA0M2ZcdTA0NDBcdTA0MzggXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM4IFx1MDQzNFx1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQ0NTwvZm9udD48L2gzPjxwPlx1MDQxMlx1MDQ0YiBcdTA0MzRcdTA0M2VcdTA0M2JcdTA0MzZcdTA0M2RcdTA0NGIgXHUwNDM4XHUwNDQxXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDMyXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2RcdTA0MzhcdTA0MzZcdTA0MzUgXHUwNDNlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDM4OjwvcD48dWw+CitlcnJvcnMucHJlZml4PTxsaT4KK2Vycm9ycy5zdWZmaXg9PC9saT4KK2Vycm9ycy5pb0V4Y2VwdGlvbj1cdTA0MWVcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzAgXHUwNDMyXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwL1x1MDQzMlx1MDQ0Ylx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMCBcdTA0M2ZcdTA0NDBcdTA0MzggXHUwNDQxXHUwNDNlXHUwNDM3XHUwNDM0XHUwNDMwXHUwNDNkXHUwNDM4XHUwNDM4IFx1MDQ0MVx1MDQzZVx1MDQzZVx1MDQzMVx1MDQ0OVx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzOSBcdTA0M2VcdTA0MzEgXHUwNDNlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDMwXHUwNDQ1OiB7MH0KK2V4cGlyZWQucGFzc3dvcmQ9VXNlciBQYXNzd29yZCBoYXMgZXhwaXJlZCBmb3IgezB9CitoZWFkaW5nLmF1dG9Db25uZWN0PVx1MDQxMFx1MDQzMlx1MDQ0Mlx1MDQzZVx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzYVx1MDQzOAoraGVhZGluZy5zdWJzY3JpcHRpb25zPVx1MDQxN1x1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzMFx1MDQzZFx1MDQzZFx1MDQ0Ylx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0M2ZcdTA0MzhcdTA0NDFcdTA0M2FcdTA0MzgKK2hlYWRpbmcuaG9zdD1cdTA0MjFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDAKK2hlYWRpbmcudXNlcj1cdTA0MThcdTA0M2NcdTA0NGYKK2hlYWRpbmcudHlwZT1cdTA0MjJcdTA0MzhcdTA0M2YgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwCitoZWFkaW5nLmFjdGlvbj1cdTA0MTRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzhcdTA0MzUKK2luZGV4LmhlYWRpbmc9XHUwNDE0XHUwNDM1XHUwNDNjXHUwNDNlXHUwNDNkXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNlXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYlx1MDQzZVx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSAnXHUwNDI3XHUwNDQyXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQ0YicKK2luZGV4LmxvZ29uPVx1MDQxMlx1MDQzZVx1MDQzOVx1MDQ0Mlx1MDQzOCBcdTA0M2FcdTA0MzBcdTA0M2EgXHUwNDM3XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM5IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0YworaW5kZXgucmVnaXN0cmF0aW9uPVx1MDQxN1x1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Y1x1MDQ0MVx1MDQ0ZgoraW5kZXgudGl0bGU9XHUwNDE0XHUwNDM1XHUwNDNjXHUwNDNlXHUwNDNkXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNlXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYlx1MDQzZVx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSAnXHUwNDI3XHUwNDQyXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQ0YicgKFN0cnV0cyAxLjEtZGV2KQoraW5kZXgudG91cj1cdTA0MWVcdTA0MzFcdTA0MzdcdTA0M2VcdTA0NDAgXHUwNDE0XHUwNDM1XHUwNDNjXHUwNDNlXHUwNDNkXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNlXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYlx1MDQzZVx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0ZiAnXHUwNDI3XHUwNDQyXHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQ0YicKK2xpbmtTdWJzY3JpcHRpb24uaW89XHUwNDFlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDMwIFx1MDQzMlx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMC9cdTA0MzJcdTA0NGJcdTA0MzJcdTA0M2VcdTA0MzRcdTA0MzAgKFx1MDQzNFx1MDQzYlx1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0M2ZcdTA0MzhcdTA0NDFcdTA0M2FcdTA0MzgpOiB7MH0KK2xpbmtTdWJzY3JpcHRpb24ubm9TdWJzY3JpcHRpb249XHUwNDEwXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDMxXHUwNDQzXHUwNDQyIHswfSBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDNlXHUwNDM0XHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM4XHUwNDQyIFx1MDQzOFx1MDQzZFx1MDQ0NFx1MDQzZVx1MDQ0MFx1MDQzY1x1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzOCBcdTA0M2UgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDM1IFx1MDQzOFx1MDQzYlx1MDQzOCBcdTA0M2RcdTA0MzUgXHUwNDQxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDM1XHUwNDQyLgorbGlua1VzZXIuaW89XHUwNDFlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDMwIFx1MDQzMlx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMC9cdTA0MzJcdTA0NGJcdTA0MzJcdTA0M2VcdTA0MzRcdTA0MzAgKFx1MDQzNFx1MDQzYlx1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYpOiB7MH0KK2xpbmtVc2VyLm5vVXNlcj1cdTA0MTBcdTA0NDJcdTA0NDBcdTA0MzhcdTA0MzFcdTA0NDNcdTA0NDIgezB9IFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzhcdTA0NDIgXHUwNDM4XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0MzUgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0NDNcdTA0NDlcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0MzVcdTA0NDIuCitsb2dvbi50aXRsZT1cdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0NGIgLSBcdTA0MWZcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzVcdTA0NDBcdTA0M2FcdTA0MzAgXHUwNDM4XHUwNDNjXHUwNDM1XHUwNDNkXHUwNDM4IFx1MDQzOCBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGYuCittYWluTWVudS5oZWFkaW5nPVx1MDQxZFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzZVx1MDQzOVx1MDQzYVx1MDQzOCBcdTA0MzNcdTA0M2JcdTA0MzBcdTA0MzJcdTA0M2RcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDNjXHUwNDM1XHUwNDNkXHUwNDRlIFx1MDQzNFx1MDQzYlx1MDQ0ZgorbWFpbk1lbnUubG9nb2ZmPVx1MDQxMlx1MDQ0Ylx1MDQzOVx1MDQ0Mlx1MDQzOAorbWFpbk1lbnUucmVnaXN0cmF0aW9uPVx1MDQxOFx1MDQzN1x1MDQzY1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0MzJcdTA0M2VcdTA0MzggXHUwNDNkXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDM5XHUwNDNhXHUwNDM4CittYWluTWVudS50aXRsZT1cdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1ICdcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDRiJyAtIFx1MDQxZVx1MDQ0MVx1MDQzZFx1MDQzZVx1MDQzMlx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NGUKK29wdGlvbi5pbWFwPVx1MDQxZlx1MDQ0MFx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQzYVx1MDQzZVx1MDQzYiBJTUFQIAorb3B0aW9uLnBvcDM9XHUwNDFmXHUwNDQwXHUwNDNlXHUwNDQyXHUwNDNlXHUwNDNhXHUwNDNlXHUwNDNiIFBPUDMgCisjIHByb21wdC4KK2F1dG9Db25uZWN0PVx1MDQxMFx1MDQzMlx1MDQ0Mlx1MDQzZVx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQzNSBcdTA0NDFcdTA0M2VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzU6Citmcm9tQWRkcmVzcz1cdTA0MTBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDFlXHUwNDQyOgorZnVsbE5hbWU9XHUwNDFmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzOFx1MDQzY1x1MDQ0ZjoKK21haWxIb3N0bmFtZT1cdTA0MWZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0NGJcdTA0MzkgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwOgorbWFpbFBhc3N3b3JkPVx1MDQxZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0YyBcdTA0MzRcdTA0M2JcdTA0NGYgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDNlXHUwNDMzXHUwNDNlIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMDoKK21haWxTZXJ2ZXJUeXBlPVx1MDQyMlx1MDQzOFx1MDQzZiBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzA6CittYWlsVXNlcm5hbWU9XHUwNDE4XHUwNDNjXHUwNDRmIFx1MDQzNFx1MDQzYlx1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwOgorcGFzc3dvcmQ9XHUwNDFmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRjOgorcGFzc3dvcmQyPShcdTA0MWZcdTA0M2VcdTA0MzRcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzRcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUpIFx1MDQxZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0YzoKK3JlcGx5VG9BZGRyZXNzPVx1MDQxMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MWVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDNkXHUwNDMwOgordXNlcm5hbWU9XHUwNDE4XHUwNDNjXHUwNDRmOgorcmVnaXN0cmF0aW9uLmFkZFN1YnNjcmlwdGlvbj1cdTA0MTRcdTA0M2VcdTA0MzFcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMKK3JlZ2lzdHJhdGlvbi5kZWxldGVTdWJzY3JpcHRpb249XHUwNDIzXHUwNDM0XHUwNDMwXHUwNDNiXHUwNDM4XHUwNDQyXHUwNDRjCityZWdpc3RyYXRpb24uZWRpdFN1YnNjcmlwdGlvbj1cdTA0MjBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2FcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGMKK3JlZ2lzdHJhdGlvbi50aXRsZS5jcmVhdGU9XHUwNDE3XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRjXHUwNDQxXHUwNDRmCityZWdpc3RyYXRpb24udGl0bGUuZWRpdD1cdTA0MThcdTA0MzdcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzZSBcdTA0NDFcdTA0MzJcdTA0M2VcdTA0MzVcdTA0MzkgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4CitzdWJzY3JpcHRpb24udGl0bGUuY3JlYXRlPVx1MDQyMVx1MDQzZVx1MDQzN1x1MDQzNFx1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2RcdTA0M2VcdTA0MzJcdTA0NDNcdTA0NGUgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDQzCitzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlPVx1MDQyM1x1MDQzNFx1MDQzMFx1MDQzYlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0NDFcdTA0NDNcdTA0NDlcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0NGVcdTA0NDlcdTA0NDNcdTA0NGUgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDNmXHUwNDM4XHUwNDQxXHUwNDNhXHUwNDQzCitzdWJzY3JpcHRpb24udGl0bGUuZWRpdD1cdTA0MjBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2FcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDQzXHUwNDRlIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQ0MworCisjIFN0YW5kYXJkIGVycm9yIG1lc3NhZ2VzIGZvciB2YWxpZGF0b3IgZnJhbWV3b3JrIGNoZWNrcworZXJyb3JzLnJlcXVpcmVkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyByZXF1aXJlZC4KK2Vycm9ycy5taW5sZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGNhbm5vdCBiZSBsZXNzIHRoYW4gezF9IGNoYXJhY3RlcnMuCitlcnJvcnMubWF4bGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIHsyfSBjaGFyYWN0ZXJzLgorZXJyb3JzLmludmFsaWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGludmFsaWQuCitlcnJvcnMuYnl0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBieXRlLgorZXJyb3JzLnNob3J0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIHNob3J0LgorZXJyb3JzLmludGVnZXI9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gaW50ZWdlci4KK2Vycm9ycy5sb25nPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGxvbmcuCitlcnJvcnMuZmxvYXQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gZmxvYXQuCitlcnJvcnMuZG91YmxlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGRvdWJsZS4KK2Vycm9ycy5kYXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSBkYXRlLgorZXJyb3JzLnJhbmdlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgaW4gdGhlIHJhbmdlIHsxfSB0aHJvdWdoIHsyfS4KK2Vycm9ycy5jcmVkaXRjYXJkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuCitlcnJvcnMuZW1haWw9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGFuIGludmFsaWQgZS1tYWlsIGFkZHJlc3MuCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vcmVzb3VyY2VzL3NxbC1tYXAtY29uZmlnLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvc3FsLW1hcC1jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5NDQxNTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vcmVzb3VyY2VzL3NxbC1tYXAtY29uZmlnLnhtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgc3FsTWFwQ29uZmlnIFBVQkxJQw0KKyAgICAgICAgIi0vL2liYXRpcy5hcGFjaGUub3JnLy9EVEQgU1FMIE1hcCBDb25maWcgMi4wLy9FTiINCisgICAgICAgICJodHRwOi8vaWJhdGlzLmFwYWNoZS5vcmcvZHRkL3NxbC1tYXAtY29uZmlnLTIuZHRkIj4NCisNCis8c3FsTWFwQ29uZmlnPg0KKw0KKyAgICA8cHJvcGVydGllcyByZXNvdXJjZT0ic3FsL3NxbC1tYXAtY29uZmlnLWhzcWwucHJvcGVydGllcyIvPg0KKw0KKyAgICA8c2V0dGluZ3MgY2FjaGVNb2RlbHNFbmFibGVkPSJ0cnVlIiBlbmhhbmNlbWVudEVuYWJsZWQ9ImZhbHNlIg0KKyAgICAgICAgICAgICAgbWF4U2Vzc2lvbnM9IjY0IiBtYXhUcmFuc2FjdGlvbnM9IjgiIG1heFJlcXVlc3RzPSIxMjgiLz4NCisNCisgICAgPHRyYW5zYWN0aW9uTWFuYWdlciB0eXBlPSJKREJDIj4NCisgICAgICAgIDxkYXRhU291cmNlIHR5cGU9IlNJTVBMRSI+DQorICAgICAgICAgICAgPHByb3BlcnR5IHZhbHVlPSIke2RyaXZlcn0iIG5hbWU9IkpEQkMuRHJpdmVyIi8+DQorICAgICAgICAgICAgPHByb3BlcnR5IHZhbHVlPSIke3VybH0iIG5hbWU9IkpEQkMuQ29ubmVjdGlvblVSTCIvPg0KKyAgICAgICAgICAgIDxwcm9wZXJ0eSB2YWx1ZT0iJHt1c2VybmFtZX0iIG5hbWU9IkpEQkMuVXNlcm5hbWUiLz4NCisgICAgICAgICAgICA8cHJvcGVydHkgdmFsdWU9IiR7cGFzc3dvcmR9IiBuYW1lPSJKREJDLlBhc3N3b3JkIi8+DQorICAgICAgICAgICAgPHByb3BlcnR5IHZhbHVlPSIxNSIgbmFtZT0iUG9vbC5NYXhpbXVtQWN0aXZlQ29ubmVjdGlvbnMiLz4NCisgICAgICAgICAgICA8cHJvcGVydHkgdmFsdWU9IjE1IiBuYW1lPSJQb29sLk1heGltdW1JZGxlQ29ubmVjdGlvbnMiLz4NCisgICAgICAgICAgICA8cHJvcGVydHkgdmFsdWU9IjEwMDAiIG5hbWU9IlBvb2wuTWF4aW11bVdhaXQiLz4NCisgICAgICAgIDwvZGF0YVNvdXJjZT4NCisgICAgPC90cmFuc2FjdGlvbk1hbmFnZXI+DQorDQorICAgIDxzcWxNYXAgcmVzb3VyY2U9InNxbC9zcWwtbWFwLnhtbCIvPg0KKzwvc3FsTWFwQ29uZmlnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvc3FsL21haWxyZWFkZXItc2NoZW1hLnNxbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvc3FsL21haWxyZWFkZXItc2NoZW1hLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Yjg2Yzg2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3Jlc291cmNlcy9zcWwvbWFpbHJlYWRlci1zY2hlbWEuc3FsCkBAIC0wLDAgKzEsMzUgQEAKK0NSRUFURSBUQUJMRSBsb2NhbGUNCisoDQorICBwa19sb2NhbGUgY2hhcigzNiksDQorICBsb2NhbGVfY29kZSBjaGFyKDkpLA0KKyAgbG9jYWxlX25hbWUgY2hhcigzNikNCispOw0KKw0KK0NSRUFURSBUQUJMRSByZWdpc3RyYXRpb24NCisoDQorICBwa19yZWdpc3RyYXRpb24gY2hhcigzNiksDQorICBma19sb2NhbGUgY2hhcigzNiksDQorICB1c2VybmFtZSAgY2hhcigxOCksDQorICBwYXNzd29yZCAgY2hhcigxOCksDQorICBmdWxsbmFtZSAgdmFyY2hhcigzNiksDQorICBlbWFpbF9mcm9tIHZhcmNoYXIoNzIpLA0KKyAgZW1haWxfcmVwbHl0byB2YXJjaGFyKDcyKQ0KKyk7DQorDQorQ1JFQVRFIFRBQkxFIHByb3RvY29sDQorKA0KKyAgcGtfcHJvdG9jb2wgY2hhcigzNiksDQorICBwcm90b2NvbF9jb2RlIGNoYXIoOSksDQorICBwcm90b2NvbF9uYW1lIGNoYXIoMzYpDQorKTsNCisNCitDUkVBVEUgVEFCTEUgc3Vic2NyaXB0aW9uDQorKA0KKyAgcGtfc3Vic2NyaXB0aW9uICAgICBjaGFyKDM2KSwNCisgIGZrX3JlZ2lzdHJhdGlvbiAgY2hhcigzNiksDQorICBma19wcm90b2NvbCBjaGFyKDM2KSwNCisgIHN1YnNjcmlwdGlvbl9ob3N0ICBjaGFyKDM2KSwNCisgIGhvc3RfdXNlciBjaGFyKDE4KSwNCisgIGhvc3RfcGFzcyBjaGFyKDE4KSwNCisgIGhvc3RfYXV0byBpbnQNCispOw0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvc3FsL3NxbC1tYXAtY29uZmlnLWRlcmJ5LnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vcmVzb3VyY2VzL3NxbC9zcWwtbWFwLWNvbmZpZy1kZXJieS5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlZjQ1ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vcmVzb3VyY2VzL3NxbC9zcWwtbWFwLWNvbmZpZy1kZXJieS5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTIgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorIyBEYXRhYmFzZSBDb25uZWN0aXZpdHkgUHJvcGVydGllcw0KKyMgKGRlcmJ5IC0gaHR0cDovL2RiLmFwYWNoZS5vcmcvZGVyYnkvKQ0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorZHJpdmVyPW9yZy5hcGFjaGUuZGVyYnkuamRiYy5FbWJlZGRlZERyaXZlcg0KK3VybD1qZGJjOmRlcmJ5Om1haWxyZWFkZXI7Y3JlYXRlPXRydWUNCit1c2VybmFtZT0NCitwYXNzd29yZD0NCitTcWxNYXBQYXRoPW1haWxyZWFkZXIyDQorZGF0YVNvdXJjZVR5cGU9U0lNUExFDQorDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3Jlc291cmNlcy9zcWwvc3FsLW1hcC1jb25maWctaHNxbC5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3Jlc291cmNlcy9zcWwvc3FsLW1hcC1jb25maWctaHNxbC5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmMGQxNDEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vcmVzb3VyY2VzL3NxbC9zcWwtbWFwLWNvbmZpZy1oc3FsLnByb3BlcnRpZXMKQEAgLTAsMCArMSw5IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMgRGF0YWJhc2UgQ29ubmVjdGl2aXR5IFByb3BlcnRpZXMNCisjIChIU1FMIC0gaHR0cDovL2hzcWwub3JnLykNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KK2RyaXZlcj1vcmcuaHNxbGRiLmpkYmNEcml2ZXINCit1cmw9amRiYzpoc3FsZGI6bWVtOm1haWxyZWFkZXINCit1c2VybmFtZT1zYQ0KK3Bhc3N3b3JkPQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvc3FsL3NxbC1tYXAueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3Jlc291cmNlcy9zcWwvc3FsLW1hcC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTgyMWQ0ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvc3FsL3NxbC1tYXAueG1sCkBAIC0wLDAgKzEsODkgQEAKKzwhRE9DVFlQRSBzcWxNYXAgUFVCTElDICItLy9pYmF0aXMuYXBhY2hlLm9yZy8vRFREIFNRTCBNYXAgMi4wLy9FTiINCisgICAgICAgICJodHRwOi8vaWJhdGlzLmFwYWNoZS5vcmcvZHRkL3NxbC1tYXAtMi5kdGQiPg0KKw0KKzxzcWxNYXAgbmFtZXNwYWNlPSJtYWlscmVhZGVyIj4NCisNCisgICAgPHR5cGVBbGlhcyBhbGlhcz0iZGF0YSINCisgICAgICAgICAgICAgICB0eXBlPSJtYWlscmVhZGVyMi5BcHBEYXRhIi8+DQorDQorICAgIDxzZWxlY3QgaWQ9IkxPQ0FMRV9MSVNUIiByZXN1bHRDbGFzcz0iZGF0YSI+DQorICAgICAgICBTRUxFQ1QgcGtfbG9jYWxlIEFTIGxvY2FsZV9rZXksIGxvY2FsZV9jb2RlLCBsb2NhbGVfbmFtZQ0KKyAgICAgICAgRlJPTSBsb2NhbGU7DQorICAgIDwvc2VsZWN0Pg0KKw0KKyAgICA8c2VsZWN0IGlkPSJSRUdJU1RSQVRJT05fSU5TRVJUX0FTU0VSVCIgcGFyYW1ldGVyQ2xhc3M9ImRhdGEiIHJlc3VsdENsYXNzPSJsb25nIj4NCisgICAgICAgIFNFTEVDVCBDT1VOVCgqKQ0KKyAgICAgICAgRlJPTSByZWdpc3RyYXRpb24NCisgICAgICAgIFdIRVJFIHVzZXJuYW1lPSN1c2VybmFtZSM7DQorICAgIDwvc2VsZWN0Pg0KKw0KKyAgICA8aW5zZXJ0IGlkPSJSRUdJU1RSQVRJT05fSU5TRVJUIiBwYXJhbWV0ZXJDbGFzcz0iZGF0YSI+DQorICAgICAgICBJTlNFUlQgSU5UTyByZWdpc3RyYXRpb24NCisgICAgICAgIChwa19yZWdpc3RyYXRpb24sIGZrX2xvY2FsZSwgdXNlcm5hbWUsIHBhc3N3b3JkLCBmdWxsbmFtZSwgZW1haWxfZnJvbSwgZW1haWxfcmVwbHl0bykNCisgICAgICAgIFZBTFVFUyAoI3JlZ2lzdHJhdGlvbl9rZXkjLCAjbG9jYWxlX2tleSMsICN1c2VybmFtZSMsICNwYXNzd29yZCMsICNmdWxsbmFtZSMsICNlbWFpbF9mcm9tIywgI2VtYWlsX3JlcGx5dG8jKTsNCisgICAgPC9pbnNlcnQ+DQorDQorICAgIDxzZWxlY3QgaWQ9IlJFR0lTVFJBVElPTl9QQVNTV09SRCIgcGFyYW1ldGVyQ2xhc3M9ImRhdGEiIHJlc3VsdENsYXNzPSJkYXRhIj4NCisgICAgICAgIFNFTEVDVCB1c2VybmFtZSwgcGFzc3dvcmQNCisgICAgICAgIEZST00gcmVnaXN0cmF0aW9uDQorICAgICAgICBXSEVSRSB1c2VybmFtZT0jdXNlcm5hbWUjOw0KKyAgICA8L3NlbGVjdD4NCisNCisgICAgPHNlbGVjdCBpZD0iUkVHSVNUUkFUSU9OX0ZVTExOQU1FIiBwYXJhbWV0ZXJDbGFzcz0iZGF0YSIgcmVzdWx0Q2xhc3M9ImRhdGEiPg0KKyAgICAgICAgU0VMRUNUIHVzZXJuYW1lLCBmdWxsbmFtZQ0KKyAgICAgICAgRlJPTSByZWdpc3RyYXRpb24NCisgICAgICAgIFdIRVJFIHVzZXJuYW1lPSN1c2VybmFtZSM7DQorICAgIDwvc2VsZWN0Pg0KKw0KKyAgICA8c2VsZWN0IGlkPSJSRUdJU1RSQVRJT05fRURJVCIgcGFyYW1ldGVyQ2xhc3M9ImRhdGEiIHJlc3VsdENsYXNzPSJkYXRhIj4NCisgICAgICAgIFNFTEVDVCBwa19yZWdpc3RyYXRpb24gQVMgcmVnaXN0cmF0aW9uX2tleSwgZmtfbG9jYWxlIEFTIGxvY2FsZV9rZXksDQorICAgICAgICB1c2VybmFtZSwgcGFzc3dvcmQsIGZ1bGxuYW1lLCBlbWFpbF9mcm9tLCBlbWFpbF9yZXBseXRvDQorICAgICAgICBGUk9NIHJlZ2lzdHJhdGlvbg0KKyAgICAgICAgV0hFUkUgcGtfcmVnaXN0cmF0aW9uPSNyZWdpc3RyYXRpb25fa2V5IzsNCisgICAgPC9zZWxlY3Q+DQorDQorICAgIDx1cGRhdGUgaWQ9IlJFR0lTVFJBVElPTl9VUERBVEUiIHBhcmFtZXRlckNsYXNzPSJkYXRhIj4NCisgICAgICAgIFVQREFURSByZWdpc3RyYXRpb24NCisgICAgICAgIFNFVCBma19sb2NhbGU9I2xvY2FsZV9rZXkjLCB1c2VybmFtZT0jdXNlcm5hbWUjLCBwYXNzd29yZD0jcGFzc3dvcmQjLCBmdWxsbmFtZT0jZnVsbG5hbWUjLA0KKyAgICAgICAgZW1haWxfZnJvbT0jZW1haWxfZnJvbSMsIGVtYWlsX3JlcGx5dG89I2VtYWlsX3JlcGx5dG8jDQorICAgICAgICBXSEVSRSBwa19yZWdpc3RyYXRpb249I3JlZ2lzdHJhdGlvbl9rZXkjOw0KKyAgICA8L3VwZGF0ZT4NCisNCisgICAgPHNlbGVjdCBpZD0iU1VCU0NSSVBUSU9OX0lOU0VSVF9BU1NFUlQiIHBhcmFtZXRlckNsYXNzPSJkYXRhIiByZXN1bHRDbGFzcz0ibG9uZyI+DQorICAgICAgICBTRUxFQ1QgQ09VTlQoKikNCisgICAgICAgIEZST00gc3Vic2NyaXB0aW9uDQorICAgICAgICBXSEVSRSBma19yZWdpc3RyYXRpb249I3JlZ2lzdHJhdGlvbl9rZXkjDQorICAgICAgICBBTkQgc3Vic2NyaXB0aW9uX2hvc3Q9I3N1YnNjcmlwdGlvbl9ob3N0IzsNCisgICAgPC9zZWxlY3Q+DQorDQorICAgIDxpbnNlcnQgaWQ9IlNVQlNDUklQVElPTl9JTlNFUlQiIHBhcmFtZXRlckNsYXNzPSJkYXRhIj4NCisgICAgICAgIElOU0VSVCBJTlRPIHN1YnNjcmlwdGlvbg0KKyAgICAgICAgKHBrX3N1YnNjcmlwdGlvbiwgZmtfcmVnaXN0cmF0aW9uLCBma19wcm90b2NvbCwgc3Vic2NyaXB0aW9uX2hvc3QsIGhvc3RfdXNlciwgaG9zdF9wYXNzLCBob3N0X2F1dG8pDQorICAgICAgICBWQUxVRVMgKCNzdWJzY3JpcHRpb25fa2V5IywgI3JlZ2lzdHJhdGlvbl9rZXkjLCAjcHJvdG9jb2xfa2V5IywgI3N1YnNjcmlwdGlvbl9ob3N0IywNCisgICAgICAgICNob3N0X3VzZXIjLCAjaG9zdF9wYXNzIywgI2hvc3RfYXV0byMpOw0KKyAgICA8L2luc2VydD4NCisNCisgICAgPHNlbGVjdCBpZD0iU1VCU0NSSVBUSU9OX0xJU1QiIHBhcmFtZXRlckNsYXNzPSJkYXRhIiByZXN1bHRDbGFzcz0iZGF0YSI+DQorICAgICAgICBTRUxFQ1QgcGtfc3Vic2NyaXB0aW9uIEFTIHN1YnNjcmlwdGlvbl9rZXksDQorICAgICAgICBzdWJzY3JpcHRpb25faG9zdCwgaG9zdF91c2VyLCBob3N0X3Bhc3MsIGhvc3RfYXV0bywgcHJvdG9jb2xfbmFtZQ0KKyAgICAgICAgRlJPTSBzdWJzY3JpcHRpb24NCisgICAgICAgIEpPSU4gcHJvdG9jb2wgT04gcGtfcHJvdG9jb2w9ZmtfcHJvdG9jb2wNCisgICAgICAgIFdIRVJFIGZrX3JlZ2lzdHJhdGlvbj0jcmVnaXN0cmF0aW9uX2tleSM7DQorICAgIDwvc2VsZWN0Pg0KKw0KKyAgICA8c2VsZWN0IGlkPSJTVUJTQ1JJUFRJT05fRURJVCIgcGFyYW1ldGVyQ2xhc3M9ImRhdGEiIHJlc3VsdENsYXNzPSJkYXRhIj4NCisgICAgICAgIFNFTEVDVCBwa19zdWJzY3JpcHRpb24gQVMgc3Vic2NyaXB0aW9uX2tleSwgZmtfcHJvdG9jb2wgQVMgcHJvdG9jb2xfa2V5LA0KKyAgICAgICAgc3Vic2NyaXB0aW9uX2hvc3QsIGhvc3RfdXNlciwgaG9zdF9wYXNzLCBob3N0X2F1dG8sIHByb3RvY29sX25hbWUNCisgICAgICAgIEZST00gc3Vic2NyaXB0aW9uDQorICAgICAgICBKT0lOIHByb3RvY29sIE9OIHBrX3Byb3RvY29sPWZrX3Byb3RvY29sDQorICAgICAgICBXSEVSRSBwa19zdWJzY3JpcHRpb249I3N1YnNjcmlwdGlvbl9rZXkjOw0KKyAgICA8L3NlbGVjdD4NCisNCisgICAgPHVwZGF0ZSBpZD0iU1VCU0NSSVBUSU9OX1VQREFURSIgcGFyYW1ldGVyQ2xhc3M9ImRhdGEiPg0KKyAgICAgICAgVVBEQVRFIHN1YnNjcmlwdGlvbg0KKyAgICAgICAgU0VUIGZrX3JlZ2lzdHJhdGlvbj0jcmVnaXN0cmF0aW9uX2tleSMsIGZrX3Byb3RvY29sPSNwcm90b2NvbF9rZXkjLA0KKyAgICAgICAgc3Vic2NyaXB0aW9uX2hvc3Q9I3N1YnNjcmlwdGlvbl9ob3N0IywgaG9zdF91c2VyPSNob3N0X3VzZXIjLCBob3N0X3Bhc3M9I2hvc3RfcGFzcyMsIGhvc3RfYXV0bz0jaG9zdF9hdXRvIw0KKyAgICAgICAgV0hFUkUgcGtfc3Vic2NyaXB0aW9uPSNzdWJzY3JpcHRpb25fa2V5IzsNCisgICAgPC91cGRhdGU+DQorDQorPC9zcWxNYXA+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3Jlc291cmNlcy9zdHJ1dHMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvc3RydXRzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjA0MWNlZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvc3RydXRzLnByb3BlcnRpZXMKQEAgLTAsMCArMSw0IEBACitzdHJ1dHMub2JqZWN0RmFjdG9yeSA9IHNwcmluZworc3RydXRzLmRldk1vZGUgPSB0cnVlCitzdHJ1dHMuY3VzdG9tLmkxOG4ucmVzb3VyY2VzID0gcmVzb3VyY2VzCitzdHJ1dHMuZW5hYmxlLkR5bmFtaWNNZXRob2RJbnZvY2F0aW9uID0gZmFsc2UKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvc3RydXRzLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi9yZXNvdXJjZXMvc3RydXRzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWUzNzUzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3Jlc291cmNlcy9zdHJ1dHMueG1sCkBAIC0wLDAgKzEsNzIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/PgorPCFET0NUWVBFIHN0cnV0cyBQVUJMSUMKKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMi4wLy9FTiIKKyAgICAgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy0yLjAuZHRkIj4KKworPHN0cnV0cz4KKyAgICA8aW5jbHVkZSBmaWxlPSJzdHJ1dHMtZGVmYXVsdC54bWwiLz4KKworICAgIDxwYWNrYWdlIG5hbWU9ImRlZmF1bHQiIG5hbWVzcGFjZT0iIiBleHRlbmRzPSJzdHJ1dHMtZGVmYXVsdCI+CisKKyAgICAgICAgPGdsb2JhbC1yZXN1bHRzPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJlcnJvciI+L3BhZ2VzL0Vycm9yLmpzcDwvcmVzdWx0PgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJpbnZhbGlkLnRva2VuIj4vcGFnZXMvRXJyb3IuanNwPC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9InN1Y2Nlc3MiIHR5cGU9InJlZGlyZWN0LWFjdGlvbiI+TWFpbk1lbnU8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iZXhwaXJlZCIgdHlwZT0iY2hhaW4iPkNoYW5nZVBhc3N3b3JkPC9yZXN1bHQ+CisgICAgICAgIDwvZ2xvYmFsLXJlc3VsdHM+CisKKyAgICAgICAgPGdsb2JhbC1leGNlcHRpb24tbWFwcGluZ3M+CisgICAgICAgICAgICA8ZXhjZXB0aW9uLW1hcHBpbmcKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0PSJlcnJvciIKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uPSJqYXZhLmxhbmcuVGhyb3dhYmxlIi8+CisgICAgICAgICAgICA8ZXhjZXB0aW9uLW1hcHBpbmcKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uPSJvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbiIKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0PSJleHBpcmVkIi8+CisgICAgICAgIDwvZ2xvYmFsLWV4Y2VwdGlvbi1tYXBwaW5ncz4KKworICAgICAgICA8IS0tIGdvdG8gYWN0aW9uczogRXhpdCB0byBhbm90aGVyIHdvcmtmbG93IC0tPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0ic3Vic2NyaXB0aW9uL1NhdmUiIGNsYXNzPSJtYWlscmVhZGVyMi5zdWJzY3JpcHRpb24uU2F2ZSI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvc3Vic2NyaXB0aW9uLmpzcDwvcmVzdWx0PgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPnJlZ2lzdHJhdGlvbi92SW5wdXQ8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPCEtLSBwcmVwYXJlIGFjdGlvbnM6IENvbmZpcm0vRGVsZXRlLCBFZGl0LCBJbnB1dCAtLT4KKyAgICAgICAgPCEtLSBBICIhIiBtaWdodCBiZSBhIGJldHRlciBjb252ZW50aW9uLAorICAgICAgICAgICAgIGJ1dCB0aGF0IGRvZXNuJ3Qgc2VlbSB0byB3b3JrIHdpdGggYSBidXR0b24gLS0+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSIqL3YqIiBjbGFzcz0ibWFpbHJlYWRlcjIuezF9LnsyfSI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy97MX0uanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDwhLS0gZXhlY3V0ZSBhY3Rpb25zOiBDcmVhdGUsIFJldHJpZXZlLCBVcGRhdGUsIFNhdmUgLS0+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSIqLyoiIGNsYXNzPSJtYWlscmVhZGVyMi57MX0uezJ9Ij4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy97MX0uanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDwhLS0gV2h5IGRvZW4ndCB0aGVzZSBtYXRjaCAqIC0tPgorICAgICAgICA8IS0tIEl0IHNlZW1zIHRvIGJlIGNvbmNhdGVybmF0aW5nIGEgcGVyaW9kIHRvIHRoZSB0b2tlbiAtLT4KKyAgICAgICAgPCEtLSBVbmFibGUgdG8gaW5zdGFudGlhdGUgQWN0aW9uLCBtYWlscmVhZGVyMi5XZWxjb21lLiwKKyAgICAgICAgICAgICBkZWZpbmVkIGZvciAnV2VsY29tZScgaW4gbmFtZXNwYWNlICcvJ21haWxyZWFkZXIyLldlbGNvbWUuIC0tPgorICAgICAgICA8YWN0aW9uIG5hbWU9IkxvZ29mZiIgY2xhc3M9Im1haWxyZWFkZXIyLkxvZ29mZiI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9Mb2dvZmYuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iTWFpbk1lbnUiIGNsYXNzPSJtYWlscmVhZGVyMi5NYWluTWVudSI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9NYWluTWVudS5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJXZWxjb21lIiBjbGFzcz0ibWFpbHJlYWRlcjIuV2VsY29tZSI+CisgICAgICAgICAgICA8cmVzdWx0Pi9wYWdlcy9XZWxjb21lLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgICAgICA8IS0tIGRpc3BsYXkgYWN0aW9uczogV2VsY29tZSwgTG9nb2ZmLCBNYWluTWVudSAtLT4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IioiIGNsYXNzPSJtYWlscmVhZGVyMi57MX0iPgorICAgICAgICAgICAgPHJlc3VsdD4vcGFnZXMvezF9LmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgIDwvcGFja2FnZT4KKworPC9zdHJ1dHM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL01FVEEtSU5GL2NvbnRleHQueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3dlYmFwcC9NRVRBLUlORi9jb250ZXh0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBiNWQwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3dlYmFwcC9NRVRBLUlORi9jb250ZXh0LnhtbApAQCAtMCwwICsxLDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Q29udGV4dCBwYXRoPSIvIj4KKzwvQ29udGV4dD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi93ZWIueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU4MzEwYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi93ZWIueG1sCkBAIC0wLDAgKzEsNDEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4KKzwhRE9DVFlQRSB3ZWItYXBwIFBVQkxJQyAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIFdlYiBBcHBsaWNhdGlvbiAyLjMvL0VOIiAiaHR0cDovL2phdmEuc3VuLmNvbS9kdGQvd2ViLWFwcF8yXzMuZHRkIj4KKzx3ZWItYXBwPgorCisgICAgPGRpc3BsYXktbmFtZT5TdHJ1dHMgMiBNYWlscmVhZGVyPC9kaXNwbGF5LW5hbWU+CisKKyAgICA8Y29udGV4dC1wYXJhbT4KKyAgICAgICAgPHBhcmFtLW5hbWU+Y29udGV4dENvbmZpZ0xvY2F0aW9uPC9wYXJhbS1uYW1lPgorICAgICAgICA8cGFyYW0tdmFsdWU+Y2xhc3NwYXRoKjphcHBsaWNhdGlvbkNvbnRleHQqLnhtbDwvcGFyYW0tdmFsdWU+CisgICAgPC9jb250ZXh0LXBhcmFtPgorCisgICAgPGZpbHRlcj4KKyAgICAgICAgPGZpbHRlci1uYW1lPlN0cnV0czI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8ZmlsdGVyLWNsYXNzPgorICAgICAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuRmlsdGVyRGlzcGF0Y2hlcgorICAgICAgICA8L2ZpbHRlci1jbGFzcz4KKyAgICA8L2ZpbHRlcj4KKworICAgIDxmaWx0ZXItbWFwcGluZz4KKyAgICAgICAgPGZpbHRlci1uYW1lPlN0cnV0czI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8dXJsLXBhdHRlcm4+Lyo8L3VybC1wYXR0ZXJuPgorICAgIDwvZmlsdGVyLW1hcHBpbmc+CisKKyAgICA8bGlzdGVuZXI+CisgICAgICAgIDxsaXN0ZW5lci1jbGFzcz4KKyAgICAgICAgICAgIG9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLmNvbnRleHQuQ29udGV4dExvYWRlckxpc3RlbmVyCisgICAgICAgIDwvbGlzdGVuZXItY2xhc3M+CisgICAgPC9saXN0ZW5lcj4KKworICAgIDwhLS0gQXBwbGljYXRpb24gTGlzdGVuZXIgZm9yIE1haWxyZWFkZXIgZGF0YWJhc2UgLS0+CisgICAgPGxpc3RlbmVyPgorICAgICAgICA8bGlzdGVuZXItY2xhc3M+CisgICAgICAgICAgICBtYWlscmVhZGVyMi5BcHBsaWNhdGlvbkxpc3RlbmVyCisgICAgICAgIDwvbGlzdGVuZXItY2xhc3M+CisgICAgPC9saXN0ZW5lcj4KKworICAgIDx3ZWxjb21lLWZpbGUtbGlzdD4KKyAgICAgICAgPHdlbGNvbWUtZmlsZT5pbmRleC5odG1sPC93ZWxjb21lLWZpbGU+CisgICAgPC93ZWxjb21lLWZpbGUtbGlzdD4KKworPC93ZWItYXBwPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3dlYmFwcC9jc3MvbWFpbHJlYWRlci5jc3MgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL2Nzcy9tYWlscmVhZGVyLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmM3NjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3dlYmFwcC9jc3MvbWFpbHJlYWRlci5jc3MKQEAgLTAsMCArMSw0NiBAQAorLyoqCisqIE1haWxyZWFkZXIgc3R5bGVzaGVldAorKi8KKworYm9keSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsKKyAgICBjb2xvcjogIzAwMDAwMDsKKyAgICBsaW5rOiAwMDAwNjY7CisgICAgdmlzaXRlZDogIzY2MDA2NjsKKyAgICBhY3RpdmU6ICMzM0NDQ0M7Cit9CisKK0E6aG92ZXIgeworICAgIGNvbG9yOiAjRkYwMDAwOworfQorCitoMSB7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Cit9CisKK2gyIHsKKyAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKK30KKworaDMgeworICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOworfQorCitoNCB7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Cit9CisKK2g1IHsKKyAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKK30KKworaDYgeworICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOworfQorCitmb250LmhpbnQgeworICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICBmb250LXNpemU6IDgwJTsKKyAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvaW5kZXguaHRtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjhkNWY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3dlYmFwcC9pbmRleC5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxNRVRBIEhUVFAtRVFVSVY9IlJlZnJlc2giIENPTlRFTlQ9IjA7VVJMPVdlbGNvbWUuYWN0aW9uIj4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD5Mb2FkaW5nIC4uLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvQ2hhbmdlUGFzc3dvcmQuanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9DaGFuZ2VQYXNzd29yZC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzdkODViZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvQ2hhbmdlUGFzc3dvcmQuanNwCkBAIC0wLDAgKzEsMjUgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+Cis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHRpdGxlPjxzOnRleHQgbmFtZT0iY2hhbmdlLnRpdGxlIi8+PC90aXRsZT4KKyAgICA8bGluayBocmVmPSI8czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICAgICAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorPC9oZWFkPgorCis8Ym9keT4KKworPHA+CisgICAgPHM6dGV4dCBuYW1lPSJjaGFuZ2UubWVzc2FnZSIvPgorPC9wPgorCis8cD4KKyAgICA8YSBocmVmPSI8czp1cmwgYWN0aW9uPSJMb2dvbiIvPiI+CisgICAgICAgIDxzOnRleHQgbmFtZT0iY2hhbmdlLnRyeSIvPgorICAgIDwvYT4KKzwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9FcnJvci5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL0Vycm9yLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODFlZGRiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9FcnJvci5qc3AKQEAgLTAsMCArMSw0MCBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+VW5leHBlY3RlZCBFcnJvcjwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgyPkFuIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VyZWQ8L2gyPgorCis8cD4KKyAgICBQbGVhc2UgcmVwb3J0IHRoaXMgZXJyb3IgdG8geW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvcgorICAgIG9yIGFwcHJvcHJpYXRlIHRlY2huaWNhbCBzdXBwb3J0IHBlcnNvbm5lbC4KKyAgICBUaGFuayB5b3UgZm9yIHlvdXIgY29vcGVyYXRpb24uCis8L3A+CisKKzxoci8+CisKKzxoMz5FcnJvciBNZXNzYWdlPC9oMz4KKworPHM6YWN0aW9uZXJyb3IvPgorCis8cD4KKyAgICA8czpwcm9wZXJ0eSB2YWx1ZT0iJXtleGNlcHRpb24ubWVzc2FnZX0iLz4KKzwvcD4KKworPGhyLz4KKworPGgzPlRlY2huaWNhbCBEZXRhaWxzPC9oMz4KKworPHA+CisgICAgPHM6cHJvcGVydHkgdmFsdWU9IiV7ZXhjZXB0aW9uU3RhY2t9Ii8+Cis8L3A+CisKKzxqc3A6aW5jbHVkZSBwYWdlPSJGb290ZXIuanNwIi8+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvRm9vdGVyLmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvRm9vdGVyLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMmVhZTFlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9Gb290ZXIuanNwCkBAIC0wLDAgKzEsNiBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPGhyLz4KKworPHA+CisgICAgPGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iV2VsY29tZSIgLz4iPjxzOnRleHQgbmFtZT0iaW5kZXgudGl0bGUiLz48L2E+Cis8L3A+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL0xvZ29mZi5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL0xvZ29mZi5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODkyOGFlYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvTG9nb2ZmLmpzcApAQCAtMCwwICsxIEBACis8JSByZXNwb25zZS5zZW5kUmVkaXJlY3QoIldlbGNvbWUuYWN0aW9uIik7ICU+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL01haW5NZW51LmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvTWFpbk1lbnUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjZDg5ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL01haW5NZW51LmpzcApAQCAtMCwwICsxLDMzIEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT48czp0ZXh0IG5hbWU9Im1haW5NZW51LnRpdGxlIi8+PC90aXRsZT4KKyAgICA8bGluayBocmVmPSI8czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICAgICAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorPC9oZWFkPgorCis8Ym9keT4KKzxoMz48czp0ZXh0IG5hbWU9Im1haW5NZW51LmhlYWRpbmciLz4gPHM6cHJvcGVydHkKKyAgICAgICAgdmFsdWU9InVzZXIuZnVsbE5hbWUiLz48L2gzPgorPHVsPgorICAgIDxsaT4KKyAgICAgICAgPHM6dXJsIGlkPSJJbnB1dCIgYWN0aW9uPSJyZWdpc3RyYXRpb24vdklucHV0IiAvPgorICAgICAgICA8czphIGhyZWY9IiV7SW5wdXR9Ij4KKyAgICAgICAgICAgIDxzOnRleHQgbmFtZT0ibWFpbk1lbnUucmVnaXN0cmF0aW9uIi8+CisgICAgICAgIDwvczphPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgICA8czp1cmwgaWQ9IkxvZ29mZiIgYWN0aW9uPSJMb2dvZmYiLz4KKyAgICAgICAgPHM6YSBocmVmPSIle0xvZ29mZn0iPgorICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJtYWluTWVudS5sb2dvZmYiLz4KKyAgICAgICAgPC9zOmE+CisgICAgPC9saT4KKzwvdWw+CisKKzxqc3A6aW5jbHVkZSBwYWdlPSJGb290ZXIuanNwIi8+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvV2VsY29tZS5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL1dlbGNvbWUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5MzQ3ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL1dlbGNvbWUuanNwCkBAIC0wLDAgKzEsNjQgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+Cis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiLz4KKyAgICA8dGl0bGU+PHM6dGV4dCBuYW1lPSJpbmRleC50aXRsZSIvPjwvdGl0bGU+CisgICAgPGxpbmsgaHJlZj0iPHM6dXJsIHZhbHVlPSIvY3NzL21haWxyZWFkZXIuY3NzIi8+IiByZWw9InN0eWxlc2hlZXQiCisgICAgICAgICAgdHlwZT0idGV4dC9jc3MiLz4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDM+PHM6dGV4dCBuYW1lPSJpbmRleC5oZWFkaW5nIi8+PC9oMz4KKworPHVsPgorICAgIDxsaT4KKyAgICAgICAgPHM6dXJsIGlkPSJyZWdpc3RyYXRpb24iIGFjdGlvbj0icmVnaXN0cmF0aW9uL3ZJbnB1dCIgLz4KKyAgICAgICAgPHM6YSBocmVmPSIle3JlZ2lzdHJhdGlvbn0iPjxzOnRleHQgbmFtZT0iaW5kZXgucmVnaXN0cmF0aW9uIi8+PC9zOmE+CisgICAgPC9saT4KKyAgICA8bGk+CisgICAgICAgIDxzOnVybCBpZD0ibG9nb24iIGFjdGlvbj0ibG9nb24vdklucHV0Ii8+CisgICAgICAgIDxzOmEgaHJlZj0iJXtsb2dvbn0iPjxzOnRleHQgbmFtZT0iaW5kZXgubG9nb24iLz48L3M6YT4KKyAgICA8L2xpPgorPC91bD4KKworPGgzPkxhbmd1YWdlIE9wdGlvbnM8L2gzPgorPHVsPgorICAgIDxsaT4KKyAgICAgICAgPHM6dXJsIGlkPSJlbiIgYWN0aW9uPSJXZWxjb21lIj4KKyAgICAgICAgICAgIDxzOnBhcmFtIG5hbWU9InJlcXVlc3RfbG9jYWxlIj5lbjwvczpwYXJhbT4KKyAgICAgICAgPC9zOnVybD4KKyAgICAgICAgPHM6YSBocmVmPSIle2VufSI+RW5nbGlzaDwvczphPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgICA8czp1cmwgaWQ9ImphIiBhY3Rpb249IldlbGNvbWUiPgorICAgICAgICAgICAgPHM6cGFyYW0gbmFtZT0icmVxdWVzdF9sb2NhbGUiPmphPC9zOnBhcmFtPgorICAgICAgICA8L3M6dXJsPgorICAgICAgICA8czphIGhyZWY9IiV7amF9Ij5KYXBhbmVzZTwvczphPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgICA8czp1cmwgaWQ9InJ1IiBhY3Rpb249IldlbGNvbWUiPgorICAgICAgICAgICAgPHM6cGFyYW0gbmFtZT0icmVxdWVzdF9sb2NhbGUiPnJ1PC9zOnBhcmFtPgorICAgICAgICA8L3M6dXJsPgorICAgICAgICA8czphIGhyZWY9IiV7cnV9Ij5SdXNzaWFuPC9zOmE+CisgICAgPC9saT4KKzwvdWw+CisKKzxoci8+CisKKzxwPgorICAgIDxzOmkxOG4gbmFtZT0iYWx0ZXJuYXRlIj4KKyAgICAgICAgPGltZyBzcmM9IjxzOnRleHQgbmFtZT0ic3RydXRzLmxvZ28ucGF0aCIvPiIKKyAgICAgICAgICAgICBhbHQ9IjxzOnRleHQgbmFtZT0ic3RydXRzLmxvZ28uYWx0Ii8+Ii8+CisgICAgPC9zOmkxOG4+Cis8L3A+CisKKzxwPgorICAgIDxzOnVybCBpZD0iVG91ciIgYWN0aW9uPSJUb3VyIi8+PHM6YSBocmVmPSIle1RvdXJ9Ij48czp0ZXh0IG5hbWU9ImluZGV4LnRvdXIiLz48L3M6YT4KKzwvcD4KKworPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL2xvZ29uLmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvbG9nb24uanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyYmJhZTQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL2xvZ29uLmpzcApAQCAtMCwwICsxLDMwIEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPg0KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4NCis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIg0KKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4NCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+DQorPGhlYWQ+DQorICAgIDx0aXRsZT48czp0ZXh0IG5hbWU9ImxvZ29uLnRpdGxlIi8+PC90aXRsZT4NCisgICAgPGxpbmsgaHJlZj0iPHM6dXJsIHZhbHVlPSIvY3NzL21haWxyZWFkZXIuY3NzIi8+IiByZWw9InN0eWxlc2hlZXQiDQorICAgICAgICAgIHR5cGU9InRleHQvY3NzIi8+DQorPC9oZWFkPg0KKw0KKzxib2R5IG9uTG9hZD0ic2VsZi5mb2N1cygpO2RvY3VtZW50LlJldHJpZXZlLnVzZXJuYW1lLmZvY3VzKCkiPg0KKw0KKzxzOmFjdGlvbmVycm9yLz4NCis8czpmb3JtIGlkPSJSZXRyaWV2ZSIgYWN0aW9uPSJsb2dvbi9SZXRyaWV2ZSIgdmFsaWRhdGU9InRydWUiPg0KKyAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IiV7Z2V0VGV4dCgndXNlcm5hbWUnKX0iIG5hbWU9InVzZXJuYW1lIi8+DQorDQorICAgIDxzOnBhc3N3b3JkIGxhYmVsPSIle2dldFRleHQoJ3Bhc3N3b3JkJyl9IiBuYW1lPSJwYXNzd29yZCIgc2hvd1Bhc3N3b3JkPSJ0cnVlIi8+DQorDQorICAgIDxzOnN1Ym1pdCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uc2F2ZScpfSIvPg0KKw0KKyAgICA8czpyZXNldCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24ucmVzZXQnKX0iLz4NCisNCisgICAgPHM6c3VibWl0IGFjdGlvbj0iV2VsY29tZSIgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLmNhbmNlbCcpfSINCisgICAgICAgICAgICAgIG9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCIvPg0KKzwvczpmb3JtPg0KKw0KKzxqc3A6aW5jbHVkZSBwYWdlPSJGb290ZXIuanNwIi8+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL3JlZ2lzdHJhdGlvbi5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL3JlZ2lzdHJhdGlvbi5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzljMmMxNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvcmVnaXN0cmF0aW9uLmpzcApAQCAtMCwwICsxLDEzMCBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4NCis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+DQorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiINCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+DQorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPg0KKzxoZWFkPg0KKyAgICA8czppZiB0ZXN0PSJ0YXNrPT0nQ3JlYXRlJyI+DQorICAgICAgICA8dGl0bGU+PHM6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlIi8+PC90aXRsZT4NCisgICAgPC9zOmlmPg0KKyAgICA8czppZiB0ZXN0PSJ0YXNrPT0nRWRpdCciPg0KKyAgICAgICAgPHRpdGxlPjxzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQiLz48L3RpdGxlPg0KKyAgICA8L3M6aWY+DQorICAgIDxsaW5rIGhyZWY9IjxzOnVybCB2YWx1ZT0iL2Nzcy9tYWlscmVhZGVyLmNzcyIvPiIgcmVsPSJzdHlsZXNoZWV0Ig0KKyAgICAgICAgICB0eXBlPSJ0ZXh0L2NzcyIvPg0KKzwvaGVhZD4NCisNCis8Ym9keSBvbkxvYWQ9InNlbGYuZm9jdXMoKTtkb2N1bWVudC5mb3JtMS51c2VybmFtZS5mb2N1cygpIj4NCisNCis8czphY3Rpb25lcnJvci8+DQorPHM6Zm9ybSBpZD0iZm9ybTEiIGFjdGlvbj0icmVnaXN0cmF0aW9uL1VwZGF0ZSIgdmFsaWRhdGU9InRydWUiPg0KKyAgICA8czp0b2tlbi8+DQorICAgIDxzOmhpZGRlbiBuYW1lPSJ0YXNrIi8+DQorICAgIDxzOmlmIHRlc3Q9InRhc2sgPT0gJ0NyZWF0ZSciPg0KKyAgICAgICAgPHM6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ3VzZXJuYW1lJyl9IiBuYW1lPSJ1c2VybmFtZSIvPg0KKyAgICA8L3M6aWY+DQorICAgIDxzOmVsc2U+DQorICAgICAgICA8czpsYWJlbCBsYWJlbD0iJXtnZXRUZXh0KCd1c2VybmFtZScpfSIgbmFtZT0idXNlcm5hbWUiLz4NCisgICAgICAgIDxzOmhpZGRlbiBuYW1lPSJ1c2VybmFtZSIvPg0KKyAgICA8L3M6ZWxzZT4NCisNCisgICAgPHM6cGFzc3dvcmQgbGFiZWw9IiV7Z2V0VGV4dCgncGFzc3dvcmQnKX0iIG5hbWU9InBhc3N3b3JkIi8+DQorDQorICAgIDxzOnBhc3N3b3JkIGxhYmVsPSIle2dldFRleHQoJ3Bhc3N3b3JkMicpfSIgbmFtZT0icGFzc3dvcmQyIi8+DQorDQorICAgIDxzOnRleHRmaWVsZCBsYWJlbD0iJXtnZXRUZXh0KCdmdWxsTmFtZScpfSINCisgICAgICAgICAgICAgICAgIG5hbWU9InVzZXIuZnVsbE5hbWUiLz4NCisNCisgICAgPHM6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ2Zyb21BZGRyZXNzJyl9Ig0KKyAgICAgICAgICAgICAgICAgbmFtZT0idXNlci5mcm9tQWRkcmVzcyIvPg0KKw0KKyAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IiV7Z2V0VGV4dCgncmVwbHlUb0FkZHJlc3MnKX0iDQorICAgICAgICAgICAgICAgICBuYW1lPSJ1c2VyLnJlcGx5VG9BZGRyZXNzIi8+DQorDQorICAgIDxzOmlmIHRlc3Q9InRhc2sgPT0gJ0NyZWF0ZSciPg0KKyAgICAgICAgPHM6c3VibWl0IHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5zYXZlJyl9IiBhY3Rpb249InJlZ2lzdHJhdGlvbi9DcmVhdGUiLz4NCisNCisgICAgICAgIDxzOnJlc2V0IHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5yZXNldCcpfSIvPg0KKw0KKyAgICAgICAgPHM6c3VibWl0IGFjdGlvbj0iV2VsY29tZSIgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLmNhbmNlbCcpfSINCisgICAgICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4NCisgICAgPC9zOmlmPg0KKyAgICA8czplbHNlPg0KKyAgICAgICAgPHM6c3VibWl0IHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5zYXZlJyl9Ii8+DQorDQorICAgICAgICA8czpyZXNldCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24ucmVzZXQnKX0iLz4NCisNCisgICAgICAgIDxzOnN1Ym1pdCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uY2FuY2VsJyl9Ig0KKyAgICAgICAgICAgICAgICAgIGFjdGlvbj0iTWFpbk1lbnUiIG9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCIvPg0KKyAgICA8L3M6ZWxzZT4NCisNCis8L3M6Zm9ybT4NCisNCis8czppZiB0ZXN0PSJ0YXNrID09ICdFZGl0JyI+DQorICAgIDxkaXYgYWxpZ249ImNlbnRlciI+DQorICAgICAgICA8aDM+PHM6dGV4dCBuYW1lPSJoZWFkaW5nLnN1YnNjcmlwdGlvbnMiLz48L2gzPg0KKyAgICA8L2Rpdj4NCisNCisgICAgPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiPg0KKw0KKyAgICAgICAgPHRyPg0KKyAgICAgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMzAlIj4NCisgICAgICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJoZWFkaW5nLmhvc3QiLz4NCisgICAgICAgICAgICA8L3RoPg0KKyAgICAgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMjUlIj4NCisgICAgICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJoZWFkaW5nLnVzZXIiLz4NCisgICAgICAgICAgICA8L3RoPg0KKyAgICAgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTAlIj4NCisgICAgICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJoZWFkaW5nLnR5cGUiLz4NCisgICAgICAgICAgICA8L3RoPg0KKyAgICAgICAgICAgIDx0aCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTAlIj4NCisgICAgICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJoZWFkaW5nLmF1dG9Db25uZWN0Ii8+DQorICAgICAgICAgICAgPC90aD4NCisgICAgICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjE1JSI+DQorICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy5hY3Rpb24iLz4NCisgICAgICAgICAgICA8L3RoPg0KKyAgICAgICAgPC90cj4NCisNCisgICAgICAgIDxzOml0ZXJhdG9yIHZhbHVlPSJ1c2VyLnN1YnNjcmlwdGlvbnMiPg0KKyAgICAgICAgICAgIDx0cj4NCisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4NCisgICAgICAgICAgICAgICAgICAgIDxzOnByb3BlcnR5IHZhbHVlPSJob3N0Ii8+DQorICAgICAgICAgICAgICAgIDwvdGQ+DQorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+DQorICAgICAgICAgICAgICAgICAgICA8czpwcm9wZXJ0eSB2YWx1ZT0idXNlcm5hbWUiLz4NCisgICAgICAgICAgICAgICAgPC90ZD4NCisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPg0KKyAgICAgICAgICAgICAgICAgICAgPHM6cHJvcGVydHkgdmFsdWU9InR5cGUiLz4NCisgICAgICAgICAgICAgICAgPC90ZD4NCisgICAgICAgICAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPg0KKyAgICAgICAgICAgICAgICAgICAgPHM6cHJvcGVydHkgdmFsdWU9ImF1dG9Db25uZWN0Ii8+DQorICAgICAgICAgICAgICAgIDwvdGQ+DQorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4NCisgICAgICAgICAgICAgICAgICAgIDxzOnVybCBpZD0iRGVsZXRlIiBhY3Rpb249InN1YnNjcmlwdGlvbi92RGVsZXRlIiA+DQorICAgICAgICAgICAgICAgICAgICAgICAgPHM6cGFyYW0gbmFtZT0iaG9zdCIgdmFsdWU9Imhvc3QiLz4NCisgICAgICAgICAgICAgICAgICAgIDwvczp1cmw+DQorICAgICAgICAgICAgICAgICAgICA8czphIGhyZWY9IiV7RGVsZXRlfSI+DQorICAgICAgICAgICAgICAgICAgICAgICAgPHM6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24uZGVsZXRlU3Vic2NyaXB0aW9uIi8+DQorICAgICAgICAgICAgICAgICAgICA8L3M6YT4NCisgICAgICAgICAgICAgICAgICAgICZuYnNwOw0KKyAgICAgICAgICAgICAgICAgICAgPHM6dXJsIGlkPSJFZGl0IiBhY3Rpb249InN1YnNjcmlwdGlvbi92RWRpdCI+DQorICAgICAgICAgICAgICAgICAgICAgICAgPHM6cGFyYW0gbmFtZT0iaG9zdCIgdmFsdWU9Imhvc3QiLz4NCisgICAgICAgICAgICAgICAgICAgIDwvczp1cmw+DQorICAgICAgICAgICAgICAgICAgICA8czphIGhyZWY9IiV7RWRpdH0iPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLmVkaXRTdWJzY3JpcHRpb24iLz4NCisgICAgICAgICAgICAgICAgICAgIDwvczphPg0KKyAgICAgICAgICAgICAgICA8L3RkPg0KKyAgICAgICAgICAgIDwvdHI+DQorICAgICAgICA8L3M6aXRlcmF0b3I+DQorDQorICAgIDwvdGFibGU+DQorDQorICAgIDxzOnVybCBpZD0iSW5wdXQiIGFjdGlvbj0ic3Vic2NyaXB0aW9uL3ZJbnB1dCIgLz4NCisgICAgPHM6YSBocmVmPSIle0lucHV0fSI+PHM6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24uYWRkU3Vic2NyaXB0aW9uIi8+PC9zOmE+DQorDQorPC9zOmlmPg0KKw0KKzxqc3A6aW5jbHVkZSBwYWdlPSJGb290ZXIuanNwIi8+DQorDQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL3JlZ2lzdHJhdGlvbi9SZXRyaWV2ZS5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL3JlZ2lzdHJhdGlvbi9SZXRyaWV2ZS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU5NTIyNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvcmVnaXN0cmF0aW9uL1JldHJpZXZlLmpzcApAQCAtMCwwICsxLDMxIEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT48czp0ZXh0IG5hbWU9ImxvZ29uLnRpdGxlIi8+PC90aXRsZT4KKyAgICA8bGluayBocmVmPSI8czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICAgICAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorPC9oZWFkPgorCis8Ym9keSBvbkxvYWQ9InNlbGYuZm9jdXMoKTtkb2N1bWVudC5yZWdpc3RyYXRpb24vUmV0cmlldmUudXNlcm5hbWUuZm9jdXMoKSI+CisKKzxzOmFjdGlvbmVycm9yLz4KKzxzOnVybCBpZD0iUmV0cmlldmUiIGFjdGlvbj0icmVnaXN0cmF0aW9uL1JldHJpZXZlIiAvPgorPHM6Zm9ybSBhY3Rpb249InJlZ2lzdHJhdGlvbi9SZXRyaWV2ZSIgdmFsaWRhdGU9InRydWUiPgorICAgIDxzOnRleHRmaWVsZCBsYWJlbD0iJXtnZXRUZXh0KCd1c2VybmFtZScpfSIgbmFtZT0idXNlcm5hbWUiLz4KKworICAgIDxzOnBhc3N3b3JkIGxhYmVsPSIle2dldFRleHQoJ3Bhc3N3b3JkJyl9IiBuYW1lPSJwYXNzd29yZCIgc2hvd1Bhc3N3b3JkPSJ0cnVlIi8+CisKKyAgICA8czpzdWJtaXQgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLnNhdmUnKX0iLz4KKworICAgIDxzOnJlc2V0IHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5yZXNldCcpfSIvPgorCisgICAgPHM6c3VibWl0IGFjdGlvbj0iV2VsY29tZSIgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLmNhbmNlbCcpfSIKKyAgICAgICAgICAgICAgb25jbGljaz0iZm9ybS5vbnN1Ym1pdD1udWxsIi8+Cis8L3M6Zm9ybT4KKworPGpzcDppbmNsdWRlIHBhZ2U9Ii4uL0Zvb3Rlci5qc3AiLz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvc3Vic2NyaXB0aW9uLmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvc3Vic2NyaXB0aW9uLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjRjOWE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9zdWJzY3JpcHRpb24uanNwCkBAIC0wLDAgKzEsNjggQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+DQorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPg0KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iDQorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4NCis8aGVhZD4NCisgICAgPHM6aWYgdGVzdD0idGFzaz09J0NyZWF0ZSciPg0KKyAgICAgICAgPHRpdGxlPjxzOnRleHQgbmFtZT0ic3Vic2NyaXB0aW9uLnRpdGxlLmNyZWF0ZSIvPjwvdGl0bGU+DQorICAgIDwvczppZj4NCisgICAgPHM6aWYgdGVzdD0idGFzaz09J0VkaXQnIj4NCisgICAgICAgIDx0aXRsZT48czp0ZXh0IG5hbWU9InN1YnNjcmlwdGlvbi50aXRsZS5lZGl0Ii8+PC90aXRsZT4NCisgICAgPC9zOmlmPg0KKyAgICA8czppZiB0ZXN0PSJ0YXNrPT0nRGVsZXRlJyI+DQorICAgICAgICA8dGl0bGU+PHM6dGV4dCBuYW1lPSJzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlIi8+PC90aXRsZT4NCisgICAgPC9zOmlmPg0KKyAgICA8bGluayBocmVmPSI8czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCINCisgICAgICAgICAgdHlwZT0idGV4dC9jc3MiLz4NCis8L2hlYWQ+DQorDQorPGJvZHkgb25Mb2FkPSJzZWxmLmZvY3VzKCk7ZG9jdW1lbnQuZm9ybTEudXNlcm5hbWUuZm9jdXMoKSI+DQorDQorPHM6YWN0aW9uZXJyb3IvPg0KKzxzOmZvcm0gaWQ9ImZvcm0xIiBhY3Rpb249InN1YnNjcmlwdGlvbi9TYXZlIiB2YWxpZGF0ZT0idHJ1ZSI+DQorICAgIDxzOnRva2VuLz4NCisgICAgPHM6aGlkZGVuIG5hbWU9InRhc2siLz4NCisgICAgPHM6bGFiZWwgbGFiZWw9IiV7Z2V0VGV4dCgndXNlcm5hbWUnKX0iIG5hbWU9InVzZXIudXNlcm5hbWUiLz4NCisNCisgICAgPHM6aWYgdGVzdD0idGFzayA9PSAnQ3JlYXRlJyI+DQorICAgICAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IiV7Z2V0VGV4dCgnbWFpbEhvc3RuYW1lJyl9IiBuYW1lPSJob3N0Ii8+DQorICAgIDwvczppZj4NCisgICAgPHM6ZWxzZT4NCisgICAgICAgIDxzOmxhYmVsIGxhYmVsPSIle2dldFRleHQoJ21haWxIb3N0bmFtZScpfSIgbmFtZT0iaG9zdCIvPg0KKyAgICAgICAgPHM6aGlkZGVuIG5hbWU9Imhvc3QiLz4NCisgICAgPC9zOmVsc2U+DQorDQorICAgIDxzOmlmIHRlc3Q9InRhc2sgPT0gJ0RlbGV0ZSciPg0KKyAgICAgICAgPHM6bGFiZWwgbGFiZWw9IiV7Z2V0VGV4dCgnbWFpbFVzZXJuYW1lJyl9Ig0KKyAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnVzZXJuYW1lIi8+DQorICAgICAgICA8czpsYWJlbCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsUGFzc3dvcmQnKX0iDQorICAgICAgICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24ucGFzc3dvcmQiLz4NCisgICAgICAgIDxzOmxhYmVsIGxhYmVsPSIle2dldFRleHQoJ21haWxTZXJ2ZXJUeXBlJyl9Ig0KKyAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnR5cGUiLz4NCisgICAgICAgIDxzOmxhYmVsIGxhYmVsPSIle2dldFRleHQoJ2F1dG9Db25uZWN0Jyl9Ig0KKyAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLmF1dG9Db25uZWN0Ii8+DQorICAgICAgICA8czpzdWJtaXQgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLmNvbmZpcm0nKX0iLz4NCisgICAgPC9zOmlmPg0KKyAgICA8czplbHNlPg0KKyAgICAgICAgPHM6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ21haWxVc2VybmFtZScpfSINCisgICAgICAgICAgICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24udXNlcm5hbWUiLz4NCisgICAgICAgIDxzOnRleHRmaWVsZCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsUGFzc3dvcmQnKX0iDQorICAgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnBhc3N3b3JkIi8+DQorICAgICAgICA8czpzZWxlY3QgbGFiZWw9IiV7Z2V0VGV4dCgnbWFpbFNlcnZlclR5cGUnKX0iDQorICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnR5cGUiIGxpc3Q9InR5cGVzIi8+DQorICAgICAgICA8czpjaGVja2JveCBsYWJlbD0iJXtnZXRUZXh0KCdhdXRvQ29ubmVjdCcpfSINCisgICAgICAgICAgICAgICAgICAgIG5hbWU9InN1YnNjcmlwdGlvbi5hdXRvQ29ubmVjdCIvPg0KKyAgICAgICAgPHM6c3VibWl0IHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5zYXZlJyl9Ii8+DQorICAgICAgICA8czpyZXNldCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24ucmVzZXQnKX0iLz4NCisgICAgPC9zOmVsc2U+DQorDQorICAgIDxzOnN1Ym1pdCBhY3Rpb249InJlZ2lzdHJhdGlvbi92SW5wdXQiDQorICAgICAgICAgICAgICB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uY2FuY2VsJyl9Ig0KKyAgICAgICAgICAgICAgb25jbGljaz0iZm9ybS5vbnN1Ym1pdD1udWxsIi8+DQorPC9zOmZvcm0+DQorDQorPGpzcDppbmNsdWRlIHBhZ2U9IkZvb3Rlci5qc3AiLz4NCisNCis8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLWliYXRpcy9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvdG91ci5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL3RvdXIuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2Y2ViNDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3BhZ2VzL3RvdXIuanNwCkBAIC0wLDAgKzEsMjQzMSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11cy1hc2NpaSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL2Nzcy9tYWlscmVhZGVyLmNzcyIvPgorCisgICAgPHRpdGxlPkEgV2Fsa2luZyBUb3VyIG9mIHRoZSBTdHJ1dHMgMiBNYWlsUmVhZGVyIEFwcGxpY2F0aW9uPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8YmxvY2txdW90ZT4KKzxoMj5BIFdhbGtpbmcgVG91ciBvZiB0aGUgU3RydXRzIDIgTWFpbFJlYWRlciBBcHBsaWNhdGlvbjwvaDI+CisKKzxwPgorICAgIDxpPgorICAgICAgICBUaGlzIGFydGljbGUgaXMgbWVhbnQgdG8gaW50cm9kdWNlIGEgbmV3IHVzZXIgdG8gQXBhY2hlIFN0cnV0cyAyIGJ5CisgICAgICAgICJ3YWxraW5nIHRocm91Z2giIGEgc2ltcGxlLCBidXQgZnVuY3Rpb25hbCwgYXBwbGljYXRpb24uCisgICAgICAgIFRoZSBhcnRpY2xlIGluY2x1ZGVzIGNvZGUgc25pcHBldHMsIGJ1dCBmb3IgdGhlIGJlc3QgcmVzdWx0LCB5b3UgbWlnaHQKKyAgICAgICAgd2FudCB0byBpbnN0YWxsIHRoZSBNYWlsUmVhZGVyIGFwcGxpY2F0aW9uIG9uIHlvdXIgb3duIGRldmVsb3BtZW50CisgICAgICAgIHdvcmtzdGF0aW9uIGFuZCBmb2xsb3cgYWxvbmcuCisgICAgICAgIE9mIGNvdXJzZSwgdGhlIGZ1bGwgc291cmNlIGNvZGUgdG8gdGhlIE1haWxSZWFkZXIgaXMgaW5jbHVkZWQgaW4gdGhlCisgICAgICAgIGRpc3RyaWJ1dGlvbi4KKyAgICA8L2k+CisKKzwvcD4KKworPHA+CisgICAgPGk+CisgICAgICAgIFRoZSB0b3VyIGFzc3VtZXMgdGhlIHJlYWRlciBoYXMgYSBiYXNpYyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBKYXZhCisgICAgICAgIGxhbmd1YWdlLCBKYXZhQmVhbnMsIHdlYiBhcHBsaWNhdGlvbnMsIGFuZCBKYXZhU2VydmVyIFBhZ2VzLiBGb3IKKyAgICAgICAgYmFja2dyb3VuZCBvbiB0aGVzZSB0ZWNobm9sb2dpZXMsIHNlZSB0aGUKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3ByaW1lci5odG1sIj4KKyAgICAgICAgICAgIEtleSBUZWNobm9sb2dpZXMgUHJpbWVyPC9hPi4KKyAgICA8L2k+Cis8L3A+CisKKzxoci8+CisKKzxwPkxvZ2dpbmcgSW48L3A+CisKKzx1bD4KKyAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9IiNXZWxjb21lIj5XZWxjb21lPC9hPgorCisgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjd2ViLnhtbCI+d2ViLnhtbCBhbmQgcmVzb3VyY2VzLnByb3BlcnRpZXM8L2E+PC9saT4KKworICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNXZWxjb21lLmRvIj5XZWxjb21lLmRvPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjV2VsY29tZS5qYXZhIj5XZWxjb21lIEFjdGlvbjwvYT48L2xpPgorCisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI2dsb2JhbC1yZXN1bHRzIj5HbG9iYWwgUmVzdWx0czwvYT48L2xpPgorCisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI0FwcGxpY2F0aW9uTGlzdGVuZXIuamF2YSI+QXBwbGljYXRpb25MaXN0ZW5lci5qYXZhPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjcmVzb3VyY2VzLnByb3BlcnRpZXMiPk1lc3NhZ2UgUmVzb3VyY2VzPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjV2VsY29tZS5qc3AiPldlbGNvbWUgUGFnZTwvYT48L2xpPgorCisgICAgICAgIDwvdWw+CisgICAgPC9saT4KKzwvdWw+CisKKzx1bD4KKyAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9IiNMb2dvbiI+TG9nb248L2E+CisgICAgICAgIDx1bD4KKworICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNMb2dvbi5qc3AiPkxvZ29uIFBhZ2U8L2E+PC9saT4KKworICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNMb2dvbi12YWxpZGF0aW9uLnhtbCI+TG9nb24tdmFsaWRhdGlvbi54bWw8L2E+PC9saT4KKworICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNMb2dvbi5qYXZhIj5Mb2dvbi5qYXZhPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjTWFpbHJlYWRlclN1cHBvcnQuamF2YSI+TWFpbHJlYWRlclN1cHBvcnQuamF2YTwvYT48L2xpPgorCisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI0xvZ29uLnhtbCI+TG9nb24gQ29uZmlndXJhdGlvbjwvYT48L2xpPgorCisgICAgICAgIDwvdWw+CisgICAgPC9saT4KKzwvdWw+CisKKzx1bD4KKyAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9IiNNYWluTWVudSI+TWFpbk1lbnU8L2E+CisgICAgPC9saT4KKzwvdWw+CisKKzx1bD4KKyAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9IiNSZWdpc3RyYXRpb24uanNwIj5SZWdpc3RyYXRpb24gcGFnZTwvYT4KKyAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNpdGVyYXRvciI+aXRlcmF0b3I8L2E+PC9saT4KKyAgICAgICAgPC91bD4KKyAgICA8L2xpPgorPC91bD4KKworPHVsPgorICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0iI1N1YnNjcmlwdGlvbiI+U3Vic2NyaXB0aW9uPC9hPgorCisgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjU3Vic2NyaXB0aW9uQWN0aW9uLmphdmEiPlN1YnNjcmlwdGlvbi5qYXZhPC9hPgorICAgICAgICAgICAgPC9saT4KKyAgICAgICAgPC91bD4KKyAgICA8L2xpPgorPC91bD4KKzxoci8+CisKKzxwPgorICAgIFRoZSBwcmVtaXNlIG9mIHRoZSBNYWlsUmVhZGVyIGlzIHRoYXQgaXQgaXMgdGhlIGZpcnN0IGl0ZXJhdGlvbiBvZiBhCisgICAgcG9ydGFsIGFwcGxpY2F0aW9uLgorICAgIFRoaXMgdmVyc2lvbiBhbGxvd3MgdXNlcnMgdG8gcmVnaXN0ZXIgYW5kIG1haW50YWluIGEgc2V0IG9mCisgICAgYWNjb3VudHMgd2l0aCB2YXJpb3VzIG1haWwgc2VydmVycy4KKyAgICBJZiBjb21wbGV0ZWQsIHRoZSBhcHBsaWNhdGlvbiB3b3VsZCBsZXQgdXNlcnMgcmVhZCBtYWlsIGZyb20gdGhlaXIKKyAgICBhY2NvdW50cy4KKzwvcD4KKworPHA+CisgICAgVGhlIE1haWxSZWFkZXIgYXBwbGljYXRpb24gZGVtb25zdHJhdGVzIHJlZ2lzdGVyaW5nIHdpdGggYW4gYXBwbGljYXRpb24sCisgICAgbG9nZ2luZyBpbnRvIGFuIGFwcGxpY2F0aW9uLCBtYWludGFpbmluZyBhIG1hc3RlciByZWNvcmQsIGFuZCBtYWludGFpbmluZworICAgIGNoaWxkIHJlY29yZHMuCisgICAgVGhpcyBhcnRpY2xlIG92ZXJ2aWV3cyB0aGUgY29uc3RydWN0cyBuZWVkZWQgdG8gZG8gdGhlc2UgdGhpbmdzLAorICAgIGluY2x1ZGluZyB0aGUgc2VydmVyIHBhZ2VzLCBKYXZhIGNsYXNzZXMsIGFuZCBjb25maWd1cmF0aW9uIGVsZW1lbnRzLgorPC9wPgorCis8cD4KKyAgICBGb3IgbW9yZSBhYm91dCB0aGUgTWFpbFJlYWRlciwgaW5jbHVkaW5nIGFsdGVybmF0ZSBpbXBsZW1lbnRhdGlvbnMgYW5kIGEKKyAgICBzZXQgb2YgZm9ybWFsIFVzZSBDYXNlcywKKyAgICBwbGVhc2UgdmlzaXQgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuU3RydXRzVW5pdmVyc2l0eS5vcmcvTWFpbFJlYWRlciI+CisgICAgU3RydXRzIFVuaXZlcnNpdHkgTWFpbFJlYWRlciBzaXRlPC9hPi4KKzwvcD4KKworPGhyLz4KKzxibG9ja3F1b3RlPgorICAgIDxwPjxmb250IGNsYXNzPSJoaW50Ij4KKyAgICAgICAgPHN0cm9uZz5KQUFTPC9zdHJvbmc+IC0KKyAgICAgICAgTm90ZSB0aGF0IGZvciBjb21wYXRpYmlsaXR5IGFuZCBlYXNlIG9mIGRlcGxveW1lbnQsIHRoZSBNYWlsUmVhZGVyCisgICAgICAgIHVzZXMgImFwcGxpY2F0aW9uLWJhc2VkIiBhdXRob3JpemF0aW9uLgorICAgICAgICBIb3dldmVyLCB1c2Ugb2YgdGhlIHN0YW5kYXJkIEphdmEgQXV0aGVudGljYXRpb24gYW5kIEF1dGhvcml6YXRpb24KKyAgICAgICAgU2VydmljZSAoSkFBUykgaXMgcmVjb21tZW5kZWQgZm9yIG1vc3QgYXBwbGljYXRpb25zLgorICAgICAgICAoU2VlIHRoZSA8YQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3ByaW1lci5odG1sIj4KKyAgICAgICAgS2V5IFRlY2hub2xvZ2llcyBQcmltZXI8L2E+IGZvciBtb3JlIGFib3V0CisgICAgICAgIGF1dGhlbnRpY2F0aW9uIHRlY2hub2xvZ2llcy4pCisgICAgPC9mb250PjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSB0b3VyIHN0YXJ0cyB3aXRoIGhvdyB0aGUgaW5pdGlhbCB3ZWxjb21lIHBhZ2UgaXMgZGlzcGxheWVkLCBhbmQKKyAgICB0aGVuIHN0ZXBzIHRocm91Z2ggbG9nZ2luZyBpbnRvIHRoZSBhcHBsaWNhdGlvbiBhbmQgZWRpdGluZyBhIHN1YnNjcmlwdGlvbi4KKyAgICBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgbm90IGEgcXVpY2sgcGVlayBhdCBhICJIZWxsbyBXb3JsZCIgYXBwbGljYXRpb24uCisgICAgVGhlIHRvdXIgaXMgYSByaWNoIHRyZWsgaW50byBhIHJlYWxpc3RpYywgYmVzdCBwcmFjdGljZXMgYXBwbGljYXRpb24uCisgICAgWW91IG1heSBuZWVkIHRvIGFkanVzdCB5b3VyIGNoYWlyIGFuZCBnZXQgYSBmcmVzaCBjdXAgb2YgY29mZmVlLgorICAgIFByaW50ZWQsIHRoZSBhcnRpY2xlIGlzIDI5IHBhZ2VzIGxvbmcgKFVTKS4KKzwvcD4KKworPGgzPjxhIG5hbWU9IldlbGNvbWUiIGlkPSJXZWxjb21lIj5XZWxjb21lIFBhZ2U8L2E+PC9oMz4KKworPHA+CisgICAgQSB3ZWIgYXBwbGljYXRpb24sIGxpa2UgYW55IG90aGVyIHdlYiBzaXRlLCBjYW4gc3BlY2lmeSBhIGxpc3Qgb2Ygd2VsY29tZSBwYWdlcy4KKyAgICBXaGVuIHlvdSBvcGVuIGEgd2ViIGFwcGxpY2F0aW9uIHdpdGhvdXQgc3BlY2lmeWluZyBhIHBhcnRpY3VsYXIgcGFnZSwgYQorICAgIGRlZmF1bHQgIndlbGNvbWUgcGFnZSIgaXMgc2VydmVkIGFzIHRoZSByZXNwb25zZS4KKzwvcD4KKworPGg0PjxhIG5hbWU9IndlYi54bWwiIGlkPSJ3ZWIueG1sIj53ZWIueG1sPC9hPjwvaDQ+CisKKzxwPgorICAgIFdoZW4gYSB3ZWIgYXBwbGljYXRpb24gbG9hZHMsCisgICAgdGhlIGNvbnRhaW5lciByZWFkcyBhbmQgcGFyc2VzIHRoZSAiV2ViIEFwcGxpY2F0aW9uIERlcGxveW1lbnQKKyAgICBEZXNjcmlwdG9yIiwgb3IgIndlYi54bWwiIGZpbGUuCisgICAgVGhlIGZyYW1ld29yayBwbHVncyBpbnRvIGEgd2ViIGFwcGxpY2F0aW9uIHZpYSBhIHNlcnZsZXQgZmlsdGVyLgorICAgIExpa2UgYW55IGZpbHRlciwgdGhlICJzdHJ1dHMyIiBmaWx0ZXIgaXMgZGVwbG95ZWQgdmlhIHRoZSAid2ViLnhtbCIuCis8L3A+CisKKzxoci8+Cis8aDU+d2ViLnhtbCAtIFRoZSBXZWIgQXBwbGljYXRpb24gRGVwbG95bWVudCBEZXNjcmlwdG9yPC9oNT4KKzxwcmU+PGNvZGU+Jmx0Oz94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorICAgICZsdDshRE9DVFlQRSB3ZWItYXBwIFBVQkxJQyAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIFdlYiBBcHBsaWNhdGlvbiAyLjMvL0VOIgorICAgICJodHRwOi8vamF2YS5zdW4uY29tL2R0ZC93ZWItYXBwXzJfMy5kdGQiPgorICAgICZsdDt3ZWItYXBwPgorCisgICAgJmx0O2Rpc3BsYXktbmFtZT5TdHJ1dHMgMiBNYWlsUmVhZGVyJmx0Oy9kaXNwbGF5LW5hbWU+CisKKyAgICA8c3Ryb25nPiZsdDtmaWx0ZXI+CisgICAgICAgICZsdDtmaWx0ZXItbmFtZT5zdHJ1dHMyJmx0Oy9maWx0ZXItbmFtZT4KKyAgICAgICAgJmx0O2ZpbHRlci1jbGFzcz4KKyAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuRmlsdGVyRGlzcGF0Y2hlcgorICAgICAgICAmbHQ7L2ZpbHRlci1jbGFzcz4KKyAgICAgICAgJmx0Oy9maWx0ZXI+PC9zdHJvbmc+CisKKyAgICAmbHQ7ZmlsdGVyLW1hcHBpbmc+CisgICAgJmx0O2ZpbHRlci1uYW1lPjxzdHJvbmc+c3RydXRzMjwvc3Ryb25nPiZsdDsvZmlsdGVyLW5hbWU+CisgICAgJmx0O3VybC1wYXR0ZXJuPi8qJmx0Oy91cmwtcGF0dGVybj4KKyAgICAmbHQ7L2ZpbHRlci1tYXBwaW5nPgorCisgICAgJmx0O2xpc3RlbmVyPgorICAgICZsdDtsaXN0ZW5lci1jbGFzcz4KKyAgICBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5jb250ZXh0LkNvbnRleHRMb2FkZXJMaXN0ZW5lcgorICAgICZsdDsvbGlzdGVuZXItY2xhc3M+CisgICAgJmx0Oy9saXN0ZW5lcj4KKworICAgICZsdDshLS0gQXBwbGljYXRpb24gTGlzdGVuZXIgZm9yIE1haWxSZWFkZXIgZGF0YWJhc2UgLS0+CisgICAgJmx0O2xpc3RlbmVyPgorICAgICZsdDtsaXN0ZW5lci1jbGFzcz4KKyAgICBtYWlscmVhZGVyMi5BcHBsaWNhdGlvbkxpc3RlbmVyCisgICAgJmx0Oy9saXN0ZW5lci1jbGFzcz4KKyAgICAmbHQ7L2xpc3RlbmVyPgorCisgICAgJmx0O3dlbGNvbWUtZmlsZS1saXN0PgorICAgICZsdDt3ZWxjb21lLWZpbGU+aW5kZXguaHRtbCZsdDsvd2VsY29tZS1maWxlPgorICAgICZsdDsvd2VsY29tZS1maWxlLWxpc3Q+CisKKyAgICAmbHQ7L3dlYi1hcHA+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgQW1vbmcgb3RoZXIgdGhpbmdzLAorICAgIHRoZSB3ZWIueG1sIHNwZWNpZmllcyB0aGUgIldlbGNvbWUgRmlsZSBMaXN0IiBmb3IgYW4gYXBwbGljYXRpb24uCisgICAgV2hlbiBhIHdlYiBhZGRyZXNzIHJlZmVycyB0byBhIGRpcmVjdG9yeSByYXRoZXIgdGhhbiBhbiBpbmRpdmlkdWFsIGZpbGUsCisgICAgdGhlIGNvbnRhaW5lciBjb25zdWx0cyB0aGUgV2VsY29tZSBGaWxlIExpc3QgZm9yIHRoZSBuYW1lIG9mIGEgcGFnZSB0bworICAgIG9wZW4gYnkgZGVmYXVsdC4KKzwvcD4KKworPHA+CisgICAgSG93ZXZlciwgbW9zdCBTdHJ1dHMgYXBwbGljYXRpb25zIGRvIG5vdCByZWZlciB0byBwaHlzaWNhbCBwYWdlcywKKyAgICBidXQgdG8gInZpcnR1YWwgcmVzb3VyY2VzIiBjYWxsZWQgPGk+YWN0aW9uczwvaT4uCisgICAgQWN0aW9ucyBzcGVjaWZ5IGNvZGUgdGhhdCB3ZSB3YW50IHRvIGJlIHJ1biBiZWZvcmUgYSBwYWdlCisgICAgb3Igb3RoZXIgcmVzb3VyY2UgcmVuZGVycyB0aGUgcmVzcG9uc2UuCisgICAgQW4gYWNjZXB0ZWQgcHJhY3RpY2UgaXMgdG8gbmV2ZXIgbGluayBkaXJlY3RseSB0byBzZXJ2ZXIgcGFnZXMsCisgICAgYnV0IG9ubHkgdG8gbG9naWNhbCBhY3Rpb24gbWFwcGluZ3MuCisgICAgQnkgbGlua2luZyB0byBhY3Rpb25zLCBkZXZlbG9wZXJzIGNhbiBvZnRlbiAicmV3aXJlIiBhbiBhcHBsaWNhdGlvbgorICAgIHdpdGhvdXQgZWRpdGluZyB0aGUgc2VydmVyIHBhZ2VzLgorPC9wPgorCis8aHIvPgorPGg1PkJlc3QgUHJhY3RpY2U6PC9oNT4KKzxibG9ja3F1b3RlPgorICAgIDxwPjxmb250IGNsYXNzPSJoaW50Ij4iTGluayBhY3Rpb25zIG5vdCBwYWdlcy4iPC9mb250PjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSBhY3Rpb25zIGFyZSBsaXN0ZWQgaW4gb25lIG9yIG1vcmUgWE1MIGNvbmZpZ3VyYXRpb24gZmlsZXMsCisgICAgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlIGJlaW5nIG5hbWVkICJzdHJ1dHMueG1sIi4KKyAgICBXaGVuIHRoZSBhcHBsaWNhdGlvbiBsb2FkcywgdGhlIHN0cnV0cy54bWwsIGFuZCBhbnkgb3RoZXIgZmlsZXMKKyAgICBpdCBpbmNsdWRlcywgYXJlIHBhcnNlZCwgYW5kIHRoZSBmcmFtZXdvcmsgY3JlYXRlcyBhIHNldCBvZgorICAgIGNvbmZpZ3VyYXRpb24gb2JqZWN0cy4KKyAgICBBbW9uZyBvdGhlciB0aGluZ3MsIHRoZSBjb25maWd1cmF0aW9uIG1hcHMgYSByZXF1ZXN0IGZvciBhIGNlcnRhaW4KKyAgICBwYWdlIHRvIGEgY2VydGFpbiBhY3Rpb24gbWFwcGluZy4KKzwvcD4KKworPHA+CisgICAgU2l0ZXMgY2FuIGxpc3QgemVybyBvciBtb3JlICJXZWxjb21lIiBwYWdlcyBpbiB0aGUgd2ViLnhtbC4KKyAgICBVbmxlc3MgeW91IGFyZSB1c2luZyBKYXZhIDEuNSwgYWN0aW9ucyBjYW5ub3QgYmUgc3BlY2lmaWVkIGFzIGEgV2VsY29tZQorICAgIHBhZ2UuCisgICAgU28sIGluIHRoZSBjYXNlIG9mIGEgV2VsY29tZSBwYWdlLAorICAgIGhvdyBkbyB3ZSBmb2xsb3cgdGhlIGJlc3QgcHJhY3RpY2Ugb2YgbmF2aWdhdGluZyB0aHJvdWdoIGFjdGlvbnMKKyAgICByYXRoZXIgdGhhbiBwYWdlcz8KKzwvcD4KKworPHA+CisgICAgT25lIHNvbHV0aW9uIGlzIHRvIHVzZSBhIHBhZ2UgdG8gImJvb3RzdHJhcCIgb25lIG9mIG91ciBhY3Rpb25zLgorICAgIFdlIGNhbiByZWdpc3RlciB0aGUgdXN1YWwgImluZGV4Lmh0bWwiIGFzIHRoZSBXZWxjb21lIHBhZ2UgYW5kIGhhdmUgaXQKKyAgICByZWRpcmVjdCB0byBhICJXZWxjb21lIiBhY3Rpb24uCis8L3A+CisKKzxoci8+Cis8aDU+TWFpbFJlYWRlcidzIGluZGV4Lmh0bWw8L2g1PgorPHByZT48Y29kZT4mbHQ7IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPgorICAgICZsdDtodG1sPiZsdDtoZWFkPgorICAgICZsdDtNRVRBIEhUVFAtRVFVSVY9IlJlZnJlc2giIENPTlRFTlQ9IjA7PHN0cm9uZz5VUkw9V2VsY29tZS5kbzwvc3Ryb25nPiI+CisgICAgJmx0Oy9oZWFkPgorICAgICZsdDtib2R5PgorICAgICZsdDtwPkxvYWRpbmcgLi4uJmx0Oy9wPgorICAgICZsdDsvYm9keT4mbHQ7L2h0bWw+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgQXMgYW4gYWx0ZXJuYXRpdmUsCisgICAgd2UgY291bGQgYWxzbyBoYXZlIHVzZWQgYSBKU1AgcGFnZSB0aGF0IGlzc3VlZCB0aGUgcmVkaXJlY3Qgd2l0aCBhIFN0cnV0cyB0YWcsCisgICAgYnV0IGEgcGxhaW4gSFRNTCBzb2x1dGlvbiB3b3JrcyBhcyB3ZWxsLgorPC9wPgorCis8aDQ+PGEgbmFtZT0iV2VsY29tZS5kbyIgaWQ9IldlbGNvbWUuZG8iPldlbGNvbWUuZG88L2E+PC9oND4KKworPHA+CisgICAgV2hlbiB0aGUgY2xpZW50IHJlcXVlc3RzICJXZWxjb21lLmRvIiwgdGhlIHJlcXVlc3QgaXMgcGFzc2VkIHRvIHRoZSAic3RydXRzMiIgRmlsdGVyRGlzcGF0Y2hlcgorICAgICh0aGF0IHdlIHJlZ2lzdGVyZWQgaW4gdGhlIHdlYi54bWwgZmlsZSkuCisgICAgVGhlIEZpbHRlckRpc3BhdGNoZXIgcmV0cmlldmVzIHRoZSBhcHByb3ByaWF0ZSBhY3Rpb24gbWFwcGluZyBmcm9tIHRoZQorICAgIGNvbmZpZ3VyYXRpb24uCisgICAgSWYgd2UganVzdCB3YW50ZWQgdG8gZm9yd2FyZCB0byB0aGUgV2VsY29tZSBwYWdlLCB3ZSBjb3VsZCB1c2UgYSBzaW1wbGUKKyAgICBjb25maWd1cmF0aW9uIGVsZW1lbnQuCis8L3A+Cis8aHIvPgorPGg1PkEgc2ltcGxlICJmb3J3YXJkIHRocnUiIGFjdGlvbiBlbGVtZW50PC9oNT4KKzxwcmU+PGNvZGU+Jmx0O2FjdGlvbiBuYW1lPSI8c3Ryb25nPldlbGNvbWU8L3N0cm9uZz4iPgorICAgICZsdDtyZXN1bHQ+PHN0cm9uZz4vcGFnZXMvV2VsY29tZS5qc3A8L3N0cm9uZz4mbHQ7L3Jlc3VsdD4KKyAgICAmbHQ7L2FjdGlvbj48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBJZiBhIGNsaWVudCBhc2tzIGZvciB0aGUgV2VsY29tZSBhY3Rpb24gKCJXZWxjb21lLmRvKSwgdGhlICIvcGFnZS9XZWxjb21lLmpzcCIKKyAgICBwYWdlIHdvdWxkIGJlIHJldHVybmVkIGluIHJlc3BvbnNlLgorICAgIFRoZSBjbGllbnQgZG9lcyBub3Qga25vdywgb3IgbmVlZCB0byBrbm93LCB0aGF0IHRoZSBwaHlzaWNhbCByZXNvdXJjZSBpcyBsb2NhdGVkIGF0CisgICAgIi9wYWdlcy9XZWxjb21lLmpzcCIuCisgICAgQWxsIHRoZSBjbGllbnQga25vd3MgaXMgdGhhdCBpdCByZXF1ZXN0ZWQgdGhlIHJlc291cmNlICJXZWxjb21lLmRvIi4KKzwvcD4KKworPHA+CisgICAgQnV0IGlmIHdlIHBlZWsgYXQgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgdGhlIE1haWxSZWFkZXIsCisgICAgd2UgZmluZCBhIHNsaWdodGx5IG1vcmUgY29tcGxpY2F0ZWQgWE1MIGVsZW1lbnQgZm9yIHRoZSBXZWxjb21lIGFjdGlvbi4KKzwvcD4KKworPGhyLz4KKzxoNT5UaGUgV2VsY29tZSBhY3Rpb24gZWxlbWVudDwvaDU+Cis8cHJlPjxjb2RlPiZsdDthY3Rpb24gbmFtZT0iV2VsY29tZSIgPGI+Y2xhc3M9Im1haWxyZWFkZXIyLldlbGNvbWUiPC9iPj4KKyAgICAmbHQ7cmVzdWx0Pi9wYWdlcy9XZWxjb21lLmpzcCZsdDsvcmVzdWx0PgorICAgIDxzdHJvbmc+Jmx0O2ludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPjwvc3Ryb25nPgorICAgICZsdDsvYWN0aW9uPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIEhlcmUsIHRoZSA8c3Ryb25nPldlbGNvbWU8L3N0cm9uZz4gSmF2YSBjbGFzcyBleGVjdXRlcyB3aGVuZXZlcgorICAgIHNvbWVvbmUgYXNrcyBmb3IgdGhlIFdlbGNvbWUgYWN0aW9uLgorICAgIEFzIGl0IGNvbXBsZXRlcywgdGhlIEFjdGlvbiBjbGFzcyBjYW4gc2VsZWN0IHdoaWNoICJyZXN1bHQiIGlzIGRpc3BsYXllZC4KKyAgICBUaGUgZGVmYXVsdCByZXN1bHQgbmFtZSBpcyAic3VjY2VzcyIuCisgICAgQW5vdGhlciBhdmFpbGFibGUgcmVzdWx0LCBkZWZpbmVkIGF0IGEgZ2xvYmFsIHNjb3BlLCBpcyAiZXJyb3IiLgorPC9wPgorCis8aHIvPgorPGg1PktleSBjb25jZXB0OjwvaDU+Cis8YmxvY2txdW90ZT4KKyAgICA8cD4KKyAgICAgICAgVGhlIEFjdGlvbiBjbGFzcyBkb2Vzbid0IG5lZWQgdG8ga25vdyB3aGF0IHJlc3VsdCB0eXBlIGlzIG5lZWRlZAorICAgICAgICBmb3IgInN1Y2Nlc3MiIG9yICJlcnJvciIuCisgICAgICAgIFRoZSBBY3Rpb24gY2FuIGp1c3QgcmV0dXJuIHRoZSBsb2dpY2FsIG5hbWUgZm9yIGEgcmVzdWx0LAorICAgICAgICB3aXRob3V0IGtub3dpbmcgaG93IHRoZSByZXN1bHQgaXMgaW1wbGVtZW50ZWQuCisgICAgPC9wPgorPC9ibG9ja3F1b3RlPgorPGhyLz4KKworPHA+CisgICAgVGhlIG5ldCBlZmZlY3QgaXMgdGhhdCBhbGwgb2YgdGhlIHJlc3VsdCBkZXRhaWxzLAorICAgIGluY2x1ZGluZyB0aGUgcGF0aHMgdG8gc2VydmVyIHBhZ2VzLAorICAgIGFsbCBjYW4gYmUgZGVjbGFyZWQgPGVtPm9uY2U8L2VtPiBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAgICBUaWdodGx5IGNvdXBsZWQgaW1wbGVtZW50YXRpb24gZGV0YWlscyBhcmUgbm90IHNjYXR0ZXJlZCBhbGwgb3ZlcgorICAgIHRoZSBhcHBsaWNhdGlvbi4KKzwvcD4KKworPGhyLz4KKzxoNT5LZXkgY29uY2VwdDo8L2g1PgorPGJsb2NrcXVvdGU+CisgICAgPHA+CisgICAgICAgIFRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBsZXRzIHVzIHNlcGFyYXRlIGNvbmNlcm5zIGFuZCAic2F5IGl0IG9uY2UiLgorICAgICAgICBUaGUgY29uZmlndXJhdGlvbiBoZWxwcyB1cyAibm9ybWFsaXplIiBhbiBhcHBsaWNhdGlvbiwKKyAgICAgICAgaW4gbXVjaCB0aGUgc2FtZSB3YXkgd2Ugbm9ybWFsaXplIGEgZGF0YWJhc2Ugc2NoZW1hLgorICAgIDwvcD4KKzwvYmxvY2txdW90ZT4KKzxoci8+CisKKworPHA+CisgICAgT0sgLi4uIGJ1dCB3aHkgd291bGQgYSBXZWxjb21lIEFjdGlvbiB3YW50IHRvIGNob29zZSBiZXR3ZWVuICJzdWNjZXNzIiBhbmQKKyAgICAiZXJyb3IiPworPC9wPgorCis8aDQ+PGEgbmFtZT0iV2VsY29tZS5qYXZhIiBpZD0iV2VsY29tZS5qYXZhIj5XZWxjb21lIEFjdGlvbjwvYT48L2g0PgorCis8cD4KKyAgICBUaGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbiByZXRhaW5zIGEgbGlzdCBvZiB1c2VycyBhbG9uZyB3aXRoIHRoZWlyIGVtYWlsCisgICAgYWNjb3VudHMuCisgICAgVGhlIGFwcGxpY2F0aW9uIHN0b3JlcyB0aGlzIGluZm9ybWF0aW9uIGluIGEgZGF0YWJhc2UuCisgICAgSWYgdGhlIGFwcGxpY2F0aW9uIGNhbid0IGNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlLCB0aGUgYXBwbGljYXRpb24gY2FuJ3QgZG8KKyAgICBpdHMgam9iLgorICAgIFNvIGJlZm9yZSBkaXNwbGF5aW5nIHRoZSBXZWxjb21lIDxzdHJvbmc+cGFnZTwvc3Ryb25nPiwgdGhlIFdlbGNvbWUKKyAgICA8c3Ryb25nPmNsYXNzPC9zdHJvbmc+IGNoZWNrcyB0byBzZWUgaWYgdGhlIGRhdGFiYXNlIGlzIGF2YWlsYWJsZS4KKzwvcD4KKworPHA+CisgICAgVGhlIE1haWxSZWFkZXIgaXMgYWxzbyBhbiBpbnRlcm5hdGlvbmFsaXplZCBhcHBsaWNhdGlvbi4KKyAgICBTbywgdGhlIFdlbGNvbWUgQWN0aW9uIGNsYXNzIGNoZWNrcyB0byBzZWUgaWYgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGFyZQorICAgIGF2YWlsYWJsZSB0b28uCisgICAgSWYgYm90aCByZXNvdXJjZXMgYXJlIGF2YWlsYWJsZSwgdGhlIGNsYXNzIHBhc3NlcyBiYWNrIHRoZSAic3VjY2VzcyIgdG9rZW4uCisgICAgT3RoZXJ3aXNlLCB0aGUgY2xhc3MgcGFzc2VzIGJhY2sgdGhlICJlcnJvciIgdG9rZW4sCisgICAgc28gdGhhdCB0aGUgYXBwcm9wcmlhdGUgbWVzc2FnZXMgY2FuIGJlIGRpc3BsYXllZC4KKzwvcD4KKworPGhyLz4KKzxoNT5UaGUgV2VsY29tZSBBY3Rpb24gY2xhc3M8L2g1PgorPHByZT48Y29kZT5wYWNrYWdlIG1haWxyZWFkZXIyOworICAgIHB1YmxpYyBjbGFzcyBXZWxjb21lIGV4dGVuZHMgTWFpbHJlYWRlclN1cHBvcnQgeworCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgeworCisgICAgLy8gQ29uZmlybSBtZXNzYWdlIHJlc291cmNlcyBsb2FkZWQKKyAgICBTdHJpbmcgbWVzc2FnZSA9IGdldFRleHQoQ29uc3RhbnRzLkVSUk9SX0RBVEFCQVNFX01JU1NJTkcpOworICAgIGlmIChDb25zdGFudHMuRVJST1JfREFUQUJBU0VfTUlTU0lORy5lcXVhbHMobWVzc2FnZSkpIHsKKyAgICA8c3Ryb25nPmFkZEFjdGlvbkVycm9yKENvbnN0YW50cy5FUlJPUl9NRVNTQUdFU19OT1RfTE9BREVEKTs8L3N0cm9uZz4KKyAgICB9CisKKyAgICAvLyBDb25maXJtIGRhdGFiYXNlIGxvYWRlZAorICAgIGlmIChudWxsPT1nZXREYXRhYmFzZSgpKSB7CisgICAgPHN0cm9uZz5hZGRBY3Rpb25FcnJvcihDb25zdGFudHMuRVJST1JfREFUQUJBU0VfTk9UX0xPQURFRCk7PC9zdHJvbmc+CisgICAgfQorCisgICAgaWYgKGhhc0Vycm9ycygpKSB7CisgICAgPHN0cm9uZz5yZXR1cm4gRVJST1I7PC9zdHJvbmc+CisgICAgfQorICAgIGVsc2UgeworICAgIDxzdHJvbmc+cmV0dXJuIFNVQ0NFU1M7PC9zdHJvbmc+CisgICAgfQorICAgIH0KKyAgICB9PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgU2V2ZXJhbCBjb21tb24gcmVzdWx0IG5hbWVzIGFyZSBwcmVkZWZpbmVkLAorICAgIGluY2x1ZGluZyBFUlJPUiwgU1VDQ0VTUywgTE9HSU4sIE5PTkUsIGFuZCBJTlBVVCwKKyAgICBzbyB0aGF0IHRoZXNlIHRva2VucyBjYW4gYmUgdXNlZCBjb25zaXN0ZW50bHkgYWNyb3NzIFN0cnV0cyAyIGFwcGxpY2F0aW9ucy4KKzwvcD4KKworCis8aDQ+PGEgbmFtZT0iZ2xvYmFsLXJlc3VsdHMiIGlkPSJnbG9iYWwtcmVzdWx0cyI+R2xvYmFsIFJlc3VsdHM8L2E+PC9oND4KKworPHA+CisgICAgQXMgbWVudGlvbmVkLCAiZXJyb3IiIGlzIGRlZmluZWQgaW4gYSBnbG9iYWwgc2NvcGUuCisgICAgT3RoZXIgYWN0aW9ucyBtYXkgaGF2ZSB0cm91YmxlIGNvbm5lY3RpbmcgdG8gdGhlIGRhdGFiYXNlIGxhdGVyLAorICAgIG9yIG90aGVyIHVuZXhwZWN0ZWQgZXJyb3JzIG1heSBvY2N1ci4KKyAgICBUaGUgTWFpbFJlYWRlciBkZWZpbmVzIHRoZSAiZXJyb3IiIHJlc3VsdCBhcyBhIEdsb2JhbCBSZXN1bHQsCisgICAgc28gdGhhdCBhbnkgYWN0aW9uIGNhbiB1c2UgaXQuCis8L3A+CisKKzxoci8+Cis8aDU+TWFpbFJlYWRlcidzIGdsb2JhbC1yZXN1bHQgZWxlbWVudDwvaDU+Cis8cHJlPjxjb2RlPiAmbHQ7Z2xvYmFsLXJlc3VsdHM+CisgICAgJmx0O3Jlc3VsdCBuYW1lPTxzdHJvbmc+ImVycm9yIjwvc3Ryb25nPj48c3Ryb25nPi9wYWdlcy9FcnJvci5qc3A8L3N0cm9uZz4mbHQ7L3Jlc3VsdD4KKyAgICAmbHQ7cmVzdWx0IG5hbWU9ImludmFsaWQudG9rZW4iPi9wYWdlcy9FcnJvci5qc3AmbHQ7L3Jlc3VsdD4KKyAgICAmbHQ7cmVzdWx0IG5hbWU9ImxvZ2luIiB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPkxvZ29uIWlucHV0Jmx0Oy9yZXN1bHQ+CisgICAgJmx0Oy9nbG9iYWwtcmVzdWx0cz48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBPZiBjb3Vyc2UsIGlmIGFuIGluZGl2aWR1YWwgYWN0aW9uIG1hcHBpbmcgZGVmaW5lcyBpdHMgb3duICJlcnJvciIgcmVzdWx0IHR5cGUsCisgICAgdGhlIGxvY2FsIHJlc3VsdCB3b3VsZCBiZSB1c2VkIGluc3RlYWQuCis8L3A+CisKKzxoND48YSBuYW1lPSJBcHBsaWNhdGlvbkxpc3RlbmVyLmphdmEiIGlkPSJBcHBsaWNhdGlvbkxpc3RlbmVyLmphdmEiPkFwcGxpY2F0aW9uTGlzdGVuZXIuamF2YTwvYT4KKzwvaDQ+CisKKzxwPgorICAgIFRoZSBkYXRhYmFzZSBpcyBleHBvc2VkIGFzIGFuIG9iamVjdCBzdG9yZWQgaW4gYXBwbGljYXRpb24gc2NvcGUuCisgICAgVGhlIGRhdGFiYXNlIG9iamVjdCBpcyBiYXNlZCBvbiBhbiBpbnRlcmZhY2UuCisgICAgRGlmZmVyZW50IGltcGxlbWVudGF0aW9ucyBvZiB0aGUgZGF0YWJhc2UgY291bGQgYmUgbG9hZGVkIHdpdGhvdXQgY2hhbmdpbmcKKyAgICB0aGUgcmVzdCBvZiB0aGUgYXBwbGljYXRpb24uCisgICAgQnV0IGhvdyBpcyB0aGUgZGF0YWJhc2Ugb2JqZWN0IGxvYWRlZCBpbiB0aGUgZmlyc3QgcGxhY2U/Cis8L3A+CisKKzxwPgorICAgIFRoZSBkYXRhYmFzZSBpcyBjcmVhdGVkIGJ5IGEgY3VzdG9tIExpc3RlbmVyIHRoYXQgd2UgY29uZmlndXJlZCBpbiB0aGUgIndlYi54bWwiLgorPC9wPgorCis8aHIvPgorPGg1Pm1haWxyZWFkZXIyLkFwcGxpY2F0aW9uTGlzdGVuZXI8L2g1PgorPHByZT48Y29kZT4gJmx0O2xpc3RlbmVyPgorICAgICZsdDtsaXN0ZW5lci1jbGFzcz4KKyAgICA8c3Ryb25nPm1haWxyZWFkZXIyLkFwcGxpY2F0aW9uTGlzdGVuZXI8L3N0cm9uZz4KKyAgICAmbHQ7L2xpc3RlbmVyLWNsYXNzPgorICAgICZsdDsvbGlzdGVuZXI+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgQnkgZGVmYXVsdCwgb3VyIEFwcGxpY2F0aW9uTGlzdGVuZXIgbG9hZHMgYSA8c3Ryb25nPk1lbW9yeURhdGFiYXNlPC9zdHJvbmc+CisgICAgaW1wbGVtZW50YXRpb24gb2YgdGhlIFVzZXJEYXRhYmFzZS4KKyAgICBNZW1vcnlEYXRhYmFzZSBzdG9yZXMgdGhlIGRhdGFiYXNlIGNvbnRlbnQgYXMgYSBYTUwgZG9jdW1lbnQsCisgICAgd2hpY2ggaXMgcGFyc2VkIGFuZCBsb2FkZWQgYXMgYSBzZXQgb2YgbmVzdGVkIGhhc2h0YWJsZXMuCisgICAgVGhlIG91dGVyIHRhYmxlIGlzIHRoZSBsaXN0IG9mIHVzZXIgb2JqZWN0cywgZWFjaCBvZiB3aGljaCBoYXMgaXRzIG93bgorICAgIGlubmVyIGhhc2h0YWJsZSBvZiBzdWJzY3JpcHRpb25zLgorICAgIFdoZW4geW91IHJlZ2lzdGVyLCBhIHVzZXIgb2JqZWN0IGlzIHN0b3JlZCBpbiB0aGlzIGhhc2h0YWJsZS4KKyAgICBXaGVuIHlvdSBsb2dpbiwgdGhlIHVzZXIgb2JqZWN0IGlzIHN0b3JlZCB3aXRoaW4gdGhlIHNlc3Npb24gY29udGV4dC4KKzwvcD4KKworPHA+CisgICAgVGhlIGRhdGFiYXNlIGNvbWVzIHNlZWRlZCB3aXRoIGEgc2FtcGxlIHVzZXIuCisgICAgSWYgeW91IGNoZWNrIHRoZSAiZGF0YWJhc2UueG1sIiBmaWxlIHVuZGVyICIvc3JjL21haW4iLAorICAgIHlvdSdsbCBzZWUgdGhlIHNhbXBsZSB1c2VyIGRlc2NyaWJlZCBpbiBYTUwuCis8L3A+CisKKzxoci8+Cis8aDU+VGhlICJzZWVkIiB1c2VyIGVsZW1lbnQgZnJvbSB0aGUgTWFpbFJlYWRlciBkYXRhYmFzZS54bWw8L2g1PgorPHByZT48Y29kZT4mbHQ7dXNlciB1c2VybmFtZT0iPHN0cm9uZz51c2VyPC9zdHJvbmc+IiBmcm9tQWRkcmVzcz0iSm9obi5Vc2VyQHNvbWV3aGVyZS5jb20iCisgICAgZnVsbE5hbWU9IjxzdHJvbmc+Sm9obiBRLiBVc2VyPC9zdHJvbmc+IiBwYXNzd29yZD0iPHN0cm9uZz5wYXNzPC9zdHJvbmc+Ij4KKyAgICAmbHQ7c3Vic2NyaXB0aW9uIGhvc3Q9IjxzdHJvbmc+bWFpbC5ob3RtYWlsLmNvbSI8L3N0cm9uZz4gYXV0b0Nvbm5lY3Q9ImZhbHNlIgorICAgIHBhc3N3b3JkPSJiYXIiIHR5cGU9InBvcDMiIHVzZXJuYW1lPSJ1c2VyMTIzNCI+CisgICAgJmx0Oy9zdWJzY3JpcHRpb24+CisgICAgJmx0O3N1YnNjcmlwdGlvbiBob3N0PSI8c3Ryb25nPm1haWwueWFob28uY29tPC9zdHJvbmc+IiBhdXRvQ29ubmVjdD0iZmFsc2UiIHBhc3N3b3JkPSJmb28iCisgICAgdHlwZT0iaW1hcCIgdXNlcm5hbWU9ImpxdXNlciI+CisgICAgJmx0Oy9zdWJzY3JpcHRpb24+CisgICAgJmx0Oy91c2VyPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSAic2VlZCIgdXNlciBlbGVtZW50IGNyZWF0ZXMgYSByZWdpc3RyYXRpb24gcmVjb3JkIGZvciAiSm9obiBRLiBVc2VyIiwKKyAgICB3aXRoIHRoZSBzdWJzY3JpcHRpb24gZGV0YWlsIGZvciBoaXMgaG90bWFpbCBhbmQgeWFob28gYWNjb3VudHMuCis8L3A+CisKKzxoND48YSBuYW1lPSJyZXNvdXJjZXMucHJvcGVydGllcyIgaWQ9InJlc291cmNlcy5wcm9wZXJ0aWVzIj5NZXNzYWdlIFJlc291cmNlczwvYT4KKzwvaDQ+CisKKzxwPgorICAgIEFzIG1lbnRpb25lZCwgTWFpbFJlYWRlciBpcyBhbiBpbnRlcm5hdGlvbmFsaXplZCBhcHBsaWNhdGlvbi4KKyAgICBUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoZSBhcHBsaWNhdGlvbiBhcmUgbG9hZGVkIHRocm91Z2ggYSByZWZlcmVuY2UgaW4gdGhlCisgICAgInN0cnV0cy5wcm9wZXJ0aWVzIiBmaWxlLgorICAgIExpa2UgdGhlIGRhdGFiYXNlIGNvbnRlbnRzLCB0aGUgInN0cnV0cy5wcm9wZXJ0aWVzIiBmaWxlIGlzIGtlcHQgdW5kZXIKKyAgICAiL3NyYy9tYWluLyIgaW4gdGhlIHNvdXJjZSB0cmVlLgorPC9wPgorCis8aHIvPgorPGg1PnN0cnV0cy5wcm9wZXJ0aWVzPC9oNT4KKzxwcmU+PGNvZGU+c3RydXRzLmN1c3RvbS5pMThuLnJlc291cmNlcyA9IDxzdHJvbmc+cmVzb3VyY2VzPC9zdHJvbmc+CisgICAgc3RydXRzLmFjdGlvbi5leHRlbnNpb24gPSA8c3Ryb25nPmRvPC9zdHJvbmc+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgV2hlbiB3ZSBzcGVjaWZ5ICJyZXNvdXJjZXMiIGluIHRoZSBwcm9wZXJ0aWVzIGZpbGUsCisgICAgd2UgYXJlIHRlbGxpbmcgdGhlIGZyYW1ld29yayB0byBzY2FuIHRoZSBjbGFzc3BhdGgKKyAgICBmb3IgYSBSZXNvdXJjZSBCdW5kbGUgbmFtZWQgInJlc291cmNlcy5wcm9wZXJ0aWVzIi4KKyAgICBUaGUgYnVuZGxlIG1pZ2h0IGJlIGVtYmVkZGVkIGluIGEgSkFSLCBvciBmb3VuZCBpbiB0aGUgIldFQi1JTkYvY2xhc3NlcyIKKyAgICBmb2xkZXIsIG9yIGFueXdoZXJlIGVsc2Ugb24gdGhlIHJ1bnRpbWUgY2xhc3NwYXRoLgorICAgIEluIHRoZSBNYWlsUmVhZGVyLCB3ZSBrZWVwIHRoZSA8c3Ryb25nPm9yaWdpbmFsPC9zdHJvbmc+IGJ1bmRsZSBpbiB0aGUKKyAgICBzb3VyY2UgdHJlZSB1bmRlciAic3JjL21haW4vIi4gV2hlbiB0aGUgYXBwbGljYXRpb24gaXMgYnVpbHQsIHRoZQorICAgIHByb3BlcnRpZXMgZmlsZXMgYXJlIDxzdHJvbmc+Y29waWVkPC9zdHJvbmc+IHRvICJXRUItSU5GL2NsYXNzZXMiLCBzbworICAgIHRoYXQgdGhleSBhcmUgb24gdGhlIEphdmEgY2xhc3NwYXRoLgorPC9wPgorCis8aHIvPgorPGg1Pk1lc3NhZ2UgUmVzb3VyY2UgZW50cmllcyB1c2VkIGJ5IHRoZSBXZWxjb21lIHBhZ2U8L2g1PgorPHByZT48Y29kZT48c3Ryb25nPmluZGV4LmhlYWRpbmc9PC9zdHJvbmc+TWFpbFJlYWRlciBBcHBsaWNhdGlvbiBPcHRpb25zCisgICAgPHN0cm9uZz5pbmRleC5sb2dvbj08L3N0cm9uZz5Mb2cgb24gdG8gdGhlIE1haWxSZWFkZXIgQXBwbGljYXRpb24KKyAgICA8c3Ryb25nPmluZGV4LnJlZ2lzdHJhdGlvbj08L3N0cm9uZz5SZWdpc3RlciB3aXRoIHRoZSBNYWlsUmVhZGVyIEFwcGxpY2F0aW9uCisgICAgPHN0cm9uZz5pbmRleC50aXRsZT08L3N0cm9uZz5NYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24KKyAgICA8c3Ryb25nPmluZGV4LnRvdXI9PC9zdHJvbmc+QSBXYWxraW5nIFRvdXIgb2YgdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIElmIHlvdSBjaGFuZ2UgYSBtZXNzYWdlIGluIHRoZSByZXNvdXJjZSwgYW5kIHRoZW4gcmVidWlsZCBhbmQgcmVsb2FkIHRoZQorICAgIGFwcGxpY2F0aW9uLCB0aGUgY2hhbmdlIHdpbGwgYXBwZWFyIHRocm91Z2hvdXQgdGhlIGFwcGxpY2F0aW9uLgorICAgIElmIHlvdSBwcm92aWRlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciBhZGRpdGlvbmFsIGxvY2FsZXMsIHlvdSBjYW4KKyAgICBsb2NhbGl6ZSB5b3VyIGFwcGxpY2F0aW9uLgorICAgIFRoZSBNYWlsUmVhZGVyIHByb3ZpZGVzIHJlc291cmNlcyBmb3IgRW5nbGlzaCwgUnVzc2lhbiwgYW5kIEphcGFuZXNlLgorPC9wPgorCis8aDQ+PGEgbmFtZT0iV2VsY29tZS5qc3AiIGlkPSJXZWxjb21lLmpzcCI+V2VsY29tZSBQYWdlPC9hPjwvaDQ+CisKKzxwPgorICAgIEFmdGVyIGNvbmZpcm1pbmcgdGhhdCB0aGUgbmVjZXNzYXJ5IHJlc291cmNlcyBleGlzdCwgdGhlIFdlbGNvbWUgYWN0aW9uCisgICAgZm9yd2FyZHMgdG8gdGhlIFdlbGNvbWUgcGFnZS4KKzwvcD4KKzxoci8+Cis8aDU+V2VsY29tZS5qc3A8L2g1PgorPHByZT48Y29kZT4mbHQ7JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorICAgIDxzdHJvbmc+Jmx0OyVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MiICU+PC9zdHJvbmc+CisgICAgJmx0OyFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CisgICAgJmx0O2h0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorICAgICZsdDtoZWFkPgorICAgICZsdDttZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+CisgICAgJmx0O3RpdGxlPjxzdHJvbmc+Jmx0O3M6dGV4dCBuYW1lPSJpbmRleC50aXRsZSIvPjwvc3Ryb25nPiZsdDsvdGl0bGU+CisgICAgJmx0O2xpbmsgaHJlZj0iPHN0cm9uZz4mbHQ7czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz48L3N0cm9uZz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgICZsdDsvaGVhZD4KKworICAgICZsdDtib2R5PgorICAgICZsdDtoMz4mbHQ7czp0ZXh0IG5hbWU9ImluZGV4LmhlYWRpbmciLz4mbHQ7L2gzPgorCisgICAgJmx0O3VsPgorICAgICZsdDtsaT4mbHQ7YSBocmVmPSImbHQ7czp1cmwgYWN0aW9uPSJSZWdpc3RyYXRpb24haW5wdXQiLz4iPiZsdDtzOnRleHQKKyAgICBuYW1lPSJpbmRleC5yZWdpc3RyYXRpb24iLz4mbHQ7L2E+Jmx0Oy9saT4KKyAgICAmbHQ7bGk+Jmx0O2EgaHJlZj0iJmx0O3M6dXJsIGFjdGlvbj0iTG9nb24haW5wdXQiLz4iPiZsdDtzOnRleHQKKyAgICBuYW1lPSJpbmRleC5sb2dvbiIvPiZsdDsvYT4mbHQ7L2xpPgorICAgICZsdDsvdWw+CisKKyAgICAmbHQ7aDM+TGFuZ3VhZ2UgT3B0aW9ucyZsdDsvaDM+CisgICAgJmx0O3VsPgorICAgICZsdDtsaT4mbHQ7YSBocmVmPSImbHQ7czp1cmwgYWN0aW9uPSJXZWxjb21lP3JlcXVlc3RfbG9jYWxlPWVuIi8+Ij5FbmdsaXNoJmx0Oy9hPiZsdDsvbGk+CisgICAgJmx0O2xpPiZsdDthIGhyZWY9IiZsdDtzOnVybCBhY3Rpb249IldlbGNvbWU/cmVxdWVzdF9sb2NhbGU9amEiLz4iPkphcGFuZXNlJmx0Oy9hPiZsdDsvbGk+CisgICAgJmx0O2xpPiZsdDthIGhyZWY9IiZsdDtzOnVybCBhY3Rpb249IldlbGNvbWU/cmVxdWVzdF9sb2NhbGU9cnUiLz4iPlJ1c3NpYW4mbHQ7L2E+Jmx0Oy9saT4KKyAgICAmbHQ7L3VsPgorCisgICAgJmx0O2hyIC8+CisKKyAgICAmbHQ7cD48c3Ryb25nPiZsdDtzOmkxOG4gbmFtZT0iYWx0ZXJuYXRlIj48L3N0cm9uZz4KKyAgICAmbHQ7aW1nIHNyYz0iJmx0O3M6dGV4dCBuYW1lPSJzdHJ1dHMubG9nby5wYXRoIi8+IgorICAgIGFsdD0iJmx0O3M6dGV4dCBuYW1lPSJzdHJ1dHMubG9nby5hbHQiLz4iLz4KKyAgICA8c3Ryb25nPiZsdDsvczppMThuPjwvc3Ryb25nPiZsdDsvcD4KKworICAgICZsdDtwPiZsdDthIGhyZWY9IiZsdDtzOnVybCBhY3Rpb249IlRvdXIiIC8+Ij4mbHQ7czp0ZXh0IG5hbWU9ImluZGV4LnRvdXIiLz4mbHQ7L2E+Jmx0Oy9wPgorCisgICAgJmx0Oy9ib2R5PgorICAgICZsdDsvaHRtbD48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBBdCB0aGUgdG9wIG9mIHRoZSBXZWxjb21lIHBhZ2UsIHRoZXJlIGFyZSBzZXZlcmFsIGRpcmVjdGl2ZXMgdGhhdCBsb2FkIHRoZQorICAgIFN0cnV0cyAyIHRhZyBsaWJyYXJpZXMuCisgICAgVGhlc2UgYXJlIGp1c3QgdGhlIHVzdWFsIHJlZCB0YXBlIHRoYXQgZ29lcyB3aXRoIGFueSBKU1AgZmlsZS4KKyAgICBUaGUgcmVzdCBvZiB0aGUgcGFnZSB1dGlsaXplcyB0aHJlZSBTdHJ1dHMgSlNQIHRhZ3M6CisgICAgInRleHQiLCAidXJsIiwgYW5kICJpMThuIi4KKzwvcD4KKworPHA+CisgICAgKFdlIHVzZSB0aGUgdGFnIHByZWZpeCAiczoiIGluIHRoZSBTdHJ1dHMgMiBNYWlsUmVhZGVyIGFwcGxpY2F0aW9uLAorICAgIGJ1dCB5b3UgY2FuIHVzZSB3aGF0ZXZlciBwcmVmaXggeW91IGxpa2UgaW4geW91ciBhcHBsaWNhdGlvbnMuKQorPC9wPgorCis8cD4KKyAgICBUaGUgPHN0cm9uZz50ZXh0PC9zdHJvbmc+IHRhZyBpbnNlcnRzIGEgbWVzc2FnZSBmcm9tIGFuCisgICAgYXBwbGljYXRpb24ncyBkZWZhdWx0IHJlc291cmNlIGJ1bmRsZS4KKyAgICBJZiB0aGUgZnJhbWV3b3JrJ3MgbG9jYWxlIHNldHRpbmcgaXMgY2hhbmdlZCBmb3IgYSB1c2VyLAorICAgIHRoZSB0ZXh0IHRhZyB3aWxsIHJlbmRlciBtZXNzYWdlcyBmcm9tIHRoZSBuZXcgbG9jYWxlJ3MgcmVzb3VyY2UKKyAgICBidW5kbGUgaW5zdGVhZC4KKzwvcD4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+dXJsPC9zdHJvbmc+IHRhZyBjYW4gcmVuZGVyIGEgcmVmZXJlbmNlIHRvIGFuCisgICAgYWN0aW9uIG9yIGFueSBvdGhlciB3ZWIgcmVzb3VyY2UsCisgICAgYXBwbHlpbmcgIlVSTCBlbmNvZGluZyIgdG8gdGhlIGh5cGVybGlua3MgYXMgbmVlZGVkLgorICAgIEphdmEncyBVUkwgZW5jb2RpbmcgZmVhdHVyZSBsZXRzIHlvdXIgYXBwbGljYXRpb24gbWFpbnRhaW4gY2xpZW50IHN0YXRlCisgICAgd2l0aG91dCByZXF1aXJpbmcgY29va2llcy4KKzwvcD4KKworPGhyLz4KKzxoNT5UaXA6PC9oNT4KKzxibG9ja3F1b3RlPgorICAgIDxwPjxmb250IGNsYXNzPSJoaW50Ij4KKyAgICAgICAgPHN0cm9uZz5Db29raWVzPC9zdHJvbmc+IC0KKyAgICAgICAgSWYgeW91IHR1cm4gY29va2llcyBvZmYgaW4geW91ciBicm93c2VyLCBhbmQgdGhlbiByZWxvYWQgeW91ciBicm93c2VyCisgICAgICAgIGFuZCB0aGlzIHBhZ2UsCisgICAgICAgIHlvdSB3aWxsIHNlZSB0aGUgbGlua3Mgd2l0aCB0aGUgSmF2YSBzZXNzaW9uIGlkIGluZm9ybWF0aW9uIGF0dGFjaGVkLgorICAgICAgICAoSWYgeW91IGFyZSB1c2luZyBJbnRlcm5ldCBFeHBsb3JlciBhbmQgdHJ5IHRoaXMsCisgICAgICAgIGJlIHN1cmUgeW91IHJlc2V0IGNvb2tpZXMgZm9yIHRoZSBhcHByb3ByaWF0ZSBzZWN1cml0eSB6b25lLAorICAgICAgICBhbmQgdGhhdCB5b3UgZGlzYWxsb3cgInBlci1zZXNzaW9uIiBjb29raWVzLikKKyAgICA8L2ZvbnQ+PC9wPgorPC9ibG9ja3F1b3RlPgorPGhyLz4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+aTE4bjwvc3Ryb25nPiB0YWcgcHJvdmlkZXMgYWNjZXNzIHRvIG11bHRpcGxlIHJlc291cmNlIGJ1bmRsZXMuCisgICAgVGhlIE1haWxSZWFkZXIgYXBwbGljYXRpb24gdXNlcyBhIHNlY29uZCBzZXQgb2YgbWVzc2FnZSByZXNvdXJjZXMgZm9yCisgICAgbm9uLXRleHQgZWxlbWVudHMuCisgICAgV2hlbiB0aGVzZSBhcmUgbmVlZGVkLCB3ZSB1c2UgdGhlICJpMThuIiB0YWcgdG8gc3BlY2lmeSBhIGRpZmZlcmVudCBidW5kbGUuCis8L3A+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPmFsdGVybmF0ZTwvc3Ryb25nPiBidW5kbGUgaXMgc3RvcmVkIG5leHQgdG8gdGhlIGRlZmF1bHQgYnVuZGxlLAorICAgIHNvIHRoYXQgaXQgZW5kcyB1cCB1bmRlciAiY2xhc3NlcyIsIHdoaWNoIGlzIG9uIHRoZSBhcHBsaWNhdGlvbidzIGNsYXNzIHBhdGguCis8L3A+CisKKzxwPgorICAgIEluIHRoZSBzcGFuIG9mIGEgc2luZ2xlIHJlcXVlc3QgZm9yIHRoZSBXZWxjb21lIHBhZ2UsIHRoZSBmcmFtZXdvcmsgaGFzIGRvbmUKKyAgICBxdWl0ZSBhIGJpdCBhbHJlYWR5OgorPC9wPgorCis8dWw+CisgICAgPGxpPgorICAgICAgICBDb25maXJtZWQgdGhhdCByZXF1aXJlZCByZXNvdXJjZXMgd2VyZSBsb2FkZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uLgorICAgIDwvbGk+CisKKyAgICA8bGk+CisgICAgICAgIFdyaXR0ZW4gYWxsIHRoZSBwYWdlIGhlYWRpbmdzIGFuZCBsYWJlbHMgZnJvbSBpbnRlcm5hdGlvbmFsaXplZAorICAgICAgICBtZXNzYWdlIHJlc291cmNlcy4KKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgICAgICBBdXRvbWF0aWNhbGx5IFVSTC1lbmNvZGVkIHBhdGhzIGFzIG5lZWRlZC4KKyAgICA8L2xpPgorPC91bD4KKworPHA+CisgICAgV2hlbiByZW5kZXJlZCwgdGhlIFdlbGNvbWUgcGFnZSBsaXN0cyB0d28gbWVudSBvcHRpb25zOgorICAgIG9uZSB0byByZWdpc3RlciB3aXRoIHRoZSBhcHBsaWNhdGlvbiBhbmQgb25lIHRvIGxvZyBvbiAoaWYgeW91IGhhdmUKKyAgICBhbHJlYWR5IHJlZ2lzdGVyZWQpLgorICAgIExldCdzIGZvbGxvdyB0aGUgTG9nb24gbGluayBmaXJzdC4KKzwvcD4KKworPGgzPjxhIG5hbWU9IkxvZ29uIiBpZD0iTG9nb24iPkxvZ29uPC9hPjwvaDM+CisKKzxwPgorICAgIElmIHlvdSBjaG9vc2UgdGhlIExvZ29uIGxpbmssIGFuZCBhbGwgZ29lcyB3ZWxsLCB0aGUgTG9nb24gYWN0aW9uIGZvcndhcmRzCisgICAgY29udHJvbCB0byB0aGUgTG9nb24gcGFnZS4KKzwvcD4KKworPGg0PjxhIG5hbWU9IkxvZ29uLmpzcCIgaWQ9IkxvZ29uLmpzcCI+TG9nb24gUGFnZTwvYT48L2g0PgorCis8cD4KKyAgICBUaGUgTG9nb24gcGFnZSBkaXNwbGF5cyBhIGZvcm0gdGhhdCBhY2NlcHRzIGEgdXNlcm5hbWUgYW5kIHBhc3N3b3JkLgorICAgIFlvdSBjYW4gdXNlIHRoZSBkZWZhdWx0IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBsb2dvbgorICAgICg8c3Ryb25nPnVzZXI8L3N0cm9uZz4gYW5kIDxzdHJvbmc+cGFzczwvc3Ryb25nPiksIGlmCisgICAgeW91IGxpa2UuIFRyeSBvbWl0dGluZyBvciBtaXNzcGVsbGluZyB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGluCisgICAgdmFyaW91cyBjb21iaW5hdGlvbnMgdG8gc2VlIGhvdyB0aGUgYXBwbGljYXRpb24gcmVhY3RzLgorICAgIE5vdGUgdGhhdCBib3RoIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgYXJlIGNhc2Ugc2Vuc2l0aXZlLgorPC9wPgorCis8aHIvPgorPGg1PkxvZ2luLmpzcDwvaDU+Cis8cHJlPjxjb2RlPiZsdDslQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+CisgICAgJmx0OyVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MiICU+CisgICAgJmx0OyFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CisgICAgJmx0O2h0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorICAgICZsdDtoZWFkPgorICAgICZsdDt0aXRsZT4mbHQ7czp0ZXh0IG5hbWU9ImxvZ29uLnRpdGxlIi8+Jmx0Oy90aXRsZT4KKyAgICAmbHQ7bGluayBocmVmPSImbHQ7czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgICZsdDsvaGVhZD4KKyAgICAmbHQ7Ym9keSBvbkxvYWQ9InNlbGYuZm9jdXMoKTtkb2N1bWVudC5Mb2dvbi51c2VybmFtZS5mb2N1cygpIj4KKyAgICA8c3Ryb25nPiZsdDtzOmFjdGlvbmVycm9yLz48L3N0cm9uZz4KKyAgICA8c3Ryb25nPiZsdDtzOmZvcm0gbWV0aG9kPSJQT1NUIiB2YWxpZGF0ZT0idHJ1ZSI+PC9zdHJvbmc+CisgICAgPHN0cm9uZz4mbHQ7czp0ZXh0ZmllbGQgbGFiZWw9IiV7Z2V0VGV4dCgndXNlcm5hbWUnKX0iIG5hbWU9InVzZXJuYW1lIi8+PC9zdHJvbmc+CisgICAgPHN0cm9uZz4mbHQ7czpwYXNzd29yZCBsYWJlbD0iJXtnZXRUZXh0KCdwYXNzd29yZCcpfSIgbmFtZT0icGFzc3dvcmQiLz48L3N0cm9uZz4KKyAgICA8c3Ryb25nPiZsdDtzOnN1Ym1pdCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uc2F2ZScpfSIvPjwvc3Ryb25nPgorICAgIDxzdHJvbmc+Jmx0O3M6cmVzZXQgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLnJlc2V0Jyl9Ii8+PC9zdHJvbmc+CisgICAgJmx0O3M6c3VibWl0IDxzdHJvbmc+YWN0aW9uPSJMb2dvbiFjYW5jZWwiIG9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCI8L3N0cm9uZz4KKyAgICB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uY2FuY2VsJyl9Ii8+CisgICAgJmx0Oy9zOmZvcm0+CisgICAgJmx0O2pzcDppbmNsdWRlIHBhZ2U9IkZvb3Rlci5qc3AiLz4KKyAgICAmbHQ7L2JvZHk+CisgICAgJmx0Oy9odG1sPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFdlIGFscmVhZHkgc2F3IHNvbWUgb2YgdGhlIHRhZ3MgdXNlZCBieSB0aGUgTG9nb24gcGFnZSBvbiB0aGUgV2VsY29tZSBwYWdlLgorICAgIExldCdzIGZvY3VzIG9uIHRoZSBuZXcgdGFncy4KKzwvcD4KKworPHA+CisgICAgVGhlIGZpcnN0IG5ldyB0YWcgb24gdGhlIExvZ29uIHBhZ2UgaXMgPHN0cm9uZz5hY3Rpb25lcnJvcnM8L3N0cm9uZz4uCisgICAgTW9zdCBvZiB0aGUgcG9zc2libGUgdmFsaWRhdGlvbiBlcnJvcnMgYXJlIHJlbGF0ZWQgdG8gYSBzaW5nbGUgZmllbGQuCisgICAgSWYgeW91IGRvbid0IGVudGVyIGEgdXNlcm5hbWUsCisgICAgdGhlIGZyYW1ld29yayBjYW4gcGxhY2UgYW4gZXJyb3IgbWVzc2FnZSBuZWFyIHRoZSB0YWcgcHJvbXB0aW5nIHlvdSB0bworICAgIGVudGVyIGEgdXNlcm5hbWUuCisgICAgQnV0IHNvbWUgbWVzc2FnZXMgYXJlIG5vdCByZWxhdGVkIHRvIGEgc2luZ2xlIGZpZWxkLgorICAgIEZvciBleGFtcGxlLCB0aGUgZGF0YWJhc2UgbWlnaHQgYmUgZG93bi4KKyAgICBJZiB0aGUgYWN0aW9uIHJldHVybnMgYW4gIkFjdGlvbiBFcnJvciIsIGFzIG9wcG9zZWQgdG8gYSAiRmllbGQgRXJyb3IiLAorICAgIHRoZSBtZXNzYWdlcyBhcmUgcmVuZGVyZWQgaW4gcGxhY2Ugb2YgdGhlICJhY3Rpb25lcnJvciIgdGFnLgorICAgIFRoZSB0ZXh0IGZvciB0aGUgdmFsaWRhdGlvbiBlcnJvcnMsIHdoZXRoZXIgdGhleSBhcmUgQWN0aW9uIEVycm9ycyBvcgorICAgIEZpZWxkIEVycm9ycywgY2FuIGJlIHNwZWNpZmllZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLAorICAgIG1ha2luZyB0aGUgbWVzc2FnZXMgZWFzeSB0byBtYW5hZ2UgYW5kIGxvY2FsaXplLgorPC9wPgorCis8cD4KKyAgICBUaGUgc2Vjb25kIG5ldyB0YWcgaXMgPHN0cm9uZz5mb3JtPC9zdHJvbmc+LgorICAgIFRoaXMgdGFnIHJlbmRlcnMgYSBIVE1MIGZvcm0gdGFnLgorICAgIEJ5IGRlZmF1bHQsIHRoZSBmb3JtIHdpbGwgc3VibWl0IGJhY2sgdG8gd2hhdGV2ZXIgYWN0aW9uIGludm9rZWQgdGhlIHBhZ2UuCisgICAgVGhlICJ2YWxpZGF0ZT10cnVlIiBzZXR0aW5nIGVuYWJsZXMgY2xpZW50LXNpZGUgdmFsaWRhdGlvbiwKKyAgICBzbyB0aGF0IHRoZSBmb3JtIGNhbiBiZSB2YWxpZGF0ZWQgd2l0aCBKYXZhU2NyaXB0IGJlZm9yZSBiZWluZyBzZW50CisgICAgYmFjayB0byB0aGUgc2VydmVyLgorICAgIFRoZSBmcmFtZXdvcmsgd2lsbCBzdGlsbCB2YWxpZGF0ZSB0aGUgZm9ybSBhZ2FpbiwganVzdCB0byBiZSBzdXJlLCBidXQgdGhlCisgICAgY2xpZW50LXNpZGUgdmFsaWRhdGlvbiBjYW4gc2F2ZSBhIGZldyByb3VuZC10cmlwcyB0byB0aGUgc2VydmVyLgorICAgIFlvdSBjYW4gdXNlIHRoZSBtZXRob2QgYXR0cmlidXRlIHRvIGRlc2lnbmF0ZSAiR0VUIiBvciAiUE9TVCIsCisgICAganVzdCBsaWtlIHRoZSBIVE1MIGZvcm0gdGFnLgorPC9wPgorCis8cD4KKyAgICBXaXRoaW4gdGhlIGZvcm0gdGFnLAorICAgIHdlIHNlZSBmb3VyIG1vcmUgbmV3IHRhZ3M6ICJ0ZXh0ZmllbGQiLCAicGFzc3dvcmQiLCAic3VibWl0IiwKKyAgICBhbmQgInJlc2V0Ii4gV2UgYWxzbyBzZWUgYSBzZWNvbmQgdXNhZ2Ugb2YgInN1Ym1pdCIgdGhhdCB1dGlsaXplcyBhbgorICAgICJhY3Rpb24iIGF0dHJpYnV0ZS4KKzwvcD4KKworPHA+CisgICAgV2hlbiB3ZSBwbGFjZSBhIGNvbnRyb2wgb24gYSBmb3JtLCB3ZSB1c3VhbGx5IG5lZWQgdG8gY29kZSBhIHNldCBvZgorICAgIEhUTUwgdGFncyB0byBkbyBldmVyeXRoaW5nIHdlIHdhbnQgdG8gZG8uCisgICAgTW9zdCBvZnRlbiwgd2UgZG8gbm90IGp1c3Qgd2FudCBhIHBsYWluICJpbnB1dCB0eXBlPXRleHQiIHRhZy4KKyAgICBXZSB3YW50IHRoZSBpbnB1dCBmaWVsZCB0byBoYXZlIGEgbGFiZWwgdG9vLCBhbmQgbWF5YmUgZXZlbgorICAgIGEgdG9vbHRpcC4gQW5kLCBvZiBjb3Vyc2UsIGEgcGxhY2UgdG8gcHJpbnQgYSBtZXNzYWdlCisgICAgc2hvdWxkIGludmFsaWQgZGF0YSBiZSBlbnRlcmVkLgorPC9wPgorCis8cD4KKyAgICBUaGUgVUkgVGFncyBzdXBwb3J0IHRlbXBsYXRlcyBhbmQgdGhlbWVzIHNvIHRoYXQgYSBzZXQgb2YgSFRNTCB0YWdzIGNhbiBiZQorICAgIHJlbmRlcmVkIGZyb20gYSBzaW5nbGUgVUkgVGFnLiBGb3IgZXhhbXBsZSwgdGhlIHNpbmdsZSB0YWcKKzwvcD4KKworPHByZT48Y29kZT4KKyAgICAmbHQ7czo8c3Ryb25nPnRleHRmaWVsZDwvc3Ryb25nPiBsYWJlbD0iJXtnZXRUZXh0KCd1c2VybmFtZScpfSIgbmFtZT0idXNlcm5hbWUiLz4KKzwvY29kZT48L3ByZT4KKworPHA+CisgICAgZ2VuZXJhdGVzIGEgd2FkIG9mIEhUTUwgbWFya3VwLgorPC9wPgorCis8aHIvPgorPHByZT48Y29kZT4mbHQ7dHI+CisgICAgJmx0O3RkIGNsYXNzPSJ0ZExhYmVsIj4KKyAgICAmbHQ7bGFiZWwgZm9yPSJMb2dvbl91c2VybmFtZSIgY2xhc3M9ImxhYmVsIj5Vc2VybmFtZTombHQ7L2xhYmVsPgorICAgICZsdDsvdGQ+CisgICAgJmx0O3RkPgorICAgICZsdDtpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgdmFsdWU9IiIgaWQ9IkxvZ29uX3VzZXJuYW1lIi8+CisgICAgJmx0Oy90ZD4KKyAgICAmbHQ7L3RyPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIElmIGZvciBzb21lIHJlYXNvbiB5b3UgZG9uJ3QgbGlrZSB0aGUgbWFya3VwIGdlbmVyYXRlZCBieSBhIFVJIFRhZywKKyAgICBpdCdzIGVhY2ggdG8gY2hhbmdlLgorICAgIEVhY2ggdGFnIGlzIGRyaXZlbiBieSBhIHRlbXBsYXRlIHRoYXQgY2FuIGJlIHVwZGF0ZWQgb24gYSB0YWctYnktdGFnIGJhc2lzLgorICAgIEZvciBleGFtcGxlLAorICAgIGhlcmUgaXMgdGhlIGRlZmF1bHQgdGVtcGxhdGUgdGhhdCBnZW5lcmF0ZXMgdGhlIG1hcmt1cCBmb3IgdGhlIEFjdGlvbkVycm9ycyB0YWc6Cis8L3A+CisKKzxoci8+Cis8cHJlPjxjb2RlPiZsdDsjaWYgKGFjdGlvbkVycm9ycz9leGlzdHMgJiYgYWN0aW9uRXJyb3JzP3NpemUgPiAwKT4KKyAgICAmbHQ7dWw+CisgICAgJmx0OyNsaXN0IGFjdGlvbkVycm9ycyBhcyBlcnJvcj4KKyAgICAmbHQ7bGk+Jmx0O3NwYW4gY2xhc3M9ImVycm9yTWVzc2FnZSI+JHtlcnJvcn0mbHQ7L3NwYW4+Jmx0Oy9saT4KKyAgICAmbHQ7LyNsaXN0PgorICAgICZsdDsvdWw+CisgICAgJmx0Oy8jaWY+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgSWYgeW91IHdhbnRlZCBBY3Rpb25FcnJvcnMgZGlzcGxheWVkIGluIGEgdGFibGUgaW5zdGVhZCBvZiBhIGxpc3QsCisgICAgeW91IGNvdWxkIGVkaXQgYSBjb3B5IG9mIHRoaXMgZmlsZSwgc2F2ZSBpdCBhcyBhIGZpbGUgbmFtZWQgImFjdGlvbmVycm9yLmZ0bCIsCisgICAgYW5kIHBsYWNlIHRoaXMgb25lIGZpbGUgc29tZXdoZXJlIG9uIHlvdXIgY2xhc3NwYXRoLgorPC9wPgorCis8aHIvPgorPHByZT48Y29kZT4mbHQ7I2lmIChhY3Rpb25FcnJvcnM/ZXhpc3RzICYmIGFjdGlvbkVycm9ycz9zaXplID4gMCk+CisgICAgPHN0cm9uZz4mbHQ7dGFibGU+PC9zdHJvbmc+CisgICAgJmx0OyNsaXN0IGFjdGlvbkVycm9ycyBhcyBlcnJvcj4KKyAgICA8c3Ryb25nPiZsdDt0cj4mbHQ7dGQ+PC9zdHJvbmc+Jmx0O3NwYW4gY2xhc3M9ImVycm9yTWVzc2FnZSI+JHtlcnJvcn0mbHQ7L3NwYW4+PHN0cm9uZz4mbHQ7L3RkPiZsdDsvdHI+PC9zdHJvbmc+CisgICAgJmx0Oy8jbGlzdD4KKyAgICA8c3Ryb25nPiZsdDsvdGFibGU+PC9zdHJvbmc+CisgICAgJmx0Oy8jaWY+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgVW5kZXIgdGhlIGNvdmVycywgdGhlIGZyYW1ld29yayB1c2VzCisgICAgPGEgaHJlZj0iaHR0cDovL2ZyZWVtYXJrZXIuc291cmNlZm9yZ2UubmV0LyI+RnJlZW1hcmtlcjwvYT4KKyAgICBmb3IgaXRzIHN0YW5kYXJkIHRlbXBsYXRpbmcgbGFuZ3VhZ2UuCisgICAgRnJlZU1hcmtlciBpcyBzaW1pbGFyIHRvCisgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy92ZWxvY2l0eS8iPlZlbG9jaXR5PC9hPiwKKyAgICBidXQgaXQgb2ZmZXJzIGJldHRlciBlcnJvciByZXBvcnRpbmcgYW5kIHNvbWUgYWRkaXRpb25hbCBmZWF0dXJlcy4KKyAgICBJZiB5b3UgcHJlZmVyLCBWZWxvY2l0eSBhbmQgSlNQIHRlbXBsYXRlcyBjYW4gYWxzbyBiZSB1c2VkIHRvIGNyZWF0ZSB5b3VyIG93biBVSSBUYWdzLgorPC9wPgorCis8cD4KKyAgICBUaGUgPHN0cm9uZz5wYXNzd29yZDwvc3Ryb25nPiB0YWcgcmVuZGVycyBhICJpbnB1dCB0eXBlPXBhc3N3b3JkIgorICAgIHRhZywgYWxvbmcgd2l0aCB0aGUgdXN1YWwgdGVtcGxhdGUvdGhlbWUgbWFya3VwLgorICAgIEJ5IGRlZmF1bHQsIHRoZSBwYXNzd29yZCB0YWcgd2lsbCBub3QgcmV0YWluIGlucHV0IGlmIHRoZSBzdWJtaXQgZmFpbHMuCisgICAgSWYgdGhlIHVzZXJuYW1lIGlzIHdyb25nLAorICAgIHRoZSBjbGllbnQgd2lsbCBoYXZlIHRvIGVudGVyIHRoZSBwYXNzd29yZCBhZ2FpbiB0b28uCisgICAgKElmIHlvdSBkaWQgd2FudCB0byByZXRhaW4gdGhlIHBhc3N3b3JkIHdoZW4gdmFsaWRhdGlvbiBmYWlscywKKyAgICB5b3UgY2FuIHNldCB0aGUgdGFnJ3MgInNob3dQYXNzd29yZCIgcHJvcGVydHkgdG8gdHJ1ZS4pCis8L3A+CisKKzxwPgorICAgIFVuc3VycHJpc2luZ2x5LCB0aGUgPHN0cm9uZz5zdWJtaXQ8L3N0cm9uZz4gYW5kIDxzdHJvbmc+cmVzZXQ8L3N0cm9uZz4gdGFncworICAgIHJlbmRlciBidXR0b25zIG9mIHRoZSBjb3JyZXNwb25kaW5nIHR5cGVzLgorPC9wPgorCis8cD4KKyAgICBUaGUgc2Vjb25kIHN1Ym1pdCBidXR0b24gaXMgbW9yZSBpbnRlcmVzdGluZy4KKzwvcD4KKworPHByZT48Y29kZT4gICZsdDtzOnN1Ym1pdCA8c3Ryb25nPmFjdGlvbj0iTG9nb24hY2FuY2VsIiBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiPC9zdHJvbmc+CisgICAgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLmNhbmNlbCcpfSIvPgorPC9jb2RlPjwvcHJlPgorCis8cD4KKyAgICBIZXJlIHdlIGFyZSBjcmVhdGluZyB0aGUgQ2FuY2VsIGJ1dHRvbiBmb3IgdGhlIGZvcm0uCisgICAgVGhlIGJ1dHRvbidzIGF0dHJpYnV0ZSA8ZW0+YWN0aW9uPSJMb2dvbjxzdHJvbmc+ITwvc3Ryb25nPmNhbmNlbCI8L2VtPgorICAgIHRlbGxzIHRoZSBmcmFtZXdvcmsgdG8gc3VibWl0IHRvIHRoZSBMb2dvbidzICJjYW5jZWwiIG1ldGhvZAorICAgIGluc3RlYWQgb2YgdGhlIHVzdWFsICJleGVjdXRlIiBtZXRob2QuCisgICAgVGhlIDxlbT5vbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiPC9lbT4gc2NyaXB0IGRlZmVhdHMgY2xpZW50LXNpZGUgdmFsaWRhdGlvbi4KKyAgICBPbiB0aGUgc2VydmVyIHNpZGUsICJjYW5jZWwiIGlzIG9uIGEgc3BlY2lhbCBsaXN0IG9mIG1ldGhvZHMgdGhhdCBieXBhc3MgdmFsaWRhdGlvbiwKKyAgICBzbyB0aGUgcmVxdWVzdCB3aWxsIGdvIGRpcmVjdGx5IHRvIHRoZSBBY3Rpb24ncyA8c3Ryb25nPmNhbmNlbDwvc3Ryb25nPiBtZXRob2QuCisgICAgKE90aGVyIHNwZWNpYWwgYWxpYXNlcyBvbiB0aGUgYnlwYXNzIGxpc3QgaW5jbHVkZSAiaW5wdXQiIGFuZCAiYmFjayIuKQorPC9wPgorCis8aHIvPgorPGg1PlRpcDo8L2g1PgorPGJsb2NrcXVvdGU+CisgICAgPHA+PGZvbnQgY2xhc3M9ImhpbnQiPgorICAgICAgICBUaGUgVUkgdGFncyBoYXZlIG9wdGlvbnMgYW5kIGNhcGFiaWxpdGllcyBiZXlvbmQgd2hhdCB3ZSBoYXZlIHNob3duIGhlcmUuCisgICAgICAgIEZvciBtb3JlIHNlZSwgdGhlIDxhIGhyZWY9Imh0dHA6Ly9jb25mbHVlbmNlLnR3ZGF0YS5vcmcvZGlzcGxheS9XVy9UYWdzIj5VSSBUYWcgZG9jdW1lbnRhdGlvbi48L2E+CisgICAgPC9mb250PjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoci8+CisKKzxwPgorICAgIE9LLCBidXQgaG93IGRvIHRoZSB0YWdzIGtub3cgdGhhdCBib3RoIG9mIHRoZXNlIGZpZWxkcyBhcmUgcmVxdWlyZWQ/CisgICAgSG93IGRvIHRoZXkga25vdyB3aGF0IG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIHRoZSBmaWVsZHMgYXJlIGVtcHR5PworPC9wPgorCis8cD4KKyAgICBGb3IgdGhlIGFuc3dlcnMsIHdlIG5lZWQgdG8gbG9vayBhdCBhbm90aGVyIGZsYXZvciBvZiBjb25maWd1cmF0aW9uIGZpbGU6CisgICAgdGhlICJ2YWxpZGF0aW9uIiBmaWxlLgorPC9wPgorCis8aDQ+PGEgbmFtZT0iTG9nb24tdmFsaWRhdGlvbi54bWwiIGlkPSJMb2dvbi12YWxpZGF0aW9uLnhtbCI+TG9nb24tdmFsaWRhdGlvbi54bWw8L2E+Cis8L2g0PgorCis8cD4KKyAgICBXaGlsZSBpdCBpcyBub3QgaGFyZCB0byBjb2RlIGRhdGEtZW50cnkgdmFsaWRhdGlvbiBpbnRvIGFuIEFjdGlvbiBjbGFzcywKKyAgICB0aGUgZnJhbWV3b3JrIHByb3ZpZGVzIGFuIGV2ZW4gZWFzaWVyIHdheSB0byB2YWxpZGF0ZSBpbnB1dC4KKzwvcD4KKworPHA+CisgICAgVGhlIHZhbGlkYXRpb24gZnJhbWV3b3JrIGlzIGNvbmZpZ3VyZWQgdGhyb3VnaCBhbm90aGVyIFhNTCBkb2N1bWVudCwgdGhlIDxzdHJvbmc+CisgICAgTG9nb24tdmFsaWRhdGlvbi54bWw8L3N0cm9uZz4uCis8L3A+CisKKzxoci8+Cis8aDU+VmFsaWRhdGlvbiBmaWxlIGZvciBMb2dvbiBBY3Rpb248L2g1PgorPHByZT48Y29kZT4mbHQ7IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIKKyAgICAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLXZhbGlkYXRvci0xLjAuMi5kdGQiPgorICAgICZsdDt2YWxpZGF0b3JzPgorICAgICZsdDtmaWVsZCBuYW1lPSI8c3Ryb25nPnVzZXJuYW1lPC9zdHJvbmc+Ij4KKyAgICAmbHQ7ZmllbGQtdmFsaWRhdG9yIHR5cGU9IjxzdHJvbmc+cmVxdWlyZWRzdHJpbmc8L3N0cm9uZz4iPgorICAgICZsdDttZXNzYWdlIGtleT0iPHN0cm9uZz5lcnJvci51c2VybmFtZS5yZXF1aXJlZDwvc3Ryb25nPiIvPgorICAgICZsdDsvZmllbGQtdmFsaWRhdG9yPgorICAgICZsdDsvZmllbGQ+CisgICAgJmx0O2ZpZWxkIG5hbWU9IjxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4iPgorICAgICZsdDtmaWVsZC12YWxpZGF0b3IgdHlwZT0iPHN0cm9uZz5yZXF1aXJlZHN0cmluZzwvc3Ryb25nPiI+CisgICAgJmx0O21lc3NhZ2Uga2V5PSI8c3Ryb25nPmVycm9yLnBhc3N3b3JkLnJlcXVpcmVkPC9zdHJvbmc+Ii8+CisgICAgJmx0Oy9maWVsZC12YWxpZGF0b3I+CisgICAgJmx0Oy9maWVsZD4KKyAgICAmbHQ7L3ZhbGlkYXRvcnM+Cis8L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBZb3UgbWF5IG5vdGUgdGhhdCB0aGUgRFREIHJlZmVycyB0byAiWFdvcmsiLgorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay8iPgorICAgICAgICBPcGVuIFN5bXBob255IFhXb3JrCisgICAgPC9hPiBpcyBhIGdlbmVyaWMgY29tbWFuZC1wYXR0ZXJuIGZyYW1ld29yayB0aGF0IGNhbiBiZSB1c2VkIG91dHNpZGUgb2YgYQorICAgIHdlYiBlbnZpcm9ubWVudC4gSW4gcHJhY3RpY2UsIFN0cnV0cyAyIGlzIGEgd2ViLWJhc2VkIGV4dGVuc2lvbiBvZiB0aGUKKyAgICBYV29yayBmcmFtZXdvcmsuCis8L3A+CisKKzxwPgorICAgIFRoZSBmaWVsZCBlbGVtZW50cyBjb3JyZXNwb25kIHRvIHRoZSBBY3Rpb25Gb3JtIHByb3BlcnRpZXMuCisgICAgVGhlIDxzdHJvbmc+dXNlcm5hbWU8L3N0cm9uZz4gYW5kIDxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4gZmllbGQgZWxlbWVudHMKKyAgICBzYXkgdGhhdCBlYWNoIGZpZWxkIGRlcGVuZHMgb24gdGhlICJyZXF1aXJlZHN0cmluZyIgdmFsaWRhdG9yLgorICAgIElmIHRoZSB1c2VybmFtZSBpcyBibGFuayBvciBhYnNlbnQsIHZhbGlkYXRpb24gd2lsbCBmYWlsIGFuZCBhbiBlcnJvcgorICAgIG1lc3NhZ2UgaXMgZ2VuZXJhdGVkLgorICAgIFRoZSBtZXNzYWdlcyB3b3VsZCBiZSBiYXNlZCBvbiB0aGUgImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIiBvcgorICAgICJlcnJvci5wYXNzd29yZC5yZXF1aXJlZCIgbWVzc2FnZSB0ZW1wbGF0ZXMsIGZyb20gdGhlIHJlc291cmNlIGJ1bmRsZS4KKzwvcD4KKworPCEtLQorPHA+CisgICAgVGhlIDxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4gZmllbGQgKG9yIHByb3BlcnR5KSBpcyBhbHNvIHJlcXVpcmVkLgorICAgIEluIGFkZGl0aW9uLCBpdCBtdXN0IGFsc28gcGFzcyB0aGUgIm1heGxlbmd0aCIgYW5kICJtaW5sZW5ndGgiCisgICAgdmFsaWRhdGlvbnMuCisgICAgSGVyZSwgdGhlIG1pbmltdW0gbGVuZ3RoIGlzIHRocmVlIGNoYXJhY3RlcnMgYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBpcworICAgIHNpeHRlZW4uCisgICAgSWYgdGhlIGxlbmd0aCBvZiB0aGUgcGFzc3dvcmQgZG9lc24ndCBtZWV0IHRoZXNlIGNyaXRlcmlhLCBhIGNvcnJlc3BvbmRpbmcKKyAgICBlcnJvciBtZXNzYWdlIGlzIGdlbmVyYXRlZC4KKyAgICBPZiBjb3Vyc2UsIHRoZSBtZXNzYWdlcyBhcmUgZ2VuZXJhdGVkIGZyb20gdGhlIE1lc3NhZ2VSZXNvdXJjZSBidW5kbGVzIGFuZAorICAgIGFyZSBlYXN5IHRvIGxvY2FsaXplLgorPC9wPgorLS0+CisKKzxoND48YSBuYW1lPSJMb2dvbi5qYXZhIiBpZD0iTG9nb24uamF2YSI+TG9nb24gQWN0aW9uPC9hPjwvaDQ+CisKKzxwPgorICAgIElmIHZhbGlkYXRpb24gcGFzc2VzLCB0aGUgZnJhbWV3b3JrIGludm9rZXMgdGhlICJleGVjdXRlIiBtZXRob2Qgb2YgdGhlIExvZ29uIEFjdGlvbi4KKyAgICBUaGUgYWN0dWFsIExvZ29uIEFjdGlvbiBpcyBicmllZiwgc2luY2UgbW9zdCBvZiB0aGUgZnVuY3Rpb25hbGl0eSBkZXJpdmVzCisgICAgZnJvbSB0aGUgYmFzZSBjbGFzcywgPHN0cm9uZz5NYWlscmVhZGVyU3VwcG9ydDwvc3Ryb25nPi4KKzwvcD4KKworPGhyLz4KKzxoNT5Mb2dvbi5qYXZhPC9oNT4KKzxwcmU+PGNvZGU+cGFja2FnZSBtYWlscmVhZGVyMjsKKyAgICBpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworICAgIHB1YmxpYyBmaW5hbCBjbGFzcyA8c3Ryb25nPkxvZ29uPC9zdHJvbmc+IGV4dGVuZHMgTWFpbHJlYWRlclN1cHBvcnQgeworICAgIHB1YmxpYyBTdHJpbmcgPHN0cm9uZz5leGVjdXRlKCk8L3N0cm9uZz4gdGhyb3dzIEV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbiB7CisgICAgVXNlciB1c2VyID0gPHN0cm9uZz5maW5kVXNlcihnZXRVc2VybmFtZSgpLCBnZXRQYXNzd29yZCgpKTs8L3N0cm9uZz4KKyAgICBpZiAodXNlciAhPSBudWxsKSB7CisgICAgPHN0cm9uZz5zZXRVc2VyKHVzZXIpOzwvc3Ryb25nPgorICAgIH0KKyAgICBpZiAoPHN0cm9uZz5oYXNFcnJvcnMoKTwvc3Ryb25nPikgeworICAgIHJldHVybiBJTlBVVDsKKyAgICB9CisgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorICAgIH08L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBMb2dvbiBsYXlzIG91dCB3aGF0IHdlIGRvIHRvIGF1dGhlbnRpY2F0ZSBhIHVzZXIuCisgICAgV2UgdHJ5IHRvIGZpbmQgdGhlIHVzZXIgdXNpbmcgdGhlIGNyZWRlbnRpYWxzIHByb3ZpZGVkLgorICAgIElmIHRoZSB1c2VyIGlzIGZvdW5kLCB3ZSBjYWNoZSBhIHJlZmVyZW5jZS4KKyAgICBJZiB0aGUgdXNlciBpcyBub3QgZm91bmQsIHdlIHJldHVybiAiaW5wdXQiIHNvIHRoZSBjbGllbnQgY2FuIHRyeSBhZ2Fpbi4KKyAgICBPdGhlcndpc2UsIHdlIHJldHVybiAic3VjY2VzcyIsIHNvIHRoYXQgdGhlIGNsaWVudCBjYW4gYWNjZXNzIHRoZSByZXN0IG9mIHRoZSBhcHBsaWNhdGlvbi4KKzwvcD4KKworPGg0PjxhIG5hbWU9Ik1haWxyZWFkZXJTdXBwb3J0LmphdmEiIGlkPSJNYWlscmVhZGVyU3VwcG9ydC5qYXZhIj5NYWlscmVhZGVyU3VwcG9ydC5qYXZhPC9hPjwvaDQ+CisKKzxwPgorICAgIExldCdzIGxvb2sgYXQgdGhlIHJlbGV2YW50IHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgZnJvbSBNYWlscmVhZGVyU3VwcG9ydAorICAgIGFuZCBhbm90aGVyIGJhc2UgY2xhc3MsIDxzdHJvbmc+QWN0aW9uU3VwcG9ydDwvc3Ryb25nPiwgbmFtZWx5CisgICAgImdldFVzZXJuYW1lIiwgImdldFBhc3N3b3JkIiwgImZpbmRVc2VyIiwgInNldFVzZXIiLCBhbmQgImhhc0Vycm9ycyIuCis8L3A+CisKKzxwPgorICAgIFRoZSBmcmFtZXdvcmsgbGV0cyB5b3UgZGVmaW5lCisgICAgPGEgaHJlZj0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3ByaW1lci5odG1sI2phdmFiZWFucyI+SmF2YUJlYW4gcHJvcGVydGllczwvYT4KKyAgICBkaXJlY3RseSBvbiB0aGUgQWN0aW9uLgorICAgIEFueSBKYXZhQmVhbiBwcm9wZXJ0eSBjYW4gYmUgdXNlZCwgaW5jbHVkaW5nIHJpY2ggb2JqZWN0cy4KKyAgICBXaGVuIGEgcmVxdWVzdCBjb21lcyBpbiwKKyAgICBhbnkgcHVibGljIHByb3BlcnRpZXMgb24gdGhlIEFjdGlvbiBjbGFzcyBhcmUgbWF0Y2hlZCB3aXRoIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMuCisgICAgV2hlbiB0aGUgbmFtZXMgbWF0Y2gsIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB2YWx1ZSBpcyBzZXQgdG8gdGhlIEphdmFCZWFuIHByb3BlcnR5LgorICAgIFRoZSBmcmFtZXdvcmsgd2lsbCBtYWtlIGl0cyBiZXN0IGVmZm9ydCB0byBjb252ZXJ0IHRoZSBkYXRhLAorICAgIGFuZCwgaWYgbmVjZXNzYXJ5LCBpdCB3aWxsIHJlcG9ydCBhbnkgY29udmVyc2lvbiBlcnJvcnMuCis8L3A+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPlVzZXJuYW1lPC9zdHJvbmc+IGFuZCA8c3Ryb25nPlBhc3N3b3JkPC9zdHJvbmc+IHByb3BlcnRpZXMgYXJlIG5vdGhpbmcgZmFuY3ksCisgICAganVzdCBzdGFuZGFyZCBKYXZhQmVhbiBwcm9wZXJ0aWVzLgorPC9wPgorCis8aHIvPgorPGg1Pk1haWxyZWFkZXJTdXBwb3J0LmdldFVzZXJuYW1lKCkgYW5kIGdldFBhc3N3b3JkKCk8L2g1PgorPHByZT48Y29kZT5wcml2YXRlIFN0cmluZyB1c2VybmFtZSA9IG51bGw7CisgICAgcHVibGljIFN0cmluZyA8c3Ryb25nPmdldFVzZXJuYW1lKCk8L3N0cm9uZz4geworICAgIHJldHVybiB0aGlzLnVzZXJuYW1lOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBzZXRVc2VybmFtZShTdHJpbmcgdXNlcm5hbWUpIHsKKyAgICB0aGlzLnVzZXJuYW1lID0gdXNlcm5hbWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQgPSBudWxsOworICAgIHB1YmxpYyBTdHJpbmcgPHN0cm9uZz5nZXRQYXNzd29yZCgpPC9zdHJvbmc+IHsKKyAgICByZXR1cm4gdGhpcy5wYXNzd29yZDsKKyAgICB9CisgICAgcHVibGljIHZvaWQgc2V0UGFzc3dvcmQoU3RyaW5nIHBhc3N3b3JkKSB7CisgICAgdGhpcy5wYXNzd29yZCA9IHBhc3N3b3JkOworICAgIH08L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBXZSB1c2UgdGhlc2UgcHJvcGVydGllcyB0byBjYXB0dXJlIHRoZSBjbGllbnQncyBjcmVkZW50aWFscywKKyAgICBhbmQgcGFzcyB0aGVtIHRvIHRoZSBtb3JlIGludGVyZXN0aW5nIDxzdHJvbmc+ZmluZFVzZXI8L3N0cm9uZz4gbWV0aG9kLgorPC9wPgorCis8aHIvPgorPGg1Pk1haWxyZWFkZXJTdXBwb3J0LmZpbmRVc2VyPC9oNT4KKzxwcmU+PGNvZGU+cHVibGljIFVzZXIgPHN0cm9uZz5maW5kVXNlcjwvc3Ryb25nPihTdHJpbmcgdXNlcm5hbWUsIFN0cmluZyBwYXNzd29yZCkKKyAgICB0aHJvd3MgPHN0cm9uZz5FeHBpcmVkUGFzc3dvcmRFeGNlcHRpb248L3N0cm9uZz4geworICAgIFVzZXIgdXNlciA9IDxzdHJvbmc+Z2V0RGF0YWJhc2UoKS5maW5kVXNlcih1c2VybmFtZSk8L3N0cm9uZz47CisgICAgaWYgKCh1c2VyICE9IG51bGwpICYmICF1c2VyLmdldFBhc3N3b3JkKCkuZXF1YWxzKHBhc3N3b3JkKSkgeworICAgIHVzZXIgPSBudWxsOworICAgIH0KKyAgICBpZiAodXNlciA9PSBudWxsKSB7CisgICAgdGhpcy48c3Ryb25nPmFkZEZpZWxkRXJyb3I8L3N0cm9uZz4oInBhc3N3b3JkIiwgZ2V0VGV4dCgiZXJyb3IucGFzc3dvcmQubWlzbWF0Y2giKSk7CisgICAgfQorICAgIHJldHVybiB1c2VyOworICAgIH08L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBUaGUgImZpbmRVc2VyIiBtZXRob2QgZGlwcyBpbnRvIHRoZSBNYWlsUmVhZGVyIERhdGEgQWNjZXNzIE9iamVjdCBsYXllciwKKyAgICB3aGljaCBpcyByZXByZXNlbnRlZCBieSB0aGUgPHN0cm9uZz5EYXRhYmFzZTwvc3Ryb25nPiBwcm9wZXJ0eS4KKyAgICBUaGUgY29kZSBmb3IgdGhlIERBTyBsYXllciBpcyBtYWludGFpbmVkIGFzIGEgc2VwYXJhdGUgY29tcG9uZW50LgorICAgIFRoZSBNYWlsUmVhZGVyIGFwcGxpY2F0aW9uIGltcG9ydHMgdGhlIERBTyBKQVIsCisgICAgYnV0IGl0IGlzIG5vdCByZXNwb25zaWJsZSBmb3IgbWFpbnRhaW5pbmcgYW55IG9mIHRoZSBEQU8gc291cmNlLgorICAgIEtlZXBpbmcgdGhlIGRhdGEgYWNjZXNzIGxheWVyIGF0ICJhcm1zLWxlbmd0aCIgaXMgYSB2ZXJ5IGdvb2QgaGFiaXQuCisgICAgSXQgZW5jb3VyYWdlcyBhIHN0eWxlIG9mIGRldmVsb3BtZW50IHdoZXJlIHRoZSBkYXRhIGFjY2VzcyBsYXllcgorICAgIGNhbiBiZSB0ZXN0ZWQgYW5kIGRldmVsb3BlZCBpbmRlcGVuZGVudGx5IG9mIGEgc3BlY2lmaWMgZW5kLXVzZXIgYXBwbGljYXRpb24uCisgICAgSW4gZmFjdCwgdGhlcmUgYXJlIHNldmVyYWwgcmVuZGl0aW9ucyBvZiB0aGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbiwKKyAgICBhbGwgd2hpY2ggc2hhcmUgdGhlIHNhbWUgTWFpbFJlYWRlciBEQU8gSkFSIQorPC9wPgorCis8aHIvPgorPGg1PkJlc3QgUHJhY3RpY2U6PC9oNT4KKzxibG9ja3F1b3RlPgorICAgIDxwPjxmb250IGNsYXNzPSJoaW50Ij4iU3Ryb25nbHkgc2VwYXJhdGUgZGF0YSBhY2Nlc3MgYW5kIGJ1c2luZXNzIGxvZ2ljIGZyb20gdGhlIHJlc3Qgb2YgdGhlIGFwcGxpY2F0aW9uLiI8L2ZvbnQ+CisgICAgPC9wPgorPC9ibG9ja3F1b3RlPgorPGhyLz4KKworPHA+CisgICAgV2hlbiAiZmluZFVzZXIiIHJldHVybnMsCisgICAgdGhlIExvZ29uIEFjdGlvbiBsb29rcyB0byBzZWUgaWYgYSB2YWxpZCAobm9uLW51bGwpIFVzZXIgb2JqZWN0IGlzIHJldHVybmVkLgorICAgIEEgdmFsaWQgVXNlciBpcyBwYXNzZWQgdG8gdGhlIDxzdHJvbmc+VXNlciBwcm9wZXJ0eTwvc3Ryb25nPi4KKyAgICBBbHRob3VnaCBpdCBpcyBzdGlsbCBhIEphdmFCZWFuIHByb3BlcnR5LAorICAgIHRoZSBVc2VyIHByb3BlcnR5IGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBxdWl0ZSB0aGUgc2FtZSB3YXkgYXMgVXNlcm5hbWUgYW5kIFBhc3N3b3JkLgorPC9wPgorCis8aHIvPgorPGg1Pk1haWxyZWFkZXJTdXBwb3J0LnNldFVzZXI8L2g1PgorPHByZT48Y29kZT5wdWJsaWMgVXNlciBnZXRVc2VyKCkgeworICAgIHJldHVybiAoVXNlcikgPHN0cm9uZz5nZXRTZXNzaW9uKCkuZ2V0KENvbnN0YW50cy5VU0VSX0tFWSk8L3N0cm9uZz47CisgICAgfQorICAgIHB1YmxpYyB2b2lkIHNldFVzZXIoVXNlciB1c2VyKSB7CisgICAgZ2V0U2Vzc2lvbigpLnB1dChDb25zdGFudHMuVVNFUl9LRVksIHVzZXIpOworICAgIH08L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBJbnN0ZWFkIG9mIHVzaW5nIGEgZmllbGQgdG8gc3RvcmUgdGhlIHByb3BlcnR5IHZhbHVlLAorICAgICJzZXRVc2VyIiBwYXNzZXMgaXQgdG8gYSA8c3Ryb25nPlNlc3Npb248L3N0cm9uZz4gcHJvcGVydHkuCis8L3A+CisKKzxoci8+Cis8aDU+TWFpbHJlYWRlclN1cHBvcnQuZ2V0U2Vzc2lvbigpIGFuZCBzZXRTZXNzaW9uKCk8L2g1PgorPHByZT48Y29kZT5wcml2YXRlIE1hcCBzZXNzaW9uOworICAgIHB1YmxpYyBNYXAgPHN0cm9uZz5nZXRTZXNzaW9uKCk8L3N0cm9uZz4geworICAgIHJldHVybiBzZXNzaW9uOworCisgICAgcHVibGljIHZvaWQgPHN0cm9uZz5zZXRTZXNzaW9uKE1hcCB2YWx1ZSk8L3N0cm9uZz4geworICAgIHNlc3Npb24gPSB2YWx1ZTsKKyAgICB9PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgVG8gbG9vayBhdCB0aGUgTWFpbHJlYWRlclN1cHBvcnQgY2xhc3MsIHlvdSB3b3VsZCB0aGluayB0aGUgU2Vzc2lvbiBwcm9wZXJ0eSBpcyBhIHBsYWluLW9sZCBNYXAuCisgICAgSW4gZmFjdCwgdGhlIFNlc3Npb24gcHJvcGVydHkgaXMgYW4gYWRhcHRlciB0aGF0IGlzIGJhY2tlZCBieSB0aGUgc2VydmxldCBzZXNzaW9uIG9iamVjdCBhdCBydW50aW1lLgorICAgIFRoZSBNYWlscmVhZGVyU3VwcG9ydCBjbGFzcyBkb2Vzbid0IG5lZWQgdG8ga25vdyB0aGF0IHRob3VnaC4KKyAgICBJdCBjYW4gdHJlYXQgU2Vzc2lvbiBsaWtlIGFueSBvdGhlciBNYXAuCisgICAgV2UgY2FuIGFsc28gdGVzdCB0aGUgTWFpbHJlYWRlclN1cHBvcnQgY2xhc3MgYnkgcGFzc2luZyBpdCBzb21lIG90aGVyIGltcGxlbWVudGF0aW9uIG9mIE1hcCwKKyAgICBydW5uaW5nIHRoZSB0ZXN0LAorICAgIGFuZCB0aGVuIGxvb2tpbmcgdG8gc2VlIHdoYXQgY2hhbmdlcyBNYWlscmVhZGVyU3VwcG9ydCBtYWRlIHRvIG91ciAibW9jayIgU2Vzc2lvbiBvYmplY3QuCis8L3A+CisKKzxwPgorICAgIEJ1dCwgd2hlbiBNYWlscmVhZGVyU3VwcG9ydCBpcyBydW5uaW5nIGluc2lkZSBhIHdlYiBhcHBsaWNhdGlvbiwKKyAgICBob3cgZG9lcyBpdCBhY3F1aXJlIGEgcmVmZXJlbmNlIHRvIHRoZSBzZXJ2bGV0IHNlc3Npb24/Cis8L3A+CisKKzxwPgorICAgIEdvb2QgcXVlc3Rpb24uIElmIHlvdSB3ZXJlIHRvIGxvb2sgYXQganVzdCB0aGUgTWFpbHJlYWRlclN1cHBvcnQgY2xhc3MsCisgICAgeW91IHdvdWxkIG5vdCBzZWUgYSBzaW5nbGUgbGluZSBvZiBjb2RlIHRoYXQgc2V0cyB0aGUgc2Vzc2lvbiBwcm9wZXJ0eS4KKyAgICBCdXQsIHlldCwgd2hlbiB3ZSBydW4gdGhlIGNsYXNzLCB0aGUgc2Vzc2lvbiBwcm9wZXJ0eSBpcyBub3QgbnVsbC4KKyAgICBIbW1tLgorPC9wPgorCis8cD4KKyAgICBUaGUgbWFnaWMgdGhhdCBwcm92aWRlcyB0aGUgU2Vzc2lvbiBwcm9wZXJ0eSBhIHJ1bnRpbWUgdmFsdWUgaXMgY2FsbGVkICJkZXBlbmRlbmN5IGluamVjdGlvbiIuCisgICAgVGhlIE1haWxyZWFkZXJTdXBwb3J0IGNsYXNzIGltcGxlbWVudHMgYSBpbnRlcmZhY2UgY2FsbGVkIDxzdHJvbmc+U2Vzc2lvbkF3YXJlPC9zdHJvbmc+LgorICAgIFNlc3Npb25Bd2FyZSBpcyBidW5kbGVkIHdpdGggdGhlIGZyYW1ld29yaywgYW5kIGl0IGRlZmluZXMgYSBzZXR0ZXIgZm9yIHRoZSBTZXNzaW9uIHByb3BlcnR5LgorPC9wPgorCis8cD4KKyAgICA8Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnNldFNlc3Npb248L3N0cm9uZz4oTWFwIHNlc3Npb24pOzwvY29kZT4KKzwvcD4KKworPHA+CisgICAgQWxzbyBidW5kbGVkIHdpdGggdGhlIGZyYW1ld29yayBpcyBhbiBvYmplY3QgY2FsbGVkIHRoZSA8c3Ryb25nPlNlcnZsZXRDb25maWdJbnRlcmNlcHRvcjwvc3Ryb25nPi4KKyAgICBJZiB0aGUgU2VydmxldENvbmZpZ0ludGVyY2VwdG9yIHNlZXMgdGhhdCBhbiBBY3Rpb24gaW1wbGVtZW50cyB0aGUgU2Vzc2lvbkF3YXJlIGludGVyZmFjZSwKKyAgICBpdCBhdXRvbWF0aWNhbGx5IHNldCB0aGUgc2Vzc2lvbiBwcm9wZXJ0eS4KKzwvcD4KKworPHByZT48Y29kZT5pZiAoYWN0aW9uIGluc3RhbmNlb2YgPGNvZGU+U2Vzc2lvbkF3YXJlPC9jb2RlPikgeworICAgICgoU2Vzc2lvbkF3YXJlKSBhY3Rpb24pLjxjb2RlPnNldFNlc3Npb248L2NvZGU+KGNvbnRleHQuZ2V0U2Vzc2lvbigpKTsKKyAgICB9PC9jb2RlPjwvcHJlPgorCis8cD4KKyAgICBUaGUgZnJhbWV3b3JrIHVzZXMgdGhlc2UgIkludGVyY2VwdG9yIiBjbGFzc2VzIHRvIGNyZWF0ZSBhIDxzdHJvbmc+ZnJvbnQgY29udHJvbGxlcjwvc3Ryb25nPgorICAgIGZvciBlYWNoIGFjdGlvbiBhbiBhcHBsaWNhdGlvbiBkZWZpbmVzLgorICAgIEVhY2ggSW50ZXJjZXB0b3IgY2FuIHBlZWsgYXQgdGhlIHJlcXVlc3QgYmVmb3JlIGFuIEFjdGlvbiBjbGFzcyBpcyBpbnZva2VkLAorICAgIGFuZCB0aGVuIGFnYWluIGFmdGVyIHRoZSBBY3Rpb24gY2xhc3MgaXMgaW52b2tlZC4KKyAgICAoSWYgeW91IGhhdmUgd29ya2VkIHdpdGggU2VydmxldAorICAgIDxhIGhyZWY9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9wcmltZXIuaHRtbCNmaWx0ZXJzIj5GaWx0ZXJzPC9hPiwKKyAgICB5b3Ugd2lsbCByZWNvZ25pemUgdGhpcyBwYXR0ZXJuLgorICAgIEJ1dCwgdW5saWtlIEZpbHRlcnMsIEludGVyY2VwdG9ycyBhcmUgbm90IHRpZWQgdG8gSFRUUC4KKyAgICBJbnRlcmNlcHRvcnMgY2FuIGJlIHRlc3RlZCBhbmQgZGV2ZWxvcGVkIG91dHNpZGUgb2YgYSB3ZWIgYXBwbGljYXRpb24uKQorPC9wPgorCis8cD4KKyAgICBZb3UgY2FuIHVzZSB0aGUgc2FtZSBzZXQgb2YgSW50ZXJjZXB0b3JzIGZvciBhbGwgeW91ciBhY3Rpb25zLAorICAgIG9yIGRlZmluZSBhIHNwZWNpYWwgc2V0IG9mIEludGVyY2VwdG9ycyBmb3IgYW55IGdpdmVuIGFjdGlvbiwKKyAgICBvciBkZWZpbmUgZGlmZmVyZW50IHNldHMgb2YgSW50ZXJjZXB0b3JzIHRvIHVzZSB3aXRoIGRpZmZlcmVudCB0eXBlcyBvZiBhY3Rpb25zLgorICAgIFRoZSBmcmFtZXdvcmsgY29tZXMgd2l0aCBhIGRlZmF1bHQgc2V0IG9mIEludGVyY2VwdG9ycywKKyAgICB0aGF0IGl0IHdpbGwgdXNlIHdoZW4gYW5vdGhlciBzZXQgaXMgbm90IHNwZWNpZmllZCwKKyAgICBidXQgeW91IGNhbiBkZXNpZ25hdGUgeW91ciBvd24gZGVmYXVsdCBJbnRlcmNlcHRvciBzZXQgKG9yICJzdGFjayIpCisgICAgaW4gdGhlIHN0cnV0cy54bWwgY29uZmlndXJhdGlvbiBmaWxlLgorPC9wPgorCis8cD4KKyAgICBNYW55IEludGVyY2VwdG9ycyBwcm92aWRlIGEgdXRpbGl0eSBvciBoZWxwZXIgZnVuY3Rpb25zLCBsaWtlIHNldHRpbmcgdGhlIHNlc3Npb24gcHJvcGVydHkuCisgICAgT3RoZXJzLCBsaWtlIHRoZSA8c3Ryb25nPlZhbGlkYXRpb25JbnRlcmNlcHRvcjwvc3Ryb25nPiwgY2FuIGNoYW5nZSB0aGUgd29ya2Zsb3cgb2YgYW4gYWN0aW9uLgorICAgIEludGVyY2VwdG9ycyBhcmUga2V5IGZlYXR1cmUgb2YgdGhlIGZyYW1ld29yaywKKyAgICBhbmQgd2Ugd2lsbCBzZWUgYSBmZXcgbW9yZSBvbiB0aGUgdG91ci4KKzwvcD4KKworPHA+CisgICAgSWYgYSB2YWxpZCBVc2VyIGlzIG5vdCBmb3VuZCwgb3IgdGhlIHBhc3N3b3JkIGRvZXNuJ3QgbWF0Y2gsCisgICAgdGhlICJmaW5kVXNlciIgbWV0aG9kIGludm9rZXMgdGhlIDxzdHJvbmc+YWRkRmllbGRFcnJvcjwvc3Ryb25nPiBtZXRob2QgdG8gbm90ZSB0aGUgcHJvYmxlbS4KKyAgICBXaGVuICJmaW5kVXNlciIgcmV0dXJucywgdGhlIExvZ29uIEFjdGlvbiBjaGVja3MgZm9yIGVycm9ycywKKyAgICBhbmQgdGhlbiBpdCByZXR1cm5zIGVpdGhlciBJTlBVVCBvciBTVUNDRVNTLgorPC9wPgorCis8cD4KKyAgICBUaGUgImFkZEZpZWxkRXJyb3IiIG1ldGhvZCBpcyBwcm92aWRlZCBieSB0aGUgQWN0aW9uU3VwcG9ydCBjbGFzcywKKyAgICB3aGljaCBpcyBidW5kbGVkIHdpdGggdGhlIGZyYW1ld29yay4KKyAgICBUaGUgY29uc3RhbnRzIGZvciBJTlBVVCBhbmQgU1VDQ0VTUyBhcmUgYWxzbyBwcm92aWRlZCBieSBBY3Rpb25TdXBwb3J0LgorICAgIFdoaWxlIHRoZSBBY3Rpb25TdXBwb3J0IGNsYXNzIHByb3ZpZGVzIG1hbnkgdXNlZnVsIHV0aWxpdGllcywKKyAgICB5b3UgYXJlIG5vdCByZXF1aXJlZCB0byB1c2UgaXQgYXMgYSBiYXNlIGNsYXNzLgorICAgIEFueSBKYXZhIGNsYXNzIGNhbiBiZSB1c2VkIGFzIGFuIEFjdGlvbiwgaWYgeW91IGxpa2UuCis8L3A+CisKKzxwPgorICAgIEl0IGlzIGEgZ29vZCBwcmFjdGljZSB0byBwcm92aWRlIGEgYmFzZSBjbGFzcyB3aXRoIHV0aWxpdGllcworICAgIHRoYXQgY2FuIGJlIHNoYXJlZCBieSBhbiBhcHBsaWNhdGlvbidzIEFjdGlvbiBjbGFzc2VzLgorICAgIFRoZSBmcmFtZXdvcmsgZG9lcyB0aGlzIHdpdGggQWN0aW9uU3VwcG9ydCwKKyAgICBhbmQgdGhlIE1haWxSZWFkZXIgYXBwbGljYXRpb24gZG9lcyB0aGUgc2FtZSB3aXRoIHRoZSBNYWlscmVhZGVyU3VwcG9ydCBjbGFzcy4KKzwvcD4KKworPGhyLz4KKzxoNT5CZXN0IFByYWN0aWNlOjwvaDU+Cis8YmxvY2txdW90ZT4KKyAgICA8cD48Zm9udCBjbGFzcz0iaGludCI+IlVzZSBhIGJhc2UgY2xhc3MgdG8gZGVmaW5lIGNvbW1vbiBmdW5jdGlvbmFsaXR5LiI8L2ZvbnQ+PC9wPgorPC9ibG9ja3F1b3RlPgorPGhyLz4KKworPHA+CisgICAgQnV0LCB3aGF0IGhhcHBlbnMgaWYgTG9nb24gcmV0dXJucyBJTlBVVCBpbnN0ZWFkIG9mIFNVQ0NFU1MuCisgICAgSG93IGRvZXMgdGhlIGZyYW1ld29yayBrbm93IHdoYXQgdG8gZG8gbmV4dD8KKzwvcD4KKworPHA+CisgICAgVG8gYW5zd2VyIHRoYXQgcXVlc3Rpb24sCisgICAgd2UgbmVlZCB0byB0dXJuIGJhY2sgdG8gdGhlICJzdHJ1dHMueG1sIiBmaWxlIGFuZCBsb29rIGF0IGhvdyBMb2dvbiBpcyBjb25maWd1cmVkLgorPC9wPgorCisKKzxoND48YSBuYW1lPSJMb2dvbi54bWwiIGlkPSJMb2dvbi54bWwiPkxvZ29uIENvbmZpZ3VyYXRpb248L2E+PC9oND4KKworPHA+CisgICAgVGhlIExvZ29uIGFjdGlvbiBlbGVtZW50IG91dGxpbmVzIGhvdyB0aGUgTG9nb24gd29ya2Zsb3cgb3BlcmF0ZXMsCisgICAgaW5jbHVkaW5nIHdoYXQgdG8gZG8gd2hlbiB0aGUgQWN0aW9uIHJldHVybnMgImlucHV0IiwKKyAgICBvciB0aGUgZGVmYXVsdCByZXN1bHQgbmFtZSAic3VjY2VzcyIuCis8L3A+CisKKzxoci8+Cis8aDU+c3RydXRzLnhtbCBMb2dvbjwvaDU+Cis8cHJlPjxjb2RlPiZsdDthY3Rpb24gbmFtZT0iPHN0cm9uZz5Mb2dvbjwvc3Ryb25nPiIgY2xhc3M9Im1haWxyZWFkZXIyLnJlZ2lzdHJhdGlvbi5SZXRyaWV2ZSI+CisgICAgJmx0O3Jlc3VsdCBuYW1lPSI8c3Ryb25nPmlucHV0PC9zdHJvbmc+Ij4vcGFnZXMvTG9nb24uanNwJmx0Oy9yZXN1bHQ+CisgICAgJmx0O3Jlc3VsdCBuYW1lPSI8c3Ryb25nPmNhbmNlbDwvc3Ryb25nPiIgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5XZWxjb21lJmx0Oy9yZXN1bHQ+CisgICAgJmx0O3Jlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPk1haW5NZW51Jmx0Oy9yZXN1bHQ+CisgICAgJmx0O3Jlc3VsdCBuYW1lPSI8c3Ryb25nPmV4cGlyZWQ8L3N0cm9uZz4iIHR5cGU9ImNoYWluIj5DaGFuZ2VQYXNzd29yZCZsdDsvcmVzdWx0PgorICAgICZsdDs8c3Ryb25nPmV4Y2VwdGlvbi1tYXBwaW5nPC9zdHJvbmc+CisgICAgZXhjZXB0aW9uPSJvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbiIKKyAgICByZXN1bHQ9IjxzdHJvbmc+ZXhwaXJlZDwvc3Ryb25nPiIvPgorICAgICZsdDtpbnRlcmNlcHRvci1yZWYgbmFtZT0iPHN0cm9uZz5ndWVzdDwvc3Ryb25nPiIvPgorICAgICZsdDsvYWN0aW9uPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIEluIHRoZSBMb2dvbiBhY3Rpb24gZWxlbWVudCwgdGhlIGZpcnN0IHJlc3VsdCBlbGVtZW50IGlzIG5hbWVkICJpbnB1dCIuCisgICAgSWYgdmFsaWRhdGlvbiBvciBhdXRoZW50aWZpY2F0aW9uIGZhaWwsCisgICAgdGhlIEFjdGlvbiBjbGFzcyB3aWxsIHJldHVybiAiaW5wdXQiIGFuZCB0aGUgZnJhbWV3b3JrIHdpbGwgdHJhbnNmZXIgY29udHJvbCB0byB0aGUKKyAgICAiTG9nb24uanNwIiBwYWdlLgorPC9wPgorCis8cD4KKyAgICBUaGUgc2Vjb25kIHJlc3VsdCBlbGVtZW50IGlzIG5hbWVkIDxzdHJvbmc+Y2FuY2VsPC9zdHJvbmc+LgorICAgIElmIHNvbWVvbmUgcHJlc3NlcyB0aGUgY2FuY2VsIGJ1dHRvbiBvbiB0aGUgTG9nb24gcGFnZSwKKyAgICB0aGUgQWN0aW9uIGNsYXNzIHdpbGwgcmV0dXJuICJjYW5jZWwiLCB0aGlzIHJlc3VsdCB3aWxsIGJlIHNlbGVjdGVkLAorICAgIGFuZCB0aGUgZnJhbWV3b3JrIHdpbGwgaXNzdWUgYSByZWRpcmVjdCB0byB0aGUgV2VsY29tZSBhY3Rpb24uCis8L3A+CisKKzxwPgorICAgIFRoZSB0aGlyZCByZXN1bHQgaGFzIG5vIG5hbWUsCisgICAgc28gaXQgd2lsbCBiZSBjYWxsZWQgaWYgdGhlIGRlZmF1bHQgPHN0cm9uZz5zdWNjZXNzPC9zdHJvbmc+IHRva2VuIGlzIHJldHVybmVkLgorICAgIFNvLCBpZiB0aGUgTG9nb24gc3VjY2VlZHMsCisgICAgY29udHJvbCB3aWxsIHRyYW5zZmVyIHRvIHRoZSBNYWluTWVudSBhY3Rpb24uCis8L3A+CisKKzxwPgorICAgIFRoZSBNYWlsUmVhZGVyIERBTyBleHBvc2VzIGEgIkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbiIuCisgICAgSWYgdGhlIERBTyB0aHJvd3MgdGhpcyBleGNlcHRpb24gd2hlbiB0aGUgVXNlciBsb2dzIGluLAorICAgIHRoZSBmcmFtZXdvcmsgd2lsbCBwcm9jZXNzIHRoZSBleGNlcHRpb24tbWFwcGluZworICAgIGFuZCB0cmFuc2ZlciBjb250cm9sIHRvIHRoZSAiQ2hhbmdlUGFzc3dvcmQiIGFjdGlvbi4KKzwvcD4KKworPHA+CisgICAgSnVzdCBpbiBjYXNlIGFueSBvdGhlciBFeGNlcHRpb25zIGFyZSB0aHJvd24sCisgICAgdGhlIE1haWxSZWFkZXIgYXBwbGljYXRpb24gYWxzbyBkZWZpbmVzIGEgZ2xvYmFsIGhhbmRsZXIuCis8L3A+CisKKzxoci8+Cis8aDU+c3RydXRzLnhtbCBleGNlcHRpb24tbWFwcGluZzwvaDU+Cis8cHJlPjxjb2RlPiZsdDtnbG9iYWwtZXhjZXB0aW9uLW1hcHBpbmdzPgorICAgICZsdDtleGNlcHRpb24tbWFwcGluZworICAgIHJlc3VsdD0iZXJyb3IiCisgICAgZXhjZXB0aW9uPSJqYXZhLmxhbmcuRXhjZXB0aW9uIi8+CisgICAgJmx0Oy9nbG9iYWwtZXhjZXB0aW9uLW1hcHBpbmdzPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIElmIGFuIHVuZXhwZWN0ZWQgRXhjZXB0aW9uIGlzIHRocm93biwKKyAgICB0aGUgZXhjZXB0aW9uLW1hcHBpbmcgd2lsbCB0cmFuc2ZlciBjb250cm9sIHRvIHRoZSBhY3Rpb24ncyAiZXJyb3IiIHJlc3VsdCwKKyAgICBvciB0byBhIGdsb2JhbCAiZXJyb3IiIHJlc3VsdC4KKyAgICBUaGUgTWFpbFJlYWRlciBkZWZpbmVzIGEgZ2xvYmFsICJlcnJvciIgcmVzdWx0CisgICAgd2hpY2ggdHJhbnNmZXJzIGNvbnRyb2wgdG8gYW4gIkVycm9yLmpzcCIgcGFnZQorICAgIHRoYXQgY2FuIGRpc3BsYXkgdGhlIGVycm9yIG1lc3NhZ2UuCis8L3A+CisKKzxoci8+Cis8aDU+RXJyb3IuanNwPC9oNT4KKzxwcmU+PGNvZGU+Jmx0OyVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKyAgICAmbHQ7JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncyIgJT4KKyAgICAmbHQ7IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKyAgICAmbHQ7aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CisgICAgJmx0O2hlYWQ+CisgICAgJmx0O3RpdGxlPlVuZXhwZWN0ZWQgRXJyb3ImbHQ7L3RpdGxlPgorICAgICZsdDsvaGVhZD4KKyAgICAmbHQ7Ym9keT4KKyAgICAmbHQ7aDI+QW4gdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJlZCZsdDsvaDI+CisgICAgJmx0O3A+CisgICAgUGxlYXNlIHJlcG9ydCB0aGlzIGVycm9yIHRvIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IKKyAgICBvciBhcHByb3ByaWF0ZSB0ZWNobmljYWwgc3VwcG9ydCBwZXJzb25uZWwuCisgICAgVGhhbmsgeW91IGZvciB5b3VyIGNvb3BlcmF0aW9uLgorICAgICZsdDsvcD4KKyAgICAmbHQ7aHIgLz4KKyAgICAmbHQ7aDM+RXJyb3IgTWVzc2FnZSZsdDsvaDM+CisgICAgPHN0cm9uZz4mbHQ7czphY3Rpb25lcnJvciAvPjwvc3Ryb25nPgorICAgICZsdDtwPgorICAgIDxzdHJvbmc+Jmx0O3M6cHJvcGVydHkgdmFsdWU9IiV7ZXhjZXB0aW9uLm1lc3NhZ2V9Ii8+PC9zdHJvbmc+CisgICAgJmx0Oy9wPgorICAgICZsdDtociAvPgorICAgICZsdDtoMz5UZWNobmljYWwgRGV0YWlscyZsdDsvaDM+CisgICAgJmx0O3A+CisgICAgPHN0cm9uZz4mbHQ7czpwcm9wZXJ0eSB2YWx1ZT0iJXtleGNlcHRpb25TdGFja30iLz48L3N0cm9uZz4KKyAgICAmbHQ7L3A+CisgICAgJmx0O2pzcDppbmNsdWRlIHBhZ2U9IkZvb3Rlci5qc3AiLz4KKyAgICAmbHQ7L2JvZHk+CisgICAgJmx0Oy9odG1sPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSBFcnJvciBwYWdlIHVzZXMgPHN0cm9uZz5wcm9wZXJ0eTwvc3Ryb25nPiB0YWdzIHRvIGV4cG9zZQorICAgIHRoZSBFeGNlcHRpb24gbWVzc2FnZSBhbmQgdGhlIEV4Y2VwdGlvbiBzdGFjay4KKzwvcD4KKworPHA+CisgICAgRmluYWxseSwgdGhlIExvZ29uIGFjdGlvbiBzcGVjaWZpZXMgYW4gPHN0cm9uZz5JbnRlcmNlcHRvclN0YWNrPC9zdHJvbmc+CisgICAgbmFtZWQgPHN0cm9uZz5kZWZhdWx0U3RhY2suPC9zdHJvbmc+CisgICAgSWYgeW91J3ZlIHdvcmtlZCB3aXRoIFN0cnV0cyAyIG9yIFdlYldvcmsgMiBiZWZvcmUsIHRoYXQgbWlnaHQgc2VlbSBzdHJhbmdlLAorICAgIHNpbmNlICJkZWZhdWx0U3RhY2siIGlzIHRoZSBmYWN0b3J5IGRlZmF1bHQuCis8L3A+CisKKzxwPgorICAgIEluIHRoZSBNYWlsUmVhZGVyIGFwcGxpY2F0aW9uLCBtb3N0IG9mIHRoZSBhY3Rpb25zIGFyZSBvbmx5IGF2YWlsYWJsZQorICAgIHRvIGF1dGhlbnRpY2F0ZWQgdXNlcnMuCisgICAgVGhlIGV4Y2VwdGlvbnMgYXJlIHRoZSBXZWxjb21lLCBMb2dvbiwgYW5kIFJlZ2lzdGVyIGFjdGlvbnMKKyAgICB3aGljaCBhcmUgYXZhaWxhYmxlIHRvIGV2ZXJ5b25lLgorICAgIFRvIGF1dGhlbnRpY2F0ZSBjbGllbnRzLAorICAgIHRoZSBNYWlsUmVhZGVyIHVzZXMgYSBjdXN0b20gSW50ZXJjZXB0b3IgYW5kIGEgY3VzdG9tIEludGVyY2VwdG9yIHN0YWNrLgorPC9wPgorCis8aHIvPgorPGg1Pm1haWxyZWFkZXIyLkF1dGhlbnRpY2F0aW9uSW50ZXJjZXB0b3I8L2g1PgorPHByZT48Y29kZT5wYWNrYWdlIG1haWxyZWFkZXIyOworICAgIGltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5pbnRlcmNlcHRvci5JbnRlcmNlcHRvcjsKKyAgICBpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uSW52b2NhdGlvbjsKKyAgICBpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uOworICAgIGltcG9ydCBqYXZhLnV0aWwuTWFwOworICAgIGltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CisKKyAgICBwdWJsaWMgY2xhc3MgPHN0cm9uZz5BdXRoZW50aWNhdGlvbkludGVyY2VwdG9yPC9zdHJvbmc+IGltcGxlbWVudHMgSW50ZXJjZXB0b3IgeworICAgIHB1YmxpYyB2b2lkIGRlc3Ryb3kgKCkge30KKyAgICBwdWJsaWMgdm9pZCBpbml0KCkge30KKyAgICBwdWJsaWMgU3RyaW5nIDxzdHJvbmc+aW50ZXJjZXB0PC9zdHJvbmc+KEFjdGlvbkludm9jYXRpb24gYWN0aW9uSW52b2NhdGlvbikgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgTWFwIHNlc3Npb24gPSBhY3Rpb25JbnZvY2F0aW9uLmdldEludm9jYXRpb25Db250ZXh0KCkuZ2V0U2Vzc2lvbigpOworICAgIFVzZXIgdXNlciA9IChVc2VyKSBzZXNzaW9uLmdldChDb25zdGFudHMuVVNFUl9LRVkpOworICAgIGJvb2xlYW4gaXNBdXRoZW50aWNhdGVkID0gKG51bGwhPXVzZXIpICYmIChudWxsIT11c2VyLmdldERhdGFiYXNlKCkpOworICAgIGlmICg8c3Ryb25nPmlzQXV0aGVudGljYXRlZDwvc3Ryb25nPikgeworICAgIHJldHVybiBhY3Rpb25JbnZvY2F0aW9uLmludm9rZSgpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICByZXR1cm4gQWN0aW9uLkxPR0lOOworICAgIH0KKyAgICB9CisgICAgfTwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPkF1dGhlbnRpY2F0aW9uSW50ZXJjZXB0b3I8L3N0cm9uZz4gbG9va3MgdG8gc2VlIGlmIGEgVXNlciBvYmplY3QKKyAgICBoYXMgYmVlbiBzdG9yZWQgaW4gdGhlIGNsaWVudCdzIHNlc3Npb24gc3RhdGUuCisgICAgSWYgc28sIGl0IHJldHVybnMgbm9ybWFsbHksIGFuZCB0aGUgbmV4dCBJbnRlcmNlcHRvciBpbiB0aGUgc2V0IHdvdWxkIGJlIGludm9rZWQuCisgICAgSWYgdGhlIFVzZXIgb2JqZWN0IGlzIG1pc3NpbmcsIHRoZSBJbnRlcmNlcHRvcnMgcmV0dXJucyAibG9naW4iLgorICAgIFRoZSBmcmFtZXdvcmsgd291bGQgbWF0Y2ggImxvZ2luIiB0byB0aGUgZ2xvYmFsIHJlc3VsdCwKKyAgICBhbmQgdHJhbnNmZXIgY29udHJvbCB0byB0aGUgTG9nb24gYWN0aW9uLgorPC9wPgorCis8cD4KKyAgICBUaGUgTWFpbFJlYWRlciBkZWZpbmVzIGZvdXIgY3VzdG9tIEludGVyY2VwdG9yIHN0YWNrczogInVzZXIiLCAidXNlci1zdWJtaXQiLAorICAgICJndWVzdCIsIGFuZCAiZ3Vlc3Qtc3VibWl0Ii4KKzwvcD4KKworPGhyLz4KKzxoNT5zdHJ1dHMueG1sIGludGVyY2VwdG9yczwvaDU+Cis8cHJlPjxjb2RlPiZsdDtpbnRlcmNlcHRvcnM+CisgICAgJmx0O2ludGVyY2VwdG9yIG5hbWU9IjxzdHJvbmc+YXV0aGVudGljYXRpb248L3N0cm9uZz4iCisgICAgY2xhc3M9Im1haWxyZWFkZXIyLkF1dGhlbnRpY2F0aW9uSW50ZXJjZXB0b3IiLz4KKyAgICAmbHQ7aW50ZXJjZXB0b3Itc3RhY2sgbmFtZT0iPHN0cm9uZz51c2VyPC9zdHJvbmc+IiA+CisgICAgJmx0O2ludGVyY2VwdG9yLXJlZiBuYW1lPSJhdXRoZW50aWNhdGlvbiIgLz4KKyAgICAmbHQ7aW50ZXJjZXB0b3ItcmVmIG5hbWU9ImRlZmF1bHRTdGFjayIvPgorICAgICZsdDsvaW50ZXJjZXB0b3Itc3RhY2s+CisgICAgJmx0O2ludGVyY2VwdG9yLXN0YWNrIG5hbWU9IjxzdHJvbmc+dXNlci1zdWJtaXQ8L3N0cm9uZz4iID4KKyAgICAmbHQ7aW50ZXJjZXB0b3ItcmVmIG5hbWU9InRva2VuLXNlc3Npb24iIC8+CisgICAgJmx0O2ludGVyY2VwdG9yLXJlZiBuYW1lPSJ1c2VyIi8+CisgICAgJmx0Oy9pbnRlcmNlcHRvci1zdGFjaz4KKyAgICAmbHQ7aW50ZXJjZXB0b3Itc3RhY2sgbmFtZT0iPHN0cm9uZz5ndWVzdDwvc3Ryb25nPiIgPgorICAgICZsdDtpbnRlcmNlcHRvci1yZWYgbmFtZT0iZGVmYXVsdFN0YWNrIi8+CisgICAgJmx0Oy9pbnRlcmNlcHRvci1zdGFjaz4KKyAgICAmbHQ7aW50ZXJjZXB0b3Itc3RhY2sgbmFtZT0iPHN0cm9uZz5ndWVzdC1zdWJtaXQ8L3N0cm9uZz4iID4KKyAgICAmbHQ7aW50ZXJjZXB0b3ItcmVmIG5hbWU9InRva2VuLXNlc3Npb24iIC8+CisgICAgJmx0O2ludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPgorICAgICZsdDsvaW50ZXJjZXB0b3Itc3RhY2s+CisgICAgJmx0Oy9pbnRlcmNlcHRvcnM+CisgICAgJmx0OzxzdHJvbmc+ZGVmYXVsdC1pbnRlcmNlcHRvci1yZWY8L3N0cm9uZz4gbmFtZT0idXNlciIvPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPnVzZXI8L3N0cm9uZz4gc3RhY2tzIHJlcXVpcmUgdGhhdCB0aGUgY2xpZW50IGJlIGF1dGhlbnRpY2F0ZWQuCisgICAgSW4gb3RoZXIgd29yZHMsIHRoYXQgYSBVc2VyIG9iamVjdCBpcyBwcmVzZW50IGluIHRoZSBzZXNzaW9uLgorICAgIFRoZSBhY3Rpb25zIHVzaW5nIGEgPHN0cm9uZz5ndWVzdDwvc3Ryb25nPiBzdGFjayBjYW4gYmUgYWNjZXNzZWQgYnkgYW55IGNsaWVudC4KKyAgICBUaGUgPHN0cm9uZz4tc3VibWl0PC9zdHJvbmc+IHZlcnNpb25zIG9mIGVhY2ggY2FuIGJlIHVzZWQgd2l0aCBhY3Rpb25zCisgICAgd2l0aCBmb3JtcywgdG8gZ3VhcmQgYWdhaW5zdCBkb3VibGUgc3VibWl0cy4KKzwvcD4KKworPGg1PkRvdWJsZSBTdWJtaXRzPC9oNT4KKworPHA+CisgICAgQSBjb21tb24gcHJvYmxlbSB3aXRoIGRlc2lnbmluZyB3ZWIgYXBwbGljYXRpb25zIGlzIHRoYXQgdXNlcnMgYXJlIGltcGF0aWVudAorICAgIGFuZCByZXNwb25zZSB0aW1lcyBjYW4gdmFyeS4KKyAgICBTb21ldGltZXMsIHBlb3BsZSB3aWxsIHByZXNzIGEgc3VibWl0IGJ1dHRvbiBhIHNlY29uZCB0aW1lLgorICAgIFdoZW4gdGhpcyBoYXBwZW5zLCB0aGUgYnJvd3NlciBzdWJtaXRzIHRoZSByZXF1ZXN0IGFnYWluLAorICAgIHNvIHRoYXQgd2Ugbm93IGhhdmUgdHdvIHJlcXVlc3RzIGZvciB0aGUgc2FtZSB0aGluZy4KKyAgICBJbiB0aGUgY2FzZSBvZiByZWdpc3RlcmluZyBhIHVzZXIsIGlmIHNvbWVvbmUgZG9lcyBwcmVzcyB0aGUgc3VibWl0IGJ1dHRvbgorICAgIGFnYWluLCBhbmQgdGhlaXIgdGltaW5nIGlzIGJhZCwKKyAgICBpdCBjb3VsZCByZXN1bHQgaW4gdGhlIHN5c3RlbSByZXBvcnRpbmcgdGhhdCB0aGUgdXNlcm5hbWUgaGFzIGFscmVhZHkgYmVlbgorICAgIHVzZWQuCisgICAgKFRoZSBmaXJzdCB0aW1lIHRoZSBidXR0b24gd2FzIHByZXNzZWQuKQorICAgIEluIHByYWN0aWNlLCB0aGlzIHdvdWxkIHByb2JhYmx5IG5ldmVyIGhhcHBlbiwgYnV0IGZvciBhIGxvbmdlciBydW5uaW5nCisgICAgcHJvY2VzcywgbGlrZSBjaGVja2luZyBvdXQgYSBzaG9wcGluZyBjYXJ0LAorICAgIGl0J3MgZWFzaWVyIGZvciBhIGRvdWJsZSBzdWJtaXQgdG8gb2NjdXIuCis8L3A+CisKKzxwPgorICAgIFRvIGZvcmVzdGFsbCBkb3VibGUgc3VibWl0cywgYW5kICJiYWNrIGJ1dHRvbiIgcmVzdWJtaXRzLAorICAgIHRoZSBmcmFtZXdvcmsgY2FuIGdlbmVyYXRlIGEgdG9rZW4gdGhhdCBpcyBlbWJlZGRlZCBpbiB0aGUgZm9ybQorICAgIGFuZCBhbHNvIGtlcHQgaW4gdGhlIHNlc3Npb24uCisgICAgSWYgdGhlIHZhbHVlIG9mIHRoZSB0b2tlbnMgZG8gbm90IGNvbXBhcmUsCisgICAgdGhlbiB3ZSBrbm93IHRoYXQgdGhlcmUgaGFzIGJlZW4gYSBwcm9ibGVtLAorICAgIGFuZCB0aGF0IGEgZm9ybSBoYXMgYmVlbiBzdWJtaXR0ZWQgdHdpY2Ugb3Igb3V0IG9mIHNlcXVlbmNlLgorPC9wPgorCis8cD4KKyAgICBUaGUgVG9rZW4gU2Vzc2lvbiBJbnRlcmNlcHRvciB3aWxsIGFsc28gYXR0ZW1wdCB0byBwcm92aWRlIGludGVsbGlnZW50CisgICAgZmFpbC1vdmVyIGluIHRoZSBldmVudCBvZiBtdWx0aXBsZSByZXF1ZXN0cyB1c2luZyB0aGUgc2FtZSBzZXNzaW9uLgorICAgIFRoYXQgaXMsIGl0IHdpbGwgYmxvY2sgc3Vic2VxdWVudCByZXF1ZXN0cyB1bnRpbCB0aGUgZmlyc3QgcmVxdWVzdCBpcyBjb21wbGV0ZSwKKyAgICBhbmQgdGhlbiBpbnN0ZWFkIG9mIHJldHVybmluZyB0aGUgImludmFsaWQudG9rZW4iIGNvZGUsCisgICAgaXQgd2lsbCBhdHRlbXB0IHRvIGRpc3BsYXkgdGhlIHNhbWUgcmVzcG9uc2UgdGhhdCB0aGUKKyAgICBvcmlnaW5hbCwgdmFsaWQgYWN0aW9uIGludm9jYXRpb24gd291bGQgaGF2ZSBkaXNwbGF5ZWQKKzwvcD4KKworPHA+CisgICAgQmVjYXVzZSB0aGUgZGVmYXVsdCBpbnRlcmNlcHRvciBzdGFjayB3aWxsIG5vdyBhdXRoZW50aWNhdGUgdGhlIGNsaWVudCwKKyAgICB3ZSBuZWVkIHRvIHNwZWNpZnkgdGhlIHN0YW5kYXJkICJkZWZhdWx0U3RhY2siIGZvciB0aGUgdGhyZWUKKyAgICAiZ3Vlc3QgYWN0aW9ucyIsIFdlbGNvbWUsIExvZ29uLCBhbmQgUmVnaXN0ZXIuCisgICAgUmVxdWlyaW5nIGF1dGhlbnRpZmljYXRpb24gYnkgZGVmYXVsdCBpcyB0aGUgYmV0dGVyIHByYWN0aWNlLCBzaW5jZSBpdAorICAgIG1lYW5zIHRoYXQgd2Ugd29uJ3QgZm9yZ2V0IHRvIGVuYWJsZSBpdCB3aGVuIGNyZWF0aW5nIG5ldyBhY3Rpb25zLgorICAgIE1lYW53aGlsZSwgdGhvc2UgcGVza3kgdXNlcnMgd2lsbCBlbnN1cmUgdGhhdCB3ZSBkb24ndCBmb3JnZXQgdG8gZGlzYWJsZQorICAgIGF1dGhlbnRpZmljYXRpb24gZm9yICJndWVzdCIgc2VydmljZXMuCis8L3A+CisKKzxoMz48YSBuYW1lPSJNYWluTWVudSIgaWQ9Ik1haW5NZW51Ij5NYWluTWVudTwvYT48L2gzPgorCis8cD4KKyAgICBPbiBhIHN1Y2Nlc3NmdWwgbG9nb24sIHRoZSBNYWluIE1lbnUgcGFnZSBkaXNwbGF5cy4KKyAgICBJZiB5b3UgbG9nZ2VkIGluIHVzaW5nIHRoZSBkZW1vIGFjY291bnQsCisgICAgdGhlIHBhZ2UgdGl0bGUgc2hvdWxkIGJlICJNYWluIE1lbnUgT3B0aW9ucyBmb3IgSm9obiBRLiBVc2VyIi4KKyAgICBCZWxvdyB0aGlzIGxlZ2VuZCBzaG91bGQgYmUgdHdvIGxpbmtzOgorPC9wPgorCis8dWw+CisgICAgPGxpPgorICAgICAgICBFZGl0IHlvdXIgdXNlciByZWdpc3RyYXRpb24gcHJvZmlsZQorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgICBMb2cgb2ZmIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbgorICAgIDwvbGk+Cis8L3VsPgorCis8cD4KKyAgICBMZXQncyByZXZpZXcgdGhlIHNvdXJjZSBmb3IgdGhlICJNYWluTWVudSIgYWN0aW9uIG1hcHBpbmcsCisgICAgYW5kIHRoZSAiTWFpbk1lbnUuanNwIi4KKzwvcD4KKworPGhyLz4KKzxoNT5BY3Rpb24gbWFwcGluZyBlbGVtZW50IGZvciBNYWluTWVudTwvaDU+Cis8cHJlPjxjb2RlPiZsdDthY3Rpb24gbmFtZT0iTWFpbk1lbnUiIGNsYXNzPSJtYWlscmVhZGVyMi5NYWlscmVhZGVyU3VwcG9ydCI+CisgICAgJmx0O3Jlc3VsdD4vcGFnZXMvTWFpbk1lbnUuanNwJmx0Oy9yZXN1bHQ+CisgICAgJmx0Oy9hY3Rpb24+PC9jb2RlPjwvcHJlPgorCis8aDU+TWFpbk1lbnUuanNwPC9oNT4KKzxwcmU+PGNvZGU+Jmx0OyVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKyAgICAmbHQ7JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncyIgJT4KKyAgICAmbHQ7IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKyAgICAmbHQ7aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CisgICAgJmx0O2hlYWQ+CisgICAgJmx0O3RpdGxlPiZsdDtzOnRleHQgbmFtZT0ibWFpbk1lbnUudGl0bGUiLz4mbHQ7L3RpdGxlPgorICAgICZsdDtsaW5rIGhyZWY9IiZsdDtzOnVybCB2YWx1ZT0iL2Nzcy9tYWlscmVhZGVyLmNzcyIvPiIgcmVsPSJzdHlsZXNoZWV0IgorICAgIHR5cGU9InRleHQvY3NzIi8+CisgICAgJmx0Oy9oZWFkPgorCisgICAgJmx0O2JvZHk+CisgICAgJmx0O2gzPiZsdDtzOnRleHQgbmFtZT0ibWFpbk1lbnUuaGVhZGluZyIvPiA8c3Ryb25nPiZsdDtzOnByb3BlcnR5CisgICAgdmFsdWU9InVzZXIuZnVsbE5hbWUiLz48L3N0cm9uZz4mbHQ7L2gzPgorICAgICZsdDt1bD4KKyAgICAmbHQ7bGk+Jmx0O2EgaHJlZj0iJmx0O3M6dXJsIDxzdHJvbmc+YWN0aW9uPSJSZWdpc3RyYXRpb24haW5wdXQiPC9zdHJvbmc+IC8+Ij4KKyAgICAmbHQ7czp0ZXh0IG5hbWU9Im1haW5NZW51LnJlZ2lzdHJhdGlvbiIvPgorICAgICZsdDsvYT4KKyAgICAmbHQ7L2xpPgorICAgICZsdDtsaT4mbHQ7YSBocmVmPSImbHQ7czp1cmwgPHN0cm9uZz5hY3Rpb249IkxvZ29mZiI8L3N0cm9uZz4gLz4iPgorICAgICZsdDtzOnRleHQgbmFtZT0ibWFpbk1lbnUubG9nb2ZmIi8+CisgICAgJmx0Oy9hPgorICAgICZsdDsvdWw+CisgICAgJmx0Oy9ib2R5PgorICAgICZsdDsvaHRtbD48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBUaGUgc291cmNlIGZvciAiTWFpbk1lbnUuanNwIiBhbHNvIGNvbnRhaW5zIGEgbmV3IHRhZywgPHN0cm9uZz4KKyAgICBwcm9wZXJ0eTwvc3Ryb25nPiwgd2hpY2ggd2UgdXNlIHRvIGN1c3RvbWl6ZSB0aGUgcGFnZSB3aXRoIHRoZQorICAgICJmdWxsTmFtZSIgcHJvcGVydHkgb2YgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlci4KKzwvcD4KKworPHA+CisgICAgRGlzcGxheWluZyB0aGUgdXNlcidzIGZ1bGwgbmFtZSBpcyB0aGUgcmVhc29uIHRoZSBNYWluTWVudSBhY3Rpb24KKyAgICByZWZlcmVuY2VzIHRoZSBNYWlscmVhZGVyU3VwcG9ydCBjbGFzcy4KKyAgICBUaGUgTWFpbHJlYWRlclN1cHBvcnQgY2xhc3MgaGFzIGEgVXNlciBwcm9wZXJ0eSB0aGF0IHRoZSB0ZXh0IHRhZworICAgIGNhbiBhY2Nlc3MuCisgICAgSWYgd2UgZGlkIG5vdCB1dGlsaXplIE1haWxyZWFkZXJTdXBwb3J0LAorICAgIHRoZSBwcm9wZXJ0eSB0YWcgd291bGQgbm90IGJlIGFibGUgdG8gZmluZCB0aGUgVXNlciBvYmplY3QgdG8gcHJpbnQKKyAgICB0aGUgZnVsbCBuYW1lLgorPC9wPgorCis8cD4KKyAgICBUaGUgY3VzdG9taXplZCBNYWluTWVudSBwYWdlIG9mZmVycyB0d28gc3RhbmRhcmQgbGlua3MuCisgICAgT25lIGlzIHRvICJFZGl0IHlvdXIgdXNlciByZWdpc3RyYXRpb24gcHJvZmlsZSIuCisgICAgVGhlIG90aGVyIGlzIHRvICJMb2dvZmYgdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbiIuCis8L3A+CisKKzxoMz48YSBuYW1lPSJSZWdpc3RyYXRpb24uanNwIiBpZD0iUmVnaXN0cmF0aW9uLmpzcCI+UmVnaXN0cmF0aW9uIHBhZ2U8L2E+Cis8L2gzPgorCis8cD4KKyAgICBJZiB5b3UgZm9sbG93IHRoZSAiRWRpdCB5b3VyIHVzZXIgcmVnaXN0cmF0aW9uIHByb2ZpbGUiIGxpbmsgZnJvbSB0aGUgTWFpbgorICAgIE1lbnUgcGFnZSwKKyAgICB3ZSB3aWxsIGZpbmFsbHkgcmVhY2ggdGhlIGhlYXJ0IG9mIHRoZSBNYWlsUmVhZGVyIGFwcGxpY2F0aW9uOiB0aGUKKyAgICBSZWdpc3RyYXRpb24sIG9yICJQcm9maWxlIiwgcGFnZS4KKyAgICBUaGlzIHBhZ2UgZGlzcGxheXMgZXZlcnl0aGluZyBNYWlsUmVhZGVyIGtub3dzIGFib3V0IHlvdQorICAgIChvciBhdCBsZWFzdCB5b3VyIGxvZ2luKSwKKyAgICB3aGlsZSB1dGlsaXppbmcgc2V2ZXJhbCBpbnRlcmVzdGluZyB0ZWNobmlxdWVzLgorPC9wPgorCis8cD4KKyAgICBUbyBkbyBkb3VibGUgZHV0eSBhcyB0aGUgIkNyZWF0ZSIgUmVnaXN0cmF0aW9uIHBhZ2UgYW5kIHRoZSAiRWRpdCIKKyAgICBSZWdpc3RyYXRpb24gcGFnZSwKKyAgICB0aGUgIlJlZ2lzdHJhdGlvbi5qc3AiIG1ha2VzIGV4dGVuc2l2ZSB1c2Ugb2YgdGhlIHRlc3QgdGFncywKKyAgICB0byBtYWtlIGl0IGFwcGVhcnMgYXMgdGhvdWdoIHRoZXJlIGFyZSB0d28gZGlzdGluY3QgcGFnZXMuCis8L3A+CisKKzxoci8+Cis8aDU+UmVnaXN0cmF0aW9uLmpzcCAtIGhlYWQgZWxlbWVudDwvaDU+Cis8cHJlPjxjb2RlPiZsdDtoZWFkPgorICAgICZsdDtzOmlmIHRlc3Q9IjxzdHJvbmc+dGFzaz09J0NyZWF0ZSc8L3N0cm9uZz4iPgorICAgICZsdDt0aXRsZT4mbHQ7czp0ZXh0IG5hbWU9InJlZ2lzdHJhdGlvbi50aXRsZS5jcmVhdGUiLz4mbHQ7L3RpdGxlPgorICAgICZsdDsvczppZj4KKyAgICAmbHQ7czppZiB0ZXN0PSI8c3Ryb25nPnRhc2s9PSdFZGl0Jzwvc3Ryb25nPiI+CisgICAgJmx0O3RpdGxlPiZsdDtzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQiLz4mbHQ7L3RpdGxlPgorICAgICZsdDsvczppZj4KKyAgICAmbHQ7bGluayBocmVmPSImbHQ7czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgICZsdDsvaGVhZD48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBGb3IgZXhhbXBsZSwgaWYgY2xpZW50IGlzIGVkaXRpbmcgdGhlIGZvcm0gKHRhc2sgPT0gJ0VkaXQnKSwKKyAgICB0aGUgcGFnZSBpbnNlcnRzIHRoZSB1c2VybmFtZSBmcm9tIHRoZSBVc2VyIG9iamVjdC4KKyAgICBGb3IgYSBuZXcgUmVnaXN0cmF0aW9uICh0YXNrID09ICdDcmVhdGUnKSwKKyAgICB0aGUgcGFnZSBjcmVhdGVzIGFuIGVtcHR5IGRhdGEtZW50cnkgZmllbGQuCis8L3A+CisKKzxoci8+Cis8aDU+Tm90ZTo8L2g1PgorPGJsb2NrcXVvdGU+CisgICAgPHA+PGZvbnQgY2xhc3M9ImhpbnQiPgorICAgICAgICA8c3Ryb25nPlByZXNlbnRpb24gTG9naWM8L3N0cm9uZz4gLQorICAgICAgICBUaGUgInRlc3QiIHRhZyBpcyBhIGNvbnZlbmllbnQgd2F5IHRvIGV4cHJlc3MgcHJlc2VudGF0aW9uCisgICAgICAgIGxvZ2ljIHdpdGhpbiB5b3VyIHBhZ2VzLgorICAgICAgICBDdXN0b21pemVkIHBhZ2VzIGhlbHAgdG8gcHJldmVudCB1c2VyIGVycm9yLAorICAgICAgICBhbmQgZHluYW1pYyBjdXN0b21pemF0aW9uIHJlZHVjZXMgdGhlIG51bWJlciBvZiBzZXJ2ZXIgcGFnZXMgeW91cgorICAgICAgICBhcHBsaWNhdGlvbiBuZWVkcyB0byBtYWludGFpbiwgYW1vbmcgb3RoZXIgYmVuZWZpdHMuCisgICAgPC9mb250PjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSBwYWdlIGFsc28gdXNlcyBsb2dpYyB0YWdzIHRvIGRpc3BsYXkgYSBsaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICBmb3IgdGhlIGdpdmVuIHVzZXIuCisgICAgSWYgdGhlIFJlZ2lzdHJhdGlvbkZvcm0gaGFzIHRhc2sgc2V0IHRvICJFZGl0IiwKKyAgICB0aGUgbG93ZXIgcGFydCBvZiB0aGUgcGFnZSB0aGF0IGxpc3RzIHRoZSBzdWJzY3JpcHRpb25zIGlzIGV4cG9zZWQuCis8L3A+CisKKzxoci8+Cis8aDU+PC9oNT4KKzxwcmU+PGNvZGU+Jmx0O3M6aWYgdGVzdD08c3Ryb25nPiJ0YXNrID09ICdFZGl0JyI8L3N0cm9uZz4+CisgICAgJmx0O2RpdiBhbGlnbj0iY2VudGVyIj4KKyAgICAmbHQ7aDM+Jmx0O3M6dGV4dCBuYW1lPSJoZWFkaW5nLnN1YnNjcmlwdGlvbnMiLz4mbHQ7L2gzPgorICAgICZsdDsvZGl2PgorICAgICZsdDshLS0gLi4uIC0tPgorICAgICZsdDsvczppZj4KKyAgICAmbHQ7anNwOmluY2x1ZGUgcGFnZT0iRm9vdGVyLmpzcCIvPgorICAgICZsdDsvYm9keT4mbHQ7L2h0bWw+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgT3RoZXJ3aXNlLCB0aGUgcGFnZSBjb250YWlucyBqdXN0IHRoZSB0b3AgcG9ydGlvbiAtLQorICAgIGEgZGF0YS1lbnRyeSBmb3JtIGZvciBtYW5hZ2luZyB0aGUgdXNlcidzIHJlZ2lzdHJhdGlvbi4KKzwvcD4KKworPGg0PjxhIG5hbWU9Iml0ZXJhdG9yIiBpZD0iaXRlcmF0b3IiPml0ZXJhdG9yPC9hPjwvaDQ+CisKKzxwPgorICAgIEJlc2lkZXMgImlmIiB0aGVyZSBhcmUgc2V2ZXJhbCBvdGhlciBjb250cm9sIHRhZ3MgdGhhdCB5b3UgY2FuIHVzZQorICAgIHRvIHNvcnQsIGZpbHRlciwgb3IgaXRlcmF0ZSBvdmVyIGRhdGEuCisgICAgVGhlIFJlZ2lzdHJhdGlvbiBwYWdlIGluY2x1ZGVzIGEgZ29vZCBleGFtcGxlIG9mIHVzaW5nIHRoZSA8c3Ryb25nPml0ZXJhdG9yPC9zdHJvbmc+CisgICAgdGFnIHRvIGRpc3BsYXkgdGhlIFVzZXIncyBTdWJzY3JpcHRpb25zLgorPC9wPgorCis8cD4KKyAgICBUaGUgc3Vic2NyaXB0aW9ucyBhcmUgc3RvcmVkIGluIGEgaGFzaHRhYmxlIG9iamVjdCwgd2hpY2ggaXMgaW4gdHVybgorICAgIHN0b3JlZCBpbiB0aGUgdXNlciBvYmplY3QuCisgICAgU28gdG8gZGlzcGxheSBlYWNoIHN1YnNjcmlwdGlvbiwgd2UgaGF2ZSB0byByZWFjaCBpbnRvIHRoZSB1c2VyIG9iamVjdCwKKyAgICBhbmQgbG9vcCB0aHJvdWdoIHRoZSBtZW1iZXJzIG9mIHRoZSBzdWJzY3JpcHRpb24gY29sbGVjdGlvbi4KKyAgICBVc2luZyB0aGUgaXRlcmF0b3IgdGFnLCB5b3UgY2FuIGNvZGUgaXQgdGhlIHdheSBpdCBzb3VuZHMuCis8L3A+CisKKzxoci8+Cis8aDU+VXNpbmcgaXRlcmF0b3IgdG8gbGlzdCB0aGUgU3Vic2NyaXB0aW9uczwvaDU+Cis8cHJlPjxjb2RlPiZsdDtzOml0ZXJhdG9yIHZhbHVlPSI8c3Ryb25nPnVzZXIuc3Vic2NyaXB0aW9uczwvc3Ryb25nPiI+CisgICAgJmx0O3RyPgorICAgICZsdDt0ZCBhbGlnbj0ibGVmdCI+CisgICAgJmx0O3M6cHJvcGVydHkgdmFsdWU9IjxzdHJvbmc+aG9zdDwvc3Ryb25nPiIvPgorICAgICZsdDsvdGQ+CisgICAgJmx0O3RkIGFsaWduPSJsZWZ0Ij4KKyAgICAmbHQ7czpwcm9wZXJ0eSB2YWx1ZT0iPHN0cm9uZz51c2VybmFtZTwvc3Ryb25nPiIvPgorICAgICZsdDsvdGQ+CisgICAgJmx0O3RkIGFsaWduPSJjZW50ZXIiPgorICAgICZsdDtzOnByb3BlcnR5IHZhbHVlPSI8c3Ryb25nPnR5cGU8L3N0cm9uZz4iLz4KKyAgICAmbHQ7L3RkPgorICAgICZsdDt0ZCBhbGlnbj0iY2VudGVyIj4KKyAgICAmbHQ7czpwcm9wZXJ0eSB2YWx1ZT0iPHN0cm9uZz5hdXRvQ29ubmVjdDwvc3Ryb25nPiIvPgorICAgICZsdDsvdGQ+CisgICAgJmx0O3RkIGFsaWduPSJjZW50ZXIiPgorICAgICZsdDthIGhyZWY9IiZsdDtzOnVybCBhY3Rpb249IjxzdHJvbmc+U3Vic2NyaXB0aW9uIWRlbGV0ZTwvc3Ryb25nPiI+Jmx0O3M6cGFyYW0gbmFtZT0iPHN0cm9uZz5ob3N0PC9zdHJvbmc+IgorICAgIHZhbHVlPSJob3N0Ii8+Jmx0Oy9zOnVybD4iPgorICAgICZsdDtzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLmRlbGV0ZVN1YnNjcmlwdGlvbiIvPgorICAgICZsdDsvYT4mbmJzcDsKKyAgICAmbHQ7YSBocmVmPSImbHQ7czp1cmwgYWN0aW9uPSI8c3Ryb25nPlN1YnNjcmlwdGlvbiFlZGl0PC9zdHJvbmc+Ij4mbHQ7czpwYXJhbSBuYW1lPSI8c3Ryb25nPmhvc3Q8L3N0cm9uZz4iCisgICAgdmFsdWU9Imhvc3QiLz4mbHQ7L3M6dXJsPiI+CisgICAgJmx0O3M6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24uZWRpdFN1YnNjcmlwdGlvbiIvPgorICAgICZsdDsvYT4KKyAgICAmbHQ7L3RkPgorICAgICZsdDsvdHI+CisgICAgJmx0Oy9zOml0ZXJhdG9yPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFdoZW4gdGhlIGl0ZXJhdG9yIHJlbmRlcnMsIGl0IGdlbmVyYXRlcyBhIGxpc3Qgb2YgU3Vic2NyaXB0aW9ucyBmb3IgdGhlIGN1cnJlbnQgVXNlci4KKzwvcD4KKworPGhyLz4KKworPGRpdiBhbGlnbj0iY2VudGVyIj4KKyAgICA8aDM+Q3VycmVudCBTdWJzY3JpcHRpb25zPC9oMz4KKzwvZGl2PgorCis8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSI+CisgICAgPHRyPgorICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjMwJSI+CisgICAgICAgICAgICBIb3N0IE5hbWUKKyAgICAgICAgPC90aD4KKyAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIyNSUiPgorICAgICAgICAgICAgVXNlciBOYW1lCisgICAgICAgIDwvdGg+CisKKyAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxMCUiPgorICAgICAgICAgICAgU2VydmVyIFR5cGUKKyAgICAgICAgPC90aD4KKyAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxMCUiPgorICAgICAgICAgICAgQXV0bworICAgICAgICA8L3RoPgorICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjE1JSI+CisgICAgICAgICAgICBBY3Rpb24KKyAgICAgICAgPC90aD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgIG1haWwuaG90bWFpbC5jb20KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgIHVzZXIxMjM0CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgICAgIHBvcDMKKyAgICAgICAgPC90ZD4KKworICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICBmYWxzZQorICAgICAgICA8L3RkPgorICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICA8YSBocmVmPSIvc3RydXRzMi1tYWlscmVhZGVyL1N1YnNjcmlwdGlvbiFkZWxldGUuZG8/aG9zdD1tYWlsLmhvdG1haWwuY29tIj4KKyAgICAgICAgICAgICAgICBEZWxldGUKKyAgICAgICAgICAgIDwvYT4KKyAgICAgICAgICAgICZuYnNwOworICAgICAgICAgICAgPGEgaHJlZj0iL3N0cnV0czItbWFpbHJlYWRlci9TdWJzY3JpcHRpb24hZWRpdC5kbz9ob3N0PW1haWwuaG90bWFpbC5jb20iPgorICAgICAgICAgICAgICAgIEVkaXQKKyAgICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgIG1haWwueWFob28uY29tCisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICBqcXVzZXIKKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgaW1hcAorICAgICAgICA8L3RkPgorICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICBmYWxzZQorICAgICAgICA8L3RkPgorICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICA8YSBocmVmPSIvc3RydXRzMi1tYWlscmVhZGVyL1N1YnNjcmlwdGlvbiFkZWxldGUuZG8/aG9zdD1tYWlsLnlhaG9vLmNvbSI+CisgICAgICAgICAgICAgICAgRGVsZXRlCisgICAgICAgICAgICA8L2E+CisgICAgICAgICAgICAmbmJzcDsKKyAgICAgICAgICAgIDxhIGhyZWY9Ii9zdHJ1dHMyLW1haWxyZWFkZXIvU3Vic2NyaXB0aW9uIWVkaXQuZG8/aG9zdD1tYWlsLnlhaG9vLmNvbSI+CisgICAgICAgICAgICAgICAgRWRpdAorICAgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgIDwvdHI+Cis8L3RhYmxlPgorPGEgaHJlZj0iL3N0cnV0czItbWFpbHJlYWRlci9TdWJzY3JpcHRpb24haW5wdXQuZG8iPkFkZDwvYT4KKworPGhyLz4KKworPHA+CisgICAgTm93IGxvb2sgYmFjayBhdCB0aGUgY29kZSB1c2VkIHRvIGdlbmVyYXRlIHRoaXMgYmxvY2suCis8L3A+CisKKzxwPgorICAgIE5vdGljZSBhbnl0aGluZyBuaWZ0eT8KKzwvcD4KKworPHA+CisgICAgSG93IGFib3V0IHRoYXQgdGhlIG1hcmt1cCBiZXR3ZWVuIHRoZSBpdGVyYXRvciB0YWcgaXMKKyAgICBhY3R1YWxseSA8ZW0+c2ltcGxlcjwvZW0+IHRoYW4gdGhlIG1hcmt1cCB0aGF0IHdlIHdvdWxkIHVzZSB0byByZW5kZXIgb25lIHJvdyBvZiB0aGUgdGFibGU/Cis8L3A+CisKKzxwPgorICAgIEluc3RlYWQgb2YgdXNpbmcgYSBxdWFsaWZpZWQgcmVmZXJlbmNlIGxpa2UgInZhbHVlPXVzZXIuc3Vic2NyaXB0aW9uWzBdLmhvc3QiLAorICAgIHdlIHVzZSB0aGUgc2ltcGxlc3QgcG9zc2libGUgcmVmZXJlbmNlOiAidmFsdWU9aG9zdCIuCisgICAgV2UgZGlkbid0IGhhdmUgdG8gZGVmaW5lIGEgbG9jYWwgdmFyaWFibGUsIGFuZCByZWZlcmVuY2UgdGhhdCBsb2NhbCBpbiB0aGUgbG9vcCBjb2RlLgorICAgIFRoZSByZWZlcmVuY2UgdG8gZWFjaCBpdGVtIGluIHRoZSBsaXN0IGlzIGF1dG9tYXRpY2FsbHkgcmVzb2x2ZWQsIG5vIGZ1c3MsIG5vIG11c3MuCis8L3A+CisKKzxwPgorICAgIE5pY2UgdHJpY2shCis8L3A+CisKKzxwPgorICAgIFRoZSBzZWNyZXQgdG8gdGhpcyBtYWdpYyBpcyB0aGUgPHN0cm9uZz52YWx1ZSBzdGFjazwvc3Ryb25nPi4KKyAgICBOZXh0IHRvIEludGVyY2VwdG9ycywgdGhlIHZhbHVlIHN0YWNrIGlzIHByb2JhYmx5IHRoZSBjb29sZXN0IHRoaW5nIHRoZXJlIGlzIGFib3V0IHRoZSBmcmFtZXdvcmsuCisgICAgVG8gZXhwbGFpbiB0aGUgdmFsdWUgc3RhY2ssIGxldCdzIHN0ZXAgYmFjayBhbmQgc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nLgorPC9wPgorCis8cD4KKyAgICBNZXJnaW5nIGR5bmFtaWMgZGF0YSBpbnRvIHN0YXRpYyB3ZWIgcGFnZXMgaXMgYSBwcmltYXJ5IHJlYXNvbgorICAgIHdlIGNyZWF0ZSB3ZWIgYXBwbGljYXRpb25zLgorICAgIFRoZSBKYXZhIEFQSSBoYXMgYSBtZWNoYW5pc20gdGhhdCBhbGxvd3MgeW91IHRvCisgICAgcGxhY2Ugb2JqZWN0cyBpbiBhIHNlcnZsZXQgc2NvcGUgKHBhZ2UsIHJlcXVlc3QsIHNlc3Npb24sIG9yCisgICAgYXBwbGljYXRpb24pLCBhbmQgdGhlbiByZXRyaWV2ZSB0aGVtIHVzaW5nIGEgSlNQIHNjcmlwbGV0LgorICAgIElmIHRoZSBvYmplY3QgaXMgcGxhY2VkIGRpcmVjdGx5IGluIG9uZSBvZiB0aGUgc2NvcGVzLAorICAgIGEgSlNQIHRhZyBvciBzY3JpcHRsZXQgY2FuIGZpbmQgdGhhdCBvYmplY3QgYnkgc2VhcmNoaW5nIHBhZ2Ugc2NvcGUgYW5kCisgICAgdGhlbiByZXF1ZXN0IHNjb3BlLCBhbmQgc2Vzc2lvbiBzY29wZSwgYW5kIGZpbmFsbHkgYXBwbGljYXRpb24gc2NvcGUuCis8L3A+CisKKzxwPgorICAgIFRoZSB2YWx1ZSBzdGFjayB3b3JrcyBtdWNoIHRoZSBzYW1lIHdheSwgb25seSBiZXR0ZXIuCisgICAgV2hlbiB5b3UgcHVzaCBhbiBvYmplY3Qgb24gdGhlIHZhbHVlIHN0YWNrLAorICAgIHRoZSBwdWJsaWMgcHJvcGVydGllcyBvZiB0aGF0IG9iamVjdCBiZWNvbWUgZmlyc3QtY2xhc3MgcHJvcGVydGllcyBvZiB0aGUgc3RhY2suCisgICAgVGhlIG9iamVjdCdzIHByb3BlcnRpZXMgYmVjb21lIHRoZSBzdGFjaydzIHByb3BlcnRpZXMuCisgICAgSWYgYW5vdGhlciBvYmplY3Qgb24gdGhlIHN0YWNrIGhhcyBwcm9wZXJ0aWVzIG9mIHRoZSBzYW1lIG5hbWUsCisgICAgdGhlIGxhc3Qgb2JqZWN0IHB1c2hlZCBvbnRvIHRoZSBzdGFjayB3aW5zLiAoTGFzdC1JbiwgRmlyc3QtT3V0LikKKzwvcD4KKworPHA+CisgICAgV2hlbiB0aGUgaXRlcmF0b3IgdGFnIGxvb3BzIHRocm91Z2ggYSBjb2xsZWN0aW9uLAorICAgIGl0IHB1c2hlcyBlYWNoIGl0ZW0gaW4gdGhlIGNvbGxlY3Rpb24gb250byB0aGUgc3RhY2suCisgICAgVGhlIGl0ZW0ncyBwcm9wZXJ0aWVzIGJlY29tZSB0aGUgc3RhY2sncyBwcm9wZXJ0eS4KKyAgICBJbiB0aGUgY2FzZSBvZiB0aGUgU3Vic2NyaXB0aW9ucywKKyAgICBpZiB0aGUgU3Vic2NyaXB0aW9uIGhhcyBhIHB1YmxpYyBIb3N0IHByb3BlcnR5LAorICAgIHRoZW4gZHVyaW5nIHRoYXQgaXRlcmF0aW9uLAorICAgIHRoZSBzdGFjayBjYW4gYWNjZXNzIHRoZSBzYW1lIHByb3BlcnR5LgorPC9wPgorCis8cD4KKyAgICBPZiBjb3Vyc2UsIGF0IHRoZSBlbmQgb2YgZWFjaCBpdGVyYXRpb24sIHRoZSB0YWcgInBvcHMiIHRoZSBpdGVtIG9mZiB0aGUgc3RhY2suCisgICAgSWYgd2Ugd2VyZSB0byB0cnkgYW5kIGFjY2VzcyB0aGUgSG9zdCBwcm9wZXJ0eSBsYXRlciBpbiB0aGUgcGFnZSwKKyAgICBpdCB3b24ndCBiZSB0aGVyZS4KKzwvcD4KKworPHA+CisgICAgV2hlbiBhbiBBY3Rpb24gaXMgaW52b2tlZCwgdGhlIEFjdGlvbiBjbGFzcyBpcyBwdXNoZWQgb250byB0aGUgdmFsdWUgc3RhY2suCisgICAgU2luY2UgdGhlIEFjdGlvbiBpcyBvbiB0aGUgdmFsdWUgc3RhY2ssCisgICAgb3VyIHRhZ3MgY2FuIGFjY2VzcyBhbnkgcHJvcGVydHkgb2YgdGhlIEFjdGlvbiBhcyBpZiBpdCB3ZXJlIGFuIGltcGxpY2l0IHByb3BlcnR5IG9mIHRoZSBwYWdlLgorICAgIFRoZSB0YWdzIGRvbid0IGFjY2VzcyB0aGUgQWN0aW9uIGRpcmVjdGx5LgorICAgIElmIGEgdGV4dGZpZWxkIHRhZyBpcyB0b2xkIHRvIHJlbmRlciB0aGUgIlVzZXJuYW1lIiBwcm9wZXJ0eSwKKyAgICB0aGUgdGFnIGFza3MgdGhlIHZhbHVlIHN0YWNrIGZvciB0aGUgdmFsdWUgb2YgIlVzZXJuYW1lIiwKKyAgICBhbmQgdGhlIHZhbHVlIHN0YWNrIHJldHVybnMgdGhlIGZpcnN0IHByb3BlcnR5IGl0IGZpbmRzIGJ5IHRoYXQgbmFtZS4KKzwvcD4KKworPHA+CisgICAgVGhlIFZhbGlkYXRvcnMgYWxzbyB1c2UgdGhlIHN0YWNrLgorICAgIFdoZW4gdmFsaWRhdGlvbiBmYWlscyBvbiBhIGZpZWxkLAorICAgIHRoZSB2YWx1ZSBmb3IgdGhlIGZpZWxkIGlzIHB1c2hlZCBvbnRvIHRoZSB2YWx1ZSBzdGFjay4KKyAgICBBcyBhIHJlc3VsdCwgaWYgdGhlIGNsaWVudCBlbnRlcnMgdGV4dCBpbnRvIGFuIEludGVnZXIgZmllbGQsCisgICAgdGhlIGZyYW1ld29yayBjYW4gc3RpbGwgcmVkaXNwbGF5IHdoYXRldmVyIHdhcyBlbnRlcmVkLgorICAgIEFuIGludmFsaWQgaW5wdXQgdmFsdWUgaXMgbm90IHN0b3JlZCBpbiB0aGUgZmllbGQgKGV2ZW4gaWYgaXQgY291bGQgYmUpLgorICAgIFRoZSBpbnZhbGlkIGlucHV0IGlzIHB1c2hlZCBvbnRvIHRoZSBzdGFjayBmb3IgdGhlIHNjb3BlIG9mIHRoZSByZXF1ZXN0LgorPC9wPgorCis8cD4KKyAgICBUaGUgU3Vic2NyaXB0aW9uIGxpc3QgdXNlcyBhbm90aGVyIG5ldyB0YWc6IHRoZSA8c3Ryb25nPnBhcmFtPC9zdHJvbmc+IHRhZy4KKyAgICBBcyB0YWdzIGdvLCAicGFyYW0iIHRha2VzIHZlcnkgZmV3IHBhcmFtZXRlcnMgb2YgaXRzIG93bjoganVzdCAibmFtZSIgYW5kICJ2YWx1ZSIsIGFuZCBuZWl0aGVyIGlzIHJlcXVpcmVkLgorICAgIEFsdGhvdWdoIHNpbXBsZSwgInBhcmFtIiBpcyBvbmUgb2YgdGhlIG1vc3QgcG93ZXJmdWwgdGFncyB0aGUgZnJhbWV3b3JrIHByb3ZpZGVzLgorICAgIE5vdCBzbyBtdWNoIGJlY2F1c2Ugb2Ygd2hhdCBpdCBkb2VzLCBidXQgYmVjYXVzZSBvZiB3aGF0ICJwYXJhbSIgYWxsb3dzIHRoZSBvdGhlciB0YWdzIHRvIGRvLgorPC9wPgorCis8cD4KKyAgICBFc3NlbnRpYWxseSwgdGhlICJwYXJhbSIgdGFnIHByb3ZpZGVzIHBhcmFtZXRlcnMgdG8gb3RoZXIgdGFncy4KKyAgICBBIHRhZyBsaWtlICJ0ZXh0IiBtaWdodCBiZSByZXRyaWV2aW5nIGEgbWVzc2FnZSB0ZW1wbGF0ZSB3aXRoIHNldmVyYWwgcmVwbGFjZWFibGUgcGFyYW1ldGVycy4KKyAgICBObyBtYXR0ZXIgaG93IG1hbnkgcGFyYW1ldGVycyBhcmUgaW4gdGhlIHRlbXBsYXRlLCBhbmQgbm8gbWF0dGVyIHdoYXQgdGhleSBhcmUgbmFtZWQsCisgICAgeW91IGNhbiB1c2UgdGhlICJwYXJhbSIgdGFnIHRvIHBhc3MgaW4gd2hhdGV2ZXIgeW91IG5lZWQuCis8L3A+CisKKzxwcmU+PGNvZGU+cGFnZXIubGVnZW5kID0gRGlzcGxheWluZyB7Y3VycmVudH0gb2Yge2NvdW50fSBpdGVtcyBtYXRjaGluZyB7Y3JpdGVyaWF9LgorICAgIC4uLgorICAgICZsdDtzOnRleHQgbmFtZT0icGFnZXIubGVnZW5kIj4KKyAgICAmbHQ7czo8c3Ryb25nPnBhcmFtPC9zdHJvbmc+IG5hbWU9ImN1cnJlbnQiIHZhbHVlPSI0MiIgLz4KKyAgICAmbHQ7czo8c3Ryb25nPnBhcmFtPC9zdHJvbmc+IG5hbWU9ImNvdW50IiB2YWx1ZT0iMzE0IiAvPgorICAgICZsdDtzOjxzdHJvbmc+cGFyYW08L3N0cm9uZz4gbmFtZT0iY3JpdGVyaWEiIHZhbHVlPSJMaWZlLCB0aGUgVW5pdmVyc2UsIGFuZCBFdmVyeXRoaW5nIiAvPgorICAgICZsdDsvczp0ZXh0PjwvY29kZT48L3ByZT4KKworPHA+CisgICAgSW4gdGhlIGNhc2Ugb2YgYW4gInVybCIgdGFnLAorICAgIHdlIGNhbiB1c2UgInBhcmFtIiB0byBjcmVhdGUgdGhlIHF1ZXJ5IHN0cmluZy4KKyAgICBBIHN0YXRlbWVudCBsaWtlIHRoaXM6Cis8L3A+CisKKzxwcmU+PGNvZGU+CisgICAgJmx0O3M6dXJsIGFjdGlvbj0iU3Vic2NyaXB0aW9uIWVkaXQiPiZsdDtzOnBhcmFtIG5hbWU9IjxzdHJvbmc+aG9zdCIgdmFsdWU9Imhvc3Q8L3N0cm9uZz4iLz4mbHQ7L3M6dXJsPiI+Cis8L2NvZGU+PC9wcmU+CisKKzxwPgorICAgIGNhbiByZW5kZXIgYSBoeXBlcmxpbmsgbGlrZSB0aGlzOgorPC9wPgorCis8cHJlPjxjb2RlPgorICAgICZsdDthIGhyZWY9Ii9zdHJ1dHMyLW1haWxyZWFkZXIvU3Vic2NyaXB0aW9uIWVkaXQuZG8/PHN0cm9uZz5ob3N0PW1haWwueWFob28uY29tPC9zdHJvbmc+Ij5FZGl0Jmx0Oy9hPgorPC9jb2RlPjwvcHJlPgorCisKKzwhLS0KKzxwPgorICAgIEF0IHRoZSBmb290IG9mIHRoZSBSZWdpc3RlciBwYWdlIGlzIGEgbGluayBmb3IgYWRkaW5nIGEgc3Vic2NyaXB0aW9uLgorICAgIExldCdzIHdpbmQgdXAgdGhlIHRvdXIgYnkgZm9sbG93aW5nIHRoZSBBZGQgbGluayBhbmQgdGhlbiBsb2dnaW5nIG9mZi4KKyAgICBMaWtlIHRoZSBsaW5rIGZvciBjcmVhdGluZyBhIFN1cHBvcnQsIEFkZCBwb2ludHMgdG8gYW4gIkVkaXQiIGFjdGlvbiwKKyAgICBuYW1lbHkgIkVkaXRTdWJzY3JpcHRpb24iLgorPC9wPgorLS0+CisKKzxwPgorICAgIElmIGEgaHlwZXJsaW5rIG5lZWRzIG1vcmUgcGFyYW1ldGVycywKKyAgICB5b3UgY2FuIHVzZSAicGFyYW0iIHRvIGFkZCBhcyBtYW55IHBhcmFtZXRlcnMgYXMgbmVlZGVkLgorPC9wPgorCis8aDM+CisgICAgPGEgbmFtZT0iU3Vic2NyaXB0aW9uIiBpZD0iU3Vic2NyaXB0aW9uIj5TdWJzY3JpcHRpb248L2E+Cis8L2gzPgorCis8cD4KKyAgICBJZiB3ZSBmb2xsb3cgb25lIG9mIHRoZSAiRWRpdCIgc3Vic2NyaXB0aW9uIGxpbmtzIG9uIHRoZSBSZWdpc3RyYXRpb24gcGFnZSwKKyAgICB3ZSBjb21lIHRvIHRoZSBTdWJzY3JpcHRpb25zIHBhZ2UsCisgICAgd2hpY2ggZGlzcGxheXMgdGhlIGRldGFpbHMgb2Ygb3VyIGRlc2NyaXB0aW9uIGluIGEgZGF0YS1lbnRyeSBmb3JtLgorICAgIExldCdzIGhhdmUgYSBsb29rIGEgdGhlIFN1YnNjcmlwdGlvbiBjb25maWd1cmF0aW9uIGluICJzdHJ1dHMueG1sIgorICAgIGFuZCBmb2xsb3cgdGhlIGJvdW5jaW5nIGJhbGwgZnJvbSBwYWdlIHRvIGFjdGlvbiB0byBwYWdlLgorPC9wPgorCis8aHIvPgorPGg1PnN0cnV0cy54bWwgU3Vic2NyaXB0aW9uIGVsZW1lbnQ8L2g1PgorPHByZT48Y29kZT4mbHQ7YWN0aW9uIG5hbWU9IlN1YnNjcmlwdGlvbiIgY2xhc3M9Im1haWxyZWFkZXIyLlN1YnNjcmlwdGlvblN1cHBvcnQiPgorICAgICZsdDtyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9TdWJzY3JpcHRpb24uanNwJmx0Oy9yZXN1bHQ+CisgICAgJmx0O3Jlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPlJlZ2lzdHJhdGlvbiFpbnB1dCZsdDsvcmVzdWx0PgorICAgICZsdDsvYWN0aW9uPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSBFZGl0IGxpbmsgc3BlY2lmaWVkIHRoZSBTdWJzY3JpcHRpb24gYWN0aW9uLAorICAgIGJ1dCBhbHNvIGluY2x1ZGVzIHRoZSBxdWFsaWZpZXIgPHN0cm9uZz4hZWRpdDwvc3Ryb25nPi4KKyAgICBUaGUgPHN0cm9uZz4hPC9zdHJvbmc+IGlkaW9tIHRlbGxzIHRoZSBmcmFtZXdvcmsgdG8gaW52b2tlIHRoZQorICAgICJlZGl0IiBtZXRob2Qgb2YgdGhlIFN1YnNjcmlwdGlvbiBhY3Rpb24sCisgICAgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCAiZXhlY3V0ZSIgbWV0aG9kCisgICAgVGhlICJhbHRlcm5hdGUiIGV4ZWN1dGUgbWV0aG9kcyBhcmUgY2FsbGVkIDxzdHJvbmc+YWxpYXM8L3N0cm9uZz4gbWV0aG9kcy4KKzwvcD4KKworPGhyLz4KKzxoNT5TdWJzY3JpcHRpb24gZWRpdCBhbGlhczwvaDU+Cis8cHJlPjxjb2RlPnB1YmxpYyBTdHJpbmcgPHN0cm9uZz5lZGl0KCk8L3N0cm9uZz4geworICAgIDxzdHJvbmc+c2V0VGFzayhDb25zdGFudHMuRURJVCk7PC9zdHJvbmc+PgorICAgIHJldHVybiBmaW5kKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBmaW5kKCkgeworICAgIG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uU3Vic2NyaXB0aW9uCisgICAgc3ViID0gZmluZFN1YnNjcmlwdGlvbigpOworICAgIGlmIChzdWIgPT0gbnVsbCkgeworICAgIHJldHVybiBFUlJPUjsKKyAgICB9CisgICAgPHN0cm9uZz5zZXRTdWJzY3JpcHRpb24oc3ViKTs8L3N0cm9uZz4KKyAgICByZXR1cm4gSU5QVVQ7CisgICAgfTwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSAiZWRpdCIgYWxpYXMgaGFzIHR3byByZXNwb25zaWJpbGl0aWVzLgorICAgIEZpcnN0LCBpdCBtdXN0IHNldCB0aGUgVGFzayBwcm9wZXJ0eSB0byAiRWRpdCIuCisgICAgVGhlIFN1YnNjcmlwdGlvbiBwYWdlIHdpbGwgcmVuZGVyIGl0c2VsZiBkaWZmZXJlbnRseQorICAgIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgdGhlIFRhc2sgcHJvcGVydHkuCisgICAgU2Vjb25kLCAiZWRpdCIgbXVzdCBsb2NhdGUgdGhlIHJlbGV2YW50IFN1YnNjcmlwdGlvbgorICAgIGFuZCBzZXQgaXQgdG8gdGhlIFN1YnNjcmlwdGlvbiBwcm9wZXJ0eS4KKyAgICBJZiBhbGwgZ29lcyB3ZWxsLCAiZWRpdCIgcmV0dXJucyB0aGUgSU5QVVQgdG9rZW4sCisgICAgc28gdGhhdCB0aGUgImlucHV0IiByZXN1bHQgd2lsbCBiZSBpbnZva2VkLgorPC9wPgorCis8cD4KKyAgICBJbiB0aGUgbm9ybWFsIGNvdXJzZSwgdGhlIFN1YnNjcmlwdGlvbiBzaG91bGQgYWx3YXlzIGJlIGZvdW5kLAorICAgIHNpbmNlIHdlIHNlbGVjdGVkIHRoZSBlbnRyeSBmcm9tIGEgc3lzdGVtLWdlbmVyYXRlZCBsaXN0LgorICAgIElmIHRoZSBTdWJzY3JpcHRpb24gaXMgbm90IGZvdW5kLAorICAgIGl0IHdvdWxkIGJlIGJlY2F1c2UgdGhlIGRhdGFiYXNlIGRpc2FwcGVhcmVkCisgICAgb3IgdGhlIHJlcXVlc3QgaXMgYmVpbmcgc3Bvb2ZlZC4KKyAgICBJZiB0aGUgU3Vic2NyaXB0aW9uIGlzIG5vdCBmb3VuZCwKKyAgICBlZGl0IHJldHVybnMgdGhlIHRva2VuIGZvciB0aGUgZ2xvYmFsICJlcnJvciIgcmVzdWx0LAorICAgIGJlY2F1c2UgdGhpcyBjb25kaXRpb24gaXMgdW5leHBlY3RlZC4KKzwvcD4KKworPHA+CisgICAgVGhlIGJ1c2luZXNzIGxvZ2ljIGZvciB0aGUgImVkaXQiIGFsaWFzIGlzIGEgc2ltcGxlIHdyYXBwZXIKKyAgICBhcm91bmQgdGhlIE1haWxSZWFkZXIgREFPIGNsYXNzZXMuCis8L3A+CisKKzxoci8+Cis8aDU+TWFpbHJlYWRlclN1cHBvcnQgZmluZFN1YnNjcmlwdGlvbigpPC9oNT4KKzxwcmU+PGNvZGU+cHVibGljIFN1YnNjcmlwdGlvbiA8c3Ryb25nPmZpbmRTdWJzY3JpcHRpb24oKTwvc3Ryb25nPiB7CisgICAgcmV0dXJuIGZpbmRTdWJzY3JpcHRpb24oZ2V0SG9zdCgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3Vic2NyaXB0aW9uIGZpbmRTdWJzY3JpcHRpb24oU3RyaW5nIGhvc3QpIHsKKyAgICBTdWJzY3JpcHRpb24gc3Vic2NyaXB0aW9uOworICAgIHN1YnNjcmlwdGlvbiA9IDxzdHJvbmc+Z2V0VXNlcigpLmZpbmRTdWJzY3JpcHRpb24oaG9zdCk7PC9zdHJvbmc+CisgICAgcmV0dXJuIHN1YnNjcmlwdGlvbjsKKyAgICB9PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgVGhpcyBjb2RlIGlzIHZlcnkgc2ltcGxlCisgICAgYW5kIGRvZXNuJ3Qgc2VlbSB0byBwcm92aWRlIG11Y2ggaW4gdGhlIHdheSBvZiBlcnJvciBoYW5kbGluZy4KKyAgICBCdXQsIHRoYXQncyBPSy4KKyAgICBTaW5jZSB0aGUgcGFnZSBpcyBzdXBwb3NlIHRvIGJlIGVudGVyZWQgZnJvbSBhIGxpbmsgdGhhdCB3ZSBjcmVhdGVkLAorICAgIHdlIGRvIGV4cGVjdCBldmVyeXRoaW5nIHRvIGdvIHJpZ2h0IGhlcmUuCisgICAgQnV0LCBpZiBpdCBkb2Vzbid0LCB0aGUgZ2xvYmFsIGV4Y2VwdGlvbiBoYW5kbGVyIHdlIGRlZmluZWQgaW4gInN0cnV0cy54bWwiCisgICAgd2lsbCB0cmFwIHRoZSBleGNlcHRpb24gZm9yIHVzLgorPC9wPgorCis8cD4KKyAgICBMaWtld2lzZSwgdGhlIEF1dGhlbnRpZmljYXRpb25JbnRlcmNlcHRvciB3aWxsIGVuc3VyZSB0aGF0IG9ubHkgY2xpZW50cworICAgIHdpdGggYSB2YWxpZCBVc2VyIG9iamVjdCBjYW4gdHJ5IHRvIGVkaXQgYSBTdWJzY3JpcHRpb24uCisgICAgSWYgdGhlIHNlc3Npb24gZXhwaXJlZCwgb3Igc29tZW9uZSBib29rbWFya2VkIHRoZSBwYWdlLAorICAgIHRoZSBjbGllbnQgd2lsbCBiZSByZWRpcmVjdGVkIHRvIHRoZSBMb2dvbiBwYWdlIGF1dG9tYXRpY2FsbHkuCis8L3A+CisKKzxwPgorICAgIEFzIGEgZmluYWwgbGF5ZXIgb2YgZGVmZW5zZSwgd2UgYWxzbyBjb25maWd1cmVkIGEgdmFsaWRhdG9yIGZvciBTdWJzY3JpcHRpb24sCisgICAgdG8gZW5zdXJlIHRoYXQgd2UgYXJlIHBhc3NlZCBhIEhvc3QgcGFyYW1ldGVyLgorPC9wPgorCis8aHIvPgorPGg1PlN1YnNjcmlwdGlvbi12YWxpZGF0aW9uLnhtbDwvaDU+Cis8cHJlPjxjb2RlPiZsdDshRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIgorICAgICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+CisgICAgJmx0O3ZhbGlkYXRvcnM+CisgICAgJmx0O2ZpZWxkIG5hbWU9IjxzdHJvbmc+aG9zdDwvc3Ryb25nPiI+CisgICAgJmx0O2ZpZWxkLXZhbGlkYXRvciB0eXBlPSI8c3Ryb25nPnJlcXVpcmVkc3RyaW5nPC9zdHJvbmc+Ij4KKyAgICAmbHQ7bWVzc2FnZSBrZXk9ImVycm9yLmhvc3QucmVxdWlyZWQiLz4KKyAgICAmbHQ7L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICAmbHQ7L2ZpZWxkPgorICAgICZsdDsvdmFsaWRhdG9ycz48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBCeSBrZWVwaW5nIHJvdXRpbmUgc2V0eSBwcmVjYXV0aW9ucyBvdXQgb2YgdGhlIEFjdGlvbiBjbGFzcywKKyAgICB0aGUgYWxsLWltcG9ydGFudCBBY3Rpb25zIGJlY29tZXMgc21hbGxlciBhbmQgZWFzaWVyIHRvIG1haW50YWluLgorPC9wPgorCis8cD4KKyAgICBBZnRlciBzZXR0aW5nIHRoZSByZWxldmVudCBTdWJzY3JpcHRpb24gb2JqZWN0IHRvIHRoZSBTdWJzY3JpcHRpb24gcHJvcGVydHksCisgICAgdGhlIGZyYW1ld29yayB0cmFuc2ZlcnMgY29udHJvbCB0byB0aGUgKHlvdSBndWVzc2VkIGl0KSBTdWJzY3JpcHRpb24gcGFnZS4KKzwvcD4KKworPGhyLz4KKzxoNT5TdWJzY3JpcHRpb24uanNwPC9oNT4KKzxwcmU+PGNvZGU+Jmx0OyVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKyAgICAmbHQ7JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncyIgJT4KKyAgICAmbHQ7IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKyAgICAmbHQ7aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CisgICAgJmx0O2hlYWQ+CisgICAgJmx0O3M6aWYgdGVzdD0idGFzaz09J0NyZWF0ZSciPgorICAgICZsdDt0aXRsZT4mbHQ7czp0ZXh0IG5hbWU9InN1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGUiLz4mbHQ7L3RpdGxlPgorICAgICZsdDsvczppZj4KKyAgICAmbHQ7czppZiB0ZXN0PSJ0YXNrPT0nRWRpdCciPgorICAgICZsdDt0aXRsZT4mbHQ7czp0ZXh0IG5hbWU9InN1YnNjcmlwdGlvbi50aXRsZS5lZGl0Ii8+Jmx0Oy90aXRsZT4KKyAgICAmbHQ7L3M6aWY+CisgICAgJmx0O3M6aWYgdGVzdD0idGFzaz09J0RlbGV0ZSciPgorICAgICZsdDt0aXRsZT4mbHQ7czp0ZXh0IG5hbWU9InN1YnNjcmlwdGlvbi50aXRsZS5kZWxldGUiLz4mbHQ7L3RpdGxlPgorICAgICZsdDsvczppZj4KKyAgICAmbHQ7bGluayBocmVmPSImbHQ7czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgICZsdDsvaGVhZD4KKyAgICAmbHQ7Ym9keSBvbkxvYWQ9InNlbGYuZm9jdXMoKTtkb2N1bWVudC5TdWJzY3JpcHRpb24udXNlcm5hbWUuZm9jdXMoKSI+CisKKyAgICAmbHQ7czphY3Rpb25lcnJvci8+CisgICAgJmx0O3M6Zm9ybSBtZXRob2Q9IlBPU1QiIDxzdHJvbmc+YWN0aW9uPSJTdWJzY3JpcHRpb25TYXZlIjwvc3Ryb25nPiB2YWxpZGF0ZT0iZmFsc2UiPgorICAgIDxzdHJvbmc+Jmx0O3M6dG9rZW4gLz48L3N0cm9uZz4KKyAgICA8c3Ryb25nPiZsdDtzOmhpZGRlbiBuYW1lPSJ0YXNrIi8+PC9zdHJvbmc+CisgICAgPHN0cm9uZz4mbHQ7czpsYWJlbCBsYWJlbD0iJXtnZXRUZXh0KCd1c2VybmFtZScpfSIgbmFtZT0idXNlci51c2VybmFtZSIvPjwvc3Ryb25nPgorCisgICAgJmx0O3M6aWYgdGVzdD0idGFzayA9PSAnQ3JlYXRlJyI+CisgICAgJmx0O3M6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ21haWxIb3N0bmFtZScpfSIgbmFtZT0iaG9zdCIvPgorICAgICZsdDsvczppZj4KKyAgICAmbHQ7czplbHNlPgorICAgICZsdDtzOmxhYmVsIGxhYmVsPSIle2dldFRleHQoJ21haWxIb3N0bmFtZScpfSIgbmFtZT0iaG9zdCIvPgorICAgICZsdDtzOmhpZGRlbiBuYW1lPSJob3N0Ii8+CisgICAgJmx0Oy9zOmVsc2U+CisKKyAgICAmbHQ7czppZiB0ZXN0PSJ0YXNrID09ICdEZWxldGUnIj4KKyAgICAmbHQ7czpsYWJlbCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsVXNlcm5hbWUnKX0iCisgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnVzZXJuYW1lIi8+CisgICAgJmx0O3M6bGFiZWwgbGFiZWw9IiV7Z2V0VGV4dCgnbWFpbFBhc3N3b3JkJyl9IgorICAgIG5hbWU9InN1YnNjcmlwdGlvbi5wYXNzd29yZCIvPgorICAgICZsdDtzOmxhYmVsIGxhYmVsPSIle2dldFRleHQoJ21haWxTZXJ2ZXJUeXBlJyl9IgorICAgIG5hbWU9InN1YnNjcmlwdGlvbi50eXBlIi8+CisgICAgJmx0O3M6bGFiZWwgbGFiZWw9IiV7Z2V0VGV4dCgnYXV0b0Nvbm5lY3QnKX0iCisgICAgbmFtZT0ic3Vic2NyaXB0aW9uLmF1dG9Db25uZWN0Ii8+CisgICAgJmx0O3M6c3VibWl0IHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5jb25maXJtJyl9Ii8+CisgICAgJmx0Oy9zOmlmPgorICAgICZsdDtzOmVsc2U+CisgICAgJmx0O3M6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ21haWxVc2VybmFtZScpfSIKKyAgICBuYW1lPSJzdWJzY3JpcHRpb24udXNlcm5hbWUiLz4KKyAgICAmbHQ7czp0ZXh0ZmllbGQgbGFiZWw9IiV7Z2V0VGV4dCgnbWFpbFBhc3N3b3JkJyl9IgorICAgIG5hbWU9InN1YnNjcmlwdGlvbi5wYXNzd29yZCIvPgorICAgIDxzdHJvbmc+Jmx0O3M6c2VsZWN0IGxhYmVsPSIle2dldFRleHQoJ21haWxTZXJ2ZXJUeXBlJyl9IgorICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24udHlwZSIgbGlzdD0idHlwZXMiLz48L3N0cm9uZz4KKyAgICA8c3Ryb25nPiZsdDtzOmNoZWNrYm94IGxhYmVsPSIle2dldFRleHQoJ2F1dG9Db25uZWN0Jyl9IgorICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24uYXV0b0Nvbm5lY3QiLz48L3N0cm9uZz4KKyAgICAmbHQ7czpzdWJtaXQgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLnNhdmUnKX0iLz4KKyAgICAmbHQ7czpyZXNldCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24ucmVzZXQnKX0iLz4KKyAgICAmbHQ7L3M6ZWxzZT4KKworICAgICZsdDtzOnN1Ym1pdCBhY3Rpb249IlJlZ2lzdHJhdGlvbiFpbnB1dCIKKyAgICB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uY2FuY2VsJyl9IgorICAgIG9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCIvPgorICAgICZsdDsvczpmb3JtPgorCisgICAgJmx0O2pzcDppbmNsdWRlIHBhZ2U9IkZvb3Rlci5qc3AiLz4KKyAgICAmbHQ7L2JvZHk+CisgICAgJmx0Oy9odG1sPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIEFzIGJlZm9yZSwgd2UnbGwgZGlzY3VzcyB0aGUgdGFncyBhbmQgYXR0cmlidXRlcyB0aGF0IGFyZSBuZXcgdG8gdGhpcyBwYWdlOgorICAgICJ0b2tlbiIsICJoaWRkZW4iLCAibGFiZWwiLCAic2VsZWN0IiwgYW5kICJjaGVja2JveCIuCis8L3A+CisKKzxwPgorICAgIFdoZW4gd2UgbG9va2VkIGF0IHRoZSBmb3JtIHRhZyBmb3IgdGhlIExvZ29uIHBhZ2UsCisgICAgaXQgZGlkIG5vdCBzcGVjaWZ5IGEgdGFyZ2V0IGZvciB0aGUgc3VibWl0LgorICAgIEluc3RlYWQsIGl0IGp1c3QgcG9zdGVkIGJhY2sgdG8gdGhlIExvZ29uIGFjdGlvbi4KKyAgICBJbiB0aGlzIDxzdHJvbmc+Zm9ybTwvc3Ryb25nPiB0YWcsIHdlIGFyZSBzcGVjaWZ5aW5nIGEgZGlmZmVyZW50IGFjdGlvbiwKKyAgICA8c3Ryb25nPlN1YnNjcmlwdGlvblNhdmU8L3N0cm9uZz4KKyAgICB0byBiZSB0aGUgdGFyZ2V0IG9mIHRoZSBzdWJtaXQsCis8L3A+CisKKzxwPgorICAgIFRoZSBtYWluIHJlYXNvbiB3ZSB1c2UgYW5vdGhlciBhY3Rpb24gaXMgc28gdGhhdCB3ZSBjYW4gdXNlIGEgZGlmZmVyZW50IHNldCBvZiB2YWxpZGF0aW9ucy4KKyAgICBXaGVuIHdlIHJldHJpZXZlIHRoZSBTdWJzY3JpcHRpb24gZm9yIGVkaXRpbmcsIGFsbCB3ZSBuZWVkIGlzIHRoZSBIb3N0IHByb3BlcnR5LgorICAgIFdoZW4gd2Ugc2F2ZSB0aGUgU3Vic2NyaXB0aW9uLCB3ZSB3YW50IHRvIHZhbGlkYXRlIGFkZGl0aW9uYWwgcHJvcGVydGllcy4KKyAgICBTaW5jZSB0aGUgdmFsaWRhdGlvbiBmaWxlcyBhcmUgY291cGxlZCB0byB0aGUgY2xhc3NlcywKKyAgICB3ZSBjcmVhdGVkIGEgbmV3IEFjdGlvbiBjbGFzcyBmb3Igc2F2aW5nIGEgU3Vic2NyaXB0aW9uLgorPC9wPgorCis8aHIvPgorPGg1PlN1YnNjcmlwdGlvbi12YWxpZGF0aW9uLnhtbDwvaDU+Cis8cHJlPjxjb2RlPiZsdDshRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIgorICAgICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+CisgICAgJmx0O3ZhbGlkYXRvcnM+CisgICAgJmx0O2ZpZWxkIG5hbWU9IjxzdHJvbmc+aG9zdDwvc3Ryb25nPiI+CisgICAgJmx0O2ZpZWxkLXZhbGlkYXRvciB0eXBlPSI8c3Ryb25nPnJlcXVpcmVkc3RyaW5nPC9zdHJvbmc+Ij4KKyAgICAmbHQ7bWVzc2FnZSBrZXk9ImVycm9yLmhvc3QucmVxdWlyZWQiLz4KKyAgICAmbHQ7L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICAmbHQ7L2ZpZWxkPgorICAgICZsdDsvdmFsaWRhdG9ycz48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBUaGUgdmFsaWRhdG9ycyBmb2xsb3cgdGhlIHNhbWUgdHlwZSBvZiBpbmhlcml0YW5jZSBwYXRoIGFzIHRoZSBjbGFzc2VzLgorICAgIFN1YnNjcmlwdGlvblNhdmUgZXh0ZW5kcyBTdWJzY3JpcHRpb24sCisgICAgc28gd2hlbiBTdWJzY3JpcHRpb25TYXZlIGlzIHZhbGlkYXRlZCwKKyAgICB0aGUgSG9zdCBwcm9wZXJ0eSBzcGVjaWZpZWQgYnkgIlN1YnNjcmlwdGlvbi12YWxpZGF0aW9uLnhtbCIgd2lsbCBhbHNvIGJlIHJlcXVpcmVkLgorPC9wPgorCis8cD4KKyAgICBUaGUgPHN0cm9uZz50b2tlbjwvc3Ryb25nPiB0YWcgd29ya3Mgd2l0aCB0aGUgVG9rZW4gU2Vzc2lvbiBJbnRlcmNlcHRvciB0byBmb2lsIGRvdWJsZSBzdWJtaXRzLgorICAgIFRoZSB0YWcgZ2VuZXJhdGVzIGEga2V5IHRoYXQgaXMgZW1iZWRkZWQgaW4gdGhlIGZvcm0gYW5kIGNhY2hlZCBpbiB0aGUgc2Vzc2lvbi4KKyAgICBXaXRob3V0IHRoaXMgdGFnLCB0aGUgSW50ZXJjZXB0b3IgY2FuJ3Qgd29yayBpdCdzIG1hZ2ljLgorPC9wPgorCis8cD4KKyAgICBUaGUgPHN0cm9uZz5oaWRkZW48L3N0cm9uZz4gdGFnIGVtYmVkcyB0aGUgVGFzayBwcm9wZXJ0eSBpbnRvIHRoZSBmb3JtLgorICAgIFdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLAorICAgIHRoZSBTdWJzY3JpcHRpb25TYXZlIGFjdGlvbiB3aWwgdXNlIHRoZSBUYXNrIHByb3BlcnR5IHRvIGRlY2lkZQorICAgIHdoZXRoZXIgdG8gaW5zZXJ0IG9yIHVwZGF0ZSB0aGUgZm9ybS4KKzwvcD4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+bGFiZWw8L3N0cm9uZz4gcmVuZGVycyBhICJyZWFkIG9ubHkiIHZlcnNpb24gb2YgYSBwcm9wZXJ0eSwKKyAgICBzdWl0YWJsZSBmb3IgcGxhY2VtZW50IGluIHRoZSBmb3JtLgorICAgIEluIEVkaXQgb3IgRGVsZXRlIG1vZGUsIHdlIHdhbnQgdGhlIEhvc3QgcHJvcGVydHkgdG8gYmUgaW1tdXRhYmxlLAorICAgIHNpbmNlIGl0IGlzIHVzZWQgYXMgYSBrZXkuIChBcyB1bndpc2UgYXMgdGhhdCBtaWdodCBzb3VuZC4pCisgICAgSW4gRGVsZXRlIG1vZGUsIGFsbCBvZiB0aGUgcHJvcGVydGllcyBhcmUgaW1tdXRhYmxlLAorICAgIHNpbmNlIHdlIGFyZSBzaW1wbHkgY29uZmlybWluZyB0aGUgZGVsZXRlIG9wZXJhdGlvbi4KKzwvcD4KKworPHA+CisgICAgU2F2aW5nIHRoZSBiZXN0IGZvciBsYXN0LCB0aGUgU3Vic2NyaXB0aW9uIHV0aWxpemVzIHR3byBtb3JlIGludGVyZXN0aW5nCisgICAgdGFncywgInNlbGVjdCIgYW5kICJjaGVja2JveCIuCis8L3A+CisKKzxwPgorICAgIFVuc3VycHJpc2luZ2x5LCB0aGUgPHN0cm9uZz5zZWxlY3Q8L3N0cm9uZz4gdGFnIHJlbmRlcnMgYSBzZWxlY3QgY29udHJvbCwKKyAgICBidXQgdGhlIHRhZyBkb2VzIHNvIHdpdGhvdXQgcmVxdWlyaW5nIGEgbG90IG9mIG1hcmt1cCBvciByZWR0YXBlLgorPC9wPgorCis8cHJlPjxjb2RlPiZsdDtzOnNlbGVjdCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsU2VydmVyVHlwZScpfSIKKyAgICBuYW1lPSJzdWJzY3JpcHRpb24udHlwZSIgPHN0cm9uZz5saXN0PSJ0eXBlcyI8L3N0cm9uZz4gLz4KKzwvY29kZT48L3ByZT4KKworPHA+CisgICAgVGhlIGludGVyZXN0aW5nIGF0dHJpYnV0ZSBvZiB0aGUgInNlbGVjdCIgdGFnIGlzICJsaXN0IiwKKyAgICB3aGljaCwgaW4gb3VyIGNhc2UsIHNwZWNpZmllcyBhIHZhbHVlIG9mICJ0eXBlcyIuCisgICAgSWYgd2UgdGFrZSBhbm90aGVyIGxvb2sgYXQgdGhlIFN1YnNjcmlwdGlvbiBhY3Rpb24sCisgICAgd2UgY2FuIHNlZSB0aGF0IGl0IGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIG5hbWVkIFByZXBhcmFibGUKKyAgICBhbmQgcG9wdWxhdGVzIGEgVHlwZXMgcHJvcGVydHkgaW4gYSBtZXRob2QgbmFtZWQgInByZXBhcmUiLgorPC9wPgorCis8aHIvPgorPGg1PlN1YnNjcmlwdGlvbi12YWxpZGF0aW9uLnhtbDwvaDU+Cis8cHJlPjxjb2RlPnB1YmxpYyBjbGFzcyA8c3Ryb25nPlN1YnNjcmlwdGlvbjwvc3Ryb25nPiBleHRlbmRzIE1haWxyZWFkZXJTdXBwb3J0CisgICAgPHN0cm9uZz5pbXBsZW1lbnRzIFByZXBhcmFibGU8L3N0cm9uZz4geworCisgICAgcHJpdmF0ZSBNYXAgdHlwZXMgPSBudWxsOworICAgIHB1YmxpYyBNYXAgPHN0cm9uZz5nZXRUeXBlcygpPC9zdHJvbmc+IHsKKyAgICByZXR1cm4gdHlwZXM7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgPHN0cm9uZz5wcmVwYXJlKCk8L3N0cm9uZz4geworICAgIE1hcCBtID0gbmV3IExpbmtlZEhhc2hNYXAoKTsKKyAgICBtLnB1dCgiaW1hcCIsICJJTUFQIFByb3RvY29sIik7CisgICAgbS5wdXQoInBvcDMiLCAiUE9QMyBQcm90b2NvbCIpOworICAgIHR5cGVzID0gbTsKKyAgICBzZXRIb3N0KGdldFN1YnNjcmlwdGlvbkhvc3QoKSk7CisgICAgfQorCisgICAgLy8gLi4uIDwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSBkZWZhdWx0IEludGVyY2VwdG9yIHN0YWNrIGluY2x1ZGVzIHRoZSA8c3Ryb25nPlByZXBhcmVJbnRlcmNlcHRvcjwvc3Ryb25nPiwKKyAgICB3aGljaCBvYnNlcnZlcyB0aGUgUHJlcGFyYWJsZSBpbnRlcmZhY2UuCis8L3A+CisKKzxoci8+Cis8aDU+UHJlcGFyZUludGVyY2VwdG9yPC9oNT4KKzxwcmU+PGNvZGU+cHVibGljIGNsYXNzIDxzdHJvbmc+UHJlcGFyZUludGVyY2VwdG9yPC9zdHJvbmc+IGV4dGVuZHMgQXJvdW5kSW50ZXJjZXB0b3IgeworCisgICAgcHJvdGVjdGVkIHZvaWQgYWZ0ZXIoQWN0aW9uSW52b2NhdGlvbiBkaXNwYXRjaGVyLCBTdHJpbmcgcmVzdWx0KSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBiZWZvcmUoQWN0aW9uSW52b2NhdGlvbiBpbnZvY2F0aW9uKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICBPYmplY3QgYWN0aW9uID0gaW52b2NhdGlvbi5nZXRBY3Rpb24oKTsKKyAgICA8c3Ryb25nPmlmIChhY3Rpb24gaW5zdGFuY2VvZiBQcmVwYXJhYmxlKSB7CisgICAgICAgICgoUHJlcGFyYWJsZSkgYWN0aW9uKS5wcmVwYXJlKCk7PC9zdHJvbmc+CisgICAgfQorICAgIH0KKyAgICB9PC9jb2RlPjwvcHJlPgorCis8cD4KKyAgICBUaGUgUHJlcGFyZUludGVyY2VwdG9yIGVuc3VyZXMgdGhhdCB0aGUgInByZXBhcmUiIG1ldGhvZCB3aWxsIGFsd2F5cyBiZSBjYWxsZWQKKyAgICBiZWZvcmUgImV4ZWN1dGUiIG9yIGFuIGFsaWFzIG1ldGhvZCBpcyBpbnZva2VkLgorICAgIFdlIHVzZSAicHJlcGFyZSIgdG8gc2V0dXAgdGhlIGxpc3Qgb2YgaXRlbXMgZm9yIHRoZSBzZWxlY3QgbGlzdCB0byBkaXNwbGF5LgorICAgIFdlIGFsc28gdHJhbnNmZXIgdGhlIEhvc3QgcHJvcGVydHkgZnJvbSBvdXIgU3Vic2NyaXB0aW9uIG9iamVjdAorICAgIHRvIGEgbG9jYWwgcHJvcGVydHksIHdoZXJlIGl0IGlzIGVhc2llciB0byBtYW5hZ2UuCis8L3A+CisKKworPGg0PgorICAgIDxhIG5hbWU9IlN1YnNjcmlwdGlvbkFjdGlvbi5qYXZhIiBpZD0iU3Vic2NyaXB0aW9uQWN0aW9uLmphdmEiPlN1YnNjcmlwdGlvbkFjdGlvbi5qYXZhPC9hPgorPC9oND4KKworPHA+CisgICAgTGlrZSBtYW55IGFwcGxpY2F0aW9ucywgdGhlIE1haWxSZWFkZXIgdXNlcyBtYWlubHkgU3RyaW5nIHByb3BlcnRpZXMuCisgICAgT25lIGV4Y2VwdGlvbiBpcyB0aGUgQXV0b0Nvbm5lY3QgcHJvcGVydHkgb2YgdGhlIFN1YnNjcmlwdGlvbiBvYmplY3QuCisgICAgT24gdGhlIEhUTUwgZm9ybSwgdGhlIEF1dG9Db25uZWN0IHByb3BlcnR5IGlzIHJlcHJlc2VudGVkIGJ5IGEgY2hlY2tib3gsCisgICAgYW5kIGNoZWNrYm94ZXMgbmVlZCB0byBiZSBoYW5kbGVkIGRpZmZlcmVudGx5IHRoYXQgb3RoZXIgY29udHJvbHMuCis8L3A+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPmNoZWNrYm94PC9zdHJvbmc+IHN0YXJ0cyBvdXQgYXMgYSBzaW1wbGUgZW5vdWdoIGNvbnRyb2wuCis8L3A+CisKKzxwcmU+PGNvZGU+ICAmbHQ7czpjaGVja2JveCBsYWJlbD0iJXtnZXRUZXh0KCdhdXRvQ29ubmVjdCcpfSIKKyAgICBuYW1lPSJzdWJzY3JpcHRpb24uYXV0b0Nvbm5lY3QiLz48L2NvZGU+PC9wcmU+CisKKzxwPgorICAgIFRoZSBTdWJzY3JpcHRpb24gb2JqZWN0IGhhcyBhIGJvb2xlYW4gQXV0b0Nvbm5lY3QgcHJvcGVydHksCisgICAgYW5kIHRoZSBjaGVja2JveCBzaW1wbHkgaGFzIHRvIHJlcHJlc2VudCBpdHMgc3RhdGUuCisgICAgVGhlIHByb2JsZW0gaXMsIGlmIHlvdSBjbGVhciBhIGNoZWNrYm94LCB0aGUgYnJvd3NlciBjbGllbnQgd2lsbCBub3Qgc3VibWl0IDxlbT5hbnl0aGluZzwvZW0+LgorICAgIE5hZGEuIFppcC4KKyAgICBJdCBpcyBhcyBpZiB0aGUgY2hlY2tib3ggY29udHJvbCBuZXZlciBleGlzdGVkLgorICAgIFRoZSBIVFRQIHByb3RvY29sIGhhcyBubyB3YXkgdG8gYWZmaXJtICJmYWxzZSIuCisgICAgSWYgdGhlIGNvbnRyb2wgaXMgbWlzc2luZywgd2UgbmVlZCB0byBmaWd1cmUgb3V0IGl0J3MgYmVlbiB1bmNsaWNrZWQuCis8L3A+CisKKzxoci8+Cis8aDU+VGlwOjwvaDU+Cis8YmxvY2txdW90ZT4KKyAgICA8cCBjbGFzcz0iaGludCI+CisgICAgICAgIDxzdHJvbmc+Q2hlY2tib3hlczwvc3Ryb25nPiAtCisgICAgICAgIFRoZSBIVE1MIGNoZWNrYm94IGlzIGEgdHJpY2t5IGNvbnRyb2wuCisgICAgICAgIFRoZSBwcm9ibGVtIGlzIHRoYXQsIGFjY29yZGluZyB0byB0aGUgVzNDIHNwZWNpZmljYXRpb24sIGEgdmFsdWUgaXMKKyAgICAgICAgb25seSBndWFyYW50ZWVkIHRvIGJlIHNlbnQKKyAgICAgICAgaWYgdGhlIGNvbnRyb2wgaXMgY2hlY2tlZC4KKyAgICAgICAgSWYgdGhlIGNvbnRyb2wgaXMgbm90IGNoZWNrZWQsIHRoZW4gdGhlIGNvbnRyb2wgbWF5IGJlIG9taXR0ZWQgZnJvbQorICAgICAgICB0aGUgcmVxdWVzdCwgYXMgaWYgaXQgd2FzIG9uIHRoZSBwYWdlLgorICAgICAgICBUaGlzIGNhbiBjYXVzZSBhIHByb2JsZW0gd2l0aCBzZXNzaW9uLXNjb3BlIGNoZWNrYm94ZXMuCisgICAgICAgIE9uY2UgeW91IHNldCB0aGUgY2hlY2tib3ggdG8gdHJ1ZSwgdGhlIGNvbnRyb2wgY2FuJ3Qgc2V0IGl0IHRvIGZhbHNlCisgICAgICAgIGFnYWluLAorICAgICAgICBiZWNhdXNlIGlmIHlvdSB1bmNoZWNrIHRoZSBib3gsIG5vdGhpbmcgaXMgc2VudCwgYW5kIHNvIHRoZSBjb250cm9sCisgICAgICAgIHN0YXlzIGNoZWNrZWQuCisgICAgPC9wPgorPC9ibG9ja3F1b3RlPgorPGhyLz4KKworPHA+CisgICAgVGhlIHNpbXBsZXN0IHNvbHV0aW9uIGlzIHRvIGVtcGxveSBvdXIgb2xkIGZyaWVuZCBQcmVwYXJhYmxlIGFnYWluLgorICAgIEluIHRoZSAicHJlcGFyZSIgbWV0aG9kIGZvciBTdWJzY3JpcHRpb25TYXZlLAorICAgIHdlIGNhbiBzZXQgdGhlIHByb3BlcnR5IHJlcHJlc2VudGVkIGJ5IHRoZSBjaGVja2JveCB0byBmYWxzZS4KKyAgICBJZiB0aGUgY29udHJvbCBpcyBub3Qgc3VibWl0dGVkLCB0aGVuIHRoZSBwcm9wZXJ0eSByZW1haW5zIGZhbHNlLgorICAgIElmIHRoZSBjb250cm9sIGlzIHN1Ym1pdHRlZCwgdGhlbiB0aGUgcHJvcGVydHkgaXMgc2V0IHRvIHRydWUuCis8L3A+CisKKzxoci8+Cis8aDU+U3Vic2NyaXB0aW9uU2F2ZTwvaDU+Cis8cHJlPjxjb2RlPnB1YmxpYyBmaW5hbCBjbGFzcyBTdWJzY3JpcHRpb25TYXZlIGV4dGVuZHMgU3Vic2NyaXB0aW9uIHsKKworICAgIHB1YmxpYyB2b2lkIHByZXBhcmUoKSB7CisgICAgc3VwZXIucHJlcGFyZSgpOworICAgIC8vIGNoZWNrYm94IHdvcmthcm91bmQKKyAgICA8c3Ryb25nPmdldFN1YnNjcmlwdGlvbigpLnNldEF1dG9Db25uZWN0KGZhbHNlKTs8L3N0cm9uZz4KKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICByZXR1cm4gc2F2ZSgpOworICAgIH0KKyAgICB9PC9jb2RlPjwvcHJlPgorPGhyLz4KKworCis8cD4KKyAgICBJZiB3ZSBwcmVzcyB0aGUgU0FWRSBidXR0b24sCisgICAgdGhlIGZvcm0gd2lsbCBiZSBzdWJtaXR0ZWQgdG8gdGhlIFN1YnNjcmlwdGlvblNhdmUgYWN0aW9uLgorICAgIElmIHRoZSB2YWxpZGF0aW9uIHN1Y2NlZWRzLCBhcyB3ZSd2ZSBzZWVuLAorICAgIFN1YnNjcmlwdGlvblNhdmUgd2lsbCBpbnZva2UgdGhlIFN1YnNjcmlwdGlvbi5zYXZlIG1ldGhvZC4KKzwvcD4KKworPGhyLz4KKzxoNT5TdWJzY3JpcHRpb24gc2F2ZSBtZXRob2Q8L2g1PgorPHByZT48Y29kZT5wdWJsaWMgU3RyaW5nIDxzdHJvbmc+c2F2ZTwvc3Ryb25nPigpIHRocm93cyBFeGNlcHRpb24geworCisgICAgaWYgKENvbnN0YW50cy5ERUxFVEUuZXF1YWxzKGdldFRhc2soKSkpIHsKKyAgICA8c3Ryb25nPnJlbW92ZVN1YnNjcmlwdGlvbjwvc3Ryb25nPigpOworICAgIH0KKworICAgIGlmIChDb25zdGFudHMuQ1JFQVRFLmVxdWFscyhnZXRUYXNrKCkpKSB7CisgICAgPHN0cm9uZz5jb3B5U3Vic2NyaXB0aW9uKDwvc3Ryb25nPmdldEhvc3QoKSk7CisgICAgfQorCisgICAgc2F2ZVVzZXIoKTsKKyAgICByZXR1cm4gU1VDQ0VTUzsKKyAgICB9PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+c2F2ZTwvc3Ryb25nPiBtZXRob2QgdXNlcyB0aGUgVGFzayBwcm9wZXJ0eSB0byBoYW5kbGUKKyAgICB0aGUgc3BlY2lhbCBjYXNlcyBvZiBkZWxldGluZyBhbmQgY3JlYXRpbmcsCisgICAgYW5kIHRoZW4gdXBkYXRlcyB0aGUgc3RhdGUgb2YgdGhlIFVzZXIgb2JqZWN0LgorPC9wPgorCis8cD4KKyAgICBUaGUgPHN0cm9uZz5yZW1vdmVTdWJzY3JpcHRpb248L3N0cm9uZz4gbWV0aG9kIGNhbGxzIHRoZSBEQU8gZmFjYWRlLAorICAgIGFuZCB0aGVuIHVwZGF0ZXMgdGhlIGFwcGxpY2F0aW9uIHN0YXRlLgorPC9wPgorCis8aHIvPgorPGg1PnJlbW92ZVN1YnNjcmlwdGlvbjwvaDU+Cis8cHJlPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+cmVtb3ZlU3Vic2NyaXB0aW9uPC9zdHJvbmc+KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgZ2V0VXNlcigpLnJlbW92ZVN1YnNjcmlwdGlvbihnZXRTdWJzY3JpcHRpb24oKSk7CisgICAgZ2V0U2Vzc2lvbigpLnJlbW92ZShDb25zdGFudHMuU1VCU0NSSVBUSU9OX0tFWSk7CisgICAgfTwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPmNvcHlTdWJzY3JpcHRpb248L3N0cm9uZz4gbWV0aG9kIGlzIGEgYml0IG1vcmUgaW50ZXJlc3RpbmcuCisgICAgVGhlIE1haWxSZWFkZXIgREFPIGxheWVyIEFQSSBpbmNsdWRlcyBzb21lIGltbXV0YWJsZSBmaWVsZHMKKyAgICB0aGF0IGNhbid0IGJlIHNldCBvbmNlIHRoZSBvYmplY3QgaXMgY3JlYXRlZC4KKyAgICBCZWNhdXNlIGtleSBmaWVsZHMgYXJlIGltbXV0YWJsZSwKKyAgICB3ZSBjYW4ndCBqdXN0IGNyZWF0ZSBhIFN1YnNjcmlwdGlvbiwgbGV0IHRoZSBmcmFtZXdvcmsgcG9wdWxhdGUgYWxsIHRoZSBmaWVsZHMsCisgICAgYW5kIHRoZW4gc2F2ZSBpdCB3aGVuIHdlIGFyZSBkb25lIC0tIGJlY2F1c2Ugc29tZSBmaWVsZHMgY2FuJ3QgYmUgcG9wdWxhdGVkLAorICAgIGV4Y2VwdCBhdCBjb25zdHJ1Y3Rpb24uCis8L3A+CisKKzxwPgorICAgIE9uZSB3b3JrYXJvdW5kIHdvdWxkIGJlIHRvIGRlY2xhcmUgcHJvcGVydGllcyBvbiB0aGUgQWN0aW9uCisgICAgZm9yIGFsbCB0aGUgcHJvcGVydGllcyB3ZSBuZWVkIHRvIHBhc3MgdG8gdGhlIFN1YnNjcmlwdGlvbiBvciBVc2VyIG9iamVjdHMuCisgICAgV2hlbiB3ZSBhcmUgcmVhZHkgdG8gY3JlYXRlIHRoZSBvYmplY3QsCisgICAgd2UgY291bGQgcGFzcyB0aGUgbmV3IG9iamVjdCB2YWx1ZXMgZnJvbSB0aGUgQWN0aW9uIHByb3BlcnRpZXMuCis8L3A+CisKKzxwPgorICAgIEFub3RoZXIgd29ya2Fyb3VuZCBpcyB0byBkZWNsYXJlIG9ubHkgdGhlIGltbXV0YWJsZSBwcm9wZXJ0aWVzIG9uIHRoZSBBY3Rpb24sCisgICAgYW5kIHRoZW4gdXNlIHdoYXQgd2UgY2FuIGZyb20gdGhlIGRvbWFpbiBvYmplY3QuCis8L3A+CisKKzxwPgorICAgIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1haWxSZWFkZXIgdXRpbGl6ZXMgdGhlIHNlY29uZCBhbHRlcm5hdGl2ZS4KKyAgICBXZSBkZWZpbmUgVXNlciBhbmQgU3Vic2NyaXB0aW9uIG9iamVjdHMgb24gb3VyIGJhc2UgQWN0aW9uLAorICAgIGFuZCBhZGQgb3RoZXIgcHJvcGVydGllcyBvbmx5IGFzIG5lZWRlZC4KKzwvcD4KKworPHA+CisgICAgVG8gYWRkIGEgbmV3IFN1YnNjcmlwdGlvbiBvciBVc2VyLAorICAgIHdlIGNyZWF0ZSBhIGJsYW5rIG9iamVjdCB0byBjYXB0dXJlIHdoYXRldmVyIGZpZWxkcyB3ZSBjYW4uCisgICAgV2hlbiB0aGlzICJpbnB1dCIgb2JqZWN0IHJldHVybnMsIHdlIGNyZWF0ZSBhIG5ldyBvYmplY3QsCisgICAgc2V0dGluZyB0aGUgaW1tdXRhYmxlIGZpZWxkcyB0byBhcHByb3ByaWF0ZSB2YWx1ZXMsCisgICAgYW5kIGNvcHkgb3ZlciB0aGUgcmVzdCBvZiB0aGUgcHJvcGVydGllcy4KKzwvcD4KKworPGhyLz4KKzxoNT5jb3B5U3Vic2NyaXB0aW9uPC9oNT4KKzxwcmU+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5jb3B5U3Vic2NyaXB0aW9uPC9zdHJvbmc+KFN0cmluZyBob3N0KSB7CisgICAgU3Vic2NyaXB0aW9uIGlucHV0ID0gZ2V0U3Vic2NyaXB0aW9uKCk7CisgICAgU3Vic2NyaXB0aW9uIHN1YiA9IGNyZWF0ZVN1YnNjcmlwdGlvbihob3N0KTsKKyAgICBpZiAobnVsbCAhPSBzdWIpIHsKKyAgICA8c3Ryb25nPkJlYW5VdGlscy5zZXRWYWx1ZXM8L3N0cm9uZz4oc3ViLCBpbnB1dCwgbnVsbCk7CisgICAgc2V0U3Vic2NyaXB0aW9uKHN1Yik7CisgICAgc2V0SG9zdChzdWIuZ2V0SG9zdCgpKTsKKyAgICB9CisgICAgfTwvY29kZT48L3ByZT4KKworPHA+CisgICAgT2YgY291cnNlLCB0aGlzIGlzIG5vdCBhIHByZWZlcnJlZCBzb2x1dGlvbiwKKyAgICBidXQgbWVyZWx5IGEgd2F5IHRvIHdvcmsgYXJvdW5kIGFuIGlzc3VlIGluIHRoZSBNYWlsUmVhZGVyIERBTyBBUEkKKyAgICB0aGF0IHdvdWxkIG5vdCBiZSBlYXN5IGZvciB1cyBjaGFuZ2UuCis8L3A+CisKKzxoMz5TdW1tYXJ5PC9oMz4KKworPHA+CisgICAgQXQgdGhpcyBwb2ludCwgd2UndmUgYm9vdGVkIHRoZSBhcHBsaWNhdGlvbiwgbG9nZ2VkIG9uLAorICAgIHJldmlld2VkIGEgUmVnaXN0cmF0aW9uIHJlY29yZCwgYW5kIGVkaXRlZCBhIFN1YnNjcmlwdGlvbi4KKyAgICBPZiBjb3Vyc2UsIHRoZXJlJ3MgbW9yZSwgYnV0IGZyb20gaGVyZSBvbiwgaXQgaXMgbW9zdGx5IG1vcmUgb2YgdGhlIHNhbWUuCisgICAgVGhlIGZ1bGwgc291cmNlIGNvZGUgZm9yIE1haWxSZWFkZXIgaXMKKyAgICA8YSBocmVmPSJodHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld2N2cy5jZ2kvc3RydXRzL3NhbmRib3gvdHJ1bmsvc3RydXRzMi9hcHBzL21haWxyZWFkZXIvIj5hdmFpbGFibGUgb25saW5lPC9hPgorICAgIGFuZCBpbiB0aGUgZGlzdHJpYnV0aW9uLgorPC9wPgorCis8cD4KKyAgICBFbmpveSEKKzwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3dlYmFwcC9zdHJ1dHMtcG93ZXIuZ2lmIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItaWJhdGlzL3NyYy9tYWluL3dlYmFwcC9zdHJ1dHMtcG93ZXIuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmNGU5ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci1pYmF0aXMvc3JjL21haW4vd2ViYXBwL3N0cnV0cy1wb3dlci5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9SRUFETUUudHh0IGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9SRUFETUUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyM2ExZmIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL1JFQURNRS50eHQKQEAgLTAsMCArMSwxOSBAQAorUkVBRE1FLnR4dCAtIG1haWxyZWFkZXIgDQorDQorVGhlIE1haWxSZWFkZXIgZGVtb25zdHJhdGVzIGEgbG9jYWxpemVkIGFwcGxpY2F0aW9uIHdpdGggYSBtYXN0ZXIvY2hpbGQgDQorQ1JVRCB3b3JrZmxvdy4gDQorDQorVGhpcyByZW5kaXRpb24gYWxzbyBkZW1vbnN0cmF0ZXMgdXNpbmcgbXVsdGlwbGUgQWN0aW9uIGNsYXNzZXMgYXMgDQorb3Bwb3NlZCB0byBtdWx0aXBsZSAiYWxpYXMiIG1ldGhvZHMuIEVhY2ggYXBwbGljYXRpb24gImVudGl0eSIgaGFzIA0KK2l0cyBvd24gSmF2YSBwYWNrYWdlLCBhbmQgZWFjaCBjbGFzcyBpbiB0aGUgcGFja2FnZSByZXByZXNlbnRzIGEgY29tbWFuZC4gDQorDQorU2VlIHRoZSBTYW5kYm94IGZvciBvdGhlciBNYWlsUmVhZGVyIGV4YW1wbGVzIHVzaW5nIG90aGVyIGFyY2hpdGVjdHVyZXMuIA0KKw0KKyogaHR0cDovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9zdHJ1dHMvc2FuZGJveC90cnVuay9zdHJ1dHMyL2FwcHMvDQorDQorRm9yIG1vcmUgYWJvdXQgdGhlIE1haWxSZWFkZXIgYXBwbGljYXRvbiBnZW5uZXJhbHksIHZpc2l0IFN0cnV0cyBVbml2ZXJzaXR5Lg0KKw0KKyogaHR0cDovL3d3dy5TdHJ1dHNVbml2ZXJzaXR5Lm9yZy8NCisNCisNCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9wb20ueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9wb20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmMjNlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3BvbS54bWwKQEAgLTAsMCArMSw2MCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9tYXZlbi12NF8wXzAueHNkIj4KKyAgICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisgICAgPHBhcmVudD4KKyAgICAgIDxncm91cElkPm9yZy5hcGFjaGUuc3RydXRzPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+c3RydXRzMi1hcHBzPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+Mi4wLjAtU05BUFNIT1Q8L3ZlcnNpb24+CisgICAgPC9wYXJlbnQ+CisgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5zdHJ1dHM8L2dyb3VwSWQ+CisgICAgPGFydGlmYWN0SWQ+c3RydXRzMi1tYWlscmVhZGVyPC9hcnRpZmFjdElkPgorICAgIDxwYWNrYWdpbmc+d2FyPC9wYWNrYWdpbmc+CisgICAgPG5hbWU+TWFpbFJlYWRlciBFeGFtcGxlIEFwcGxpY2F0aW9uPC9uYW1lPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgCisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICA8Z3JvdXBJZD5qYXZheC5zZXJ2bGV0PC9ncm91cElkPgorICAgICAgICAgICA8YXJ0aWZhY3RJZD5zZXJ2bGV0LWFwaTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgPHZlcnNpb24+Mi40PC92ZXJzaW9uPgorICAgICAgICAgICA8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisKKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgIDxncm91cElkPmhzcWxkYjwvZ3JvdXBJZD4KKyAgICAgICAgICAgPGFydGlmYWN0SWQ+aHNxbGRiPC9hcnRpZmFjdElkPgorICAgICAgICAgICA8dmVyc2lvbj4xLjguMC40PC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICA8Z3JvdXBJZD5jb20uaWJhdGlzPC9ncm91cElkPgorICAgICAgICAgICA8YXJ0aWZhY3RJZD5pYmF0aXMyLXNxbG1hcDwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgPHZlcnNpb24+Mi4xLjcuNTk3PC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisKKyAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgIDxncm91cElkPiR7cG9tLmdyb3VwSWR9PC9ncm91cElkPgorICAgICAgICAgICA8YXJ0aWZhY3RJZD5zdHJ1dHMtbWFpbHJlYWRlci1kYW88L2FydGlmYWN0SWQ+CisgICAgICAgICAgIDx2ZXJzaW9uPjEuMy41PC92ZXJzaW9uPgorICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgCisgICAgPGJ1aWxkPgorICAgICAgICA8cGx1Z2lucz4KKyAgICAgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLm1vcnRiYXkuamV0dHk8L2dyb3VwSWQ+CisgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tamV0dHk2LXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICAgICAgPHNjYW5JbnRlcnZhbFNlY29uZHM+MTA8L3NjYW5JbnRlcnZhbFNlY29uZHM+CisgICAgICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICAgICAgICAgICAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5nZXJvbmltby5zcGVjczwvZ3JvdXBJZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPmdlcm9uaW1vLWoyZWVfMS40X3NwZWM8L2FydGlmYWN0SWQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgICAgICAgICAgICAgICAgICA8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgorICAgICAgICAgICAgICAgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAgICAgICAgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgPC9wbHVnaW5zPgorICAgIDwvYnVpbGQ+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvQXBwbGljYXRpb25MaXN0ZW5lci5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL0FwcGxpY2F0aW9uTGlzdGVuZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2EyNjljCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL0FwcGxpY2F0aW9uTGlzdGVuZXIuamF2YQpAQCAtMCwwICsxLDIzMSBAQAorLyoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDIsMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqICRJZDogQXBwbGljYXRpb25MaXN0ZW5lci5qYXZhIDM3MjA4NyAyMDA2LTAxLTI1IDAzOjM4OjQyWiBjcmFpZ21jYyAkCisgKi8KKworcGFja2FnZSBtYWlscmVhZGVyMjsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uaW1wbC5tZW1vcnkuTWVtb3J5VXNlckRhdGFiYXNlOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0RXZlbnQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dExpc3RlbmVyOworaW1wb3J0IGphdmEuaW8uKjsKKworLyoqCisgKiA8cD48Y29kZT5TZXJ2bGV0Q29udGV4dExpc3RlbmVyPC9jb2RlPiB0aGF0IGluaXRpYWxpemVzIGFuZCBmaW5hbGl6ZXMgdGhlCisgKiBwZXJzaXN0ZW50IHN0b3JhZ2Ugb2YgVXNlciBhbmQgU3VwcG9ydCBpbmZvcm1hdGlvbiBmb3IgdGhlIFN0cnV0cworICogRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbiwgdXNpbmcgYW4gaW4tbWVtb3J5IGRhdGFiYXNlIGJhY2tlZCBieSBhbiBYTUwKKyAqIGZpbGUuPC9wPgorICogPHAvPgorICogPHA+PHN0cm9uZz5JTVBMRU1FTlRBVElPTiBXQVJOSU5HPC9zdHJvbmc+IC0gSWYgdGhpcyB3ZWIgYXBwbGljYXRpb24gaXMgcnVuCisgKiBmcm9tIGEgV0FSIGZpbGUsIG9yIGluIGFub3RoZXIgZW52aXJvbm1lbnQgd2hlcmUgcmVhZGluZyBhbmQgd3JpdGluZyBvZiB0aGUKKyAqIHdlYiBhcHBsaWNhdGlvbiByZXNvdXJjZSBpcyBpbXBvc3NpYmxlLCB0aGUgaW5pdGlhbCBjb250ZW50cyB3aWxsIGJlIGNvcGllZAorICogdG8gYSBmaWxlIGluIHRoZSB3ZWIgYXBwbGljYXRpb24gdGVtcG9yYXJ5IGRpcmVjdG9yeSBwcm92aWRlZCBieSB0aGUKKyAqIGNvbnRhaW5lci4gIFRoaXMgaXMgZm9yIGRlbW9uc3RyYXRpb24gcHVycG9zZXMgb25seSAtIHlvdSBzaG91bGQKKyAqIDxzdHJvbmc+Tk9UPC9zdHJvbmc+IGFzc3VtZSB0aGF0IGZpbGVzIHdyaXR0ZW4gaGVyZSB3aWxsIHN1cnZpdmUgYSByZXN0YXJ0CisgKiBvZiB5b3VyIHNlcnZsZXQgY29udGFpbmVyLjwvcD4KKyAqIDxwLz4KKyAqIDxwPlRoaXMgY2xhc3Mgd2FzIGJvcnJvd2VkIGZyb20gdGhlIFNoYWxlIE1haWxyZWFkZXIuIENoYW5nZXMgd2VyZTo8L3A+CisgKiA8cC8+CisgKiA8dWw+CisgKiA8cC8+CisgKiA8bGk+UGF0aCB0byBkYXRhYmFzZS54bWwgKHVuZGVyIGNsYXNzZXMgaGVyZSkuIDwvbGk+CisgKiA8cC8+CisgKiA8bGk+Q2xhc3MgdG8gc3RvcmUgcHJvdG9jb2wgbGlzdCAoYW4gYXJyYXkgaGVyZSkuIDwvbGk+CisgKiA8cC8+CisgKiA8L3VsPgorICogPHAvPgorICogREVWRUxPUE1FTlQgTk9URSAtIEFub3RoZXIgYXBwcm9hY2ggd291bGQgYmUgdG8gaW5zdGFudGlhdGUgdGhlIGRhdGFiYXNlIHZpYSBTcHJpbmcuCisgKiA8L3A+CisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIEFwcGxpY2F0aW9uTGlzdGVuZXIgaW1wbGVtZW50cyBTZXJ2bGV0Q29udGV4dExpc3RlbmVyIHsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNYW5pZmVzdCBDb25zdGFudHMKKworCisgICAgLyoqCisgICAgICogPHA+QXBwaWNhdGlvbiBzY29wZSBhdHRyaWJ1dGUga2V5IHVuZGVyIHdoaWNoIHRoZSBpbi1tZW1vcnkgdmVyc2lvbiBvZgorICAgICAqIG91ciBkYXRhYmFzZSBpcyBzdG9yZWQuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFCQVNFX0tFWSA9ICJkYXRhYmFzZSI7CisKKworICAgIC8qKgorICAgICAqIDxwPkFwcGxpY2F0aW9uIHNjb3BlIGF0dHJpYnV0ZSBrZXkgdW5kZXIgd2hpY2ggdGhlIHZhbGlkIHNlbGVjdGlvbgorICAgICAqIGl0ZW1zIGZvciB0aGUgcHJvdG9jb2wgcHJvcGVydHkgaXMgc3RvcmVkLjwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQUk9UT0NPTFNfS0VZID0gInByb3RvY29scyI7CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSW5zdGFuY2UgVmFyaWFibGVzCisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSA8Y29kZT5TZXJ2bGV0Q29udGV4dDwvY29kZT4gZm9yIHRoaXMgd2ViIGFwcGxpY2F0aW9uLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFNlcnZsZXRDb250ZXh0IGNvbnRleHQgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiBUaGUge0BsaW5rIE1lbW9yeVVzZXJEYXRhYmFzZX0gb2JqZWN0IHdlIGNvbnN0cnVjdCBhbmQgbWFrZSBhdmFpbGFibGUuCisgICAgICovCisgICAgcHJpdmF0ZSBNZW1vcnlVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiA8cD5Mb2dnaW5nIG91dHB1dCBmb3IgdGhpcyBwbHVnIGluIGluc3RhbmNlLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyh0aGlzLmdldENsYXNzKCkpOworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm9wZXJ0aWVzCisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSB3ZWIgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCBvZiBvdXIgcGVyc2lzdGVudCBkYXRhYmFzZSBzdG9yYWdlCisgICAgICogZmlsZS48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGF0aG5hbWUgPSAiL1dFQi1JTkYvY2xhc3Nlcy9kYXRhYmFzZS54bWwiOworCisgICAgLyoqCisgICAgICogPHA+UmV0dXJuIHRoZSBhcHBsaWNhdGlvbiByZXNvdXJjZSBwYXRoIHRvIHRoZSBkYXRhYmFzZS48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFwcGxpY2F0aW9uIHJlc291cmNlIHBhdGggcGF0aCB0byB0aGUgZGF0YWJhc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhdGhuYW1lKCkgeworICAgICAgICByZXR1cm4gKHRoaXMucGF0aG5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlNldCB0aGUgYXBwbGljYXRpb24gcmVzb3VyY2UgcGF0aCB0byB0aGUgZGF0YWJhc2UuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHBhdGhuYW1lIHRvIHRoZSBkYXRhYmFzZQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhdGhuYW1lKFN0cmluZyBwYXRobmFtZSkgeworICAgICAgICB0aGlzLnBhdGhuYW1lID0gcGF0aG5hbWU7CisgICAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNlcnZsZXRDb250ZXh0TGlzdGVuZXIgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiA8cD5HcmFjZWZ1bGx5IHNodXQgZG93biB0aGlzIGRhdGFiYXNlLCByZWxlYXNpbmcgYW55IHJlc291cmNlcyB0aGF0CisgICAgICogd2VyZSBhbGxvY2F0ZWQgYXQgaW5pdGlhbGl6YXRpb24uPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGV2ZW50IFNlcnZsZXRDb250ZXh0RXZlbnQgdG8gcHJvY2VzcworICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvbnRleHREZXN0cm95ZWQoU2VydmxldENvbnRleHRFdmVudCBldmVudCkgeworCisgICAgICAgIGxvZy5pbmZvKCJGaW5hbGl6aW5nIG1lbW9yeSBkYXRhYmFzZSBwbHVnIGluIik7CisKKyAgICAgICAgaWYgKGRhdGFiYXNlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZGF0YWJhc2UuY2xvc2UoKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgbG9nLmVycm9yKCJDbG9zaW5nIG1lbW9yeSBkYXRhYmFzZSIsIGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoREFUQUJBU0VfS0VZKTsKKyAgICAgICAgY29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoUFJPVE9DT0xTX0tFWSk7CisgICAgICAgIGRhdGFiYXNlID0gbnVsbDsKKyAgICAgICAgY29udGV4dCA9IG51bGw7CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIDxwPkluaXRpYWxpemUgYW5kIGxvYWQgb3VyIGluaXRpYWwgZGF0YWJhc2UgZnJvbSBwZXJzaXN0ZW50CisgICAgICogc3RvcmFnZS48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIGNvbnRleHQgaW5pdGlhbGl6YXRpb24gZXZlbnQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb250ZXh0SW5pdGlhbGl6ZWQoU2VydmxldENvbnRleHRFdmVudCBldmVudCkgeworCisgICAgICAgIGxvZy5pbmZvKCJJbml0aWFsaXppbmcgbWVtb3J5IGRhdGFiYXNlIHBsdWcgaW4gZnJvbSAnIiArCisgICAgICAgICAgICAgICAgcGF0aG5hbWUgKyAiJyIpOworCisgICAgICAgIC8vIFJlbWVtYmVyIG91ciBhc3NvY2lhdGVkIFNlcnZsZXRDb250ZXh0CisgICAgICAgIHRoaXMuY29udGV4dCA9IGV2ZW50LmdldFNlcnZsZXRDb250ZXh0KCk7CisKKyAgICAgICAgLy8gQ29uc3RydWN0IGEgbmV3IGRhdGFiYXNlIGFuZCBtYWtlIGl0IGF2YWlsYWJsZQorICAgICAgICBkYXRhYmFzZSA9IG5ldyBNZW1vcnlVc2VyRGF0YWJhc2UoKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFN0cmluZyBwYXRoID0gY2FsY3VsYXRlUGF0aCgpOworICAgICAgICAgICAgaWYgKGxvZy5pc0RlYnVnRW5hYmxlZCgpKSB7CisgICAgICAgICAgICAgICAgbG9nLmRlYnVnKCIgTG9hZGluZyBkYXRhYmFzZSBmcm9tICciICsgcGF0aCArICInIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkYXRhYmFzZS5zZXRQYXRobmFtZShwYXRoKTsKKyAgICAgICAgICAgIGRhdGFiYXNlLm9wZW4oKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIGxvZy5lcnJvcigiT3BlbmluZyBtZW1vcnkgZGF0YWJhc2UiLCBlKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oIkNhbm5vdCBsb2FkIGRhdGFiYXNlIGZyb20gJyIgKworICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSArICInOiAiICsgZSk7CisgICAgICAgIH0KKyAgICAgICAgY29udGV4dC5zZXRBdHRyaWJ1dGUoREFUQUJBU0VfS0VZLCBkYXRhYmFzZSk7CisKKyAgICB9CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcml2YXRlIE1ldGhvZHMKKworCisgICAgLyoqCisgICAgICogPHA+Q2FsY3VsYXRlIGFuZCByZXR1cm4gYW4gYWJzb2x1dGUgcGF0aG5hbWUgdG8gdGhlIFhNTCBmaWxlIHRvIGNvbnRhaW4KKyAgICAgKiBvdXIgcGVyc2lzdGVudCBzdG9yYWdlIGluZm9ybWF0aW9uLjwvcD4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBjYWxjdWxhdGVQYXRoKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gQ2FuIHdlIGFjY2VzcyB0aGUgZGF0YWJhc2UgdmlhIGZpbGUgSS9PPworICAgICAgICBTdHJpbmcgcGF0aCA9IGNvbnRleHQuZ2V0UmVhbFBhdGgocGF0aG5hbWUpOworICAgICAgICBpZiAocGF0aCAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gKHBhdGgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gRG9lcyBhIGNvcHkgb2YgdGhpcyBmaWxlIGFscmVhZHkgZXhpc3QgaW4gb3VyIHRlbXBvcmFyeSBkaXJlY3RvcnkKKyAgICAgICAgRmlsZSBkaXIgPSAoRmlsZSkKKyAgICAgICAgICAgICAgICBjb250ZXh0LmdldEF0dHJpYnV0ZSgiamF2YXguc2VydmxldC5jb250ZXh0LnRlbXBkaXIiKTsKKyAgICAgICAgRmlsZSBmaWxlID0gbmV3IEZpbGUoZGlyLCAic3RydXRzLWV4YW1wbGUtZGF0YWJhc2UueG1sIik7CisgICAgICAgIGlmIChmaWxlLmV4aXN0cygpKSB7CisgICAgICAgICAgICByZXR1cm4gKGZpbGUuZ2V0QWJzb2x1dGVQYXRoKCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ29weSB0aGUgc3RhdGljIHJlc291cmNlIHRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHJldHVybiBpdHMgcGF0aAorICAgICAgICBJbnB1dFN0cmVhbSBpcyA9CisgICAgICAgICAgICAgICAgY29udGV4dC5nZXRSZXNvdXJjZUFzU3RyZWFtKHBhdGhuYW1lKTsKKyAgICAgICAgQnVmZmVyZWRJbnB1dFN0cmVhbSBiaXMgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbShpcywgMTAyNCk7CisgICAgICAgIEZpbGVPdXRwdXRTdHJlYW0gb3MgPQorICAgICAgICAgICAgICAgIG5ldyBGaWxlT3V0cHV0U3RyZWFtKGZpbGUpOworICAgICAgICBCdWZmZXJlZE91dHB1dFN0cmVhbSBib3MgPSBuZXcgQnVmZmVyZWRPdXRwdXRTdHJlYW0ob3MsIDEwMjQpOworICAgICAgICBieXRlIGJ1ZmZlcltdID0gbmV3IGJ5dGVbMTAyNF07CisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgbiA9IGJpcy5yZWFkKGJ1ZmZlcik7CisgICAgICAgICAgICBpZiAobiA8PSAwKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBib3Mud3JpdGUoYnVmZmVyLCAwLCBuKTsKKyAgICAgICAgfQorICAgICAgICBib3MuY2xvc2UoKTsKKyAgICAgICAgYmlzLmNsb3NlKCk7CisgICAgICAgIHJldHVybiAoZmlsZS5nZXRBYnNvbHV0ZVBhdGgoKSk7CisKKyAgICB9CisKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL0F1dGhlbnRpY2F0aW9uSW50ZXJjZXB0b3IuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9BdXRoZW50aWNhdGlvbkludGVyY2VwdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjI3YzQ1NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9BdXRoZW50aWNhdGlvbkludGVyY2VwdG9yLmphdmEKQEAgLTAsMCArMSwzMyBAQAorcGFja2FnZSBtYWlscmVhZGVyMjsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvbjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25JbnZvY2F0aW9uOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLmludGVyY2VwdG9yLkludGVyY2VwdG9yOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uVXNlcjsKKworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK3B1YmxpYyBjbGFzcyBBdXRoZW50aWNhdGlvbkludGVyY2VwdG9yIGltcGxlbWVudHMgSW50ZXJjZXB0b3IgeworCisgICAgcHVibGljIHZvaWQgZGVzdHJveSgpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBpbml0KCkgeworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgaW50ZXJjZXB0KEFjdGlvbkludm9jYXRpb24gYWN0aW9uSW52b2NhdGlvbikgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgTWFwIHNlc3Npb24gPSBhY3Rpb25JbnZvY2F0aW9uLmdldEludm9jYXRpb25Db250ZXh0KCkuZ2V0U2Vzc2lvbigpOworCisgICAgICAgIFVzZXIgdXNlciA9IChVc2VyKSBzZXNzaW9uLmdldChDb25zdGFudHMuVVNFUl9LRVkpOworCisgICAgICAgIGJvb2xlYW4gaXNBdXRoZW50aWNhdGVkID0gKG51bGwgIT0gdXNlcikgJiYgKG51bGwgIT0gdXNlci5nZXREYXRhYmFzZSgpKTsKKworICAgICAgICBpZiAoIWlzQXV0aGVudGljYXRlZCkgeworICAgICAgICAgICAgcmV0dXJuIEFjdGlvbi5MT0dJTjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBhY3Rpb25JbnZvY2F0aW9uLmludm9rZSgpOworICAgICAgICB9CisKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvQ2hhbmdlUGFzc3dvcmQuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9DaGFuZ2VQYXNzd29yZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliZDk1OGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvQ2hhbmdlUGFzc3dvcmQuamF2YQpAQCAtMCwwICsxLDEwIEBACitwYWNrYWdlIG1haWxyZWFkZXIyOw0KKw0KKy8qKg0KKyAqIDxwPg0KKyAqIFdoZW4gaW1wbGVtZW50ZWQsIGFsbG93IGd1ZXN0IHRvIGNoYW5nZSBwYXNzd29yZCwNCisgKiBnaXZlbiBjb3JyZWN0IGNyZWRlbnRpYWxzLg0KKyAqIDwvcD4NCisgKi8NCitwdWJsaWMgY2xhc3MgQ2hhbmdlUGFzc3dvcmQgZXh0ZW5kcyBNYWlscmVhZGVyU3VwcG9ydCB7DQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9Db25zdGFudHMuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9Db25zdGFudHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWFmZDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL0NvbnN0YW50cy5qYXZhCkBAIC0wLDAgKzEsMTUwIEBACisvKgorICogJElkOiBDb25zdGFudHMuamF2YSAzNjA0NDIgMjAwNS0xMi0zMSAyMDoxMDowNFogaHVzdGVkICQKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBtYWlscmVhZGVyMjsKKworLyoqCisgKiA8cD4gTWFuaWZlc3QgY29uc3RhbnRzIGZvciB0aGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbi4gPC9wPgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgQ29uc3RhbnRzIHsKKworICAgIC8vIC0tIFN0YXRlbWVudHMgLS0KKworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgSW50ZWdlciBEQl9GQUxTRSA9IDA7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBJbnRlZ2VyIERCX1RSVUUgPSAxOworCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9DQUxFX0xJU1QgPSAiTE9DQUxFX0xJU1QiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJFR0lTVFJBVElPTl9JTlNFUlRfQVNTRVJUID0gIlJFR0lTVFJBVElPTl9JTlNFUlRfQVNTRVJUIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBSRUdJU1RSQVRJT05fSU5TRVJUID0gIlJFR0lTVFJBVElPTl9JTlNFUlQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJFR0lTVFJBVElPTl9QQVNTV09SRCA9ICJSRUdJU1RSQVRJT05fUEFTU1dPUkQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJFR0lTVFJBVElPTl9GVUxMTkFNRSA9ICJSRUdJU1RSQVRJT05fRlVMTE5BTUUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJFR0lTVFJBVElPTl9FRElUID0gIlJFR0lTVFJBVElPTl9FRElUIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBSRUdJU1RSQVRJT05fVVBEQVRFID0gIlJFR0lTVFJBVElPTl9VUERBVEUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVQlNDUklQVElPTl9JTlNFUlRfQVNTRVJUID0gIlNVQlNDUklQVElPTl9JTlNFUlRfQVNTRVJUIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTVUJTQ1JJUFRJT05fSU5TRVJUID0gIlNVQlNDUklQVElPTl9JTlNFUlQiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFNVQlNDUklQVElPTl9MSVNUID0gIlNVQlNDUklQVElPTl9MSVNUIjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBTVUJTQ1JJUFRJT05fRURJVCA9ICJTVUJTQ1JJUFRJT05fRURJVCI7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1VCU0NSSVBUSU9OX1VQREFURSA9ICJTVUJTQ1JJUFRJT05fVVBEQVRFIjsKKworICAgIC8vIC0tIFRva2VucyAtLQorCisgICAgLyoqCisgICAgICogPHA+IFRoZSB0b2tlbiByZXByZXNlbnRpbmcgYSAiY2FuY2VsIiByZXF1ZXN0LiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0FOQ0VMID0gImNhbmNlbCI7CisKKyAgICAvKioKKyAgICAgKiA8cD4gVGhlIHRva2VuIHJlcHJlc2VudGluZyBhICJjcmVhdGUiIHRhc2suIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDUkVBVEUgPSAiQ3JlYXRlIjsKKworICAgIC8qKgorICAgICAqIDxwPiBUaGUgYXBwbGljYXRpb24gc2NvcGUgYXR0cmlidXRlIHVuZGVyIHdoaWNoIG91ciB1c2VyIGRhdGFiYXNlIGlzCisgICAgICogc3RvcmVkLiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREFUQUJBU0VfS0VZID0gImRhdGFiYXNlIjsKKworICAgIC8qKgorICAgICAqIDxwPiBUaGUgdG9rZW4gcmVwcmVzZW50aW5nIGEgImVkaXQiIHRhc2suIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBERUxFVEUgPSAiRGVsZXRlIjsKKworICAgIC8qKgorICAgICAqIDxwPiBUaGUgdG9rZW4gcmVwcmVzZW50aW5nIGEgImVkaXQiIHRhc2suIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFRElUID0gIkVkaXQiOworCisgICAgLyoqCisgICAgICogPHA+IFRoZSBwYWNrYWdlIG5hbWUgZm9yIHRoaXMgYXBwbGljYXRpb24uIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQQUNLQUdFID0gIm9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlciI7CisKKyAgICAvKioKKyAgICAgKiA8cD4gVGhlIHNlc3Npb24gc2NvcGUgYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZSBTdXBwb3J0IG9iamVjdAorICAgICAqIGN1cnJlbnRseSBzZWxlY3RlZCBieSBvdXIgbG9nZ2VkLWluIFVzZXIgaXMgc3RvcmVkLiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU1VCU0NSSVBUSU9OX0tFWSA9ICJzdWJzY3JpcHRpb24iOworCisgICAgLyoqCisgICAgICogPHA+IFRoZSBzZXNzaW9uIHNjb3BlIGF0dHJpYnV0ZSB1bmRlciB3aGljaCB0aGUgVXNlciBvYmplY3QgZm9yIHRoZQorICAgICAqIGN1cnJlbnRseSBsb2dnZWQgaW4gdXNlciBpcyBzdG9yZWQuIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBVU0VSX0tFWSA9ICJ1c2VyIjsKKworICAgIC8qKgorICAgICAqIDxwPlRoZSB0b2tlbiByZXByZXNlbnRpbmcgdGhlICJIb3N0IiBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBIT1NUID0gImhvc3QiOworCisgICAgLy8gLS0tLSBFcnJvciBNZXNzYWdlcyAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogQSBzdGF0aWMgbWVzc2FnZSBpbiBjYXNlIG1lc3NhZ2UgcmVzb3VyY2UgaXMgbm90IGxvYWRlZC4KKyAgICAgKiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRVJST1JfTUVTU0FHRVNfTk9UX0xPQURFRCA9CisgICAgICAgICAgICAiRVJST1I6ICBNZXNzYWdlIHJlc291cmNlcyBub3QgbG9hZGVkIC0tIGNoZWNrIHNlcnZsZXQgY29udGFpbmVyIGxvZ3MgZm9yIGVycm9yIG1lc3NhZ2VzLiI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogQSBzdGF0aWMgbWVzc2FnZSBpbiBjYXNlIGRhdGFiYXNlIHJlc291cmNlIGlzIG5vdCBsb2FkZWQuCisgICAgICogPHAvPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVSUk9SX0RBVEFCQVNFX05PVF9MT0FERUQgPQorICAgICAgICAgICAgIkVSUk9SOiAgVXNlciBkYXRhYmFzZSBub3QgbG9hZGVkIC0tIGNoZWNrIHNlcnZsZXQgY29udGFpbmVyIGxvZ3MgZm9yIGVycm9yIG1lc3NhZ2VzLiI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogQSBzdGFuZGFyZCBrZXkgZnJvbSB0aGUgbWVzc2FnZSByZXNvdXJjZXMgZmlsZSwgdG8gdGVzdCBpZiBpdCBpcyBhdmFpbGFibGUuCisgICAgICogPHAvPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVSUk9SX0RBVEFCQVNFX01JU1NJTkcgPSAiZXJyb3IuZGF0YWJhc2UubWlzc2luZyI7CisKKyAgICAvKioKKyAgICAgKiA8cC8+CisgICAgICogQSAibWFnaWMiIHVzZXJuYW1lIHRvIHRyaWdnZXIgYW4gRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIGZvciB0ZXN0aW5nLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFWFBJUkVEX1BBU1NXT1JEX0VYQ0VQVElPTiA9ICJFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24iOworCisgICAgLyoqCisgICAgICogPHAvPgorICAgICAqIE5hbWUgb2YgZmllbGQgdG8gYXNzb2NpYXRlIHdpdGggYXV0aGVudGlmaWNhdGlvbiBlcnJvcnMuCisgICAgICogPHAvPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBBU1NXT1JEX01JU01BVENIX0ZJRUxEID0gInBhc3N3b3JkIjsKKworICAgIC8qKgorICAgICAqIDxwLz4KKyAgICAgKiBBIHN0YXRpYyBtZXNzYWdlIGluIGNhc2UgbWVzc2FnZSByZXNvdXJjZSBpcyBub3QgbG9hZGVkLgorICAgICAqIDwvcD4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9JTlZBTElEX1dPUktGTE9XID0KKyAgICAgICAgICAgICJFUlJPUjogIEFjdGlvbiBpcyBiZWluZyBleGVjdXRlZCBvdXQgb2Ygc2VxdWVuY2UhIjsKKworICAgIC8vIC0tLS0gTG9nIE1lc3NhZ2VzIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPiBNZXNzYWdlIHRvIGxvZyBpZiBzYXZpbmcgYSB1c2VyIGZhaWxzLiA8L3A+CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9HX0RBVEFCQVNFX1NBVkVfRVJST1IgPQorICAgICAgICAgICAgIiBVbmV4cGVjdGVkIGVycm9yIHdoZW4gc2F2aW5nIFVzZXI6ICI7CisKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL0xvZ29mZi5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL0xvZ29mZi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkODgzOTMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTG9nb2ZmLmphdmEKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqICRJZDogTG9nb25BY3Rpb24uamF2YSAzNjA0NDIgMjAwNS0xMi0zMSAyMDoxMDowNFogaHVzdGVkICQKKyAqCisgKiBDb3B5cmlnaHQgMjAwMC0yMDA0IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBtYWlscmVhZGVyMjsKKworLyoqCisgKiA8cD4gTG9nIHVzZXIgb3V0IG9mIHRoZSBjdXJyZW50IHNlc3Npb24uIDwvcD4KKyAqLworcHVibGljIGNsYXNzIExvZ29mZiBleHRlbmRzIE1haWxyZWFkZXJTdXBwb3J0IHsKKworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHsKKyAgICAgICAgc2V0VXNlcihudWxsKTsKKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL01haWxyZWFkZXJTdXBwb3J0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTWFpbHJlYWRlclN1cHBvcnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjRiNjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL01haWxyZWFkZXJTdXBwb3J0LmphdmEKQEAgLTAsMCArMSw1NTggQEAKKy8qCisgKiAkSWQ6IEJhc2VBY3Rpb24uamF2YSAzNjA0NDIgMjAwNS0xMi0zMSAyMDoxMDowNFogaHVzdGVkICQKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBtYWlscmVhZGVyMjsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkudXRpbC5CZWFuVXRpbHM7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uU3VwcG9ydDsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5Nb2RlbERyaXZlbjsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlN1YnNjcmlwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyRGF0YWJhc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5pbXBsLm1lbW9yeS5NZW1vcnlTdWJzY3JpcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5pbXBsLm1lbW9yeS5NZW1vcnlVc2VyOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5pbnRlcmNlcHRvci5BcHBsaWNhdGlvbkF3YXJlOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5pbnRlcmNlcHRvci5TZXNzaW9uQXdhcmU7CisKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCisvKioKKyAqIDxwPiBCYXNlIEFjdGlvbiBmb3IgTWFpbHJlYWRlclN1cHBvcnQgYXBwbGljYXRpb24uIDwvcD4KKyAqIDxwLz4KKyAqIDxwPiBOb3RlIHRoYXQgdGhpcyBjbGFzcyBkb2VzIE5PVCBpbXBsZW1lbnQgbW9kZWwgZHJpdmVuIGJlY2F1c2Ugb2YgdGhlIHdheQorICogdGhlIHByZS1leGlzdGluZyBtb2RlbCBpcyBkZXNpZ25lZC4gVGhlIE1haWxSZWFkZXIgREFPIGluY2x1ZGVzIGltbXV0YWJsZQorICogZmllbGRzIHRoYXQgY2FuIG9ubHkgYmUgc2V0IG9uIGNvbnN0cnVjdGlvbiwgYW5kIHNvbWUgb2JqZWN0cyBkbyBub3QgaGF2ZSBhCisgKiBkZWZhdWx0IGNvbnN0cnVjdGlvbi4gT25lIGFwcHJvYWNoIHdvdWxkIGJlIHRvIG1pcnJvciBhbGwgdGhlIERBTworICogcHJvcGVydGllcyBvbiB0aGUgQWN0aW9ucy4gQXMgYW4gYWx0ZXJuYXRpdmUsIHRoaXMgaW1wbGVtZW50YXRpb25zIHVzZXMgdGhlCisgKiBEQU8gcHJvcGVydGllcyB3aGVyZSBwb3NzaWJsZSwgYW5kIHVzZXMgbG9jYWwgQWN0aW9uIHByb3BlcnRpZXMgb25seSBhcworICogbmVlZGVkLiBUbyBjcmVhdGUgbmV3IG9iamVjdHMsIGEgYmxhbmsgdGVtcG9yYXJ5IG9iamVjdCBpcyBjb25zdHJ1Y3RlZCwgYW5kCisgKiB0aGUgcGFnZSB1c2VzIGEgbWl4IG9mIGxvY2FsIEFjdGlvbiBwcm9wZXJ0aWVzIGFuZCBEQU8gcHJvcGVydGllcy4gV2hlbiB0aGUKKyAqIG5ldyBvYmplY3QgaXMgdG8gYmUgc2F2ZWQsIHRoZSBsb2NhbCBBY3Rpb24gcHJvcGVydGllcyBhcmUgdXNlZCB0byBjcmVhdGUKKyAqIHRoZSBvYmplY3QgdXNpbmcgdGhlIERBTyBmYWN0b3J5IG1ldGhvZHMsIHRoZSBpbnB1dCB2YWx1ZXMgYXJlIGNvcGllZCBmcm9tCisgKiB0aGUgdGVtcG9yYXJ5IG9iamVjdCwgYW5kIHRoZSBuZXcgb2JqZWN0IGlzIHNhdmVkLiBJdCdzIGtsdWRnZSwgYnV0IGl0CisgKiBhdm9pZHMgY3JlYXRpbmcgdW5uZWNlc3NhcnkgbG9jYWwgcHJvcGVydGllcy4gUGljayB5b3VyIHBvaXNvbi48L3A+CisgKi8KK3B1YmxpYyBjbGFzcyBNYWlscmVhZGVyU3VwcG9ydCBleHRlbmRzIEFjdGlvblN1cHBvcnQKKyAgICAgICAgaW1wbGVtZW50cyBTZXNzaW9uQXdhcmUsIEFwcGxpY2F0aW9uQXdhcmUgeworCisgICAgLyoqCisgICAgICogUmV0dXJuIENBTkNFTCBzbyBhcHJvcHJpYXRlIHJlc3VsdCBjYW4gYmUgc2VsZWN0ZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuICJjYW5jZWwiIHNvIGFwcm9wcmlhdGUgcmVzdWx0IGNhbiBiZSBzZWxlY3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGNhbmNlbCgpIHsKKyAgICAgICAgcmV0dXJuIENvbnN0YW50cy5DQU5DRUw7CisgICAgfQorCisgICAgLy8gLS0tLSBBcHBsaWNhdGlvbkF3YXJlIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPkZpZWxkIHRvIHN0b3JlIGFwcGxpY2F0aW9uIGNvbnRleHQgb3IgaXRzIHByb3h5LjwvcD4KKyAgICAgKiA8cC8+CisgICAgICogPHA+VGhlIGFwcGxpY2F0aW9uIGNvbnRleHQgbGFzdHMgZm9yIHRoZSBsaWZlIG9mIHRoZSBhcHBsaWNhdGlvbi4gQQorICAgICAqIHJlZmVyZW5jZSB0byB0aGUgZGF0YWJhc2UgaXMgc3RvcmVkIGluIHRoZSBhcHBsaWNhdGlvbiBjb250ZXh0IGF0CisgICAgICogc3RhcnR1cC48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgYXBwbGljYXRpb247CisKKyAgICAvKioKKyAgICAgKiA8cD5TdG9yZSBhIG5ldyBhcHBsaWNhdGlvbiBjb250ZXh0LjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZSBBIE1hcCByZXByZXNlbnRpbmcgYXBwbGljYXRpb24gc3RhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRBcHBsaWNhdGlvbihNYXAgdmFsdWUpIHsKKyAgICAgICAgYXBwbGljYXRpb24gPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIGFwcGxpY2F0aW9uIGNvbnRleHQuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBNYXAgZ2V0QXBwbGljYXRpb24oKSB7CisgICAgICAgIHJldHVybiBhcHBsaWNhdGlvbjsKKyAgICB9CisKKyAgICAvLyAtLS0tIFNlc3Npb25Bd2FyZSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5GaWVsZCB0byBzdG9yZSBzZXNzaW9uIGNvbnRleHQsIG9yIGl0cyBwcm94eS48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgc2Vzc2lvbjsKKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIGEgbmV3IHNlc3Npb24gY29udGV4dC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgQSBNYXAgcmVwcmVzZW50aW5nIHNlc3Npb24gc3RhdGUKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZXNzaW9uKE1hcCB2YWx1ZSkgeworICAgICAgICBzZXNzaW9uID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSBzZXNzaW9uIGNvbnRleHQuPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBzZXNzaW9uIGNvbnRleHQKKyAgICAgKi8KKyAgICBwdWJsaWMgTWFwIGdldFNlc3Npb24oKSB7CisgICAgICAgIHJldHVybiBzZXNzaW9uOworICAgIH0KKworICAgIC8vIC0tLS0gVGFzayBwcm9wZXJ0eSAodXRpbGl6ZWQgYnkgVUkpIC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPkZpZWxkIHRvIHN0b3JlIHdvcmtmbG93IHRhc2suPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD5UaGUgVGFzayBpcyB1c2VkIHRvIHRyYWNrIHRoZSBzdGF0ZSBvZiB0aGUgQ1JVRCB3b3JrZmxvd3MuIEl0IGNhbiBiZQorICAgICAqIHNldCB0byBDb25zdGFudC5DUkVBVEUsIENvbnN0YW50LkVESVQsIG9yIENvbnN0YW50LkRFTEVURSBhcworICAgICAqIG5lZWRlZC48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgdGFzayA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgd29ya2xvdyB0YXNrLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gUmV0dXJucyB0aGUgdGFzay4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRhc2soKSB7CisgICAgICAgIHJldHVybiB0YXNrOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIG5ldyB3b3JrZmxvdyB0YXNrLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdGFzayB0byBzZXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGFzayhTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgdGFzayA9IHZhbHVlOworICAgIH0KKworICAgIC8vIC0tLS0gVG9rZW4gcHJvcGVydHkgKHV0aWxpemVkIGJ5IFVJKSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5GaWVsZCB0byBzdG9yZSBkb3VibGUtc3VibWl0IGd1YXJkLjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyB0b2tlbiA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgVG9rZW4uPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSB0b2tlbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRva2VuKCkgeworICAgICAgICByZXR1cm4gdG9rZW47CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U3RvcmUgbmV3IFRva2VuLjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgdG9rZW4gdG8gc2V0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRva2VuKFN0cmluZyB2YWx1ZSkgeworICAgICAgICB0b2tlbiA9IHZhbHVlOworICAgIH0KKworICAgIC8vIC0tLS0gSG9zdCBwcm9wZXJ0eSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5GaWVsZCB0byBzdG9yZSBTdXBwb3J0IGhvc3QuPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD4gVGhlIGhvc3QgaXMgYW4gaW1tdXRhYmxlIHByb3BlcnR5IG9mIHRoZSBTdWJzY3J0aW9uIERBUCBvYmplY3QsIHNvCisgICAgICogd2UgbmVlZCB0byBzdG9yZSBpdCBsb2NhbGx5IHVudGlsIHdlIGFyZSByZWFkeSB0byBjcmVhdGUgdGhlCisgICAgICogU3VwcG9ydC4gPC9wPgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGhvc3Q7CisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIHRTdWJzY3JpcHRpb24gaG9zdC48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGhvc3QgcHJvcGVydHkKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEhvc3QoKSB7CisgICAgICAgIHJldHVybiBob3N0OworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIG5ldyBTdXBwb3J0IGhvc3QuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHZhbHVlCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SG9zdChTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgaG9zdCA9IHZhbHVlOworICAgIH0KKworICAgIC8vIC0tLS0gUGFzc3dvcmQgcHJvcGVydHkgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+RmllbGQgdG8gc3RvcmUgVXNlciBwYXNzd29yZCBwcm9wZXJ0eS48L3A+CisgICAgICogPHAvPgorICAgICAqIDxwPlRoZSBVc2VyIERBTyBvYmplY3QgcGFzc3dvcmQgcHJvZXJ0eSBpcyBpbW11dGFibGUsIHNvIHdlIHN0b3JlIGl0CisgICAgICogbG9jYWxseSB1bnRpbCB3ZSBhcmUgcmVhZHkgdG8gY3JlYXRlIHRoZSBvYmplY3QuPC9wPgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHBhc3N3b3JkID0gbnVsbDsKKworCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSBVc2VyIHBhc3N3b3JkPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBwYXNzd29yZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkKCkgeworICAgICAgICByZXR1cm4gcGFzc3dvcmQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U3RvcmUgbmV3IFVzZXIgUGFzc3dvcmQ8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHBhc3N3b3JkIHRvIHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYXNzd29yZChTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgcGFzc3dvcmQgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvLyAtLS0tIFBhc3N3b3JkMiBwcm9wZXJ0eSAoY29uZmlybWF0aW9uKSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5GaWVsZCB0byBzdG9yZSB0aGUgVXNlciBwYXNzd29yZCBjb25maXJtYXRpb24uPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD5XaGVuIGEgVXNlciBvYmplY3QgaXMgY3JlYXRlZCwgd2UgYXNrIHRoZSBjbGllbnQgdG8gZW50ZXIgdGhlCisgICAgICogcGFzc3dvcmQgdHdpY2UsIHRvIGhlbHAgZW5zdXJlIHRoZSBwYXNzd29yZCBpcyBiZWluZyB0eXBlZAorICAgICAqIGNvcnJlY3RseS48L3A+CisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQyID0gbnVsbDsKKworCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSB0aGUgVXNlciBwYXNzd29yZCBjb25maXJtYXRpb24uPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBSZXR1cm5zIHRoZSBjb25maXJtYXRpb25wYXNzd29yZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhc3N3b3JkMigpIHsKKyAgICAgICAgcmV0dXJuIHBhc3N3b3JkMjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TdG9yZSBhIG5ldyBVc2VyIHBhc3N3b3JkIGNvbmZpcm1hdGlvbi48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIGNvbmZpcm1hdGlvbiBwYXNzd29yZCB0byBzZXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGFzc3dvcmQyKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBwYXNzd29yZDIgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvLyAtLS0tIFVzZXJuYW1lIHByb3BlcnR5IC0tLS0KKworICAgIC8qKgorICAgICAqIDxwPkZpZWxkIHRvIHN0b3JlIFVzZXIgdXNlcm5hbWUuPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD5UaGUgVXNlciBEQU8gb2JqZWN0IHBhc3N3b3JkIHByb2VydHkgaXMgaW1tdXRhYmxlLCBzbyB3ZSBzdG9yZSBpdAorICAgICAqIGxvY2FsbHkgdW50aWwgd2UgYXJlIHJlYWR5IHRvIGNyZWF0ZSB0aGUgb2JqZWN0LjwvcD4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyB1c2VybmFtZSA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIDxwPlByb3ZpZGUgVXNlciB1c2VybmFtZS48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFJldHVybnMgdGhlIFVzZXIgdXNlcm5hbWUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRVc2VybmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIHVzZXJuYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIG5ldyBVc2VyIHVzZXJuYW1lPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIHZhbHVlIFRoZSB1c2VybmFtZSB0byBzZXQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VXNlcm5hbWUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHVzZXJuYW1lID0gdmFsdWU7CisgICAgfQorCisgICAgLy8gLS0tLSBEYXRhYmFzZSBwcm9wZXJ0eSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIHJlZmVyZW5jZSB0byBVc2VyRGF0YWJhc2UsIG9yIG51bGwgaWYgdGhlIGRhdGFiYXNlIGlzIG5vdAorICAgICAqIGF2YWlsYWJsZS4gPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGUgVXNlckRhdGFiYXNlIG9yIG51bGwgaWYgdGhlIGRhdGFiYXNlIGlzIG5vdAorICAgICAqICAgICAgICAgYXZhaWxhYmxlCisgICAgICovCisgICAgcHVibGljIFVzZXJEYXRhYmFzZSBnZXREYXRhYmFzZSgpIHsKKyAgICAgICAgT2JqZWN0IGRiID0gZ2V0QXBwbGljYXRpb24oKS5nZXQoQ29uc3RhbnRzLkRBVEFCQVNFX0tFWSk7CisgICAgICAgIGlmIChkYiA9PSBudWxsKSB7CisgICAgICAgICAgICB0aGlzLmFkZEFjdGlvbkVycm9yKGdldFRleHQoImVycm9yLmRhdGFiYXNlLm1pc3NpbmciKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChVc2VyRGF0YWJhc2UpIGRiOworICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPlN0b3JlIGEgbmV3IHJlZmVyZW5jZSB0byBVc2VyRGF0YWJhc2U8L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0YWJhc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXREYXRhYmFzZShVc2VyRGF0YWJhc2UgZGF0YWJhc2UpIHsKKyAgICAgICAgZ2V0QXBwbGljYXRpb24oKS5wdXQoQ29uc3RhbnRzLkRBVEFCQVNFX0tFWSwgZGF0YWJhc2UpOworICAgIH0KKworICAgIC8vIC0tLS0gVXNlciBwcm9wZXJ0eSAtLS0tCisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIHJlZmVyZW5jZSB0byBVc2VyIG9iamVjdCBmb3IgYXV0aGVudGljYXRlZCB1c2VyLjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVXNlciBvYmplY3QgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgVXNlciBnZXRVc2VyKCkgeworICAgICAgICByZXR1cm4gKFVzZXIpIGdldFNlc3Npb24oKS5nZXQoQ29uc3RhbnRzLlVTRVJfS0VZKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5TdG9yZSBuZXcgcmVmZXJlbmNlIHRvIFVzZXIgT2JqZWN0LjwvcD4KKyAgICAgKgorICAgICAqIEBwYXJhbSB1c2VyIFVzZXIgb2JqZWN0IGZvciBhdXRoZW50aWNhdGVkIHVzZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRVc2VyKFVzZXIgdXNlcikgeworICAgICAgICBnZXRTZXNzaW9uKCkucHV0KENvbnN0YW50cy5VU0VSX0tFWSwgdXNlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+T2J0YWluIFVzZXIgb2JqZWN0IGZyb20gZGF0YWJhc2UsIG9yIHJldHVybiBudWxsIGlmIHRoZSBjcmVkZW50aWFscworICAgICAqIGFyZSBub3QgZm91bmQgb3IgaW52YWxpZC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gdXNlcm5hbWUgVXNlciB1c2VybmFtZQorICAgICAqIEBwYXJhbSBwYXNzd29yZCBVc2VyIHBhc3N3b3JkCisgICAgICogQHJldHVybiBVc2VyIG9iamVjdCBvciBudWxsIGlmIG5vdCBmb3VuZAorICAgICAqIEB0aHJvd3MgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIFVzZXIgZmluZFVzZXIoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpCisgICAgICAgICAgICB0aHJvd3MgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIHsKKyAgICAgICAgLy8gRklYTUU6IFN0dXBpZCB0ZXN0aW5nIGhhY2sgdG8gY29tcGVuc2F0ZSBmb3IgaW5hZGVxdWF0ZSBEQU8gbGF5ZXIKKyAgICAgICAgaWYgKENvbnN0YW50cy5FWFBJUkVEX1BBU1NXT1JEX0VYQ0VQVElPTi5lcXVhbHModXNlcm5hbWUpKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uKENvbnN0YW50cy5FWFBJUkVEX1BBU1NXT1JEX0VYQ0VQVElPTik7CisgICAgICAgIH0KKworICAgICAgICBVc2VyIHVzZXIgPSBnZXREYXRhYmFzZSgpLmZpbmRVc2VyKHVzZXJuYW1lKTsKKyAgICAgICAgaWYgKCh1c2VyICE9IG51bGwpICYmICF1c2VyLmdldFBhc3N3b3JkKCkuZXF1YWxzKHBhc3N3b3JkKSkgeworICAgICAgICAgICAgdXNlciA9IG51bGw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHVzZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhpcy5hZGRGaWVsZEVycm9yKENvbnN0YW50cy5QQVNTV09SRF9NSVNNQVRDSF9GSUVMRCwKKyAgICAgICAgICAgICAgICAgICAgZ2V0VGV4dCgiZXJyb3IucGFzc3dvcmQubWlzbWF0Y2giKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHVzZXI7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+PGNvZGU+TG9nPC9jb2RlPiBpbnN0YW5jZSBmb3IgdGhpcyBhcHBsaWNhdGlvbi4gPC9wPgorICAgICAqLworICAgIHByb3RlY3RlZCBMb2cgbG9nID0gTG9nRmFjdG9yeS5nZXRMb2coQ29uc3RhbnRzLlBBQ0tBR0UpOworCisgICAgLyoqCisgICAgICogPHA+IFBlcnNpc3QgdGhlIFVzZXIgb2JqZWN0LCBpbmNsdWRpbmcgc3Vic2NyaXB0aW9ucywgdG8gdGhlIGRhdGFiYXNlLgorICAgICAqIDwvcD4KKyAgICAgKgorICAgICAqIEB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbiBvbiBkYXRhYmFzZSBlcnJvcgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNhdmVVc2VyKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBnZXREYXRhYmFzZSgpLnNhdmUoKTsKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gQ29uc3RhbnRzLkxPR19EQVRBQkFTRV9TQVZFX0VSUk9SICsgZ2V0VXNlcigpCisgICAgICAgICAgICAgICAgICAgIC5nZXRVc2VybmFtZSgpOworICAgICAgICAgICAgbG9nLmVycm9yKG1lc3NhZ2UsIGUpOworICAgICAgICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihtZXNzYWdlLCBlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNyZWF0ZUlucHV0VXNlcigpIHsKKyAgICAgICAgVXNlciB1c2VyID0gbmV3IE1lbW9yeVVzZXIobnVsbCwgbnVsbCk7CisgICAgICAgIHNldFVzZXIodXNlcik7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+IFZlcmlmeSBpbnB1dCBmb3IgY3JlYXRpbmcgYSBuZXcgdXNlciwgY3JlYXRlIHRoZSB1c2VyLCBhbmQgcHJvY2VzcworICAgICAqIHRoZSBsb2dpbi4gPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBBIG5ldyBVc2VyIGFuZCBlbXB0eSBFcnJvcnMgaWYgY3JlYXRlIHN1Y2NlZWRzLCBvciBudWxsIGFuZAorICAgICAqICAgICAgICAgRXJyb3JzIGlmIGNyZWF0ZSBmYWlscworICAgICAqLworICAgIHB1YmxpYyBVc2VyIGNyZWF0ZVVzZXIoU3RyaW5nIHVzZXJuYW1lLCBTdHJpbmcgcGFzc3dvcmQpIHsKKworICAgICAgICBVc2VyRGF0YWJhc2UgZGF0YWJhc2UgPSBnZXREYXRhYmFzZSgpOworICAgICAgICBVc2VyIHVzZXI7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHVzZXIgPSBkYXRhYmFzZS5maW5kVXNlcih1c2VybmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBjYXRjaCAoRXhwaXJlZFBhc3N3b3JkRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgIHVzZXIgPSBnZXRVc2VyKCk7IC8vIEp1c3Qgc28gdGhhdCBpdCBpcyBub3QgbnVsbAorICAgICAgICB9CisKKyAgICAgICAgaWYgKHVzZXIgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhpcy5hZGRGaWVsZEVycm9yKCJ1c2VybmFtZSIsICJlcnJvci51c2VybmFtZS51bmlxdWUiKTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGRhdGFiYXNlLmNyZWF0ZVVzZXIodXNlcm5hbWUpOworICAgIH0KKworICAgIC8vIFNpbmNlIHVzZXIudXNlcm5hbWUgaXMgaW1tdXRhYmxlLCB3ZSBoYXZlIHRvIHVzZSBzb21lIGxvY2FsIHByb3BlcnRpZXMKKworICAgIC8qKgorICAgICAqIDxwPlVzZSB0aGUgY3VycmVudCBVc2VyIG9iamVjdCB0byBjcmVhdGUgYSBuZXcgVXNlciBvYmplY3QsIGFuZCBtYWtlCisgICAgICogdGhlIG5ldyBVc2VyIG9iamVjdCB0aGUgYXV0aGVudGljYXRlZCB1c2VyLjwvcD4KKyAgICAgKiA8cC8+CisgICAgICogPHA+VGhlICJjdXJyZW50IiBVc2VyIG9iamVjdCBpcyB1c3VhbGx5IGEgdGVtcG9yYXJ5IG9iamVjdCBiZWluZyB1c2VkCisgICAgICogdG8gY2FwdHVyZSBpbnB1dC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gX3VzZXJuYW1lIFVzZXIgdXNlcm5hbWUKKyAgICAgKiBAcGFyYW0gX3Bhc3N3b3JkIFVzZXIgcGFzc3dvcmQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBjb3B5VXNlcihTdHJpbmcgX3VzZXJuYW1lLCBTdHJpbmcgX3Bhc3N3b3JkKSB7CisgICAgICAgIFVzZXIgaW5wdXQgPSBnZXRVc2VyKCk7CisgICAgICAgIGlucHV0LnNldFBhc3N3b3JkKF9wYXNzd29yZCk7CisgICAgICAgIFVzZXIgdXNlciA9IGNyZWF0ZVVzZXIoX3VzZXJuYW1lLCBfcGFzc3dvcmQpOworICAgICAgICBpZiAobnVsbCAhPSB1c2VyKSB7CisgICAgICAgICAgICBCZWFuVXRpbHMuc2V0VmFsdWVzKHVzZXIsIGlucHV0LCBudWxsKTsKKyAgICAgICAgICAgIHNldFVzZXIodXNlcik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyAtLS0tIFN1cHBvcnQgcHJvcGVydHkgLS0tLQorCisgICAgLyoqCisgICAgICogPHA+T2J0YWluIHRoZSBjYWNoZWQgU3VwcG9ydCBvYmplY3QsIGlmIGFueS4gPC9wPgorICAgICAqCisgICAgICogQHJldHVybiBDYWNoZWQgU3VwcG9ydCBvYmplY3Qgb3IgbnVsbAorICAgICAqLworICAgIHB1YmxpYyBTdWJzY3JpcHRpb24gZ2V0U3Vic2NyaXB0aW9uKCkgeworICAgICAgICByZXR1cm4gKFN1YnNjcmlwdGlvbikgZ2V0U2Vzc2lvbigpLmdldChDb25zdGFudHMuU1VCU0NSSVBUSU9OX0tFWSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+U3RvcmUgbmV3IFVzZXIgU3VwcG9ydC48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gc3Vic2NyaXB0aW9uCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0U3Vic2NyaXB0aW9uKFN1YnNjcmlwdGlvbiBzdWJzY3JpcHRpb24pIHsKKyAgICAgICAgZ2V0U2Vzc2lvbigpLnB1dChDb25zdGFudHMuU1VCU0NSSVBUSU9OX0tFWSwgc3Vic2NyaXB0aW9uKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD4gT2J0YWluIFVzZXIgU3VwcG9ydCBvYmplY3QgZm9yIHRoZSBnaXZlbiBob3N0LCBvciByZXR1cm4gbnVsbAorICAgICAqIGlmIG5vdCBmb3VuZC4gPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD5JdCB3b3VsZCBiZSBwb3NzaWJsZSBmb3IgdGhpcyBjb2RlIHRvIHRocm93IGEgTnVsbFBvaW50ZXJFeGNlcHRpb24sCisgICAgICogYnV0IHRoZSBFeGNlcHRpb25IYW5kbGVyIGluIHRoZSB4d29yay54bWwgd2lsbCBjYXRjaCB0aGF0IGZvciB1cy48L3A+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBtYXRjaGluZyBTdXBwb3J0IG9yIG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgU3Vic2NyaXB0aW9uIGZpbmRTdWJzY3JpcHRpb24oU3RyaW5nIGhvc3QpIHsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YnNjcmlwdGlvbjsKKyAgICAgICAgc3Vic2NyaXB0aW9uID0gZ2V0VXNlcigpLmZpbmRTdWJzY3JpcHRpb24oaG9zdCk7CisgICAgICAgIHJldHVybiBzdWJzY3JpcHRpb247CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+T2J0YWluIHVTRVIgU3VwcG9ydCBmb3IgdGhlIGxvY2FsIEhvc3QgcHJvcGVydHkuPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD5Vc3VhbGx5LCB0aGUgaG9zdCBwcm9wZXJ0eSB3aWxsIGJlIHNldCBmcm9tIHRoZSBjbGllbnQgcmVxdWVzdCwKKyAgICAgKiBiZWNhdXNlIGl0IHdhcyBlbWJlZGRlZCBpbiBhIGxpbmsgdG8gdGhlIFN1YmNyaXB0aW9uIGFjdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU3VwcG9ydCBvciBudWxsIGlmIG5vdCBmb3VuZAorICAgICAqLworICAgIHB1YmxpYyBTdWJzY3JpcHRpb24gZmluZFN1YnNjcmlwdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGZpbmRTdWJzY3JpcHRpb24oZ2V0SG9zdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIGEgInRlbXBvcmFyeSIgVXNlciBTdXBwb3J0IG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvCisgICAgICogY2FwdHVyZSBpbnB1dCB2YWx1ZXMuPC9wPgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNyZWF0ZUlucHV0U3Vic2NyaXB0aW9uKCkgeworICAgICAgICBTdWJzY3JpcHRpb24gc3ViID0gbmV3IE1lbW9yeVN1YnNjcmlwdGlvbihnZXRVc2VyKCksIG51bGwpOworICAgICAgICBzZXRTdWJzY3JpcHRpb24oc3ViKTsKKyAgICAgICAgc2V0SG9zdChzdWIuZ2V0SG9zdCgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5Qcm92aWRlIG5ldyBVc2VyIFN1cHBvcnQgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gaG9zdCwgb3IgbnVsbCBpZgorICAgICAqIHRoZSBob3N0IGlzIG5vdCB1bmlxdWUuPC9wPgorICAgICAqCisgICAgICogQHBhcmFtIGhvc3QKKyAgICAgKiBAcmV0dXJuIE5ldyBVc2VyIFN1cHBvcnQgb2JqZWN0IG9yIG51bGwKKyAgICAgKi8KKyAgICBwdWJsaWMgU3Vic2NyaXB0aW9uIGNyZWF0ZVN1YnNjcmlwdGlvbihTdHJpbmcgaG9zdCkgeworCisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWI7CisKKyAgICAgICAgc3ViID0gZmluZFN1YnNjcmlwdGlvbihob3N0KTsKKworICAgICAgICBpZiAobnVsbCAhPSBzdWIpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FIC0gbG9jYWxpemF0aW9uIC0gImVycm9yLmhvc3QudW5pcXVlIikKKyAgICAgICAgICAgIGFkZEZpZWxkRXJyb3IoQ29uc3RhbnRzLkhPU1QsICJUaGF0IGhvc3RuYW1lIGlzIGFscmVhZHkgZGVmaW5lZCIpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZ2V0VXNlcigpLmNyZWF0ZVN1YnNjcmlwdGlvbihob3N0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiA8cD5DcmVhdGUgYSBuZXcgU3VwcG9ydCBmcm9tIHRoZSBjdXJyZW50IFN1cHBvcnQgb2JqZWN0LAorICAgICAqIG1ha2luZyB0aGUgbmV3IFN1cHBvcnQgdGhlIGN1cnJlbnQgU3VwcG9ydC4gPC9wPgorICAgICAqIDxwLz4KKyAgICAgKiA8cD5Vc3VhbGx5LCB0aGUgImN1cnJlbnQiIFN1cHBvcnQgaXMgYSB0ZW1wb3Jhcnkgb2JqZWN0IGJlaW5nIHVzZWQKKyAgICAgKiB0byBjYXB0dXJlIGlucHV0IHZhbHVlcy48L3A+CisgICAgICoKKyAgICAgKiBAcGFyYW0gaG9zdAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGNvcHlTdWJzY3JpcHRpb24oU3RyaW5nIGhvc3QpIHsKKyAgICAgICAgU3Vic2NyaXB0aW9uIGlucHV0ID0gZ2V0U3Vic2NyaXB0aW9uKCk7CisgICAgICAgIFN1YnNjcmlwdGlvbiBzdWIgPSBjcmVhdGVTdWJzY3JpcHRpb24oaG9zdCk7CisgICAgICAgIGlmIChudWxsICE9IHN1YikgeworICAgICAgICAgICAgQmVhblV0aWxzLnNldFZhbHVlcyhzdWIsIGlucHV0LCBudWxsKTsKKyAgICAgICAgICAgIHNldFN1YnNjcmlwdGlvbihzdWIpOworICAgICAgICAgICAgc2V0SG9zdChzdWIuZ2V0SG9zdCgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIDxwPkRlbGV0ZSB0aGUgY3VycmVudCBTdXBwb3J0IG9iamVjdCBmcm9tIHRoZSBkYXRhYmFzZS48L3A+CisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVtb3ZlU3Vic2NyaXB0aW9uKCkgeworICAgICAgICBnZXRVc2VyKCkucmVtb3ZlU3Vic2NyaXB0aW9uKGdldFN1YnNjcmlwdGlvbigpKTsKKyAgICAgICAgZ2V0U2Vzc2lvbigpLnJlbW92ZShDb25zdGFudHMuU1VCU0NSSVBUSU9OX0tFWSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogPHA+UHJvdmlkZSBNYWlsU2VydmVyIEhvc3QgZm9yIGN1cnJlbnQgVXNlciBTdXBwb3J0LjwvcD4KKyAgICAgKgorICAgICAqIEByZXR1cm4gTWFpbFNlcnZlciBIb3N0IGZvciBjdXJyZW50IFVzZXIgU3VwcG9ydAorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U3Vic2NyaXB0aW9uSG9zdCgpIHsKKyAgICAgICAgU3Vic2NyaXB0aW9uIHN1YiA9IGdldFN1YnNjcmlwdGlvbigpOworICAgICAgICBpZiAobnVsbCA9PSBzdWIpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHJldHVybiBzdWIuZ2V0SG9zdCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9NYWlscmVhZGVyU3VwcG9ydC5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL01haWxyZWFkZXJTdXBwb3J0LnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGYzM2Q0NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9NYWlscmVhZGVyU3VwcG9ydC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsOTMgQEAKK2J1dHRvbi5jYW5jZWw9Q2FuY2VsDQorYnV0dG9uLmNvbmZpcm09Q29uZmlybQ0KK2J1dHRvbi5kb1N1Ym1pdD1ET19TVUJNSVQNCitidXR0b24uZG9SZXNldD1ET19SRVNVTFQNCitidXR0b24uZG9DYW5jZWw9b3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLmh0bWwuQ0FOQ0VMDQorYnV0dG9uLnJlc2V0PVJlc2V0DQorYnV0dG9uLnNhdmU9U2F2ZQ0KK2NoYW5nZS5tZXNzYWdlPVlvdXIgcGFzc3dvcmQgaGFzIGV4cGlyZWQuICBQbGVhc2UgYXNrIHRoZSBzeXN0ZW0gYWRtaW5pc3RyYXRvciB0byBjaGFuZ2UgaXQuDQorY2hhbmdlLnRyeT1UcnkgQWdhaW4NCitjaGFuZ2UudGl0bGU9UGFzc3dvcmQgSGFzIEV4cGlyZWQNCitkYXRhYmFzZS5sb2FkPUNhbm5vdCBsb2FkIGRhdGFiYXNlIGZyb20gezB9DQorZXJyb3IuZGF0YWJhc2UubWlzc2luZz1Vc2VyIGRhdGFiYXNlIGlzIG1pc3NpbmcsIGNhbm5vdCB2YWxpZGF0ZSBsb2dvbiBjcmVkZW50aWFscw0KK2Vycm9yLmZyb21BZGRyZXNzLmZvcm1hdD1JbnZhbGlkIGZvcm1hdCBmb3IgRnJvbSBBZGRyZXNzDQorZXJyb3IuZnJvbUFkZHJlc3MucmVxdWlyZWQ9RnJvbSBBZGRyZXNzIGlzIHJlcXVpcmVkDQorZXJyb3IuZnVsbE5hbWUucmVxdWlyZWQ9RnVsbCBOYW1lIGlzIHJlcXVpcmVkDQorZXJyb3IuaG9zdC5yZXF1aXJlZD1NYWlsIFNlcnZlciBpcyByZXF1aXJlZA0KK2Vycm9yLm5vU3Vic2NyaXB0aW9uPU5vIFN1YnNjcmlwdGlvbiBiZWFuIGluIHVzZXIgc2Vzc2lvbg0KK2Vycm9yLnBhc3N3b3JkLmV4cGlyZWQ9WW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZCBmb3IgdXNlcm5hbWUgezB9DQorZXJyb3IucGFzc3dvcmQucmVxdWlyZWQ9UGFzc3dvcmQgaXMgcmVxdWlyZWQNCitlcnJvci5wYXNzd29yZDIucmVxdWlyZWQ9Q29uZmlybWF0aW9uIHBhc3N3b3JkIGlzIHJlcXVpcmVkDQorZXJyb3IucGFzc3dvcmQubWF0Y2g9UGFzc3dvcmQgYW5kIGNvbmZpcm1hdGlvbiBwYXNzd29yZCBtdXN0IG1hdGNoDQorZXJyb3IucGFzc3dvcmQubWlzbWF0Y2g9SW52YWxpZCB1c2VybmFtZSBhbmQvb3IgcGFzc3dvcmQsIHBsZWFzZSB0cnkgYWdhaW4NCitlcnJvci5yZXBseVRvQWRkcmVzcy5mb3JtYXQ9SW52YWxpZCBmb3JtYXQgZm9yIFJlcGx5IFRvIEFkZHJlc3MNCitzdHJ1dHMubWVzc2FnZXMuaW52YWxpZC50b2tlbj1DYW5ub3Qgc3VibWl0IHRoaXMgZm9ybSBvdXQgb2Ygb3JkZXINCitlcnJvci50eXBlLmludmFsaWQ9U2VydmVyIFR5cGUgbXVzdCBiZSAnaW1hcCcgb3IgJ3BvcDMnDQorZXJyb3IudHlwZS5yZXF1aXJlZD1TZXJ2ZXIgVHlwZSBpcyByZXF1aXJlZA0KK2Vycm9yLnVzZXJuYW1lLnJlcXVpcmVkPVVzZXJuYW1lIGlzIHJlcXVpcmVkDQorZXJyb3IudXNlcm5hbWUudW5pcXVlPVRoYXQgdXNlcm5hbWUgaXMgYWxyZWFkeSBpbiB1c2UgLSBwbGVhc2Ugc2VsZWN0IGFub3RoZXINCitlcnJvcnMuZm9vdGVyPTwvdWw+PGhyPg0KK2Vycm9ycy5oZWFkZXI9PGgzPjxmb250IGNvbG9yPSJyZWQiPlZhbGlkYXRpb24gRXJyb3I8L2ZvbnQ+PC9oMz48cD5Zb3UgbXVzdCBjb3JyZWN0IHRoZSBmb2xsb3dpbmcgZXJyb3IocykgYmVmb3JlIHByb2NlZWRpbmc6PC9wPjx1bD4NCitlcnJvcnMucHJlZml4PTxsaT4NCitlcnJvcnMuc3VmZml4PTwvbGk+DQorZXJyb3JzLmlvRXhjZXB0aW9uPUkvTyBleGNlcHRpb24gcmVuZGVyaW5nIGVycm9yIG1lc3NhZ2VzOiB7MH0NCitleHBpcmVkLnBhc3N3b3JkPVVzZXIgUGFzc3dvcmQgaGFzIGV4cGlyZWQgZm9yIHswfQ0KK2hlYWRpbmcuYXV0b0Nvbm5lY3Q9QXV0bw0KK2hlYWRpbmcuc3Vic2NyaXB0aW9ucz1DdXJyZW50IFN1YnNjcmlwdGlvbnMNCitoZWFkaW5nLmhvc3Q9SG9zdCBOYW1lDQoraGVhZGluZy51c2VyPVVzZXIgTmFtZQ0KK2hlYWRpbmcudHlwZT1TZXJ2ZXIgVHlwZQ0KK2hlYWRpbmcuYWN0aW9uPUFjdGlvbg0KK2luZGV4LmhlYWRpbmc9TWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uIE9wdGlvbnMNCitpbmRleC5sb2dvbj1Mb2cgb24gdG8gdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbg0KK2luZGV4LnJlZ2lzdHJhdGlvbj1SZWdpc3RlciB3aXRoIHRoZSBNYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24NCitpbmRleC50aXRsZT1NYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24NCitpbmRleC50b3VyPUEgV2Fsa2luZyBUb3VyIG9mIHRoZSBNYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24NCitsaW5rU3Vic2NyaXB0aW9uLmlvPUkvTyBFcnJvcjogezB9DQorbGlua1N1YnNjcmlwdGlvbi5ub1N1YnNjcmlwdGlvbj1ObyBzdWJzY3JpcHRpb24gdW5kZXIgYXR0cmlidXRlIHswfQ0KK2xpbmtVc2VyLmlvPUkvTyBFcnJvcjogezB9DQorbGlua1VzZXIubm9Vc2VyPU5vIHVzZXIgdW5kZXIgYXR0cmlidXRlIHswfQ0KK2xvZ29uLnRpdGxlPU1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbiAtIExvZ29uDQorbWFpbk1lbnUuaGVhZGluZz1NYWluIE1lbnUgT3B0aW9ucyBmb3IgDQorbWFpbk1lbnUubG9nb2ZmPUxvZyBvZmYgTWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uDQorbWFpbk1lbnUucmVnaXN0cmF0aW9uPUVkaXQgeW91ciB1c2VyIHJlZ2lzdHJhdGlvbiBwcm9maWxlDQorbWFpbk1lbnUudGl0bGU9TWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uIC0gTWFpbiBNZW51DQorb3B0aW9uLmltYXA9SU1BUCBQcm90b2NvbA0KK29wdGlvbi5wb3AzPVBPUDMgUHJvdG9jb2wNCisjIHByb21wdC4NCithdXRvQ29ubmVjdD1BdXRvIENvbm5lY3QNCitmcm9tQWRkcmVzcz1Gcm9tIEFkZHJlc3MNCitmdWxsTmFtZT1GdWxsIE5hbWUNCittYWlsSG9zdG5hbWU9TWFpbCBTZXJ2ZXINCittYWlsUGFzc3dvcmQ9TWFpbCBQYXNzd29yZA0KK21haWxTZXJ2ZXJUeXBlPVNlcnZlciBUeXBlDQorbWFpbFVzZXJuYW1lPU1haWwgVXNlcm5hbWUNCitwYXNzd29yZD1QYXNzd29yZA0KK3Bhc3N3b3JkMj0oUmVwZWF0KSBQYXNzd29yZA0KK3JlcGx5VG9BZGRyZXNzPVJlcGx5IFRvIEFkZHJlc3MNCit1c2VybmFtZT1Vc2VybmFtZQ0KK3JlZ2lzdHJhdGlvbi5hZGRTdWJzY3JpcHRpb249QWRkDQorcmVnaXN0cmF0aW9uLmRlbGV0ZVN1YnNjcmlwdGlvbj1EZWxldGUNCityZWdpc3RyYXRpb24uZWRpdFN1YnNjcmlwdGlvbj1FZGl0DQorcmVnaXN0cmF0aW9uLnRpdGxlLmNyZWF0ZT1SZWdpc3RlciBmb3IgdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbg0KK3JlZ2lzdHJhdGlvbi50aXRsZS5lZGl0PUVkaXQgUmVnaXN0cmF0aW9uIGZvciB0aGUgTWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uDQorc3Vic2NyaXB0aW9uLnRpdGxlLmNyZWF0ZT1DcmVhdGUgTmV3IE1haWwgU3Vic2NyaXB0aW9uDQorc3Vic2NyaXB0aW9uLnRpdGxlLmRlbGV0ZT1EZWxldGUgRXhpc3RpbmcgTWFpbCBTdWJzY3JpcHRpb24NCitzdWJzY3JpcHRpb24udGl0bGUuZWRpdD1FZGl0IEV4aXN0aW5nIE1haWwgU3Vic2NyaXB0aW9uDQorDQorIyBTdGFuZGFyZCBlcnJvciBtZXNzYWdlcyBmb3IgdmFsaWRhdG9yIGZyYW1ld29yayBjaGVja3MNCitlcnJvcnMucmVxdWlyZWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIHJlcXVpcmVkLg0KK2Vycm9ycy5taW5sZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGNhbm5vdCBiZSBsZXNzIHRoYW4gezF9IGNoYXJhY3RlcnMuDQorZXJyb3JzLm1heGxlbmd0aD0ke2dldFRleHQoZmllbGROYW1lKX0gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiB7MX0gY2hhcmFjdGVycy4NCitlcnJvcnMuaW52YWxpZD0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgaW52YWxpZC4NCitlcnJvcnMuYnl0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBieXRlLg0KK2Vycm9ycy5zaG9ydD0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBzaG9ydC4NCitlcnJvcnMuaW50ZWdlcj0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBpbnRlZ2VyLg0KK2Vycm9ycy5sb25nPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGxvbmcuDQorZXJyb3JzLmZsb2F0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGZsb2F0Lg0KK2Vycm9ycy5kb3VibGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gZG91YmxlLg0KK2Vycm9ycy5kYXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSBkYXRlLg0KK2Vycm9ycy5yYW5nZT0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgbm90IGluIHRoZSByYW5nZSAke21pbkxlbmd0aH0gdGhyb3VnaCAke21heExlbmd0aH0uDQorZXJyb3JzLmNyZWRpdGNhcmQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIG5vdCBhIHZhbGlkIGNyZWRpdCBjYXJkIG51bWJlci4NCitlcnJvcnMuZW1haWw9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGFuIGludmFsaWQgZS1tYWlsIGFkZHJlc3MuDQorZXJyb3JzLmxpdGVyYWw9JHtnZXRUZXh0KGZpZWxkTmFtZSl9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL01haWxyZWFkZXJTdXBwb3J0X2phLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTWFpbHJlYWRlclN1cHBvcnRfamEucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjRmMTc0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL01haWxyZWFkZXJTdXBwb3J0X2phLnByb3BlcnRpZXMKQEAgLTAsMCArMSw4OSBAQAorYnV0dG9uLmNhbmNlbD1cdTMwYWRcdTMwZTNcdTMwZjNcdTMwYmJcdTMwZWINCitidXR0b24uY29uZmlybT1cdTc4YmFcdThhOGQNCitidXR0b24ucmVzZXQ9XHUzMGVhXHUzMGJiXHUzMGMzXHUzMGM4DQorYnV0dG9uLnNhdmU9XHU0ZmRkXHU1YjU4DQorY2hhbmdlLm1lc3NhZ2U9XHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDZFXHU2NzA5XHU1MkI5XHU2NzFGXHU5NjUwXHUzMDRDXHU5MDRFXHUzMDRFXHUzMDdFXHUzMDU3XHUzMDVGXHUzMDAyXHUzMEI3XHUzMEI5XHUzMEM2XHUzMEUwXHU3QkExXHU3NDA2XHU4MDA1XHUzMDZCXHUzMDRBXHU1NTRGXHUzMDQ0XHU1NDA4XHUzMDhGXHUzMDVCXHU0RTBCXHUzMDU1XHUzMDQ0DQorY2hhbmdlLnRyeT1cdTUxOERcdThBNjZcdTg4NEMNCitjaGFuZ2UudGl0bGU9XHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5XHU2NzFmXHU5NjUwXHU1MjA3XHUzMDhjDQorZGF0YWJhc2UubG9hZD0gezB9IFx1MzA0Qlx1MzA4OVx1MzBDN1x1MzBGQ1x1MzBCRlx1MzBEOVx1MzBGQ1x1MzBCOVx1MzA5Mlx1MzBFRFx1MzBGQ1x1MzBDOVx1MzA2N1x1MzA0RFx1MzA3RVx1MzA1Qlx1MzA5Mw0KK2Vycm9yLmRhdGFiYXNlLm1pc3Npbmc9XHUzMEU2XHUzMEZDXHUzMEI2XHUzMEM3XHUzMEZDXHUzMEJGXHUzMEQ5XHUzMEZDXHUzMEI5XHUzMDRDXHU4OThCXHUzMDY0XHUzMDRCXHUzMDhBXHUzMDdFXHUzMDVCXHUzMDkzXHUzMDAyXHUzMEVEXHUzMEIwXHUzMEFBXHUzMEYzXHUzMDZFXHU4QThEXHU4QTNDXHUzMDRDXHU1MUZBXHU2NzY1XHUzMDdFXHUzMDVCXHUzMDkzDQorZXJyb3IuZnJvbUFkZHJlc3MuZm9ybWF0PUZyb21cdTMwQTJcdTMwQzlcdTMwRUNcdTMwQjlcdTMwNkVcdTY2RjhcdTVGMEZcdTMwNENcdTZCNjNcdTMwNTdcdTMwNEZcdTMwNDJcdTMwOEFcdTMwN0VcdTMwNUJcdTMwOTMNCitlcnJvci5mcm9tQWRkcmVzcy5yZXF1aXJlZD1Gcm9tXHUzMEEyXHUzMEM5XHUzMEVDXHUzMEI5XHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0DQorZXJyb3IuZnVsbE5hbWUucmVxdWlyZWQ9XHUzMEQ1XHUzMEVCXHUzMENEXHUzMEZDXHUzMEUwXHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0DQorZXJyb3IuaG9zdC5yZXF1aXJlZD1cdTMwRTFcdTMwRkNcdTMwRUJcdTMwQjVcdTMwRkNcdTMwRDBcdTMwOTJcdTUxNjVcdTUyOUJcdTMwNTdcdTMwNjZcdTMwNEZcdTMwNjBcdTMwNTVcdTMwNDQNCitlcnJvci5ub1N1YnNjcmlwdGlvbj1TdWJzY3JpcHRpb24gYmVhbiBcdTMwNGNcdTMwYmJcdTMwYzNcdTMwYjdcdTMwZTdcdTMwZjNcdTMwNmVcdTRlMmRcdTMwNmJcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTMNCitlcnJvci5wYXNzd29yZC5leHBpcmVkPVx1MzBFNlx1MzBGQ1x1MzBCNiB7MH0gXHUzMDZFXHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDZFXHU2NzA5XHU1MkI5XHU2NzFGXHU5NjUwXHUzMDRDXHU5MDRFXHUzMDRFXHUzMDdFXHUzMDU3XHUzMDVGDQorZXJyb3IucGFzc3dvcmQucmVxdWlyZWQ9XHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDRDXHU1RkM1XHU4OTgxXHUzMDY3XHUzMDU5DQorZXJyb3IucGFzc3dvcmQyLnJlcXVpcmVkPVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOShcdTc4QkFcdThBOERcdTc1MjgpXHUzMDRDXHU1RkM1XHU4OTgxXHUzMDY3XHUzMDU5DQorZXJyb3IucGFzc3dvcmQubWF0Y2g9XHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDY4XHU3OEJBXHU4QThEXHU3NTI4XHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDRDXHU0RTAwXHU4MUY0XHUzMDU3XHUzMDY2XHUzMDQ0XHUzMDdFXHUzMDVCXHUzMDkzDQorZXJyb3IucGFzc3dvcmQubWlzbWF0Y2g9XHUzMEU2XHUzMEZDXHUzMEI2XHU1NDBEXHUzMDdFXHUzMDVGXHUzMDZGXHUzMEQxXHUzMEI5XHUzMEVGXHUzMEZDXHUzMEM5XHUzMDRDXHU0RTBEXHU2QjYzXHUzMDY3XHUzMDU5XHUzMDAyXHU1MThEXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0DQorZXJyb3IucmVwbHlUb0FkZHJlc3MuZm9ybWF0PVx1OEZENFx1NEZFMVx1MzBBMlx1MzBDOVx1MzBFQ1x1MzBCOVx1MzA2RVx1NjZGOFx1NUYwRlx1MzA0Q1x1NkI2M1x1MzA1N1x1MzA0Rlx1MzA0Mlx1MzA4QVx1MzA3RVx1MzA1Qlx1MzA5Mw0KK3N0cnV0cy5tZXNzYWdlcy5pbnZhbGlkLnRva2VuPVx1MzA1M1x1MzA2RVx1MzBENVx1MzBBOVx1MzBGQ1x1MzBFMFx1MzA2RVx1NTE4NVx1NUJCOVx1MzA0Q1x1NkI2M1x1MzA1N1x1MzA0Rlx1MzA2QVx1MzA0NFx1MzA1Rlx1MzA4MVx1OTAwMVx1NEZFMVx1MzA1OVx1MzA4Qlx1MzA1M1x1MzA2OFx1MzA0Q1x1NTFGQVx1Njc2NVx1MzA3RVx1MzA1Qlx1MzA5Mw0KK2Vycm9yLnR5cGUuaW52YWxpZD1cdTMwQjVcdTMwRkNcdTMwRDBcdTMwQkZcdTMwQTRcdTMwRDdcdTMwNkYgJ2ltYXAnIFx1MzA0QiAncG9wMydcdTMwNkVcdTMwNjlcdTMwNjFcdTMwODlcdTMwNEJcdTMwNjdcdTMwNkFcdTMwNTFcdTMwOENcdTMwNzBcdTMwNkFcdTMwOEFcdTMwN0VcdTMwNUJcdTMwOTMNCitlcnJvci50eXBlLnJlcXVpcmVkPVx1MzBCNVx1MzBGQ1x1MzBEMFx1MzBCRlx1MzBBNFx1MzBEN1x1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NA0KK2Vycm9yLnVzZXJuYW1lLnJlcXVpcmVkPVx1MzBFNlx1MzBGQ1x1MzBCNlx1NTQwRFx1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NA0KK2Vycm9yLnVzZXJuYW1lLnVuaXF1ZT1cdTMwNURcdTMwNkVcdTMwRTZcdTMwRkNcdTMwQjZcdTU0MERcdTMwNkZcdTY1RTJcdTMwNkJcdTRGN0ZcdTc1MjhcdTMwNTVcdTMwOENcdTMwNjZcdTMwNDRcdTMwN0VcdTMwNTlcdTMwMDIgXHU1MjI1XHUzMDZFXHUzMEU2XHUzMEZDXHUzMEI2XHU1NDBEXHUzMDkyXHU5MDc4XHU2MjlFXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0DQorZXJyb3JzLmZvb3Rlcj08L3VsPjxocj4NCitlcnJvcnMuaGVhZGVyPTxoMz48Zm9udCBjb2xvcj0icmVkIj5cdTUxNjVcdTUyOWJcdTMwYzFcdTMwYTdcdTMwYzNcdTMwYWZcdTMwYThcdTMwZTlcdTMwZmM8L2ZvbnQ+PC9oMz48cD5cdTRlZTVcdTRlMGJcdTMwNmVcdTMwYThcdTMwZTlcdTMwZmNcdTMwOTJcdTc4YmFcdThhOGRcdTMwNTdcdTMwNjZcdTMwNGZcdTMwNjBcdTMwNTVcdTMwNDQ6PC9wPjx1bD4NCitlcnJvcnMucHJlZml4PTxsaT4NCitlcnJvcnMuc3VmZml4PTwvbGk+DQorZXJyb3JzLmlvRXhjZXB0aW9uPUkvT1x1NGY4Ylx1NTkxNlx1MzA0Y1x1NzY3YVx1NzUxZlx1MzA1N1x1MzA3ZVx1MzA1N1x1MzA1ZjogezB9DQorZXhwaXJlZC5wYXNzd29yZD1cdTMwRTZcdTMwRkNcdTMwQjYgezB9IFx1MzA2RVx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA2RVx1NjcwOVx1NTJCOVx1NjcxRlx1OTY1MFx1MzA0Q1x1OTA0RVx1MzA0RVx1MzA3RVx1MzA1N1x1MzA1Rg0KK2hlYWRpbmcuYXV0b0Nvbm5lY3Q9XHU4MWVhXHU1MmQ1XHU2M2E1XHU3ZDlhDQoraGVhZGluZy5zdWJzY3JpcHRpb25zPVx1NzNmZVx1NTcyOFx1MzA2ZVx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMQ0KK2hlYWRpbmcuaG9zdD1cdTMwZGJcdTMwYjlcdTMwYzhcdTU0MGQNCitoZWFkaW5nLnVzZXI9XHUzMGU2XHUzMGZjXHUzMGI2XHU1NDBkDQoraGVhZGluZy50eXBlPVx1MzBiNVx1MzBmY1x1MzBkMFx1MzBiZlx1MzBhNFx1MzBkNw0KK2hlYWRpbmcuYWN0aW9uPVx1NjRjZFx1NGY1Yw0KK2luZGV4LmhlYWRpbmc9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyBcdTMwYWFcdTMwZDdcdTMwYjdcdTMwZTdcdTMwZjMNCitpbmRleC5sb2dvbj1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGVkXHUzMGIwXHUzMGFhXHUzMGYzDQoraW5kZXgucmVnaXN0cmF0aW9uPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZTZcdTMwZmNcdTMwYjZcdTc2N2JcdTkzMzINCitpbmRleC50aXRsZT1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzKFN0cnV0cyAxLjEtZGV2KQ0KK2luZGV4LnRvdXI9XHUzMGI1XHUzMGYzXHUzMGQ3XHUzMGViXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzXHUzMDkyXHU2NTYzXHU3YjU2XHUzMDU5XHUzMDhiDQorbGlua1N1YnNjcmlwdGlvbi5pbz1JL09cdTMwYThcdTMwZTlcdTMwZmM6IHswfQ0KK2xpbmtTdWJzY3JpcHRpb24ubm9TdWJzY3JpcHRpb249XHU1YzVlXHU2MDI3IHswfSBcdTMwNmJcdThjZmNcdThhYWRcdTYwYzVcdTU4MzFcdTMwNGNcdTViNThcdTU3MjhcdTMwNTdcdTMwN2VcdTMwNWJcdTMwOTMgIA0KK2xpbmtVc2VyLmlvPUkvT1x1MzBhOFx1MzBlOVx1MzBmYzogezB9DQorbGlua1VzZXIubm9Vc2VyPVx1NWM1ZVx1NjAyNyB7MH0gXHUzMDZiXHUzMGU2XHUzMGZjXHUzMGI2XHU2MGM1XHU1ODMxXHUzMDRjXHU1YjU4XHU1NzI4XHUzMDU3XHUzMDdlXHUzMDViXHUzMDkzDQorbG9nb24udGl0bGU9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBlZFx1MzBiMFx1MzBhYVx1MzBmMw0KK21haW5NZW51LmhlYWRpbmc9XHUzMGUxXHUzMGE0XHUzMGYzXHUzMGUxXHUzMGNiXHUzMGU1XHUzMGZjDQorbWFpbk1lbnUubG9nb2ZmPU1haWxSZWFkZXIgXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzXHUzMDZlXHUzMGVkXHUzMGIwXHUzMGFhXHUzMGQ1DQorbWFpbk1lbnUucmVnaXN0cmF0aW9uPVx1MzBkN1x1MzBlZFx1MzBkNVx1MzBhMVx1MzBhNFx1MzBlYlx1MzA2ZVx1N2RlOFx1OTZjNg0KK21haW5NZW51LnRpdGxlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZTFcdTMwYTRcdTMwZjNcdTMwZTFcdTMwY2JcdTMwZTVcdTMwZmMNCitvcHRpb24uaW1hcD1JTUFQIFx1MzBkN1x1MzBlZFx1MzBjOFx1MzBiM1x1MzBlYg0KK29wdGlvbi5wb3AzPVBPUDMgXHUzMGQ3XHUzMGVkXHUzMGM4XHUzMGIzXHUzMGViDQorIyBwcm9tcHQuDQorYXV0b0Nvbm5lY3Q9XHU4MWVhXHU1MmQ1XHU2M2E1XHU3ZDlhDQorZnJvbUFkZHJlc3M9RnJvbVx1MzBhMlx1MzBjOVx1MzBlY1x1MzBiOQ0KK2Z1bGxOYW1lPVx1MzBkNVx1MzBlYlx1MzBjZFx1MzBmY1x1MzBlMA0KK21haWxIb3N0bmFtZT1cdTMwZTFcdTMwZmNcdTMwZWJcdTMwYjVcdTMwZmNcdTMwZDANCittYWlsUGFzc3dvcmQ9XHUzMGUxXHUzMGZjXHUzMGViXHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5DQorbWFpbFNlcnZlclR5cGU9XHUzMGI1XHUzMGZjXHUzMGQwXHUzMGJmXHUzMGE0XHUzMGQ3DQorbWFpbFVzZXJuYW1lPVx1MzBlMVx1MzBmY1x1MzBlYlx1MzBlNlx1MzBmY1x1MzBiNlx1NTQwZA0KKy5wYXNzd29yZD1cdTMwZDFcdTMwYjlcdTMwZWZcdTMwZmNcdTMwYzkNCitwYXNzd29yZDI9XHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5KFx1NzhiYVx1OGE4ZFx1NzUyOCkNCityZXBseVRvQWRkcmVzcz1cdThmZDRcdTRmZTFcdTMwYTJcdTMwYzlcdTMwZWNcdTMwYjkNCit1c2VybmFtZT1cdTMwZTZcdTMwZmNcdTMwYjZcdTU0MGQNCityZWdpc3RyYXRpb24uYWRkU3Vic2NyaXB0aW9uPVx1NjViMFx1ODk4Zlx1NGY1Y1x1NjIxMA0KK3JlZ2lzdHJhdGlvbi5kZWxldGVTdWJzY3JpcHRpb249XHU1MjRhXHU5NjY0DQorcmVnaXN0cmF0aW9uLmVkaXRTdWJzY3JpcHRpb249XHU3ZGU4XHU5NmM2DQorcmVnaXN0cmF0aW9uLnRpdGxlLmNyZWF0ZT1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGU2XHUzMGZjXHUzMGI2XHU3NjdiXHU5MzMyDQorcmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQ9TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBkN1x1MzBlZFx1MzBkNVx1MzBhMVx1MzBhNFx1MzBlYlx1N2RlOFx1OTZjNg0KK3N1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGU9XHUzMGUxXHUzMGZjXHUzMGViXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxXHUzMDZlXHU2NWIwXHU4OThmXHU0ZjVjXHU2MjEwDQorc3Vic2NyaXB0aW9uLnRpdGxlLmRlbGV0ZT1cdTMwZTFcdTMwZmNcdTMwZWJcdThjZmNcdThhYWRcdTYwYzVcdTU4MzFcdTMwNmVcdTUyNGFcdTk2NjQNCitzdWJzY3JpcHRpb24udGl0bGUuZWRpdD1cdTMwZTFcdTMwZmNcdTMwZWJcdThjZmNcdThhYWRcdTYwYzVcdTU4MzFcdTMwNmVcdTdkZThcdTk2YzYNCisNCisjIFN0YW5kYXJkIGVycm9yIG1lc3NhZ2VzIGZvciB2YWxpZGF0b3IgZnJhbWV3b3JrIGNoZWNrcw0KK2Vycm9ycy5yZXF1aXJlZD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDkyXHU1MTY1XHU1MjliXHUzMDU3XHUzMDY2XHUzMDRmXHUzMDYwXHUzMDU1XHUzMDQ0XHUzMDAyDQorZXJyb3JzLm1pbmxlbmd0aD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmIHsxfSBcdTY1ODdcdTViNTdcdTRlZTVcdTRlMGFcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDINCitlcnJvcnMubWF4bGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmYgezJ9IFx1NjU4N1x1NWI1N1x1NGVlNVx1NGUwYlx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMg0KK2Vycm9ycy5pbnZhbGlkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZcdTZiNjNcdTMwNTdcdTMwNGZcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDINCitlcnJvcnMuYnl0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmYnl0ZVx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMg0KK2Vycm9ycy5zaG9ydD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmc2hvcnRcdTU3OGJcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDINCitlcnJvcnMuaW50ZWdlcj0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmaW50ZWdlclx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMg0KK2Vycm9ycy5sb25nPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZsb25nXHU1NzhiXHUzMDY3XHUzMDZhXHUzMDUxXHUzMDhjXHUzMDcwXHUzMDZhXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyDQorZXJyb3JzLmZsb2F0PSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZmbG9hdFx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMg0KK2Vycm9ycy5kb3VibGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZmRvdWJsZVx1NTc4Ylx1MzA2N1x1MzA2YVx1MzA1MVx1MzA4Y1x1MzA3MFx1MzA2YVx1MzA4YVx1MzA3ZVx1MzA1Ylx1MzA5M1x1MzAwMg0KK2Vycm9ycy5kYXRlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZcdTY1ZTVcdTRlZDhcdTMwNjdcdTMwNmZcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDINCitlcnJvcnMucmFuZ2U9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IFx1MzA2ZiB7MX0gXHUzMDRiXHUzMDg5IHsyfSBcdTMwNmVcdTk1OTNcdTMwNjdcdTMwNmFcdTMwNTFcdTMwOGNcdTMwNzBcdTMwNmFcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDINCitlcnJvcnMuY3JlZGl0Y2FyZD0ke2dldFRleHQoZmllbGROYW1lKX0gXHUzMDZmXHU2YjYzXHUzMDU3XHUzMDQ0XHUzMGFmXHUzMGVjXHUzMGI4XHUzMGMzXHUzMGM4XHUzMGFiXHUzMGZjXHUzMGM5XHU3NTZhXHU1M2Y3XHUzMDY3XHUzMDZmXHUzMDQyXHUzMDhhXHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyDQorZXJyb3JzLmVtYWlsPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBcdTMwNmZcdTZiNjNcdTMwNTdcdTMwNDRcdTMwZTFcdTMwZmNcdTMwZWJcdTMwYTJcdTMwYzlcdTMwZWNcdTMwYjlcdTMwNjdcdTMwNmZcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTNcdTMwMDINCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTWFpbHJlYWRlclN1cHBvcnRfcnUucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9NYWlscmVhZGVyU3VwcG9ydF9ydS5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4MGVjZDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvTWFpbHJlYWRlclN1cHBvcnRfcnUucHJvcGVydGllcwpAQCAtMCwwICsxLDg5IEBACitidXR0b24uY2FuY2VsPVx1MDQxZVx1MDQ0Mlx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzOFx1MDQ0Mlx1MDQ0Yw0KK2J1dHRvbi5jb25maXJtPVx1MDQxZlx1MDQzZVx1MDQzNFx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNFx1MDQzOFx1MDQ0Mlx1MDQ0Yw0KK2J1dHRvbi5yZXNldD1cdTA0MjFcdTA0MzFcdTA0NDBcdTA0M2VcdTA0NDFcdTA0MzhcdTA0NDJcdTA0NGMNCitidXR0b24uc2F2ZT1cdTA0MjFcdTA0M2VcdTA0NDVcdTA0NDBcdTA0MzBcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMNCitjaGFuZ2UubWVzc2FnZT1Zb3VyIHBhc3N3b3JkIGhhcyBleHBpcmVkLiAgUGxlYXNlIGFzayB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3IgdG8gY2hhbmdlIGl0Lg0KK2NoYW5nZS50cnk9VHJ5IEFnYWluDQorY2hhbmdlLnRpdGxlPVBhc3N3b3JkIEhhcyBFeHBpcmVkDQorZGF0YWJhc2UubG9hZD1cdTA0MTFcdTA0MzBcdTA0MzdcdTA0MzAgXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDQ1IFx1MDQzZFx1MDQzNSBcdTA0M2NcdTA0M2VcdTA0MzZcdTA0MzVcdTA0NDIgXHUwNDMxXHUwNDRiXHUwNDQyXHUwNDRjIFx1MDQzN1x1MDQzMFx1MDQzM1x1MDQ0MFx1MDQ0M1x1MDQzNlx1MDQzNVx1MDQzZFx1MDQzMCBcdTA0MzhcdTA0MzcgezB9DQorZXJyb3IuZGF0YWJhc2UubWlzc2luZz1cdTA0MWRcdTA0MzUgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNlIFx1MDQzOFx1MDQzY1x1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYgLSBcdTA0M2RcdTA0MzVcdTA0MzJcdTA0M2VcdTA0MzdcdTA0M2NcdTA0M2VcdTA0MzZcdTA0M2RcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQxXHUwNDQyXHUwNDM4IFx1MDQzMFx1MDQ0M1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzOFx1MDQ0NFx1MDQzOFx1MDQzYVx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQ0ZS4NCitlcnJvci5mcm9tQWRkcmVzcy5mb3JtYXQ9XHUwNDEyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzNSAnXHUwNDEwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQxZVx1MDQ0MjonIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzZCBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDMyIFx1MDQzZFx1MDQzNVx1MDQzZlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzOFx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQzZVx1MDQzYyBcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDJcdTA0MzUuDQorZXJyb3IuZnJvbUFkZHJlc3MucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0MzBcdTA0MzRcdTA0NDBcdTA0MzVcdTA0NDEgXHUwNDMyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzNSAnXHUwNDEwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQxZVx1MDQ0MjonLg0KK2Vycm9yLmZ1bGxOYW1lLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzOFx1MDQzY1x1MDQ0Zi4NCitlcnJvci5ob3N0LnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDNlXHUwNDMyXHUwNDRiXHUwNDM5IFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MC4NCitlcnJvci5ub1N1YnNjcmlwdGlvbj1cdTA0MWZcdTA0M2VcdTA0MzRcdTA0M2ZcdTA0MzhcdTA0NDFcdTA0M2FcdTA0MzAgXHUwNDNkXHUwNDM1IFx1MDQzZFx1MDQzMFx1MDQzOVx1MDQzNFx1MDQzNVx1MDQzZFx1MDQzMCBcdTA0MzIgXHUwNDQxXHUwNDM1XHUwNDQxXHUwNDQxXHUwNDM4XHUwNDM4IFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Zg0KK2Vycm9yLnBhc3N3b3JkLmV4cGlyZWQ9WW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZCBmb3IgdXNlcm5hbWUgezB9DQorZXJyb3IucGFzc3dvcmQucmVxdWlyZWQ9XHUwNDIyXHUwNDQwXHUwNDM1XHUwNDMxXHUwNDQzXHUwNDM1XHUwNDQyXHUwNDQxXHUwNDRmIFx1MDQ0M1x1MDQzYVx1MDQzMFx1MDQzN1x1MDQzMFx1MDQ0Mlx1MDQ0YyBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGMuDQorZXJyb3IucGFzc3dvcmQyLnJlcXVpcmVkPVx1MDQyMlx1MDQ0MFx1MDQzNVx1MDQzMVx1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNmXHUwNDNlXHUwNDM0XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDM2XHUwNDM0XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0Zi4NCitlcnJvci5wYXNzd29yZC5tYXRjaD1cdTA0MWZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGMgXHUwNDM4IFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzNFx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGYgXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzZVx1MDQzMlx1MDQzZlx1MDQzMFx1MDQzNFx1MDQzMFx1MDQ0ZVx1MDQ0Mi4NCitlcnJvci5wYXNzd29yZC5taXNtYXRjaD1cdTA0MWRcdTA0MzVcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0NGNcdTA0M2RcdTA0NGJcdTA0MzUgXHUwNDM4XHUwNDNjXHUwNDRmIFx1MDQzOC9cdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRjIC0gXHUwNDNmXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDMxXHUwNDQzXHUwNDM5XHUwNDQyXHUwNDM1LCBcdTA0M2ZcdTA0M2VcdTA0MzZcdTA0MzBcdTA0M2JcdTA0NDNcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzAsIFx1MDQ0MVx1MDQzZFx1MDQzZVx1MDQzMlx1MDQzMC4NCitlcnJvci5yZXBseVRvQWRkcmVzcy5mb3JtYXQ9XHUwNDEyIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQzNSAnXHUwNDEwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQxZVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0Mlx1MDQzOFx1MDQ0Mlx1MDQ0YyBcdTA0M2RcdTA0MzA6JyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2QgXHUwNDMwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQzMiBcdTA0M2RcdTA0MzVcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0M2JcdTA0NGNcdTA0M2RcdTA0M2VcdTA0M2MgXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQyXHUwNDM1Lg0KK3N0cnV0cy5tZXNzYWdlcy5pbnZhbGlkLnRva2VuPVx1MDQyZFx1MDQ0Mlx1MDQzMCBcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzAgXHUwNDNkXHUwNDM1IFx1MDQzY1x1MDQzZVx1MDQzNlx1MDQzNVx1MDQ0MiBcdTA0MzFcdTA0NGJcdTA0NDJcdTA0NGMgXHUwNDNlXHUwNDMxXHUwNDQwXHUwNDMwXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDMwXHUwNDNkXHUwNDMwIC0gXHUwNDNkXHUwNDMwXHUwNDQwXHUwNDQzXHUwNDQ4XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQ0MFx1MDQ0Zlx1MDQzNFx1MDQzYVx1MDQzMCBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NGYgXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDQ1Lg0KK2Vycm9yLnR5cGUuaW52YWxpZD1cdTA0MTIgXHUwNDNhXHUwNDMwXHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDM1IFx1MDQ0Mlx1MDQzOFx1MDQzZlx1MDQzMCBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDNjXHUwNDNlXHUwNDMzXHUwNDQzXHUwNDQyIFx1MDQzMVx1MDQ0Ylx1MDQ0Mlx1MDQ0YyBcdTA0NDNcdTA0M2FcdTA0MzBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0NGIgXHUwNDNiXHUwNDM4XHUwNDQ4XHUwNDRjICdpbWFwJyBcdTA0MzhcdTA0M2JcdTA0MzggJ3BvcDMnDQorZXJyb3IudHlwZS5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0Mlx1MDQzOFx1MDQzZiBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzANCitlcnJvci51c2VybmFtZS5yZXF1aXJlZD1cdTA0MjJcdTA0NDBcdTA0MzVcdTA0MzFcdTA0NDNcdTA0MzVcdTA0NDJcdTA0NDFcdTA0NGYgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQzOFx1MDQzY1x1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYNCitlcnJvci51c2VybmFtZS51bmlxdWU9XHUwNDIzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzOFx1MDQzY1x1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGYgXHUwNDQzXHUwNDM2XHUwNDM1IFx1MDQzOFx1MDQ0MVx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQ0M1x1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiAtIFx1MDQzMlx1MDQ0Ylx1MDQzMVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQzNSwgXHUwNDNmXHUwNDNlXHUwNDM2XHUwNDMwXHUwNDNiXHUwNDQzXHUwNDM5XHUwNDQxXHUwNDQyXHUwNDMwLCBcdTA0MzRcdTA0NDBcdTA0NDNcdTA0MzNcdTA0M2VcdTA0MzUgXHUwNDM4XHUwNDNjXHUwNDRmLg0KK2Vycm9ycy5mb290ZXI9PC91bD48aHI+DQorZXJyb3JzLmhlYWRlcj08aDM+PGZvbnQgY29sb3I9InJlZCI+XHUwNDFlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDM4IFx1MDQzZlx1MDQ0MFx1MDQzOCBcdTA0MzdcdTA0MzBcdTA0M2RcdTA0MzVcdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzggXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDQ1PC9mb250PjwvaDM+PHA+XHUwNDEyXHUwNDRiIFx1MDQzNFx1MDQzZVx1MDQzYlx1MDQzNlx1MDQzZFx1MDQ0YiBcdTA0MzhcdTA0NDFcdTA0M2ZcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQzXHUwNDNhXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzZFx1MDQzOFx1MDQzNlx1MDQzNSBcdTA0M2VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0Mzg6PC9wPjx1bD4NCitlcnJvcnMucHJlZml4PTxsaT4NCitlcnJvcnMuc3VmZml4PTwvbGk+DQorZXJyb3JzLmlvRXhjZXB0aW9uPVx1MDQxZVx1MDQ0OFx1MDQzOFx1MDQzMVx1MDQzYVx1MDQzMCBcdTA0MzJcdTA0MzJcdTA0M2VcdTA0MzRcdTA0MzAvXHUwNDMyXHUwNDRiXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwIFx1MDQzZlx1MDQ0MFx1MDQzOCBcdTA0NDFcdTA0M2VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0M2RcdTA0MzhcdTA0MzggXHUwNDQxXHUwNDNlXHUwNDNlXHUwNDMxXHUwNDQ5XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDM5IFx1MDQzZVx1MDQzMSBcdTA0M2VcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzBcdTA0NDU6IHswfQ0KK2V4cGlyZWQucGFzc3dvcmQ9VXNlciBQYXNzd29yZCBoYXMgZXhwaXJlZCBmb3IgezB9DQoraGVhZGluZy5hdXRvQ29ubmVjdD1cdTA0MTBcdTA0MzJcdTA0NDJcdTA0M2VcdTA0M2NcdTA0MzBcdTA0NDJcdTA0MzhcdTA0NDdcdTA0MzVcdTA0NDFcdTA0M2FcdTA0MzgNCitoZWFkaW5nLnN1YnNjcmlwdGlvbnM9XHUwNDE3XHUwNDMwXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQzOA0KK2hlYWRpbmcuaG9zdD1cdTA0MjFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDANCitoZWFkaW5nLnVzZXI9XHUwNDE4XHUwNDNjXHUwNDRmDQoraGVhZGluZy50eXBlPVx1MDQyMlx1MDQzOFx1MDQzZiBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzANCitoZWFkaW5nLmFjdGlvbj1cdTA0MTRcdTA0MzVcdTA0MzlcdTA0NDFcdTA0NDJcdTA0MzJcdTA0MzhcdTA0MzUNCitpbmRleC5oZWFkaW5nPVx1MDQxNFx1MDQzNVx1MDQzY1x1MDQzZVx1MDQzZFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzZVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgJ1x1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0NGInDQoraW5kZXgubG9nb249XHUwNDEyXHUwNDNlXHUwNDM5XHUwNDQyXHUwNDM4IFx1MDQzYVx1MDQzMFx1MDQzYSBcdTA0MzdcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0M2RcdTA0M2RcdTA0NGJcdTA0MzkgXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDM1XHUwNDNiXHUwNDRjDQoraW5kZXgucmVnaXN0cmF0aW9uPVx1MDQxN1x1MDQzMFx1MDQ0MFx1MDQzNVx1MDQzM1x1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQ0MFx1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQ0Y1x1MDQ0MVx1MDQ0Zg0KK2luZGV4LnRpdGxlPVx1MDQxNFx1MDQzNVx1MDQzY1x1MDQzZVx1MDQzZFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzZVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgJ1x1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0NGInIChTdHJ1dHMgMS4xLWRldikNCitpbmRleC50b3VyPVx1MDQxZVx1MDQzMVx1MDQzN1x1MDQzZVx1MDQ0MCBcdTA0MTRcdTA0MzVcdTA0M2NcdTA0M2VcdTA0M2RcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzBcdTA0NDZcdTA0MzhcdTA0M2VcdTA0M2RcdTA0M2RcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDNmXHUwNDQwXHUwNDM4XHUwNDNiXHUwNDNlXHUwNDM2XHUwNDM1XHUwNDNkXHUwNDM4XHUwNDRmICdcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDRiJw0KK2xpbmtTdWJzY3JpcHRpb24uaW89XHUwNDFlXHUwNDQ4XHUwNDM4XHUwNDMxXHUwNDNhXHUwNDMwIFx1MDQzMlx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMC9cdTA0MzJcdTA0NGJcdTA0MzJcdTA0M2VcdTA0MzRcdTA0MzAgKFx1MDQzNFx1MDQzYlx1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0M2ZcdTA0MzhcdTA0NDFcdTA0M2FcdTA0MzgpOiB7MH0NCitsaW5rU3Vic2NyaXB0aW9uLm5vU3Vic2NyaXB0aW9uPVx1MDQxMFx1MDQ0Mlx1MDQ0MFx1MDQzOFx1MDQzMVx1MDQ0M1x1MDQ0MiB7MH0gXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQzZVx1MDQzNFx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzOFx1MDQ0MiBcdTA0MzhcdTA0M2RcdTA0NDRcdTA0M2VcdTA0NDBcdTA0M2NcdTA0MzBcdTA0NDZcdTA0MzhcdTA0MzggXHUwNDNlIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQzNSBcdTA0MzhcdTA0M2JcdTA0MzggXHUwNDNkXHUwNDM1IFx1MDQ0MVx1MDQ0M1x1MDQ0OVx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQ0M1x1MDQzNVx1MDQ0Mi4NCitsaW5rVXNlci5pbz1cdTA0MWVcdTA0NDhcdTA0MzhcdTA0MzFcdTA0M2FcdTA0MzAgXHUwNDMyXHUwNDMyXHUwNDNlXHUwNDM0XHUwNDMwL1x1MDQzMlx1MDQ0Ylx1MDQzMlx1MDQzZVx1MDQzNFx1MDQzMCAoXHUwNDM0XHUwNDNiXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQzYlx1MDQ0Y1x1MDQzN1x1MDQzZVx1MDQzMlx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzYlx1MDQ0Zik6IHswfQ0KK2xpbmtVc2VyLm5vVXNlcj1cdTA0MTBcdTA0NDJcdTA0NDBcdTA0MzhcdTA0MzFcdTA0NDNcdTA0NDIgezB9IFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0M2VcdTA0MzRcdTA0MzVcdTA0NDBcdTA0MzZcdTA0MzhcdTA0NDIgXHUwNDM4XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZSBcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0MzVcdTA0M2JcdTA0MzUgXHUwNDM4XHUwNDNiXHUwNDM4IFx1MDQzZFx1MDQzNSBcdTA0NDFcdTA0NDNcdTA0NDlcdTA0MzVcdTA0NDFcdTA0NDJcdTA0MzJcdTA0NDNcdTA0MzVcdTA0NDIuDQorbG9nb24udGl0bGU9XHUwNDE0XHUwNDM1XHUwNDNjXHUwNDNlXHUwNDNkXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDNlXHUwNDNkXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYlx1MDQzZVx1MDQzNlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0MjdcdTA0NDJcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgXHUwNDNmXHUwNDNlXHUwNDQ3XHUwNDQyXHUwNDRiIC0gXHUwNDFmXHUwNDQwXHUwNDNlXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDNhXHUwNDMwIFx1MDQzOFx1MDQzY1x1MDQzNVx1MDQzZFx1MDQzOCBcdTA0MzggXHUwNDNmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRmLg0KK21haW5NZW51LmhlYWRpbmc9XHUwNDFkXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQwXHUwNDNlXHUwNDM5XHUwNDNhXHUwNDM4IFx1MDQzM1x1MDQzYlx1MDQzMFx1MDQzMlx1MDQzZFx1MDQzZVx1MDQzM1x1MDQzZSBcdTA0M2NcdTA0MzVcdTA0M2RcdTA0NGUgXHUwNDM0XHUwNDNiXHUwNDRmDQorbWFpbk1lbnUubG9nb2ZmPVx1MDQxMlx1MDQ0Ylx1MDQzOVx1MDQ0Mlx1MDQzOA0KK21haW5NZW51LnJlZ2lzdHJhdGlvbj1cdTA0MThcdTA0MzdcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDMyXHUwNDNlXHUwNDM4IFx1MDQzZFx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzZVx1MDQzOVx1MDQzYVx1MDQzOA0KK21haW5NZW51LnRpdGxlPVx1MDQxNFx1MDQzNVx1MDQzY1x1MDQzZVx1MDQzZFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQ0Nlx1MDQzOFx1MDQzZVx1MDQzZFx1MDQzZFx1MDQzZVx1MDQzNSBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JcdTA0M2VcdTA0MzZcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzUgJ1x1MDQyN1x1MDQ0Mlx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0NGInIC0gXHUwNDFlXHUwNDQxXHUwNDNkXHUwNDNlXHUwNDMyXHUwNDNkXHUwNDNlXHUwNDM1IFx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0ZQ0KK29wdGlvbi5pbWFwPVx1MDQxZlx1MDQ0MFx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQzYVx1MDQzZVx1MDQzYiBJTUFQIA0KK29wdGlvbi5wb3AzPVx1MDQxZlx1MDQ0MFx1MDQzZVx1MDQ0Mlx1MDQzZVx1MDQzYVx1MDQzZVx1MDQzYiBQT1AzIA0KKyMgcHJvbXB0Lg0KK2F1dG9Db25uZWN0PVx1MDQxMFx1MDQzMlx1MDQ0Mlx1MDQzZVx1MDQzY1x1MDQzMFx1MDQ0Mlx1MDQzOFx1MDQ0N1x1MDQzNVx1MDQ0MVx1MDQzYVx1MDQzZVx1MDQzNSBcdTA0NDFcdTA0M2VcdTA0MzVcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzVcdTA0M2RcdTA0MzhcdTA0MzU6DQorZnJvbUFkZHJlc3M9XHUwNDEwXHUwNDM0XHUwNDQwXHUwNDM1XHUwNDQxIFx1MDQxZVx1MDQ0MjoNCitmdWxsTmFtZT1cdTA0MWZcdTA0M2VcdTA0M2JcdTA0M2RcdTA0M2VcdTA0MzUgXHUwNDM4XHUwNDNjXHUwNDRmOg0KK21haWxIb3N0bmFtZT1cdTA0MWZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0NGJcdTA0MzkgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwOg0KK21haWxQYXNzd29yZD1cdTA0MWZcdTA0MzBcdTA0NDBcdTA0M2VcdTA0M2JcdTA0NGMgXHUwNDM0XHUwNDNiXHUwNDRmIFx1MDQzZlx1MDQzZVx1MDQ0N1x1MDQ0Mlx1MDQzZVx1MDQzMlx1MDQzZVx1MDQzM1x1MDQzZSBcdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzA6DQorbWFpbFNlcnZlclR5cGU9XHUwNDIyXHUwNDM4XHUwNDNmIFx1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzMDoNCittYWlsVXNlcm5hbWU9XHUwNDE4XHUwNDNjXHUwNDRmIFx1MDQzNFx1MDQzYlx1MDQ0ZiBcdTA0M2ZcdTA0M2VcdTA0NDdcdTA0NDJcdTA0M2VcdTA0MzJcdTA0M2VcdTA0MzNcdTA0M2UgXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwOg0KK3Bhc3N3b3JkPVx1MDQxZlx1MDQzMFx1MDQ0MFx1MDQzZVx1MDQzYlx1MDQ0YzoNCitwYXNzd29yZDI9KFx1MDQxZlx1MDQzZVx1MDQzNFx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzNlx1MDQzNFx1MDQzNVx1MDQzZFx1MDQzOFx1MDQzNSkgXHUwNDFmXHUwNDMwXHUwNDQwXHUwNDNlXHUwNDNiXHUwNDRjOg0KK3JlcGx5VG9BZGRyZXNzPVx1MDQxMFx1MDQzNFx1MDQ0MFx1MDQzNVx1MDQ0MSBcdTA0MWVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDJcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDNkXHUwNDMwOg0KK3VzZXJuYW1lPVx1MDQxOFx1MDQzY1x1MDQ0ZjoNCityZWdpc3RyYXRpb24uYWRkU3Vic2NyaXB0aW9uPVx1MDQxNFx1MDQzZVx1MDQzMVx1MDQzMFx1MDQzMlx1MDQzOFx1MDQ0Mlx1MDQ0Yw0KK3JlZ2lzdHJhdGlvbi5kZWxldGVTdWJzY3JpcHRpb249XHUwNDIzXHUwNDM0XHUwNDMwXHUwNDNiXHUwNDM4XHUwNDQyXHUwNDRjDQorcmVnaXN0cmF0aW9uLmVkaXRTdWJzY3JpcHRpb249XHUwNDIwXHUwNDM1XHUwNDM0XHUwNDMwXHUwNDNhXHUwNDQyXHUwNDM4XHUwNDQwXHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRjDQorcmVnaXN0cmF0aW9uLnRpdGxlLmNyZWF0ZT1cdTA0MTdcdTA0MzBcdTA0NDBcdTA0MzVcdTA0MzNcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NDBcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGNcdTA0NDFcdTA0NGYNCityZWdpc3RyYXRpb24udGl0bGUuZWRpdD1cdTA0MThcdTA0MzdcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDNkXHUwNDRiXHUwNDM1IFx1MDQzZSBcdTA0NDFcdTA0MzJcdTA0M2VcdTA0MzVcdTA0MzkgXHUwNDQwXHUwNDM1XHUwNDMzXHUwNDM4XHUwNDQxXHUwNDQyXHUwNDQwXHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4DQorc3Vic2NyaXB0aW9uLnRpdGxlLmNyZWF0ZT1cdTA0MjFcdTA0M2VcdTA0MzdcdTA0MzRcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDNkXHUwNDNlXHUwNDMyXHUwNDQzXHUwNDRlIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQ0Mw0KK3N1YnNjcmlwdGlvbi50aXRsZS5kZWxldGU9XHUwNDIzXHUwNDM0XHUwNDMwXHUwNDNiXHUwNDM4XHUwNDQyXHUwNDRjIFx1MDQ0MVx1MDQ0M1x1MDQ0OVx1MDQzNVx1MDQ0MVx1MDQ0Mlx1MDQzMlx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQ0M1x1MDQ0ZSBcdTA0M2ZcdTA0M2VcdTA0MzRcdTA0M2ZcdTA0MzhcdTA0NDFcdTA0M2FcdTA0NDMNCitzdWJzY3JpcHRpb24udGl0bGUuZWRpdD1cdTA0MjBcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2FcdTA0NDJcdTA0MzhcdTA0NDBcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGMgXHUwNDQxXHUwNDQzXHUwNDQ5XHUwNDM1XHUwNDQxXHUwNDQyXHUwNDMyXHUwNDQzXHUwNDRlXHUwNDQ5XHUwNDQzXHUwNDRlIFx1MDQzZlx1MDQzZVx1MDQzNFx1MDQzZlx1MDQzOFx1MDQ0MVx1MDQzYVx1MDQ0Mw0KKw0KKyMgU3RhbmRhcmQgZXJyb3IgbWVzc2FnZXMgZm9yIHZhbGlkYXRvciBmcmFtZXdvcmsgY2hlY2tzDQorZXJyb3JzLnJlcXVpcmVkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyByZXF1aXJlZC4NCitlcnJvcnMubWlubGVuZ3RoPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBjYW5ub3QgYmUgbGVzcyB0aGFuIHsxfSBjaGFyYWN0ZXJzLg0KK2Vycm9ycy5tYXhsZW5ndGg9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gezJ9IGNoYXJhY3RlcnMuDQorZXJyb3JzLmludmFsaWQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIGludmFsaWQuDQorZXJyb3JzLmJ5dGU9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gYnl0ZS4NCitlcnJvcnMuc2hvcnQ9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gc2hvcnQuDQorZXJyb3JzLmludGVnZXI9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IG11c3QgYmUgYW4gaW50ZWdlci4NCitlcnJvcnMubG9uZz0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBsb25nLg0KK2Vycm9ycy5mbG9hdD0ke2dldFRleHQoZmllbGROYW1lKX0gbXVzdCBiZSBhbiBmbG9hdC4NCitlcnJvcnMuZG91YmxlPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBtdXN0IGJlIGFuIGRvdWJsZS4NCitlcnJvcnMuZGF0ZT0ke2dldFRleHQoZmllbGROYW1lKX0gaXMgbm90IGEgZGF0ZS4NCitlcnJvcnMucmFuZ2U9JHtnZXRUZXh0KGZpZWxkTmFtZSl9IGlzIG5vdCBpbiB0aGUgcmFuZ2UgezF9IHRocm91Z2ggezJ9Lg0KK2Vycm9ycy5jcmVkaXRjYXJkPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBub3QgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuDQorZXJyb3JzLmVtYWlsPSR7Z2V0VGV4dChmaWVsZE5hbWUpfSBpcyBhbiBpbnZhbGlkIGUtbWFpbCBhZGRyZXNzLg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9NYWluTWVudS5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL01haW5NZW51LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGZhNWU2YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9NYWluTWVudS5qYXZhCkBAIC0wLDAgKzEsOSBAQAorcGFja2FnZSBtYWlscmVhZGVyMjsNCisNCisvKioNCisgKiA8cD4NCisgKiBQcm92aWRlIGFjY2VzcyB0byBNYWlscmVhZGVyU3VwcG9ydCBwcm9wZXJ0aWVzLg0KKyAqIDwvcD4NCisgKi8NCitwdWJsaWMgY2xhc3MgTWFpbk1lbnUgZXh0ZW5kcyBNYWlscmVhZGVyU3VwcG9ydCB7DQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9XZWxjb21lLWFjdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvV2VsY29tZS1hY3Rpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1NzdkMDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvV2VsY29tZS1hY3Rpb24ueG1sCkBAIC0wLDAgKzEsMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/Pg0KKzwhRE9DVFlQRSBzdHJ1dHMgUFVCTElDDQorICAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAyLjAvL0VOIg0KKyAgICAgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy0yLjAuZHRkIj4NCisNCis8c3RydXRzPg0KKyAgICA8cGFja2FnZSBuYW1lPSJXZWxjb21lIiBuYW1lc3BhY2U9Ii8iIGV4dGVuZHM9Ik1haWxyZWFkZXJTdXBwb3J0Ij4NCisNCisgICAgICAgIDxhY3Rpb24gbmFtZT0iV2VsY29tZSIgY2xhc3M9Im1haWxyZWFkZXIyLldlbGNvbWUiPg0KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL1dlbGNvbWUuanNwPC9yZXN1bHQ+DQorICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPg0KKyAgICAgICAgPC9hY3Rpb24+DQorDQorICAgIDwvcGFja2FnZT4NCis8L3N0cnV0cz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvV2VsY29tZS5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL1dlbGNvbWUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTU0MjYzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL1dlbGNvbWUuamF2YQpAQCAtMCwwICsxLDMxIEBACitwYWNrYWdlIG1haWxyZWFkZXIyOworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuUHJlcGFyYWJsZTsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5Nb2RlbERyaXZlbjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworLyoqCisgKiBWZXJpZnkgdGhhdCBlc3NlbnRpYWwgcmVzb3VyY2VzIGFyZSBhdmFpbGFibGUuCisgKi8KK3B1YmxpYyBjbGFzcyBXZWxjb21lIGV4dGVuZHMgTWFpbHJlYWRlclN1cHBvcnQgIHsKKworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHsKKworICAgICAgICAvLyBDb25maXJtIG1lc3NhZ2UgcmVzb3VyY2VzIGxvYWRlZAorICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IGdldFRleHQoQ29uc3RhbnRzLkVSUk9SX0RBVEFCQVNFX01JU1NJTkcpOworICAgICAgICBpZiAoQ29uc3RhbnRzLkVSUk9SX0RBVEFCQVNFX01JU1NJTkcuZXF1YWxzKG1lc3NhZ2UpKSB7CisgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihDb25zdGFudHMuRVJST1JfTUVTU0FHRVNfTk9UX0xPQURFRCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb25maXJtIGRhdGFiYXNlIGxvYWRlZAorICAgICAgICBpZiAobnVsbCA9PSBnZXREYXRhYmFzZSgpKSB7CisgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihDb25zdGFudHMuRVJST1JfREFUQUJBU0VfTk9UX0xPQURFRCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaGFzRXJyb3JzKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBFUlJPUjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL2xvZ29uL0lucHV0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvbG9nb24vSW5wdXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTdiZmFhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL2xvZ29uL0lucHV0LmphdmEKQEAgLTAsMCArMSw5IEBACitwYWNrYWdlIG1haWxyZWFkZXIyLmxvZ29uOw0KKw0KK2ltcG9ydCBtYWlscmVhZGVyMi5NYWlscmVhZGVyU3VwcG9ydDsNCisNCisvKioNCisgKiA8cD5TdHViIGNsYXNzIGZvciBsb2dpbi9JbnB1dC48L3A+DQorICovDQorcHVibGljIGNsYXNzIElucHV0IGV4dGVuZHMgTWFpbHJlYWRlclN1cHBvcnQgew0KK30NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvbG9nb24vUmV0cmlldmUtdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvbG9nb24vUmV0cmlldmUtdmFsaWRhdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEwNGM3NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9sb2dvbi9SZXRyaWV2ZS12YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4NCisNCis8dmFsaWRhdG9ycz4NCisgICAgPGZpZWxkIG5hbWU9InVzZXJuYW1lIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IudXNlcm5hbWUucmVxdWlyZWQiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKyAgICA8ZmllbGQgbmFtZT0icGFzc3dvcmQiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5wYXNzd29yZC5yZXF1aXJlZCIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorPC92YWxpZGF0b3JzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9sb2dvbi9SZXRyaWV2ZS5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL2xvZ29uL1JldHJpZXZlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjhkNzhlYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9sb2dvbi9SZXRyaWV2ZS5qYXZhCkBAIC0wLDAgKzEsNDYgQEAKKy8qDQorICogJElkOiBMb2dvbkFjdGlvbi5qYXZhIDM2MDQ0MiAyMDA1LTEyLTMxIDIwOjEwOjA0WiBodXN0ZWQgJA0KKyAqDQorICogQ29weXJpZ2h0IDIwMDAtMjAwNCBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbg0KKyAqDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqDQorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KKw0KK3BhY2thZ2UgbWFpbHJlYWRlcjIubG9nb247DQorDQoraW1wb3J0IG1haWxyZWFkZXIyLk1haWxyZWFkZXJTdXBwb3J0Ow0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbjsNCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOw0KKw0KKy8qKg0KKyAqIDxwPiBWYWxpZGF0ZSBhIHVzZXIgbG9nb24uIDwvcD4NCisgKi8NCitwdWJsaWMgZmluYWwgY2xhc3MgUmV0cmlldmUgZXh0ZW5kcyBNYWlscmVhZGVyU3VwcG9ydCB7DQorDQorICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHRocm93cyBFeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24gew0KKw0KKyAgICAgICAgVXNlciB1c2VyID0gZmluZFVzZXIoZ2V0VXNlcm5hbWUoKSwgZ2V0UGFzc3dvcmQoKSk7DQorDQorICAgICAgICBpZiAodXNlciAhPSBudWxsKSB7DQorICAgICAgICAgICAgc2V0VXNlcih1c2VyKTsNCisgICAgICAgIH0NCisNCisgICAgICAgIGlmIChoYXNFcnJvcnMoKSkgew0KKyAgICAgICAgICAgIHJldHVybiBJTlBVVDsNCisgICAgICAgIH0NCisNCisgICAgICAgIHJldHVybiBTVUNDRVNTOw0KKw0KKyAgICB9DQorDQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9yZWdpc3RyYXRpb24vQ3JlYXRlLXZhbGlkYXRpb24ueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9DcmVhdGUtdmFsaWRhdGlvbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NmMjc3YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9yZWdpc3RyYXRpb24vQ3JlYXRlLXZhbGlkYXRpb24ueG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIiAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLXZhbGlkYXRvci0xLjAuMi5kdGQiPg0KKw0KKzx2YWxpZGF0b3JzPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0icGFzc3dvcmQiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5wYXNzd29yZC5yZXF1aXJlZCIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InN0cmluZ2xlbmd0aCI+DQorICAgICAgICAgICAgPHBhcmFtIG5hbWU9InRyaW0iPnRydWU8L3BhcmFtPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtaW5MZW5ndGgiPjQ8L3BhcmFtPg0KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJtYXhMZW5ndGgiPjEwPC9wYXJhbT4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9ycy5yYW5nZSIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorICAgIDxmaWVsZCBuYW1lPSJwYXNzd29yZDIiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5wYXNzd29yZDIucmVxdWlyZWQiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKyAgICA8dmFsaWRhdG9yIHR5cGU9ImV4cHJlc3Npb24iPg0KKyAgICAgICAgPHBhcmFtIG5hbWU9ImV4cHJlc3Npb24iPnBhc3N3b3JkIGVxIHBhc3N3b3JkMjwvcGFyYW0+DQorICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnBhc3N3b3JkLm1hdGNoIi8+DQorICAgIDwvdmFsaWRhdG9yPg0KKw0KKzwvdmFsaWRhdG9ycz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvcmVnaXN0cmF0aW9uL0NyZWF0ZS5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9DcmVhdGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41M2ZkYWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9DcmVhdGUuamF2YQpAQCAtMCwwICsxLDM3IEBACitwYWNrYWdlIG1haWxyZWFkZXIyLnJlZ2lzdHJhdGlvbjsNCisNCitpbXBvcnQgbWFpbHJlYWRlcjIuQ29uc3RhbnRzOw0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7DQorDQorLyoqDQorICogPHA+SW5zZXJ0IG5ldyB1c2VyLCBwcm92aWRpbmcgZXh0cmEgdmFsaWRhdGlvbi48L3A+DQorICogPHAvPg0KKyAqIDxwPihPbiBhbiB1cGRhdGUsIHRoZSBwYXNzd29yZCBjaGFuZ2UgaXMgb3B0aW9uYWwuKTwvcD4NCisgKi8NCitwdWJsaWMgZmluYWwgY2xhc3MgQ3JlYXRlIGV4dGVuZHMgVXBkYXRlIHsNCisNCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkNCisgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9uIHsNCisNCisgICAgICAgIC8vIHRydXN0IGJ1dCB2ZXJpZnkNCisgICAgICAgIGJvb2xlYW4gY3JlYXRpbmcgPSBDb25zdGFudHMuQ1JFQVRFLmVxdWFscyhnZXRUYXNrKCkpOw0KKyAgICAgICAgY3JlYXRpbmcgPSBjcmVhdGluZyAmJiBpc0NyZWF0aW5nKCk7DQorICAgICAgICBpZiAoIWNyZWF0aW5nKSB7DQorICAgICAgICAgICAgYWRkQWN0aW9uRXJyb3IoInJlZ2lzdHJhdGlvbi9DcmVhdGU6ICIpOw0KKyAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKENvbnN0YW50cy5FUlJPUl9JTlZBTElEX1dPUktGTE9XKTsNCisgICAgICAgICAgICByZXR1cm4gRVJST1I7DQorICAgICAgICB9DQorDQorICAgICAgICBVc2VyIHVzZXIgPSBmaW5kVXNlcihnZXRVc2VybmFtZSgpLCBnZXRQYXNzd29yZCgpKTsNCisgICAgICAgIGJvb2xlYW4gaGF2ZVVzZXIgPSAodXNlciAhPSBudWxsKTsNCisNCisgICAgICAgIGlmIChoYXZlVXNlcikgew0KKyAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKGdldFRleHQoImVycm9yLnVzZXJuYW1lLnVuaXF1ZSIpKTsNCisgICAgICAgICAgICByZXR1cm4gSU5QVVQ7DQorICAgICAgICB9DQorDQorICAgICAgICBjb3B5VXNlcihnZXRVc2VybmFtZSgpLCBnZXRQYXNzd29yZCgpKTsNCisNCisgICAgICAgIHJldHVybiBTVUNDRVNTOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9yZWdpc3RyYXRpb24vSW5wdXQuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9yZWdpc3RyYXRpb24vSW5wdXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDM0MzY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9JbnB1dC5qYXZhCkBAIC0wLDAgKzEsMzEgQEAKK3BhY2thZ2UgbWFpbHJlYWRlcjIucmVnaXN0cmF0aW9uOw0KKw0KK2ltcG9ydCBtYWlscmVhZGVyMi5Db25zdGFudHM7DQorDQorLyoqDQorICogPHA+IFJldHJpZXZlIFVzZXIgb2JqZWN0IHRvIGVkaXQgb3IgbnVsbCBpZiBVc2VyIGRvZXMgbm90IGV4aXN0LiA8L3A+DQorICovDQorcHVibGljIGNsYXNzIElucHV0IGV4dGVuZHMgU3VwcG9ydCB7DQorDQorICAgIC8qKg0KKyAgICAgKiA8cD4gUmV0cmlldmUgVXNlciBvYmplY3QgdG8gZWRpdCBvciBudWxsIGlmIFVzZXIgZG9lcyBub3QgZXhpc3QuIDwvcD4NCisgICAgICoNCisgICAgICogQHJldHVybiBUaGUgIlN1Y2Nlc3MiIHJlc3VsdCBmb3IgdGhpcyBtYXBwaW5nDQorICAgICAqIEB0aHJvd3MgRXhjZXB0aW9uIG9uIGFueSBlcnJvcg0KKyAgICAgKi8NCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorDQorICAgICAgICBpZiAoaXNDcmVhdGluZygpKSB7DQorICAgICAgICAgICAgY3JlYXRlSW5wdXRVc2VyKCk7DQorICAgICAgICAgICAgc2V0VGFzayhDb25zdGFudHMuQ1JFQVRFKTsNCisgICAgICAgIH0gZWxzZSB7DQorICAgICAgICAgICAgc2V0VGFzayhDb25zdGFudHMuRURJVCk7DQorICAgICAgICAgICAgc2V0VXNlcm5hbWUoZ2V0VXNlcigpLmdldFVzZXJuYW1lKCkpOw0KKyAgICAgICAgICAgIHNldFBhc3N3b3JkKGdldFVzZXIoKS5nZXRQYXNzd29yZCgpKTsNCisgICAgICAgICAgICBzZXRQYXNzd29yZDIoZ2V0VXNlcigpLmdldFBhc3N3b3JkKCkpOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgcmV0dXJuIFNVQ0NFU1M7DQorICAgIH0NCisNCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9TdXBwb3J0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvcmVnaXN0cmF0aW9uL1N1cHBvcnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzE2MzE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9TdXBwb3J0LmphdmEKQEAgLTAsMCArMSwyMCBAQAorcGFja2FnZSBtYWlscmVhZGVyMi5yZWdpc3RyYXRpb247DQorDQoraW1wb3J0IG1haWxyZWFkZXIyLk1haWxyZWFkZXJTdXBwb3J0Ow0KK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7DQorDQorLyoqDQorICogPHA+QmFzZSBjbGFzcyB0byBzdG9yZSBzaGFyZWQgbWV0aG9kcy48L3A+DQorICovDQorcHVibGljIGNsYXNzIFN1cHBvcnQgZXh0ZW5kcyBNYWlscmVhZGVyU3VwcG9ydCB7DQorDQorICAgIC8qKg0KKyAgICAgKiA8cD5Eb3VibGUgY2hlY2sgdGhhdCB0aGVyZSBpcyBub3QgYSB2YWxpZCBVc2VyIGxvZ29uLiA8L3A+DQorICAgICAqDQorICAgICAqIEByZXR1cm4gVHJ1ZSBpZiB0aGVyZSBpcyBub3QgYSB2YWxpZCBVc2VyIGxvZ29uDQorICAgICAqLw0KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0NyZWF0aW5nKCkgew0KKyAgICAgICAgVXNlciB1c2VyID0gZ2V0VXNlcigpOw0KKyAgICAgICAgcmV0dXJuIChudWxsID09IHVzZXIpIHx8IChudWxsID09IHVzZXIuZ2V0RGF0YWJhc2UoKSk7DQorICAgIH0NCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9VcGRhdGUtdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvcmVnaXN0cmF0aW9uL1VwZGF0ZS12YWxpZGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NGQ2NmJjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3JlZ2lzdHJhdGlvbi9VcGRhdGUtdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+DQorDQorPHZhbGlkYXRvcnM+DQorDQorICAgIDxmaWVsZCBuYW1lPSJ1c2VybmFtZSI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIi8+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9InVzZXIuZnVsbE5hbWUiPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJyZXF1aXJlZHN0cmluZyI+DQorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvci5mdWxsTmFtZS5yZXF1aXJlZCIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorICAgIDxmaWVsZCBuYW1lPSJ1c2VyLmZyb21BZGRyZXNzIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IuZnJvbUFkZHJlc3MucmVxdWlyZWQiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJlbWFpbCI+DQorICAgICAgICAgICAgPG1lc3NhZ2Uga2V5PSJlcnJvcnMuZW1haWwiLz4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKw0KKyAgICA8ZmllbGQgbmFtZT0idXNlci5yZXBseVRvQWRkcmVzcyI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9ImVtYWlsIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9ycy5lbWFpbCIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorPC92YWxpZGF0b3JzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9yZWdpc3RyYXRpb24vVXBkYXRlLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvcmVnaXN0cmF0aW9uL1VwZGF0ZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkMTE2ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvcmVnaXN0cmF0aW9uL1VwZGF0ZS5qYXZhCkBAIC0wLDAgKzEsNDUgQEAKK3BhY2thZ2UgbWFpbHJlYWRlcjIucmVnaXN0cmF0aW9uOw0KKw0KK2ltcG9ydCBtYWlscmVhZGVyMi5Db25zdGFudHM7DQorDQorLyoqDQorICogPHA+IFVwZGF0ZSBSZWdpc3RyYXRpb24gb2JqZWN0IHRvIHRoZSBwZXJzaXN0ZW50IHN0b3JlLiA8L3A+DQorICovDQorcHVibGljIGNsYXNzIFVwZGF0ZSBleHRlbmRzIFN1cHBvcnQgew0KKw0KKyAgICBwcml2YXRlIFN0cmluZyBmaXhOdWxsKFN0cmluZyB2YWx1ZSkgew0KKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiBudWxsOw0KKyAgICAgICAgU3RyaW5nIGJ1ZmZlciA9IHZhbHVlLnRyaW0oKTsNCisgICAgICAgIGlmIChidWZmZXIubGVuZ3RoKCkgPT0gMCkgcmV0dXJuIG51bGw7DQorICAgICAgICByZXR1cm4gYnVmZmVyOw0KKyAgICB9DQorDQorICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpDQorICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7DQorDQorICAgICAgICBib29sZWFuIGNyZWF0aW5nID0gQ29uc3RhbnRzLkNSRUFURS5lcXVhbHMoZ2V0VGFzaygpKTsNCisgICAgICAgIGNyZWF0aW5nID0gY3JlYXRpbmcgJiYgaXNDcmVhdGluZygpOyAvLyB0cnVzdCBidXQgdmVyaWZ5DQorICAgICAgICBpZiAoY3JlYXRpbmcpIHsNCisgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcigicmVnaXN0cmF0aW9uL1VwZGF0ZTogIik7DQorICAgICAgICAgICAgYWRkQWN0aW9uRXJyb3IoQ29uc3RhbnRzLkVSUk9SX0lOVkFMSURfV09SS0ZMT1cpOyAgICAgICAgICAgIA0KKyAgICAgICAgICAgIHJldHVybiBFUlJPUjsNCisgICAgICAgIH0NCisgICAgICAgIC8vIEZJWE1FOiBBbnkgd2F5IHRvIGNhbGwgdGhlIFVwZGF0ZSB2YWxpZGF0b3JzIGZyb20gaGVyZT8NCisgICAgICAgIFN0cmluZyBuZXdQYXNzd29yZCA9IGZpeE51bGwoZ2V0UGFzc3dvcmQoKSk7DQorICAgICAgICBTdHJpbmcgY29uZmlybVBhc3N3b3JkID0gZml4TnVsbChnZXRQYXNzd29yZDIoKSk7DQorICAgICAgICBpZiAobmV3UGFzc3dvcmQgIT0gbnVsbCkgew0KKyAgICAgICAgICAgIGJvb2xlYW4gbWF0Y2hlcyA9ICgoY29uZmlybVBhc3N3b3JkICE9IG51bGwpDQorICAgICAgICAgICAgICAgICAgICAmJiAoY29uZmlybVBhc3N3b3JkLmVxdWFscyhuZXdQYXNzd29yZCkpKTsNCisgICAgICAgICAgICBpZiAobWF0Y2hlcykgew0KKyAgICAgICAgICAgICAgICBnZXRVc2VyKCkuc2V0UGFzc3dvcmQobmV3UGFzc3dvcmQpOw0KKyAgICAgICAgICAgIH0gZWxzZSB7DQorICAgICAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKGdldFRleHQoImVycm9yLnBhc3N3b3JkLm1hdGNoIikpOw0KKyAgICAgICAgICAgICAgICByZXR1cm4gSU5QVVQ7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgc2F2ZVVzZXIoKTsNCisNCisgICAgICAgIHJldHVybiBTVUNDRVNTOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9zdWJzY3JpcHRpb24vRGVsZXRlLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvc3Vic2NyaXB0aW9uL0RlbGV0ZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5MzkxNmYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvc3Vic2NyaXB0aW9uL0RlbGV0ZS5qYXZhCkBAIC0wLDAgKzEsMTUgQEAKK3BhY2thZ2UgbWFpbHJlYWRlcjIuc3Vic2NyaXB0aW9uOw0KKw0KK2ltcG9ydCBtYWlscmVhZGVyMi5Db25zdGFudHM7DQorDQorLyoqDQorICogPHA+UHJlcGFyZSB0byBwcmVzZW50IGEgY29uZmlybWF0aW9uIHBhZ2UgYmVmb3JlIHJlbW92aW5nDQorICogc3Vic2NyaXB0aW9uLjwvcD4NCisgKi8NCitwdWJsaWMgY2xhc3MgRGVsZXRlIGV4dGVuZHMgRWRpdCB7DQorDQorICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24gew0KKyAgICAgICAgc2V0VGFzayhDb25zdGFudHMuREVMRVRFKTsNCisgICAgICAgIHJldHVybiBmaW5kKCk7DQorICAgIH0NCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9FZGl0LXZhbGlkYXRpb24ueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9FZGl0LXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmOTAzYzIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvc3Vic2NyaXB0aW9uL0VkaXQtdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIHZhbGlkYXRvcnMgUFVCTElDICItLy9PcGVuU3ltcGhvbnkgR3JvdXAvL1hXb3JrIFZhbGlkYXRvciAxLjAuMi8vRU4iICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+DQorDQorPHZhbGlkYXRvcnM+DQorDQorICAgIDxmaWVsZCBuYW1lPSJob3N0Ij4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IuaG9zdC5yZXF1aXJlZCIvPg0KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+DQorICAgIDwvZmllbGQ+DQorDQorPC92YWxpZGF0b3JzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9zdWJzY3JpcHRpb24vRWRpdC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9FZGl0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWJhZjNmOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9zdWJzY3JpcHRpb24vRWRpdC5qYXZhCkBAIC0wLDAgKzEsMTYgQEAKK3BhY2thZ2UgbWFpbHJlYWRlcjIuc3Vic2NyaXB0aW9uOw0KKw0KK2ltcG9ydCBtYWlscmVhZGVyMi5Db25zdGFudHM7DQorDQorLyoqDQorICogPHA+UHJlcGFyZSB0byBlZGl0IFVzZXIgU3VwcG9ydC48L3A+DQorICovDQorcHVibGljIGNsYXNzIEVkaXQgZXh0ZW5kcyBTdXBwb3J0IHsNCisNCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorICAgICAgICBzZXRUYXNrKENvbnN0YW50cy5FRElUKTsNCisgICAgICAgIHJldHVybiBmaW5kKCk7DQorICAgIH0NCisNCisNCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9JbnB1dC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9JbnB1dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNTNkZDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvc3Vic2NyaXB0aW9uL0lucHV0LmphdmEKQEAgLTAsMCArMSwxNyBAQAorcGFja2FnZSBtYWlscmVhZGVyMi5zdWJzY3JpcHRpb247DQorDQoraW1wb3J0IG1haWxyZWFkZXIyLkNvbnN0YW50czsNCisNCisvKioNCisgKiA8cD5TZXR1cCBhIHRlbXBvcmFyeSBVc2VyIFN1cHBvcnQgb2JqZWN0IHRvIGNhcHR1cmUgaW5wdXQNCisgKiB2YWx1ZXMuPC9wPg0KKyAqLw0KK3B1YmxpYyBjbGFzcyBJbnB1dCBleHRlbmRzIFN1cHBvcnQgew0KKw0KKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB7DQorICAgICAgICBjcmVhdGVJbnB1dFN1YnNjcmlwdGlvbigpOw0KKyAgICAgICAgc2V0VGFzayhDb25zdGFudHMuQ1JFQVRFKTsNCisgICAgICAgIHJldHVybiBTVUNDRVNTOw0KKyAgICB9DQorDQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9zdWJzY3JpcHRpb24vU3VwcG9ydC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9TdXBwb3J0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI4ODBlOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9zdWJzY3JpcHRpb24vU3VwcG9ydC5qYXZhCkBAIC0wLDAgKzEsNjkgQEAKK3BhY2thZ2UgbWFpbHJlYWRlcjIuc3Vic2NyaXB0aW9uOw0KKw0KK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5QcmVwYXJhYmxlOw0KK2ltcG9ydCBtYWlscmVhZGVyMi5NYWlscmVhZGVyU3VwcG9ydDsNCitpbXBvcnQgbWFpbHJlYWRlcjIuQ29uc3RhbnRzOw0KKw0KK2ltcG9ydCBqYXZhLnV0aWwuTGlua2VkSGFzaE1hcDsNCitpbXBvcnQgamF2YS51dGlsLk1hcDsNCisNCisvKioNCisgKiA8cD4gUHJvdmlkZSBhbiBFZGl0IG1ldGhvZCBmb3IgcmV0cmlldmluZyBhbiBleGlzdGluZyBzdWJzY3JpcHRpb24sIGFuZCBhDQorICogVXBkYXRlIG1ldGhvZCBmb3IgdXBkYXRpbmcgb3IgaW5zZXJ0aW5nIGEgc3Vic2NyaXB0aW9uLiA8L3A+DQorICovDQorcHVibGljIGNsYXNzIFN1cHBvcnQgZXh0ZW5kcyBNYWlscmVhZGVyU3VwcG9ydA0KKyAgICAgICAgaW1wbGVtZW50cyBQcmVwYXJhYmxlIHsNCisNCisgICAgLyoqDQorICAgICAqIDxwPkZpZWxkIHRvIHN0b3JlIGxpc3Qgb2YgTWFpbFNlcnZlciB0eXBlczwvcD4NCisgICAgICovDQorICAgIHByaXZhdGUgTWFwIHR5cGVzID0gbnVsbDsNCisNCisgICAgLyoqDQorICAgICAqIDxwPlByb3ZpZGUgdGhlIGxpc3Qgb2YgTWFpbFNlcnZlciB0eXBlcy48L3A+DQorICAgICAqDQorICAgICAqIEByZXR1cm4gTGlzdCBvZiBNYWlsU2VydmVyIHR5cGVzDQorICAgICAqLw0KKyAgICBwdWJsaWMgTWFwIGdldFR5cGVzKCkgew0KKyAgICAgICAgcmV0dXJuIHR5cGVzOw0KKyAgICB9DQorDQorICAgIC8qKg0KKyAgICAgKiA8cD5TZXR1cCB0aGUgTWFpbGVyU2VydmVyIHR5cGVzIGFuZCBzZXQgdGhlIGxvY2FsIEhvc3QgcHJvcGVydHkgZnJvbQ0KKyAgICAgKiB0aGUgVXNlciBTdXBwb3J0IChpZiBhbnkpLiA8L3A+DQorICAgICAqLw0KKyAgICBwdWJsaWMgdm9pZCBwcmVwYXJlKCkgew0KKw0KKyAgICAgICAgTWFwIG0gPSBuZXcgTGlua2VkSGFzaE1hcCgpOw0KKyAgICAgICAgbS5wdXQoImltYXAiLCAiSU1BUCBQcm90b2NvbCIpOw0KKyAgICAgICAgbS5wdXQoInBvcDMiLCAiUE9QMyBQcm90b2NvbCIpOw0KKyAgICAgICAgdHlwZXMgPSBtOw0KKw0KKyAgICAgICAgc2V0SG9zdChnZXRTdWJzY3JpcHRpb25Ib3N0KCkpOw0KKw0KKyAgICB9DQorDQorICAgIC8qKg0KKyAgICAgKiA8cD5Mb2FkIFVzZXIgU3VwcG9ydCBmb3IgdGhlIGxvY2FsIEhvc3QgcHJvcGVydHkuPC9wPg0KKyAgICAgKiA8cC8+DQorICAgICAqIDxwPlVzdWFsbHksIHRoZSBIb3N0IGlzIGJlaW5nIHNldCBmcm9tIHRoZSByZXF1ZXN0IGJ5IGEgbGluayB0byBhbiBFZGl0DQorICAgICAqIG9yIERlbGV0ZSB0YXNrLjwvcD4NCisgICAgICoNCisgICAgICogQHJldHVybiBJTlBVVCBvciBFcnJvciwgaWYgU3VwcG9ydCBpcyBub3QgZm91bmQNCisgICAgICovDQorICAgIHB1YmxpYyBTdHJpbmcgZmluZCgpIHsNCisNCisgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uU3Vic2NyaXB0aW9uDQorICAgICAgICAgICAgICAgIHN1YiA9IGZpbmRTdWJzY3JpcHRpb24oKTsNCisNCisgICAgICAgIGlmIChzdWIgPT0gbnVsbCkgew0KKyAgICAgICAgICAgIGFkZEFjdGlvbkVycm9yKCJmaW5kIChTdWJzY3JpcHRpb24pOiAiKTsNCisgICAgICAgICAgICBhZGRBY3Rpb25FcnJvcihDb25zdGFudHMuRVJST1JfSU5WQUxJRF9XT1JLRkxPVyk7ICAgICAgICAgICAgDQorICAgICAgICAgICAgcmV0dXJuIEVSUk9SOw0KKyAgICAgICAgfQ0KKw0KKyAgICAgICAgc2V0U3Vic2NyaXB0aW9uKHN1Yik7DQorDQorICAgICAgICByZXR1cm4gU1VDQ0VTUzsNCisgICAgfQ0KK30NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvc3Vic2NyaXB0aW9uL1VwZGF0ZS12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9zdWJzY3JpcHRpb24vVXBkYXRlLXZhbGlkYXRpb24ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmMmY2ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvbWFpbHJlYWRlcjIvc3Vic2NyaXB0aW9uL1VwZGF0ZS12YWxpZGF0aW9uLnhtbApAQCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4NCisNCis8dmFsaWRhdG9ycz4NCisNCisgICAgPGZpZWxkIG5hbWU9InN1YnNjcmlwdGlvbi51c2VybmFtZSI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIi8+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9InN1YnNjcmlwdGlvbi5wYXNzd29yZCI+DQorICAgICAgICA8ZmllbGQtdmFsaWRhdG9yIHR5cGU9InJlcXVpcmVkc3RyaW5nIj4NCisgICAgICAgICAgICA8bWVzc2FnZSBrZXk9ImVycm9yLnBhc3N3b3JkLnJlcXVpcmVkIi8+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCisgICAgPGZpZWxkIG5hbWU9InN1YnNjcmlwdGlvbi50eXBlIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlIGtleT0iZXJyb3IudHlwZS5pbnZhbGlkIi8+DQorICAgICAgICA8L2ZpZWxkLXZhbGlkYXRvcj4NCisgICAgPC9maWVsZD4NCisNCis8L3ZhbGlkYXRvcnM+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL21haWxyZWFkZXIyL3N1YnNjcmlwdGlvbi9VcGRhdGUuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9zdWJzY3JpcHRpb24vVXBkYXRlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM3N2Y4MgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9tYWlscmVhZGVyMi9zdWJzY3JpcHRpb24vVXBkYXRlLmphdmEKQEAgLTAsMCArMSwzOCBAQAorcGFja2FnZSBtYWlscmVhZGVyMi5zdWJzY3JpcHRpb247DQorDQoraW1wb3J0IG1haWxyZWFkZXIyLkNvbnN0YW50czsNCisNCisvKioNCisgKiA8cD4gV29ya2Fyb3VuZCBjbGFzcy4gU3VibWl0dGluZyB0byBhbiBhbGlhcyBkb2Vzbid0IHNlZW0gdG8gd29yay4gPC9wPg0KKyAqLw0KK3B1YmxpYyBmaW5hbCBjbGFzcyBVcGRhdGUgZXh0ZW5kcyBFZGl0IHsNCisNCisgICAgcHVibGljIHZvaWQgcHJlcGFyZSgpIHsNCisgICAgICAgIHN1cGVyLnByZXBhcmUoKTsNCisgICAgICAgIC8vIGNoZWNrYm94IHdvcmthcm91bmQNCisgICAgICAgIGdldFN1YnNjcmlwdGlvbigpLnNldEF1dG9Db25uZWN0KGZhbHNlKTsNCisgICAgfQ0KKw0KKyAgICAvKioNCisgICAgICogPHA+IEV4YW1pbmUgdGhlIFRhc2sgcHJvcGVydHkgYW5kIERFTEVURSwgQ1JFQVRFLCBvciBzYXZlIHRoZSBVc2VyDQorICAgICAqIFN1cHBvcnQsIGFzIGFwcHJvcHJpYXRlLiA8L3A+DQorICAgICAqDQorICAgICAqIEByZXR1cm4gU1VDQ0VTUw0KKyAgICAgKiBAdGhyb3dzIEV4Y2VwdGlvbiBvbiBhIGRhdGFiYXNlIGVycm9yDQorICAgICAqLw0KKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisNCisgICAgICAgIGlmIChDb25zdGFudHMuREVMRVRFLmVxdWFscyhnZXRUYXNrKCkpKSB7DQorICAgICAgICAgICAgcmVtb3ZlU3Vic2NyaXB0aW9uKCk7DQorICAgICAgICB9DQorDQorICAgICAgICBpZiAoQ29uc3RhbnRzLkNSRUFURS5lcXVhbHMoZ2V0VGFzaygpKSkgew0KKyAgICAgICAgICAgIGNvcHlTdWJzY3JpcHRpb24oZ2V0SG9zdCgpKTsNCisgICAgICAgIH0NCisNCisgICAgICAgIGlmIChoYXNFcnJvcnMoKSkgcmV0dXJuIElOUFVUOw0KKw0KKyAgICAgICAgc2F2ZVVzZXIoKTsNCisgICAgICAgIHJldHVybiBTVUNDRVNTOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9zdHJ1dHMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9zdHJ1dHMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTM1NWUzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9qYXZhL3N0cnV0cy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMyBAQAorc3RydXRzLm9iamVjdEZhY3RvcnkgPSBzcHJpbmcKK3N0cnV0cy5kZXZNb2RlID0gdHJ1ZQorc3RydXRzLmVuYWJsZS5EeW5hbWljTWV0aG9kSW52b2NhdGlvbiA9IGZhbHNlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvc3RydXRzLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vamF2YS9zdHJ1dHMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlN2E4ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL2phdmEvc3RydXRzLnhtbApAQCAtMCwwICsxLDU0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4KKzwhRE9DVFlQRSBzdHJ1dHMgUFVCTElDCisgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDIuMC8vRU4iCisgICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtMi4wLmR0ZCI+CisKKzxzdHJ1dHM+CisgICAgPGluY2x1ZGUgZmlsZT0ic3RydXRzLWRlZmF1bHQueG1sIi8+CisKKyAgICA8cGFja2FnZSBuYW1lPSJkZWZhdWx0IiBuYW1lc3BhY2U9IiIgZXh0ZW5kcz0ic3RydXRzLWRlZmF1bHQiPgorCisgICAgICAgIDxnbG9iYWwtcmVzdWx0cz4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iZXJyb3IiPi9wYWdlcy9FcnJvci5qc3A8L3Jlc3VsdD4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0iaW52YWxpZC50b2tlbiI+L3BhZ2VzL0Vycm9yLmpzcDwvcmVzdWx0PgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJzdWNjZXNzIiB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPk1haW5NZW51PC9yZXN1bHQ+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImV4cGlyZWQiIHR5cGU9ImNoYWluIj5DaGFuZ2VQYXNzd29yZDwvcmVzdWx0PgorICAgICAgICA8L2dsb2JhbC1yZXN1bHRzPgorCisgICAgICAgIDxnbG9iYWwtZXhjZXB0aW9uLW1hcHBpbmdzPgorICAgICAgICAgICAgPGV4Y2VwdGlvbi1tYXBwaW5nCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdD0iZXJyb3IiCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbj0iamF2YS5sYW5nLlRocm93YWJsZSIvPgorICAgICAgICAgICAgPGV4Y2VwdGlvbi1tYXBwaW5nCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbj0ib3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5FeHBpcmVkUGFzc3dvcmRFeGNlcHRpb24iCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdD0iZXhwaXJlZCIvPgorICAgICAgICA8L2dsb2JhbC1leGNlcHRpb24tbWFwcGluZ3M+CisKKyAgICAgICAgPCEtLSBnb3RvIGFjdGlvbnM6IEV4aXQgdG8gYW5vdGhlciB3b3JrZmxvdyAtLT4KKworICAgICAgICA8YWN0aW9uIG5hbWU9InN1YnNjcmlwdGlvbi9TYXZlIiBjbGFzcz0ibWFpbHJlYWRlcjIuc3Vic2NyaXB0aW9uLlVwZGF0ZSI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvc3Vic2NyaXB0aW9uLmpzcDwvcmVzdWx0PgorICAgICAgICAgICAgPHJlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPnJlZ2lzdHJhdGlvbi8rSW5wdXQ8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPCEtLSBkaXNwbGF5IGFjdGlvbnM6IFdlbGNvbWUsIExvZ29mZiwgTWFpbk1lbnUgLS0+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSIqIiBjbGFzcz0ibWFpbHJlYWRlcjIuezF9Ij4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL3sxfS5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPCEtLSBwcmVwYXJlIGFjdGlvbnM6IENvbmZpcm0vRGVsZXRlLCBFZGl0LCBJbnB1dCAtLT4KKworICAgICAgICA8YWN0aW9uIG5hbWU9IiovKyoiIGNsYXNzPSJtYWlscmVhZGVyMi57MX0uezJ9Ij4KKyAgICAgICAgICAgIDxyZXN1bHQ+L3BhZ2VzL3sxfS5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPCEtLSBleGVjdXRlIGFjdGlvbnM6IENyZWF0ZSwgUmV0cmlldmUsIFVwZGF0ZSwgVXBkYXRlIC0tPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iKi8qIiBjbGFzcz0ibWFpbHJlYWRlcjIuezF9LnsyfSI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vcGFnZXMvezF9LmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworICAgPC9wYWNrYWdlPgorCis8L3N0cnV0cz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vcmVzb3VyY2VzL2FsdGVybmF0ZS5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9yZXNvdXJjZXMvYWx0ZXJuYXRlLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDVmNGRkNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vcmVzb3VyY2VzL2FsdGVybmF0ZS5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMyBAQAorcGFzc3dvcmQ9RW50ZXIgeW91ciBQYXNzd29yZCBoZXJlID09Pgorc3RydXRzLmxvZ28ucGF0aD0vc3RydXRzLXBvd2VyLmdpZgorc3RydXRzLmxvZ28uYWx0PVBvd2VyZWQgYnkgU3RydXRzCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3Jlc291cmNlcy9hbHRlcm5hdGVfamEucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vcmVzb3VyY2VzL2FsdGVybmF0ZV9qYS5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4MWFkYzgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3Jlc291cmNlcy9hbHRlcm5hdGVfamEucHJvcGVydGllcwpAQCAtMCwwICsxIEBACisucGFzc3dvcmQ9XHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5XHUzMDkyXHU1MTY1XHU1MjliPT0+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3Jlc291cmNlcy9hcHBsaWNhdGlvbkNvbnRleHQueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9yZXNvdXJjZXMvYXBwbGljYXRpb25Db250ZXh0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOThlMWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi9yZXNvdXJjZXMvYXBwbGljYXRpb25Db250ZXh0LnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgYmVhbnMgUFVCTElDICItLy9TUFJJTkcvL0RURCBCRUFOLy9FTiIgImh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm9yZy9kdGQvc3ByaW5nLWJlYW5zLmR0ZCI+CisKKzxiZWFucyBkZWZhdWx0LWF1dG93aXJlPSJhdXRvZGV0ZWN0Ij4KKyAgICA8IS0tIGFkZCB5b3VyIHNwcmluZyBiZWFucyBoZXJlIC0tPgorPC9iZWFucz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3Jlc291cmNlcy9kYXRhYmFzZS54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3Jlc291cmNlcy9kYXRhYmFzZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJjODMzZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vcmVzb3VyY2VzL2RhdGFiYXNlLnhtbApAQCAtMCwwICsxLDEzIEBACis8P3htbCB2ZXJzaW9uPScxLjAnPz4KKzxkYXRhYmFzZT4KKyAgICA8dXNlciB1c2VybmFtZT0idXNlciIgZnJvbUFkZHJlc3M9IkpvaG4uVXNlckBzb21ld2hlcmUuY29tIgorICAgICAgICAgIGZ1bGxOYW1lPSJKb2huIFEuIFVzZXIiIHBhc3N3b3JkPSJwYXNzIj4KKyAgICAgICAgPHN1YnNjcmlwdGlvbiBob3N0PSJtYWlsLmhvdG1haWwuY29tIiBhdXRvQ29ubmVjdD0iZmFsc2UiCisgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ9ImJhciIgdHlwZT0icG9wMyIgdXNlcm5hbWU9InVzZXIxMjM0Ij4KKyAgICAgICAgPC9zdWJzY3JpcHRpb24+CisgICAgICAgIDxzdWJzY3JpcHRpb24gaG9zdD0ibWFpbC55YWhvby5jb20iIGF1dG9Db25uZWN0PSJmYWxzZSIgcGFzc3dvcmQ9ImZvbyIKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJpbWFwIiB1c2VybmFtZT0ianF1c2VyIj4KKyAgICAgICAgPC9zdWJzY3JpcHRpb24+CisgICAgPC91c2VyPgorPC9kYXRhYmFzZT4KKyAgICAgICAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvTUVUQS1JTkYvY29udGV4dC54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3dlYmFwcC9NRVRBLUlORi9jb250ZXh0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBiNWQwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvTUVUQS1JTkYvY29udGV4dC54bWwKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPENvbnRleHQgcGF0aD0iLyI+Cis8L0NvbnRleHQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3dlYi54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU4MzEwYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvd2ViLnhtbApAQCAtMCwwICsxLDQxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+Cis8IURPQ1RZUEUgd2ViLWFwcCBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4zLy9FTiIgImh0dHA6Ly9qYXZhLnN1bi5jb20vZHRkL3dlYi1hcHBfMl8zLmR0ZCI+Cis8d2ViLWFwcD4KKworICAgIDxkaXNwbGF5LW5hbWU+U3RydXRzIDIgTWFpbHJlYWRlcjwvZGlzcGxheS1uYW1lPgorCisgICAgPGNvbnRleHQtcGFyYW0+CisgICAgICAgIDxwYXJhbS1uYW1lPmNvbnRleHRDb25maWdMb2NhdGlvbjwvcGFyYW0tbmFtZT4KKyAgICAgICAgPHBhcmFtLXZhbHVlPmNsYXNzcGF0aCo6YXBwbGljYXRpb25Db250ZXh0Ki54bWw8L3BhcmFtLXZhbHVlPgorICAgIDwvY29udGV4dC1wYXJhbT4KKworICAgIDxmaWx0ZXI+CisgICAgICAgIDxmaWx0ZXItbmFtZT5TdHJ1dHMyPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPGZpbHRlci1jbGFzcz4KKyAgICAgICAgICAgIG9yZy5hcGFjaGUuc3RydXRzMi5kaXNwYXRjaGVyLkZpbHRlckRpc3BhdGNoZXIKKyAgICAgICAgPC9maWx0ZXItY2xhc3M+CisgICAgPC9maWx0ZXI+CisKKyAgICA8ZmlsdGVyLW1hcHBpbmc+CisgICAgICAgIDxmaWx0ZXItbmFtZT5TdHJ1dHMyPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPHVybC1wYXR0ZXJuPi8qPC91cmwtcGF0dGVybj4KKyAgICA8L2ZpbHRlci1tYXBwaW5nPgorCisgICAgPGxpc3RlbmVyPgorICAgICAgICA8bGlzdGVuZXItY2xhc3M+CisgICAgICAgICAgICBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5jb250ZXh0LkNvbnRleHRMb2FkZXJMaXN0ZW5lcgorICAgICAgICA8L2xpc3RlbmVyLWNsYXNzPgorICAgIDwvbGlzdGVuZXI+CisKKyAgICA8IS0tIEFwcGxpY2F0aW9uIExpc3RlbmVyIGZvciBNYWlscmVhZGVyIGRhdGFiYXNlIC0tPgorICAgIDxsaXN0ZW5lcj4KKyAgICAgICAgPGxpc3RlbmVyLWNsYXNzPgorICAgICAgICAgICAgbWFpbHJlYWRlcjIuQXBwbGljYXRpb25MaXN0ZW5lcgorICAgICAgICA8L2xpc3RlbmVyLWNsYXNzPgorICAgIDwvbGlzdGVuZXI+CisKKyAgICA8d2VsY29tZS1maWxlLWxpc3Q+CisgICAgICAgIDx3ZWxjb21lLWZpbGU+aW5kZXguaHRtbDwvd2VsY29tZS1maWxlPgorICAgIDwvd2VsY29tZS1maWxlLWxpc3Q+CisKKzwvd2ViLWFwcD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL2Nzcy9tYWlscmVhZGVyLmNzcyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL2Nzcy9tYWlscmVhZGVyLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmM3NjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvY3NzL21haWxyZWFkZXIuY3NzCkBAIC0wLDAgKzEsNDYgQEAKKy8qKgorKiBNYWlscmVhZGVyIHN0eWxlc2hlZXQKKyovCisKK2JvZHkgeworICAgIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7CisgICAgY29sb3I6ICMwMDAwMDA7CisgICAgbGluazogMDAwMDY2OworICAgIHZpc2l0ZWQ6ICM2NjAwNjY7CisgICAgYWN0aXZlOiAjMzNDQ0NDOworfQorCitBOmhvdmVyIHsKKyAgICBjb2xvcjogI0ZGMDAwMDsKK30KKworaDEgeworICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOworfQorCitoMiB7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Cit9CisKK2gzIHsKKyAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKK30KKworaDQgeworICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOworfQorCitoNSB7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Cit9CisKK2g2IHsKKyAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKK30KKworZm9udC5oaW50IHsKKyAgICBmb250LXN0eWxlOiBpdGFsaWM7CisgICAgZm9udC1zaXplOiA4MCU7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3dlYmFwcC9pbmRleC5odG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjhkNWY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvaW5kZXguaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8TUVUQSBIVFRQLUVRVUlWPSJSZWZyZXNoIiBDT05URU5UPSIwO1VSTD1XZWxjb21lLmFjdGlvbiI+Cis8L2hlYWQ+CisKKzxib2R5PgorPHA+TG9hZGluZyAuLi48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9DaGFuZ2VQYXNzd29yZC5qc3AgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9DaGFuZ2VQYXNzd29yZC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzdkODViZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL3BhZ2VzL0NoYW5nZVBhc3N3b3JkLmpzcApAQCAtMCwwICsxLDI1IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDx0aXRsZT48czp0ZXh0IG5hbWU9ImNoYW5nZS50aXRsZSIvPjwvdGl0bGU+CisgICAgPGxpbmsgaHJlZj0iPHM6dXJsIHZhbHVlPSIvY3NzL21haWxyZWFkZXIuY3NzIi8+IiByZWw9InN0eWxlc2hlZXQiCisgICAgICAgICAgdHlwZT0idGV4dC9jc3MiLz4KKzwvaGVhZD4KKworPGJvZHk+CisKKzxwPgorICAgIDxzOnRleHQgbmFtZT0iY2hhbmdlLm1lc3NhZ2UiLz4KKzwvcD4KKworPHA+CisgICAgPGEgaHJlZj0iPHM6dXJsIGFjdGlvbj0iTG9nb24iLz4iPgorICAgICAgICA8czp0ZXh0IG5hbWU9ImNoYW5nZS50cnkiLz4KKyAgICA8L2E+Cis8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL3BhZ2VzL0Vycm9yLmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL3BhZ2VzL0Vycm9yLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODFlZGRiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvRXJyb3IuanNwCkBAIC0wLDAgKzEsNDAgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+Cis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorPGhlYWQ+CisgICAgPHRpdGxlPlVuZXhwZWN0ZWQgRXJyb3I8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxoMj5BbiB1bmV4cGVjdGVkIGVycm9yIGhhcyBvY2N1cmVkPC9oMj4KKworPHA+CisgICAgUGxlYXNlIHJlcG9ydCB0aGlzIGVycm9yIHRvIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IKKyAgICBvciBhcHByb3ByaWF0ZSB0ZWNobmljYWwgc3VwcG9ydCBwZXJzb25uZWwuCisgICAgVGhhbmsgeW91IGZvciB5b3VyIGNvb3BlcmF0aW9uLgorPC9wPgorCis8aHIvPgorCis8aDM+RXJyb3IgTWVzc2FnZTwvaDM+CisKKzxzOmFjdGlvbmVycm9yLz4KKworPHA+CisgICAgPHM6cHJvcGVydHkgdmFsdWU9IiV7ZXhjZXB0aW9uLm1lc3NhZ2V9Ii8+Cis8L3A+CisKKzxoci8+CisKKzxoMz5UZWNobmljYWwgRGV0YWlsczwvaDM+CisKKzxwPgorICAgIDxzOnByb3BlcnR5IHZhbHVlPSIle2V4Y2VwdGlvblN0YWNrfSIvPgorPC9wPgorCis8anNwOmluY2x1ZGUgcGFnZT0iRm9vdGVyLmpzcCIvPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9Gb290ZXIuanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvRm9vdGVyLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMmVhZTFlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvRm9vdGVyLmpzcApAQCAtMCwwICsxLDYgQEAKKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzxoci8+CisKKzxwPgorICAgIDxhIGhyZWY9IjxzOnVybCBhY3Rpb249IldlbGNvbWUiIC8+Ij48czp0ZXh0IG5hbWU9ImluZGV4LnRpdGxlIi8+PC9hPgorPC9wPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvTG9nb2ZmLmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL3BhZ2VzL0xvZ29mZi5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODkyOGFlYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL3BhZ2VzL0xvZ29mZi5qc3AKQEAgLTAsMCArMSBAQAorPCUgcmVzcG9uc2Uuc2VuZFJlZGlyZWN0KCJXZWxjb21lLmFjdGlvbiIpOyAlPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvTWFpbk1lbnUuanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvTWFpbk1lbnUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkNWQ4MDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9NYWluTWVudS5qc3AKQEAgLTAsMCArMSwzMyBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+PHM6dGV4dCBuYW1lPSJtYWluTWVudS50aXRsZSIvPjwvdGl0bGU+CisgICAgPGxpbmsgaHJlZj0iPHM6dXJsIHZhbHVlPSIvY3NzL21haWxyZWFkZXIuY3NzIi8+IiByZWw9InN0eWxlc2hlZXQiCisgICAgICAgICAgdHlwZT0idGV4dC9jc3MiLz4KKzwvaGVhZD4KKworPGJvZHk+Cis8aDM+PHM6dGV4dCBuYW1lPSJtYWluTWVudS5oZWFkaW5nIi8+IDxzOnByb3BlcnR5CisgICAgICAgIHZhbHVlPSJ1c2VyLmZ1bGxOYW1lIi8+PC9oMz4KKzx1bD4KKyAgICA8bGk+CisgICAgICAgIDxzOnVybCBpZD0iSW5wdXQiIGFjdGlvbj0icmVnaXN0cmF0aW9uLytJbnB1dCIgLz4KKyAgICAgICAgPHM6YSBocmVmPSIle0lucHV0fSI+CisgICAgICAgICAgICA8czp0ZXh0IG5hbWU9Im1haW5NZW51LnJlZ2lzdHJhdGlvbiIvPgorICAgICAgICA8L3M6YT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgICAgPHM6dXJsIGlkPSJMb2dvZmYiIGFjdGlvbj0iTG9nb2ZmIi8+CisgICAgICAgIDxzOmEgaHJlZj0iJXtMb2dvZmZ9Ij4KKyAgICAgICAgICAgIDxzOnRleHQgbmFtZT0ibWFpbk1lbnUubG9nb2ZmIi8+CisgICAgICAgIDwvczphPgorICAgIDwvbGk+Cis8L3VsPgorCis8anNwOmluY2x1ZGUgcGFnZT0iRm9vdGVyLmpzcCIvPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL3BhZ2VzL1dlbGNvbWUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2MDQ5NzQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9XZWxjb21lLmpzcApAQCAtMCwwICsxLDY0IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4KKzxoZWFkPgorICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+CisgICAgPHRpdGxlPjxzOnRleHQgbmFtZT0iaW5kZXgudGl0bGUiLz48L3RpdGxlPgorICAgIDxsaW5rIGhyZWY9IjxzOnVybCB2YWx1ZT0iL2Nzcy9tYWlscmVhZGVyLmNzcyIvPiIgcmVsPSJzdHlsZXNoZWV0IgorICAgICAgICAgIHR5cGU9InRleHQvY3NzIi8+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgzPjxzOnRleHQgbmFtZT0iaW5kZXguaGVhZGluZyIvPjwvaDM+CisKKzx1bD4KKyAgICA8bGk+CisgICAgICAgIDxzOnVybCBpZD0icmVnaXN0cmF0aW9uIiBhY3Rpb249InJlZ2lzdHJhdGlvbi8rSW5wdXQiIC8+CisgICAgICAgIDxzOmEgaHJlZj0iJXtyZWdpc3RyYXRpb259Ij48czp0ZXh0IG5hbWU9ImluZGV4LnJlZ2lzdHJhdGlvbiIvPjwvczphPgorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgICA8czp1cmwgaWQ9ImxvZ29uIiBhY3Rpb249ImxvZ29uLytJbnB1dCIvPgorICAgICAgICA8czphIGhyZWY9IiV7bG9nb259Ij48czp0ZXh0IG5hbWU9ImluZGV4LmxvZ29uIi8+PC9zOmE+CisgICAgPC9saT4KKzwvdWw+CisKKzxoMz5MYW5ndWFnZSBPcHRpb25zPC9oMz4KKzx1bD4KKyAgICA8bGk+CisgICAgICAgIDxzOnVybCBpZD0iZW4iIGFjdGlvbj0iV2VsY29tZSI+CisgICAgICAgICAgICA8czpwYXJhbSBuYW1lPSJyZXF1ZXN0X2xvY2FsZSI+ZW48L3M6cGFyYW0+CisgICAgICAgIDwvczp1cmw+CisgICAgICAgIDxzOmEgaHJlZj0iJXtlbn0iPkVuZ2xpc2g8L3M6YT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgICAgPHM6dXJsIGlkPSJqYSIgYWN0aW9uPSJXZWxjb21lIj4KKyAgICAgICAgICAgIDxzOnBhcmFtIG5hbWU9InJlcXVlc3RfbG9jYWxlIj5qYTwvczpwYXJhbT4KKyAgICAgICAgPC9zOnVybD4KKyAgICAgICAgPHM6YSBocmVmPSIle2phfSI+SmFwYW5lc2U8L3M6YT4KKyAgICA8L2xpPgorICAgIDxsaT4KKyAgICAgICAgPHM6dXJsIGlkPSJydSIgYWN0aW9uPSJXZWxjb21lIj4KKyAgICAgICAgICAgIDxzOnBhcmFtIG5hbWU9InJlcXVlc3RfbG9jYWxlIj5ydTwvczpwYXJhbT4KKyAgICAgICAgPC9zOnVybD4KKyAgICAgICAgPHM6YSBocmVmPSIle3J1fSI+UnVzc2lhbjwvczphPgorICAgIDwvbGk+Cis8L3VsPgorCis8aHIvPgorCis8cD4KKyAgICA8czppMThuIG5hbWU9ImFsdGVybmF0ZSI+CisgICAgICAgIDxpbWcgc3JjPSI8czp0ZXh0IG5hbWU9InN0cnV0cy5sb2dvLnBhdGgiLz4iCisgICAgICAgICAgICAgYWx0PSI8czp0ZXh0IG5hbWU9InN0cnV0cy5sb2dvLmFsdCIvPiIvPgorICAgIDwvczppMThuPgorPC9wPgorCis8cD4KKyAgICA8czp1cmwgaWQ9IlRvdXIiIGFjdGlvbj0iVG91ciIvPjxzOmEgaHJlZj0iJXtUb3VyfSI+PHM6dGV4dCBuYW1lPSJpbmRleC50b3VyIi8+PC9zOmE+Cis8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvbG9nb24uanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvbG9nb24uanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmMjEwZDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9sb2dvbi5qc3AKQEAgLTAsMCArMSwzMCBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4NCis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+DQorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiINCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+DQorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPg0KKzxoZWFkPg0KKyAgICA8dGl0bGU+PHM6dGV4dCBuYW1lPSJsb2dvbi50aXRsZSIvPjwvdGl0bGU+DQorICAgIDxsaW5rIGhyZWY9IjxzOnVybCB2YWx1ZT0iL2Nzcy9tYWlscmVhZGVyLmNzcyIvPiIgcmVsPSJzdHlsZXNoZWV0Ig0KKyAgICAgICAgICB0eXBlPSJ0ZXh0L2NzcyIvPg0KKzwvaGVhZD4NCisNCis8Ym9keSBvbkxvYWQ9InNlbGYuZm9jdXMoKTtkb2N1bWVudC5sb2dvbl9SZXRyaWV2ZS5sb2dvbl9SZXRyaWV2ZV91c2VybmFtZS5mb2N1cygpIj4NCisNCis8czphY3Rpb25lcnJvci8+DQorPHM6Zm9ybSBpZD0ibG9nb25fUmV0cmlldmUiIGFjdGlvbj0ibG9nb24vUmV0cmlldmUiIHZhbGlkYXRlPSJ0cnVlIj4NCisgICAgPHM6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ3VzZXJuYW1lJyl9IiBuYW1lPSJ1c2VybmFtZSIvPg0KKw0KKyAgICA8czpwYXNzd29yZCBsYWJlbD0iJXtnZXRUZXh0KCdwYXNzd29yZCcpfSIgbmFtZT0icGFzc3dvcmQiIHNob3dQYXNzd29yZD0idHJ1ZSIvPg0KKw0KKyAgICA8czpzdWJtaXQgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLnNhdmUnKX0iLz4NCisNCisgICAgPHM6cmVzZXQgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLnJlc2V0Jyl9Ii8+DQorDQorICAgIDxzOnN1Ym1pdCBhY3Rpb249IldlbGNvbWUiIHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5jYW5jZWwnKX0iDQorICAgICAgICAgICAgICBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4NCis8L3M6Zm9ybT4NCisNCis8anNwOmluY2x1ZGUgcGFnZT0iRm9vdGVyLmpzcCIvPg0KKzwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvcmVnaXN0cmF0aW9uLmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL3BhZ2VzL3JlZ2lzdHJhdGlvbi5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhiZDQ1YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL3BhZ2VzL3JlZ2lzdHJhdGlvbi5qc3AKQEAgLTAsMCArMSwxMzAgQEAKKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+DQorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPg0KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iDQorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj4NCis8aGVhZD4NCisgICAgPHM6aWYgdGVzdD0idGFzaz09J0NyZWF0ZSciPg0KKyAgICAgICAgPHRpdGxlPjxzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLnRpdGxlLmNyZWF0ZSIvPjwvdGl0bGU+DQorICAgIDwvczppZj4NCisgICAgPHM6aWYgdGVzdD0idGFzaz09J0VkaXQnIj4NCisgICAgICAgIDx0aXRsZT48czp0ZXh0IG5hbWU9InJlZ2lzdHJhdGlvbi50aXRsZS5lZGl0Ii8+PC90aXRsZT4NCisgICAgPC9zOmlmPg0KKyAgICA8bGluayBocmVmPSI8czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCINCisgICAgICAgICAgdHlwZT0idGV4dC9jc3MiLz4NCis8L2hlYWQ+DQorDQorPGJvZHkgb25Mb2FkPSJzZWxmLmZvY3VzKCk7ZG9jdW1lbnQucmVnaXN0cmF0aW9uX1VwZGF0ZS5yZWdpc3RyYXRpb25fVXBkYXRlX3VzZXJuYW1lLmZvY3VzKCkiPg0KKw0KKzxzOmFjdGlvbmVycm9yLz4NCis8czpmb3JtIGlkPSJyZWdpc3RyYXRpb25fVXBkYXRlIiBhY3Rpb249InJlZ2lzdHJhdGlvbi9VcGRhdGUiIHZhbGlkYXRlPSJ0cnVlIj4NCisgICAgPHM6dG9rZW4vPg0KKyAgICA8czpoaWRkZW4gbmFtZT0idGFzayIvPg0KKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdDcmVhdGUnIj4NCisgICAgICAgIDxzOnRleHRmaWVsZCBsYWJlbD0iJXtnZXRUZXh0KCd1c2VybmFtZScpfSIgbmFtZT0idXNlcm5hbWUiLz4NCisgICAgPC9zOmlmPg0KKyAgICA8czplbHNlPg0KKyAgICAgICAgPHM6bGFiZWwgbGFiZWw9IiV7Z2V0VGV4dCgndXNlcm5hbWUnKX0iIG5hbWU9InVzZXJuYW1lIi8+DQorICAgICAgICA8czpoaWRkZW4gbmFtZT0idXNlcm5hbWUiLz4NCisgICAgPC9zOmVsc2U+DQorDQorICAgIDxzOnBhc3N3b3JkIGxhYmVsPSIle2dldFRleHQoJ3Bhc3N3b3JkJyl9IiBuYW1lPSJwYXNzd29yZCIvPg0KKw0KKyAgICA8czpwYXNzd29yZCBsYWJlbD0iJXtnZXRUZXh0KCdwYXNzd29yZDInKX0iIG5hbWU9InBhc3N3b3JkMiIvPg0KKw0KKyAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IiV7Z2V0VGV4dCgnZnVsbE5hbWUnKX0iDQorICAgICAgICAgICAgICAgICBuYW1lPSJ1c2VyLmZ1bGxOYW1lIi8+DQorDQorICAgIDxzOnRleHRmaWVsZCBsYWJlbD0iJXtnZXRUZXh0KCdmcm9tQWRkcmVzcycpfSINCisgICAgICAgICAgICAgICAgIG5hbWU9InVzZXIuZnJvbUFkZHJlc3MiLz4NCisNCisgICAgPHM6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ3JlcGx5VG9BZGRyZXNzJyl9Ig0KKyAgICAgICAgICAgICAgICAgbmFtZT0idXNlci5yZXBseVRvQWRkcmVzcyIvPg0KKw0KKyAgICA8czppZiB0ZXN0PSJ0YXNrID09ICdDcmVhdGUnIj4NCisgICAgICAgIDxzOnN1Ym1pdCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uc2F2ZScpfSIgYWN0aW9uPSJyZWdpc3RyYXRpb24vQ3JlYXRlIi8+DQorDQorICAgICAgICA8czpyZXNldCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24ucmVzZXQnKX0iLz4NCisNCisgICAgICAgIDxzOnN1Ym1pdCBhY3Rpb249IldlbGNvbWUiIHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5jYW5jZWwnKX0iDQorICAgICAgICAgICAgICAgICAgb25jbGljaz0iZm9ybS5vbnN1Ym1pdD1udWxsIi8+DQorICAgIDwvczppZj4NCisgICAgPHM6ZWxzZT4NCisgICAgICAgIDxzOnN1Ym1pdCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uc2F2ZScpfSIvPg0KKw0KKyAgICAgICAgPHM6cmVzZXQgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLnJlc2V0Jyl9Ii8+DQorDQorICAgICAgICA8czpzdWJtaXQgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLmNhbmNlbCcpfSINCisgICAgICAgICAgICAgICAgICBhY3Rpb249Ik1haW5NZW51IiBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiLz4NCisgICAgPC9zOmVsc2U+DQorDQorPC9zOmZvcm0+DQorDQorPHM6aWYgdGVzdD0idGFzayA9PSAnRWRpdCciPg0KKyAgICA8ZGl2IGFsaWduPSJjZW50ZXIiPg0KKyAgICAgICAgPGgzPjxzOnRleHQgbmFtZT0iaGVhZGluZy5zdWJzY3JpcHRpb25zIi8+PC9oMz4NCisgICAgPC9kaXY+DQorDQorICAgIDx0YWJsZSBib3JkZXI9IjEiIHdpZHRoPSIxMDAlIj4NCisNCisgICAgICAgIDx0cj4NCisgICAgICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjMwJSI+DQorICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy5ob3N0Ii8+DQorICAgICAgICAgICAgPC90aD4NCisgICAgICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjI1JSI+DQorICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy51c2VyIi8+DQorICAgICAgICAgICAgPC90aD4NCisgICAgICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjEwJSI+DQorICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy50eXBlIi8+DQorICAgICAgICAgICAgPC90aD4NCisgICAgICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjEwJSI+DQorICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0iaGVhZGluZy5hdXRvQ29ubmVjdCIvPg0KKyAgICAgICAgICAgIDwvdGg+DQorICAgICAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxNSUiPg0KKyAgICAgICAgICAgICAgICA8czp0ZXh0IG5hbWU9ImhlYWRpbmcuYWN0aW9uIi8+DQorICAgICAgICAgICAgPC90aD4NCisgICAgICAgIDwvdHI+DQorDQorICAgICAgICA8czppdGVyYXRvciB2YWx1ZT0idXNlci5zdWJzY3JpcHRpb25zIj4NCisgICAgICAgICAgICA8dHI+DQorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+DQorICAgICAgICAgICAgICAgICAgICA8czpwcm9wZXJ0eSB2YWx1ZT0iaG9zdCIvPg0KKyAgICAgICAgICAgICAgICA8L3RkPg0KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImxlZnQiPg0KKyAgICAgICAgICAgICAgICAgICAgPHM6cHJvcGVydHkgdmFsdWU9InVzZXJuYW1lIi8+DQorICAgICAgICAgICAgICAgIDwvdGQ+DQorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4NCisgICAgICAgICAgICAgICAgICAgIDxzOnByb3BlcnR5IHZhbHVlPSJ0eXBlIi8+DQorICAgICAgICAgICAgICAgIDwvdGQ+DQorICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4NCisgICAgICAgICAgICAgICAgICAgIDxzOnByb3BlcnR5IHZhbHVlPSJhdXRvQ29ubmVjdCIvPg0KKyAgICAgICAgICAgICAgICA8L3RkPg0KKyAgICAgICAgICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+DQorICAgICAgICAgICAgICAgICAgICA8czp1cmwgaWQ9IkRlbGV0ZSIgYWN0aW9uPSJzdWJzY3JpcHRpb24vK0RlbGV0ZSIgPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzOnBhcmFtIG5hbWU9Imhvc3QiIHZhbHVlPSJob3N0Ii8+DQorICAgICAgICAgICAgICAgICAgICA8L3M6dXJsPg0KKyAgICAgICAgICAgICAgICAgICAgPHM6YSBocmVmPSIle0RlbGV0ZX0iPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLmRlbGV0ZVN1YnNjcmlwdGlvbiIvPg0KKyAgICAgICAgICAgICAgICAgICAgPC9zOmE+DQorICAgICAgICAgICAgICAgICAgICAmbmJzcDsNCisgICAgICAgICAgICAgICAgICAgIDxzOnVybCBpZD0iRWRpdCIgYWN0aW9uPSJzdWJzY3JpcHRpb24vK0VkaXQiPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzOnBhcmFtIG5hbWU9Imhvc3QiIHZhbHVlPSJob3N0Ii8+DQorICAgICAgICAgICAgICAgICAgICA8L3M6dXJsPg0KKyAgICAgICAgICAgICAgICAgICAgPHM6YSBocmVmPSIle0VkaXR9Ij4NCisgICAgICAgICAgICAgICAgICAgICAgICA8czp0ZXh0IG5hbWU9InJlZ2lzdHJhdGlvbi5lZGl0U3Vic2NyaXB0aW9uIi8+DQorICAgICAgICAgICAgICAgICAgICA8L3M6YT4NCisgICAgICAgICAgICAgICAgPC90ZD4NCisgICAgICAgICAgICA8L3RyPg0KKyAgICAgICAgPC9zOml0ZXJhdG9yPg0KKw0KKyAgICA8L3RhYmxlPg0KKw0KKyAgICA8czp1cmwgaWQ9IklucHV0IiBhY3Rpb249InN1YnNjcmlwdGlvbi8rSW5wdXQiIC8+DQorICAgIDxzOmEgaHJlZj0iJXtJbnB1dH0iPjxzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLmFkZFN1YnNjcmlwdGlvbiIvPjwvczphPg0KKw0KKzwvczppZj4NCisNCis8anNwOmluY2x1ZGUgcGFnZT0iRm9vdGVyLmpzcCIvPg0KKw0KKzwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvcmVnaXN0cmF0aW9uL1JldHJpZXZlLmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL3BhZ2VzL3JlZ2lzdHJhdGlvbi9SZXRyaWV2ZS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU5NTIyNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL3BhZ2VzL3JlZ2lzdHJhdGlvbi9SZXRyaWV2ZS5qc3AKQEAgLTAsMCArMSwzMSBAQAorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iCisiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+PHM6dGV4dCBuYW1lPSJsb2dvbi50aXRsZSIvPjwvdGl0bGU+CisgICAgPGxpbmsgaHJlZj0iPHM6dXJsIHZhbHVlPSIvY3NzL21haWxyZWFkZXIuY3NzIi8+IiByZWw9InN0eWxlc2hlZXQiCisgICAgICAgICAgdHlwZT0idGV4dC9jc3MiLz4KKzwvaGVhZD4KKworPGJvZHkgb25Mb2FkPSJzZWxmLmZvY3VzKCk7ZG9jdW1lbnQucmVnaXN0cmF0aW9uL1JldHJpZXZlLnVzZXJuYW1lLmZvY3VzKCkiPgorCis8czphY3Rpb25lcnJvci8+Cis8czp1cmwgaWQ9IlJldHJpZXZlIiBhY3Rpb249InJlZ2lzdHJhdGlvbi9SZXRyaWV2ZSIgLz4KKzxzOmZvcm0gYWN0aW9uPSJyZWdpc3RyYXRpb24vUmV0cmlldmUiIHZhbGlkYXRlPSJ0cnVlIj4KKyAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IiV7Z2V0VGV4dCgndXNlcm5hbWUnKX0iIG5hbWU9InVzZXJuYW1lIi8+CisKKyAgICA8czpwYXNzd29yZCBsYWJlbD0iJXtnZXRUZXh0KCdwYXNzd29yZCcpfSIgbmFtZT0icGFzc3dvcmQiIHNob3dQYXNzd29yZD0idHJ1ZSIvPgorCisgICAgPHM6c3VibWl0IHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5zYXZlJyl9Ii8+CisKKyAgICA8czpyZXNldCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24ucmVzZXQnKX0iLz4KKworICAgIDxzOnN1Ym1pdCBhY3Rpb249IldlbGNvbWUiIHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5jYW5jZWwnKX0iCisgICAgICAgICAgICAgIG9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCIvPgorPC9zOmZvcm0+CisKKzxqc3A6aW5jbHVkZSBwYWdlPSIuLi9Gb290ZXIuanNwIi8+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvbWFpbHJlYWRlci13aWxkb25lL3NyYy9tYWluL3dlYmFwcC9wYWdlcy9zdWJzY3JpcHRpb24uanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvc3Vic2NyaXB0aW9uLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGFjMDZkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvc3Vic2NyaXB0aW9uLmpzcApAQCAtMCwwICsxLDY4IEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPg0KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4NCis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIg0KKyJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4NCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+DQorPGhlYWQ+DQorICAgIDxzOmlmIHRlc3Q9InRhc2s9PSdDcmVhdGUnIj4NCisgICAgICAgIDx0aXRsZT48czp0ZXh0IG5hbWU9InN1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGUiLz48L3RpdGxlPg0KKyAgICA8L3M6aWY+DQorICAgIDxzOmlmIHRlc3Q9InRhc2s9PSdFZGl0JyI+DQorICAgICAgICA8dGl0bGU+PHM6dGV4dCBuYW1lPSJzdWJzY3JpcHRpb24udGl0bGUuZWRpdCIvPjwvdGl0bGU+DQorICAgIDwvczppZj4NCisgICAgPHM6aWYgdGVzdD0idGFzaz09J0RlbGV0ZSciPg0KKyAgICAgICAgPHRpdGxlPjxzOnRleHQgbmFtZT0ic3Vic2NyaXB0aW9uLnRpdGxlLmRlbGV0ZSIvPjwvdGl0bGU+DQorICAgIDwvczppZj4NCisgICAgPGxpbmsgaHJlZj0iPHM6dXJsIHZhbHVlPSIvY3NzL21haWxyZWFkZXIuY3NzIi8+IiByZWw9InN0eWxlc2hlZXQiDQorICAgICAgICAgIHR5cGU9InRleHQvY3NzIi8+DQorPC9oZWFkPg0KKw0KKzxib2R5IG9uTG9hZD0ic2VsZi5mb2N1cygpO2RvY3VtZW50LnN1YnNjcmlwdGlvbl9VcGRhdGUuc3Vic2NyaXB0aW9uX1VwZGF0ZV91c2VybmFtZS5mb2N1cygpIj4NCisNCis8czphY3Rpb25lcnJvci8+DQorPHM6Zm9ybSBpZD0ic3Vic2NyaXB0aW9uX1VwZGF0ZSIgYWN0aW9uPSJzdWJzY3JpcHRpb24vVXBkYXRlIiB2YWxpZGF0ZT0idHJ1ZSI+DQorICAgIDxzOnRva2VuLz4NCisgICAgPHM6aGlkZGVuIG5hbWU9InRhc2siLz4NCisgICAgPHM6bGFiZWwgbGFiZWw9IiV7Z2V0VGV4dCgndXNlcm5hbWUnKX0iIG5hbWU9InVzZXIudXNlcm5hbWUiLz4NCisNCisgICAgPHM6aWYgdGVzdD0idGFzayA9PSAnQ3JlYXRlJyI+DQorICAgICAgICA8czp0ZXh0ZmllbGQgbGFiZWw9IiV7Z2V0VGV4dCgnbWFpbEhvc3RuYW1lJyl9IiBuYW1lPSJob3N0Ii8+DQorICAgIDwvczppZj4NCisgICAgPHM6ZWxzZT4NCisgICAgICAgIDxzOmxhYmVsIGxhYmVsPSIle2dldFRleHQoJ21haWxIb3N0bmFtZScpfSIgbmFtZT0iaG9zdCIvPg0KKyAgICAgICAgPHM6aGlkZGVuIG5hbWU9Imhvc3QiLz4NCisgICAgPC9zOmVsc2U+DQorDQorICAgIDxzOmlmIHRlc3Q9InRhc2sgPT0gJ0RlbGV0ZSciPg0KKyAgICAgICAgPHM6bGFiZWwgbGFiZWw9IiV7Z2V0VGV4dCgnbWFpbFVzZXJuYW1lJyl9Ig0KKyAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnVzZXJuYW1lIi8+DQorICAgICAgICA8czpsYWJlbCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsUGFzc3dvcmQnKX0iDQorICAgICAgICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24ucGFzc3dvcmQiLz4NCisgICAgICAgIDxzOmxhYmVsIGxhYmVsPSIle2dldFRleHQoJ21haWxTZXJ2ZXJUeXBlJyl9Ig0KKyAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnR5cGUiLz4NCisgICAgICAgIDxzOmxhYmVsIGxhYmVsPSIle2dldFRleHQoJ2F1dG9Db25uZWN0Jyl9Ig0KKyAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLmF1dG9Db25uZWN0Ii8+DQorICAgICAgICA8czpzdWJtaXQgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLmNvbmZpcm0nKX0iLz4NCisgICAgPC9zOmlmPg0KKyAgICA8czplbHNlPg0KKyAgICAgICAgPHM6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ21haWxVc2VybmFtZScpfSINCisgICAgICAgICAgICAgICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24udXNlcm5hbWUiLz4NCisgICAgICAgIDxzOnRleHRmaWVsZCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsUGFzc3dvcmQnKX0iDQorICAgICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnBhc3N3b3JkIi8+DQorICAgICAgICA8czpzZWxlY3QgbGFiZWw9IiV7Z2V0VGV4dCgnbWFpbFNlcnZlclR5cGUnKX0iDQorICAgICAgICAgICAgICAgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnR5cGUiIGxpc3Q9InR5cGVzIi8+DQorICAgICAgICA8czpjaGVja2JveCBsYWJlbD0iJXtnZXRUZXh0KCdhdXRvQ29ubmVjdCcpfSINCisgICAgICAgICAgICAgICAgICAgIG5hbWU9InN1YnNjcmlwdGlvbi5hdXRvQ29ubmVjdCIvPg0KKyAgICAgICAgPHM6c3VibWl0IHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5zYXZlJyl9Ii8+DQorICAgICAgICA8czpyZXNldCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24ucmVzZXQnKX0iLz4NCisgICAgPC9zOmVsc2U+DQorDQorICAgIDxzOnN1Ym1pdCBhY3Rpb249InJlZ2lzdHJhdGlvbi8rSW5wdXQiDQorICAgICAgICAgICAgICB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uY2FuY2VsJyl9Ig0KKyAgICAgICAgICAgICAgb25jbGljaz0iZm9ybS5vbnN1Ym1pdD1udWxsIi8+DQorPC9zOmZvcm0+DQorDQorPGpzcDppbmNsdWRlIHBhZ2U9IkZvb3Rlci5qc3AiLz4NCisNCis8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL3BhZ2VzL3RvdXIuanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvcGFnZXMvdG91ci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZjZWI0NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL3BhZ2VzL3RvdXIuanNwCkBAIC0wLDAgKzEsMjQzMSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11cy1hc2NpaSIvPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii4uL2Nzcy9tYWlscmVhZGVyLmNzcyIvPgorCisgICAgPHRpdGxlPkEgV2Fsa2luZyBUb3VyIG9mIHRoZSBTdHJ1dHMgMiBNYWlsUmVhZGVyIEFwcGxpY2F0aW9uPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8YmxvY2txdW90ZT4KKzxoMj5BIFdhbGtpbmcgVG91ciBvZiB0aGUgU3RydXRzIDIgTWFpbFJlYWRlciBBcHBsaWNhdGlvbjwvaDI+CisKKzxwPgorICAgIDxpPgorICAgICAgICBUaGlzIGFydGljbGUgaXMgbWVhbnQgdG8gaW50cm9kdWNlIGEgbmV3IHVzZXIgdG8gQXBhY2hlIFN0cnV0cyAyIGJ5CisgICAgICAgICJ3YWxraW5nIHRocm91Z2giIGEgc2ltcGxlLCBidXQgZnVuY3Rpb25hbCwgYXBwbGljYXRpb24uCisgICAgICAgIFRoZSBhcnRpY2xlIGluY2x1ZGVzIGNvZGUgc25pcHBldHMsIGJ1dCBmb3IgdGhlIGJlc3QgcmVzdWx0LCB5b3UgbWlnaHQKKyAgICAgICAgd2FudCB0byBpbnN0YWxsIHRoZSBNYWlsUmVhZGVyIGFwcGxpY2F0aW9uIG9uIHlvdXIgb3duIGRldmVsb3BtZW50CisgICAgICAgIHdvcmtzdGF0aW9uIGFuZCBmb2xsb3cgYWxvbmcuCisgICAgICAgIE9mIGNvdXJzZSwgdGhlIGZ1bGwgc291cmNlIGNvZGUgdG8gdGhlIE1haWxSZWFkZXIgaXMgaW5jbHVkZWQgaW4gdGhlCisgICAgICAgIGRpc3RyaWJ1dGlvbi4KKyAgICA8L2k+CisKKzwvcD4KKworPHA+CisgICAgPGk+CisgICAgICAgIFRoZSB0b3VyIGFzc3VtZXMgdGhlIHJlYWRlciBoYXMgYSBiYXNpYyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBKYXZhCisgICAgICAgIGxhbmd1YWdlLCBKYXZhQmVhbnMsIHdlYiBhcHBsaWNhdGlvbnMsIGFuZCBKYXZhU2VydmVyIFBhZ2VzLiBGb3IKKyAgICAgICAgYmFja2dyb3VuZCBvbiB0aGVzZSB0ZWNobm9sb2dpZXMsIHNlZSB0aGUKKyAgICAgICAgPGEgaHJlZj0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3ByaW1lci5odG1sIj4KKyAgICAgICAgICAgIEtleSBUZWNobm9sb2dpZXMgUHJpbWVyPC9hPi4KKyAgICA8L2k+Cis8L3A+CisKKzxoci8+CisKKzxwPkxvZ2dpbmcgSW48L3A+CisKKzx1bD4KKyAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9IiNXZWxjb21lIj5XZWxjb21lPC9hPgorCisgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjd2ViLnhtbCI+d2ViLnhtbCBhbmQgcmVzb3VyY2VzLnByb3BlcnRpZXM8L2E+PC9saT4KKworICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNXZWxjb21lLmRvIj5XZWxjb21lLmRvPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjV2VsY29tZS5qYXZhIj5XZWxjb21lIEFjdGlvbjwvYT48L2xpPgorCisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI2dsb2JhbC1yZXN1bHRzIj5HbG9iYWwgUmVzdWx0czwvYT48L2xpPgorCisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI0FwcGxpY2F0aW9uTGlzdGVuZXIuamF2YSI+QXBwbGljYXRpb25MaXN0ZW5lci5qYXZhPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjcmVzb3VyY2VzLnByb3BlcnRpZXMiPk1lc3NhZ2UgUmVzb3VyY2VzPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjV2VsY29tZS5qc3AiPldlbGNvbWUgUGFnZTwvYT48L2xpPgorCisgICAgICAgIDwvdWw+CisgICAgPC9saT4KKzwvdWw+CisKKzx1bD4KKyAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9IiNMb2dvbiI+TG9nb248L2E+CisgICAgICAgIDx1bD4KKworICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNMb2dvbi5qc3AiPkxvZ29uIFBhZ2U8L2E+PC9saT4KKworICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNMb2dvbi12YWxpZGF0aW9uLnhtbCI+TG9nb24tdmFsaWRhdGlvbi54bWw8L2E+PC9saT4KKworICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNMb2dvbi5qYXZhIj5Mb2dvbi5qYXZhPC9hPjwvbGk+CisKKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjTWFpbHJlYWRlclN1cHBvcnQuamF2YSI+TWFpbHJlYWRlclN1cHBvcnQuamF2YTwvYT48L2xpPgorCisgICAgICAgICAgICA8bGk+PGEgaHJlZj0iI0xvZ29uLnhtbCI+TG9nb24gQ29uZmlndXJhdGlvbjwvYT48L2xpPgorCisgICAgICAgIDwvdWw+CisgICAgPC9saT4KKzwvdWw+CisKKzx1bD4KKyAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9IiNNYWluTWVudSI+TWFpbk1lbnU8L2E+CisgICAgPC9saT4KKzwvdWw+CisKKzx1bD4KKyAgICA8bGk+CisgICAgICAgIDxhIGhyZWY9IiNSZWdpc3RyYXRpb24uanNwIj5SZWdpc3RyYXRpb24gcGFnZTwvYT4KKyAgICAgICAgPHVsPgorICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiNpdGVyYXRvciI+aXRlcmF0b3I8L2E+PC9saT4KKyAgICAgICAgPC91bD4KKyAgICA8L2xpPgorPC91bD4KKworPHVsPgorICAgIDxsaT4KKyAgICAgICAgPGEgaHJlZj0iI1N1YnNjcmlwdGlvbiI+U3Vic2NyaXB0aW9uPC9hPgorCisgICAgICAgIDx1bD4KKyAgICAgICAgICAgIDxsaT48YSBocmVmPSIjU3Vic2NyaXB0aW9uQWN0aW9uLmphdmEiPlN1YnNjcmlwdGlvbi5qYXZhPC9hPgorICAgICAgICAgICAgPC9saT4KKyAgICAgICAgPC91bD4KKyAgICA8L2xpPgorPC91bD4KKzxoci8+CisKKzxwPgorICAgIFRoZSBwcmVtaXNlIG9mIHRoZSBNYWlsUmVhZGVyIGlzIHRoYXQgaXQgaXMgdGhlIGZpcnN0IGl0ZXJhdGlvbiBvZiBhCisgICAgcG9ydGFsIGFwcGxpY2F0aW9uLgorICAgIFRoaXMgdmVyc2lvbiBhbGxvd3MgdXNlcnMgdG8gcmVnaXN0ZXIgYW5kIG1haW50YWluIGEgc2V0IG9mCisgICAgYWNjb3VudHMgd2l0aCB2YXJpb3VzIG1haWwgc2VydmVycy4KKyAgICBJZiBjb21wbGV0ZWQsIHRoZSBhcHBsaWNhdGlvbiB3b3VsZCBsZXQgdXNlcnMgcmVhZCBtYWlsIGZyb20gdGhlaXIKKyAgICBhY2NvdW50cy4KKzwvcD4KKworPHA+CisgICAgVGhlIE1haWxSZWFkZXIgYXBwbGljYXRpb24gZGVtb25zdHJhdGVzIHJlZ2lzdGVyaW5nIHdpdGggYW4gYXBwbGljYXRpb24sCisgICAgbG9nZ2luZyBpbnRvIGFuIGFwcGxpY2F0aW9uLCBtYWludGFpbmluZyBhIG1hc3RlciByZWNvcmQsIGFuZCBtYWludGFpbmluZworICAgIGNoaWxkIHJlY29yZHMuCisgICAgVGhpcyBhcnRpY2xlIG92ZXJ2aWV3cyB0aGUgY29uc3RydWN0cyBuZWVkZWQgdG8gZG8gdGhlc2UgdGhpbmdzLAorICAgIGluY2x1ZGluZyB0aGUgc2VydmVyIHBhZ2VzLCBKYXZhIGNsYXNzZXMsIGFuZCBjb25maWd1cmF0aW9uIGVsZW1lbnRzLgorPC9wPgorCis8cD4KKyAgICBGb3IgbW9yZSBhYm91dCB0aGUgTWFpbFJlYWRlciwgaW5jbHVkaW5nIGFsdGVybmF0ZSBpbXBsZW1lbnRhdGlvbnMgYW5kIGEKKyAgICBzZXQgb2YgZm9ybWFsIFVzZSBDYXNlcywKKyAgICBwbGVhc2UgdmlzaXQgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuU3RydXRzVW5pdmVyc2l0eS5vcmcvTWFpbFJlYWRlciI+CisgICAgU3RydXRzIFVuaXZlcnNpdHkgTWFpbFJlYWRlciBzaXRlPC9hPi4KKzwvcD4KKworPGhyLz4KKzxibG9ja3F1b3RlPgorICAgIDxwPjxmb250IGNsYXNzPSJoaW50Ij4KKyAgICAgICAgPHN0cm9uZz5KQUFTPC9zdHJvbmc+IC0KKyAgICAgICAgTm90ZSB0aGF0IGZvciBjb21wYXRpYmlsaXR5IGFuZCBlYXNlIG9mIGRlcGxveW1lbnQsIHRoZSBNYWlsUmVhZGVyCisgICAgICAgIHVzZXMgImFwcGxpY2F0aW9uLWJhc2VkIiBhdXRob3JpemF0aW9uLgorICAgICAgICBIb3dldmVyLCB1c2Ugb2YgdGhlIHN0YW5kYXJkIEphdmEgQXV0aGVudGljYXRpb24gYW5kIEF1dGhvcml6YXRpb24KKyAgICAgICAgU2VydmljZSAoSkFBUykgaXMgcmVjb21tZW5kZWQgZm9yIG1vc3QgYXBwbGljYXRpb25zLgorICAgICAgICAoU2VlIHRoZSA8YQorICAgICAgICAgICAgaHJlZj0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3ByaW1lci5odG1sIj4KKyAgICAgICAgS2V5IFRlY2hub2xvZ2llcyBQcmltZXI8L2E+IGZvciBtb3JlIGFib3V0CisgICAgICAgIGF1dGhlbnRpY2F0aW9uIHRlY2hub2xvZ2llcy4pCisgICAgPC9mb250PjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSB0b3VyIHN0YXJ0cyB3aXRoIGhvdyB0aGUgaW5pdGlhbCB3ZWxjb21lIHBhZ2UgaXMgZGlzcGxheWVkLCBhbmQKKyAgICB0aGVuIHN0ZXBzIHRocm91Z2ggbG9nZ2luZyBpbnRvIHRoZSBhcHBsaWNhdGlvbiBhbmQgZWRpdGluZyBhIHN1YnNjcmlwdGlvbi4KKyAgICBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgbm90IGEgcXVpY2sgcGVlayBhdCBhICJIZWxsbyBXb3JsZCIgYXBwbGljYXRpb24uCisgICAgVGhlIHRvdXIgaXMgYSByaWNoIHRyZWsgaW50byBhIHJlYWxpc3RpYywgYmVzdCBwcmFjdGljZXMgYXBwbGljYXRpb24uCisgICAgWW91IG1heSBuZWVkIHRvIGFkanVzdCB5b3VyIGNoYWlyIGFuZCBnZXQgYSBmcmVzaCBjdXAgb2YgY29mZmVlLgorICAgIFByaW50ZWQsIHRoZSBhcnRpY2xlIGlzIDI5IHBhZ2VzIGxvbmcgKFVTKS4KKzwvcD4KKworPGgzPjxhIG5hbWU9IldlbGNvbWUiIGlkPSJXZWxjb21lIj5XZWxjb21lIFBhZ2U8L2E+PC9oMz4KKworPHA+CisgICAgQSB3ZWIgYXBwbGljYXRpb24sIGxpa2UgYW55IG90aGVyIHdlYiBzaXRlLCBjYW4gc3BlY2lmeSBhIGxpc3Qgb2Ygd2VsY29tZSBwYWdlcy4KKyAgICBXaGVuIHlvdSBvcGVuIGEgd2ViIGFwcGxpY2F0aW9uIHdpdGhvdXQgc3BlY2lmeWluZyBhIHBhcnRpY3VsYXIgcGFnZSwgYQorICAgIGRlZmF1bHQgIndlbGNvbWUgcGFnZSIgaXMgc2VydmVkIGFzIHRoZSByZXNwb25zZS4KKzwvcD4KKworPGg0PjxhIG5hbWU9IndlYi54bWwiIGlkPSJ3ZWIueG1sIj53ZWIueG1sPC9hPjwvaDQ+CisKKzxwPgorICAgIFdoZW4gYSB3ZWIgYXBwbGljYXRpb24gbG9hZHMsCisgICAgdGhlIGNvbnRhaW5lciByZWFkcyBhbmQgcGFyc2VzIHRoZSAiV2ViIEFwcGxpY2F0aW9uIERlcGxveW1lbnQKKyAgICBEZXNjcmlwdG9yIiwgb3IgIndlYi54bWwiIGZpbGUuCisgICAgVGhlIGZyYW1ld29yayBwbHVncyBpbnRvIGEgd2ViIGFwcGxpY2F0aW9uIHZpYSBhIHNlcnZsZXQgZmlsdGVyLgorICAgIExpa2UgYW55IGZpbHRlciwgdGhlICJzdHJ1dHMyIiBmaWx0ZXIgaXMgZGVwbG95ZWQgdmlhIHRoZSAid2ViLnhtbCIuCis8L3A+CisKKzxoci8+Cis8aDU+d2ViLnhtbCAtIFRoZSBXZWIgQXBwbGljYXRpb24gRGVwbG95bWVudCBEZXNjcmlwdG9yPC9oNT4KKzxwcmU+PGNvZGU+Jmx0Oz94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorICAgICZsdDshRE9DVFlQRSB3ZWItYXBwIFBVQkxJQyAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIFdlYiBBcHBsaWNhdGlvbiAyLjMvL0VOIgorICAgICJodHRwOi8vamF2YS5zdW4uY29tL2R0ZC93ZWItYXBwXzJfMy5kdGQiPgorICAgICZsdDt3ZWItYXBwPgorCisgICAgJmx0O2Rpc3BsYXktbmFtZT5TdHJ1dHMgMiBNYWlsUmVhZGVyJmx0Oy9kaXNwbGF5LW5hbWU+CisKKyAgICA8c3Ryb25nPiZsdDtmaWx0ZXI+CisgICAgICAgICZsdDtmaWx0ZXItbmFtZT5zdHJ1dHMyJmx0Oy9maWx0ZXItbmFtZT4KKyAgICAgICAgJmx0O2ZpbHRlci1jbGFzcz4KKyAgICAgICAgb3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuRmlsdGVyRGlzcGF0Y2hlcgorICAgICAgICAmbHQ7L2ZpbHRlci1jbGFzcz4KKyAgICAgICAgJmx0Oy9maWx0ZXI+PC9zdHJvbmc+CisKKyAgICAmbHQ7ZmlsdGVyLW1hcHBpbmc+CisgICAgJmx0O2ZpbHRlci1uYW1lPjxzdHJvbmc+c3RydXRzMjwvc3Ryb25nPiZsdDsvZmlsdGVyLW5hbWU+CisgICAgJmx0O3VybC1wYXR0ZXJuPi8qJmx0Oy91cmwtcGF0dGVybj4KKyAgICAmbHQ7L2ZpbHRlci1tYXBwaW5nPgorCisgICAgJmx0O2xpc3RlbmVyPgorICAgICZsdDtsaXN0ZW5lci1jbGFzcz4KKyAgICBvcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5jb250ZXh0LkNvbnRleHRMb2FkZXJMaXN0ZW5lcgorICAgICZsdDsvbGlzdGVuZXItY2xhc3M+CisgICAgJmx0Oy9saXN0ZW5lcj4KKworICAgICZsdDshLS0gQXBwbGljYXRpb24gTGlzdGVuZXIgZm9yIE1haWxSZWFkZXIgZGF0YWJhc2UgLS0+CisgICAgJmx0O2xpc3RlbmVyPgorICAgICZsdDtsaXN0ZW5lci1jbGFzcz4KKyAgICBtYWlscmVhZGVyMi5BcHBsaWNhdGlvbkxpc3RlbmVyCisgICAgJmx0Oy9saXN0ZW5lci1jbGFzcz4KKyAgICAmbHQ7L2xpc3RlbmVyPgorCisgICAgJmx0O3dlbGNvbWUtZmlsZS1saXN0PgorICAgICZsdDt3ZWxjb21lLWZpbGU+aW5kZXguaHRtbCZsdDsvd2VsY29tZS1maWxlPgorICAgICZsdDsvd2VsY29tZS1maWxlLWxpc3Q+CisKKyAgICAmbHQ7L3dlYi1hcHA+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgQW1vbmcgb3RoZXIgdGhpbmdzLAorICAgIHRoZSB3ZWIueG1sIHNwZWNpZmllcyB0aGUgIldlbGNvbWUgRmlsZSBMaXN0IiBmb3IgYW4gYXBwbGljYXRpb24uCisgICAgV2hlbiBhIHdlYiBhZGRyZXNzIHJlZmVycyB0byBhIGRpcmVjdG9yeSByYXRoZXIgdGhhbiBhbiBpbmRpdmlkdWFsIGZpbGUsCisgICAgdGhlIGNvbnRhaW5lciBjb25zdWx0cyB0aGUgV2VsY29tZSBGaWxlIExpc3QgZm9yIHRoZSBuYW1lIG9mIGEgcGFnZSB0bworICAgIG9wZW4gYnkgZGVmYXVsdC4KKzwvcD4KKworPHA+CisgICAgSG93ZXZlciwgbW9zdCBTdHJ1dHMgYXBwbGljYXRpb25zIGRvIG5vdCByZWZlciB0byBwaHlzaWNhbCBwYWdlcywKKyAgICBidXQgdG8gInZpcnR1YWwgcmVzb3VyY2VzIiBjYWxsZWQgPGk+YWN0aW9uczwvaT4uCisgICAgQWN0aW9ucyBzcGVjaWZ5IGNvZGUgdGhhdCB3ZSB3YW50IHRvIGJlIHJ1biBiZWZvcmUgYSBwYWdlCisgICAgb3Igb3RoZXIgcmVzb3VyY2UgcmVuZGVycyB0aGUgcmVzcG9uc2UuCisgICAgQW4gYWNjZXB0ZWQgcHJhY3RpY2UgaXMgdG8gbmV2ZXIgbGluayBkaXJlY3RseSB0byBzZXJ2ZXIgcGFnZXMsCisgICAgYnV0IG9ubHkgdG8gbG9naWNhbCBhY3Rpb24gbWFwcGluZ3MuCisgICAgQnkgbGlua2luZyB0byBhY3Rpb25zLCBkZXZlbG9wZXJzIGNhbiBvZnRlbiAicmV3aXJlIiBhbiBhcHBsaWNhdGlvbgorICAgIHdpdGhvdXQgZWRpdGluZyB0aGUgc2VydmVyIHBhZ2VzLgorPC9wPgorCis8aHIvPgorPGg1PkJlc3QgUHJhY3RpY2U6PC9oNT4KKzxibG9ja3F1b3RlPgorICAgIDxwPjxmb250IGNsYXNzPSJoaW50Ij4iTGluayBhY3Rpb25zIG5vdCBwYWdlcy4iPC9mb250PjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSBhY3Rpb25zIGFyZSBsaXN0ZWQgaW4gb25lIG9yIG1vcmUgWE1MIGNvbmZpZ3VyYXRpb24gZmlsZXMsCisgICAgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlIGJlaW5nIG5hbWVkICJzdHJ1dHMueG1sIi4KKyAgICBXaGVuIHRoZSBhcHBsaWNhdGlvbiBsb2FkcywgdGhlIHN0cnV0cy54bWwsIGFuZCBhbnkgb3RoZXIgZmlsZXMKKyAgICBpdCBpbmNsdWRlcywgYXJlIHBhcnNlZCwgYW5kIHRoZSBmcmFtZXdvcmsgY3JlYXRlcyBhIHNldCBvZgorICAgIGNvbmZpZ3VyYXRpb24gb2JqZWN0cy4KKyAgICBBbW9uZyBvdGhlciB0aGluZ3MsIHRoZSBjb25maWd1cmF0aW9uIG1hcHMgYSByZXF1ZXN0IGZvciBhIGNlcnRhaW4KKyAgICBwYWdlIHRvIGEgY2VydGFpbiBhY3Rpb24gbWFwcGluZy4KKzwvcD4KKworPHA+CisgICAgU2l0ZXMgY2FuIGxpc3QgemVybyBvciBtb3JlICJXZWxjb21lIiBwYWdlcyBpbiB0aGUgd2ViLnhtbC4KKyAgICBVbmxlc3MgeW91IGFyZSB1c2luZyBKYXZhIDEuNSwgYWN0aW9ucyBjYW5ub3QgYmUgc3BlY2lmaWVkIGFzIGEgV2VsY29tZQorICAgIHBhZ2UuCisgICAgU28sIGluIHRoZSBjYXNlIG9mIGEgV2VsY29tZSBwYWdlLAorICAgIGhvdyBkbyB3ZSBmb2xsb3cgdGhlIGJlc3QgcHJhY3RpY2Ugb2YgbmF2aWdhdGluZyB0aHJvdWdoIGFjdGlvbnMKKyAgICByYXRoZXIgdGhhbiBwYWdlcz8KKzwvcD4KKworPHA+CisgICAgT25lIHNvbHV0aW9uIGlzIHRvIHVzZSBhIHBhZ2UgdG8gImJvb3RzdHJhcCIgb25lIG9mIG91ciBhY3Rpb25zLgorICAgIFdlIGNhbiByZWdpc3RlciB0aGUgdXN1YWwgImluZGV4Lmh0bWwiIGFzIHRoZSBXZWxjb21lIHBhZ2UgYW5kIGhhdmUgaXQKKyAgICByZWRpcmVjdCB0byBhICJXZWxjb21lIiBhY3Rpb24uCis8L3A+CisKKzxoci8+Cis8aDU+TWFpbFJlYWRlcidzIGluZGV4Lmh0bWw8L2g1PgorPHByZT48Y29kZT4mbHQ7IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPgorICAgICZsdDtodG1sPiZsdDtoZWFkPgorICAgICZsdDtNRVRBIEhUVFAtRVFVSVY9IlJlZnJlc2giIENPTlRFTlQ9IjA7PHN0cm9uZz5VUkw9V2VsY29tZS5kbzwvc3Ryb25nPiI+CisgICAgJmx0Oy9oZWFkPgorICAgICZsdDtib2R5PgorICAgICZsdDtwPkxvYWRpbmcgLi4uJmx0Oy9wPgorICAgICZsdDsvYm9keT4mbHQ7L2h0bWw+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgQXMgYW4gYWx0ZXJuYXRpdmUsCisgICAgd2UgY291bGQgYWxzbyBoYXZlIHVzZWQgYSBKU1AgcGFnZSB0aGF0IGlzc3VlZCB0aGUgcmVkaXJlY3Qgd2l0aCBhIFN0cnV0cyB0YWcsCisgICAgYnV0IGEgcGxhaW4gSFRNTCBzb2x1dGlvbiB3b3JrcyBhcyB3ZWxsLgorPC9wPgorCis8aDQ+PGEgbmFtZT0iV2VsY29tZS5kbyIgaWQ9IldlbGNvbWUuZG8iPldlbGNvbWUuZG88L2E+PC9oND4KKworPHA+CisgICAgV2hlbiB0aGUgY2xpZW50IHJlcXVlc3RzICJXZWxjb21lLmRvIiwgdGhlIHJlcXVlc3QgaXMgcGFzc2VkIHRvIHRoZSAic3RydXRzMiIgRmlsdGVyRGlzcGF0Y2hlcgorICAgICh0aGF0IHdlIHJlZ2lzdGVyZWQgaW4gdGhlIHdlYi54bWwgZmlsZSkuCisgICAgVGhlIEZpbHRlckRpc3BhdGNoZXIgcmV0cmlldmVzIHRoZSBhcHByb3ByaWF0ZSBhY3Rpb24gbWFwcGluZyBmcm9tIHRoZQorICAgIGNvbmZpZ3VyYXRpb24uCisgICAgSWYgd2UganVzdCB3YW50ZWQgdG8gZm9yd2FyZCB0byB0aGUgV2VsY29tZSBwYWdlLCB3ZSBjb3VsZCB1c2UgYSBzaW1wbGUKKyAgICBjb25maWd1cmF0aW9uIGVsZW1lbnQuCis8L3A+Cis8aHIvPgorPGg1PkEgc2ltcGxlICJmb3J3YXJkIHRocnUiIGFjdGlvbiBlbGVtZW50PC9oNT4KKzxwcmU+PGNvZGU+Jmx0O2FjdGlvbiBuYW1lPSI8c3Ryb25nPldlbGNvbWU8L3N0cm9uZz4iPgorICAgICZsdDtyZXN1bHQ+PHN0cm9uZz4vcGFnZXMvV2VsY29tZS5qc3A8L3N0cm9uZz4mbHQ7L3Jlc3VsdD4KKyAgICAmbHQ7L2FjdGlvbj48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBJZiBhIGNsaWVudCBhc2tzIGZvciB0aGUgV2VsY29tZSBhY3Rpb24gKCJXZWxjb21lLmRvKSwgdGhlICIvcGFnZS9XZWxjb21lLmpzcCIKKyAgICBwYWdlIHdvdWxkIGJlIHJldHVybmVkIGluIHJlc3BvbnNlLgorICAgIFRoZSBjbGllbnQgZG9lcyBub3Qga25vdywgb3IgbmVlZCB0byBrbm93LCB0aGF0IHRoZSBwaHlzaWNhbCByZXNvdXJjZSBpcyBsb2NhdGVkIGF0CisgICAgIi9wYWdlcy9XZWxjb21lLmpzcCIuCisgICAgQWxsIHRoZSBjbGllbnQga25vd3MgaXMgdGhhdCBpdCByZXF1ZXN0ZWQgdGhlIHJlc291cmNlICJXZWxjb21lLmRvIi4KKzwvcD4KKworPHA+CisgICAgQnV0IGlmIHdlIHBlZWsgYXQgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgdGhlIE1haWxSZWFkZXIsCisgICAgd2UgZmluZCBhIHNsaWdodGx5IG1vcmUgY29tcGxpY2F0ZWQgWE1MIGVsZW1lbnQgZm9yIHRoZSBXZWxjb21lIGFjdGlvbi4KKzwvcD4KKworPGhyLz4KKzxoNT5UaGUgV2VsY29tZSBhY3Rpb24gZWxlbWVudDwvaDU+Cis8cHJlPjxjb2RlPiZsdDthY3Rpb24gbmFtZT0iV2VsY29tZSIgPGI+Y2xhc3M9Im1haWxyZWFkZXIyLldlbGNvbWUiPC9iPj4KKyAgICAmbHQ7cmVzdWx0Pi9wYWdlcy9XZWxjb21lLmpzcCZsdDsvcmVzdWx0PgorICAgIDxzdHJvbmc+Jmx0O2ludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPjwvc3Ryb25nPgorICAgICZsdDsvYWN0aW9uPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIEhlcmUsIHRoZSA8c3Ryb25nPldlbGNvbWU8L3N0cm9uZz4gSmF2YSBjbGFzcyBleGVjdXRlcyB3aGVuZXZlcgorICAgIHNvbWVvbmUgYXNrcyBmb3IgdGhlIFdlbGNvbWUgYWN0aW9uLgorICAgIEFzIGl0IGNvbXBsZXRlcywgdGhlIEFjdGlvbiBjbGFzcyBjYW4gc2VsZWN0IHdoaWNoICJyZXN1bHQiIGlzIGRpc3BsYXllZC4KKyAgICBUaGUgZGVmYXVsdCByZXN1bHQgbmFtZSBpcyAic3VjY2VzcyIuCisgICAgQW5vdGhlciBhdmFpbGFibGUgcmVzdWx0LCBkZWZpbmVkIGF0IGEgZ2xvYmFsIHNjb3BlLCBpcyAiZXJyb3IiLgorPC9wPgorCis8aHIvPgorPGg1PktleSBjb25jZXB0OjwvaDU+Cis8YmxvY2txdW90ZT4KKyAgICA8cD4KKyAgICAgICAgVGhlIEFjdGlvbiBjbGFzcyBkb2Vzbid0IG5lZWQgdG8ga25vdyB3aGF0IHJlc3VsdCB0eXBlIGlzIG5lZWRlZAorICAgICAgICBmb3IgInN1Y2Nlc3MiIG9yICJlcnJvciIuCisgICAgICAgIFRoZSBBY3Rpb24gY2FuIGp1c3QgcmV0dXJuIHRoZSBsb2dpY2FsIG5hbWUgZm9yIGEgcmVzdWx0LAorICAgICAgICB3aXRob3V0IGtub3dpbmcgaG93IHRoZSByZXN1bHQgaXMgaW1wbGVtZW50ZWQuCisgICAgPC9wPgorPC9ibG9ja3F1b3RlPgorPGhyLz4KKworPHA+CisgICAgVGhlIG5ldCBlZmZlY3QgaXMgdGhhdCBhbGwgb2YgdGhlIHJlc3VsdCBkZXRhaWxzLAorICAgIGluY2x1ZGluZyB0aGUgcGF0aHMgdG8gc2VydmVyIHBhZ2VzLAorICAgIGFsbCBjYW4gYmUgZGVjbGFyZWQgPGVtPm9uY2U8L2VtPiBpbiB0aGUgY29uZmlndXJhdGlvbi4KKyAgICBUaWdodGx5IGNvdXBsZWQgaW1wbGVtZW50YXRpb24gZGV0YWlscyBhcmUgbm90IHNjYXR0ZXJlZCBhbGwgb3ZlcgorICAgIHRoZSBhcHBsaWNhdGlvbi4KKzwvcD4KKworPGhyLz4KKzxoNT5LZXkgY29uY2VwdDo8L2g1PgorPGJsb2NrcXVvdGU+CisgICAgPHA+CisgICAgICAgIFRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBsZXRzIHVzIHNlcGFyYXRlIGNvbmNlcm5zIGFuZCAic2F5IGl0IG9uY2UiLgorICAgICAgICBUaGUgY29uZmlndXJhdGlvbiBoZWxwcyB1cyAibm9ybWFsaXplIiBhbiBhcHBsaWNhdGlvbiwKKyAgICAgICAgaW4gbXVjaCB0aGUgc2FtZSB3YXkgd2Ugbm9ybWFsaXplIGEgZGF0YWJhc2Ugc2NoZW1hLgorICAgIDwvcD4KKzwvYmxvY2txdW90ZT4KKzxoci8+CisKKworPHA+CisgICAgT0sgLi4uIGJ1dCB3aHkgd291bGQgYSBXZWxjb21lIEFjdGlvbiB3YW50IHRvIGNob29zZSBiZXR3ZWVuICJzdWNjZXNzIiBhbmQKKyAgICAiZXJyb3IiPworPC9wPgorCis8aDQ+PGEgbmFtZT0iV2VsY29tZS5qYXZhIiBpZD0iV2VsY29tZS5qYXZhIj5XZWxjb21lIEFjdGlvbjwvYT48L2g0PgorCis8cD4KKyAgICBUaGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbiByZXRhaW5zIGEgbGlzdCBvZiB1c2VycyBhbG9uZyB3aXRoIHRoZWlyIGVtYWlsCisgICAgYWNjb3VudHMuCisgICAgVGhlIGFwcGxpY2F0aW9uIHN0b3JlcyB0aGlzIGluZm9ybWF0aW9uIGluIGEgZGF0YWJhc2UuCisgICAgSWYgdGhlIGFwcGxpY2F0aW9uIGNhbid0IGNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlLCB0aGUgYXBwbGljYXRpb24gY2FuJ3QgZG8KKyAgICBpdHMgam9iLgorICAgIFNvIGJlZm9yZSBkaXNwbGF5aW5nIHRoZSBXZWxjb21lIDxzdHJvbmc+cGFnZTwvc3Ryb25nPiwgdGhlIFdlbGNvbWUKKyAgICA8c3Ryb25nPmNsYXNzPC9zdHJvbmc+IGNoZWNrcyB0byBzZWUgaWYgdGhlIGRhdGFiYXNlIGlzIGF2YWlsYWJsZS4KKzwvcD4KKworPHA+CisgICAgVGhlIE1haWxSZWFkZXIgaXMgYWxzbyBhbiBpbnRlcm5hdGlvbmFsaXplZCBhcHBsaWNhdGlvbi4KKyAgICBTbywgdGhlIFdlbGNvbWUgQWN0aW9uIGNsYXNzIGNoZWNrcyB0byBzZWUgaWYgdGhlIG1lc3NhZ2UgcmVzb3VyY2VzIGFyZQorICAgIGF2YWlsYWJsZSB0b28uCisgICAgSWYgYm90aCByZXNvdXJjZXMgYXJlIGF2YWlsYWJsZSwgdGhlIGNsYXNzIHBhc3NlcyBiYWNrIHRoZSAic3VjY2VzcyIgdG9rZW4uCisgICAgT3RoZXJ3aXNlLCB0aGUgY2xhc3MgcGFzc2VzIGJhY2sgdGhlICJlcnJvciIgdG9rZW4sCisgICAgc28gdGhhdCB0aGUgYXBwcm9wcmlhdGUgbWVzc2FnZXMgY2FuIGJlIGRpc3BsYXllZC4KKzwvcD4KKworPGhyLz4KKzxoNT5UaGUgV2VsY29tZSBBY3Rpb24gY2xhc3M8L2g1PgorPHByZT48Y29kZT5wYWNrYWdlIG1haWxyZWFkZXIyOworICAgIHB1YmxpYyBjbGFzcyBXZWxjb21lIGV4dGVuZHMgTWFpbHJlYWRlclN1cHBvcnQgeworCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgeworCisgICAgLy8gQ29uZmlybSBtZXNzYWdlIHJlc291cmNlcyBsb2FkZWQKKyAgICBTdHJpbmcgbWVzc2FnZSA9IGdldFRleHQoQ29uc3RhbnRzLkVSUk9SX0RBVEFCQVNFX01JU1NJTkcpOworICAgIGlmIChDb25zdGFudHMuRVJST1JfREFUQUJBU0VfTUlTU0lORy5lcXVhbHMobWVzc2FnZSkpIHsKKyAgICA8c3Ryb25nPmFkZEFjdGlvbkVycm9yKENvbnN0YW50cy5FUlJPUl9NRVNTQUdFU19OT1RfTE9BREVEKTs8L3N0cm9uZz4KKyAgICB9CisKKyAgICAvLyBDb25maXJtIGRhdGFiYXNlIGxvYWRlZAorICAgIGlmIChudWxsPT1nZXREYXRhYmFzZSgpKSB7CisgICAgPHN0cm9uZz5hZGRBY3Rpb25FcnJvcihDb25zdGFudHMuRVJST1JfREFUQUJBU0VfTk9UX0xPQURFRCk7PC9zdHJvbmc+CisgICAgfQorCisgICAgaWYgKGhhc0Vycm9ycygpKSB7CisgICAgPHN0cm9uZz5yZXR1cm4gRVJST1I7PC9zdHJvbmc+CisgICAgfQorICAgIGVsc2UgeworICAgIDxzdHJvbmc+cmV0dXJuIFNVQ0NFU1M7PC9zdHJvbmc+CisgICAgfQorICAgIH0KKyAgICB9PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgU2V2ZXJhbCBjb21tb24gcmVzdWx0IG5hbWVzIGFyZSBwcmVkZWZpbmVkLAorICAgIGluY2x1ZGluZyBFUlJPUiwgU1VDQ0VTUywgTE9HSU4sIE5PTkUsIGFuZCBJTlBVVCwKKyAgICBzbyB0aGF0IHRoZXNlIHRva2VucyBjYW4gYmUgdXNlZCBjb25zaXN0ZW50bHkgYWNyb3NzIFN0cnV0cyAyIGFwcGxpY2F0aW9ucy4KKzwvcD4KKworCis8aDQ+PGEgbmFtZT0iZ2xvYmFsLXJlc3VsdHMiIGlkPSJnbG9iYWwtcmVzdWx0cyI+R2xvYmFsIFJlc3VsdHM8L2E+PC9oND4KKworPHA+CisgICAgQXMgbWVudGlvbmVkLCAiZXJyb3IiIGlzIGRlZmluZWQgaW4gYSBnbG9iYWwgc2NvcGUuCisgICAgT3RoZXIgYWN0aW9ucyBtYXkgaGF2ZSB0cm91YmxlIGNvbm5lY3RpbmcgdG8gdGhlIGRhdGFiYXNlIGxhdGVyLAorICAgIG9yIG90aGVyIHVuZXhwZWN0ZWQgZXJyb3JzIG1heSBvY2N1ci4KKyAgICBUaGUgTWFpbFJlYWRlciBkZWZpbmVzIHRoZSAiZXJyb3IiIHJlc3VsdCBhcyBhIEdsb2JhbCBSZXN1bHQsCisgICAgc28gdGhhdCBhbnkgYWN0aW9uIGNhbiB1c2UgaXQuCis8L3A+CisKKzxoci8+Cis8aDU+TWFpbFJlYWRlcidzIGdsb2JhbC1yZXN1bHQgZWxlbWVudDwvaDU+Cis8cHJlPjxjb2RlPiAmbHQ7Z2xvYmFsLXJlc3VsdHM+CisgICAgJmx0O3Jlc3VsdCBuYW1lPTxzdHJvbmc+ImVycm9yIjwvc3Ryb25nPj48c3Ryb25nPi9wYWdlcy9FcnJvci5qc3A8L3N0cm9uZz4mbHQ7L3Jlc3VsdD4KKyAgICAmbHQ7cmVzdWx0IG5hbWU9ImludmFsaWQudG9rZW4iPi9wYWdlcy9FcnJvci5qc3AmbHQ7L3Jlc3VsdD4KKyAgICAmbHQ7cmVzdWx0IG5hbWU9ImxvZ2luIiB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPkxvZ29uIWlucHV0Jmx0Oy9yZXN1bHQ+CisgICAgJmx0Oy9nbG9iYWwtcmVzdWx0cz48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBPZiBjb3Vyc2UsIGlmIGFuIGluZGl2aWR1YWwgYWN0aW9uIG1hcHBpbmcgZGVmaW5lcyBpdHMgb3duICJlcnJvciIgcmVzdWx0IHR5cGUsCisgICAgdGhlIGxvY2FsIHJlc3VsdCB3b3VsZCBiZSB1c2VkIGluc3RlYWQuCis8L3A+CisKKzxoND48YSBuYW1lPSJBcHBsaWNhdGlvbkxpc3RlbmVyLmphdmEiIGlkPSJBcHBsaWNhdGlvbkxpc3RlbmVyLmphdmEiPkFwcGxpY2F0aW9uTGlzdGVuZXIuamF2YTwvYT4KKzwvaDQ+CisKKzxwPgorICAgIFRoZSBkYXRhYmFzZSBpcyBleHBvc2VkIGFzIGFuIG9iamVjdCBzdG9yZWQgaW4gYXBwbGljYXRpb24gc2NvcGUuCisgICAgVGhlIGRhdGFiYXNlIG9iamVjdCBpcyBiYXNlZCBvbiBhbiBpbnRlcmZhY2UuCisgICAgRGlmZmVyZW50IGltcGxlbWVudGF0aW9ucyBvZiB0aGUgZGF0YWJhc2UgY291bGQgYmUgbG9hZGVkIHdpdGhvdXQgY2hhbmdpbmcKKyAgICB0aGUgcmVzdCBvZiB0aGUgYXBwbGljYXRpb24uCisgICAgQnV0IGhvdyBpcyB0aGUgZGF0YWJhc2Ugb2JqZWN0IGxvYWRlZCBpbiB0aGUgZmlyc3QgcGxhY2U/Cis8L3A+CisKKzxwPgorICAgIFRoZSBkYXRhYmFzZSBpcyBjcmVhdGVkIGJ5IGEgY3VzdG9tIExpc3RlbmVyIHRoYXQgd2UgY29uZmlndXJlZCBpbiB0aGUgIndlYi54bWwiLgorPC9wPgorCis8aHIvPgorPGg1Pm1haWxyZWFkZXIyLkFwcGxpY2F0aW9uTGlzdGVuZXI8L2g1PgorPHByZT48Y29kZT4gJmx0O2xpc3RlbmVyPgorICAgICZsdDtsaXN0ZW5lci1jbGFzcz4KKyAgICA8c3Ryb25nPm1haWxyZWFkZXIyLkFwcGxpY2F0aW9uTGlzdGVuZXI8L3N0cm9uZz4KKyAgICAmbHQ7L2xpc3RlbmVyLWNsYXNzPgorICAgICZsdDsvbGlzdGVuZXI+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgQnkgZGVmYXVsdCwgb3VyIEFwcGxpY2F0aW9uTGlzdGVuZXIgbG9hZHMgYSA8c3Ryb25nPk1lbW9yeURhdGFiYXNlPC9zdHJvbmc+CisgICAgaW1wbGVtZW50YXRpb24gb2YgdGhlIFVzZXJEYXRhYmFzZS4KKyAgICBNZW1vcnlEYXRhYmFzZSBzdG9yZXMgdGhlIGRhdGFiYXNlIGNvbnRlbnQgYXMgYSBYTUwgZG9jdW1lbnQsCisgICAgd2hpY2ggaXMgcGFyc2VkIGFuZCBsb2FkZWQgYXMgYSBzZXQgb2YgbmVzdGVkIGhhc2h0YWJsZXMuCisgICAgVGhlIG91dGVyIHRhYmxlIGlzIHRoZSBsaXN0IG9mIHVzZXIgb2JqZWN0cywgZWFjaCBvZiB3aGljaCBoYXMgaXRzIG93bgorICAgIGlubmVyIGhhc2h0YWJsZSBvZiBzdWJzY3JpcHRpb25zLgorICAgIFdoZW4geW91IHJlZ2lzdGVyLCBhIHVzZXIgb2JqZWN0IGlzIHN0b3JlZCBpbiB0aGlzIGhhc2h0YWJsZS4KKyAgICBXaGVuIHlvdSBsb2dpbiwgdGhlIHVzZXIgb2JqZWN0IGlzIHN0b3JlZCB3aXRoaW4gdGhlIHNlc3Npb24gY29udGV4dC4KKzwvcD4KKworPHA+CisgICAgVGhlIGRhdGFiYXNlIGNvbWVzIHNlZWRlZCB3aXRoIGEgc2FtcGxlIHVzZXIuCisgICAgSWYgeW91IGNoZWNrIHRoZSAiZGF0YWJhc2UueG1sIiBmaWxlIHVuZGVyICIvc3JjL21haW4iLAorICAgIHlvdSdsbCBzZWUgdGhlIHNhbXBsZSB1c2VyIGRlc2NyaWJlZCBpbiBYTUwuCis8L3A+CisKKzxoci8+Cis8aDU+VGhlICJzZWVkIiB1c2VyIGVsZW1lbnQgZnJvbSB0aGUgTWFpbFJlYWRlciBkYXRhYmFzZS54bWw8L2g1PgorPHByZT48Y29kZT4mbHQ7dXNlciB1c2VybmFtZT0iPHN0cm9uZz51c2VyPC9zdHJvbmc+IiBmcm9tQWRkcmVzcz0iSm9obi5Vc2VyQHNvbWV3aGVyZS5jb20iCisgICAgZnVsbE5hbWU9IjxzdHJvbmc+Sm9obiBRLiBVc2VyPC9zdHJvbmc+IiBwYXNzd29yZD0iPHN0cm9uZz5wYXNzPC9zdHJvbmc+Ij4KKyAgICAmbHQ7c3Vic2NyaXB0aW9uIGhvc3Q9IjxzdHJvbmc+bWFpbC5ob3RtYWlsLmNvbSI8L3N0cm9uZz4gYXV0b0Nvbm5lY3Q9ImZhbHNlIgorICAgIHBhc3N3b3JkPSJiYXIiIHR5cGU9InBvcDMiIHVzZXJuYW1lPSJ1c2VyMTIzNCI+CisgICAgJmx0Oy9zdWJzY3JpcHRpb24+CisgICAgJmx0O3N1YnNjcmlwdGlvbiBob3N0PSI8c3Ryb25nPm1haWwueWFob28uY29tPC9zdHJvbmc+IiBhdXRvQ29ubmVjdD0iZmFsc2UiIHBhc3N3b3JkPSJmb28iCisgICAgdHlwZT0iaW1hcCIgdXNlcm5hbWU9ImpxdXNlciI+CisgICAgJmx0Oy9zdWJzY3JpcHRpb24+CisgICAgJmx0Oy91c2VyPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSAic2VlZCIgdXNlciBlbGVtZW50IGNyZWF0ZXMgYSByZWdpc3RyYXRpb24gcmVjb3JkIGZvciAiSm9obiBRLiBVc2VyIiwKKyAgICB3aXRoIHRoZSBzdWJzY3JpcHRpb24gZGV0YWlsIGZvciBoaXMgaG90bWFpbCBhbmQgeWFob28gYWNjb3VudHMuCis8L3A+CisKKzxoND48YSBuYW1lPSJyZXNvdXJjZXMucHJvcGVydGllcyIgaWQ9InJlc291cmNlcy5wcm9wZXJ0aWVzIj5NZXNzYWdlIFJlc291cmNlczwvYT4KKzwvaDQ+CisKKzxwPgorICAgIEFzIG1lbnRpb25lZCwgTWFpbFJlYWRlciBpcyBhbiBpbnRlcm5hdGlvbmFsaXplZCBhcHBsaWNhdGlvbi4KKyAgICBUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoZSBhcHBsaWNhdGlvbiBhcmUgbG9hZGVkIHRocm91Z2ggYSByZWZlcmVuY2UgaW4gdGhlCisgICAgInN0cnV0cy5wcm9wZXJ0aWVzIiBmaWxlLgorICAgIExpa2UgdGhlIGRhdGFiYXNlIGNvbnRlbnRzLCB0aGUgInN0cnV0cy5wcm9wZXJ0aWVzIiBmaWxlIGlzIGtlcHQgdW5kZXIKKyAgICAiL3NyYy9tYWluLyIgaW4gdGhlIHNvdXJjZSB0cmVlLgorPC9wPgorCis8aHIvPgorPGg1PnN0cnV0cy5wcm9wZXJ0aWVzPC9oNT4KKzxwcmU+PGNvZGU+c3RydXRzLmN1c3RvbS5pMThuLnJlc291cmNlcyA9IDxzdHJvbmc+cmVzb3VyY2VzPC9zdHJvbmc+CisgICAgc3RydXRzLmFjdGlvbi5leHRlbnNpb24gPSA8c3Ryb25nPmRvPC9zdHJvbmc+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgV2hlbiB3ZSBzcGVjaWZ5ICJyZXNvdXJjZXMiIGluIHRoZSBwcm9wZXJ0aWVzIGZpbGUsCisgICAgd2UgYXJlIHRlbGxpbmcgdGhlIGZyYW1ld29yayB0byBzY2FuIHRoZSBjbGFzc3BhdGgKKyAgICBmb3IgYSBSZXNvdXJjZSBCdW5kbGUgbmFtZWQgInJlc291cmNlcy5wcm9wZXJ0aWVzIi4KKyAgICBUaGUgYnVuZGxlIG1pZ2h0IGJlIGVtYmVkZGVkIGluIGEgSkFSLCBvciBmb3VuZCBpbiB0aGUgIldFQi1JTkYvY2xhc3NlcyIKKyAgICBmb2xkZXIsIG9yIGFueXdoZXJlIGVsc2Ugb24gdGhlIHJ1bnRpbWUgY2xhc3NwYXRoLgorICAgIEluIHRoZSBNYWlsUmVhZGVyLCB3ZSBrZWVwIHRoZSA8c3Ryb25nPm9yaWdpbmFsPC9zdHJvbmc+IGJ1bmRsZSBpbiB0aGUKKyAgICBzb3VyY2UgdHJlZSB1bmRlciAic3JjL21haW4vIi4gV2hlbiB0aGUgYXBwbGljYXRpb24gaXMgYnVpbHQsIHRoZQorICAgIHByb3BlcnRpZXMgZmlsZXMgYXJlIDxzdHJvbmc+Y29waWVkPC9zdHJvbmc+IHRvICJXRUItSU5GL2NsYXNzZXMiLCBzbworICAgIHRoYXQgdGhleSBhcmUgb24gdGhlIEphdmEgY2xhc3NwYXRoLgorPC9wPgorCis8aHIvPgorPGg1Pk1lc3NhZ2UgUmVzb3VyY2UgZW50cmllcyB1c2VkIGJ5IHRoZSBXZWxjb21lIHBhZ2U8L2g1PgorPHByZT48Y29kZT48c3Ryb25nPmluZGV4LmhlYWRpbmc9PC9zdHJvbmc+TWFpbFJlYWRlciBBcHBsaWNhdGlvbiBPcHRpb25zCisgICAgPHN0cm9uZz5pbmRleC5sb2dvbj08L3N0cm9uZz5Mb2cgb24gdG8gdGhlIE1haWxSZWFkZXIgQXBwbGljYXRpb24KKyAgICA8c3Ryb25nPmluZGV4LnJlZ2lzdHJhdGlvbj08L3N0cm9uZz5SZWdpc3RlciB3aXRoIHRoZSBNYWlsUmVhZGVyIEFwcGxpY2F0aW9uCisgICAgPHN0cm9uZz5pbmRleC50aXRsZT08L3N0cm9uZz5NYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24KKyAgICA8c3Ryb25nPmluZGV4LnRvdXI9PC9zdHJvbmc+QSBXYWxraW5nIFRvdXIgb2YgdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIElmIHlvdSBjaGFuZ2UgYSBtZXNzYWdlIGluIHRoZSByZXNvdXJjZSwgYW5kIHRoZW4gcmVidWlsZCBhbmQgcmVsb2FkIHRoZQorICAgIGFwcGxpY2F0aW9uLCB0aGUgY2hhbmdlIHdpbGwgYXBwZWFyIHRocm91Z2hvdXQgdGhlIGFwcGxpY2F0aW9uLgorICAgIElmIHlvdSBwcm92aWRlIG1lc3NhZ2UgcmVzb3VyY2VzIGZvciBhZGRpdGlvbmFsIGxvY2FsZXMsIHlvdSBjYW4KKyAgICBsb2NhbGl6ZSB5b3VyIGFwcGxpY2F0aW9uLgorICAgIFRoZSBNYWlsUmVhZGVyIHByb3ZpZGVzIHJlc291cmNlcyBmb3IgRW5nbGlzaCwgUnVzc2lhbiwgYW5kIEphcGFuZXNlLgorPC9wPgorCis8aDQ+PGEgbmFtZT0iV2VsY29tZS5qc3AiIGlkPSJXZWxjb21lLmpzcCI+V2VsY29tZSBQYWdlPC9hPjwvaDQ+CisKKzxwPgorICAgIEFmdGVyIGNvbmZpcm1pbmcgdGhhdCB0aGUgbmVjZXNzYXJ5IHJlc291cmNlcyBleGlzdCwgdGhlIFdlbGNvbWUgYWN0aW9uCisgICAgZm9yd2FyZHMgdG8gdGhlIFdlbGNvbWUgcGFnZS4KKzwvcD4KKzxoci8+Cis8aDU+V2VsY29tZS5qc3A8L2g1PgorPHByZT48Y29kZT4mbHQ7JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAlPgorICAgIDxzdHJvbmc+Jmx0OyVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MiICU+PC9zdHJvbmc+CisgICAgJmx0OyFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CisgICAgJmx0O2h0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorICAgICZsdDtoZWFkPgorICAgICZsdDttZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+CisgICAgJmx0O3RpdGxlPjxzdHJvbmc+Jmx0O3M6dGV4dCBuYW1lPSJpbmRleC50aXRsZSIvPjwvc3Ryb25nPiZsdDsvdGl0bGU+CisgICAgJmx0O2xpbmsgaHJlZj0iPHN0cm9uZz4mbHQ7czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz48L3N0cm9uZz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgICZsdDsvaGVhZD4KKworICAgICZsdDtib2R5PgorICAgICZsdDtoMz4mbHQ7czp0ZXh0IG5hbWU9ImluZGV4LmhlYWRpbmciLz4mbHQ7L2gzPgorCisgICAgJmx0O3VsPgorICAgICZsdDtsaT4mbHQ7YSBocmVmPSImbHQ7czp1cmwgYWN0aW9uPSJSZWdpc3RyYXRpb24haW5wdXQiLz4iPiZsdDtzOnRleHQKKyAgICBuYW1lPSJpbmRleC5yZWdpc3RyYXRpb24iLz4mbHQ7L2E+Jmx0Oy9saT4KKyAgICAmbHQ7bGk+Jmx0O2EgaHJlZj0iJmx0O3M6dXJsIGFjdGlvbj0iTG9nb24haW5wdXQiLz4iPiZsdDtzOnRleHQKKyAgICBuYW1lPSJpbmRleC5sb2dvbiIvPiZsdDsvYT4mbHQ7L2xpPgorICAgICZsdDsvdWw+CisKKyAgICAmbHQ7aDM+TGFuZ3VhZ2UgT3B0aW9ucyZsdDsvaDM+CisgICAgJmx0O3VsPgorICAgICZsdDtsaT4mbHQ7YSBocmVmPSImbHQ7czp1cmwgYWN0aW9uPSJXZWxjb21lP3JlcXVlc3RfbG9jYWxlPWVuIi8+Ij5FbmdsaXNoJmx0Oy9hPiZsdDsvbGk+CisgICAgJmx0O2xpPiZsdDthIGhyZWY9IiZsdDtzOnVybCBhY3Rpb249IldlbGNvbWU/cmVxdWVzdF9sb2NhbGU9amEiLz4iPkphcGFuZXNlJmx0Oy9hPiZsdDsvbGk+CisgICAgJmx0O2xpPiZsdDthIGhyZWY9IiZsdDtzOnVybCBhY3Rpb249IldlbGNvbWU/cmVxdWVzdF9sb2NhbGU9cnUiLz4iPlJ1c3NpYW4mbHQ7L2E+Jmx0Oy9saT4KKyAgICAmbHQ7L3VsPgorCisgICAgJmx0O2hyIC8+CisKKyAgICAmbHQ7cD48c3Ryb25nPiZsdDtzOmkxOG4gbmFtZT0iYWx0ZXJuYXRlIj48L3N0cm9uZz4KKyAgICAmbHQ7aW1nIHNyYz0iJmx0O3M6dGV4dCBuYW1lPSJzdHJ1dHMubG9nby5wYXRoIi8+IgorICAgIGFsdD0iJmx0O3M6dGV4dCBuYW1lPSJzdHJ1dHMubG9nby5hbHQiLz4iLz4KKyAgICA8c3Ryb25nPiZsdDsvczppMThuPjwvc3Ryb25nPiZsdDsvcD4KKworICAgICZsdDtwPiZsdDthIGhyZWY9IiZsdDtzOnVybCBhY3Rpb249IlRvdXIiIC8+Ij4mbHQ7czp0ZXh0IG5hbWU9ImluZGV4LnRvdXIiLz4mbHQ7L2E+Jmx0Oy9wPgorCisgICAgJmx0Oy9ib2R5PgorICAgICZsdDsvaHRtbD48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBBdCB0aGUgdG9wIG9mIHRoZSBXZWxjb21lIHBhZ2UsIHRoZXJlIGFyZSBzZXZlcmFsIGRpcmVjdGl2ZXMgdGhhdCBsb2FkIHRoZQorICAgIFN0cnV0cyAyIHRhZyBsaWJyYXJpZXMuCisgICAgVGhlc2UgYXJlIGp1c3QgdGhlIHVzdWFsIHJlZCB0YXBlIHRoYXQgZ29lcyB3aXRoIGFueSBKU1AgZmlsZS4KKyAgICBUaGUgcmVzdCBvZiB0aGUgcGFnZSB1dGlsaXplcyB0aHJlZSBTdHJ1dHMgSlNQIHRhZ3M6CisgICAgInRleHQiLCAidXJsIiwgYW5kICJpMThuIi4KKzwvcD4KKworPHA+CisgICAgKFdlIHVzZSB0aGUgdGFnIHByZWZpeCAiczoiIGluIHRoZSBTdHJ1dHMgMiBNYWlsUmVhZGVyIGFwcGxpY2F0aW9uLAorICAgIGJ1dCB5b3UgY2FuIHVzZSB3aGF0ZXZlciBwcmVmaXggeW91IGxpa2UgaW4geW91ciBhcHBsaWNhdGlvbnMuKQorPC9wPgorCis8cD4KKyAgICBUaGUgPHN0cm9uZz50ZXh0PC9zdHJvbmc+IHRhZyBpbnNlcnRzIGEgbWVzc2FnZSBmcm9tIGFuCisgICAgYXBwbGljYXRpb24ncyBkZWZhdWx0IHJlc291cmNlIGJ1bmRsZS4KKyAgICBJZiB0aGUgZnJhbWV3b3JrJ3MgbG9jYWxlIHNldHRpbmcgaXMgY2hhbmdlZCBmb3IgYSB1c2VyLAorICAgIHRoZSB0ZXh0IHRhZyB3aWxsIHJlbmRlciBtZXNzYWdlcyBmcm9tIHRoZSBuZXcgbG9jYWxlJ3MgcmVzb3VyY2UKKyAgICBidW5kbGUgaW5zdGVhZC4KKzwvcD4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+dXJsPC9zdHJvbmc+IHRhZyBjYW4gcmVuZGVyIGEgcmVmZXJlbmNlIHRvIGFuCisgICAgYWN0aW9uIG9yIGFueSBvdGhlciB3ZWIgcmVzb3VyY2UsCisgICAgYXBwbHlpbmcgIlVSTCBlbmNvZGluZyIgdG8gdGhlIGh5cGVybGlua3MgYXMgbmVlZGVkLgorICAgIEphdmEncyBVUkwgZW5jb2RpbmcgZmVhdHVyZSBsZXRzIHlvdXIgYXBwbGljYXRpb24gbWFpbnRhaW4gY2xpZW50IHN0YXRlCisgICAgd2l0aG91dCByZXF1aXJpbmcgY29va2llcy4KKzwvcD4KKworPGhyLz4KKzxoNT5UaXA6PC9oNT4KKzxibG9ja3F1b3RlPgorICAgIDxwPjxmb250IGNsYXNzPSJoaW50Ij4KKyAgICAgICAgPHN0cm9uZz5Db29raWVzPC9zdHJvbmc+IC0KKyAgICAgICAgSWYgeW91IHR1cm4gY29va2llcyBvZmYgaW4geW91ciBicm93c2VyLCBhbmQgdGhlbiByZWxvYWQgeW91ciBicm93c2VyCisgICAgICAgIGFuZCB0aGlzIHBhZ2UsCisgICAgICAgIHlvdSB3aWxsIHNlZSB0aGUgbGlua3Mgd2l0aCB0aGUgSmF2YSBzZXNzaW9uIGlkIGluZm9ybWF0aW9uIGF0dGFjaGVkLgorICAgICAgICAoSWYgeW91IGFyZSB1c2luZyBJbnRlcm5ldCBFeHBsb3JlciBhbmQgdHJ5IHRoaXMsCisgICAgICAgIGJlIHN1cmUgeW91IHJlc2V0IGNvb2tpZXMgZm9yIHRoZSBhcHByb3ByaWF0ZSBzZWN1cml0eSB6b25lLAorICAgICAgICBhbmQgdGhhdCB5b3UgZGlzYWxsb3cgInBlci1zZXNzaW9uIiBjb29raWVzLikKKyAgICA8L2ZvbnQ+PC9wPgorPC9ibG9ja3F1b3RlPgorPGhyLz4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+aTE4bjwvc3Ryb25nPiB0YWcgcHJvdmlkZXMgYWNjZXNzIHRvIG11bHRpcGxlIHJlc291cmNlIGJ1bmRsZXMuCisgICAgVGhlIE1haWxSZWFkZXIgYXBwbGljYXRpb24gdXNlcyBhIHNlY29uZCBzZXQgb2YgbWVzc2FnZSByZXNvdXJjZXMgZm9yCisgICAgbm9uLXRleHQgZWxlbWVudHMuCisgICAgV2hlbiB0aGVzZSBhcmUgbmVlZGVkLCB3ZSB1c2UgdGhlICJpMThuIiB0YWcgdG8gc3BlY2lmeSBhIGRpZmZlcmVudCBidW5kbGUuCis8L3A+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPmFsdGVybmF0ZTwvc3Ryb25nPiBidW5kbGUgaXMgc3RvcmVkIG5leHQgdG8gdGhlIGRlZmF1bHQgYnVuZGxlLAorICAgIHNvIHRoYXQgaXQgZW5kcyB1cCB1bmRlciAiY2xhc3NlcyIsIHdoaWNoIGlzIG9uIHRoZSBhcHBsaWNhdGlvbidzIGNsYXNzIHBhdGguCis8L3A+CisKKzxwPgorICAgIEluIHRoZSBzcGFuIG9mIGEgc2luZ2xlIHJlcXVlc3QgZm9yIHRoZSBXZWxjb21lIHBhZ2UsIHRoZSBmcmFtZXdvcmsgaGFzIGRvbmUKKyAgICBxdWl0ZSBhIGJpdCBhbHJlYWR5OgorPC9wPgorCis8dWw+CisgICAgPGxpPgorICAgICAgICBDb25maXJtZWQgdGhhdCByZXF1aXJlZCByZXNvdXJjZXMgd2VyZSBsb2FkZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uLgorICAgIDwvbGk+CisKKyAgICA8bGk+CisgICAgICAgIFdyaXR0ZW4gYWxsIHRoZSBwYWdlIGhlYWRpbmdzIGFuZCBsYWJlbHMgZnJvbSBpbnRlcm5hdGlvbmFsaXplZAorICAgICAgICBtZXNzYWdlIHJlc291cmNlcy4KKyAgICA8L2xpPgorCisgICAgPGxpPgorICAgICAgICBBdXRvbWF0aWNhbGx5IFVSTC1lbmNvZGVkIHBhdGhzIGFzIG5lZWRlZC4KKyAgICA8L2xpPgorPC91bD4KKworPHA+CisgICAgV2hlbiByZW5kZXJlZCwgdGhlIFdlbGNvbWUgcGFnZSBsaXN0cyB0d28gbWVudSBvcHRpb25zOgorICAgIG9uZSB0byByZWdpc3RlciB3aXRoIHRoZSBhcHBsaWNhdGlvbiBhbmQgb25lIHRvIGxvZyBvbiAoaWYgeW91IGhhdmUKKyAgICBhbHJlYWR5IHJlZ2lzdGVyZWQpLgorICAgIExldCdzIGZvbGxvdyB0aGUgTG9nb24gbGluayBmaXJzdC4KKzwvcD4KKworPGgzPjxhIG5hbWU9IkxvZ29uIiBpZD0iTG9nb24iPkxvZ29uPC9hPjwvaDM+CisKKzxwPgorICAgIElmIHlvdSBjaG9vc2UgdGhlIExvZ29uIGxpbmssIGFuZCBhbGwgZ29lcyB3ZWxsLCB0aGUgTG9nb24gYWN0aW9uIGZvcndhcmRzCisgICAgY29udHJvbCB0byB0aGUgTG9nb24gcGFnZS4KKzwvcD4KKworPGg0PjxhIG5hbWU9IkxvZ29uLmpzcCIgaWQ9IkxvZ29uLmpzcCI+TG9nb24gUGFnZTwvYT48L2g0PgorCis8cD4KKyAgICBUaGUgTG9nb24gcGFnZSBkaXNwbGF5cyBhIGZvcm0gdGhhdCBhY2NlcHRzIGEgdXNlcm5hbWUgYW5kIHBhc3N3b3JkLgorICAgIFlvdSBjYW4gdXNlIHRoZSBkZWZhdWx0IHVzZXJuYW1lIGFuZCBwYXNzd29yZCB0byBsb2dvbgorICAgICg8c3Ryb25nPnVzZXI8L3N0cm9uZz4gYW5kIDxzdHJvbmc+cGFzczwvc3Ryb25nPiksIGlmCisgICAgeW91IGxpa2UuIFRyeSBvbWl0dGluZyBvciBtaXNzcGVsbGluZyB0aGUgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGluCisgICAgdmFyaW91cyBjb21iaW5hdGlvbnMgdG8gc2VlIGhvdyB0aGUgYXBwbGljYXRpb24gcmVhY3RzLgorICAgIE5vdGUgdGhhdCBib3RoIHRoZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgYXJlIGNhc2Ugc2Vuc2l0aXZlLgorPC9wPgorCis8aHIvPgorPGg1PkxvZ2luLmpzcDwvaDU+Cis8cHJlPjxjb2RlPiZsdDslQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiICU+CisgICAgJmx0OyVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MiICU+CisgICAgJmx0OyFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CisgICAgJmx0O2h0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPgorICAgICZsdDtoZWFkPgorICAgICZsdDt0aXRsZT4mbHQ7czp0ZXh0IG5hbWU9ImxvZ29uLnRpdGxlIi8+Jmx0Oy90aXRsZT4KKyAgICAmbHQ7bGluayBocmVmPSImbHQ7czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgICZsdDsvaGVhZD4KKyAgICAmbHQ7Ym9keSBvbkxvYWQ9InNlbGYuZm9jdXMoKTtkb2N1bWVudC5Mb2dvbi51c2VybmFtZS5mb2N1cygpIj4KKyAgICA8c3Ryb25nPiZsdDtzOmFjdGlvbmVycm9yLz48L3N0cm9uZz4KKyAgICA8c3Ryb25nPiZsdDtzOmZvcm0gbWV0aG9kPSJQT1NUIiB2YWxpZGF0ZT0idHJ1ZSI+PC9zdHJvbmc+CisgICAgPHN0cm9uZz4mbHQ7czp0ZXh0ZmllbGQgbGFiZWw9IiV7Z2V0VGV4dCgndXNlcm5hbWUnKX0iIG5hbWU9InVzZXJuYW1lIi8+PC9zdHJvbmc+CisgICAgPHN0cm9uZz4mbHQ7czpwYXNzd29yZCBsYWJlbD0iJXtnZXRUZXh0KCdwYXNzd29yZCcpfSIgbmFtZT0icGFzc3dvcmQiLz48L3N0cm9uZz4KKyAgICA8c3Ryb25nPiZsdDtzOnN1Ym1pdCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uc2F2ZScpfSIvPjwvc3Ryb25nPgorICAgIDxzdHJvbmc+Jmx0O3M6cmVzZXQgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLnJlc2V0Jyl9Ii8+PC9zdHJvbmc+CisgICAgJmx0O3M6c3VibWl0IDxzdHJvbmc+YWN0aW9uPSJMb2dvbiFjYW5jZWwiIG9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCI8L3N0cm9uZz4KKyAgICB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uY2FuY2VsJyl9Ii8+CisgICAgJmx0Oy9zOmZvcm0+CisgICAgJmx0O2pzcDppbmNsdWRlIHBhZ2U9IkZvb3Rlci5qc3AiLz4KKyAgICAmbHQ7L2JvZHk+CisgICAgJmx0Oy9odG1sPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFdlIGFscmVhZHkgc2F3IHNvbWUgb2YgdGhlIHRhZ3MgdXNlZCBieSB0aGUgTG9nb24gcGFnZSBvbiB0aGUgV2VsY29tZSBwYWdlLgorICAgIExldCdzIGZvY3VzIG9uIHRoZSBuZXcgdGFncy4KKzwvcD4KKworPHA+CisgICAgVGhlIGZpcnN0IG5ldyB0YWcgb24gdGhlIExvZ29uIHBhZ2UgaXMgPHN0cm9uZz5hY3Rpb25lcnJvcnM8L3N0cm9uZz4uCisgICAgTW9zdCBvZiB0aGUgcG9zc2libGUgdmFsaWRhdGlvbiBlcnJvcnMgYXJlIHJlbGF0ZWQgdG8gYSBzaW5nbGUgZmllbGQuCisgICAgSWYgeW91IGRvbid0IGVudGVyIGEgdXNlcm5hbWUsCisgICAgdGhlIGZyYW1ld29yayBjYW4gcGxhY2UgYW4gZXJyb3IgbWVzc2FnZSBuZWFyIHRoZSB0YWcgcHJvbXB0aW5nIHlvdSB0bworICAgIGVudGVyIGEgdXNlcm5hbWUuCisgICAgQnV0IHNvbWUgbWVzc2FnZXMgYXJlIG5vdCByZWxhdGVkIHRvIGEgc2luZ2xlIGZpZWxkLgorICAgIEZvciBleGFtcGxlLCB0aGUgZGF0YWJhc2UgbWlnaHQgYmUgZG93bi4KKyAgICBJZiB0aGUgYWN0aW9uIHJldHVybnMgYW4gIkFjdGlvbiBFcnJvciIsIGFzIG9wcG9zZWQgdG8gYSAiRmllbGQgRXJyb3IiLAorICAgIHRoZSBtZXNzYWdlcyBhcmUgcmVuZGVyZWQgaW4gcGxhY2Ugb2YgdGhlICJhY3Rpb25lcnJvciIgdGFnLgorICAgIFRoZSB0ZXh0IGZvciB0aGUgdmFsaWRhdGlvbiBlcnJvcnMsIHdoZXRoZXIgdGhleSBhcmUgQWN0aW9uIEVycm9ycyBvcgorICAgIEZpZWxkIEVycm9ycywgY2FuIGJlIHNwZWNpZmllZCBpbiB0aGUgcmVzb3VyY2UgYnVuZGxlLAorICAgIG1ha2luZyB0aGUgbWVzc2FnZXMgZWFzeSB0byBtYW5hZ2UgYW5kIGxvY2FsaXplLgorPC9wPgorCis8cD4KKyAgICBUaGUgc2Vjb25kIG5ldyB0YWcgaXMgPHN0cm9uZz5mb3JtPC9zdHJvbmc+LgorICAgIFRoaXMgdGFnIHJlbmRlcnMgYSBIVE1MIGZvcm0gdGFnLgorICAgIEJ5IGRlZmF1bHQsIHRoZSBmb3JtIHdpbGwgc3VibWl0IGJhY2sgdG8gd2hhdGV2ZXIgYWN0aW9uIGludm9rZWQgdGhlIHBhZ2UuCisgICAgVGhlICJ2YWxpZGF0ZT10cnVlIiBzZXR0aW5nIGVuYWJsZXMgY2xpZW50LXNpZGUgdmFsaWRhdGlvbiwKKyAgICBzbyB0aGF0IHRoZSBmb3JtIGNhbiBiZSB2YWxpZGF0ZWQgd2l0aCBKYXZhU2NyaXB0IGJlZm9yZSBiZWluZyBzZW50CisgICAgYmFjayB0byB0aGUgc2VydmVyLgorICAgIFRoZSBmcmFtZXdvcmsgd2lsbCBzdGlsbCB2YWxpZGF0ZSB0aGUgZm9ybSBhZ2FpbiwganVzdCB0byBiZSBzdXJlLCBidXQgdGhlCisgICAgY2xpZW50LXNpZGUgdmFsaWRhdGlvbiBjYW4gc2F2ZSBhIGZldyByb3VuZC10cmlwcyB0byB0aGUgc2VydmVyLgorICAgIFlvdSBjYW4gdXNlIHRoZSBtZXRob2QgYXR0cmlidXRlIHRvIGRlc2lnbmF0ZSAiR0VUIiBvciAiUE9TVCIsCisgICAganVzdCBsaWtlIHRoZSBIVE1MIGZvcm0gdGFnLgorPC9wPgorCis8cD4KKyAgICBXaXRoaW4gdGhlIGZvcm0gdGFnLAorICAgIHdlIHNlZSBmb3VyIG1vcmUgbmV3IHRhZ3M6ICJ0ZXh0ZmllbGQiLCAicGFzc3dvcmQiLCAic3VibWl0IiwKKyAgICBhbmQgInJlc2V0Ii4gV2UgYWxzbyBzZWUgYSBzZWNvbmQgdXNhZ2Ugb2YgInN1Ym1pdCIgdGhhdCB1dGlsaXplcyBhbgorICAgICJhY3Rpb24iIGF0dHJpYnV0ZS4KKzwvcD4KKworPHA+CisgICAgV2hlbiB3ZSBwbGFjZSBhIGNvbnRyb2wgb24gYSBmb3JtLCB3ZSB1c3VhbGx5IG5lZWQgdG8gY29kZSBhIHNldCBvZgorICAgIEhUTUwgdGFncyB0byBkbyBldmVyeXRoaW5nIHdlIHdhbnQgdG8gZG8uCisgICAgTW9zdCBvZnRlbiwgd2UgZG8gbm90IGp1c3Qgd2FudCBhIHBsYWluICJpbnB1dCB0eXBlPXRleHQiIHRhZy4KKyAgICBXZSB3YW50IHRoZSBpbnB1dCBmaWVsZCB0byBoYXZlIGEgbGFiZWwgdG9vLCBhbmQgbWF5YmUgZXZlbgorICAgIGEgdG9vbHRpcC4gQW5kLCBvZiBjb3Vyc2UsIGEgcGxhY2UgdG8gcHJpbnQgYSBtZXNzYWdlCisgICAgc2hvdWxkIGludmFsaWQgZGF0YSBiZSBlbnRlcmVkLgorPC9wPgorCis8cD4KKyAgICBUaGUgVUkgVGFncyBzdXBwb3J0IHRlbXBsYXRlcyBhbmQgdGhlbWVzIHNvIHRoYXQgYSBzZXQgb2YgSFRNTCB0YWdzIGNhbiBiZQorICAgIHJlbmRlcmVkIGZyb20gYSBzaW5nbGUgVUkgVGFnLiBGb3IgZXhhbXBsZSwgdGhlIHNpbmdsZSB0YWcKKzwvcD4KKworPHByZT48Y29kZT4KKyAgICAmbHQ7czo8c3Ryb25nPnRleHRmaWVsZDwvc3Ryb25nPiBsYWJlbD0iJXtnZXRUZXh0KCd1c2VybmFtZScpfSIgbmFtZT0idXNlcm5hbWUiLz4KKzwvY29kZT48L3ByZT4KKworPHA+CisgICAgZ2VuZXJhdGVzIGEgd2FkIG9mIEhUTUwgbWFya3VwLgorPC9wPgorCis8aHIvPgorPHByZT48Y29kZT4mbHQ7dHI+CisgICAgJmx0O3RkIGNsYXNzPSJ0ZExhYmVsIj4KKyAgICAmbHQ7bGFiZWwgZm9yPSJMb2dvbl91c2VybmFtZSIgY2xhc3M9ImxhYmVsIj5Vc2VybmFtZTombHQ7L2xhYmVsPgorICAgICZsdDsvdGQ+CisgICAgJmx0O3RkPgorICAgICZsdDtpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgdmFsdWU9IiIgaWQ9IkxvZ29uX3VzZXJuYW1lIi8+CisgICAgJmx0Oy90ZD4KKyAgICAmbHQ7L3RyPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIElmIGZvciBzb21lIHJlYXNvbiB5b3UgZG9uJ3QgbGlrZSB0aGUgbWFya3VwIGdlbmVyYXRlZCBieSBhIFVJIFRhZywKKyAgICBpdCdzIGVhY2ggdG8gY2hhbmdlLgorICAgIEVhY2ggdGFnIGlzIGRyaXZlbiBieSBhIHRlbXBsYXRlIHRoYXQgY2FuIGJlIHVwZGF0ZWQgb24gYSB0YWctYnktdGFnIGJhc2lzLgorICAgIEZvciBleGFtcGxlLAorICAgIGhlcmUgaXMgdGhlIGRlZmF1bHQgdGVtcGxhdGUgdGhhdCBnZW5lcmF0ZXMgdGhlIG1hcmt1cCBmb3IgdGhlIEFjdGlvbkVycm9ycyB0YWc6Cis8L3A+CisKKzxoci8+Cis8cHJlPjxjb2RlPiZsdDsjaWYgKGFjdGlvbkVycm9ycz9leGlzdHMgJiYgYWN0aW9uRXJyb3JzP3NpemUgPiAwKT4KKyAgICAmbHQ7dWw+CisgICAgJmx0OyNsaXN0IGFjdGlvbkVycm9ycyBhcyBlcnJvcj4KKyAgICAmbHQ7bGk+Jmx0O3NwYW4gY2xhc3M9ImVycm9yTWVzc2FnZSI+JHtlcnJvcn0mbHQ7L3NwYW4+Jmx0Oy9saT4KKyAgICAmbHQ7LyNsaXN0PgorICAgICZsdDsvdWw+CisgICAgJmx0Oy8jaWY+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgSWYgeW91IHdhbnRlZCBBY3Rpb25FcnJvcnMgZGlzcGxheWVkIGluIGEgdGFibGUgaW5zdGVhZCBvZiBhIGxpc3QsCisgICAgeW91IGNvdWxkIGVkaXQgYSBjb3B5IG9mIHRoaXMgZmlsZSwgc2F2ZSBpdCBhcyBhIGZpbGUgbmFtZWQgImFjdGlvbmVycm9yLmZ0bCIsCisgICAgYW5kIHBsYWNlIHRoaXMgb25lIGZpbGUgc29tZXdoZXJlIG9uIHlvdXIgY2xhc3NwYXRoLgorPC9wPgorCis8aHIvPgorPHByZT48Y29kZT4mbHQ7I2lmIChhY3Rpb25FcnJvcnM/ZXhpc3RzICYmIGFjdGlvbkVycm9ycz9zaXplID4gMCk+CisgICAgPHN0cm9uZz4mbHQ7dGFibGU+PC9zdHJvbmc+CisgICAgJmx0OyNsaXN0IGFjdGlvbkVycm9ycyBhcyBlcnJvcj4KKyAgICA8c3Ryb25nPiZsdDt0cj4mbHQ7dGQ+PC9zdHJvbmc+Jmx0O3NwYW4gY2xhc3M9ImVycm9yTWVzc2FnZSI+JHtlcnJvcn0mbHQ7L3NwYW4+PHN0cm9uZz4mbHQ7L3RkPiZsdDsvdHI+PC9zdHJvbmc+CisgICAgJmx0Oy8jbGlzdD4KKyAgICA8c3Ryb25nPiZsdDsvdGFibGU+PC9zdHJvbmc+CisgICAgJmx0Oy8jaWY+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgVW5kZXIgdGhlIGNvdmVycywgdGhlIGZyYW1ld29yayB1c2VzCisgICAgPGEgaHJlZj0iaHR0cDovL2ZyZWVtYXJrZXIuc291cmNlZm9yZ2UubmV0LyI+RnJlZW1hcmtlcjwvYT4KKyAgICBmb3IgaXRzIHN0YW5kYXJkIHRlbXBsYXRpbmcgbGFuZ3VhZ2UuCisgICAgRnJlZU1hcmtlciBpcyBzaW1pbGFyIHRvCisgICAgPGEgaHJlZj0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy92ZWxvY2l0eS8iPlZlbG9jaXR5PC9hPiwKKyAgICBidXQgaXQgb2ZmZXJzIGJldHRlciBlcnJvciByZXBvcnRpbmcgYW5kIHNvbWUgYWRkaXRpb25hbCBmZWF0dXJlcy4KKyAgICBJZiB5b3UgcHJlZmVyLCBWZWxvY2l0eSBhbmQgSlNQIHRlbXBsYXRlcyBjYW4gYWxzbyBiZSB1c2VkIHRvIGNyZWF0ZSB5b3VyIG93biBVSSBUYWdzLgorPC9wPgorCis8cD4KKyAgICBUaGUgPHN0cm9uZz5wYXNzd29yZDwvc3Ryb25nPiB0YWcgcmVuZGVycyBhICJpbnB1dCB0eXBlPXBhc3N3b3JkIgorICAgIHRhZywgYWxvbmcgd2l0aCB0aGUgdXN1YWwgdGVtcGxhdGUvdGhlbWUgbWFya3VwLgorICAgIEJ5IGRlZmF1bHQsIHRoZSBwYXNzd29yZCB0YWcgd2lsbCBub3QgcmV0YWluIGlucHV0IGlmIHRoZSBzdWJtaXQgZmFpbHMuCisgICAgSWYgdGhlIHVzZXJuYW1lIGlzIHdyb25nLAorICAgIHRoZSBjbGllbnQgd2lsbCBoYXZlIHRvIGVudGVyIHRoZSBwYXNzd29yZCBhZ2FpbiB0b28uCisgICAgKElmIHlvdSBkaWQgd2FudCB0byByZXRhaW4gdGhlIHBhc3N3b3JkIHdoZW4gdmFsaWRhdGlvbiBmYWlscywKKyAgICB5b3UgY2FuIHNldCB0aGUgdGFnJ3MgInNob3dQYXNzd29yZCIgcHJvcGVydHkgdG8gdHJ1ZS4pCis8L3A+CisKKzxwPgorICAgIFVuc3VycHJpc2luZ2x5LCB0aGUgPHN0cm9uZz5zdWJtaXQ8L3N0cm9uZz4gYW5kIDxzdHJvbmc+cmVzZXQ8L3N0cm9uZz4gdGFncworICAgIHJlbmRlciBidXR0b25zIG9mIHRoZSBjb3JyZXNwb25kaW5nIHR5cGVzLgorPC9wPgorCis8cD4KKyAgICBUaGUgc2Vjb25kIHN1Ym1pdCBidXR0b24gaXMgbW9yZSBpbnRlcmVzdGluZy4KKzwvcD4KKworPHByZT48Y29kZT4gICZsdDtzOnN1Ym1pdCA8c3Ryb25nPmFjdGlvbj0iTG9nb24hY2FuY2VsIiBvbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiPC9zdHJvbmc+CisgICAgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLmNhbmNlbCcpfSIvPgorPC9jb2RlPjwvcHJlPgorCis8cD4KKyAgICBIZXJlIHdlIGFyZSBjcmVhdGluZyB0aGUgQ2FuY2VsIGJ1dHRvbiBmb3IgdGhlIGZvcm0uCisgICAgVGhlIGJ1dHRvbidzIGF0dHJpYnV0ZSA8ZW0+YWN0aW9uPSJMb2dvbjxzdHJvbmc+ITwvc3Ryb25nPmNhbmNlbCI8L2VtPgorICAgIHRlbGxzIHRoZSBmcmFtZXdvcmsgdG8gc3VibWl0IHRvIHRoZSBMb2dvbidzICJjYW5jZWwiIG1ldGhvZAorICAgIGluc3RlYWQgb2YgdGhlIHVzdWFsICJleGVjdXRlIiBtZXRob2QuCisgICAgVGhlIDxlbT5vbmNsaWNrPSJmb3JtLm9uc3VibWl0PW51bGwiPC9lbT4gc2NyaXB0IGRlZmVhdHMgY2xpZW50LXNpZGUgdmFsaWRhdGlvbi4KKyAgICBPbiB0aGUgc2VydmVyIHNpZGUsICJjYW5jZWwiIGlzIG9uIGEgc3BlY2lhbCBsaXN0IG9mIG1ldGhvZHMgdGhhdCBieXBhc3MgdmFsaWRhdGlvbiwKKyAgICBzbyB0aGUgcmVxdWVzdCB3aWxsIGdvIGRpcmVjdGx5IHRvIHRoZSBBY3Rpb24ncyA8c3Ryb25nPmNhbmNlbDwvc3Ryb25nPiBtZXRob2QuCisgICAgKE90aGVyIHNwZWNpYWwgYWxpYXNlcyBvbiB0aGUgYnlwYXNzIGxpc3QgaW5jbHVkZSAiaW5wdXQiIGFuZCAiYmFjayIuKQorPC9wPgorCis8aHIvPgorPGg1PlRpcDo8L2g1PgorPGJsb2NrcXVvdGU+CisgICAgPHA+PGZvbnQgY2xhc3M9ImhpbnQiPgorICAgICAgICBUaGUgVUkgdGFncyBoYXZlIG9wdGlvbnMgYW5kIGNhcGFiaWxpdGllcyBiZXlvbmQgd2hhdCB3ZSBoYXZlIHNob3duIGhlcmUuCisgICAgICAgIEZvciBtb3JlIHNlZSwgdGhlIDxhIGhyZWY9Imh0dHA6Ly9jb25mbHVlbmNlLnR3ZGF0YS5vcmcvZGlzcGxheS9XVy9UYWdzIj5VSSBUYWcgZG9jdW1lbnRhdGlvbi48L2E+CisgICAgPC9mb250PjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoci8+CisKKzxwPgorICAgIE9LLCBidXQgaG93IGRvIHRoZSB0YWdzIGtub3cgdGhhdCBib3RoIG9mIHRoZXNlIGZpZWxkcyBhcmUgcmVxdWlyZWQ/CisgICAgSG93IGRvIHRoZXkga25vdyB3aGF0IG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIHRoZSBmaWVsZHMgYXJlIGVtcHR5PworPC9wPgorCis8cD4KKyAgICBGb3IgdGhlIGFuc3dlcnMsIHdlIG5lZWQgdG8gbG9vayBhdCBhbm90aGVyIGZsYXZvciBvZiBjb25maWd1cmF0aW9uIGZpbGU6CisgICAgdGhlICJ2YWxpZGF0aW9uIiBmaWxlLgorPC9wPgorCis8aDQ+PGEgbmFtZT0iTG9nb24tdmFsaWRhdGlvbi54bWwiIGlkPSJMb2dvbi12YWxpZGF0aW9uLnhtbCI+TG9nb24tdmFsaWRhdGlvbi54bWw8L2E+Cis8L2g0PgorCis8cD4KKyAgICBXaGlsZSBpdCBpcyBub3QgaGFyZCB0byBjb2RlIGRhdGEtZW50cnkgdmFsaWRhdGlvbiBpbnRvIGFuIEFjdGlvbiBjbGFzcywKKyAgICB0aGUgZnJhbWV3b3JrIHByb3ZpZGVzIGFuIGV2ZW4gZWFzaWVyIHdheSB0byB2YWxpZGF0ZSBpbnB1dC4KKzwvcD4KKworPHA+CisgICAgVGhlIHZhbGlkYXRpb24gZnJhbWV3b3JrIGlzIGNvbmZpZ3VyZWQgdGhyb3VnaCBhbm90aGVyIFhNTCBkb2N1bWVudCwgdGhlIDxzdHJvbmc+CisgICAgTG9nb24tdmFsaWRhdGlvbi54bWw8L3N0cm9uZz4uCis8L3A+CisKKzxoci8+Cis8aDU+VmFsaWRhdGlvbiBmaWxlIGZvciBMb2dvbiBBY3Rpb248L2g1PgorPHByZT48Y29kZT4mbHQ7IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIKKyAgICAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLXZhbGlkYXRvci0xLjAuMi5kdGQiPgorICAgICZsdDt2YWxpZGF0b3JzPgorICAgICZsdDtmaWVsZCBuYW1lPSI8c3Ryb25nPnVzZXJuYW1lPC9zdHJvbmc+Ij4KKyAgICAmbHQ7ZmllbGQtdmFsaWRhdG9yIHR5cGU9IjxzdHJvbmc+cmVxdWlyZWRzdHJpbmc8L3N0cm9uZz4iPgorICAgICZsdDttZXNzYWdlIGtleT0iPHN0cm9uZz5lcnJvci51c2VybmFtZS5yZXF1aXJlZDwvc3Ryb25nPiIvPgorICAgICZsdDsvZmllbGQtdmFsaWRhdG9yPgorICAgICZsdDsvZmllbGQ+CisgICAgJmx0O2ZpZWxkIG5hbWU9IjxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4iPgorICAgICZsdDtmaWVsZC12YWxpZGF0b3IgdHlwZT0iPHN0cm9uZz5yZXF1aXJlZHN0cmluZzwvc3Ryb25nPiI+CisgICAgJmx0O21lc3NhZ2Uga2V5PSI8c3Ryb25nPmVycm9yLnBhc3N3b3JkLnJlcXVpcmVkPC9zdHJvbmc+Ii8+CisgICAgJmx0Oy9maWVsZC12YWxpZGF0b3I+CisgICAgJmx0Oy9maWVsZD4KKyAgICAmbHQ7L3ZhbGlkYXRvcnM+Cis8L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBZb3UgbWF5IG5vdGUgdGhhdCB0aGUgRFREIHJlZmVycyB0byAiWFdvcmsiLgorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay8iPgorICAgICAgICBPcGVuIFN5bXBob255IFhXb3JrCisgICAgPC9hPiBpcyBhIGdlbmVyaWMgY29tbWFuZC1wYXR0ZXJuIGZyYW1ld29yayB0aGF0IGNhbiBiZSB1c2VkIG91dHNpZGUgb2YgYQorICAgIHdlYiBlbnZpcm9ubWVudC4gSW4gcHJhY3RpY2UsIFN0cnV0cyAyIGlzIGEgd2ViLWJhc2VkIGV4dGVuc2lvbiBvZiB0aGUKKyAgICBYV29yayBmcmFtZXdvcmsuCis8L3A+CisKKzxwPgorICAgIFRoZSBmaWVsZCBlbGVtZW50cyBjb3JyZXNwb25kIHRvIHRoZSBBY3Rpb25Gb3JtIHByb3BlcnRpZXMuCisgICAgVGhlIDxzdHJvbmc+dXNlcm5hbWU8L3N0cm9uZz4gYW5kIDxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4gZmllbGQgZWxlbWVudHMKKyAgICBzYXkgdGhhdCBlYWNoIGZpZWxkIGRlcGVuZHMgb24gdGhlICJyZXF1aXJlZHN0cmluZyIgdmFsaWRhdG9yLgorICAgIElmIHRoZSB1c2VybmFtZSBpcyBibGFuayBvciBhYnNlbnQsIHZhbGlkYXRpb24gd2lsbCBmYWlsIGFuZCBhbiBlcnJvcgorICAgIG1lc3NhZ2UgaXMgZ2VuZXJhdGVkLgorICAgIFRoZSBtZXNzYWdlcyB3b3VsZCBiZSBiYXNlZCBvbiB0aGUgImVycm9yLnVzZXJuYW1lLnJlcXVpcmVkIiBvcgorICAgICJlcnJvci5wYXNzd29yZC5yZXF1aXJlZCIgbWVzc2FnZSB0ZW1wbGF0ZXMsIGZyb20gdGhlIHJlc291cmNlIGJ1bmRsZS4KKzwvcD4KKworPCEtLQorPHA+CisgICAgVGhlIDxzdHJvbmc+cGFzc3dvcmQ8L3N0cm9uZz4gZmllbGQgKG9yIHByb3BlcnR5KSBpcyBhbHNvIHJlcXVpcmVkLgorICAgIEluIGFkZGl0aW9uLCBpdCBtdXN0IGFsc28gcGFzcyB0aGUgIm1heGxlbmd0aCIgYW5kICJtaW5sZW5ndGgiCisgICAgdmFsaWRhdGlvbnMuCisgICAgSGVyZSwgdGhlIG1pbmltdW0gbGVuZ3RoIGlzIHRocmVlIGNoYXJhY3RlcnMgYW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBpcworICAgIHNpeHRlZW4uCisgICAgSWYgdGhlIGxlbmd0aCBvZiB0aGUgcGFzc3dvcmQgZG9lc24ndCBtZWV0IHRoZXNlIGNyaXRlcmlhLCBhIGNvcnJlc3BvbmRpbmcKKyAgICBlcnJvciBtZXNzYWdlIGlzIGdlbmVyYXRlZC4KKyAgICBPZiBjb3Vyc2UsIHRoZSBtZXNzYWdlcyBhcmUgZ2VuZXJhdGVkIGZyb20gdGhlIE1lc3NhZ2VSZXNvdXJjZSBidW5kbGVzIGFuZAorICAgIGFyZSBlYXN5IHRvIGxvY2FsaXplLgorPC9wPgorLS0+CisKKzxoND48YSBuYW1lPSJMb2dvbi5qYXZhIiBpZD0iTG9nb24uamF2YSI+TG9nb24gQWN0aW9uPC9hPjwvaDQ+CisKKzxwPgorICAgIElmIHZhbGlkYXRpb24gcGFzc2VzLCB0aGUgZnJhbWV3b3JrIGludm9rZXMgdGhlICJleGVjdXRlIiBtZXRob2Qgb2YgdGhlIExvZ29uIEFjdGlvbi4KKyAgICBUaGUgYWN0dWFsIExvZ29uIEFjdGlvbiBpcyBicmllZiwgc2luY2UgbW9zdCBvZiB0aGUgZnVuY3Rpb25hbGl0eSBkZXJpdmVzCisgICAgZnJvbSB0aGUgYmFzZSBjbGFzcywgPHN0cm9uZz5NYWlscmVhZGVyU3VwcG9ydDwvc3Ryb25nPi4KKzwvcD4KKworPGhyLz4KKzxoNT5Mb2dvbi5qYXZhPC9oNT4KKzxwcmU+PGNvZGU+cGFja2FnZSBtYWlscmVhZGVyMjsKKyAgICBpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYXBwcy5tYWlscmVhZGVyLmRhby5Vc2VyOworICAgIHB1YmxpYyBmaW5hbCBjbGFzcyA8c3Ryb25nPkxvZ29uPC9zdHJvbmc+IGV4dGVuZHMgTWFpbHJlYWRlclN1cHBvcnQgeworICAgIHB1YmxpYyBTdHJpbmcgPHN0cm9uZz5leGVjdXRlKCk8L3N0cm9uZz4gdGhyb3dzIEV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbiB7CisgICAgVXNlciB1c2VyID0gPHN0cm9uZz5maW5kVXNlcihnZXRVc2VybmFtZSgpLCBnZXRQYXNzd29yZCgpKTs8L3N0cm9uZz4KKyAgICBpZiAodXNlciAhPSBudWxsKSB7CisgICAgPHN0cm9uZz5zZXRVc2VyKHVzZXIpOzwvc3Ryb25nPgorICAgIH0KKyAgICBpZiAoPHN0cm9uZz5oYXNFcnJvcnMoKTwvc3Ryb25nPikgeworICAgIHJldHVybiBJTlBVVDsKKyAgICB9CisgICAgcmV0dXJuIFNVQ0NFU1M7CisgICAgfQorICAgIH08L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBMb2dvbiBsYXlzIG91dCB3aGF0IHdlIGRvIHRvIGF1dGhlbnRpY2F0ZSBhIHVzZXIuCisgICAgV2UgdHJ5IHRvIGZpbmQgdGhlIHVzZXIgdXNpbmcgdGhlIGNyZWRlbnRpYWxzIHByb3ZpZGVkLgorICAgIElmIHRoZSB1c2VyIGlzIGZvdW5kLCB3ZSBjYWNoZSBhIHJlZmVyZW5jZS4KKyAgICBJZiB0aGUgdXNlciBpcyBub3QgZm91bmQsIHdlIHJldHVybiAiaW5wdXQiIHNvIHRoZSBjbGllbnQgY2FuIHRyeSBhZ2Fpbi4KKyAgICBPdGhlcndpc2UsIHdlIHJldHVybiAic3VjY2VzcyIsIHNvIHRoYXQgdGhlIGNsaWVudCBjYW4gYWNjZXNzIHRoZSByZXN0IG9mIHRoZSBhcHBsaWNhdGlvbi4KKzwvcD4KKworPGg0PjxhIG5hbWU9Ik1haWxyZWFkZXJTdXBwb3J0LmphdmEiIGlkPSJNYWlscmVhZGVyU3VwcG9ydC5qYXZhIj5NYWlscmVhZGVyU3VwcG9ydC5qYXZhPC9hPjwvaDQ+CisKKzxwPgorICAgIExldCdzIGxvb2sgYXQgdGhlIHJlbGV2YW50IHByb3BlcnRpZXMgYW5kIG1ldGhvZHMgZnJvbSBNYWlscmVhZGVyU3VwcG9ydAorICAgIGFuZCBhbm90aGVyIGJhc2UgY2xhc3MsIDxzdHJvbmc+QWN0aW9uU3VwcG9ydDwvc3Ryb25nPiwgbmFtZWx5CisgICAgImdldFVzZXJuYW1lIiwgImdldFBhc3N3b3JkIiwgImZpbmRVc2VyIiwgInNldFVzZXIiLCBhbmQgImhhc0Vycm9ycyIuCis8L3A+CisKKzxwPgorICAgIFRoZSBmcmFtZXdvcmsgbGV0cyB5b3UgZGVmaW5lCisgICAgPGEgaHJlZj0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3ByaW1lci5odG1sI2phdmFiZWFucyI+SmF2YUJlYW4gcHJvcGVydGllczwvYT4KKyAgICBkaXJlY3RseSBvbiB0aGUgQWN0aW9uLgorICAgIEFueSBKYXZhQmVhbiBwcm9wZXJ0eSBjYW4gYmUgdXNlZCwgaW5jbHVkaW5nIHJpY2ggb2JqZWN0cy4KKyAgICBXaGVuIGEgcmVxdWVzdCBjb21lcyBpbiwKKyAgICBhbnkgcHVibGljIHByb3BlcnRpZXMgb24gdGhlIEFjdGlvbiBjbGFzcyBhcmUgbWF0Y2hlZCB3aXRoIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMuCisgICAgV2hlbiB0aGUgbmFtZXMgbWF0Y2gsIHRoZSByZXF1ZXN0IHBhcmFtZXRlciB2YWx1ZSBpcyBzZXQgdG8gdGhlIEphdmFCZWFuIHByb3BlcnR5LgorICAgIFRoZSBmcmFtZXdvcmsgd2lsbCBtYWtlIGl0cyBiZXN0IGVmZm9ydCB0byBjb252ZXJ0IHRoZSBkYXRhLAorICAgIGFuZCwgaWYgbmVjZXNzYXJ5LCBpdCB3aWxsIHJlcG9ydCBhbnkgY29udmVyc2lvbiBlcnJvcnMuCis8L3A+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPlVzZXJuYW1lPC9zdHJvbmc+IGFuZCA8c3Ryb25nPlBhc3N3b3JkPC9zdHJvbmc+IHByb3BlcnRpZXMgYXJlIG5vdGhpbmcgZmFuY3ksCisgICAganVzdCBzdGFuZGFyZCBKYXZhQmVhbiBwcm9wZXJ0aWVzLgorPC9wPgorCis8aHIvPgorPGg1Pk1haWxyZWFkZXJTdXBwb3J0LmdldFVzZXJuYW1lKCkgYW5kIGdldFBhc3N3b3JkKCk8L2g1PgorPHByZT48Y29kZT5wcml2YXRlIFN0cmluZyB1c2VybmFtZSA9IG51bGw7CisgICAgcHVibGljIFN0cmluZyA8c3Ryb25nPmdldFVzZXJuYW1lKCk8L3N0cm9uZz4geworICAgIHJldHVybiB0aGlzLnVzZXJuYW1lOworICAgIH0KKyAgICBwdWJsaWMgdm9pZCBzZXRVc2VybmFtZShTdHJpbmcgdXNlcm5hbWUpIHsKKyAgICB0aGlzLnVzZXJuYW1lID0gdXNlcm5hbWU7CisgICAgfQorCisgICAgcHJpdmF0ZSBTdHJpbmcgcGFzc3dvcmQgPSBudWxsOworICAgIHB1YmxpYyBTdHJpbmcgPHN0cm9uZz5nZXRQYXNzd29yZCgpPC9zdHJvbmc+IHsKKyAgICByZXR1cm4gdGhpcy5wYXNzd29yZDsKKyAgICB9CisgICAgcHVibGljIHZvaWQgc2V0UGFzc3dvcmQoU3RyaW5nIHBhc3N3b3JkKSB7CisgICAgdGhpcy5wYXNzd29yZCA9IHBhc3N3b3JkOworICAgIH08L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBXZSB1c2UgdGhlc2UgcHJvcGVydGllcyB0byBjYXB0dXJlIHRoZSBjbGllbnQncyBjcmVkZW50aWFscywKKyAgICBhbmQgcGFzcyB0aGVtIHRvIHRoZSBtb3JlIGludGVyZXN0aW5nIDxzdHJvbmc+ZmluZFVzZXI8L3N0cm9uZz4gbWV0aG9kLgorPC9wPgorCis8aHIvPgorPGg1Pk1haWxyZWFkZXJTdXBwb3J0LmZpbmRVc2VyPC9oNT4KKzxwcmU+PGNvZGU+cHVibGljIFVzZXIgPHN0cm9uZz5maW5kVXNlcjwvc3Ryb25nPihTdHJpbmcgdXNlcm5hbWUsIFN0cmluZyBwYXNzd29yZCkKKyAgICB0aHJvd3MgPHN0cm9uZz5FeHBpcmVkUGFzc3dvcmRFeGNlcHRpb248L3N0cm9uZz4geworICAgIFVzZXIgdXNlciA9IDxzdHJvbmc+Z2V0RGF0YWJhc2UoKS5maW5kVXNlcih1c2VybmFtZSk8L3N0cm9uZz47CisgICAgaWYgKCh1c2VyICE9IG51bGwpICYmICF1c2VyLmdldFBhc3N3b3JkKCkuZXF1YWxzKHBhc3N3b3JkKSkgeworICAgIHVzZXIgPSBudWxsOworICAgIH0KKyAgICBpZiAodXNlciA9PSBudWxsKSB7CisgICAgdGhpcy48c3Ryb25nPmFkZEZpZWxkRXJyb3I8L3N0cm9uZz4oInBhc3N3b3JkIiwgZ2V0VGV4dCgiZXJyb3IucGFzc3dvcmQubWlzbWF0Y2giKSk7CisgICAgfQorICAgIHJldHVybiB1c2VyOworICAgIH08L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBUaGUgImZpbmRVc2VyIiBtZXRob2QgZGlwcyBpbnRvIHRoZSBNYWlsUmVhZGVyIERhdGEgQWNjZXNzIE9iamVjdCBsYXllciwKKyAgICB3aGljaCBpcyByZXByZXNlbnRlZCBieSB0aGUgPHN0cm9uZz5EYXRhYmFzZTwvc3Ryb25nPiBwcm9wZXJ0eS4KKyAgICBUaGUgY29kZSBmb3IgdGhlIERBTyBsYXllciBpcyBtYWludGFpbmVkIGFzIGEgc2VwYXJhdGUgY29tcG9uZW50LgorICAgIFRoZSBNYWlsUmVhZGVyIGFwcGxpY2F0aW9uIGltcG9ydHMgdGhlIERBTyBKQVIsCisgICAgYnV0IGl0IGlzIG5vdCByZXNwb25zaWJsZSBmb3IgbWFpbnRhaW5pbmcgYW55IG9mIHRoZSBEQU8gc291cmNlLgorICAgIEtlZXBpbmcgdGhlIGRhdGEgYWNjZXNzIGxheWVyIGF0ICJhcm1zLWxlbmd0aCIgaXMgYSB2ZXJ5IGdvb2QgaGFiaXQuCisgICAgSXQgZW5jb3VyYWdlcyBhIHN0eWxlIG9mIGRldmVsb3BtZW50IHdoZXJlIHRoZSBkYXRhIGFjY2VzcyBsYXllcgorICAgIGNhbiBiZSB0ZXN0ZWQgYW5kIGRldmVsb3BlZCBpbmRlcGVuZGVudGx5IG9mIGEgc3BlY2lmaWMgZW5kLXVzZXIgYXBwbGljYXRpb24uCisgICAgSW4gZmFjdCwgdGhlcmUgYXJlIHNldmVyYWwgcmVuZGl0aW9ucyBvZiB0aGUgTWFpbFJlYWRlciBhcHBsaWNhdGlvbiwKKyAgICBhbGwgd2hpY2ggc2hhcmUgdGhlIHNhbWUgTWFpbFJlYWRlciBEQU8gSkFSIQorPC9wPgorCis8aHIvPgorPGg1PkJlc3QgUHJhY3RpY2U6PC9oNT4KKzxibG9ja3F1b3RlPgorICAgIDxwPjxmb250IGNsYXNzPSJoaW50Ij4iU3Ryb25nbHkgc2VwYXJhdGUgZGF0YSBhY2Nlc3MgYW5kIGJ1c2luZXNzIGxvZ2ljIGZyb20gdGhlIHJlc3Qgb2YgdGhlIGFwcGxpY2F0aW9uLiI8L2ZvbnQ+CisgICAgPC9wPgorPC9ibG9ja3F1b3RlPgorPGhyLz4KKworPHA+CisgICAgV2hlbiAiZmluZFVzZXIiIHJldHVybnMsCisgICAgdGhlIExvZ29uIEFjdGlvbiBsb29rcyB0byBzZWUgaWYgYSB2YWxpZCAobm9uLW51bGwpIFVzZXIgb2JqZWN0IGlzIHJldHVybmVkLgorICAgIEEgdmFsaWQgVXNlciBpcyBwYXNzZWQgdG8gdGhlIDxzdHJvbmc+VXNlciBwcm9wZXJ0eTwvc3Ryb25nPi4KKyAgICBBbHRob3VnaCBpdCBpcyBzdGlsbCBhIEphdmFCZWFuIHByb3BlcnR5LAorICAgIHRoZSBVc2VyIHByb3BlcnR5IGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBxdWl0ZSB0aGUgc2FtZSB3YXkgYXMgVXNlcm5hbWUgYW5kIFBhc3N3b3JkLgorPC9wPgorCis8aHIvPgorPGg1Pk1haWxyZWFkZXJTdXBwb3J0LnNldFVzZXI8L2g1PgorPHByZT48Y29kZT5wdWJsaWMgVXNlciBnZXRVc2VyKCkgeworICAgIHJldHVybiAoVXNlcikgPHN0cm9uZz5nZXRTZXNzaW9uKCkuZ2V0KENvbnN0YW50cy5VU0VSX0tFWSk8L3N0cm9uZz47CisgICAgfQorICAgIHB1YmxpYyB2b2lkIHNldFVzZXIoVXNlciB1c2VyKSB7CisgICAgZ2V0U2Vzc2lvbigpLnB1dChDb25zdGFudHMuVVNFUl9LRVksIHVzZXIpOworICAgIH08L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBJbnN0ZWFkIG9mIHVzaW5nIGEgZmllbGQgdG8gc3RvcmUgdGhlIHByb3BlcnR5IHZhbHVlLAorICAgICJzZXRVc2VyIiBwYXNzZXMgaXQgdG8gYSA8c3Ryb25nPlNlc3Npb248L3N0cm9uZz4gcHJvcGVydHkuCis8L3A+CisKKzxoci8+Cis8aDU+TWFpbHJlYWRlclN1cHBvcnQuZ2V0U2Vzc2lvbigpIGFuZCBzZXRTZXNzaW9uKCk8L2g1PgorPHByZT48Y29kZT5wcml2YXRlIE1hcCBzZXNzaW9uOworICAgIHB1YmxpYyBNYXAgPHN0cm9uZz5nZXRTZXNzaW9uKCk8L3N0cm9uZz4geworICAgIHJldHVybiBzZXNzaW9uOworCisgICAgcHVibGljIHZvaWQgPHN0cm9uZz5zZXRTZXNzaW9uKE1hcCB2YWx1ZSk8L3N0cm9uZz4geworICAgIHNlc3Npb24gPSB2YWx1ZTsKKyAgICB9PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgVG8gbG9vayBhdCB0aGUgTWFpbHJlYWRlclN1cHBvcnQgY2xhc3MsIHlvdSB3b3VsZCB0aGluayB0aGUgU2Vzc2lvbiBwcm9wZXJ0eSBpcyBhIHBsYWluLW9sZCBNYXAuCisgICAgSW4gZmFjdCwgdGhlIFNlc3Npb24gcHJvcGVydHkgaXMgYW4gYWRhcHRlciB0aGF0IGlzIGJhY2tlZCBieSB0aGUgc2VydmxldCBzZXNzaW9uIG9iamVjdCBhdCBydW50aW1lLgorICAgIFRoZSBNYWlscmVhZGVyU3VwcG9ydCBjbGFzcyBkb2Vzbid0IG5lZWQgdG8ga25vdyB0aGF0IHRob3VnaC4KKyAgICBJdCBjYW4gdHJlYXQgU2Vzc2lvbiBsaWtlIGFueSBvdGhlciBNYXAuCisgICAgV2UgY2FuIGFsc28gdGVzdCB0aGUgTWFpbHJlYWRlclN1cHBvcnQgY2xhc3MgYnkgcGFzc2luZyBpdCBzb21lIG90aGVyIGltcGxlbWVudGF0aW9uIG9mIE1hcCwKKyAgICBydW5uaW5nIHRoZSB0ZXN0LAorICAgIGFuZCB0aGVuIGxvb2tpbmcgdG8gc2VlIHdoYXQgY2hhbmdlcyBNYWlscmVhZGVyU3VwcG9ydCBtYWRlIHRvIG91ciAibW9jayIgU2Vzc2lvbiBvYmplY3QuCis8L3A+CisKKzxwPgorICAgIEJ1dCwgd2hlbiBNYWlscmVhZGVyU3VwcG9ydCBpcyBydW5uaW5nIGluc2lkZSBhIHdlYiBhcHBsaWNhdGlvbiwKKyAgICBob3cgZG9lcyBpdCBhY3F1aXJlIGEgcmVmZXJlbmNlIHRvIHRoZSBzZXJ2bGV0IHNlc3Npb24/Cis8L3A+CisKKzxwPgorICAgIEdvb2QgcXVlc3Rpb24uIElmIHlvdSB3ZXJlIHRvIGxvb2sgYXQganVzdCB0aGUgTWFpbHJlYWRlclN1cHBvcnQgY2xhc3MsCisgICAgeW91IHdvdWxkIG5vdCBzZWUgYSBzaW5nbGUgbGluZSBvZiBjb2RlIHRoYXQgc2V0cyB0aGUgc2Vzc2lvbiBwcm9wZXJ0eS4KKyAgICBCdXQsIHlldCwgd2hlbiB3ZSBydW4gdGhlIGNsYXNzLCB0aGUgc2Vzc2lvbiBwcm9wZXJ0eSBpcyBub3QgbnVsbC4KKyAgICBIbW1tLgorPC9wPgorCis8cD4KKyAgICBUaGUgbWFnaWMgdGhhdCBwcm92aWRlcyB0aGUgU2Vzc2lvbiBwcm9wZXJ0eSBhIHJ1bnRpbWUgdmFsdWUgaXMgY2FsbGVkICJkZXBlbmRlbmN5IGluamVjdGlvbiIuCisgICAgVGhlIE1haWxyZWFkZXJTdXBwb3J0IGNsYXNzIGltcGxlbWVudHMgYSBpbnRlcmZhY2UgY2FsbGVkIDxzdHJvbmc+U2Vzc2lvbkF3YXJlPC9zdHJvbmc+LgorICAgIFNlc3Npb25Bd2FyZSBpcyBidW5kbGVkIHdpdGggdGhlIGZyYW1ld29yaywgYW5kIGl0IGRlZmluZXMgYSBzZXR0ZXIgZm9yIHRoZSBTZXNzaW9uIHByb3BlcnR5LgorPC9wPgorCis8cD4KKyAgICA8Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnNldFNlc3Npb248L3N0cm9uZz4oTWFwIHNlc3Npb24pOzwvY29kZT4KKzwvcD4KKworPHA+CisgICAgQWxzbyBidW5kbGVkIHdpdGggdGhlIGZyYW1ld29yayBpcyBhbiBvYmplY3QgY2FsbGVkIHRoZSA8c3Ryb25nPlNlcnZsZXRDb25maWdJbnRlcmNlcHRvcjwvc3Ryb25nPi4KKyAgICBJZiB0aGUgU2VydmxldENvbmZpZ0ludGVyY2VwdG9yIHNlZXMgdGhhdCBhbiBBY3Rpb24gaW1wbGVtZW50cyB0aGUgU2Vzc2lvbkF3YXJlIGludGVyZmFjZSwKKyAgICBpdCBhdXRvbWF0aWNhbGx5IHNldCB0aGUgc2Vzc2lvbiBwcm9wZXJ0eS4KKzwvcD4KKworPHByZT48Y29kZT5pZiAoYWN0aW9uIGluc3RhbmNlb2YgPGNvZGU+U2Vzc2lvbkF3YXJlPC9jb2RlPikgeworICAgICgoU2Vzc2lvbkF3YXJlKSBhY3Rpb24pLjxjb2RlPnNldFNlc3Npb248L2NvZGU+KGNvbnRleHQuZ2V0U2Vzc2lvbigpKTsKKyAgICB9PC9jb2RlPjwvcHJlPgorCis8cD4KKyAgICBUaGUgZnJhbWV3b3JrIHVzZXMgdGhlc2UgIkludGVyY2VwdG9yIiBjbGFzc2VzIHRvIGNyZWF0ZSBhIDxzdHJvbmc+ZnJvbnQgY29udHJvbGxlcjwvc3Ryb25nPgorICAgIGZvciBlYWNoIGFjdGlvbiBhbiBhcHBsaWNhdGlvbiBkZWZpbmVzLgorICAgIEVhY2ggSW50ZXJjZXB0b3IgY2FuIHBlZWsgYXQgdGhlIHJlcXVlc3QgYmVmb3JlIGFuIEFjdGlvbiBjbGFzcyBpcyBpbnZva2VkLAorICAgIGFuZCB0aGVuIGFnYWluIGFmdGVyIHRoZSBBY3Rpb24gY2xhc3MgaXMgaW52b2tlZC4KKyAgICAoSWYgeW91IGhhdmUgd29ya2VkIHdpdGggU2VydmxldAorICAgIDxhIGhyZWY9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9wcmltZXIuaHRtbCNmaWx0ZXJzIj5GaWx0ZXJzPC9hPiwKKyAgICB5b3Ugd2lsbCByZWNvZ25pemUgdGhpcyBwYXR0ZXJuLgorICAgIEJ1dCwgdW5saWtlIEZpbHRlcnMsIEludGVyY2VwdG9ycyBhcmUgbm90IHRpZWQgdG8gSFRUUC4KKyAgICBJbnRlcmNlcHRvcnMgY2FuIGJlIHRlc3RlZCBhbmQgZGV2ZWxvcGVkIG91dHNpZGUgb2YgYSB3ZWIgYXBwbGljYXRpb24uKQorPC9wPgorCis8cD4KKyAgICBZb3UgY2FuIHVzZSB0aGUgc2FtZSBzZXQgb2YgSW50ZXJjZXB0b3JzIGZvciBhbGwgeW91ciBhY3Rpb25zLAorICAgIG9yIGRlZmluZSBhIHNwZWNpYWwgc2V0IG9mIEludGVyY2VwdG9ycyBmb3IgYW55IGdpdmVuIGFjdGlvbiwKKyAgICBvciBkZWZpbmUgZGlmZmVyZW50IHNldHMgb2YgSW50ZXJjZXB0b3JzIHRvIHVzZSB3aXRoIGRpZmZlcmVudCB0eXBlcyBvZiBhY3Rpb25zLgorICAgIFRoZSBmcmFtZXdvcmsgY29tZXMgd2l0aCBhIGRlZmF1bHQgc2V0IG9mIEludGVyY2VwdG9ycywKKyAgICB0aGF0IGl0IHdpbGwgdXNlIHdoZW4gYW5vdGhlciBzZXQgaXMgbm90IHNwZWNpZmllZCwKKyAgICBidXQgeW91IGNhbiBkZXNpZ25hdGUgeW91ciBvd24gZGVmYXVsdCBJbnRlcmNlcHRvciBzZXQgKG9yICJzdGFjayIpCisgICAgaW4gdGhlIHN0cnV0cy54bWwgY29uZmlndXJhdGlvbiBmaWxlLgorPC9wPgorCis8cD4KKyAgICBNYW55IEludGVyY2VwdG9ycyBwcm92aWRlIGEgdXRpbGl0eSBvciBoZWxwZXIgZnVuY3Rpb25zLCBsaWtlIHNldHRpbmcgdGhlIHNlc3Npb24gcHJvcGVydHkuCisgICAgT3RoZXJzLCBsaWtlIHRoZSA8c3Ryb25nPlZhbGlkYXRpb25JbnRlcmNlcHRvcjwvc3Ryb25nPiwgY2FuIGNoYW5nZSB0aGUgd29ya2Zsb3cgb2YgYW4gYWN0aW9uLgorICAgIEludGVyY2VwdG9ycyBhcmUga2V5IGZlYXR1cmUgb2YgdGhlIGZyYW1ld29yaywKKyAgICBhbmQgd2Ugd2lsbCBzZWUgYSBmZXcgbW9yZSBvbiB0aGUgdG91ci4KKzwvcD4KKworPHA+CisgICAgSWYgYSB2YWxpZCBVc2VyIGlzIG5vdCBmb3VuZCwgb3IgdGhlIHBhc3N3b3JkIGRvZXNuJ3QgbWF0Y2gsCisgICAgdGhlICJmaW5kVXNlciIgbWV0aG9kIGludm9rZXMgdGhlIDxzdHJvbmc+YWRkRmllbGRFcnJvcjwvc3Ryb25nPiBtZXRob2QgdG8gbm90ZSB0aGUgcHJvYmxlbS4KKyAgICBXaGVuICJmaW5kVXNlciIgcmV0dXJucywgdGhlIExvZ29uIEFjdGlvbiBjaGVja3MgZm9yIGVycm9ycywKKyAgICBhbmQgdGhlbiBpdCByZXR1cm5zIGVpdGhlciBJTlBVVCBvciBTVUNDRVNTLgorPC9wPgorCis8cD4KKyAgICBUaGUgImFkZEZpZWxkRXJyb3IiIG1ldGhvZCBpcyBwcm92aWRlZCBieSB0aGUgQWN0aW9uU3VwcG9ydCBjbGFzcywKKyAgICB3aGljaCBpcyBidW5kbGVkIHdpdGggdGhlIGZyYW1ld29yay4KKyAgICBUaGUgY29uc3RhbnRzIGZvciBJTlBVVCBhbmQgU1VDQ0VTUyBhcmUgYWxzbyBwcm92aWRlZCBieSBBY3Rpb25TdXBwb3J0LgorICAgIFdoaWxlIHRoZSBBY3Rpb25TdXBwb3J0IGNsYXNzIHByb3ZpZGVzIG1hbnkgdXNlZnVsIHV0aWxpdGllcywKKyAgICB5b3UgYXJlIG5vdCByZXF1aXJlZCB0byB1c2UgaXQgYXMgYSBiYXNlIGNsYXNzLgorICAgIEFueSBKYXZhIGNsYXNzIGNhbiBiZSB1c2VkIGFzIGFuIEFjdGlvbiwgaWYgeW91IGxpa2UuCis8L3A+CisKKzxwPgorICAgIEl0IGlzIGEgZ29vZCBwcmFjdGljZSB0byBwcm92aWRlIGEgYmFzZSBjbGFzcyB3aXRoIHV0aWxpdGllcworICAgIHRoYXQgY2FuIGJlIHNoYXJlZCBieSBhbiBhcHBsaWNhdGlvbidzIEFjdGlvbiBjbGFzc2VzLgorICAgIFRoZSBmcmFtZXdvcmsgZG9lcyB0aGlzIHdpdGggQWN0aW9uU3VwcG9ydCwKKyAgICBhbmQgdGhlIE1haWxSZWFkZXIgYXBwbGljYXRpb24gZG9lcyB0aGUgc2FtZSB3aXRoIHRoZSBNYWlscmVhZGVyU3VwcG9ydCBjbGFzcy4KKzwvcD4KKworPGhyLz4KKzxoNT5CZXN0IFByYWN0aWNlOjwvaDU+Cis8YmxvY2txdW90ZT4KKyAgICA8cD48Zm9udCBjbGFzcz0iaGludCI+IlVzZSBhIGJhc2UgY2xhc3MgdG8gZGVmaW5lIGNvbW1vbiBmdW5jdGlvbmFsaXR5LiI8L2ZvbnQ+PC9wPgorPC9ibG9ja3F1b3RlPgorPGhyLz4KKworPHA+CisgICAgQnV0LCB3aGF0IGhhcHBlbnMgaWYgTG9nb24gcmV0dXJucyBJTlBVVCBpbnN0ZWFkIG9mIFNVQ0NFU1MuCisgICAgSG93IGRvZXMgdGhlIGZyYW1ld29yayBrbm93IHdoYXQgdG8gZG8gbmV4dD8KKzwvcD4KKworPHA+CisgICAgVG8gYW5zd2VyIHRoYXQgcXVlc3Rpb24sCisgICAgd2UgbmVlZCB0byB0dXJuIGJhY2sgdG8gdGhlICJzdHJ1dHMueG1sIiBmaWxlIGFuZCBsb29rIGF0IGhvdyBMb2dvbiBpcyBjb25maWd1cmVkLgorPC9wPgorCisKKzxoND48YSBuYW1lPSJMb2dvbi54bWwiIGlkPSJMb2dvbi54bWwiPkxvZ29uIENvbmZpZ3VyYXRpb248L2E+PC9oND4KKworPHA+CisgICAgVGhlIExvZ29uIGFjdGlvbiBlbGVtZW50IG91dGxpbmVzIGhvdyB0aGUgTG9nb24gd29ya2Zsb3cgb3BlcmF0ZXMsCisgICAgaW5jbHVkaW5nIHdoYXQgdG8gZG8gd2hlbiB0aGUgQWN0aW9uIHJldHVybnMgImlucHV0IiwKKyAgICBvciB0aGUgZGVmYXVsdCByZXN1bHQgbmFtZSAic3VjY2VzcyIuCis8L3A+CisKKzxoci8+Cis8aDU+c3RydXRzLnhtbCBMb2dvbjwvaDU+Cis8cHJlPjxjb2RlPiZsdDthY3Rpb24gbmFtZT0iPHN0cm9uZz5Mb2dvbjwvc3Ryb25nPiIgY2xhc3M9Im1haWxyZWFkZXIyLnJlZ2lzdHJhdGlvbi5SZXRyaWV2ZSI+CisgICAgJmx0O3Jlc3VsdCBuYW1lPSI8c3Ryb25nPmlucHV0PC9zdHJvbmc+Ij4vcGFnZXMvTG9nb24uanNwJmx0Oy9yZXN1bHQ+CisgICAgJmx0O3Jlc3VsdCBuYW1lPSI8c3Ryb25nPmNhbmNlbDwvc3Ryb25nPiIgdHlwZT0icmVkaXJlY3QtYWN0aW9uIj5XZWxjb21lJmx0Oy9yZXN1bHQ+CisgICAgJmx0O3Jlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPk1haW5NZW51Jmx0Oy9yZXN1bHQ+CisgICAgJmx0O3Jlc3VsdCBuYW1lPSI8c3Ryb25nPmV4cGlyZWQ8L3N0cm9uZz4iIHR5cGU9ImNoYWluIj5DaGFuZ2VQYXNzd29yZCZsdDsvcmVzdWx0PgorICAgICZsdDs8c3Ryb25nPmV4Y2VwdGlvbi1tYXBwaW5nPC9zdHJvbmc+CisgICAgZXhjZXB0aW9uPSJvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbiIKKyAgICByZXN1bHQ9IjxzdHJvbmc+ZXhwaXJlZDwvc3Ryb25nPiIvPgorICAgICZsdDtpbnRlcmNlcHRvci1yZWYgbmFtZT0iPHN0cm9uZz5ndWVzdDwvc3Ryb25nPiIvPgorICAgICZsdDsvYWN0aW9uPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIEluIHRoZSBMb2dvbiBhY3Rpb24gZWxlbWVudCwgdGhlIGZpcnN0IHJlc3VsdCBlbGVtZW50IGlzIG5hbWVkICJpbnB1dCIuCisgICAgSWYgdmFsaWRhdGlvbiBvciBhdXRoZW50aWZpY2F0aW9uIGZhaWwsCisgICAgdGhlIEFjdGlvbiBjbGFzcyB3aWxsIHJldHVybiAiaW5wdXQiIGFuZCB0aGUgZnJhbWV3b3JrIHdpbGwgdHJhbnNmZXIgY29udHJvbCB0byB0aGUKKyAgICAiTG9nb24uanNwIiBwYWdlLgorPC9wPgorCis8cD4KKyAgICBUaGUgc2Vjb25kIHJlc3VsdCBlbGVtZW50IGlzIG5hbWVkIDxzdHJvbmc+Y2FuY2VsPC9zdHJvbmc+LgorICAgIElmIHNvbWVvbmUgcHJlc3NlcyB0aGUgY2FuY2VsIGJ1dHRvbiBvbiB0aGUgTG9nb24gcGFnZSwKKyAgICB0aGUgQWN0aW9uIGNsYXNzIHdpbGwgcmV0dXJuICJjYW5jZWwiLCB0aGlzIHJlc3VsdCB3aWxsIGJlIHNlbGVjdGVkLAorICAgIGFuZCB0aGUgZnJhbWV3b3JrIHdpbGwgaXNzdWUgYSByZWRpcmVjdCB0byB0aGUgV2VsY29tZSBhY3Rpb24uCis8L3A+CisKKzxwPgorICAgIFRoZSB0aGlyZCByZXN1bHQgaGFzIG5vIG5hbWUsCisgICAgc28gaXQgd2lsbCBiZSBjYWxsZWQgaWYgdGhlIGRlZmF1bHQgPHN0cm9uZz5zdWNjZXNzPC9zdHJvbmc+IHRva2VuIGlzIHJldHVybmVkLgorICAgIFNvLCBpZiB0aGUgTG9nb24gc3VjY2VlZHMsCisgICAgY29udHJvbCB3aWxsIHRyYW5zZmVyIHRvIHRoZSBNYWluTWVudSBhY3Rpb24uCis8L3A+CisKKzxwPgorICAgIFRoZSBNYWlsUmVhZGVyIERBTyBleHBvc2VzIGEgIkV4cGlyZWRQYXNzd29yZEV4Y2VwdGlvbiIuCisgICAgSWYgdGhlIERBTyB0aHJvd3MgdGhpcyBleGNlcHRpb24gd2hlbiB0aGUgVXNlciBsb2dzIGluLAorICAgIHRoZSBmcmFtZXdvcmsgd2lsbCBwcm9jZXNzIHRoZSBleGNlcHRpb24tbWFwcGluZworICAgIGFuZCB0cmFuc2ZlciBjb250cm9sIHRvIHRoZSAiQ2hhbmdlUGFzc3dvcmQiIGFjdGlvbi4KKzwvcD4KKworPHA+CisgICAgSnVzdCBpbiBjYXNlIGFueSBvdGhlciBFeGNlcHRpb25zIGFyZSB0aHJvd24sCisgICAgdGhlIE1haWxSZWFkZXIgYXBwbGljYXRpb24gYWxzbyBkZWZpbmVzIGEgZ2xvYmFsIGhhbmRsZXIuCis8L3A+CisKKzxoci8+Cis8aDU+c3RydXRzLnhtbCBleGNlcHRpb24tbWFwcGluZzwvaDU+Cis8cHJlPjxjb2RlPiZsdDtnbG9iYWwtZXhjZXB0aW9uLW1hcHBpbmdzPgorICAgICZsdDtleGNlcHRpb24tbWFwcGluZworICAgIHJlc3VsdD0iZXJyb3IiCisgICAgZXhjZXB0aW9uPSJqYXZhLmxhbmcuRXhjZXB0aW9uIi8+CisgICAgJmx0Oy9nbG9iYWwtZXhjZXB0aW9uLW1hcHBpbmdzPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIElmIGFuIHVuZXhwZWN0ZWQgRXhjZXB0aW9uIGlzIHRocm93biwKKyAgICB0aGUgZXhjZXB0aW9uLW1hcHBpbmcgd2lsbCB0cmFuc2ZlciBjb250cm9sIHRvIHRoZSBhY3Rpb24ncyAiZXJyb3IiIHJlc3VsdCwKKyAgICBvciB0byBhIGdsb2JhbCAiZXJyb3IiIHJlc3VsdC4KKyAgICBUaGUgTWFpbFJlYWRlciBkZWZpbmVzIGEgZ2xvYmFsICJlcnJvciIgcmVzdWx0CisgICAgd2hpY2ggdHJhbnNmZXJzIGNvbnRyb2wgdG8gYW4gIkVycm9yLmpzcCIgcGFnZQorICAgIHRoYXQgY2FuIGRpc3BsYXkgdGhlIGVycm9yIG1lc3NhZ2UuCis8L3A+CisKKzxoci8+Cis8aDU+RXJyb3IuanNwPC9oNT4KKzxwcmU+PGNvZGU+Jmx0OyVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKyAgICAmbHQ7JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncyIgJT4KKyAgICAmbHQ7IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKyAgICAmbHQ7aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CisgICAgJmx0O2hlYWQ+CisgICAgJmx0O3RpdGxlPlVuZXhwZWN0ZWQgRXJyb3ImbHQ7L3RpdGxlPgorICAgICZsdDsvaGVhZD4KKyAgICAmbHQ7Ym9keT4KKyAgICAmbHQ7aDI+QW4gdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJlZCZsdDsvaDI+CisgICAgJmx0O3A+CisgICAgUGxlYXNlIHJlcG9ydCB0aGlzIGVycm9yIHRvIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IKKyAgICBvciBhcHByb3ByaWF0ZSB0ZWNobmljYWwgc3VwcG9ydCBwZXJzb25uZWwuCisgICAgVGhhbmsgeW91IGZvciB5b3VyIGNvb3BlcmF0aW9uLgorICAgICZsdDsvcD4KKyAgICAmbHQ7aHIgLz4KKyAgICAmbHQ7aDM+RXJyb3IgTWVzc2FnZSZsdDsvaDM+CisgICAgPHN0cm9uZz4mbHQ7czphY3Rpb25lcnJvciAvPjwvc3Ryb25nPgorICAgICZsdDtwPgorICAgIDxzdHJvbmc+Jmx0O3M6cHJvcGVydHkgdmFsdWU9IiV7ZXhjZXB0aW9uLm1lc3NhZ2V9Ii8+PC9zdHJvbmc+CisgICAgJmx0Oy9wPgorICAgICZsdDtociAvPgorICAgICZsdDtoMz5UZWNobmljYWwgRGV0YWlscyZsdDsvaDM+CisgICAgJmx0O3A+CisgICAgPHN0cm9uZz4mbHQ7czpwcm9wZXJ0eSB2YWx1ZT0iJXtleGNlcHRpb25TdGFja30iLz48L3N0cm9uZz4KKyAgICAmbHQ7L3A+CisgICAgJmx0O2pzcDppbmNsdWRlIHBhZ2U9IkZvb3Rlci5qc3AiLz4KKyAgICAmbHQ7L2JvZHk+CisgICAgJmx0Oy9odG1sPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSBFcnJvciBwYWdlIHVzZXMgPHN0cm9uZz5wcm9wZXJ0eTwvc3Ryb25nPiB0YWdzIHRvIGV4cG9zZQorICAgIHRoZSBFeGNlcHRpb24gbWVzc2FnZSBhbmQgdGhlIEV4Y2VwdGlvbiBzdGFjay4KKzwvcD4KKworPHA+CisgICAgRmluYWxseSwgdGhlIExvZ29uIGFjdGlvbiBzcGVjaWZpZXMgYW4gPHN0cm9uZz5JbnRlcmNlcHRvclN0YWNrPC9zdHJvbmc+CisgICAgbmFtZWQgPHN0cm9uZz5kZWZhdWx0U3RhY2suPC9zdHJvbmc+CisgICAgSWYgeW91J3ZlIHdvcmtlZCB3aXRoIFN0cnV0cyAyIG9yIFdlYldvcmsgMiBiZWZvcmUsIHRoYXQgbWlnaHQgc2VlbSBzdHJhbmdlLAorICAgIHNpbmNlICJkZWZhdWx0U3RhY2siIGlzIHRoZSBmYWN0b3J5IGRlZmF1bHQuCis8L3A+CisKKzxwPgorICAgIEluIHRoZSBNYWlsUmVhZGVyIGFwcGxpY2F0aW9uLCBtb3N0IG9mIHRoZSBhY3Rpb25zIGFyZSBvbmx5IGF2YWlsYWJsZQorICAgIHRvIGF1dGhlbnRpY2F0ZWQgdXNlcnMuCisgICAgVGhlIGV4Y2VwdGlvbnMgYXJlIHRoZSBXZWxjb21lLCBMb2dvbiwgYW5kIFJlZ2lzdGVyIGFjdGlvbnMKKyAgICB3aGljaCBhcmUgYXZhaWxhYmxlIHRvIGV2ZXJ5b25lLgorICAgIFRvIGF1dGhlbnRpY2F0ZSBjbGllbnRzLAorICAgIHRoZSBNYWlsUmVhZGVyIHVzZXMgYSBjdXN0b20gSW50ZXJjZXB0b3IgYW5kIGEgY3VzdG9tIEludGVyY2VwdG9yIHN0YWNrLgorPC9wPgorCis8aHIvPgorPGg1Pm1haWxyZWFkZXIyLkF1dGhlbnRpY2F0aW9uSW50ZXJjZXB0b3I8L2g1PgorPHByZT48Y29kZT5wYWNrYWdlIG1haWxyZWFkZXIyOworICAgIGltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5pbnRlcmNlcHRvci5JbnRlcmNlcHRvcjsKKyAgICBpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uSW52b2NhdGlvbjsKKyAgICBpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uOworICAgIGltcG9ydCBqYXZhLnV0aWwuTWFwOworICAgIGltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hcHBzLm1haWxyZWFkZXIuZGFvLlVzZXI7CisKKyAgICBwdWJsaWMgY2xhc3MgPHN0cm9uZz5BdXRoZW50aWNhdGlvbkludGVyY2VwdG9yPC9zdHJvbmc+IGltcGxlbWVudHMgSW50ZXJjZXB0b3IgeworICAgIHB1YmxpYyB2b2lkIGRlc3Ryb3kgKCkge30KKyAgICBwdWJsaWMgdm9pZCBpbml0KCkge30KKyAgICBwdWJsaWMgU3RyaW5nIDxzdHJvbmc+aW50ZXJjZXB0PC9zdHJvbmc+KEFjdGlvbkludm9jYXRpb24gYWN0aW9uSW52b2NhdGlvbikgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgTWFwIHNlc3Npb24gPSBhY3Rpb25JbnZvY2F0aW9uLmdldEludm9jYXRpb25Db250ZXh0KCkuZ2V0U2Vzc2lvbigpOworICAgIFVzZXIgdXNlciA9IChVc2VyKSBzZXNzaW9uLmdldChDb25zdGFudHMuVVNFUl9LRVkpOworICAgIGJvb2xlYW4gaXNBdXRoZW50aWNhdGVkID0gKG51bGwhPXVzZXIpICYmIChudWxsIT11c2VyLmdldERhdGFiYXNlKCkpOworICAgIGlmICg8c3Ryb25nPmlzQXV0aGVudGljYXRlZDwvc3Ryb25nPikgeworICAgIHJldHVybiBhY3Rpb25JbnZvY2F0aW9uLmludm9rZSgpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICByZXR1cm4gQWN0aW9uLkxPR0lOOworICAgIH0KKyAgICB9CisgICAgfTwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPkF1dGhlbnRpY2F0aW9uSW50ZXJjZXB0b3I8L3N0cm9uZz4gbG9va3MgdG8gc2VlIGlmIGEgVXNlciBvYmplY3QKKyAgICBoYXMgYmVlbiBzdG9yZWQgaW4gdGhlIGNsaWVudCdzIHNlc3Npb24gc3RhdGUuCisgICAgSWYgc28sIGl0IHJldHVybnMgbm9ybWFsbHksIGFuZCB0aGUgbmV4dCBJbnRlcmNlcHRvciBpbiB0aGUgc2V0IHdvdWxkIGJlIGludm9rZWQuCisgICAgSWYgdGhlIFVzZXIgb2JqZWN0IGlzIG1pc3NpbmcsIHRoZSBJbnRlcmNlcHRvcnMgcmV0dXJucyAibG9naW4iLgorICAgIFRoZSBmcmFtZXdvcmsgd291bGQgbWF0Y2ggImxvZ2luIiB0byB0aGUgZ2xvYmFsIHJlc3VsdCwKKyAgICBhbmQgdHJhbnNmZXIgY29udHJvbCB0byB0aGUgTG9nb24gYWN0aW9uLgorPC9wPgorCis8cD4KKyAgICBUaGUgTWFpbFJlYWRlciBkZWZpbmVzIGZvdXIgY3VzdG9tIEludGVyY2VwdG9yIHN0YWNrczogInVzZXIiLCAidXNlci1zdWJtaXQiLAorICAgICJndWVzdCIsIGFuZCAiZ3Vlc3Qtc3VibWl0Ii4KKzwvcD4KKworPGhyLz4KKzxoNT5zdHJ1dHMueG1sIGludGVyY2VwdG9yczwvaDU+Cis8cHJlPjxjb2RlPiZsdDtpbnRlcmNlcHRvcnM+CisgICAgJmx0O2ludGVyY2VwdG9yIG5hbWU9IjxzdHJvbmc+YXV0aGVudGljYXRpb248L3N0cm9uZz4iCisgICAgY2xhc3M9Im1haWxyZWFkZXIyLkF1dGhlbnRpY2F0aW9uSW50ZXJjZXB0b3IiLz4KKyAgICAmbHQ7aW50ZXJjZXB0b3Itc3RhY2sgbmFtZT0iPHN0cm9uZz51c2VyPC9zdHJvbmc+IiA+CisgICAgJmx0O2ludGVyY2VwdG9yLXJlZiBuYW1lPSJhdXRoZW50aWNhdGlvbiIgLz4KKyAgICAmbHQ7aW50ZXJjZXB0b3ItcmVmIG5hbWU9ImRlZmF1bHRTdGFjayIvPgorICAgICZsdDsvaW50ZXJjZXB0b3Itc3RhY2s+CisgICAgJmx0O2ludGVyY2VwdG9yLXN0YWNrIG5hbWU9IjxzdHJvbmc+dXNlci1zdWJtaXQ8L3N0cm9uZz4iID4KKyAgICAmbHQ7aW50ZXJjZXB0b3ItcmVmIG5hbWU9InRva2VuLXNlc3Npb24iIC8+CisgICAgJmx0O2ludGVyY2VwdG9yLXJlZiBuYW1lPSJ1c2VyIi8+CisgICAgJmx0Oy9pbnRlcmNlcHRvci1zdGFjaz4KKyAgICAmbHQ7aW50ZXJjZXB0b3Itc3RhY2sgbmFtZT0iPHN0cm9uZz5ndWVzdDwvc3Ryb25nPiIgPgorICAgICZsdDtpbnRlcmNlcHRvci1yZWYgbmFtZT0iZGVmYXVsdFN0YWNrIi8+CisgICAgJmx0Oy9pbnRlcmNlcHRvci1zdGFjaz4KKyAgICAmbHQ7aW50ZXJjZXB0b3Itc3RhY2sgbmFtZT0iPHN0cm9uZz5ndWVzdC1zdWJtaXQ8L3N0cm9uZz4iID4KKyAgICAmbHQ7aW50ZXJjZXB0b3ItcmVmIG5hbWU9InRva2VuLXNlc3Npb24iIC8+CisgICAgJmx0O2ludGVyY2VwdG9yLXJlZiBuYW1lPSJndWVzdCIvPgorICAgICZsdDsvaW50ZXJjZXB0b3Itc3RhY2s+CisgICAgJmx0Oy9pbnRlcmNlcHRvcnM+CisgICAgJmx0OzxzdHJvbmc+ZGVmYXVsdC1pbnRlcmNlcHRvci1yZWY8L3N0cm9uZz4gbmFtZT0idXNlciIvPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPnVzZXI8L3N0cm9uZz4gc3RhY2tzIHJlcXVpcmUgdGhhdCB0aGUgY2xpZW50IGJlIGF1dGhlbnRpY2F0ZWQuCisgICAgSW4gb3RoZXIgd29yZHMsIHRoYXQgYSBVc2VyIG9iamVjdCBpcyBwcmVzZW50IGluIHRoZSBzZXNzaW9uLgorICAgIFRoZSBhY3Rpb25zIHVzaW5nIGEgPHN0cm9uZz5ndWVzdDwvc3Ryb25nPiBzdGFjayBjYW4gYmUgYWNjZXNzZWQgYnkgYW55IGNsaWVudC4KKyAgICBUaGUgPHN0cm9uZz4tc3VibWl0PC9zdHJvbmc+IHZlcnNpb25zIG9mIGVhY2ggY2FuIGJlIHVzZWQgd2l0aCBhY3Rpb25zCisgICAgd2l0aCBmb3JtcywgdG8gZ3VhcmQgYWdhaW5zdCBkb3VibGUgc3VibWl0cy4KKzwvcD4KKworPGg1PkRvdWJsZSBTdWJtaXRzPC9oNT4KKworPHA+CisgICAgQSBjb21tb24gcHJvYmxlbSB3aXRoIGRlc2lnbmluZyB3ZWIgYXBwbGljYXRpb25zIGlzIHRoYXQgdXNlcnMgYXJlIGltcGF0aWVudAorICAgIGFuZCByZXNwb25zZSB0aW1lcyBjYW4gdmFyeS4KKyAgICBTb21ldGltZXMsIHBlb3BsZSB3aWxsIHByZXNzIGEgc3VibWl0IGJ1dHRvbiBhIHNlY29uZCB0aW1lLgorICAgIFdoZW4gdGhpcyBoYXBwZW5zLCB0aGUgYnJvd3NlciBzdWJtaXRzIHRoZSByZXF1ZXN0IGFnYWluLAorICAgIHNvIHRoYXQgd2Ugbm93IGhhdmUgdHdvIHJlcXVlc3RzIGZvciB0aGUgc2FtZSB0aGluZy4KKyAgICBJbiB0aGUgY2FzZSBvZiByZWdpc3RlcmluZyBhIHVzZXIsIGlmIHNvbWVvbmUgZG9lcyBwcmVzcyB0aGUgc3VibWl0IGJ1dHRvbgorICAgIGFnYWluLCBhbmQgdGhlaXIgdGltaW5nIGlzIGJhZCwKKyAgICBpdCBjb3VsZCByZXN1bHQgaW4gdGhlIHN5c3RlbSByZXBvcnRpbmcgdGhhdCB0aGUgdXNlcm5hbWUgaGFzIGFscmVhZHkgYmVlbgorICAgIHVzZWQuCisgICAgKFRoZSBmaXJzdCB0aW1lIHRoZSBidXR0b24gd2FzIHByZXNzZWQuKQorICAgIEluIHByYWN0aWNlLCB0aGlzIHdvdWxkIHByb2JhYmx5IG5ldmVyIGhhcHBlbiwgYnV0IGZvciBhIGxvbmdlciBydW5uaW5nCisgICAgcHJvY2VzcywgbGlrZSBjaGVja2luZyBvdXQgYSBzaG9wcGluZyBjYXJ0LAorICAgIGl0J3MgZWFzaWVyIGZvciBhIGRvdWJsZSBzdWJtaXQgdG8gb2NjdXIuCis8L3A+CisKKzxwPgorICAgIFRvIGZvcmVzdGFsbCBkb3VibGUgc3VibWl0cywgYW5kICJiYWNrIGJ1dHRvbiIgcmVzdWJtaXRzLAorICAgIHRoZSBmcmFtZXdvcmsgY2FuIGdlbmVyYXRlIGEgdG9rZW4gdGhhdCBpcyBlbWJlZGRlZCBpbiB0aGUgZm9ybQorICAgIGFuZCBhbHNvIGtlcHQgaW4gdGhlIHNlc3Npb24uCisgICAgSWYgdGhlIHZhbHVlIG9mIHRoZSB0b2tlbnMgZG8gbm90IGNvbXBhcmUsCisgICAgdGhlbiB3ZSBrbm93IHRoYXQgdGhlcmUgaGFzIGJlZW4gYSBwcm9ibGVtLAorICAgIGFuZCB0aGF0IGEgZm9ybSBoYXMgYmVlbiBzdWJtaXR0ZWQgdHdpY2Ugb3Igb3V0IG9mIHNlcXVlbmNlLgorPC9wPgorCis8cD4KKyAgICBUaGUgVG9rZW4gU2Vzc2lvbiBJbnRlcmNlcHRvciB3aWxsIGFsc28gYXR0ZW1wdCB0byBwcm92aWRlIGludGVsbGlnZW50CisgICAgZmFpbC1vdmVyIGluIHRoZSBldmVudCBvZiBtdWx0aXBsZSByZXF1ZXN0cyB1c2luZyB0aGUgc2FtZSBzZXNzaW9uLgorICAgIFRoYXQgaXMsIGl0IHdpbGwgYmxvY2sgc3Vic2VxdWVudCByZXF1ZXN0cyB1bnRpbCB0aGUgZmlyc3QgcmVxdWVzdCBpcyBjb21wbGV0ZSwKKyAgICBhbmQgdGhlbiBpbnN0ZWFkIG9mIHJldHVybmluZyB0aGUgImludmFsaWQudG9rZW4iIGNvZGUsCisgICAgaXQgd2lsbCBhdHRlbXB0IHRvIGRpc3BsYXkgdGhlIHNhbWUgcmVzcG9uc2UgdGhhdCB0aGUKKyAgICBvcmlnaW5hbCwgdmFsaWQgYWN0aW9uIGludm9jYXRpb24gd291bGQgaGF2ZSBkaXNwbGF5ZWQKKzwvcD4KKworPHA+CisgICAgQmVjYXVzZSB0aGUgZGVmYXVsdCBpbnRlcmNlcHRvciBzdGFjayB3aWxsIG5vdyBhdXRoZW50aWNhdGUgdGhlIGNsaWVudCwKKyAgICB3ZSBuZWVkIHRvIHNwZWNpZnkgdGhlIHN0YW5kYXJkICJkZWZhdWx0U3RhY2siIGZvciB0aGUgdGhyZWUKKyAgICAiZ3Vlc3QgYWN0aW9ucyIsIFdlbGNvbWUsIExvZ29uLCBhbmQgUmVnaXN0ZXIuCisgICAgUmVxdWlyaW5nIGF1dGhlbnRpZmljYXRpb24gYnkgZGVmYXVsdCBpcyB0aGUgYmV0dGVyIHByYWN0aWNlLCBzaW5jZSBpdAorICAgIG1lYW5zIHRoYXQgd2Ugd29uJ3QgZm9yZ2V0IHRvIGVuYWJsZSBpdCB3aGVuIGNyZWF0aW5nIG5ldyBhY3Rpb25zLgorICAgIE1lYW53aGlsZSwgdGhvc2UgcGVza3kgdXNlcnMgd2lsbCBlbnN1cmUgdGhhdCB3ZSBkb24ndCBmb3JnZXQgdG8gZGlzYWJsZQorICAgIGF1dGhlbnRpZmljYXRpb24gZm9yICJndWVzdCIgc2VydmljZXMuCis8L3A+CisKKzxoMz48YSBuYW1lPSJNYWluTWVudSIgaWQ9Ik1haW5NZW51Ij5NYWluTWVudTwvYT48L2gzPgorCis8cD4KKyAgICBPbiBhIHN1Y2Nlc3NmdWwgbG9nb24sIHRoZSBNYWluIE1lbnUgcGFnZSBkaXNwbGF5cy4KKyAgICBJZiB5b3UgbG9nZ2VkIGluIHVzaW5nIHRoZSBkZW1vIGFjY291bnQsCisgICAgdGhlIHBhZ2UgdGl0bGUgc2hvdWxkIGJlICJNYWluIE1lbnUgT3B0aW9ucyBmb3IgSm9obiBRLiBVc2VyIi4KKyAgICBCZWxvdyB0aGlzIGxlZ2VuZCBzaG91bGQgYmUgdHdvIGxpbmtzOgorPC9wPgorCis8dWw+CisgICAgPGxpPgorICAgICAgICBFZGl0IHlvdXIgdXNlciByZWdpc3RyYXRpb24gcHJvZmlsZQorICAgIDwvbGk+CisgICAgPGxpPgorICAgICAgICBMb2cgb2ZmIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbgorICAgIDwvbGk+Cis8L3VsPgorCis8cD4KKyAgICBMZXQncyByZXZpZXcgdGhlIHNvdXJjZSBmb3IgdGhlICJNYWluTWVudSIgYWN0aW9uIG1hcHBpbmcsCisgICAgYW5kIHRoZSAiTWFpbk1lbnUuanNwIi4KKzwvcD4KKworPGhyLz4KKzxoNT5BY3Rpb24gbWFwcGluZyBlbGVtZW50IGZvciBNYWluTWVudTwvaDU+Cis8cHJlPjxjb2RlPiZsdDthY3Rpb24gbmFtZT0iTWFpbk1lbnUiIGNsYXNzPSJtYWlscmVhZGVyMi5NYWlscmVhZGVyU3VwcG9ydCI+CisgICAgJmx0O3Jlc3VsdD4vcGFnZXMvTWFpbk1lbnUuanNwJmx0Oy9yZXN1bHQ+CisgICAgJmx0Oy9hY3Rpb24+PC9jb2RlPjwvcHJlPgorCis8aDU+TWFpbk1lbnUuanNwPC9oNT4KKzxwcmU+PGNvZGU+Jmx0OyVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKyAgICAmbHQ7JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncyIgJT4KKyAgICAmbHQ7IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKyAgICAmbHQ7aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CisgICAgJmx0O2hlYWQ+CisgICAgJmx0O3RpdGxlPiZsdDtzOnRleHQgbmFtZT0ibWFpbk1lbnUudGl0bGUiLz4mbHQ7L3RpdGxlPgorICAgICZsdDtsaW5rIGhyZWY9IiZsdDtzOnVybCB2YWx1ZT0iL2Nzcy9tYWlscmVhZGVyLmNzcyIvPiIgcmVsPSJzdHlsZXNoZWV0IgorICAgIHR5cGU9InRleHQvY3NzIi8+CisgICAgJmx0Oy9oZWFkPgorCisgICAgJmx0O2JvZHk+CisgICAgJmx0O2gzPiZsdDtzOnRleHQgbmFtZT0ibWFpbk1lbnUuaGVhZGluZyIvPiA8c3Ryb25nPiZsdDtzOnByb3BlcnR5CisgICAgdmFsdWU9InVzZXIuZnVsbE5hbWUiLz48L3N0cm9uZz4mbHQ7L2gzPgorICAgICZsdDt1bD4KKyAgICAmbHQ7bGk+Jmx0O2EgaHJlZj0iJmx0O3M6dXJsIDxzdHJvbmc+YWN0aW9uPSJSZWdpc3RyYXRpb24haW5wdXQiPC9zdHJvbmc+IC8+Ij4KKyAgICAmbHQ7czp0ZXh0IG5hbWU9Im1haW5NZW51LnJlZ2lzdHJhdGlvbiIvPgorICAgICZsdDsvYT4KKyAgICAmbHQ7L2xpPgorICAgICZsdDtsaT4mbHQ7YSBocmVmPSImbHQ7czp1cmwgPHN0cm9uZz5hY3Rpb249IkxvZ29mZiI8L3N0cm9uZz4gLz4iPgorICAgICZsdDtzOnRleHQgbmFtZT0ibWFpbk1lbnUubG9nb2ZmIi8+CisgICAgJmx0Oy9hPgorICAgICZsdDsvdWw+CisgICAgJmx0Oy9ib2R5PgorICAgICZsdDsvaHRtbD48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBUaGUgc291cmNlIGZvciAiTWFpbk1lbnUuanNwIiBhbHNvIGNvbnRhaW5zIGEgbmV3IHRhZywgPHN0cm9uZz4KKyAgICBwcm9wZXJ0eTwvc3Ryb25nPiwgd2hpY2ggd2UgdXNlIHRvIGN1c3RvbWl6ZSB0aGUgcGFnZSB3aXRoIHRoZQorICAgICJmdWxsTmFtZSIgcHJvcGVydHkgb2YgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlci4KKzwvcD4KKworPHA+CisgICAgRGlzcGxheWluZyB0aGUgdXNlcidzIGZ1bGwgbmFtZSBpcyB0aGUgcmVhc29uIHRoZSBNYWluTWVudSBhY3Rpb24KKyAgICByZWZlcmVuY2VzIHRoZSBNYWlscmVhZGVyU3VwcG9ydCBjbGFzcy4KKyAgICBUaGUgTWFpbHJlYWRlclN1cHBvcnQgY2xhc3MgaGFzIGEgVXNlciBwcm9wZXJ0eSB0aGF0IHRoZSB0ZXh0IHRhZworICAgIGNhbiBhY2Nlc3MuCisgICAgSWYgd2UgZGlkIG5vdCB1dGlsaXplIE1haWxyZWFkZXJTdXBwb3J0LAorICAgIHRoZSBwcm9wZXJ0eSB0YWcgd291bGQgbm90IGJlIGFibGUgdG8gZmluZCB0aGUgVXNlciBvYmplY3QgdG8gcHJpbnQKKyAgICB0aGUgZnVsbCBuYW1lLgorPC9wPgorCis8cD4KKyAgICBUaGUgY3VzdG9taXplZCBNYWluTWVudSBwYWdlIG9mZmVycyB0d28gc3RhbmRhcmQgbGlua3MuCisgICAgT25lIGlzIHRvICJFZGl0IHlvdXIgdXNlciByZWdpc3RyYXRpb24gcHJvZmlsZSIuCisgICAgVGhlIG90aGVyIGlzIHRvICJMb2dvZmYgdGhlIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbiIuCis8L3A+CisKKzxoMz48YSBuYW1lPSJSZWdpc3RyYXRpb24uanNwIiBpZD0iUmVnaXN0cmF0aW9uLmpzcCI+UmVnaXN0cmF0aW9uIHBhZ2U8L2E+Cis8L2gzPgorCis8cD4KKyAgICBJZiB5b3UgZm9sbG93IHRoZSAiRWRpdCB5b3VyIHVzZXIgcmVnaXN0cmF0aW9uIHByb2ZpbGUiIGxpbmsgZnJvbSB0aGUgTWFpbgorICAgIE1lbnUgcGFnZSwKKyAgICB3ZSB3aWxsIGZpbmFsbHkgcmVhY2ggdGhlIGhlYXJ0IG9mIHRoZSBNYWlsUmVhZGVyIGFwcGxpY2F0aW9uOiB0aGUKKyAgICBSZWdpc3RyYXRpb24sIG9yICJQcm9maWxlIiwgcGFnZS4KKyAgICBUaGlzIHBhZ2UgZGlzcGxheXMgZXZlcnl0aGluZyBNYWlsUmVhZGVyIGtub3dzIGFib3V0IHlvdQorICAgIChvciBhdCBsZWFzdCB5b3VyIGxvZ2luKSwKKyAgICB3aGlsZSB1dGlsaXppbmcgc2V2ZXJhbCBpbnRlcmVzdGluZyB0ZWNobmlxdWVzLgorPC9wPgorCis8cD4KKyAgICBUbyBkbyBkb3VibGUgZHV0eSBhcyB0aGUgIkNyZWF0ZSIgUmVnaXN0cmF0aW9uIHBhZ2UgYW5kIHRoZSAiRWRpdCIKKyAgICBSZWdpc3RyYXRpb24gcGFnZSwKKyAgICB0aGUgIlJlZ2lzdHJhdGlvbi5qc3AiIG1ha2VzIGV4dGVuc2l2ZSB1c2Ugb2YgdGhlIHRlc3QgdGFncywKKyAgICB0byBtYWtlIGl0IGFwcGVhcnMgYXMgdGhvdWdoIHRoZXJlIGFyZSB0d28gZGlzdGluY3QgcGFnZXMuCis8L3A+CisKKzxoci8+Cis8aDU+UmVnaXN0cmF0aW9uLmpzcCAtIGhlYWQgZWxlbWVudDwvaDU+Cis8cHJlPjxjb2RlPiZsdDtoZWFkPgorICAgICZsdDtzOmlmIHRlc3Q9IjxzdHJvbmc+dGFzaz09J0NyZWF0ZSc8L3N0cm9uZz4iPgorICAgICZsdDt0aXRsZT4mbHQ7czp0ZXh0IG5hbWU9InJlZ2lzdHJhdGlvbi50aXRsZS5jcmVhdGUiLz4mbHQ7L3RpdGxlPgorICAgICZsdDsvczppZj4KKyAgICAmbHQ7czppZiB0ZXN0PSI8c3Ryb25nPnRhc2s9PSdFZGl0Jzwvc3Ryb25nPiI+CisgICAgJmx0O3RpdGxlPiZsdDtzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQiLz4mbHQ7L3RpdGxlPgorICAgICZsdDsvczppZj4KKyAgICAmbHQ7bGluayBocmVmPSImbHQ7czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgICZsdDsvaGVhZD48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBGb3IgZXhhbXBsZSwgaWYgY2xpZW50IGlzIGVkaXRpbmcgdGhlIGZvcm0gKHRhc2sgPT0gJ0VkaXQnKSwKKyAgICB0aGUgcGFnZSBpbnNlcnRzIHRoZSB1c2VybmFtZSBmcm9tIHRoZSBVc2VyIG9iamVjdC4KKyAgICBGb3IgYSBuZXcgUmVnaXN0cmF0aW9uICh0YXNrID09ICdDcmVhdGUnKSwKKyAgICB0aGUgcGFnZSBjcmVhdGVzIGFuIGVtcHR5IGRhdGEtZW50cnkgZmllbGQuCis8L3A+CisKKzxoci8+Cis8aDU+Tm90ZTo8L2g1PgorPGJsb2NrcXVvdGU+CisgICAgPHA+PGZvbnQgY2xhc3M9ImhpbnQiPgorICAgICAgICA8c3Ryb25nPlByZXNlbnRpb24gTG9naWM8L3N0cm9uZz4gLQorICAgICAgICBUaGUgInRlc3QiIHRhZyBpcyBhIGNvbnZlbmllbnQgd2F5IHRvIGV4cHJlc3MgcHJlc2VudGF0aW9uCisgICAgICAgIGxvZ2ljIHdpdGhpbiB5b3VyIHBhZ2VzLgorICAgICAgICBDdXN0b21pemVkIHBhZ2VzIGhlbHAgdG8gcHJldmVudCB1c2VyIGVycm9yLAorICAgICAgICBhbmQgZHluYW1pYyBjdXN0b21pemF0aW9uIHJlZHVjZXMgdGhlIG51bWJlciBvZiBzZXJ2ZXIgcGFnZXMgeW91cgorICAgICAgICBhcHBsaWNhdGlvbiBuZWVkcyB0byBtYWludGFpbiwgYW1vbmcgb3RoZXIgYmVuZWZpdHMuCisgICAgPC9mb250PjwvcD4KKzwvYmxvY2txdW90ZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSBwYWdlIGFsc28gdXNlcyBsb2dpYyB0YWdzIHRvIGRpc3BsYXkgYSBsaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICBmb3IgdGhlIGdpdmVuIHVzZXIuCisgICAgSWYgdGhlIFJlZ2lzdHJhdGlvbkZvcm0gaGFzIHRhc2sgc2V0IHRvICJFZGl0IiwKKyAgICB0aGUgbG93ZXIgcGFydCBvZiB0aGUgcGFnZSB0aGF0IGxpc3RzIHRoZSBzdWJzY3JpcHRpb25zIGlzIGV4cG9zZWQuCis8L3A+CisKKzxoci8+Cis8aDU+PC9oNT4KKzxwcmU+PGNvZGU+Jmx0O3M6aWYgdGVzdD08c3Ryb25nPiJ0YXNrID09ICdFZGl0JyI8L3N0cm9uZz4+CisgICAgJmx0O2RpdiBhbGlnbj0iY2VudGVyIj4KKyAgICAmbHQ7aDM+Jmx0O3M6dGV4dCBuYW1lPSJoZWFkaW5nLnN1YnNjcmlwdGlvbnMiLz4mbHQ7L2gzPgorICAgICZsdDsvZGl2PgorICAgICZsdDshLS0gLi4uIC0tPgorICAgICZsdDsvczppZj4KKyAgICAmbHQ7anNwOmluY2x1ZGUgcGFnZT0iRm9vdGVyLmpzcCIvPgorICAgICZsdDsvYm9keT4mbHQ7L2h0bWw+PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgT3RoZXJ3aXNlLCB0aGUgcGFnZSBjb250YWlucyBqdXN0IHRoZSB0b3AgcG9ydGlvbiAtLQorICAgIGEgZGF0YS1lbnRyeSBmb3JtIGZvciBtYW5hZ2luZyB0aGUgdXNlcidzIHJlZ2lzdHJhdGlvbi4KKzwvcD4KKworPGg0PjxhIG5hbWU9Iml0ZXJhdG9yIiBpZD0iaXRlcmF0b3IiPml0ZXJhdG9yPC9hPjwvaDQ+CisKKzxwPgorICAgIEJlc2lkZXMgImlmIiB0aGVyZSBhcmUgc2V2ZXJhbCBvdGhlciBjb250cm9sIHRhZ3MgdGhhdCB5b3UgY2FuIHVzZQorICAgIHRvIHNvcnQsIGZpbHRlciwgb3IgaXRlcmF0ZSBvdmVyIGRhdGEuCisgICAgVGhlIFJlZ2lzdHJhdGlvbiBwYWdlIGluY2x1ZGVzIGEgZ29vZCBleGFtcGxlIG9mIHVzaW5nIHRoZSA8c3Ryb25nPml0ZXJhdG9yPC9zdHJvbmc+CisgICAgdGFnIHRvIGRpc3BsYXkgdGhlIFVzZXIncyBTdWJzY3JpcHRpb25zLgorPC9wPgorCis8cD4KKyAgICBUaGUgc3Vic2NyaXB0aW9ucyBhcmUgc3RvcmVkIGluIGEgaGFzaHRhYmxlIG9iamVjdCwgd2hpY2ggaXMgaW4gdHVybgorICAgIHN0b3JlZCBpbiB0aGUgdXNlciBvYmplY3QuCisgICAgU28gdG8gZGlzcGxheSBlYWNoIHN1YnNjcmlwdGlvbiwgd2UgaGF2ZSB0byByZWFjaCBpbnRvIHRoZSB1c2VyIG9iamVjdCwKKyAgICBhbmQgbG9vcCB0aHJvdWdoIHRoZSBtZW1iZXJzIG9mIHRoZSBzdWJzY3JpcHRpb24gY29sbGVjdGlvbi4KKyAgICBVc2luZyB0aGUgaXRlcmF0b3IgdGFnLCB5b3UgY2FuIGNvZGUgaXQgdGhlIHdheSBpdCBzb3VuZHMuCis8L3A+CisKKzxoci8+Cis8aDU+VXNpbmcgaXRlcmF0b3IgdG8gbGlzdCB0aGUgU3Vic2NyaXB0aW9uczwvaDU+Cis8cHJlPjxjb2RlPiZsdDtzOml0ZXJhdG9yIHZhbHVlPSI8c3Ryb25nPnVzZXIuc3Vic2NyaXB0aW9uczwvc3Ryb25nPiI+CisgICAgJmx0O3RyPgorICAgICZsdDt0ZCBhbGlnbj0ibGVmdCI+CisgICAgJmx0O3M6cHJvcGVydHkgdmFsdWU9IjxzdHJvbmc+aG9zdDwvc3Ryb25nPiIvPgorICAgICZsdDsvdGQ+CisgICAgJmx0O3RkIGFsaWduPSJsZWZ0Ij4KKyAgICAmbHQ7czpwcm9wZXJ0eSB2YWx1ZT0iPHN0cm9uZz51c2VybmFtZTwvc3Ryb25nPiIvPgorICAgICZsdDsvdGQ+CisgICAgJmx0O3RkIGFsaWduPSJjZW50ZXIiPgorICAgICZsdDtzOnByb3BlcnR5IHZhbHVlPSI8c3Ryb25nPnR5cGU8L3N0cm9uZz4iLz4KKyAgICAmbHQ7L3RkPgorICAgICZsdDt0ZCBhbGlnbj0iY2VudGVyIj4KKyAgICAmbHQ7czpwcm9wZXJ0eSB2YWx1ZT0iPHN0cm9uZz5hdXRvQ29ubmVjdDwvc3Ryb25nPiIvPgorICAgICZsdDsvdGQ+CisgICAgJmx0O3RkIGFsaWduPSJjZW50ZXIiPgorICAgICZsdDthIGhyZWY9IiZsdDtzOnVybCBhY3Rpb249IjxzdHJvbmc+U3Vic2NyaXB0aW9uIWRlbGV0ZTwvc3Ryb25nPiI+Jmx0O3M6cGFyYW0gbmFtZT0iPHN0cm9uZz5ob3N0PC9zdHJvbmc+IgorICAgIHZhbHVlPSJob3N0Ii8+Jmx0Oy9zOnVybD4iPgorICAgICZsdDtzOnRleHQgbmFtZT0icmVnaXN0cmF0aW9uLmRlbGV0ZVN1YnNjcmlwdGlvbiIvPgorICAgICZsdDsvYT4mbmJzcDsKKyAgICAmbHQ7YSBocmVmPSImbHQ7czp1cmwgYWN0aW9uPSI8c3Ryb25nPlN1YnNjcmlwdGlvbiFlZGl0PC9zdHJvbmc+Ij4mbHQ7czpwYXJhbSBuYW1lPSI8c3Ryb25nPmhvc3Q8L3N0cm9uZz4iCisgICAgdmFsdWU9Imhvc3QiLz4mbHQ7L3M6dXJsPiI+CisgICAgJmx0O3M6dGV4dCBuYW1lPSJyZWdpc3RyYXRpb24uZWRpdFN1YnNjcmlwdGlvbiIvPgorICAgICZsdDsvYT4KKyAgICAmbHQ7L3RkPgorICAgICZsdDsvdHI+CisgICAgJmx0Oy9zOml0ZXJhdG9yPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFdoZW4gdGhlIGl0ZXJhdG9yIHJlbmRlcnMsIGl0IGdlbmVyYXRlcyBhIGxpc3Qgb2YgU3Vic2NyaXB0aW9ucyBmb3IgdGhlIGN1cnJlbnQgVXNlci4KKzwvcD4KKworPGhyLz4KKworPGRpdiBhbGlnbj0iY2VudGVyIj4KKyAgICA8aDM+Q3VycmVudCBTdWJzY3JpcHRpb25zPC9oMz4KKzwvZGl2PgorCis8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSI+CisgICAgPHRyPgorICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjMwJSI+CisgICAgICAgICAgICBIb3N0IE5hbWUKKyAgICAgICAgPC90aD4KKyAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIyNSUiPgorICAgICAgICAgICAgVXNlciBOYW1lCisgICAgICAgIDwvdGg+CisKKyAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxMCUiPgorICAgICAgICAgICAgU2VydmVyIFR5cGUKKyAgICAgICAgPC90aD4KKyAgICAgICAgPHRoIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxMCUiPgorICAgICAgICAgICAgQXV0bworICAgICAgICA8L3RoPgorICAgICAgICA8dGggYWxpZ249ImNlbnRlciIgd2lkdGg9IjE1JSI+CisgICAgICAgICAgICBBY3Rpb24KKyAgICAgICAgPC90aD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgIG1haWwuaG90bWFpbC5jb20KKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgIHVzZXIxMjM0CisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgICAgIHBvcDMKKyAgICAgICAgPC90ZD4KKworICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICBmYWxzZQorICAgICAgICA8L3RkPgorICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICA8YSBocmVmPSIvc3RydXRzMi1tYWlscmVhZGVyL1N1YnNjcmlwdGlvbiFkZWxldGUuZG8/aG9zdD1tYWlsLmhvdG1haWwuY29tIj4KKyAgICAgICAgICAgICAgICBEZWxldGUKKyAgICAgICAgICAgIDwvYT4KKyAgICAgICAgICAgICZuYnNwOworICAgICAgICAgICAgPGEgaHJlZj0iL3N0cnV0czItbWFpbHJlYWRlci9TdWJzY3JpcHRpb24hZWRpdC5kbz9ob3N0PW1haWwuaG90bWFpbC5jb20iPgorICAgICAgICAgICAgICAgIEVkaXQKKyAgICAgICAgICAgIDwvYT4KKyAgICAgICAgPC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgIG1haWwueWFob28uY29tCisgICAgICAgIDwvdGQ+CisgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICBqcXVzZXIKKyAgICAgICAgPC90ZD4KKyAgICAgICAgPHRkIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgaW1hcAorICAgICAgICA8L3RkPgorICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICBmYWxzZQorICAgICAgICA8L3RkPgorICAgICAgICA8dGQgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICA8YSBocmVmPSIvc3RydXRzMi1tYWlscmVhZGVyL1N1YnNjcmlwdGlvbiFkZWxldGUuZG8/aG9zdD1tYWlsLnlhaG9vLmNvbSI+CisgICAgICAgICAgICAgICAgRGVsZXRlCisgICAgICAgICAgICA8L2E+CisgICAgICAgICAgICAmbmJzcDsKKyAgICAgICAgICAgIDxhIGhyZWY9Ii9zdHJ1dHMyLW1haWxyZWFkZXIvU3Vic2NyaXB0aW9uIWVkaXQuZG8/aG9zdD1tYWlsLnlhaG9vLmNvbSI+CisgICAgICAgICAgICAgICAgRWRpdAorICAgICAgICAgICAgPC9hPgorICAgICAgICA8L3RkPgorICAgIDwvdHI+Cis8L3RhYmxlPgorPGEgaHJlZj0iL3N0cnV0czItbWFpbHJlYWRlci9TdWJzY3JpcHRpb24haW5wdXQuZG8iPkFkZDwvYT4KKworPGhyLz4KKworPHA+CisgICAgTm93IGxvb2sgYmFjayBhdCB0aGUgY29kZSB1c2VkIHRvIGdlbmVyYXRlIHRoaXMgYmxvY2suCis8L3A+CisKKzxwPgorICAgIE5vdGljZSBhbnl0aGluZyBuaWZ0eT8KKzwvcD4KKworPHA+CisgICAgSG93IGFib3V0IHRoYXQgdGhlIG1hcmt1cCBiZXR3ZWVuIHRoZSBpdGVyYXRvciB0YWcgaXMKKyAgICBhY3R1YWxseSA8ZW0+c2ltcGxlcjwvZW0+IHRoYW4gdGhlIG1hcmt1cCB0aGF0IHdlIHdvdWxkIHVzZSB0byByZW5kZXIgb25lIHJvdyBvZiB0aGUgdGFibGU/Cis8L3A+CisKKzxwPgorICAgIEluc3RlYWQgb2YgdXNpbmcgYSBxdWFsaWZpZWQgcmVmZXJlbmNlIGxpa2UgInZhbHVlPXVzZXIuc3Vic2NyaXB0aW9uWzBdLmhvc3QiLAorICAgIHdlIHVzZSB0aGUgc2ltcGxlc3QgcG9zc2libGUgcmVmZXJlbmNlOiAidmFsdWU9aG9zdCIuCisgICAgV2UgZGlkbid0IGhhdmUgdG8gZGVmaW5lIGEgbG9jYWwgdmFyaWFibGUsIGFuZCByZWZlcmVuY2UgdGhhdCBsb2NhbCBpbiB0aGUgbG9vcCBjb2RlLgorICAgIFRoZSByZWZlcmVuY2UgdG8gZWFjaCBpdGVtIGluIHRoZSBsaXN0IGlzIGF1dG9tYXRpY2FsbHkgcmVzb2x2ZWQsIG5vIGZ1c3MsIG5vIG11c3MuCis8L3A+CisKKzxwPgorICAgIE5pY2UgdHJpY2shCis8L3A+CisKKzxwPgorICAgIFRoZSBzZWNyZXQgdG8gdGhpcyBtYWdpYyBpcyB0aGUgPHN0cm9uZz52YWx1ZSBzdGFjazwvc3Ryb25nPi4KKyAgICBOZXh0IHRvIEludGVyY2VwdG9ycywgdGhlIHZhbHVlIHN0YWNrIGlzIHByb2JhYmx5IHRoZSBjb29sZXN0IHRoaW5nIHRoZXJlIGlzIGFib3V0IHRoZSBmcmFtZXdvcmsuCisgICAgVG8gZXhwbGFpbiB0aGUgdmFsdWUgc3RhY2ssIGxldCdzIHN0ZXAgYmFjayBhbmQgc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nLgorPC9wPgorCis8cD4KKyAgICBNZXJnaW5nIGR5bmFtaWMgZGF0YSBpbnRvIHN0YXRpYyB3ZWIgcGFnZXMgaXMgYSBwcmltYXJ5IHJlYXNvbgorICAgIHdlIGNyZWF0ZSB3ZWIgYXBwbGljYXRpb25zLgorICAgIFRoZSBKYXZhIEFQSSBoYXMgYSBtZWNoYW5pc20gdGhhdCBhbGxvd3MgeW91IHRvCisgICAgcGxhY2Ugb2JqZWN0cyBpbiBhIHNlcnZsZXQgc2NvcGUgKHBhZ2UsIHJlcXVlc3QsIHNlc3Npb24sIG9yCisgICAgYXBwbGljYXRpb24pLCBhbmQgdGhlbiByZXRyaWV2ZSB0aGVtIHVzaW5nIGEgSlNQIHNjcmlwbGV0LgorICAgIElmIHRoZSBvYmplY3QgaXMgcGxhY2VkIGRpcmVjdGx5IGluIG9uZSBvZiB0aGUgc2NvcGVzLAorICAgIGEgSlNQIHRhZyBvciBzY3JpcHRsZXQgY2FuIGZpbmQgdGhhdCBvYmplY3QgYnkgc2VhcmNoaW5nIHBhZ2Ugc2NvcGUgYW5kCisgICAgdGhlbiByZXF1ZXN0IHNjb3BlLCBhbmQgc2Vzc2lvbiBzY29wZSwgYW5kIGZpbmFsbHkgYXBwbGljYXRpb24gc2NvcGUuCis8L3A+CisKKzxwPgorICAgIFRoZSB2YWx1ZSBzdGFjayB3b3JrcyBtdWNoIHRoZSBzYW1lIHdheSwgb25seSBiZXR0ZXIuCisgICAgV2hlbiB5b3UgcHVzaCBhbiBvYmplY3Qgb24gdGhlIHZhbHVlIHN0YWNrLAorICAgIHRoZSBwdWJsaWMgcHJvcGVydGllcyBvZiB0aGF0IG9iamVjdCBiZWNvbWUgZmlyc3QtY2xhc3MgcHJvcGVydGllcyBvZiB0aGUgc3RhY2suCisgICAgVGhlIG9iamVjdCdzIHByb3BlcnRpZXMgYmVjb21lIHRoZSBzdGFjaydzIHByb3BlcnRpZXMuCisgICAgSWYgYW5vdGhlciBvYmplY3Qgb24gdGhlIHN0YWNrIGhhcyBwcm9wZXJ0aWVzIG9mIHRoZSBzYW1lIG5hbWUsCisgICAgdGhlIGxhc3Qgb2JqZWN0IHB1c2hlZCBvbnRvIHRoZSBzdGFjayB3aW5zLiAoTGFzdC1JbiwgRmlyc3QtT3V0LikKKzwvcD4KKworPHA+CisgICAgV2hlbiB0aGUgaXRlcmF0b3IgdGFnIGxvb3BzIHRocm91Z2ggYSBjb2xsZWN0aW9uLAorICAgIGl0IHB1c2hlcyBlYWNoIGl0ZW0gaW4gdGhlIGNvbGxlY3Rpb24gb250byB0aGUgc3RhY2suCisgICAgVGhlIGl0ZW0ncyBwcm9wZXJ0aWVzIGJlY29tZSB0aGUgc3RhY2sncyBwcm9wZXJ0eS4KKyAgICBJbiB0aGUgY2FzZSBvZiB0aGUgU3Vic2NyaXB0aW9ucywKKyAgICBpZiB0aGUgU3Vic2NyaXB0aW9uIGhhcyBhIHB1YmxpYyBIb3N0IHByb3BlcnR5LAorICAgIHRoZW4gZHVyaW5nIHRoYXQgaXRlcmF0aW9uLAorICAgIHRoZSBzdGFjayBjYW4gYWNjZXNzIHRoZSBzYW1lIHByb3BlcnR5LgorPC9wPgorCis8cD4KKyAgICBPZiBjb3Vyc2UsIGF0IHRoZSBlbmQgb2YgZWFjaCBpdGVyYXRpb24sIHRoZSB0YWcgInBvcHMiIHRoZSBpdGVtIG9mZiB0aGUgc3RhY2suCisgICAgSWYgd2Ugd2VyZSB0byB0cnkgYW5kIGFjY2VzcyB0aGUgSG9zdCBwcm9wZXJ0eSBsYXRlciBpbiB0aGUgcGFnZSwKKyAgICBpdCB3b24ndCBiZSB0aGVyZS4KKzwvcD4KKworPHA+CisgICAgV2hlbiBhbiBBY3Rpb24gaXMgaW52b2tlZCwgdGhlIEFjdGlvbiBjbGFzcyBpcyBwdXNoZWQgb250byB0aGUgdmFsdWUgc3RhY2suCisgICAgU2luY2UgdGhlIEFjdGlvbiBpcyBvbiB0aGUgdmFsdWUgc3RhY2ssCisgICAgb3VyIHRhZ3MgY2FuIGFjY2VzcyBhbnkgcHJvcGVydHkgb2YgdGhlIEFjdGlvbiBhcyBpZiBpdCB3ZXJlIGFuIGltcGxpY2l0IHByb3BlcnR5IG9mIHRoZSBwYWdlLgorICAgIFRoZSB0YWdzIGRvbid0IGFjY2VzcyB0aGUgQWN0aW9uIGRpcmVjdGx5LgorICAgIElmIGEgdGV4dGZpZWxkIHRhZyBpcyB0b2xkIHRvIHJlbmRlciB0aGUgIlVzZXJuYW1lIiBwcm9wZXJ0eSwKKyAgICB0aGUgdGFnIGFza3MgdGhlIHZhbHVlIHN0YWNrIGZvciB0aGUgdmFsdWUgb2YgIlVzZXJuYW1lIiwKKyAgICBhbmQgdGhlIHZhbHVlIHN0YWNrIHJldHVybnMgdGhlIGZpcnN0IHByb3BlcnR5IGl0IGZpbmRzIGJ5IHRoYXQgbmFtZS4KKzwvcD4KKworPHA+CisgICAgVGhlIFZhbGlkYXRvcnMgYWxzbyB1c2UgdGhlIHN0YWNrLgorICAgIFdoZW4gdmFsaWRhdGlvbiBmYWlscyBvbiBhIGZpZWxkLAorICAgIHRoZSB2YWx1ZSBmb3IgdGhlIGZpZWxkIGlzIHB1c2hlZCBvbnRvIHRoZSB2YWx1ZSBzdGFjay4KKyAgICBBcyBhIHJlc3VsdCwgaWYgdGhlIGNsaWVudCBlbnRlcnMgdGV4dCBpbnRvIGFuIEludGVnZXIgZmllbGQsCisgICAgdGhlIGZyYW1ld29yayBjYW4gc3RpbGwgcmVkaXNwbGF5IHdoYXRldmVyIHdhcyBlbnRlcmVkLgorICAgIEFuIGludmFsaWQgaW5wdXQgdmFsdWUgaXMgbm90IHN0b3JlZCBpbiB0aGUgZmllbGQgKGV2ZW4gaWYgaXQgY291bGQgYmUpLgorICAgIFRoZSBpbnZhbGlkIGlucHV0IGlzIHB1c2hlZCBvbnRvIHRoZSBzdGFjayBmb3IgdGhlIHNjb3BlIG9mIHRoZSByZXF1ZXN0LgorPC9wPgorCis8cD4KKyAgICBUaGUgU3Vic2NyaXB0aW9uIGxpc3QgdXNlcyBhbm90aGVyIG5ldyB0YWc6IHRoZSA8c3Ryb25nPnBhcmFtPC9zdHJvbmc+IHRhZy4KKyAgICBBcyB0YWdzIGdvLCAicGFyYW0iIHRha2VzIHZlcnkgZmV3IHBhcmFtZXRlcnMgb2YgaXRzIG93bjoganVzdCAibmFtZSIgYW5kICJ2YWx1ZSIsIGFuZCBuZWl0aGVyIGlzIHJlcXVpcmVkLgorICAgIEFsdGhvdWdoIHNpbXBsZSwgInBhcmFtIiBpcyBvbmUgb2YgdGhlIG1vc3QgcG93ZXJmdWwgdGFncyB0aGUgZnJhbWV3b3JrIHByb3ZpZGVzLgorICAgIE5vdCBzbyBtdWNoIGJlY2F1c2Ugb2Ygd2hhdCBpdCBkb2VzLCBidXQgYmVjYXVzZSBvZiB3aGF0ICJwYXJhbSIgYWxsb3dzIHRoZSBvdGhlciB0YWdzIHRvIGRvLgorPC9wPgorCis8cD4KKyAgICBFc3NlbnRpYWxseSwgdGhlICJwYXJhbSIgdGFnIHByb3ZpZGVzIHBhcmFtZXRlcnMgdG8gb3RoZXIgdGFncy4KKyAgICBBIHRhZyBsaWtlICJ0ZXh0IiBtaWdodCBiZSByZXRyaWV2aW5nIGEgbWVzc2FnZSB0ZW1wbGF0ZSB3aXRoIHNldmVyYWwgcmVwbGFjZWFibGUgcGFyYW1ldGVycy4KKyAgICBObyBtYXR0ZXIgaG93IG1hbnkgcGFyYW1ldGVycyBhcmUgaW4gdGhlIHRlbXBsYXRlLCBhbmQgbm8gbWF0dGVyIHdoYXQgdGhleSBhcmUgbmFtZWQsCisgICAgeW91IGNhbiB1c2UgdGhlICJwYXJhbSIgdGFnIHRvIHBhc3MgaW4gd2hhdGV2ZXIgeW91IG5lZWQuCis8L3A+CisKKzxwcmU+PGNvZGU+cGFnZXIubGVnZW5kID0gRGlzcGxheWluZyB7Y3VycmVudH0gb2Yge2NvdW50fSBpdGVtcyBtYXRjaGluZyB7Y3JpdGVyaWF9LgorICAgIC4uLgorICAgICZsdDtzOnRleHQgbmFtZT0icGFnZXIubGVnZW5kIj4KKyAgICAmbHQ7czo8c3Ryb25nPnBhcmFtPC9zdHJvbmc+IG5hbWU9ImN1cnJlbnQiIHZhbHVlPSI0MiIgLz4KKyAgICAmbHQ7czo8c3Ryb25nPnBhcmFtPC9zdHJvbmc+IG5hbWU9ImNvdW50IiB2YWx1ZT0iMzE0IiAvPgorICAgICZsdDtzOjxzdHJvbmc+cGFyYW08L3N0cm9uZz4gbmFtZT0iY3JpdGVyaWEiIHZhbHVlPSJMaWZlLCB0aGUgVW5pdmVyc2UsIGFuZCBFdmVyeXRoaW5nIiAvPgorICAgICZsdDsvczp0ZXh0PjwvY29kZT48L3ByZT4KKworPHA+CisgICAgSW4gdGhlIGNhc2Ugb2YgYW4gInVybCIgdGFnLAorICAgIHdlIGNhbiB1c2UgInBhcmFtIiB0byBjcmVhdGUgdGhlIHF1ZXJ5IHN0cmluZy4KKyAgICBBIHN0YXRlbWVudCBsaWtlIHRoaXM6Cis8L3A+CisKKzxwcmU+PGNvZGU+CisgICAgJmx0O3M6dXJsIGFjdGlvbj0iU3Vic2NyaXB0aW9uIWVkaXQiPiZsdDtzOnBhcmFtIG5hbWU9IjxzdHJvbmc+aG9zdCIgdmFsdWU9Imhvc3Q8L3N0cm9uZz4iLz4mbHQ7L3M6dXJsPiI+Cis8L2NvZGU+PC9wcmU+CisKKzxwPgorICAgIGNhbiByZW5kZXIgYSBoeXBlcmxpbmsgbGlrZSB0aGlzOgorPC9wPgorCis8cHJlPjxjb2RlPgorICAgICZsdDthIGhyZWY9Ii9zdHJ1dHMyLW1haWxyZWFkZXIvU3Vic2NyaXB0aW9uIWVkaXQuZG8/PHN0cm9uZz5ob3N0PW1haWwueWFob28uY29tPC9zdHJvbmc+Ij5FZGl0Jmx0Oy9hPgorPC9jb2RlPjwvcHJlPgorCisKKzwhLS0KKzxwPgorICAgIEF0IHRoZSBmb290IG9mIHRoZSBSZWdpc3RlciBwYWdlIGlzIGEgbGluayBmb3IgYWRkaW5nIGEgc3Vic2NyaXB0aW9uLgorICAgIExldCdzIHdpbmQgdXAgdGhlIHRvdXIgYnkgZm9sbG93aW5nIHRoZSBBZGQgbGluayBhbmQgdGhlbiBsb2dnaW5nIG9mZi4KKyAgICBMaWtlIHRoZSBsaW5rIGZvciBjcmVhdGluZyBhIFN1cHBvcnQsIEFkZCBwb2ludHMgdG8gYW4gIkVkaXQiIGFjdGlvbiwKKyAgICBuYW1lbHkgIkVkaXRTdWJzY3JpcHRpb24iLgorPC9wPgorLS0+CisKKzxwPgorICAgIElmIGEgaHlwZXJsaW5rIG5lZWRzIG1vcmUgcGFyYW1ldGVycywKKyAgICB5b3UgY2FuIHVzZSAicGFyYW0iIHRvIGFkZCBhcyBtYW55IHBhcmFtZXRlcnMgYXMgbmVlZGVkLgorPC9wPgorCis8aDM+CisgICAgPGEgbmFtZT0iU3Vic2NyaXB0aW9uIiBpZD0iU3Vic2NyaXB0aW9uIj5TdWJzY3JpcHRpb248L2E+Cis8L2gzPgorCis8cD4KKyAgICBJZiB3ZSBmb2xsb3cgb25lIG9mIHRoZSAiRWRpdCIgc3Vic2NyaXB0aW9uIGxpbmtzIG9uIHRoZSBSZWdpc3RyYXRpb24gcGFnZSwKKyAgICB3ZSBjb21lIHRvIHRoZSBTdWJzY3JpcHRpb25zIHBhZ2UsCisgICAgd2hpY2ggZGlzcGxheXMgdGhlIGRldGFpbHMgb2Ygb3VyIGRlc2NyaXB0aW9uIGluIGEgZGF0YS1lbnRyeSBmb3JtLgorICAgIExldCdzIGhhdmUgYSBsb29rIGEgdGhlIFN1YnNjcmlwdGlvbiBjb25maWd1cmF0aW9uIGluICJzdHJ1dHMueG1sIgorICAgIGFuZCBmb2xsb3cgdGhlIGJvdW5jaW5nIGJhbGwgZnJvbSBwYWdlIHRvIGFjdGlvbiB0byBwYWdlLgorPC9wPgorCis8aHIvPgorPGg1PnN0cnV0cy54bWwgU3Vic2NyaXB0aW9uIGVsZW1lbnQ8L2g1PgorPHByZT48Y29kZT4mbHQ7YWN0aW9uIG5hbWU9IlN1YnNjcmlwdGlvbiIgY2xhc3M9Im1haWxyZWFkZXIyLlN1YnNjcmlwdGlvblN1cHBvcnQiPgorICAgICZsdDtyZXN1bHQgbmFtZT0iaW5wdXQiPi9wYWdlcy9TdWJzY3JpcHRpb24uanNwJmx0Oy9yZXN1bHQ+CisgICAgJmx0O3Jlc3VsdCB0eXBlPSJyZWRpcmVjdC1hY3Rpb24iPlJlZ2lzdHJhdGlvbiFpbnB1dCZsdDsvcmVzdWx0PgorICAgICZsdDsvYWN0aW9uPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSBFZGl0IGxpbmsgc3BlY2lmaWVkIHRoZSBTdWJzY3JpcHRpb24gYWN0aW9uLAorICAgIGJ1dCBhbHNvIGluY2x1ZGVzIHRoZSBxdWFsaWZpZXIgPHN0cm9uZz4hZWRpdDwvc3Ryb25nPi4KKyAgICBUaGUgPHN0cm9uZz4hPC9zdHJvbmc+IGlkaW9tIHRlbGxzIHRoZSBmcmFtZXdvcmsgdG8gaW52b2tlIHRoZQorICAgICJlZGl0IiBtZXRob2Qgb2YgdGhlIFN1YnNjcmlwdGlvbiBhY3Rpb24sCisgICAgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCAiZXhlY3V0ZSIgbWV0aG9kCisgICAgVGhlICJhbHRlcm5hdGUiIGV4ZWN1dGUgbWV0aG9kcyBhcmUgY2FsbGVkIDxzdHJvbmc+YWxpYXM8L3N0cm9uZz4gbWV0aG9kcy4KKzwvcD4KKworPGhyLz4KKzxoNT5TdWJzY3JpcHRpb24gZWRpdCBhbGlhczwvaDU+Cis8cHJlPjxjb2RlPnB1YmxpYyBTdHJpbmcgPHN0cm9uZz5lZGl0KCk8L3N0cm9uZz4geworICAgIDxzdHJvbmc+c2V0VGFzayhDb25zdGFudHMuRURJVCk7PC9zdHJvbmc+PgorICAgIHJldHVybiBmaW5kKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBmaW5kKCkgeworICAgIG9yZy5hcGFjaGUuc3RydXRzLmFwcHMubWFpbHJlYWRlci5kYW8uU3Vic2NyaXB0aW9uCisgICAgc3ViID0gZmluZFN1YnNjcmlwdGlvbigpOworICAgIGlmIChzdWIgPT0gbnVsbCkgeworICAgIHJldHVybiBFUlJPUjsKKyAgICB9CisgICAgPHN0cm9uZz5zZXRTdWJzY3JpcHRpb24oc3ViKTs8L3N0cm9uZz4KKyAgICByZXR1cm4gSU5QVVQ7CisgICAgfTwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSAiZWRpdCIgYWxpYXMgaGFzIHR3byByZXNwb25zaWJpbGl0aWVzLgorICAgIEZpcnN0LCBpdCBtdXN0IHNldCB0aGUgVGFzayBwcm9wZXJ0eSB0byAiRWRpdCIuCisgICAgVGhlIFN1YnNjcmlwdGlvbiBwYWdlIHdpbGwgcmVuZGVyIGl0c2VsZiBkaWZmZXJlbnRseQorICAgIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgdGhlIFRhc2sgcHJvcGVydHkuCisgICAgU2Vjb25kLCAiZWRpdCIgbXVzdCBsb2NhdGUgdGhlIHJlbGV2YW50IFN1YnNjcmlwdGlvbgorICAgIGFuZCBzZXQgaXQgdG8gdGhlIFN1YnNjcmlwdGlvbiBwcm9wZXJ0eS4KKyAgICBJZiBhbGwgZ29lcyB3ZWxsLCAiZWRpdCIgcmV0dXJucyB0aGUgSU5QVVQgdG9rZW4sCisgICAgc28gdGhhdCB0aGUgImlucHV0IiByZXN1bHQgd2lsbCBiZSBpbnZva2VkLgorPC9wPgorCis8cD4KKyAgICBJbiB0aGUgbm9ybWFsIGNvdXJzZSwgdGhlIFN1YnNjcmlwdGlvbiBzaG91bGQgYWx3YXlzIGJlIGZvdW5kLAorICAgIHNpbmNlIHdlIHNlbGVjdGVkIHRoZSBlbnRyeSBmcm9tIGEgc3lzdGVtLWdlbmVyYXRlZCBsaXN0LgorICAgIElmIHRoZSBTdWJzY3JpcHRpb24gaXMgbm90IGZvdW5kLAorICAgIGl0IHdvdWxkIGJlIGJlY2F1c2UgdGhlIGRhdGFiYXNlIGRpc2FwcGVhcmVkCisgICAgb3IgdGhlIHJlcXVlc3QgaXMgYmVpbmcgc3Bvb2ZlZC4KKyAgICBJZiB0aGUgU3Vic2NyaXB0aW9uIGlzIG5vdCBmb3VuZCwKKyAgICBlZGl0IHJldHVybnMgdGhlIHRva2VuIGZvciB0aGUgZ2xvYmFsICJlcnJvciIgcmVzdWx0LAorICAgIGJlY2F1c2UgdGhpcyBjb25kaXRpb24gaXMgdW5leHBlY3RlZC4KKzwvcD4KKworPHA+CisgICAgVGhlIGJ1c2luZXNzIGxvZ2ljIGZvciB0aGUgImVkaXQiIGFsaWFzIGlzIGEgc2ltcGxlIHdyYXBwZXIKKyAgICBhcm91bmQgdGhlIE1haWxSZWFkZXIgREFPIGNsYXNzZXMuCis8L3A+CisKKzxoci8+Cis8aDU+TWFpbHJlYWRlclN1cHBvcnQgZmluZFN1YnNjcmlwdGlvbigpPC9oNT4KKzxwcmU+PGNvZGU+cHVibGljIFN1YnNjcmlwdGlvbiA8c3Ryb25nPmZpbmRTdWJzY3JpcHRpb24oKTwvc3Ryb25nPiB7CisgICAgcmV0dXJuIGZpbmRTdWJzY3JpcHRpb24oZ2V0SG9zdCgpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3Vic2NyaXB0aW9uIGZpbmRTdWJzY3JpcHRpb24oU3RyaW5nIGhvc3QpIHsKKyAgICBTdWJzY3JpcHRpb24gc3Vic2NyaXB0aW9uOworICAgIHN1YnNjcmlwdGlvbiA9IDxzdHJvbmc+Z2V0VXNlcigpLmZpbmRTdWJzY3JpcHRpb24oaG9zdCk7PC9zdHJvbmc+CisgICAgcmV0dXJuIHN1YnNjcmlwdGlvbjsKKyAgICB9PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgVGhpcyBjb2RlIGlzIHZlcnkgc2ltcGxlCisgICAgYW5kIGRvZXNuJ3Qgc2VlbSB0byBwcm92aWRlIG11Y2ggaW4gdGhlIHdheSBvZiBlcnJvciBoYW5kbGluZy4KKyAgICBCdXQsIHRoYXQncyBPSy4KKyAgICBTaW5jZSB0aGUgcGFnZSBpcyBzdXBwb3NlIHRvIGJlIGVudGVyZWQgZnJvbSBhIGxpbmsgdGhhdCB3ZSBjcmVhdGVkLAorICAgIHdlIGRvIGV4cGVjdCBldmVyeXRoaW5nIHRvIGdvIHJpZ2h0IGhlcmUuCisgICAgQnV0LCBpZiBpdCBkb2Vzbid0LCB0aGUgZ2xvYmFsIGV4Y2VwdGlvbiBoYW5kbGVyIHdlIGRlZmluZWQgaW4gInN0cnV0cy54bWwiCisgICAgd2lsbCB0cmFwIHRoZSBleGNlcHRpb24gZm9yIHVzLgorPC9wPgorCis8cD4KKyAgICBMaWtld2lzZSwgdGhlIEF1dGhlbnRpZmljYXRpb25JbnRlcmNlcHRvciB3aWxsIGVuc3VyZSB0aGF0IG9ubHkgY2xpZW50cworICAgIHdpdGggYSB2YWxpZCBVc2VyIG9iamVjdCBjYW4gdHJ5IHRvIGVkaXQgYSBTdWJzY3JpcHRpb24uCisgICAgSWYgdGhlIHNlc3Npb24gZXhwaXJlZCwgb3Igc29tZW9uZSBib29rbWFya2VkIHRoZSBwYWdlLAorICAgIHRoZSBjbGllbnQgd2lsbCBiZSByZWRpcmVjdGVkIHRvIHRoZSBMb2dvbiBwYWdlIGF1dG9tYXRpY2FsbHkuCis8L3A+CisKKzxwPgorICAgIEFzIGEgZmluYWwgbGF5ZXIgb2YgZGVmZW5zZSwgd2UgYWxzbyBjb25maWd1cmVkIGEgdmFsaWRhdG9yIGZvciBTdWJzY3JpcHRpb24sCisgICAgdG8gZW5zdXJlIHRoYXQgd2UgYXJlIHBhc3NlZCBhIEhvc3QgcGFyYW1ldGVyLgorPC9wPgorCis8aHIvPgorPGg1PlN1YnNjcmlwdGlvbi12YWxpZGF0aW9uLnhtbDwvaDU+Cis8cHJlPjxjb2RlPiZsdDshRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIgorICAgICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+CisgICAgJmx0O3ZhbGlkYXRvcnM+CisgICAgJmx0O2ZpZWxkIG5hbWU9IjxzdHJvbmc+aG9zdDwvc3Ryb25nPiI+CisgICAgJmx0O2ZpZWxkLXZhbGlkYXRvciB0eXBlPSI8c3Ryb25nPnJlcXVpcmVkc3RyaW5nPC9zdHJvbmc+Ij4KKyAgICAmbHQ7bWVzc2FnZSBrZXk9ImVycm9yLmhvc3QucmVxdWlyZWQiLz4KKyAgICAmbHQ7L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICAmbHQ7L2ZpZWxkPgorICAgICZsdDsvdmFsaWRhdG9ycz48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBCeSBrZWVwaW5nIHJvdXRpbmUgc2V0eSBwcmVjYXV0aW9ucyBvdXQgb2YgdGhlIEFjdGlvbiBjbGFzcywKKyAgICB0aGUgYWxsLWltcG9ydGFudCBBY3Rpb25zIGJlY29tZXMgc21hbGxlciBhbmQgZWFzaWVyIHRvIG1haW50YWluLgorPC9wPgorCis8cD4KKyAgICBBZnRlciBzZXR0aW5nIHRoZSByZWxldmVudCBTdWJzY3JpcHRpb24gb2JqZWN0IHRvIHRoZSBTdWJzY3JpcHRpb24gcHJvcGVydHksCisgICAgdGhlIGZyYW1ld29yayB0cmFuc2ZlcnMgY29udHJvbCB0byB0aGUgKHlvdSBndWVzc2VkIGl0KSBTdWJzY3JpcHRpb24gcGFnZS4KKzwvcD4KKworPGhyLz4KKzxoNT5TdWJzY3JpcHRpb24uanNwPC9oNT4KKzxwcmU+PGNvZGU+Jmx0OyVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgJT4KKyAgICAmbHQ7JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncyIgJT4KKyAgICAmbHQ7IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKyAgICAmbHQ7aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+CisgICAgJmx0O2hlYWQ+CisgICAgJmx0O3M6aWYgdGVzdD0idGFzaz09J0NyZWF0ZSciPgorICAgICZsdDt0aXRsZT4mbHQ7czp0ZXh0IG5hbWU9InN1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGUiLz4mbHQ7L3RpdGxlPgorICAgICZsdDsvczppZj4KKyAgICAmbHQ7czppZiB0ZXN0PSJ0YXNrPT0nRWRpdCciPgorICAgICZsdDt0aXRsZT4mbHQ7czp0ZXh0IG5hbWU9InN1YnNjcmlwdGlvbi50aXRsZS5lZGl0Ii8+Jmx0Oy90aXRsZT4KKyAgICAmbHQ7L3M6aWY+CisgICAgJmx0O3M6aWYgdGVzdD0idGFzaz09J0RlbGV0ZSciPgorICAgICZsdDt0aXRsZT4mbHQ7czp0ZXh0IG5hbWU9InN1YnNjcmlwdGlvbi50aXRsZS5kZWxldGUiLz4mbHQ7L3RpdGxlPgorICAgICZsdDsvczppZj4KKyAgICAmbHQ7bGluayBocmVmPSImbHQ7czp1cmwgdmFsdWU9Ii9jc3MvbWFpbHJlYWRlci5jc3MiLz4iIHJlbD0ic3R5bGVzaGVldCIKKyAgICB0eXBlPSJ0ZXh0L2NzcyIvPgorICAgICZsdDsvaGVhZD4KKyAgICAmbHQ7Ym9keSBvbkxvYWQ9InNlbGYuZm9jdXMoKTtkb2N1bWVudC5TdWJzY3JpcHRpb24udXNlcm5hbWUuZm9jdXMoKSI+CisKKyAgICAmbHQ7czphY3Rpb25lcnJvci8+CisgICAgJmx0O3M6Zm9ybSBtZXRob2Q9IlBPU1QiIDxzdHJvbmc+YWN0aW9uPSJTdWJzY3JpcHRpb25TYXZlIjwvc3Ryb25nPiB2YWxpZGF0ZT0iZmFsc2UiPgorICAgIDxzdHJvbmc+Jmx0O3M6dG9rZW4gLz48L3N0cm9uZz4KKyAgICA8c3Ryb25nPiZsdDtzOmhpZGRlbiBuYW1lPSJ0YXNrIi8+PC9zdHJvbmc+CisgICAgPHN0cm9uZz4mbHQ7czpsYWJlbCBsYWJlbD0iJXtnZXRUZXh0KCd1c2VybmFtZScpfSIgbmFtZT0idXNlci51c2VybmFtZSIvPjwvc3Ryb25nPgorCisgICAgJmx0O3M6aWYgdGVzdD0idGFzayA9PSAnQ3JlYXRlJyI+CisgICAgJmx0O3M6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ21haWxIb3N0bmFtZScpfSIgbmFtZT0iaG9zdCIvPgorICAgICZsdDsvczppZj4KKyAgICAmbHQ7czplbHNlPgorICAgICZsdDtzOmxhYmVsIGxhYmVsPSIle2dldFRleHQoJ21haWxIb3N0bmFtZScpfSIgbmFtZT0iaG9zdCIvPgorICAgICZsdDtzOmhpZGRlbiBuYW1lPSJob3N0Ii8+CisgICAgJmx0Oy9zOmVsc2U+CisKKyAgICAmbHQ7czppZiB0ZXN0PSJ0YXNrID09ICdEZWxldGUnIj4KKyAgICAmbHQ7czpsYWJlbCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsVXNlcm5hbWUnKX0iCisgICAgbmFtZT0ic3Vic2NyaXB0aW9uLnVzZXJuYW1lIi8+CisgICAgJmx0O3M6bGFiZWwgbGFiZWw9IiV7Z2V0VGV4dCgnbWFpbFBhc3N3b3JkJyl9IgorICAgIG5hbWU9InN1YnNjcmlwdGlvbi5wYXNzd29yZCIvPgorICAgICZsdDtzOmxhYmVsIGxhYmVsPSIle2dldFRleHQoJ21haWxTZXJ2ZXJUeXBlJyl9IgorICAgIG5hbWU9InN1YnNjcmlwdGlvbi50eXBlIi8+CisgICAgJmx0O3M6bGFiZWwgbGFiZWw9IiV7Z2V0VGV4dCgnYXV0b0Nvbm5lY3QnKX0iCisgICAgbmFtZT0ic3Vic2NyaXB0aW9uLmF1dG9Db25uZWN0Ii8+CisgICAgJmx0O3M6c3VibWl0IHZhbHVlPSIle2dldFRleHQoJ2J1dHRvbi5jb25maXJtJyl9Ii8+CisgICAgJmx0Oy9zOmlmPgorICAgICZsdDtzOmVsc2U+CisgICAgJmx0O3M6dGV4dGZpZWxkIGxhYmVsPSIle2dldFRleHQoJ21haWxVc2VybmFtZScpfSIKKyAgICBuYW1lPSJzdWJzY3JpcHRpb24udXNlcm5hbWUiLz4KKyAgICAmbHQ7czp0ZXh0ZmllbGQgbGFiZWw9IiV7Z2V0VGV4dCgnbWFpbFBhc3N3b3JkJyl9IgorICAgIG5hbWU9InN1YnNjcmlwdGlvbi5wYXNzd29yZCIvPgorICAgIDxzdHJvbmc+Jmx0O3M6c2VsZWN0IGxhYmVsPSIle2dldFRleHQoJ21haWxTZXJ2ZXJUeXBlJyl9IgorICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24udHlwZSIgbGlzdD0idHlwZXMiLz48L3N0cm9uZz4KKyAgICA8c3Ryb25nPiZsdDtzOmNoZWNrYm94IGxhYmVsPSIle2dldFRleHQoJ2F1dG9Db25uZWN0Jyl9IgorICAgICAgICBuYW1lPSJzdWJzY3JpcHRpb24uYXV0b0Nvbm5lY3QiLz48L3N0cm9uZz4KKyAgICAmbHQ7czpzdWJtaXQgdmFsdWU9IiV7Z2V0VGV4dCgnYnV0dG9uLnNhdmUnKX0iLz4KKyAgICAmbHQ7czpyZXNldCB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24ucmVzZXQnKX0iLz4KKyAgICAmbHQ7L3M6ZWxzZT4KKworICAgICZsdDtzOnN1Ym1pdCBhY3Rpb249IlJlZ2lzdHJhdGlvbiFpbnB1dCIKKyAgICB2YWx1ZT0iJXtnZXRUZXh0KCdidXR0b24uY2FuY2VsJyl9IgorICAgIG9uY2xpY2s9ImZvcm0ub25zdWJtaXQ9bnVsbCIvPgorICAgICZsdDsvczpmb3JtPgorCisgICAgJmx0O2pzcDppbmNsdWRlIHBhZ2U9IkZvb3Rlci5qc3AiLz4KKyAgICAmbHQ7L2JvZHk+CisgICAgJmx0Oy9odG1sPjwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIEFzIGJlZm9yZSwgd2UnbGwgZGlzY3VzcyB0aGUgdGFncyBhbmQgYXR0cmlidXRlcyB0aGF0IGFyZSBuZXcgdG8gdGhpcyBwYWdlOgorICAgICJ0b2tlbiIsICJoaWRkZW4iLCAibGFiZWwiLCAic2VsZWN0IiwgYW5kICJjaGVja2JveCIuCis8L3A+CisKKzxwPgorICAgIFdoZW4gd2UgbG9va2VkIGF0IHRoZSBmb3JtIHRhZyBmb3IgdGhlIExvZ29uIHBhZ2UsCisgICAgaXQgZGlkIG5vdCBzcGVjaWZ5IGEgdGFyZ2V0IGZvciB0aGUgc3VibWl0LgorICAgIEluc3RlYWQsIGl0IGp1c3QgcG9zdGVkIGJhY2sgdG8gdGhlIExvZ29uIGFjdGlvbi4KKyAgICBJbiB0aGlzIDxzdHJvbmc+Zm9ybTwvc3Ryb25nPiB0YWcsIHdlIGFyZSBzcGVjaWZ5aW5nIGEgZGlmZmVyZW50IGFjdGlvbiwKKyAgICA8c3Ryb25nPlN1YnNjcmlwdGlvblNhdmU8L3N0cm9uZz4KKyAgICB0byBiZSB0aGUgdGFyZ2V0IG9mIHRoZSBzdWJtaXQsCis8L3A+CisKKzxwPgorICAgIFRoZSBtYWluIHJlYXNvbiB3ZSB1c2UgYW5vdGhlciBhY3Rpb24gaXMgc28gdGhhdCB3ZSBjYW4gdXNlIGEgZGlmZmVyZW50IHNldCBvZiB2YWxpZGF0aW9ucy4KKyAgICBXaGVuIHdlIHJldHJpZXZlIHRoZSBTdWJzY3JpcHRpb24gZm9yIGVkaXRpbmcsIGFsbCB3ZSBuZWVkIGlzIHRoZSBIb3N0IHByb3BlcnR5LgorICAgIFdoZW4gd2Ugc2F2ZSB0aGUgU3Vic2NyaXB0aW9uLCB3ZSB3YW50IHRvIHZhbGlkYXRlIGFkZGl0aW9uYWwgcHJvcGVydGllcy4KKyAgICBTaW5jZSB0aGUgdmFsaWRhdGlvbiBmaWxlcyBhcmUgY291cGxlZCB0byB0aGUgY2xhc3NlcywKKyAgICB3ZSBjcmVhdGVkIGEgbmV3IEFjdGlvbiBjbGFzcyBmb3Igc2F2aW5nIGEgU3Vic2NyaXB0aW9uLgorPC9wPgorCis8aHIvPgorPGg1PlN1YnNjcmlwdGlvbi12YWxpZGF0aW9uLnhtbDwvaDU+Cis8cHJlPjxjb2RlPiZsdDshRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIgorICAgICJodHRwOi8vd3d3Lm9wZW5zeW1waG9ueS5jb20veHdvcmsveHdvcmstdmFsaWRhdG9yLTEuMC4yLmR0ZCI+CisgICAgJmx0O3ZhbGlkYXRvcnM+CisgICAgJmx0O2ZpZWxkIG5hbWU9IjxzdHJvbmc+aG9zdDwvc3Ryb25nPiI+CisgICAgJmx0O2ZpZWxkLXZhbGlkYXRvciB0eXBlPSI8c3Ryb25nPnJlcXVpcmVkc3RyaW5nPC9zdHJvbmc+Ij4KKyAgICAmbHQ7bWVzc2FnZSBrZXk9ImVycm9yLmhvc3QucmVxdWlyZWQiLz4KKyAgICAmbHQ7L2ZpZWxkLXZhbGlkYXRvcj4KKyAgICAmbHQ7L2ZpZWxkPgorICAgICZsdDsvdmFsaWRhdG9ycz48L2NvZGU+PC9wcmU+Cis8aHIvPgorCis8cD4KKyAgICBUaGUgdmFsaWRhdG9ycyBmb2xsb3cgdGhlIHNhbWUgdHlwZSBvZiBpbmhlcml0YW5jZSBwYXRoIGFzIHRoZSBjbGFzc2VzLgorICAgIFN1YnNjcmlwdGlvblNhdmUgZXh0ZW5kcyBTdWJzY3JpcHRpb24sCisgICAgc28gd2hlbiBTdWJzY3JpcHRpb25TYXZlIGlzIHZhbGlkYXRlZCwKKyAgICB0aGUgSG9zdCBwcm9wZXJ0eSBzcGVjaWZpZWQgYnkgIlN1YnNjcmlwdGlvbi12YWxpZGF0aW9uLnhtbCIgd2lsbCBhbHNvIGJlIHJlcXVpcmVkLgorPC9wPgorCis8cD4KKyAgICBUaGUgPHN0cm9uZz50b2tlbjwvc3Ryb25nPiB0YWcgd29ya3Mgd2l0aCB0aGUgVG9rZW4gU2Vzc2lvbiBJbnRlcmNlcHRvciB0byBmb2lsIGRvdWJsZSBzdWJtaXRzLgorICAgIFRoZSB0YWcgZ2VuZXJhdGVzIGEga2V5IHRoYXQgaXMgZW1iZWRkZWQgaW4gdGhlIGZvcm0gYW5kIGNhY2hlZCBpbiB0aGUgc2Vzc2lvbi4KKyAgICBXaXRob3V0IHRoaXMgdGFnLCB0aGUgSW50ZXJjZXB0b3IgY2FuJ3Qgd29yayBpdCdzIG1hZ2ljLgorPC9wPgorCis8cD4KKyAgICBUaGUgPHN0cm9uZz5oaWRkZW48L3N0cm9uZz4gdGFnIGVtYmVkcyB0aGUgVGFzayBwcm9wZXJ0eSBpbnRvIHRoZSBmb3JtLgorICAgIFdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLAorICAgIHRoZSBTdWJzY3JpcHRpb25TYXZlIGFjdGlvbiB3aWwgdXNlIHRoZSBUYXNrIHByb3BlcnR5IHRvIGRlY2lkZQorICAgIHdoZXRoZXIgdG8gaW5zZXJ0IG9yIHVwZGF0ZSB0aGUgZm9ybS4KKzwvcD4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+bGFiZWw8L3N0cm9uZz4gcmVuZGVycyBhICJyZWFkIG9ubHkiIHZlcnNpb24gb2YgYSBwcm9wZXJ0eSwKKyAgICBzdWl0YWJsZSBmb3IgcGxhY2VtZW50IGluIHRoZSBmb3JtLgorICAgIEluIEVkaXQgb3IgRGVsZXRlIG1vZGUsIHdlIHdhbnQgdGhlIEhvc3QgcHJvcGVydHkgdG8gYmUgaW1tdXRhYmxlLAorICAgIHNpbmNlIGl0IGlzIHVzZWQgYXMgYSBrZXkuIChBcyB1bndpc2UgYXMgdGhhdCBtaWdodCBzb3VuZC4pCisgICAgSW4gRGVsZXRlIG1vZGUsIGFsbCBvZiB0aGUgcHJvcGVydGllcyBhcmUgaW1tdXRhYmxlLAorICAgIHNpbmNlIHdlIGFyZSBzaW1wbHkgY29uZmlybWluZyB0aGUgZGVsZXRlIG9wZXJhdGlvbi4KKzwvcD4KKworPHA+CisgICAgU2F2aW5nIHRoZSBiZXN0IGZvciBsYXN0LCB0aGUgU3Vic2NyaXB0aW9uIHV0aWxpemVzIHR3byBtb3JlIGludGVyZXN0aW5nCisgICAgdGFncywgInNlbGVjdCIgYW5kICJjaGVja2JveCIuCis8L3A+CisKKzxwPgorICAgIFVuc3VycHJpc2luZ2x5LCB0aGUgPHN0cm9uZz5zZWxlY3Q8L3N0cm9uZz4gdGFnIHJlbmRlcnMgYSBzZWxlY3QgY29udHJvbCwKKyAgICBidXQgdGhlIHRhZyBkb2VzIHNvIHdpdGhvdXQgcmVxdWlyaW5nIGEgbG90IG9mIG1hcmt1cCBvciByZWR0YXBlLgorPC9wPgorCis8cHJlPjxjb2RlPiZsdDtzOnNlbGVjdCBsYWJlbD0iJXtnZXRUZXh0KCdtYWlsU2VydmVyVHlwZScpfSIKKyAgICBuYW1lPSJzdWJzY3JpcHRpb24udHlwZSIgPHN0cm9uZz5saXN0PSJ0eXBlcyI8L3N0cm9uZz4gLz4KKzwvY29kZT48L3ByZT4KKworPHA+CisgICAgVGhlIGludGVyZXN0aW5nIGF0dHJpYnV0ZSBvZiB0aGUgInNlbGVjdCIgdGFnIGlzICJsaXN0IiwKKyAgICB3aGljaCwgaW4gb3VyIGNhc2UsIHNwZWNpZmllcyBhIHZhbHVlIG9mICJ0eXBlcyIuCisgICAgSWYgd2UgdGFrZSBhbm90aGVyIGxvb2sgYXQgdGhlIFN1YnNjcmlwdGlvbiBhY3Rpb24sCisgICAgd2UgY2FuIHNlZSB0aGF0IGl0IGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIG5hbWVkIFByZXBhcmFibGUKKyAgICBhbmQgcG9wdWxhdGVzIGEgVHlwZXMgcHJvcGVydHkgaW4gYSBtZXRob2QgbmFtZWQgInByZXBhcmUiLgorPC9wPgorCis8aHIvPgorPGg1PlN1YnNjcmlwdGlvbi12YWxpZGF0aW9uLnhtbDwvaDU+Cis8cHJlPjxjb2RlPnB1YmxpYyBjbGFzcyA8c3Ryb25nPlN1YnNjcmlwdGlvbjwvc3Ryb25nPiBleHRlbmRzIE1haWxyZWFkZXJTdXBwb3J0CisgICAgPHN0cm9uZz5pbXBsZW1lbnRzIFByZXBhcmFibGU8L3N0cm9uZz4geworCisgICAgcHJpdmF0ZSBNYXAgdHlwZXMgPSBudWxsOworICAgIHB1YmxpYyBNYXAgPHN0cm9uZz5nZXRUeXBlcygpPC9zdHJvbmc+IHsKKyAgICByZXR1cm4gdHlwZXM7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgPHN0cm9uZz5wcmVwYXJlKCk8L3N0cm9uZz4geworICAgIE1hcCBtID0gbmV3IExpbmtlZEhhc2hNYXAoKTsKKyAgICBtLnB1dCgiaW1hcCIsICJJTUFQIFByb3RvY29sIik7CisgICAgbS5wdXQoInBvcDMiLCAiUE9QMyBQcm90b2NvbCIpOworICAgIHR5cGVzID0gbTsKKyAgICBzZXRIb3N0KGdldFN1YnNjcmlwdGlvbkhvc3QoKSk7CisgICAgfQorCisgICAgLy8gLi4uIDwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSBkZWZhdWx0IEludGVyY2VwdG9yIHN0YWNrIGluY2x1ZGVzIHRoZSA8c3Ryb25nPlByZXBhcmVJbnRlcmNlcHRvcjwvc3Ryb25nPiwKKyAgICB3aGljaCBvYnNlcnZlcyB0aGUgUHJlcGFyYWJsZSBpbnRlcmZhY2UuCis8L3A+CisKKzxoci8+Cis8aDU+UHJlcGFyZUludGVyY2VwdG9yPC9oNT4KKzxwcmU+PGNvZGU+cHVibGljIGNsYXNzIDxzdHJvbmc+UHJlcGFyZUludGVyY2VwdG9yPC9zdHJvbmc+IGV4dGVuZHMgQXJvdW5kSW50ZXJjZXB0b3IgeworCisgICAgcHJvdGVjdGVkIHZvaWQgYWZ0ZXIoQWN0aW9uSW52b2NhdGlvbiBkaXNwYXRjaGVyLCBTdHJpbmcgcmVzdWx0KSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBiZWZvcmUoQWN0aW9uSW52b2NhdGlvbiBpbnZvY2F0aW9uKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICBPYmplY3QgYWN0aW9uID0gaW52b2NhdGlvbi5nZXRBY3Rpb24oKTsKKyAgICA8c3Ryb25nPmlmIChhY3Rpb24gaW5zdGFuY2VvZiBQcmVwYXJhYmxlKSB7CisgICAgICAgICgoUHJlcGFyYWJsZSkgYWN0aW9uKS5wcmVwYXJlKCk7PC9zdHJvbmc+CisgICAgfQorICAgIH0KKyAgICB9PC9jb2RlPjwvcHJlPgorCis8cD4KKyAgICBUaGUgUHJlcGFyZUludGVyY2VwdG9yIGVuc3VyZXMgdGhhdCB0aGUgInByZXBhcmUiIG1ldGhvZCB3aWxsIGFsd2F5cyBiZSBjYWxsZWQKKyAgICBiZWZvcmUgImV4ZWN1dGUiIG9yIGFuIGFsaWFzIG1ldGhvZCBpcyBpbnZva2VkLgorICAgIFdlIHVzZSAicHJlcGFyZSIgdG8gc2V0dXAgdGhlIGxpc3Qgb2YgaXRlbXMgZm9yIHRoZSBzZWxlY3QgbGlzdCB0byBkaXNwbGF5LgorICAgIFdlIGFsc28gdHJhbnNmZXIgdGhlIEhvc3QgcHJvcGVydHkgZnJvbSBvdXIgU3Vic2NyaXB0aW9uIG9iamVjdAorICAgIHRvIGEgbG9jYWwgcHJvcGVydHksIHdoZXJlIGl0IGlzIGVhc2llciB0byBtYW5hZ2UuCis8L3A+CisKKworPGg0PgorICAgIDxhIG5hbWU9IlN1YnNjcmlwdGlvbkFjdGlvbi5qYXZhIiBpZD0iU3Vic2NyaXB0aW9uQWN0aW9uLmphdmEiPlN1YnNjcmlwdGlvbkFjdGlvbi5qYXZhPC9hPgorPC9oND4KKworPHA+CisgICAgTGlrZSBtYW55IGFwcGxpY2F0aW9ucywgdGhlIE1haWxSZWFkZXIgdXNlcyBtYWlubHkgU3RyaW5nIHByb3BlcnRpZXMuCisgICAgT25lIGV4Y2VwdGlvbiBpcyB0aGUgQXV0b0Nvbm5lY3QgcHJvcGVydHkgb2YgdGhlIFN1YnNjcmlwdGlvbiBvYmplY3QuCisgICAgT24gdGhlIEhUTUwgZm9ybSwgdGhlIEF1dG9Db25uZWN0IHByb3BlcnR5IGlzIHJlcHJlc2VudGVkIGJ5IGEgY2hlY2tib3gsCisgICAgYW5kIGNoZWNrYm94ZXMgbmVlZCB0byBiZSBoYW5kbGVkIGRpZmZlcmVudGx5IHRoYXQgb3RoZXIgY29udHJvbHMuCis8L3A+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPmNoZWNrYm94PC9zdHJvbmc+IHN0YXJ0cyBvdXQgYXMgYSBzaW1wbGUgZW5vdWdoIGNvbnRyb2wuCis8L3A+CisKKzxwcmU+PGNvZGU+ICAmbHQ7czpjaGVja2JveCBsYWJlbD0iJXtnZXRUZXh0KCdhdXRvQ29ubmVjdCcpfSIKKyAgICBuYW1lPSJzdWJzY3JpcHRpb24uYXV0b0Nvbm5lY3QiLz48L2NvZGU+PC9wcmU+CisKKzxwPgorICAgIFRoZSBTdWJzY3JpcHRpb24gb2JqZWN0IGhhcyBhIGJvb2xlYW4gQXV0b0Nvbm5lY3QgcHJvcGVydHksCisgICAgYW5kIHRoZSBjaGVja2JveCBzaW1wbHkgaGFzIHRvIHJlcHJlc2VudCBpdHMgc3RhdGUuCisgICAgVGhlIHByb2JsZW0gaXMsIGlmIHlvdSBjbGVhciBhIGNoZWNrYm94LCB0aGUgYnJvd3NlciBjbGllbnQgd2lsbCBub3Qgc3VibWl0IDxlbT5hbnl0aGluZzwvZW0+LgorICAgIE5hZGEuIFppcC4KKyAgICBJdCBpcyBhcyBpZiB0aGUgY2hlY2tib3ggY29udHJvbCBuZXZlciBleGlzdGVkLgorICAgIFRoZSBIVFRQIHByb3RvY29sIGhhcyBubyB3YXkgdG8gYWZmaXJtICJmYWxzZSIuCisgICAgSWYgdGhlIGNvbnRyb2wgaXMgbWlzc2luZywgd2UgbmVlZCB0byBmaWd1cmUgb3V0IGl0J3MgYmVlbiB1bmNsaWNrZWQuCis8L3A+CisKKzxoci8+Cis8aDU+VGlwOjwvaDU+Cis8YmxvY2txdW90ZT4KKyAgICA8cCBjbGFzcz0iaGludCI+CisgICAgICAgIDxzdHJvbmc+Q2hlY2tib3hlczwvc3Ryb25nPiAtCisgICAgICAgIFRoZSBIVE1MIGNoZWNrYm94IGlzIGEgdHJpY2t5IGNvbnRyb2wuCisgICAgICAgIFRoZSBwcm9ibGVtIGlzIHRoYXQsIGFjY29yZGluZyB0byB0aGUgVzNDIHNwZWNpZmljYXRpb24sIGEgdmFsdWUgaXMKKyAgICAgICAgb25seSBndWFyYW50ZWVkIHRvIGJlIHNlbnQKKyAgICAgICAgaWYgdGhlIGNvbnRyb2wgaXMgY2hlY2tlZC4KKyAgICAgICAgSWYgdGhlIGNvbnRyb2wgaXMgbm90IGNoZWNrZWQsIHRoZW4gdGhlIGNvbnRyb2wgbWF5IGJlIG9taXR0ZWQgZnJvbQorICAgICAgICB0aGUgcmVxdWVzdCwgYXMgaWYgaXQgd2FzIG9uIHRoZSBwYWdlLgorICAgICAgICBUaGlzIGNhbiBjYXVzZSBhIHByb2JsZW0gd2l0aCBzZXNzaW9uLXNjb3BlIGNoZWNrYm94ZXMuCisgICAgICAgIE9uY2UgeW91IHNldCB0aGUgY2hlY2tib3ggdG8gdHJ1ZSwgdGhlIGNvbnRyb2wgY2FuJ3Qgc2V0IGl0IHRvIGZhbHNlCisgICAgICAgIGFnYWluLAorICAgICAgICBiZWNhdXNlIGlmIHlvdSB1bmNoZWNrIHRoZSBib3gsIG5vdGhpbmcgaXMgc2VudCwgYW5kIHNvIHRoZSBjb250cm9sCisgICAgICAgIHN0YXlzIGNoZWNrZWQuCisgICAgPC9wPgorPC9ibG9ja3F1b3RlPgorPGhyLz4KKworPHA+CisgICAgVGhlIHNpbXBsZXN0IHNvbHV0aW9uIGlzIHRvIGVtcGxveSBvdXIgb2xkIGZyaWVuZCBQcmVwYXJhYmxlIGFnYWluLgorICAgIEluIHRoZSAicHJlcGFyZSIgbWV0aG9kIGZvciBTdWJzY3JpcHRpb25TYXZlLAorICAgIHdlIGNhbiBzZXQgdGhlIHByb3BlcnR5IHJlcHJlc2VudGVkIGJ5IHRoZSBjaGVja2JveCB0byBmYWxzZS4KKyAgICBJZiB0aGUgY29udHJvbCBpcyBub3Qgc3VibWl0dGVkLCB0aGVuIHRoZSBwcm9wZXJ0eSByZW1haW5zIGZhbHNlLgorICAgIElmIHRoZSBjb250cm9sIGlzIHN1Ym1pdHRlZCwgdGhlbiB0aGUgcHJvcGVydHkgaXMgc2V0IHRvIHRydWUuCis8L3A+CisKKzxoci8+Cis8aDU+U3Vic2NyaXB0aW9uU2F2ZTwvaDU+Cis8cHJlPjxjb2RlPnB1YmxpYyBmaW5hbCBjbGFzcyBTdWJzY3JpcHRpb25TYXZlIGV4dGVuZHMgU3Vic2NyaXB0aW9uIHsKKworICAgIHB1YmxpYyB2b2lkIHByZXBhcmUoKSB7CisgICAgc3VwZXIucHJlcGFyZSgpOworICAgIC8vIGNoZWNrYm94IHdvcmthcm91bmQKKyAgICA8c3Ryb25nPmdldFN1YnNjcmlwdGlvbigpLnNldEF1dG9Db25uZWN0KGZhbHNlKTs8L3N0cm9uZz4KKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICByZXR1cm4gc2F2ZSgpOworICAgIH0KKyAgICB9PC9jb2RlPjwvcHJlPgorPGhyLz4KKworCis8cD4KKyAgICBJZiB3ZSBwcmVzcyB0aGUgU0FWRSBidXR0b24sCisgICAgdGhlIGZvcm0gd2lsbCBiZSBzdWJtaXR0ZWQgdG8gdGhlIFN1YnNjcmlwdGlvblNhdmUgYWN0aW9uLgorICAgIElmIHRoZSB2YWxpZGF0aW9uIHN1Y2NlZWRzLCBhcyB3ZSd2ZSBzZWVuLAorICAgIFN1YnNjcmlwdGlvblNhdmUgd2lsbCBpbnZva2UgdGhlIFN1YnNjcmlwdGlvbi5zYXZlIG1ldGhvZC4KKzwvcD4KKworPGhyLz4KKzxoNT5TdWJzY3JpcHRpb24gc2F2ZSBtZXRob2Q8L2g1PgorPHByZT48Y29kZT5wdWJsaWMgU3RyaW5nIDxzdHJvbmc+c2F2ZTwvc3Ryb25nPigpIHRocm93cyBFeGNlcHRpb24geworCisgICAgaWYgKENvbnN0YW50cy5ERUxFVEUuZXF1YWxzKGdldFRhc2soKSkpIHsKKyAgICA8c3Ryb25nPnJlbW92ZVN1YnNjcmlwdGlvbjwvc3Ryb25nPigpOworICAgIH0KKworICAgIGlmIChDb25zdGFudHMuQ1JFQVRFLmVxdWFscyhnZXRUYXNrKCkpKSB7CisgICAgPHN0cm9uZz5jb3B5U3Vic2NyaXB0aW9uKDwvc3Ryb25nPmdldEhvc3QoKSk7CisgICAgfQorCisgICAgc2F2ZVVzZXIoKTsKKyAgICByZXR1cm4gU1VDQ0VTUzsKKyAgICB9PC9jb2RlPjwvcHJlPgorPGhyLz4KKworPHA+CisgICAgVGhlIDxzdHJvbmc+c2F2ZTwvc3Ryb25nPiBtZXRob2QgdXNlcyB0aGUgVGFzayBwcm9wZXJ0eSB0byBoYW5kbGUKKyAgICB0aGUgc3BlY2lhbCBjYXNlcyBvZiBkZWxldGluZyBhbmQgY3JlYXRpbmcsCisgICAgYW5kIHRoZW4gdXBkYXRlcyB0aGUgc3RhdGUgb2YgdGhlIFVzZXIgb2JqZWN0LgorPC9wPgorCis8cD4KKyAgICBUaGUgPHN0cm9uZz5yZW1vdmVTdWJzY3JpcHRpb248L3N0cm9uZz4gbWV0aG9kIGNhbGxzIHRoZSBEQU8gZmFjYWRlLAorICAgIGFuZCB0aGVuIHVwZGF0ZXMgdGhlIGFwcGxpY2F0aW9uIHN0YXRlLgorPC9wPgorCis8aHIvPgorPGg1PnJlbW92ZVN1YnNjcmlwdGlvbjwvaDU+Cis8cHJlPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+cmVtb3ZlU3Vic2NyaXB0aW9uPC9zdHJvbmc+KCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgZ2V0VXNlcigpLnJlbW92ZVN1YnNjcmlwdGlvbihnZXRTdWJzY3JpcHRpb24oKSk7CisgICAgZ2V0U2Vzc2lvbigpLnJlbW92ZShDb25zdGFudHMuU1VCU0NSSVBUSU9OX0tFWSk7CisgICAgfTwvY29kZT48L3ByZT4KKzxoci8+CisKKzxwPgorICAgIFRoZSA8c3Ryb25nPmNvcHlTdWJzY3JpcHRpb248L3N0cm9uZz4gbWV0aG9kIGlzIGEgYml0IG1vcmUgaW50ZXJlc3RpbmcuCisgICAgVGhlIE1haWxSZWFkZXIgREFPIGxheWVyIEFQSSBpbmNsdWRlcyBzb21lIGltbXV0YWJsZSBmaWVsZHMKKyAgICB0aGF0IGNhbid0IGJlIHNldCBvbmNlIHRoZSBvYmplY3QgaXMgY3JlYXRlZC4KKyAgICBCZWNhdXNlIGtleSBmaWVsZHMgYXJlIGltbXV0YWJsZSwKKyAgICB3ZSBjYW4ndCBqdXN0IGNyZWF0ZSBhIFN1YnNjcmlwdGlvbiwgbGV0IHRoZSBmcmFtZXdvcmsgcG9wdWxhdGUgYWxsIHRoZSBmaWVsZHMsCisgICAgYW5kIHRoZW4gc2F2ZSBpdCB3aGVuIHdlIGFyZSBkb25lIC0tIGJlY2F1c2Ugc29tZSBmaWVsZHMgY2FuJ3QgYmUgcG9wdWxhdGVkLAorICAgIGV4Y2VwdCBhdCBjb25zdHJ1Y3Rpb24uCis8L3A+CisKKzxwPgorICAgIE9uZSB3b3JrYXJvdW5kIHdvdWxkIGJlIHRvIGRlY2xhcmUgcHJvcGVydGllcyBvbiB0aGUgQWN0aW9uCisgICAgZm9yIGFsbCB0aGUgcHJvcGVydGllcyB3ZSBuZWVkIHRvIHBhc3MgdG8gdGhlIFN1YnNjcmlwdGlvbiBvciBVc2VyIG9iamVjdHMuCisgICAgV2hlbiB3ZSBhcmUgcmVhZHkgdG8gY3JlYXRlIHRoZSBvYmplY3QsCisgICAgd2UgY291bGQgcGFzcyB0aGUgbmV3IG9iamVjdCB2YWx1ZXMgZnJvbSB0aGUgQWN0aW9uIHByb3BlcnRpZXMuCis8L3A+CisKKzxwPgorICAgIEFub3RoZXIgd29ya2Fyb3VuZCBpcyB0byBkZWNsYXJlIG9ubHkgdGhlIGltbXV0YWJsZSBwcm9wZXJ0aWVzIG9uIHRoZSBBY3Rpb24sCisgICAgYW5kIHRoZW4gdXNlIHdoYXQgd2UgY2FuIGZyb20gdGhlIGRvbWFpbiBvYmplY3QuCis8L3A+CisKKzxwPgorICAgIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1haWxSZWFkZXIgdXRpbGl6ZXMgdGhlIHNlY29uZCBhbHRlcm5hdGl2ZS4KKyAgICBXZSBkZWZpbmUgVXNlciBhbmQgU3Vic2NyaXB0aW9uIG9iamVjdHMgb24gb3VyIGJhc2UgQWN0aW9uLAorICAgIGFuZCBhZGQgb3RoZXIgcHJvcGVydGllcyBvbmx5IGFzIG5lZWRlZC4KKzwvcD4KKworPHA+CisgICAgVG8gYWRkIGEgbmV3IFN1YnNjcmlwdGlvbiBvciBVc2VyLAorICAgIHdlIGNyZWF0ZSBhIGJsYW5rIG9iamVjdCB0byBjYXB0dXJlIHdoYXRldmVyIGZpZWxkcyB3ZSBjYW4uCisgICAgV2hlbiB0aGlzICJpbnB1dCIgb2JqZWN0IHJldHVybnMsIHdlIGNyZWF0ZSBhIG5ldyBvYmplY3QsCisgICAgc2V0dGluZyB0aGUgaW1tdXRhYmxlIGZpZWxkcyB0byBhcHByb3ByaWF0ZSB2YWx1ZXMsCisgICAgYW5kIGNvcHkgb3ZlciB0aGUgcmVzdCBvZiB0aGUgcHJvcGVydGllcy4KKzwvcD4KKworPGhyLz4KKzxoNT5jb3B5U3Vic2NyaXB0aW9uPC9oNT4KKzxwcmU+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5jb3B5U3Vic2NyaXB0aW9uPC9zdHJvbmc+KFN0cmluZyBob3N0KSB7CisgICAgU3Vic2NyaXB0aW9uIGlucHV0ID0gZ2V0U3Vic2NyaXB0aW9uKCk7CisgICAgU3Vic2NyaXB0aW9uIHN1YiA9IGNyZWF0ZVN1YnNjcmlwdGlvbihob3N0KTsKKyAgICBpZiAobnVsbCAhPSBzdWIpIHsKKyAgICA8c3Ryb25nPkJlYW5VdGlscy5zZXRWYWx1ZXM8L3N0cm9uZz4oc3ViLCBpbnB1dCwgbnVsbCk7CisgICAgc2V0U3Vic2NyaXB0aW9uKHN1Yik7CisgICAgc2V0SG9zdChzdWIuZ2V0SG9zdCgpKTsKKyAgICB9CisgICAgfTwvY29kZT48L3ByZT4KKworPHA+CisgICAgT2YgY291cnNlLCB0aGlzIGlzIG5vdCBhIHByZWZlcnJlZCBzb2x1dGlvbiwKKyAgICBidXQgbWVyZWx5IGEgd2F5IHRvIHdvcmsgYXJvdW5kIGFuIGlzc3VlIGluIHRoZSBNYWlsUmVhZGVyIERBTyBBUEkKKyAgICB0aGF0IHdvdWxkIG5vdCBiZSBlYXN5IGZvciB1cyBjaGFuZ2UuCis8L3A+CisKKzxoMz5TdW1tYXJ5PC9oMz4KKworPHA+CisgICAgQXQgdGhpcyBwb2ludCwgd2UndmUgYm9vdGVkIHRoZSBhcHBsaWNhdGlvbiwgbG9nZ2VkIG9uLAorICAgIHJldmlld2VkIGEgUmVnaXN0cmF0aW9uIHJlY29yZCwgYW5kIGVkaXRlZCBhIFN1YnNjcmlwdGlvbi4KKyAgICBPZiBjb3Vyc2UsIHRoZXJlJ3MgbW9yZSwgYnV0IGZyb20gaGVyZSBvbiwgaXQgaXMgbW9zdGx5IG1vcmUgb2YgdGhlIHNhbWUuCisgICAgVGhlIGZ1bGwgc291cmNlIGNvZGUgZm9yIE1haWxSZWFkZXIgaXMKKyAgICA8YSBocmVmPSJodHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld2N2cy5jZ2kvc3RydXRzL3NhbmRib3gvdHJ1bmsvc3RydXRzMi9hcHBzL21haWxyZWFkZXIvIj5hdmFpbGFibGUgb25saW5lPC9hPgorICAgIGFuZCBpbiB0aGUgZGlzdHJpYnV0aW9uLgorPC9wPgorCis8cD4KKyAgICBFbmpveSEKKzwvcD4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvbWFpbi93ZWJhcHAvc3RydXRzLXBvd2VyLmdpZiBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL3N0cnV0cy1wb3dlci5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY0ZTlkNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL21haW4vd2ViYXBwL3N0cnV0cy1wb3dlci5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL21haWxyZWFkZXItd2lsZG9uZS9zcmMvdGVzdC9qYXZhL21haWxyZWFkZXIyL0NvbmZpZ1Rlc3QuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL3Rlc3QvamF2YS9tYWlscmVhZGVyMi9Db25maWdUZXN0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWJlMTEyNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9tYWlscmVhZGVyLXdpbGRvbmUvc3JjL3Rlc3QvamF2YS9tYWlscmVhZGVyMi9Db25maWdUZXN0LmphdmEKQEAgLTAsMCArMSw2NiBAQAorcGFja2FnZSBtYWlscmVhZGVyMjsNCisNCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuWFdvcmtUZXN0Q2FzZTsNCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uU3VwcG9ydDsNCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuY29uZmlnLlJ1bnRpbWVDb25maWd1cmF0aW9uOw0KK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5jb25maWcuZW50aXRpZXMuQWN0aW9uQ29uZmlnOw0KK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5jb25maWcuZW50aXRpZXMuUmVzdWx0Q29uZmlnOw0KK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5jb25maWcucHJvdmlkZXJzLlhtbENvbmZpZ3VyYXRpb25Qcm92aWRlcjsNCisNCitpbXBvcnQgamF2YS51dGlsLk1hcDsNCisNCitwdWJsaWMgY2xhc3MgQ29uZmlnVGVzdCBleHRlbmRzIFhXb3JrVGVzdENhc2Ugew0KKw0KKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRVcCgpIHRocm93cyBFeGNlcHRpb24gew0KKyAgICAgICAgc3VwZXIuc2V0VXAoKTsNCisgICAgICAgIFhtbENvbmZpZ3VyYXRpb25Qcm92aWRlciBjID0gbmV3IFhtbENvbmZpZ3VyYXRpb25Qcm92aWRlcigic3RydXRzLnhtbCIpOw0KKyAgICAgICAgY29uZmlndXJhdGlvbk1hbmFnZXIuYWRkQ29uZmlndXJhdGlvblByb3ZpZGVyKGMpOw0KKyAgICAgICAgY29uZmlndXJhdGlvbk1hbmFnZXIucmVsb2FkKCk7DQorICAgIH0NCisNCisgICAgcHJpdmF0ZSBBY3Rpb25Db25maWcgYXNzZXJ0Q2xhc3MoU3RyaW5nIGFjdGlvbl9uYW1lLCBTdHJpbmcgY2xhc3NfbmFtZSkgew0KKyAgICAgICAgUnVudGltZUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25NYW5hZ2VyLmdldENvbmZpZ3VyYXRpb24oKS5nZXRSdW50aW1lQ29uZmlndXJhdGlvbigpOw0KKyAgICAgICAgQWN0aW9uQ29uZmlnIGNvbmZpZyA9IGNvbmZpZ3VyYXRpb24uZ2V0QWN0aW9uQ29uZmlnKCIiLCBhY3Rpb25fbmFtZSk7DQorICAgICAgICBhc3NlcnROb3ROdWxsKGNvbmZpZyk7DQorICAgICAgICBhc3NlcnRUcnVlKCJXcm9uZyBjbGFzcyBuYW1lOiBbIiArIGNvbmZpZy5nZXRDbGFzc05hbWUoKSArICJdIiwNCisgICAgICAgICAgICAgICAgY2xhc3NfbmFtZS5lcXVhbHMoY29uZmlnLmdldENsYXNzTmFtZSgpKSk7DQorICAgICAgICByZXR1cm4gY29uZmlnOw0KKyAgICB9DQorDQorICAgIHByaXZhdGUgdm9pZCBhc3NlcnRSZXN1bHQoQWN0aW9uQ29uZmlnIGNvbmZpZywgU3RyaW5nIHJlc3VsdF9uYW1lLCBTdHJpbmcgcmVzdWx0X3ZhbHVlKSB7DQorICAgICAgICBNYXAgcmVzdWx0cyA9IGNvbmZpZy5nZXRSZXN1bHRzKCk7DQorICAgICAgICBSZXN1bHRDb25maWcgcmVzdWx0ID0gKFJlc3VsdENvbmZpZykgcmVzdWx0cy5nZXQocmVzdWx0X25hbWUpOw0KKyAgICAgICAgTWFwIHBhcmFtcyA9IHJlc3VsdC5nZXRQYXJhbXMoKTsNCisgICAgICAgIFN0cmluZyB2YWx1ZSA9IChTdHJpbmcpIHBhcmFtcy5nZXQoImFjdGlvbk5hbWUiKTsNCisgICAgICAgIGlmICh2YWx1ZT09bnVsbCkNCisgICAgICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHBhcmFtcy5nZXQoImxvY2F0aW9uIik7DQorICAgICAgICBhc3NlcnRUcnVlKCJXcm9uZyByZXN1bHQgdmFsdWU6IFsiICsgdmFsdWUgKyAiXSIsDQorICAgICAgICAgICAgICAgIHJlc3VsdF92YWx1ZS5lcXVhbHModmFsdWUpKTsNCisgICAgfQ0KKw0KKyAgICBwdWJsaWMgdm9pZCB0ZXN0U3Vic2NyaXB0aW9uU2F2ZSgpIHRocm93cyBFeGNlcHRpb24gew0KKyAgICAgICAgQWN0aW9uQ29uZmlnIGNvbmZpZyA9IGFzc2VydENsYXNzKCJzdWJzY3JpcHRpb24vVXBkYXRlIiwgIm1haWxyZWFkZXIyLnN1YnNjcmlwdGlvbi5VcGRhdGUiKTsNCisgICAgICAgIGFzc2VydFJlc3VsdChjb25maWcsIEFjdGlvblN1cHBvcnQuU1VDQ0VTUywgInJlZ2lzdHJhdGlvbi8rSW5wdXQiKTsNCisgICAgICAgIGFzc2VydFJlc3VsdChjb25maWcsIEFjdGlvblN1cHBvcnQuSU5QVVQsICIvcGFnZXMvc3Vic2NyaXB0aW9uLmpzcCIpOw0KKyAgICB9DQorDQorICAgIC8vICovISoNCisgICAgcHVibGljIHZvaWQgdGVzdFByZXBhcmVXaWxkY2FyZCgpIHRocm93cyBFeGNlcHRpb24gew0KKyAgICAgICAgQWN0aW9uQ29uZmlnIGNvbmZpZyA9IGFzc2VydENsYXNzKCJsb2dvbi8rSW5wdXQiLCAibWFpbHJlYWRlcjIubG9nb24uSW5wdXQiKTsNCisgICAgICAgIGFzc2VydFJlc3VsdChjb25maWcsIEFjdGlvblN1cHBvcnQuU1VDQ0VTUywgIi9wYWdlcy9sb2dvbi5qc3AiKTsNCisgICAgfQ0KKw0KKyAgICAvLyAqLyoNCisgICAgcHVibGljIHZvaWQgdGVzdEV4ZWN1dGVXaWxkY2FyZCgpIHRocm93cyBFeGNlcHRpb24gew0KKyAgICAgICAgQWN0aW9uQ29uZmlnIGNvbmZpZyA9IGFzc2VydENsYXNzKCJyZWdpc3RyYXRpb24vVXBkYXRlIiwgIm1haWxyZWFkZXIyLnJlZ2lzdHJhdGlvbi5VcGRhdGUiKTsNCisgICAgICAgIGFzc2VydFJlc3VsdChjb25maWcsIEFjdGlvblN1cHBvcnQuSU5QVVQsICIvcGFnZXMvcmVnaXN0cmF0aW9uLmpzcCIpOw0KKyAgICAgICAgQWN0aW9uQ29uZmlnIGNvbmZpZzIgPSBhc3NlcnRDbGFzcygibG9nb24vUmV0cmlldmUiLCAibWFpbHJlYWRlcjIubG9nb24uUmV0cmlldmUiKTsNCisgICAgICAgIGFzc2VydFJlc3VsdChjb25maWcyLCBBY3Rpb25TdXBwb3J0LklOUFVULCAiL3BhZ2VzL2xvZ29uLmpzcCIpOw0KKyAgICB9DQorDQorICAgIC8vIHNpbmdsZSB3aWxkY2FyZA0KKyAgICBwdWJsaWMgdm9pZCB0ZXN0RGlzcGxheVdpbGRjYXJkKCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorICAgICAgICBhc3NlcnRDbGFzcygiV2VsY29tZSIsICJtYWlscmVhZGVyMi5XZWxjb21lIik7DQorICAgIH0NCisNCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvcG9tLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3BvbS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UwMzU0NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3BvbS54bWwKQEAgLTAsMCArMSw1OCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwcm9qZWN0IHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCisgICAgICAgICB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9tYXZlbi12NF8wXzAueHNkIj4KKyAgICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisgICAgPHBhcmVudD4KKyAgICAgIDxncm91cElkPm9yZy5hcGFjaGUuc3RydXRzPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+c3RydXRzMi1hcHBzPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+Mi4wLjAtU05BUFNIT1Q8L3ZlcnNpb24+CisgICAgPC9wYXJlbnQ+CisgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5zdHJ1dHM8L2dyb3VwSWQ+CisgICAgPGFydGlmYWN0SWQ+c3RydXRzMi1zaG9wcGluZy1jYXJ0PC9hcnRpZmFjdElkPgorICAgIDxwYWNrYWdpbmc+d2FyPC9wYWNrYWdpbmc+CisgICAgPG5hbWU+U2hvcHBpbmcgQ2FydCBXZWJhcHA8L25hbWU+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIAorICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICA8Z3JvdXBJZD5qYXZheC5zZXJ2bGV0PC9ncm91cElkPgorICAgICAgICAgPGFydGlmYWN0SWQ+c2VydmxldC1hcGk8L2FydGlmYWN0SWQ+CisgICAgICAgICA8dmVyc2lvbj4yLjQ8L3ZlcnNpb24+CisgICAgICAgICA8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgorICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgCisgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICA8Z3JvdXBJZD5vcGVuc3ltcGhvbnk8L2dyb3VwSWQ+CisgICAgICAgICAgPGFydGlmYWN0SWQ+c2l0ZW1lc2g8L2FydGlmYWN0SWQ+CisgICAgICAgICAgPHZlcnNpb24+Mi4yLjE8L3ZlcnNpb24+CisgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICAKKyAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICAgICAgPGdyb3VwSWQ+dWsubHRkLmdldGFoZWFkPC9ncm91cElkPgorICAgICAgICAgICAgPGFydGlmYWN0SWQ+ZHdyPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgPHZlcnNpb24+MS4xLWJldGEtMzwvdmVyc2lvbj4KKyAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgICAgICAgICAKKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICAKKyAgICAKKyAgICAKKyAgICA8YnVpbGQ+CisgICAgICAgIDxwbHVnaW5zPgorICAgICAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcubW9ydGJheS5qZXR0eTwvZ3JvdXBJZD4KKyAgICAgICAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1qZXR0eTYtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICAgICAgICA8c2NhbkludGVydmFsU2Vjb25kcz4xMDwvc2NhbkludGVydmFsU2Vjb25kcz4KKyAgICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgICAgICAgICAgICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmdlcm9uaW1vLnNwZWNzPC9ncm91cElkPgorICAgICAgICAgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+Z2Vyb25pbW8tajJlZV8xLjRfc3BlYzwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxzY29wZT5wcm92aWRlZDwvc2NvcGU+CisgICAgICAgICAgICAgICAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgICAgICAgICAgICA8L2RlcGVuZGVuY2llcz4KKyAgICAgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8L3BsdWdpbnM+CisgICAgPC9idWlsZD4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9hY3Rpb25zL0Fic3RyYWN0TW9kaWZ5Q2FydEFjdGlvbi12YWxpZGF0aW9uLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9hY3Rpb25zL0Fic3RyYWN0TW9kaWZ5Q2FydEFjdGlvbi12YWxpZGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YWJhMGM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZXhhbXBsZS9hamF4L2FjdGlvbnMvQWJzdHJhY3RNb2RpZnlDYXJ0QWN0aW9uLXZhbGlkYXRpb24ueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSB2YWxpZGF0b3JzIFBVQkxJQyAiLS8vT3BlblN5bXBob255IEdyb3VwLy9YV29yayBWYWxpZGF0b3IgMS4wLjIvL0VOIiAiaHR0cDovL3d3dy5vcGVuc3ltcGhvbnkuY29tL3h3b3JrL3h3b3JrLXZhbGlkYXRvci0xLjAuMi5kdGQiPgorPHZhbGlkYXRvcnM+CisgICAgPGZpZWxkIG5hbWU9InByb2R1Y3RJZCI+CisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWQiPgorICAgICAgICAgICAgPG1lc3NhZ2U+WW91IG11c3Qgc2VsZWN0IGEgcHJvZHVjdC48L21lc3NhZ2U+CisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPgorICAgIDwvZmllbGQ+CisgICAgPGZpZWxkIG5hbWU9InF1YW50aXR5Ij4KKyAgICAgICAgPGZpZWxkLXZhbGlkYXRvciB0eXBlPSJpbnQiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1pbiI+MDwvcGFyYW0+CisgICAgICAgICAgICA8bWVzc2FnZT5UaGUgcXVhbnRpdHkgY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvLjwvbWVzc2FnZT4KKyAgICAgICAgPC9maWVsZC12YWxpZGF0b3I+CisgICAgPC9maWVsZD4KKzwvdmFsaWRhdG9ycz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9hY3Rpb25zL0Fic3RyYWN0TW9kaWZ5Q2FydEFjdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZXhhbXBsZS9hamF4L2FjdGlvbnMvQWJzdHJhY3RNb2RpZnlDYXJ0QWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU2NTA4ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9hY3Rpb25zL0Fic3RyYWN0TW9kaWZ5Q2FydEFjdGlvbi5qYXZhCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiAkSWQkCisgKgorICogQ29weXJpZ2h0IDIwMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmFjdGlvbnM7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmNhdGFsb2cuQ2F0YWxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmNhdGFsb2cuUHJvZHVjdDsKKworLyoqCisgKiBBYnN0cmFjdE1vZGlmeUNhcnRBY3Rpb24KKyAqCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdE1vZGlmeUNhcnRBY3Rpb24gZXh0ZW5kcyBTaG93Q2FydCB7CisgICAgcHJvdGVjdGVkIGludCBxdWFudGl0eTsKKyAgICBwcml2YXRlIEludGVnZXIgcHJvZHVjdElkOworICAgIHByb3RlY3RlZCBQcm9kdWN0IHByb2R1Y3Q7CisgICAgcHJvdGVjdGVkIENhdGFsb2cgY2F0YWxvZzsKKworICAgIHB1YmxpYyB2b2lkIHNldENhdGFsb2coQ2F0YWxvZyBjYXRhbG9nKSB7CisgICAgICAgIHRoaXMuY2F0YWxvZyA9IGNhdGFsb2c7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UXVhbnRpdHkoaW50IHF1YW50aXR5KSB7CisgICAgICAgIHRoaXMucXVhbnRpdHkgPSBxdWFudGl0eTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldFF1YW50aXR5KCkgeworICAgICAgICByZXR1cm4gcXVhbnRpdHk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UHJvZHVjdElkKEludGVnZXIgcHJvZHVjdElkKSB7CisgICAgICAgIHRoaXMucHJvZHVjdElkID0gcHJvZHVjdElkOworICAgIH0KKworICAgIHB1YmxpYyBJbnRlZ2VyIGdldFByb2R1Y3RJZCgpIHsKKyAgICAgICAgcmV0dXJuIHByb2R1Y3RJZDsKKyAgICB9CisKKyAgICBwdWJsaWMgUHJvZHVjdCBnZXRQcm9kdWN0KCkgeworICAgICAgICByZXR1cm4gcHJvZHVjdDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCB2YWxpZGF0ZSgpIHsKKyAgICAgICAgaWYgKHByb2R1Y3RJZCAhPSBudWxsKSB7CisgICAgICAgICAgICBwcm9kdWN0ID0gY2F0YWxvZy5maW5kUHJvZHVjdEJ5SWQocHJvZHVjdElkKTsKKyAgICAgICAgICAgIGlmIChwcm9kdWN0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhZGRGaWVsZEVycm9yKCJwcm9kdWN0SWQiLCAiVGhlcmUgaXMgbm8gcHJvZHVjdCAnIiArIHByb2R1Y3RJZCArICInIGluIHRoZSBjYXRhbG9nICIgKyBjYXRhbG9nLmdldE5hbWUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9leGFtcGxlL2FqYXgvYWN0aW9ucy9BY3RpdmVDYXRlZ29yeS5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZXhhbXBsZS9hamF4L2FjdGlvbnMvQWN0aXZlQ2F0ZWdvcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MmRjZmY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZXhhbXBsZS9hamF4L2FjdGlvbnMvQWN0aXZlQ2F0ZWdvcnkuamF2YQpAQCAtMCwwICsxLDc0IEBACisvKgorICogJElkJAorICoKKyAqIENvcHlyaWdodCAyMDA2IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLmV4YW1wbGUuYWpheC5hY3Rpb25zOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmV4YW1wbGUuYWpheC5jYXJ0LlNob3BwaW5nQ2FydDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmNhdGFsb2cuQ2F0YWxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmNhdGFsb2cuQ2F0ZWdvcnk7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmludGVyY2VwdG9yLlNlc3Npb25Bd2FyZTsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25TdXBwb3J0OworCitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworLyoqCisgKiBBY3RpdmVDYXRlZ29yeQorICoKKyAqLworcHVibGljIGNsYXNzIEFjdGl2ZUNhdGVnb3J5IGV4dGVuZHMgQWN0aW9uU3VwcG9ydCBpbXBsZW1lbnRzIFNlc3Npb25Bd2FyZSB7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUNUSVZFX0NBVEVHT1JZX0lEID0gImNhdGFsb2dfYWN0aXZlQ2F0ZWdvcnlJZCI7CisgICAgcHJpdmF0ZSBNYXAgc2Vzc2lvbjsKKyAgICBwcml2YXRlIENhdGVnb3J5IGNhdGVnb3J5OworICAgIHByaXZhdGUgQ2F0YWxvZyBjYXRhbG9nOworICAgIHByaXZhdGUgU2hvcHBpbmdDYXJ0IGNhcnQ7CisKKyAgICBwdWJsaWMgdm9pZCBzZXRTZXNzaW9uKE1hcCBzZXNzaW9uKSB7CisgICAgICAgIHRoaXMuc2Vzc2lvbiA9IHNlc3Npb247CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Q2F0YWxvZyhDYXRhbG9nIGNhdGFsb2cpIHsKKyAgICAgICAgdGhpcy5jYXRhbG9nID0gY2F0YWxvZzsKKyAgICB9CisKKyAgICBwdWJsaWMgQ2F0YWxvZyBnZXRDYXRhbG9nKCkgeworICAgICAgICByZXR1cm4gY2F0YWxvZzsKKyAgICB9CisKKyAgICBwdWJsaWMgSW50ZWdlciBnZXRDYXRlZ29yeUlkKCkgeworICAgICAgICByZXR1cm4gKEludGVnZXIpIHNlc3Npb24uZ2V0KEFDVElWRV9DQVRFR09SWV9JRCk7CisgICAgfQorCisgICAgcHVibGljIENhdGVnb3J5IGdldENhdGVnb3J5KCkgeworICAgICAgICByZXR1cm4gY2F0ZWdvcnk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBleGVjdXRlKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIEludGVnZXIgY2F0ZWdvcnlJZCA9IGdldENhdGVnb3J5SWQoKTsKKyAgICAgICAgaWYgKGNhdGVnb3J5SWQgIT0gbnVsbCkgeworICAgICAgICAgICAgY2F0ZWdvcnkgPSBjYXRhbG9nLmZpbmRDYXRlZ29yeUZvcklkKGNhdGVnb3J5SWQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFNob3BwaW5nQ2FydChTaG9wcGluZ0NhcnQgY2FydCkgeworICAgICAgICB0aGlzLmNhcnQgPSBjYXJ0OworICAgIH0KKworICAgIHB1YmxpYyBTaG9wcGluZ0NhcnQgZ2V0Q2FydCgpIHsKKyAgICAgICAgcmV0dXJuIGNhcnQ7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZXhhbXBsZS9hamF4L2FjdGlvbnMvU2V0QWN0aXZlQ2F0ZWdvcnkuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9hY3Rpb25zL1NldEFjdGl2ZUNhdGVnb3J5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc3OTRjZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9hY3Rpb25zL1NldEFjdGl2ZUNhdGVnb3J5LmphdmEKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBDb3B5cmlnaHQgMjAwNiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5leGFtcGxlLmFqYXguYWN0aW9uczsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzMi5pbnRlcmNlcHRvci5TZXNzaW9uQXdhcmU7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uU3VwcG9ydDsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKKworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKKy8qKgorICogU2V0QWN0aXZlQ2F0ZWdvcnkKKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBTZXRBY3RpdmVDYXRlZ29yeSBleHRlbmRzIEFjdGlvblN1cHBvcnQgaW1wbGVtZW50cyBTZXNzaW9uQXdhcmUgeworICAgIHByaXZhdGUgTWFwIHNlc3Npb247CisgICAgcHJpdmF0ZSBJbnRlZ2VyIGNhdGVnb3J5SWQ7CisgICAgcHJpdmF0ZSBzdGF0aWMgTG9nIExPRyA9IExvZ0ZhY3RvcnkuZ2V0TG9nKFNldEFjdGl2ZUNhdGVnb3J5LmNsYXNzKTsKKworICAgIHB1YmxpYyB2b2lkIHNldFNlc3Npb24oTWFwIHNlc3Npb24pIHsKKyAgICAgICAgdGhpcy5zZXNzaW9uID0gc2Vzc2lvbjsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRDYXRlZ29yeUlkKEludGVnZXIgY2F0ZWdvcnlJZCkgeworICAgICAgICB0aGlzLmNhdGVnb3J5SWQgPSBjYXRlZ29yeUlkOworICAgIH0KKworICAgIHB1YmxpYyBJbnRlZ2VyIGdldENhdGVnb3J5SWQoKSB7CisgICAgICAgIHJldHVybiBjYXRlZ29yeUlkOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZXhlY3V0ZSgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBMT0cuZGVidWcoIlNldHRpbmcgdGhlIGFjdGl2ZSBjYXRlZ29yeSB0byAiICsgY2F0ZWdvcnlJZCk7CisgICAgICAgIGlmIChjYXRlZ29yeUlkICE9IG51bGwpIHsKKyAgICAgICAgICAgIHNlc3Npb24ucHV0KEFjdGl2ZUNhdGVnb3J5LkFDVElWRV9DQVRFR09SWV9JRCwgY2F0ZWdvcnlJZCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBzZXNzaW9uLnJlbW92ZShBY3RpdmVDYXRlZ29yeS5BQ1RJVkVfQ0FURUdPUllfSUQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9hY3Rpb25zL1Nob3dDYXJ0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9leGFtcGxlL2FqYXgvYWN0aW9ucy9TaG93Q2FydC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1ZmQ3MTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9leGFtcGxlL2FqYXgvYWN0aW9ucy9TaG93Q2FydC5qYXZhCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiAkSWQkCisgKgorICogQ29weXJpZ2h0IDIwMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmFjdGlvbnM7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmNhcnQuU2hvcHBpbmdDYXJ0OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvblN1cHBvcnQ7CisKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworLyoqCisgKiBTaG93Q2FydAorICoKKyAqLworcHVibGljIGNsYXNzIFNob3dDYXJ0IGV4dGVuZHMgQWN0aW9uU3VwcG9ydCB7CisgICAgcHJpdmF0ZSBTaG9wcGluZ0NhcnQgY2FydDsKKworICAgIHB1YmxpYyB2b2lkIHNldFNob3BwaW5nQ2FydChTaG9wcGluZ0NhcnQgY2FydCkgeworICAgICAgICB0aGlzLmNhcnQgPSBjYXJ0OworICAgIH0KKworICAgIHB1YmxpYyBTaG9wcGluZ0NhcnQgZ2V0Q2FydCgpIHsKKyAgICAgICAgcmV0dXJuIGNhcnQ7CisgICAgfQorCisgICAgcHVibGljIGludCBnZXROdW1DYXJ0SXRlbXMoKSB7CisgICAgICAgIFNob3BwaW5nQ2FydCBjYXJ0ID0gZ2V0Q2FydCgpOworICAgICAgICBpZiAoKGNhcnQgPT0gbnVsbCkgfHwgKGNhcnQuZ2V0Q29udGVudHMoKSA9PSBudWxsKSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgU2V0IGNvbnRlbnRzID0gY2FydC5nZXRDb250ZW50cygpOworICAgICAgICBpbnQgbnVtYmVyID0gMDsKKyAgICAgICAgZm9yKCBJdGVyYXRvciBpPWNvbnRlbnRzLml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOyApIHsKKyAgICAgICAgICAgIFNob3BwaW5nQ2FydC5DYXJ0RW50cnkgZW50cnkgPSAoU2hvcHBpbmdDYXJ0LkNhcnRFbnRyeSlpLm5leHQoKTsKKyAgICAgICAgICAgIG51bWJlciArPSBlbnRyeS5nZXRRdWFudGl0eSgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudW1iZXI7CisgICAgfQorCisgICAgcHVibGljIGRvdWJsZSBnZXRDYXJ0VG90YWwoKSB7CisgICAgICAgIFNob3BwaW5nQ2FydCBjYXJ0ID0gZ2V0Q2FydCgpOworICAgICAgICBpZiAoKGNhcnQgPT0gbnVsbCkgfHwgKGNhcnQuZ2V0Q29udGVudHMoKSA9PSBudWxsKSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgZG91YmxlIHRvdGFsID0gMC4wOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGl0ZXJhdG9yID0gY2FydC5nZXRDb250ZW50cygpLml0ZXJhdG9yKCk7IGl0ZXJhdG9yLmhhc05leHQoKTspIHsKKyAgICAgICAgICAgIFNob3BwaW5nQ2FydC5DYXJ0RW50cnkgY2FydEVudHJ5ID0gKFNob3BwaW5nQ2FydC5DYXJ0RW50cnkpIGl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgICAgIHRvdGFsICs9IChjYXJ0RW50cnkuZ2V0UXVhbnRpdHkoKSAqIGNhcnRFbnRyeS5nZXRQcm9kdWN0KCkuZ2V0UHJpY2UoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRvdGFsOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9hY3Rpb25zL1Nob3dDYXRhbG9nLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9leGFtcGxlL2FqYXgvYWN0aW9ucy9TaG93Q2F0YWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4OWY1MGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9leGFtcGxlL2FqYXgvYWN0aW9ucy9TaG93Q2F0YWxvZy5qYXZhCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiAkSWQkCisgKgorICogQ29weXJpZ2h0IDIwMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmFjdGlvbnM7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmNhdGFsb2cuQ2F0YWxvZzsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrMi5BY3Rpb25TdXBwb3J0OworCisvKioKKyAqIFNob3dDYXRhbG9nCisgKgorICovCitwdWJsaWMgY2xhc3MgU2hvd0NhdGFsb2cgZXh0ZW5kcyBBY3Rpb25TdXBwb3J0IHsKKyAgICBwcm90ZWN0ZWQgQ2F0YWxvZyBjYXRhbG9nOworCisgICAgcHVibGljIHZvaWQgc2V0Q2F0YWxvZyhDYXRhbG9nIGNhdGFsb2cpIHsKKyAgICAgICAgdGhpcy5jYXRhbG9nID0gY2F0YWxvZzsKKyAgICB9CisKKyAgICBwdWJsaWMgQ2F0YWxvZyBnZXRDYXRhbG9nKCkgeworICAgICAgICByZXR1cm4gY2F0YWxvZzsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9leGFtcGxlL2FqYXgvYWN0aW9ucy9VcGRhdGVRdWFudGl0eUluQ2FydC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZXhhbXBsZS9hamF4L2FjdGlvbnMvVXBkYXRlUXVhbnRpdHlJbkNhcnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTg3YTY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZXhhbXBsZS9hamF4L2FjdGlvbnMvVXBkYXRlUXVhbnRpdHlJbkNhcnQuamF2YQpAQCAtMCwwICsxLDM0IEBACisvKgorICogJElkJAorICoKKyAqIENvcHlyaWdodCAyMDA2IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLmV4YW1wbGUuYWpheC5hY3Rpb25zOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmV4YW1wbGUuYWpheC5jYXJ0LlNob3BwaW5nQ2FydDsKKworLyoqCisgKiBVcGRhdGVRdWFudGl0eUluQ2FydAorICoKKyAqLworcHVibGljIGNsYXNzIFVwZGF0ZVF1YW50aXR5SW5DYXJ0IGV4dGVuZHMgQWJzdHJhY3RNb2RpZnlDYXJ0QWN0aW9uIHsKKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgU2hvcHBpbmdDYXJ0IGNhcnQgPSBnZXRDYXJ0KCk7CisgICAgICAgIGlmIChjYXJ0ICE9IG51bGwpIHsKKyAgICAgICAgICAgIGNhcnQuc2V0UXVhbnRpdHkocXVhbnRpdHksIHByb2R1Y3QpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBOT05FOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9jYXJ0L0RlZmF1bHRDYXJ0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9leGFtcGxlL2FqYXgvY2FydC9EZWZhdWx0Q2FydC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4MDk2NmUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9leGFtcGxlL2FqYXgvY2FydC9EZWZhdWx0Q2FydC5qYXZhCkBAIC0wLDAgKzEsMTAxIEBACisvKgorICogJElkJAorICoKKyAqIENvcHlyaWdodCAyMDA2IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLmV4YW1wbGUuYWpheC5jYXJ0OworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMyLmV4YW1wbGUuYWpheC5jYXRhbG9nLlByb2R1Y3Q7CisKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKKy8qKgorICogRGVmYXVsdENhcnQKKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBEZWZhdWx0Q2FydCBpbXBsZW1lbnRzIFNob3BwaW5nQ2FydCB7CisgICAgTWFwIGNvbnRlbnRzID0gbmV3IEhhc2hNYXAoKTsKKworICAgIHB1YmxpYyB2b2lkIGFkZFRvQ2FydChpbnQgcXVhbnRpdHksIFByb2R1Y3QgcHJvZHVjdCkgeworICAgICAgICBDYXJ0RW50cnkgZW50cnkgPSAoQ2FydEVudHJ5KSBjb250ZW50cy5nZXQocHJvZHVjdCk7CisgICAgICAgIGlmIChlbnRyeSA9PSBudWxsKSB7CisgICAgICAgICAgICBlbnRyeSA9IG5ldyBEZWZhdWx0Q2FydEVudHJ5KHF1YW50aXR5LCBwcm9kdWN0KTsKKyAgICAgICAgICAgIGNvbnRlbnRzLnB1dChwcm9kdWN0LCBlbnRyeSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlbnRyeS5zZXRRdWFudGl0eShlbnRyeS5nZXRRdWFudGl0eSgpICsgcXVhbnRpdHkpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UXVhbnRpdHkoaW50IHF1YW50aXR5LCBQcm9kdWN0IHByb2R1Y3QpIHsKKyAgICAgICAgaWYgKHF1YW50aXR5IDw9IDApIHsKKyAgICAgICAgICAgIGNvbnRlbnRzLnJlbW92ZShwcm9kdWN0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBDYXJ0RW50cnkgZW50cnkgPSAoQ2FydEVudHJ5KSBjb250ZW50cy5nZXQocHJvZHVjdCk7CisgICAgICAgIGlmIChlbnRyeSA9PSBudWxsKSB7CisgICAgICAgICAgICBlbnRyeSA9IG5ldyBEZWZhdWx0Q2FydEVudHJ5KHF1YW50aXR5LCBwcm9kdWN0KTsKKyAgICAgICAgICAgIGNvbnRlbnRzLnB1dChwcm9kdWN0LCBlbnRyeSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBlbnRyeS5zZXRRdWFudGl0eShxdWFudGl0eStlbnRyeS5nZXRRdWFudGl0eSgpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUZyb21DYXJ0KFByb2R1Y3QgcHJvZHVjdCkgeworICAgICAgICBjb250ZW50cy5yZW1vdmUocHJvZHVjdCk7CisgICAgfQorCisgICAgcHVibGljIFNldCBnZXRDb250ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIG5ldyBIYXNoU2V0KGNvbnRlbnRzLnZhbHVlcygpKTsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldFF1YW50aXR5Rm9yUHJvZHVjdChQcm9kdWN0IHByb2R1Y3QpIHsKKyAgICAgICAgQ2FydEVudHJ5IGVudHJ5ID0gKENhcnRFbnRyeSkgY29udGVudHMuZ2V0KHByb2R1Y3QpOworICAgICAgICBpZiAoZW50cnkgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVudHJ5LmdldFF1YW50aXR5KCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuICJEZWZhdWx0Q2FydHsiICsKKyAgICAgICAgICAgICAgICAiY29udGVudHM9IiArIGNvbnRlbnRzICsKKyAgICAgICAgICAgICAgICAifSI7CisgICAgfQorCisgICAgY2xhc3MgRGVmYXVsdENhcnRFbnRyeSBpbXBsZW1lbnRzIENhcnRFbnRyeSB7CisgICAgICAgIHByaXZhdGUgaW50IHF1YW50aXR5OworICAgICAgICBwcml2YXRlIFByb2R1Y3QgcHJvZHVjdDsKKworICAgICAgICBwdWJsaWMgRGVmYXVsdENhcnRFbnRyeShpbnQgcXVhbnRpdHksIFByb2R1Y3QgcHJvZHVjdCkgeworICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IHF1YW50aXR5OworICAgICAgICAgICAgdGhpcy5wcm9kdWN0ID0gcHJvZHVjdDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBpbnQgZ2V0UXVhbnRpdHkoKSB7CisgICAgICAgICAgICByZXR1cm4gcXVhbnRpdHk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBzZXRRdWFudGl0eShpbnQgcXVhbnRpdHkpIHsKKyAgICAgICAgICAgIHRoaXMucXVhbnRpdHkgPSBxdWFudGl0eTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBQcm9kdWN0IGdldFByb2R1Y3QoKSB7CisgICAgICAgICAgICByZXR1cm4gcHJvZHVjdDsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9jYXJ0L1Nob3BwaW5nQ2FydC5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZXhhbXBsZS9hamF4L2NhcnQvU2hvcHBpbmdDYXJ0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRkYTBmOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9jYXJ0L1Nob3BwaW5nQ2FydC5qYXZhCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiAkSWQkCisgKgorICogQ29weXJpZ2h0IDIwMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmNhcnQ7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmNhdGFsb2cuUHJvZHVjdDsKKworaW1wb3J0IGphdmEudXRpbC5TZXQ7CitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CisKKy8qKgorICogU2hvcHBpbmdDYXJ0CisgKgorICovCitwdWJsaWMgaW50ZXJmYWNlIFNob3BwaW5nQ2FydCBleHRlbmRzIFNlcmlhbGl6YWJsZSB7CisgICAgLyoqCisgICAgICogQWRkcyB0aGUgc3BlY2lmaWVkIHF1YW50aXR5IG9mIHRoZSBnaXZlbiB7QGxpbmsgUHJvZHVjdH0gdG8gdGhlIHNob3BwaW5nIGNhcnQuIFRoaXMgd2lsbCBhZGQgdG8gYW55CisgICAgICogZXhpc3RpbmcgcXVhbnRpdHkgb2YgdGhpcyB7QGxpbmsgUHJvZHVjdH0gaW4gdGhlIGNhcnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcXVhbnRpdHkgdGhlIHF1YW50aXR5IHRvIGFkZCB0byB0aGUgY2FydAorICAgICAqIEBwYXJhbSBwcm9kdWN0ICB0aGUge0BsaW5rIFByb2R1Y3R9IHRvIGFkZCB0aGUgcXVhbnRpdHkgb2YKKyAgICAgKi8KKyAgICB2b2lkIGFkZFRvQ2FydChpbnQgcXVhbnRpdHksIFByb2R1Y3QgcHJvZHVjdCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBxdWFudGl0eSBvZiB0aGUgc3BlY2lmZWQge0BsaW5rIFByb2R1Y3R9IGluIHRoZSBzaG9wcGluZyBjYXJ0LiBJZiB0aGUge0BsaW5rIFByb2R1Y3R9IGRvZXMgbm90CisgICAgICogZXhpc3QgaW4gdGhlIENhcnQsIGl0IGlzIGFkZGVkLgorICAgICAqCisgICAgICogQHBhcmFtIHF1YW50aXR5IHRoZSBxdWFudGl0eSB0byBzZXQgaW4gdGhlIGNhcnQgZm9yIHRoZSB7QGxpbmsgUHJvZHVjdH0KKyAgICAgKiBAcGFyYW0gcHJvZHVjdCAgdGhlIHtAbGluayBQcm9kdWN0fSB0byBzZXQgdGhlIHF1YW50aXR5IGZvcgorICAgICAqLworICAgIHZvaWQgc2V0UXVhbnRpdHkoaW50IHF1YW50aXR5LCBQcm9kdWN0IHByb2R1Y3QpOworCisgICAgLyoqCisgICAgICogUmVtb3ZlcyB0aGUgZ2l2ZW4ge0BsaW5rIFByb2R1Y3R9IGZyb20gdGhlIENhcnQKKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9kdWN0IHRoZSB7QGxpbmsgUHJvZHVjdH0gdG8gcmVtb3ZlIGZyb20gdGhlIENhcnQKKyAgICAgKi8KKyAgICB2b2lkIHJlbW92ZUZyb21DYXJ0KFByb2R1Y3QgcHJvZHVjdCk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSB7QGxpbmsgamF2YS51dGlsLkxpc3R9IG9mIHtAbGluayBDYXJ0RW50cnl9IG9iamVjdHMgaW4gdGhlIGNhcnQKKyAgICAgKgorICAgICAqIEByZXR1cm4gYSB7QGxpbmsgamF2YS51dGlsLkxpc3R9IG9mIHtAbGluayBDYXJ0RW50cnl9IG9iamVjdHMgaW4gdGhlIENhcnQuIFdpbGwgbm90IHJldHVybiBudWxsLgorICAgICAqLworICAgIFNldCBnZXRDb250ZW50cygpOworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBxdWFudGl0eSBvZiB0aGUgcHJvZHVjdCBpbiB0aGUgc2hvcHBpbmcgY2FydAorICAgICAqCisgICAgICogQHBhcmFtIHByb2R1Y3QKKyAgICAgKiBAcmV0dXJuIHRoZSBxdWFudGl0eSwgb3IgMCBpZiB0aGUgcHJvZHVjdCBpcyBub3QgaW4gdGhlIGNhcnQKKyAgICAgKi8KKyAgICBpbnQgZ2V0UXVhbnRpdHlGb3JQcm9kdWN0KFByb2R1Y3QgcHJvZHVjdCk7CisKKyAgICBpbnRlcmZhY2UgQ2FydEVudHJ5IHsKKyAgICAgICAgaW50IGdldFF1YW50aXR5KCk7CisKKyAgICAgICAgUHJvZHVjdCBnZXRQcm9kdWN0KCk7CisKKyAgICAgICAgdm9pZCBzZXRRdWFudGl0eShpbnQgcXVhbnRpdHkpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9jYXRhbG9nL0NhdGFsb2cuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9jYXRhbG9nL0NhdGFsb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODc1M2NjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZXhhbXBsZS9hamF4L2NhdGFsb2cvQ2F0YWxvZy5qYXZhCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiAkSWQkCisgKgorICogQ29weXJpZ2h0IDIwMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmNhdGFsb2c7CisKK2ltcG9ydCBqYXZhLnV0aWwuU2V0OworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworCisvKioKKyAqIENhdGFsb2cKKyAqCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgQ2F0YWxvZyBleHRlbmRzIElkZW50aWZpYWJsZSwgU2VyaWFsaXphYmxlIHsKKyAgICAvKioKKyAgICAgKiBHZXQgYSBTZXQgb2YgYWxsIHtAbGluayBDYXRlZ29yeX1zIGluIHRoaXMgQ2F0YWxvZy4KKyAgICAgKi8KKyAgICBTZXQgZmluZEFsbENhdGVnb3JpZXMoKTsKKworICAgIC8qKgorICAgICAqIEdldCBhIFNldCBvZiBhbGwge0BsaW5rIFByb2R1Y3R9cyBpbiB0aGlzIENhdGFsb2cuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFsbCB7QGxpbmsgUHJvZHVjdH1zIGluIHRoaXMgQ2F0YWxvZy4gV2lsbCBub3QgYmUgbnVsbC4KKyAgICAgKi8KKyAgICBTZXQgZmluZEFsbFByb2R1Y3RzKCk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHtAbGluayBDYXRlZ29yeX0gZm9yIHRoZSBnaXZlbiBJZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpZCB0aGUgQ2F0ZWdvcnkgSWQKKyAgICAgKiBAcmV0dXJuIHRoZSB7QGxpbmsgQ2F0ZWdvcnl9IGZvciB0aGlzIElkLCBvciBudWxsIGlmIG5vbmUgZXhpc3RzLgorICAgICAqLworICAgIENhdGVnb3J5IGZpbmRDYXRlZ29yeUZvcklkKEludGVnZXIgaWQpOworCisgICAgLyoqCisgICAgICogRmluZCB0aGUge0BsaW5rIFByb2R1Y3R9IGZvciB0aGUgZ2l2ZW4gSWQKKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9kdWN0SWQgdGhlIFByb2R1Y3QgaWQKKyAgICAgKiBAcmV0dXJuIHRoZSB7QGxpbmsgUHJvZHVjdH0gZm9yIHRoaXMgSWQsIG9yIG51bGwgaWYgbm9uZSBleGlzdHMuCisgICAgICovCisgICAgUHJvZHVjdCBmaW5kUHJvZHVjdEJ5SWQoSW50ZWdlciBwcm9kdWN0SWQpOworCisKKyAgICAvKioKKyAgICAgKiBGaW5kIGFsbCB7QGxpbmsgUHJvZHVjdH1zIGZvciB0aGUgZ2l2ZW4ge0BsaW5rIENhdGVnb3J5fQorICAgICAqCisgICAgICogQHBhcmFtIGNhdGVnb3J5IHRoZSBjYXRlZ29yeSBvZiBwcm9kdWN0cyB0byByZXR1cm4KKyAgICAgKiBAcmV0dXJuIGEgU2V0IG9mIHtAbGluayBQcm9kdWN0fXMgaW4gdGhpcyB7QGxpbmsgQ2F0ZWdvcnl9LiBXaWxsIG5vdCBiZSBudWxsLgorICAgICAqLworICAgIFNldCBmaW5kUHJvZHVjdHNCeUNhdGVnb3J5KENhdGVnb3J5IGNhdGVnb3J5KTsKK30KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZXhhbXBsZS9hamF4L2NhdGFsb2cvQ2F0ZWdvcnkuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9jYXRhbG9nL0NhdGVnb3J5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTk3NjIzNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9jYXRhbG9nL0NhdGVnb3J5LmphdmEKQEAgLTAsMCArMSwyNiBAQAorLyoKKyAqICRJZCQKKyAqCisgKiBDb3B5cmlnaHQgMjAwNiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzMi5leGFtcGxlLmFqYXguY2F0YWxvZzsKKworLyoqCisgKiBDYXRlZ29yeQorICoKKyAqLworcHVibGljIGludGVyZmFjZSBDYXRlZ29yeSBleHRlbmRzIElkZW50aWZpYWJsZSB7CisgICAgQ2F0ZWdvcnkgZ2V0UGFyZW50KCk7Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9leGFtcGxlL2FqYXgvY2F0YWxvZy9JZGVudGlmaWFibGUuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9jYXRhbG9nL0lkZW50aWZpYWJsZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NDU3YWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9leGFtcGxlL2FqYXgvY2F0YWxvZy9JZGVudGlmaWFibGUuamF2YQpAQCAtMCwwICsxLDI4IEBACisvKgorICogJElkJAorICoKKyAqIENvcHlyaWdodCAyMDA2IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLmV4YW1wbGUuYWpheC5jYXRhbG9nOworCisvKioKKyAqIElkZW50aWZpYWJsZQorICoKKyAqLworcHVibGljIGludGVyZmFjZSBJZGVudGlmaWFibGUgeworICAgIGludCBnZXRJZCgpOworCisgICAgU3RyaW5nIGdldE5hbWUoKTsKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9jYXRhbG9nL1Byb2R1Y3QuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9jYXRhbG9nL1Byb2R1Y3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTI2NWNkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL3N0cnV0czIvZXhhbXBsZS9hamF4L2NhdGFsb2cvUHJvZHVjdC5qYXZhCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiAkSWQkCisgKgorICogQ29weXJpZ2h0IDIwMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmNhdGFsb2c7CisKKy8qKgorICogUHJvZHVjdAorICoKKyAqLworcHVibGljIGludGVyZmFjZSBQcm9kdWN0IGV4dGVuZHMgSWRlbnRpZmlhYmxlIHsKKyAgICBkb3VibGUgZ2V0UHJpY2UoKTsKKworICAgIFN0cmluZyBnZXREZXNjcmlwdGlvbigpOworCisgICAgQ2F0ZWdvcnkgZ2V0Q2F0ZWdvcnkoKTsKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMyL2V4YW1wbGUvYWpheC9jYXRhbG9nL1Rlc3RDYXRhbG9nLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9leGFtcGxlL2FqYXgvY2F0YWxvZy9UZXN0Q2F0YWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5MDA5NTAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvc3RydXRzMi9leGFtcGxlL2FqYXgvY2F0YWxvZy9UZXN0Q2F0YWxvZy5qYXZhCkBAIC0wLDAgKzEsMTk3IEBACisvKgorICogJElkJAorICoKKyAqIENvcHlyaWdodCAyMDA2IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMyLmV4YW1wbGUuYWpheC5jYXRhbG9nOworCitpbXBvcnQgamF2YS51dGlsLio7CisKKy8qKgorICogVGVzdENhdGFsb2cKKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBUZXN0Q2F0YWxvZyBpbXBsZW1lbnRzIENhdGFsb2cgeworICAgIHByaXZhdGUgc3RhdGljIE1hcCBjYXRlZ29yaWVzID0gbmV3IEhhc2hNYXAoKTsKKyAgICBwcml2YXRlIHN0YXRpYyBNYXAgcHJvZHVjdHMgPSBuZXcgSGFzaE1hcCgpOworCisgICAgcHVibGljIHN0YXRpYyBDYXRlZ29yeSBDQVRFR09SWV9FTEVDVFJPTklDUyA9IG5ldyBUZXN0Q2F0ZWdvcnkoNTAwMSwgIkVsZWN0cm9uaWNzIiwgbnVsbCk7CisgICAgcHVibGljIHN0YXRpYyBDYXRlZ29yeSBDQVRFR09SWV9DTE9USElORyA9IG5ldyBUZXN0Q2F0ZWdvcnkoNTAwMiwgIkNsb3RoaW5nIiwgbnVsbCk7CisgICAgcHVibGljIHN0YXRpYyBDYXRlZ29yeSBDQVRFR09SWV9URUxFVklTSU9OUyA9IG5ldyBUZXN0Q2F0ZWdvcnkoNTAwMywgIlRlbGV2aXNpb25zIiwgQ0FURUdPUllfRUxFQ1RST05JQ1MpOworICAgIHB1YmxpYyBzdGF0aWMgQ2F0ZWdvcnkgQ0FURUdPUllfU1RFUkVPUyA9IG5ldyBUZXN0Q2F0ZWdvcnkoNTAwNCwgIlN0ZXJlb3MiLCBDQVRFR09SWV9FTEVDVFJPTklDUyk7CisgICAgcHVibGljIHN0YXRpYyBDYXRlZ29yeSBDQVRFR09SWV9TSElSVFMgPSBuZXcgVGVzdENhdGVnb3J5KDUwMDUsICJTaGlydHMiLCBDQVRFR09SWV9DTE9USElORyk7CisgICAgcHVibGljIHN0YXRpYyBDYXRlZ29yeSBDQVRFR09SWV9TTEFDS1MgPSBuZXcgVGVzdENhdGVnb3J5KDUwMDYsICJTbGFja3MiLCBDQVRFR09SWV9DTE9USElORyk7CisKKyAgICBwdWJsaWMgc3RhdGljIFByb2R1Y3QgUFJPRFVDVF9IRF9UViA9IG5ldyBUZXN0UHJvZHVjdCg3MDAxLCAiSGlnaCBEZWZpbml0aW9uIFRlbGV2aXNpb24iLCAiNTRcIiBIaWdoIERlZmluaXRpb24gUGxhc21hIFRlbGV2aXNpb24iLCA1NDQ1LjAwLCBDQVRFR09SWV9URUxFVklTSU9OUyk7CisgICAgcHVibGljIHN0YXRpYyBQcm9kdWN0IFBST0RVQ1RfU1RFUkVPID0gbmV3IFRlc3RQcm9kdWN0KDcwMDIsICJBbGwtaW4tb25lIHN0ZXJlbyIsICJBbGwtaW4tb25lIHN0ZXJlbyB3aXRoIEFNL0ZNIHR1bmVyLCA2IENEIGNoYW5nZXIsIDJ4MzAwIFdhdHQgc3BlYWtlcnMiLCA5OS45OSwgQ0FURUdPUllfU1RFUkVPUyk7CisKKyAgICBwdWJsaWMgc3RhdGljIFByb2R1Y3QgUFJPRFVDVF9CTFVFX1NISVJUID0gbmV3IFRlc3RQcm9kdWN0KDgwMDEsICJCbHVlIFNoaXJ0IiwgIkJsdWUgU2hpcnQiLCAyOS45OSwgQ0FURUdPUllfU0hJUlRTKTsKKyAgICBwdWJsaWMgc3RhdGljIFByb2R1Y3QgUFJPRFVDVF9SRURfU0hJUlQgPSBuZXcgVGVzdFByb2R1Y3QoODAwMiwgIlJlZCBTaGlydCIsICJSZWQgU2hpcnQiLCAyOS45OSwgQ0FURUdPUllfU0hJUlRTKTsKKyAgICBwdWJsaWMgc3RhdGljIFByb2R1Y3QgUFJPRFVDVF9HUkVFTl9TSElSVCA9IG5ldyBUZXN0UHJvZHVjdCg4MDAzLCAiR3JlZW4gU2hpcnQiLCAiR3JlZW4gU2hpcnQiLCAyOS45OSwgQ0FURUdPUllfU0hJUlRTKTsKKworICAgIHB1YmxpYyBUZXN0Q2F0YWxvZygpIHsKKyAgICB9CisKKyAgICBwdWJsaWMgaW50IGdldElkKCkgeworICAgICAgICByZXR1cm4gMTAwMTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgIHJldHVybiAiVGVzdCBDYXRhbG9nIjsKKyAgICB9CisKKyAgICBwdWJsaWMgU2V0IGZpbmRBbGxDYXRlZ29yaWVzKCkgeworICAgICAgICByZXR1cm4gbmV3IEhhc2hTZXQoY2F0ZWdvcmllcy52YWx1ZXMoKSk7CisgICAgfQorCisgICAgcHVibGljIFNldCBmaW5kQWxsUHJvZHVjdHMoKSB7CisgICAgICAgIHJldHVybiBuZXcgSGFzaFNldChwcm9kdWN0cy52YWx1ZXMoKSk7CisgICAgfQorCisgICAgcHVibGljIENhdGVnb3J5IGZpbmRDYXRlZ29yeUZvcklkKEludGVnZXIgaWQpIHsKKyAgICAgICAgcmV0dXJuIChDYXRlZ29yeSkgY2F0ZWdvcmllcy5nZXQoaWQpOworICAgIH0KKworICAgIHB1YmxpYyBQcm9kdWN0IGZpbmRQcm9kdWN0QnlJZChJbnRlZ2VyIHByb2R1Y3RJZCkgeworICAgICAgICByZXR1cm4gKFByb2R1Y3QpIHByb2R1Y3RzLmdldChwcm9kdWN0SWQpOworICAgIH0KKworICAgIHB1YmxpYyBTZXQgZmluZFByb2R1Y3RzQnlDYXRlZ29yeShDYXRlZ29yeSBjYXRlZ29yeSkgeworICAgICAgICBTZXQgY2F0ZWdvcnlQcm9kdWN0cyA9IG5ldyBIYXNoU2V0KCk7CisgICAgICAgIGZvciAoSXRlcmF0b3IgaXRlcmF0b3IgPSBwcm9kdWN0cy52YWx1ZXMoKS5pdGVyYXRvcigpOyBpdGVyYXRvci5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICBQcm9kdWN0IHByb2R1Y3QgPSAoUHJvZHVjdCkgaXRlcmF0b3IubmV4dCgpOworICAgICAgICAgICAgaWYgKHByb2R1Y3QuZ2V0Q2F0ZWdvcnkoKS5lcXVhbHMoY2F0ZWdvcnkpKSB7CisgICAgICAgICAgICAgICAgY2F0ZWdvcnlQcm9kdWN0cy5hZGQocHJvZHVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNhdGVnb3J5UHJvZHVjdHM7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuICJUZXN0IENhdGFsb2ciOworICAgIH0KKworICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIFRlc3RDYXRlZ29yeSBpbXBsZW1lbnRzIENhdGVnb3J5IHsKKyAgICAgICAgcHJpdmF0ZSBpbnQgaWQ7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIG5hbWU7CisgICAgICAgIHByaXZhdGUgQ2F0ZWdvcnkgcGFyZW50OworCisgICAgICAgIHByaXZhdGUgVGVzdENhdGVnb3J5KGludCBpZCwgU3RyaW5nIG5hbWUsIENhdGVnb3J5IHBhcmVudCkgeworICAgICAgICAgICAgdGhpcy5pZCA9IGlkOworICAgICAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKKyAgICAgICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50OworCisgICAgICAgICAgICBjYXRlZ29yaWVzLnB1dChuZXcgSW50ZWdlcihpZCksIHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRJZCgpIHsKKyAgICAgICAgICAgIHJldHVybiBpZDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBuYW1lOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIENhdGVnb3J5IGdldFBhcmVudCgpIHsKKyAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIGlmICh0aGlzID09IG8pIHJldHVybiB0cnVlOworICAgICAgICAgICAgaWYgKG8gPT0gbnVsbCB8fCBnZXRDbGFzcygpICE9IG8uZ2V0Q2xhc3MoKSkgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBmaW5hbCBUZXN0Q2F0ZWdvcnkgdGVzdENhdGVnb3J5ID0gKFRlc3RDYXRlZ29yeSkgbzsKKworICAgICAgICAgICAgcmV0dXJuIGlkID09IHRlc3RDYXRlZ29yeS5pZDsKKworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBoYXNoQ29kZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBpZDsKKyAgICAgICAgfQorCisKKyAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgICAgIHJldHVybiAiVGVzdENhdGVnb3J5eyIgKworICAgICAgICAgICAgICAgICAgICAiaWQ9JyIgKyBpZCArICInIiArCisgICAgICAgICAgICAgICAgICAgICIsIG5hbWU9JyIgKyBuYW1lICsgIiciICsKKyAgICAgICAgICAgICAgICAgICAgIiwgcGFyZW50PSIgKyBwYXJlbnQgKworICAgICAgICAgICAgICAgICAgICAifSI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwcml2YXRlIHN0YXRpYyBjbGFzcyBUZXN0UHJvZHVjdCBpbXBsZW1lbnRzIFByb2R1Y3QgeworICAgICAgICBwcml2YXRlIGludCBpZDsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgbmFtZTsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgZGVzY3JpcHRpb247CisgICAgICAgIHByaXZhdGUgZG91YmxlIHByaWNlOworICAgICAgICBwcml2YXRlIENhdGVnb3J5IGNhdGVnb3J5OworCisgICAgICAgIHB1YmxpYyBUZXN0UHJvZHVjdChpbnQgaWQsIFN0cmluZyBuYW1lLCBTdHJpbmcgZGVzY3JpcHRpb24sIGRvdWJsZSBwcmljZSwgQ2F0ZWdvcnkgY2F0ZWdvcnkpIHsKKyAgICAgICAgICAgIHRoaXMuaWQgPSBpZDsKKyAgICAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CisgICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CisgICAgICAgICAgICB0aGlzLnByaWNlID0gcHJpY2U7CisgICAgICAgICAgICB0aGlzLmNhdGVnb3J5ID0gY2F0ZWdvcnk7CisKKyAgICAgICAgICAgIHByb2R1Y3RzLnB1dChuZXcgSW50ZWdlcihpZCksIHRoaXMpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBnZXRJZCgpIHsKKyAgICAgICAgICAgIHJldHVybiBpZDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgICAgIHJldHVybiBuYW1lOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFN0cmluZyBnZXREZXNjcmlwdGlvbigpIHsKKyAgICAgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBkb3VibGUgZ2V0UHJpY2UoKSB7CisgICAgICAgICAgICByZXR1cm4gcHJpY2U7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgQ2F0ZWdvcnkgZ2V0Q2F0ZWdvcnkoKSB7CisgICAgICAgICAgICByZXR1cm4gY2F0ZWdvcnk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoT2JqZWN0IG8pIHsKKyAgICAgICAgICAgIGlmICh0aGlzID09IG8pIHJldHVybiB0cnVlOworICAgICAgICAgICAgaWYgKG8gPT0gbnVsbCB8fCBnZXRDbGFzcygpICE9IG8uZ2V0Q2xhc3MoKSkgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBmaW5hbCBUZXN0UHJvZHVjdCB0ZXN0UHJvZHVjdCA9IChUZXN0UHJvZHVjdCkgbzsKKworICAgICAgICAgICAgcmV0dXJuIGlkID09IHRlc3RQcm9kdWN0LmlkOworCisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgaW50IGhhc2hDb2RlKCkgeworICAgICAgICAgICAgcmV0dXJuIGlkOworICAgICAgICB9CisKKworICAgICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICAgICAgcmV0dXJuICJUZXN0UHJvZHVjdHsiICsKKyAgICAgICAgICAgICAgICAgICAgImlkPSciICsgaWQgKyAiJyIgKworICAgICAgICAgICAgICAgICAgICAiLCBuYW1lPSciICsgbmFtZSArICInIiArCisgICAgICAgICAgICAgICAgICAgICIsIGRlc2NyaXB0aW9uPSciICsgZGVzY3JpcHRpb24gKyAiJyIgKworICAgICAgICAgICAgICAgICAgICAiLCBwcmljZT0iICsgcHJpY2UgKworICAgICAgICAgICAgICAgICAgICAiLCBjYXRlZ29yeT0iICsgY2F0ZWdvcnkgKworICAgICAgICAgICAgICAgICAgICAifSI7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9yZXNvdXJjZXMvZGVmYXVsdC5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vcmVzb3VyY2VzL2RlZmF1bHQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjc1ZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vcmVzb3VyY2VzL2RlZmF1bHQucHJvcGVydGllcwpAQCAtMCwwICsxLDExIEBACitmb3JtYXQubW9uZXk9ezAsbnVtYmVyLGN1cnJlbmN5fQorZm9ybWF0LmRhdGU9ezAsZGF0ZSxzaG9ydH0KKwordGV4dC5vcGVuQWxsPW9wZW4gYWxsCit0ZXh0LmNsb3NlQWxsPWNsb3NlIGFsbAorCit0ZXh0LmNhdGVnb3J5PUNhdGVnb3J5Cit0ZXh0LmNhdGVnb3JpZXM9Q2F0ZWdvcmllcwordGV4dC5zdWJtaXQ9U3VibWl0Cit0ZXh0LnNlYXJjaD1TZWFyY2gKK3RleHQuc2V0TGFuZ3VhZ2U9U2V0IExhbmd1YWdlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9yZXNvdXJjZXMvbG9nNGoucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3Jlc291cmNlcy9sb2c0ai5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzMDJlMjIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9yZXNvdXJjZXMvbG9nNGoucHJvcGVydGllcwpAQCAtMCwwICsxLDcgQEAKK2xvZzRqLnJvb3RMb2dnZXIgPSBJTkZPLCBzdGRvdXQKKworbG9nNGouYXBwZW5kZXIuc3Rkb3V0ID0gb3JnLmFwYWNoZS5sb2c0ai5Db25zb2xlQXBwZW5kZXIKK2xvZzRqLmFwcGVuZGVyLnN0ZG91dC5UaHJlc2hvbGQgPSBXQVJOCitsb2c0ai5hcHBlbmRlci5zdGRvdXQuVGFyZ2V0ICAgPSBTeXN0ZW0ub3V0Citsb2c0ai5hcHBlbmRlci5zdGRvdXQubGF5b3V0ID0gb3JnLmFwYWNoZS5sb2c0ai5QYXR0ZXJuTGF5b3V0Citsb2c0ai5hcHBlbmRlci5zdGRvdXQubGF5b3V0LkNvbnZlcnNpb25QYXR0ZXJuID0gJWR7SVNPODYwMX0gJS01cCBbJUY6JUxdIDogJW0lbgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vcmVzb3VyY2VzL3N0cnV0cy5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vcmVzb3VyY2VzL3N0cnV0cy5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMDgxYWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9yZXNvdXJjZXMvc3RydXRzLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxNiBAQAorIyBleHRlbnNpb24gZm9yIGFjdGlvbnMKK3N0cnV0cy5hY3Rpb24uZXh0ZW5zaW9uPWFjdGlvbgorCisjIHNwcmluZyBpbnRlZ3JhdGlvbgorc3RydXRzLm9iamVjdEZhY3Rvcnk9c3ByaW5nCitzdHJ1dHMub2JqZWN0RmFjdG9yeS5zcHJpbmcuYXV0b1dpcmU9dHlwZQorCisjIyMgQ29uZmlndXJhdGlvbiByZWxvYWRpbmcKKyMgVGhpcyB3aWxsIGNhdXNlIHRoZSBjb25maWd1cmF0aW9uIHRvIHJlbG9hZCBzdHJ1dHMueG1sIHdoZW4gaXQgaXMgY2hhbmdlZAorc3RydXRzLmNvbmZpZ3VyYXRpb24ueG1sLnJlbG9hZD10cnVlCisKKyMjIyBMb2FkIGN1c3RvbSBkZWZhdWx0IHJlc291cmNlIGJ1bmRsZXMKK3N0cnV0cy5jdXN0b20uaTE4bi5yZXNvdXJjZXM9ZGVmYXVsdAorCisjIyMgY2hhcmFjdGVyIGVuY29kaW5nCitzdHJ1dHMuaTE4bi5lbmNvZGluZz1VVEYtOApkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vcmVzb3VyY2VzL3N0cnV0cy54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi9yZXNvdXJjZXMvc3RydXRzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTJkOGFhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vcmVzb3VyY2VzL3N0cnV0cy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+CisKKzwhRE9DVFlQRSBzdHJ1dHMgUFVCTElDCisgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMi4wLy9FTiIKKyAgICAiaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL2R0ZHMvc3RydXRzLTIuMC5kdGQiPgorICAgIAorPHN0cnV0cz4KKyAgICA8aW5jbHVkZSBmaWxlPSJzdHJ1dHMtZGVmYXVsdC54bWwiLz4KKyAgICA8aW5jbHVkZSBmaWxlPSJjb25maWctYnJvd3Nlci54bWwiLz4KKworICAgIDxwYWNrYWdlIG5hbWU9ImNhdGFsb2ciIG5hbWVzcGFjZT0iL2NhdGFsb2ciIGV4dGVuZHM9InN0cnV0cy1kZWZhdWx0Ij4KKyAgICAgICAgPGludGVyY2VwdG9ycz4KKyAgICAgICAgICAgIDwhLS0gQmFzaWMgc3RhY2sgLS0+CisgICAgICAgICAgICA8aW50ZXJjZXB0b3Itc3RhY2sgbmFtZT0iY2F0YWxvZ1N0YWNrIj4KKyAgICAgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9ImxvZ2dlciIvPgorICAgICAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0ic2VydmxldC1jb25maWciLz4KKyAgICAgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9InN0YXRpYy1wYXJhbXMiLz4KKyAgICAgICAgICAgICAgICA8aW50ZXJjZXB0b3ItcmVmIG5hbWU9InBhcmFtcyIvPgorICAgICAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0iY29udmVyc2lvbkVycm9yIi8+CisgICAgICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJ2YWxpZGF0aW9uIi8+CisgICAgICAgICAgICAgICAgPGludGVyY2VwdG9yLXJlZiBuYW1lPSJ3b3JrZmxvdyIvPgorICAgICAgICAgICAgPC9pbnRlcmNlcHRvci1zdGFjaz4KKyAgICAgICAgPC9pbnRlcmNlcHRvcnM+CisKKyAgICAgICAgPGRlZmF1bHQtaW50ZXJjZXB0b3ItcmVmIG5hbWU9ImNhdGFsb2dTdGFjayIvPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0iY2F0YWxvZyIgY2xhc3M9Im9yZy5hcGFjaGUuc3RydXRzMi5leGFtcGxlLmFqYXguYWN0aW9ucy5TaG93Q2F0YWxvZyI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9InN1Y2Nlc3MiPi9jYXRlZ29yeS5qc3A8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJjYXJ0IiBjbGFzcz0ib3JnLmFwYWNoZS5zdHJ1dHMyLmV4YW1wbGUuYWpheC5hY3Rpb25zLlNob3dDYXJ0Ij4KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0ic3VjY2VzcyI+L2NhcnQuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0ibWFpbiIgY2xhc3M9Im9yZy5hcGFjaGUuc3RydXRzMi5leGFtcGxlLmFqYXguYWN0aW9ucy5BY3RpdmVDYXRlZ29yeSI+CisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9InN1Y2Nlc3MiPi9jYXRlZ29yeS1tYWluLmpzcDwvcmVzdWx0PgorICAgICAgICA8L2FjdGlvbj4KKworCisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9ImNhdGFsb2ctcmVtb3RlIiBuYW1lc3BhY2U9Ii9jYXRhbG9nL3JlbW90ZSIgZXh0ZW5kcz0iY2F0YWxvZyI+CisgICAgICAgIDxhY3Rpb24gbmFtZT0iYWN0aXZlQ2F0ZWdvcnkiIGNsYXNzPSJvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmFjdGlvbnMuQWN0aXZlQ2F0ZWdvcnkiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJzdWNjZXNzIj4vY2F0ZWdvcnkuanNwPC9yZXN1bHQ+CisgICAgICAgIDwvYWN0aW9uPgorCisgICAgICAgIDxhY3Rpb24gbmFtZT0ic2V0QWN0aXZlQ2F0ZWdvcnkiIGNsYXNzPSJvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmFjdGlvbnMuU2V0QWN0aXZlQ2F0ZWdvcnkiPgorICAgICAgICAgICAgPHJlc3VsdCBuYW1lPSJzdWNjZXNzIiB0eXBlPSJjaGFpbiI+YWN0aXZlQ2F0ZWdvcnk8L3Jlc3VsdD4KKyAgICAgICAgPC9hY3Rpb24+CisKKyAgICAgICAgPGFjdGlvbiBuYW1lPSJ1cGRhdGVRdWFudGl0eSIgY2xhc3M9Im9yZy5hcGFjaGUuc3RydXRzMi5leGFtcGxlLmFqYXguYWN0aW9ucy5VcGRhdGVRdWFudGl0eUluQ2FydCIvPgorCisgICAgPC9wYWNrYWdlPgorPC9zdHJ1dHM+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3Jlc291cmNlcy92YWxpZGF0b3JzLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3Jlc291cmNlcy92YWxpZGF0b3JzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2QyYjBmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vcmVzb3VyY2VzL3ZhbGlkYXRvcnMueG1sCkBAIC0wLDAgKzEsMTQgQEAKKzx2YWxpZGF0b3JzPgorICAgIDx2YWxpZGF0b3IgbmFtZT0icmVxdWlyZWQiIGNsYXNzPSJjb20ub3BlbnN5bXBob255Lnh3b3JrMi52YWxpZGF0b3IudmFsaWRhdG9ycy5SZXF1aXJlZEZpZWxkVmFsaWRhdG9yIi8+CisgICAgPHZhbGlkYXRvciBuYW1lPSJyZXF1aXJlZHN0cmluZyIgY2xhc3M9ImNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnZhbGlkYXRvci52YWxpZGF0b3JzLlJlcXVpcmVkU3RyaW5nVmFsaWRhdG9yIi8+CisgICAgPHZhbGlkYXRvciBuYW1lPSJpbnQiIGNsYXNzPSJjb20ub3BlbnN5bXBob255Lnh3b3JrMi52YWxpZGF0b3IudmFsaWRhdG9ycy5JbnRSYW5nZUZpZWxkVmFsaWRhdG9yIi8+CisgICAgPHZhbGlkYXRvciBuYW1lPSJkb3VibGUiIGNsYXNzPSJjb20ub3BlbnN5bXBob255Lnh3b3JrMi52YWxpZGF0b3IudmFsaWRhdG9ycy5Eb3VibGVSYW5nZUZpZWxkVmFsaWRhdG9yIi8+CisgICAgPHZhbGlkYXRvciBuYW1lPSJkYXRlIiBjbGFzcz0iY29tLm9wZW5zeW1waG9ueS54d29yazIudmFsaWRhdG9yLnZhbGlkYXRvcnMuRGF0ZVJhbmdlRmllbGRWYWxpZGF0b3IiLz4KKyAgICA8dmFsaWRhdG9yIG5hbWU9ImV4cHJlc3Npb24iIGNsYXNzPSJjb20ub3BlbnN5bXBob255Lnh3b3JrMi52YWxpZGF0b3IudmFsaWRhdG9ycy5FeHByZXNzaW9uVmFsaWRhdG9yIi8+CisgICAgPHZhbGlkYXRvciBuYW1lPSJmaWVsZGV4cHJlc3Npb24iIGNsYXNzPSJjb20ub3BlbnN5bXBob255Lnh3b3JrMi52YWxpZGF0b3IudmFsaWRhdG9ycy5GaWVsZEV4cHJlc3Npb25WYWxpZGF0b3IiLz4KKyAgICA8dmFsaWRhdG9yIG5hbWU9ImVtYWlsIiBjbGFzcz0iY29tLm9wZW5zeW1waG9ueS54d29yazIudmFsaWRhdG9yLnZhbGlkYXRvcnMuRW1haWxWYWxpZGF0b3IiLz4KKyAgICA8dmFsaWRhdG9yIG5hbWU9InVybCIgY2xhc3M9ImNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnZhbGlkYXRvci52YWxpZGF0b3JzLlVSTFZhbGlkYXRvciIvPgorICAgIDx2YWxpZGF0b3IgbmFtZT0idmlzaXRvciIgY2xhc3M9ImNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnZhbGlkYXRvci52YWxpZGF0b3JzLlZpc2l0b3JGaWVsZFZhbGlkYXRvciIvPgorICAgIDx2YWxpZGF0b3IgbmFtZT0iY29udmVyc2lvbiIgY2xhc3M9ImNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLnZhbGlkYXRvci52YWxpZGF0b3JzLkNvbnZlcnNpb25FcnJvckZpZWxkVmFsaWRhdG9yIi8+CisgICAgPHZhbGlkYXRvciBuYW1lPSJzdHJpbmdsZW5ndGgiIGNsYXNzPSJjb20ub3BlbnN5bXBob255Lnh3b3JrMi52YWxpZGF0b3IudmFsaWRhdG9ycy5TdHJpbmdMZW5ndGhGaWVsZFZhbGlkYXRvciIvPgorPC92YWxpZGF0b3JzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvYXBwbGljYXRpb25Db250ZXh0LnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2FwcGxpY2F0aW9uQ29udGV4dC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBkZmMxYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2FwcGxpY2F0aW9uQ29udGV4dC54bWwKQEAgLTAsMCArMSwxNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBiZWFucyBQVUJMSUMgIi0vL1NQUklORy8vRFREIEJFQU4vL0VOIiAiaHR0cDovL3d3dy5zcHJpbmdmcmFtZXdvcmsub3JnL2R0ZC9zcHJpbmctYmVhbnMuZHRkIj4KKworPGJlYW5zIGRlZmF1bHQtYXV0b3dpcmU9ImF1dG9kZXRlY3QiPgorCisgICAgPGJlYW4gaWQ9ImNhdGFsb2ciCisgICAgICAgICAgc2luZ2xldG9uPSJ0cnVlIgorICAgICAgICAgIGNsYXNzPSJvcmcuYXBhY2hlLnN0cnV0czIuZXhhbXBsZS5hamF4LmNhdGFsb2cuVGVzdENhdGFsb2ciIC8+CisKKyAgICA8YmVhbiBpZD0ic2hvcHBpbmdDYXJ0IgorICAgICAgICAgIHNpbmdsZXRvbj0idHJ1ZSIKKyAgICAgICAgICBjbGFzcz0ib3JnLmFwYWNoZS5zdHJ1dHMyLmV4YW1wbGUuYWpheC5jYXJ0LkRlZmF1bHRDYXJ0IiAvPgorCisKKzwvYmVhbnM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9kZWNvcmF0b3JzLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2RlY29yYXRvcnMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliNWE3MjQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9kZWNvcmF0b3JzLnhtbApAQCAtMCwwICsxLDIxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+CisKKzxkZWNvcmF0b3JzIGRlZmF1bHRkaXI9Ii9XRUItSU5GL2RlY29yYXRvcnMiPgorICAgIDwhLS0gQW55IHVybHMgdGhhdCBhcmUgZXhjbHVkZWQgd2lsbCBuZXZlciBiZSBkZWNvcmF0ZWQgYnkgU2l0ZW1lc2ggLS0+CisgICAgPGV4Y2x1ZGVzPgorICAgICAgICA8cGF0dGVybj4vZGVidWcuanNwPC9wYXR0ZXJuPgorICAgICAgICA8cGF0dGVybj4vY3NzLyo8L3BhdHRlcm4+CisgICAgICAgIDxwYXR0ZXJuPi9qcy8qPC9wYXR0ZXJuPgorICAgICAgICA8cGF0dGVybj4vaW1hZ2VzLyo8L3BhdHRlcm4+CisgICAgICAgIDxwYXR0ZXJuPi9kb2pvLyo8L3BhdHRlcm4+CisgICAgICAgIDxwYXR0ZXJuPi9zdHJ1dHMvKjwvcGF0dGVybj4KKyAgICAgICAgPHBhdHRlcm4+L2NhdGFsb2cvcmVtb3RlLyo8L3BhdHRlcm4+CisgICAgPC9leGNsdWRlcz4KKworICAgIDxkZWNvcmF0b3IgbmFtZT0ibWFpbiIgcGFnZT0ibWFpbi5qc3AiPgorICAgICAgICA8cGF0dGVybj4vKjwvcGF0dGVybj4KKyAgICA8L2RlY29yYXRvcj4KKyAgICA8IS0tPGRlY29yYXRvciBuYW1lPSJwYW5lbCIgcGFnZT0icGFuZWwuanNwIi8+LS0+CisgICAgPCEtLTxkZWNvcmF0b3IgbmFtZT0iZGFzaGVkQm94IiBwYWdlPSJkYXNoZWRCb3guanNwIi8+LS0+CisgICAgPCEtLTxkZWNvcmF0b3IgbmFtZT0icHJpbnRhYmxlIiBwYWdlPSJwcmludGFibGUuanNwIi8+LS0+Cis8L2RlY29yYXRvcnM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9kZWNvcmF0b3JzL21haW4uanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvZGVjb3JhdG9ycy9tYWluLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTk2NzNkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvZGVjb3JhdG9ycy9tYWluLmpzcApAQCAtMCwwICsxLDE0OCBAQAorPCUKKyAgICByZXNwb25zZS5zZXRIZWFkZXIoIlByYWdtYSIsICJuby1jYWNoZSIpOworICAgIHJlc3BvbnNlLnNldEhlYWRlcigiQ2FjaGUtQ29udHJvbCIsICJuby1jYWNoZSIpOworICAgIHJlc3BvbnNlLnNldERhdGVIZWFkZXIoIkV4cGlyZXMiLCAwKTsKKyU+Cis8JUAgdGFnbGliIHVyaT0ic2l0ZW1lc2gtZGVjb3JhdG9yIiBwcmVmaXg9ImRlY29yYXRvciIgJT4KKzwlQCB0YWdsaWIgdXJpPSJzaXRlbWVzaC1wYWdlIiBwcmVmaXg9InBhZ2UiICU+Cis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMSBUcmFuc2l0aW9uYWwvL0VOIgorImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgICA8dGl0bGU+PGRlY29yYXRvcjp0aXRsZSBkZWZhdWx0PSJDU1MgVGVtcGxhdGUiLz48L3RpdGxlPgorICAgIDxsaW5rIGhyZWY9IjxzOnVybCB2YWx1ZT0nL2Nzcy9tYWluLmNzcycvPiIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIvPgorICAgIDxsaW5rIGhyZWY9IjxzOnVybCB2YWx1ZT0nL2Nzcy9uaWZ0eUNvcm5lcnMuY3NzJy8+IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+CisgICAgPGxpbmsgaHJlZj0iPHM6dXJsIHZhbHVlPScvY3NzL25pZnR5UHJpbnQuY3NzJy8+IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0icHJpbnQiLz4KKyAgICA8bGluayBocmVmPSI8czp1cmwgdmFsdWU9Jy9jc3MvZHRyZWUuY3NzJy8+IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIi8+CisgICAgPGxpbmsgaHJlZj0iPHM6dXJsIHZhbHVlPScvY3NzL2NhcnQuY3NzJy8+IiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIi8+CisKKyAgICA8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iPHM6dXJsIHZhbHVlPScvanMvbmlmdHkuanMnLz4iPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSI8czp1cmwgdmFsdWU9Jy9qcy9kdHJlZS5qcycvPiI+PC9zY3JpcHQ+CisKKyAgICA8czpoZWFkIHRoZW1lPSJhamF4Ii8+CisKKyAgICA8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCisgICAgICAgIGRvam8uZXZlbnQuY29ubmVjdCAod2luZG93LCAib25sb2FkIiAsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKCFOaWZ0eUNoZWNrKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgLy8gICAgICAgICAgICBSb3VuZGVkKCJibG9ja3F1b3RlIiwidHIgYmwiLCIjRUNGMUY5IiwiI0NERkZBQSIsInNtb290aCBib3JkZXIgIzg4RDg0RiIpOworICAgICAgICAgICAgUm91bmRlZCgiZGl2I291dGVyLWhlYWRlciIsICJhbGwiLCAid2hpdGUiLCAiIzgxOEVCRCIsICJzbW9vdGggYm9yZGVyICM0MzRGN0MiKTsKKyAgICAgICAgICAgIFJvdW5kZWQoImRpdiNmb290ZXIiLCAiYWxsIiwgIndoaXRlIiwgIiM4MThFQkQiLCAic21vb3RoIGJvcmRlciAjNDM0RjdDIik7CisgICAgICAgICAgICBSb3VuZGVkKCJkaXYjY2F0ZWdvcmllcyIsICJ0bCBiciIsICJ3aGl0ZSIsICIjZjBlNjhjIiwgInNtb290aCBib3JkZXIgI2RhYTUyMCIpOworICAgICAgICAgICAgUm91bmRlZCgiZGl2I2NhcnQiLCAidGwgYnIiLCAid2hpdGUiLCAiI2ZmZGFiOSIsICJzbW9vdGggYm9yZGVyICM4YjAwMDAiKTsKKyAgICAgICAgICAgIC8vICAgICAgICAgICAgUm91bmRlZCgiZGl2LnByb2R1Y3REZXRhaWxzIiwidHIgYmwiLCIjRUNGMUY5IiwiI0NERkZBQSIsInNtb290aCBib3JkZXIgIzg4RDg0RiIpOworCisgICAgICAgICAgICBkb2pvLmV2ZW50LnRvcGljLnB1Ymxpc2goICJjYXJ0VXBkYXRlZCIgKTsKKyAgICAgICAgfSk7CisKKyAgICA8L3NjcmlwdD4KKyAgICA8ZGVjb3JhdG9yOmhlYWQvPgorPC9oZWFkPgorCis8Ym9keSBpZD0icGFnZS1ob21lIj4KKworPGRpdiBpZD0icGFnZSI+CisgICAgPGRpdiBpZD0ib3V0ZXItaGVhZGVyIj4KKyAgICAgICAgPGRpdiBpZD0iaGVhZGVyIiBjbGFzcz0iY2xlYXJmaXgiPgorICAgICAgICAgICAgPGRpdiBpZD0iYnJhbmRpbmciPgorICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0idGl0bGUiPlN0cnV0cyBBamF4PC9oMT4KKyAgICAgICAgICAgIDwvZGl2PjwhLS0gZW5kIGJyYW5kaW5nIC0tPgorCisgICAgICAgICAgICA8ZGl2IGlkPSJzZWFyY2giPgorICAgICAgICAgICAgICAgIDxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIiPgorICAgICAgICAgICAgICAgICAgICA8ZGl2PjxsYWJlbCBmb3I9InNlYXJjaC1zaXRlIj5TZWFyY2g8L2xhYmVsPgorICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNlYXJjaCIgaWQ9InNlYXJjaC1zaXRlIi8+CisgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iZ28iIG5hbWU9InNlYXJjaCIgaWQ9InNlYXJjaEJ0biIvPjwvZGl2PgorCisgICAgICAgICAgICAgICAgPC9mb3JtPgorICAgICAgICAgICAgPC9kaXY+PCEtLSBlbmQgc2VhcmNoIC0tPgorCisgICAgICAgICAgICA8aHIvPgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj48IS0tIGVuZCBoZWFkZXIgLS0+CisKKyAgICA8ZGl2IGlkPSJjb250ZW50IiBjbGFzcz0iY2xlYXJmaXgiPgorCisgICAgICAgIDxkZWNvcmF0b3I6Ym9keS8+CisKKworICAgICAgICA8ZGl2IGlkPSJsb2NhbCI+CisgICAgICAgICAgICA8czphY3Rpb24gbmFtZXNwYWNlPSIvY2F0YWxvZyIgbmFtZT0iY2F0YWxvZyIgZXhlY3V0ZVJlc3VsdD0iZmFsc2UiIGlkPSJjYXRhbG9nIi8+CisgICAgICAgICAgICA8ZGl2IGlkPSJjYXRlZ29yaWVzIj4KKyAgICAgICAgICAgICAgICA8cCBjbGFzcz0iYm94VGl0bGUiPkNhdGVnb3JpZXM8L3A+CisKKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkdHJlZSI+CisgICAgICAgICAgICAgICAgICAgIDxwPjxhIGhyZWY9ImphdmFzY3JpcHQ6IGNhdGVnb3J5VHJlZS5vcGVuQWxsKCk7Ij5vcGVuIGFsbDwvYT4gfCA8YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9ImphdmFzY3JpcHQ6IGNhdGVnb3J5VHJlZS5jbG9zZUFsbCgpOyI+Y2xvc2UgYWxsPC9hPjwvcD4KKworICAgICAgICAgICAgICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgICAgICAgICAgICAgICAgICAgICA8IS0tCisgICAgICAgICAgICAgICAgIHZhciBjYXRlZ29yeVRvcGljID0gZG9qby5ldmVudC50b3BpYy5nZXRUb3BpYygiY2F0ZWdvcnlTZWxlY3RlZCIpOworCisgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGNoYW5nZUNhdGVnb3J5KGNhdGVnb3J5KSB7CisgICAgICAgICAgICAgICAgICAgICB2YXIgc2VydmVyVXJsID0gIjxzOnVybCB2YWx1ZT0iL2NhdGFsb2cvcmVtb3RlL3NldEFjdGl2ZUNhdGVnb3J5LmFjdGlvbiIvPj9jYXRlZ29yeUlkPSIgKyBjYXRlZ29yeTsKKy8vICAgICAgICAgICAgICAgICAgICAgICAgZG9qby5kZWJ1ZygiVXJsOiAiICsgc2VydmVyVXJsKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvam8uaW8uYmluZCh7CisgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IHNlcnZlclVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uKHR5cGUsIGRhdGEsIGV2ZW50KSB7CisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2pvLmRlYnVnKCJHb3QgcmVzcG9uc2U6IGRhdGE9ICIgKyBkYXRhICsgIiBldmVudCA9ICIgKyBldmVudCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9qby5ldmVudC50b3BpYy5wdWJsaXNoKCJjYXRlZ29yeVNlbGVjdGVkIiwgIiIgKyBkYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24odHlwZSwgZXJyb3IpeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0KCAiRXJyb3Igc2VsZWN0aW5nIGNhdGVnb3J5IDogIiArIGVycm9yLm1lc3NhZ2UgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBtaW1ldHlwZTogInRleHQvcGxhaW4iCisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5VHJlZSA9IG5ldyBkVHJlZSgnY2F0ZWdvcnlUcmVlJyk7CisgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5VHJlZS5hZGQoMCwtMSwnQ2F0ZWdvcmllcycpOworICAgICAgICAgICAgICAgICAgICA8czppdGVyYXRvciB2YWx1ZT0iI2NhdGFsb2cuY2F0YWxvZy5maW5kQWxsQ2F0ZWdvcmllcygpIj4KKyAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlUcmVlLmFkZCg8czpwcm9wZXJ0eSB2YWx1ZT0iaWQiLz4sPHM6cHJvcGVydHkgdmFsdWU9IihwYXJlbnQgZXEgbnVsbCkgPyAwIDogcGFyZW50LmlkIi8+LCc8czpwcm9wZXJ0eSB2YWx1ZT0ibmFtZSIvPicsJ2phdmFzY3JpcHQ6IGNoYW5nZUNhdGVnb3J5KDxzOnByb3BlcnR5IHZhbHVlPSJpZCIvPik7Jyk7CisgICAgICAgICAgICAgICAgICAgIDwvczppdGVyYXRvcj4KKyAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoY2F0ZWdvcnlUcmVlKTsKKyAgICAgICAgICAgICAgICAgICAgLy8tLT4KKyAgICAgICAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKworICAgICAgICAgICAgPGRpdiBpZD0iY2FydCI+CisgICAgICAgICAgICAgICAgPHM6ZGl2IGhyZWY9Ii9jYXRhbG9nL3JlbW90ZS9jYXJ0LmFjdGlvbiIgdGhlbWU9ImFqYXgiIGxpc3RlblRvcGljcz0iY2FydFVwZGF0ZWQiCisgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nVGV4dD0ibG9hZGluZy4uLiIgaWQ9ImNhcnQtYm9keSIgLz4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPGJyIGNsZWFyPSJhbGwiLz4KKyAgICAgICAgPC9kaXY+PCEtLSBlbmQgc3ViIC0tPgorCisKKyAgICAgICAgPGRpdiBpZD0ibmF2Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9IndyYXBwZXIiPgorICAgICAgICAgICAgICAgIDxoMiBjbGFzcz0iYWNjZXNzaWJpbGl0eSI+TmF2aWdhdGlvbjwvaDI+CisgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJjbGVhcmZpeCI+CisgICAgICAgICAgICAgICAgICAgIDxsaT48c3Ryb25nPjxhIGhyZWY9IiI+SG9tZTwvYT48L3N0cm9uZz48L2xpPgorICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iIyIgb25jbGljaz0iYWxlcnQoJ05vIGNvbnRlbnQgeWV0LCBqdXN0IGFuIGV4YW1wbGUnKTsiPkFydGljbGVzPC9hPjwvbGk+CisKKyAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IiMiIG9uY2xpY2s9ImFsZXJ0KCdObyBjb250ZW50IHlldCwganVzdCBhbiBleGFtcGxlJyk7Ij5BcmNoaXZlPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIiBvbmNsaWNrPSJhbGVydCgnTm8gY29udGVudCB5ZXQsIGp1c3QgYW4gZXhhbXBsZScpOyI+UGhvdG9zPC9hPjwvbGk+CisgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIiBvbmNsaWNrPSJhbGVydCgnTm8gY29udGVudCB5ZXQsIGp1c3QgYW4gZXhhbXBsZScpOyI+QWJvdXQ8L2E+PC9saT4KKyAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJsYXN0Ij48YSBocmVmPSIjIiBvbmNsaWNrPSJhbGVydCgnTm8gY29udGVudCB5ZXQsIGp1c3QgYW4gZXhhbXBsZScpOyI+Q29udGFjdDwvYT48L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDxoci8+CisKKyAgICAgICAgPC9kaXY+PCEtLSBlbmQgbmF2IC0tPgorCisgICAgPC9kaXY+PCEtLSBlbmQgY29udGVudCAtLT4KKworCisgICAgPGRpdiBpZD0iZm9vdGVyIiBjbGFzcz0iY2xlYXJmaXgiPgorICAgICAgICA8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDUtMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLjwvcD4KKyAgICA8L2Rpdj48IS0tIGVuZCBmb290ZXIgLS0+CisgICAgPHAvPgorCis8L2Rpdj48IS0tIGVuZCBwYWdlIC0tPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9kd3IueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvZHdyLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDAwYjU2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvZHdyLnhtbApAQCAtMCwwICsxLDIwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGR3ciBQVUJMSUMgIi0vL0dldEFoZWFkIExpbWl0ZWQvL0RURCBEaXJlY3QgV2ViIFJlbW90aW5nIDEuMC8vRU4iICJodHRwOi8vd3d3LmdldGFoZWFkLmx0ZC51ay9kd3IvZHdyMTAuZHRkIj4KKworPGR3cj4KKyAgICA8YWxsb3c+CisgICAgICAgIDxjcmVhdGUgY3JlYXRvcj0ibmV3IiBqYXZhc2NyaXB0PSJ2YWxpZGF0b3IiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImNsYXNzIiB2YWx1ZT0ib3JnLmFwYWNoZS5zdHJ1dHMyLnZhbGlkYXRvcnMuRFdSVmFsaWRhdG9yIi8+CisgICAgICAgIDwvY3JlYXRlPgorICAgICAgICA8Y29udmVydCBjb252ZXJ0ZXI9ImJlYW4iIG1hdGNoPSJjb20ub3BlbnN5bXBob255Lnh3b3JrMi5WYWxpZGF0aW9uQXdhcmVTdXBwb3J0Ii8+CisgICAgPC9hbGxvdz4KKworICAgIDxzaWduYXR1cmVzPgorICAgICAgICA8IVtDREFUQVsKKyAgICAgICAgaW1wb3J0IGphdmEudXRpbC5NYXA7CisgICAgICAgIGltcG9ydCBvcmcuYXBhY2hlLnN0cnV0czIudmFsaWRhdG9ycy5EV1JWYWxpZGF0b3I7CisKKyAgICAgICAgRFdSVmFsaWRhdG9yLmRvUG9zdChTdHJpbmcsIFN0cmluZywgTWFwPFN0cmluZywgU3RyaW5nPik7CisgICAgICAgIF1dPgorICAgIDwvc2lnbmF0dXJlcz4KKzwvZHdyPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvc2l0ZW1lc2gtZGVjb3JhdG9yLnRsZCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3NpdGVtZXNoLWRlY29yYXRvci50bGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThmNTI1YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3NpdGVtZXNoLWRlY29yYXRvci50bGQKQEAgLTAsMCArMSw3OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSB0YWdsaWIgUFVCTElDICItLy9TdW4gTWljcm9zeXN0ZW1zLCBJbmMuLy9EVEQgSlNQIFRhZyBMaWJyYXJ5IDEuMS8vRU4iICJodHRwOi8vamF2YS5zdW4uY29tL2oyZWUvZHRkcy93ZWItanNwdGFnbGlicmFyeV8xXzEuZHRkIj4KKworPHRhZ2xpYj4KKworICAgIDx0bGlidmVyc2lvbj4xLjA8L3RsaWJ2ZXJzaW9uPgorICAgIDxqc3B2ZXJzaW9uPjEuMTwvanNwdmVyc2lvbj4KKyAgICA8c2hvcnRuYW1lPlNpdGVNZXNoIERlY29yYXRvciBUYWdzPC9zaG9ydG5hbWU+CisgICAgPHVyaT5zaXRlbWVzaC1kZWNvcmF0b3I8L3VyaT4KKworICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmhlYWQ8L25hbWU+CisgICAgICAgIDx0YWdjbGFzcz5jb20ub3BlbnN5bXBob255Lm1vZHVsZS5zaXRlbWVzaC50YWdsaWIuZGVjb3JhdG9yLkhlYWRUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICA8L3RhZz4KKworICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmJvZHk8L25hbWU+CisgICAgICAgIDx0YWdjbGFzcz5jb20ub3BlbnN5bXBob255Lm1vZHVsZS5zaXRlbWVzaC50YWdsaWIuZGVjb3JhdG9yLkJvZHlUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICA8L3RhZz4KKworICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICA8dGFnY2xhc3M+Y29tLm9wZW5zeW1waG9ueS5tb2R1bGUuc2l0ZW1lc2gudGFnbGliLmRlY29yYXRvci5UaXRsZVRhZzwvdGFnY2xhc3M+CisgICAgICAgIDxib2R5Y29udGVudD5KU1A8L2JvZHljb250ZW50PgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZGVmYXVsdDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgIDwvdGFnPgorCisgICAgPHRhZz4KKyAgICAgICAgPG5hbWU+Z2V0UHJvcGVydHk8L25hbWU+CisgICAgICAgIDx0YWdjbGFzcz5jb20ub3BlbnN5bXBob255Lm1vZHVsZS5zaXRlbWVzaC50YWdsaWIuZGVjb3JhdG9yLlByb3BlcnR5VGFnPC90YWdjbGFzcz4KKyAgICAgICAgPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5wcm9wZXJ0eTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5kZWZhdWx0PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT53cml0ZUVudGlyZVByb3BlcnR5PC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisKKyAgICA8dGFnPgorICAgICAgICA8bmFtZT51c2VQYWdlPC9uYW1lPgorICAgICAgICA8dGFnY2xhc3M+Y29tLm9wZW5zeW1waG9ueS5tb2R1bGUuc2l0ZW1lc2gudGFnbGliLmRlY29yYXRvci5Vc2VQYWdlVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPHRlaWNsYXNzPmNvbS5vcGVuc3ltcGhvbnkubW9kdWxlLnNpdGVtZXNoLnRhZ2xpYi5kZWNvcmF0b3IuVXNlUGFnZVRFSTwvdGVpY2xhc3M+CisgICAgICAgIDxib2R5Y29udGVudD5KU1A8L2JvZHljb250ZW50PgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+aWQ8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKworICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnVzZUh0bWxQYWdlPC9uYW1lPgorICAgICAgICA8dGFnY2xhc3M+Y29tLm9wZW5zeW1waG9ueS5tb2R1bGUuc2l0ZW1lc2gudGFnbGliLmRlY29yYXRvci5Vc2VQYWdlVGFnPC90YWdjbGFzcz4KKyAgICAgICAgPHRlaWNsYXNzPmNvbS5vcGVuc3ltcGhvbnkubW9kdWxlLnNpdGVtZXNoLnRhZ2xpYi5kZWNvcmF0b3IuVXNlSFRNTFBhZ2VURUk8L3RlaWNsYXNzPgorICAgICAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisKKzwvdGFnbGliPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3NpdGVtZXNoLXBhZ2UudGxkIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvc2l0ZW1lc2gtcGFnZS50bGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk3ZWM1ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3NpdGVtZXNoLXBhZ2UudGxkCkBAIC0wLDAgKzEsOTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IURPQ1RZUEUgdGFnbGliIFBVQkxJQyAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIEpTUCBUYWcgTGlicmFyeSAxLjEvL0VOIiAiaHR0cDovL2phdmEuc3VuLmNvbS9qMmVlL2R0ZHMvd2ViLWpzcHRhZ2xpYnJhcnlfMV8xLmR0ZCI+CisKKzx0YWdsaWI+CisKKyAgICA8dGxpYnZlcnNpb24+MS4wPC90bGlidmVyc2lvbj4KKyAgICA8anNwdmVyc2lvbj4xLjE8L2pzcHZlcnNpb24+CisgICAgPHNob3J0bmFtZT5TaXRlTWVzaCBQYWdlIFRhZ3M8L3Nob3J0bmFtZT4KKyAgICA8dXJpPnNpdGVtZXNoLXBhZ2U8L3VyaT4KKworICAgIDx0YWc+CisgICAgICAgIDxuYW1lPmFwcGx5RGVjb3JhdG9yPC9uYW1lPgorICAgICAgICA8dGFnY2xhc3M+Y29tLm9wZW5zeW1waG9ueS5tb2R1bGUuc2l0ZW1lc2gudGFnbGliLnBhZ2UuQXBwbHlEZWNvcmF0b3JUYWc8L3RhZ2NsYXNzPgorICAgICAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnBhZ2U8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPnRpdGxlPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5pZDwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+Y29udGVudFR5cGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmVuY29kaW5nPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgPC90YWc+CisKKyAgICA8IS0tIERlcHJlY2F0ZWQgdGFnOiB1c2UgYXBwbHlEZWNvcmF0b3IgaW5zdGVhZCAtLT4KKyAgICA8dGFnPgorICAgICAgICA8bmFtZT5hcHBseS1kZWNvcmF0b3I8L25hbWU+CisgICAgICAgIDx0YWdjbGFzcz5jb20ub3BlbnN5bXBob255Lm1vZHVsZS5zaXRlbWVzaC50YWdsaWIucGFnZS5BcHBseURlY29yYXRvclRhZzwvdGFnY2xhc3M+CisgICAgICAgIDxib2R5Y29udGVudD5KU1A8L2JvZHljb250ZW50PgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+bmFtZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+cGFnZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+dGl0bGU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPmlkPC9uYW1lPgorICAgICAgICAgICAgPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4KKyAgICAgICAgICAgIDxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4KKyAgICAgICAgPC9hdHRyaWJ1dGU+CisgICAgICAgIDxhdHRyaWJ1dGU+CisgICAgICAgICAgICA8bmFtZT5jb250ZW50VHlwZTwvbmFtZT4KKyAgICAgICAgICAgIDxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+CisgICAgICAgICAgICA8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+CisgICAgICAgIDwvYXR0cmlidXRlPgorICAgICAgICA8YXR0cmlidXRlPgorICAgICAgICAgICAgPG5hbWU+ZW5jb2Rpbmc8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKworICAgIDx0YWc+CisgICAgICAgIDxuYW1lPnBhcmFtPC9uYW1lPgorICAgICAgICA8dGFnY2xhc3M+Y29tLm9wZW5zeW1waG9ueS5tb2R1bGUuc2l0ZW1lc2gudGFnbGliLnBhZ2UuUGFyYW1UYWc8L3RhZ2NsYXNzPgorICAgICAgICA8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4KKyAgICAgICAgPGF0dHJpYnV0ZT4KKyAgICAgICAgICAgIDxuYW1lPm5hbWU8L25hbWU+CisgICAgICAgICAgICA8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPgorICAgICAgICAgICAgPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPgorICAgICAgICA8L2F0dHJpYnV0ZT4KKyAgICA8L3RhZz4KKworPC90YWdsaWI+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvc2l0ZW1lc2gueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvc2l0ZW1lc2gueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2NzY2ODAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9zaXRlbWVzaC54bWwKQEAgLTAsMCArMSw1MSBAQAorPHNpdGVtZXNoPgorICAgIDxwcm9wZXJ0eSBuYW1lPSJkZWNvcmF0b3JzLWZpbGUiIHZhbHVlPSIvV0VCLUlORi9kZWNvcmF0b3JzLnhtbCIvPgorICAgIDxleGNsdWRlcyBmaWxlPSIke2RlY29yYXRvcnMtZmlsZX0iLz4KKworICAgIDxwYWdlLXBhcnNlcnM+CisgICAgICAgIDxwYXJzZXIgY29udGVudC10eXBlPSJ0ZXh0L2h0bWwiIGNsYXNzPSJjb20ub3BlbnN5bXBob255Lm1vZHVsZS5zaXRlbWVzaC5wYXJzZXIuRmFzdFBhZ2VQYXJzZXIiLz4KKyAgICA8L3BhZ2UtcGFyc2Vycz4KKworICAgIDxkZWNvcmF0b3ItbWFwcGVycz4KKworICAgICAgICA8bWFwcGVyIGNsYXNzPSJjb20ub3BlbnN5bXBob255Lm1vZHVsZS5zaXRlbWVzaC5tYXBwZXIuUGFnZURlY29yYXRvck1hcHBlciI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0icHJvcGVydHkuMSIgdmFsdWU9Im1ldGEuZGVjb3JhdG9yIi8+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0icHJvcGVydHkuMiIgdmFsdWU9ImRlY29yYXRvciIvPgorICAgICAgICA8L21hcHBlcj4KKworICAgICAgICA8bWFwcGVyIGNsYXNzPSJjb20ub3BlbnN5bXBob255Lm1vZHVsZS5zaXRlbWVzaC5tYXBwZXIuRnJhbWVTZXREZWNvcmF0b3JNYXBwZXIiPgorICAgICAgICA8L21hcHBlcj4KKworICAgICAgICA8bWFwcGVyIGNsYXNzPSJjb20ub3BlbnN5bXBob255Lm1vZHVsZS5zaXRlbWVzaC5tYXBwZXIuQWdlbnREZWNvcmF0b3JNYXBwZXIiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1hdGNoLk1TSUUiIHZhbHVlPSJpZSIvPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1hdGNoLk1vemlsbGEgWyIgdmFsdWU9Im5zIi8+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0ibWF0Y2guT3BlcmEiIHZhbHVlPSJvcGVyYSIvPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9Im1hdGNoLkx5bngiIHZhbHVlPSJseW54Ii8+CisgICAgICAgIDwvbWFwcGVyPgorCisgICAgICAgIDxtYXBwZXIgY2xhc3M9ImNvbS5vcGVuc3ltcGhvbnkubW9kdWxlLnNpdGVtZXNoLm1hcHBlci5QcmludGFibGVEZWNvcmF0b3JNYXBwZXIiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImRlY29yYXRvciIgdmFsdWU9InByaW50YWJsZSIvPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9InBhcmFtZXRlci5uYW1lIiB2YWx1ZT0icHJpbnRhYmxlIi8+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0icGFyYW1ldGVyLnZhbHVlIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICA8L21hcHBlcj4KKworICAgICAgICA8bWFwcGVyIGNsYXNzPSJjb20ub3BlbnN5bXBob255Lm1vZHVsZS5zaXRlbWVzaC5tYXBwZXIuUm9ib3REZWNvcmF0b3JNYXBwZXIiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImRlY29yYXRvciIgdmFsdWU9InJvYm90Ii8+CisgICAgICAgIDwvbWFwcGVyPgorCisgICAgICAgIDxtYXBwZXIgY2xhc3M9ImNvbS5vcGVuc3ltcGhvbnkubW9kdWxlLnNpdGVtZXNoLm1hcHBlci5QYXJhbWV0ZXJEZWNvcmF0b3JNYXBwZXIiPgorICAgICAgICAgICAgPHBhcmFtIG5hbWU9ImRlY29yYXRvci5wYXJhbWV0ZXIiIHZhbHVlPSJkZWNvcmF0b3IiLz4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJwYXJhbWV0ZXIubmFtZSIgdmFsdWU9ImNvbmZpcm0iLz4KKyAgICAgICAgICAgIDxwYXJhbSBuYW1lPSJwYXJhbWV0ZXIudmFsdWUiIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgIDwvbWFwcGVyPgorCisgICAgICAgIDxtYXBwZXIgY2xhc3M9ImNvbS5vcGVuc3ltcGhvbnkubW9kdWxlLnNpdGVtZXNoLm1hcHBlci5GaWxlRGVjb3JhdG9yTWFwcGVyIj4KKyAgICAgICAgPC9tYXBwZXI+CisKKyAgICAgICAgPG1hcHBlciBjbGFzcz0iY29tLm9wZW5zeW1waG9ueS5tb2R1bGUuc2l0ZW1lc2gubWFwcGVyLkNvbmZpZ0RlY29yYXRvck1hcHBlciI+CisgICAgICAgICAgICA8cGFyYW0gbmFtZT0iY29uZmlnIiB2YWx1ZT0iJHtkZWNvcmF0b3JzLWZpbGV9Ii8+CisgICAgICAgIDwvbWFwcGVyPgorCisgICAgPC9kZWNvcmF0b3ItbWFwcGVycz4KKworPC9zaXRlbWVzaD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3ZlbG9jaXR5LnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi92ZWxvY2l0eS5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5NDI3MDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi92ZWxvY2l0eS5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMyBAQAorIyBWZWxvY2l0eSBNYWNybyBsaWJyYXJpZXMuIFRoZSBzdHJ1dHMudm0gY29tZXMgc3RhbmRhcmQgd2l0aCBTdHJ1dHMuIFRoZSB0aWdyaXMtbWFjcm9zLnZtIGNvbWVzIHdpdGggdGhlIGNvbmZpZworIyBicm93c2VyLgordmVsb2NpbWFjcm8ubGlicmFyeSA9IHN0cnV0cy52bSwgdGlncmlzLW1hY3Jvcy52bQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvd2ViLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Y5YWY1MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3dlYi54bWwKQEAgLTAsMCArMSw1OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKworPCFET0NUWVBFIHdlYi1hcHAgUFVCTElDICItLy9TdW4gTWljcm9zeXN0ZW1zLCBJbmMuLy9EVEQgV2ViIEFwcGxpY2F0aW9uIDIuMy8vRU4iICJodHRwOi8vamF2YS5zdW4uY29tL2R0ZC93ZWItYXBwXzJfMy5kdGQiPgorCis8d2ViLWFwcD4KKworICAgIDxmaWx0ZXI+CisgICAgICAgIDxmaWx0ZXItbmFtZT5hY3Rpb24yPC9maWx0ZXItbmFtZT4KKyAgICAgICAgPGZpbHRlci1jbGFzcz5vcmcuYXBhY2hlLnN0cnV0czIuZGlzcGF0Y2hlci5GaWx0ZXJEaXNwYXRjaGVyPC9maWx0ZXItY2xhc3M+CisgICAgPC9maWx0ZXI+CisKKyAgICA8ZmlsdGVyPgorICAgICAgICA8ZmlsdGVyLW5hbWU+c2l0ZW1lc2g8L2ZpbHRlci1uYW1lPgorICAgICAgICA8ZmlsdGVyLWNsYXNzPmNvbS5vcGVuc3ltcGhvbnkubW9kdWxlLnNpdGVtZXNoLmZpbHRlci5QYWdlRmlsdGVyPC9maWx0ZXItY2xhc3M+CisgICAgPC9maWx0ZXI+CisKKyAgICA8ZmlsdGVyLW1hcHBpbmc+CisgICAgICAgIDxmaWx0ZXItbmFtZT5zaXRlbWVzaDwvZmlsdGVyLW5hbWU+CisgICAgICAgIDx1cmwtcGF0dGVybj4vKjwvdXJsLXBhdHRlcm4+CisgICAgPC9maWx0ZXItbWFwcGluZz4KKworICAgIDxmaWx0ZXItbWFwcGluZz4KKyAgICAgICAgPGZpbHRlci1uYW1lPmFjdGlvbjI8L2ZpbHRlci1uYW1lPgorICAgICAgICA8dXJsLXBhdHRlcm4+Lyo8L3VybC1wYXR0ZXJuPgorICAgIDwvZmlsdGVyLW1hcHBpbmc+CisKKyAgICA8bGlzdGVuZXI+CisgICAgICAgIDxsaXN0ZW5lci1jbGFzcz5vcmcuc3ByaW5nZnJhbWV3b3JrLndlYi5jb250ZXh0LkNvbnRleHRMb2FkZXJMaXN0ZW5lcjwvbGlzdGVuZXItY2xhc3M+CisgICAgPC9saXN0ZW5lcj4KKworICAgIDxzZXJ2bGV0PgorICAgICAgICA8c2VydmxldC1uYW1lPmR3cjwvc2VydmxldC1uYW1lPgorICAgICAgICA8c2VydmxldC1jbGFzcz51ay5sdGQuZ2V0YWhlYWQuZHdyLkRXUlNlcnZsZXQ8L3NlcnZsZXQtY2xhc3M+CisgICAgICAgIDxpbml0LXBhcmFtPgorICAgICAgICAgICAgPHBhcmFtLW5hbWU+ZGVidWc8L3BhcmFtLW5hbWU+CisgICAgICAgICAgICA8cGFyYW0tdmFsdWU+dHJ1ZTwvcGFyYW0tdmFsdWU+CisgICAgICAgIDwvaW5pdC1wYXJhbT4KKyAgICA8L3NlcnZsZXQ+CisKKyAgICA8c2VydmxldC1tYXBwaW5nPgorICAgICAgICA8c2VydmxldC1uYW1lPmR3cjwvc2VydmxldC1uYW1lPgorICAgICAgICA8dXJsLXBhdHRlcm4+L2R3ci8qPC91cmwtcGF0dGVybj4KKyAgICA8L3NlcnZsZXQtbWFwcGluZz4KKworICAgIDx3ZWxjb21lLWZpbGUtbGlzdD4KKyAgICAgICAgPHdlbGNvbWUtZmlsZT5pbmRleC5qc3A8L3dlbGNvbWUtZmlsZT4KKyAgICA8L3dlbGNvbWUtZmlsZS1saXN0PgorCisgICAgPHRhZ2xpYj4KKyAgICAgICAgPHRhZ2xpYi11cmk+c2l0ZW1lc2gtcGFnZTwvdGFnbGliLXVyaT4KKyAgICAgICAgPHRhZ2xpYi1sb2NhdGlvbj4vV0VCLUlORi9zaXRlbWVzaC1wYWdlLnRsZDwvdGFnbGliLWxvY2F0aW9uPgorICAgIDwvdGFnbGliPgorCisgICAgPHRhZ2xpYj4KKyAgICAgICAgPHRhZ2xpYi11cmk+c2l0ZW1lc2gtZGVjb3JhdG9yPC90YWdsaWItdXJpPgorICAgICAgICA8dGFnbGliLWxvY2F0aW9uPi9XRUItSU5GL3NpdGVtZXNoLWRlY29yYXRvci50bGQ8L3RhZ2xpYi1sb2NhdGlvbj4KKyAgICA8L3RhZ2xpYj4KKworPC93ZWItYXBwPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2NhcnQuanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2NhcnQuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2N2I2ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvY2FydC5qc3AKQEAgLTAsMCArMSwxMyBAQAorPCUKKyAgICByZXNwb25zZS5zZXRIZWFkZXIoIlByYWdtYSIsICJuby1jYWNoZSIpOworICAgIHJlc3BvbnNlLnNldEhlYWRlcigiQ2FjaGUtQ29udHJvbCIsICJuby1jYWNoZSIpOworICAgIHJlc3BvbnNlLnNldERhdGVIZWFkZXIoIkV4cGlyZXMiLCAwKTsKKyU+Cis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+Cis8JUAgcGFnZSBjb250ZW50VHlwZT0idGV4dC9odG1sO2NoYXJzZXQ9VVRGLTgiIGxhbmd1YWdlPSJqYXZhIiAlPgorPHAgY2xhc3M9ImJveFRpdGxlIj5TaG9wcGluZyBDYXJ0PC9wPgorCis8ZGl2IGlkPSJjYXJ0VGFibGUiPgorICAgIDxkaXY+PHNwYW4gY2xhc3M9ImNhcnRMYWJlbCI+TnVtYmVyIG9mIEl0ZW1zOjwvc3Bhbj48c3BhbiBjbGFzcz0iY2FydFZhbHVlIj48czpwcm9wZXJ0eSB2YWx1ZT0ibnVtQ2FydEl0ZW1zIi8+PC9zcGFuPjwvZGl2PgorICAgIDxkaXY+PHNwYW4gY2xhc3M9ImNhcnRMYWJlbCI+VG90YWw6PC9zcGFuPjxzcGFuIGNsYXNzPSJjYXJ0VmFsdWUiPiAkPHM6cHJvcGVydHkgdmFsdWU9ImNhcnRUb3RhbCIgLz48L3NwYW4+PC9kaXY+Cis8L2Rpdj4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jYXRlZ29yeS1tYWluLmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jYXRlZ29yeS1tYWluLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDA0MDNiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2NhdGVnb3J5LW1haW4uanNwCkBAIC0wLDAgKzEsMTcgQEAKKzwlCisgICAgcmVzcG9uc2Uuc2V0SGVhZGVyKCJQcmFnbWEiLCAibm8tY2FjaGUiKTsKKyAgICByZXNwb25zZS5zZXRIZWFkZXIoIkNhY2hlLUNvbnRyb2wiLCAibm8tY2FjaGUiKTsKKyAgICByZXNwb25zZS5zZXREYXRlSGVhZGVyKCJFeHBpcmVzIiwgMCk7CislPgorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPgorPCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDtjaGFyc2V0PVVURi04IiBsYW5ndWFnZT0iamF2YSIgJT4KKzxodG1sPgorPGhlYWQ+PHRpdGxlPkNhdGVnb3J5PC90aXRsZT4KKworPC9oZWFkPgorCis8Ym9keSBpZD0icGFnZS1ob21lIj4KKzwlLS08czphY3Rpb24gbmFtZT0iYWN0aXZlQ2F0ZWdvcnkiIG5hbWVzcGFjZT0iL2NhdGFsb2cvcmVtb3RlIiBleGVjdXRlUmVzdWx0PSJ0cnVlIiAvPi0tJT4KKzxzOmRpdiBpZD0ibWFpbiIgaHJlZj0iL2NhdGFsb2cvcmVtb3RlL2FjdGl2ZUNhdGVnb3J5LmFjdGlvbiIgdGhlbWU9ImFqYXgiIGxpc3RlblRvcGljcz0iY2F0ZWdvcnlTZWxlY3RlZCIgbG9hZGluZ1RleHQ9ImxvYWRpbmcuLi4iIC8+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvY2F0ZWdvcnkuanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2NhdGVnb3J5LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDIyNWFiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2NhdGVnb3J5LmpzcApAQCAtMCwwICsxLDQ4IEBACis8JQorICAgIHJlc3BvbnNlLnNldEhlYWRlcigiUHJhZ21hIiwgIm5vLWNhY2hlIik7CisgICAgcmVzcG9uc2Uuc2V0SGVhZGVyKCJDYWNoZS1Db250cm9sIiwgIm5vLWNhY2hlIik7CisgICAgcmVzcG9uc2Uuc2V0RGF0ZUhlYWRlcigiRXhwaXJlcyIsIDApOworJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L2h0bWw7Y2hhcnNldD1VVEYtOCIgbGFuZ3VhZ2U9ImphdmEiICU+Cis8czppZiB0ZXN0PSJjYXRlZ29yeSAhPSBudWxsIj4KKyAgICA8aDM+PHM6aWYgdGVzdD0iY2F0ZWdvcnkucGFyZW50ICE9IG51bGwiPjxzOnByb3BlcnR5IHZhbHVlPSJjYXRlZ29yeS5wYXJlbnQubmFtZSIvPiAmZ3Q7IDwvczppZj48czpwcm9wZXJ0eSB2YWx1ZT0iY2F0ZWdvcnkubmFtZSIvPjwvaDM+CisKKyAgICA8czpzZXQgbmFtZT0iY2F0ZWdvcnlQcm9kdWN0cyIgdmFsdWU9IiV7Y2F0YWxvZy5maW5kUHJvZHVjdHNCeUNhdGVnb3J5KGNhdGVnb3J5KX0iLz4KKyAgICA8czppZiB0ZXN0PSIoI2NhdGVnb3J5UHJvZHVjdHMgIT0gbnVsbCkgJiYgKCNjYXRlZ29yeVByb2R1Y3RzLnNpemUgPiAwKSI+CisgICAgICAgIDxkaXY+CisgICAgICAgICAgICA8czppdGVyYXRvciB2YWx1ZT0iI2NhdGVnb3J5UHJvZHVjdHMiPgorICAgICAgICAgICAgICAgIDxzOmZvcm0gaWQ9InF0eUZvcm1fJXtpZH0iIG5hbWU9InF0eUZvcm1fJXtpZH0iIG5hbWVzcGFjZT0iL2NhdGFsb2cvcmVtb3RlIiBhY3Rpb249InVwZGF0ZVF1YW50aXR5IiBtZXRob2Q9IlBPU1QiIHRoZW1lPSJhamF4IiB2YWxpZGF0ZT0idHJ1ZSI+CisgICAgICAgICAgICAgICAgICAgIDxzOmhpZGRlbiBuYW1lPSJwcm9kdWN0SWQiIHZhbHVlPSIle2lkfSIvPgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InByb2R1Y3REZXRhaWxzIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0SGVhZGVyIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxkaXYgY2xhc3M9InByb2R1Y3ROYW1lIj48czpwcm9wZXJ0eSB2YWx1ZT0ibmFtZSIvPjwvZGl2PjwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PGRpdiBjbGFzcz0icHJvZHVjdFByaWNlIj4kPHM6cHJvcGVydHkgdmFsdWU9InByaWNlIiAvPjwvZGl2PjwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZCBjb2xzcGFuPSIyIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcm9kdWN0RGVzY3JpcHRpb24iPjxzOnByb3BlcnR5IHZhbHVlPSJkZXNjcmlwdGlvbiIvPjwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgPHRyPjx0ZCBjb2xzcGFuPSIyIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJwcm9kdWN0UXVhbnRpdHkiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFF1YW50aXR5OiZuYnNwOzxzOnRleHRmaWVsZCBpZD0icXVhbnRpdHkiIG5hbWU9InF1YW50aXR5IiB0aGVtZT0ic2ltcGxlIiBzaXplPSIyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzOnN1Ym1pdCBpZD0icXR5U3VibWl0IiBuYW1lPSJxdHlTdWJtaXQiIHZhbHVlPSJVcGRhdGUiIHRoZW1lPSJhamF4IiBub3RpZnlUb3BpY3M9ImNhcnRVcGRhdGVkIiBvbkxvYWRKUz0iZG9jdW1lbnQucXR5Rm9ybV8le2lkfS5yZXNldCgpOyIgLz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+PC90cj4KKyAgICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgPC9zOmZvcm0+CisgICAgICAgICAgICA8L3M6aXRlcmF0b3I+CisgICAgICAgIDwvZGl2PgorICAgIDwvczppZj4KKyAgICA8czplbHNlPgorICAgICAgICA8Yj5UaGVyZSBhcmUgbm8gcHJvZHVjdHMgaW4gdGhpcyBjYXRlZ29yeTwvYj4KKyAgICA8L3M6ZWxzZT4KKzwvczppZj4KKzxzOmVsc2U+CisgICAgPGgyPlN0cnV0cyBBamF4IENhdGFsb2c8L2gyPgorCisgICAgPHA+UGxlYXNlIGNob29zZSBhIGNhdGVnb3J5IHRvIHN0YXJ0IHNob3BwaW5nLjwvcD4KKzwvczplbHNlPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2NhdGVnb3J5U2V0LmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jYXRlZ29yeVNldC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY5ZjYyMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jYXRlZ29yeVNldC5qc3AKQEAgLTAsMCArMSw4IEBACis8JQorICAgIHJlc3BvbnNlLnNldEhlYWRlcigiUHJhZ21hIiwgIm5vLWNhY2hlIik7CisgICAgcmVzcG9uc2Uuc2V0SGVhZGVyKCJDYWNoZS1Db250cm9sIiwgIm5vLWNhY2hlIik7CisgICAgcmVzcG9uc2Uuc2V0RGF0ZUhlYWRlcigiRXhwaXJlcyIsIDApOworJT4KKzwlQCB0YWdsaWIgcHJlZml4PSJzIiB1cmk9Ii9zdHJ1dHMtdGFncyIgJT4KKzwlQCBwYWdlIGNvbnRlbnRUeXBlPSJ0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLTgiIGxhbmd1YWdlPSJqYXZhIiAlPgorQ2F0ZWdvcnkgc2V0IHRvIDxzOnByb3BlcnR5IHZhbHVlPSJjYXRlZ29yeUlkIi8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvY3NzL2NhcnQuY3NzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy9jYXJ0LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMGExZGI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy9jYXJ0LmNzcwpAQCAtMCwwICsxLDEwNCBAQAorLmJveFRpdGxlIHsKKyAgICB0ZXh0LWFsaWduOnJpZ2h0OworICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICBmb250LXNpemU6IGxhcmdlOworICAgIHBhZGRpbmc6IDAgMTBweCAwIDA7CisgICAgbWFyZ2luOiAwOworICAgIGNsZWFyOnJpZ2h0OworfQorCitkaXYjY2F0ZWdvcmllcywgZGl2I2NhcnQgeworICAgIHdpZHRoOiAyNTBweDsKKyAgICBmbG9hdDogbGVmdDsKK30KK2RpdiNjYXRlZ29yaWVzIHsKKyAgICBkaXNwbGF5OiBibG9jazsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhjOworICAgIGJvcmRlci1jb2xvcjogI2RhYTUyMDsKK30KK2RpdiNjYXRlZ29yaWVzIC5kdHJlZSB7CisgICAgcGFkZGluZy1sZWZ0OjVweDsKKyAgICBwYWRkaW5nLXJpZ2h0OjVweDsKK30KK2RpdiNjYXJ0IHsKKyAgICBkaXNwbGF5OmJsb2NrOworICAgIG1hcmdpbi10b3A6MjBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZkYWI5OworICAgIGJvcmRlci1jb2xvcjogIzhiMDAwMDsKK30KKworZGl2I2NhcnRUYWJsZSB7CisgICAgcGFkZGluZy10b3A6MTBweDsKKyAgICBkaXNwbGF5OmJsb2NrOworICAgIHdpZHRoOjI0OHB4OworfQorLmNhcnRMYWJlbCwgLmNhcnRWYWx1ZSB7CisgICAgZGlzcGxheTp0YWJsZS1jZWxsOworICAgIG1hcmdpbjowcHg7CisgICAgcGFkZGluZzowcHg7Cit9CisuY2FydExhYmVsIHsKKyAgICB3aWR0aDogMTI1cHg7CisgICAgdGV4dC1hbGlnbjpyaWdodDsKKyAgICBwYWRkaW5nLXJpZ2h0OjEwcHg7CisgICAgZm9udC13ZWlnaHQ6Ym9sZDsKK30KKy5jYXJ0VmFsdWUgeworICAgIHdpZHRoOiAxMDBweDsKKyAgICB0ZXh0LWFsaWduOmxlZnQ7Cit9CisKKy5wcm9kdWN0IHsKKyAgICBkaXNwbGF5OmJsb2NrOworfQorCisucHJvZHVjdFF1YW50aXR5IHsKKyAgICBkaXNwbGF5OmJsb2NrOworICAgIGNsZWFyOiBib3RoOworICAgIHRleHQtYWxpZ246bGVmdDsKKyAgICB3aWR0aDo5OCU7CisgICAgbWFyZ2luLXJpZ2h0OiAyJTsKK30KKworLnByb2R1Y3REZXRhaWxzIHsKKyAgICBkaXNwbGF5OmJsb2NrOworICAgIGJhY2tncm91bmQtY29sb3I6ICNDREZGQUE7CisgICAgYm9yZGVyLXdpZHRoOiAxcHg7CisgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKKyAgICBib3JkZXItY29sb3I6Izg4RDg0RjsKKyAgICB3aWR0aDo5OCU7CisgICAgbWFyZ2luLXJpZ2h0OiAyJTsKK30KKworLnByb2R1Y3ROYW1lLCAucHJvZHVjdFByaWNlLCAucHJvZHVjdERlc2NyaXB0aW9uIHsKKyAgICBtYXJnaW46IGF1dG8gMCBhdXRvIDA7CisgICAgcGFkZGluZzogaW5oZXJpdCAwIGluaGVyaXQgMDsKK30KKworLnByb2R1Y3ROYW1lLCAucHJvZHVjdFByaWNlIHsKKyAgICBmb250LXdlaWdodDpib2xkOworICAgIHBhZGRpbmc6IDEwcHg7Cit9CisKKy5wcm9kdWN0TmFtZSB7CisgICAgZmxvYXQ6bGVmdDsKK30KKworLnByb2R1Y3RQcmljZSB7CisgICAgZmxvYXQ6cmlnaHQ7Cit9CisKKy5wcm9kdWN0RGVzY3JpcHRpb24geworICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICBjbGVhcjogYm90aDsKKyAgICBwYWRkaW5nOiAxMHB4OworICAgIGNvbG9yOiM2OTY5Njk7Cit9CisKKy5wcm9kdWN0QWRkIHsKKyAgICBkaXNwbGF5OmJsb2NrOworICAgIGNsZWFyOiBib3RoOworICAgIHRleHQtYWxpZ246IHJpZ2h0OworICAgIG1hcmdpbi1yaWdodDoyJTsKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvZHRyZWUuY3NzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy9kdHJlZS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODUyNDc3MQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvZHRyZWUuY3NzCkBAIC0wLDAgKzEsMzYgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Cit8IGRUcmVlIDIuMDUgfCB3d3cuZGVzdHJveWRyb3AuY29tL2phdmFzY3JpcHQvdHJlZS8gfAorfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKK3wgQ29weXJpZ2h0IChjKSAyMDAyLTIwMDMgR2VpciBMYW5kcvYgICAgICAgICAgICAgICB8Cit8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBDb3B5cmlnaHQgMjAwNiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uICovCisuZHRyZWUgeworCWZvbnQtZmFtaWx5OiBWZXJkYW5hLCBHZW5ldmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CisJZm9udC1zaXplOiAxMXB4OworCWNvbG9yOiAjNjY2OworCXdoaXRlLXNwYWNlOiBub3dyYXA7Cit9CisuZHRyZWUgaW1nIHsKKwlib3JkZXI6IDBweDsKKwl2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworfQorLmR0cmVlIGEgeworCWNvbG9yOiAjMzMzOworCXRleHQtZGVjb3JhdGlvbjogbm9uZTsKK30KKy5kdHJlZSBhLm5vZGUsIC5kdHJlZSBhLm5vZGVTZWwgeworCXdoaXRlLXNwYWNlOiBub3dyYXA7CisJcGFkZGluZzogMXB4IDJweCAxcHggMnB4OworfQorLmR0cmVlIGEubm9kZTpob3ZlciwgLmR0cmVlIGEubm9kZVNlbDpob3ZlciB7CisJY29sb3I6ICMzMzM7CisJdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cit9CisuZHRyZWUgYS5ub2RlU2VsIHsKKwliYWNrZ3JvdW5kLWNvbG9yOiAjZGFhNTIwOworICAgIGZvbnQtc3R5bGU6aXRhbGljOworfQorLmR0cmVlIC5jbGlwIHsKKwlvdmVyZmxvdzogaGlkZGVuOworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy9mb3Jtcy5jc3MgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvY3NzL2Zvcm1zLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2MyMTg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy9mb3Jtcy5jc3MKQEAgLTAsMCArMSwxMDIgQEAKKy8qIEEgQ1NTIEZyYW1ld29yayBieSBNaWtlIFN0ZW5ob3VzZSBvZiBDb250ZW50IHdpdGggU3R5bGUgKi8KKworLyogRk9STSBFTEVNRU5UUyAqLworCWZvcm0geworCQltYXJnaW46MDsKKwkJcGFkZGluZzowOworCX0KKwlmb3JtIGRpdiwKKwlmb3JtIHAgeworCQlmb250LXNpemU6IDFlbTsKKwkJbWFyZ2luOiAwIDAgMWVtIDA7CisJCXBhZGRpbmc6IDA7CisJfQorCWxhYmVsIHsKKwkJZm9udC13ZWlnaHQ6IGJvbGQ7CisJfQorCWZpZWxkc2V0IHsKKwkJYm9yZGVyOiAxcHggc29saWQgI2VlZTsKKwkJcGFkZGluZzogNXB4IDEwcHg7CisJCW1hcmdpbjogMCAwIDEuNWVtIDA7CisJfQorCWZpZWxkc2V0IGxlZ2VuZCB7CisJCWNvbG9yOiAjNjY2OworCQlmb250LXNpemU6IDEuMWVtOworCQlmb250LXdlaWdodDogYm9sZDsKKwkJbWFyZ2luOiAwIDAgMCAwcHg7CisJCXBhZGRpbmc6IDA7CisJCWJhY2tncm91bmQtY29sb3I6ICNFQ0YxRjk7CisJfQorCSogaHRtbCBmaWVsZHNldCBsZWdlbmQgeworCQltYXJnaW46IDAgMCAxMHB4IC0xMHB4OworCX0KKwlmaWVsZHNldCB1bCB7CisJCWxpc3Qtc3R5bGU6IG5vbmU7CisJCW1hcmdpbjogMCAwIDEuNWVtIDA7CisJCXBhZGRpbmc6IDA7CisJfQorCWZpZWxkc2V0IHVsIGxpIHsKKwkJbGlzdC1zdHlsZTogbm9uZTsKKwkJbWFyZ2luOiAwIDAgMC41ZW0gMDsKKwkJcGFkZGluZzogMDsKKwl9CisgICAgIAorCQorCWlucHV0LCBzZWxlY3QsIHRleHRhcmVhIHsKKwkJZm9udC1zaXplOjFlbTsgCisJCWZvbnQtZmFtaWx5OiBhcmlhbCwgaGVsdmV0aWNhLCB2ZXJkYW5hLCBzYW5zLXNlcmlmOworICAgICAgICAKKyAgICAgICAgbWFyZ2luOiAwOworCQlwYWRkaW5nOiAycHg7CisJfQorCQorCWlucHV0LCBzZWxlY3QgeworCQl2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7CisJfQorCQorCXRleHRhcmVhIHsKKwkJd2lkdGg6IDIwMHB4OworCQloZWlnaHQ6IDhlbTsKKwl9CisJCisJaW5wdXQuY2hlY2sgeworCQlib3JkZXI6IG5vbmU7CisJCXdpZHRoOiBhdXRvOworCQloZWlnaHQ6IGF1dG87CisJCW1hcmdpbjogMDsKKwl9CisJaW5wdXQucmFkaW8geworCQlib3JkZXI6IG5vbmU7CisJCXdpZHRoOiBhdXRvOworCQloZWlnaHQ6IGF1dG87CisJCW1hcmdpbjogMDsKKwl9CisJaW5wdXQuZmlsZSB7CisJCWhlaWdodDogYXV0bzsKKwkJd2lkdGg6IDI1MHB4OworCX0KKwlpbnB1dC5yZWFkb25seSB7CisJCWJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OworCQlib3JkZXI6IG5vbmU7CisJfQorCWlucHV0LmJ1dHRvbiB7CisJCXdpZHRoOiAxMGVtOworCQlib3JkZXI6MXB4IHNvbGlkIGJsYWNrOworCQliYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOworCX0KKwlpbnB1dC5pbWFnZSB7CisJCWJvcmRlcjogbm9uZTsKKwkJd2lkdGg6IGF1dG87CisJCWhlaWdodDogYXV0bzsgCisJfQorCQorICAgIGZvcm0gZGl2LnN1Ym1pdCB7CisJCW1hcmdpbjogMWVtIDA7CisJfQorICAgIGZvcm0gZGl2LnN1Ym1pdCBpbnB1dCB7CisJCWhlaWdodDogMmVtOworICAgICAgICB3aWR0aDogMTVlbTsKKwl9CisJCisvKiBFTkQgRk9STSBFTEVNRU5UUyAqLworCQkKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvbGF5b3V0LW5hdnRvcC0xY29sLmNzcyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvbGF5b3V0LW5hdnRvcC0xY29sLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZWFiNDgwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy9sYXlvdXQtbmF2dG9wLTFjb2wuY3NzCkBAIC0wLDAgKzEsMzMgQEAKKy8qIEEgQ1NTIEZyYW1ld29yayBieSBNaWtlIFN0ZW5ob3VzZSBvZiBDb250ZW50IHdpdGggU3R5bGUgKi8KKworQGltcG9ydCB1cmwoIm5hdi1ob3Jpem9udGFsLmNzcyIpOworIAorLyogTkFWIEJBUiBBVCBUSEUgVE9QIEFORCBPTkUgQ09MVU1OIE9GIENPTlRFTlQgKi8KKyAgICBkaXYjY29udGVudCB7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgd2lkdGg6IDcwMXB4OworICAgICAgICAKKyAgICAgICAgbWFyZ2luOiAwIGF1dG8gMjBweCBhdXRvOworICAgICAgICBwYWRkaW5nOiAwOworICAgICAgICAKKyAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICB9CisgICAgZGl2I21haW4geworICAgICAgICB3aWR0aDogMTAwJTsKKyAgICB9CisgICAgZGl2I2xvY2FsIHsKKyAgICAgICAgd2lkdGg6IDEwMCU7CisJCSAgZGlzcGxheTogbm9uZTsKKyAgICB9CisgICAgZGl2I3N1YiB7CisgICAgICAgIHdpZHRoOiAxMDAlOworICAgIH0KKyAgICBkaXYjbmF2IHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IC0xNXB4OworICAgICAgICBsZWZ0OiAwOworICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgCisgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgfQorLyogRU5EIENPTlRFTlQgKi8KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvbGF5b3V0LW5hdnRvcC1sb2NhbGxlZnQuY3NzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy9sYXlvdXQtbmF2dG9wLWxvY2FsbGVmdC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjllYjU5YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvbGF5b3V0LW5hdnRvcC1sb2NhbGxlZnQuY3NzCkBAIC0wLDAgKzEsMzYgQEAKKy8qIEEgQ1NTIEZyYW1ld29yayBieSBNaWtlIFN0ZW5ob3VzZSBvZiBDb250ZW50IHdpdGggU3R5bGUgKi8KKworQGltcG9ydCB1cmwoIm5hdi1ob3Jpem9udGFsLmNzcyIpOworCisvKiBOQVYgQkFSIEFUIFRIRSBUT1AsIExPQ0FMIE5BVklHQVRJT04gT04gVEhFIExFRlQgQU5EIE9ORSBDT0xVTU4gT0YgQ09OVEVOVCAqLworICAgIGRpdiNjb250ZW50IHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB3aWR0aDogNzAxcHg7CisgICAgICAgIAorICAgICAgICBtYXJnaW46IDVlbSBhdXRvIDIwcHggYXV0bzsKKyAgICAgICAgcGFkZGluZzogMDsKKyAgICAgICAgCisgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7CisgICAgfQorICAgIGRpdiNtYWluIHsKKyAgICAgICAgZmxvYXQ6IHJpZ2h0OworICAgICAgICB3aWR0aDogNDI1cHg7CisgICAgICAgIGRpc3BsYXk6IGlubGluZTsKKyAgICB9CisgICAgZGl2I2xvY2FsIHsKKyAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgIHdpZHRoOiAyNzVweDsKKyAgICAgICAgZGlzcGxheTogaW5saW5lOworICAgIH0KKyAgICBkaXYjc3ViIHsKKyAgICAgICAgZGlzcGxheTogbm9uZTsKKyAgICB9CisgICAgZGl2I25hdiB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiAtMTVweDsKKyAgICAgICAgbGVmdDogMDsKKyAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgIAorICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIH0KKy8qIEVORCBDT05URU5UICovCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvY3NzL2xheW91dC5jc3MgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvY3NzL2xheW91dC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM3YWY4NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvbGF5b3V0LmNzcwpAQCAtMCwwICsxLDEzNiBAQAorLyogQSBDU1MgRnJhbWV3b3JrIGJ5IE1pa2UgU3RlbmhvdXNlIG9mIENvbnRlbnQgd2l0aCBTdHlsZSAqLworCisvKiBTSVRFIFNQRUNJRklDIExBWU9VVCAqLworICAgIGJvZHkgeworICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIHBhZGRpbmc6IDA7CisgICAgICAgIAorICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKKyAgICAgICAgICAgICAgCisgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICB9CisgICAgZGl2I3BhZ2UgeworICAgICAgICB3aWR0aDogNzgwcHg7CisgICAgICAgIAorICAgICAgICBtYXJnaW46ICAwIGF1dG87CisgICAgICAgIHBhZGRpbmc6IDA7CisgICAgICAgIAorICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgfQorICAgIAorICAgIC8qIEhFQURFUiAqLworICAgICAgICBkaXYjaGVhZGVyIHsKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAgIHBhZGRpbmc6IDVweCAwcHggMCAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBjb2xvcjogd2hpdGU7CisgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjODE4RUJEOworICAgICAgICAgICAgCisgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgICAgICB9CisgICAgICAgIGRpdiNicmFuZGluZyB7CisgICAgICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgICAgIHdpZHRoOiA0MCU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAgIHBhZGRpbmc6IDVweCAwIDVweCAxMHB4OworICAgICAgICAgICAgCisgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgICAgICB9CisgICAgICAgIGRpdiNzZWFyY2ggeworICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OworICAgICAgICAgICAgd2lkdGg6IDQ5JTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgcGFkZGluZzogOHB4IDEwcHggMCAwOworICAgICAgICAgICAgCisgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsKKyAgICAgICAgfQorICAgIGRpdiNoZWFkZXJfc3BhY2VyIHsKKyAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICAgICAgaGVpZ2h0OiA1ZW07CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKKyAgICAgICAgfQorICAgIC8qIEVORCBIRUFERVIgKi8KKworCisgICAgLyogQ09OVEVOVCAqLworCisgICAgLyogRU5EIEhFQURFUiAqLworCisKKyAgICAvKiBDT05URU5UICovCisgICAgICAgIGRpdiNjb250ZW50IHsKKworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvKiBNQUlOICovCisgICAgICAgICAgICBkaXYjbWFpbiB7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgIC8qIEVORCBNQUlOICovCisgICAgICAgIAorICAgICAgICAvKiBTVUIgKi8KKyAgICAgICAgICAgIGRpdiNzdWIgeworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICAvKiBFTkQgU1VCICovCisgICAgICAgIAorICAgIC8qIEVORCBDT05URU5UICovCisgICAgCisgICAgCisgICAgLyogRk9PVEVSICovCisgICAgICAgIGRpdiNmb290ZXIgeworICAgICAgICAgICAgY29sb3I6IHdoaXRlOworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzgxOEVCRDsKKyAgICAgICAgICAgIGJvcmRlci13aWR0aDowOworCQkJCW1hcmdpbi1ib3R0b206IDRweDsKKyAgICAgICAgfQorICAgICAgICBkaXYjZm9vdGVyIHAgeworICAgICAgICAgICAgZm9udC1zaXplOiAwLjhlbTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgcGFkZGluZzogNXB4OworICAgICAgICB9CisgICAgLyogRU5EIEZPT1RFUiAqLworLyogRU5EIExBWU9VVCAqLworCisKKworCisvKiBVTC5TVUJOQVYgKi8KKyAgICB1bC5zdWJuYXYgeworICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIHBhZGRpbmc6IDA7CisgICAgICAgIAorICAgICAgICBmb250LXNpemU6IDAuOGVtOworICAgICAgICBsaXN0LXN0eWxlOiBub25lOworICAgIH0KKyAgICB1bC5zdWJuYXYgbGkgeworICAgICAgICBtYXJnaW46IDAgMCAxZW0gMDsKKyAgICAgICAgcGFkZGluZzogMDsKKyAgICAgICAgbGlzdC1zdHlsZTogbm9uZTsKKyAgICB9CisgICAgdWwuc3VibmF2IGxpIGEsCisgICAgdWwuc3VibmF2IGxpIGE6bGluaywKKyAgICB1bC5zdWJuYXYgbGkgYTp2aXNpdGVkLAorICAgIHVsLnN1Ym5hdiBsaSBhOmFjdGl2ZSB7CisgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgIGNvbG9yOiBibGFjazsKKyAgICB9CisgICAgdWwuc3VibmF2IGxpIGE6aG92ZXIgeworICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKKyAgICB9CisgICAgdWwuc3VibmF2IGxpIHN0cm9uZyB7CisgICAgICAgIHBhZGRpbmc6IDAgMCAwIDEycHg7CisgICAgICAgIGJhY2tncm91bmQ6IHVybCgiLi4vaS9zdWJuYXYtaGlnaGxpZ2h0LmdpZiIpIGxlZnQgdG9wIG5vLXJlcGVhdCB0cmFuc3BhcmVudDsKKyAgICB9CisgICAgdWwuc3VibmF2IGxpIHN0cm9uZyBhLAorICAgIHVsLnN1Ym5hdiBsaSBzdHJvbmcgYTpsaW5rLAorICAgIHVsLnN1Ym5hdiBsaSBzdHJvbmcgYTp2aXNpdGVkLAorICAgIHVsLnN1Ym5hdiBsaSBzdHJvbmcgYTphY3RpdmUgeworICAgICAgICBjb2xvcjogd2hpdGU7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4MThFQkQ7CisgICAgfQorLyogRU5EIFVMLlNVQk5BViAqLwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy9tYWluLmNzcyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvbWFpbi5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA4NWVkMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvbWFpbi5jc3MKQEAgLTAsMCArMSw1IEBACitAaW1wb3J0IHVybChsYXlvdXQtbmF2dG9wLWxvY2FsbGVmdC5jc3MpOworQGltcG9ydCB1cmwobGF5b3V0LmNzcyk7CitAaW1wb3J0IHVybChmb3Jtcy5jc3MpOworQGltcG9ydCB1cmwodHlwby5jc3MpOworQGltcG9ydCB1cmwodG9vbHMuY3NzKTsKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvbmF2LWhvcml6b250YWwuY3NzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy9uYXYtaG9yaXpvbnRhbC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTY5YjY4OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvbmF2LWhvcml6b250YWwuY3NzCkBAIC0wLDAgKzEsODAgQEAKKy8qIEEgQ1NTIEZyYW1ld29yayBieSBNaWtlIFN0ZW5ob3VzZSBvZiBDb250ZW50IHdpdGggU3R5bGUgKi8KKworLyogTkFWICovCisJZGl2I25hdiB7CisgICAgICAgIGZvbnQtc2l6ZTogMC44ZW07CisgICAgfQorICAgICogaHRtbCBkaXYjbmF2IHsKKyAgICAgICAgLyogaGlkZSBpZS9tYWMgXCovCisgICAgICAgIGhlaWdodDogMSU7CisgICAgICAgIC8qIGVuZCBoaWRlICovCisgICAgfQorICAgIGRpdiNuYXYgZGl2LndyYXBwZXIgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIGxlZnQ6IDA7CisgICAgICAgIGJvdHRvbTogMDsKKyAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgfQorICAgIGRpdiNuYXYgdWwgeworICAgICAgICB3aWR0aDogYXV0bzsgCisgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAgICAgIAorICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIHBhZGRpbmc6IDA7CisgICAgICAgIAorICAgICAgICBsaW5lLWhlaWdodDogMWVtOworICAgICAgICBsaXN0LXN0eWxlOiBub25lOworICAgIH0KKyAgICBkaXYjbmF2IGxpIHsKKyAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgIGRpc3BsYXk6IGlubGluZTsKKyAgIAorICAgICAgICBsaXN0LXN0eWxlOiBub25lOworICAgICAgICAKKyAgICAgICAgbWFyZ2luOiAwOworICAgICAgICBwYWRkaW5nOiAwOworICAgICAgICAKKyAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTsKKyAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2FhYTsKKyAgICB9CisgICAgZGl2I25hdiBsaS5sYXN0IHsKKyAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOworICAgIH0KKyAgICBkaXYjbmF2IGEsCisgICAgZGl2I25hdiBhOmxpbmssCisgICAgZGl2I25hdiBhOmFjdGl2ZSwKKyAgICBkaXYjbmF2IGE6dmlzaXRlZCB7CisgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgLyogaGlkZSBmcm9tIGllL21hYyBcKi8KKyAgICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICAgIC8qIGVuZCBoaWRlICovCisgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CisgICAgICAgIAorICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIHBhZGRpbmc6IDVweCAzOHB4IDVweCAzOHB4OworICAgICAgICAKKyAgICAgICAgY29sb3I6IGJsYWNrOworICAgICAgICBiYWNrZ3JvdW5kOiAjZGRkOworICAgIH0KKyAgICBkaXYjbmF2IGE6aG92ZXIgeworICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKKyAgICB9CisgICAgZGl2I25hdiBzdHJvbmcgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIC8qIGhpZGUgZnJvbSBpZS9tYWMgXCovCisgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICAvKiBlbmQgaGlkZSAqLworICAgICAgICAKKyAgICAgICAgY29sb3I6IHdoaXRlOworICAgICAgICBiYWNrZ3JvdW5kOiAjODE4RUJEOworICAgIH0KKyAgICBkaXYjbmF2IHN0cm9uZyBhLAorICAgIGRpdiNuYXYgc3Ryb25nIGE6bGluaywKKyAgICBkaXYjbmF2IHN0cm9uZyBhOmFjdGl2ZSwKKyAgICBkaXYjbmF2IHN0cm9uZyBhOnZpc2l0ZWQsCisgICAgZGl2I25hdiBzdHJvbmcgYTpob3ZlciB7CisgICAgICAgY29sb3I6IHdoaXRlOworICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4MThFQkQ7CisgICAgfQorLyogRU5EIE5BViAqLwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy9uaWZ0eUNvcm5lcnMuY3NzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy9uaWZ0eUNvcm5lcnMuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0N2ZjMTIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvY3NzL25pZnR5Q29ybmVycy5jc3MKQEAgLTAsMCArMSwyMSBAQAorLnJ0b3AsLmFydG9we2Rpc3BsYXk6YmxvY2t9CisucnRvcCAqLC5hcnRvcCAqe2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjFweDtvdmVyZmxvdzpoaWRkZW47Zm9udC1zaXplOjFweH0KKy5hcnRvcCAqe2JvcmRlci1zdHlsZTogc29saWQ7Ym9yZGVyLXdpZHRoOjAgMXB4fQorLnIxLC5ybDEsLnJlMSwucmVsMXttYXJnaW4tbGVmdDo1cHh9CisucjEsLnJyMSwucmUxLC5yZXIxe21hcmdpbi1yaWdodDo1cHh9CisucjIsLnJsMiwucmUyLC5yZWwyLC5yYTEsLnJhbDF7bWFyZ2luLWxlZnQ6M3B4fQorLnIyLC5ycjIsLnJlMiwucmVyMiwucmExLC5yYXIxe21hcmdpbi1yaWdodDozcHh9CisucjMsLnJsMywucmUzLC5yZWwzLC5yYTIsLnJhbDIsLnJzMSwucnNsMSwucmVzMSwucmVzbDF7bWFyZ2luLWxlZnQ6MnB4fQorLnIzLC5ycjMsLnJlMywucmVyMywucmEyLC5yYXIyLC5yczEsLnJzcjEsLnJlczEsLnJlc3Ixe21hcmdpbi1yaWdodDoycHh9CisucjQsLnJsNCwucnMyLC5yc2wyLC5yZTQsLnJlbDQsLnJhMywucmFsMywucmFzMSwucmFzbDEsLnJlczIsLnJlc2wye21hcmdpbi1sZWZ0OjFweH0KKy5yNCwucnI0LC5yczIsLnJzcjIsLnJlNCwucmVyNCwucmEzLC5yYXIzLC5yYXMxLC5yYXNyMSwucmVzMiwucmVzcjJ7bWFyZ2luLXJpZ2h0OjFweH0KKy5yeDEsLnJ4bDF7Ym9yZGVyLWxlZnQtd2lkdGg6NXB4fQorLnJ4MSwucnhyMXtib3JkZXItcmlnaHQtd2lkdGg6NXB4fQorLnJ4MiwucnhsMntib3JkZXItbGVmdC13aWR0aDozcHh9CisucngyLC5yeHIye2JvcmRlci1yaWdodC13aWR0aDozcHh9CisucmUyLC5yZWwyLC5yYTEsLnJhbDEsLnJ4MywucnhsMywucnhzMSwucnhzbDF7Ym9yZGVyLWxlZnQtd2lkdGg6MnB4fQorLnJlMiwucmVyMiwucmExLC5yYXIxLC5yeDMsLnJ4cjMsLnJ4czEsLnJ4c3Ixe2JvcmRlci1yaWdodC13aWR0aDoycHh9CisucnhsMSwucnhsMiwucnhsMywucnhsNCwucnhzbDEsLnJ4c2wyLC5yYWwxLC5yYWwyLC5yYWwzLC5yYWw0LC5yYXNsMSwucmFzbDJ7Ym9yZGVyLXJpZ2h0LXdpZHRoOjB9CisucnhyMSwucnhyMiwucnhyMywucnhyNCwucnhzcjEsLnJ4c3IyLC5yYXIxLC5yYXIyLC5yYXIzLC5yYXI0LC5yYXNyMSwucmFzcjJ7Ym9yZGVyLWxlZnQtd2lkdGg6MH0KKy5yNCwucmw0LC5ycjQsLnJlNCwucmVsNCwucmVyNCwucmE0LC5yYXI0LC5yYWw0LC5yeDQsLnJ4bDQsLnJ4cjR7aGVpZ2h0OjJweH0KKy5yZXIxLC5yZWwxLC5yZTEsLnJlczEsLnJlc2wxLC5yZXNyMXtib3JkZXItd2lkdGg6MXB4IDAgMDtoZWlnaHQ6MHB4ICFpbXBvcnRhbnQ7aGVpZ2h0IC8qKi86MXB4fQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy9uaWZ0eVByaW50LmNzcyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvbmlmdHlQcmludC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE4NzFlMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvbmlmdHlQcmludC5jc3MKQEAgLTAsMCArMSwyIEBACisucnRvcCwuYXJ0b3B7ZGlzcGxheTogbm9uZX0KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy9uaWZ0eWxheW91dC5jc3MgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvY3NzL25pZnR5bGF5b3V0LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWZjZTFiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy9uaWZ0eWxheW91dC5jc3MKQEAgLTAsMCArMSw1NyBAQAorLyp0eXBvZ3JhcGh5Ki8KK2JvZHl7Zm9udDogNzYlIHZlcmRhbmEsYXJpYWwsc2Fucy1zZXJpZjt0ZXh0LWFsaWduOiBjZW50ZXJ9CitoMSxoMixoM3tmb250LWZhbWlseTogIlRyZWJ1Y2hldCBNUyIsYXJpYWwsc2Fucy1zZXJpZn0KK2gxe2ZvbnQtc2l6ZTogMjAwJX0KK2gye2ZvbnQtc2l6ZTogMTYwJX0KK2gze2ZvbnQtc2l6ZToxMTAlO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzoxcHg7bWFyZ2luOjAgNXB4fQoraDIscHttYXJnaW46IDAgMTVweDtwYWRkaW5nOjB9Citwe3BhZGRpbmctYm90dG9tOiAwLjdlbTtsaW5lLWhlaWdodDogMS41fQorYXt0ZXh0LWRlY29yYXRpb246IG5vbmV9CithZGRyZXNze3BhZGRpbmc6IDNweCAxNXB4O2ZvbnQtc3R5bGU6bm9ybWFsfQorZGl2I3JlbGF4IHB7Zm9udC1zaXplOiAxMjAlfQorCisKKy8qbGF5b3V0Ki8KK2h0bWx7aGVpZ2h0OiAxMDAlOyBtYXJnaW4tYm90dG9tOiAxcHh9CitodG1sLGJvZHl7bWFyZ2luOjA7cGFkZGluZzowIDAgMjBweH0KK2RpdiNjb250YWluZXJ7d2lkdGg6IDU1MHB4O21hcmdpbjogMCBhdXRvO3RleHQtYWxpZ246IGxlZnR9CitkaXYjaGVhZGVye21hcmdpbjowIDAgMTBweDtwYWRkaW5nOiAwIDAgNXB4fQorZGl2I2hlYWRlciBoMXttYXJnaW46MCA1cHg7cGFkZGluZzo2MHB4IDAgMnB4fQorZGl2I2hlYWRlciBhe21hcmdpbi1sZWZ0OiAxMHB4fQorZGl2I3NpZGViYXJ7ZmxvYXQ6IHJpZ2h0O3dpZHRoOiAxNTBweH0KK2RpdiNzaWRlYmFyIGRpdntwYWRkaW5nOiA1cHggMDttYXJnaW4tYm90dG9tOiA1cHh9CitkaXYjc2lkZWJhciBkaXYjbWVudXttYXJnaW46IDAgNXB4fQorZGl2I25hdiB1bCxkaXYjbmF2IGxpe21hcmdpbjowO3BhZGRpbmc6MDtsaXN0LXN0eWxlLXR5cGU6bm9uZTtsaW5lLWhlaWdodDogMS41fQorZGl2I25hdiBhe21hcmdpbi1sZWZ0OjVweDtwYWRkaW5nLWxlZnQ6MTBweH0KK2RpdiNzaWRlYmFyIHB7bWFyZ2luOiAwIDVweDtwYWRkaW5nOjB9CitkaXYjc2lkZWJhciBwK3B7bWFyZ2luLXRvcDogMC43ZW19Citmb3Jte21hcmdpbjogNXB4IDA7cGFkZGluZzogNXB4IDB9Citmb3JtIGgze21hcmdpbi1ib3R0b206IDEwcHh9Citmb3JtIGRpdntwYWRkaW5nOiA1cHggMH0KK2Zvcm0gaW5wdXQjZmluZHt3aWR0aDogOTBweDttYXJnaW4tbGVmdDoxMHB4fQorZGl2I2NvbnRlbnR7d2lkdGg6Mzk1cHg7cGFkZGluZzo1cHggMH0KK2Jsb2NrcXVvdGV7ZmxvYXQ6bGVmdDtkaXNwbGF5OmlubGluZTt3aWR0aDogMjAwcHg7bWFyZ2luOiAwIDEwcHggNXB4IDE1cHg7cGFkZGluZzogNXB4IDB9CitibG9ja3F1b3RlIHB7bWFyZ2luOjA7cGFkZGluZzogMCA1cHg7dGV4dC1hbGlnbjogY2VudGVyfQorZGl2I3JlbGF4e21hcmdpbjogMCAxNXB4IDEwcHg7cGFkZGluZzogNXB4IDB9CitkaXYjcmVsYXggcCwgZGl2I3JlbGF4IGgye21hcmdpbjogMCA1cHh9CitkaXYjZm9vdGVye2NsZWFyOiByaWdodDttYXJnaW4tdG9wOiAxMHB4fQorCisvKmNvbG9ycyovCitib2R5e2JhY2tncm91bmQ6ICNENkRFRUN9CitkaXYjaGVhZGVye2JhY2tncm91bmQ6ICM4NEI3RkZ9CitkaXYjaGVhZGVyIGgxe2JhY2tncm91bmQ6ICM2NTdEQTZ9CitoMSBhe2NvbG9yOiAjQzFFNkZGfQoraDEgYTpob3Zlcntjb2xvcjogI2ZmZn0KK2gye2NvbG9yOiAjZjYwfQoraDN7Y29sb3I6ICNCMDJBMzZ9CitkaXYjbmF2e2JhY2tncm91bmQ6ICM5NUIzREV9CitkaXYjbmF2IGF7YmFja2dyb3VuZDogdXJsKGJ1bGxldC5qcGcpIG5vLXJlcGVhdCBjZW50ZXIgbGVmdDtjb2xvcjogIzI2NjBCMX0KK2RpdiNuYXYgYTpob3Zlcntjb2xvcjogI0ZGRn0KK2RpdiNzaWRlbm90ZXN7YmFja2dyb3VuZDojQjFDMEQ1fQorZm9ybXtiYWNrZ3JvdW5kOiAjQjRDRUY3fQorZGl2I2NvbnRlbnR7YmFja2dyb3VuZDogI0ZGRn0KK2Jsb2NrcXVvdGV7YmFja2dyb3VuZDogI0NERkZBQX0KK2RpdiNyZWxheHtiYWNrZ3JvdW5kOiB1cmwocmVsYXguanBnKX0KK2RpdiNyZWxheCBoMntjb2xvcjogI0Y3REVCNX0KK2RpdiNyZWxheCBwe2NvbG9yOiAjZmZmfQorZGl2I2Zvb3RlcntiYWNrZ3JvdW5kOiAjQ0NDO2NvbG9yOiAjMzMzfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy90b29scy5jc3MgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvY3NzL3Rvb2xzLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTFiMTAzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy90b29scy5jc3MKQEAgLTAsMCArMSw2OCBAQAorLyogQSBDU1MgRnJhbWV3b3JrIGJ5IE1pa2UgU3RlbmhvdXNlIG9mIENvbnRlbnQgd2l0aCBTdHlsZSAqLworCisvKiBjbGVhcmluZyAqLworCS5zdHJldGNoLAorCS5jbGVhciB7CisJCWNsZWFyOmJvdGg7IAorCQloZWlnaHQ6MXB4OyAKKwkJbWFyZ2luOjA7IAorCQlwYWRkaW5nOjA7IAorCQlmb250LXNpemU6IDE1cHg7CisJCWxpbmUtaGVpZ2h0OiAxcHg7CisJfQorCS5jbGVhcmZpeDphZnRlciB7CisJCWNvbnRlbnQ6ICIuIjsgCisJCWRpc3BsYXk6IGJsb2NrOyAKKwkJaGVpZ2h0OiAwOyAKKwkJY2xlYXI6IGJvdGg7IAorCQl2aXNpYmlsaXR5OiBoaWRkZW47CisJfQorCSogaHRtbD5ib2R5IC5jbGVhcmZpeCB7CisJCWRpc3BsYXk6IGlubGluZS1ibG9jazsgCisJCXdpZHRoOiAxMDAlOworCX0KKwkKKwkqIGh0bWwgLmNsZWFyZml4IHsKKwkJLyogSGlkZXMgZnJvbSBJRS1tYWMgXCovCisJCWhlaWdodDogMSU7CisJCS8qIEVuZCBoaWRlIGZyb20gSUUtbWFjICovCisJfQorLyogZW5kIGNsZWFyaW5nICovCisKKworLyogcmVwbGFjZSAqLworCS5yZXBsYWNlIHsKKwkJZGlzcGxheTpibG9jazsKKwkJCisJCWJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisJCWJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9wOworCQliYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OworCX0KKwkvKiB0aWR5IHRoZXNlIHVwICovCisJLnJlcGxhY2UgKiB7CisJCXRleHQtaW5kZW50OiAtMTAwMDBweDsKKwkJZGlzcGxheTpibG9jazsKKwkJCisJCWJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisJCWJhY2tncm91bmQtcG9zaXRpb246IGxlZnQgdG9wOworCQliYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OworCX0KKwkucmVwbGFjZSBhIHsKKwkJdGV4dC1pbmRlbnQ6MDsKKwl9CisJLnJlcGxhY2UgYSBzcGFuIHsKKwkJdGV4dC1pbmRlbnQ6LTEwMDAwcHg7CisJfQorLyogZW5kIHJlcGxhY2UgKi8KKworCisvKiBhY2Nlc3NpYmlsaXR5ICovCisgICAgIHNwYW4uYWNjZXNza2V5IHsKKyAgICAgCXRleHQtZGVjb3JhdGlvbjpub25lOworICAgICB9CisgICAgIC5hY2Nlc3NpYmlsaXR5IHsKKyAgICAgCXBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgCXRvcDogLTk5OWVtOworICAgICAJbGVmdDogLTk5OWVtOworICAgICB9CisvKiBlbmQgYWNjZXNzaWJpbGl0eSAqLwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2Nzcy90eXBvLmNzcyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvdHlwby5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ5YmQwYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9jc3MvdHlwby5jc3MKQEAgLTAsMCArMSwxOTUgQEAKKy8qIEEgQ1NTIEZyYW1ld29yayBieSBNaWtlIFN0ZW5ob3VzZSBvZiBDb250ZW50IHdpdGggU3R5bGUgKi8KKworLyogVFlQT0dSQVBIWSAqLworCWJvZHkgeworCQl0ZXh0LWFsaWduOiBsZWZ0OworCQlmb250LWZhbWlseTogVmVyZGFuYSwgR2VuZXZhLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOworCQlmb250LXNpemU6IDc2JTsKKyAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTsKKwkJY29sb3I6ICMzMzM7CisJCWJhY2tncm91bmQ6IFdoaXRlOworCX0KKwlkaXYgeworCQlmb250LXNpemU6IDFlbTsKKwl9CisJaW1nIHsKKwkJYm9yZGVyOiAwOworCX0KKwkKKy8qIExJTktTICovCisJYSwKKwlhOmxpbmsgCisJYTphY3RpdmUgeworCQljb2xvcjogYmx1ZTsKKwkJdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CisJfQorCWE6dmlzaXRlZCB7CisJCWNvbG9yOiBwdXJwbGU7CisJfQorCWE6aG92ZXIgeworICAgICAgICBjb2xvcjogcmVkOworCQl0ZXh0LWRlY29yYXRpb246IG5vbmU7CisJfQorLyogRU5EIExJTktTICovCisJCisvKiBIRUFESU5HUyAqLworCWgxIHsKKwkJZm9udC1zaXplOiAyZW07CisJCWxpbmUtaGVpZ2h0OiAxLjVlbTsKKwkJbWFyZ2luOiAwIDAgMC41ZW0gMDsKKwkJcGFkZGluZzogMDsKKyAgICAgICAgY29sb3I6IGJsYWNrOworCX0KKworICAgIGgxLnRpdGxlIHsKKyAgICAgICAgZm9udC1zdHlsZTogaXRhbGljOworICAgICAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgY29sb3I6IHdoaXRlOworICAgIH0KKworCWgyIHsKKwkJZm9udC1zaXplOiAxLjVlbTsKKyAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtOworCQltYXJnaW46IDAgMCAwLjVlbSAwOworCQlwYWRkaW5nOiAwOworICAgICAgICBjb2xvcjogYmxhY2s7CisJfQorCWgzIHsKKwkJZm9udC1zaXplOiAxLjNlbTsKKwkJbGluZS1oZWlnaHQ6IDEuM2VtOworCQltYXJnaW46IDAgMCAwLjVlbSAwOworCQlwYWRkaW5nOjA7CisgICAgICAgIGNvbG9yOiBibGFjazsKKwl9CisJaDQgeworCQlmb250LXNpemU6IDEuMmVtOworCQlsaW5lLWhlaWdodDogMS4zZW07CisJCW1hcmdpbjogMCAwIDAuMjVlbSAwOworCQlwYWRkaW5nOiAwOworICAgICAgICBjb2xvcjogYmxhY2s7CisJfQorCWg1IHsKKwkJZm9udC1zaXplOiAxLjFlbTsKKwkJbGluZS1oZWlnaHQ6IDEuM2VtOworCQltYXJnaW46IDAgMCAwLjI1ZW0gMDsKKwkJcGFkZGluZzogMDsKKyAgICAgICAgY29sb3I6IGJsYWNrOworCX0KKwloNiB7CisJCWZvbnQtc2l6ZTogMWVtOworCQlsaW5lLWhlaWdodDogMS4zZW07CisJCW1hcmdpbjogMCAwIDAuMjVlbSAwOworCQlwYWRkaW5nOiAwOworICAgICAgICBjb2xvcjogYmxhY2s7CisJfQorLyogRU5EIEhFQURJTkdTICovCisKKy8qIFRFWFQgKi8KKwlwIHsKKwkJZm9udC1zaXplOiAxZW07CisJCW1hcmdpbjogMCAwIDEuNWVtIDA7CisJCXBhZGRpbmc6IDA7CisJCWxpbmUtaGVpZ2h0OjEuNGVtOworCX0KKworCWJsb2NrcXVvdGUgeworCQltYXJnaW4tbGVmdDoxMHB4OworCQltYXJnaW4tcmlnaHQ6MTBweDsKKyAgICAgICAgbWFyZ2luLXRvcDowcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206MHB4OworCQlkaXNwbGF5OiBibG9jazsKKwkJZm9udDogaXRhbGljIGxhcmdlIFZlcmRhbmEsIEdlbmV2YSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKKwkJY29sb3I6ICNBOUE5QTk7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6I0NERkZBQTsKKwl9CisKKyAgICBibG9ja3F1b3RlIHAgeworICAgICAgICBwYWRkaW5nOjVweDsKKyAgICAgICAgbWFyZ2luOiAwOworICAgIH0KKworCXByZSB7CisJCWZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisJCWZvbnQtc2l6ZTogMS4wZW07CisJfQorCXN0cm9uZywgYiB7CisJCWZvbnQtd2VpZ2h0OiBib2xkOworCX0KKwllbSwgaSB7CisJCWZvbnQtc3R5bGU6aXRhbGljOworCX0KKyAgICBjb2RlIHsKKyAgICAgICAgZm9udC1mYW1pbHk6ICJDb3VyaWVyIE5ldyIsIENvdXJpZXIsIG1vbm9zcGFjZTsKKyAgICAgICAgZm9udC1zaXplOiAxZW07CisgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7CisgICAgfQorLyogRU5EIFRFWFQgKi8KKwkKKy8qIExJU1RTICovCisJdWwgeworICAgICAgICBsaW5lLWhlaWdodDoxLjRlbTsKKwkJbWFyZ2luOiAwIDAgMS41ZW0gMDsKKwkJcGFkZGluZzogMDsKKwl9CisJdWwgbGkgeworCQltYXJnaW46IDAgMCAwLjI1ZW0gMzBweDsKKwkJcGFkZGluZzogMDsKKwl9CisJb2wgeworCQlmb250LXNpemU6IDEuMGVtOworCQlsaW5lLWhlaWdodDogMS40ZW07CisJCW1hcmdpbjogMCAwIDEuNWVtIDA7CisJCXBhZGRpbmc6IDA7CisJfQorCW9sIGxpIHsKKwkJZm9udC1zaXplOiAxLjBlbTsKKwkJbWFyZ2luOiAwIDAgMC4yNWVtIDMwcHg7CisJCXBhZGRpbmc6IDA7CisJfQorCWRsIHsKKwkJbWFyZ2luOiAwIDAgMS41ZW0gMDsKKwkJcGFkZGluZzogMDsKKwkJbGluZS1oZWlnaHQ6IDEuNGVtOworCX0KKwlkbCBkdCB7CisJCWZvbnQtd2VpZ2h0OiBib2xkOworCQltYXJnaW46IDAuMjVlbSAwIDAuMjVlbSAwOworCQlwYWRkaW5nOiAwOworCX0KKwlkbCBkZCB7CisJCW1hcmdpbjogMCAwIDAgMzBweDsKKwkJcGFkZGluZzogMDsKKwl9CisvKiBFTkQgTElTVFMgKi8KKwkKKwkKKy8qIFRBQkxFICovCisJdGFibGUgeworICAgICAgICBmb250LXNpemU6IDFlbTsKKwkJbWFyZ2luOiAwIDAgMS41ZW0gMDsKKyAgICAgICAgcGFkZGluZzogMDsKKwl9CisJdGFibGUgY2FwdGlvbiB7CisJCWZvbnQtd2VpZ2h0OiBib2xkOworCQltYXJnaW46IDAgMCAwIDA7CisJCXBhZGRpbmc6IDAgMCAxLjVlbSAwOworCX0KKwl0aCB7CisJCWZvbnQtd2VpZ2h0OiBib2xkOworCQl0ZXh0LWFsaWduOiBsZWZ0OworCX0KKwl0ZCB7CisJCWZvbnQtc2l6ZTogMWVtOworCX0KKy8qIEVORCBUQUJMRSAqLwkKKwkKKwlociB7CisJCWRpc3BsYXk6IG5vbmU7CisJfQorCWRpdi5ociB7CisJCWhlaWdodDogMXB4OworCQltYXJnaW46IDEuNWVtIDEwcHg7CisJCWJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgYmxhY2s7CisJfQorCQorLyogRU5EIFRZUE9HUkFQSFkgKi8JCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2Jhc2UuZ2lmIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9iYXNlLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWMwYjExCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9iYXNlLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2NkLmdpZiBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9pbWFnZXMvZHRyZWUvY2QuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MDM4MTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2NkLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2VtcHR5LmdpZiBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9pbWFnZXMvZHRyZWUvZW1wdHkuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1Y2Y1MjMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2VtcHR5LmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2ZvbGRlci5naWYgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2ZvbGRlci5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWIxMjk3NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9pbWFnZXMvZHRyZWUvZm9sZGVyLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2ZvbGRlcm9wZW4uZ2lmIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9mb2xkZXJvcGVuLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNWMzMTEwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9mb2xkZXJvcGVuLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2dsb2JlLmdpZiBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9pbWFnZXMvZHRyZWUvZ2xvYmUuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3MTIzZDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2dsb2JlLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2ltZ2ZvbGRlci5naWYgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2ltZ2ZvbGRlci5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTZkODgwMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9pbWFnZXMvZHRyZWUvaW1nZm9sZGVyLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2pvaW4uZ2lmIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9qb2luLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNGRkNDc2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9qb2luLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2pvaW5ib3R0b20uZ2lmIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9qb2luYm90dG9tLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGI4MWM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9qb2luYm90dG9tLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL2xpbmUuZ2lmIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9saW5lLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTI1OWVlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9saW5lLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL21pbnVzLmdpZiBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9pbWFnZXMvZHRyZWUvbWludXMuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMjEyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL21pbnVzLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL21pbnVzYm90dG9tLmdpZiBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9pbWFnZXMvZHRyZWUvbWludXNib3R0b20uZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMzE5OGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL21pbnVzYm90dG9tLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL211c2ljZm9sZGVyLmdpZiBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9pbWFnZXMvZHRyZWUvbXVzaWNmb2xkZXIuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2MjA3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL211c2ljZm9sZGVyLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL25vbGluZXNfbWludXMuZ2lmIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9ub2xpbmVzX21pbnVzLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTkyYWMyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9ub2xpbmVzX21pbnVzLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL25vbGluZXNfcGx1cy5naWYgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL25vbGluZXNfcGx1cy5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI1OGNlMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9pbWFnZXMvZHRyZWUvbm9saW5lc19wbHVzLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL3BhZ2UuZ2lmIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9wYWdlLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmQ3MzE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9wYWdlLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL3BsdXMuZ2lmIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9wbHVzLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMmM5OTcyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9wbHVzLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL3BsdXNib3R0b20uZ2lmIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9wbHVzYm90dG9tLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTY3MWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9kdHJlZS9wbHVzYm90dG9tLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL3F1ZXN0aW9uLmdpZiBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9pbWFnZXMvZHRyZWUvcXVlc3Rpb24uZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkNGU2ODUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL3F1ZXN0aW9uLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL3RyYXNoLmdpZiBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9pbWFnZXMvZHRyZWUvdHJhc2guZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmYTBmMDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2R0cmVlL3RyYXNoLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2xvZ28tc21hbGwucG5nIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9sb2dvLXNtYWxsLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDM3ZWRkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9sb2dvLXNtYWxsLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW1hZ2VzL2xvZ28ucG5nIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9sb2dvLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzcxNzJhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2ltYWdlcy9sb2dvLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvaW5kZXguanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2luZGV4LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2NjOTg5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2luZGV4LmpzcApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPlN0YXJ0PC90aXRsZT4KKyAgICA8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIxO1VSTD08JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi9jYXRhbG9nL21haW4uYWN0aW9uIj4KKzwvaGVhZD4KKzxib2R5PgorICAgIFN0YXJ0aW5nIGFwcGxpY2F0aW9uCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvanMvZHRyZWUuanMgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvanMvZHRyZWUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWM3NzhiNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zaG9wcGluZy1jYXJ0L3NyYy9tYWluL3dlYmFwcC9qcy9kdHJlZS5qcwpAQCAtMCwwICsxLDM0OCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKK3wgZFRyZWUgMi4wNSB8IHd3dy5kZXN0cm95ZHJvcC5jb20vamF2YXNjcmlwdC90cmVlLyB8Cit8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAorfCBDb3B5cmlnaHQgKGMpIDIwMDItMjAwMyBHZWlyIExhbmRy77+9ICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgVGhpcyBzY3JpcHQgY2FuIGJlIHVzZWQgZnJlZWx5IGFzIGxvbmcgYXMgYWxsICAgICB8Cit8IGNvcHlyaWdodCBtZXNzYWdlcyBhcmUgaW50YWN0LiAgICAgICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgVXBkYXRlZDogMTcuMDQuMjAwMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBDb3B5cmlnaHQgMjAwNiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uICovCisvLyBOb2RlIG9iamVjdAorZnVuY3Rpb24gTm9kZShpZCwgcGlkLCBuYW1lLCB1cmwsIHRpdGxlLCB0YXJnZXQsIGljb24sIGljb25PcGVuLCBvcGVuKSB7CisJdGhpcy5pZCA9IGlkOworCXRoaXMucGlkID0gcGlkOworCXRoaXMubmFtZSA9IG5hbWU7CisJdGhpcy51cmwgPSB1cmw7CisJdGhpcy50aXRsZSA9IHRpdGxlOworCXRoaXMudGFyZ2V0ID0gdGFyZ2V0OworCXRoaXMuaWNvbiA9IGljb247CisJdGhpcy5pY29uT3BlbiA9IGljb25PcGVuOworCXRoaXMuX2lvID0gb3BlbiB8fCBmYWxzZTsKKwl0aGlzLl9pcyA9IGZhbHNlOworCXRoaXMuX2xzID0gZmFsc2U7CisJdGhpcy5faGMgPSBmYWxzZTsKKwl0aGlzLl9haSA9IDA7CisJdGhpcy5fcDsKK307CisKKy8vIFRyZWUgb2JqZWN0CitmdW5jdGlvbiBkVHJlZShvYmpOYW1lKSB7CisJdGhpcy5jb25maWcgPSB7CisJCXRhcmdldAkJCQkJOiBudWxsLAorCQlmb2xkZXJMaW5rcwkJCTogdHJ1ZSwKKwkJdXNlU2VsZWN0aW9uCQk6IHRydWUsCisJCXVzZUNvb2tpZXMJCQk6IHRydWUsCisJCXVzZUxpbmVzCQkJCTogdHJ1ZSwKKwkJdXNlSWNvbnMJCQkJOiB0cnVlLAorCQl1c2VTdGF0dXNUZXh0CQk6IGZhbHNlLAorCQljbG9zZVNhbWVMZXZlbAk6IGZhbHNlLAorCQlpbk9yZGVyCQkJCQk6IGZhbHNlCisJfQorCXRoaXMuaWNvbiA9IHsKKwkJcm9vdAkJCQk6ICcvc2hvcHBpbmctY2FydC9pbWFnZXMvZHRyZWUvYmFzZS5naWYnLAorCQlmb2xkZXIJCQk6ICcvc2hvcHBpbmctY2FydC9pbWFnZXMvZHRyZWUvZm9sZGVyLmdpZicsCisJCWZvbGRlck9wZW4JOiAnL3Nob3BwaW5nLWNhcnQvaW1hZ2VzL2R0cmVlL2ZvbGRlcm9wZW4uZ2lmJywKKwkJbm9kZQkJCQk6ICcvc2hvcHBpbmctY2FydC9pbWFnZXMvZHRyZWUvcGFnZS5naWYnLAorCQllbXB0eQkJCQk6ICcvc2hvcHBpbmctY2FydC9pbWFnZXMvZHRyZWUvZW1wdHkuZ2lmJywKKwkJbGluZQkJCQk6ICcvc2hvcHBpbmctY2FydC9pbWFnZXMvZHRyZWUvbGluZS5naWYnLAorCQlqb2luCQkJCTogJy9zaG9wcGluZy1jYXJ0L2ltYWdlcy9kdHJlZS9qb2luLmdpZicsCisJCWpvaW5Cb3R0b20JOiAnL3Nob3BwaW5nLWNhcnQvaW1hZ2VzL2R0cmVlL2pvaW5ib3R0b20uZ2lmJywKKwkJcGx1cwkJCQk6ICcvc2hvcHBpbmctY2FydC9pbWFnZXMvZHRyZWUvcGx1cy5naWYnLAorCQlwbHVzQm90dG9tCTogJy9zaG9wcGluZy1jYXJ0L2ltYWdlcy9kdHJlZS9wbHVzYm90dG9tLmdpZicsCisJCW1pbnVzCQkJCTogJy9zaG9wcGluZy1jYXJ0L2ltYWdlcy9kdHJlZS9taW51cy5naWYnLAorCQltaW51c0JvdHRvbQk6ICcvc2hvcHBpbmctY2FydC9pbWFnZXMvZHRyZWUvbWludXNib3R0b20uZ2lmJywKKwkJbmxQbHVzCQkJOiAnL3Nob3BwaW5nLWNhcnQvaW1hZ2VzL2R0cmVlL25vbGluZXNfcGx1cy5naWYnLAorCQlubE1pbnVzCQkJOiAnL3Nob3BwaW5nLWNhcnQvaW1hZ2VzL2R0cmVlL25vbGluZXNfbWludXMuZ2lmJworCX07CisJdGhpcy5vYmogPSBvYmpOYW1lOworCXRoaXMuYU5vZGVzID0gW107CisJdGhpcy5hSW5kZW50ID0gW107CisJdGhpcy5yb290ID0gbmV3IE5vZGUoLTEpOworCXRoaXMuc2VsZWN0ZWROb2RlID0gbnVsbDsKKwl0aGlzLnNlbGVjdGVkRm91bmQgPSBmYWxzZTsKKwl0aGlzLmNvbXBsZXRlZCA9IGZhbHNlOworfTsKKworLy8gQWRkcyBhIG5ldyBub2RlIHRvIHRoZSBub2RlIGFycmF5CitkVHJlZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24oaWQsIHBpZCwgbmFtZSwgdXJsLCB0aXRsZSwgdGFyZ2V0LCBpY29uLCBpY29uT3Blbiwgb3BlbikgeworCXRoaXMuYU5vZGVzW3RoaXMuYU5vZGVzLmxlbmd0aF0gPSBuZXcgTm9kZShpZCwgcGlkLCBuYW1lLCB1cmwsIHRpdGxlLCB0YXJnZXQsIGljb24sIGljb25PcGVuLCBvcGVuKTsKK307CisKKy8vIE9wZW4vY2xvc2UgYWxsIG5vZGVzCitkVHJlZS5wcm90b3R5cGUub3BlbkFsbCA9IGZ1bmN0aW9uKCkgeworCXRoaXMub0FsbCh0cnVlKTsKK307CitkVHJlZS5wcm90b3R5cGUuY2xvc2VBbGwgPSBmdW5jdGlvbigpIHsKKwl0aGlzLm9BbGwoZmFsc2UpOworfTsKKworLy8gT3V0cHV0cyB0aGUgdHJlZSB0byB0aGUgcGFnZQorZFRyZWUucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7CisJdmFyIHN0ciA9ICc8ZGl2IGNsYXNzPSJkdHJlZSI+XG4nOworCWlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCkgeworCQlpZiAodGhpcy5jb25maWcudXNlQ29va2llcykgdGhpcy5zZWxlY3RlZE5vZGUgPSB0aGlzLmdldFNlbGVjdGVkKCk7CisJCXN0ciArPSB0aGlzLmFkZE5vZGUodGhpcy5yb290KTsKKwl9IGVsc2Ugc3RyICs9ICdCcm93c2VyIG5vdCBzdXBwb3J0ZWQuJzsKKwlzdHIgKz0gJzwvZGl2Pic7CisJaWYgKCF0aGlzLnNlbGVjdGVkRm91bmQpIHRoaXMuc2VsZWN0ZWROb2RlID0gbnVsbDsKKwl0aGlzLmNvbXBsZXRlZCA9IHRydWU7CisJcmV0dXJuIHN0cjsKK307CisKKy8vIENyZWF0ZXMgdGhlIHRyZWUgc3RydWN0dXJlCitkVHJlZS5wcm90b3R5cGUuYWRkTm9kZSA9IGZ1bmN0aW9uKHBOb2RlKSB7CisJdmFyIHN0ciA9ICcnOworCXZhciBuPTA7CisJaWYgKHRoaXMuY29uZmlnLmluT3JkZXIpIG4gPSBwTm9kZS5fYWk7CisJZm9yIChuOyBuPHRoaXMuYU5vZGVzLmxlbmd0aDsgbisrKSB7CisJCWlmICh0aGlzLmFOb2Rlc1tuXS5waWQgPT0gcE5vZGUuaWQpIHsKKwkJCXZhciBjbiA9IHRoaXMuYU5vZGVzW25dOworCQkJY24uX3AgPSBwTm9kZTsKKwkJCWNuLl9haSA9IG47CisJCQl0aGlzLnNldENTKGNuKTsKKwkJCWlmICghY24udGFyZ2V0ICYmIHRoaXMuY29uZmlnLnRhcmdldCkgY24udGFyZ2V0ID0gdGhpcy5jb25maWcudGFyZ2V0OworCQkJaWYgKGNuLl9oYyAmJiAhY24uX2lvICYmIHRoaXMuY29uZmlnLnVzZUNvb2tpZXMpIGNuLl9pbyA9IHRoaXMuaXNPcGVuKGNuLmlkKTsKKwkJCWlmICghdGhpcy5jb25maWcuZm9sZGVyTGlua3MgJiYgY24uX2hjKSBjbi51cmwgPSBudWxsOworCQkJaWYgKHRoaXMuY29uZmlnLnVzZVNlbGVjdGlvbiAmJiBjbi5pZCA9PSB0aGlzLnNlbGVjdGVkTm9kZSAmJiAhdGhpcy5zZWxlY3RlZEZvdW5kKSB7CisJCQkJCWNuLl9pcyA9IHRydWU7CisJCQkJCXRoaXMuc2VsZWN0ZWROb2RlID0gbjsKKwkJCQkJdGhpcy5zZWxlY3RlZEZvdW5kID0gdHJ1ZTsKKwkJCX0KKwkJCXN0ciArPSB0aGlzLm5vZGUoY24sIG4pOworCQkJaWYgKGNuLl9scykgYnJlYWs7CisJCX0KKwl9CisJcmV0dXJuIHN0cjsKK307CisKKy8vIENyZWF0ZXMgdGhlIG5vZGUgaWNvbiwgdXJsIGFuZCB0ZXh0CitkVHJlZS5wcm90b3R5cGUubm9kZSA9IGZ1bmN0aW9uKG5vZGUsIG5vZGVJZCkgeworCXZhciBzdHIgPSAnPGRpdiBjbGFzcz0iZFRyZWVOb2RlIj4nICsgdGhpcy5pbmRlbnQobm9kZSwgbm9kZUlkKTsKKwlpZiAodGhpcy5jb25maWcudXNlSWNvbnMpIHsKKwkJaWYgKCFub2RlLmljb24pIG5vZGUuaWNvbiA9ICh0aGlzLnJvb3QuaWQgPT0gbm9kZS5waWQpID8gdGhpcy5pY29uLnJvb3QgOiAoKG5vZGUuX2hjKSA/IHRoaXMuaWNvbi5mb2xkZXIgOiB0aGlzLmljb24ubm9kZSk7CisJCWlmICghbm9kZS5pY29uT3Blbikgbm9kZS5pY29uT3BlbiA9IChub2RlLl9oYykgPyB0aGlzLmljb24uZm9sZGVyT3BlbiA6IHRoaXMuaWNvbi5ub2RlOworCQlpZiAodGhpcy5yb290LmlkID09IG5vZGUucGlkKSB7CisJCQlub2RlLmljb24gPSB0aGlzLmljb24ucm9vdDsKKwkJCW5vZGUuaWNvbk9wZW4gPSB0aGlzLmljb24ucm9vdDsKKwkJfQorCQlzdHIgKz0gJzxpbWcgaWQ9ImknICsgdGhpcy5vYmogKyBub2RlSWQgKyAnIiBzcmM9IicgKyAoKG5vZGUuX2lvKSA/IG5vZGUuaWNvbk9wZW4gOiBub2RlLmljb24pICsgJyIgYWx0PSIiIC8+JzsKKwl9CisJaWYgKG5vZGUudXJsKSB7CisJCXN0ciArPSAnPGEgaWQ9InMnICsgdGhpcy5vYmogKyBub2RlSWQgKyAnIiBjbGFzcz0iJyArICgodGhpcy5jb25maWcudXNlU2VsZWN0aW9uKSA/ICgobm9kZS5faXMgPyAnbm9kZVNlbCcgOiAnbm9kZScpKSA6ICdub2RlJykgKyAnIiBocmVmPSInICsgbm9kZS51cmwgKyAnIic7CisJCWlmIChub2RlLnRpdGxlKSBzdHIgKz0gJyB0aXRsZT0iJyArIG5vZGUudGl0bGUgKyAnIic7CisJCWlmIChub2RlLnRhcmdldCkgc3RyICs9ICcgdGFyZ2V0PSInICsgbm9kZS50YXJnZXQgKyAnIic7CisJCWlmICh0aGlzLmNvbmZpZy51c2VTdGF0dXNUZXh0KSBzdHIgKz0gJyBvbm1vdXNlb3Zlcj0id2luZG93LnN0YXR1cz1cJycgKyBub2RlLm5hbWUgKyAnXCc7cmV0dXJuIHRydWU7IiBvbm1vdXNlb3V0PSJ3aW5kb3cuc3RhdHVzPVwnXCc7cmV0dXJuIHRydWU7IiAnOworCQlpZiAodGhpcy5jb25maWcudXNlU2VsZWN0aW9uICYmICgobm9kZS5faGMgJiYgdGhpcy5jb25maWcuZm9sZGVyTGlua3MpIHx8ICFub2RlLl9oYykpCisJCQlzdHIgKz0gJyBvbmNsaWNrPSJqYXZhc2NyaXB0OiAnICsgdGhpcy5vYmogKyAnLnMoJyArIG5vZGVJZCArICcpOyInOworCQlzdHIgKz0gJz4nOworCX0KKwllbHNlIGlmICgoIXRoaXMuY29uZmlnLmZvbGRlckxpbmtzIHx8ICFub2RlLnVybCkgJiYgbm9kZS5faGMgJiYgbm9kZS5waWQgIT0gdGhpcy5yb290LmlkKQorCQlzdHIgKz0gJzxhIGhyZWY9ImphdmFzY3JpcHQ6ICcgKyB0aGlzLm9iaiArICcubygnICsgbm9kZUlkICsgJyk7IiBjbGFzcz0ibm9kZSI+JzsKKwlzdHIgKz0gbm9kZS5uYW1lOworCWlmIChub2RlLnVybCB8fCAoKCF0aGlzLmNvbmZpZy5mb2xkZXJMaW5rcyB8fCAhbm9kZS51cmwpICYmIG5vZGUuX2hjKSkgc3RyICs9ICc8L2E+JzsKKwlzdHIgKz0gJzwvZGl2Pic7CisJaWYgKG5vZGUuX2hjKSB7CisJCXN0ciArPSAnPGRpdiBpZD0iZCcgKyB0aGlzLm9iaiArIG5vZGVJZCArICciIGNsYXNzPSJjbGlwIiBzdHlsZT0iZGlzcGxheTonICsgKCh0aGlzLnJvb3QuaWQgPT0gbm9kZS5waWQgfHwgbm9kZS5faW8pID8gJ2Jsb2NrJyA6ICdub25lJykgKyAnOyI+JzsKKwkJc3RyICs9IHRoaXMuYWRkTm9kZShub2RlKTsKKwkJc3RyICs9ICc8L2Rpdj4nOworCX0KKwl0aGlzLmFJbmRlbnQucG9wKCk7CisJcmV0dXJuIHN0cjsKK307CisKKy8vIEFkZHMgdGhlIGVtcHR5IGFuZCBsaW5lIGljb25zCitkVHJlZS5wcm90b3R5cGUuaW5kZW50ID0gZnVuY3Rpb24obm9kZSwgbm9kZUlkKSB7CisJdmFyIHN0ciA9ICcnOworCWlmICh0aGlzLnJvb3QuaWQgIT0gbm9kZS5waWQpIHsKKwkJZm9yICh2YXIgbj0wOyBuPHRoaXMuYUluZGVudC5sZW5ndGg7IG4rKykKKwkJCXN0ciArPSAnPGltZyBzcmM9IicgKyAoICh0aGlzLmFJbmRlbnRbbl0gPT0gMSAmJiB0aGlzLmNvbmZpZy51c2VMaW5lcykgPyB0aGlzLmljb24ubGluZSA6IHRoaXMuaWNvbi5lbXB0eSApICsgJyIgYWx0PSIiIC8+JzsKKwkJKG5vZGUuX2xzKSA/IHRoaXMuYUluZGVudC5wdXNoKDApIDogdGhpcy5hSW5kZW50LnB1c2goMSk7CisJCWlmIChub2RlLl9oYykgeworCQkJc3RyICs9ICc8YSBocmVmPSJqYXZhc2NyaXB0OiAnICsgdGhpcy5vYmogKyAnLm8oJyArIG5vZGVJZCArICcpOyI+PGltZyBpZD0iaicgKyB0aGlzLm9iaiArIG5vZGVJZCArICciIHNyYz0iJzsKKwkJCWlmICghdGhpcy5jb25maWcudXNlTGluZXMpIHN0ciArPSAobm9kZS5faW8pID8gdGhpcy5pY29uLm5sTWludXMgOiB0aGlzLmljb24ubmxQbHVzOworCQkJZWxzZSBzdHIgKz0gKCAobm9kZS5faW8pID8gKChub2RlLl9scyAmJiB0aGlzLmNvbmZpZy51c2VMaW5lcykgPyB0aGlzLmljb24ubWludXNCb3R0b20gOiB0aGlzLmljb24ubWludXMpIDogKChub2RlLl9scyAmJiB0aGlzLmNvbmZpZy51c2VMaW5lcykgPyB0aGlzLmljb24ucGx1c0JvdHRvbSA6IHRoaXMuaWNvbi5wbHVzICkgKTsKKwkJCXN0ciArPSAnIiBhbHQ9IiIgLz48L2E+JzsKKwkJfSBlbHNlIHN0ciArPSAnPGltZyBzcmM9IicgKyAoICh0aGlzLmNvbmZpZy51c2VMaW5lcykgPyAoKG5vZGUuX2xzKSA/IHRoaXMuaWNvbi5qb2luQm90dG9tIDogdGhpcy5pY29uLmpvaW4gKSA6IHRoaXMuaWNvbi5lbXB0eSkgKyAnIiBhbHQ9IiIgLz4nOworCX0KKwlyZXR1cm4gc3RyOworfTsKKworLy8gQ2hlY2tzIGlmIGEgbm9kZSBoYXMgYW55IGNoaWxkcmVuIGFuZCBpZiBpdCBpcyB0aGUgbGFzdCBzaWJsaW5nCitkVHJlZS5wcm90b3R5cGUuc2V0Q1MgPSBmdW5jdGlvbihub2RlKSB7CisJdmFyIGxhc3RJZDsKKwlmb3IgKHZhciBuPTA7IG48dGhpcy5hTm9kZXMubGVuZ3RoOyBuKyspIHsKKwkJaWYgKHRoaXMuYU5vZGVzW25dLnBpZCA9PSBub2RlLmlkKSBub2RlLl9oYyA9IHRydWU7CisJCWlmICh0aGlzLmFOb2Rlc1tuXS5waWQgPT0gbm9kZS5waWQpIGxhc3RJZCA9IHRoaXMuYU5vZGVzW25dLmlkOworCX0KKwlpZiAobGFzdElkPT1ub2RlLmlkKSBub2RlLl9scyA9IHRydWU7Cit9OworCisvLyBSZXR1cm5zIHRoZSBzZWxlY3RlZCBub2RlCitkVHJlZS5wcm90b3R5cGUuZ2V0U2VsZWN0ZWQgPSBmdW5jdGlvbigpIHsKKwl2YXIgc24gPSB0aGlzLmdldENvb2tpZSgnY3MnICsgdGhpcy5vYmopOworCXJldHVybiAoc24pID8gc24gOiBudWxsOworfTsKKworLy8gSGlnaGxpZ2h0cyB0aGUgc2VsZWN0ZWQgbm9kZQorZFRyZWUucHJvdG90eXBlLnMgPSBmdW5jdGlvbihpZCkgeworCWlmICghdGhpcy5jb25maWcudXNlU2VsZWN0aW9uKSByZXR1cm47CisJdmFyIGNuID0gdGhpcy5hTm9kZXNbaWRdOworCWlmIChjbi5faGMgJiYgIXRoaXMuY29uZmlnLmZvbGRlckxpbmtzKSByZXR1cm47CisJaWYgKHRoaXMuc2VsZWN0ZWROb2RlICE9IGlkKSB7CisJCWlmICh0aGlzLnNlbGVjdGVkTm9kZSB8fCB0aGlzLnNlbGVjdGVkTm9kZT09MCkgeworCQkJZU9sZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzIiArIHRoaXMub2JqICsgdGhpcy5zZWxlY3RlZE5vZGUpOworCQkJZU9sZC5jbGFzc05hbWUgPSAibm9kZSI7CisJCX0KKwkJZU5ldyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzIiArIHRoaXMub2JqICsgaWQpOworCQllTmV3LmNsYXNzTmFtZSA9ICJub2RlU2VsIjsKKwkJdGhpcy5zZWxlY3RlZE5vZGUgPSBpZDsKKwkJaWYgKHRoaXMuY29uZmlnLnVzZUNvb2tpZXMpIHRoaXMuc2V0Q29va2llKCdjcycgKyB0aGlzLm9iaiwgY24uaWQpOworCX0KK307CisKKy8vIFRvZ2dsZSBPcGVuIG9yIGNsb3NlCitkVHJlZS5wcm90b3R5cGUubyA9IGZ1bmN0aW9uKGlkKSB7CisJdmFyIGNuID0gdGhpcy5hTm9kZXNbaWRdOworCXRoaXMubm9kZVN0YXR1cyghY24uX2lvLCBpZCwgY24uX2xzKTsKKwljbi5faW8gPSAhY24uX2lvOworCWlmICh0aGlzLmNvbmZpZy5jbG9zZVNhbWVMZXZlbCkgdGhpcy5jbG9zZUxldmVsKGNuKTsKKwlpZiAodGhpcy5jb25maWcudXNlQ29va2llcykgdGhpcy51cGRhdGVDb29raWUoKTsKK307CisKKy8vIE9wZW4gb3IgY2xvc2UgYWxsIG5vZGVzCitkVHJlZS5wcm90b3R5cGUub0FsbCA9IGZ1bmN0aW9uKHN0YXR1cykgeworCWZvciAodmFyIG49MDsgbjx0aGlzLmFOb2Rlcy5sZW5ndGg7IG4rKykgeworCQlpZiAodGhpcy5hTm9kZXNbbl0uX2hjICYmIHRoaXMuYU5vZGVzW25dLnBpZCAhPSB0aGlzLnJvb3QuaWQpIHsKKwkJCXRoaXMubm9kZVN0YXR1cyhzdGF0dXMsIG4sIHRoaXMuYU5vZGVzW25dLl9scykKKwkJCXRoaXMuYU5vZGVzW25dLl9pbyA9IHN0YXR1czsKKwkJfQorCX0KKwlpZiAodGhpcy5jb25maWcudXNlQ29va2llcykgdGhpcy51cGRhdGVDb29raWUoKTsKK307CisKKy8vIE9wZW5zIHRoZSB0cmVlIHRvIGEgc3BlY2lmaWMgbm9kZQorZFRyZWUucHJvdG90eXBlLm9wZW5UbyA9IGZ1bmN0aW9uKG5JZCwgYlNlbGVjdCwgYkZpcnN0KSB7CisJaWYgKCFiRmlyc3QpIHsKKwkJZm9yICh2YXIgbj0wOyBuPHRoaXMuYU5vZGVzLmxlbmd0aDsgbisrKSB7CisJCQlpZiAodGhpcy5hTm9kZXNbbl0uaWQgPT0gbklkKSB7CisJCQkJbklkPW47CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9CisJdmFyIGNuPXRoaXMuYU5vZGVzW25JZF07CisJaWYgKGNuLnBpZD09dGhpcy5yb290LmlkIHx8ICFjbi5fcCkgcmV0dXJuOworCWNuLl9pbyA9IHRydWU7CisJY24uX2lzID0gYlNlbGVjdDsKKwlpZiAodGhpcy5jb21wbGV0ZWQgJiYgY24uX2hjKSB0aGlzLm5vZGVTdGF0dXModHJ1ZSwgY24uX2FpLCBjbi5fbHMpOworCWlmICh0aGlzLmNvbXBsZXRlZCAmJiBiU2VsZWN0KSB0aGlzLnMoY24uX2FpKTsKKwllbHNlIGlmIChiU2VsZWN0KSB0aGlzLl9zbj1jbi5fYWk7CisJdGhpcy5vcGVuVG8oY24uX3AuX2FpLCBmYWxzZSwgdHJ1ZSk7Cit9OworCisvLyBDbG9zZXMgYWxsIG5vZGVzIG9uIHRoZSBzYW1lIGxldmVsIGFzIGNlcnRhaW4gbm9kZQorZFRyZWUucHJvdG90eXBlLmNsb3NlTGV2ZWwgPSBmdW5jdGlvbihub2RlKSB7CisJZm9yICh2YXIgbj0wOyBuPHRoaXMuYU5vZGVzLmxlbmd0aDsgbisrKSB7CisJCWlmICh0aGlzLmFOb2Rlc1tuXS5waWQgPT0gbm9kZS5waWQgJiYgdGhpcy5hTm9kZXNbbl0uaWQgIT0gbm9kZS5pZCAmJiB0aGlzLmFOb2Rlc1tuXS5faGMpIHsKKwkJCXRoaXMubm9kZVN0YXR1cyhmYWxzZSwgbiwgdGhpcy5hTm9kZXNbbl0uX2xzKTsKKwkJCXRoaXMuYU5vZGVzW25dLl9pbyA9IGZhbHNlOworCQkJdGhpcy5jbG9zZUFsbENoaWxkcmVuKHRoaXMuYU5vZGVzW25dKTsKKwkJfQorCX0KK30KKworLy8gQ2xvc2VzIGFsbCBjaGlsZHJlbiBvZiBhIG5vZGUKK2RUcmVlLnByb3RvdHlwZS5jbG9zZUFsbENoaWxkcmVuID0gZnVuY3Rpb24obm9kZSkgeworCWZvciAodmFyIG49MDsgbjx0aGlzLmFOb2Rlcy5sZW5ndGg7IG4rKykgeworCQlpZiAodGhpcy5hTm9kZXNbbl0ucGlkID09IG5vZGUuaWQgJiYgdGhpcy5hTm9kZXNbbl0uX2hjKSB7CisJCQlpZiAodGhpcy5hTm9kZXNbbl0uX2lvKSB0aGlzLm5vZGVTdGF0dXMoZmFsc2UsIG4sIHRoaXMuYU5vZGVzW25dLl9scyk7CisJCQl0aGlzLmFOb2Rlc1tuXS5faW8gPSBmYWxzZTsKKwkJCXRoaXMuY2xvc2VBbGxDaGlsZHJlbih0aGlzLmFOb2Rlc1tuXSk7CisJCX0KKwl9Cit9CisKKy8vIENoYW5nZSB0aGUgc3RhdHVzIG9mIGEgbm9kZShvcGVuIG9yIGNsb3NlZCkKK2RUcmVlLnByb3RvdHlwZS5ub2RlU3RhdHVzID0gZnVuY3Rpb24oc3RhdHVzLCBpZCwgYm90dG9tKSB7CisJZURpdgk9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkJyArIHRoaXMub2JqICsgaWQpOworCWVKb2luCT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2onICsgdGhpcy5vYmogKyBpZCk7CisJaWYgKHRoaXMuY29uZmlnLnVzZUljb25zKSB7CisJCWVJY29uCT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2knICsgdGhpcy5vYmogKyBpZCk7CisJCWVJY29uLnNyYyA9IChzdGF0dXMpID8gdGhpcy5hTm9kZXNbaWRdLmljb25PcGVuIDogdGhpcy5hTm9kZXNbaWRdLmljb247CisJfQorCWVKb2luLnNyYyA9ICh0aGlzLmNvbmZpZy51c2VMaW5lcyk/CisJKChzdGF0dXMpPygoYm90dG9tKT90aGlzLmljb24ubWludXNCb3R0b206dGhpcy5pY29uLm1pbnVzKTooKGJvdHRvbSk/dGhpcy5pY29uLnBsdXNCb3R0b206dGhpcy5pY29uLnBsdXMpKToKKwkoKHN0YXR1cyk/dGhpcy5pY29uLm5sTWludXM6dGhpcy5pY29uLm5sUGx1cyk7CisJZURpdi5zdHlsZS5kaXNwbGF5ID0gKHN0YXR1cykgPyAnYmxvY2snOiAnbm9uZSc7Cit9OworCisKKy8vIFtDb29raWVdIENsZWFycyBhIGNvb2tpZQorZFRyZWUucHJvdG90eXBlLmNsZWFyQ29va2llID0gZnVuY3Rpb24oKSB7CisJdmFyIG5vdyA9IG5ldyBEYXRlKCk7CisJdmFyIHllc3RlcmRheSA9IG5ldyBEYXRlKG5vdy5nZXRUaW1lKCkgLSAxMDAwICogNjAgKiA2MCAqIDI0KTsKKwl0aGlzLnNldENvb2tpZSgnY28nK3RoaXMub2JqLCAnY29va2llVmFsdWUnLCB5ZXN0ZXJkYXkpOworCXRoaXMuc2V0Q29va2llKCdjcycrdGhpcy5vYmosICdjb29raWVWYWx1ZScsIHllc3RlcmRheSk7Cit9OworCisvLyBbQ29va2llXSBTZXRzIHZhbHVlIGluIGEgY29va2llCitkVHJlZS5wcm90b3R5cGUuc2V0Q29va2llID0gZnVuY3Rpb24oY29va2llTmFtZSwgY29va2llVmFsdWUsIGV4cGlyZXMsIHBhdGgsIGRvbWFpbiwgc2VjdXJlKSB7CisJZG9jdW1lbnQuY29va2llID0KKwkJZXNjYXBlKGNvb2tpZU5hbWUpICsgJz0nICsgZXNjYXBlKGNvb2tpZVZhbHVlKQorCQkrIChleHBpcmVzID8gJzsgZXhwaXJlcz0nICsgZXhwaXJlcy50b0dNVFN0cmluZygpIDogJycpCisJCSsgKHBhdGggPyAnOyBwYXRoPScgKyBwYXRoIDogJycpCisJCSsgKGRvbWFpbiA/ICc7IGRvbWFpbj0nICsgZG9tYWluIDogJycpCisJCSsgKHNlY3VyZSA/ICc7IHNlY3VyZScgOiAnJyk7Cit9OworCisvLyBbQ29va2llXSBHZXRzIGEgdmFsdWUgZnJvbSBhIGNvb2tpZQorZFRyZWUucHJvdG90eXBlLmdldENvb2tpZSA9IGZ1bmN0aW9uKGNvb2tpZU5hbWUpIHsKKwl2YXIgY29va2llVmFsdWUgPSAnJzsKKwl2YXIgcG9zTmFtZSA9IGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKGVzY2FwZShjb29raWVOYW1lKSArICc9Jyk7CisJaWYgKHBvc05hbWUgIT0gLTEpIHsKKwkJdmFyIHBvc1ZhbHVlID0gcG9zTmFtZSArIChlc2NhcGUoY29va2llTmFtZSkgKyAnPScpLmxlbmd0aDsKKwkJdmFyIGVuZFBvcyA9IGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCc7JywgcG9zVmFsdWUpOworCQlpZiAoZW5kUG9zICE9IC0xKSBjb29raWVWYWx1ZSA9IHVuZXNjYXBlKGRvY3VtZW50LmNvb2tpZS5zdWJzdHJpbmcocG9zVmFsdWUsIGVuZFBvcykpOworCQllbHNlIGNvb2tpZVZhbHVlID0gdW5lc2NhcGUoZG9jdW1lbnQuY29va2llLnN1YnN0cmluZyhwb3NWYWx1ZSkpOworCX0KKwlyZXR1cm4gKGNvb2tpZVZhbHVlKTsKK307CisKKy8vIFtDb29raWVdIFJldHVybnMgaWRzIG9mIG9wZW4gbm9kZXMgYXMgYSBzdHJpbmcKK2RUcmVlLnByb3RvdHlwZS51cGRhdGVDb29raWUgPSBmdW5jdGlvbigpIHsKKwl2YXIgc3RyID0gJyc7CisJZm9yICh2YXIgbj0wOyBuPHRoaXMuYU5vZGVzLmxlbmd0aDsgbisrKSB7CisJCWlmICh0aGlzLmFOb2Rlc1tuXS5faW8gJiYgdGhpcy5hTm9kZXNbbl0ucGlkICE9IHRoaXMucm9vdC5pZCkgeworCQkJaWYgKHN0cikgc3RyICs9ICcuJzsKKwkJCXN0ciArPSB0aGlzLmFOb2Rlc1tuXS5pZDsKKwkJfQorCX0KKwl0aGlzLnNldENvb2tpZSgnY28nICsgdGhpcy5vYmosIHN0cik7Cit9OworCisvLyBbQ29va2llXSBDaGVja3MgaWYgYSBub2RlIGlkIGlzIGluIGEgY29va2llCitkVHJlZS5wcm90b3R5cGUuaXNPcGVuID0gZnVuY3Rpb24oaWQpIHsKKwl2YXIgYU9wZW4gPSB0aGlzLmdldENvb2tpZSgnY28nICsgdGhpcy5vYmopLnNwbGl0KCcuJyk7CisJZm9yICh2YXIgbj0wOyBuPGFPcGVuLmxlbmd0aDsgbisrKQorCQlpZiAoYU9wZW5bbl0gPT0gaWQpIHJldHVybiB0cnVlOworCXJldHVybiBmYWxzZTsKK307CisKKy8vIElmIFB1c2ggYW5kIHBvcCBpcyBub3QgaW1wbGVtZW50ZWQgYnkgdGhlIGJyb3dzZXIKK2lmICghQXJyYXkucHJvdG90eXBlLnB1c2gpIHsKKwlBcnJheS5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uIGFycmF5X3B1c2goKSB7CisJCWZvcih2YXIgaT0wO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspCisJCQl0aGlzW3RoaXMubGVuZ3RoXT1hcmd1bWVudHNbaV07CisJCXJldHVybiB0aGlzLmxlbmd0aDsKKwl9Cit9OworaWYgKCFBcnJheS5wcm90b3R5cGUucG9wKSB7CisJQXJyYXkucHJvdG90eXBlLnBvcCA9IGZ1bmN0aW9uIGFycmF5X3BvcCgpIHsKKwkJbGFzdEVsZW1lbnQgPSB0aGlzW3RoaXMubGVuZ3RoLTFdOworCQl0aGlzLmxlbmd0aCA9IE1hdGgubWF4KHRoaXMubGVuZ3RoLTEsMCk7CisJCXJldHVybiBsYXN0RWxlbWVudDsKKwl9Cit9OwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2pzL25pZnR5LmpzIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3Nob3BwaW5nLWNhcnQvc3JjL21haW4vd2ViYXBwL2pzL25pZnR5LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlNjc1M2UKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc2hvcHBpbmctY2FydC9zcmMvbWFpbi93ZWJhcHAvanMvbmlmdHkuanMKQEAgLTAsMCArMSwxNzQgQEAKK2Z1bmN0aW9uIE5pZnR5Q2hlY2soKXsKK2lmKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCB8fCAhZG9jdW1lbnQuY3JlYXRlRWxlbWVudCkKKyAgICByZXR1cm4oZmFsc2UpOworaXNYSFRNTD0vaHRtbFw6Ly50ZXN0KGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0ubm9kZU5hbWUpOworaWYoQXJyYXkucHJvdG90eXBlLnB1c2g9PW51bGwpe0FycmF5LnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKCl7CisgICAgICB0aGlzW3RoaXMubGVuZ3RoXT1hcmd1bWVudHNbMF07IHJldHVybih0aGlzLmxlbmd0aCk7fX0KK3JldHVybih0cnVlKTsKK30KKworZnVuY3Rpb24gUm91bmRlZChzZWxlY3Rvcix3aWNoLGJrLGNvbG9yLG9wdCl7Cit2YXIgaSxwcmVmaXh0LHByZWZpeGIsY249InIiLGVjb2xvcj0iIixlZGdlcz1mYWxzZSxlY2xhc3M9IiIsYj1mYWxzZSx0PWZhbHNlOworCitpZihjb2xvcj09InRyYW5zcGFyZW50Iil7CisgICAgY249Y24rIngiOworICAgIGVjb2xvcj1iazsKKyAgICBiaz0idHJhbnNwYXJlbnQiOworICAgIH0KK2Vsc2UgaWYob3B0ICYmIG9wdC5pbmRleE9mKCJib3JkZXIiKT49MCl7CisgICAgdmFyIG9wdGFyPW9wdC5zcGxpdCgiICIpOworICAgIGZvcihpPTA7aTxvcHRhci5sZW5ndGg7aSsrKQorICAgICAgICBpZihvcHRhcltpXS5pbmRleE9mKCIjIik+PTApIGVjb2xvcj1vcHRhcltpXTsKKyAgICBpZihlY29sb3I9PSIiKSBlY29sb3I9IiM2NjYiOworICAgIGNuKz0iZSI7CisgICAgZWRnZXM9dHJ1ZTsKKyAgICB9CitlbHNlIGlmKG9wdCAmJiBvcHQuaW5kZXhPZigic21vb3RoIik+PTApeworICAgIGNuKz0iYSI7CisgICAgZWNvbG9yPU1peChiayxjb2xvcik7CisgICAgfQoraWYob3B0ICYmIG9wdC5pbmRleE9mKCJzbWFsbCIpPj0wKSBjbis9InMiOworcHJlZml4dD1jbjsKK3ByZWZpeGI9Y247CitpZih3aWNoLmluZGV4T2YoImFsbCIpPj0wKXt0PXRydWU7Yj10cnVlfQorZWxzZSBpZih3aWNoLmluZGV4T2YoInRvcCIpPj0wKSB0PSJ0cnVlIjsKK2Vsc2UgaWYod2ljaC5pbmRleE9mKCJ0bCIpPj0wKXsKKyAgICB0PSJ0cnVlIjsKKyAgICBpZih3aWNoLmluZGV4T2YoInRyIik8MCkgcHJlZml4dCs9ImwiOworICAgIH0KK2Vsc2UgaWYod2ljaC5pbmRleE9mKCJ0ciIpPj0wKXsKKyAgICB0PSJ0cnVlIjsKKyAgICBwcmVmaXh0Kz0iciI7CisgICAgfQoraWYod2ljaC5pbmRleE9mKCJib3R0b20iKT49MCkgYj10cnVlOworZWxzZSBpZih3aWNoLmluZGV4T2YoImJsIik+PTApeworICAgIGI9InRydWUiOworICAgIGlmKHdpY2guaW5kZXhPZigiYnIiKTwwKSBwcmVmaXhiKz0ibCI7CisgICAgfQorZWxzZSBpZih3aWNoLmluZGV4T2YoImJyIik+PTApeworICAgIGI9InRydWUiOworICAgIHByZWZpeGIrPSJyIjsKKyAgICB9Cit2YXIgdj1nZXRFbGVtZW50c0J5U2VsZWN0b3Ioc2VsZWN0b3IpOwordmFyIGw9di5sZW5ndGg7Citmb3IoaT0wO2k8bDtpKyspeworICAgIGlmKGVkZ2VzKSBBZGRCb3JkZXIodltpXSxlY29sb3IpOworICAgIGlmKHQpIEFkZFRvcCh2W2ldLGJrLGNvbG9yLGVjb2xvcixwcmVmaXh0KTsKKyAgICBpZihiKSBBZGRCb3R0b20odltpXSxiayxjb2xvcixlY29sb3IscHJlZml4Yik7CisgICAgfQorfQorCitmdW5jdGlvbiBBZGRCb3JkZXIoZWwsYmMpewordmFyIGk7CitpZighZWwucGFzc2VkKXsKKyAgICBpZihlbC5jaGlsZE5vZGVzLmxlbmd0aD09MSAmJiBlbC5jaGlsZE5vZGVzWzBdLm5vZGVUeXBlPT0zKXsKKyAgICAgICAgdmFyIHQ9ZWwuZmlyc3RDaGlsZC5ub2RlVmFsdWU7CisgICAgICAgIGVsLnJlbW92ZUNoaWxkKGVsLmxhc3RDaGlsZCk7CisgICAgICAgIHZhciBkPUNyZWF0ZUVsKCJzcGFuIik7CisgICAgICAgIGQuc3R5bGUuZGlzcGxheT0iYmxvY2siOworICAgICAgICBkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHQpKTsKKyAgICAgICAgZWwuYXBwZW5kQ2hpbGQoZCk7CisgICAgICAgIH0KKyAgICBmb3IoaT0wO2k8ZWwuY2hpbGROb2Rlcy5sZW5ndGg7aSsrKXsKKyAgICAgICAgaWYoZWwuY2hpbGROb2Rlc1tpXS5ub2RlVHlwZT09MSl7CisgICAgICAgICAgICBlbC5jaGlsZE5vZGVzW2ldLnN0eWxlLmJvcmRlckxlZnQ9IjFweCBzb2xpZCAiK2JjOworICAgICAgICAgICAgZWwuY2hpbGROb2Rlc1tpXS5zdHlsZS5ib3JkZXJSaWdodD0iMXB4IHNvbGlkICIrYmM7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CitlbC5wYXNzZWQ9dHJ1ZTsKK30KKyAgICAKK2Z1bmN0aW9uIEFkZFRvcChlbCxiayxjb2xvcixiYyxjbil7Cit2YXIgaSxsaW09NCxkPUNyZWF0ZUVsKCJiIik7CisKK2lmKGNuLmluZGV4T2YoInMiKT49MCkgbGltPTI7CitpZihiYykgZC5jbGFzc05hbWU9ImFydG9wIjsKK2Vsc2UgZC5jbGFzc05hbWU9InJ0b3AiOworZC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9Yms7Citmb3IoaT0xO2k8PWxpbTtpKyspeworICAgIHZhciB4PUNyZWF0ZUVsKCJiIik7CisgICAgeC5jbGFzc05hbWU9Y24gKyBpOworICAgIHguc3R5bGUuYmFja2dyb3VuZENvbG9yPWNvbG9yOworICAgIGlmKGJjKSB4LnN0eWxlLmJvcmRlckNvbG9yPWJjOworICAgIGQuYXBwZW5kQ2hpbGQoeCk7CisgICAgfQorZWwuc3R5bGUucGFkZGluZ1RvcD0wOworZWwuaW5zZXJ0QmVmb3JlKGQsZWwuZmlyc3RDaGlsZCk7Cit9CisKK2Z1bmN0aW9uIEFkZEJvdHRvbShlbCxiayxjb2xvcixiYyxjbil7Cit2YXIgaSxsaW09NCxkPUNyZWF0ZUVsKCJiIik7CisKK2lmKGNuLmluZGV4T2YoInMiKT49MCkgbGltPTI7CitpZihiYykgZC5jbGFzc05hbWU9ImFydG9wIjsKK2Vsc2UgZC5jbGFzc05hbWU9InJ0b3AiOworZC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9Yms7Citmb3IoaT1saW07aT4wO2ktLSl7CisgICAgdmFyIHg9Q3JlYXRlRWwoImIiKTsKKyAgICB4LmNsYXNzTmFtZT1jbiArIGk7CisgICAgeC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9Y29sb3I7CisgICAgaWYoYmMpIHguc3R5bGUuYm9yZGVyQ29sb3I9YmM7CisgICAgZC5hcHBlbmRDaGlsZCh4KTsKKyAgICB9CitlbC5zdHlsZS5wYWRkaW5nQm90dG9tPTA7CitlbC5hcHBlbmRDaGlsZChkKTsKK30KKworZnVuY3Rpb24gQ3JlYXRlRWwoeCl7CitpZihpc1hIVE1MKSByZXR1cm4oZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyx4KSk7CitlbHNlIHJldHVybihkb2N1bWVudC5jcmVhdGVFbGVtZW50KHgpKTsKK30KKworZnVuY3Rpb24gZ2V0RWxlbWVudHNCeVNlbGVjdG9yKHNlbGVjdG9yKXsKK3ZhciBpLHNlbGlkPSIiLHNlbGNsYXNzPSIiLHRhZz1zZWxlY3RvcixmLHM9W10sb2JqbGlzdD1bXTsKKworaWYoc2VsZWN0b3IuaW5kZXhPZigiICIpPjApeyAgLy9kZXNjZW5kYW50IHNlbGVjdG9yIGxpa2UgInRhZyNpZCB0YWciCisgICAgcz1zZWxlY3Rvci5zcGxpdCgiICIpOworICAgIHZhciBmcz1zWzBdLnNwbGl0KCIjIik7CisgICAgaWYoZnMubGVuZ3RoPT0xKSByZXR1cm4ob2JqbGlzdCk7CisgICAgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChmc1sxXSk7CisgICAgaWYoZikgcmV0dXJuKGYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoc1sxXSkpOworICAgIHJldHVybihvYmpsaXN0KTsKKyAgICB9CitpZihzZWxlY3Rvci5pbmRleE9mKCIjIik+MCl7IC8vaWQgc2VsZWN0b3IgbGlrZSAidGFnI2lkIgorICAgIHM9c2VsZWN0b3Iuc3BsaXQoIiMiKTsKKyAgICB0YWc9c1swXTsKKyAgICBzZWxpZD1zWzFdOworICAgIH0KK2lmKHNlbGlkIT0iIil7CisgICAgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWxpZCk7CisgICAgaWYoZikgb2JqbGlzdC5wdXNoKGYpOworICAgIHJldHVybihvYmpsaXN0KTsKKyAgICB9CitpZihzZWxlY3Rvci5pbmRleE9mKCIuIik+MCl7ICAvL2NsYXNzIHNlbGVjdG9yIGxpa2UgInRhZy5jbGFzcyIKKyAgICBzPXNlbGVjdG9yLnNwbGl0KCIuIik7CisgICAgdGFnPXNbMF07CisgICAgc2VsY2xhc3M9c1sxXTsKKyAgICB9Cit2YXIgdj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWcpOyAgLy8gdGFnIHNlbGVjdG9yIGxpa2UgInRhZyIKK2lmKHNlbGNsYXNzPT0iIikKKyAgICByZXR1cm4odik7Citmb3IoaT0wO2k8di5sZW5ndGg7aSsrKXsKKyAgICBpZih2W2ldLmNsYXNzTmFtZS5pbmRleE9mKHNlbGNsYXNzKT49MCl7CisgICAgICAgIG9iamxpc3QucHVzaCh2W2ldKTsKKyAgICAgICAgfQorICAgIH0KK3JldHVybihvYmpsaXN0KTsKK30KKworZnVuY3Rpb24gTWl4KGMxLGMyKXsKK3ZhciBpLHN0ZXAxLHN0ZXAyLHgseSxyPW5ldyBBcnJheSgzKTsKK2lmKGMxLmxlbmd0aD09NClzdGVwMT0xOworZWxzZSBzdGVwMT0yOworaWYoYzIubGVuZ3RoPT00KSBzdGVwMj0xOworZWxzZSBzdGVwMj0yOworZm9yKGk9MDtpPDM7aSsrKXsKKyAgICB4PXBhcnNlSW50KGMxLnN1YnN0cigxK3N0ZXAxKmksc3RlcDEpLDE2KTsKKyAgICBpZihzdGVwMT09MSkgeD0xNip4K3g7CisgICAgeT1wYXJzZUludChjMi5zdWJzdHIoMStzdGVwMippLHN0ZXAyKSwxNik7CisgICAgaWYoc3RlcDI9PTEpIHk9MTYqeSt5OworICAgIHJbaV09TWF0aC5mbG9vcigoeCo1MCt5KjUwKS8xMDApOworICAgIH0KK3JldHVybigiIyIrclswXS50b1N0cmluZygxNikrclsxXS50b1N0cmluZygxNikrclsyXS50b1N0cmluZygxNikpOworfSAKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL1JFQURNRS50eHQgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc3RhcnRlci9SRUFETUUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxYWJmYWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc3RhcnRlci9SRUFETUUudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1JFQURNRS50eHQgLSBzdGFydGVyDQorDQorVGhpcyBpcyBhbiAiaGVsbG8gd29ybGQiIGFwcGxpY2F0aW9uIHRoYXQgeW91IGNhbiBkZXBsb3kgYW5kIHJldmlldywgYW5kIA0KK3BlcmhhcHMgdXNlIGFzIHRoZSBiYXNpcyBvZiB5b3VyIG93biBhcHBsaWNhdGlvbi4gDQorDQorRm9yIG1vcmUgb24gZ2V0dGluZyBzdGFydGVkIHdpdGggU3RydXRzLCBzZWUgDQorDQorKiBodHRwOi8vY3dpa2kuYXBhY2hlLm9yZy9XVy9ob21lLmh0bWwNCisNCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3N0YXJ0ZXIvcG9tLnhtbCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL3BvbS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjgzODA0YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL3BvbS54bWwKQEAgLTAsMCArMSw0NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIg0KKyAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLXY0XzBfMC54c2QiPg0KKyAgICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+DQorICAgIDxwYXJlbnQ+DQorICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5zdHJ1dHM8L2dyb3VwSWQ+DQorICAgICAgPGFydGlmYWN0SWQ+c3RydXRzMi1hcHBzPC9hcnRpZmFjdElkPg0KKyAgICAgIDx2ZXJzaW9uPjIuMC4wLVNOQVBTSE9UPC92ZXJzaW9uPg0KKyAgICA8L3BhcmVudD4NCisgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5zdHJ1dHM8L2dyb3VwSWQ+DQorICAgIDxhcnRpZmFjdElkPnN0cnV0czItc3RhcnRlcjwvYXJ0aWZhY3RJZD4NCisgICAgPHBhY2thZ2luZz53YXI8L3BhY2thZ2luZz4NCisgICAgPG5hbWU+U3RhcnRlciBXZWJhcHA8L25hbWU+DQorICAgIDxkZXBlbmRlbmNpZXM+DQorICAgIA0KKyAgICAgICAgPGRlcGVuZGVuY3k+DQorICAgICAgICAgICA8Z3JvdXBJZD5qYXZheC5zZXJ2bGV0PC9ncm91cElkPg0KKyAgICAgICAgICAgPGFydGlmYWN0SWQ+c2VydmxldC1hcGk8L2FydGlmYWN0SWQ+DQorICAgICAgICAgICA8dmVyc2lvbj4yLjQ8L3ZlcnNpb24+DQorICAgICAgICAgICA8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPg0KKyAgICAgICAgPC9kZXBlbmRlbmN5Pg0KKyAgICAgICAgDQorICAgIDwvZGVwZW5kZW5jaWVzPg0KKyAgICANCisgICAgPGJ1aWxkPg0KKyAgICAgICAgPHBsdWdpbnM+DQorICAgICAgICAgICAgPHBsdWdpbj4NCisgICAgICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLm1vcnRiYXkuamV0dHk8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWpldHR5LXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgPHZlcnNpb24+Ni4wLjByYzM8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPg0KKyAgICAgICAgICAgICAgICAgICAgPHNjYW5JbnRlcnZhbFNlY29uZHM+MTA8L3NjYW5JbnRlcnZhbFNlY29uZHM+DQorICAgICAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4NCisgICAgICAgICAgICAgICAgPGRlcGVuZGVuY2llcz4NCisgICAgICAgICAgICAgICAgICAgIDxkZXBlbmRlbmN5Pg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUuZ2Vyb25pbW8uc3BlY3M8L2dyb3VwSWQ+DQorICAgICAgICAgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+Z2Vyb25pbW8tajJlZV8xLjRfc3BlYzwvYXJ0aWZhY3RJZD4NCisgICAgICAgICAgICAgICAgICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+DQorICAgICAgICAgICAgICAgICAgICAgICAgPHNjb3BlPnByb3ZpZGVkPC9zY29wZT4NCisgICAgICAgICAgICAgICAgICAgIDwvZGVwZW5kZW5jeT4NCisgICAgICAgICAgICAgICAgPC9kZXBlbmRlbmNpZXM+DQorICAgICAgICAgICAgPC9wbHVnaW4+DQorICAgICAgICA8L3BsdWdpbnM+DQorICAgIDwvYnVpbGQ+DQorPC9wcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL3NyYy9tYWluL2phdmEvY29tL2Zvby9leGFtcGxlL0NvdW50ZXJCZWFuLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc3RhcnRlci9zcmMvbWFpbi9qYXZhL2NvbS9mb28vZXhhbXBsZS9Db3VudGVyQmVhbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyNTRkY2EKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc3RhcnRlci9zcmMvbWFpbi9qYXZhL2NvbS9mb28vZXhhbXBsZS9Db3VudGVyQmVhbi5qYXZhCkBAIC0wLDAgKzEsMzYgQEAKKy8qDQorICogJElkOiBDb3VudGVyQmVhbi5qYXZhIDM5MTIyMCAyMDA2LTA0LTA0IDAzOjU0OjA5WiBtcmRvbiAkDQorICoNCisgKiBDb3B5cmlnaHQgMjAwNiBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICoNCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuDQorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0DQorICoNCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyAqDQorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQ0KKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsDQorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZA0KKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLg0KKyAqLw0KK3BhY2thZ2UgY29tLmZvby5leGFtcGxlOw0KKw0KKy8qKg0KKyAqIDxjb2RlPkNvdW50ZXJCZWFuPC9jb2RlPg0KKyAqDQorICogQGF1dGhvciBSYWluZXIgSGVybWFubnMNCisgKi8NCitwdWJsaWMgY2xhc3MgQ291bnRlckJlYW4gew0KKw0KKyAgICBwcml2YXRlIHN0YXRpYyBpbnQgY291bnQgPSAwOw0KKw0KKyAgICBwdWJsaWMgaW50IGdldENvdW50KCkgew0KKyAgICAgICAgcmV0dXJuIGNvdW50Ow0KKyAgICB9DQorDQorICAgIHB1YmxpYyB2b2lkIGluY3JlbWVudCgpIHsNCisgICAgICAgIGNvdW50Kys7DQorICAgIH0NCit9DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3N0YXJ0ZXIvc3JjL21haW4vamF2YS9jb20vZm9vL2V4YW1wbGUvSGVsbG9NYXRyaXhBY3Rpb24taGVsbG9NYXRyaXhTdWJtaXQtdmFsaWRhdGlvbi54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc3RhcnRlci9zcmMvbWFpbi9qYXZhL2NvbS9mb28vZXhhbXBsZS9IZWxsb01hdHJpeEFjdGlvbi1oZWxsb01hdHJpeFN1Ym1pdC12YWxpZGF0aW9uLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45M2ZlMmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3N0YXJ0ZXIvc3JjL21haW4vamF2YS9jb20vZm9vL2V4YW1wbGUvSGVsbG9NYXRyaXhBY3Rpb24taGVsbG9NYXRyaXhTdWJtaXQtdmFsaWRhdGlvbi54bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgdmFsaWRhdG9ycyBQVUJMSUMgIi0vL09wZW5TeW1waG9ueSBHcm91cC8vWFdvcmsgVmFsaWRhdG9yIDEuMC4yLy9FTiIgImh0dHA6Ly93d3cub3BlbnN5bXBob255LmNvbS94d29yay94d29yay12YWxpZGF0b3ItMS4wLjIuZHRkIj4NCisNCis8dmFsaWRhdG9ycz4NCisgICAgPGZpZWxkIG5hbWU9ImhlbGxvIj4NCisgICAgICAgIDxmaWVsZC12YWxpZGF0b3IgdHlwZT0icmVxdWlyZWRzdHJpbmciPg0KKyAgICAgICAgICAgIDxtZXNzYWdlPllvdSBtdXN0IGVudGVyIGEgbmFtZTwvbWVzc2FnZT4NCisgICAgICAgIDwvZmllbGQtdmFsaWRhdG9yPg0KKyAgICA8L2ZpZWxkPg0KKzwvdmFsaWRhdG9ycz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc3RhcnRlci9zcmMvbWFpbi9qYXZhL2NvbS9mb28vZXhhbXBsZS9IZWxsb01hdHJpeEFjdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3N0YXJ0ZXIvc3JjL21haW4vamF2YS9jb20vZm9vL2V4YW1wbGUvSGVsbG9NYXRyaXhBY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNmU4NDExCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3N0YXJ0ZXIvc3JjL21haW4vamF2YS9jb20vZm9vL2V4YW1wbGUvSGVsbG9NYXRyaXhBY3Rpb24uamF2YQpAQCAtMCwwICsxLDgxIEBACisvKg0KKyAqICRJZDogSGVsbG9NYXRyaXhBY3Rpb24uamF2YSA0MjAzODUgMjAwNi0wNy0xMCAwMDo1NzowNVogbXJkb24gJA0KKyAqDQorICogQ29weXJpZ2h0IDIwMDYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyAqDQorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7DQorICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLg0KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyAqDQorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjANCisgKg0KKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUNCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLg0KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQNCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisgKi8NCitwYWNrYWdlIGNvbS5mb28uZXhhbXBsZTsNCisNCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yazIuQWN0aW9uU3VwcG9ydDsNCisNCisvKioNCisgKiA8Y29kZT5IZWxsb01hdHJpeEFjdGlvbjwvY29kZT4NCisgKg0KKyAqIEBhdXRob3IgPGEgaHJlZj0ibWFpbHRvOmhlcm1hbm5zQGFpeGNlcHQuZGUiPlJhaW5lciBIZXJtYW5uczwvYT4NCisgKiBAdmVyc2lvbiAkSWQ6IEhlbGxvTWF0cml4QWN0aW9uLmphdmEgNDIwMzg1IDIwMDYtMDctMTAgMDA6NTc6MDVaIG1yZG9uICQNCisgKi8NCitwdWJsaWMgY2xhc3MgSGVsbG9NYXRyaXhBY3Rpb24gZXh0ZW5kcyBBY3Rpb25TdXBwb3J0IHsNCisNCisgICAgLyoqIFNwcmluZyBtYW5hZ2VkIGJlYW4gcmVmZXJlbmNlICovDQorICAgIHByaXZhdGUgQ291bnRlckJlYW4gY291bnRlckJlYW47DQorDQorICAgIC8qKg0KKyAgICAgKiBJb0Mgc2V0dGVyIGZvciB0aGUgc3ByaW5nIG1hbmFnZWQgQ291bnRlckJlYW4uDQorICAgICAqDQorICAgICAqIEBwYXJhbSBjb3VudGVyQmVhbg0KKyAgICAgKi8NCisgICAgcHVibGljIHZvaWQgc2V0Q291bnRlckJlYW4oQ291bnRlckJlYW4gY291bnRlckJlYW4pIHsNCisgICAgICAgIHRoaXMuY291bnRlckJlYW4gPSBjb3VudGVyQmVhbjsNCisgICAgfQ0KKw0KKyAgICBwcml2YXRlIFN0cmluZyBoZWxsbzsNCisgICAgcHJpdmF0ZSBTdHJpbmcgbWVzc2FnZTsNCisNCisgICAgcHVibGljIFN0cmluZyBnZXRIZWxsbygpIHsNCisgICAgICAgIHJldHVybiBoZWxsbzsNCisgICAgfQ0KKw0KKyAgICBwdWJsaWMgdm9pZCBzZXRIZWxsbyhTdHJpbmcgaGVsbG8pIHsNCisgICAgICAgIHRoaXMuaGVsbG8gPSBoZWxsbzsNCisgICAgfQ0KKw0KKyAgICBwdWJsaWMgU3RyaW5nIGdldE1lc3NhZ2UoKSB7DQorICAgICAgICByZXR1cm4gbWVzc2FnZTsNCisgICAgfQ0KKw0KKyAgICBwdWJsaWMgaW50IGdldENvdW50KCkgew0KKyAgICAgICAgcmV0dXJuIGNvdW50ZXJCZWFuLmdldENvdW50KCk7DQorICAgIH0NCisNCisgICAgLyoqDQorICAgICAqIEEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB0aGF0IGRvZXMgbm90aGluZyBhbiByZXR1cm5zICJzdWNjZXNzIi4NCisgICAgICoNCisgICAgICogQHJldHVybiB7QGxpbmsgI1NVQ0NFU1N9DQorICAgICAqLw0KKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisgICAgICAgIHJldHVybiBTVUNDRVNTOw0KKyAgICB9DQorDQorICAgIC8qKg0KKyAgICAgKiBTYW1wbGUgc2F5SGVsbG8gbWV0aG9kLg0KKyAgICAgKg0KKyAgICAgKiBAcmV0dXJuIHtAbGluayAjU1VDQ0VTU30NCisgICAgICovDQorICAgIHB1YmxpYyBTdHJpbmcgc2F5SGVsbG8oKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisNCisgICAgICAgIG1lc3NhZ2UgPSAidXNlcnMgYWxyZWFkeSB0b29rIHRoZSByZWQgcGlsbC4uLiI7DQorICAgICAgICBjb3VudGVyQmVhbi5pbmNyZW1lbnQoKTsNCisgICAgICAgIHJldHVybiBTVUNDRVNTOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL3NyYy9tYWluL2phdmEvY29tL2Zvby9leGFtcGxlL0hvbWVBY3Rpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL3NyYy9tYWluL2phdmEvY29tL2Zvby9leGFtcGxlL0hvbWVBY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTNlNzAyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3N0YXJ0ZXIvc3JjL21haW4vamF2YS9jb20vZm9vL2V4YW1wbGUvSG9tZUFjdGlvbi5qYXZhCkBAIC0wLDAgKzEsMzcgQEAKKy8qDQorICogJElkOiBIb21lQWN0aW9uLmphdmEgNDIwMzg1IDIwMDYtMDctMTAgMDA6NTc6MDVaIG1yZG9uICQNCisgKg0KKyAqIENvcHlyaWdodCAyMDA2IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4NCisgKg0KKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOw0KKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQNCisgKg0KKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wDQorICoNCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywNCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4NCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuDQorICovDQorcGFja2FnZSBjb20uZm9vLmV4YW1wbGU7DQorDQoraW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsyLkFjdGlvblN1cHBvcnQ7DQorDQorLyoqDQorICogPGNvZGU+SG9tZUFjdGlvbjwvY29kZT4NCisgKg0KKyAqIEBhdXRob3IgUmFpbmVyIEhlcm1hbm5zDQorICovDQorcHVibGljIGNsYXNzIEhvbWVBY3Rpb24gZXh0ZW5kcyBBY3Rpb25TdXBwb3J0IHsNCisNCisgICAgLyoqDQorICAgICAqIEEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB0aGF0IGRvZXMgbm90aGluZyBhbiByZXR1cm5zICJzdWNjZXNzIi4NCisgICAgICoNCisgICAgICogQHJldHVybiB7QGxpbmsgI1NVQ0NFU1N9DQorICAgICAqLw0KKyAgICBwdWJsaWMgU3RyaW5nIGV4ZWN1dGUoKSB0aHJvd3MgRXhjZXB0aW9uIHsNCisgICAgICAgIHJldHVybiBTVUNDRVNTOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL3NyYy9tYWluL3Jlc291cmNlcy9zdHJ1dHMucHJvcGVydGllcyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL3NyYy9tYWluL3Jlc291cmNlcy9zdHJ1dHMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzdkZTE1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3N0YXJ0ZXIvc3JjL21haW4vcmVzb3VyY2VzL3N0cnV0cy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMiBAQAorc3RydXRzLmRldk1vZGUgPSB0cnVlDQorc3RydXRzLmVuYWJsZS5EeW5hbWljTWV0aG9kSW52b2NhdGlvbiA9IGZhbHNlDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3N0YXJ0ZXIvc3JjL21haW4vcmVzb3VyY2VzL3N0cnV0cy54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc3RhcnRlci9zcmMvbWFpbi9yZXNvdXJjZXMvc3RydXRzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjFkMDM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3N0YXJ0ZXIvc3JjL21haW4vcmVzb3VyY2VzL3N0cnV0cy54bWwKQEAgLTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiID8+DQorDQorPCFET0NUWVBFIHN0cnV0cyBQVUJMSUMNCisgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMi4wLy9FTiINCisgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy0yLjAuZHRkIj4NCisgICAgDQorPHN0cnV0cz4NCisgICAgPGluY2x1ZGUgZmlsZT0ic3RydXRzLWRlZmF1bHQueG1sIi8+DQorDQorICAgIDxwYWNrYWdlIG5hbWU9ImRlZmF1bHQiIGV4dGVuZHM9InN0cnV0cy1kZWZhdWx0Ij4NCisNCisgICAgICAgIDxkZWZhdWx0LWFjdGlvbi1yZWYgbmFtZT0iaG9tZSIgLz4NCisNCisgICAgICAgIDxhY3Rpb24gbmFtZT0iaG9tZSIgY2xhc3M9ImNvbS5mb28uZXhhbXBsZS5Ib21lQWN0aW9uIj4NCisgICAgICAgICAgICA8cmVzdWx0Pi9XRUItSU5GL3BhZ2VzL2hvbWUuanNwPC9yZXN1bHQ+DQorICAgICAgICA8L2FjdGlvbj4NCisNCisgICAgICAgIDxhY3Rpb24gbmFtZT0iaGVsbG9NYXRyaXgiIGNsYXNzPSJjb20uZm9vLmV4YW1wbGUuSGVsbG9NYXRyaXhBY3Rpb24iPg0KKyAgICAgICAgICAgIDxyZXN1bHQgbmFtZT0ic3VjY2VzcyI+L1dFQi1JTkYvcGFnZXMvaGVsbG9tYXRyaXguanNwPC9yZXN1bHQ+DQorICAgICAgICA8L2FjdGlvbj4NCisNCisgICAgICAgIDxhY3Rpb24gbmFtZT0iaGVsbG9NYXRyaXhTdWJtaXQiIGNsYXNzPSJjb20uZm9vLmV4YW1wbGUuSGVsbG9NYXRyaXhBY3Rpb24iIG1ldGhvZD0ic2F5SGVsbG8iPg0KKyAgICAgICAgICAgIDxpbnRlcmNlcHRvci1yZWYgbmFtZT0idmFsaWRhdGlvbldvcmtmbG93U3RhY2siLz4NCisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImlucHV0Ij4vV0VCLUlORi9wYWdlcy9oZWxsb21hdHJpeC5qc3A8L3Jlc3VsdD4NCisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9ImVycm9yIj4vV0VCLUlORi9wYWdlcy9oZWxsb21hdHJpeC5qc3A8L3Jlc3VsdD4NCisgICAgICAgICAgICA8cmVzdWx0IG5hbWU9InN1Y2Nlc3MiIHR5cGU9ImZyZWVtYXJrZXIiPi9XRUItSU5GL3BhZ2VzL2hlbGxvbWF0cml4LXN1Y2Nlc3MuZnRsPC9yZXN1bHQ+DQorICAgICAgICA8L2FjdGlvbj4NCisNCisgICAgPC9wYWNrYWdlPg0KKzwvc3RydXRzPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL2FwcGxpY2F0aW9uQ29udGV4dC54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc3RhcnRlci9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9hcHBsaWNhdGlvbkNvbnRleHQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MmViYjQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc3RhcnRlci9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9hcHBsaWNhdGlvbkNvbnRleHQueG1sCkBAIC0wLDAgKzEsNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8IURPQ1RZUEUgYmVhbnMgUFVCTElDICItLy9TUFJJTkcvL0RURCBCRUFOLy9FTiIgImh0dHA6Ly93d3cuc3ByaW5nZnJhbWV3b3JrLm9yZy9kdGQvc3ByaW5nLWJlYW5zLmR0ZCI+DQorPGJlYW5zIGRlZmF1bHQtYXV0b3dpcmU9ImF1dG9kZXRlY3QiPg0KKyAgICA8YmVhbiBpZD0iY291bnRlckJlYW4iIGNsYXNzPSJjb20uZm9vLmV4YW1wbGUuQ291bnRlckJlYW4iIHNpbmdsZXRvbj0idHJ1ZSIgLz4NCisgICAgPCEtLSBhZGQgeW91ciBzcHJpbmcgYmVhbnMgaGVyZSAtLT4NCis8L2JlYW5zPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3BhZ2VzL2hlbGxvbWF0cml4LXN1Y2Nlc3MuZnRsIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3N0YXJ0ZXIvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvcGFnZXMvaGVsbG9tYXRyaXgtc3VjY2Vzcy5mdGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjljYjhiMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3BhZ2VzL2hlbGxvbWF0cml4LXN1Y2Nlc3MuZnRsCkBAIC0wLDAgKzEsMTIgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8dGl0bGU+SGVsbG8gTWF0cml4OiBTdWNjZXNzPC90aXRsZT4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxoMT4ke2hlbGxvfSBqdXN0IGVudGVyZWQgdGhlIG1hdHJpeCE8L2gxPgorCisgICAgICAgIDxwPgorICAgICAgICAgICAgJHtjb3VudH0gJHttZXNzYWdlfQorICAgICAgICA8L3A+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3N0YXJ0ZXIvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvcGFnZXMvaGVsbG9tYXRyaXguanNwIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3N0YXJ0ZXIvc3JjL21haW4vd2ViYXBwL1dFQi1JTkYvcGFnZXMvaGVsbG9tYXRyaXguanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3OGVhZjAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc3RhcnRlci9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9wYWdlcy9oZWxsb21hdHJpeC5qc3AKQEAgLTAsMCArMSwyMCBAQAorPCVAIHRhZ2xpYiBwcmVmaXg9InMiIHVyaT0iL3N0cnV0cy10YWdzIiAlPg0KKw0KKzxodG1sPg0KKyAgICA8aGVhZD4NCisgICAgICAgIDx0aXRsZT5FbnRlciB0aGUgTWF0cml4PC90aXRsZT4NCisgICAgPC9oZWFkPg0KKyAgICA8Ym9keT4NCisgICAgICAgIDxoMT5FbnRlciB0aGUgTWF0cml4IHNhbXBsZTwvaDE+DQorDQorICAgICAgICA8cD4NCisgICAgICAgICAgICA8ZmllbGRzZXQ+DQorICAgICAgICAgICAgICAgIDxsZWdlbmQ+TWF0cml4IEZvcm08L2xlZ2VuZD4NCisgICAgICAgICAgICAgICAgPHM6Zm9ybSBuYW1lPSJoZWxsb1dvcmxkRm9ybSIgYWN0aW9uPSJoZWxsb01hdHJpeFN1Ym1pdCI+DQorICAgICAgICAgICAgICAgICAgICA8czp0ZXh0ZmllbGQgbmFtZT0iaGVsbG8iIGxhYmVsPSJFbnRlciB5b3VyIG5hbWUiIC8+DQorICAgICAgICAgICAgICAgICAgICA8czpzdWJtaXQgLz4NCisgICAgICAgICAgICAgICAgPC9zOmZvcm0+DQorICAgICAgICAgICAgPC9maWVsZHNldD4NCisgICAgICAgIDwvcD4NCisgICAgPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc3RhcnRlci9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9wYWdlcy9ob21lLmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3BhZ2VzL2hvbWUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiMTRlYmYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc3RhcnRlci9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi9wYWdlcy9ob21lLmpzcApAQCAtMCwwICsxLDIwIEBACis8JUAgdGFnbGliIHByZWZpeD0icyIgdXJpPSIvc3RydXRzLXRhZ3MiICU+DQorDQorPGh0bWw+DQorICAgIDxoZWFkPg0KKyAgICAgICAgPHRpdGxlPldlbGNvbWU8L3RpdGxlPg0KKyAgICA8L2hlYWQ+DQorICAgIDxib2R5Pg0KKyAgICAgICAgPGgxPldlbGNvbWUgdG8gdGhlIHN0YXJ0ZXIgd2ViYXBwPC9oMT4NCisNCisgICAgICAgIDxwPg0KKyAgICAgICAgICAgIDxmaWVsZHNldD4NCisgICAgICAgICAgICAgICAgPGxlZ2VuZD5FeGFtcGxlIGFjdGlvbjwvbGVnZW5kPg0KKyAgICAgICAgICAgICAgICA8cD4NCisgICAgICAgICAgICAgICAgICAgIDxzOnVybCBpZD0iaGVsbG9VUkwiIGFjdGlvbj0iaGVsbG9NYXRyaXgiIC8+DQorICAgICAgICAgICAgICAgICAgICA8czphIGhyZWY9IiV7aGVsbG9VUkx9Ij5FbnRlciB0aGUgbWF0cml4PC9zOmE+DQorICAgICAgICAgICAgICAgIDwvcD4NCisgICAgICAgICAgICA8L2ZpZWxkc2V0Pg0KKyAgICAgICAgPC9wPg0KKyAgICA8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL3NyYy9tYWluL3dlYmFwcC9XRUItSU5GL3dlYi54bWwgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc3RhcnRlci9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi93ZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4ZjI5MWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2FwcHMvc3RhcnRlci9zcmMvbWFpbi93ZWJhcHAvV0VCLUlORi93ZWIueG1sCkBAIC0wLDAgKzEsNTEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiPz4NCis8IURPQ1RZUEUgd2ViLWFwcCBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4zLy9FTiIgImh0dHA6Ly9qYXZhLnN1bi5jb20vZHRkL3dlYi1hcHBfMl8zLmR0ZCI+DQorPHdlYi1hcHA+DQorDQorICAgIDxkaXNwbGF5LW5hbWU+QWNtZSBDb3JwPC9kaXNwbGF5LW5hbWU+DQorDQorICAgIDwhLS0gU1RBUlQgU05JUFBFVDogZXhhbXBsZSAtLT4NCisgICAgPGZpbHRlcj4NCisgICAgICAgIDxmaWx0ZXItbmFtZT5hY3Rpb24yPC9maWx0ZXItbmFtZT4NCisgICAgICAgIDxmaWx0ZXItY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMyLmRpc3BhdGNoZXIuRmlsdGVyRGlzcGF0Y2hlcjwvZmlsdGVyLWNsYXNzPg0KKyAgICA8L2ZpbHRlcj4NCisNCisgICAgPGZpbHRlci1tYXBwaW5nPg0KKyAgICAgICAgPGZpbHRlci1uYW1lPmFjdGlvbjI8L2ZpbHRlci1uYW1lPg0KKyAgICAgICAgPHVybC1wYXR0ZXJuPi8qPC91cmwtcGF0dGVybj4NCisgICAgPC9maWx0ZXItbWFwcGluZz4NCisgICAgPCEtLSBFTkQgU05JUFBFVDogZXhhbXBsZSAtLT4NCisNCisgICAgPGxpc3RlbmVyPg0KKyAgICAgICAgPGxpc3RlbmVyLWNsYXNzPm9yZy5zcHJpbmdmcmFtZXdvcmsud2ViLmNvbnRleHQuQ29udGV4dExvYWRlckxpc3RlbmVyPC9saXN0ZW5lci1jbGFzcz4NCisgICAgPC9saXN0ZW5lcj4NCisgICAgDQorDQorICAgIDwhLS0gU1RBUlQgU05JUFBFVDogZnJlZW1hcmtlclN1cHBvcnQgLS0+DQorICAgIDxzZXJ2bGV0Pg0KKyAgICAgICAgPHNlcnZsZXQtbmFtZT5Kc3BTdXBwb3J0U2VydmxldDwvc2VydmxldC1uYW1lPg0KKyAgICAgICAgPHNlcnZsZXQtY2xhc3M+b3JnLmFwYWNoZS5zdHJ1dHMyLnZpZXdzLkpzcFN1cHBvcnRTZXJ2bGV0PC9zZXJ2bGV0LWNsYXNzPg0KKyAgICAgICAgPGxvYWQtb24tc3RhcnR1cD4xPC9sb2FkLW9uLXN0YXJ0dXA+DQorICAgIDwvc2VydmxldD4NCisgICAgPCEtLSAgRU5EIFNOSVBQRVQ6IGZyZWVtYXJrZXJTdXBwb3J0IC0tPg0KKw0KKyAgICA8d2VsY29tZS1maWxlLWxpc3Q+DQorICAgICAgICA8d2VsY29tZS1maWxlPmluZGV4LmpzcDwvd2VsY29tZS1maWxlPg0KKyAgICAgICAgPHdlbGNvbWUtZmlsZT5kZWZhdWx0LmpzcDwvd2VsY29tZS1maWxlPg0KKyAgICAgICAgPHdlbGNvbWUtZmlsZT5pbmRleC5odG1sPC93ZWxjb21lLWZpbGU+DQorICAgIDwvd2VsY29tZS1maWxlLWxpc3Q+DQorDQorICAgIDwhLS0gU1RBUlQgU05JUFBFVDogdGFnbGliIC0tPg0KKyAgICA8IS0tDQorICAgICAgICBUaGlzIHR5cGljYWxseSBpc24ndCByZXF1aXJlZCwgYXMgdGhlIHRhZ2xpYiBpcyBpbmNsdWRlZCBpbiBzdHJ1dHMtYWN0aW9uLTIuMC5qYXIuDQorICAgICAgICBJZiB5b3UgcmVhbGx5IG5lZWQgYSB0YWdsaWIgY29uZmlndXJhdGlvbiB3aXRoaW4gd2ViLnhtbCwgY29weSBzdHJ1dHMvc3JjL2phdmEvTUVUQS1JTkYvdGFnbGliLnRsZA0KKyAgICAgICAgdG8gdGhlIFdFQi1JTkYgZGlyZWN0b3J5IGFzIHRhZ3MudGxkLg0KKyAgICAgLS0+DQorICAgIDwhLS0gDQorICAgIDx0YWdsaWI+DQorICAgICAgICA8dGFnbGliLXVyaT50YWdzPC90YWdsaWItdXJpPg0KKyAgICAgICAgPHRhZ2xpYi1sb2NhdGlvbj4vV0VCLUlORi90YWdzLnRsZDwvdGFnbGliLWxvY2F0aW9uPg0KKyAgICA8L3RhZ2xpYj4NCisgICAgLS0+DQorICAgIDwhLS0gRU5EIFNOSVBQRVQ6IHRhZ2xpYiAtLT4NCis8L3dlYi1hcHA+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9hcHBzL3N0YXJ0ZXIvc3JjL21haW4vd2ViYXBwL2luZGV4LmpzcCBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL3NyYy9tYWluL3dlYmFwcC9pbmRleC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjllZmRhNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvYXBwcy9zdGFydGVyL3NyYy9tYWluL3dlYmFwcC9pbmRleC5qc3AKQEAgLTAsMCArMSBAQAorPCUgcmVzcG9uc2Uuc2VuZFJlZGlyZWN0KHJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSArICIvaG9tZS5hY3Rpb24iKTsgJT4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2xlZ2FjeS9wb20ueG1sIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvcG9tLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWQ5OWUyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvcG9tLnhtbApAQCAtMCwwICsxLDE4IEBACis8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIg0KKyAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4tdjRfMF8wLnhzZCI+DQorICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+DQorICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmFjdGlvbjI8L2dyb3VwSWQ+DQorICA8YXJ0aWZhY3RJZD5sZWdhY3k8L2FydGlmYWN0SWQ+DQorICA8cGFja2FnaW5nPmphcjwvcGFja2FnaW5nPg0KKyAgPHZlcnNpb24+MS4wLVNOQVBTSE9UPC92ZXJzaW9uPg0KKyAgPG5hbWU+TWF2ZW4gUXVpY2sgU3RhcnQgQXJjaGV0eXBlPC9uYW1lPg0KKyAgPHVybD5odHRwOi8vbWF2ZW4uYXBhY2hlLm9yZzwvdXJsPg0KKyAgPGRlcGVuZGVuY2llcz4NCisgICAgPGRlcGVuZGVuY3k+DQorICAgICAgPGdyb3VwSWQ+anVuaXQ8L2dyb3VwSWQ+DQorICAgICAgPGFydGlmYWN0SWQ+anVuaXQ8L2FydGlmYWN0SWQ+DQorICAgICAgPHZlcnNpb24+My44LjE8L3ZlcnNpb24+DQorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPg0KKyAgICA8L2RlcGVuZGVuY3k+DQorICA8L2RlcGVuZGVuY2llcz4NCis8L3Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L0FjdGlvbkZvcm1SZXNldEludGVyY2VwdG9yLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2xlZ2FjeS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvYWN0aW9uMi9sZWdhY3kvQWN0aW9uRm9ybVJlc2V0SW50ZXJjZXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzg4ZDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L0FjdGlvbkZvcm1SZXNldEludGVyY2VwdG9yLmphdmEKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqICRJZDogQWN0aW9uLmphdmEgMjQwMzczIDIwMDUtMDgtMjcgMDE6NTg6MzlaIGptaXRjaGVsbCAkCisgKgorICogQ29weXJpZ2h0IDIwMDAtMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5hY3Rpb24yLmxlZ2FjeTsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuaW50ZXJjZXB0b3IuTW9kZWxEcml2ZW5JbnRlcmNlcHRvcjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrLkFjdGlvbkludm9jYXRpb247CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yay5pbnRlcmNlcHRvci5Bcm91bmRJbnRlcmNlcHRvcjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrLk9iamVjdEZhY3Rvcnk7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS53ZWJ3b3JrLlNlcnZsZXRBY3Rpb25Db250ZXh0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CisKKy8qKgorICogIENhbGxzIHRoZSByZXNldCgpIG1ldGhvZCBvbiB0aGUgQWN0aW9uRm9ybSwgaWYgaXQgZXhpc3RzLgorICovCitwdWJsaWMgY2xhc3MgQWN0aW9uRm9ybVJlc2V0SW50ZXJjZXB0b3IgZXh0ZW5kcyBBcm91bmRJbnRlcmNlcHRvciB7CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBhZnRlcihBY3Rpb25JbnZvY2F0aW9uIGRpc3BhdGNoZXIsIFN0cmluZyByZXN1bHQpIHRocm93cyBFeGNlcHRpb24geworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIGJlZm9yZShBY3Rpb25JbnZvY2F0aW9uIGludm9jYXRpb24pIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBPYmplY3QgYWN0aW9uID0gaW52b2NhdGlvbi5nZXRBY3Rpb24oKTsKKworICAgICAgICBpZiAoYWN0aW9uIGluc3RhbmNlb2YgU2NvcGVkTW9kZWxEcml2ZW4pIHsKKyAgICAgICAgICAgIFNjb3BlZE1vZGVsRHJpdmVuIG1vZGVsRHJpdmVuID0gKFNjb3BlZE1vZGVsRHJpdmVuKSBhY3Rpb247CisgICAgICAgICAgICBPYmplY3QgbW9kZWwgPSBtb2RlbERyaXZlbi5nZXRNb2RlbCgpOworICAgICAgICAgICAgaWYgKG1vZGVsICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcgPSBTdHJ1dHNGYWN0b3J5LmdldFN0cnV0c0ZhY3RvcnkoKS5jcmVhdGVBY3Rpb25NYXBwaW5nKGludm9jYXRpb24uZ2V0UHJveHkoKS5nZXRDb25maWcoKSk7CisgICAgICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcSA9IFNlcnZsZXRBY3Rpb25Db250ZXh0LmdldFJlcXVlc3QoKTsKKyAgICAgICAgICAgICAgICAoKEFjdGlvbkZvcm0pbW9kZWwpLnJlc2V0KG1hcHBpbmcsIHJlcSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2xlZ2FjeS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvYWN0aW9uMi9sZWdhY3kvQWN0aW9uRm9ybVZhbGlkYXRpb25JbnRlcmNlcHRvci5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L0FjdGlvbkZvcm1WYWxpZGF0aW9uSW50ZXJjZXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZWZhODkwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L0FjdGlvbkZvcm1WYWxpZGF0aW9uSW50ZXJjZXB0b3IuamF2YQpAQCAtMCwwICsxLDU1IEBACisvKgorICogJElkOiBBY3Rpb24uamF2YSAyNDAzNzMgMjAwNS0wOC0yNyAwMTo1ODozOVogam1pdGNoZWxsICQKKyAqCisgKiBDb3B5cmlnaHQgMjAwMC0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLmFjdGlvbjIubGVnYWN5OworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yay5pbnRlcmNlcHRvci5Nb2RlbERyaXZlbkludGVyY2VwdG9yOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuQWN0aW9uSW52b2NhdGlvbjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrLmludGVyY2VwdG9yLkFyb3VuZEludGVyY2VwdG9yOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuT2JqZWN0RmFjdG9yeTsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255LndlYndvcmsuU2VydmxldEFjdGlvbkNvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcjsKKworLyoqCisgKiAgQ2FsbHMgdGhlIHZhbGlkYXRlKCkgbWV0aG9kIG9uIHRoZSBBY3Rpb25Gb3JtLCBpZiBpdCBleGlzdHMuICBUaGUgZXJyb3JzIGFyZSBoYW5kbGVkCisgKiAgbGlrZSByZWd1bGFyIFhXb3JrIHZhbGlkYXRpb24gZXJyb3JzLgorICovCitwdWJsaWMgY2xhc3MgQWN0aW9uRm9ybVZhbGlkYXRpb25JbnRlcmNlcHRvciBleHRlbmRzIEFyb3VuZEludGVyY2VwdG9yIHsKKworICAgIHByb3RlY3RlZCB2b2lkIGFmdGVyKEFjdGlvbkludm9jYXRpb24gZGlzcGF0Y2hlciwgU3RyaW5nIHJlc3VsdCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHZvaWQgYmVmb3JlKEFjdGlvbkludm9jYXRpb24gaW52b2NhdGlvbikgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIE9iamVjdCBhY3Rpb24gPSBpbnZvY2F0aW9uLmdldEFjdGlvbigpOworCisgICAgICAgIGlmIChhY3Rpb24gaW5zdGFuY2VvZiBTY29wZWRNb2RlbERyaXZlbikgeworICAgICAgICAgICAgU2NvcGVkTW9kZWxEcml2ZW4gbW9kZWxEcml2ZW4gPSAoU2NvcGVkTW9kZWxEcml2ZW4pIGFjdGlvbjsKKyAgICAgICAgICAgIE9iamVjdCBtb2RlbCA9IG1vZGVsRHJpdmVuLmdldE1vZGVsKCk7CisgICAgICAgICAgICBpZiAobW9kZWwgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZyA9IFN0cnV0c0ZhY3RvcnkuZ2V0U3RydXRzRmFjdG9yeSgpLmNyZWF0ZUFjdGlvbk1hcHBpbmcoaW52b2NhdGlvbi5nZXRQcm94eSgpLmdldENvbmZpZygpKTsKKyAgICAgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxID0gU2VydmxldEFjdGlvbkNvbnRleHQuZ2V0UmVxdWVzdCgpOworICAgICAgICAgICAgICAgIEFjdGlvbkVycm9ycyBlcnJvcnMgPSAoKEFjdGlvbkZvcm0pbW9kZWwpLnZhbGlkYXRlKG1hcHBpbmcsIHJlcSk7CisgICAgICAgICAgICAgICAgU3RydXRzRmFjdG9yeS5nZXRTdHJ1dHNGYWN0b3J5KCkuY29udmVydEVycm9ycyhlcnJvcnMsIGFjdGlvbik7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L0R5bmFCZWFuUHJvcGVydHlBY2Nlc3Nvci5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L0R5bmFCZWFuUHJvcGVydHlBY2Nlc3Nvci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyODY0YzUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2xlZ2FjeS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvYWN0aW9uMi9sZWdhY3kvRHluYUJlYW5Qcm9wZXJ0eUFjY2Vzc29yLmphdmEKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqICRJZCQKKyAqIENvcHlyaWdodCAyMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuYWN0aW9uMi5sZWdhY3k7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkR5bmFCZWFuOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuRHluYUNsYXNzOworaW1wb3J0IG9nbmwuT2dubEV4Y2VwdGlvbjsKK2ltcG9ydCBvZ25sLlByb3BlcnR5QWNjZXNzb3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworLyoqCisgKiBQcm92aWRlcyBhY2Nlc3MgdG8gRHluYUJlYW4gcHJvcGVydGllcyBpbiBPR05MCisgKi8KK3B1YmxpYyBjbGFzcyBEeW5hQmVhblByb3BlcnR5QWNjZXNzb3IgaW1wbGVtZW50cyBQcm9wZXJ0eUFjY2Vzc29yIHsKKworICAgIHB1YmxpYyBPYmplY3QgZ2V0UHJvcGVydHkoTWFwIGNvbnRleHQsIE9iamVjdCB0YXJnZXQsIE9iamVjdCBuYW1lKSB0aHJvd3MgT2dubEV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICBpZiAodGFyZ2V0IGluc3RhbmNlb2YgRHluYUJlYW4gJiYgbmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICBEeW5hQmVhbiBiZWFuID0gKER5bmFCZWFuKXRhcmdldDsKKyAgICAgICAgICAgIER5bmFDbGFzcyBjbHMgPSBiZWFuLmdldER5bmFDbGFzcygpOworICAgICAgICAgICAgU3RyaW5nIGtleSA9IG5hbWUudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChjbHMuZ2V0RHluYVByb3BlcnR5KGtleSkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBiZWFuLmdldChrZXkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0gICAgCisKKyAgICBwdWJsaWMgdm9pZCBzZXRQcm9wZXJ0eShNYXAgY29udGV4dCwgT2JqZWN0IHRhcmdldCwgT2JqZWN0IG5hbWUsIE9iamVjdCB2YWx1ZSkgdGhyb3dzIE9nbmxFeGNlcHRpb24geworICAgICAgICAKKyAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIER5bmFCZWFuICYmIG5hbWUgIT0gbnVsbCkgeworICAgICAgICAgICAgRHluYUJlYW4gYmVhbiA9IChEeW5hQmVhbil0YXJnZXQ7CisgICAgICAgICAgICBTdHJpbmcga2V5ID0gbmFtZS50b1N0cmluZygpOworICAgICAgICAgICAgYmVhbi5zZXQoa2V5LCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICB9ICAgIAorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2xlZ2FjeS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvYWN0aW9uMi9sZWdhY3kvTGVnYWN5T2JqZWN0RmFjdG9yeS5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L0xlZ2FjeU9iamVjdEZhY3RvcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNmE1ZDA5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L0xlZ2FjeU9iamVjdEZhY3RvcnkuamF2YQpAQCAtMCwwICsxLDY3IEBACisvKgorICogJElkOiBBY3Rpb24uamF2YSAyNDAzNzMgMjAwNS0wOC0yNyAwMTo1ODozOVogam1pdGNoZWxsICQKKyAqCisgKiBDb3B5cmlnaHQgMjAwMC0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLmFjdGlvbjIubGVnYWN5OworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS53ZWJ3b3JrLmNvbmZpZy5Db25maWd1cmF0aW9uOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkud2Vid29yay51dGlsLk9iamVjdEZhY3RvcnlJbml0aWFsaXphYmxlOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkud2Vid29yay51dGlsLlNlcnZsZXRDb250ZXh0QXdhcmU7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yay5jb25maWcuZW50aXRpZXMuKjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrLmNvbmZpZy5Db25maWd1cmF0aW9uRXhjZXB0aW9uOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuT2JqZWN0RmFjdG9yeTsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrLmludGVyY2VwdG9yLkludGVyY2VwdG9yOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0OworCisvKioKKyAqIEFkZHMgc3VwcG9ydCBmb3IgaW50ZXJjZXB0b3JzIHRoYXQgd2FudCB0aGUgU2VydmxldENvbnRleHQKKyAqLworcHVibGljIGNsYXNzIExlZ2FjeU9iamVjdEZhY3RvcnkgZXh0ZW5kcyBPYmplY3RGYWN0b3J5IGltcGxlbWVudHMgT2JqZWN0RmFjdG9yeUluaXRpYWxpemFibGUgeworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyhMZWdhY3lPYmplY3RGYWN0b3J5LmNsYXNzKTsKKworICAgIHByaXZhdGUgU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQ7CisgICAgCisgICAgcHVibGljIHZvaWQgaW5pdChTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkgeworICAgICAgICAKKyAgICAgICAgbG9nLmluZm8oIkluaXRpYWxpemluZyBsZWdhY3kgaW50ZWdyYXRpb24uLi4iKTsKKyAgICAgICAgdGhpcy5zZXJ2bGV0Q29udGV4dCA9IHNlcnZsZXRDb250ZXh0OworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBCdWlsZHMgYW4gSW50ZXJjZXB0b3IgZnJvbSB0aGUgSW50ZXJjZXB0b3JDb25maWcgYW5kIHRoZSBNYXAgb2YKKyAgICAgKiBwYXJhbWV0ZXJzIGZyb20gdGhlIGludGVyY2VwdG9yIHJlZmVyZW5jZS4gSW1wbGVtZW50YXRpb25zIG9mIHRoaXMgbWV0aG9kCisgICAgICogc2hvdWxkIGVuc3VyZSB0aGF0IHRoZSBJbnRlcmNlcHRvciBpcyBwYXJhbWV0ZXJpemVkIHdpdGggYm90aCB0aGUKKyAgICAgKiBwYXJhbWV0ZXJzIGZyb20gdGhlIEludGVyY2VwdG9yIGNvbmZpZyBhbmQgdGhlIGludGVyY2VwdG9yIHJlZiBNYXAgKHRoZQorICAgICAqIGludGVyY2VwdG9yIHJlZiBwYXJhbXMgdGFrZSBwcmVjZWRlbmNlKSwgYW5kIHRoYXQgdGhlIEludGVyY2VwdG9yLmluaXQoKQorICAgICAqIG1ldGhvZCBpcyBjYWxsZWQgb24gdGhlIEludGVyY2VwdG9yIGluc3RhbmNlIGJlZm9yZSBpdCBpcyByZXR1cm5lZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnRlcmNlcHRvckNvbmZpZyAgICB0aGUgSW50ZXJjZXB0b3JDb25maWcgZnJvbSB0aGUgY29uZmlndXJhdGlvbgorICAgICAqIEBwYXJhbSBpbnRlcmNlcHRvclJlZlBhcmFtcyBhIE1hcCBvZiBwYXJhbXMgcHJvdmlkZWQgaW4gdGhlIEludGVyY2VwdG9yIHJlZmVyZW5jZSBpbiB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uIG1hcHBpbmcgb3IgSW50ZXJjZXB0b3JTdGFjayBkZWZpbml0aW9uCisgICAgICovCisgICAgcHVibGljIEludGVyY2VwdG9yIGJ1aWxkSW50ZXJjZXB0b3IoSW50ZXJjZXB0b3JDb25maWcgaW50ZXJjZXB0b3JDb25maWcsIE1hcCBpbnRlcmNlcHRvclJlZlBhcmFtcykgdGhyb3dzIENvbmZpZ3VyYXRpb25FeGNlcHRpb24geworICAgICAgICBJbnRlcmNlcHRvciBpbnRlcmNlcHRvciA9IHN1cGVyLmJ1aWxkSW50ZXJjZXB0b3IoaW50ZXJjZXB0b3JDb25maWcsIGludGVyY2VwdG9yUmVmUGFyYW1zKTsKKyAgICAgICAgaWYgKGludGVyY2VwdG9yICE9IG51bGwgJiYgaW50ZXJjZXB0b3IgaW5zdGFuY2VvZiBTZXJ2bGV0Q29udGV4dEF3YXJlKSB7CisgICAgICAgICAgICAoKFNlcnZsZXRDb250ZXh0QXdhcmUpaW50ZXJjZXB0b3IpLnNldFNlcnZsZXRDb250ZXh0KHNlcnZsZXRDb250ZXh0KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaW50ZXJjZXB0b3I7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L1BsdWdJbkludGVyY2VwdG9yLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2xlZ2FjeS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvYWN0aW9uMi9sZWdhY3kvUGx1Z0luSW50ZXJjZXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNGZkYjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L1BsdWdJbkludGVyY2VwdG9yLmphdmEKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiAkSWQ6IEFjdGlvbi5qYXZhIDI0MDM3MyAyMDA1LTA4LTI3IDAxOjU4OjM5WiBqbWl0Y2hlbGwgJAorICoKKyAqIENvcHlyaWdodCAyMDAwLTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuYWN0aW9uMi5sZWdhY3k7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrLmludGVyY2VwdG9yLk1vZGVsRHJpdmVuSW50ZXJjZXB0b3I7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yay5BY3Rpb25JbnZvY2F0aW9uOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuaW50ZXJjZXB0b3IuQXJvdW5kSW50ZXJjZXB0b3I7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yay5PYmplY3RGYWN0b3J5OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsudXRpbC5PZ25sVXRpbDsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255LndlYndvcmsudXRpbC5TZXJ2bGV0Q29udGV4dEF3YXJlOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi4qOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy4qOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy4qOworCisvKioKKyAqICBTdXBwb3J0cyBTdHJ1dHMgQWN0aW9uIDEueC1zdHlsZSBQbHVnSW4gY2xhc3NlcyBieSB3cmFwcGluZyB0aGVtIGluIHRoaXMKKyAqICBuby1vcCBpbnRlcmNlcHRvci4KKyAqLworcHVibGljIGNsYXNzIFBsdWdJbkludGVyY2VwdG9yIGV4dGVuZHMgQXJvdW5kSW50ZXJjZXB0b3IgCisgICAgICAgIGltcGxlbWVudHMgU2VydmxldENvbnRleHRBd2FyZXsKKworICAgIHByaXZhdGUgU3RyaW5nIGNsYXNzTmFtZTsKKyAgICBwcml2YXRlIE1hcCBwYXJhbXMgPSBuZXcgSGFzaE1hcCgpOworICAgIHByaXZhdGUgU3RyaW5nIG1vZHVsZVByZWZpeDsKKyAgICBwcml2YXRlIFBsdWdJbiBwbHVnaW4gPSBudWxsOworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvZyBMT0cgPSBMb2dGYWN0b3J5LmdldExvZyhQbHVnSW5JbnRlcmNlcHRvci5jbGFzcyk7CisKKyAgICBwdWJsaWMgdm9pZCBzZXRDbGFzc05hbWUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgdGhpcy5jbGFzc05hbWUgPSBuYW1lOworICAgIH0gICAgCisKKyAgICBwdWJsaWMgdm9pZCBzZXRQYXJhbXMoTWFwIHBhcmFtcykgeworICAgICAgICB0aGlzLnBhcmFtcyA9IHBhcmFtczsKKyAgICB9CisKKyAgICBwdWJsaWMgTWFwIGdldFBhcmFtcygpIHsKKyAgICAgICAgcmV0dXJuIHBhcmFtczsKKyAgICB9CisKKyAgICAvLyBUT0RPOiB3ZSBzaG91bGQgYmUgYWJsZSB0byBmaW5kIHRoZSBwYWNrYWdlIG5hbWUvbmFtZXNwYWNlIGR1cmluZyBpbml0IHRpbWUsIGJ1dCBmb3Igbm93IGl0J3MgcGFzc2VkIGluIGFzIHBhcmFtLgorICAgIHB1YmxpYyB2b2lkIHNldE1vZHVsZVByZWZpeChTdHJpbmcgbW9kdWxlUHJlZml4KSB7CisgICAgICAgIHRoaXMubW9kdWxlUHJlZml4ID0gbW9kdWxlUHJlZml4OworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFNlcnZsZXRDb250ZXh0KGZpbmFsIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0KSB7CisgICAgICAgIEFjdGlvblNlcnZsZXQgc2VydmxldCA9IG5ldyBBY3Rpb25TZXJ2bGV0KCkgeworICAgICAgICAgICAgcHVibGljIFNlcnZsZXRDb250ZXh0IGdldFNlcnZsZXRDb250ZXh0KCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzZXJ2bGV0Q29udGV4dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAgICAvLyBDcmVhdGUgYSBNb2R1bGVDb25maWcgYmFzZWQgb24gdGhlIG1vZHVsZSBwcmVmaXguICBUaGlzIGFzc3VtZXMgdGhhdCB0aGVyZSBpcyBhbiBleGlzdGluZyBYV29yayBwYWNrYWdlCisgICAgICAgIC8vIGNvbmZpZ3VyYXRpb24gd2l0aCB0aGUgZ2l2ZW4gbW9kdWxlIHByZWZpeC4KKyAgICAgICAgTW9kdWxlQ29uZmlnIG1vZENvbmZpZyA9IFN0cnV0c0ZhY3RvcnkuZ2V0U3RydXRzRmFjdG9yeSgpLmNyZWF0ZU1vZHVsZUNvbmZpZyhtb2R1bGVQcmVmaXgpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBwbHVnaW4gPSAoUGx1Z0luKSBPYmplY3RGYWN0b3J5LmdldE9iamVjdEZhY3RvcnkoKS5idWlsZEJlYW4oY2xhc3NOYW1lLCBudWxsKTsKKyAgICAgICAgICAgIHBsdWdpbi5pbml0KHNlcnZsZXQsIG1vZENvbmZpZyk7CisgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgTE9HLmVycm9yKCJVbmFibGUgdG8gY3JlYXRlIG9yIGluaXQgcGx1Z2luICIrY2xhc3NOYW1lLCBleCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gICAgCisgICAgICAgIGlmIChwYXJhbXMgIT0gbnVsbCkgeworICAgICAgICAgICAgT2dubFV0aWwuc2V0UHJvcGVydGllcyhwYXJhbXMsIHBsdWdpbik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcHVibGljIHZvaWQgZGVzdHJveSgpIHsKKyAgICAgICAgcGx1Z2luLmRlc3Ryb3koKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBhZnRlcihBY3Rpb25JbnZvY2F0aW9uIGRpc3BhdGNoZXIsIFN0cmluZyByZXN1bHQpIHRocm93cyBFeGNlcHRpb24geworICAgIH0KKworICAgIHByb3RlY3RlZCB2b2lkIGJlZm9yZShBY3Rpb25JbnZvY2F0aW9uIGludm9jYXRpb24pIHRocm93cyBFeGNlcHRpb24geworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvbGVnYWN5L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9hY3Rpb24yL2xlZ2FjeS9TY29wZWRNb2RlbERyaXZlbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L1Njb3BlZE1vZGVsRHJpdmVuLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGViZWJiZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvbGVnYWN5L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9hY3Rpb24yL2xlZ2FjeS9TY29wZWRNb2RlbERyaXZlbi5qYXZhCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiAkSWQkCisgKiBDb3B5cmlnaHQgMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLmFjdGlvbjIubGVnYWN5OworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yay5Nb2RlbERyaXZlbjsKKworLyoqCisgKiBBZGRzIHRoZSBhYmlsaXR5IHRvIHNldCBhIG1vZGVsLCBwcm9iYWJseSByZXRyaWV2ZWQgZnJvbSBhIGdpdmVuIHN0YXRlLgorICovCitwdWJsaWMgaW50ZXJmYWNlIFNjb3BlZE1vZGVsRHJpdmVuIGV4dGVuZHMgTW9kZWxEcml2ZW4geworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgbW9kZWwKKyAgICAgKi8KKyAgICB2b2lkIHNldE1vZGVsKE9iamVjdCBtb2RlbCk7Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2xlZ2FjeS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvYWN0aW9uMi9sZWdhY3kvU2NvcGVkTW9kZWxEcml2ZW5JbnRlcmNlcHRvci5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L1Njb3BlZE1vZGVsRHJpdmVuSW50ZXJjZXB0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2JkNzg1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L1Njb3BlZE1vZGVsRHJpdmVuSW50ZXJjZXB0b3IuamF2YQpAQCAtMCwwICsxLDcwIEBACisvKgorICogJElkJAorICogQ29weXJpZ2h0IDIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5hY3Rpb24yLmxlZ2FjeTsKKworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuaW50ZXJjZXB0b3IuTW9kZWxEcml2ZW5JbnRlcmNlcHRvcjsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrLkFjdGlvbkludm9jYXRpb247CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yay5BY3Rpb25Db250ZXh0OworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuQWN0aW9uUHJveHk7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yay5jb25maWcuZW50aXRpZXMuQWN0aW9uQ29uZmlnOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuT2JqZWN0RmFjdG9yeTsKKworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKKy8qKgorICogIFJldHJpZXZlcyB0aGUgbW9kZWwgY2xhc3MgZnJvbSB0aGUgY29uZmlndXJlZCBzY29wZSwgdGhlbiBwcm92aWRlcyBpdCAKKyAqICB0byB0aGUgQWN0aW9uLgorICovCitwdWJsaWMgY2xhc3MgU2NvcGVkTW9kZWxEcml2ZW5JbnRlcmNlcHRvciBleHRlbmRzIE1vZGVsRHJpdmVuSW50ZXJjZXB0b3IgeworCisgICAgcHJvdGVjdGVkIHZvaWQgYWZ0ZXIoQWN0aW9uSW52b2NhdGlvbiBkaXNwYXRjaGVyLCBTdHJpbmcgcmVzdWx0KSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBiZWZvcmUoQWN0aW9uSW52b2NhdGlvbiBpbnZvY2F0aW9uKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgT2JqZWN0IGFjdGlvbiA9IGludm9jYXRpb24uZ2V0QWN0aW9uKCk7CisKKyAgICAgICAgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIFNjb3BlZE1vZGVsRHJpdmVuKSB7CisgICAgICAgICAgICBTY29wZWRNb2RlbERyaXZlbiBtb2RlbERyaXZlbiA9IChTY29wZWRNb2RlbERyaXZlbikgYWN0aW9uOworICAgICAgICAgICAgQWN0aW9uQ29udGV4dCBjdHggPSBBY3Rpb25Db250ZXh0LmdldENvbnRleHQoKTsKKyAgICAgICAgICAgIEFjdGlvbkNvbmZpZyBjb25maWcgPSBpbnZvY2F0aW9uLmdldFByb3h5KCkuZ2V0Q29uZmlnKCk7CisgICAgICAgICAgICBTdHJpbmcgc2NvcGUgPSAoU3RyaW5nKWNvbmZpZy5nZXRQYXJhbXMoKS5nZXQoIm1vZGVsU2NvcGUiKTsKKyAgICAgICAgICAgIFN0cmluZyBhdHRyID0gKFN0cmluZyljb25maWcuZ2V0UGFyYW1zKCkuZ2V0KCJtb2RlbE5hbWUiKTsKKyAgICAgICAgICAgIFN0cmluZyBjbHNOYW1lID0gKFN0cmluZyljb25maWcuZ2V0UGFyYW1zKCkuZ2V0KCJtb2RlbENsYXNzIik7CisgICAgICAgICAgIAorICAgICAgICAgICAgT2JqZWN0IG1vZGVsID0gcmVzb2x2ZU1vZGVsKE9iamVjdEZhY3RvcnkuZ2V0T2JqZWN0RmFjdG9yeSgpLCBjdHguZ2V0U2Vzc2lvbigpLCBjbHNOYW1lLCBzY29wZSwgYXR0cik7CisgICAgICAgICAgICBtb2RlbERyaXZlbi5zZXRNb2RlbChtb2RlbCk7CisgICAgICAgIH0KKyAgICAgICAgc3VwZXIuYmVmb3JlKGludm9jYXRpb24pOworICAgIH0KKworICAgIHByb3RlY3RlZCBPYmplY3QgcmVzb2x2ZU1vZGVsKE9iamVjdEZhY3RvcnkgZmFjdG9yeSwgTWFwIHNlc3Npb24sIFN0cmluZyBjbGFzc05hbWUsIFN0cmluZyBzY29wZSwgU3RyaW5nIG5hbWUpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBPYmplY3QgbW9kZWwgPSBudWxsOworICAgICAgICBpZiAoInNlc3Npb24iLmVxdWFscyhzY29wZSkpIHsKKyAgICAgICAgICAgIG1vZGVsID0gc2Vzc2lvbi5nZXQobmFtZSk7CisgICAgICAgICAgICBpZiAobW9kZWwgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1vZGVsID0gZmFjdG9yeS5idWlsZEJlYW4oY2xhc3NOYW1lLCBudWxsKTsKKyAgICAgICAgICAgICAgICBzZXNzaW9uLnB1dChuYW1lLCBtb2RlbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtb2RlbCA9IGZhY3RvcnkuYnVpbGRCZWFuKGNsYXNzTmFtZSwgbnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1vZGVsOworICAgIH0gICAgCisgICAgICAgICAgICAgICAgICAgIAorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L1N0cnV0c0ZhY3RvcnkuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvbGVnYWN5L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9hY3Rpb24yL2xlZ2FjeS9TdHJ1dHNGYWN0b3J5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU5ZDUxMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvbGVnYWN5L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9hY3Rpb24yL2xlZ2FjeS9TdHJ1dHNGYWN0b3J5LmphdmEKQEAgLTAsMCArMSwxNTAgQEAKKy8qCisgKiAkSWQkCisgKiBDb3B5cmlnaHQgMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLmFjdGlvbjIubGVnYWN5OworCitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yay4qOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuY29uZmlnLmVudGl0aWVzLkFjdGlvbkNvbmZpZzsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrLmNvbmZpZy5lbnRpdGllcy5SZXN1bHRDb25maWc7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yay5jb25maWcuZW50aXRpZXMuRXhjZXB0aW9uTWFwcGluZ0NvbmZpZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uKjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuKjsKKworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworCisKKy8qKgorICogIFByb3ZpZGVzIGNvbnZlcnNpb24gbWV0aG9kcyBiZXR3ZWVuIHRoZSBTdHJ1dHMgQWN0aW9uIDEueCBhbmQgWFdvcmsKKyAqICBjbGFzc2VzLgorICovCitwdWJsaWMgY2xhc3MgU3RydXRzRmFjdG9yeSB7CisgICAgcHJpdmF0ZSBzdGF0aWMgU3RydXRzRmFjdG9yeSBGQUNUT1JZID0gbmV3IFN0cnV0c0ZhY3RvcnkoKTsKKworICAgIHByb3RlY3RlZCBTdHJ1dHNGYWN0b3J5KCkgeworICAgIH0KKworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBzZXRTdHJ1dHNGYWN0b3J5KFN0cnV0c0ZhY3RvcnkgZmFjdG9yeSkgeworICAgICAgICBGQUNUT1JZID0gZmFjdG9yeTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIFN0cnV0c0ZhY3RvcnkgZ2V0U3RydXRzRmFjdG9yeSgpIHsKKyAgICAgICAgcmV0dXJuIEZBQ1RPUlk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgU3RydXRzIDEueCBNb2R1bGVDb25maWcgYmFzZWQgb24gYW4gWFdvcmsgcGFja2FnZSBjb25maWd1cmF0aW9uLgorICAgICAqIAorICAgICAqIEBwYXJhbSBwYWNrYWdlTmFtZSB0aGUgbmFtZSBvZiB0aGUgWFdvcmsgcGFja2FnZSBjb25maWd1cmF0aW9uIHRvIHdyYXAuICBUaGlzIGJlY29tZXMgdGhlIG1vZHVsZSBwcmVmaXggZm9yIHRoZQorICAgICAqICAgICBuZXdseS1jcmVhdGVkIE1vZHVsZUNvbmZpZy4KKyAgICAgKiBAcmV0dXJuIGEgd3JhcHBlciBTdHJ1dHMgMS54IE1vZHVsZUNvbmZpZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgTW9kdWxlQ29uZmlnIGNyZWF0ZU1vZHVsZUNvbmZpZyhTdHJpbmcgcGFja2FnZU5hbWUpIHsKKyAgICAgICAgYXNzZXJ0IHBhY2thZ2VOYW1lICE9IG51bGw7CisgICAgICAgIHJldHVybiBuZXcgV3JhcHBlck1vZHVsZUNvbmZpZyhwYWNrYWdlTmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgU3RydXRzIDEueCBBY3Rpb25NYXBwaW5nIGZyb20gYW4gWFdvcmsgQWN0aW9uQ29uZmlnLgorICAgICAqIAorICAgICAqIEBwYXJhbSBjZmcgdGhlIFhXb3JrIEFjdGlvbkNvbmZpZy4KKyAgICAgKiBAcmV0dXJuIGEgd3JhcHBlciBTdHJ1dHMgMS54IEFjdGlvbk1hcHBpbmcuCisgICAgICovCisgICAgcHVibGljIEFjdGlvbk1hcHBpbmcgY3JlYXRlQWN0aW9uTWFwcGluZyhBY3Rpb25Db25maWcgY2ZnKSB7CisgICAgICAgIGFzc2VydCBjZmcgIT0gbnVsbDsKKyAgICAgICAgcmV0dXJuIG5ldyBXcmFwcGVyQWN0aW9uTWFwcGluZyhjZmcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFN0cnV0cyAxLnggQWN0aW9uTWFwcGluZyBmcm9tIGFuIFhXb3JrIEFjdGlvbkNvbmZpZy4gIFRoaXMgdmVyc2lvbiBwcm92aWRlcyBhbiBleGlzdGluZyBhY3Rpb24gcGF0aAorICAgICAqIGFuZCBNb2R1bGVDb25maWcuICBQYWNrYWdlLXByb3RlY3RlZCBmb3Igbm93OyBtYXkgbm90IG5lZWQgdG8gYmUgZXhwb3NlZCBwdWJsaWNseS4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gY2ZnIHRoZSBYV29yayBBY3Rpb25Db25maWcuCisgICAgICogQHBhcmFtIGFjdGlvblBhdGggdGhlIFN0cnV0cyAxLngtc3R5bGUgYWN0aW9uIHBhdGggKCcvJyArIGFjdGlvbi1uYW1lKS4KKyAgICAgKiBAcGFyYW0gbW9kdWxlQ29uZmlnIHRoZSBTdHJ1dHMgMS54IE1vZHVsZUNvbmZpZyB0aGF0IGNvbnRhaW5zIHRoZSBBY3Rpb25NYXBwaW5nLgorICAgICAqIEByZXR1cm4gYSB3cmFwcGVyIFN0cnV0cyAxLnggQWN0aW9uTWFwcGluZy4KKyAgICAgKi8KKyAgICBBY3Rpb25NYXBwaW5nIGNyZWF0ZUFjdGlvbk1hcHBpbmcoQWN0aW9uQ29uZmlnIGNmZywgU3RyaW5nIGFjdGlvblBhdGgsIE1vZHVsZUNvbmZpZyBtb2R1bGVDb25maWcpIHsKKyAgICAgICAgYXNzZXJ0IGNmZyAhPSBudWxsOworICAgICAgICBhc3NlcnQgbW9kdWxlQ29uZmlnICE9IG51bGw7CisgICAgICAgIHJldHVybiBuZXcgV3JhcHBlckFjdGlvbk1hcHBpbmcoY2ZnLCBhY3Rpb25QYXRoLCBtb2R1bGVDb25maWcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIFN0cnV0cyAxLnggQWN0aW9uRm9yd2FyZCBmcm9tIGFuIFhXb3JrIFJlc3VsdENvbmZpZy4KKyAgICAgKiAKKyAgICAgKiBAcGFyYW0gY2ZnIHRoZSBYV29yayBSZXN1bHRDb25maWcuCisgICAgICogQHJldHVybiBhIHdyYXBwZXIgU3RydXRzIDEueCBBY3Rpb25NYXBwaW5nLgorICAgICAqLworICAgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkIGNyZWF0ZUFjdGlvbkZvcndhcmQoUmVzdWx0Q29uZmlnIGNmZykgeworICAgICAgICBhc3NlcnQgY2ZnICE9IG51bGw7CisgICAgICAgIHJldHVybiBuZXcgV3JhcHBlckFjdGlvbkZvcndhcmQoY2ZnKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBTdHJ1dHMgMS54IEV4Y2VwdGlvbkNvbmZpZyBmcm9tIGFuIFhXb3JrIEV4Y2VwdGlvbk1hcHBpbmdDb25maWcuCisgICAgICogCisgICAgICogQHBhcmFtIGNmZyB0aGUgWFdvcmsgRXhjZXB0aW9uTWFwcGluZ0NvbmZpZy4KKyAgICAgKiBAcmV0dXJuIGEgd3JhcHBlciBTdHJ1dHMgMS54IEV4Y2VwdGlvbkNvbmZpZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgRXhjZXB0aW9uQ29uZmlnIGNyZWF0ZUV4Y2VwdGlvbkNvbmZpZyhFeGNlcHRpb25NYXBwaW5nQ29uZmlnIGNmZykgeworICAgICAgICBhc3NlcnQgY2ZnICE9IG51bGw7CisgICAgICAgIHJldHVybiBuZXcgV3JhcHBlckV4Y2VwdGlvbkNvbmZpZyhjZmcpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGNvbnZlcnRFcnJvcnMoQWN0aW9uRXJyb3JzIGVycm9ycywgT2JqZWN0IGFjdGlvbikgeworICAgICAgICBWYWxpZGF0aW9uQXdhcmUgdmFjdGlvbiA9IG51bGw7CisgICAgICAgIFRleHRQcm92aWRlciB0ZXh0ID0gbnVsbDsKKworICAgICAgICBpZiAoYWN0aW9uIGluc3RhbmNlb2YgVmFsaWRhdGlvbkF3YXJlKSB7CisgICAgICAgICAgICB2YWN0aW9uID0gKFZhbGlkYXRpb25Bd2FyZSlhY3Rpb247CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIFRleHRQcm92aWRlcikgeworICAgICAgICAgICAgdGV4dCA9IChUZXh0UHJvdmlkZXIpYWN0aW9uOworICAgICAgICB9CisKKyAgICAgICAgQWN0aW9uTWVzc2FnZSBlcnJvciA9IG51bGw7CisgICAgICAgIFN0cmluZyBmaWVsZCA9IG51bGw7CisgICAgICAgIFN0cmluZyBtc2cgPSBudWxsOworICAgICAgICBPYmplY3RbXSB2YWx1ZXMgPSBudWxsOworICAgICAgICBmb3IgKEl0ZXJhdG9yIGkgPSBlcnJvcnMucHJvcGVydGllcygpOyBpLmhhc05leHQoKTsgKSB7CisgICAgICAgICAgICBmaWVsZCA9IChTdHJpbmcpIGkubmV4dCgpOworICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpdCA9IGVycm9ycy5nZXQoZmllbGQpOyBpdC5oYXNOZXh0KCk7ICkgeworICAgICAgICAgICAgICAgIGVycm9yID0gKEFjdGlvbk1lc3NhZ2UpIGl0Lm5leHQoKTsKKyAgICAgICAgICAgICAgICBtc2cgPSBlcnJvci5nZXRLZXkoKTsKKyAgICAgICAgICAgICAgICBpZiAoZXJyb3IuaXNSZXNvdXJjZSgpICYmIHRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSBlcnJvci5nZXRWYWx1ZXMoKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlcyAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSB0ZXh0LmdldFRleHQoZXJyb3IuZ2V0S2V5KCksIEFycmF5cy5hc0xpc3QodmFsdWVzKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSB0ZXh0LmdldFRleHQoZXJyb3IuZ2V0S2V5KCkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh2YWN0aW9uICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkID09IGVycm9ycy5HTE9CQUxfTUVTU0FHRSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdmFjdGlvbi5hZGRBY3Rpb25FcnJvcihtc2cpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdmFjdGlvbi5hZGRGaWVsZEVycm9yKGZpZWxkLCBtc2cpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gc2hvdWxkIGRvIHNvbWV0aGluZyBoZXJlCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L1dyYXBwZXJBY3Rpb25Gb3J3YXJkLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2xlZ2FjeS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvYWN0aW9uMi9sZWdhY3kvV3JhcHBlckFjdGlvbkZvcndhcmQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjA1OTY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L1dyYXBwZXJBY3Rpb25Gb3J3YXJkLmphdmEKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqICRIZWFkZXI6JAorICovCitwYWNrYWdlIG9yZy5hcGFjaGUuYWN0aW9uMi5sZWdhY3k7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrLmNvbmZpZy5lbnRpdGllcy5SZXN1bHRDb25maWc7CisKKy8qKgorICogV3JhcHBlciBmb3IgYSBTdHJ1dHMgMS54IEFjdGlvbkZvcndhcmQgYmFzZWQgb24gYW4gWFdvcmsgUmVzdWx0Q29uZmlnLiAgVXNpbmcgYSB3cmFwcGVyIG9iamVjdAorICogYWxsb3dzIHVzIHRvIGJlIGV4cGxpY2l0IGFib3V0IHdoYXQgaXMgYW5kIGlzbid0IGltcGxlbWVudGVkLgorICovCitjbGFzcyBXcmFwcGVyQWN0aW9uRm9yd2FyZCBleHRlbmRzIEFjdGlvbkZvcndhcmQgeworCisgICAgcHJpdmF0ZSBSZXN1bHRDb25maWcgZGVsZWdhdGU7CisgICAgCisgICAgcHVibGljIFdyYXBwZXJBY3Rpb25Gb3J3YXJkKFJlc3VsdENvbmZpZyBkZWxlZ2F0ZSkgeworICAgICAgICBzdXBlcihkZWxlZ2F0ZS5nZXROYW1lKCkpOworICAgICAgICB0aGlzLmRlbGVnYXRlID0gZGVsZWdhdGU7CisgICAgICAgIGZyZWV6ZSgpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGRlbGVnYXRlLmdldE5hbWUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhdGgoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRNb2R1bGUoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZ2V0UmVkaXJlY3QoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuICJ3cmFwcGVyIC0+ICIgKyBkZWxlZ2F0ZS50b1N0cmluZygpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvbGVnYWN5L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9hY3Rpb24yL2xlZ2FjeS9XcmFwcGVyQWN0aW9uTWFwcGluZy5qYXZhIGIvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L1dyYXBwZXJBY3Rpb25NYXBwaW5nLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBlMjJjNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvbGVnYWN5L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9hY3Rpb24yL2xlZ2FjeS9XcmFwcGVyQWN0aW9uTWFwcGluZy5qYXZhCkBAIC0wLDAgKzEsMjgyIEBACisvKgorICogQ29weXJpZ2h0IDIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogJEhlYWRlcjokCisgKi8KK3BhY2thZ2Ugb3JnLmFwYWNoZS5hY3Rpb24yLmxlZ2FjeTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9yd2FyZENvbmZpZzsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrLmNvbmZpZy5lbnRpdGllcy5BY3Rpb25Db25maWc7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yay5jb25maWcuZW50aXRpZXMuUmVzdWx0Q29uZmlnOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuY29uZmlnLmVudGl0aWVzLkV4Y2VwdGlvbk1hcHBpbmdDb25maWc7CisKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKKworLyoqCisgKiBXcmFwcGVyIGZvciBhIFN0cnV0cyAxLnggQWN0aW9uTWFwcGluZyBiYXNlZCBvbiBhbiBYV29yayBBY3Rpb25Db25maWcuICBVc2luZyBhIHdyYXBwZXIgb2JqZWN0CisgKiBhbGxvd3MgdXMgdG8gYmUgZXhwbGljaXQgYWJvdXQgd2hhdCBpcyBhbmQgaXNuJ3QgaW1wbGVtZW50ZWQuCisgKi8KK2NsYXNzIFdyYXBwZXJBY3Rpb25NYXBwaW5nIGV4dGVuZHMgQWN0aW9uTWFwcGluZyB7CisKKyAgICBwcml2YXRlIEFjdGlvbkNvbmZpZyBkZWxlZ2F0ZTsKKyAgICBwcml2YXRlIFN0cmluZyBhY3Rpb25QYXRoOworCisgICAgcHVibGljIFdyYXBwZXJBY3Rpb25NYXBwaW5nKEFjdGlvbkNvbmZpZyBkZWxlZ2F0ZSkgeworICAgICAgICB0aGlzLmRlbGVnYXRlID0gZGVsZWdhdGU7CisgICAgICAgIGZvcndhcmRzID0gbnVsbDsKKyAgICAgICAgZXhjZXB0aW9ucyA9IG51bGw7CisgICAgfQorCisgICAgcHVibGljIFdyYXBwZXJBY3Rpb25NYXBwaW5nKEFjdGlvbkNvbmZpZyBkZWxlZ2F0ZSwgU3RyaW5nIGFjdGlvblBhdGgsIE1vZHVsZUNvbmZpZyBtb2R1bGVDb25maWcpIHsKKyAgICAgICAgdGhpcyhkZWxlZ2F0ZSk7CisgICAgICAgIHRoaXMubW9kdWxlQ29uZmlnID0gbW9kdWxlQ29uZmlnOworICAgICAgICB0aGlzLmFjdGlvblBhdGggPSBhY3Rpb25QYXRoOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBTdHJ1dHMgRm9yd2FyZENvbmZpZ3MgKGZyb20gWFdvcmsgUmVzdWx0Q29uZmlncykuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXRBY3Rpb25Gb3J3YXJkcygpIHsKKyAgICAgICAgaWYgKGZvcndhcmRzID09IG51bGwpIHsKKyAgICAgICAgICAgIGZvcndhcmRzID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIFN0cnV0c0ZhY3Rvcnkgc3RydXRzRmFjdG9yeSA9IFN0cnV0c0ZhY3RvcnkuZ2V0U3RydXRzRmFjdG9yeSgpOworICAgICAgICAgICAgTWFwIHJlc3VsdHMgPSBkZWxlZ2F0ZS5nZXRSZXN1bHRzKCk7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGkgPSByZXN1bHRzLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsgaS5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgTWFwLkVudHJ5IGVudHJ5ID0gKE1hcC5FbnRyeSkgaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgQWN0aW9uRm9yd2FyZCB3cmFwcGVyID0gc3RydXRzRmFjdG9yeS5jcmVhdGVBY3Rpb25Gb3J3YXJkKChSZXN1bHRDb25maWcpIGVudHJ5LmdldFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZvcndhcmRzLnB1dCh3cmFwcGVyLmdldE5hbWUoKSwgd3JhcHBlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgICAgICAgICAgICAgCisgICAgLyoqCisgICAgICogQWRkIFhXb3JrIEV4Y2VwdGlvbkNvbmZpZ3MgKGZyb20gWFdvcmsgRXhjZXB0aW9uTWFwcGluZ0NvbmZpZ3MpCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXRFeGNlcHRpb25Db25maWdzKCkgeworICAgICAgICBpZiAoZXhjZXB0aW9ucyA9PSBudWxsKSB7CisgICAgICAgICAgICBleGNlcHRpb25zID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIFN0cnV0c0ZhY3Rvcnkgc3RydXRzRmFjdG9yeSA9IFN0cnV0c0ZhY3RvcnkuZ2V0U3RydXRzRmFjdG9yeSgpOworICAgICAgICAgICAgTGlzdCBleGNlcHRpb25NYXBwaW5ncyA9IGRlbGVnYXRlLmdldEV4Y2VwdGlvbk1hcHBpbmdzKCk7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGkgPSBleGNlcHRpb25NYXBwaW5ncy5pdGVyYXRvcigpOyBpLmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBFeGNlcHRpb25Db25maWcgd3JhcHBlciA9IHN0cnV0c0ZhY3RvcnkuY3JlYXRlRXhjZXB0aW9uQ29uZmlnKChFeGNlcHRpb25NYXBwaW5nQ29uZmlnKSBpLm5leHQoKSk7CisgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5wdXQod3JhcHBlci5nZXRUeXBlKCksIHdyYXBwZXIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIEFjdGlvbkZvcndhcmQgZmluZEZvcndhcmQoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgaW5pdEFjdGlvbkZvcndhcmRzKCk7CisgICAgICAgIHJldHVybiBzdXBlci5maW5kRm9yd2FyZChuYW1lKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nW10gZmluZEZvcndhcmRzKCkgeworICAgICAgICBpbml0QWN0aW9uRm9yd2FyZHMoKTsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmZpbmRGb3J3YXJkcygpOworICAgIH0KKworICAgIHB1YmxpYyBGb3J3YXJkQ29uZmlnIGZpbmRGb3J3YXJkQ29uZmlnKFN0cmluZyBuYW1lKSB7CisgICAgICAgIGluaXRBY3Rpb25Gb3J3YXJkcygpOworICAgICAgICByZXR1cm4gc3VwZXIuZmluZEZvcndhcmRDb25maWcobmFtZSk7CisgICAgfQorCisgICAgcHVibGljIEZvcndhcmRDb25maWdbXSBmaW5kRm9yd2FyZENvbmZpZ3MoKSB7CisgICAgICAgIGluaXRBY3Rpb25Gb3J3YXJkcygpOworICAgICAgICByZXR1cm4gc3VwZXIuZmluZEZvcndhcmRDb25maWdzKCk7CisgICAgfQorCisgICAgcHVibGljIEV4Y2VwdGlvbkNvbmZpZyBmaW5kRXhjZXB0aW9uQ29uZmlnKFN0cmluZyB0eXBlKSB7CisgICAgICAgIGluaXRFeGNlcHRpb25Db25maWdzKCk7CisgICAgICAgIHJldHVybiBzdXBlci5maW5kRXhjZXB0aW9uQ29uZmlnKHR5cGUpOworICAgIH0KKworICAgIHB1YmxpYyBFeGNlcHRpb25Db25maWdbXSBmaW5kRXhjZXB0aW9uQ29uZmlncygpIHsKKyAgICAgICAgaW5pdEV4Y2VwdGlvbkNvbmZpZ3MoKTsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmZpbmRFeGNlcHRpb25Db25maWdzKCk7CisgICAgfQorCisgICAgcHVibGljIEV4Y2VwdGlvbkNvbmZpZyBmaW5kRXhjZXB0aW9uKENsYXNzIHR5cGUpIHsKKyAgICAgICAgaW5pdEV4Y2VwdGlvbkNvbmZpZ3MoKTsKKyAgICAgICAgcmV0dXJuIHN1cGVyLmZpbmRFeGNlcHRpb24odHlwZSk7CisgICAgfQorCisgICAgcHVibGljIEFjdGlvbkZvcndhcmQgZ2V0SW5wdXRGb3J3YXJkKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyBNb2R1bGVDb25maWcgZ2V0TW9kdWxlQ29uZmlnKCkgeworICAgICAgICBpZiAobW9kdWxlQ29uZmlnID09IG51bGwpIHsKKyAgICAgICAgICAgIFN0cnV0c0ZhY3Rvcnkgc3RydXRzRmFjdG9yeSA9IFN0cnV0c0ZhY3RvcnkuZ2V0U3RydXRzRmFjdG9yeSgpOworICAgICAgICAgICAgbW9kdWxlQ29uZmlnID0gc3RydXRzRmFjdG9yeS5jcmVhdGVNb2R1bGVDb25maWcoZGVsZWdhdGUuZ2V0UGFja2FnZU5hbWUoKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbW9kdWxlQ29uZmlnOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldE1vZHVsZUNvbmZpZyhNb2R1bGVDb25maWcgbW9kdWxlQ29uZmlnKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRBdHRyaWJ1dGUoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0QXR0cmlidXRlKFN0cmluZyBhdHRyaWJ1dGUpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEZvcndhcmQoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Rm9yd2FyZChTdHJpbmcgZm9yd2FyZCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0SW5jbHVkZSgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRJbmNsdWRlKFN0cmluZyBpbmNsdWRlKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRJbnB1dCgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRJbnB1dChTdHJpbmcgaW5wdXQpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldE11bHRpcGFydENsYXNzKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldE11bHRpcGFydENsYXNzKFN0cmluZyBtdWx0aXBhcnRDbGFzcykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgLy8gTm90ZTogaW4gU3RydXRzLCB0aGlzIGlzIGEgbmFtZSByZWZlcmVuY2UgdG8gYSBmb3JtIGJlYW4gZGVmaW5lZCBpbiB0aGUgY29uZmlnIGZpbGUuCisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0TmFtZShTdHJpbmcgbmFtZSkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UGFyYW1ldGVyKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFBhcmFtZXRlcihTdHJpbmcgcGFyYW1ldGVyKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRQYXRoKCkgeworICAgICAgICByZXR1cm4gYWN0aW9uUGF0aDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRQYXRoKFN0cmluZyBwYXRoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRQcmVmaXgoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0UHJlZml4KFN0cmluZyBwcmVmaXgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFJvbGVzKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFJvbGVzKFN0cmluZyByb2xlcykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRSb2xlTmFtZXMoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRTY29wZSgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRTY29wZShTdHJpbmcgc2NvcGUpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldFN1ZmZpeCgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRTdWZmaXgoU3RyaW5nIHN1ZmZpeCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VHlwZSgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRUeXBlKFN0cmluZyB0eXBlKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIGJvb2xlYW4gZ2V0VW5rbm93bigpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRVbmtub3duKGJvb2xlYW4gdW5rbm93bikgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGdldFZhbGlkYXRlKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldFZhbGlkYXRlKGJvb2xlYW4gdmFsaWRhdGUpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVFeGNlcHRpb25Db25maWcoRXhjZXB0aW9uQ29uZmlnIGNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlbW92ZUZvcndhcmRDb25maWcoRm9yd2FyZENvbmZpZyBjb25maWcpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRFeGNlcHRpb25Db25maWcoRXhjZXB0aW9uQ29uZmlnIGNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEZvcndhcmRDb25maWcoRm9yd2FyZENvbmZpZyBjb25maWcpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gIndyYXBwZXIgLT4gIiArIGRlbGVnYXRlLnRvU3RyaW5nKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvc3RydXRzMi9sZWdhY3kvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL2FjdGlvbjIvbGVnYWN5L1dyYXBwZXJFeGNlcHRpb25Db25maWcuamF2YSBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvbGVnYWN5L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9hY3Rpb24yL2xlZ2FjeS9XcmFwcGVyRXhjZXB0aW9uQ29uZmlnLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM1ZDI2NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvbGVnYWN5L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9hY3Rpb24yL2xlZ2FjeS9XcmFwcGVyRXhjZXB0aW9uQ29uZmlnLmphdmEKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqICRIZWFkZXI6JAorICovCitwYWNrYWdlIG9yZy5hcGFjaGUuYWN0aW9uMi5sZWdhY3k7CisKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrLmNvbmZpZy5lbnRpdGllcy5FeGNlcHRpb25NYXBwaW5nQ29uZmlnOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5FeGNlcHRpb25Db25maWc7CisKKy8qKgorICogV3JhcHBlciBmb3IgYSBTdHJ1dHMgMS54IEV4Y2VwdGlvbkNvbmZpZyBiYXNlZCBvbiBhbiBYV29yayBFeGNlcHRpb25NYXBwaW5nQ29uZmlnLiAgVXNpbmcgYQorICogd3JhcHBlciBvYmplY3QgYWxsb3dzIHVzIHRvIGJlIGV4cGxpY2l0IGFib3V0IHdoYXQgaXMgYW5kIGlzbid0IGltcGxlbWVudGVkLgorICovCitjbGFzcyBXcmFwcGVyRXhjZXB0aW9uQ29uZmlnIGV4dGVuZHMgRXhjZXB0aW9uQ29uZmlnIHsKKworICAgIHByaXZhdGUgRXhjZXB0aW9uTWFwcGluZ0NvbmZpZyBkZWxlZ2F0ZTsKKworICAgIHB1YmxpYyBXcmFwcGVyRXhjZXB0aW9uQ29uZmlnKEV4Y2VwdGlvbk1hcHBpbmdDb25maWcgZGVsZWdhdGUpIHsKKyAgICAgICAgdGhpcy5kZWxlZ2F0ZSA9IGRlbGVnYXRlOworICAgICAgICBmcmVlemUoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEJ1bmRsZSgpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEhhbmRsZXIoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRLZXkoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRQYXRoKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZ2V0U2NvcGUoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gZGVsZWdhdGUuZ2V0RXhjZXB0aW9uQ2xhc3NOYW1lKCk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgcmV0dXJuICJ3cmFwcGVyIC0+ICIgKyBkZWxlZ2F0ZS50b1N0cmluZygpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3N0cnV0czIvbGVnYWN5L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9hY3Rpb24yL2xlZ2FjeS9XcmFwcGVyTW9kdWxlQ29uZmlnLmphdmEgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2xlZ2FjeS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvYWN0aW9uMi9sZWdhY3kvV3JhcHBlck1vZHVsZUNvbmZpZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmN2VlMzYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC9zdHJ1dHMyL2xlZ2FjeS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvYWN0aW9uMi9sZWdhY3kvV3JhcHBlck1vZHVsZUNvbmZpZy5qYXZhCkBAIC0wLDAgKzEsMjU4IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKgorICogJEhlYWRlcjokCisgKi8KK3BhY2thZ2Ugb3JnLmFwYWNoZS5hY3Rpb24yLmxlZ2FjeTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmNvbmZpZy5Nb2R1bGVDb25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkNvbnRyb2xsZXJDb25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkRhdGFTb3VyY2VDb25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkV4Y2VwdGlvbkNvbmZpZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuRm9ybUJlYW5Db25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLkZvcndhcmRDb25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLk1lc3NhZ2VSZXNvdXJjZXNDb25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuY29uZmlnLlBsdWdJbkNvbmZpZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5jb25maWcuQWN0aW9uQ29uZmlnOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuY29uZmlnLkNvbmZpZ3VyYXRpb25NYW5hZ2VyOworaW1wb3J0IGNvbS5vcGVuc3ltcGhvbnkueHdvcmsuY29uZmlnLmVudGl0aWVzLlBhY2thZ2VDb25maWc7CitpbXBvcnQgY29tLm9wZW5zeW1waG9ueS54d29yay5jb25maWcuZW50aXRpZXMuRXhjZXB0aW9uTWFwcGluZ0NvbmZpZzsKK2ltcG9ydCBjb20ub3BlbnN5bXBob255Lnh3b3JrLmNvbmZpZy5lbnRpdGllcy5SZXN1bHRDb25maWc7CisKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKKworLyoqCisgKiBXcmFwcGVyIGZvciBhIFN0cnV0cyAxLnggTW9kdWxlQ29uZmlnIGJhc2VkIG9uIGFuIFhXb3JrIFBhY2thZ2VDb25maWcuICBVc2luZyBhIHdyYXBwZXIgb2JqZWN0CisgKiBhbGxvd3MgdXMgdG8gYmUgZXhwbGljaXQgYWJvdXQgd2hhdCBpcyBhbmQgaXNuJ3QgaW1wbGVtZW50ZWQuCisgKi8KK2NsYXNzIFdyYXBwZXJNb2R1bGVDb25maWcgaW1wbGVtZW50cyBNb2R1bGVDb25maWcgeworCisgICAgcHJpdmF0ZSBQYWNrYWdlQ29uZmlnIGRlbGVnYXRlOworICAgIHByaXZhdGUgTWFwIF9hY3Rpb25NYXBwaW5nczsKKyAgICBwcml2YXRlIE1hcCBfZXhjZXB0aW9uQ29uZmlnczsKKyAgICBwcml2YXRlIE1hcCBfYWN0aW9uRm9yd2FyZHM7CisKKyAgICBwdWJsaWMgV3JhcHBlck1vZHVsZUNvbmZpZyhTdHJpbmcgcGFja2FnZU5hbWUpIHsKKyAgICAgICAgZGVsZWdhdGUgPSBDb25maWd1cmF0aW9uTWFuYWdlci5nZXRDb25maWd1cmF0aW9uKCkuZ2V0UGFja2FnZUNvbmZpZyhwYWNrYWdlTmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIFN0cnV0cyBBY3Rpb25NYXBwaW5ncyAoZnJvbSBYV29yayBFeGNlcHRpb25Db25maWdzKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHZvaWQgaW5pdEFjdGlvbk1hcHBpbmdzKCkgeworCisgICAgICAgIGlmIChfYWN0aW9uTWFwcGluZ3MgPT0gbnVsbCkgeworICAgICAgICAgICAgX2FjdGlvbk1hcHBpbmdzID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIFN0cnV0c0ZhY3Rvcnkgc3RydXRzRmFjdG9yeSA9IFN0cnV0c0ZhY3RvcnkuZ2V0U3RydXRzRmFjdG9yeSgpOworICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpID0gZGVsZWdhdGUuZ2V0QWN0aW9uQ29uZmlncygpLmVudHJ5U2V0KCkuaXRlcmF0b3IoKTsgaS5oYXNOZXh0KCk7KSB7CisgICAgICAgICAgICAgICAgTWFwLkVudHJ5IGVudHJ5ID0gKE1hcC5FbnRyeSkgaS5uZXh0KCk7CisgICAgICAgICAgICAgICAgU3RyaW5nIGFjdGlvblBhdGggPSAnLycgKyAoU3RyaW5nKSBlbnRyeS5nZXRLZXkoKTsKKyAgICAgICAgICAgICAgICBjb20ub3BlbnN5bXBob255Lnh3b3JrLmNvbmZpZy5lbnRpdGllcy5BY3Rpb25Db25maWcgYWN0aW9uQ29uZmlnID0KKyAgICAgICAgICAgICAgICAgICAgICAgIChjb20ub3BlbnN5bXBob255Lnh3b3JrLmNvbmZpZy5lbnRpdGllcy5BY3Rpb25Db25maWcpIGVudHJ5LmdldFZhbHVlKCk7CisgICAgICAgICAgICAgICAgX2FjdGlvbk1hcHBpbmdzLnB1dChhY3Rpb25QYXRoLCBzdHJ1dHNGYWN0b3J5LmNyZWF0ZUFjdGlvbk1hcHBpbmcoYWN0aW9uQ29uZmlnLCBhY3Rpb25QYXRoLCB0aGlzKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgU3RydXRzIEV4Y2VwdGlvbkNvbmZpZ3MgKGZyb20gWFdvcmsgRXhjZXB0aW9uTWFwcGluZ0NvbmZpZ3MpLgorICAgICAqLworICAgIHByaXZhdGUgdm9pZCBpbml0RXhjZXB0aW9uQ29uZmlncygpIHsKKyAgICAgICAgaWYgKF9leGNlcHRpb25Db25maWdzID09IG51bGwpIHsKKyAgICAgICAgICAgIF9leGNlcHRpb25Db25maWdzID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgICAgIFN0cnV0c0ZhY3Rvcnkgc3RydXRzRmFjdG9yeSA9IFN0cnV0c0ZhY3RvcnkuZ2V0U3RydXRzRmFjdG9yeSgpOworICAgICAgICAgICAgZm9yIChJdGVyYXRvciBpID0gZGVsZWdhdGUuZ2V0R2xvYmFsRXhjZXB0aW9uTWFwcGluZ0NvbmZpZ3MoKS5pdGVyYXRvcigpOyBpLmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBFeGNlcHRpb25NYXBwaW5nQ29uZmlnIGNvbmZpZyA9IChFeGNlcHRpb25NYXBwaW5nQ29uZmlnKSBpLm5leHQoKTsKKyAgICAgICAgICAgICAgICBfZXhjZXB0aW9uQ29uZmlncy5wdXQoY29uZmlnLmdldEV4Y2VwdGlvbkNsYXNzTmFtZSgpLCBzdHJ1dHNGYWN0b3J5LmNyZWF0ZUV4Y2VwdGlvbkNvbmZpZyhjb25maWcpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBTdHJ1dHMgQWN0aW9uRm9yd2FyZHMgKGZyb20gWFdvcmsgUmVzdWx0Q29uZmlncykuCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIGluaXRBY3Rpb25Gb3J3YXJkcygpIHsKKyAgICAgICAgaWYgKF9hY3Rpb25Gb3J3YXJkcyA9PSBudWxsKSB7CisgICAgICAgICAgICBfYWN0aW9uRm9yd2FyZHMgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICAgICAgU3RydXRzRmFjdG9yeSBzdHJ1dHNGYWN0b3J5ID0gU3RydXRzRmFjdG9yeS5nZXRTdHJ1dHNGYWN0b3J5KCk7CisgICAgICAgICAgICBmb3IgKEl0ZXJhdG9yIGkgPSBkZWxlZ2F0ZS5nZXRHbG9iYWxSZXN1bHRDb25maWdzKCkuZW50cnlTZXQoKS5pdGVyYXRvcigpOyBpLmhhc05leHQoKTspIHsKKyAgICAgICAgICAgICAgICBNYXAuRW50cnkgZW50cnkgPSAoTWFwLkVudHJ5KSBpLm5leHQoKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgbmFtZSA9IChTdHJpbmcpIGVudHJ5LmdldEtleSgpOworICAgICAgICAgICAgICAgIFJlc3VsdENvbmZpZyBjb25maWcgPSAoUmVzdWx0Q29uZmlnKSBlbnRyeS5nZXRWYWx1ZSgpOworICAgICAgICAgICAgICAgIF9hY3Rpb25Gb3J3YXJkcy5wdXQobmFtZSwgc3RydXRzRmFjdG9yeS5jcmVhdGVBY3Rpb25Gb3J3YXJkKGNvbmZpZykpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRQcmVmaXgoKSB7CisgICAgICAgIHJldHVybiBkZWxlZ2F0ZS5nZXROYW1lc3BhY2UoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRQcmVmaXgoU3RyaW5nIHByZWZpeCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyBib29sZWFuIGdldENvbmZpZ3VyZWQoKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHB1YmxpYyBDb250cm9sbGVyQ29uZmlnIGdldENvbnRyb2xsZXJDb25maWcoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0Q29udHJvbGxlckNvbmZpZyhDb250cm9sbGVyQ29uZmlnIGNjKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRBY3Rpb25Gb3JtQmVhbkNsYXNzKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNldEFjdGlvbkZvcm1CZWFuQ2xhc3MoU3RyaW5nIGFjdGlvbkZvcm1CZWFuQ2xhc3MpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIGdldEFjdGlvbk1hcHBpbmdDbGFzcygpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRBY3Rpb25NYXBwaW5nQ2xhc3MoU3RyaW5nIGFjdGlvbk1hcHBpbmdDbGFzcykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEFjdGlvbkNvbmZpZyhBY3Rpb25Db25maWcgY29uZmlnKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkRGF0YVNvdXJjZUNvbmZpZyhEYXRhU291cmNlQ29uZmlnIGNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZEV4Y2VwdGlvbkNvbmZpZyhFeGNlcHRpb25Db25maWcgY29uZmlnKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkRm9ybUJlYW5Db25maWcoRm9ybUJlYW5Db25maWcgY29uZmlnKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBnZXRBY3Rpb25Gb3J3YXJkQ2xhc3MoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2V0QWN0aW9uRm9yd2FyZENsYXNzKFN0cmluZyBhY3Rpb25Gb3J3YXJkQ2xhc3MpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBhZGRGb3J3YXJkQ29uZmlnKEZvcndhcmRDb25maWcgY29uZmlnKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgYWRkTWVzc2FnZVJlc291cmNlc0NvbmZpZyhNZXNzYWdlUmVzb3VyY2VzQ29uZmlnIGNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGFkZFBsdWdJbkNvbmZpZyhQbHVnSW5Db25maWcgcGx1Z0luQ29uZmlnKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIEFjdGlvbkNvbmZpZyBmaW5kQWN0aW9uQ29uZmlnKFN0cmluZyBwYXRoKSB7CisgICAgICAgIGluaXRBY3Rpb25NYXBwaW5ncygpOworICAgICAgICByZXR1cm4gKEFjdGlvbkNvbmZpZykgX2FjdGlvbk1hcHBpbmdzLmdldChwYXRoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgQWN0aW9uQ29uZmlnW10gZmluZEFjdGlvbkNvbmZpZ3MoKSB7CisgICAgICAgIGluaXRBY3Rpb25NYXBwaW5ncygpOworICAgICAgICByZXR1cm4gKEFjdGlvbkNvbmZpZ1tdKSBfYWN0aW9uTWFwcGluZ3MudmFsdWVzKCkudG9BcnJheShuZXcgQWN0aW9uQ29uZmlnW19hY3Rpb25NYXBwaW5ncy5zaXplKCldKTsKKyAgICB9CisKKyAgICBwdWJsaWMgRGF0YVNvdXJjZUNvbmZpZyBmaW5kRGF0YVNvdXJjZUNvbmZpZyhTdHJpbmcga2V5KSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIERhdGFTb3VyY2VDb25maWdbXSBmaW5kRGF0YVNvdXJjZUNvbmZpZ3MoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIEV4Y2VwdGlvbkNvbmZpZyBmaW5kRXhjZXB0aW9uQ29uZmlnKFN0cmluZyB0eXBlKSB7CisgICAgICAgIGluaXRFeGNlcHRpb25Db25maWdzKCk7CisgICAgICAgIHJldHVybiAoRXhjZXB0aW9uQ29uZmlnKSBfZXhjZXB0aW9uQ29uZmlncy5nZXQodHlwZSk7CisgICAgfQorCisgICAgcHVibGljIEV4Y2VwdGlvbkNvbmZpZ1tdIGZpbmRFeGNlcHRpb25Db25maWdzKCkgeworICAgICAgICBpbml0RXhjZXB0aW9uQ29uZmlncygpOworICAgICAgICByZXR1cm4gKEV4Y2VwdGlvbkNvbmZpZ1tdKSBfZXhjZXB0aW9uQ29uZmlncy52YWx1ZXMoKS50b0FycmF5KG5ldyBFeGNlcHRpb25Db25maWdbX2V4Y2VwdGlvbkNvbmZpZ3Muc2l6ZSgpXSk7CisgICAgfQorCisgICAgcHVibGljIEZvcm1CZWFuQ29uZmlnIGZpbmRGb3JtQmVhbkNvbmZpZyhTdHJpbmcgbmFtZSkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyBGb3JtQmVhbkNvbmZpZ1tdIGZpbmRGb3JtQmVhbkNvbmZpZ3MoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTllJIik7CisgICAgfQorCisgICAgcHVibGljIEZvcndhcmRDb25maWcgZmluZEZvcndhcmRDb25maWcoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgaW5pdEFjdGlvbkZvcndhcmRzKCk7CisgICAgICAgIHJldHVybiAoRm9yd2FyZENvbmZpZykgX2FjdGlvbkZvcndhcmRzLmdldChuYW1lKTsKKyAgICB9CisKKyAgICBwdWJsaWMgRm9yd2FyZENvbmZpZ1tdIGZpbmRGb3J3YXJkQ29uZmlncygpIHsKKyAgICAgICAgaW5pdEFjdGlvbkZvcndhcmRzKCk7CisgICAgICAgIHJldHVybiAoRm9yd2FyZENvbmZpZ1tdKSBfYWN0aW9uRm9yd2FyZHMudmFsdWVzKCkudG9BcnJheShuZXcgRm9yd2FyZENvbmZpZ1tfYWN0aW9uRm9yd2FyZHMuc2l6ZSgpXSk7CisgICAgfQorCisgICAgcHVibGljIE1lc3NhZ2VSZXNvdXJjZXNDb25maWcgZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWcoU3RyaW5nIGtleSkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyBNZXNzYWdlUmVzb3VyY2VzQ29uZmlnW10gZmluZE1lc3NhZ2VSZXNvdXJjZXNDb25maWdzKCkgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5ZSSIpOworICAgIH0KKworICAgIHB1YmxpYyBQbHVnSW5Db25maWdbXSBmaW5kUGx1Z0luQ29uZmlncygpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOWUkiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBmcmVlemUoKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlQWN0aW9uQ29uZmlnKEFjdGlvbkNvbmZpZyBjb25maWcpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVFeGNlcHRpb25Db25maWcoRXhjZXB0aW9uQ29uZmlnIGNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHJlbW92ZURhdGFTb3VyY2VDb25maWcoRGF0YVNvdXJjZUNvbmZpZyBjb25maWcpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVGb3JtQmVhbkNvbmZpZyhGb3JtQmVhbkNvbmZpZyBjb25maWcpIHsKKyAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3QgaW1wbGVtZW50ZWQgLSBpbW11dGFibGUiKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCByZW1vdmVGb3J3YXJkQ29uZmlnKEZvcndhcmRDb25maWcgY29uZmlnKSB7CisgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IGltcGxlbWVudGVkIC0gaW1tdXRhYmxlIik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgcmVtb3ZlTWVzc2FnZVJlc291cmNlc0NvbmZpZyhNZXNzYWdlUmVzb3VyY2VzQ29uZmlnIGNvbmZpZykgeworICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBpbXBsZW1lbnRlZCAtIGltbXV0YWJsZSIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RhZy1kb2MvYnVpbGQueG1sIGIvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9idWlsZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzZlODljOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RhZy1kb2MvYnVpbGQueG1sCkBAIC0wLDAgKzEsODYgQEAKKzxwcm9qZWN0IG5hbWU9IlRhZ2xpYkRvYyIgZGVmYXVsdD0iY29tcGlsZSIgYmFzZWRpcj0iLiI+CisKKyAgPCEtLSBMb2FkIGxvY2FsIGFuZCB1c2VyIGJ1aWxkIHByZWZlcmVuY2VzIC0tPgorICA8cHJvcGVydHkgZmlsZT0iYnVpbGQucHJvcGVydGllcyIvPgorICA8cHJvcGVydHkgZmlsZT0iLi4vLi4vYnVpbGQucHJvcGVydGllcyIvPgorICA8cHJvcGVydHkgZmlsZT0iLi4vLi4vLi4vYnVpbGQucHJvcGVydGllcyIvPgorICA8cHJvcGVydHkgZmlsZT0iJHt1c2VyLmhvbWV9L2J1aWxkLnByb3BlcnRpZXMiLz4KKworICA8cHJvcGVydHkgbmFtZT0ic3JjLmRpciIgICAgICAgICAgIHZhbHVlPSJzcmMiLz4KKyAgPHByb3BlcnR5IG5hbWU9ImNsYXNzZXMuZGlyIiAgICAgICB2YWx1ZT0iY2xhc3NlcyIvPgorICA8cHJvcGVydHkgbmFtZT0iZGlzdC5kaXIiICAgICAgICAgIHZhbHVlPSJkaXN0Ii8+CisgIDxwcm9wZXJ0eSBuYW1lPSJkaXN0LmphciIgICAgICAgICAgdmFsdWU9IiR7ZGlzdC5kaXJ9L3RhZ2xpYi1kb2NzLmphciIvPgorICA8cHJvcGVydHkgbmFtZT0iamF2YS5kaXIiICAgICAgICAgIHZhbHVlPSIke3NyYy5kaXJ9L2phdmEiLz4KKyAgPHByb3BlcnR5IG5hbWU9InJlc291cmNlcy5kaXIiICAgICB2YWx1ZT0iJHtzcmMuZGlyfS9yZXNvdXJjZXMiLz4KKyAgPHByb3BlcnR5IG5hbWU9InRhcmdldC5kaXIiICAgICAgICB2YWx1ZT0idGFyZ2V0Ii8+CisgIDxwcm9wZXJ0eSBuYW1lPSJ0YWdsaWJkb2MuZGlyIiAgICAgdmFsdWU9IiR7dGFyZ2V0LmRpcn0vdGFnbGliZG9jIi8+CisgIDxwcm9wZXJ0eSBuYW1lPSJ0YWdsaWJyZXBvcnQuZGlyIiAgdmFsdWU9IiR7dGFyZ2V0LmRpcn0vdGFnbGlicmVwb3J0Ii8+CisKKyAgPCEtLSBUaGlzIGlzIHRoZSBkb2MgZGlyZWN0b3kgcmVsYXRpdmUgdG8gdGhlIGpha2FydGEtc3RydXRzIGRpcmVjdG9yeSBmcm9tIGhlcmUgLS0+CisgIDxwcm9wZXJ0eSBuYW1lPSJzdHJ1dHMuZG9jLmRpciIgICAgdmFsdWU9Ii4uLy4uL2RvYyIvPgorICA8cHJvcGVydHkgbmFtZT0ieG1sLmRpciIgICAgICAgICAgIHZhbHVlPSIke3N0cnV0cy5kb2MuZGlyfS91c2VyR3VpZGUiLz4KKworICA8IS0tIENvbXBpbGF0aW9uIENsYXNzcGF0aCAtLT4KKyAgPHBhdGggaWQ9ImNvbXBpbGUuY2xhc3NwYXRoIj4KKyAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7Y2xhc3Nlcy5kaXJ9Ii8+CisgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2FudC5qYXJ9Ii8+CisgIDwvcGF0aD4KKyAgCisgIDx0YXJnZXQgbmFtZT0iaW5pdCI+CisgICAgPG1rZGlyIGRpcj0iJHtjbGFzc2VzLmRpcn0iLz4KKyAgICA8bWtkaXIgZGlyPSIke2Rpc3QuZGlyfSIvPgorICA8L3RhcmdldD4KKworICA8dGFyZ2V0IG5hbWU9ImNvbXBpbGUiIGRlcGVuZHM9ImluaXQiPgorICAgIDxqYXZhYyBzcmNkaXI9IiR7amF2YS5kaXJ9IiAKKyAgICAgICAgICBkZXN0ZGlyPSIke2NsYXNzZXMuZGlyfSIgPgorICAgICAgPGNsYXNzcGF0aCByZWZpZD0iY29tcGlsZS5jbGFzc3BhdGgiLz4KKyAgICA8L2phdmFjPgorICA8L3RhcmdldD4KKworICA8dGFyZ2V0IG5hbWU9ImRpc3QiIGRlcGVuZHM9ImNvbXBpbGUiPgorICAgIDxjb3B5IHRvZGlyPSIke2NsYXNzZXMuZGlyfS9yZXNvdXJjZXMiPgorICAgICAgPGZpbGVzZXQgZGlyPSIke3Jlc291cmNlcy5kaXJ9Ii8+CisgICAgPC9jb3B5PgorICAgIDxqYXIgamFyZmlsZT0iJHtkaXN0Lmphcn0iCisgICAgICBiYXNlZGlyPSIke2NsYXNzZXMuZGlyfSIKKyAgICAgIGluY2x1ZGVzPSIqKiIKKyAgICAgIC8+CisgIDwvdGFyZ2V0PgorCisgIDx0YXJnZXQgbmFtZT0idGFnbGliZG9jIiBkZXBlbmRzPSJkaXN0Ij4KKyAgICA8dGFza2RlZiBuYW1lPSJ0YWdsaWJkb2MiIAorICAgICAgICAgY2xhc3NuYW1lPSJvcmcuYXBhY2hlLnN0cnV0cy50YXNrZGVmcy5UYWdsaWJEb2MiPgorICAgICAgPGNsYXNzcGF0aCBwYXRoPSIke2Rpc3QuamFyfSIvPgorICAgIDwvdGFza2RlZj4KKworICAgIDx0YWdsaWJkb2MgZGVzdGRpcj0iJHt0YWdsaWJkb2MuZGlyfSI+CisgICAgICA8ZmlsZXNldCBkaXI9IiR7eG1sLmRpcn0iPgorICAgICAgICA8aW5jbHVkZSBuYW1lPSJzdHJ1dHMtKi54bWwiLz4KKyAgICAgIDwvZmlsZXNldD4KKyAgICA8L3RhZ2xpYmRvYz4KKyAgPC90YXJnZXQ+CisgIAorICA8dGFyZ2V0IG5hbWU9InRhZ2xpYnJlcG9ydCIgZGVwZW5kcz0iZGlzdCI+CisgICAgPHRhc2tkZWYgbmFtZT0idGFnbGlicmVwb3J0IiAKKyAgICAgICAgIGNsYXNzbmFtZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGFza2RlZnMuVGFnbGliUmVwb3J0Ij4KKyAgICAgIDxjbGFzc3BhdGggcGF0aD0iJHtkaXN0Lmphcn0iLz4KKyAgICA8L3Rhc2tkZWY+CisKKyAgICA8dGFnbGlicmVwb3J0IGRlc3RkaXI9IiR7dGFnbGlicmVwb3J0LmRpcn0iPgorICAgICAgPGZpbGVzZXQgZGlyPSIke3htbC5kaXJ9Ij4KKyAgICAgICAgPGluY2x1ZGUgbmFtZT0ic3RydXRzLSoueG1sIi8+CisgICAgICA8L2ZpbGVzZXQ+CisgICAgPC90YWdsaWJyZXBvcnQ+CisgIDwvdGFyZ2V0PgorCisgIDx0YXJnZXQgbmFtZT0iY2xlYW4iPgorICAgIDxkZWxldGUgZGlyPSIke2NsYXNzZXMuZGlyfSIvPgorICAgIDxkZWxldGUgZGlyPSIke2Rpc3QuZGlyfSIvPgorICAgIDxkZWxldGUgZGlyPSIke3RhZ2xpYmRvYy5kaXJ9Ii8+CisgICAgPGRlbGV0ZSBkaXI9IiR7dGFnbGlicmVwb3J0LmRpcn0iLz4KKyAgPC90YXJnZXQ+CisKKyAgPHRhcmdldCBuYW1lPSJnZW5lcmF0ZS1yZXBvcnRzIiBkZXBlbmRzPSJ0YWdsaWJkb2MsIHRhZ2xpYnJlcG9ydCIvPgorCis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3Rhc2tkZWZzL0VuaE1hdGNoaW5nVGFzay5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy90YXNrZGVmcy9FbmhNYXRjaGluZ1Rhc2suamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OWNjMWE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy90YXNrZGVmcy9FbmhNYXRjaGluZ1Rhc2suamF2YQpAQCAtMCwwICsxLDg3IEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy50YXNrZGVmczsKKworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworaW1wb3J0IG9yZy5hcGFjaGUudG9vbHMuYW50LkRpcmVjdG9yeVNjYW5uZXI7CitpbXBvcnQgb3JnLmFwYWNoZS50b29scy5hbnQudGFza2RlZnMuTWF0Y2hpbmdUYXNrOworaW1wb3J0IG9yZy5hcGFjaGUudG9vbHMuYW50LnR5cGVzLkZpbGVTZXQ7CisKKy8qKgorICogRU5IYW5jZWQtTWF0Y2hpbmdUYXNrIC0gZW5oYW5jZXMgdGhlIE1hdGNoaW5nVGFzayBieSBhbGxvd2luZworICogdGhlIHN1YmNsYXNzZXMgdG8gYWN0IGFzIGEgRmlsZVNldCBjb250YWluZXIgYXMgd2VsbCBhcyBhbGxvd2luZworICogdGhlIGltcGxpY2l0IEZpbGVTZXQuCisgKgorICogQHZlcnNpb24gJFJldiQgJERhdGUkCisgKi8KKworcHVibGljIGFic3RyYWN0IGNsYXNzIEVuaE1hdGNoaW5nVGFzayBleHRlbmRzIE1hdGNoaW5nVGFzayB7CisJLyoqIEJhc2UgZGlyZWN0b3J5IGZvciBpbXBsaWNpdCBGaWxlU2V0ICovCisJcHJvdGVjdGVkIEZpbGUgZGlyOworCS8qKiBMaXN0IG9mIGVtYmVkZWQgZmlsZXNldHMgKi8KKwlwcm90ZWN0ZWQgTGlzdCBmaWxlc2V0cyA9IG5ldyBBcnJheUxpc3QoKTsKKworCS8qKgorCSAqIFNldCB0aGUgYmFzZSBkaXJlY3RvcnkgZm9yIHRoZSBpbXBsaWNpdCBGaWxlU2V0CisJICogQHBhcmFtIGJhc2UgZGlyZWN0b3J5IGZvciBpbXBsaWNpdCBGaWxlU2V0CisJICovCisJcHVibGljIHZvaWQgc2V0RGlyKEZpbGUgZGlyKSB7CisJCXRoaXMuZGlyID0gZGlyOworCX0KKwkvKioKKwkgKiBBZGRzIGFuIGVtYmVkZWQgRmlsZVNldCBmb3IgdGhpcyB0YXNrLgorCSAqIEBwYXJhbSB0aGUgRmlsZVNldCB0byBhZGQKKwkgKi8KKwlwdWJsaWMgdm9pZCBhZGRGaWxlc2V0KEZpbGVTZXQgZmlsZXNldCkgeworCQlmaWxlc2V0cy5hZGQoZmlsZXNldCk7CisJfQorCisJLyoqCisJICogUmV0dXJucyB0aGUgY29tYmluZWQgbGlzdCBvZiBGaWxlcywgZnJvbSBib3RoIHRoZQorCSAqIGltcGxpY2l0IGFuZCBlbWJlZGVkIEZpbGVTZXRzLgorCSAqIEByZXR1cm4gbGlzdCBvZiBGaWxlIG9iamVjdHMKKwkgKi8KKwlwcm90ZWN0ZWQgTGlzdCBnZXRGaWxlcygpIHsKKwkJTGlzdCBmaWxlcyA9IG5ldyBBcnJheUxpc3QoKTsKKwkJaWYgKGRpciAhPSBudWxsKSB7CisJCQlmaWxlc2V0LnNldERpcihkaXIpOworCQkJZmlsZXMuYWRkQWxsKGdldEZpbGVzKGZpbGVzZXQpKTsKKwkJfQorCQlJdGVyYXRvciBpdGVyID0gZmlsZXNldHMuaXRlcmF0b3IoKTsKKwkJd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisJCQlmaWxlcy5hZGRBbGwoZ2V0RmlsZXMoKEZpbGVTZXQpIGl0ZXIubmV4dCgpKSk7CisJCX0KKwkJcmV0dXJuIGZpbGVzOworCX0KKwlwcml2YXRlIExpc3QgZ2V0RmlsZXMoRmlsZVNldCBmcykgeworCQlMaXN0IGZpbGVzID0gbmV3IEFycmF5TGlzdCgpOworCQlEaXJlY3RvcnlTY2FubmVyIGRzID0gZnMuZ2V0RGlyZWN0b3J5U2Nhbm5lcihmcy5nZXRQcm9qZWN0KCkpOworCQlGaWxlIGRpciA9IGRzLmdldEJhc2VkaXIoKTsKKwkJU3RyaW5nW10gZmlsZW5hbWVzID0gZHMuZ2V0SW5jbHVkZWRGaWxlcygpOworCQlmb3IgKGludCBpID0gMDsgaSA8IGZpbGVuYW1lcy5sZW5ndGg7IGkrKykgeworCQkJRmlsZSBmaWxlID0gbmV3IEZpbGUoZGlyLCBmaWxlbmFtZXNbaV0pOworCQkJZmlsZXMuYWRkKGZpbGUpOworCQl9CisJCXJldHVybiBmaWxlczsKKwl9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy90YXNrZGVmcy9UYWdsaWJEb2MuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvdGFza2RlZnMvVGFnbGliRG9jLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTkwNzdmMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvdGFza2RlZnMvVGFnbGliRG9jLmphdmEKQEAgLTAsMCArMSwyNDAgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhc2tkZWZzOworCitpbXBvcnQgamF2YS5pby5GaWxlOworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCitpbXBvcnQgamF2YXgueG1sLnBhcnNlcnMuRG9jdW1lbnRCdWlsZGVyOworaW1wb3J0IGphdmF4LnhtbC5wYXJzZXJzLkRvY3VtZW50QnVpbGRlckZhY3Rvcnk7CitpbXBvcnQgamF2YXgueG1sLnRyYW5zZm9ybS5SZXN1bHQ7CitpbXBvcnQgamF2YXgueG1sLnRyYW5zZm9ybS5Tb3VyY2U7CitpbXBvcnQgamF2YXgueG1sLnRyYW5zZm9ybS5UcmFuc2Zvcm1lcjsKK2ltcG9ydCBqYXZheC54bWwudHJhbnNmb3JtLlRyYW5zZm9ybWVyRmFjdG9yeTsKK2ltcG9ydCBqYXZheC54bWwudHJhbnNmb3JtLmRvbS5ET01Tb3VyY2U7CitpbXBvcnQgamF2YXgueG1sLnRyYW5zZm9ybS5zdHJlYW0uU3RyZWFtUmVzdWx0OworaW1wb3J0IGphdmF4LnhtbC50cmFuc2Zvcm0uc3RyZWFtLlN0cmVhbVNvdXJjZTsKKworaW1wb3J0IG9yZy5hcGFjaGUudG9vbHMuYW50LkJ1aWxkRXhjZXB0aW9uOworaW1wb3J0IG9yZy53M2MuZG9tLkRvY3VtZW50OworaW1wb3J0IG9yZy53M2MuZG9tLkVsZW1lbnQ7CisKKy8qKgorICogR2l2ZW4gYSBsaXN0IG9mIGZpbGVzIGNvbXBhdGlibGUgd2l0aCB0aGUgVGFnLUxpYnJhcnkKKyAqIERlc2NyaXB0b3IgKFRMRCkgZm9ybWF0LCBnZW5lcmF0ZXMgYSBKYXZhRG9jIGxpa2UKKyAqIGRvY3VtZW50YXRpb24gZm9yIGVhY2ggVGFnLUxpYnJhcnkuCisgKgorICogQHZlcnNpb24gJFJldiQgJERhdGUkCisgKi8KK3B1YmxpYyBjbGFzcyBUYWdsaWJEb2MgZXh0ZW5kcyBFbmhNYXRjaGluZ1Rhc2sgeworCXByaXZhdGUgRmlsZSBkZXN0ZGlyOworCS8qKgorCSAqIFNldHMgdGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSBmb3IgdGhlIGdlbmVyYXRlZCBkb2N1bWVudHMuCisJICogQHBhcmFtIGRlc3RkaXIgVGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeQorCSAqLworCXB1YmxpYyB2b2lkIHNldERlc3RkaXIoRmlsZSBkZXN0ZGlyKSB7CisJCXRoaXMuZGVzdGRpciA9IGRlc3RkaXI7CisJfQorCS8qKgorCSAqIENhbGxlZCBieSB0aGUgQW50IHJ1bnRpbWUuIE5lZWRzIHRvIGhhdmUgdGhlIG1hbmRhdG9yeSBhdHRyaWJ1dGUKKwkgKiAnZGVzdGRpcicgc2V0IGJlZm9yZSBjYWxsaW5nIHRoaXMuCisJICovCisJcHVibGljIHZvaWQgZXhlY3V0ZSgpIHRocm93cyBCdWlsZEV4Y2VwdGlvbiB7CisJCXZhbGlkYXRlKCk7CisJCWhhbmRsZUZpbGVzKGdldEZpbGVzKCkpOworCX0KKwlwcml2YXRlIHZvaWQgdmFsaWRhdGUoKSB0aHJvd3MgQnVpbGRFeGNlcHRpb24geworCQlpZiAoZGVzdGRpciA9PSBudWxsKSB7CisJCQl0aHJvdyBuZXcgQnVpbGRFeGNlcHRpb24oIk5lZWQgdG8gc3BlY2lmeSB0aGUgJ2Rlc3RkaXInIGF0dHJpYnV0ZSIpOworCQl9CisJCWlmICghZGVzdGRpci5leGlzdHMoKSB8fCAhZGVzdGRpci5pc0RpcmVjdG9yeSgpKSB7CisJCQlpZiAoIWRlc3RkaXIubWtkaXJzKCkpIHsKKwkJCQl0aHJvdyBuZXcgQnVpbGRFeGNlcHRpb24oIkNvdWxkIG5vdCBjcmVhdGUgdGhlIHNwZWNpZmllZCBkZXN0ZGlyIik7CisJCQl9CisJCX0KKwl9CisKKwkvKioKKwkgKiBDcmVhdGVzIHRoZSBmb2xsb3dpbmcgc2V0IG9mIGRvY3VtZW50czo8QlIvPgorCSAqIDxQUkU+CisJICogICBEZXN0RGlyCisJICogICAgfC0gaW5kZXguaHRtbCAodGhlIGZyYW1lcyBiYXNlZCBpbmRleCBwYWdlKQorCSAqICAgIHwtIG92ZXJ2aWV3LWZyYW1lLmh0bWwgKGxpc3Qgb2YgYWxsIHRhZy1saWJyYXJpZXMpCisJICogICAgfC0gYWxsLXRhZ3MuaHRtbCAobGlzdCBvZiBhbGwgdGFncykKKwkgKiAgICB8LSBYWFggKG9uZSBkaXJlY3RvcnkgcGVyIHRhZyBsaWJyYXJ5KQorCSAqICAgIHwgICB8LSB0YWdsaWItZnJhbWUuaHRtbCAobGlzdCBvZiBhbGwgdGFncyBpbiB0aGlzIGxpYnJhcnkpCisJICogICAgfCAgIHwtIHRhZ2xpYi1zdW1tYXJ5Lmh0bWwgKHN1bW1hcnkgb2YgdGhpcyBsaWJyYXJ5KQorCSAqICAgIHwgICB8LSBZWVkuaHRtbCAob25lIGZpbGUgcGVyIFRhZykKKwkgKiAgICB8ICAgfC0gLi4uCisJICogICAgfC0gLi4uCisJICogPC9QUkU+CisJICogQHBhcmFtIGZpbGVzIGlucHV0IGZpbGVzIGluIFRMRCBmb3JtYXQuCisJICovCisJcHVibGljIHZvaWQgaGFuZGxlRmlsZXMoTGlzdCBmaWxlcykgeworCQl0cnkgeworCQkJRG9jdW1lbnRCdWlsZGVyRmFjdG9yeSBkYmYgPSBEb2N1bWVudEJ1aWxkZXJGYWN0b3J5Lm5ld0luc3RhbmNlKCk7CisJCQlEb2N1bWVudEJ1aWxkZXIgZGIgPSBkYmYubmV3RG9jdW1lbnRCdWlsZGVyKCk7CisJCQlEb2N1bWVudCBkb2MgPSBkYi5uZXdEb2N1bWVudCgpOworCQkJRWxlbWVudCBvdmVydmlld1Jvb3QgPQorCQkJCVV0aWwuYWRkQ2hpbGRFbGVtZW50KGRvYywgIm92ZXJ2aWV3LWZyYW1lIiwgbnVsbCk7CisJCQlkb2MgPSBkYi5uZXdEb2N1bWVudCgpOworCQkJRWxlbWVudCBhbGxUYWdzUm9vdCA9IFV0aWwuYWRkQ2hpbGRFbGVtZW50KGRvYywgImFsbC10YWdzIiwgbnVsbCk7CisKKwkJCUl0ZXJhdG9yIGl0ZXIgPSBmaWxlcy5pdGVyYXRvcigpOworCQkJd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisJCQkJRmlsZSBmaWxlID0gKEZpbGUpIGl0ZXIubmV4dCgpOworCQkJCWlmICghZmlsZS5leGlzdHMoKSB8fCAhZmlsZS5jYW5SZWFkKCkpIHsKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJCURvY3VtZW50IHhtbERvYyA9IGhhbmRsZUZpbGUoZmlsZSk7CisJCQkJaWYgKHhtbERvYyAhPSBudWxsKSB7CisJCQkJCVN0cmluZyBzaG9ydG5hbWUgPQorCQkJCQkJVXRpbC5nZXRFbGVtZW50VmFsdWUoCisJCQkJCQkJeG1sRG9jLmdldERvY3VtZW50RWxlbWVudCgpLAorCQkJCQkJCSJib2R5L3RhZ2xpYi9zaG9ydG5hbWUiKTsKKwkJCQkJVXRpbC5hZGRDaGlsZEVsZW1lbnQob3ZlcnZpZXdSb290LCAic2hvcnRuYW1lIiwgc2hvcnRuYW1lKTsKKworCQkJCQlMaXN0IHRhZ3MgPQorCQkJCQkJVXRpbC5nZXRFbGVtZW50cygKKwkJCQkJCQl4bWxEb2MuZ2V0RG9jdW1lbnRFbGVtZW50KCksCisJCQkJCQkJImJvZHkvdGFnbGliL3RhZyIpOworCQkJCQlJdGVyYXRvciB0YWdJdGVyID0gdGFncy5pdGVyYXRvcigpOworCQkJCQl3aGlsZSAodGFnSXRlci5oYXNOZXh0KCkpIHsKKwkJCQkJCUVsZW1lbnQgdGFnID0gKEVsZW1lbnQpIHRhZ0l0ZXIubmV4dCgpOworCQkJCQkJU3RyaW5nIHRhZ25hbWUgPSBVdGlsLmdldEVsZW1lbnRWYWx1ZSh0YWcsICJuYW1lIik7CisJCQkJCQl0YWcgPSBVdGlsLmFkZENoaWxkRWxlbWVudChhbGxUYWdzUm9vdCwgInRhZyIsIG51bGwpOworCQkJCQkJVXRpbC5hZGRDaGlsZEVsZW1lbnQodGFnLCAibmFtZSIsIHRhZ25hbWUpOworCQkJCQkJVXRpbC5hZGRDaGlsZEVsZW1lbnQodGFnLCAidGFnbGliIiwgc2hvcnRuYW1lKTsKKwkJCQkJfQorCQkJCX0KKwkJCX0KKworCQkJU291cmNlIHhtbCA9IG5ldyBET01Tb3VyY2Uob3ZlcnZpZXdSb290KTsKKwkJCVNvdXJjZSB4c2wgPQorCQkJCW5ldyBTdHJlYW1Tb3VyY2UoCisJCQkJCXRoaXMuZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZUFzU3RyZWFtKAorCQkJCQkJIi9yZXNvdXJjZXMvdGFnbGliZG9jL2luZGV4LnhzbCIpKTsKKwkJCVJlc3VsdCBvdXQgPSBuZXcgU3RyZWFtUmVzdWx0KG5ldyBGaWxlKGRlc3RkaXIsICJpbmRleC5odG1sIikpOworCQkJVHJhbnNmb3JtZXJGYWN0b3J5IHRmID0gVHJhbnNmb3JtZXJGYWN0b3J5Lm5ld0luc3RhbmNlKCk7CisJCQlUcmFuc2Zvcm1lciB0ID0gdGYubmV3VHJhbnNmb3JtZXIoeHNsKTsKKwkJCXQudHJhbnNmb3JtKHhtbCwgb3V0KTsKKworCQkJeHNsID0KKwkJCQluZXcgU3RyZWFtU291cmNlKAorCQkJCQl0aGlzLmdldENsYXNzKCkuZ2V0UmVzb3VyY2VBc1N0cmVhbSgKKwkJCQkJCSIvcmVzb3VyY2VzL3RhZ2xpYmRvYy9vdmVydmlldy1mcmFtZS54c2wiKSk7CisJCQlvdXQgPSBuZXcgU3RyZWFtUmVzdWx0KG5ldyBGaWxlKGRlc3RkaXIsICJvdmVydmlldy1mcmFtZS5odG1sIikpOworCQkJdCA9IHRmLm5ld1RyYW5zZm9ybWVyKHhzbCk7CisJCQl0LnRyYW5zZm9ybSh4bWwsIG91dCk7CisKKwkJCXhtbCA9IG5ldyBET01Tb3VyY2UoYWxsVGFnc1Jvb3QpOworCQkJeHNsID0KKwkJCQluZXcgU3RyZWFtU291cmNlKAorCQkJCQl0aGlzLmdldENsYXNzKCkuZ2V0UmVzb3VyY2VBc1N0cmVhbSgKKwkJCQkJCSIvcmVzb3VyY2VzL3RhZ2xpYmRvYy9hbGwtdGFncy54c2wiKSk7CisJCQlvdXQgPSBuZXcgU3RyZWFtUmVzdWx0KG5ldyBGaWxlKGRlc3RkaXIsICJhbGwtdGFncy5odG1sIikpOworCQkJdCA9IHRmLm5ld1RyYW5zZm9ybWVyKHhzbCk7CisJCQl0LnRyYW5zZm9ybSh4bWwsIG91dCk7CisKKwkJCVV0aWwuY29weUZpbGUoCisJCQkJIi9yZXNvdXJjZXMvdGFnbGliZG9jL3N0eWxlc2hlZXQuY3NzIiwKKwkJCQluZXcgRmlsZShkZXN0ZGlyLCAic3R5bGVzaGVldC5jc3MiKSk7CisJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisJCQllLnByaW50U3RhY2tUcmFjZSgpOworCQl9CisJfQorCXByaXZhdGUgRG9jdW1lbnQgaGFuZGxlRmlsZShGaWxlIGZpbGUpIHsKKwkJdHJ5IHsKKwkJCURvY3VtZW50QnVpbGRlckZhY3RvcnkgZGJmID0gRG9jdW1lbnRCdWlsZGVyRmFjdG9yeS5uZXdJbnN0YW5jZSgpOworCQkJRG9jdW1lbnRCdWlsZGVyIGRiID0gZGJmLm5ld0RvY3VtZW50QnVpbGRlcigpOworCQkJRG9jdW1lbnQgZG9jID0gZGIucGFyc2UoZmlsZSk7CisJCQlTdHJpbmcgc2hvcnRuYW1lID0KKwkJCQlVdGlsLmdldEVsZW1lbnRWYWx1ZSgKKwkJCQkJZG9jLmdldERvY3VtZW50RWxlbWVudCgpLAorCQkJCQkiYm9keS90YWdsaWIvc2hvcnRuYW1lIik7CisKKwkJCUZpbGUgZGlyID0gbmV3IEZpbGUoZGVzdGRpciwgc2hvcnRuYW1lKTsKKwkJCWRpci5ta2RpcigpOworCisJCQlGaWxlIHRhZ2xpYkZyYW1lSHRtbCA9IG5ldyBGaWxlKGRpciwgInRhZ2xpYi1mcmFtZS5odG1sIik7CisJCQlTb3VyY2UgeG1sID0gbmV3IFN0cmVhbVNvdXJjZShmaWxlKTsKKwkJCVNvdXJjZSB4c2wgPQorCQkJCW5ldyBTdHJlYW1Tb3VyY2UoCisJCQkJCXRoaXMuZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZUFzU3RyZWFtKAorCQkJCQkJIi9yZXNvdXJjZXMvdGFnbGliZG9jL3RhZ2xpYi1mcmFtZS54c2wiKSk7CisJCQlSZXN1bHQgb3V0ID0gbmV3IFN0cmVhbVJlc3VsdCh0YWdsaWJGcmFtZUh0bWwpOworCQkJVHJhbnNmb3JtZXJGYWN0b3J5IHRmID0gVHJhbnNmb3JtZXJGYWN0b3J5Lm5ld0luc3RhbmNlKCk7CisJCQlUcmFuc2Zvcm1lciB0ID0gdGYubmV3VHJhbnNmb3JtZXIoeHNsKTsKKwkJCXQudHJhbnNmb3JtKHhtbCwgb3V0KTsKKworCQkJRmlsZSB0YWdsaWJTdW1tYXJ5SHRtbCA9IG5ldyBGaWxlKGRpciwgInRhZ2xpYi1zdW1tYXJ5Lmh0bWwiKTsKKwkJCXhtbCA9IG5ldyBTdHJlYW1Tb3VyY2UoZmlsZSk7CisJCQl4c2wgPQorCQkJCW5ldyBTdHJlYW1Tb3VyY2UoCisJCQkJCXRoaXMuZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZUFzU3RyZWFtKAorCQkJCQkJIi9yZXNvdXJjZXMvdGFnbGliZG9jL3RhZ2xpYi1zdW1tYXJ5LnhzbCIpKTsKKwkJCW91dCA9IG5ldyBTdHJlYW1SZXN1bHQodGFnbGliU3VtbWFyeUh0bWwpOworCQkJdCA9IHRmLm5ld1RyYW5zZm9ybWVyKHhzbCk7CisJCQl0LnRyYW5zZm9ybSh4bWwsIG91dCk7CisKKwkJCUxpc3QgdGFncyA9CisJCQkJVXRpbC5nZXRFbGVtZW50cyhkb2MuZ2V0RG9jdW1lbnRFbGVtZW50KCksICJib2R5L3RhZ2xpYi90YWciKTsKKwkJCUl0ZXJhdG9yIGl0ZXIgPSB0YWdzLml0ZXJhdG9yKCk7CisJCQl4c2wgPQorCQkJCW5ldyBTdHJlYW1Tb3VyY2UoCisJCQkJCXRoaXMuZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZUFzU3RyZWFtKAorCQkJCQkJIi9yZXNvdXJjZXMvdGFnbGliZG9jL3RhZy1mcmFtZS54c2wiKSk7CisJCQl0ID0gdGYubmV3VHJhbnNmb3JtZXIoeHNsKTsKKwkJCXdoaWxlIChpdGVyLmhhc05leHQoKSkgeworCQkJCUVsZW1lbnQgdGFnID0gKEVsZW1lbnQpIGl0ZXIubmV4dCgpOworCQkJCVV0aWwuYWRkQ2hpbGRFbGVtZW50KHRhZywgInRhZ2xpYiIsIHNob3J0bmFtZSk7CisJCQkJU3RyaW5nIHRhZ25hbWUgPSBVdGlsLmdldEVsZW1lbnRWYWx1ZSh0YWcsICJuYW1lIik7CisJCQkJRmlsZSB0YWdIdG1sID0gbmV3IEZpbGUoZGlyLCB0YWduYW1lICsgIi5odG1sIik7CisJCQkJeG1sID0gbmV3IERPTVNvdXJjZSh0YWcpOworCQkJCW91dCA9IG5ldyBTdHJlYW1SZXN1bHQodGFnSHRtbCk7CisJCQkJdC50cmFuc2Zvcm0oeG1sLCBvdXQpOworCQkJfQorCisJCQlyZXR1cm4gZG9jOworCQl9IGNhdGNoIChFeGNlcHRpb24gZSkgeworCQkJZS5wcmludFN0YWNrVHJhY2UoKTsKKwkJfQorCQlyZXR1cm4gbnVsbDsKKwl9CisKKwkvKioKKwkgKiBNQUlOIE1FVEhPRAorCSAqLworCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24geworCQlpZiAoYXJncy5sZW5ndGggPT0gMCkgeworCQkJU3lzdGVtLm91dC5wcmludGxuKAorCQkJCSJVc2FnZTogamF2YSAiICsgVGFnbGliRG9jLmNsYXNzLmdldE5hbWUoKSArICIgPGZpbGUgbGlzdD4iKTsKKwkJCVN5c3RlbS5leGl0KDApOworCQl9CisKKwkJRmlsZVtdIGZpbGVzID0gbmV3IEZpbGVbYXJncy5sZW5ndGhdOworCQlmb3IgKGludCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKQorCQkJZmlsZXNbaV0gPSBuZXcgRmlsZShhcmdzW2ldKTsKKwkJVGFnbGliRG9jIHRkID0gbmV3IFRhZ2xpYkRvYygpOworCQl0ZC5oYW5kbGVGaWxlcyhBcnJheXMuYXNMaXN0KGZpbGVzKSk7CisKKwl9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3Rhc2tkZWZzL1RhZ2xpYlJlcG9ydC5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy90YXNrZGVmcy9UYWdsaWJSZXBvcnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzIzNTA2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy90YXNrZGVmcy9UYWdsaWJSZXBvcnQuamF2YQpAQCAtMCwwICsxLDIwOSBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDE5OTktMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMudGFza2RlZnM7CisKK2ltcG9ydCBqYXZhLmlvLkZpbGU7CitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgamF2YS51dGlsLlNldDsKK2ltcG9ydCBqYXZhLnV0aWwuVHJlZVNldDsKKworaW1wb3J0IGphdmF4LnhtbC5wYXJzZXJzLkRvY3VtZW50QnVpbGRlcjsKK2ltcG9ydCBqYXZheC54bWwucGFyc2Vycy5Eb2N1bWVudEJ1aWxkZXJGYWN0b3J5OworaW1wb3J0IGphdmF4LnhtbC50cmFuc2Zvcm0uUmVzdWx0OworaW1wb3J0IGphdmF4LnhtbC50cmFuc2Zvcm0uU291cmNlOworaW1wb3J0IGphdmF4LnhtbC50cmFuc2Zvcm0uVHJhbnNmb3JtZXI7CitpbXBvcnQgamF2YXgueG1sLnRyYW5zZm9ybS5UcmFuc2Zvcm1lckZhY3Rvcnk7CitpbXBvcnQgamF2YXgueG1sLnRyYW5zZm9ybS5kb20uRE9NU291cmNlOworaW1wb3J0IGphdmF4LnhtbC50cmFuc2Zvcm0uc3RyZWFtLlN0cmVhbVJlc3VsdDsKK2ltcG9ydCBqYXZheC54bWwudHJhbnNmb3JtLnN0cmVhbS5TdHJlYW1Tb3VyY2U7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnRvb2xzLmFudC5CdWlsZEV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcudzNjLmRvbS5Eb2N1bWVudDsKK2ltcG9ydCBvcmcudzNjLmRvbS5FbGVtZW50OworCisvKioKKyAqIEdpdmVuIGEgbGlzdCBvZiBmaWxlcyBjb21wYXRpYmxlIHdpdGggdGhlIFRhZy1MaWJyYXJ5CisgKiBEZXNjcmlwdG9yIChUTEQpIGZvcm1hdCwgY3JlYXRlcyBhIG1hdHJpeCBvZiBUYWdzIFZzCisgKiBBdHRyaWJ1dGVzIGZvciBlYWNoIFRhZy1MaWJyYXJ5LgorICoKKyAqIEB2ZXJzaW9uICRSZXYkICREYXRlJAorICovCitwdWJsaWMgY2xhc3MgVGFnbGliUmVwb3J0IGV4dGVuZHMgRW5oTWF0Y2hpbmdUYXNrIHsKKwlwcml2YXRlIEZpbGUgZGVzdGRpcjsKKwkvKioKKwkgKiBTZXRzIHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZm9yIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnRzLgorCSAqIEBwYXJhbSBkZXN0ZGlyIFRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkKKwkgKi8KKwlwdWJsaWMgdm9pZCBzZXREZXN0ZGlyKEZpbGUgZGVzdGRpcikgeworCQl0aGlzLmRlc3RkaXIgPSBkZXN0ZGlyOworCX0KKwkvKioKKwkgKiBDYWxsZWQgYnkgdGhlIEFudCBydW50aW1lLiBOZWVkcyB0byBoYXZlIHRoZSBtYW5kYXRvcnkgYXR0cmlidXRlCisJICogJ2Rlc3RkaXInIHNldCBiZWZvcmUgY2FsbGluZyB0aGlzLgorCSAqLworCXB1YmxpYyB2b2lkIGV4ZWN1dGUoKSB0aHJvd3MgQnVpbGRFeGNlcHRpb24geworCQl2YWxpZGF0ZSgpOworCQloYW5kbGVGaWxlcyhnZXRGaWxlcygpKTsKKwl9CisJcHJpdmF0ZSB2b2lkIHZhbGlkYXRlKCkgdGhyb3dzIEJ1aWxkRXhjZXB0aW9uIHsKKwkJaWYgKGRlc3RkaXIgPT0gbnVsbCkgeworCQkJdGhyb3cgbmV3IEJ1aWxkRXhjZXB0aW9uKCJOZWVkIHRvIHNwZWNpZnkgdGhlICdkZXN0ZGlyJyBhdHRyaWJ1dGUiKTsKKwkJfQorCQlpZiAoIWRlc3RkaXIuZXhpc3RzKCkgfHwgIWRlc3RkaXIuaXNEaXJlY3RvcnkoKSkgeworCQkJaWYgKCFkZXN0ZGlyLm1rZGlycygpKSB7CisJCQkJdGhyb3cgbmV3IEJ1aWxkRXhjZXB0aW9uKCJDb3VsZCBub3QgY3JlYXRlIHRoZSBzcGVjaWZpZWQgZGVzdGRpciIpOworCQkJfQorCQl9CisJfQorCisJLyoqCisJICogQ3JlYXRlcyB0aGUgZm9sbG93aW5nIHNldCBvZiBkb2N1bWVudHM6PEJSLz4KKwkgKiA8UFJFPgorCSAqICAgRGVzdERpcgorCSAqICAgIHwtIGluZGV4Lmh0bWwgKHRoZSBmcmFtZXMgYmFzZWQgaW5kZXggcGFnZSkKKwkgKiAgICB8LSBvdmVydmlldy1mcmFtZS5odG1sIChtZW51IG9mIGFsbCB0YWctbGlicmFyaWVzKQorCSAqICAgIHwtIFhYWC1yZXBvcnQuaHRtbCAob25lIGZpbGUgcGVyIHRhZy1saWJyYXJ5KQorCSAqICAgIHwtIC4uLgorCSAqIDwvUFJFPgorCSAqIEBwYXJhbSBmaWxlcyBpbnB1dCBmaWxlcyBpbiBUTEQgZm9ybWF0LgorCSAqLworCXB1YmxpYyB2b2lkIGhhbmRsZUZpbGVzKExpc3QgZmlsZXMpIHsKKwkJdHJ5IHsKKwkJCURvY3VtZW50QnVpbGRlckZhY3RvcnkgZGJmID0gRG9jdW1lbnRCdWlsZGVyRmFjdG9yeS5uZXdJbnN0YW5jZSgpOworCQkJRG9jdW1lbnRCdWlsZGVyIGRiID0gZGJmLm5ld0RvY3VtZW50QnVpbGRlcigpOworCQkJRG9jdW1lbnQgZG9jID0gZGIubmV3RG9jdW1lbnQoKTsKKwkJCUVsZW1lbnQgb3ZlcnZpZXdSb290ID0KKwkJCQlVdGlsLmFkZENoaWxkRWxlbWVudChkb2MsICJvdmVydmlldy1mcmFtZSIsIG51bGwpOworCisJCQlJdGVyYXRvciBpdGVyID0gZmlsZXMuaXRlcmF0b3IoKTsKKwkJCXdoaWxlIChpdGVyLmhhc05leHQoKSkgeworCQkJCUZpbGUgZmlsZSA9IChGaWxlKSBpdGVyLm5leHQoKTsKKwkJCQlpZiAoIWZpbGUuZXhpc3RzKCkgfHwgIWZpbGUuY2FuUmVhZCgpKSB7CisJCQkJCWNvbnRpbnVlOworCQkJCX0KKwkJCQlEb2N1bWVudCB4bWxEb2MgPSBoYW5kbGVGaWxlKGZpbGUpOworCQkJCWlmICh4bWxEb2MgIT0gbnVsbCkgeworCQkJCQlTdHJpbmcgc2hvcnRuYW1lID0KKwkJCQkJCVV0aWwuZ2V0RWxlbWVudFZhbHVlKAorCQkJCQkJCXhtbERvYy5nZXREb2N1bWVudEVsZW1lbnQoKSwKKwkJCQkJCQkiYm9keS90YWdsaWIvc2hvcnRuYW1lIik7CisJCQkJCVV0aWwuYWRkQ2hpbGRFbGVtZW50KG92ZXJ2aWV3Um9vdCwgInNob3J0bmFtZSIsIHNob3J0bmFtZSk7CisKKwkJCQkJRmlsZSByZXBvcnRIdG1sID0KKwkJCQkJCW5ldyBGaWxlKGRlc3RkaXIsIHNob3J0bmFtZSArICItcmVwb3J0Lmh0bWwiKTsKKwkJCQkJU291cmNlIHhtbCA9IG5ldyBET01Tb3VyY2UoeG1sRG9jKTsKKwkJCQkJU291cmNlIHhzbCA9CisJCQkJCQluZXcgU3RyZWFtU291cmNlKAorCQkJCQkJCXRoaXMuZ2V0Q2xhc3MoKS5nZXRSZXNvdXJjZUFzU3RyZWFtKAorCQkJCQkJCQkiL3Jlc291cmNlcy90YWdsaWJyZXBvcnQvdGFnbGliLXJlcG9ydC54c2wiKSk7CisJCQkJCVJlc3VsdCBvdXQgPSBuZXcgU3RyZWFtUmVzdWx0KHJlcG9ydEh0bWwpOworCQkJCQlUcmFuc2Zvcm1lckZhY3RvcnkgdGYgPSBUcmFuc2Zvcm1lckZhY3RvcnkubmV3SW5zdGFuY2UoKTsKKwkJCQkJVHJhbnNmb3JtZXIgdCA9IHRmLm5ld1RyYW5zZm9ybWVyKHhzbCk7CisJCQkJCXQudHJhbnNmb3JtKHhtbCwgb3V0KTsKKwkJCQl9CisJCQl9CisKKwkJCVNvdXJjZSB4bWwgPSBuZXcgRE9NU291cmNlKG92ZXJ2aWV3Um9vdCk7CisJCQlTb3VyY2UgeHNsID0KKwkJCQluZXcgU3RyZWFtU291cmNlKAorCQkJCQl0aGlzLmdldENsYXNzKCkuZ2V0UmVzb3VyY2VBc1N0cmVhbSgKKwkJCQkJCSIvcmVzb3VyY2VzL3RhZ2xpYnJlcG9ydC9pbmRleC54c2wiKSk7CisJCQlSZXN1bHQgb3V0ID0gbmV3IFN0cmVhbVJlc3VsdChuZXcgRmlsZShkZXN0ZGlyLCAiaW5kZXguaHRtbCIpKTsKKwkJCVRyYW5zZm9ybWVyRmFjdG9yeSB0ZiA9IFRyYW5zZm9ybWVyRmFjdG9yeS5uZXdJbnN0YW5jZSgpOworCQkJVHJhbnNmb3JtZXIgdCA9IHRmLm5ld1RyYW5zZm9ybWVyKHhzbCk7CisJCQl0LnRyYW5zZm9ybSh4bWwsIG91dCk7CisKKwkJCXhzbCA9CisJCQkJbmV3IFN0cmVhbVNvdXJjZSgKKwkJCQkJdGhpcy5nZXRDbGFzcygpLmdldFJlc291cmNlQXNTdHJlYW0oCisJCQkJCQkiL3Jlc291cmNlcy90YWdsaWJyZXBvcnQvb3ZlcnZpZXctZnJhbWUueHNsIikpOworCQkJb3V0ID0gbmV3IFN0cmVhbVJlc3VsdChuZXcgRmlsZShkZXN0ZGlyLCAib3ZlcnZpZXctZnJhbWUuaHRtbCIpKTsKKwkJCXQgPSB0Zi5uZXdUcmFuc2Zvcm1lcih4c2wpOworCQkJdC50cmFuc2Zvcm0oeG1sLCBvdXQpOworCisJCQlVdGlsLmNvcHlGaWxlKAorCQkJCSIvcmVzb3VyY2VzL3RhZ2xpYnJlcG9ydC9zdHlsZXNoZWV0LmNzcyIsCisJCQkJbmV3IEZpbGUoZGVzdGRpciwgInN0eWxlc2hlZXQuY3NzIikpOworCQkJVXRpbC5jb3B5RmlsZSgKKwkJCQkiL3Jlc291cmNlcy90YWdsaWJyZXBvcnQveGJQb3NpdGlvbmFibGVFbGVtZW50LmpzIiwKKwkJCQluZXcgRmlsZShkZXN0ZGlyLCAieGJQb3NpdGlvbmFibGVFbGVtZW50LmpzIikpOworCQl9IGNhdGNoIChFeGNlcHRpb24gZSkgeworCQkJZS5wcmludFN0YWNrVHJhY2UoKTsKKwkJfQorCX0KKwlwcml2YXRlIERvY3VtZW50IGhhbmRsZUZpbGUoRmlsZSBmaWxlKSB7CisJCXRyeSB7CisJCQlTZXQgYXR0clNldCA9IG5ldyBUcmVlU2V0KCk7CisKKwkJCURvY3VtZW50QnVpbGRlckZhY3RvcnkgZGJmID0gRG9jdW1lbnRCdWlsZGVyRmFjdG9yeS5uZXdJbnN0YW5jZSgpOworCQkJRG9jdW1lbnRCdWlsZGVyIGRiID0gZGJmLm5ld0RvY3VtZW50QnVpbGRlcigpOworCQkJRG9jdW1lbnQgZG9jID0gZGIucGFyc2UoZmlsZSk7CisKKwkJCUxpc3QgdGFncyA9CisJCQkJVXRpbC5nZXRFbGVtZW50cyhkb2MuZ2V0RG9jdW1lbnRFbGVtZW50KCksICJib2R5L3RhZ2xpYi90YWciKTsKKwkJCUl0ZXJhdG9yIGl0ZXIgPSB0YWdzLml0ZXJhdG9yKCk7CisJCQl3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKwkJCQlFbGVtZW50IHRhZyA9IChFbGVtZW50KSBpdGVyLm5leHQoKTsKKwkJCQlMaXN0IGF0dHJMaXN0ID0gVXRpbC5nZXRFbGVtZW50cyh0YWcsICJhdHRyaWJ1dGUiKTsKKwkJCQlJdGVyYXRvciBhdHRySXRlciA9IGF0dHJMaXN0Lml0ZXJhdG9yKCk7CisJCQkJd2hpbGUgKGF0dHJJdGVyLmhhc05leHQoKSkgeworCQkJCQlFbGVtZW50IGF0dHJpYnV0ZSA9IChFbGVtZW50KSBhdHRySXRlci5uZXh0KCk7CisJCQkJCVN0cmluZyBuYW1lID0gVXRpbC5nZXRFbGVtZW50VmFsdWUoYXR0cmlidXRlLCAibmFtZSIpOworCQkJCQlhdHRyU2V0LmFkZChuYW1lKTsKKwkJCQl9CisJCQl9CisKKwkJCUVsZW1lbnQgYXR0cmlidXRlcyA9CisJCQkJVXRpbC5hZGRDaGlsZEVsZW1lbnQoCisJCQkJCWRvYy5nZXREb2N1bWVudEVsZW1lbnQoKSwKKwkJCQkJImF0dHJpYnV0ZXMiLAorCQkJCQludWxsKTsKKwkJCWl0ZXIgPSBhdHRyU2V0Lml0ZXJhdG9yKCk7CisJCQl3aGlsZSAoaXRlci5oYXNOZXh0KCkpIHsKKwkJCQlTdHJpbmcgbmFtZSA9IChTdHJpbmcpIGl0ZXIubmV4dCgpOworCQkJCVV0aWwuYWRkQ2hpbGRFbGVtZW50KGF0dHJpYnV0ZXMsICJhdHRyaWJ1dGUiLCBuYW1lKTsKKwkJCX0KKworCQkJcmV0dXJuIGRvYzsKKwkJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKwkJCWUucHJpbnRTdGFja1RyYWNlKCk7CisJCX0KKwkJcmV0dXJuIG51bGw7CisJfQorCisJLyoqCisJICogTUFJTiBNRVRIT0QKKwkgKi8KKwlwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uIHsKKwkJaWYgKGFyZ3MubGVuZ3RoID09IDApIHsKKwkJCVN5c3RlbS5vdXQucHJpbnRsbigKKwkJCQkiVXNhZ2U6IGphdmEgIiArIFRhZ2xpYlJlcG9ydC5jbGFzcy5nZXROYW1lKCkgKyAiIDxmaWxlIGxpc3Q+Iik7CisJCQlTeXN0ZW0uZXhpdCgwKTsKKwkJfQorCisJCUZpbGVbXSBmaWxlcyA9IG5ldyBGaWxlW2FyZ3MubGVuZ3RoXTsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykKKwkJCWZpbGVzW2ldID0gbmV3IEZpbGUoYXJnc1tpXSk7CisJCVRhZ2xpYkRvYyB0ZCA9IG5ldyBUYWdsaWJEb2MoKTsKKwkJdGQuaGFuZGxlRmlsZXMoQXJyYXlzLmFzTGlzdChmaWxlcykpOworCisJfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy90YXNrZGVmcy9VdGlsLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3Rhc2tkZWZzL1V0aWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjk2YzI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy90YXNrZGVmcy9VdGlsLmphdmEKQEAgLTAsMCArMSwxNjcgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLnRhc2tkZWZzOworCitpbXBvcnQgamF2YS5pby5CdWZmZXJlZElucHV0U3RyZWFtOworaW1wb3J0IGphdmEuaW8uRmlsZTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVPdXRwdXRTdHJlYW07CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworaW1wb3J0IG9yZy53M2MuZG9tLkRvY3VtZW50OworaW1wb3J0IG9yZy53M2MuZG9tLkVsZW1lbnQ7CitpbXBvcnQgb3JnLnczYy5kb20uTm9kZTsKK2ltcG9ydCBvcmcudzNjLmRvbS5Ob2RlTGlzdDsKKworLyoqCisgKiBHZW5lcmFsIHB1cnBvc2UgdXRpbGl0eSBjbGFzcy4KKyAqCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGNsYXNzIFV0aWwgeworCS8qKgorCSAqIFJldHVybnMgdGhlIGxpc3Qgb2YgbmFtZWQgZGVzY2VuZGVudHMuIEFsbG93cyB0aGUgdXNlcgorCSAqIHRvIHNwZWNpZnkgJy8nIHNlcGFyYXRlZCBwYXRoIHRvIHRoZSBjaGlsZCBlbGVtZW50LiBlLmcuCisJICogJ2EvYi9jJy4gTm90ZSwgdGhhdCBpZiAnYScgaGFzIG11bHRpcGxlIGNoaWxkIGVsZW1lbnRzCisJICogbmFtZWQgJ2InLCB0aGUgbWV0aG9kIHdpbGwgZ28gdG8gdGhlIGZpcnN0ICdiJyBlbGVtZW50LAorCSAqIGFuZCByZXR1cm4gYWxsIGNoaWxkIGVsZW1lbnRzIG5hbWVkICdjJy4gUmV0dXJucyBhbgorCSAqIGVtcHR5IExpc3QgaWYgdGhlIHBhdGggZG9lcyBub3QgcmV0dXJuIGFueSBlbGVtZW50cy4KKwkgKgorCSAqIEBwYXJhbSBlbGVtIFRoZSBwYXJlbnQvY29udGV4dCBlbGVtZW50CisJICogQHBhcmFtIHBhdGggJy8nIHNlcGFyYXRlZCBwYXRoCisJICogQHJldHVybiBMaXN0IG9mIGVsZW1lbnRzIGFzIHBlciB0aGUgcGF0aC4KKwkgKi8KKwlwdWJsaWMgc3RhdGljIExpc3QgZ2V0RWxlbWVudHMoRWxlbWVudCBlbGVtLCBTdHJpbmcgcGF0aCkgeworCQlMaXN0IGxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisJCWlmIChlbGVtID09IG51bGwpCisJCQlyZXR1cm4gbGlzdDsKKworCQlpbnQgbmR4ID0gcGF0aC5pbmRleE9mKCIvIik7CisJCWlmIChuZHggIT0gLTEpIHsKKwkJCUVsZW1lbnQgY2hpbGQgPSBnZXRFbGVtZW50KGVsZW0sIHBhdGguc3Vic3RyaW5nKDAsIG5keCkpOworCQkJcmV0dXJuIGdldEVsZW1lbnRzKGNoaWxkLCBwYXRoLnN1YnN0cmluZyhuZHggKyAxKSk7CisJCX0KKwkJTm9kZUxpc3QgbmwgPSBlbGVtLmdldENoaWxkTm9kZXMoKTsKKwkJZm9yIChpbnQgaSA9IDAsIGxlbiA9IG5sLmdldExlbmd0aCgpOyBpIDwgbGVuOyBpKyspIHsKKwkJCU5vZGUgbm9kZSA9IG5sLml0ZW0oaSk7CisJCQlpZiAobm9kZS5nZXROb2RlVHlwZSgpID09IE5vZGUuRUxFTUVOVF9OT0RFCisJCQkJJiYgbm9kZS5nZXROb2RlTmFtZSgpLmVxdWFscyhwYXRoKSkgeworCQkJCWxpc3QuYWRkKG5vZGUpOworCQkJfQorCQl9CisJCXJldHVybiBsaXN0OworCX0KKwkvKioKKwkgKiBSZXR1cm5zIHRoZSBuYW1lZCBkZXNjZW5kZW50LiBBbGxvd3MgdGhlIHVzZXIKKwkgKiB0byBzcGVjaWZ5ICcvJyBzZXBhcmF0ZWQgcGF0aCB0byB0aGUgY2hpbGQgZWxlbWVudC4gZS5nLgorCSAqICdhL2IvYycuIE5vdGUsIHRoYXQgaW4gY2FzZSBvZiBtdWx0aXBsZSBjaGlsZHJlbiB3aXRoIHRoZQorCSAqIHNhbWUgbmFtZSwgdGhlIGZpcnN0IGNoaWxkIGlzIHJldHVybmVkLiBSZXR1cm5zIGEgbnVsbCwgaWYKKwkgKiB0aGUgcGF0aCBkb2VzIG5vdCBtYXAgdG8gYW55IGVsZW1lbnQuCisJICoKKwkgKiBAcGFyYW0gZWxlbSBUaGUgcGFyZW50L2NvbnRleHQgZWxlbWVudAorCSAqIEBwYXJhbSBwYXRoICcvJyBzZXBhcmF0ZWQgcGF0aAorCSAqIEByZXR1cm4gTmFtZWQgZWxlbWVudCBhcyBwZXIgdGhlIHBhdGguCisJICovCisJcHVibGljIHN0YXRpYyBFbGVtZW50IGdldEVsZW1lbnQoRWxlbWVudCBlbGVtLCBTdHJpbmcgcGF0aCkgeworCQlMaXN0IGVsZW1zID0gZ2V0RWxlbWVudHMoZWxlbSwgcGF0aCk7CisJCWlmIChlbGVtcy5zaXplKCkgPT0gMCkKKwkJCXJldHVybiBudWxsOworCQllbHNlCisJCQlyZXR1cm4gKEVsZW1lbnQpIGVsZW1zLmdldCgwKTsKKwl9CisJLyoqCisJICogUmV0dXJucyB0aGUgdGV4dCB2YWx1ZSBvZiB0aGUgbmFtZWQgZGVzY2VuZGVudC4gQWxsb3dzIHRoZSB1c2VyCisJICogdG8gc3BlY2lmeSAnLycgc2VwYXJhdGVkIHBhdGggdG8gdGhlIGNoaWxkIGVsZW1lbnQuIGUuZy4KKwkgKiAnYS9iL2MnLiBOb3RlLCB0aGF0IGluIGNhc2Ugb2YgbXVsdGlwbGUgY2hpbGRyZW4gd2l0aCB0aGUKKwkgKiBzYW1lIG5hbWUsIHRoZSBmaXJzdCBjaGlsZCBpcyBjb25zaWRlcmVkLiBUaGUgdGV4dCB2YWx1ZQorCSAqIGlzIGRldGVybWluZWQgYnkgY29uY2F0ZW5hdGluZyBhbGwgdGhlIHRleHQgY2hpbGRyZW4uIFJldHVybnMKKwkgKiBhbiBlbXB0eSBTdHJpbmcgaWYgbm9kZSBpcyBub3QgZm91bmQuCisJICoKKwkgKiBAcGFyYW0gZWxlbSBUaGUgcGFyZW50L2NvbnRleHQgZWxlbWVudAorCSAqIEBwYXJhbSBwYXRoICcvJyBzZXBhcmF0ZWQgcGF0aAorCSAqIEByZXR1cm4gVGV4dCB2YWx1ZSBvZiB0aGUgbmFtZSBkZXNjZW5kZW50LgorCSAqLworCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldEVsZW1lbnRWYWx1ZShFbGVtZW50IGVsZW0sIFN0cmluZyBwYXRoKSB7CisJCUVsZW1lbnQgY2hpbGQgPSBnZXRFbGVtZW50KGVsZW0sIHBhdGgpOworCQlpZiAoY2hpbGQgPT0gbnVsbCkKKwkJCXJldHVybiAiIjsKKworCQlTdHJpbmcgcmV0ID0gIiI7CisJCU5vZGVMaXN0IG5sID0gY2hpbGQuZ2V0Q2hpbGROb2RlcygpOworCQlmb3IgKGludCBpID0gMCwgbGVuID0gbmwuZ2V0TGVuZ3RoKCk7IGkgPCBsZW47IGkrKykgeworCQkJTm9kZSBub2RlID0gbmwuaXRlbShpKTsKKwkJCWlmIChub2RlLmdldE5vZGVUeXBlKCkgPT0gTm9kZS5URVhUX05PREUpCisJCQkJcmV0ICs9IG5vZGUuZ2V0Tm9kZVZhbHVlKCk7CisJCX0KKwkJcmV0dXJuIHJldDsKKwl9CisJLyoqCisJICogQWRkcyBhIENoaWxkIGVsZW1lbnQgdG8gdGhlIHBhcmVudCBub2RlLiBJZiB0aGUgJ3ZhbHVlJyBpcworCSAqIG5vdCBudWxsLCBhIFRleHQgbm9kZSB3aXRoIHRoZSBzYW1lIHZhbHVlIGlzIGFwcGVuZGVkIHRvIHRoZQorCSAqIENoaWxkLgorCSAqIEBwYXJhbSBwYXJlbnQgVGhlIHBhcmVudCBub2RlCisJICogQHBhcmFtIHRhZyBUaGUgY2hpbGQgZWxlbWVudCBuYW1lCisJICogQHBhcmFtIHZhbHVlIFZhbHVlIG9mIHRleHQgbm9kZSBhcHBlbmRlZCB0byB0aGUgQ2hpbGQKKwkgKiBAcmV0dXJuIHRoZSBuZXdseSBhZGRlZCBDaGlsZCBub2RlLgorCSAqLworCXB1YmxpYyBzdGF0aWMgRWxlbWVudCBhZGRDaGlsZEVsZW1lbnQoCisJCU5vZGUgcGFyZW50LAorCQlTdHJpbmcgdGFnLAorCQlTdHJpbmcgdmFsdWUpIHsKKwkJRG9jdW1lbnQgZG9jID0KKwkJCShwYXJlbnQuZ2V0Tm9kZVR5cGUoKSA9PSBOb2RlLkRPQ1VNRU5UX05PREUpCisJCQkJPyAoRG9jdW1lbnQpIHBhcmVudAorCQkJCTogcGFyZW50LmdldE93bmVyRG9jdW1lbnQoKTsKKwkJRWxlbWVudCBjaGlsZCA9IGRvYy5jcmVhdGVFbGVtZW50KHRhZyk7CisJCWlmICh2YWx1ZSAhPSBudWxsKQorCQkJY2hpbGQuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKHZhbHVlKSk7CisJCXBhcmVudC5hcHBlbmRDaGlsZChjaGlsZCk7CisJCXJldHVybiBjaGlsZDsKKwl9CisKKwkvKioKKwkgKiBDb3BpZXMgYSBnaXZlbiByZXNvdXJjZSBmcm9tIGNsYXNzcGF0aCB0byB0aGUgZGVzdGluYXRpb24gZmlsZS4KKwkgKiBVc2VzIFV0aWwuY2xhc3MuZ2V0UmVzb3VyY2VBc1N0cmVhbShyZXNQYXRoKSBpbnRlcm5hbGx5LgorCSAqIEBwYXJhbSByZXNQYXRoIFBhdGggdG8gdGhlIHJlc291cmNlCisJICogQHBhcmFtIGRzdEZpbGUgRGVzdGluYXRpb24gZmlsZQorCSAqIEByZXR1cm4gdHJ1ZSwgaWYgdGhlIGZpbGUgaXMgY29waWVkIHN1Y2Nlc3NmdWxseS4KKwkgKi8KKwlwdWJsaWMgc3RhdGljIGJvb2xlYW4gY29weUZpbGUoU3RyaW5nIHJlc1BhdGgsIEZpbGUgZHN0RmlsZSkgeworCQl0cnkgeworCQkJQnVmZmVyZWRJbnB1dFN0cmVhbSBiaXMgPQorCQkJCW5ldyBCdWZmZXJlZElucHV0U3RyZWFtKAorCQkJCQlVdGlsLmNsYXNzLmdldFJlc291cmNlQXNTdHJlYW0ocmVzUGF0aCkpOworCQkJRmlsZU91dHB1dFN0cmVhbSBmb3MgPSBuZXcgRmlsZU91dHB1dFN0cmVhbShkc3RGaWxlKTsKKwkJCWludCBvZmZzZXQgPSAwLCBsZW4gPSAwOworCQkJYnl0ZVtdIGJ1ZmZlciA9IG5ldyBieXRlWzIgKiAxMDI0XTsKKwkJCXdoaWxlICgobGVuID0gYmlzLnJlYWQoYnVmZmVyLCAwLCBidWZmZXIubGVuZ3RoKSkgIT0gLTEpIHsKKwkJCQlmb3Mud3JpdGUoYnVmZmVyLCAwLCBsZW4pOworCQkJCW9mZnNldCArPSBsZW47CisJCQl9CisJCQliaXMuY2xvc2UoKTsKKwkJCWZvcy5mbHVzaCgpOworCQkJZm9zLmNsb3NlKCk7CisJCQlyZXR1cm4gdHJ1ZTsKKwkJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKKwkJCWUucHJpbnRTdGFja1RyYWNlKCk7CisJCX0KKwkJcmV0dXJuIGZhbHNlOworCX0KKworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL3Jlc291cmNlcy90YWdsaWJkb2MvYWxsLXRhZ3MueHNsIGIvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvcmVzb3VyY2VzL3RhZ2xpYmRvYy9hbGwtdGFncy54c2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2QyMTRkNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL3Jlc291cmNlcy90YWdsaWJkb2MvYWxsLXRhZ3MueHNsCkBAIC0wLDAgKzEsNDMgQEAKKzx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPSIxLjAiIHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIj4KKzx4c2w6b3V0cHV0CisJbWV0aG9kPSJodG1sIgorCXZlcnNpb249IjQuMCIKKwlvbWl0LXhtbC1kZWNsYXJhdGlvbj0ieWVzIgorCWluZGVudD0ieWVzIgorLz4KKworPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iKiI+Cis8SFRNTD4KKzxIRUFEPgorICA8TElOSyBSRUwgPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0ic3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSIgLz4KKzwvSEVBRD4KKzxCT0RZPgorCis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPSJ0cnVlIj4KKyAgPERJViBDTEFTUz0iRnJhbWVIZWFkaW5nIj4KKyAgICBBbGwgVGFncworICA8L0RJVj4KKyAgPEJSLz4KKworPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii8vdGFnIj4KKzx4c2w6c29ydCBzZWxlY3Q9Im5hbWUiLz4KKyAgPHhzbDplbGVtZW50IG5hbWU9IkEiPgorICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9IlRBUkdFVCI+dGFnRnJhbWU8L3hzbDphdHRyaWJ1dGU+CisgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iSFJFRiI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InRhZ2xpYiIvPi88eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSIvPi5odG1sPC94c2w6YXR0cmlidXRlPgorICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9IkNMQVNTIj5GcmFtZUl0ZW08L3hzbDphdHRyaWJ1dGU+CisgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSIgLz4KKyAgPC94c2w6ZWxlbWVudD4KKyAgPEJSLz4KKzwveHNsOmZvci1lYWNoPgorCis8L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKworPC9CT0RZPgorPC9IVE1MPgorPC94c2w6dGVtcGxhdGU+Cis8L3hzbDpzdHlsZXNoZWV0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvcmVzb3VyY2VzL3RhZ2xpYmRvYy9pbmRleC54c2wgYi9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9yZXNvdXJjZXMvdGFnbGliZG9jL2luZGV4LnhzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTZiNWE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvcmVzb3VyY2VzL3RhZ2xpYmRvYy9pbmRleC54c2wKQEAgLTAsMCArMSwzNSBAQAorPHhzbDpzdHlsZXNoZWV0IHZlcnNpb249IjEuMCIgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iPgorPHhzbDpvdXRwdXQKKwltZXRob2Q9Imh0bWwiCisJdmVyc2lvbj0iNC4wIgorCW9taXQteG1sLWRlY2xhcmF0aW9uPSJ5ZXMiCisJaW5kZW50PSJ5ZXMiCisvPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSIqIj4KKzxIVE1MPgorPEhFQUQ+CisgIDxUSVRMRT5UYWdsaWIgRG9jdW1lbnRhdGlvbjwvVElUTEU+Cis8L0hFQUQ+Cis8RlJBTUVTRVQgY29scz0iMjAlLDgwJSI+CisgIDxGUkFNRVNFVCByb3dzPSIzMCUsNzAlIj4KKyAgICA8RlJBTUUgc3JjPSJvdmVydmlldy1mcmFtZS5odG1sIiBuYW1lPSJ0YWdsaWJMaXN0RnJhbWUiLz4KKyAgICA8RlJBTUUgc3JjPSJhbGwtdGFncy5odG1sIiBuYW1lPSJ0YWdsaWJGcmFtZSIvPgorICA8L0ZSQU1FU0VUPgorICA8RlJBTUUgc3JjPSIiIG5hbWU9InRhZ0ZyYW1lIi8+Cis8L0ZSQU1FU0VUPgorCisKKzxOT0ZSQU1FUz4KKyAgPEgyPkZyYW1lIEFsZXJ0PC9IMj4KKyAgPFAvPgorICBUaGlzIGRvY3VtZW50IGlzIGRlc2lnbmVkIHRvIGJlIHZpZXdlZCB1c2luZyB0aGUgZnJhbWVzIGZlYXR1cmUuIAorICBJZiB5b3Ugc2VlIHRoaXMgbWVzc2FnZSwgeW91IGFyZSB1c2luZyBhIG5vbi1mcmFtZS1jYXBhYmxlIHdlYiBjbGllbnQuCisgIDxCUi8+CisgIExpbmsgdG8gPEEgSFJFRj0ib3ZlcnZpZXctZnJhbWUuaHRtbCI+Tm9uLWZyYW1lIHZlcnNpb24uPC9BPgorPC9OT0ZSQU1FUz4KKworCis8L0hUTUw+Cis8L3hzbDp0ZW1wbGF0ZT4KKzwveHNsOnN0eWxlc2hlZXQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9yZXNvdXJjZXMvdGFnbGliZG9jL292ZXJ2aWV3LWZyYW1lLnhzbCBiL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL3Jlc291cmNlcy90YWdsaWJkb2Mvb3ZlcnZpZXctZnJhbWUueHNsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhMTdlNzgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9yZXNvdXJjZXMvdGFnbGliZG9jL292ZXJ2aWV3LWZyYW1lLnhzbApAQCAtMCwwICsxLDQ3IEBACis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIiB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSI+Cis8eHNsOm91dHB1dAorCW1ldGhvZD0iaHRtbCIKKwl2ZXJzaW9uPSI0LjAiCisJb21pdC14bWwtZGVjbGFyYXRpb249InllcyIKKwlpbmRlbnQ9InllcyIKKy8+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9IioiPgorPEhUTUw+Cis8SEVBRD4KKyAgPFRJVExFPlRhZ2xpYiBEb2N1bWVudGF0aW9uPC9USVRMRT4KKyAgPExJTksgUkVMPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0ic3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSIgLz4KKzwvSEVBRD4KKzxCT0RZPgorCis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPSJ0cnVlIj4KKyAgPERJVj4KKyAgPFNQQU4gQ0xBU1M9IkZyYW1lSGVhZGluZyI+CisgICAgVGFnTGlicworICA8L1NQQU4+CisgICYjMTYwOworICAoPEEgVEFSR0VUPSJ0YWdsaWJGcmFtZSIgSFJFRj0iYWxsLXRhZ3MuaHRtbCIgQ0xBU1M9IkZyYW1lSXRlbSI+QWxsIFRhZ3M8L0E+KQorICA8L0RJVj4KKyAgPEJSLz4KKworPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii8vc2hvcnRuYW1lIj4KKzx4c2w6c29ydCBzZWxlY3Q9Ii4iLz4KKyAgPHhzbDplbGVtZW50IG5hbWU9IkEiPgorICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9IlRBUkdFVCI+dGFnbGliRnJhbWU8L3hzbDphdHRyaWJ1dGU+CisgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iSFJFRiI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iIC8+L3RhZ2xpYi1mcmFtZS5odG1sPC94c2w6YXR0cmlidXRlPgorICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9IkNMQVNTIj5GcmFtZUl0ZW08L3hzbDphdHRyaWJ1dGU+CisgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIgLz4KKyAgPC94c2w6ZWxlbWVudD4KKyAgPEJSLz4KKzwveHNsOmZvci1lYWNoPgorCis8L1REPgorPC9UUj4KKzwvVEFCTEU+CisKKzwvQk9EWT4KKzwvSFRNTD4KKzwveHNsOnRlbXBsYXRlPgorPC94c2w6c3R5bGVzaGVldD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL3Jlc291cmNlcy90YWdsaWJkb2Mvc3R5bGVzaGVldC5jc3MgYi9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9yZXNvdXJjZXMvdGFnbGliZG9jL3N0eWxlc2hlZXQuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwNzdmNWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9yZXNvdXJjZXMvdGFnbGliZG9jL3N0eWxlc2hlZXQuY3NzCkBAIC0wLDAgKzEsMzUgQEAKKy8qIEphdmFkb2Mgc3R5bGUgc2hlZXQgKi8KKworLyogUGFnZSBiYWNrZ3JvdW5kIGNvbG9yICovCitib2R5IHsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRiB9CisKKy5GcmFtZUhlYWRpbmcgeyAKKwlmb250LXdlaWdodDogYm9sZDsKKwlmb250LXNpemU6IGxhcmdlOworCXRleHQtZGVjb3JhdGlvbjogbm9uZTsKK30KKy5GcmFtZUl0ZW0geyAKKwl0ZXh0LWRlY29yYXRpb246IG5vbmU7Cit9CisuRnJhbWVIZWFkaW5nOmxpbmssIC5GcmFtZUhlYWRpbmc6dmlzaXRlZCwgLkZyYW1lSXRlbTpsaW5rLCAuRnJhbWVJdGVtOnZpc2l0ZWQgeworCWNvbG9yOiBibHVlOworfQorLkZyYW1lSGVhZGluZzpob3ZlciwgLkZyYW1lSGVhZGluZzphY3RpdmUsIC5GcmFtZUl0ZW06aG92ZXIsIC5GcmFtZUl0ZW06YWN0aXZlIHsKKwljb2xvcjogI0NDMzMzMzsKK30KKworLkZyYW1lVGl0bGUgeyAKKwlmb250LXdlaWdodDogYm9sZDsKKwlmb250LXNpemU6IGxhcmdlOworCXRleHQtZGVjb3JhdGlvbjogbm9uZTsKK30KKworLlRhYmxlSGVhZGluZ0NvbG9yICAgICB7IGJhY2tncm91bmQ6ICNDQ0NDRkYgfSAvKiBEYXJrIG1hdXZlICovCisuVGFibGVSb3dDb2xvciAgICAgICAgIHsgYmFja2dyb3VuZDogI0ZGRkZGRiB9IC8qIFdoaXRlICovCisKKy5UYWJsZVJvd1RUICAgICAgICAgICAgeyBiYWNrZ3JvdW5kOiAjRkZDQzk5IH0gLyogIFJlcWQuICBSVEV4cHJWYWx1ZSAqLworLlRhYmxlUm93VEYgICAgICAgICAgICB7IGJhY2tncm91bmQ6ICNGRkNDOTkgfSAvKiAgUmVxZC4gIVJURXhwclZhbHVlICovCisuVGFibGVSb3dGVCAgICAgICAgICAgIHsgYmFja2dyb3VuZDogI0ZGRkZGRiB9IC8qICFSZXFkLiAgUlRFeHByVmFsdWUgKi8KKy5UYWJsZVJvd0ZGICAgICAgICAgICAgeyBiYWNrZ3JvdW5kOiAjRkZGRkZGIH0gLyogIVJlcWQuICFSVEV4cHJWYWx1ZSAqLworCisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL3Jlc291cmNlcy90YWdsaWJkb2MvdGFnLWZyYW1lLnhzbCBiL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL3Jlc291cmNlcy90YWdsaWJkb2MvdGFnLWZyYW1lLnhzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2M0ZGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvcmVzb3VyY2VzL3RhZ2xpYmRvYy90YWctZnJhbWUueHNsCkBAIC0wLDAgKzEsMTMwIEBACis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIiB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSI+Cis8eHNsOm91dHB1dAorCW1ldGhvZD0iaHRtbCIKKwl2ZXJzaW9uPSI0LjAiCisJb21pdC14bWwtZGVjbGFyYXRpb249InllcyIKKwlpbmRlbnQ9InllcyIKKy8+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9IioiPgorPEhUTUw+Cis8SEVBRD4KKyAgPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiIC8+Cis8L0hFQUQ+Cis8Qk9EWT4KKworPCEtLSA9PT09PT09PSBTVEFSVCBPRiBUQUcgREFUQSA9PT09PT09PSAtLT4KKzxBIE5BTUU9Il90b3AiPjwhLS0gLS0+PC9BPgorCis8U1BBTiBDTEFTUz0iRnJhbWVUaXRsZSI+CisgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ0YWdsaWIiLz46PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im5hbWUiLz4KKzwvU1BBTj4KKyYjMTYwOyYjMTYwOyYjMTYwOyYjMTYwOygKKzxBIEhSRUY9IiNfZGVzY3JpcHRpb24iPmRlc2NyaXB0aW9uPC9BPgorKQorCis8UC8+Cis8IS0tID09PT09PT09PT0gQVRUUklCVVRFIFNVTU1BUlkgPT09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJhdHRyaWJ1dGVfc3VtbWFyeSI+PCEtLSAtLT48L0E+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0iMiI+CisgIDxTUEFOIENMQVNTPSJGcmFtZUhlYWRpbmciPkF0dHJpYnV0ZSBTdW1tYXJ5PC9TUEFOPgorPC9URD4KKzwvVFI+CisKKzx4c2w6Zm9yLWVhY2ggc2VsZWN0PSJhdHRyaWJ1dGUiPgorPHhzbDpzb3J0IHNlbGVjdD0icmVxdWlyZWQiIG9yZGVyPSJkZXNjZW5kaW5nIi8+Cis8eHNsOnNvcnQgc2VsZWN0PSJuYW1lIiBvcmRlcj0iYXNjZW5kaW5nIi8+Cis8eHNsOmVsZW1lbnQgbmFtZT0iVFIiPgorICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJDTEFTUyI+VGFibGVSb3c8eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3Vic3RyaW5nKHJlcXVpcmVkLDEsMSkiLz4KKyAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3Vic3RyaW5nKHJ0ZXhwcnZhbHVlLDEsMSkiLz4KKyAgPC94c2w6YXR0cmlidXRlPgorPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxMCUiPjxGT05UIFNJWkU9Ii0xIj4KKyAgJiMxNjA7PHhzbDppZiB0ZXN0PSJydGV4cHJ2YWx1ZT0ndHJ1ZSciPjxDT0RFPlJURXhwclZhbHVlPC9DT0RFPjwveHNsOmlmPgorPC9GT05UPjwvVEQ+Cis8VEQ+CisgIDx4c2w6ZWxlbWVudCBuYW1lPSJBIj4KKyAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJIUkVGIj4jPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im5hbWUiLz48L3hzbDphdHRyaWJ1dGU+CisgICAgPEI+PENPREU+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im5hbWUiLz48L0NPREU+PC9CPgorICA8L3hzbDplbGVtZW50PgorPEJSLz4KKyYjMTYwOyYjMTYwOyYjMTYwOyYjMTYwOyYjMTYwOyYjMTYwOyYjMTYwOyYjMTYwOyYjMTYwOyYjMTYwOworPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InN1YnN0cmluZyhpbmZvLDEsODApIi8+Cis8L1REPgorPC94c2w6ZWxlbWVudD4KKzwveHNsOmZvci1lYWNoPgorCis8L1RBQkxFPgorCis8UC8+CisKKzwhLS0gPT09PT09PT09PT09IEFUVFJJQlVURSBERVRBSUwgPT09PT09PT09PSAtLT4KKzxBIE5BTUU9ImF0dHJpYnV0ZV9kZXRhaWwiPjwhLS0gLS0+PC9BPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49IjEiPgorICA8U1BBTiBDTEFTUz0iRnJhbWVIZWFkaW5nIj5BdHRyaWJ1dGUgRGV0YWlsPC9TUEFOPgorPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8eHNsOmZvci1lYWNoIHNlbGVjdD0iYXR0cmlidXRlIj4KKzx4c2w6c29ydCBzZWxlY3Q9InJlcXVpcmVkIiBvcmRlcj0iZGVzY2VuZGluZyIvPgorPHhzbDpzb3J0IHNlbGVjdD0ibmFtZSIgb3JkZXI9ImFzY2VuZGluZyIvPgorPHhzbDplbGVtZW50IG5hbWU9IkEiPgorICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJOQU1FIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSIvPjwveHNsOmF0dHJpYnV0ZT4KKzwveHNsOmVsZW1lbnQ+Cis8SDM+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im5hbWUiLz48L0gzPgorPHhzbDpjb3B5LW9mIHNlbGVjdD0iaW5mbyIvPgorCis8VEFCTEUgQk9SREVSPSIwIiBDRUxMU1BBQ0lORz0iMCIgQ0VMTFBBRERJTkc9IjAiPgorPFRSPgorPFREPjxCPlJlcXVpcmVkOjwvQj4mIzE2MDsmIzE2MDsmIzE2MDsmIzE2MDs8L1REPgorPFREPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJyZXF1aXJlZCIvPjwvVEQ+Cis8L1RSPjxUUj4KKzxURD48Qj5SVEV4cHJWYWx1ZTo8L0I+JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7PC9URD4KKzxURD48eHNsOnZhbHVlLW9mIHNlbGVjdD0icnRleHBydmFsdWUiLz48L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8SFIvPgorPC94c2w6Zm9yLWVhY2g+CisKKzxQLz4KKzxQLz4KKworPCEtLSA9PT09PT09PT09PT0gREVTQ1JJUFRJT04gPT09PT09PT09PSAtLT4KKzxBIE5BTUU9Il9kZXNjcmlwdGlvbiI+PCEtLSAtLT48L0E+CisKKzxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPgorPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+Cis8VEQgQ09MU1BBTj0iMSI+CisgIDxTUEFOIENMQVNTPSJGcmFtZUhlYWRpbmciPkRlc2NyaXB0aW9uPC9TUEFOPgorPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPFAvPgorCis8eHNsOnZhbHVlLW9mIHNlbGVjdD0ic3VtbWFyeSIgLz4KKzxQLz4KKzx4c2w6Y29weS1vZiBzZWxlY3Q9ImluZm8iIC8+Cis8UC8+Cis8VEFCTEUgQk9SREVSPSIwIiBDRUxMU1BBQ0lORz0iMCIgQ0VMTFBBRERJTkc9IjAiPgorPFRSPgorPFREPjxCPlRhZyBDbGFzczo8L0I+JiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7PC9URD4KKzxURD48eHNsOnZhbHVlLW9mIHNlbGVjdD0idGFnY2xhc3MiLz48L1REPgorPC9UUj48VFI+Cis8VEQ+PEI+VGVpIENsYXNzOjwvQj4mIzE2MDsmIzE2MDsmIzE2MDsmIzE2MDs8L1REPgorPFREPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJ0ZWljbGFzcyIvPjwvVEQ+Cis8L1RSPjxUUj4KKzxURD48Qj5Cb2R5IENvbnRlbnQ6PC9CPiYjMTYwOyYjMTYwOyYjMTYwOyYjMTYwOzwvVEQ+Cis8VEQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImJvZHljb250ZW50Ii8+PC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8L0JPRFk+Cis8L0hUTUw+Cis8L3hzbDp0ZW1wbGF0ZT4KKzwveHNsOnN0eWxlc2hlZXQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9yZXNvdXJjZXMvdGFnbGliZG9jL3RhZ2xpYi1mcmFtZS54c2wgYi9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9yZXNvdXJjZXMvdGFnbGliZG9jL3RhZ2xpYi1mcmFtZS54c2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzIzMzg4NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL3Jlc291cmNlcy90YWdsaWJkb2MvdGFnbGliLWZyYW1lLnhzbApAQCAtMCwwICsxLDQ4IEBACis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIiB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSI+Cis8eHNsOm91dHB1dAorCW1ldGhvZD0iaHRtbCIKKwl2ZXJzaW9uPSI0LjAiCisJb21pdC14bWwtZGVjbGFyYXRpb249InllcyIKKwlpbmRlbnQ9InllcyIKKy8+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9IioiPgorPEhUTUw+Cis8SEVBRD4KKyAgPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiIC8+Cis8L0hFQUQ+Cis8Qk9EWT4KKworPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiPgorPFRSPgorPFREIE5PV1JBUD0idHJ1ZSI+CisgIDxESVY+CisgIDx4c2w6ZWxlbWVudCBuYW1lPSJBIj4KKyAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJUQVJHRVQiPnRhZ0ZyYW1lPC94c2w6YXR0cmlidXRlPgorICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9IkhSRUYiPnRhZ2xpYi1zdW1tYXJ5Lmh0bWw8L3hzbDphdHRyaWJ1dGU+CisgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iQ0xBU1MiPkZyYW1lSGVhZGluZzwveHNsOmF0dHJpYnV0ZT4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIvL3RhZ2xpYi9zaG9ydG5hbWUiIC8+CisgIDwveHNsOmVsZW1lbnQ+CisgIDwvRElWPgorICA8QlIvPgorCis8eHNsOmZvci1lYWNoIHNlbGVjdD0iLy90YWdsaWIvdGFnIj4KKzx4c2w6c29ydCBzZWxlY3Q9Im5hbWUiLz4KKyAgPHhzbDplbGVtZW50IG5hbWU9IkEiPgorICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9IlRBUkdFVCI+dGFnRnJhbWU8L3hzbDphdHRyaWJ1dGU+CisgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iSFJFRiI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im5hbWUiIC8+Lmh0bWw8L3hzbDphdHRyaWJ1dGU+CisgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iQ0xBU1MiPkZyYW1lSXRlbTwveHNsOmF0dHJpYnV0ZT4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lIiAvPgorICA8L3hzbDplbGVtZW50PgorICA8QlIvPgorPC94c2w6Zm9yLWVhY2g+CisKKzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworCis8L0JPRFk+Cis8L0hUTUw+Cis8L3hzbDp0ZW1wbGF0ZT4KKzwveHNsOnN0eWxlc2hlZXQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9yZXNvdXJjZXMvdGFnbGliZG9jL3RhZ2xpYi1zdW1tYXJ5LnhzbCBiL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL3Jlc291cmNlcy90YWdsaWJkb2MvdGFnbGliLXN1bW1hcnkueHNsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzZGM0YWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9yZXNvdXJjZXMvdGFnbGliZG9jL3RhZ2xpYi1zdW1tYXJ5LnhzbApAQCAtMCwwICsxLDk4IEBACis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIiB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSI+Cis8eHNsOm91dHB1dAorCW1ldGhvZD0iaHRtbCIKKwl2ZXJzaW9uPSI0LjAiCisJb21pdC14bWwtZGVjbGFyYXRpb249InllcyIKKwlpbmRlbnQ9InllcyIKKy8+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9IioiPgorPEhUTUw+Cis8SEVBRD4KKyAgPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiIC8+Cis8L0hFQUQ+Cis8Qk9EWT4KKworPCEtLSA9PT09PT09PSBTVEFSVCBPRiBUQUcgREFUQSA9PT09PT09PSAtLT4KKzxBIE5BTUU9Il90b3AiPjwhLS0gLS0+PC9BPgorCis8U1BBTiBDTEFTUz0iRnJhbWVUaXRsZSI+CisgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIvL3RhZ2xpYi9kaXNwbGF5LW5hbWUiIC8+Cis8L1NQQU4+CismIzE2MDsmIzE2MDsmIzE2MDsmIzE2MDsoCis8QSBIUkVGPSIjX2Rlc2NyaXB0aW9uIj5kZXNjcmlwdGlvbjwvQT4KKykKKworPFAvPgorPCEtLSA9PT09PT09PT09IFRBRyBTVU1NQVJZID09PT09PT09PT09IC0tPgorPEEgTkFNRT0idGFnX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49IjIiPgorICA8U1BBTiBDTEFTUz0iRnJhbWVIZWFkaW5nIj5UYWcgU3VtbWFyeTwvU1BBTj4KKzwvVEQ+Cis8L1RSPgorCis8eHNsOmZvci1lYWNoIHNlbGVjdD0iLy90YWdsaWIvdGFnIj4KKzx4c2w6c29ydCBzZWxlY3Q9Im5hbWUiIG9yZGVyPSJhc2NlbmRpbmciLz4KKzx4c2w6ZWxlbWVudCBuYW1lPSJUUiI+CisgIDx4c2w6YXR0cmlidXRlIG5hbWU9IkNMQVNTIj5UYWJsZVJvdzwveHNsOmF0dHJpYnV0ZT4KKzxURCBWQUxJR049InRvcCIgV0lEVEg9IjEwJSI+CisgIDx4c2w6ZWxlbWVudCBuYW1lPSJBIj4KKyAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJIUkVGIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSIvPi5odG1sPC94c2w6YXR0cmlidXRlPgorICAgIDxCPjxDT0RFPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJuYW1lIi8+PC9DT0RFPjwvQj4KKyAgPC94c2w6ZWxlbWVudD4KKzwvVEQ+Cis8VEQ+CisgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJzdW1tYXJ5Ii8+Cis8L1REPgorPC94c2w6ZWxlbWVudD4KKzwveHNsOmZvci1lYWNoPgorCis8L1RBQkxFPgorCis8UC8+Cis8UC8+CisKKzwhLS0gPT09PT09PT09PT09IERFU0NSSVBUSU9OID09PT09PT09PT0gLS0+Cis8QSBOQU1FPSJfZGVzY3JpcHRpb24iPjwhLS0gLS0+PC9BPgorCis8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4KKzxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorPFREIENPTFNQQU49IjEiPgorICA8U1BBTiBDTEFTUz0iRnJhbWVIZWFkaW5nIj5EZXNjcmlwdGlvbjwvU1BBTj4KKzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzxQLz4KKworPHhzbDpjb3B5LW9mIHNlbGVjdD0iLy90YWdsaWIvaW5mbyIgLz4KKzxQLz4KKzxUQUJMRSBCT1JERVI9IjAiIENFTExTUEFDSU5HPSIwIiBDRUxMUEFERElORz0iMCI+Cis8VFI+Cis8VEQ+PEI+VGFnTGliIFZlcnNpb246PC9CPiYjMTYwOyYjMTYwOyYjMTYwOyYjMTYwOzwvVEQ+Cis8VEQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii8vdGFnbGliL3RsaWJ2ZXJzaW9uIi8+PC9URD4KKzwvVFI+PFRSPgorPFREPjxCPkpTUCBWZXJzaW9uOjwvQj4mIzE2MDsmIzE2MDsmIzE2MDsmIzE2MDs8L1REPgorPFREPjx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIvL3RhZ2xpYi9qc3B2ZXJzaW9uIi8+PC9URD4KKzwvVFI+PFRSPgorPFREPjxCPlNob3J0IE5hbWU6PC9CPiYjMTYwOyYjMTYwOyYjMTYwOyYjMTYwOzwvVEQ+Cis8VEQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii8vdGFnbGliL3Nob3J0bmFtZSIvPjwvVEQ+Cis8L1RSPjxUUj4KKzxURD48Qj5VUkk6PC9CPiYjMTYwOyYjMTYwOyYjMTYwOyYjMTYwOzwvVEQ+Cis8VEQ+CisgIDx4c2w6ZWxlbWVudCBuYW1lPSJBIj4KKyAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJIUkVGIj4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIvL3RhZ2xpYi91cmkiLz4KKyAgICA8L3hzbDphdHRyaWJ1dGU+CisgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii8vdGFnbGliL3VyaSIvPgorICA8L3hzbDplbGVtZW50PgorPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorCis8L0JPRFk+Cis8L0hUTUw+Cis8L3hzbDp0ZW1wbGF0ZT4KKzwveHNsOnN0eWxlc2hlZXQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9yZXNvdXJjZXMvdGFnbGlicmVwb3J0L2luZGV4LnhzbCBiL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL3Jlc291cmNlcy90YWdsaWJyZXBvcnQvaW5kZXgueHNsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmMGFmMmYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9yZXNvdXJjZXMvdGFnbGlicmVwb3J0L2luZGV4LnhzbApAQCAtMCwwICsxLDMyIEBACis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIiB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSI+Cis8eHNsOm91dHB1dAorICBtZXRob2Q9Imh0bWwiCisgIHZlcnNpb249IjQuMCIKKyAgb21pdC14bWwtZGVjbGFyYXRpb249InllcyIKKyAgaW5kZW50PSJ5ZXMiCisvPgorCis8eHNsOnRlbXBsYXRlIG1hdGNoPSIqIj4KKzxIVE1MPgorPEhFQUQ+CisgIDxUSVRMRT5UYWdsaWIgRG9jdW1lbnRhdGlvbjwvVElUTEU+Cis8L0hFQUQ+Cis8RlJBTUVTRVQgY29scz0iMTAwLCoiPgorICA8RlJBTUUgc3JjPSJvdmVydmlldy1mcmFtZS5odG1sIiBuYW1lPSJ0YWdsaWJMaXN0RnJhbWUiLz4KKyAgPEZSQU1FIHNyYz0iIiBuYW1lPSJ0YWdsaWJGcmFtZSIvPgorPC9GUkFNRVNFVD4KKworCis8Tk9GUkFNRVM+CisgIDxIMj5GcmFtZSBBbGVydDwvSDI+CisgIDxQLz4KKyAgVGhpcyBkb2N1bWVudCBpcyBkZXNpZ25lZCB0byBiZSB2aWV3ZWQgdXNpbmcgdGhlIGZyYW1lcyBmZWF0dXJlLgorICBJZiB5b3Ugc2VlIHRoaXMgbWVzc2FnZSwgeW91IGFyZSB1c2luZyBhIG5vbi1mcmFtZS1jYXBhYmxlIHdlYiBjbGllbnQuCisgIDxCUi8+CisgIExpbmsgdG8gPEEgSFJFRj0ib3ZlcnZpZXctZnJhbWUuaHRtbCI+Tm9uLWZyYW1lIHZlcnNpb24uPC9BPgorPC9OT0ZSQU1FUz4KKworCis8L0hUTUw+Cis8L3hzbDp0ZW1wbGF0ZT4KKzwveHNsOnN0eWxlc2hlZXQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9yZXNvdXJjZXMvdGFnbGlicmVwb3J0L292ZXJ2aWV3LWZyYW1lLnhzbCBiL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL3Jlc291cmNlcy90YWdsaWJyZXBvcnQvb3ZlcnZpZXctZnJhbWUueHNsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNDk5N2YKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9yZXNvdXJjZXMvdGFnbGlicmVwb3J0L292ZXJ2aWV3LWZyYW1lLnhzbApAQCAtMCwwICsxLDQzIEBACis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIiB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSI+Cis8eHNsOm91dHB1dAorCW1ldGhvZD0iaHRtbCIKKwl2ZXJzaW9uPSI0LjAiCisJb21pdC14bWwtZGVjbGFyYXRpb249InllcyIKKwlpbmRlbnQ9InllcyIKKy8+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9IioiPgorPEhUTUw+Cis8SEVBRD4KKyAgPFRJVExFPlRhZ2xpYiBSZXBvcnRzPC9USVRMRT4KKyAgPExJTksgUkVMPSJzdHlsZXNoZWV0IiBUWVBFPSJ0ZXh0L2NzcyIgSFJFRj0ic3R5bGVzaGVldC5jc3MiIFRJVExFPSJTdHlsZSIgLz4KKzwvSEVBRD4KKzxCT0RZPgorCis8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSI+Cis8VFI+Cis8VEQgTk9XUkFQPSJ0cnVlIj4KKyAgPERJViBDTEFTUz0iRnJhbWVIZWFkaW5nIj4KKyAgICBUYWdMaWJzCisgIDwvRElWPgorICA8QlIvPgorCis8eHNsOmZvci1lYWNoIHNlbGVjdD0iLy9zaG9ydG5hbWUiPgorPHhzbDpzb3J0IHNlbGVjdD0iLiIvPgorICA8eHNsOmVsZW1lbnQgbmFtZT0iQSI+CisgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iVEFSR0VUIj50YWdsaWJGcmFtZTwveHNsOmF0dHJpYnV0ZT4KKyAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJIUkVGIj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIgLz4tcmVwb3J0Lmh0bWw8L3hzbDphdHRyaWJ1dGU+CisgICAgPHhzbDphdHRyaWJ1dGUgbmFtZT0iQ0xBU1MiPkZyYW1lSXRlbTwveHNsOmF0dHJpYnV0ZT4KKyAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIiAvPgorICA8L3hzbDplbGVtZW50PgorICA8QlIvPgorPC94c2w6Zm9yLWVhY2g+CisKKzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKworPC9CT0RZPgorPC9IVE1MPgorPC94c2w6dGVtcGxhdGU+Cis8L3hzbDpzdHlsZXNoZWV0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvcmVzb3VyY2VzL3RhZ2xpYnJlcG9ydC9zdHlsZXNoZWV0LmNzcyBiL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL3Jlc291cmNlcy90YWdsaWJyZXBvcnQvc3R5bGVzaGVldC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjA3N2Y1ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL3Jlc291cmNlcy90YWdsaWJyZXBvcnQvc3R5bGVzaGVldC5jc3MKQEAgLTAsMCArMSwzNSBAQAorLyogSmF2YWRvYyBzdHlsZSBzaGVldCAqLworCisvKiBQYWdlIGJhY2tncm91bmQgY29sb3IgKi8KK2JvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkZGIH0KKworLkZyYW1lSGVhZGluZyB7IAorCWZvbnQtd2VpZ2h0OiBib2xkOworCWZvbnQtc2l6ZTogbGFyZ2U7CisJdGV4dC1kZWNvcmF0aW9uOiBub25lOworfQorLkZyYW1lSXRlbSB7IAorCXRleHQtZGVjb3JhdGlvbjogbm9uZTsKK30KKy5GcmFtZUhlYWRpbmc6bGluaywgLkZyYW1lSGVhZGluZzp2aXNpdGVkLCAuRnJhbWVJdGVtOmxpbmssIC5GcmFtZUl0ZW06dmlzaXRlZCB7CisJY29sb3I6IGJsdWU7Cit9CisuRnJhbWVIZWFkaW5nOmhvdmVyLCAuRnJhbWVIZWFkaW5nOmFjdGl2ZSwgLkZyYW1lSXRlbTpob3ZlciwgLkZyYW1lSXRlbTphY3RpdmUgeworCWNvbG9yOiAjQ0MzMzMzOworfQorCisuRnJhbWVUaXRsZSB7IAorCWZvbnQtd2VpZ2h0OiBib2xkOworCWZvbnQtc2l6ZTogbGFyZ2U7CisJdGV4dC1kZWNvcmF0aW9uOiBub25lOworfQorCisuVGFibGVIZWFkaW5nQ29sb3IgICAgIHsgYmFja2dyb3VuZDogI0NDQ0NGRiB9IC8qIERhcmsgbWF1dmUgKi8KKy5UYWJsZVJvd0NvbG9yICAgICAgICAgeyBiYWNrZ3JvdW5kOiAjRkZGRkZGIH0gLyogV2hpdGUgKi8KKworLlRhYmxlUm93VFQgICAgICAgICAgICB7IGJhY2tncm91bmQ6ICNGRkNDOTkgfSAvKiAgUmVxZC4gIFJURXhwclZhbHVlICovCisuVGFibGVSb3dURiAgICAgICAgICAgIHsgYmFja2dyb3VuZDogI0ZGQ0M5OSB9IC8qICBSZXFkLiAhUlRFeHByVmFsdWUgKi8KKy5UYWJsZVJvd0ZUICAgICAgICAgICAgeyBiYWNrZ3JvdW5kOiAjRkZGRkZGIH0gLyogIVJlcWQuICBSVEV4cHJWYWx1ZSAqLworLlRhYmxlUm93RkYgICAgICAgICAgICB7IGJhY2tncm91bmQ6ICNGRkZGRkYgfSAvKiAhUmVxZC4gIVJURXhwclZhbHVlICovCisKKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvcmVzb3VyY2VzL3RhZ2xpYnJlcG9ydC90YWdsaWItcmVwb3J0LnhzbCBiL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL3Jlc291cmNlcy90YWdsaWJyZXBvcnQvdGFnbGliLXJlcG9ydC54c2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNThlOWNiNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RhZy1kb2Mvc3JjL3Jlc291cmNlcy90YWdsaWJyZXBvcnQvdGFnbGliLXJlcG9ydC54c2wKQEAgLTAsMCArMSwxNzMgQEAKKzx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPSIxLjAiIHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIj4KKzx4c2w6b3V0cHV0CisgIG1ldGhvZD0iaHRtbCIKKyAgdmVyc2lvbj0iNC4wIgorICBvbWl0LXhtbC1kZWNsYXJhdGlvbj0ieWVzIgorICBpbmRlbnQ9InllcyIKKy8+CisKKzx4c2w6dGVtcGxhdGUgbWF0Y2g9IioiPgorPEhUTUw+Cis8SEVBRD4KKyAgPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9InN0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiIC8+CisgIDxTVFlMRSBUWVBFPSJ0ZXh0L2NzcyI+CisgICAgI0FUVFJfSEVBREVSIHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIHRvcDogMHB4OworICAgICAgbGVmdDogMHB4OworICAgICAgei1pbmRleDogMTsKKyAgICB9CisgICAgI1RBR19IRUFERVIgeworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgdG9wOiAwcHg7CisgICAgICBsZWZ0OiAwcHg7CisgICAgICB6LWluZGV4OiAyOworICAgIH0KKyAgICAjVE9QX0xFRlQgeworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgdG9wOiAwcHg7CisgICAgICBsZWZ0OiAwcHg7CisgICAgICB6LWluZGV4OiAzOworICAgIH0KKyAgICAjREFUQV9UQUJMRSB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICB0b3A6IDBweDsKKyAgICAgIGxlZnQ6IDBweDsKKyAgICB9CisgIDwvU1RZTEU+CisgIDxTQ1JJUFQgTEFOR1VBR0U9IkphdmFTY3JpcHQiIFNSQz0ieGJQb3NpdGlvbmFibGVFbGVtZW50LmpzIi8+CisgIDxTQ1JJUFQgTEFOR1VBR0U9IkphdmFTY3JpcHQiPiZsdDshLS0KKyAgICB2YXIgczAsIHMxLCBzMjsKKyAgICBpZiAoIWRvY3VtZW50LmxheWVycykgeworICAgICAgczAgPSBuZXcgeGJQb3NpdGlvbmFibGVFbGVtZW50KCdUT1BfTEVGVCcsICdsZWZ0JywgJ3RvcCcsIDAsIDApOworICAgICAgczEgPSBuZXcgeGJQb3NpdGlvbmFibGVFbGVtZW50KCdBVFRSX0hFQURFUicsICdub25lJywgJ3RvcCcsIDAsIDApOworICAgICAgczIgPSBuZXcgeGJQb3NpdGlvbmFibGVFbGVtZW50KCdUQUdfSEVBREVSJywgJ2xlZnQnLCAnbm9uZScsIDAsIDApOworICAgIH0KKyAgICBmdW5jdGlvbiBpbml0KCkgeworICAgICAgaWYgKCFkb2N1bWVudC5sYXllcnMpIHsKKyAgICAgICAgczAuc3RhcnQoKTsKKyAgICAgICAgczEuc3RhcnQoKTsKKyAgICAgICAgczIuc3RhcnQoKTsKKyAgICAgIH0KKyAgICB9CisgIC8vLS0mZ3Q7PC9TQ1JJUFQ+Cis8L0hFQUQ+Cis8Qk9EWSBvbkxvYWQ9ImluaXQoKSI+CisKKzwhLS0gRGF0YSBUYWJsZSAtLT4KKzxESVYgSUQ9IkRBVEFfVEFCTEUiPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFNQQUNJTkc9IjAiIENFTExQQURESU5HPSIwIj4KKzxUUiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorICA8VEQgV0lEVEg9IjE1MCIgTk9XUkFQPSJ0cnVlIj4KKyAgICA8RElWIFNUWUxFPSJ3aWR0aDogMTUwcHg7Ij4mIzE2MDs8L0RJVj4KKyAgPC9URD4KKyAgPFREIFdJRFRIPSI3NSIgTk9XUkFQPSJ0cnVlIj4KKyAgICA8RElWPiYjMTYwOzxCPmJvZHlDb250ZW50PC9CPiYjMTYwOzwvRElWPgorICA8L1REPgorPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii8vYXR0cmlidXRlcy9hdHRyaWJ1dGUiPgorPHhzbDpzb3J0IHNlbGVjdD0iLiIvPgorICA8VEQgV0lEVEg9Ijc1IiBOT1dSQVA9InRydWUiPgorICAgIDxESVY+JiMxNjA7PEI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz48L0I+JiMxNjA7PC9ESVY+CisgIDwvVEQ+Cis8L3hzbDpmb3ItZWFjaD4KKzwvVFI+Cis8eHNsOmZvci1lYWNoIHNlbGVjdD0iLy90YWdsaWIvdGFnIj4KKzx4c2w6c29ydCBzZWxlY3Q9Im5hbWUiLz4KKzxUUj4KKyAgPHhzbDp2YXJpYWJsZSBuYW1lPSJjdXJyX3RhZyIgc2VsZWN0PSIuIi8+CisgIDxURCBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiIFdJRFRIPSIxNTAiIE5PV1JBUD0idHJ1ZSI+CisgICAgPERJViBTVFlMRT0id2lkdGg6IDE1MHB4OyBvdmVyZmxvdzogaGlkZGVuOyI+JiMxNjA7PEI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IiRjdXJyX3RhZy9uYW1lIi8+PC9CPiYjMTYwOzwvRElWPgorICA8L1REPgorICA8VEQgV0lEVEg9Ijc1IiBOT1dSQVA9InRydWUiPgorICAgICYjMTYwOzx4c2w6dmFsdWUtb2Ygc2VsZWN0PSIkY3Vycl90YWcvYm9keWNvbnRlbnQiLz4mIzE2MDsKKyAgPC9URD4KKyAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii8vYXR0cmlidXRlcy9hdHRyaWJ1dGUiPgorICA8eHNsOnNvcnQgc2VsZWN0PSIuIi8+CisgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJjdXJyX2F0dHIiIHNlbGVjdD0iLiIvPgorICAgIDx4c2w6ZWxlbWVudCBuYW1lPSJURCI+CisgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJXSURUSCI+NzU8L3hzbDphdHRyaWJ1dGU+CisgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJOT1dSQVAiPnRydWU8L3hzbDphdHRyaWJ1dGU+CisgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0iJGN1cnJfdGFnL2F0dHJpYnV0ZSI+CisgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJuYW1lIi8+CisgICAgICAgIDx4c2w6aWYgdGVzdD0iLi9uYW1lID0gJGN1cnJfYXR0ciI+CisgICAgICAgICAgPHhzbDpjaG9vc2U+CisgICAgICAgICAgICA8eHNsOndoZW4gdGVzdD0iLi9yZXF1aXJlZCA9ICd0cnVlJyI+CisgICAgICAgICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9IkJHQ09MT1IiPiNGRjk5MzM8L3hzbDphdHRyaWJ1dGU+CisgICAgICAgICAgICAgICYjMTYwOworICAgICAgICAgICAgPC94c2w6d2hlbj4KKyAgICAgICAgICAgIDx4c2w6b3RoZXJ3aXNlPgorICAgICAgICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPSJCR0NPTE9SIj4jRkZGRjY2PC94c2w6YXR0cmlidXRlPgorICAgICAgICAgICAgICAmIzE2MDsKKyAgICAgICAgICAgIDwveHNsOm90aGVyd2lzZT4KKyAgICAgICAgICA8L3hzbDpjaG9vc2U+CisgICAgICAgICAgPHhzbDpjaG9vc2U+CisgICAgICAgICAgICA8eHNsOndoZW4gdGVzdD0iLi9ydGV4cHJ2YWx1ZSA9ICd0cnVlJyI+CisgICAgICAgICAgICAgIFJUCisgICAgICAgICAgICA8L3hzbDp3aGVuPgorICAgICAgICAgIDwveHNsOmNob29zZT4KKyAgICAgICAgPC94c2w6aWY+CisgICAgICA8L3hzbDpmb3ItZWFjaD4KKyAgICAgICYjMTYwOworICAgIDwveHNsOmVsZW1lbnQ+CisgIDwveHNsOmZvci1lYWNoPgorPC9UUj4KKzwveHNsOmZvci1lYWNoPgorCis8L1RBQkxFPgorPC9ESVY+CisKKzwhLS0gVG9wIExlZnQgQmxhbmsgQ2VsbCAtLT4KKzxMQVlFUiBWSVNJQklMSVRZPSJoaWRlIj48RElWIElEPSJUT1BfTEVGVCI+Cis8VEFCTEUgQk9SREVSPSIxIiBDRUxMU1BBQ0lORz0iMCIgQ0VMTFBBRERJTkc9IjAiPgorPFRSIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+CisgIDxURCBXSURUSD0iMTUwIiBOT1dSQVA9InRydWUiPgorICAgIDxESVYgU1RZTEU9IndpZHRoOiAxNTBweDsiPiYjMTYwOzwvRElWPgorICA8L1REPgorPC9UUj4KKzwvVEFCTEU+Cis8L0RJVj48L0xBWUVSPgorCis8IS0tIEF0dHJpYnV0ZSBIZWFkZXIgVGFibGUgLS0+Cis8TEFZRVIgVklTSUJJTElUWT0iaGlkZSI+PERJViBJRD0iQVRUUl9IRUFERVIiPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFNQQUNJTkc9IjAiIENFTExQQURESU5HPSIwIj4KKzxUUiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorICA8VEQgV0lEVEg9IjE1MCIgTk9XUkFQPSJ0cnVlIj4KKyAgICA8RElWIFNUWUxFPSJ3aWR0aDogMTUwcHg7Ij4mIzE2MDs8L0RJVj4KKyAgPC9URD4KKyAgPFREIFdJRFRIPSI3NSIgTk9XUkFQPSJ0cnVlIj4KKyAgICA8RElWPiYjMTYwOzxCPmJvZHlDb250ZW50PC9CPiYjMTYwOzwvRElWPgorICA8L1REPgorPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Ii8vYXR0cmlidXRlcy9hdHRyaWJ1dGUiPgorPHhzbDpzb3J0IHNlbGVjdD0iLiIvPgorICA8VEQgV0lEVEg9Ijc1IiBOT1dSQVA9InRydWUiPgorICAgIDxESVY+JiMxNjA7PEI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz48L0I+JiMxNjA7PC9ESVY+CisgIDwvVEQ+Cis8L3hzbDpmb3ItZWFjaD4KKzwvVFI+Cis8L1RBQkxFPgorPC9ESVY+PC9MQVlFUj4KKworPCEtLSBUYWcgSGVhZGVyIFRhYmxlIC0tPgorPExBWUVSIFZJU0lCSUxJVFk9ImhpZGUiPjxESVYgSUQ9IlRBR19IRUFERVIiPgorPFRBQkxFIEJPUkRFUj0iMSIgQ0VMTFNQQUNJTkc9IjAiIENFTExQQURESU5HPSIwIj4KKzxUUiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorICA8VEQgV0lEVEg9IjE1MCIgTk9XUkFQPSJ0cnVlIj4KKyAgICA8RElWIFNUWUxFPSJ3aWR0aDogMTUwcHg7Ij4mIzE2MDs8L0RJVj4KKyAgPC9URD4KKzwvVFI+Cis8eHNsOmZvci1lYWNoIHNlbGVjdD0iLy90YWdsaWIvdGFnIj4KKzx4c2w6c29ydCBzZWxlY3Q9Im5hbWUiLz4KKzxUUiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPgorICA8VEQgV0lEVEg9IjE1MCIgTk9XUkFQPSJ0cnVlIj4KKyAgICA8RElWIFNUWUxFPSJ3aWR0aDogMTUwcHg7IG92ZXJmbG93OiBoaWRkZW47Ij4mIzE2MDs8Qj48eHNsOnZhbHVlLW9mIHNlbGVjdD0iLi9uYW1lIi8+PC9CPiYjMTYwOzwvRElWPgorICA8L1REPgorPC9UUj4KKzwveHNsOmZvci1lYWNoPgorPC9UQUJMRT4KKzwvRElWPjwvTEFZRVI+CisKKworPC9CT0RZPgorPC9IVE1MPgorPC94c2w6dGVtcGxhdGU+Cis8L3hzbDpzdHlsZXNoZWV0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvcmVzb3VyY2VzL3RhZ2xpYnJlcG9ydC94YlBvc2l0aW9uYWJsZUVsZW1lbnQuanMgYi9zdHJ1dHMtc2FuZGJveC90YWctZG9jL3NyYy9yZXNvdXJjZXMvdGFnbGlicmVwb3J0L3hiUG9zaXRpb25hYmxlRWxlbWVudC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWY0Y2I0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGFnLWRvYy9zcmMvcmVzb3VyY2VzL3RhZ2xpYnJlcG9ydC94YlBvc2l0aW9uYWJsZUVsZW1lbnQuanMKQEAgLTAsMCArMSwyMzkgQEAKKy8qCisgKiB4YlBvc2l0aW9uYWJsZUVsZW1lbnQuanMKKyAqICRSZXYkICREYXRlJAorKi8KKy8qICoqKioqIEJFR0lOIExJQ0VOU0UgQkxPQ0sgKioqKioKKyAqIFZlcnNpb246IE1QTCAxLjEvR1BMIDIuMC9MR1BMIDIuMQorICoKKyAqIFRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgYXJlIHN1YmplY3QgdG8gdGhlIE1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbgorICogMS4xICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoCisgKiB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC8KKyAqCisgKiBTb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIGJhc2lzLAorICogV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlCisgKiBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyByaWdodHMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZQorICogTGljZW5zZS4KKyAqCisgKiBUaGUgT3JpZ2luYWwgQ29kZSBpcyBOZXRzY2FwZSBDcm9zcyBCcm93c2VyIFBvc2l0aW9uYWJsZSBFbGVtZW50IGNvZGUuCisgKgorICogVGhlIEluaXRpYWwgRGV2ZWxvcGVyIG9mIHRoZSBPcmlnaW5hbCBDb2RlIGlzCisgKiBOZXRzY2FwZSBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbi4KKyAqIFBvcnRpb25zIGNyZWF0ZWQgYnkgdGhlIEluaXRpYWwgRGV2ZWxvcGVyIGFyZSBDb3B5cmlnaHQgKEMpIDIwMDIKKyAqIHRoZSBJbml0aWFsIERldmVsb3Blci4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBDb250cmlidXRvcihzKTogRG9yb24gUm9zZW5iZXJnIDxkb3JvbkBuZXRzY2FwZS5jb20+CisgKiAgICAgICAgICAgICAgICAgQm9iIENsYXJ5IDxiY2xhcnlAbmV0c2NhcGUuY29tPgorICogICAgICAgICAgICAgICAgIAorICoKKyAqICoqKioqIEVORCBMSUNFTlNFIEJMT0NLICoqKioqICovCisKKy8qCisgKiB4YlBvc2l0aW9uYWJsZUVsZW1lbnQgLSAKKyAqIHVzZSBESE1UTCB0byBwb3NpdGlvbiBhbiBlbGVtZW50IGRpc3BsYWNlcyAob2Zmc2V0WCwgb2Zmc2V0WSkKKyAqIGZyb20gYSBnZW9tZXRyaWMgcG9zaXRpb24gaW4gdGhlIHZpZXdwb3J0LgorICogCisgKi8KKworZnVuY3Rpb24geGJQb3NpdGlvbmFibGVFbGVtZW50KGlkLCBzaWRlWCwgc2lkZVksIG9mZnNldFgsIG9mZnNldFkpCit7CisgIHRoaXMuaWQgICAgICAgICAgICAgID0gaWQ7CisgIHRoaXMubmFtZSAgICAgICAgICAgID0gJ3hiUG9zaXRpb25hYmxlRWxlbWVudF8nICsgKCsreGJQb3NpdGlvbmFibGVFbGVtZW50Ll9uYW1lKTsKKyAgdGhpcy5ydW5JZCAgICAgICAgICAgPSBudWxsOyAgCisgIHRoaXMucmVmcmVzaEludGVydmFsID0gMTAwOworICB0aGlzLmRpdiAgICAgICAgICAgICA9IG51bGw7CisgIAorICBpZiAodHlwZW9mKHNpZGVYKSAhPSAnc3RyaW5nJykKKyAgeworICAgIHNpZGVYID0gJ2xlZnQnCisgIH0KKyAgZWxzZQorICB7CisgICAgc2lkZVggPSBzaWRlWC50b0xvd2VyQ2FzZSgpOworICB9CisKKyAgaWYgKHR5cGVvZihzaWRlWSkgIT0gJ3N0cmluZycpCisgIHsKKyAgICBzaWRlWSA9ICd0b3AnCisgIH0KKyAgZWxzZQorICB7CisgICAgc2lkZVkgPSBzaWRlWS50b0xvd2VyQ2FzZSgpOworICB9CisKKyAgaWYgKHR5cGVvZihvZmZzZXRYKSAhPSAnbnVtYmVyJykKKyAgeworICAgIG9mZnNldFggPSAwOworICB9CisKKyAgaWYgKHR5cGVvZihvZmZzZXRZKSAhPSAnbnVtYmVyJykKKyAgeworICAgIG9mZnNldFkgPSAwOworICB9CisKKyAgdGhpcy5zaWRlWCAgID0gc2lkZVg7CisgIHRoaXMuc2lkZVkgICA9IHNpZGVZOworICB0aGlzLm9mZnNldFggPSBvZmZzZXRYOworICB0aGlzLm9mZnNldFkgPSBvZmZzZXRZOworCisgIHdpbmRvd1t0aGlzLm5hbWVdID0gdGhpczsKK30gIAorCit4YlBvc2l0aW9uYWJsZUVsZW1lbnQuX25hbWUgPSAtMTsKKworeGJQb3NpdGlvbmFibGVFbGVtZW50LnByb3RvdHlwZS5zdGFydCA9IGZ1bmN0aW9uICgpCit7CisgIHRoaXMuc3RvcCgpOworICAKKyAgLy8gc2luY2Ugc3RhcnQoKSBzaG91bGQgYmUgY2FsbGVkIGFmdGVyIHRoZSBkb2N1bWVudCBoYXMgbG9hZGVkLCB3ZSBjYW4gZmluYWxseSBhc3NpZ24gZWxlbWVudAorICBpZiAoIXRoaXMuZGl2KQorICB7CisgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKQorICAgIHsKKyAgICAgIHRoaXMuZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZCk7CisgICAgICB0aGlzLnN0eWxlT2JqID0gdGhpcy5kaXYuc3R5bGU7CQorICAgIH0KKyAgICBlbHNlIGlmIChkb2N1bWVudC5sYXllcnMpCisgICAgeworICAgICAgdGhpcy5kaXYgPSBkb2N1bWVudC5sYXllcnNbdGhpcy5pZF07CisgICAgICB0aGlzLnN0eWxlT2JqID0gdGhpcy5kaXY7CisgICAgfQorICAgIGVsc2UgaWYgKGRvY3VtZW50LmFsbCkKKyAgICB7CisgICAgICB0aGlzLmRpdiA9IGRvY3VtZW50LmFsbFt0aGlzLmlkXTsKKyAgICAgIHRoaXMuc3R5bGVPYmogPSB0aGlzLmRpdi5zdHlsZTsJCisgICAgfQorCisgICAgdGhpcy53aWR0aCA9IHRoaXMuX2dldElubmVyU2l6ZSgid2lkdGgiKTsKKyAgfQkKKyAgCisgIHRoaXMuX3VwZGF0ZVBvc2l0aW9uKCk7CisgIHRoaXMucnVuSWQgPSBzZXRUaW1lb3V0KHRoaXMubmFtZSArICcuc3RhcnQoKScsIHRoaXMucmVmcmVzaEludGVydmFsKTsgICAgCit9OworCit4YlBvc2l0aW9uYWJsZUVsZW1lbnQucHJvdG90eXBlLnN0b3AgPSBmdW5jdGlvbiAoKQoreworICBpZiAodGhpcy5ydW5JZCkKKyAgICBjbGVhclRpbWVvdXQodGhpcy5ydW5JZCk7CisgICAgCisgIHRoaXMucnVuSWQgPSBudWxsOworfTsKKworeGJQb3NpdGlvbmFibGVFbGVtZW50LnByb3RvdHlwZS5fZ2V0SW5uZXJTaXplID0gZnVuY3Rpb24gKHByb3BOYW1lKQoreworICB2YXIgdmFsID0gMDsKKworICBpZiAoZG9jdW1lbnQubGF5ZXJzKQorICB7CisgICAgLy8gbmF2aWdhdG9yIDQKKyAgICB2YWwgPSB0aGlzLmRpdi5kb2N1bWVudFtwcm9wTmFtZV07CisgIH0KKyAgZWxzZSBpZiAodHlwZW9mKHRoaXMuZGl2LnN0eWxlW3Byb3BOYW1lXSkgPT0gJ251bWJlcicpCisgIHsKKyAgICAvLyBvcGVyYQorICAgIC8vIGJ1ZyBpbiBPcGVyYSA2IHdpZHRoL29mZnNldFdpZHRoLiBVc2UgY2xpZW50V2lkdGgKKyAgICBpZiAocHJvcE5hbWUgPT0gJ3dpZHRoJyAmJiB0eXBlb2YodGhpcy5kaXYuY2xpZW50V2lkdGgpID09ICdudW1iZXInKQorICAgICAgdmFsID0gdGhpcy5kaXYuY2xpZW50V2lkdGg7CisgICAgZWxzZQorICAgICAgdmFsID0gIHRoaXMuc3R5bGVPYmpbcHJvcE5hbWVdOworICB9CisgIGVsc2UKKyAgeworICAgIC8vbW96aWxsYSBhbmQgSUUKKyAgICBzd2l0Y2ggKHByb3BOYW1lKQorICAgIHsKKyAgICBjYXNlICdoZWlnaHQnOgorICAgICAgIGlmICh0eXBlb2YodGhpcy5kaXYub2Zmc2V0SGVpZ2h0KSA9PSAnbnVtYmVyJykKKyAgICAgICAgIHZhbCA9ICB0aGlzLmRpdi5vZmZzZXRIZWlnaHQ7CisgICAgICAgaWYgKHZhbCA9PSAwKQorICAgICAgICAgdmFsID0gIHRoaXMuaGVpZ2h0OworICAgICAgIGJyZWFrOworIAorICAgIGNhc2UgJ3dpZHRoJzoKKyAgICAgICBpZiAodHlwZW9mKHRoaXMuZGl2Lm9mZnNldFdpZHRoKSA9PSAnbnVtYmVyJykKKyAgICAgICAgIHZhbCA9IHRoaXMuZGl2Lm9mZnNldFdpZHRoOworICAgICAgIGlmICh2YWwgPT0gMCkKKyAgICAgICAgIHZhbCA9ICB0aGlzLndpZHRoOworICAgICAgIGJyZWFrOworICAgIH0KKyAgfQorICByZXR1cm4gdmFsOworfTsKKworeGJQb3NpdGlvbmFibGVFbGVtZW50LnByb3RvdHlwZS5fZ2V0U2Nyb2xsT2Zmc2V0ID0gZnVuY3Rpb24gKHByb3BOYW1lKQoreworICB2YXIgcnYgPSAwOworCisgIGlmIChkb2N1bWVudC5ib2R5ICYmIHR5cGVvZihkb2N1bWVudC5ib2R5LnNjcm9sbFRvcCkgPT0gJ251bWJlcicpCisgIHsKKyAgICBydiA9IGRvY3VtZW50LmJvZHlbcHJvcE5hbWU9PSd0b3AnPydzY3JvbGxUb3AnOidzY3JvbGxMZWZ0J107CisgIH0KKyAgZWxzZSBpZiAodHlwZW9mKHdpbmRvdy5wYWdlWU9mZnNldCkgPT0gJ251bWJlcicpCisgIHsKKyAgICBydiA9IHdpbmRvd1twcm9wTmFtZT09J3RvcCc/J3BhZ2VZT2Zmc2V0JzoncGFnZVhPZmZzZXQnXTsgIAorICB9CisKKyAgcmV0dXJuIHJ2OworfTsKKworeGJQb3NpdGlvbmFibGVFbGVtZW50LnByb3RvdHlwZS5fdXBkYXRlUG9zaXRpb24gPSBmdW5jdGlvbiAoKQoreworICB2YXIgd2luZG93SGVpZ2h0OworICB2YXIgd2luZG93V2lkdGg7CisgIHZhciB4ID0gMDsKKyAgdmFyIHkgPSAwOworCisgIGlmIChkb2N1bWVudC5ib2R5ICYmIHR5cGVvZihkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodCkgPT0gJ251bWJlcicpCisgIHsKKyAgICB3aW5kb3dIZWlnaHQgPSBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodDsKKyAgICB3aW5kb3dXaWR0aCAgPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoOworICB9CisgIGVsc2UgaWYgKHR5cGVvZih3aW5kb3cuaW5uZXJIZWlnaHQpID09ICdudW1iZXInKQorICB7CisgICAgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC0gMTY7CisgICAgd2luZG93V2lkdGggID0gd2luZG93LmlubmVyV2lkdGggIC0gMTY7ICAKKyAgfQorCisgIC8vIGNhbGN1bGF0ZSB0aGUgcG9zaXRpb25zIG9mIHRoZSB2aWV3IHBvcnQgcG9zaXRpb24KKyAgc3dpdGNoICh0aGlzLnNpZGVYKQorICB7CisgICAgY2FzZSAnbGVmdCc6CisgICAgICB4ID0gdGhpcy5fZ2V0U2Nyb2xsT2Zmc2V0KCdsZWZ0Jyk7CisgICAgICBicmVhazsKKworICAgIGNhc2UgJ2NlbnRlcic6CisgICAgICB4ID0gKHdpbmRvd1dpZHRoIC8gMikgLSAodGhpcy5fZ2V0SW5uZXJTaXplKCd3aWR0aCcpLzIpICsgdGhpcy5fZ2V0U2Nyb2xsT2Zmc2V0KCdsZWZ0Jyk7CisgICAgICBicmVhazsKKwkgIAorICAgIGNhc2UgJ3JpZ2h0JzoKKyAgICAgIHggPSB3aW5kb3dXaWR0aCAtIHRoaXMuX2dldElubmVyU2l6ZSgnd2lkdGgnKSArIHRoaXMuX2dldFNjcm9sbE9mZnNldCgnbGVmdCcpOworICAgICAgYnJlYWs7CisgIH0KKworICBzd2l0Y2ggKHRoaXMuc2lkZVkpCisgIHsKKyAgICBjYXNlICd0b3AnOgorICAgICAgeSA9IHRoaXMuX2dldFNjcm9sbE9mZnNldCgndG9wJyk7CisgICAgICBicmVhazsKKworICAgIGNhc2UgJ2NlbnRlcic6CisgICAgICB5ID0gKHdpbmRvd0hlaWdodCAvIDIpIC0gKHRoaXMuX2dldElubmVyU2l6ZSgnaGVpZ2h0JykgLyAyKSArIHRoaXMuX2dldFNjcm9sbE9mZnNldCgndG9wJyk7CisgICAgICBicmVhazsgCisJICAKKyAgICBjYXNlICdib3R0b20nOgorICAgICAgeSA9IHdpbmRvd0hlaWdodCAtIHRoaXMuX2dldElubmVyU2l6ZSgnaGVpZ2h0JykgKyB0aGlzLl9nZXRTY3JvbGxPZmZzZXQoJ3RvcCcpOworICAgICAgYnJlYWs7CisgIH0KKyAgCisgIGlmICh0eXBlb2YodGhpcy5zdHlsZU9iai5sZWZ0KSA9PSAnbnVtYmVyJykKKyAgeworICAgIHRoaXMuc3R5bGVPYmoubGVmdCA9ICh4ICsgdGhpcy5vZmZzZXRYKTsKKyAgICB0aGlzLnN0eWxlT2JqLnRvcCAgPSAoeSArIHRoaXMub2Zmc2V0WSk7CisgIH0KKyAgZWxzZQorICB7CisgICAgdGhpcy5zdHlsZU9iai5sZWZ0ID0gKHggKyB0aGlzLm9mZnNldFgpICsgJ3B4JzsKKyAgICB0aGlzLnN0eWxlT2JqLnRvcCAgPSAoeSArIHRoaXMub2Zmc2V0WSkgKyAncHgnOworICB9Cit9OworCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3Byb2plY3QueG1sIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9wcm9qZWN0LnhtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40OWM0ZGIxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9wcm9qZWN0LnhtbApAQCAtMCwwICsxLDM0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKworPHByb2plY3Q+CisgIDxleHRlbmQ+JHtiYXNlZGlyfS8uLi9wcm9qZWN0LnhtbDwvZXh0ZW5kPgorICA8YXJ0aWZhY3RJZD50aWxlcy1kb2N1bWVudGF0aW9uPC9hcnRpZmFjdElkPgorICA8bmFtZT5UaWxlcyBkb2N1bWVudGF0aW9uIHdlYiBhcHBsaWNhdGlvbjwvbmFtZT4KKyAgPHBhY2thZ2U+b3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLio8L3BhY2thZ2U+CisKKyAgPGRlc2NyaXB0aW9uPlRpbGVzIGRvY3VtZW50YXRpb24gd2ViIGFwcGxpY2F0aW9uPC9kZXNjcmlwdGlvbj4KKyAgPHNob3J0RGVzY3JpcHRpb24+VGlsZXMgd2ViYXBwPC9zaG9ydERlc2NyaXB0aW9uPgorCisgIDxkZXBlbmRlbmNpZXM+CisgIAorICAgICAgPGRlcGVuZGVuY3k+CisJCSAgPGdyb3VwSWQ+c3RydXRzPC9ncm91cElkPgorCQkgIDxhcnRpZmFjdElkPnN0cnV0cy10aWxlczwvYXJ0aWZhY3RJZD4KKwkJICA8dmVyc2lvbj4xLjMuMC1kZXY8L3ZlcnNpb24+CisgICAgICAgICAgICAgIDxwcm9wZXJ0aWVzPgorICAgICAgICAgICAgICAgIDx3YXIuYnVuZGxlPnRydWU8L3dhci5idW5kbGU+CisgICAgICAgICAgICAgIDwvcHJvcGVydGllcz4KKyAgICAgIDwvZGVwZW5kZW5jeT4KKworICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgIDxncm91cElkPnN0cnV0czwvZ3JvdXBJZD4KKyAgICAgICAgPGFydGlmYWN0SWQ+c3RydXRzLXRhZ2xpYjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPHZlcnNpb24+MS4zLjAtZGV2PC92ZXJzaW9uPgorICAgICAgICAgICAgICA8cHJvcGVydGllcz4KKyAgICAgICAgICAgICAgICA8d2FyLmJ1bmRsZT50cnVlPC93YXIuYnVuZGxlPgorICAgICAgICAgICAgICA8L3Byb3BlcnRpZXM+CisgICAgICA8L2RlcGVuZGVuY3k+CisKKyAgPC9kZXBlbmRlbmNpZXM+CisKKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL2NoYW5uZWwvQ2hhbm5lbEZhY3RvcnlTZXQuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL2NoYW5uZWwvQ2hhbm5lbEZhY3RvcnlTZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmQyY2JkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvY2hhbm5lbC9DaGFubmVsRmFjdG9yeVNldC5qYXZhCkBAIC0wLDAgKzEsMzgxIEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMuY2hhbm5lbDsKKworaW1wb3J0IGphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vzc2lvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uRGVmaW5pdGlvbnNGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uRmFjdG9yeVNldDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy54bWxEZWZpbml0aW9uLlhtbERlZmluaXRpb25zU2V0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnhtbERlZmluaXRpb24uWG1sUGFyc2VyOworaW1wb3J0IG9yZy54bWwuc2F4LlNBWEV4Y2VwdGlvbjsKKworLyoqCisgKiBDb21wb25lbnQgRGVmaW5pdGlvbnMgZmFjdG9yeS4KKyAqIFRoaXMgaW1wbGVtZW50YXRpb24gb2YgQ29tcG9uZW50IERlZmluaXRpb25zIGZhY3RvcnkgYWxsb3dzIGkxOG4KKyAqIENvbXBvbmVudCBkZWZpbml0aW9ucyBmYWN0b3J5IGFsbG93aW5nIGkxOG4gZGVmaW5pdGlvbi4KKyAqIEEgZGVmaW5pdGlvbiBpcyByZXRyaWV2ZWQgYnkgaXRzIG5hbWUsIGFuZCB1c2luZyBsb2NhbGUgc2V0dGVkIGluIGFwcHJvcHJpYXRlIAorICogc2Vzc2lvbiBjb250ZXh0LiAgRGVmaW5pdGlvbnMgYXJlIGRlZmluZWQgaW4gZGlmZmVyZW50IGZpbGVzLCBvbmUgZm9yIGVhY2ggbG9jYWxlLiAKKyAqIEEgZGVmaW5pdGlvbiBmaWxlIGlzIGxvYWRlZCB1c2luZyBjb21tb24gbmFtZSBleHRlbmRlZCB3aXRoIGxvY2FsZSBjb2RlIAorICogKGV4IDogdGVtcGxhdGVEZWZpbml0aW9uc19mci54bWwpLiBJZiBubyBmaWxlIGlzIGZvdW5kIHVuZGVyIHRoaXMgbmFtZSwgdXNlIGRlZmF1bHQgCisgKiBmaWxlLgorICovCitwdWJsaWMgY2xhc3MgQ2hhbm5lbEZhY3RvcnlTZXQgZXh0ZW5kcyBGYWN0b3J5U2V0IHsKKworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyhDaGFubmVsRmFjdG9yeVNldC5jbGFzcyk7CisKKyAgICAvKiogCisgICAgICogRGVmYXVsdCBuYW1lLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFRfREVGSU5JVElPTlNfRklMRV9OQU1FID0KKyAgICAgICAgIi9XRUItSU5GL3RlbXBsYXRlRGVmaW5pdGlvbnMueG1sIjsKKworICAgIC8qKiAKKyAgICAgKiBDb25maWcgZmlsZSBwYXJhbWV0ZXIgbmFtZS4gCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVGSU5JVElPTlNfQ09ORklHX1BBUkFNRVRFUl9OQU1FID0KKyAgICAgICAgImRlZmluaXRpb25zLWNvbmZpZyI7CisKKyAgICAvKiogCisgICAgICogQ29uZmlnIGZpbGUgcGFyYW1ldGVyIG5hbWUuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEZBQ1RPUllfU0VMRUNUT1JfS0VZID0KKyAgICAgICAgIkNoYW5uZWxGYWN0b3J5U2V0LmZhY3RvcnlTZWxlY3RvcktleSI7CisKKyAgICAvKiogCisgICAgICogRGVmYXVsdCBmaWxlbmFtZXMgZXh0ZW5zaW9uLiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBGSUxFTkFNRV9FWFRFTlNJT04gPSAiLnhtbCI7CisKKyAgICAvKiogCisgICAgICogRGVmYXVsdCBmYWN0b3J5LiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgRGVmaW5pdGlvbnNGYWN0b3J5IGRlZmF1bHRGYWN0b3J5ID0gbnVsbDsKKworICAgIC8qKiAKKyAgICAgKiBYbWwgcGFyc2VyIHVzZWQuIAorICAgICAqLworICAgIHByb3RlY3RlZCBYbWxQYXJzZXIgeG1sUGFyc2VyID0gbnVsbDsKKworICAgIC8qKiAKKyAgICAgKiBOYW1lcyBvZiBkZWZhdWx0IGZpbGUgY29udGFpbmluZyBkZWZpbml0aW9uIGRlc2NyaXB0aW9ucy4gCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgZmlsZW5hbWUgPSBudWxsOworCisgICAgLyoqIAorICAgICAqIENvbGxlY3Rpb24gb2YgYWxyZWFkeSBsb2FkZWQgZGVmaW5pdGlvbnMgc2V0LCByZWZlcmVuY2VkIGJ5IHRoZWlyIHN1ZmZpeC4gCisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgbG9hZGVkID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFBhcmFtZXRlcmxlc3MgQ29uc3RydWN0b3IuCisgICAgICogTWV0aG9kIGluaXRGYWN0b3J5IG11c3QgYmUgY2FsbGVkIHByaW9yIHRvIGFueSB1c2Ugb2YgY3JlYXRlZCBmYWN0b3J5LgorICAgICAqLworICAgIHB1YmxpYyBDaGFubmVsRmFjdG9yeVNldCgpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKiBJbml0IHRoZSBmYWN0b3J5IGJ5IHJlYWRpbmcgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbiBmaWxlLgorICAgICAqIEB0aHJvd3MgRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uIENhbid0IGZpbmQgZmFjdG9yeSBjb25maWd1cmF0aW9uIGZpbGUuCisgICAgICovCisgICAgcHVibGljIENoYW5uZWxGYWN0b3J5U2V0KFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LCBNYXAgcHJvcGVydGllcykKKyAgICAgICAgdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiB7CisKKyAgICAgICAgaW5pdEZhY3Rvcnkoc2VydmxldENvbnRleHQsIHByb3BlcnRpZXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemF0aW9uIG1ldGhvZC4KKyAgICAgKiBJbml0IHRoZSBmYWN0b3J5IGJ5IHJlYWRpbmcgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbiBmaWxlLgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBleGFjdGx5IG9uY2UgaW1tZWRpYXRlbHkgYWZ0ZXIgZmFjdG9yeSBjcmVhdGlvbiBpbgorICAgICAqIGNhc2Ugb2YgaW50ZXJuYWwgY3JlYXRpb24gKGJ5IERlZmluaXRpb25VdGlsKS4KKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuCisgICAgICogQHBhcmFtIHByb3BlcnRpZXMgTWFwIG9mIG5hbWUvcHJvcGVydHkgcGFzc2VkIHRvIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS4gTWFwIGNhbiBjb250YWlucworICAgICAqIG1vcmUgcHJvcGVydGllcyB0aGFuIHJlcXVlc3RlZC4KKyAgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBBbiBlcnJvciBvY2N1ciBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCisgICAgICovCisgICAgcHVibGljIHZvaWQgaW5pdEZhY3RvcnkoU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQsIE1hcCBwcm9wZXJ0aWVzKQorICAgICAgICB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIHsKKworICAgICAgICAvLyByZWFkIHByb3BlcnRpZXMgdmFsdWVzCisgICAgICAgIFN0cmluZyBwcm9wb3NlZEZpbGVuYW1lID0KKyAgICAgICAgICAgIChTdHJpbmcpIHByb3BlcnRpZXMuZ2V0KERFRklOSVRJT05TX0NPTkZJR19QQVJBTUVURVJfTkFNRSk7CisKKyAgICAgICAgLy8gQ29tcHV0ZSBmaWxlbmFtZXMgdG8gdXNlCisgICAgICAgIGJvb2xlYW4gaXNGaWxlU3BlY2lmaWVkID0gdHJ1ZTsKKyAgICAgICAgaWYgKHByb3Bvc2VkRmlsZW5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgcHJvcG9zZWRGaWxlbmFtZSA9IERFRkFVTFRfREVGSU5JVElPTlNfRklMRV9OQU1FOworICAgICAgICAgICAgaXNGaWxlU3BlY2lmaWVkID0gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgaW5pdEZhY3Rvcnkoc2VydmxldENvbnRleHQsIHByb3Bvc2VkRmlsZW5hbWUpOworICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIH0gY2F0Y2ggKEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgLy8gSWYgYSBmaWxlbmFtZSBpcyBzcGVjaWZpZWQsIHRocm93IGFwcHJvcHJpYXRlIGVycm9yLgorICAgICAgICAgICAgaWYgKGlzRmlsZVNwZWNpZmllZCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgIGV4LmdldE1lc3NhZ2UoKQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiIDogQ2FuJ3QgZmluZCBmaWxlICciCisgICAgICAgICAgICAgICAgICAgICAgICArIHByb3Bvc2VkRmlsZW5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICsgIiciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6YXRpb24gbWV0aG9kLgorICAgICAqIEluaXQgdGhlIGZhY3RvcnkgYnkgcmVhZGluZyBhcHByb3ByaWF0ZSBjb25maWd1cmF0aW9uIGZpbGUuCisgICAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGV4YWN0bHkgb25jZSBpbW1lZGlhdGVseSBhZnRlciBmYWN0b3J5IGNyZWF0aW9uIGluCisgICAgICogY2FzZSBvZiBpbnRlcm5hbCBjcmVhdGlvbiAoYnkgRGVmaW5pdGlvblV0aWwpLgorICAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBTZXJ2bGV0IENvbnRleHQgcGFzc2VkIHRvIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS4KKyAgICAgKiBAcGFyYW0gcHJvcG9zZWRGaWxlbmFtZSBGaWxlIG5hbWVzLCBjb21tYSBzZXBhcmF0ZWQsIHRvIHVzZSBhcyAgYmFzZSBmaWxlIG5hbWVzLgorICAgICAqIEB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIEFuIGVycm9yIG9jY3VyIGR1cmluZyBpbml0aWFsaXphdGlvbi4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBpbml0RmFjdG9yeSgKKyAgICAgICAgU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQsCisgICAgICAgIFN0cmluZyBwcm9wb3NlZEZpbGVuYW1lKQorICAgICAgICB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLCBGaWxlTm90Rm91bmRFeGNlcHRpb24geworCisgICAgICAgIGZpbGVuYW1lID0gcHJvcG9zZWRGaWxlbmFtZTsKKyAgICAgICAgbG9hZGVkID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgZGVmYXVsdEZhY3RvcnkgPSBjcmVhdGVEZWZhdWx0RmFjdG9yeShzZXJ2bGV0Q29udGV4dCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGRlZmF1bHQgZmFjdG9yeS4KKyAgICAgKiBAcmV0dXJuIERlZmF1bHQgZmFjdG9yeQorICAgICAqLworICAgIHByb3RlY3RlZCBEZWZpbml0aW9uc0ZhY3RvcnkgZ2V0RGVmYXVsdEZhY3RvcnkoKSB7CisgICAgICAgIHJldHVybiBkZWZhdWx0RmFjdG9yeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgZGVmYXVsdCBmYWN0b3J5IC4KKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQuIFVzZWQgdG8gb3BlbiBmaWxlLgorICAgICAqIEByZXR1cm4gQ3JlYXRlZCBkZWZhdWx0IGRlZmluaXRpb24gZmFjdG9yeS4KKyAgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBJZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBjcmVhdGluZyBmYWN0b3J5LgorICAgICAqIEB0aHJvd3MgRmlsZU5vdEZvdW5kRXhjZXB0aW9uIGlmIGZhY3RvcnkgY2FuJ3QgYmUgbG9hZGVkIGZyb20gZmlsZW5hbWVzLgorICAgICAqLworICAgIHByb3RlY3RlZCBEZWZpbml0aW9uc0ZhY3RvcnkgY3JlYXRlRGVmYXVsdEZhY3RvcnkoU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQpCisgICAgICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24sIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiB7CisKKyAgICAgICAgWG1sRGVmaW5pdGlvbnNTZXQgcm9vdFhtbENvbmZpZyA9IHBhcnNlWG1sS2V5RmlsZShzZXJ2bGV0Q29udGV4dCwgIiIsIG51bGwpOworCisgICAgICAgIGlmIChyb290WG1sQ29uZmlnID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBGaWxlTm90Rm91bmRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorCisgICAgICAgIHJvb3RYbWxDb25maWcucmVzb2x2ZUluaGVyaXRhbmNlcygpOworICAgICAgICByZXR1cm4gbmV3IERlZmluaXRpb25zRmFjdG9yeShyb290WG1sQ29uZmlnKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFeHRyYWN0IGtleSB0aGF0IHdpbGwgYmUgdXNlZCB0byBnZXQgdGhlIHN1YiBmYWN0b3J5LgorICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgcmVxdWVzdGVkIGRlZmluaXRpb24KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBDdXJyZW50IHNlcnZsZXQgcmVxdWVzdC4KKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQKKyAgICAgKiBAcmV0dXJuIHRoZSBrZXkgb3IgbnVsbCBpZiBub3QgZm91bmQuCisgICAgICogQHJvc2V1aWQgM0FGNkY4ODcwMThBCisgICAgICovCisgICAgcHJvdGVjdGVkIE9iamVjdCBnZXREZWZpbml0aW9uc0ZhY3RvcnlLZXkoCisgICAgICAgIFN0cmluZyBuYW1lLAorICAgICAgICBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkgeworICAgICAgICBPYmplY3Qga2V5ID0gbnVsbDsKKworICAgICAgICBIdHRwU2Vzc2lvbiBzZXNzaW9uID0gKChIdHRwU2VydmxldFJlcXVlc3QpIHJlcXVlc3QpLmdldFNlc3Npb24oZmFsc2UpOworICAgICAgICBpZiAoc2Vzc2lvbiAhPSBudWxsKSB7CisgICAgICAgICAgICBrZXkgPSBzZXNzaW9uLmdldEF0dHJpYnV0ZShGQUNUT1JZX1NFTEVDVE9SX0tFWSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4ga2V5OworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIGZhY3RvcnkgZm9yIHNwZWNpZmllZCBrZXkuCisgICAgICogSWYgY3JlYXRpb24gZmFpbGVkLCByZXR1cm4gZGVmYXVsdCBmYWN0b3J5LCBhbmQgb3V0cHV0IGFuIGVycm9yIG1lc3NhZ2UgaW4KKyAgICAgKiBjb25zb2xlLgorICAgICAqIEBwYXJhbSBrZXkKKyAgICAgKiBAcmV0dXJuIERlZmluaXRpb24gZmFjdG9yeSBmb3Igc3BlY2lmaWVkIGtleS4KKyAgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBJZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBjcmVhdGluZyBmYWN0b3J5LgorICAgICAqLworICAgIHByb3RlY3RlZCBEZWZpbml0aW9uc0ZhY3RvcnkgY3JlYXRlRmFjdG9yeSgKKyAgICAgICAgT2JqZWN0IGtleSwKKyAgICAgICAgU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQpCisgICAgICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24geworCisgICAgICAgIGlmIChrZXkgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGdldERlZmF1bHRGYWN0b3J5KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBBbHJlYWR5IGxvYWRlZCA/CisgICAgICAgIERlZmluaXRpb25zRmFjdG9yeSBmYWN0b3J5ID0gKERlZmluaXRpb25zRmFjdG9yeSkgbG9hZGVkLmdldChrZXkpOworICAgICAgICBpZiAoZmFjdG9yeSAhPSBudWxsKSB7IC8vIHllcywgc3RvcCBsb2FkaW5nCisgICAgICAgICAgICByZXR1cm4gZmFjdG9yeTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRyeSB0byBsb2FkIGZpbGUgYXNzb2NpYXRlZCB0byBrZXkuIElmIGZhaWwsIHN0b3AgYW5kIHJldHVybiBkZWZhdWx0IGZhY3RvcnkuCisgICAgICAgIFhtbERlZmluaXRpb25zU2V0IGxhc3RYbWxGaWxlID0KKyAgICAgICAgICAgIHBhcnNlWG1sS2V5RmlsZShzZXJ2bGV0Q29udGV4dCwgIl8iICsgKFN0cmluZykga2V5LCBudWxsKTsKKworICAgICAgICBpZiAobGFzdFhtbEZpbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgbG9nLndhcm4oCisgICAgICAgICAgICAgICAgIk5vIGRlZmluaXRpb24gZmFjdG9yeSBhc3NvY2lhdGVkIHRvIGtleSAnIgorICAgICAgICAgICAgICAgICAgICArIGtleQorICAgICAgICAgICAgICAgICAgICArICInLiBVc2UgZGVmYXVsdCBmYWN0b3J5IGluc3RlYWQuIik7CisKKyAgICAgICAgICAgIGZhY3RvcnkgPSBnZXREZWZhdWx0RmFjdG9yeSgpOworICAgICAgICAgICAgbG9hZGVkLnB1dChrZXksIGZhY3RvcnkpOworICAgICAgICAgICAgcmV0dXJuIGZhY3Rvcnk7CisgICAgICAgIH0KKworICAgICAgICAvLyBQYXJzZSBkZWZhdWx0IGZpbGUsIGFuZCBhZGQga2V5IGZpbGUuCisgICAgICAgIFhtbERlZmluaXRpb25zU2V0IHJvb3RYbWxDb25maWcgPSBwYXJzZVhtbEtleUZpbGUoc2VydmxldENvbnRleHQsICIiLCBudWxsKTsKKworICAgICAgICByb290WG1sQ29uZmlnLmV4dGVuZChsYXN0WG1sRmlsZSk7CisgICAgICAgIHJvb3RYbWxDb25maWcucmVzb2x2ZUluaGVyaXRhbmNlcygpOworCisgICAgICAgIGZhY3RvcnkgPSBuZXcgRGVmaW5pdGlvbnNGYWN0b3J5KHJvb3RYbWxDb25maWcpOworICAgICAgICBsb2FkZWQucHV0KGtleSwgZmFjdG9yeSk7CisKKyAgICAgICAgbG9nLmluZm8oZmFjdG9yeSk7CisKKyAgICAgICAgLy8gcmV0dXJuIGxhc3QgYXZhaWxhYmxlIGZvdW5kICEKKyAgICAgICAgcmV0dXJuIGZhY3Rvcnk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgZmlsZXMgYXNzb2NpYXRlZCB0byBwb3N0aXggaWYgdGhleSBleGlzdC4KKyAgICAgKiBGb3IgZWFjaCBuYW1lIGluIGZpbGVuYW1lcywgYXBwZW5kIHBvc3RmaXggYmVmb3JlIGZpbGUgZXh0ZW5zaW9uLAorICAgICAqIHRoZW4gdHJ5IHRvIGxvYWQgdGhlIGNvcnJlc3BvbmRpbmcgZmlsZS4KKyAgICAgKiBJZiBmaWxlIGRvZXNuJ3QgZXhpc3QsIHRyeSBuZXh0IG9uZS4gRWFjaCBmaWxlIGRlc2NyaXB0aW9uIGlzIGFkZGVkIHRvCisgICAgICogdGhlIFhtbERlZmluaXRpb25zU2V0IGRlc2NyaXB0aW9uLgorICAgICAqIFRoZSBYbWxEZWZpbml0aW9uc1NldCBkZXNjcmlwdGlvbiBpcyBjcmVhdGVkIG9ubHkgaWYgdGhlcmUgaXMgYSBkZWZpbml0aW9uIGZpbGUuCisgICAgICogSW5oZXJpdGFuY2UgaXMgbm90IHJlc29sdmVkIGluIHRoZSByZXR1cm5lZCBYbWxEZWZpbml0aW9uc1NldC4KKyAgICAgKiBJZiBubyBkZXNjcmlwdGlvbiBmaWxlIGNhbiBiZSBvcGVuZWQsIGFuZCBubyBkZWZpbmlpb24gc2V0IGlzIHByb3ZpZGVkLCByZXR1cm4gbnVsbC4KKyAgICAgKiBAcGFyYW0gcG9zdGZpeCBQb3N0Zml4IHRvIGFkZCB0byBlYWNoIGRlc2NyaXB0aW9uIGZpbGUuCisgICAgICogQHBhcmFtIHhtbERlZmluaXRpb25zIERlZmluaXRpb25zIHNldCB0byB3aGljaCBkZWZpbml0aW9ucyB3aWxsIGJlIGFkZGVkLiBJZiBudWxsLCBhIGRlZmluaXRpb25zCisgICAgICogc2V0IGlzIGNyZWF0ZWQgb24gcmVxdWVzdC4KKyAgICAgKiBAcmV0dXJuIFhtbERlZmluaXRpb25zU2V0IFRoZSBkZWZpbml0aW9ucyBzZXQgY3JlYXRlZCBvciBwYXNzZWQgYXMgcGFyYW1ldGVyLgorICAgICAqIEB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIElmIGFuIGVycm9yIGhhcHBlbiBkdXJpbmcgZmlsZSBwYXJzaW5nLgorICAgICAqLworICAgIHByaXZhdGUgWG1sRGVmaW5pdGlvbnNTZXQgcGFyc2VYbWxLZXlGaWxlKAorICAgICAgICBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgU3RyaW5nIHBvc3RmaXgsCisgICAgICAgIFhtbERlZmluaXRpb25zU2V0IHhtbERlZmluaXRpb25zKQorICAgICAgICB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHBvc3RmaXggIT0gbnVsbCAmJiBwb3N0Zml4Lmxlbmd0aCgpID09IDApCisgICAgICAgICAgICBwb3N0Zml4ID0gbnVsbDsKKworICAgICAgICBTdHJpbmcgZnVsbE5hbWUgPSBjb25jYXRQb3N0Zml4KGZpbGVuYW1lLCBwb3N0Zml4KTsKKyAgICAgICAgcmV0dXJuIHBhcnNlWG1sRmlsZShzZXJ2bGV0Q29udGV4dCwgZnVsbE5hbWUsIHhtbERlZmluaXRpb25zKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBzcGVjaWZpZWQgeG1sIGZpbGUgYW5kIGFkZCBkZWZpbml0aW9uIHRvIHNwZWNpZmllZCBkZWZpbml0aW9ucyBzZXQuCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBsb2FkIHNldmVyYWwgZGVzY3JpcHRpb24gZmlsZXMgaW4gb25lIGluc3RhbmNlcyBsaXN0LgorICAgICAqIElmIGZpbGVuYW1lIGV4aXN0IGFuZCBkZWZpbml0aW9uIHNldCBpcyBudWxsLCBjcmVhdGUgYSBuZXcgc2V0LiBPdGhlcndpc2UsIHJldHVybgorICAgICAqIHBhc3NlZCBkZWZpbml0aW9uIHNldCAoY2FuIGJlIG51bGwpLgorICAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBDdXJyZW50IHNlcnZsZXQgY29udGV4dC4gVXNlZCB0byBvcGVuIGZpbGUuCisgICAgICogQHBhcmFtIGZpbGVuYW1lIE5hbWUgb2YgZmlsZSB0byBwYXJzZS4KKyAgICAgKiBAcGFyYW0geG1sRGVmaW5pdGlvbnMgRGVmaW5pdGlvbnMgc2V0IHRvIHdoaWNoIGRlZmluaXRpb25zIHdpbGwgYmUgYWRkZWQuIElmIG51bGwsIGEgZGVmaW5pdGlvbnMKKyAgICAgKiBzZXQgaXMgY3JlYXRlZCBvbiByZXF1ZXN0LgorICAgICAqIEByZXR1cm4gWG1sRGVmaW5pdGlvbnNTZXQgVGhlIGRlZmluaXRpb25zIHNldCBjcmVhdGVkIG9yIHBhc3NlZCBhcyBwYXJhbWV0ZXIuCisgICAgICogQHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gSWYgYW4gZXJyb3IgaGFwcGVuIGR1cmluZyBmaWxlIHBhcnNpbmcuCisgICAgICovCisgICAgcHJpdmF0ZSBYbWxEZWZpbml0aW9uc1NldCBwYXJzZVhtbEZpbGUoCisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LAorICAgICAgICBTdHJpbmcgZmlsZW5hbWUsCisgICAgICAgIFhtbERlZmluaXRpb25zU2V0IHhtbERlZmluaXRpb25zKQorICAgICAgICB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIHsKKworICAgICAgICB0cnkgeworICAgICAgICAgICAgbG9nLmRlYnVnKCJUcnlpbmcgdG8gbG9hZCAnIiArIGZpbGVuYW1lICsgIicuIik7CisKKyAgICAgICAgICAgIElucHV0U3RyZWFtIGlucHV0ID0gc2VydmxldENvbnRleHQuZ2V0UmVzb3VyY2VBc1N0cmVhbShmaWxlbmFtZSk7CisgICAgICAgICAgICBpZiAoaW5wdXQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiB4bWxEZWZpbml0aW9uczsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgeG1sUGFyc2VyID0gbmV3IFhtbFBhcnNlcigpOworCisgICAgICAgICAgICAvLyBDaGVjayBpZiBkZWZpbml0aW9uIHNldCBhbHJlYWR5IGV4aXN0LgorICAgICAgICAgICAgaWYgKHhtbERlZmluaXRpb25zID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB4bWxEZWZpbml0aW9ucyA9IG5ldyBYbWxEZWZpbml0aW9uc1NldCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB4bWxQYXJzZXIucGFyc2UoaW5wdXQsIHhtbERlZmluaXRpb25zKTsKKworICAgICAgICB9IGNhdGNoIChTQVhFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGxvZy5kZWJ1ZygiRXJyb3Igd2hpbGUgcGFyc2luZyBmaWxlICciICsgZmlsZW5hbWUgKyAiJy4iLCBleCk7CisKKyAgICAgICAgICAgIHRocm93IG5ldyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIkVycm9yIHdoaWxlIHBhcnNpbmcgZmlsZSAnIiArIGZpbGVuYW1lICsgIicuICIgKyBleC5nZXRNZXNzYWdlKCksCisgICAgICAgICAgICAgICAgZXgpOworCisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJJTyBFcnJvciB3aGlsZSBwYXJzaW5nIGZpbGUgJyIgKyBmaWxlbmFtZSArICInLiAiICsgZXguZ2V0TWVzc2FnZSgpLAorICAgICAgICAgICAgICAgIGV4KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB4bWxEZWZpbml0aW9uczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25jYXQgcG9zdGZpeCB0byB0aGUgbmFtZS4gVGFrZSBjYXJlIG9mIGV4aXN0aW5nIGZpbGVuYW1lIGV4dGVuc2lvbi4KKyAgICAgKiBUcmFuc2Zvcm0gdGhlIGdpdmVuIG5hbWUgIm5hbWUuZXh0IiB0byBoYXZlICJuYW1lIiArICJwb3N0Zml4IiArICJleHQiLgorICAgICAqIElmIHRoZXJlIGlzIG5vIGV4dCwgcmV0dXJuICJuYW1lIiArICJwb3N0Zml4Ii4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBjb25jYXRQb3N0Zml4KFN0cmluZyBuYW1lLCBTdHJpbmcgcG9zdGZpeCkgeworICAgICAgICBpZiAocG9zdGZpeCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vcG9zdGZpeCA9ICJfIiArIHBvc3RmaXg7CisgICAgICAgIC8vIFNlYXJjaCBmaWxlIG5hbWUgZXh0ZW5zaW9uLgorICAgICAgICAvLyB0YWtlIGNhcmUgb2YgVW5peCBmaWxlcyBzdGFydGluZyB3aXRoIC4KKyAgICAgICAgaW50IGRvdEluZGV4ID0gbmFtZS5sYXN0SW5kZXhPZigiLiIpOworICAgICAgICBpbnQgbGFzdE5hbWVTdGFydCA9IG5hbWUubGFzdEluZGV4T2YoamF2YS5pby5GaWxlLnBhdGhTZXBhcmF0b3IpOworICAgICAgICBpZiAoZG90SW5kZXggPCAxIHx8IGRvdEluZGV4IDwgbGFzdE5hbWVTdGFydCkKKyAgICAgICAgICAgIHJldHVybiBuYW1lICsgcG9zdGZpeDsKKworICAgICAgICBTdHJpbmcgZXh0ID0gbmFtZS5zdWJzdHJpbmcoZG90SW5kZXgpOworICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoMCwgZG90SW5kZXgpOworICAgICAgICByZXR1cm4gbmFtZSArIHBvc3RmaXggKyBleHQ7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9jaGFubmVsL1NlbGVjdENoYW5uZWxBY3Rpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL2NoYW5uZWwvU2VsZWN0Q2hhbm5lbEFjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4NDYzYzEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9jaGFubmVsL1NlbGVjdENoYW5uZWxBY3Rpb24uamF2YQpAQCAtMCwwICsxLDcxIEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMuY2hhbm5lbDsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTZWxlY3RDaGFubmVsQWN0aW9uIGV4dGVuZHMgQWN0aW9uIHsKKworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIFByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorICAgICAqIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKyAgICAgKiBSZXR1cm4gYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2UgZGVzY3JpYmluZyB3aGVyZSBhbmQgaG93CisgICAgICogY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgcmVzcG9uc2UgaGFzCisgICAgICogYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gYWN0aW9uRm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSkKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gaWYgdGhlIGFwcGxpY2F0aW9uIGJ1c2luZXNzIGxvZ2ljIHRocm93cworICAgICAqICBhbiBleGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgQWN0aW9uRm9yd2FyZCBleGVjdXRlKAorCQkJCSBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisJCQkJIEFjdGlvbkZvcm0gZm9ybSwKKwkJCQkgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisJCQkJIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisJdGhyb3dzIEV4Y2VwdGlvbiB7CisKKwkvLyBFeHRyYWN0IHBhcmFtZXRlcnMgd2Ugd2lsbCBuZWVkCisgICAgU3RyaW5nIHJlcXVlc3RlZCA9IChTdHJpbmcpcmVxdWVzdC5nZXRQYXJhbWV0ZXIoICJjaGFubmVsIiApOworCisgICAgaWYoIHJlcXVlc3RlZCA9PSBudWxsICkKKyAJICAgIHJldHVybiAobWFwcGluZy5maW5kRm9yd2FyZCgiZmFpbGVkIikpOworCisgICAgICAvLyBzZXQgaW4gc2Vzc2lvbgorICAgIEh0dHBTZXNzaW9uIHNlc3Npb24gPSByZXF1ZXN0LmdldFNlc3Npb24oZmFsc2UpOworICAgIGlmIChzZXNzaW9uICE9IG51bGwpCisgICAgICBzZXNzaW9uLnNldEF0dHJpYnV0ZShDaGFubmVsRmFjdG9yeVNldC5GQUNUT1JZX1NFTEVDVE9SX0tFWSwgcmVxdWVzdGVkKTsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJTZXQgY2hhbm5lbCB0byAnIiArIHJlcXVlc3RlZCArICInIiApOworCSAgcmV0dXJuIChtYXBwaW5nLmZpbmRGb3J3YXJkKCJzdWNjZXNzIikpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvZGV2MS0xL0FwcGxpY2F0aW9uUmVzb3VyY2VzLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9kZXYxLTEvQXBwbGljYXRpb25SZXNvdXJjZXMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTJhNTFiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvZGV2MS0xL0FwcGxpY2F0aW9uUmVzb3VyY2VzLnByb3BlcnRpZXMKQEAgLTAsMCArMSw2OCBAQAorYnV0dG9uLmNhbmNlbD1DYW5jZWwKK2J1dHRvbi5jb25maXJtPUNvbmZpcm0KK2J1dHRvbi5yZXNldD1SZXNldAorYnV0dG9uLnNhdmU9U2F2ZQorY2hhbmdlLm1lc3NhZ2U9WW91ciBwYXNzd29yZCBoYXMgZXhwaXJlZC4gIFBsZWFzZSBhc2sgdGhlIHN5c3RlbSBhZG1pbmlzdHJhdG9yIHRvIGNoYW5nZSBpdC4KK2NoYW5nZS50cnk9VHJ5IEFnYWluCitjaGFuZ2UudGl0bGU9UGFzc3dvcmQgSGFzIEV4cGlyZWQKK2RhdGFiYXNlLmxvYWQ9Q2Fubm90IGxvYWQgZGF0YWJhc2UgZnJvbSB7MH0KK2Vycm9yLmRhdGFiYXNlLm1pc3Npbmc9PGxpPlVzZXIgZGF0YWJhc2UgaXMgbWlzc2luZywgY2Fubm90IHZhbGlkYXRlIGxvZ29uIGNyZWRlbnRpYWxzPC9saT4KK2Vycm9yLmZyb21BZGRyZXNzLmZvcm1hdD08bGk+SW52YWxpZCBmb3JtYXQgZm9yIEZyb20gQWRkcmVzczwvbGk+CitlcnJvci5mcm9tQWRkcmVzcy5yZXF1aXJlZD08bGk+RnJvbSBBZGRyZXNzIGlzIHJlcXVpcmVkPC9saT4KK2Vycm9yLmZ1bGxOYW1lLnJlcXVpcmVkPTxsaT5GdWxsIE5hbWUgaXMgcmVxdWlyZWQ8L2xpPgorZXJyb3IuaG9zdC5yZXF1aXJlZD08bGk+TWFpbCBTZXJ2ZXIgaXMgcmVxdWlyZWQ8L2xpPgorZXJyb3Iubm9TdWJzY3JpcHRpb249PGxpPk5vIFN1YnNjcmlwdGlvbiBiZWFuIGluIHVzZXIgc2Vzc2lvbjwvbGk+CitlcnJvci5wYXNzd29yZC5yZXF1aXJlZD08bGk+UGFzc3dvcmQgaXMgcmVxdWlyZWQ8L2xpPgorZXJyb3IucGFzc3dvcmQyLnJlcXVpcmVkPTxsaT5Db25maXJtYXRpb24gcGFzc3dvcmQgaXMgcmVxdWlyZWQ8L2xpPgorZXJyb3IucGFzc3dvcmQubWF0Y2g9PGxpPlBhc3N3b3JkIGFuZCBjb25maXJtYXRpb24gcGFzc3dvcmQgbXVzdCBtYXRjaDwvbGk+CitlcnJvci5wYXNzd29yZC5taXNtYXRjaD08bGk+SW52YWxpZCB1c2VybmFtZSBhbmQvb3IgcGFzc3dvcmQsIHBsZWFzZSB0cnkgYWdhaW48L2xpPgorZXJyb3IucmVwbHlUb0FkZHJlc3MuZm9ybWF0PTxsaT5JbnZhbGlkIGZvcm1hdCBmb3IgUmVwbHkgVG8gQWRkcmVzczwvbGk+CitlcnJvci50cmFuc2FjdGlvbi50b2tlbj08bGk+Q2Fubm90IHN1Ym1pdCB0aGlzIGZvcm0gb3V0IG9mIG9yZGVyPC9saT4KK2Vycm9yLnR5cGUuaW52YWxpZD08bGk+U2VydmVyIFR5cGUgbXVzdCBiZSAnaW1hcCcgb3IgJ3BvcDMnPC9saT4KK2Vycm9yLnR5cGUucmVxdWlyZWQ9PGxpPlNlcnZlciBUeXBlIGlzIHJlcXVpcmVkPC9saT4KK2Vycm9yLnVzZXJuYW1lLnJlcXVpcmVkPTxsaT5Vc2VybmFtZSBpcyByZXF1aXJlZDwvbGk+CitlcnJvci51c2VybmFtZS51bmlxdWU9PGxpPlRoYXQgdXNlcm5hbWUgaXMgYWxyZWFkeSBpbiB1c2UgLSBwbGVhc2Ugc2VsZWN0IGFub3RoZXI8L2xpPgorZXJyb3JzLmZvb3Rlcj08L3VsPjxocj4KK2Vycm9ycy5oZWFkZXI9PGgzPjxmb250IGNvbG9yPSJyZWQiPlZhbGlkYXRpb24gRXJyb3I8L2ZvbnQ+PC9oMz5Zb3UgbXVzdCBjb3JyZWN0IHRoZSBmb2xsb3dpbmcgZXJyb3IocykgYmVmb3JlIHByb2NlZWRpbmc6PHVsPgorZXJyb3JzLmlvRXhjZXB0aW9uPUkvTyBleGNlcHRpb24gcmVuZGVyaW5nIGVycm9yIG1lc3NhZ2VzOiB7MH0KK2hlYWRpbmcuYXV0b0Nvbm5lY3Q9QXV0bworaGVhZGluZy5zdWJzY3JpcHRpb25zPUN1cnJlbnQgU3Vic2NyaXB0aW9ucworaGVhZGluZy5ob3N0PUhvc3QgTmFtZQoraGVhZGluZy51c2VyPVVzZXIgTmFtZQoraGVhZGluZy50eXBlPVNlcnZlciBUeXBlCitoZWFkaW5nLmFjdGlvbj1BY3Rpb24KK2luZGV4LmhlYWRpbmc9TWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uIE9wdGlvbnMKK2luZGV4LmxvZ29uPUxvZyBvbiB0byB0aGUgTWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uCitpbmRleC5yZWdpc3RyYXRpb249UmVnaXN0ZXIgd2l0aCB0aGUgTWFpbFJlYWRlciBEZW1vbnN0cmF0aW9uIEFwcGxpY2F0aW9uCitpbmRleC50aXRsZT1NYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24gKFN0cnV0cyAxLjEtZGV2KQoraW5kZXgudG91cj1BIFdhbGtpbmcgVG91ciBvZiB0aGUgRXhhbXBsZSBBcHBsaWNhdGlvbgorbGlua1N1YnNjcmlwdGlvbi5pbz1JL08gRXJyb3I6IHswfQorbGlua1N1YnNjcmlwdGlvbi5ub1N1YnNjcmlwdGlvbj1ObyBzdWJzY3JpcHRpb24gdW5kZXIgYXR0cmlidXRlIHswfQorbGlua1VzZXIuaW89SS9PIEVycm9yOiB7MH0KK2xpbmtVc2VyLm5vVXNlcj1ObyB1c2VyIHVuZGVyIGF0dHJpYnV0ZSB7MH0KK2xvZ29uLnRpdGxlPU1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbiAtIExvZ29uCittYWluTWVudS5oZWFkaW5nPU1haW4gTWVudSBPcHRpb25zIGZvciAKK21haW5NZW51LmxvZ29mZj1Mb2cgb2ZmIE1haWxSZWFkZXIgRGVtb25zdHJhdGlvbiBBcHBsaWNhdGlvbgorbWFpbk1lbnUucmVnaXN0cmF0aW9uPUVkaXQgeW91ciB1c2VyIHJlZ2lzdHJhdGlvbiBwcm9maWxlCittYWluTWVudS50aXRsZT1NYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24gLSBNYWluIE1lbnUKK29wdGlvbi5pbWFwPUlNQVAgUHJvdG9jb2wKK29wdGlvbi5wb3AzPVBPUDMgUHJvdG9jb2wKK3Byb21wdC5hdXRvQ29ubmVjdD1BdXRvIENvbm5lY3Q6Citwcm9tcHQuZnJvbUFkZHJlc3M9RnJvbSBBZGRyZXNzOgorcHJvbXB0LmZ1bGxOYW1lPUZ1bGwgTmFtZToKK3Byb21wdC5tYWlsSG9zdG5hbWU9TWFpbCBTZXJ2ZXI6Citwcm9tcHQubWFpbFBhc3N3b3JkPU1haWwgUGFzc3dvcmQ6Citwcm9tcHQubWFpbFNlcnZlclR5cGU9U2VydmVyIFR5cGU6Citwcm9tcHQubWFpbFVzZXJuYW1lPU1haWwgVXNlcm5hbWU6Citwcm9tcHQucGFzc3dvcmQ9UGFzc3dvcmQ6Citwcm9tcHQucGFzc3dvcmQyPShSZXBlYXQpIFBhc3N3b3JkOgorcHJvbXB0LnJlcGx5VG9BZGRyZXNzPVJlcGx5IFRvIEFkZHJlc3M6Citwcm9tcHQudXNlcm5hbWU9VXNlcm5hbWU6CityZWdpc3RyYXRpb24uYWRkU3Vic2NyaXB0aW9uPUFkZAorcmVnaXN0cmF0aW9uLmRlbGV0ZVN1YnNjcmlwdGlvbj1EZWxldGUKK3JlZ2lzdHJhdGlvbi5lZGl0U3Vic2NyaXB0aW9uPUVkaXQKK3JlZ2lzdHJhdGlvbi50aXRsZS5jcmVhdGU9UmVnaXN0ZXIgZm9yIHRoZSBNYWlsUmVhZGVyIERlbW9zdHJhdGlvbiBBcHBsaWNhdGlvbgorcmVnaXN0cmF0aW9uLnRpdGxlLmVkaXQ9RWRpdCBSZWdpc3RyYXRpb24gZm9yIHRoZSBNYWlsUmVhZGVyIERlbW9uc3RyYXRpb24gQXBwbGljYXRpb24KK3N1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGU9Q3JlYXRlIE5ldyBNYWlsIFN1YnNjcmlwdGlvbgorc3Vic2NyaXB0aW9uLnRpdGxlLmRlbGV0ZT1EZWxldGUgRXhpc3RpbmcgTWFpbCBTdWJzY3JpcHRpb24KK3N1YnNjcmlwdGlvbi50aXRsZS5lZGl0PUVkaXQgRXhpc3RpbmcgTWFpbCBTdWJzY3JpcHRpb24KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL2RldjEtMS9BcHBsaWNhdGlvblJlc291cmNlc19qYS5wcm9wZXJ0aWVzIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvZGV2MS0xL0FwcGxpY2F0aW9uUmVzb3VyY2VzX2phLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU0YzcyZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL2RldjEtMS9BcHBsaWNhdGlvblJlc291cmNlc19qYS5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsNjggQEAKK2J1dHRvbi5jYW5jZWw9XHUzMGFkXHUzMGUzXHUzMGYzXHUzMGJiXHUzMGViCitidXR0b24uY29uZmlybT1cdTc4YmFcdThhOGQKK2J1dHRvbi5yZXNldD1cdTMwZWFcdTMwYmJcdTMwYzNcdTMwYzgKK2J1dHRvbi5zYXZlPVx1NGZkZFx1NWI1OAorY2hhbmdlLm1lc3NhZ2U9XHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5XHUzMDZlXHU2NzA5XHU1MmI5XHU2NzFmXHU5NjUwXHUzMDRjXHU5MDRlXHUzMDRlXHUzMDdlXHUzMDU3XHUzMDVmXHUzMDAyXHUzMGI3XHUzMGI5XHUzMGM2XHUzMGUwXHU3YmExXHU3NDA2XHU4MDA1XHUzMDZiXHUzMDRhXHU1NTRmXHUzMDQ0XHU1NDA4XHUzMDhmXHUzMDViXHU0ZTBiXHUzMDU1XHUzMDQ0XHUzMDAyCitjaGFuZ2UudHJ5PVx1MzA4Mlx1MzA0Nlx1NEUwMFx1NUVBNlx1OEE2Nlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NAorY2hhbmdlLnRpdGxlPVx1MzBkMVx1MzBiOVx1MzBlZlx1MzBmY1x1MzBjOVx1NjcxZlx1OTY1MFx1NTIwN1x1MzA4YworZGF0YWJhc2UubG9hZD0gezB9IFx1MzA0Qlx1MzA4OVx1MzBDN1x1MzBGQ1x1MzBCRlx1MzBEOVx1MzBGQ1x1MzBCOVx1MzA5Mlx1MzBFRFx1MzBGQ1x1MzBDOVx1MzA2N1x1MzA0RFx1MzA3RVx1MzA1Qlx1MzA5MworZXJyb3IuZGF0YWJhc2UubWlzc2luZz08bGk+XHUzMEU2XHUzMEZDXHUzMEI2XHUzMEM3XHUzMEZDXHUzMEJGXHUzMEQ5XHUzMEZDXHUzMEI5XHUzMDRDXHU4OThCXHUzMDY0XHUzMDRCXHUzMDhBXHUzMDdFXHUzMDVCXHUzMDkzXHUzMDAyXHUzMEVEXHUzMEIwXHUzMEFBXHUzMEYzXHUzMDZFXHU4QThEXHU4QTNDXHUzMDRDXHU1MUZBXHU2NzY1XHUzMDdFXHUzMDVCXHUzMDkzPC9saT4KK2Vycm9yLmZyb21BZGRyZXNzLmZvcm1hdD08bGk+RnJvbVx1MzBBMlx1MzBDOVx1MzBFQ1x1MzBCOVx1MzA2RVx1NjZGOFx1NUYwRlx1MzA0Q1x1NkI2M1x1MzA1N1x1MzA0Rlx1MzA0Mlx1MzA4QVx1MzA3RVx1MzA1Qlx1MzA5MzwvbGk+CitlcnJvci5mcm9tQWRkcmVzcy5yZXF1aXJlZD08bGk+RnJvbVx1MzBBMlx1MzBDOVx1MzBFQ1x1MzBCOVx1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NDwvbGk+CitlcnJvci5mdWxsTmFtZS5yZXF1aXJlZD08bGk+XHUzMEQ1XHUzMEVCXHUzMENEXHUzMEZDXHUzMEUwXHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0PC9saT4KK2Vycm9yLmhvc3QucmVxdWlyZWQ9PGxpPlx1MzBFMVx1MzBGQ1x1MzBFQlx1MzBCNVx1MzBGQ1x1MzBEMFx1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NDwvbGk+CitlcnJvci5ub1N1YnNjcmlwdGlvbj08bGk+XHUzMGJiXHUzMGMzXHUzMGI3XHUzMGU3XHUzMGYzXHU0ZTJkXHUzMDZiU3Vic2NyaXB0aW9uIGJlYW5cdTMwNGNcdTMwNDJcdTMwOGFcdTMwN2VcdTMwNWJcdTMwOTM8L2xpPgorZXJyb3IucGFzc3dvcmQucmVxdWlyZWQ9PGxpPlx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NDwvbGk+CitlcnJvci5wYXNzd29yZDIucmVxdWlyZWQ9PGxpPlx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOShcdTc4QkFcdThBOERcdTc1MjgpXHUzMDkyXHU1MTY1XHU1MjlCXHUzMDU3XHUzMDY2XHUzMDRGXHUzMDYwXHUzMDU1XHUzMDQ0PC9saT4KK2Vycm9yLnBhc3N3b3JkLm1hdGNoPTxsaT5cdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNjhcdTc4QkFcdThBOERcdTc1MjhcdTMwRDFcdTMwQjlcdTMwRUZcdTMwRkNcdTMwQzlcdTMwNENcdTRFMDBcdTgxRjRcdTMwNTdcdTMwNjZcdTMwNDRcdTMwN0VcdTMwNUJcdTMwOTM8L2xpPgorZXJyb3IucGFzc3dvcmQubWlzbWF0Y2g9PGxpPlx1MzBFNlx1MzBGQ1x1MzBCNlx1NTQwRFx1MzA3RVx1MzA1Rlx1MzA2Rlx1MzBEMVx1MzBCOVx1MzBFRlx1MzBGQ1x1MzBDOVx1MzA0Q1x1NEUwRFx1NkI2M1x1MzA2N1x1MzA1OVx1MzAwMlx1NTE4RFx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NDwvbGk+CitlcnJvci5yZXBseVRvQWRkcmVzcy5mb3JtYXQ9PGxpPlx1OEZENFx1NEZFMVx1MzBBMlx1MzBDOVx1MzBFQ1x1MzBCOVx1MzA2RVx1NjZGOFx1NUYwRlx1MzA0Q1x1NkI2M1x1MzA1N1x1MzA0Rlx1MzA0Mlx1MzA4QVx1MzA3RVx1MzA1Qlx1MzA5MzwvbGk+CitlcnJvci50cmFuc2FjdGlvbi50b2tlbj08bGk+XHUzMDUzXHUzMDZFXHUzMEQ1XHUzMEE5XHUzMEZDXHUzMEUwXHUzMDZFXHU1MTg1XHU1QkI5XHUzMDRDXHU2QjYzXHUzMDU3XHUzMDRGXHUzMDZBXHUzMDQ0XHUzMDVGXHUzMDgxXHU5MDAxXHU0RkUxXHUzMDU5XHUzMDhCXHUzMDUzXHUzMDY4XHUzMDRDXHU1MUZBXHU2NzY1XHUzMDdFXHUzMDVCXHUzMDkzPC9saT4KK2Vycm9yLnR5cGUuaW52YWxpZD08bGk+XHUzMEI1XHUzMEZDXHUzMEQwXHUzMEJGXHUzMEE0XHUzMEQ3XHUzMDZGICdpbWFwJyBcdTMwNEIgJ3BvcDMnXHUzMDZFXHUzMDY5XHUzMDYxXHUzMDg5XHUzMDRCXHUzMDY3XHUzMDZBXHUzMDUxXHUzMDhDXHUzMDcwXHUzMDZBXHUzMDhBXHUzMDdFXHUzMDVCXHUzMDkzPC9saT4KK2Vycm9yLnR5cGUucmVxdWlyZWQ9PGxpPlx1MzBCNVx1MzBGQ1x1MzBEMFx1MzBCRlx1MzBBNFx1MzBEN1x1MzA5Mlx1NTE2NVx1NTI5Qlx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NDwvbGk+CitlcnJvci51c2VybmFtZS5yZXF1aXJlZD08bGk+XHUzMGU2XHUzMGZjXHUzMGI2XHU1NDBkXHUzMDkyXHU1MTY1XHU1MjliXHUzMDU3XHUzMDY2XHUzMDRmXHUzMDYwXHUzMDU1XHUzMDQ0XHUzMDAyPC9saT4KK2Vycm9yLnVzZXJuYW1lLnVuaXF1ZT08bGk+XHUzMDVEXHUzMDZFXHUzMEU2XHUzMEZDXHUzMEI2XHU1NDBEXHUzMDZGXHU2NUUyXHUzMDZCXHU0RjdGXHU3NTI4XHUzMDU1XHUzMDhDXHUzMDY2XHUzMDQ0XHUzMDdFXHUzMDU5XHUzMDAyIFx1NTIyNVx1MzA2RVx1MzBFNlx1MzBGQ1x1MzBCNlx1NTQwRFx1MzA5Mlx1OTA3OFx1NjI5RVx1MzA1N1x1MzA2Nlx1MzA0Rlx1MzA2MFx1MzA1NVx1MzA0NDwvbGk+CitlcnJvcnMuZm9vdGVyPTwvdWw+PGhyPgorZXJyb3JzLmhlYWRlcj08aDM+PGZvbnQgY29sb3I9InJlZCI+XHU1MTY1XHU1MjliXHUzMGMxXHUzMGE3XHUzMGMzXHUzMGFmXHUzMGE4XHUzMGU5XHUzMGZjPC9mb250PjwvaDM+XHU0ZWU1XHU0ZTBiXHUzMDZlXHUzMGE4XHUzMGU5XHUzMGZjXHUzMDkyXHU3OGJhXHU4YThkXHUzMDU3XHUzMDY2XHUzMDRmXHUzMDYwXHUzMDU1XHUzMDQ0Ojx1bD4KK2Vycm9ycy5pb0V4Y2VwdGlvbj1JL09cdTRmOGJcdTU5MTZcdTMwNGNcdTc2N2FcdTc1MWZcdTMwNTdcdTMwN2VcdTMwNTdcdTMwNWY6IHswfQoraGVhZGluZy5hdXRvQ29ubmVjdD1cdTgxZWFcdTUyZDVcdTYzYTVcdTdkOWEKK2hlYWRpbmcuc3Vic2NyaXB0aW9ucz1cdTczZmVcdTU3MjhcdTMwNmVcdThjZmNcdThhYWRcdTYwYzVcdTU4MzEKK2hlYWRpbmcuaG9zdD1cdTMwZGJcdTMwYjlcdTMwYzhcdTU0MGQKK2hlYWRpbmcudXNlcj1cdTMwZTZcdTMwZmNcdTMwYjZcdTU0MGQKK2hlYWRpbmcudHlwZT1cdTMwYjVcdTMwZmNcdTMwZDBcdTMwYmZcdTMwYTRcdTMwZDcKK2hlYWRpbmcuYWN0aW9uPVx1NjRjZFx1NGY1YworaW5kZXguaGVhZGluZz1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIFx1MzBhYVx1MzBkN1x1MzBiN1x1MzBlN1x1MzBmMworaW5kZXgubG9nb249TWFpbFJlYWRlclx1MzBjN1x1MzBlMlx1MzBhMlx1MzBkN1x1MzBlYVx1MzBiMVx1MzBmY1x1MzBiN1x1MzBlN1x1MzBmMyAtIFx1MzBlZFx1MzBiMFx1MzBhYVx1MzBmMworaW5kZXgucmVnaXN0cmF0aW9uPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZTZcdTMwZmNcdTMwYjZcdTc2N2JcdTkzMzIKK2luZGV4LnRpdGxlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMoU3RydXRzIDEuMC1iMSkKK2luZGV4LnRvdXI9XHUzMGI1XHUzMGYzXHUzMGQ3XHUzMGViXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzXHUzMDkyXHU2NTYzXHU3YjU2XHUzMDU5XHUzMDhiCitsaW5rU3Vic2NyaXB0aW9uLmlvPUkvT1x1MzBhOFx1MzBlOVx1MzBmYzogezB9CitsaW5rU3Vic2NyaXB0aW9uLm5vU3Vic2NyaXB0aW9uPVx1NWM1ZVx1NjAyNyB7MH0gXHUzMDZiXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxXHUzMDRjXHU1YjU4XHU1NzI4XHUzMDU3XHUzMDdlXHUzMDViXHUzMDkzCitsaW5rVXNlci5pbz1JL09cdTMwYThcdTMwZTlcdTMwZmM6IHswfQorbGlua1VzZXIubm9Vc2VyPVx1NWM1ZVx1NjAyNyB7MH0gXHUzMDZiXHUzMGU2XHUzMGZjXHUzMGI2XHU2MGM1XHU1ODMxXHUzMDRjXHU1YjU4XHU1NzI4XHUzMDU3XHUzMDdlXHUzMDViXHUzMDkzCitsb2dvbi50aXRsZT1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGVkXHUzMGIwXHUzMGFhXHUzMGYzCittYWluTWVudS5oZWFkaW5nPVx1MzBlMVx1MzBhNFx1MzBmM1x1MzBlMVx1MzBjYlx1MzBlNVx1MzBmYworbWFpbk1lbnUubG9nb2ZmPU1haWxSZWFkZXIgXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzXHUzMDZlXHUzMGVkXHUzMGIwXHUzMGFhXHUzMGQ1CittYWluTWVudS5yZWdpc3RyYXRpb249XHUzMGQ3XHUzMGVkXHUzMGQ1XHUzMGExXHUzMGE0XHUzMGViXHUzMDZlXHU3ZGU4XHU5NmM2CittYWluTWVudS50aXRsZT1NYWlsUmVhZGVyXHUzMGM3XHUzMGUyXHUzMGEyXHUzMGQ3XHUzMGVhXHUzMGIxXHUzMGZjXHUzMGI3XHUzMGU3XHUzMGYzIC0gXHUzMGUxXHUzMGE0XHUzMGYzXHUzMGUxXHUzMGNiXHUzMGU1XHUzMGZjCitvcHRpb24uaW1hcD1JTUFQIFx1MzBkN1x1MzBlZFx1MzBjOFx1MzBiM1x1MzBlYgorb3B0aW9uLnBvcDM9UE9QMyBcdTMwZDdcdTMwZWRcdTMwYzhcdTMwYjNcdTMwZWIKK3Byb21wdC5hdXRvQ29ubmVjdD1cdTgxZWFcdTUyZDVcdTYzYTVcdTdkOWE6Citwcm9tcHQuZnJvbUFkZHJlc3M9RnJvbVx1MzBhMlx1MzBjOVx1MzBlY1x1MzBiOToKK3Byb21wdC5mdWxsTmFtZT1cdTMwZDVcdTMwZWJcdTMwY2RcdTMwZmNcdTMwZTA6Citwcm9tcHQubWFpbEhvc3RuYW1lPVx1MzBlMVx1MzBmY1x1MzBlYlx1MzBiNVx1MzBmY1x1MzBkMDoKK3Byb21wdC5tYWlsUGFzc3dvcmQ9XHUzMGUxXHUzMGZjXHUzMGViXHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5OgorcHJvbXB0Lm1haWxTZXJ2ZXJUeXBlPVx1MzBiNVx1MzBmY1x1MzBkMFx1MzBiZlx1MzBhNFx1MzBkNzoKK3Byb21wdC5tYWlsVXNlcm5hbWU9XHUzMGUxXHUzMGZjXHUzMGViXHUzMGU2XHUzMGZjXHUzMGI2XHU1NDBkOgorcHJvbXB0LnBhc3N3b3JkPVx1MzBkMVx1MzBiOVx1MzBlZlx1MzBmY1x1MzBjOToKK3Byb21wdC5wYXNzd29yZDI9XHUzMGQxXHUzMGI5XHUzMGVmXHUzMGZjXHUzMGM5KFx1NzhiYVx1OGE4ZFx1NzUyOCk6Citwcm9tcHQucmVwbHlUb0FkZHJlc3M9XHU4ZmQ0XHU0ZmUxXHUzMGEyXHUzMGM5XHUzMGVjXHUzMGI5OgorcHJvbXB0LnVzZXJuYW1lPVx1MzBlNlx1MzBmY1x1MzBiNlx1NTQwZDoKK3JlZ2lzdHJhdGlvbi5hZGRTdWJzY3JpcHRpb249XHU2NWIwXHU4OThmXHU0ZjVjXHU2MjEwCityZWdpc3RyYXRpb24uZGVsZXRlU3Vic2NyaXB0aW9uPVx1NTI0YVx1OTY2NAorcmVnaXN0cmF0aW9uLmVkaXRTdWJzY3JpcHRpb249XHU3ZGU4XHU5NmM2CityZWdpc3RyYXRpb24udGl0bGUuY3JlYXRlPU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZTZcdTMwZmNcdTMwYjZcdTc2N2JcdTkzMzIKK3JlZ2lzdHJhdGlvbi50aXRsZS5lZGl0PU1haWxSZWFkZXJcdTMwYzdcdTMwZTJcdTMwYTJcdTMwZDdcdTMwZWFcdTMwYjFcdTMwZmNcdTMwYjdcdTMwZTdcdTMwZjMgLSBcdTMwZDdcdTMwZWRcdTMwZDVcdTMwYTFcdTMwYTRcdTMwZWJcdTdkZThcdTk2YzYKK3N1YnNjcmlwdGlvbi50aXRsZS5jcmVhdGU9XHUzMGUxXHUzMGZjXHUzMGViXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxXHUzMDZlXHU2NWIwXHU4OThmXHU0ZjVjXHU2MjEwCitzdWJzY3JpcHRpb24udGl0bGUuZGVsZXRlPVx1MzBlMVx1MzBmY1x1MzBlYlx1OGNmY1x1OGFhZFx1NjBjNVx1NTgzMVx1MzA2ZVx1NTI0YVx1OTY2NAorc3Vic2NyaXB0aW9uLnRpdGxlLmVkaXQ9XHUzMGUxXHUzMGZjXHUzMGViXHU4Y2ZjXHU4YWFkXHU2MGM1XHU1ODMxXHUzMDZlXHU3ZGU4XHU5NmM2CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9keW5Qb3J0YWwvUG9ydGFsUHJlZnNGb3JtLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9keW5Qb3J0YWwvUG9ydGFsUHJlZnNGb3JtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWIwNTlhNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL2R5blBvcnRhbC9Qb3J0YWxQcmVmc0Zvcm0uamF2YQpAQCAtMCwwICsxLDI0NSBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDE5OTktMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLmR5blBvcnRhbDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKKworCisvKioKKyAqLworCitwdWJsaWMgZmluYWwgY2xhc3MgUG9ydGFsUHJlZnNGb3JtIGV4dGVuZHMgQWN0aW9uRm9ybSAgeworCisgICAgLyoqIFZhbGlkYXRlIHZhbHVlICovCisgIHByb3RlY3RlZCBTdHJpbmcgdmFsaWRhdGU7CisgICAgLyoqIGVtcHR5IGxpc3QgdXNlZCBieSByZXNldCAqLworICBwcm90ZWN0ZWQgU3RyaW5nW10gZW1wdHkgPSB7fTsKKyAgICAvKiogbGlzdCBvZiAicmVtYWluaW5nIiBjaG9pY2VzICovCisgIHByb3RlY3RlZCBTdHJpbmdbXSByZW1haW5pbmcgPSBlbXB0eTsKKyAgICAvKiogbGlzdCBvZiB1c2VyIGNvbHVtbnMgKi8KKyAgcHJvdGVjdGVkIExpc3QgY29sdW1ucyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAvKiogbGlzdCBvZiB1c2VyIGNvbHVtbnMgbGFiZWxzICovCisgIHByb3RlY3RlZCBMaXN0IGNvbHVtbkxhYmVscyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAvKiogbGlzdCBvZiBjb2x1bW5zIHNlbGVjdGVkIGJ5IHVzZXIgKi8KKyAgcHJvdGVjdGVkIExpc3QgbmV3Q29scyA9IG5ldyBBcnJheUxpc3QoKTsKKworICAgIC8qKiBDaG9pY2UgbGlzdCAqLworICBwcm90ZWN0ZWQgTGlzdCBjaG9pY2U7CisgICAgLyoqIENob2ljZSBsaXN0IGxhYmVscyAqLworICBwcm90ZWN0ZWQgTGlzdCBjaG9pY2VMYWJlbHM7CisgICAgLyoqIElzIGluaXRpYWxpemVkID8gKi8KKyAgcHJvdGVjdGVkIGJvb2xlYW4gaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKworCisgICAgLyoqCisgICAgICogU2V0IGNvbAorICAgICAqLworICBwdWJsaWMgdm9pZCBzZXRDb2woIGludCBpbmRleCwgTGlzdCBjb2wgKQorICAgIHsKKyAgICBjb2x1bW5zLnNldCggaW5kZXgsIGNvbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGNvbAorICAgICAqLworICBwdWJsaWMgdm9pZCBhZGRDb2woIExpc3QgY29sICkKKyAgICB7CisgICAgY29sdW1ucy5hZGQoIGNvbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGNvbCBMYWJlbHMKKyAgICAgKi8KKyAgcHVibGljIExpc3QgZ2V0Q29sTGFiZWxzKGludCBpbmRleCkKKyAgICB7CisgICAgcmV0dXJuIChMaXN0KWNvbHVtbkxhYmVscy5nZXQoaW5kZXgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBjb2wgTGFiZWxzCisgICAgICovCisgIHB1YmxpYyB2b2lkIHNldENvbExhYmVscyggaW50IGluZGV4LCBMaXN0IGNvbCApCisgICAgeworICAgIGNvbHVtbkxhYmVscy5zZXQoIGluZGV4LCBjb2wpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBjb2wgTGFiZWxzCisgICAgICovCisgIHB1YmxpYyB2b2lkIGFkZENvbExhYmVscyggTGlzdCBjb2wgKQorICAgIHsKKyAgICBjb2x1bW5MYWJlbHMuYWRkKCBjb2wpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBjb2wKKyAgICAgKi8KKyAgcHVibGljIExpc3QgZ2V0Q29sKGludCBpbmRleCkKKyAgICB7CisgICAgcmV0dXJuIChMaXN0KWNvbHVtbnMuZ2V0KGluZGV4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgY29sIExhYmVscworICAgICAqLworICBwdWJsaWMgdm9pZCBzZXROZXdDb2woIGludCBpbmRleCwgU3RyaW5nIGxpc3RbXSApCisgICAgeworICAgICAgLy8gZW5zdXJlIGNhcGFjaXR5CisgICAgd2hpbGUoIGluZGV4Pj1uZXdDb2xzLnNpemUoKSluZXdDb2xzLmFkZChudWxsKTsKKyAgICBuZXdDb2xzLnNldCggaW5kZXgsIGxpc3QpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBjb2wKKyAgICAgKi8KKyAgcHVibGljIFN0cmluZ1tdIGdldE5ld0NvbChpbnQgaW5kZXgpCisgICAgeworICAgIGlmKG5ld0NvbHM9PW51bGwgfHwgaW5kZXg+PW5ld0NvbHMuc2l6ZSgpKQorICAgICAgcmV0dXJuIG51bGw7CisgICAgcmV0dXJuIChTdHJpbmdbXSluZXdDb2xzLmdldChpbmRleCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IG51bWJlciBvZiBjb2x1bW5zCisgICAgICovCisgIHB1YmxpYyBpbnQgZ2V0TnVtQ29sKCkKKyAgICB7CisgICAgcmV0dXJuIG5ld0NvbHMuc2l6ZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBsaXN0MQorICAgICAqLworICBwdWJsaWMgdm9pZCBzZXRMMSggU3RyaW5nIGFycmF5W10gKQorICAgIHsKKyAgICBzZXROZXdDb2woMSwgYXJyYXkpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXQgbGlzdDEKKyAgICAgKi8KKyAgcHVibGljIFN0cmluZ1tdIGdldEwxKCkKKyAgICB7CisgICAgcmV0dXJuIGdldE5ld0NvbCgxKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgbGlzdDEKKyAgICAgKi8KKyAgcHVibGljIHZvaWQgc2V0TDAoIFN0cmluZyBhcnJheVtdICkKKyAgICB7CisgICAgc2V0TmV3Q29sKDAsIGFycmF5KTsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0IGxpc3QxCisgICAgICovCisgIHB1YmxpYyBTdHJpbmdbXSBnZXRMMCgpCisgICAgeworICAgIHJldHVybiBnZXROZXdDb2woMCk7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldCBsaXN0MQorICAgICAqLworICBwdWJsaWMgdm9pZCBzZXRSZW1haW5pbmcoIFN0cmluZyBhcnJheVtdICkKKyAgICB7CisgICAgcmVtYWluaW5nID0gYXJyYXk7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldCBsaXN0MQorICAgICAqLworICBwdWJsaWMgU3RyaW5nW10gZ2V0UmVtYWluaW5nKCkKKyAgICB7CisgICAgcmV0dXJuIHJlbWFpbmluZzsKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFNldCBsaXN0MQorICAgICAqLworICBwdWJsaWMgdm9pZCBzZXRDaG9pY2VzKCBMaXN0IGxpc3QgKQorICAgIHsKKyAgICBjaG9pY2UgPSBsaXN0OworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXQgbGlzdDEKKyAgICAgKi8KKyAgcHVibGljIHZvaWQgc2V0Q2hvaWNlTGFiZWxzKCBMaXN0IGxpc3QgKQorICAgIHsKKyAgICBjaG9pY2VMYWJlbHMgPSBsaXN0OworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXQgbGlzdDEKKyAgICAgKi8KKyAgcHVibGljIExpc3QgZ2V0Q2hvaWNlcygpCisgICAgeworICAgIHJldHVybiBjaG9pY2U7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldCBsaXN0MQorICAgICAqLworICBwdWJsaWMgTGlzdCBnZXRDaG9pY2VMYWJlbHMoKQorICAgIHsKKyAgICByZXR1cm4gY2hvaWNlTGFiZWxzOworICAgIH0KKworICAgLyoqCisgICAgKiBJcyB0aGlzIGZvcm0gc3VibWl0dGVkID8KKyAgICAqLworICBwdWJsaWMgYm9vbGVhbiBpc1N1Ym1pdHRlZCgpCisgICAgeworICAgIHJldHVybiB2YWxpZGF0ZSAhPSBudWxsOworICAgIH0KKworICAgLyoqCisgICAgKiBJcyB0aGlzIGZvcm0gc3VibWl0dGVkID8KKyAgICAqLworICBwdWJsaWMgdm9pZCBzZXRWYWxpZGF0ZSggU3RyaW5nIHZhbHVlKQorICAgIHsKKyAgICB0aGlzLnZhbGlkYXRlID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzZXQgcHJvcGVydGllcworICAgICAqLworICBwdWJsaWMgdm9pZCByZXNldCgpCisgICAgeworICAgIHJlbWFpbmluZyA9ICBlbXB0eTsKKyAgICB2YWxpZGF0ZSA9IG51bGw7CisgICAgY29sdW1ucy5jbGVhcigpOworICAgIGNvbHVtbkxhYmVscy5jbGVhcigpOworICAgIG5ld0NvbHMuY2xlYXIoKTsKKyAgICB9CisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZWQgZmxhZworICAgICAqLworICBwdWJsaWMgYm9vbGVhbiBpc0luaXRpYWxpemVkKCkKKyAgICB7CisgICAgcmV0dXJuIGluaXRpYWxpemVkOworICAgIH0KKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplZCBmbGFnCisgICAgICovCisgIHB1YmxpYyB2b2lkIHNldEluaXRpYWxpemVkKCBib29sZWFuIGlzSW5pdGlhbGl6ZWQpCisgICAgeworICAgIGluaXRpYWxpemVkID0gaXNJbml0aWFsaXplZDsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL2R5blBvcnRhbC9Qb3J0YWxTZXR0aW5ncy5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvZHluUG9ydGFsL1BvcnRhbFNldHRpbmdzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRlNjY4YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL2R5blBvcnRhbC9Qb3J0YWxTZXR0aW5ncy5qYXZhCkBAIC0wLDAgKzEsMjM3IEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMuZHluUG9ydGFsOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKKyAgLyoqCisgICAqIE9iamVjdHMgb2YgdGhpcyBjbGFzcyBob2xkIHBvcnRhbCBzZXR0aW5ncyBmb3Igb25lIHVzZXIuCisgICAqLworICAgcHVibGljIGNsYXNzIFBvcnRhbFNldHRpbmdzCisgICB7CisgICAgICAgLyoqIE51bWJlciBvZiBjb2x1bW1zKi8KKyAgICAgcHJvdGVjdGVkIGludCBudW1Db2xzOworICAgICAgIC8qKiBMaXN0IG9mIGxpc3RzIChvbmUgcGVyIGNvbHVtbikgKi8KKyAgICAgcHJvdGVjdGVkIExpc3QgbGlzdHMgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgICAgLyoqIENob2ljZXMgVGlsZXMgKi8KKyAgICAgcHJvdGVjdGVkIExpc3QgY2hvaWNlcyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICAvKiogQ2hvaWNlcyBUaWxlcyBsYWJlbHMgKi8KKyAgICAgcHJvdGVjdGVkIExpc3QgY2hvaWNlTGFiZWxzID0gbmV3IEFycmF5TGlzdCgpOworCisgICAgICAgLyoqCisgICAgICAgICogR2V0IGxhYmVsIGZvciBzcGVjaWZpZWQgVGlsZSwgaWRlbnRpZmllZCBieSBpdHMga2V5LgorICAgICAgICAqLworICAgICBwdWJsaWMgU3RyaW5nIGdldExhYmVsKCBPYmplY3Qga2V5ICkKKyAgICAgICB7CisgICAgICAgaW50IGluZGV4ID0gY2hvaWNlcy5pbmRleE9mKCBrZXkgKTsKKyAgICAgICByZXR1cm4gKFN0cmluZyljaG9pY2VMYWJlbHMuZ2V0KGluZGV4KTsKKyAgICAgICB9CisKKyAgICAgICAvKioKKyAgICAgICAgKiBHZXQgbnVtYmVyIG9mIGNvbHVtbnMuCisgICAgICAgICovCisgICAgIHB1YmxpYyBpbnQgZ2V0TnVtQ29scygpCisgICAgICAgeworICAgICAgIHJldHVybiBudW1Db2xzOworICAgICAgIH0KKyAgICAgICAvKioKKyAgICAgICAgKiBTZXQgbnVtYmVyIG9mIGNvbHVtbnMKKyAgICAgICAgKi8KKyAgICAgcHVibGljIHZvaWQgc2V0TnVtQ29scyggU3RyaW5nIG51bUNvbHMgKQorICAgICAgIHsKKyAgICAgICB0aGlzLm51bUNvbHMgPSBJbnRlZ2VyLnBhcnNlSW50KG51bUNvbHMpOworICAgICAgIH0KKyAgICAgICAvKioKKyAgICAgICAgKiBTZXQgbnVtYmVyIG9mIGNvbHVtbnMKKyAgICAgICAgKi8KKyAgICAgcHVibGljIHZvaWQgc2V0TnVtQ29scyggaW50IG51bUNvbHMgKQorICAgICAgIHsKKyAgICAgICB0aGlzLm51bUNvbHMgPSBudW1Db2xzOworICAgICAgIH0KKyAgICAgICAvKioKKyAgICAgICAgKiBHZXQgbGlzdCBhdCBzcGVjaWZpZWQgaW5kZXgKKyAgICAgICAgKi8KKyAgICAgcHVibGljIExpc3QgZ2V0TGlzdEF0KCBpbnQgaW5kZXggKQorICAgICAgIHsKKyAgICAgICByZXR1cm4gKExpc3QpbGlzdHMuZ2V0KGluZGV4KTsKKyAgICAgICB9CisKKyAgICAgICAvKioKKyAgICAgICAgKiBHZXQgbGFiZWxzIGZvciBsaXN0IGF0IHNwZWNpZmllZCBpbmRleC4KKyAgICAgICAgKi8KKyAgICAgcHVibGljIExpc3QgZ2V0TGlzdExhYmVsQXQoIGludCBpbmRleCApCisgICAgICAgeworICAgICAgIExpc3QgbGlzdExhYmVscyA9IG5ldyBBcnJheUxpc3QoKTsKKyAgICAgICBMaXN0IGxpc3QgPSBnZXRMaXN0QXQoaW5kZXgpOworCisgICAgICAgSXRlcmF0b3IgaSA9IGxpc3QuaXRlcmF0b3IoKTsKKyAgICAgICB3aGlsZShpLmhhc05leHQoKSkKKyAgICAgICAgIHsKKyAgICAgICAgIE9iamVjdCBrZXkgPSBpLm5leHQoKTsKKyAgICAgICAgIGxpc3RMYWJlbHMuYWRkKCBnZXRMYWJlbChrZXkpICk7CisgICAgICAgICB9IC8vIGVuZCBsb29wCisgICAgICAgcmV0dXJuIGxpc3RMYWJlbHM7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogQWRkIGEgbGlzdCB3aXRob3V0IGNoZWNraW5nCisgICAgICAgICovCisgICAgIHB1YmxpYyB2b2lkIGFkZExpc3QoIExpc3QgbGlzdCApCisgICAgICAgeworICAgICAgIGxpc3RzLmFkZCggbGlzdCk7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogU2V0IGxpc3Qgb2YgY2hvaWNlcyBUaWxlcworICAgICAgICAqLworICAgICBwdWJsaWMgdm9pZCBzZXRDaG9pY2VzKCBMaXN0IGxpc3QpCisgICAgICAgeworICAgICAgIHNldENob2ljZXMobGlzdCwgbGlzdCk7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogYWRkIGxpc3QgdG8gbGlzdCBvZiBjaG9pY2VzIFRpbGVzCisgICAgICAgICovCisgICAgIHB1YmxpYyB2b2lkIGFkZENob2ljZXMoIExpc3QgbGlzdCkKKyAgICAgICB7CisgICAgICAgYWRkQ2hvaWNlcyggbGlzdCwgbGlzdCk7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogU2V0IGxpc3Qgb2YgY2hvaWNlcyBUaWxlcworICAgICAgICAqLworICAgICBwdWJsaWMgdm9pZCBzZXRDaG9pY2VzKCBMaXN0IGxpc3QsIExpc3QgbGFiZWxzKQorICAgICAgIHsKKyAgICAgICAgIC8vIElmIG5vIGxhYmVscywgdXNlIGxpc3Qga2V5cworICAgICAgIGlmKCBsYWJlbHMgPT0gbnVsbCApCisgICAgICAgICBsYWJlbHMgPSBsaXN0OworICAgICAgICAgLy8gQ2hlY2sgc2l6ZXMKKyAgICAgICBpZiggbGlzdC5zaXplKCkgIT0gbGFiZWxzLnNpemUoKSApCisgICAgICAgICB7Ly8gZXJyb3IKKyAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIkVycm9yIDogbGlzdCBhbmQgbGFiZWxzIHNpemUgbXVzdCBiZSB0aGUgc2FtZS4iICk7CisgICAgICAgICB9CisgICAgICAgdGhpcy5jaG9pY2VzID0gbGlzdDsKKyAgICAgICBjaG9pY2VMYWJlbHMgPSBsYWJlbHM7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogYWRkIGxpc3QgYW5kIGxhYmVscyB0byBsaXN0IG9mIGNob2ljZXMgVGlsZXMuCisgICAgICAgICogSWYgbGFiZWxzIGlzIG51bGwsIHVzZSBrZXlzIGxpc3QgYXMgbGFiZWxzLgorICAgICAgICAqIEBsaXN0IGxpc3Qgb2YgY2hvaWNlIGtleXMgdG8gYWRkCisgICAgICAgICogQGxhYmVscyBjb3JyZXNwb25kaW5nIGxhYmVscyAobGlzdCBzaXplIG11c3QgYmUgdGhlIHNhbWUgYXMgbGlzdCkuCisgICAgICAgICovCisgICAgIHB1YmxpYyB2b2lkIGFkZENob2ljZXMoIExpc3QgbGlzdCwgTGlzdCBsYWJlbHMpCisgICAgICAgeworICAgICAgICAgLy8gSWYgbm8gbGFiZWxzLCB1c2UgbGlzdCBrZXlzCisgICAgICAgaWYoIGxhYmVscyA9PSBudWxsICkKKyAgICAgICAgIGxhYmVscyA9IGxpc3Q7CisgICAgICAgICAvLyBDaGVjayBzaXplcworICAgICAgICBpZihjaG9pY2VzPT0gbnVsbCkKKyAgICAgICAgIHsKKyAgICAgICAgIHNldENob2ljZXMobGlzdCwgbGFiZWxzKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKworICAgICAgIGlmKCBsaXN0LnNpemUoKSAhPSBsYWJlbHMuc2l6ZSgpICkKKyAgICAgICAgIHsvLyBlcnJvcgorICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiRXJyb3IgOiBsaXN0IGFuZCBsYWJlbHMgc2l6ZSBtdXN0IGJlIHRoZSBzYW1lLiIgKTsKKyAgICAgICAgIH0KKyAgICAgICBjaG9pY2VzLmFkZEFsbChsaXN0KTsKKyAgICAgICBjaG9pY2VMYWJlbHMuYWRkQWxsKGxhYmVscyk7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogR2V0IGxpc3Qgb2YgY2hvaWNlcyBUaWxlcworICAgICAgICAqLworICAgICBwdWJsaWMgTGlzdCBnZXRDaG9pY2VzKCApCisgICAgICAgeworICAgICAgIHJldHVybiBjaG9pY2VzOworICAgICAgIH0KKworICAgICAgIC8qKgorICAgICAgICAqIFNldCBsYWJlbHMgZm9yIGNob2ljZXMgVGlsZXMuCisgICAgICAgICovCisgICAgIHB1YmxpYyB2b2lkIHNldENob2ljZUxhYmVscyggTGlzdCBsaXN0KQorICAgICAgIHsKKyAgICAgICB0aGlzLmNob2ljZUxhYmVscyA9IGxpc3Q7CisgICAgICAgfQorICAgICAgIC8qKgorICAgICAgICAqIGFkZCBsaXN0IHRvIGxpc3Qgb2YgY2hvaWNlcyBUaWxlcworICAgICAgICAqLworICAgICBwdWJsaWMgdm9pZCBhZGRDaG9pY2VMYWJlbHMoIExpc3QgbGlzdCkKKyAgICAgICB7CisgICAgICAgaWYoY2hvaWNlTGFiZWxzPT0gbnVsbCkKKyAgICAgICAgIHsKKyAgICAgICAgIHNldENob2ljZUxhYmVscyhsaXN0KTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KKyAgICAgICBjaG9pY2VMYWJlbHMuYWRkQWxsKGxpc3QpOworICAgICAgIH0KKyAgICAgICAvKioKKyAgICAgICAgKiBHZXQgbGlzdCBvZiBjaG9pY2VzIFRpbGVzCisgICAgICAgICovCisgICAgIHB1YmxpYyBMaXN0IGdldENob2ljZUxhYmVscyggKQorICAgICAgIHsKKyAgICAgICByZXR1cm4gY2hvaWNlTGFiZWxzOworICAgICAgIH0KKworICAgICAgIC8qKgorICAgICAgICAqIFJlc2V0IGxpc3QgYXQgc3BlY2lmaWVkIGluZGV4LCBhbmQgZmlsbCBpdCB3aXRoIGtleXMgZnJvbSBhcnJheS4KKyAgICAgICAgKiBLZXlzIGFyZSBhZGRlZCBvbmx5IGlmIHRoZXkgYXJlIGluIHRoZSBjaG9pY2VzIGxpc3QuCisgICAgICAgICogU3BlY2lhbCBrZXlzIGFyZSB0cmFuc2Zvcm1lZCBpbiBhcHByb3ByaWF0ZSAnZGVmaW5pdGlvbicuCisgICAgICAgICogQGluZGV4IGluZGV4IG9mIHRoZSBsaXN0IHRvIGFkZC4KKyAgICAgICAgKiBAa2V5cyBhcnJheSBvZiBrZXlzIHRvIGluaXRpYWxpemUgbGlzdC4KKyAgICAgICAgKi8KKyAgICAgcHVibGljIHZvaWQgcmVzZXRMaXN0QXQoIGludCBpbmRleCwgU3RyaW5nIGtleXNbXSApCisgICAgICAgeworICAgICAgIExpc3QgbGlzdCA9IGdldExpc3RBdChpbmRleCk7CisgICAgICAgbGlzdC5jbGVhcigpOworICAgICAgIGFkZExpc3RBdChpbmRleCwga2V5cyk7CisgICAgICAgfQorICAgICAgIC8qKgorICAgICAgICAqIEFkZCBrZXlzIGZyb20gYXJyYXkgdG8gbGlzdCBhdCBzcGVjaWZpZWQgaW5kZXguCisgICAgICAgICogS2V5cyBhcmUgYWRkZWQgb25seSBpZiB0aGV5IGFyZSBpbiB0aGUgY2hvaWNlcyBsaXN0LgorICAgICAgICAqIFNwZWNpYWwga2V5cyBhcmUgdHJhbnNmb3JtZWQgaW4gYXBwcm9wcmlhdGUgJ2RlZmluaXRpb24nLgorICAgICAgICAqIEBpbmRleCBpbmRleCBvZiB0aGUgbGlzdCB0byBhZGQuCisgICAgICAgICogQGtleXMgYXJyYXkgb2Yga2V5cyB0byBhZGQgdG8gbGlzdC4KKyAgICAgICAgKi8KKyAgICAgcHVibGljIHZvaWQgYWRkTGlzdEF0KCBpbnQgaW5kZXgsIFN0cmluZyBrZXlzW10gKQorICAgICAgIHsKKyAgICAgICAgIC8vIEZpcnN0LCBlbnN1cmUgY2FwYWNpdHkKKyAgICAgICB3aGlsZSggaW5kZXg+bGlzdHMuc2l6ZSgpLTEgKSBsaXN0cy5hZGQobmV3IEFycmF5TGlzdCgpKTsKKworICAgICAgIExpc3QgbGlzdCA9IGdldExpc3RBdChpbmRleCk7OworICAgICAgICAgLy8gYWRkIGtleXMgdG8gbGlzdAorICAgICAgIGZvcihpbnQgaT0wO2k8a2V5cy5sZW5ndGg7aSsrKQorICAgICAgICAgeworICAgICAgICAgU3RyaW5nIGtleSA9IGtleXNbaV07CisgICAgICAgICBpZigga2V5LmluZGV4T2YoICdAJyApPjAgKQorICAgICAgICAgICB7IC8vIHNwZWNpYWwga2V5CisgICAgICAgICAgIH0KKyAgICAgICAgIGlmKCBjaG9pY2VzLmNvbnRhaW5zKCBrZXkgKSApCisgICAgICAgICAgIHsgLy8gb2ssIGFkZCBpdAorICAgICAgICAgICBsaXN0LmFkZCgga2V5ICk7CisgICAgICAgICAgIH0KKyAgICAgICAgIH0gLy8gZW5kIGxvb3AKKyAgICAgICBsaXN0cy5hZGQoIGxpc3QpOworICAgICAgIH0KKworICAgfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvZHluUG9ydGFsL1JldHJpZXZlUG9ydGFsQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9keW5Qb3J0YWwvUmV0cmlldmVQb3J0YWxBY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTk4MGQwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvZHluUG9ydGFsL1JldHJpZXZlUG9ydGFsQWN0aW9uLmphdmEKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5keW5Qb3J0YWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb247CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0OworCisKKy8qKgorICogSW1wbGVtZW50YXRpb24gb2YgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBwb3B1bGF0ZXMgYW4gaW5zdGFuY2Ugb2YKKyAqIDxjb2RlPlN1YnNjcmlwdGlvbkZvcm08L2NvZGU+IGZyb20gdGhlIGN1cnJlbnRseSBzcGVjaWZpZWQgc3Vic2NyaXB0aW9uLgorICoKKyAqLworCitwdWJsaWMgZmluYWwgY2xhc3MgUmV0cmlldmVQb3J0YWxBY3Rpb24gZXh0ZW5kcyBBY3Rpb24geworCisgICAgICAvKiogTmFtZSB1c2UgdG8gc3RvcmUgc2V0dGluZ3MgaW4gc2Vzc2lvbiBjb250ZXh0ICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgVVNFUl9QT1JUQUxfU0VUVElOR1MgPSAiRHluYW1pY1BvcnRhbC5VU0VSX1BPUlRBTF9TRVRUSU5HUyI7CisgICAgICAvKiogVGlsZSBwYXJhbWV0ZXIgbmFtZSAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIFBBUkFNX05VTUNPTFMgPSAibnVtQ29scyI7CisgICAgICAvKiogVGlsZSBwYXJhbWV0ZXIgbmFtZSAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIFBBUkFNX0xJU1QgPSAibGlzdCI7CisgICAgICAvKiogVGlsZSBwYXJhbWV0ZXIgbmFtZSAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIFBBUkFNX0xJU1RfTEFCRUxTID0gImxpc3RMYWJlbHMiOworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQdWJsaWMgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiBQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyAgICAgKiByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCisgICAgICogUmV0dXJuIGFuIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIGRlc2NyaWJpbmcgd2hlcmUgYW5kIGhvdworICAgICAqIGNvbnRyb2wgc2hvdWxkIGJlIGZvcndhcmRlZCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlIHJlc3BvbnNlIGhhcworICAgICAqIGFscmVhZHkgYmVlbiBjb21wbGV0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGFjdGlvbkZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIGlmIHRoZSBhcHBsaWNhdGlvbiBidXNpbmVzcyBsb2dpYyB0aHJvd3MKKyAgICAgKiAgYW4gZXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIEFjdGlvbkZvcndhcmQgZXhlY3V0ZSgKKwkJCQkgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorCQkJCSBBY3Rpb25Gb3JtIGZvcm0sCisJCQkJIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorCQkJCSBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKQorCXRocm93cyBFeGNlcHRpb24geworICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW50ZXIgYWN0aW9uIFJldHJpZXZlUG9ydGFsQWN0aW9uIik7CisgICAgICAvLyBHZXQgY3VycmVudCBzZXNzaW9uLgorCSAgSHR0cFNlc3Npb24gc2Vzc2lvbiA9IHJlcXVlc3QuZ2V0U2Vzc2lvbigpOworCisgICAgICAgICAgLy8gVHJ5IHRvIHJldHJpZXZlIHRpbGUgY29udGV4dAorICAgIENvbXBvbmVudENvbnRleHQgY29udGV4dCA9IENvbXBvbmVudENvbnRleHQuZ2V0Q29udGV4dCggcmVxdWVzdCApOworICAgIGlmKCBjb250ZXh0ID09IG51bGwgKQorICAgICAgeworICAgICAgdGhyb3cgbmV3IFNlcnZsZXRFeGNlcHRpb24oICJUaGlzIGFjdGlvbiBtdXN0IGJlIGNhbGxlZCBieSBhIFRpbGUsIG5vdCBkaXJlY3RseSIgKTsKKyAgICAgIH0KKworICAgICAgLy8gR2V0IHVzZXIgcG9ydGFsIGxpc3QgZnJvbSB1c2VyIGNvbnRleHQKKyAgICBQb3J0YWxTZXR0aW5ncyBzZXR0aW5ncyA9IGdldFNldHRpbmdzKCBjb250ZXh0LCBzZXNzaW9uICk7CisKKyAgICAgIC8vIFNldCBwYXJhbWV0ZXJzIGZvciB0aWxlcworICAgIGNvbnRleHQucHV0QXR0cmlidXRlKCAibnVtQ29scyIsIEludGVnZXIudG9TdHJpbmcoc2V0dGluZ3MuZ2V0TnVtQ29scygpKSApOworICAgIGZvciggaW50IGk9MDsgaTxzZXR0aW5ncy5nZXROdW1Db2xzKCk7IGkrKyApCisgICAgICBjb250ZXh0LnB1dEF0dHJpYnV0ZSggImxpc3QiK2ksIHNldHRpbmdzLmdldExpc3RBdChpKSApOworCisgICAgU3lzdGVtLm91dC5wcmludGxuKCJFeGl0IGFjdGlvbiBSZXRyaWV2ZVBvcnRhbEFjdGlvbiIpOworCSAgcmV0dXJuIChtYXBwaW5nLmZpbmRGb3J3YXJkKCJzdWNjZXNzIikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHVzZXIgc2V0dGluZyBmcm9tIHNlc3Npb24uCisgICAgICogSWYgc2V0dGluZ3MgYXJlIG5vdCBmb3VuZCwgaW5pdGlhbGl6ZWQgdGhlbS4KKyAgICAgKi8KKyAgcHVibGljIHN0YXRpYyBQb3J0YWxTZXR0aW5ncyBnZXRTZXR0aW5ncyggQ29tcG9uZW50Q29udGV4dCBjb250ZXh0LCBIdHRwU2Vzc2lvbiBzZXNzaW9uICkKKyAgeworICAgICAgLy8gR2V0IHVzZXIgcG9ydGFsIGxpc3QgZnJvbSB1c2VyIGNvbnRleHQKKyAgICBQb3J0YWxTZXR0aW5ncyBzZXR0aW5ncyA9IChQb3J0YWxTZXR0aW5ncylzZXNzaW9uLmdldEF0dHJpYnV0ZSggVVNFUl9QT1JUQUxfU0VUVElOR1MgKTsKKworICAgIGlmKCBzZXR0aW5ncyA9PSBudWxsICkKKyAgICAgIHsgLy8gTGlzdCBkb2Vzbid0IGV4aXN0LCBjcmVhdGUgaXQgYW5kIGluaXRpYWxpemUgaXQgZnJvbSBUaWxlcyBwYXJhbWV0ZXJzCisgICAgICBzZXR0aW5ncyA9IG5ldyBQb3J0YWxTZXR0aW5ncygpOworICAgICAgc2V0dGluZ3Muc2V0TnVtQ29scyggKFN0cmluZyljb250ZXh0LmdldEF0dHJpYnV0ZSggUEFSQU1fTlVNQ09MUyApICk7CisgICAgICBmb3IoIGludCBpPTA7IGk8c2V0dGluZ3MuZ2V0TnVtQ29scygpOyBpKysgKQorICAgICAgICB7CisgICAgICAgIExpc3QgY29sID0gKExpc3QpY29udGV4dC5nZXRBdHRyaWJ1dGUoICgoU3RyaW5nKVBBUkFNX0xJU1QraSkgKTsKKyAgICAgICAgTGlzdCBsYWJlbHMgPSAoTGlzdCljb250ZXh0LmdldEF0dHJpYnV0ZSggKChTdHJpbmcpUEFSQU1fTElTVF9MQUJFTFMraSkgKTsKKyAgICAgICAgc2V0dGluZ3MuYWRkQ2hvaWNlcyggY29sLCBsYWJlbHMgKTsKKyAgICAgICAgc2V0dGluZ3MuYWRkTGlzdCggY29sICk7CisgICAgICAgIH0gLy8gZW5kIGxvb3AKKworICAgICAgICAvLyBTYXZlIHVzZXIgc2V0dGluZ3MgaW4gc2Vzc2lvbgorICAgICAgc2Vzc2lvbi5zZXRBdHRyaWJ1dGUoIFVTRVJfUE9SVEFMX1NFVFRJTkdTLCBzZXR0aW5ncyk7CisgICAgICB9IC8vIGVuZCBpZgorCisgIHJldHVybiBzZXR0aW5nczsKKyAgfQorCisKK30KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvZHluUG9ydGFsL1NldFBvcnRhbFByZWZzQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9keW5Qb3J0YWwvU2V0UG9ydGFsUHJlZnNBY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWM1MzcxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvZHluUG9ydGFsL1NldFBvcnRhbFByZWZzQWN0aW9uLmphdmEKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5keW5Qb3J0YWw7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb247CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0OworCisKKy8qKgorICogSW1wbGVtZW50YXRpb24gb2YgPHN0cm9uZz5BY3Rpb248L3N0cm9uZz4gdGhhdCBwb3B1bGF0ZXMgYW4gaW5zdGFuY2Ugb2YKKyAqIDxjb2RlPlN1YnNjcmlwdGlvbkZvcm08L2NvZGU+IGZyb20gdGhlIGN1cnJlbnRseSBzcGVjaWZpZWQgc3Vic2NyaXB0aW9uLgorICoKKyAqIEB2ZXJzaW9uICRSZXYkICREYXRlJAorICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTZXRQb3J0YWxQcmVmc0FjdGlvbiBleHRlbmRzIEFjdGlvbiB7CisKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQdWJsaWMgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiBQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyAgICAgKiByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCisgICAgICogUmV0dXJuIGFuIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIGRlc2NyaWJpbmcgd2hlcmUgYW5kIGhvdworICAgICAqIGNvbnRyb2wgc2hvdWxkIGJlIGZvcndhcmRlZCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlIHJlc3BvbnNlIGhhcworICAgICAqIGFscmVhZHkgYmVlbiBjb21wbGV0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGFjdGlvbkZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIGlmIHRoZSBhcHBsaWNhdGlvbiBidXNpbmVzcyBsb2dpYyB0aHJvd3MKKyAgICAgKiAgYW4gZXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIEFjdGlvbkZvcndhcmQgZXhlY3V0ZSgKKwkJCQkgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorCQkJCSBBY3Rpb25Gb3JtIGZvcm0sCisJCQkJIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorCQkJCSBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKQorCXRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbnRlciBhY3Rpb24gU2V0UG9ydGFsUHJlZnNBY3Rpb24iKTsKKwlIdHRwU2Vzc2lvbiBzZXNzaW9uID0gcmVxdWVzdC5nZXRTZXNzaW9uKCk7CisgIFBvcnRhbFByZWZzRm9ybSBwcmVmc0Zvcm0gPSAoUG9ydGFsUHJlZnNGb3JtKWZvcm07CisKKyAgICAgICAgICAvLyBUcnkgdG8gcmV0cmlldmUgdGlsZSBjb250ZXh0CisgICAgQ29tcG9uZW50Q29udGV4dCBjb250ZXh0ID0gQ29tcG9uZW50Q29udGV4dC5nZXRDb250ZXh0KCByZXF1ZXN0ICk7CisgICAgaWYoIGNvbnRleHQgPT0gbnVsbCApCisgICAgICB7CisgICAgICB0aHJvdyBuZXcgU2VydmxldEV4Y2VwdGlvbiggIlRoaXMgYWN0aW9uIG11c3QgYmUgY2FsbGVkIGJ5IGEgVGlsZSwgbm90IGRpcmVjdGx5IiApOworICAgICAgfQorCisgICAgICAvLyBHZXQgdXNlciBwb3J0YWwgbGlzdCBmcm9tIHVzZXIgY29udGV4dAorICAgIFBvcnRhbFNldHRpbmdzIHNldHRpbmdzID0gUmV0cmlldmVQb3J0YWxBY3Rpb24uZ2V0U2V0dGluZ3MoIGNvbnRleHQsIHNlc3Npb24gKTsKKworICBpZiggcHJlZnNGb3JtLmlzU3VibWl0dGVkKCkgKQorICAgIHsgIC8vIHJlYWQgYXJyYXlzCisgICAgU3lzdGVtLm91dC5wcmludGxuKCJmb3JtIHN1Ym1pdHRlZCIpOworCisgICAgICAvLyBTZXQgc2V0dGluZ3MgY29scyBhY2NvcmRpbmcgdG8gdXNlciBjaG9pY2UKKyAgICBmb3IoIGludCBpPTA7aTxwcmVmc0Zvcm0uZ2V0TnVtQ29sKCk7IGkrKykKKyAgICAgIHsKKyAgICAgIHNldHRpbmdzLnJlc2V0TGlzdEF0KCBpLCBwcmVmc0Zvcm0uZ2V0TmV3Q29sKGkpKTsKKyAgICAgIH0gLy8gZW5kIGxvb3AKKworCisgICAgLy9zZXR0aW5ncy5yZXNldExpc3RBdCggMCwgcHJlZnNGb3JtLmdldEwwKCkpOworICAgIC8vc2V0dGluZ3MucmVzZXRMaXN0QXQoIDEsIHByZWZzRm9ybS5nZXRMMSgpKTsKKyAgICBwcmVmc0Zvcm0ucmVzZXQoKTsKKwkgIHJldHVybiAobWFwcGluZy5maW5kRm9yd2FyZCgicG9ydGFsIikpOworICAgIH0KKworICAgICAgLy8gU2V0IGxpc3RzIHZhbHVlcyB0byBiZSBzaG93bgorICAgIGZvciggaW50IGk9MDtpPHNldHRpbmdzLmdldE51bUNvbHMoKTsgaSsrICkKKyAgICAgIHsKKyAgICAgIHByZWZzRm9ybS5hZGRDb2woc2V0dGluZ3MuZ2V0TGlzdEF0KGkpICk7CisgICAgICBwcmVmc0Zvcm0uYWRkQ29sTGFiZWxzKHNldHRpbmdzLmdldExpc3RMYWJlbEF0KGkpICk7CisgICAgICB9IC8vIGVuZCBsb29wCisKKyAgICBwcmVmc0Zvcm0uc2V0Q2hvaWNlcyhzZXR0aW5ncy5nZXRDaG9pY2VzKCkgKTsKKyAgICBwcmVmc0Zvcm0uc2V0Q2hvaWNlTGFiZWxzKHNldHRpbmdzLmdldENob2ljZUxhYmVscygpICk7CisKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkV4aXQgYWN0aW9uIFNldFBvcnRhbFByZWZzQWN0aW9uIik7CisJICByZXR1cm4gKG1hcHBpbmcuZmluZEZvcndhcmQoInByZWZlcmVuY2VzIikpOworICAgIH0KKworCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9pbnZvaWNlL0FkZHJlc3MuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL2ludm9pY2UvQWRkcmVzcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjMGUzN2MKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9pbnZvaWNlL0FkZHJlc3MuamF2YQpAQCAtMCwwICsxLDE0MCBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDE5OTktMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLmludm9pY2U7CisKKy8qKgorICogQW4gYWRkcmVzcy4KKyAqLworcHVibGljIGNsYXNzIEFkZHJlc3MKK3sKKworICAvKioKKyAgICogU3RyZWV0IHBhcnQgMQorICAgKi8KKyAgcHJpdmF0ZSBTdHJpbmcgc3RyZWV0MTsKKworICAvKioKKyAgICogU3RyZWV0IHBhcnQgMgorICAgKi8KKyAgcHJpdmF0ZSBTdHJpbmcgc3RyZWV0MjsKKworICAvKioKKyAgICogQ2l0eQorICAgKi8KKyAgcHJpdmF0ZSBTdHJpbmcgY2l0eTsKKworICAvKioKKyAgICogQ291bnRyeQorICAgKi8KKyAgcHJpdmF0ZSBTdHJpbmcgY291bnRyeTsKKworICAvKioKKyAgICogWmlwIENvZGUKKyAgICovCisgIHByaXZhdGUgU3RyaW5nIHppcENvZGU7CisKKyAgcHVibGljIEFkZHJlc3MoKQorICB7CisgIH0KKworICAvKioKKyogQWNjZXNzIG1ldGhvZCBmb3IgdGhlIHN0cmVldDEgcHJvcGVydHkuCisqCisqIEByZXR1cm4gICB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgc3RyZWV0MSBwcm9wZXJ0eQorICAgKi8KKyAgcHVibGljIFN0cmluZyBnZXRTdHJlZXQxKCkgeworICAgIHJldHVybiBzdHJlZXQxO30KKworICAvKioKKyAgICogQHJldHVybiB2b2lkCisqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBzdHJlZXQxIHByb3BlcnR5LgorKgorKiBAcGFyYW0gYVN0cmVldDEgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgc3RyZWV0MSBwcm9wZXJ0eQorICAgKi8KKyAgcHVibGljIHZvaWQgc2V0U3RyZWV0MShTdHJpbmcgYVN0cmVldDEpIHsKKyAgICBzdHJlZXQxID0gYVN0cmVldDE7fQorCisgIC8qKgorKiBBY2Nlc3MgbWV0aG9kIGZvciB0aGUgc3RyZWV0MiBwcm9wZXJ0eS4KKyoKKyogQHJldHVybiAgIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBzdHJlZXQyIHByb3BlcnR5CisgICAqLworICBwdWJsaWMgU3RyaW5nIGdldFN0cmVldDIoKSB7CisgICAgcmV0dXJuIHN0cmVldDI7fQorCisgIC8qKgorICAgKiBAcmV0dXJuIHZvaWQKKyogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIHN0cmVldDIgcHJvcGVydHkuCisqCisqIEBwYXJhbSBhU3RyZWV0MiB0aGUgbmV3IHZhbHVlIG9mIHRoZSBzdHJlZXQyIHByb3BlcnR5CisgICAqLworICBwdWJsaWMgdm9pZCBzZXRTdHJlZXQyKFN0cmluZyBhU3RyZWV0MikgeworICAgIHN0cmVldDIgPSBhU3RyZWV0Mjt9CisKKyAgLyoqCisqIEFjY2VzcyBtZXRob2QgZm9yIHRoZSBjaXR5IHByb3BlcnR5LgorKgorKiBAcmV0dXJuICAgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGNpdHkgcHJvcGVydHkKKyAgICovCisgIHB1YmxpYyBTdHJpbmcgZ2V0Q2l0eSgpIHsKKyAgICByZXR1cm4gY2l0eTt9CisKKyAgLyoqCisgICAqIEByZXR1cm4gdm9pZAorKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgY2l0eSBwcm9wZXJ0eS4KKyoKKyogQHBhcmFtIGFDaXR5IHRoZSBuZXcgdmFsdWUgb2YgdGhlIGNpdHkgcHJvcGVydHkKKyAgICovCisgIHB1YmxpYyB2b2lkIHNldENpdHkoU3RyaW5nIGFDaXR5KSB7CisgICAgY2l0eSA9IGFDaXR5O30KKworICAvKioKKyogQWNjZXNzIG1ldGhvZCBmb3IgdGhlIGNvdW50cnkgcHJvcGVydHkuCisqCisqIEByZXR1cm4gICB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgY291bnRyeSBwcm9wZXJ0eQorICAgKi8KKyAgcHVibGljIFN0cmluZyBnZXRDb3VudHJ5KCkgeworICAgIHJldHVybiBjb3VudHJ5O30KKworICAvKioKKyAgICogQHJldHVybiB2b2lkCisqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBjb3VudHJ5IHByb3BlcnR5LgorKgorKiBAcGFyYW0gYUNvdW50cnkgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgY291bnRyeSBwcm9wZXJ0eQorICAgKi8KKyAgcHVibGljIHZvaWQgc2V0Q291bnRyeShTdHJpbmcgYUNvdW50cnkpIHsKKyAgICBjb3VudHJ5ID0gYUNvdW50cnk7fQorCisgIC8qKgorKiBBY2Nlc3MgbWV0aG9kIGZvciB0aGUgemlwQ29kZSBwcm9wZXJ0eS4KKyoKKyogQHJldHVybiAgIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSB6aXBDb2RlIHByb3BlcnR5CisgICAqLworICBwdWJsaWMgU3RyaW5nIGdldFppcENvZGUoKSB7CisgICAgcmV0dXJuIHppcENvZGU7fQorCisgIC8qKgorICAgKiBAcmV0dXJuIHZvaWQKKyogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIHppcENvZGUgcHJvcGVydHkuCisqCisqIEBwYXJhbSBhWmlwQ29kZSB0aGUgbmV3IHZhbHVlIG9mIHRoZSB6aXBDb2RlIHByb3BlcnR5CisgICAqLworICBwdWJsaWMgdm9pZCBzZXRaaXBDb2RlKFN0cmluZyBhWmlwQ29kZSkgeworICAgIHppcENvZGUgPSBhWmlwQ29kZTt9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9pbnZvaWNlL0VkaXRJbnZvaWNlQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9pbnZvaWNlL0VkaXRJbnZvaWNlQWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTBmMjkwMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL2ludm9pY2UvRWRpdEludm9pY2VBY3Rpb24uamF2YQpAQCAtMCwwICsxLDgwIEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLmludm9pY2U7CisKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CisKKworLyoqCisgKiBJbXBsZW1lbnRhdGlvbiBvZiA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IHBvcHVsYXRlcyBhbiBpbnN0YW5jZSBvZgorICogPGNvZGU+U3Vic2NyaXB0aW9uRm9ybTwvY29kZT4gZnJvbSB0aGUgY3VycmVudGx5IHNwZWNpZmllZCBzdWJzY3JpcHRpb24uCisgKgorICogQHZlcnNpb24gJFJldiQgJERhdGUkCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIEVkaXRJbnZvaWNlQWN0aW9uIGV4dGVuZHMgQWN0aW9uIHsKKworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIFByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorICAgICAqIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKyAgICAgKiBSZXR1cm4gYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2UgZGVzY3JpYmluZyB3aGVyZSBhbmQgaG93CisgICAgICogY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgcmVzcG9uc2UgaGFzCisgICAgICogYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gYWN0aW9uRm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSkKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gaWYgdGhlIGFwcGxpY2F0aW9uIGJ1c2luZXNzIGxvZ2ljIHRocm93cworICAgICAqICBhbiBleGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgQWN0aW9uRm9yd2FyZCBleGVjdXRlKAorCQkJCSBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisJCQkJIEFjdGlvbkZvcm0gZm9ybSwKKwkJCQkgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisJCQkJIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisJdGhyb3dzIEV4Y2VwdGlvbiB7CisKKwkvLyBFeHRyYWN0IGF0dHJpYnV0ZXMgd2Ugd2lsbCBuZWVkCisJTG9jYWxlIGxvY2FsZSA9IGdldExvY2FsZShyZXF1ZXN0KTsKKwlIdHRwU2Vzc2lvbiBzZXNzaW9uID0gcmVxdWVzdC5nZXRTZXNzaW9uKCk7CisKKyAgICAvL1N5c3RlbS5vdXQucHJpbnRsbiggImFjdGlvbiBwZXJmb3JtIGNhbGxlZCIgKTsKKyAgICAgIC8vIEZpbGwgaW4gbmVzdGVkIGNsYXNzZXMKKyAgICBJbnZvaWNlRm9ybSBpbnZvaWNlID0gKEludm9pY2VGb3JtKWZvcm07CisKKyAgICAvL1JlcXVlc3RVdGlscy5wb3B1bGF0ZSggIGludm9pY2UuZ2V0QmlsbEFkZHJlc3MoKSwgImJpbGxBZGRyZXNzLiIsIG51bGwsIHJlcXVlc3QgKTsKKyAgICAvL1JlcXVlc3RVdGlscy5wb3B1bGF0ZSggIGludm9pY2UuZ2V0U2hpcHBpbmdBZGRyZXNzKCksICJzaGlwcGluZ0FkZHJlc3MuIiwgbnVsbCwgcmVxdWVzdCApOworCSAgcmV0dXJuIChtYXBwaW5nLmZpbmRGb3J3YXJkKCJzdWNjZXNzIikpOworCisgICAgfQorCisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL2ludm9pY2UvSW52b2ljZS5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvaW52b2ljZS9JbnZvaWNlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ3YjNhZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL2ludm9pY2UvSW52b2ljZS5qYXZhCkBAIC0wLDAgKzEsMTQzIEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLmludm9pY2U7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKKworLyoqCisgKiBBbiBpbnZvaWNlLgorICovCitwdWJsaWMgY2xhc3MgSW52b2ljZSBleHRlbmRzIEFjdGlvbkZvcm0KK3sKKworICAvKioKKyAgICogU2hpcHBpbmcgYWRkcmVzcworICAgKi8KKyAgcHJpdmF0ZSBBZGRyZXNzIHNoaXBwaW5nQWRkcmVzczsKKworICAvKioKKyAgICogQmlsbCBhZGRyZXNzCisgICAqLworICBwcml2YXRlIEFkZHJlc3MgYmlsbEFkZHJlc3M7CisKKyAgLyoqCisgICAqIEludm9pY2UgdG90YWwgYW1vdW50CisgICAqLworICBwcml2YXRlIGRvdWJsZSBhbW91bnQ7CisKKyAgLyoqCisgICAqIEN1c3RvbWVyIGZpcnN0bmFtZQorICAgKi8KKyAgcHJpdmF0ZSBTdHJpbmcgZmlyc3RuYW1lOworCisgIC8qKgorICAgKiBDdXN0b21lciBsYXN0IG5hbWUKKyAgICovCisgIHByaXZhdGUgU3RyaW5nIGxhc3RuYW1lOworCisgIHB1YmxpYyBJbnZvaWNlKCkKKyAgICB7CisgICAgc2hpcHBpbmdBZGRyZXNzID0gbmV3IEFkZHJlc3MoKTsKKyAgICBiaWxsQWRkcmVzcyA9IG5ldyBBZGRyZXNzKCk7CisgICAgfQorCisgIC8qKgorKiBBY2Nlc3MgbWV0aG9kIGZvciB0aGUgc2hpcHBpbmdBZGRyZXNzIHByb3BlcnR5LgorKgorKiBAcmV0dXJuICAgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHNoaXBwaW5nQWRkcmVzcyBwcm9wZXJ0eQorICAgKi8KKyAgcHVibGljIEFkZHJlc3MgZ2V0U2hpcHBpbmdBZGRyZXNzKCkgeworICAgIHJldHVybiBzaGlwcGluZ0FkZHJlc3M7fQorCisgIC8qKgorICAgKiBAcmV0dXJuIHZvaWQKKyogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIHNoaXBwaW5nQWRkcmVzcyBwcm9wZXJ0eS4KKyoKKyogQHBhcmFtIGFTaGlwcGluZ0FkZHJlc3MgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgc2hpcHBpbmdBZGRyZXNzIHByb3BlcnR5CisgICAqLworICBwdWJsaWMgdm9pZCBzZXRTaGlwcGluZ0FkZHJlc3MoQWRkcmVzcyBhU2hpcHBpbmdBZGRyZXNzKSB7CisgICAgc2hpcHBpbmdBZGRyZXNzID0gYVNoaXBwaW5nQWRkcmVzczt9CisKKyAgLyoqCisqIEFjY2VzcyBtZXRob2QgZm9yIHRoZSBiaWxsQWRkcmVzcyBwcm9wZXJ0eS4KKyoKKyogQHJldHVybiAgIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBiaWxsQWRkcmVzcyBwcm9wZXJ0eQorICAgKi8KKyAgcHVibGljIEFkZHJlc3MgZ2V0QmlsbEFkZHJlc3MoKSB7CisgICAgcmV0dXJuIGJpbGxBZGRyZXNzO30KKworICAvKioKKyAgICogQHJldHVybiB2b2lkCisqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBiaWxsQWRkcmVzcyBwcm9wZXJ0eS4KKyoKKyogQHBhcmFtIGFCaWxsQWRkcmVzcyB0aGUgbmV3IHZhbHVlIG9mIHRoZSBiaWxsQWRkcmVzcyBwcm9wZXJ0eQorICAgKi8KKyAgcHVibGljIHZvaWQgc2V0QmlsbEFkZHJlc3MoQWRkcmVzcyBhQmlsbEFkZHJlc3MpIHsKKyAgICBiaWxsQWRkcmVzcyA9IGFCaWxsQWRkcmVzczt9CisKKyAgLyoqCisqIEFjY2VzcyBtZXRob2QgZm9yIHRoZSBhbW91bnQgcHJvcGVydHkuCisqCisqIEByZXR1cm4gICB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgYW1vdW50IHByb3BlcnR5CisgICAqLworICBwdWJsaWMgZG91YmxlIGdldEFtb3VudCgpIHsKKyAgICByZXR1cm4gYW1vdW50O30KKworICAvKioKKyAgICogQHJldHVybiB2b2lkCisqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBhbW91bnQgcHJvcGVydHkuCisqCisqIEBwYXJhbSBhQW1vdW50IHRoZSBuZXcgdmFsdWUgb2YgdGhlIGFtb3VudCBwcm9wZXJ0eQorICAgKi8KKyAgcHVibGljIHZvaWQgc2V0QW1vdW50KGRvdWJsZSBhQW1vdW50KSB7CisgICAgYW1vdW50ID0gYUFtb3VudDt9CisKKyAgLyoqCisqIEFjY2VzcyBtZXRob2QgZm9yIHRoZSBmaXJzdG5hbWUgcHJvcGVydHkuCisqCisqIEByZXR1cm4gICB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZmlyc3RuYW1lIHByb3BlcnR5CisgICAqLworICBwdWJsaWMgU3RyaW5nIGdldEZpcnN0bmFtZSgpIHsKKyAgICByZXR1cm4gZmlyc3RuYW1lO30KKworICAvKioKKyAgICogQHJldHVybiB2b2lkCisqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBmaXJzdG5hbWUgcHJvcGVydHkuCisqCisqIEBwYXJhbSBhRmlyc3RuYW1lIHRoZSBuZXcgdmFsdWUgb2YgdGhlIGZpcnN0bmFtZSBwcm9wZXJ0eQorICAgKi8KKyAgcHVibGljIHZvaWQgc2V0Rmlyc3RuYW1lKFN0cmluZyBhRmlyc3RuYW1lKSB7CisgICAgZmlyc3RuYW1lID0gYUZpcnN0bmFtZTt9CisKKyAgLyoqCisqIEFjY2VzcyBtZXRob2QgZm9yIHRoZSBsYXN0bmFtZSBwcm9wZXJ0eS4KKyoKKyogQHJldHVybiAgIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBsYXN0bmFtZSBwcm9wZXJ0eQorICAgKi8KKyAgcHVibGljIFN0cmluZyBnZXRMYXN0bmFtZSgpIHsKKyAgICByZXR1cm4gbGFzdG5hbWU7fQorCisgIC8qKgorICAgKiBAcmV0dXJuIHZvaWQKKyogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIGxhc3RuYW1lIHByb3BlcnR5LgorKgorKiBAcGFyYW0gYUxhc3RuYW1lIHRoZSBuZXcgdmFsdWUgb2YgdGhlIGxhc3RuYW1lIHByb3BlcnR5CisgICAqLworICBwdWJsaWMgdm9pZCBzZXRMYXN0bmFtZShTdHJpbmcgYUxhc3RuYW1lKSB7CisgICAgbGFzdG5hbWUgPSBhTGFzdG5hbWU7fQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvaW52b2ljZS9JbnZvaWNlRm9ybS5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvaW52b2ljZS9JbnZvaWNlRm9ybS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwOGM2YjMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9pbnZvaWNlL0ludm9pY2VGb3JtLmphdmEKQEAgLTAsMCArMSwxNjUgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5pbnZvaWNlOworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CisKKworLyoqCisgKi8KKworcHVibGljIGZpbmFsIGNsYXNzIEludm9pY2VGb3JtIGV4dGVuZHMgQWN0aW9uRm9ybSB7CisKKyAgLyoqCisgICAqIFNoaXBwaW5nIGFkZHJlc3MKKyAgICovCisgIHByaXZhdGUgQWRkcmVzcyBzaGlwcGluZ0FkZHJlc3M7CisKKyAgLyoqCisgICAqIEJpbGwgYWRkcmVzcworICAgKi8KKyAgcHJpdmF0ZSBBZGRyZXNzIGJpbGxBZGRyZXNzOworCisgIC8qKgorICAgKiBJbnZvaWNlIHRvdGFsIGFtb3VudAorICAgKi8KKyAgcHJpdmF0ZSBkb3VibGUgYW1vdW50OworCisgIC8qKgorICAgKiBDdXN0b21lciBmaXJzdG5hbWUKKyAgICovCisgIHByaXZhdGUgU3RyaW5nIGZpcnN0bmFtZTsKKworICAvKioKKyAgICogQ3VzdG9tZXIgbGFzdCBuYW1lCisgICAqLworICBwcml2YXRlIFN0cmluZyBsYXN0bmFtZTsKKworICBwdWJsaWMgSW52b2ljZUZvcm0oKQorICAgIHsKKyAgICBzaGlwcGluZ0FkZHJlc3MgPSBuZXcgQWRkcmVzcygpOworICAgIGJpbGxBZGRyZXNzID0gbmV3IEFkZHJlc3MoKTsKKyAgICB9CisKKyAgLyoqCisgICAqIEFjY2VzcyBtZXRob2QgZm9yIHRoZSBzaGlwcGluZ0FkZHJlc3MgcHJvcGVydHkuCisgICAqCisgICAqIEByZXR1cm4gICB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgc2hpcHBpbmdBZGRyZXNzIHByb3BlcnR5CisgICAqLworICBwdWJsaWMgQWRkcmVzcyBnZXRTaGlwcGluZ0FkZHJlc3MoKQorICAgeworICAgIHJldHVybiBzaGlwcGluZ0FkZHJlc3M7fQorCisgIC8qKgorICAgKiBAcmV0dXJuIHZvaWQKKyAgICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIHNoaXBwaW5nQWRkcmVzcyBwcm9wZXJ0eS4KKyAgICoKKyAgICogQHBhcmFtIGFTaGlwcGluZ0FkZHJlc3MgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgc2hpcHBpbmdBZGRyZXNzIHByb3BlcnR5CisgICAqLworICBwdWJsaWMgdm9pZCBzZXRTaGlwcGluZ0FkZHJlc3MoQWRkcmVzcyBhU2hpcHBpbmdBZGRyZXNzKQorICAgIHsKKyAgICBzaGlwcGluZ0FkZHJlc3MgPSBhU2hpcHBpbmdBZGRyZXNzOworICAgIH0KKworICAvKioKKyAgICogQWNjZXNzIG1ldGhvZCBmb3IgdGhlIGJpbGxBZGRyZXNzIHByb3BlcnR5LgorICAgKgorICAgKiBAcmV0dXJuICAgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGJpbGxBZGRyZXNzIHByb3BlcnR5CisgICAqLworICBwdWJsaWMgQWRkcmVzcyBnZXRCaWxsQWRkcmVzcygpCisgICAgeworICAgIHJldHVybiBiaWxsQWRkcmVzczsKKyAgICB9CisKKyAgLyoqCisgICAqIEByZXR1cm4gdm9pZAorICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgYmlsbEFkZHJlc3MgcHJvcGVydHkuCisgICAqCisgICAqIEBwYXJhbSBhQmlsbEFkZHJlc3MgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgYmlsbEFkZHJlc3MgcHJvcGVydHkKKyAgICovCisgIHB1YmxpYyB2b2lkIHNldEJpbGxBZGRyZXNzKEFkZHJlc3MgYUJpbGxBZGRyZXNzKQorICAgIHsKKyAgICBiaWxsQWRkcmVzcyA9IGFCaWxsQWRkcmVzczsKKyAgICB9CisKKyAgLyoqCisgICAqIEFjY2VzcyBtZXRob2QgZm9yIHRoZSBhbW91bnQgcHJvcGVydHkuCisgICAqCisgICAqIEByZXR1cm4gICB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgYW1vdW50IHByb3BlcnR5CisgICAqLworICBwdWJsaWMgZG91YmxlIGdldEFtb3VudCgpCisgICAgeworICAgIHJldHVybiBhbW91bnQ7CisgICAgfQorCisgIC8qKgorICAgKiBAcmV0dXJuIHZvaWQKKyAgICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIGFtb3VudCBwcm9wZXJ0eS4KKyAgICoKKyAgICogQHBhcmFtIGFBbW91bnQgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgYW1vdW50IHByb3BlcnR5CisgICAqLworICBwdWJsaWMgdm9pZCBzZXRBbW91bnQoZG91YmxlIGFBbW91bnQpCisgICAgeworICAgIGFtb3VudCA9IGFBbW91bnQ7CisgICAgfQorCisgIC8qKgorICAgKiBBY2Nlc3MgbWV0aG9kIGZvciB0aGUgZmlyc3RuYW1lIHByb3BlcnR5LgorICAgKgorICAgKiBAcmV0dXJuICAgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGZpcnN0bmFtZSBwcm9wZXJ0eQorICAgKi8KKyAgcHVibGljIFN0cmluZyBnZXRGaXJzdG5hbWUoKQorICAgIHsKKyAgICByZXR1cm4gZmlyc3RuYW1lOworICAgIH0KKworICAvKioKKyAgICogQHJldHVybiB2b2lkCisgICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBmaXJzdG5hbWUgcHJvcGVydHkuCisgICAqCisgICAqIEBwYXJhbSBhRmlyc3RuYW1lIHRoZSBuZXcgdmFsdWUgb2YgdGhlIGZpcnN0bmFtZSBwcm9wZXJ0eQorICAgKi8KKyAgcHVibGljIHZvaWQgc2V0Rmlyc3RuYW1lKFN0cmluZyBhRmlyc3RuYW1lKQorICAgIHsKKyAgICBmaXJzdG5hbWUgPSBhRmlyc3RuYW1lOworICAgIH0KKworICAvKioKKyAgICogQWNjZXNzIG1ldGhvZCBmb3IgdGhlIGxhc3RuYW1lIHByb3BlcnR5LgorICAgKgorICAgKiBAcmV0dXJuICAgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGxhc3RuYW1lIHByb3BlcnR5CisgICAqLworICBwdWJsaWMgU3RyaW5nIGdldExhc3RuYW1lKCkKKyAgICB7CisgICAgcmV0dXJuIGxhc3RuYW1lOworICAgIH0KKworICAvKioKKyAgICogQHJldHVybiB2b2lkCisgICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBsYXN0bmFtZSBwcm9wZXJ0eS4KKyAgICoKKyAgICogQHBhcmFtIGFMYXN0bmFtZSB0aGUgbmV3IHZhbHVlIG9mIHRoZSBsYXN0bmFtZSBwcm9wZXJ0eQorICAgKi8KKyAgcHVibGljIHZvaWQgc2V0TGFzdG5hbWUoU3RyaW5nIGFMYXN0bmFtZSkKKyAgICB7CisgICAgbGFzdG5hbWUgPSBhTGFzdG5hbWU7CisgICAgfQorCit9CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL2xhbmcvU2VsZWN0TG9jYWxlQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9sYW5nL1NlbGVjdExvY2FsZUFjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0MDBkYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9sYW5nL1NlbGVjdExvY2FsZUFjdGlvbi5qYXZhCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5sYW5nOworCitpbXBvcnQgamF2YS51dGlsLkxvY2FsZTsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vzc2lvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLnRhZ2xpYi5Db21wb25lbnRDb25zdGFudHM7CisKK3B1YmxpYyBmaW5hbCBjbGFzcyBTZWxlY3RMb2NhbGVBY3Rpb24gZXh0ZW5kcyBBY3Rpb24geworCisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHVibGljIE1ldGhvZHMKKworCisgICAgLyoqCisgICAgICogUHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgICAgICogcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorICAgICAqIFJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlIGFuZCBob3cKKyAgICAgKiBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSByZXNwb25zZSBoYXMKKyAgICAgKiBhbHJlYWR5IGJlZW4gY29tcGxldGVkLgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSBhY3Rpb25Gb3JtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KQorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgKiBAcGFyYW0gcmVzcG9uc2UgVGhlIEhUVFAgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiBpZiB0aGUgYXBwbGljYXRpb24gYnVzaW5lc3MgbG9naWMgdGhyb3dzCisgICAgICogIGFuIGV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkIGV4ZWN1dGUoCisJCQkJIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKwkJCQkgQWN0aW9uRm9ybSBmb3JtLAorCQkJCSBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKwkJCQkgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkKKwl0aHJvd3MgRXhjZXB0aW9uIHsKKworCS8vIEV4dHJhY3QgcGFyYW1ldGVycyB3ZSB3aWxsIG5lZWQKKyAgICBTdHJpbmcgcmVxdWVzdGVkID0gKFN0cmluZylyZXF1ZXN0LmdldFBhcmFtZXRlciggImxhbmd1YWdlIiApOworCisgICAgaWYoIHJlcXVlc3RlZCA9PSBudWxsICkKKyAJICAgIHJldHVybiAobWFwcGluZy5maW5kRm9yd2FyZCgiZmFpbGVkIikpOworICAgIGlmKCByZXF1ZXN0ZWQuZXF1YWxzSWdub3JlQ2FzZSggIkZSIiApICkKKyAgICAgIHNldExvY2FsZSggcmVxdWVzdCwgTG9jYWxlLkZSQU5DRSApOworICAgIGlmKCByZXF1ZXN0ZWQuZXF1YWxzSWdub3JlQ2FzZSggIlVLIiApICkKKyAgICAgIHNldExvY2FsZSggcmVxdWVzdCwgTG9jYWxlLlVLICk7CisgICAgaWYoIHJlcXVlc3RlZC5lcXVhbHNJZ25vcmVDYXNlKCAiREUiICkgKQorICAgICAgc2V0TG9jYWxlKCByZXF1ZXN0LCBMb2NhbGUuR0VSTUFOICk7CisKKyAgICAvL1N5c3RlbS5vdXQucHJpbnRsbiggImFjdGlvbiBwZXJmb3JtIGNhbGxlZCIgKTsKKyAgICAgIC8vIEZpbGwgaW4gbmVzdGVkIGNsYXNzZXMKKwkgIHJldHVybiAobWFwcGluZy5maW5kRm9yd2FyZCgic3VjY2VzcyIpKTsKKyAgICB9CisKKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRMb2NhbGUoIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LCBMb2NhbGUgbG9jYWxlICkKKyAgICAgIHsKKyAgICAgIEh0dHBTZXNzaW9uIHNlc3Npb24gPSByZXF1ZXN0LmdldFNlc3Npb24oZmFsc2UpOworICAgICAgaWYgKHNlc3Npb24gIT0gbnVsbCkKKyAgICAgICAgc2Vzc2lvbi5zZXRBdHRyaWJ1dGUoQ29tcG9uZW50Q29uc3RhbnRzLkxPQ0FMRV9LRVksIGxvY2FsZSk7CisKKyAgICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3BvcnRhbC9NZW51U2V0dGluZ3MuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3BvcnRhbC9NZW51U2V0dGluZ3MuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTZlMWU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvcG9ydGFsL01lbnVTZXR0aW5ncy5qYXZhCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5wb3J0YWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCisgIC8qKgorICAgKiBPYmplY3RzIG9mIHRoaXMgY2xhc3MgaG9sZCBtZW51IHNldHRpbmdzIGZvciBvbmUgdXNlci4KKyAgICovCisgICBwdWJsaWMgY2xhc3MgTWVudVNldHRpbmdzCisgICB7CisgICAgICAgLyoqIExpc3Qgb2YgaXRlbXMgKi8KKyAgICAgcHJvdGVjdGVkIExpc3QgaXRlbXMgPSBuZXcgQXJyYXlMaXN0KCk7CisKKyAgICAgICAvKioKKyAgICAgICAgKiBHZXQgbGlzdCBvZiBpdGVtcworICAgICAgICAqLworICAgICBwdWJsaWMgTGlzdCBnZXRJdGVtcyggKQorICAgICAgIHsKKyAgICAgICByZXR1cm4gaXRlbXM7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogQWRkIGFuIGl0ZW0gdG8gdGhlIGxpc3QKKyAgICAgICAgKi8KKyAgICAgcHVibGljIHZvaWQgYWRkSXRlbSggT2JqZWN0IGl0ZW0gKQorICAgICAgIHsKKyAgICAgICBpdGVtcy5hZGQoIGl0ZW0gKTsKKyAgICAgICB9CisKKyAgICAgICAvKioKKyAgICAgICAgKiBBZGQgYWxsIGl0ZW1zIHRvIHRoZSBsaXN0LgorICAgICAgICAqLworICAgICBwdWJsaWMgdm9pZCBhZGRJdGVtcyggTGlzdCBsaXN0ICkKKyAgICAgICB7CisgICAgICAgaXRlbXMuYWRkQWxsKCBsaXN0ICk7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogUmVzZXQgc2V0dGluZ3MKKyAgICAgICAgKi8KKyAgICAgcHVibGljIHZvaWQgcmVzZXQoKQorICAgICAgIHsKKyAgICAgICBpdGVtcy5jbGVhcigpOworICAgICAgIH0KKworICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICAgICB7CisgICAgICAgcmV0dXJuICJpdGVtcz0iICsgaXRlbXM7CisgICAgICAgfQorICAgfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvcG9ydGFsL01lbnVTZXR0aW5nc0Zvcm0uamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3BvcnRhbC9NZW51U2V0dGluZ3NGb3JtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjYyNjM3ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3BvcnRhbC9NZW51U2V0dGluZ3NGb3JtLmphdmEKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDE5OTktMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLnBvcnRhbDsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworCisKKy8qKgorICogQWN0aW9uIGZvcm0gdXNlZCB0byByZWFkIGRhdGEgZnJvbSB3ZWIgcGFnZSBmb3JtLgorICovCitwdWJsaWMgZmluYWwgY2xhc3MgTWVudVNldHRpbmdzRm9ybSBleHRlbmRzIEFjdGlvbkZvcm0gIHsKKworICAgIC8qKiBWYWxpZGF0ZSB2YWx1ZSAqLworICBwcm90ZWN0ZWQgU3RyaW5nIHZhbGlkYXRlOworICAgIC8qKiBlbXB0eSBsaXN0IHVzZWQgYnkgcmVzZXQgKi8KKyAgcHJvdGVjdGVkIFN0cmluZ1tdIGVtcHR5ID0ge307CisgICAgLyoqIGxpc3Qgb2YgaXRlbXMgc2VsZWN0ZWQgYnkgdXNlciAqLworICBwcm90ZWN0ZWQgU3RyaW5nW10gc2VsZWN0ZWQ7CisKKyAgICAvKioKKyAgICAgKiBTZXQgc2VsZWN0ZWQgaXRlbXMKKyAgICAgKi8KKyAgcHVibGljIHZvaWQgc2V0U2VsZWN0ZWQoIFN0cmluZyBhcnJheVtdICkKKyAgICB7CisgICAgc2VsZWN0ZWQgPSBhcnJheTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgc2VsZWN0ZWQgaXRlbXMKKyAgICAgKi8KKyAgcHVibGljIFN0cmluZ1tdIGdldFNlbGVjdGVkKCkKKyAgICB7CisgICAgcmV0dXJuIHNlbGVjdGVkOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBzZWxlY3RlZCBpdGVtcworICAgICAqLworICBwdWJsaWMgU3RyaW5nW10gZ2V0U2VsZWN0ZWRDaG9pY2VzKCkKKyAgICB7CisgICAgcmV0dXJuIGVtcHR5OworICAgIH0KKworICAgLyoqCisgICAgKiBJcyB0aGlzIGZvcm0gc3VibWl0dGVkID8KKyAgICAqLworICBwdWJsaWMgYm9vbGVhbiBpc1N1Ym1pdHRlZCgpCisgICAgeworICAgIHJldHVybiB2YWxpZGF0ZSAhPSBudWxsOworICAgIH0KKworICAgLyoqCisgICAgKiBJcyB0aGlzIGZvcm0gc3VibWl0dGVkID8KKyAgICAqLworICBwdWJsaWMgdm9pZCBzZXRWYWxpZGF0ZSggU3RyaW5nIHZhbHVlKQorICAgIHsKKyAgICB0aGlzLnZhbGlkYXRlID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVzZXQgcHJvcGVydGllcworICAgICAqLworICBwdWJsaWMgdm9pZCByZXNldCgpCisgICAgeworICAgIHNlbGVjdGVkID0gIGVtcHR5OworICAgIHZhbGlkYXRlID0gbnVsbDsKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3BvcnRhbC9Qb3J0YWxDYXRhbG9nLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9wb3J0YWwvUG9ydGFsQ2F0YWxvZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1MTYzZDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9wb3J0YWwvUG9ydGFsQ2F0YWxvZy5qYXZhCkBAIC0wLDAgKzEsMjA4IEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMucG9ydGFsOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKKworLyoqCisgKiBBIGNhdGFsb2cgb2YgYXZhaWxhYmxlIHRpbGVzIGZvciBhIHBvcnRhbC4KKyAqIFRpbGVzIGRlbm90ZSBhIGxvY2FsIFVSTCBvciBhIFRpbGUgZGVmaW5pdGlvbiBuYW1lLgorICogVG8gY2hlY2sgOiBzaG91bGQgYmUgcG9zc2libGUgdG8gcHV0IENvbXBvbmVudERlZmluaXRpb24gY2xhc3MgYWxzby4KKyAqCisgKi8KK3B1YmxpYyBjbGFzcyBQb3J0YWxDYXRhbG9nCit7CisgICAgICAgLyoqIExpc3Qgb2YgYXZhaWxhYmxlIFRpbGVzICovCisgICAgIHByb3RlY3RlZCBMaXN0IHRpbGVzID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgIC8qKiBMaXN0IG9mIFRpbGVzIGxhYmVscyAqLworICAgICBwcm90ZWN0ZWQgTGlzdCB0aWxlTGFiZWxzID0gbmV3IEFycmF5TGlzdCgpOworCisgICAgICAgLyoqCisgICAgICAgICogU2V0IGxpc3Qgb2YgdGlsZXMuCisgICAgICAgICogTGFiZWxzIGNvbWUgZnJvbSB0aWxlcyBuYW1lcworICAgICAgICAqIEBwYXJhbSBsaXN0IGxpc3Qgb2YgdGlsZXMKKyAgICAgICAgKi8KKyAgICAgcHVibGljIHZvaWQgc2V0VGlsZXMoIExpc3QgbGlzdCkKKyAgICAgICB7CisgICAgICAgc2V0VGlsZXMobGlzdCwgbGlzdCk7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogYWRkIGxpc3QgdG8gbGlzdCBvZiBhdmFpbGFibGUgVGlsZXMKKyAgICAgICAgKiBMYWJlbHMgY29tZSBmcm9tIHRpbGVzIG5hbWVzCisgICAgICAgICogQHBhcmFtIGxpc3QgbGlzdCBvZiB0aWxlcworICAgICAgICAqLworICAgICBwdWJsaWMgdm9pZCBhZGRUaWxlcyggTGlzdCBsaXN0KQorICAgICAgIHsKKyAgICAgICBhZGRUaWxlcyggbGlzdCwgbGlzdCk7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogU2V0IGxpc3Qgb2YgYXZhaWxhYmxlIFRpbGVzLgorICAgICAgICAqIFByZXZpb3VzIGxpc3QgaXMgZGlzZ3VhcmRlZC4KKyAgICAgICAgKiBAcGFyYW0gbGlzdCBsaXN0IG9mIHRpbGVzCisgICAgICAgICogQHBhcmFtIGxhYmVscyBjb3JyZXNwb25kaW5nIGxhYmVscy4gTGlzdCBzaXplIG11c3QgYmUgdGhlIHNhbWUgYXMgbGlzdC4KKyAgICAgICAgKiBJZiBsYWJlbHMgaXMgbnVsbCwgdXNlIGxpc3Qgb2YgdGlsZXMuCisgICAgICAgICogQHRocm93cyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24gaWYgbGlzdCBhbmQgbGFiZWxzIGFyZW4ndCB0aGUgc2FtZSBzaXplLgorICAgICAgICAqLworICAgICBwdWJsaWMgdm9pZCBzZXRUaWxlcyggTGlzdCBsaXN0LCBMaXN0IGxhYmVscykKKyAgICAgICAgIHRocm93cyBBcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24KKyAgICAgICB7CisgICAgICAgICAvLyBJZiBubyBsYWJlbHMsIHVzZSBsaXN0IGtleXMKKyAgICAgICBpZiggbGFiZWxzID09IG51bGwgKQorICAgICAgICAgbGFiZWxzID0gbGlzdDsKKyAgICAgICAgIC8vIENoZWNrIHNpemVzCisgICAgICAgaWYoIGxpc3Quc2l6ZSgpICE9IGxhYmVscy5zaXplKCkgKQorICAgICAgICAgey8vIGVycm9yCisgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJFcnJvciA6IGxpc3QgYW5kIGxhYmVscyBzaXplIG11c3QgYmUgdGhlIHNhbWUuIiApOworICAgICAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5BcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oICJMaXN0IG9mIHRpbGVzIGFuZCBsaXN0IG9mIGxhYmVscyBtdXN0IGJlIG9mIHRoZSBzYW1lIHNpemUiICk7CisgICAgICAgICB9CisgICAgICAgdGhpcy50aWxlcyA9IGxpc3Q7CisgICAgICAgdGlsZUxhYmVscyA9IGxhYmVsczsKKyAgICAgICB9CisKKyAgICAgICAvKioKKyAgICAgICAgKiBhZGQgbGlzdCBhbmQgbGFiZWxzIHRvIGxpc3Qgb2YgYXZhaWxhYmxlIFRpbGVzLgorICAgICAgICAqIElmIGxhYmVscyBpcyBudWxsLCB1c2Uga2V5cyBsaXN0IGFzIGxhYmVscy4KKyAgICAgICAgKiBAbGlzdCBsaXN0IG9mIGNob2ljZSBrZXlzIHRvIGFkZAorICAgICAgICAqIEBwYXJhbSBsYWJlbHMgY29ycmVzcG9uZGluZyBsYWJlbHMuIExpc3Qgc2l6ZSBtdXN0IGJlIHRoZSBzYW1lIGFzIGxpc3QuCisgICAgICAgICogSWYgbGFiZWxzIGlzIG51bGwsIHVzZSBsaXN0IG9mIHRpbGVzLgorICAgICAgICAqIEB0aHJvd3MgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uIGlmIGxpc3QgYW5kIGxhYmVscyBhcmVuJ3QgdGhlIHNhbWUgc2l6ZS4KKyAgICAgICAgKi8KKyAgICAgcHVibGljIHZvaWQgYWRkVGlsZXMoIExpc3QgbGlzdCwgTGlzdCBsYWJlbHMpCisgICAgICAgICB0aHJvd3MgQXJyYXlJbmRleE91dE9mQm91bmRzRXhjZXB0aW9uCisgICAgICAgeworICAgICAgICAgLy8gSWYgbm8gbGFiZWxzLCB1c2UgbGlzdCBrZXlzCisgICAgICAgaWYoIGxhYmVscyA9PSBudWxsICkKKyAgICAgICAgIGxhYmVscyA9IGxpc3Q7CisgICAgICAgICAvLyBDaGVjayBzaXplcworICAgICAgICBpZih0aWxlcz09IG51bGwpCisgICAgICAgICB7CisgICAgICAgICBzZXRUaWxlcyhsaXN0LCBsYWJlbHMpOworICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorCisgICAgICAgaWYoIGxpc3Quc2l6ZSgpICE9IGxhYmVscy5zaXplKCkgKQorICAgICAgICAgey8vIGVycm9yCisgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJFcnJvciA6IGxpc3QgYW5kIGxhYmVscyBzaXplIG11c3QgYmUgdGhlIHNhbWUuIiApOworICAgICAgICAgdGhyb3cgbmV3IGphdmEubGFuZy5BcnJheUluZGV4T3V0T2ZCb3VuZHNFeGNlcHRpb24oICJMaXN0IG9mIHRpbGVzIGFuZCBsaXN0IG9mIGxhYmVscyBtdXN0IGJlIG9mIHRoZSBzYW1lIHNpemUiICk7CisgICAgICAgICB9CisgICAgICAgdGlsZXMuYWRkQWxsKGxpc3QpOworICAgICAgIHRpbGVMYWJlbHMuYWRkQWxsKGxhYmVscyk7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogR2V0IGxpc3Qgb2YgYXZhaWxhYmxlIFRpbGVzCisgICAgICAgICovCisgICAgIHB1YmxpYyBMaXN0IGdldFRpbGVzKCApCisgICAgICAgeworICAgICAgIHJldHVybiB0aWxlczsKKyAgICAgICB9CisKKyAgICAgICAvKioKKyAgICAgICAgKiBHZXQgbGlzdCBvZiBsYWJlbHMgZm9yIFRpbGVzCisgICAgICAgICovCisgICAgIHB1YmxpYyBMaXN0IGdldFRpbGVzTGFiZWxzKCApCisgICAgICAgeworICAgICAgIHJldHVybiB0aWxlTGFiZWxzOworICAgICAgIH0KKworICAgICAgIC8qKgorICAgICAgICAqIEdldCBsYWJlbCBmb3Igc3BlY2lmaWVkIFRpbGUsIGlkZW50aWZpZWQgYnkgaXRzIGtleS4KKyAgICAgICAgKiBAcGFyYW0ga2V5IFRpbGUga2V5CisgICAgICAgICovCisgICAgIHB1YmxpYyBTdHJpbmcgZ2V0VGlsZUxhYmVsKCBPYmplY3Qga2V5ICkKKyAgICAgICB7CisgICAgICAgaW50IGluZGV4ID0gdGlsZXMuaW5kZXhPZigga2V5ICk7CisgICAgICAgaWYoaW5kZXg9PS0xKQorICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgcmV0dXJuIChTdHJpbmcpdGlsZUxhYmVscy5nZXQoaW5kZXgpOworICAgICAgIH0KKworICAgICAgIC8qKgorICAgICAgICAqIEdldCBsaXN0IG9mIGxhYmVscyBmb3IgVGlsZSBrZXlzCisgICAgICAgICogQHBhcmFtIGtleXMgTGlzdCBvZiBrZXlzIHRvIHNlYXJjaCBmb3IgbGFiZWxzLgorICAgICAgICAqLworICAgICBwdWJsaWMgTGlzdCBnZXRUaWxlTGFiZWxzKCBMaXN0IEtleXMgKQorICAgICAgIHsKKyAgICAgICBMaXN0IGxpc3RMYWJlbHMgPSBuZXcgQXJyYXlMaXN0KCk7CisKKyAgICAgICBJdGVyYXRvciBpID0gS2V5cy5pdGVyYXRvcigpOworICAgICAgIHdoaWxlKGkuaGFzTmV4dCgpKQorICAgICAgICAgeworICAgICAgICAgT2JqZWN0IGtleSA9IGkubmV4dCgpOworICAgICAgICAgbGlzdExhYmVscy5hZGQoIGdldFRpbGVMYWJlbChrZXkpICk7CisgICAgICAgICB9IC8vIGVuZCBsb29wCisgICAgICAgcmV0dXJuIGxpc3RMYWJlbHM7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogR2V0IFRpbGVzIGNvcnJlc3BvbmRpbmcgdG8ga2V5cy4KKyAgICAgICAgKiBLZXlzIGFyZSB0aGUgb25lIHJldHVybmVkIGJ5IHRoZSBzZXR0aW5nIHBhZ2UuIEtleXMgYXJlIHVzdWFsbHkgaXNzdWUKKyAgICAgICAgKiBmcm9tIHZhbHVlcyByZXR1cm5lZCBieSBnZXRUaWxlcygpLgorICAgICAgICAqIElmIGEga2V5IGlzbid0IHJlY29nbml6ZSwgaXQgaXMgZGlzZ3VhcmRlZCBmcm9tIHRoZSByZXR1cm5lZCBsaXN0LgorICAgICAgICAqIElmIGEga2V5IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWFsIGtleSwgYXBwcm9wcmlhdGUgJ2RlZmluaXRpb24nIGlzIGNyZWF0ZWQuCisgICAgICAgICogUmV0dXJuZWQgbGlzdCBjb250YWlucyB0aWxlcyBVUkwsIGRlZmluaXRpb24gbmFtZSBhbmQgZGVmaW5pdGlvbnMgc3VpdGFibGUKKyAgICAgICAgKiBhcyBhdHRyaWJ1dGUgb2YgPHRpbGVzOmluc2VydCA+LgorICAgICAgICAqCisgICAgICAgICogQGtleXMgYXJyYXkgb2Yga2V5cyB0byBhZGQgdG8gbGlzdC4KKyAgICAgICAgKi8KKyAgICAgcHVibGljIExpc3QgZ2V0VGlsZXMoIFN0cmluZyBrZXlzW10gKQorICAgICAgIHsKKyAgICAgICBMaXN0IGxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisKKyAgICAgICAgIC8vIGFkZCBrZXlzIHRvIGxpc3QKKyAgICAgICBmb3IoaW50IGk9MDtpPGtleXMubGVuZ3RoO2krKykKKyAgICAgICAgIHsKKyAgICAgICAgIFN0cmluZyBrZXkgPSBrZXlzW2ldOworICAgICAgICAgaWYoIGtleS5pbmRleE9mKCAnQCcgKT4wICkKKyAgICAgICAgICAgeyAvLyBzcGVjaWFsIGtleQorICAgICAgICAgICB9CisgICAgICAgICBpZiggdGlsZXMuY29udGFpbnMoIGtleSApICkKKyAgICAgICAgICAgeyAvLyBvaywgYWRkIGl0CisgICAgICAgICAgIGxpc3QuYWRkKCBrZXkgKTsKKyAgICAgICAgICAgfQorICAgICAgICAgfSAvLyBlbmQgbG9vcAorICAgICAgIHJldHVybiBsaXN0OworICAgICAgIH0KKworICAgICAgIC8qKgorICAgICAgICAqIFNldCBsYWJlbHMgZm9yIHRpbGVzIFRpbGVzLgorICAgICAgICAqLworICAgICBwcm90ZWN0ZWQgdm9pZCBzZXRUaWxlTGFiZWxzKCBMaXN0IGxpc3QpCisgICAgICAgeworICAgICAgIHRoaXMudGlsZUxhYmVscyA9IGxpc3Q7CisgICAgICAgfQorICAgICAgIC8qKgorICAgICAgICAqIGFkZCBsaXN0IHRvIGxpc3Qgb2YgdGlsZXMgVGlsZXMKKyAgICAgICAgKi8KKyAgICAgcHJvdGVjdGVkIHZvaWQgYWRkVGlsZUxhYmVscyggTGlzdCBsaXN0KQorICAgICAgIHsKKyAgICAgICBpZih0aWxlTGFiZWxzPT0gbnVsbCkKKyAgICAgICAgIHsKKyAgICAgICAgIHNldFRpbGVMYWJlbHMobGlzdCk7CisgICAgICAgICByZXR1cm47CisgICAgICAgICB9CisgICAgICAgdGlsZUxhYmVscy5hZGRBbGwobGlzdCk7CisgICAgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9wb3J0YWwvUG9ydGFsU2V0dGluZ3MuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3BvcnRhbC9Qb3J0YWxTZXR0aW5ncy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmNTYyZmEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9wb3J0YWwvUG9ydGFsU2V0dGluZ3MuamF2YQpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDE5OTktMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLnBvcnRhbDsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKKyAgLyoqCisgICAqIE9iamVjdHMgb2YgdGhpcyBjbGFzcyBob2xkIHBvcnRhbCBzZXR0aW5ncyBmb3Igb25lIHVzZXIuCisgICAqLworICAgcHVibGljIGNsYXNzIFBvcnRhbFNldHRpbmdzCisgICB7CisgICAgICAgLyoqIE51bWJlciBvZiBjb2x1bW1zKi8KKyAgICAgcHJvdGVjdGVkIGludCBudW1Db2xzOworICAgICAgIC8qKiBMaXN0IG9mIGxpc3RzIChvbmUgcGVyIGNvbHVtbikgKi8KKyAgICAgcHJvdGVjdGVkIExpc3QgbGlzdHMgPSBuZXcgQXJyYXlMaXN0KCk7CisKKyAgICAgICAvKioKKyAgICAgICAgKiBHZXQgbnVtYmVyIG9mIGNvbHVtbnMuCisgICAgICAgICovCisgICAgIHB1YmxpYyBpbnQgZ2V0TnVtQ29scygpCisgICAgICAgeworICAgICAgIHJldHVybiBudW1Db2xzOworICAgICAgIH0KKyAgICAgICAvKioKKyAgICAgICAgKiBTZXQgbnVtYmVyIG9mIGNvbHVtbnMKKyAgICAgICAgKi8KKyAgICAgcHVibGljIHZvaWQgc2V0TnVtQ29scyggU3RyaW5nIG51bUNvbHMgKQorICAgICAgIHsKKyAgICAgICBzZXROdW1Db2xzKCBJbnRlZ2VyLnBhcnNlSW50KG51bUNvbHMpICk7CisgICAgICAgfQorICAgICAgIC8qKgorICAgICAgICAqIFNldCBudW1iZXIgb2YgY29sdW1ucy4KKyAgICAgICAgKiBFbnN1cmUgY2FwYWNpdHkgZm9yIGludGVybmFsIGxpc3QuCisgICAgICAgICovCisgICAgIHB1YmxpYyB2b2lkIHNldE51bUNvbHMoIGludCBudW1Db2xzICkKKyAgICAgICB7CisgICAgICAgdGhpcy5udW1Db2xzID0gbnVtQ29sczsKKyAgICAgICB9CisgICAgICAgLyoqCisgICAgICAgICogR2V0IGxpc3QgYXQgc3BlY2lmaWVkIGluZGV4CisgICAgICAgICovCisgICAgIHB1YmxpYyBMaXN0IGdldExpc3RBdCggaW50IGluZGV4ICkKKyAgICAgICB7CisgICAgICAgcmV0dXJuIChMaXN0KWxpc3RzLmdldChpbmRleCk7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogQWRkIGEgbGlzdCB3aXRob3V0IGNoZWNraW5nCisgICAgICAgICovCisgICAgIHB1YmxpYyB2b2lkIGFkZExpc3QoIExpc3QgbGlzdCApCisgICAgICAgeworICAgICAgIGxpc3RzLmFkZCggbGlzdCk7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogU2V0IGxpc3QgYXQgc3BlY2lmaWVkIGluZGV4LiBQcmV2aW91cyBsaXN0IGlzIGRpc2d1YXJkZWQuCisgICAgICAgICogQWRkIGVtcHR5IGxpc3QgaWYgbmVjZXNzYXJ5LgorICAgICAgICAqIEluZGV4ZXMgZ28gZnJvbSAwIHRvIG51bUNvbHMtMQorICAgICAgICAqIEBwYXJhbSBpbmRleCBpbmRleCBvZiB0aGUgbGlzdCB0byBhZGQuCisgICAgICAgICogQHBhcmFtIGxpc3QgbGlzdCB0byBzZXQuCisgICAgICAgICovCisgICAgIHB1YmxpYyB2b2lkIHNldExpc3RBdCggaW50IGluZGV4LCBMaXN0IGxpc3QgKQorICAgICAgIHsKKyAgICAgICAgIC8vIEZpcnN0LCBlbnN1cmUgY2FwYWNpdHkKKyAgICAgICB3aGlsZSggaW5kZXg+bGlzdHMuc2l6ZSgpICkgbGlzdHMuYWRkKG5ldyBBcnJheUxpc3QoKSk7CisgICAgICAgbGlzdHMuYWRkKCBpbmRleCwgbGlzdCk7CisgICAgICAgfQorCisgICAgICAgLyoqCisgICAgICAgICogUmVzZXQgc2V0dGluZ3MKKyAgICAgICAgKi8KKyAgICAgcHVibGljIHZvaWQgcmVzZXQoKQorICAgICAgIHsKKyAgICAgICBudW1Db2xzID0gMDsKKyAgICAgICBsaXN0cy5jbGVhcigpOworICAgICAgIH0KKworICAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkKKyAgICAgICB7CisgICAgICAgcmV0dXJuICJjb2xDb3VudD0iICsgbnVtQ29scworICAgICAgICAgICAgICArICIgLCBsaXN0cz0iICsgbGlzdHM7CisgICAgICAgfQorICAgfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvcG9ydGFsL1BvcnRhbFNldHRpbmdzRm9ybS5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvcG9ydGFsL1BvcnRhbFNldHRpbmdzRm9ybS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2NGMxOWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9wb3J0YWwvUG9ydGFsU2V0dGluZ3NGb3JtLmphdmEKQEAgLTAsMCArMSwyNDUgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5wb3J0YWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CisKKworLyoqCisgKiBBY3Rpb24gZm9ybSB1c2VkIHRvIHJlYWQgZGF0YSBmcm9tIHdlYiBwYWdlIGZvcm0uCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBQb3J0YWxTZXR0aW5nc0Zvcm0gZXh0ZW5kcyBBY3Rpb25Gb3JtICB7CisKKyAgICAvKiogVmFsaWRhdGUgdmFsdWUgKi8KKyAgcHJvdGVjdGVkIFN0cmluZyB2YWxpZGF0ZTsKKyAgICAvKiogZW1wdHkgbGlzdCB1c2VkIGJ5IHJlc2V0ICovCisgIHByb3RlY3RlZCBTdHJpbmdbXSBlbXB0eSA9IHt9OworICAgIC8qKiBsaXN0IG9mICJyZW1haW5pbmciIGNob2ljZXMgKi8KKyAgcHJvdGVjdGVkIFN0cmluZ1tdIHJlbWFpbmluZyA9IGVtcHR5OworICAgIC8qKiBsaXN0IG9mIHVzZXIgY29sdW1ucyAqLworICBwcm90ZWN0ZWQgTGlzdCBjb2x1bW5zID0gbmV3IEFycmF5TGlzdCgpOworICAgIC8qKiBsaXN0IG9mIHVzZXIgY29sdW1ucyBsYWJlbHMgKi8KKyAgcHJvdGVjdGVkIExpc3QgY29sdW1uTGFiZWxzID0gbmV3IEFycmF5TGlzdCgpOworICAgIC8qKiBsaXN0IG9mIGNvbHVtbnMgc2VsZWN0ZWQgYnkgdXNlciAqLworICBwcm90ZWN0ZWQgTGlzdCBuZXdDb2xzID0gbmV3IEFycmF5TGlzdCgpOworCisgICAgLyoqIENob2ljZSBsaXN0ICovCisgIHByb3RlY3RlZCBMaXN0IGNob2ljZTsKKyAgICAvKiogQ2hvaWNlIGxpc3QgbGFiZWxzICovCisgIHByb3RlY3RlZCBMaXN0IGNob2ljZUxhYmVsczsKKyAgICAvKiogSXMgaW5pdGlhbGl6ZWQgPyAqLworICBwcm90ZWN0ZWQgYm9vbGVhbiBpbml0aWFsaXplZCA9IGZhbHNlOworCisKKyAgICAvKioKKyAgICAgKiBTZXQgY29sCisgICAgICovCisgIHB1YmxpYyB2b2lkIHNldENvbCggaW50IGluZGV4LCBMaXN0IGNvbCApCisgICAgeworICAgIGNvbHVtbnMuc2V0KCBpbmRleCwgY29sKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgY29sCisgICAgICovCisgIHB1YmxpYyB2b2lkIGFkZENvbCggTGlzdCBjb2wgKQorICAgIHsKKyAgICBjb2x1bW5zLmFkZCggY29sKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgY29sIExhYmVscworICAgICAqLworICBwdWJsaWMgTGlzdCBnZXRDb2xMYWJlbHMoaW50IGluZGV4KQorICAgIHsKKyAgICByZXR1cm4gKExpc3QpY29sdW1uTGFiZWxzLmdldChpbmRleCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGNvbCBMYWJlbHMKKyAgICAgKi8KKyAgcHVibGljIHZvaWQgc2V0Q29sTGFiZWxzKCBpbnQgaW5kZXgsIExpc3QgY29sICkKKyAgICB7CisgICAgY29sdW1uTGFiZWxzLnNldCggaW5kZXgsIGNvbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGNvbCBMYWJlbHMKKyAgICAgKi8KKyAgcHVibGljIHZvaWQgYWRkQ29sTGFiZWxzKCBMaXN0IGNvbCApCisgICAgeworICAgIGNvbHVtbkxhYmVscy5hZGQoIGNvbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGNvbAorICAgICAqLworICBwdWJsaWMgTGlzdCBnZXRDb2woaW50IGluZGV4KQorICAgIHsKKyAgICByZXR1cm4gKExpc3QpY29sdW1ucy5nZXQoaW5kZXgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBjb2wgTGFiZWxzCisgICAgICovCisgIHB1YmxpYyB2b2lkIHNldE5ld0NvbCggaW50IGluZGV4LCBTdHJpbmcgbGlzdFtdICkKKyAgICB7CisgICAgICAvLyBlbnN1cmUgY2FwYWNpdHkKKyAgICB3aGlsZSggaW5kZXg+PW5ld0NvbHMuc2l6ZSgpKW5ld0NvbHMuYWRkKG51bGwpOworICAgIG5ld0NvbHMuc2V0KCBpbmRleCwgbGlzdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGNvbAorICAgICAqLworICBwdWJsaWMgU3RyaW5nW10gZ2V0TmV3Q29sKGludCBpbmRleCkKKyAgICB7CisgICAgaWYobmV3Q29scz09bnVsbCB8fCBpbmRleD49bmV3Q29scy5zaXplKCkpCisgICAgICByZXR1cm4gbnVsbDsKKyAgICByZXR1cm4gKFN0cmluZ1tdKW5ld0NvbHMuZ2V0KGluZGV4KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgbnVtYmVyIG9mIGNvbHVtbnMKKyAgICAgKi8KKyAgcHVibGljIGludCBnZXROdW1Db2woKQorICAgIHsKKyAgICByZXR1cm4gbmV3Q29scy5zaXplKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGxpc3QxCisgICAgICovCisgIHB1YmxpYyB2b2lkIHNldEwxKCBTdHJpbmcgYXJyYXlbXSApCisgICAgeworICAgIHNldE5ld0NvbCgxLCBhcnJheSk7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldCBsaXN0MQorICAgICAqLworICBwdWJsaWMgU3RyaW5nW10gZ2V0TDEoKQorICAgIHsKKyAgICByZXR1cm4gZ2V0TmV3Q29sKDEpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBsaXN0MQorICAgICAqLworICBwdWJsaWMgdm9pZCBzZXRMMCggU3RyaW5nIGFycmF5W10gKQorICAgIHsKKyAgICBzZXROZXdDb2woMCwgYXJyYXkpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBTZXQgbGlzdDEKKyAgICAgKi8KKyAgcHVibGljIFN0cmluZ1tdIGdldEwwKCkKKyAgICB7CisgICAgcmV0dXJuIGdldE5ld0NvbCgwKTsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0IGxpc3QxCisgICAgICovCisgIHB1YmxpYyB2b2lkIHNldFJlbWFpbmluZyggU3RyaW5nIGFycmF5W10gKQorICAgIHsKKyAgICByZW1haW5pbmcgPSBhcnJheTsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0IGxpc3QxCisgICAgICovCisgIHB1YmxpYyBTdHJpbmdbXSBnZXRSZW1haW5pbmcoKQorICAgIHsKKyAgICByZXR1cm4gcmVtYWluaW5nOworICAgIH0KKworCisgICAgLyoqCisgICAgICogU2V0IGxpc3QxCisgICAgICovCisgIHB1YmxpYyB2b2lkIHNldENob2ljZXMoIExpc3QgbGlzdCApCisgICAgeworICAgIGNob2ljZSA9IGxpc3Q7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldCBsaXN0MQorICAgICAqLworICBwdWJsaWMgdm9pZCBzZXRDaG9pY2VMYWJlbHMoIExpc3QgbGlzdCApCisgICAgeworICAgIGNob2ljZUxhYmVscyA9IGxpc3Q7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldCBsaXN0MQorICAgICAqLworICBwdWJsaWMgTGlzdCBnZXRDaG9pY2VzKCkKKyAgICB7CisgICAgcmV0dXJuIGNob2ljZTsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0IGxpc3QxCisgICAgICovCisgIHB1YmxpYyBMaXN0IGdldENob2ljZUxhYmVscygpCisgICAgeworICAgIHJldHVybiBjaG9pY2VMYWJlbHM7CisgICAgfQorCisgICAvKioKKyAgICAqIElzIHRoaXMgZm9ybSBzdWJtaXR0ZWQgPworICAgICovCisgIHB1YmxpYyBib29sZWFuIGlzU3VibWl0dGVkKCkKKyAgICB7CisgICAgcmV0dXJuIHZhbGlkYXRlICE9IG51bGw7CisgICAgfQorCisgICAvKioKKyAgICAqIElzIHRoaXMgZm9ybSBzdWJtaXR0ZWQgPworICAgICovCisgIHB1YmxpYyB2b2lkIHNldFZhbGlkYXRlKCBTdHJpbmcgdmFsdWUpCisgICAgeworICAgIHRoaXMudmFsaWRhdGUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldCBwcm9wZXJ0aWVzCisgICAgICovCisgIHB1YmxpYyB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgcmVtYWluaW5nID0gIGVtcHR5OworICAgIHZhbGlkYXRlID0gbnVsbDsKKyAgICBjb2x1bW5zLmNsZWFyKCk7CisgICAgY29sdW1uTGFiZWxzLmNsZWFyKCk7CisgICAgbmV3Q29scy5jbGVhcigpOworICAgIH0KKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplZCBmbGFnCisgICAgICovCisgIHB1YmxpYyBib29sZWFuIGlzSW5pdGlhbGl6ZWQoKQorICAgIHsKKyAgICByZXR1cm4gaW5pdGlhbGl6ZWQ7CisgICAgfQorICAgIC8qKgorICAgICAqIEluaXRpYWxpemVkIGZsYWcKKyAgICAgKi8KKyAgcHVibGljIHZvaWQgc2V0SW5pdGlhbGl6ZWQoIGJvb2xlYW4gaXNJbml0aWFsaXplZCkKKyAgICB7CisgICAgaW5pdGlhbGl6ZWQgPSBpc0luaXRpYWxpemVkOworICAgIH0KK30KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvcG9ydGFsL1VzZXJNZW51QWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9wb3J0YWwvVXNlck1lbnVBY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDU1Y2JmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvcG9ydGFsL1VzZXJNZW51QWN0aW9uLmphdmEKQEAgLTAsMCArMSwzNTIgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5wb3J0YWw7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb247CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb247CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29udHJvbGxlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc1V0aWw7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5UaWxlc0FjdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucy5NZW51SXRlbTsKKworLyoqCisgKiBUaGlzIGNvbnRyb2xsZXIgbG9hZCB1c2VyIG1lbnUgc2V0dGluZ3MgYW5kIHB1dCB0aGVtIGluIHRpbGUgY29udGV4dC4KKyAqIElmIG1lbnUgc2V0dGluZ3MgYXJlIG5vdCBkZWZpbmVkIGZvciB1c2VyLCBkZWZpbmVkIHRoZW0gYmFzZWQgb24gdGlsZXMKKyAqIGF0dHJpYnV0ZXMgdXNlZCBhcyBkZWZhdWx0LgorICoKKyAqIFRoaXMgaW1wbGVtZW50YXRpb24gZXh0ZW5kcyBTdHJ1dHMgQWN0aW9uLCBhbmQgYWxzbyBkZWZpbmUgVGlsZXMgQ29udHJvbGxlciBpbnRlcmZhY2UuCisgKiBUaGlzIGFsbG93cyB0byB1c2UgaXQgYXMgd2VsbCBhcyBhIGNvbnRyb2xsZXIgdHlwZSBvciBhIGNvbnRyb2xsZXIgdXJsLiBJZiB1c2VkCisgKiBhcyBjb250cm9sbGVyIHR5cGUsIFN0cnV0cyBBY3Rpb24gZnVuY3Rpb25hbGl0eSBhcmUgbm90IGF2YWlsYWJsZXMuCisgKgorICogVGlsZXMgaW5wdXQgYXR0cmlidXRlcyA6CisgKiA8dWw+CisgKiAgIDxsaT50aXRsZSA6IG1lbnUgdGl0bGU8L2xpPgorICogICA8bGk+aXRlbXMgOiBNZW51IGVudHJpZXMgdXNlZCBhcyBkZWZhdWx0IHdoZW4gdXNlciBzZXR0aW5ncyBpcyBjcmVhdGVkPC9saT4KKyAqICAgPGxpPmRlZmF1bHRDaG9pY2UgOiBNZW51cyBvciBtZW51IGVudHJpZXMgcG9ycG9zZWQgYXMgY2hvaWNlIHRvIHVzZXI8L2xpPgorICogICA8bGk+c3RvcmVVbmRlck5hbWUgOiBTdG9yZSB1c2VyIHNldHRpbmdzIHVuZGVyIHByb3ZpZGVkIG5hbWUgaW4gc2Vzc2lvbiBjb250ZXh0IFtvcHRpb25hbF08L2xpPgorICogICA8bGk+PC9saT4KKyAqIDwvdWw+CisgKiBUaWxlcyBvdXRwdXQgYXR0cmlidXRlcyA6CisgKiA8dWw+CisgKiAgIDxsaT50aXRsZSA6IG1lbnUgdGl0bGU8L2xpPgorICogICA8bGk+aXRlbXMgOiBNZW51IGl0ZW1zIHRvIGRpc3BsYXk8L2xpPgorICogICA8bGk+PC9saT4KKyAqIDwvdWw+CisgKgorICogQHZlcnNpb24gJFJldiQgJERhdGUkCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVc2VyTWVudUFjdGlvbiBleHRlbmRzIFRpbGVzQWN0aW9uIGltcGxlbWVudHMgQ29udHJvbGxlciB7CisKKwkvKiogCisJICogQ29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorCSAqLworCXByaXZhdGUgc3RhdGljIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyhVc2VyTWVudUFjdGlvbi5jbGFzcyk7CisKKwkvKiogCisJICogVGlsZSBhdHRyaWJ1dGUgY29udGFpbmluZyBuYW1lIHVzZWQgdG8gc3RvcmUgdXNlciBzZXR0aW5ncyBpbiBzZXNzaW9uIAorCSAqIGNvbnRleHQuCisJICovCisJcHVibGljIHN0YXRpYyBTdHJpbmcgVVNFUl9TRVRUSU5HU19OQU1FX0FUVFJJQlVURSA9ICJ1c2VyU2V0dGluZ3NOYW1lIjsKKworCS8qKiAKKwkgKiBEZWZhdWx0IG5hbWUgdXNlZCB0byBzdG9yZSBzZXR0aW5ncyBpbiBzZXNzaW9uIGNvbnRleHQuIAorCSAqLworCXB1YmxpYyBzdGF0aWMgU3RyaW5nIERFRkFVTFRfVVNFUl9TRVRUSU5HU19OQU1FID0KKwkJInRpbGVzLmV4YW1wbGVzLnBvcnRhbC5VU0VSX01FTlVfU0VUVElOR1MiOworCisJLyoqIAorCSAqIERlZmF1bHQgbmFtZSB1c2VkIHRvIHN0b3JlIG1lbnUgY2F0YWxvZyBpbiBhcHBsaWNhdGlvbiBzY29wZS4KKwkgKi8KKwlwdWJsaWMgc3RhdGljIFN0cmluZyBERUZBVUxUX01FTlVfQ0FUQUxPR19OQU1FID0KKwkJInRpbGVzLmV4YW1wbGVzLnBvcnRhbC5NZW51Q2F0YWxvZyI7CisKKwkvKiogCisJICogVGlsZSBhdHRyaWJ1dGUgY29udGFpbmluZyBuYW1lIHVzZWQgdG8gc3RvcmUgbWVudSBjYXRhbG9nIGluIGFwcGxpY2F0aW9uIAorCSAqIHNjb3BlLgorCSAqLworCXB1YmxpYyBzdGF0aWMgU3RyaW5nIE1FTlVfQ0FUQUxPR19OQU1FX0FUVFJJQlVURSA9ICJjYXRhbG9nTmFtZSI7CisKKwkvKiogCisJICogVGlsZSBhdHRyaWJ1dGUgY29udGFpbmluZyBuYW1lIG9mIHRoZSBzZXR0aW5ncyBkZWZpbml0aW9uIHVzZWQgdG8gCisJICogaW5pdGlhbGl6ZSBjYXRhbG9nLiAKKwkgKi8KKwlwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDQVRBTE9HX1NFVFRJTkdfQVRUUklCVVRFID0gImNhdGFsb2dTZXR0aW5ncyI7CisKKwkvKiogCisJICogVGlsZSBhdHRyaWJ1dGUgY29udGFpbmluZyBpdGVtcyB0byByZW5kZXIuCisJICovCisJcHVibGljIHN0YXRpYyBTdHJpbmcgVVNFUl9JVEVNU19BVFRSSUJVVEUgPSAiaXRlbXMiOworCisJLyoqCisJICogU3RydXRzJyBhY3Rpb24gcGVyZm9ybSgpLgorCSAqIFByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorCSAqIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKwkgKiBSZXR1cm4gYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2UgZGVzY3JpYmluZyB3aGVyZSBhbmQgaG93CisJICogY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgcmVzcG9uc2UgaGFzCisJICogYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC4KKwkgKgorCSAqIEBwYXJhbSBjb250ZXh0IFRoZSBjdXJyZW50IFRpbGUgY29udGV4dCwgY29udGFpbmluZyBUaWxlIGF0dHJpYnV0ZXMuCisJICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZS4KKwkgKiBAcGFyYW0gZm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSkuCisJICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZy4KKwkgKiBAcGFyYW0gcmVzcG9uc2UgVGhlIEhUVFAgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nLgorCSAqCisJICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gaWYgdGhlIGFwcGxpY2F0aW9uIGJ1c2luZXNzIGxvZ2ljIHRocm93cworCSAqICBhbiBleGNlcHRpb24KKwkgKiBAc2luY2UgU3RydXRzIDEuMQorCSAqLworCXB1YmxpYyBBY3Rpb25Gb3J3YXJkIGV4ZWN1dGUoCisJCUNvbXBvbmVudENvbnRleHQgY29udGV4dCwKKwkJQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorCQlBY3Rpb25Gb3JtIGZvcm0sCisJCUh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorCQlIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKQorCQl0aHJvd3MgRXhjZXB0aW9uIHsKKworCQl0aGlzLmV4ZWN1dGUoCisJCQljb250ZXh0LAorCQkJcmVxdWVzdCwKKwkJCXJlc3BvbnNlLAorCQkJZ2V0U2VydmxldCgpLmdldFNlcnZsZXRDb250ZXh0KCkpOworCisJCXJldHVybiBudWxsOworCX0KKworCS8qKgorCSAqIE1ldGhvZCBhc3NvY2lhdGVkIHRvIGEgdGlsZSBhbmQgY2FsbGVkIGltbWVkaWF0ZWx5IGJlZm9yZSB0aWxlIGlzIGluY2x1ZGVkLgorCSAqIEBwYXJhbSB0aWxlQ29udGV4dCBDdXJyZW50IHRpbGUgY29udGV4dC4KKwkgKiBAcGFyYW0gcmVxdWVzdCBDdXJyZW50IHJlcXVlc3QKKwkgKiBAcGFyYW0gcmVzcG9uc2UgQ3VycmVudCByZXNwb25zZQorCSAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBDdXJyZW50IHNlcnZsZXQgY29udGV4dAorCSAqLworCXB1YmxpYyB2b2lkIHBlcmZvcm0oCisJCUNvbXBvbmVudENvbnRleHQgY29udGV4dCwKKwkJSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisJCUh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UsCisJCVNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0KQorCQl0aHJvd3MgU2VydmxldEV4Y2VwdGlvbiwgSU9FeGNlcHRpb24geworCisJCWxvZy5kZWJ1ZygiRW50ZXIgYWN0aW9uIFVzZXJNZW51QWN0aW9uIik7CisKKwkJLy8gTG9hZCB1c2VyIHNldHRpbmdzIGZyb20gdXNlciBjb250ZXh0CisJCU1lbnVTZXR0aW5ncyBzZXR0aW5ncyA9IGdldFVzZXJTZXR0aW5ncyhyZXF1ZXN0LCBjb250ZXh0KTsKKworCQkvLyBTZXQgcGFyYW1ldGVycyBmb3IgcmVuZGVyaW5nIHBhZ2UKKwkJY29udGV4dC5wdXRBdHRyaWJ1dGUoVVNFUl9JVEVNU19BVFRSSUJVVEUsIHNldHRpbmdzLmdldEl0ZW1zKCkpOworCisJCWxvZy5kZWJ1Zygic2V0dGluZ3M9IiArIHNldHRpbmdzKTsKKwkJbG9nLmRlYnVnKCJFeGl0IGFjdGlvbiBVc2VyTWVudUFjdGlvbiIpOworCisJfQorCisJLyoqCisJICogTG9hZCB1c2VyIHNldHRpbmcuCisJICogVGhpcyBpbXBsZW1lbnRhdGlvbiBsb2FkIHNldHRpbmcgZnJvbSB1c2VyIGNvbnRleHQuCisJICogSWYgc2V0dGluZ3MgYXJlIG5vdCBmb3VuZCwgaW5pdGlhbGl6ZWQgdGhlbSBmcm9tIGRlZmF1bHQgaXRlbXMgZGVmaW5lZAorCSAqIGluIFRpbGUncyBjb250ZXh0LgorCSAqIElmIHNldHRpbmdzIGFyZSBub3QgZm91bmQsIGluaXRpYWxpemVkIHRoZW0uCisJICovCisJcHVibGljIHN0YXRpYyBNZW51U2V0dGluZ3MgZ2V0VXNlclNldHRpbmdzKAorCQlIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKwkJQ29tcG9uZW50Q29udGV4dCBjb250ZXh0KQorCQl0aHJvd3MgU2VydmxldEV4Y2VwdGlvbiB7CisKKwkJLy8gR2V0IGN1cnJlbnQgc2Vzc2lvbi4KKwkJSHR0cFNlc3Npb24gc2Vzc2lvbiA9IHJlcXVlc3QuZ2V0U2Vzc2lvbigpOworCisJCS8vIFJldHJpZXZlIGF0dHJpYnV0ZSBuYW1lIHVzZWQgdG8gc3RvcmUgc2V0dGluZ3MuCisJCVN0cmluZyB1c2VyU2V0dGluZ3NOYW1lID0KKwkJCShTdHJpbmcpIGNvbnRleHQuZ2V0QXR0cmlidXRlKFVTRVJfU0VUVElOR1NfTkFNRV9BVFRSSUJVVEUpOworCisJCWlmICh1c2VyU2V0dGluZ3NOYW1lID09IG51bGwpIHsKKwkJCXVzZXJTZXR0aW5nc05hbWUgPSBERUZBVUxUX1VTRVJfU0VUVElOR1NfTkFNRTsKKwkJfQorCisJCS8vIEdldCB1c2VyIGxpc3QgZnJvbSB1c2VyIGNvbnRleHQKKwkJTWVudVNldHRpbmdzIHNldHRpbmdzID0KKwkJCShNZW51U2V0dGluZ3MpIHNlc3Npb24uZ2V0QXR0cmlidXRlKHVzZXJTZXR0aW5nc05hbWUpOworCisJCS8vIElmIHNldHRpbmdzIGRvbid0IGV4aXN0LCBjcmVhdGUgYW5kIGluaXRpYWxpemUgdGhlbQorCQkvLyBJbml0aWFsaXphdGlvbiBpcyBkb25lIGZyb20gY29udGV4dCBhdHRyaWJ1dGUgZGVub3RlZCBieSBJVEVNUworCQlpZiAoc2V0dGluZ3MgPT0gbnVsbCkgeworCQkJLy8gTGlzdCBkb2Vzbid0IGV4aXN0LCBjcmVhdGUgaXQgYW5kIGluaXRpYWxpemUgaXQgZnJvbSBUaWxlcyBwYXJhbWV0ZXJzCisJCQlzZXR0aW5ncyA9IG5ldyBNZW51U2V0dGluZ3MoKTsKKwkJCXRyeSB7CisJCQkJc2V0dGluZ3MuYWRkSXRlbXMoCisJCQkJCShMaXN0KSBjb250ZXh0LmdldEF0dHJpYnV0ZShVU0VSX0lURU1TX0FUVFJJQlVURSkpOworCQkJfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGV4KSB7CisJCQkJdGhyb3cgbmV3IFNlcnZsZXRFeGNlcHRpb24oIkNhbid0IGluaXRpYWxpemUgdXNlciBtZW51IDogZGVmYXVsdCBpdGVtcyBtdXN0IGJlIGEgbGlzdCBvZiBpdGVtcyIpOworCQkJfQorCisJCQkvLyBTYXZlIHVzZXIgc2V0dGluZ3MgaW4gc2Vzc2lvbgorCQkJc2Vzc2lvbi5zZXRBdHRyaWJ1dGUodXNlclNldHRpbmdzTmFtZSwgc2V0dGluZ3MpOworCQl9CisKKwkJcmV0dXJuIHNldHRpbmdzOworCX0KKworCS8qKgorCSAqIEdldCBjYXRhbG9nIG9mIGF2YWlsYWJsZSBtZW51IGVudHJpZXMuCisJICogVGhpcyBpbXBsZW1lbnRhdGlvbiBjcmVhdGVzIGNhdGFsb2cgbGlzdCBmcm9tIHRoZSBwcm92aWRlZCBtZW51IGJhciAKKwkgKiBlbnRyaWVzLgorCSAqLworCXB1YmxpYyBzdGF0aWMgTGlzdCBnZXRDYXRhbG9nKAorCQlDb21wb25lbnRDb250ZXh0IGNvbnRleHQsCisJCUh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorCQlTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkKKwkJdGhyb3dzIFNlcnZsZXRFeGNlcHRpb24geworCisJCS8vIFJldHJpZXZlIG5hbWUgdXNlZCB0byBzdG9yZSBjYXRhbG9nIGluIGFwcGxpY2F0aW9uIGNvbnRleHQuCisJCS8vIElmIG5vdCBmb3VuZCwgdXNlIGRlZmF1bHQgbmFtZQorCQlTdHJpbmcgY2F0YWxvZ05hbWUgPQorCQkJKFN0cmluZykgY29udGV4dC5nZXRBdHRyaWJ1dGUoTUVOVV9DQVRBTE9HX05BTUVfQVRUUklCVVRFKTsKKworCQlpZiAoY2F0YWxvZ05hbWUgPT0gbnVsbCkgeworCQkJY2F0YWxvZ05hbWUgPSBERUZBVUxUX01FTlVfQ0FUQUxPR19OQU1FOworCQl9CisKKwkJLy8gR2V0IGNhdGFsb2cgZnJvbSBjb250ZXh0CisJCUxpc3QgY2F0YWxvZyA9IChMaXN0KSBzZXJ2bGV0Q29udGV4dC5nZXRBdHRyaWJ1dGUoY2F0YWxvZ05hbWUpOworCisJCS8vIElmIG5vdCBmb3VuZCwgaW5pdGlhbGl6ZSBpdCBmcm9tIHByb3ZpZGVkIGRlZmF1bHQgbWVudQorCQlpZiAoY2F0YWxvZyA9PSBudWxsKSB7CisJCQlPYmplY3QgbWVudUJhciA9IGNvbnRleHQuZ2V0QXR0cmlidXRlKENBVEFMT0dfU0VUVElOR19BVFRSSUJVVEUpOworCQkJaWYgKG1lbnVCYXIgPT0gbnVsbCkgeworCQkJCXRocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKAorCQkJCQkiQXR0cmlidXRlICciCisJCQkJCQkrIENBVEFMT0dfU0VUVElOR19BVFRSSUJVVEUKKwkJCQkJCSsgIicgbXVzdCBiZSBzZXQuIEl0IGRlZmluZSBlbnRyaWVzIHVzZWQgaW4gY2F0YWxvZyIpOworCQkJfQorCisJCQljYXRhbG9nID0gbmV3IEFycmF5TGlzdCgpOworCQkJZXh0cmFjdEl0ZW1zKGNhdGFsb2csIG1lbnVCYXIsIHJlcXVlc3QsIHNlcnZsZXRDb250ZXh0KTsKKwkJCWlmIChjYXRhbG9nLnNpemUoKSA9PSAwKSB7CisJCQkJdGhyb3cgbmV3IFNlcnZsZXRFeGNlcHRpb24oIkNhbid0IGluaXRpYWxpemUgbWVudSBpdGVtcyBjYXRhbG9nIik7CisJCQl9CisKKwkJCS8vIHNhdmUgaXQgZm9yIGZ1dHVyZSB1c2UKKwkJCXNlcnZsZXRDb250ZXh0LnNldEF0dHJpYnV0ZShjYXRhbG9nTmFtZSwgY2F0YWxvZyk7CisJCX0KKworCQlyZXR1cm4gY2F0YWxvZzsKKwl9CisKKwkvKioKKwkgKiBFeHRyYWN0IG1lbnUgaXRlbXMgZnJvbSBwYXNzZWQgb2JqZWN0LiBJdGVtcyBhcmUgc3RvcmVkIGluIAorCSAqIDxjb2RlPnJlc3VsdDwvY29kZT4gcGFyYW1ldGVyLiAKKwkgKiBUaGlzIG1ldGhvZCBhbGxvd3MgdG8gY3JlYXRlIGEgbGlzdCBvZiBtZW51IGVudHJpZXMgZnJvbSBleGlzdGluZyBtZW51cy4KKwkgKiBDaGVjayBvYmplY3QgdHlwZSBjbGFzcyA6CisJICogPGxpPgorCSAqICAgPHVsPk1lbnVJdGVtcyA6IGFkZCBpdDwvdWw+CisJICogICA8dWw+Q29tcG9uZW50RGVmaW5pdGlvbiA6IGdldCBhdHRyaWJ1dGUgaXRlbXMsIG9yIGxpc3QgaWYgbm90IGZvdW5kLgorCSAqICAgICAgIENhbGwgRXh0cmFjdEl0ZW1zIHdpdGggcmVzdWx0aW5nIGF0dHJpYnV0ZS4KKwkgKiAgIDwvdWw+CisJICogICA8dWw+TGlzdCA6IGl0ZXJhdGUgb24gbGlzdCwgYW5kIGNhbGwgRXh0cmFjdEl0ZW1zIGZvciBlYWNoIGVsZW1lbnQuCisJICogPC9saT4KKwkgKiBAcGFyYW0gcmVzdWx0IHJlc3VsdCBsaXN0IChzaG91bGQgYmUgaW5pdGlhbGl6ZWQpCisJICogQHBhcmFtIG9iamVjdCBvYmplY3QgdG8gYWRkIChNZW51SXRlbXMsIERlZmluaXRpb24sIC4uLikKKwkgKiBAcGFyYW0gcmVxdWVzdCBjdXJyZW50IHJlcXVlc3QKKwkgKiBAcGFyYW0gc2VydmxldENvbnRleHQgY3VycmVudCBzZXJ2bGV0IGNvbnRleHQuCisJICovCisJcHJpdmF0ZSBzdGF0aWMgdm9pZCBleHRyYWN0SXRlbXMoCisJCUxpc3QgcmVzdWx0LAorCQlPYmplY3Qgb2JqZWN0LAorCQlIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKwkJU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQpIHsKKworCQlsb2cuZGVidWcoIkV4dHJhY3QgbWVudSBpdGVtIGZyb20gJyIgKyBvYmplY3QgKyAiJyIpOworCisJCWlmIChvYmplY3QgaW5zdGFuY2VvZiBTdHJpbmcpIHsgLy8gZGVmaW5pdGlvbiBuYW1lCisJCQl0cnkgeworCQkJCUNvbXBvbmVudERlZmluaXRpb24gZGVmID0KKwkJCQkJRGVmaW5pdGlvbnNVdGlsLmdldERlZmluaXRpb24oCisJCQkJCQkoU3RyaW5nKSBvYmplY3QsCisJCQkJCQlyZXF1ZXN0LAorCQkJCQkJc2VydmxldENvbnRleHQpOworCisJCQkJZXh0cmFjdEl0ZW1zKHJlc3VsdCwgZGVmLCByZXF1ZXN0LCBzZXJ2bGV0Q29udGV4dCk7CisKKwkJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBleCkgeyAvLyBzaWxlbnRseSBmYWlsCisJCQl9CisKKwkJfSBlbHNlIGlmIChvYmplY3QgaW5zdGFuY2VvZiBMaXN0KSB7CisJCQlMaXN0IGxpc3QgPSAoTGlzdCkgb2JqZWN0OworCQkJSXRlcmF0b3IgaXRlciA9IGxpc3QuaXRlcmF0b3IoKTsKKwkJCXdoaWxlIChpdGVyLmhhc05leHQoKSkgeworCQkJCWV4dHJhY3RJdGVtcyhyZXN1bHQsIGl0ZXIubmV4dCgpLCByZXF1ZXN0LCBzZXJ2bGV0Q29udGV4dCk7CisJCQl9CisKKwkJfSBlbHNlIGlmIChvYmplY3QgaW5zdGFuY2VvZiBDb21wb25lbnREZWZpbml0aW9uKSB7CisJCQlDb21wb25lbnREZWZpbml0aW9uIGRlZmluaXRpb24gPSAoQ29tcG9uZW50RGVmaW5pdGlvbikgb2JqZWN0OworCQkJT2JqZWN0IGF0dHJpYnV0ZSA9IGRlZmluaXRpb24uZ2V0QXR0cmlidXRlKCJpdGVtcyIpOworCQkJaWYgKGF0dHJpYnV0ZSA9PSBudWxsKSB7CisJCQkJYXR0cmlidXRlID0gZGVmaW5pdGlvbi5nZXRBdHRyaWJ1dGUoImxpc3QiKTsKKwkJCX0KKworCQkJaWYgKGF0dHJpYnV0ZSA9PSBudWxsKSB7CisJCQkJcmV0dXJuOworCQkJfQorCisJCQlleHRyYWN0SXRlbXMocmVzdWx0LCBhdHRyaWJ1dGUsIHJlcXVlc3QsIHNlcnZsZXRDb250ZXh0KTsKKworCQl9IGVsc2UgaWYgKG9iamVjdCBpbnN0YW5jZW9mIE1lbnVJdGVtKSB7CisJCQlyZXN1bHQuYWRkKG9iamVjdCk7CisJCX0KKwl9CisKKwkvKioKKwkgKiBAc2VlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbnRyb2xsZXIjZXhlY3V0ZShvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0LCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZSwgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dCkKKwkgKi8KKwlwdWJsaWMgdm9pZCBleGVjdXRlKAorCQlDb21wb25lbnRDb250ZXh0IHRpbGVDb250ZXh0LAorCQlIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKwkJSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSwKKwkJU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQpCisJCXRocm93cyBFeGNlcHRpb24geworICAgICAgICAgICAgCisJCWxvZy5kZWJ1ZygiRW50ZXIgYWN0aW9uIFVzZXJNZW51QWN0aW9uIik7CisKKwkJLy8gTG9hZCB1c2VyIHNldHRpbmdzIGZyb20gdXNlciBjb250ZXh0CisJCU1lbnVTZXR0aW5ncyBzZXR0aW5ncyA9IGdldFVzZXJTZXR0aW5ncyhyZXF1ZXN0LCB0aWxlQ29udGV4dCk7CisKKwkJLy8gU2V0IHBhcmFtZXRlcnMgZm9yIHJlbmRlcmluZyBwYWdlCisJCXRpbGVDb250ZXh0LnB1dEF0dHJpYnV0ZShVU0VSX0lURU1TX0FUVFJJQlVURSwgc2V0dGluZ3MuZ2V0SXRlbXMoKSk7CisKKwkJbG9nLmRlYnVnKCJzZXR0aW5ncz0iICsgc2V0dGluZ3MpOworCQlsb2cuZGVidWcoIkV4aXQgYWN0aW9uIFVzZXJNZW51QWN0aW9uIik7CisKKwl9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3BvcnRhbC9Vc2VyTWVudVNldHRpbmdzQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9wb3J0YWwvVXNlck1lbnVTZXR0aW5nc0FjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwMmMxNGEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9wb3J0YWwvVXNlck1lbnVTZXR0aW5nc0FjdGlvbi5qYXZhCkBAIC0wLDAgKzEsMTY2IEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMucG9ydGFsOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZ0ZhY3Rvcnk7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLlRpbGVzQWN0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLk1lbnVJdGVtOworCisvKioKKyAqIFRpbGVzIGNvbnRyb2xsZXIgYXMgU3RydXRzIEFjdGlvbi4KKyAqIFRoaXMgY29udHJvbGxlciB0YWtlIGEgbGlzdCBvZiBsaXN0cyBvZiBNZW51SXRlbXMsIGFuZCBhcnJhbmdlIHRoZW0KKyAqIHRvIGJlIHNob3duIGJ5IGFwcHJvcHJpYXRlIGpzcCB2aWV3LgorICogQ3JlYXRlIGFuZCBzZXQgZm9sbG93aW5nIGF0dHJpYnV0ZSBpbiBUaWxlIGNvbnRleHQgOgorICogPHVsPgorICogICA8bGk+bmFtZXMgOiBsaXN0IG9mIG5hbWVzIHRvIGRpc3BsYXk8L2xpPgorICogICA8bGk+cmV0dXJuZWRWYWx1ZXMgOiBsaXN0IG9mIGNvcnJlc3BvbmRpbmcga2V5LCBvciB2YWx1ZXMgdG8gcmV0dXJuPC9saT4KKyAqICAgPGxpPnNlbGVjdGVkcyA6IGxpc3Qgb2YgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgb3Igbm90IGEgbmFtZSBpcyBzZWxlY3RlZDwvbGk+CisgKiA8L3VsPgorICogVGlsZXMgaW5wdXQgYXR0cmlidXRlcyA6CisgKiA8dWw+CisgKiAgIDxsaT50aXRsZSA6IG1lbnUgdGl0bGU8L2xpPgorICogICA8bGk+aXRlbXMgOiBNZW51IGVudHJpZXMgdXNlZCBhcyBkZWZhdWx0IHdoZW4gdXNlciBzZXR0aW5ncyBpcyBjcmVhdGVkPC9saT4KKyAqICAgPGxpPmRlZmF1bHRDaG9pY2UgOiBNZW51cyBvciBtZW51IGVudHJpZXMgcG9ycG9zZWQgYXMgY2hvaWNlIHRvIHVzZXI8L2xpPgorICogICA8bGk+c3RvcmVVbmRlck5hbWUgOiBTdG9yZSB1c2VyIHNldHRpbmdzIHVuZGVyIHByb3ZpZGVkIG5hbWUgaW4gc2Vzc2lvbiBjb250ZXh0IFtvcHRpb25hbF08L2xpPgorICogIDxsaT48L2xpPgorICogPC91bD4KKyAqIFRpbGVzIG91dHB1dCBhdHRyaWJ1dGVzIDoKKyAqIDx1bD4KKyAqICAgPGxpPmNob2ljZUl0ZW1zIDogTGlzdCBvZiBtZW51IGl0ZW1zIHByb3Bvc2VkIGFzIGEgY2hvaWNlPC9saT4KKyAqICAgPGxpPnVzZXJJdGVtcyA6IExpc3Qgb2YgdXNlciBhY3R1YWwgbWVudSBpdGVtczwvbGk+CisgKiA8L3VsPgorICoKKyAqLworcHVibGljIGNsYXNzIFVzZXJNZW51U2V0dGluZ3NBY3Rpb24gZXh0ZW5kcyBUaWxlc0FjdGlvbiB7CisKKyAgICAvKiogCisgICAgICogQ29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyhVc2VyTWVudVNldHRpbmdzQWN0aW9uLmNsYXNzKTsKKworICAgIC8qKgorICAgICogUHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgICAgKiByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCisgICAgKiBSZXR1cm4gYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2UgZGVzY3JpYmluZyB3aGVyZSBhbmQgaG93CisgICAgKiBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSByZXNwb25zZSBoYXMKKyAgICAqIGFscmVhZHkgYmVlbiBjb21wbGV0ZWQuCisgICAgKgorICAgICogQHBhcmFtIGNvbnRleHQgVGhlIGN1cnJlbnQgVGlsZSBjb250ZXh0LCBjb250YWluaW5nIFRpbGUgYXR0cmlidXRlcy4KKyAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UuCisgICAgKiBAcGFyYW0gZm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSkuCisgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nLgorICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZy4KKyAgICAqCisgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiBpZiB0aGUgYXBwbGljYXRpb24gYnVzaW5lc3MgbG9naWMgdGhyb3dzCisgICAgKiAgYW4gZXhjZXB0aW9uCisgICAgKiBAc2luY2UgU3RydXRzIDEuMQorICAgICovCisgICAgcHVibGljIEFjdGlvbkZvcndhcmQgZXhlY3V0ZSgKKyAgICAgICAgQ29tcG9uZW50Q29udGV4dCBjb250ZXh0LAorICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgICAgIHRocm93cyBFeGNlcHRpb24geworCisgICAgICAgIGxvZy5kZWJ1ZygiRW50ZXIgYWN0aW9uIFVzZXJNZW51U2V0dGluZ3NBY3Rpb24iKTsKKworICAgICAgICBNZW51U2V0dGluZ3NGb3JtIGFjdGlvbkZvcm0gPSAoTWVudVNldHRpbmdzRm9ybSkgZm9ybTsKKworICAgICAgICAvLyBMb2FkIHVzZXIgbWVudSBzZXR0aW5ncyBhbmQgYXZhaWxhYmxlIGxpc3Qgb2YgY2hvaWNlcworICAgICAgICBNZW51U2V0dGluZ3Mgc2V0dGluZ3MgPSBVc2VyTWVudUFjdGlvbi5nZXRVc2VyU2V0dGluZ3MocmVxdWVzdCwgY29udGV4dCk7CisgICAgICAgIExpc3QgY2F0YWxvZyA9CisgICAgICAgICAgICBVc2VyTWVudUFjdGlvbi5nZXRDYXRhbG9nKAorICAgICAgICAgICAgICAgIGNvbnRleHQsCisgICAgICAgICAgICAgICAgcmVxdWVzdCwKKyAgICAgICAgICAgICAgICBnZXRTZXJ2bGV0KCkuZ2V0U2VydmxldENvbnRleHQoKSk7CisKKyAgICAgICAgLy8gQ2hlY2sgaWYgZm9ybSBpcyBzdWJtaXR0ZWQKKyAgICAgICAgLy8gSWYgdHJ1ZSwgcmVhZCwgY2hlY2sgYW5kIHN0b3JlIG5ldyB2YWx1ZXMgc3VibWl0dGVkIGJ5IHVzZXIuCisgICAgICAgIGlmIChhY3Rpb25Gb3JtLmlzU3VibWl0dGVkKCkpIHsgLy8gcmVhZCBhcnJheXMKKworICAgICAgICAgICAgbG9nLmRlYnVnKCJmb3JtIHN1Ym1pdHRlZCIpOworCisgICAgICAgICAgICBzZXR0aW5ncy5yZXNldCgpOworICAgICAgICAgICAgc2V0dGluZ3MuYWRkSXRlbXMoZ2V0SXRlbXMoYWN0aW9uRm9ybS5nZXRTZWxlY3RlZCgpLCBjYXRhbG9nKSk7CisKKyAgICAgICAgICAgIGxvZy5kZWJ1Zygic2V0dGluZ3MgOiAiICsgc2V0dGluZ3MudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBhY3Rpb25Gb3JtLnJlc2V0KCk7CisKKyAgICAgICAgfQorCisgICAgICAgIC8vIFByZXBhcmUgZGF0YSBmb3IgdmlldyB0aWxlCisgICAgICAgIGNvbnRleHQucHV0QXR0cmlidXRlKCJ1c2VySXRlbXMiLCBzZXR0aW5ncy5nZXRJdGVtcygpKTsKKyAgICAgICAgY29udGV4dC5wdXRBdHRyaWJ1dGUoImNhdGFsb2ciLCBjYXRhbG9nKTsKKworICAgICAgICBsb2cuZGVidWcoIkV4aXQgYWN0aW9uIFVzZXJNZW51U2V0dGluZ3NBY3Rpb24iKTsKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2sgc2VsZWN0ZWQgaXRlbXMsIGFuZCByZXR1cm4gYXBwcHJvcHJpYXRlIGxpc3Qgb2YgaXRlbXMuCisgICAgICogRm9yIGVhY2ggaXRlbSBpbiBzZWxlY3RlZCBsaXN0LCBjaGVjayBpZiBpdCBleGlzdCBpbiBjYXRhbG9nLgorICAgICAqIEFsc28gY2hlY2sgZm9yIGRvdWJsZS4KKyAgICAgKiBAcGFyYW0gc2VsZWN0ZWRLZXkgS2V5IG9mIHNlbGVjdGVkIGl0ZW1zIChnZW5lcmFsbHksIGxpbmsgdXJsKQorICAgICAqIEBwYXJhbSBjYXRhbG9nIExpc3Qgb2YgYXZhbGFpYmxlIGl0ZW1zIHRvIGNvbXBhcmUgYWdhaW5zdC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIExpc3QgZ2V0SXRlbXMoU3RyaW5nW10gc2VsZWN0ZWRLZXksIExpc3QgY2F0YWxvZykgeworICAgICAgICBMaXN0IHNlbGVjdGVkTGlzdCA9IGphdmEudXRpbC5BcnJheXMuYXNMaXN0KHNlbGVjdGVkS2V5KTsKKyAgICAgICAgTGlzdCByZXN1bHQgPSBuZXcgQXJyYXlMaXN0KHNlbGVjdGVkTGlzdC5zaXplKCkpOworCisgICAgICAgIEl0ZXJhdG9yIGl0ZXIgPSBzZWxlY3RlZExpc3QuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBNZW51SXRlbSBpdGVtID0gZ2V0SXRlbShpdGVyLm5leHQoKSwgY2F0YWxvZyk7CisgICAgICAgICAgICBpZiAoaXRlbSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChpdGVtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBpdGVtIGJ5IGl0cyBrZXkgaW4gbGlzdCBvZiBjaG9pY2VzCisgICAgICogQHBhcmFtIGtleSBLZXkgb2Ygc2VsZWN0ZWQgaXRlbXMgKGdlbmVyYWxseSwgbGluayB1cmwpCisgICAgICogQHBhcmFtIGNhdGFsb2cgTGlzdCBvZiBhdmFsYWlibGUgaXRlbXMgdG8gY29tcGFyZSBhZ2FpbnN0LgorICAgICAqIEByZXR1cm4gY29ycmVzcG9uZGluZyBpdGVtIG9yIG51bGwgaWYgbm90IGZvdW5kLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgTWVudUl0ZW0gZ2V0SXRlbShPYmplY3Qga2V5LCBMaXN0IGNhdGFsb2cpIHsKKyAgICAgICAgSXRlcmF0b3IgaXRlciA9IGNhdGFsb2cuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGl0ZXIuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBNZW51SXRlbSBpdGVtID0gKE1lbnVJdGVtKSBpdGVyLm5leHQoKTsKKyAgICAgICAgICAgIGlmIChpdGVtLmdldExpbmsoKS5lcXVhbHMoa2V5KSkgeworICAgICAgICAgICAgICAgIHJldHVybiBpdGVtOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvcG9ydGFsL1VzZXJQb3J0YWxBY3Rpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3BvcnRhbC9Vc2VyUG9ydGFsQWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMxZGE0YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3BvcnRhbC9Vc2VyUG9ydGFsQWN0aW9uLmphdmEKQEAgLTAsMCArMSwxODcgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5wb3J0YWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb247CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuVGlsZXNBY3Rpb247CisKKy8qKgorICogVGhpcyBjb250cm9sbGVyIGxvYWQgdXNlciBwb3J0YWwgc2V0dGluZ3MgYW5kIHB1dCB0aGVtIGluIHRpbGUgY29udGV4dC4KKyAqIElmIHBvcnRhbCBzZXR0aW5ncyBhcmUgbm90IGRlZmluZWQgZm9yIHVzZXIsIGRlZmluZWQgdGhlbSBiYXNlZCBvbiB0aWxlcworICogYXR0cmlidXRlcyB1c2VkIGFzIGRlZmF1bHQuCisgKgorICogQHZlcnNpb24gJFJldiQgJERhdGUkCisgKi8KK3B1YmxpYyBmaW5hbCBjbGFzcyBVc2VyUG9ydGFsQWN0aW9uIGV4dGVuZHMgVGlsZXNBY3Rpb24geworCisgICAgLyoqIAorICAgICAqIERlZmF1bHQgbmFtZSB1c2VkIHRvIHN0b3JlIHNldHRpbmdzIGluIHNlc3Npb24gY29udGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBERUZBVUxUX1VTRVJfU0VUVElOR1NfTkFNRSA9CisgICAgICAgICJ0aWxlcy5leGFtcGxlcy5wb3J0YWwuVVNFUl9QT1JUQUxfU0VUVElOR1MiOworCisgICAgLyoqIAorICAgICAqIFRpbGUgYXR0cmlidXRlIGNvbnRhaW5pbmcgbnVtYmVyIG9mIGNvbHVtbnMgaW4gcG9ydGFsLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIE5VTUNPTFNfQVRUUklCVVRFID0gIm51bUNvbHMiOworCisgICAgLyoqIAorICAgICAqIFRpbGUgYXR0cmlidXRlIGNvbnRhaW5pbmcgbGlzdCBwcmVmaXggbmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBMSVNUX0FUVFJJQlVURSA9ICJsaXN0IjsKKworICAgIC8qKiAKKyAgICAgKiBUaWxlIGF0dHJpYnV0ZSBjb250YWluaW5nIGxpc3Qgb2YgbGFiZWxzIHByZWZpeCBuYW1lLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIExJU1RfTEFCRUxTX0FUVFJJQlVURSA9ICJsYWJlbHMiOworCisgICAgLyoqIAorICAgICAqIFRpbGUgYXR0cmlidXRlIGNvbnRhaW5pbmcgbmFtZSB1c2VkIHRvIHN0b3JlIHVzZXIgc2V0dGluZ3MgaW4gc2Vzc2lvbiAKKyAgICAgKiBjb250ZXh0LiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBVU0VSX1NFVFRJTkdTX05BTUVfQVRUUklCVVRFID0gInVzZXJTZXR0aW5nc05hbWUiOworCisgICAgLyoqIAorICAgICAqIE5hbWUgdXNlZCB0byBzdG9yZSBwb3J0YWwgY2F0YWxvZyBpbiBhcHBsaWNhdGlvbiBzY29wZS4gCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBTdHJpbmcgUE9SVEFMX0NBVEFMT0dfTkFNRSA9ICJ0aWxlcy5leGFtcGxlcy5wb3J0YWwuUG9ydGFsQ2F0YWxvZyI7CisKKyAgICAvKioKKyAgICAgKiBQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyAgICAgKiByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCisgICAgICogUmV0dXJuIGFuIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIGRlc2NyaWJpbmcgd2hlcmUgYW5kIGhvdworICAgICAqIGNvbnRyb2wgc2hvdWxkIGJlIGZvcndhcmRlZCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlIHJlc3BvbnNlIGhhcworICAgICAqIGFscmVhZHkgYmVlbiBjb21wbGV0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29udGV4dCBUaGUgY3VycmVudCBUaWxlIGNvbnRleHQsIGNvbnRhaW5pbmcgVGlsZSBhdHRyaWJ1dGVzLgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UuCisgICAgICogQHBhcmFtIGZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpLgorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcuCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZy4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIGlmIHRoZSBhcHBsaWNhdGlvbiBidXNpbmVzcyBsb2dpYyB0aHJvd3MKKyAgICAgKiAgYW4gZXhjZXB0aW9uCisgICAgICogQHNpbmNlIFN0cnV0cyAxLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgQWN0aW9uRm9yd2FyZCBleGVjdXRlKAorICAgICAgICBDb21wb25lbnRDb250ZXh0IGNvbnRleHQsCisgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkKKyAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gR2V0IHVzZXIgcG9ydGFsIGxpc3QgZnJvbSB1c2VyIGNvbnRleHQKKyAgICAgICAgUG9ydGFsU2V0dGluZ3Mgc2V0dGluZ3MgPSBnZXRTZXR0aW5ncyhyZXF1ZXN0LCBjb250ZXh0KTsKKworICAgICAgICAvLyBTZXQgcGFyYW1ldGVycyBmb3IgdGlsZXMKKyAgICAgICAgY29udGV4dC5wdXRBdHRyaWJ1dGUoIm51bUNvbHMiLCBJbnRlZ2VyLnRvU3RyaW5nKHNldHRpbmdzLmdldE51bUNvbHMoKSkpOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2V0dGluZ3MuZ2V0TnVtQ29scygpOyBpKyspIHsKKyAgICAgICAgICAgIGNvbnRleHQucHV0QXR0cmlidXRlKCJsaXN0IiArIGksIHNldHRpbmdzLmdldExpc3RBdChpKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSB1c2VyIHNldHRpbmcgZnJvbSBzZXNzaW9uLgorICAgICAqIElmIHNldHRpbmdzIGFyZSBub3QgZm91bmQsIGluaXRpYWxpemVkIHRoZW0uCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBQb3J0YWxTZXR0aW5ncyBnZXRTZXR0aW5ncygKKyAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgIENvbXBvbmVudENvbnRleHQgY29udGV4dCkgeworCisgICAgICAgIC8vIEdldCBjdXJyZW50IHNlc3Npb24uCisgICAgICAgIEh0dHBTZXNzaW9uIHNlc3Npb24gPSByZXF1ZXN0LmdldFNlc3Npb24oKTsKKworICAgICAgICAvLyBSZXRyaWV2ZSB1c2VyIGNvbnRleHQgaWQgdXNlZCB0byBzdG9yZSBzZXR0aW5ncworICAgICAgICBTdHJpbmcgdXNlclNldHRpbmdzSWQgPQorICAgICAgICAgICAgKFN0cmluZykgY29udGV4dC5nZXRBdHRyaWJ1dGUoVVNFUl9TRVRUSU5HU19OQU1FX0FUVFJJQlVURSk7CisKKyAgICAgICAgaWYgKHVzZXJTZXR0aW5nc0lkID09IG51bGwpIHsKKyAgICAgICAgICAgIHVzZXJTZXR0aW5nc0lkID0gREVGQVVMVF9VU0VSX1NFVFRJTkdTX05BTUU7CisgICAgICAgIH0KKworICAgICAgICAvLyBHZXQgdXNlciBwb3J0YWwgbGlzdCBmcm9tIHVzZXIgY29udGV4dAorICAgICAgICBQb3J0YWxTZXR0aW5ncyBzZXR0aW5ncyA9CisgICAgICAgICAgICAoUG9ydGFsU2V0dGluZ3MpIHNlc3Npb24uZ2V0QXR0cmlidXRlKHVzZXJTZXR0aW5nc0lkKTsKKworICAgICAgICBpZiAoc2V0dGluZ3MgPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gTGlzdCBkb2Vzbid0IGV4aXN0LCBjcmVhdGUgaXQgYW5kIGluaXRpYWxpemUgaXQgZnJvbSBUaWxlcyBwYXJhbWV0ZXJzCisgICAgICAgICAgICBzZXR0aW5ncyA9IG5ldyBQb3J0YWxTZXR0aW5ncygpOworICAgICAgICAgICAgc2V0dGluZ3Muc2V0TnVtQ29scygoU3RyaW5nKSBjb250ZXh0LmdldEF0dHJpYnV0ZShOVU1DT0xTX0FUVFJJQlVURSkpOworCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNldHRpbmdzLmdldE51bUNvbHMoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgTGlzdCB0aWxlcyA9CisgICAgICAgICAgICAgICAgICAgIChMaXN0KSBjb250ZXh0LmdldEF0dHJpYnV0ZSgoKFN0cmluZykgTElTVF9BVFRSSUJVVEUgKyBpKSk7CisKKyAgICAgICAgICAgICAgICBzZXR0aW5ncy5zZXRMaXN0QXQoaSwgdGlsZXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBTYXZlIHVzZXIgc2V0dGluZ3MgaW4gc2Vzc2lvbgorICAgICAgICAgICAgc2Vzc2lvbi5zZXRBdHRyaWJ1dGUodXNlclNldHRpbmdzSWQsIHNldHRpbmdzKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzZXR0aW5nczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBwb3J0YWwgY2hvaWNlcyBvYmplY3QuCisgICAgICogQ3JlYXRlIGl0IGZyb20gZGVmYXVsdCB2YWx1ZXMgaWYgbmVlZGVkLgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgUG9ydGFsQ2F0YWxvZyBnZXRQb3J0YWxDYXRhbG9nKAorICAgICAgICBDb21wb25lbnRDb250ZXh0IGNvbnRleHQsCisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0KSB7CisKKyAgICAgICAgUG9ydGFsQ2F0YWxvZyBjYXRhbG9nID0KKyAgICAgICAgICAgIChQb3J0YWxDYXRhbG9nKSBzZXJ2bGV0Q29udGV4dC5nZXRBdHRyaWJ1dGUoUE9SVEFMX0NBVEFMT0dfTkFNRSk7CisKKyAgICAgICAgaWYgKGNhdGFsb2cgPT0gbnVsbCkgeyAvLyBJbml0aWFsaXplIGNhdGFsb2cKKyAgICAgICAgICAgIGNhdGFsb2cgPSBuZXcgUG9ydGFsQ2F0YWxvZygpOworICAgICAgICAgICAgaW50IG51bUNvbHMgPQorICAgICAgICAgICAgICAgIEludGVnZXIucGFyc2VJbnQoKFN0cmluZykgY29udGV4dC5nZXRBdHRyaWJ1dGUoTlVNQ09MU19BVFRSSUJVVEUpKTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1Db2xzOyBpKyspIHsKKyAgICAgICAgICAgICAgICBMaXN0IHRpbGVzID0KKyAgICAgICAgICAgICAgICAgICAgKExpc3QpIGNvbnRleHQuZ2V0QXR0cmlidXRlKCgoU3RyaW5nKSBMSVNUX0FUVFJJQlVURSArIGkpKTsKKworICAgICAgICAgICAgICAgIExpc3QgbGFiZWxzID0KKyAgICAgICAgICAgICAgICAgICAgKExpc3QpIGNvbnRleHQuZ2V0QXR0cmlidXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgKChTdHJpbmcpIExJU1RfTEFCRUxTX0FUVFJJQlVURSArIGkpKTsKKworICAgICAgICAgICAgICAgIGNhdGFsb2cuYWRkVGlsZXModGlsZXMsIGxhYmVscyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXJ2bGV0Q29udGV4dC5zZXRBdHRyaWJ1dGUoUE9SVEFMX0NBVEFMT0dfTkFNRSwgY2F0YWxvZyk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gY2F0YWxvZzsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3BvcnRhbC9Vc2VyUG9ydGFsU2V0dGluZ3NBY3Rpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3BvcnRhbC9Vc2VyUG9ydGFsU2V0dGluZ3NBY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Y2RlNWY4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvcG9ydGFsL1VzZXJQb3J0YWxTZXR0aW5nc0FjdGlvbi5qYXZhCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMucG9ydGFsOworCitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5UaWxlc0FjdGlvbjsKKworLyoqCisgKiBJbXBsZW1lbnRhdGlvbiBvZiA8c3Ryb25nPkFjdGlvbjwvc3Ryb25nPiB0aGF0IHBvcHVsYXRlcyBhbiBpbnN0YW5jZSBvZgorICogPGNvZGU+U3Vic2NyaXB0aW9uRm9ybTwvY29kZT4gZnJvbSB0aGUgY3VycmVudGx5IHNwZWNpZmllZCBzdWJzY3JpcHRpb24uCisgKgorICogVGhpcyBhY3Rpb24gaXMgdXNlZCBhcyBjb250cm9sbGVyIGZvciBwb3J0YWwgc2V0dGluZ3MgZWRpdG9yLgorICogSXQgZG9lcyBmb2xvd2luZyA6CisgKiA8dWw+CisgKiA8bGk+TG9hZCBvciBjcmVhdGUgdXNlciBwb3J0YWwgc2V0dGluZ3M8L2xpPgorICogPGxpPlJlYWQgd2ViIGZvcm0sIGFuZCBzZXQgdXNlciBwb3J0YWwgc2V0dGluZyBhY2NvcmRpbmdseTwvbGk+CisgKiA8bGk+UHJlcGFyZSBwb3J0YWwgZWRpdG9yIG5lZWRlZCBhdHRyaWJ1dGVzPC9saT4KKyAqIDxsaT48L2xpPgorICogPC91bD4KKyAqCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVzZXJQb3J0YWxTZXR0aW5nc0FjdGlvbiBleHRlbmRzIFRpbGVzQWN0aW9uIHsKKworICAgIC8qKgorICAgICAqIFByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorICAgICAqIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKyAgICAgKiBSZXR1cm4gYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2UgZGVzY3JpYmluZyB3aGVyZSBhbmQgaG93CisgICAgICogY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgcmVzcG9uc2UgaGFzCisgICAgICogYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb250ZXh0IFRoZSBjdXJyZW50IFRpbGUgY29udGV4dCwgY29udGFpbmluZyBUaWxlIGF0dHJpYnV0ZXMuCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZS4KKyAgICAgKiBAcGFyYW0gZm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSkuCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZy4KKyAgICAgKiBAcGFyYW0gcmVzcG9uc2UgVGhlIEhUVFAgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gaWYgdGhlIGFwcGxpY2F0aW9uIGJ1c2luZXNzIGxvZ2ljIHRocm93cworICAgICAqICBhbiBleGNlcHRpb24KKyAgICAgKiBAc2luY2UgU3RydXRzIDEuMQorICAgICAqLworICAgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkIGV4ZWN1dGUoCisgICAgICAgIENvbXBvbmVudENvbnRleHQgY29udGV4dCwKKyAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKQorICAgICAgICB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBQb3J0YWxTZXR0aW5nc0Zvcm0gcHJlZnNGb3JtID0gKFBvcnRhbFNldHRpbmdzRm9ybSkgZm9ybTsKKworICAgICAgICAvLyBHZXQgdXNlciBwb3J0YWwgc2V0dGluZ3MgZnJvbSB1c2VyIGNvbnRleHQKKyAgICAgICAgUG9ydGFsU2V0dGluZ3Mgc2V0dGluZ3MgPSBVc2VyUG9ydGFsQWN0aW9uLmdldFNldHRpbmdzKHJlcXVlc3QsIGNvbnRleHQpOworICAgICAgICBQb3J0YWxDYXRhbG9nIGNhdGFsb2cgPQorICAgICAgICAgICAgVXNlclBvcnRhbEFjdGlvbi5nZXRQb3J0YWxDYXRhbG9nKAorICAgICAgICAgICAgICAgIGNvbnRleHQsCisgICAgICAgICAgICAgICAgZ2V0U2VydmxldCgpLmdldFNlcnZsZXRDb250ZXh0KCkpOworCisgICAgICAgIGlmIChwcmVmc0Zvcm0uaXNTdWJtaXR0ZWQoKSkgeyAvLyByZWFkIGFycmF5cworCisgICAgICAgICAgICAvLyBTZXQgc2V0dGluZ3MgY29scyBhY2NvcmRpbmcgdG8gdXNlciBjaG9pY2UKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcHJlZnNGb3JtLmdldE51bUNvbCgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBzZXR0aW5ncy5zZXRMaXN0QXQoaSwgY2F0YWxvZy5nZXRUaWxlcyhwcmVmc0Zvcm0uZ2V0TmV3Q29sKGkpKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHByZWZzRm9ybS5yZXNldCgpOworCisgICAgICAgIH0KKworICAgICAgICAvLyBTZXQgbGlzdHMgdmFsdWVzIHRvIGJlIHNob3duCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2V0dGluZ3MuZ2V0TnVtQ29scygpOyBpKyspIHsKKyAgICAgICAgICAgIHByZWZzRm9ybS5hZGRDb2woc2V0dGluZ3MuZ2V0TGlzdEF0KGkpKTsKKyAgICAgICAgICAgIHByZWZzRm9ybS5hZGRDb2xMYWJlbHMoY2F0YWxvZy5nZXRUaWxlTGFiZWxzKHNldHRpbmdzLmdldExpc3RBdChpKSkpOworICAgICAgICB9CisKKyAgICAgICAgcHJlZnNGb3JtLnNldENob2ljZXMoY2F0YWxvZy5nZXRUaWxlcygpKTsKKyAgICAgICAgcHJlZnNGb3JtLnNldENob2ljZUxhYmVscyhjYXRhbG9nLmdldFRpbGVzTGFiZWxzKCkpOworCisgICAgICAgIHJldHVybiBudWxsOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvcnNzQ2hhbm5lbC9DaGFubmVscy5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvcnNzQ2hhbm5lbC9DaGFubmVscy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmNjEyMDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9yc3NDaGFubmVsL0NoYW5uZWxzLmphdmEKQEAgLTAsMCArMSwxNjkgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5yc3NDaGFubmVsOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworCisvL2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIucnNzLkNoYW5uZWw7CisvL2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuZGlnZXN0ZXIucnNzLlJTU0RpZ2VzdGVyOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQ7CisKKy8qKgorICogUmVhZCBhbmQgcGFyc2UgUlNTIGZpbGVzIGZvdW5kIGF0IG9uIGEgZ2l2ZW4KKyAqIGxpc3QgaW4gdXNlciByZXF1ZXN0IG9yIHNlc3Npb24sIHNhdmUgdGhlIENoYW5uZWwKKyAqIGJlYW5zIGluIHJlcXVlc3Qgc2NvcGUsYW5kIGZvcndhcmQgdG8gImNvbnRpbnVlIi4KKyAqIEBleHBlY3RzIHBhdGg9e3VyaX0gb24gY29tbWFuZCBsaW5lIG9yIGFzIHBhcmFtZXRlciBwcm9wZXJ0eSB0byBBY3Rpb25NYXBwaW5nLgorICogQGV4cGVjdHMgYW4gaW5wdXQgcGFnZSBvciBlcnJvciBmb3J3YXJkaW5nIGlmIGV4Y2VwdGlvbiBkaWdlc3RpbmcgUlNTCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIENoYW5uZWxzIGV4dGVuZHMgQWN0aW9uIHsKKworICAgIC8qKiAKKyAgICAgKiBDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgTG9nIGxvZyA9IExvZ0ZhY3RvcnkuZ2V0TG9nKENoYW5uZWxzLmNsYXNzKTsKKworICAgIC8qKgorICAgICAqIFRpbGUgYXR0cmlidXRlIGtleSBmb3Igc2F2aW5nIENoYW5uZWwgYmVhbgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENIQU5ORUxTX0tFWSA9ICJDSEFOTkVMUyI7CisKKyAgICAvKioKKyAgICAgKiBUaWxlIGF0dHJpYnV0ZSBrZXkgZm9yIGdldHRpbmcgQ2hhbm5lbCB1cmxzIGxpc3QKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDSEFOTkVMX1VSTFNfS0VZID0gInVybHMiOworCisgICAgLyoqCisgICAgICogVGlsZSBhdHRyaWJ1dGUga2V5IGZvciBnZXR0aW5nIENoYW5uZWwgdXJsIGF0dHJpYnV0ZQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENIQU5ORUxfVVJMX0tFWSA9ICJ1cmwiOworCisgICAgLyoqCisgICAgICogTWFpbiBwcm9jZXNzIG9mIGNsYXNzLiBSZWFkcywgcGFyc2VzCisgICAgICovCisgICAgcHVibGljIEFjdGlvbkZvcndhcmQgZXhlY3V0ZSgKKyAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKQorICAgICAgICB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBsb2cuZGVidWcoIkVudGVyIFJzcyBDaGFubmVsIEFjdGlvbiIpOworCisgICAgICAgIC8vIFRyeSB0byByZXRyaWV2ZSB0aWxlIGNvbnRleHQKKyAgICAgICAgQ29tcG9uZW50Q29udGV4dCBjb250ZXh0ID0gQ29tcG9uZW50Q29udGV4dC5nZXRDb250ZXh0KHJlcXVlc3QpOworICAgICAgICBpZiAoY29udGV4dCA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgU2VydmxldEV4Y2VwdGlvbigiVGhpcyBhY3Rpb24gbXVzdCBiZSBjYWxsZWQgYnkgYSBUaWxlLCBub3QgZGlyZWN0bHkiKTsKKyAgICAgICAgfQorCisgICAgICAgIEFjdGlvbk1lc3NhZ2VzIGVycm9ycyA9IG5ldyBBY3Rpb25NZXNzYWdlcygpOworCisgICAgICAgIC8vIC0tIFJldHJpZXZlIHBhcmFtZXRlcnMgLS0KKyAgICAgICAgLy8gVXJscyBjYW4gY29tZSBmcm9tIGEgbGlzdCwgb3IgZnJvbSBhIHNpbmdsZSBhdHRyaWJ1dGUuCisKKyAgICAgICAgTGlzdCBjaGFubmVscyA9IChMaXN0KSBjb250ZXh0LmdldEF0dHJpYnV0ZShDSEFOTkVMX1VSTFNfS0VZKTsKKyAgICAgICAgaWYgKGNoYW5uZWxzID09IG51bGwpIHsKKyAgICAgICAgICAgIE9iamVjdCB1cmwgPSBjb250ZXh0LmdldEF0dHJpYnV0ZShDSEFOTkVMX1VSTF9LRVkpOworICAgICAgICAgICAgY2hhbm5lbHMgPSBuZXcgQXJyYXlMaXN0KDEpOworICAgICAgICAgICAgY2hhbm5lbHMuYWRkKHVybCk7CisgICAgICAgIH0KKworICAgICAgICBsb2cuZGVidWcoInVybHMgY291bnQiICsgY2hhbm5lbHMuc2l6ZSgpKTsKKworICAgICAgICAvLyAtLSBMb29wIHRocm91Z2ggY2hhbm5lbHMgLS0KKyAgICAgICAgQXJyYXlMaXN0IGNoYW5uZWxCZWFucyA9IG5ldyBBcnJheUxpc3QoY2hhbm5lbHMuc2l6ZSgpKTsKKy8vICAgICAgICB0cnkgeworLy8gICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNoYW5uZWxzLnNpemUoKTsgaSsrKSB7CisvLyAgICAgICAgICAgICAgICBSU1NEaWdlc3RlciBkaWdlc3RlciA9IG5ldyBSU1NEaWdlc3RlcigpOworLy8gICAgICAgICAgICAgICAgU3RyaW5nIHVybCA9IChTdHJpbmcpIGNoYW5uZWxzLmdldChpKTsKKy8vICAgICAgICAgICAgICAgIC8vIEFkZCBhcHBsaWNhdGlvbiBwYXRoIGlmIG5lZWRlZAorLy8gICAgICAgICAgICAgICAgaWYgKHVybC5zdGFydHNXaXRoKCIvIikpIHsKKy8vICAgICAgICAgICAgICAgICAgICB1cmwgPSB0b0Z1bGxVcmwocmVxdWVzdCwgdXJsKTsKKy8vICAgICAgICAgICAgICAgIH0KKy8vCisvLyAgICAgICAgICAgICAgICBsb2cuZGVidWcoIkNoYW5uZWwgdXJsPSIgKyB1cmwpOworLy8KKy8vICAgICAgICAgICAgICAgIENoYW5uZWwgb2JqID0gKENoYW5uZWwpIGRpZ2VzdGVyLnBhcnNlKHVybCk7CisvLworLy8gICAgICAgICAgICAgICAgbG9nLmRlYnVnKCJDaGFubmVsOiIgKyBvYmopOworLy8KKy8vICAgICAgICAgICAgICAgIGNoYW5uZWxCZWFucy5hZGQob2JqKTsKKy8vICAgICAgICAgICAgfQorLy8gICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisvLyAgICAgICAgICAgIGVycm9ycy5hZGQoCisvLyAgICAgICAgICAgICAgICBBY3Rpb25NZXNzYWdlcy5HTE9CQUxfTUVTU0FHRSwKKy8vICAgICAgICAgICAgICAgIG5ldyBBY3Rpb25NZXNzYWdlKCJyc3MuYWNjZXNzLmVycm9yIikpOworLy8KKy8vICAgICAgICAgICAgc2VydmxldC5sb2codC50b1N0cmluZygpKTsKKy8vICAgICAgICB9CisKKyAgICAgICAgLy8gLS0gSGFuZGxlIEVycm9ycyAtLS0KKyAgICAgICAgaWYgKCFlcnJvcnMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICB0aGlzLnNhdmVFcnJvcnMocmVxdWVzdCwgZXJyb3JzKTsKKworICAgICAgICAgICAgaWYgKG1hcHBpbmcuZ2V0SW5wdXQoKSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25Gb3J3YXJkKG1hcHBpbmcuZ2V0SW5wdXQoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIElmIG5vIGlucHV0IHBhZ2UsIHVzZSBlcnJvciBmb3J3YXJkaW5nCisKKyAgICAgICAgICAgIGxvZy5kZWJ1ZygiRXhpdCBSc3MgQ2hhbm5lbCBBY3Rpb24gOiBlcnJvciIpOworCisgICAgICAgICAgICByZXR1cm4gbWFwcGluZy5maW5kRm9yd2FyZCgiZXJyb3IiKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIC0tIFNhdmUgQmVhbiwgYW5kIENvbnRpbnVlICAtLS0KKworICAgICAgICBsb2cuZGVidWcoIkV4aXQgUnNzIENoYW5uZWwgQWN0aW9uIik7CisKKyAgICAgICAgLy8gVXNlIFRpbGUgY29udGV4dCB0byBwYXNzIGNoYW5uZWxzCisgICAgICAgIGNvbnRleHQucHV0QXR0cmlidXRlKENIQU5ORUxTX0tFWSwgY2hhbm5lbEJlYW5zKTsKKworICAgICAgICByZXR1cm4gbWFwcGluZy5maW5kRm9yd2FyZCgiY29udGludWUiKTsKKyAgICB9CisKKyAgICBwcml2YXRlIFN0cmluZyB0b0Z1bGxVcmwoSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyB1cmwpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmYgPSBuZXcgU3RyaW5nQnVmZmVyKCk7CisKKyAgICAgICAgYnVmZi5hcHBlbmQocmVxdWVzdC5nZXRTY2hlbWUoKSkuYXBwZW5kKCI6Ly8iKS5hcHBlbmQoCisgICAgICAgICAgICByZXF1ZXN0LmdldFNlcnZlck5hbWUoKSk7CisKKyAgICAgICAgaWYgKHJlcXVlc3QuZ2V0U2VydmVyUG9ydCgpICE9IDgwKSB7CisgICAgICAgICAgICBidWZmLmFwcGVuZCgiOiIpLmFwcGVuZChyZXF1ZXN0LmdldFNlcnZlclBvcnQoKSk7CisgICAgICAgIH0KKworICAgICAgICBidWZmLmFwcGVuZChyZXF1ZXN0LmdldENvbnRleHRQYXRoKCkpLmFwcGVuZCh1cmwpOworCisgICAgICAgIHJldHVybiBidWZmLnRvU3RyaW5nKCk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9yc3NDaGFubmVsL1Jzc0NoYW5uZWxzQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9yc3NDaGFubmVsL1Jzc0NoYW5uZWxzQWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEzOGNhZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3Jzc0NoYW5uZWwvUnNzQ2hhbm5lbHNBY3Rpb24uamF2YQpAQCAtMCwwICsxLDE3OSBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDE5OTktMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLnJzc0NoYW5uZWw7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKKworLy9pbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLnJzcy5DaGFubmVsOworLy9pbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLnJzcy5SU1NEaWdlc3RlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWVzc2FnZXM7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLlRpbGVzQWN0aW9uOworCisvKioKKyAqIFJlYWQgYW5kIHBhcnNlIFJTUyBmaWxlcyBmb3VuZCBhdCBvbiBhIGdpdmVuCisgKiBsaXN0IGluIFRpbGUgYXR0cmlidXRlLCBzYXZlIHRoZSBDaGFubmVsCisgKiBiZWFucyBpbiBUaWxlIGF0dHJpYnV0ZSxhbmQgZm9yd2FyZCB0byAiY29udGludWUiLgorICogVGlsZXMgaW5wdXQgYXR0cmlidXRlcyA6CisgKiA8dWw+CisgKiAgIDxsaT51cmxzIDogbGlzdCBvZiBjaGFubmVsIHVybHM8L2xpPgorICogICA8bGk+dXJsIDogYSBjaGFubmVsIHVybCAoaWYgdXJscyBub3QgdXNlKTwvbGk+CisgKiA8L3VsPgorICogVGlsZXMgb3V0cHV0IGF0dHJpYnV0ZXMgOgorICogPHVsPgorICogICA8bGk+Y2hhbm5lbHMgOiBMaXN0IG9mIERpZ2VzdGVyIENoYW5uZWwgYmVhbnM8L2xpPgorICogPC91bD4KKyAqCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFJzc0NoYW5uZWxzQWN0aW9uIGV4dGVuZHMgVGlsZXNBY3Rpb24geworCisgICAgLyoqIAorICAgICAqIENvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBMb2cgbG9nID0gTG9nRmFjdG9yeS5nZXRMb2coUnNzQ2hhbm5lbHNBY3Rpb24uY2xhc3MpOworCisgICAgLyoqCisgICAgICogVGlsZSBhdHRyaWJ1dGUga2V5IGZvciBzYXZpbmcgQ2hhbm5lbCBiZWFuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0hBTk5FTFNfS0VZID0gIkNIQU5ORUxTIjsKKworICAgIC8qKgorICAgICAqIFRpbGUgYXR0cmlidXRlIGtleSBmb3IgZ2V0dGluZyBDaGFubmVsIHVybHMgbGlzdAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENIQU5ORUxfVVJMU19LRVkgPSAidXJscyI7CisKKyAgICAvKioKKyAgICAgKiBUaWxlIGF0dHJpYnV0ZSBrZXkgZm9yIGdldHRpbmcgQ2hhbm5lbCB1cmwgYXR0cmlidXRlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0hBTk5FTF9VUkxfS0VZID0gInVybCI7CisKKyAgICAvKioKKyAgICAgKiBNYWluIHByb2Nlc3Mgb2YgY2xhc3MuIFJlYWRzLCBwYXJzZXMKKyAgICAgKiBAcGFyYW0gY29udGV4dCBUaGUgY3VycmVudCBUaWxlIGNvbnRleHQsIGNvbnRhaW5pbmcgVGlsZSBhdHRyaWJ1dGVzLgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UuCisgICAgICogQHBhcmFtIGZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpLgorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcuCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZy4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIGlmIHRoZSBhcHBsaWNhdGlvbiBidXNpbmVzcyBsb2dpYyB0aHJvd3MKKyAgICAgKiAgYW4gZXhjZXB0aW9uCisgICAgICogQHNpbmNlIFN0cnV0cyAxLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgQWN0aW9uRm9yd2FyZCBleGVjdXRlKAorICAgICAgICBDb21wb25lbnRDb250ZXh0IGNvbnRleHQsCisgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkKKyAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbiB7CisKKyAgICAgICAgbG9nLmRlYnVnKCJFbnRlciBSc3MgQ2hhbm5lbCBBY3Rpb24iKTsKKworICAgICAgICBBY3Rpb25NZXNzYWdlcyBlcnJvcnMgPSBuZXcgQWN0aW9uTWVzc2FnZXMoKTsKKworICAgICAgICAvLyAtLSBSZXRyaWV2ZSBwYXJhbWV0ZXJzIC0tCisgICAgICAgIC8vIFVybHMgY2FuIGNvbWUgZnJvbSBhIGxpc3QsIG9yIGZyb20gYSBzaW5nbGUgYXR0cmlidXRlLgorCisgICAgICAgIExpc3QgY2hhbm5lbHMgPSAoTGlzdCkgY29udGV4dC5nZXRBdHRyaWJ1dGUoQ0hBTk5FTF9VUkxTX0tFWSk7CisgICAgICAgIGlmIChjaGFubmVscyA9PSBudWxsKSB7CisgICAgICAgICAgICBPYmplY3QgdXJsID0gY29udGV4dC5nZXRBdHRyaWJ1dGUoQ0hBTk5FTF9VUkxfS0VZKTsKKyAgICAgICAgICAgIGNoYW5uZWxzID0gbmV3IEFycmF5TGlzdCgxKTsKKyAgICAgICAgICAgIGNoYW5uZWxzLmFkZCh1cmwpOworICAgICAgICB9CisKKyAgICAgICAgbG9nLmRlYnVnKCJ1cmxzIGNvdW50IiArIGNoYW5uZWxzLnNpemUoKSk7CisKKyAgICAgICAgLy8gLS0gTG9vcCB0aHJvdWdoIGNoYW5uZWxzIC0tCisgICAgICAgIExpc3QgY2hhbm5lbEJlYW5zID0gbmV3IEFycmF5TGlzdChjaGFubmVscy5zaXplKCkpOworLy8gICAgICAgIHRyeSB7CisvLyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hhbm5lbHMuc2l6ZSgpOyBpKyspIHsKKy8vICAgICAgICAgICAgICAgIFJTU0RpZ2VzdGVyIGRpZ2VzdGVyID0gbmV3IFJTU0RpZ2VzdGVyKCk7CisvLyAgICAgICAgICAgICAgICBTdHJpbmcgdXJsID0gKFN0cmluZykgY2hhbm5lbHMuZ2V0KGkpOworLy8gICAgICAgICAgICAgICAgLy8gQWRkIGFwcGxpY2F0aW9uIHBhdGggaWYgbmVlZGVkCisvLyAgICAgICAgICAgICAgICBpZiAodXJsLnN0YXJ0c1dpdGgoIi8iKSkgeworLy8gICAgICAgICAgICAgICAgICAgIHVybCA9IHRvRnVsbFVybChyZXF1ZXN0LCB1cmwpOworLy8gICAgICAgICAgICAgICAgfQorLy8KKy8vICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygiQ2hhbm5lbCB1cmw9IiArIHVybCk7CisvLworLy8gICAgICAgICAgICAgICAgQ2hhbm5lbCBvYmogPSAoQ2hhbm5lbCkgZGlnZXN0ZXIucGFyc2UodXJsKTsKKy8vCisvLyAgICAgICAgICAgICAgICBsb2cuZGVidWcoIkNoYW5uZWw6IiArIG9iaik7CisvLworLy8gICAgICAgICAgICAgICAgY2hhbm5lbEJlYW5zLmFkZChvYmopOworLy8gICAgICAgICAgICB9CisvLyAgICAgICAgICAgIAorLy8gICAgICAgIH0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CisvLyAgICAgICAgICAgIGVycm9ycy5hZGQoCisvLyAgICAgICAgICAgICAgICBBY3Rpb25NZXNzYWdlcy5HTE9CQUxfTUVTU0FHRSwKKy8vICAgICAgICAgICAgICAgIG5ldyBBY3Rpb25NZXNzYWdlKCJyc3MuYWNjZXNzLmVycm9yIikpOworLy8KKy8vICAgICAgICAgICAgc2VydmxldC5sb2codC50b1N0cmluZygpKTsKKy8vICAgICAgICB9CisKKyAgICAgICAgLy8gLS0gSGFuZGxlIEVycm9ycyAtLS0KKyAgICAgICAgaWYgKCFlcnJvcnMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICB0aGlzLnNhdmVFcnJvcnMocmVxdWVzdCwgZXJyb3JzKTsKKyAgICAgICAgICAgIC8vIElmIG5vIGlucHV0IHBhZ2UsIHVzZSBlcnJvciBmb3J3YXJkaW5nCisKKyAgICAgICAgICAgIGxvZy5kZWJ1ZygiRXhpdCBSc3MgQ2hhbm5lbCBBY3Rpb24gOiBlcnJvciIpOworCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIC0tIFNhdmUgQmVhbiwgYW5kIENvbnRpbnVlICAtLS0KKworICAgICAgICBsb2cuZGVidWcoIkV4aXQgUnNzIENoYW5uZWwgQWN0aW9uIik7CisKKyAgICAgICAgLy8gVXNlIFRpbGUgY29udGV4dCB0byBwYXNzIGNoYW5uZWxzCisgICAgICAgIGNvbnRleHQucHV0QXR0cmlidXRlKENIQU5ORUxTX0tFWSwgY2hhbm5lbEJlYW5zKTsKKworICAgICAgICByZXR1cm4gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIEZ1bGwgbG9jYWwgdXJsIGZyb20gYW4gdXJsIHN0YXJ0aW5nIHdpdGggIi8iLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHRvRnVsbFVybChIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHVybCkgeworICAgICAgICBTdHJpbmdCdWZmZXIgYnVmZiA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKKworICAgICAgICBidWZmLmFwcGVuZChyZXF1ZXN0LmdldFNjaGVtZSgpKS5hcHBlbmQoIjovLyIpLmFwcGVuZCgKKyAgICAgICAgICAgIHJlcXVlc3QuZ2V0U2VydmVyTmFtZSgpKTsKKworICAgICAgICBpZiAocmVxdWVzdC5nZXRTZXJ2ZXJQb3J0KCkgIT0gODApIHsKKyAgICAgICAgICAgIGJ1ZmYuYXBwZW5kKCI6IikuYXBwZW5kKHJlcXVlc3QuZ2V0U2VydmVyUG9ydCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGJ1ZmYuYXBwZW5kKHJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSkuYXBwZW5kKHVybCk7CisKKyAgICAgICAgcmV0dXJuIGJ1ZmYudG9TdHJpbmcoKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3NraW4vRGVmaW5pdGlvbkNhdGFsb2cuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3NraW4vRGVmaW5pdGlvbkNhdGFsb2cuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTA5NTUxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvc2tpbi9EZWZpbml0aW9uQ2F0YWxvZy5qYXZhCkBAIC0wLDAgKzEsMTcyIEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMuc2tpbjsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnREZWZpbml0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc1V0aWw7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLk5vU3VjaERlZmluaXRpb25FeGNlcHRpb247CisKKy8qKgorICogQSBjYXRhbG9nIG9mIGF2YWlsYWJsZSBkZWZpbml0aW9ucy4KKyAqLworcHVibGljIGNsYXNzIERlZmluaXRpb25DYXRhbG9nCit7CisgICAgICAvKiogZGVidWcgZmxhZyAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBkZWJ1ZyA9IHRydWU7CisgICAgLyoqIEF0dHJpYnV0ZSBjYXJyeWluZyBkZWZpbml0aW9uIHJlYWRhYmxlIG5hbWUgKi8KKyAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIExBQkVMX05BTUVfQVRUUklCVVRFID0gInNraW4ubGFiZWwiOworICAgIC8qKiBBdHRyaWJ1dGUgY2FycnlpbmcgdGhlIGxpc3Qgb2YgZGVmaW5pdGlvbiBuYW1lcyAqLworICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVGSU5JVElPTl9MSVNUX0FUVFJJQlVURSA9ICJza2luLmxpc3QiOworCisgICAvKioKKyAgICAqIE1hcCBvZiBza2lucywgYnkgdGhlaXIga2V5cworICAgICovCisgICBwcml2YXRlIE1hcCBkZWZpbml0aW9ucyA9IG5ldyBIYXNoTWFwKCk7CisgICAvKioKKyAgICAqIE1hcCBvZiBza2lucywgYnkgdGhlaXIga2V5cworICAgICovCisgICBwcml2YXRlIENvbXBvbmVudERlZmluaXRpb24gZGVmYXVsdERlZmluaXRpb247CisKKyAgIC8qKgorICAgICogTGlzdCBvZiBuYW1lcworICAgICovCisgICBwcml2YXRlIExpc3QgbmFtZXMgPSBuZXcgQXJyYXlMaXN0KCk7CisKKyAgIC8qKgorICAgICogTGlzdCBvZiBrZXlzCisgICAgKi8KKyAgIHByaXZhdGUgTGlzdCBrZXlzID0gbmV3IEFycmF5TGlzdCgpOworCisgICAvKioKKyAgICAqIENvbnN0cnVjdG9yLgorICAgICogSW5pdGlhbGl6ZSBjYXRhbG9nIGZyb20gZGVmaW5pdGlvbnMgZmFjdG9yeS4KKyAgICAqIEBwYXJhbSBIdHRwUmVxdWVzdCByZXF1ZXN0CisgICAgKiBAcGFyYW0gU2VydmxldENvbnRleHQgY29udGV4dAorICAgICogQHRocm93cyBGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24sIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbgorICAgICovCisgICBwdWJsaWMgRGVmaW5pdGlvbkNhdGFsb2coIFN0cmluZyBjYXRhbG9nTmFtZSwgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsIFNlcnZsZXRDb250ZXh0IGNvbnRleHQpCisgICAgIHRocm93cyBGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24sIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbgorICAgeworICAgICAvLyBHZXQgZGVmaW5pdGlvbiBjb250YWluaW5nIGxpc3Qgb2YgZGVmaW5pdGlvbnMKKyAgIENvbXBvbmVudERlZmluaXRpb24gY2F0YWxvZ0RlZiA9IERlZmluaXRpb25zVXRpbC5nZXREZWZpbml0aW9uKCBjYXRhbG9nTmFtZSwgcmVxdWVzdCwgY29udGV4dCk7CisgICBpZihkZWJ1ZykKKyAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiR290IGRlZmluaXRpb24gIiArIGNhdGFsb2dEZWYgKTsKKyAgICAgLy8gR2V0IGxpc3Qgb2YgZGVmaW5pdGlvbiBuYW1lcworICAgTGlzdCBsaXN0ID0gKExpc3QpY2F0YWxvZ0RlZi5nZXRBdHRyaWJ1dGUoIERFRklOSVRJT05fTElTVF9BVFRSSUJVVEUgKTsKKyAgIEl0ZXJhdG9yIGkgPSBsaXN0Lml0ZXJhdG9yKCk7CisgICB3aGlsZShpLmhhc05leHQoKSApCisgICAgIHsKKyAgICAgU3RyaW5nIG5hbWUgPSAoU3RyaW5nKWkubmV4dCgpOworICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJhZGQgIiArIG5hbWUgKTsKKyAgICAgQ29tcG9uZW50RGVmaW5pdGlvbiBkZWYgPSBEZWZpbml0aW9uc1V0aWwuZ2V0RGVmaW5pdGlvbihuYW1lLCByZXF1ZXN0LCBjb250ZXh0KTsKKyAgICAgaWYoZGVmPT1udWxsKQorICAgICAgIHRocm93IG5ldyBOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uKCJDYW4ndCBmaW5kIGRlZmluaXRpb24gJyIgKyBuYW1lICsgIiciICk7CisgICAgIGFkZCggbmFtZSwgZGVmICk7CisgICAgIH0gLy8gZW5kIGxvb3AKKyAgIGlmKGRlYnVnKQorICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJDYXRhbG9nIGluaXRpYWxpemVkIiApOworICAgfQorCisgICAvKioKKyAgICAqIEdldCBkZWZpbml0aW9uIGlkZW50aWZpZWQgYnkga2V5LgorICAgICogQHBhcmFtIGtleQorICAgICogQHJldHVybiBEZWZpbml0aW9uIGFzc29jaWF0ZWQgdG8ga2V5CisgICAgKi8KKyAgIHB1YmxpYyBDb21wb25lbnREZWZpbml0aW9uIGdldChPYmplY3Qga2V5KQorICAgeworICAgaWYoa2V5PT1udWxsKQorICAgICByZXR1cm4gZ2V0RGVmYXVsdCgpOworICAgcmV0dXJuIChDb21wb25lbnREZWZpbml0aW9uKWRlZmluaXRpb25zLmdldChrZXkpOworICAgfQorCisgICAvKioKKyAgICAqIEdldCBkZWZpbml0aW9uIGlkZW50aWZpZWQgYnkga2V5LgorICAgICogQHBhcmFtIGtleQorICAgICogQHJldHVybiBEZWZpbml0aW9uIGFzc29jaWF0ZWQgdG8ga2V5CisgICAgKi8KKyAgIHB1YmxpYyBDb21wb25lbnREZWZpbml0aW9uIGdldERlZmF1bHQoKQorICAgeworICAgcmV0dXJuIGRlZmF1bHREZWZpbml0aW9uOworICAgfQorCisgICAvKioKKyAgICAqIFJldHVybiBMaXN0IG9mIG5hbWVzIG9mIGRlZmluaXRpb25zIHByZXNlbnRzIGluIGNhdGFsb2cuCisgICAgKiBOYW1lcyBhcmUgdXNlciByZWFkYWJsZSBuYW1lcy4gUmV0dXJuZWQgbGlzdCBoYXMgdGhlIHNhbWUgb3JkZXIgYXMgbGlzdAorICAgICogcmV0dXJuZWQgYnkgZ2V0S2V5cy4KKyAgICAqIEByZXR1cm4gTGlzdAorICAgICovCisgICBwdWJsaWMgTGlzdCBnZXROYW1lcygpCisgICB7CisgICAgcmV0dXJuIG5hbWVzOworICAgfQorCisgICAvKioKKyAgICAqIEdldCBsaXN0IG9mIGtleXMgb2YgZGVmaW5pdGlvbnMgcHJlc2VudCBpbiBjYXRhbG9nLgorICAgICogQSBrZXkgaXMgdXNlZCB0byByZXRyaWV2ZSBhIHNraW4gZnJvbSBjYXRhbG9nLgorICAgICogQHJldHVybiBMaXN0CisgICAgKi8KKyAgIHB1YmxpYyBMaXN0IGdldEtleXMoKQorICAgeworICAgIHJldHVybiBrZXlzOworICAgfQorCisgICAvKioKKyAgICAqIENoZWNrIGlmIHJlcXVlc3RlZCBrZXkgaXMgdmFsaWQgaW4gY2F0YWxvZy4KKyAgICAqIFJldHVybiBudWxsIG90aGVyd2lzZQorICAgICogQHJldHVybiB2YWxpZCBrZXkgb3IgbnVsbAorICAgICovCisgICBwdWJsaWMgU3RyaW5nIGdldEtleSggU3RyaW5nIGtleSApCisgICB7CisgICBpZiggZGVmaW5pdGlvbnMuZ2V0KGtleSkgIT0gbnVsbCkKKyAgICByZXR1cm4ga2V5OworCisgICByZXR1cm4gbnVsbDsKKyAgIH0KKworICAgLyoqCisgICAgKiBBZGQgYSBza2luIGRlZmluaXRpb24KKyAgICAqIEBwYXJhbSBkZWZpbml0aW9uCisgICAgKi8KKyAgIHB1YmxpYyB2b2lkIGFkZChTdHJpbmcga2V5LCBDb21wb25lbnREZWZpbml0aW9uIGRlZmluaXRpb24pCisgICB7CisgICAgIC8vIEludGl0aWFsaXplIGRlZmF1bHQgZGVmaW5pdGlvbiB3aXRoIGZpcnN0IGRlZmluaXRpb24gZW5jb3VudGVyZWQKKyAgIGlmKCBkZWZhdWx0RGVmaW5pdGlvbiA9PSBudWxsICkKKyAgICAgeworICAgICBkZWZhdWx0RGVmaW5pdGlvbiA9IGRlZmluaXRpb247CisgICAgIH0KKyAgICAgLy8gc3RvcmUgZGVmaW5pdGlvbgorICAgZGVmaW5pdGlvbnMucHV0KCBrZXkgLCBkZWZpbml0aW9uKTsKKyAgIE9iamVjdCBuYW1lID0gZGVmaW5pdGlvbi5nZXRBdHRyaWJ1dGUoTEFCRUxfTkFNRV9BVFRSSUJVVEUpOworICAgaWYoIG5hbWUgPT0gbnVsbCApCisgICAgIG5hbWUgPSBrZXk7CisgICBuYW1lcy5hZGQoIG5hbWUgKTsKKyAgIGtleXMuYWRkKGtleSk7CisgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9za2luL0xheW91dFNldHRpbmdzQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9za2luL0xheW91dFNldHRpbmdzQWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTVmYWEzZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3NraW4vTGF5b3V0U2V0dGluZ3NBY3Rpb24uamF2YQpAQCAtMCwwICsxLDk5IEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMuc2tpbjsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLlRpbGVzQWN0aW9uOworCisvKioKKyAqIEFjdGlvbiB1c2VkIHRvIHNldCB1c2VyIHNraW4uCisgKi8KK3B1YmxpYyBjbGFzcyBMYXlvdXRTZXR0aW5nc0FjdGlvbiBleHRlbmRzIFRpbGVzQWN0aW9uCit7CisgICAgICAvKiogZGVidWcgZmxhZyAqLworICAgIHB1YmxpYyBzdGF0aWMgYm9vbGVhbiBkZWJ1ZyA9IHRydWU7CisKKyAgICAvKioKKyAgICAgKiBQcm9jZXNzIHRoZSBzcGVjaWZpZWQgSFRUUCByZXF1ZXN0LCBhbmQgY3JlYXRlIHRoZSBjb3JyZXNwb25kaW5nIEhUVFAKKyAgICAgKiByZXNwb25zZSAob3IgZm9yd2FyZCB0byBhbm90aGVyIHdlYiBjb21wb25lbnQgdGhhdCB3aWxsIGNyZWF0ZSBpdCkuCisgICAgICogUmV0dXJuIGFuIDxjb2RlPkFjdGlvbkZvcndhcmQ8L2NvZGU+IGluc3RhbmNlIGRlc2NyaWJpbmcgd2hlcmUgYW5kIGhvdworICAgICAqIGNvbnRyb2wgc2hvdWxkIGJlIGZvcndhcmRlZCwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlIHJlc3BvbnNlIGhhcworICAgICAqIGFscmVhZHkgYmVlbiBjb21wbGV0ZWQuCisgICAgICogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29udGV4dCBUaGUgY3VycmVudCBUaWxlIGNvbnRleHQsIGNvbnRhaW5pbmcgVGlsZSBhdHRyaWJ1dGVzLgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UuCisgICAgICogQHBhcmFtIGZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpLgorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcuCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZy4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIGlmIHRoZSBhcHBsaWNhdGlvbiBidXNpbmVzcyBsb2dpYyB0aHJvd3MKKyAgICAgKiAgYW4gZXhjZXB0aW9uCisgICAgICogQHNpbmNlIFN0cnV0cyAxLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgQWN0aW9uRm9yd2FyZCBleGVjdXRlKAorICAgICAgICBDb21wb25lbnRDb250ZXh0IGNvbnRleHQsCisgICAgICAgIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkKKyAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbgorICAgeworICAgIGlmKGRlYnVnKQorICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFbnRlciBhY3Rpb24gTGF5b3V0U2V0dGluZ0FjdGlvbiIpOworCisgICAgTGF5b3V0U2V0dGluZ3NGb3JtIGFjdGlvbkZvcm0gPSAoTGF5b3V0U2V0dGluZ3NGb3JtKWZvcm07CisKKyAgICAgICAgLy8gTG9hZCB1c2VyIG1lbnUgc2V0dGluZ3MgYW5kIGF2YWlsYWJsZSBsaXN0IG9mIGNob2ljZXMKKyAgICBTdHJpbmcgIHNlbGVjdGVkID0gTGF5b3V0U3dpdGNoQWN0aW9uLmdldFVzZXJTZXR0aW5nKCBjb250ZXh0LCByZXF1ZXN0ICk7CisgICAgaWYoc2VsZWN0ZWQ9PW51bGwpCisgICAgICBzZWxlY3RlZCA9ICJkZWZhdWx0IjsKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oInVzZXIgc2V0dGluZyByZXRyaWV2ZWQiKTsKKyAgICBEZWZpbml0aW9uQ2F0YWxvZyBjYXRhbG9nID0gTGF5b3V0U3dpdGNoQWN0aW9uLmdldENhdGFsb2coIGNvbnRleHQsIHJlcXVlc3QsIGdldFNlcnZsZXQoKS5nZXRTZXJ2bGV0Q29udGV4dCgpICk7CisgICAgU3lzdGVtLm91dC5wcmludGxuKCJjYXRhbG9nIHJldHJpZXZlZCIpOworCisgICAgICAvLyBDaGVjayBpZiBmb3JtIGlzIHN1Ym1pdHRlZAorICAgICAgLy8gSWYgdHJ1ZSwgcmVhZCwgY2hlY2sgYW5kIHN0b3JlIG5ldyB2YWx1ZXMgc3VibWl0dGVkIGJ5IHVzZXIuCisgICAgaWYoIGFjdGlvbkZvcm0uaXNTdWJtaXR0ZWQoKSApCisgICAgICB7ICAvLyByZWFkIGFycmF5cworICAgICAgaWYoZGVidWcpCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZm9ybSBzdWJtaXR0ZWQiKTsKKyAgICAgIHNlbGVjdGVkID0gY2F0YWxvZy5nZXRLZXkoYWN0aW9uRm9ybS5nZXRTZWxlY3RlZCgpKTsKKyAgICAgIGlmKGRlYnVnKQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJrZXkgOiAiICsgc2VsZWN0ZWQgKTsKKyAgICAgIExheW91dFN3aXRjaEFjdGlvbi5zZXRVc2VyU2V0dGluZyhjb250ZXh0LCByZXF1ZXN0LCBzZWxlY3RlZCApOworICAgICAgaWYoZGVidWcpCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggInNldHRpbmdzIDogIiArIHNlbGVjdGVkICk7CisgICAgICBhY3Rpb25Gb3JtLnJlc2V0KCk7CisgICAgICB9IC8vIGVuZCBpZgorCisgICAgICAvLyBQcmVwYXJlIGRhdGEgZm9yIHZpZXcgdGlsZQorICAgIGNvbnRleHQucHV0QXR0cmlidXRlKCAic2VsZWN0ZWQiLCBzZWxlY3RlZCApOworICAgIGNvbnRleHQucHV0QXR0cmlidXRlKCAiY2F0YWxvZyIsIGNhdGFsb2cgKTsKKworICAgIGlmKGRlYnVnKQorICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFeGl0IGFjdGlvbiBMYXlvdXRTZXR0aW5nQWN0aW9uIik7CisgICAgcmV0dXJuIG51bGw7CisgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9za2luL0xheW91dFNldHRpbmdzRm9ybS5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvc2tpbi9MYXlvdXRTZXR0aW5nc0Zvcm0uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MGMzMDc0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvc2tpbi9MYXlvdXRTZXR0aW5nc0Zvcm0uamF2YQpAQCAtMCwwICsxLDgxIEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMuc2tpbjsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworCisvKioKKyAqIFN0cnV0cyBmb3JtCisgKi8KK3B1YmxpYyBjbGFzcyBMYXlvdXRTZXR0aW5nc0Zvcm0gZXh0ZW5kcyBBY3Rpb25Gb3JtCit7CisKKyAgICAvKiogVmFsaWRhdGUgdmFsdWUgKi8KKyAgcHJvdGVjdGVkIFN0cmluZyB2YWxpZGF0ZTsKKworICAgLyoqCisgICAgKiBVc2VyIHNlbGVjdGVkIGtleSB2YWx1ZQorICAgICovCisgICBwcml2YXRlIFN0cmluZyBzZWxlY3RlZDsKKworICAgLyoqCisgICAgKiBBY2Nlc3MgbWV0aG9kIGZvciB0aGUgc2VsZWN0ZWRLZXkgcHJvcGVydHkuCisgICAgKgorICAgICogQHJldHVybiAgIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBzZWxlY3RlZEtleSBwcm9wZXJ0eQorICAgICovCisgICBwdWJsaWMgU3RyaW5nIGdldFNlbGVjdGVkKCkKKyAgIHsKKyAgICAgIHJldHVybiBzZWxlY3RlZDsKKyAgIH0KKworICAgLyoqCisgICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0ZWRLZXkgcHJvcGVydHkuCisgICAgKgorICAgICogQHBhcmFtIGFTZWxlY3RlZEtleSB0aGUgbmV3IHZhbHVlIG9mIHRoZSBzZWxlY3RlZEtleSBwcm9wZXJ0eQorICAgICovCisgICBwdWJsaWMgdm9pZCBzZXRTZWxlY3RlZChTdHJpbmcgYVNlbGVjdGVkS2V5KQorICAgeworICAgICAgc2VsZWN0ZWQgPSBhU2VsZWN0ZWRLZXk7CisgICB9CisgICAvKioKKyAgICAqIElzIHRoaXMgZm9ybSBzdWJtaXR0ZWQgPworICAgICovCisgIHB1YmxpYyBib29sZWFuIGlzU3VibWl0dGVkKCkKKyAgICB7CisgICAgcmV0dXJuIHZhbGlkYXRlICE9IG51bGw7CisgICAgfQorCisgICAvKioKKyAgICAqIElzIHRoaXMgZm9ybSBzdWJtaXR0ZWQgPworICAgICovCisgIHB1YmxpYyB2b2lkIHNldFZhbGlkYXRlKCBTdHJpbmcgdmFsdWUpCisgICAgeworICAgIHRoaXMudmFsaWRhdGUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNldCBwcm9wZXJ0aWVzCisgICAgICovCisgIHB1YmxpYyB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgc2VsZWN0ZWQgPSAgbnVsbDsKKyAgICB2YWxpZGF0ZSA9IG51bGw7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9za2luL0xheW91dFN3aXRjaEFjdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvc2tpbi9MYXlvdXRTd2l0Y2hBY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NmU2NzNjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvc2tpbi9MYXlvdXRTd2l0Y2hBY3Rpb24uamF2YQpAQCAtMCwwICsxLDIyNSBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDE5OTktMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLnNraW47CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlJlcXVlc3REaXNwYXRjaGVyOworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5UaWxlc0FjdGlvbjsKKworICAvKioKKyAgICogQ3VzdG9taXplIGxheW91dHMgYWNjb3JkaW5nIHRvIHByZWRlZmluZWQgInNraW4iCisgICAqIEEgInNraW4iIGlzIGEgc2V0IG9mIGxheW91dHMgdXNlZCB0b2dldGhlciB0byBwcm92aWRlIGEgY29uc2lzdGVudAorICAgKiBMb29rICYgRmVlbC4KKyAgICogVGhpcyBhY3Rpb24gaXMgY2FsbGVkIHdoZW4gaW5zZXJ0aW5nIGEgZGVmaW5pdGlvbidzIGxheW91dC4gSXQgcmVwbGFjZXMKKyAgICogZGVmaW5pdGlvbidzIGxheW91dCBieSB0aGUgb25lIHNldCBpbiBzZWxlY3RlZCBza2luLgorICAgKiB0aGUgYXBwcm9wcmlhdGUKKyAgICogQXZhaWxhYmxlIHNraW5zIGFyZSBzdG9yZWQgaW4gYXBwbGljYXRpb24gY29udGV4dC4gVGhleSBhcmUgaW5pdGlhbGl6ZWQgZnJvbQorICAgKiBhIFRpbGUgZGVmaW5pdGlvbi4KKyAgICogQ3VycmVudGx5IHNlbGVjdGVkIHNraW4gaXMgc3RvcmVkIHVuZGVyIHVzZXIgc2Vzc2lvbiwgaWYgYW55LiBPdGhlcndpc2UsCisgICAqIHRoZSBkZWZhdWx0IHNraW4gaXMgdXNlZC4KKyAgICogVGhpcyBhY3Rpb24gYWN0IGZvciBhbGwgbGF5b3V0cy4gQSBUaWxlJ3MgYXR0cmlidXRlIChza2luTGF5b3V0KSBpcyB1c2VkIGFzIGEga2V5IHRvCisgICAqIGtub3cgd2hpY2ggbGF5b3V0cyBpcyBjb25jZXJuZWQuCisgICAqLworcHVibGljIGNsYXNzIExheW91dFN3aXRjaEFjdGlvbiBleHRlbmRzIFRpbGVzQWN0aW9uCit7CisgICAgLyoqIGRlYnVnIGZsYWcgKi8KKyAgcHVibGljIHN0YXRpYyBib29sZWFuIGRlYnVnID0gdHJ1ZTsKKyAgICAvKiogVGlsZSdzIGF0dHJpYnV0ZSBjb250YWluaW5nIGxheW91dCBrZXkgKi8KKyAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTEFZT1VUX0FUVFJJQlVURSA9ICJsYXlvdXQuYXR0cmlidXRlIjsKKyAgICAvKiogVGlsZSBhdHRyaWJ1dGUgY29udGFpbmluZyBuYW1lIHVzZWQgdG8gc3RvcmUgdXNlciBzZXR0aW5ncyBpbiBzZXNzaW9uIGNvbnRleHQgKi8KKyAgcHVibGljIHN0YXRpYyBTdHJpbmcgVVNFUl9TRVRUSU5HU19OQU1FX0FUVFJJQlVURSA9ICJ1c2VyU2V0dGluZ3NOYW1lIjsKKyAgICAvKiogRGVmYXVsdCBuYW1lIHVzZWQgdG8gc3RvcmUgc2V0dGluZ3MgaW4gc2Vzc2lvbiBjb250ZXh0ICovCisgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIERFRkFVTFRfVVNFUl9TRVRUSU5HU19OQU1FID0gImV4YW1wbGVzLnRpbGVzLnNraW4uU0VMRUNURURfREVGSU5JVElPTiI7CisKKyAgICAvKiogTmFtZSBvZiBjYXRhbG9nIGluIGFwcGxpY2F0aW9uIGNvbnRleHQgKi8KKyAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0FUQUxPR19OQU1FID0gImV4YW1wbGVzLnRpbGVzLnNraW4uQ0FUQUxPR19OQU1FIjsKKworICAgIC8qKiBEZWZhdWx0IG5hbWUgdXNlZCB0byBzdG9yZSBtZW51IGNhdGFsb2cgaW4gYXBwbGljYXRpb24gc2NvcGUgKi8KKyAgcHVibGljIHN0YXRpYyBTdHJpbmcgREVGQVVMVF9DQVRBTE9HX05BTUUgPSAidGlsZXMuZXhhbXBsZXMuc2tpbi5sYXlvdXRDYXRhbG9nIjsKKyAgICAvKiogVGlsZSBhdHRyaWJ1dGUgY29udGFpbmluZyBuYW1lIHVzZWQgdG8gc3RvcmUgbWVudSBjYXRhbG9nIGluIGFwcGxpY2F0aW9uIHNjb3BlICovCisgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIENBVEFMT0dfTkFNRV9BVFRSSUJVVEUgPSAiY2F0YWxvZ05hbWUiOworICAgIC8qKiBUaWxlIGF0dHJpYnV0ZSBjb250YWluaW5nIG5hbWUgb2YgdGhlIHNldHRpbmdzIGRlZmluaXRpb24gdXNlZCB0byBpbml0aWFsaXplIGNhdGFsb2cgKi8KKyAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0FUQUxPR19TRVRUSU5HX0FUVFJJQlVURSA9ICJjYXRhbG9nU2V0dGluZ3MiOworCisgICAgLyoqCisgICAgICogUHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgICAgICogcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorICAgICAqIFJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlIGFuZCBob3cKKyAgICAgKiBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSByZXNwb25zZSBoYXMKKyAgICAgKiBhbHJlYWR5IGJlZW4gY29tcGxldGVkLgorICAgICAqIFRoaXMgbWV0aG9kIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLgorICAgICAqCisgICAgICogQHBhcmFtIGNvbnRleHQgVGhlIGN1cnJlbnQgVGlsZSBjb250ZXh0LCBjb250YWluaW5nIFRpbGUgYXR0cmlidXRlcy4KKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlLgorICAgICAqIEBwYXJhbSBmb3JtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KS4KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nLgorICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcuCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiBpZiB0aGUgYXBwbGljYXRpb24gYnVzaW5lc3MgbG9naWMgdGhyb3dzCisgICAgICogIGFuIGV4Y2VwdGlvbgorICAgICAqIEBzaW5jZSBTdHJ1dHMgMS4xCisgICAgICovCisgICAgcHVibGljIEFjdGlvbkZvcndhcmQgZXhlY3V0ZSgKKyAgICAgICAgQ29tcG9uZW50Q29udGV4dCBjb250ZXh0LAorICAgICAgICBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisgICAgICAgIEFjdGlvbkZvcm0gZm9ybSwKKyAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgICAgIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgaWYoZGVidWcpCisgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJFbnRlckxheW91dFN3aXRjaEFjdGlvbiIgICk7CisgICAgICAvLyBHZXQgYXR0cmlidXRlIHZhbHVlIGluZGljYXRpbmcgd2hpY2ggbGF5b3V0IHdlIHdhbnQKKyAgICBTdHJpbmcgbGF5b3V0S2V5ID0gKFN0cmluZyljb250ZXh0LmdldEF0dHJpYnV0ZSggTEFZT1VUX0FUVFJJQlVURSApOworICAgIGlmKGxheW91dEtleT09bnVsbCkKKyAgICAgIHRocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKCAiRXJyb3IgLSBDdXN0b21Ta2luQWN0aW9uIDogYXR0cmlidXRlICciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBMQVlPVVRfQVRUUklCVVRFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyBub3QgZm91bmQgaW4gVGlsZSdzIGF0dHJpYnV0ZXMuIE5lZWQgaXQgdG8gc2VsZWN0IGFwcHJvcHJpYXRlIGxheW91dCIgICk7CisKKyAgICAgIC8vIEdldCB1c2VyIGN1cnJlbnQgc2tpbgorICAgIENvbXBvbmVudERlZmluaXRpb24gZGVmaW5pdGlvbiA9IGdldEN1cnJlbnREZWZpbml0aW9uKCBjb250ZXh0LCByZXF1ZXN0LCBnZXRTZXJ2bGV0KCkuZ2V0U2VydmxldENvbnRleHQoKSApOworICAgICAgLy8gZ2V0IHJlcXVlc3RlZCBsYXlvdXQgZnJvbSBkZWZpbml0aW9uCisgICAgU3RyaW5nIGxheW91dCA9IChTdHJpbmcpZGVmaW5pdGlvbi5nZXRBdHRyaWJ1dGUobGF5b3V0S2V5KTsKKyAgICBpZihsYXlvdXQ9PW51bGwpCisgICAgICB0aHJvdyBuZXcgU2VydmxldEV4Y2VwdGlvbiggIkVycm9yIC0gQ3VzdG9tU2tpbkFjdGlvbiA6IG5vIGxheW91dCBkZWZpbmVkIGZvciBrZXkgJyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxheW91dEtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgIicgaW4gY3VycmVudGx5IHNlbGVjdGVkIHNraW4gJyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGdldFVzZXJTZXR0aW5nKGNvbnRleHQsIHJlcXVlc3QgKSArICInLiIgICk7CisgICAgICAvLyBzZXQgcGF0aCB0byBmb3J3YXJkIHRvCisgICAgICAvLyBOb3QgdmVyeSBuaWNlIHNvbHV0aW9uLCBuZWVkIHRvIGltcHJvdmUgaXQKKyAgICAvKgorICAgIENvbXBvbmVudERlZmluaXRpb24gZm9yd2FyRGVmaW5pdGlvbiA9IG5ldyBDb21wb25lbnREZWZpbml0aW9uKCAiIiwgbGF5b3V0LCBuZXcgSGFzaE1hcCgpICk7CisgICAgRGVmaW5pdGlvbnNVdGlsLnNldEFjdGlvbkRlZmluaXRpb24oIHJlcXVlc3QsIGZvcndhckRlZmluaXRpb24gKTsKKyAgICAqLworICAgIGlmKGRlYnVnKQorICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiU3dpdGNoIHRvIDogIiArIGxheW91dCAgKTsKKyAgICBSZXF1ZXN0RGlzcGF0Y2hlciByZCA9IGdldFNlcnZsZXQoKS5nZXRTZXJ2bGV0Q29udGV4dCgpLmdldFJlcXVlc3REaXNwYXRjaGVyKCBsYXlvdXQgKTsKKyAgICBpZihyZD09bnVsbCkKKyAgICAgIHRocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKCAiTGF5b3V0U3dpdGNoIGVycm9yIDogQ2FuJ3QgZmluZCBsYXlvdXQgJyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGxheW91dCArICInLiIgKTsKKyAgICByZC5pbmNsdWRlKHJlcXVlc3QsIHJlc3BvbnNlKTsKKyAgICBpZihkZWJ1ZykKKyAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIkV4aXQgIExheW91dFN3aXRjaEFjdGlvbiIgICk7CisgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmUga2V5IGFzc29jaWF0ZWQgdG8gdXNlci4KKyAgICAgKiBUaGlzIGtleSBkZW5vdGUgYSBkZWZpbml0aW9uIGluIGNhdGFsb2cuCisgICAgICogUmV0dXJuIHVzZXIgc2VsZWN0ZWQga2V5LCBvciAiZGVmYXVsdCIgaWYgbm9uZSBpcyBzZXQuCisgICAgICovCisgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFVzZXJTZXR0aW5nKCBDb21wb25lbnRDb250ZXh0IGNvbnRleHQsIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0ICkKKyAgeworICBIdHRwU2Vzc2lvbiBzZXNzaW9uID0gcmVxdWVzdC5nZXRTZXNzaW9uKCBmYWxzZSApOworICBpZiggc2Vzc2lvbiA9PSBudWxsICkKKyAgICByZXR1cm4gbnVsbDsKKworICAgIC8vIFJldHJpZXZlIGF0dHJpYnV0ZSBuYW1lIHVzZWQgdG8gc3RvcmUgc2V0dGluZ3MuCisgIFN0cmluZyB1c2VyU2V0dGluZ3NOYW1lID0gKFN0cmluZyljb250ZXh0LmdldEF0dHJpYnV0ZSggVVNFUl9TRVRUSU5HU19OQU1FX0FUVFJJQlVURSApOworICBpZiggdXNlclNldHRpbmdzTmFtZSA9PSBudWxsICkKKyAgICB1c2VyU2V0dGluZ3NOYW1lID0gREVGQVVMVF9VU0VSX1NFVFRJTkdTX05BTUU7CisKKyAgcmV0dXJuIChTdHJpbmcpc2Vzc2lvbi5nZXRBdHRyaWJ1dGUodXNlclNldHRpbmdzTmFtZSk7CisgIH0KKworICAgIC8qKgorICAgICAqIFNldCB1c2VyIHNldHRpbmcgdmFsdWUuCisgICAgICogVGhpcyBrZXkgZGVub3RlIGEgZGVmaW5pdGlvbiBpbiBjYXRhbG9nLgorICAgICAqIFJldHVybiB1c2VyIHNlbGVjdGVkIGtleSwgb3IgImRlZmF1bHQiIGlmIG5vbmUgaXMgc2V0LgorICAgICAqLworICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0VXNlclNldHRpbmcoIENvbXBvbmVudENvbnRleHQgY29udGV4dCwgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBzZXR0aW5nICkKKyAgeworICBIdHRwU2Vzc2lvbiBzZXNzaW9uID0gcmVxdWVzdC5nZXRTZXNzaW9uKCk7CisKKyAgICAvLyBSZXRyaWV2ZSBhdHRyaWJ1dGUgbmFtZSB1c2VkIHRvIHN0b3JlIHNldHRpbmdzLgorICBTdHJpbmcgdXNlclNldHRpbmdzTmFtZSA9IChTdHJpbmcpY29udGV4dC5nZXRBdHRyaWJ1dGUoIFVTRVJfU0VUVElOR1NfTkFNRV9BVFRSSUJVVEUgKTsKKyAgaWYoIHVzZXJTZXR0aW5nc05hbWUgPT0gbnVsbCApCisgICAgdXNlclNldHRpbmdzTmFtZSA9IERFRkFVTFRfVVNFUl9TRVRUSU5HU19OQU1FOworCisgIHNlc3Npb24uc2V0QXR0cmlidXRlKHVzZXJTZXR0aW5nc05hbWUsIHNldHRpbmcpOworICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgY3VycmVudGx5IHNlbGVjdGVkIHNraW4gZGVmaW5pdGlvbi4KKyAgICAgKi8KKyAgcHVibGljIHN0YXRpYyBDb21wb25lbnREZWZpbml0aW9uIGdldEN1cnJlbnREZWZpbml0aW9uKCBDb21wb25lbnRDb250ZXh0IGNvbnRleHQsIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCApCisgICAgdGhyb3dzIFNlcnZsZXRFeGNlcHRpb24KKyAgeworICAgIC8vIEdldCBzZWxlY3RlZCBrZXkKKyAgU3RyaW5nIHNlbGVjdGVkID0gZ2V0VXNlclNldHRpbmcoY29udGV4dCwgcmVxdWVzdCk7CisKKyAgRGVmaW5pdGlvbkNhdGFsb2cgY2F0YWxvZyA9IGdldENhdGFsb2coIGNvbnRleHQsIHJlcXVlc3QsIHNlcnZsZXRDb250ZXh0KTsKKyAgQ29tcG9uZW50RGVmaW5pdGlvbiBkZWZpbml0aW9uID0gIChDb21wb25lbnREZWZpbml0aW9uKWNhdGFsb2cuZ2V0KCBzZWxlY3RlZCApOworICBpZiggZGVmaW5pdGlvbiA9PSBudWxsICkKKyAgICBkZWZpbml0aW9uID0gKENvbXBvbmVudERlZmluaXRpb24pY2F0YWxvZy5nZXREZWZhdWx0KCk7CisKKyAgcmV0dXJuIGRlZmluaXRpb247CisgIH0KKworICAgIC8qKgorICAgICAqIEdldCBjYXRhbG9nIG9mIGF2YWlsYWJsZSBza2lucy4KKyAgICAgKi8KKyAgcHVibGljIHN0YXRpYyBEZWZpbml0aW9uQ2F0YWxvZyBnZXRDYXRhbG9nKCBDb21wb25lbnRDb250ZXh0IGNvbnRleHQsIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCApCisgICAgdGhyb3dzIFNlcnZsZXRFeGNlcHRpb24KKyAgeworICAgIC8vIFJldHJpZXZlIG5hbWUgdXNlZCB0byBzdG9yZSBjYXRhbG9nIGluIGFwcGxpY2F0aW9uIGNvbnRleHQuCisgICAgLy8gSWYgbm90IGZvdW5kLCB1c2UgZGVmYXVsdCBuYW1lCisgIFN0cmluZyBjYXRhbG9nTmFtZSA9IChTdHJpbmcpY29udGV4dC5nZXRBdHRyaWJ1dGUoIENBVEFMT0dfTkFNRV9BVFRSSUJVVEUgKTsKKyAgaWYoY2F0YWxvZ05hbWUgPT0gbnVsbCkKKyAgICBjYXRhbG9nTmFtZSA9IERFRkFVTFRfQ0FUQUxPR19OQU1FOworCisgIGlmKGRlYnVnKQorICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIkNhdGFsb2cgbmFtZT0iICsgY2F0YWxvZ05hbWUgKTsKKyAgdHJ5CisgICAgeworICAgIERlZmluaXRpb25DYXRhbG9nIGNhdGFsb2cgPSAoRGVmaW5pdGlvbkNhdGFsb2cpc2VydmxldENvbnRleHQuZ2V0QXR0cmlidXRlKCBjYXRhbG9nTmFtZSApOworICAgIGlmKGNhdGFsb2cgPT0gbnVsbCkKKyAgICAgIHsgLy8gY3JlYXRlIGNhdGFsb2cKKyAgICAgIGlmKGRlYnVnKQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJDcmVhdGUgY2F0YWxvZyIgKTsKKyAgICAgIFN0cmluZyBjYXRhbG9nU2V0dGluZ3MgPSAoU3RyaW5nKWNvbnRleHQuZ2V0QXR0cmlidXRlKCBDQVRBTE9HX1NFVFRJTkdfQVRUUklCVVRFICk7CisgICAgICBpZihjYXRhbG9nU2V0dGluZ3MgPT0gbnVsbCkKKyAgICAgICAgdGhyb3cgbmV3IFNlcnZsZXRFeGNlcHRpb24oICJFcnJvciAtIEN1c3RvbVNraW5BY3Rpb24gOiBhdHRyaWJ1dGUgJyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIENBVEFMT0dfU0VUVElOR19BVFRSSUJVVEUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArICInIG5vdCBmb3VuZCBpbiBUaWxlJ3MgYXR0cmlidXRlcy4gTmVlZCBpdCB0byBpbml0aWFsaXplIGNhdGFsb2ciICApOworICAgICAgY2F0YWxvZyA9IG5ldyBEZWZpbml0aW9uQ2F0YWxvZyggY2F0YWxvZ1NldHRpbmdzLCByZXF1ZXN0LCBzZXJ2bGV0Q29udGV4dCApOworICAgICAgaWYoZGVidWcpCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIkNhdGFsb2cgY3JlYXRlZCIgKTsKKyAgICAgIHNlcnZsZXRDb250ZXh0LnNldEF0dHJpYnV0ZSggY2F0YWxvZ05hbWUsIGNhdGFsb2cgKTsKKyAgICAgIH0gLy8gZW5kIGlmCisgICAgcmV0dXJuIGNhdGFsb2c7CisgICAgfQorICAgY2F0Y2goRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIGV4ICkKKyAgICB7CisgICAgaWYoZGVidWcpCisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIkV4Y2VwdGlvbiA6ICIgKyBleC5nZXRNZXNzYWdlKCkgKTsKKyAgICB0aHJvdyBuZXcgU2VydmxldEV4Y2VwdGlvbiggZXguZ2V0TWVzc2FnZSgpICk7CisgICAgfQorICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy9za2luL1NpbXBsZVN3aXRjaExheW91dEFjdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvc2tpbi9TaW1wbGVTd2l0Y2hMYXlvdXRBY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjRlYTk5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvc2tpbi9TaW1wbGVTd2l0Y2hMYXlvdXRBY3Rpb24uamF2YQpAQCAtMCwwICsxLDE4NiBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDE5OTktMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLnNraW47CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlJlcXVlc3REaXNwYXRjaGVyOworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXNzaW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuVGlsZXNBY3Rpb247CisKKyAgLyoqCisgICAqIFNpbXBsZSBTd2l0Y2ggTGF5b3V0CisgICAqLworcHVibGljIGNsYXNzIFNpbXBsZVN3aXRjaExheW91dEFjdGlvbiBleHRlbmRzIFRpbGVzQWN0aW9uCit7CisgICAgLyoqIGRlYnVnIGZsYWcgKi8KKyAgcHVibGljIHN0YXRpYyBib29sZWFuIGRlYnVnID0gdHJ1ZTsKKyAgICAvKiogVGlsZSdzIGF0dHJpYnV0ZSBjb250YWluaW5nIGxheW91dCBrZXkgKi8KKyAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTEFZT1VUX0FUVFJJQlVURSA9ICJsYXlvdXQuYXR0cmlidXRlIjsKKyAgICAvKiogVGlsZSBhdHRyaWJ1dGUgY29udGFpbmluZyBuYW1lIHVzZWQgdG8gc3RvcmUgdXNlciBzZXR0aW5ncyBpbiBzZXNzaW9uIGNvbnRleHQgKi8KKyAgcHVibGljIHN0YXRpYyBTdHJpbmcgVVNFUl9TRVRUSU5HU19OQU1FX0FUVFJJQlVURSA9ICJ1c2VyU2V0dGluZ3NOYW1lIjsKKyAgICAvKiogRGVmYXVsdCBuYW1lIHVzZWQgdG8gc3RvcmUgc2V0dGluZ3MgaW4gc2Vzc2lvbiBjb250ZXh0ICovCisgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIERFRkFVTFRfVVNFUl9TRVRUSU5HU19OQU1FID0gImV4YW1wbGVzLnRpbGVzLnNraW4uU0VMRUNURURfREVGSU5JVElPTiI7CisKKyAgICAvKiogTmFtZSBvZiBjYXRhbG9nIGluIGFwcGxpY2F0aW9uIGNvbnRleHQgKi8KKyAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0FUQUxPR19OQU1FID0gImV4YW1wbGVzLnRpbGVzLnNraW4uQ0FUQUxPR19OQU1FIjsKKworICAgIC8qKiBEZWZhdWx0IG5hbWUgdXNlZCB0byBzdG9yZSBtZW51IGNhdGFsb2cgaW4gYXBwbGljYXRpb24gc2NvcGUgKi8KKyAgcHVibGljIHN0YXRpYyBTdHJpbmcgREVGQVVMVF9DQVRBTE9HX05BTUUgPSAidGlsZXMuZXhhbXBsZXMuc2tpbi5sYXlvdXRDYXRhbG9nIjsKKyAgICAvKiogVGlsZSBhdHRyaWJ1dGUgY29udGFpbmluZyBuYW1lIHVzZWQgdG8gc3RvcmUgbWVudSBjYXRhbG9nIGluIGFwcGxpY2F0aW9uIHNjb3BlICovCisgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIENBVEFMT0dfTkFNRV9BVFRSSUJVVEUgPSAiY2F0YWxvZ05hbWUiOworICAgIC8qKiBUaWxlIGF0dHJpYnV0ZSBjb250YWluaW5nIG5hbWUgb2YgdGhlIHNldHRpbmdzIGRlZmluaXRpb24gdXNlZCB0byBpbml0aWFsaXplIGNhdGFsb2cgKi8KKyAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ0FUQUxPR19TRVRUSU5HX0FUVFJJQlVURSA9ICJjYXRhbG9nU2V0dGluZ3MiOworCisgICAgLyoqCisgICAgICogUHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgICAgICogcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorICAgICAqIFJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlIGFuZCBob3cKKyAgICAgKiBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSByZXNwb25zZSBoYXMKKyAgICAgKiBhbHJlYWR5IGJlZW4gY29tcGxldGVkLgorICAgICAqIFRoaXMgbWV0aG9kIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzLgorICAgICAqCisgICAgICogQHBhcmFtIGNvbnRleHQgVGhlIGN1cnJlbnQgVGlsZSBjb250ZXh0LCBjb250YWluaW5nIFRpbGUgYXR0cmlidXRlcy4KKyAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlLgorICAgICAqIEBwYXJhbSBmb3JtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KS4KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nLgorICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcuCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiBpZiB0aGUgYXBwbGljYXRpb24gYnVzaW5lc3MgbG9naWMgdGhyb3dzCisgICAgICogIGFuIGV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkIGV4ZWN1dGUoCisgICAgICAgIENvbXBvbmVudENvbnRleHQgY29udGV4dCwKKyAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKQorICAgICAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgIGlmKGRlYnVnKQorICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiRW50ZXIgU2ltcGxlU3dpdGNoTGF5b3V0QWN0aW9uIiAgKTsKKworICAgIFN0cmluZyBsYXlvdXREaXIgPSAiL2xheW91dHMvIjsKKyAgICBTdHJpbmcgdXNlclNlbGVjdGlvbiA9IGdldFVzZXJTZXR0aW5nKCBjb250ZXh0LCByZXF1ZXN0ICk7CisgICAgLy9TdHJpbmcgbGF5b3V0ID0gImNsYXNzaWNMYXlvdXQuanNwIjsKKyAgICBTdHJpbmcgbGF5b3V0ID0gKFN0cmluZyljb250ZXh0LmdldEF0dHJpYnV0ZSggTEFZT1VUX0FUVFJJQlVURSApOworICAgIGlmKGxheW91dD09bnVsbCkKKyAgICAgIHRocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKCAiQXR0cmlidXRlICciICsgTEFZT1VUX0FUVFJJQlVURSArICInIGlzIHJlcXVpcmVkLiIgKTsKKworICAgIFN0cmluZyBsYXlvdXRQYXRoID0gbGF5b3V0RGlyK3VzZXJTZWxlY3Rpb24rICIvIiArIGxheW91dDsKKworICAgIFJlcXVlc3REaXNwYXRjaGVyIHJkID0gZ2V0U2VydmxldCgpLmdldFNlcnZsZXRDb250ZXh0KCkuZ2V0UmVxdWVzdERpc3BhdGNoZXIoIGxheW91dFBhdGggKTsKKyAgICBpZihyZD09bnVsbCkKKyAgICAgIHsKKyAgICAgIGxheW91dFBhdGggPSBsYXlvdXREaXIgKyBsYXlvdXQ7CisgICAgICByZCA9IGdldFNlcnZsZXQoKS5nZXRTZXJ2bGV0Q29udGV4dCgpLmdldFJlcXVlc3REaXNwYXRjaGVyKCBsYXlvdXRQYXRoICk7CisgICAgICBpZihyZD09bnVsbCkKKyAgICAgICAgdGhyb3cgbmV3IFNlcnZsZXRFeGNlcHRpb24oICJTd2l0Y2hMYXlvdXQgZXJyb3IgOiBDYW4ndCBmaW5kIGxheW91dCAnIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgbGF5b3V0UGF0aCArICInLiIgKTsKKyAgICAgIH0KKyAgICByZC5pbmNsdWRlKHJlcXVlc3QsIHJlc3BvbnNlKTsKKyAgICBpZihkZWJ1ZykKKyAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIkV4aXQgIFNpbXBsZVN3aXRjaExheW91dEFjdGlvbiIgICk7CisgICAgcmV0dXJuIG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0cmlldmUga2V5IGFzc29jaWF0ZWQgdG8gdXNlci4KKyAgICAgKiBUaGlzIGtleSBkZW5vdGUgYSBkZWZpbml0aW9uIGluIGNhdGFsb2cuCisgICAgICogUmV0dXJuIHVzZXIgc2VsZWN0ZWQga2V5LCBvciAiZGVmYXVsdCIgaWYgbm9uZSBpcyBzZXQuCisgICAgICovCisgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldFVzZXJTZXR0aW5nKCBDb21wb25lbnRDb250ZXh0IGNvbnRleHQsIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0ICkKKyAgeworICBIdHRwU2Vzc2lvbiBzZXNzaW9uID0gcmVxdWVzdC5nZXRTZXNzaW9uKCBmYWxzZSApOworICBpZiggc2Vzc2lvbiA9PSBudWxsICkKKyAgICByZXR1cm4gbnVsbDsKKworICAgIC8vIFJldHJpZXZlIGF0dHJpYnV0ZSBuYW1lIHVzZWQgdG8gc3RvcmUgc2V0dGluZ3MuCisgIFN0cmluZyB1c2VyU2V0dGluZ3NOYW1lID0gKFN0cmluZyljb250ZXh0LmdldEF0dHJpYnV0ZSggVVNFUl9TRVRUSU5HU19OQU1FX0FUVFJJQlVURSApOworICBpZiggdXNlclNldHRpbmdzTmFtZSA9PSBudWxsICkKKyAgICB1c2VyU2V0dGluZ3NOYW1lID0gREVGQVVMVF9VU0VSX1NFVFRJTkdTX05BTUU7CisKKyAgcmV0dXJuIChTdHJpbmcpc2Vzc2lvbi5nZXRBdHRyaWJ1dGUodXNlclNldHRpbmdzTmFtZSk7CisgIH0KKworICAgIC8qKgorICAgICAqIFNldCB1c2VyIHNldHRpbmcgdmFsdWUuCisgICAgICogVGhpcyBrZXkgZGVub3RlIGEgZGVmaW5pdGlvbiBpbiBjYXRhbG9nLgorICAgICAqIFJldHVybiB1c2VyIHNlbGVjdGVkIGtleSwgb3IgImRlZmF1bHQiIGlmIG5vbmUgaXMgc2V0LgorICAgICAqLworICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0VXNlclNldHRpbmcoIENvbXBvbmVudENvbnRleHQgY29udGV4dCwgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBzZXR0aW5nICkKKyAgeworICBIdHRwU2Vzc2lvbiBzZXNzaW9uID0gcmVxdWVzdC5nZXRTZXNzaW9uKCk7CisKKyAgICAvLyBSZXRyaWV2ZSBhdHRyaWJ1dGUgbmFtZSB1c2VkIHRvIHN0b3JlIHNldHRpbmdzLgorICBTdHJpbmcgdXNlclNldHRpbmdzTmFtZSA9IChTdHJpbmcpY29udGV4dC5nZXRBdHRyaWJ1dGUoIFVTRVJfU0VUVElOR1NfTkFNRV9BVFRSSUJVVEUgKTsKKyAgaWYoIHVzZXJTZXR0aW5nc05hbWUgPT0gbnVsbCApCisgICAgdXNlclNldHRpbmdzTmFtZSA9IERFRkFVTFRfVVNFUl9TRVRUSU5HU19OQU1FOworCisgIHNlc3Npb24uc2V0QXR0cmlidXRlKHVzZXJTZXR0aW5nc05hbWUsIHNldHRpbmcpOworICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgY2F0YWxvZyBvZiBhdmFpbGFibGUgc2tpbnMuCisgICAgICovCisgIHB1YmxpYyBzdGF0aWMgRGVmaW5pdGlvbkNhdGFsb2cgZ2V0Q2F0YWxvZyggQ29tcG9uZW50Q29udGV4dCBjb250ZXh0LCBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwgU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQgKQorICAgIHRocm93cyBTZXJ2bGV0RXhjZXB0aW9uCisgIHsKKyAgICAvLyBSZXRyaWV2ZSBuYW1lIHVzZWQgdG8gc3RvcmUgY2F0YWxvZyBpbiBhcHBsaWNhdGlvbiBjb250ZXh0LgorICAgIC8vIElmIG5vdCBmb3VuZCwgdXNlIGRlZmF1bHQgbmFtZQorICBTdHJpbmcgY2F0YWxvZ05hbWUgPSAoU3RyaW5nKWNvbnRleHQuZ2V0QXR0cmlidXRlKCBDQVRBTE9HX05BTUVfQVRUUklCVVRFICk7CisgIGlmKGNhdGFsb2dOYW1lID09IG51bGwpCisgICAgY2F0YWxvZ05hbWUgPSBERUZBVUxUX0NBVEFMT0dfTkFNRTsKKworICBpZihkZWJ1ZykKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJDYXRhbG9nIG5hbWU9IiArIGNhdGFsb2dOYW1lICk7CisgIHRyeQorICAgIHsKKyAgICBEZWZpbml0aW9uQ2F0YWxvZyBjYXRhbG9nID0gKERlZmluaXRpb25DYXRhbG9nKXNlcnZsZXRDb250ZXh0LmdldEF0dHJpYnV0ZSggY2F0YWxvZ05hbWUgKTsKKyAgICBpZihjYXRhbG9nID09IG51bGwpCisgICAgICB7IC8vIGNyZWF0ZSBjYXRhbG9nCisgICAgICBpZihkZWJ1ZykKKyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiQ3JlYXRlIGNhdGFsb2ciICk7CisgICAgICBTdHJpbmcgY2F0YWxvZ1NldHRpbmdzID0gKFN0cmluZyljb250ZXh0LmdldEF0dHJpYnV0ZSggQ0FUQUxPR19TRVRUSU5HX0FUVFJJQlVURSApOworICAgICAgaWYoY2F0YWxvZ1NldHRpbmdzID09IG51bGwpCisgICAgICAgIHRocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKCAiRXJyb3IgLSBDdXN0b21Ta2luQWN0aW9uIDogYXR0cmlidXRlICciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBDQVRBTE9HX1NFVFRJTkdfQVRUUklCVVRFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyBub3QgZm91bmQgaW4gVGlsZSdzIGF0dHJpYnV0ZXMuIE5lZWQgaXQgdG8gaW5pdGlhbGl6ZSBjYXRhbG9nIiAgKTsKKyAgICAgIGNhdGFsb2cgPSBuZXcgRGVmaW5pdGlvbkNhdGFsb2coIGNhdGFsb2dTZXR0aW5ncywgcmVxdWVzdCwgc2VydmxldENvbnRleHQgKTsKKyAgICAgIGlmKGRlYnVnKQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJDYXRhbG9nIGNyZWF0ZWQiICk7CisgICAgICBzZXJ2bGV0Q29udGV4dC5zZXRBdHRyaWJ1dGUoIGNhdGFsb2dOYW1lLCBjYXRhbG9nICk7CisgICAgICB9IC8vIGVuZCBpZgorICAgIHJldHVybiBjYXRhbG9nOworICAgIH0KKyAgIGNhdGNoKERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBleCApCisgICAgeworICAgIGlmKGRlYnVnKQorICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJFeGNlcHRpb24gOiAiICsgZXguZ2V0TWVzc2FnZSgpICk7CisgICAgdGhyb3cgbmV3IFNlcnZsZXRFeGNlcHRpb24oIGV4LmdldE1lc3NhZ2UoKSApOworICAgIH0KKyAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvdGVtcGxhdGUvRHluVGVtcGxhdGVBY3Rpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3RlbXBsYXRlL0R5blRlbXBsYXRlQWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U2MmJkNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3RlbXBsYXRlL0R5blRlbXBsYXRlQWN0aW9uLmphdmEKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDE5OTktMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLnRlbXBsYXRlOworCitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb247CisKKworcHVibGljIGZpbmFsIGNsYXNzIER5blRlbXBsYXRlQWN0aW9uIGV4dGVuZHMgQWN0aW9uIHsKKworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIFByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorICAgICAqIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKyAgICAgKiBSZXR1cm4gYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2UgZGVzY3JpYmluZyB3aGVyZSBhbmQgaG93CisgICAgICogY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgcmVzcG9uc2UgaGFzCisgICAgICogYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC4KKyAgICAgKgorICAgICAgKiBAcGFyYW0gbWFwcGluZyBUaGUgQWN0aW9uTWFwcGluZyB1c2VkIHRvIHNlbGVjdCB0aGlzIGluc3RhbmNlCisgICAgICogQHBhcmFtIGFjdGlvbkZvcm0gVGhlIG9wdGlvbmFsIEFjdGlvbkZvcm0gYmVhbiBmb3IgdGhpcyByZXF1ZXN0IChpZiBhbnkpCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIEhUVFAgcmVxdWVzdCB3ZSBhcmUgcHJvY2Vzc2luZworICAgICAqIEBwYXJhbSByZXNwb25zZSBUaGUgSFRUUCByZXNwb25zZSB3ZSBhcmUgY3JlYXRpbmcKKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gRXhjZXB0aW9uIGlmIHRoZSBhcHBsaWNhdGlvbiBidXNpbmVzcyBsb2dpYyB0aHJvd3MKKyAgICAgKiAgYW4gZXhjZXB0aW9uCisgICAgICovCisgICAgcHVibGljIEFjdGlvbkZvcndhcmQgZXhlY3V0ZSgKKwkJCQkgQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorCQkJCSBBY3Rpb25Gb3JtIGZvcm0sCisJCQkJIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorCQkJCSBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKQorCXRocm93cyBFeGNlcHRpb24geworCisgICAgU3lzdGVtLm91dC5wcmludGxuKCAiU3RhcnQgZHluYW1pYyBkZWZpbml0aW9uIiApOworICAgICAgLy8gQ3JlYXRlIHRlbXBsYXRlIGRlZmluaXRpb24KKyAgICBDb21wb25lbnREZWZpbml0aW9uIGRlZmluaXRpb24gPSBuZXcgQ29tcG9uZW50RGVmaW5pdGlvbigpOworICAgIFN0cmluZyBwYXRoID0gIi90dXRvcmlhbCI7CisgICAgICAvLyBzZXQgZGVmaW5pdGlvbiAnY29udGVudHMnCisgICAgLy9kZWZpbml0aW9uLnNldFRlbXBsYXRlKCAiL3R1dG9yaWFsL2Jhc2ljL215RnJhbWVzZXRMYXlvdXQuanNwIiApOworICAgIGRlZmluaXRpb24ucHV0KCAidGl0bGUiLCAiTXkgZmlyc3QgZHluYW1pYyBmcmFtZXNldCBwYWdlIiwgdHJ1ZSApOworICAgICAgLy8gdXNpbmcgdHlwZT0ic3RyaW5nIiBpcyB0aGUgc2FtZSBhcyBkaXJlY3Q9dHJ1ZQorICAgIGRlZmluaXRpb24ucHV0KCAiaGVhZGVyIiwgcGF0aCArICIvY29tbW9uL2hlYWRlci5qc3AiLCAic3RyaW5nIiwgbnVsbCApOworICAgIGRlZmluaXRpb24ucHV0KCAiZm9vdGVyIiwgcGF0aCArICIvY29tbW9uL2Zvb3Rlci5qc3AiLCB0cnVlICk7CisgICAgZGVmaW5pdGlvbi5wdXQoICJtZW51IiwgcGF0aCArICIvYmFzaWMvbWVudS5qc3AiLCB0cnVlICk7CisgICAgZGVmaW5pdGlvbi5wdXQoICJib2R5IiwgcGF0aCArICIvYmFzaWMvaGVsbG9Cb2R5LmpzcCIsIHRydWUgKTsKKworICAgIFN5c3RlbS5vdXQucHJpbnRsbiggImRlZmluaXRpb249IiArIGRlZmluaXRpb24gKTsKKyAgICAgIC8vIFNhdmUgb3VyIGRlZmluaXRpb24gYXMgYSBiZWFuIDoKKyAgICByZXF1ZXN0LnNldEF0dHJpYnV0ZSggInRlbXBsYXRlRGVmaW5pdGlvbiIsIGRlZmluaXRpb24gKTsKKworCSAgcmV0dXJuIChtYXBwaW5nLmZpbmRGb3J3YXJkKCJzdWNjZXNzIikpOworICAgIH0KKworIH0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3Rlc3QvTm9Gb3J3YXJkLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy90ZXN0L05vRm9yd2FyZC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2ZTQ3MGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy90ZXN0L05vRm9yd2FyZC5qYXZhCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy50ZXN0OworCitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcm07CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbkZvcndhcmQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbk1hcHBpbmc7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dDsKKworCisvKioKKyAqIEltcGxlbWVudGF0aW9uIG9mIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgY3JlYXRlIGEgVGlsZUNvbnRleHQgaW4gb3JkZXIKKyAqIHRvIGZvcmNlIHRoZSBUaWxlc1JlcXVlc3RQcm9jZXNzb3IgdG8gZG8gYW4gaW5jbHVkZSBpbnN0ZWFkIG9mIGEgZm9yd2FyZC4KKyAqIFRoZSBzaWRlIGVmZmVjdCBpcyB0aGF0IHJlcXVlc3QuZ2V0UmVxdWVzdFVSSSB3aWxsIHJldHVybiB0aGUgVVJMIG9mIHRoZQorICogY2FsbGluZyBzdHJ1dHMgYWN0aW9uIGluc3RlYWQgb2YgdGhlIFVSTCBvZiB0aGUgdGlsZXMgbGF5b3V0LgorICogU2VlIHRoZSBqc3AgZG9jdW1lbnRhdGlvbiB0byB1bmRlcnN0YW5kIHdoeS4KKyAqIFVzYWdlOgorICogdXNlIHRoaXMgYWN0aW9uIGluIGNvbmp1bmN0aW9uIHdpdGggYW4gYWN0aW9uIGRlY2xhcmF0aW9uIGluIHN0cnV0cyBjb25maWcuCisgKiBUaGUgYWN0aW9uIGRlY2xhcmF0aW9uIHNob3VsZCBoYXZlIG9uZSAic3VjY2VzcyIgZm9yd2FyZCB0byBhIFRpbGUuCisgKiA8cHJlPgorICogICA8YWN0aW9uICAgICBwYXRoPSIvc2hvd1JlcXVlc3RVUkkiCisgKiAgICAgICAJCSAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLnRlc3QuTm9Gb3J3YXJkIj4KKyAqICAgIDxmb3J3YXJkICBuYW1lPSJzdWNjZXNzIiAgICAgICAgcGF0aD0idGVzdC5hY3Rpb24ubm9mb3J3YXJkIi8+CisgKiAgPC9hY3Rpb24+CisgKiA8L3ByZT4KKyAqIEB2ZXJzaW9uICRSZXYkICREYXRlJAorICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBOb0ZvcndhcmQgZXh0ZW5kcyBBY3Rpb24geworCisKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQdWJsaWMgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gZm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSkKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gaWYgdGhlIGFwcGxpY2F0aW9uIGJ1c2luZXNzIGxvZ2ljIHRocm93cworICAgICAqICBhbiBleGNlcHRpb24KKyAgICAgKiBAc2luY2UgU3RydXRzIDEuMQorICAgICAqLworICAgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkIGV4ZWN1dGUoQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlKQorICAgICAgICB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgIC8vIFRyeSB0byByZXRyaWV2ZSB0aWxlIGNvbnRleHQKKyAgICBDb21wb25lbnRDb250ZXh0IGNvbnRleHQgPSBDb21wb25lbnRDb250ZXh0LmdldENvbnRleHQoIHJlcXVlc3QgKTsKKyAgICBpZiggY29udGV4dCA9PSBudWxsICkKKyAgICAgIHsgLy8gTm90IGZvdW5kLCBjcmVhdGUgYSBjb250ZXh0CisgICAgICAgIC8vIFRoaXMgY29udGV4dCB3aWxsIGJlIGRldGVjdGVkIGJ5IHRoZSBUaWxlc1JlcXVlc3RQcm9jZXNzb3Igd2hpY2ggd2lsbCBkbyBhbiBpbmNsdWRlCisgICAgICAgIC8vIGluc3RlYWQgb2YgYSBmb3J3YXJkLgorICAgICAgQ29tcG9uZW50Q29udGV4dCB0aWxlQ29udGV4dCA9IG5ldyBDb21wb25lbnRDb250ZXh0KCApOworICAgICAgQ29tcG9uZW50Q29udGV4dC5zZXRDb250ZXh0KCB0aWxlQ29udGV4dCwgcmVxdWVzdCk7CisgICAgICB9CisJICByZXR1cm4gKG1hcHBpbmcuZmluZEZvcndhcmQoInN1Y2Nlc3MiKSk7CisgICAgfQorCisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3Rlc3QvVGVzdEFjdGlvblRpbGVBY3Rpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3Rlc3QvVGVzdEFjdGlvblRpbGVBY3Rpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTc3MmJjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvdGVzdC9UZXN0QWN0aW9uVGlsZUFjdGlvbi5qYXZhCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMudGVzdDsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0OworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkRlZmluaXRpb25zVXRpbDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjsKKworCisvKioKKyAqIEltcGxlbWVudGF0aW9uIG9mIDxzdHJvbmc+QWN0aW9uPC9zdHJvbmc+IHRoYXQgcG9wdWxhdGVzIGFuIGluc3RhbmNlIG9mCisgKiA8Y29kZT5TdWJzY3JpcHRpb25Gb3JtPC9jb2RlPiBmcm9tIHRoZSBjdXJyZW50bHkgc3BlY2lmaWVkIHN1YnNjcmlwdGlvbi4KKyAqCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworCitwdWJsaWMgZmluYWwgY2xhc3MgVGVzdEFjdGlvblRpbGVBY3Rpb24gZXh0ZW5kcyBBY3Rpb24geworCisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHVibGljIE1ldGhvZHMKKworCisgICAgLyoqCisgICAgICogUHJvY2VzcyB0aGUgc3BlY2lmaWVkIEhUVFAgcmVxdWVzdCwgYW5kIGNyZWF0ZSB0aGUgY29ycmVzcG9uZGluZyBIVFRQCisgICAgICogcmVzcG9uc2UgKG9yIGZvcndhcmQgdG8gYW5vdGhlciB3ZWIgY29tcG9uZW50IHRoYXQgd2lsbCBjcmVhdGUgaXQpLgorICAgICAqIFJldHVybiBhbiA8Y29kZT5BY3Rpb25Gb3J3YXJkPC9jb2RlPiBpbnN0YW5jZSBkZXNjcmliaW5nIHdoZXJlIGFuZCBob3cKKyAgICAgKiBjb250cm9sIHNob3VsZCBiZSBmb3J3YXJkZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZSByZXNwb25zZSBoYXMKKyAgICAgKiBhbHJlYWR5IGJlZW4gY29tcGxldGVkLgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSBhY3Rpb25Gb3JtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KQorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgKiBAcGFyYW0gcmVzcG9uc2UgVGhlIEhUVFAgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uIEV4Y2VwdGlvbiBpZiB0aGUgYXBwbGljYXRpb24gYnVzaW5lc3MgbG9naWMgdGhyb3dzCisgICAgICogIGFuIGV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBBY3Rpb25Gb3J3YXJkIGV4ZWN1dGUoCisJCQkJIEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKwkJCQkgQWN0aW9uRm9ybSBmb3JtLAorCQkJCSBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKwkJCQkgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkKKwl0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgLy8gVHJ5IHRvIHJldHJpZXZlIHRpbGUgY29udGV4dAorICAgIENvbXBvbmVudENvbnRleHQgY29udGV4dCA9IENvbXBvbmVudENvbnRleHQuZ2V0Q29udGV4dCggcmVxdWVzdCApOworICAgIGlmKCBjb250ZXh0ID09IG51bGwgKQorICAgICAgeworICAgICAgcmVxdWVzdC5zZXRBdHRyaWJ1dGUoICJhY3Rpb25FcnJvciIsICJDYW4ndCBnZXQgY29tcG9uZW50IGNvbnRleHQuIik7CisgICAgICByZXR1cm4gKG1hcHBpbmcuZmluZEZvcndhcmQoImZhaWx1cmUiKSk7CisgICAgICB9CisgICAgICAvLyBHZXQgcmVxdWVzdGVkIHRlc3QgZnJvbSB0aWxlIHBhcmFtZXRlcgorICAgIFN0cmluZyBwYXJhbTsKKworICAgICAgLy8gU2V0IGEgZGVmaW5pdGlvbiBpbiB0aGlzIGFjdGlvbgorICAgIHBhcmFtID0gKFN0cmluZyljb250ZXh0LmdldEF0dHJpYnV0ZSggInNldC1kZWZpbml0aW9uLW5hbWUiICk7CisgICAgaWYoIHBhcmFtICE9IG51bGwgKQorICAgICAgeworICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAvLyBSZWFkIGRlZmluaXRpb24gZnJvbSBmYWN0b3J5LCBidXQgd2UgY2FuIGNyZWF0ZSBpdCBoZXJlLgorICAgICAgICBDb21wb25lbnREZWZpbml0aW9uIGRlZmluaXRpb24gPSBEZWZpbml0aW9uc1V0aWwuZ2V0RGVmaW5pdGlvbiggcGFyYW0sIHJlcXVlc3QsIGdldFNlcnZsZXQoKS5nZXRTZXJ2bGV0Q29udGV4dCgpICk7CisgICAgICAgIC8vZGVmaW5pdGlvbi5wdXRBdHRyaWJ1dGUoICJhdHRyaWJ1dGVOYW1lIiwgImFWYWx1ZSIgKTsKKyAgICAgICAgRGVmaW5pdGlvbnNVdGlsLnNldEFjdGlvbkRlZmluaXRpb24oIHJlcXVlc3QsIGRlZmluaXRpb24pOworICAgICAgICB9CisgICAgICAgY2F0Y2goIEZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbiBleCApCisgICAgICAgIHsKKyAgICAgICAgcmVxdWVzdC5zZXRBdHRyaWJ1dGUoICJhY3Rpb25FcnJvciIsICJDYW4ndCBnZXQgZGVmaW5pdGlvbiBmYWN0b3J5LiIpOworICAgICAgICByZXR1cm4gKG1hcHBpbmcuZmluZEZvcndhcmQoImZhaWx1cmUiKSk7CisgICAgICAgIH0KKyAgICAgICBjYXRjaCggTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbiBleCApCisgICAgICAgIHsKKyAgICAgICAgcmVxdWVzdC5zZXRBdHRyaWJ1dGUoICJhY3Rpb25FcnJvciIsICJDYW4ndCBnZXQgZGVmaW5pdGlvbiAnIiArIHBhcmFtICsiJy4iKTsKKyAgICAgICAgcmV0dXJuIChtYXBwaW5nLmZpbmRGb3J3YXJkKCJmYWlsdXJlIikpOworICAgICAgICB9CisgICAgICAgY2F0Y2goIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBleCApCisgICAgICAgIHsKKyAgICAgICAgcmVxdWVzdC5zZXRBdHRyaWJ1dGUoICJhY3Rpb25FcnJvciIsICJHZW5lcmFsIGVycm9yICciICsgZXguZ2V0TWVzc2FnZSgpICsiJy4iKTsKKyAgICAgICAgcmV0dXJuIChtYXBwaW5nLmZpbmRGb3J3YXJkKCJmYWlsdXJlIikpOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIC8vIE92ZXJsb2FkIGEgcGFyYW1ldGVyCisgICAgcGFyYW0gPSAoU3RyaW5nKWNvbnRleHQuZ2V0QXR0cmlidXRlKCAic2V0LWF0dHJpYnV0ZSIgKTsKKyAgICBpZiggcGFyYW0gIT0gbnVsbCApCisgICAgICB7CisgICAgICBjb250ZXh0LnB1dEF0dHJpYnV0ZSggcGFyYW0sIGNvbnRleHQuZ2V0QXR0cmlidXRlKCAic2V0LWF0dHJpYnV0ZS12YWx1ZSIgKSk7CisgICAgICB9IC8vIGVuZCBpZgorCisJICByZXR1cm4gKG1hcHBpbmcuZmluZEZvcndhcmQoInN1Y2Nlc3MiKSk7CisKKyAgICB9CisKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvamF2YS9vcmcvYXBhY2hlL3N0cnV0cy93ZWJhcHAvdGlsZXMvdGVzdC9UZXN0VGlsZUNvbnRyb2xsZXIuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3Rlc3QvVGVzdFRpbGVDb250cm9sbGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzUyZmM2YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3Rlc3QvVGVzdFRpbGVDb250cm9sbGVyLmphdmEKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqICRJZCQgCisgKgorICogQ29weXJpZ2h0IDE5OTktMjAwNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLnRlc3Q7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb247CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKKworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQ7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29udHJvbGxlclN1cHBvcnQ7CisKKworICAvKioKKyAgICogQ29udHJvbGxlciBleGFtcGxlLgorICAgKiBUaGlzIGNvbnRyb2xsZXIgbW9kaWZ5IHRpdGxlIGJ5IGFkZGluZyAib2siLgorICAgKi8KK3B1YmxpYyBjbGFzcyBUZXN0VGlsZUNvbnRyb2xsZXIgZXh0ZW5kcyBDb250cm9sbGVyU3VwcG9ydAoreworCisgIHB1YmxpYyBUZXN0VGlsZUNvbnRyb2xsZXIoKQorICAgIHsKKyAgICB9CisKKyAgIC8qKgorICAgICogTWV0aG9kIGFzc29jaWF0ZWQgdG8gYSB0aWxlIGFuZCBjYWxsZWQgd2hlbiBpbW1lZGlhdGVseSBiZWZvcmUgdGlsZSBpcyBpbmNsdWRlZC4KKyAgICAqIEBwYXJhbSB0aWxlQ29udGV4dCBDdXJyZW50IHRpbGUgY29udGV4dC4KKyAgICAqIEBwYXJhbSByZXF1ZXN0IEN1cnJlbnQgcmVxdWVzdAorICAgICogQHBhcmFtIHJlc3BvbnNlIEN1cnJlbnQgcmVzcG9uc2UKKyAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBDdXJyZW50IHNlcnZsZXQgY29udGV4dAorICAgICovCisgICBwdWJsaWMgdm9pZCBwZXJmb3JtKENvbXBvbmVudENvbnRleHQgdGlsZUNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgdGhyb3dzIFNlcnZsZXRFeGNlcHRpb24sIElPRXhjZXB0aW9uCisgICB7CisgICBTeXN0ZW0ub3V0LnByaW50bG4oICJDb250cm9sbGVyIGNhbGxlZCIgKTsKKworCisgICBTdHJpbmcgdGl0bGUgPSAoU3RyaW5nKXRpbGVDb250ZXh0LmdldEF0dHJpYnV0ZSgidGl0bGUiKTsKKyAgIHRpdGxlICs9ICItIGNvbnRyb2xsZXIgY2FsbGVkIjsKKyAgIHRpbGVDb250ZXh0LnB1dEF0dHJpYnV0ZSggInRpdGxlIiwgdGl0bGUpOworICAgfQorCisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL2phdmEvb3JnL2FwYWNoZS9zdHJ1dHMvd2ViYXBwL3RpbGVzL3R1dG9yaWFsL0ZvcndhcmRFeGFtcGxlQWN0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy90dXRvcmlhbC9Gb3J3YXJkRXhhbXBsZUFjdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxYjFiNDUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy9qYXZhL29yZy9hcGFjaGUvc3RydXRzL3dlYmFwcC90aWxlcy90dXRvcmlhbC9Gb3J3YXJkRXhhbXBsZUFjdGlvbi5qYXZhCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAxOTk5LTIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy50dXRvcmlhbDsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9uLkFjdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9ybTsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRm9yd2FyZDsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uTWFwcGluZzsKKworcHVibGljIGNsYXNzIEZvcndhcmRFeGFtcGxlQWN0aW9uIGV4dGVuZHMgQWN0aW9uIHsKKworICAgIC8qKgorICAgICAqIFByb2Nlc3MgdGhlIHNwZWNpZmllZCBIVFRQIHJlcXVlc3QsIGFuZCBjcmVhdGUgdGhlIGNvcnJlc3BvbmRpbmcgSFRUUAorICAgICAqIHJlc3BvbnNlIChvciBmb3J3YXJkIHRvIGFub3RoZXIgd2ViIGNvbXBvbmVudCB0aGF0IHdpbGwgY3JlYXRlIGl0KS4KKyAgICAgKiBSZXR1cm4gYW4gPGNvZGU+QWN0aW9uRm9yd2FyZDwvY29kZT4gaW5zdGFuY2UgZGVzY3JpYmluZyB3aGVyZSBhbmQgaG93CisgICAgICogY29udHJvbCBzaG91bGQgYmUgZm9yd2FyZGVkLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGUgcmVzcG9uc2UgaGFzCisgICAgICogYWxyZWFkeSBiZWVuIGNvbXBsZXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXBwaW5nIFRoZSBBY3Rpb25NYXBwaW5nIHVzZWQgdG8gc2VsZWN0IHRoaXMgaW5zdGFuY2UKKyAgICAgKiBAcGFyYW0gYWN0aW9uRm9ybSBUaGUgb3B0aW9uYWwgQWN0aW9uRm9ybSBiZWFuIGZvciB0aGlzIHJlcXVlc3QgKGlmIGFueSkKKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBUaGUgSFRUUCByZXF1ZXN0IHdlIGFyZSBwcm9jZXNzaW5nCisgICAgICogQHBhcmFtIHJlc3BvbnNlIFRoZSBIVFRQIHJlc3BvbnNlIHdlIGFyZSBjcmVhdGluZworICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBFeGNlcHRpb24gaWYgdGhlIGFwcGxpY2F0aW9uIGJ1c2luZXNzIGxvZ2ljIHRocm93cworICAgICAqICBhbiBleGNlcHRpb24KKyAgICAgKi8KKyAgICBwdWJsaWMgQWN0aW9uRm9yd2FyZCBleGVjdXRlKAorCQkJCSBBY3Rpb25NYXBwaW5nIG1hcHBpbmcsCisJCQkJIEFjdGlvbkZvcm0gZm9ybSwKKwkJCQkgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisJCQkJIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpCisJdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgU3RyaW5nIHN1Y2Nlc3MgPSByZXF1ZXN0LmdldFBhcmFtZXRlciggInN1Y2Nlc3MiICk7CisgICAgaWYoIHN1Y2Nlc3MgIT0gbnVsbCApCisJICAgIHJldHVybiAobWFwcGluZy5maW5kRm9yd2FyZCgic3VjY2VzcyIpKTsKKworICAgIHJldHVybiAobWFwcGluZy5maW5kRm9yd2FyZCgiZmFpbHVyZSIpKTsKKyAgICB9CisKKyB9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllNTBjOGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtY29uZmlnLnhtbApAQCAtMCwwICsxLDU1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorCis8IURPQ1RZUEUgc3RydXRzLWNvbmZpZyBQVUJMSUMKKyAgICAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAxLjIvL0VOIgorICAgICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtY29uZmlnXzFfMi5kdGQiPgorPCEtLQorICAgICBUaGlzIGlzIHRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlIGZvciB0aGUKKyAgICAgVGlsZXMtZG9jdW1lbnRhdGlvbiBhcHBsaWNhdGlvbgorLS0+CisKKworPHN0cnV0cy1jb25maWc+CisKKyAgPCEtLSA9PT09PT09PT09IEFjdGlvbiBNYXBwaW5nIERlZmluaXRpb25zID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgIDxhY3Rpb24tbWFwcGluZ3M+CisKKyAgICA8IS0tIFRoZSBzdGFuZGFyZCBhZG1pbmlzdHJhdGl2ZSBhY3Rpb25zIGF2YWlsYWJsZSB3aXRoIFRpbGVzIC0tPgorICAgIDwhLS0gVGhlc2Ugd291bGQgYmUgZWl0aGVyIG9taXR0ZWQgb3IgcHJvdGVjdGVkIGJ5IHNlY3VyaXR5IGNvbnN0cmFpbnRzIC0tPgorICAgIDwhLS0gaW4gYSByZWFsIGFwcGxpY2F0aW9uIGRlcGxveW1lbnQgLS0+CisKKyAgICA8YWN0aW9uICAgIHBhdGg9Ii9hZG1pbi90aWxlcy9yZWxvYWQiCisgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLlJlbG9hZERlZmluaXRpb25zQWN0aW9uIi8+CisgICAgPGFjdGlvbiAgICBwYXRoPSIvYWRtaW4vdGlsZXMvdmlldyIKKyAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmFjdGlvbnMuVmlld0RlZmluaXRpb25zQWN0aW9uIi8+CisJCQkgICAKKyAgPC9hY3Rpb24tbWFwcGluZ3M+CisKKyAgCisgIDwhLS0gPT09PT09PT09PSBSZXF1ZXN0IFByb2Nlc3NvciBEZWNsYXJhdGlvbiA9PT09PT09PT09PT09PT09PT09IC0tPgorICA8IS0tIFRoZSBUaWxlcyBmcmFtZXdvcmsgdXNlIGEgc3BlY2lhbCByZXF1ZXN0IHByb2Nlc3Nvci4gWU9VIERPTidUIC0tPgorICA8IS0tIE5FRUQgVE8gREVDTEFSRSBJVCB5b3Vyc2VsZiAoVGhlIFRpbGVzUGx1Z2luIGRvIGl0IGZvciB5b3UpLCB1bmxlc3MgLS0+CisgIDwhLS0geW91IGhhdmUgY3JlYXRlZCB5b3VyIG93biByZXF1ZXN0IHByb2Nlc3Nvci4gSW4gdGhpcyBsYXRlciBjYXNlLCAtLT4KKyAgPCEtLSB5b3VyIHJlcXVlc3QgcHJvY2Vzc29yIHNob3VsZCBleHRlbmQgdGhlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzUmVxdWVzdFByb2Nlc3NvciAtLT4KKyAgPCEtLSBhbmQgYmUgZGVjbGFyZWQgaGVyZSAtLT4KKyAgPCEtLSAgPGNvbnRyb2xsZXIgcHJvY2Vzc29yQ2xhc3M9InlvdXIuUmVxdWVzdFByb2Nlc3NvciIgIC8+ICAtLT4KKworICA8IS0tID09PT09PT09PT0gQXNzb2NpYXRlZCBNZXNzYWdlcyBSZXNzb3VyY2Ugc2V0dGluZ3MgPT09PT09PT09PT09PT09PT09PSAtLT4KKyAgPCEtLSBVbmNvbW1lbnQgdGhlIGZvbGxvd2luZyBpZiB5b3VyIHdlYnNlcnZlciBjb21wbGFpbnMgYWJvdXQgYSBtaXNzaW5nIHJlc291cmNlcy4gLS0+CisgIDwhLS0gVGhpcyByZXNvdXJjZSBpcyBub3QgbmVlZGVkIGJ5IFRpbGVzIG9yIHRoaXMgZXhhbXBsZS4gSXQgaXMganVzdCBhIHRyaWNrIHRvIG1ha2UgLS0+CisgIDwhLS0gU3RydXRzIGhhcHB5IHdpdGggc29tZSB3ZWIgc2VydmVyLiAtLT4KKyAgPCEtLSA8bWVzc2FnZS1yZXNvdXJjZXMgcGFyYW1ldGVyPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMuZGV2MS0xLkFwcGxpY2F0aW9uUmVzb3VyY2VzIiBudWxsPSJmYWxzZSIgLz4gLS0+CisKKyAgCisgPCEtLSA9PT09PT09PT09IFRpbGVzUGx1Z2luIHNldHRpbmdzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgPCEtLSBZb3Ugc2hvdWxkIGRlY2xhcmUgdGhpcyBwbHVnaW4gaWYgeW91IHdhbnQgdG8gdXNlIFRpbGVzIHdpdGggYW4gWE1MIGRlZmluaXRpb24gZmlsZS4gLS0+CisgIDxwbHVnLWluIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNQbHVnaW4iID4KKworICAgIDwhLS0gUGF0aCB0byBYTUwgZGVmaW5pdGlvbiBmaWxlIC0tPgorICAgIDxzZXQtcHJvcGVydHkgcHJvcGVydHk9ImRlZmluaXRpb25zLWNvbmZpZyIgCisJICAgICAgICAgICAgICAgICB2YWx1ZT0iL1dFQi1JTkYvdGlsZXMtZGVmcy54bWwiIC8+CisgICAgPCEtLSBTZXQgTW9kdWxlLWF3YXJlbmVzcyB0byB0cnVlIC0tPgorICAgIDxzZXQtcHJvcGVydHkgcHJvcGVydHk9Im1vZHVsZUF3YXJlIiB2YWx1ZT0idHJ1ZSIgLz4KKyAgPC9wbHVnLWluPgorCis8L3N0cnV0cy1jb25maWc+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtZG9jLWNvbmZpZy54bWwgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtZG9jLWNvbmZpZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjlkNTZhZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1kb2MtY29uZmlnLnhtbApAQCAtMCwwICsxLDQ1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorCis8IURPQ1RZUEUgc3RydXRzLWNvbmZpZyBQVUJMSUMKKyAgICAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAxLjIvL0VOIgorICAgICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtY29uZmlnXzFfMi5kdGQiPgorPCEtLQorICAgICBUaGlzIGlzIHRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlIGZvciB0aGUgZXhhbXBsZSBhcHBsaWNhdGlvbiwKKyAgICAgdXNpbmcgdGhlIHByb3Bvc2VkIG5ldyBzeW50YXguCisKKyAgICAgTk9URTogIFlvdSB3b3VsZCBvbmx5IGZsZXNoIG91dCB0aGUgZGV0YWlscyBpbiB0aGUgImZvcm0tYmVhbiIKKyAgICAgZGVjbGFyYXRpb25zIGlmIHlvdSBoYWQgYSBnZW5lcmF0b3IgdG9vbCB0aGF0IHVzZWQgdGhlbSB0byBjcmVhdGUKKyAgICAgdGhlIGNvcnJlc3BvbmRpbmcgSmF2YSBjbGFzc2VzIGZvciB5b3UuICBPdGhlcndpc2UsIHlvdSB3b3VsZAorICAgICBuZWVkIG9ubHkgdGhlICJmb3JtLWJlYW4iIGVsZW1lbnQgaXRzZWxmLCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICJuYW1lIiBhbmQgInR5cGUiIGF0dHJpYnV0ZXMuCistLT4KKworCis8c3RydXRzLWNvbmZpZz4KKworICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorICA8IS0tIFRpbGVzIERvY3VtZW50YXRpb24gbW9kdWxlCQkJCQkJCQktLT4KKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKworICAKKwkJCSAgIAorICA8YWN0aW9uLW1hcHBpbmdzLz4KKworICAKKyAgPCEtLSA9PT09PT09PT09IFRpbGVzIHBsdWctaW4gc2V0dGluZyBzZXR0aW5ncyA9PT09PT09PT09PT09PT09PT09IC0tPgorICA8IS0tIEhlcmUgd2Ugc3BlY2lmaWVkIHRoZSB0aWxlcyBwbHVnLWluLgorICAgICAgIFRoaXMgcGx1Zy1pbiByZWdpc3RlciBhcHByb3ByaWF0ZSBSZXF1ZXN0IFByb2Nlc3NvciAtLT4KKyAgPCEtLSAgPGNvbnRyb2xsZXIgcHJvY2Vzc29yQ2xhc3M9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzUmVxdWVzdFByb2Nlc3NvciIgIC8+ICAtLT4KKworICA8IS0tID09PT09PT09PT0gQXNzb2NpYXRlZCBNZXNzYWdlcyBSZXNzb3VyY2Ugc2V0dGluZ3MgPT09PT09PT09PT09PT09PT09PSAtLT4KKyAgPCEtLSBOb3QgdXNlZCBieSB0aWxlcyBvciB0aGlzIHdlYnNpdGUsIGJ1dCBuZWVkZWQgZHVlIHRvIGEgYnVnIGluIGFjdHVhbCBTdHJ1dHMgdmVyc2lvbiAtLT4KKyAgPG1lc3NhZ2UtcmVzb3VyY2VzIHBhcmFtZXRlcj0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLmRldjEtMS5BcHBsaWNhdGlvblJlc291cmNlcyIgbnVsbD0iZmFsc2UiIC8+CisKKyAgCisgIDxwbHVnLWluIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNQbHVnaW4iID4KKyAgICA8c2V0LXByb3BlcnR5IHByb3BlcnR5PSJkZWZpbml0aW9ucy1jb25maWciIAorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9Ii9XRUItSU5GL3RpbGVzLWRlZnMueG1sLCAvV0VCLUlORi90aWxlcy1kb2MtZGVmcy54bWwiIC8+CisgICAgPHNldC1wcm9wZXJ0eSBwcm9wZXJ0eT0ibW9kdWxlQXdhcmUiIHZhbHVlPSJ0cnVlIiAvPgorICA8L3BsdWctaW4+CisKKzwvc3RydXRzLWNvbmZpZz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1leGFtcGxlcy1jb25maWcueG1sIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL1dFQi1JTkYvc3RydXRzLWV4YW1wbGVzLWNvbmZpZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg0M2I4MQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy1leGFtcGxlcy1jb25maWcueG1sCkBAIC0wLDAgKzEsMTM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorCis8IURPQ1RZUEUgc3RydXRzLWNvbmZpZyBQVUJMSUMKKyAgICAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBTdHJ1dHMgQ29uZmlndXJhdGlvbiAxLjIvL0VOIgorICAgICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy9zdHJ1dHMtY29uZmlnXzFfMi5kdGQiPgorPCEtLQorICAgICBUaGlzIGlzIHRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlIGZvciB0aGUKKyAgICAgVGlsZXMtZG9jdW1lbnRhdGlvbiAiZXhhbXBsZXMiIGFwcGxpY2F0aW9uCistLT4KKworCis8c3RydXRzLWNvbmZpZz4KKworICA8IS0tID09PT09PT09PT0gRm9ybSBCZWFuIERlZmluaXRpb25zID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKyAgPGZvcm0tYmVhbnM+CisKKyAgICA8IS0tIExvZ29uIGZvcm0gYmVhbiAtLT4KKyAgICA8Zm9ybS1iZWFuICAgICAgbmFtZT0ibXlQb3J0YWxTZXR0aW5nc0Zvcm0iCisgICAgICAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5wb3J0YWwuUG9ydGFsU2V0dGluZ3NGb3JtIi8+CisgICAgPCEtLSBNZW51IHNldHRpbmdzIGZvcm0gYmVhbiAtLT4KKyAgICA8Zm9ybS1iZWFuICAgICAgbmFtZT0ibXlNZW51U2V0dGluZ3NGb3JtIgorICAgICAgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMucG9ydGFsLk1lbnVTZXR0aW5nc0Zvcm0iLz4KKyAgICA8IS0tIFNraW4gc2V0dGluZ3MgZm9ybSBiZWFuIC0tPgorICAgIDxmb3JtLWJlYW4gICAgICBuYW1lPSJteVNraW5TZXR0aW5nc0Zvcm0iCisgICAgICAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5za2luLkxheW91dFNldHRpbmdzRm9ybSIvPgorCisgIDwvZm9ybS1iZWFucz4KKworCisgIDwhLS0gPT09PT09PT09PSBHbG9iYWwgRm9yd2FyZCBEZWZpbml0aW9ucyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorICA8Z2xvYmFsLWZvcndhcmRzPgorICAgIDwhLS0gRm9yd2FyZCB0byBlcnJvciBwYWdlIC0tPgorICAgIDxmb3J3YXJkICAgbmFtZT0iZmFpbHVyZSIgICAgICAgICAgICAgIHBhdGg9ImZvcndhcmQuZXhhbXBsZS5mYWlsdXJlLnBhZ2UiLz4KKyAgPC9nbG9iYWwtZm9yd2FyZHM+CisKKworICA8IS0tID09PT09PT09PT0gQWN0aW9uIE1hcHBpbmcgRGVmaW5pdGlvbnMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKyAgPGFjdGlvbi1tYXBwaW5ncz4KKyAgCisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgIDwhLS0gRXhhbXBsZXMgUG9ydGFsIDEuMSBhY3Rpb25zICAtLT4KKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKworICAgIDwhLS0gRHluYW1pYyBQb3J0YWwgdXNlciBsaXN0cyByZXRyaWV2aW5nIGFjdGlvbiAtLT4KKyAgPGFjdGlvbiAgICAgcGF0aD0iL215UG9ydGFsIgorICAgICAgIAkJICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMucG9ydGFsLlVzZXJQb3J0YWxBY3Rpb24iPgorICA8L2FjdGlvbj4KKworICAgIDwhLS0gVGlsZXMgQWN0aW9uIGFzc29jaWF0ZWQgdG8gcG9ydGFsIHNldHRpbmdzIC0tPgorICA8YWN0aW9uICAgICBwYXRoPSIvY29udHJvbGxlci9teVBvcnRhbFNldHRpbmdzIgorICAgICAgIAkJICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMucG9ydGFsLlVzZXJQb3J0YWxTZXR0aW5nc0FjdGlvbiIKKwkJCSAgbmFtZT0ibXlQb3J0YWxTZXR0aW5nc0Zvcm0iID4KKyAgPC9hY3Rpb24+CisKKyAgICA8IS0tIFBvcnRhbCBzZXR0aW5ncyBwYWdlIGVudHJhbmNlOgorICAgICAgICAgZm9yd2FyZCB0byBhcHByb3ByaWF0ZSBwYWdlIGRlZmluaXRpb24gLS0+CisgIDxhY3Rpb24gICAgIHBhdGg9Ii9teVBvcnRhbFNldHRpbmdzIgorICAgICAgIAkJICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb25zLkZvcndhcmRBY3Rpb24iCisJCQkgIG5hbWU9Im15UG9ydGFsU2V0dGluZ3NGb3JtIgorCQkJICBwYXJhbWV0ZXI9ImV4YW1wbGVzLnBvcnRhbC5zZXR0aW5ncy5wYWdlIi8+CisKKyAgICA8IS0tIFRpbGVzIEFjdGlvbiBhc3NvY2lhdGVkIHRvIFRpbGUgbXlNZW51U2V0dGluZ3MgLS0+CisgIDxhY3Rpb24gICAgIHBhdGg9Ii9jb250cm9sbGVyL215TWVudVNldHRpbmdzIgorICAgICAgIAkJICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMucG9ydGFsLlVzZXJNZW51U2V0dGluZ3NBY3Rpb24iCisJCQkgIG5hbWU9Im15TWVudVNldHRpbmdzRm9ybSIgPgorICA8L2FjdGlvbj4KKworICAgIDwhLS0gTWVudSBTZXR0aW5ncyBwYWdlIGVudHJhbmNlOgorICAgICAgICAgZm9yd2FyZCB0byBhcHByb3ByaWF0ZSBwYWdlIGRlZmluaXRpb24gLS0+CisgIDxhY3Rpb24gICAgIHBhdGg9Ii9teU1lbnVTZXR0aW5ncyIKKyAgICAgICAJCSAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5Gb3J3YXJkQWN0aW9uIgorCQkJICBuYW1lPSJteU1lbnVTZXR0aW5nc0Zvcm0iCisJCQkgIHBhcmFtZXRlcj0iZXhhbXBsZXMudXNlck1lbnUuc2V0dGluZ3MucGFnZSIvPgorCisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgIDwhLS0gVGlsZXMgMS4xIFNraW4gU2V0dGluZ3MgLS0+CisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisKKyAgICA8IS0tIFNraW4gU2V0dGluZ3MgcGFnZSBlbnRyYW5jZToKKyAgICAgICAgIGZvcndhcmQgdG8gYXBwcm9wcmlhdGUgcGFnZSBkZWZpbml0aW9uIC0tPgorICA8YWN0aW9uICAgICBwYXRoPSIvbXlTa2luU2V0dGluZ3MiCisgICAgICAgCQkgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbnMuRm9yd2FyZEFjdGlvbiIKKwkJCSAgbmFtZT0ibXlTa2luU2V0dGluZ3NGb3JtIiAKKwkgICAgICAgICAgcGFyYW1ldGVyPSJleGFtcGxlcy5za2luLnNldHRpbmdzLnBhZ2UiLz4KKworICAgIDxhY3Rpb24gICAgIHBhdGg9Ii9jb250cm9sbGVyL215U2tpblNldHRpbmdzIgorICAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5za2luLkxheW91dFNldHRpbmdzQWN0aW9uIgorCQkJCW5hbWU9Im15U2tpblNldHRpbmdzRm9ybSIgPgorICAgPC9hY3Rpb24+CisKKyAgICA8YWN0aW9uICAgICBwYXRoPSIvY29udHJvbGxlci9sYXlvdXRTd2l0Y2giCisgICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLnNraW4uTGF5b3V0U3dpdGNoQWN0aW9uIiAgPgorICAgPC9hY3Rpb24+CisKKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKyAgPCEtLSBUaWxlcyAxLjEgUnNzIENoYW5uZWwgLS0+CisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgICAgPGFjdGlvbiAgICAgcGF0aD0iL2NvbnRyb2xsZXIvcnNzQ2hhbm5lbCIKKyAgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMucnNzQ2hhbm5lbC5Sc3NDaGFubmVsc0FjdGlvbiI+CisgICA8L2FjdGlvbj4KKwkJCSAgIAorICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorICA8IS0tIFRlc3QgdGFicyB3aXRoIGFuIGFjdGlvbiBVUkwgLS0+CisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgICAgPGFjdGlvbiAgICAgcGF0aD0iL3RhYnMiCisgICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5Gb3J3YXJkQWN0aW9uIgorCQkgICAgICAgIHBhcmFtZXRlcj0iZXhhbXBsZXMudGFicy5wYWdlIi8+CisJCQkgICAKKyAgPC9hY3Rpb24tbWFwcGluZ3M+CisKKworICA8IS0tID09PT09PT09PT0gUmVxdWVzdCBQcm9jZXNzb3IgRGVjbGFyYXRpb24gPT09PT09PT09PT09PT09PT09PSAtLT4KKyAgPCEtLSBUaGUgVGlsZXMgZnJhbWV3b3JrIHVzZSBhIHNwZWNpYWwgcmVxdWVzdCBwcm9jZXNzb3IuIFlPVSBET04nVCAtLT4KKyAgPCEtLSBORUVEIFRPIERFQ0xBUkUgSVQgeW91cnNlbGYgKFRoZSBUaWxlc1BsdWdpbiBkbyBpdCBmb3IgeW91KSwgdW5sZXNzIC0tPgorICA8IS0tIHlvdSBoYXZlIGNyZWF0ZWQgeW91ciBvd24gcmVxdWVzdCBwcm9jZXNzb3IuIEluIHRoaXMgbGF0ZXIgY2FzZSwgLS0+CisgIDwhLS0geW91ciByZXF1ZXN0IHByb2Nlc3NvciBzaG91bGQgZXh0ZW5kIHRoZSBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5UaWxlc1JlcXVlc3RQcm9jZXNzb3IgLS0+CisgIDwhLS0gYW5kIGJlIGRlY2xhcmVkIGhlcmUgLS0+CisgIDwhLS0gIDxjb250cm9sbGVyIHByb2Nlc3NvckNsYXNzPSJ5b3VyLlJlcXVlc3RQcm9jZXNzb3IiICAvPiAgLS0+CisKKyAgPCEtLSA9PT09PT09PT09IEFzc29jaWF0ZWQgTWVzc2FnZXMgUmVzc291cmNlIHNldHRpbmdzID09PT09PT09PT09PT09PT09PT0gLS0+CisgIDwhLS0gVW5jb21tZW50IHRoZSBmb2xsb3dpbmcgaWYgeW91ciB3ZWJzZXJ2ZXIgY29tcGxhaW5zIGFib3V0IGEgbWlzc2luZyByZXNvdXJjZXMuIC0tPgorICA8IS0tIFRoaXMgcmVzb3VyY2UgaXMgbm90IG5lZWRlZCBieSBUaWxlcyBvciB0aGlzIGV4YW1wbGUuIEl0IGlzIGp1c3QgYSB0cmljayB0byBtYWtlIC0tPgorICA8IS0tIFN0cnV0cyBoYXBweSB3aXRoIHNvbWUgd2ViIHNlcnZlci4gLS0+CisgIDwhLS0gPG1lc3NhZ2UtcmVzb3VyY2VzIHBhcmFtZXRlcj0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLmRldjEtMS5BcHBsaWNhdGlvblJlc291cmNlcyIgbnVsbD0iZmFsc2UiIC8+IC0tPgorCisgIAorIDwhLS0gPT09PT09PT09PSBUaWxlc1BsdWdpbiBzZXR0aW5ncyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorIDwhLS0gWW91IHNob3VsZCBkZWNsYXJlIHRoaXMgcGx1Z2luIGlmIHlvdSB3YW50IHRvIHVzZSBUaWxlcyB3aXRoIGFuIFhNTCBkZWZpbml0aW9uIGZpbGUuIC0tPgorICA8cGx1Zy1pbiBjbGFzc05hbWU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzUGx1Z2luIiA+CisgICAgPCEtLSBQYXRoIHRvIFhNTCBkZWZpbml0aW9uIGZpbGVzIC0tPgorICAgIDxzZXQtcHJvcGVydHkgcHJvcGVydHk9ImRlZmluaXRpb25zLWNvbmZpZyIgCisgICAgICB2YWx1ZT0iL1dFQi1JTkYvdGlsZXMtZGVmcy54bWwsL1dFQi1JTkYvdGlsZXMtZXhhbXBsZXMtZGVmcy54bWwiLz4KKyAgICA8IS0tIFNldCBNb2R1bGUtYXdhcmVuZXNzIHRvIHRydWUgLS0+CisgICAgPHNldC1wcm9wZXJ0eSBwcm9wZXJ0eT0ibW9kdWxlQXdhcmUiIHZhbHVlPSJ0cnVlIiAvPgorICA8L3BsdWctaW4+CisKKzwvc3RydXRzLWNvbmZpZz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy10ZXN0cy1jb25maWcueG1sIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL1dFQi1JTkYvc3RydXRzLXRlc3RzLWNvbmZpZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWVjOGU3NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy10ZXN0cy1jb25maWcueG1sCkBAIC0wLDAgKzEsOTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+CisKKzwhRE9DVFlQRSBzdHJ1dHMtY29uZmlnIFBVQkxJQworICAgICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFN0cnV0cyBDb25maWd1cmF0aW9uIDEuMi8vRU4iCisgICAgICAgICAgImh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy9kdGRzL3N0cnV0cy1jb25maWdfMV8yLmR0ZCI+Cis8IS0tCisgICAgIFRoaXMgaXMgdGhlIFN0cnV0cyBjb25maWd1cmF0aW9uIGZpbGUgZm9yIHRoZSBleGFtcGxlIGFwcGxpY2F0aW9uLAorICAgICB1c2luZyB0aGUgcHJvcG9zZWQgbmV3IHN5bnRheC4KKworICAgICBOT1RFOiAgWW91IHdvdWxkIG9ubHkgZmxlc2ggb3V0IHRoZSBkZXRhaWxzIGluIHRoZSAiZm9ybS1iZWFuIgorICAgICBkZWNsYXJhdGlvbnMgaWYgeW91IGhhZCBhIGdlbmVyYXRvciB0b29sIHRoYXQgdXNlZCB0aGVtIHRvIGNyZWF0ZQorICAgICB0aGUgY29ycmVzcG9uZGluZyBKYXZhIGNsYXNzZXMgZm9yIHlvdS4gIE90aGVyd2lzZSwgeW91IHdvdWxkCisgICAgIG5lZWQgb25seSB0aGUgImZvcm0tYmVhbiIgZWxlbWVudCBpdHNlbGYsIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgIm5hbWUiIGFuZCAidHlwZSIgYXR0cmlidXRlcy4KKy0tPgorCisKKzxzdHJ1dHMtY29uZmlnPgorCisgIDwhLS0gPT09PT09PT09PSBBY3Rpb24gTWFwcGluZyBEZWZpbml0aW9ucyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgIDxhY3Rpb24tbWFwcGluZ3M+CisKKyAgICA8IS0tIE1haW4gcGFnZSB1cmwgZW50cnkuIAorCSAgICAgVGhpcyBhY3Rpb24gaXMgdXNlZCB0byBtYXAgYW4gVVJMIHRvIGFuIGludGVybmFsIGpzcC4KKwkgICAgIEEgc2lkZSBlZmZlY3QgaXMgdGhhdCB0aGUgc3RydXRzIG1vZHVsZSBpcyBzd2l0Y2hlZCB0byB0aGUgbW9kdWxlIAorCQkgYXNzb2NpYXRlZCB0byB0aGlzIGNvbmZpZyBmaWxlICAtLT4KKyAgICA8YWN0aW9uICAgIHBhdGg9Ii9xdWlja092ZXJ2aWV3IgorICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5Gb3J3YXJkQWN0aW9uIgorICAgICAgICAgICAgICAgcGFyYW1ldGVyPSJ0ZXN0LmhvbWUucGFnZSIvPgorCisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgIDwhLS0gVGVzdCBhY3Rpb25zICAtLT4KKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKyAgCisgICAgPCEtLSBUZXN0IFN0cnV0cyBhY3Rpb24gYW5kIFRpbGVzIGludGVncmF0aW9uIC0tPgorICA8YWN0aW9uICAgICBwYXRoPSIvdGVzdEFjdGlvbiIKKyAgICAgICAJCSAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLnRlc3QuVGVzdEFjdGlvblRpbGVBY3Rpb24iPgorICAgICAgPGZvcndhcmQgIG5hbWU9InN1Y2Nlc3MiICAgICAgICBwYXRoPSJ0ZXN0LnN0cnV0cy5hY3Rpb24iLz4KKyAgICAgIDxmb3J3YXJkICBuYW1lPSJmYWlsdXJlIiAgICAgICAgcGF0aD0idGVzdC5zdHJ1dHMuYWN0aW9uLmZhaWwiLz4KKyAgPC9hY3Rpb24+CisKKyAgICA8IS0tIFRlc3QgU3RydXRzIEZvcndhcmRpbnRlZ3JhdGlvbiAtLT4KKyAgPGFjdGlvbiAgICAgcGF0aD0iL3Rlc3RGb3J3YXJkIgorICAgICAgIAkJICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMudGVzdC5UZXN0QWN0aW9uVGlsZUFjdGlvbiIKKwkJCSAgZm9yd2FyZD0idGVzdC5zdHJ1dHMuYWN0aW9uIi8+CisKKyAgICA8IS0tIFRlc3QgU3RydXRzIGFjdGlvbiBhbmQgVGlsZXMgaW50ZWdyYXRpb24gLS0+CisgIDxhY3Rpb24gICAgIHBhdGg9Ii90ZXN0QWN0aW9uRm9yd2FyZEpzcCIKKyAgICAgICAJCSAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLnRlc3QuVGVzdEFjdGlvblRpbGVBY3Rpb24iPgorICAgICAgPGZvcndhcmQgIG5hbWU9InN1Y2Nlc3MiICAgICAgICBwYXRoPSIvbGF5b3V0LmpzcCIvPgorICAgICAgPGZvcndhcmQgIG5hbWU9ImZhaWx1cmUiICAgICAgICBwYXRoPSJ0ZXN0LnN0cnV0cy5hY3Rpb24uZmFpbCIvPgorICA8L2FjdGlvbj4KKworICA8YWN0aW9uICAgICBwYXRoPSIvZGlzcGF0Y2giCisgICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYWN0aW9ucy5EZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbiIKKwkJCQlwYXJhbWV0ZXI9ImRlZiI+CisJIDxmb3J3YXJkICBuYW1lPSJzdWNjZXNzIiBwYXRoPSJhbnl0aGluZyIgLz4KKwkgPGZvcndhcmQgIG5hbWU9ImVycm9yIiAgIHBhdGg9ImFueXRoaW5nIiAvPgorICA8L2FjdGlvbj4KKyAgCisgICAgPCEtLSBUZXN0IFN0cnV0cyBhY3Rpb24gYW5kIFRpbGVzIGludGVncmF0aW9uIC0tPgorICA8YWN0aW9uICAgICBwYXRoPSIvc2hvd1JlcXVlc3RVUkkiCisgICAgICAgCQkgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy50ZXN0Lk5vRm9yd2FyZCI+CisgICAgICA8Zm9yd2FyZCAgbmFtZT0ic3VjY2VzcyIgICAgICAgIHBhdGg9InRlc3QuYWN0aW9uLm5vZm9yd2FyZCIvPgorICA8L2FjdGlvbj4KKworICAgIDwhLS0gVGhlIHN0YW5kYXJkIGFkbWluaXN0cmF0aXZlIGFjdGlvbnMgYXZhaWxhYmxlIHdpdGggU3RydXRzIC0tPgorICAgIDwhLS0gVGhlc2Ugd291bGQgYmUgZWl0aGVyIG9taXR0ZWQgb3IgcHJvdGVjdGVkIGJ5IHNlY3VyaXR5IC0tPgorICAgIDwhLS0gaW4gYSByZWFsIGFwcGxpY2F0aW9uIGRlcGxveW1lbnQgLS0+CisgICAgIDxhY3Rpb24gICAgcGF0aD0iL2FkbWluL3ZpZXdkZWYiCisgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5hY3Rpb25zLlZpZXdEZWZpbml0aW9uc0FjdGlvbiIvPgorICA8L2FjdGlvbi1tYXBwaW5ncz4KKworICAKKyAgPCEtLSA9PT09PT09PT09IFRpbGVzIHBsdWctaW4gc2V0dGluZyBzZXR0aW5ncyA9PT09PT09PT09PT09PT09PT09IC0tPgorICA8IS0tIEhlcmUgd2Ugc3BlY2lmaWVkIHRoZSB0aWxlcyBwbHVnLWluLgorICAgICAgIFRoaXMgcGx1Zy1pbiByZWdpc3RlciBhcHByb3ByaWF0ZSBSZXF1ZXN0IFByb2Nlc3NvciAtLT4KKyAgPCEtLSAgPGNvbnRyb2xsZXIgcHJvY2Vzc29yQ2xhc3M9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzUmVxdWVzdFByb2Nlc3NvciIgIC8+ICAtLT4KKworICA8IS0tID09PT09PT09PT0gQXNzb2NpYXRlZCBNZXNzYWdlcyBSZXNzb3VyY2Ugc2V0dGluZ3MgPT09PT09PT09PT09PT09PT09PSAtLT4KKyAgPCEtLSBOb3QgdXNlZCBieSB0aWxlcyBvciB0aGlzIHdlYnNpdGUsIGJ1dCBuZWVkZWQgZHVlIHRvIGEgYnVnIGluIGFjdHVhbCBTdHJ1dHMgdmVyc2lvbiAtLT4KKyAgPG1lc3NhZ2UtcmVzb3VyY2VzIHBhcmFtZXRlcj0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLmRldjEtMS5BcHBsaWNhdGlvblJlc291cmNlcyIgbnVsbD0iZmFsc2UiIC8+CisKKyAgCisgIDxwbHVnLWluIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNQbHVnaW4iID4KKyAgICA8c2V0LXByb3BlcnR5IHByb3BlcnR5PSJkZWZpbml0aW9ucy1jb25maWciIAorCSAgICAgICAgICAgICAgICAgdmFsdWU9Ii9XRUItSU5GL3RpbGVzLWRlZnMueG1sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC9XRUItSU5GL3RpbGVzLXRlc3RzLWRlZnMueG1sIiAvPgorICAgIDxzZXQtcHJvcGVydHkgcHJvcGVydHk9Im1vZHVsZUF3YXJlIiB2YWx1ZT0idHJ1ZSIgLz4KKyAgPC9wbHVnLWluPgorCis8L3N0cnV0cy1jb25maWc+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtdHV0b3JpYWwtY29uZmlnLnhtbCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3N0cnV0cy10dXRvcmlhbC1jb25maWcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlN2VkMDYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi9zdHJ1dHMtdHV0b3JpYWwtY29uZmlnLnhtbApAQCAtMCwwICsxLDE0OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKworPCFET0NUWVBFIHN0cnV0cy1jb25maWcgUFVCTElDCisgICAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgU3RydXRzIENvbmZpZ3VyYXRpb24gMS4yLy9FTiIKKyAgICAgICAgICAiaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL2R0ZHMvc3RydXRzLWNvbmZpZ18xXzIuZHRkIj4KKzwhLS0KKyAgICAgVGhpcyBpcyB0aGUgU3RydXRzIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgdGhlCisgICAgIFRpbGVzLWRvY3VtZW50YXRpb24gInR1dG9yaWFsIiBhcHBsaWNhdGlvbgorLS0+CisKKworPHN0cnV0cy1jb25maWc+CisKKworICA8IS0tID09PT09PT09PT0gRm9ybSBCZWFuIERlZmluaXRpb25zID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKyAgPGZvcm0tYmVhbnM+CisKKyAgICA8IS0tIExvZ29uIGZvcm0gYmVhbiAtLT4KKyAgICA8Zm9ybS1iZWFuICAgICAgbmFtZT0iaW52b2ljZUZvcm0iCisgICAgICAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5pbnZvaWNlLkludm9pY2VGb3JtIi8+CisKKyAgICA8IS0tIFBvcnRhbCBmb3JtIGJlYW4gLS0+CisgICAgPGZvcm0tYmVhbiAgICAgIG5hbWU9InBvcnRhbFByZWZzRm9ybSIKKyAgICAgICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLmR5blBvcnRhbC5Qb3J0YWxQcmVmc0Zvcm0iLz4KKyAgPC9mb3JtLWJlYW5zPgorCisKKyAgPCEtLSA9PT09PT09PT09IEdsb2JhbCBGb3J3YXJkIERlZmluaXRpb25zID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgIDxnbG9iYWwtZm9yd2FyZHM+CisgICAgPCEtLSBGb3J3YXJkIHRvIGVycm9yIHBhZ2UgLS0+CisgICAgPGZvcndhcmQgICBuYW1lPSJmYWlsdXJlIiAgICAgICAgICAgICAgcGF0aD0iZm9yd2FyZC5leGFtcGxlLmZhaWx1cmUucGFnZSIvPgorICA8L2dsb2JhbC1mb3J3YXJkcz4KKworCisgIDwhLS0gPT09PT09PT09PSBBY3Rpb24gTWFwcGluZyBEZWZpbml0aW9ucyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorICA8YWN0aW9uLW1hcHBpbmdzPgorCisgICAgPCEtLQorICAgIE1haW4gcGFnZSBVUkwgZW50cnkuCisJICAgICBUaGlzIGFjdGlvbiBpcyB1c2VkIHRvIG1hcCBhbiBVUkwgdG8gYW4gaW50ZXJuYWwganNwLgorCSAgICAgQSBzaWRlIGVmZmVjdCBpcyB0aGF0IHRoZSBzdHJ1dHMgbW9kdWxlIGlzIHN3aXRjaGVkIHRvIHRoZSBtb2R1bGUgCisJCSBhc3NvY2lhdGVkIHRvIHRoaXMgY29uZmlnIGZpbGUgIC0tPgorICAgIDxhY3Rpb24gICAgcGF0aD0iL2luZGV4IgorICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5Gb3J3YXJkQWN0aW9uIgorICAgICAgICAgICAgICAgcGFyYW1ldGVyPSJtYWluTGF5b3V0Ii8+CisKKyAgICA8IS0tIEVkaXQgdXNlciByZWdpc3RyYXRpb24gLS0+CisgICAgPGFjdGlvbiAgICBwYXRoPSIvZm9yd2FyZEV4YW1wbGVBY3Rpb24iCisgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMudHV0b3JpYWwuRm9yd2FyZEV4YW1wbGVBY3Rpb24iPgorICAgICAgPGZvcndhcmQgbmFtZT0ic3VjY2VzcyIgICAgICAgICAgICAgIHBhdGg9ImZvcndhcmQuZXhhbXBsZS5zdWNjZXNzLnBhZ2UiLz4KKyAgICA8L2FjdGlvbj4KKworICA8IS0tIEVkaXQgaW52b2ljZSBleGFtcGxlIC0tPgorICAgIDxhY3Rpb24gICAgIHBhdGg9Ii9sYW5nIgorICAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5sYW5nLlNlbGVjdExvY2FsZUFjdGlvbiI+CisgICAgICA8Zm9yd2FyZCAgbmFtZT0iZmFpbHVyZSIgICAgICAgIHBhdGg9Ii9pbmRleC5qc3AiLz4KKyAgICAgIDxmb3J3YXJkICBuYW1lPSJzdWNjZXNzIiAgICAgICAgcGF0aD0iL2luZGV4LmpzcCIvPgorICA8L2FjdGlvbj4KKyAgCisgIDwhLS0gRHluYW1pYyB0ZW1wbGF0ZSBleGFtcGxlIC0tPgorICAgIDxhY3Rpb24gICAgIHBhdGg9Ii9keW5UZW1wbGF0ZSIKKyAgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMudGVtcGxhdGUuRHluVGVtcGxhdGVBY3Rpb24iPgorICAgICAgPGZvcndhcmQgIG5hbWU9InN1Y2Nlc3MiICAgICAgICBwYXRoPSIvZHluRnJhbWVzZXRQYWdlLmpzcCIvPgorICA8L2FjdGlvbj4KKyAgCisgICAgPCEtLSBFZGl0IGludm9pY2UgZXhhbXBsZSAtLT4KKyAgPGFjdGlvbiAgICAgcGF0aD0iL2ludm9pY2UvZWRpdEludm9pY2UiCisgICAgICAgCQkgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy5pbnZvaWNlLkVkaXRJbnZvaWNlQWN0aW9uIgorCQkJICBuYW1lPSJpbnZvaWNlRm9ybSIgPgorICAgICAgPGZvcndhcmQgIG5hbWU9InN1Y2Nlc3MiICAgICAgICBwYXRoPSIvaW52b2ljZS9pbmRleC5qc3AiLz4KKyAgPC9hY3Rpb24+CisKKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKyAgPCEtLSBUdXRvcmlhbCBEeW5hbWljIHBvcnRhbCBhY3Rpb25zICAtLT4KKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKyAgICA8IS0tIER5bmFtaWMgUG9ydGFsIHVzZXIgbGlzdHMgcmV0cmlldmluZyBhY3Rpb24gLS0+CisgIDxhY3Rpb24gICAgIHBhdGg9Ii9hY3Rpb25zL215UG9ydGFsIgorICAgICAgIAkJICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMuZHluUG9ydGFsLlJldHJpZXZlUG9ydGFsQWN0aW9uIj4KKyAgICAgIDxmb3J3YXJkICBuYW1lPSJzdWNjZXNzIiAgICAgICAgcGF0aD0ibWFpbi5wb3J0YWwuYm9keSIvPgorICA8L2FjdGlvbj4KKworICAgIDwhLS0gRHluYW1pYyBQb3J0YWwgdXNlciBsaXN0cyBzZXQgYWN0aW9uOgorICAgICAtLT4KKyAgPGFjdGlvbiAgICAgcGF0aD0iL2FjdGlvbnMvbXlQb3J0YWxQcmVmcyIKKyAgICAgICAJCSAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMuYWN0aW9ucy5Gb3J3YXJkQWN0aW9uIgorCQkJICBuYW1lPSJwb3J0YWxQcmVmc0Zvcm0iCisgICAgICAgICAgICAgICAgIHBhcmFtZXRlcj0ibXlEeW5hbWljUG9ydGFsUHJlZmVyZW5jZXMiLz4KKworICAgIDwhLS0gRHluYW1pYyBQb3J0YWwgdXNlciBsaXN0cyBzZXQgdGlsZS1hY3Rpb24gLS0+CisgIDxhY3Rpb24gICAgIHBhdGg9Ii9hY3Rpb25zL215UG9ydGFsUHJlZnMudGlsZSIKKyAgICAgICAJCSAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLmR5blBvcnRhbC5TZXRQb3J0YWxQcmVmc0FjdGlvbiIKKwkJCSAgbmFtZT0icG9ydGFsUHJlZnNGb3JtIj4KKyAgICAgIDxmb3J3YXJkICBuYW1lPSJwcmVmZXJlbmNlcyIgICAgcGF0aD0iL2R5blBvcnRhbC9teVBvcnRhbFByZWZUaWxlLmpzcCIvPgorICAgICAgPGZvcndhcmQgIG5hbWU9InBvcnRhbCIgICAgICAgICBwYXRoPSJkeW5hbWljLnBvcnRhbC5ib2R5Ii8+CisgIDwvYWN0aW9uPgorCisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgIDwhLS0gUnNzIENoYW5uZWwgLS0+CisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgICAgPGFjdGlvbiAgICAgcGF0aD0iL2FjdGlvbnMvcnNzQ2hhbm5lbCIKKyAgICAgICAgICAgICAgICB0eXBlPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMucnNzQ2hhbm5lbC5DaGFubmVscyI+CisgICAgICA8Zm9yd2FyZCAgbmFtZT0iY29udGludWUiICAgICAgICBwYXRoPSIvZHluUG9ydGFsL0NoYW5uZWxzLmpzcCIvPgorICAgICAgPGZvcndhcmQgIG5hbWU9ImVycm9yIiAgICAgICAgICAgcGF0aD0iL2R5blBvcnRhbC9FcnJvcnMuanNwIi8+CisgICA8L2FjdGlvbj4KKworICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorICA8IS0tIHRlc3QsIHRvIGJlIHJlbW92ZWQgLS0+CisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgICAgPGFjdGlvbiAgICAgcGF0aD0iL3Rlc3RBY3Rpb24iCisgICAgICAgICAgICAgICAgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLmxhbmcuU2VsZWN0TG9jYWxlQWN0aW9uIj4KKyAgICAgIDxmb3J3YXJkICBuYW1lPSJmYWlsdXJlIiAgICAgICAgcGF0aD0iL2NvbW1vbi9mb290ZXIuanNwIi8+CisgICAgICA8Zm9yd2FyZCAgbmFtZT0ic3VjY2VzcyIgICAgICAgIHBhdGg9Ii9jb21tb24vZm9vdGVyLmpzcCIvPgorICA8L2FjdGlvbj4KKyAgCisgICAgPGFjdGlvbiAgICAgcGF0aD0iL3Rlc3RBY3Rpb24yIgorICAgICAgICAgICAgICAgIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLndlYmFwcC50aWxlcy50dXRvcmlhbC5Gb3J3YXJkRXhhbXBsZUFjdGlvbiI+CisgICAgICA8Zm9yd2FyZCAgbmFtZT0iZmFpbHVyZSIgICAgICAgIHBhdGg9ImZvcndhcmQuZXhhbXBsZS5zdWNjZXNzLnBhZ2UiLz4KKyAgICAgIDxmb3J3YXJkICBuYW1lPSJzdWNjZXNzIiAgICAgICAgcGF0aD0iZm9yd2FyZC5leGFtcGxlLnN1Y2Nlc3MucGFnZSIvPgorICA8L2FjdGlvbj4KKyAgCisgIDwvYWN0aW9uLW1hcHBpbmdzPgorCisgIDwhLS0gPT09PT09PT09PSBSZXF1ZXN0IFByb2Nlc3NvciBEZWNsYXJhdGlvbiA9PT09PT09PT09PT09PT09PT09IC0tPgorICA8IS0tIFRoZSBUaWxlcyBmcmFtZXdvcmsgdXNlIGEgc3BlY2lhbCByZXF1ZXN0IHByb2Nlc3Nvci4gWU9VIERPTidUIC0tPgorICA8IS0tIE5FRUQgVE8gREVDTEFSRSBJVCB5b3Vyc2VsZiAoVGhlIFRpbGVzUGx1Z2luIGRvIGl0IGZvciB5b3UpLCB1bmxlc3MgLS0+CisgIDwhLS0geW91IGhhdmUgY3JlYXRlZCB5b3VyIG93biByZXF1ZXN0IHByb2Nlc3Nvci4gSW4gdGhpcyBsYXRlciBjYXNlLCAtLT4KKyAgPCEtLSB5b3VyIHJlcXVlc3QgcHJvY2Vzc29yIHNob3VsZCBleHRlbmQgdGhlIG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLlRpbGVzUmVxdWVzdFByb2Nlc3NvciAtLT4KKyAgPCEtLSBhbmQgYmUgZGVjbGFyZWQgaGVyZSAtLT4KKyAgPCEtLSAgPGNvbnRyb2xsZXIgcHJvY2Vzc29yQ2xhc3M9InlvdXIuUmVxdWVzdFByb2Nlc3NvciIgIC8+ICAtLT4KKworICA8IS0tID09PT09PT09PT0gQXNzb2NpYXRlZCBNZXNzYWdlcyBSZXNzb3VyY2Ugc2V0dGluZ3MgPT09PT09PT09PT09PT09PT09PSAtLT4KKyAgPCEtLSBVbmNvbW1lbnQgdGhlIGZvbGxvd2luZyBpZiB5b3VyIHdlYnNlcnZlciBjb21wbGFpbnMgYWJvdXQgYSBtaXNzaW5nIHJlc291cmNlcy4gLS0+CisgIDwhLS0gVGhpcyByZXNvdXJjZSBpcyBub3QgbmVlZGVkIGJ5IFRpbGVzIG9yIHRoaXMgZXhhbXBsZS4gSXQgaXMganVzdCBhIHRyaWNrIHRvIG1ha2UgLS0+CisgIDwhLS0gU3RydXRzIGhhcHB5IHdpdGggc29tZSB3ZWIgc2VydmVyLiAtLT4KKyAgPCEtLSA8bWVzc2FnZS1yZXNvdXJjZXMgcGFyYW1ldGVyPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMuZGV2MS0xLkFwcGxpY2F0aW9uUmVzb3VyY2VzIiBudWxsPSJmYWxzZSIgLz4gLS0+CisKKyAgCisgPCEtLSA9PT09PT09PT09IFRpbGVzUGx1Z2luIHNldHRpbmdzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisgPCEtLSBZb3Ugc2hvdWxkIGRlY2xhcmUgdGhpcyBwbHVnaW4gaWYgeW91IHdhbnQgdG8gdXNlIFRpbGVzIHdpdGggYW4gWE1MIGRlZmluaXRpb24gZmlsZS4gLS0+CisgIDxwbHVnLWluIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuVGlsZXNQbHVnaW4iID4KKyAgICA8IS0tIFBhdGggdG8gWE1MIGRlZmluaXRpb24gZmlsZXMgLS0+CisgICAgPHNldC1wcm9wZXJ0eSBwcm9wZXJ0eT0iZGVmaW5pdGlvbnMtY29uZmlnIiAKKwkgICAgICAgICAgICAgICAgIHZhbHVlPSIvV0VCLUlORi90aWxlcy1kZWZzLnhtbCwKKwkJCQkJICAgICAgICAvV0VCLUlORi90aWxlcy10dXRvcmlhbC1kZWZzLnhtbCIgLz4KKyAgICA8IS0tIFNldCBNb2R1bGUtYXdhcmVuZXNzIHRvIHRydWUgLS0+CisgICAgPHNldC1wcm9wZXJ0eSBwcm9wZXJ0eT0ibW9kdWxlQXdhcmUiIHZhbHVlPSJ0cnVlIiAvPgorICA8L3BsdWctaW4+CisKKzwvc3RydXRzLWNvbmZpZz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3RpbGVzLWRlZnMueG1sIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL1dFQi1JTkYvdGlsZXMtZGVmcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGRhNWY5OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3RpbGVzLWRlZnMueG1sCkBAIC0wLDAgKzEsMTE1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorCisgPCFET0NUWVBFIHRpbGVzLWRlZmluaXRpb25zIFBVQkxJQworICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFRpbGVzIENvbmZpZ3VyYXRpb24gMS4xLy9FTiIKKyAgICAgICAiaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL2R0ZHMvdGlsZXMtY29uZmlnXzFfMS5kdGQiPgorCis8IS0tIAorICBEZWZpbml0aW9ucyBmb3IgVGlsZXMKKyAgVGhpcyBmaWxlIGNvbnRhaW5zIGRlZmluaXRpb25zIGNvbW1vbiB0byBhbGwgU3RydXRzIG1vZHVsZXMuCisgIEluIHBhcnRpY3VsYXIsIGl0IGNvbnRhaW5zIHRoZSBtYWluIGxheW91dCBhbmQgdGhlIGNvbW1vbiBtZW51cy4KKyAgVGhlcmUgaXMgYWxzbyB0aGUgbWFpbiBwYWdlIGFzIGEgcG9ydGFsLgorLS0+CisKKzx0aWxlcy1kZWZpbml0aW9ucz4KKworICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorICA8IS0tIE1hc3RlciBkZWZpbml0aW9uICAJCQkJCQkJCQktLT4KKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKworICA8IS0tIERvYyBpbmRleCBwYWdlIGRlc2NyaXB0aW9uICAtLT4KKyAgPGRlZmluaXRpb24gbmFtZT0iZG9jLm1haW5MYXlvdXQiIHBhdGg9Ii9sYXlvdXQvY2xhc3NpY0xheW91dC5qc3AiPgorCSAgPHB1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJUaWxlcyBMaWJyYXJ5IERvY3VtZW50YXRpb24iIC8+CisJICA8cHV0IG5hbWU9ImhlYWRlciIgdmFsdWU9Ii9jb21tb24vaGVhZGVyLmpzcCIgLz4KKwkgIDxwdXQgbmFtZT0ibWVudSIgICB2YWx1ZT0iZG9jLm1lbnUubWFpbiIgLz4KKwkgIDxwdXQgbmFtZT0iZm9vdGVyIiB2YWx1ZT0iL2NvbW1vbi9mb290ZXIuanNwIiAvPgorCSAgPHB1dCBuYW1lPSJib2R5IiAgIHZhbHVlPSJkb2MucG9ydGFsLmJvZHkiIC8+CisgIDwvZGVmaW5pdGlvbj4KKworICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorICA8IS0tIE1haW4gcGFnZSBib2R5IGRlZmluaXRpb25zICAJCQkJCQkJCQktLT4KKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKworICA8ZGVmaW5pdGlvbiBuYW1lPSJkb2MucG9ydGFsLmJvZHkiIHBhdGg9Ii9sYXlvdXQvY29sdW1uc0xheW91dC5qc3AiPgorICAgIDxwdXQgbmFtZT0ibnVtQ29scyIgdmFsdWU9IjIiIC8+CisgICAgPHB1dExpc3QgbmFtZT0ibGlzdDAiID4KKyAgICAgIDxhZGQgdmFsdWU9Ii9kb2MvcG9ydGFsL3dlbGNvbWUuanNwIiAvPgorICAgICAgPGFkZCB2YWx1ZT0iL2RvYy9wb3J0YWwvZmVhdHVyZXMuanNwIiAvPgorICAgICAgPCEtLTxhZGQgdmFsdWU9Ii9kb2MvcG9ydGFsL3RvZG8uanNwIiAvPiAtLT4KKyAgICAgIDxhZGQgdmFsdWU9Ii9kb2MvcG9ydGFsL2RvY3VtZW50YXRpb24uanNwIiAvPgorICAgIDwvcHV0TGlzdD4KKyAgICA8cHV0TGlzdCBuYW1lPSJsaXN0MSIgPgorICAgICAgPGFkZCB2YWx1ZT0iL2RvYy9wb3J0YWwvbmV3cy5qc3AiIC8+CisgICAgICA8YWRkIHZhbHVlPSIvZG9jL3BvcnRhbC9kb3dubG9hZC5qc3AiIC8+CisgICAgICA8YWRkIHZhbHVlPSIvZG9jL3BvcnRhbC90aWxlc0NvbXBzVGVtcGxhdGVzLmpzcCIgLz4KKyAgICAgIDxhZGQgdmFsdWU9Ii9kb2MvcG9ydGFsL3N0cnV0c0ludGVncmF0aW9uLmpzcCIgLz4KKyAgICAgIDxhZGQgdmFsdWU9Ii9kb2MvcG9ydGFsL2NvbW1lbnRzLmpzcCIgLz4KKyAgICAgIDxhZGQgdmFsdWU9Ii9kb2MvcG9ydGFsL3JldmlzaW9ucy5qc3AiIC8+CisgICAgPC9wdXRMaXN0PgorICA8L2RlZmluaXRpb24+CisgIAorICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorICA8IS0tIE1lbnVzIGRlZmluaXRpb25zICAJCQkJCQkJCQktLT4KKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKworICA8IS0tIE1lbnUgYmFyIGRlZmluaXRpb24gLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJkb2MubWVudS5tYWluIiBwYXRoPSIvbGF5b3V0cy92Ym94TGF5b3V0LmpzcCIgPgorICA8cHV0TGlzdCBuYW1lPSJsaXN0IiA+CisgICAgPGFkZCB2YWx1ZT0iY29tbW9uLm1lbnUuaG9tZSIgLz4KKyAgICA8YWRkIHZhbHVlPSJjb21tb24ubWVudS5leGFtcGxlcyIgLz4KKyAgICA8YWRkIHZhbHVlPSJjb21tb24ubWVudS5kb2MiIC8+CisgICAgPCEtLSA8YWRkIHZhbHVlPSJjb21tb24ubWVudS5wcmludGVyLmZyaWVuZGx5IiAvPiAtLT4KKyAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gVGhlIGhvbWUgbWVudSBkZWZpbml0aW9uIC0tPgorPGRlZmluaXRpb24gbmFtZT0iY29tbW9uLm1lbnUuaG9tZSIgcGF0aD0iL2xheW91dHMvbWVudS5qc3AiID4KKyAgPHB1dCBuYW1lPSJ0aXRsZSIgdmFsdWU9IlRpbGVzIiAvPgorICA8cHV0TGlzdCBuYW1lPSJpdGVtcyIgPgorICAgIDxpdGVtIHZhbHVlPSJUaWxlcyBIb21lIiAgICAgbGluaz0iL2luZGV4LmpzcCIgLz4KKyAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gUHJpbnRlciBmcmllbmRseSBtZW51IGRlZmluaXRpb24gLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJjb21tb24ubWVudS5leGFtcGxlcyIgcGF0aD0iL2xheW91dHMvbWVudS5qc3AiID4KKyAgPHB1dCBuYW1lPSJ0aXRsZSIgdmFsdWU9IkV4YW1wbGVzIiAvPgorICA8cHV0TGlzdCBuYW1lPSJpdGVtcyIgPgorICAgIDxpdGVtIHZhbHVlPSJIb21lIiAgICAgbGluaz0iL2V4YW1wbGVzL2luZGV4LmpzcCIgLz4KKyAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gRG9jdW1lbnRhdGlvbiBtZW51IGRlZmluaXRpb24gdjEuMS0tPgorPGRlZmluaXRpb24gbmFtZT0iY29tbW9uLm1lbnUuZG9jIiBwYXRoPSIvbGF5b3V0cy9tZW51LmpzcCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iRG9jdW1lbnRhdGlvbiIgLz4KKyAgICA8cHV0TGlzdCBuYW1lPSJpdGVtcyIgPgorICAgICAgPGl0ZW0gdmFsdWU9IkhvbWUiICAgICAgICAgICBsaW5rPSIvZG9jL2luZGV4LmpzcCIgIC8+CisgICAgICA8aXRlbSB2YWx1ZT0iTGl2ZSBFeGFtcGxlcyIgIGxpbms9Ii9leGFtcGxlcy9pbmRleC5qc3AiICAvPgorICAgICAgPGl0ZW0gdmFsdWU9IlF1aWNrIG92ZXJ2aWV3IiBsaW5rPSIvdGVzdC9xdWlja092ZXJ2aWV3LmpzcCIgIC8+CisgICAgICA8IS0tCisgICAgICA8aXRlbSB2YWx1ZT0iVHV0b3JpYWwiICAgICAgICAgICAgICBsaW5rPSIvZG9jL3R1dG9yaWFsLmpzcCIgIC8+CisgICAgICAtLT4KKyAgICAgIDxpdGVtIHZhbHVlPSJUdXRvcmlhbCBMaXZlIEV4YW1wbGVzIiBsaW5rPSIvdHV0b3JpYWwvaW5kZXguanNwIiAvPgorCSAgPCEtLQorICAgICAgPGl0ZW0gdmFsdWU9IlRpbGVzIFRhZ3MiICAgICBsaW5rPSIvZG9jL3RpbGVzVGFncy5qc3AiIC8+CisgICAgICA8aXRlbSB2YWx1ZT0iRG93bmxvYWQiICAgICAgIGxpbms9Ii9kb2MvZG93bmxvYWQuanNwIiAvPgorICAgICAgPGl0ZW0gdmFsdWU9Ikluc3RhbGxhdGlvbiIgICBsaW5rPSIvZG9jL2luc3RhbGxhdGlvbi5qc3AiIC8+CisgICAgICA8aXRlbSB2YWx1ZT0iVXNlciBHdWlkZSIJICAgbGluaz0iL2RvYy91c2VyR3VpZGUuanNwIiAvPgorICAgICAgPGl0ZW0gdmFsdWU9IkphdmFkb2MiICAgICAgICBsaW5rPSIvYXBpL2luZGV4Lmh0bWwiIC8+CisgICAgICA8aXRlbSB2YWx1ZT0iU3RydXRzIEhvbWUiICAgICAgICAgICAgbGluaz0iaHR0cDovL3d3dy5hcGFjaGUub3JnIgorICAgICAgICAgICAgaWNvbj0iL2ltYWdlcy9zdHJ1dHMtcG93ZXIuZ2lmIiAvPgorCSAgLS0+CisgICAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gUHJpbnRlciBmcmllbmRseSBtZW51IGRlZmluaXRpb24gLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJjb21tb24ubWVudS5wcmludGVyLmZyaWVuZGx5IiBwYXRoPSIvbGF5b3V0cy9tZW51LmpzcCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iUHJpbnRlciBWZXJzaW9ucyIgLz4KKyAgPHB1dExpc3QgbmFtZT0iaXRlbXMiID4KKyAgICA8aXRlbSB2YWx1ZT0iUXVpY2sgT3ZlcnZpZXciICAgICBsaW5rPSIvdGVzdC90ZXN0QWxsLmpzcCIgLz4KKyAgICA8aXRlbSB2YWx1ZT0iVHV0b3JpYWwiICAgICAgICAgICBsaW5rPSIvZG9jL3R1dG9yaWFsQm9keS5odG1sIiAvPgorICAgIDxpdGVtIHZhbHVlPSJVc2VyIEd1aWRlIiAgICAgICAgIGxpbms9Ii9kb2MvdXNlckd1aWRlQm9keS5odG1sIiAvPgorICAgIDxpdGVtIHZhbHVlPSJPdmVydmlldyAob2xkKSIgIAkgbGluaz0iL2RvYy9vdmVydmlld0JvZHkuaHRtbCIgLz4KKyAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCis8L3RpbGVzLWRlZmluaXRpb25zPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL1dFQi1JTkYvdGlsZXMtZG9jLWRlZnMueG1sIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL1dFQi1JTkYvdGlsZXMtZG9jLWRlZnMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiMWE1ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi90aWxlcy1kb2MtZGVmcy54bWwKQEAgLTAsMCArMSwxMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+CisKKyA8IURPQ1RZUEUgdGlsZXMtZGVmaW5pdGlvbnMgUFVCTElDCisgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgVGlsZXMgQ29uZmlndXJhdGlvbiAxLjEvL0VOIgorICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy90aWxlcy1jb25maWdfMV8xLmR0ZCI+CisKKzwhLS0gRGVmaW5pdGlvbnMgZm9yIFRpbGVzIGRvY3VtZW50YXRpb24gICAtLT4KKworPHRpbGVzLWRlZmluaXRpb25zPgorCisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgIDwhLS0gTWFzdGVyIGRlZmluaXRpb24gIAkJCQkJCQkJCS0tPgorICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorCisgIDwhLS0gRG9jIGluZGV4IHBhZ2UgZGVzY3JpcHRpb24gIC0tPgorICA8ZGVmaW5pdGlvbiBuYW1lPSJkb2MubWFpbkxheW91dCIgcGF0aD0iL2xheW91dC9jbGFzc2ljTGF5b3V0LmpzcCI+CisJICA8cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRpbGVzIExpYnJhcnkgRG9jdW1lbnRhdGlvbiIgLz4KKwkgIDxwdXQgbmFtZT0iaGVhZGVyIiB2YWx1ZT0iL2NvbW1vbi9oZWFkZXIuanNwIiAvPgorCSAgPHB1dCBuYW1lPSJtZW51IiAgIHZhbHVlPSJkb2MubWVudS5tYWluIiAvPgorCSAgPHB1dCBuYW1lPSJmb290ZXIiIHZhbHVlPSIvY29tbW9uL2Zvb3Rlci5qc3AiIC8+CisJICA8cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9ImRvYy5wb3J0YWwuYm9keSIgLz4KKyAgPC9kZWZpbml0aW9uPgorCisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgIDwhLS0gTWFpbiBwYWdlIGJvZHkgZGVmaW5pdGlvbnMgIAkJCQkJCQkJCS0tPgorICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorCisgIDxkZWZpbml0aW9uIG5hbWU9ImRvYy5wb3J0YWwuYm9keSIgcGF0aD0iL2xheW91dC9jb2x1bW5zTGF5b3V0LmpzcCI+CisgICAgPHB1dCBuYW1lPSJudW1Db2xzIiB2YWx1ZT0iMiIgLz4KKyAgICA8cHV0TGlzdCBuYW1lPSJsaXN0MCIgPgorICAgICAgPGFkZCB2YWx1ZT0iL2RvYy9wb3J0YWwvd2VsY29tZS5qc3AiIC8+CisgICAgICA8YWRkIHZhbHVlPSIvZG9jL3BvcnRhbC9mZWF0dXJlcy5qc3AiIC8+CisgICAgICA8IS0tPGFkZCB2YWx1ZT0iL2RvYy9wb3J0YWwvdG9kby5qc3AiIC8+IC0tPgorICAgICAgPGFkZCB2YWx1ZT0iL2RvYy9wb3J0YWwvZG9jdW1lbnRhdGlvbi5qc3AiIC8+CisgICAgPC9wdXRMaXN0PgorICAgIDxwdXRMaXN0IG5hbWU9Imxpc3QxIiA+CisgICAgICA8YWRkIHZhbHVlPSIvZG9jL3BvcnRhbC9uZXdzLmpzcCIgLz4KKyAgICAgIDxhZGQgdmFsdWU9Ii9kb2MvcG9ydGFsL2Rvd25sb2FkLmpzcCIgLz4KKyAgICAgIDxhZGQgdmFsdWU9Ii9kb2MvcG9ydGFsL3RpbGVzQ29tcHNUZW1wbGF0ZXMuanNwIiAvPgorICAgICAgPGFkZCB2YWx1ZT0iL2RvYy9wb3J0YWwvc3RydXRzSW50ZWdyYXRpb24uanNwIiAvPgorICAgICAgPGFkZCB2YWx1ZT0iL2RvYy9wb3J0YWwvY29tbWVudHMuanNwIiAvPgorICAgICAgPGFkZCB2YWx1ZT0iL2RvYy9wb3J0YWwvcmV2aXNpb25zLmpzcCIgLz4KKyAgICA8L3B1dExpc3Q+CisgIDwvZGVmaW5pdGlvbj4KKyAgCisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgIDwhLS0gTWVudXMgZGVmaW5pdGlvbnMgIAkJCQkJCQkJCS0tPgorICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorCisgIDwhLS0gTWVudSBiYXIgZGVmaW5pdGlvbiAtLT4KKzxkZWZpbml0aW9uIG5hbWU9ImRvYy5tZW51Lm1haW4iIHBhdGg9Ii9sYXlvdXQvdmJveExheW91dC5qc3AiID4KKyAgPHB1dExpc3QgbmFtZT0iY29tcG9uZW50c0xpc3QiID4KKyAgICA8YWRkIHZhbHVlPSJkb2MubWVudS5saW5rcyIgLz4KKyAgICA8YWRkIHZhbHVlPSJkb2MubWVudS50YWdsaWIucmVmZXJlbmNlcyIgLz4KKyAgICA8YWRkIHZhbHVlPSJkb2MubWVudS5wcmludGVyLmZyaWVuZGx5IiAvPgorICAgIDxhZGQgdmFsdWU9ImRvYy5tZW51Lm9sZC5kb2N1bWVudHMiIC8+CisgIDwvcHV0TGlzdD4KKzwvZGVmaW5pdGlvbj4KKworICA8IS0tIERvY3VtZW50YXRpb24gbWVudSBkZWZpbml0aW9uIHYxLjEtLT4KKzxkZWZpbml0aW9uIG5hbWU9ImRvYy5tZW51LmxpbmtzIiBwYXRoPSIvbGF5b3V0cy9tZW51LmpzcCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iRG9jdW1lbnRhdGlvbiIgLz4KKyAgICA8cHV0TGlzdCBuYW1lPSJpdGVtcyIgPgorICAgICAgPGl0ZW0gdmFsdWU9IkhvbWUiICAgICAgICAgICBsaW5rPSIvaW5kZXguanNwIiAgLz4KKyAgICAgIDxpdGVtIHZhbHVlPSJMaXZlIEV4YW1wbGVzIChuZXcpIiBsaW5rPSIvZXhhbXBsZXMvaW5kZXguanNwIiAgLz4KKyAgICAgIDwhLS0KKwkgIDxpdGVtPiA8dmFsdWU+Q29tbWVudGVkIEV4YW1wbGVzPC92YWx1ZT4gCisJICAJCTxsaW5rPi9leGFtcGxlcy9pbmRleC5qc3A8L2xpbms+CisJCQk8Y2xhc3N0eXBlPm9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLlNpbXBsZU1lbnVJdGVtPC9jbGFzc3R5cGU+CisJICA8L2l0ZW0+CisJICAtLT4KKyAgICAgIDxpdGVtIHZhbHVlPSJRdWljayBvdmVydmlldyIgbGluaz0iL2RvYy9xdWlja092ZXJ2aWV3LmpzcCIgIC8+CisgICAgICA8IS0tCisgICAgICA8aXRlbSB2YWx1ZT0iVHV0b3JpYWwiICAgICAgIGxpbms9Ii9kb2MvdHV0b3JpYWwuanNwIiAgLz4KKyAgICAgIC0tPgorICAgICAgPGl0ZW0gdmFsdWU9IlR1dG9yaWFsIExpdmUgRXhhbXBsZXMiIGxpbms9Ii90dXRvcmlhbC9pbmRleC5qc3AiIC8+CisgICAgICA8aXRlbSB2YWx1ZT0iRG93bmxvYWQiICAgICAgIGxpbms9Ii9kb2MvZG93bmxvYWQuanNwIiAvPgorICAgICAgPGl0ZW0gdmFsdWU9Ikluc3RhbGxhdGlvbiIgICBsaW5rPSIvZG9jL2luc3RhbGxhdGlvbi5qc3AiIC8+CisgICAgICA8aXRlbSB2YWx1ZT0iVXNlciBHdWlkZSIJICAgbGluaz0iL2RvYy91c2VyR3VpZGUuanNwIiAvPgorICAgICAgPGl0ZW0gdmFsdWU9IkphdmFkb2MiICAgICAgICBsaW5rPSIvYXBpL2luZGV4Lmh0bWwiIC8+CisgICAgICA8aXRlbSB2YWx1ZT0iU3RydXRzIEhvbWUiICAgIGxpbms9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZyIgICBpY29uPSIvaW1hZ2VzL3N0cnV0cy1wb3dlci5naWYiICAgICAgICAKKwkJCWNsYXNzdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuU2ltcGxlTWVudUl0ZW0iIC8+CisgICAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gUHJpbnRlciBmcmllbmRseSBtZW51IGRlZmluaXRpb24gLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJkb2MubWVudS5wcmludGVyLmZyaWVuZGx5IiBwYXRoPSIvbGF5b3V0cy9tZW51LmpzcCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iUHJpbnRlciBWZXJzaW9ucyIgLz4KKyAgPHB1dExpc3QgbmFtZT0iaXRlbXMiID4KKyAgICA8aXRlbSB2YWx1ZT0iUXVpY2sgT3ZlcnZpZXciICAgICBsaW5rPSIvdGVzdC90ZXN0QWxsLmpzcCIgLz4KKyAgICA8aXRlbSB2YWx1ZT0iVHV0b3JpYWwiICAgICAgICAgICBsaW5rPSIvZG9jL3R1dG9yaWFsQm9keS5odG1sIiAvPgorICAgIDxpdGVtIHZhbHVlPSJVc2VyIEd1aWRlIiAgICAgICAgIGxpbms9Ii9kb2MvdXNlckd1aWRlQm9keS5odG1sIiAvPgorICAgIDxpdGVtIHZhbHVlPSJPdmVydmlldyAob2xkKSIgIAkgbGluaz0iL2RvYy9vdmVydmlld0JvZHkuaHRtbCIgLz4KKyAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gVGFnbGliIG1lbnUgZGVmaW5pdGlvbiAtLT4KKzxkZWZpbml0aW9uIG5hbWU9ImRvYy5tZW51LnRhZ2xpYi5yZWZlcmVuY2VzIiBwYXRoPSIvbGF5b3V0cy9tZW51LmpzcCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iVGFnIExpYnJhcnkgUmVmZXJlbmNlIiAvPgorICAgIDxwdXRMaXN0IG5hbWU9Iml0ZW1zIiA+CisgICAgICA8aXRlbSB2YWx1ZT0iVGlsZXMgVGFncyIgICAgIGxpbms9Ii9kb2MvdGlsZXNUYWdzLmpzcCIgLz4KKyAgICAgIDwhLS0gPGl0ZW0gdmFsdWU9IkV4dGVuc2lvbiBUYWdzIChvbGQpIiAgIGxpbms9Ii9kb2MvZXh0ZW5zaW9uc1RhZ3MuanNwIiAvPiAtLT4KKyAgICA8L3B1dExpc3Q+Cis8L2RlZmluaXRpb24+CisKKyAgPCEtLSBPbGRpZXMgbWVudSBkZWZpbml0aW9uIC0tPgorPGRlZmluaXRpb24gbmFtZT0iZG9jLm1lbnUub2xkLmRvY3VtZW50cyIgcGF0aD0iL2xheW91dHMvbWVudS5qc3AiID4KKyAgPHB1dCBuYW1lPSJ0aXRsZSIgdmFsdWU9Ik9sZCBEb2N1bWVudHMiIC8+CisgIDxwdXRMaXN0IG5hbWU9Iml0ZW1zIiA+CisgICAgPGl0ZW0gdmFsdWU9Ik92ZXJ2aWV3IChvbGQpIiAgICAgbGluaz0iL2RvYy9vdmVydmlldy5qc3AiIC8+CisgIDwvcHV0TGlzdD4KKzwvZGVmaW5pdGlvbj4KKworCis8L3RpbGVzLWRlZmluaXRpb25zPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL1dFQi1JTkYvdGlsZXMtZXhhbXBsZXMtZGVmcy54bWwgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi90aWxlcy1leGFtcGxlcy1kZWZzLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjM1OTM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL1dFQi1JTkYvdGlsZXMtZXhhbXBsZXMtZGVmcy54bWwKQEAgLTAsMCArMSw0MDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+CisKKyA8IURPQ1RZUEUgdGlsZXMtZGVmaW5pdGlvbnMgUFVCTElDCisgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgVGlsZXMgQ29uZmlndXJhdGlvbiAxLjEvL0VOIgorICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy90aWxlcy1jb25maWdfMV8xLmR0ZCI+CisKKzwhLS0gVGlsZXMgZGVmaW5pdGlvbnMgICAtLT4KKworPHRpbGVzLWRlZmluaXRpb25zPgorCisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgIDwhLS0gTWFzdGVyIGxheW91dCAgCQkJCQkJCQkJLS0+CisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisKKyAgPCEtLSBNYXN0ZXIgbGF5b3V0IGFuZCBkZWZhdWx0IHRpbGVzIHVzZWQgYnkgYWxsIHBhZ2VzIC0tPgorICA8ZGVmaW5pdGlvbiBuYW1lPSJleGFtcGxlcy5tYXN0ZXJQYWdlIiBwYXRoPSIvbGF5b3V0cy9jbGFzc2ljTGF5b3V0LmpzcCI+CisJICA8cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRpbGVzIDEuMSBFeGFtcGxlcyIgLz4KKwkgIDxwdXQgbmFtZT0iaGVhZGVyIiB2YWx1ZT0iL2V4YW1wbGVzL3RpbGVzL2hlYWRlci5qc3AiIC8+CisJICA8cHV0IG5hbWU9Im1lbnUiICAgdmFsdWU9ImV4YW1wbGVzLm1lbnUuYmFyIiAvPgorCSAgPHB1dCBuYW1lPSJmb290ZXIiIHZhbHVlPSIvZXhhbXBsZXMvdGlsZXMvZm9vdGVyLmpzcCIgLz4KKwkgIDxwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iL2V4YW1wbGVzL3RpbGVzL2JvZHkuanNwIiAvPgorICA8L2RlZmluaXRpb24+CisKKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKyAgPCEtLSBUZXN0IGNvbXBsZXggZGVmaW5pdGlvbiBjb25zdHJ1Y3QJCQkJCQktLT4KKyAgPCEtLSBUaGVzZSBkZWZpbml0aW9ucyBhcmUgbm90IGludGVuZGVkIHRvIGJlIHVzZWQuICAgICAgICAgICAtLT4KKyAgPCEtLSBUaGV5IGFyZQlpbmNsdWRlZCB0byBzdHJldGNoIHRoZSBEaWdlc3RlciBydWxlcy4gCQkJCS0tPgorICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorCisgIDwhLS0gVGVzdCBuZXN0ZWQgbGlzdCAtLT4KKzxkZWZpbml0aW9uIG5hbWU9InRlc3QubmVzdGVkLmxpc3QiIHBhdGg9Ii9sYXlvdXRzL3Zib3hMYXlvdXQuanNwIiA+CisgIDxwdXRMaXN0IG5hbWU9Imxpc3QiID4KKyAgICA8aXRlbSB2YWx1ZT0iaXRlbTEiIGxpbms9Ii9leGFtcGxlcy90YWJzLmpzcCIvPgorICAgIDxpdGVtIHZhbHVlPSJpdGVtMiIgbGluaz0iL2V4YW1wbGVzL3RhYnMuanNwIi8+CisgICAgPGl0ZW0gdmFsdWU9Iml0ZW0zIiBsaW5rPSIvZXhhbXBsZXMvdGFicy5qc3AiLz4KKwk8YmVhbiBjbGFzc3R5cGU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLlNpbXBsZU1lbnVJdGVtIj4KKwkgIDxzZXQtcHJvcGVydHkgcHJvcGVydHk9ImxpbmsiIHZhbHVlPSJhTGluazEiLz4KKwkgIDxzZXQtcHJvcGVydHkgcHJvcGVydHk9InZhbHVlIiB2YWx1ZT0iYVZhbHVlMSIvPgorCTwvYmVhbj4KKyAgICA8cHV0TGlzdCBuYW1lPSJsaXN0IiA+CisgICAgICA8aXRlbSB2YWx1ZT0ibmVzdGVkLml0ZW0xIiBsaW5rPSIvZXhhbXBsZXMvdGFicy5qc3AiLz4KKyAgICAgIDxwdXRMaXN0IG5hbWU9Imxpc3QiID4KKyAgICAgICAgPGl0ZW0gdmFsdWU9Im5lc3RlZC5uZXN0ZWQuaXRlbTEiIGxpbms9Ii9leGFtcGxlcy90YWJzLmpzcCIvPgorICAgICAgICA8aXRlbSB2YWx1ZT0ibmVzdGVkLm5lc3RlZC5pdGVtMiIgbGluaz0iL2V4YW1wbGVzL3RhYnMuanNwIi8+CisgICAgICA8L3B1dExpc3Q+CisgICAgICA8aXRlbSB2YWx1ZT0ibmVzdGVkLml0ZW0yIiBsaW5rPSIvZXhhbXBsZXMvdGFicy5qc3AiLz4KKyAgICA8L3B1dExpc3Q+CisgIDwvcHV0TGlzdD4KKzwvZGVmaW5pdGlvbj4KKworICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorICA8IS0tIE1lbnUgYmFyIGFuZCBzdWJtZW51cyBkZWZpbml0aW9ucyAgCQkJCQkJCQkJLS0+CisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisKKyAgPCEtLSBNZW51IGJhciBkZWZpbml0aW9uIC0tPgorICA8IS0tIFNvbWUgZGVmaW5pdGlvbnMgY29tZSBmcm9tIG90aGVyIGRlZmluaXRpb24gZmlsZXMgKGV4IDogZG9jLm1lbnUuKikgLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJleGFtcGxlcy5tZW51LmJhciIgcGF0aD0iL2xheW91dHMvdmJveExheW91dC5qc3AiID4KKyAgPHB1dExpc3QgbmFtZT0ibGlzdCIgPgorICAgIDxhZGQgdmFsdWU9ImNvbW1vbi5tZW51LmhvbWUiIC8+CisgICAgPGFkZCB2YWx1ZT0iZXhhbXBsZXMudXNlck1lbnUiIC8+CisgICAgPGFkZCB2YWx1ZT0iZXhhbXBsZXMubWVudS5saW5rcyIgLz4KKyAgICA8YWRkIHZhbHVlPSJjb21tb24ubWVudS5kb2MiIC8+CisgICAgPGFkZCB2YWx1ZT0iZXhhbXBsZXMubWVudS5zZXR0aW5ncyIgLz4KKyAgICA8YWRkIHZhbHVlPSJleGFtcGxlcy5tZW51LmFkbWluIiAvPgorICA8L3B1dExpc3Q+Cis8L2RlZmluaXRpb24+CisKKyAgPCEtLQorICBNZW51cyBjb21tb24gYW5jZXN0b3IgZGVmaW5pdGlvbgorICBUaGlzIGRlZmluaXRpb24gaXMgdXNlZCBhcyBjb21tb24gYW5jZXN0b3IgZm9yIG1lbnUgZGVmaW5pdGlvbnMuCisgIEl0IGFsbG93cyB0byBkZWZpbmUgY29tbW9uIGF0dHJpYnV0ZXMgaW4gb25lIHBsYWNlLgorCUFjdHVhbGx5LCBpdCBvbmx5IGRlZmluZXMgdGhlIGxheW91dCB1c2VkIHRvIHJlbmRlciBtZW51cy4KKyAgIC0tPgorPGRlZmluaXRpb24gbmFtZT0iZXhhbXBsZXMubWVudS5yb290IiBwYXRoPSIvbGF5b3V0cy9tZW51LmpzcCIgID4KKzwvZGVmaW5pdGlvbj4KKworICA8IS0tCisgIFVzZXIgbWVudSBkZWZpbml0aW9uCisgIFRoaXMgbWVudSBpcyBjdXN0b21pemFibGUgYnkgdXNlci4KKyAgRGVmaW5pdGlvbiBvbmx5IGNvbnRhaW5zIGRlZmF1bHQgaXRlbXMuCisgIC0tPgorPGRlZmluaXRpb24gbmFtZT0iZXhhbXBsZXMudXNlck1lbnUiIGV4dGVuZHM9ImV4YW1wbGVzLm1lbnUucm9vdCIKKyAgICAgICAgICAgIGNvbnRyb2xsZXJDbGFzcz0ib3JnLmFwYWNoZS5zdHJ1dHMud2ViYXBwLnRpbGVzLnBvcnRhbC5Vc2VyTWVudUFjdGlvbiIgID4KKyAgPHB1dCBuYW1lPSJjYXRhbG9nU2V0dGluZ3MiIHZhbHVlPSJleGFtcGxlcy5teU1lbnUuY2F0YWxvZy5zZXR0aW5ncyIvPgorICA8cHV0IG5hbWU9ImNhdGFsb2dOYW1lIiB2YWx1ZT0iZXhhbXBsZXMucG9ydGFsLm1lbnVDYXRhbG9nIi8+CisgIDxwdXQgbmFtZT0idGl0bGUiIHZhbHVlPSJNeSBNZW51IiAvPgorICAgIDxwdXRMaXN0IG5hbWU9Iml0ZW1zIiA+CisgICAgICA8aXRlbSB2YWx1ZT0iY3VzdG9taXplIiAgICBsaW5rPSIvZXhhbXBsZXMvbXlNZW51U2V0dGluZ3MuanNwIiAvPgorICAgIDwvcHV0TGlzdD4KKzwvZGVmaW5pdGlvbj4KKworICA8IS0tCisgIE1lbnUgYmFyIGRlZmluaXRpb24gdXNlZCBieSBjdXN0b21pemFibGUgbWVudSBjYXRhbG9nCisgIFRoaXMgZGVmaW5pdGlvbiBkZWNsYXJlcyBhdmFpbGFibGUgaXRlbXMgaW4gdGhlIHVzZXIgbWVudSBjYXRhbG9nLgorICAtLT4KKzxkZWZpbml0aW9uIG5hbWU9ImV4YW1wbGVzLm15TWVudS5jYXRhbG9nLnNldHRpbmdzIiA+CisgIDxwdXRMaXN0IG5hbWU9Imxpc3QiID4KKyAgICA8YWRkIHZhbHVlPSJleGFtcGxlcy51c2VyTWVudSIgLz4KKyAgICA8YWRkIHZhbHVlPSJleGFtcGxlcy5tZW51LmxpbmtzIiAvPgorICAgIDxhZGQgdmFsdWU9ImV4YW1wbGVzLm1lbnUuc2V0dGluZ3MiIC8+CisgICAgPGFkZCB2YWx1ZT0iZXhhbXBsZXMubWVudS5hZG1pbiIgLz4KKyAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gRXhhbXBsZXMgbWFpbiBtZW51IGRlZmluaXRpb24gLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJleGFtcGxlcy5tZW51LmxpbmtzIiBleHRlbmRzPSJleGFtcGxlcy5tZW51LnJvb3QiID4KKyAgPHB1dCBuYW1lPSJ0aXRsZSIgdmFsdWU9IkV4YW1wbGVzIiAvPgorICA8cHV0TGlzdCBuYW1lPSJpdGVtcyIgPgorICAgIDxpdGVtIHZhbHVlPSJFeGFtcGxlcyBIb21lIgkJCWxpbms9Ii9leGFtcGxlcy9pbmRleC5qc3AiIC8+CisgICAgPGl0ZW0gdmFsdWU9IlBvcnRhbCIgICAgCQkJbGluaz0iL2V4YW1wbGVzL3BvcnRhbC5qc3AiIC8+CisgICAgPGl0ZW0gdmFsdWU9Im15IFBvcnRhbCIgICAgICAgICAgICAgbGluaz0iL2V4YW1wbGVzL215UG9ydGFsLmpzcCIgLz4KKyAgICA8aXRlbSB2YWx1ZT0ibXkgUG9ydGFsIFNldHRpbmdzIglsaW5rPSIvZXhhbXBsZXMvbXlQb3J0YWxTZXR0aW5ncy5qc3AiIC8+CisgICAgPGl0ZW0gdmFsdWU9Im15IE1lbnUgU2V0dGluZ3MiCQlsaW5rPSIvZXhhbXBsZXMvbXlNZW51U2V0dGluZ3MuanNwIiAvPgorICAgIDxpdGVtIHZhbHVlPSJUYWJzIChjaG9vc2VuIHBhZ2VzKSIJbGluaz0iL2V4YW1wbGVzL3RhYnMuanNwIi8+CisgICAgPGl0ZW0gdmFsdWU9IlRhYnMgKFN1bW1hcmllcykiCQlsaW5rPSIvZXhhbXBsZXMvc3VtbWFyaWVzVGFicy5qc3AiIC8+CisgICAgPGl0ZW0gdmFsdWU9IlJzcyBDaGFubmVscyIJCQlsaW5rPSIvZXhhbXBsZXMvcnNzQ2hhbm5lbHMuanNwIi8+CisgIDwvcHV0TGlzdD4KKzwvZGVmaW5pdGlvbj4KKworICA8IS0tIFByZWZlcmVuY2VzIG1lbnUgZGVmaW5pdGlvbiAtLT4KKzxkZWZpbml0aW9uIG5hbWU9ImV4YW1wbGVzLm1lbnUuc2V0dGluZ3MiIGV4dGVuZHM9ImV4YW1wbGVzLm1lbnUucm9vdCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iUHJlZmVyZW5jZXMiIC8+CisgICAgPHB1dExpc3QgbmFtZT0iaXRlbXMiID4KKyAgICA8aXRlbSB2YWx1ZT0ibXkgUG9ydGFsIFNldHRpbmdzIglsaW5rPSIvZXhhbXBsZXMvbXlQb3J0YWxTZXR0aW5ncy5qc3AiLz4KKyAgICA8aXRlbSB2YWx1ZT0ibXkgTWVudSBTZXR0aW5ncyIJCWxpbms9Ii9leGFtcGxlcy9teU1lbnVTZXR0aW5ncy5qc3AiIC8+CisgICAgPGl0ZW0gdmFsdWU9Im15IExheW91dCBTZXR0aW5ncyIJbGluaz0iL2V4YW1wbGVzL3NraW5TZXR0aW5ncy5qc3AiIC8+CisgICAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gYWRtaW4gbWVudSBkZWZpbml0aW9uIC0tPgorPGRlZmluaXRpb24gbmFtZT0iZXhhbXBsZXMubWVudS5hZG1pbiIgZXh0ZW5kcz0iZXhhbXBsZXMubWVudS5yb290IiA+CisgIDxwdXQgbmFtZT0idGl0bGUiIHZhbHVlPSJBZG1pbiIgLz4KKyAgPHB1dExpc3QgbmFtZT0iaXRlbXMiID4KKyAgICA8aXRlbSB2YWx1ZT0iUmVsb2FkIiAgICAgbGluaz0iL2FkbWluL3RpbGVzL3JlbG9hZC5kbyIgICAgICAgLz4KKyAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgIDwhLS0gSW5kZXggcG9ydGFsIHBhZ2UgZGVmaW5pdGlvbnMgIAkJCQkJCQkJCS0tPgorICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorCisgICAgPCEtLSBJbmRleCBwYWdlIC0tPgorICA8ZGVmaW5pdGlvbiBuYW1lPSJleGFtcGxlcy5pbmRleC5wYWdlIiBleHRlbmRzPSJleGFtcGxlcy5tYXN0ZXJQYWdlIj4KKwkgIDxwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iVGlsZXMgMS4xIEV4YW1wbGUgU3VtbWFyaWVzIiAvPgorCSAgPHB1dCBuYW1lPSJib2R5IiAgIHZhbHVlPSJleGFtcGxlcy5pbmRleC5wb3J0YWwuYm9keSIgLz4KKyAgPC9kZWZpbml0aW9uPgorCisgICAgPCEtLSBQb3J0YWwgQm9keSBkZWNsYXJhdGlvbi0tPgorICA8ZGVmaW5pdGlvbiBuYW1lPSJleGFtcGxlcy5pbmRleC5wb3J0YWwuYm9keSIgcGF0aD0iL2xheW91dHMvY29sdW1uc0xheW91dC5qc3AiID4KKwkgIDxwdXQgbmFtZT0ibnVtQ29scyIgdmFsdWU9IjIiIC8+CisJICA8cHV0TGlzdCBuYW1lPSJsaXN0MCIgPgorCSAgICA8YWRkIHZhbHVlPSIvZXhhbXBsZXMvdGlsZXMvcG9ydGFsU3VtbWFyeS5qc3AiIC8+CisJICAgIDxhZGQgdmFsdWU9Ii9leGFtcGxlcy90aWxlcy9teVBvcnRhbFN1bW1hcnkuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvZXhhbXBsZXMvdGlsZXMvcnNzQ2hhbm5lbHNTdW1tYXJ5LmpzcCIgLz4KKwkgICAgPGFkZCB2YWx1ZT0iL2V4YW1wbGVzL3RpbGVzL215TGF5b3V0U3VtbWFyeS5qc3AiIC8+CisJICAgIDxhZGQgdmFsdWU9Ii9leGFtcGxlcy90aWxlcy9hZG1pblN1bW1hcnkuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvZXhhbXBsZXMvdGlsZXMvY29tcG9uZW50c1N1bW1hcnkuanNwIiAvPgorCSAgPC9wdXRMaXN0PgorCSAgPHB1dExpc3QgbmFtZT0ibGlzdDEiID4KKwkgICAgPGFkZCB2YWx1ZT0iL2V4YW1wbGVzL3RpbGVzL21lbnVTdW1tYXJ5LmpzcCIgLz4KKwkgICAgPGFkZCB2YWx1ZT0iL2V4YW1wbGVzL3RpbGVzL215TWVudVN1bW1hcnkuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvZXhhbXBsZXMvdGlsZXMvdGFic1N1bW1hcnkuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvZXhhbXBsZXMvdGlsZXMvaTE4blN1bW1hcnkuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvZXhhbXBsZXMvdGlsZXMvbXVsdGlDaGFubmVsc1N1bW1hcnkuanNwIiAvPgorCSAgPC9wdXRMaXN0PgorICA8L2RlZmluaXRpb24+CisKKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKyAgPCEtLSBQb3J0YWwgcGFnZSBkZWZpbml0aW9ucyAgCQkJCQkJCQkJLS0+CisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisKKyAgICA8IS0tIFBvcnRhbCBwYWdlIC0tPgorICA8ZGVmaW5pdGlvbiBuYW1lPSJleGFtcGxlcy5wb3J0YWwucGFnZSIgZXh0ZW5kcz0iZXhhbXBsZXMubWFzdGVyUGFnZSI+CisJICA8cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRpbGVzIDEuMSBQb3J0YWwiIC8+CisJICA8cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9ImV4YW1wbGVzLnBvcnRhbC5ib2R5IiAvPgorICA8L2RlZmluaXRpb24+CisKKyAgICA8IS0tIFBvcnRhbCBCb2R5IGRlY2xhcmF0aW9uLS0+CisgIDxkZWZpbml0aW9uIG5hbWU9ImV4YW1wbGVzLnBvcnRhbC5ib2R5IiBwYXRoPSIvbGF5b3V0cy9jb2x1bW5zTGF5b3V0LmpzcCIKKyAgICAgICAgICAgICAgY29udHJvbGxlclVybD0iL2V4YW1wbGVzL215UG9ydGFsLmRvIiA+CisJICA8cHV0IG5hbWU9Im51bUNvbHMiIHZhbHVlPSIyIiAvPgorCSAgPHB1dExpc3QgbmFtZT0ibGlzdDAiID4KKwkgICAgPGFkZCB2YWx1ZT0iL2V4YW1wbGVzL3RpbGVzL3BvcnRhbC9sb2dpbi5qc3AiIC8+CisJICAgIDxhZGQgdmFsdWU9Ii9leGFtcGxlcy90aWxlcy9wb3J0YWwvbWVzc2FnZXMuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL25ld3NGZWVkLmpzcCIgLz4KKwkgICAgPCEtLTxhZGQgdmFsdWU9ImV4YW1wbGVzLm1lbnUuYmFyIiAvPi0tPgorCisJICA8L3B1dExpc3Q+CisJICA8cHV0TGlzdCBuYW1lPSJsaXN0MSIgPgorCSAgICA8YWRkIHZhbHVlPSIvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL2FkdmVydDMuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL3N0b2Nrcy5qc3AiIC8+CisJICAgIDxhZGQgdmFsdWU9Ii9leGFtcGxlcy90aWxlcy9wb3J0YWwvd2hhdHNOZXcuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL2FkdmVydDIuanNwIiAvPgorCSAgPC9wdXRMaXN0PgorCSAgICA8IS0tIGxhYmVscyB1c2VkIGJ5IGNhdGFsb2cgW29wdGlvbmFsXS0tPgorCSAgPHB1dExpc3QgbmFtZT0ibGFiZWxzMCIgPgorCSAgICA8YWRkIHZhbHVlPSJMb2dpbiIgLz4KKwkgICAgPGFkZCB2YWx1ZT0iWW91ciBNZXNzYWdlcyIgLz4KKwkgICAgPGFkZCB2YWx1ZT0iTmV3cyBGZWVkIiAvPgorCSAgICA8IS0tPGFkZCB2YWx1ZT0iTWVudSBCYXIiIC8+LS0+CisJICA8L3B1dExpc3Q+CisJICA8cHV0TGlzdCBuYW1lPSJsYWJlbHMxIiA+CisJICAgIDxhZGQgdmFsdWU9IkFkdmVydCAzIiAvPgorCSAgICA8YWRkIHZhbHVlPSJTdG9jayIgLz4KKwkgICAgPGFkZCB2YWx1ZT0iV2hhdCdzIG5ldyIgLz4KKwkgICAgPGFkZCB2YWx1ZT0iQWR2ZXJ0IDIiIC8+CisJICA8L3B1dExpc3Q+CisgIDwvZGVmaW5pdGlvbj4KKworICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorICA8IS0tIFBvcnRhbCBzZXR0aW5ncyBwYWdlIGRlZmluaXRpb25zICAJCQkJCQkJCQktLT4KKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKworICAgIDwhLS0gUG9ydGFsIHNldHRpbmdzIHBhZ2UgLS0+CisgIDxkZWZpbml0aW9uIG5hbWU9ImV4YW1wbGVzLnBvcnRhbC5zZXR0aW5ncy5wYWdlIiBleHRlbmRzPSJleGFtcGxlcy5tYXN0ZXJQYWdlIj4KKwkgIDxwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iVGlsZXMgMS4xIFBvcnRhbCBTZXR0aW5ncyIgLz4KKwkgIDxwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iZXhhbXBsZXMucG9ydGFsLnNldHRpbmdzLmJvZHkiIC8+CisgIDwvZGVmaW5pdGlvbj4KKworICAgIDwhLS0gUG9ydGFsIHNldHRpbmdzIEJvZHkgZGVjbGFyYXRpb24tLT4KKwk8IS0tIEV4dGVuZHMgcG9ydGFsIGJvZHkgdG8gcHJvdmlkZSB0aGUgc2FtZSBkZWZhdWx0IHNldCBvZiB0aWxlcyAtLT4KKyAgPGRlZmluaXRpb24gbmFtZT0iZXhhbXBsZXMucG9ydGFsLnNldHRpbmdzLmJvZHkiCisgICAgICAgICAgICAgIHBhdGg9Ii9leGFtcGxlcy90aWxlcy9teVBvcnRhbFNldHRpbmdzLmpzcCIKKyAgICAgICAgICAgICAgZXh0ZW5kcz0iZXhhbXBsZXMucG9ydGFsLmJvZHkiCisJCQkgIGNvbnRyb2xsZXJVcmw9Ii9leGFtcGxlcy9jb250cm9sbGVyL215UG9ydGFsU2V0dGluZ3MuZG8iID4KKyAgPC9kZWZpbml0aW9uPgorCisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgIDwhLS0gTWVudSBzZXR0aW5ncyBwYWdlIGRlZmluaXRpb25zICAJCQkJCQkJCQktLT4KKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKworICAgIDwhLS0gUG9ydGFsIHNldHRpbmdzIHBhZ2UgLS0+CisgIDxkZWZpbml0aW9uIG5hbWU9ImV4YW1wbGVzLnVzZXJNZW51LnNldHRpbmdzLnBhZ2UiIGV4dGVuZHM9ImV4YW1wbGVzLm1hc3RlclBhZ2UiPgorCSAgPHB1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJUaWxlcyAxLjEgTXkgTWVudSBTZXR0aW5ncyIgLz4KKwkgIDxwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iZXhhbXBsZXMudXNlck1lbnUuc2V0dGluZ3MuYm9keSIgLz4KKyAgPC9kZWZpbml0aW9uPgorCisgICAgPCEtLSBQb3J0YWwgc2V0dGluZ3MgQm9keSBkZWNsYXJhdGlvbi0tPgorCTwhLS0gRXh0ZW5kcyB1c2VyIG1lbnUgYm9keSB0byBwcm92aWRlIHRoZSBzYW1lIGRlZmF1bHQgcGFyYW1ldGVycyAtLT4KKyAgPGRlZmluaXRpb24gbmFtZT0iZXhhbXBsZXMudXNlck1lbnUuc2V0dGluZ3MuYm9keSIKKyAgICAgICAgICAgICAgcGF0aD0iL2V4YW1wbGVzL3RpbGVzL215TWVudVNldHRpbmdzLmpzcCIKKyAgICAgICAgICAgICAgZXh0ZW5kcz0iZXhhbXBsZXMudXNlck1lbnUiCisJCQkgIGNvbnRyb2xsZXJVcmw9Ii9leGFtcGxlcy9jb250cm9sbGVyL215TWVudVNldHRpbmdzLmRvIiA+CisJICA8cHV0TGlzdCBuYW1lPSJkZWZhdWx0Q2hvaWNlIiA+CisJICAgIDxhZGQgdmFsdWU9ImV4YW1wbGVzLnVzZXJNZW51IiAvPgorCSAgICA8YWRkIHZhbHVlPSJwb3J0YWwubWVudS5saW5rcyIgLz4KKwkgICAgPGFkZCB2YWx1ZT0icG9ydGFsLm1lbnUucHJlZmVyZW5jZXMiIC8+CisJICAgIDxhZGQgdmFsdWU9ImRvYy5tZW51LnRhZ2xpYi5yZWZlcmVuY2VzIiAvPgorCSAgICA8YWRkIHZhbHVlPSJkb2MubWVudS5wcmludGVyLmZyaWVuZGx5IiAvPgorCSAgICA8YWRkIHZhbHVlPSJkb2MubWVudS5vbGQuZG9jdW1lbnRzIiAvPgorCSAgPC9wdXRMaXN0PgorICA8L2RlZmluaXRpb24+CisKKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKyAgPCEtLSBUYWJzIHRlc3QgcGFnZSBhbmQgZGVmaW5pdGlvbnMgIAkJCQkJCQkJCS0tPgorICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorCisgICAgPCEtLSB0YWJzIHBhZ2UgLS0+CisgIDxkZWZpbml0aW9uIG5hbWU9ImV4YW1wbGVzLnRhYnMucGFnZSIgZXh0ZW5kcz0iZXhhbXBsZXMubWFzdGVyUGFnZSI+CisJICA8cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRpbGVzIDEuMSBUYWJzIGxheW91dCBleGFtcGxlIiAvPgorCSAgPHB1dCBuYW1lPSJib2R5IiAgIHZhbHVlPSJleGFtcGxlcy50YWJzLmJvZHkiIC8+CisgIDwvZGVmaW5pdGlvbj4KKworCSAgPCEtLSBib2R5IHVzaW5nIHRhYnMgLS0+CisgIDxkZWZpbml0aW9uIG5hbWU9ImV4YW1wbGVzLnRhYnMuYm9keSIgcGF0aD0iL2xheW91dHMvdGFic0xheW91dC5qc3AiID4KKwk8cHV0IG5hbWU9InNlbGVjdGVkSW5kZXgiICB2YWx1ZT0iMCIgLz4KKwk8cHV0IG5hbWU9InBhcmFtZXRlck5hbWUiICB2YWx1ZT0ic2VsZWN0ZWQiIC8+CisgICAgPHB1dExpc3QgbmFtZT0idGFiTGlzdCIgPgorICAgICAgPGl0ZW0gdmFsdWU9IkRvYyBIb21lIgkJbGluaz0iL2luZGV4LmpzcCIgLz4KKyAgICAgIDxpdGVtIHZhbHVlPSJRdWljayBvdmVydmlldyIJbGluaz0iL3Rlc3QvcXVpY2tPdmVydmlldy5kbyIgLz4KKyAgICAgIDwhLS0gPGl0ZW0gdmFsdWU9IlR1dG9yaWFsIgkJbGluaz0iL2RvYy90dXRvcmlhbC5qc3AiIC8+IC0tPgorICAgICAgPGl0ZW0gdmFsdWU9IkV4YW1wbGVzIEhvbWUiCWxpbms9Ii9leGFtcGxlcy9pbmRleC5qc3AiIC8+CisgICAgICA8aXRlbSB2YWx1ZT0iVHV0b3JpYWwgSG9tZSIJbGluaz0iL3R1dG9yaWFsL2luZGV4LmRvIiAvPgorICAgICAgPGl0ZW0gdmFsdWU9IkxvZ2luIgkJCWxpbms9Ii9leGFtcGxlcy90aWxlcy9wb3J0YWwvbG9naW4uanNwIiAvPgorICAgICAgPGl0ZW0gdmFsdWU9Ik1lc3NhZ2VzIgkJbGluaz0iL2V4YW1wbGVzL3RpbGVzL3BvcnRhbC9tZXNzYWdlcy5qc3AiIC8+CisgICAgICA8aXRlbSB2YWx1ZT0iTmV3c0ZlZWQiCQlsaW5rPSIvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL25ld3NGZWVkLmpzcCIgLz4KKyAgICAgIDxpdGVtIHZhbHVlPSJTdG9ja3MiCQkJbGluaz0iL2V4YW1wbGVzL3RpbGVzL3BvcnRhbC9zdG9ja3MuanNwIiAvPgorICAgICAgPGl0ZW0gdmFsdWU9IldoYXRzTmV3IgkJbGluaz0iL2V4YW1wbGVzL3RpbGVzL3BvcnRhbC93aGF0c05ldy5qc3AiIC8+CisgICAgPC9wdXRMaXN0PgorICA8L2RlZmluaXRpb24+CisKKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKyAgPCEtLSBTdW1tYXJpZXMgaW4gdGFicyAgCQkJCQkJCQkJLS0+CisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisKKyAgICA8IS0tIHRhYnMgcGFnZSAtLT4KKyAgPGRlZmluaXRpb24gbmFtZT0iZXhhbXBsZXMudGFicy5zdW1tYXJpZXMucGFnZSIgZXh0ZW5kcz0iZXhhbXBsZXMubWFzdGVyUGFnZSI+CisJICA8cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRpbGVzIDEuMSBTdW1tYXJpZXMgaW4gVGFicyIgLz4KKwkgIDxwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iZXhhbXBsZXMudGFicy5zdW1tYXJpZXMuYm9keSIgLz4KKyAgPC9kZWZpbml0aW9uPgorCisJICA8IS0tIGJvZHkgdXNpbmcgdGFicyAtLT4KKyAgPGRlZmluaXRpb24gbmFtZT0iZXhhbXBsZXMudGFicy5zdW1tYXJpZXMuYm9keSIgcGF0aD0iL2xheW91dHMvdGFic0xheW91dC5qc3AiID4KKwk8cHV0IG5hbWU9InNlbGVjdGVkSW5kZXgiICB2YWx1ZT0iMCIgLz4KKwk8cHV0IG5hbWU9InBhcmFtZXRlck5hbWUiICB2YWx1ZT0ic2VsZWN0ZWQiIC8+CisgICAgPHB1dExpc3QgbmFtZT0idGFiTGlzdCIgPgorICAgICAgPGl0ZW0gdmFsdWU9IlBvcnRhbCIJCQlsaW5rPSIvZXhhbXBsZXMvdGlsZXMvcG9ydGFsU3VtbWFyeS5qc3AiIC8+CisgICAgICA8aXRlbSB2YWx1ZT0ibXkgUG9ydGFsIgkJbGluaz0iL2V4YW1wbGVzL3RpbGVzL215UG9ydGFsU3VtbWFyeS5qc3AiLz4KKyAgICAgIDxpdGVtIHZhbHVlPSJNZW51IgkJCWxpbms9Ii9leGFtcGxlcy90aWxlcy9tZW51U3VtbWFyeS5qc3AiLz4KKyAgICAgIDxpdGVtIHZhbHVlPSJteSBNZW51IgkJCWxpbms9Ii9leGFtcGxlcy90aWxlcy9teU1lbnVTdW1tYXJ5LmpzcCIgLz4KKyAgICAgIDxpdGVtIHZhbHVlPSJUYWJzIgkJCWxpbms9Ii9leGFtcGxlcy90aWxlcy90YWJzU3VtbWFyeS5qc3AiIC8+CisgICAgICA8aXRlbSB2YWx1ZT0iUnNzIENoYW5uZWxzIglsaW5rPSIvZXhhbXBsZXMvdGlsZXMvcnNzQ2hhbm5lbHNTdW1tYXJ5LmpzcCIgLz4KKyAgICAgIDxpdGVtIHZhbHVlPSJBZG1pbiIJCQlsaW5rPSIvZXhhbXBsZXMvdGlsZXMvYWRtaW5TdW1tYXJ5LmpzcCIgLz4KKyAgICAgIDxpdGVtIHZhbHVlPSJpMThuIgkJCWxpbms9Ii9leGFtcGxlcy90aWxlcy9pMThuU3VtbWFyeS5qc3AiIC8+CisgICAgICA8aXRlbSB2YWx1ZT0iTXVsdGkgQ2hhbm5lbHMiCWxpbms9Ii9leGFtcGxlcy90aWxlcy9tdWx0aUNoYW5uZWxzU3VtbWFyeS5qc3AiIC8+CisgICAgICA8aXRlbSB2YWx1ZT0iQ29tcG9uZW50cyIJCWxpbms9Ii9leGFtcGxlcy90aWxlcy9jb21wb25lbnRzU3VtbWFyeS5qc3AiIC8+CisgICAgPC9wdXRMaXN0PgorICA8L2RlZmluaXRpb24+CisKKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKyAgPCEtLSBSc3MgQ2hhbm5lbCAgZGVmaW5pdGlvbnMgIAkJCQkJCQkJCS0tPgorICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorCisgICAgPCEtLSBSc3MgbWFpbiBwYWdlIC0tPgorICA8ZGVmaW5pdGlvbiBuYW1lPSJleGFtcGxlcy5yc3NDaGFubmVscy5wYWdlIiBleHRlbmRzPSJleGFtcGxlcy5tYXN0ZXJQYWdlIj4KKwkgIDxwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iVGlsZXMgMS4xIFJzcyBDaGFubmVscyIgLz4KKwkgIDxwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iZXhhbXBsZXMucnNzQ2hhbm5lbC5vZmZsaW5lLmJvZHkiIC8+CisgIDwvZGVmaW5pdGlvbj4KKworICAgIDwhLS0gUnNzIGNoYW5uZWwgYm9keSBkZWNsYXJhdGlvbi0tPgorCTwhLS0gRXhhbXBsZSB0byB1c2Ugd2hlbiBjb25uZWN0ZWQgKG9ubGluZSktLT4KKyAgPGRlZmluaXRpb24gbmFtZT0iZXhhbXBsZXMucnNzQ2hhbm5lbC5ib2R5IgorICAgICAgICAgICAgICBwYXRoPSIvZXhhbXBsZXMvdGlsZXMvcnNzQ2hhbm5lbHMuanNwIgorCQkJICBjb250cm9sbGVyVXJsPSIvZXhhbXBsZXMvY29udHJvbGxlci9yc3NDaGFubmVsLmRvIiA+CisgICAgPHB1dExpc3QgbmFtZT0idXJscyIgPgorCSAgICA8IS0tPGFkZCB2YWx1ZT0iaHR0cDovL3d3dy5uZXdzZm9yZ2UuY29tL25ld3Nmb3JnZS5yc3MiIC8+IC0tPgorCSAgICA8YWRkIHZhbHVlPSJodHRwOi8veG1saGFjay5jb20vcnNzLnBocCIgLz4KKwkgICAgPGFkZCB2YWx1ZT0iaHR0cDovL2x3bi5uZXQvaGVhZGxpbmVzL3JzcyIgLz4KKwkgIDwvcHV0TGlzdD4KKyAgPC9kZWZpbml0aW9uPgorCisgICAgPCEtLSBSc3MgY2hhbm5lbCBib2R5IGRlY2xhcmF0aW9uLS0+CisJPCEtLSBFeGFtcGxlIHdoaXRoIGxvY2FsIGZlZWRzIChvZmZsaW5lKS0tPgorICA8ZGVmaW5pdGlvbiBuYW1lPSJleGFtcGxlcy5yc3NDaGFubmVsLm9mZmxpbmUuYm9keSIKKyAgICAgICAgICAgICAgcGF0aD0iL2V4YW1wbGVzL3RpbGVzL3Jzc0NoYW5uZWxzLmpzcCIKKwkJCSAgY29udHJvbGxlclVybD0iL2V4YW1wbGVzL2NvbnRyb2xsZXIvcnNzQ2hhbm5lbC5kbyIgPgorICAgICAgPHB1dExpc3QgbmFtZT0idXJscyIgPgorCSAgICA8YWRkIHZhbHVlPSIvZXhhbXBsZXMvcnNzRmVlZC9yc3MtZXhhbXBsZS54bWwiIC8+CisJICAgIDxhZGQgdmFsdWU9Ii9leGFtcGxlcy9yc3NGZWVkL2FwYWNoZXdlZWstaGVhZGxpbmVzLnhtbCIgLz4KKwkgIDwvcHV0TGlzdD4KKyAgPC9kZWZpbml0aW9uPgorCisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgIDwhLS0gU2tpbiBTZXR0aW5ncyBkZWZpbml0aW9ucyAgCQkJCQkJCQkJLS0+CisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisKKyAgICA8IS0tIFNraW4gbWFpbiBwYWdlIC0tPgorICA8ZGVmaW5pdGlvbiBuYW1lPSJleGFtcGxlcy5za2luLnNldHRpbmdzLnBhZ2UiIGV4dGVuZHM9ImV4YW1wbGVzLmN1c3RvbWl6YWJsZS5sYXlvdXRzLnJvb3QiPgorCSAgPHB1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJUaWxlcyAxLjEgU2tpbiBTZXR0aW5nIiAvPgorCSAgPHB1dCBuYW1lPSJib2R5IiAgIHZhbHVlPSJleGFtcGxlcy5za2luLnNldHRpbmdzLmJvZHkiIC8+CisgIDwvZGVmaW5pdGlvbj4KKworICAgIDwhLS0gU2tpbiBib2R5IGRlY2xhcmF0aW9uLS0+CisgIDxkZWZpbml0aW9uIG5hbWU9ImV4YW1wbGVzLnNraW4uc2V0dGluZ3MuYm9keSIKKyAgICAgICAgICAgICAgcGF0aD0iL2V4YW1wbGVzL3RpbGVzL215U2tpblNldHRpbmdzLmpzcCIKKwkJCSAgY29udHJvbGxlclVybD0iL2V4YW1wbGVzL2NvbnRyb2xsZXIvbXlTa2luU2V0dGluZ3MuZG8iID4KKwkgIDxwdXQgbmFtZT0idXNlclNldHRpbmdzTmFtZSIgICB2YWx1ZT0idGlsZXMuZXhhbXBsZXMuc2tpbi51c2VyLnNldHRpbmdzIiAvPgorCSAgPCEtLTxwdXQgbmFtZT0iY2F0YWxvZ05hbWUiICAgdmFsdWU9InRpbGVzLmV4YW1wbGVzLnNraW4uY2F0YWxvZyIgLz4tLT4KKwkgIDxwdXQgbmFtZT0iY2F0YWxvZ1NldHRpbmdzIiAgIHZhbHVlPSJleGFtcGxlcy5hdmFpbGFibGUuc2tpbnMiIC8+CisgIDwvZGVmaW5pdGlvbj4KKworICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorICA8IS0tIFNraW5zIERlZmluaXRpb25zICAJCQkJCQkJCQktLT4KKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKworCisgIDwhLS0KKyAgVGhpcyBkZWZpbml0aW9uIGlzIHVzZWQgYXMgY29tbW9uIGFuY2VzdG9yIGZvciBjdXN0b21pYmxlIGxheW91dHMgZGVmaW5pdGlvbnMuCisgIEl0IGFsbG93cyB0byBkZWZpbmUgY29tbW9uIGF0dHJpYnV0ZXMgaW4gb25lIHBsYWNlLgorCQkgICBBY3R1YWxseSwgaXQgZGVmaW5lcyBuYW1lcyB1c2VkIGJ5IGxheW91dCBjb250cm9sbGVyLgorCSAgIC0tPgorCTxkZWZpbml0aW9uIG5hbWU9ImV4YW1wbGVzLmN1c3RvbWl6YWJsZS5sYXlvdXRzLnJvb3QiCisJICAgICAgICAgICAgZXh0ZW5kcz0iZXhhbXBsZXMubWFzdGVyUGFnZSIKKwkJCQlwYXRoPSIvZXhhbXBsZXMvY29udHJvbGxlci9sYXlvdXRTd2l0Y2guZG8iICAgPgorCSAgPHB1dCBuYW1lPSJ1c2VyU2V0dGluZ3NOYW1lIiAgIHZhbHVlPSJ0aWxlcy5leGFtcGxlcy5za2luLnVzZXIuc2V0dGluZ3MiIC8+CisJICA8IS0tPHB1dCBuYW1lPSJjYXRhbG9nTmFtZSIgICB2YWx1ZT0idGlsZXMuZXhhbXBsZXMuc2tpbi5jYXRhbG9nIiAvPi0tPgorCSAgPHB1dCBuYW1lPSJjYXRhbG9nU2V0dGluZ3MiICAgdmFsdWU9ImV4YW1wbGVzLmF2YWlsYWJsZS5za2lucyIgLz4KKwkgIDxwdXQgbmFtZT0ibGF5b3V0LmF0dHJpYnV0ZSIgICAJCXZhbHVlPSJwYWdlLmxheW91dCIgLz4KKwk8L2RlZmluaXRpb24+CisKKyAgICA8IS0tIEF2YWlsYWJsZSBza2lucyAtLT4KKyAgPGRlZmluaXRpb24gbmFtZT0iZXhhbXBsZXMuYXZhaWxhYmxlLnNraW5zIiA+CisgICAgICA8cHV0TGlzdCBuYW1lPSJza2luLmxpc3QiID4KKwkgICAgPGFkZCB2YWx1ZT0iZXhhbXBsZXMuZGVmYXVsdC5za2luIiAvPgorCSAgICA8YWRkIHZhbHVlPSJleGFtcGxlcy5tZW51bGVmdC5za2luIiAvPgorCSAgPC9wdXRMaXN0PgorICA8L2RlZmluaXRpb24+CisKKyAgICA8IS0tIERlZmF1bHQgc2tpbiB2YWx1ZXMgLS0+CisgIDxkZWZpbml0aW9uIG5hbWU9ImV4YW1wbGVzLmRlZmF1bHQuc2tpbiIgPgorICAgIDxwdXQgbmFtZT0ic2tpbi5sYWJlbCIgdmFsdWU9IkRlZmF1bHQiIC8+CisgICAgPHB1dCBuYW1lPSJwYWdlLmxheW91dCIgdmFsdWU9Ii9sYXlvdXRzL2NsYXNzaWNMYXlvdXQuanNwIiAvPgorICAgIDxwdXQgbmFtZT0ibWVudS5sYXlvdXQiIHZhbHVlPSIvbGF5b3V0cy9tZW51LmpzcCIgLz4KKyAgICA8cHV0IG5hbWU9Im1lbnVCYXIubGF5b3V0IiB2YWx1ZT0iL2xheW91dHMvdmJveExheW91dC5qc3AiIC8+CisgIDwvZGVmaW5pdGlvbj4KKworICAgIDwhLS0gRGVmYXVsdCBza2luIHZhbHVlcyAtLT4KKyAgPGRlZmluaXRpb24gbmFtZT0iZXhhbXBsZXMubWVudWxlZnQuc2tpbiIgZXh0ZW5kcz0iZXhhbXBsZXMuZGVmYXVsdC5za2luIiA+CisgICAgPHB1dCBuYW1lPSJza2luLmxhYmVsIiB2YWx1ZT0iTGVmdCBNZW51IiAvPgorICAgIDxwdXQgbmFtZT0icGFnZS5sYXlvdXQiIHZhbHVlPSIvbGF5b3V0cy9za2luMS9tZW51TGVmdExheW91dC5qc3AiIC8+CisgICAgPHB1dCBuYW1lPSJtZW51LmxheW91dCIgdmFsdWU9Ii9sYXlvdXRzL21lbnUuanNwIiAvPgorICA8L2RlZmluaXRpb24+CisKKworPC90aWxlcy1kZWZpbml0aW9ucz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3RpbGVzLXRlc3RzLWRlZnMueG1sIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL1dFQi1JTkYvdGlsZXMtdGVzdHMtZGVmcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2JmMDQzMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3RpbGVzLXRlc3RzLWRlZnMueG1sCkBAIC0wLDAgKzEsOTYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+CisKKyA8IURPQ1RZUEUgdGlsZXMtZGVmaW5pdGlvbnMgUFVCTElDCisgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgVGlsZXMgQ29uZmlndXJhdGlvbiAxLjEvL0VOIgorICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy90aWxlcy1jb25maWdfMV8xLmR0ZCI+CisKKzwhLS0gRGVmaW5pdGlvbnMgZm9yIFRpbGVzIHF1aWNrIHRlc3RzICAtLT4KKworPHRpbGVzLWRlZmluaXRpb25zPgorCisgIDwhLS0gVGVzdCBpbnN0YW5jZXMgLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJ0ZXN0LmhvbWUucGFnZSIgZXh0ZW5kcz0iZG9jLm1haW5MYXlvdXQiID4KKyAgPHB1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJUaWxlczogdGVzdCBwYWdlIiAvPgorICA8cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9Ii90ZXN0L3Rlc3RBbGwuanNwIiAvPgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gVGVzdCBtZW51IGRlZmluaXRpb24gLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJ0ZXN0Lm1lbnUubGlua3MiIHBhdGg9Ii9sYXlvdXRzL21lbnUuanNwIiA+CisgIDxwdXQgbmFtZT0idGl0bGUiIHZhbHVlPSJUZXN0cyIgLz4KKyAgICA8cHV0TGlzdCBuYW1lPSJpdGVtcyIgPgorICAgICAgPGl0ZW0gdmFsdWU9IkFsbCBpbiBvbmUiICAgICBsaW5rPSIvdGVzdC9pbmRleC5qc3AiICAvPgorICAgICAgPGl0ZW0gdmFsdWU9IkJhc2ljIiBsaW5rPSIvdGVzdC90ZXN0QmFzaWMuanNwIiAvPgorICAgICAgPGl0ZW0gdmFsdWU9Iklnbm9yZSBhdHRyaWJ1dGUiICBsaW5rPSIvdGVzdC90ZXN0SWdub3JlLmpzcCIgICAvPgorICAgICAgPGl0ZW0gdmFsdWU9IkRlZmluaXRpb24iICBsaW5rPSIvdGVzdC90ZXN0RGVmaW5pdGlvbnMuanNwIiAgICAvPgorICAgICAgPGl0ZW0gdmFsdWU9IlJvbGUiIGxpbms9Ii90ZXN0L3Rlc3RSb2xlLmpzcCIgICAgICAvPgorICAgICAgPGl0ZW0gdmFsdWU9IlN0cnV0cyBhY3Rpb24iICBsaW5rPSIvdGVzdC90ZXN0U3RydXRzQWN0aW9uLmpzcCIgICAvPgorICAgICAgPGl0ZW0gdmFsdWU9IkNvbnRyb2xsZXIiICAgIGxpbms9Ii90ZXN0L3Rlc3RDb250cm9sbGVyLmpzcCIgICAgIC8+CisgICAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gVGVzdCBpbnN0YW5jZXMgLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJ0ZXN0LmxheW91dC50ZXN0MSIgcGF0aD0iL3Rlc3QvbGF5b3V0LmpzcCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRlc3QgZGVmaW5pdGlvbiBmcm9tIGZhY3RvcnkgOiBiYXNpYyIgLz4KKyAgPHB1dCBuYW1lPSJoZWFkZXIiIHZhbHVlPSJoZWFkZXIuanNwIiAvPgorICA8cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9ImJvZHkuanNwIiAvPgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gVGVzdCBpbnN0YW5jZXMgLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJ0ZXN0LmxheW91dC50ZXN0MiIgcGF0aD0iL3Rlc3QvbGF5b3V0LmpzcCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRlc3QgZGVmaW5pdGlvbiBmcm9tIGZhY3RvcnkgOiBzcGVjaWZ5IHR5cGVzIiAgIHR5cGU9InN0cmluZyIgLz4KKyAgPHB1dCBuYW1lPSJoZWFkZXIiIHZhbHVlPSJoZWFkZXIuanNwIiB0eXBlPSJwYWdlIiAgIC8+CisgIDxwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iYm9keS5qc3AiICAgdHlwZT0icGFnZSIgICAvPgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gVGVzdCBpbnN0YW5jZXMgLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJ0ZXN0LmxheW91dC50ZXN0MyIgcGF0aD0iL3Rlc3QvbGF5b3V0LmpzcCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRlc3QgZGVmaW5pdGlvbiBmcm9tIGZhY3RvcnkgOiBUZXN0IHdpdGggYSB0YWcgYm9keSAodG8gZG8pIiAvPgorICA8cHV0IG5hbWU9ImhlYWRlciIgdmFsdWU9IlRoaXMgaXMgYSBoZWFkZXIiIGRpcmVjdD0idHJ1ZSIvPgorICA8cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9ImJvZHkuanNwIi8+Cis8L2RlZmluaXRpb24+CisKKyAgPCEtLSBUZXN0IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJ0ZXN0LmxheW91dC50ZXN0NCIgcGF0aD0iL3Rlc3QvbGF5b3V0LmpzcCIgPgorICAgIDxwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iVGVzdCBkZWZpbml0aW9uIGZyb20gZmFjdG9yeTogYmFja3dhcmQgY29tcGF0aWJpbGl0eSIKKyAgICAgICAgIGRpcmVjdD0idHJ1ZSIvPgorICA8cHV0IG5hbWU9ImhlYWRlciIgdmFsdWU9ImhlYWRlci5qc3AiLz4KKyAgPHB1dCBuYW1lPSJib2R5IiAgIHZhbHVlPSJib2R5LmpzcCIgZGlyZWN0PSJmYWxzZSIgLz4KKzwvZGVmaW5pdGlvbj4KKworICA8IS0tIFRlc3QgU3RydXRzIEFjdGlvbiBhbmQgVGlsZXMgaW50ZWdyYXRpb24gLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJ0ZXN0LnN0cnV0cy5hY3Rpb24iIHBhdGg9Ii90ZXN0L2xheW91dC5qc3AiID4KKyAgICA8cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRlc3QgU3RydXRzIEFjdGlvbiBhbmQgVGlsZXMgaW50ZWdyYXRpb246IGRlZmF1bHQgdGl0bGUiCisgICAgICAgICBkaXJlY3Q9InRydWUiLz4KKyAgPHB1dCBuYW1lPSJoZWFkZXIiIHZhbHVlPSJoZWFkZXIuanNwIi8+CisgIDxwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iYm9keS5qc3AiIGRpcmVjdD0iZmFsc2UiIC8+Cis8L2RlZmluaXRpb24+CisKKyAgPCEtLSBUZXN0IFN0cnV0cyBBY3Rpb24gYW5kIFRpbGVzIGludGVncmF0aW9uIC0tPgorPGRlZmluaXRpb24gbmFtZT0idGVzdC5zdHJ1dHMuYWN0aW9uLmZhaWwiIHBhdGg9Ii90ZXN0L2ZhaWxwYWdlLmpzcCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRlc3QgZmFpbCIgZGlyZWN0PSJ0cnVlIiAvPgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gVGVzdCBUaWxlcyBDb250cm9sbGVyIC0tPgorICA8ZGVmaW5pdGlvbiBuYW1lPSJ0ZXN0LnN0cnV0cy5jb250cm9sbGVyIgorICAgICAgICAgICAgICBwYXRoPSIvdGVzdC9sYXlvdXQuanNwIgorICAgICAgY29udHJvbGxlckNsYXNzPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMudGVzdC5UZXN0VGlsZUNvbnRyb2xsZXIiID4KKyAgPHB1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJUZXN0IFRpbGUgQ29udHJvbGxlciA6IGNhbGwgdG8gQ29udHJvbGxlciIgLz4KKyAgPHB1dCBuYW1lPSJoZWFkZXIiIHZhbHVlPSJoZWFkZXIuanNwIi8+CisgIDxwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iYm9keS5qc3AiIC8+Cis8L2RlZmluaXRpb24+CisKKyAgPCEtLSBUZXN0IGJvZHkgZm9yIHB1dCB0YWcgLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJ0ZXN0LmJvZHkiIHBhdGg9Ii90ZXN0L2ZhaWxwYWdlLmpzcCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiAgZGlyZWN0PSJ0cnVlIj5maXJzdCBib2R5IDogdGl0bGU8L3B1dD4KKyAgPHB1dCBuYW1lPSJib2R5IiAgZGlyZWN0PSJ0cnVlIj5zZWNvbmQgYm9keSA6IGJvZHk8L3B1dD4KKzwvZGVmaW5pdGlvbj4KKworICA8IS0tIFRlc3QgaW5zdGFuY2VzIC0tPgorPGRlZmluaXRpb24gbmFtZT0idGVzdC5hY3Rpb24ubm9mb3J3YXJkIiBwYXRoPSIvdGVzdC9sYXlvdXQuanNwIiA+CisgIDxwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iVGVzdCBBY3Rpb24gd2l0aCBObyBGb3J3YXJkIiAvPgorICA8cHV0IG5hbWU9ImhlYWRlciIgdmFsdWU9ImhlYWRlci5qc3AiIC8+CisgIDxwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0ic2hvd1JlcXVlc3RVcmkuanNwIiAvPgorPC9kZWZpbml0aW9uPgorCisKKzwvdGlsZXMtZGVmaW5pdGlvbnM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi90aWxlcy10dXRvcmlhbC1kZWZzLnhtbCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3RpbGVzLXR1dG9yaWFsLWRlZnMueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxYjZkNWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi90aWxlcy10dXRvcmlhbC1kZWZzLnhtbApAQCAtMCwwICsxLDI2MiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/PgorCisgPCFET0NUWVBFIHRpbGVzLWRlZmluaXRpb25zIFBVQkxJQworICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFRpbGVzIENvbmZpZ3VyYXRpb24gMS4xLy9FTiIKKyAgICAgICAiaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL2R0ZHMvdGlsZXMtY29uZmlnXzFfMS5kdGQiPgorCis8IS0tIERlZmluaXRpb25zIGZvciBUaWxlcyB0dXRvcmlhbCAtLT4KKworPHRpbGVzLWRlZmluaXRpb25zPgorCisgIDwhLS0gRGVmaW5pdGlvbiBkZXNjcmlwdGlvbiAgLS0+CisgIDxkZWZpbml0aW9uIG5hbWU9Im15Rmlyc3REZWZpbml0aW9uIiBwYXRoPSIvdHV0b3JpYWwvbGF5b3V0L2NsYXNzaWNMYXlvdXQuanNwIj4KKwkgIDxwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iTXkgRmlyc3QgRGVmaW5pdGlvbiBQYWdlIiAvPgorCSAgPCEtLSA8cHV0IG5hbWU9InRpdGxlIiA+TXkgRmlyc3QgRGVmaW5pdGlvbiBQYWdlPC9wdXQ+IC0tPgorCSAgPHB1dCBuYW1lPSJoZWFkZXIiIHZhbHVlPSIvdHV0b3JpYWwvY29tbW9uL2hlYWRlci5qc3AiIC8+CisJICA8cHV0IG5hbWU9ImZvb3RlciIgdmFsdWU9Ii90dXRvcmlhbC9jb21tb24vZm9vdGVyLmpzcCIgLz4KKwkgIDxwdXQgbmFtZT0ibWVudSIgICB2YWx1ZT0iL3R1dG9yaWFsL2NvbW1vbi9tZW51LmpzcCIgLz4KKwkgIDxwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iL3R1dG9yaWFsL2Jhc2ljL2hlbGxvQm9keS5qc3AiIC8+CisgIDwvZGVmaW5pdGlvbj4KKworICA8IS0tIE1haW4gTGF5b3V0IERlZmluaXRpb24gZGVzY3JpcHRpb24gIC0tPgorICA8ZGVmaW5pdGlvbiBuYW1lPSJtYWluTGF5b3V0IiBwYXRoPSIvdHV0b3JpYWwvbGF5b3V0L2NsYXNzaWNMYXlvdXQuanNwIj4KKwkgIDxwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iV29ybGQgRmluYW5jaWFsIE9ubGluZSIgLz4KKwkgIDxwdXQgbmFtZT0iaGVhZGVyIiB2YWx1ZT0iL3R1dG9yaWFsL2NvbW1vbi9oZWFkZXIuanNwIiAvPgorCSAgPHB1dCBuYW1lPSJmb290ZXIiIHZhbHVlPSIvdHV0b3JpYWwvY29tbW9uL2Zvb3Rlci5qc3AiIC8+CisJICA8cHV0IG5hbWU9Im1lbnUiICAgdmFsdWU9Im1lbnUubWFpbiIgLz4KKwkgIDxwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0ibWFpbi5wb3J0YWwuYm9keSIgLz4KKyAgPC9kZWZpbml0aW9uPgorICAKKyAgICA8IS0tIFBvcnRhbCBCb2R5IGRlY2xhcmF0aW9uLS0+CisgIDxkZWZpbml0aW9uIG5hbWU9Im1haW4ucG9ydGFsLmJvZHkiIHBhdGg9Ii9sYXlvdXQvY29sdW1uc0xheW91dC5qc3AiPgorCSAgPHB1dCBuYW1lPSJudW1Db2xzIiB2YWx1ZT0iMiIgLz4KKwkgIDxwdXRMaXN0IG5hbWU9Imxpc3QwIiA+CisJICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvbG9naW4uanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsL21lc3NhZ2VzLmpzcCIgLz4KKwkgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL3BvcnRhbC9uZXdzRmVlZC5qc3AiIC8+CisJICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvYWR2ZXJ0Mi5qc3AiIC8+CisJICA8L3B1dExpc3Q+CisJICA8cHV0TGlzdCBuYW1lPSJsaXN0MSIgPgorCSAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsL2FkdmVydDMuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsL3N0b2Nrcy5qc3AiIC8+CisJICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvd2hhdHNOZXcuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsL3BlcnNvbmFsTGlua3MuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsL3NlYXJjaC5qc3AiIC8+CisJICA8L3B1dExpc3Q+CisgIDwvZGVmaW5pdGlvbj4KKworICA8IS0tIE1haW4gbWVudSBkZWZpbml0aW9uIC0tPgorPGRlZmluaXRpb24gbmFtZT0ibWVudS5tYWluIiBwYXRoPSIvbGF5b3V0L3Zib3hMYXlvdXQuanNwIiA+CisgIDxwdXRMaXN0IG5hbWU9ImNvbXBvbmVudHNMaXN0IiA+CisgICAgPGFkZCB2YWx1ZT0ibWVudS5sb2dvIiAvPgorICAgIDxhZGQgdmFsdWU9Im1lbnUuZG9jdW1lbnRhdGlvbiIgLz4KKyAgICA8YWRkIHZhbHVlPSJtZW51LmxpbmtzIiAvPgorICAgIDxhZGQgdmFsdWU9Im1lbnUubGFuZyIgLz4KKyAgICA8YWRkIHZhbHVlPSJtZW51LnNyYyIgLz4KKyAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gbWVudSBsb2dvIGRlZmluaXRpb24gLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJtZW51LmxvZ28iIHBhdGg9Ii90dXRvcmlhbC9jb21tb24vbWVudS9tZW51TG9nby5qc3AiIC8+CisgIAorICA8IS0tIERvY3VtZW50YXRpb24gbWVudSAtLT4KKyAgPCEtLSBPbGQgc3R5bGUgbWVudS4gQ2hlY2sgbW9kdWxlICdleGFtcGxlcycgZm9yIG5ldyBzdHlsZSAtLT4KKzxkZWZpbml0aW9uIG5hbWU9Im1lbnUuZG9jdW1lbnRhdGlvbiIgcGF0aD0iL2NvbW1vbi9zdWJtZW51LmpzcCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iVGlsZXMiIC8+CisgIDxwdXRMaXN0IG5hbWU9Iml0ZW1zIiA+CisgICAgPGFkZCB2YWx1ZT0iSG9tZSIgLz4KKyAgPC9wdXRMaXN0PgorICA8cHV0TGlzdCBuYW1lPSJsaW5rcyIgPgorICAgIDxhZGQgdmFsdWU9Ii9pbmRleC5qc3AiIC8+CisgIDwvcHV0TGlzdD4KKzwvZGVmaW5pdGlvbj4KKworICA8IS0tIG1lbnUgbG9nbyBkZWZpbml0aW9uIC0tPgorPGRlZmluaXRpb24gbmFtZT0ibWVudS5saW5rcyIgcGF0aD0iL2NvbW1vbi9zdWJtZW51LmpzcCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iVHV0b3JpYWwiIC8+CisgIDxwdXRMaXN0IG5hbWU9Iml0ZW1zIiA+CisgICAgPGFkZCB2YWx1ZT0iSG9tZSIgLz4KKyAgICA8YWRkIHZhbHVlPSJCYXNpYyBQYWdlIiAvPgorCTxhZGQgdmFsdWU9IkZpcnN0IFBvcnRhbCIgLz4KKyAgICA8YWRkIHZhbHVlPSJGaXJzdCBEZWZpbml0aW9uIiAvPgorICAgIDxhZGQgdmFsdWU9Ik92ZXJsb2FkZWQgRGVmaW5pdGlvbiIgLz4KKyAgICA8YWRkIHZhbHVlPSJFeHRlbmRlZCBEZWZpbml0aW9uIiAvPgorICAgIDxhZGQgdmFsdWU9IkR5bmFtaWMgUG9ydGFsIiAvPgorICAgIDxhZGQgdmFsdWU9IkR5bmFtaWMgUG9ydGFsIFByZWZzIiAvPgorICAgIDxhZGQgdmFsdWU9IlN0cnV0cyBGb3J3YXJkIiAvPgorICAgIDxhZGQgdmFsdWU9IkRlZmluaXRpb24gVGFnIiAvPgorICAgIDxhZGQgdmFsdWU9IkV4dGVuZGVkIERlZmluaXRpb24gVGFnIiAvPgorICAgIDxhZGQgdmFsdWU9IkR5bmFtaWMgRGVmaW5pdGlvbiIgLz4KKyAgICA8YWRkIHZhbHVlPSJGcmFtZSBFeGFtcGxlIiAvPgorICAgIDxhZGQgdmFsdWU9Ikludm9pY2UiIC8+CisgIDwvcHV0TGlzdD4KKyAgPHB1dExpc3QgbmFtZT0ibGlua3MiID4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvaW5kZXguanNwIiAvPgorICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9iYXNpY1BhZ2UuanNwIiAvPgorICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWxQYWdlLmpzcCIgLz4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvZmlyc3REZWZpbml0aW9uLmpzcCIgLz4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvb3ZlcmxvYWREZWZpbml0aW9uUGFyYW1ldGVycy5qc3AiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2V4dGVuZGVkRGVmaW5pdGlvbi5qc3AiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2R5blBvcnRhbC9pbmRleC5qc3AiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2R5blBvcnRhbC9teVBvcnRhbFByZWZzLmpzcCIgLz4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvc3RydXRzRm9yd2FyZC5qc3AiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2RlZmluaXRpb25UYWcuanNwIiAvPgorICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9leHRlbmRlZERlZmluaXRpb25UYWcuanNwIiAvPgorICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9keW5UZW1wbGF0ZS5kbyIgLz4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvYmFzaWNGcmFtZXNldFBhZ2UuanNwIiAvPgorICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9pbnZvaWNlL2luZGV4LmpzcCIgLz4KKyAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gTWVudSBzb3VyY2VzIGRlZmluaXRpb24gLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJtZW51LnNyYyIgcGF0aD0iL3R1dG9yaWFsL2NvbW1vbi9tZW51Vmlld1NyYy5qc3AiID4KKyAgPHB1dExpc3QgbmFtZT0ibGlzdCIgPgorICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9pbmRleC5qc3AiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2Jhc2ljUGFnZS5qc3AiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL3BvcnRhbFBhZ2UuanNwIiAvPgorICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9maXJzdERlZmluaXRpb24uanNwIiAvPgorICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9vdmVybG9hZERlZmluaXRpb25QYXJhbWV0ZXJzLmpzcCIgLz4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvZXh0ZW5kZWREZWZpbml0aW9uLmpzcCIgLz4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvZGVmaW5pdGlvblRhZy5qc3AiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2V4dGVuZGVkRGVmaW5pdGlvblRhZy5qc3AiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2Jhc2ljRnJhbWVzZXRQYWdlLmpzcCIgLz4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvV0VCLUlORi90ZW1wbGF0ZURlZmluaXRpb25zLnhtbCIgLz4KKworICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9iYXNpYy9teUxheW91dC5qc3AiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2Jhc2ljL2hlbGxvLmpzcCIgLz4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvYmFzaWMvbWVudS5qc3AiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL3BvcnRhbC9wb3J0YWxCb2R5LmpzcCIgLz4KKworICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9jb21tb24vZm9vdGVyLmpzcCIgLz4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvY29tbW9uL21lbnUuanNwIiAvPgorICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9jb21tb24vc3VibWVudS5qc3AiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2NvbW1vbi9tZW51Vmlld1NyYy5qc3AiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2NvbW1vbi92aWV3U3JjLmpzcCIgLz4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvY29tbW9uL3ZpZXdTcmNCb2R5LmpzcCIgLz4KKwkKKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvY29tbW9uL21lbnUvbWVudUxvZ28uanNwIiAvPgorICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9jb21tb24vbWVudS9tZW51TGlua3MuanNwIiAvPgorICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9jb21tb24vbWVudS9tZW51U3JjLmpzcCIgLz4KKworICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9sYXlvdXQvY2xhc3NpY0xheW91dC5qc3AiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2xheW91dC9jb2x1bW5zTGF5b3V0LmpzcCIgLz4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvbGF5b3V0L3Zib3hMYXlvdXQuanNwIiAvPgorCQorICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9pbnZvaWNlL2VkaXRBZGRyZXNzLmpzcCIgLz4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvaW52b2ljZS9lZGl0SW52b2ljZS5qc3AiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2ludm9pY2UvaW5kZXguanNwIiAvPgorICA8L3B1dExpc3Q+Cis8L2RlZmluaXRpb24+CisKKyAgPCEtLSBzZWxlY3QgbGFuZ3VhZ2UgbWVudSAtLT4KKzxkZWZpbml0aW9uIG5hbWU9Im1lbnUubGFuZyIgcGF0aD0iL2NvbW1vbi9zdWJtZW51LmpzcCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iTGFuZ3VhZ2UiIC8+CisgIDxwdXRMaXN0IG5hbWU9Iml0ZW1zIiA+CisgICAgPGFkZCB2YWx1ZT0iRnJhbudhaXMiIC8+CisgICAgPGFkZCB2YWx1ZT0iRW5nbGlzaCIgLz4KKyAgICA8YWRkIHZhbHVlPSJEZXV0c2NoIiAvPgorICA8L3B1dExpc3Q+CisgIDxwdXRMaXN0IG5hbWU9ImxpbmtzIiA+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2xhbmcuZG8/bGFuZ3VhZ2U9RlIiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2xhbmcuZG8/bGFuZ3VhZ2U9VUsiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2xhbmcuZG8/bGFuZ3VhZ2U9REUiIC8+CisgIDwvcHV0TGlzdD4KKzwvZGVmaW5pdGlvbj4KKworICA8IS0tIEV4dGVuZGVkIGRlZmluaXRpb24gZXhhbXBsZSAtLT4KKzxkZWZpbml0aW9uIG5hbWU9ImV4dGVuZGVkLmRlZmluaXRpb24uZXhhbXBsZSIgZXh0ZW5kcz0ibWFpbkxheW91dCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iRXh0ZW5kZWQgRGVmaW5pdGlvbiIgLz4KKyAgPHB1dCBuYW1lPSJib2R5IiAgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvbmV3c0ZlZWQuanNwIiAvPgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gU3RydXRzIGZvcndhcmQgZGVmaW5pdGlvbiBleGFtcGxlIC0tPgorPGRlZmluaXRpb24gbmFtZT0iZm9yd2FyZC5leGFtcGxlLmNob2ljZS5wYWdlIiBleHRlbmRzPSJtYWluTGF5b3V0IiA+CisgIDxwdXQgbmFtZT0idGl0bGUiIHZhbHVlPSJTdHJ1dHMgRm9yd2FyZCBUZXN0IiAvPgorICA8cHV0IG5hbWU9ImJvZHkiICB2YWx1ZT0iL3R1dG9yaWFsL2ZvcndhcmQvZm9yd2FyZEJvZHkuanNwIiAvPgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gU3RydXRzIGZvcndhcmQgZGVmaW5pdGlvbiBleGFtcGxlIC0tPgorPGRlZmluaXRpb24gbmFtZT0iZm9yd2FyZC5leGFtcGxlLnN1Y2Nlc3MucGFnZSIgZXh0ZW5kcz0ibWFpbkxheW91dCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iU3RydXRzIEZvcndhcmQgdG8gJ3N1Y2Nlc3MnIiAvPgorICA8cHV0IG5hbWU9ImJvZHkiICB2YWx1ZT0iL3R1dG9yaWFsL2ZvcndhcmQvc3VjY2Vzc0JvZHkuanNwIiAvPgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gU3RydXRzIGZvcndhcmQgZGVmaW5pdGlvbiBleGFtcGxlIC0tPgorPGRlZmluaXRpb24gbmFtZT0iZm9yd2FyZC5leGFtcGxlLmZhaWx1cmUucGFnZSIgZXh0ZW5kcz0ibWFpbkxheW91dCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iU3RydXRzIEZvcndhcmQgdG8gJ2ZhaWx1cmUnIiAvPgorICA8cHV0IG5hbWU9ImJvZHkiICB2YWx1ZT0iL3R1dG9yaWFsL2ZvcndhcmQvZmFpbHVyZUJvZHkuanNwIiAvPgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgLS0+CisgIDwhLS0gUnNzIENoYW5uZWxzIGRlZmluaXRpb25zICAtLT4KKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKworICA8IS0tIER5bmFtaWMgcG9ydGFsIG1haW4gcGFnZSAodXNlcyBjb21tb24gbGF5b3V0KSAtLT4KKzxkZWZpbml0aW9uIG5hbWU9InJzc0NoYW5uZWxUaWxlIiBwYXRoPSIvdHV0b3JpYWwvYWN0aW9ucy9yc3NDaGFubmVsLmRvIiA+CisgICAgICA8cHV0TGlzdCBuYW1lPSJ1cmxzIiA+CisgIDwhLS0gCisJICAgIDxhZGQgdmFsdWU9Imh0dHA6Ly93d3cubmV3c2ZvcmdlLmNvbS9uZXdzZm9yZ2UucnNzIiAvPgorICAgIC0tPgorCSAgICA8YWRkIHZhbHVlPSJodHRwOi8veG1saGFjay5jb20vcnNzLnBocCIgLz4KKwkgICAgPGFkZCB2YWx1ZT0iaHR0cDovL2x3bi5uZXQvaGVhZGxpbmVzL3JzcyIgLz4KKwkgIDwvcHV0TGlzdD4KKzwvZGVmaW5pdGlvbj4KKworICA8IS0tIER5bmFtaWMgcG9ydGFsIG1haW4gcGFnZSAodXNlcyBjb21tb24gbGF5b3V0KSAtLT4KKzxkZWZpbml0aW9uIG5hbWU9InJzc0xvY2FsQ2hhbm5lbFRpbGUiICBwYXRoPSIvdHV0b3JpYWwvYWN0aW9ucy9yc3NDaGFubmVsLmRvIiA+CisgICAgICA8cHV0TGlzdCBuYW1lPSJ1cmxzIiA+CisJICAgIDxhZGQgdmFsdWU9Ii9leGFtcGxlcy9yc3NGZWVkL3Jzcy1leGFtcGxlLnhtbCIgLz4KKwkgICAgPGFkZCB2YWx1ZT0iL2V4YW1wbGVzL3Jzc0ZlZWQvYXBhY2hld2Vlay1oZWFkbGluZXMueG1sIiAvPgorCSAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCisgIDwhLS0gRHluYW1pYyBwb3J0YWwgbWFpbiBwYWdlICh1c2VzIGNvbW1vbiBsYXlvdXQpIC0tPgorPGRlZmluaXRpb24gbmFtZT0idGVzdC5yc3NDaGFubmVsLnBhZ2UiIGV4dGVuZHM9Im1haW5MYXlvdXQiID4KKyAgPHB1dCBuYW1lPSJ0aXRsZSIgdmFsdWU9IlJzcyBDaGFubmVsIiAvPgorICA8cHV0IG5hbWU9ImJvZHkiICB2YWx1ZT0icnNzQ2hhbm5lbFRpbGUiIC8+Cis8L2RlZmluaXRpb24+CisKKworICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIC0tPgorICA8IS0tIER5bmFtaWMgcG9ydGFsIGRlZmluaXRpb25zICAtLT4KKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAtLT4KKyAgCisgICAgPCEtLSBEeW5hbWljIHBvcnRhbCBib2R5IChEZWZpbmUgZGVmYXVsdCBsaXN0KSAtLT4KKzxkZWZpbml0aW9uIG5hbWU9ImR5bmFtaWMucG9ydGFsLmJvZHkiIHBhdGg9Ii90dXRvcmlhbC9hY3Rpb25zL215UG9ydGFsLmRvIiA+CisJICA8cHV0IG5hbWU9Im51bUNvbHMiIHZhbHVlPSIyIiAvPgorCSAgPHB1dExpc3QgbmFtZT0ibGlzdDAiID4KKwkgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL3BvcnRhbC9sb2dpbi5qc3AiIC8+CisJICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvbWVzc2FnZXMuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsL25ld3NGZWVkLmpzcCIgLz4KKwkgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL3BvcnRhbC9hZHZlcnQyLmpzcCIgLz4KKwkgICAgPGFkZCB2YWx1ZT0icnNzQ2hhbm5lbFRpbGUiIC8+CisJICA8L3B1dExpc3Q+CisJICA8cHV0TGlzdCBuYW1lPSJsaXN0MSIgPgorCSAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsL2FkdmVydDMuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSJyc3NMb2NhbENoYW5uZWxUaWxlIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsL3N0b2Nrcy5qc3AiIC8+CisJICAgIDxhZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvd2hhdHNOZXcuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsL3BlcnNvbmFsTGlua3MuanNwIiAvPgorCSAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsL3NlYXJjaC5qc3AiIC8+CisJICA8L3B1dExpc3Q+Cis8L2RlZmluaXRpb24+CisKKyAgICA8IS0tIER5bmFtaWMgcG9ydGFsIG1haW4gcGFnZSAodXNlIGNvbW1vbiBsYXlvdXQpIC0tPgorPGRlZmluaXRpb24gbmFtZT0ibXlEeW5hbWljUG9ydGFsIiBleHRlbmRzPSJtYWluTGF5b3V0IiA+CisgIDxwdXQgbmFtZT0idGl0bGUiIHZhbHVlPSJNeSBQb3J0YWwiIC8+CisgIDxwdXQgbmFtZT0iYm9keSIgIHZhbHVlPSJkeW5hbWljLnBvcnRhbC5ib2R5IiAvPgorPC9kZWZpbml0aW9uPgorCisgICAgPCEtLSBEeW5hbWljIHBvcnRhbCBwcmVmZXJlbmNlcyBwYWdlICh1c2UgY29tbW9uIGxheW91dCkgLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJteUR5bmFtaWNQb3J0YWxQcmVmZXJlbmNlcyIgZXh0ZW5kcz0ibWFpbkxheW91dCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iTXkgUG9ydGFsIFNldHRpbmdzIiAvPgorICA8cHV0IG5hbWU9ImJvZHkiICB2YWx1ZT0iZHluYW1pYy5wb3J0YWwucHJlZnMuYm9keSIgLz4KKzwvZGVmaW5pdGlvbj4KKworICAgIDwhLS0gRHluYW1pYyBwb3J0YWwgcHJlZmVyZW5jZXMgYm9keSAoZXh0ZW5kcyBwb3J0YWwuYm9keSB0byBpbmhlcml0IGRlZmF1bHQgbGlzdCkgLS0+CisgIDxkZWZpbml0aW9uIG5hbWU9ImR5bmFtaWMucG9ydGFsLnByZWZzLmJvZHkiCisgICAgICAgICAgICAgIHBhdGg9Ii90dXRvcmlhbC9hY3Rpb25zL215UG9ydGFsUHJlZnMudGlsZS5kbyIKKyAgICAgICAgICAgICAgZXh0ZW5kcz0iZHluYW1pYy5wb3J0YWwuYm9keSI+Cis8L2RlZmluaXRpb24+CisKKzwvdGlsZXMtZGVmaW5pdGlvbnM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi90aWxlcy10dXRvcmlhbC1kZWZzX2RlLnhtbCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3RpbGVzLXR1dG9yaWFsLWRlZnNfZGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4MGU3NzQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi90aWxlcy10dXRvcmlhbC1kZWZzX2RlLnhtbApAQCAtMCwwICsxLDM0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+CisKKyA8IURPQ1RZUEUgdGlsZXMtZGVmaW5pdGlvbnMgUFVCTElDCisgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgVGlsZXMgQ29uZmlndXJhdGlvbiAxLjEvL0VOIgorICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy90aWxlcy1jb25maWdfMV8xLmR0ZCI+CisKKzwhLS0gRGVmaW5pdGlvbnMgZm9yIFRpbGVzIHR1dG9yaWFsIC0gR2VybWFuIFZlcnNpb24gLS0+CisKKzx0aWxlcy1kZWZpbml0aW9ucz4KKworICA8IS0tIE1haW4gTGF5b3V0IERlZmluaXRpb24gZGVzY3JpcHRpb24gIC0tPgorICA8ZGVmaW5pdGlvbiBuYW1lPSJtYWluTGF5b3V0Ij4KKyAgICA8cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IldvcmxkIEZpbmFuY2lhbCBPbmxpbmUgLSBEZXV0c2NoZSBWZXJzaW9uIiAvPgorICAgIDwhLS08cHV0IG5hbWU9ImhlYWRlciIgdmFsdWU9Ii90dXRvcmlhbC9jb21tb24vaGVhZGVyLmpzcCIvPi0tPgorICAgIDxwdXQgbmFtZT0iZm9vdGVyIiB2YWx1ZT0iL3R1dG9yaWFsL2RlL2NvbW1vbi9mb290ZXIuanNwIiAvPgorICAgIDwhLS08cHV0IG5hbWU9Im1lbnUiIHZhbHVlPSJtZW51Lm1haW4iLz4KKyAgICA8cHV0IG5hbWU9ImJvZHkiIHZhbHVlPSJtYWluLnBvcnRhbC5ib2R5Ii8+LS0+CisgIDwvZGVmaW5pdGlvbj4KKyAgCisgIDwhLS0gc2VsZWN0IGxhbmd1YWdlIG1lbnUgLS0+Cis8ZGVmaW5pdGlvbiBuYW1lPSJtZW51LmxhbmciIHBhdGg9Ii9jb21tb24vc3VibWVudS5qc3AiID4KKyAgPHB1dCBuYW1lPSJ0aXRsZSIgdmFsdWU9IlNwcmFjaGUiIC8+CisgIDxwdXRMaXN0IG5hbWU9Iml0ZW1zIiA+CisgICAgPGFkZCB2YWx1ZT0iRW5nbGlzY2giIC8+CisgICAgPGFkZCB2YWx1ZT0iRnJhbnr2c2lzY2giIC8+CisgIDwvcHV0TGlzdD4KKyAgPHB1dExpc3QgbmFtZT0ibGlua3MiID4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvbGFuZy5kbz9sYW5ndWFnZT1VSyIgLz4KKyAgICA8YWRkIHZhbHVlPSIvdHV0b3JpYWwvbGFuZy5kbz9sYW5ndWFnZT1GUiIgLz4KKyAgPC9wdXRMaXN0PgorPC9kZWZpbml0aW9uPgorCisKKzwvdGlsZXMtZGVmaW5pdGlvbnM+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi90aWxlcy10dXRvcmlhbC1kZWZzX2ZyLnhtbCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3RpbGVzLXR1dG9yaWFsLWRlZnNfZnIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0ZDA4MmYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi90aWxlcy10dXRvcmlhbC1kZWZzX2ZyLnhtbApAQCAtMCwwICsxLDMzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+CisKKyA8IURPQ1RZUEUgdGlsZXMtZGVmaW5pdGlvbnMgUFVCTElDCisgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgVGlsZXMgQ29uZmlndXJhdGlvbiAxLjEvL0VOIgorICAgICAgICJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvZHRkcy90aWxlcy1jb25maWdfMV8xLmR0ZCI+CisKKzwhLS0gRGVmaW5pdGlvbnMgZm9yIFRpbGVzIHR1dG9yaWFsIC0gRnJlbmNoIFZlcnNpb24gLS0+CisKKzx0aWxlcy1kZWZpbml0aW9ucz4KKworICA8IS0tIE1haW4gTGF5b3V0IERlZmluaXRpb24gZGVzY3JpcHRpb24gIC0tPgorICA8ZGVmaW5pdGlvbiBuYW1lPSJtYWluTGF5b3V0IiA+CisJICA8cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IkxlIE1vbmRlIEZpbmFuY2llciBFbiBMaWduZSIgLz4KKwkgIDwhLS0gPHB1dCBuYW1lPSJoZWFkZXIiIHZhbHVlPSIvdHV0b3JpYWwvY29tbW9uL2hlYWRlci5qc3AiIC8+ICAtLT4KKwkgIDxwdXQgbmFtZT0iZm9vdGVyIiB2YWx1ZT0iL3R1dG9yaWFsL2ZyL2NvbW1vbi9mb290ZXIuanNwIiAvPgorCSAgPCEtLSA8cHV0IG5hbWU9Im1lbnUiICAgdmFsdWU9Im1lbnUubWFpbiIgLz4gIC0tPgorCSAgPCEtLSA8cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9Im1haW4ucG9ydGFsLmJvZHkiIC8+ICAtLT4KKyAgPC9kZWZpbml0aW9uPgorICAKKyAgPCEtLSBzZWxlY3QgbGFuZ3VhZ2UgbWVudSAtLT4KKzxkZWZpbml0aW9uIG5hbWU9Im1lbnUubGFuZyIgcGF0aD0iL2NvbW1vbi9zdWJtZW51LmpzcCIgPgorICA8cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iTGFuZ3VlIiAvPgorICA8cHV0TGlzdCBuYW1lPSJpdGVtcyIgPgorICAgIDxhZGQgdmFsdWU9IkVuZ2xpc2giIC8+CisgICAgPGFkZCB2YWx1ZT0iRGV1dGNoIiAvPgorICA8L3B1dExpc3Q+CisgIDxwdXRMaXN0IG5hbWU9ImxpbmtzIiA+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2xhbmcuZG8/bGFuZ3VhZ2U9VUsiIC8+CisgICAgPGFkZCB2YWx1ZT0iL3R1dG9yaWFsL2xhbmcuZG8/bGFuZ3VhZ2U9REUiIC8+CisgIDwvcHV0TGlzdD4KKzwvZGVmaW5pdGlvbj4KKworPC90aWxlcy1kZWZpbml0aW9ucz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9XRUItSU5GL3dlYi54bWwgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlNDEzM2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvV0VCLUlORi93ZWIueG1sCkBAIC0wLDAgKzEsMTAyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIj8+CisKKzwhRE9DVFlQRSB3ZWItYXBwIFBVQkxJQworICAgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4zLy9FTiIKKyAgICJodHRwOi8vamF2YS5zdW4uY29tL2R0ZC93ZWItYXBwXzJfMy5kdGQiPgorCis8d2ViLWFwcD4KKwk8ZGlzcGxheS1uYW1lPlN0cnV0cyBUaWxlcyBEb2N1bWVudGF0aW9uPC9kaXNwbGF5LW5hbWU+CisKKyAgPCEtLSBBY3Rpb24gU2VydmxldCBDb25maWd1cmF0aW9uIC0tPgorICA8c2VydmxldD4KKyAgICA8c2VydmxldC1uYW1lPmFjdGlvbjwvc2VydmxldC1uYW1lPgorICAgIDxzZXJ2bGV0LWNsYXNzPm9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0PC9zZXJ2bGV0LWNsYXNzPiAKKworICAgIDwhLS0KKyAgICBUaWxlcyBjb25maWcgZmlsZXMgYXJlIG5vdyBkZWNsYXJlZCB3aXRoIGVhY2ggVGlsZXNQbHVnaW4gaW4gc3RydXRzLWNvbmZpZy54bWwuCisgICAgRGVjbGFyaW5nIGEgdGlsZXMgY29uZmlnIGZpbGUgaGVyZSBtYWtlcyBpdCBhdmFpbGFibGUgdG8gKmFsbCogVGlsZXNQbHVnaW5zLgorICAgIFRoaXMgaXMgdXNlZnVsIHRvIGhhdmUgY29tbW9uIGRlY2xhcmF0aW9ucy4KKyAgICA8aW5pdC1wYXJhbT4KKyAgICAgICA8cGFyYW0tbmFtZT5kZWZpbml0aW9ucy1jb25maWc8L3BhcmFtLW5hbWU+CisgICAgICAgPHBhcmFtLXZhbHVlPi9XRUItSU5GL3RpbGVzLWRlZnMueG1sLC9XRUItSU5GL3RpbGVzLXRlc3RzLWRlZnMueG1sLAorICAgICAgICAgICAgICAgICAgICAvV0VCLUlORi90aWxlcy10dXRvcmlhbC1kZWZzLnhtbCwKKyAgICAgICAgICAgICAgICAgICAgL1dFQi1JTkYvdGlsZXMtZXhhbXBsZXMtZGVmcy54bWw8L3BhcmFtLXZhbHVlPgorICAgIDwvaW5pdC1wYXJhbT4KKyAgICAtLT4KKworICAgIDxpbml0LXBhcmFtPgorICAgICAgPHBhcmFtLW5hbWU+Y29uZmlnPC9wYXJhbS1uYW1lPgorICAgICAgPHBhcmFtLXZhbHVlPi9XRUItSU5GL3N0cnV0cy1jb25maWcueG1sPC9wYXJhbS12YWx1ZT4KKyAgICA8L2luaXQtcGFyYW0+CisgICAgPGluaXQtcGFyYW0+CisgICAgICA8cGFyYW0tbmFtZT5jb25maWcvZXhhbXBsZXM8L3BhcmFtLW5hbWU+CisgICAgICA8cGFyYW0tdmFsdWU+L1dFQi1JTkYvc3RydXRzLWV4YW1wbGVzLWNvbmZpZy54bWw8L3BhcmFtLXZhbHVlPgorICAgIDwvaW5pdC1wYXJhbT4KKyAgICA8aW5pdC1wYXJhbT4KKyAgICAgIDxwYXJhbS1uYW1lPmNvbmZpZy90ZXN0PC9wYXJhbS1uYW1lPgorICAgICAgPHBhcmFtLXZhbHVlPi9XRUItSU5GL3N0cnV0cy10ZXN0cy1jb25maWcueG1sPC9wYXJhbS12YWx1ZT4KKyAgICA8L2luaXQtcGFyYW0+CisgICAgPGluaXQtcGFyYW0+CisgICAgICA8cGFyYW0tbmFtZT5jb25maWcvdHV0b3JpYWw8L3BhcmFtLW5hbWU+CisgICAgICA8cGFyYW0tdmFsdWU+L1dFQi1JTkYvc3RydXRzLXR1dG9yaWFsLWNvbmZpZy54bWw8L3BhcmFtLXZhbHVlPgorICAgIDwvaW5pdC1wYXJhbT4KKyAgICA8IS0tIAorICAgIDxpbml0LXBhcmFtPgorICAgICAgPHBhcmFtLW5hbWU+Y29uZmlnL2RvYzwvcGFyYW0tbmFtZT4KKyAgICAgIDxwYXJhbS12YWx1ZT4vV0VCLUlORi9zdHJ1dHMtZG9jLWNvbmZpZy54bWw8L3BhcmFtLXZhbHVlPgorICAgIDwvaW5pdC1wYXJhbT4KKyAgICAtLT4KKyAgICA8aW5pdC1wYXJhbT4KKyAgICAgIDxwYXJhbS1uYW1lPnZhbGlkYXRlPC9wYXJhbS1uYW1lPgorICAgICAgPHBhcmFtLXZhbHVlPnRydWU8L3BhcmFtLXZhbHVlPgorICAgIDwvaW5pdC1wYXJhbT4KKyAgICAKKyAgICA8bG9hZC1vbi1zdGFydHVwPjI8L2xvYWQtb24tc3RhcnR1cD4KKyAgPC9zZXJ2bGV0PgorCisgIDwhLS0gQWN0aW9uIFNlcnZsZXQgTWFwcGluZyAtLT4KKyAgPHNlcnZsZXQtbWFwcGluZz4KKyAgICA8c2VydmxldC1uYW1lPmFjdGlvbjwvc2VydmxldC1uYW1lPgorICAgIDx1cmwtcGF0dGVybj4qLmRvPC91cmwtcGF0dGVybj4KKyAgPC9zZXJ2bGV0LW1hcHBpbmc+CisKKworICA8IS0tIFRoZSBXZWxjb21lIEZpbGUgTGlzdCAtLT4KKyAgPHdlbGNvbWUtZmlsZS1saXN0PgorICAgIDx3ZWxjb21lLWZpbGU+aW5kZXguanNwPC93ZWxjb21lLWZpbGU+CisgIDwvd2VsY29tZS1maWxlLWxpc3Q+CisKKyAgIDwhLS0gU2VjdXJpdHkgZm9yIHJvbGUgdGVzdGluZyAtLT4KKyAgICA8c2VjdXJpdHktY29uc3RyYWludD4KKyAgICAgIDx3ZWItcmVzb3VyY2UtY29sbGVjdGlvbj4KKyAgICAgICAgIDx3ZWItcmVzb3VyY2UtbmFtZT5Qcm90ZWN0ZWQgQXJlYTwvd2ViLXJlc291cmNlLW5hbWU+CisJIDwhLS0gRGVmaW5lIHRoZSBjb250ZXh0LXJlbGF0aXZlIFVSTChzKSB0byBiZSBwcm90ZWN0ZWQgLS0+CisgICAgICAgICA8dXJsLXBhdHRlcm4+L3Rlc3QvdGVzdFJvbGUuanNwPC91cmwtcGF0dGVybj4KKyAgICAgIDwhLS0gSWYgeW91IGxpc3QgSFRUUCBtZXRob2RzLCBvbmx5IHRob3NlIG1ldGhvZHMgYXJlIHByb3RlY3RlZCAtLT4KKwkgPGh0dHAtbWV0aG9kPkRFTEVURTwvaHR0cC1tZXRob2Q+CisgICAgICAgICA8aHR0cC1tZXRob2Q+R0VUPC9odHRwLW1ldGhvZD4KKyAgICAgICAgIDxodHRwLW1ldGhvZD5QT1NUPC9odHRwLW1ldGhvZD4KKwkgPGh0dHAtbWV0aG9kPlBVVDwvaHR0cC1tZXRob2Q+CisgICAgICA8L3dlYi1yZXNvdXJjZS1jb2xsZWN0aW9uPgorICAgICAgPGF1dGgtY29uc3RyYWludD4KKyAgICAgICAgIDwhLS0gQW55b25lIHdpdGggb25lIG9mIHRoZSBsaXN0ZWQgcm9sZXMgbWF5IGFjY2VzcyB0aGlzIGFyZWEgLS0+CisgICAgICAgICA8cm9sZS1uYW1lPnRvbWNhdDwvcm9sZS1uYW1lPgorCSAgICAgPHJvbGUtbmFtZT5yb2xlMTwvcm9sZS1uYW1lPgorICAgICAgPC9hdXRoLWNvbnN0cmFpbnQ+CisgICAgPC9zZWN1cml0eS1jb25zdHJhaW50PgorCisgICAgPCEtLSBEZWZhdWx0IGxvZ2luIGNvbmZpZ3VyYXRpb24gdXNlcyBCQVNJQyBhdXRoZW50aWNhdGlvbiAtLT4KKyAgICA8bG9naW4tY29uZmlnPgorICAgICAgPGF1dGgtbWV0aG9kPkJBU0lDPC9hdXRoLW1ldGhvZD4KKyAgICAgIDxyZWFsbS1uYW1lPkV4YW1wbGUgQmFzaWMgQXV0aGVudGljYXRpb24gQXJlYTwvcmVhbG0tbmFtZT4KKyAgICA8L2xvZ2luLWNvbmZpZz4KKworICAgIDwhLS0gRGVmaW5lIHNlY3VyaXR5IHJvbGVzIHVzZWQgaW4gdGhpcyBhcHBsaWNhdGlvbiAtLT4KKyAgICA8c2VjdXJpdHktcm9sZT4KKyAgICAgICAgPHJvbGUtbmFtZT5yb2xlMTwvcm9sZS1uYW1lPgorICAgIDwvc2VjdXJpdHktcm9sZT4KKyAgICA8c2VjdXJpdHktcm9sZT4KKyAgICAgICAgPHJvbGUtbmFtZT50b21jYXQ8L3JvbGUtbmFtZT4KKyAgICA8L3NlY3VyaXR5LXJvbGU+CisgCis8L3dlYi1hcHA+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvY29tbW9uL2Zvb3Rlci5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvY29tbW9uL2Zvb3Rlci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc0NDE0YgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9jb21tb24vZm9vdGVyLmpzcApAQCAtMCwwICsxLDEwIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtaHRtbCIgcHJlZml4PSJodG1sIiAlPgorCis8ZGl2IGFsaWduPSJjZW50ZXIiPgorICA8Zm9udCBjb2xvcj0iIzAyMzI2NCIgc2l6ZT0iLTEiPgorICAgIDxlbT4gICAgICAgICBDb3B5cmlnaHQgJmNvcHk7IDIwMDAtMjAwNCwgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uICAgICAgICAgPC9lbT4KKwk8YnI+CisgICAgPGVtPiAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBDZWRyaWMgRHVtb3VsaW4gICAgICAgICAgICAgICAgICAgICAgICA8L2VtPgorICA8L2ZvbnQ+Cis8L2Rpdj4KKzxodG1sOmltZyBwYWdlPSIvaW1hZ2VzL3N0cnV0cy1wb3dlci5naWYiIGFsaWduPSJyaWdodCIgYm9yZGVyPSIwIi8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvY29tbW9uL2hlYWRlci5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvY29tbW9uL2hlYWRlci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjM2Y2UxMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9jb21tb24vaGVhZGVyLmpzcApAQCAtMCwwICsxLDMgQEAKKzxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZyI+PGltZyBzcmM9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L2ltYWdlcy9hc2YtbG9nby5naWYiIGFsaWduPSJsZWZ0IiBib3JkZXI9IjAiPjwvYT4KKzxhIGhyZWY9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZyI+PGltZyBzcmM9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L2ltYWdlcy9zdHJ1dHMuZ2lmIiBhbGlnbj0icmlnaHQiIGJvcmRlcj0iMCI+PC9hPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvY29tbW9uL3N1Ym1lbnUuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2NvbW1vbi9zdWJtZW51LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDU4NzVjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2NvbW1vbi9zdWJtZW51LmpzcApAQCAtMCwwICsxLDc4IEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtbG9naWMiIHByZWZpeD0ibG9naWMiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtYmVhbiIgcHJlZml4PSJiZWFuIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorPCVAIHBhZ2UgaW1wb3J0PSJqYXZhLnV0aWwuSXRlcmF0b3IiICU+CisKKworPCUtLSBQdXNoIGNvbXBvbmVudCBhdHRyaWJ1dGVzIGluIHBhZ2UgY29udGV4dCAtLSU+Cis8dGlsZXM6aW1wb3J0QXR0cmlidXRlIC8+CisKKzx0YWJsZT4KKzxsb2dpYzpwcmVzZW50IG5hbWU9InRpdGxlIj4KKzx0cj4KKyAgPHRoIGNvbHNwYW49Mj4KKyAgICA8ZGl2IGFsaWduPSJsZWZ0Ij48c3Ryb25nPjxiZWFuOndyaXRlIG5hbWU9InRpdGxlIi8+PC9zdHJvbmc+PC9kaXY+CisgIDwvdGg+Cis8L3RyPgorPC9sb2dpYzpwcmVzZW50PgorCis8JS0tIENoZWNrIGlmIHNlbGVjdGVkIGV4aXN0LiAtLSU+Cis8bG9naWM6bm90UHJlc2VudCBuYW1lPSJzZWxlY3RlZCIgPgorICA8JSBwYWdlQ29udGV4dC5zZXRBdHRyaWJ1dGUoICJzZWxlY3RlZCIsICIiICk7ICU+Cis8L2xvZ2ljOm5vdFByZXNlbnQ+CisKKzwlLS0gUHJlcGFyZSB0aGUgbGlua3MgbGlzdCB0byBiZSBpdGVyYXRlZCAtLSU+Cis8YmVhbjpkZWZpbmUgaWQ9ImxpbmtzIiBuYW1lPSJsaW5rcyIgdHlwZT0iamF2YS51dGlsLkxpc3QiIHNjb3BlPSJwYWdlIiAvPgorPCUgSXRlcmF0b3IgaSA9IGxpbmtzLml0ZXJhdG9yKCk7ICU+CisKKzwlLS0gaXRlcmF0ZSBvbiBpdGVtcyBsaXN0IC0tJT4KKzwlLS0gTm9ybWFsbHksIHdlIHNob3VsZCB3cml0ZSBzb21ldGhpbmcgbGlrZSB0aGlzIDoKKyAgIDxsb2dpYzppdGVyYXRlIGlkPSJpdGVtIiBuYW1lPSJpdGVtcyIgdHlwZT0iamF2YS5sYW5nLlN0cmluZyIgPgorICAgQnV0LCBTdHJ1dHMgZG9lc24ndCBkZWNsYXJlIHRoZSBURUkgY2xhc3MgZm9yIGl0ZXJhdGUsIGFuZCAKKyAgIHNvbWUgd2ViIGNvbnRhaW5lciBkZWFsIGJhZGx5IHdpdGggdGhlIGRlY2xhcmVkIHZhcmlhYmxlLiAKKyAgIFNvLCB3ZSB1c2Ugd2hhdCBmb2xsb3cgaW5zdGVhZC4KKyAgICAtLSU+Cis8bG9naWM6aXRlcmF0ZSBpZD0iaXRlcmF0ZUl0ZW0iIG5hbWU9Iml0ZW1zIiA+Cis8YmVhbjpkZWZpbmUgaWQ9Iml0ZW0iIG5hbWU9Iml0ZXJhdGVJdGVtIiB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIiBzY29wZT0icGFnZSIgLz4KKworCis8dHI+CisgIDx0ZCB3aWR0aD0iMTAiIHZhbGlnbj0idG9wIiA+PC90ZD4KKyAgPHRkIHZhbGlnbj0idG9wIiAgPgorICAgIDwlLS0gY2hlY2sgaWYgc2VsZWN0ZWQgLS0lPgorCTxsb2dpYzpub3RFcXVhbCBuYW1lPSJzZWxlY3RlZCIgdmFsdWU9IjwlPWl0ZW0lPiI+CisJICA8JSAvLyBDb21wdXRlIGxpbmsgdmFsdWUKKwkgICAgU3RyaW5nIGxpbmsgPSAoU3RyaW5nKWkubmV4dCgpOworCSAgICBpZihsaW5rLnN0YXJ0c1dpdGgoIi8iKSApCisJCSAgbGluayA9IHJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSArIGxpbms7CisJICAlPgorCSAgPGZvbnQgc2l6ZT0iLTEiPjxhIGhyZWY9IjwlPWxpbmslPiI+PCU9aXRlbSU+PC9hPjwvZm9udD4KKwk8L2xvZ2ljOm5vdEVxdWFsPgorCTxsb2dpYzplcXVhbCBuYW1lPSJzZWxlY3RlZCIgdmFsdWU9IjwlPWl0ZW0lPiI+CisJICA8Zm9udCBzaXplPSItMSIgY29sb3I9ImZ1Y2hzaWEiPjwlPWl0ZW0lPjwvZm9udD4KKyAgPC9sb2dpYzplcXVhbD4KKyAgPC90ZD4KKzwvdHI+Cis8L2xvZ2ljOml0ZXJhdGU+CisKKzwvdGFibGU+CisKKzwlLS0gRm9sbG93aW5nIGFyZSBzb21lIGNvZGUgZXhhbXBsZSB1c2luZyB0aGlzIHN1Ym1lbnUKKzx0aWxlczppbnNlcnQgcGFnZT0iL2NvbW1vbi9zdWJtZW51LmpzcCIgZmx1c2g9InRydWUiPgorICA8dGlsZXM6cHV0IG5hbWU9InRpdGxlIiB2YWx1ZT0iTWFpbiBNZW51IiAvPgorICA8dGlsZXM6cHV0TGlzdCBuYW1lPSJpdGVtcyIgPgorICAgIDx0aWxlczphZGQgdmFsdWU9IkhvbWUiIC8+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iRWRpdCBDdXN0b21lciIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSJJbnZvaWNlIiAvPgorICA8L3RpbGVzOnB1dExpc3Q+CisgIDx0aWxlczpwdXRMaXN0IG5hbWU9ImxpbmtzIiA+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iaW5kZXguanNwIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9Imludm9pY2UvaW5kZXguanNwIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9Imludm9pY2UvaW5kZXguanNwIiAvPgorICA8L3RpbGVzOnB1dExpc3Q+Cis8L3RpbGVzOmluc2VydD4KKworPHRpbGVzOmluc2VydCBkZWZpbml0aW9uPSJtYWluU3ViTWVudSIgZmx1c2g9InRydWUiPgorICA8dGlsZXM6cHV0IG5hbWU9InNlbGVjdGVkIiB2YWx1ZT0iSG9tZSIgLz4KKzwvdGlsZXM6aW5zZXJ0PgorLS0lPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2NvbW1vbi92aWV3U3JjQm9keS5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvY29tbW9uL3ZpZXdTcmNCb2R5LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTczNmNhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2NvbW1vbi92aWV3U3JjQm9keS5qc3AKQEAgLTAsMCArMSwzOCBAQAorPCVAIHBhZ2UgbGFuZ3VhZ2U9ImphdmEiICU+Cis8JUAgcGFnZSBlcnJvclBhZ2U9Ii9jb21tb24vdmlld1NyY0JvZHlFcnJvci5qc3AiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtYmVhbiIgcHJlZml4PSJiZWFuIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWxvZ2ljIiBwcmVmaXg9ImxvZ2ljIiAlPgorCis8JS0tIEluY2x1ZGUgcmVxdWVzdGVkIHJlc291cmNlIGZpbGUuCisgIElmIGZpbGUgaXMgbm90IGZvdW5kLCBFeGNlcHRpb24gaXMgdGhyb3duLCBhbmQgY2F0Y2hlZCBieSB0aGUgZXJyb3JQYWdlIAorICBkaXJlY3RpdmUgKHNlZSBhYm92ZSkuIEVycm9yIHBhZ2Ugc2hvdyBhIG1lc3NhZ2UuICAgCistLSU+CisKKyAgPCUtLSBJbXBvcnQgY29tcG9uZW50IGF0dHJpYnV0ZXMsIGlmIGFueS4KKyAgIC0tJT4KKyAgIAorCis8dGlsZXM6aW1wb3J0QXR0cmlidXRlLz4KKworPGxvZ2ljOm5vdFByZXNlbnQgbmFtZT0ic3JjUGF0aCIgPgorICA8bG9naWM6cHJlc2VudCBwYXJhbWV0ZXI9InNyYyIgPgorICA8YmVhbjpwYXJhbWV0ZXIgaWQ9InNyY1BhdGgiIG5hbWU9InNyYyIgLz4KKyAgPC9sb2dpYzpwcmVzZW50PiAgCis8L2xvZ2ljOm5vdFByZXNlbnQ+CisgICAgIAorCis8bG9naWM6cHJlc2VudCBuYW1lPSJzcmNQYXRoIiA+Cis8YmVhbjpkZWZpbmUgaWQ9InNyY1BhdGhWYXIiIG5hbWU9InNyY1BhdGgiIHR5cGU9ImphdmEubGFuZy5TdHJpbmciLz4KKzxiZWFuOnJlc291cmNlIGlkPSJzcmMiIG5hbWU9IjwlPXNyY1BhdGhWYXIlPiIgLz4KKzxzdHJvbmc+ZmlsZSAnPCU9c3JjUGF0aFZhciU+Jzwvc3Ryb25nPgorPGJyPgorPHByZT4KKzxiZWFuOndyaXRlIGZpbHRlcj0idHJ1ZSIgbmFtZT0ic3JjIiBzY29wZT0icGFnZSIvPgorPC9wcmU+Cis8YnI+Cis8L2xvZ2ljOnByZXNlbnQ+CisKKzxsb2dpYzpub3RQcmVzZW50IG5hbWU9InNyY1BhdGgiID4KK05vIHNvdXJjZSBzcGVjaWZpZWQgIQorPC9sb2dpYzpub3RQcmVzZW50PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy9jb21wYXRpYmlsaXR5Q2hhbmdlcy5odG1sIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy9jb21wYXRpYmlsaXR5Q2hhbmdlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkODU1NjcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL2NvbXBhdGliaWxpdHlDaGFuZ2VzLmh0bWwKQEAgLTAsMCArMSw5OCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiI+Cis8aGVhZD4KKwk8dGl0bGU+Q29tcG9uZW50cyA6IEJhY2t3YXJkIENvbXBhdGliaWxpdHkgQ2hhbmdlczwvdGl0bGU+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiIC8+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgxIGFsaWduPSJjZW50ZXIiPkJhY2t3YXJkIENvbXBhdGliaWxpdHkgQ2hhbmdlcyA8L2gxPgorCisKKzx0YWJsZSAgYm9yZGVyPSIyIj4KKyAgPHRyPgorICAgIDx0ZD4KKyAgICAgIDxwIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXIiPjxiPkRlcHJlY2F0ZWQ8L2I+PC9wPjwvdGQ+CisgICAgPHRkPgorICAgICAgPHAgYWxpZ249ImNlbnRlciIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlciI+PGI+TmV3IHVzYWdlPC9iPjwvcD48L3RkPjwvdHIKKyAgICAgID4KKyAgPHRyPgorICAgIDx0ZD4KKyAgICAgICZsdDtpbmNsdWRlICZndDs8L3RkPgorICAgIDx0ZD4KKyAgICAgICZsdDtpbnNlcnQgJmd0OzwvdGQ+PC90cj4KKyAgPHRyPgorICAgIDx0ZD4KKyAgICAgICZsdDtwdXRBdHRyaWJ1dGUgJmd0OzwvdGQ+CisgICAgPHRkPgorICAgICAgJmx0O2dldEFzU3RyaW5nICZndDs8L3RkPjwvdHI+CisgIDx0cj4KKyAgICA8dGQ+CisgICAgICAmbHQ7Z2V0QXR0cmlidXRlICZndDs8L3RkPgorICAgIDx0ZD4KKyAgICAgICZsdDtnZXRBc1N0cmluZyAmZ3Q7PC90ZD48L3RyPgorICA8dHI+CisgICAgPHRkPiZsdDsgaW5zdGFuY2U9ICZndDsgPGJyIC8+CisgIChpbiB0YWcgJmx0O2luc2VydCAmZ3Q7IG9yICZsdDtpbmNsdWRlICZndDspPC90ZD4KKyAgICA8dGQ+CisgICAgICAmbHQ7IGRlZmluaXRpb249ICZndDsgPGJyIC8+CisgIChpbiB0YWcgJmx0O2luc2VydCAmZ3Q7KSZsdDsgIDwvdGQ+PC90cj4KKyAgPHRyPgorICAgIDx0ZD4KKyAgICAgIDxwIGFsaWduPSJsZWZ0Ij5EZWZhdWx0IGRlZmluaXRpb25zIGZpbGUgbmFtZSA6IDwvcD4KKworICAgICAgPHVsPgorICAgICAgICA8bGk+CisgICAgICAgIDxkaXYgYWxpZ249ImxlZnQiPmNvbXBvbmVudEluc3RhbmNlcy54bWwgPC9kaXY+CisgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT4KKyAgICAgICAgPGRpdiBhbGlnbj0ibGVmdCI+dGVtcGxhdGVEZWZpbml0aW9ucy54bWwgPC9kaXY+IDwvbGk+PC91bD48L3RkPgorICAgIDx0ZD4KKyAgICAgIFNldmVyYWwgcG9zc2liaWxpdGllcyA6CisgICAgICA8dWw+CisgICAgICAgIDxsaT5LZWVwIHNhbWUgbmFtZSBhbmQgc2V0IGl0IGluIHhtbC1jb25maWcueG1sOgorPC9saT48L3VsPgorICAgICAgPGRpdiBhbGlnbj0iY2VudGVyIj4KKzx0YWJsZSAgYm9yZGVyPSIyIj4KKzx0cj4KKyAgICA8dGQ+CisgICAgICA8cD4KKyAgICAgICAmbHQ7aW5pdC1wYXJhbSZndDs8YnIgLz4KKyAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7cGFyYW0tbmFtZSZndDs8YnIgLz4KKyAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBkZWZpbml0aW9ucy1jb25maWc8YnIgLz4KKyAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7L3BhcmFtLW5hbWUmZ3Q7PGJyIC8+CisgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJmx0O3BhcmFtLXZhbHVlJmd0OzxiciAvPgorICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC9XRUItCisgICAgICBJTkYvdGVtcGxhdGVEZWZpbml0aW9ucy54bWw8YnIgLz4mbmJzcDsmbmJzcDsKKworICAgICAgJm5ic3A7Jm5ic3A7ICZsdDsvcGFyYW0tdmFsdWUmZ3Q7PGJyIC8+CisgICAgJm5ic3A7Jmx0Oy9pbml0LXBhcmFtJmd0OzwvcD4KKwk8L3RkPgorPC90cj4KKzwvdGFibGU+PC9kaXY+CisgICAgICA8dWw+CisgICAgICAgIDxsaT5DaGFuZ2UgbmFtZSB0byBuZXcgZGVmYXVsdAorICAgICAgICAoY29tcG9uZW50RGVmaW5pdGlvbnMueG1sKSA8L2xpPjwvdWw+PC90ZD48L3RyPgorICA8dHI+CisgICAgPHRkPgorICAgICAgQ29tcG9uZW50cyBwYXJhbWV0ZXIgbmFtZXMgaW4gd2ViLnhtbDoKKyAgICAgIDx1bD4KKyAgICAgICAgPGxpPmluc3RhbmNlcy1jb25maWcgICAgICAgIDwvbGk+CisgICAgICAgIDxsaT5pbnN0YW5jZXMtZGVidWcgPC9saT48L3VsPjwvdGQ+CisgICAgPHRkPgorICAgICAgJm5ic3A7CisgICAgICBVc2UgbmV3IG5hbWVzIDoKKyAgICAgIDx1bD4KKyAgICAgICAgPGxpPmRlZmluaXRpb25zLWNvbmZpZyAgICAgICAgPC9saT4KKyAgICAgICAgPGxpPmRlZmluaXRpb25zLWRlYnVnCis8L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+CitUbyB1cGRhdGUgeW91ciB3ZWIgc2l0ZSwgcmVwbGFjZSBhbGwgZGVwcmVjYXRlZCB0YWdzIHdpdGggbmV3Cit0YWdzLgorPGJyIC8+CitZb3UgY2FuIHVzZSByZXBsYWNlbWVudAordG9vbHMgdG8gc2VhcmNoIGZvciA8c3Ryb25nPjppbmNsdWRlIDwvc3Ryb25nPnRvIGJlIHJlcGxhY2VkIGJ5Cis8c3Ryb25nPjppbnNlcnQKKzwvc3Ryb25nPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL2NvbXBzMlRpbGVzLmh0bWwgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL2NvbXBzMlRpbGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGE3MTM2NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvY29tcHMyVGlsZXMuaHRtbApAQCAtMCwwICsxLDExOCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiI+Cis8aGVhZD4KKwk8dGl0bGU+Q29tcG9uZW50cyA6IEJhY2t3YXJkIENvbXBhdGliaWxpdHkgQ2hhbmdlczwvdGl0bGU+CisgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiIC8+Cis8L2hlYWQ+CisKKzxib2R5PgorPGgxIGFsaWduPSJjZW50ZXIiPkNvbXBvbmVudHMgdG8gVGlsZXMgPGJyIC8+CitNaWdyYXRpb24gUGF0aDwvaDE+CisKKzxoMj5JbiBXZWJhcHBzPC9oMj4KKzx1bD4KKyAgPGxpPlB1dCAidGlsZXMudGxkIiBhbmQgInRpbGVzLmphciIgaW4gIFdFQi1JTkYvPC9saT4KKyAgPGxpPlJlcGxhY2UgYWxsIHJlZmVyZW5jZSB0byAnY29tcG9uZW50cy50bGQnJm5ic3A7YnkgJ3RpbGVzLnRsZCcgaW4gKi5qc3AgYW5kICoueG1sIGZpbGVzLjwvbGk+CisgIDxsaT5SZXBsYWNlIG9sZCBwYWNrYWdlIG5hbWUgYnkgbmV3IG9uZSB3aGVyZXZlciB5b3UgdXNlIHBhY2thZ2UgbmFtZSAoZG9uJ3QgZm9yZ2V0IHdlYi54bWwgYW5kCisgIHN0cnV0cy1jb25maWcueG1sKQorICAgIDx1bD4KKyAgICAgIDxsaT5zMS5zdHJ1dHMuY29tcG9uZW50cyAtLSZndDsgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L2xpPgorICAgICAgPGxpPnMxLnN0cnV0cy5leGFtcGxlLmNvbXBvbmVudC0tJmd0OyBvcmcuYXBhY2hlLnN0cnV0cy5leGFtcGxlLnRpbGVzPC9saT4KKyAgICAgIDxsaT5zMS5zdHJ1dHMudGFnbGliLmNvbXBvbmVudHMgLS0mZ3Q7IG9yZy5hcGFjaGUuc3RydXRzLnRhZ2xpYi50aWxlczwvbGk+CisgICAgPC91bD4KKyAgPC9saT4KKyAgPC91bD4KKworPGgyPkluIEphdmEgY29kZTwvaDI+Cis8dWw+CisgIDxsaT5JZiBzb21lIG9mIHlvdXIgamF2YSBjb2RlIHVzZSBvciBleHRlbmRzIG9sZAorICBDb21wb25lbnRzIGNsYXNzZXMsIHlvdSBuZWVkIHRvIHJlbmFtZSBpbXBvcnRlZCBjbGFzc2VzIDoKKyAgPHVsPgorICAgIDxsaT5zMS5zdHJ1dHMuY29tcG9uZW50cyAtLSZndDsgb3JnLmFwYWNoZS5zdHJ1dHMudGlsZXM8L2xpPgorICAgIDxsaT5zMS5zdHJ1dHMuZXhhbXBsZS5jb21wb25lbnQtLSZndDsgb3JnLmFwYWNoZS5zdHJ1dHMuZXhhbXBsZS50aWxlczwvbGk+CisgICAgPGxpPnMxLnN0cnV0cy50YWdsaWIuY29tcG9uZW50cyAtLSZndDsgb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzPC9saT4KKyAgPC91bD4KKyAgPC9saT4KKzwvdWw+CisKKzxoMj5UaXBzPC9oMj4KKzx1bD4KKyAgPGxpPkpidWlsZGVyIDUgaGF2ZSBhIHRvb2wgY2FsbGVkICJwYWNrYWdlIG1pZ3JhdGlvbiIuIFlvdSBjYW4gZGVmaW5lIHlvdXIgb3duIAorICAgICAgc2V0IG9mIG1pZ3JhdGlvbiBuYW1lIHVzaW5nIHByZXZpb3VzbHkgZGVmaW5lZCBydWxlcy48L2xpPgorICA8bGkgPkxvdCBvZiB0b29scyAobGlrZSBIb21lU2l0ZSkgaGF2ZSBleHRlbmRlZCByZXBsYWNlIGNvbW1hbmQuPC9saT4KKzwvdWw+CisKKzxoMiA+VmVyeSBvbGQgY29tcG9uZW50IHZlcnNpb25zPC9oMj4KKzxwPklmIHlvdSB1c2UgYSB2ZXJ5IG9sZCBjb21wb25lbnQgdmVyc2lvbiwgeW91IGFsc28gaGF2ZSB0byBjaGFuZ2Ugc29tZSB0YWdzIGFuZCBuYW1lcyA6PC9wPgorCis8dGFibGUgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iNSIgY2VsbHNwYWNpbmc9IjAiPgorICA8dHI+CisgICAgPHRkPgorICAgICAgPHAgYWxpZ249ImNlbnRlciIgc3R5bGU9IlRFWFQtQUxJR046IGNlbnRlciI+PGI+RGVwcmVjYXRlZDwvYj48L3A+PC90ZD4KKyAgICA8dGQ+CisgICAgICA8cCBhbGlnbj0iY2VudGVyIiBzdHlsZT0iVEVYVC1BTElHTjogY2VudGVyIj48Yj5OZXcgdXNhZ2U8L2I+PC9wPjwvdGQ+PC90cj4KKyAgPHRyPgorICAgIDx0ZD4mbHQ7aW5jbHVkZSAmZ3Q7PC90ZD4KKyAgICA8dGQ+Jmx0O2luc2VydCAmZ3Q7PC90ZD48L3RyPgorICA8dHI+CisgICAgPHRkPiZsdDtwdXRBdHRyaWJ1dGUgJmd0OzwvdGQ+CisgICAgPHRkPiZsdDtnZXRBc1N0cmluZyAmZ3Q7PC90ZD48L3RyPgorICA8dHI+CisgICAgPHRkPiZsdDtnZXRBdHRyaWJ1dGUgJmd0OzwvdGQ+CisgICAgPHRkPiZsdDtnZXRBc1N0cmluZyAmZ3Q7PC90ZD48L3RyPgorICA8dHI+CisgICAgPHRkPiZsdDsgaW5zdGFuY2U9ICZndDsgPGJyIC8+CisgIChpbiB0YWcgJmx0O2luc2VydCAmZ3Q7IG9yICZsdDtpbmNsdWRlICZndDspPC90ZD4KKyAgICA8dGQ+CisgICAgICAmbHQ7IGRlZmluaXRpb249ICZndDsgPGJyIC8+CisgIChpbiB0YWcgJmx0O2luc2VydCAmZ3Q7KSZsdDsgPC90ZD48L3RyPgorICA8dHI+CisgICAgPHRkPgorICAgICAgPHA+RGVmYXVsdCBkZWZpbml0aW9ucyBmaWxlIG5hbWUgOiA8L3A+CisgICAgICA8dWw+CisgICAgICAgIDxsaT5jb21wb25lbnRJbnN0YW5jZXMueG1sPC9saT4KKyAgICAgICAgPGxpPnRlbXBsYXRlRGVmaW5pdGlvbnMueG1sPC9saT4KKyAgICAgIDwvdWw+CisgICAgICA8L3RkPgorICAgIDx0ZD4KKyAgICAgIFNldmVyYWwgcG9zc2liaWxpdGllcyA6CisgICAgICA8dWw+CisgICAgICAgIDxsaT5LZWVwIHNhbWUgbmFtZSBhbmQgc2V0IGl0IGluIHhtbC1jb25maWcueG1sOgorICAgICAgICA8L2xpPgorICAgICAgPC91bD4KKzxwcmU+CisgICAgJmx0O2luaXQtcGFyYW0mZ3Q7CisgICAgICAgICZsdDtwYXJhbS1uYW1lJmd0OworICAgICAgICAgIGRlZmluaXRpb25zLWNvbmZpZworICAgICAgICAmbHQ7L3BhcmFtLW5hbWUmZ3Q7CisgICAgICAgICZsdDtwYXJhbS12YWx1ZSZndDsKKyAgICAgICAgICAvV0VCLUlORi90ZW1wbGF0ZURlZmluaXRpb25zLnhtbAorICAgICAgICAmbHQ7L3BhcmFtLXZhbHVlJmd0OworICAgICZsdDsvaW5pdC1wYXJhbSZndDsKKzwvcHJlPgorICAgIDx1bD4KKyAgICAgICAgPGxpPkNoYW5nZSBuYW1lIHRvIG5ldyBkZWZhdWx0IChjb21wb25lbnREZWZpbml0aW9ucy54bWwpPC9saT4KKyAgICA8L3VsPjwvdGQ+PC90cj4KKyAgPHRyPgorICAgIDx0ZD4KKyAgICBDb21wb25lbnRzIHBhcmFtZXRlciBuYW1lcyBpbiB3ZWIueG1sOgorICAgIDx1bD4KKyAgICAgICAgPGxpPmluc3RhbmNlcy1jb25maWc8L2xpPgorICAgICAgICA8bGk+aW5zdGFuY2VzLWRlYnVnPC9saT4KKyAgICA8L3VsPgorICAgIDwvdGQ+CisgICAgPHRkPgorICAgIFVzZSBuZXcgbmFtZXMgOgorICAgIDx1bD4KKyAgICAgIDxsaT5kZWZpbml0aW9ucy1jb25maWc8L2xpPgorICAgICAgPGxpPmRlZmluaXRpb25zLWRlYnVnPC9saT4KKyAgICA8L3VsPgorICAgIDwvdGQ+CisgIDwvdHI+Cis8L3RhYmxlPgorPHA+VG8gdXBkYXRlIHlvdXIgd2ViIHNpdGUsIHJlcGxhY2UgYWxsIGRlcHJlY2F0ZWQgdGFncyB3aXRoIG5ldyB0YWdzLjwvcD4KKzxwPllvdSBjYW4gdXNlIHJlcGxhY2VtZW50IHRvb2xzIHRvIHNlYXJjaCBmb3IgPHN0cm9uZz46aW5jbHVkZSA8L3N0cm9uZz50byBiZSAKK3JlcGxhY2VkIGJ5IDxzdHJvbmc+Omluc2VydCA8L3N0cm9uZz48L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL2Rvd25sb2FkLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvZG93bmxvYWQuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0OWIyZjcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL2Rvd25sb2FkLmpzcApAQCAtMCwwICsxLDYgQEAKKzwlQCBwYWdlIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249ImRvYy5tYWluTGF5b3V0IiBmbHVzaD0idHJ1ZSI+CisgIDx0aWxlczpwdXQgbmFtZT0iYm9keSIgdmFsdWU9Ii9kb2MvcG9ydGFsL2Rvd25sb2FkLmpzcCIgLz4KKzwvdGlsZXM6aW5zZXJ0PiAgCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL2V4dGVuc2lvbnNUYWdzLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvZXh0ZW5zaW9uc1RhZ3MuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1NjdiZmEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL2V4dGVuc2lvbnNUYWdzLmpzcApAQCAtMCwwICsxLDYgQEAKKzwlQCBwYWdlIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249ImRvYy5tYWluTGF5b3V0IiBmbHVzaD0idHJ1ZSI+CisgIDx0aWxlczpwdXQgbmFtZT0iYm9keSIgdmFsdWU9Ii9kb2MvZXh0ZW5zaW9uc1RhZ3MuaHRtbCIgLz4KKzwvdGlsZXM6aW5zZXJ0PiAgCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL2luZGV4LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvaW5kZXguanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjYjI1ODQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL2luZGV4LmpzcApAQCAtMCwwICsxLDQgQEAKKzwlQCBwYWdlIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249ImRvYy5tYWluTGF5b3V0IiBmbHVzaD0idHJ1ZSIgLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvaW5zdGFsbGF0aW9uLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvaW5zdGFsbGF0aW9uLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2U3ODAzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy9pbnN0YWxsYXRpb24uanNwCkBAIC0wLDAgKzEsNiBAQAorPCVAIHBhZ2UgbGFuZ3VhZ2U9ImphdmEiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgZGVmaW5pdGlvbj0iZG9jLm1haW5MYXlvdXQiIGZsdXNoPSJ0cnVlIj4KKyAgPHRpbGVzOnB1dCBuYW1lPSJib2R5IiB2YWx1ZT0iL2RvYy9pbnN0YWxsYXRpb24uaHRtbCIgLz4KKzwvdGlsZXM6aW5zZXJ0PiAgCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL292ZXJ2aWV3LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2Mvb3ZlcnZpZXcuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5Y2M2N2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL292ZXJ2aWV3LmpzcApAQCAtMCwwICsxLDYgQEAKKzwlQCBwYWdlIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249ImRvYy5tYWluTGF5b3V0IiBmbHVzaD0idHJ1ZSI+CisgIDx0aWxlczpwdXQgbmFtZT0iYm9keSIgdmFsdWU9Ii9kb2Mvb3ZlcnZpZXdCb2R5Lmh0bWwiIC8+Cis8L3RpbGVzOmluc2VydD4gIApkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy9wb3J0YWwvY29tbWVudHMuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy9wb3J0YWwvY29tbWVudHMuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjNTM0MjkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC9jb21tZW50cy5qc3AKQEAgLTAsMCArMSwxNSBAQAorPHRhYmxlICB3aWR0aD0iMTAwJSI+Cis8dHI+Cis8dGggYmdjb2xvcj0iYXF1YSI+PGZvbnQgc2l6ZT0iKzEiPjxzdHJvbmc+R2l2ZSBZb3VyIEZlZWRiYWNrIAorICAgICAgITwvU1RST05HPjwvRk9OVD48L1RIPjwvVFI+Cis8dHI+Cis8dGQ+CisgICAgICA8UCBhbGlnbj1jZW50ZXI+CisgICAgICA8Rk9OVCBzaXplPTI+CisJICBUaGlzIGxpYnJhcnkgaXMgYSBhbGl2ZS4gRmVlbCBmcmVlIHRvIGdpdmUgeW91ciBmZWVkYmFjayBvbiBpdCAhCisJICA8YnI+CisJICBJZiB5b3UgaGF2ZSBhbnkgaWRlYSB0byBpbXByb3ZlIGl0LCBsZXQgbWUga25vdyAhIAorICAgICAgPGJyPkNvbnRhY3QgbWUgYXQgOiAKKyAgICAgIDxicj48QSBocmVmPSJtYWlsdG86Y2VkcmljQGFwYWNoZS5vcmciPmNlZHJpY0BhcGFjaGUub3JnPC9BPgorCSAgPGJyPm9yIDxBIGhyZWY9Im1haWx0bzpjZWRyaWMuZHVtb3VsaW5AbGlmbC5mciI+Y2VkcmljLmR1bW91bGluQGxpZmwuZnI8L0E+IAorICAgICAgPC9GT05UPjwvUD48L1REPjwvVFI+PC9UQUJMRT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC9kb2N1bWVudGF0aW9uLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvcG9ydGFsL2RvY3VtZW50YXRpb24uanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmMzAwMTgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC9kb2N1bWVudGF0aW9uLmpzcApAQCAtMCwwICsxLDIzIEBACis8dGFibGUgIHdpZHRoPSIxMDAlIj4KKzx0cj4KKzx0aCBiZ0NvbG9yPSMwMGZmZmYgPjxmb250IHNpemU9IisxIj48c3Ryb25nPkRvY3VtZW50YXRpb248L3N0cm9uZz48L2ZvbnQ+PC90aD4KKzwvdHI+CisgIDxUUj4KKyAgICA8VEQ+PEEgaHJlZj0iaHR0cDovL3d3dy5saWZsLmZyL35kdW1vdWxpbi90aWxlcy90aWxlc0FkdmFuY2VkRmVhdHVyZXMucGRmIj48UCBhbGlnbj1jZW50ZXI+PEZPTlQgCisgICAgc2l6ZT0yPnRpbGVzQWR2YW5jZWRGZWF0dXJlcy5wZGYgKGRyYWZ0KTwvRk9OVD48L0E+PC9QPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURD48ZGl2IGFsaWduPSJjZW50ZXIiPjxBIGhyZWY9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L2FwaS9pbmRleC5odG1sIj48Rk9OVCAKKyAgICAgIHNpemU9Mj5BUEk8L0ZPTlQ+PC9BPjwvZGl2PjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURD48QSBocmVmPSJodHRwOi8vd3d3Lm1hbm5pbmcuY29tL2h1c3RlZC9pbmRleC5odG1sIj48UCBhbGlnbj1jZW50ZXI+PEZPTlQgCisgICAgc2l6ZT0yPlN0cnV0cyBpbiBBY3Rpb24gKGJvb2spPC9GT05UPjwvQT48L1A+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREPjxBIGhyZWY9Imh0dHA6Ly93d3ctMTA2LmlibS5jb20vZGV2ZWxvcGVyd29ya3MvamF2YS9saWJyYXJ5L2otc3RydXRzdGlsZXMvP2xvYz1qIj48UCBhbGlnbj1jZW50ZXI+PEZPTlQgCisgICAgc2l6ZT0yPlN0cnV0cyBhbmQgVGlsZXMgYWlkIGNvbXBvbmVudC1iYXNlZCBkZXZlbG9wbWVudCAoYXJ0aWNsZSk8L0ZPTlQ+PC9BPjwvUD48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQ+PEEgaHJlZj0iaHR0cDovL3d3dy5qYXZhd29ybGQuY29tL2phdmF3b3JsZC9qdy0wMS0yMDAyL2p3LTAxMDQtdGlsZXN0cnV0Lmh0bWwiPjxQIGFsaWduPWNlbnRlcj48Rk9OVCAKKyAgICBzaXplPTI+IFVJIGRlc2lnbiB3aXRoIFRpbGVzIGFuZCBTdHJ1dHMgKGFydGljbGUpPC9GT05UPjwvQT48L1A+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREPjxBIGhyZWY9Imh0dHA6Ly93d3cuYW1hem9uLmNvbS9leGVjL29iaWRvcy9BU0lOLzA1OTYwMDMyODUvcmVmJTNEcGQlNUZzaW1zJTVGZHAlNUYlNUYxLzAwMi0yNjk3Mzg5LTc5NzEyMzgiPjxQIGFsaWduPWNlbnRlcj48Rk9OVCAKKyAgICBzaXplPTI+UHJvZ3JhbW1pbmcgSmFrYXJ0YSBTdHJ1dHMgYnkgQ2h1Y2sgQ2F2YW5lc3MgKGJvb2spPC9GT05UPjwvQT48L1A+PC9URD48L1RSPgorPC90YWJsZT4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvcG9ydGFsL2Rvd25sb2FkLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvcG9ydGFsL2Rvd25sb2FkLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzA1NTAwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy9wb3J0YWwvZG93bmxvYWQuanNwCkBAIC0wLDAgKzEsOTMgQEAKKyAgICAgIDx0YWJsZSB3aWR0aD0iMTAwJSI+CisgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGggYmdjb2xvcj0iYXF1YSI+CisgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIrMSI+PHN0cm9uZz5Eb3dubG9hZDwvc3Ryb25nPjwvZm9udD4gCisgICAgPC90aD48L3RyPgorICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgPHA+PC9wPgorCisJCSAgCisgICAgICA8RElWIGFsaWduPWNlbnRlcj4KKyAgICAgIDxkaXYgYWxpZ249ImNlbnRlciI+CisgICAgICA8Zm9udCBzaXplPSIyIj5DaG9vc2UgYmV0d2VlbiBiaW5hcmllcyBvciBzb3VyY2VzIGRpc3RyaWJ1dGlvbjwvZm9udD4gPC9kaXY+CisJICA8YnI+CisJICA8RElWIGFsaWduPWNlbnRlcj48Rk9OVCBzaXplPTI+TGF0ZXN0IGJ1aWxkIDogQGNvbXBpbGF0aW9uLWRhdGVAIDwvRk9OVD48L0RJVj4KKyAgICAgIDxESVYgYWxpZ249Y2VudGVyPgorCQkgIAorCQkgIAorICAgICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIyIj4KKyAgICAgICAgICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGFsaWduPSJjZW50ZXIiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7PGZvbnQgY29sb3I9IiNmZjAwMDAiPjxzdHJvbmc+RGV2ZWxvcG1lbnQ8L3N0cm9uZz48L2ZvbnQ+IAorCQkJCQkJCSAgPGJyPgorCQkJCQkJCSAgPC9wPjwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBhbGlnbj0iY2VudGVyIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb250IHNpemU9IjIiPjxzdHJvbmc+YmluYXJpZXM8YnI+PC9zdHJvbmc+KHNyYyBleGNsdWRlZCk8L2ZvbnQ+IDwvcD48L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgYWxpZ249ImNlbnRlciI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj48c3Ryb25nPnNvdXJjZXM8L3N0cm9uZz48L2ZvbnQ+IDwvcD48L3RkPjwvdHI+CisgICAgICAgICAgICAgICAgICAgICA8dHI+CisgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGFsaWduPSJyaWdodCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj48c3Ryb25nPk1haW4gc2l0ZSA6PGJyPjwvc3Ryb25nPig8YSBocmVmPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cubGlmbC5mci9+ZHVtb3VsaW4vdGlsZXMiPnd3dy5saWZsLmZyPC9hPik8L2ZvbnQ+IDwvZGl2PjwvdGQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDovL3d3dy5saWZsLmZyL35kdW1vdWxpbi90aWxlcy90aWxlcy56aXAiPjxzdHJvbmc+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWxlcy56aXA8L3N0cm9uZz48L2E+IDwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cubGlmbC5mci9+ZHVtb3VsaW4vdGlsZXMvdGlsZXMudGFyLmd6Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+dGlsZXMudGFyLmd6PC9zdHJvbmc+PC9hPiA8L2Rpdj48L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cubGlmbC5mci9+ZHVtb3VsaW4vdGlsZXMvdGlsZXMtc3JjLnppcCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIiPjxzdHJvbmc+dGlsZXMtc3JjLnppcDwvc3Ryb25nPjwvZm9udD48L2E+IDwvZGl2PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cubGlmbC5mci9+ZHVtb3VsaW4vdGlsZXMvdGlsZXMtc3JjLnRhci5neiI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPjxmb250IHNpemU9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMiI+dGlsZXMtc3JjLnRhci5nejwvZm9udD48L3N0cm9uZz48L2E+IAorPC9kaXY+PC90ZD48L3RyPgorICAgICAgICAgICAgICAgICAgICAgPHRyPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBhbGlnbj0icmlnaHQiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvbnQgc2l6ZT0iMiI+PHN0cm9uZz5NaXJyb3IgCisgICAgICAgICAgICA6PC9zdHJvbmc+PC9mb250PiA8L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgYWxpZ249InJpZ2h0Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb250IHNpemU9IjIiPig8YSBocmVmPSJodHRwOi8vd3d3Lmdlb2NpdGllcy5jb20vY2VkcmljRHVtb3VsaW4vdGlsZXMiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3d3Lmdlb2NpdGllcy5jb208L2E+KTwvZm9udD4gPC9kaXY+PC90ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3Lmdlb2NpdGllcy5jb20vY2VkcmljZHVtb3VsaW4vdGlsZXMvdGlsZXMuemlwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+dGlsZXMuemlwPC9zdHJvbmc+PC9hPiA8L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgYWxpZ249ImxlZnQiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz48YSBocmVmPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cuZ2VvY2l0aWVzLmNvbS9jZWRyaWNkdW1vdWxpbi90aWxlcy90aWxlcy50YXIuZ3oiPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlsZXMudGFyLmd6PC9hPjwvc3Ryb25nPiA8L2Rpdj48L3RkPgorICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBhbGlnbj0ibGVmdCI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cuZ2VvY2l0aWVzLmNvbS9jZWRyaWNkdW1vdWxpbi90aWxlcy90aWxlcy1zcmMuemlwIj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb250IHNpemU9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMiI+PHN0cm9uZz50aWxlcy1zcmMuemlwPC9zdHJvbmc+PC9mb250PjwvYT4gPC9kaXY+CisgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+PGEgaHJlZj0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwOi8vd3d3Lmdlb2NpdGllcy5jb20vY2VkcmljZHVtb3VsaW4vdGlsZXMvdGlsZXMtc3JjLnRhci5neiI+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjIiPmNvbXBvbmVudHMtc3JjLnRhci5nejwvZm9udD48L2E+PC9zdHJvbmc+IAorICAgICAgICAgIDwvZGl2PjwvdGQ+PC90cj4KKyAgICA8L3RhYmxlPjwvRElWPgorCSAgPGJyPgorICAgICAgPERJViBhbGlnbj1jZW50ZXI+PEZPTlQgc2l6ZT0yPjxGT05UIHNpemU9Mj4KKwkgIDxFTT48U1RST05HPlRpbGVzIDwvU1RST05HPjwvRU0+aXMgYWxzbyBkaXN0cmlidXRlZCB3aXRoPFNUUk9ORz4gPEVNPlN0cnV0cyAxLjEgLiAKKyAgICAgIDxCUj4gICAKKyAgICAgIDwvRU0+PC9TVFJPTkc+WW91IGNhbiBkb3dubG9hZCBpdCBieSBkb3dubG9hZGluZyA8QSAKKyAgICAgIGhyZWY9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZyI+PFNUUk9ORz48RU0+U3RydXRzPC9FTT48L1NUUk9ORz48L0E+PFNUUk9ORz48RU0+LjwvRU0+PC9TVFJPTkc+PC9GT05UPjwvRk9OVD48L0RJVj48L0RJVj48L3RkPjwvdHI+PC90YWJsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC9mZWF0dXJlcy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC9mZWF0dXJlcy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJhMzBkZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvcG9ydGFsL2ZlYXR1cmVzLmpzcApAQCAtMCwwICsxLDE2MCBAQAorICAgICAgPHRhYmxlIHdpZHRoPSIxMDAlIj4KKyAgICAgICAgIDx0cj4KKyAgICAgICAgICAgIDx0aCBiZ2NvbG9yPSJhcXVhIj4KKyAgICAgICAgICAgICAgIDxmb250IHNpemU9IisxIj48c3Ryb25nPlRpbGVzIExpYnJhcnk8YnI+CisgICAgICAgICAgICAgICAgRmVhdHVyZXMgT3ZlcnZpZXc8L3N0cm9uZz48L2ZvbnQ+IAorICAgICAgICAgICAgPC90aD4KKyAgICAgICAgIDwvdHI+CisgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQ+CisgICAgICAgICAgICAgICA8cD4KKyAgICAgICAgICAgICAgICAgIDxmb250IHNpemU9IjIiPjxzdHJvbmc+PGZvbnQgc2l6ZT0iMiI+PHN0cm9uZz5Gb2xsb3dpbmcgaXMgYW4KKyAgICAgICAgICAgICAgICAgIG92ZXJ2aWV3IG9mIHdoYXQgY2FuIGJlIGRvbmUgd2l0aCBUaWxlcworICAgICAgICAgICAgICAgICAgOjwvc3Ryb25nPjwvZm9udD48L3N0cm9uZz48L2ZvbnQ+CisgICAgICAgICAgICAgICA8L3A+CisgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj5TY3JlZW4gZGVmaW5pdGlvbnM8L2ZvbnQ+IAorICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvbnQgc2l6ZT0iMiI+Q3JlYXRlIGEgc2NyZWVuIGJ5IGFzc2VtYmxpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+PGVtPlRpbGVzPC9lbT48L3N0cm9uZz4gOiBoZWFkZXIsIGZvb3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnUsIGJvZHk8L2ZvbnQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvbnQgc2l6ZT0iMiI+RGVmaW5pdGlvbnMgY2FuIHRha2UgcGxhY2UgOjwvZm9udD4gCisgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj5pbiBhIGNlbnRyYWxpemVkIHhtbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZTwvZm9udD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj5kaXJlY3RseSBpbiBqc3AgcGFnZTwvZm9udD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj5pbiBzdHJ1dHMgYWN0aW9uPC9mb250PgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvbnQgc2l6ZT0iMiI+RGVmaW5pdGlvbnMgcHJvdmlkZSBhbiBpbmhlcml0YW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVjaGFuaXNtIDogYSBkZWZpbml0aW9uIGNhbiBleHRlbmRzIGFub3RoZXIgb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIG92ZXJyaWRlIHBhcmFtZXRlcnMuPC9mb250PgorICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgIDwvdWw+CisgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgPGZvbnQgc2l6ZT0iMiI+VGVtcGxhdGluZzwvZm9udD4gCisgICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj48c3Ryb25nPjxlbT5UaWxlczwvZW0+PC9zdHJvbmc+CisgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZXdvcmsgaXMgZW50aXJlbHkgY29tcGF0aWJsZSB3aXRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0+VGVtcGxhdGVzPC9lbT4gZGVmaW5lZCBieSBEYXZpZCBHZWFyeSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudGVkIGluIFN0cnV0czwvZm9udD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj5Zb3UgY2FuIHJlcGxhY2UgPGVtPlRlbXBsYXRlczwvZW0+CisgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJyYXJ5IGJ5IDxzdHJvbmc+PGVtPlRpbGVzPC9lbT48L3N0cm9uZz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uZTwvZm9udD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgIDxmb250IHNpemU9IjIiPkxheW91dHM8L2ZvbnQ+IAorICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvbnQgc2l6ZT0iMiI+RGVmaW5lIGNvbW1vbiBwYWdlIGxheW91dHMgYW5kIHJldXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVtIGFjcm9zcyB5b3VyIHdlYiBzaXRlPC9mb250PgorICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb250IHNpemU9IjIiPkRlZmluZSBtZW51IGxheW91dHMsIGFuZCB1c2UgdGhlbSBieQorICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2luZyBsaXN0cyBvZiBpdGVtcyBhbmQgbGlua3M8L2ZvbnQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvbnQgc2l6ZT0iMiI+RGVmaW5lIHBvcnRhbCBsYXlvdXQsIHVzZSBpdCBieQorICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2luZyBsaXN0IG9mIDxzdHJvbmc+PGVtPlRpbGVzPC9lbT48L3N0cm9uZz4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlcykgdG8gc2hvdzwvZm9udD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj5SZXVzZSBleGlzdGluZyBsYXlvdXRzLCBvciBkZWZpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvdXIgb3duczwvZm9udD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgIDxmb250IHNpemU9IjIiPkR5bmFtaWMgcGFnZSBidWlsZGluZzwvZm9udD4gCisgICAgICAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj5UaWxlcyBhcmUgZ2F0aGVyIGR5bmFtaWNhbGx5IGR1cmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZSByZWxvYWQuIEl0IGlzIHBvc3NpYmxlIHRvIGNoYW5nZSBhbnkgYXR0cmlidXRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBsYXlvdXQsIGxpc3Qgb2YgVGlsZXMgaW4gcG9ydGFsLCBsaXN0IG9mIG1lbnUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLCAuLi48L2ZvbnQ+CisgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj5SZXVzZSBvZiA8c3Ryb25nPjxlbT5UaWxlczwvZW0+PC9zdHJvbmc+IC8KKyAgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudHM8L2ZvbnQ+IAorICAgICAgICAgICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvbnQgc2l6ZT0iMiI+SWYgd2VsbCBkZWZpbmVkLCBhCisgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPjxlbT5UaWxlPC9lbT48L3N0cm9uZz4gY2FuIGJlIHJldXNlZCBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlmZmVyZW50IGxvY2F0aW9uPC9mb250PgorICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb250IHNpemU9IjIiPkR5bmFtaWMgYXR0cmlidXRlcyBhcmUgdXNlZCB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyaXplZCA8ZW0+PHN0cm9uZz5UaWxlczwvc3Ryb25nPjwvZW0+PC9mb250PgorICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb250IHNpemU9IjIiPkl0IGlzIHBvc3NpYmxlIHRvIGRlZmluZSBsaWJyYXJ5IG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgICByZXVzYWJsZSA8ZW0+PHN0cm9uZz5UaWxlczwvc3Ryb25nPjwvZW0+LjwvZm9udD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj5CdWlsZCBhIHBhZ2UgYnkgYXNzZW1ibGluZyBwcmVkZWZpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzLCBnaXZlIHRoZW0gYXBwcm9wcmlhdGUgcGFyYW1ldGVyczwvZm9udD4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgIDxmb250IHNpemU9IjIiPkludGVybmF0aW9uYWxpemF0aW9uIChpMThuKTwvZm9udD4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisJCQkJICA8dWw+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj5JdCBpcyBwb3NzaWJsZSB0byBsb2FkIGRpZmZlcmVudCB0aWxlcworICAgICAgICAgICAgICAgICAgICAgYWNjb3JkaW5nIHRvIExvY2FsZTwvZm9udD4KKyAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICA8Zm9udCBzaXplPSIyIj5BIG1lY2hhbmlzbSBzaW1pbGFyIHRvIEphdmEgcHJvcGVydGllcworICAgICAgICAgICAgICAgICAgICAgZmlsZXMgaXMgdXNlZCBmb3IgZGVmaW5pdGlvbnMgZmlsZXMgOiB5b3UgY2FuIGhhdmUgb25lCisgICAgICAgICAgICAgICAgICAgICBkZWZpbml0aW9uIGZpbGUgcGVyIExvY2FsZS4gVGhlIGFwcHJvcHJpYXRlIGRlZmluaXRpb24gaXMKKyAgICAgICAgICAgICAgICAgICAgIGxvYWRlZCBhY2NvcmRpbmcgdG8gY3VycmVudCBMb2NhbGU8L2ZvbnQ+CisgICAgICAgICAgICAgICAgICA8L2xpPgorCQkJCSAgPC91bD4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgIDxmb250IHNpemU9IjIiPk11bHRpLWNoYW5uZWxzPC9mb250PgorICAgICAgICAgICAgICAgICAgPC9saT4KKwkJCQkgIDx1bD4KKyAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgIDxmb250IHNpemU9IjIiPkl0IGlzIHBvc3NpYmxlIHRvIGxvYWQgZGlmZmVyZW50IFRpbGVzCisgICAgICAgICAgICAgICAgICAgICBhY2NvcmRpbmcgdG8gYSBrZXkgc3RvcmVkIGluIGpzcCBzZXNzaW9uLCBvcgorICAgICAgICAgICAgICAgICAgICAgYW55d2hlcmUuPC9mb250PgorICAgICAgICAgICAgICAgICAgPC9saT4KKwkJCQkgIAorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgPGZvbnQgc2l6ZT0iMiI+Rm9yIGV4YW1wbGUsIGtleSBjb3VsZCBiZSB1c2VyIHByb3ZpbGVnZSwKKyAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXIgdHlwZSwgLi4uPC9mb250PgorICAgICAgICAgICAgICAgICAgPC9saT4KKwkJCQkgIAorICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgPGZvbnQgc2l6ZT0iMiI+QSBtZWNoYW5pc20gc2ltaWxhciB0byBKYXZhIHByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgICAgIGZpbGVzIGlzIHVzZWQgZm9yIGRlZmluaXRpb25zIGZpbGVzIDogeW91IGNhbiBoYXZlIG9uZQorICAgICAgICAgICAgICAgICAgICAgZGVmaW5pdGlvbiBmaWxlIHBlciBrZXkuIFRoZSBhcHByb3ByaWF0ZSBkZWZpbml0aW9uIGlzCisgICAgICAgICAgICAgICAgICAgICBsb2FkZWQgYWNjb3JkaW5nIHRvIHRoZSBrZXkuPC9mb250PgorICAgICAgICAgICAgICAgICAgPC9saT4KKwkJCQkgIDwvdWw+CisgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAgICAgPC90ZD4KKyAgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorCisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvcG9ydGFsL2ltYWdlcy9wb3J0YWxPdmVydmlldy5naWYgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC9pbWFnZXMvcG9ydGFsT3ZlcnZpZXcuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNzY4Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC9pbWFnZXMvcG9ydGFsT3ZlcnZpZXcuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvcG9ydGFsL25ld3MuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy9wb3J0YWwvbmV3cy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2QyMjM1NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvcG9ydGFsL25ld3MuanNwCkBAIC0wLDAgKzEsNzcgQEAKKzx0YWJsZSAgd2lkdGg9IjEwMCUiPgorPHRyPgorPHRoIGJnY29sb3I9ImFxdWEiPjxmb250IHNpemU9IisxIj48c3Ryb25nPk5ld3M8L3N0cm9uZz48L2ZvbnQ+PC90aD48L3RyPgorPHRyPgorPHRkPgorICAgICAgPHA+PEZPTlQgc2l6ZT0yPjAzIE5vdi4gMjAwMjwvRk9OVD48L1A+CisgICAgICA8UD48U1RST05HPjxFTT48Rk9OVCBjb2xvcj0jZmYwMDAwPlRpbGVzUGx1Z2luIG1vZHVsZSBhd2FyZTwvRk9OVD48L0VNPjwvU1RST05HPgorCSAgPGJyPjxGT05UIGNvbG9yPSMwMDAwMDAgc2l6ZT0yPgorCSAgVGhlIFRpbGVzUGx1Z2luIGZvciBzdHJ1dHMgbm93IGNyZWF0ZSBvbmUgc2VwYXJhdGUgZGVmaW5pdGlvbiBmYWN0b3J5IGZvciBlYWNoIHN0cnV0cyBtb2R1bGUuCisJICA8L0ZPTlQ+PC9QPgorCSAgCisgICAgICA8cD48Rk9OVCBzaXplPTI+MTkgSnVsLiAyMDAyPC9GT05UPjwvUD4KKyAgICAgIDxQPjxTVFJPTkc+PEVNPjxGT05UIGNvbG9yPSNmZjAwMDA+VGlsZXMgaXMgbm93IGluIHRoZSBtYWluIGJyYW5jaCBvZgorCSAgIFN0cnV0czEuMSBkaXN0cmlidXRpb248L0ZPTlQ+PC9FTT48L1NUUk9ORz4KKwkgIDxicj48Rk9OVCBjb2xvcj0jMDAwMDAwIHNpemU9Mj4KKwkgIEEgVGlsZXMgcGx1Zy1pbiBpcyBhdmFpbGFibGUgZm9yIFN0cnV0czEuMS4KKwkgIDwvRk9OVD48L1A+CisJICAKKwkgIDxwPjxGT05UIHNpemU9Mj4yMiBNYXkgMjAwMjwvRk9OVD48L1A+CisgICAgICA8UD48U1RST05HPjxFTT48Rk9OVCBjb2xvcj0jZmYwMDAwPlRpbGVzIEFkdmFuY2VkIEZlYXR1cmVzIERvY3VtZW50YXRpb24gKGRyYWZ0IHZlcnNpb24pPC9GT05UPjwvRU0+PC9TVFJPTkc+CisJICA8YnI+PEZPTlQgY29sb3I9IzAwMDAwMCBzaXplPTI+CisJICA8YSBocmVmPSJodHRwOi8vd3d3LmxpZmwuZnIvfmR1bW91bGluL3RpbGVzL3RpbGVzQWR2YW5jZWRGZWF0dXJlcy5wZGYiIC8+dGlsZXNBZHZhbmNlZEZlYXR1cmVzLnBkZjwvYT4KKwkgIDwvRk9OVD48L1A+CisJICAKKyAgICAgIDxQPjxTVFJPTkc+PEVNPjxGT05UIGNvbG9yPSNmZjAwMDA+VGlsZXMtYmxhbmsgQXBwbGljYXRpb25zPC9GT05UPjwvRU0+PC9TVFJPTkc+CisJICA8YnI+PEZPTlQgY29sb3I9IzAwMDAwMCBzaXplPTI+CisJICBEaWZmZXJlbnQgPGNvZGU+dGlsZXMtYmxhbmMud2FyPC9jb2RlPiBmaWxlcyBhcmUgbm93IHByb3ZpZGVkIHRvIGhlbHAgc3RhcnRpbmcgbmV3IHByb2plY3QgdXNpbmcgVGlsZXMuIAorCSAgICA8dWw+CisJCSAgPGxpPjxjb2RlPnRpbGVzLWJsYW5rLndhcjwvY29kZT4gLSBUaWxlcyB3aXRob3V0IFN0cnV0czwvbGk+CisJCSAgPGxpPjxjb2RlPnRpbGVzLWJsYW5rLXN0cnV0czEuMS53YXI8L2NvZGU+IC0gVGlsZXMgd2l0aCBTdHJ1dHMxLjE8L2xpPgorCQkgIDxsaT48Y29kZT50aWxlcy1ibGFuay1zdHJ1dHMxLjAud2FyPC9jb2RlPiAtIFRpbGVzIHdpdGggbGF0ZXN0IHN0YWJsZSBTdHJ1dHMxLjAueDwvbGk+CisJCTwvdWw+CisJICA8L0ZPTlQ+PC9QPgorCisgICAgICA8UD48Rk9OVCBjb2xvcj0jZmYwMDAwPjxFTT48U1RST05HPkFydGljbGUgb24gVGlsZXMgYW5kIFN0cnV0czwvU1RST05HPjwvRU0+PC9GT05UPgorCSAgPGJyPjxGT05UIGNvbG9yPSMwMDAwMDAgc2l6ZT0yPgorCSAgQW4gYXJ0aWNsZSBvbiB1c2luZyBUaWxlcyBhbmQgU3RydXRzIGlzIGF2YWlsYWJsZSBhdCA6CisJICA8YnI+CisJICA8YSBocmVmPSJodHRwOi8vd3d3LmphdmF3b3JsZC5jb20vamF2YXdvcmxkL2p3LTAxLTIwMDIvanctMDEwNC10aWxlc3RydXQuaHRtbCIgPmh0dHA6Ly93d3cuamF2YXdvcmxkLmNvbS9qYXZhd29ybGQvanctMDEtMjAwMi9qdy0wMTA0LXRpbGVzdHJ1dC5odG1sPC9hPgorCSAgPC9GT05UPjwvUD4KKyAgICAgIDxQPjxGT05UIGNvbG9yPSNmZjAwMDA+PEVNPjxTVFJPTkc+RHluYW1pYyBMYXlvdXQ8L1NUUk9ORz48L0VNPjwvRk9OVD4KKwkgIDxicj48Rk9OVCBjb2xvcj0jMDAwMDAwIHNpemU9Mj4KKwkgIER5bmFtaWMgbGF5b3V0cyBhbGxvdyBhIHVzZXIgdG8gY3VzdG9taXplIGEgc2l0ZSBMJmFtcDtGLiBDaGVjayB0aGUgZXhhbXBsZSB0byBzZWUgaG93IHRvIHByb2NlZWQgd2l0aCBUaWxlcy4KKwkgIDwvRk9OVD48L1A+CisgICAgICA8UD48Rk9OVCBjb2xvcj0jZmYwMDAwPjxFTT48U1RST05HPk5ldyBMYXlvdXQgOiBUYWJzPC9TVFJPTkc+PC9FTT48L0ZPTlQ+CisJICA8YnI+PEZPTlQgY29sb3I9IzAwMDAwMCBzaXplPTI+CisJICBUaGUgbmV3IHRhYnMgbGF5b3V0IGFsbG93cyB0byBidWlsZCBlYXNpbHkgdGFicyBsaWtlIHBhZ2UgOiBzcGVjaWZ5IHdoaWNoCisJICBib2R5IHlvdSB3YW50IGluIHdoaWNoIHRhYnMsIGFuZCB0aGF0IGFsbCAhCisJICA8L0ZPTlQ+PC9QPgorICAgICAgPFA+PEZPTlQgY29sb3I9I2ZmMDAwMD48RU0+PFNUUk9ORz5Db21tZW50ZWQgRXhhbXBsZXM8L1NUUk9ORz48L0VNPjwvRk9OVD4KKwkgIDxicj48Rk9OVCBjb2xvcj0jMDAwMDAwIHNpemU9Mj4KKwkgIEEgbG90IG9mIGludGVyZXN0aW5nIGV4YW1wbGVzIGhhdmUgYmVlbiByZXZpc2l0ZWQgYW5kIGNvbW1lbnRlZCBpbiBhICJwb3J0YWwiIGZhc2hpb24uCisJICBDaGVjayAiTGl2ZSBFeGFtcGxlcyIgbWVudSBlbnRyeS4KKwkgIDwvRk9OVD48L1A+CisgICAgICA8UD48U1RST05HPjxFTT48Rk9OVCBjb2xvcj0jZmYwMDAwPkVhY2ggVGlsZSBjYW4gaGF2ZSBpdHMgb3duIGNvbnRyb2xsZXIgITxCUj48L0ZPTlQ+PC9FTT48L1NUUk9ORz4KKwkgIDxGT05UIGNvbG9yPSMwMDAwMDAgc2l6ZT0yPgorCSAgSXQgaXMgbm93IHBvc3NpYmxlIHRvIGFzc29jaWF0ZSBhIGNvbnRyb2xsZXIgdG8gZWFjaCBUaWxlLiBUaGlzIGNvbnRyb2xsZXIgKEphdmEgY29kZSAKKwkgIG9yIHN0cnV0cyBhY3Rpb24pIGlzIGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIFRpbGUganNwIHBhZ2UuIEl0IGlzIHVzZWZ1bCB0byBwcmVwYXJlIAorCSAgZGF0YSB0byBiZSBzaG93biBieSBqc3AgcGFnZS4gCisJICA8L0ZPTlQ+PC9QPgorICAgICAgPFA+PFNUUk9ORz48RU0+PEZPTlQgY29sb3I9I2ZmMDAwMD5SZWxvYWQgQWN0aW9uPEJSPjwvRk9OVD48L0VNPjwvU1RST05HPgorCSAgPEZPTlQgY29sb3I9IzAwMDAwMCBzaXplPTI+CisJICBUaGVyZSBpcyBub3cgYSByZWxvYWQgYWN0aW9uLCBhbmQgYSByZWxvYWRhYmxlIGZhY3Rvcnkgd3JhcHBlciBhbGxvd2luZyB0byByZWxvYWQgVGlsZXMKKwkgIGNvbmZpZ3VyYXRpb24gZmlsZXMgd2l0aG91dCByZXN0YXJ0aW5nIHdlYiBzZXJ2ZXIuCisJICA8L0ZPTlQ+PC9QPgorICAgICAgPFA+PFNUUk9ORz48RU0+PEZPTlQgY29sb3I9I2ZmMDAwMD5Vc2UgYW5kIFNldCBCZWFuIGluIGNvbmZpZ3VyYXRpb24gZmlsZTxCUj48L0ZPTlQ+PC9FTT48L1NUUk9ORz4KKwkgIDxGT05UIGNvbG9yPSMwMDAwMDAgc2l6ZT0yPgorCSAgSXQgaXMgbm93IHBvc3NpYmxlIHRvIHVzZSBhbmQgc2V0IGJlYW5zIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuIFN1Y2ggYmVhbiBjYW4gdGhlbiBiZQorCSAgc2V0IGFzIGEgJmx0O3B1dCZndDsgb3IgJmx0O3B1dExpc3QmZ3Q7IHRhZyB2YWx1ZS4KKwkgIDxicj4KKwkgIFRoaXMgaW5jcmVhc2UgYW5kIGZhY2lsaXRhdGUgbWVudSBjcmVhdGlvbi4KKwkgIDwvRk9OVD48L1A+CisgICAgICA8UD4KKyAgICAgIDxGT05UIHNpemU9Mj5DaGVjayAiSGlzdG9yeSIgZm9yIGxhdGVzdCBtb2RpZmljYXRpb25zIChmdXJ0aGVyIGluIHRoaXMgcGFnZSk8L0ZPTlQ+PC9QPgorICAgICAgPFA+CisJICAKKzwvdGQ+PC90cj48L3RhYmxlPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy9wb3J0YWwvbmV4dEZlYXR1cmVzLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvcG9ydGFsL25leHRGZWF0dXJlcy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE2NGExMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvcG9ydGFsL25leHRGZWF0dXJlcy5qc3AKQEAgLTAsMCArMSwxNyBAQAorPHRhYmxlICB3aWR0aD0iMTAwJSI+Cis8dHI+Cis8dGggYmdjb2xvcj0iYXF1YSI+PGZvbnQgc2l6ZT0iKzEiPjxzdHJvbmc+RnV0dXJlIEZlYXR1cmVzPC9zdHJvbmc+PC9mb250PjwvdGg+Cis8L3RyPgorICA8VFI+CisgICAgPFREPjxGT05UIHNpemU9Mj48Yj5EeW5hbWljIFBvcnRhbCBFeGFtcGxlPC9iPjwvRk9OVD48L1REPjwvVFI+Cis8dHI+Cis8dGQ+PEZPTlQgc2l6ZT0yPlBvcnRhbCBwYWdlIGlzIGJ1aWxkIGFjY29yZGluZyB0byBhIAorICAgICAgdXNlciBwcm9maWxlLCBvciB3aGF0ZXZlciB5b3Ugd2FudC4gCis8L0ZPTlQ+CisgICAgICAgICAgICAKKyAgICAgIAorICAgICAKKworICAgPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvcG9ydGFsL3JldmlzaW9ucy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC9yZXZpc2lvbnMuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0MmQ4NmMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC9yZXZpc2lvbnMuanNwCkBAIC0wLDAgKzEsMTMyIEBACis8dGFibGUgIHdpZHRoPSIxMDAlIj4KKzx0cj4KKzx0aCBiZ2NvbG9yPSJhcXVhIj48Rk9OVCBzaXplPTQ+SGlzdG9yeTwvRk9OVD48L3RoPjwvdHI+CisgIDxUUj4KKyAgICA8VEQ+PEZPTlQgc2l6ZT0yPjxTVFJPTkc+IDAzIE5vdi4gMjAwMjwvU1RST05HPiA8L0ZPTlQ+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREPgorCSAgPEZPTlQgc2l6ZT0yPgorICAgICAgPFVMPgorICAgICAgICA8TEk+VGlsZXMgbm93IHVzZSB0aGUgY29tbW9ucy1sb2dnaW5nIHBhY2thZ2UuPC9MST4KKwkJPGxpPjx1c2VBdHRyaWJ1dGU+OiBDb3JyZWN0ZWQgYSBidWcgd2hlcmUgdGhlIHRhZyBmYWlsIHdoZW4gcmV1c2VkIGJ5IHNlcnZlci48L2xpPgorCQk8bGk+VGhlIHN0cnV0cyBUaWxlc1BsdWdpbiBub3cgY3JlYXRlIG9uZSBmYWN0b3J5IGZvciBlYWNoIHN0cnV0cyBtb2R1bGU8L2xpPgorCSAgPC9VTD4KKwkgIDwvRk9OVD4KKwk8L1REPgorICA8L1RSPiAKKyAgPFRSPgorICAgIDxURD48Rk9OVCBzaXplPTI+PFNUUk9ORz4gMTkgSnVsLiAyMDAyPC9TVFJPTkc+IDwvRk9OVD48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQ+CisJICA8Rk9OVCBzaXplPTI+CisgICAgICA8VUw+CisgICAgICAgIDxMST5UaWxlc1BsdWdpbiBhdmFpbGFibGUgZm9yIFN0cnV0czEuMTwvTEk+CisJCTxsaT5CbGFuayB3YXIgZmlsZXMgaGF2ZSBiZWVuIHVwZGF0ZWQ8L2xpPgorCQk8bGk+RGVmaW5pdGlvbiBmYWN0b3J5IGludGVyZmFjZSBoYXMgY2hhbmdlLiBBIG5ldyBsaWZlIGN5Y2xlIGlzIGludHJvZHVjZTwvbGk+CisJCTxsaT5TdHJ1dHMgbXVsdGktbW9kdWxlcyBmZWF0dXJlIHdvcmtzIHdpdGggdGhlIFRpbGVzPC9saT4KKwkgIDwvVUw+CisJICA8L0ZPTlQ+CisJPC9URD4KKyAgPC9UUj4gCisgIDxUUj4KKyAgICA8VEQ+PEZPTlQgc2l6ZT0yPjxTVFJPTkc+IDIwIEp1bi4gMjAwMjwvU1RST05HPiA8L0ZPTlQ+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREPgorICAgICAgPFVMPgorICAgICAgICA8TEk+PEZPTlQgc2l6ZT0yPlVwZGF0ZSBEZWZpbml0aW9uRGlzcGF0Y2hlckFjdGlvbi4gSXQgbm93IHdvcmtzIGFnYWluPC9GT05UPjwvTEk+CisJICA8L1VMPgorCTwvVEQ+CisgIDwvVFI+IAorICA8VFI+CisgICAgPFREPjxGT05UIHNpemU9Mj48U1RST05HPiAxMyBKdW4uIDIwMDI8L1NUUk9ORz4gPC9GT05UPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURD4KKyAgICAgIDxVTD4KKyAgICAgICAgPExJPjxGT05UIHNpemU9Mj5UaWxlcyBjb25maWd1cmF0aW9uIGZpbGUgbm93IGFjY2VwdCBuZXN0ZWQgbGlzdCBhcyBhdHRyaWJ1dGU8L0ZPTlQ+PC9MST4KKyAgICAgICAgPExJPjxGT05UIHNpemU9Mj5BZGQgPHVyaT4gdGFnIHRvIERURCAoc3VibWl0dGVkIGJ5IExvcmVuIEhhbHZvcnNvbik8L0ZPTlQ+PC9MST4KKwkJY29uZmlndXJhdGlvbiBmaWxlPC9GT05UPjwvTEk+CisJICA8L1VMPgorCTwvVEQ+CisgIDwvVFI+IAorICA8VFI+CisgICAgPFREPjxGT05UIHNpemU9Mj48U1RST05HPiAyMyBNYXkgMjAwMjwvU1RST05HPiA8L0ZPTlQ+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREPgorICAgICAgPFVMPgorICAgICAgICA8TEk+PEZPTlQgc2l6ZT0yPnRpbGVzLlhtbERlZmluaXRpb24uWG1sUGFyc2VyIDogZW5hYmxlIGRlZmF1bHQgdmFsdWUgZm9yIDxpdGVtPiBjbGFzc3R5cGUKKwkJIGF0dHJpYnV0ZQorCQkgKG9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLlNpbXBsZU1lbnVJdGVtKS4gQXMgYSBjb25zZXF1ZW5jZSwgYWxsIGNsYXNzdHlwZSBhdHRyaWJ1dGUgCisJCSBjYW4gYmUgcmVtb3ZlZCBpbiBleGFtcGxlczwvRk9OVD48L0xJPgorICAgICAgICA8TEk+PEZPTlQgc2l6ZT0yPnRpbGVzLlhtbERlZmluaXRpb24uSTE4bkZhY3RvcnlTZXQgOiBFbmFibGUgc2VyaWFsaXphdGlvbiAoYnVnIHJlcG9ydGVkIAorCQlieSBEYW4gU3lrZXMpPC9GT05UPjwvTEk+CisJICA8L1VMPgorCTwvVEQ+CisgIDwvVFI+IAorICA8VFI+CisgICAgPFREPjxGT05UIHNpemU9Mj48U1RST05HPiAxNCBBcHIuIDIwMDI8L1NUUk9ORz4gPC9GT05UPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURD4KKyAgICAgIDxVTD4KKyAgICAgICAgPExJPjxGT05UIHNpemU9Mj50aWxlcy5YbWxEZWZpbml0aW9uLlhtbFBhcnNlciA6IENvcnJlY3QgYnVnIHdpdGggbmV3IERpZ2VzdGVyIHJlbGVhc2UgCisJCXByZXZlbnRpbmcgY29uZmlnIGZpbGUgbGlzdHMgdG8gYmUgY29ycmVjdGx5IHBhcnNlZDwvRk9OVD48L0xJPgorICAgICAgICA8TEk+PEZPTlQgc2l6ZT0yPnRhYnNMYXlvdXQuanNwIDogQ29ycmVjdCBzb21lIHN5bnRheCBlcnJvcnMoYnVnIHJlcG9ydGVkIGJ5IERhdmlkIE1hcnNoYWxsKTwvRk9OVD48L0xJPgorICAgICAgICA8TEk+PEZPTlQgc2l6ZT0yPnRhZ2xpYi50aWxlcy5Vc2VBdHRyaWJ1dGUgOiBBZGQgcmVsZWFzZSBvZiB2YXJpYWJsZSAnaWQnIGluIHJlbGVhc2UgbWV0aG9kIAorCQkoYnVnIHJlcG9ydGVkIGJ5IEhlYXRoIENoaWF2ZXR0b25lKTwvRk9OVD48L0xJPgorICAgICAgICA8TEk+PEZPTlQgc2l6ZT0yPnRpbGVzLlhtbERlZmluaXRpb24uWG1sRGVmaW5pdGlvbiA6IEFkZCBpbmhlcml0YW5jZSBmb3IgY29udHJvbGxlckNsYXNzIGFuZCAKKwkJY29udHJvbGxlclVybCBhdHRyaWJ1dGVzIChidWcgcmVwb3J0ZWQgYnkgSmltIENyb3NzbGV5KSA8L0ZPTlQ+PC9MST4KKyAgICAgICAgPExJPjxGT05UIHNpemU9Mj50aWxlcy5YbWxEZWZpbml0aW9uLkkxOG5GYWN0b3J5U2V0IDogQWRkIGFub3RoZXIgbG9hZGluZyBtZXRob2QgZm9yIGNvbmZpZyAKKwkJZmlsZXMgaW4gb3JkZXIgdG8gbGV0IFdlYnNwaGVyZSAzLjUueCBydW4gKHBhdGNoIGZyb20gU3RlcGhlbiBIb3VzdG9uKTwvRk9OVD48L0xJPgorICAgICAgICA8TEk+PEZPTlQgc2l6ZT0yPnRpbGVzLkNvbXBvbmVudEFjdGlvblNlcnZsZXQgOiBBZGQgb3ZlcmxvYWQgb2YgcHJvY2Vzc0ZvcndhcmQgYW5kCisJCXByb2Nlc3NJbmNsdWRlIGluIG9yZGVyIHRvIGNhdGNoIHByb3Blcmx5IGZvcndhcmQgaW4gc3RydXRzMS4wLnggc3RydXRzLWNvbmZpZyAoYnVnIHJlcG9ydGVkIGZyb20gCisJCXN0cnV0cyB1c2VyIGxpc3QpPC9GT05UPjwvTEk+CisJICA8L1VMPgorCTwvVEQ+CisgIDwvVFI+IAorICA8VFI+CisgICAgPFREPjxGT05UIHNpemU9Mj48U1RST05HPiAyMiBGZWIuIDIwMDI8L1NUUk9ORz4gPC9GT05UPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURD4KKyAgICAgIDxVTD4KKyAgICAgICAgPExJPjxGT05UIHNpemU9Mj5Db3JyZWN0IGJ1aWxkIHByb2Nlc3MgcHJldmVudGluZyBleGFtcGxlcyBjb21waWxhdGlvbiBpbiB3YXIgZmlsZXMgPC9GT05UPjwvTEk+CisJICA8L1VMPgorCTwvVEQ+CisgIDwvVFI+IAorICA8VFI+CisgICAgPFREPjxGT05UIHNpemU9Mj48U1RST05HPiAyMCBGZWIuIDIwMDI8L1NUUk9ORz4gPC9GT05UPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURD4KKyAgICAgIDxVTD4KKyAgICAgICAgPExJPjxGT05UIHNpemU9Mj5OZXcgdGlsZXMtYmxhbmstc3RydXRzMS54IGFwcGxpY2F0aW9uczwvRk9OVD48L0xJPgorICAgICAgICA8TEk+PEZPTlQgc2l6ZT0yPkNoYW5nZSBkaXN0cmlidXRpb24gKGFnYWluKSA6IGJhY2sgdG8gdGhlIG9sZCBmYXNoaW9uPC9GT05UPjwvTEk+CisJICA8L1VMPgorCTwvVEQ+CisgIDwvVFI+IAorICA8VFI+CisgICAgPFREPjxGT05UIHNpemU9Mj48U1RST05HPiAxOCBGZWIuIDIwMDI8L1NUUk9ORz4gPC9GT05UPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURD4KKyAgICAgIDxVTD4KKyAgICAgICAgPExJPjxGT05UIHNpemU9Mj5OZXcgdGlsZXMtYmxhbmsgYXBwbGljYXRpb248L0ZPTlQ+PC9MST4KKyAgICAgICAgPExJPjxGT05UIHNpemU9Mj5BZGRlZCBhIFRpbGVzQ29udHJvbGxlciB0byBydW4gd2l0aCBsYXRlc3QgU3RydXRzIDEuMSBkZXY8L0ZPTlQ+PC9MST4KKyAgICAgICAgPExJPjxGT05UIHNpemU9Mj5DaGFuZ2UgZGlzdHJpYnV0aW9uIDogYSBzdGFibGUgcmVsZWFzZSBidWlsZCBzaGlwcGVkIHdpdGggU3RydXRzMS4wLnggCisJCWFuZCBhIGRldmVsb3BtZW50IHJlbGVhc2UgYnVpbGQgd2l0aCBTdHJ1dHMxLjEgZGV2PC9GT05UPjwvTEk+CisJICA8L1VMPgorCTwvVEQ+CisgIDwvVFI+IAorICA8VFI+CisgICAgPFREPjxGT05UIHNpemU9Mj48U1RST05HPiAxMSBKYW4uIDIwMDI8L1NUUk9ORz4gPC9GT05UPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURD4KKyAgICAgIDxVTD4KKyAgICAgICAgPExJPjxGT05UIHNpemU9Mj5Db3JyZWN0ZWQgYnVnIHByZXZlbnRpbmcgZW1wdHkgJmx0O3B1dCZndDsgYm9keSB0YWdzIGluIFRvbWNhdDQ8L0ZPTlQ+PC9MST4KKyAgICAgICAgPExJPjxGT05UIHNpemU9Mj5Db3JyZWN0ZWQgY3VzdG9taXplZCBmYWN0b3J5IGxvYWRpbmcuIEl0IG5vdyB3b3JrcyBhZ2FpbjwvRk9OVD48L0xJPgorCSAgPC9VTD4KKwk8L1REPgorICA8L1RSPiAKKworIDxUUj4KKyAgICA8VEQ+PEZPTlQgc2l6ZT0yPjxTVFJPTkc+Jm5ic3A7Jm5ic3A7IDxBIGhyZWY9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L2RvYy9wb3J0YWwvcmV2aXNpb25zQ29udC5odG1sIj4KKwk8Rk9OVCBzaXplPTI+PFNUUk9ORz5tb3JlIC4uLjwvU1RST05HPjwvRk9OVD48L0E+PC9TVFJPTkc+PC9GT05UPgorCTwvVEQ+CisgPC9UUj4KKzwvdGFibGU+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC9yZXZpc2lvbnNDb250Lmh0bWwgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC9yZXZpc2lvbnNDb250Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQxMjU5MgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvcG9ydGFsL3JldmlzaW9uc0NvbnQuaHRtbApAQCAtMCwwICsxLDMwMCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiI+Cis8aGVhZD4KKzx0aXRsZT5VbnRpdGxlZCBEb2N1bWVudDwvdGl0bGU+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIiAvPgorPC9oZWFkPgorPGJvZHk+Cis8dGFibGUgd2lkdGg9IjEwMCUiPgorPHRyPgorPHRoIGJnY29sb3I9ImFxdWEiPjxoND5IaXN0b3J5IChjb24ndCk8L2g0PjwvdGg+Cis8L3RyPgorPHRyPgorPHRkPjxzdHJvbmc+IDI3IERlYy4gMjAwMTwvc3Ryb25nPiA8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD4KKzx1bD4KKwkJPGxpPkFkZCBjb21tZW50ZWQgZXhhbXBsZXMgcG9ydGFsPC9saT4KKwkJPGxpPkFsbG93IGNvbnRyb2xsZXIgdG8gYmUgYXNzb2NpYXRlZCB0byBhIFRpbGU8L2xpPgorCQk8bGk+QWxsb3cgYmVhbnMgc2V0IGluICZsdDtwdXQmZ3Q7IGFuZCAmbHQ7cHV0TGlzdCZndDsgdGFnczwvbGk+CisJCTxsaT5BZGQgYSByZWxvYWQgYWN0aW9uLCBhbmQgYSByZWxvYWRhYmxlIGZhY3Rvcnkgd3JhcHBlcjwvbGk+CisJCTxsaT5Nb3ZlIE5vT3BBY3Rpb24gdG8gYWN0aW9ucyBzdWJkaXJlY3Rvcnk8L2xpPgorPC91bD4KKzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxzdHJvbmc+IDAyJm5ic3A7bm92LiAyMDAxPC9zdHJvbmc+IDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPgorPHVsPgorCQk8bGk+IENvcnJlY3QgYW5vdGhlciBidWcgd2l0aCBPcmlvbiA6ICJpbXBvcnRBdHRyaWJ1dGUJbm90IHdvcmtpbmcgd2hlbiByZXVzZWQiPC9saT4KKzwvdWw+Cis8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48c3Ryb25nPiAyOSZuYnNwO29jdC4gMjAwMTwvc3Ryb25nPiA8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD4KKzx1bD4KKwkJPGxpPiBBbGxvdyBib2R5CWNvbnRlbnQgaW4gdGFnICZsdDtwdXQmZ3Q7IGFuZCAmbHQ7YWRkJmd0OyBpbgl4bWwgZmlsZXMgPC9saT4KKwkJPGxpPkNvcnJlY3QgYnVnIHdpdGggT3Jpb24gOiAiaW5zZXJ0IHRhZyBhdHRyaWJ1dGUgbm90CXJlc2V0IHdoZW4gaWdub3JlPXRydWUiLjwvbGk+Cis8L3VsPgorPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PHN0cm9uZz4gMDgmbmJzcDtvY3QuIDIwMDE8L3N0cm9uZz4gPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+Cis8dWw+CisJCTxsaT4gQ29ycmVjdCBidWcmbmJzcDsicGF0aCBvdmVybG9hZGVkIHdoZW4JaW5oZXJpdGluZyBkZWZpbml0aW9uIi4gPC9saT4KKwkJPGxpPiBBZGQJZXhhbXBsZSAiZHluYW1pYyBwb3J0YWwiIDwvbGk+CisJCTxsaT5BZGQgVGlsZSBSc3MgQ2hhbm5lbCAoVGhhbmtzIFRlZAlIdXN0ZWQpPC9saT4KKzwvdWw+Cis8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48c3Ryb25nPiAyNyZuYnNwO3NlcHQuIDIwMDE8L3N0cm9uZz4gPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+Cis8dWw+CisJCTxsaT4gQ29ycmVjdAlidWcmbmJzcDtwcmV2ZW50aW5nIGRlZmluaXRpb25zIGZpbGUgdG8gYmUgbG9hZGVkIHdoZW4gdXNpbmcgbGF0ZXN0CisJCWNvbW1vbnMtZGlnZXN0ZXIuamFyLiA8L2xpPgorCQk8bGk+UmVtb3ZlIGNvbXBvbmVudC1jb25maWcudGxkCShyZXBsYWNlZCBieSB0aWxlcy1jb25maWcudGxkKS4gPC9saT4KKwkJPGxpPkFkZCBhIHRpbGVzRm9yU3RydXRzMS4wLmphciBmaWxlLCBpbnRlbmRlZCBmb3IJU3RydXRzMS4wPC9saT4KKzwvdWw+Cis8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48c3Ryb25nPiAxMyBzZXB0LiAyMDAxPC9zdHJvbmc+IDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPgorPHVsPgorCQk8bGk+Q29ycmVjdCBidWcmbmJzcDtpbglnZXRBc1N0cmluZy4mbmJzcDtOb3RoaW5nIGlzIHdyaXR0ZW4gd2hlbiBpZ25vcmU9dHJ1ZQorCQlhbmQgbm8gYXR0cmlidXRlCWlzIGZvdW5kLjwvbGk+Cis8L3VsPgorPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PHN0cm9uZz4gMDkgc2VwdC4gMjAwMTwvc3Ryb25nPiA8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD4KKzx1bD4KKwkJPGxpPiBNb2RpZnkgQ29tcG9uZW50QWN0aW9uU2VydmxldC4gSXQgbm93IGFsbG93cwl0byA6CisJCTx1bD4KKwkJCQkgIDxsaT4gdXNlIGEgU3RydXRzIGFjdGlvbiBhcyB0aGUgcGFnZSBhdHRyaWJ1dGUgb2YgYW4gJmx0O2luc2VydCZndDsgb3IgJmx0O2RlZmluaXRpb24mZ3Q7IDwvbGk+CisJCQkJICA8bGk+bW9kaWZ5IHRpbGUgYXR0cmlidXRlcyBpbnNpZGUgYWN0aW9uIDwvbGk+CisJCQkJICA8bGk+YXNzb2NpYXRlIGFuIGFjdGlvbiB3aXRoIGEgdGlsZSwgYW5kIHRoaXMgZm9yIGVhY2ggdGlsZS48L2xpPgorCQkgIDwvdWw+CisJCTwvbGk+CisJCTxsaT5VcGRhdGUgYW5kIG1vZGlmeSB0aGUgImludm9pY2UiIGV4YW1wbGUuIDwvbGk+Cis8L3VsPgorPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PHN0cm9uZz4gMzAganVsLiAyMDAxPC9zdHJvbmc+IDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPgorPHVsPgorCQk8bGk+IE1lcmdlJm5ic3A7RG9jdW1lbnRhdGlvbiBhbmQgdHV0b3JpYWwgaW4gb25lCXdhciBmaWxlLjwvbGk+Cis8L3VsPgorPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PHN0cm9uZz4gMjUganVsLiAyMDAxPC9zdHJvbmc+IDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPgorPHVsPgorCQk8bGk+IE5vdyB1c2UgY29tbW9ucy5EaWdlc3RlciwgYWNjb3JkaW5nIHRvIG5ldwlTdHJ1dHMgcG9saWN5LjwvbGk+Cis8L3VsPgorPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PHN0cm9uZz4gMTkganVsLiAyMDAxPC9zdHJvbmc+IDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPgorPHVsPgorCQk8bGk+IENvbXBvbmVudHMJYmVjb21lIFRpbGVzLiA8L2xpPgorCQk8bGk+U3RhcnQJaW50ZWdyYXRpb24gaW4gU3RydXRzIDwvbGk+CisJCTxsaT5DaGFuZ2UgY29kZQlwYWNrYWdlIG5hbWVzIGFjY29yZGluZ2x5PC9saT4KKzwvdWw+Cis8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48c3Ryb25nPiAwNCBqdWwuIDIwMDE8L3N0cm9uZz4gPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+Cis8dWw+CisJCTxsaT4gQWRkIGZsdXNoCWF0dHJpYnV0ZSB0byBnZXQgPC9saT4KKwkJPGxpPlVwZGF0ZQl0dXRvcmlhbCA8L2xpPgorCQk8bGk+QWRkIGEgRFREIGZvciBjb25maWd1cmF0aW9uIGZpbGUuIEhvd2V2ZXIsIERURCBpcyBub3QgdXNlZCAoeWV0KSBmb3IJdmFsaWRhdGlvbi4gPC9saT4KKzwvdWw+Cis8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48c3Ryb25nPiAwMiBqdWwuIDIwMDE8L3N0cm9uZz4gPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+Cis8dWw+CisJCTxsaT5UZXN0ZWQgc3VjY2Vzc2Z1bGx5IG9uIFRvbWNhdC0zLjIuMSwgVG9tY2F0LTQuMGI1LCBPcmlvbi0xLjQuNSwJUmVzaW4tMi4wLjAgPC9saT4KKwkJPGxpPkNvcnJlY3QgdGhlCXJlbGVhc2UoKSBidWcgcHJldmVudGluZyBmcmFtZXdvcmsgdG8gcnVuIG9uIFJlc2luLTIuMC4wCisJCTx1bD4KKwkJCQkgIDxsaT5SZW1vdmUgY2FsbHMgdG8gcmVsZWFzZSgpIGluIGRvRW5kVGFnKCksIGNhbGwgdG8gcmVsZWFzZUludGVybmFsKCkKKwkJCQkgIGluc3RlYWQuIDwvbGk+CisJCSAgPC91bD4KKwkJPC9saT4KKzwvdWw+Cis8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48c3Ryb25nPiAxNyBqdW4uIDIwMDE8L3N0cm9uZz4gPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+Cis8dWw+CisJCTxsaT4gUmVtb3ZlIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBkZXByZWNhdGVkIHRhZ3MuIFVwZGF0ZSB3ZWJhcHBzCWFjY29yZGluZ2x5IDwvbGk+CisJCTxsaT4gUmVsZWFzZQltdWx0aS1jaGFubmVscyBleGFtcGxlLjwvbGk+Cis8L3VsPgorPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PHN0cm9uZz4gMjAgbWF5LiAyMDAxPC9zdHJvbmc+IDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPgorPHVsPgorCQk8bGk+Q2hhbmdlCWRlZmluaXRpb24gZmFjdG9yeSBpbXBsZW1lbnRhdGlvbi4mbmJzcDsgVGhpcyBzaW1wbGlmeSBkZXNpZ24gYW5kCisJCXVzYWdlIG9mIG90aGVycyBpbXBsZW1lbnRhdGlvbnMuIEEgJ211bHRpLWNoYW5uZWwnIGltcGxlbWVudGF0aW9uIGlzIGluCXN0dWR5LiA8L2xpPgorCQk8bGk+QWxsb3cgdG8gaW5zZXJ0IGFuICdhY3Rpb24gVVJMJyBhcyB3ZWxsIGFzIGEgJ2RlZmluaXRpb24nIG9yIGEgJ2pzcCcuIFRoaXMKKwkJaW1wbGllcyBhIGNoZWNrIGluIEFjdGlvblNlcnZsZXQganVzdCBiZWZvcmUgZG9pbmcgZWZmZWN0aXZlIGZvcndhcmQgb3IJaW5jbHVkZS48L2xpPgorPC91bD4KKzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxzdHJvbmc+IDI5IGFwci4gMjAwMTwvc3Ryb25nPjxzdHJvbmc+U3RhYmxlIHZlcnNpb248L3N0cm9uZz4gPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+Cis8dWw+CisJCTxsaT5Sb2xlCWF0dHJpYnV0ZSBpcyB0YWtlbiBpbnRvIGFjY291bnQuIDwvbGk+CisJCTxsaT5QdXRMaXN0CWFjY2VwdCBuZXN0ZWQgcHV0TGlzdC4gPC9saT4KKwkJPGxpPkNsZWFybHkJc2VwYXJhdGUgZGVmaW5pdGlvbiBmYWN0b3J5LgorCQk8dWw+CisJCQkJICA8bGk+UG9zc2liaWxpdHkgdG8gaW1wbGVtZW50IG90aGVycyBkZWZpbml0aW9uIGZhY3RvcnkgPC9saT4KKwkJCQkgIDxsaT5DYW4gcHJvdmlkZSBkZWZpbml0aW9uIGZhY3RvcnkgY2xhc3MgbmFtZSBhcyBzZXJ2bGV0IGF0dHJpYnV0ZSA8L2xpPgorCQkgIDwvdWw+CisJCTwvbGk+CisJCTxsaT5DaGFuZ2UgbmVzdGVkIHRhZ3MgaW1wbGVtZW50YXRpb24gKFB1dFRhZywgUHV0TGlzdFRhZywgQWRkVGFnLCBJbnNlcnRUYWcsCisJCURlZmluaXRpb25UYWcpLjwvbGk+Cis8L3VsPgorPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PHN0cm9uZz4gMTkgYXByLiAyMDAxPC9zdHJvbmc+IDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPgorPHVsPgorCQk8bGk+IENvcnJlY3QgYSBidWcgcHJldmVudGluZyBDb21wb25lbnRzIHRvIHJ1biBvbiBPcmlvbiAxLjQuNS4gQ2FsbCByZWxlYXNlKCkKKwkJYXQgdGhlIGVuZAlvZiBpbnNlcnQgdGFnLjwvbGk+Cis8L3VsPgorPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PHN0cm9uZz4gMDggYXByLiAyMDAxPC9zdHJvbmc+IDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPgorPHVsPgorCQk8bGk+IEFkZCBhdHRyaWJ1dGUJJ2lnbm9yZScgdG8gdGFncyAmbHQ7Z2V0Jmd0OyAmbHQ7aW5zZXJ0Jmd0Oy4gPC9saT4KKwkJPGxpPkFkZAl0YWcmbmJzcDsmbHQ7Z2V0QXNTdHJpbmcmZ3Q7IHRvIHJlcGxhY2UgJmx0O2dldEF0dHJpYnV0ZSZndDsgPC9saT4KKwkJPGxpPiBDaGFuZ2UgdGVzdHMJc3VpdGUgaW4gY29tcHMtZG9jPC9saT4KKzwvdWw+Cis8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD48c3Ryb25nPiAwMiBhcHIuIDIwMDE8L3N0cm9uZz4gPC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+Cis8dWw+CisJCTxsaT4gVXNlIHdvcmQgImRlZmluaXRpb24iIGluc3RlYWQgb2YgImluc3RhbmNlIi4gQ29uY3JldGVseSwgYSBsb3Qgb2YgY2xhc3MKKwkJbmFtZXMgYW5kCXRhZyBuYW1lcyBjaGFuZ2UuIEhhdmUgcmVwbGFjZWQgYSBsb3Qgb2Ygd29yZCAiaW5zdGFuY2UiIGJ5ICJkZWZpbml0aW9uLgorCQlPbGQgdGFncyBzdGlsbCBleGlzdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gPC9saT4KKwkJPGxpPiBDYW4gZGVmaW5lIGEgImRlZmluaXRpb24iIGluIFhNTCBmaWxlLCBpbiBhbiBBY3Rpb24sIG9yIGJ5IHVzaW5nIHRhZyAmbHQ7ZGVmaW5pdGlvbiZndDs8L2xpPgorPC91bD4KKzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxzdHJvbmc+IDE0IGZlYi4gMjAwMTwvc3Ryb25nPiA8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD4KKzx1bD4KKwkJPGxpPiBBZGRlZCByb2xlIGF0dHJpYnV0ZSBpbiB0YWdzLiBDb21wb25lbnRzIGFyZSBhZ2FpbiBmdWxseSBjb21wYXRpYmxlIHdpdGgKKwkJSlNQCVRlbXBsYXRlcy48L2xpPgorPC91bD4KKzwvdGQ+Cis8L3RyPgorPHRyPjx0ZCBjb2xzcGFuPSIyIj4mbmJzcDs8L3RkPjwvdHI+Cis8dHI+Cis8dGQ+PHN0cm9uZz4gMDcgZmViLiAyMDAxPC9zdHJvbmc+IDwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPgorPHVsPgorCQk8bGk+IE1vZGlmaWNhdGlvbiBvZiAnQWN0aW9uQ29tcG9uZW50U2VydmxldC5qYXZhJyB0byBiZSBjb21wbGlhbnQgd2l0aCBsYXRlc3QKKwkJU3RydXRzIHNlcnZsZXQgaW1wbGVtZW50YXRpb24uIEltcG9ydCB0aGUgcmlnaHQgaHRtbC5Db25zdGFudAljbGFzcy48L2xpPgorPC91bD4KKzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxzdHJvbmc+IDExIGphbi4gMjAwMTwvc3Ryb25nPiA8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD4KKzx1bD4KKzxsaT5Nb2RpZmljYXRpb24gb2YgJ0FjdGlvbkNvbXBvbmVudFNlcnZsZXQuamF2YScgdG8gYmUgY29tcGxpYW50IHdpdGggbmV3IFN0cnV0cworc2VydmxldCBpbXBsZW1lbnRhdGlvbi4gTmV3IGNsYXNzZXMgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggU3RydXRzIHByaW9yIHRvIDAxMDEwOCA8L2xpPgorPC91bD4KKzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxzdHJvbmc+IDA4IGFwci4gMjAwMTwvc3Ryb25nPiA8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD4KKzx1bD4KKwkJPGxpPiBBZGQgYXR0cmlidXRlCSdpZ25vcmUnIHRvIHRhZ3MgJmx0O2dldCZndDsgJmx0O2luc2VydCZndDsuIDwvbGk+CisJCTxsaT5BZGQJdGFnJm5ic3A7Jmx0O2dldEFzU3RyaW5nJmd0OyB0byByZXBsYWNlICZsdDtnZXRBdHRyaWJ1dGUmZ3Q7IDwvbGk+CisJCTxsaT4gQ2hhbmdlIHRlc3RzCXN1aXRlIGluIGNvbXBzLWRvYyA8L2xpPgorPC91bD4KKzwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjxzdHJvbmc+IDAyIGFwci4gMjAwMTwvc3Ryb25nPiA8L3RkPgorPC90cj4KKzx0cj4KKzx0ZD4KKzx1bD4KKwkJPGxpPiBVc2Ugd29yZCAiZGVmaW5pdGlvbiIgaW5zdGVhZCBvZiAiaW5zdGFuY2UiLiBDb25jcmV0ZWx5LCBhIGxvdCBvZiBjbGFzcworCQluYW1lcyBhbmQJdGFnIG5hbWVzIGNoYW5nZS4gSGF2ZSByZXBsYWNlZCBhIGxvdCBvZiB3b3JkICJpbnN0YW5jZSIgYnkgImRlZmluaXRpb24uCisJCU9sZCB0YWdzIHN0aWxsIGV4aXN0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiA8L2xpPgorCQk8bGk+IENhbiBkZWZpbmUgYSAiZGVmaW5pdGlvbiIgaW4gWE1MIGZpbGUsIGluIGFuIEFjdGlvbiwgb3IgYnkgdXNpbmcgdGFnICZsdDtkZWZpbml0aW9uJmd0OzwvbGk+Cis8L3VsPgorPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy9wb3J0YWwvc3RydXRzSW50ZWdyYXRpb24uanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy9wb3J0YWwvc3RydXRzSW50ZWdyYXRpb24uanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2MGRhYTgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC9zdHJ1dHNJbnRlZ3JhdGlvbi5qc3AKQEAgLTAsMCArMSw0NyBAQAorPHRhYmxlICB3aWR0aD0iMTAwJSI+Cis8dHI+Cis8dGggYmdjb2xvcj0iYXF1YSI+CisgIDxmb250IHNpemU9IisxIj48c3Ryb25nPlRpbGVzIGFuZCBTdHJ1dHM8L1NUUk9ORz48L0ZPTlQ+Cis8L1RIPgorPC9UUj4KKyAgPFRSPgorICAgIDxURD4KKyAgICAgIDxQPgorICAgICAgPEZPTlQgc2l6ZT0yPlRpbGVzIGFyZSBhY3R1YWxseSBzaGlwcGVkIHdpdGggU3RydXRzPC9GT05UPjwvUD4KKyAgICAgIDxQPiAgICAgICAgICAgICAKKyAgICAgIDxGT05UIHNpemU9Mj4gICAgCisJICBUaWxlcyBhbmQgU3RydXRzIGNvZGUgYXJlIGNsZWFybHkgc2VwYXJhdGVkLiBJbiBmYWN0LCBUaWxlcyBjYW4gcnVuIHdpdGhvdXQgU3RydXRzLiBCdXQgdXNpbmcgCisJICBib3RoIGdpdmUgeW91IGludGVycmVzdGluZyBmZWF0dXJlcywgbGlrZSBmb3J3YXJkaW5nIGFuIGFjdGlvbiB0byBhIHRpbGUncyBkZWZpbml0aW9uLiAgCisgICAgICA8L0ZPTlQ+CisgICAgICA8Rk9OVCBzaXplPTI+Rm9sbG93aW5nIGlzIGEgbGlzdCBvZiBhY3R1YWwgbW9kaWZpY2F0aW9ucyA6PC9GT05UPiA8L1A+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREPjxGT05UIHNpemU9Mj48Yj5UaWxlIEFjdGlvbiBTZXJ2bGV0PC9CPjwvRk9OVD48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQ+CisgICAgICA8VUw+CisgICAgICAgIDxMST48Rk9OVCBzaXplPTI+QWRkIGEgCisgICAgICAgICJwcm9jZXNzRm9yd2FyZCIgbWV0aG9kLiA8L0ZPTlQ+ICAgIAorICAgICAgICA8TEk+PEZPTlQgc2l6ZT0yPlB1cnBvc2UgOiBiZSAKKyAgICAgICAgYWJsZSB0byBzdWJjbGFzcyBzZXJ2bGV0LCBhbmQgb3ZlcnJpZGUgdGhlIGZvcndhcmQgbWVjaGFuaXNtLiA8L0ZPTlQ+CisgICAgICAgIDxMST48Rk9OVCBzaXplPTI+TmVlZGVkIGlmIHlvdSAKKyAgICAgICAgd2FudCB0byBmb3J3YXJkIHRvIGEgZGVmaW5pdGlvbiBpbiAKKyAgc3RydXRzLWNvbmZpZy54bWwuPC9GT05UPjwvTEk+CisgICAgICAgIDxMST48Rk9OVCBzaXplPTI+QSByZWFkeSB0byBydW4gc2VydmxldCBpcyBwcm92aWRlZC48L0ZPTlQ+PC9MST4KKyAgICAgPC9VTD4KKyAgCisgICAgPC9URD4KKyAgPC9UUj4KKyAgPFRSPgorICAgIDxURD48Rk9OVCBzaXplPTI+PFNUUk9ORz4gPEVNPnRleHQ8L0VNPiAKKyAgICB0YWc8L1NUUk9ORz48L0ZPTlQ+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREPgorICAgICAgPFVMPgorICAgICAgICA8TEk+PEZPTlQgc2l6ZT0yPk5vdCAKKyAgICAgICAgbWFuZGF0b3J5LCBjYW4gYmUgb21pdHRlZCBpZiBub3QgdXNlZCA8L0ZPTlQ+CisgICAgICAgIDxMST48Rk9OVCBzaXplPTI+QWRkIGEgCisgICAgICAgICJwcmVmaXgiIGF0dHJpYnV0ZS4gPC9GT05UPiAgICAKKyAgICAgICAgPExJPjxGT05UIHNpemU9Mj5QdXJwb3NlIDogYmUgCisgICAgICAgIGFibGUgdG8gYWRkIGEgcHJlZml4IHRvIHRoZSBuYW1lIG9mIGdlbmVyYXRlZCBpbnB1dCB0YWcuIFRoaXMgCisgICAgICAgIG1vZGlmaWNhdGlvbiBpcyBub3QgbWFuZGF0b3J5LiBJdCBpcyBvbmx5IHVzZWZ1bCBpbiBzb21lIAorICAgICAgICBleGFtcGxlcy48L0ZPTlQ+IDwvTEk+PC9VTD48L1REPjwvVFI+PC9UQUJMRT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC90aWxlc0NvbXBzVGVtcGxhdGVzLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvcG9ydGFsL3RpbGVzQ29tcHNUZW1wbGF0ZXMuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2NTNjNDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC90aWxlc0NvbXBzVGVtcGxhdGVzLmpzcApAQCAtMCwwICsxLDE1IEBACis8dGFibGUgIHdpZHRoPSIxMDAlIj4KKzx0cj4KKzx0aCBiZ2NvbG9yPSJhcXVhIj48Zm9udCBzaXplPSIrMSI+PHN0cm9uZz5UaWxlcywgQ29tcG9uZW50cyAKKyAgICAgIDxCUj5hbmQgSlNQIFRlbXBsYXRlczwvU1RST05HPjwvRk9OVD48L1RIPjwvVFI+Cis8dHI+Cis8dGQ+CisgICAgICA8UD48Rk9OVCBzaXplPTI+VGlsZXMgd2FzIGZvcm1lbHkgCisgICAgICBrbm93biBhcyAiQ29tcG9uZW50cyIuIEJ1dCBhcyBjb21wb25lbnRzIG1lYW5zIGFsbCBhbmQgZXZlcnl0aGluZywgd2UgaGF2ZSAKKyAgICAgIGNob29zZSB0byByZW5hbWUgdGhlbSB0byBUaWxlcy4mbmJzcDs8L0ZPTlQ+PC9QPgorICAgICAgPFA+PEZPTlQgc2l6ZT0yPlRpbGVzIHByb3ZpZGUgYSAKKyAgICAgIHN1cGVyc2V0IG9mIFRlbXBsYXRlIHRhZ3MgYXMgZGVmaW5lZCBpbiBTdHJ1dHMgYnkgRGF2aWQgR2VhcnkgOiB5b3UgY2FuIGZpbmQgYWxsIAorICAgICAgdGFncyBhbmQgYmVoYXZpb3IgZGVmaW5lZCBieSBUZW1wbGF0ZXMuIEJ1dCwgVGlsZXMmbmJzcDs8L0ZPTlQ+PEZPTlQgc2l6ZT0yPiBnbyBvbmUgc3RlcCBiZXlvbmQgYW5kIGV4dGVuZCB0aGUgY29uY2VwdCBvZiAKKyAgICAgICJ0ZW1wbGF0ZXMiIHRvIHRoZSBjb25jZXB0IG9mICJwYXJhbWV0ZXJpemVkIGNvbXBvbmVudHMiIG9yIAorICAgICAgIlRpbGVzIi48L0ZPTlQ+PC9QPgorPC9URD48L1RSPjwvVEFCTEU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy9wb3J0YWwvdG9kby5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3BvcnRhbC90b2RvLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTI4ZWIxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy9wb3J0YWwvdG9kby5qc3AKQEAgLTAsMCArMSwyMiBAQAorPHRhYmxlICB3aWR0aD0iMTAwJSI+Cis8dHI+Cis8dGggYmdjb2xvcj0iYXF1YSIgY29sU3Bhbj0yPjxmb250IHNpemU9IisxIj48c3Ryb25nPlRvIAorICBEbzwvU1RST05HPjwvRk9OVD48L1RIPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY29sU3Bhbj0yPjxGT05UIHNpemU9Mj48U1RST05HPkNvbXBvbmVudHMgQ29uZmlndXJhdGlvbiAKKyAgICAgIEZpbGU8L1NUUk9ORz48L0ZPTlQ+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREPgorICAgICAgPFVMPgorICAgICAgICA8TEk+PEZPTlQgc2l6ZT0yPkFkZCB0aGUgCisgICAgICAgIGFiaWxpdHkgdG8gaGF2ZSBhdHRyaWJ1dGUgdmFsdWUgaW4gdGFnIGJvZHkuIFRoaXMgaXMgYWxyZWFkeSB0aGUgY2FzZSBpbiAKKyAgICAgICAgSlNQIHBhZ2VzLCBidXQgbm90IGluIENvbmZpZ3VyYXRpb24gZmlsZS48L0ZPTlQ+IDwvTEk+PC9VTD48L1REPgorICA8VFI+CisgICAgPFREIGNvbFNwYW49Mj48Rk9OVCBzaXplPTI+PFNUUk9ORz5SZWxvYWQ8L1NUUk9ORz48L0ZPTlQ+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNvbFNwYW49Mj4KKyAgICAgIDxVTD4KKyAgICAgICAgPExJPjxGT05UIHNpemU9Mj5CZSBhYmxlIHRvIAorICAgICAgICByZWxvYWQgZGVmaW5pdGlvbnMgZGVzY3JpcHRpb25zIHdpdGhvdXQgcmVzdGFydGluZyB3ZWIgY29udGFpbmVyLiBUaGlzIAorICAgICAgICBjYW4gZWFzaWx5IGJlIGRvbmUgd2l0aCBhbiBhZG1pbmlzdHJhdGlvbiAKKyAgcGFnZS48L0ZPTlQ+PC9MST48L1VMPjwvVEQ+PC9UUj48L1RBQkxFPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvcG9ydGFsL3dlbGNvbWUuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy9wb3J0YWwvd2VsY29tZS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWMyM2Y1YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvcG9ydGFsL3dlbGNvbWUuanNwCkBAIC0wLDAgKzEsMjIgQEAKKzx0YWJsZSAgd2lkdGg9IjEwMCUiPgorPHRyPgorPHRoIGJnY29sb3I9ImFxdWEiPjxmb250IHNpemU9IisxIj48c3Ryb25nPldlbGNvbWU8L3N0cm9uZz48L2ZvbnQ+PC90aD48L3RyPgorPHRyPgorPHRkPgorICAgICAgPFA+CisgICAgICA8Rk9OVCBzaXplPTI+IFdlbGNvbWUgdG8gdGhlIDxFTT5UaWxlcyA8L0VNPndlYnNpdGUuIFRoaXMgInBvcnRhbCIgcGFnZSBpcyBhbiBleGFtcGxlIG9mIHdoYXQgY2FuIGJlIAorICAgICAgZG9uZSB3aXRoIDxFTT5UaWxlczwvRU0+LiBJdCBpcyBtYWRlIGJ5IGFzc2VtYmxpbmcgPEVNPlRpbGVzPC9FTT4uCisJICAgPC9GT05UPgorICA8QlI+PEZPTlQgc2l6ZT0yPgorICBZb3UgY2FuIDoKKyAgPHVsPgorICAgIDxsaT5UYWtlIGEgZ2xhbmNlIGF0IHNvbWUgVGlsZXMgZmVhdHVyZXMgYW5kIGNhcGFiaWxpdGllcyBieSBicm93c2luZyB0aGUgY29tbWVudGVkIGxpdmUgZXhhbXBsZXMgKGF2YWxhaWJsZSBpZiB5b3UgaW5zdGFsbCBUaWxlcyk8L2xpPgorICAgIDxsaT5DaGVjayB0aGUgIlF1aWNrIE92ZXJ2aWV3IiBmb3IgY29kZSBleGFtcGxlcyBhbmQgcmVzdWx0czwvbGk+CisgICAgPGxpPlN0YXJ0IGxlYXJuaW5nIFRpbGVzIHdpdGggdGhlIHR1dG9yaWFsPC9saT4KKyAgICA8bGk+TGVhcm4gPGEgaHJlZj0iaHR0cDovL3d3dy5saWZsLmZyL35kdW1vdWxpbi90aWxlcy90aWxlc0FkdmFuY2VkRmVhdHVyZXMucGRmIiAvPlRpbGVzIEFkdmFuY2VkIEZlYXR1cmVzIChwZGYpPC9hPjwvbGk+CisgICAgPGxpPlJlYWQgYXJ0aWNsZSBmcm9tIDxhIGhyZWY9Imh0dHA6Ly93d3cuamF2YXdvcmxkLmNvbS9qYXZhd29ybGQvanctMDEtMjAwMi9qdy0wMTA0LXRpbGVzdHJ1dC5odG1sIiA+amF2YXdvcmxkPC9hPjwvbGk+CisgIDwvdWw+CisgIDwvRk9OVD4gCis8L1A+Cis8L3RkPjwvdHI+Cis8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy90aWxlc1RhZ3MuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy90aWxlc1RhZ3MuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViNTNkNTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3RpbGVzVGFncy5qc3AKQEAgLTAsMCArMSw2IEBACis8JUAgcGFnZSBsYW5ndWFnZT0iamF2YSIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPHRpbGVzOmluc2VydCBkZWZpbml0aW9uPSJkb2MubWFpbkxheW91dCIgZmx1c2g9InRydWUiPgorICA8dGlsZXM6cHV0IG5hbWU9ImJvZHkiIHZhbHVlPSIvZG9jL3N0cnV0cy10aWxlc1RhZ3MuaHRtbCIgLz4KKzwvdGlsZXM6aW5zZXJ0PiAgCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3R1dG9yaWFsLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvdHV0b3JpYWwuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4ZmY4OGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3R1dG9yaWFsLmpzcApAQCAtMCwwICsxLDQgQEAKKzwlQCBwYWdlIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249Im1haW5MYXlvdXQiIGZsdXNoPSJ0cnVlIiAvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2RvYy90dXRvcmlhbFN0YXRpY0luZGV4LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvdHV0b3JpYWxTdGF0aWNJbmRleC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzY1YjQ0MAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvdHV0b3JpYWxTdGF0aWNJbmRleC5qc3AKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4KKworPGh0bWw+Cis8aGVhZD4KKwk8dGl0bGU+VGlsZXMgOiB0dXRvcmlhbCBFeGFtcGxlcyBub3QgQXZhaWxhYmxlIG9uIHRoaXMgc2l0ZTwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPFA+Jm5ic3A7PC9QPgorPFA+Jm5ic3A7PC9QPgorPFA+PEZPTlQgc2l6ZT00PlRoZSB0dXRvcmlhbCBsaXZlIGV4YW1wbGVzIGFyZSBub3QgYXZhaWxhYmxlIG9uIHRoaXMgc2l0ZS4gCis8L0ZPTlQ+PC9QPgorPFA+Jm5ic3A7PC9QPgorPFA+PEZPTlQgc2l6ZT00PllvdSBjYW4gdHJ5IHRoZW0gYnkgZG93bmxvYWRpbmcgVGlsZXMgYXBwbGljYXRpb24sIGFuZCBydW5uaW5nIAordGhlIHByb3ZpZGVkIHdhciBmaWxlIGluIGEganNwIGNvbnRhaW5lci4gPC9GT05UPjwvUD4KKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIAorICAgICAKKworCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3VzZXJHdWlkZS5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZG9jL3VzZXJHdWlkZS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY0Y2ZlMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9kb2MvdXNlckd1aWRlLmpzcApAQCAtMCwwICsxLDYgQEAKKzwlQCBwYWdlIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249ImRvYy5tYWluTGF5b3V0IiBmbHVzaD0idHJ1ZSI+CisgIDx0aWxlczpwdXQgbmFtZT0iYm9keSIgdmFsdWU9Ii9kb2MvdXNlckd1aWRlQm9keS5odG1sIiAvPgorPC90aWxlczppbnNlcnQ+ICAKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy9pbmRleC5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvaW5kZXguanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyOTkyNDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvaW5kZXguanNwCkBAIC0wLDAgKzEsMyBAQAorPCVAIHBhZ2UgbGFuZ3VhZ2U9ImphdmEiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+Cis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249ImV4YW1wbGVzLmluZGV4LnBhZ2UiIGZsdXNoPSJ0cnVlIiAvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL215TWVudVNldHRpbmdzLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy9teU1lbnVTZXR0aW5ncy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYwNDY2ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy9teU1lbnVTZXR0aW5ncy5qc3AKQEAgLTAsMCArMSw0IEBACis8JUAgcGFnZSBsYW5ndWFnZT0iamF2YSIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPHRpbGVzOmluc2VydCBkZWZpbml0aW9uPSJleGFtcGxlcy51c2VyTWVudS5zZXR0aW5ncy5wYWdlIiBmbHVzaD0idHJ1ZSIgLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy9teVBvcnRhbC5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvbXlQb3J0YWwuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2ZjIzOGUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvbXlQb3J0YWwuanNwCkBAIC0wLDAgKzEsNCBAQAorPCVAIHBhZ2UgbGFuZ3VhZ2U9ImphdmEiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgZGVmaW5pdGlvbj0iZXhhbXBsZXMucG9ydGFsLnBhZ2UiIGZsdXNoPSJ0cnVlIiAvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL215UG9ydGFsU2V0dGluZ3MuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL215UG9ydGFsU2V0dGluZ3MuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiZWZkNmUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvbXlQb3J0YWxTZXR0aW5ncy5qc3AKQEAgLTAsMCArMSw0IEBACis8JUAgcGFnZSBsYW5ndWFnZT0iamF2YSIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPHRpbGVzOmluc2VydCBkZWZpbml0aW9uPSJleGFtcGxlcy5wb3J0YWwuc2V0dGluZ3MucGFnZSIgZmx1c2g9InRydWUiIC8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvcG9ydGFsLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy9wb3J0YWwuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2ZjIzOGUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvcG9ydGFsLmpzcApAQCAtMCwwICsxLDQgQEAKKzwlQCBwYWdlIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249ImV4YW1wbGVzLnBvcnRhbC5wYWdlIiBmbHVzaD0idHJ1ZSIgLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy9yc3NDaGFubmVscy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvcnNzQ2hhbm5lbHMuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NGUyMGEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvcnNzQ2hhbm5lbHMuanNwCkBAIC0wLDAgKzEsNCBAQAorPCVAIHBhZ2UgbGFuZ3VhZ2U9ImphdmEiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgZGVmaW5pdGlvbj0iZXhhbXBsZXMucnNzQ2hhbm5lbHMucGFnZSIgZmx1c2g9InRydWUiIC8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvcnNzRmVlZC9hcGFjaGV3ZWVrLWhlYWRsaW5lcy54bWwgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvcnNzRmVlZC9hcGFjaGV3ZWVrLWhlYWRsaW5lcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTBlMmU4NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy9yc3NGZWVkL2FwYWNoZXdlZWstaGVhZGxpbmVzLnhtbApAQCAtMCwwICsxLDQ1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgPz4KKzwhRE9DVFlQRSByc3MgUFVCTElDICItLy9OZXRzY2FwZSBDb21tdW5pY2F0aW9ucy8vRFREIFJTUyAwLjkxLy9FTiIgImh0dHA6Ly9teS5uZXRzY2FwZS5jb20vcHVibGlzaC9mb3JtYXRzL3Jzcy0wLjkxLmR0ZCI+Cis8cnNzIHZlcnNpb249IjAuOTEiPgorICA8Y2hhbm5lbD4KKyAgICA8dGl0bGU+QXBhY2hlIFdlZWsgMjYyPC90aXRsZT4KKyAgICA8ZGVzY3JpcHRpb24+VGhlIGVzc2VudGlhbCByZXNvdXJjZSBmb3IgYW55b25lIHJ1bm5pbmcgYW4gQXBhY2hlIHNlcnZlciwgb3IgYW55b25lIHJlc3BvbnNpYmxlIGZvciBydW5uaW5nIEFwYWNoZS1iYXNlZCBzZXJ2aWNlcy48L2Rlc2NyaXB0aW9uPgorICAgIDxsYW5ndWFnZT5lbi1nYjwvbGFuZ3VhZ2U+CisgICAgPGxpbms+aHR0cDovL3d3dy5hcGFjaGV3ZWVrLmNvbS88L2xpbms+CisgICAgPGNvcHlyaWdodD5Db3B5cmlnaHQgMjAwMSwgUmVkIEhhdCBFdXJvcGU8L2NvcHlyaWdodD4KKyAgICA8bWFuYWdpbmdFZGl0b3I+ZWRpdG9yc0BhcGFjaGV3ZWVrLmNvbSAoTWFyayBDb3gpPC9tYW5hZ2luZ0VkaXRvcj4KKyAgICA8d2ViTWFzdGVyPndlYmFkbWluQGFwYWNoZXdlZWsuY29tIChNYXJrIENveCk8L3dlYk1hc3Rlcj4KKyAgICA8bGFzdEJ1aWxkRGF0ZT4yMDAxMDkwNzwvbGFzdEJ1aWxkRGF0ZT4KKyAgICA8cHViRGF0ZT4yMDAxMDkwNzwvcHViRGF0ZT4KKyAgICA8aW1hZ2U+CisgICAgICA8dGl0bGU+QXBhY2hlIFdlZWs8L3RpdGxlPgorICAgICAgPHVybD5odHRwOi8vd3d3LmFwYWNoZXdlZWsuY29tL2ltZy9hcGFjaGV3ZWVrX2NoYW5uZWwuZ2lmPC91cmw+CisgICAgICA8bGluaz5odHRwOi8vd3d3LmFwYWNoZXdlZWsuY29tLzwvbGluaz4KKyAgICAgIDx3aWR0aD44ODwvd2lkdGg+CisgICAgICA8aGVpZ2h0PjMxPC9oZWlnaHQ+CisgICAgICA8ZGVzY3JpcHRpb24+QXBhY2hlIFdlZWs8L2Rlc2NyaXB0aW9uPgorICAgIDwvaW1hZ2U+CisgICAgPGl0ZW0+CisgICAgICA8dGl0bGU+VW5kZXIgZGV2ZWxvcG1lbnQ8L3RpdGxlPgorICAgICAgPGxpbms+aHR0cDovL3d3dy5hcGFjaGV3ZWVrLmNvbS9pc3N1ZXMvMDEtMDktMDcjZGV2PC9saW5rPgorICAgICAgPGRlc2NyaXB0aW9uPgorQ29udHJvdmVyc3kgb3ZlciBhIGd6aXAgY29udGVudCBjb21wcmVzc2lvbiBtb2R1bGUgZm9yIDIuMAorPC9kZXNjcmlwdGlvbj4KKyAgICA8L2l0ZW0+CisgICAgPGl0ZW0+CisgICAgICA8dGl0bGU+SW4gdGhlIG5ld3M8L3RpdGxlPgorICAgICAgPGxpbms+aHR0cDovL3d3dy5hcGFjaGV3ZWVrLmNvbS9pc3N1ZXMvMDEtMDktMDcjbmV3czwvbGluaz4KKyAgICAgIDxkZXNjcmlwdGlvbj4KK05ldyB3ZWIgc2VydmVyIHN1cnZleXMgdGhpcyBtb250aCBhZ3JlZSB0aGF0IEFwYWNoZSBpcyBzdGlsbCBpbiAKK3VzZSBvbiBhcm91bmQgNjAlIG9mIGFsbCBzaXRlcworPC9kZXNjcmlwdGlvbj4KKyAgICA8L2l0ZW0+CisgICAgPGl0ZW0+CisgICAgICA8dGl0bGU+RmVhdHVyZWQgYXJ0aWNsZXM8L3RpdGxlPgorICAgICAgPGxpbms+aHR0cDovL3d3dy5hcGFjaGV3ZWVrLmNvbS9pc3N1ZXMvMDEtMDktMDcjZmVhdHVyZWQ8L2xpbms+CisgICAgICA8ZGVzY3JpcHRpb24+CitBbmFseXNpbmcgQXBhY2hlIGxvZ3Mgd2l0aCBXZWJhbGl6ZXI7IGltcHJvdmluZyB5b3VyIEFwYWNoZSBzZXJ2ZXIgcGVyZm9ybWFuY2UKKzwvZGVzY3JpcHRpb24+CisgICAgPC9pdGVtPgorICA8L2NoYW5uZWw+Cis8L3Jzcz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy9yc3NGZWVkL3Jzcy1leGFtcGxlLnhtbCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy9yc3NGZWVkL3Jzcy1leGFtcGxlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGE1ZTUwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3Jzc0ZlZWQvcnNzLWV4YW1wbGUueG1sCkBAIC0wLDAgKzEsNjUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiA/PgorCis8IURPQ1RZUEUgcnNzIFBVQkxJQworICItLy9OZXRzY2FwZSBDb21tdW5pY2F0aW9ucy8vRFREIFJTUyAwLjkxLy9FTiIKKyAiaHR0cDovL215Lm5ldHNjYXBlLmNvbS9wdWJsaXNoL2Zvcm1hdHMvcnNzLTAuOTEuZHRkIj4KKworPHJzcyB2ZXJzaW9uPSIwLjkxIj4KKworICA8Y2hhbm5lbD4KKworICAgIDx0aXRsZT5Nb3ppbGxhWmluZTwvdGl0bGU+CisgICAgPGxpbms+aHR0cDovL3d3dy5tb3ppbGxhemluZS5vcmc8L2xpbms+CisgICAgPGRlc2NyaXB0aW9uPllvdXIgc291cmNlIGZvciBNb3ppbGxhIG5ld3MsIGFkdm9jYWN5LAorICAgICAgaW50ZXJ2aWV3cywgYnVpbGRzLCBhbmQgbW9yZSE8L2Rlc2NyaXB0aW9uPgorICAgIDxsYW5ndWFnZT5lbi1VUzwvbGFuZ3VhZ2U+CisgICAgPHJhdGluZz4oUElDUy0xLjEgImh0dHA6Ly93d3cucnNhYy5vcmcvcmF0aW5nc3YwMS5odG1sIgorICAgICAgMiBnZW4gdHJ1ZSBjb21tZW50ICJSU0FDaSBOb3J0aCBBbWVyaWNhIFNlcnZlciIKKyAgICAgIGZvciAiaHR0cDovL3d3dy5yc2FjLm9yZyIgb24gIjE5OTYuMDQuMTZUMDg6MTUtMDUwMCIKKyAgICAgIHIgKG4gMCBzIDAgdiAwIGwgMCkpPC9yYXRpbmc+CisKKyAgICA8aW1hZ2U+CisgICAgICA8dGl0bGU+TW96aWxsYVppbmU8L3RpdGxlPgorICAgICAgPHVybD5odHRwOi8vd3d3Lm1vemlsbGF6aW5lLm9yZy9pbWFnZS9teW5ldHNjYXBlODguZ2lmPC91cmw+CisgICAgICA8bGluaz5odHRwOi8vd3d3Lm1vemlsbGF6aW5lLm9yZzwvbGluaz4KKyAgICAgIDx3aWR0aD44ODwvd2lkdGg+CisgICAgICA8aGVpZ2h0PjMxPC9oZWlnaHQ+CisgICAgICA8ZGVzY3JpcHRpb24+QXJ0aWNsZXMsIGRpc2N1c3Npb25zLCBidWlsZHMsIGFuZCBtb3JlLi4uPC9kZXNjcmlwdGlvbj4KKyAgICA8L2ltYWdlPgorCisgICAgPGl0ZW0+CisgICAgICA8dGl0bGU+SmF2YTIgaW4gTmF2aWdhdG9yIDU/PC90aXRsZT4KKyAgICAgIDxsaW5rPmh0dHA6Ly93d3cubW96aWxsYXppbmUub3JnL3RhbGtiYWNrLmh0bWw/YXJ0aWNsZT02MDc8L2xpbms+CisgICAgICA8ZGVzY3JpcHRpb24+V2lsbCBKYXZhMiBiZSBhbiBpbnRlZ3JhdGVkIHBhcnQgb2YgTmF2aWdhdG9yIDU/CisgICAgICBSZWFkIG1vcmUgYWJvdXQgaXQgaW4gdGhpcyBkaXNjdXNzaW9uLi4uPC9kZXNjcmlwdGlvbj4KKyAgICA8L2l0ZW0+CisKKyAgICA8aXRlbT4KKyAgICAgIDx0aXRsZT5Db21tdW5pY2F0b3IgNC42MSBPdXQ8L3RpdGxlPgorICAgICAgPGxpbms+aHR0cDovL3d3dy5tb3ppbGxhemluZS5vcmcvdGFsa2JhY2suaHRtbD9hcnRpY2xlPTYwNjwvbGluaz4KKyAgICAgIDxkZXNjcmlwdGlvbj5UaGUgbGF0ZXN0IHZlcnNpb24gb2YgQ29tbXVuaWNhdG9yIGlzIG5vdworICAgICAgYXZhaWxhYmxlLiAgSXQgaW5jbHVkZXMgc2VjdXJpdHkgZW5oYW5jZW1lbnRzCisgICAgICBhbmQgdmFyaW91cyBidWcgZml4ZXMuPC9kZXNjcmlwdGlvbj4KKyAgICA8L2l0ZW0+CisKKyAgICA8aXRlbT4KKyAgICAgIDx0aXRsZT5Nb3ppbGxhIERpc3BlbnNlcyB3aXRoIE9sZCwKKyAgICAgIFByb3ByaWV0YXJ5IERPTTwvdGl0bGU+CisgICAgICA8bGluaz5odHRwOi8vd3d3Lm1vemlsbGF6aW5lLm9yZy90YWxrYmFjay5odG1sP2FydGljbGU9NjA0PC9saW5rPgorICAgIDwvaXRlbT4KKworICAgIDxpdGVtPgorICAgICAgPHRpdGxlPlRoZSBBbmltYXRpb24gQ29udGVzdCBpcyBOb3cgQ2xvc2VkPC90aXRsZT4KKyAgICAgIDxsaW5rPmh0dHA6Ly93d3cubW96aWxsYXppbmUub3JnL3RhbGtiYWNrLmh0bWw/YXJ0aWNsZT02MDM8L2xpbms+CisgICAgPC9pdGVtPgorCisgICAgPHRleHRpbnB1dD4KKyAgICAgIDx0aXRsZT5TZW5kPC90aXRsZT4KKyAgICAgIDxkZXNjcmlwdGlvbj5Db21tZW50cyBhYm91dCBNb3ppbGxhWmluZT88L2Rlc2NyaXB0aW9uPgorICAgICAgPG5hbWU+cmVzcG9uc2VUZXh0PC9uYW1lPgorICAgICAgPGxpbms+aHR0cDovL3d3dy5tb3ppbGxhemluZS5vcmcvY2dpLWJpbi9zYW1wbGVvbmx5LmNnaTwvbGluaz4KKyAgICA8L3RleHRpbnB1dD4KKworICA8L2NoYW5uZWw+CisKKzwvcnNzPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3NraW5TZXR0aW5ncy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvc2tpblNldHRpbmdzLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzYwYWY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3NraW5TZXR0aW5ncy5qc3AKQEAgLTAsMCArMSw0IEBACis8JUAgcGFnZSBsYW5ndWFnZT0iamF2YSIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPHRpbGVzOmluc2VydCBkZWZpbml0aW9uPSJleGFtcGxlcy5za2luLnNldHRpbmdzLnBhZ2UiIGZsdXNoPSJ0cnVlIiAvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3N1bW1hcmllc1RhYnMuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3N1bW1hcmllc1RhYnMuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkMDgxMzAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvc3VtbWFyaWVzVGFicy5qc3AKQEAgLTAsMCArMSw0IEBACis8JUAgcGFnZSBsYW5ndWFnZT0iamF2YSIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPHRpbGVzOmluc2VydCBkZWZpbml0aW9uPSJleGFtcGxlcy50YWJzLnN1bW1hcmllcy5wYWdlIiBmbHVzaD0idHJ1ZSIgLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90YWJzLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90YWJzLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmVmMjNiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RhYnMuanNwCkBAIC0wLDAgKzEsNCBAQAorPCVAIHBhZ2UgbGFuZ3VhZ2U9ImphdmEiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgZGVmaW5pdGlvbj0iZXhhbXBsZXMudGFicy5wYWdlIiBmbHVzaD0idHJ1ZSIgLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9hZG1pblN1bW1hcnkuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL2FkbWluU3VtbWFyeS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjNlYTYxYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9hZG1pblN1bW1hcnkuanNwCkBAIC0wLDAgKzEsMzAgQEAKKzxkaXYgYWxpZ249ImNlbnRlciI+PGZvbnQgc2l6ZT0iKzEiPjxiPgorCis8VEFCTEUgYm9yZGVyPSIwIiBjZWxsUGFkZGluZz0iMiIgY2VsbFNwYWNpbmc9MCB3aWR0aD0iMTAwJSIgPgorICAKKyAgPFRSPgorICAgIDxURCBjbGFzcz1zcGFuaGQ+QWRtaW5pc3RyYXRpb248L1REPgorICA8L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPSJkYXRhZ3JleSI+CisJPHVsPgorCSAgPGxpPlNvbWUgYWRtaW5pc3RyYXRpb24gZmFjaWxpdGllcyBhcmUgcHJvdmlkZWQuPC9saT4KKwkgIDxsaT5JdCBpcyBwb3NzaWJsZSB0byByZWxvYWQgZGVmaW5pdGlvbnMgY29uZmlndXJhdGlvbiBmaWxlcyB3aXRob3V0IHJlc3RhcnRpbmcKKwkgIHRoZSB3ZWIgc2VydmVyLjwvbGk+CisJICA8bGk+QWxzbywgaXQgaXMgcG9zc2libGUgdG8gdmlldyBkZWZpbml0aW9ucyBsb2FkZWQgYW5kIHJlc29sdmVkIGJ5IHRoZSBmYWN0b3J5LjwvbGk+CisJICA8bGk+VGhpcyBmYWNpbGl0aWVzIGFyZSB1c2VkIGR1cmluZyBkZXZlbG9wbWVudC4gVGhleSBzaG91bGQgYmUgcmVtb3ZlZCBvciBwcm90ZWN0ZWQgd2l0aCBhIHBhc3N3b3JkIAorCSAgaWYgdXNlZCBpbiBhIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQuPC9saT4KKwk8L3VsPgorCTwvVEQ+CisgIDwvVFI+CisgIDxUUj4KKyAgICA8dGQgY2xhc3M9ImRhdGFsaWdodGJsdWUiPiAgCisJPHVsPgorCSAgPGxpPjxhIGhyZWY9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L2FkbWluL3RpbGVzL3JlbG9hZC5kbyI+UmVsb2FkIEZhY3Rvcnk8L2E+PC9saT4KKwkgIDxsaT48YSBocmVmPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi9hZG1pbi90aWxlcy92aWV3LmRvIj5WaWV3IEZhY3Rvcnk8L2E+PC9saT4KKwk8L3VsPgorICAgIDwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorCis8L2I+PC9mb250PjwvZGl2PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9ib2R5LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9ib2R5LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTFiMGE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL2JvZHkuanNwCkBAIC0wLDAgKzEsMTAgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPGRpdiBhbGlnbj0iY2VudGVyIj4KKyAgPGZvbnQgY29sb3I9IiMwMjMyNjQiIHNpemU9Ii0xIj4KKyAgICA8ZW0+ICAgICAgICAgICAgICAgICAgVGhpcyBpcyB0aGUgYm9keSAgISAgICAgICAgICAgICAgIDwvZW0+CisJPGJyPgorICAgIDxlbT4gICAgICAgICAgICAgICAgICAgICAgICBkb25lICAgICAgICAgICAgICAgICAgICAgICAgPC9lbT4KKyAgPC9mb250PgorPC9kaXY+Cis8aW1nIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vaW1hZ2VzL3N0cnV0cy1wb3dlci5naWYiIGFsaWduPSJjZW50ZXIiIGJvcmRlcj0iMCI+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvY29tcG9uZW50c1N1bW1hcnkuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL2NvbXBvbmVudHNTdW1tYXJ5LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzMxZTBhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL2NvbXBvbmVudHNTdW1tYXJ5LmpzcApAQCAtMCwwICsxLDI3IEBACis8ZGl2IGFsaWduPSJjZW50ZXIiPjxmb250IHNpemU9IisxIj48Yj4KKworPFRBQkxFIGJvcmRlcj0iMCIgY2VsbFBhZGRpbmc9IjIiIGNlbGxTcGFjaW5nPTAgd2lkdGg9IjEwMCUiID4KKyAgCisgIDxUUj4KKyAgICA8VEQgY2xhc3M9c3BhbmhkPlJldXNlIFRpbGVzPC9URD4KKyAgPC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz0iZGF0YWdyZXkiPgorCTx1bD4KKwkgIDxsaT5BIHRpbGUgY2FuIGJlIHVzZWQgc2V2ZXJhbCB0aW1lIGluIGEgc2FtZSBwYWdlPC9saT4KKwkgIDxsaT5Gb3IgZXhhbXBsZSwgeW91IGNhbiBoYXZlIGEgVGlsZSByZW5kZXJpbmcgYW4gYWRkcmVzcywgYW5kIHVzZSBpdCB0bworCSAgcmVuZGVyIGFzIHdlbGwgc2hpcHBpbmcgYW5kIGJpbGxpbmcgYWRkcmVzc2VzPC9saT4KKwk8L3VsPgorCTwvVEQ+CisgIDwvVFI+CisgIDxUUj4KKyAgICA8dGQgY2xhc3M9ImRhdGFsaWdodGJsdWUiPgorCTx1bD4KKwkgIDxsaT5uZXcgZXhhbXBsZXMgbm90IHlldCBhdmFpbGFibGUsIHNlZSB0dXRvcmlhbCBpbiBtZWFudGltZTwvbGk+CisJPC91bD4KKyAgICA8L1REPgorICA8L1RSPgorCis8L1RBQkxFPgorCis8L2I+PC9mb250PjwvZGl2PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9mb290ZXIuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL2Zvb3Rlci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FhN2Q0ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9mb290ZXIuanNwCkBAIC0wLDAgKzEsOSBAQAorPGhyPgorPGRpdiBhbGlnbj0iY2VudGVyIj4KKyAgPGZvbnQgY29sb3I9IiMwMjMyNjQiIHNpemU9Ii0xIj4KKyAgICA8ZW0+ICAgICAgICAgQ29weXJpZ2h0ICZjb3B5OyAyMDAxLTIwMDQsIFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAgICAgICAgIDwvZW0+CisJPGJyPgorICAgIDxlbT4gICAgICAgICAgICAgICAgICAgICAgICBhbmQgQ2VkcmljIER1bW91bGluICAgICAgICAgICAgICAgICAgICAgICAgPC9lbT4KKyAgPC9mb250PgorPC9kaXY+Cis8aW1nIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vaW1hZ2VzL3N0cnV0cy1wb3dlci5naWYiIGFsaWduPSJyaWdodCIgYm9yZGVyPSIwIj4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9oZWFkZXIuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL2hlYWRlci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjM2Y2UxMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9oZWFkZXIuanNwCkBAIC0wLDAgKzEsMyBAQAorPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnIj48aW1nIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vaW1hZ2VzL2FzZi1sb2dvLmdpZiIgYWxpZ249ImxlZnQiIGJvcmRlcj0iMCI+PC9hPgorPGEgaHJlZj0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnIj48aW1nIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vaW1hZ2VzL3N0cnV0cy5naWYiIGFsaWduPSJyaWdodCIgYm9yZGVyPSIwIj48L2E+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9pMThuU3VtbWFyeS5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvaTE4blN1bW1hcnkuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0MWRhOGUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvaTE4blN1bW1hcnkuanNwCkBAIC0wLDAgKzEsMjcgQEAKKzxkaXYgYWxpZ249ImNlbnRlciI+PGZvbnQgc2l6ZT0iKzEiPjxiPgorCis8VEFCTEUgYm9yZGVyPSIwIiBjZWxsUGFkZGluZz0iMiIgY2VsbFNwYWNpbmc9MCB3aWR0aD0iMTAwJSIgPgorICAKKyAgPFRSPgorICAgIDxURCBjbGFzcz1zcGFuaGQ+SW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pPC9URD4KKyAgPC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz0iZGF0YWdyZXkiPgorCTx1bD4KKwkgIDxsaT5UaWxlcyBwcm92aWRlIHNvbWUgZmFjaWxpdGllcyBmb3IgaTE4bjwvbGk+CisJICA8bGk+SXQgaXMgcG9zc2libGUgdG8gbG9hZCBhIGRpZmZlcmVudCBUaWxlIGFjY29yZGluZyB0byB0aGUgdXNlciBMb2NhbGUgc2V0dGluZzwvbGk+CisJICA8bGk+VGlsZXMgaGF2ZSB0aGUgc2FtZSBkZWZpbml0aW9uIG5hbWUsIGJ1dCBkaWZmZXJlbnQgZGVmaW5pdGlvbiBhdHRyaWJ1dGVzLjwvbGk+CisJICA8bGk+RGVmaW5pdGlvbnMgYXJlIGRlZmluZWQgaW4gc2VwYXJhdGUgY29uZmlndXJhdGlvbiBmaWxlcywgb25lIGZvciBlYWNoIGxvY2FsZS4gCisJICBBcHByb3ByaWF0ZSBmaWxlIGlzIGxvYWRlZCB1c2luZyB0aGUgc2FtZSBydWxlcyBhcyBmb3IgSmF2YSBwcm9wZXJ0aWVzIDogCisJICBjb25maWd1cmF0aW9uIGZpbGUgbmFtZSBpcyBleHRlbmRlZCB3aXRoIGxvY2FsZSBhYnJldmlhdGlvbnM8L2xpPgorCTwvdWw+CisJPC9URD4KKyAgPC9UUj4KKyAgICA8dGQgY2xhc3M9ImRhdGFsaWdodGJsdWUiPgorCTx1bD4KKwkgIDxsaT5uZXcgZXhhbXBsZXMgbm90IHlldCBhdmFpbGFibGUsIHNlZSB0dXRvcmlhbCBpbiBtZWFudGltZTwvbGk+CisJPC91bD4KKyAgICA8L1REPgorPC9UQUJMRT4KKworPC9iPjwvZm9udD48L2Rpdj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvbWVudVN1bW1hcnkuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL21lbnVTdW1tYXJ5LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWE0NDE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL21lbnVTdW1tYXJ5LmpzcApAQCAtMCwwICsxLDI0IEBACis8ZGl2IGFsaWduPSJjZW50ZXIiPjxmb250IHNpemU9IisxIj48Yj4KKworPFRBQkxFIGJvcmRlcj0iMCIgY2VsbFBhZGRpbmc9IjIiIGNlbGxTcGFjaW5nPTAgd2lkdGg9IjEwMCUiID4KKyAgCisgIDxUUj4KKyAgICA8VEQgY2xhc3M9c3BhbmhkPk1lbnU8L1REPgorICA8L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPSJkYXRhZ3JleSI+CisJICA8dWw+CisJICAgIDxsaT5CdWlsZCBlYXNpbHkgbWVudXMgYnkgc3BlY2lmeWluZyBlbnRyaWVzIChvciBpdGVtcykgdG8gYmUgcmVuZGVyZWQsIGFuZCBsYXlvdXQgdXNlZCB0bworCSAgcmVuZGVyIHRoZW0uPC9saT4KKwkgICAgPGxpPkEgbWVudSBlbnRyeSBjYW4gY29udGFpbnMgdGV4dCwgbGluaywgaWNvbiwgdG9vbHRpcCwgLi4uPC9saT4KKwkgICAgPGxpPk1lbnUgbGF5b3V0IHJlbmRlcnMgZWFjaCBlbnRyeSBhY2NvcmRpbmcgdG8gcHJvcGVydGllcyBzZXQuPC9saT4KKwkgICAgPGxpPiBtZW51IGlzIGluc2VydGVkIGFueXdoZXJlIHdpdGggdGhlIHRhZyA8ZW0+Jmx0O3RpbGVzOmluc2VydCBuYW1lPSJtZW51TmFtZSImZ3Q7PC9lbT48L2xpPgorCSAgICA8bGk+SXQgaXMgcG9zc2libGUgdG8gY2hhbmdlIGFsbCBtZW51cyBsb29rIGFuZCBmZWVsIHNpbXBseSBieSBjaGFuZ2luZyBtZW51IGxheW91dC4gCisJICBObyBuZWVkIHRvIGNoYW5nZSBhbHJlYWR5IGRlZmluZWQgZW50cmllcy48L2xpPgorCSAgICA8bGk+QWxsIG1lbnVzIGluIHRoaXMgc2l0ZSBhcmUgYnVpbGQgdXNpbmcgZW50cmllcyBhbmQgbWVudSBsYXlvdXQuPC9saT4KKwkgIDwvdWw+CisJPC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+CisKKzwvYj48L2ZvbnQ+PC9kaXY+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL211bHRpQ2hhbm5lbHNTdW1tYXJ5LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9tdWx0aUNoYW5uZWxzU3VtbWFyeS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZiN2M4YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9tdWx0aUNoYW5uZWxzU3VtbWFyeS5qc3AKQEAgLTAsMCArMSwyOCBAQAorPGRpdiBhbGlnbj0iY2VudGVyIj48Zm9udCBzaXplPSIrMSI+PGI+CisKKzxUQUJMRSBib3JkZXI9IjAiIGNlbGxQYWRkaW5nPSIyIiBjZWxsU3BhY2luZz0wIHdpZHRoPSIxMDAlIiA+CisgIAorICA8VFI+CisgICAgPFREIGNsYXNzPXNwYW5oZD5NdWx0aSBDaGFubmVsczwvVEQ+CisgIDwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ImRhdGFncmV5Ij4KKwk8dWw+CisJICA8bGk+VGlsZXMgcHJvdmlkZSBzb21lIGZhY2lsaXRpZXMgZm9yICJtdWx0aSBjaGFubmVscyI8L2xpPgorCSAgPGxpPkl0IGlzIHBvc3NpYmxlIHRvIGRlZmluZSBkaWZmZXJlbnQgVGlsZXMgZm9yIGRpZmZlcmVudCBjaGFubmVscy48L2xpPgorCSAgPGxpPkFwcHJvcHJpYXRlIFRpbGUgaXMgbG9hZGVkIGFjY29yZGluZyB0byBjaGFubmVsIGtleSBzdG9yZSBzb21ld2hlcmUgKHVzdWFsbHkgYXNzb2NpYXRlZCB0byBjdXJyZW50IHVzZXIpPC9saT4KKwkgIDxsaT5FeGFtcGxlcyBvZiBjaGFubmVscyA6IFtodG1sLCB3bWwsIC4uLl0gb3IgW2dvbGQsIHNpbHZlciwgYnJvbnplLCAuLi5dPC9saT4KKwkgIDxsaT48L2xpPgorCSAgPGxpPjwvbGk+CisJICA8bGk+PC9saT4KKwk8L3VsPgorCTwvVEQ+CisgIDwvVFI+CisgICAgPHRkIGNsYXNzPSJkYXRhbGlnaHRibHVlIj4KKwk8dWw+CisJICA8bGk+bmV3IGV4YW1wbGVzIG5vdCB5ZXQgYXZhaWxhYmxlLCBzZWUgdHV0b3JpYWwgaW4gbWVhbnRpbWU8L2xpPgorCTwvdWw+CisgICAgPC9URD4KKzwvVEFCTEU+CisKKzwvYj48L2ZvbnQ+PC9kaXY+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL215TGF5b3V0U3VtbWFyeS5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvbXlMYXlvdXRTdW1tYXJ5LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDNhODkwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL215TGF5b3V0U3VtbWFyeS5qc3AKQEAgLTAsMCArMSwyNiBAQAorPGRpdiBhbGlnbj0iY2VudGVyIj48Zm9udCBzaXplPSIrMSI+PGI+CisKKzxUQUJMRSBib3JkZXI9IjAiIGNlbGxQYWRkaW5nPSIyIiBjZWxsU3BhY2luZz0wIHdpZHRoPSIxMDAlIiA+CisgIAorICA8VFI+CisgICAgPFREIGNsYXNzPXNwYW5oZD5Vc2VyIEN1c3RvbWl6ZWQgTGF5b3V0IChTa2lucyk8L1REPgorICA8L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPSJkYXRhZ3JleSI+CisJPHVsPgorCSAgPGxpPkl0IGlzIHBvc3NpYmxlIHRvIGNoYW5nZSB0aGUgbWFpbiBsYXlvdXQgdXNlZCBieSBvbmUgc2l0ZTwvbGk+CisJICA8bGk+RWFjaCBsYXlvdXQgc2hvd3MgdGhlIHNpdGUgaW4gYSBkaWZmZXJuZW50IEwmRjwvbGk+CisJPC91bD4KKwk8L1REPgorICA8L1RSPgorICA8VFI+CisgICAgPHRkIGNsYXNzPSJkYXRhbGlnaHRibHVlIj4KKwk8dWw+CisJICA8bGk+Q2hhbmdlIExheW91dAorICAgICAgPEJSPjxhIGhyZWY9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L2V4YW1wbGVzL3NraW5TZXR0aW5ncy5qc3AiPm15IExheW91dDwvYT48L2xpPgorCTwvdWw+CisgICAgPC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+CisKKzwvYj48L2ZvbnQ+PC9kaXY+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL215TWVudVNldHRpbmdzLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9teU1lbnVTZXR0aW5ncy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjJmZTM3MAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9teU1lbnVTZXR0aW5ncy5qc3AKQEAgLTAsMCArMSwxMTMgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1odG1sIiBwcmVmaXg9Imh0bWwiICU+CisKKzwlLS0KKyAgICAgIFJlbmRlciBhIHBhZ2UgYWxsb3dpbmcgdXNlciB0byBjdXN0b21pemUgaXRzIG1lbnUuCisJICBAcGFyYW0gY2hvaWNlSXRlbXMgQXZhaWxhYmxlIG1lbnUgZW50cmllcyBwcm9wb3NlZCBhcyBjaG9pY2UKKwkgIEBwYXJhbSB1c2VySXRlbXMgQWN0dWFsIHVzZXIgbWVudSBlbnRyaWVzCistLSU+CisKKzxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFTY3JpcHQxLjIiPgorZnVuY3Rpb24gc2VsZWN0QWxsKCApCit7Citmb3IoIGo9MDsgajxzZWxlY3RBbGwuYXJndW1lbnRzLmxlbmd0aDsgaisrICkKKyAgeworICBjb2wxID0gc2VsZWN0QWxsLmFyZ3VtZW50c1tqXTsKKyAgZm9yKGk9MDsgaTxjb2wxLm9wdGlvbnMubGVuZ3RoOyBpKysgKQorICAgIHsKKwljb2wxLm9wdGlvbnNbIGkgXS5zZWxlY3RlZCA9IHRydWU7CisJfQorICB9IC8vIGVuZCBsb29wCisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBtb3ZlKCBjb2wxLCBjb2wyKQoreworICB0b01vdmUgPSBjb2wxLm9wdGlvbnNbIGNvbDEuc2VsZWN0ZWRJbmRleCBdOworICBvcHQgPSBuZXcgT3B0aW9uKCB0b01vdmUudGV4dCwgdG9Nb3ZlLnZhbHVlLCBmYWxzZSwgZmFsc2UgKTsKKyAgY29sMS5vcHRpb25zW2NvbDEuc2VsZWN0ZWRJbmRleCBdID0gbnVsbDsKKyAgY29sMi5vcHRpb25zW2NvbDIubGVuZ3RoXSA9IG9wdDsKKyAgY29sMi5zZWxlY3RlZEluZGV4ID0gY29sMi5sZW5ndGgtMTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIHJlbW92ZSggY29sMSkKK3sKKyAgY29sMS5vcHRpb25zWyBjb2wxLnNlbGVjdGVkSW5kZXggXSA9IG51bGw7CisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiB1cCggY29sMSApCit7CisgIGluZGV4ID0gY29sMS5zZWxlY3RlZEluZGV4OworICBpZiggaW5kZXggPD0gMCApCisgICAgcmV0dXJuIHRydWU7CisJCisgIHRvTW92ZVggPSBjb2wxLm9wdGlvbnNbIGluZGV4IC0xIF07CisgIHRvTW92ZVkgPSBjb2wxLm9wdGlvbnNbIGluZGV4IF07CisgIG9wdFggPSBuZXcgT3B0aW9uKCB0b01vdmVYLnRleHQsIHRvTW92ZVgudmFsdWUsIGZhbHNlLCBmYWxzZSApOworICBvcHRZID0gbmV3IE9wdGlvbiggdG9Nb3ZlWS50ZXh0LCB0b01vdmVZLnZhbHVlLCBmYWxzZSwgZmFsc2UgKTsKKyAgY29sMS5vcHRpb25zW2luZGV4XSA9IG9wdFg7CisgIGNvbDEub3B0aW9uc1tpbmRleC0xXSA9IG9wdFk7CisgIGNvbDEuc2VsZWN0ZWRJbmRleCA9IGluZGV4LTE7CisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBkb3duKCBjb2wxICkKK3sKKyAgaW5kZXggPSBjb2wxLnNlbGVjdGVkSW5kZXg7CisgIGlmKCBpbmRleCsxID49ICBjb2wxLm9wdGlvbnMubGVuZ3RoICkKKyAgICByZXR1cm4gdHJ1ZTsKKwkKKyAgdG9Nb3ZlWCA9IGNvbDEub3B0aW9uc1sgaW5kZXggXTsKKyAgdG9Nb3ZlWSA9IGNvbDEub3B0aW9uc1sgaW5kZXggKyAxIF07CisgIG9wdFggPSBuZXcgT3B0aW9uKCB0b01vdmVYLnRleHQsIHRvTW92ZVgudmFsdWUsIGZhbHNlLCBmYWxzZSApOworICBvcHRZID0gbmV3IE9wdGlvbiggdG9Nb3ZlWS50ZXh0LCB0b01vdmVZLnZhbHVlLCBmYWxzZSwgZmFsc2UgKTsKKyAgY29sMS5vcHRpb25zW2luZGV4XSA9IG9wdFk7CisgIGNvbDEub3B0aW9uc1tpbmRleCsxXSA9IG9wdFg7CisgIGNvbDEuc2VsZWN0ZWRJbmRleCA9IGluZGV4KzE7CisKKyAgcmV0dXJuIHRydWU7Cit9CisKKzwvc2NyaXB0PgorCis8dGlsZXM6aW1wb3J0QXR0cmlidXRlIG5hbWU9ImNhdGFsb2ciIC8+Cis8dGlsZXM6aW1wb3J0QXR0cmlidXRlIG5hbWU9InVzZXJJdGVtcyIgLz4KKworPGh0bWw6Zm9ybSBhY3Rpb249Ii9teU1lbnVTZXR0aW5ncy5kbyIgID4KKyAKKwkgIDx1bD4KKwkgICAgPGxpPkNob29zZSBhbiBpdGVtIGZyb20gIkl0ZW1zIENob2ljZSIgY29sb21uLCBhbmQgYWRkIGl0IHRvICJteSBJdGVtcyIgdXNpbmcgdGhlICc+JyBidXR0b24uPC9saT4KKwkJPGxpPllvdSBjYW4gYWxzbyByZWFyYW5nZSB5b3VyIE1lbnUgYnkgdXNpbmcgYXBwcm9wcmlhdGUgYnV0dG9ucyA6ICdeJywgJ1YnIGFuZCAnZGVsZXRlJzwvbGk+CisJCTxsaT5WYWxpZGF0ZSB5b3VyIG1lbnUgYnkgY2xpY2tpbmcgb24gJ3ZhbGlkYXRlJyBidXR0b24uIExvYWQgYW55IHBhZ2UgYW5kIGNoZWNrIHlvdXIgbWVudSAhPC9saT4KKwkgIDwvdWw+CisgIDx0YWJsZSBhbGlnbj0iY2VudGVyIj4KKyAgPHRyPgorICAgIDx0ZCBhbGlnbj0icmlnaHQiPgorCSAgSXRlbXMgQ2hvaWNlCisJICA8YnI+CisJICA8aHRtbDpzZWxlY3QgcHJvcGVydHk9InNlbGVjdGVkQ2hvaWNlcyIgbXVsdGlwbGU9InRydWUiID4KKwkgICAgPGh0bWw6b3B0aW9ucyBjb2xsZWN0aW9uPSJjYXRhbG9nIiBwcm9wZXJ0eT0ibGluayIgbGFiZWxQcm9wZXJ0eT0idmFsdWUiLz4KKwkgIDwvaHRtbDpzZWxlY3Q+CisJPC90ZD4KKwk8dGQ+CisJICA8aHRtbDpidXR0b24gcHJvcGVydHk9Ij4iIHZhbHVlPSI+IiBvbmNsaWNrPSJtb3ZlKHNlbGVjdGVkQ2hvaWNlcyxzZWxlY3RlZCk7cmV0dXJuIHRydWU7Ii8+CisJPC90ZD4KKyAgICA8dGQgYWxpZ249ImxlZnQiPgorCSAgTXkgSXRlbXMKKwkgIDxicj4KKwkgIDxodG1sOnNlbGVjdCBwcm9wZXJ0eT0ic2VsZWN0ZWQiIG11bHRpcGxlPSJ0cnVlIiBzaXplPSIxMCI+CisJICAgIDxodG1sOm9wdGlvbnMgY29sbGVjdGlvbj0idXNlckl0ZW1zIiBwcm9wZXJ0eT0ibGluayIgbGFiZWxQcm9wZXJ0eT0idmFsdWUiLz4KKwkgIDwvaHRtbDpzZWxlY3Q+CisJICA8YnI+CisgICAgICA8ZGl2IGFsaWduPSJjZW50ZXIiPgkgIAorCSAgPGh0bWw6YnV0dG9uIHByb3BlcnR5PSJyaWdodCIgdmFsdWU9Il4iICAgb25jbGljaz0idXAoc2VsZWN0ZWQpO3JldHVybiB0cnVlOyIvPgorCSAgPGh0bWw6YnV0dG9uIHByb3BlcnR5PSJyaWdodCIgdmFsdWU9ImRlbCIgICBvbmNsaWNrPSJyZW1vdmUoc2VsZWN0ZWQpO3JldHVybiB0cnVlOyIvPgorCSAgPGh0bWw6YnV0dG9uIHByb3BlcnR5PSJyaWdodCIgdmFsdWU9InYiICAgb25jbGljaz0iZG93bihzZWxlY3RlZCk7cmV0dXJuIHRydWU7Ii8+CisJICA8YnI+CisgICAgICA8aHRtbDpzdWJtaXQgcHJvcGVydHk9InZhbGlkYXRlIiB2YWx1ZT0idmFsaWRhdGUiIG9uY2xpY2s9InNlbGVjdEFsbChzZWxlY3RlZCk7cmV0dXJuIHRydWU7Ii8+PC9kaXY+CisJPC90ZD4KKyAgPC90cj4KKyAgPC90YWJsZT4gCis8L2h0bWw6Zm9ybT4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9teU1lbnVTdW1tYXJ5LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9teU1lbnVTdW1tYXJ5LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDk3ZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL215TWVudVN1bW1hcnkuanNwCkBAIC0wLDAgKzEsMzUgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPGRpdiBhbGlnbj0iY2VudGVyIj48Zm9udCBzaXplPSIrMSI+PGI+CisKKzxUQUJMRSBib3JkZXI9IjAiIGNlbGxQYWRkaW5nPSIyIiBjZWxsU3BhY2luZz0wIHdpZHRoPSIxMDAlIiA+CisgIAorICA8VFI+CisgICAgPFREIGNsYXNzPXNwYW5oZD5Vc2VyIEN1c3RvbWl6ZWQgTWVudSA8YnI+KG15IE1lbnUpPC9URD4KKyAgPC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz0iZGF0YWdyZXkiPgorCTx1bD4KKwkgIDxsaT5JdCBpcyBwb3NzaWJsZSB0byBhbGxvdyB1c2VyIHRvIGN1c3RvbWl6ZSBpdHMgb3duIG1lbnUuPC9saT4KKwkgIDxsaT5Vc2VyIG1lbnUgc2V0dGluZ3MgYXJlIHN0b3JlZCBpbiB1c2VyIHNlc3Npb24gYXMgYSBsaXN0IG9mIG1lbnUgZW50cmllcy48L2xpPgorCSAgPGxpPlRoZSBzYW1lIGxheW91dCBhcyBvdGhlciBtZW51cyBpcyB1c2VkLCBidXQgdGhlIGxpc3QgaXMgcHJvdmlkZWQgYnkgYW4gYXNzb2NpYXRlZAorCSAgImNvbnRyb2xsZXIiLjwvbGk+CisJICA8bGk+WW91IGFsc28gbmVlZCB0byBwcm92aWRlIGEgcGFnZSBhbGxvd2luZyB1c2VyIHRvIGNob29zZSBhbmQgYXJyYW5nZSBpdHMgb3duIG1lbnUgZW50cmllcy48L2xpPgorCSAgPGxpPllvdSBjYW4gdXNlIHByb3ZpZGVkIGV4YW1wbGUsIG9yIGltcHJvdmUgaXQgdG8gbWVldCB5b3VyIG5lZWQuPC9saT4KKwk8L3VsPgorCTwvVEQ+CisgIDwvVFI+CisgIDxUUj4KKyAgICA8dGQgY2xhc3M9ImRhdGFsaWdodGJsdWUiID4KKwk8dWw+CisJICA8bGk+RWRpdCB1c2VyIG1lbnUgZW50cmllcyA6CisgICAgICAgIDxCUj48YSBocmVmPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi9leGFtcGxlcy9teU1lbnVTZXR0aW5ncy5qc3AiPm15IE1lbnU8L2E+PC9saT4KKwkgIDxsaT5BY3R1YWwgdXNlciBtZW51IDoKKyAgICAgICAgPEJSPjx0aWxlczppbnNlcnQgbmFtZT0iZXhhbXBsZXMudXNlck1lbnUiIGZsdXNoPSJ0cnVlIiAvPjwvbGk+CisJPC91bD4KKyAgIDwvVEQ+CisgIDwvVFI+CisKKzwvVEFCTEU+CisKKzwvYj48L2ZvbnQ+PC9kaXY+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvbXlQb3J0YWxQcmVmcy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvbXlQb3J0YWxQcmVmcy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVhZDg3NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9teVBvcnRhbFByZWZzLmpzcApAQCAtMCwwICsxLDMgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPHRpbGVzOmluc2VydCBkZWZpbml0aW9uPSJteUR5bmFtaWNQb3J0YWxQcmVmZXJlbmNlcyIgZmx1c2g9InRydWUiIC8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvbXlQb3J0YWxTZXR0aW5ncy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvbXlQb3J0YWxTZXR0aW5ncy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NmNmVmYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9teVBvcnRhbFNldHRpbmdzLmpzcApAQCAtMCwwICsxLDEyMCBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWh0bWwiIHByZWZpeD0iaHRtbCIgJT4KKworCis8c2NyaXB0IGxhbmd1YWdlPSJqYXZhU2NyaXB0MS4yIj4KK2Z1bmN0aW9uIHNlbGVjdEFsbCggKQoreworZm9yKCBqPTA7IGo8c2VsZWN0QWxsLmFyZ3VtZW50cy5sZW5ndGg7IGorKyApCisgIHsKKyAgY29sMSA9IHNlbGVjdEFsbC5hcmd1bWVudHNbal07CisgIGZvcihpPTA7IGk8Y29sMS5vcHRpb25zLmxlbmd0aDsgaSsrICkKKyAgICB7CisJY29sMS5vcHRpb25zWyBpIF0uc2VsZWN0ZWQgPSB0cnVlOworCX0KKyAgfSAvLyBlbmQgbG9vcAorICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gbW92ZSggY29sMSwgY29sMikKK3sKKyAgdG9Nb3ZlID0gY29sMS5vcHRpb25zWyBjb2wxLnNlbGVjdGVkSW5kZXggXTsKKyAgb3B0ID0gbmV3IE9wdGlvbiggdG9Nb3ZlLnRleHQsIHRvTW92ZS52YWx1ZSwgZmFsc2UsIGZhbHNlICk7CisgIGNvbDEub3B0aW9uc1tjb2wxLnNlbGVjdGVkSW5kZXggXSA9IG51bGw7CisgIGNvbDIub3B0aW9uc1tjb2wyLmxlbmd0aF0gPSBvcHQ7CisgIGNvbDIuc2VsZWN0ZWRJbmRleCA9IGNvbDIubGVuZ3RoLTE7CisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiByZW1vdmUoIGNvbDEpCit7CisgIGNvbDEub3B0aW9uc1sgY29sMS5zZWxlY3RlZEluZGV4IF0gPSBudWxsOworICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gdXAoIGNvbDEgKQoreworICBpbmRleCA9IGNvbDEuc2VsZWN0ZWRJbmRleDsKKyAgaWYoIGluZGV4IDw9IDAgKQorICAgIHJldHVybiB0cnVlOworCQorICB0b01vdmVYID0gY29sMS5vcHRpb25zWyBpbmRleCAtMSBdOworICB0b01vdmVZID0gY29sMS5vcHRpb25zWyBpbmRleCBdOworICBvcHRYID0gbmV3IE9wdGlvbiggdG9Nb3ZlWC50ZXh0LCB0b01vdmVYLnZhbHVlLCBmYWxzZSwgZmFsc2UgKTsKKyAgb3B0WSA9IG5ldyBPcHRpb24oIHRvTW92ZVkudGV4dCwgdG9Nb3ZlWS52YWx1ZSwgZmFsc2UsIGZhbHNlICk7CisgIGNvbDEub3B0aW9uc1tpbmRleF0gPSBvcHRYOworICBjb2wxLm9wdGlvbnNbaW5kZXgtMV0gPSBvcHRZOworICBjb2wxLnNlbGVjdGVkSW5kZXggPSBpbmRleC0xOworICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gZG93biggY29sMSApCit7CisgIGluZGV4ID0gY29sMS5zZWxlY3RlZEluZGV4OworICBpZiggaW5kZXgrMSA+PSAgY29sMS5vcHRpb25zLmxlbmd0aCApCisgICAgcmV0dXJuIHRydWU7CisJCisgIHRvTW92ZVggPSBjb2wxLm9wdGlvbnNbIGluZGV4IF07CisgIHRvTW92ZVkgPSBjb2wxLm9wdGlvbnNbIGluZGV4ICsgMSBdOworICBvcHRYID0gbmV3IE9wdGlvbiggdG9Nb3ZlWC50ZXh0LCB0b01vdmVYLnZhbHVlLCBmYWxzZSwgZmFsc2UgKTsKKyAgb3B0WSA9IG5ldyBPcHRpb24oIHRvTW92ZVkudGV4dCwgdG9Nb3ZlWS52YWx1ZSwgZmFsc2UsIGZhbHNlICk7CisgIGNvbDEub3B0aW9uc1tpbmRleF0gPSBvcHRZOworICBjb2wxLm9wdGlvbnNbaW5kZXgrMV0gPSBvcHRYOworICBjb2wxLnNlbGVjdGVkSW5kZXggPSBpbmRleCsxOworCisgIHJldHVybiB0cnVlOworfQorCis8L3NjcmlwdD4KKworCis8aHRtbDpmb3JtIGFjdGlvbj0iL215UG9ydGFsU2V0dGluZ3MuZG8iICA+CisKKworICAKKyAgPGh0bWw6c2VsZWN0IHByb3BlcnR5PSJyZW1haW5pbmciIG11bHRpcGxlPSJ0cnVlIiA+CisgICAgPGh0bWw6b3B0aW9ucyBwcm9wZXJ0eT0iY2hvaWNlcyIgbGFiZWxQcm9wZXJ0eT0iY2hvaWNlTGFiZWxzIiAvPgorICA8L2h0bWw6c2VsZWN0PgorCisgIDxodG1sOmJ1dHRvbiBwcm9wZXJ0eT0idiIgdmFsdWU9InYiIG9uY2xpY2s9Im1vdmUocmVtYWluaW5nLGwwKTtyZXR1cm4gdHJ1ZTsiLz4KKyAgPGJyPgorICAKKyAgPHRhYmxlPgorICA8dHI+CisgICAgPHRkPgorCSAgPGh0bWw6c2VsZWN0IHByb3BlcnR5PSJsMCIgbXVsdGlwbGU9InRydWUiIHNpemU9IjEwIj4KKwkgICAgPGh0bWw6b3B0aW9ucyBwcm9wZXJ0eT0iY29sWzBdIiBsYWJlbFByb3BlcnR5PSJjb2xMYWJlbHNbMF0iLz4KKwkgIDwvaHRtbDpzZWxlY3Q+CisJPC90ZD4KKwk8dGQ+CisJICA8aHRtbDpzZWxlY3QgcHJvcGVydHk9ImwxIiBtdWx0aXBsZT0idHJ1ZSIgc2l6ZT0iMTAiPgorCSAgICA8aHRtbDpvcHRpb25zIHByb3BlcnR5PSJjb2xbMV0iIGxhYmVsUHJvcGVydHk9ImNvbExhYmVsc1sxXSIvPgorCSAgPC9odG1sOnNlbGVjdD4KKwk8L3RkPgorICA8L3RyPgorICA8dHI+CisgIDx0ZCBhbGlnbj0iY2VudGVyIj4KKyAgPGh0bWw6YnV0dG9uIHByb3BlcnR5PSJyaWdodCIgdmFsdWU9Il4iICAgb25jbGljaz0idXAobDApO3JldHVybiB0cnVlOyIvPgorICA8aHRtbDpidXR0b24gcHJvcGVydHk9InJpZ2h0IiB2YWx1ZT0iZGVsIiAgIG9uY2xpY2s9InJlbW92ZShsMCk7cmV0dXJuIHRydWU7Ii8+CisgIDxodG1sOmJ1dHRvbiBwcm9wZXJ0eT0icmlnaHQiIHZhbHVlPSJ2IiAgIG9uY2xpY2s9ImRvd24obDApO3JldHVybiB0cnVlOyIvPgorICA8aHRtbDpidXR0b24gcHJvcGVydHk9ImxlZnQiIHZhbHVlPSI+IiAgICAgb25jbGljaz0ibW92ZShsMCxsMSk7cmV0dXJuIGZhbHNlOyIgLz4KKyAgPC90ZD4KKyAgPHRkIGFsaWduPSJjZW50ZXIiPgorICA8aHRtbDpidXR0b24gcHJvcGVydHk9InJpZ2h0IiB2YWx1ZT0iPCIgICAgb25jbGljaz0ibW92ZShsMSxsMCk7cmV0dXJuIHRydWU7Ii8+CisgIDxodG1sOmJ1dHRvbiBwcm9wZXJ0eT0icmlnaHQiIHZhbHVlPSJeIiAgIG9uY2xpY2s9InVwKGwxKTtyZXR1cm4gdHJ1ZTsiLz4KKyAgPGh0bWw6YnV0dG9uIHByb3BlcnR5PSJyaWdodCIgdmFsdWU9ImRlbCIgICBvbmNsaWNrPSJyZW1vdmUobDEpO3JldHVybiB0cnVlOyIvPgorICA8aHRtbDpidXR0b24gcHJvcGVydHk9InJpZ2h0IiB2YWx1ZT0idiIgICBvbmNsaWNrPSJkb3duKGwxKTtyZXR1cm4gdHJ1ZTsiLz4KKyAgPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZCBjb2xzcGFuPSIyIiAgYWxpZ249ImNlbnRlciI+CisJICAKKyAgICAgIDxodG1sOnN1Ym1pdCBwcm9wZXJ0eT0idmFsaWRhdGUiIHZhbHVlPSJ2YWxpZGF0ZSIgb25jbGljaz0ic2VsZWN0QWxsKGwwLCBsMSk7cmV0dXJuIHRydWU7Ii8+CisJPC90ZD4KKyAgPC90cj4KKyAgPC90YWJsZT4KKyAgCisgIAorCisgIAorPC9odG1sOmZvcm0+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvbXlQb3J0YWxTdW1tYXJ5LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9teVBvcnRhbFN1bW1hcnkuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiMjU2MGQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvbXlQb3J0YWxTdW1tYXJ5LmpzcApAQCAtMCwwICsxLDMxIEBACis8ZGl2IGFsaWduPSJjZW50ZXIiPjxmb250IHNpemU9IisxIj48Yj4KKworPFRBQkxFIGJvcmRlcj0iMCIgY2VsbFBhZGRpbmc9IjIiIGNlbGxTcGFjaW5nPTAgd2lkdGg9IjEwMCUiID4KKyAgCisgIDxUUj4KKyAgICA8VEQgY2xhc3M9c3BhbmhkPlVzZXIgQ3VzdG9taXplZCBQb3J0YWwgPGJyPihteSBQb3J0YWwpPC9URD4KKyAgPC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz0iZGF0YWdyZXkiPgorCTx1bD4KKwkgIDxsaT5BIHBvcnRhbCBjYW4gYmUgY3VzdG9taXplZCBieSB1c2VyLiA8L2xpPgorCSAgPGxpPlRvIGRvIHNvLCBidWlsZCBhIHBvcnRhbCwgYW5kIGFkZCBpdCBhICJjb250cm9sbGVyIiBjaGVja2luZyBhbmQgc2V0dGluZworCSAgdXNlciBjaG9vc2VuIFRpbGVzLjwvbGk+CisJICA8bGk+WW91IGFsc28gbmVlZCB0byBwcm92aWRlIGEgcGFnZSBhbGxvd2luZyB1c2VyIHRvIGNob29zZSBhbmQgYXJyYW5nZSBpdHMgb3duIFRpbGVzLjwvbGk+CisJICA8bGk+WW91IGNhbiB1c2UgcHJvdmlkZWQgZXhhbXBsZSwgb3IgaW1wcm92ZSBpdCB0byBtZWV0IHlvdXIgbmVlZC48L2xpPgorCTwvdWw+CisJPC9URD4KKyAgPC9UUj4KKyAgPFRSPgorICAgIDx0ZCBjbGFzcz0iZGF0YWxpZ2h0Ymx1ZSI+CisJPHVsPgorCSAgPGxpPlZpZXcgcG9ydGFsIAorICAgICAgPEJSPjxhIGhyZWY9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L2V4YW1wbGVzL215UG9ydGFsLmpzcCI+bXkgUG9ydGFsPC9hPjwvbGk+CisJICA8bGk+Q3VzdG9taXplIHlvdXIgcG9ydGFsIHBhZ2UKKyAgICAgIDxCUj48YSBocmVmPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi9leGFtcGxlcy9teVBvcnRhbFNldHRpbmdzLmpzcCI+bXkgUG9ydGFsIFNldHRpbmdzPC9hPjwvbGk+CisJPC91bD4KKyAgICA8L1REPgorICA8L1RSPgorPC9UQUJMRT4KKworPC9iPjwvZm9udD48L2Rpdj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvbXlTa2luU2V0dGluZ3MuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL215U2tpblNldHRpbmdzLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NmUwMjgxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL215U2tpblNldHRpbmdzLmpzcApAQCAtMCwwICsxLDQ0IEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtaHRtbCIgcHJlZml4PSJodG1sIiAlPgorCisKKzx0aWxlczppbXBvcnRBdHRyaWJ1dGUgbmFtZT0iY2F0YWxvZyIgLz4KKzx0aWxlczp1c2VBdHRyaWJ1dGUgbmFtZT0ic2VsZWN0ZWQiIC8+CisKKzxodG1sOmZvcm0gYWN0aW9uPSIvbXlTa2luU2V0dGluZ3MuZG8iICA+CisKKworICAKKyAgCisJICA8dWw+CisJICAgIDxsaT5DdXJyZW50IHNraW4gaXMgaGlnaGxpZ2h0ZWQuPC9saT4KKwkJPGxpPlNlbGVjdCBhbmQgdmFsaWRhdGUgdG8gY2hhbmdlIHNraW48L2xpPgorCQk8bGk+UmVsb2FkIHBhZ2UgdG8gc2VlIHJlc3VsdDwvbGk+CisJICA8L3VsPgorICA8dGFibGUgYWxpZ249ImNlbnRlciI+CisgIDx0cj4KKyAgICA8dGQgYWxpZ249InJpZ2h0Ij4KKwkgIEF2YWlsYWJsZSBTa2lucworCSAgPGJyPgorCSAgPGh0bWw6c2VsZWN0IHByb3BlcnR5PSJzZWxlY3RlZCIgbXVsdGlwbGU9ImZhbHNlIiB2YWx1ZT0iPCU9KFN0cmluZylzZWxlY3RlZCU+IiA+CisJICAgIDxodG1sOm9wdGlvbnMgbmFtZT0iY2F0YWxvZyIgcHJvcGVydHk9ImtleXMiIGxhYmVsTmFtZT0iY2F0YWxvZyIgbGFiZWxQcm9wZXJ0eT0ibmFtZXMiIC8+CisJICA8L2h0bWw6c2VsZWN0PgorCisJPC90ZD4KKyAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgPGh0bWw6c3VibWl0IHByb3BlcnR5PSJ2YWxpZGF0ZSIgdmFsdWU9InZhbGlkYXRlIiAvPjwvZGl2PgorCTwvdGQ+CisgIDwvdHI+CisgIDwvdGFibGU+CisJICA8dWw+CisJICAgIDxsaT5JbiB0aGUgZXhhbXBsZXMsIG9ubHkgdGhpcyBwYWdlIGlzIGFmZmVjdGVkIGJ5IHNraW4gY2hhbmdlLiAKKwkJPC9saT4KKwkJPGxpPkl0IGlzIHBvc3NpYmxlIHRvIGFmZmVjdCBhbGwgcGFnZXMgYnkgY2hhbmdpbmcKKwkJICByb290IGxheW91dCBkZWZpbml0aW9uIGluIGNvbmZpZ3VyYXRpb24gZmlsZS4KKwkJPC9saT4KKwkgIDwvdWw+CisgIAorICAKKworICAKKzwvaHRtbDpmb3JtPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL3BvcnRhbC9hZHZlcnQxLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9wb3J0YWwvYWR2ZXJ0MS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc5ODYzZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9wb3J0YWwvYWR2ZXJ0MS5qc3AKQEAgLTAsMCArMSBAQAorPElNRyBzcmM9JzwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L3R1dG9yaWFsL2ltYWdlcy9iYW5uZXIxYi5naWYnIGJvcmRlcj0wPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9wb3J0YWwvYWR2ZXJ0Mi5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL2FkdmVydDIuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzNWQ1YTIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL2FkdmVydDIuanNwCkBAIC0wLDAgKzEsMiBAQAorPERJViBhbGlnbj1jZW50ZXI+PFNUUk9ORz48Rk9OVCBzaXplPTQ+PElNRyBhbHQ9IiIgYm9yZGVyPTAgaGVpZ2h0PTEyMCAKK3NyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vdHV0b3JpYWwvaW1hZ2VzL2Jhbm5lcl9ib3R0b20uZ2lmIiB3aWR0aD0zMDA+PC9GT05UPjwvU1RST05HPjwvRElWPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9wb3J0YWwvYWR2ZXJ0My5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL2FkdmVydDMuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3OTg2M2UKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL2FkdmVydDMuanNwCkBAIC0wLDAgKzEgQEAKKzxJTUcgc3JjPSc8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi90dXRvcmlhbC9pbWFnZXMvYmFubmVyMWIuZ2lmJyBib3JkZXI9MD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL2xvZ2luLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9wb3J0YWwvbG9naW4uanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjNWQ4MWUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL2xvZ2luLmpzcApAQCAtMCwwICsxLDEwIEBACis8ZGl2IGFsaWduPSJjZW50ZXIiPjxmb250IHNpemU9IisxIj48Yj4KKzxUQUJMRSBib3JkZXI9MCBjZWxsUGFkZGluZz0yIGNlbGxTcGFjaW5nPTAgd2lkdGg9MzAwPgorICAKKyAgPFRSPgorICAgIDxURCBjbGFzcz1zcGFuaGQ+TG9naW48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9eWVsbG93PjwhLS0gSUYgc3RhdGVtZW50IGZvciBBbGVydCBzZWN0aW9uIGhlcmUgLS0+CisgICAgICA8UD5JZiB5b3UgaGF2ZSBXb3JsZCBGaW5hbmNpYWwgYWNjb3VudHMsIHlvdSBjYW4gPFU+TG9naW48L1U+IHRvCisgICAgICB2aWV3IHlvdXIgYWNjb3VudCBpbmZvcm1hdGlvbi48QlI+Jm5ic3A7IAorPC9QPjwvVEQ+PC9UUj48L1RBQkxFPiAgPC9iPjwvZm9udD48L2Rpdj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL21lc3NhZ2VzLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9wb3J0YWwvbWVzc2FnZXMuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxMGVlMWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL21lc3NhZ2VzLmpzcApAQCAtMCwwICsxLDE5IEBACis8RElWIGFsaWduPWNlbnRlcj48U1RST05HPjxGT05UIHNpemU9ND4KKzxUQUJMRSBib3JkZXI9MCBjZWxsUGFkZGluZz0yIGNlbGxTcGFjaW5nPTAgd2lkdGg9MzAwPgorICAKKyAgPFRSPgorICAgIDxURCBjbGFzcz1zcGFuaGQ+PEI+TWVzc2FnZXM8L0I+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGE+CisgICAgICA8TEk+PEZPTlQgY29sb3I9IzAwMzM2Nj48VT5Zb3VyIENEIG1hdHVyZXMgaW4gb25lIG1vbnRoITwvVT48L0ZPTlQ+IAorICAgICAgPExJPjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+Tm93IFByb3ZpZGluZyBhIFRlY2hub2xvZ3kgTXV0dWFsIEZ1bmQ8L1U+PC9GT05UPiAKKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPkNoaWxkcmVuJ3MgU2F2aW5ncyBBY2NvdW50IFByb2dyYW0gCisgICAgICBVcGRhdGU8L1U+PC9GT05UPiAKKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPlNtYWxsIEJ1c2luZXNzIFByb2dyYW0gT2ZmZXI8L1U+PC9GT05UPiAKKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPkZpbmFuY2lhbCBUaXAgb2YgdGhlIERheTwvVT48L0ZPTlQ+IAorICAgICAgPExJPjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+TW9ydGdhZ2UgUmF0ZSBDaGFydCAtIFNlZSBob3cgd2UgCisgICAgICBjb21wYXJlITwvVT48L0ZPTlQ+IAorICAgICAgPExJPjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+Q2hlY2sgb3V0IG91ciAxLXllYXIgYW5kIDYtbW9udGggQ0QgCisgICAgICByYXRlczwvVT48L0ZPTlQ+IAorICAgICAgPExJPjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+QXV0byBJbnN1cmFuY2UgUmF0ZXMgTG93ZXJlZDwvVT48L0ZPTlQ+IAorICAgICAgPEJSPiZuYnNwOzwvTEk+PC9URD48L1RSPjwvVEFCTEU+PC9GT05UPjwvU1RST05HPjwvRElWPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9wb3J0YWwvbmV3c0ZlZWQuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL3BvcnRhbC9uZXdzRmVlZC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNjZGQ3NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9wb3J0YWwvbmV3c0ZlZWQuanNwCkBAIC0wLDAgKzEsNDIgQEAKKzxkaXYgYWxpZ249ImNlbnRlciI+PGZvbnQgc2l6ZT0iKzEiPjxiPgorPFRBQkxFIGJvcmRlcj0wIGNlbGxQYWRkaW5nPTIgY2VsbFNwYWNpbmc9MCB3aWR0aD0zMDA+CisgIAorICA8VFI+CisgICAgPFREIGNsYXNzPXNwYW5oZCBjb2xTcGFuPTI+TmV3cyBGZWVkPC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGE+PEI+QnVzaW5lc3MgTmV3czwvQj4gPC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGE+IAorICAgICAgPExJPjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+VG9wIEZ1bmQgTWFuYWdlcnMgTWFrZSBUaGVpciBDYWxscyBPbiAKKyAgICAgIEZ1bmRzPC9VPjwvRk9OVD48L0xJPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhPjxCPldvcmxkIE5ld3M8L0I+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGE+CisgICAgICA8TEk+PEZPTlQgY29sb3I9IzAwMzM2Nj48VT5DaGluYSBEZW1vY3JhY3kgQ3JhY2tkb3duPC9VPjwvRk9OVD4gCisgICAgICA8TEk+PEZPTlQgY29sb3I9IzAwMzM2Nj48VT5Qb3BlIFZpc2l0cyBUaGUgVS5TLiBJbiAKKyAgICBNYXk8L1U+PC9GT05UPjwvTEk+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGE+PEI+R2VuZXJhbCBOZXdzPC9CPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhPgorICAgICAgPExJPjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+Q2xpbnRvbiBQb2xscyBpbiBRdWVzdGlvbiBBcyBUbyAKKyAgICAgIEFjY3VyYWN5PC9VPjwvRk9OVD4gCisgICAgICA8TEk+PEZPTlQgY29sb3I9IzAwMzM2Nj48VT5TY2hvb2wgVmlvbGVuY2UgRXJ1cHRzIEFuZCBTYWZldHkgUXVlc3Rpb25zIEFyZSAKKyAgICAgIFJhaXNlZDwvVT48L0ZPTlQ+PC9MST48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ZGF0YT48Qj5TcG9ydHM8L0I+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGE+CisgICAgICA8TEk+PEZPTlQgY29sb3I9IzAwMzM2Nj48VT5XaW5uZXJzIEFuZCBMb3NlcnMgLSBORkwgU2Vhc29uIAorICAgICAgV3JhcC1VcDwvVT48L0ZPTlQ+IAorICAgICAgPExJPjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+U2tpIEZpbmFscyBPbiBUaGUgV2lyZSBGb3IgVGhlIEFscGluZSAKKyAgICAgIENoYW1waW9uc2hpcHM8L1U+PC9GT05UPjwvTEk+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGE+PEI+SGVhbHRoPC9CPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhPgorICAgICAgPExJPjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+VGVhIC0gQSBDdXAgb2YgQ29tZm9ydDwvVT48L0ZPTlQ+IAorICAgICAgPExJPjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+UmVsaWV2ZSBTdHJlc3MgVGhlIE5hdHVyYWwgV2F5OiAxMCBIZWFsdGggCisgICAgICBUaXBzPC9VPjwvRk9OVD4gPC9MST48L1REPjwvVFI+Cis8L1RBQkxFPiAgPC9iPjwvZm9udD48L2Rpdj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL3BvcnRhbEJvZHkuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL3BvcnRhbC9wb3J0YWxCb2R5LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZGUwMzhiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL3BvcnRhbC9wb3J0YWxCb2R5LmpzcApAQCAtMCwwICsxLDE4IEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgcGFnZT0iL2xheW91dC9jb2x1bW5zTGF5b3V0LmpzcCIgZmx1c2g9InRydWUiPgorICA8dGlsZXM6cHV0IG5hbWU9Im51bUNvbHMiIHZhbHVlPSIyIiAvPgorICA8dGlsZXM6cHV0TGlzdCBuYW1lPSJsaXN0MCIgPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvbG9naW4uanNwIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvbWVzc2FnZXMuanNwIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvbmV3c0ZlZWQuanNwIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvYWR2ZXJ0Mi5qc3AiIC8+CisgIDwvdGlsZXM6cHV0TGlzdD4KKyAgPHRpbGVzOnB1dExpc3QgbmFtZT0ibGlzdDEiID4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsL2FkdmVydDMuanNwIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvc3RvY2tzLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsL3doYXRzTmV3LmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsL3BlcnNvbmFsTGlua3MuanNwIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvc2VhcmNoLmpzcCIgLz4KKyAgPC90aWxlczpwdXRMaXN0PgorPC90aWxlczppbnNlcnQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL3BvcnRhbC9zdG9ja3MuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL3BvcnRhbC9zdG9ja3MuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzMjNjZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL3N0b2Nrcy5qc3AKQEAgLTAsMCArMSw1OSBAQAorPGRpdiBhbGlnbj0iY2VudGVyIj48Zm9udCBzaXplPSIrMSI+PGI+Cis8VEFCTEUgYm9yZGVyPTAgY2VsbFBhZGRpbmc9MiBjZWxsU3BhY2luZz0wIHdpZHRoPTE5MD4KKyAgCisgIDxUUiBiZ0NvbG9yPSNmZmZmZmY+CisgICAgPFREIGNsYXNzPXNwYW5oZCBjb2xTcGFuPTI+U3Rld2FydCdzIEhvdCBTdG9ja3M8L1REPgorICAgIDxURCBjbGFzcz1zcGFuaGQ+Jm5ic3A7PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWhkbGVmdD5TeW1ib2w8L1REPgorICAgIDxURCBjbGFzcz1oZGxlZnQ+UHJpY2U8L1REPgorICAgIDxURCBjbGFzcz1oZGxlZnQ+Q2hhbmdlPC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PjxVPjxGT05UIGNvbG9yPSMwMDMzNjY+QU9MPC9GT05UPjwvVT48L1REPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleT4xMDQuMjU8L1REPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleT48Rk9OVCBjb2xvcj0jY2MwMDAwPjUuMDA8L0ZPTlQ+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGFncmV5IGNvbFNwYW49Mz48SU1HIGhlaWdodD0xIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vdHV0b3JpYWwvaW1hZ2VzL2lkX2xpbmUuZ2lmIiAKKyAgICAgIHdpZHRoPTE5MD48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ZGF0YWdyZXk+PEZPTlQgY29sb3I9IzAwMzM2Nj48VT5DU0NPPC9VPjwvRk9OVD48L1REPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleT43My43NTwvVEQ+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PjxGT05UIGNvbG9yPSMwMDg4MDA+MS43NTwvRk9OVD48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ZGF0YWdyZXkgY29sU3Bhbj0zPjxJTUcgaGVpZ2h0PTEgc3JjPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi90dXRvcmlhbC9pbWFnZXMvaWRfbGluZS5naWYiIAorICAgICAgd2lkdGg9MTkwPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleT48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPkhEPC9VPjwvRk9OVD48L1REPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleT42OC42MjwvVEQ+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PjxGT05UIGNvbG9yPSMwMDg4MDA+MS42OTwvRk9OVD48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ZGF0YWdyZXkgY29sU3Bhbj0zPjxJTUcgaGVpZ2h0PTEgc3JjPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi90dXRvcmlhbC9pbWFnZXMvaWRfbGluZS5naWYiIAorICAgICAgd2lkdGg9MTkwPjwvVEQ+PC9UUj4KKyAgPFRSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+U09ORTwvVT48L0ZPTlQ+PC9URD4KKyAgICA8VEQgY2xhc3M9ZGF0YWdyZXk+MzguODg8L1REPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleT48Rk9OVCBjb2xvcj0jMDA4ODAwPjEuNjI8L0ZPTlQ+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGFncmV5IGNvbFNwYW49Mz48SU1HIGhlaWdodD0xIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vdHV0b3JpYWwvaW1hZ2VzL2lkX2xpbmUuZ2lmIiAKKyAgICAgIHdpZHRoPTE5MD48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ZGF0YWdyZXk+PEZPTlQgY29sb3I9IzAwMzM2Nj48VT5ESklBPC9VPjwvRk9OVD48L1REPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleT4xMCwzMDIuMTM8L1REPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleT48Rk9OVCBjb2xvcj0jMDA4ODAwPjQ3LjgwPC9GT05UPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleSBjb2xTcGFuPTM+PElNRyBoZWlnaHQ9MSBzcmM9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L3R1dG9yaWFsL2ltYWdlcy9pZF9saW5lLmdpZiIgCisgICAgICB3aWR0aD0xOTA+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWlucHV0Z3JleSBjb2xTcGFuPTM+CisJICA8Rk9STSAKKyAgICAgIGFjdGlvbj0iIyIgbWV0aG9kPSJnZXQiPlF1b3RlOiAKKyAgICAgIDxJTlBVVCBtYXhMZW5ndGg9NSBzaXplPTQ+Jm5ic3A7PEEgCisgICAgICBocmVmPSIjIj48SU1HIGFsdD0iR2V0IFF1b3RlIiAKKyAgICAgIGJvcmRlcj0wIGhlaWdodD0xNyBzcmM9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L3R1dG9yaWFsL2ltYWdlcy9pbnB1dF92cm1fZ2VuX2dldC5naWYiIHRpdGxlPSJHZXQgUXVvdGUiIAorICAgICAgd2lkdGg9NTk+PC9BPiA8QlI+Jm5ic3A7IDxCUj4KKyAgICAgIDxDRU5URVI+PEZPTlQgc2l6ZT0tMj5bJm5ic3A7PC9GT05UPjxGT05UIGNvbG9yPSMwMDMzNjYgc2l6ZT0tMj48QSAKKyAgICAgIGhyZWY9IiMiPlN5bWJvbCZuYnNwO1NlYXJjaDwvQT48L0ZPTlQ+PEZPTlQgCisgICAgICBzaXplPS0yPiZuYnNwO108L0ZPTlQ+Jm5ic3A7PEZPTlQgc2l6ZT0tMj5bJm5ic3A7PC9GT05UPjxGT05UIAorICAgICAgY29sb3I9IzAwMzM2NiBzaXplPS0yPjxVPkVkaXQmbmJzcDtQb3J0Zm9saW88L1U+PC9GT05UPjxGT05UIAorICAgICAgc2l6ZT0tMj4mbmJzcDtdPC9GT05UPjwvQ0VOVEVSPjxCUj48L1REPjwvVFI+PC9UQUJMRT4gIDwvYj48L2ZvbnQ+PC9kaXY+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL3BvcnRhbC93aGF0c05ldy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvcG9ydGFsL3doYXRzTmV3LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGJiMzFjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL3BvcnRhbC93aGF0c05ldy5qc3AKQEAgLTAsMCArMSwyNiBAQAorPGRpdiBhbGlnbj0iY2VudGVyIj48Zm9udCBzaXplPSIrMSI+PGI+CisKKzxUQUJMRSBib3JkZXI9MCBjZWxsUGFkZGluZz0yIGNlbGxTcGFjaW5nPTAgd2lkdGg9MTkwPgorICAKKyAgPFRSPgorICAgIDxURCBjbGFzcz1zcGFuaGQ+V2hhdCdzIE5ldzwvVEQ+CisgIDwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ZGF0YWdyZXk+PEI+TmV3IEZpbmFuY2lhbCBDYWxjdWxhdG9yczwvQj4gPEJSPlNhdmluZyBGb3IgQSAKKyAgICAgIENvbGxlZ2UgRWR1Y2F0aW9uPworCSAgPEJSPlsmbmJzcDs8Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPk1vcmU8L1U+PC9GT05UPiZuYnNwO10KKwkgIDxCUj4mbmJzcDsgPEJSPjxCPlNwZWNpYWwgT2ZmZXI8L0I+IAorICAgICAgPEJSPkdldCBmcmVlIHJlYWwtdGltZSBxdW90ZXMgZm9yIHRocmVlIG1vbnRocyB3aXRoIGEgV29ybGQgRmluYW5jaWFsIAorICAgICAgYnJva2VyYWdlIGFjY291bnQuIFsmbmJzcDs8Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPk1vcmU8L1U+PC9GT05UPiZuYnNwO10gCisgICAgICA8QlI+Jm5ic3A7IAorCTwvVEQ+CisgIDwvVFI+CisgIDxUUj4KKyAgICA8dGQ+CisgICAgICA8QlI+PElNRyBib3JkZXI9MCBoZWlnaHQ9MSBzcmM9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L3R1dG9yaWFsL2ltYWdlcy9jbGVhci5naWYiIHdpZHRoPTE5MD4KKyAgICA8L1REPgorICA8L1RSPgorCis8L1RBQkxFPgorCis8L2I+PC9mb250PjwvZGl2PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9wb3J0YWxTdW1tYXJ5LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9wb3J0YWxTdW1tYXJ5LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjY5YjI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL3BvcnRhbFN1bW1hcnkuanNwCkBAIC0wLDAgKzEsMjQgQEAKKzxkaXYgYWxpZ249ImNlbnRlciI+PGZvbnQgc2l6ZT0iKzEiPjxiPgorCis8VEFCTEUgYm9yZGVyPTAgY2VsbFBhZGRpbmc9MiBjZWxsU3BhY2luZz0wIHdpZHRoPSIxMDAlIiA+CisgIAorICA8VFI+CisgICAgPFREIGNsYXNzPXNwYW5oZD5Qb3J0YWw8L1REPgorICA8L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PgorCSAgPHVsPgorCSAgICA8bGk+QSBwb3J0YWwgaXMgYnVpbHQgYnkgYXNzZW1ibGluZyBUaWxlcyBpbiBjb2x1bW5zLjwvbGk+CisJCTxsaT5BIHNwZWNpYWwgbGF5b3V0IGV4aXN0cworCSAgdG8gZG8gc3VjaCB0aGluay48L2xpPgorCQk8bGk+VGhpcyBwYWdlIGlzIGFuIGV4YW1wbGUgb2YgYSBwb3J0YWwuPC9saT4KKwkJPGxpPlRvIHJlYWxpemUgeW91ciBwb3J0YWwsIHlvdSBzcGVjaWZ5IHdoaWNoIFRpbGVzIHlvdSB3YW50IHRvIGJlIHJlbmRlciBpbiB3aGljaCBjb2x1bW5zLiAKKwkgIFRoaXMgaXMgZG9uZSBpbiBjZW50cmFsaXplZCBkZWZpbml0aW9uIGZpbGUgb3IgaW4gJmx0O2luc2VydCZndDsgdGFnLjwvbGk+CisJCTxsaT48YSBocmVmPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi9leGFtcGxlcy9wb3J0YWwuanNwIj5PdGhlciBwb3J0YWwgZXhhbXBsZTwvYT48L2xpPgorCSAgPC91bD4KKyAgICA8L1REPgorICA8L1RSPgorCis8L1RBQkxFPgorCis8L2I+PC9mb250PjwvZGl2PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9yc3NDaGFubmVsRXJyb3JzLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9yc3NDaGFubmVsRXJyb3JzLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjI5MmIyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL3Jzc0NoYW5uZWxFcnJvcnMuanNwCkBAIC0wLDAgKzEsMjcgQEAKKzwlLS0KKy8qKgorICogU3VtbWFyaXplIGNoYW5uZWxzIGVycm9ycyBhcyB1bmFkb3JuZWQgSFRNTC4KKyAqCisgKiBAcGFyYW1ldGVycyBlcnJvcnMKKyAqIEB2ZXJzaW9uICRSZXZpc2lvbjogMS4yICQgJERhdGUkCisgKi8KKy0tJT4KKzwlQCBwYWdlIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWJlYW4iIHByZWZpeD0iYmVhbiIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1sb2dpYyIgcHJlZml4PSJsb2dpYyIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1odG1sIiBwcmVmaXg9ImxvZ2ljIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8VEFCTEUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMiIgY2VsbHBhZGRpbmc9IjQiIHdpZHRoPSIzMDAiIGFsaWduPSJjZW50ZXIiID4KKzxUUj4KKzxURCBjbGFzcz0iYWxlcnQiPgorRXJyb3Igd2hpbGUgcmVhZGluZyBjaGFubmVscy4KKzxicj48L2JyPkFyZSB5b3UgY29ubmVjdGVkID8KKzwvVEQ+Cis8L1RSPgorPFRSPgorPFREIGNsYXNzPSJlcnJvciIgd2lkdGg9IjEwMCUiPjxodG1sOmVycm9ycy8+PC9URD4KKzwvVFI+CisKKzwvVEFCTEU+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy9yc3NDaGFubmVscy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvcnNzQ2hhbm5lbHMuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3YTFkMGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvcnNzQ2hhbm5lbHMuanNwCkBAIC0wLDAgKzEsNDUgQEAKKzwlLS0KKy8qKgorICogU3VtbWFyaXplIGNoYW5uZWxzIGFzIHVuYWRvcm5lZCBIVE1MLgorICoKKyAqIEBwYXJhbSBDSEFOTkVMUyBMaXN0IG9mIGNoYW5uZWxzCisgKiBAdmVyc2lvbiAkUmV2aXNpb246IDEuMiAkICREYXRlJAorICovCistLSU+CisKKzwlQCBwYWdlIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWJlYW4iIHByZWZpeD0iYmVhbiIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1sb2dpYyIgcHJlZml4PSJsb2dpYyIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPGRpdiBhbGlnbj0iY2VudGVyIj48Zm9udCBzaXplPSIrMSI+PGI+CisKKzx0aWxlczppbXBvcnRBdHRyaWJ1dGUgbmFtZT0iQ0hBTk5FTFMiIHNjb3BlPSJwYWdlIi8+CisKKzxsb2dpYzppdGVyYXRlIG5hbWU9IkNIQU5ORUxTIiBpZD0iQ0hBTk5FTCIgPgorPFRBQkxFIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSI0IiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciIgPgorPFRSPgorPFREIGNsYXNzPSJzcGFuaGQiID48bG9naWM6cHJlc2VudCBuYW1lPSJDSEFOTkVMIiBwcm9wZXJ0eT0iaW1hZ2UiPgorICA8YSBocmVmPSI8YmVhbjp3cml0ZSBuYW1lPSJDSEFOTkVMIiBwcm9wZXJ0eT0ibGluayIvPiI+CisgICAgPGltZyBzcmM9IjxiZWFuOndyaXRlIG5hbWU9IkNIQU5ORUwiIHByb3BlcnR5PSJpbWFnZS5VUkwiLz4iPjwvbG9naWM6cHJlc2VudD48L2E+Cis8L1REPgorPFREIGNsYXNzPSJzcGFuaGQiIHdpZHRoPSIxMDAlIj48YmVhbjp3cml0ZSBuYW1lPSJDSEFOTkVMIiBwcm9wZXJ0eT0idGl0bGUiLz4gPGEgaHJlZj0iPGJlYW46d3JpdGUgbmFtZT0iQ0hBTk5FTCIgcHJvcGVydHk9ImxpbmsiLz4iPltob21lXTwvYT48L1REPgorPC9UUj4KKzxURCBjbGFzcz0ieWVsbG93IiBjb2xzcGFuPSIyIj48YmVhbjp3cml0ZSBuYW1lPSJDSEFOTkVMIiBwcm9wZXJ0eT0iZGVzY3JpcHRpb24iLz48L1REPgorPC9UUj4KKworPFRSPgorPFREIGNsYXNzPSJkYXRhZ3JleSIgY29sc3Bhbj0iMiI+Cis8bG9naWM6aXRlcmF0ZSBuYW1lPSJDSEFOTkVMIiBwcm9wZXJ0eT0iaXRlbXMiIGlkPSJJVEVNIj4KKzxicj48Yj48YmVhbjp3cml0ZSBuYW1lPSJJVEVNIiBwcm9wZXJ0eT0idGl0bGUiLz48L2I+Cis8YnI+PGJlYW46d3JpdGUgbmFtZT0iSVRFTSIgcHJvcGVydHk9ImRlc2NyaXB0aW9uIi8+Cis8YnI+Jm5ic3A7Jm5ic3A7WyA8YSBocmVmPSI8YmVhbjp3cml0ZSBuYW1lPSJJVEVNIiBwcm9wZXJ0eT0ibGluayIvPiI+bW9yZTwvYT4gXQorPGJyPgorPC9sb2dpYzppdGVyYXRlPgorPC9URD4KKzwvVFI+Cis8L1RBQkxFPgorPGJyPgorPC9sb2dpYzppdGVyYXRlPgorCis8L2I+PC9mb250PjwvZGl2PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL3Jzc0NoYW5uZWxzU3VtbWFyeS5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvZXhhbXBsZXMvdGlsZXMvcnNzQ2hhbm5lbHNTdW1tYXJ5LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWJjMzYyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL3Jzc0NoYW5uZWxzU3VtbWFyeS5qc3AKQEAgLTAsMCArMSwyOCBAQAorPGRpdiBhbGlnbj0iY2VudGVyIj48Zm9udCBzaXplPSIrMSI+PGI+CisKKzxUQUJMRSBib3JkZXI9IjAiIGNlbGxQYWRkaW5nPSIyIiBjZWxsU3BhY2luZz0wIHdpZHRoPSIxMDAlIiA+CisgIAorICA8VFI+CisgICAgPFREIGNsYXNzPSJzcGFuaGQiPlJzcyBDaGFubmVsczwvVEQ+CisgIDwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ImRhdGFncmV5Ij4KKwk8dWw+CisJICA8bGk+VGhpcyBleGFtcGxlIHNob3dzIGhvdyB0byBkbyBhIFJzcyBDaGFubmVscyBUaWxlLjwvbGk+CisJICA8bGk+VGhlIFRpbGUgaXMgbWFkZSBvZiBhIGNvbnRyb2xsZXIgbG9hZGluZyB0aGUgcmVxdWVzdGVkIHJzcyBjaGFubmVscywKKwkgIGFuZCBhIHZpZXcgKGpzcCBwYWdlKSByZW5kZXJpbmcgdGhlIGxvYWRlZCBjaGFubmVscy48L2xpPgorCSAgPGxpPkl0IGlzIHBvc3NpYmxlIHRvIGNoYW5nZSB0aGUgcmVuZGVyaW5nIHBhZ2UgdG8gYWRhcHQgaXQgdG8geW91ciBuZWVkLjwvbGk+CisJICA8bGk+Q2hhbm5lbHMgVVJMcyBhcmUgc2V0IGluIGNvbmZpZyBmaWxlcywgb3IgYXMgaHR0cCByZXF1ZXN0IHBhcmFtZXRlcnMuPC9saT4KKwk8L3VsPgorCTwvVEQ+CisgIDwvVFI+CisgIDxUUj4KKyAgICA8dGQgY2xhc3M9ImRhdGFsaWdodGJsdWUiPgorCTx1bD4KKwkgIDxsaT48YSBocmVmPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi9leGFtcGxlcy9yc3NDaGFubmVscy5qc3AiPlJzcyBDaGFubmVsczwvYT48L2xpPgorCTwvdWw+CisgICAgPC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+CisKKzwvYj48L2ZvbnQ+PC9kaXY+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2V4YW1wbGVzL3RpbGVzL3RhYnNTdW1tYXJ5LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy90YWJzU3VtbWFyeS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmFhNzNkNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9leGFtcGxlcy90aWxlcy90YWJzU3VtbWFyeS5qc3AKQEAgLTAsMCArMSwzMSBAQAorPGRpdiBhbGlnbj0iY2VudGVyIj48Zm9udCBzaXplPSIrMSI+PGI+CisKKzxUQUJMRSBib3JkZXI9IjAiIGNlbGxQYWRkaW5nPSIyIiBjZWxsU3BhY2luZz0wIHdpZHRoPSIxMDAlIiA+CisgIAorICA8VFI+CisgICAgPFREIGNsYXNzPXNwYW5oZD5UYWJzIExheW91dDwvVEQ+CisgIDwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ImRhdGFncmV5Ij4KKwk8dWw+CisJICA8bGk+WW91IGNhbiBlYXNpbHkgYnVpbGQgdGFicyBieSB1c2luZyBwcmVkZWZpbmVkICJ0YWJzIGxheW91dCIuPC9saT4KKwkgIDxsaT5BbGwgeW91IG5lZWQgdG8gZG8gaXMgdG8gc3BlY2lmeSB3aGljaCBib2RpZXMgeW91IHdhbnQgdG8gcmVuZGVyIGluIHRhYnMuPC9saT4KKwkgIDxsaT5Zb3UgY2FuIGFsc28gYXNzb2NpYXRlCisJICBuYW1lLCBpY29uIGFuZCB0b29sdGlwIHRvIHRhYiBpbmRleC48L2xpPgorCSAgPGxpPlVzaW5nIHByb3ZpZGVkIGV4YW1wbGUsIHlvdSBjYW4gZWFzaWx5IGN1c3RvbWl6ZSB0aGUgdGFicyBsYXlvdXQgcmVuZGVyaW5nLjwvbGk+CisJPC91bD4KKwk8L1REPgorICA8L1RSPgorICA8VFI+CisgICAgPHRkIGNsYXNzPSJkYXRhbGlnaHRibHVlIj4KKwk8dWw+CisJICA8bGk+U2VsZWN0ZWQgcGFnZXMgdGFicworICAgICAgPEJSPjxhIGhyZWY9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L2V4YW1wbGVzL3RhYnMuanNwIj5QYWdlcyBUYWJzPC9hPjwvbGk+CisJICA8bGk+VmlldyBleGFtcGxlcyBTdW1tYXJpZXMgYXMgdGFicworICAgICAgPEJSPjxhIGhyZWY9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L2V4YW1wbGVzL3N1bW1hcmllc1RhYnMuanNwIj5TdW1tYXJpZXMgVGFiczwvYT48L2xpPgorCSAgPGxpPjwvbGk+CisJPC91bD4KKyAgICA8L1REPgorICA8L1RSPgorPC90YWJsZT4KKzwvYj48L2ZvbnQ+PC9kaXY+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2ltYWdlcy9hc2YtbG9nby5naWYgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvaW1hZ2VzL2FzZi1sb2dvLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMmViOWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2ltYWdlcy9hc2YtbG9nby5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2ltYWdlcy9zdHJ1dHMtcG93ZXIuZ2lmIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2ltYWdlcy9zdHJ1dHMtcG93ZXIuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmNGU5ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvaW1hZ2VzL3N0cnV0cy1wb3dlci5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2ltYWdlcy9zdHJ1dHMuZ2lmIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2ltYWdlcy9zdHJ1dHMuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2Mzg4ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvaW1hZ2VzL3N0cnV0cy5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2luZGV4LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9pbmRleC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNiMjU4NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9pbmRleC5qc3AKQEAgLTAsMCArMSw0IEBACis8JUAgcGFnZSBsYW5ndWFnZT0iamF2YSIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPHRpbGVzOmluc2VydCBkZWZpbml0aW9uPSJkb2MubWFpbkxheW91dCIgZmx1c2g9InRydWUiIC8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbGF5b3V0L2NsYXNzaWNMYXlvdXQuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2xheW91dC9jbGFzc2ljTGF5b3V0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmFlMWIwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2xheW91dC9jbGFzc2ljTGF5b3V0LmpzcApAQCAtMCwwICsxLDM3IEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzwlLS0gTGF5b3V0IGNvbXBvbmVudCAKKyAgcGFyYW1ldGVycyA6IHRpdGxlLCBoZWFkZXIsIG1lbnUsIGJvZHksIGZvb3RlciAKKy0tJT4KKzxIVE1MPgorICA8SEVBRD4KKyAgICA8dGl0bGU+PHRpbGVzOmdldEFzU3RyaW5nIG5hbWU9InRpdGxlIi8+PC90aXRsZT4KKyAgPC9IRUFEPgorCis8Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjMDIzMjY0IiBhbGluaz0iIzAyMzI2NCIgdmxpbms9IiMwMjMyNjQiPgorPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSI1Ij4KKzx0cj4KKyAgPHRkIGNvbHNwYW49IjIiPjx0aWxlczppbnNlcnQgYXR0cmlidXRlPSJoZWFkZXIiIC8+PC90ZD4KKzwvdHI+Cis8dHI+CisgIDx0ZCB3aWR0aD0iMTQwIiB2YWxpZ249InRvcCI+CisgICAgPHRpbGVzOmluc2VydCBhdHRyaWJ1dGU9J21lbnUnLz4KKyAgPC90ZD4KKyAgPHRkIHZhbGlnbj0idG9wIiAgYWxpZ249ImxlZnQiPgorICAgIDx0aWxlczppbnNlcnQgYXR0cmlidXRlPSdib2R5JyAvPgorICA8L3RkPgorPC90cj4KKzx0cj4KKyAgPHRkIGNvbHNwYW49IjIiPgorICAgIDxocj4KKyAgPC90ZD4KKzwvdHI+Cis8dHI+CisgIDx0ZCBjb2xzcGFuPSIyIj4KKyAgICA8dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0iZm9vdGVyIiAvPgorICA8L3RkPgorPC90cj4KKzwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9sYXlvdXQvY29sdW1uc0xheW91dC5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbGF5b3V0L2NvbHVtbnNMYXlvdXQuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1ZjQ4NTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbGF5b3V0L2NvbHVtbnNMYXlvdXQuanNwCkBAIC0wLDAgKzEsMzkgQEAKKzwlQCBwYWdlIGltcG9ydD0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuQ29tcG9uZW50Q29udGV4dCIlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8JS0tIExheW91dCBjb21wb25lbnQgCisgIFJlbmRlciBhIGxpc3Qgb24gc2V2ZXJhbHMgY29sdW1ucworICBwYXJhbWV0ZXJzIDogbnVtQ29scywgbGlzdDAsIGxpc3QxLCBsaXN0MiwgbGlzdDMsIC4uLiAKKy0tJT4KKworPHRpbGVzOnVzZUF0dHJpYnV0ZSBpZD0ibnVtQ29sc1N0ciIgbmFtZT0ibnVtQ29scyIgY2xhc3NuYW1lPSJqYXZhLmxhbmcuU3RyaW5nIiAvPgorCisKKzx0YWJsZT4KKzx0cj4KKzwlCitpbnQgbnVtQ29scyA9IEludGVnZXIucGFyc2VJbnQobnVtQ29sc1N0cik7CitDb21wb25lbnRDb250ZXh0IGNvbnRleHQgPSBDb21wb25lbnRDb250ZXh0LmdldENvbnRleHQoIHJlcXVlc3QgKTsKK2ZvciggaW50IGk9MDsgaTxudW1Db2xzOyBpKysgKQorICB7CisgIGphdmEudXRpbC5MaXN0IGxpc3Q9KGphdmEudXRpbC5MaXN0KWNvbnRleHQuZ2V0QXR0cmlidXRlKCAibGlzdCIgKyBpICk7CisgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZSgibGlzdCIsIGxpc3QgKTsKKyAgaWYobGlzdD09bnVsbCkKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJsaXN0IGlzIG51bGwgZm9yICIgKyBpICApOworJT4KKzx0ZCB2YWxpZ249InRvcCI+CisgIDx0aWxlczppbnNlcnQgcGFnZT0iL2xheW91dC92Ym94TGF5b3V0LmpzcCIgZmx1c2g9InRydWUiID4KKyAgICA8dGlsZXM6cHV0IG5hbWU9ImNvbXBvbmVudHNMaXN0IiBiZWFuTmFtZT0ibGlzdCIgYmVhblNjb3BlPSJwYWdlIiAvPgorICA8L3RpbGVzOmluc2VydD4KKzwvdGQ+Cis8JQorICB9IC8vIGVuZCBsb29wCislPgorPC90cj4KKzwvdGFibGU+CisKKworCisKKworCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbGF5b3V0L3Zib3hMYXlvdXQuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2xheW91dC92Ym94TGF5b3V0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjJkZDY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2xheW91dC92Ym94TGF5b3V0LmpzcApAQCAtMCwwICsxLDI1IEBACis8JUAgcGFnZSBpbXBvcnQ9ImphdmEudXRpbC5JdGVyYXRvciIlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8JS0tIExheW91dCBjb21wb25lbnQgCisgIFJlbmRlciBhIGxpc3Qgb24gc2V2ZXJhbHMgY29sdW1ucworICBwYXJhbWV0ZXJzIDogY29tcG9uZW50c0xpc3QgCistLSU+CisKKzx0aWxlczp1c2VBdHRyaWJ1dGUgaWQ9Imxpc3QiIG5hbWU9ImNvbXBvbmVudHNMaXN0IiBjbGFzc25hbWU9ImphdmEudXRpbC5MaXN0IiAvPgorCis8JS0tIE5leHQgd2lsbCBiZSBhIHRhZywgYXMgc29vbiBhcyB0YWdzIGFsbG93IGluY2x1ZGUgaW4gaXRlcmF0aW9uCisgIFdhaXQgdW50aWwganNwMS4zIC0tJT4KKzwlCitJdGVyYXRvciBpPWxpc3QuaXRlcmF0b3IoKTsKK3doaWxlKCBpLmhhc05leHQoKSApCisgIHsKKyAgU3RyaW5nIGNvbXA9KFN0cmluZylpLm5leHQoKTsKKyU+Cis8dGlsZXM6aW5zZXJ0IG5hbWU9IjwlPWNvbXAlPiIgZmx1c2g9InRydWUiIC8+Cis8YnI+CisKKzwlCisgIH0gLy8gZW5kIGxvb3AKKyU+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9sYXlvdXRzL2NlbnRlckxheW91dC5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbGF5b3V0cy9jZW50ZXJMYXlvdXQuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4MGU1ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbGF5b3V0cy9jZW50ZXJMYXlvdXQuanNwCkBAIC0wLDAgKzEsMzQgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPCUtLSBDZW50ZXJlZCBMYXlvdXQgVGlsZXMgCisgIFRoaXMgbGF5b3V0IHJlbmRlciBhIGhlYWRlciwgbGVmdCB0aWxlLCByaWdodCB0aWxlLCBib2R5IGFuZCBmb290ZXIuCisgIEl0IGRvZXNuJ3QgY3JlYXRlIDxodG1sPiBhbmQgPGJvZHk+IHRhZy4KKyAgQHBhcmFtIGhlYWRlciBIZWFkZXIgdGlsZSAoanNwIHVybCBvciBkZWZpbml0aW9uIG5hbWUpCisgIEBwYXJhbSByaWdodCBSaWdodCBjZW50ZXIgdGlsZSAob3B0aW9uYWwpCisgIEBwYXJhbSBib2R5IEJvZHkgb3IgY2VudGVyIHRpbGUKKyAgQHBhcmFtIGxlZnQgTGVmdCBjZW50ZXIgdGlsZSAob3B0aW9uYWwpCisgIEBwYXJhbSBmb290ZXIgRm9vdGVyIHRpbGUKKy0tJT4KKworPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSI1Ij4KKzx0cj4KKyAgPHRkIGNvbHNwYW49IjMiPjx0aWxlczppbnNlcnQgYXR0cmlidXRlPSJoZWFkZXIiIC8+PC90ZD4KKzwvdHI+Cis8dHI+CisgIDx0ZCB3aWR0aD0iMTQwIiB2YWxpZ249InRvcCI+CisgICAgPHRpbGVzOmluc2VydCBhdHRyaWJ1dGU9cmlnaHQgaWdub3JlPSd0cnVlJy8+CisgIDwvdGQ+CisgIDx0ZCB2YWxpZ249InRvcCIgIGFsaWduPSJsZWZ0Ij4KKyAgICA8dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0nYm9keScgLz4KKyAgPC90ZD4KKyAgPHRkIHZhbGlnbj0idG9wIiAgYWxpZ249ImxlZnQiPgorICAgIDx0aWxlczppbnNlcnQgYXR0cmlidXRlPSdsZWZ0JyBpZ25vcmU9J3RydWUnLz4KKyAgPC90ZD4KKzwvdHI+Cis8dHI+CisgIDx0ZCBjb2xzcGFuPSIzIj4KKyAgICA8dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0iZm9vdGVyIiAvPgorICA8L3RkPgorPC90cj4KKzwvdGFibGU+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9sYXlvdXRzL2NsYXNzaWNMYXlvdXQuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2xheW91dHMvY2xhc3NpY0xheW91dC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJiZjFhMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9sYXlvdXRzL2NsYXNzaWNMYXlvdXQuanNwCkBAIC0wLDAgKzEsNDAgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPCUtLSBMYXlvdXQgVGlsZXMgCisgIFRoaXMgbGF5b3V0IGNyZWF0ZSBhIGh0bWwgcGFnZSB3aXRoIDxoZWFkZXI+IGFuZCA8Ym9keT4gdGFncy4gSXQgcmVuZGVyCisgICBhIGhlYWRlciwgbGVmdCBtZW51LCBib2R5IGFuZCBmb290ZXIgdGlsZS4KKyAgQHBhcmFtIHRpdGxlIFN0cmluZyB1c2UgaW4gcGFnZSB0aXRsZQorICBAcGFyYW0gaGVhZGVyIEhlYWRlciB0aWxlIChqc3AgdXJsIG9yIGRlZmluaXRpb24gbmFtZSkKKyAgQHBhcmFtIG1lbnUgTWVudSAKKyAgQHBhcmFtIGJvZHkgQm9keQorICBAcGFyYW0gZm9vdGVyIEZvb3RlcgorLS0lPgorPEhUTUw+CisgIDxIRUFEPgorCTxsaW5rIHJlbD1zdHlsZXNoZWV0IGhyZWY9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L2xheW91dHMvc3R5bGVzaGVldC5jc3MiIHR5cGU9InRleHQvY3NzIj4KKyAgICA8dGl0bGU+PHRpbGVzOmdldEFzU3RyaW5nIG5hbWU9InRpdGxlIi8+PC90aXRsZT4KKwkKKyAgPC9IRUFEPgorCis8Ym9keSBiZ2NvbG9yPSIjZmZmZmZmIiB0ZXh0PSIjMDAwMDAwIiBsaW5rPSIjMDIzMjY0IiBhbGluaz0iIzAyMzI2NCIgdmxpbms9IiMwMjMyNjQiPgorPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPSI1Ij4KKzx0cj4KKyAgPHRkIGNvbHNwYW49IjIiPjx0aWxlczppbnNlcnQgYXR0cmlidXRlPSJoZWFkZXIiIC8+PC90ZD4KKzwvdHI+Cis8dHI+CisgIDx0ZCB3aWR0aD0iMTQwIiB2YWxpZ249InRvcCI+CisgICAgPHRpbGVzOmluc2VydCBhdHRyaWJ1dGU9J21lbnUnLz4KKyAgPC90ZD4KKyAgPHRkIHZhbGlnbj0idG9wIiAgYWxpZ249ImxlZnQiPgorICAgIDx0aWxlczppbnNlcnQgYXR0cmlidXRlPSdib2R5JyAvPgorICA8L3RkPgorPC90cj4KKzx0cj4KKyAgPHRkIGNvbHNwYW49IjIiPgorICAgIDx0aWxlczppbnNlcnQgYXR0cmlidXRlPSJmb290ZXIiIC8+CisgIDwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2xheW91dHMvY29sdW1uc0xheW91dC5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbGF5b3V0cy9jb2x1bW5zTGF5b3V0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYmM5YTYzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2xheW91dHMvY29sdW1uc0xheW91dC5qc3AKQEAgLTAsMCArMSw0NyBAQAorPCVAIHBhZ2UgaW1wb3J0PSJvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5Db21wb25lbnRDb250ZXh0IiU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzwlLS0gTXVsdGktY29sdW1ucyBMYXlvdXQKKyAgVGhpcyBsYXlvdXQgcmVuZGVyIGxpc3RzIG9mIHRpbGVzIGluIG11bHRpLWNvbHVtbnMuIEVhY2ggY29sdW1uIHJlbmRlcnMgaXRzIHRpbGVzCisgIHZlcnRpY2FsbHkgc3RhY2tlZC4gCisgIFRoZSBudW1iZXIgb2YgY29sdW1ucyBwYXNzZWQgaW4gcGFyYW1ldGVyIG11c3QgY29ycmVzcG9uZCB0byB0aGUgbnVtYmVyIG9mIGxpc3QgcGFzc2VkLgorICBFYWNoIGxpc3QgY29udGFpbnMgdGlsZXMuIExpc3QgYXJlIG5hbWVkIGxpc3QwLCBsaXN0MSwgbGlzdDIsIC4uLgorICBwYXJhbWV0ZXJzIDogbnVtQ29scywgbGlzdDAsIGxpc3QxLCBsaXN0MiwgbGlzdDMsIC4uLiAKKyAgQHBhcmFtIG51bUNvbHMgTnVtYmVyIG9mIGNvbHVtbnMgdG8gcmVuZGVyIGFuZCBwYXNzZWQgYXMgcGFyYW1ldGVyCisgIEBwYXJhbSBsaXN0MSBGaXJzdCBsaXN0IG9mIHRpbGVzICh1cmwgb3IgZGVmaW5pdGlvbiBuYW1lKQorICBAcGFyYW0gbGlzdDIgU2Vjb25kIGxpc3Qgb2YgdGlsZXMgKHVybCBvciBkZWZpbml0aW9uIG5hbWUpIFtvcHRpb25hbF0KKyAgQHBhcmFtIGxpc3QzIFRoaXJkIGxpc3Qgb2YgdGlsZXMgKHVybCBvciBkZWZpbml0aW9uIG5hbWUpIFtvcHRpb25hbF0KKyAgQHBhcmFtIGxpc3RuIE5pZW5lIGxpc3Qgb2YgdGlsZXMgKHVybCBvciBkZWZpbml0aW9uIG5hbWUpLCB3aGVyZSBuIGlzIHJlcGxhY2VkIGJ5IGNvbHVtbiBpbmRleC4KKy0tJT4KKworCis8dGlsZXM6dXNlQXR0cmlidXRlIGlkPSJudW1Db2xzU3RyIiBuYW1lPSJudW1Db2xzIiBjbGFzc25hbWU9ImphdmEubGFuZy5TdHJpbmciIC8+CisKKzx0YWJsZT4KKzx0cj4KKzwlCitpbnQgbnVtQ29scyA9IEludGVnZXIucGFyc2VJbnQobnVtQ29sc1N0cik7CitDb21wb25lbnRDb250ZXh0IGNvbnRleHQgPSBDb21wb25lbnRDb250ZXh0LmdldENvbnRleHQoIHJlcXVlc3QgKTsKK2ZvciggaW50IGk9MDsgaTxudW1Db2xzOyBpKysgKQorICB7CisgIGphdmEudXRpbC5MaXN0IGxpc3Q9KGphdmEudXRpbC5MaXN0KWNvbnRleHQuZ2V0QXR0cmlidXRlKCAibGlzdCIgKyBpICk7CisgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZSgibGlzdCIsIGxpc3QgKTsKKyAgaWYobGlzdD09bnVsbCkKKyAgICBTeXN0ZW0ub3V0LnByaW50bG4oICJsaXN0IGlzIG51bGwgZm9yICIgKyBpICApOworJT4KKzx0ZCB2YWxpZ249InRvcCI+CisgIDx0aWxlczppbnNlcnQgcGFnZT0iL2xheW91dHMvdmJveExheW91dC5qc3AiIGZsdXNoPSJ0cnVlIiA+CisgICAgPHRpbGVzOnB1dCBuYW1lPSJsaXN0IiBiZWFuTmFtZT0ibGlzdCIgYmVhblNjb3BlPSJwYWdlIiAvPgorICA8L3RpbGVzOmluc2VydD4KKzwvdGQ+Cis8JQorICB9IC8vIGVuZCBsb29wCislPgorPC90cj4KKzwvdGFibGU+CisKKworCisKKworCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbGF5b3V0cy9tZW51LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9sYXlvdXRzL21lbnUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4ZTdlNWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbGF5b3V0cy9tZW51LmpzcApAQCAtMCwwICsxLDUyIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtbG9naWMiIHByZWZpeD0ibG9naWMiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtYmVhbiIgcHJlZml4PSJiZWFuIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorPCVAIHBhZ2UgaW1wb3J0PSJqYXZhLnV0aWwuSXRlcmF0b3IiICU+CisKKworPCUtLSBNZW51IExheW91dAorICBUaGlzIGxheW91dCByZW5kZXIgYSBtZW51IHdpdGggbGlua3MuCisgIEl0IHRha2VzIGFzIHBhcmFtZXRlciB0aGUgdGl0bGUsIGFuZCBhIGxpc3Qgb2YgaXRlbXMuIEVhY2ggaXRlbSBpcyBhIGJlYW4gd2l0aCBmb2xsb3dpbmcgcHJvcGVydGllcyA6CisgIHZhbHVlLCBocmVmLCBpY29uLCB0b29sdGlwLgorICBAcGFyYW0gdGl0bGUgTWVudSB0aXRsZQorICBAcGFyYW0gaXRlbXMgbGlzdCBvZiBpdGVtcy4gSXRlbXMgYXJlIGJlYW5zIHdoaXRoIGZvbGxvd2luZyBwcm9wZXJ0aWVzIDogCisgLS0lPgorCisKKworPCUtLSBQdXNoIHRpbGVzIGF0dHJpYnV0ZXMgaW4gcGFnZSBjb250ZXh0IC0tJT4KKzx0aWxlczppbXBvcnRBdHRyaWJ1dGUgLz4KKworPHRhYmxlPgorPGxvZ2ljOnByZXNlbnQgbmFtZT0idGl0bGUiPgorPHRyPgorICA8dGggY29sc3Bhbj0yPgorICAgIDxkaXYgYWxpZ249ImxlZnQiPjxzdHJvbmc+PHRpbGVzOmdldEFzU3RyaW5nIG5hbWU9InRpdGxlIi8+PC9zdHJvbmc+PC9kaXY+CisgIDwvdGg+Cis8L3RyPgorPC9sb2dpYzpwcmVzZW50PgorCis8JS0tIGl0ZXJhdGUgb24gaXRlbXMgbGlzdCAtLSU+Cis8bG9naWM6aXRlcmF0ZSBpZD0iaXRlbSIgbmFtZT0iaXRlbXMiIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLk1lbnVJdGVtIiA+CisKKzwlICAvLyBBZGQgc2l0ZSB1cmwgaWYgbGluayBzdGFydCB3aXRoICIvIgorICBTdHJpbmcgbGluayA9IGl0ZW0uZ2V0TGluaygpOworCWlmKGxpbmsuc3RhcnRzV2l0aCgiLyIpICkgbGluayA9IHJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSArIGxpbms7CislPgorPHRyPgorICA8dGQgd2lkdGg9IjEwIiB2YWxpZ249InRvcCIgPjwvdGQ+CisgIDx0ZCB2YWxpZ249InRvcCIgID4KKwkgIDxmb250IHNpemU9Ii0xIj48YSBocmVmPSI8JT1saW5rJT4iPgorPGxvZ2ljOm5vdFByZXNlbnQgbmFtZT0iaXRlbSIgcHJvcGVydHk9Imljb24iPjwlPWl0ZW0uZ2V0VmFsdWUoKSU+PC9sb2dpYzpub3RQcmVzZW50PgorPGxvZ2ljOnByZXNlbnQgbmFtZT0iaXRlbSIgcHJvcGVydHk9Imljb24iPgorCTwlICAvLyBBZGQgc2l0ZSB1cmwgaWYgbGluayBzdGFydCB3aXRoICIvIgorCSAgU3RyaW5nIGljb24gPSBpdGVtLmdldEljb24oKTsKKwkJaWYoaWNvbi5zdGFydHNXaXRoKCIvIikgKSBpY29uID0gcmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpICsgaWNvbjsKKwklPgorPGltZyBzcmM9JzwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+PGJlYW46d3JpdGUgbmFtZT0iaXRlbSIgcHJvcGVydHk9Imljb24iIHNjb3BlPSJwYWdlIi8+JworICAgICAgIGFsdD0nPGJlYW46d3JpdGUgbmFtZT0iaXRlbSIgcHJvcGVydHk9InRvb2x0aXAiIHNjb3BlPSJwYWdlIiBpZ25vcmU9InRydWUiLz4nIC8+PC9sb2dpYzpwcmVzZW50PjwvYT4KKwkgIDwvZm9udD4KKyAgPC90ZD4KKzwvdHI+Cis8L2xvZ2ljOml0ZXJhdGU+Cis8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2xheW91dHMvbmVzdGVkVGFic0xheW91dC5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbGF5b3V0cy9uZXN0ZWRUYWJzTGF5b3V0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMzI2ZTJmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2xheW91dHMvbmVzdGVkVGFic0xheW91dC5qc3AKQEAgLTAsMCArMSwxMDYgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1sb2dpYyIgcHJlZml4PSJsb2dpYyIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1iZWFuIiBwcmVmaXg9ImJlYW4iICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzwlLS0gCisgIFRhYnMgTGF5b3V0IC4KKyAgVGhpcyBsYXlvdXQgYWxsb3dzIHRvIHJlbmRlciBzZXZlcmFsIHRpbGVzIGluIGEgdGFicyBmYXNoaW9uLiBTdWNoIHRhYnMgY2FuIGJlIG5lc3RlZDogYSB0YWIgbGV2ZWwgY2FuICAgY29udGFpbiBuZXN0ZWQgdGFicy4gRWFjaCB0YWJzIG11c3QgYmUgZGVjbGFyZWQgd2l0aCBhIGRpZmZlcmVudCBwYXJhbWV0ZXIgbmFtZS4KKyAgIEltcGxlbWVudGF0aW9uIHN0b3JlIGVhY2ggdGFicyBzZWxlY3Rpb24gaW5kZXggaW4gdGhlIHNlc3Npb24gY29udGV4dC4gVGhlIHVuaXF1ZSBpZCBmb3IgdGhlIAorICBzZXNzaW9uIGF0dHJpYnV0IGlzIGNvbXB1dGUgZnJvbSB0aGUgdXJsIGFuZCB0aGUgdGFicyBzZWxlY3Rpb24gcGFyYW1ldGVyLiAKKyAgW3RvZG9dIEltcHJvdmUgdGhlIGNvbXB1dGF0aW9uIG9mIHVuaXF1ZSBpZC4gCisgIEBwYXJhbSB0YWJMaXN0IEEgbGlzdCBvZiBhdmFpbGFibGUgdGFicy4gV2UgdXNlIE1lbnVJdGVtIHRvIGNhcnJ5IGRhdGEgKG5hbWUsIGJvZHksIGljb24sIC4uLikKKyAgQHBhcmFtIHNlbGVjdGVkSW5kZXggSW5kZXggb2YgZGVmYXVsdCBzZWxlY3RlZCB0YWIKKyAgQHBhcmFtIHBhcmFtZXRlck5hbWUgTmFtZSBvZiBwYXJhbWV0ZXIgY2Fycnlpbmcgc2VsZWN0ZWQgaW5mbyBpbiBodHRwIHJlcXVlc3QuCistLSU+CisKKzwlLS0gCitVc2UgdGlsZXMgYXR0cmlidXRlcywgYW5kIGRlY2xhcmUgdGhlbSBhcyBwYWdlIGphdmEgdmFyaWFibGUuCitUaGVzZSBhdHRyaWJ1dGUgbXVzdCBiZSBwYXNzZWQgdG8gdGhlIHRpbGUuIAorLS0lPgorCis8dGlsZXM6dXNlQXR0cmlidXRlIG5hbWU9InBhcmFtZXRlck5hbWUiIGNsYXNzbmFtZT0iamF2YS5sYW5nLlN0cmluZyIgLz4KKzx0aWxlczp1c2VBdHRyaWJ1dGUgaWQ9InNlbGVjdGVkSW5kZXhTdHIiIG5hbWU9InNlbGVjdGVkSW5kZXgiIGlnbm9yZT0idHJ1ZSIgY2xhc3NuYW1lPSJqYXZhLmxhbmcuU3RyaW5nIiAvPgorPHRpbGVzOnVzZUF0dHJpYnV0ZSBuYW1lPSJ0YWJMaXN0IiBjbGFzc25hbWU9ImphdmEudXRpbC5MaXN0IiAvPgorPCUKKyAgU3RyaW5nIHNlbGVjdGVkQ29sb3I9IiM5OEFCQzciOworICBTdHJpbmcgbm90U2VsZWN0ZWRDb2xvcj0iI0MwQzBDMCI7CisgIAorICBpbnQgaW5kZXggPSAwOyAvLyBMb29wIGluZGV4CisgIGludCBzZWxlY3RlZEluZGV4ID0gMDsKKyAgICAvLyBDaGVjayBpZiBzZWxlY3RlZCBjb21lIGZyb20gcmVxdWVzdCBwYXJhbWV0ZXIKKyAgdHJ5IHsKKyAgICBzZWxlY3RlZEluZGV4ID0gSW50ZWdlci5wYXJzZUludChzZWxlY3RlZEluZGV4U3RyKTsKKwkgIC8vIFRyeSB0byByZXRyaWV2ZSBmcm9tIGh0dHAgcGFyYW1ldGVyLCBvciBwcmV2aW91cyBzdG9yYWdlCisJICAvLyBOZWVkIHRvIHVzZSBhIG1vcmUgdW5pcXVlIGlkIGZvciBzdG9yYWdlIG5hbWUKKwlTdHJpbmcgcGFyYW1WYWx1ZSA9IHJlcXVlc3QuZ2V0UGFyYW1ldGVyKCBwYXJhbWV0ZXJOYW1lICk7CisJaWYoIHBhcmFtVmFsdWUgPT0gbnVsbCApCisJICB7CisgICAgICBzZWxlY3RlZEluZGV4ID0gKChJbnRlZ2VyKShzZXNzaW9uLmdldEF0dHJpYnV0ZSggCisJICAgICAgICAgICAgcmVxdWVzdC5nZXRSZXF1ZXN0VVJJKCkgKyBwYXJhbWV0ZXJOYW1lICkpKS5pbnRWYWx1ZSgpOworCSAgfQorCSBlbHNlCisgICAgICBzZWxlY3RlZEluZGV4ID0gSW50ZWdlci5wYXJzZUludChwYXJhbVZhbHVlKTsKKwl9CisgICBjYXRjaCggamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiBleCApCisgICAgeyAvLyBkbyBub3RoaW5nCisJfQorICAgY2F0Y2goIGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbiBleCApCisgICAgeyAvLyBkbyBub3RoaW5nCisJfQorICAvLyBDaGVjayBzZWxlY3RlZEluZGV4IGJvdW5kcworICBpZiggc2VsZWN0ZWRJbmRleCA8IDAgfHwgc2VsZWN0ZWRJbmRleCA+PSB0YWJMaXN0LnNpemUoKSApIHNlbGVjdGVkSW5kZXggPSAwOworICBTdHJpbmcgc2VsZWN0ZWRCb2R5ID0gKChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucy5NZW51SXRlbSl0YWJMaXN0LmdldChzZWxlY3RlZEluZGV4KSkuZ2V0TGluaygpOyAvLyBTZWxlY3RlZCBib2R5CisgIC8vIFN0b3JlIHNlbGVjdGVkIGluZGV4IGZvciBmdXR1cmUgcmVmZXJlbmNlcworICBzZXNzaW9uLnNldEF0dHJpYnV0ZSggcmVxdWVzdC5nZXRSZXF1ZXN0VVJJKCkgKyBwYXJhbWV0ZXJOYW1lICwgbmV3IEludGVnZXIoc2VsZWN0ZWRJbmRleCkgKTsKKyU+CisKKzx0YWJsZSBib3JkZXI9IjAiICBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiPgorICA8JS0tIERyYXcgdGFicyAtLSU+Cis8dHI+CisgIDx0ZCB3aWR0aD0iMTAiPiZuYnNwOzwvdGQ+CisgIDx0ZD4KKyAgICA8dGFibGUgYm9yZGVyPSIwIiAgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSI1Ij4KKyAgICAgIDx0cj4KKzxsb2dpYzppdGVyYXRlIGlkPSJ0YWIiIG5hbWU9InRhYkxpc3QiIHR5cGU9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLmJlYW5zLk1lbnVJdGVtIiA+Cis8JSAvLyBjb21wdXRlIGhyZWYKKyAgU3RyaW5nIGhyZWYgPSByZXF1ZXN0LmdldFJlcXVlc3RVUkkoKSArICI/IitwYXJhbWV0ZXJOYW1lICsgIj0iICsgaW5kZXg7CisgIFN0cmluZyBjb2xvciA9IG5vdFNlbGVjdGVkQ29sb3I7CisgIGlmKCBpbmRleCA9PSBzZWxlY3RlZEluZGV4ICkKKyAgICB7CisJc2VsZWN0ZWRCb2R5ID0gdGFiLmdldExpbmsoKTsKKwljb2xvciA9IHNlbGVjdGVkQ29sb3I7CisJfSAvLyBlbmYgaWYKKyAgaW5kZXgrKzsKKyU+CisgIDx0ZCBiZ2NvbG9yPSI8JT1jb2xvciU+Ij4KKyAgPGEgaHJlZj0iPCU9aHJlZiU+IiA+PCU9dGFiLmdldFZhbHVlKCklPjwvYT4KKyAgPC90ZD4KKyAgPHRkIHdpZHRoPSIxIiA+PC90ZD4KKyAgCis8L2xvZ2ljOml0ZXJhdGU+CisgICAgICA8L3RyPgorICAgIDwvdGFibGU+CisgIDwvdGQ+CisgIDx0ZCB3aWR0aD0iMTAiID4mbmJzcDs8L3RkPgorPC90cj4KKworCis8dHI+CisgIDx0ZCBoZWlnaHQ9IjUiIGJnY29sb3I9IjwlPXNlbGVjdGVkQ29sb3IlPiIgY29sc3Bhbj0iMyIgPiZuYnNwOzwvdGQ+Cis8L3RyPiAgCisKKyAgPCUtLSBEcmF3IGJvZHkgLS0lPgorPHRyPgorICA8dGQgd2lkdGg9IjEwIiBiZ2NvbG9yPSI8JT1zZWxlY3RlZENvbG9yJT4iPiZuYnNwOzwvdGQ+CisgIDx0ZD4KKyAgPHRpbGVzOmluc2VydCBuYW1lPSI8JT1zZWxlY3RlZEJvZHklPiIgZmx1c2g9InRydWUiIC8+CisgIDwvdGQ+CisgIDx0ZCB3aWR0aD0iMTAiIGJnY29sb3I9IjwlPXNlbGVjdGVkQ29sb3IlPiI+Jm5ic3A7PC90ZD4KKzwvdHI+ICAKKworPHRyPgorICA8dGQgaGVpZ2h0PSI1IiBiZ2NvbG9yPSI8JT1zZWxlY3RlZENvbG9yJT4iIGNvbHNwYW49IjMiID4mbmJzcDs8L3RkPgorPC90cj4gIAorCis8L3RhYmxlPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbGF5b3V0cy9za2luMS9tZW51TGVmdExheW91dC5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbGF5b3V0cy9za2luMS9tZW51TGVmdExheW91dC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU4NjZmYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9sYXlvdXRzL3NraW4xL21lbnVMZWZ0TGF5b3V0LmpzcApAQCAtMCwwICsxLDQwIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzwlLS0gTGF5b3V0IFRpbGVzIAorICBUaGlzIGxheW91dCBjcmVhdGUgYSBodG1sIHBhZ2Ugd2l0aCA8aGVhZGVyPiBhbmQgPGJvZHk+IHRhZ3MuIEl0IHJlbmRlcgorICAgYSBoZWFkZXIsIGxlZnQgbWVudSwgYm9keSBhbmQgZm9vdGVyIHRpbGUuCisgIEBwYXJhbSB0aXRsZSBTdHJpbmcgdXNlIGluIHBhZ2UgdGl0bGUKKyAgQHBhcmFtIGhlYWRlciBIZWFkZXIgdGlsZSAoanNwIHVybCBvciBkZWZpbml0aW9uIG5hbWUpCisgIEBwYXJhbSBtZW51IE1lbnUgCisgIEBwYXJhbSBib2R5IEJvZHkKKyAgQHBhcmFtIGZvb3RlciBGb290ZXIKKy0tJT4KKzxIVE1MPgorICA8SEVBRD4KKwk8bGluayByZWw9c3R5bGVzaGVldCBocmVmPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi9sYXlvdXRzL3N0eWxlc2hlZXQuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgPHRpdGxlPjx0aWxlczpnZXRBc1N0cmluZyBuYW1lPSJ0aXRsZSIvPjwvdGl0bGU+CisJCisgIDwvSEVBRD4KKworPGJvZHkgYmdjb2xvcj0iI0MwQzBDMCIgdGV4dD0iIzAwMDAwMCIgbGluaz0iIzAyMzI2NCIgYWxpbms9IiMwMjMyNjQiIHZsaW5rPSIjMDIzMjY0Ij4KKzx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iNSI+Cis8dHI+CisgIDx0ZCBjb2xzcGFuPSIyIj48dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0iaGVhZGVyIiAvPjwvdGQ+Cis8L3RyPgorPHRyPgorICA8dGQgdmFsaWduPSJ0b3AiICBhbGlnbj0ibGVmdCI+CisgICAgPHRpbGVzOmluc2VydCBhdHRyaWJ1dGU9J2JvZHknIC8+CisgIDwvdGQ+CisgIDx0ZCB3aWR0aD0iMTQwIiB2YWxpZ249InRvcCI+CisgICAgPHRpbGVzOmluc2VydCBhdHRyaWJ1dGU9J21lbnUnLz4KKyAgPC90ZD4KKzwvdHI+Cis8dHI+CisgIDx0ZCBjb2xzcGFuPSIyIj4KKyAgICA8dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0iZm9vdGVyIiAvPgorICA8L3RkPgorPC90cj4KKzwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9sYXlvdXRzL3N0eWxlc2hlZXQuY3NzIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2xheW91dHMvc3R5bGVzaGVldC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmFkOGJkOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC9sYXlvdXRzL3N0eWxlc2hlZXQuY3NzCkBAIC0wLDAgKzEsMjU1IEBACisvKiBDU1MgICovCisKKy8qIGJhc2UgZWxlbWVudCBpbmhlcml0YW5jZSBmb3JtYXR0aW5nICovCitib2R5ICAgICAgeyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgCisgICAgICAgICAgICBtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsKKyAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBhcmlhbCwgZ2VuZXZhLCBoZWx2ZXRpY2EsICJzYW5zIHNlcmlmIjsgfQorYSAgICAgICAgIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0gICAvKiBhbGwgbGlua3MgYXJlIGJvbGQgKi8KK2E6bGluayAgICB7IGNvbG9yOiAjMzMwMGNjIH0gICAgICAgLyogdW52aXNpdGVkIGxpbmsgKi8KK2E6dmlzaXRlZCB7IGNvbG9yOiAjMzMwMDk5IH0gICAgICAgLyogdmlzaXRlZCBsaW5rcyAgKi8KK2E6YWN0aXZlICB7IGNvbG9yOiAjMDAwMDMzIH0gICAgICAgLyogYWN0aXZlIGxpbmtzICAgKi8KK2E6aG92ZXIgICB7IGNvbG9yOiAjMDAwMDMzIH0gICAgICAgLyogTVNJRSByb2xsb3ZlciBsaW5rcyAgICovCit0YWJsZSAgICAgeyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgCisgICAgICAgICAgICBtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgfQordGQgICAgICAgIHsgZm9udC1mYW1pbHk6IGFyaWFsLCBnZW5ldmEsIGhlbHZldGljYSwgInNhbnMgc2VyaWYiOyB9Cit0aCAgICAgICAgeyBmb250LWZhbWlseTogYXJpYWwsIGdlbmV2YSwgaGVsdmV0aWNhLCAic2FucyBzZXJpZiI7IAorICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH0KKworLyogYmVnaW4gZGVmaW5lZCBjbGFzc2VzICovCisKKy8qIGhlYWRsaW5lIGNsYXNzZXMgKi8KKy5oZWFkbGluZSB7IGZvbnQtZmFtaWx5OiB2ZXJkYW5hLCBhcmlhbCwgZ2VuZXZhLCAic2FucyBzZXJpZiI7IAorICAgICAgICAgICAgZm9udC1zaXplOiAxMTAlOyBjb2xvcjogIzAwMDAwMDsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB0ZXh0LWFsaWduOiBsZWZ0OyB9CisKKy8qIG9uLXNjcmVlbiBoaW50IGNsYXNzICovCisuaGludCAgICAgeyBmb250LXNpemU6IHgtc21hbGw7IAorICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNmZmZmZmY7IH0KKy5oaW50dmJtICAgICB7IGZvbnQtc2l6ZTogeC1zbWFsbDsgfQorCisvKiBNZXNzYWdlIGNsYXNzZXMgKi8KKy5ub3RlICAgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7IAorICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNmZmZmZmY7IAorICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgdGV4dC1hbGlnbjogbGVmdDsgCisgICAgICAgICAgICBwYWRkaW5nOiAycHg7IH0KKy5ub3RlaW1nICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZjYzsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KKy5zdWNjZXNzICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZmZjsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB0ZXh0LWFsaWduOiBsZWZ0OyAKKyAgICAgICAgICAgIHBhZGRpbmc6IDJweDsgfQorLnN1Y2Nlc3NpbWcgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZmZmZmNjOyAKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsgfQorLmFsZXJ0ICAgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZjYzsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB0ZXh0LWFsaWduOiBsZWZ0OyAKKyAgICAgICAgICAgIHBhZGRpbmc6IDJweDsgfQorLmFsZXJ0aW1nICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZjYzsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KKy5lcnJvciAgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZjYzsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB0ZXh0LWFsaWduOiBsZWZ0OyAKKyAgICAgICAgICAgIHBhZGRpbmc6IDJweDsgfQorLmVycm9yaW1nICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZjYzsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KKworLyogY29sdW1uIGhlYWRlciBjbGFzc2VzICovCisuaGRsZWZ0ICAgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7IGJhY2tncm91bmQ6ICNjY2NjY2M7IAorICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfQorLmhkcmlnaHQgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjY2NjY2NjOyAKKyAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9CisuaGRtaWRkbGUgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBjb2xvcjogIzMzMzMzMzsgYmFja2dyb3VuZDogI2NjY2NjYzsgCisJCXRleHQtYWxpZ246IGNlbnRlcjsgfQorLmRhdGFoZCAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjY2NjY2NjOyB9Cisuc3BhbmhkICAgICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgICAgICBjb2xvcjogI2VlZWVlZTsgYmFja2dyb3VuZDogIzAwMzM2NjsgCisgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfQorLnNwYW5oZHJpZ2h0ICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7IAorICAgICAgICAgICAgICAgIGNvbG9yOiAjZWVlZWVlOyBiYWNrZ3JvdW5kOiAjMDAzMzY2OyAKKyAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfQorLnNwYW5oZGNlbnRlciB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICAgICAgY29sb3I6ICNlZWVlZWU7IGJhY2tncm91bmQ6ICMwMDMzNjY7IAorICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfQorLnN1YmhkbGVmdCAgIHsgZm9udC1zaXplOiB4LXNtYWxsOyBjb2xvcjogIzMzMzMzMzsgYmFja2dyb3VuZDogI2NjY2NjYzsgCisJCXRleHQtYWxpZ246IGxlZnQ7ICB9IAorCisvKiBsYWJlbCBjbGFzc2VzICovCisucmlnaHQgICAgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7IGJhY2tncm91bmQ6ICNjY2NjY2M7IAorICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0KKy50b3ByaWdodCB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzMzMzMzMzsgYmFja2dyb3VuZDogI2NjY2NjYzsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiByaWdodDsgfQorLmxlZnQgICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAKKyAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0KKy50b3BsZWZ0ICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzMzMzMzMzsgYmFja2dyb3VuZDogI2ZmZmZmZjsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBsZWZ0OyB9CisuY2VudGVyICAgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7IGJhY2tncm91bmQ6ICNmZmZmZmY7IAorICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9CisuZ3JleXJpZ2h0ICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjY2NjY2NjOyAKKyAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9CisuZ3JleWxlZnQgICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAKKyAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0KKy5ncmV5Y2VudGVyICAgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7IGJhY2tncm91bmQ6ICNlZWVlZWU7IAorICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9CisuZ3JleXRvcHJpZ2h0IHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjY2NjY2NjOyAKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IHJpZ2h0OyB9CisuZ3JleXRvcGxlZnQgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGxlZnQ7IH0KKyAgICAgIC8qIHJlbW92ZSBhZnRlciBjaGFuZ2luZyBzdWJyaWdodCB1c2UgdG8gZmluZSAqLworLmdyZXlzdWJyaWdodCAgICB7IGZvbnQtc2l6ZTogeC1zbWFsbDsgY29sb3I6ICMzMzMzMzM7IGJhY2tncm91bmQ6ICNjY2NjY2M7IAorCQl0ZXh0LWFsaWduOiByaWdodDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfQorCisKKy8qIGRhdGEgY2xhc3NlcyBhbmQgYWx0ZXJuYXRpbmcgcm93IGNvbG9yIGNsYXNzZXMgKi8KKy5kYXRhICAgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgCisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZmZjsgfQorLmRhdGFtaWRkbGUJeyBmb250LXNpemU6IHNtYWxsZXI7IAorCWNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlIH0KKy5kYXRhZ3JleSB7IGZvbnQtc2l6ZTogc21hbGxlcjsgCisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2VlZWVlZTsgfQorLmRhdGFsaWdodGJsdWUgeworCWZvbnQtc2l6ZTogc21hbGxlcjsKKwljb2xvcjogIzAwMDAwMDsKKwliYWNrZ3JvdW5kOiAjRTFGOEY5OworfQorLmJkYXRhICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB9CisuYmRhdGFncmV5ICAgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNlZWVlZWU7IH0KKy5kYXRhcnQgICAgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgCisgICAgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZmZjsgCisgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfQorLmRhdGFydGdyZXkgIHsgZm9udC1zaXplOiBzbWFsbGVyOyAKKyAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZWVlZWVlOyAKKyAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9CisuYmRhdGFydCAgICAgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNmZmZmZmY7IAorICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0KKy5iZGF0YXJ0Z3JleSB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2VlZWVlZTsgCisgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfQorLmN1cnIgICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAKKyAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9CisuY3VycmdyZXkgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNlZWVlZWU7IAorICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0KKy5jdXJybGVmdCB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7IAorICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNmZmZmZmY7IAorICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfQorLmNvbG9yICAgICB7IGNvbG9yOiAjODAwMDAwOyB9IC8qY2hhbmdlIHRvIDAwMDAwMCBpZiBGSSBkb2Vzbid0IHdhbnQgbmVnYXRpdmUgbnVtYmVycyB0byBiZSByZWQqLworLnN1YmRhdGEgIHsgZm9udC1zaXplOiB4LXNtYWxsOyBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZmZiB9Cisuc3ViZGF0YWdyZXkgeyBmb250LXNpemU6IHgtc21hbGw7IGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZWVlZWVlIH0KKy5kYXRhcmlnaHQgICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZmZjsgdGV4dC1hbGlnbjogcmlnaHQ7fQorLmRhdGFncmV5cmlnaHQgICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2VlZWVlZTsgdGV4dC1hbGlnbjogcmlnaHQ7fQorLnllbGxvdyAgeyBmb250LXNpemU6IHNtYWxsZXI7IGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZmZmZmNjOyAKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHRleHQtYWxpZ246IGxlZnQ7IH0KKworCisKKy8qIHZybSBjbGFzc2VzIGFuZCBhY2NvdW50IGJhbGFuY2UgY2xhc3NlcyAqLworLnN1YmN1cnIgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjY2NjY2NjOyAKKyAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9CisuZWRpdG9yaWFsIHsgZm9udC1zaXplOiBzbWFsbGVyOyAKKyAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB9CisuZWRpdGdyZXkgeyBmb250LXNpemU6IHNtYWxsZXI7IAorICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNlZWVlZWU7IH0KKworCisvKiBmaW5lIHByaW50IGZvciBpbnB1dHMgYW5kIHRhYmxlcyAqLworLmZpbmUgICAgICAgIHsgZm9udC1zaXplOiB4LXNtYWxsOyBmb250LXdlaWdodDogbm9ybWFsOyAKKyAgICAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyB9CisuZmluZXJpZ2h0ICAgeyBmb250LXNpemU6IHgtc21hbGw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IAorICAgICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7CisgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfQorLmZpbmV3aGl0ZSB7IGZvbnQtc2l6ZTogeC1zbWFsbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNmZmZmZmY7IH0KKy5zdWJyaWdodCB7IGZvbnQtc2l6ZTogeC1zbWFsbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgICAKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjY2NjY2NjOyAgICAgICAKKyAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9CisKKy8qIGZvcm0gZWxlbWVudCBjZWxsIGNsYXNzZXMgKi8KKy5pbnB1dCAgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgCisgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfQorLnRvcGlucHV0IHsgZm9udC1zaXplOiBzbWFsbGVyOyAgCisgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH0KKy5idG1pbnB1dCB7IGZvbnQtc2l6ZTogc21hbGxlcjsgCisgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207IH0KKy5pbnB1dGdyZXkgeyBmb250LXNpemU6IHNtYWxsZXI7IAorICAgICAgICAgICAgYmFja2dyb3VuZDogI2VlZWVlZTsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH0KKy5zdWJtaXQgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzMzMzMzMzsgYmFja2dyb3VuZDogI2ZmZmZmZjsKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHRleHQtYWxpZ246IHJpZ2h0OyB9Cisuc3VibWl0Z3JleSAgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7IGJhY2tncm91bmQ6ICNjY2NjY2M7CisgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB0ZXh0LWFsaWduOiByaWdodDsgfQorLmlucHV0dG9wICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyAgCisJCXZlcnRpY2FsLWFsaWduOiB0b3A7IGJhY2tncm91bmQ6ICNmZmZmZmY7IH0KKworLyogaGVscCBjbGFzc2VzICovCisuaGVscCAgICAgeyBmb250LWZhbWlseTogYXJpYWwsIGhlbHZldGljYSwgInNhbnMgc2VyaWYiOyAKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogc21hbGxlcjsgCisgICAgICAgICAgICBjb2xvcjogIzY2NjY2NjsgYmFja2dyb3VuZDogI2ZmZmZjYzsgfQorCisvKiBuYXZpZ2F0aW9uIGJhciBjbGFzc2VzICovCisubmF2dGV4dCAgeyBmb250LXNpemU6IHgtc21hbGw7IAorICAgICAgICAgICAgY29sb3I6ICMwMDAwNjY7IAorICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0KKy5pbmZvICAgICB7IGZvbnQtc2l6ZTogeC1zbWFsbDsgCisgICAgICAgICAgICBjb2xvcjogIzAwMDA2NjsgYmFja2dyb3VuZDogI2VlZWVlZTsgfQorLmluZm90ZXh0IHsgcGFkZGluZy1sZWZ0OiAycHQ7IH0KKworLyogZm9vdGVyIGNsYXNzZXMgKi8KKy5mb290bHQgICB7IGZvbnQtc2l6ZTogeC1zbWFsbDsgCisgICAgICAgICAgICBjb2xvcjogIzMzMzMzMzsgYmFja2dyb3VuZDogI2NjY2NjYzsgfQorLmZvb3RkayAgIHsgZm9udC1zaXplOiB4LXNtYWxsOyAKKyAgICAgICAgICAgIGNvbG9yOiAjY2NjY2NjOyBiYWNrZ3JvdW5kOiAjMzMzMzMzOyB9CisKKy8qIGJhY2tncm91bmQgcGFja2luZyBjbGFzc2VzICovCisuYmtnbmQgICAgeyBmb250LXNpemU6IDFwdDsgfQorLnd0c3BhY2UgIHsgZm9udC1zaXplOiAxcHQ7IGJhY2tncm91bmQ6ICNmZmZmZmY7IH0KKy5ncmV5c3BhY2UgIHsgZm9udC1zaXplOiAxcHQ7IGJhY2tncm91bmQ6ICNlZWVlZWU7IH0KKy55ZWxsb3dzcGFjZSAgeyBmb250LXNpemU6IDFwdDsgYmFja2dyb3VuZDogI2ZmZmZjYzsgfQorLmJvdHRvbSAgIHsgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgfQorCisKKworLyogYWRkaXRpb25hbCBWSU0gY2xhc3NlcyAqLworLnllbGxvd2JhciAgICAgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgYmFja2dyb3VuZDogI2ZmZmZjYzsgCisgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfQorCisueWVsbG93YmFycnQgICAgICAgeyBmb250LXNpemU6IHNtYWxsZXI7IGJhY2tncm91bmQ6ICNmZmZmY2M7IAorICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9CisKKy55ZWxsb3dzcGFjZSAgeyBmb250LXNpemU6IDRwdDsgYmFja2dyb3VuZDogI2ZmZmZjYzsgfQorCisuZGF0YWNudHIgICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyAKKyAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KKwkKKy5kYXRhY250cmdyZXkgeyBmb250LXNpemU6IHNtYWxsZXI7IAorICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNlZWVlZWU7IHRleHQtYWxpZ246IGNlbnRlcjsgfQorCisuaGRjdHIJICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsgY29sb3I6ICMzMzMzMzM7IAorCWJhY2tncm91bmQ6ICNjY2NjY2M7IHRleHQtYWxpZ246IGNlbnRlcjt9CisKKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2xheW91dHMvdGFic0xheW91dC5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbGF5b3V0cy90YWJzTGF5b3V0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGZjN2U0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2xheW91dHMvdGFic0xheW91dC5qc3AKQEAgLTAsMCArMSw5NCBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWxvZ2ljIiBwcmVmaXg9ImxvZ2ljIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWJlYW4iIHByZWZpeD0iYmVhbiIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPCUtLSAKKyAgVGFicyBMYXlvdXQgLgorICBUaGlzIGxheW91dCBhbGxvd3MgdG8gcmVuZGVyIHNldmVyYWwgdGlsZXMgaW4gYSB0YWJzIGZhc2hpb24uCisgIEBwYXJhbSB0YWJMaXN0IEEgbGlzdCBvZiBhdmFpbGFibGUgdGFicy4gV2UgdXNlIE1lbnVJdGVtIHRvIGNhcnJ5IGRhdGEgKG5hbWUsIGJvZHksIGljb24sIC4uLikKKyAgQHBhcmFtIHNlbGVjdGVkSW5kZXggSW5kZXggb2YgZGVmYXVsdCBzZWxlY3RlZCB0YWIKKyAgQHBhcmFtIHBhcmFtZXRlck5hbWUgTmFtZSBvZiBwYXJhbWV0ZXIgY2Fycnlpbmcgc2VsZWN0ZWQgaW5mbyBpbiBodHRwIHJlcXVlc3QuCistLSU+CisKKzwlLS0gCitVc2UgdGlsZXMgYXR0cmlidXRlcywgYW5kIGRlY2xhcmUgdGhlbSBhcyBwYWdlIGphdmEgdmFyaWFibGUuCitUaGVzZSBhdHRyaWJ1dGUgbXVzdCBiZSBwYXNzZWQgdG8gdGhlIHRpbGUuIAorLS0lPgorCis8dGlsZXM6dXNlQXR0cmlidXRlIG5hbWU9InBhcmFtZXRlck5hbWUiIGNsYXNzbmFtZT0iamF2YS5sYW5nLlN0cmluZyIgLz4KKzx0aWxlczp1c2VBdHRyaWJ1dGUgaWQ9InNlbGVjdGVkSW5kZXhTdHIiIG5hbWU9InNlbGVjdGVkSW5kZXgiIGlnbm9yZT0idHJ1ZSIgY2xhc3NuYW1lPSJqYXZhLmxhbmcuU3RyaW5nIiAvPgorPHRpbGVzOnVzZUF0dHJpYnV0ZSBuYW1lPSJ0YWJMaXN0IiBjbGFzc25hbWU9ImphdmEudXRpbC5MaXN0IiAvPgorPCUKKyAgU3RyaW5nIHNlbGVjdGVkQ29sb3I9IiM5OEFCQzciOworICBTdHJpbmcgbm90U2VsZWN0ZWRDb2xvcj0iI0MwQzBDMCI7CisgIAorICBpbnQgaW5kZXggPSAwOyAvLyBMb29wIGluZGV4CisgIGludCBzZWxlY3RlZEluZGV4ID0gMDsKKyAgICAvLyBDaGVjayBpZiBzZWxlY3RlZCBjb21lIGZyb20gcmVxdWVzdCBwYXJhbWV0ZXIKKyAgdHJ5IHsKKyAgICBzZWxlY3RlZEluZGV4ID0gSW50ZWdlci5wYXJzZUludChzZWxlY3RlZEluZGV4U3RyKTsKKyAgICBzZWxlY3RlZEluZGV4ID0gSW50ZWdlci5wYXJzZUludChyZXF1ZXN0LmdldFBhcmFtZXRlciggcGFyYW1ldGVyTmFtZSApKTsKKwl9CisgICBjYXRjaCggamF2YS5sYW5nLk51bWJlckZvcm1hdEV4Y2VwdGlvbiBleCApCisgICAgeyAvLyBkbyBub3RoaW5nCisJfQorICAvLyBDaGVjayBzZWxlY3RlZEluZGV4IGJvdW5kcworICBpZiggc2VsZWN0ZWRJbmRleCA8IDAgfHwgc2VsZWN0ZWRJbmRleCA+PSB0YWJMaXN0LnNpemUoKSApIHNlbGVjdGVkSW5kZXggPSAwOworICBTdHJpbmcgc2VsZWN0ZWRCb2R5ID0gKChvcmcuYXBhY2hlLnN0cnV0cy50aWxlcy5iZWFucy5NZW51SXRlbSl0YWJMaXN0LmdldChzZWxlY3RlZEluZGV4KSkuZ2V0TGluaygpOyAvLyBTZWxlY3RlZCBib2R5CisgIAorJT4KKworPHRhYmxlIGJvcmRlcj0iMCIgIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+CisgIDwlLS0gRHJhdyB0YWJzIC0tJT4KKzx0cj4KKyAgPHRkIHdpZHRoPSIxMCI+Jm5ic3A7PC90ZD4KKyAgPHRkPgorICAgIDx0YWJsZSBib3JkZXI9IjAiICBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjUiPgorICAgICAgPHRyPgorPGxvZ2ljOml0ZXJhdGUgaWQ9InRhYiIgbmFtZT0idGFiTGlzdCIgdHlwZT0ib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuTWVudUl0ZW0iID4KKzwlIC8vIGNvbXB1dGUgaHJlZgorICBTdHJpbmcgaHJlZiA9IHJlcXVlc3QuZ2V0UmVxdWVzdFVSSSgpICsgIj8iK3BhcmFtZXRlck5hbWUgKyAiPSIgKyBpbmRleDsKKyAgICAvLyBEb24ndCBhZGQgcmVxdWVzdCBVUkkgcHJlZml4ICwgYnV0IGxldCB0aGUgY2xpZW50IGNvbXB1dGUgdGhlIG9yaWdpbmFsIFVSTAorCS8vIFRoaXMgYWxsb3dzIHRvIHVzZSBhIFN0cnV0cyBhY3Rpb24gYXMgcGFnZSBVUkwsIGFuZCBwZXJmb3JtIGEgZm9yd2FyZC4KKwkvLyBCdWcgcmVwb3J0ZWQgYnkgRG9uIFBldGVya29mc2t5IAorICAvL1N0cmluZyBocmVmID0gIiIgKyAiPyIrcGFyYW1ldGVyTmFtZSArICI9IiArIGluZGV4OworICBTdHJpbmcgY29sb3IgPSBub3RTZWxlY3RlZENvbG9yOworICBpZiggaW5kZXggPT0gc2VsZWN0ZWRJbmRleCApCisgICAgeworCXNlbGVjdGVkQm9keSA9IHRhYi5nZXRMaW5rKCk7CisJY29sb3IgPSBzZWxlY3RlZENvbG9yOworCX0gLy8gZW5mIGlmCisgIGluZGV4Kys7CislPgorICA8dGQgYmdjb2xvcj0iPCU9Y29sb3IlPiI+CisgIDxhIGhyZWY9IjwlPWhyZWYlPiIgPjwlPXRhYi5nZXRWYWx1ZSgpJT48L2E+CisgIDwvdGQ+CisgIDx0ZCB3aWR0aD0iMSIgPjwvdGQ+CisgIAorPC9sb2dpYzppdGVyYXRlPgorICAgICAgPC90cj4KKyAgICA8L3RhYmxlPgorICA8L3RkPgorICA8dGQgd2lkdGg9IjEwIiA+Jm5ic3A7PC90ZD4KKzwvdHI+CisKKworPHRyPgorICA8dGQgaGVpZ2h0PSI1IiBiZ2NvbG9yPSI8JT1zZWxlY3RlZENvbG9yJT4iIGNvbHNwYW49IjMiID4mbmJzcDs8L3RkPgorPC90cj4gIAorCisgIDwlLS0gRHJhdyBib2R5IC0tJT4KKzx0cj4KKyAgPHRkIHdpZHRoPSIxMCIgYmdjb2xvcj0iPCU9c2VsZWN0ZWRDb2xvciU+Ij4mbmJzcDs8L3RkPgorICA8dGQ+CisgIDx0aWxlczppbnNlcnQgbmFtZT0iPCU9c2VsZWN0ZWRCb2R5JT4iIGZsdXNoPSJ0cnVlIiAvPgorICA8L3RkPgorICA8dGQgd2lkdGg9IjEwIiBiZ2NvbG9yPSI8JT1zZWxlY3RlZENvbG9yJT4iPiZuYnNwOzwvdGQ+Cis8L3RyPiAgCisKKzx0cj4KKyAgPHRkIGhlaWdodD0iNSIgYmdjb2xvcj0iPCU9c2VsZWN0ZWRDb2xvciU+IiBjb2xzcGFuPSIzIiA+Jm5ic3A7PC90ZD4KKzwvdHI+ICAKKworPC90YWJsZT4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2xheW91dHMvdmJveExheW91dC5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvbGF5b3V0cy92Ym94TGF5b3V0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTc3ODM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL2xheW91dHMvdmJveExheW91dC5qc3AKQEAgLTAsMCArMSw1MiBAQAorPCVAIHBhZ2UgaW1wb3J0PSJqYXZhLnV0aWwuSXRlcmF0b3IiJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPCUtLSBMYXlvdXQgY29tcG9uZW50IAorICBSZW5kZXIgYSBsaXN0IG9mIHRpbGVzIGluIGEgdmVydGljYWwgY29sdW1uCisgIEBwYXJhbSA6IGxpc3QgTGlzdCBvZiBuYW1lcyB0byBpbnNlcnQgCisgIFRoaXMgZmlsZSBjb250YWlucyAzIHBvc3NpYmxlIGltcGxlbWVudGF0aW9ucy4KKyAgVXNlIG9ubHkgb25lIGFuZCBjb21tZW50IHRoZSBvdGhlcnMuIERvbid0IGZvcmdldCB0byBtb3ZlIHRoZSBhcHByb3ByaWF0ZSB0YWdsaWIKKyAgZGVjbGFyYXRpb24gaW4gdGhlIGhlYWRlci4KKy0tJT4KKworPHRpbGVzOnVzZUF0dHJpYnV0ZSBpZD0ibGlzdCIgbmFtZT0ibGlzdCIgY2xhc3NuYW1lPSJqYXZhLnV0aWwuTGlzdCIgLz4KKworPCUtLSBJdGVyYXRlIG92ZXIgbmFtZXMuCisgIFdlIGRvbid0IHVzZSA8aXRlcmF0ZT4gdGFnIGJlY2F1c2UgaXQgZG9lc24ndCBhbGxvdyBpbnNlcnQgKGluIEpTUDEuMSkKKyAtLSU+Cis8JQorSXRlcmF0b3IgaT1saXN0Lml0ZXJhdG9yKCk7Cit3aGlsZSggaS5oYXNOZXh0KCkgKQorICB7CisgIFN0cmluZyBuYW1lPSAoU3RyaW5nKWkubmV4dCgpOworJT4KKzx0aWxlczppbnNlcnQgbmFtZT0iPCU9bmFtZSU+IiBmbHVzaD0idHJ1ZSIgLz4KKzxicj4KKworPCUKKyAgfSAvLyBlbmQgbG9vcAorJT4KKworCis8JS0tIEl0ZXJhdGUgb3ZlciBuYW1lcy4KKyAgVXNlIGpzdGwgPGZvckVhY2g+IHRhZy4gCisgIFJlcXVpcmUgdGhlIGpzdGwgdGFnbGliLgorIC0tJT4KKzwlLS0gCis8JUAgdGFnbGliIHVyaT0iL1dFQi1JTkYvYy50bGQiIHByZWZpeD0iYyIgJT4KKzxjOmZvckVhY2ggdmFyPSJuYW1lIiBpdGVtcz0iJHtsaXN0fSI+CisgIDx0aWxlczppbnNlcnQgYmVhbk5hbWU9Im5hbWUiIGZsdXNoPSJ0cnVlIiAvPgorPGJyPgorPC9jOmZvckVhY2g+CisgLS0lPgorIAorPCUtLSBJdGVyYXRlIG92ZXIgbmFtZXMuCisgIFVzZSBzdHJ1dHMgPGl0ZXJhdGU+IHRhZy4gV29yayBvbiBqc3AxLjIgYW5kIGdyZWF0ZXIgd2ViIGNvbnRhaW5lci4KKyAtLSU+Cis8JS0tIAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWxvZ2ljIiBwcmVmaXg9ImxvZ2ljIiAlPgorPGxvZ2ljOml0ZXJhdGUgaWQ9Im5hbWUiIG5hbWU9Imxpc3QiIHR5cGU9ImphdmEubGFuZy5TdHJpbmciPgorICA8dGlsZXM6aW5zZXJ0IGJlYW5OYW1lPSJuYW1lIiBmbHVzaD0iZmFsc2UiIC8+Cis8YnI+Cis8L2xvZ2ljOml0ZXJhdGU+CisgLS0lPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvYm9keS5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC9ib2R5LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTIyMWY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvYm9keS5qc3AKQEAgLTAsMCArMSBAQAorPGRpdiBhbGlnbj0iY2VudGVyIj48Yj48aT5UaGlzIGlzIGEgYm9keTwvaT48L2I+PC9kaXY+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC9mYWlscGFnZS5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC9mYWlscGFnZS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWZhYTUyYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L2ZhaWxwYWdlLmpzcApAQCAtMCwwICsxLDMgQEAKKzxzdHJvbmc+RXJyb3I8L3N0cm9uZz4KKzxicj4KKzwlPXJlcXVlc3QuZ2V0QXR0cmlidXRlKCAiYWN0aW9uRXJyb3IiICklPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvaGVhZGVyLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L2hlYWRlci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZmZDA2MQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L2hlYWRlci5qc3AKQEAgLTAsMCArMSBAQAorPHN0cm9uZz5UaGlzIGlzIHRoZSBoZWFkZXI8L3N0cm9uZz48aW1nIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vaW1hZ2VzL3N0cnV0cy1wb3dlci5naWYiIGFsaWduPSJyaWdodCIgYm9yZGVyPSIwIj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC9pbmRleC5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC9pbmRleC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU1OTY4ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L2luZGV4LmpzcApAQCAtMCwwICsxLDIxIEBACis8aDE+VGlsZXMgU2ltcGxlIFRlc3RzPC9oMT4KKzxQPiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICBUaGVzZSB0ZXN0cyBhbGxvdyBxdWljayBjaGVja2luZyBvZiAKK1RpbGVzIGJlaGF2aW9ycyBhbmQgVGlsZXMgaW5zdGFsYXRpb24uIDwvUD4KKzxQPkl0IGlzIHBvc3NpYmxlIHRvIHJ1biBlYWNoIHRlc3Qgc2VwYXJhdGVseSwgb3IgYWxsIGluIG9uZS4gSW4gdGhpcyBsYXRlciAKK2Nhc2UsIHRlc3QgcmVzdWx0cyBhbmQgdGVzdCBjb2RlcyBhcmUgZGlzcGxheWVkIGluIHRoZSBzYW1lIHBhZ2UuIFlvdSBjYW4gCitjb21wYXJlIHRoZSByZXN1bHRpbmcgcGFnZSB3aXRoIHRoZSBxdWljayBvdmVydmlldyBwYWdlIGZyb20gbWFpbiBzaXRlIHRvIGNoZWNrIAoraWYgYWxsIGlzIG9rLjwvUD4KKzxQPlRvIHJ1biB0ZXN0cywgZm9sbG93IHRoZSAiYWxsIGluIG9uZSIgbGluay4gSWYgdGhlcmUgaXMgYSBwcm9ibGVtLCB0cnkgCitlYWNoIHNlcGFyYXRlIHRlc3QgaW4gdHVybiB0byBsb2NhbGl6ZSB3aGljaCBvbmUgZmFpbC48L1A+Cis8VUw+CisgIDxMST48QSBocmVmPSJ0ZXN0QWxsLmpzcCI+QWxsIGluIG9uZTwvQT4gKG1haW4gY29kZSArIHRlc3QgcmVzdWx0cykgIAorICA8TEk+PEEgaHJlZj0idGVzdEJhc2ljLmpzcCI+YmFzaWMgdGVzdHM8L0E+KG5vIGRlZmluaXRpb25zKSAKKyAgPExJPjxBIGhyZWY9InRlc3RJZ25vcmUuanNwIj5UZXN0ICdpZ25vcmUnIGF0dHJpYnV0ZSwgYW5kIGJhc2ljIGVycm9ycyBwcm9jZXNzaW5nPC9BPiAKKyAgPExJPjxBIGhyZWY9InRlc3RMaXN0LmpzcCI+dGVzdCBsaXN0czwvQT4gCisgIDxMST48QSBocmVmPSJ0ZXN0RGVmaW5pdGlvbnMuanNwIj50ZXN0IGRlZmluaXRpb25zPC9BPiAKKyAgPExJPjxBIGhyZWY9InRlc3RSb2xlLmpzcCI+dGVzdCByb2xlIChXaXRoIFRvbWNhdCwgdXNlICd0b21jYXQnIGFzIHVzZXJpZCBhbmQgcGFzc3dvcmQpPC9BPiAKKyAgPExJPjxBIGhyZWY9InRlc3RTdHJ1dHNBY3Rpb24uanNwIj50ZXN0IHN0cnV0cyBhY3Rpb24gaW50ZWdyYXRpb24gYW5kIGJlaGF2aW9yPC9BPiAKKyAgPExJPjxBIGhyZWY9InRlc3RDb250cm9sbGVyLmpzcCI+dGVzdCB0aWxlIGNvbnRyb2xsZXIgY2FsbHM8L0E+IAorPC9MST48L1VMPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L2xheW91dC5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC9sYXlvdXQuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxOGNiZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC9sYXlvdXQuanNwCkBAIC0wLDAgKzEsMjAgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworCisKKzwlLS0KKyAgQSBzaW1wbGUgbGF5b3V0LgorICBGaXJzdCwgd2UgZ2V0IGNvbXBvbmVudC90ZW1wbGF0ZSBhdHRyaWJ1dGUgKHRpdGxlKSBhcyBhIFN0cmluZy4KKyAgTmV4dCwgd2UgaW5zZXJ0IGNvbXBvbmVudC90ZW1wbGF0ZSBhdHRyaWJ1dGUgKGhlYWRlciBhbmQgYm9keSkuCistLSU+Cis8dGFibGUgIGJvcmRlcj0iMiIgIHdpZHRoPSIzMDAiICBib3JkZXJjb2xvcj0iR3JheSI+Cis8dHI+Cis8dGQgIGJnY29sb3I9IkJsdWUiPjxzdHJvbmc+PHRpbGVzOmdldEFzU3RyaW5nIG5hbWU9InRpdGxlIi8+PC9zdHJvbmc+PC90ZD4KKzwvdHI+Cis8dHI+Cis8dGQ+PHRpbGVzOmluc2VydCBhdHRyaWJ1dGU9ImhlYWRlciIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjx0aWxlczppbnNlcnQgYXR0cmlidXRlPSJib2R5Ii8+PC90ZD4KKzwvdHI+Cis8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvbGF5b3V0VGVzdElnbm9yZS5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC9sYXlvdXRUZXN0SWdub3JlLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YWQyYWY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvbGF5b3V0VGVzdElnbm9yZS5qc3AKQEAgLTAsMCArMSwxOSBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCisKKworPCUtLQorICBMYXlvdXQgdG8gdGVzdCAnaWdub3JlJyBhdHRyaWJ1dGUuCistLSU+Cis8dGFibGUgIGJvcmRlcj0iMiIgIHdpZHRoPSIzMDAiICBib3JkZXJjb2xvcj0iR3JheSI+Cis8dHI+Cis8dGQgIGJnY29sb3I9IkJsdWUiPjxzdHJvbmc+PHRpbGVzOmdldEFzU3RyaW5nIG5hbWU9InRpdGxlIiBpZ25vcmU9ImZhbHNlIiAvPjwvc3Ryb25nPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjx0aWxlczppbnNlcnQgYXR0cmlidXRlPSJoZWFkZXIiIGlnbm9yZT0idHJ1ZSIvPjwvdGQ+Cis8L3RyPgorPHRyPgorPHRkPjx0aWxlczppbnNlcnQgYXR0cmlidXRlPSJib2R5IiBpZ25vcmU9InRydWUiLz4KKzwvdGQ+Cis8L3RyPgorPC90YWJsZT4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L21lbnUuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvbWVudS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI5YjcwZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L21lbnUuanNwCkBAIC0wLDAgKzEsMzMgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1sb2dpYyIgcHJlZml4PSJsb2dpYyIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1iZWFuIiBwcmVmaXg9ImJlYW4iICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+Cis8JUAgcGFnZSBpbXBvcnQ9ImphdmEudXRpbC5JdGVyYXRvciIgJT4KKworPCUtLSAKKy0tJT4KKworPCUtLSBQdXNoIGNvbXBvbmVudCBhdHRyaWJ1dGVzIGluIHBhZ2UgY29udGV4dCAtLSU+Cis8dGlsZXM6aW1wb3J0QXR0cmlidXRlIC8+CisKKzwlLS0gUHJlcGFyZSB0aGUgbGlua3MgbGlzdCB0byBiZSBpdGVyYXRlZCAtLSU+Cis8YmVhbjpkZWZpbmUgaWQ9ImxpbmtzIiBuYW1lPSJsaW5rcyIgdHlwZT0iamF2YS51dGlsLkxpc3QiIHNjb3BlPSJwYWdlIiAvPgorPCUgSXRlcmF0b3IgaSA9IGxpbmtzLml0ZXJhdG9yKCk7ICU+CisKKzwlLS0gSXRlcmF0ZSBvbiBsaXN0IG9mIGl0ZW1zCisgICAgLS0lPgorPHRhYmxlPgorPGxvZ2ljOml0ZXJhdGUgaWQ9Iml0ZW0iIG5hbWU9Iml0ZW1zIiA+CisKKzx0cj4KKyAgPHRkIHdpZHRoPSIxMCIgdmFsaWduPSJ0b3AiID48L3RkPgorICA8dGQgdmFsaWduPSJ0b3AiICA+CisJICA8JSAvLyBDb21wdXRlIGxpbmsgdmFsdWUKKwkgICAgU3RyaW5nIGxpbmsgPSBpLm5leHQoKS50b1N0cmluZygpOworCSAgICBpZihsaW5rLnN0YXJ0c1dpdGgoIi8iKSApCisJCSAgbGluayA9IHJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSArIGxpbms7CisJICAlPgorCSAgPGZvbnQgc2l6ZT0iLTEiPjxhIGhyZWY9IjwlPWxpbmslPiI+PGJlYW46d3JpdGUgbmFtZT0iaXRlbSIgZmlsdGVyPSJmYWxzZSIvPjwvYT48L2ZvbnQ+CisgIDwvdGQ+Cis8L3RyPgorPC9sb2dpYzppdGVyYXRlPgorPC90YWJsZT4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L3F1aWNrT3ZlcnZpZXcuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvcXVpY2tPdmVydmlldy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjY1NDhiYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L3F1aWNrT3ZlcnZpZXcuanNwCkBAIC0wLDAgKzEsNCBAQAorPCVAIHBhZ2UgbGFuZ3VhZ2U9ImphdmEiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgZGVmaW5pdGlvbj0idGVzdC5ob21lLnBhZ2UiIGZsdXNoPSJ0cnVlIiAvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3Qvc2hvd1JlcXVlc3RVcmkuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3Qvc2hvd1JlcXVlc3RVcmkuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3ZjYyMzEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC9zaG93UmVxdWVzdFVyaS5qc3AKQEAgLTAsMCArMSw0IEBACis8ZGl2IGFsaWduPSJjZW50ZXIiPjxiPjxpPlJlcXVlc3RVcmk6IDwlPXJlcXVlc3QuZ2V0UmVxdWVzdFVSSSgpJT4gPC9pPjwvYj4KKzxiPjxpPkNvbnRleHRQYXRoOiA8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPiA8L2k+PC9iPgorCis8L2Rpdj4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L3Rlc3RBbGwuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvdGVzdEFsbC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM3ZjRjNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L3Rlc3RBbGwuanNwCkBAIC0wLDAgKzEsMzUgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworCitJbiB0aGUgcmlnaHQgY29sdW1uIHlvdSBjYW4gZmluZCBzb21lIGJhc2ljIGV4YW1wbGVzLCAKK3doaWxlIGluIHRoZSBsZWZ0IGNvbHVtbiB5b3UgZmluZCB0aGUgY29ycmVzcG9uZGluZyBvdXRwdXQgcmVzdWx0LgorPHRhYmxlIGNlbGxzcGFjaW5nPTQgY2VsbHBhZGRpbmc9IjIiIGJvcmRlcj0iNCIgPgorPHRyPgorPHRkPjxzdHJvbmc+T3V0cHV0IFJlc3VsdDwvc3Ryb25nPjwvdGQ+Cis8dGQ+PHN0cm9uZz5Tb3VyY2VzPC9zdHJvbmc+PC90ZD4KKzwvdHI+Cis8dHI+CisgICAgPHRkIHZhbGlnbj0idG9wIj48dGlsZXM6aW5zZXJ0IHBhZ2U9InRlc3RCYXNpYy5qc3AiIC8+PC90ZD4KKyAgICA8dGQgdmFsaWduPSJ0b3AiPgorCSAgPHRpbGVzOmluc2VydCBwYWdlPSIvY29tbW9uL3ZpZXdTcmNCb2R5LmpzcCI+CisJICAgIDx0aWxlczpwdXQgbmFtZT0ic3JjUGF0aCIgdmFsdWU9Ii90ZXN0L3Rlc3RCYXNpYy5qc3AiIC8+CisJICA8L3RpbGVzOmluc2VydD4KKwk8L3RkPgorPC90cj4KKzx0cj4KKyAgICA8dGQgdmFsaWduPSJ0b3AiPjx0aWxlczppbnNlcnQgcGFnZT0idGVzdExpc3QuanNwIiAvPjwvdGQ+CisgICAgPHRkIHZhbGlnbj0idG9wIj4KKwkgIDx0aWxlczppbnNlcnQgcGFnZT0iL2NvbW1vbi92aWV3U3JjQm9keS5qc3AiPgorCSAgICA8dGlsZXM6cHV0IG5hbWU9InNyY1BhdGgiIHZhbHVlPSIvdGVzdC90ZXN0TGlzdC5qc3AiIC8+CisJICA8L3RpbGVzOmluc2VydD4KKwk8L3RkPgorPC90cj4KKzx0cj4KKyAgICA8dGQgdmFsaWduPSJ0b3AiPjx0aWxlczppbnNlcnQgcGFnZT0idGVzdERlZmluaXRpb25zLmpzcCIgLz48L3RkPgorICAgIDx0ZCB2YWxpZ249InRvcCI+CisJICA8dGlsZXM6aW5zZXJ0IHBhZ2U9Ii9jb21tb24vdmlld1NyY0JvZHkuanNwIj4KKwkgICAgPHRpbGVzOnB1dCBuYW1lPSJzcmNQYXRoIiB2YWx1ZT0iL3Rlc3QvdGVzdERlZmluaXRpb25zLmpzcCIgLz4KKwkgIDwvdGlsZXM6aW5zZXJ0PgorCTwvdGQ+Cis8L3RyPgorPC90YWJsZT4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L3Rlc3RCYWNrd2FyZC5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC90ZXN0QmFja3dhcmQuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyN2M2NDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC90ZXN0QmFja3dhcmQuanNwCkBAIC0wLDAgKzEsMTUgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPCUtLSBUZXN0IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKy0tJT4KKworPGhyPgorPHN0cm9uZz5DaGVjayBzeW5vbnltcyBmb3IgaW5jbHVkZSBhbmQgcHV0Ljwvc3Ryb25nPgorPGJyPgorPHRpbGVzOmluc2VydCBjb21wb25lbnQ9ImxheW91dC5qc3AiPgorICA8dGlsZXM6cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRlc3Qgd2l0aCBhIHRhZyBib2R5IiBkaXJlY3Q9InRydWUiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iaGVhZGVyIiB2YWx1ZT0iaGVhZGVyLmpzcCI+CisgICAgPHN0cm9uZz5UaGlzIGlzIGEgaGVhZGVyPC9zdHJvbmc+CisgIDwvdGlsZXM6cHV0PgorICA8dGlsZXM6cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9ImJvZHkuanNwIiBkaXJlY3Q9ImZhbHNlIiAvPgorPC90aWxlczppbnNlcnQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC90ZXN0QmFzaWMuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvdGVzdEJhc2ljLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTFiMmEyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvdGVzdEJhc2ljLmpzcApAQCAtMCwwICsxLDYwIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzwlLS0gVGVzdCB0YWdzIGJhc2ljIGJlaGF2aW9ycyAKKy0tJT4KKzxocj4KKzxzdHJvbmc+QmFzaWMgdGVtcGxhdGUgdXNhZ2U8L3N0cm9uZz4KKzxicj4KKzx0aWxlczppbnNlcnQgdGVtcGxhdGU9ImxheW91dC5qc3AiPgorICA8dGlsZXM6cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRlc3Qgd2l0aCBkZWZhdWx0IG5vIHR5cGVzIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9ImhlYWRlciIgdmFsdWU9ImhlYWRlci5qc3AiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iYm9keS5qc3AiIC8+Cis8L3RpbGVzOmluc2VydD4KKworPGhyPgorPHN0cm9uZz5TcGVjaWZ5IGF0dHJpYnV0ZSB0eXBlczwvc3Ryb25nPgorPGJyPgorPHRpbGVzOmluc2VydCB0ZW1wbGF0ZT0ibGF5b3V0LmpzcCI+CisgIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iVGVzdCB3aXRoIHNwZWNpZmllZCB0eXBlcyIgICB0eXBlPSJzdHJpbmciIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iaGVhZGVyIiB2YWx1ZT0iaGVhZGVyLmpzcCIgdHlwZT0icGFnZSIgICAvPgorICA8dGlsZXM6cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9ImJvZHkuanNwIiAgIHR5cGU9InBhZ2UiICAgLz4KKzwvdGlsZXM6aW5zZXJ0PgorCis8aHI+Cis8c3Ryb25nPlNldCBhdHRyaWJ1dGUgdmFsdWUgd2l0aCB0YWcgYm9keTwvc3Ryb25nPgorPGJyPgorPHRpbGVzOmluc2VydCB0ZW1wbGF0ZT0ibGF5b3V0LmpzcCI+CisgIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iVGVzdCB3aXRoIGEgdGFnIGJvZHkiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iaGVhZGVyIiB0eXBlPSJzdHJpbmciPgorICAgIDxzdHJvbmc+VGhpcyBoZWFkZXIgaXMgaW5zZXJ0ZWQgYXMgYm9keSBvZiB0YWc8L3N0cm9uZz4KKyAgPC90aWxlczpwdXQ+CisgIDx0aWxlczpwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iYm9keS5qc3AiLz4KKzwvdGlsZXM6aW5zZXJ0PgorCis8aHI+Cis8c3Ryb25nPlVzZSBvZiBkZWZpbml0aW9uPC9zdHJvbmc+Cis8YnI+Cis8dGlsZXM6ZGVmaW5pdGlvbiBpZD0idGVtcGxhdGVEZWZpbml0aW9uIiB0ZW1wbGF0ZT0ibGF5b3V0LmpzcCI+CisgIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iVXNlIG9mIGRlZmluaXRpb24iIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iaGVhZGVyIiB2YWx1ZT0iaGVhZGVyLmpzcCIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJib2R5IiAgIHZhbHVlPSJib2R5LmpzcCIgICAvPgorPC90aWxlczpkZWZpbml0aW9uPgorPHRpbGVzOmluc2VydCBiZWFuTmFtZT0idGVtcGxhdGVEZWZpbml0aW9uIiAvPgorCis8aHI+Cis8c3Ryb25nPlVzZSBvZiBkZWZpbml0aW9uLCBvdmVybG9hZCBvZiBwYXJhbWV0ZXJzIDwvc3Ryb25nPlRpdGxlIHBhcmFtZXRlcgorZnJvbSBwcmV2aW91cyBkZWZpbml0aW9uIGlzIG92ZXJsb2FkZWQKKzxicj4KKzx0aWxlczppbnNlcnQgYmVhbk5hbWU9InRlbXBsYXRlRGVmaW5pdGlvbiIgPgorICA8dGlsZXM6cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlVzZSBvZiBkZWZpbml0aW9uLCBvdmVybG9hZCBvZiBwYXJhbWV0ZXJzIiAgIHR5cGU9InN0cmluZyIgLz4KKzwvdGlsZXM6aW5zZXJ0PgorCis8aHI+Cis8c3Ryb25nPlRlc3QgaWdub3JlIDogYm9keSBpc24ndCBkZWZpbmVkIDwvc3Ryb25nPihXZSB1c2UgYW5vdGhlciBsYXlvdXQpCis8YnI+Cis8dGlsZXM6aW5zZXJ0IHRlbXBsYXRlPSJsYXlvdXRUZXN0SWdub3JlLmpzcCI+CisgIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iVGVzdCBpZ25vcmUgOiBib2R5IGlzbid0IGRlZmluZWQiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iaGVhZGVyIiB2YWx1ZT0iaGVhZGVyLmpzcCIgLz4KKzwvdGlsZXM6aW5zZXJ0PgorCisgCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC90ZXN0Q29udHJvbGxlci5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC90ZXN0Q29udHJvbGxlci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTgzNzg3ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L3Rlc3RDb250cm9sbGVyLmpzcApAQCAtMCwwICsxLDMwIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzwlLS0gVGVzdCB0aWxlcyBDb250cm9sbGVyIGNhbGwgCistLSU+Cis8aHI+Cis8c3Ryb25nPlRlc3QgY29udHJvbGxlciBzZXQgaW4gZGVmaW5pdGlvbiBmcm9tIGNvbmZpZyBmaWxlPC9zdHJvbmc+Cis8YnI+Cis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249InRlc3Quc3RydXRzLmNvbnRyb2xsZXIiID4KKzwvdGlsZXM6aW5zZXJ0PgorCis8aHI+Cis8c3Ryb25nPlRlc3QgY29udHJvbGxlciBzZXQgaW4gaW5zZXJ0PC9zdHJvbmc+Cis8YnI+Cis8dGlsZXM6aW5zZXJ0IHRlbXBsYXRlPSJsYXlvdXQuanNwIiAKKyAgICAgICAgICAgY29udHJvbGxlckNsYXNzPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMudGVzdC5UZXN0VGlsZUNvbnRyb2xsZXIiID4KKyAgPHRpbGVzOnB1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJUZXN0IGNvbnRyb2xsZXIgc2V0IGluIGluc2VydCIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJoZWFkZXIiIHZhbHVlPSJoZWFkZXIuanNwIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9ImJvZHkuanNwIiAvPgorPC90aWxlczppbnNlcnQ+CisKKzxocj4KKzxzdHJvbmc+VGVzdCBjb250cm9sbGVyIHNldCBpbiBpbnNlcnQsIGFuZCBhdHRyaWJ1dGUgZnJvbSBkZWZpbml0aW9uPC9zdHJvbmc+Cis8YnI+Cis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249InRlc3QubGF5b3V0LnRlc3QxIiAKKyAgICAgICAgICAgY29udHJvbGxlckNsYXNzPSJvcmcuYXBhY2hlLnN0cnV0cy53ZWJhcHAudGlsZXMudGVzdC5UZXN0VGlsZUNvbnRyb2xsZXIiID4KKyAgPHRpbGVzOnB1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJUZXN0IGNvbnRyb2xsZXIgc2V0IGluIGluc2VydCwgYW5kIGF0dHJpYnV0ZSBmcm9tIGRlZmluaXRpb24iIC8+Cis8L3RpbGVzOmluc2VydD4KKworCisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L3Rlc3REZWZpbml0aW9ucy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC90ZXN0RGVmaW5pdGlvbnMuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmODQ5NzgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC90ZXN0RGVmaW5pdGlvbnMuanNwCkBAIC0wLDAgKzEsMzYgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPCUtLSBUZXN0IHRlbXBsYXRlIGRlZmluaXRpb25zIChmcm9tIGZhY3RvcnkpIAorLS0lPgorPGhyPgorPHN0cm9uZz5JbnNlcnQgZGVmaW5pdGlvbiBkZWZpbmVkIGRpcmVjdGx5IGluIGpzcCBwYWdlPC9zdHJvbmc+Cis8dGlsZXM6ZGVmaW5pdGlvbiBpZD0iZGVmaW5pdGlvbiIgdGVtcGxhdGU9Ii90ZXN0L2xheW91dC5qc3AiID4KKyAgPHRpbGVzOnB1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJUZXN0IGRlZmluaXRpb24gZGVmaW5lZCBpbiBqc3AgcGFnZSIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJoZWFkZXIiIHZhbHVlPSJoZWFkZXIuanNwIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9ImJvZHkuanNwIiAvPgorPC90aWxlczpkZWZpbml0aW9uPgorCis8YnI+Cis8dGlsZXM6aW5zZXJ0IGJlYW5OYW1lPSJkZWZpbml0aW9uIi8+CisKKzxocj4KKzxzdHJvbmc+SW5zZXJ0IGRlZmluaXRpb24gZGVmaW5lZCBpbiBmYWN0b3J5PC9zdHJvbmc+Cis8YnI+Cis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249InRlc3QubGF5b3V0LnRlc3QxIi8+CisKKzxocj4KKzxzdHJvbmc+SW5zZXJ0IGRlZmluaXRpb24gZGVmaW5lZCBpbiBmYWN0b3J5PC9zdHJvbmc+Cis8YnI+Cis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249InRlc3QubGF5b3V0LnRlc3QyIi8+CisKKzxocj4KKzxzdHJvbmc+SW5zZXJ0IGRlZmluaXRpb24gZGVmaW5lZCBpbiBmYWN0b3J5PC9zdHJvbmc+Cis8YnI+Cis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249InRlc3QubGF5b3V0LnRlc3QzIi8+CisKKzxocj4KKzxzdHJvbmc+SW5zZXJ0IGRlZmluaXRpb24gZGVmaW5lZCBpbiBmYWN0b3J5IDogT3ZlcmxvYWQgdGl0bGUgYXR0cmlidXRlPC9zdHJvbmc+Cis8YnI+Cis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249InRlc3QubGF5b3V0LnRlc3QzIj4KKyAgPHRpbGVzOnB1dCBuYW1lPSJ0aXRsZSIgdmFsdWU9IlRlc3QgZGVmaW5pdGlvbiA6IG92ZXJsb2FkIGF0dHJpYnV0ZSAndGl0bGUnIiAvPgorPC90aWxlczppbnNlcnQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC90ZXN0SWdub3JlLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L3Rlc3RJZ25vcmUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyNzkzNjkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC90ZXN0SWdub3JlLmpzcApAQCAtMCwwICsxLDQyIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzwlLS0gVGVzdCAnaWdub3JlJyBhdHRyaWJ1dGUgOiAKKyAgSW5zZXJ0IGNvbXBvbmVudHMvdGVtcGxhdGVzIHdpdGggdW5kZWZpbmVkIGF0dHJpYnV0ZXMsIG9yIGJhZCB1cmxzLgorICBVbmRlZmluZWQgbXVzdCBiZSBzcGtpcHBlZCwgd2hpbGUgZmFsc2UgdXJscyBtdXN0IG91dHB1dCBleGNlcHRpb24uCistLSU+Cis8aHI+Cis8c3Ryb25nPlRlc3QgaWdub3JlIDogYm9keSBpc24ndCBkZWZpbmVkPC9zdHJvbmc+Cis8YnI+Cis8dGlsZXM6aW5zZXJ0IHRlbXBsYXRlPSJsYXlvdXRUZXN0SWdub3JlLmpzcCI+CisgIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iVGVzdCBpZ25vcmUgOiBib2R5IGlzbid0IGRlZmluZWQiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iaGVhZGVyIiB2YWx1ZT0iaGVhZGVyLmpzcCIgLz4KKzwvdGlsZXM6aW5zZXJ0PgorCis8aHI+Cis8c3Ryb25nPlRlc3QgaWdub3JlIDogYmFkIGJvZHkgZGVmaW5pdGlvbiBuYW1lIChleGNlcHRpb24gbXVzdCBiZSBzaG93bik8L3N0cm9uZz4KKzxicj4KKzx0aWxlczppbnNlcnQgdGVtcGxhdGU9ImxheW91dFRlc3RJZ25vcmUuanNwIj4KKyAgPHRpbGVzOnB1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJUZXN0IGlnbm9yZSA6IGJhZCBib2R5IGRlZmluaXRpb24gbmFtZSAoZXhjZXB0aW9uIG11c3QgYmUgc2hvd24pIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9ImhlYWRlciIgdmFsdWU9ImhlYWRlci5qc3AiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iYmFkRGVmaW5pdGlvbk5hbWUiIHR5cGU9ImRlZmluaXRpb24iIC8+Cis8L3RpbGVzOmluc2VydD4KKworPGhyPgorPHN0cm9uZz5UZXN0IGlnbm9yZSA6IERlZmluaXRpb24gbm90IGZvdW5kIChubyBlcnJvcnMsIG5vIGluc2VydGlvbik8L3N0cm9uZz4KKzxicj4KKzx0aWxlczpkZWZpbml0aW9uIGlkPSJ0ZW1wbGF0ZURlZmluaXRpb24iIHRlbXBsYXRlPSJsYXlvdXQuanNwIj4KKyAgPHRpbGVzOnB1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJUZXN0IGlnbm9yZSA6IERlZmluaXRpb24gbm90IGZvdW5kIChubyBlcnJvcnMsIG5vIGluc2VydGlvbikiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iaGVhZGVyIiB2YWx1ZT0iaGVhZGVyLmpzcCIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJib2R5IiAgIHZhbHVlPSJib2R5LmpzcCIgICAvPgorPC90aWxlczpkZWZpbml0aW9uPgorPHRpbGVzOmluc2VydCBiZWFuTmFtZT0iYmFkVGVtcGxhdGVEZWZpbml0aW9uTmFtZSIgaWdub3JlPSJ0cnVlIi8+CisKKzxocj4KKzxzdHJvbmc+VGVzdCBpZ25vcmUgOiBiYWQgYm9keSB1cmxzIChleGNlcHRpb24gbXVzdCBiZSBzaG93bik8L3N0cm9uZz4KKzxicj4KKzx0aWxlczppbnNlcnQgdGVtcGxhdGU9ImxheW91dFRlc3RJZ25vcmUuanNwIj4KKyAgPHRpbGVzOnB1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJUZXN0IGlnbm9yZSA6IGJhZCBib2R5IHVybHMgKGV4Y2VwdGlvbiBtdXN0IGJlIHNob3duKSIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJoZWFkZXIiIHZhbHVlPSJoZWFkZXIuanNwIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9ImJvZHkyLmpzcCIvPgorPC90aWxlczppbnNlcnQ+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L3Rlc3RJbmNsdWRlLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L3Rlc3RJbmNsdWRlLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjU5MGU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvdGVzdEluY2x1ZGUuanNwCkBAIC0wLDAgKzEsNTUgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1sb2dpYyIgcHJlZml4PSJsb2dpYyIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPCUtLSBUZXN0IGpzcCBpbmNsdWRlIGluIGEgQm9keVRhZyAoPGl0ZXJhdGU+KS4KKy0tJT4KKzwlCitqYXZhLnV0aWwuTGlzdCBsaXN0ID0gbmV3IGphdmEudXRpbC5BcnJheUxpc3QoKTsKK2xpc3QuYWRkKCAiaGVhZGVyLmpzcCIgKTsKK2xpc3QuYWRkKCAiYm9keS5qc3AiICk7CitpbnQgcG9zaXRpb249MDsKKyU+CisKKyA8aHI+CisgCisgPHN0cm9uZz4xIHJlcXVlc3QuZ2V0UmVxdWVzdERpc3BhdGNoZXIodXJpKS5pbmNsdWRlKHJlcXVlc3QsIHJlc3BvbnNlKTwvc3Ryb25nPgorCisgPGxvZ2ljOml0ZXJhdGUgaWQ9InVyaSIgY29sbGVjdGlvbj0iPCU9bGlzdCU+IiB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIiA+CisgIDxicj4KKyAgaW5jbHVkZSBudW1iZXIgPCU9IHBvc2l0aW9uKysgJT4KKyAgPGJyPgorICAgPCUgLy8gaW5zZXJ0IHRoZSBpZAorICAgcmVzcG9uc2UuZmx1c2hCdWZmZXIoKTsKKyAgIHJlc3BvbnNlLmdldFdyaXRlcigpLmZsdXNoKCk7CisgICAvL291dC5mbHVzaCgpOworICAgcmVxdWVzdC5nZXRSZXF1ZXN0RGlzcGF0Y2hlcih1cmkpLmluY2x1ZGUocmVxdWVzdCwgcmVzcG9uc2UpOworICAgcmVzcG9uc2UuZ2V0V3JpdGVyKCkuZmx1c2goKTsKKyAgIHJlc3BvbnNlLmZsdXNoQnVmZmVyKCk7CisgICAlPgorIDwvbG9naWM6aXRlcmF0ZT4KKyAKKzxocj4KKzxzdHJvbmc+cGFnZUNvbnRleHQuaW5jbHVkZShwYWdlKTwvc3Ryb25nPgorCisgPGxvZ2ljOml0ZXJhdGUgaWQ9InVyaSIgY29sbGVjdGlvbj0iPCU9bGlzdCU+IiB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIiA+CisgIDxicj4KKyAgaW5jbHVkZSBudW1iZXIgPCU9IHBvc2l0aW9uKysgJT4KKyAgPGJyPgorICAgPCUgLy8gaW5zZXJ0IHRoZSBpZAorICAgcGFnZUNvbnRleHQuaW5jbHVkZSh1cmkpOworICAgJT4KKyA8L2xvZ2ljOml0ZXJhdGU+PGhyPgorIAorPGhyPgorPHN0cm9uZz50aWxlczppbnNlcnQ8L3N0cm9uZz4KKworIDxsb2dpYzppdGVyYXRlIGlkPSJ1cmkiIGNvbGxlY3Rpb249IjwlPWxpc3QlPiIgdHlwZT0iamF2YS5sYW5nLlN0cmluZyIgPgorICA8YnI+CisgIGluY2x1ZGUgbnVtYmVyIDwlPSBwb3NpdGlvbisrICU+CisgIDxicj4KKyAgIDx0aWxlczppbnNlcnQgZGVmaW5pdGlvbj0idGVzdC5sYXlvdXQudGVzdDEiIGZsdXNoPSJmYWxzZSIvPgorIDwvbG9naWM6aXRlcmF0ZT4KKworPHN0cm9uZz5Eb25lPC9zdHJvbmc+CisKKyAKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L3Rlc3RMaXN0LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L3Rlc3RMaXN0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNmExMjI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvdGVzdExpc3QuanNwCkBAIC0wLDAgKzEsMjEgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPHN0cm9uZz5FeGFtcGxlIG9mIGxpc3QgdXNhZ2U8L3N0cm9uZz4KKzwlLS0gSW5zZXJ0IGEgbWVudSBjb21wb25lbnQuCisgIE1lbnUgY29tcG9uZW50IHJlcXVpcmUgdHdvIGxpc3RzIDogb25lIG9mIGl0ZW1zLCBhbmQgb25lIG9mIGxpbmtzLgorLS0lPgorPHRpbGVzOmluc2VydCBjb21wb25lbnQ9Im1lbnUuanNwIiA+CisgIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiIHZhbHVlPSJUZXN0IG1lbnUiIC8+CisgIDx0aWxlczpwdXRMaXN0IG5hbWU9Iml0ZW1zIj4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSJob21lIiAvPgorICAgIDx0aWxlczphZGQ+CisJICA8aW1nIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vaW1hZ2VzL3N0cnV0cy1wb3dlci5naWYiCisJICAgICAgIGFsaWduPSJyaWdodCIgYm9yZGVyPSIwIj48L3RpbGVzOmFkZD4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSJkb2N1bWVudGF0aW9uIi8+CisgIDwvdGlsZXM6cHV0TGlzdD4KKyAgPHRpbGVzOnB1dExpc3QgbmFtZT0ibGlua3MiPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii9pbmRleC5qc3AiLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvLi4vc3RydXRzLWRvY3VtZW50YXRpb24iLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvLi4vY29tcHMtZG9jIiB0eXBlPSJzdHJpbmciIC8+CisgIDwvdGlsZXM6cHV0TGlzdD4KKzwvdGlsZXM6aW5zZXJ0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvdGVzdFJvbGUuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvdGVzdFJvbGUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyOTBlNzAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdGVzdC90ZXN0Um9sZS5qc3AKQEAgLTAsMCArMSwyMiBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8JS0tIFRlc3QgdGFncyBiYXNpYyBiZWhhdmlvcnMgCistLSU+Cis8aHI+Cis8c3Ryb25nPlNob3cgQ29tcG9uZW50IGlmICd0b21jYXQnIHJvbGUgaXMgc2V0PC9zdHJvbmc+Cis8YnI+Cis8dGlsZXM6aW5zZXJ0IHRlbXBsYXRlPSJsYXlvdXQuanNwIiByb2xlPSJ0b21jYXQiPgorICA8dGlsZXM6cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRvbWNhdCByb2xlIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9ImhlYWRlciIgdmFsdWU9ImhlYWRlci5qc3AiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iYm9keS5qc3AiIC8+Cis8L3RpbGVzOmluc2VydD4KKworPGhyPgorPHN0cm9uZz5TaG93IENvbXBvbmVudCBpZiAncm9sZTEnIHJvbGUgaXMgc2V0PC9zdHJvbmc+Cis8YnI+Cis8dGlsZXM6aW5zZXJ0IHRlbXBsYXRlPSJsYXlvdXQuanNwIiByb2xlPSJyb2xlMSI+CisgIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0icm9sZTEgcm9sZSIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJoZWFkZXIiIHZhbHVlPSJoZWFkZXIuanNwIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9ImJvZHkuanNwIiAvPgorPC90aWxlczppbnNlcnQ+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L3Rlc3RTdHJ1dHNBY3Rpb24uanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3Rlc3QvdGVzdFN0cnV0c0FjdGlvbi5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA5NTYyZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90ZXN0L3Rlc3RTdHJ1dHNBY3Rpb24uanNwCkBAIC0wLDAgKzEsMzYgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPCUtLSBUZXN0IHRpbGVzIGFuZCBzdHJ1dHMgYWN0aW9uIGludGVncmF0aW9uIChyZXF1aXJlIGZhY3RvcnkpIAorLS0lPgorPGhyPgorPHN0cm9uZz5UZXN0IGRlZmluaXRpb24gc2V0IGluIGFjdGlvbiwgYW5kIGFjdGlvbiBmb3J3YXJkIHRvIGFub3RoZXIgZGVmaW5pdGlvbjwvc3Ryb25nPgorPGJyPgorPHRpbGVzOmluc2VydCBwYWdlPSIvdGVzdC90ZXN0QWN0aW9uLmRvIiA+CisgIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiICAgICAgIHZhbHVlPSJUZXN0IGRlZmluaXRpb24gc2V0IGluIGFjdGlvbiwgYW5kIGFjdGlvbiBmb3J3YXJkIHRvIGFub3RoZXIgZGVmaW5pdGlvbi4gVGl0bGUgaXMgb3ZlcmxvYWRlZCBmcm9tIGluc2VydCIgLz4KKyAgICA8JS0tIGhlYWRlciBhbmQgYm9keSB2YWx1ZXMgY29tZSBmcm9tIGRlZmluaXRpb24gdXNlZCBpbiBhY3Rpb24ncyBmb3J3YXJkIC0tJT4KKyAgICA8JS0tIG5hbWUgb2YgZGVmaW5pdGlvbiB0byB1c2UgaW4gYWN0aW9uIC0tJT4KKyAgPHRpbGVzOnB1dCBuYW1lPSJzZXQtZGVmaW5pdGlvbiIgICB2YWx1ZT0idGVzdC5sYXlvdXQudGVzdDEiIC8+Cis8L3RpbGVzOmluc2VydD4KKworPGhyPgorPHN0cm9uZz5UZXN0IG92ZXJsb2FkIHBhcmFtZXRlciBpbiBhY3Rpb248L3N0cm9uZz4KKzxicj4KKzx0aWxlczppbnNlcnQgcGFnZT0iL3Rlc3QvdGVzdEFjdGlvbi5kbyIgPgorICA8dGlsZXM6cHV0IG5hbWU9InRpdGxlIiAgICAgICAgICAgICAgICAgdmFsdWU9IlRlc3Qgb3ZlcmxvYWQgcGFyYW1ldGVyIGluIGFjdGlvbiIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJoZWFkZXIiICAgICAgICAgICAgICAgIHZhbHVlPSJoZWFkZXIuanNwIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9ImJvZHkiICAgICAgICAgICAgICAgICAgdmFsdWU9ImJvZHkuanNwIiAvPgorICAgIDwlLS0gbmFtZSBhbmQgdmFsdWUgb2YgYXR0cmlidXRlIHRvIHNldCBpbiBhY3Rpb24gLS0lPgorICA8dGlsZXM6cHV0IG5hbWU9InNldC1hdHRyaWJ1dGUiICAgICAgICAgdmFsdWU9InRpdGxlIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9InNldC1hdHRyaWJ1dGUtdmFsdWUiICAgdmFsdWU9IlRlc3Qgb3ZlcmxvYWQgcGFyYW1ldGVyIGluIGFjdGlvbiA6IE92ZXJsb2FkZWQgdGl0bGUiIC8+Cis8L3RpbGVzOmluc2VydD4KKworPGhyPgorPHN0cm9uZz5UZXN0IGRlZmluaXRpb24gc2V0IGluIGFjdGlvbiwgYW5kIGFjdGlvbiBmb3J3YXJkIGRpcmVjdGx5IHRvIGpzcDwvc3Ryb25nPgorPGJyPgorPHRpbGVzOmluc2VydCBwYWdlPSIvdGVzdC90ZXN0QWN0aW9uRm9yd2FyZEpzcC5kbyIgPgorICA8dGlsZXM6cHV0IG5hbWU9InRpdGxlIiAgICAgICAgICAgIHZhbHVlPSJUZXN0IGRlZmluaXRpb24gc2V0IGluIGFjdGlvbiwgYW5kIGFjdGlvbiBmb3J3YXJkIGRpcmVjdGx5IHRvIGpzcCIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJoZWFkZXIiICAgICAgICAgICB2YWx1ZT0iaGVhZGVyLmpzcCIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJib2R5IiAgICAgICAgICAgICB2YWx1ZT0iYm9keS5qc3AiIC8+Cis8L3RpbGVzOmluc2VydD4KKworCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvYmFzaWMvaGVsbG9Cb2R5LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9iYXNpYy9oZWxsb0JvZHkuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjNzFmZmQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvYmFzaWMvaGVsbG9Cb2R5LmpzcApAQCAtMCwwICsxIEBACis8ZGl2IGFsaWduPSJjZW50ZXIiPjxmb250IHNpemU9IisxIj48Yj5IZWxsbyB0aGUgV29ybGQ8L2I+PC9mb250PjwvZGl2PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9iYXNpYy9tZW51LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9iYXNpYy9tZW51LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGMwNWJiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2Jhc2ljL21lbnUuanNwCkBAIC0wLDAgKzEsMjIgQEAKKzx0YWJsZT4KKzx0ciBiZ2NvbG9yPSJCbHVlIj4KKyAgPHRkPgorICAgIE1lbnUKKyAgPC90ZD4KKzwvdHI+Cis8dHI+CisgIDx0ZCB3aWR0aD0iMTIwIiB2YWxpZ249InRvcCI+CisgICAgPGZvbnQgc2l6ZT0iLTEiPjxhIGhyZWY9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L3R1dG9yaWFsL2luZGV4LmpzcCI+SG9tZTwvYT48L2ZvbnQ+CisgIDwvdGQ+Cis8L3RyPgorPHRyPgorICA8dGQgd2lkdGg9IjEyMCIgdmFsaWduPSJ0b3AiPgorICAgIDxmb250IHNpemU9Ii0xIj5JdGVtIDI8L2E+PC9mb250PgorICA8L3RkPgorPC90cj4KKzx0cj4KKyAgPHRkIHdpZHRoPSIxMjAiIHZhbGlnbj0idG9wIj4KKyAgICA8Zm9udCBzaXplPSItMSI+SXRlbSAzPC9hPjwvZm9udD4KKyAgPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2Jhc2ljL215RnJhbWVzZXRMYXlvdXQuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2Jhc2ljL215RnJhbWVzZXRMYXlvdXQuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwNGNiNTEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvYmFzaWMvbXlGcmFtZXNldExheW91dC5qc3AKQEAgLTAsMCArMSwxOSBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8JS0tIEZyYW1lc2V0IExheW91dCBjb21wb25lbnQgCisgIHBhcmFtZXRlcnMgOiB0aXRsZSwgaGVhZGVyLCBtZW51LCBib2R5LCBmb290ZXIgCistLSU+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPjx0aWxlczpnZXQgbmFtZT0idGl0bGUiLz48L3RpdGxlPgorPC9oZWFkPgorCis8ZnJhbWVzZXQgcm93cz0iNzMsICosIDczIj4KKyAgPGZyYW1lIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT48dGlsZXM6Z2V0IG5hbWU9ImhlYWRlciIgLz4iIG5hbWU9ImhlYWRlciIgPgorICA8ZnJhbWUgc3JjPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPjx0aWxlczpnZXQgbmFtZT0iYm9keSIgLz4iIG5hbWU9ImJvZHkiID4KKyAgPGZyYW1lIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT48dGlsZXM6Z2V0IG5hbWU9ImZvb3RlciIgLz4iIG5hbWU9ImZvb3RlciIgPgorPC9mcmFtZXNldD4KKworCis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvYmFzaWMvbXlMYXlvdXQuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2Jhc2ljL215TGF5b3V0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Yjc5MWMzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2Jhc2ljL215TGF5b3V0LmpzcApAQCAtMCwwICsxLDI2IEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzwlLS0gTGF5b3V0IGNvbXBvbmVudCAKKyAgcGFyYW1ldGVycyA6IHRpdGxlLCBoZWFkZXIsIG1lbnUsIGJvZHksIGZvb3RlciAKKy0tJT4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+PHRpbGVzOmdldEFzU3RyaW5nIG5hbWU9InRpdGxlIi8+PC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8VEFCTEUgd2lkdGg9IjEwMCUiPgorICAKKyAgPFRSPgorICAgIDxURCBjb2xzcGFuPSIyIj48dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0iaGVhZGVyIiAvPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCB3aWR0aD0iMTIwIj48dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0ibWVudSIgLz48L1REPgorICAgIDxURD48dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0iYm9keSIgLz48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY29sc3Bhbj0iMiI+PHRpbGVzOmluc2VydCBhdHRyaWJ1dGU9ImZvb3RlciIgLz48L1REPgorICA8L1RSPgorPC9UQUJMRT4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2Jhc2ljRnJhbWVzZXRQYWdlLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9iYXNpY0ZyYW1lc2V0UGFnZS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI3ZWVjMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9iYXNpY0ZyYW1lc2V0UGFnZS5qc3AKQEAgLTAsMCArMSw5IEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgdGVtcGxhdGU9Ii90dXRvcmlhbC9iYXNpYy9teUZyYW1lc2V0TGF5b3V0LmpzcCIgPgorICA8dGlsZXM6cHV0IG5hbWU9InRpdGxlIiAgY29udGVudD0iTXkgZmlyc3QgZnJhbWVzZXQgcGFnZSIgZGlyZWN0PSJ0cnVlIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9ImhlYWRlciIgY29udGVudD0iL3R1dG9yaWFsL2NvbW1vbi9oZWFkZXIuanNwIiBkaXJlY3Q9InRydWUiLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJmb290ZXIiIGNvbnRlbnQ9Ii90dXRvcmlhbC9jb21tb24vZm9vdGVyLmpzcCIgZGlyZWN0PSJ0cnVlIi8+CisgIDx0aWxlczpwdXQgbmFtZT0ibWVudSIgICBjb250ZW50PSIvdHV0b3JpYWwvYmFzaWMvbWVudS5qc3AiIGRpcmVjdD0idHJ1ZSIvPgorICA8dGlsZXM6cHV0IG5hbWU9ImJvZHkiICAgY29udGVudD0iL3R1dG9yaWFsL2Jhc2ljL2hlbGxvQm9keS5qc3AiIGRpcmVjdD0idHJ1ZSIvPgorPC90aWxlczppbnNlcnQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvYmFzaWNQYWdlLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9iYXNpY1BhZ2UuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5YTNkNzIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvYmFzaWNQYWdlLmpzcApAQCAtMCwwICsxLDkgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPHRpbGVzOmluc2VydCBwYWdlPSIvdHV0b3JpYWwvYmFzaWMvbXlMYXlvdXQuanNwIiBmbHVzaD0idHJ1ZSI+CisgIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iTXkgZmlyc3QgcGFnZSIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJoZWFkZXIiIHZhbHVlPSIvdHV0b3JpYWwvY29tbW9uL2hlYWRlci5qc3AiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iZm9vdGVyIiB2YWx1ZT0iL2NvbW1vbi9mb290ZXIuanNwIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9Im1lbnUiICAgdmFsdWU9Ii90dXRvcmlhbC9iYXNpYy9tZW51LmpzcCIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJib2R5IiAgIHZhbHVlPSIvdHV0b3JpYWwvYmFzaWMvaGVsbG9Cb2R5LmpzcCIgLz4KKzwvdGlsZXM6aW5zZXJ0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbW1vbi9mb290ZXIuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbW1vbi9mb290ZXIuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5NDdmOGIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvY29tbW9uL2Zvb3Rlci5qc3AKQEAgLTAsMCArMSw4IEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtaHRtbCIgcHJlZml4PSJodG1sIiAlPgorCis8ZGl2IGFsaWduPSJjZW50ZXIiPgorICA8Zm9udCBjb2xvcj0iIzAyMzI2NCIgc2l6ZT0iLTEiPgorICAgIDxlbT4gICAgICAgICBDb3B5cmlnaHQgJmNvcHk7IDIwMDAtMjAwMywgTXlDb21wYW55ICAgICAgICAgPC9lbT4KKyAgPC9mb250PgorPC9kaXY+Cis8aHRtbDppbWcgcGFnZT0iL2ltYWdlcy9zdHJ1dHMtcG93ZXIuZ2lmIiBhbGlnbj0icmlnaHQiIGJvcmRlcj0iMCIvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbW1vbi9oZWFkZXIuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbW1vbi9oZWFkZXIuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMTlkNWEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvY29tbW9uL2hlYWRlci5qc3AKQEAgLTAsMCArMSwxMCBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWh0bWwiIHByZWZpeD0iaHRtbCIgJT4KKworPFA+Cis8aHRtbDppbWcgcGFnZT0iL2ltYWdlcy9pZF9uYXZfb3V0c2lkZS5naWYiIGFsaWduPSJsZWZ0IiBib3JkZXI9IjAiLz4KKzxodG1sOmltZyBwYWdlPSIvaW1hZ2VzL2lkX25hdl9ia2duZC5naWYiIGFsaWduPSJyaWdodCIgYm9yZGVyPSIwIi8+IDwvUD4KKworPCUtLQorPFA+PGltZyBzcmM9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L3R1dG9yaWFsL2ltYWdlcy9pZF9uYXZfb3V0c2lkZS5naWYiIGFsaWduPSJsZWZ0IiBib3JkZXI9IjAiPgorPGltZyBzcmM9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L3R1dG9yaWFsL2ltYWdlcy9pZF9uYXZfYmtnbmQuZ2lmIiBhbGlnbj0icmlnaHQiIGJvcmRlcj0iMCI+IDwvUD4KKy0tJT4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9jb21tb24vbWVudS5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvY29tbW9uL21lbnUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5ZjJiOTcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvY29tbW9uL21lbnUuanNwCkBAIC0wLDAgKzEsOSBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW5zZXJ0IHBhZ2U9Ii9sYXlvdXQvdmJveExheW91dC5qc3AiIGZsdXNoPSJ0cnVlIiA+CisgIDx0aWxlczpwdXRMaXN0IG5hbWU9ImNvbXBvbmVudHNMaXN0IiA+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iL3R1dG9yaWFsL2NvbW1vbi9tZW51L21lbnVMb2dvLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvdHV0b3JpYWwvY29tbW9uL21lbnUvbWVudUxpbmtzLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvdHV0b3JpYWwvY29tbW9uL21lbnUvbWVudVNyYy5qc3AiIC8+CisgIDwvdGlsZXM6cHV0TGlzdD4KKzwvdGlsZXM6aW5zZXJ0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbW1vbi9tZW51L21lbnVMaW5rcy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvY29tbW9uL21lbnUvbWVudUxpbmtzLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2ZlMmJlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbW1vbi9tZW51L21lbnVMaW5rcy5qc3AKQEAgLTAsMCArMSwxNSBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW5zZXJ0IHBhZ2U9Ii9jb21tb24vc3VibWVudS5qc3AiIGZsdXNoPSJ0cnVlIj4KKyAgPHRpbGVzOnB1dCBuYW1lPSJ0aXRsZSIgdmFsdWU9Ik1haW4gTWVudSIgLz4KKyAgPHRpbGVzOnB1dExpc3QgbmFtZT0iaXRlbXMiID4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSJIb21lIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9IkJhc2ljIFBhZ2UiIC8+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iRmlyc3QgUG9ydGFsIiAvPgorICA8L3RpbGVzOnB1dExpc3Q+CisgIDx0aWxlczpwdXRMaXN0IG5hbWU9ImxpbmtzIiA+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iL3R1dG9yaWFsL2luZGV4LmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvdHV0b3JpYWwvYmFzaWNQYWdlLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsUGFnZS5qc3AiIC8+CisgIDwvdGlsZXM6cHV0TGlzdD4KKzwvdGlsZXM6aW5zZXJ0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbW1vbi9tZW51L21lbnVMb2dvLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9jb21tb24vbWVudS9tZW51TG9nby5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2MyNTVhYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9jb21tb24vbWVudS9tZW51TG9nby5qc3AKQEAgLTAsMCArMSBAQAorPGltZyBzcmM9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L2ltYWdlcy9zdHJ1dHMtcG93ZXIuZ2lmIiB3aWR0aD0iOTUiIGhlaWdodD0iMzciIGJvcmRlcj0iMCIgYWx0PSIiPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9jb21tb24vbWVudS9tZW51U3JjLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9jb21tb24vbWVudS9tZW51U3JjLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODJiODg5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbW1vbi9tZW51L21lbnVTcmMuanNwCkBAIC0wLDAgKzEsMTQgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPHRpbGVzOmluc2VydCBwYWdlPSIvdHV0b3JpYWwvY29tbW9uL21lbnVWaWV3U3JjLmpzcCIgZmx1c2g9InRydWUiID4KKyAgPHRpbGVzOnB1dExpc3QgbmFtZT0ibGlzdCIgPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii90dXRvcmlhbC9iYXNpY1BhZ2UuanNwIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWxQYWdlLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvdHV0b3JpYWwvcG9ydGFsL3BvcnRhbEJvZHkuanNwIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii90dXRvcmlhbC9jb21tb24vaGVhZGVyLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvdHV0b3JpYWwvY29tbW9uL21lbnUuanNwIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii90dXRvcmlhbC9jb21tb24vZm9vdGVyLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvbGF5b3V0L2NsYXNzaWNMYXlvdXQuanNwIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii9sYXlvdXQvdmJveExheW91dC5qc3AiIC8+CisgIDwvdGlsZXM6cHV0TGlzdD4KKzwvdGlsZXM6aW5zZXJ0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbW1vbi9tZW51Vmlld1NyYy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvY29tbW9uL21lbnVWaWV3U3JjLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YThlOTE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbW1vbi9tZW51Vmlld1NyYy5qc3AKQEAgLTAsMCArMSw0MCBAQAorPCVAIHBhZ2UgaW1wb3J0PSJqYXZhLnV0aWwuSXRlcmF0b3IiJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1sb2dpYyIgcHJlZml4PSJsb2dpYyIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1iZWFuIiBwcmVmaXg9ImJlYW4iICU+CisKKzwlLS0gTWVudSBvZiBzb3VyY2VzIGNvbXBvbmVudCAKKyAgVGhpcyBjb21wb25lbnQgaXMgYSBtZW51IG9mIHNvdXJjZXMuIFdoZW4gYSBzb3VyY2UgaXMgY2xpY2tlZCwgaXRzIAorICBjb2RlIGlzIHNob3duIHVzaW5nIGEgdmlld2VyLgorICBBIGxpc3Qgb2YgYWJzb2x1dGUgc291cmNlIHBhdGggbXVzdCBiZSBwcm92aWRlZC4KKyAgVmlld2VyIHBhdGggY2FuIGJlIHByb3ZpZGVkLgorICBAcGFyYW0gbGlzdCBMaXN0IG9mIHNvdXJjZSBwYXRocyB0byBkaXNwbGF5CisgIEBwYXJhbSB2aWV3ZXJQYXRoIFBhdGggb2Ygdmlld2VyIHBhZ2UuIE9wdGlvbmFsLgorLS0lPgorCis8dGlsZXM6aW1wb3J0QXR0cmlidXRlIC8+CisKKyAgPCUtLSBTZXQgZGVmYXVsdCB2aWV3ZXIgaWYgbm90IHNwZWNpZmllZCAtLSU+Cis8bG9naWM6bm90UHJlc2VudCBuYW1lPSJ2aWV3ZXJQYXRoIiA+CisgIDwlIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZSggInZpZXdlclBhdGgiLCByZXF1ZXN0LmdldENvbnRleHRQYXRoKCkrIi90dXRvcmlhbC9jb21tb24vdmlld1NyYy5qc3AiICk7ICU+Cis8L2xvZ2ljOm5vdFByZXNlbnQ+Cis8YmVhbjpkZWZpbmUgaWQ9InZpZXdlclBhdGgiIG5hbWU9InZpZXdlclBhdGgiIHR5cGU9ImphdmEubGFuZy5TdHJpbmciIC8+CisKKzx0YWJsZT4KKzx0cj48dGggY29sc3Bhbj0yPjxkaXYgYWxpZ249ImxlZnQiPjxzdHJvbmc+SlNQIFNvdXJjZXM8L3N0cm9uZz48L2Rpdj48L3RoPjwvdHI+CisKKzwlLS0gSXRlcmF0ZSBvbiBzb3VyY2VzIGxpc3QgLS0lPgorPGxvZ2ljOml0ZXJhdGUgaWQ9Iml0ZXJhdGVJdGVtIiBuYW1lPSJsaXN0IiA+Cis8YmVhbjpkZWZpbmUgaWQ9InNyY1BhdGgiIG5hbWU9Iml0ZXJhdGVJdGVtIiB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIiBzY29wZT0icGFnZSIgLz4KKworPHRyPgorICA8dGQgd2lkdGg9IjEwIiBhbGlnbj0iY2VudGVyIj48L3RkPgorICA8dGQgIHdpZHRoPSIxMjAiPgorICAgIDxmb250IHNpemU9Ii0yIj4KKyAgICAgIDxhIGhyZWY9IjwlPXZpZXdlclBhdGglPj9zcmM9PCU9c3JjUGF0aCU+Ij48JT1zcmNQYXRoJT48L2E+CisgICAgPC9mb250PgorICA8L3RkPgorPC90cj4KKworPC9sb2dpYzppdGVyYXRlPgorPC90YWJsZT4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9jb21tb24vc3VibWVudS5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvY29tbW9uL3N1Ym1lbnUuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwNTg3NWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvY29tbW9uL3N1Ym1lbnUuanNwCkBAIC0wLDAgKzEsNzggQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1sb2dpYyIgcHJlZml4PSJsb2dpYyIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1iZWFuIiBwcmVmaXg9ImJlYW4iICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+Cis8JUAgcGFnZSBpbXBvcnQ9ImphdmEudXRpbC5JdGVyYXRvciIgJT4KKworCis8JS0tIFB1c2ggY29tcG9uZW50IGF0dHJpYnV0ZXMgaW4gcGFnZSBjb250ZXh0IC0tJT4KKzx0aWxlczppbXBvcnRBdHRyaWJ1dGUgLz4KKworPHRhYmxlPgorPGxvZ2ljOnByZXNlbnQgbmFtZT0idGl0bGUiPgorPHRyPgorICA8dGggY29sc3Bhbj0yPgorICAgIDxkaXYgYWxpZ249ImxlZnQiPjxzdHJvbmc+PGJlYW46d3JpdGUgbmFtZT0idGl0bGUiLz48L3N0cm9uZz48L2Rpdj4KKyAgPC90aD4KKzwvdHI+Cis8L2xvZ2ljOnByZXNlbnQ+CisKKzwlLS0gQ2hlY2sgaWYgc2VsZWN0ZWQgZXhpc3QuIC0tJT4KKzxsb2dpYzpub3RQcmVzZW50IG5hbWU9InNlbGVjdGVkIiA+CisgIDwlIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZSggInNlbGVjdGVkIiwgIiIgKTsgJT4KKzwvbG9naWM6bm90UHJlc2VudD4KKworPCUtLSBQcmVwYXJlIHRoZSBsaW5rcyBsaXN0IHRvIGJlIGl0ZXJhdGVkIC0tJT4KKzxiZWFuOmRlZmluZSBpZD0ibGlua3MiIG5hbWU9ImxpbmtzIiB0eXBlPSJqYXZhLnV0aWwuTGlzdCIgc2NvcGU9InBhZ2UiIC8+Cis8JSBJdGVyYXRvciBpID0gbGlua3MuaXRlcmF0b3IoKTsgJT4KKworPCUtLSBpdGVyYXRlIG9uIGl0ZW1zIGxpc3QgLS0lPgorPCUtLSBOb3JtYWxseSwgd2Ugc2hvdWxkIHdyaXRlIHNvbWV0aGluZyBsaWtlIHRoaXMgOgorICAgPGxvZ2ljOml0ZXJhdGUgaWQ9Iml0ZW0iIG5hbWU9Iml0ZW1zIiB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIiA+CisgICBCdXQsIFN0cnV0cyBkb2Vzbid0IGRlY2xhcmUgdGhlIFRFSSBjbGFzcyBmb3IgaXRlcmF0ZSwgYW5kIAorICAgc29tZSB3ZWIgY29udGFpbmVyIGRlYWwgYmFkbHkgd2l0aCB0aGUgZGVjbGFyZWQgdmFyaWFibGUuIAorICAgU28sIHdlIHVzZSB3aGF0IGZvbGxvdyBpbnN0ZWFkLgorICAgIC0tJT4KKzxsb2dpYzppdGVyYXRlIGlkPSJpdGVyYXRlSXRlbSIgbmFtZT0iaXRlbXMiID4KKzxiZWFuOmRlZmluZSBpZD0iaXRlbSIgbmFtZT0iaXRlcmF0ZUl0ZW0iIHR5cGU9ImphdmEubGFuZy5TdHJpbmciIHNjb3BlPSJwYWdlIiAvPgorCisKKzx0cj4KKyAgPHRkIHdpZHRoPSIxMCIgdmFsaWduPSJ0b3AiID48L3RkPgorICA8dGQgdmFsaWduPSJ0b3AiICA+CisgICAgPCUtLSBjaGVjayBpZiBzZWxlY3RlZCAtLSU+CisJPGxvZ2ljOm5vdEVxdWFsIG5hbWU9InNlbGVjdGVkIiB2YWx1ZT0iPCU9aXRlbSU+Ij4KKwkgIDwlIC8vIENvbXB1dGUgbGluayB2YWx1ZQorCSAgICBTdHJpbmcgbGluayA9IChTdHJpbmcpaS5uZXh0KCk7CisJICAgIGlmKGxpbmsuc3RhcnRzV2l0aCgiLyIpICkKKwkJICBsaW5rID0gcmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpICsgbGluazsKKwkgICU+CisJICA8Zm9udCBzaXplPSItMSI+PGEgaHJlZj0iPCU9bGluayU+Ij48JT1pdGVtJT48L2E+PC9mb250PgorCTwvbG9naWM6bm90RXF1YWw+CisJPGxvZ2ljOmVxdWFsIG5hbWU9InNlbGVjdGVkIiB2YWx1ZT0iPCU9aXRlbSU+Ij4KKwkgIDxmb250IHNpemU9Ii0xIiBjb2xvcj0iZnVjaHNpYSI+PCU9aXRlbSU+PC9mb250PgorICA8L2xvZ2ljOmVxdWFsPgorICA8L3RkPgorPC90cj4KKzwvbG9naWM6aXRlcmF0ZT4KKworPC90YWJsZT4KKworPCUtLSBGb2xsb3dpbmcgYXJlIHNvbWUgY29kZSBleGFtcGxlIHVzaW5nIHRoaXMgc3VibWVudQorPHRpbGVzOmluc2VydCBwYWdlPSIvY29tbW9uL3N1Ym1lbnUuanNwIiBmbHVzaD0idHJ1ZSI+CisgIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiIHZhbHVlPSJNYWluIE1lbnUiIC8+CisgIDx0aWxlczpwdXRMaXN0IG5hbWU9Iml0ZW1zIiA+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iSG9tZSIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSJFZGl0IEN1c3RvbWVyIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ikludm9pY2UiIC8+CisgIDwvdGlsZXM6cHV0TGlzdD4KKyAgPHRpbGVzOnB1dExpc3QgbmFtZT0ibGlua3MiID4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSJpbmRleC5qc3AiIC8+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iaW52b2ljZS9pbmRleC5qc3AiIC8+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iaW52b2ljZS9pbmRleC5qc3AiIC8+CisgIDwvdGlsZXM6cHV0TGlzdD4KKzwvdGlsZXM6aW5zZXJ0PgorCis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249Im1haW5TdWJNZW51IiBmbHVzaD0idHJ1ZSI+CisgIDx0aWxlczpwdXQgbmFtZT0ic2VsZWN0ZWQiIHZhbHVlPSJIb21lIiAvPgorPC90aWxlczppbnNlcnQ+CistLSU+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvY29tbW9uL3ZpZXdTcmMuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbW1vbi92aWV3U3JjLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NWYxYTFjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbW1vbi92aWV3U3JjLmpzcApAQCAtMCwwICsxLDcgQEAKKzwlQCBwYWdlIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249Im1haW5MYXlvdXQiIGZsdXNoPSJ0cnVlIiA+CisgIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiIHZhbHVlPSJKU1AgU291cmNlIENvZGUiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iYm9keSIgdmFsdWU9Ii90dXRvcmlhbC9jb21tb24vdmlld1NyY0JvZHkuanNwIiAvPgorPC90aWxlczppbnNlcnQ+ICAKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9jb21tb24vdmlld1NyY0JvZHkuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbW1vbi92aWV3U3JjQm9keS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzk3MzZjYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9jb21tb24vdmlld1NyY0JvZHkuanNwCkBAIC0wLDAgKzEsMzggQEAKKzwlQCBwYWdlIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHBhZ2UgZXJyb3JQYWdlPSIvY29tbW9uL3ZpZXdTcmNCb2R5RXJyb3IuanNwIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWJlYW4iIHByZWZpeD0iYmVhbiIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1sb2dpYyIgcHJlZml4PSJsb2dpYyIgJT4KKworPCUtLSBJbmNsdWRlIHJlcXVlc3RlZCByZXNvdXJjZSBmaWxlLgorICBJZiBmaWxlIGlzIG5vdCBmb3VuZCwgRXhjZXB0aW9uIGlzIHRocm93biwgYW5kIGNhdGNoZWQgYnkgdGhlIGVycm9yUGFnZSAKKyAgZGlyZWN0aXZlIChzZWUgYWJvdmUpLiBFcnJvciBwYWdlIHNob3cgYSBtZXNzYWdlLiAgIAorLS0lPgorCisgIDwlLS0gSW1wb3J0IGNvbXBvbmVudCBhdHRyaWJ1dGVzLCBpZiBhbnkuCisgICAtLSU+CisgICAKKworPHRpbGVzOmltcG9ydEF0dHJpYnV0ZS8+CisKKzxsb2dpYzpub3RQcmVzZW50IG5hbWU9InNyY1BhdGgiID4KKyAgPGxvZ2ljOnByZXNlbnQgcGFyYW1ldGVyPSJzcmMiID4KKyAgPGJlYW46cGFyYW1ldGVyIGlkPSJzcmNQYXRoIiBuYW1lPSJzcmMiIC8+CisgIDwvbG9naWM6cHJlc2VudD4gIAorPC9sb2dpYzpub3RQcmVzZW50PgorICAgICAKKworPGxvZ2ljOnByZXNlbnQgbmFtZT0ic3JjUGF0aCIgPgorPGJlYW46ZGVmaW5lIGlkPSJzcmNQYXRoVmFyIiBuYW1lPSJzcmNQYXRoIiB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIi8+Cis8YmVhbjpyZXNvdXJjZSBpZD0ic3JjIiBuYW1lPSI8JT1zcmNQYXRoVmFyJT4iIC8+Cis8c3Ryb25nPmZpbGUgJzwlPXNyY1BhdGhWYXIlPic8L3N0cm9uZz4KKzxicj4KKzxwcmU+Cis8YmVhbjp3cml0ZSBmaWx0ZXI9InRydWUiIG5hbWU9InNyYyIgc2NvcGU9InBhZ2UiLz4KKzwvcHJlPgorPGJyPgorPC9sb2dpYzpwcmVzZW50PgorCis8bG9naWM6bm90UHJlc2VudCBuYW1lPSJzcmNQYXRoIiA+CitObyBzb3VyY2Ugc3BlY2lmaWVkICEKKzwvbG9naWM6bm90UHJlc2VudD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9jb21tb24vdmlld1NyY0JvZHlFcnJvci5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvY29tbW9uL3ZpZXdTcmNCb2R5RXJyb3IuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkOTc2MTMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvY29tbW9uL3ZpZXdTcmNCb2R5RXJyb3IuanNwCkBAIC0wLDAgKzEsMTUgQEAKKzwlQCBwYWdlIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHBhZ2UgaXNFcnJvclBhZ2U9InRydWUiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtYmVhbiIgcHJlZml4PSJiZWFuIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWxvZ2ljIiBwcmVmaXg9ImxvZ2ljIiAlPgorCisKKzxsb2dpYzpwcmVzZW50IHBhcmFtZXRlcj0ic3JjIiA+Cis8YmVhbjpwYXJhbWV0ZXIgaWQ9InNyY1BhdGgiIG5hbWU9InNyYyIgLz4KKzxzdHJvbmc+ZmlsZSAnPCU9c3JjUGF0aCU+JyBub3QgZm91bmQgITwvc3Ryb25nPgorPC9sb2dpYzpwcmVzZW50PgorCis8bG9naWM6bm90UHJlc2VudCBwYXJhbWV0ZXI9InNyYyIgPgorTm8gc291cmNlIHNwZWNpZmllZCAhCis8L2xvZ2ljOm5vdFByZXNlbnQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvY29udGVudEZvcm0uanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbnRlbnRGb3JtLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzliN2I4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2NvbnRlbnRGb3JtLmpzcApAQCAtMCwwICsxLDcgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1odG1sIiBwcmVmaXg9Imh0bWwiICAgICAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiAgcHJlZml4PSJ0aWxlcyIgJT4KKworCisKK2xhYmVsIDogPHRpbGVzOmdldCBuYW1lPSJsYWJlbCIgLz4KK3Byb3BlcnR5IDogPHRpbGVzOmdldCBuYW1lPSJwcm9wZXJ0eSIgLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9kZS9jb21tb24vZm9vdGVyLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9kZS9jb21tb24vZm9vdGVyLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDMzZDE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2RlL2NvbW1vbi9mb290ZXIuanNwCkBAIC0wLDAgKzEsNyBAQAorPGRpdiBhbGlnbj0iY2VudGVyIj4KKyAgPGZvbnQgY29sb3I9IiMwMjMyNjQiIHNpemU9Ii0xIj4KKyAgICA8ZW0+ICAgICAgICAgQ29weXJpZ2h0ICZjb3B5OyAyMDAwLTIwMDEsIE15Q29tcGFueSAgICAgICAgIDwvZW0+Cis8YnI+PGVtPiAgICAgICAgICAgICAgICAgICAgIEdlcm1hbiBWZXJzaW9uICAgICAgICAgICAgICAgPC9lbT4KKyAgPC9mb250PgorPC9kaXY+Cis8aW1nIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vaW1hZ2VzL3N0cnV0cy1wb3dlci5naWYiIGFsaWduPSJyaWdodCIgYm9yZGVyPSIwIj4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9kZS9jb21tb24vaGVhZGVyLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9kZS9jb21tb24vaGVhZGVyLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTNmNjljCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2RlL2NvbW1vbi9oZWFkZXIuanNwCkBAIC0wLDAgKzEsMyBAQAorCis8UD48aW1nIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vaW1hZ2VzL2lkX25hdl9vdXRzaWRlLmdpZiIgYWxpZ249ImxlZnQiIGJvcmRlcj0iMCI+Cis8aW1nIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vaW1hZ2VzL2lkX25hdl9ia2duZC5naWYiIGFsaWduPSJyaWdodCIgYm9yZGVyPSIwIj4gPC9QPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2RlZmluaXRpb25UYWcuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2RlZmluaXRpb25UYWcuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwZWVhNzkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvZGVmaW5pdGlvblRhZy5qc3AKQEAgLTAsMCArMSwxMSBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6ZGVmaW5pdGlvbiBpZD0iZGVmaW5pdGlvbk5hbWUiIHRlbXBsYXRlPSIvdHV0b3JpYWwvYmFzaWMvbXlMYXlvdXQuanNwIiA+CisgIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iTXkgZmlyc3QgcGFnZSIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJoZWFkZXIiIHZhbHVlPSIvdHV0b3JpYWwvY29tbW9uL2hlYWRlci5qc3AiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iZm9vdGVyIiB2YWx1ZT0iL3R1dG9yaWFsL2NvbW1vbi9mb290ZXIuanNwIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9Im1lbnUiICAgdmFsdWU9Ii90dXRvcmlhbC9iYXNpYy9tZW51LmpzcCIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJib2R5IiAgIHZhbHVlPSIvdHV0b3JpYWwvYmFzaWMvaGVsbG9Cb2R5LmpzcCIgLz4KKzwvdGlsZXM6ZGVmaW5pdGlvbj4KKworPHRpbGVzOmluc2VydCBiZWFuTmFtZT0iZGVmaW5pdGlvbk5hbWUiIGZsdXNoPSJ0cnVlIiAvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2RlZmluaXRpb25zL2RlZmluaXRpb25zQ29uZmlnLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9kZWZpbml0aW9ucy9kZWZpbml0aW9uc0NvbmZpZy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYxMDVjMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9kZWZpbml0aW9ucy9kZWZpbml0aW9uc0NvbmZpZy5qc3AKQEAgLTAsMCArMSw0MiBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCisKKzwlLS0gCisgIFRoaXMgZmlsZSBjb250YWlucyBkZWZpbml0aW9uIGRlY2xhcmF0aW9ucy4KKyAgVGhlc2UgZGVmaW5pdGlvbnMgY2FuIGJlIHVzZWQgaW4gYW55IGpzcCBwYWdlIGJ5IGluY2x1ZGluZyAKKyAgdGhpcyBmaWxlIHdpdGggOgorICAgICA8JUAgaW5jbHVkZSBmaWxlPSJmaWxlbmFtZS5qc3AiICU+IAorICBFYWNoIGRlZmluaXRpb24gZGVjbGFyYXRpb24gY3JlYXRlIGEgYmVhbiBzdG9yZWQgaW4gc3BlY2lmaWVkIGpzcCBjb250ZXh0LgorICBEZWZhdWx0IGpzcCBjb250ZXh0IGlzICdwYWdlJywgc28gd2UgbmVlZCB0byBzcGVjaWZ5IGEgbW9yZSB1c2VmdWwgY29udGV4dC4KKy0tJT4KKworICA8JS0tIE1hc3RlciBsYXlvdXQgZGVmaW5pdGlvbiAtLSU+Cis8dGlsZXM6ZGVmaW5pdGlvbiBpZD0ibWFzdGVyTGF5b3V0IiBwYWdlPSIvbGF5b3V0cy9jbGFzc2ljTGF5b3V0LmpzcCIgc2NvcGU9InJlcXVlc3QiID4KKyAgPHRpbGVzOnB1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJNeSBGaXJzdCBEZWZpbml0aW9uIFBhZ2UiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iaGVhZGVyIiB2YWx1ZT0iL3R1dG9yaWFsL2NvbW1vbi9oZWFkZXIuanNwIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9ImZvb3RlciIgdmFsdWU9Ii90dXRvcmlhbC9jb21tb24vZm9vdGVyLmpzcCIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJtZW51IiAgIHZhbHVlPSIvdHV0b3JpYWwvY29tbW9uL21lbnUuanNwIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9Ii90dXRvcmlhbC9iYXNpYy9oZWxsb0JvZHkuanNwIiAvPgorPC90aWxlczpkZWZpbml0aW9uPgorCisgIDwlLS0gcG9ydGFsIGRlZmluaXRpb24gLS0lPgorPHRpbGVzOmRlZmluaXRpb24gaWQ9InBvcnRhbEV4YW1wbGUiIHBhZ2U9Ii9sYXlvdXQvY29sdW1uc0xheW91dC5qc3AiIHNjb3BlPSJyZXF1ZXN0Ij4KKyAgPHRpbGVzOnB1dCBuYW1lPSJudW1Db2xzIiB2YWx1ZT0iMiIgLz4KKyAgPHRpbGVzOnB1dExpc3QgbmFtZT0ibGlzdDAiID4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvcG9ydGFsL2xvZ2luLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvcG9ydGFsL21lc3NhZ2VzLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvcG9ydGFsL25ld3NGZWVkLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvcG9ydGFsL2FkdmVydDIuanNwIiAvPgorICA8L3RpbGVzOnB1dExpc3Q+CisgIDx0aWxlczpwdXRMaXN0IG5hbWU9Imxpc3QxIiA+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iL3BvcnRhbC9hZHZlcnQzLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvcG9ydGFsL3N0b2Nrcy5qc3AiIC8+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iL3BvcnRhbC93aGF0c05ldy5qc3AiIC8+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iL3BvcnRhbC9wZXJzb25hbExpbmtzLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvcG9ydGFsL3NlYXJjaC5qc3AiIC8+CisgIDwvdGlsZXM6cHV0TGlzdD4KKzwvdGlsZXM6ZGVmaW5pdGlvbj4KKworICA8JS0tIAorICAgIEFkZCBhcyBtYW55IGRlZmluaXRpb24gYXMgeW91IG5lZWQgLi4uCisgIC0tJT4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9kZWZpbml0aW9ucy9maXJzdERlZmluaXRpb25QYWdlLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9kZWZpbml0aW9ucy9maXJzdERlZmluaXRpb25QYWdlLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDQ5MzhmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2RlZmluaXRpb25zL2ZpcnN0RGVmaW5pdGlvblBhZ2UuanNwCkBAIC0wLDAgKzEsNSBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249Im15Rmlyc3REZWZpbml0aW9uIiBmbHVzaD0idHJ1ZSIgPgorICA8dGlsZXM6cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9Ik15IGZpcnN0IERlZmluaXRpb24gUGFnZSIgLz4KKzwvdGlsZXM6aW5zZXJ0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2RlZmluaXRpb25zL3NpbXBsZUJvZHkuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2RlZmluaXRpb25zL3NpbXBsZUJvZHkuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4YmJhZWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvZGVmaW5pdGlvbnMvc2ltcGxlQm9keS5qc3AKQEAgLTAsMCArMSwxOCBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW5zZXJ0IHBhZ2U9Ii9sYXlvdXQvY29sdW1uc0xheW91dC5qc3AiIGZsdXNoPSJ0cnVlIj4KKyAgPHRpbGVzOnB1dCBuYW1lPSJudW1Db2xzIiB2YWx1ZT0iMiIgLz4KKyAgPHRpbGVzOnB1dExpc3QgbmFtZT0ibGlzdDAiID4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvcG9ydGFsL2xvZ2luLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvcG9ydGFsL21lc3NhZ2VzLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvcG9ydGFsL25ld3NGZWVkLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvcG9ydGFsL2FkdmVydDIuanNwIiAvPgorICA8L3RpbGVzOnB1dExpc3Q+CisgIDx0aWxlczpwdXRMaXN0IG5hbWU9Imxpc3QxIiA+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iL3BvcnRhbC9hZHZlcnQzLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvcG9ydGFsL3N0b2Nrcy5qc3AiIC8+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iL3BvcnRhbC93aGF0c05ldy5qc3AiIC8+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iL3BvcnRhbC9wZXJzb25hbExpbmtzLmpzcCIgLz4KKyAgICA8dGlsZXM6YWRkIHZhbHVlPSIvcG9ydGFsL3NlYXJjaC5qc3AiIC8+CisgIDwvdGlsZXM6cHV0TGlzdD4KKzwvdGlsZXM6aW5zZXJ0PgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2RlZmluaXRpb25zL3VzZURlZmluaXRpb25Db25maWcuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2RlZmluaXRpb25zL3VzZURlZmluaXRpb25Db25maWcuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwZjEwN2IKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvZGVmaW5pdGlvbnMvdXNlRGVmaW5pdGlvbkNvbmZpZy5qc3AKQEAgLTAsMCArMSwxMyBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCisKKzwlLS0gCisgIFRoaXMgZXhhbXBsZSBpbnNlcnQgYSBkZWZpbml0aW9uIGRlZmluZWQgaW4gYW5vdGhlciBqc3AgZmlsZS4KKyAgRmlyc3QsIGl0IGluY2x1ZGUganNwIGZpbGUgY29udGFpbmluZyBkZWZpbml0aW9uLgorICBTZWNvbmQsIGl0IGRvIGFuIGluc2VydCB3aGVyZSBpdCB3YW50IHRoZSBkZWZpbml0aW9uIHRvIGJlIHJlbmRlcmVkLgorLS0lPgorCis8JUAgaW5jbHVkZSBmaWxlPSJkZWZpbml0aW9uc0NvbmZpZy5qc3AiICU+CisKKzx0aWxlczppbnNlcnQgYmVhbk5hbWU9Im1hc3RlckxheW91dCIgYmVhblNjb3BlPSJyZXF1ZXN0IiAvPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvZHluRnJhbWVzZXRQYWdlLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9keW5GcmFtZXNldFBhZ2UuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2MzcwZmUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvZHluRnJhbWVzZXRQYWdlLmpzcApAQCAtMCwwICsxLDEwIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgdGVtcGxhdGU9Ii90dXRvcmlhbC9iYXNpYy9teUZyYW1lc2V0TGF5b3V0LmpzcCIgYmVhbk5hbWU9InRlbXBsYXRlRGVmaW5pdGlvbiIgID4KKyAgPCUtLSAgVW5jb21tZW50IGxpbmVzIHRvIG92ZXJsb2FkIHBhcmFtZXRlcnMgLS0lPgorICA8JS0tIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiICBjb250ZW50PSJNeSBmaXJzdCBmcmFtZXNldCBwYWdlIiBkaXJlY3Q9InRydWUiIC8+IC0tJT4KKyAgPCUtLSA8dGlsZXM6cHV0IG5hbWU9ImhlYWRlciIgY29udGVudD0iL3R1dG9yaWFsL2NvbW1vbi9oZWFkZXIuanNwIiBkaXJlY3Q9InRydWUiLz4gLS0lPgorICA8JS0tIDx0aWxlczpwdXQgbmFtZT0iZm9vdGVyIiBjb250ZW50PSIvdHV0b3JpYWwvY29tbW9uL2Zvb3Rlci5qc3AiIGRpcmVjdD0idHJ1ZSIvPiAtLSU+CisgIDwlLS0gPHRpbGVzOnB1dCBuYW1lPSJtZW51IiAgIGNvbnRlbnQ9Ii90dXRvcmlhbC9iYXNpYy9tZW51LmpzcCIgZGlyZWN0PSJ0cnVlIi8+IC0tJT4KKyAgPCUtLSA8dGlsZXM6cHV0IG5hbWU9ImJvZHkiICAgY29udGVudD0iL3R1dG9yaWFsL2Jhc2ljL2hlbGxvQm9keS5qc3AiIGRpcmVjdD0idHJ1ZSIvPiAtLSU+Cis8L3RpbGVzOmluc2VydD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9keW5Qb3J0YWwvQ2hhbm5lbHMuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2R5blBvcnRhbC9DaGFubmVscy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDVlYTRiMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9keW5Qb3J0YWwvQ2hhbm5lbHMuanNwCkBAIC0wLDAgKzEsMzggQEAKKzwlLS0KKy8qKgorICogU3VtbWFyaXplIGNoYW5uZWxzIGFzIHVuYWRvcm5lZCBIVE1MLgorICoKKyAqIEBwYXJhbWV0ZXJzIExpc3RBcnJheSBDSEFOTkVMUworICogQHZlcnNpb24gJFJldmlzaW9uOiAxLjIgJCAkRGF0ZSQKKyAqLworLS0lPgorPCVAIHBhZ2UgbGFuZ3VhZ2U9ImphdmEiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtYmVhbiIgcHJlZml4PSJiZWFuIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWxvZ2ljIiBwcmVmaXg9ImxvZ2ljIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW1wb3J0QXR0cmlidXRlIG5hbWU9IkNIQU5ORUxTIiBzY29wZT0icGFnZSIvPgorCis8bG9naWM6aXRlcmF0ZSBuYW1lPSJDSEFOTkVMUyIgaWQ9IkNIQU5ORUwiID4KKzxUQUJMRSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIyIiBjZWxscGFkZGluZz0iNCIgd2lkdGg9IjMwMCIgYWxpZ249ImNlbnRlciIgPgorPFRSPgorPFREPjxsb2dpYzpwcmVzZW50IG5hbWU9IkNIQU5ORUwiIHByb3BlcnR5PSJpbWFnZSI+PGltZyBzcmM9IjxiZWFuOndyaXRlIG5hbWU9IkNIQU5ORUwiIHByb3BlcnR5PSJpbWFnZS5VUkwiLz4iPjwvbG9naWM6cHJlc2VudD48L1REPgorPFREIGNsYXNzPSJzcGFuaGQiIHdpZHRoPSIxMDAlIj48YSBocmVmPSI8YmVhbjp3cml0ZSBuYW1lPSJDSEFOTkVMIiBwcm9wZXJ0eT0ibGluayIvPiI+Cis8YmVhbjp3cml0ZSBuYW1lPSJDSEFOTkVMIiBwcm9wZXJ0eT0idGl0bGUiLz48L2E+PC9URD4KKzwvVFI+Cis8VEQgY2xhc3M9InllbGxvdyIgY29sc3Bhbj0iMiI+PGJlYW46d3JpdGUgbmFtZT0iQ0hBTk5FTCIgcHJvcGVydHk9ImRlc2NyaXB0aW9uIi8+PC9URD4KKzwvVFI+CisKKzxUUj4KKzxURCBjbGFzcz0iZGF0YWdyZXkiIGNvbHNwYW49IjIiPgorPGxvZ2ljOml0ZXJhdGUgbmFtZT0iQ0hBTk5FTCIgcHJvcGVydHk9Iml0ZW1zIiBpZD0iSVRFTSI+Cis8YnI+PGI+PGJlYW46d3JpdGUgbmFtZT0iSVRFTSIgcHJvcGVydHk9InRpdGxlIi8+PC9iPgorPGJyPjxiZWFuOndyaXRlIG5hbWU9IklURU0iIHByb3BlcnR5PSJkZXNjcmlwdGlvbiIvPgorPGJyPiZuYnNwOyZuYnNwO1sgPGEgaHJlZj0iPGJlYW46d3JpdGUgbmFtZT0iSVRFTSIgcHJvcGVydHk9ImxpbmsiLz4iPm1vcmU8L2E+IF0KKzxicj4KKzwvbG9naWM6aXRlcmF0ZT4KKzwvVEQ+Cis8L1RSPgorPC9UQUJMRT4KKzxicj4KKzwvbG9naWM6aXRlcmF0ZT4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9keW5Qb3J0YWwvRXJyb3JzLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9keW5Qb3J0YWwvRXJyb3JzLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjI5MmIyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2R5blBvcnRhbC9FcnJvcnMuanNwCkBAIC0wLDAgKzEsMjcgQEAKKzwlLS0KKy8qKgorICogU3VtbWFyaXplIGNoYW5uZWxzIGVycm9ycyBhcyB1bmFkb3JuZWQgSFRNTC4KKyAqCisgKiBAcGFyYW1ldGVycyBlcnJvcnMKKyAqIEB2ZXJzaW9uICRSZXZpc2lvbjogMS4yICQgJERhdGUkCisgKi8KKy0tJT4KKzwlQCBwYWdlIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWJlYW4iIHByZWZpeD0iYmVhbiIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1sb2dpYyIgcHJlZml4PSJsb2dpYyIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1odG1sIiBwcmVmaXg9ImxvZ2ljIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8VEFCTEUgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMiIgY2VsbHBhZGRpbmc9IjQiIHdpZHRoPSIzMDAiIGFsaWduPSJjZW50ZXIiID4KKzxUUj4KKzxURCBjbGFzcz0iYWxlcnQiPgorRXJyb3Igd2hpbGUgcmVhZGluZyBjaGFubmVscy4KKzxicj48L2JyPkFyZSB5b3UgY29ubmVjdGVkID8KKzwvVEQ+Cis8L1RSPgorPFRSPgorPFREIGNsYXNzPSJlcnJvciIgd2lkdGg9IjEwMCUiPjxodG1sOmVycm9ycy8+PC9URD4KKzwvVFI+CisKKzwvVEFCTEU+CisKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9keW5Qb3J0YWwvaW5kZXguanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2R5blBvcnRhbC9pbmRleC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQxYTllYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9keW5Qb3J0YWwvaW5kZXguanNwCkBAIC0wLDAgKzEsMyBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249Im15RHluYW1pY1BvcnRhbCIgZmx1c2g9InRydWUiIC8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvZHluUG9ydGFsL215UG9ydGFsUHJlZlRpbGUuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2R5blBvcnRhbC9teVBvcnRhbFByZWZUaWxlLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTUxYjcyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2R5blBvcnRhbC9teVBvcnRhbFByZWZUaWxlLmpzcApAQCAtMCwwICsxLDExMiBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWh0bWwiIHByZWZpeD0iaHRtbCIgJT4KKworCis8c2NyaXB0IGxhbmd1YWdlPSJqYXZhU2NyaXB0MS4yIj4KK2Z1bmN0aW9uIHNlbGVjdEFsbCggKQoreworZm9yKCBqPTA7IGo8c2VsZWN0QWxsLmFyZ3VtZW50cy5sZW5ndGg7IGorKyApCisgIHsKKyAgY29sMSA9IHNlbGVjdEFsbC5hcmd1bWVudHNbal07CisgIGZvcihpPTA7IGk8Y29sMS5vcHRpb25zLmxlbmd0aDsgaSsrICkKKyAgICB7CisJY29sMS5vcHRpb25zWyBpIF0uc2VsZWN0ZWQgPSB0cnVlOworCX0KKyAgfSAvLyBlbmQgbG9vcAorICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gbW92ZSggY29sMSwgY29sMikKK3sKKyAgdG9Nb3ZlID0gY29sMS5vcHRpb25zWyBjb2wxLnNlbGVjdGVkSW5kZXggXTsKKyAgb3B0ID0gbmV3IE9wdGlvbiggdG9Nb3ZlLnRleHQsIHRvTW92ZS52YWx1ZSwgZmFsc2UsIGZhbHNlICk7CisgIGNvbDEub3B0aW9uc1tjb2wxLnNlbGVjdGVkSW5kZXggXSA9IG51bGw7CisgIGNvbDIub3B0aW9uc1tjb2wyLmxlbmd0aF0gPSBvcHQ7CisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiByZW1vdmUoIGNvbDEpCit7CisgIGNvbDEub3B0aW9uc1sgY29sMS5zZWxlY3RlZEluZGV4IF0gPSBudWxsOworICByZXR1cm4gdHJ1ZTsKK30KKworZnVuY3Rpb24gdXAoIGNvbDEgKQoreworICBpbmRleCA9IGNvbDEuc2VsZWN0ZWRJbmRleDsKKyAgaWYoIGluZGV4IDw9IDAgKQorICAgIHJldHVybiB0cnVlOworCQorICB0b01vdmUgPSBjb2wxLm9wdGlvbnNbIGluZGV4IF07CisgIG9wdCA9IG5ldyBPcHRpb24oIHRvTW92ZS50ZXh0LCB0b01vdmUudmFsdWUsIGZhbHNlLCBmYWxzZSApOworICBjb2wxLm9wdGlvbnNbaW5kZXhdID0gY29sMS5vcHRpb25zW2luZGV4LTFdOworICBjb2wxLm9wdGlvbnNbaW5kZXgtMV0gPSBvcHQ7CisgIHJldHVybiB0cnVlOworfQorCitmdW5jdGlvbiBkb3duKCBjb2wxICkKK3sKKyAgaW5kZXggPSBjb2wxLnNlbGVjdGVkSW5kZXg7CisgIGlmKCBpbmRleCsxID49ICBjb2wxLm9wdGlvbnMubGVuZ3RoICkKKyAgICByZXR1cm4gdHJ1ZTsKKwkKKyAgdG9Nb3ZlID0gY29sMS5vcHRpb25zWyBpbmRleCBdOworICBvcHQgPSBuZXcgT3B0aW9uKCB0b01vdmUudGV4dCwgdG9Nb3ZlLnZhbHVlLCBmYWxzZSwgZmFsc2UgKTsKKyAgY29sMS5vcHRpb25zW2luZGV4XSA9IGNvbDEub3B0aW9uc1tpbmRleCsxXTsKKyAgY29sMS5vcHRpb25zW2luZGV4KzFdID0gb3B0OworICByZXR1cm4gdHJ1ZTsKK30KKworPC9zY3JpcHQ+CisKKworPGh0bWw6Zm9ybSBhY3Rpb249Ii9hY3Rpb25zL215UG9ydGFsUHJlZnMuZG8iICA+CisKKworICAKKyAgPGh0bWw6c2VsZWN0IHByb3BlcnR5PSJyZW1haW5pbmciIG11bHRpcGxlPSJ0cnVlIiA+CisgICAgPGh0bWw6b3B0aW9ucyBwcm9wZXJ0eT0iY2hvaWNlcyIgLz4KKyAgPC9odG1sOnNlbGVjdD4KKworICA8aHRtbDpidXR0b24gcHJvcGVydHk9InYiIHZhbHVlPSJ2IiBvbmNsaWNrPSJtb3ZlKHJlbWFpbmluZyxsMCk7cmV0dXJuIHRydWU7Ii8+CisgIDxicj4KKyAgCisgIDx0YWJsZT4KKyAgPHRyPgorICAgIDx0ZD4KKwkgIDxodG1sOnNlbGVjdCBwcm9wZXJ0eT0ibDAiIG11bHRpcGxlPSJ0cnVlIiBzaXplPSIxMCI+CisJICAgIDxodG1sOm9wdGlvbnMgcHJvcGVydHk9ImNvbFswXSIgbGFiZWxQcm9wZXJ0eT0iY29sTGFiZWxzWzBdIi8+CisJICA8L2h0bWw6c2VsZWN0PgorCTwvdGQ+CisJPHRkPgorCSAgPGh0bWw6c2VsZWN0IHByb3BlcnR5PSJsMSIgbXVsdGlwbGU9InRydWUiIHNpemU9IjEwIj4KKwkgICAgPGh0bWw6b3B0aW9ucyBwcm9wZXJ0eT0iY29sWzFdIiBsYWJlbFByb3BlcnR5PSJjb2xMYWJlbHNbMV0iLz4KKwkgIDwvaHRtbDpzZWxlY3Q+CisJPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICA8dGQgYWxpZ249ImNlbnRlciI+CisgIDxodG1sOmJ1dHRvbiBwcm9wZXJ0eT0icmlnaHQiIHZhbHVlPSJeIiAgIG9uY2xpY2s9InVwKGwwKTtyZXR1cm4gdHJ1ZTsiLz4KKyAgPGh0bWw6YnV0dG9uIHByb3BlcnR5PSJyaWdodCIgdmFsdWU9ImRlbCIgICBvbmNsaWNrPSJyZW1vdmUobDApO3JldHVybiB0cnVlOyIvPgorICA8aHRtbDpidXR0b24gcHJvcGVydHk9InJpZ2h0IiB2YWx1ZT0idiIgICBvbmNsaWNrPSJkb3duKGwwKTtyZXR1cm4gdHJ1ZTsiLz4KKyAgPGh0bWw6YnV0dG9uIHByb3BlcnR5PSJsZWZ0IiB2YWx1ZT0iPiIgICAgIG9uY2xpY2s9Im1vdmUobDAsbDEpO3JldHVybiBmYWxzZTsiIC8+CisgIDwvdGQ+CisgIDx0ZCBhbGlnbj0iY2VudGVyIj4KKyAgPGh0bWw6YnV0dG9uIHByb3BlcnR5PSJyaWdodCIgdmFsdWU9IjwiICAgIG9uY2xpY2s9Im1vdmUobDEsbDApO3JldHVybiB0cnVlOyIvPgorICA8aHRtbDpidXR0b24gcHJvcGVydHk9InJpZ2h0IiB2YWx1ZT0iXiIgICBvbmNsaWNrPSJ1cChsMSk7cmV0dXJuIHRydWU7Ii8+CisgIDxodG1sOmJ1dHRvbiBwcm9wZXJ0eT0icmlnaHQiIHZhbHVlPSJkZWwiICAgb25jbGljaz0icmVtb3ZlKGwxKTtyZXR1cm4gdHJ1ZTsiLz4KKyAgPGh0bWw6YnV0dG9uIHByb3BlcnR5PSJyaWdodCIgdmFsdWU9InYiICAgb25jbGljaz0iZG93bihsMSk7cmV0dXJuIHRydWU7Ii8+CisgIDwvdGQ+CisgIDwvdHI+CisgIDx0cj4KKyAgICA8dGQgY29sc3Bhbj0iMiIgIGFsaWduPSJjZW50ZXIiPgorCSAgCisgICAgICA8aHRtbDpzdWJtaXQgcHJvcGVydHk9InZhbGlkYXRlIiB2YWx1ZT0idmFsaWRhdGUiIG9uY2xpY2s9InNlbGVjdEFsbChsMCwgbDEpO3JldHVybiB0cnVlOyIvPgorCTwvdGQ+CisgIDwvdHI+CisgIDwvdGFibGU+CisgIAorICAKKworICAKKzwvaHRtbDpmb3JtPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2R5blBvcnRhbC9teVBvcnRhbFByZWZzLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9keW5Qb3J0YWwvbXlQb3J0YWxQcmVmcy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVhZDg3NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9keW5Qb3J0YWwvbXlQb3J0YWxQcmVmcy5qc3AKQEAgLTAsMCArMSwzIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgZGVmaW5pdGlvbj0ibXlEeW5hbWljUG9ydGFsUHJlZmVyZW5jZXMiIGZsdXNoPSJ0cnVlIiAvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2R5blBvcnRhbC90ZXN0Q2hhbm5lbHMuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2R5blBvcnRhbC90ZXN0Q2hhbm5lbHMuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1YTkwODMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvZHluUG9ydGFsL3Rlc3RDaGFubmVscy5qc3AKQEAgLTAsMCArMSwzIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgZGVmaW5pdGlvbj0idGVzdC5yc3NDaGFubmVsLnBhZ2UiIGZsdXNoPSJ0cnVlIiAvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2V4dGVuZGVkRGVmaW5pdGlvbi5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvZXh0ZW5kZWREZWZpbml0aW9uLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzQ1ZmU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2V4dGVuZGVkRGVmaW5pdGlvbi5qc3AKQEAgLTAsMCArMSwzIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgZGVmaW5pdGlvbj0iZXh0ZW5kZWQuZGVmaW5pdGlvbi5leGFtcGxlIiBmbHVzaD0idHJ1ZSIgLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9leHRlbmRlZERlZmluaXRpb25UYWcuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2V4dGVuZGVkRGVmaW5pdGlvblRhZy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTkwMzVjNwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9leHRlbmRlZERlZmluaXRpb25UYWcuanNwCkBAIC0wLDAgKzEsNyBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6ZGVmaW5pdGlvbiBpZD0iZGVmaW5pdGlvbk5hbWUiIGV4dGVuZHM9Im15Rmlyc3REZWZpbml0aW9uIiA+CisgIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iTXkgZmlyc3QgZXh0ZW5kZWQgZGVmaW5pdGlvbiB0YWcgcGFnZSIgLz4KKzwvdGlsZXM6ZGVmaW5pdGlvbj4KKworPHRpbGVzOmluc2VydCBiZWFuTmFtZT0iZGVmaW5pdGlvbk5hbWUiIGZsdXNoPSJ0cnVlIiAvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ZpcnN0RGVmaW5pdGlvbi5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvZmlyc3REZWZpbml0aW9uLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzU4MmM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ZpcnN0RGVmaW5pdGlvbi5qc3AKQEAgLTAsMCArMSwzIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgZGVmaW5pdGlvbj0ibXlGaXJzdERlZmluaXRpb24iIGZsdXNoPSJ0cnVlIiAvPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ZvcndhcmQvZmFpbHVyZUJvZHkuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ZvcndhcmQvZmFpbHVyZUJvZHkuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlZmUxMWIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvZm9yd2FyZC9mYWlsdXJlQm9keS5qc3AKQEAgLTAsMCArMSw1IEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKyAgU3RydXRzIGZvcndhcmQgdG8gJ2ZhaWx1cmUnLgorIDxicj4KKzx0aWxlczppbnNlcnQgcGFnZT0iL3R1dG9yaWFsL2ZvcndhcmQvZm9yd2FyZEJvZHkuanNwIiBmbHVzaD0idHJ1ZSIgLz4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9mb3J3YXJkL2ZvcndhcmRCb2R5LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9mb3J3YXJkL2ZvcndhcmRCb2R5LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWRmYTAwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ZvcndhcmQvZm9yd2FyZEJvZHkuanNwCkBAIC0wLDAgKzEsNSBAQAorPGZvcm0gYWN0aW9uPSJmb3J3YXJkRXhhbXBsZUFjdGlvbi5kbyI+CitTZWxlY3QgYW4gYWN0aW9uIDoKKzxicj48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWNjZXNzIiB2YWx1ZT0ic3VjY2VzcyI+Cis8YnI+PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iZmFpbHVyZSIgdmFsdWU9ImZhaWx1cmUiPgorPC9mb3JtPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ZvcndhcmQvc3VjY2Vzc0JvZHkuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ZvcndhcmQvc3VjY2Vzc0JvZHkuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhNGU3M2QKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvZm9yd2FyZC9zdWNjZXNzQm9keS5qc3AKQEAgLTAsMCArMSw2IEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKyAgU3RydXRzIGZvcndhcmQgdG8gJ3N1Y2Nlc3MnLgorIDxicj4KKzx0aWxlczppbnNlcnQgcGFnZT0iL3R1dG9yaWFsL2ZvcndhcmQvZm9yd2FyZEJvZHkuanNwIiBmbHVzaD0idHJ1ZSIgLz4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ZyL2NvbW1vbi9mb290ZXIuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ZyL2NvbW1vbi9mb290ZXIuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2NDg5ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvZnIvY29tbW9uL2Zvb3Rlci5qc3AKQEAgLTAsMCArMSw3IEBACis8ZGl2IGFsaWduPSJjZW50ZXIiPgorICA8Zm9udCBjb2xvcj0iIzAyMzI2NCIgc2l6ZT0iLTEiPgorICAgIDxlbT4gICAgICAgICBDb3B5cmlnaHQgJmNvcHk7IDIwMDAtMjAwMSwgTWFQZXRpdGVFbnRyZXByaXNlICAgICAgICAgPC9lbT4KKzxicj48ZW0+ICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiBGcmFu52Fpc2UgICAgICAgICAgICAgICAgICAgICA8L2VtPgorICA8L2ZvbnQ+Cis8L2Rpdj4KKzxpbWcgc3JjPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi9pbWFnZXMvc3RydXRzLXBvd2VyLmdpZiIgYWxpZ249InJpZ2h0IiBib3JkZXI9IjAiPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ZyL2NvbW1vbi9oZWFkZXIuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ZyL2NvbW1vbi9oZWFkZXIuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1M2Y2OWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvZnIvY29tbW9uL2hlYWRlci5qc3AKQEAgLTAsMCArMSwzIEBACisKKzxQPjxpbWcgc3JjPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi9pbWFnZXMvaWRfbmF2X291dHNpZGUuZ2lmIiBhbGlnbj0ibGVmdCIgYm9yZGVyPSIwIj4KKzxpbWcgc3JjPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi9pbWFnZXMvaWRfbmF2X2JrZ25kLmdpZiIgYWxpZ249InJpZ2h0IiBib3JkZXI9IjAiPiA8L1A+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvZnJhbWVzZXQuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ZyYW1lc2V0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTgyZTZlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ZyYW1lc2V0LmpzcApAQCAtMCwwICsxLDIxIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzwlLS0gTGF5b3V0IGNvbXBvbmVudCAKKyAgcGFyYW1ldGVycyA6IHRpdGxlLCBoZWFkZXIsIG1lbnUsIGJvZHksIGZvb3RlciAKKy0tJT4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+PHRpbGVzOmdldEFzU3RyaW5nIG5hbWU9InRpdGxlIi8+PC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8ZnJhbWVzZXQgcm93cz0iMyI+CisgIDxmcmFtZSBzcmM9Ijx0aWxlczpnZXQgbmFtZT0iaGVhZGVyIiAvPiIgbmFtZT0iaGVhZGVyIiBpZD0iaGVhZGVyIiBzY3JvbGxpbmc9IkF1dG8iPgorICA8ZnJhbWUgc3JjPSI8dGlsZXM6Z2V0IG5hbWU9ImJvZHkiIC8+IiBuYW1lPSJib2R5IiBpZD0iaGVhZGVyIiBzY3JvbGxpbmc9IkF1dG8iPgorICA8ZnJhbWUgc3JjPSI8dGlsZXM6Z2V0IG5hbWU9ImZvb3RlciIgLz4iIG5hbWU9ImZvb3RlciIgaWQ9ImhlYWRlciIgc2Nyb2xsaW5nPSJBdXRvIj4KKzwvZnJhbWVzZXQ+Cis8L2JvZHk+CisKKworPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9iYW5uZXIxYi5naWYgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvaW1hZ2VzL2Jhbm5lcjFiLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDZhMTA4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9iYW5uZXIxYi5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9iYW5uZXJfYm90dG9tLmdpZiBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9pbWFnZXMvYmFubmVyX2JvdHRvbS5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNkZWIzMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9pbWFnZXMvYmFubmVyX2JvdHRvbS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9pZF9ia2duZC5naWYgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvaW1hZ2VzL2lkX2JrZ25kLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGFkYTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9pZF9ia2duZC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9pZF9uYXZfYmtnbmQuZ2lmIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9pZF9uYXZfYmtnbmQuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhNGM4OTgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvaW1hZ2VzL2lkX25hdl9ia2duZC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9pZF9uYXZfb3V0c2lkZS5naWYgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvaW1hZ2VzL2lkX25hdl9vdXRzaWRlLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTI0MzdjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9pZF9uYXZfb3V0c2lkZS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9pbnB1dC5naWYgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvaW1hZ2VzL2lucHV0LmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNmZmYzMxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9pbnB1dC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9pbnB1dF9nZW5fc2VhcmNoLmdpZiBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9pbWFnZXMvaW5wdXRfZ2VuX3NlYXJjaC5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWEyNjk5OAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9pbWFnZXMvaW5wdXRfZ2VuX3NlYXJjaC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9pbnB1dF92cm1fZ2VuX2dldC5naWYgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvaW1hZ2VzL2lucHV0X3ZybV9nZW5fZ2V0LmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjE0ZTkwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9pbnB1dF92cm1fZ2VuX2dldC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9zdHJ1dHMtcG93ZXIuZ2lmIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ltYWdlcy9zdHJ1dHMtcG93ZXIuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmNGU5ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvaW1hZ2VzL3N0cnV0cy1wb3dlci5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2luZGV4LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9pbmRleC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjM1Zjk4OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9pbmRleC5qc3AKQEAgLTAsMCArMSwzIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgZGVmaW5pdGlvbj0ibWFpbkxheW91dCIgZmx1c2g9InRydWUiIC8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvaW52b2ljZS9lZGl0QWRkcmVzcy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvaW52b2ljZS9lZGl0QWRkcmVzcy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQxOTU3NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9pbnZvaWNlL2VkaXRBZGRyZXNzLmpzcApAQCAtMCwwICsxLDY4IEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiICAgIHByZWZpeD0idGlsZXMiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtaHRtbCIgcHJlZml4PSJodG1sIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWJlYW4iIHByZWZpeD0iYmVhbiIgJT4KKworPCUtLSBFZGl0IGFuIEFkZHJlc3Mgb2JqZWN0CisgIEBwYXJhbSBiZWFuIEFuIGFkZHJlc3Mgb2JqZWN0IHRvIGVkaXQuCisgIEBwYXJhbSBiZWFuTmFtZSBUaGUgcGF0aCB0byBhZGQgYmV0d2VlbiB0aGUgYmVhbiBhbmQgdGhlIHByb3BlcnRpZXMgdG8gZWRpdC4KKy0tJT4KKzwlLS0gUmV0cmlldmUgcGFyYW1ldGVycyBmcm9tIGNvbXBvbmVudCBjb250ZXh0LCBhbmQgZGVjbGFyZSB0aGVtIGFzIHBhZ2UgdmFyaWFibGUgLS0lPgorPHRpbGVzOnVzZUF0dHJpYnV0ZSBpZD0iYmVhbk5hbWUiIG5hbWU9InByb3BlcnR5IiBjbGFzc25hbWU9ImphdmEubGFuZy5TdHJpbmciIGlnbm9yZT0idHJ1ZSIgLz4KKzx0aWxlczppbXBvcnRBdHRyaWJ1dGUgbmFtZT0iYmVhbiIgLz4KKworPCUtLSBBZGQgYSAnLicgc2VwYXJhdG9yIHRvIHRoZSBwYXRoIChiZWFuTmFtZSksIGluIG9yZGVyIHRvIGFjY2VzcyB0aGUgcHJvcGVydHkgZnJvbSB0aGUgZ2l2ZW4gYmVhbiAtLSU+Cis8JSBpZiggYmVhbk5hbWUgPT0gbnVsbCApIGJlYW5OYW1lID0gIiI7IGVsc2UgaWYgKGJlYW5OYW1lICE9IiIgKSBiZWFuTmFtZSA9IGJlYW5OYW1lICsgIi4iOyAlPgorCis8dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSI+CisKKyAgPHRyPgorICAgIDx0aCBhbGlnbj0icmlnaHQiIHdpZHRoPSIzMCUiPgorICAgICAgU3RyZWV0CisgICAgPC90aD4KKyAgICA8dGQgYWxpZ249ImxlZnQiPgorCSAgPCUtLSBEZWNsYXJlIGFuIGh0bWwgaW5wdXQgZmllbGQuIAkJCQkJCQkJCQktLSU+CisJICA8JS0tIFdlIHVzZSB0aGUgYmVhbiBwYXNzZWQgYXMgcGFyYW1ldGVyLiAgCQkJCQkJCQktLSU+CisJICA8JS0tIFByb3BlcnR5IG5hbWUgaXMgcHJlZml4ZWQgYnkgdGhlIHN1Yi1iZWFuIG5hbWUgaWYgYW55LgkJCSAgICAtLSU+CisJICAKKwkgIDxodG1sOnRleHQgbmFtZT0iYmVhbiIgcHJvcGVydHk9JzwlPWJlYW5OYW1lKyJzdHJlZXQxIiU+JyBzaXplPSI1MCIvPgorCSAgCisgICAgPC90ZD4KKyAgPC90cj4KKworICA8dHI+CisgICAgPHRoIGFsaWduPSJyaWdodCI+CisgICAgICBTdHJlZXQgKGNvbid0KQorICAgIDwvdGg+CisgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgPGh0bWw6dGV4dCBwcm9wZXJ0eT0nPCU9YmVhbk5hbWUrInN0cmVldDIiJT4nIHNpemU9IjUwIi8+CisgICAgPC90ZD4KKyAgPC90cj4KKworICA8dHI+CisgICAgPHRoIGFsaWduPSJyaWdodCI+CisgICAgICBDaXR5CisgICAgPC90aD4KKyAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICA8aHRtbDp0ZXh0IG5hbWU9ImJlYW4iIHByb3BlcnR5PSc8JT1iZWFuTmFtZSsiY2l0eSIlPicgc2l6ZT0iNTAiLz4KKyAgICA8L3RkPgorICA8L3RyPgorCisgIDx0cj4KKyAgICA8dGggYWxpZ249InJpZ2h0Ij4KKyAgICAgIENvdW50cnkKKyAgICA8L3RoPgorICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgIDxodG1sOnRleHQgcHJvcGVydHk9JzwlPWJlYW5OYW1lKyJjb3VudHJ5IiU+JyBzaXplPSI1MCIvPgorICAgIDwvdGQ+CisgIDwvdHI+CisKKyAgPHRyPgorICAgIDx0aCBhbGlnbj0icmlnaHQiPgorICAgICAgWmlwIGNvZGUKKyAgICA8L3RoPgorICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisJICA8aHRtbDp0ZXh0IHByb3BlcnR5PSc8JT1iZWFuTmFtZSsiemlwQ29kZSIlPicgc2l6ZT0iNTAiLz4KKyAgICA8L3RkPgorICA8L3RyPgorCis8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ludm9pY2UvZWRpdEFkZHJlc3MyLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9pbnZvaWNlL2VkaXRBZGRyZXNzMi5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDIxNzQ0NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9pbnZvaWNlL2VkaXRBZGRyZXNzMi5qc3AKQEAgLTAsMCArMSw2NSBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiAgICBwcmVmaXg9InRpbGVzIiAlPgorPCVAIHRhZ2xpYiB1cmk9Ii9XRUItSU5GL2V4dGVuc2lvbnMudGxkIiAgICBwcmVmaXg9ImV4dCIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1iZWFuIiBwcmVmaXg9ImJlYW4iICU+CisKKzwlLS0gRWRpdCBhbiBBZGRyZXNzIG9iamVjdAorICBAcGFyYW0gYWRkcmVzcyBBbiBhZGRyZXNzIG9iamVjdCB0byBlZGl0LgorICBAcGFyYW0gY29tcE5hbWUgVUkgQ29tcG9uZW50IG5hbWUuIFVzZSBhcyBwcmVmaXggZm9yIGh0bWwgZmllbGRzIGFuZCBzdWItY29tcG9uZW50cworLS0lPgorPCUtLSBSZXRyaWV2ZSBwYXJhbWV0ZXJzIGZyb20gY29tcG9uZW50IGNvbnRleHQsIGFuZCBkZWNsYXJlIHRoZW0gYXMgcGFnZSB2YXJpYWJsZSAtLSU+Cis8dGlsZXM6dXNlQXR0cmlidXRlIGlkPSJhZGRyIiBuYW1lPSJhZGRyZXNzIiBzY29wZT0icGFnZSIgIC8+Cis8dGlsZXM6dXNlQXR0cmlidXRlIGlkPSJwcmVmaXgiIG5hbWU9ImNvbXBOYW1lIiBjbGFzc25hbWU9ImphdmEubGFuZy5TdHJpbmciLz4KKzwlLS0gQWRkIGEgc2VwYXJhdG9yIHRvdGhlIGNvbXBvbmVudCBuYW1lLCBpbiBvcmRlciB0byBoYXZlIGh0bWwgZmllbGRzIHByZWZpeCBuYW1lIDogJ2NvbXBOYW1lLictLSU+Cis8JSBwcmVmaXggPSBwcmVmaXggKyAiLiI7ICU+CisKKzx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIj4KKworICA8dHI+CisgICAgPHRoIGFsaWduPSJyaWdodCIgd2lkdGg9IjMwJSI+CisgICAgICBTdHJlZXQgaGVsbworICAgIDwvdGg+CisgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKwkgIDwlLS0gRGVjbGFyZSBhbiBodG1sIGlucHV0IGZpZWxkLiAJCQkJCQkJCQkJLS0lPgorCSAgPCUtLSBXZSB1c2UgYSB0YWcgdGhhdCBleHRlbmRzIFN0cnV0cyAndGV4dCcgdGFnLiBUaGlzIGV4dGVuc2lvbiBhZGQgCQktLSU+CisJICA8JS0tIGF0dHJpYnV0ZSAncHJlZml4JywgYWxsb3dpbmcgdG8gZ2l2ZSBhIHByZWZpeCB0byB0aGUgbm9ybWFsIG5hbWUgIAktLSU+CisJICA8ZXh0OnRleHQgbmFtZT0iYWRkciIgcHJlZml4PSI8JT1wcmVmaXglPiIgcHJvcGVydHk9InN0cmVldDEiIHNpemU9IjUwIi8+CisgICAgPC90ZD4KKyAgPC90cj4KKworICA8dHI+CisgICAgPHRoIGFsaWduPSJyaWdodCI+CisgICAgICBTdHJlZXQgKGNvbid0KQorICAgIDwvdGg+CisgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgPGV4dDp0ZXh0IHByZWZpeD0iPCU9cHJlZml4JT4iIG5hbWU9ImFkZHIiIHByb3BlcnR5PSJzdHJlZXQyIiBzaXplPSI1MCIvPgorICAgIDwvdGQ+CisgIDwvdHI+CisKKyAgPHRyPgorICAgIDx0aCBhbGlnbj0icmlnaHQiPgorICAgICAgQ2l0eQorICAgIDwvdGg+CisgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgPGV4dDp0ZXh0IHByZWZpeD0iPCU9cHJlZml4JT4iIG5hbWU9ImFkZHIiIHByb3BlcnR5PSJjaXR5IiBzaXplPSI1MCIvPgorICAgIDwvdGQ+CisgIDwvdHI+CisKKyAgPHRyPgorICAgIDx0aCBhbGlnbj0icmlnaHQiPgorICAgICAgQ291bnRyeQorICAgIDwvdGg+CisgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgPGV4dDp0ZXh0IHByZWZpeD0iPCU9cHJlZml4JT4iIG5hbWU9ImFkZHIiIHByb3BlcnR5PSJjb3VudHJ5IiBzaXplPSI1MCIvPgorICAgIDwvdGQ+CisgIDwvdHI+CisKKyAgPHRyPgorICAgIDx0aCBhbGlnbj0icmlnaHQiPgorICAgICAgWmlwIGNvZGUKKyAgICA8L3RoPgorICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisJICA8ZXh0OnRleHQgcHJlZml4PSI8JT1wcmVmaXglPiIgbmFtZT0iYWRkciIgcHJvcGVydHk9InppcENvZGUiIHNpemU9IjUwIi8+CisgICAgPC90ZD4KKyAgPC90cj4KKworPC90YWJsZT4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9pbnZvaWNlL2VkaXRJbnZvaWNlLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9pbnZvaWNlL2VkaXRJbnZvaWNlLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOThjYTNhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ludm9pY2UvZWRpdEludm9pY2UuanNwCkBAIC0wLDAgKzEsOTEgQEAKKzwlQCBwYWdlIGxhbmd1YWdlPSJqYXZhIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiAgICBwcmVmaXg9InRpbGVzIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWh0bWwiIHByZWZpeD0iaHRtbCIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1iZWFuIiBwcmVmaXg9ImJlYW4iICU+CisKKzxodG1sOmVycm9ycy8+CisKKzxodG1sOmZvcm0gYWN0aW9uPSIvaW52b2ljZS9lZGl0SW52b2ljZS5kbyIgPgorCis8Zm9udCBzaXplPSIrMSI+RWRpdCBDdXN0b21lciBJbmZvcm1hdGlvbnM8L2ZvbnQ+CisJCQkgICAKKzx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIj4KKworICA8dHI+CisgICAgPHRoIGFsaWduPSJyaWdodCIgd2lkdGg9IjMwJSI+CisgICAgICBGaXJzdCBOYW1lCisgICAgPC90aD4KKyAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICA8aHRtbDp0ZXh0IHByb3BlcnR5PSJmaXJzdG5hbWUiIHNpemU9IjUwIi8+CisgICAgPC90ZD4KKyAgPC90cj4KKworICA8dHI+CisgICAgPHRoIGFsaWduPSJyaWdodCI+CisgICAgICBMYXN0IE5hbWUKKyAgICA8L3RoPgorICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisJICA8aHRtbDp0ZXh0IHByb3BlcnR5PSJsYXN0bmFtZSIgc2l6ZT0iNTAiLz4KKyAgICA8L3RkPgorICA8L3RyPgorIAorCisgIDx0cj4KKyAgICA8dGggYWxpZ249InJpZ2h0IiA+CisgICAgICBTaGlwcGluZyBBZGRyZXNzCisgICAgPC90aD4KKyAgICA8dGQgYWxpZ249ImxlZnQiPgorCSAgJm5ic3A7CisgICAgPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZCBhbGlnbj0iY2VudGVyIiBjb2xzcGFuPSIyIj4KKwkgIDwlLS0gSW5jbHVkZSBhbiAiYWRkcmVzcyBlZGl0b3IiIGNvbXBvbmVudC4JCQkJCS0tJT4KKwkgIDwlLS0gUGFzcyB0aGUgY29tcG9uZW50IG5hbWUgYW5kIGNvbXBvbmVudCB2YWx1ZSBhcyBwYXJhbWV0ZXIJLS0lPgorCSAgPCUtLSBWYWx1ZSBjb21lcyBmcm9tIHRoZSBmb3JtIGJlYW4gLS0lPgorCSAgPHRpbGVzOmluc2VydCBwYWdlPSIvdHV0b3JpYWwvaW52b2ljZS9lZGl0QWRkcmVzcy5qc3AiID4KKwkgICAgPHRpbGVzOnB1dCBuYW1lPSJwcm9wZXJ0eSIgdmFsdWU9InNoaXBwaW5nQWRkcmVzcyIgLz4KKwkgICAgPHRpbGVzOnB1dCBuYW1lPSJiZWFuIiBiZWFuTmFtZT0iaW52b2ljZUZvcm0iICAvPgorCSAgPC90aWxlczppbnNlcnQ+CisgICAgPC90ZD4KKyAgPC90cj4KKworICA8dHI+CisgICAgPHRoIGFsaWduPSJyaWdodCIgPgorICAgICAgQmlsbGluZyBBZGRyZXNzCisgICAgPC90aD4KKyAgICA8dGQgYWxpZ249ImxlZnQiPgorCSAgJm5ic3A7CisgICAgPC90ZD4KKyAgPC90cj4KKyAgPHRyPgorICAgIDx0ZCBhbGlnbj0iY2VudGVyIiBjb2xzcGFuPSIyIj4KKyAgPHRpbGVzOmluc2VydCBwYWdlPSIvdHV0b3JpYWwvaW52b2ljZS9lZGl0QWRkcmVzcy5qc3AiID4KKyAgICA8dGlsZXM6cHV0IG5hbWU9InByb3BlcnR5IiB2YWx1ZT0iYmlsbEFkZHJlc3MiIC8+CisJPHRpbGVzOnB1dCBuYW1lPSJiZWFuIiBiZWFuTmFtZT0iaW52b2ljZUZvcm0iIC8+CisgIDwvdGlsZXM6aW5zZXJ0PgorICAgIDwvdGQ+CisgIDwvdHI+CisKKyAgPHRyPgorICAgIDx0ZCBhbGlnbj0icmlnaHQiPgorICAgICAgICA8aHRtbDpzdWJtaXQ+CisgICAgICAgICAgc2F2ZQorICAgICAgICA8L2h0bWw6c3VibWl0PgorICAgICAgICA8aHRtbDpzdWJtaXQ+CisgICAgICAgICAgY29uZmlybQorICAgICAgICA8L2h0bWw6c3VibWl0PgorICAgIDwvdGQ+CisgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKyAgICAgICAgPGh0bWw6cmVzZXQ+CisgICAgICAgICAgcmVzZXQKKyAgICAgICAgPC9odG1sOnJlc2V0PgorICAgICAgJm5ic3A7CisgICAgICA8aHRtbDpjYW5jZWw+CisgICAgICAgIGNhbmNlbAorICAgICAgPC9odG1sOmNhbmNlbD4KKyAgICA8L3RkPgorICA8L3RyPgorPC90YWJsZT4KKwkJCSAgIAorPC9odG1sOmZvcm0+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvaW52b2ljZS9lZGl0SW52b2ljZTIuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ludm9pY2UvZWRpdEludm9pY2UyLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODVjOThhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ludm9pY2UvZWRpdEludm9pY2UyLmpzcApAQCAtMCwwICsxLDkxIEBACis8JUAgcGFnZSBsYW5ndWFnZT0iamF2YSIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgIHByZWZpeD0idGlsZXMiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtaHRtbCIgcHJlZml4PSJodG1sIiAlPgorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLWJlYW4iIHByZWZpeD0iYmVhbiIgJT4KKworPGh0bWw6ZXJyb3JzLz4KKworPGh0bWw6Zm9ybSBhY3Rpb249Ii9pbnZvaWNlL2VkaXRJbnZvaWNlLmRvIiA+CisKKzxmb250IHNpemU9IisxIj5FZGl0IEN1c3RvbWVyIEluZm9ybWF0aW9uczwvZm9udD4KKwkJCSAgIAorPHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiPgorCisgIDx0cj4KKyAgICA8dGggYWxpZ249InJpZ2h0IiB3aWR0aD0iMzAlIj4KKyAgICAgIEZpcnN0IE5hbWUKKyAgICA8L3RoPgorICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisgICAgICAgIDxodG1sOnRleHQgcHJvcGVydHk9ImZpcnN0bmFtZSIgc2l6ZT0iNTAiLz4KKyAgICA8L3RkPgorICA8L3RyPgorCisgIDx0cj4KKyAgICA8dGggYWxpZ249InJpZ2h0Ij4KKyAgICAgIExhc3QgTmFtZQorICAgIDwvdGg+CisgICAgPHRkIGFsaWduPSJsZWZ0Ij4KKwkgIDxodG1sOnRleHQgcHJvcGVydHk9Imxhc3RuYW1lIiBzaXplPSI1MCIvPgorICAgIDwvdGQ+CisgIDwvdHI+CisgCisKKyAgPHRyPgorICAgIDx0aCBhbGlnbj0icmlnaHQiID4KKyAgICAgIFNoaXBwaW5nIEFkZHJlc3MKKyAgICA8L3RoPgorICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisJICAmbmJzcDsKKyAgICA8L3RkPgorICA8L3RyPgorICA8dHI+CisgICAgPHRkIGFsaWduPSJjZW50ZXIiIGNvbHNwYW49IjIiPgorCSAgPCUtLSBJbmNsdWRlIGFuICJhZGRyZXNzIGVkaXRvciIgY29tcG9uZW50LgkJCQkJLS0lPgorCSAgPCUtLSBQYXNzIHRoZSBjb21wb25lbnQgbmFtZSBhbmQgY29tcG9uZW50IHZhbHVlIGFzIHBhcmFtZXRlcgktLSU+CisJICA8JS0tIFZhbHVlIGNvbWVzIGZyb20gdGhlIGZvcm0gYmVhbiAtLSU+CisJICA8dGlsZXM6aW5zZXJ0IHBhZ2U9Ii90dXRvcmlhbC9pbnZvaWNlL2VkaXRBZGRyZXNzLmpzcCIgPgorCSAgICA8dGlsZXM6cHV0IG5hbWU9ImNvbXBOYW1lIiB2YWx1ZT0ic2hpcHBpbmdBZGRyZXNzIiAvPgorCSAgICA8dGlsZXM6cHV0IG5hbWU9ImFkZHJlc3MiIGJlYW5OYW1lPSJpbnZvaWNlRm9ybSIgYmVhblByb3BlcnR5PSJzaGlwcGluZ0FkZHJlc3MiIC8+CisJICA8L3RpbGVzOmluc2VydD4KKyAgICA8L3RkPgorICA8L3RyPgorCisgIDx0cj4KKyAgICA8dGggYWxpZ249InJpZ2h0IiA+CisgICAgICBCaWxsaW5nIEFkZHJlc3MKKyAgICA8L3RoPgorICAgIDx0ZCBhbGlnbj0ibGVmdCI+CisJICAmbmJzcDsKKyAgICA8L3RkPgorICA8L3RyPgorICA8dHI+CisgICAgPHRkIGFsaWduPSJjZW50ZXIiIGNvbHNwYW49IjIiPgorICA8dGlsZXM6aW5zZXJ0IHBhZ2U9Ii90dXRvcmlhbC9pbnZvaWNlL2VkaXRBZGRyZXNzLmpzcCIgPgorICAgIDx0aWxlczpwdXQgbmFtZT0iY29tcE5hbWUiIHZhbHVlPSJiaWxsQWRkcmVzcyIgLz4KKwk8dGlsZXM6cHV0IG5hbWU9ImFkZHJlc3MiIGJlYW5OYW1lPSJpbnZvaWNlRm9ybSIgYmVhblByb3BlcnR5PSJiaWxsQWRkcmVzcyIgLz4KKyAgPC90aWxlczppbnNlcnQ+CisgICAgPC90ZD4KKyAgPC90cj4KKworICA8dHI+CisgICAgPHRkIGFsaWduPSJyaWdodCI+CisgICAgICAgIDxodG1sOnN1Ym1pdD4KKyAgICAgICAgICBzYXZlCisgICAgICAgIDwvaHRtbDpzdWJtaXQ+CisgICAgICAgIDxodG1sOnN1Ym1pdD4KKyAgICAgICAgICBjb25maXJtCisgICAgICAgIDwvaHRtbDpzdWJtaXQ+CisgICAgPC90ZD4KKyAgICA8dGQgYWxpZ249ImxlZnQiPgorICAgICAgICA8aHRtbDpyZXNldD4KKyAgICAgICAgICByZXNldAorICAgICAgICA8L2h0bWw6cmVzZXQ+CisgICAgICAmbmJzcDsKKyAgICAgIDxodG1sOmNhbmNlbD4KKyAgICAgICAgY2FuY2VsCisgICAgICA8L2h0bWw6Y2FuY2VsPgorICAgIDwvdGQ+CisgIDwvdHI+Cis8L3RhYmxlPgorCQkJICAgCis8L2h0bWw6Zm9ybT4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9pbnZvaWNlL2luZGV4LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9pbnZvaWNlL2luZGV4LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWMzMGUwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2ludm9pY2UvaW5kZXguanNwCkBAIC0wLDAgKzEsOCBAQAorPCVAIHBhZ2UgbGFuZ3VhZ2U9ImphdmEiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgZGVmaW5pdGlvbj0ibWFpbkxheW91dCIgZmx1c2g9InRydWUiPgorICA8dGlsZXM6cHV0IG5hbWU9ImJvZHkiIHZhbHVlPSIvdHV0b3JpYWwvaW52b2ljZS9lZGl0SW52b2ljZS5qc3AiIC8+CisgIDwlLS0gIDx0aWxlczpwdXQgbmFtZT0iYm9keSIgdmFsdWU9Ii90dXRvcmlhbC9pbnZvaWNlL2VkaXRJbnZvaWNlMi5qc3AiIC8+IC0tJT4KKzwvdGlsZXM6aW5zZXJ0PgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvbGFuZy9sYW5nLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9sYW5nL2xhbmcuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxMGJlNmQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvbGFuZy9sYW5nLmpzcApAQCAtMCwwICsxLDUgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPGEgaHJlZj0idHV0b3JpYWwvbGFuZy5kbz9sYW5ndWFnZT1GUiI+RnJhbmNhaXM8L2E+Cis8YnI+Cis8YSBocmVmPSJ0dXRvcmlhbC9sYW5nLmRvP2xhbmd1YWdlPVVLIj5FbmdsaXNoPC9hPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2xheW91dC9jbGFzc2ljTGF5b3V0LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9sYXlvdXQvY2xhc3NpY0xheW91dC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWYyNzgzZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9sYXlvdXQvY2xhc3NpY0xheW91dC5qc3AKQEAgLTAsMCArMSw0NSBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8JS0tIExheW91dCBUaWxlcyAKKyAgVGhpcyBsYXlvdXQgcmVuZGVyIGEgaGVhZGVyLCBsZWZ0IG1lbnUsIGJvZHkgYW5kIGZvb3Rlci4KKyAgQHBhcmFtIHRpdGxlIFN0cmluZyB1c2UgaW4gcGFnZSB0aXRsZQorICBAcGFyYW0gaGVhZGVyIEhlYWRlciB0aWxlIChqc3AgdXJsIG9yIGRlZmluaXRpb24gbmFtZSkKKyAgQHBhcmFtIG1lbnUgTWVudSAKKyAgQHBhcmFtIGJvZHkgQm9keQorICBAcGFyYW0gZm9vdGVyIEZvb3RlcgorLS0lPgorCis8SFRNTD4KKyAgPEhFQUQ+CisgICAgPGxpbmsgcmVsPXN0eWxlc2hlZXQgaHJlZj0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vdHV0b3JpYWwvbGF5b3V0L3N0eWxlc2hlZXQuY3NzIiB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgCisgICAgPHRpdGxlPjx0aWxlczpnZXRBc1N0cmluZyBuYW1lPSJ0aXRsZSIvPjwvdGl0bGU+CisgIDwvSEVBRD4KKworPGJvZHkgYmdjb2xvcj0iI2ZmZmZmZiIgdGV4dD0iIzAwMDAwMCIgbGluaz0iIzAyMzI2NCIgYWxpbms9IiMwMjMyNjQiIHZsaW5rPSIjMDIzMjY0Ij4KKzx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0iNSI+Cis8dHI+CisgIDx0ZCBjb2xzcGFuPSIyIj48dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0iaGVhZGVyIiAvPjwvdGQ+Cis8L3RyPgorPHRyPgorICA8dGQgd2lkdGg9IjE0MCIgdmFsaWduPSJ0b3AiPgorICAgIDx0aWxlczppbnNlcnQgYXR0cmlidXRlPSdtZW51Jy8+CisgIDwvdGQ+CisgIDx0ZCB2YWxpZ249InRvcCIgIGFsaWduPSJsZWZ0Ij4KKyAgICA8dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0nYm9keScgLz4KKyAgPC90ZD4KKzwvdHI+Cis8dHI+CisgIDx0ZCBjb2xzcGFuPSIyIj4KKyAgICA8aHI+CisgIDwvdGQ+Cis8L3RyPgorPHRyPgorICA8dGQgY29sc3Bhbj0iMiI+CisgICAgPHRpbGVzOmluc2VydCBhdHRyaWJ1dGU9ImZvb3RlciIgLz4KKyAgPC90ZD4KKzwvdHI+Cis8L3RhYmxlPgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvbGF5b3V0L2NvbHVtbnNMYXlvdXQuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2xheW91dC9jb2x1bW5zTGF5b3V0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wY2I4N2Y0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2xheW91dC9jb2x1bW5zTGF5b3V0LmpzcApAQCAtMCwwICsxLDM5IEBACis8JUAgcGFnZSBpbXBvcnQ9Im9yZy5hcGFjaGUuc3RydXRzLnRpbGVzLkNvbXBvbmVudENvbnRleHQiJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPCUtLSBMYXlvdXQgY29tcG9uZW50IAorICBSZW5kZXIgYSBsaXN0IGluIHNldmVyYWxzIGNvbHVtbnMKKyAgcGFyYW1ldGVycyA6IG51bUNvbHMsIGxpc3QwLCBsaXN0MSwgbGlzdDIsIGxpc3QzLCAuLi4gCistLSU+CisKKzx0aWxlczp1c2VBdHRyaWJ1dGUgaWQ9Im51bUNvbHNTdHIiIG5hbWU9Im51bUNvbHMiIGNsYXNzbmFtZT0iamF2YS5sYW5nLlN0cmluZyIgLz4KKworCis8dGFibGU+Cis8dHI+Cis8JQoraW50IG51bUNvbHMgPSBJbnRlZ2VyLnBhcnNlSW50KG51bUNvbHNTdHIpOworQ29tcG9uZW50Q29udGV4dCBjb250ZXh0ID0gQ29tcG9uZW50Q29udGV4dC5nZXRDb250ZXh0KCByZXF1ZXN0ICk7Citmb3IoIGludCBpPTA7IGk8bnVtQ29sczsgaSsrICkKKyAgeworICBqYXZhLnV0aWwuTGlzdCBsaXN0PShqYXZhLnV0aWwuTGlzdCljb250ZXh0LmdldEF0dHJpYnV0ZSggImxpc3QiICsgaSApOworICBwYWdlQ29udGV4dC5zZXRBdHRyaWJ1dGUoImxpc3QiLCBsaXN0ICk7CisgIGlmKGxpc3Q9PW51bGwpCisgICAgU3lzdGVtLm91dC5wcmludGxuKCAibGlzdCBpcyBudWxsIGZvciAiICsgaSAgKTsKKyU+Cis8dGQgdmFsaWduPSJ0b3AiPgorICA8dGlsZXM6aW5zZXJ0IHBhZ2U9Ii9sYXlvdXQvdmJveExheW91dC5qc3AiIGZsdXNoPSJ0cnVlIiA+CisgICAgPHRpbGVzOnB1dCBuYW1lPSJjb21wb25lbnRzTGlzdCIgYmVhbk5hbWU9Imxpc3QiIGJlYW5TY29wZT0icGFnZSIgLz4KKyAgPC90aWxlczppbnNlcnQ+Cis8L3RkPgorPCUKKyAgfSAvLyBlbmQgbG9vcAorJT4KKzwvdHI+Cis8L3RhYmxlPgorCisKKworCisKKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2xheW91dC9zdHlsZXNoZWV0LmNzcyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9sYXlvdXQvc3R5bGVzaGVldC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWI5MzYwMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9sYXlvdXQvc3R5bGVzaGVldC5jc3MKQEAgLTAsMCArMSwyNjMgQEAKKy8qIENTUyBXb3JsZCBGaW5hbmNpYWwgUGVyc29uYWxpdHkgLSBSZXZpc2VkIGp1bjk5ICovCisKKy8qIGJhc2UgZWxlbWVudCBpbmhlcml0YW5jZSBmb3JtYXR0aW5nICovCitib2R5ICAgICAgeyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgCisgICAgICAgICAgICBtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsKKyAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBhcmlhbCwgZ2VuZXZhLCBoZWx2ZXRpY2EsICJzYW5zIHNlcmlmIjsgfQorYSAgICAgICAgIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0gICAvKiBhbGwgbGlua3MgYXJlIGJvbGQgKi8KK2E6bGluayAgICB7IGNvbG9yOiAjMzMwMGNjIH0gICAgICAgLyogdW52aXNpdGVkIGxpbmsgKi8KK2E6dmlzaXRlZCB7IGNvbG9yOiAjMzMwMDk5IH0gICAgICAgLyogdmlzaXRlZCBsaW5rcyAgKi8KK2E6YWN0aXZlICB7IGNvbG9yOiAjMDAwMDMzIH0gICAgICAgLyogYWN0aXZlIGxpbmtzICAgKi8KK2E6aG92ZXIgICB7IGNvbG9yOiAjMDAwMDMzIH0gICAgICAgLyogTVNJRSByb2xsb3ZlciBsaW5rcyAgICovCit0YWJsZSAgICAgeyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgCisgICAgICAgICAgICBtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgfQordGQgICAgICAgIHsgZm9udC1mYW1pbHk6IGFyaWFsLCBnZW5ldmEsIGhlbHZldGljYSwgInNhbnMgc2VyaWYiOyB9Cit0aCAgICAgICAgeyBmb250LWZhbWlseTogYXJpYWwsIGdlbmV2YSwgaGVsdmV0aWNhLCAic2FucyBzZXJpZiI7IAorICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH0KKworLyogYmVnaW4gZGVmaW5lZCBjbGFzc2VzICovCisKKy8qIGhlYWRsaW5lIGNsYXNzZXMgKi8KKy5oZWFkbGluZSB7IGZvbnQtZmFtaWx5OiB2ZXJkYW5hLCBhcmlhbCwgZ2VuZXZhLCAic2FucyBzZXJpZiI7IAorICAgICAgICAgICAgZm9udC1zaXplOiAxMTAlOyBjb2xvcjogIzAwMDAwMDsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB0ZXh0LWFsaWduOiBsZWZ0OyB9CisKKy8qIG9uLXNjcmVlbiBoaW50IGNsYXNzICovCisuaGludCAgICAgeyBmb250LXNpemU6IHgtc21hbGw7IAorICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNmZmZmZmY7IH0KKy5oaW50dmJtICAgICB7IGZvbnQtc2l6ZTogeC1zbWFsbDsgfQorCisvKiBNZXNzYWdlIGNsYXNzZXMgKi8KKy5ub3RlICAgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7IAorICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNmZmZmZmY7IAorICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgdGV4dC1hbGlnbjogbGVmdDsgCisgICAgICAgICAgICBwYWRkaW5nOiAycHg7IH0KKy5ub3RlaW1nICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZjYzsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KKy5zdWNjZXNzICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZmZjsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB0ZXh0LWFsaWduOiBsZWZ0OyAKKyAgICAgICAgICAgIHBhZGRpbmc6IDJweDsgfQorLnN1Y2Nlc3NpbWcgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZmZmZmNjOyAKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsgfQorLmFsZXJ0ICAgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZjYzsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB0ZXh0LWFsaWduOiBsZWZ0OyAKKyAgICAgICAgICAgIHBhZGRpbmc6IDJweDsgfQorLmFsZXJ0aW1nICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZjYzsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KKy5lcnJvciAgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZjYzsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB0ZXh0LWFsaWduOiBsZWZ0OyAKKyAgICAgICAgICAgIHBhZGRpbmc6IDJweDsgfQorLmVycm9yaW1nICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZjYzsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KKworLyogY29sdW1uIGhlYWRlciBjbGFzc2VzICovCisuaGRsZWZ0ICAgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7IGJhY2tncm91bmQ6ICNjY2NjY2M7IAorICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfQorLmhkcmlnaHQgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjY2NjY2NjOyAKKyAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9CisuaGRtaWRkbGUgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBjb2xvcjogIzMzMzMzMzsgYmFja2dyb3VuZDogI2NjY2NjYzsgCisJCXRleHQtYWxpZ246IGNlbnRlcjsgfQorLmRhdGFoZCAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjY2NjY2NjOyB9Cisuc3BhbmhkICAgICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgICAgICBjb2xvcjogI2VlZWVlZTsgYmFja2dyb3VuZDogIzAwMzM2NjsgCisgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfQorLnNwYW5oZHJpZ2h0ICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7IAorICAgICAgICAgICAgICAgIGNvbG9yOiAjZWVlZWVlOyBiYWNrZ3JvdW5kOiAjMDAzMzY2OyAKKyAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfQorLnNwYW5oZGNlbnRlciB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICAgICAgY29sb3I6ICNlZWVlZWU7IGJhY2tncm91bmQ6ICMwMDMzNjY7IAorICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfQorLnN1YmhkbGVmdCAgIHsgZm9udC1zaXplOiB4LXNtYWxsOyBjb2xvcjogIzMzMzMzMzsgYmFja2dyb3VuZDogI2NjY2NjYzsgCisJCXRleHQtYWxpZ246IGxlZnQ7ICB9IAorCisvKiBsYWJlbCBjbGFzc2VzICovCisucmlnaHQgICAgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7IGJhY2tncm91bmQ6ICNjY2NjY2M7IAorICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0KKy50b3ByaWdodCB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzMzMzMzMzsgYmFja2dyb3VuZDogI2NjY2NjYzsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiByaWdodDsgfQorLmxlZnQgICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAKKyAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0KKy50b3BsZWZ0ICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzMzMzMzMzsgYmFja2dyb3VuZDogI2ZmZmZmZjsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBsZWZ0OyB9CisuY2VudGVyICAgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7IGJhY2tncm91bmQ6ICNmZmZmZmY7IAorICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9CisuZ3JleXJpZ2h0ICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjY2NjY2NjOyAKKyAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9CisuZ3JleWxlZnQgICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAKKyAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH0KKy5ncmV5Y2VudGVyICAgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7IGJhY2tncm91bmQ6ICNlZWVlZWU7IAorICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9CisuZ3JleXRvcHJpZ2h0IHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjY2NjY2NjOyAKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IHJpZ2h0OyB9CisuZ3JleXRvcGxlZnQgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGxlZnQ7IH0KKyAgICAgIC8qIHJlbW92ZSBhZnRlciBjaGFuZ2luZyBzdWJyaWdodCB1c2UgdG8gZmluZSAqLworLmdyZXlzdWJyaWdodCAgICB7IGZvbnQtc2l6ZTogeC1zbWFsbDsgY29sb3I6ICMzMzMzMzM7IGJhY2tncm91bmQ6ICNjY2NjY2M7IAorCQl0ZXh0LWFsaWduOiByaWdodDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfQorCisKKy8qIGRhdGEgY2xhc3NlcyBhbmQgYWx0ZXJuYXRpbmcgcm93IGNvbG9yIGNsYXNzZXMgKi8KKy5kYXRhICAgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgCisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZmZjsgfQorLmRhdGFtaWRkbGUJeyBmb250LXNpemU6IHNtYWxsZXI7IAorCWNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlIH0KKy5kYXRhZ3JleSB7IGZvbnQtc2l6ZTogc21hbGxlcjsgCisgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2VlZWVlZTsgfQorLmJkYXRhICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB9CisuYmRhdGFncmV5ICAgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNlZWVlZWU7IH0KKy5kYXRhcnQgICAgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgCisgICAgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZmZjsgCisgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfQorLmRhdGFydGdyZXkgIHsgZm9udC1zaXplOiBzbWFsbGVyOyAKKyAgICAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZWVlZWVlOyAKKyAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9CisuYmRhdGFydCAgICAgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNmZmZmZmY7IAorICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0KKy5iZGF0YXJ0Z3JleSB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICAgICBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2VlZWVlZTsgCisgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfQorLmN1cnIgICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAKKyAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9CisuY3VycmdyZXkgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNlZWVlZWU7IAorICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0KKy5jdXJybGVmdCB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7IAorICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNmZmZmZmY7IAorICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfQorLmNvbG9yICAgICB7IGNvbG9yOiAjODAwMDAwOyB9IC8qY2hhbmdlIHRvIDAwMDAwMCBpZiBGSSBkb2Vzbid0IHdhbnQgbmVnYXRpdmUgbnVtYmVycyB0byBiZSByZWQqLworLnN1YmRhdGEgIHsgZm9udC1zaXplOiB4LXNtYWxsOyBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZmZiB9Cisuc3ViZGF0YWdyZXkgeyBmb250LXNpemU6IHgtc21hbGw7IGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZWVlZWVlIH0KKy5kYXRhcmlnaHQgICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2ZmZmZmZjsgdGV4dC1hbGlnbjogcmlnaHQ7fQorLmRhdGFncmV5cmlnaHQgICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBjb2xvcjogIzAwMDAwMDsgYmFja2dyb3VuZDogI2VlZWVlZTsgdGV4dC1hbGlnbjogcmlnaHQ7fQorLnllbGxvdyAgeyBmb250LXNpemU6IHNtYWxsZXI7IGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZmZmZmNjOyAKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHRleHQtYWxpZ246IGxlZnQ7IH0KKworCisKKy8qIHZybSBjbGFzc2VzIGFuZCBhY2NvdW50IGJhbGFuY2UgY2xhc3NlcyAqLworLnN1YmN1cnIgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjY2NjY2NjOyAKKyAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9CisuZWRpdG9yaWFsIHsgZm9udC1zaXplOiBzbWFsbGVyOyAKKyAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB9CisuZWRpdGdyZXkgeyBmb250LXNpemU6IHNtYWxsZXI7IAorICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNlZWVlZWU7IH0KKworCisvKiBmaW5lIHByaW50IGZvciBpbnB1dHMgYW5kIHRhYmxlcyAqLworLmZpbmUgICAgICAgIHsgZm9udC1zaXplOiB4LXNtYWxsOyBmb250LXdlaWdodDogbm9ybWFsOyAKKyAgICAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyB9CisuZmluZXJpZ2h0ICAgeyBmb250LXNpemU6IHgtc21hbGw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IAorICAgICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7CisgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfQorLmZpbmV3aGl0ZSB7IGZvbnQtc2l6ZTogeC1zbWFsbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNmZmZmZmY7IH0KKy5zdWJyaWdodCB7IGZvbnQtc2l6ZTogeC1zbWFsbDsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgICAKKyAgICAgICAgICAgIGNvbG9yOiAjMzMzMzMzOyBiYWNrZ3JvdW5kOiAjY2NjY2NjOyAgICAgICAKKyAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9CisKKy8qIGZvcm0gZWxlbWVudCBjZWxsIGNsYXNzZXMgKi8KKy5pbnB1dCAgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgCisgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfQorLnRvcGlucHV0IHsgZm9udC1zaXplOiBzbWFsbGVyOyAgCisgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7IH0KKy5idG1pbnB1dCB7IGZvbnQtc2l6ZTogc21hbGxlcjsgCisgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOyAKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207IH0KKy5pbnB1dGdyZXkgeyBmb250LXNpemU6IHNtYWxsZXI7IAorICAgICAgICAgICAgYmFja2dyb3VuZDogI2VlZWVlZTsgCisgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH0KKy5zdWJtaXQgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgICAgICAgICBjb2xvcjogIzMzMzMzMzsgYmFja2dyb3VuZDogI2ZmZmZmZjsKKyAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IHRleHQtYWxpZ246IHJpZ2h0OyB9Cisuc3VibWl0Z3JleSAgeyBmb250LXNpemU6IHNtYWxsZXI7IGZvbnQtd2VpZ2h0OiBib2xkOworICAgICAgICAgICAgICAgY29sb3I6ICMzMzMzMzM7IGJhY2tncm91bmQ6ICNjY2NjY2M7CisgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB0ZXh0LWFsaWduOiByaWdodDsgfQorLmlucHV0dG9wICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyAgCisJCXZlcnRpY2FsLWFsaWduOiB0b3A7IGJhY2tncm91bmQ6ICNmZmZmZmY7IH0KKworLyogaGVscCBjbGFzc2VzICovCisuaGVscCAgICAgeyBmb250LWZhbWlseTogYXJpYWwsIGhlbHZldGljYSwgInNhbnMgc2VyaWYiOyAKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogc21hbGxlcjsgCisgICAgICAgICAgICBjb2xvcjogIzY2NjY2NjsgYmFja2dyb3VuZDogI2ZmZmZjYzsgfQorCisvKiBuYXZpZ2F0aW9uIGJhciBjbGFzc2VzICovCisubmF2dGV4dCAgeyBmb250LXNpemU6IHgtc21hbGw7IAorICAgICAgICAgICAgY29sb3I6ICMwMDAwNjY7IAorICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0KKy5pbmZvICAgICB7IGZvbnQtc2l6ZTogeC1zbWFsbDsgCisgICAgICAgICAgICBjb2xvcjogIzAwMDA2NjsgYmFja2dyb3VuZDogI2VlZWVlZTsgfQorLmluZm90ZXh0IHsgcGFkZGluZy1sZWZ0OiAycHQ7IH0KKworLyogZm9vdGVyIGNsYXNzZXMgKi8KKy5mb290bHQgICB7IGZvbnQtc2l6ZTogeC1zbWFsbDsgCisgICAgICAgICAgICBjb2xvcjogIzMzMzMzMzsgYmFja2dyb3VuZDogI2NjY2NjYzsgfQorLmZvb3RkayAgIHsgZm9udC1zaXplOiB4LXNtYWxsOyAKKyAgICAgICAgICAgIGNvbG9yOiAjY2NjY2NjOyBiYWNrZ3JvdW5kOiAjMzMzMzMzOyB9CisKKy8qIGJhY2tncm91bmQgcGFja2luZyBjbGFzc2VzICovCisuYmtnbmQgICAgeyBmb250LXNpemU6IDFwdDsgfQorLnd0c3BhY2UgIHsgZm9udC1zaXplOiAxcHQ7IGJhY2tncm91bmQ6ICNmZmZmZmY7IH0KKy5ncmV5c3BhY2UgIHsgZm9udC1zaXplOiAxcHQ7IGJhY2tncm91bmQ6ICNlZWVlZWU7IH0KKy55ZWxsb3dzcGFjZSAgeyBmb250LXNpemU6IDFwdDsgYmFja2dyb3VuZDogI2ZmZmZjYzsgfQorLmJvdHRvbSAgIHsgdmVydGljYWwtYWxpZ246IGJvdHRvbTsgfQorCisKKworLyogYWRkaXRpb25hbCBWSU0gY2xhc3NlcyAqLworLnllbGxvd2JhciAgICAgICB7IGZvbnQtc2l6ZTogc21hbGxlcjsgYmFja2dyb3VuZDogI2ZmZmZjYzsgCisgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfQorCisueWVsbG93YmFycnQgICAgICAgeyBmb250LXNpemU6IHNtYWxsZXI7IGJhY2tncm91bmQ6ICNmZmZmY2M7IAorICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9CisKKy55ZWxsb3dzcGFjZSAgeyBmb250LXNpemU6IDRwdDsgYmFja2dyb3VuZDogI2ZmZmZjYzsgfQorCisuZGF0YWNudHIgICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyAKKyAgICAgICAgICAgIGNvbG9yOiAjMDAwMDAwOyBiYWNrZ3JvdW5kOiAjZmZmZmZmOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KKwkKKy5kYXRhY250cmdyZXkgeyBmb250LXNpemU6IHNtYWxsZXI7IAorICAgICAgICAgICAgY29sb3I6ICMwMDAwMDA7IGJhY2tncm91bmQ6ICNlZWVlZWU7IHRleHQtYWxpZ246IGNlbnRlcjsgfQorCisuaGRjdHIJICAgIHsgZm9udC1zaXplOiBzbWFsbGVyOyBmb250LXdlaWdodDogYm9sZDsgY29sb3I6ICMzMzMzMzM7IAorCWJhY2tncm91bmQ6ICNjY2NjY2M7IHRleHQtYWxpZ246IGNlbnRlcjt9CisKKworCisKKy8qIGRlcHJlY2F0ZWQgLSBkdXBsaWNhdGUgZnVuY3Rpb25hbGl0eSAtIHVzZSAuZmluZSAqLworCisvKiBkZXByZWNhdGVkIC0gZHVwbGljYXRlIGZ1bmN0aW9uYWxpdHkgLSB1c2UgLmZpbmVyaWdodCAqLworICAgICAgICAgICAgICAgICAgICAgICAKKworLyogZGVwcmVjYXRlZCAtIGR1cGxpY2F0ZSBmdW5jdGlvbmFsaXR5IC0gdXNlIC5kYXRhIGFuZCAuZGF0YWdyZXkgKi8KKy8qLm5vcm1hbCB7IGZvbnQtZmFtaWx5OiBhcmlhbCwgZ2VuZXZhLCBoZWx2ZXRpY2EsICJzYW5zIHNlcmlmIjsgfSovCisvKi5ub3JtYWxncmV5IHsgZm9udC1mYW1pbHk6IGFyaWFsLCBnZW5ldmEsIGhlbHZldGljYSwgInNhbnMgc2VyaWYiOyBiYWNrZ3JvdW5kOiAjY2NjY2NjOyB9Ki8KKworLyogZGVwcmVjYXRlZCAtIGR1cGxpY2F0ZSBmdW5jdGlvbmFsaXR5IC0gbm90IHN1cmUgd2hhdCB0aGlzIGlzIHVzZWQgZm9yICovCisvKi5ib3R0b20gICB7IHZlcnRpY2FsLWFsaWduOiBib3R0b207IH0qLwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL2xheW91dC92Ym94TGF5b3V0LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9sYXlvdXQvdmJveExheW91dC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM1YjFjMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9sYXlvdXQvdmJveExheW91dC5qc3AKQEAgLTAsMCArMSwzNiBAQAorPCVAIHBhZ2UgaW1wb3J0PSJqYXZhLnV0aWwuSXRlcmF0b3IiJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPCUtLSBMYXlvdXQgY29tcG9uZW50IAorICBSZW5kZXIgYSBsaXN0IG9uIHNldmVyYWxzIGNvbHVtbnMKKyAgcGFyYW1ldGVycyA6IGNvbXBvbmVudHNMaXN0IAorLS0lPgorCis8dGlsZXM6dXNlQXR0cmlidXRlIGlkPSJsaXN0IiBuYW1lPSJjb21wb25lbnRzTGlzdCIgY2xhc3NuYW1lPSJqYXZhLnV0aWwuTGlzdCIgLz4KKworPCUtLSBOb3JtYWxseSwgd2Ugc2hvdWxkIHVzZSB0aGUgaXRlcmF0ZSB0YWcgdG8gaXRlcmF0ZSBvdmVyIHRoZSBsaXN0LgorICBVbmZvcnR1bmF0ZWxseSwgdGhpcyBkb2Vzbid0IHdvcmsgd2l0aCBqc3AxLjEsIGJlY2F1c2UgYWN0dWFsIGl0ZXJhdGUgdGFnIHVzZSBhIEJvZHlDb250ZW50CisgIGFuZCBpbmNsdWRlIGRvIGEgZmx1c2goKSwgd2hpY2ggaXMgaWxsZWdhbCBpbnNpZGUgYSBCb2R5Q29udGVudC4KKyAgSnNwMS4zIHByb3Bvc2UgYSBuZXcgdGFnIG1lY2hhbmlzbSBmb3IgaXRlcmF0aW9uLCB3aGljaCBub3QgdXNlIEJvZHlDb250ZW50LgorICBXYWl0IHVudGlsIGpzcDEuMyAKKyAgCis8bG9naWM6aXRlcmF0ZSBpZD0iY29tcCIgbmFtZT0ibGlzdCIgdHlwZT0iU3RyaW5nIiA+CisgIDx0aWxlczppbnNlcnQgbmFtZT0iPCU9Y29tcCU+IiBmbHVzaD0iZmFsc2UiIC8+CisgIDxicj4KKzwvbG9naWM6aXRlcmF0ZT4gIAorLS0lPgorCis8JS0tIEZvciBub3csIGRvIGl0ZXJhdGlvbiBtYW51YWxseSA6IC0tJT4gCis8JQorSXRlcmF0b3IgaT1saXN0Lml0ZXJhdG9yKCk7Cit3aGlsZSggaS5oYXNOZXh0KCkgKQorICB7CisgIFN0cmluZyBjb21wPShTdHJpbmcpaS5uZXh0KCk7CislPgorPHRpbGVzOmluc2VydCBuYW1lPSI8JT1jb21wJT4iIGZsdXNoPSJ0cnVlIiAvPgorPGJyPgorCis8JQorICB9IC8vIGVuZCBsb29wCislPgorCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvb3ZlcmxvYWREZWZpbml0aW9uUGFyYW1ldGVycy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvb3ZlcmxvYWREZWZpbml0aW9uUGFyYW1ldGVycy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzZmZjFjOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9vdmVybG9hZERlZmluaXRpb25QYXJhbWV0ZXJzLmpzcApAQCAtMCwwICsxLDUgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPHRpbGVzOmluc2VydCBkZWZpbml0aW9uPSJteUZpcnN0RGVmaW5pdGlvbiIgZmx1c2g9InRydWUiID4KKyAgPHRpbGVzOnB1dCBuYW1lPSJ0aXRsZSIgdmFsdWU9Ik15IEZpcnN0IERlZmluaXRpb24gUGFnZSBXaXRoIE92ZXJsb2FkZWQgVGl0bGUiIC8+Cis8L3RpbGVzOmluc2VydD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9wb3J0YWwvYWR2ZXJ0MS5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsL2FkdmVydDEuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3OTg2M2UKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsL2FkdmVydDEuanNwCkBAIC0wLDAgKzEgQEAKKzxJTUcgc3JjPSc8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi90dXRvcmlhbC9pbWFnZXMvYmFubmVyMWIuZ2lmJyBib3JkZXI9MD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsL2FkdmVydDIuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3BvcnRhbC9hZHZlcnQyLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzVkNWEyCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3BvcnRhbC9hZHZlcnQyLmpzcApAQCAtMCwwICsxLDIgQEAKKzxESVYgYWxpZ249Y2VudGVyPjxTVFJPTkc+PEZPTlQgc2l6ZT00PjxJTUcgYWx0PSIiIGJvcmRlcj0wIGhlaWdodD0xMjAgCitzcmM9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L3R1dG9yaWFsL2ltYWdlcy9iYW5uZXJfYm90dG9tLmdpZiIgd2lkdGg9MzAwPjwvRk9OVD48L1NUUk9ORz48L0RJVj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsL2FkdmVydDMuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3BvcnRhbC9hZHZlcnQzLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Nzk4NjNlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3BvcnRhbC9hZHZlcnQzLmpzcApAQCAtMCwwICsxIEBACis8SU1HIHNyYz0nPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vdHV0b3JpYWwvaW1hZ2VzL2Jhbm5lcjFiLmdpZicgYm9yZGVyPTA+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3BvcnRhbC9sb2dpbi5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsL2xvZ2luLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzVkODFlCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3BvcnRhbC9sb2dpbi5qc3AKQEAgLTAsMCArMSwxMCBAQAorPGRpdiBhbGlnbj0iY2VudGVyIj48Zm9udCBzaXplPSIrMSI+PGI+Cis8VEFCTEUgYm9yZGVyPTAgY2VsbFBhZGRpbmc9MiBjZWxsU3BhY2luZz0wIHdpZHRoPTMwMD4KKyAgCisgIDxUUj4KKyAgICA8VEQgY2xhc3M9c3BhbmhkPkxvZ2luPC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPXllbGxvdz48IS0tIElGIHN0YXRlbWVudCBmb3IgQWxlcnQgc2VjdGlvbiBoZXJlIC0tPgorICAgICAgPFA+SWYgeW91IGhhdmUgV29ybGQgRmluYW5jaWFsIGFjY291bnRzLCB5b3UgY2FuIDxVPkxvZ2luPC9VPiB0bworICAgICAgdmlldyB5b3VyIGFjY291bnQgaW5mb3JtYXRpb24uPEJSPiZuYnNwOyAKKzwvUD48L1REPjwvVFI+PC9UQUJMRT4gIDwvYj48L2ZvbnQ+PC9kaXY+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3BvcnRhbC9tZXNzYWdlcy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsL21lc3NhZ2VzLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTBlZTFiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3BvcnRhbC9tZXNzYWdlcy5qc3AKQEAgLTAsMCArMSwxOSBAQAorPERJViBhbGlnbj1jZW50ZXI+PFNUUk9ORz48Rk9OVCBzaXplPTQ+Cis8VEFCTEUgYm9yZGVyPTAgY2VsbFBhZGRpbmc9MiBjZWxsU3BhY2luZz0wIHdpZHRoPTMwMD4KKyAgCisgIDxUUj4KKyAgICA8VEQgY2xhc3M9c3BhbmhkPjxCPk1lc3NhZ2VzPC9CPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhPgorICAgICAgPExJPjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+WW91ciBDRCBtYXR1cmVzIGluIG9uZSBtb250aCE8L1U+PC9GT05UPiAKKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPk5vdyBQcm92aWRpbmcgYSBUZWNobm9sb2d5IE11dHVhbCBGdW5kPC9VPjwvRk9OVD4gCisgICAgICA8TEk+PEZPTlQgY29sb3I9IzAwMzM2Nj48VT5DaGlsZHJlbidzIFNhdmluZ3MgQWNjb3VudCBQcm9ncmFtIAorICAgICAgVXBkYXRlPC9VPjwvRk9OVD4gCisgICAgICA8TEk+PEZPTlQgY29sb3I9IzAwMzM2Nj48VT5TbWFsbCBCdXNpbmVzcyBQcm9ncmFtIE9mZmVyPC9VPjwvRk9OVD4gCisgICAgICA8TEk+PEZPTlQgY29sb3I9IzAwMzM2Nj48VT5GaW5hbmNpYWwgVGlwIG9mIHRoZSBEYXk8L1U+PC9GT05UPiAKKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPk1vcnRnYWdlIFJhdGUgQ2hhcnQgLSBTZWUgaG93IHdlIAorICAgICAgY29tcGFyZSE8L1U+PC9GT05UPiAKKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPkNoZWNrIG91dCBvdXIgMS15ZWFyIGFuZCA2LW1vbnRoIENEIAorICAgICAgcmF0ZXM8L1U+PC9GT05UPiAKKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPkF1dG8gSW5zdXJhbmNlIFJhdGVzIExvd2VyZWQ8L1U+PC9GT05UPiAKKyAgICAgIDxCUj4mbmJzcDs8L0xJPjwvVEQ+PC9UUj48L1RBQkxFPjwvRk9OVD48L1NUUk9ORz48L0RJVj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsL25ld3NGZWVkLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9wb3J0YWwvbmV3c0ZlZWQuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjY2RkNzQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsL25ld3NGZWVkLmpzcApAQCAtMCwwICsxLDQyIEBACis8ZGl2IGFsaWduPSJjZW50ZXIiPjxmb250IHNpemU9IisxIj48Yj4KKzxUQUJMRSBib3JkZXI9MCBjZWxsUGFkZGluZz0yIGNlbGxTcGFjaW5nPTAgd2lkdGg9MzAwPgorICAKKyAgPFRSPgorICAgIDxURCBjbGFzcz1zcGFuaGQgY29sU3Bhbj0yPk5ld3MgRmVlZDwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhPjxCPkJ1c2luZXNzIE5ld3M8L0I+IDwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhPiAKKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPlRvcCBGdW5kIE1hbmFnZXJzIE1ha2UgVGhlaXIgQ2FsbHMgT24gCisgICAgICBGdW5kczwvVT48L0ZPTlQ+PC9MST48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ZGF0YT48Qj5Xb3JsZCBOZXdzPC9CPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhPgorICAgICAgPExJPjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+Q2hpbmEgRGVtb2NyYWN5IENyYWNrZG93bjwvVT48L0ZPTlQ+IAorICAgICAgPExJPjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+UG9wZSBWaXNpdHMgVGhlIFUuUy4gSW4gCisgICAgTWF5PC9VPjwvRk9OVD48L0xJPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhPjxCPkdlbmVyYWwgTmV3czwvQj48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ZGF0YT4KKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPkNsaW50b24gUG9sbHMgaW4gUXVlc3Rpb24gQXMgVG8gCisgICAgICBBY2N1cmFjeTwvVT48L0ZPTlQ+IAorICAgICAgPExJPjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+U2Nob29sIFZpb2xlbmNlIEVydXB0cyBBbmQgU2FmZXR5IFF1ZXN0aW9ucyBBcmUgCisgICAgICBSYWlzZWQ8L1U+PC9GT05UPjwvTEk+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGE+PEI+U3BvcnRzPC9CPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhPgorICAgICAgPExJPjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+V2lubmVycyBBbmQgTG9zZXJzIC0gTkZMIFNlYXNvbiAKKyAgICAgIFdyYXAtVXA8L1U+PC9GT05UPiAKKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPlNraSBGaW5hbHMgT24gVGhlIFdpcmUgRm9yIFRoZSBBbHBpbmUgCisgICAgICBDaGFtcGlvbnNoaXBzPC9VPjwvRk9OVD48L0xJPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhPjxCPkhlYWx0aDwvQj48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ZGF0YT4KKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPlRlYSAtIEEgQ3VwIG9mIENvbWZvcnQ8L1U+PC9GT05UPiAKKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPlJlbGlldmUgU3RyZXNzIFRoZSBOYXR1cmFsIFdheTogMTAgSGVhbHRoIAorICAgICAgVGlwczwvVT48L0ZPTlQ+IDwvTEk+PC9URD48L1RSPgorPC9UQUJMRT4gIDwvYj48L2ZvbnQ+PC9kaXY+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3BvcnRhbC9wZXJzb25hbExpbmtzLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9wb3J0YWwvcGVyc29uYWxMaW5rcy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg5Y2ZkYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9wb3J0YWwvcGVyc29uYWxMaW5rcy5qc3AKQEAgLTAsMCArMSwxNCBAQAorPGRpdiBhbGlnbj0iY2VudGVyIj48Zm9udCBzaXplPSIrMSI+PGI+Cis8VEFCTEUgYm9yZGVyPTAgY2VsbFBhZGRpbmc9MiBjZWxsU3BhY2luZz0wIHdpZHRoPTE5MD4KKyAgCisgIDxUUj4KKyAgICA8VEQgY2xhc3M9c3BhbmhkPk15IFBlcnNvbmFsIExpbmtzPC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PiAKKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPkZyZWUgRWRnYXI8L1U+PC9GT05UPiAKKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPlJhZ2luZyBCdWxsPC9VPjwvRk9OVD4gCisgICAgICA8TEk+PEZPTlQgY29sb3I9IzAwMzM2Nj48VT5UaGUgTW90bGV5IEZvb2w8L1U+PC9GT05UPiAKKyAgICAgIDxMST48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPlRoZSBTdHJlZXQuY29tPC9VPjwvRk9OVD4gPEJSPiZuYnNwOzwvTEk+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PjxJTUcgYm9yZGVyPTAgaGVpZ2h0PTEgc3JjPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi90dXRvcmlhbC9pbWFnZXMvY2xlYXIuZ2lmIiAKKyAgICB3aWR0aD0xOTA+PC9URD48L1RSPjwvVEFCTEU+ICA8L2I+PC9mb250PjwvZGl2PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9wb3J0YWwvcG9ydGFsQm9keS5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsL3BvcnRhbEJvZHkuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NWZhYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsL3BvcnRhbEJvZHkuanNwCkBAIC0wLDAgKzEsMTggQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPHRpbGVzOmluc2VydCBwYWdlPSIvbGF5b3V0L2NvbHVtbnNMYXlvdXQuanNwIiBmbHVzaD0idHJ1ZSI+CisgIDx0aWxlczpwdXQgbmFtZT0ibnVtQ29scyIgdmFsdWU9IjIiIC8+CisgIDx0aWxlczpwdXRMaXN0IG5hbWU9Imxpc3QwIiA+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iL3R1dG9yaWFsL3BvcnRhbC9sb2dpbi5qc3AiIC8+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iL3R1dG9yaWFsL3BvcnRhbC9tZXNzYWdlcy5qc3AiIC8+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iL3R1dG9yaWFsL3BvcnRhbC9uZXdzRmVlZC5qc3AiIC8+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iL3R1dG9yaWFsL3BvcnRhbC9hZHZlcnQyLmpzcCIgLz4KKyAgPC90aWxlczpwdXRMaXN0PgorICA8dGlsZXM6cHV0TGlzdCBuYW1lPSJsaXN0MSIgPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvYWR2ZXJ0My5qc3AiIC8+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iL3R1dG9yaWFsL3BvcnRhbC9zdG9ja3MuanNwIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvd2hhdHNOZXcuanNwIiAvPgorICAgIDx0aWxlczphZGQgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvcGVyc29uYWxMaW5rcy5qc3AiIC8+CisgICAgPHRpbGVzOmFkZCB2YWx1ZT0iL3R1dG9yaWFsL3BvcnRhbC9zZWFyY2guanNwIiAvPgorICA8L3RpbGVzOnB1dExpc3Q+Cis8L3RpbGVzOmluc2VydD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9wb3J0YWwvc2VhcmNoLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9wb3J0YWwvc2VhcmNoLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDQxNzEzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3BvcnRhbC9zZWFyY2guanNwCkBAIC0wLDAgKzEsMjMgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1sb2dpYyIgcHJlZml4PSJsb2dpYyIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1iZWFuIiBwcmVmaXg9ImJlYW4iICU+CisKKzxkaXYgYWxpZ249ImNlbnRlciI+PGZvbnQgc2l6ZT0iKzEiPjxiPgorPFRBQkxFIGJvcmRlcj0wIGNlbGxQYWRkaW5nPTIgY2VsbFNwYWNpbmc9MCB3aWR0aD0xOTA+CisgIDxGT1JNIG5hbWU9cGFuZWw+CisgIDxUQk9EWT4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1zcGFuaGQ+SW50ZXJuZXQgU2VhcmNoPC9URD48L1RSPgorICA8VFI+CisgIAorPGxvZ2ljOnByZXNlbnQgcGFyYW1ldGVyPSJxdWVyeSI+Cis8YmVhbjpwYXJhbWV0ZXIgaWQ9InF1ZXJ5IiBuYW1lPSJxdWVyeSIvPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleT5RdWVyeSBmb3VuZCA6IDxCUj48QlI+IDwlPXF1ZXJ5JT48L1REPjwvVFI+Cis8L2xvZ2ljOnByZXNlbnQ+CisKKyAgICA8VEQgY2xhc3M9ZGF0YWdyZXk+RW50ZXIgYSB0ZXJtIG9yIHRvcGljOiA8QlI+PEJSPjxJTlBVVCBtYXhMZW5ndGg9MzIgCisgICAgICBuYW1lPXF1ZXJ5IHNpemU9MTc+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWlucHV0Z3JleT4mbmJzcDs8SU5QVVQgYWx0PSJTZWFyY2ggdGhlIEludGVybmV0IiBib3JkZXI9MCAKKyAgICAgIGhlaWdodD0yNCBuYW1lPSJTZWFyY2ggdGhlIEludGVybmV0IiBzcmM9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L3R1dG9yaWFsL2ltYWdlcy9pbnB1dF9nZW5fc2VhcmNoLmdpZiIgCisgICAgICB0aXRsZT0iU2VhcmNoIHRoZSBJbnRlcm5ldCIgdHlwZT1pbWFnZSAKKyAgd2lkdGg9ODY+PC9GT1JNPjwvVEQ+PC9UUj48L0ZPUk0+PC9UQk9EWT48L1RBQkxFPiAgPC9iPjwvZm9udD48L2Rpdj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsL3N0b2Nrcy5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsL3N0b2Nrcy5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDMyM2NkZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9wb3J0YWwvc3RvY2tzLmpzcApAQCAtMCwwICsxLDU5IEBACis8ZGl2IGFsaWduPSJjZW50ZXIiPjxmb250IHNpemU9IisxIj48Yj4KKzxUQUJMRSBib3JkZXI9MCBjZWxsUGFkZGluZz0yIGNlbGxTcGFjaW5nPTAgd2lkdGg9MTkwPgorICAKKyAgPFRSIGJnQ29sb3I9I2ZmZmZmZj4KKyAgICA8VEQgY2xhc3M9c3BhbmhkIGNvbFNwYW49Mj5TdGV3YXJ0J3MgSG90IFN0b2NrczwvVEQ+CisgICAgPFREIGNsYXNzPXNwYW5oZD4mbmJzcDs8L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9aGRsZWZ0PlN5bWJvbDwvVEQ+CisgICAgPFREIGNsYXNzPWhkbGVmdD5QcmljZTwvVEQ+CisgICAgPFREIGNsYXNzPWhkbGVmdD5DaGFuZ2U8L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ZGF0YWdyZXk+PFU+PEZPTlQgY29sb3I9IzAwMzM2Nj5BT0w8L0ZPTlQ+PC9VPjwvVEQ+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PjEwNC4yNTwvVEQ+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PjxGT05UIGNvbG9yPSNjYzAwMDA+NS4wMDwvRk9OVD48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ZGF0YWdyZXkgY29sU3Bhbj0zPjxJTUcgaGVpZ2h0PTEgc3JjPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi90dXRvcmlhbC9pbWFnZXMvaWRfbGluZS5naWYiIAorICAgICAgd2lkdGg9MTkwPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleT48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPkNTQ088L1U+PC9GT05UPjwvVEQ+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PjczLjc1PC9URD4KKyAgICA8VEQgY2xhc3M9ZGF0YWdyZXk+PEZPTlQgY29sb3I9IzAwODgwMD4xLjc1PC9GT05UPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleSBjb2xTcGFuPTM+PElNRyBoZWlnaHQ9MSBzcmM9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L3R1dG9yaWFsL2ltYWdlcy9pZF9saW5lLmdpZiIgCisgICAgICB3aWR0aD0xOTA+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PjxGT05UIGNvbG9yPSMwMDMzNjY+PFU+SEQ8L1U+PC9GT05UPjwvVEQ+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PjY4LjYyPC9URD4KKyAgICA8VEQgY2xhc3M9ZGF0YWdyZXk+PEZPTlQgY29sb3I9IzAwODgwMD4xLjY5PC9GT05UPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleSBjb2xTcGFuPTM+PElNRyBoZWlnaHQ9MSBzcmM9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L3R1dG9yaWFsL2ltYWdlcy9pZF9saW5lLmdpZiIgCisgICAgICB3aWR0aD0xOTA+PC9URD48L1RSPgorICA8VFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ZGF0YWdyZXk+PEZPTlQgY29sb3I9IzAwMzM2Nj48VT5TT05FPC9VPjwvRk9OVD48L1REPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleT4zOC44ODwvVEQ+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PjxGT05UIGNvbG9yPSMwMDg4MDA+MS42MjwvRk9OVD48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9ZGF0YWdyZXkgY29sU3Bhbj0zPjxJTUcgaGVpZ2h0PTEgc3JjPSI8JT1yZXF1ZXN0LmdldENvbnRleHRQYXRoKCklPi90dXRvcmlhbC9pbWFnZXMvaWRfbGluZS5naWYiIAorICAgICAgd2lkdGg9MTkwPjwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleT48Rk9OVCBjb2xvcj0jMDAzMzY2PjxVPkRKSUE8L1U+PC9GT05UPjwvVEQ+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PjEwLDMwMi4xMzwvVEQ+CisgICAgPFREIGNsYXNzPWRhdGFncmV5PjxGT05UIGNvbG9yPSMwMDg4MDA+NDcuODA8L0ZPTlQ+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNsYXNzPWRhdGFncmV5IGNvbFNwYW49Mz48SU1HIGhlaWdodD0xIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vdHV0b3JpYWwvaW1hZ2VzL2lkX2xpbmUuZ2lmIiAKKyAgICAgIHdpZHRoPTE5MD48L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgY2xhc3M9aW5wdXRncmV5IGNvbFNwYW49Mz4KKwkgIDxGT1JNIAorICAgICAgYWN0aW9uPSIjIiBtZXRob2Q9ImdldCI+UXVvdGU6IAorICAgICAgPElOUFVUIG1heExlbmd0aD01IHNpemU9ND4mbmJzcDs8QSAKKyAgICAgIGhyZWY9IiMiPjxJTUcgYWx0PSJHZXQgUXVvdGUiIAorICAgICAgYm9yZGVyPTAgaGVpZ2h0PTE3IHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vdHV0b3JpYWwvaW1hZ2VzL2lucHV0X3ZybV9nZW5fZ2V0LmdpZiIgdGl0bGU9IkdldCBRdW90ZSIgCisgICAgICB3aWR0aD01OT48L0E+IDxCUj4mbmJzcDsgPEJSPgorICAgICAgPENFTlRFUj48Rk9OVCBzaXplPS0yPlsmbmJzcDs8L0ZPTlQ+PEZPTlQgY29sb3I9IzAwMzM2NiBzaXplPS0yPjxBIAorICAgICAgaHJlZj0iIyI+U3ltYm9sJm5ic3A7U2VhcmNoPC9BPjwvRk9OVD48Rk9OVCAKKyAgICAgIHNpemU9LTI+Jm5ic3A7XTwvRk9OVD4mbmJzcDs8Rk9OVCBzaXplPS0yPlsmbmJzcDs8L0ZPTlQ+PEZPTlQgCisgICAgICBjb2xvcj0jMDAzMzY2IHNpemU9LTI+PFU+RWRpdCZuYnNwO1BvcnRmb2xpbzwvVT48L0ZPTlQ+PEZPTlQgCisgICAgICBzaXplPS0yPiZuYnNwO108L0ZPTlQ+PC9DRU5URVI+PEJSPjwvVEQ+PC9UUj48L1RBQkxFPiAgPC9iPjwvZm9udD48L2Rpdj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsL3doYXRzTmV3LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9wb3J0YWwvd2hhdHNOZXcuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4ODVlNGUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsL3doYXRzTmV3LmpzcApAQCAtMCwwICsxLDE2IEBACis8ZGl2IGFsaWduPSJjZW50ZXIiPjxmb250IHNpemU9IisxIj48Yj4KKzxUQUJMRSBib3JkZXI9MCBjZWxsUGFkZGluZz0yIGNlbGxTcGFjaW5nPTAgd2lkdGg9MTkwPgorICAKKyAgPFRSPgorICAgIDxURCBjbGFzcz1zcGFuaGQ+V2hhdCdzIE5ldzwvVEQ+PC9UUj4KKyAgPFRSPgorICAgIDxURCBjbGFzcz1kYXRhZ3JleT48Qj5OZXcgRmluYW5jaWFsIENhbGN1bGF0b3JzPC9CPiA8QlI+U2F2aW5nIEZvciBBIAorICAgICAgQ29sbGVnZSBFZHVjYXRpb24/CisJICA8QlI+WyZuYnNwOzxGT05UIGNvbG9yPSMwMDMzNjY+PFU+TW9yZTwvVT48L0ZPTlQ+Jm5ic3A7XQorCSAgPEJSPiZuYnNwOyA8QlI+PEI+U3BlY2lhbCBPZmZlcjwvQj4gCisgICAgICA8QlI+R2V0IGZyZWUgcmVhbC10aW1lIHF1b3RlcyBmb3IgdGhyZWUgbW9udGhzIHdpdGggYSBXb3JsZCBGaW5hbmNpYWwgCisgICAgICBicm9rZXJhZ2UgYWNjb3VudC4gWyZuYnNwOzxGT05UIGNvbG9yPSMwMDMzNjY+PFU+TW9yZTwvVT48L0ZPTlQ+Jm5ic3A7XSAKKyAgICAgIDxCUj4mbmJzcDsgPC9URD48L1RSPgorICA8VFI+CisgICAgICA8QlI+PElNRyBib3JkZXI9MCBoZWlnaHQ9MSBzcmM9IjwlPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSU+L3R1dG9yaWFsL2ltYWdlcy9jbGVhci5naWYiIAord2lkdGg9MTkwPjwvVEQ+PC9UUj48L1RBQkxFPiAgPC9iPjwvZm9udD48L2Rpdj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsUGFnZS5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvcG9ydGFsUGFnZS5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWRjMjQxMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9wb3J0YWxQYWdlLmpzcApAQCAtMCwwICsxLDEwIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+CisKKzx0aWxlczppbnNlcnQgcGFnZT0iL3R1dG9yaWFsL2xheW91dC9jbGFzc2ljTGF5b3V0LmpzcCIgZmx1c2g9InRydWUiPgorICA8dGlsZXM6cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9Ik15IEZpcnN0IFBvcnRhbCBQYWdlIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9ImhlYWRlciIgdmFsdWU9Ii90dXRvcmlhbC9jb21tb24vaGVhZGVyLmpzcCIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJmb290ZXIiIHZhbHVlPSIvdHV0b3JpYWwvY29tbW9uL2Zvb3Rlci5qc3AiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0ibWVudSIgICB2YWx1ZT0iL3R1dG9yaWFsL2Jhc2ljL21lbnUuanNwIiAvPgorICA8JS0tIDx0aWxlczpwdXQgbmFtZT0ibWVudSIgICB2YWx1ZT0iL3R1dG9yaWFsL2NvbW1vbi9tZW51LmpzcCIgLz4gLS0lPgorICA8dGlsZXM6cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9Ii90dXRvcmlhbC9wb3J0YWwvcG9ydGFsQm9keS5qc3AiIC8+Cis8L3RpbGVzOmluc2VydD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9zdHJ1dHNGb3J3YXJkLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC9zdHJ1dHNGb3J3YXJkLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kY2NiM2E4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3N0cnV0c0ZvcndhcmQuanNwCkBAIC0wLDAgKzEsMyBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9zdHJ1dHMuYXBhY2hlLm9yZy90YWdzLXRpbGVzIiBwcmVmaXg9InRpbGVzIiAlPgorCis8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249ImZvcndhcmQuZXhhbXBsZS5jaG9pY2UucGFnZSIgZmx1c2g9InRydWUiIC8+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvdGVzdC5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvdGVzdC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDEyMDk3ZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC90ZXN0LmpzcApAQCAtMCwwICsxLDIxIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtaHRtbCIgcHJlZml4PSJodG1sIiAgICAgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgIHByZWZpeD0idGlsZXMiICU+CisKKzxodG1sOmh0bWw+CisgIDxoZWFkPgorICAgIDx0aXRsZT5Db250ZW50IEZvcm08L3RpdGxlPgorICA8L2hlYWQ+CisKKyAgPGJvZHkgYmdjb2xvcj0id2hpdGUiPgorICAgICAgPGJlYW46aW5zZXJ0IGlkPSd4b3V0MicgcGFnZT0nL3Rlc3RBY3Rpb24uZG8nLz4KKyAgICAgIDxiZWFuOndyaXRlIG5hbWU9J3hvdXQyJyBmaWx0ZXI9J3RydWUnLz4KKworICAgICAgPHRpbGVzOmluc2VydCB0ZW1wbGF0ZT0iL2ZvcndhcmRFeGFtcGxlQWN0aW9uLmRvIj4KKyAgICAgICAgPHRpbGVzOnB1dCBuYW1lPSJsYWJlbCIgICAgY29udGVudD0iVGV4dDoiICAgICAgIGRpcmVjdD0idHJ1ZSIvPgorICAgICAgICA8dGlsZXM6cHV0IG5hbWU9InByb3BlcnR5IiBjb250ZW50PSJjb250ZW50Rm9ybSIgZGlyZWN0PSJ0cnVlIi8+CisgICAgICA8L3RpbGVzOmluc2VydD4KKworCQorICA8L2JvZHk+Cis8L2h0bWw6aHRtbD4KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3Rlc3QvaGVhZGVyLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC90ZXN0L2hlYWRlci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc1NWJlYgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC90ZXN0L2hlYWRlci5qc3AKQEAgLTAsMCArMSw4IEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtYmVhbiIgcHJlZml4PSJiZWFuIiAgICAgJT4KKworCis8UD48aW1nIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vaW1hZ2VzL2lkX25hdl9vdXRzaWRlLmdpZiIgYWxpZ249ImxlZnQiIGJvcmRlcj0iMCI+Cis8aW1nIHNyYz0iPCU9cmVxdWVzdC5nZXRDb250ZXh0UGF0aCgpJT4vaW1hZ2VzL2lkX25hdl9ia2duZC5naWYiIGFsaWduPSJyaWdodCIgYm9yZGVyPSIwIj4gPC9QPgorCit2YWx1ZT0iPHRpbGVzOmdldEFzU3RyaW5nIG5hbWU9ImJvZHkiLz4iCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvdGVzdC9teUxheW91dC5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvdGVzdC9teUxheW91dC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjYxNjQ5YwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC90ZXN0L215TGF5b3V0LmpzcApAQCAtMCwwICsxLDM1IEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtdGlsZXMiIHByZWZpeD0idGlsZXMiICU+Cis8JUAgdGFnbGliIHVyaT0iaHR0cDovL3N0cnV0cy5hcGFjaGUub3JnL3RhZ3MtYmVhbiIgcHJlZml4PSJiZWFuIiAlPgorCis8JS0tIExheW91dCBjb21wb25lbnQgCisgIHBhcmFtZXRlcnMgOiB0aXRsZSwgaGVhZGVyLCBtZW51LCBib2R5LCBmb290ZXIgCistLSU+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPjx0aWxlczpnZXRBc1N0cmluZyBuYW1lPSJ0aXRsZSIvPjwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPFRBQkxFIHdpZHRoPSIxMDAlIj4KKyAgCisgIDxUUj4KKyAgICA8VEQgY29sc3Bhbj0iMiI+CisJICA8dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0iaGVhZGVyIiA+CisJICAgIDx0aWxlczpwdXQgbmFtZT0iYm9keSIgYmVhbk5hbWU9ImJvZHkiIGJlYW5TY29wZT0idGVtcGxhdGUiIC8+CisJICA8L3RpbGVzOmluc2VydD4KKwk8L1REPjwvVFI+CisgIDxUUj4KKyAgICA8VEQgd2lkdGg9IjEyMCI+PHRpbGVzOmluc2VydCBhdHRyaWJ1dGU9Im1lbnUiIC8+PC9URD4KKyAgICA8VEQ+CisJICA8dGlsZXM6dXNlQXR0cmlidXRlIG5hbWU9ImJvZHkiIGNsYXNzbmFtZT0iamF2YS5sYW5nLlN0cmluZyIvPgorCSAgPGJlYW46aW5zZXJ0IGlkPSJib2R5U3RyIiBwYWdlPSI8JT1ib2R5JT4iIC8+CisJICA8YmVhbjp3cml0ZSBuYW1lPSJib2R5U3RyIiBmaWx0ZXI9ImZhbHNlIi8+CisJPC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNvbHNwYW49IjIiPjx0aWxlczppbnNlcnQgYXR0cmlidXRlPSJmb290ZXIiIC8+PC9URD4KKyAgPC9UUj4KKzwvVEFCTEU+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC90ZXN0L3RlbXBsYXRlTGF5b3V0LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC90ZXN0L3RlbXBsYXRlTGF5b3V0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjhmZmMxCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3Rlc3QvdGVtcGxhdGVMYXlvdXQuanNwCkBAIC0wLDAgKzEsMjkgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1iZWFuIiBwcmVmaXg9ImJlYW4iICU+CisKKzwlLS0gTGF5b3V0IGNvbXBvbmVudCAKKyAgcGFyYW1ldGVycyA6IHRpdGxlLCBoZWFkZXIsIG1lbnUsIGJvZHksIGZvb3RlciAKKy0tJT4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+PHRpbGVzOmdldCBuYW1lPSJ0aXRsZSIvPjwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorPFRBQkxFIHdpZHRoPSIxMDAlIj4KKyAgCisgIDxUUj4KKyAgICA8VEQgY29sc3Bhbj0iMiI+PHRpbGVzOmdldCBuYW1lPSJoZWFkZXIiIC8+PC9URD48L1RSPgorICA8VFI+CisgICAgPFREIHdpZHRoPSIxMjAiPjx0aWxlczpnZXQgbmFtZT0ibWVudSIgLz48L1REPgorICAgIDxURD4KKwkgICoqPHRpbGVzOmluc2VydCBuYW1lPSJib2R5IiBmbHVzaD0ndHJ1ZScvPioqCisJPC9URD48L1RSPgorICA8VFI+CisgICAgPFREIGNvbHNwYW49IjIiPjx0aWxlczpnZXQgbmFtZT0iZm9vdGVyIiAvPjwvVEQ+CisgIDwvVFI+Cis8L1RBQkxFPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvdGVzdDIuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3Rlc3QyLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjU2ODZhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtZG9jdW1lbnRhdGlvbi9zcmMvd2ViYXBwL3R1dG9yaWFsL3Rlc3QyLmpzcApAQCAtMCwwICsxLDkgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKworPHRpbGVzOmluc2VydCBwYWdlPSIvdGVzdC9teUxheW91dC5qc3AiIGZsdXNoPSJ0cnVlIj4KKyAgPHRpbGVzOnB1dCBuYW1lPSJ0aXRsZSIgIHZhbHVlPSJNeSBmaXJzdCBwYWdlIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9ImhlYWRlciIgdmFsdWU9Ii90ZXN0L2hlYWRlci5qc3AiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0iZm9vdGVyIiB2YWx1ZT0iL2NvbW1vbi9mb290ZXIuanNwIiAvPgorICA8dGlsZXM6cHV0IG5hbWU9Im1lbnUiICAgdmFsdWU9Ii9iYXNpYy9tZW51LmpzcCIgLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJib2R5IiAgIHZhbHVlPSIvZm9yd2FyZEV4YW1wbGVBY3Rpb24uZG8iIC8+Cis8L3RpbGVzOmluc2VydD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLWRvY3VtZW50YXRpb24vc3JjL3dlYmFwcC90dXRvcmlhbC90ZXN0My5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvdGVzdDMuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljNmJiMmIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1kb2N1bWVudGF0aW9uL3NyYy93ZWJhcHAvdHV0b3JpYWwvdGVzdDMuanNwCkBAIC0wLDAgKzEsMTggQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy10aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4KKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vc3RydXRzLmFwYWNoZS5vcmcvdGFncy1iZWFuIiBwcmVmaXg9ImJlYW4iICU+CisKKzx0aWxlczppbnNlcnQgdGVtcGxhdGU9Jy90ZXN0L3RlbXBsYXRlTGF5b3V0LmpzcCc+CisgIDx0aWxlczpwdXQgbmFtZT0idGl0bGUiICBjb250ZW50PSJNeSBmaXJzdCBwYWdlIiBkaXJlY3Q9InRydWUiLz4KKyAgPHRpbGVzOnB1dCBuYW1lPSJoZWFkZXIiIGNvbnRlbnQ9Ii9jb21tb24vaGVhZGVyLmpzcCIgZGlyZWN0PSJ0cnVlIi8+CisgIDx0aWxlczpwdXQgbmFtZT0iZm9vdGVyIiBjb250ZW50PSIvY29tbW9uL2Zvb3Rlci5qc3AiIC8+CisgIDx0aWxlczpwdXQgbmFtZT0ibWVudSIgICBjb250ZW50PSIvYmFzaWMvbWVudS5qc3AiIGRpcmVjdD0idHJ1ZSIvPgorICAgPHRpbGVzOnB1dCBuYW1lPSJib2R5IiBjb250ZW50PScvdGVzdEFjdGlvbi5kbycgdHlwZT0icGFnZSIvPgorPC90aWxlczppbnNlcnQ+CisKKzwlLS0KKyAgIDx0aWxlczpwdXQgbmFtZT0iYm9keSIgY29udGVudD0nL3Rlc3RBY3Rpb24yLmRvJy8+CisgICA8dGlsZXM6cHV0IG5hbWU9ImJvZHkiIGRpcmVjdD0ndHJ1ZSc+CisgICAgICA8YmVhbjppbnNlcnQgaWQ9J3hvdXQyJyBwYWdlPScvZm9yd2FyZEV4YW1wbGVBY3Rpb24uZG8nLz4KKyAgICAgIDxiZWFuOndyaXRlIG5hbWU9J3hvdXQyJyBmaWx0ZXI9J2ZhbHNlJy8+CisgICAgPC90aWxlczpwdXQ+CistLSU+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9OT1RJQ0UudHh0IGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvTk9USUNFLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjU5ODA1Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvTk9USUNFLnR4dApAQCAtMCwwICsxLDIgQEAKK1RoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkKK1RoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoaHR0cDovL3d3dy5hcGFjaGUub3JnLykuCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9SRUFETUUudHh0IGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvUkVBRE1FLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzA4NGZiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvUkVBRE1FLnR4dApAQCAtMCwwICsxLDQ3IEBACitXSEFUIElTIFRISVM/CisKK1RoaXMgaXMgYSBzdGFuZGFsb25lIHZlcnNpb24gb2YgVGlsZXMsIGV4dHJpY2F0ZWQgZnJvbSBTdHJ1dHMgMS4xLiAKKworCitIT1cgSVMgSVQgRElGRkVSRU5UIEZST00gU1RSVVRTIFRJTEVTPworCitUaGVyZSBhcmUgYSBmZXcgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGlzIHZlcnNpb24gb2YgVGlsZXMgYW5kIFRpbGVzIGluY2x1ZGVkIAoraW4gU3RydXRzIDEuMS4KKworMS4gSW5zdGVhZCBvZiBvcmcuYXBhY2hlLnN0cnV0cy50aWxlcywgc3RhbmRhbG9uZSBUaWxlcyB1c2VzIG9yZy5hcGFjaGUudGlsZXMuIAorICAgVGhpcyBtZWFuczoKKworICAgYS4gWW91ciBUaWxlcyBzZXJ2bGV0IGRlY2xhcmF0aW9uIGluIHdlYi54bWwgc2hvdWxkIGxvb2sgbGlrZSB0aGlzOgorCisgICAgICAgIDxzZXJ2bGV0PgorICAgICAgICAgICA8c2VydmxldC1uYW1lPlRpbGVzIFNlcnZsZXQ8L3NlcnZsZXQtbmFtZT4KKyAgICAgICAgICAgPHNlcnZsZXQtY2xhc3M+b3JnLmFwYWNoZS50aWxlcy5zZXJ2bGV0cy5UaWxlc1NlcnZsZXQ8L3NlcnZsZXQtY2xhc3M+CisgICAgICAgICAgIC4uLgorICAgICAgICAgICA8bG9hZC1vbi1zdGFydHVwPjE8L2xvYWQtb24tc3RhcnR1cD4KKyAgICAgICAgPC9zZXJ2bGV0PgorCisgICAgICAgKE5vdGUgdGhlIGNsYXNzbmFtZSBmb3IgdGhlIFRpbGVzIHNlcnZsZXQ6IAorICAgICAgICBvcmcuYXBhY2hlLnRpbGVzLnNlcnZsZXRzLlRpbGVzU2VydmxldCkKKworICAgIGIuIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBmb3IgVGlsZXMgY29udHJvbGxlcnMgaGFzIGNoYW5nZWQgdG8gCisgICAgICAgb3JnLmFwYWNoZS50aWxlcy5Db250cm9sbGVyLgorCisyLiBJbnN0ZWFkIG9mIGh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvc3RydXRzL3RhZ3MtdGlsZXMgZm9yIHRoZSB0YWcgbGlicmFyeSAKKyAgIHVyaSwgc3RhbmRhbG9uZSBUaWxlcyB1c2VzIGh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdGlsZXMuIFNvIHlvdXIgdGFnbGliIAorICAgZGVjbGFyYXRpb24gc2hvdWxkIGxpa2UgdGhpczogCisKKyAgICAgIDwlQCB0YWdsaWIgdXJpPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RpbGVzIiAlPgorCisKK0hPVyBETyBJIEdFVCBTVEFSVEVEPworCitGaXJzdCwgeW91IG11c3QgYnVpbGQgdGhlIHRpbGVzLWNvcmUuamFyIGZpbGUuIENvcHkgYnVpbGQucHJvcGVydGllcy5zYW1wbGUKK3RvIGJ1aWxkLnByb3BlcnRpZXMgYW5kIGVkaXQgcHJvcGVydGllcyBhcyBhcHByb3ByaWF0ZS4gVGhlbiBjaGFuZ2UgdG8KK3RoZSBjb3JlLWxpYnJhcnkgZGlyZWN0b3J5IGFuZCBkbyAiYW50IGRpc3QiLiBUaGF0IHdpbGwgY3JlYXRlLCBhbW9uZyBvdGhlcgordGhpbmdzLCBjb3JlLWxpYnJhcnkvZGlzdC9saWIvdGlsZXMtY29yZS5qYXIsIHdoaWNoIHlvdSBpbmNsdWRlIGluIHRoZSBsaWIKK2RpcmVjdG9yeSBvZiB5b3VyIFdBUiBmaWxlLgorCitUbyBnZXQgc3RhcnRlZCB1c2luZyBUaWxlcywgeW91J2xsIGZpbmQgYW4gZXhhbXBsZXMvc2ltcGxlIGRpcmVjdG9yeSBpbiAgCit0aGUgdG9wLWxldmVsIGRpcmVjdG9yeSAoaW4gd2hpY2ggdGhpcyBmaWxlIHJlc2lkZXMpLiBUaGF0IGRpcmVjdG9yeSBjb250YWlucworYSBzaW1wbGUgZXhhbXBsZSB0aGF0IGlsbHVzdHJhdGVzIFRpbGVzIGZ1bmRhbWVudGFscy4gVGhhdCBhcHBsaWNhdGlvbiBpcworZG9jdW1lbnRlZCBpbiB0aWxlcy5wZGYsIHdoaWNoIGlzIGFsc28gaW4gdGhlIHRvcC1sZXZlbCBkaXJlY3RvcnkuCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9idWlsZC5wcm9wZXJ0aWVzLnNhbXBsZSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2J1aWxkLnByb3BlcnRpZXMuc2FtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkMjM3MTIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9idWlsZC5wcm9wZXJ0aWVzLnNhbXBsZQpAQCAtMCwwICsxLDYwIEBACisjIGJ1aWxkLnByb3BlcnRpZXMuc2FtcGxlDQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyMNCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyMgQ29weXJpZ2h0IDIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0KKyMgDQorIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsNCisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4NCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdA0KKyMgDQorIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMA0KKyMgDQorIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlDQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLA0KKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuDQorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kDQorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4NCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyMNCisjIFRoaXMgZmlsZSBjb250YWlucyBleGFtcGxlIHByb3BlcnR5IHNldHRpbmdzIHRoYXQgeW91IHdvdWxkIHVzZSB0byBjdXN0b216aWUNCisjIHlvdXIgYnVpbGQgZW52aXJvbm1lbnQgdG8gYnVpbGQgdGhlIFN0cnV0cyBTaGFsZSBMaWJyYXJ5IGZyb20NCisjIHNvdXJjZSBjb2RlLiAgVG8gdXNlIHRoaXMgZmlsZSwgbWFrZSBhIGNvcHkgb2YgaXQgaW4gImJ1aWxkLnByb3BlcnRpZXMiIGFuZA0KKyMgY3VzdG9taXplIHRoZSB2YWx1ZXMgYXMgcmVxdWlyZWQuDQorIw0KKyMgJElkOiAgJA0KKyMNCisNCisjIFRoZSBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRobmFtZSBvZiB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlDQorIyBKYWthcnRhIENvbW1vbnMgQmVhblV0aWxzIGxpYnJhcnkNCitiZWFudXRpbHMuaG9tZSA9IC9EZXZlbG9wZXIvSmF2YS9Ub29scy9qYWthcnRhL2NvbW1vbnMtYmVhbnV0aWxzLTEuNi4xDQorDQorIyBUaGUgYWJzb2x1dGUgb3IgcmVsYXRpdmUgcGF0aG5hbWUgb2YgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZQ0KKyMgSmFrYXJ0YSBDb21tb25zIERpZ2VzdGVyIGxpYnJhcnkNCitkaWdlc3Rlci5ob21lID0gL0RldmVsb3Blci9KYXZhL1Rvb2xzL2pha2FydGEvY29tbW9ucy1kaWdlc3Rlci0xLjUNCisNCisjIFRoZSBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRobmFtZSBvZiB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlDQorIyBKYWthcnRhIENvbW1vbnMgTG9nZ2luZyBsaWJyYXJ5DQorbG9nZ2luZy5ob21lID0gL0RldmVsb3Blci9KYXZhL1Rvb2xzL2pha2FydGEvY29tbW9ucy1sb2dnaW5nLTEuMC4zDQorDQorIyBUaGUgYWJzb2x1dGUgb3IgcmVsYXRpdmUgcGF0aG5hbWUgb2YgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHlvdXINCisjIFNlcnZsZXQgQVBJIGNsYXNzZXMgSkFSIGZpbGUgKHNlcnZsZXQuamFyKQ0KK3NlcnZlci5ob21lID0gL0RldmVsb3Blci9KYXZhL1Rvb2xzL2pha2FydGEvamFrYXJ0YS10b21jYXQtNS4wLjMwDQorDQorIyBUaGUgYWJzb2x1dGUgb3IgcmVsYXRpdmUgcGF0aG5hbWUgb2YgdGhlIEphdmFTZXJ2ZXIgRmFjZXMgDQorIyBpbXBsZW1lbnRhdGlvbg0KK2pzZi5ob21lID0gL0RldmVsb3Blci9KYXZhL1Rvb2xzL2pzZi0xXzFfMDENCisNCisjIFRoZSBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRobmFtZSBvZiB0aGUgSlVuaXQgMy44LjEgSkFSDQoranVuaXQuaG9tZSA9IC9EZXZlbG9wZXIvSmF2YS9Ub29scy9qdW5pdDMuOC4xDQorDQorIyBUaGUgYWJzb2x1dGUgb3IgcmVsYXRpdmUgcGF0aG5hbWUgb2YgdGhlIEpTVEwgaW5zdGFsbCBkaXINCitqc3RsLmhvbWUgPSAvRGV2ZWxvcGVyL0phdmEvVG9vbHMvamFrYXJ0YS9qYWthcnRhLXRhZ2xpYnMtc3RhbmRhcmQtMS4xLjANCisNCisjIFRoZSBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRobmFtZSBvZiB0aGUgSlNUTCBpbnN0YWxsIGRpcg0KK2pzdGwuaG9tZSA9IC9EZXZlbG9wZXIvSmF2YS9Ub29scy9qYWthcnRhL2pha2FydGEtdGFnbGlicy1zdGFuZGFyZC0xLjEuMA0KKw0KKyMgVGhlIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBmb3IgVG9tY2F0IGZvciBob3QgZGVwbG95cw0KK3VzZXJuYW1lPXlvdXJVc2VybmFtZQ0KK3Bhc3N3b3JkPXlvdXJQYXNzd29yZA0KK21hbmFnZXIudXJsPWh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9tYW5hZ2VyDQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L0xJQ0VOU0UudHh0IGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L0xJQ0VOU0UudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2NDU2OTUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvTElDRU5TRS50eHQKQEAgLTAsMCArMSwyMDIgQEAKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBhY2hlIExpY2Vuc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMi4wLCBKYW51YXJ5IDIwMDQKKyAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KKworICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIFVTRSwgUkVQUk9EVUNUSU9OLCBBTkQgRElTVFJJQlVUSU9OCisKKyAgIDEuIERlZmluaXRpb25zLgorCisgICAgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVkIGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisKKyAgICAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5CisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vuc2UuCisKKyAgICAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKKyAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwgYXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKyAgICAgIGNvbnRyb2wgd2l0aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCisgICAgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUKKyAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCisgICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlwIG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKKyAgICAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCisKKyAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKKyAgICAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCisKKyAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZvcm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAorICAgICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorICAgICAgc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKworICAgICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKKyAgICAgIHRyYW5zZm9ybWF0aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKyAgICAgIG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiwKKyAgICAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKworICAgICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBTb3VyY2Ugb3IKKyAgICAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKKyAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBpbmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yaworICAgICAgKGFuIGV4YW1wbGUgaXMgcHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KKworICAgICAgIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAorICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQgZm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMKKyAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IHJlbWFpbgorICAgICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAorICAgICAgdGhlIFdvcmsgYW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKworICAgICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKKyAgICAgIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlvbnMKKyAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQgaXMgaW50ZW50aW9uYWxseQorICAgICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgorICAgICAgb3IgYnkgYW4gaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9mCisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwgInN1Ym1pdHRlZCIKKyAgICAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKKyAgICAgIHRvIHRoZSBMaWNlbnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCisgICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNlIGNvZGUgY29udHJvbCBzeXN0ZW1zLAorICAgICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKyAgICAgIExpY2Vuc29yIGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1dAorICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1hcmtlZCBvciBvdGhlcndpc2UKKyAgICAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgorCisgICAgICAiQ29udHJpYnV0b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICAgICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCisgICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yay4KKworICAgMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCisgICAgICBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBzdWJsaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSB0aGUKKyAgICAgIFdvcmsgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3JrcyBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0uCisKKyAgIDMuIEdyYW50IG9mIFBhdGVudCBMaWNlbnNlLiBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKKyAgICAgIChleGNlcHQgYXMgc3RhdGVkIGluIHRoaXMgc2VjdGlvbikgcGF0ZW50IGxpY2Vuc2UgdG8gbWFrZSwgaGF2ZSBtYWRlLAorICAgICAgdXNlLCBvZmZlciB0byBzZWxsLCBzZWxsLCBpbXBvcnQsIGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIFdvcmssCisgICAgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQorICAgICAgYnkgc3VjaCBDb250cmlidXRvciB0aGF0IGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlaXIKKyAgICAgIENvbnRyaWJ1dGlvbihzKSBhbG9uZSBvciBieSBjb21iaW5hdGlvbiBvZiB0aGVpciBDb250cmlidXRpb24ocykKKyAgICAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91CisgICAgICBpbnN0aXR1dGUgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgV29yaworICAgICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKKyAgICAgIG9yIGNvbnRyaWJ1dG9yeSBwYXRlbnQgaW5mcmluZ2VtZW50LCB0aGVuIGFueSBwYXRlbnQgbGljZW5zZXMKKyAgICAgIGdyYW50ZWQgdG8gWW91IHVuZGVyIHRoaXMgTGljZW5zZSBmb3IgdGhhdCBXb3JrIHNoYWxsIHRlcm1pbmF0ZQorICAgICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgorCisgICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZQorICAgICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CisgICAgICBtb2RpZmljYXRpb25zLCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorICAgICAgbWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKyAgICAgIChhKSBZb3UgbXVzdCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCisgICAgICAgICAgRGVyaXZhdGl2ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKKworICAgICAgKGIpIFlvdSBtdXN0IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICAgICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAorCisgICAgICAoYykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUgV29ya3MKKyAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywgYW5kCisgICAgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKKyAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCisgICAgICAgICAgdGhlIERlcml2YXRpdmUgV29ya3M7IGFuZAorCisgICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAiTk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKKyAgICAgICAgICBkaXN0cmlidXRpb24sIHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CisgICAgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCisgICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisgICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBvZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCisgICAgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKKyAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNvdXJjZSBmb3JtIG9yCisgICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcgd2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCisgICAgICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAorICAgICAgICAgIHdoZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250ZW50cworICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSBhbmQKKyAgICAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgorICAgICAgICAgIG5vdGljZXMgd2l0aGluIERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCisgICAgICAgICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHByb3ZpZGVkCisgICAgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCisgICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNlLgorCisgICAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKKyAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKyAgICAgIGZvciB1c2UsIHJlcHJvZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKKyAgICAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAorICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90aGVyd2lzZSBjb21wbGllcyB3aXRoCisgICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhpcyBMaWNlbnNlLgorCisgICA1LiBTdWJtaXNzaW9uIG9mIENvbnRyaWJ1dGlvbnMuIFVubGVzcyBZb3UgZXhwbGljaXRseSBzdGF0ZSBvdGhlcndpc2UsCisgICAgICBhbnkgQ29udHJpYnV0aW9uIGludGVudGlvbmFsbHkgc3VibWl0dGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsKKyAgICAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIHdpdGhvdXQgYW55IGFkZGl0aW9uYWwgdGVybXMgb3IgY29uZGl0aW9ucy4KKyAgICAgIE5vdHdpdGhzdGFuZGluZyB0aGUgYWJvdmUsIG5vdGhpbmcgaGVyZWluIHNoYWxsIHN1cGVyc2VkZSBvciBtb2RpZnkKKyAgICAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCisgICAgICB3aXRoIExpY2Vuc29yIHJlZ2FyZGluZyBzdWNoIENvbnRyaWJ1dGlvbnMuCisKKyAgIDYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKKyAgICAgIG5hbWVzLCB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciBwcm9kdWN0IG5hbWVzIG9mIHRoZSBMaWNlbnNvciwKKyAgICAgIGV4Y2VwdCBhcyByZXF1aXJlZCBmb3IgcmVhc29uYWJsZSBhbmQgY3VzdG9tYXJ5IHVzZSBpbiBkZXNjcmliaW5nIHRoZQorICAgICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCisKKyAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvcgorICAgICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAorICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMgaXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyAgICAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCisgICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCisgICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlvdSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKKyAgICAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQorICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlzc2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorCisgICA4LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKKyAgICAgIHdoZXRoZXIgaW4gdG9ydCAoaW5jbHVkaW5nIG5lZ2xpZ2VuY2UpLCBjb250cmFjdCwgb3Igb3RoZXJ3aXNlLAorICAgICAgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IChzdWNoIGFzIGRlbGliZXJhdGUgYW5kIGdyb3NzbHkKKyAgICAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCisgICAgICBsaWFibGUgdG8gWW91IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgYW55IGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCisgICAgICBpbmNpZGVudGFsLCBvciBjb25zZXF1ZW50aWFsIGRhbWFnZXMgb2YgYW55IGNoYXJhY3RlciBhcmlzaW5nIGFzIGEKKyAgICAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKKyAgICAgIFdvcmsgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gZGFtYWdlcyBmb3IgbG9zcyBvZiBnb29kd2lsbCwKKyAgICAgIHdvcmsgc3RvcHBhZ2UsIGNvbXB1dGVyIGZhaWx1cmUgb3IgbWFsZnVuY3Rpb24sIG9yIGFueSBhbmQgYWxsCisgICAgICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCisgICAgICBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCisKKyAgIDkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKKyAgICAgIHRoZSBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgWW91IG1heSBjaG9vc2UgdG8gb2ZmZXIsCisgICAgICBhbmQgY2hhcmdlIGEgZmVlIGZvciwgYWNjZXB0YW5jZSBvZiBzdXBwb3J0LCB3YXJyYW50eSwgaW5kZW1uaXR5LAorICAgICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKKyAgICAgIExpY2Vuc2UuIEhvd2V2ZXIsIGluIGFjY2VwdGluZyBzdWNoIG9ibGlnYXRpb25zLCBZb3UgbWF5IGFjdCBvbmx5CisgICAgICBvbiBZb3VyIG93biBiZWhhbGYgYW5kIG9uIFlvdXIgc29sZSByZXNwb25zaWJpbGl0eSwgbm90IG9uIGJlaGFsZgorICAgICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAorICAgICAgZGVmZW5kLCBhbmQgaG9sZCBlYWNoIENvbnRyaWJ1dG9yIGhhcm1sZXNzIGZvciBhbnkgbGlhYmlsaXR5CisgICAgICBpbmN1cnJlZCBieSwgb3IgY2xhaW1zIGFzc2VydGVkIGFnYWluc3QsIHN1Y2ggQ29udHJpYnV0b3IgYnkgcmVhc29uCisgICAgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KKworICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCisKKyAgIEFQUEVORElYOiBIb3cgdG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yay4KKworICAgICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBmb2xsb3dpbmcKKyAgICAgIGJvaWxlcnBsYXRlIG5vdGljZSwgd2l0aCB0aGUgZmllbGRzIGVuY2xvc2VkIGJ5IGJyYWNrZXRzICJbXSIKKyAgICAgIHJlcGxhY2VkIHdpdGggeW91ciBvd24gaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24uIChEb24ndCBpbmNsdWRlCisgICAgICB0aGUgYnJhY2tldHMhKSAgVGhlIHRleHQgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQorICAgICAgY29tbWVudCBzeW50YXggZm9yIHRoZSBmaWxlIGZvcm1hdC4gV2UgYWxzbyByZWNvbW1lbmQgdGhhdCBhCisgICAgICBmaWxlIG9yIGNsYXNzIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHB1cnBvc2UgYmUgaW5jbHVkZWQgb24gdGhlCisgICAgICBzYW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciBlYXNpZXIKKyAgICAgIGlkZW50aWZpY2F0aW9uIHdpdGhpbiB0aGlyZC1wYXJ0eSBhcmNoaXZlcy4KKworICAgQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCisKKyAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvTk9USUNFLnR4dCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9OT1RJQ0UudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxOTY5OGUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvTk9USUNFLnR4dApAQCAtMCwwICsxLDggQEAKK1RoaXMgcHJvZHVjdCBpbmNsdWRlcyBzb2Z0d2FyZSBkZXZlbG9wZWQgYnkKK1RoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoaHR0cDovL3d3dy5hcGFjaGUub3JnLykuCisKK1RoaXMgcHJvZHVjdCBpbmNsdWRlcyB0aGUgSmF2YVNlcnZlciBGYWNlcyByZWZlcmVuY2UKK2ltcGxlbWVudGF0aW9uLCBkZXZlbG9wZWQgYnkgU3VuIE1pY3Jvc3lzdGVtcworKGh0dHA6Ly9qYXZhLnN1bi5jb20vajJlZS9qYXZhc2VydmVyZmFjZXMvKSBhbmQKK3JlZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIGxpY2Vuc2UgdGVybXMgZm91bmQKK2luIExJQ0VOU0UtSlNGLnR4dC4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9idWlsZC54bWwgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvYnVpbGQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4YWQyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvYnVpbGQueG1sCkBAIC0wLDAgKzEsMzAxIEBACis8IS0tCisKKyBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAKKyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgCisgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAKKyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKyAkSWQ6IGJ1aWxkLnhtbCA1NDk0MiAyMDA0LTEwLTE2IDIyOjM5OjI1WiBjcmFpZ21jYyAkCisKKy0tPgorCisKKzxwcm9qZWN0IG5hbWU9IlRpbGVzIENvcmUgTGlicmFyeSIgZGVmYXVsdD0ibGlicmFyeSIgYmFzZWRpcj0iLiI+CisKKworICA8IS0tID09PT09PT09PT09PT09PT09PT09PSBJbml0aWFsaXplIFByb3BlcnR5IFZhbHVlcyA9PT09PT09PT09PT09PT09PT09PSAtLT4KKworCisgIDwhLS0gSW5pdGlhbGl6ZSBwcm9wZXJ0eSB2YWx1ZXMgLS0+CisgIDxwcm9wZXJ0eSBmaWxlPSJidWlsZC5wcm9wZXJ0aWVzIi8+CisgIDxwcm9wZXJ0eSBmaWxlPSIuLi9idWlsZC5wcm9wZXJ0aWVzIi8+CisgIDxwcm9wZXJ0eSBmaWxlPSIuLi8uLi9idWlsZC5wcm9wZXJ0aWVzIi8+CisgIDxwcm9wZXJ0eSBmaWxlPSIke3VzZXIuaG9tZX0vYnVpbGQucHJvcGVydGllcyIvPgorCisKKyAgPCEtLSBCdWlsZCBEZWZhdWx0cyAtLT4KKyAgPHByb3BlcnR5IG5hbWU9ImJ1aWxkLmhvbWUiICAgICAgICAgICAgICB2YWx1ZT0iJHtiYXNlZGlyfS90YXJnZXQiLz4KKyAgPHByb3BlcnR5IG5hbWU9ImRpc3QuaG9tZSIgICAgICAgICAgICAgICB2YWx1ZT0iJHtiYXNlZGlyfS9kaXN0Ii8+CisgIDxwcm9wZXJ0eSBuYW1lPSJwcm9qZWN0Lm5hbWUiICAgICAgICAgICAgdmFsdWU9IlRpbGVzIENvcmUgTGlicmFyeSIvPgorICA8cHJvcGVydHkgbmFtZT0icHJvamVjdC5wYWNrYWdlIiAgICAgICAgIHZhbHVlPSJvcmcuYXBhY2hlLnRpbGVzIi8+CisgIDxwcm9wZXJ0eSBuYW1lPSJwcm9qZWN0LnZlcnNpb24iICAgICAgICAgdmFsdWU9IjAuMS1kZXYiLz4KKworCisgIDwhLS0gRGVwZW5kZW5jeSBsaWJyYXJ5IGRlZmF1bHRzIC0tPgorICA8cHJvcGVydHkgbmFtZT0iY29tbW9ucy1iZWFudXRpbHMuamFyIiB2YWx1ZT0iJHtiZWFudXRpbHMuaG9tZX0vY29tbW9ucy1iZWFudXRpbHMuamFyIi8+CisgIDxwcm9wZXJ0eSBuYW1lPSJjb21tb25zLWRpZ2VzdGVyLmphciIgdmFsdWU9IiR7ZGlnZXN0ZXIuaG9tZX0vY29tbW9ucy1kaWdlc3Rlci5qYXIiLz4KKyAgPHByb3BlcnR5IG5hbWU9ImNvbW1vbnMtbG9nZ2luZy5qYXIiIHZhbHVlPSIke2xvZ2dpbmcuaG9tZX0vY29tbW9ucy1sb2dnaW5nLmphciIvPgorICA8cHJvcGVydHkgbmFtZT0ianNwLWFwaS5qYXIiICAgICAgdmFsdWU9IiR7c2VydmVyLmhvbWV9L2NvbW1vbi9saWIvanNwLWFwaS5qYXIiLz4KKyAgPHByb3BlcnR5IG5hbWU9ImpzZi1pbXBsLmphciIgICAgIHZhbHVlPSIke2pzZi5ob21lfS9saWIvanNmLWltcGwuamFyIi8+CisgIDxwcm9wZXJ0eSBuYW1lPSJqc2YtYXBpLmphciIgICAgICB2YWx1ZT0iJHtqc2YuaG9tZX0vbGliL2pzZi1hcGkuamFyIi8+CisgIDxwcm9wZXJ0eSBuYW1lPSJqdW5pdC5qYXIiICAgICAgICB2YWx1ZT0iJHtqdW5pdC5ob21lfS9qdW5pdC5qYXIiLz4KKyAgPHByb3BlcnR5IG5hbWU9InNlcnZsZXQtYXBpLmphciIgIHZhbHVlPSIke3NlcnZlci5ob21lfS9jb21tb24vbGliL3NlcnZsZXQtYXBpLmphciIvPgorCisKKyAgPCEtLSBDb21waWxlIERlZmF1bHRzIC0tPgorICA8cHJvcGVydHkgbmFtZT0iY29tcGlsZS5kZWJ1ZyIgICAgICAgICAgIHZhbHVlPSJ0cnVlIi8+CisgIDxwcm9wZXJ0eSBuYW1lPSJjb21waWxlLmRlcHJlY2F0aW9uIiAgICAgdmFsdWU9ImZhbHNlIi8+CisgIDxwcm9wZXJ0eSBuYW1lPSJjb21waWxlLm9wdGltaXplIiAgICAgICAgdmFsdWU9InRydWUiLz4KKworCisgIDwhLS0gVW5pdCBUZXN0IERlZmF1bHRzIC0tPgorICA8cHJvcGVydHkgbmFtZT0idGVzdC5oYWx0b25lcnJvciIgICAgICAgIHZhbHVlPSJ0cnVlIi8+CisgIDxwcm9wZXJ0eSBuYW1lPSJ0ZXN0LmhhbHRvbmZhaWx1cmUiICAgICAgdmFsdWU9InRydWUiLz4KKyAgPHByb3BlcnR5IG5hbWU9InRlc3QucnVubmVyIiAgICAgICAgICAgICB2YWx1ZT0ianVuaXQudGV4dHVpLlRlc3RSdW5uZXIiLz4KKworCisgIDwhLS0gQ29tcGlsZSBDbGFzc3BhdGggLS0+CisgIDxwYXRoIGlkPSJjb21waWxlLmNsYXNzcGF0aCI+CisgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2NvbW1vbnMtYmVhbnV0aWxzLmphcn0iLz4KKyAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7Y29tbW9ucy1kaWdlc3Rlci5qYXJ9Ii8+CisgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2NvbW1vbnMtbG9nZ2luZy5qYXJ9Ii8+CisgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2pzZi1hcGkuamFyfSIvPgorICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtqc2YtaW1wbC5qYXJ9Ii8+CisgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2pzcC1hcGkuamFyfSIvPgorICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtzZXJ2bGV0LWFwaS5qYXJ9Ii8+CisgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2J1aWxkLmhvbWV9L2NsYXNzZXMiLz4KKyAgPC9wYXRoPgorCisKKyAgPCEtLSBGaW5kYnVncyBDbGFzc3BhdGggLS0+CisgIDxwYXRoIGlkPSJmaW5kYnVncy5jbGFzc3BhdGgiPgorICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtjb21tb25zLWJlYW51dGlscy5qYXJ9Ii8+CisgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2NvbW1vbnMtZGlnZXN0ZXIuamFyfSIvPgorICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtjb21tb25zLWxvZ2dpbmcuamFyfSIvPgorICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtqc2YtYXBpLmphcn0iLz4KKyAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7anNwLWFwaS5qYXJ9Ii8+CisgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke3NlcnZsZXQtYXBpLmphcn0iLz4KKyAgPC9wYXRoPgorCisKKyAgPCEtLSBUZXN0IENsYXNzcGF0aCAtLT4KKyAgPHBhdGggaWQ9InRlc3QuY2xhc3NwYXRoIj4KKyAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7Y29tbW9ucy1iZWFudXRpbHMuamFyfSIvPgorICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtjb21tb25zLWRpZ2VzdGVyLmphcn0iLz4KKyAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7anNmLWFwaS5qYXJ9Ii8+CisgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke2pzcC1hcGkuamFyfSIvPgorICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtqdW5pdC5qYXJ9Ii8+CisgICAgPHBhdGhlbGVtZW50IGxvY2F0aW9uPSIke3NlcnZsZXQtYXBpLmphcn0iLz4KKyAgICA8cGF0aGVsZW1lbnQgbG9jYXRpb249IiR7YnVpbGQuaG9tZX0vY2xhc3NlcyIvPgorICAgIDxwYXRoZWxlbWVudCBsb2NhdGlvbj0iJHtidWlsZC5ob21lfS90ZXN0LWNsYXNzZXMiLz4KKyAgPC9wYXRoPgorCisKKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09PSBNYWludGVuYW5jZSBUYXJnZXRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisKKworICA8dGFyZ2V0ICAgICBuYW1lPSJjbGVhbiIKKyAgICAgICBkZXNjcmlwdGlvbj0iQ2xlYW4gYWxsIGJ1aWxkIGRpcmVjdG9yaWVzIj4KKyAgICA8ZGVsZXRlICAgIGRpcj0iJHtidWlsZC5ob21lfSIvPgorICAgIDxkZWxldGUgICAgZGlyPSIke2Rpc3QuaG9tZX0iLz4KKyAgPC90YXJnZXQ+CisKKworICA8dGFyZ2V0ICAgICBuYW1lPSJpbml0Ij4KKyAgICA8ZWNobyAgbWVzc2FnZT0iLS0tLS0tLS0tLSAke3Byb2plY3QubmFtZX0gJHtwcm9qZWN0LnZlcnNpb259IC0tLS0tLS0tLS0tIi8+CisgICAgPGZpbHRlciAgdG9rZW49Im5hbWUiICAgICB2YWx1ZT0iJHtwcm9qZWN0Lm5hbWV9Ii8+CisgICAgPGZpbHRlciAgdG9rZW49InBhY2thZ2UiICB2YWx1ZT0iJHtwcm9qZWN0LnBhY2thZ2V9Ii8+CisgICAgPGZpbHRlciAgdG9rZW49InN0YXRlIiAgICB2YWx1ZT0iJHtzeXN0ZXN0LnN0YXRlLnNhdmluZ30iLz4KKyAgICA8ZmlsdGVyICB0b2tlbj0idmVyc2lvbiIgIHZhbHVlPSIke3Byb2plY3QudmVyc2lvbn0iLz4KKyAgICA8ZWNobyAgbWVzc2FnZT0iY29tbW9ucy1iZWFudXRpbHMuamFyID0gICR7Y29tbW9ucy1iZWFudXRpbHMuamFyfSIvPgorICAgIDxlY2hvICBtZXNzYWdlPSJjb21tb25zLWRpZ2VzdGVyLmphciA9ICAgJHtjb21tb25zLWRpZ2VzdGVyLmphcn0iLz4KKyAgICA8ZWNobyAgbWVzc2FnZT0iY29tbW9ucy1sb2dnaW5nLmphciA9ICAgICR7Y29tbW9ucy1sb2dnaW5nLmphcn0iLz4KKyAgICA8ZWNobyAgbWVzc2FnZT0ianNmLWFwaS5qYXIgPSAgICAgICAgICAgICR7anNmLWFwaS5qYXJ9Ii8+CisgICAgPGVjaG8gIG1lc3NhZ2U9ImpzZi1pbXBsLmphciA9ICAgICAgICAgICAke2pzZi1pbXBsLmphcn0iLz4KKyAgICA8ZWNobyAgbWVzc2FnZT0ianNwLWFwaS5qYXIgPSAgICAgICAgICAgICR7anNwLWFwaS5qYXJ9Ii8+CisgICAgPGVjaG8gIG1lc3NhZ2U9InNlcnZsZXQtYXBpLmphciA9ICAgICAgICAke3NlcnZsZXQtYXBpLmphcn0iLz4KKyAgPC90YXJnZXQ+CisKKworICA8dGFyZ2V0ICAgICBuYW1lPSJwcmVwYXJlIiBkZXBlbmRzPSJpbml0Ij4KKyAgICA8bWtkaXIgICAgIGRpcj0iJHtidWlsZC5ob21lfSIvPgorICAgIDxta2RpciAgICAgZGlyPSIke2J1aWxkLmhvbWV9L2NsYXNzZXMiLz4KKyAgICA8bWtkaXIgICAgIGRpcj0iJHtidWlsZC5ob21lfS9jbGFzc2VzL01FVEEtSU5GIi8+CisgICAgPG1rZGlyICAgICBkaXI9IiR7YnVpbGQuaG9tZX0vY29uZiIvPgorICAgIDxta2RpciAgICAgZGlyPSIke2J1aWxkLmhvbWV9L2xpYiIvPgorICAgIDxta2RpciAgICAgZGlyPSIke2Rpc3QuaG9tZX0iLz4KKyAgICA8bWtkaXIgICAgIGRpcj0iJHtkaXN0LmhvbWV9L2RvY3MiLz4KKyAgICA8bWtkaXIgICAgIGRpcj0iJHtkaXN0LmhvbWV9L2RvY3MvYXBpIi8+CisgIDwvdGFyZ2V0PgorCisKKyAgPHRhcmdldCAgICAgbmFtZT0ic3RhdGljIiBkZXBlbmRzPSJwcmVwYXJlIj4KKyAgICA8dHN0YW1wLz4KKyAgICA8Y29weSAgICB0b2Rpcj0iJHtidWlsZC5ob21lfS9jb25mIgorICAgICAgICAgZmlsdGVyaW5nPSJvbiI+CisgICAgICA8ZmlsZXNldCBkaXI9InNyYy9jb25mIgorICAgICAgICAgIGluY2x1ZGVzPSIqLk1GIi8+CisgICAgPC9jb3B5PgorICAgIDxjb3B5ICAgIHRvZGlyPSIke2J1aWxkLmhvbWV9L2NsYXNzZXMvTUVUQS1JTkYiPgorICAgICAgPGZpbGVzZXQgZGlyPSJzcmMvY29uZiIKKyAgICAgICAgICBpbmNsdWRlcz0idGlsZXMtY29yZS50bGQiLz4KKyAgICA8L2NvcHk+CisgIDwvdGFyZ2V0PgorCisKKyAgPCEtLSA9PT09PT09PT09PT09PT09PT09IENvbXBpbGUgTGlicmFyeSBDb21wb25lbnRzID09PT09PT09PT09PT09PT09PT09PT0gLS0+CisKKworICA8dGFyZ2V0ICAgICAgICAgbmFtZT0iY29tcGlsZSIgZGVwZW5kcz0ic3RhdGljIgorICAgICAgICAgICBkZXNjcmlwdGlvbj0iQ29tcGlsZSBjb3JlIGxpYnJhcnkiPgorCisgICAgPCEtLSBDb21waWxlIEphdmEgU291cmNlcyAtLT4KKyAgICA8amF2YWMgICAgICBzcmNkaXI9InNyYy9qYXZhIgorICAgICAgICAgICAgICAgZGVzdGRpcj0iJHtidWlsZC5ob21lfS9jbGFzc2VzIgorICAgICAgICAgICAgICAgICBkZWJ1Zz0iJHtjb21waWxlLmRlYnVnfSIKKyAgICAgICAgICAgZGVwcmVjYXRpb249IiR7Y29tcGlsZS5kZXByZWNhdGlvbn0iCisgICAgICAgICAgICAgIG9wdGltaXplPSIke2NvbXBpbGUub3B0aW1pemV9Ij4KKyAgICAgIDxjbGFzc3BhdGggcmVmaWQ9ImNvbXBpbGUuY2xhc3NwYXRoIiAvPgorICAgIDwvamF2YWM+CisKKyAgICA8IS0tIENvcHkgbm9uLUphdmEgU291cmNlcyAtLT4KKyAgICA8Y29weSAgICAgICAgdG9kaXI9IiR7YnVpbGQuaG9tZX0vY2xhc3NlcyI+CisgICAgICA8ZmlsZXNldCAgICAgZGlyPSJzcmMvamF2YSI+CisgICAgICAgIDxleGNsdWRlICBuYW1lPSIqKi8qLmphdmEiLz4KKyAgICAgIDwvZmlsZXNldD4KKyAgICA8L2NvcHk+CisKKyAgICA8IS0tIENvcHkgRFREcyBpbnRvIGFwcHJvcHJpYXRlIHJlc291cmNlcyBkaXJlY3RvcnkgLS0+CisgICAgPG1rZGlyICAgICAgICAgZGlyPSIke2J1aWxkLmhvbWV9L2NsYXNzZXMvb3JnL2FwYWNoZS90aWxlcy9yZXNvdXJjZXMiLz4KKyAgICA8Y29weSAgICAgICAgdG9kaXI9IiR7YnVpbGQuaG9tZX0vY2xhc3Nlcy9vcmcvYXBhY2hlL3RpbGVzL3Jlc291cmNlcyI+CisgICAgICA8ZmlsZXNldCAgICAgZGlyPSJzcmMvY29uZiIKKyAgICAgICAgICAgICAgaW5jbHVkZXM9IiouZHRkIi8+CisgICAgPC9jb3B5PgorCisgICAgPCEtLSBDb3B5IGxpY2Vuc2UgYW5kIG5vdGljZSBmaWxlcyAtLT4KKyAgICA8Y29weSAgICAgICB0b2ZpbGU9IiR7YnVpbGQuaG9tZX0vY2xhc3Nlcy9NRVRBLUlORi9MSUNFTlNFLnR4dCIKKyAgICAgICAgICAgICAgICAgIGZpbGU9IkxJQ0VOU0UudHh0Ii8+CisgICAgPGNvcHkgICAgICAgdG9maWxlPSIke2J1aWxkLmhvbWV9L2NsYXNzZXMvTUVUQS1JTkYvTk9USUNFLnR4dCIKKyAgICAgICAgICAgICAgICAgIGZpbGU9Ik5PVElDRS50eHQiLz4KKworICA8L3RhcmdldD4KKworCisgIDx0YXJnZXQgICAgICAgICBuYW1lPSJsaWJyYXJ5IiBkZXBlbmRzPSJjb21waWxlIgorICAgICAgICAgICBkZXNjcmlwdGlvbj0iUGFja2FnZSBjb3JlIGxpYnJhcnkiPgorCisgICAgPGphciAgICAgICBqYXJmaWxlPSIke2J1aWxkLmhvbWV9L2xpYi90aWxlcy1jb3JlLmphciIKKyAgICAgICAgICAgICAgIGJhc2VkaXI9IiR7YnVpbGQuaG9tZX0vY2xhc3NlcyIvPgorICA8L3RhcmdldD4KKworCisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09IEdlbmVyYXRlIERvY3VtZW50YXRpb24gPT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorCisKKyAgPHRhcmdldCAgICAgICAgIG5hbWU9ImRvY3MiIGRlcGVuZHM9ImxpYnJhcnkiCisgICAgICAgICAgIGRlc2NyaXB0aW9uPSJDcmVhdGUgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24gYW5kIEphdmFEb2NzIj4KKworICAgIDxqYXZhZG9jCisgICAgICAgICAgICBzb3VyY2VwYXRoPSJzcmMvamF2YSIKKyAgICAgICAgICAgICAgIGRlc3RkaXI9IiR7ZGlzdC5ob21lfS9kb2NzL2FwaSIKKyAgICAgICAgICAgICAgICBhdXRob3I9ImZhbHNlIgorICAgICAgICAgICAgICAgcHJpdmF0ZT0idHJ1ZSIKKyAgICAgICAgICAgICAgIHZlcnNpb249InRydWUiCisgICAgICAgICAgcGFja2FnZW5hbWVzPSJvcmcuYXBhY2hlLnRpbGVzLioiCisgICAgICAgICAgIHdpbmRvd3RpdGxlPSIke3Byb2plY3QubmFtZX0gKFZlcnNpb24gJHtwcm9qZWN0LnZlcnNpb259KSIKKyAgICAgICAgICAgICAgZG9jdGl0bGU9IiR7cHJvamVjdC5uYW1lfSAoVmVyc2lvbiAke3Byb2plY3QudmVyc2lvbn0pIgorICAgICAgICAgICAgICAgIGJvdHRvbT0iQ29weXJpZ2h0ICYjMTY5OyAyMDA0LTIwMDUgLSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24iPgorICAgICAgPGNsYXNzcGF0aCByZWZpZD0iY29tcGlsZS5jbGFzc3BhdGgiLz4KKyAgICA8L2phdmFkb2M+CisKKyAgPC90YXJnZXQ+CisKKworICA8IS0tID09PT09PT09PT09PT09PT09PT09IENyZWF0ZSBCaW5hcnkgRGlzdHJpYnV0aW9uID09PT09PT09PT09PT09PT09PT09IC0tPgorCisKKyAgPHRhcmdldCBuYW1lPSJkaXN0IiBkZXBlbmRzPSJkb2NzIgorICAgZGVzY3JpcHRpb249IkNyZWF0ZSBiaW5hcnkgZGlzdHJpYnV0aW9uIj4KKworICAgIDxta2RpciAgICAgZGlyPSIke2Rpc3QuaG9tZX0iLz4KKyAgICA8Y29weSAgICB0b2Rpcj0iJHtkaXN0LmhvbWV9Ij4KKyAgICAgIDxmaWxlc2V0IGRpcj0iJHtiYXNlZGlyfSIgaW5jbHVkZXM9IioudHh0IGJ1aWxkLioiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVzPSJidWlsZC5wcm9wZXJ0aWVzIi8+CisgICAgPC9jb3B5PgorCisgICAgPG1rZGlyICAgICBkaXI9IiR7ZGlzdC5ob21lfS9jb25mIi8+CisgICAgPGNvcHkgICAgdG9kaXI9IiR7ZGlzdC5ob21lfS9jb25mIj4KKyAgICAgIDxmaWxlc2V0IGRpcj0ic3JjL2NvbmYiIGluY2x1ZGVzPSIqLnRsZCIvPgorICAgICAgPGZpbGVzZXQgZGlyPSJzcmMvY29uZiIgaW5jbHVkZXM9IiouZHRkIi8+CisgICAgPC9jb3B5PgorCisgICAgPG1rZGlyICAgICBkaXI9IiR7ZGlzdC5ob21lfS9saWIiLz4KKyAgICA8Y29weSAgICB0b2Rpcj0iJHtkaXN0LmhvbWV9L2xpYiI+CisgICAgICA8ZmlsZXNldCBkaXI9IiR7YnVpbGQuaG9tZX0vbGliIiBpbmNsdWRlcz0iKi5qYXIiLz4KKyAgICA8L2NvcHk+CisKKyAgICA8bWtkaXIgICAgIGRpcj0iJHtkaXN0LmhvbWV9L3NyYyIvPgorICAgIDxjb3B5ICAgIHRvZGlyPSIke2Rpc3QuaG9tZX0vc3JjIj4KKyAgICAgIDxmaWxlc2V0IGRpcj0ic3JjIiBleGNsdWRlcz0iKiovLnN2bi8qKiIvPgorICAgIDwvY29weT4KKworICA8L3RhcmdldD4KKworCisgIDwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PSBVbml0IFRlc3RzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorCisKKyAgPHRhcmdldCAgICAgICAgIG5hbWU9InRlc3Q6Y29tcGlsZSIgZGVwZW5kcz0ibGlicmFyeSIKKyAgICAgICAgICAgZGVzY3JpcHRpb249IkNvbXBpbGUgbGlicmFyeSB1bml0IHRlc3RzIj4KKworICAgIDxta2RpciAgICAgICAgIGRpcj0iJHtidWlsZC5ob21lfS90ZXN0LWNsYXNzZXMiLz4KKworICAgIDwhLS0gQ29tcGlsZSBKYXZhIFNvdXJjZXMgLS0+CisgICAgPGphdmFjICAgICAgc3JjZGlyPSJzcmMvdGVzdCIKKyAgICAgICAgICAgICAgIGRlc3RkaXI9IiR7YnVpbGQuaG9tZX0vdGVzdC1jbGFzc2VzIgorICAgICAgICAgICAgICAgICBkZWJ1Zz0iJHtjb21waWxlLmRlYnVnfSIKKyAgICAgICAgICAgZGVwcmVjYXRpb249IiR7Y29tcGlsZS5kZXByZWNhdGlvbn0iCisgICAgICAgICAgICAgIG9wdGltaXplPSIke2NvbXBpbGUub3B0aW1pemV9Ij4KKyAgICAgIDxjbGFzc3BhdGggcmVmaWQ9InRlc3QuY2xhc3NwYXRoIiAvPgorICAgIDwvamF2YWM+CisKKyAgICA8IS0tIENvcHkgbm9uLUphdmEgU291cmNlcyAtLT4KKyAgICA8Y29weSAgICAgICAgdG9kaXI9IiR7YnVpbGQuaG9tZX0vdGVzdC1jbGFzc2VzIj4KKyAgICAgIDxmaWxlc2V0ICAgICBkaXI9InNyYy90ZXN0Ij4KKyAgICAgICAgPGV4Y2x1ZGUgIG5hbWU9IioqLyouamF2YSIvPgorICAgICAgPC9maWxlc2V0PgorICAgIDwvY29weT4KKworICA8L3RhcmdldD4KKworCisgIDx0YXJnZXQgICAgICAgICBuYW1lPSJ0ZXN0IiBkZXBlbmRzPSJ0ZXN0OmNvbXBpbGUiCisgICAgICAgICAgIGRlc2NyaXB0aW9uPSJFeGVjdXRlIGxpYnJhcnkgdW5pdCB0ZXN0cyI+CisgICAgPGp1bml0ICAgICAgICBmb3JrPSJ5ZXMiCisgICAgICAgICAgIGhhbHRvbmVycm9yPSIke3Rlc3QuaGFsdG9uZXJyb3J9IgorICAgICAgICAgaGFsdG9uZmFpbHVyZT0iJHt0ZXN0LmhhbHRvbmZhaWx1cmV9IgorICAgICAgICAgIHByaW50U3VtbWFyeT0ibm8iPgorCisgICAgICA8Y2xhc3NwYXRoIHJlZmlkPSJ0ZXN0LmNsYXNzcGF0aCIvPgorICAgICAgPGZvcm1hdHRlciAgdHlwZT0icGxhaW4iCisgICAgICAgICAgICAgICB1c2VmaWxlPSJmYWxzZSIvPgorICAgICAgPGJhdGNodGVzdCAgZm9yaz0ieWVzIj4KKyAgICAgICAgPGZpbGVzZXQgICBkaXI9IiR7YnVpbGQuaG9tZX0vdGVzdC1jbGFzc2VzIgorICAgICAgICAgICAgICBpbmNsdWRlcz0ib3JnL2FwYWNoZS90aWxlcy8qLypUZXN0Q2FzZS5jbGFzcyIvPgorICAgICAgPC9iYXRjaHRlc3Q+CisKKyAgICA8L2p1bml0PgorCisgIDwvdGFyZ2V0PgorCisKKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvY29uZi90aWxlcy1jb25maWdfMV8yLmR0ZCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvY29uZi90aWxlcy1jb25maWdfMV8yLmR0ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODgzNzYzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9jb25mL3RpbGVzLWNvbmZpZ18xXzIuZHRkCkBAIC0wLDAgKzEsMjgwIEBACis8IS0tCisgICAgIERURCBmb3IgdGhlIFRpbGUgRGVmaW5pdGlvbiBGaWxlLCBWZXJzaW9uIDEuMgorCisgICAgIFRvIHN1cHBvcnQgdmFsaWRhdGlvbiBvZiB5b3VyIGNvbmZpZ3VyYXRpb24gZmlsZSwgaW5jbHVkZSB0aGUgZm9sbG93aW5nCisgICAgIERPQ1RZUEUgZWxlbWVudCBhdCB0aGUgYmVnaW5uaW5nIChhZnRlciB0aGUgInhtbCIgZGVjbGFyYXRpb24pOgorCisgICAgIDwhRE9DVFlQRSB0aWxlcy1kZWZpbml0aW9ucyBQVUJMSUMKKyAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBUaWxlcyBDb25maWd1cmF0aW9uIDEuMi8vRU4iCisgICAgICAgImh0dHA6Ly9hcGFjaGUub3JnL2R0ZHMvdGlsZXMtY29uZmlnXzFfMi5kdGQiPgorCistLT4KKworCis8IS0tID09PT09PT09PT0gRGVmaW5lZCBUeXBlcyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CisKKworPCEtLSBBICJCb29sZWFuIiBpcyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgYm9vbGVhbiAodHJ1ZSBvciBmYWxzZSkKKyAgICAgdmFyaWFibGUuCistLT4KKzwhRU5USVRZICUgQm9vbGVhbiAiKHRydWV8ZmFsc2UpIj4KKworCis8IS0tIEEgIkNvbnRlbnRUeXBlIiBpcyB0aGUgY29udGVudCB0eXBlIG9mIGFuIGF0dHJpYnV0ZSBwYXNzZWQgdG8gYSB0aWxlCisgICAgIGNvbXBvbmVudC4KKy0tPgorPCFFTlRJVFkgJSBDb250ZW50VHlwZSAiKHN0cmluZ3xwYWdlfHRlbXBsYXRlfGRlZmluaXRpb24pIj4KKworPCEtLSBBICJDbGFzc05hbWUiIGlzIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiBhIEphdmEgY2xhc3MgdGhhdCBpcworICAgICBpbnN0YW50aWF0ZWQgdG8gcHJvdmlkZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZW5jbG9zaW5nIGVsZW1lbnQuCistLT4KKzwhRU5USVRZICUgQ2xhc3NOYW1lICJDREFUQSI+CisKKzwhLS0gQSAiUmVxdWVzdFBhdGgiIGlzIGFuIG1vZHVsZS1yZWxhdGl2ZSBVUkkgcGF0aCwgYmVnaW5uaW5nIHdpdGggYQorICAgICBzbGFzaCwgdGhhdCBpZGVudGlmaWVzIGEgbWFwcGVkIHJlc291cmNlIChzdWNoIGFzIGEgSlNQIHBhZ2Ugb3IgYSBzZXJ2bGV0KQorICAgICB3aXRoaW4gdGhpcyB3ZWIgYXBwbGljYXRpb24uCistLT4KKzwhRU5USVRZICUgUmVxdWVzdFBhdGggIkNEQVRBIj4KKworPCEtLSBBICJEZWZpbml0aW9uTmFtZSIgaXMgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIGEgZGVmaW5pdGlvbi4gVGhpcyBpZGVudGlmaWVyCisgICAgIGlzIGEgbG9naWNhbCBuYW1lIHVzZWQgdG8gcmVmZXJlbmNlIHRoZSBkZWZpbml0aW9uLgorLS0+Cis8IUVOVElUWSAlIERlZmluaXRpb25OYW1lICJDREFUQSI+CisKKzwhLS0gQSAiQmVhbk5hbWUiIGlzIHRoZSBpZGVudGlmaWVyIG9mIGEgSmF2YUJlYW4sIHN1Y2ggYXMgYSBmb3JtIGJlYW4sCisgICAgIGFuZCBhbHNvIHNlcnZlcyBhcyB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBzY3JpcHRpbmcgdmFyaWFibGUKKyAgICAgYW5kIHRoZSBuYW1lIG9mIHRoZSBKU1AgYXR0cmlidXRlIHVuZGVyIHdoaWNoIHRoZSBiZWFuIGlzIGFjY2Vzc2VkLgorICAgICBUaGVyZWZvcmUsIGl0IG11c3QgY29uZm9ybSB0byB0aGUgcnVsZXMgZm9yIGEgSmF2YSBpZGVudGlmaWVyLgorLS0+Cis8IUVOVElUWSAlIEJlYW5OYW1lICJDREFUQSI+CisKKzwhLS0gQSAiUHJvcE5hbWUiIGlzIHRoZSBuYW1lIG9mIGEgSmF2YUJlYW5zIHByb3BlcnR5LCBhbmQgbXVzdCBiZWdpbiB3aXRoCisgICAgIGEgbG93ZXIgY2FzZSBsZXR0ZXIgYW5kIGNvbnRhaW4gb25seSBjaGFyYWN0ZXJzIHRoYXQgYXJlIGxlZ2FsIGluIGEKKyAgICAgSmF2YSBpZGVudGlmaWVyLgorLS0+Cis8IUVOVElUWSAlIFByb3BOYW1lICJDREFUQSI+CisKKzwhLS0gQSAiTG9jYXRpb24iIGlzIGEgcmVsYXRpdmUgcGF0aCwgZGVsaW1pdGVkIGJ5ICIvIiBjaGFyYWN0ZXJzLCB0aGF0CisgICAgIGRlZmluZXMgdGhlIGxvY2F0aW9uIG9mIGEgcmVzb3VyY2UgcmVsYXRpdmUgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZQorICAgICBjb25maWd1cmF0aW9uIGZpbGUgaXRzZWxmLgorLS0+Cis8IUVOVElUWSAlIExvY2F0aW9uICIjUENEQVRBIj4KKworCisKKzwhLS0gPT09PT09PT09PSBUb3AgTGV2ZWwgRWxlbWVudHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKworCisgIDwhLS0gZGVwcmVjYXRlZDogdXNlIHRpbGVzLWRlZmluaXRpb25zIGluc3RlYWQuLS0+Cis8IUVMRU1FTlQgY29tcG9uZW50LWRlZmluaXRpb25zIChkZWZpbml0aW9uKyk+CisKKzwhLS0gVGhlICJ0aWxlcy1kZWZpbml0aW9ucyIgZWxlbWVudCBpcyB0aGUgcm9vdCBvZiB0aGUgY29uZmlndXJhdGlvbiBmaWxlCisgICAgIGhpZXJhcmNoeSwgYW5kIGNvbnRhaW5zIG5lc3RlZCBlbGVtZW50cyBmb3IgYWxsIG9mIHRoZSBvdGhlcgorICAgICBjb25maWd1cmF0aW9uIHNldHRpbmdzLgorLS0+Cis8IUVMRU1FTlQgdGlsZXMtZGVmaW5pdGlvbnMgKGRlZmluaXRpb24rKT4KKworPCEtLSBUaGUgImRlZmluaXRpb24iIGVsZW1lbnQgZGVzY3JpYmVzIGEgZGVmaW5pdGlvbiB0aGF0IGNhbiBiZSBpbnNlcnRlZCBpbiBhIGpzcAorICAgICBwYWdlLiBUaGlzIGRlZmluaXRpb24gaXMgaWRlbnRpZmllZCBieSBpdHMgbG9naWNhbCBuYW1lLiBBIGRlZmluaXRpb24gYWxsb3dzCisgICAgIHRvIGRlZmluZSBhbGwgdGhlIGF0dHJpYnV0ZXMgdGhhdCBjYW4gYmUgc2V0IGluIDxpbnNlcnQ+IHRhZyBmcm9tIGEganNwIHBhZ2UuCisKKyAgICAgY29udHJvbGxlckNsYXNzIFRoZSBmdWxseSBxdWFsaWZpZWQgSmF2YSBjbGFzcyBuYW1lIG9mIHRoZSBjb250cm9sbGVyCisgICAgICAgICAgICAgICAgICAgICBzdWJjbGFzcyB0byBjYWxsIGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgdGlsZXMgaXMgaW5zZXJ0ZWQuCisgICAgICAgICAgICAgICAgICAgICBPbmx5IG9uZSBvZiBjb250cm9sbGVyQ2xhc3Mgb3IgY29udHJvbGxlclVybCBzaG91bGQgYmUKKyAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllZC4KKworICAgICBjb250cm9sbGVyVXJsICAgVGhlIGNvbnRleHQtcmVsYXRpdmUgcGF0aCB0byB0aGUgcmVzb3VyY2UgdXNlZCBhcyBjb250cm9sbGVyCisgICAgICAgICAgICAgICAgICAgICBjYWxsZWQgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSB0aWxlcyBpcyBpbnNlcnRlZC4KKyAgICAgICAgICAgICAgICAgICAgIE9ubHkgb25lIG9mIGNvbnRyb2xsZXJDbGFzcyBvciBjb250cm9sbGVyVXJsIHNob3VsZCBiZQorICAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWVkLgorCisgICAgIGV4dGVuZHMgICAgICAgICBOYW1lIG9mIGEgZGVmaW5pdGlvbiB0aGF0IGlzIHVzZWQgYXMgYW5jZXN0b3Igb2YgdGhpcyBkZWZpbml0aW9uLgorICAgICAgICAgICAgICAgICAgICAgQWxsIGF0dHJpYnV0ZXMgZnJvbSB0aGUgYW5jZXN0b3IgYXJlIGF2YWlsYWJsZSB0byB0aGUgbmV3CisgICAgICAgICAgICAgICAgICAgICBkZWZpbml0aW9uLiBBbnkgYXR0cmlidXRlIGluaGVyaXRlZCBmcm9tIHRoZSBhbmNlc3RvciBjYW4KKyAgICAgICAgICAgICAgICAgICAgIGJlIG92ZXJsb2FkZWQgYnkgcHJvdmlkaW5nIGEgbmV3IHZhbHVlLgorCisgICAgIG5hbWUgICAgICAgICAgICBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgZGVmaW5pdGlvbi4KKworICAgICBwYWdlICAgICAgICAgICAgU2FtZSBhcyBwYXRoLgorCisgICAgIHBhdGggICAgICAgICAgICBUaGUgY29udGV4dC1yZWxhdGl2ZSBwYXRoIHRvIHRoZSByZXNvdXJjZSB1c2VkIGFzIHRpbGVzIHRvCisgICAgICAgICAgICAgICAgICAgICBpbnNlcnQuIFRoaXMgdGlsZXMgd2lsbCBiZSBpbnNlcnRlZCBhbmQgYSB0aWxlcyBjb250ZXh0CisgICAgICAgICAgICAgICAgICAgICBjb250YWluaW5nIGFwcHJvcHJpYXRlIGF0dHJpYnV0ZXMgd2lsbCBiZSBhdmFpbGFibGUuCisKKyAgICAgcm9sZSAgICAgICAgICAgIFNlY3VyaXR5IHJvbGUgbmFtZSB0aGF0IGlzIGFsbG93ZWQgYWNjZXNzIHRvIHRoaXMgZGVmaW5pdGlvbgorICAgICAgICAgICAgICAgICAgICAgb2JqZWN0LiBUaGUgZGVmaW5pdGlvbiBpcyBpbnNlcnRlZCBvbmx5IGlmIHRoZSByb2xlIG5hbWUgaXMKKyAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQuCisKKyAgICAgdGVtcGxhdGUgICAgICAgIFNhbWUgYXMgcGF0aC4gRm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgdGVtcGxhdGUgdGFnIGxpYnJhcnkuCistLT4KKzwhRUxFTUVOVCBkZWZpbml0aW9uIChpY29uPywgZGlzcGxheS1uYW1lPywgZGVzY3JpcHRpb24/LCBwdXQqLCBwdXRMaXN0Kik+Cis8IUFUVExJU1QgZGVmaW5pdGlvbiAgICAgICBpZCAgICAgICAgICAgICAgIElEICAgICAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgZGVmaW5pdGlvbiAgICAgICBjb250cm9sbGVyQ2xhc3MgICVDbGFzc05hbWU7ICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgZGVmaW5pdGlvbiAgICAgICBjb250cm9sbGVyVXJsICAgICVSZXF1ZXN0UGF0aDsgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgZGVmaW5pdGlvbiAgICAgICBleHRlbmRzICAgICAgICAgICVEZWZpbml0aW9uTmFtZTsgI0lNUExJRUQ+Cis8IUFUVExJU1QgZGVmaW5pdGlvbiAgICAgICBuYW1lICAgICAgICAgICAgICVEZWZpbml0aW9uTmFtZTsgI1JFUVVJUkVEPgorPCFBVFRMSVNUIGRlZmluaXRpb24gICAgICAgcGFnZSAgICAgICAgICAgICAlUmVxdWVzdFBhdGg7ICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIGRlZmluaXRpb24gICAgICAgcGF0aCAgICAgICAgICAgICAlUmVxdWVzdFBhdGg7ICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIGRlZmluaXRpb24gICAgICAgcm9sZSAgICAgICAgICAgICBDREFUQSAgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIGRlZmluaXRpb24gICAgICAgdGVtcGxhdGUgICAgICAgICAlUmVxdWVzdFBhdGg7ICAgICNJTVBMSUVEPgorCisKKzwhLS0gVGhlICJwdXQiIGVsZW1lbnQgZGVzY3JpYmVzIGFuIGF0dHJpYnV0ZSBvZiBhIGRlZmluaXRpb24uIEl0IGFsbG93cyB0bworICAgICBzcGVjaWZ5IHRoZSB0aWxlcyBhdHRyaWJ1dGUgbmFtZSBhbmQgaXRzIHZhbHVlLiBUaGUgdGlsZXMgdmFsdWUgY2FuIGJlCisgICAgIHNwZWNpZmllZCBhcyBhbiB4bWwgYXR0cmlidXRlLCBvciBpbiB0aGUgYm9keSBvZiB0aGUgPHB1dD4gdGFnLgorCisgICAgIGNvbnRlbnQgICAgICAgICBTYW1lIGFzIHZhbHVlLiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSB0ZW1wbGF0ZSB0YWcgbGlicmFyeS4KKworICAgICBkaXJlY3QgICAgICAgICAgU2FtZSBhcyB0eXBlPSJzdHJpbmciLiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSB0ZW1wbGF0ZQorICAgICAgICAgICAgICAgICAgICAgdGFnIGxpYnJhcnkuCisKKyAgICAgbmFtZSAgICAgICAgICAgIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBwdXQuCisKKyAgICAgdHlwZSAgICAgICAgICAgIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZS4gQ2FuIGJlOiBzdHJpbmcsIHBhZ2UsIHRlbXBsYXRlIG9yIGRlZmluaXRpb24uCisgICAgICAgICAgICAgICAgICAgICBCeSBkZWZhdWx0LCBubyB0eXBlIGlzIGFzc29jaWF0ZWQgdG8gYSB2YWx1ZS4gSWYgYSB0eXBlIGlzCisgICAgICAgICAgICAgICAgICAgICBhc3NvY2lhdGVkLCBpdCB3aWxsIGJlIHVzZWQgYXMgYSBoaW50IHRvIHByb2Nlc3MgdGhlIHZhbHVlCisgICAgICAgICAgICAgICAgICAgICB3aGVuIHRoZSBhdHRyaWJ1dGUgd2lsbCBiZSB1c2VkIGluIHRoZSBpbnNlcnRlZCB0aWxlcy4KKworICAgICB2YWx1ZSAgICAgICAgICAgVGhlIHZhbHVlIGFzc29jaWF0ZWQgdG8gdGhpcyB0aWxlcyBhdHRyaWJ1dGUuIFRoZSB2YWx1ZSBzaG91bGQKKyAgICAgICAgICAgICAgICAgICAgIGJlIHNwZWNpZmllZCB3aXRoIHRoaXMgdGFnIGF0dHJpYnV0ZSwgb3IgaW4gdGhlIGJvZHkgb2YgdGhlIHRhZy4KKy0tPgorPCFFTEVNRU5UIHB1dCAoI1BDREFUQSk+Cis8IUFUVExJU1QgcHV0ICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBwdXQgICAgICAgICAgICAgIGNvbnRlbnQgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHB1dCAgICAgICAgICAgICAgZGlyZWN0ICAgICAgICAgICAlQm9vbGVhbjsgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgcHV0ICAgICAgICAgICAgICBuYW1lICAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgcHV0ICAgICAgICAgICAgICB0eXBlICAgICAgICAgICAgICVDb250ZW50VHlwZTsgICAjSU1QTElFRD4KKzwhQVRUTElTVCBwdXQgICAgICAgICAgICAgIHZhbHVlICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNJTVBMSUVEPgorCisKKzwhLS0gVGhlICJwdXRMaXN0IiBlbGVtZW50IGRlc2NyaWJlcyBhIGxpc3QgYXR0cmlidXRlIG9mIGEgZGVmaW5pdGlvbi4gSXQgYWxsb3dzIHRvCisgICAgIHNwZWNpZnkgYW4gYXR0cmlidXRlIHRoYXQgaXMgYSBqYXZhIExpc3QgY29udGFpbmluZyBhbnkga2luZCBvZiB2YWx1ZXMuIEluCisgICAgIHRoZSBjb25maWcgZmlsZSwgdGhlIGxpc3QgZWxlbWVudHMgYXJlIHNwZWNpZmllZCBieSBuZXN0ZWQgPGFkZD4sIDxpdGVtPiBvcgorICAgICA8cHV0TGlzdD4uCisKKyAgICAgbmFtZSAgICAgICAgICAgIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBwdXQgbGlzdC4KKy0tPgorPCFFTEVNRU5UIHB1dExpc3QgKCAoYWRkKiB8IGl0ZW0qIHwgYmVhbiogfCBwdXRMaXN0KikrKSA+Cis8IUFUVExJU1QgcHV0TGlzdCAgICAgICAgICBpZCAgICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBwdXRMaXN0ICAgICAgICAgIG5hbWUgICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNSRVFVSVJFRD4KKworPCEtLSA9PT09PT09PT09IFN1Ym9yZGluYXRlIEVsZW1lbnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgorCis8IS0tIFRoZSAiYWRkIiBlbGVtZW50IGRlc2NyaWJlcyBhbiBlbGVtZW50IG9mIGEgbGlzdC4gSXQgaXMgc2ltaWxhciB0byB0aGUKKyAgICAgPHB1dD4gZWxlbWVudC4KKworICAgICBjb250ZW50ICAgICAgICAgU2FtZSBhcyB2YWx1ZS4gRm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgdGVtcGxhdGUgdGFnIGxpYnJhcnkuCisKKyAgICAgZGlyZWN0ICAgICAgICAgIFNhbWUgYXMgdHlwZT0ic3RyaW5nIi4gRm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgdGVtcGxhdGUKKyAgICAgICAgICAgICAgICAgICAgIHRhZyBsaWJyYXJ5LgorCisgICAgIHR5cGUgICAgICAgICAgICBUaGUgdHlwZSBvZiB0aGUgdmFsdWUuIENhbiBiZTogc3RyaW5nLCBwYWdlLCB0ZW1wbGF0ZSBvciBkZWZpbml0aW9uLgorICAgICAgICAgICAgICAgICAgICAgQnkgZGVmYXVsdCwgbm8gdHlwZSBpcyBhc3NvY2lhdGVkIHRvIGEgdmFsdWUuIElmIGEgdHlwZSBpcworICAgICAgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCwgaXQgd2lsbCBiZSB1c2VkIGFzIGEgaGludCB0byBwcm9jZXNzIHRoZSB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgd2hlbiB0aGUgYXR0cmlidXRlIHdpbGwgYmUgdXNlZCBpbiB0aGUgaW5zZXJ0ZWQgdGlsZXMuCisKKyAgICAgdmFsdWUgICAgICAgICAgIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHRvIHRoaXMgdGlsZXMgYXR0cmlidXRlLiBUaGUgdmFsdWUgc2hvdWxkCisgICAgICAgICAgICAgICAgICAgICBiZSBzcGVjaWZpZWQgd2l0aCB0aGlzIHRhZyBhdHRyaWJ1dGUsIG9yIGluIHRoZSBib2R5IG9mIHRoZSB0YWcuCistLT4KKzwhRUxFTUVOVCBhZGQgKCNQQ0RBVEEpPgorPCFBVFRMSVNUIGFkZCAgICAgICAgICAgICAgaWQgICAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgYWRkICAgICAgICAgICAgICBjb250ZW50ICAgICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBhZGQgICAgICAgICAgICAgIGRpcmVjdCAgICAgICAgICAgJUJvb2xlYW47ICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIGFkZCAgICAgICAgICAgICAgdHlwZSAgICAgICAgICAgICAlQ29udGVudFR5cGU7ICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgYWRkICAgICAgICAgICAgICB2YWx1ZSAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRD4KKworCis8IS0tIFRoZSAiYmVhbiIgZWxlbWVudCBkZXNjcmliZXMgYW4gZWxlbWVudCBvZiBhIGxpc3QuIEl0IGNyZWF0ZSBhIGJlYW4gb2YgdGhlCisgICAgIHNwZWNpZmllZCBqYXZhIGNsYXNzdHlwZS4gVGhpcyBiZWFuIGlzIGluaXRpYWxpemVkIHdpdGggYXBwcm9wcmlhdGUgbmVzdGVkCisgICAgIDxzZXQtcHJvcGVydHk+LgorCisgICAgIGNsYXNzdHlwZSAgICAgICBUaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzbmFtZSBmb3IgdGhpcyBiZWFuLgorLS0+Cis8IUVMRU1FTlQgYmVhbiAoc2V0LXByb3BlcnR5Kik+Cis8IUFUVExJU1QgYmVhbiAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBiZWFuICAgICAgICAgICAgIGNsYXNzdHlwZSAgICAgICAgJUNsYXNzTmFtZTsgICAgICNSRVFVSVJFRD4KKworPCEtLSBUaGUgInNldC1wcm9wZXJ0eSIgZWxlbWVudCBzcGVjaWZpZXMgdGhlIG1ldGhvZCBuYW1lIGFuZCBpbml0aWFsIHZhbHVlIG9mCisgICAgIGEgYmVhbiBwcm9wZXJ0eS4gV2hlbiB0aGUgb2JqZWN0IHJlcHJlc2VudGluZworICAgICB0aGUgc3Vycm91bmRpbmcgZWxlbWVudCBpcyBpbnN0YW50aWF0ZWQsIHRoZSBhY2Nlc3NvciBmb3IgdGhlIGluZGljYXRlZAorICAgICBwcm9wZXJ0eSBpcyBjYWxsZWQgYW5kIHBhc3NlZCB0aGUgaW5kaWNhdGVkIHZhbHVlLgorCisgICAgIHByb3BlcnR5ICAgICAgICBOYW1lIG9mIHRoZSBKYXZhQmVhbnMgcHJvcGVydHkgd2hvc2Ugc2V0dGVyIG1ldGhvZAorICAgICAgICAgICAgICAgICAgICAgd2lsbCBiZSBjYWxsZWQuCisKKyAgICAgdmFsdWUgICAgICAgICAgIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFsdWUgdG8gd2hpY2ggdGhpcworICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkgd2lsbCBiZSBzZXQsIGFmdGVyIHN1aXRhYmxlIHR5cGUgY29udmVyc2lvbgorLS0+Cis8IUVMRU1FTlQgc2V0LXByb3BlcnR5ICAgRU1QVFk+Cis8IUFUVExJU1Qgc2V0LXByb3BlcnR5ICAgaWQgICAgICAgICAgICAgSUQgICAgICAgICAgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIHNldC1wcm9wZXJ0eSAgIHByb3BlcnR5ICAgICAgICVQcm9wTmFtZTsgICAgICAjUkVRVUlSRUQ+Cis8IUFUVExJU1Qgc2V0LXByb3BlcnR5ICAgdmFsdWUgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNSRVFVSVJFRD4KKworCis8IS0tIFRoZSAiaXRlbSIgZWxlbWVudCBkZXNjcmliZXMgYW4gZWxlbWVudCBvZiBhIGxpc3QuIEl0IGNyZWF0ZSBhIGJlYW4gYWRkZWQgYXMKKyAgICAgZWxlbWVudCB0byB0aGUgbGlzdC4gRWFjaCBiZWFuIGNhbiBjb250YWluIGRpZmZlcmVudCBwcm9wZXJ0aWVzOiB2YWx1ZSwgbGluaywKKyAgICAgaWNvbiwgdG9vbHRpcC4gVGhlc2UgcHJvcGVydGllcyBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYnkgdGhlIGpzcCBwYWdlIHVzaW5nCisgICAgIHRoZW0uCisgICAgIEJ5IGRlZmF1bHQgdGhlIGJlYW4gaXMgb2YgdHlwZQorICAgICAib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuU2ltcGxlTWVudUl0ZW0iLiBUaGlzIGJlYW4gaXMgdXNlZnVsIHRvCisgICAgIGNyZWF0ZSBhIGxpc3Qgb2YgYmVhbnMgdXNlZCBhcyBtZW51IGl0ZW1zLgorCisgICAgIGNsYXNzdHlwZSAgICAgICBUaGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzdHlwZSBmb3IgdGhpcyBiZWFuLgorICAgICAgICAgICAgICAgICAgICAgSWYgc3BlY2lmaWVkLCB0aGUgY2xhc3N0eXBlIG11c3QgYmUgYSBzdWJjbGFzcyBvZiB0aGUgaW50ZXJmYWNlCisgICAgICAgICAgICAgICAgICAgICAib3JnLmFwYWNoZS5zdHJ1dHMudGlsZXMuYmVhbnMuTWVudUl0ZW0iLgorCisgICAgIGljb24gICAgICAgICAgICBUaGUgYmVhbiAnaWNvbicgcHJvcGVydHkuCisKKyAgICAgbGluayAgICAgICAgICAgIFRoZSBiZWFuICdsaW5rJyBwcm9wZXJ0eS4KKworICAgICB0b29sdGlwICAgICAgICAgVGhlIGJlYW4gJ3Rvb2x0aXAnIHByb3BlcnR5LgorCisgICAgIHZhbHVlICAgICAgICAgICBUaGUgYmVhbiAndmFsdWUnIHByb3BlcnR5LgorLS0+Cis8IUVMRU1FTlQgaXRlbSAoI1BDREFUQSk+Cis8IUFUVExJU1QgaXRlbSAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgIElEICAgICAgICAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBpdGVtICAgICAgICAgICAgIGNsYXNzdHlwZSAgICAgICAgJUNsYXNzTmFtZTsgICAgICNJTVBMSUVEPgorPCFBVFRMSVNUIGl0ZW0gICAgICAgICAgICAgaWNvbiAgICAgICAgICAgICBDREFUQSAgICAgICAgICAgI0lNUExJRUQ+Cis8IUFUVExJU1QgaXRlbSAgICAgICAgICAgICBsaW5rICAgICAgICAgICAgIENEQVRBICAgICAgICAgICAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgaXRlbSAgICAgICAgICAgICB0b29sdGlwICAgICAgICAgIENEQVRBICAgICAgICAgICAjSU1QTElFRD4KKzwhQVRUTElTVCBpdGVtICAgICAgICAgICAgIHZhbHVlICAgICAgICAgICAgQ0RBVEEgICAgICAgICAgICNSRVFVSVJFRD4KKworCis8IS0tID09PT09PT09PT0gSW5mbyBFbGVtZW50cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KKworPCEtLSBUaGUgImRlc2NyaXB0aW9uIiBlbGVtZW50IGNvbnRhaW5zIGRlc2NyaXB0aXZlIChwYXJhZ3JhcGggbGVuZ3RoKSB0ZXh0CisgICAgIGFib3V0IHRoZSBzdXJyb3VuZGluZyBlbGVtZW50LCBzdWl0YWJsZSBmb3IgdXNlIGluIEdVSSB0b29scy4KKy0tPgorPCFFTEVNRU5UIGRlc2NyaXB0aW9uICAgICgjUENEQVRBKT4KKzwhQVRUTElTVCBkZXNjcmlwdGlvbiAgICBpZCAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgI0lNUExJRUQ+CisKKworPCEtLSBUaGUgImRpc3BsYXktbmFtZSIgZWxlbWVudCBjb250YWlucyBhIHNob3J0IChvbmUgbGluZSkgZGVzY3JpcHRpb24gb2YKKyAgICAgdGhlIHN1cnJvdW5kaW5nIGVsZW1lbnQsIHN1aXRhYmxlIGZvciB1c2UgaW4gR1VJIHRvb2xzLgorLS0+Cis8IUVMRU1FTlQgZGlzcGxheS1uYW1lICgjUENEQVRBKT4KKzwhQVRUTElTVCBkaXNwbGF5LW5hbWUgICBpZCAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgI0lNUExJRUQ+CisKKworPCEtLSBUaGUgImljb24iIGVsZW1lbnQgY29udGFpbnMgYSBzbWFsbC1pY29uIGFuZCBsYXJnZS1pY29uIGVsZW1lbnQgd2hpY2gKKyAgICAgc3BlY2lmeSB0aGUgbG9jYXRpb24sIHJlbGF0aXZlIHRvIHRoZSBTdHJ1dHMgY29uZmlndXJhdGlvbiBmaWxlLCBmb3Igc21hbGwKKyAgICAgYW5kIGxhcmdlIGltYWdlcyB1c2VkIHRvIHJlcHJlc2VudCB0aGUgc3Vycm91bmRpbmcgZWxlbWVudCBpbiBHVUkgdG9vbHMuCistLT4KKzwhRUxFTUVOVCBpY29uICAgICAgICAgICAoc21hbGwtaWNvbj8sIGxhcmdlLWljb24/KT4KKzwhQVRUTElTVCBpY29uICAgICAgICAgICBpZCAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgI0lNUExJRUQ+CisKKworPCEtLSBUaGUgImxhcmdlLWljb24iIGVsZW1lbnQgc3BlY2lmaWVzIHRoZSBsb2NhdGlvbiwgcmVsYXRpdmUgdG8gdGhlIFN0cnV0cworICAgICBjb25maWd1cmF0aW9uIGZpbGUsIG9mIGEgcmVzb3VyY2UgY29udGFpbmluZyBhIGxhcmdlICgzMngzMiBwaXhlbCkKKyAgICAgaWNvbiBpbWFnZS4KKy0tPgorPCFFTEVNRU5UIGxhcmdlLWljb24gICAgICglTG9jYXRpb247KT4KKzwhQVRUTElTVCBsYXJnZS1pY29uICAgICBpZCAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgI0lNUExJRUQ+CisKKworPCEtLSBUaGUgInNtYWxsLWljb24iIGVsZW1lbnQgc3BlY2lmaWVzIHRoZSBsb2NhdGlvbiwgcmVsYXRpdmUgdG8gdGhlIFN0cnV0cworICAgICBjb25maWd1cmF0aW9uIGZpbGUsIG9mIGEgcmVzb3VyY2UgY29udGFpbmluZyBhIHNtYWxsICgxNngxNiBwaXhlbCkKKyAgICAgaWNvbiBpbWFnZS4KKy0tPgorPCFFTEVNRU5UIHNtYWxsLWljb24gICAgICglTG9jYXRpb247KT4KKzwhQVRUTElTVCBzbWFsbC1pY29uICAgICBpZCAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgI0lNUExJRUQ+CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2NvbmYvdGlsZXMtY29yZS50bGQgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2NvbmYvdGlsZXMtY29yZS50bGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjM1ODc1ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvY29uZi90aWxlcy1jb3JlLnRsZApAQCAtMCwwICsxLDM0NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCisNCisNCisNCisNCisNCisNCisNCis8IURPQ1RZUEUgdGFnbGliIFBVQkxJQyAiLS8vU3VuIE1pY3Jvc3lzdGVtcywgSW5jLi8vRFREIEpTUCBUYWcgTGlicmFyeSAxLjEvL0VOIiAiaHR0cDovL2phdmEuc3VuLmNvbS9qMmVlL2R0ZHMvd2ViLWpzcHRhZ2xpYnJhcnlfMV8xLmR0ZCI+DQorPHRhZ2xpYj4NCis8dGxpYnZlcnNpb24+MS4yPC90bGlidmVyc2lvbj4NCis8anNwdmVyc2lvbj4xLjE8L2pzcHZlcnNpb24+DQorPHNob3J0bmFtZT50aWxlczwvc2hvcnRuYW1lPg0KKzx1cmk+aHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy90aWxlczwvdXJpPg0KKzx0YWc+DQorPG5hbWU+aW5zZXJ0PC9uYW1lPg0KKzx0YWdjbGFzcz5vcmcuYXBhY2hlLnRhZ2xpYi50aWxlcy5JbnNlcnRUYWc8L3RhZ2NsYXNzPg0KKzxib2R5Y29udGVudD5KU1A8L2JvZHljb250ZW50Pg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+dGVtcGxhdGU8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5jb21wb25lbnQ8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5wYWdlPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+ZGVmaW5pdGlvbjwvbmFtZT4NCis8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPg0KKzxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4NCis8L2F0dHJpYnV0ZT4NCis8YXR0cmlidXRlPg0KKzxuYW1lPmF0dHJpYnV0ZTwvbmFtZT4NCis8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPg0KKzxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5uYW1lPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+YmVhbk5hbWU8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5iZWFuUHJvcGVydHk8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5iZWFuU2NvcGU8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+Zmx1c2g8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+aWdub3JlPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+cm9sZTwvbmFtZT4NCis8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPg0KKzxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4NCis8L2F0dHJpYnV0ZT4NCis8YXR0cmlidXRlPg0KKzxuYW1lPmNvbnRyb2xsZXJVcmw8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5jb250cm9sbGVyQ2xhc3M8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPC90YWc+DQorPHRhZz4NCis8bmFtZT5kZWZpbml0aW9uPC9uYW1lPg0KKzx0YWdjbGFzcz5vcmcuYXBhY2hlLnRhZ2xpYi50aWxlcy5EZWZpbml0aW9uVGFnPC90YWdjbGFzcz4NCis8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4NCis8YXR0cmlidXRlPg0KKzxuYW1lPmlkPC9uYW1lPg0KKzxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+c2NvcGU8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+dGVtcGxhdGU8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5wYWdlPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+cm9sZTwvbmFtZT4NCis8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPg0KKzxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4NCis8L2F0dHJpYnV0ZT4NCis8YXR0cmlidXRlPg0KKzxuYW1lPmV4dGVuZHM8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPC90YWc+DQorPHRhZz4NCis8bmFtZT5wdXQ8L25hbWU+DQorPHRhZ2NsYXNzPm9yZy5hcGFjaGUudGFnbGliLnRpbGVzLlB1dFRhZzwvdGFnY2xhc3M+DQorPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5uYW1lPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4NCis8L2F0dHJpYnV0ZT4NCis8YXR0cmlidXRlPg0KKzxuYW1lPnZhbHVlPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+Y29udGVudDwvbmFtZT4NCis8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPg0KKzxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4NCis8L2F0dHJpYnV0ZT4NCis8YXR0cmlidXRlPg0KKzxuYW1lPmRpcmVjdDwvbmFtZT4NCis8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPg0KKzxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT50eXBlPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4NCis8L2F0dHJpYnV0ZT4NCis8YXR0cmlidXRlPg0KKzxuYW1lPmJlYW5OYW1lPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+YmVhblByb3BlcnR5PC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+YmVhblNjb3BlPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4NCis8L2F0dHJpYnV0ZT4NCis8YXR0cmlidXRlPg0KKzxuYW1lPnJvbGU8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPC90YWc+DQorPHRhZz4NCis8bmFtZT5wdXRMaXN0PC9uYW1lPg0KKzx0YWdjbGFzcz5vcmcuYXBhY2hlLnRhZ2xpYi50aWxlcy5QdXRMaXN0VGFnPC90YWdjbGFzcz4NCis8Ym9keWNvbnRlbnQ+SlNQPC9ib2R5Y29udGVudD4NCis8YXR0cmlidXRlPg0KKzxuYW1lPm5hbWU8L25hbWU+DQorPHJlcXVpcmVkPnRydWU8L3JlcXVpcmVkPg0KKzxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPC90YWc+DQorPHRhZz4NCis8bmFtZT5hZGQ8L25hbWU+DQorPHRhZ2NsYXNzPm9yZy5hcGFjaGUudGFnbGliLnRpbGVzLkFkZFRhZzwvdGFnY2xhc3M+DQorPGJvZHljb250ZW50PkpTUDwvYm9keWNvbnRlbnQ+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT52YWx1ZTwvbmFtZT4NCis8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPg0KKzxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5jb250ZW50PC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+ZGlyZWN0PC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4NCis8L2F0dHJpYnV0ZT4NCis8YXR0cmlidXRlPg0KKzxuYW1lPnR5cGU8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+YmVhbk5hbWU8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5iZWFuUHJvcGVydHk8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5iZWFuU2NvcGU8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+cm9sZTwvbmFtZT4NCis8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPg0KKzxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4NCis8L2F0dHJpYnV0ZT4NCis8L3RhZz4NCis8dGFnPg0KKzxuYW1lPmdldDwvbmFtZT4NCis8dGFnY2xhc3M+b3JnLmFwYWNoZS50YWdsaWIudGlsZXMuR2V0VGFnPC90YWdjbGFzcz4NCis8Ym9keWNvbnRlbnQ+ZW1wdHk8L2JvZHljb250ZW50Pg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+bmFtZTwvbmFtZT4NCis8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+aWdub3JlPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+Zmx1c2g8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+cm9sZTwvbmFtZT4NCis8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPg0KKzxydGV4cHJ2YWx1ZT50cnVlPC9ydGV4cHJ2YWx1ZT4NCis8L2F0dHJpYnV0ZT4NCis8L3RhZz4NCis8dGFnPg0KKzxuYW1lPmdldEFzU3RyaW5nPC9uYW1lPg0KKzx0YWdjbGFzcz5vcmcuYXBhY2hlLnRhZ2xpYi50aWxlcy5HZXRBdHRyaWJ1dGVUYWc8L3RhZ2NsYXNzPg0KKzxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5uYW1lPC9uYW1lPg0KKzxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5pZ25vcmU8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+dHJ1ZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5yb2xlPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzwvdGFnPg0KKzx0YWc+DQorPG5hbWU+dXNlQXR0cmlidXRlPC9uYW1lPg0KKzx0YWdjbGFzcz5vcmcuYXBhY2hlLnRhZ2xpYi50aWxlcy5Vc2VBdHRyaWJ1dGVUYWc8L3RhZ2NsYXNzPg0KKzx0ZWljbGFzcz5vcmcuYXBhY2hlLnRhZ2xpYi50aWxlcy5Vc2VBdHRyaWJ1dGVUZWk8L3RlaWNsYXNzPg0KKzxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5pZDwvbmFtZT4NCis8cmVxdWlyZWQ+ZmFsc2U8L3JlcXVpcmVkPg0KKzxydGV4cHJ2YWx1ZT5mYWxzZTwvcnRleHBydmFsdWU+DQorPC9hdHRyaWJ1dGU+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5jbGFzc25hbWU8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+c2NvcGU8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+bmFtZTwvbmFtZT4NCis8cmVxdWlyZWQ+dHJ1ZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+aWdub3JlPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzwvdGFnPg0KKzx0YWc+DQorPG5hbWU+aW1wb3J0QXR0cmlidXRlPC9uYW1lPg0KKzx0YWdjbGFzcz5vcmcuYXBhY2hlLnRhZ2xpYi50aWxlcy5JbXBvcnRBdHRyaWJ1dGVUYWc8L3RhZ2NsYXNzPg0KKzxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5uYW1lPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+c2NvcGU8L25hbWU+DQorPHJlcXVpcmVkPmZhbHNlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+aWdub3JlPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPnRydWU8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzwvdGFnPg0KKzx0YWc+DQorPG5hbWU+aW5pdENvbXBvbmVudERlZmluaXRpb25zPC9uYW1lPg0KKzx0YWdjbGFzcz5vcmcuYXBhY2hlLnRhZ2xpYi50aWxlcy5Jbml0RGVmaW5pdGlvbnNUYWc8L3RhZ2NsYXNzPg0KKzxib2R5Y29udGVudD5lbXB0eTwvYm9keWNvbnRlbnQ+DQorPGF0dHJpYnV0ZT4NCis8bmFtZT5maWxlPC9uYW1lPg0KKzxyZXF1aXJlZD50cnVlPC9yZXF1aXJlZD4NCis8cnRleHBydmFsdWU+ZmFsc2U8L3J0ZXhwcnZhbHVlPg0KKzwvYXR0cmlidXRlPg0KKzxhdHRyaWJ1dGU+DQorPG5hbWU+Y2xhc3NuYW1lPC9uYW1lPg0KKzxyZXF1aXJlZD5mYWxzZTwvcmVxdWlyZWQ+DQorPHJ0ZXhwcnZhbHVlPmZhbHNlPC9ydGV4cHJ2YWx1ZT4NCis8L2F0dHJpYnV0ZT4NCis8L3RhZz4NCis8L3RhZ2xpYj4NCisNCisNCisNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvTG9jYWxTdHJpbmdzLnByb3BlcnRpZXMgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvTG9jYWxTdHJpbmdzLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODhhNWExMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi9Mb2NhbFN0cmluZ3MucHJvcGVydGllcwpAQCAtMCwwICsxLDI1IEBACithY3Rpb25FcnJvcnMuZXJyb3JzPUNhbm5vdCBwcm9jZXNzIEFjdGlvbkVycm9ycyBpbnN0YW5jZSBvZiBjbGFzcyB7MH0KKworYWN0aW9uTWVzc2FnZXMuZXJyb3JzPUNhbm5vdCBwcm9jZXNzIEFjdGlvbk1lc3NhZ2VzIGluc3RhbmNlIG9mIGNsYXNzIHswfQorCitjb21wdXRlVVJMLmZvcndhcmQ9Q2Fubm90IHJldHJpZXZlIEFjdGlvbkZvcndhcmQgbmFtZWQgezB9CisKK2NvbXB1dGVVUkwuc3BlY2lmaWVyPVlvdSBtdXN0IHNwZWNpZnkgZXhhY3RseSBvbmUgb2YgImZvcndhcmQiLCAiaHJlZiIsICJwYWdlIiBvciAiYWN0aW9uIgorCitsb29rdXAuYWNjZXNzPUludmFsaWQgYWNjZXNzIGxvb2tpbmcgdXAgcHJvcGVydHkgezB9IG9mIGJlYW4gezF9CisKK2xvb2t1cC5iZWFuLmFueT1DYW5ub3QgZmluZCBiZWFuIHswfSBpbiBhbnkgc2NvcGUKKworbG9va3VwLmJlYW49Q2Fubm90IGZpbmQgYmVhbiB7MH0gaW4gc2NvcGUgezF9CisKK2xvb2t1cC5tZXRob2Q9Tm8gZ2V0dGVyIG1ldGhvZCBmb3IgcHJvcGVydHkgezB9IG9mIGJlYW4gezF9CisKK2xvb2t1cC5zY29wZT1JbnZhbGlkIGJlYW4gc2NvcGUgezB9CisKK2xvb2t1cC50YXJnZXQ9RXhjZXB0aW9uIHRocm93biBieSBnZXR0ZXIgZm9yIHByb3BlcnR5IHswfSBvZiBiZWFuIHsxfQorCittZXNzYWdlLmJ1bmRsZT1DYW5ub3QgZmluZCBtZXNzYWdlIHJlc291cmNlcyB1bmRlciBrZXkgezB9CisKK3BhcmFtZXRlcnMubXVsdGk9Q2Fubm90IGNhc3QgdG8gTWFwIGZvciBuYW1lPXswfSBwcm9wZXJ0eT17MX0gc2NvcGU9ezJ9CisKK3dyaXRlLmlvPUlucHV0L291dHB1dCBlcnJvcjogezB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0FkZFRhZy5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0FkZFRhZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxYzgyYzgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvQWRkVGFnLmphdmEKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGFnbGliLnRpbGVzOworCitpbXBvcnQgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uOworCisgIC8qKgorICAgKiBBZGQgYW4gZWxlbWVudCB0byB0aGUgc3Vycm91bmRpbmcgbGlzdCB0YWcuCisgICAqIFNhbWUgc3ludGF4IGFzIDxjb2RlPiZsdDtwdXQmZ3Q7PC9jb2RlPi4KKyAgICovCitwdWJsaWMgY2xhc3MgQWRkVGFnIGV4dGVuZHMgUHV0VGFnIHsKKworICAvKioKKyAgICogZGVmYXVsdCBjb25zdHJ1Y3RvcgorICAgKi8KKyAgcHVibGljIEFkZFRhZygpIHsKKyAgICBzdXBlcigpOworICB9CisKKyAgICAvKioKKyAgICAgKiBDYWxsIHBhcmVudCB0YWcgd2hpY2ggbXVzdCBpbXBsZW1lbnQgQXR0cmlidXRlQ29udGFpbmVyLgorICAgICAqIEB0aHJvd3MgSnNwRXhjZXB0aW9uIElmIHdlIGNhbid0IGZpbmQgYW4gYXBwcm9wcmlhdGUgZW5jbG9zaW5nIHRhZy4KKyAgICAgKi8KKyAgcHJvdGVjdGVkIHZvaWQgY2FsbFBhcmVudCgpIHRocm93cyBKc3BFeGNlcHRpb24KKyAgICB7CisgICAgICAgICAgICAvLyBHZXQgZW5jbG9zaW5nIHBhcmVudAorICAgIEFkZFRhZ1BhcmVudCBlbmNsb3NpbmdQYXJlbnQgPSBmaW5kRW5jbG9zaW5nUHV0TGlzdFRhZ1BhcmVudCgpOworICAgIGVuY2xvc2luZ1BhcmVudC5wcm9jZXNzTmVzdGVkVGFnKCB0aGlzICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmluZCBwYXJlbnQgdGFnIHdoaWNoIG11c3QgaW1wbGVtZW50IEF0dHJpYnV0ZUNvbnRhaW5lci4KKyAgICAgKiBAdGhyb3dzIEpzcEV4Y2VwdGlvbiBJZiB3ZSBjYW4ndCBmaW5kIGFuIGFwcHJvcHJpYXRlIGVuY2xvc2luZyB0YWcuCisgICAgICovCisgIHByb3RlY3RlZCBBZGRUYWdQYXJlbnQgZmluZEVuY2xvc2luZ1B1dExpc3RUYWdQYXJlbnQoKSB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICB0cnkKKyAgICAgIHsKKyAgICAgIEFkZFRhZ1BhcmVudCBwYXJlbnQgPSAoQWRkVGFnUGFyZW50KWZpbmRBbmNlc3RvcldpdGhDbGFzcyh0aGlzLEFkZFRhZ1BhcmVudC5jbGFzcyk7CisgICAgICBpZiggcGFyZW50ID09IG51bGwgKQorICAgICAgICB7CisgICAgICAgIHRocm93IG5ldyBKc3BFeGNlcHRpb24oICJFcnJvciAtIHRhZyBhZGQgOiBlbmNsb3NpbmcgdGFnIGRvZXNuJ3QgYWNjZXB0ICdhZGQnIHRhZy4iICk7CisgICAgICAgIH0KKyAgICAgIHJldHVybiBwYXJlbnQ7CisgICAgICB9CisgICAgIGNhdGNoKCBDbGFzc0Nhc3RFeGNlcHRpb24gZXggKQorICAgICAgeworICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbiggIkVycm9yIC0gdGFnIGFkZCA6IGVuY2xvc2luZyB0YWcgZG9lc24ndCBhY2NlcHQgJ2FkZCcgdGFnLiIgKTsKKyAgICAgIH0KKyAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0FkZFRhZ1BhcmVudC5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0FkZFRhZ1BhcmVudC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1ODYyNDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvQWRkVGFnUGFyZW50LmphdmEKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGFnbGliLnRpbGVzOworCitpbXBvcnQgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uOworCisvKioKKyAqIFRhZyBjbGFzc2VzIGltcGxlbWVudGluZyB0aGlzIGludGVyZmFjZSBjYW4gY29udGFpbiBuZXN0ZWQgPGNvZGU+UHV0VGFnPC9jb2RlPnMuCisgKiBUaGlzIGludGVyZmFjZSBkZWZpbmVzIGEgbWV0aG9kIGNhbGxlZCBieSB0aGUgbmVzdGVkIHRhZy4KKyAqLworcHVibGljIGludGVyZmFjZSBBZGRUYWdQYXJlbnQgeworICAgIC8qKgorICAgICAqIFByb2Nlc3MgdGhlIG5lc3RlZCB0YWcuCisgICAgICogQHBhcmFtIG5lc3RlZFRhZyBOZXN0ZWQgdG8gcHJvY2Vzcy4KKyAgICAgKi8KKyAgICB2b2lkIHByb2Nlc3NOZXN0ZWRUYWcoQWRkVGFnIG5lc3RlZFRhZykgdGhyb3dzIEpzcEV4Y2VwdGlvbjsKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy9BdHRyaWJ1dGVUb1Njb3BlVGFnLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvQXR0cmlidXRlVG9TY29wZVRhZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5ZDkwMjAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvQXR0cmlidXRlVG9TY29wZVRhZy5qYXZhCkBAIC0wLDAgKzEsMTQ2IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgIG9yZy5hcGFjaGUudGFnbGliLnRpbGVzOworCitpbXBvcnQgIGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjsKK2ltcG9ydCAgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQ7CitpbXBvcnQgIGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0OworCitpbXBvcnQgIG9yZy5hcGFjaGUudGFnbGliLnRpbGVzLnV0aWwuVGFnVXRpbHM7CitpbXBvcnQgIG9yZy5hcGFjaGUudGlsZXMuQ29tcG9uZW50Q29udGV4dDsKKworCisvKioKKyAgKiAgQ3VzdG9tICB0YWcgIHRoYXQgIHB1dHMgIGNvbXBvbmVudCdzICBhdHRyaWJ1dGVzICBpbiAgYSAgc2NvcGUgIChyZXF1ZXN0LCAgcGFnZSwgIC4uLikuCisgICogIEBkZXByZWNhdGVkICBJcyAgaXQgIHN0aWxsICBpbiAgdXNlICA/CisgICovCitwdWJsaWMgIGZpbmFsICBjbGFzcyAgQXR0cmlidXRlVG9TY29wZVRhZyAgZXh0ZW5kcyAgVGFnU3VwcG9ydCAgeworCisKKyAgICAgICAgLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEluc3RhbmNlIFZhcmlhYmxlcworCisKKyAgICAvKioKKyAgICAgKiBUaGUgc2NvcGUgbmFtZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBzY29wZU5hbWUgPSBudWxsOworCisgICAgLyoqCisgICAgICogVGhlIHNjb3BlIHZhbHVlLgorICAgICAqLworICAgIHByaXZhdGUgaW50IHNjb3BlID0gUGFnZUNvbnRleHQuUEFHRV9TQ09QRTsKKworCisKKyAgICAvKioKKyAgICAgKiBUaGUgcHJvcGVydHkgbmFtZSB0byBiZSBleHBvc2VkLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHByb3BlcnR5ID0gbnVsbDsKKworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm9wZXJ0aWVzCisKKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBwcm9wZXJ0eSBuYW1lLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJvcGVydHkoKQorICAgIHsKKyAgICByZXR1cm4gICh0aGlzLnByb3BlcnR5KTsKKyAgICB9CisKKworICAgICAvKioKKyAgICAgICAqICBTZXQgIHRoZSAgcHJvcGVydHkgIG5hbWUuCisgICAgICAgKgorICAgICAgICogIEBwYXJhbSAgcHJvcGVydHkgIFRoZSAgcHJvcGVydHkgIG5hbWUKKyAgICAgICAqLworICAgIHB1YmxpYyAgdm9pZCAgc2V0UHJvcGVydHkoU3RyaW5nICBwcm9wZXJ0eSkKKyAgICB7ICAKKyAgICB0aGlzLnByb3BlcnR5ICA9ICBwcm9wZXJ0eTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgICogIFNldCAgdGhlICBzY29wZS4KKyAgICAgICoKKyAgICAgICogIEBwYXJhbSAgc2NvcGUgIFRoZSAgbmV3ICBzY29wZQorICAgICAgKi8KKyAgICBwdWJsaWMgIHZvaWQgIHNldFNjb3BlKFN0cmluZyAgc2NvcGUpCisgICAgeworICAgIHRoaXMuc2NvcGVOYW1lICA9ICBzY29wZTsKKyAgICB9CisKKyAgICAgICAgLy8gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgUHVibGljICBNZXRob2RzCisKKworICAgICAgICAvKioKKyAgICAgICAgICAqICBFeHBvc2UgIHRoZSAgcmVxdWVzdGVkICBwcm9wZXJ0eSAgZnJvbSAgY29tcG9uZW50ICBjb250ZXh0LgorICAgICAgICAgICoKKyAgICAgICAgICAqICBAZXhjZXB0aW9uICBKc3BFeGNlcHRpb24gIGlmICBhICBKU1AgIGV4Y2VwdGlvbiAgaGFzICBvY2N1cnJlZAorICAgICAgICAgICovCisgICAgcHVibGljICBpbnQgIGRvU3RhcnRUYWcoKSAgdGhyb3dzICBKc3BFeGNlcHRpb24KKyAgICAgICAgeworICAgICAgICBpZiggIGlkPT1udWxsICApCisgICAgICAgICAgICBpZD1wcm9wZXJ0eTsKKyAgICAgICAgICAgIAorICAgICAgICBDb21wb25lbnRDb250ZXh0ICBjb21wQ29udGV4dCAgPSAgKENvbXBvbmVudENvbnRleHQpcGFnZUNvbnRleHQuZ2V0QXR0cmlidXRlKCAgQ29tcG9uZW50Q29uc3RhbnRzLkNPTVBPTkVOVF9DT05URVhULCAgUGFnZUNvbnRleHQuUkVRVUVTVF9TQ09QRSk7CisKKyAgICAgICAgaWYoICBjb21wQ29udGV4dCAgPT0gIG51bGwgICkKKyAgICAgICAgICAgIHRocm93ICBuZXcgIEpzcEV4Y2VwdGlvbiAgKCAgIkVycm9yICAtICB0YWcudXNlUHJvcGVydHkgIDogIGNvbXBvbmVudCAgY29udGV4dCAgaXMgIG5vdCAgZGVmaW5lZC4gIENoZWNrICB0YWcgIHN5bnRheCIgICk7CisKKyAgICAgICAgT2JqZWN0ICB2YWx1ZSAgPSAgY29tcENvbnRleHQuZ2V0QXR0cmlidXRlKHByb3BlcnR5KTsKKyAgICAgICAgaWYoICB2YWx1ZSAgPT0gIG51bGwgICkKKyAgICAgICAgICAgIHRocm93ICBuZXcgIEpzcEV4Y2VwdGlvbiAgKCAgIkVycm9yICAtICB0YWcudXNlUHJvcGVydHkgIDogIHByb3BlcnR5ICAnIisgIHByb3BlcnR5ICArICAiJyAgbm90ICBmb3VuZCAgaW4gIGNvbnRleHQuICBDaGVjayAgdGFnICBzeW50YXgiICApOworCisgICAgICAgIGlmKCAgc2NvcGVOYW1lICAhPSAgbnVsbCAgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgc2NvcGUgID0gIFRhZ1V0aWxzLmdldFNjb3BlKCAgc2NvcGVOYW1lLCAgUGFnZUNvbnRleHQuUEFHRV9TQ09QRSAgKTsKKyAgICAgICAgICAgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZShpZCwgIHZhbHVlLCAgc2NvcGUpOworICAgICAgICAgICAgfQorICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZShpZCwgIHZhbHVlKTsKKworICAgICAgICAgIC8vICBDb250aW51ZSAgcHJvY2Vzc2luZyAgdGhpcyAgcGFnZQorICAgICAgICByZXR1cm4gIFNLSVBfQk9EWTsKKyAgICAgICAgfQorCisKKworCisgICAgICAgIC8qKgorICAgICAgICAgICogIENsZWFuICB1cCAgYWZ0ZXIgIHByb2Nlc3NpbmcgIHRoaXMgIGVudW1lcmF0aW9uLgorICAgICAgICAgICoKKyAgICAgICAgICAqICBAZXhjZXB0aW9uICBKc3BFeGNlcHRpb24gIGlmICBhICBKU1AgIGV4Y2VwdGlvbiAgaGFzICBvY2N1cnJlZAorICAgICAgICAgICovCisgICAgcHVibGljICBpbnQgIGRvRW5kVGFnKCkgIHRocm93cyAgSnNwRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgcmV0dXJuICAoRVZBTF9QQUdFKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgICogIFJlbGVhc2UgIGFsbCAgYWxsb2NhdGVkICByZXNvdXJjZXMuCisgICAgICAgICAgKi8KKyAgICAgICAgcHVibGljICB2b2lkICByZWxlYXNlKCkgIHsKKworICAgICAgICAgICAgICAgIHN1cGVyLnJlbGVhc2UoKTsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eSAgPSAgbnVsbDsKKyAgICAgICAgICAgICAgICBzY29wZU5hbWUgID0gIG51bGw7CisgICAgICAgICAgICAgICAgc2NvcGUgID0gIFBhZ2VDb250ZXh0LlBBR0VfU0NPUEU7CisgICAgICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0NvbXBvbmVudENvbnN0YW50cy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhZWNiMWUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvQ29tcG9uZW50Q29uc3RhbnRzLmphdmEKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGFnbGliLnRpbGVzOworCisvKioKKyAqIENvbnN0YW50cyB1c2VkIGJ5IFRpbGVzL0NvbXBvbmVudHMuCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgQ29tcG9uZW50Q29uc3RhbnRzIHsKKworICAgIC8qKiBOYW1lIHVzZWQgdG8gc3RvcmUgVGlsZS9Db21wb25lbnQgY29udGV4dC4gKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDT01QT05FTlRfQ09OVEVYVCA9ICJvcmcuYXBhY2hlLnRhZ2xpYi50aWxlcy5Db21wQ29udGV4dCI7CisKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBDT01QT05FTlRfU0NPUEUgPSA4OworCisJIC8vIERHOiBoYXJkY29kZWQgTE9DQUxFX0tFWSBhbmQgRVhDRVBUSU9OX0tFWSB0byByZW1vdmUgZGVwZW5kZW5jeQorCSAvLyAgICAgb24gb3JnLmFwYWNoZS50aWxlcy5HbG9iYWxzCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTE9DQUxFX0tFWSA9ICJvcmcuYXBhY2hlLnRpbGVzLmFjdGlvbi5MT0NBTEUiOworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVYQ0VQVElPTl9LRVkgPSAib3JnLmFwYWNoZS50aWxlcy5hY3Rpb24uRVhDRVBUSU9OIjsKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWcuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmYwYTNiYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy9EZWZpbml0aW9uVGFnLmphdmEKQEAgLTAsMCArMSwyMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRhZ2xpYi50aWxlczsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjsKKworaW1wb3J0IG9yZy5hcGFjaGUudGFnbGliLnRpbGVzLnV0aWwuVGFnVXRpbHM7CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5BdHRyaWJ1dGVEZWZpbml0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLlVudHlwZWRBdHRyaWJ1dGU7CisKKy8qKgorICogVGhpcyBpcyB0aGUgdGFnIGhhbmRsZXIgZm9yICZsdDt0aWxlczpkZWZpbml0aW9uJmd0Oywgd2hpY2ggZGVmaW5lcworICogYSB0aWxlcyAob3IgdGVtcGxhdGUgLyBjb21wb25lbnQpLiBEZWZpbml0aW9uIGlzIHB1dCBpbiByZXF1ZXN0ZWQgY29udGV4dCBhbmQgY2FuIGJlCisgKiB1c2VkIGluICZsdDt0aWxlczppbnNlcnQmZ3QuCisgKgorICogQGF1dGhvciBDZWRyaWMgRHVtb3VsaW4KKyAqIEBhdXRob3IgRGF2aWQgR2VhcnkKKyAqICRJZCQKKyAqLworcHVibGljIGNsYXNzIERlZmluaXRpb25UYWcKKyAgICBleHRlbmRzIERlZmluaXRpb25UYWdTdXBwb3J0CisgICAgaW1wbGVtZW50cyBQdXRUYWdQYXJlbnQsIFB1dExpc3RUYWdQYXJlbnQgeworCisgICAgLyogSlNQIFRhZyBhdHRyaWJ1dGVzICovCisgICAgLyoqCisgICAgICogRGVmaW5pdGlvbiBpZGVudGlmaWVyLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGlkID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFNjb3BlIGludG8gd2hpY2ggZGVmaW5pdGlvbiB3aWxsIGJlIHNhdmVkLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHNjb3BlID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEV4dGVuZHMgYXR0cmlidXRlIHZhbHVlLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGV4dGVuZHNEZWZpbml0aW9uID0gbnVsbDsKKworICAgIC8qIEludGVybmFsIHByb3BlcnRpZXMgKi8KKyAgICAvKioKKyAgICAgKiBUZW1wbGF0ZSBkZWZpbml0aW9uCisgICAgICovCisgICAgcHJpdmF0ZSBDb21wb25lbnREZWZpbml0aW9uIGRlZmluaXRpb24gPSBudWxsOworCisgICAgLyoqCisgICAgICogUmVzZXQgbWVtYmVyIHZhbHVlcyBmb3IgcmV1c2UuIFRoaXMgbWV0aG9kIGNhbGxzIHN1cGVyLnJlbGVhc2UoKSwKKyAgICAgKiB3aGljaCBpbnZva2VzIFRhZ1N1cHBvcnQucmVsZWFzZSgpLCB3aGljaCB0eXBpY2FsbHkgZG9lcyBub3RoaW5nLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHJlbGVhc2UoKSB7CisgICAgICAgIHN1cGVyLnJlbGVhc2UoKTsKKyAgICAgICAgaWQgPSBudWxsOworICAgICAgICBwYWdlID0gbnVsbDsKKyAgICAgICAgc2NvcGUgPSBudWxsOworICAgICAgICByb2xlID0gbnVsbDsKKyAgICAgICAgZXh0ZW5kc0RlZmluaXRpb24gPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbGVhc2UgaW50ZXJuYWwgcmVmZXJlbmNlcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCByZWxlYXNlSW50ZXJuYWwoKSB7CisgICAgICAgIGRlZmluaXRpb24gPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGEgY29udmVuaWVuY2UgZm9yIG90aGVyIHRhZ3MgZm9yCisgICAgICogcHV0dGluZyBjb250ZW50IGludG8gdGhlIHRpbGUgZGVmaW5pdGlvbi4KKyAgICAgKiBDb250ZW50IGlzIGFscmVhZHkgdHlwZWQgYnkgY2FsbGVyLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dEF0dHJpYnV0ZShTdHJpbmcgbmFtZSwgT2JqZWN0IGNvbnRlbnQpIHsKKyAgICAgICAgZGVmaW5pdGlvbi5wdXRBdHRyaWJ1dGUobmFtZSwgY29udGVudCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvY2VzcyBuZXN0ZWQgJmxnO3B1dCZndDsgdGFnLgorICAgICAqIE1ldGhvZCBpcyBjYWxsZWQgZnJvbSBuZXN0ZWQgJmxnO3B1dCZndDsgdGFncy4KKyAgICAgKiBOZXN0ZWQgbGlzdCBpcyBhZGRlZCB0byBjdXJyZW50IGxpc3QuCisgICAgICogSWYgcm9sZSBpcyBkZWZpbmVkLCBuZXN0ZWQgYXR0cmlidXRlIGlzIHdyYXBwZWQgaW50byBhbiB1bnR5cGVkIGRlZmluaXRpb24KKyAgICAgKiBjb250YWluaW5nIGF0dHJpYnV0ZSB2YWx1ZSBhbmQgcm9sZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwcm9jZXNzTmVzdGVkVGFnKFB1dFRhZyBuZXN0ZWRUYWcpIHRocm93cyBKc3BFeGNlcHRpb24geworICAgICAgICAvLyBHZXQgcmVhbCB2YWx1ZSBhbmQgY2hlY2sgcm9sZQorICAgICAgICAvLyBJZiByb2xlIGlzIHNldCwgYWRkIGl0IGluIGF0dHJpYnV0ZSBkZWZpbml0aW9uIGlmIGFueS4KKyAgICAgICAgLy8gSWYgbm8gYXR0cmlidXRlIGRlZmluaXRpb24sIGNyZWF0ZSB1bnR5cGVkIG9uZSBhbmQgc2V0IHJvbGUuCisgICAgICAgIE9iamVjdCBhdHRyaWJ1dGVWYWx1ZSA9IG5lc3RlZFRhZy5nZXRSZWFsVmFsdWUoKTsKKyAgICAgICAgQXR0cmlidXRlRGVmaW5pdGlvbiBkZWY7CisKKyAgICAgICAgaWYgKG5lc3RlZFRhZy5nZXRSb2xlKCkgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBkZWYgPSAoKEF0dHJpYnV0ZURlZmluaXRpb24pIGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgIGRlZiA9IG5ldyBVbnR5cGVkQXR0cmlidXRlKGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlZi5zZXRSb2xlKG5lc3RlZFRhZy5nZXRSb2xlKCkpOworICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUgPSBkZWY7CisgICAgICAgIH0KKworICAgICAgICAvLyBub3cgYWRkIGF0dHJpYnV0ZSB0byBlbmNsb3NpbmcgcGFyZW50IChpLmUuIDogdGhpcyBvYmplY3QpCisgICAgICAgIHB1dEF0dHJpYnV0ZShuZXN0ZWRUYWcuZ2V0TmFtZSgpLCBhdHRyaWJ1dGVWYWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvY2VzcyBuZXN0ZWQgJmxnO3B1dExpc3QmZ3Q7IHRhZy4KKyAgICAgKiBNZXRob2QgaXMgY2FsbGVkIGZyb20gbmVzdGVkICZsZztwdXRMaXN0Jmd0OyB0YWdzLgorICAgICAqIE5lc3RlZCBsaXN0IGlzIGFkZGVkIHRvIGN1cnJlbnQgbGlzdC4KKyAgICAgKiBJZiByb2xlIGlzIGRlZmluZWQsIG5lc3RlZCBhdHRyaWJ1dGUgaXMgd3JhcHBlZCBpbnRvIGFuIHVudHlwZWQgZGVmaW5pdGlvbgorICAgICAqIGNvbnRhaW5pbmcgYXR0cmlidXRlIHZhbHVlIGFuZCByb2xlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHByb2Nlc3NOZXN0ZWRUYWcoUHV0TGlzdFRhZyBuZXN0ZWRUYWcpIHRocm93cyBKc3BFeGNlcHRpb24geworICAgICAgICAvLyBHZXQgcmVhbCB2YWx1ZSBhbmQgY2hlY2sgcm9sZQorICAgICAgICAvLyBJZiByb2xlIGlzIHNldCwgYWRkIGl0IGluIGF0dHJpYnV0ZSBkZWZpbml0aW9uIGlmIGFueS4KKyAgICAgICAgLy8gSWYgbm8gYXR0cmlidXRlIGRlZmluaXRpb24sIGNyZWF0ZSB1bnR5cGVkIG9uZSBhbmQgc2V0IHJvbGUuCisgICAgICAgIE9iamVjdCBhdHRyaWJ1dGVWYWx1ZSA9IG5lc3RlZFRhZy5nZXRMaXN0KCk7CisKKyAgICAgICAgaWYgKG5lc3RlZFRhZy5nZXRSb2xlKCkgIT0gbnVsbCkgeworICAgICAgICAgICAgQXR0cmlidXRlRGVmaW5pdGlvbiBkZWYgPSBuZXcgVW50eXBlZEF0dHJpYnV0ZShhdHRyaWJ1dGVWYWx1ZSk7CisgICAgICAgICAgICBkZWYuc2V0Um9sZShuZXN0ZWRUYWcuZ2V0Um9sZSgpKTsKKyAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gZGVmOworICAgICAgICB9CisKKyAgICAgICAgLy8gQ2hlY2sgaWYgYSBuYW1lIGlzIGRlZmluZWQKKyAgICAgICAgaWYgKG5lc3RlZFRhZy5nZXROYW1lKCkgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbigiRXJyb3IgLSBQdXRMaXN0IDogYXR0cmlidXRlIG5hbWUgaXMgbm90IGRlZmluZWQuIEl0IGlzIG1hbmRhdG9yeSBhcyB0aGUgbGlzdCBpcyBhZGRlZCB0byBhICdkZWZpbml0aW9uJy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIG5vdyBhZGQgYXR0cmlidXRlIHRvIGVuY2xvc2luZyBwYXJlbnQgKGkuZS4gOiB0aGlzIG9iamVjdCkuCisgICAgICAgIHB1dEF0dHJpYnV0ZShuZXN0ZWRUYWcuZ2V0TmFtZSgpLCBhdHRyaWJ1dGVWYWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBJRC4KKyAgICAgKiBAcmV0dXJuIElECisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRJZCgpIHsKKyAgICAgICAgcmV0dXJuIGlkOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgSUQuCisgICAgICogQHBhcmFtIGlkIE5ldyBJRC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRJZChTdHJpbmcgaWQpIHsKKyAgICAgICAgdGhpcy5pZCA9IGlkOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgc2NvcGUuCisgICAgICogQHJldHVybiBTY29wZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFNjb3BlKCkgeworICAgICAgICByZXR1cm4gc2NvcGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBzY29wZS4KKyAgICAgKiBAcGFyYW0gYVNjb3BlIFNjb3BlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFNjb3BlKFN0cmluZyBhU2NvcGUpIHsKKyAgICAgICAgc2NvcGUgPSBhU2NvcGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IDxjb2RlPmV4dGVuZHM8L2NvZGU+IChwYXJlbnQpIGRlZmluaXRpb24gbmFtZS4KKyAgICAgKiBAcGFyYW0gZGVmaW5pdGlvbk5hbWUgTmFtZSBvZiBwYXJlbnQgZGVmaW5pdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRFeHRlbmRzKFN0cmluZyBkZWZpbml0aW9uTmFtZSkgeworICAgICAgICB0aGlzLmV4dGVuZHNEZWZpbml0aW9uID0gZGVmaW5pdGlvbk5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IDxjb2RlPmV4dGVuZHM8L2NvZGU+IChwYXJlbnQpIGRlZmluaXRpb24gbmFtZS4KKyAgICAgKiBAcmV0dXJuIE5hbWUgb2YgcGFyZW50IGRlZmluaXRpb24uCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRFeHRlbmRzKCkgeworICAgICAgICByZXR1cm4gZXh0ZW5kc0RlZmluaXRpb247CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvY2VzcyB0aGUgc3RhcnQgdGFnIGJ5IGNyZWF0aW5nIGEgbmV3IGRlZmluaXRpb24uCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24gT24gZXJyb3JzIHByb2Nlc3NpbmcgdGFnLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZG9TdGFydFRhZygpIHRocm93cyBKc3BFeGNlcHRpb24geworICAgICAgICAvLyBEbyB3ZSBleHRlbmQgYSBkZWZpbml0aW9uID8KKyAgICAgICAgaWYgKGV4dGVuZHNEZWZpbml0aW9uICE9IG51bGwgJiYgIWV4dGVuZHNEZWZpbml0aW9uLmVxdWFscygiIikpIHsKKyAgICAgICAgICAgIENvbXBvbmVudERlZmluaXRpb24gcGFyZW50RGVmID0KKyAgICAgICAgICAgICAgICBUYWdVdGlscy5nZXRDb21wb25lbnREZWZpbml0aW9uKGV4dGVuZHNEZWZpbml0aW9uLCBwYWdlQ29udGV4dCk7CisKKyAgICAgICAgICAgIGRlZmluaXRpb24gPSBuZXcgQ29tcG9uZW50RGVmaW5pdGlvbihwYXJlbnREZWYpOworCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZWZpbml0aW9uID0gbmV3IENvbXBvbmVudERlZmluaXRpb24oKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNldCBkZWZpbml0aW9ucyBhdHRyaWJ1dGVzCisgICAgICAgIGlmIChwYWdlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGRlZmluaXRpb24uc2V0VGVtcGxhdGUocGFnZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAocm9sZSAhPSBudWxsKSB7CisgICAgICAgICAgICBkZWZpbml0aW9uLnNldFJvbGUocm9sZSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gRVZBTF9CT0RZX0lOQ0xVREU7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvY2VzcyB0aGUgZW5kIHRhZyBieSBwdXR0aW5nIHRoZSBkZWZpbml0aW9uIGluIGFwcHJvcHJpYXRlIGNvbnRleHQuCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24gT24gZXJyb3JzIHByb2Nlc3NpbmcgdGFnLgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZG9FbmRUYWcoKSB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICAgICAgVGFnVXRpbHMuc2V0QXR0cmlidXRlKHBhZ2VDb250ZXh0LCBpZCwgZGVmaW5pdGlvbiwgc2NvcGUpOworCisgICAgICAgIHJlbGVhc2VJbnRlcm5hbCgpOworICAgICAgICByZXR1cm4gRVZBTF9QQUdFOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvRGVmaW5pdGlvblRhZ1N1cHBvcnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWQ0MGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0RlZmluaXRpb25UYWdTdXBwb3J0LmphdmEKQEAgLTAsMCArMSwxOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRhZ2xpYi50aWxlczsKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworCitpbXBvcnQgamF2YXguc2VydmxldC5qc3AudGFnZXh0LlRhZ1N1cHBvcnQ7CisKKyAgLyoqCisgICAqIENvbW1vbiBiYXNlIGNsYXNzIGZvciB0YWdzIGRlYWxpbmcgd2l0aCBUaWxlcyBkZWZpbml0aW9ucy4KKyAgICogVGhpcyBjbGFzcyBkZWZpbmVzIHByb3BlcnRpZXMgdXNlZCBpbiBEZWZpbml0aW9uIFRhZ3MuCisgICAqIEl0IGFsc28gZXh0ZW5kcyBUYWdTdXBwb3J0LgorICAgKi8KK3B1YmxpYyBjbGFzcyBEZWZpbml0aW9uVGFnU3VwcG9ydCBleHRlbmRzIFRhZ1N1cHBvcnQgaW1wbGVtZW50cyBTZXJpYWxpemFibGUKK3sKKyAgICAvKiogQXNzb2NpYXRlZCBDb250cm9sbGVyIHR5cGUgKi8KKyAgcHJvdGVjdGVkIFN0cmluZyBjb250cm9sbGVyVHlwZTsKKyAgICAvKiogQXNzb2NpYXRlZCBDb250cm9sbGVyIG5hbWUgKGNsYXNzbmFtZSBvciB1cmwpICovCisgIHByb3RlY3RlZCBTdHJpbmcgY29udHJvbGxlck5hbWU7CisKKyAgLyoqCisgICAqIFJvbGUgYXNzb2NpYXRlZCB0byBkZWZpbml0aW9uLgorICAgKi8KKyAgcHJvdGVjdGVkIFN0cmluZyByb2xlOworCisgIC8qKgorICAgKiBVcmkgb2YgcGFnZSBhc3NvaWNhdGVkIHRvIHRoaXMgZGVmaW5pdGlvbi4KKyAgICovCisgIHByb3RlY3RlZCBTdHJpbmcgcGFnZTsKKworICAgIC8qKgorICAgICAqIFJlbGVhc2UgY2xhc3MgcHJvcGVydGllcy4KKyAgICAgKi8KKyAgcHVibGljIHZvaWQgcmVsZWFzZSgpIHsKKyAgICAgc3VwZXIucmVsZWFzZSgpOworICAgICBjb250cm9sbGVyVHlwZSA9IG51bGw7CisgICAgIGNvbnRyb2xsZXJOYW1lID0gbnVsbDsKKyAgICAgcm9sZSA9IG51bGw7CisgICAgIHBhZ2UgPSBudWxsOworICB9CisKKyAgLyoqCisgICAqIEdldCBjb250cm9sbGVyIHR5cGUuCisgICAqIFR5cGUgY2FuIGJlICdjbGFzc25hbWUnLCAndXJsJy4KKyAgICogQHJldHVybiBDb250cm9sbGVyIHR5cGUuCisgICAqLworICBwdWJsaWMgU3RyaW5nIGdldENvbnRyb2xsZXJUeXBlKCkKKyAgeworICByZXR1cm4gY29udHJvbGxlclR5cGU7CisgIH0KKworICAvKioKKyAgICogR2V0IGNvbnRyb2xsZXIgbmFtZS4KKyAgICogTmFtZSBkZW5vdGVzIGEgZnVsbHkgcXVhbGlmaWVkIGNsYXNzbmFtZSwgb3IgYW4gdXJsLgorICAgKiBFeGFjdCB0eXBlIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCB7QGxpbmsgI3NldENvbnRyb2xsZXJUeXBlfS4KKyAgICogQHJldHVybiBDb250cm9sbGVyIG5hbWUuCisgICAqLworICBwdWJsaWMgU3RyaW5nIGdldENvbnRyb2xsZXJOYW1lKCkKKyAgeworICByZXR1cm4gY29udHJvbGxlck5hbWU7CisgIH0KKworICAvKioKKyAgICogU2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciB0eXBlLgorICAgKiBUeXBlIGRlbm90ZXMgYSBmdWxseSBxdWFsaWZpZWQgY2xhc3NuYW1lLgorICAgKiBAcGFyYW0gY29udHJvbGxlclR5cGUgVHlwZSBvZiBhc3NvY2lhdGVkIGNvbnRyb2xsZXIuCisgICAqLworICBwdWJsaWMgdm9pZCBzZXRDb250cm9sbGVyVHlwZShTdHJpbmcgY29udHJvbGxlclR5cGUpCisgIHsKKyAgdGhpcy5jb250cm9sbGVyVHlwZSA9IGNvbnRyb2xsZXJUeXBlOworICB9CisKKyAgLyoqCisgICAqIFNldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgbmFtZS4KKyAgICogTmFtZSBkZW5vdGVzIGEgZnVsbHkgcXVhbGlmaWVkIGNsYXNzbmFtZSwgb3IgYW4gdXJsLgorICAgKiBFeGFjdCB0eXBlIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCB7QGxpbmsgI3NldENvbnRyb2xsZXJUeXBlfS4KKyAgICogQHBhcmFtIGNvbnRyb2xsZXIgQ29udHJvbGxlciBjbGFzc25hbWUgb3IgdXJsLgorICAgKi8KKyAgcHVibGljIHZvaWQgc2V0Q29udHJvbGxlcihTdHJpbmcgY29udHJvbGxlcikKKyAgeworICBzZXRDb250cm9sbGVyTmFtZShjb250cm9sbGVyKTsgOworICB9CisKKyAgLyoqCisgICAqIFNldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgbmFtZS4KKyAgICogTmFtZSBkZW5vdGUgYSBmdWxseSBxdWFsaWZpZWQgY2xhc3NuYW1lLCBvciBhbiB1cmwuCisgICAqIEV4YWN0IHR5cGUgY2FuIGJlIHNwZWNpZmllZCB3aXRoIHNldENvbnRyb2xsZXJUeXBlLgorICAgKiBAcGFyYW0gY29udHJvbGxlciBDb250cm9sbGVyIGNsYXNzbmFtZSBvciB1cmwKKyAgICovCisgIHB1YmxpYyB2b2lkIHNldENvbnRyb2xsZXJOYW1lKFN0cmluZyBjb250cm9sbGVyKQorICB7CisgIHRoaXMuY29udHJvbGxlck5hbWUgPSBjb250cm9sbGVyOworICB9CisKKyAgLyoqCisgICAqIFNldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgbmFtZSBhcyBhbiB1cmwsIGFuZCBjb250cm9sbGVyCisgICAqIHR5cGUgYXMgInVybCIuCisgICAqIE5hbWUgbXVzdCBiZSBhbiB1cmwgKG5vdCBjaGVja2VkKS4KKyAgICogQ29udmVuaWVuY2UgbWV0aG9kLgorICAgKiBAcGFyYW0gY29udHJvbGxlciBDb250cm9sbGVyIHVybAorICAgKi8KKyAgcHVibGljIHZvaWQgc2V0Q29udHJvbGxlclVybChTdHJpbmcgY29udHJvbGxlcikKKyAgeworICBzZXRDb250cm9sbGVyTmFtZSggY29udHJvbGxlcik7CisgIHNldENvbnRyb2xsZXJUeXBlKCAidXJsIiApOworICB9CisKKyAgLyoqCisgICAqIFNldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgbmFtZSBhcyBhIGNsYXNzdHlwZSBhbmQgY29udHJvbGxlcgorICAgKiB0eXBlIGFzICJjbGFzc25hbWUiLgorICAgKiBOYW1lIGRlbm90ZXMgYSBmdWxseSBxdWFsaWZpZWQgY2xhc3NuYW1lLgorICAgKiBDb252ZW5pZW5jZSBtZXRob2QuCisgICAqIEBwYXJhbSBjb250cm9sbGVyIENvbnRyb2xsZXIgY2xhc3NuYW1lLgorICAgKi8KKyAgcHVibGljIHZvaWQgc2V0Q29udHJvbGxlckNsYXNzKFN0cmluZyBjb250cm9sbGVyKQorICB7CisgIHNldENvbnRyb2xsZXJOYW1lKCBjb250cm9sbGVyKTsKKyAgc2V0Q29udHJvbGxlclR5cGUoICJjbGFzc25hbWUiICk7CisgIH0KKworICAvKioKKyAgICogR2V0IGFzc29jaWF0ZWQgcm9sZS4KKyAgICogQHJldHVybiBBc3NvY2lhdGVkIHJvbGUuCisgICAqLworICBwdWJsaWMgU3RyaW5nIGdldFJvbGUoKQorICAgIHsKKyAgICByZXR1cm4gcm9sZTsKKyAgICB9CisKKyAgLyoqCisgICAqIFNldCBhc3NvY2lhdGVkIHJvbGUuCisgICAqIEBwYXJhbSByb2xlIEFzc29jaWF0ZWQgcm9sZS4KKyAgICovCisgIHB1YmxpYyB2b2lkIHNldFJvbGUoU3RyaW5nIHJvbGUpCisgICAgeworICAgIHRoaXMucm9sZSA9IHJvbGU7CisgICAgfQorCisgIC8qKgorICAgKiBTZXQgdGhlIHBhZ2UuCisgICAqIEBwYXJhbSBwYWdlIFBhZ2UuCisgICAqLworICBwdWJsaWMgdm9pZCBzZXRQYWdlKFN0cmluZyBwYWdlKQorICB7CisgIHRoaXMucGFnZSA9IHBhZ2U7CisgIH0KKworICAvKioKKyAgICogR2V0IHRoZSBwYWdlLgorICAgKiBAcmV0dXJuIFBhZ2UuCisgICAqLworICBwdWJsaWMgU3RyaW5nIGdldFBhZ2UoKQorICB7CisgIHJldHVybiBwYWdlOworICB9CisKKyAgLyoqCisgICAqIEdldCB0aGUgdGVtcGxhdGUuCisgICAqIFNhbWUgYXMgZ2V0UGFnZSgpLgorICAgKiBAcmV0dXJuIFRlbXBsYXRlLgorICAgKi8KKyAgcHVibGljIFN0cmluZyBnZXRUZW1wbGF0ZSgpCisgIHsKKyAgcmV0dXJuIHBhZ2U7CisgIH0KKworICAvKioKKyAgICogU2V0IHRoZSB0ZW1wbGF0ZS4KKyAgICogU2FtZSBhcyBzZXRQYWdlKCkuCisgICAqIEBwYXJhbSB0ZW1wbGF0ZSBUZW1wbGF0ZS4KKyAgICovCisgIHB1YmxpYyB2b2lkIHNldFRlbXBsYXRlKFN0cmluZyB0ZW1wbGF0ZSkKKyAgeworICB0aGlzLnBhZ2UgPSB0ZW1wbGF0ZTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0dldEF0dHJpYnV0ZVRhZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2NDRjYzgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvR2V0QXR0cmlidXRlVGFnLmphdmEKQEAgLTAsMCArMSwxNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRhZ2xpYi50aWxlczsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDsKKworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuQ29tcG9uZW50Q29udGV4dDsKKworICAvKioKKyAgICogUmV0cmlldmUgdGhlIHZhbHVlIG9mIHRoZSBzcGVjaWZpZWQgY29tcG9uZW50L3RlbXBsYXRlIGF0dHJpYnV0ZSBwcm9wZXJ0eSwKKyAgICogYW5kIHJlbmRlciBpdCB0byB0aGUgY3VycmVudCBKc3BXcml0ZXIgYXMgYSBTdHJpbmcuCisgICAqIFRoZSB1c3VhbCB0b1N0cmluZygpIGNvbnZlcnNpb24gaXMgYXBwbGllZCBvbiB0aGUgZm91bmQgdmFsdWUuCisgICAqLworcHVibGljIGNsYXNzIEdldEF0dHJpYnV0ZVRhZyBleHRlbmRzIFRhZ1N1cHBvcnQgaW1wbGVtZW50cyBDb21wb25lbnRDb25zdGFudHMgeworCisgIHByaXZhdGUgU3RyaW5nIGF0dHJpYnV0ZSA9IG51bGw7CisgICAgLyoqIFJvbGUgYXR0cmlidXRlICovCisgIHByaXZhdGUgU3RyaW5nIHJvbGUgPSBudWxsOworICAgIC8qKgorICAgICAqIERvIHdlIGlnbm9yZSBlcnJvciBpZiBhdHRyaWJ1dGUgaXMgbm90IGZvdW5kLgorICAgICAqIERlZmF1bHQgdmFsdWUgaXMgPGNvZGU+ZmFsc2U8L2NvZGU+LCB3aGljaCB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbi4KKyAgICAgKi8KKyAgcHJpdmF0ZSBib29sZWFuIGlzRXJyb3JJZ25vcmVkID0gZmFsc2U7CisKKyAgLyoqCisgICAqIERlZmF1bHQgY29uc3RydWN0b3IuCisgICAqLworICBwdWJsaWMgR2V0QXR0cmlidXRlVGFnKCkgeworICAgIHN1cGVyKCk7CisgIH0KKworICAgIC8qKgorICAgICAqIFJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVsZWFzZSgpIHsKKworICAgICAgICBzdXBlci5yZWxlYXNlKCk7CisgICAgICAgIGF0dHJpYnV0ZSA9IG51bGw7CisgICAgICAgIHJvbGUgPSBudWxsOworICAgICAgICBpc0Vycm9ySWdub3JlZCA9IGZhbHNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBhdHRyaWJ1dGUuCisgICAgICogQHBhcmFtIGF0dHJpYnV0ZSBBdHRyaWJ1dGUuCisgICAgICovCisgIHB1YmxpYyB2b2lkIHNldEF0dHJpYnV0ZShTdHJpbmcgYXR0cmlidXRlKXsKKyAgICB0aGlzLmF0dHJpYnV0ZSA9IGF0dHJpYnV0ZTsKKyAgfQorCisgICAgLyoqCisgICAgICogR2V0IGF0dHJpYnV0ZS4KKyAgICAgKiBAcmV0dXJuIEF0dHJpYnV0ZS4KKyAgICAgKi8KKyAgcHVibGljIFN0cmluZyBnZXRBdHRyaWJ1dGUoKQorICB7CisgIHJldHVybiBhdHRyaWJ1dGU7CisgIH0KKworICAgIC8qKgorICAgICAqIFNldCBOYW1lLgorICAgICAqIFNhbWUgYXMgc2V0QXR0cmlidXRlKCkuCisgICAgICogQHBhcmFtIHZhbHVlIEF0dHJpYnV0ZS4KKyAgICAgKi8KKyAgcHVibGljIHZvaWQgc2V0TmFtZShTdHJpbmcgdmFsdWUpCisgICAgeworICAgIHRoaXMuYXR0cmlidXRlID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IE5hbWUuCisgICAgICogU2V0IGFzIGdldEF0dHJpYnV0ZSgpLgorICAgICAqIEByZXR1cm4gQXR0cmlidXRlLgorICAgICAqLworICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKQorICB7CisgIHJldHVybiBhdHRyaWJ1dGU7CisgIH0KKworICAgIC8qKgorICAgICAqIFNldCBpZ25vcmluZyBmbGFnIHdoZW4gYXR0cmlidXRlIGlzIG5vdCBmb3VuZC4KKyAgICAgKiBAcGFyYW0gaWdub3JlIGRlZmF1bHQ6IDxjb2RlPmZhbHNlPC9jb2RlPjogRXhjZXB0aW9uIGlzIHRocm93biB3aGVuIGF0dHJpYnV0ZSBpcyBub3QgZm91bmQsIHNldCB0byA8Y29kZT4KKyAgICAgKiB0cnVlPC9jb2RlPiB0byBpZ25vcmUgbWlzc2luZyBhdHRyaWJ1dGVzIHNpbGVudGx5CisgICAgICovCisgIHB1YmxpYyB2b2lkIHNldElnbm9yZShib29sZWFuIGlnbm9yZSkKKyAgICB7CisgICAgdGhpcy5pc0Vycm9ySWdub3JlZCA9IGlnbm9yZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgaWdub3JlIGZsYWcuCisgICAgICogQHJldHVybiA8Y29kZT5mYWxzZTwvY29kZT46IEV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiBhdHRyaWJ1dGUgaXMgbm90IGZvdW5kLCBzZXQgdG8gPGNvZGU+CisgICAgICogdHJ1ZTwvY29kZT4gdG8gaWdub3JlIG1pc3NpbmcgYXR0cmlidXRlcyBzaWxlbnRseQorICAgICAqLworICBwdWJsaWMgYm9vbGVhbiBnZXRJZ25vcmUoKQorICB7CisgIHJldHVybiBpc0Vycm9ySWdub3JlZDsKKyAgfQorCisgICAgLyoqCisgICAgICogU2V0IHJvbGUuCisgICAgICogQHBhcmFtIHJvbGUgVGhlIHJvbGUgdGhlIHVzZXIgbXVzdCBiZSBpbiB0byBzdG9yZSBjb250ZW50LgorICAgICAqLworICAgcHVibGljIHZvaWQgc2V0Um9sZShTdHJpbmcgcm9sZSkgeworICAgICAgdGhpcy5yb2xlID0gcm9sZTsKKyAgIH0KKworICAgIC8qKgorICAgICAqIEdldCByb2xlLgorICAgICAqIEByZXR1cm4gUm9sZS4KKyAgICAgKi8KKyAgcHVibGljIFN0cmluZyBnZXRSb2xlKCkKKyAgeworICByZXR1cm4gcm9sZTsKKyAgfQorCisgICAgLyoqCisgICAgICogQ2xvc2UgdGFnLgorICAgICAqIEB0aHJvd3MgSnNwRXhjZXB0aW9uIE9uIGVycm9yIHByb2Nlc3NpbmcgdGFnLgorICAgICAqLworICBwdWJsaWMgaW50IGRvRW5kVGFnKCkgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisKKyAgICAgIC8vIENoZWNrIHJvbGUKKyAgICBpZihyb2xlICE9IG51bGwgJiYgISgoSHR0cFNlcnZsZXRSZXF1ZXN0KXBhZ2VDb250ZXh0LmdldFJlcXVlc3QoKSkuaXNVc2VySW5Sb2xlKHJvbGUpICkKKyAgICAgIHsKKyAgICAgIHJldHVybiBFVkFMX1BBR0U7CisgICAgICB9IC8vIGVuZCBpZgorCisgICAgICAvLyBHZXQgY29udGV4dAorICAgIENvbXBvbmVudENvbnRleHQgY29tcENvbnRleHQgPSAoQ29tcG9uZW50Q29udGV4dClwYWdlQ29udGV4dC5nZXRBdHRyaWJ1dGUoIENvbXBvbmVudENvbnN0YW50cy5DT01QT05FTlRfQ09OVEVYVCwgUGFnZUNvbnRleHQuUkVRVUVTVF9TQ09QRSk7CisKKyAgICBpZiggY29tcENvbnRleHQgPT0gbnVsbCApCisgICAgICB0aHJvdyBuZXcgSnNwRXhjZXB0aW9uICggIkVycm9yIC0gdGFnLmdldEFzU3RyaW5nIDogY29tcG9uZW50IGNvbnRleHQgaXMgbm90IGRlZmluZWQuIENoZWNrIHRhZyBzeW50YXgiICk7CisKKyAgICBPYmplY3QgdmFsdWUgPSBjb21wQ29udGV4dC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTsKKyAgICBpZiggdmFsdWUgPT0gbnVsbCkKKyAgICAgIHsgLy8gbm8gdmFsdWUgOiB0aHJvdyBlcnJvciBvciBmYWlsIHNpbGVudGx5IGFjY29yZGluZyB0byBpZ25vcmUKKyAgICAgIGlmKGlzRXJyb3JJZ25vcmVkID09IGZhbHNlICkKKyAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbiAoICJFcnJvciAtIHRhZy5nZXRBc1N0cmluZyA6IGF0dHJpYnV0ZSAnIisgYXR0cmlidXRlICsgIicgbm90IGZvdW5kIGluIGNvbnRleHQuIENoZWNrIHRhZyBzeW50YXgiICk7CisgICAgICAgZWxzZQorICAgICAgICByZXR1cm4gRVZBTF9QQUdFOworICAgICAgfSAvLyBlbmQgaWYKKworCisgICAgdHJ5CisgICAgICB7CisgICAgICBwYWdlQ29udGV4dC5nZXRPdXQoKS5wcmludCggdmFsdWUgKTsKKyAgICAgIH0KKyAgICAgY2F0Y2goIElPRXhjZXB0aW9uIGV4ICkKKyAgICAgIHsKKyAgICAgIGV4LnByaW50U3RhY2tUcmFjZSgpOworICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbiAoICJFcnJvciAtIHRhZy5nZXRQcm9wZXJ0eSA6IElPRXhjZXB0aW9uICIpOworICAgICAgfQorCisgICAgcmV0dXJuIEVWQUxfUEFHRTsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0dldFRhZy5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0dldFRhZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlYTY0Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvR2V0VGFnLmphdmEKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGFnbGliLnRpbGVzOworCisvKioKKyAqIFRoaXMgaXMgdGhlIHRhZyBoYW5kbGVyIGZvciAmbHQ7dGlsZXM6Z2V0Jmd0Oywgd2hpY2ggZ2V0cworICogY29udGVudCBmcm9tIHRoZSByZXF1ZXN0IHNjb3BlIGFuZCBlaXRoZXIgaW5jbHVkZXMgdGhlIGNvbnRlbnQgb3IgcHJpbnRzCisgKiBpdCwgZGVwZW5kaW5nIHVwb24gdGhlIHZhbHVlIG9mIHRoZSBjb250ZW50J3MgPGNvZGU+ZGlyZWN0PC9jb2RlPiBhdHRyaWJ1dGUuCisgKgorICogVGhpcyB0YWcgaXMgaW50ZW5kZWQgdG8gYmUgY29tcGF0aWJsZSB3aXRoIHRoZSBzYW1lIHRhZyBmcm9tIFRlbXBsYXRlcyAoRGF2aWQgR2VhcnkpLgorICogSW1wbGVtZW50YXRpb24gZXh0ZW5kcyBJbnNlcnRUYWcgZm9yIGZhY2lsaXR5IChubyBzbyB3ZWxsKS4KKyAqIFRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgdGhlIGRlZmF1bHQgdmFsdWUgb2YgYXR0cmlidXRlICdpZ25vcmUnLCB3aGljaCBpcyA8Y29kZT50cnVlPC9jb2RlPgorICogZm9yIHRoaXMgdGFnIChkZWZhdWx0IGJlaGF2aW9yIG9mIERhdmlkIEdlYXJ5J3MgdGVtcGxhdGVzKS4KKyAqCisgKiBAYXV0aG9yIERhdmlkIEdlYXJ5CisgKiBAYXV0aG9yIENlZHJpYyBEdW1vdWxpbgorICovCitwdWJsaWMgY2xhc3MgR2V0VGFnIGV4dGVuZHMgSW5zZXJ0VGFnIHsKKworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICogU2V0IGRlZmF1bHQgdmFsdWUgZm9yICdpc0Vycm9ySWdub3JlZCcgdG8gPGNvZGU+dHJ1ZTwvY29kZT4uCisgICAgICovCisgICAgcHVibGljIEdldFRhZygpIHsKKyAgICAgICAgaXNFcnJvcklnbm9yZWQgPSB0cnVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVsZWFzZSgpIHsKKworICAgICAgICBzdXBlci5yZWxlYXNlKCk7CisgICAgICAgIGlzRXJyb3JJZ25vcmVkID0gdHJ1ZTsKKyAgICB9CisKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0ltcG9ydEF0dHJpYnV0ZVRhZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhZWQyZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvSW1wb3J0QXR0cmlidXRlVGFnLmphdmEKQEAgLTAsMCArMSwxODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRhZ2xpYi50aWxlczsKKworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnU3VwcG9ydDsKKworaW1wb3J0IG9yZy5hcGFjaGUudGFnbGliLnRpbGVzLnV0aWwuVGFnVXRpbHM7CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5Db21wb25lbnRDb250ZXh0OworCisKKy8qKgorICAqICBJbXBvcnQgYXR0cmlidXRlIGZyb20gY29tcG9uZW50IHRvIHJlcXVlc3RlZCBzY29wZS4KKyAgKiAgQXR0cmlidXRlIG5hbWUgYW5kIHNjb3BlIGFyZSBvcHRpb25hbC4gSWYgbm90IHNwZWNpZmllZCwgYWxsIGNvbXBvbmVudAorICAqICBhdHRyaWJ1dGVzIGFyZSBpbXBvcnRlZCBpbiBwYWdlIHNjb3BlLgorICovCisKK3B1YmxpYyBmaW5hbCBjbGFzcyBJbXBvcnRBdHRyaWJ1dGVUYWcgZXh0ZW5kcyBUYWdTdXBwb3J0IHsKKworICAgIC8qKgorICAgICAqIENsYXNzIG5hbWUgb2Ygb2JqZWN0LgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nICBuYW1lID0gbnVsbDsKKworCisgICAgLyoqCisgICAgICogVGhlIHNjb3BlIG5hbWUuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgc2NvcGVOYW1lID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBzY29wZSB2YWx1ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIGludCBzY29wZSA9IFBhZ2VDb250ZXh0LlBBR0VfU0NPUEU7CisgICAgLyoqCisgICAgICogQXJlIGVycm9ycyBpZ25vcmVkLiBUaGlzIGlzIHRoZSBwcm9wZXJ0eSBmb3IgYXR0cmlidXRlIDxjb2RlPmlnbm9yZTwvY29kZT4uCisgICAgICogRGVmYXVsdCB2YWx1ZSBpcyA8Y29kZT5mYWxzZTwvY29kZT4sIHdoaWNoIHRocm93cyBhbiBleGNlcHRpb24uCisgICAgICogT25seSAiYXR0cmlidXRlIG5vdCBmb3VuZCIgLSBlcnJvcnMgYXJlIGlnbm9yZWQuCisgICAgICovCisgIHByb3RlY3RlZCBib29sZWFuIGlzRXJyb3JJZ25vcmVkID0gZmFsc2U7CisKKworICAgIC8qKgorICAgICAqIFJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVsZWFzZSgpIHsKKworICAgICAgICBzdXBlci5yZWxlYXNlKCk7CisgICAgICAgIG5hbWUgPSBudWxsOworICAgICAgICBzY29wZU5hbWUgPSBudWxsOworICAgICAgICBzY29wZSA9IFBhZ2VDb250ZXh0LlBBR0VfU0NPUEU7CisgICAgICAgIGlzRXJyb3JJZ25vcmVkID0gZmFsc2U7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHRoZSBuYW1lLgorICAgICAqIEByZXR1cm4gTmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKQorICAgICB7CisgICAgIHJldHVybiAodGhpcy5uYW1lKTsKKyAgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG5hbWUuCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5ldyBuYW1lCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmFtZShTdHJpbmcgbmFtZSkKKyAgICAgeworICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHNjb3BlLgorICAgICAqIEBwYXJhbSBzY29wZSBTY29wZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTY29wZShTdHJpbmcgc2NvcGUpCisgICAgICB7CisgICAgICB0aGlzLnNjb3BlTmFtZSA9IHNjb3BlOworICAgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHNjb3BlLgorICAgICAqIEByZXR1cm4gU2NvcGUuCisgICAgICovCisgIHB1YmxpYyBTdHJpbmcgZ2V0U2NvcGUoKQorICB7CisgIHJldHVybiBzY29wZU5hbWU7CisgIH0KKworICAgIC8qKgorICAgICAqIFNldCBpZ25vcmUgZmxhZy4KKyAgICAgKiBAcGFyYW0gaWdub3JlIGRlZmF1bHQ6IDxjb2RlPmZhbHNlPC9jb2RlPjogRXhjZXB0aW9uIGlzIHRocm93biB3aGVuIGF0dHJpYnV0ZSBpcyBub3QgZm91bmQsIHNldCB0byA8Y29kZT4KKyAgICAgKiB0cnVlPC9jb2RlPiB0byBpZ25vcmUgbWlzc2luZyBhdHRyaWJ1dGVzIHNpbGVudGx5CisgICAgICovCisgIHB1YmxpYyB2b2lkIHNldElnbm9yZShib29sZWFuIGlnbm9yZSkKKyAgICB7CisgICAgdGhpcy5pc0Vycm9ySWdub3JlZCA9IGlnbm9yZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgaWdub3JlIGZsYWcuCisgICAgICogQHJldHVybiBkZWZhdWx0OiA8Y29kZT5mYWxzZTwvY29kZT46IEV4Y2VwdGlvbiBpcyB0aHJvd24gd2hlbiBhdHRyaWJ1dGUgaXMgbm90IGZvdW5kLCBzZXQgdG8gPGNvZGU+CisgICAgICogdHJ1ZTwvY29kZT4gdG8gaWdub3JlIG1pc3NpbmcgYXR0cmlidXRlcyBzaWxlbnRseQorICAgICAqLworICBwdWJsaWMgYm9vbGVhbiBnZXRJZ25vcmUoKQorICB7CisgIHJldHVybiBpc0Vycm9ySWdub3JlZDsKKyAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIEV4cG9zZSB0aGUgcmVxdWVzdGVkIHByb3BlcnR5IGZyb20gY29tcG9uZW50IGNvbnRleHQuCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uIEpzcEV4Y2VwdGlvbiBPbiBlcnJvcnMgcHJvY2Vzc2luZyB0YWcuCisgICAgICovCisgIHB1YmxpYyBpbnQgZG9TdGFydFRhZygpIHRocm93cyBKc3BFeGNlcHRpb24KKyAgICB7CisgICAgICAvLyByZXRyaWV2ZSBjb21wb25lbnQgY29udGV4dAorICAgIENvbXBvbmVudENvbnRleHQgY29tcENvbnRleHQgPSAoQ29tcG9uZW50Q29udGV4dClwYWdlQ29udGV4dC5nZXRBdHRyaWJ1dGUoIENvbXBvbmVudENvbnN0YW50cy5DT01QT05FTlRfQ09OVEVYVCwgUGFnZUNvbnRleHQuUkVRVUVTVF9TQ09QRSk7CisgICAgaWYoIGNvbXBDb250ZXh0ID09IG51bGwgKQorICAgICAgICB0aHJvdyBuZXcgSnNwRXhjZXB0aW9uICggIkVycm9yIC0gdGFnIGltcG9ydEF0dHJpYnV0ZSA6IG5vIHRpbGVzIGNvbnRleHQgZm91bmQuIiApOworCisgICAgICAvLyBzZXQgc2NvcGUKKyAgICBzY29wZSA9IFRhZ1V0aWxzLmdldFNjb3BlKCBzY29wZU5hbWUsIFBhZ2VDb250ZXh0LlBBR0VfU0NPUEUgKTsKKworICAgICAgLy8gcHVzaCBhdHRyaWJ1dGUgaW4gcmVxdWVzdGVkIGNvbnRleHQuCisgICAgaWYoIG5hbWUgIT0gbnVsbCApCisgICAgICB7CisgICAgICBPYmplY3QgdmFsdWUgPSBjb21wQ29udGV4dC5nZXRBdHRyaWJ1dGUobmFtZSk7CisgICAgICAgIC8vIENoZWNrIGlmIHZhbHVlIGV4aXN0IGFuZCBpZiB3ZSBtdXN0IHNlbmQgYSBydW50aW1lIGV4Y2VwdGlvbgorICAgICAgaWYoIHZhbHVlID09IG51bGwgKQorICAgICAgICBpZighaXNFcnJvcklnbm9yZWQpCisgICAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbiAoICJFcnJvciAtIHRhZyBpbXBvcnRBdHRyaWJ1dGUgOiBwcm9wZXJ0eSAnIisgbmFtZSArICInIG5vdCBmb3VuZCBpbiBjb250ZXh0LiBDaGVjayB0YWcgc3ludGF4IiApOworICAgICAgICAgZWxzZQorICAgICAgICAgIHJldHVybiBTS0lQX0JPRFk7CisKKyAgICAgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc2NvcGUpOworICAgICAgfQorICAgICBlbHNlCisgICAgICB7IC8vIHNldCBhbGwgYXR0cmlidXRlcworICAgICAgSXRlcmF0b3IgbmFtZXMgPSBjb21wQ29udGV4dC5nZXRBdHRyaWJ1dGVOYW1lcygpOworICAgICAgd2hpbGUobmFtZXMuaGFzTmV4dCgpKQorICAgICAgICB7CisgICAgICAgIFN0cmluZyBuYW1lID0gKFN0cmluZyluYW1lcy5uZXh0KCk7CisgICAgICAgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZShuYW1lLCBjb21wQ29udGV4dC5nZXRBdHRyaWJ1dGUobmFtZSksIHNjb3BlKTsKKyAgICAgICAgfSAvLyBlbmQgbG9vcAorICAgICAgfSAvLyBlbmQgaWYKKworICAgICAgLy8gQ29udGludWUgcHJvY2Vzc2luZyB0aGlzIHBhZ2UKKyAgICByZXR1cm4gU0tJUF9CT0RZOworICAgIH0KKworCisKKworICAgIC8qKgorICAgICAqIENsZWFuIHVwIGFmdGVyIHByb2Nlc3NpbmcgdGhpcyBlbnVtZXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gSnNwRXhjZXB0aW9uIE9uIGVycm9ycyBwcm9jZXNzaW5nIHRhZy4KKyAgICAgKi8KKyAgcHVibGljIGludCBkb0VuZFRhZygpIHRocm93cyBKc3BFeGNlcHRpb24KKyAgICB7CisgICAgcmV0dXJuIChFVkFMX1BBR0UpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0luaXREZWZpbml0aW9uc1RhZy5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0luaXREZWZpbml0aW9uc1RhZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzNWNmNjEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvSW5pdERlZmluaXRpb25zVGFnLmphdmEKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGFnbGliLnRpbGVzOworCitpbXBvcnQgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0OworCitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5EZWZpbml0aW9uc0ZhY3Rvcnk7CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5UaWxlc1V0aWw7CisKKyAgLyoqCisgICAqIEluaXQgZGVmaW5pdGlvbnMgZmFjdG9yeS4KKyAgICovCitwdWJsaWMgY2xhc3MgSW5pdERlZmluaXRpb25zVGFnIGV4dGVuZHMgVGFnU3VwcG9ydCBpbXBsZW1lbnRzIENvbXBvbmVudENvbnN0YW50cyB7CisKKworICBwcml2YXRlIFN0cmluZyBmaWxlbmFtZSA9IG51bGw7CisgIHByaXZhdGUgU3RyaW5nIGNsYXNzbmFtZSA9IG51bGw7CisKKyAgLyoqCisgICAqIERlZmF1bHQgY29uc3RydWN0b3IuCisgICAqLworICBwdWJsaWMgSW5pdERlZmluaXRpb25zVGFnKCkgeworICAgIHN1cGVyKCk7CisgIH0KKworICAgIC8qKgorICAgICAqIFJlbGVhc2UgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVsZWFzZSgpIHsKKworICAgICAgICBzdXBlci5yZWxlYXNlKCk7CisgICAgICAgIGZpbGVuYW1lID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgZmlsZS4KKyAgICAgKi8KKyAgcHVibGljIHZvaWQgc2V0RmlsZShTdHJpbmcgbmFtZSl7CisgICAgdGhpcy5maWxlbmFtZSA9IG5hbWU7CisgIH0KKworICAgIC8qKgorICAgICAqIFNldCBjbGFzc25hbWUuCisgICAgICovCisgIHB1YmxpYyB2b2lkIHNldENsYXNzbmFtZShTdHJpbmcgY2xhc3NuYW1lKXsKKyAgICB0aGlzLmNsYXNzbmFtZSA9IGNsYXNzbmFtZTsKKyAgfQorCisgICAgLyoqCisgICAgICogRG8gc3RhcnQgdGFnLgorICAgICAqLworICBwdWJsaWMgaW50IGRvU3RhcnRUYWcoKSB0aHJvd3MgSnNwRXhjZXB0aW9uCisgIHsKKyAgRGVmaW5pdGlvbnNGYWN0b3J5IGZhY3RvcnkgPSBUaWxlc1V0aWwuZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KHBhZ2VDb250ZXh0LmdldFJlcXVlc3QoKSxwYWdlQ29udGV4dC5nZXRTZXJ2bGV0Q29udGV4dCgpKTsKKyAgaWYoZmFjdG9yeSAhPSBudWxsICkKKyAgICByZXR1cm4gU0tJUF9CT0RZOworCisgIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyBmYWN0b3J5Q29uZmlnID0gbmV3IERlZmluaXRpb25zRmFjdG9yeUNvbmZpZygpOworICBmYWN0b3J5Q29uZmlnLnNldEZhY3RvcnlDbGFzc25hbWUoIGNsYXNzbmFtZSApOworICBmYWN0b3J5Q29uZmlnLnNldERlZmluaXRpb25Db25maWdGaWxlcyggZmlsZW5hbWUgKTsKKworICB0cnkKKyAgICB7CisgICAgZmFjdG9yeSA9IFRpbGVzVXRpbC5jcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkocGFnZUNvbnRleHQuZ2V0U2VydmxldENvbnRleHQoKSwgZmFjdG9yeUNvbmZpZyk7CisgICAgfQorICAgY2F0Y2goIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBleCApCisgICAgICB7CisgICAgICBleC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgIHRocm93IG5ldyBKc3BFeGNlcHRpb24oIGV4LmdldE1lc3NhZ2UoKSArICIgU2VlIGNvbnNvbGUgZm9yIGRldGFpbHMiICk7CisgICAgICB9CisgIHJldHVybiBTS0lQX0JPRFk7CisgIH0KKworICAgIC8qKgorICAgICAqIERvIGVuZCB0YWcuCisgICAgICovCisgIHB1YmxpYyBpbnQgZG9FbmRUYWcoKSB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICByZXR1cm4gRVZBTF9QQUdFOworICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy9JbnNlcnRUYWcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDQwZWY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL0luc2VydFRhZy5qYXZhCkBAIC0wLDAgKzEsMTAzMSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGFnbGliLnRpbGVzOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlByaW50V3JpdGVyOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlN0cmluZ1Rva2VuaXplcjsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworaW1wb3J0IGphdmF4LnNlcnZsZXQuanNwLkpzcEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dDsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuR2xvYmFsczsKK2ltcG9ydCBvcmcuYXBhY2hlLnRhZ2xpYi50aWxlcy51dGlsLlRhZ1V0aWxzOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuQXR0cmlidXRlRGVmaW5pdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkNvbXBvbmVudENvbnRleHQ7CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5Db21wb25lbnREZWZpbml0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuQ29udHJvbGxlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkRlZmluaXRpb25BdHRyaWJ1dGU7CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkRpcmVjdFN0cmluZ0F0dHJpYnV0ZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLk5vU3VjaERlZmluaXRpb25FeGNlcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5UaWxlc1V0aWw7CisKKy8qKgorICogVGhpcyBpcyB0aGUgdGFnIGhhbmRsZXIgZm9yICZsdDt0aWxlczppbnNlcnQmZ3Q7LCB3aGljaCBpbmNsdWRlcworICogYSB0ZW1wbGF0ZS4gVGhlIHRhZydzIGJvZHkgY29udGVudCBjb25zaXN0cyBvZiAmbHQ7dGlsZXM6cHV0Jmd0OworICogdGFncywgd2hpY2ggYXJlIGFjY2Vzc2VkIGJ5ICZsdDt0aWxlczpnZXQmZ3Q7IGluIHRoZSB0ZW1wbGF0ZS4KKyAqCisgKiBAYXV0aG9yIERhdmlkIEdlYXJ5CisgKiBAYXV0aG9yIENlZHJpYyBEdW1vdWxpbgorICogQHZlcnNpb24gJFJldmlzaW9uOiAxLjIwICQgJERhdGU6IDIwMDMvMDcvMDcgMjM6NDA6MTIgJAorICovCitwdWJsaWMgY2xhc3MgSW5zZXJ0VGFnCisgICAgZXh0ZW5kcyBEZWZpbml0aW9uVGFnU3VwcG9ydAorICAgIGltcGxlbWVudHMgUHV0VGFnUGFyZW50LCBDb21wb25lbnRDb25zdGFudHMsIFB1dExpc3RUYWdQYXJlbnQgeworCisgICAgLyoqIAorICAgICAqIFRoZSByb2xlIGRlbGltaXRlci4gCisgICAgICogQGRlcHJlY2F0ZWQgVGhpcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjIuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUk9MRV9ERUxJTUlURVIgPSAiLCI7CisKKyAgICAvKiogCisgICAgICogQ29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyhJbnNlcnRUYWcuY2xhc3MpOworCisgICAgLyogSlNQIFRhZyBhdHRyaWJ1dGVzICovCisKKyAgICAvKiogCisgICAgICogRmx1c2ggYXR0cmlidXRlIHZhbHVlLiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBmbHVzaCA9IHRydWU7CisKKyAgICAvKiogCisgICAgICogTmFtZSB0byBpbnNlcnQuIAorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgbmFtZSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBOYW1lIG9mIGF0dHJpYnV0ZSBmcm9tIHdoaWNoIHRvIHJlYWQgcGFnZSBuYW1lIHRvIGluY2x1ZGUuIAorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgYXR0cmlidXRlID0gbnVsbDsKKworICAgIC8qKiAKKyAgICAgKiBOYW1lIG9mIGJlYW4gdXNlZCBhcyBlbnRpdHkgdG8gaW5jbHVkZS4gCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBiZWFuTmFtZSA9IG51bGw7CisKKyAgICAvKiogCisgICAgICogTmFtZSBvZiBiZWFuIHByb3BlcnR5LCBpZiBhbnkuIAorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgYmVhblByb3BlcnR5ID0gbnVsbDsKKworICAgIC8qKiAKKyAgICAgKiBTY29wZSBvZiBiZWFuLCBpZiBhbnkuIAorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgYmVhblNjb3BlID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEFyZSBlcnJvcnMgaWdub3JlZC4gVGhpcyBpcyB0aGUgcHJvcGVydHkgZm9yIGF0dHJpYnV0ZSAnaWdub3JlJy4KKyAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGZhbHNlLCB3aGljaCB0aHJvdyBhbiBleGNlcHRpb24uCisgICAgICogT25seSAnYXR0cmlidXRlIG5vdCBmb3VuZCcgZXJyb3JzIGFyZSBpZ25vcmVkLgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIGlzRXJyb3JJZ25vcmVkID0gZmFsc2U7CisKKyAgICAvKioKKyAgICAgKiBOYW1lIG9mIGNvbXBvbmVudCBpbnN0YW5jZSB0byBpbmNsdWRlLgorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgZGVmaW5pdGlvbk5hbWUgPSBudWxsOworCisgICAgLyogSW50ZXJuYWwgcHJvcGVydGllcyAqLworICAgIC8qKgorICAgICAqIERvZXMgdGhlIGVuZCB0YWcgbmVlZCB0byBiZSBwcm9jZXNzZWQuCisgICAgICogRGVmYXVsdCB2YWx1ZSBpcyB0cnVlLiBCb29sZWFuIHNldCBpbiBjYXNlIG9mIGlnbm9yZWQgZXJyb3JzLgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIHByb2Nlc3NFbmRUYWcgPSB0cnVlOworCisgICAgLyoqIAorICAgICAqIEN1cnJlbnQgY29tcG9uZW50IGNvbnRleHQuIAorICAgICAqLworICAgIHByb3RlY3RlZCBDb21wb25lbnRDb250ZXh0IGNhY2hlZEN1cnJlbnRDb250ZXh0OworCisgICAgLyoqIAorICAgICAqIEZpbmFsIGhhbmRsZXIgb2YgdGFnIG1ldGhvZHMuIAorICAgICAqLworICAgIHByb3RlY3RlZCBUYWdIYW5kbGVyIHRhZ0hhbmRsZXIgPSBudWxsOworCisgICAgLyoqIAorICAgICAqIFRyaWNrIHRvIGFsbG93cyBpbm5lciBjbGFzc2VzIHRvIGFjY2VzcyBwYWdlQ29udGV4dC4gCisgICAgICovCisgICAgcHJvdGVjdGVkIFBhZ2VDb250ZXh0IHBhZ2VDb250ZXh0ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFJlc2V0IG1lbWJlciB2YWx1ZXMgZm9yIHJldXNlLiBUaGlzIG1ldGhvZCBjYWxscyBzdXBlci5yZWxlYXNlKCksCisgICAgICogd2hpY2ggaW52b2tlcyBUYWdTdXBwb3J0LnJlbGVhc2UoKSwgd2hpY2ggdHlwaWNhbGx5IGRvZXMgbm90aGluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZWxlYXNlKCkgeworCisgICAgICAgIHN1cGVyLnJlbGVhc2UoKTsKKyAgICAgICAgYXR0cmlidXRlID0gbnVsbDsKKyAgICAgICAgYmVhbk5hbWUgPSBudWxsOworICAgICAgICBiZWFuUHJvcGVydHkgPSBudWxsOworICAgICAgICBiZWFuU2NvcGUgPSBudWxsOworCisgICAgICAgIGRlZmluaXRpb25OYW1lID0gbnVsbDsKKyAgICAgICAgZmx1c2ggPSB0cnVlOworICAgICAgICBuYW1lID0gbnVsbDsKKyAgICAgICAgcGFnZSA9IG51bGw7CisgICAgICAgIHJvbGUgPSBudWxsOworICAgICAgICBpc0Vycm9ySWdub3JlZCA9IGZhbHNlOworCisgICAgICAgIHJlbGVhc2VJbnRlcm5hbCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlc2V0IGludGVybmFsIG1lbWJlciB2YWx1ZXMgZm9yIHJldXNlLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIHJlbGVhc2VJbnRlcm5hbCgpIHsKKyAgICAgICAgY2FjaGVkQ3VycmVudENvbnRleHQgPSBudWxsOworICAgICAgICBwcm9jZXNzRW5kVGFnID0gdHJ1ZTsKKyAgICAgICAgLy8gcGFnZUNvbnRleHQgPSBudWxsOyAgLy8gb3Jpb24gZG9lc24ndCBzZXQgaXQgYmV0d2VlbiB0d28gdGFncworICAgICAgICB0YWdIYW5kbGVyID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGN1cnJlbnQgcGFnZSBjb250ZXh0LgorICAgICAqIENhbGxlZCBieSB0aGUgcGFnZSBpbXBsZW1lbnRhdGlvbiBwcmlvciB0byBkb1N0YXJ0VGFnKCkuCisgICAgICogPHA+CisgICAgICogTmVlZGVkIHRvIGFsbG93IGlubmVyIGNsYXNzZXMgdG8gYWNjZXNzIHBhZ2VDb250ZXh0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFBhZ2VDb250ZXh0KFBhZ2VDb250ZXh0IHBjKSB7CisgICAgICAgIHRoaXMucGFnZUNvbnRleHQgPSBwYzsKKyAgICAgICAgc3VwZXIuc2V0UGFnZUNvbnRleHQocGMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgcGFnZUNvbnRleHQgcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIFBhZ2VDb250ZXh0IGdldFBhZ2VDb250ZXh0KCkgeworICAgICAgICByZXR1cm4gcGFnZUNvbnRleHQ7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IG5hbWUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmFtZShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgdGhpcy5uYW1lID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IG5hbWUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgY29tcG9uZW50LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENvbXBvbmVudChTdHJpbmcgbmFtZSkgeworICAgICAgICB0aGlzLnBhZ2UgPSBuYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBkZWZpbml0aW9uLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldERlZmluaXRpb24oU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgdGhpcy5kZWZpbml0aW9uTmFtZSA9IG5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGRlZmluaXRpb24gbmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldERlZmluaXRpb25OYW1lKCkgeworICAgICAgICByZXR1cm4gZGVmaW5pdGlvbk5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGF0dHJpYnV0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRBdHRyaWJ1dGUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHRoaXMuYXR0cmlidXRlID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGJlYW4gbmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRCZWFuTmFtZShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgdGhpcy5iZWFuTmFtZSA9IHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBiZWFuIG5hbWUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRCZWFuTmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGJlYW5OYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBiZWFuIHByb3BlcnR5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEJlYW5Qcm9wZXJ0eShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgdGhpcy5iZWFuUHJvcGVydHkgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYmVhbiBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEJlYW5Qcm9wZXJ0eSgpIHsKKyAgICAgICAgcmV0dXJuIGJlYW5Qcm9wZXJ0eTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgYmVhbiBzY29wZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRCZWFuU2NvcGUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHRoaXMuYmVhblNjb3BlID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGJlYW4gc2NvcGUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRCZWFuU2NvcGUoKSB7CisgICAgICAgIHJldHVybiBiZWFuU2NvcGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGZsdXNoLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZsdXNoKGJvb2xlYW4gZmx1c2gpIHsKKyAgICAgICAgdGhpcy5mbHVzaCA9IGZsdXNoOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBmbHVzaC4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRGbHVzaCgpIHsKKyAgICAgICAgcmV0dXJuIGZsdXNoOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBmbHVzaC4KKyAgICAgKiBNZXRob2QgYWRkZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBKU1AxLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRGbHVzaChTdHJpbmcgZmx1c2gpIHsKKyAgICAgICAgdGhpcy5mbHVzaCA9IChCb29sZWFuLnZhbHVlT2YoZmx1c2gpLmJvb2xlYW5WYWx1ZSgpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgaWdub3JlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldElnbm9yZShib29sZWFuIGlnbm9yZSkgeworICAgICAgICB0aGlzLmlzRXJyb3JJZ25vcmVkID0gaWdub3JlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBpZ25vcmUuCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ2V0SWdub3JlKCkgeworICAgICAgICByZXR1cm4gaXNFcnJvcklnbm9yZWQ7CisgICAgfQorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgLyoqCisgICAgICogQWRkIGEgYm9keSBhdHRyaWJ1dGUuCisgICAgICogRXJhc2UgYW55IGF0dHJpYnV0ZSB3aXRoIHNhbWUgbmFtZSBwcmV2aW91c2x5IHNldC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwdXRBdHRyaWJ1dGUoU3RyaW5nIG5hbWUsIE9iamVjdCB2YWx1ZSkgeworICAgICAgICB0YWdIYW5kbGVyLnB1dEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvY2VzcyBuZXN0ZWQgJmxnO3B1dCZndDsgdGFnLgorICAgICAqIE1ldGhvZCBjYWxscyBieSBuZXN0ZWQgJmxnO3B1dCZndDsgdGFncy4KKyAgICAgKiBOZXN0ZWQgbGlzdCBpcyBhZGRlZCB0byBjdXJyZW50IGxpc3QuCisgICAgICogSWYgcm9sZSBpcyBkZWZpbmVkLCBpdCBpcyBjaGVja2VkIGltbWVkaWF0ZWx5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHByb2Nlc3NOZXN0ZWRUYWcoUHV0VGFnIG5lc3RlZFRhZykgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgIC8vIENoZWNrIHJvbGUKKyAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QgPSAoSHR0cFNlcnZsZXRSZXF1ZXN0KSBwYWdlQ29udGV4dC5nZXRSZXF1ZXN0KCk7CisgICAgICAgIFN0cmluZyByb2xlID0gbmVzdGVkVGFnLmdldFJvbGUoKTsKKyAgICAgICAgaWYgKHJvbGUgIT0gbnVsbCAmJiAhcmVxdWVzdC5pc1VzZXJJblJvbGUocm9sZSkpIHsKKyAgICAgICAgICAgIC8vIG5vdCBhbGxvd2VkIDogc2tpcCBhdHRyaWJ1dGUKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHB1dEF0dHJpYnV0ZShuZXN0ZWRUYWcuZ2V0TmFtZSgpLCBuZXN0ZWRUYWcuZ2V0UmVhbFZhbHVlKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFByb2Nlc3MgbmVzdGVkICZsZztwdXRMaXN0Jmd0OyB0YWcuCisgICAgICogTWV0aG9kIGNhbGxzIGJ5IG5lc3RlZCAmbGc7cHV0TGlzdCZndDsgdGFncy4KKyAgICAgKiBOZXN0ZWQgbGlzdCBpcyBhZGRlZCB0byBzdWItY29tcG9uZW50IGF0dHJpYnV0ZXMKKyAgICAgKiBJZiByb2xlIGlzIGRlZmluZWQsIGl0IGlzIGNoZWNrZWQgaW1tZWRpYXRlbHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcHJvY2Vzc05lc3RlZFRhZyhQdXRMaXN0VGFnIG5lc3RlZFRhZykgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgIC8vIENoZWNrIHJvbGUKKyAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QgPSAoSHR0cFNlcnZsZXRSZXF1ZXN0KSBwYWdlQ29udGV4dC5nZXRSZXF1ZXN0KCk7CisgICAgICAgIFN0cmluZyByb2xlID0gbmVzdGVkVGFnLmdldFJvbGUoKTsKKyAgICAgICAgaWYgKHJvbGUgIT0gbnVsbCAmJiAhcmVxdWVzdC5pc1VzZXJJblJvbGUocm9sZSkpIHsKKyAgICAgICAgICAgIC8vIG5vdCBhbGxvd2VkIDogc2tpcCBhdHRyaWJ1dGUKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIGlmIGEgbmFtZSBpcyBkZWZpbmVkCisgICAgICAgIGlmIChuZXN0ZWRUYWcuZ2V0TmFtZSgpID09IG51bGwpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBKc3BFeGNlcHRpb24oIkVycm9yIC0gUHV0TGlzdCA6IGF0dHJpYnV0ZSBuYW1lIGlzIG5vdCBkZWZpbmVkLiBJdCBpcyBtYW5kYXRvcnkgYXMgdGhlIGxpc3QgaXMgYWRkZWQgYXMgYXR0cmlidXRlIG9mICdpbnNlcnQnLiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gbm93IGFkZCBhdHRyaWJ1dGUgdG8gZW5jbG9zaW5nIHBhcmVudCAoaS5lLiA6IHRoaXMgb2JqZWN0KS4KKyAgICAgICAgcHV0QXR0cmlidXRlKG5lc3RlZFRhZy5nZXROYW1lKCksIG5lc3RlZFRhZy5nZXRMaXN0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIE1ldGhvZCBjYWxscyBieSBuZXN0ZWQgJmxnO3B1dExpc3QmZ3Q7IHRhZ3MuCisgICAgICogQSBuZXcgbGlzdCBpcyBhZGRlZCB0byBjdXJyZW50IGluc2VydCBvYmplY3QuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcHV0QXR0cmlidXRlKFB1dExpc3RUYWcgbmVzdGVkVGFnKSB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICAgICAgLy8gQ2hlY2sgcm9sZQorICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCA9IChIdHRwU2VydmxldFJlcXVlc3QpIHBhZ2VDb250ZXh0LmdldFJlcXVlc3QoKTsKKyAgICAgICAgU3RyaW5nIHJvbGUgPSBuZXN0ZWRUYWcuZ2V0Um9sZSgpOworICAgICAgICBpZiAocm9sZSAhPSBudWxsICYmICFyZXF1ZXN0LmlzVXNlckluUm9sZShyb2xlKSkgeworICAgICAgICAgICAgLy8gbm90IGFsbG93ZWQgOiBza2lwIGF0dHJpYnV0ZQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgcHV0QXR0cmlidXRlKG5lc3RlZFRhZy5nZXROYW1lKCksIG5lc3RlZFRhZy5nZXRMaXN0KCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBjdXJyZW50IGNvbXBvbmVudCBjb250ZXh0LgorICAgICAqLworICAgIHByaXZhdGUgQ29tcG9uZW50Q29udGV4dCBnZXRDdXJyZW50Q29udGV4dCgpIHsKKyAgICAgICAgaWYgKGNhY2hlZEN1cnJlbnRDb250ZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGNhY2hlZEN1cnJlbnRDb250ZXh0ID0KKyAgICAgICAgICAgICAgICAoQ29tcG9uZW50Q29udGV4dCkgcGFnZUNvbnRleHQuZ2V0QXR0cmlidXRlKAorICAgICAgICAgICAgICAgICAgICBDb21wb25lbnRDb25zdGFudHMuQ09NUE9ORU5UX0NPTlRFWFQsCisgICAgICAgICAgICAgICAgICAgIFBhZ2VDb250ZXh0LlJFUVVFU1RfU0NPUEUpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGNhY2hlZEN1cnJlbnRDb250ZXh0OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBpbnN0YW50aWF0ZWQgQ29udHJvbGxlci4KKyAgICAgKiBSZXR1cm4gY29udHJvbGxlciBkZW5vdGVkIGJ5IGNvbnRyb2xsZXJUeXBlLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiBjb250cm9sbGVyVHlwZQorICAgICAqIGlzIG51bGwuCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24gSWYgY29udHJvbGxlciBjYW4ndCBiZSBjcmVhdGVkLgorICAgICAqLworICAgIHByaXZhdGUgQ29udHJvbGxlciBnZXRDb250cm9sbGVyKCkgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgIGlmIChjb250cm9sbGVyVHlwZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICByZXR1cm4gQ29tcG9uZW50RGVmaW5pdGlvbi5jcmVhdGVDb250cm9sbGVyKAorICAgICAgICAgICAgICAgIGNvbnRyb2xsZXJOYW1lLAorICAgICAgICAgICAgICAgIGNvbnRyb2xsZXJUeXBlKTsKKworICAgICAgICB9IGNhdGNoIChJbnN0YW50aWF0aW9uRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSnNwRXhjZXB0aW9uKGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9jZXNzIHRoZSBzdGFydCB0YWcgYnkgY2hlY2tpbmcgdGFnJ3MgYXR0cmlidXRlcyBhbmQgY3JlYXRpbmcgYXBwcm9wcmlhdGUgaGFuZGxlci4KKyAgICAgKiBQb3NzaWJsZSBoYW5kbGVycyA6CisgICAgICogPHVsPgorICAgICAqIDxsaT4gVVJMCisgICAgICogPGxpPiBkZWZpbml0aW9uCisgICAgICogPGxpPiBkaXJlY3QgU3RyaW5nCisgICAgICogPC91bD4KKyAgICAgKiBIYW5kbGVycyBhbHNvIGNvbnRhaW4gc3ViLWNvbXBvbmVudCBjb250ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBpbnQgZG9TdGFydFRhZygpIHRocm93cyBKc3BFeGNlcHRpb24geworICAgICAgICAvLyBDaGVjayByb2xlIGltbWVkaWF0bHkgdG8gYXZvaWQgdXNlbGVzcyBzdHVmZi4KKyAgICAgICAgLy8gSW4gY2FzZSBvZiBpbnNlcnRpb24gb2YgYSAiZGVmaW5pdGlvbiIsIGRlZmluaXRpb24ncyByb2xlIHN0aWxsIGNoZWNrZWQgbGF0ZXIuCisgICAgICAgIC8vIFRoaXMgbGVhZCB0byBhIGRvdWJsZSBjaGVjayBvZiAicm9sZSIgOy0oCisgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0ID0gKEh0dHBTZXJ2bGV0UmVxdWVzdCkgcGFnZUNvbnRleHQuZ2V0UmVxdWVzdCgpOworICAgICAgICBpZiAocm9sZSAhPSBudWxsICYmICFyZXF1ZXN0LmlzVXNlckluUm9sZShyb2xlKSkgeworICAgICAgICAgICAgcHJvY2Vzc0VuZFRhZyA9IGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIFNLSVBfQk9EWTsKKyAgICAgICAgfQorCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0YWdIYW5kbGVyID0gY3JlYXRlVGFnSGFuZGxlcigpOworCisgICAgICAgIH0gY2F0Y2ggKEpzcEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICBpZiAoaXNFcnJvcklnbm9yZWQpIHsKKyAgICAgICAgICAgICAgICBwcm9jZXNzRW5kVGFnID0gZmFsc2U7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNLSVBfQk9EWTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGhyb3cgZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0YWdIYW5kbGVyLmRvU3RhcnRUYWcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9jZXNzIHRoZSBlbmQgdGFnIGJ5IGluY2x1ZGluZyB0aGUgdGVtcGxhdGUuCisgICAgICogU2ltcGx5IGNhbGwgdGhlIGhhbmRsZXIgZG9FbmRUYWcKKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGRvRW5kVGFnKCkgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgIGlmICghcHJvY2Vzc0VuZFRhZykgeworICAgICAgICAgICAgcmVsZWFzZUludGVybmFsKCk7CisgICAgICAgICAgICByZXR1cm4gRVZBTF9QQUdFOworICAgICAgICB9CisKKyAgICAgICAgaW50IHJlcyA9IHRhZ0hhbmRsZXIuZG9FbmRUYWcoKTsKKyAgICAgICAgLy8gUmVzZXQgcHJvcGVydGllcyB1c2VkIGJ5IG9iamVjdCwgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byByZXVzZSBvYmplY3QuCisgICAgICAgIHJlbGVhc2VJbnRlcm5hbCgpOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFByb2Nlc3MgdGFnIGF0dHJpYnV0ZSBhbmQgY3JlYXRlIGNvcnJlc3BvbmRpbmcgdGFnIGhhbmRsZXIuCisgICAgICovCisgICAgcHVibGljIFRhZ0hhbmRsZXIgY3JlYXRlVGFnSGFuZGxlcigpIHRocm93cyBKc3BFeGNlcHRpb24geworICAgICAgICAvLyBDaGVjayBlYWNoIHRhZyBhdHRyaWJ1dGUuCisgICAgICAgIC8vIHBhZ2UgVXJsIGF0dHJpYnV0ZSBtdXN0IGJlIHRoZSBsYXN0IGNoZWNrZWQgIGJlY2F1c2UgaXQgY2FuIGFwcGVhcnMgY29uY3VycmVudGx5CisgICAgICAgIC8vIHdpdGggb3RoZXJzIGF0dHJpYnV0ZXMuCisgICAgICAgIGlmIChkZWZpbml0aW9uTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc0RlZmluaXRpb25OYW1lKGRlZmluaXRpb25OYW1lKTsKKyAgICAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUgIT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NBdHRyaWJ1dGUoYXR0cmlidXRlKTsKKyAgICAgICAgfSBlbHNlIGlmIChiZWFuTmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc0JlYW4oYmVhbk5hbWUsIGJlYW5Qcm9wZXJ0eSwgYmVhblNjb3BlKTsKKyAgICAgICAgfSBlbHNlIGlmIChuYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBwcm9jZXNzTmFtZShuYW1lKTsKKyAgICAgICAgfSBlbHNlIGlmIChwYWdlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBwcm9jZXNzVXJsKHBhZ2UpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbigiRXJyb3IgLSBUYWcgSW5zZXJ0IDogQXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlIG11c3QgYmUgZGVmaW5lZCA6IHRlbXBsYXRlfHBhZ2V8YXR0cmlidXRlfGRlZmluaXRpb258bmFtZXxiZWFuTmFtZS4gQ2hlY2sgdGFnIHN5bnRheCIpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvY2VzcyBhbiBvYmplY3QgcmV0cmlldmVkIGFzIGEgYmVhbiBvciBhdHRyaWJ1dGUuCisgICAgICogT2JqZWN0IGNhbiBiZSBhIHR5cGVkIGF0dHJpYnV0ZSwgYSBTdHJpbmcsIG9yIGFueXRoaW5nIGVsc2UuCisgICAgICogSWYgdHlwZWQgYXR0cmlidXRlLCB1c2UgYXNzb2NpYXRlZCB0eXBlLgorICAgICAqIE90aGVyd2lzZSwgYXBwbHkgdG9TdHJpbmcoKSBvbiBvYmplY3QsIGFuZCB1c2UgcmV0dXJuZWQgc3RyaW5nIGFzIGEgbmFtZS4KKyAgICAgKiBAdGhyb3dzIEpzcEV4Y2VwdGlvbiAtIFRocm93cyBieSB1bmRlcmx5aW5nIG5lc3RlZCBjYWxsIHRvIAorICAgICAqIHByb2Nlc3NEZWZpbml0aW9uTmFtZSgpCisgICAgICovCisgICAgcHVibGljIFRhZ0hhbmRsZXIgcHJvY2Vzc09iamVjdFZhbHVlKE9iamVjdCB2YWx1ZSkgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgIC8vIEZpcnN0LCBjaGVjayBpZiB2YWx1ZSBpcyBvbmUgb2YgdGhlIFR5cGVkIEF0dHJpYnV0ZQorICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBdHRyaWJ1dGVEZWZpbml0aW9uKSB7CisgICAgICAgICAgICAvLyBXZSBoYXZlIGEgdHlwZSA9PiByZXR1cm4gYXBwcm9wcmlhdGUgSW5jbHVkZVR5cGUKKyAgICAgICAgICAgIHJldHVybiBwcm9jZXNzVHlwZWRBdHRyaWJ1dGUoKEF0dHJpYnV0ZURlZmluaXRpb24pIHZhbHVlKTsKKworICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgQ29tcG9uZW50RGVmaW5pdGlvbikgeworICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NEZWZpbml0aW9uKChDb21wb25lbnREZWZpbml0aW9uKSB2YWx1ZSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBWYWx1ZSBtdXN0IGRlbm90ZSBhIHZhbGlkIFN0cmluZworICAgICAgICByZXR1cm4gcHJvY2Vzc0FzRGVmaW5pdGlvbk9yVVJMKHZhbHVlLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFByb2Nlc3MgbmFtZS4KKyAgICAgKiBTZWFyY2ggaW4gZm9sbG93aW5nIG9yZGVyIDoKKyAgICAgKiA8dWw+CisgICAgICogPGxpPkNvbXBvbmVudCBjb250ZXh0IC0gIGlmIGZvdW5kLCBwcm9jZXNzIGl0IGFzIHZhbHVlLjwvbGk+CisgICAgICogPGxpPmRlZmluaXRpb25zIGZhY3Rvcnk8L2xpPgorICAgICAqIDxsaT5VUkw8L2xpPgorICAgICAqIDxsaT48L2xpPgorICAgICAqIDwvdWw+CisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFwcHJvcHJpYXRlIHRhZyBoYW5kbGVyLgorICAgICAqIEB0aHJvd3MgSnNwRXhjZXB0aW9uIC0gVGhyb3dzIGJ5IHVuZGVybHlpbmcgbmVzdGVkIGNhbGwgdG8gCisgICAgICogcHJvY2Vzc0RlZmluaXRpb25OYW1lKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgVGFnSGFuZGxlciBwcm9jZXNzTmFtZShTdHJpbmcgbmFtZSkgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgIE9iamVjdCBhdHRyVmFsdWUgPSBnZXRDdXJyZW50Q29udGV4dCgpLmdldEF0dHJpYnV0ZShuYW1lKTsKKworICAgICAgICBpZiAoYXR0clZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBwcm9jZXNzT2JqZWN0VmFsdWUoYXR0clZhbHVlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwcm9jZXNzQXNEZWZpbml0aW9uT3JVUkwobmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvY2VzcyB0aGUgdXJsLgorICAgICAqIEB0aHJvd3MgSnNwRXhjZXB0aW9uIElmIGZhaWxlZCB0byBjcmVhdGUgY29udHJvbGxlcgorICAgICAqLworICAgIHB1YmxpYyBUYWdIYW5kbGVyIHByb2Nlc3NVcmwoU3RyaW5nIHVybCkgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiBuZXcgSW5zZXJ0SGFuZGxlcih1cmwsIHJvbGUsIGdldENvbnRyb2xsZXIoKSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvY2VzcyB0YWcgYXR0cmlidXRlICJkZWZpbml0aW9uIi4KKyAgICAgKiBGaXJzdCwgc2VhcmNoIGRlZmluaXRpb24gaW4gdGhlIGZhY3RvcnksIHRoZW4gY3JlYXRlIGhhbmRsZXIgZnJvbSB0aGlzIGRlZmluaXRpb24uCisgICAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgZGVmaW5pdGlvbi4KKyAgICAgKiBAcmV0dXJuIEFwcHJvcHJpYXRlIFRhZ0hhbmRsZXIuCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24tIE5vU3VjaERlZmluaXRpb25FeGNlcHRpb24gTm8gRGVmaW5pdGlvbiAgZm91bmQgZm9yIG5hbWUuCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24tIEZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbiBDYW4ndCBmaW5kIERlZmluaXRpb25zIGZhY3RvcnkuCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24tIERlZmluZWRDb21wb25lbnRGYWN0b3J5RXhjZXB0aW9uIEdlbmVyYWwgZXJyb3IgaW4gZmFjdG9yeS4KKyAgICAgKiBAdGhyb3dzIEpzcEV4Y2VwdGlvbiBJbnN0YW50aWF0aW9uRXhjZXB0aW9uIENhbid0IGNyZWF0ZSByZXF1ZXN0ZWQgY29udHJvbGxlcgorICAgICAqLworICAgIHByb3RlY3RlZCBUYWdIYW5kbGVyIHByb2Nlc3NEZWZpbml0aW9uTmFtZShTdHJpbmcgbmFtZSkgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENvbXBvbmVudERlZmluaXRpb24gZGVmaW5pdGlvbiA9CisgICAgICAgICAgICAgICAgVGlsZXNVdGlsLmdldERlZmluaXRpb24oCisgICAgICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgICAgIChIdHRwU2VydmxldFJlcXVlc3QpIHBhZ2VDb250ZXh0LmdldFJlcXVlc3QoKSwKKyAgICAgICAgICAgICAgICAgICAgcGFnZUNvbnRleHQuZ2V0U2VydmxldENvbnRleHQoKSk7CisKKyAgICAgICAgICAgIGlmIChkZWZpbml0aW9uID09IG51bGwpIHsgLy8gaXMgaXQgcG9zc2libGUgPworICAgICAgICAgICAgICAgIHRocm93IG5ldyBOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBwcm9jZXNzRGVmaW5pdGlvbihkZWZpbml0aW9uKTsKKworICAgICAgICB9IGNhdGNoIChOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSnNwRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJFcnJvciAtICBUYWcgSW5zZXJ0IDogQ2FuJ3QgZ2V0IGRlZmluaXRpb24gJyIKKyAgICAgICAgICAgICAgICAgICAgKyBkZWZpbml0aW9uTmFtZQorICAgICAgICAgICAgICAgICAgICArICInLiBDaGVjayBpZiB0aGlzIG5hbWUgZXhpc3QgaW4gZGVmaW5pdGlvbnMgZmFjdG9yeS4iKTsKKworICAgICAgICB9IGNhdGNoIChGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24gZXgpIHsKKwkJCQlsb2cuaW5mbygiRkFDVE9SWSBOT1QgRk9VTkQiKTsKKwkJCQlTdHJpbmcgbXNnID0gKFN0cmluZylwYWdlQ29udGV4dC5nZXRTZXJ2bGV0Q29udGV4dCgpCisJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldEF0dHJpYnV0ZShHbG9iYWxzLlRJTEVTX0lOSVRfRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBKc3BFeGNlcHRpb24obXNnKTsKKworICAgICAgICB9IGNhdGNoIChEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gZXgpIHsKKwkJCQlsb2cuaW5mbygiREVGSU5JVElPTlMgRkFDVE9SWSBFWENFUFRJT04iKTsKKyAgICAgICAgICAgIGlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkgeworICAgICAgICAgICAgICAgIGV4LnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBTYXZlIGV4Y2VwdGlvbiB0byBiZSBhYmxlIHRvIHNob3cgaXQgbGF0ZXIKKyAgICAgICAgICAgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZSgKKyAgICAgICAgICAgICAgICBHbG9iYWxzLkVYQ0VQVElPTl9LRVksCisgICAgICAgICAgICAgICAgZXgsCisgICAgICAgICAgICAgICAgUGFnZUNvbnRleHQuUkVRVUVTVF9TQ09QRSk7CisgICAgICAgICAgICB0aHJvdyBuZXcgSnNwRXhjZXB0aW9uKGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFbmQgb2YgUHJvY2VzcyB0YWcgYXR0cmlidXRlICJkZWZpbml0aW9uIi4KKyAgICAgKiBPdmVybG9hZCBkZWZpbml0aW9uIHdpdGggdGFnIGF0dHJpYnV0ZXMgInRlbXBsYXRlIiBhbmQgInJvbGUiLgorICAgICAqIFRoZW4sIGNyZWF0ZSBhcHByb3ByaWF0ZSB0YWcgaGFuZGxlci4KKyAgICAgKiBAcGFyYW0gZGVmaW5pdGlvbiBEZWZpbml0aW9uIHRvIHByb2Nlc3MuCisgICAgICogQHJldHVybiBBcHByb3ByaWF0ZSBUYWdIYW5kbGVyLgorICAgICAqIEB0aHJvd3MgSnNwRXhjZXB0aW9uIEluc3RhbnRpYXRpb25FeGNlcHRpb24gQ2FuJ3QgY3JlYXRlIHJlcXVlc3RlZCBjb250cm9sbGVyCisgICAgICovCisgICAgcHJvdGVjdGVkIFRhZ0hhbmRsZXIgcHJvY2Vzc0RlZmluaXRpb24oQ29tcG9uZW50RGVmaW5pdGlvbiBkZWZpbml0aW9uKQorICAgICAgICB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICAgICAgLy8gRGVjbGFyZSBsb2NhbCB2YXJpYWJsZSBpbiBvcmRlciB0byBub3QgY2hhbmdlIFRhZyBhdHRyaWJ1dGUgdmFsdWVzLgorICAgICAgICBTdHJpbmcgcm9sZSA9IHRoaXMucm9sZTsKKyAgICAgICAgU3RyaW5nIHBhZ2UgPSB0aGlzLnBhZ2U7CisgICAgICAgIENvbnRyb2xsZXIgY29udHJvbGxlciA9IG51bGw7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGNvbnRyb2xsZXIgPSBkZWZpbml0aW9uLmdldE9yQ3JlYXRlQ29udHJvbGxlcigpOworCisgICAgICAgICAgICAvLyBPdmVybG9hZCBkZWZpbml0aW9uIHdpdGggdGFnJ3MgdGVtcGxhdGUgYW5kIHJvbGUuCisgICAgICAgICAgICBpZiAocm9sZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcm9sZSA9IGRlZmluaXRpb24uZ2V0Um9sZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAocGFnZSA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgcGFnZSA9IGRlZmluaXRpb24uZ2V0VGVtcGxhdGUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNvbnRyb2xsZXJOYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBjb250cm9sbGVyID0KKyAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50RGVmaW5pdGlvbi5jcmVhdGVDb250cm9sbGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlck5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyVHlwZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIENhbiBjaGVjayBpZiBwYWdlIGlzIHNldAorICAgICAgICAgICAgcmV0dXJuIG5ldyBJbnNlcnRIYW5kbGVyKAorICAgICAgICAgICAgICAgIGRlZmluaXRpb24uZ2V0QXR0cmlidXRlcygpLAorICAgICAgICAgICAgICAgIHBhZ2UsCisgICAgICAgICAgICAgICAgcm9sZSwKKyAgICAgICAgICAgICAgICBjb250cm9sbGVyKTsKKworICAgICAgICB9IGNhdGNoIChJbnN0YW50aWF0aW9uRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSnNwRXhjZXB0aW9uKGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9jZXNzIGEgYmVhbi4KKyAgICAgKiBHZXQgYmVhbiB2YWx1ZSwgZXZlbnR1YWxseSB1c2luZyBwcm9wZXJ0eSBhbmQgc2NvcGUuIEZvdW5kIHZhbHVlIGlzIHByb2Nlc3MgYnkgcHJvY2Vzc09iamVjdFZhbHVlKCkuCisgICAgICogQHBhcmFtIGJlYW5OYW1lIE5hbWUgb2YgdGhlIGJlYW4KKyAgICAgKiBAcGFyYW0gYmVhblByb3BlcnR5IFByb3BlcnR5IGluIHRoZSBiZWFuLCBvciBudWxsLgorICAgICAqIEBwYXJhbSBiZWFuU2NvcGUgYmVhbiBzY29wZSwgb3IgbnVsbC4KKyAgICAgKiBAcmV0dXJuIEFwcHJvcHJpYXRlIFRhZ0hhbmRsZXIuCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24gLSBOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uIE5vIHZhbHVlIGFzc29jaWF0ZWQgdG8gYmVhbi4KKyAgICAgKiBAdGhyb3dzIEpzcEV4Y2VwdGlvbiBhbiBlcnJvciBvY2N1ciB3aGlsZSByZWFkaW5nIGJlYW4sIG9yIG5vIGRlZmluaXRpb24gZm91bmQuCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24gLSBUaHJvd3MgYnkgdW5kZXJseWluZyBuZXN0ZWQgY2FsbCB0byBwcm9jZXNzRGVmaW5pdGlvbk5hbWUoKQorICAgICAqLworICAgIHByb3RlY3RlZCBUYWdIYW5kbGVyIHByb2Nlc3NCZWFuKAorICAgICAgICBTdHJpbmcgYmVhbk5hbWUsCisgICAgICAgIFN0cmluZyBiZWFuUHJvcGVydHksCisgICAgICAgIFN0cmluZyBiZWFuU2NvcGUpCisgICAgICAgIHRocm93cyBKc3BFeGNlcHRpb24geworCisgICAgICAgIE9iamVjdCBiZWFuVmFsdWUgPQorICAgICAgICAgICAgVGFnVXRpbHMuZ2V0UmVhbFZhbHVlRnJvbUJlYW4oCisgICAgICAgICAgICAgICAgYmVhbk5hbWUsCisgICAgICAgICAgICAgICAgYmVhblByb3BlcnR5LAorICAgICAgICAgICAgICAgIGJlYW5TY29wZSwKKyAgICAgICAgICAgICAgICBwYWdlQ29udGV4dCk7CisKKyAgICAgICAgaWYgKGJlYW5WYWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSnNwRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJFcnJvciAtIFRhZyBJbnNlcnQgOiBObyB2YWx1ZSBkZWZpbmVkIGZvciBiZWFuICciCisgICAgICAgICAgICAgICAgICAgICsgYmVhbk5hbWUKKyAgICAgICAgICAgICAgICAgICAgKyAiJyB3aXRoIHByb3BlcnR5ICciCisgICAgICAgICAgICAgICAgICAgICsgYmVhblByb3BlcnR5CisgICAgICAgICAgICAgICAgICAgICsgIicgaW4gc2NvcGUgJyIKKyAgICAgICAgICAgICAgICAgICAgKyBiZWFuU2NvcGUKKyAgICAgICAgICAgICAgICAgICAgKyAiJy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwcm9jZXNzT2JqZWN0VmFsdWUoYmVhblZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9jZXNzIHRhZyBhdHRyaWJ1dGUgImF0dHJpYnV0ZSIuCisgICAgICogR2V0IHZhbHVlIGZyb20gY29tcG9uZW50IGF0dHJpYnV0ZS4KKyAgICAgKiBGb3VuZCB2YWx1ZSBpcyBwcm9jZXNzIGJ5IHByb2Nlc3NPYmplY3RWYWx1ZSgpLgorICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZS4KKyAgICAgKiBAcmV0dXJuIEFwcHJvcHJpYXRlIFRhZ0hhbmRsZXIuCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24gLSBOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uIE5vIERlZmluaXRpb24gIGZvdW5kIGZvciBuYW1lLgorICAgICAqIEB0aHJvd3MgSnNwRXhjZXB0aW9uIC0gVGhyb3dzIGJ5IHVuZGVybHlpbmcgbmVzdGVkIGNhbGwgdG8gcHJvY2Vzc0RlZmluaXRpb25OYW1lKCkKKyAgICAgKi8KKyAgICBwdWJsaWMgVGFnSGFuZGxlciBwcm9jZXNzQXR0cmlidXRlKFN0cmluZyBuYW1lKSB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICAgICAgT2JqZWN0IGF0dHJWYWx1ZSA9IGdldEN1cnJlbnRDb250ZXh0KCkuZ2V0QXR0cmlidXRlKG5hbWUpOworCisgICAgICAgIGlmIChhdHRyVmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiRXJyb3IgLSBUYWcgSW5zZXJ0IDogTm8gdmFsdWUgZm91bmQgZm9yIGF0dHJpYnV0ZSAnIiArIG5hbWUgKyAiJy4iKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwcm9jZXNzT2JqZWN0VmFsdWUoYXR0clZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBUcnkgdG8gcHJvY2VzcyBuYW1lIGFzIGEgZGVmaW5pdGlvbiwgb3IgYXMgYW4gVVJMIGlmIG5vdCBmb3VuZC4KKyAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIHRvIHByb2Nlc3MuCisgICAgICogQHJldHVybiBhcHByb3ByaWF0ZSBUYWdIYW5kbGVyCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24gSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiBDYW4ndCBjcmVhdGUgcmVxdWVzdGVkIGNvbnRyb2xsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgVGFnSGFuZGxlciBwcm9jZXNzQXNEZWZpbml0aW9uT3JVUkwoU3RyaW5nIG5hbWUpIHRocm93cyBKc3BFeGNlcHRpb24geworICAgICAgICB0cnkgeworICAgICAgICAgICAgQ29tcG9uZW50RGVmaW5pdGlvbiBkZWZpbml0aW9uID0KKyAgICAgICAgICAgICAgICBUaWxlc1V0aWwuZ2V0RGVmaW5pdGlvbigKKyAgICAgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgcGFnZUNvbnRleHQuZ2V0UmVxdWVzdCgpLAorICAgICAgICAgICAgICAgICAgICBwYWdlQ29udGV4dC5nZXRTZXJ2bGV0Q29udGV4dCgpKTsKKworICAgICAgICAgICAgaWYgKGRlZmluaXRpb24gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHJldHVybiBwcm9jZXNzRGVmaW5pdGlvbihkZWZpbml0aW9uKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9IGNhdGNoIChEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIC8vIHNpbGVudGx5IGZhaWxlZCwgYmVjYXVzZSB3ZSBjYW4gY2hvb3NlIHRvIG5vdCBkZWZpbmUgYSBmYWN0b3J5LgorICAgICAgICB9CisKKyAgICAgICAgLy8gbm8gZGVmaW5pdGlvbiBmb3VuZCwgdHJ5IGFzIHVybAorICAgICAgICByZXR1cm4gcHJvY2Vzc1VybChuYW1lKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQcm9jZXNzIHR5cGVkIGF0dHJpYnV0ZSBhY2NvcmRpbmcgdG8gaXRzIHR5cGUuCisgICAgICogQHBhcmFtIHZhbHVlIFR5cGVkIGF0dHJpYnV0ZSB0byBwcm9jZXNzLgorICAgICAqIEByZXR1cm4gYXBwcm9wcmlhdGUgVGFnSGFuZGxlci4KKyAgICAgKiBAdGhyb3dzIEpzcEV4Y2VwdGlvbiAtIFRocm93cyBieSB1bmRlcmx5aW5nIG5lc3RlZCBjYWxsIHRvIHByb2Nlc3NEZWZpbml0aW9uTmFtZSgpCisgICAgICovCisgICAgcHVibGljIFRhZ0hhbmRsZXIgcHJvY2Vzc1R5cGVkQXR0cmlidXRlKEF0dHJpYnV0ZURlZmluaXRpb24gdmFsdWUpCisgICAgICAgIHRocm93cyBKc3BFeGNlcHRpb24geworICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEaXJlY3RTdHJpbmdBdHRyaWJ1dGUpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgRGlyZWN0U3RyaW5nSGFuZGxlcigoU3RyaW5nKSB2YWx1ZS5nZXRWYWx1ZSgpKTsKKworICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGVmaW5pdGlvbkF0dHJpYnV0ZSkgeworICAgICAgICAgICAgcmV0dXJuIHByb2Nlc3NEZWZpbml0aW9uKChDb21wb25lbnREZWZpbml0aW9uKSB2YWx1ZS5nZXRWYWx1ZSgpKTsKKworICAgICAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGUpIHsKKyAgICAgICAgICAgIHJldHVybiBwcm9jZXNzRGVmaW5pdGlvbk5hbWUoKFN0cmluZykgdmFsdWUuZ2V0VmFsdWUoKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEluc2VydEhhbmRsZXIoKFN0cmluZykgdmFsdWUuZ2V0VmFsdWUoKSwgcm9sZSwgZ2V0Q29udHJvbGxlcigpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEbyBhbiBpbmNsdWRlIG9mIHNwZWNpZmllZCBwYWdlLgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgaW50ZXJuYWxseSB0byBkbyBhbGwgaW5jbHVkZXMgZnJvbSB0aGlzIGNsYXNzLiBJdCBkZWxlZ2F0ZXMKKyAgICAgKiB0aGUgaW5jbHVkZSBjYWxsIHRvIHRoZSBUaWxlc1V0aWwuZG9JbmNsdWRlKCkuCisgICAgICogQHBhcmFtIHBhZ2UgVGhlIHBhZ2UgdGhhdCB3aWxsIGJlIGluY2x1ZGVkCisgICAgICogQHRocm93cyBTZXJ2bGV0RXhjZXB0aW9uIC0gVGhyb3duIGJ5IGNhbGwgdG8gcGFnZUNvbnRleHQuaW5jbHVkZSgpCisgICAgICogQHRocm93cyBJT0V4Y2VwdGlvbiAtIFRocm93biBieSBjYWxsIHRvIHBhZ2VDb250ZXh0LmluY2x1ZGUoKQorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGRvSW5jbHVkZShTdHJpbmcgcGFnZSkgdGhyb3dzIFNlcnZsZXRFeGNlcHRpb24sIElPRXhjZXB0aW9uIHsKKyAgICAgICAgVGlsZXNVdGlsLmRvSW5jbHVkZShwYWdlLCBwYWdlQ29udGV4dCk7CisgICAgfQorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIC8qKgorICAgICAqIElubmVyIEludGVyZmFjZS4KKyAgICAgKiBTdWIgaGFuZGxlciBmb3IgdGFnLgorICAgICAqLworICAgIHByb3RlY3RlZCBpbnRlcmZhY2UgVGFnSGFuZGxlciB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBDcmVhdGUgQ29tcG9uZW50Q29udGV4dCBmb3IgdHlwZSBkZXBpY3RlZCBieSBpbXBsZW1lbnRhdGlvbiBjbGFzcy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZG9TdGFydFRhZygpIHRocm93cyBKc3BFeGNlcHRpb247CisgICAgICAgIC8qKgorICAgICAgICAgKiBEbyBpbmNsdWRlIGZvciB0eXBlIGRlcGljdGVkIGJ5IGltcGxlbWVudGF0aW9uIGNsYXNzLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIGludCBkb0VuZFRhZygpIHRocm93cyBKc3BFeGNlcHRpb247CisgICAgICAgIC8qKgorICAgICAgICAgKiBBZGQgYSBjb21wb25lbnQgcGFyYW1ldGVyIChhdHRyaWJ1dGUpIHRvIHN1YkNvbnRleHQuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgdm9pZCBwdXRBdHRyaWJ1dGUoU3RyaW5nIG5hbWUsIE9iamVjdCB2YWx1ZSk7CisgICAgfSAvLyBlbmQgaW5uZXIgaW50ZXJmYWNlCisKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisgICAgLyoqCisgICAgICogUmVhbCBoYW5kbGVyLCBhZnRlciBhdHRyaWJ1dGUgcmVzb2x1dGlvbi4KKyAgICAgKiBIYW5kbGUgaW5jbHVkZSBzdWItY29tcG9uZW50LgorICAgICAqLworICAgIHByb3RlY3RlZCBjbGFzcyBJbnNlcnRIYW5kbGVyIGltcGxlbWVudHMgVGFnSGFuZGxlciB7CisgICAgICAgIHByb3RlY3RlZCBTdHJpbmcgcGFnZTsKKyAgICAgICAgcHJvdGVjdGVkIENvbXBvbmVudENvbnRleHQgY3VycmVudENvbnRleHQ7CisgICAgICAgIHByb3RlY3RlZCBDb21wb25lbnRDb250ZXh0IHN1YkNvbXBDb250ZXh0OworICAgICAgICBwcm90ZWN0ZWQgU3RyaW5nIHJvbGU7CisgICAgICAgIHByb3RlY3RlZCBDb250cm9sbGVyIGNvbnRyb2xsZXI7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdG9yLgorICAgICAgICAgKiBDcmVhdGUgaW5zZXJ0IGhhbmRsZXIgdXNpbmcgQ29tcG9uZW50IGRlZmluaXRpb24uCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgSW5zZXJ0SGFuZGxlcigKKyAgICAgICAgICAgIE1hcCBhdHRyaWJ1dGVzLAorICAgICAgICAgICAgU3RyaW5nIHBhZ2UsCisgICAgICAgICAgICBTdHJpbmcgcm9sZSwKKyAgICAgICAgICAgIENvbnRyb2xsZXIgY29udHJvbGxlcikgeworCisgICAgICAgICAgICB0aGlzLnBhZ2UgPSBwYWdlOworICAgICAgICAgICAgdGhpcy5yb2xlID0gcm9sZTsKKyAgICAgICAgICAgIHRoaXMuY29udHJvbGxlciA9IGNvbnRyb2xsZXI7CisgICAgICAgICAgICBzdWJDb21wQ29udGV4dCA9IG5ldyBDb21wb25lbnRDb250ZXh0KGF0dHJpYnV0ZXMpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdG9yLgorICAgICAgICAgKiBDcmVhdGUgaW5zZXJ0IGhhbmRsZXIgdG8gaW5zZXJ0IHBhZ2UgYXQgc3BlY2lmaWVkIGxvY2F0aW9uLgorICAgICAgICAgKi8KKyAgICAgICAgcHVibGljIEluc2VydEhhbmRsZXIoU3RyaW5nIHBhZ2UsIFN0cmluZyByb2xlLCBDb250cm9sbGVyIGNvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIHRoaXMucGFnZSA9IHBhZ2U7CisgICAgICAgICAgICB0aGlzLnJvbGUgPSByb2xlOworICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjsKKyAgICAgICAgICAgIHN1YkNvbXBDb250ZXh0ID0gbmV3IENvbXBvbmVudENvbnRleHQoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBDcmVhdGUgYSBuZXcgZW1wdHkgY29udGV4dC4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZG9TdGFydFRhZygpIHRocm93cyBKc3BFeGNlcHRpb24geworICAgICAgICAgICAgLy8gQ2hlY2sgcm9sZQorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QgPQorICAgICAgICAgICAgICAgIChIdHRwU2VydmxldFJlcXVlc3QpIHBhZ2VDb250ZXh0LmdldFJlcXVlc3QoKTsKKworICAgICAgICAgICAgaWYgKHJvbGUgIT0gbnVsbCAmJiAhcmVxdWVzdC5pc1VzZXJJblJvbGUocm9sZSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gU0tJUF9CT0RZOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBzYXZlIGN1cnJlbnQgY29udGV4dAorICAgICAgICAgICAgdGhpcy5jdXJyZW50Q29udGV4dCA9IGdldEN1cnJlbnRDb250ZXh0KCk7CisgICAgICAgICAgICByZXR1cm4gRVZBTF9CT0RZX0lOQ0xVREU7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWRkIGF0dHJpYnV0ZSB0byBzdWIgY29udGV4dC4KKyAgICAgICAgICogRG8gbm90aGluZy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHB1dEF0dHJpYnV0ZShTdHJpbmcgbmFtZSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgICAgICBzdWJDb21wQ29udGV4dC5wdXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEluY2x1ZGUgcmVxdWVzdGVkIHBhZ2UuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGRvRW5kVGFnKCkgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgICAgICAvLyBDaGVjayByb2xlCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCA9CisgICAgICAgICAgICAgICAgKEh0dHBTZXJ2bGV0UmVxdWVzdCkgcGFnZUNvbnRleHQuZ2V0UmVxdWVzdCgpOworCisgICAgICAgICAgICBpZiAocm9sZSAhPSBudWxsICYmICFyZXF1ZXN0LmlzVXNlckluUm9sZShyb2xlKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBFVkFMX1BBR0U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKGxvZy5pc0RlYnVnRW5hYmxlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygiaW5zZXJ0IHBhZ2U9JyIgKyBwYWdlICsgIicuIik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gc2V0IG5ldyBjb250ZXh0IGZvciBpbmNsdWRlZCBjb21wb25lbnQuCisgICAgICAgICAgICAgICAgcGFnZUNvbnRleHQuc2V0QXR0cmlidXRlKAorICAgICAgICAgICAgICAgICAgICBDb21wb25lbnRDb25zdGFudHMuQ09NUE9ORU5UX0NPTlRFWFQsCisgICAgICAgICAgICAgICAgICAgIHN1YkNvbXBDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICBQYWdlQ29udGV4dC5SRVFVRVNUX1NDT1BFKTsKKworICAgICAgICAgICAgICAgIC8vIENhbGwgY29udHJvbGxlciBpZiBhbnkKKyAgICAgICAgICAgICAgICBpZiAoY29udHJvbGxlciAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIucGVyZm9ybSgKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1YkNvbXBDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgKEh0dHBTZXJ2bGV0UmVxdWVzdCkgcGFnZUNvbnRleHQuZ2V0UmVxdWVzdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgKEh0dHBTZXJ2bGV0UmVzcG9uc2UpIHBhZ2VDb250ZXh0LmdldFJlc3BvbnNlKCksCisgICAgICAgICAgICAgICAgICAgICAgICBwYWdlQ29udGV4dC5nZXRTZXJ2bGV0Q29udGV4dCgpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBpbmNsdWRlIHJlcXVlc3RlZCBjb21wb25lbnQuCisgICAgICAgICAgICAgICAgLy9pZiAoZmx1c2gpIHsKKyAgICAgICAgICAgICAgICAgLy8gICBwYWdlQ29udGV4dC5nZXRPdXQoKS5mbHVzaCgpOworICAgICAgICAgICAgICAgIC8vfQorCisJCQkJCSBTeXN0ZW0ub3V0LnByaW50bG4oIklOQ0xVRElORyAiICsgcGFnZSk7CisgICAgICAgICAgICAgICAgZG9JbmNsdWRlKHBhZ2UpOworCisgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIG1zZyA9ICJDYW4ndCBpbnNlcnQgcGFnZSAnIiArIHBhZ2UgKyAiJyA6ICIgKyBlLmdldE1lc3NhZ2UoKTsKKyAgICAgICAgICAgICAgICBsb2cuZXJyb3IobXNnLCBlKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSnNwRXhjZXB0aW9uKG1zZyk7CisKKyAgICAgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgLy8gQ2FuJ3QgcmVzb2x2ZSBwYWdlIHVyaSwgc2hvdWxkIHdlIGlnbm9yZSBpdD8KKyAgICAgICAgICAgICAgICBpZiAoIShwYWdlID09IG51bGwgJiYgaXNFcnJvcklnbm9yZWQpKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtc2cgPQorICAgICAgICAgICAgICAgICAgICAgICAgIkNhbid0IGluc2VydCBwYWdlICciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBwYWdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJy4gQ2hlY2sgaWYgaXQgZXhpc3RzLlxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZS5nZXRNZXNzYWdlKCk7CisKKyAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKG1zZywgZSk7CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBKc3BFeGNlcHRpb24obXNnKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0gY2F0Y2ggKFNlcnZsZXRFeGNlcHRpb24gZSkgeworICAgICAgICAgICAgICAgIFRocm93YWJsZSBjYXVzZSA9IGU7CisgICAgICAgICAgICAgICAgaWYgKGUuZ2V0Um9vdENhdXNlKCkgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBjYXVzZSA9IGUuZ2V0Um9vdENhdXNlKCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgU3RyaW5nIG1zZyA9CisgICAgICAgICAgICAgICAgICAgICJTZXJ2bGV0RXhjZXB0aW9uIGluICciICsgcGFnZSArICInOiAiICsgY2F1c2UuZ2V0TWVzc2FnZSgpOworCisgICAgICAgICAgICAgICAgbG9nLmVycm9yKG1zZywgZSk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbihtc2cpOworCisKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgLy8gcmVzdG9yZSBvbGQgY29udGV4dCBvbmx5IGlmIGN1cnJlbnRDb250ZXh0IG5vdCBudWxsIAorICAgICAgICAgICAgICAgIC8vIChidWcgd2l0aCBTaWx2ZXJzdHJlYW0gPzsgcmVsYXRlZCBieSBBcnZpbmRyYSBTZWhtaSAyMDAxMDcxMikKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudENvbnRleHQgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBwYWdlQ29udGV4dC5zZXRBdHRyaWJ1dGUoCisgICAgICAgICAgICAgICAgICAgICAgICBDb21wb25lbnRDb25zdGFudHMuQ09NUE9ORU5UX0NPTlRFWFQsCisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFBhZ2VDb250ZXh0LlJFUVVFU1RfU0NPUEUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIEVWQUxfUEFHRTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBQcm9jZXNzIGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgICogRGVwZW5kaW5nIG9mIGRlYnVnIGF0dHJpYnV0ZSwgcHJpbnQgZnVsbCBleGNlcHRpb24gdHJhY2Ugb3Igb25seQorICAgICAgICAgKiBpdHMgbWVzc2FnZSBpbiBvdXRwdXQgcGFnZS4KKyAgICAgICAgICogQHBhcmFtIGV4IEV4Y2VwdGlvbgorICAgICAgICAgKiBAcGFyYW0gbXNnIEFuIGFkZGl0aW9uYWwgbWVzc2FnZSB0byBzaG93IGluIGNvbnNvbGUgYW5kIHRvIHByb3BhZ2F0ZSBpZiB3ZSBjYW4ndCBvdXRwdXQgZXhjZXB0aW9uLgorICAgICAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIG1ldGhvZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSByZWxlYXNlIGFmdGVyIFN0cnV0cyAxLjIuCisgICAgICAgICAqLworICAgICAgICBwcm90ZWN0ZWQgdm9pZCBwcm9jZXNzRXhjZXB0aW9uKFRocm93YWJsZSBleCwgU3RyaW5nIG1zZykKKyAgICAgICAgICAgIHRocm93cyBKc3BFeGNlcHRpb24geworCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmIChtc2cgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBtc2cgPSBleC5nZXRNZXNzYWdlKCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGxvZy5pc0RlYnVnRW5hYmxlZCgpKSB7IC8vIHNob3cgZnVsbCB0cmFjZQorICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcobXNnLCBleCk7CisgICAgICAgICAgICAgICAgICAgIHBhZ2VDb250ZXh0LmdldE91dCgpLnByaW50bG4obXNnKTsKKyAgICAgICAgICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKG5ldyBQcmludFdyaXRlcihwYWdlQ29udGV4dC5nZXRPdXQoKSwgdHJ1ZSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8vIHNob3cgb25seSBtZXNzYWdlCisgICAgICAgICAgICAgICAgICAgIHBhZ2VDb250ZXh0LmdldE91dCgpLnByaW50bG4obXNnKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGlvZXgpIHsgLy8gcHJvYmxlbXMuIFByb3BhZ2F0ZSBvcmlnaW5hbCBleGNlcHRpb24KKyAgICAgICAgICAgICAgICBwYWdlQ29udGV4dC5zZXRBdHRyaWJ1dGUoCisgICAgICAgICAgICAgICAgICAgIENvbXBvbmVudENvbnN0YW50cy5FWENFUFRJT05fS0VZLAorICAgICAgICAgICAgICAgICAgICBleCwKKyAgICAgICAgICAgICAgICAgICAgUGFnZUNvbnRleHQuUkVRVUVTVF9TQ09QRSk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbihtc2cpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogUGFyc2UgdGhlIGxpc3Qgb2Ygcm9sZXMgYW5kIHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBvciA8Y29kZT5mYWxzZTwvY29kZT4gYmFzZWQgb24gd2hldGhlcgorICAgICAqIHRoZSB1c2VyIGhhcyB0aGF0IHJvbGUgb3Igbm90LgorICAgICAqIEBwYXJhbSByb2xlIENvbW1hLWRlbGltaXRlZCBsaXN0IG9mIHJvbGVzLgorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSByZXF1ZXN0LgorICAgICAqLworICAgIHN0YXRpYyBwdWJsaWMgYm9vbGVhbiB1c2VySGFzUm9sZShIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHJvbGUpIHsKKyAgICAgICAgU3RyaW5nVG9rZW5pemVyIHN0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihyb2xlLCAiLCIpOworICAgICAgICB3aGlsZSAoc3QuaGFzTW9yZVRva2VucygpKSB7CisgICAgICAgICAgICBpZiAocmVxdWVzdC5pc1VzZXJJblJvbGUoc3QubmV4dFRva2VuKCkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworICAgIC8qKgorICAgICAqIEhhbmRsZSBpbnNlcnQgZGlyZWN0IHN0cmluZy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgY2xhc3MgRGlyZWN0U3RyaW5nSGFuZGxlciBpbXBsZW1lbnRzIFRhZ0hhbmRsZXIgeworICAgICAgICAvKiogT2JqZWN0IHRvIHByaW50IGFzIGEgZGlyZWN0IHN0cmluZyAqLworICAgICAgICBwcml2YXRlIE9iamVjdCB2YWx1ZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29uc3RydWN0b3IuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgRGlyZWN0U3RyaW5nSGFuZGxlcihPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC8qKgorICAgICAgICAgKiBEbyBub3RoaW5nLCB0aGVyZSBpcyBubyBjb250ZXh0IGZvciBhIGRpcmVjdCBzdHJpbmcuCisgICAgICAgICAqLworICAgICAgICBwdWJsaWMgaW50IGRvU3RhcnRUYWcoKSB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIHJldHVybiBTS0lQX0JPRFk7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogQWRkIGF0dHJpYnV0ZSB0byBzdWIgY29udGV4dC4KKyAgICAgICAgICogRG8gbm90aGluZy4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyB2b2lkIHB1dEF0dHJpYnV0ZShTdHJpbmcgbmFtZSwgT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIH0KKworICAgICAgICAvKioKKyAgICAgICAgICogUHJpbnQgU3RyaW5nIGluIHBhZ2Ugb3V0cHV0IHN0cmVhbS4KKyAgICAgICAgICovCisgICAgICAgIHB1YmxpYyBpbnQgZG9FbmRUYWcoKSB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgaWYgKGZsdXNoKSB7CisgICAgICAgICAgICAgICAgICAgIHBhZ2VDb250ZXh0LmdldE91dCgpLmZsdXNoKCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcGFnZUNvbnRleHQuZ2V0T3V0KCkucHJpbnQodmFsdWUpOworCisgICAgICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgIGlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkgeworICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoIkNhbid0IHdyaXRlIHN0cmluZyAnIiArIHZhbHVlICsgIicgOiAiLCBleCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcGFnZUNvbnRleHQuc2V0QXR0cmlidXRlKAorICAgICAgICAgICAgICAgICAgICBDb21wb25lbnRDb25zdGFudHMuRVhDRVBUSU9OX0tFWSwKKyAgICAgICAgICAgICAgICAgICAgZXgsCisgICAgICAgICAgICAgICAgICAgIFBhZ2VDb250ZXh0LlJFUVVFU1RfU0NPUEUpOworCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgIkNhbid0IHdyaXRlIHN0cmluZyAnIiArIHZhbHVlICsgIicgOiAiICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIEVWQUxfUEFHRTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy9QdXRMaXN0VGFnLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3ZmNkZjgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZy5qYXZhCkBAIC0wLDAgKzEsMjEwIEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS50YWdsaWIudGlsZXM7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCitpbXBvcnQgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0OworCitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5BdHRyaWJ1dGVEZWZpbml0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuVW50eXBlZEF0dHJpYnV0ZTsKKworLyoqCisgKiBQdXRMaXN0IHRhZyBpbXBsZW1lbnRhdGlvbi4KKyAqLworcHVibGljIGNsYXNzIFB1dExpc3RUYWcKKyAgICBleHRlbmRzIFRhZ1N1cHBvcnQKKyAgICBpbXBsZW1lbnRzIENvbXBvbmVudENvbnN0YW50cywgQWRkVGFnUGFyZW50LCBQdXRMaXN0VGFnUGFyZW50IHsKKworICAgIC8qKiAKKyAgICAgKiBOYW1lIG9mIHRoaXMgYXR0cmlidXRlLiAKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBhdHRyaWJ1dGVOYW1lID0gbnVsbDsKKyAgICAKKyAgICAvKiogCisgICAgICogVGhlIGxpc3QgaXRzZWxmLiAKKyAgICAgKi8KKyAgICBwcml2YXRlIExpc3QgbGlzdCA9IG51bGw7CisgICAgCisgICAgLyoqIAorICAgICAqIFJvbGUgYXR0cmlidXRlLiAKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyByb2xlID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIFB1dExpc3RUYWcoKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZWxlYXNlKCkgeworICAgICAgICBzdXBlci5yZWxlYXNlKCk7CisgICAgICAgIGF0dHJpYnV0ZU5hbWUgPSBudWxsOworICAgICAgICByb2xlID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIGFsbCBpbnRlcm5hbCByZXNvdXJjZXMuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgcmVsZWFzZUludGVybmFsKCkgeworICAgICAgICBsaXN0ID0gbnVsbDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmFtZShTdHJpbmcgbmFtZSkgeworICAgICAgICB0aGlzLmF0dHJpYnV0ZU5hbWUgPSBuYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CisgICAgICAgIHJldHVybiBhdHRyaWJ1dGVOYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCByb2xlIGF0dHJpYnV0ZS4KKyAgICAgKiBAcGFyYW0gcm9sZSBUaGUgcm9sZSB0aGUgdXNlciBtdXN0IGJlIGluIHRvIHN0b3JlIGNvbnRlbnQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Um9sZShTdHJpbmcgcm9sZSkgeworICAgICAgICB0aGlzLnJvbGUgPSByb2xlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCByb2xlIGF0dHJpYnV0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFJvbGUoKSB7CisgICAgICAgIHJldHVybiByb2xlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBsaXN0IGRlZmluZWQgaW4gdGFnLgorICAgICAqLworICAgIHB1YmxpYyBMaXN0IGdldExpc3QoKSB7CisgICAgICAgIHJldHVybiBsaXN0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBhZGRFbGVtZW50KE9iamVjdCB2YWx1ZSkgeworICAgICAgICBpZiAobGlzdCA9PSBudWxsKSB7CisgICAgICAgICAgICBsaXN0ID0gbmV3IEFycmF5TGlzdCgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBsaXN0LmFkZCh2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvY2VzcyBuZXN0ZWQgJmxnO3B1dExpc3QmZ3Q7IHRhZy4KKyAgICAgKiBNZXRob2QgY2FsbHMgYnkgbmVzdGVkICZsZztwdXRMaXN0Jmd0OyB0YWdzLgorICAgICAqIE5lc3RlZCBsaXN0IGlzIGFkZGVkIHRvIGN1cnJlbnQgbGlzdC4KKyAgICAgKiBJZiByb2xlIGlzIGRlZmluZWQsIG5lc3RlZCBhdHRyaWJ1dGUgaXMgd3JhcHBlZCBpbnRvIGFuIHVudHlwcGVkIGRlZmluaXRpb24KKyAgICAgKiBjb250YWluaW5nIGF0dHJpYnV0ZSB2YWx1ZSBhbmQgcm9sZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwcm9jZXNzTmVzdGVkVGFnKFB1dExpc3RUYWcgbmVzdGVkVGFnKSB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICAgICAgLy8gR2V0IHJlYWwgdmFsdWUgYW5kIGNoZWNrIHJvbGUKKyAgICAgICAgLy8gSWYgcm9sZSBpcyBzZXQsIGFkZCBpdCBpbiBhdHRyaWJ1dGUgZGVmaW5pdGlvbiBpZiBhbnkuCisgICAgICAgIC8vIElmIG5vIGF0dHJpYnV0ZSBkZWZpbml0aW9uLCBjcmVhdGUgdW50eXBlZCBvbmUsIGFuZCBzZXQgcm9sZS4KKyAgICAgICAgT2JqZWN0IGF0dHJpYnV0ZVZhbHVlID0gbmVzdGVkVGFnLmdldExpc3QoKTsKKworICAgICAgICBpZiAobmVzdGVkVGFnLmdldFJvbGUoKSAhPSBudWxsKSB7CisgICAgICAgICAgICBBdHRyaWJ1dGVEZWZpbml0aW9uIGRlZiA9IG5ldyBVbnR5cGVkQXR0cmlidXRlKGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgICAgIGRlZi5zZXRSb2xlKG5lc3RlZFRhZy5nZXRSb2xlKCkpOworICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUgPSBkZWY7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIG5vdyBhZGQgYXR0cmlidXRlIHRvIGVuY2xvc2luZyBwYXJlbnQgKGkuZS4gOiB0aGlzIG9iamVjdCkKKyAgICAgICAgYWRkRWxlbWVudChhdHRyaWJ1dGVWYWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHJvY2VzcyBuZXN0ZWQgJmxnO2FkZCZndDsgdGFnLgorICAgICAqIE1ldGhvZCBjYWxscyBieSBuZXN0ZWQgJmxnO2FkZCZndDsgdGFncy4KKyAgICAgKiBOZXN0ZWQgYXR0cmlidXRlIGlzIGFkZGVkIHRvIGN1cnJlbnQgbGlzdC4KKyAgICAgKiBJZiByb2xlIGlzIGRlZmluZWQsIG5lc3RlZCBhdHRyaWJ1dGUgaXMgd3JhcHBlZCBpbnRvIGFuIHVudHlwcGVkIGRlZmluaXRpb24KKyAgICAgKiBjb250YWluaW5nIGF0dHJpYnV0ZSB2YWx1ZSBhbmQgcm9sZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwcm9jZXNzTmVzdGVkVGFnKEFkZFRhZyBuZXN0ZWRUYWcpIHRocm93cyBKc3BFeGNlcHRpb24geworICAgICAgICAvLyBHZXQgcmVhbCB2YWx1ZSBhbmQgY2hlY2sgcm9sZQorICAgICAgICAvLyBJZiByb2xlIGlzIHNldCwgYWRkIGl0IGluIGF0dHJpYnV0ZSBkZWZpbml0aW9uIGlmIGFueS4KKyAgICAgICAgLy8gSWYgbm8gYXR0cmlidXRlIGRlZmluaXRpb24sIGNyZWF0ZSB1bnR5cGVkIG9uZSwgYW5kIHNldCByb2xlLgorICAgICAgICBPYmplY3QgYXR0cmlidXRlVmFsdWUgPSBuZXN0ZWRUYWcuZ2V0UmVhbFZhbHVlKCk7CisgICAgICAgIEF0dHJpYnV0ZURlZmluaXRpb24gZGVmOworCisgICAgICAgIGlmIChuZXN0ZWRUYWcuZ2V0Um9sZSgpICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgZGVmID0gKChBdHRyaWJ1dGVEZWZpbml0aW9uKSBhdHRyaWJ1dGVWYWx1ZSk7CisgICAgICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgICAgICBkZWYgPSBuZXcgVW50eXBlZEF0dHJpYnV0ZShhdHRyaWJ1dGVWYWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkZWYuc2V0Um9sZShuZXN0ZWRUYWcuZ2V0Um9sZSgpKTsKKyAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gZGVmOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBub3cgYWRkIGF0dHJpYnV0ZSB0byBlbmNsb3NpbmcgcGFyZW50IChpLmUuIDogdGhpcyBvYmplY3QpCisgICAgICAgIGFkZEVsZW1lbnQoYXR0cmlidXRlVmFsdWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERvIHN0YXJ0IHRhZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgaW50IGRvU3RhcnRUYWcoKSB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICAgICAgcmV0dXJuIEVWQUxfQk9EWV9JTkNMVURFOworICAgIH0KKworICAgIC8qKgorICAgICAqIERvIGVuZCB0YWcuCisgICAgICovCisgICAgcHVibGljIGludCBkb0VuZFRhZygpIHRocm93cyBKc3BFeGNlcHRpb24geworICAgICAgICBQdXRMaXN0VGFnUGFyZW50IGVuY2xvc2luZ1BhcmVudCA9IGZpbmRFbmNsb3NpbmdQYXJlbnQoKTsKKyAgICAgICAgZW5jbG9zaW5nUGFyZW50LnByb2Nlc3NOZXN0ZWRUYWcodGhpcyk7CisgICAgICAgIC8vIENsZWFyIGxpc3QgdG8gYXZvaWQgcmV1c2UKKyAgICAgICAgcmVsZWFzZUludGVybmFsKCk7CisgICAgICAgIHJldHVybiBFVkFMX1BBR0U7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmluZCBlbmNsb3NpbmcgcGFyZW50IHRhZyBhY2NlcHRpbmcgdGhpcyB0YWcuCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24gSWYgd2UgY2FuJ3QgZmluZCBhbiBhcHByb3ByaWF0ZSBlbmNsb3NpbmcgdGFnLgorICAgICAqLworICAgIHByb3RlY3RlZCBQdXRMaXN0VGFnUGFyZW50IGZpbmRFbmNsb3NpbmdQYXJlbnQoKSB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIFB1dExpc3RUYWdQYXJlbnQgcGFyZW50ID0KKyAgICAgICAgICAgICAgICAoUHV0TGlzdFRhZ1BhcmVudCkgZmluZEFuY2VzdG9yV2l0aENsYXNzKHRoaXMsCisgICAgICAgICAgICAgICAgICAgIFB1dExpc3RUYWdQYXJlbnQuY2xhc3MpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChwYXJlbnQgPT0gbnVsbCkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBKc3BFeGNlcHRpb24oIkVycm9yIC0gdGFnIHB1dExpc3QgOiBlbmNsb3NpbmcgdGFnIGRvZXNuJ3QgYWNjZXB0ICdwdXRMaXN0JyB0YWcuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7CisgICAgICAgICAgICAKKyAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSnNwRXhjZXB0aW9uKCJFcnJvciAtIHRhZyBwdXRMaXN0IDogZW5jbG9zaW5nIHRhZyBkb2Vzbid0IGFjY2VwdCAncHV0TGlzdCcgdGFnLiIpOworICAgICAgICB9CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvUHV0TGlzdFRhZ1BhcmVudC5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzNhNTE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL1B1dExpc3RUYWdQYXJlbnQuamF2YQpAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS50YWdsaWIudGlsZXM7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb247CisKKy8qKgorICogVGFnIGNsYXNzZXMgaW1wbGVtZW50aW5nIHRoaXMgaW50ZXJmYWNlIGNhbiBjb250YWlucyBuZXN0ZWQgUHV0VGFnLgorICogVGhpcyBpbnRlcmZhY2UgZGVmaW5lcyBhIG1ldGhvZCBjYWxsZWQgYnkgbmVzdGVkIHRhZ3MuCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgUHV0TGlzdFRhZ1BhcmVudCB7CisgIC8qKgorICAgKiBBZGQgYW4gYXR0cmlidXRlIHRvIGNvbnRhaW5lci4KKyAgICogQHBhcmFtIG5lc3RlZFRhZyBOZXN0ZWQgUHV0VGFnIGRlZmluaW5nIHRoZSBhdHRyaWJ1dGUuCisgICAqLworICB2b2lkIHByb2Nlc3NOZXN0ZWRUYWcoUHV0TGlzdFRhZyBuZXN0ZWRUYWcpIHRocm93cyBKc3BFeGNlcHRpb247CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy9QdXRUYWcuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy9QdXRUYWcuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYmRlZjE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL1B1dFRhZy5qYXZhCkBAIC0wLDAgKzEsNDc2IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS50YWdsaWIudGlsZXM7CisKK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOworCitpbXBvcnQgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5Cb2R5VGFnU3VwcG9ydDsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuUHJvcGVydHlVdGlsczsKK2ltcG9ydCBvcmcuYXBhY2hlLnRhZ2xpYi50aWxlcy51dGlsLlRhZ1V0aWxzOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuQXR0cmlidXRlRGVmaW5pdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkRlZmluaXRpb25OYW1lQXR0cmlidXRlOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuRGlyZWN0U3RyaW5nQXR0cmlidXRlOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuUGF0aEF0dHJpYnV0ZTsKKworLyoqCisgKiBQdXQgYW4gYXR0cmlidXRlIGluIGVuY2xvc2luZyBhdHRyaWJ1dGUgY29udGFpbmVyIHRhZy4KKyAqIEVuY2xvc2luZyBhdHRyaWJ1dGUgY29udGFpbmVyIHRhZyBjYW4gYmUgOiAmbHQ7aW5zZXJ0Jmd0OyBvciAmbHQ7ZGVmaW5pdGlvbiZndDsuCisgKiBFeGNlcHRpb24gaXMgdGhyb3duIGlmIG5vIGFwcHJvcHJpYXRlIHRhZyBjYW4gYmUgZm91bmQuCisgKiBQdXQgdGFnIGNhbiBoYXZlIGZvbGxvd2luZyBhdHJpYnV0ZXMgOgorICogPGxpPgorICogPHVsPm5hbWUgOiBOYW1lIG9mIHRoZSBhdHRyaWJ1dGU8L3VsPgorICogPHVsPnZhbHVlIHwgY29udGVudCA6IHZhbHVlIHRvIHB1dCBhcyBhdHRyaWJ1dGU8L3VsPgorICogPHVsPnR5cGUgOiB2YWx1ZSB0eXBlLiBPbmx5IHZhbGlkIGlmIHZhbHVlIGlzIGEgU3RyaW5nIGFuZCBpcyBzZXQgYnkKKyAqIHZhbHVlPSJzb21ldGhpbmciIG9yIGJ5IGEgYmVhbi4KKyAqIFBvc3NpYmxlIHR5cGUgYXJlIDogc3RyaW5nICh2YWx1ZSBpcyB1c2VkIGFzIGRpcmVjdCBzdHJpbmcpLAorICogcGFnZSB8IHRlbXBsYXRlICh2YWx1ZSBpcyB1c2VkIGFzIGEgcGFnZSB1cmwgdG8gaW5zZXJ0KSwKKyAqIGRlZmluaXRpb24gKHZhbHVlIGlzIHVzZWQgYXMgYSBkZWZpbml0aW9uIG5hbWUgdG8gaW5zZXJ0KTwvdWw+CisgKiA8dWw+ZGlyZWN0IDogU3BlY2lmeSBpZiB2YWx1ZSBpcyB0byBiZSB1c2VkIGFzIGEgZGlyZWN0IHN0cmluZyBvciBhcyBhCisgKiBwYWdlIHVybCB0byBpbnNlcnQuIFRoaXMgaXMgYW5vdGhlciB3YXkgdG8gc3BlY2lmeSB0aGUgdHlwZS4gSXQgb25seSBhcHBseQorICogaWYgdmFsdWUgaXMgc2V0IGFzIGEgc3RyaW5nLCBhbmQgdHlwZSBpcyBub3QgcHJlc2VudC48L3VsPgorICogPHVsPmJlYW5OYW1lIDogTmFtZSBvZiBhIGJlYW4gdXNlZCBmb3Igc2V0dGluZyB2YWx1ZS4gT25seSB2YWxpZCBpZiB2YWx1ZSBpcyBub3Qgc2V0LgorICogSWYgcHJvcGVydHkgaXMgc3BlY2lmaWVkLCB2YWx1ZSBjb21lIGZyb20gYmVhbidzIHByb3BlcnR5LiBPdGhlcndpc2UsIGJlYW4KKyAqIGl0c2VsZiBpcyB1c2VkIGZvciB2YWx1ZS48L3VsPgorICogPHVsPmJlYW5Qcm9wZXJ0eSA6IE5hbWUgb2YgdGhlIHByb3BlcnR5IHVzZWQgZm9yIHJldHJpZXZpbmcgdmFsdWUuPC91bD4KKyAqIDx1bD5iZWFuU2NvcGUgOiBTY29wZSBjb250YWluaW5nIGJlYW4uIDwvdWw+CisgKiA8dWw+cm9sZSA6IFJvbGUgdG8gY2hlY2sgd2hlbiAnaW5zZXJ0JyB3aWxsIGJlIGNhbGxlZC4gSWYgZW5jbG9zaW5nIHRhZyBpcworICogJmx0O2luc2VydCZndDssIHJvbGUgaXMgY2hlY2tlZCBpbW1lZGlhdGVseS4gSWYgZW5jbG9zaW5nIHRhZyBpcworICogJmx0O2RlZmluaXRpb24mZ3Q7LCByb2xlIHdpbGwgYmUgY2hlY2tlZCB3aGVuIHRoaXMgZGVmaW5pdGlvbiB3aWxsIGJlCisgKiBpbnNlcnRlZC48L3VsPgorICogPC9saT4KKyAqIFZhbHVlIGNhbiBhbHNvIGNvbWUgZnJvbSB0YWcgYm9keS4gVGFnIGJvZHkgaXMgdGFrZW4gaW50byBhY2NvdW50IG9ubHkgaWYKKyAqIHZhbHVlIGlzIG5vdCBzZXQgYnkgb25lIG9mIHRoZSB0YWcgYXR0cmlidXRlcy4gSW4gdGhpcyBjYXNlIEF0dHJpYnV0ZSB0eXBlIGlzCisgKiAic3RyaW5nIiwgdW5sZXNzIHRhZyBib2R5IGRlZmluZSBhbm90aGVyIHR5cGUuCisgKgorICogQGF1dGhvciBDZWRyaWMgRHVtb3VsaW4KKyAqIEBhdXRob3IgRGF2aWQgR2VhcnkKKyAqLworcHVibGljIGNsYXNzIFB1dFRhZyBleHRlbmRzIEJvZHlUYWdTdXBwb3J0IGltcGxlbWVudHMgQ29tcG9uZW50Q29uc3RhbnRzIHsKKworICAgIC8qIEpTUCBUYWcgYXR0cmlidXRlcyAqLworCisgICAgLyoqIAorICAgICAqIE5hbWUgb2YgYXR0cmlidXRlIHRvIHB1dCBpbiBjb21wb25lbnQgY29udGV4dC4gCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBhdHRyaWJ1dGVOYW1lID0gbnVsbDsKKworICAgIC8qKiAKKyAgICAgKiBBc3NvY2lhdGVkIGF0dHJpYnV0ZSB2YWx1ZS4gCisgICAgICovCisgICAgcHJpdmF0ZSBPYmplY3QgdmFsdWUgPSBudWxsOworCisgICAgLyoqIAorICAgICAqIEpTUCBUZW1wbGF0ZSBjb21wYXRpYmlsaXR5LiAKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBkaXJlY3QgPSBudWxsOworCisgICAgLyoqIAorICAgICAqIFJlcXVlc3RlZCB0eXBlIGZvciB0aGUgdmFsdWUuIAorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHZhbHVlVHlwZSA9IG51bGw7CisKKyAgICAvKiogCisgICAgICogQmVhbiBuYW1lIGF0dHJpYnV0ZS4gCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgYmVhbk5hbWUgPSBudWxsOworCisgICAgLyoqIAorICAgICAqIEJlYW4gcHJvcGVydHkgYXR0cmlidXRlLiAKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBiZWFuUHJvcGVydHkgPSBudWxsOworCisgICAgLyoqIAorICAgICAqIEJlYW4gc2NvcGUgYXR0cmlidXRlLiAKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBiZWFuU2NvcGUgPSBudWxsOworCisgICAgLyoqIAorICAgICAqIFJvbGUgYXR0cmlidXRlLiAKKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyByb2xlID0gbnVsbDsKKworICAgIC8qIEludGVybmFsIHByb3BlcnRpZXMgKi8KKworICAgIC8qKiAKKyAgICAgKiBDYWNoZWQgcmVhbCB2YWx1ZSBjb21wdXRlZCBmcm9tIHRhZyBhdHRyaWJ1dGVzLiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgT2JqZWN0IHJlYWxWYWx1ZSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IGNvbnN0cnVjdG9yLgorICAgICAqLworICAgIHB1YmxpYyBQdXRUYWcoKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZWxlYXNlKCkgeworCisgICAgICAgIHN1cGVyLnJlbGVhc2UoKTsKKworICAgICAgICBhdHRyaWJ1dGVOYW1lID0gbnVsbDsKKyAgICAgICAgdmFsdWVUeXBlID0gbnVsbDsKKyAgICAgICAgZGlyZWN0ID0gbnVsbDsKKyAgICAgICAgdmFsdWUgPSBudWxsOworICAgICAgICBiZWFuTmFtZSA9IG51bGw7CisgICAgICAgIGJlYW5Qcm9wZXJ0eSA9IG51bGw7CisgICAgICAgIGJlYW5TY29wZSA9IG51bGw7CisgICAgICAgIHJvbGUgPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbGVhc2UgaW50ZXJuYWwgcHJvcGVydGllcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCByZWxlYXNlSW50ZXJuYWwoKSB7CisgICAgICAgIHJlYWxWYWx1ZSA9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IG5hbWUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmFtZShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgdGhpcy5hdHRyaWJ1dGVOYW1lID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IG5hbWUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICByZXR1cm4gYXR0cmlidXRlTmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdmFsdWUuCisgICAgICogTWV0aG9kIGFkZGVkIHRvIHNhdGlzZnkgVG9tY2F0IChidWcgPykuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VmFsdWUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdmFsdWUuCisgICAgICogTWV0aG9kIGFkZGVkIHRvIHNhdGlzZnkgVG9tY2F0IChidWcgPykuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRWYWx1ZSgpIHsKKyAgICAgICAgcmV0dXJuIChTdHJpbmcpIHRoaXMudmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHZhbHVlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFZhbHVlKE9iamVjdCB2YWx1ZSkgeworICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHByb3BlcnR5IHZhbHVlIGFzIGFuIG9iamVjdC4KKyAgICAgKiBBZGRlZCBiZWNhdXNlIHNvbWUgd2ViIGNvbnRhaW5lcnMgcmVhY3QgYmFkbHkgdG8gdmFsdWUgYXMgPGNvZGU+T2JqZWN0PC9jb2RlPi4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRPYmplY3RWYWx1ZShPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBjb250ZW50LgorICAgICAqIE1ldGhvZCBhZGRlZCB0byBzYXRpc2Z5IFRvbWNhdCAoYnVnID8pLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENvbnRlbnQoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgY29udGVudC4KKyAgICAgKiBNZXRob2QgYWRkZWQgdG8gc2F0aXNmeSBUb21jYXQgKGJ1ZyA/KS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldENvbnRlbnQoKSB7CisgICAgICAgIHJldHVybiAoU3RyaW5nKSB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgY29udGVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDb250ZW50KE9iamVjdCB2YWx1ZSkgeworICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGRpcmVjdC4KKyAgICAgKiBNZXRob2QgYWRkZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBKU1AxLjEuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGlyZWN0KFN0cmluZyBpc0RpcmVjdCkgeworICAgICAgICB0aGlzLmRpcmVjdCA9IGlzRGlyZWN0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0eXBlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFR5cGUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHRoaXMudmFsdWVUeXBlID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHR5cGUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRUeXBlKCkgeworICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVR5cGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGJlYW4gbmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRCZWFuTmFtZShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgdGhpcy5iZWFuTmFtZSA9IHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBiZWFuIG5hbWUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRCZWFuTmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGJlYW5OYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBiZWFuIHByb3BlcnR5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEJlYW5Qcm9wZXJ0eShTdHJpbmcgdmFsdWUpIHsKKyAgICAgICAgdGhpcy5iZWFuUHJvcGVydHkgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYmVhbiBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEJlYW5Qcm9wZXJ0eSgpIHsKKyAgICAgICAgcmV0dXJuIGJlYW5Qcm9wZXJ0eTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgYmVhbiBzY29wZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRCZWFuU2NvcGUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHRoaXMuYmVhblNjb3BlID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGJlYW4gc2NvcGUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRCZWFuU2NvcGUoKSB7CisgICAgICAgIHJldHVybiBiZWFuU2NvcGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHJvbGUgYXR0cmlidXRlLgorICAgICAqIEBwYXJhbSByb2xlIFRoZSByb2xlIHRoZSB1c2VyIG11c3QgYmUgaW4gdG8gc3RvcmUgY29udGVudC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSb2xlKFN0cmluZyByb2xlKSB7CisgICAgICAgIHRoaXMucm9sZSA9IHJvbGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHJvbGUgYXR0cmlidXRlCisgICAgICogQHJldHVybiBUaGUgcm9sZSBkZWZpbmVkIGluIHRoZSB0YWcgb3IgPGNvZGU+bnVsbDwvY29kZT4uCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRSb2xlKCkgeworICAgICAgICByZXR1cm4gcm9sZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgcmVhbCB2YWx1ZSBhY2NvcmRpbmcgdG8gdGFnIGF0dHJpYnV0ZS4KKyAgICAgKiBSZWFsIHZhbHVlIGlzIHRoZSB2YWx1ZSBjb21wdXRlZCBhZnRlciBhdHRyaWJ1dGUgcHJvY2Vzc2luZy4KKyAgICAgKiBAcmV0dXJuIFJlYWwgdmFsdWUuCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24gSWYgc29tZXRoaW5nIGdvZXMgd3Jvbmcgd2hpbGUgZ2V0dGluZyB2YWx1ZSBmcm9tIGJlYW4uCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRSZWFsVmFsdWUoKSB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHJlYWxWYWx1ZSA9PSBudWxsKSB7CisgICAgICAgICAgICBjb21wdXRlUmVhbFZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVhbFZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXB1dGUgcmVhbCB2YWx1ZSBhY2NvcmRpbmcgdG8gdGFnIGF0dHJpYnV0ZXMuCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24gSWYgc29tZXRoaW5nIGdvZXMgd3Jvbmcgd2hpbGUgZ2V0dGluZyB2YWx1ZSBmcm9tIGJlYW4uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgY29tcHV0ZVJlYWxWYWx1ZSgpIHRocm93cyBKc3BFeGNlcHRpb24geworICAgICAgICAvLyBDb21wdXRlIHJlYWwgdmFsdWUgZnJvbSBhdHRyaWJ1dGVzIHNldC4KKyAgICAgICAgcmVhbFZhbHVlID0gdmFsdWU7CisKKyAgICAgICAgLy8gSWYgcmVhbFZhbHVlIGlzIG5vdCBzZXQsIHZhbHVlIG11c3QgY29tZSBmcm9tIGJvZHkKKyAgICAgICAgaWYgKHZhbHVlID09IG51bGwgJiYgYmVhbk5hbWUgPT0gbnVsbCkgeworICAgICAgICAgICAgLy8gVGVzdCBib2R5IGNvbnRlbnQgaW4gY2FzZSBvZiBlbXB0eSBib2R5LgorICAgICAgICAgICAgaWYgKGJvZHlDb250ZW50ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZWFsVmFsdWUgPSBib2R5Q29udGVudC5nZXRTdHJpbmcoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVhbFZhbHVlID0gIiI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBEb2VzIHZhbHVlIGNvbWVzIGZyb20gYSBiZWFuID8KKyAgICAgICAgaWYgKHJlYWxWYWx1ZSA9PSBudWxsICYmIGJlYW5OYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgIGdldFJlYWxWYWx1ZUZyb21CZWFuKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBJcyB0aGVyZSBhIHR5cGUgc2V0ID8KKyAgICAgICAgLy8gRmlyc3QgY2hlY2sgZGlyZWN0IGF0dHJpYnV0ZSwgYW5kIHRyYW5zbGF0ZSBpdCB0byBhIHZhbHVlVHlwZS4KKyAgICAgICAgLy8gVGhlbiwgZXZhbHVhdGUgdmFsdWVUeXBlLCBhbmQgY3JlYXRlIHJlcXVlc3RlZCB0eXBlZCBhdHRyaWJ1dGUuCisgICAgICAgIC8vIElmIHZhbHVlVHlwZSBpcyBub3Qgc2V0LCB1c2UgdGhlIHZhbHVlICJhcyBpcyIuCisgICAgICAgIGlmICh2YWx1ZVR5cGUgPT0gbnVsbCAmJiBkaXJlY3QgIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKEJvb2xlYW4udmFsdWVPZihkaXJlY3QpLmJvb2xlYW5WYWx1ZSgpID09IHRydWUpIHsKKyAgICAgICAgICAgICAgICB2YWx1ZVR5cGUgPSAic3RyaW5nIjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdmFsdWVUeXBlID0gInBhdGgiOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHJlYWxWYWx1ZSAhPSBudWxsCisgICAgICAgICAgICAmJiB2YWx1ZVR5cGUgIT0gbnVsbAorICAgICAgICAgICAgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEF0dHJpYnV0ZURlZmluaXRpb24pKSB7CisKKyAgICAgICAgICAgIFN0cmluZyBzdHJWYWx1ZSA9IHJlYWxWYWx1ZS50b1N0cmluZygpOworICAgICAgICAgICAgaWYgKHZhbHVlVHlwZS5lcXVhbHNJZ25vcmVDYXNlKCJzdHJpbmciKSkgeworICAgICAgICAgICAgICAgIHJlYWxWYWx1ZSA9IG5ldyBEaXJlY3RTdHJpbmdBdHRyaWJ1dGUoc3RyVmFsdWUpOworCisgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlVHlwZS5lcXVhbHNJZ25vcmVDYXNlKCJwYWdlIikpIHsKKyAgICAgICAgICAgICAgICByZWFsVmFsdWUgPSBuZXcgUGF0aEF0dHJpYnV0ZShzdHJWYWx1ZSk7CisKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVUeXBlLmVxdWFsc0lnbm9yZUNhc2UoInRlbXBsYXRlIikpIHsKKyAgICAgICAgICAgICAgICByZWFsVmFsdWUgPSBuZXcgUGF0aEF0dHJpYnV0ZShzdHJWYWx1ZSk7CisKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVUeXBlLmVxdWFsc0lnbm9yZUNhc2UoImluc3RhbmNlIikpIHsKKyAgICAgICAgICAgICAgICByZWFsVmFsdWUgPSBuZXcgRGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGUoc3RyVmFsdWUpOworCisgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlVHlwZS5lcXVhbHNJZ25vcmVDYXNlKCJkZWZpbml0aW9uIikpIHsKKyAgICAgICAgICAgICAgICByZWFsVmFsdWUgPSBuZXcgRGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGUoc3RyVmFsdWUpOworCisgICAgICAgICAgICB9IGVsc2UgeyAvLyBiYWQgdHlwZQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBKc3BFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICJXYXJuaW5nIC0gVGFnIHB1dCA6IEJhZCB0eXBlICciICsgdmFsdWVUeXBlICsgIicuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8qKgorICAgICAqIEV4dHJhY3QgcmVhbCB2YWx1ZSBmcm9tIHNwZWNpZmllZCBiZWFuLgorICAgICAqIEB0aHJvd3MgSnNwRXhjZXB0aW9uIElmIHNvbWV0aGluZyBnb2VzIHdyb25nIHdoaWxlIGdldHRpbmcgdmFsdWUgZnJvbSBiZWFuLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGdldFJlYWxWYWx1ZUZyb21CZWFuKCkgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBPYmplY3QgYmVhbiA9IFRhZ1V0aWxzLnJldHJpZXZlQmVhbihiZWFuTmFtZSwgYmVhblNjb3BlLCBwYWdlQ29udGV4dCk7CisgICAgICAgICAgICBpZiAoYmVhbiAhPSBudWxsICYmIGJlYW5Qcm9wZXJ0eSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmVhbFZhbHVlID0gUHJvcGVydHlVdGlscy5nZXRQcm9wZXJ0eShiZWFuLCBiZWFuUHJvcGVydHkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZWFsVmFsdWUgPSBiZWFuOyAvLyB2YWx1ZSBjYW4gYmUgbnVsbAorICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIH0gY2F0Y2ggKE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiRXJyb3IgLSBjb21wb25lbnQuUHV0QXR0cmlidXRlVGFnIDogRXJyb3Igd2hpbGUgcmV0cmlldmluZyB2YWx1ZSBmcm9tIGJlYW4gJyIKKyAgICAgICAgICAgICAgICAgICAgKyBiZWFuTmFtZQorICAgICAgICAgICAgICAgICAgICArICInIHdpdGggcHJvcGVydHkgJyIKKyAgICAgICAgICAgICAgICAgICAgKyBiZWFuUHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgKyAiJyBpbiBzY29wZSAnIgorICAgICAgICAgICAgICAgICAgICArIGJlYW5TY29wZQorICAgICAgICAgICAgICAgICAgICArICInLiAoZXhjZXB0aW9uIDogIgorICAgICAgICAgICAgICAgICAgICArIGV4LmdldE1lc3NhZ2UoKSk7CisKKyAgICAgICAgfSBjYXRjaCAoSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiRXJyb3IgLSBjb21wb25lbnQuUHV0QXR0cmlidXRlVGFnIDogRXJyb3Igd2hpbGUgcmV0cmlldmluZyB2YWx1ZSBmcm9tIGJlYW4gJyIKKyAgICAgICAgICAgICAgICAgICAgKyBiZWFuTmFtZQorICAgICAgICAgICAgICAgICAgICArICInIHdpdGggcHJvcGVydHkgJyIKKyAgICAgICAgICAgICAgICAgICAgKyBiZWFuUHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgKyAiJyBpbiBzY29wZSAnIgorICAgICAgICAgICAgICAgICAgICArIGJlYW5TY29wZQorICAgICAgICAgICAgICAgICAgICArICInLiAoZXhjZXB0aW9uIDogIgorICAgICAgICAgICAgICAgICAgICArIGV4LmdldE1lc3NhZ2UoKSk7CisKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiRXJyb3IgLSBjb21wb25lbnQuUHV0QXR0cmlidXRlVGFnIDogRXJyb3Igd2hpbGUgcmV0cmlldmluZyB2YWx1ZSBmcm9tIGJlYW4gJyIKKyAgICAgICAgICAgICAgICAgICAgKyBiZWFuTmFtZQorICAgICAgICAgICAgICAgICAgICArICInIHdpdGggcHJvcGVydHkgJyIKKyAgICAgICAgICAgICAgICAgICAgKyBiZWFuUHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgKyAiJyBpbiBzY29wZSAnIgorICAgICAgICAgICAgICAgICAgICArIGJlYW5TY29wZQorICAgICAgICAgICAgICAgICAgICArICInLiAoZXhjZXB0aW9uIDogIgorICAgICAgICAgICAgICAgICAgICArIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEbyBzdGFydCB0YWcuCisgICAgICovCisgICAgcHVibGljIGludCBkb1N0YXJ0VGFnKCkgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgIC8vIERvIHdlIG5lZWQgdG8gZXZhbHVhdGUgYm9keSA/CisgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsICYmIGJlYW5OYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBFVkFMX0JPRFlfVEFHOworICAgICAgICB9CisKKyAgICAgICAgLy8gVmFsdWUgaXMgc2V0LCBkb24ndCBldmFsdWF0ZSBib2R5LgorICAgICAgICByZXR1cm4gU0tJUF9CT0RZOworICAgIH0KKworICAgIC8qKgorICAgICAqIERvIGVuZCB0YWcuCisgICAgICovCisgICAgcHVibGljIGludCBkb0VuZFRhZygpIHRocm93cyBKc3BFeGNlcHRpb24geworICAgICAgICAvLyBDYWxsIHBhcmVudCB0YWcgd2hpY2ggaW4gdHVybiBkb2VzIHdoYXQgaXQgd2FudAorICAgICAgICBjYWxsUGFyZW50KCk7CisKKyAgICAgICAgLy8gY2xlYW4gdXAgdGFnIGhhbmRsZXIgZm9yIHJldXNlLgorICAgICAgICByZWxlYXNlSW50ZXJuYWwoKTsKKworICAgICAgICByZXR1cm4gRVZBTF9QQUdFOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZpbmQgcGFyZW50IHRhZyB3aGljaCBtdXN0IGltcGxlbWVudCBBdHRyaWJ1dGVDb250YWluZXIuCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24gSWYgd2UgY2FuJ3QgZmluZCBhbiBhcHByb3ByaWF0ZSBlbmNsb3NpbmcgdGFnLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGNhbGxQYXJlbnQoKSB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICAgICAgLy8gR2V0IGVuY2xvc2luZyBwYXJlbnQKKyAgICAgICAgUHV0VGFnUGFyZW50IGVuY2xvc2luZ1BhcmVudCA9IGZpbmRFbmNsb3NpbmdQdXRUYWdQYXJlbnQoKTsKKyAgICAgICAgZW5jbG9zaW5nUGFyZW50LnByb2Nlc3NOZXN0ZWRUYWcodGhpcyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRmluZCBwYXJlbnQgdGFnIHdoaWNoIG11c3QgaW1wbGVtZW50IEF0dHJpYnV0ZUNvbnRhaW5lci4KKyAgICAgKiBAdGhyb3dzIEpzcEV4Y2VwdGlvbiBJZiB3ZSBjYW4ndCBmaW5kIGFuIGFwcHJvcHJpYXRlIGVuY2xvc2luZyB0YWcuCisgICAgICovCisgICAgcHJvdGVjdGVkIFB1dFRhZ1BhcmVudCBmaW5kRW5jbG9zaW5nUHV0VGFnUGFyZW50KCkgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBQdXRUYWdQYXJlbnQgcGFyZW50ID0KKyAgICAgICAgICAgICAgICAoUHV0VGFnUGFyZW50KSBmaW5kQW5jZXN0b3JXaXRoQ2xhc3ModGhpcywgUHV0VGFnUGFyZW50LmNsYXNzKTsKKworICAgICAgICAgICAgaWYgKHBhcmVudCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbigiRXJyb3IgLSB0YWcgcHV0IDogZW5jbG9zaW5nIHRhZyBkb2Vzbid0IGFjY2VwdCAncHV0JyB0YWcuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7CisKKyAgICAgICAgfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSnNwRXhjZXB0aW9uKCJFcnJvciAtIHRhZyBwdXQgOiBlbmNsb3NpbmcgdGFnIGRvZXNuJ3QgYWNjZXB0ICdwdXQnIHRhZy4iKTsKKyAgICAgICAgfQorICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL1B1dFRhZ1BhcmVudC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhMjQ5YmYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvUHV0VGFnUGFyZW50LmphdmEKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGFnbGliLnRpbGVzOworCitpbXBvcnQgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uOworCisvKioKKyAqIFRhZyBjbGFzc2VzIGltcGxlbWVudGluZyB0aGlzIGludGVyZmFjZSBjYW4gY29udGFpbiBuZXN0ZWQgUHV0VGFnLgorICogVGhpcyBpbnRlcmZhY2UgZGVmaW5lcyBhIG1ldGhvZCBjYWxsZWQgYnkgbmVzdGVkIHRhZ3MuCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgUHV0VGFnUGFyZW50IHsKKyAgLyoqCisgICAqIFByb2Nlc3MgdGhlIG5lc3RlZCB0YWcuCisgICAqIEBwYXJhbSBuZXN0ZWRUYWcgTmVzdGVkIHRhZyB0byBwcm9jZXNzLgorICAgKi8KKyAgdm9pZCBwcm9jZXNzTmVzdGVkVGFnKFB1dFRhZyBuZXN0ZWRUYWcgKSB0aHJvd3MgSnNwRXhjZXB0aW9uOworCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGFnLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE1ZWMzOQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUYWcuamF2YQpAQCAtMCwwICsxLDIwOSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGFnbGliLnRpbGVzOworCitpbXBvcnQgamF2YXguc2VydmxldC5qc3AuSnNwRXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5UYWdTdXBwb3J0OworCitpbXBvcnQgb3JnLmFwYWNoZS50YWdsaWIudGlsZXMudXRpbC5UYWdVdGlsczsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkNvbXBvbmVudENvbnRleHQ7CisKKworLyoqCisgKiBDdXN0b20gdGFnIGV4cG9zaW5nIGEgY29tcG9uZW50IGF0dHJpYnV0ZSB0byBwYWdlLgorICoKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVzZUF0dHJpYnV0ZVRhZyBleHRlbmRzIFRhZ1N1cHBvcnQgeworCisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJbnN0YW5jZSBWYXJpYWJsZXMKKworCisgICAgLyoqCisgICAgICogQ2xhc3MgbmFtZSBvZiBvYmplY3QuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgIGNsYXNzbmFtZSA9IG51bGw7CisKKworICAgIC8qKgorICAgICAqIFRoZSBzY29wZSBuYW1lLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHNjb3BlTmFtZSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBUaGUgc2NvcGUgdmFsdWUuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgc2NvcGUgPSBQYWdlQ29udGV4dC5QQUdFX1NDT1BFOworCisKKworICAgIC8qKgorICAgICAqIFRoZSBhdHRyaWJ1dGUgbmFtZSB0byBiZSBleHBvc2VkLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIGF0dHJpYnV0ZU5hbWUgPSBudWxsOworCisgICAgLyoqCisgICAgICogQXJlIGVycm9ycyBpZ25vcmVkLiBUaGlzIGlzIHRoZSBwcm9wZXJ0eSBmb3IgYXR0cmlidXRlICdpZ25vcmUnLgorICAgICAqIERlZmF1bHQgdmFsdWUgaXMgPGNvZGU+ZmFsc2U8L2NvZGU+LCB3aGljaCB0aHJvd3MgYW4gZXhjZXB0aW9uLgorICAgICAqIE9ubHkgImF0dHJpYnV0ZSBub3QgZm91bmQiIC0gZXJyb3JzIGFyZSBpZ25vcmVkLgorICAgICAqLworICBwcm90ZWN0ZWQgYm9vbGVhbiBpc0Vycm9ySWdub3JlZCA9IGZhbHNlOworCisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3BlcnRpZXMKKworCisgICAgLyoqCisgICAgICogUmVsZWFzZSBhbGwgYWxsb2NhdGVkIHJlc291cmNlcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCByZWxlYXNlKCkgeworCisgICAgICAgIHN1cGVyLnJlbGVhc2UoKTsKKyAgICAgICAgYXR0cmlidXRlTmFtZSA9IG51bGw7CisgICAgICAgIGNsYXNzbmFtZSA9IG51bGw7CisgICAgICAgIHNjb3BlID0gUGFnZUNvbnRleHQuUEFHRV9TQ09QRTsKKyAgICAgICAgc2NvcGVOYW1lID0gbnVsbDsKKyAgICAgICAgaXNFcnJvcklnbm9yZWQgPSBmYWxzZTsKKyAgICAgICAgICAvLyBQYXJlbnQgZG9lc24ndCBjbGVhciBpZCwgc28gd2UgZG8gaXQKKyAgICAgICAgICAvLyBidWcgcmVwb3J0ZWQgYnkgSGVhdGggQ2hpYXZldHRvbmUgb24gMTggTWFyIDIwMDIKKyAgICAgICAgaWQgPSBudWxsOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBjbGFzcyBuYW1lLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0Q2xhc3NuYW1lKCkgeworCisgIHJldHVybiAodGhpcy5jbGFzc25hbWUpOworCisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNsYXNzIG5hbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmV3IGNsYXNzIG5hbWUuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q2xhc3NuYW1lKFN0cmluZyBuYW1lKSB7CisKKyAgdGhpcy5jbGFzc25hbWUgPSBuYW1lOworCisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IG5hbWUuCisgICAgICovCisgIHB1YmxpYyB2b2lkIHNldE5hbWUoU3RyaW5nIHZhbHVlKXsKKyAgICB0aGlzLmF0dHJpYnV0ZU5hbWUgPSB2YWx1ZTsKKyAgfQorCisgICAgLyoqCisgICAgICogR2V0IG5hbWUuCisgICAgICovCisgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpCisgIHsKKyAgcmV0dXJuIGF0dHJpYnV0ZU5hbWU7CisgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgc2NvcGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2NvcGUgVGhlIG5ldyBzY29wZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTY29wZShTdHJpbmcgc2NvcGUpIHsKKyAgdGhpcy5zY29wZU5hbWUgPSBzY29wZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgc2NvcGUuCisgICAgICovCisgIHB1YmxpYyBTdHJpbmcgZ2V0U2NvcGUoKQorICB7CisgIHJldHVybiBzY29wZU5hbWU7CisgIH0KKworICAgIC8qKgorICAgICAqIFNldCBpZ25vcmUuCisgICAgICovCisgIHB1YmxpYyB2b2lkIHNldElnbm9yZShib29sZWFuIGlnbm9yZSkKKyAgICB7CisgICAgdGhpcy5pc0Vycm9ySWdub3JlZCA9IGlnbm9yZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgaWdub3JlLgorICAgICAqLworICBwdWJsaWMgYm9vbGVhbiBnZXRJZ25vcmUoKQorICB7CisgIHJldHVybiBpc0Vycm9ySWdub3JlZDsKKyAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIEV4cG9zZSB0aGUgcmVxdWVzdGVkIGF0dHJpYnV0ZSBmcm9tIGNvbXBvbmVudCBjb250ZXh0LgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBKc3BFeGNlcHRpb24gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZAorICAgICAqLworICBwdWJsaWMgaW50IGRvU3RhcnRUYWcoKSB0aHJvd3MgSnNwRXhjZXB0aW9uCisgICAgeworICAgICAgLy8gRG8gYSBsb2NhbCBjb3B5IG9mIGlkCisgICAgU3RyaW5nIGxvY2FsSWQ9dGhpcy5pZDsKKyAgICBpZiggbG9jYWxJZD09bnVsbCApCisgICAgICBsb2NhbElkPWF0dHJpYnV0ZU5hbWU7CisKKyAgICBDb21wb25lbnRDb250ZXh0IGNvbXBDb250ZXh0ID0gKENvbXBvbmVudENvbnRleHQpcGFnZUNvbnRleHQuZ2V0QXR0cmlidXRlKCBDb21wb25lbnRDb25zdGFudHMuQ09NUE9ORU5UX0NPTlRFWFQsIFBhZ2VDb250ZXh0LlJFUVVFU1RfU0NPUEUpOworICAgIGlmKCBjb21wQ29udGV4dCA9PSBudWxsICkKKyAgICAgIHRocm93IG5ldyBKc3BFeGNlcHRpb24gKCAiRXJyb3IgLSB0YWcgdXNlQXR0cmlidXRlIDogbm8gdGlsZXMgY29udGV4dCBmb3VuZC4iICk7CisKKyAgICBPYmplY3QgdmFsdWUgPSBjb21wQ29udGV4dC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7CisgICAgICAgIC8vIENoZWNrIGlmIHZhbHVlIGV4aXN0cyBhbmQgaWYgd2UgbXVzdCBzZW5kIGEgcnVudGltZSBleGNlcHRpb24KKyAgICBpZiggdmFsdWUgPT0gbnVsbCApCisgICAgICBpZighaXNFcnJvcklnbm9yZWQpCisgICAgICAgIHRocm93IG5ldyBKc3BFeGNlcHRpb24gKCAiRXJyb3IgLSB0YWcgdXNlQXR0cmlidXRlIDogYXR0cmlidXRlICciKyBhdHRyaWJ1dGVOYW1lICsgIicgbm90IGZvdW5kIGluIGNvbnRleHQuIENoZWNrIHRhZyBzeW50YXgiICk7CisgICAgICAgZWxzZQorICAgICAgICByZXR1cm4gU0tJUF9CT0RZOworCisgICAgaWYoIHNjb3BlTmFtZSAhPSBudWxsICkKKyAgICAgIHsKKyAgICAgIHNjb3BlID0gVGFnVXRpbHMuZ2V0U2NvcGUoIHNjb3BlTmFtZSwgUGFnZUNvbnRleHQuUEFHRV9TQ09QRSApOworICAgICAgaWYoc2NvcGUhPUNvbXBvbmVudENvbnN0YW50cy5DT01QT05FTlRfU0NPUEUpCisgICAgICAgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZShsb2NhbElkLCB2YWx1ZSwgc2NvcGUpOworICAgICAgfQorICAgICBlbHNlCisgICAgICBwYWdlQ29udGV4dC5zZXRBdHRyaWJ1dGUobG9jYWxJZCwgdmFsdWUpOworCisgICAgICAvLyBDb250aW51ZSBwcm9jZXNzaW5nIHRoaXMgcGFnZQorICAgIHJldHVybiBTS0lQX0JPRFk7CisgICAgfQorCisKKworCisgICAgLyoqCisgICAgICogQ2xlYW4gdXAgYWZ0ZXIgcHJvY2Vzc2luZyB0aGlzIGVudW1lcmF0aW9uLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBKc3BFeGNlcHRpb24gaWYgYSBKU1AgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZAorICAgICAqLworICBwdWJsaWMgaW50IGRvRW5kVGFnKCkgdGhyb3dzIEpzcEV4Y2VwdGlvbgorICAgIHsKKyAgICByZXR1cm4gKEVWQUxfUEFHRSk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGVpLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvVXNlQXR0cmlidXRlVGVpLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzgwZmJmMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy9Vc2VBdHRyaWJ1dGVUZWkuamF2YQpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS50YWdsaWIudGlsZXM7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRGF0YTsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LmpzcC50YWdleHQuVGFnRXh0cmFJbmZvOworaW1wb3J0IGphdmF4LnNlcnZsZXQuanNwLnRhZ2V4dC5WYXJpYWJsZUluZm87CisKKy8qKgorICogSW1wbGVtZW50YXRpb24gb2YgPGNvZGU+VGFnRXh0cmFJbmZvPC9jb2RlPiBmb3IgdGhlIDxiPlVzZUF0dHJpYnV0ZTwvYj4KKyAqIHRhZywgaWRlbnRpZnlpbmcgdGhlIHNjcmlwdGluZyBvYmplY3QocykgdG8gYmUgbWFkZSB2aXNpYmxlLgorICoKKyAqLworcHVibGljIGZpbmFsIGNsYXNzIFVzZUF0dHJpYnV0ZVRlaSBleHRlbmRzIFRhZ0V4dHJhSW5mbyB7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNjcmlwdGluZyB2YXJpYWJsZXMgdG8gYmUgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgVmFyaWFibGVJbmZvW10gZ2V0VmFyaWFibGVJbmZvKFRhZ0RhdGEgZGF0YSkgeworCisgICAgICBTdHJpbmcgY2xhc3NuYW1lID0gZGF0YS5nZXRBdHRyaWJ1dGVTdHJpbmcoImNsYXNzbmFtZSIpOworICAgICAgaWYoIGNsYXNzbmFtZSA9PSBudWxsICkKKyAgICAgICAgY2xhc3NuYW1lID0gImphdmEubGFuZy5PYmplY3QiOworICAgICAgU3RyaW5nIGlkID0gZGF0YS5nZXRBdHRyaWJ1dGVTdHJpbmcoImlkIik7CisgICAgICBpZiggaWQgPT0gbnVsbCApCisgICAgICAgIGlkID0gZGF0YS5nZXRBdHRyaWJ1dGVTdHJpbmcoIm5hbWUiKTsKKworICAgICAgcmV0dXJuIG5ldyBWYXJpYWJsZUluZm9bXSB7CisgICAgICBuZXcgVmFyaWFibGVJbmZvKGlkLAorICAgICAgICAgICAgICAgICAgICAgICBjbGFzc25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlSW5mby5BVF9FTkQpCisgICAgICB9OworICAgIH0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy9kb2MtZmlsZXMvdGlsZXNVTUwuZ2lmIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL2RvYy1maWxlcy90aWxlc1VNTC5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE4ZGZhZQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy9kb2MtZmlsZXMvdGlsZXNVTUwuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy9wYWNrYWdlLmh0bWwgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwODMzZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90YWdsaWIvdGlsZXMvcGFja2FnZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPlBhY2thZ2UgRG9jdW1lbnRhdGlvbiBmb3Igb3JnLmFwYWNoZS5zdHJ1dHMudGFnbGliLnRpbGVzIFBhY2thZ2U8L3RpdGxlPgorPC9oZWFkPgorIDxib2R5IGJnY29sb3I9IndoaXRlIj4KKyAgIAorCis8cD5UaGUgInRpbGVzIiB0YWcgbGlicmFyeSBjb250YWlucyB0YWdzIHRoYXQgYXJlIHVzZWZ1bCBpbgorY3JlYXRpbmcgZHluYW1pYyByZXVzYWJsZSBjb21wb25lbnRzLiA8L3A+Cis8aW1nIHNyYz0iZG9jLWZpbGVzL3RpbGVzVU1MLmdpZiIgYWx0PSJUYWdMaWIgVGlsZXMgVU1MIj4KKyAgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGFnbGliL3RpbGVzL3V0aWwvVGFnVXRpbHMuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzJmYTAwNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RhZ2xpYi90aWxlcy91dGlsL1RhZ1V0aWxzLmphdmEKQEAgLTAsMCArMSwzNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRhZ2xpYi50aWxlcy51dGlsOworCitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKKworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LmpzcC5Kc3BFeGNlcHRpb247CitpbXBvcnQgamF2YXguc2VydmxldC5qc3AuUGFnZUNvbnRleHQ7CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLlByb3BlcnR5VXRpbHM7CitpbXBvcnQgb3JnLmFwYWNoZS51dGlsLk1lc3NhZ2VSZXNvdXJjZXM7CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5HbG9iYWxzOworaW1wb3J0IG9yZy5hcGFjaGUudGFnbGliLnRpbGVzLkNvbXBvbmVudENvbnN0YW50czsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkNvbXBvbmVudENvbnRleHQ7CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5Db21wb25lbnREZWZpbml0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLlRpbGVzVXRpbDsKKworLyoqCisgKiBDb2xsZWN0aW9uIG9mIHV0aWxpdGllcy4KKyAqIFRoaXMgY2xhc3MgYWxzbyBzZXJ2ZXMgYXMgYW4gaW50ZXJmYWNlIGJldHdlZW4gQ29tcG9uZW50cyBhbmQgU3RydXRzLiBJZgorICogeW91IHdhbnQgdG8gcmlwIGF3YXkgU3RydXRzLCBzaW1wbHkgcmVpbXBsZW1lbnQgc29tZSBtZXRob2RzIGluIHRoaXMgY2xhc3MuCisgKiBZb3UgY2FuIGNvcHkgdGhlbSBmcm9tIFN0cnV0cy4KKyAqIDxwXD4KKyAqIDxpPlRoYW5rcyBmb3IgdGhlIHRpcC4gVGhhdCdzIGV4YWN0bHkgd2hhdCBJIGRpZCEgKERhdmlkIEdlYXJ5KTwvaT4KKyAqCisgKiBAYXV0aG9yIENlZHJpYyBEdW1vdWxpbgorICogQGF1dGhvciBEYXZpZCBHcmFoYW0KKyAqIEBhdXRob3IgRGF2aWQgR2VhcnkKKyAqLworcHVibGljIGNsYXNzIFRhZ1V0aWxzIHsKKyAgICAvKioKKyAgICAgKiBUaGUgbWVzc2FnZSByZXNvdXJjZXMgZm9yIHRoaXMgcGFja2FnZS4KKyAgICAgKiBUT0RPIFdlIG5lZWQgdG8gbW92ZSB0aGUgcmVsZXZhbnQgbWVzc2FnZXMgb3V0IG9mIHRoaXMgcHJvcGVydGllcyBmaWxlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIE1lc3NhZ2VSZXNvdXJjZXMgbWVzc2FnZXMgPQorICAgICAgICBNZXNzYWdlUmVzb3VyY2VzLmdldE1lc3NhZ2VSZXNvdXJjZXMoIm9yZy5hcGFjaGUudGlsZXMudGFnbGliLkxvY2FsU3RyaW5ncyIpOworCisgICAgLyoqCisgICAgICogTWFwcyBsb3dlcmNhc2UgSlNQIHNjb3BlIG5hbWVzIHRvIHRoZWlyIFBhZ2VDb250ZXh0IGludGVnZXIgY29uc3RhbnQKKyAgICAgKiB2YWx1ZXMuCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgTWFwIHNjb3BlcyA9IG5ldyBIYXNoTWFwKCk7CisKKyAgICAvKioKKyAgICAgKiBJbml0aWFsaXplIHRoZSBzY29wZSBuYW1lcyBtYXAgYW5kIHRoZSBlbmNvZGUgdmFyaWFibGUgd2l0aCB0aGUgCisgICAgICogSmF2YSAxLjQgbWV0aG9kIGlmIGF2YWlsYWJsZS4KKyAgICAgKi8KKyAgICBzdGF0aWMgeworICAgICAgICBzY29wZXMucHV0KCJwYWdlIiwgbmV3IEludGVnZXIoUGFnZUNvbnRleHQuUEFHRV9TQ09QRSkpOworICAgICAgICBzY29wZXMucHV0KCJyZXF1ZXN0IiwgbmV3IEludGVnZXIoUGFnZUNvbnRleHQuUkVRVUVTVF9TQ09QRSkpOworICAgICAgICBzY29wZXMucHV0KCJzZXNzaW9uIiwgbmV3IEludGVnZXIoUGFnZUNvbnRleHQuU0VTU0lPTl9TQ09QRSkpOworICAgICAgICBzY29wZXMucHV0KCJhcHBsaWNhdGlvbiIsIG5ldyBJbnRlZ2VyKFBhZ2VDb250ZXh0LkFQUExJQ0FUSU9OX1NDT1BFKSk7CisgICAgfQorCisgICAgLyoqIERlYnVnIGZsYWcgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGJvb2xlYW4gZGVidWcgPSB0cnVlOworICAgIAorICAgIC8qKgorICAgICogR2V0IHNjb3BlIHZhbHVlIGZyb20gc3RyaW5nIHZhbHVlCisgICAgKiBAcGFyYW0gc2NvcGVOYW1lIFNjb3BlIGFzIGEgU3RyaW5nLgorICAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZSBSZXR1cm5lZCBkZWZhdWx0IHZhbHVlLCBpZiBub3QgZm91bmQuCisgICAgKiBAcmV0dXJuIFNjb3BlIGFzIGFuIDxjb2RlPmludDwvY29kZT4sIG9yIDxjb2RlPmRlZmF1bHRWYWx1ZTwvY29kZT4gaWYgc2NvcGUgaXMgPGNvZGU+bnVsbDwvY29kZT4uCisgICAgKiBAdGhyb3dzIEpzcEV4Y2VwdGlvbiBTY29wZSBuYW1lIGlzIG5vdCByZWNvZ25pemVkIGFzIGEgdmFsaWQgc2NvcGUuCisgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGludCBnZXRTY29wZShTdHJpbmcgc2NvcGVOYW1lLCBpbnQgZGVmYXVsdFZhbHVlKSB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICAgICAgaWYgKHNjb3BlTmFtZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAoc2NvcGVOYW1lLmVxdWFsc0lnbm9yZUNhc2UoImNvbXBvbmVudCIpKSB7CisgICAgICAgICAgICByZXR1cm4gQ29tcG9uZW50Q29uc3RhbnRzLkNPTVBPTkVOVF9TQ09QRTsKKyAgICAgICAgICAgIAorICAgICAgICB9IGVsc2UgaWYgKHNjb3BlTmFtZS5lcXVhbHNJZ25vcmVDYXNlKCJ0ZW1wbGF0ZSIpKSB7CisgICAgICAgICAgICByZXR1cm4gQ29tcG9uZW50Q29uc3RhbnRzLkNPTVBPTkVOVF9TQ09QRTsKKyAgICAgICAgICAgIAorICAgICAgICB9IGVsc2UgaWYgKHNjb3BlTmFtZS5lcXVhbHNJZ25vcmVDYXNlKCJ0aWxlIikpIHsKKyAgICAgICAgICAgIHJldHVybiBDb21wb25lbnRDb25zdGFudHMuQ09NUE9ORU5UX1NDT1BFOworICAgICAgICAgICAgCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gZ2V0U2NvcGUoc2NvcGVOYW1lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sCisgICAgICogbm8gbWF0dGVyIHdoaWNoIHByb3BlcnR5IHJlZmVyZW5jZSBmb3JtYXQgaXMgdXNlZCwgd2l0aCBubworICAgICAqIHR5cGUgY29udmVyc2lvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYmVhbiBCZWFuIHdob3NlIHByb3BlcnR5IGlzIHRvIGJlIGV4dHJhY3RlZC4KKyAgICAgKiBAcGFyYW0gbmFtZSBQb3NzaWJseSBpbmRleGVkIGFuZC9vciBuZXN0ZWQgbmFtZSBvZiB0aGUgcHJvcGVydHkKKyAgICAgKiAgdG8gYmUgZXh0cmFjdGVkLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGlmIHRoZSBjYWxsZXIgZG9lcyBub3QgaGF2ZQorICAgICAqICBhY2Nlc3MgdG8gdGhlIHByb3BlcnR5IGFjY2Vzc29yIG1ldGhvZAorICAgICAqIEBleGNlcHRpb24gSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiBpZiB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kCisgICAgICogIHRocm93cyBhbiBleGNlcHRpb24KKyAgICAgKiBAZXhjZXB0aW9uIE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiBpZiBhbiBhY2Nlc3NvciBtZXRob2QgZm9yIHRoaXMKKyAgICAgKiAgcHJvcGV0eSBjYW5ub3QgYmUgZm91bmQuCisgICAgICogQGRlcHJlY2F0ZWQgVXNlIFByb3BlcnR5VXRpbHMuZ2V0UHJvcGVydHkoKSBkaXJlY3RseS4gIFRoaXMgd2lsbCBiZSByZW1vdmVkCisgICAgICogYWZ0ZXIgU3RydXRzIDEuMi4KKyAgICAgKi8KKwlwdWJsaWMgc3RhdGljIE9iamVjdCBnZXRQcm9wZXJ0eShPYmplY3QgYmVhbiwgU3RyaW5nIG5hbWUpCisJCXRocm93cworCQkJSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwKKwkJCUludm9jYXRpb25UYXJnZXRFeGNlcHRpb24sCisJCQlOb1N1Y2hNZXRob2RFeGNlcHRpb24geworCisJCXJldHVybiBQcm9wZXJ0eVV0aWxzLmdldFByb3BlcnR5KGJlYW4sIG5hbWUpOworCX0KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGJlYW4gZnJvbSBwYWdlIGNvbnRleHQsIHVzaW5nIHNwZWNpZmllZCBzY29wZS4KKyAgICAgKiBJZiBzY29wZSBpcyBub3Qgc2V0LCB1c2UgPGNvZGU+ZmluZEF0dHJpYnV0ZSgpPC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBiZWFuTmFtZSBOYW1lIG9mIGJlYW4gdG8gcmV0cmlldmUuCisgICAgICogQHBhcmFtIHNjb3BlTmFtZSBTY29wZSBvciA8Y29kZT5udWxsPC9jb2RlPi4gSWYgPGNvZGU+bnVsbDwvY29kZT4sIGJlYW4gaXMgc2VhcmNoZWQgdXNpbmcKKyAgICAgKiAgZmluZEF0dHJpYnV0ZSgpLgorICAgICAqIEBwYXJhbSBwYWdlQ29udGV4dCBDdXJyZW50IHBhZ2VDb250ZXh0LgorICAgICAqIEByZXR1cm4gUmVxdWVzdGVkIGJlYW4gb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgbm90IGZvdW5kLgorICAgICAqIEB0aHJvd3MgSnNwRXhjZXB0aW9uIFNjb3BlIG5hbWUgaXMgbm90IHJlY29nbml6ZWQgYXMgYSB2YWxpZCBzY29wZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE9iamVjdCByZXRyaWV2ZUJlYW4oU3RyaW5nIGJlYW5OYW1lLCBTdHJpbmcgc2NvcGVOYW1lLCBQYWdlQ29udGV4dCBwYWdlQ29udGV4dCkKKyAgICAgICAgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgIAorICAgICAgICBpZiAoc2NvcGVOYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBmaW5kQXR0cmlidXRlKGJlYW5OYW1lLCBwYWdlQ29udGV4dCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBEZWZhdWx0IHZhbHVlIGRvZXNuJ3QgbWF0dGVyIGJlY2F1c2Ugd2UgaGF2ZSBhbHJlYWR5IGNoZWNrIGl0CisgICAgICAgIGludCBzY29wZSA9IGdldFNjb3BlKHNjb3BlTmFtZSwgUGFnZUNvbnRleHQuUEFHRV9TQ09QRSk7CisgICAgICAgIAorICAgICAgICAvL3JldHVybiBwYWdlQ29udGV4dC5nZXRBdHRyaWJ1dGUoIGJlYW5OYW1lLCBzY29wZSApOworICAgICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKGJlYW5OYW1lLCBzY29wZSwgcGFnZUNvbnRleHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNlYXJjaCBhdHRyaWJ1dGUgaW4gZGlmZmVyZW50IGNvbnRleHRzLgorICAgICAqIEZpcnN0LCBjaGVjayBpbiBjb21wb25lbnQgY29udGV4dCwgdGhlbiB1c2UgcGFnZUNvbnRleHQuZmluZEF0dHJpYnV0ZSgpLgorICAgICAqIEBwYXJhbSBiZWFuTmFtZSBOYW1lIG9mIGJlYW4gdG8gcmV0cmlldmUuCisgICAgICogQHBhcmFtIHBhZ2VDb250ZXh0IEN1cnJlbnQgcGFnZUNvbnRleHQuCisgICAgICogQHJldHVybiBSZXF1ZXN0ZWQgYmVhbiBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiBub3QgZm91bmQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBPYmplY3QgZmluZEF0dHJpYnV0ZShTdHJpbmcgYmVhbk5hbWUsIFBhZ2VDb250ZXh0IHBhZ2VDb250ZXh0KSB7CisgICAgICAgIENvbXBvbmVudENvbnRleHQgY29tcENvbnRleHQgPSBDb21wb25lbnRDb250ZXh0LmdldENvbnRleHQocGFnZUNvbnRleHQuZ2V0UmVxdWVzdCgpKTsKKyAgICAgICAgCisgICAgICAgIGlmIChjb21wQ29udGV4dCAhPSBudWxsKSB7CisgICAgICAgICAgICBPYmplY3QgYXR0cmlidXRlID0gY29tcENvbnRleHQuZmluZEF0dHJpYnV0ZShiZWFuTmFtZSwgcGFnZUNvbnRleHQpOworICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFNlYXJjaCBpbiBwYWdlQ29udGV4dCBzY29wZXMKKyAgICAgICAgcmV0dXJuIHBhZ2VDb250ZXh0LmZpbmRBdHRyaWJ1dGUoYmVhbk5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBvYmplY3QgZnJvbSByZXF1ZXN0ZWQgY29udGV4dC4gUmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+IGlmIG5vdCBmb3VuZC4KKyAgICAgKiBDb250ZXh0IGNhbiBiZSAiY29tcG9uZW50IiBvciBub3JtYWwgSlNQIGNvbnRleHRzLgorICAgICAqIEBwYXJhbSBiZWFuTmFtZSBOYW1lIG9mIGJlYW4gdG8gcmV0cmlldmUuCisgICAgICogQHBhcmFtIHNjb3BlIFNjb3BlIGZyb20gd2hpY2ggYmVhbiBtdXN0IGJlIHJldHJpZXZlZC4KKyAgICAgKiBAcGFyYW0gcGFnZUNvbnRleHQgQ3VycmVudCBwYWdlQ29udGV4dC4KKyAgICAgKiBAcmV0dXJuIFJlcXVlc3RlZCBiZWFuIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIG5vdCBmb3VuZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIE9iamVjdCBnZXRBdHRyaWJ1dGUoU3RyaW5nIGJlYW5OYW1lLCBpbnQgc2NvcGUsIFBhZ2VDb250ZXh0IHBhZ2VDb250ZXh0KSB7CisgICAgICAgIGlmIChzY29wZSA9PSBDb21wb25lbnRDb25zdGFudHMuQ09NUE9ORU5UX1NDT1BFKSB7CisgICAgICAgICAgICBDb21wb25lbnRDb250ZXh0IGNvbXBDb250ZXh0ID0gQ29tcG9uZW50Q29udGV4dC5nZXRDb250ZXh0KHBhZ2VDb250ZXh0LmdldFJlcXVlc3QoKSk7CisgICAgICAgICAgICByZXR1cm4gY29tcENvbnRleHQuZ2V0QXR0cmlidXRlKGJlYW5OYW1lKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcGFnZUNvbnRleHQuZ2V0QXR0cmlidXRlKGJlYW5OYW1lLCBzY29wZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTG9jYXRlIGFuZCByZXR1cm4gdGhlIHNwZWNpZmllZCBwcm9wZXJ0eSBvZiB0aGUgc3BlY2lmaWVkIGJlYW4sIGZyb20KKyAgICAgKiBhbiBvcHRpb25hbGx5IHNwZWNpZmllZCBzY29wZSwgaW4gdGhlIHNwZWNpZmllZCBwYWdlIGNvbnRleHQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFnZUNvbnRleHQgUGFnZSBjb250ZXh0IHRvIGJlIHNlYXJjaGVkLgorICAgICAqIEBwYXJhbSBiZWFuTmFtZSBOYW1lIG9mIHRoZSBiZWFuIHRvIGJlIHJldHJpZXZlZC4KKyAgICAgKiBAcGFyYW0gYmVhblByb3BlcnR5IE5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGJlIHJldHJpZXZlZCwgb3IKKyAgICAgKiAgPGNvZGU+bnVsbDwvY29kZT4gdG8gcmV0cmlldmUgdGhlIGJlYW4gaXRzZWxmLgorICAgICAqIEBwYXJhbSBiZWFuU2NvcGUgU2NvcGUgdG8gYmUgc2VhcmNoZWQgKHBhZ2UsIHJlcXVlc3QsIHNlc3Npb24sIGFwcGxpY2F0aW9uKQorICAgICAqICBvciA8Y29kZT5udWxsPC9jb2RlPiB0byB1c2UgPGNvZGU+ZmluZEF0dHJpYnV0ZSgpPC9jb2RlPiBpbnN0ZWFkLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBKc3BFeGNlcHRpb24gU2NvcGUgbmFtZSBpcyBub3QgcmVjb2duaXplZCBhcyBhIHZhbGlkIHNjb3BlCisgICAgICogQGV4Y2VwdGlvbiBKc3BFeGNlcHRpb24gaWYgdGhlIHNwZWNpZmllZCBiZWFuIGlzIG5vdCBmb3VuZAorICAgICAqIEBleGNlcHRpb24gSnNwRXhjZXB0aW9uIGlmIGFjY2Vzc2luZyB0aGlzIHByb3BlcnR5IGNhdXNlcyBhbgorICAgICAqICBJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLCBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24sCisgICAgICogIEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24sIG9yIE5vU3VjaE1ldGhvZEV4Y2VwdGlvbgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgT2JqZWN0IGdldFJlYWxWYWx1ZUZyb21CZWFuKAorICAgICAgICBTdHJpbmcgYmVhbk5hbWUsCisgICAgICAgIFN0cmluZyBiZWFuUHJvcGVydHksCisgICAgICAgIFN0cmluZyBiZWFuU2NvcGUsCisgICAgICAgIFBhZ2VDb250ZXh0IHBhZ2VDb250ZXh0KQorICAgICAgICB0aHJvd3MgSnNwRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgT2JqZWN0IHJlYWxWYWx1ZTsKKyAgICAgICAgICAgIE9iamVjdCBiZWFuID0gcmV0cmlldmVCZWFuKGJlYW5OYW1lLCBiZWFuU2NvcGUsIHBhZ2VDb250ZXh0KTsKKyAgICAgICAgICAgIGlmIChiZWFuICE9IG51bGwgJiYgYmVhblByb3BlcnR5ICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICByZWFsVmFsdWUgPSBQcm9wZXJ0eVV0aWxzLmdldFByb3BlcnR5KGJlYW4sIGJlYW5Qcm9wZXJ0eSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlYWxWYWx1ZSA9IGJlYW47IC8vIHZhbHVlIGNhbiBiZSBudWxsCisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcmVhbFZhbHVlOworICAgICAgICAgICAgCisgICAgICAgIH0gY2F0Y2ggKE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiRXJyb3IgLSBjb21wb25lbnQuUHV0QXR0cmlidXRlVGFnIDogRXJyb3Igd2hpbGUgcmV0cmlldmluZyB2YWx1ZSBmcm9tIGJlYW4gJyIKKyAgICAgICAgICAgICAgICAgICAgKyBiZWFuTmFtZQorICAgICAgICAgICAgICAgICAgICArICInIHdpdGggcHJvcGVydHkgJyIKKyAgICAgICAgICAgICAgICAgICAgKyBiZWFuUHJvcGVydHkKKyAgICAgICAgICAgICAgICAgICAgKyAiJyBpbiBzY29wZSAnIgorICAgICAgICAgICAgICAgICAgICArIGJlYW5TY29wZQorICAgICAgICAgICAgICAgICAgICArICInLiAoZXhjZXB0aW9uIDogIgorICAgICAgICAgICAgICAgICAgICArIGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICB9IGNhdGNoIChJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSnNwRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJFcnJvciAtIGNvbXBvbmVudC5QdXRBdHRyaWJ1dGVUYWcgOiBFcnJvciB3aGlsZSByZXRyaWV2aW5nIHZhbHVlIGZyb20gYmVhbiAnIgorICAgICAgICAgICAgICAgICAgICArIGJlYW5OYW1lCisgICAgICAgICAgICAgICAgICAgICsgIicgd2l0aCBwcm9wZXJ0eSAnIgorICAgICAgICAgICAgICAgICAgICArIGJlYW5Qcm9wZXJ0eQorICAgICAgICAgICAgICAgICAgICArICInIGluIHNjb3BlICciCisgICAgICAgICAgICAgICAgICAgICsgYmVhblNjb3BlCisgICAgICAgICAgICAgICAgICAgICsgIicuIChleGNlcHRpb24gOiAiCisgICAgICAgICAgICAgICAgICAgICsgZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIH0gY2F0Y2ggKElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBKc3BFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIkVycm9yIC0gY29tcG9uZW50LlB1dEF0dHJpYnV0ZVRhZyA6IEVycm9yIHdoaWxlIHJldHJpZXZpbmcgdmFsdWUgZnJvbSBiZWFuICciCisgICAgICAgICAgICAgICAgICAgICsgYmVhbk5hbWUKKyAgICAgICAgICAgICAgICAgICAgKyAiJyB3aXRoIHByb3BlcnR5ICciCisgICAgICAgICAgICAgICAgICAgICsgYmVhblByb3BlcnR5CisgICAgICAgICAgICAgICAgICAgICsgIicgaW4gc2NvcGUgJyIKKyAgICAgICAgICAgICAgICAgICAgKyBiZWFuU2NvcGUKKyAgICAgICAgICAgICAgICAgICAgKyAiJy4gKGV4Y2VwdGlvbiA6ICIKKyAgICAgICAgICAgICAgICAgICAgKyBleC5nZXRNZXNzYWdlKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogU3RvcmUgYmVhbiBpbiByZXF1ZXN0ZWQgY29udGV4dC4KKyAgICAgKiBJZiBzY29wZSBpcyA8Y29kZT5udWxsPC9jb2RlPiwgc2F2ZSBpdCBpbiBSRVFVRVNUX1NDT1BFIGNvbnRleHQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFnZUNvbnRleHQgQ3VycmVudCBwYWdlQ29udGV4dC4KKyAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBiZWFuLgorICAgICAqIEBwYXJhbSBzY29wZSBTY29wZSB1bmRlciB3aGljaCBiZWFuIGlzIHNhdmVkIChwYWdlLCByZXF1ZXN0LCBzZXNzaW9uLCBhcHBsaWNhdGlvbikKKyAgICAgKiAgb3IgPGNvZGU+bnVsbDwvY29kZT4gdG8gc3RvcmUgaW4gPGNvZGU+cmVxdWVzdCgpPC9jb2RlPiBpbnN0ZWFkLgorICAgICAqIEBwYXJhbSB2YWx1ZSBCZWFuIHZhbHVlIHRvIHN0b3JlLgorICAgICAqCisgICAgICogQGV4Y2VwdGlvbiBKc3BFeGNlcHRpb24gU2NvcGUgbmFtZSBpcyBub3QgcmVjb2duaXplZCBhcyBhIHZhbGlkIHNjb3BlCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNldEF0dHJpYnV0ZSgKKyAgICAgICAgUGFnZUNvbnRleHQgcGFnZUNvbnRleHQsCisgICAgICAgIFN0cmluZyBuYW1lLAorICAgICAgICBPYmplY3QgdmFsdWUsCisgICAgICAgIFN0cmluZyBzY29wZSkKKyAgICAgICAgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgICAgICAKKyAgICAgICAgaWYgKHNjb3BlID09IG51bGwpCisgICAgICAgICAgICBwYWdlQ29udGV4dC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIFBhZ2VDb250ZXh0LlJFUVVFU1RfU0NPUEUpOworICAgICAgICBlbHNlIGlmIChzY29wZS5lcXVhbHNJZ25vcmVDYXNlKCJwYWdlIikpCisgICAgICAgICAgICBwYWdlQ29udGV4dC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIFBhZ2VDb250ZXh0LlBBR0VfU0NPUEUpOworICAgICAgICBlbHNlIGlmIChzY29wZS5lcXVhbHNJZ25vcmVDYXNlKCJyZXF1ZXN0IikpCisgICAgICAgICAgICBwYWdlQ29udGV4dC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIFBhZ2VDb250ZXh0LlJFUVVFU1RfU0NPUEUpOworICAgICAgICBlbHNlIGlmIChzY29wZS5lcXVhbHNJZ25vcmVDYXNlKCJzZXNzaW9uIikpCisgICAgICAgICAgICBwYWdlQ29udGV4dC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIFBhZ2VDb250ZXh0LlNFU1NJT05fU0NPUEUpOworICAgICAgICBlbHNlIGlmIChzY29wZS5lcXVhbHNJZ25vcmVDYXNlKCJhcHBsaWNhdGlvbiIpKQorICAgICAgICAgICAgcGFnZUNvbnRleHQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBQYWdlQ29udGV4dC5BUFBMSUNBVElPTl9TQ09QRSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbigiRXJyb3IgLSBiYWQgc2NvcGUgbmFtZSAnIiArIHNjb3BlICsgIiciKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFN0b3JlIGJlYW4gaW4gUkVRVUVTVF9TQ09QRSBjb250ZXh0LgorICAgICAqCisgICAgICogQHBhcmFtIHBhZ2VDb250ZXh0IEN1cnJlbnQgcGFnZUNvbnRleHQuCisgICAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgYmVhbi4KKyAgICAgKiBAcGFyYW0gYmVhblZhbHVlIEJlYW4gdmFsdWUgdG8gc3RvcmUuCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uIEpzcEV4Y2VwdGlvbiBTY29wZSBuYW1lIGlzIG5vdCByZWNvZ25pemVkIGFzIGEgdmFsaWQgc2NvcGUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0QXR0cmlidXRlKFBhZ2VDb250ZXh0IHBhZ2VDb250ZXh0LCBTdHJpbmcgbmFtZSwgT2JqZWN0IGJlYW5WYWx1ZSkKKyAgICAgICAgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgIHBhZ2VDb250ZXh0LnNldEF0dHJpYnV0ZShuYW1lLCBiZWFuVmFsdWUsIFBhZ2VDb250ZXh0LlJFUVVFU1RfU0NPUEUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNhdmUgdGhlIHNwZWNpZmllZCBleGNlcHRpb24gYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZSBmb3IgbGF0ZXIgdXNlLgorICAgICAqCisgICAgICogQHBhcmFtIHBhZ2VDb250ZXh0IFRoZSBQYWdlQ29udGV4dCBmb3IgdGhlIGN1cnJlbnQgcGFnZS4KKyAgICAgKiBAcGFyYW0gZXhjZXB0aW9uIFRoZSBleGNlcHRpb24gdG8gYmUgc2F2ZWQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHNhdmVFeGNlcHRpb24oUGFnZUNvbnRleHQgcGFnZUNvbnRleHQsIFRocm93YWJsZSBleGNlcHRpb24pIHsKKyAgICAgICAgcGFnZUNvbnRleHQuc2V0QXR0cmlidXRlKEdsb2JhbHMuRVhDRVBUSU9OX0tFWSwgZXhjZXB0aW9uLCBQYWdlQ29udGV4dC5SRVFVRVNUX1NDT1BFKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgY29tcG9uZW50IGRlZmluaXRpb24gYnkgaXRzIG5hbWUuCisgICAgICogQHBhcmFtIG5hbWUgRGVmaW5pdGlvbiBuYW1lLgorICAgICAqIEBwYXJhbSBwYWdlQ29udGV4dCBUaGUgUGFnZUNvbnRleHQgZm9yIHRoZSBjdXJyZW50IHBhZ2UuCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24gLQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQ29tcG9uZW50RGVmaW5pdGlvbiBnZXRDb21wb25lbnREZWZpbml0aW9uKFN0cmluZyBuYW1lLCBQYWdlQ29udGV4dCBwYWdlQ29udGV4dCkKKyAgICAgICAgdGhyb3dzIEpzcEV4Y2VwdGlvbiB7CisgICAgICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHJldHVybiBUaWxlc1V0aWwuZ2V0RGVmaW5pdGlvbigKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIHBhZ2VDb250ZXh0LmdldFJlcXVlc3QoKSwKKyAgICAgICAgICAgICAgICBwYWdlQ29udGV4dC5nZXRTZXJ2bGV0Q29udGV4dCgpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgfSBjYXRjaCAoTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEpzcEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiRXJyb3IgOiBDYW4ndCBnZXQgY29tcG9uZW50IGRlZmluaXRpb24gZm9yICciCisgICAgICAgICAgICAgICAgICAgICsgbmFtZQorICAgICAgICAgICAgICAgICAgICArICInLiBDaGVjayBpZiB0aGlzIG5hbWUgZXhpc3QgaW4gY29tcG9uZW50IGRlZmluaXRpb25zLiIpOworICAgICAgICB9IGNhdGNoIChGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24gZXgpIHsgLy8gZmFjdG9yeSBub3QgZm91bmQuCisgICAgICAgICAgICB0aHJvdyBuZXcgSnNwRXhjZXB0aW9uKGV4LmdldE1lc3NhZ2UoKSk7CisgICAgICAgICAgICAKKyAgICAgICAgfSBjYXRjaCAoRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICBpZiAoZGVidWcpCisgICAgICAgICAgICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICAgICAgICAvLyBTYXZlIGV4Y2VwdGlvbiB0byBiZSBhYmxlIHRvIHNob3cgaXQgbGF0ZXIKKyAgICAgICAgICAgIHNhdmVFeGNlcHRpb24ocGFnZUNvbnRleHQsIGV4KTsKKyAgICAgICAgICAgIHRocm93IG5ldyBKc3BFeGNlcHRpb24oZXguZ2V0TWVzc2FnZSgpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKioKKyAgICAgKiBDb252ZXJ0cyB0aGUgc2NvcGUgbmFtZSBpbnRvIGl0cyBjb3JyZXNwb25kaW5nIFBhZ2VDb250ZXh0IGNvbnN0YW50IHZhbHVlLgorICAgICAqIEBwYXJhbSBzY29wZU5hbWUgQ2FuIGJlICJwYWdlIiwgInJlcXVlc3QiLCAic2Vzc2lvbiIsIG9yICJhcHBsaWNhdGlvbiIgaW4gYW55CisgICAgICogY2FzZS4KKyAgICAgKiBAcmV0dXJuIFRoZSBjb25zdGFudCByZXByZXNlbnRpbmcgdGhlIHNjb3BlIChpZS4gUGFnZUNvbnRleHQuUkVRVUVTVF9TQ09QRSkuCisgICAgICogQHRocm93cyBKc3BFeGNlcHRpb24gaWYgdGhlIHNjb3BlTmFtZSBpcyBub3QgYSB2YWxpZCBuYW1lLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgaW50IGdldFNjb3BlKFN0cmluZyBzY29wZU5hbWUpIHRocm93cyBKc3BFeGNlcHRpb24geworICAgICAgICBJbnRlZ2VyIHNjb3BlID0gKEludGVnZXIpIHNjb3Blcy5nZXQoc2NvcGVOYW1lLnRvTG93ZXJDYXNlKCkpOworCisgICAgICAgIGlmIChzY29wZSA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSnNwRXhjZXB0aW9uKG1lc3NhZ2VzLmdldE1lc3NhZ2UoImxvb2t1cC5zY29wZSIsIHNjb3BlKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc2NvcGUuaW50VmFsdWUoKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9BdHRyaWJ1dGVEZWZpbml0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9BdHRyaWJ1dGVEZWZpbml0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDVjMDQwYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL0F0dHJpYnV0ZURlZmluaXRpb24uamF2YQpAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS50aWxlczsKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworCisgIC8qKgorICAgKiBBdHRyaWJ1dGUgZGVmaW5pdGlvbiB1c2VkIGluIGEgY29tcG9uZW50IGRlZmluaXRpb24uCisgICAqCisgICAqLworcHVibGljIGludGVyZmFjZSBBdHRyaWJ1dGVEZWZpbml0aW9uIGV4dGVuZHMgU2VyaWFsaXphYmxlCit7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdmFsdWUgaG9sZCBieSB0aGlzIHR5cGVkIGF0dHJpYnV0ZS4KKyAgICAgKi8KKyAgcHVibGljIE9iamVjdCBnZXRWYWx1ZSgpOworICAKKyAgICAvKioKKyAgICAgKiBTZXQgcm9sZSBhdHRyaWJ1dGUuCisgICAgICovCisgIHB1YmxpYyB2b2lkIHNldFJvbGUoU3RyaW5nIHJvbGUpOworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvQ29tcG9uZW50Q29udGV4dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3MTQyYTIKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9Db21wb25lbnRDb250ZXh0LmphdmEKQEAgLTAsMCArMSwxOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzOworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb25zOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0OworCitpbXBvcnQgb3JnLmFwYWNoZS50YWdsaWIudGlsZXMuQ29tcG9uZW50Q29uc3RhbnRzOworCisvKioKKyAqIENvbXBvbmVudCBjb250ZXh0LgorICovCitwdWJsaWMgY2xhc3MgQ29tcG9uZW50Q29udGV4dCBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSB7CisKKyAgICAvKioKKyAgICAgKiBDb21wb25lbnQgYXR0cmlidXRlcy4KKyAgICAgKi8KKyAgICBwcml2YXRlIE1hcCBhdHRyaWJ1dGVzPW51bGw7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcG9uZW50Q29udGV4dCgpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKiBDcmVhdGUgYSBjb250ZXh0IGFuZCBzZXQgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuCisgICAgICogQHBhcmFtIGF0dHJpYnV0ZXMgQXR0cmlidXRlcyB0byBpbml0aWFsaXplIGNvbnRleHQuCisgICAgICovCisgICAgcHVibGljIENvbXBvbmVudENvbnRleHQoTWFwIGF0dHJpYnV0ZXMpIHsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMgIT0gbnVsbCkgeworICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzID0gbmV3IEhhc2hNYXAoYXR0cmlidXRlcyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgYWxsIGF0dHJpYnV0ZXMgdG8gdGhpcyBjb250ZXh0LgorICAgICAqIENvcGllcyBhbGwgb2YgdGhlIG1hcHBpbmdzIGZyb20gdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGUgbWFwIHRvIHRoaXMgY29udGV4dC4KKyAgICAgKiBOZXcgYXR0cmlidXRlIG1hcHBpbmdzIHdpbGwgcmVwbGFjZSBhbnkgbWFwcGluZ3MgdGhhdCB0aGlzIGNvbnRleHQgaGFkIGZvciBhbnkgb2YgdGhlIGtleXMKKyAgICAgKiBjdXJyZW50bHkgaW4gdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGUgbWFwLgorICAgICAqIEBwYXJhbSBuZXdBdHRyaWJ1dGVzIEF0dHJpYnV0ZXMgdG8gYWRkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGFkZEFsbChNYXAgbmV3QXR0cmlidXRlcykgeworICAgICAgICBpZiAoYXR0cmlidXRlcyA9PSBudWxsKSB7CisgICAgICAgICAgICBhdHRyaWJ1dGVzID0gbmV3IEhhc2hNYXAobmV3QXR0cmlidXRlcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGF0dHJpYnV0ZXMucHV0QWxsKG5ld0F0dHJpYnV0ZXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFkZCBhbGwgbWlzc2luZyBhdHRyaWJ1dGVzIHRvIHRoaXMgY29udGV4dC4KKyAgICAgKiBDb3BpZXMgYWxsIG9mIHRoZSBtYXBwaW5ncyBmcm9tIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlcyBtYXAgdG8gdGhpcyBjb250ZXh0LgorICAgICAqIE5ldyBhdHRyaWJ1dGUgbWFwcGluZ3Mgd2lsbCBiZSBhZGRlZCBvbmx5IGlmIHRoZXkgZG9uJ3QgYWxyZWFkeSBleGlzdCBpbgorICAgICAqIHRoaXMgY29udGV4dC4KKyAgICAgKiBAcGFyYW0gZGVmYXVsdEF0dHJpYnV0ZXMgQXR0cmlidXRlcyB0byBhZGQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWRkTWlzc2luZyhNYXAgZGVmYXVsdEF0dHJpYnV0ZXMpIHsKKyAgICAgICAgaWYgKGRlZmF1bHRBdHRyaWJ1dGVzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMgPT0gbnVsbCkgeworICAgICAgICAgICAgYXR0cmlidXRlcyA9IG5ldyBIYXNoTWFwKGRlZmF1bHRBdHRyaWJ1dGVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFNldCBlbnRyaWVzID0gZGVmYXVsdEF0dHJpYnV0ZXMuZW50cnlTZXQoKTsKKyAgICAgICAgSXRlcmF0b3IgaXRlcmF0b3IgPSBlbnRyaWVzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpdGVyYXRvci5oYXNOZXh0KCkpIHsKKyAgICAgICAgICAgIE1hcC5FbnRyeSBlbnRyeSA9IChNYXAuRW50cnkpIGl0ZXJhdG9yLm5leHQoKTsKKyAgICAgICAgICAgIGlmICghYXR0cmlidXRlcy5jb250YWluc0tleShlbnRyeS5nZXRLZXkoKSkpIHsKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLnB1dChlbnRyeS5nZXRLZXkoKSwgZW50cnkuZ2V0VmFsdWUoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYW4gYXR0cmlidXRlIGZyb20gY29udGV4dC4KKyAgICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBhdHRyaWJ1dGUuCisgICAgICogQHJldHVybiA8e09iamVjdH0+CisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRBdHRyaWJ1dGUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMgPT0gbnVsbCl7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXMuZ2V0KG5hbWUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBuYW1lcyBvZiBhbGwgYXR0cmlidXRlcy4KKyAgICAgKiBAcmV0dXJuIDx7T2JqZWN0fT4KKyAgICAgKi8KKyAgICBwdWJsaWMgSXRlcmF0b3IgZ2V0QXR0cmlidXRlTmFtZXMoKSB7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBDb2xsZWN0aW9ucy5FTVBUWV9MSVNULml0ZXJhdG9yKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHV0IGEgbmV3IGF0dHJpYnV0ZSB0byBjb250ZXh0LgorICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZS4KKyAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBwdXRBdHRyaWJ1dGUoU3RyaW5nIG5hbWUsIE9iamVjdCB2YWx1ZSkgeworICAgICAgICBpZiAoYXR0cmlidXRlcyA9PSBudWxsKSB7CisgICAgICAgICAgICBhdHRyaWJ1dGVzID0gbmV3IEhhc2hNYXAoKTsKKyAgICAgICAgfQorCisgICAgICAgIGF0dHJpYnV0ZXMucHV0KG5hbWUsIHZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBGaW5kIG9iamVjdCBpbiBvbmUgb2YgdGhlIGNvbnRleHRzLgorICAgICAqIE9yZGVyIDogY29tcG9uZW50IHRoZW4gcGFnZUNvbnRleHQuZmluZEF0dHJpYnV0ZSgpCisgICAgICogQHBhcmFtIGJlYW5OYW1lIE5hbWUgb2YgdGhlIGJlYW4gdG8gZmluZC4KKyAgICAgKiBAcGFyYW0gcGFnZUNvbnRleHQgUGFnZSBjb250ZXh0LgorICAgICAqIEByZXR1cm4gUmVxdWVzdGVkIGJlYW4gb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgbm90IGZvdW5kLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZmluZEF0dHJpYnV0ZShTdHJpbmcgYmVhbk5hbWUsIFBhZ2VDb250ZXh0IHBhZ2VDb250ZXh0KSB7CisgICAgICAgIE9iamVjdCBhdHRyaWJ1dGUgPSBnZXRBdHRyaWJ1dGUoYmVhbk5hbWUpOworICAgICAgICBpZiAoYXR0cmlidXRlID09IG51bGwpIHsKKyAgICAgICAgICAgIGF0dHJpYnV0ZSA9IHBhZ2VDb250ZXh0LmZpbmRBdHRyaWJ1dGUoYmVhbk5hbWUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gYXR0cmlidXRlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBvYmplY3QgZnJvbSByZXF1ZXN0ZWQgY29udGV4dC4KKyAgICAgKiBDb250ZXh0IGNhbiBiZSAnY29tcG9uZW50Jy4KKyAgICAgKiBAcGFyYW0gYmVhbk5hbWUgTmFtZSBvZiB0aGUgYmVhbiB0byBmaW5kLgorICAgICAqIEBwYXJhbSBzY29wZSBTZWFyY2ggc2NvcGUgKHNlZSB7QGxpbmsgUGFnZUNvbnRleHR9KS4KKyAgICAgKiBAcGFyYW0gcGFnZUNvbnRleHQgUGFnZSBjb250ZXh0LgorICAgICAqIEByZXR1cm4gcmVxdWVzdGVkIGJlYW4gb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgbm90IGZvdW5kLgorICAgICAqLworICAgIHB1YmxpYyBPYmplY3QgZ2V0QXR0cmlidXRlKAorICAgICAgICBTdHJpbmcgYmVhbk5hbWUsCisgICAgICAgIGludCBzY29wZSwKKyAgICAgICAgUGFnZUNvbnRleHQgcGFnZUNvbnRleHQpIHsKKyAgICAgICAgICAgIAorICAgICAgICBpZiAoc2NvcGUgPT0gQ29tcG9uZW50Q29uc3RhbnRzLkNPTVBPTkVOVF9TQ09QRSl7CisgICAgICAgICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKGJlYW5OYW1lKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIHBhZ2VDb250ZXh0LmdldEF0dHJpYnV0ZShiZWFuTmFtZSwgc2NvcGUpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBjb21wb25lbnQgY29udGV4dCBmcm9tIHJlcXVlc3QuCisgICAgICogQHBhcmFtIHJlcXVlc3QgU2VydmxldFJlcXVlc3QuCisgICAgICogQHJldHVybiBDb21wb25lbnRDb250ZXh0CisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBDb21wb25lbnRDb250ZXh0IGdldENvbnRleHQoU2VydmxldFJlcXVlc3QgcmVxdWVzdCkgeworICAgICAgICByZXR1cm4gKENvbXBvbmVudENvbnRleHQpIHJlcXVlc3QuZ2V0QXR0cmlidXRlKAorICAgICAgICAgICAgQ29tcG9uZW50Q29uc3RhbnRzLkNPTVBPTkVOVF9DT05URVhUKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdG9yZSBjb21wb25lbnQgY29udGV4dCBpbnRvIHJlcXVlc3QuCisgICAgICogQHBhcmFtIGNvbnRleHQgQ29tcG9uZW50Q29udGV4dCB0byBzdG9yZS4KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBSZXF1ZXN0IHRvIHN0b3JlIENvbXBvbmVudENvbnRleHQuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyB2b2lkIHNldENvbnRleHQoCisgICAgICAgIENvbXBvbmVudENvbnRleHQgY29udGV4dCwKKyAgICAgICAgU2VydmxldFJlcXVlc3QgcmVxdWVzdCkgeworICAgICAgICAgICAgCisgICAgICAgIHJlcXVlc3Quc2V0QXR0cmlidXRlKENvbXBvbmVudENvbnN0YW50cy5DT01QT05FTlRfQ09OVEVYVCwgY29udGV4dCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvQ29tcG9uZW50RGVmaW5pdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjMWVjOGEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9Db21wb25lbnREZWZpbml0aW9uLmphdmEKQEAgLTAsMCArMSw1NDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzOworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMueG1sRGVmaW5pdGlvbi5YbWxEZWZpbml0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuVGlsZXNVdGlsOworCisvKioKKyAqIERlZmluaXRpb24gb2YgYSB0ZW1wbGF0ZSAvIGNvbXBvbmVudCBhdHRyaWJ1dGVzLgorICogQXR0cmlidXRlcyBvZiBhIGNvbXBvbmVudCBjYW4gYmUgZGVmaW5lZCB3aXRoIHRoZSBoZWxwIG9mIHRoaXMgY2xhc3MuCisgKiBBbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIGNhbiBiZSB1c2VkIGFzIGEgYmVhbiwgYW5kIHBhc3NlZCB0byAnaW5zZXJ0JyB0YWcuCisgKgorICogQGF1dGhvciBDZWRyaWMgRHVtb3VsaW4KKyAqIEBhdXRob3IgRGF2aWQgR2VhcnkKKyAqLworcHVibGljIGNsYXNzIENvbXBvbmVudERlZmluaXRpb24gaW1wbGVtZW50cyBTZXJpYWxpemFibGUgeworCisgICAgLyoqCisgICAgICogQ29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyhDb21wb25lbnREZWZpbml0aW9uLmNsYXNzKTsKKworICAgIC8qKgorICAgICAqIERlZmluaXRpb24gbmFtZQorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgbmFtZSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBDb21wb25lbnQgLyB0ZW1wbGF0ZSBwYXRoIChVUkwpLgorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgcGF0aCA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBBdHRyaWJ1dGVzIGRlZmluZWQgZm9yIHRoZSBjb21wb25lbnQuCisgICAgICovCisgICAgcHJvdGVjdGVkIE1hcCBhdHRyaWJ1dGVzID0gbnVsbDsKKworICAgIC8qKiAKKyAgICAgKiBSb2xlIGFzc29jaWF0ZWQgdG8gZGVmaW5pdGlvbi4gCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyByb2xlID0gbnVsbDsKKworICAgIC8qKiBBc3NvY2lhdGVkIENvbnRyb2xsZXIgVVJMIG9yIGNsYXNzbmFtZSwgaWYgZGVmaW5lZCAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgY29udHJvbGxlciA9IG51bGw7CisKKyAgICAvKiogCisgICAgICogQXNzb2NpYXRlZCBDb250cm9sbGVyIHR5cGVuYW1lLCBpZiBjb250cm9sbGVyTmFtZSBkZWZpbmVkLgorICAgICAqIENhbiBiZSBDT05UUk9MTEVSLCBBQ1RJT04gb3IgVVJMLCBvciBudWxsLiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGNvbnRyb2xsZXJUeXBlID0gbnVsbDsKKworICAgIC8qKiAKKyAgICAgKiBDb250cm9sbGVyIG5hbWUgdHlwZS4gCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVVJMID0gInVybCI7CisKKyAgICAvKiogCisgICAgICogQ29udHJvbGxlciBuYW1lIHR5cGUuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIENPTlRST0xMRVIgPSAiY29udHJvbGxlciI7CisKKyAgICAvKiogCisgICAgICogQ29udHJvbGxlciBuYW1lIHR5cGUuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEFDVElPTiA9ICJhY3Rpb24iOworCisgICAgLyoqCisgICAgICogQ29udHJvbGxlciBhc3NvY2lhdGVkIHRvIERlZmluaXRpb24uCisgICAgICogTGF6eSBjcmVhdGlvbiA6IG9ubHkgb24gZmlyc3QgcmVxdWVzdAorICAgICAqLworICAgIHByaXZhdGUgQ29udHJvbGxlciBjb250cm9sbGVySW5zdGFuY2UgPSBudWxsOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIENvbXBvbmVudERlZmluaXRpb24oKSB7CisgICAgICAgIGF0dHJpYnV0ZXMgPSBuZXcgSGFzaE1hcCgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvcHkgQ29uc3RydWN0b3IuCisgICAgICogQ3JlYXRlIGEgbmV3IGRlZmluaXRpb24gaW5pdGlhbGl6ZWQgd2l0aCBwYXJlbnQgZGVmaW5pdGlvbi4KKyAgICAgKiBEbyBhIHNoYWxsb3cgY29weSA6IGF0dHJpYnV0ZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIGNvcGllcywgYnV0IG5vdCB0aGUgTWFwCisgICAgICogY29udGFpbmluZyBhdHRyaWJ1dGVzLgorICAgICAqLworICAgIHB1YmxpYyBDb21wb25lbnREZWZpbml0aW9uKENvbXBvbmVudERlZmluaXRpb24gZGVmaW5pdGlvbikgeworICAgICAgICBhdHRyaWJ1dGVzID0gbmV3IEhhc2hNYXAoZGVmaW5pdGlvbi5nZXRBdHRyaWJ1dGVzKCkpOworICAgICAgICB0aGlzLm5hbWUgPSBkZWZpbml0aW9uLmdldE5hbWUoKTsKKyAgICAgICAgdGhpcy5wYXRoID0gZGVmaW5pdGlvbi5nZXRQYXRoKCk7CisgICAgICAgIHRoaXMucm9sZSA9IGRlZmluaXRpb24uZ2V0Um9sZSgpOworICAgICAgICB0aGlzLmNvbnRyb2xsZXJJbnN0YW5jZSA9IGRlZmluaXRpb24uZ2V0Q29udHJvbGxlckluc3RhbmNlKCk7CisgICAgICAgIHRoaXMuY29udHJvbGxlciA9IGRlZmluaXRpb24uZ2V0Q29udHJvbGxlcigpOworICAgICAgICB0aGlzLmNvbnRyb2xsZXJUeXBlID0gZGVmaW5pdGlvbi5nZXRDb250cm9sbGVyVHlwZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLgorICAgICAqIENyZWF0ZSBhIG5ldyBkZWZpbml0aW9uIGluaXRpYWxpemVkIGZyb20gYSBSYXdEZWZpbml0aW9uLgorICAgICAqIFJhdyBkZWZpbml0aW9ucyBhcmUgdXNlZCB0byByZWFkIGRlZmluaXRpb24gZnJvbSBhIGRhdGEgc291cmNlICh4bWwgZmlsZSwgZGIsIC4uLikuCisgICAgICogQSBSYXdEZWZpbml0aW9uIG1haW5seSBjb250YWlucyBwcm9wZXJ0aWVzIG9mIHR5cGUgU3RyaW5nLCB3aGlsZSBEZWZpbml0aW9uCisgICAgICogY29udGFpbnMgbW9yZSBjb21wbGV4IHR5cGUgKGV4IDogQ29udHJvbGxlcikuCisgICAgICogRG8gYSBzaGFsbG93IGNvcHkgOiBhdHRyaWJ1dGVzIGFyZSBzaGFyZWQgYmV0d2VlbiBvYmplY3RzLCBidXQgbm90IHRoZSBNYXAKKyAgICAgKiBjb250YWluaW5nIGF0dHJpYnV0ZXMuCisgICAgICogT08gRGVzaWduIGlzc3VlcyA6IEFjdHVhbGx5IFJhd0RlZmluaXRpb24gKFhtbERlZmluaXRpb24pIGV4dGVuZHMgQ29tcG9uZW50RGVmaW5pdGlvbi4KKyAgICAgKiBUaGlzIG11c3Qgbm90IGJlIHRoZSBjYXNlLiBJIGhhdmUgZG8gaXQgYmVjYXVzZSBJIGFtIGxhenkuCisgICAgICogQHRocm93cyBJbnN0YW50aWF0aW9uRXhjZXB0aW9uIGlmIGFuIGVycm9yIG9jY3VyIHdoaWxlIGluc3RhbmNpYXRpbmcgQ29udHJvbGxlciA6CisgICAgICogKGNsYXNzbmFtZSBjYW4ndCBiZSBpbnN0YW5jaWF0ZWQsIElsbGVnYWwgYWNjZXNzIHdpdGggaW5zdGFuY2lhdGVkIGNsYXNzLAorICAgICAqIEVycm9yIHdoaWxlIGluc3RhbmNpYXRpbmcgY2xhc3MsIGNsYXNzbmFtZSBjYW4ndCBiZSBpbnN0YW5jaWF0ZWQuCisgICAgICovCisgICAgcHVibGljIENvbXBvbmVudERlZmluaXRpb24oWG1sRGVmaW5pdGlvbiBkZWZpbml0aW9uKSB7CisKKyAgICAgICAgdGhpcygoQ29tcG9uZW50RGVmaW5pdGlvbikgZGVmaW5pdGlvbik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIENvbXBvbmVudERlZmluaXRpb24oU3RyaW5nIG5hbWUsIFN0cmluZyBwYXRoLCBNYXAgYXR0cmlidXRlcykgeworICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB0aGlzLnBhdGggPSBwYXRoOworICAgICAgICB0aGlzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFjY2VzcyBtZXRob2QgZm9yIHRoZSBuYW1lIHByb3BlcnR5LgorICAgICAqCisgICAgICogQHJldHVybiAgIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXROYW1lKCkgeworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgbmFtZSBwcm9wZXJ0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTmFtZSB0aGUgbmV3IHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TmFtZShTdHJpbmcgYU5hbWUpIHsKKyAgICAgICAgbmFtZSA9IGFOYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFjY2VzcyBtZXRob2QgZm9yIHRoZSBwYXRoIHByb3BlcnR5LgorICAgICAqCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgcGF0aCBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFBhZ2UoKSB7CisgICAgICAgIHJldHVybiBwYXRoOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBwYXRoIHByb3BlcnR5LgorICAgICAqCisgICAgICogQHBhcmFtIGFQYXRoIHRoZSBuZXcgdmFsdWUgb2YgdGhlIHBhdGggcHJvcGVydHkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYWdlKFN0cmluZyBwYWdlKSB7CisgICAgICAgIHBhdGggPSBwYWdlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFjY2VzcyBtZXRob2QgZm9yIHRoZSBwYXRoIHByb3BlcnR5LgorICAgICAqCisgICAgICogQHJldHVybiAgIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBwYXRoIHByb3BlcnR5CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRQYXRoKCkgeworICAgICAgICByZXR1cm4gcGF0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgcGF0aCBwcm9wZXJ0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhUGF0aCB0aGUgbmV3IHZhbHVlIG9mIHRoZSBwYXRoIHByb3BlcnR5CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0UGF0aChTdHJpbmcgYVBhdGgpIHsKKyAgICAgICAgcGF0aCA9IGFQYXRoOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFjY2VzcyBtZXRob2QgZm9yIHRoZSB0ZW1wbGF0ZSBwcm9wZXJ0eS4KKyAgICAgKiBTYW1lIGFzIGdldFBhdGgoKQorICAgICAqIEByZXR1cm4gICB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgdGVtcGxhdGUgcHJvcGVydHkKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRlbXBsYXRlKCkgeworICAgICAgICByZXR1cm4gcGF0aDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgdGVtcGxhdGUgcHJvcGVydHkuCisgICAgICogU2FtZSBhcyBzZXRQYXRoKCkKKyAgICAgKgorICAgICAqIEBwYXJhbSB0ZW1wbGF0ZSB0aGUgbmV3IHZhbHVlIG9mIHRoZSBwYXRoIHByb3BlcnR5CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VGVtcGxhdGUoU3RyaW5nIHRlbXBsYXRlKSB7CisgICAgICAgIHBhdGggPSB0ZW1wbGF0ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBY2Nlc3MgbWV0aG9kIGZvciB0aGUgcm9sZSBwcm9wZXJ0eS4KKyAgICAgKiBAcmV0dXJuICAgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHJvbGUgcHJvcGVydHkKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFJvbGUoKSB7CisgICAgICAgIHJldHVybiByb2xlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSByb2xlIHByb3BlcnR5LgorICAgICAqCisgICAgICogQHBhcmFtIHJvbGUgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgcGF0aCBwcm9wZXJ0eQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJvbGUoU3RyaW5nIHJvbGUpIHsKKyAgICAgICAgdGhpcy5yb2xlID0gcm9sZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBY2Nlc3MgbWV0aG9kIGZvciB0aGUgYXR0cmlidXRlcyBwcm9wZXJ0eS4KKyAgICAgKiBJZiB0aGVyZSBpcyBubyBhdHRyaWJ1dGVzLCByZXR1cm4gYW4gZW1wdHkgbWFwLgorICAgICAqIEByZXR1cm4gICB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlcyBwcm9wZXJ0eQorICAgICAqLworICAgIHB1YmxpYyBNYXAgZ2V0QXR0cmlidXRlcygpIHsKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlIG5hbWVkIGF0dHJpYnV0ZSBhcyBhbiBPYmplY3QsIG9yIG51bGwgaWYgbm8KKyAgICAgKiBhdHRyaWJ1dGUgb2YgdGhlIGdpdmVuIG5hbWUgZXhpc3RzLgorICAgICAqCisgICAgICogQHJldHVybiAgIHJlcXVlc3RlZCBhdHRyaWJ1dGUgb3IgbnVsbCBpZiBub3QgZm91bmQKKyAgICAgKi8KKyAgICBwdWJsaWMgT2JqZWN0IGdldEF0dHJpYnV0ZShTdHJpbmcga2V5KSB7CisgICAgICAgIHJldHVybiBhdHRyaWJ1dGVzLmdldChrZXkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFB1dCBhIG5ldyBhdHRyaWJ1dGUgaW4gdGhpcyBjb21wb25lbnQKKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkgU3RyaW5nIGtleSBmb3IgYXR0cmlidXRlCisgICAgICogQHBhcmFtIHZhbHVlIEF0dGlidXRlIHZhbHVlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dEF0dHJpYnV0ZShTdHJpbmcga2V5LCBPYmplY3QgdmFsdWUpIHsKKyAgICAgICAgYXR0cmlidXRlcy5wdXQoa2V5LCB2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUHV0IGFuIGF0dHJpYnV0ZSBpbiBjb21wb25lbnQgLyB0ZW1wbGF0ZSBkZWZpbml0aW9uLgorICAgICAqIEF0dHJpYnV0ZSBjYW4gYmUgdXNlZCBhcyBjb250ZW50IGZvciB0YWcgZ2V0LgorICAgICAqIEBwYXJhbSBuYW1lIEF0dHJpYnV0ZSBuYW1lCisgICAgICogQHBhcmFtIGNvbnRlbnQgQXR0cmlidXRlIHZhbHVlCisgICAgICovCisgICAgcHVibGljIHZvaWQgcHV0KFN0cmluZyBuYW1lLCBPYmplY3QgY29udGVudCkgeworICAgICAgICBwdXQobmFtZSwgY29udGVudCwgZmFsc2UsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFB1dCBhbiBhdHRyaWJ1dGUgaW4gdGVtcGxhdGUgZGVmaW5pdGlvbi4KKyAgICAgKiBBdHRyaWJ1dGUgY2FuIGJlIHVzZWQgYXMgY29udGVudCBmb3IgdGFnIGdldC4KKyAgICAgKiBAcGFyYW0gbmFtZSBBdHRyaWJ1dGUgbmFtZQorICAgICAqIEBwYXJhbSBjb250ZW50IEF0dHJpYnV0ZSB2YWx1ZSC1CisgICAgICogQHBhcmFtIGRpcmVjdCBEZXRlcm1pbmVzIGhvdyBjb250ZW50IGlzIGhhbmRsZWQgYnkgZ2V0IHRhZzogdHJ1ZSBtZWFucyBjb250ZW50IGlzIHByaW50ZWQgZGlyZWN0bHk7IGZhbHNlLCB0aGUgZGVmYXVsdCwgbWVhbnMgY29udGVudCBpcyBpbmNsdWRlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dChTdHJpbmcgbmFtZSwgT2JqZWN0IGNvbnRlbnQsIGJvb2xlYW4gZGlyZWN0KSB7CisgICAgICAgIHB1dChuYW1lLCBjb250ZW50LCBkaXJlY3QsIG51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFB1dCBhbiBhdHRyaWJ1dGUgaW4gdGVtcGxhdGUgZGVmaW5pdGlvbi4KKyAgICAgKiBBdHRyaWJ1dGUgY2FuIGJlIHVzZWQgYXMgY29udGVudCBmb3IgdGFnIGdldC4KKyAgICAgKiBAcGFyYW0gbmFtZSBBdHRyaWJ1dGUgbmFtZQorICAgICAqIEBwYXJhbSBjb250ZW50IEF0dHJpYnV0ZSB2YWx1ZQorICAgICAqIEBwYXJhbSBkaXJlY3QgRGV0ZXJtaW5lcyBob3cgY29udGVudCBpcyBoYW5kbGVkIGJ5IGdldCB0YWc6IHRydWUgbWVhbnMgY29udGVudCBpcyBwcmludGVkIGRpcmVjdGx5OyBmYWxzZSwgdGhlIGRlZmF1bHQsIG1lYW5zIGNvbnRlbnQgaXMgaW5jbHVkZWQKKyAgICAgKiBAcGFyYW0gcm9sZSBEZXRlcm1pbmUgaWYgY29udGVudCBpcyB1c2VkIGJ5IGdldCB0YWcuIElmIHVzZXIgaXMgaW4gcm9sZSwgY29udGVudCBpcyB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dChTdHJpbmcgbmFtZSwgT2JqZWN0IGNvbnRlbnQsIGJvb2xlYW4gZGlyZWN0LCBTdHJpbmcgcm9sZSkgeworICAgICAgICBpZiAoZGlyZWN0ID09IHRydWUpIHsgLy8gZGlyZWN0IFN0cmluZworICAgICAgICAgICAgcHV0KG5hbWUsIGNvbnRlbnQsICJzdHJpbmciLCByb2xlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHB1dChuYW1lLCBjb250ZW50LCAidGVtcGxhdGUiLCByb2xlKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgLyoqCisgICAgICogUHV0IGFuIGF0dHJpYnV0ZSBpbiB0ZW1wbGF0ZSBkZWZpbml0aW9uLgorICAgICAqIEF0dHJpYnV0ZSBjYW4gYmUgdXNlZCBhcyBjb250ZW50IGZvciB0YWcgZ2V0LgorICAgICAqIEBwYXJhbSBuYW1lIEF0dHJpYnV0ZSBuYW1lCisgICAgICogQHBhcmFtIGNvbnRlbnQgQXR0cmlidXRlIHZhbHVlCisgICAgICogQHBhcmFtIHR5cGUgYXR0cmlidXRlIHR5cGU6IHRlbXBsYXRlLCBzdHJpbmcsIGRlZmluaXRpb24KKyAgICAgKiBAcGFyYW0gcm9sZSBEZXRlcm1pbmUgaWYgY29udGVudCBpcyB1c2VkIGJ5IGdldCB0YWcuIElmIHVzZXIgaXMgaW4gcm9sZSwgY29udGVudCBpcyB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHB1dChTdHJpbmcgbmFtZSwgT2JqZWN0IGNvbnRlbnQsIFN0cmluZyB0eXBlLCBTdHJpbmcgcm9sZSkgeworICAgICAgICAvLyBJcyB0aGVyZSBhIHR5cGUgc2V0ID8KKyAgICAgICAgLy8gRmlyc3QgY2hlY2sgZGlyZWN0IGF0dHJpYnV0ZSwgYW5kIHRyYW5zbGF0ZSBpdCB0byBhIHZhbHVlVHlwZS4KKyAgICAgICAgLy8gVGhlbiwgZXZhbHVhdGUgdmFsdWVUeXBlLCBhbmQgY3JlYXRlIHJlcXVlc3RlZCB0eXBlZCBhdHRyaWJ1dGUuCisgICAgICAgIEF0dHJpYnV0ZURlZmluaXRpb24gYXR0cmlidXRlID0gbnVsbDsKKworICAgICAgICBpZiAoY29udGVudCAhPSBudWxsCisgICAgICAgICAgICAmJiB0eXBlICE9IG51bGwKKyAgICAgICAgICAgICYmICEoY29udGVudCBpbnN0YW5jZW9mIEF0dHJpYnV0ZURlZmluaXRpb24pKSB7CisKKyAgICAgICAgICAgIFN0cmluZyBzdHJWYWx1ZSA9IGNvbnRlbnQudG9TdHJpbmcoKTsKKyAgICAgICAgICAgIGlmICh0eXBlLmVxdWFsc0lnbm9yZUNhc2UoInN0cmluZyIpKSB7CisgICAgICAgICAgICAgICAgYXR0cmlidXRlID0gbmV3IERpcmVjdFN0cmluZ0F0dHJpYnV0ZShzdHJWYWx1ZSk7CisKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZS5lcXVhbHNJZ25vcmVDYXNlKCJwYWdlIikpIHsKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgPSBuZXcgUGF0aEF0dHJpYnV0ZShzdHJWYWx1ZSk7CisKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZS5lcXVhbHNJZ25vcmVDYXNlKCJ0ZW1wbGF0ZSIpKSB7CisgICAgICAgICAgICAgICAgYXR0cmlidXRlID0gbmV3IFBhdGhBdHRyaWJ1dGUoc3RyVmFsdWUpOworCisgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUuZXF1YWxzSWdub3JlQ2FzZSgiaW5zdGFuY2UiKSkgeworICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSA9IG5ldyBEZWZpbml0aW9uTmFtZUF0dHJpYnV0ZShzdHJWYWx1ZSk7CisKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZS5lcXVhbHNJZ25vcmVDYXNlKCJkZWZpbml0aW9uIikpIHsKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgPSBuZXcgRGVmaW5pdGlvbk5hbWVBdHRyaWJ1dGUoc3RyVmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHV0QXR0cmlidXRlKG5hbWUsIGF0dHJpYnV0ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIGRlc2NyaXB0aW9uIG9mIHRoZSBhdHRyaWJ1dGVzLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CisgICAgICAgIHJldHVybiAie25hbWU9IgorICAgICAgICAgICAgKyBuYW1lCisgICAgICAgICAgICArICIsIHBhdGg9IgorICAgICAgICAgICAgKyBwYXRoCisgICAgICAgICAgICArICIsIHJvbGU9IgorICAgICAgICAgICAgKyByb2xlCisgICAgICAgICAgICArICIsIGNvbnRyb2xsZXI9IgorICAgICAgICAgICAgKyBjb250cm9sbGVyCisgICAgICAgICAgICArICIsIGNvbnRyb2xsZXJUeXBlPSIKKyAgICAgICAgICAgICsgY29udHJvbGxlclR5cGUKKyAgICAgICAgICAgICsgIiwgY29udHJvbGxlckluc3RhbmNlPSIKKyAgICAgICAgICAgICsgY29udHJvbGxlckluc3RhbmNlCisgICAgICAgICAgICArICIsIGF0dHJpYnV0ZXM9IgorICAgICAgICAgICAgKyBhdHRyaWJ1dGVzCisgICAgICAgICAgICArICJ9XG4iOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgdHlwZS4KKyAgICAgKiBUeXBlIGRlbm90ZSBhIGZ1bGx5IHF1YWxpZmllZCBjbGFzc25hbWUuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRDb250cm9sbGVyVHlwZSgpIHsKKyAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXJUeXBlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgdHlwZS4KKyAgICAgKiBUeXBlIGRlbm90ZSBhIGZ1bGx5IHF1YWxpZmllZCBjbGFzc25hbWUuCisgICAgICogQHBhcmFtIGNvbnRyb2xsZXJUeXBlIFR5cGVvZiBhc3NvY2lhdGVkIGNvbnRyb2xsZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDb250cm9sbGVyVHlwZShTdHJpbmcgY29udHJvbGxlclR5cGUpIHsKKyAgICAgICAgdGhpcy5jb250cm9sbGVyVHlwZSA9IGNvbnRyb2xsZXJUeXBlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgbmFtZSBhcyBhbiB1cmwsIGFuZCBjb250cm9sbGVyCisgICAgICogdHlwZSBhcyAidXJsIi4KKyAgICAgKiBOYW1lIG11c3QgYmUgYW4gdXJsIChub3QgY2hlY2tlZCkuCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLgorICAgICAqIEBwYXJhbSBjb250cm9sbGVyIENvbnRyb2xsZXIgdXJsCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29udHJvbGxlclVybChTdHJpbmcgY29udHJvbGxlcikgeworICAgICAgICBzZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOworICAgICAgICBzZXRDb250cm9sbGVyVHlwZSgidXJsIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciBuYW1lIGFzIGEgY2xhc3N0eXBlLCBhbmQgY29udHJvbGxlcgorICAgICAqIHR5cGUgYXMgImNsYXNzbmFtZSIuCisgICAgICogTmFtZSBkZW5vdGUgYSBmdWxseSBxdWFsaWZpZWQgY2xhc3NuYW1lCisgICAgICogQ29udmVuaWVuY2UgbWV0aG9kLgorICAgICAqIEBwYXJhbSBjb250cm9sbGVyIENvbnRyb2xsZXIgY2xhc3NuYW1lLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENvbnRyb2xsZXJDbGFzcyhTdHJpbmcgY29udHJvbGxlcikgeworICAgICAgICBzZXRDb250cm9sbGVyKGNvbnRyb2xsZXIpOworICAgICAgICBzZXRDb250cm9sbGVyVHlwZSgiY2xhc3NuYW1lIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGFzc29jaWF0ZWQgY29udHJvbGxlciBsb2NhbCBVUkwuCisgICAgICogVVJMIHNob3VsZCBiZSBsb2NhbCB0byB3ZWJjb250YWluZXIgaW4gb3JkZXIgdG8gYWxsb3cgcmVxdWVzdCBjb250ZXh0IGZvbGxvd3VwLgorICAgICAqIFVSTCBjb21lcyBhcyBhIHN0cmluZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldENvbnRyb2xsZXIoKSB7CisgICAgICAgIHJldHVybiBjb250cm9sbGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBhc3NvY2lhdGVkIGNvbnRyb2xsZXIgVVJMLgorICAgICAqIFVSTCBzaG91bGQgYmUgbG9jYWwgdG8gd2ViY29udGFpbmVyIGluIG9yZGVyIHRvIGFsbG93IHJlcXVlc3QgY29udGV4dCBmb2xsb3d1cC4KKyAgICAgKiBVUkwgaXMgc3BlY2lmaWVkIGFzIGEgc3RyaW5nLgorICAgICAqIEBwYXJhbSB1cmwgVXJsIGNhbGxlZCBsb2NhbGx5CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29udHJvbGxlcihTdHJpbmcgdXJsKSB7CisgICAgICAgIHRoaXMuY29udHJvbGxlciA9IHVybDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgY29udHJvbGxlciBpbnN0YW5jZS4KKyAgICAgKiBAcmV0dXJuIGNvbnRyb2xsZXIgaW5zdGFuY2UuCisgICAgICovCisgICAgcHVibGljIENvbnRyb2xsZXIgZ2V0Q29udHJvbGxlckluc3RhbmNlKCkgeworICAgICAgICByZXR1cm4gY29udHJvbGxlckluc3RhbmNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCBvciBjcmVhdGUgY29udHJvbGxlci4KKyAgICAgKiBHZXQgY29udHJvbGxlciwgY3JlYXRlIGl0IGlmIG5lY2Vzc2FyeS4KKyAgICAgKiBAcmV0dXJuIGNvbnRyb2xsZXIgaWYgY29udHJvbGxlciBvciBjb250cm9sbGVyVHlwZSBpcyBzZXQsIG51bGwgb3RoZXJ3aXNlLgorICAgICAqIEB0aHJvd3MgSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiBpZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBpbnN0YW5jaWF0aW5nIENvbnRyb2xsZXIgOgorICAgICAqIChjbGFzc25hbWUgY2FuJ3QgYmUgaW5zdGFuY2lhdGVkLCBJbGxlZ2FsIGFjY2VzcyB3aXRoIGluc3RhbmNpYXRlZCBjbGFzcywKKyAgICAgKiBFcnJvciB3aGlsZSBpbnN0YW5jaWF0aW5nIGNsYXNzLCBjbGFzc25hbWUgY2FuJ3QgYmUgaW5zdGFuY2lhdGVkLgorICAgICAqLworICAgIHB1YmxpYyBDb250cm9sbGVyIGdldE9yQ3JlYXRlQ29udHJvbGxlcigpIHRocm93cyBJbnN0YW50aWF0aW9uRXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoY29udHJvbGxlckluc3RhbmNlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBjb250cm9sbGVySW5zdGFuY2U7CisgICAgICAgIH0KKworICAgICAgICAvLyBEbyB3ZSBkZWZpbmUgYSBjb250cm9sbGVyID8KKyAgICAgICAgaWYgKGNvbnRyb2xsZXIgPT0gbnVsbCAmJiBjb250cm9sbGVyVHlwZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGNoZWNrIHBhcmFtZXRlcnMKKyAgICAgICAgaWYgKGNvbnRyb2xsZXJUeXBlICE9IG51bGwgJiYgY29udHJvbGxlciA9PSBudWxsKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgSW5zdGFudGlhdGlvbkV4Y2VwdGlvbigiQ29udHJvbGxlciBuYW1lIHNob3VsZCBiZSBkZWZpbmVkIGlmIGNvbnRyb2xsZXJUeXBlIGlzIHNldCIpOworICAgICAgICB9CisKKyAgICAgICAgY29udHJvbGxlckluc3RhbmNlID0gY3JlYXRlQ29udHJvbGxlcihjb250cm9sbGVyLCBjb250cm9sbGVyVHlwZSk7CisKKyAgICAgICAgcmV0dXJuIGNvbnRyb2xsZXJJbnN0YW5jZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgY29udHJvbGxlci4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRDb250cm9sbGVySW5zdGFuY2UoQ29udHJvbGxlciBjb250cm9sbGVyKSB7CisgICAgICAgIHRoaXMuY29udHJvbGxlckluc3RhbmNlID0gY29udHJvbGxlcjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBuZXcgaW5zdGFuY2Ugb2YgY29udHJvbGxlciBuYW1lZCBpbiBwYXJhbWV0ZXIuCisgICAgICogSWYgY29udHJvbGxlclR5cGUgaXMgc3BlY2lmaWVkLCBjcmVhdGUgY29udHJvbGxlciBhY2NvcmRpbmdseS4KKyAgICAgKiBPdGhlcndpc2UsIGlmIG5hbWUgZGVub3RlIGEgY2xhc3NuYW1lLCBjcmVhdGUgYW4gaW5zdGFuY2Ugb2YgaXQuIElmIGNsYXNzIGlzCisgICAgICogIHN1YmNsYXNzIG9mIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb24sIHdyYXAgY29udHJvbGxlcgorICAgICAqIGFwcHJvcHJpYXRlbHkuCisgICAgICogT3RoZXJ3aXNlLCBjb25zaWRlciBuYW1lIGFzIGFuIHVybC4KKyAgICAgKiBAcGFyYW0gbmFtZSBDb250cm9sbGVyIG5hbWUgKGNsYXNzbmFtZSwgdXJsLCAuLi4pCisgICAgICogQHBhcmFtIGNvbnRyb2xsZXJUeXBlIEV4cGVjdGVkIENvbnRyb2xsZXIgdHlwZQorICAgICAqIEByZXR1cm4gb3JnLmFwYWNoZS50aWxlcy5Db250cm9sbGVyCisgICAgICogQHRocm93cyBJbnN0YW50aWF0aW9uRXhjZXB0aW9uIGlmIGFuIGVycm9yIG9jY3VyIHdoaWxlIGluc3RhbmNpYXRpbmcgQ29udHJvbGxlciA6CisgICAgICogKGNsYXNzbmFtZSBjYW4ndCBiZSBpbnN0YW5jaWF0ZWQsIElsbGVnYWwgYWNjZXNzIHdpdGggaW5zdGFuY2lhdGVkIGNsYXNzLAorICAgICAqIEVycm9yIHdoaWxlIGluc3RhbmNpYXRpbmcgY2xhc3MsIGNsYXNzbmFtZSBjYW4ndCBiZSBpbnN0YW5jaWF0ZWQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBDb250cm9sbGVyIGNyZWF0ZUNvbnRyb2xsZXIoU3RyaW5nIG5hbWUsIFN0cmluZyBjb250cm9sbGVyVHlwZSkKKyAgICAgICAgdGhyb3dzIEluc3RhbnRpYXRpb25FeGNlcHRpb24geworCisgICAgICAgIGlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkgeworICAgICAgICAgICAgbG9nLmRlYnVnKCJDcmVhdGUgY29udHJvbGxlciBuYW1lPSIgKyBuYW1lICsgIiwgdHlwZT0iICsgY29udHJvbGxlclR5cGUpOworICAgICAgICB9CisKKyAgICAgICAgQ29udHJvbGxlciBjb250cm9sbGVyID0gbnVsbDsKKworICAgICAgICBpZiAoY29udHJvbGxlclR5cGUgPT0gbnVsbCkgeyAvLyBmaXJzdCB0cnkgYXMgYSBjbGFzc25hbWUKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbnRyb2xsZXJGcm9tQ2xhc3NuYW1lKG5hbWUpOworCisgICAgICAgICAgICB9IGNhdGNoIChJbnN0YW50aWF0aW9uRXhjZXB0aW9uIGV4KSB7IC8vIG9rLCB0cnkgc29tZXRoaW5nIGVsc2UKKyAgICAgICAgICAgICAgICBjb250cm9sbGVyID0gbmV3IFVybENvbnRyb2xsZXIobmFtZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfSBlbHNlIGlmICgidXJsIi5lcXVhbHNJZ25vcmVDYXNlKGNvbnRyb2xsZXJUeXBlKSkgeworICAgICAgICAgICAgY29udHJvbGxlciA9IG5ldyBVcmxDb250cm9sbGVyKG5hbWUpOworCisgICAgICAgIH0gZWxzZSBpZiAoImNsYXNzbmFtZSIuZXF1YWxzSWdub3JlQ2FzZShjb250cm9sbGVyVHlwZSkpIHsKKyAgICAgICAgICAgIGNvbnRyb2xsZXIgPSBjcmVhdGVDb250cm9sbGVyRnJvbUNsYXNzbmFtZShuYW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBjb250cm9sbGVyOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhIGNvbnRyb2xsZXIgZnJvbSBzcGVjaWZpZWQgY2xhc3NuYW1lCisgICAgICogQHBhcmFtIGNsYXNzbmFtZSBDb250cm9sbGVyIGNsYXNzbmFtZS4KKyAgICAgKiBAcmV0dXJuIG9yZy5hcGFjaGUudGlsZXMuQ29udHJvbGxlcgorICAgICAqIEB0aHJvd3MgSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiBpZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBpbnN0YW5jaWF0aW5nIENvbnRyb2xsZXIgOgorICAgICAqIChjbGFzc25hbWUgY2FuJ3QgYmUgaW5zdGFuY2lhdGVkLCBJbGxlZ2FsIGFjY2VzcyB3aXRoIGluc3RhbmNpYXRlZCBjbGFzcywKKyAgICAgKiBFcnJvciB3aGlsZSBpbnN0YW5jaWF0aW5nIGNsYXNzLCBjbGFzc25hbWUgY2FuJ3QgYmUgaW5zdGFuY2lhdGVkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgQ29udHJvbGxlciBjcmVhdGVDb250cm9sbGVyRnJvbUNsYXNzbmFtZShTdHJpbmcgY2xhc3NuYW1lKQorICAgICAgICB0aHJvd3MgSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiB7CisKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENsYXNzIHJlcXVlc3RlZENsYXNzID0gVGlsZXNVdGlsLmFwcGxpY2F0aW9uQ2xhc3MoY2xhc3NuYW1lKTsKKyAgICAgICAgICAgIE9iamVjdCBpbnN0YW5jZSA9IHJlcXVlc3RlZENsYXNzLm5ld0luc3RhbmNlKCk7CisKKyAgICAgICAgICAgIGlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkgeworICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygiQ29udHJvbGxlciBjcmVhdGVkIDogIiArIGluc3RhbmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAoQ29udHJvbGxlcikgaW5zdGFuY2U7CisKKyAgICAgICAgfSBjYXRjaCAoamF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnN0YW50aWF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJFcnJvciAtIENsYXNzIG5vdCBmb3VuZCA6IiArIGV4LmdldE1lc3NhZ2UoKSk7CisKKyAgICAgICAgfSBjYXRjaCAoamF2YS5sYW5nLklsbGVnYWxBY2Nlc3NFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBJbnN0YW50aWF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJFcnJvciAtIElsbGVnYWwgY2xhc3MgYWNjZXNzIDoiICsgZXguZ2V0TWVzc2FnZSgpKTsKKworICAgICAgICB9IGNhdGNoIChqYXZhLmxhbmcuSW5zdGFudGlhdGlvbkV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgdGhyb3cgZXg7CisKKyAgICAgICAgfSBjYXRjaCAoamF2YS5sYW5nLkNsYXNzQ2FzdEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEluc3RhbnRpYXRpb25FeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIkNvbnRyb2xsZXIgb2YgY2xhc3MgJyIKKyAgICAgICAgICAgICAgICAgICAgKyBjbGFzc25hbWUKKyAgICAgICAgICAgICAgICAgICAgKyAiJyBzaG91bGQgaW1wbGVtZW50cyAnQ29udHJvbGxlcicgb3IgZXh0ZW5kcyAnQWN0aW9uJyIpOworICAgICAgICB9CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjNWQ2OTUKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9Db21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuamF2YQpAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS50aWxlczsKKworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0OworCisvKioKKyAqIENvbXBvbmVudCByZXBvc2l0b3J5IGludGVyZmFjZS4KKyAqIFRoaXMgaW50ZXJmYWNlIGFsbG93cyB0byByZXRyaWV2ZSBhbiBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLCBpbmRlcGVuZGVudGx5IG9mIHRoZQorICogZmFjdG9yeSBpbXBsZW1lbnRhdGlvbi4KKyAqIEltcGxlbWVudGF0aW9uIG11c3QgYmUgU2VyaWFsaXphYmxlLCBpbiBvcmRlciB0byBiZSBjb21wbGlhbnQgd2l0aCB3ZWIgQ29udGFpbmVyCisgKiBoYXZpbmcgdGhpcyBjb25zdHJhaW50IChXZWJsb2dpYyA2LngpLgorICogQGRlcHJlY2F0ZWQgVXNlIERlZmluaXRpb25zRmFjdG9yeSBpbnN0ZWFkLgorKi8KK3B1YmxpYyBpbnRlcmZhY2UgQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5IGV4dGVuZHMgU2VyaWFsaXphYmxlCit7CisKKyAgIC8qKgorICAgICAqIEdldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuCisgICAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiByZXF1ZXN0ZWQgZGVmaW5pdGlvbi4KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBDdXJyZW50IHNlcnZlbGV0IHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgY3VycmVudCBzZXJ2bGV0IGNvbnRleHQKKyAgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBBbiBlcnJvciBvY2N1ciB3aGlsZSBnZXR0aW5nIGRlZmluaXRpb24uCisgICAgICogQHRocm93cyBOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uIE5vIGRlZmluaXRpb24gZm91bmQgZm9yIHNwZWNpZmllZCBuYW1lCisgICAgICogSW1wbGVtZW50YXRpb24gY2FuIHRocm93IG1vcmUgYWNjdXJhdGUgZXhjZXB0aW9uIGFzIGEgc3ViY2xhc3Mgb2YgdGhpcyBleGNlcHRpb24KKyAgICovCisgICBwdWJsaWMgQ29tcG9uZW50RGVmaW5pdGlvbiBnZXREZWZpbml0aW9uKFN0cmluZyBuYW1lLCBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkgdGhyb3dzIE5vU3VjaERlZmluaXRpb25FeGNlcHRpb24sRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uOworCisgICAvKioKKyAgICAgKiBJbml0IGZhY3RvcnkuCisgICAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGV4YWN0bHkgb25jZSBpbW1lZGlhdGVseSBhZnRlciBmYWN0b3J5IGNyZWF0aW9uIGluCisgICAgICogY2FzZSBvZiBpbnRlcm5hbCBjcmVhdGlvbiAoYnkgRGVmaW5pdGlvblV0aWwpLgorICAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBTZXJ2bGV0IENvbnRleHQgcGFzc2VkIHRvIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS4KKyAgICAgKiBAcGFyYW0gcHJvcGVydGllcyBNYXAgb2YgbmFtZS9wcm9wZXJ0eSBwYXNzZWQgdG8gbmV3bHkgY3JlYXRlZCBmYWN0b3J5LgorICAgICAqIE1hcCBjYW4gY29udGFpbnMgbW9yZSBwcm9wZXJ0aWVzIHRoYW4gcmVxdWVzdGVkLgorICAgICAqIEB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIEFuIGVycm9yIG9jY3VyIGR1cmluZyBpbml0aWFsaXphdGlvbi4KKyAgICovCisgICBwdWJsaWMgdm9pZCBpbml0RmFjdG9yeShTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCwgTWFwIHByb3BlcnRpZXMpIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb247Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9Db250cm9sbGVyLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9Db250cm9sbGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVmMWJhMAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL0NvbnRyb2xsZXIuamF2YQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS50aWxlczsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKKworLyoqCisgKiBBIGNvbnRyb2xsZXIgaXMgYSBwaWVjZSBvZiBjb2RlIGNhbGxlZCBiZWZvcmUgcmVuZGVyaW5nIGEganNwIHBhZ2UuCisgKiBBIGNvbnRyb2xsZXIgY2FuIGJlIGFzc29jaWF0ZWQgdG8gYSB0aWxlLiBTZWUgPGluc2VydD4gb3IgPGRlZmluaXRpb24+IGZvcgorICogYXNzb2NpYXRpb24gc3ludGF4LgorICovCitwdWJsaWMgaW50ZXJmYWNlIENvbnRyb2xsZXIKK3sKKworICAgLyoqCisgICAgKiBNZXRob2QgYXNzb2NpYXRlZCB0byBhIHRpbGUgYW5kIGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIHRpbGUgaXMgaW5jbHVkZWQuCisgICAgKiBAcGFyYW0gdGlsZUNvbnRleHQgQ3VycmVudCB0aWxlIGNvbnRleHQuCisgICAgKiBAcGFyYW0gcmVxdWVzdCBDdXJyZW50IHJlcXVlc3QKKyAgICAqIEBwYXJhbSByZXNwb25zZSBDdXJyZW50IHJlc3BvbnNlCisgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQKKyAgICAqLworICAgcHVibGljIHZvaWQgcGVyZm9ybShDb21wb25lbnRDb250ZXh0IHRpbGVDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQpCisgICAgICAgIHRocm93cyBTZXJ2bGV0RXhjZXB0aW9uLCBJT0V4Y2VwdGlvbjsKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL0NvbnRyb2xsZXJTdXBwb3J0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9Db250cm9sbGVyU3VwcG9ydC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5NmViNWMKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9Db250cm9sbGVyU3VwcG9ydC5qYXZhCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb247CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0OworCisvKioKKyAqIEJhc2ljIGltcGxlbWVudGF0aW9uIG9mIENvbnRyb2xsZXIuCisgKi8KK3B1YmxpYyBjbGFzcyBDb250cm9sbGVyU3VwcG9ydCBpbXBsZW1lbnRzIENvbnRyb2xsZXIgeworCisgICAvKioKKyAgICAqIE1ldGhvZCBhc3NvY2lhdGVkIHdpdGggYSB0aWxlIGFuZCBjYWxsZWQgaW1tZWRpYXRlbHkgYmVmb3JlIHRpbGUgaXMgaW5jbHVkZWQuCisgICAgKiBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXMgbm90aGluZy4KKyAgICAqIEBwYXJhbSB0aWxlQ29udGV4dCBDdXJyZW50IHRpbGUgY29udGV4dC4KKyAgICAqIEBwYXJhbSByZXF1ZXN0IEN1cnJlbnQgcmVxdWVzdAorICAgICogQHBhcmFtIHJlc3BvbnNlIEN1cnJlbnQgcmVzcG9uc2UKKyAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBDdXJyZW50IHNlcnZsZXQgY29udGV4dAorICAgICovCisgICBwdWJsaWMgdm9pZCBwZXJmb3JtKENvbXBvbmVudENvbnRleHQgdGlsZUNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LCBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgdGhyb3dzIFNlcnZsZXRFeGNlcHRpb24sIElPRXhjZXB0aW9uIHsKKworICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvRGVmaW5pdGlvbkF0dHJpYnV0ZS5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvRGVmaW5pdGlvbkF0dHJpYnV0ZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YjQ5MDAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9EZWZpbml0aW9uQXR0cmlidXRlLmphdmEKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGlsZXM7CisKKy8qKgorICogQXR0cmlidXRlIHJlcHJlc2VudGluZyBhIENvbXBvbmVudCBEZWZpbml0aW9uLgorICogVGhpcyBhdHRyaWJ1dGUgZGVmaW5pdGlvbiBjb250YWlucyBhIENvbXBvbmVudCBkZWZpbml0aW9uLgorICovCitwdWJsaWMgY2xhc3MgRGVmaW5pdGlvbkF0dHJpYnV0ZSBleHRlbmRzIFVudHlwZWRBdHRyaWJ1dGUgeworCisgICAgcHVibGljIERlZmluaXRpb25BdHRyaWJ1dGUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHN1cGVyKHZhbHVlKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL0RlZmluaXRpb25OYW1lQXR0cmlidXRlLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4MjQ4ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9EZWZpbml0aW9uTmFtZUF0dHJpYnV0ZS5qYXZhCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzOworCisvKioKKyAqIENvbXBvbmVudCBhdHRyaWJ1dGUuCisgKiBTdWNoIGF0dHJpYnV0ZSB2YWx1ZSByZXByZXNlbnQgYW4gaW5zdGFuY2UgbmFtZS4KKyAqLworcHVibGljIGNsYXNzIERlZmluaXRpb25OYW1lQXR0cmlidXRlIGV4dGVuZHMgVW50eXBlZEF0dHJpYnV0ZSB7CisgICAgCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIERlZmluaXRpb25OYW1lQXR0cmlidXRlKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBzdXBlcih2YWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIERlZmluaXRpb25OYW1lQXR0cmlidXRlKFN0cmluZyB2YWx1ZSwgU3RyaW5nIHJvbGUpIHsKKyAgICAgICAgc3VwZXIodmFsdWUsIHJvbGUpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5LmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2VmOTMzCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5LmphdmEKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGlsZXM7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDsKKworLyoqCisgKiBUaWxlcyBEZWZpbml0aW9uIGZhY3RvcnkuCisgKiBUaGlzIGludGVyZmFjZSByZXBsYWNlIG9sZCBDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuCisgKiBNYWluIG1ldGhvZCBnZXREZWZpbml0aW9uKCkgaXMgZXhhY3RseSB0aGUgc2FtZS4gSW5pdGlhbGl6YXRpb24gbWV0aG9kIGNoYW5nZS4KKyAqIFRoaXMgaW50ZXJmYWNlIGFsbG93cyB0byByZXRyaWV2ZSBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUsIGluZGVwZW5kZW50bHkgb2YKKyAqIHRoZSBmYWN0b3J5IGltcGxlbWVudGF0aW9uLgorICogT2JqZWN0IGxpZmUgY3ljbGUgaXMgYXMgZm9sbG93OgorICogPHVsPgorICogPGxpPkNvbnN0cnVjdG9yOiBjcmVhdGUgb2JqZWN0PC9saT4KKyAqIDxsaT5zZXRDb25maWc6IHNldCBjb25maWcgYW5kIGluaXRpYWxpemUgZmFjdG9yeS4gQWZ0ZXIgZmlyc3QgY2FsbCB0byB0aGlzCisgKiBtZXRob2QsIGZhY3RvcnkgaXMgb3BlcmF0aW9uYWwuPC9saT4KKyAqIDxsaT5kZXN0cm95OiBmYWN0b3J5IGlzIGJlaW5nIHNodXRkb3duLjwvbGk+CisgKiA8L3VsPgorICogSW1wbGVtZW50YXRpb24gbXVzdCBiZSBTZXJpYWxpemFibGUsIGluIG9yZGVyIHRvIGJlIGNvbXBsaWFudCB3aXRoIHdlYiBDb250YWluZXIKKyAqIGhhdmluZyB0aGlzIGNvbnN0cmFpbnQgKFdlYmxvZ2ljIDYueCkuCisgKi8KK3B1YmxpYyBpbnRlcmZhY2UgRGVmaW5pdGlvbnNGYWN0b3J5IGV4dGVuZHMgU2VyaWFsaXphYmxlCit7CisKKyAgIC8qKgorICAgICAqIEdldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuCisgICAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiByZXF1ZXN0ZWQgZGVmaW5pdGlvbi4KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBDdXJyZW50IHNlcnZlbGV0IHJlcXVlc3QKKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgY3VycmVudCBzZXJ2bGV0IGNvbnRleHQKKyAgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBBbiBlcnJvciBvY2N1ciB3aGlsZSBnZXR0aW5nIGRlZmluaXRpb24uCisgICAgICogQHRocm93cyBOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uIE5vIGRlZmluaXRpb24gZm91bmQgZm9yIHNwZWNpZmllZCBuYW1lCisgICAgICogSW1wbGVtZW50YXRpb24gY2FuIHRocm93IG1vcmUgYWNjdXJhdGUgZXhjZXB0aW9uIGFzIGEgc3ViY2xhc3Mgb2YgdGhpcyBleGNlcHRpb24KKyAgICovCisgICBwdWJsaWMgQ29tcG9uZW50RGVmaW5pdGlvbiBnZXREZWZpbml0aW9uKFN0cmluZyBuYW1lLCBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkKKyAgICAgdGhyb3dzIE5vU3VjaERlZmluaXRpb25FeGNlcHRpb24sRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uOworCisgICAvKioKKyAgICAqIEluaXQgZGVmaW5pdGlvbiBmYWN0b3J5LgorICAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyIGZhY3RvcnkgY3JlYXRpb24sIGFuZCBwcmlvciBhbnkgY2FsbAorICAgICogdG8gc2V0Q29uZmlnKCkuCisgICAgKgorICAgICogQHBhcmFtIGNvbmZpZyBDb25maWd1cmF0aW9uIG9iamVjdCB1c2VkIHRvIHNldCBmYWN0b3J5IGNvbmZpZ3VyYXRpb24uCisgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBmYWN0b3J5LgorICAgICogQHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gQW4gZXJyb3Igb2NjdXIgZHVyaW5nIGluaXRpYWxpemF0aW9uLgorICAgICovCisgICBwdWJsaWMgdm9pZCBpbml0KERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyBjb25maWcsIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0KQorICAgICB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uOworCisgICAgLyoqCisgICAgICogPHA+UmVjZWl2ZSBub3RpZmljYXRpb24gdGhhdCB0aGUgZmFjdG9yeSBpcyBiZWluZworICAgICAqIHNodXQgZG93bi48L3A+CisgICAgICovCisgICAgcHVibGljIHZvaWQgZGVzdHJveSgpOworCisgICAvKioKKyAgICAqIFNldCBmYWN0b3J5IGNvbmZpZ3VyYXRpb24uCisgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGNoYW5nZSBmYWN0b3J5IGNvbmZpZ3VyYXRpb24uCisgICAgKiBUaGlzIG1ldGhvZCBpcyBvcHRpb25hbCwgYW5kIGNhbiBzZW5kIGFuIGV4Y2VwdGlvbiBpZiBpbXBsZW1lbnRhdGlvbgorICAgICogZG9lc24ndCBhbGxvdyBjaGFuZ2UgaW4gY29uZmlndXJhdGlvbi4KKyAgICAqCisgICAgKiBAcGFyYW0gY29uZmlnIENvbmZpZ3VyYXRpb24gb2JqZWN0IHVzZWQgdG8gc2V0IGZhY3RvcnkgY29uZmlndXJhdGlvbi4KKyAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBTZXJ2bGV0IENvbnRleHQgcGFzc2VkIHRvIGZhY3RvcnkuCisgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBBbiBlcnJvciBvY2N1ciBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCisgICAgKi8KKyAgIHB1YmxpYyB2b2lkIHNldENvbmZpZyhEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcgY29uZmlnLCBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkKKyAgICAgdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjsKKworICAgLyoqCisgICAgKiBHZXQgZmFjdG9yeSBjb25maWd1cmF0aW9uLgorICAgICogQHJldHVybiBUaWxlc0NvbmZpZworICAgICovCisgICBwdWJsaWMgRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnIGdldENvbmZpZygpOworCisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDEyYTc3OQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL0RlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5qYXZhCkBAIC0wLDAgKzEsMzEyIEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS50aWxlczsKKworaW1wb3J0IGphdmEuaW8uU2VyaWFsaXphYmxlOworaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlNldDsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuQmVhblV0aWxzOworCisvKioKKyAqIEEgVGlsZXNGYWN0b3J5Q29uZmlnIG9iamVjdCBob2xkIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlcyBmb3IgYSB0aWxlCisgKiBkZWZpbml0aW9uIGZhY3RvcnkuCisgKgorICogQGF1dGhvciBDZWRyaWMgRHVtb3VsaW4KKyAqIEBzaW5jZSBTdHJ1dHMgMS4xCisgKiBAdmVyc2lvbiAkUmV2aXNpb246IDEuOSAkICREYXRlOiAyMDAzLzA3LzA5IDAwOjA1OjE3ICQKKyAqLworcHVibGljIGNsYXNzIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSB7CisKKyAgICAvKioKKyAgICAgKiBGdWxseSBxdWFsaWZpZWQgY2xhc3NuYW1lIG9mIHRoZSBmYWN0b3J5IHRvIGNyZWF0ZS4KKyAgICAgKiBJZiBubyBjbGFzc25hbWUgaXMgc2V0LCBhIGRlZmF1bHQgZmFjdG9yeSBpcyBjcmVhdGVkCisgICAgICogKG9mIGNsYXNzICJvcmcuYXBhY2hlLnRpbGVzLnhtbERlZmluaXRpb24uSTE4bkZhY3RvcnlTZXQiKS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGZhY3RvcnlDbGFzc25hbWUgPQorICAgICAgICAib3JnLmFwYWNoZS50aWxlcy54bWxEZWZpbml0aW9uLkkxOG5GYWN0b3J5U2V0IjsKKworICAgIC8qKgorICAgICAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBwYXJzZXIgd2lsbCB2YWxpZGF0ZSBjb25maWd1cmF0aW9uIGZpbGVzLgorICAgICAqIERlZmF1bHQgdmFsdWUgaXMgdHJ1ZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgYm9vbGVhbiBwYXJzZXJWYWxpZGF0ZSA9IHRydWU7CisKKyAgICAvKiogCisgICAgICogRGVmaW5pdGlvbiBjb25maWd1cmF0aW9uIGZpbGUgc3BlY2lmaWVkIGJ5IHVzZXIuIAorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgZGVmaW5pdGlvbkNvbmZpZ0ZpbGVzID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBmYWN0b3J5IGlzICJtb2R1bGUtYXdhcmUiLgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIG1vZHVsZUF3YXJlID0gdHJ1ZTsKKworICAgIC8qKgorICAgICAqIFRoZSBuYW1lIGFzc29jaWF0ZWQgdG8gdGhpcyBmYWN0b3J5LgorICAgICAqIDxicj4KKyAgICAgKiBXaXRoIFN0cnV0cyAxLjEsIHRoaXMgbmFtZSBpcyB0aGUgbW9kdWxlIG5hbWUgdG8gd2hpY2ggdGhpcyBmYWN0b3J5CisgICAgICogYmVsb25nLiBJdCBpcyBzZXQgYnkgdGhlIHN5c3RlbS4KKyAgICAgKiA8YnI+CisgICAgICogSW4gcHJpb3IgdmVyc2lvbnMsIHRoaXMgcHJvcGVydHkgaXMgbm90IHVzZWQuCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBmYWN0b3J5TmFtZTsKKworICAgIC8qKiAKKyAgICAgKiBBbHRlcm5hdGUgbmFtZSBmb3IgcGFyc2VyIGRlYnVnIGRldGFpbHMgcHJvcGVydGllcyBpbiBjb25maWd1cmF0aW9uIGZpbGUuIAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIGEgcmVsZWFzZSBhZnRlciBTdHJ1dHMgMS4yLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBBUlNFUl9ERVRBSUxTX1BBUkFNRVRFUl9OQU1FID0KKyAgICAgICAgImRlZmluaXRpb25zLXBhcnNlci1kZXRhaWxzIjsKKworICAgIC8qKgorICAgICAqIEFsdGVybmF0ZSBuYW1lIGZvciBwYXJzZXIgdmFsaWRhdGUgcHJvcGVydGllcyBpbiBjb25maWd1cmF0aW9uIGZpbGUuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBBUlNFUl9WQUxJREFURV9QQVJBTUVURVJfTkFNRSA9CisgICAgICAgICJkZWZpbml0aW9ucy1wYXJzZXItdmFsaWRhdGUiOworCisgICAgLyoqIAorICAgICAqIEFsdGVybmF0ZSBuYW1lIGZvciBmYWN0b3J5IGNsYXNzbmFtZSBwcm9wZXJ0aWVzIGluIGNvbmZpZ3VyYXRpb24gZmlsZS4gCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRkFDVE9SWV9DTEFTU05BTUVfUEFSQU1FVEVSX05BTUUgPQorICAgICAgICAiZGVmaW5pdGlvbnMtZmFjdG9yeS1jbGFzcyI7CisKKyAgICAvKiogCisgICAgICogQWx0ZXJuYXRlIG5hbWUgZm9yIGRlZmluaXRpb24gZmlsZXMgcHJvcGVydGllcyBpbiBjb25maWd1cmF0aW9uIGZpbGUuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERFRklOSVRJT05TX0NPTkZJR19QQVJBTUVURVJfTkFNRSA9CisgICAgICAgICJkZWZpbml0aW9ucy1jb25maWciOworCisgICAgLyoqIAorICAgICAqIEFsdGVybmF0ZSBuYW1lIGZvciBkZWZpbml0aW9uIGRlYnVnIGRldGFpbHMgcHJvcGVydGllcyBpbiBjb25maWd1cmF0aW9uIGZpbGUuIAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIGEgcmVsZWFzZSBhZnRlciBTdHJ1dHMgMS4yLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFRJTEVTX0RFVEFJTFNfUEFSQU1FVEVSX05BTUUgPSAiZGVmaW5pdGlvbnMtZGVidWciOworCisgICAgLyoqCisgICAgICogTWFwIG9mIGV4dHJhIGF0dHJpYnV0ZSBhdmFpbGFibGUuCisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgZXh0cmFBdHRyaWJ1dGVzID0gbmV3IEhhc2hNYXAoKTsKKworICAgIC8qKgorICAgICAqIERlZmF1bHQgY29uc3RydWN0b3IuCisgICAgICovCisgICAgcHVibGljIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZygpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKiBDcmVhdGUgY29uZmlndXJhdGlvbiBvYmplY3QsIGFuZCBpbml0aWFsaXplIGl0IHdpdGggcGFyYW1ldGVycyBmcm9tIE1hcC4KKyAgICAgKiBQYXJhbWV0ZXJzIGNvcnJlc3BvbmRpbmcgdG8gYW4gYXR0cmlidXRlIGFyZSBmaWx0ZXJlZCBhbmQgc3RvcmVkIGluIGFwcHJvcHJpYXRlCisgICAgICogYXR0cmlidXRlLgorICAgICAqIEBwYXJhbSBpbml0UGFyYW1ldGVycyBNYXAuCisgICAgICovCisgICAgcHVibGljIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyhNYXAgaW5pdFBhcmFtZXRlcnMpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIG1vZHVsZSBhd2FyZSBmbGFnLgorICAgICAqIEByZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT46IHVzZXIgd2FudHMgYSBzaW5nbGUgZmFjdG9yeSBpbnN0YW5jZSwKKyAgICAgKiA8Y29kZT5mYWxzZTwvY29kZT46IHVzZXIgd2FudHMgbXVsdGlwbGUgZmFjdG9yeSBpbnN0YW5jZXMgKG9uZSBwZXIgbW9kdWxlIHdpdGggU3RydXRzKQorICAgICAqLworICAgIHB1YmxpYyBib29sZWFuIGlzTW9kdWxlQXdhcmUoKSB7CisgICAgICAgIHJldHVybiBtb2R1bGVBd2FyZTsKKyAgICB9CisgICAgLyoqCisgICAgICogU2V0IHRoZSBtb2R1bGUgYXdhcmUgZmxhZy4KKyAgICAgKiBAcGFyYW0gbW9kdWxlQXdhcmUgPGNvZGU+dHJ1ZTwvY29kZT46IHVzZXIgd2FudHMgYSBzaW5nbGUgZmFjdG9yeSBpbnN0YW5jZSwKKyAgICAgKiA8Y29kZT5mYWxzZTwvY29kZT46IHVzZXIgd2FudHMgbXVsdGlwbGUgZmFjdG9yeSBpbnN0YW5jZXMgKG9uZSBwZXIgbW9kdWxlIHdpdGggU3RydXRzKQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE1vZHVsZUF3YXJlKGJvb2xlYW4gbW9kdWxlQXdhcmUpIHsKKyAgICAgICAgdGhpcy5tb2R1bGVBd2FyZSA9IG1vZHVsZUF3YXJlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB0aGUgY2xhc3NuYW1lIG9mIHRoZSBmYWN0b3J5LgorICAgICAqIEByZXR1cm4gQ2xhc3NuYW1lLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RmFjdG9yeUNsYXNzbmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIGZhY3RvcnlDbGFzc25hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBjbGFzc25hbWUgb2YgdGhlIGZhY3RvcnkuLgorICAgICAqIEBwYXJhbSBhRmFjdG9yeUNsYXNzbmFtZSBDbGFzc25hbWUgb2YgdGhlIGZhY3RvcnkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RmFjdG9yeUNsYXNzbmFtZShTdHJpbmcgYUZhY3RvcnlDbGFzc25hbWUpIHsKKyAgICAgICAgZmFjdG9yeUNsYXNzbmFtZSA9IGFGYWN0b3J5Q2xhc3NuYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIERldGVybWluZXMgaWYgdGhlIHBhcnNlciBpcyB2YWxpZGF0aW5nLgorICAgICAqIEByZXR1cm4gPGNvZGU+dHJ1ZTxjb2RlPiB3aGVuIGluIHZhbGlkYXRpbmcgbW9kZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRQYXJzZXJWYWxpZGF0ZSgpIHsKKyAgICAgICAgcmV0dXJuIHBhcnNlclZhbGlkYXRlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgdmFsaWRhdGluZyBtb2RlIGZvciB0aGUgcGFyc2VyLgorICAgICAqIEBwYXJhbSBhUGFyc2VyVmFsaWRhdGUgPGNvZGU+dHJ1ZTwvY29kZT4gZm9yIHZhbGlkYXRpb24sIDxjb2RlPmZhbHNlPC9jb2RlPiBvdGhlcndpc2UKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRQYXJzZXJWYWxpZGF0ZShib29sZWFuIGFQYXJzZXJWYWxpZGF0ZSkgeworICAgICAgICBwYXJzZXJWYWxpZGF0ZSA9IGFQYXJzZXJWYWxpZGF0ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGRlZmluaXRpb24gY29uZmlnIGZpbGVzLgorICAgICAqIEByZXR1cm4gRGVmaXRpb24gY29uZmlnIGZpbGVzLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGVmaW5pdGlvbkNvbmZpZ0ZpbGVzKCkgeworICAgICAgICByZXR1cm4gZGVmaW5pdGlvbkNvbmZpZ0ZpbGVzOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZGVmaW5pdGlvbiBjb25maWcgZmlsZXMuCisgICAgICogQHBhcmFtIGFEZWZpbml0aW9uQ29uZmlnRmlsZXMgRGVmaW5pdGlvbiBjb25maWcgZmlsZXMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGVmaW5pdGlvbkNvbmZpZ0ZpbGVzKFN0cmluZyBhRGVmaW5pdGlvbkNvbmZpZ0ZpbGVzKSB7CisgICAgICAgIGRlZmluaXRpb25Db25maWdGaWxlcyA9IGFEZWZpbml0aW9uQ29uZmlnRmlsZXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHZhbHVlIG9mIGFuIGFkZGl0aW9uYWwgYXR0cmlidXRlLgorICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGF0dHJpYnV0ZS4KKyAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgb2YgdGhlIGF0dHJpYnV0ZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRBdHRyaWJ1dGUoU3RyaW5nIG5hbWUsIE9iamVjdCB2YWx1ZSkgeworICAgICAgICBleHRyYUF0dHJpYnV0ZXMucHV0KG5hbWUsIHZhbHVlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdmFsdWUgb2YgYW4gYWRkaXRpb25hbCBhdHRyaWJ1dGUuCisgICAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgYXR0cmlidXRlLgorICAgICAqIEByZXR1cm4gVmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSwgb3IgbnVsbCBpZiBub3QgZm91bmQuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRBdHRyaWJ1dGUoU3RyaW5nIG5hbWUpIHsKKyAgICAgICAgcmV0dXJuIGV4dHJhQXR0cmlidXRlcy5nZXQobmFtZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGFkZGl0aW9uYWwgYXR0cmlidXRlcyBhcyBhIE1hcC4KKyAgICAgKiBAcmV0dXJuIE1hcCBBIE1hcCBjb250YWluaW5nIGF0dHJpYnV0ZSBuYW1lIC0gdmFsdWUgcGFpcnMuCisgICAgICovCisgICAgcHVibGljIE1hcCBnZXRBdHRyaWJ1dGVzKCkgeworICAgICAgICBNYXAgbWFwID0gbmV3IEhhc2hNYXAoZXh0cmFBdHRyaWJ1dGVzKTsKKyAgICAgICAgLy8gQWRkIHByb3BlcnR5IGF0dHJpYnV0ZXMgdXNpbmcgb2xkIG5hbWVzCisgICAgICAgIC8qCisgICAgICAgICAgbWFwLnB1dChERUZJTklUSU9OU19DT05GSUdfUEFSQU1FVEVSX05BTUUsIGdldERlZmluaXRpb25Db25maWdGaWxlcygpKTsKKyAgICAgICAgICBtYXAucHV0KFRJTEVTX0RFVEFJTFNfUEFSQU1FVEVSX05BTUUsIEludGVnZXIudG9TdHJpbmcoZ2V0RGVidWdMZXZlbCgpKSApOworICAgICAgICAgIG1hcC5wdXQoUEFSU0VSX0RFVEFJTFNfUEFSQU1FVEVSX05BTUUsIEludGVnZXIudG9TdHJpbmcoZ2V0UGFyc2VyRGVidWdMZXZlbCgpKSApOworICAgICAgICAgIG1hcC5wdXQoUEFSU0VSX1ZBTElEQVRFX1BBUkFNRVRFUl9OQU1FLCBuZXcgQm9vbGVhbihnZXRQYXJzZXJWYWxpZGF0ZSgpKS50b1N0cmluZygpICk7CisgICAgICAgIAorICAgICAgICAgIGlmKCAhICJvcmcuYXBhY2hlLnRpbGVzLnhtbERlZmluaXRpb24uSTE4bkZhY3RvcnlTZXQiLmVxdWFscyhnZXRGYWN0b3J5Q2xhc3NuYW1lKCkpICkKKyAgICAgICAgICBtYXAucHV0KEZBQ1RPUllfQ0xBU1NOQU1FX1BBUkFNRVRFUl9OQU1FLCBnZXRGYWN0b3J5Q2xhc3NuYW1lKCkpOworICAgICAgICAqLworICAgICAgICByZXR1cm4gbWFwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFBvcHVsYXRlIHRoaXMgY29uZmlnIG9iamVjdCBmcm9tIHByb3BlcnRpZXMgbWFwLCBiYXNlZCBvbgorICAgICAqIHRoZSBzcGVjaWZpZWQgbmFtZS92YWx1ZSBwYWlycy4gIFRoaXMgbWV0aG9kIHVzZXMgdGhlIHBvcHVsYXRlKCkgbWV0aG9kIGZyb20KKyAgICAgKiBvcmcuYXBhY2hlLmNvbW1vbnMuYmVhbnV0aWxzLkJlYW5VdGlsLgorICAgICAqIDxwPgorICAgICAqIFByb3BlcnRpZXMga2V5cyBhcmUgc2Nhbm5lZCBmb3Igb2xkIHByb3BlcnR5IG5hbWVzLCBhbmQgbGlua2VkIHRvIHRoZSBuZXcgbmFtZQorICAgICAqIGlmIG5lY2Vzc2FyeS4gVGhpcyBtb2RpZmllcyB0aGUgcHJvcGVydGllcyBtYXAuCisgICAgICogPHA+CisgICAgICogVGhlIHBhcnRpY3VsYXIgc2V0dGVyIG1ldGhvZCB0byBiZSBjYWxsZWQgZm9yIGVhY2ggcHJvcGVydHkgaXMKKyAgICAgKiBkZXRlcm1pbmVkIHVzaW5nIHRoZSB1c3VhbCBKYXZhQmVhbnMgaW50cm9zcGVjdGlvbiBtZWNoYW5pc21zLiAgVGh1cywKKyAgICAgKiB5b3UgbWF5IGlkZW50aWZ5IGN1c3RvbSBzZXR0ZXIgbWV0aG9kcyB1c2luZyBhIEJlYW5JbmZvIGNsYXNzIHRoYXQgaXMKKyAgICAgKiBhc3NvY2lhdGVkIHdpdGggdGhlIGNsYXNzIG9mIHRoZSBiZWFuIGl0c2VsZi4gIElmIG5vIHN1Y2ggQmVhbkluZm8KKyAgICAgKiBjbGFzcyBpcyBhdmFpbGFibGUsIHRoZSBzdGFuZGFyZCBtZXRob2QgbmFtZSBjb252ZXJzaW9uICgic2V0IiBwbHVzCisgICAgICogdGhlIGNhcGl0YWxpemVkIG5hbWUgb2YgdGhlIHByb3BlcnR5IGluIHF1ZXN0aW9uKSBpcyB1c2VkLgorICAgICAqIDxwPgorICAgICAqIDxzdHJvbmc+Tk9URTwvc3Ryb25nPjogIEl0IGlzIGNvbnRyYXJ5IHRvIHRoZSBKYXZhQmVhbnMgU3BlY2lmaWNhdGlvbgorICAgICAqIHRvIGhhdmUgbW9yZSB0aGFuIG9uZSBzZXR0ZXIgbWV0aG9kICh3aXRoIGRpZmZlcmVudCBhcmd1bWVudAorICAgICAqIHNpZ25hdHVyZXMpIGZvciB0aGUgc2FtZSBwcm9wZXJ0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIE1hcCBrZXllZCBieSBwcm9wZXJ0eSBuYW1lLCB3aXRoIHRoZQorICAgICAqICBjb3JyZXNwb25kaW5nIChTdHJpbmcgb3IgU3RyaW5nW10pIHZhbHVlKHMpIHRvIGJlIHNldC4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBpZiB0aGUgY2FsbGVyIGRvZXMgbm90IGhhdmUKKyAgICAgKiAgYWNjZXNzIHRvIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QuCisgICAgICogQGV4Y2VwdGlvbiBJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGlmIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QKKyAgICAgKiAgdGhyb3dzIGFuIGV4Y2VwdGlvbi4KKyAgICAgKiBAc2VlIG9yZy5hcGFjaGUuY29tbW9ucy5iZWFudXRpbHMuQmVhblV0aWxzCisgICAgICovCisgICAgcHVibGljIHZvaWQgcG9wdWxhdGUoTWFwIHByb3BlcnRpZXMpCisgICAgICAgIHRocm93cyBJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLCBJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIHsKKworICAgICAgICAvLyBsaW5rIG9sZCBwYXJhbWV0ZXIgbmFtZXMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKKyAgICAgICAgbGlua09sZFByb3BlcnR5TmFtZXMocHJvcGVydGllcyk7CisgICAgICAgIEJlYW5VdGlscy5wb3B1bGF0ZSh0aGlzLCBwcm9wZXJ0aWVzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBMaW5rIG9sZCBwcm9wZXJ0eSBuYW1lcyB0byBuZXcgcHJvcGVydHkgbmFtZXMuCisgICAgICogVGhpcyBtb2RpZmllcyB0aGUgbWFwLgorICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIE1hcCBrZXllZCBieSBwcm9wZXJ0eSBuYW1lLCB3aXRoIHRoZQorICAgICAqICBjb3JyZXNwb25kaW5nIChTdHJpbmcgb3IgU3RyaW5nW10pIHZhbHVlKHMpIHRvIGJlIHNldC4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIHZvaWQgbGlua09sZFByb3BlcnR5TmFtZXMoTWFwIHByb3BlcnRpZXMpIHsKKyAgICAgICAgU2V0IGVudHJpZXMgPSBwcm9wZXJ0aWVzLmVudHJ5U2V0KCk7CisgICAgICAgIE1hcCB0b0FkZCA9IG5ldyBIYXNoTWFwKCk7CisgICAgICAgIEl0ZXJhdG9yIGkgPSBlbnRyaWVzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpLmhhc05leHQoKSkgeworICAgICAgICAgICAgTWFwLkVudHJ5IGVudHJ5ID0gKE1hcC5FbnRyeSkgaS5uZXh0KCk7CisKKyAgICAgICAgICAgIGlmIChERUZJTklUSU9OU19DT05GSUdfUEFSQU1FVEVSX05BTUUuZXF1YWxzKGVudHJ5LmdldEtleSgpKSkgeworICAgICAgICAgICAgICAgIHRvQWRkLnB1dCgiZGVmaW5pdGlvbkNvbmZpZ0ZpbGVzIiwgZW50cnkuZ2V0VmFsdWUoKSk7CisKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoRkFDVE9SWV9DTEFTU05BTUVfUEFSQU1FVEVSX05BTUUuZXF1YWxzKGVudHJ5LmdldEtleSgpKSkgeworICAgICAgICAgICAgICAgIHRvQWRkLnB1dCgiZmFjdG9yeUNsYXNzbmFtZSIsIGVudHJ5LmdldFZhbHVlKCkpOworCisgICAgICAgICAgICB9IGVsc2UgaWYgKFBBUlNFUl9ERVRBSUxTX1BBUkFNRVRFUl9OQU1FLmVxdWFscyhlbnRyeS5nZXRLZXkoKSkpIHsKKyAgICAgICAgICAgICAgICB0b0FkZC5wdXQoInBhcnNlckRlYnVnTGV2ZWwiLCBlbnRyeS5nZXRWYWx1ZSgpKTsKKworICAgICAgICAgICAgfSBlbHNlIGlmIChQQVJTRVJfVkFMSURBVEVfUEFSQU1FVEVSX05BTUUuZXF1YWxzKGVudHJ5LmdldEtleSgpKSkgeworICAgICAgICAgICAgICAgIHRvQWRkLnB1dCgicGFyc2VyVmFsaWRhdGUiLCBlbnRyeS5nZXRWYWx1ZSgpKTsKKworICAgICAgICAgICAgfSBlbHNlIGlmIChUSUxFU19ERVRBSUxTX1BBUkFNRVRFUl9OQU1FLmVxdWFscyhlbnRyeS5nZXRLZXkoKSkpIHsKKyAgICAgICAgICAgICAgICB0b0FkZC5wdXQoImRlYnVnTGV2ZWwiLCBlbnRyeS5nZXRWYWx1ZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICh0b0FkZC5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICBwcm9wZXJ0aWVzLnB1dEFsbCh0b0FkZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIGZhY3RvcnkgbmFtZS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEZhY3RvcnlOYW1lKCkgeworICAgICAgICByZXR1cm4gZmFjdG9yeU5hbWU7CisgICAgfQorICAgIC8qKgorICAgICAqIFNldCB0aGUgZmFjdG9yeSBuYW1lLgorICAgICAqIEBwYXJhbSBmYWN0b3J5TmFtZSBOYW1lIG9mIHRoZSBmYWN0b3J5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEZhY3RvcnlOYW1lKFN0cmluZyBmYWN0b3J5TmFtZSkgeworICAgICAgICB0aGlzLmZhY3RvcnlOYW1lID0gZmFjdG9yeU5hbWU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjIxOTYwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uLmphdmEKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzOworCisgIC8qKgorICAgKiBFeGNlcHRpb24gdGhyb3duIHdoZW4gYW4gZXJyb3Igb2NjdXJzIHdoaWxlIHRoZSBmYWN0b3J5IHRyaWVzIHRvCisgICAqIGNyZWF0ZSBhIG5ldyBpbnN0YW5jZSBtYXBwZXIuCisgICAqLworcHVibGljIGNsYXNzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBleHRlbmRzIFRpbGVzRXhjZXB0aW9uCit7CisgIC8qKgorICAgICogQ29uc3RydWN0b3IuCisgICAgKi8KKyAgcHVibGljIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbigpCisgICAgeworICAgIHN1cGVyKCk7CisgICAgdGhpcy5leGNlcHRpb24gPSBudWxsOworICB9CisKKyAgLyoqCisgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBlcnJvciBvciB3YXJuaW5nIG1lc3NhZ2UuCisgICAgKi8KKyAgcHVibGljIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbihTdHJpbmcgbWVzc2FnZSkKKyAgICB7CisgICAgc3VwZXIobWVzc2FnZSk7CisgICAgdGhpcy5leGNlcHRpb24gPSBudWxsOworICB9CisKKworICAvKioKKyAgICAqIENyZWF0ZSBhIG5ldyA8Y29kZT5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb248L2NvZGU+IHdyYXBwaW5nIGFuIGV4aXN0aW5nIGV4Y2VwdGlvbi4KKyAgICAqCisgICAgKiA8cD5UaGUgZXhpc3RpbmcgZXhjZXB0aW9uIHdpbGwgYmUgZW1iZWRkZWQgaW4gdGhlIG5ldworICAgICogb25lIGFuZCBpdHMgbWVzc2FnZSB3aWxsIGJlY29tZSB0aGUgZGVmYXVsdCBtZXNzYWdlIGZvcgorICAgICogdGhlIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbi48L3A+CisgICAgKgorICAgICogQHBhcmFtIGUgVGhlIGV4Y2VwdGlvbiB0byBiZSB3cmFwcGVkLgorICAgICovCisgIHB1YmxpYyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24oRXhjZXB0aW9uIGUpCisgIHsKKyAgICBzdXBlcigpOworICAgIHRoaXMuZXhjZXB0aW9uID0gZTsKKyAgfQorCisKKyAgLyoqCisgICAgKiBDcmVhdGUgYSBuZXcgPGNvZGU+RGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uPC9jb2RlPiBmcm9tIGFuIGV4aXN0aW5nIGV4Y2VwdGlvbi4KKyAgICAqCisgICAgKiA8cD5UaGUgZXhpc3RpbmcgZXhjZXB0aW9uIHdpbGwgYmUgZW1iZWRkZWQgaW4gdGhlIG5ldworICAgICogb25lLCBidXQgdGhlIG5ldyBleGNlcHRpb24gd2lsbCBoYXZlIGl0cyBvd24gbWVzc2FnZS48L3A+CisgICAgKgorICAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIGRldGFpbCBtZXNzYWdlLgorICAgICogQHBhcmFtIGUgVGhlIGV4Y2VwdGlvbiB0byBiZSB3cmFwcGVkLgorICAgICovCisgIHB1YmxpYyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24oU3RyaW5nIG1lc3NhZ2UsIEV4Y2VwdGlvbiBlKQorICB7CisgICAgc3VwZXIobWVzc2FnZSk7CisgICAgdGhpcy5leGNlcHRpb24gPSBlOworICB9CisKKworICAvKioKKyAgICAqIFJldHVybiBhIGRldGFpbCBtZXNzYWdlIGZvciB0aGlzIGV4Y2VwdGlvbi4KKyAgICAqCisgICAgKiA8cD5JZiB0aGVyZSBpcyBhIGVtYmVkZGVkIGV4Y2VwdGlvbiwgYW5kIGlmIHRoZSBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24KKyAgICAqIGhhcyBubyBkZXRhaWwgbWVzc2FnZSBvZiBpdHMgb3duLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybgorICAgICogdGhlIGRldGFpbCBtZXNzYWdlIGZyb20gdGhlIGVtYmVkZGVkIGV4Y2VwdGlvbi48L3A+CisgICAgKgorICAgICogQHJldHVybiBUaGUgZXJyb3Igb3Igd2FybmluZyBtZXNzYWdlLgorICAgICovCisgIHB1YmxpYyBTdHJpbmcgZ2V0TWVzc2FnZSAoKQorICB7CisgICAgU3RyaW5nIG1lc3NhZ2UgPSBzdXBlci5nZXRNZXNzYWdlICgpOworCisgICAgaWYgKG1lc3NhZ2UgPT0gbnVsbCAmJiBleGNlcHRpb24gIT0gbnVsbCkgeworICAgICAgcmV0dXJuIGV4Y2VwdGlvbi5nZXRNZXNzYWdlKCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHJldHVybiBtZXNzYWdlOworICAgIH0KKyAgfQorCisKKyAgLyoqCisgICAgKiBSZXR1cm4gdGhlIGVtYmVkZGVkIGV4Y2VwdGlvbiwgaWYgYW55LgorICAgICogQHJldHVybiBUaGUgZW1iZWRkZWQgZXhjZXB0aW9uLCBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiB0aGVyZSBpcyBub25lLgorICAgICovCisgIHB1YmxpYyBFeGNlcHRpb24gZ2V0RXhjZXB0aW9uICgpCisgIHsKKyAgICByZXR1cm4gZXhjZXB0aW9uOworICB9CisKKyAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAvLyBJbnRlcm5hbCBzdGF0ZS4KKyAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisKKyAgLyoqCisgICAqIEFueSAid3JhcHBlZCIgZXhjZXB0aW9uIHdpbGwgYmUgZXhwb3NlZCB3aGVuIHRoaXMgaXMgc2VyaWFsaXplZC4KKyAgICogQHNlcmlhbAorICAgKi8KKyAgcHJpdmF0ZSBFeGNlcHRpb24gZXhjZXB0aW9uOworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9EZWZpbml0aW9uc1V0aWwuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZGIzMWNkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvRGVmaW5pdGlvbnNVdGlsLmphdmEKQEAgLTAsMCArMSwzMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzOworCitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZzsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q7CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLnRhZ2xpYi50aWxlcy5Db21wb25lbnRDb25zdGFudHM7CisKKy8qKgorICogVXRpbGl0aWVzIGNsYXNzIGZvciBkZWZpbml0aW9ucyBmYWN0b3J5LgorICogQWxzbyBkZWZpbmUgdXNlckRlYnVnTGV2ZWwgcHJvcGVydHkgKFRPRE8gdG8gYmUgbW92ZWQgZnJvbSB0aGlzIGNsYXNzID8pLgorICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBUaWxlc1V0aWwjY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0LCBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcpfQorICovCitwdWJsaWMgY2xhc3MgRGVmaW5pdGlvbnNVdGlsIGV4dGVuZHMgVGlsZXNVdGlsIGltcGxlbWVudHMgQ29tcG9uZW50Q29uc3RhbnRzIHsKKworICAgIC8qKiAKKyAgICAgKiBDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuIAorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgTG9nIGxvZyA9IExvZ0ZhY3RvcnkuZ2V0TG9nKERlZmluaXRpb25zVXRpbC5jbGFzcyk7CisKKyAgICAvKiogCisgICAgICogR2xvYmFsIHVzZXIgZGVmaW5lZCBkZWJ1ZyBsZXZlbC4KKyAgICAgKiBAZGVwcmVjYXRlZCBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIHJlbGVhc2UgYWZ0ZXIgU3RydXRzIDEuMi4gCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBpbnQgdXNlckRlYnVnTGV2ZWwgPSAwOworCisgICAgLyoqIAorICAgICAqIFVzZXIgRGVidWcgbGV2ZWwuIAorICAgICAqIEBkZXByZWNhdGVkIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIGEgcmVsZWFzZSBhZnRlciBTdHJ1dHMgMS4yLiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIGludCBOT19ERUJVRyA9IDA7CisKKyAgICAvKiogCisgICAgICogTmFtZSBvZiBpbml0IHByb3BlcnR5IGNhcnJ5aW5nIGRlYnVnIGxldmVsLiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBERUZJTklUSU9OU19DT05GSUdfVVNFUl9ERUJVR19MRVZFTCA9CisgICAgICAgICJkZWZpbml0aW9ucy1kZWJ1ZyI7CisKKyAgICAvKiogCisgICAgICogTmFtZSBvZiBpbml0IHByb3BlcnR5IGNhcnJ5aW5nIGZhY3RvcnkgY2xhc3MgbmFtZS4gCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVGSU5JVElPTlNfRkFDVE9SWV9DTEFTU05BTUUgPQorICAgICAgICAiZGVmaW5pdGlvbnMtZmFjdG9yeS1jbGFzcyI7CisKKyAgICAvKiogCisgICAgICogQ29uc3RhbnQgbmFtZSB1c2VkIHRvIHN0b3JlIGZhY3RvcnkgaW4gY29udGV4dC4gCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVGSU5JVElPTlNfRkFDVE9SWSA9CisgICAgICAgICJvcmcuYXBhY2hlLnRpbGVzLkRFRklOSVRJT05TX0ZBQ1RPUlkiOworCisgICAgLyoqIAorICAgICAqIENvbnN0YW50IG5hbWUgdXNlZCB0byBzdG9yZSBkZWZpbml0aW9uIGluIGpzcCBjb250ZXh0LgorICAgICAqIFVzZWQgdG8gcGFzcyBkZWZpbml0aW9uIGZyb20gYSBTdHJ1dHMgYWN0aW9uIHRvIHNlcnZsZXQgZm9yd2FyZC4gCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgQUNUSU9OX0RFRklOSVRJT04gPQorICAgICAgICAib3JnLmFwYWNoZS50aWxlcy5BQ1RJT05fREVGSU5JVElPTiI7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5LgorICAgICAqIElmIGEgZmFjdG9yeSBjbGFzcyBuYW1lIGlzIHByb3ZpZGVkLCBhIGZhY3Rvcnkgb2YgdGhpcyBjbGFzcyBpcyBjcmVhdGVkLiBPdGhlcndpc2UsCisgICAgICogZGVmYXVsdCBmYWN0b3J5IGlzIGNyZWF0ZWQuCisgICAgICogQHBhcmFtIGNsYXNzbmFtZSBDbGFzcyBuYW1lIG9mIHRoZSBmYWN0b3J5IHRvIGNyZWF0ZS4KKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuCisgICAgICogQHBhcmFtIHByb3BlcnRpZXMgTWFwIG9mIG5hbWUvcHJvcGVydHkgdXNlZCB0byBpbml0aWFsaXplIGZhY3RvcnkgY29uZmlndXJhdGlvbiBvYmplY3QuCisgICAgICogQHJldHVybiBuZXdseSBjcmVhdGVkIGZhY3RvcnkuCisgICAgICogQHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gSWYgYW4gZXJyb3Igb2NjdXIgd2hpbGUgaW5pdGlhbGl6aW5nIGZhY3RvcnkKKyAgICAgKiBAZGVwcmVjYXRlZCBVc2UgY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LCBTZXJ2bGV0Q29uZmlnIHNlcnZsZXRDb25maWcpCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBEZWZpbml0aW9uc0ZhY3RvcnkgY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KAorICAgICAgICBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgTWFwIHByb3BlcnRpZXMsCisgICAgICAgIFN0cmluZyBjbGFzc25hbWUpCisgICAgICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24geworCisgICAgICAgIC8vIENyZWF0ZSBjb25maWcgb2JqZWN0CisgICAgICAgIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyBmYWN0b3J5Q29uZmlnID0gbmV3IERlZmluaXRpb25zRmFjdG9yeUNvbmZpZygpOworICAgICAgICAvLyBwb3B1bGF0ZSBpdCBmcm9tIG1hcC4KKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGZhY3RvcnlDb25maWcucG9wdWxhdGUocHJvcGVydGllcyk7CisKKyAgICAgICAgfSBjYXRjaCAoRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJFcnJvciAtIGNyZWF0ZURlZmluaXRpb25zRmFjdG9yeSA6IENhbid0IHBvcHVsYXRlIGNvbmZpZyBvYmplY3QgZnJvbSBwcm9wZXJ0aWVzIG1hcCIsCisgICAgICAgICAgICAgICAgZXgpOworICAgICAgICB9CisKKyAgICAgICAgLy8gQWRkIGNsYXNzbmFtZQorICAgICAgICBpZiAoY2xhc3NuYW1lICE9IG51bGwpCisgICAgICAgICAgICBmYWN0b3J5Q29uZmlnLnNldEZhY3RvcnlDbGFzc25hbWUoY2xhc3NuYW1lKTsKKworICAgICAgICAvLyBDcmVhdGUgZmFjdG9yeSB1c2luZyBjb25maWcgb2JqZWN0CisgICAgICAgIHJldHVybiBjcmVhdGVEZWZpbml0aW9uc0ZhY3Rvcnkoc2VydmxldENvbnRleHQsIGZhY3RvcnlDb25maWcpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBkZWZhdWx0IERlZmluaXRpb24gZmFjdG9yeS4KKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuCisgICAgICogQHBhcmFtIHByb3BlcnRpZXMgTWFwIG9mIG5hbWUvcHJvcGVydHkgdXNlZCB0byBpbml0aWFsaXplIGZhY3RvcnkgY29uZmlndXJhdGlvbiBvYmplY3QuCisgICAgICogQHJldHVybiBuZXdseSBjcmVhdGVkIGZhY3Rvcnkgb2YgdHlwZSBDb25maWd1cmFibGVEZWZpbml0aW9uc0ZhY3RvcnkuCisgICAgICogQHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gSWYgYW4gZXJyb3Igb2NjdXIgd2hpbGUgaW5pdGlhbGl6aW5nIGZhY3RvcnkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIERlZmluaXRpb25zRmFjdG9yeSBjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoCisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LAorICAgICAgICBNYXAgcHJvcGVydGllcykKKyAgICAgICAgdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiB7CisKKyAgICAgICAgcmV0dXJuIGNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShzZXJ2bGV0Q29udGV4dCwgcHJvcGVydGllcywgbnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIERlZmluaXRpb24gZmFjdG9yeS4KKyAgICAgKiBDcmVhdGUgY29uZmlndXJhdGlvbiBvYmplY3QgZnJvbSBzZXJ2bGV0IHdlYi54bWwgZmlsZSwgdGhlbiBjcmVhdGUKKyAgICAgKiBDb25maWd1cmFibGVEZWZpbml0aW9uc0ZhY3RvcnkgYW5kIGluaXRpYWxpemVkIGl0IHdpdGggb2JqZWN0LgorICAgICAqIDxwPgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZC4gQ2FsbHMgY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LCBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcgZmFjdG9yeUNvbmZpZykKKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBTZXJ2bGV0IENvbnRleHQgcGFzc2VkIHRvIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS4KKyAgICAgKiBAcGFyYW0gc2VydmxldENvbmZpZyBTZXJ2bGV0IGNvbmZpZyBjb250YWluaW5nIHBhcmFtZXRlcnMgdG8gYmUgcGFzc2VkIHRvIGZhY3RvcnkgY29uZmlndXJhdGlvbiBvYmplY3QuCisgICAgICogQHJldHVybiBuZXdseSBjcmVhdGVkIGZhY3Rvcnkgb2YgdHlwZSBDb25maWd1cmFibGVEZWZpbml0aW9uc0ZhY3RvcnkuCisgICAgICogQHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gSWYgYW4gZXJyb3Igb2NjdXIgd2hpbGUgaW5pdGlhbGl6aW5nIGZhY3RvcnkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIERlZmluaXRpb25zRmFjdG9yeSBjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoCisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LAorICAgICAgICBTZXJ2bGV0Q29uZmlnIHNlcnZsZXRDb25maWcpCisgICAgICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24geworCisgICAgICAgIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyBmYWN0b3J5Q29uZmlnID0gcmVhZEZhY3RvcnlDb25maWcoc2VydmxldENvbmZpZyk7CisKKyAgICAgICAgcmV0dXJuIGNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShzZXJ2bGV0Q29udGV4dCwgZmFjdG9yeUNvbmZpZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIERlZmluaXRpb24gZmFjdG9yeS4KKyAgICAgKiBDcmVhdGUgY29uZmlndXJhdGlvbiBvYmplY3QgZnJvbSBzZXJ2bGV0IHdlYi54bWwgZmlsZSwgdGhlbiBjcmVhdGUKKyAgICAgKiBDb25maWd1cmFibGVEZWZpbml0aW9uc0ZhY3RvcnkgYW5kIGluaXRpYWxpemVkIGl0IHdpdGggb2JqZWN0LgorICAgICAqIDxwPgorICAgICAqIElmIGNoZWNrSWZFeGlzdCBpcyB0cnVlLCBzdGFydCBieSBjaGVja2luZyBpZiBmYWN0b3J5IGFscmVhZHkgZXhpc3QuIElmIHllcywKKyAgICAgKiByZXR1cm4gaXQuIElmIG5vLCBjcmVhdGUgYSBuZXcgb25lLgorICAgICAqIDxwPgorICAgICAqIElmIGNoZWNrSWZFeGlzdCBpcyBmYWxzZSwgZmFjdG9yeSBpcyBhbHdheXMgY3JlYXRlZC4KKyAgICAgKiA8cD4KKyAgICAgKiBDb252ZW5pZW5jZSBtZXRob2QuIENhbGxzIGNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCwgRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnIGZhY3RvcnlDb25maWcpCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuCisgICAgICogQHBhcmFtIHNlcnZsZXRDb25maWcgU2VydmxldCBjb25maWcgY29udGFpbmluZyBwYXJhbWV0ZXJzIHRvIGJlIHBhc3NlZCB0byBmYWN0b3J5IGNvbmZpZ3VyYXRpb24gb2JqZWN0LgorICAgICAqIEBwYXJhbSBjaGVja0lmRXhpc3QgQ2hlY2sgaWYgZmFjdG9yeSBhbHJlYWR5IGV4aXN0LiBJZiB0cnVlIGFuZCBmYWN0b3J5IGV4aXN0LCByZXR1cm4gaXQuCisgICAgICogSWYgdHJ1ZSBhbmQgZmFjdG9yeSBkb2Vzbid0IGV4aXN0LCBjcmVhdGUgaXQuIElmIGZhbHNlLCBjcmVhdGUgaXQgaW4gYWxsIGNhc2VzLgorICAgICAqIEByZXR1cm4gbmV3bHkgY3JlYXRlZCBmYWN0b3J5IG9mIHR5cGUgQ29uZmlndXJhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LgorICAgICAqIEB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIElmIGFuIGVycm9yIG9jY3VyIHdoaWxlIGluaXRpYWxpemluZyBmYWN0b3J5CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBEZWZpbml0aW9uc0ZhY3RvcnkgY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KAorICAgICAgICBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgU2VydmxldENvbmZpZyBzZXJ2bGV0Q29uZmlnLAorICAgICAgICBib29sZWFuIGNoZWNrSWZFeGlzdCkKKyAgICAgICAgdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiB7CisKKyAgICAgICAgaWYgKGNoZWNrSWZFeGlzdCkgeworICAgICAgICAgICAgLy8gQ2hlY2sgaWYgYWxyZWFkeSBleGlzdCBpbiBjb250ZXh0CisgICAgICAgICAgICBEZWZpbml0aW9uc0ZhY3RvcnkgZmFjdG9yeSA9IGdldERlZmluaXRpb25zRmFjdG9yeShzZXJ2bGV0Q29udGV4dCk7CisgICAgICAgICAgICBpZiAoZmFjdG9yeSAhPSBudWxsKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWN0b3J5OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShzZXJ2bGV0Q29udGV4dCwgc2VydmxldENvbmZpZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGRlZmluaXRpb24gZmFjdG9yeSBmcm9tIGFwcHJvcHJpYXRlIHNlcnZsZXQgY29udGV4dC4KKyAgICAgKiBAcmV0dXJuIERlZmluaXRpb25zIGZhY3Rvcnkgb3IgbnVsbCBpZiBub3QgZm91bmQuCisgICAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBUaWxlc1V0aWwjZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRSZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCl9CisgICAgICogQHNpbmNlIDIwMDIwNzA4CisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBEZWZpbml0aW9uc0ZhY3RvcnkgZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0KSB7CisgICAgICAgIHJldHVybiAoRGVmaW5pdGlvbnNGYWN0b3J5KSBzZXJ2bGV0Q29udGV4dC5nZXRBdHRyaWJ1dGUoREVGSU5JVElPTlNfRkFDVE9SWSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IERlZmluaXRpb24gc3RvcmVkIGluIGpzcCBjb250ZXh0IGJ5IGFuIGFjdGlvbi4KKyAgICAgKiBAcmV0dXJuIENvbXBvbmVudERlZmluaXRpb24gb3IgbnVsbCBpZiBub3QgZm91bmQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBDb21wb25lbnREZWZpbml0aW9uIGdldEFjdGlvbkRlZmluaXRpb24oU2VydmxldFJlcXVlc3QgcmVxdWVzdCkgeworICAgICAgICByZXR1cm4gKENvbXBvbmVudERlZmluaXRpb24pIHJlcXVlc3QuZ2V0QXR0cmlidXRlKEFDVElPTl9ERUZJTklUSU9OKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTdG9yZSBkZWZpbml0aW9uIGluIGpzcCBjb250ZXh0LgorICAgICAqIE1haW5seSB1c2VkIGJ5IFN0cnV0cyB0byBwYXNzIGEgZGVmaW5pdGlvbiBkZWZpbmVkIGluIGFuIEFjdGlvbiB0byB0aGUgZm9yd2FyZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0QWN0aW9uRGVmaW5pdGlvbigKKyAgICAgICAgU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgQ29tcG9uZW50RGVmaW5pdGlvbiBkZWZpbml0aW9uKSB7CisKKyAgICAgICAgcmVxdWVzdC5zZXRBdHRyaWJ1dGUoQUNUSU9OX0RFRklOSVRJT04sIGRlZmluaXRpb24pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJlbW92ZSBEZWZpbml0aW9uIHN0b3JlZCBpbiBqc3AgY29udGV4dC4KKyAgICAgKiBNYWlubHkgdXNlZCBieSBTdHJ1dHMgdG8gcGFzcyBhIGRlZmluaXRpb24gZGVmaW5lZCBpbiBhbiBBY3Rpb24gdG8gdGhlIGZvcndhcmQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZUFjdGlvbkRlZmluaXRpb24oCisgICAgICAgIFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgIENvbXBvbmVudERlZmluaXRpb24gZGVmaW5pdGlvbikgeworCisgICAgICAgIHJlcXVlc3QucmVtb3ZlQXR0cmlidXRlKEFDVElPTl9ERUZJTklUSU9OKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQb3B1bGF0ZSBEZWZpbml0aW9uIEZhY3RvcnkgQ29uZmlnIGZyb20gd2ViLnhtbCBwcm9wZXJ0aWVzLgorICAgICAqIEBwYXJhbSBmYWN0b3J5Q29uZmlnIERlZmluaXRpb24gRmFjdG9yeSBDb25maWcgdG8gcG9wdWxhdGUuCisgICAgICogQHBhcmFtIHNlcnZsZXRDb25maWcgQ3VycmVudCBzZXJ2bGV0IGNvbmZpZyBjb250YWluaW5nIHdlYi54bWwgcHJvcGVydGllcy4KKyAgICAgKiBAZXhjZXB0aW9uIElsbGVnYWxBY2Nlc3NFeGNlcHRpb24gaWYgdGhlIGNhbGxlciBkb2VzIG5vdCBoYXZlCisgICAgICogIGFjY2VzcyB0byB0aGUgcHJvcGVydHkgYWNjZXNzb3IgbWV0aG9kCisgICAgICogQGV4Y2VwdGlvbiBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIGlmIHRoZSBwcm9wZXJ0eSBhY2Nlc3NvciBtZXRob2QKKyAgICAgKiAgdGhyb3dzIGFuIGV4Y2VwdGlvbgorICAgICAqIEBzZWUgb3JnLmFwYWNoZS5jb21tb25zLmJlYW51dGlscy5CZWFuVXRpbHMKKyAgICAgKiBAc2luY2UgdGlsZXMgMjAwMjA3MDgKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgcG9wdWxhdGVEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcoCisgICAgICAgIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyBmYWN0b3J5Q29uZmlnLAorICAgICAgICBTZXJ2bGV0Q29uZmlnIHNlcnZsZXRDb25maWcpCisgICAgICAgIHRocm93cyBJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLCBJbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uIHsKKworICAgICAgICBNYXAgcHJvcGVydGllcyA9IG5ldyBEZWZpbml0aW9uc1V0aWwuU2VydmxldFByb3BlcnRpZXNNYXAoc2VydmxldENvbmZpZyk7CisJCSAgU3lzdGVtLm91dC5wcmludGxuKCJQb3B1bGF0aW5nIGZhY3RvcnkgY29uZmlnIHdpdGggdGhlc2UgcHJvcGVydGllczogIiArIHByb3BlcnRpZXMpOworICAgICAgICBmYWN0b3J5Q29uZmlnLnBvcHVsYXRlKHByb3BlcnRpZXMpOworCQkgIFN5c3RlbS5vdXQucHJpbnRsbigiRG9uZSBwb3B1bGF0aW5nIGZhY3RvcnkgY29uZmlnIik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIEZhY3RvcnlDb25maWcgYW5kIGluaXRpYWxpemUgaXQgZnJvbSB3ZWIueG1sLgorICAgICAqCisgICAgICogQHBhcmFtIHNlcnZsZXRDb25maWcgU2VydmxldENvbmZpZyBmb3IgdGhlIG1vZHVsZSB3aXRoIHdoaWNoCisgICAgICogIHRoaXMgcGx1ZyBpbiBpcyBhc3NvY2lhdGVkCisgICAgICogQGV4Y2VwdGlvbiBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gaWYgdGhpcyA8Y29kZT5QbHVnSW48L2NvZGU+IGNhbm5vdAorICAgICAqICBiZSBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyByZWFkRmFjdG9yeUNvbmZpZyhTZXJ2bGV0Q29uZmlnIHNlcnZsZXRDb25maWcpCisgICAgICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24geworCisgICAgICAgIC8vIENyZWF0ZSB0aWxlcyBkZWZpbml0aW9ucyBjb25maWcgb2JqZWN0CisgICAgICAgIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyBmYWN0b3J5Q29uZmlnID0gbmV3IERlZmluaXRpb25zRmFjdG9yeUNvbmZpZygpOworCisgICAgICAgIC8vIEdldCBpbml0IHBhcmFtZXRlcnMgZnJvbSB3ZWIueG1sIGZpbGVzCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBEZWZpbml0aW9uc1V0aWwucG9wdWxhdGVEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcoCisgICAgICAgICAgICAgICAgZmFjdG9yeUNvbmZpZywKKyAgICAgICAgICAgICAgICBzZXJ2bGV0Q29uZmlnKTsKKworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGV4LnByaW50U3RhY2tUcmFjZSgpOworICAgICAgICAgICAgdGhyb3cgbmV3IERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiQ2FuJ3QgcG9wdWxhdGUgRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnIGNsYXNzIGZyb20gJ3dlYi54bWwnLiIsCisgICAgICAgICAgICAgICAgZXgpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhY3RvcnlDb25maWc7CisgICAgfQorCisgICAgLyoqCisgICAgICogSW5uZXIgY2xhc3MuCisgICAgICogV3JhcHBlciBmb3IgU2VydmxldENvbnRleHQgaW5pdCBwYXJhbWV0ZXJzLgorICAgICAqIE9iamVjdCBvZiB0aGlzIGNsYXNzIGlzIGFuIGhhc2htYXAgY29udGFpbmluZyBwYXJhbWV0ZXJzIGFuZCB2YWx1ZXMKKyAgICAgKiBkZWZpbmVkIGluIHRoZSBzZXJ2bGV0IGNvbmZpZyBmaWxlICh3ZWIueG1sKS4KKyAgICAgKi8KKyAgICBzdGF0aWMgY2xhc3MgU2VydmxldFByb3BlcnRpZXNNYXAgZXh0ZW5kcyBIYXNoTWFwIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdG9yLgorICAgICAgICAgKi8KKyAgICAgICAgU2VydmxldFByb3BlcnRpZXNNYXAoU2VydmxldENvbmZpZyBjb25maWcpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgdmVyeSBzaW1wbGUuCisgICAgICAgICAgICAvLyBJdCBpcyBwb3NzaWJsZSB0byBhdm9pZCBjcmVhdGlvbiBvZiBhIG5ldyBzdHJ1Y3R1cmUsIGJ1dCB0aGlzIG5lZWQKKyAgICAgICAgICAgIC8vIGltcGx5IHdyaXRpbmcgYWxsIE1hcCBpbnRlcmZhY2UuCisJCQkJU3lzdGVtLm91dC5wcmludGxuKCJJdGVyYXRpbmcgb3ZlciBzZXJ2bGV0IHBhcmFtZXRlcnMiKTsKKyAgICAgICAgICAgIEVudW1lcmF0aW9uIG5hbWVzID0gY29uZmlnLmdldEluaXRQYXJhbWV0ZXJOYW1lcygpOworICAgICAgICAgICAgd2hpbGUgKG5hbWVzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIG5hbWVzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgcHV0KGtleSwgY29uZmlnLmdldEluaXRQYXJhbWV0ZXIoa2V5KSk7CisJCQkJICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3RvcmluZyBrZXkgIiArIGtleSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IC8vIGVuZCBpbm5lciBjbGFzcworCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL0RpcmVjdFN0cmluZ0F0dHJpYnV0ZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5NzVkZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9EaXJlY3RTdHJpbmdBdHRyaWJ1dGUuamF2YQpAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS50aWxlczsKKworLyoqCisgKiBDb21wb25lbnQgYXR0cmlidXRlLgorICogU3VjaCBhdHRyaWJ1dGUgdmFsdWUgcmVwcmVzZW50IGEgcGF0aCB1c2VkIHRvIGluY2x1ZGUgYSBKU1AuCisgKi8KK3B1YmxpYyBjbGFzcyBEaXJlY3RTdHJpbmdBdHRyaWJ1dGUgZXh0ZW5kcyBVbnR5cGVkQXR0cmlidXRlIHsKKworICAgIHB1YmxpYyBEaXJlY3RTdHJpbmdBdHRyaWJ1dGUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHN1cGVyKHZhbHVlKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjE3YjY3MwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL0ZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbi5qYXZhCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzOworCisgIC8qKgorICAgKiBFeGNlcHRpb24gdGhyb3duIHdoZW4gZGVmaW5pdGlvbnMgZmFjdG9yeSBpcyBub3QgZm91bmQuCisgICAqLworcHVibGljIGNsYXNzIEZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbgoreworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLgorICAgICAqLworICBwdWJsaWMgRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uKCkKKyAgICB7CisgICAgc3VwZXIoKTsKKyAgICB9CisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICogQHBhcmFtIG1zZyBNZXNzYWdlLgorICAgICAqLworICBwdWJsaWMgRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uKCBTdHJpbmcgbXNnICkKKyAgICB7CisgICAgc3VwZXIobXNnKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9HbG9iYWxzLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9HbG9iYWxzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQzZWM4NQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL0dsb2JhbHMuamF2YQpAQCAtMCwwICsxLDI1MiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGlsZXM7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKKworLyoqCisgKiBHbG9iYWwgbWFuaWZlc3QgY29uc3RhbnRzIGZvciB0aGUgZW50aXJlIFN0cnV0cyBGcmFtZXdvcmsuCisgKgorICogQGF1dGhvciBDcmFpZyBSLiBNY0NsYW5haGFuCisgKiBAYXV0aG9yIERhdmlkIEdyYWhhbQorICogQGF1dGhvciBEYXZpZCBHZWFyeTogbWlncmF0ZWQgZnJvbSBzdHJ1dHMgcGFja2FnZSB0byBlbGltaW5hdGUgU3RydXRzCisgKiAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbmNpZXMKKyAqLworcHVibGljIGNsYXNzIEdsb2JhbHMgaW1wbGVtZW50cyBTZXJpYWxpemFibGUgeworCisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBNYW5pZmVzdCBDb25zdGFudHMKKworCisgICAgLyoqCisgICAgICogVGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyIDxjb2RlPkFjdGlvblNlcnZsZXQ8L2NvZGU+CisgICAgICogaW5zdGFuY2Ugd2lsbCBiZSBzdG9yZWQuCisgICAgICoKKyAgICAgKiBAc2luY2UgU3RydXRzIDEuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEFDVElPTl9TRVJWTEVUX0tFWSA9CisgICAgICAgICJvcmcuYXBhY2hlLnRpbGVzLmFjdGlvbi5BQ1RJT05fU0VSVkxFVCI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBhIGJvb2xlYW4gPGNvZGU+dHJ1ZTwvY29kZT4KKyAgICAgKiB2YWx1ZSBzaG91bGQgYmUgc3RvcmVkIGlmIHRoaXMgcmVxdWVzdCB3YXMgY2FuY2VsbGVkLgorICAgICAqCisgICAgICogQHNpbmNlIFN0cnV0cyAxLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBDQU5DRUxfS0VZID0KKyAgICAgICAgIm9yZy5hcGFjaGUudGlsZXMuYWN0aW9uLkNBTkNFTCI7CisKKyAgICAvKioKKyAgICAgKiA8cD5UaGUgYmFzZSBvZiB0aGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIKKyAgICAgKiA8Y29kZT5Nb2R1bGVDb25maWc8L2NvZGU+IGRhdGEgc3RydWN0dXJlIHdpbGwgYmUgc3RvcmVkLiAgVGhpcworICAgICAqIHdpbGwgYmUgc3VmZml4ZWQgd2l0aCB0aGUgYWN0dWFsIG1vZHVsZSBwcmVmaXggKGluY2x1ZGluZyB0aGUKKyAgICAgKiBsZWFkaW5nICIvIiBjaGFyYWN0ZXIpIHRvIGZvcm0gdGhlIGFjdHVhbCBhdHRyaWJ1dGVzIGtleS48L3A+CisgICAgICoKKyAgICAgKiA8cD5Gb3IgZWFjaCByZXF1ZXN0IHByb2Nlc3NlZCBieSB0aGUgY29udHJvbGxlciBzZXJ2bGV0LCB0aGUKKyAgICAgKiA8Y29kZT5Nb2R1bGVDb25maWc8L2NvZGU+IG9iamVjdCBmb3IgdGhlIG1vZHVsZSBzZWxlY3RlZCBieQorICAgICAqIHRoZSByZXF1ZXN0IFVSSSBjdXJyZW50bHkgYmVpbmcgcHJvY2Vzc2VkIHdpbGwgYWxzbyBiZSBleHBvc2VkIHVuZGVyCisgICAgICogdGhpcyBrZXkgYXMgYSByZXF1ZXN0IGF0dHJpYnV0ZS48L3A+CisgICAgICoKKyAgICAgKiBAc2luY2UgU3RydXRzIDEuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE1PRFVMRV9LRVkgPQorICAgICAgICAib3JnLmFwYWNoZS50aWxlcy5hY3Rpb24uTU9EVUxFIjsKKyAgICAgICAgCisgICAgLyoqCisgICAgICogVGhlIFNlcnZsZXRDb250ZXh0IGF0dHJpYnV0ZSB1bmRlciB3aGljaCB3ZSBzdG9yZSB0aGUgbW9kdWxlIHByZWZpeGVzIAorICAgICAqIFN0cmluZ1tdLgorICAgICAqIEBzaW5jZSBTdHJ1dHMgMS4yCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTU9EVUxFX1BSRUZJWEVTX0tFWSA9CisgICAgICAgICJvcmcuYXBhY2hlLnRpbGVzLmdsb2JhbHMuTU9EVUxFX1BSRUZJWEVTIjsKKworCisgICAgLyoqCisgICAgICogVGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyIDxzdHJvbmc+ZGVmYXVsdDwvc3Ryb25nPgorICAgICAqIGNvbmZpZ3VyZWQgZGF0YSBzb3VyY2UgKHdoaWNoIG11c3QgaW1wbGVtZW50CisgICAgICogPGNvZGU+amF2YXguc3FsLkRhdGFTb3VyY2U8L2NvZGU+KSBpcyBzdG9yZWQsCisgICAgICogaWYgb25lIGlzIGNvbmZpZ3VyZWQgZm9yIHRoaXMgbW9kdWxlLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERBVEFfU09VUkNFX0tFWSA9CisgICAgICAib3JnLmFwYWNoZS50aWxlcy5hY3Rpb24uREFUQV9TT1VSQ0UiOworCisKKyAgICAvKioKKyAgICAgKiBUaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCB5b3VyIGFjdGlvbiBzaG91bGQgc3RvcmUgYW4KKyAgICAgKiA8Y29kZT5vcmcuYXBhY2hlLnRpbGVzLmFjdGlvbi5BY3Rpb25FcnJvcnM8L2NvZGU+IG9iamVjdCwgaWYgeW91CisgICAgICogYXJlIHVzaW5nIHRoZSBjb3JyZXNwb25kaW5nIGN1c3RvbSB0YWcgbGlicmFyeSBlbGVtZW50cy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBFUlJPUl9LRVkgPQorICAgICAgIm9yZy5hcGFjaGUudGlsZXMuYWN0aW9uLkVSUk9SIjsKKworCisgICAgLyoqCisgICAgICogVGhlIHJlcXVlc3QgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggU3RydXRzIGN1c3RvbSB0YWdzIG1pZ2h0IHN0b3JlIGEKKyAgICAgKiA8Y29kZT5UaHJvd2FibGU8L2NvZGU+IHRoYXQgY2F1c2VkIHRoZW0gdG8gcmVwb3J0IGEgSnNwRXhjZXB0aW9uIGF0CisgICAgICogcnVudGltZS4gIFRoaXMgdmFsdWUgY2FuIGJlIHVzZWQgb24gYW4gZXJyb3IgcGFnZSB0byBwcm92aWRlIG1vcmUKKyAgICAgKiBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IHJlYWxseSB3ZW50IHdyb25nLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEVYQ0VQVElPTl9LRVkgPQorICAgICAgICAib3JnLmFwYWNoZS50aWxlcy5hY3Rpb24uRVhDRVBUSU9OIjsKKworCisgICAgLyoqCisgICAgICogVGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgICAgICogPGNvZGU+b3JnLmFwYWNoZS50aWxlcy5hY3Rpb24uQWN0aW9uRm9ybUJlYW5zPC9jb2RlPiBjb2xsZWN0aW9uCisgICAgICogaXMgbm9ybWFsbHkgc3RvcmVkLCB1bmxlc3Mgb3ZlcnJpZGRlbiB3aGVuIGluaXRpYWxpemluZyBvdXIKKyAgICAgKiBBY3Rpb25TZXJ2bGV0LgorICAgICAqCisgICAgICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgY29sbGVjdGlvbiBpbiBNb2R1bGVDb25maWcKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBGT1JNX0JFQU5TX0tFWSA9CisgICAgICAgICJvcmcuYXBhY2hlLnRpbGVzLmFjdGlvbi5GT1JNX0JFQU5TIjsKKworCisgICAgLyoqCisgICAgICogVGhlIGNvbnRleHQgYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyCisgICAgICogPGNvZGU+b3JnLmFwYWNoZS50aWxlcy5hY3Rpb24uQWN0aW9uRm9yd2FyZHM8L2NvZGU+IGNvbGxlY3Rpb24KKyAgICAgKiBpcyBub3JtYWxseSBzdG9yZWQsIHVubGVzcyBvdmVycmlkZGVuIHdoZW4gaW5pdGlhbGl6aW5nIG91cgorICAgICAqIEFjdGlvblNlcnZsZXQuCisgICAgICoKKyAgICAgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBjb2xsZWN0aW9uIGluIE1vZHVsZUNvbmZpZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBGT1JXQVJEU19LRVkgPQorICAgICAgIm9yZy5hcGFjaGUudGlsZXMuYWN0aW9uLkZPUldBUkRTIjsKKworCisgICAgLyoqCisgICAgICogVGhlIHNlc3Npb24gYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggdGhlIHVzZXIncyBzZWxlY3RlZAorICAgICAqIDxjb2RlPmphdmEudXRpbC5Mb2NhbGU8L2NvZGU+IGlzIHN0b3JlZCwgaWYgYW55LiAgSWYgbm8gc3VjaAorICAgICAqIGF0dHJpYnV0ZSBpcyBmb3VuZCwgdGhlIHN5c3RlbSBkZWZhdWx0IGxvY2FsZQorICAgICAqIHdpbGwgYmUgdXNlZCB3aGVuIHJldHJpZXZpbmcgaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMuICBJZiB1c2VkLCB0aGlzCisgICAgICogYXR0cmlidXRlIGlzIHR5cGljYWxseSBzZXQgZHVyaW5nIHVzZXIgbG9naW4gcHJvY2Vzc2luZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBMT0NBTEVfS0VZID0KKyAgICAgICJvcmcuYXBhY2hlLnRpbGVzLmFjdGlvbi5MT0NBTEUiOworCisKKyAgICAvKioKKyAgICAgKiBUaGUgcmVxdWVzdCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIKKyAgICAgKiA8Y29kZT5vcmcuYXBhY2hlLnRpbGVzLkFjdGlvbk1hcHBpbmc8L2NvZGU+IGluc3RhbmNlCisgICAgICogaXMgcGFzc2VkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE1BUFBJTkdfS0VZID0KKyAgICAgICAgIm9yZy5hcGFjaGUudGlsZXMuYWN0aW9uLm1hcHBpbmcuaW5zdGFuY2UiOworCisKKyAgICAvKioKKyAgICAgKiBUaGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCBvdXIKKyAgICAgKiA8Y29kZT5vcmcuYXBhY2hlLnRpbGVzLmFjdGlvbi5BY3Rpb25NYXBwaW5nczwvY29kZT4gY29sbGVjdGlvbgorICAgICAqIGlzIG5vcm1hbGx5IHN0b3JlZCwgdW5sZXNzIG92ZXJyaWRkZW4gd2hlbiBpbml0aWFsaXppbmcgb3VyCisgICAgICogQWN0aW9uU2VydmxldC4KKyAgICAgKgorICAgICAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IGNvbGxlY3Rpb24gaW4gTW9kdWxlQ29uZmlnCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTUFQUElOR1NfS0VZID0KKyAgICAgICJvcmcuYXBhY2hlLnRpbGVzLmFjdGlvbi5NQVBQSU5HUyI7CisKKworICAgIC8qKgorICAgICAqIFRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHlvdXIgYWN0aW9uIHNob3VsZCBzdG9yZSBhbgorICAgICAqIDxjb2RlPm9yZy5hcGFjaGUudGlsZXMuYWN0aW9uLkFjdGlvbk1lc3NhZ2VzPC9jb2RlPiBvYmplY3QsIGlmIHlvdQorICAgICAqIGFyZSB1c2luZyB0aGUgY29ycmVzcG9uZGluZyBjdXN0b20gdGFnIGxpYnJhcnkgZWxlbWVudHMuCisgICAgICoKKyAgICAgKiBAc2luY2UgU3RydXRzIDEuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE1FU1NBR0VfS0VZID0KKyAgICAgICJvcmcuYXBhY2hlLnRpbGVzLmFjdGlvbi5BQ1RJT05fTUVTU0FHRSI7CisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSBiYXNlIG9mIHRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91cgorICAgICAqIG1vZHVsZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiB3aWxsIGJlIHN0b3JlZC4gIFRoaXMKKyAgICAgKiB3aWxsIGJlIHN1ZmZpeGVkIHdpdGggdGhlIGFjdHVhbCBtb2R1bGUgcHJlZml4IChpbmNsdWRpbmcgdGhlCisgICAgICogbGVhZGluZyAiLyIgY2hhcmFjdGVyKSB0byBmb3JtIHRoZSBhY3R1YWwgcmVzb3VyY2VzIGtleS48L3A+CisgICAgICoKKyAgICAgKiA8cD5Gb3IgZWFjaCByZXF1ZXN0IHByb2Nlc3NlZCBieSB0aGUgY29udHJvbGxlciBzZXJ2bGV0LCB0aGUKKyAgICAgKiA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiBvYmplY3QgZm9yIHRoZSBtb2R1bGUgc2VsZWN0ZWQgYnkKKyAgICAgKiB0aGUgcmVxdWVzdCBVUkkgY3VycmVudGx5IGJlaW5nIHByb2Nlc3NlZCB3aWxsIGFsc28gYmUgZXhwb3NlZCB1bmRlcgorICAgICAqIHRoaXMga2V5IGFzIGEgcmVxdWVzdCBhdHRyaWJ1dGUuPC9wPgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE1FU1NBR0VTX0tFWSA9CisgICAgICAib3JnLmFwYWNoZS50aWxlcy5hY3Rpb24uTUVTU0FHRSI7CisKKworICAgIC8qKgorICAgICAqIFRoZSByZXF1ZXN0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91ciBtdWx0aXBhcnQgY2xhc3MgaXMgc3RvcmVkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIE1VTFRJUEFSVF9LRVkgPQorICAgICAgICAib3JnLmFwYWNoZS50aWxlcy5hY3Rpb24ubWFwcGluZy5tdWx0aXBhcnRjbGFzcyI7CisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSBiYXNlIG9mIHRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIGFuIGFycmF5IG9mCisgICAgICogPGNvZGU+UGx1Z0luPC9jb2RlPiBpbnN0YW5jZXMgd2lsbCBiZSBzdG9yZWQuICBUaGlzCisgICAgICogd2lsbCBiZSBzdWZmaXhlZCB3aXRoIHRoZSBhY3R1YWwgbW9kdWxlIHByZWZpeCAoaW5jbHVkaW5nIHRoZQorICAgICAqIGxlYWRpbmcgIi8iIGNoYXJhY3RlcikgdG8gZm9ybSB0aGUgYWN0dWFsIGF0dHJpYnV0ZXMga2V5LjwvcD4KKyAgICAgKiBAc2luY2UgU3RydXRzIDEuMQorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBMVUdfSU5TX0tFWSA9CisgICAgICAgICJvcmcuYXBhY2hlLnRpbGVzLmFjdGlvbi5QTFVHX0lOUyI7CisKKworICAgIC8qKgorICAgICAqIDxwPlRoZSBiYXNlIG9mIHRoZSBjb250ZXh0IGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIG91cgorICAgICAqIDxjb2RlPlJlcXVlc3RQcm9jZXNzb3I8L2NvZGU+IGluc3RhbmNlIHdpbGwgYmUgc3RvcmVkLiAgVGhpcworICAgICAqIHdpbGwgYmUgc3VmZml4ZWQgd2l0aCB0aGUgYWN0dWFsIG1vZHVsZSBwcmVmaXggKGluY2x1ZGluZyB0aGUKKyAgICAgKiBsZWFkaW5nICIvIiBjaGFyYWN0ZXIpIHRvIGZvcm0gdGhlIGFjdHVhbCBhdHRyaWJ1dGVzIGtleS48L3A+CisgICAgICogQHNpbmNlIFN0cnV0cyAxLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBSRVFVRVNUX1BST0NFU1NPUl9LRVkgPQorICAgICAgICAib3JnLmFwYWNoZS50aWxlcy5hY3Rpb24uUkVRVUVTVF9QUk9DRVNTT1IiOworCisKKyAgICAvKioKKyAgICAgKiBUaGUgY29udGV4dCBhdHRyaWJ1dGVzIGtleSB1bmRlciB3aGljaCB3ZSBzdG9yZSB0aGUgbWFwcGluZyBkZWZpbmVkCisgICAgICogZm9yIG91ciBjb250cm9sbGVyIHNlcmxldCwgd2hpY2ggd2lsbCBiZSBlaXRoZXIgYSBwYXRoLW1hcHBlZCBwYXR0ZXJuCisgICAgICogKDxjb2RlPi9hY3Rpb24vKjwvY29kZT4pIG9yIGFuIGV4dGVuc2lvbiBtYXBwZWQgcGF0dGVybgorICAgICAqICg8Y29kZT4qLmRvPC9jb2RlPikuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgU0VSVkxFVF9LRVkgPQorICAgICAgICAib3JnLmFwYWNoZS50aWxlcy5hY3Rpb24uU0VSVkxFVF9NQVBQSU5HIjsKKworCisgICAgLyoqCisgICAgICogVGhlIHNlc3Npb24gYXR0cmlidXRlcyBrZXkgdW5kZXIgd2hpY2ggb3VyIHRyYW5zYWN0aW9uIHRva2VuIGlzCisgICAgICogc3RvcmVkLCBpZiBpdCBpcyB1c2VkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFRSQU5TQUNUSU9OX1RPS0VOX0tFWSA9CisgICAgICAgICJvcmcuYXBhY2hlLnRpbGVzLmFjdGlvbi5UT0tFTiI7CisgICAgICAgIAorICAgIC8qKgorICAgICAqIFRoZSBwYWdlIGF0dHJpYnV0ZXMga2V5IHVuZGVyIHdoaWNoIHhodG1sIHN0YXR1cyBpcyBzdG9yZWQuICBUaGlzIG1heSBiZSAidHJ1ZSIKKyAgICAgKiBvciAiZmFsc2UiLiAgV2hlbiBzZXQgdG8gdHJ1ZSwgdGhlIGh0bWwgdGFncyBvdXRwdXQgeGh0bWwuCisgICAgICogQHNpbmNlIFN0cnV0cyAxLjEKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBYSFRNTF9LRVkgPQorICAgICAgICAib3JnLmFwYWNoZS50aWxlcy5nbG9iYWxzLlhIVE1MIjsKKworICAgICAgICAKKyAgICAvKioKKyAgICAgKiBUaGUgYXBwbGljYXRpb24tc2NvcGUga2V5IHdob3NlIHZhbHVlIHJlcHJlc2VudHMgYW4KKwkgICogZXhjZXB0aW9uIHRocm93biB3aGVuIFRpbGVzIHBhcnNlcyB0aGUgdGlsZSBkZWZpbml0aW9uCisJICAqIGZpbGUocykuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgVElMRVNfSU5JVF9FWENFUFRJT04gPQorICAgICAgICAib3JnLmFwYWNoZS50aWxlcy5nbG9iYWxzLlRJTEVTX0lOSVRfRVhDRVBUSU9OIjsKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMGM2YjcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLmphdmEKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGlsZXM7CisKKyAgLyoqCisgICAqIEV4Y2VwdGlvbiB0aHJvd24gd2hlbiBhIGRlZmluaXRpb24gaXMgbm90IGZvdW5kLgorICAgKi8KK3B1YmxpYyBjbGFzcyBOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uIGV4dGVuZHMgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uCit7CisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICovCisgICBwdWJsaWMgTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbigpIHsKKyAgICAgIHN1cGVyKCk7CisgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKiBAcGFyYW0gbXNnIE1lc3NhZ2UuCisgICAgICovCisgICBwdWJsaWMgTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbiggU3RyaW5nIG1zZyApIHsKKyAgICAgIHN1cGVyKG1zZyk7CisgICB9Cit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9QYXRoQXR0cmlidXRlLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9QYXRoQXR0cmlidXRlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRmOWFlMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL1BhdGhBdHRyaWJ1dGUuamF2YQpAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2Ugb3JnLmFwYWNoZS50aWxlczsKKworLyoqCisgKiBDb21wb25lbnQgYXR0cmlidXRlLgorICogQXR0cmlidXRlIHZhbHVlIHJlcHJlc2VudHMgYSBwYXRoIHVzZWQgdG8gaW5jbHVkZSBhIEpTUC4KKyAqLworcHVibGljIGNsYXNzIFBhdGhBdHRyaWJ1dGUgZXh0ZW5kcyBVbnR5cGVkQXR0cmlidXRlIHsKKworICAgIHB1YmxpYyBQYXRoQXR0cmlidXRlKFN0cmluZyB2YWx1ZSkgeworICAgICAgICBzdXBlcih2YWx1ZSk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9UaWxlc0V4Y2VwdGlvbi5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvVGlsZXNFeGNlcHRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDM1ZWE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvVGlsZXNFeGNlcHRpb24uamF2YQpAQCAtMCwwICsxLDEwOSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGlsZXM7CisKKy8qKgorICogUm9vdCBjbGFzcyBmb3IgYWxsIFRpbGVzLWV4Y2VwdGlvbnMuCisgKiBAYXV0aG9yIENlZHJpYyBEdW1vdWxpbgorICovCitwdWJsaWMgY2xhc3MgVGlsZXNFeGNlcHRpb24gZXh0ZW5kcyBFeGNlcHRpb24KK3sKKworCisgIC8qKgorICAgKiBBbnkgIndyYXBwZWQiIGV4Y2VwdGlvbiB3aWxsIGJlIGV4cG9zZWQgd2hlbiB0aGlzIGlzIHNlcmlhbGl6ZWQuCisgICAqIEBzZXJpYWwKKyAgICovCisgIHByaXZhdGUgRXhjZXB0aW9uIGV4Y2VwdGlvbjsKKyAgLyoqCisgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAqLworICBwdWJsaWMgVGlsZXNFeGNlcHRpb24oKSB7CisgICAgc3VwZXIoKTsKKyAgICB0aGlzLmV4Y2VwdGlvbiA9IG51bGw7CisgIH0KKworICAvKioKKyAgICAqIENvbnN0cnVjdG9yLgorICAgICogQHBhcmFtIG1lc3NhZ2UgVGhlIGVycm9yIG9yIHdhcm5pbmcgbWVzc2FnZS4KKyAgICAqLworICBwdWJsaWMgVGlsZXNFeGNlcHRpb24oU3RyaW5nIG1lc3NhZ2UpIHsKKyAgICBzdXBlcihtZXNzYWdlKTsKKyAgICB0aGlzLmV4Y2VwdGlvbiA9IG51bGw7CisgIH0KKworCisgIC8qKgorICAgICogQ3JlYXRlIGEgbmV3IDxjb2RlPlRpbGVzRXhjZXB0aW9uPC9jb2RlPiB3cmFwcGluZyBhbiBleGlzdGluZyBleGNlcHRpb24uCisgICAgKgorICAgICogPHA+VGhlIGV4aXN0aW5nIGV4Y2VwdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGluIHRoZSBuZXcKKyAgICAqIG9uZSwgYW5kIGl0cyBtZXNzYWdlIHdpbGwgYmVjb21lIHRoZSBkZWZhdWx0IG1lc3NhZ2UgZm9yCisgICAgKiB0aGUgVGlsZXNFeGNlcHRpb24uPC9wPgorICAgICoKKyAgICAqIEBwYXJhbSBlIFRoZSBleGNlcHRpb24gdG8gYmUgd3JhcHBlZC4KKyAgICAqLworICBwdWJsaWMgVGlsZXNFeGNlcHRpb24oRXhjZXB0aW9uIGUpIHsKKyAgICBzdXBlcigpOworICAgIHRoaXMuZXhjZXB0aW9uID0gZTsKKyAgfQorCisKKyAgLyoqCisgICAgKiBDcmVhdGUgYSBuZXcgPGNvZGU+VGlsZXNFeGNlcHRpb248L2NvZGU+IGZyb20gYW4gZXhpc3RpbmcgZXhjZXB0aW9uLgorICAgICoKKyAgICAqIDxwPlRoZSBleGlzdGluZyBleGNlcHRpb24gd2lsbCBiZSBlbWJlZGRlZCBpbiB0aGUgbmV3CisgICAgKiBvbmUsIGJ1dCB0aGUgbmV3IGV4Y2VwdGlvbiB3aWxsIGhhdmUgaXRzIG93biBtZXNzYWdlLjwvcD4KKyAgICAqCisgICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgZGV0YWlsIG1lc3NhZ2UuCisgICAgKiBAcGFyYW0gZSBUaGUgZXhjZXB0aW9uIHRvIGJlIHdyYXBwZWQuCisgICAgKi8KKyAgcHVibGljIFRpbGVzRXhjZXB0aW9uKFN0cmluZyBtZXNzYWdlLCBFeGNlcHRpb24gZSkgeworICAgIHN1cGVyKG1lc3NhZ2UpOworICAgIHRoaXMuZXhjZXB0aW9uID0gZTsKKyAgfQorCisKKyAgLyoqCisgICAgKiBSZXR1cm4gYSBkZXRhaWwgbWVzc2FnZSBmb3IgdGhpcyBleGNlcHRpb24uCisgICAgKgorICAgICogPHA+SWYgdGhlcmUgaXMgYSBlbWJlZGRlZCBleGNlcHRpb24sIGFuZCBpZiB0aGUgVGlsZXNFeGNlcHRpb24KKyAgICAqIGhhcyBubyBkZXRhaWwgbWVzc2FnZSBvZiBpdHMgb3duLCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybgorICAgICogdGhlIGRldGFpbCBtZXNzYWdlIGZyb20gdGhlIGVtYmVkZGVkIGV4Y2VwdGlvbi48L3A+CisgICAgKgorICAgICogQHJldHVybiBUaGUgZXJyb3Igb3Igd2FybmluZyBtZXNzYWdlLgorICAgICovCisgIHB1YmxpYyBTdHJpbmcgZ2V0TWVzc2FnZSAoKSB7CisgICAgU3RyaW5nIG1lc3NhZ2UgPSBzdXBlci5nZXRNZXNzYWdlICgpOworCisgICAgaWYgKG1lc3NhZ2UgPT0gbnVsbCAmJiBleGNlcHRpb24gIT0gbnVsbCkgeworICAgICAgcmV0dXJuIGV4Y2VwdGlvbi5nZXRNZXNzYWdlKCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHJldHVybiBtZXNzYWdlOworICAgIH0KKyAgfQorCisKKyAgLyoqCisgICAgKiBSZXR1cm4gdGhlIGVtYmVkZGVkIGV4Y2VwdGlvbiwgaWYgYW55LgorICAgICoKKyAgICAqIEByZXR1cm4gVGhlIGVtYmVkZGVkIGV4Y2VwdGlvbiwgb3IgPGNvZGU+bnVsbDwvY29kZT4gaWYgdGhlcmUgaXMgbm9uZS4KKyAgICAqLworICBwdWJsaWMgRXhjZXB0aW9uIGdldEV4Y2VwdGlvbiAoKSB7CisgICAgcmV0dXJuIGV4Y2VwdGlvbjsKKyAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9UaWxlc1V0aWwuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL1RpbGVzVXRpbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjOTFiZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9UaWxlc1V0aWwuamF2YQpAQCAtMCwwICsxLDIzMSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGlsZXM7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb247CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldFJlc3BvbnNlOworaW1wb3J0IGphdmF4LnNlcnZsZXQuanNwLlBhZ2VDb250ZXh0OworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZ0ZhY3Rvcnk7CisKKy8qKgorICogQ2xhc3MgY29udGFpbmluZyB1dGlsaXR5IG1ldGhvZHMgZm9yIFRpbGVzLgorICogTWV0aG9kcyBvZiB0aGlzIGNsYXNzIGFyZSBzdGF0aWMgYW5kIHRoZXJlYnkgYWNjZXNzaWJsZSBmcm9tIGFueXdoZXJlLgorICogVGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gY2FuIGJlIGNoYW5nZWQgd2l0aAorICoge0BsaW5rICNzZXRUaWxlc1V0aWwoVGlsZXNVdGlsSW1wbCl9LgorICogPGJyPgorICogUmVhbCBpbXBsZW1lbnRhdGlvbiBjbGFzc2VzIHNob3VsZCBkZXJpdmUgZnJvbSB0aGUge0BsaW5rIFRpbGVzVXRpbEltcGx9IGNsYXNzLgorICogPGJyPgorICogU29tZSBtZXRob2RzIGFyZSBzcGVjaWZpZWQgdG8gdGhyb3cgdGhlIDxjb2RlPlVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uPC9jb2RlPgorICogaWYgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gZG9lc24ndCBzdXBwb3J0IHRoZSBvcGVyYXRpb24uCisgKgorICogQGF1dGhvciBDZWRyaWMgRHVtb3VsaW4KKyAqIEBhdXRob3IgRGF2aWQgR2VhcnkKKyAqLworcHVibGljIGNsYXNzIFRpbGVzVXRpbCB7CisgICAgLyoqIENvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4qLworICAgIHByb3RlY3RlZCBzdGF0aWMgTG9nIGxvZyA9IExvZ0ZhY3RvcnkuZ2V0TG9nKFRpbGVzVXRpbC5jbGFzcyk7CisKKyAgICAvKiogVGhlIGltcGxlbWVudGF0aW9uIG9mIHRpbGVzVXRpbEltcGwgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIFRpbGVzVXRpbEltcGwgdGlsZXNVdGlsSW1wbCA9IG5ldyBUaWxlc1V0aWxJbXBsKCk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIHJlYWwgaW1wbGVtZW50YXRpb24uCisgICAgICogQHJldHVybiBUaGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBvYmplY3QuCisgICAgICovCisgICAgc3RhdGljIHB1YmxpYyBUaWxlc1V0aWxJbXBsIGdldFRpbGVzVXRpbCgpIHsKKyAgICAgICAgcmV0dXJuIHRpbGVzVXRpbEltcGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSByZWFsIGltcGxlbWVudGF0aW9uLgorICAgICAqIFRoaXMgbWV0aG9kIHNob3VsZCBiZSBjYWxsZWQgb25seSBvbmNlLgorICAgICAqIFN1Y2Nlc3NpdmUgY2FsbHMgaGF2ZSBubyBlZmZlY3QuCisgICAgICogQHBhcmFtIHRpbGVzVXRpbCBUaGUgaW1wbGVtZW50YWlvbi4KKyAgICAgKi8KKyAgICBzdGF0aWMgcHVibGljIHZvaWQgc2V0VGlsZXNVdGlsKFRpbGVzVXRpbEltcGwgdGlsZXNVdGlsKSB7CisgICAgICAgIGlmIChpbXBsQWxyZWFkeVNldCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHRpbGVzVXRpbEltcGwgPSB0aWxlc1V0aWw7CisgICAgICAgIGltcGxBbHJlYWR5U2V0ID0gdHJ1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXR0ZXIgdG8ga25vdyBpZiB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBpcyBhbHJlYWR5IHNldCB0byBhbm90aGVyCisgICAgICogdmFsdWUgdGhhbiB0aGUgZGVmYXVsdCB2YWx1ZS4KKyAgICAgKiBAcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHtAbGluayAjc2V0VGlsZXNVdGlsfSBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZC4KKyAgICAgKi8KKyAgICBzdGF0aWMgYm9vbGVhbiBpc1RpbGVzVXRpbEltcGxTZXQoKSB7CisgICAgICAgIHJldHVybiBpbXBsQWxyZWFkeVNldDsKKyAgICB9CisKKyAgICAvKiogRmxhZyB0byBrbm93IGlmIGludGVybmFsIGltcGxlbWVudGF0aW9uIGhhcyBiZWVuIHNldCBieSB0aGUgc2V0dGVyIG1ldGhvZCAqLworICAgIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gaW1wbEFscmVhZHlTZXQgPSBmYWxzZTsKKworICAgIC8qKgorICAgICAqIERvIGEgZm9yd2FyZCB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGJ5IHRoZSBUaWxlcyBwYWNrYWdlIGFueXRpbWUgYSBmb3J3YXJkIGlzIHJlcXVpcmVkLgorICAgICAqIEBwYXJhbSB1cmkgVXJpIG9yIERlZmluaXRpb24gbmFtZSB0byBmb3J3YXJkLgorICAgICAqIEBwYXJhbSByZXF1ZXN0IEN1cnJlbnQgcGFnZSByZXF1ZXN0LgorICAgICAqIEBwYXJhbSByZXNwb25zZSBDdXJyZW50IHBhZ2UgcmVzcG9uc2UuCisgICAgICogQHBhcmFtIHNlcnZsZXRDb250ZXh0IEN1cnJlbnQgc2VydmxldCBjb250ZXh0LgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBkb0ZvcndhcmQoCisgICAgICAgIFN0cmluZyB1cmksCisgICAgICAgIEh0dHBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICBIdHRwU2VydmxldFJlc3BvbnNlIHJlc3BvbnNlLAorICAgICAgICBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uLCBTZXJ2bGV0RXhjZXB0aW9uIHsKKyAgICAgICAgICAgIAorICAgICAgICB0aWxlc1V0aWxJbXBsLmRvRm9yd2FyZCh1cmksIHJlcXVlc3QsIHJlc3BvbnNlLCBzZXJ2bGV0Q29udGV4dCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogRG8gYW4gaW5jbHVkZSB1c2luZyByZXF1ZXN0IGRpc3BhdGNoZXIuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGJ5IHRoZSBUaWxlcyBwYWNrYWdlIHdoZW4gYW4gaW5jbHVkZSBpcyByZXF1aXJlZC4KKyAgICAgKiBUaGUgVGlsZXMgcGFja2FnZSBjYW4gdXNlIGluZGlmZmVyZW50bHkgYW55IGZvcm0gb2YgdGhpcyBtZXRob2QuCisgICAgICogQHBhcmFtIHVyaSBVcmkgb3IgRGVmaW5pdGlvbiBuYW1lIHRvIGZvcndhcmQuCisgICAgICogQHBhcmFtIHJlcXVlc3QgQ3VycmVudCBwYWdlIHJlcXVlc3QuCisgICAgICogQHBhcmFtIHJlc3BvbnNlIEN1cnJlbnQgcGFnZSByZXNwb25zZS4KKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyB2b2lkIGRvSW5jbHVkZSgKKyAgICAgICAgU3RyaW5nIHVyaSwKKyAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UsCisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0KQorICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIFNlcnZsZXRFeGNlcHRpb24geworICAgICAgICAgICAgCisgICAgICAgIHRpbGVzVXRpbEltcGwuZG9JbmNsdWRlKHVyaSwgcmVxdWVzdCwgcmVzcG9uc2UsIHNlcnZsZXRDb250ZXh0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEbyBhbiBpbmNsdWRlIHVzaW5nIFBhZ2VDb250ZXh0LmluY2x1ZGUoKS4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgYnkgdGhlIFRpbGVzIHBhY2thZ2Ugd2hlbiBhbiBpbmNsdWRlIGlzIHJlcXVpcmVkLgorICAgICAqIFRoZSBUaWxlcyBwYWNrYWdlIGNhbiB1c2UgaW5kaWZmZXJlbnRseSBhbnkgZm9ybSBvZiB0aGlzIG1ldGhvZC4KKyAgICAgKiBAcGFyYW0gdXJpIFVyaSBvciBEZWZpbml0aW9uIG5hbWUgdG8gZm9yd2FyZC4KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBDdXJyZW50IHBhZ2UgcmVxdWVzdC4KKyAgICAgKiBAcGFyYW0gcmVzcG9uc2UgQ3VycmVudCBwYWdlIHJlc3BvbnNlLgorICAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBDdXJyZW50IHNlcnZsZXQgY29udGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgZG9JbmNsdWRlKFN0cmluZyB1cmksIFBhZ2VDb250ZXh0IHBhZ2VDb250ZXh0KQorICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIFNlcnZsZXRFeGNlcHRpb24geworICAgICAgICBUaWxlc1V0aWxJbXBsLmRvSW5jbHVkZSh1cmksIHBhZ2VDb250ZXh0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgZGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gYXBwcm9wcmlhdGUgc2VydmxldCBjb250ZXh0LgorICAgICAqIEByZXR1cm4gRGVmaW5pdGlvbnMgZmFjdG9yeSBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiBub3QgZm91bmQuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBEZWZpbml0aW9uc0ZhY3RvcnkgZ2V0RGVmaW5pdGlvbnNGYWN0b3J5KAorICAgICAgICBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkgeworICAgICAgICByZXR1cm4gdGlsZXNVdGlsSW1wbC5nZXREZWZpbml0aW9uc0ZhY3RvcnkocmVxdWVzdCwgc2VydmxldENvbnRleHQpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBEZWZpbml0aW9uIGZhY3RvcnkgZnJvbSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbiBvYmplY3QuCisgICAgICogQ3JlYXRlIGEgQ29uZmlndXJhYmxlRGVmaW5pdGlvbnNGYWN0b3J5IGFuZCBpbml0aWFsaXplIGl0IHdpdGggdGhlIGNvbmZpZ3VyYXRpb24KKyAgICAgKiBvYmplY3QuIFRoaXMgbGF0ZXIgY2FuIGNvbnRhaW4gdGhlIGZhY3RvcnkgY2xhc3NuYW1lIHRvIHVzZS4KKyAgICAgKiBGYWN0b3J5IGlzIG1hZGUgYWNjZXNzaWJsZSBmcm9tIHRhZ3MuCisgICAgICogPHA+CisgICAgICogRmFsbGJhY2sgb2Ygc2V2ZXJhbCBmYWN0b3J5IGNyZWF0aW9uIG1ldGhvZHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuCisgICAgICogQHBhcmFtIGZhY3RvcnlDb25maWcgQ29uZmlndXJhdGlvbiBvYmplY3QgcGFzc2VkIHRvIGZhY3RvcnkuCisgICAgICogQHJldHVybiBuZXdseSBjcmVhdGVkIGZhY3Rvcnkgb2YgdHlwZSBDb25maWd1cmFibGVEZWZpbml0aW9uc0ZhY3RvcnkuCisgICAgICogQHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gSWYgYW4gZXJyb3Igb2NjdXIgd2hpbGUgaW5pdGlhbGl6aW5nIGZhY3RvcnkKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIERlZmluaXRpb25zRmFjdG9yeSBjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoCisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LAorICAgICAgICBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcgZmFjdG9yeUNvbmZpZykKKyAgICAgICAgdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiB7CisgICAgICAgIHJldHVybiB0aWxlc1V0aWxJbXBsLmNyZWF0ZURlZmluaXRpb25zRmFjdG9yeShzZXJ2bGV0Q29udGV4dCwgZmFjdG9yeUNvbmZpZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IGEgZGVmaW5pdGlvbiBieSBpdHMgbmFtZS4KKyAgICAgKiBGaXJzdCwgcmV0cmlldmUgZGVmaW5pdGlvbiBmYWN0b3J5IGFuZCB0aGVuIGdldCByZXF1ZXN0ZWQgZGVmaW5pdGlvbi4KKyAgICAgKiBUaHJvdyBhcHByb3ByaWF0ZSBleGNlcHRpb24gaWYgZGVmaW5pdGlvbiBvciBkZWZpbml0aW9uIGZhY3RvcnkgaXMgbm90IGZvdW5kLgorICAgICAqIEBwYXJhbSBkZWZpbml0aW9uTmFtZSBOYW1lIG9mIHJlcXVlc3RlZCBkZWZpbml0aW9uLgorICAgICAqIEBwYXJhbSByZXF1ZXN0IEN1cnJlbnQgc2VydmVsZXQgcmVxdWVzdC4KKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgY3VycmVudCBzZXJ2bGV0IGNvbnRleHQuCisgICAgICogQHRocm93cyBGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24gQ2FuJ3QgZmluZCBkZWZpbml0aW9uIGZhY3RvcnkuCisgICAgICogQHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gR2VuZXJhbCBlcnJvciBpbiBmYWN0b3J5IHdoaWxlIGdldHRpbmcgZGVmaW5pdGlvbi4KKyAgICAgKiBAdGhyb3dzIE5vU3VjaERlZmluaXRpb25FeGNlcHRpb24gTm8gZGVmaW5pdGlvbiBmb3VuZCBmb3Igc3BlY2lmaWVkIG5hbWUKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIENvbXBvbmVudERlZmluaXRpb24gZ2V0RGVmaW5pdGlvbigKKyAgICAgICAgU3RyaW5nIGRlZmluaXRpb25OYW1lLAorICAgICAgICBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgdGhyb3dzIEZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbiwgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIHsKKyAgICAgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgcmV0dXJuIGdldERlZmluaXRpb25zRmFjdG9yeShyZXF1ZXN0LCBzZXJ2bGV0Q29udGV4dCkuZ2V0RGVmaW5pdGlvbigKKyAgICAgICAgICAgICAgICBkZWZpbml0aW9uTmFtZSwKKyAgICAgICAgICAgICAgICAoSHR0cFNlcnZsZXRSZXF1ZXN0KSByZXF1ZXN0LAorICAgICAgICAgICAgICAgIHNlcnZsZXRDb250ZXh0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgfSBjYXRjaCAoTnVsbFBvaW50ZXJFeGNlcHRpb24gZXgpIHsgLy8gRmFjdG9yeSBub3QgZm91bmQgaW4gY29udGV4dAorCQkJCVN5c3RlbS5vdXQucHJpbnRsbigiQ291bGRuJ3QgZmluZCB0aGUgVGlsZXMgZGVmaW5pdGlvbiBmYWN0b3J5Iik7CisgICAgICAgICAgICB0aHJvdyBuZXcgRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uKCJDYW4ndCBnZXQgZGVmaW5pdGlvbnMgZmFjdG9yeSBmcm9tIGNvbnRleHQuIik7CisgICAgICAgIH0KKyAgICB9CisKKwkgCisKKyAgICAvKioKKyAgICAgKiBSZXNldCBpbnRlcm5hbCBzdGF0ZS4KKyAgICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIGJ5IHRlc3Qgc3VpdGVzIHRvIHJlc2V0IHRoZSBjbGFzcyB0byBpdHMgb3JpZ2luYWwgc3RhdGUuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyB2b2lkIHRlc3RSZXNldCgpIHsKKyAgICAgICAgaW1wbEFscmVhZHlTZXQgPSBmYWxzZTsKKyAgICAgICAgdGlsZXNVdGlsSW1wbCA9IG5ldyBUaWxlc1V0aWxJbXBsKCk7CisgICAgfQorCisJIC8qKgorCSAgKiBERzogSSBtb3ZlZCB0aGlzIG1ldGhvZCBmcm9tIG9yZy5hcGFjaGUuc3RydXRzLnV0aWwuUmVxdWVzdFV0aWxzCisJICAqICAgICB0byByZW1vdmUgdGhhdCBkZXBlbmRlbmN5IG9uIFN0cnV0cworCSAgKgorCSAgKiBSZXR1cm4gdGhlIDxjb2RlPkNsYXNzPC9jb2RlPiBvYmplY3QgZm9yIHRoZSBzcGVjaWZpZWQgZnVsbHkgcXVhbGlmaWVkCisgICAgICogY2xhc3MgbmFtZSwgZnJvbSB0aGlzIHdlYiBhcHBsaWNhdGlvbidzIGNsYXNzIGxvYWRlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjbGFzc05hbWUgRnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgdG8gYmUgbG9hZGVkCisgICAgICogQHJldHVybiBDbGFzcyBvYmplY3QKKyAgICAgKiBAZXhjZXB0aW9uIENsYXNzTm90Rm91bmRFeGNlcHRpb24gaWYgdGhlIGNsYXNzIGNhbm5vdCBiZSBmb3VuZAorICAgICovCisgICAgcHVibGljIHN0YXRpYyBDbGFzcyBhcHBsaWNhdGlvbkNsYXNzKFN0cmluZyBjbGFzc05hbWUpIAorCQkgIAkJCQkJCQkJCQkJCQkJdGhyb3dzIENsYXNzTm90Rm91bmRFeGNlcHRpb24geworCQkvLyBMb29rIHVwIHRoZSBjbGFzcyBsb2FkZXIgdG8gYmUgdXNlZAorCQlDbGFzc0xvYWRlciBjbGFzc0xvYWRlciA9IFRocmVhZC5jdXJyZW50VGhyZWFkKCkuZ2V0Q29udGV4dENsYXNzTG9hZGVyKCk7CisJCWlmIChjbGFzc0xvYWRlciA9PSBudWxsKSB7CisJCQljbGFzc0xvYWRlciA9IFRpbGVzVXRpbC5jbGFzcy5nZXRDbGFzc0xvYWRlcigpOworCQl9CisJCS8vIEF0dGVtcHQgdG8gbG9hZCB0aGUgc3BlY2lmaWVkIGNsYXNzCisJCXJldHVybiAoY2xhc3NMb2FkZXIubG9hZENsYXNzKGNsYXNzTmFtZSkpOworICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvVGlsZXNVdGlsSW1wbC5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvVGlsZXNVdGlsSW1wbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YjgzNzAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9UaWxlc1V0aWxJbXBsLmphdmEKQEAgLTAsMCArMSwyMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0RXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LmpzcC5QYWdlQ29udGV4dDsKKworaW1wb3J0IGphdmEudXRpbC5sb2dnaW5nLkxvZ2dlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLmRlZmluaXRpb24uQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcjsKKworLy8gREc6IHJlbW92ZWQgZGVwZW5kZW5jeSB0byBSZXF1ZXN0VXRpbHMKKy8vIGltcG9ydCBvcmcuYXBhY2hlLnV0aWwuUmVxdWVzdFV0aWxzOworCisvKioKKyAqIERlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgVGlsZXNVdGlsLgorICogVGhpcyBjbGFzcyBjb250YWlucyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHV0aWxpdGllcy4gVGhpcyBpbXBsZW1lbnRhdGlvbgorICogaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRob3V0IFN0cnV0cy4KKyAqCisgKiBAYXV0aG9yIENlZHJpYyBEdW1vdWxpbgorICogQGF1dGhvciBEYXZpZCBHZWFyeQorICovCitwdWJsaWMgY2xhc3MgVGlsZXNVdGlsSW1wbCBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSB7CisgICAgCisgICAgLyoqIENvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4qLworICAgIHByb3RlY3RlZCBMb2dnZXIgbG9nZ2VyID0gTG9nZ2VyLmdldExvZ2dlcihUaWxlc1V0aWwuY2xhc3MuZ2V0TmFtZSgpKTsKKworICAgIC8qKiBDb25zdGFudCBuYW1lIHVzZWQgdG8gc3RvcmUgZmFjdG9yeSBpbiBzZXJ2bGV0IGNvbnRleHQgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBERUZJTklUSU9OU19GQUNUT1JZID0KKyAgICAgICAgIm9yZy5hcGFjaGUudGlsZXMuREVGSU5JVElPTlNfRkFDVE9SWSI7CisKKyAgICAvKioKKyAgICAgKiBEbyBhIGZvcndhcmQgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLgorICAgICAqCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBieSB0aGUgVGlsZXMgcGFja2FnZSBhbnl0aW1lIGEgZm9yd2FyZCBpcyByZXF1aXJlZC4KKyAgICAgKiBAcGFyYW0gdXJpIFVyaSBvciBEZWZpbml0aW9uIG5hbWUgdG8gZm9yd2FyZC4KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBDdXJyZW50IHBhZ2UgcmVxdWVzdC4KKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgZG9Gb3J3YXJkKAorICAgICAgICBTdHJpbmcgdXJpLAorICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSwKKyAgICAgICAgU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQpCisgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbiwgU2VydmxldEV4Y2VwdGlvbiB7CisgICAgICAgICAgICAKKyAgICAgICAgcmVxdWVzdC5nZXRSZXF1ZXN0RGlzcGF0Y2hlcih1cmkpLmZvcndhcmQocmVxdWVzdCwgcmVzcG9uc2UpOworICAgIH0KKworICAgIC8qKgorICAgICAqIERvIGFuIGluY2x1ZGUgdXNpbmcgcmVxdWVzdCBkaXNwYXRjaGVyLgorICAgICAqCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBieSB0aGUgVGlsZXMgcGFja2FnZSB3aGVuIGFuIGluY2x1ZGUgaXMgcmVxdWlyZWQuCisgICAgICogVGhlIFRpbGVzIHBhY2thZ2UgY2FuIHVzZSBpbmRpZmZlcmVudGx5IGFueSBmb3JtIG9mIHRoaXMgbWV0aG9kLgorICAgICAqIEBwYXJhbSB1cmkgVXJpIG9yIERlZmluaXRpb24gbmFtZSB0byBmb3J3YXJkLgorICAgICAqIEBwYXJhbSByZXF1ZXN0IEN1cnJlbnQgcGFnZSByZXF1ZXN0LgorICAgICAqIEBwYXJhbSByZXNwb25zZSBDdXJyZW50IHBhZ2UgcmVzcG9uc2UuCisgICAgICogQHBhcmFtIHNlcnZsZXRDb250ZXh0IEN1cnJlbnQgc2VydmxldCBjb250ZXh0LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRvSW5jbHVkZSgKKyAgICAgICAgU3RyaW5nIHVyaSwKKyAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UsCisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0KQorICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIFNlcnZsZXRFeGNlcHRpb24geworICAgICAgICAgICAgCisgICAgICAgIHJlcXVlc3QuZ2V0UmVxdWVzdERpc3BhdGNoZXIodXJpKS5pbmNsdWRlKHJlcXVlc3QsIHJlc3BvbnNlKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEbyBhbiBpbmNsdWRlIHVzaW5nIFBhZ2VDb250ZXh0LmluY2x1ZGUoKS4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgYnkgdGhlIFRpbGVzIHBhY2thZ2Ugd2hlbiBhbiBpbmNsdWRlIGlzIHJlcXVpcmVkLgorICAgICAqIFRoZSBUaWxlcyBwYWNrYWdlIGNhbiB1c2UgaW5kaWZmZXJlbnRseSBhbnkgZm9ybSBvZiB0aGlzIG1ldGhvZC4KKyAgICAgKiBAcGFyYW0gdXJpIFVyaSBvciBEZWZpbml0aW9uIG5hbWUgdG8gZm9yd2FyZC4KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBDdXJyZW50IHBhZ2UgcmVxdWVzdC4KKyAgICAgKiBAcGFyYW0gcmVzcG9uc2UgQ3VycmVudCBwYWdlIHJlc3BvbnNlLgorICAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBDdXJyZW50IHNlcnZsZXQgY29udGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgZG9JbmNsdWRlKFN0cmluZyB1cmksIFBhZ2VDb250ZXh0IHBhZ2VDb250ZXh0KQorICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24sIFNlcnZsZXRFeGNlcHRpb24geworICAgICAgICAgICAgCisgICAgICAgIHBhZ2VDb250ZXh0LmluY2x1ZGUodXJpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgZGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gYXBwcm9wcmlhdGUgc2VydmxldCBjb250ZXh0LgorICAgICAqIEByZXR1cm4gRGVmaW5pdGlvbnMgZmFjdG9yeSBvciA8Y29kZT5udWxsPC9jb2RlPiBpZiBub3QgZm91bmQuCisgICAgICovCisgICAgcHVibGljIERlZmluaXRpb25zRmFjdG9yeSBnZXREZWZpbml0aW9uc0ZhY3RvcnkoCisgICAgICAgIFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgcmV0dXJuIChEZWZpbml0aW9uc0ZhY3RvcnkpIHNlcnZsZXRDb250ZXh0LmdldEF0dHJpYnV0ZShERUZJTklUSU9OU19GQUNUT1JZKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gb2JqZWN0LgorICAgICAqIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGUgZmFjdG9yeSB3aXRoIHRoZSBjbGFzcyBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZworICAgICAqIG9iamVjdC4gVGhlbiwgaW5pdGlhbGl6ZSB0aGlzIGZhY3RvcnkgYW5kIGZpbmFsbHkgc3RvcmUgdGhlIGZhY3RvcnkgaW4KKyAgICAgKiBhcHByb3ByaWF0ZSBjb250ZXh0IGJ5IGNhbGxpbmcKKyAgICAgKiB7QGxpbmsgI21ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlKERlZmluaXRpb25zRmFjdG9yeSwgU2VydmxldENvbnRleHQpfS4KKyAgICAgKiBGYWN0b3J5IGNyZWF0aW9uIGlzIGRvbmUgYnkge0BsaW5rICNjcmVhdGVEZWZpbml0aW9uRmFjdG9yeUluc3RhbmNlKFN0cmluZyl9LgorICAgICAqIDxwPgorICAgICAqCisgICAgICogQHBhcmFtIHNlcnZsZXRDb250ZXh0IFNlcnZsZXQgQ29udGV4dCBwYXNzZWQgdG8gbmV3bHkgY3JlYXRlZCBmYWN0b3J5LgorICAgICAqIEBwYXJhbSBmYWN0b3J5Q29uZmlnIENvbmZpZ3VyYXRpb24gb2JqZWN0IHBhc3NlZCB0byBmYWN0b3J5LgorICAgICAqIEByZXR1cm4gbmV3bHkgY3JlYXRlZCBmYWN0b3J5IG9mIHR5cGUgc3BlY2lmaWVkIGluIHRoZSBjb25maWcgb2JqZWN0LgorICAgICAqIEB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIElmIGFuIGVycm9yIG9jY3VyIHdoaWxlIGluaXRpYWxpemluZyBmYWN0b3J5CisgICAgICovCisgICAgcHVibGljIERlZmluaXRpb25zRmFjdG9yeSBjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkoCisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LAorICAgICAgICBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcgZmFjdG9yeUNvbmZpZykKKyAgICAgICAgdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiB7CisgICAgICAgICAgICAKKyAgICAgICAgLy8gQ3JlYXRlIGNvbmZpZ3VyYWJsZSBmYWN0b3J5CisgICAgICAgIERlZmluaXRpb25zRmFjdG9yeSBmYWN0b3J5ID0KKyAgICAgICAgICAgIGNyZWF0ZURlZmluaXRpb25GYWN0b3J5SW5zdGFuY2UoZmFjdG9yeUNvbmZpZy5nZXRGYWN0b3J5Q2xhc3NuYW1lKCkpOworICAgICAgICAgICAKKwkJICBsb2dnZXIuaW5mbygiSW5pdGlhbGl6aW5nIFRpbGUgZGVmaW5pdGlvbiBmYWN0b3J5Iik7CisJCSAgdHJ5IHsKKyAgICAgICAgICAgZmFjdG9yeS5pbml0KGZhY3RvcnlDb25maWcsIHNlcnZsZXRDb250ZXh0KTsKKwkJICB9CisJCSAgY2F0Y2goRXhjZXB0aW9uIGV4KSB7CisJCQkgIGxvZ2dlci5pbmZvKCJDQVVHSFQgVElMRVMgRkFDVE9SWSBJTklUSUFMSVpBVElPTiBFUlJPUjogIiArIGV4LnRvU3RyaW5nKCkpOworCQkJICB0aHJvdyBuZXcgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uKGV4LmdldE1lc3NhZ2UoKSk7IAorCSAgICAgfQorICAgICAgICAKKwkJICBsb2dnZXIuaW5mbygiTWFraW5nIGZhY3RvcnkgYWNjZXNzaWJsZSB0byBKU1AgdGFncyIpOworICAgICAgICAvLyBNYWtlIGZhY3RvcnkgYWNjZXNzaWJsZSBmcm9tIGpzcCB0YWdzIChwdXNoIGl0IGluIGFwcHJvcHJpYXRlIGNvbnRleHQpCisgICAgICAgIG1ha2VEZWZpbml0aW9uc0ZhY3RvcnlBY2Nlc3NpYmxlKGZhY3RvcnksIHNlcnZsZXRDb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIGZhY3Rvcnk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIERlZmluaXRpb24gZmFjdG9yeSBvZiBzcGVjaWZpZWQgY2xhc3NuYW1lLgorICAgICAqIEZhY3RvcnkgY2xhc3MgbXVzdCBleHRlbmQgdGhlIHtAbGluayBEZWZpbml0aW9uc0ZhY3Rvcnl9IGNsYXNzLgorICAgICAqIFRoZSBmYWN0b3J5IGlzIHdyYXBwZWQgYXBwcm9wcmlhdGVseSB3aXRoIHtAbGluayBEZWZpbml0aW9uc0ZhY3Rvcnl9CisgICAgICogaWYgaXQgaXMgYW4gaW5zdGFuY2Ugb2YgdGhlIGRlcHJlY2F0ZWQgRGVmaW5pdGlvbnNGYWN0b3J5IGNsYXNzLgorICAgICAqIEBwYXJhbSBjbGFzc25hbWUgQ2xhc3MgbmFtZSBvZiB0aGUgZmFjdG9yeSB0byBjcmVhdGUuCisgICAgICogQHJldHVybiBuZXdseSBjcmVhdGVkIGZhY3RvcnkuCisgICAgICogQHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gSWYgYW4gZXJyb3Igb2NjdXIgd2hpbGUgaW5pdGlhbGl6aW5nIGZhY3RvcnkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgRGVmaW5pdGlvbnNGYWN0b3J5IGNyZWF0ZURlZmluaXRpb25GYWN0b3J5SW5zdGFuY2UoU3RyaW5nIGNsYXNzbmFtZSkKKyAgICAgICAgdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiB7CisgICAgICAgIAorCQkgIGxvZ2dlci5pbmZvKCJDcmVhdGluZyBUaWxlcyBkZWZpbml0aW9uIGZhY3RvcnkiKTsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENsYXNzIGZhY3RvcnlDbGFzcyA9IFRpbGVzVXRpbC5hcHBsaWNhdGlvbkNsYXNzKGNsYXNzbmFtZSk7CisJCSAgCQlTeXN0ZW0ub3V0LnByaW50bG4oImZhY3RvcnkgY2xhc3M6ICIgKyBmYWN0b3J5Q2xhc3MpOworICAgICAgICAgICAgT2JqZWN0IGZhY3RvcnkgPSBmYWN0b3J5Q2xhc3MubmV3SW5zdGFuY2UoKTsKKworICAgICAgICAgICAgLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSA6IGlmIGZhY3RvcnkgY2xhc3NlcyBpbXBsZW1lbnRzIG9sZCBpbnRlcmZhY2UsCisgICAgICAgICAgICAvLyBwcm92aWRlIGFwcHJvcHJpYXRlIHdyYXBwZXIKKyAgICAgICAgICAgIGlmIChmYWN0b3J5IGluc3RhbmNlb2YgQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5KSB7CisgICAgICAgICAgICAgICAgZmFjdG9yeSA9CisgICAgICAgICAgICAgICAgICAgIG5ldyBDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnlXcmFwcGVyKAorICAgICAgICAgICAgICAgICAgICAgICAgKENvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeSkgZmFjdG9yeSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gKERlZmluaXRpb25zRmFjdG9yeSkgZmFjdG9yeTsKKyAgICAgICAgICAgIAorICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZXgpIHsgLy8gQmFkIGNsYXNzbmFtZQorCQkJCVN5c3RlbS5vdXQucHJpbnRsbigiQ0xBU1MgQ0FTVCBFWENFUFRJT04iKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIkVycm9yIC0gY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5IDogRmFjdG9yeSBjbGFzcyAnIgorICAgICAgICAgICAgICAgICAgICArIGNsYXNzbmFtZQorICAgICAgICAgICAgICAgICAgICArICIgbXVzdCBpbXBsZW1lbnQgJ1RpbGVzRGVmaW5pdGlvbnNGYWN0b3J5Jy4iLAorICAgICAgICAgICAgICAgIGV4KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgfSBjYXRjaCAoQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbiBleCkgeyAvLyBCYWQgY2xhc3NuYW1lCisJCQkJU3lzdGVtLm91dC5wcmludGxuKCJDTEFTUyBOT1QgRk9VTkQgRVhDRVBUSU9OIik7CisgICAgICAgICAgICB0aHJvdyBuZXcgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJFcnJvciAtIGNyZWF0ZURlZmluaXRpb25zRmFjdG9yeSA6IEJhZCBjbGFzcyBuYW1lICciCisgICAgICAgICAgICAgICAgICAgICsgY2xhc3NuYW1lCisgICAgICAgICAgICAgICAgICAgICsgIicuIiwKKyAgICAgICAgICAgICAgICBleCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgIH0gY2F0Y2ggKEluc3RhbnRpYXRpb25FeGNlcHRpb24gZXgpIHsgLy8gQmFkIGNvbnN0cnVjdG9yIG9yIGVycm9yCisJCQkJU3lzdGVtLm91dC5wcmludGxuKCJJTlNUQU5USUFUSU9OIEVYQ0VQVElPTiIpOworICAgICAgICAgICAgdGhyb3cgbmV3IERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbihleCk7CisgICAgICAgICAgICAKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBleCkgeworCQkJCVN5c3RlbS5vdXQucHJpbnRsbigiSUxMRUdBTCBBQ0NFU1MgRVhDRVBUSU9OIik7CisgICAgICAgICAgICB0aHJvdyBuZXcgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uKGV4KTsKKworICAgICAgICB9IGNhdGNoIChFeGNlcHRpb24gZXgpIHsKKwkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIkVYQ0VQVElPTjogIiArIGV4LmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKKwkJCQlleC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24oZXgpOworCQkgfQorICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBNYWtlIGRlZmluaXRpb24gZmFjdG9yeSBhY2Nlc3NpYmxlIHRvIFRhZ3MuCisgICAgICogRmFjdG9yeSBpcyBzdG9yZWQgaW4gc2VydmxldCBjb250ZXh0LgorICAgICAqIEBwYXJhbSBmYWN0b3J5IEZhY3RvcnkgdG8gYmUgbWFkZSBhY2Nlc3NpYmxlLgorICAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBDdXJyZW50IHNlcnZsZXQgY29udGV4dC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBtYWtlRGVmaW5pdGlvbnNGYWN0b3J5QWNjZXNzaWJsZSgKKyAgICAgICAgRGVmaW5pdGlvbnNGYWN0b3J5IGZhY3RvcnksCisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgc2VydmxldENvbnRleHQuc2V0QXR0cmlidXRlKERFRklOSVRJT05TX0ZBQ1RPUlksIGZhY3RvcnkpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvVGlsZXNVdGlsU3RydXRzSW1wbC5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvVGlsZXNVdGlsU3RydXRzSW1wbC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjZWZmMDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9UaWxlc1V0aWxTdHJ1dHNJbXBsLmphdmEKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGlsZXM7CisKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CisKKy8qKgorICogVGlsZXNVdGlsIGltcGxlbWVudGF0aW9uIGZvciBTdHJ1dHMgMS4xIHdpdGggb25lIHNpbmdsZSBmYWN0b3J5LgorICogVGhpcyBjbGFzcyBjb250YWlucyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIHV0aWxpdGllcy4gVGhpcyBpbXBsZW1lbnRhdGlvbgorICogaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoIFN0cnV0cyAxLjEuCisgKiBUaGlzIGNsYXNzIGlzIHVzZWQgYXMgdGhlIGJhc2UgY2xhc3MgZm9yIGFsbCBTdHJ1dHMgMS4xIGltcGxlbWVudGF0aW9ucyBvZiBUaWxlc1V0aWwuCisgKgorICogQGF1dGhvciBDZWRyaWMgRHVtb3VsaW4KKyAqIEBhdXRob3IgRGF2aWQgR2VhcnkKKyAqLworcHVibGljIGNsYXNzIFRpbGVzVXRpbFN0cnV0c0ltcGwgZXh0ZW5kcyBUaWxlc1V0aWxJbXBsIHsKKworICAgIC8qKgorICAgICAqIEdldCBkZWZpbml0aW9uIGZhY3RvcnkgZm9yIHRoZSBtb2R1bGUgYXR0YWNoZWQgdG8gdGhlIHNwZWNpZmllZCBtb2R1bGVDb25maWcuCisgICAgICogQHBhcmFtIHNlcnZsZXRDb250ZXh0IEN1cnJlbnQgc2VydmxldCBjb250ZXh0CisgICAgICogQHBhcmFtIG1vZHVsZUNvbmZpZyBNb2R1bGUgY29uZmlnIG9mIHRoZSBtb2R1bGUgZm9yIHdoaWNoIHRoZSBmYWN0b3J5IGlzIHJlcXVlc3RlZC4KKyAgICAgKiBAcmV0dXJuIERlZmluaXRpb25zIGZhY3Rvcnkgb3IgbnVsbCBpZiBub3QgZm91bmQuCisgICAgICovCisgICAgcHVibGljIERlZmluaXRpb25zRmFjdG9yeSBnZXREZWZpbml0aW9uc0ZhY3RvcnkoU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQpIHsKKyAgICAgICAgcmV0dXJuIChEZWZpbml0aW9uc0ZhY3RvcnkpIHNlcnZsZXRDb250ZXh0LmdldEF0dHJpYnV0ZShERUZJTklUSU9OU19GQUNUT1JZKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL1VudHlwZWRBdHRyaWJ1dGUuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL1VudHlwZWRBdHRyaWJ1dGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjM3ZDhmCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvVW50eXBlZEF0dHJpYnV0ZS5qYXZhCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzOworCisvKioKKyAqIENvbW1vbiBpbXBsZW1lbnRhdGlvbiBvZiBhdHRyaWJ1dGUgZGVmaW5pdGlvbi4gCisgKi8KK3B1YmxpYyBjbGFzcyBVbnR5cGVkQXR0cmlidXRlIGltcGxlbWVudHMgQXR0cmlidXRlRGVmaW5pdGlvbiB7CisKKyAgICAvKioKKyAgICAgKiBSb2xlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGF0dHJpYnV0ZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHJvbGUgPSBudWxsOworICAgIAorICAgIHByb3RlY3RlZCBPYmplY3QgdmFsdWU9bnVsbDsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLgorICAgICAqIEBwYXJhbSB2YWx1ZSBPYmplY3QgdG8gc3RvcmUuCisgICAgICovCisgICAgcHVibGljIFVudHlwZWRBdHRyaWJ1dGUoT2JqZWN0IHZhbHVlKSB7CisgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKiBAcGFyYW0gdmFsdWUgT2JqZWN0IHRvIHN0b3JlLgorICAgICAqIEBwYXJhbSByb2xlIEFzb2NpYXRlZCByb2xlLgorICAgICAqLworICAgIHB1YmxpYyBVbnR5cGVkQXR0cmlidXRlKE9iamVjdCB2YWx1ZSwgU3RyaW5nIHJvbGUpIHsKKyAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlOworICAgICAgICB0aGlzLnJvbGUgPSByb2xlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCByb2xlLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0Um9sZSgpIHsKKyAgICAgICAgcmV0dXJuIHJvbGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHJvbGUuCisgICAgICogQHBhcmFtIHJvbGUgQXNzb2NpYXRlZCByb2xlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJvbGUoU3RyaW5nIHJvbGUpIHsKKyAgICAgICAgdGhpcy5yb2xlID0gcm9sZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdmFsdWUuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRWYWx1ZSgpIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB2YWx1ZS4KKyAgICAgKiBAcGFyYW0gdmFsdWUgTmV3IHZhbHVlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFZhbHVlKE9iamVjdCB2YWx1ZSkgeworICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL1VybENvbnRyb2xsZXIuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL1VybENvbnRyb2xsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTdlOTMwCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvVXJsQ29udHJvbGxlci5qYXZhCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzOworCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuUmVxdWVzdERpc3BhdGNoZXI7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRFeGNlcHRpb247CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXNwb25zZTsKKworLyoqCisgKiBUaWxlcyBjb250cm9sbGVyIGluY2x1ZGluZyBhIGxvY2FsIFVSTC4KKyAqIEBhdXRob3IgQ2VkcmljIER1bW91bGluCisgKi8KKworcHVibGljIGNsYXNzIFVybENvbnRyb2xsZXIgaW1wbGVtZW50cyBDb250cm9sbGVyIHsKKworICAgIC8qKiBVcmwgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29udHJvbGxlci4gKi8KKyAgcHJvdGVjdGVkIFN0cmluZyB1cmw7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKiBAcGFyYW0gdXJsIFVSTC4KKyAgICAgKi8KKyAgcHVibGljIFVybENvbnRyb2xsZXIoIFN0cmluZyB1cmwgKSB7CisgICAgIHRoaXMudXJsPXVybDsKKyAgfQorCisgICAvKioKKyAgICAqIE1ldGhvZCBhc3NvY2lhdGVkIHRvIGEgdGlsZSBhbmQgY2FsbGVkIGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgdGlsZSBpcyBpbmNsdWRlZC4KKyAgICAqIFRoaXMgaW1wbGVtZW50YXRpb24gY2FsbHMgYSBTdHJ1dHMgQWN0aW9uLiBObyBzZXJ2bGV0IGlzIHNldCBieSB0aGlzIG1ldGhvZC4KKyAgICAqCisgICAgKiBAcGFyYW0gdGlsZUNvbnRleHQgQ3VycmVudCB0aWxlIGNvbnRleHQuCisgICAgKiBAcGFyYW0gcmVxdWVzdCBDdXJyZW50IHJlcXVlc3QuCisgICAgKiBAcGFyYW0gcmVzcG9uc2UgQ3VycmVudCByZXNwb25zZS4KKyAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBDdXJyZW50IHNlcnZsZXQgY29udGV4dC4KKyAgICAqLworICAgcHVibGljIHZvaWQgcGVyZm9ybShDb21wb25lbnRDb250ZXh0IHRpbGVDb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQpCisgICAgIHRocm93cyBTZXJ2bGV0RXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiB7CisgICAgICBSZXF1ZXN0RGlzcGF0Y2hlciByZCA9IHNlcnZsZXRDb250ZXh0LmdldFJlcXVlc3REaXNwYXRjaGVyKCB1cmwgKTsKKyAgICAgIGlmKCByZCA9PSBudWxsICkKKyAgICAgICAgdGhyb3cgbmV3IFNlcnZsZXRFeGNlcHRpb24oICJDb250cm9sbGVyIGNhbid0IGZpbmQgdXJsICciICsgdXJsICsgIicuIiApOworCisgICAgICByZC5pbmNsdWRlKCByZXF1ZXN0LCByZXNwb25zZSApOworICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvYmVhbnMvTWVudUl0ZW0uamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL2JlYW5zL01lbnVJdGVtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTk0MjU5MQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL2JlYW5zL01lbnVJdGVtLmphdmEKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGlsZXMuYmVhbnM7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKKworLyoqCisgKiBJbnRlcmZhY2UgZm9yIE1lbnVJdGVtcy4KKyAqIEBzZWUgU2ltcGxlTWVudUl0ZW0KKyAqLworcHVibGljIGludGVyZmFjZSBNZW51SXRlbSBleHRlbmRzIFNlcmlhbGl6YWJsZSB7CisgICAgCisgICAgLyoqCisgICAgICogU2V0IHZhbHVlIHByb3BlcnR5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFZhbHVlKFN0cmluZyB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgdmFsdWUgcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRWYWx1ZSgpOworCisgICAgLyoqCisgICAgICogU2V0IGxpbmsgcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0TGluayhTdHJpbmcgbGluayk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgbGluayBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldExpbmsoKTsKKworICAgIC8qKgorICAgICAqIFNldCBpY29uIHByb3BlcnR5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEljb24oU3RyaW5nIGxpbmspOworCisgICAgLyoqCisgICAgICogR2V0IGljb24gcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRJY29uKCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdG9vbHRpcCBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUb29sdGlwKFN0cmluZyBsaW5rKTsKKworICAgIC8qKgorICAgICAqIEdldCB0b29sdGlwIHByb3BlcnR5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0VG9vbHRpcCgpOworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvYmVhbnMvU2ltcGxlTWVudUl0ZW0uamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjJiMDI3YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL2JlYW5zL1NpbXBsZU1lbnVJdGVtLmphdmEKQEAgLTAsMCArMSwxMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzLmJlYW5zOworCitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CisKKy8qKgorICogQSBNZW51SXRlbSBpbXBsZW1lbnRhdGlvbi4KKyAqIFVzZWQgdG8gcmVhZCBtZW51IGl0ZW1zIGluIGRlZmluaXRpb25zLgorICovCitwdWJsaWMgY2xhc3MgU2ltcGxlTWVudUl0ZW0gaW1wbGVtZW50cyBNZW51SXRlbSwgU2VyaWFsaXphYmxlIHsKKworICAgIHByaXZhdGUgU3RyaW5nIHZhbHVlID0gbnVsbDsKKworICAgIHByaXZhdGUgU3RyaW5nIGxpbmsgPSBudWxsOworCisgICAgcHJpdmF0ZSBTdHJpbmcgaWNvbiA9IG51bGw7CisKKyAgICBwcml2YXRlIFN0cmluZyB0b29sdGlwID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLgorICAgICAqLworICAgIHB1YmxpYyBTaW1wbGVNZW51SXRlbSgpIHsKKyAgICAgICAgc3VwZXIoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXQgdmFsdWUgcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VmFsdWUoU3RyaW5nIHZhbHVlKSB7CisgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdmFsdWUgcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRWYWx1ZSgpIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBsaW5rIHByb3BlcnR5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldExpbmsoU3RyaW5nIGxpbmspIHsKKyAgICAgICAgdGhpcy5saW5rID0gbGluazsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgbGluayBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldExpbmsoKSB7CisgICAgICAgIHJldHVybiBsaW5rOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCBpY29uIHByb3BlcnR5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEljb24oU3RyaW5nIGljb24pIHsKKyAgICAgICAgdGhpcy5pY29uID0gaWNvbjsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgaWNvbiBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldEljb24oKSB7CisgICAgICAgIHJldHVybiBpY29uOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0b29sdGlwIHByb3BlcnR5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFRvb2x0aXAoU3RyaW5nIHRvb2x0aXApIHsKKyAgICAgICAgdGhpcy50b29sdGlwID0gdG9vbHRpcDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgdG9vbHRpcCBwcm9wZXJ0eS4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldFRvb2x0aXAoKSB7CisgICAgICAgIHJldHVybiB0b29sdGlwOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBTdHJpbmcgcmVwcmVzZW50YXRpb24uCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmYgPSBuZXcgU3RyaW5nQnVmZmVyKCJTaW1wbGVNZW51SXRlbVsiKTsKKworICAgICAgICBpZiAoZ2V0VmFsdWUoKSAhPSBudWxsKSB7CisgICAgICAgICAgICBidWZmLmFwcGVuZCgidmFsdWU9IikuYXBwZW5kKGdldFZhbHVlKCkpLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChnZXRMaW5rKCkgIT0gbnVsbCkgeworICAgICAgICAgICAgYnVmZi5hcHBlbmQoImxpbms9IikuYXBwZW5kKGdldExpbmsoKSkuYXBwZW5kKCIsICIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGdldFRvb2x0aXAoKSAhPSBudWxsKSB7CisgICAgICAgICAgICBidWZmLmFwcGVuZCgidG9vbHRpcD0iKS5hcHBlbmQoZ2V0VG9vbHRpcCgpKS5hcHBlbmQoIiwgIik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZ2V0SWNvbigpICE9IG51bGwpIHsKKyAgICAgICAgICAgIGJ1ZmYuYXBwZW5kKCJpY29uPSIpLmFwcGVuZChnZXRJY29uKCkpLmFwcGVuZCgiLCAiKTsKKyAgICAgICAgfQorCisgICAgICAgIGJ1ZmYuYXBwZW5kKCJdIik7CisgICAgICAgIHJldHVybiBidWZmLnRvU3RyaW5nKCk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL2RlZmluaXRpb24vQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjYjk3NzEKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9kZWZpbml0aW9uL0NvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIuamF2YQpAQCAtMCwwICsxLDIyMSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGlsZXMuZGVmaW5pdGlvbjsKKworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5NYXA7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb247CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5Db21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnk7CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5EZWZpbml0aW9uc0ZhY3Rvcnk7CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlDb25maWc7CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuVGlsZXNVdGlsOworCisvKioKKyAqIFdyYXBwZXIgZnJvbSBuZXcgZGVmaW5pdGlvbiBmYWN0b3J5IGludGVyZmFjZSB0byBvbGQgaW50ZXJmYWNlLgorICogVGhpcyBjbGFzcyBwcm92aWRlcyBtYXBwaW5nIGZyb20gdGhlIG9sZCBpbnRlcmZhY2UncyBsaWZlIGN5Y2xlIHRvIHRoZSBuZXcgbGlmZSBjeWNsZS4KKyAqIEBhdXRob3IgQ2VkcmljIER1bW91bGluCisgKiBAYXV0aG9yIERhdmlkIEdlYXJ5CisgKiBAc2luY2UgMjAwMjA3MDgKKyAqLworcHVibGljIGNsYXNzIENvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIgaW1wbGVtZW50cyBEZWZpbml0aW9uc0ZhY3RvcnkgeworCisgICAgLyoqIAorICAgICAqIFRoZSB1bmRlcmx5aW5nIGZhY3RvcnkuIAorICAgICAqLworICAgIHByaXZhdGUgQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5IGZhY3RvcnkgPSBudWxsOworCisgICAgLyoqIAorICAgICAqIEZhY3RvcnkgY29uZmlndXJhdGlvbiwKKyAgICAgKi8KKyAgICBwcml2YXRlIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyBjb25maWcgPSBudWxsOworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICogQ3JlYXRlIG5ldyB3cmFwcGVyIGZvciBzcGVjaWZpZWQgZmFjdG9yeS4KKyAgICAgKiBAcGFyYW0gZmFjdG9yeSBUaGUgZmFjdG9yeSB0byBjcmVhdGUgYSB3cmFwcGVyIGZvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5V3JhcHBlcihDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkgZmFjdG9yeSkgeworICAgICAgICB0aGlzLmZhY3RvcnkgPSBmYWN0b3J5OworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLgorICAgICAqIENyZWF0ZSBuZXcgd3JhcHBlci4KKyAgICAgKiBUaGUgY29uZmlnIG9iamVjdCBwYXNzZWQgdG8gaW5pdCBtZXRob2Qgc2hvdWxkIHJlZmVyZW5jZSBhIGZhY3RvcnkgaW1wbGVtZW50aW5nCisgICAgICoge0BsaW5rIENvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeX0uCisgICAgICovCisgICAgcHVibGljIENvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeVdyYXBwZXIoKSB7CisgICAgICAgIHN1cGVyKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogR2V0IHJlcXVlc3RlZCBkZWZpbml0aW9uLgorICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGRlZmluaXRpb24uCisgICAgICogQHBhcmFtIHJlcXVlc3QgVGhlIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcuCisgICAgICogQHBhcmFtIHNlcnZsZXRDb250ZXh0IE91ciBzZXJ2bGV0IGNvbnRleHQuCisgICAgICogQHJldHVybiBDb21wb25lbnREZWZpdGlvbgorICAgICAqLworICAgIHB1YmxpYyBDb21wb25lbnREZWZpbml0aW9uIGdldERlZmluaXRpb24oCisgICAgICAgIFN0cmluZyBuYW1lLAorICAgICAgICBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LAorICAgICAgICBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgdGhyb3dzIE5vU3VjaERlZmluaXRpb25FeGNlcHRpb24sIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiB7CisKKyAgICAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0RGVmaW5pdGlvbihuYW1lLCByZXF1ZXN0LCBzZXJ2bGV0Q29udGV4dCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2FsbCB1bmRlcmx5aW5nIGZhY3RvcnkgaW5pdCBtZXRob2QuCisgICAgICogQHBhcmFtIGNvbmZpZyBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuCisgICAgICogQHBhcmFtIHNlcnZsZXRDb250ZXh0IE91ciBzZXJ2bGV0IGNvbnRleHQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgaW5pdChEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcgY29uZmlnLCBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiB7CisKKyAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWc7CisKKyAgICAgICAgLy8gY3JlYXRlIGZhY3RvcnkgYW5kIGluaXRpYWxpemUgaXQKKyAgICAgICAgaWYgKGZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgZmFjdG9yeSA9IGNyZWF0ZUZhY3RvcnlJbnN0YW5jZShjb25maWcuZ2V0RmFjdG9yeUNsYXNzbmFtZSgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGZhY3RvcnkuaW5pdEZhY3Rvcnkoc2VydmxldENvbnRleHQsIGNyZWF0ZUNvbmZpZ01hcChjb25maWcpKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBEbyBub3RoaW5nIGJlY2F1c2Ugb2xkIGxpZmUgY3ljbGUgaGFzIG5vIGVxdWl2YWxlbnQuCisgICAgICovCisgICAgcHVibGljIHZvaWQgZGVzdHJveSgpIHsKKyAgICAgICAgZmFjdG9yeSA9IG51bGw7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHVuZGVybHlpbmcgZmFjdG9yeSBjb25maWd1cmF0aW9uLgorICAgICAqIEBwYXJhbSBjb25maWcgRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnIHRvIHVzZS4KKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgT3VyIHNlcnZsZXQgY29udGV4dC4KKyAgICAgKgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldENvbmZpZygKKyAgICAgICAgRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnIGNvbmZpZywKKyAgICAgICAgU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQpCisgICAgICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24geworCisgICAgICAgIENvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeSBuZXdGYWN0b3J5ID0KKyAgICAgICAgICAgIGNyZWF0ZUZhY3RvcnlJbnN0YW5jZShjb25maWcuZ2V0RmFjdG9yeUNsYXNzbmFtZSgpKTsKKworICAgICAgICBuZXdGYWN0b3J5LmluaXRGYWN0b3J5KHNlcnZsZXRDb250ZXh0LCBjcmVhdGVDb25maWdNYXAoY29uZmlnKSk7CisgICAgICAgIGZhY3RvcnkgPSBuZXdGYWN0b3J5OworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB1bmRlcmx5aW5nIGZhY3RvcnkgY29uZmlndXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZy4KKyAgICAgKi8KKyAgICBwdWJsaWMgRGVmaW5pdGlvbnNGYWN0b3J5Q29uZmlnIGdldENvbmZpZygpIHsKKyAgICAgICAgcmV0dXJuIGNvbmZpZzsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgaW50ZXJuYWwgZmFjdG9yeS4KKyAgICAgKiBAcmV0dXJuIFRoZSBpbnRlcm5hbCBDb21wb25lbnREZWZpdGlvbnNGYWN0b3J5LgorICAgICAqLworICAgIHB1YmxpYyBDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkgZ2V0SW50ZXJuYWxGYWN0b3J5KCkgeworICAgICAgICByZXR1cm4gZmFjdG9yeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gcHJvdmlkZWQgY2xhc3NuYW1lIHdoaWNoIG11c3QgaW1wbGVtZW50IHtAbGluayBDb21wb25lbnREZWZpbml0aW9uc0ZhY3Rvcnl9LgorICAgICAqIEZhY3RvcnkgY2xhc3MgbXVzdCBleHRlbmQge0BsaW5rIERlZmluaXRpb25zRmFjdG9yeX0uCisgICAgICogQHBhcmFtIGNsYXNzbmFtZSBDbGFzcyBuYW1lIG9mIHRoZSBmYWN0b3J5IHRvIGNyZWF0ZS4KKyAgICAgKiBAcmV0dXJuIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS4KKyAgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBJZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBpbml0aWFsaXppbmcgZmFjdG9yeQorICAgICAqLworICAgIHByb3RlY3RlZCBDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkgY3JlYXRlRmFjdG9yeUluc3RhbmNlKFN0cmluZyBjbGFzc25hbWUpCisgICAgICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24geworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBDbGFzcyBmYWN0b3J5Q2xhc3MgPSBUaWxlc1V0aWwuYXBwbGljYXRpb25DbGFzcyhjbGFzc25hbWUpOworICAgICAgICAgICAgT2JqZWN0IGZhY3RvcnkgPSBmYWN0b3J5Q2xhc3MubmV3SW5zdGFuY2UoKTsKKyAgICAgICAgICAgIHJldHVybiAoQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5KSBmYWN0b3J5OworCisgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBleCkgeyAvLyBCYWQgY2xhc3NuYW1lCisgICAgICAgICAgICB0aHJvdyBuZXcgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJFcnJvciAtIGNyZWF0ZURlZmluaXRpb25zRmFjdG9yeSA6IEZhY3RvcnkgY2xhc3MgJyIKKyAgICAgICAgICAgICAgICAgICAgKyBjbGFzc25hbWUKKyAgICAgICAgICAgICAgICAgICAgKyAiIG11c3QgaW1wbGVtZW50ICdEZWZpbml0aW9uc0ZhY3RvcnknLiIsCisgICAgICAgICAgICAgICAgZXgpOworCisgICAgICAgIH0gY2F0Y2ggKENsYXNzTm90Rm91bmRFeGNlcHRpb24gZXgpIHsgLy8gQmFkIGNsYXNzbmFtZQorICAgICAgICAgICAgdGhyb3cgbmV3IERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiRXJyb3IgLSBjcmVhdGVEZWZpbml0aW9uc0ZhY3RvcnkgOiBCYWQgY2xhc3MgbmFtZSAnIgorICAgICAgICAgICAgICAgICAgICArIGNsYXNzbmFtZQorICAgICAgICAgICAgICAgICAgICArICInLiIsCisgICAgICAgICAgICAgICAgZXgpOworCisgICAgICAgIH0gY2F0Y2ggKEluc3RhbnRpYXRpb25FeGNlcHRpb24gZXgpIHsgLy8gQmFkIGNvbnN0cnVjdG9yIG9yIGVycm9yCisgICAgICAgICAgICB0aHJvdyBuZXcgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uKGV4KTsKKworICAgICAgICB9IGNhdGNoIChJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uKGV4KTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGlvbi4KKyAgICAgKiBDYWxscyB0b1N0cmluZygpIG9uIHVuZGVybHlpbmcgZmFjdG9yeS4KKyAgICAgKiBAcmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gZ2V0SW50ZXJuYWxGYWN0b3J5KCkudG9TdHJpbmcoKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgbWFwIG9mIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlcyBmcm9tIGNvbmZpZ3VyYXRpb24gb2JqZWN0LgorICAgICAqIE1hcHBpbmcgaXMgZG9uZSBiZXR3ZWVuIG9sZCBuYW1lcyBhbmQgbmV3IG5hbWVzLgorICAgICAqIEBwYXJhbSBjb25maWcgVGhlIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyB0byB1c2UuCisgICAgICogQHJldHVybiBNYXAgTWFwIG9mIG5hbWUvdmFsdWUgcGFpcnMuCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBNYXAgY3JlYXRlQ29uZmlnTWFwKERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyBjb25maWcpIHsKKyAgICAgICAgTWFwIG1hcCA9IG5ldyBIYXNoTWFwKGNvbmZpZy5nZXRBdHRyaWJ1dGVzKCkpOworICAgICAgICAvLyBBZGQgcHJvcGVydHkgYXR0cmlidXRlcyB1c2luZyBvbGQgbmFtZXMKKyAgICAgICAgbWFwLnB1dCgKKyAgICAgICAgICAgIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZy5ERUZJTklUSU9OU19DT05GSUdfUEFSQU1FVEVSX05BTUUsCisgICAgICAgICAgICBjb25maWcuZ2V0RGVmaW5pdGlvbkNvbmZpZ0ZpbGVzKCkpOworCisgICAgICAgIG1hcC5wdXQoCisgICAgICAgICAgICBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuUEFSU0VSX1ZBTElEQVRFX1BBUkFNRVRFUl9OQU1FLAorICAgICAgICAgICAgbmV3IEJvb2xlYW4oY29uZmlnLmdldFBhcnNlclZhbGlkYXRlKCkpLnRvU3RyaW5nKCkpOworCisgICAgICAgIGlmICghIm9yZy5hcGFjaGUudGlsZXMueG1sRGVmaW5pdGlvbi5JMThuRmFjdG9yeVNldCIKKyAgICAgICAgICAgIC5lcXVhbHMoY29uZmlnLmdldEZhY3RvcnlDbGFzc25hbWUoKSkpIHsKKworICAgICAgICAgICAgbWFwLnB1dCgKKyAgICAgICAgICAgICAgICBEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcuRkFDVE9SWV9DTEFTU05BTUVfUEFSQU1FVEVSX05BTUUsCisgICAgICAgICAgICAgICAgY29uZmlnLmdldEZhY3RvcnlDbGFzc25hbWUoKSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbWFwOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9kZWZpbml0aW9uL1JlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWJmMjBhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvZGVmaW5pdGlvbi9SZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5LmphdmEKQEAgLTAsMCArMSwyODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzLmRlZmluaXRpb247CisKK2ltcG9ydCBqYXZhLnV0aWwuRW51bWVyYXRpb247CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbmZpZzsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q7CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKKworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuQ29tcG9uZW50RGVmaW5pdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkRlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLnhtbERlZmluaXRpb24uSTE4bkZhY3RvcnlTZXQ7CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5UaWxlc1V0aWw7CisKKy8qKgorICogQSByZWxvYWRhYmxlIGZhY3RvcnkuCisgKiBUaGlzIGZhY3RvcnkgaXMgdGhlIG1haW4gZW50cmFuY2UgdG8gYW55IGZhY3RvcnkgaW1wbGVtZW50YXRpb24uIEl0IHRha2VzIGluCisgKiBjaGFyZ2UgcmVhbCBpbXBsZW1lbnRhdGlvbiBpbnN0YW5jZSwgYW5kIGFsbG93cyByZWxvYWRpbmcgYnkgY3JlYXRpbmcgYSBuZXcKKyAqIGluc3RhbmNlLgorICoKKyAqIEBhdXRob3IgQ2VkcmljIER1bW91bGluCisgKiBAYXV0aG9yIERhdmlkIEdlYXJ5CisgKiBAc2luY2UgU3RydXRzIDEuMQorICogQHZlcnNpb24gJFJldmlzaW9uOiAxLjggJCAkRGF0ZTogMjAwMy8wNy8wOSAwMDoxNDowMSAkCisgKi8KK3B1YmxpYyBjbGFzcyBSZWxvYWRhYmxlRGVmaW5pdGlvbnNGYWN0b3J5IGltcGxlbWVudHMgQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5IHsKKworICAgIC8qKiAKKyAgICAgKiBUaGUgcmVhbCBmYWN0b3J5IGluc3RhbmNlLiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5IGZhY3RvcnkgPSBudWxsOworCisgICAgLyoqIAorICAgICAqIEluaXRpYWxpemF0aW9uIHBhcmFtZXRlcnMuIAorICAgICAqLworICAgIHByb3RlY3RlZCBNYXAgcHJvcGVydGllcyA9IG51bGw7CisKKyAgICAvKiogCisgICAgICogTmFtZSBvZiBpbml0IHByb3BlcnR5IGNhcnJ5aW5nIGZhY3RvcnkgY2xhc3MgbmFtZS4gCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVGSU5JVElPTlNfRkFDVE9SWV9DTEFTU05BTUUgPQorICAgICAgICAiZGVmaW5pdGlvbnMtZmFjdG9yeS1jbGFzcyI7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKiBDcmVhdGUgYSBmYWN0b3J5IGFjY29yZGluZyB0byBzZXJ2bGV0IHNldHRpbmdzLgorICAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBPdXIgc2VydmxldCBjb250ZXh0LgorICAgICAqIEBwYXJhbSBzZXJ2bGV0Q29uZmlnIE91ciBzZXJ2bGV0IGNvbmZpZy4KKyAgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBJZiBmYWN0b3J5IGNyZWF0aW9uIGZhaWwuCisgICAgICovCisgICAgcHVibGljIFJlbG9hZGFibGVEZWZpbml0aW9uc0ZhY3RvcnkoCisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LAorICAgICAgICBTZXJ2bGV0Q29uZmlnIHNlcnZsZXRDb25maWcpCisgICAgICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24geworCisgICAgICAgIHByb3BlcnRpZXMgPSBuZXcgU2VydmxldFByb3BlcnRpZXNNYXAoc2VydmxldENvbmZpZyk7CisgICAgICAgIGZhY3RvcnkgPSBjcmVhdGVGYWN0b3J5KHNlcnZsZXRDb250ZXh0LCBwcm9wZXJ0aWVzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKiBDcmVhdGUgYSBmYWN0b3J5IGFjY29yZGluZyB0byBzZXJ2bGV0IHNldHRpbmdzLgorICAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBPdXIgc2VydmxldCBjb250ZXh0LgorICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIE1hcCBjb250YWluaW5nIGFsbCBwcm9wZXJ0aWVzLgorICAgICAqIEB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIElmIGZhY3RvcnkgY3JlYXRpb24gZmFpbC4KKyAgICAgKi8KKyAgICBwdWJsaWMgUmVsb2FkYWJsZURlZmluaXRpb25zRmFjdG9yeSgKKyAgICAgICAgU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQsCisgICAgICAgIE1hcCBwcm9wZXJ0aWVzKQorICAgICAgICB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIHsKKworICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzOworICAgICAgICBmYWN0b3J5ID0gY3JlYXRlRmFjdG9yeShzZXJ2bGV0Q29udGV4dCwgcHJvcGVydGllcyk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBDcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5IGZyb20gcHJvdmlkZWQgY2xhc3NuYW1lLgorICAgICogSWYgYSBmYWN0b3J5IGNsYXNzIG5hbWUgaXMgcHJvdmlkZWQsIGEgZmFjdG9yeSBvZiB0aGlzIGNsYXNzIGlzIGNyZWF0ZWQuIE90aGVyd2lzZSwKKyAgICAqIGEgZGVmYXVsdCBmYWN0b3J5IGlzIGNyZWF0ZWQuCisgICAgKiBGYWN0b3J5IG11c3QgaGF2ZSBhIGNvbnN0cnVjdG9yIHRha2luZyBTZXJ2bGV0Q29udGV4dCBhbmQgTWFwIGFzIHBhcmFtZXRlci4KKyAgICAqIEBwYXJhbSBjbGFzc25hbWUgQ2xhc3MgbmFtZSBvZiB0aGUgZmFjdG9yeSB0byBjcmVhdGUuCisgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuCisgICAgKiBAcGFyYW0gcHJvcGVydGllcyBNYXAgb2YgbmFtZS9wcm9wZXJ0eSBwYXNzZWQgdG8gbmV3bHkgY3JlYXRlZCBmYWN0b3J5LgorICAgICogQHJldHVybiBuZXdseSBjcmVhdGVkIGZhY3RvcnkuCisgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBJZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBpbml0aWFsaXppbmcgZmFjdG9yeQorICAgICovCisgICAgcHVibGljIENvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeSBjcmVhdGVGYWN0b3J5RnJvbUNsYXNzbmFtZSgKKyAgICAgICAgU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQsCisgICAgICAgIE1hcCBwcm9wZXJ0aWVzLAorICAgICAgICBTdHJpbmcgY2xhc3NuYW1lKQorICAgICAgICB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIHsKKworICAgICAgICBpZiAoY2xhc3NuYW1lID09IG51bGwpIHsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVGYWN0b3J5KHNlcnZsZXRDb250ZXh0LCBwcm9wZXJ0aWVzKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRyeSB0byBjcmVhdGUgZnJvbSBjbGFzc25hbWUKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIENsYXNzIGZhY3RvcnlDbGFzcyA9IFRpbGVzVXRpbC5hcHBsaWNhdGlvbkNsYXNzKGNsYXNzbmFtZSk7CisgICAgICAgICAgICBDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkgZmFjdG9yeSA9CisgICAgICAgICAgICAgICAgKENvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeSkgZmFjdG9yeUNsYXNzLm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICBmYWN0b3J5LmluaXRGYWN0b3J5KHNlcnZsZXRDb250ZXh0LCBwcm9wZXJ0aWVzKTsKKyAgICAgICAgICAgIHJldHVybiBmYWN0b3J5OworCisgICAgICAgIH0gY2F0Y2ggKENsYXNzQ2FzdEV4Y2VwdGlvbiBleCkgeyAvLyBCYWQgY2xhc3NuYW1lCisgICAgICAgICAgICB0aHJvdyBuZXcgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJFcnJvciAtIGNyZWF0ZURlZmluaXRpb25zRmFjdG9yeSA6IEZhY3RvcnkgY2xhc3MgJyIKKyAgICAgICAgICAgICAgICAgICAgKyBjbGFzc25hbWUKKyAgICAgICAgICAgICAgICAgICAgKyAiIG11c3QgaW1wbGVtZW50cyAnQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Jy4iLAorICAgICAgICAgICAgICAgIGV4KTsKKworICAgICAgICB9IGNhdGNoIChDbGFzc05vdEZvdW5kRXhjZXB0aW9uIGV4KSB7IC8vIEJhZCBjbGFzc25hbWUKKyAgICAgICAgICAgIHRocm93IG5ldyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIkVycm9yIC0gY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5IDogQmFkIGNsYXNzIG5hbWUgJyIKKyAgICAgICAgICAgICAgICAgICAgKyBjbGFzc25hbWUKKyAgICAgICAgICAgICAgICAgICAgKyAiJy4iLAorICAgICAgICAgICAgICAgIGV4KTsKKworICAgICAgICB9IGNhdGNoIChJbnN0YW50aWF0aW9uRXhjZXB0aW9uIGV4KSB7IC8vIEJhZCBjb25zdHJ1Y3RvciBvciBlcnJvcgorICAgICAgICAgICAgdGhyb3cgbmV3IERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbihleCk7CisKKyAgICAgICAgfSBjYXRjaCAoSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgdGhyb3cgbmV3IERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbihleCk7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8qKgorICAgICogQ3JlYXRlIGRlZmF1bHQgRGVmaW5pdGlvbiBmYWN0b3J5LgorICAgICogRmFjdG9yeSBtdXN0IGhhdmUgYSBjb25zdHJ1Y3RvciB0YWtpbmcgU2VydmxldENvbnRleHQgYW5kIE1hcCBhcyBwYXJhbWV0ZXIuCisgICAgKiBJbiB0aGlzIGltcGxlbWVudGF0aW9uLCBkZWZhdWx0IGZhY3RvcnkgaXMgb2YgY2xhc3MgSTE4bkZhY3RvcnlTZXQKKyAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBTZXJ2bGV0IENvbnRleHQgcGFzc2VkIHRvIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS4KKyAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIE1hcCBvZiBuYW1lL3Byb3BlcnR5IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuCisgICAgKiBAcmV0dXJuIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS4KKyAgICAqIEB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIElmIGFuIGVycm9yIG9jY3VyIHdoaWxlIGluaXRpYWxpemluZyBmYWN0b3J5CisgICAgKi8KKyAgICBwdWJsaWMgQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5IGNyZWF0ZURlZmF1bHRGYWN0b3J5KAorICAgICAgICBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgTWFwIHByb3BlcnRpZXMpCisgICAgICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24geworCisgICAgICAgIENvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeSBmYWN0b3J5ID0KKyAgICAgICAgICAgIG5ldyBJMThuRmFjdG9yeVNldChzZXJ2bGV0Q29udGV4dCwgcHJvcGVydGllcyk7CisKKyAgICAgICAgcmV0dXJuIGZhY3Rvcnk7CisgICAgfQorCisgICAgLyoqCisgICAgKiBDcmVhdGUgRGVmaW5pdGlvbiBmYWN0b3J5LgorICAgICogQ29udmVuaWVuY2UgbWV0aG9kLiBTZXJ2bGV0Q29uZmlnIGlzIHdyYXBwZWQgaW50byBhIE1hcCBhbGxvd2luZyByZXRyaWV2YWwKKyAgICAqIG9mIGluaXQgcGFyYW1ldGVycy4gRmFjdG9yeSBjbGFzc25hbWUgaXMgYWxzbyByZXRyaWV2ZWQsIGFzIHdlbGwgYXMgZGVidWcgbGV2ZWwuCisgICAgKiBGaW5hbGx5LCBhcHByb3JpYXRlIGNyZWF0ZURlZmluaXRpb25zRmFjdG9yeSgpIGlzIGNhbGxlZC4KKyAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBTZXJ2bGV0IENvbnRleHQgcGFzc2VkIHRvIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS4KKyAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIE1hcCBjb250YWluaW5nIGFsbCBwcm9wZXJ0aWVzLgorICAgICovCisgICAgcHVibGljIENvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeSBjcmVhdGVGYWN0b3J5KAorICAgICAgICBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCwKKyAgICAgICAgTWFwIHByb3BlcnRpZXMpCisgICAgICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24geworCisgICAgICAgIFN0cmluZyBjbGFzc25hbWUgPSAoU3RyaW5nKSBwcm9wZXJ0aWVzLmdldChERUZJTklUSU9OU19GQUNUT1JZX0NMQVNTTkFNRSk7CisKKyAgICAgICAgaWYgKGNsYXNzbmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gY3JlYXRlRmFjdG9yeUZyb21DbGFzc25hbWUoc2VydmxldENvbnRleHQsIHByb3BlcnRpZXMsIGNsYXNzbmFtZSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gbmV3IEkxOG5GYWN0b3J5U2V0KHNlcnZsZXRDb250ZXh0LCBwcm9wZXJ0aWVzKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLgorICAgICAqIENhbGwgYXBwcm9wcmlhdGUgbWV0aG9kIG9uIHVuZGVybHlpbmcgZmFjdG9yeSBpbnN0YW5jZS4KKyAgICAgKiBUaHJvdyBhcHByb3ByaWF0ZSBleGNlcHRpb24gaWYgZGVmaW5pdGlvbiBvciBkZWZpbml0aW9uIGZhY3RvcnkgaXMgbm90IGZvdW5kLgorICAgICAqIEBwYXJhbSBkZWZpbml0aW9uTmFtZSBOYW1lIG9mIHJlcXVlc3RlZCBkZWZpbml0aW9uLgorICAgICAqIEBwYXJhbSByZXF1ZXN0IEN1cnJlbnQgc2VydmxldCByZXF1ZXN0LgorICAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBDdXJyZW50IHNlcnZsZXQgY29udGV4dC4KKyAgICAgKiBAdGhyb3dzIEZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlvbiBDYW4ndCBmaW5kIGRlZmluaXRpb24gZmFjdG9yeS4KKyAgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBHZW5lcmFsIGVycm9yIGluIGZhY3Rvcnkgd2hpbGUgZ2V0dGluZyBkZWZpbml0aW9uLgorICAgICAqLworICAgIHB1YmxpYyBDb21wb25lbnREZWZpbml0aW9uIGdldERlZmluaXRpb24oCisgICAgICAgIFN0cmluZyBkZWZpbml0aW9uTmFtZSwKKyAgICAgICAgU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQpCisgICAgICAgIHRocm93cyBGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24sIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiB7CisKKyAgICAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0RGVmaW5pdGlvbigKKyAgICAgICAgICAgIGRlZmluaXRpb25OYW1lLAorICAgICAgICAgICAgKEh0dHBTZXJ2bGV0UmVxdWVzdCkgcmVxdWVzdCwKKyAgICAgICAgICAgIHNlcnZsZXRDb250ZXh0KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZWxvYWQgdW5kZXJseWluZyBmYWN0b3J5LgorICAgICAqIFJlbG9hZCBpcyBkb25lIGJ5IGNyZWF0aW5nIGEgbmV3IGZhY3RvcnkgaW5zdGFuY2UsIGFuZCByZXBsYWNpbmcgdGhlIG9sZCBpbnN0YW5jZQorICAgICAqIHdpdGggdGhlIG5ldyBvbmUuCisgICAgICogQHBhcmFtIHNlcnZsZXRDb250ZXh0IEN1cnJlbnQgc2VydmxldCBjb250ZXh0LgorICAgICAqIEB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIElmIGZhY3RvcnkgY3JlYXRpb24gZmFpbHMuCisgICAgICovCisgICAgcHVibGljIHZvaWQgcmVsb2FkKFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0KQorICAgICAgICB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIHsKKworICAgICAgICBDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkgbmV3SW5zdGFuY2UgPQorICAgICAgICAgICAgY3JlYXRlRmFjdG9yeShzZXJ2bGV0Q29udGV4dCwgcHJvcGVydGllcyk7CisKKyAgICAgICAgZmFjdG9yeSA9IG5ld0luc3RhbmNlOworICAgIH0KKworICAgIC8qKgorICAgICAqIEdldCB1bmRlcmx5aW5nIGZhY3RvcnkgaW5zdGFuY2UuCisgICAgICogQHJldHVybiBDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkKKyAgICAgKi8KKyAgICBwdWJsaWMgQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5IGdldEZhY3RvcnkoKSB7CisgICAgICAgIHJldHVybiBmYWN0b3J5OworICAgIH0KKworICAgIC8qKgorICAgICAgKiBJbml0IGZhY3RvcnkuCisgICAgICAqIFRoaXMgbWV0aG9kIGlzIHJlcXVpcmVkIGJ5IGludGVyZmFjZSBDb21wb25lbnREZWZpbml0aW9uc0ZhY3RvcnkuIEl0IGlzCisgICAgICAqIG5vdCB1c2VkIGluIHRoaXMgaW1wbGVtZW50YXRpb24sIGFzIGl0IG1hbmFnZXMgaXRzZWxmIHRoZSB1bmRlcmx5aW5nIGNyZWF0aW9uCisgICAgICAqIGFuZCBpbml0aWFsaXphdGlvbi4KKyAgICAgICogQHBhcmFtIHNlcnZsZXRDb250ZXh0IFNlcnZsZXQgQ29udGV4dCBwYXNzZWQgdG8gbmV3bHkgY3JlYXRlZCBmYWN0b3J5LgorICAgICAgKiBAcGFyYW0gcHJvcGVydGllcyBNYXAgb2YgbmFtZS9wcm9wZXJ0eSBwYXNzZWQgdG8gbmV3bHkgY3JlYXRlZCBmYWN0b3J5LgorICAgICAgKiBNYXAgY2FuIGNvbnRhaW4gbW9yZSBwcm9wZXJ0aWVzIHRoYW4gcmVxdWVzdGVkLgorICAgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBBbiBlcnJvciBvY2N1ciBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCisgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBpbml0RmFjdG9yeShTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCwgTWFwIHByb3BlcnRpZXMpCisgICAgICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24geworICAgICAgICAvLyBkbyBub3RoaW5nCisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGlvbi4KKyAgICAgKiBAcmV0dXJuIFN0cmluZyByZXByZXNlbnRhdGlvbi4KKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIHRvU3RyaW5nKCkgeworICAgICAgICByZXR1cm4gZmFjdG9yeS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIElubmVyIGNsYXNzLgorICAgICAqIFdyYXBwZXIgZm9yIFNlcnZsZXRDb250ZXh0IGluaXQgcGFyYW1ldGVycy4KKyAgICAgKiBPYmplY3Qgb2YgdGhpcyBjbGFzcyBpcyBhbiBIYXNoTWFwIGNvbnRhaW5pbmcgcGFyYW1ldGVycyBhbmQgdmFsdWVzCisgICAgICogZGVmaW5lZCBpbiB0aGUgc2VydmxldCBjb25maWcgZmlsZSAod2ViLnhtbCkuCisgICAgICovCisgICAgY2xhc3MgU2VydmxldFByb3BlcnRpZXNNYXAgZXh0ZW5kcyBIYXNoTWFwIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvbnN0cnVjdG9yLgorICAgICAgICAgKi8KKyAgICAgICAgU2VydmxldFByb3BlcnRpZXNNYXAoU2VydmxldENvbmZpZyBjb25maWcpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gaXMgdmVyeSBzaW1wbGUuCisgICAgICAgICAgICAvLyBJdCBpcyBwb3NzaWJsZSB0byBhdm9pZCBjcmVhdGlvbiBvZiBhIG5ldyBzdHJ1Y3R1cmUsIGJ1dCB0aGlzIHdvdWxkCisgICAgICAgICAgICAvLyBpbXBseSB3cml0aW5nIGFsbCBvZiB0aGUgTWFwIGludGVyZmFjZS4KKyAgICAgICAgICAgIEVudW1lcmF0aW9uIG5hbWVzID0gY29uZmlnLmdldEluaXRQYXJhbWV0ZXJOYW1lcygpOworICAgICAgICAgICAgd2hpbGUgKG5hbWVzLmhhc01vcmVFbGVtZW50cygpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIG5hbWVzLm5leHRFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgcHV0KGtleSwgY29uZmlnLmdldEluaXRQYXJhbWV0ZXIoa2V5KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IC8vIGVuZCBpbm5lciBjbGFzcworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvZG9jLWZpbGVzL2ltYWdlMDAxLmdpZiBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL2RvYy1maWxlcy9pbWFnZTAwMS5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY3NWMxMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL2RvYy1maWxlcy9pbWFnZTAwMS5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvZG9jLWZpbGVzL3RpbGVzVU1MLmdpZiBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL2RvYy1maWxlcy90aWxlc1VNTC5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQ0NDgyMgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL2RvYy1maWxlcy90aWxlc1VNTC5naWYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvcGFja2FnZS5odG1sIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvcGFja2FnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiNmY3MDkKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy9wYWNrYWdlLmh0bWwKQEAgLTAsMCArMSwzMjMgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiI+PGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cis8dGl0bGU+VGlsZXMgUGFja2FnZTwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9Im1haW5Db250ZW50Ij4KKyAgICBUaGUgVGlsZXMgdGFnbGliIGFuZCBmcmFtZXdvcmsgYWxsb3dzIGJ1aWxkaW5nIHdlYiBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIAorICAgIHBpZWNlcyBvZiBwYWdlcywgY2FsbGVkIFRpbGVzLiBBIFRpbGVzIGlzIHVzdWFsbHkgYSBzaW1wbGUgSlNQIHBhZ2UuCis8aW1nIHNyYz0iZG9jLWZpbGVzL3RpbGVzVU1MLmdpZiIgYWx0PSJUYWdMaWIgVGlsZXMgVU1MIj4KKworPGRpdiBjbGFzcz0ic2VjdGlvbiI+Cis8aDI+SW50cm9kdWN0aW9uPC9oMj4KKyAgICA8cD5UaGUgVGlsZXMgZnJhbWV3b3JrIGFsbG93cyBidWlsZGluZyBwYWdlcyBieSBhc3NlbWJsaW5nIHJldXNhYmxlIFRpbGVzLiAKKyAgICAgIEFzIGFuIGV4YW1wbGUsIHRoZSBwYWdlIGluIHRoZSBuZXh0IGZpZ3VyZSBjYW4gYmUgYnVpbGQgYnkgYXNzZW1ibGluZyBhIAorICAgICAgaGVhZGVyLCBhIGZvb3RlciwgYSBtZW51IGFuZCBhIGJvZHkuPC9wPgorICAgIDxwPjxpbWcgc3JjPSJkb2MtZmlsZXMvaW1hZ2UwMDEuZ2lmIiBoZWlnaHQ9IjE2OSIgd2lkdGg9IjE0NSIgYWx0PSJkb2MtZmlsZXMvaW1hZ2UwMDEiPjwvcD4KKyAgICA8cD5FYWNoIFRpbGVzIChoZWFkZXIsIG1lbnUsIGJvZHksIC4uLikgaXMgYSBKU1AgcGFnZSBhbmQgY2FuIGl0c2VsZiBiZSBidWlsZCAKKyAgICAgIGJ5IGFzc2VtYmxpbmcgb3RoZXIgVGlsZXMuPC9wPgorPHA+VXNpbmcgVGlsZXMgY2FuIGJlIGNvbXBhcmVkIGFzIHVzaW5nIEphdmEgbWV0aG9kczogIFlvdSBuZWVkIHRvIGRlZmluZSB0aGUgVGlsZXMgKHRoZSBtZXRob2QgYm9keSksIGFuZCB0aGVuIHlvdSBjYW4gImNhbGwiIHRoaXMgYm9keSBhbnl3aGVyZSB5b3Ugd2FudCwgcGFzc2luZyBpdCBzb21lIHBhcmFtZXRlcnMuIEluIFRpbGVzLCBwYXJhbWV0ZXJzIGFyZSBjYWxsZWQgImF0dHJpYnV0ZXMiIGluIG9yZGVyIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIHRoZSByZXF1ZXN0IHBhcmFtZXRlcnMuPC9wPgorICAgIDxwPlRoZSBUaWxlcyBib2R5IGNhbiBiZSBhIHNpbXBsZSBKU1AgcGFnZSwgYSBTdHJ1dHMgYWN0aW9uIG9yIGFueSBVUkkgcG9pbnRpbmcgCisgICAgICB0byBhIHJlc291cmNlIGluc2lkZSB0aGUgY3VycmVudCB3ZWIgc2l0ZS48L3A+CisgICAgPHA+SW5zZXJ0aW5nIHRoZSBib2R5LCBvciBjYWxsaW5nIGl0LCBpcyBkb25lIHdpdGggdGhlIHRhZyAmbHQ7dGlsZXM6aW5zZXJ0IAorICAgICAgLi4uJmd0OyBhbnl3aGVyZSBpbiBhIEpTUCBwYWdlLiBJbnNlcnRpb24gY2FuIGFsc28gYmUgZG9uZSBieSBzcGVjaWZ5aW5nIAorICAgICAgYSA8ZW0+ZGVmaW5pdGlvbiBuYW1lIDwvZW0+YXMgdGhlIHBhdGggb2YgYSBTdHJ1dHMgZm9yd2FyZCBvciBhcyBpbnB1dCwgCisgICAgICBmb3J3YXJkIG9yIGluY2x1ZGUgYXR0cmlidXRlcyBvZiBhIFN0cnV0cyBhY3Rpb24uPC9wPgorICAgIDxwPlRpbGVzIGJvZGllcyBhcmUgdXNlZCB0byBjcmVhdGUgbGF5b3V0cywgcmV1c2FibGUgcGFydHMsIC4uLiBUaWxlcyBpbnNlcnRpb25zIAorICAgICAgYXJlIHVzZWQgdG8gaW5zZXJ0IFRpbGVzLiBUaGUgc2FtZSBUaWxlcyBjYW4gYmUgcmV1c2VkIHNldmVyYWwgdGltZXMgaW4gCisgICAgICB0aGUgc2FtZSBzaXRlLCBvciBldmVuIGluIHRoZSBzYW1lIHBhZ2UuPC9wPgorPHA+SW5zZXJ0aW9uIG9mIGEgVGlsZXMgYm9keSBjYW4gYmUgYXNzb2NpYXRlZCB0byBhIGxvZ2ljYWwgbmFtZSBpbiB3aGF0IFRpbGVzIGNhbGxzIGEgImRlZmluaXRpb24iLiBBIGRlZmluaXRpb24gY29udGFpbnMgYSBsb2dpY2FsIG5hbWUsIGEgcGFnZSB1c2VkIGFzIGJvZHkgYW5kIHNvbWUgYXR0cmlidXRlIHZhbHVlcy4gVGhlIGRlZmluaXRpb24gZGVjbGFyYXRpb24gZG9lc24ndCBpbnNlcnQgdGhlIGFzc29jaWF0ZWQgVGlsZXMgYm9keS4gSXQganVzdCBhc3NvY2lhdGVzIGl0IHdpdGggdGhlIG5hbWUuIEEgZGVmaW5pdGlvbiBuYW1lIGNhbiBiZSB1c2VkIGFueXdoZXJlIGluc2VydGlvbiBvZiBhIFRpbGVzIGJvZHkgY2FuIG9jY3VyLiBUaGUgYXNzb2NpYXRlZCBUaWxlcyBib2R5IGlzIHRoZW4gaW5zZXJ0ZWQgd2l0aCBhc3NvY2lhdGVkIGF0dHJpYnV0ZXMuPC9wPgorICAgIDxwPlRoZSBkZWZpbml0aW9uIGRlY2xhcmF0aW9ucyBjYW4gYmUgZG9uZSBpbiBKU1AgcGFnZXMgb3IgaW4gb25lIG9yIG1vcmUgCisgICAgICBjZW50cmFsaXplZCBmaWxlcy4gQSBkZWZpbml0aW9uIGNhbiBleHRlbmQgYW5vdGhlciBvbmUsIG92ZXJsb2FkIHNvbWUgYXR0cmlidXRlcywgCisgICAgICBhZGQgbmV3IGF0dHJpYnV0ZXMgLi4uIFRoaXMgYWxsb3dzIHRoZSBkZWNsYXJhdGlvbiBvZiBhICJtYXN0ZXIiIGRlZmluaXRpb24gCisgICAgICBkZWNsYXJpbmcgdGhlIGNvbW1vbiBsYXlvdXQsIGhlYWRlciwgbWVudSBhbmQgZm9vdGVyLiBBbGwgb3RoZXIgZGVmaW5pdGlvbnMgCisgICAgICBleHRlbmQgdGhpcyBtYXN0ZXIgbGF5b3V0IHRoZXJlYnkgbWFraW5nIGl0IHBvc3NpYmxlIHRvIGNoYW5nZSB0aGUgZW50aXJlIAorICAgICAgc2l0ZSBsb29rICZhbXA7IGZlZWwgc2ltcGx5IGJ5IGNoYW5naW5nIHRoZSBtYXN0ZXIgZGVmaW5pdGlvbi4gPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KKzxoMj5TaW1wbGUgRXhhbXBsZXM8L2gyPgorPGRpdiBjbGFzcz0ic3Vic2VjdGlvbjEiPgorICAgICAgPGgzPkluc2VydCBhIEpTUCBwYWdlPC9oMz4KKyAgICAgIDxwcmU+Jmx0O3RpbGVzOmluc2VydCA8c3Ryb25nPnBhZ2U8L3N0cm9uZz49Ii9sYXlvdXRzL2NvbW1vbkxheW91dC5qc3AiIGZsdXNoPSJ0cnVlIiAvJmd0OworPC9wcmU+Cis8cD5UaGlzIGV4YW1wbGUgaW5zZXJ0cyB0aGUgc3BlY2lmaWVkIHBhZ2UgaW4gcGxhY2Ugb2YgdGhlIHRhZy4gVGhlIHBhZ2UgYXR0cmlidXRlIGlzIGFueSB2YWxpZCBVUkwgcG9pbnRpbmcgdG8gYSByZXNvdXJjZSBpbnNpZGUgdGhlIGN1cnJlbnQgc2l0ZS48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InN1YnNlY3Rpb24xIj4KKzxhIG5hbWU9ImRvYy5JbnNlcnRQYWdlV2l0aEF0dHJpYnV0ZXMiPgorPGgzPkluc2VydCBhIFRpbGVzIHBhc3Npbmcgc29tZSBhdHRyaWJ1dGVzPC9oMz4KKzxwcmU+CismbHQ7dGlsZXM6aW5zZXJ0IHBhZ2U9Ii9sYXlvdXRzL2NsYXNzaWNMYXlvdXQuanNwIiBmbHVzaD0idHJ1ZSImZ3Q7CisgICZsdDt0aWxlczpwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iUGFnZSBUaXRsZSIgLyZndDsKKyAgJmx0O3RpbGVzOnB1dCBuYW1lPSJoZWFkZXIiIHZhbHVlPSIvY29tbW9uL2hlYWRlci5qc3AiIC8mZ3Q7CisgICZsdDt0aWxlczpwdXQgbmFtZT0iZm9vdGVyIiB2YWx1ZT0iL2NvbW1vbi9mb290ZXIuanNwIiAvJmd0OworICAmbHQ7dGlsZXM6cHV0IG5hbWU9Im1lbnUiICAgdmFsdWU9Ii9jb21tb24vbWVudS5qc3AiIC8mZ3Q7CisgICZsdDt0aWxlczpwdXQgbmFtZT0iYm9keSIgICB2YWx1ZT0iL3RpbGVzL21haW5Cb2R5LmpzcCIgLyZndDsKKyZsdDsvdGlsZXM6aW5zZXJ0Jmd0OworPC9wcmU+CisgICAgICA8cD5UaGlzIGV4YW1wbGUgaW5zZXJ0cyB0aGUgc3BlY2lmaWVkIHBhZ2UsIHBhc3NpbmcgaXQgdGhlIGF0dHJpYnV0ZXMuIEF0dHJpYnV0ZXMgCisgICAgICAgIGFyZSBzdG9yZWQgaW4gYSBUaWxlcyBjb250ZXh0IHdoaWNoIGlzIHBhc3NlZCB0byB0aGUgaW5zZXJ0ZWQgcGFnIGFuZCAKKyAgICAgICAgY2FuIHRoZW4gYmUgYWNjZXNzc2VkIGJ5IHRoZWlyIG5hbWVzLjwvcD4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic3Vic2VjdGlvbjEiPgorPGgzPlJldHJpZXZlIGFuIGF0dHJpYnV0ZSB2YWx1ZSBhcyBTdHJpbmc8L2gzPgorPHByZT4KKyZsdDt0aWxlczpnZXRBc1N0cmluZyBuYW1lPSJ0aXRsZSIgLyZndDsKKzwvcHJlPgorPHA+VGhpcyBleGFtcGxlIHJldHJpZXZlcyB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSAidGl0bGUiIGFuZCBwcmludHMgaXQgYXMgYSBTdHJpbmcgaW4gdGhlIGN1cnJlbnQgb3V0cHV0IHN0cmVhbS4gVGhlIG1ldGhvZCB0b1N0cmluZygpIGlzIGFwcGxpZWQgb24gdGhlIGF0dHJpYnV0ZSB2YWx1ZSwgYWxsb3dpbmcgdG8gcGFzcyBhbnkga2luZCBvZiBvYmplY3QgYXMgdmFsdWUuPC9wPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzdWJzZWN0aW9uMSI+Cis8aDM+SW5zZXJ0IFRpbGVzIHJlZmVyZW5jZWQgYnkgYW4gYXR0cmlidXRlPC9oMz4KKzxwcmU+CismbHQ7dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0nbWVudScgLyZndDsKKzwvcHJlPgorICAgICAgPHA+VGhpcyBpbnNlcnRzIHRoZSBUaWxlcyByZWZlcmVuY2VkIGJ5IHRoZSBhdHRyaWJ1dGUgIm1lbnUiIHZhbHVlLiBUaGUgCisgICAgICAgIHNwZWNpZmllZCBhdHRyaWJ1dGUgdmFsdWUgaXMgZmlyc3QgcmV0cmlldmVkIGZyb20gY3VycmVudCBUaWxlcydzIGNvbnRleHQsIAorICAgICAgICBhbmQgdGhlbiB0aGUgdmFsdWUgaXMgdXNlZCBhcyBhIHBhZ2UgdGFyZ2V0IHRvIGluc2VydC48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InN1YnNlY3Rpb24xIj4KKzxoMz5DbGFzc2ljIExheW91dCA8L2gzPgorICAgICAgPHA+VGhpcyBleGFtcGxlIGlzIGEgbGF5b3V0IGFzc2VtYmxpbmcgYSBwYWdlIGluIHRoZSBjbGFzc2ljIGhlYWRlci1mb290ZXItbWVudS1ib2R5IAorICAgICAgICBmYXNoaW9uLjwvcD4KKyAgICAgIDxwcmU+CismbHQ7JUAgdGFnbGliIHVyaT0iL1dFQi1JTkYvc3RydXRzLXRpbGVzLnRsZCIgcHJlZml4PSJ0aWxlcyIgJSZndDsKKyZsdDtIVE1MJmd0OworICAmbHQ7SEVBRCZndDsKKyAgICAmbHQ7bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IiZsdDslPXJlcXVlc3QuZ2V0Q29udGV4dFBhdGgoKSUmZ3Q7L2xheW91dHMvc3R5bGVzaGVldC5jc3MiIAorICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dC9jc3MiLyZndDsKKyAgICAmbHQ7dGl0bGUmZ3Q7Jmx0O3RpbGVzOmdldEFzU3RyaW5nIG5hbWU9InRpdGxlIi8mZ3Q7Jmx0Oy90aXRsZSZndDsKKyAgJmx0Oy9IRUFEJmd0OworJmx0O2JvZHkmZ3Q7CismbHQ7dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9IjUiJmd0OworJmx0O3RyJmd0OworICAmbHQ7dGQgY29sc3Bhbj0iMiImZ3Q7Jmx0O3RpbGVzOmluc2VydCBhdHRyaWJ1dGU9ImhlYWRlciIgLyZndDsmbHQ7L3RkJmd0OworJmx0Oy90ciZndDsKKyZsdDt0ciZndDsKKyAgJmx0O3RkIHdpZHRoPSIxNDAiIHZhbGlnbj0idG9wIiZndDsKKyAgICAmbHQ7dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0nbWVudScgLyZndDsKKyAgJmx0Oy90ZCZndDsKKyAgJmx0O3RkIHZhbGlnbj0idG9wIiAgYWxpZ249ImxlZnQiJmd0OworICAgICZsdDt0aWxlczppbnNlcnQgYXR0cmlidXRlPSdib2R5JyAvJmd0OworICAmbHQ7L3RkJmd0OworJmx0Oy90ciZndDsKKyZsdDt0ciZndDsKKyAgJmx0O3RkIGNvbHNwYW49IjIiJmd0OworICAgICZsdDt0aWxlczppbnNlcnQgYXR0cmlidXRlPSJmb290ZXIiIC8mZ3Q7CisgICZsdDsvdGQmZ3Q7CismbHQ7L3RyJmd0OworJmx0Oy90YWJsZSZndDsKKyZsdDsvYm9keSZndDsKKyZsdDsvaHRtbCZndDsKKzwvcHJlPgorICAgICAgPHA+VGhlIGxheW91dCBpcyBkZWNsYXJlZCBpbiBhIEpTUCBwYWdlIChleDogL2xheW91dHMvY2xhc3NpY0xheW91dC5qc3ApLiAKKyAgICAgICAgSXQgY2FuIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgdGFnIGRlc2NyaWJlZCBpbiAiPGEgaHJlZj0iI2RvYy5JbnNlcnRQYWdlV2l0aEF0dHJpYnV0ZXMiPkluc2VydCAKKyAgICAgICAgYSBwYWdlIHBhc3Npbmcgc29tZSBhdHRyaWJ1dGVzPC9hPiIuIDwvcD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KKzxoMj5EZWZpbml0aW9uczwvaDI+CisgICAgPHA+QSBkZWZpbml0aW9uIGFzc29jaWF0ZXMgYSBsb2dpY2FsIG5hbWUgd2l0aCB0aGUgVVJMIG9mIGEgVGlsZXMgdG8gYmUgaW5zZXJ0ZWQgCisgICAgICBhbmQgc29tZSBhdHRyaWJ1dGUgdmFsdWVzLiBBIGRlZmluaXRpb24gZG9lc24ndCBpbnNlcnQgdGhlIFRpbGVzLiBUaGlzIGlzIAorICAgICAgZG9uZSBsYXRlciB1c2luZyB0aGUgZGVmaW5pdGlvbiBuYW1lLiBBIGRlZmluaXRpb24gbmFtZSBjYW4gYmUgaW5zZXJ0ZWQgCisgICAgICBhcyBvZnRlbiBhcyB5b3Ugd2FudCBpbiB5b3VyIHNpdGUsIG1ha2luZyBpdCBlYXN5IHRvIHJldXNlIGEgVGlsZXMuIDwvcD4KKyAgICA8cD5BIGRlZmluaXRpb24gY2FuIGV4dGVuZCBhbm90aGVyIGRlZmluaXRpb24gYW5kIG92ZXJsb2FkIHNvbWUgYXR0cmlidXRlcyAKKyAgICAgIG9yIGFkZCBuZXcgb25lcy4gVGhpcyBtYWtlcyBlYXN5IGZhY3Rvcml6YXRpb24gb2YgZGVmaW5pdGlvbnMgZGlmZmVyaW5nIAorICAgICAgYnkgc29tZSBhdHRyaWJ1dGVzLiBGb3IgZXhhbXBsZSwgeW91IGNhbiBkZWZpbmUgYSBtYXN0ZXIgZGVmaW5pdGlvbiBkZWNsYXJpbmcgCisgICAgICB0aGUgbWFpbiBoZWFkZXIsIG1lbnUsIGZvb3RlciwgYW5kIGEgZGVmYXVsdCB0aXRsZS4gVGhlbiBsZXQgZWFjaCBvZiB5b3VyIAorICAgICAgcGFnZSBkZWZpbml0aW9ucyBleHRlbmQgdGhpcyBtYXN0ZXIgZGVmaW5pdGlvbiBhbmQgb3ZlcmxvYWQgdGhlIHRpdGxlIGFuZCAKKyAgICAgIHRoZSBib2R5LjwvcD4KKyAgICA8cD5EZWZpbml0aW9ucyBjYW4gYmUgZGVjbGFyZWQgaW4gYSBKU1AgcGFnZSwgb3IgaW4gb25lIG9yIG1vcmUgY2VudHJhbGl6ZWQgCisgICAgICBmaWxlcy4gVG8gZW5hYmxlIHRoZSBkZWZpbml0aW9ucyBmcm9tIGNlbnRyYWxpemVkIGZpbGVzLCB5b3UgbmVlZCB0byBpbml0aWFsaXplIAorICAgICAgdGhlICJkZWZpbml0aW9ucyBmYWN0b3J5IiB3aGljaCB3aWxsIHBhcnNlIHRoZSBkZWZpbml0aW9ucyBmcm9tIHRoZSBmaWxlcyAKKyAgICAgIGFuZCBwcm92aWRlIHRoZW0gdG8gdGhlIFRpbGVzIGZyYW1ld29yay48L3A+Cis8ZGl2IGNsYXNzPSJzdWJzZWN0aW9uMSI+Cis8aDM+RW5hYmxpbmcgRGVmaW5pdGlvbiBGYWN0b3J5PC9oMz4KKzxwPlRvIGVuYWJsZSBUaWxlcyBkZWZpbml0aW9ucyBkZXNjcmliZWQgaW4gb25lIG9yIG1vcmUgZmlsZXMsIHlvdSBuZWVkIHRvIHdyaXRlIHRoZXNlIGZpbGVzIGFuZCB0byBpbml0aWFsaXplIHRoZSBkZWZpbml0aW9uIGZhY3RvcnkuIDwvcD4KKyAgICAgIDxwPkluaXRpYWxpemF0aW9uIGlzIGRpZmZlcmVudCBkZXBlbmRpbmcgb24gdGhlIFN0cnV0cyB2ZXJzaW9uIHlvdSB1c2UsIAorICAgICAgICBvciBpZiB5b3UgZG8gbm90IHVzZSBTdHJ1dHMgYXQgYWxsLjwvcD4KKzxkaXYgY2xhc3M9InN1YnNlY3Rpb24yIj4KKzxoND5TdHJ1dHMxLjE8L2g0PgorICAgICAgICA8cD5Vc2UgdGhlIFRpbGVzIHBsdWctaW4gdG8gZW5hYmxlIFRpbGVzIGRlZmluaXRpb25zLiBUaGlzIHBsdWctaW4gY3JlYXRlcyAKKyAgICAgICAgICB0aGUgZGVmaW5pdGlvbiBmYWN0b3J5IGFuZCBwYXNzZXNlIGl0IGEgY29uZmlndXJhdGlvbiBvYmplY3QgcG9wdWxhdGVkIAorICAgICAgICAgIHdpdGggcGFyYW1ldGVycy4gUGFyYW1ldGVycyBjYW4gYmUgc3BlY2lmaWVkIGluIHRoZSB3ZWIueG1sIGZpbGUgb3IgCisgICAgICAgICAgYXMgcGx1Zy1pbiBwYXJhbWV0ZXJzLiBUaGUgcGx1Zy1pbiBmaXJzdCByZWFkcyBwYXJhbWV0ZXJzIGZyb20gd2ViLnhtbCwgCisgICAgICAgICAgYW5kIHRoZW4gb3ZlcmxvYWRzIHRoZW0gd2l0aCB0aGUgb25lcyBmb3VuZCBpbiB0aGUgcGx1Zy1pbi4gQWxsIHBhcmFtZXRlcnMgCisgICAgICAgICAgYXJlIG9wdGlvbmFsIGFuZCBjYW4gYmUgb21pdHRlZC4gVGhlIHBsdWctaW4gc2hvdWxkIGJlIGRlY2xhcmVkIGluIGVhY2ggCisgICAgICAgICAgc3RydXRzLWNvbmZpZyBmaWxlOjwvcD4KKzxwcmU+CisgICZsdDtwbHVnLWluIGNsYXNzTmFtZT0ib3JnLmFwYWNoZS50aWxlcy5UaWxlc1BsdWdpbiIgJmd0OworICAgICZsdDtzZXQtcHJvcGVydHkgcHJvcGVydHk9ImRlZmluaXRpb25zLWNvbmZpZyIgCisJICAgICAgICAgICAgICAgICB2YWx1ZT0iL1dFQi1JTkYvdGlsZXMtZGVmcy54bWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgL1dFQi1JTkYvdGlsZXMtdGVzdHMtZGVmcy54bWwsL1dFQi1JTkYvdGlsZXMtdHV0b3JpYWwtZGVmcy54bWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgL1dFQi1JTkYvdGlsZXMtZXhhbXBsZXMtZGVmcy54bWwiIC8mZ3Q7CisgICAgJmx0O3NldC1wcm9wZXJ0eSBwcm9wZXJ0eT0ibW9kdWxlQXdhcmUiIHZhbHVlPSJ0cnVlIiAvJmd0OworICAgICZsdDtzZXQtcHJvcGVydHkgcHJvcGVydHk9ImRlZmluaXRpb25zLXBhcnNlci12YWxpZGF0ZSIgdmFsdWU9InRydWUiIC8mZ3Q7CisgICZsdDsvcGx1Zy1pbiZndDsKKzwvcHJlPgorPHVsPgorPGxpPmRlZmluaXRpb25zLWNvbmZpZzogKG9wdGlvbmFsKSA8dWw+Cis8bGk+U3BlY2lmeSBjb25maWd1cmF0aW9uIGZpbGUgbmFtZXMuIFRoZXJlIGNhbiBiZSBzZXZlcmFsIGNvbW1hIHNlcGFyYXRlZCBmaWxlIG5hbWVzIChkZWZhdWx0OiA/PyApPC9saT4KKzwvdWw+Cis8L2xpPgorICAgICAgICAgIDxsaT5kZWZpbml0aW9ucy1wYXJzZXItdmFsaWRhdGU6IChvcHRpb25hbCkKKzx1bD4KKyAgICAgICAgICAgICAgPGxpPlNwZWNpZnkgaWYgWE1MIHBhcnNlciBzaG91bGQgdmFsaWRhdGUgdGhlIFRpbGVzIGNvbmZpZ3VyYXRpb24gCisgICAgICAgICAgICAgICAgZmlsZSAKKyAgICAgICAgICAgICAgICA8dWw+CisgICAgICAgICAgICAgICAgICA8bGk+dHJ1ZSA6IHZhbGlkYXRlLiBEVEQgc2hvdWxkIGJlIHNwZWNpZmllZCBpbiBmaWxlIGhlYWRlciAoZGVmYXVsdCk8L2xpPgorPGxpPmZhbHNlIDogbm8gdmFsaWRhdGlvbgkgIDwvbGk+CisKKzwvdWw+Cis8L2xpPgorPC91bD4KKzwvbGk+CisKKyAgICAgICAgICA8bGk+bW9kdWxlQXdhcmU6IChvcHRpb25hbCkKKyAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgICA8bGk+U3BlY2lmeSBpZiB0aGUgVGlsZXMgZGVmaW5pdGlvbiBmYWN0b3J5IGlzIG1vZHVsZSBhd2FyZS4gSWYgdHJ1ZSAoZGVmYXVsdCksIAorCQkJdGhlcmUgd2lsbCBiZSBvbmUgZmFjdG9yeSBmb3IgZWFjaCBTdHJ1dHMgbW9kdWxlLiAKKwkJCUlmIGZhbHNlLCB0aGVyZSB3aWxsIGJlIG9uZSBjb21tb24gZmFjdG9yeSBmb3IgYWxsIG1vZHVsZS4gSW4gdGhpcyBsYXRlciBjYXNlLCAKKwkJCWl0IGlzIHN0aWxsIG5lZWRlZCB0byBkZWNsYXJlIG9uZSBwbHVnaW4gcGVyIG1vZHVsZS4gVGhlIGZhY3Rvcnkgd2lsbCBiZSAKKwkJCWluaXRpYWxpemVkIHdpdGggcGFyYW1ldGVycyBmb3VuZCBpbiB0aGUgZmlyc3QgaW5pdGlhbGl6ZWQgcGx1Z2luIChnZW5lcmFsbHkgdGhlCisJCQlvbmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBkZWZhdWx0IG1vZHVsZSkuIAorICAgICAgICAgICAgPHVsPgorICAgICAgICAgICAgIDxsaT50cnVlIDogVGlsZXMgZnJhbWV3b3JrIGlzIG1vZHVsZSBhd2FyZSA8L2xpPgorICAgICAgICAgICAgIDxsaT5mYWxzZSA6VGlsZXMgZnJhbWV3b3JrIGhhcyBvbmUgc2luZ2xlIGZhY3RveSBzaGFyZWQgYW1vbmcgbW9kdWxlcyAoZGVmYXVsdCk8L2xpPgorICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgPC9saT4KKzwvdWw+Cis8L2xpPgorCis8bGk+dGlsZXNVdGlsSW1wbENsYXNzbmFtZTogKG9wdGlvbmFsIC0gZm9yIGFkdmFuY2VkIHVzZXIpCisgPHVsPgorICAgIDxsaT5TcGVjaWZ5IFRoZSBjbGFzc25hbWUgb2YgdGhlIFRpbGVzVXRpbCBpbXBsZW1lbnRhdGlvbiB0byB1c2UuIFRoZSBzcGVjaWZpZWQgY2xhc3Mgc2hvdWxkCisJYmUgYSBzdWJjbGFzcyBvZiBUaWxlc1V0aWxTdHJ1dHNJbXBsLiBUaGlzIG9wdGlvbiBkaXNhYmxlIHRoZSBtb2R1bGVBd2FyZSBvcHRpb24uCisJPGJyPlNwZWNpZnlpbmcgIlRpbGVzVXRpbFN0cnV0c0ltcGwiIGlzIGVxdWl2YWxlbnQgdG8gbW9kdWxlQXdhcmUgPSBmYWxzZS48L2JyPgorCTxicj5TcGVjaWZ5aW5nICJUaWxlc1V0aWxTdHJ1dHNNb2R1bGVJbXBsIiBpcyBlcXVpdmFsZW50IHRvIG1vZHVsZUF3YXJlID0gdHJ1ZS48L2JyPgorCVRoaXMgb3B0aW9uIGlzIHRha2VuIGludG8gYWNjb3VudCBvbmx5IG9uY2UsIHdoZW4gaXQgaXMgZmlyc3QgZW5jb3VudGVyZWQuIFRvIGF2b2lkIHByb2JsZW1zLAorCWl0IGlzIGFkdmljZSB0byBzcGVjaWZ5IHRoZSBzYW1lIHZhbHVlcyBpbiBhbGwgVGlsZXNQbHVnaW4gZGVjbGFyYXRpb24uCisgICAgPC9saT4KKyA8L3VsPgorPC9saT4KKworPC91bD4KKyAgICAgICAgPHA+VGhlIFRpbGVzUGx1Z2luIGNsYXNzIGNyZWF0ZXMgb25lIGRlZmluaXRpb24gZmFjdG9yeSBmb3IgZWFjaCBzdHJ1dHMgbW9kdWxlLgorCQk8L3A+CisJCTxwPgorCQlJZiB0aGUgZmxhZyBtb2R1bGVBd2FyZSBpcyBmYWxzZSwgb25seSBvbmUgc2hhcmVkIGZhY3RvcnkgaXMgY3JlYXRlZCBmb3IgYWxsIG1vZHVsZXMuIAorCQlJbiB0aGlzIGxhdGVyIGNhc2UsIHRoZSBmYWN0b3J5IGlzIGluaXRpYWxpemVkIHdpdGggcGFyYW1ldGVycyBmb3VuZCBpbiB0aGUgZmlyc3QgcGx1Z2luLgorCQlUaGUgcGx1Z2lucyBzaG91bGQgYmUgZGVjbGFyZWQgaW4gYWxsIG1vZHVsZXMsIGFuZCB0aGUgbW9kdWxlQXdhcmUgZmxhZyBzaG91bGQgYmUgCisJCXRoZSBzYW1lIGZvciB0aGUgZW50aXJlIGFwcGxpY2F0aW9uLjwvcD4gCisJCTxwPgorICAgICAgICAgIFBhdGhzIGZvdW5kIGluIFRpbGVzIGRlZmluaXRpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgbWFpbiBjb250ZXh0LjwvcD4KKyAgICAgICAgPHA+WW91IGRvbid0IG5lZWQgdG8gc3BlY2lmeSBhIFRpbGVzUmVxdWVzdFByb2Nlc3NvciwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IAorICAgICAgICAgIGRvbmUgYnkgdGhlIHBsdWctaW4uIElmLCBob3dldmVyLCB5b3Ugd2FudCB0byBzcGVjaWZ5IHlvdXIgb3duIFJlcXVlc3RQcm9jZXNzb3IsIAorICAgICAgICAgIGl0IHNob3VsZCBleHRlbmQgdGhlIFRpbGVzUmVxdWVzdFByb2Nlc3Nvci4gVGhlIHBsdWctaW4gY2hlY2tzIHRoaXMgCisgICAgICAgICAgY29uc3RyYWludC48L3A+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InN1YnNlY3Rpb24yIj4KKzxoND5TdHJ1dHMxLjAueDwvaDQ+Cis8cD5Zb3UgbmVlZCB0byB1c2UgYSBzcGVjaWFsIHNlcnZsZXQgZXh0ZW5kaW5nIHRoZSBTdHJ1dHMgc2VydmxldC4gVGhpcyBpcyBzcGVjaWZpZWQgaW4gdGhlIHdlYi54bWwgZmlsZSBvZiB5b3VyIGFwcGxpY2F0aW9uOjwvcD4KKyAgICAgICAgPHByZT4KKyAgJmx0O3NlcnZsZXQmZ3Q7CisgICAgJmx0O3NlcnZsZXQtbmFtZSZndDthY3Rpb24mbHQ7L3NlcnZsZXQtbmFtZSZndDsKKwkmbHQ7c2VydmxldC1jbGFzcyZndDtvcmcuYXBhY2hlLnRpbGVzLkFjdGlvbkNvbXBvbmVudFNlcnZsZXQmbHQ7L3NlcnZsZXQtY2xhc3MmZ3Q7ICAgCisgICAgICAgICZsdDshLS0gVGlsZXMgU2VydmxldCBwYXJhbWV0ZXIgCisJCSAgU3BlY2lmeSBjb25maWd1cmF0aW9uIGZpbGUgbmFtZXMuIFRoZXJlIGNhbiBiZSBzZXZlcmFsIGNvbW1hIAorCQkgIHNlcGFyYXRlZCBmaWxlIG5hbWVzCisJCS0tJmd0OyAJCisJJmx0O2luaXQtcGFyYW0mZ3Q7CisgICAgICAmbHQ7cGFyYW0tbmFtZSZndDtkZWZpbml0aW9ucy1jb25maWcmbHQ7L3BhcmFtLW5hbWUmZ3Q7CisgICAgICAmbHQ7cGFyYW0tdmFsdWUmZ3Q7L1dFQi1JTkYvdGlsZXMtZGVmcy54bWwmbHQ7L3BhcmFtLXZhbHVlJmd0OworICAgICZsdDsvaW5pdC1wYXJhbSZndDsKKyAgICAgICAgJmx0OyEtLSBUaWxlcyBTZXJ2bGV0IHBhcmFtZXRlciAKKwkJU3BlY2lmeSBpZiBYTUwgcGFyc2VyIHNob3VsZCB2YWxpZGF0ZSB0aGUgVGlsZXMgY29uZmlndXJhdGlvbiBmaWxlKHMpLgorCQl0cnVlIDogdmFsaWRhdGUuIERURCBzaG91bGQgYmUgc3BlY2lmaWVkIGluIGZpbGUgaGVhZGVyLgorCQlmYWxzZSA6IG5vIHZhbGlkYXRpb24KKwkJLS0mZ3Q7IAkKKyAgICAmbHQ7aW5pdC1wYXJhbSZndDsKKyAgICAgICZsdDtwYXJhbS1uYW1lJmd0O2RlZmluaXRpb25zLXBhcnNlci12YWxpZGF0ZSZsdDsvcGFyYW0tbmFtZSZndDsKKyAgICAgICZsdDtwYXJhbS12YWx1ZSZndDt0cnVlJmx0Oy9wYXJhbS12YWx1ZSZndDsKKyAgICAmbHQ7L2luaXQtcGFyYW0mZ3Q7CisgICAgIC4uLgorICAmbHQ7L3NlcnZsZXQmZ3Q7Cis8L3ByZT4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic3Vic2VjdGlvbjIiPgorPGg0PldpdGhvdXQgU3RydXRzPC9oND4KKzxwPlRpbGVzIGNhbiBiZSB1c2VkIHdpdGhvdXQgU3RydXRzLiBUbyBpbml0aWFsaXplIHRoZSBkZWZpbml0aW9uIGZhY3RvcnksIHlvdSBjYW4gdXNlIHRoZSBwcm92aWRlZCBzZXJ2bGV0LiBEZWNsYXJlIGl0IGluIHRoZSB3ZWIueG1sIGZpbGUgb2YgeW91ciBhcHBsaWNhdGlvbjo8L3A+Cis8cHJlPgorICAmbHQ7c2VydmxldCZndDsKKyAgICAmbHQ7c2VydmxldC1uYW1lJmd0O2FjdGlvbiZsdDsvc2VydmxldC1uYW1lJmd0OworICAgICZsdDtzZXJ2bGV0LWNsYXNzJmd0O29yZy5hcGFjaGUudGlsZXMuVGlsZXNTZXJ2bGV0Jmx0Oy9zZXJ2bGV0LWNsYXNzJmd0OworCisKKwkmbHQ7aW5pdC1wYXJhbSZndDsKKyAgICAgICZsdDtwYXJhbS1uYW1lJmd0O2RlZmluaXRpb25zLWNvbmZpZyZsdDsvcGFyYW0tbmFtZSZndDsKKyAgICAgICZsdDtwYXJhbS12YWx1ZSZndDsvV0VCLUlORi90aWxlcy1kZWZzLnhtbCZsdDsvcGFyYW0tdmFsdWUmZ3Q7CisgICAgJmx0Oy9pbml0LXBhcmFtJmd0OworICAgICZsdDtpbml0LXBhcmFtJmd0OworICAgICAgJmx0O3BhcmFtLW5hbWUmZ3Q7ZGVmaW5pdGlvbnMtcGFyc2VyLXZhbGlkYXRlJmx0Oy9wYXJhbS1uYW1lJmd0OworICAgICAgJmx0O3BhcmFtLXZhbHVlJmd0O3RydWUmbHQ7L3BhcmFtLXZhbHVlJmd0OworICAgICZsdDsvaW5pdC1wYXJhbSZndDsKKyAgIC4uLgorPC9wcmU+Cis8cD5UaGUgcGFyYW1ldGVycyBhcmUgdGhlIHNhbWUgYXMgZm9yIFN0cnV0czEuMSBvciAxLjAuPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InN1YnNlY3Rpb24xIj4KKzxoMz5EZWZpbml0aW9uIEZpbGUgU3ludGF4PC9oMz4KKzxwPlRoZSBkZWZpbml0aW9uIGZpbGUgc3ludGF4IGNhbiBiZSBmb3VuZCBpbiB0aGUgCis8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9kdGRzL3RpbGVzLWNvbmZpZ18xXzEuZHRkIj50aWxlcy1jb25maWdfMV8xLmR0ZCBmaWxlPC9hPi4gCis8L3A+Cis8cD5Gb2xsb3dpbmcgaXMgYSBzaW1wbGUgZXhhbXBsZTo8L3A+CisgICAgICA8cHJlPgorJmx0OyFET0NUWVBFIHRpbGVzLWRlZmluaXRpb25zIFBVQkxJQworICAgICAgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFRpbGVzIENvbmZpZ3VyYXRpb24vL0VOIgorICAgICAgICJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3N0cnV0cy9kdGRzL3RpbGVzLWNvbmZpZ18xXzEuZHRkIiZndDsKKworJmx0OyEtLSBEZWZpbml0aW9ucyBmb3IgVGlsZXMgZG9jdW1lbnRhdGlvbiAgIC0tJmd0OworJmx0O3RpbGVzLWRlZmluaXRpb25zJmd0OworCisgICZsdDshLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLSZndDsKKyAgJmx0OyEtLSBNYXN0ZXIgZGVmaW5pdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tJmd0OworICAmbHQ7IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0mZ3Q7CisgICZsdDshLS0gTWFpbiBwYWdlIGxheW91dCB1c2VkIGFzIGEgcm9vdCBmb3Igb3RoZXIgcGFnZSBkZWZpbml0aW9ucyAtLSZndDsKKworICAmbHQ7ZGVmaW5pdGlvbiBuYW1lPSJzaXRlLm1haW5MYXlvdXQiIHBhdGg9Ii9sYXlvdXRzL2NsYXNzaWNMYXlvdXQuanNwIiZndDsKKwkgICZsdDtwdXQgbmFtZT0idGl0bGUiICB2YWx1ZT0iVGlsZXMgQmxhbmsgU2l0ZSIgLyZndDsKKwkgICZsdDtwdXQgbmFtZT0iaGVhZGVyIiB2YWx1ZT0iL3RpbGVzL2NvbW1vbi9oZWFkZXIuanNwIiAvJmd0OworCSAgJmx0O3B1dCBuYW1lPSJtZW51IiAgIHZhbHVlPSJzaXRlLm1lbnUuYmFyIiAvJmd0OworCSAgJmx0O3B1dCBuYW1lPSJmb290ZXIiIHZhbHVlPSIvdGlsZXMvY29tbW9uL2Zvb3Rlci5qc3AiIC8mZ3Q7CisJICAmbHQ7cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9Ii90aWxlcy9ib2R5LmpzcCIgLyZndDsKKyAgJmx0Oy9kZWZpbml0aW9uJmd0OworCisgICZsdDshLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLSZndDsKKyAgJmx0OyEtLSBJbmRleCBwYWdlIGRlZmluaXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tJmd0OworICAmbHQ7IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0mZ3Q7CisgICAgJmx0OyEtLSBUaGlzIGRlZmluaXRpb24gaW5oZXJpdHMgZnJvbSB0aGUgbWFpbiBkZWZpbml0aW9uLgorCSAgSXQgb3ZlcmxvYWRzIHRoZSBwYWdlIHRpdGxlIGFuZCB0aGUgYm9keSB1c2VkLgorCSAgVXNlIHRoZSBzYW1lIG1lY2hhbmlzbSB0byBkZWZpbmUgbmV3IHBhZ2VzIHNoYXJpbmcgY29tbW9uIAorCSAgcHJvcGVydGllcyAoaGVyZSBoZWFkZXIsIG1lbnUsIGZvb3RlciwgbGF5b3V0KQorCS0tJmd0OworCisgICZsdDtkZWZpbml0aW9uIG5hbWU9InNpdGUuaW5kZXgucGFnZSIgZXh0ZW5kcz0ic2l0ZS5tYWluTGF5b3V0IiAmZ3Q7CisJICAmbHQ7cHV0IG5hbWU9InRpdGxlIiAgdmFsdWU9IlRpbGVzIEJsYW5rIFNpdGUgSW5kZXgiIC8mZ3Q7CisJICAmbHQ7cHV0IG5hbWU9ImJvZHkiICAgdmFsdWU9Ii90aWxlcy9ib2R5LmpzcCIgLyZndDsKKyAgJmx0Oy9kZWZpbml0aW9uJmd0OworCismbHQ7L3RpbGVzLWRlZmluaXRpb24mZ3Q7Cis8L3ByZT4KKzwvZGl2PgorPGRpdiBjbGFzcz0ic3Vic2VjdGlvbjEiPgorPGgzPkRlYnVnZ2luZzwvaDM+Cis8cD5UbyBkZWJ1ZyBhIHBhZ2UgbWFkZSBvZiBUaWxlcywgeW91IGNhbiB1c2UgZm9sbG93aW5nIGFkdmljZXM6PC9wPgorPHVsPgorICA8bGk+Q2hlY2sgZWFjaCBUaWxlcyBzZXBhcmF0bHkuIFRyeSB0byBhY2Nlc3MgbmVzdGVkIFRpbGVzIGRpcmVjdGx5IHRvIHRlc3QgCisgIGlmIHRoZXMgd29yayBwcm9wZXJseS48L2xpPgorICA8bGk+RW5hYmxlIFRpbGVzIGxvZ2dpbmcuIFNlZSB0aGUgY29tbW9ucy1sb2dnaW5nIHBhY2thZ2UgaGVscC48L2xpPgorPC91bD4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL3NlcnZsZXRzL1RpbGVzU2VydmxldC5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMvc2VydmxldHMvVGlsZXNTZXJ2bGV0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJlZWJmOAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL3NlcnZsZXRzL1RpbGVzU2VydmxldC5qYXZhCkBAIC0wLDAgKzEsMjU1IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiAKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKiAKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKiAKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICoKKyAqICRJZCQKKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGlsZXMuc2VydmxldHM7CisKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS51dGlsLk1hcDsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuKjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuKjsKKworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5sb2dnaW5nLkxldmVsOworaW1wb3J0IGphdmEudXRpbC5sb2dnaW5nLkxvZ2dlcjsKKworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuKjsKKworLyoqCisgKiBUaGlzIGlzIHRoZSBlbnRyeSBwb2ludCBmb3IgVGlsZXMuIFRoZSA8Y29kZT5UaWxlc1NlcnZsZXQ8L2NvZGU+IGluaXRpYWxpemVzCisgKiBUaWxlcyBieSBjcmVhdGluZyBhIGZhY3Rvcnkgb2YgdGlsZSBkZWZpbml0aW9ucy4KKyAqIDxwLz4KKyAqIDxzdHJvbmc+VXNpbmcgdGhlIFRpbGVzIFNlcnZsZXQ8L3N0cm9uZz4KKyAqIDxwLz4KKyAqIEFkZCB0aGlzIHNlcnZsZXQgdG8geW91ciB3ZWIueG1sIGZpbGUsCisgKiBsaWtlIHRoaXM6CisgKiA8cHJlPgorJmx0O3dlYi1hcHAmZ3Q7CisgICAuLi4KKyZsdDtzZXJ2bGV0Jmd0OworICAgJmx0O3NlcnZsZXQtbmFtZSZndDs8c3Ryb25nPlRpbGVzIFNlcnZsZXQ8L3N0cm9uZz4mbHQ7L3NlcnZsZXQtbmFtZSZndDsKKyAgICZsdDtzZXJ2bGV0LWNsYXNzJmd0OzxzdHJvbmc+b3JnLmFwYWNoZS50aWxlcy5zZXJ2bGV0cy5UaWxlc1NlcnZsZXQ8L3N0cm9uZz4mbHQ7L3NlcnZsZXQtY2xhc3MmZ3Q7CisgICAmbHQ7bG9hZC1vbi1zdGFydHVwLyZndDsKKyZsdDsvc2VydmxldCZndDsKKyAgIC4uLgorJmx0Oy93ZWItYXBwJmd0OworICogPC9wcmU+Tm90aWNlIHRoZXJlIGFyZSBubyBtYXBwaW5ncyBmb3IgdGhpcyBzZXJ2bGV0LiBUaGF0J3MgYmVjYXVzZQorICogdGhpcyBzZXJ2bGV0IGRvZXMgZXZlcnl0aGluZyB3aGVuIGl0J3MgbG9hZGVkLiBBZnRlciB0aGF0LCBpdCBkb2VzIG5vdAorICogc2VydmljZSByZXF1ZXN0cy4gVGhpcyBpcyBub3QgYSBmcm9udC1jb250cm9sbGVyIHNlcnZsZXQsIGxpa2UgdGhlIFN0cnV0cyBvciBKU0Ygc2VydmxldHMuPGJyLz48YnIvPgorICogVGlsZXNTZXJ2bGV0IHJlYWRzIHRocm91Z2ggeW91ciBUaWxlcyBjb25maWd1cmF0aW9uIGZpbGUocykgYW5kIHN0b3JlcworICogdGlsZSBkZWZpbml0aW9ucyBpbiBhIGZhY3RvcnkuIFRoYXQgZmFjdG9yeSBpcyBhY2Nlc3NlZCBieSB0aGUgVGlsZXMKKyAqIHRhZyBsaWJyYXJpZXMuIFlvdSBjYW4gc3BlY2lmeSBhIGNvbmZpZ3VyYXRpb24gZmlsZSBsaWtlIHRoaXM6CisgKiA8cC8+CisgKiA8cHJlPiZsdDt3ZWItYXBwJmd0OworICAgLi4uCismbHQ7c2VydmxldCZndDsKKyAgICZsdDtzZXJ2bGV0LW5hbWUmZ3Q7VGlsZXMgU2VydmxldCZsdDsvc2VydmxldC1uYW1lJmd0OworICAgJmx0O3NlcnZsZXQtY2xhc3MmZ3Q7b3JnLmFwYWNoZS50aWxlcy5zZXJ2bGV0cy5UaWxlc1NlcnZsZXQmbHQ7L3NlcnZsZXQtY2xhc3MmZ3Q7CisgICAmbHQ7aW5pdC1wYXJhbSZndDsKKyAgICAgICZsdDtwYXJhbS1uYW1lJmd0OzxzdHJvbmc+ZGVmaW5pdGlvbnMtY29uZmlnPC9zdHJvbmc+Jmx0Oy9wYXJhbS1uYW1lJmd0OworICAgICAgJmx0O3BhcmFtLXZhbHVlJmd0OzxzdHJvbmc+L1dFQi1JTkYvdGlsZXMueG1sPC9zdHJvbmc+Jmx0Oy9wYXJhbS12YWx1ZSZndDsKKyAgICZsdDsvaW5pdC1wYXJhbSZndDsKKyAgICZsdDtsb2FkLW9uLXN0YXJ0dXAvJmd0OworJmx0Oy9zZXJ2bGV0Jmd0OworICAgLi4uCismbHQ7L3dlYi1hcHAmZ3Q7PC9wcmU+Tm90aWNlIHRoYXQgd2UgZGlkbid0IHNwZWNpZnkgYSBjb25maWcgZmlsZSBpbiB0aGUgZmlyc3Qgc2VydmxldAorZGVmaW5pdGlvbi4gSW4gdGhhdCBjYXNlLCBUaWxlcyBhc3N1bWVzIHRoZSBleGlzdGVuY2Ugb2YgYSBmaWxlIG5hbWVkIC9XRUItSU5GL3RpbGVzLnhtbC4gWW91CitjYW4gYWxzbyBkZWZpbmUgbXVsdGlwbGUgY29uZmlndXJhdGlvbiBmaWxlcyBsaWtlIHRoaXM6Cis8cC8+PHByZT4mbHQ7d2ViLWFwcCZndDsKKyAgIC4uLgorJmx0O3NlcnZsZXQmZ3Q7CisgICAmbHQ7c2VydmxldC1uYW1lJmd0O1RpbGVzIFNlcnZsZXQmbHQ7L3NlcnZsZXQtbmFtZSZndDsKKyAgICZsdDtzZXJ2bGV0LWNsYXNzJmd0O29yZy5hcGFjaGUudGlsZXMuc2VydmxldHMuVGlsZXNTZXJ2bGV0Jmx0Oy9zZXJ2bGV0LWNsYXNzJmd0OworICAgJmx0O2luaXQtcGFyYW0mZ3Q7CisgICAgICAmbHQ7cGFyYW0tbmFtZSZndDs8c3Ryb25nPmRlZmluaXRpb25zLWNvbmZpZzwvc3Ryb25nPiZsdDsvcGFyYW0tbmFtZSZndDsKKyAgICAgICZsdDtwYXJhbS12YWx1ZSZndDs8c3Ryb25nPi9XRUItSU5GL3RpbGUtYWRhcHRvcnMueG1sLCAvV0VCLUlORi90aWxlcy54bWw8L3N0cm9uZz4mbHQ7L3BhcmFtLXZhbHVlJmd0OworICAgJmx0Oy9pbml0LXBhcmFtJmd0OworICAgJmx0O2xvYWQtb24tc3RhcnR1cC8mZ3Q7CismbHQ7L3NlcnZsZXQmZ3Q7CisgICAuLi4KKyZsdDsvd2ViLWFwcCZndDs8L3ByZT5IZXJlLCB3ZSd2ZSBzcGVjaWZpZWQgdHdvIGNvbmZpZyBmaWxlcyBmb3IgVGlsZXMgdG8gcHJvY2Vzcy4gQm90aAorICogZmlsZXMgbXVzdCBleGlzdCBhbmQgZWFjaCBjYW4gcmVmZXJlbmNlIGRlZmluaXRpb25zIG1hZGUgaW4gdGhlIG90aGVyLiAKKyAqIDxwLz4KKyAqIDxzdHJvbmc+RXhjZXB0aW9uIEhhbmRsaW5nPC9zdHJvbmc+CisgKiA8cC8+CisgKiBXaGVuIFRpbGVzIHdhcyBidW5kbGVkIHdpdGggU3RydXRzIGl0IHJlbGlhYmx5IHByb2R1Y2VkIHRoZSBzYW1lIGVycm9yIG1lc3NhZ2UgaWYgYW55dGhpbmcKKyAqIHdhcyBhbWlzcyBpbiB5b3VyIFRpbGVzIGNvbmZpZ3VyYXRpb24gZmlsZTogPGk+Q2FuJ3QgZmluZCBkZWZpbml0aW9ucyBjb25maWcgZmlsZS48L2k+CisgKiBTdGFuZGFsb25lIFRpbGVzLCBPVE9ILCB3aWxsIGRpc3BsYXkgZXhwbGljaXQgZXJyb3IgbWVzc2FnZXMsIHN1Y2ggYXMgPGk+RXJyb3Igd2hpbGUgcGFyc2luZyBmaWxlCisgKiAnL1dFQi1JTkYvdGlsZXMueG1sJy4gVGhlIGVsZW1lbnQgdHlwZSAidGlsZXMtZGVmaW5pdGlvbnMiIG11c3QgYmUgdGVybWluYXRlZCBieSB0aGUgbWF0Y2hpbmcgCisgKiBlbmQtdGFnIHRpbGVzLWRlZmluaXRpb25zIi48L2k+IFRoZSBmb2xsb3dpbmcgZXhwbGFpbnMgaG93IGl0IHdvcmtzLgorICogPHAvPgorICogVGhlIFRpbGVzIHNlcnZsZXQgcmVhZHMgeW91ciB0aWxlIGNvbmZpZ3VyYXRpb24gZmlsZShzKSB3aGVuIHRoZSBUaWxlcyBzZXJ2bGV0IGlzIGxvYWRlZC4gSWYgCisgKiBwcm9ibGVtcyBhcmUgZm91bmQgd2l0aCB5b3VyIGNvbmZpZ3VyYXRpb24gZmlsZXMsIHRoZSBUaWxlcyBzZXJ2bGV0IG9mIHllc3RlcnllYXIgd291bGQgCisgKiB0aHJvdyBhIDxjb2RlPkZhY3RvcnlOb3RGb3VuZDwvY29kZT4gZXhjZXB0aW9uIGFuZCBsb2cgdGhlIGVycm9yIG1lc3NhZ2UgdG8gdGhlIHNlcnZsZXQgCisgKiBjb250YWluZXIncyBsb2cuIFN1YnNlcXVlbnRseSwgd2hlbiB0aGUgPGNvZGU+dGlsZXM6aW5zZXJ0PC9jb2RlPiB0YWcgYmxvd3MgdXAgYmVjYXVzZSAKKyAqIHRoZXJlJ3Mgbm8gZGVmaW5pdGlvbiBmYWN0b3J5LCBUaWxlcyB3b3VsZCB0aHJvdyBhbiBleGNlcHRpb24gd2l0aCB0aGUgZmFtaWxpYXIgCisgKiA8aT5DYW50IGZpbmQgZGVmaW5pdGlvbnMgY29uZmlnIGZpbGU8L2k+IG1lc3NhZ2UuIEl0IHdhcyB1cCB0byB5b3UgdG8gZGlnIHRocm91Z2ggCisgKiB0aGUgc2VydmxldCBjb250YWluZXIncyBsb2cgdG8gZmluZCBvdXQgd2hhdCByZWFsbHkgd2VudCB3cm9uZy4KKyAqCisgKiBUaGUgc3RhbmRhbG9uZSBUaWxlcyBzZXJ2bGV0LCBPVE9ILCBwbGFjZXMgdGhlIGV4Y2VwdGlvbidzIG1lc3NhZ2UgaW4gYXBwbGljYXRpb24gc2NvcGUKKyAqIGFuZCByZXRyaWV2ZXMgaXQgd2hlbiB0aWxlczppbnNlcnQgYmxvd3MgdXAuIEl0IHRocm93cyBhbiBleGNlcHRpb24gd2l0aCB0aGUgb3JpZ2luYWwgZXJyb3IgCisgKiBtZXNzYWdlLCB3aGljaCBpcyBzdWJzZXF1ZW50bHkgZGlzcGxheWVkIGluIHRoZSBicm93c2VyLCBzYXZpbmcgeW91IHRoZSB0cm91YmxlIG9mIGxvb2tpbmcKKyAqIGF0IHRoZSBsb2cgZmlsZS4KKyAqIDxwPgorICogQGF1dGhvciBEYXZpZCBHZWFyeQorICovCitwdWJsaWMgY2xhc3MgVGlsZXNTZXJ2bGV0IGV4dGVuZHMgSHR0cFNlcnZsZXQgeworCSAKKworCS8qKgorCSAqIFRoZSBsb2dnZXIgZm9yIHRoaXMgY2xhc3MKKwkqLworICAgcHJvdGVjdGVkIHN0YXRpYyBMb2dnZXIgbG9nZ2VyID0gTG9nZ2VyLmdldExvZ2dlcihUaWxlc1NlcnZsZXQuY2xhc3MuCisJCQkJCQkJCQkJCQkJCQkJCSAgZ2V0TmFtZSgpKTsKKwkgCisKKwkvKioKKwkgKiBUaGUgZGVmYXVsdCBuYW1lIG9mIGEgY29udGV4dCBpbml0IHBhcmFtZXRlciB0aGF0IHNwZWNpZmllcyB0aGUgVGlsZXMgY29uZmlndXJhdGlvbiBmaWxlCisJKi8KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgREVGQVVMVF9DT05GSUdfRklMRV9QQVJBTSA9ICJkZWZpbml0aW9ucy1jb25maWciOworCSAKKworCS8qKgorCSAqIFRoZSBkZWZhdWx0IG5hbWUgb2YgdGhlIFRpbGVzIGNvbmZpZ3VyYXRpb24gZmlsZQorCSovCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIERFRkFVTFRfQ09ORklHX0ZJTEUgPSAiL1dFQi1JTkYvdGlsZXMueG1sIjsKKwkgCisKKwkvKioKKwkgKiBBbiBlcnJvciBtZXNzYWdlIHN0YXRpbmcgdGhhdCBzb21ldGhpbmcgd2VudCB3cm9uZyBkdXJpbmcgaW5pdGlhbGl6YXRpb24KKwkqLworCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBDQU5UX1BPUFVMQVRFX0ZBQ1RPUllfRVJST1IgPSAKKwkJICJDQU4nVCBQT1BVTEFURSBUSUxFUyBERUZJTklUSU9OIEZBQ1RPUlkiOworCSAKKworCS8qKgorCSAqIFRoZSBUaWxlcyBkZWZpbml0aW9uIGZhY3RvcnkKKwkqLworICAgcHJvdGVjdGVkIERlZmluaXRpb25zRmFjdG9yeSBkZWZpbml0aW9uRmFjdG9yeSA9IG51bGw7CisJIAorCisJLyoqCisJICogQSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBmaWxlbmFtZXMgcmVwcmVzZW50aW5nIHRoZSAKKwkgKiBhcHBsaWNhdGlvbidzIFRpbGVzIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisJKi8KKwlwcml2YXRlIFN0cmluZyBjb25maWdGaWxlcyA9IG51bGw7CisJIAorCisJLyoqCisJICogSW5pdGlhbGl6ZXMgdGhlIHNlcnZsZXQgYnkgY3JlYXRpbmcgdGhlIFRpbGVzIGRlZmluaXRpb24KKwkgKiBmYWN0b3J5IGFuZCBwbGFjaW5nIHRoYXQgZmFjdG9yeSBpbiBhcHBsaWNhdGlvbiBzY29wZS4gVGhlCisJICogVGlsZXMgdGFncyB3aWxsIHN1YnNlcXVlbnRseSBhY2Nlc3MgdGhhdCBmYWN0b3J5LgorCSAqCisJICogQHBhcmFtIGNvbmZpZyBUaGUgc2VydmxldCBjb25maWcKKwkgKi8KKwlwdWJsaWMgdm9pZCBpbml0KFNlcnZsZXRDb25maWcgY29uZmlnKSAKKwkJdGhyb3dzIGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbiB7CisJCWxvZ2dlci5pbmZvKCJJbml0aWFsaXppbmcgVGlsZXNTZXJ2bGV0Iik7CisJCWNvbmZpZ0ZpbGVzID0gY29uZmlnLmdldEluaXRQYXJhbWV0ZXIoImRlZmluaXRpb25zLWNvbmZpZyIpOworCisJCXRyeSB7CisJCQkvLyBDcmVhdGUgZmFjdG9yeSBjb25maWcgb2JqZWN0CisJCQlEZWZpbml0aW9uc0ZhY3RvcnlDb25maWcgZmNvbmZpZyA9IHJlYWRGYWN0b3J5Q29uZmlnKCk7CisJCQlmY29uZmlnLnNldE1vZHVsZUF3YXJlKGZhbHNlKTsKKworCQkJU2VydmxldENvbnRleHQgY29udGV4dCA9IGNvbmZpZy5nZXRTZXJ2bGV0Q29udGV4dCgpOworCQkJVGlsZXNVdGlsLnNldFRpbGVzVXRpbChuZXcgVGlsZXNVdGlsU3RydXRzSW1wbCgpKTsKKwkJCWluaXREZWZpbml0aW9uc0ZhY3RvcnkoY29udGV4dCwgZmNvbmZpZyk7CisJCX0KKwkJY2F0Y2goRXhjZXB0aW9uIGV4KSB7CisJCQlzYXZlRXhjZXB0aW9uTWVzc2FnZShjb25maWcsIGV4KTsKKwkJCXRocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKGV4LmdldE1lc3NhZ2UoKSk7CisJCX0KKwl9CisKKworCS8qKgorCSAqIFBvcHVsYXRlcyB0aGUgdGlsZXMgZmFjdG9yeSBjb25maWd1cmF0aW9uLiBJZiBhCisJICogY29udGV4dCBpbml0IHBhcmFtIG5hbWVkIDxpPmRlZmluaXRpb25zLWNvbmZpZzwvaT4KKwkgKiB3YXMgZGVmaW5lZCwgdGhhdCBwYXJhbSdzIHZhbHVlIGlzIGFzc3VtZWQgdG8gYmUKKwkgKiBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGNvbmZpZ3VyYXRpb24gZmlsZSBuYW1lcywKKwkgKiBhbGwgb2Ygd2hpY2ggYXJlIHByb2Nlc3NlZC4gSWYgYSAKKwkgKiA8aT5kZWZpbml0aW9ucy1jb25maWc8L2k+IGNvbnRleHQgcGFyYW0gd2FzIG5vdAorCSAqIHNwZWNpZmllZCwgVGlsZXMgYXNzdW1lcyB0aGF0IHlvdXIgVGlsZXMgZGVmaW5pdGlvbgorCSAqIGZpbGUgaXMgPGNvZGU+L1dFQi1JTkYvdGlsZXMueG1sPC9jb2RlPi4KKwkgKgorCSAqIEBwYXJhbSBjb25maWcgVGhlIHNlcnZsZXQgY29uZmlnCisJICovCisJcHJvdGVjdGVkIERlZmluaXRpb25zRmFjdG9yeUNvbmZpZyByZWFkRmFjdG9yeUNvbmZpZygpIAorCQl0aHJvd3MgU2VydmxldEV4Y2VwdGlvbiB7CisJCURlZmluaXRpb25zRmFjdG9yeUNvbmZpZyBmYWN0b3J5Q29uZmlnID0gbmV3IERlZmluaXRpb25zRmFjdG9yeUNvbmZpZygpOworCQlNYXAgbWFwID0gbmV3IEhhc2hNYXAoKTsKKworCQl0cnkgeworCQkJaWYoY29uZmlnRmlsZXMgIT0gbnVsbCkgeyAKKwkJCQlsb2dnZXIuaW5mbygiQ09ORklHIEZJTEVTIERFRklORUQgSU4gV0VCLlhNTCIpOworCQkJICAgbWFwLnB1dChERUZBVUxUX0NPTkZJR19GSUxFX1BBUkFNLCBjb25maWdGaWxlcyk7CisJCSAgIH0KKwkJCWVsc2UgeworCQkJCWxvZ2dlci5pbmZvKCJDT05GSUcgRklMRVMgV0VSRSBOT1QgREVGSU5FRCBJTiBXRUIuWE1MLCAiICsKKwkJCQkJCSAgICAgICJMT09LSU5HIEZPUiAiICsgREVGQVVMVF9DT05GSUdfRklMRSk7CisJCQkgICBtYXAucHV0KERFRkFVTFRfQ09ORklHX0ZJTEVfUEFSQU0sIERFRkFVTFRfQ09ORklHX0ZJTEUpOworCQkJfQorCisJCQlmYWN0b3J5Q29uZmlnLnBvcHVsYXRlKG1hcCk7CisJCX0gCisJCWNhdGNoIChFeGNlcHRpb24gZXgpIHsKKwkJCXNhdmVFeGNlcHRpb25NZXNzYWdlKGdldFNlcnZsZXRDb25maWcoKSwgZXgpOworCQkgICB0aHJvdyBuZXcgVW5hdmFpbGFibGVFeGNlcHRpb24oQ0FOVF9QT1BVTEFURV9GQUNUT1JZX0VSUk9SICsgZXguZ2V0TWVzc2FnZSgpKTsKKwkJfQorCQlyZXR1cm4gZmFjdG9yeUNvbmZpZzsKKwl9CisKKworCS8qKgorCSAqIEluaXRpYWxpemVzIHRoZSBUaWxlcyBkZWZpbml0aW9ucyBmYWN0b3J5LgorCSAqCisJICogQHBhcmFtIHNlcnZsZXRDb250ZXh0IFRoZSBzZXJ2bGV0IGNvbnRleHQKKwkgKiBAcGFyYW0gZmFjdG9yeUNvbmZpZyBUaGUgZGVmaW5pdGlvbnMgZmFjdG9yeSBjb25maWcKKwkgKi8KKyAgIHByaXZhdGUgdm9pZCBpbml0RGVmaW5pdGlvbnNGYWN0b3J5KFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LAorICAgICAgICAJCQkJCQkJCQkJCURlZmluaXRpb25zRmFjdG9yeUNvbmZpZyBmYWN0b3J5Q29uZmlnKQorICAgICAgICAJCQkJCQkJCQkJCXRocm93cyBTZXJ2bGV0RXhjZXB0aW9uIHsKKwkJbG9nZ2VyLmluZm8oImluaXRpYWxpemluZyBkZWZpbml0aW9ucyBmYWN0b3J5Li4uIik7CisJCS8vIENyZWF0ZSBjb25maWd1cmFibGUgZmFjdG9yeQorCQl0cnkgeworCQkJZGVmaW5pdGlvbkZhY3RvcnkgPSBEZWZpbml0aW9uc1V0aWwuY3JlYXRlRGVmaW5pdGlvbnNGYWN0b3J5KAorCQkJCQkJCQkJCQlzZXJ2bGV0Q29udGV4dCwgZmFjdG9yeUNvbmZpZyk7CisJCX0gY2F0Y2ggKERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBleCkgeworCQkJc2F2ZUV4Y2VwdGlvbk1lc3NhZ2UoZ2V0U2VydmxldENvbmZpZygpLCBleCk7CisJCQl0aHJvdyBuZXcgU2VydmxldEV4Y2VwdGlvbihleC5nZXRNZXNzYWdlKCkpOworCQl9CisJfQorCisKKwkvKioKKwkgKiBTdG9yZXMgdGhlIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIGFueSBleGNlcHRpb24gdGhyb3duIGluIHRoaXMKKwkgKiBzZXJ2bGV0IGluIGFwcGxpY2F0aW9uIHNjb3BlLiBUaWxlcyBsYXRlciBhY2Nlc3NlcyB0aGF0IG1lc3NhZ2UKKwkgKiBpZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIHdoZW4gdGhlIHRpbGVzOmluc2VydCB0YWcgaXMKKwkgKiBhY3RpdmF0ZWQuCisJICoKKwkgKiBAcGFyYW0gc2VydmxldENvbnRleHQgVGhlIHNlcnZsZXQgY29udGV4dAorCSAqIEBwYXJhbSBleCBBbiBleGNlcHRpb24KKwkgKi8KKwlwcml2YXRlIHZvaWQgc2F2ZUV4Y2VwdGlvbk1lc3NhZ2UoU2VydmxldENvbmZpZyBjb25maWcsIEV4Y2VwdGlvbiBleCkgeworCSAgIGxvZ2dlci53YXJuaW5nKCJDYXVnaHQgZXhjZXB0aW9uIHdoZW4gaW5pdGlhbGl6aW5nIGRlZmluaXRpb25zIGZhY3RvcnkiKTsKKwkgICBsb2dnZXIud2FybmluZyhleC5nZXRNZXNzYWdlKCkpOworCSAgIGxvZ2dlci53YXJuaW5nKGV4LnRvU3RyaW5nKCkpOworCSAgIGNvbmZpZy5nZXRTZXJ2bGV0Q29udGV4dCgpLnNldEF0dHJpYnV0ZShHbG9iYWxzLlRJTEVTX0lOSVRfRVhDRVBUSU9OLCBleC5nZXRNZXNzYWdlKCkpOworCX0KK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL3htbERlZmluaXRpb24vRGVmaW5pdGlvbnNGYWN0b3J5LmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0OGY0NjgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy94bWxEZWZpbml0aW9uL0RlZmluaXRpb25zRmFjdG9yeS5qYXZhCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzLnhtbERlZmluaXRpb247CisKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb247CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5EZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uOworCitpbXBvcnQgamF2YS51dGlsLk1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CitpbXBvcnQgamF2YS5pby5TZXJpYWxpemFibGU7CisKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRDb250ZXh0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldFJlcXVlc3Q7CisKKy8qKgorICogQSBmYWN0b3J5IGZvciBkZWZpbml0aW9ucy4KKyAqIFRoaXMgZmFjdG9yeSBhbGxvd3MgdG8gcmV0cmlldmUgZGVmaW5pdGlvbnMgYnkgdGhlaXIga2V5cy4KKyAqLworcHVibGljIGNsYXNzIERlZmluaXRpb25zRmFjdG9yeSBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZQoreworICAgICAvKiogVW5kZXJseWluZyBtYXAgY29udGFpbmluZyBhbGwgZGVmaW5pdGlvbnMuKi8KKyAgIHByb3RlY3RlZCBNYXAgZGVmaW5pdGlvbnM7CisKKyAgIC8qKgorICAgICAqIEdldCBhIGRlZmluaXRpb24gYnkgaXRzIG5hbWUuCisgICAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgZGVmaW5pdGlvbi4KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBTZXJ2bGV0IHJlcXVlc3QuCisgICAgICogQHBhcmFtIHNlcnZsZXRDb250ZXh0IFNlcnZsZXQgY29udGV4dC4KKyAgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBBbiBlcnJvciBvY2N1ciB3aGlsZSBnZXR0aW5nCisgICAgICogZGVmaW5pdGlvbi4KKyAgICAgKiBAdGhyb3dzIE5vU3VjaERlZmluaXRpb25FeGNlcHRpb24gTm8gZGVmaW5pdGlvbiBmb3VuZCBmb3Igc3BlY2lmaWVkIG5hbWUKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBjYW4gdGhyb3cgbW9yZSBhY2N1cmF0ZSBleGNlcHRpb24gYXMgYSBzdWJjbGFzcyBvZiB0aGlzCisgICAgICogZXhjZXB0aW9uLgorICAgICAqLworICAgcHVibGljIENvbXBvbmVudERlZmluaXRpb24gZ2V0RGVmaW5pdGlvbihTdHJpbmcgbmFtZSwgU2VydmxldFJlcXVlc3QgcmVxdWVzdCwgU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQpCisgICAgICAgICAgICAgdGhyb3dzIE5vU3VjaERlZmluaXRpb25FeGNlcHRpb24sIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbgorICAgeworICAgcmV0dXJuIChDb21wb25lbnREZWZpbml0aW9uKWRlZmluaXRpb25zLmdldChuYW1lKTsKKyAgIH0KKworICAvKioKKyAgICogUHV0IGRlZmluaXRpb24gaW4gc2V0LgorICAgKiBAcGFyYW0gZGVmaW5pdGlvbiBEZWZpbml0aW9uIHRvIHB1dC4KKyAgICovCisgIHB1YmxpYyB2b2lkIHB1dERlZmluaXRpb24oQ29tcG9uZW50RGVmaW5pdGlvbiBkZWZpbml0aW9uKQorICB7CisgIGRlZmluaXRpb25zLnB1dCggZGVmaW5pdGlvbi5nZXROYW1lKCksIGRlZmluaXRpb24gKTsKKyAgfQorCisgICAvKioKKyAgICAqIENvbnN0cnVjdG9yLgorICAgICogQ3JlYXRlIGEgZmFjdG9yeSBpbml0aWFsaXplZCB3aXRoIGRlZmluaXRpb25zIGZyb20ge0BsaW5rIFhtbERlZmluaXRpb25zU2V0fS4KKyAgICAqIEBwYXJhbSB4bWxEZWZpbml0aW9ucyBSZXNvbHZlZCBkZWZpbml0aW9uIGZyb20gWG1sRGVmaW5pdGlvblNldC4KKyAgICAqIEB0aHJvd3MgTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbiBJZiBhbiBlcnJvciBvY2N1cnMgd2hpbGUgcmVzb2x2aW5nIGluaGVyaXRhbmNlCisgICAgKi8KKyAgIHB1YmxpYyBEZWZpbml0aW9uc0ZhY3RvcnkoWG1sRGVmaW5pdGlvbnNTZXQgeG1sRGVmaW5pdGlvbnMpCisgICAgdGhyb3dzIE5vU3VjaERlZmluaXRpb25FeGNlcHRpb24KKyAgICB7CisgICAgZGVmaW5pdGlvbnMgPSBuZXcgSGFzaE1hcCgpOworCisgICAgICAvLyBGaXJzdCwgcmVzb2x2ZSBpbmhlcml0YW5jZQorICAgIHhtbERlZmluaXRpb25zLnJlc29sdmVJbmhlcml0YW5jZXMoKTsKKworICAgICAgLy8gV2FsayB0aHJ1IHhtbCBzZXQgYW5kIGNvcHkgZWFjaCBkZWZpbml0aW9ucy4KKyAgICBJdGVyYXRvciBpID0geG1sRGVmaW5pdGlvbnMuZ2V0RGVmaW5pdGlvbnMoKS52YWx1ZXMoKS5pdGVyYXRvcigpOworICAgIHdoaWxlKCBpLmhhc05leHQoKSApCisgICAgICB7CisgICAgICBYbWxEZWZpbml0aW9uIHhtbERlZmluaXRpb24gPSAoWG1sRGVmaW5pdGlvbilpLm5leHQoKTsKKyAgICAgICAgcHV0RGVmaW5pdGlvbiggbmV3IENvbXBvbmVudERlZmluaXRpb24oIHhtbERlZmluaXRpb24pICk7CisgICAgICB9ICAvLyBlbmQgbG9vcAorICAgfQorICAgIC8qKgorICAgICAqIFJldHVybiBTdHJpbmcgcmVwcmVzZW50YXRpb24uCisgICAgICogQHJldHVybiBTdHJpbmcgcmVwcmVzZW50YXRpb24uCisgICAgICovCisgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgIHsKKyAgICByZXR1cm4gZGVmaW5pdGlvbnMudG9TdHJpbmcoKTsKKyAgICB9CisKK30KKwpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy94bWxEZWZpbml0aW9uL0ZhY3RvcnlTZXQuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NGE0YWU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMveG1sRGVmaW5pdGlvbi9GYWN0b3J5U2V0LmphdmEKQEAgLTAsMCArMSwxNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzLnhtbERlZmluaXRpb247CisKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb25zRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb247CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uOworCitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0Q29udGV4dDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworCisvKioKKyAqIENvbXBvbmVudCBEZWZpbml0aW9ucyBmYWN0b3J5LgorICogVGhpcyBmYWN0b3J5IGNvbnRhaW5zIHNldmVyYWwgZmFjdG9yaWVzIGlkZW50aWZpZWQgYnkgYSBrZXkuIFRoZQorICogZ2V0RGVmaW5pdGlvbigpIG1ldGhvZCBmaXJzdCBsb29rcyBmb3IgdGhlIGZhY3Rvcnkga2V5LCByZXRyaWV2ZXMgb3IgY3JlYXRlcyB0aGlzCisgKiBmYWN0b3J5IGFuZCB0aGVuIGNhbGxzIGl0cyBnZXREZWZpbml0aW9uKCkuCisgKi8KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBGYWN0b3J5U2V0IGltcGxlbWVudHMgQ29tcG9uZW50RGVmaW5pdGlvbnNGYWN0b3J5Cit7CisKKyAgICAvKiogTG9hZGVkIGZhY3RvcmllcyAqLworICBwcm90ZWN0ZWQgTWFwIGZhY3Rvcmllcz1udWxsOworCisgIC8qKgorICAgKiBFeHRyYWN0IGtleSB0aGF0IHdpbGwgYmUgdXNlZCB0byBnZXQgdGhlIHN1YiBmYWN0b3J5LgorICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHJlcXVlc3RlZCBkZWZpbml0aW9uLgorICAgKiBAcGFyYW0gcmVxdWVzdCBDdXJyZW50IHNlcnZsZXQgcmVxdWVzdC4KKyAgICogQHBhcmFtIHNlcnZsZXRDb250ZXh0IEN1cnJlbnQgc2VydmxldCBjb250ZXh0LgorICAgKiBAcmV0dXJuIE9iamVjdC4KKyAgICovCisgIGFic3RyYWN0IHByb3RlY3RlZCBPYmplY3QgZ2V0RGVmaW5pdGlvbnNGYWN0b3J5S2V5KFN0cmluZyBuYW1lLCBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCk7CisKKyAgLyoqCisgICAqIEdldCBkZWZhdWx0IGZhY3RvcnkuCisgICAqIEByZXR1cm4gRGVmYXVsdCBmYWN0b3J5LgorICAgKi8KKyAgYWJzdHJhY3QgcHJvdGVjdGVkIERlZmluaXRpb25zRmFjdG9yeSBnZXREZWZhdWx0RmFjdG9yeSgpOworCisgIC8qKgorICAgKiBHZXQgYSBmYWN0b3J5IGJ5IGl0cyBrZXkuCisgICAqIElmIGtleSBpcyA8Y29kZT5udWxsPC9jb2RlPiwgcmV0dXJuIGRlZmF1bHRGYWN0b3J5LgorICAgKiBTZWFyY2ggaW4gbG9hZGVkIGZhY3Rvcmllcy4gSWYgbm90IGZvdW5kLCBjcmVhdGUgZmFjdG9yeSBhbmQgc3RvcmUgcmV0dXJuIHZhbHVlIGluCisgICAqIGxvYWRlZCBmYWN0b3JpZXMuCisgICAqIEBwYXJhbSBrZXkgS2V5IG9mIHJlcXVlc3RlZCBkZWZpbml0aW9uLgorICAgKiBAcGFyYW0gcmVxdWVzdCBDdXJyZW50IHNlcnZsZXQgcmVxdWVzdC4KKyAgICogQHBhcmFtIHNlcnZsZXRDb250ZXh0IEN1cnJlbnQgc2VydmxldCBjb250ZXh0LgorICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBJZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBjcmVhdGluZyBmYWN0b3J5LgorICAgKi8KKyAgcHJvdGVjdGVkIERlZmluaXRpb25zRmFjdG9yeSBnZXRGYWN0b3J5KE9iamVjdCBrZXksIFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0KQorICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24KKyAgeworICBpZihrZXkgPT0gbnVsbCApCisgICAgcmV0dXJuIGdldERlZmF1bHRGYWN0b3J5KCk7CisKKyAgT2JqZWN0IGZhY3RvcnkgPSBmYWN0b3JpZXMuZ2V0KCBrZXkgKTsKKyAgaWYoIGZhY3RvcnkgPT0gbnVsbCApCisgICAgeworICAgICAgLy8gc3luY2hyb25pemUgY3JlYXRpb24gdG8gYXZvaWQgZG91YmxlIGNyZWF0aW9uIGJ5IHNlcGFyYXRlIHRocmVhZHMuCisgICAgICAvLyBBbHNvLCBjaGVjayBpZiBmYWN0b3J5IGhhc24ndCBiZWVuIGNyZWF0ZWQgd2hpbGUgd2FpdGluZyBmb3Igc3luY2hyb25pemVkCisgICAgICAvLyBzZWN0aW9uLgorICAgIHN5bmNocm9uaXplZChmYWN0b3JpZXMpCisgICAgICB7CisgICAgICBmYWN0b3J5ID0gZmFjdG9yaWVzLmdldCgga2V5ICk7CisgICAgICBpZiggZmFjdG9yeSA9PSBudWxsICkKKyAgICAgICAgeworICAgICAgICBmYWN0b3J5ID0gY3JlYXRlRmFjdG9yeSgga2V5LCByZXF1ZXN0LCBzZXJ2bGV0Q29udGV4dCk7CisgICAgICAgIGZhY3Rvcmllcy5wdXQoIGtleSwgZmFjdG9yeSApOworICAgICAgICB9IC8vIGVuZCBpZgorICAgICAgfSAvLyBlbmQgc3luY2hyb25pemVkCisgICAgfSAvLyBlbmQgaWYKKyAgcmV0dXJuIChEZWZpbml0aW9uc0ZhY3RvcnkpZmFjdG9yeTsKKyAgfQorCisgIC8qKgorICAgKiBHZXQgYSBkZWZpbml0aW9uIGJ5IGl0cyBuYW1lLgorICAgKgorICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHJlcXVlc3RlZCBkZWZpbml0aW9uLgorICAgKiBAcGFyYW0gcmVxdWVzdCBDdXJyZW50IHNlcnZsZXQgcmVxdWVzdC4KKyAgICogQHBhcmFtIHNlcnZsZXRDb250ZXh0IEN1cnJlbnQgc2VydmxldCBjb250ZXh0LgorICAgKiBAdGhyb3dzIE5vU3VjaERlZmluaXRpb25FeGNlcHRpb24gTm8gZGVmaW5pdGlvbiBmb3VuZCBmb3Igc3BlY2lmaWVkIG5hbWUKKyAgICogQHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gR2VuZXJhbCBleGNlcHRpb24KKyAgICovCisgIHB1YmxpYyBDb21wb25lbnREZWZpbml0aW9uIGdldERlZmluaXRpb24oU3RyaW5nIG5hbWUsIFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0KQorICAgIHRocm93cyBOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uLCBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24KKyAgeworICBpZiggZmFjdG9yaWVzID09IG51bGwgKQorICAgIHRocm93IG5ldyBGYWN0b3J5Tm90Rm91bmRFeGNlcHRpb24oICJObyBkZWZpbml0aW9ucyBmYWN0b3J5IGRlZmluZWQiICk7CisKKyAgT2JqZWN0IGtleSA9IGdldERlZmluaXRpb25zRmFjdG9yeUtleSggbmFtZSwgcmVxdWVzdCwgc2VydmxldENvbnRleHQpOworICBEZWZpbml0aW9uc0ZhY3RvcnkgZmFjdG9yeSA9IGdldEZhY3RvcnkoIGtleSwgcmVxdWVzdCwgc2VydmxldENvbnRleHQpOworICByZXR1cm4gZmFjdG9yeS5nZXREZWZpbml0aW9uKCBuYW1lLCByZXF1ZXN0LCBzZXJ2bGV0Q29udGV4dCApOworICB9CisKKyAgLyoqCisgICAqIENyZWF0ZSBhIGZhY3RvcnkgZm9yIHNwZWNpZmllZCBrZXkuCisgICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSBnZXRGYWN0b3J5KCkgd2hlbiB0aGUgcmVxdWVzdGVkIGZhY3RvcnkgZG9lc24ndCBhbHJlYWR5IGV4aXN0LgorICAgKiBNdXN0IHJldHVybiBhIGZhY3RvcnksIG9yIGEgZGVmYXVsdCBvbmUuCisgICAqIFJlYWwgaW1wbGVtZW50YXRpb24gbmVlZHMgdG8gcHJvdmlkZSB0aGlzIG1ldGhvZC4KKyAgICogQHBhcmFtIGtleSBLZXkgb2YgcmVxdWVzdGVkIGRlZmluaXRpb24uCisgICAqIEBwYXJhbSByZXF1ZXN0IEN1cnJlbnQgc2VydmxldCByZXF1ZXN0LgorICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQKKyAgICogQHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gSWYgYW4gZXJyb3Igb2NjdXIgd2hpbGUgY3JlYXRpbmcgZmFjdG9yeS4KKyAgICovCisgIGFic3RyYWN0IHByb3RlY3RlZCBEZWZpbml0aW9uc0ZhY3RvcnkgY3JlYXRlRmFjdG9yeShPYmplY3Qga2V5LCBTZXJ2bGV0UmVxdWVzdCByZXF1ZXN0LCBTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgICB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uOworCisgIC8qKgorICAgKiBJbml0IGZhY3Rvcnkgc2V0LgorICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQKKyAgICogQHBhcmFtIHByb3BlcnRpZXMgcHJvcGVydGllcyB1c2VkIHRvIGluaXRpYWxpemVkIGZhY3Rvcnkgc2V0OworICAgKi8KKyAgYWJzdHJhY3QgcHVibGljIHZvaWQgaW5pdEZhY3RvcnkoU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQsIE1hcCBwcm9wZXJ0aWVzKQorICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb247CisKKyAgLyoqCisgICAqIENvbnN0cnVjdG9yLgorICAgKi8KKyAgcHVibGljIEZhY3RvcnlTZXQoKQorICB7CisgIGZhY3RvcmllcyA9IG5ldyBIYXNoTWFwKCk7CisgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBTdHJpbmcgcmVwcmVzZW50YXRpb24uCisgICAgICogQHJldHVybiBTdHJpbmcgcmVwcmVzZW50YXRpb24uCisgICAgICovCisgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgIHsKKyAgICBJdGVyYXRvciBpID0gZmFjdG9yaWVzLnZhbHVlcygpLml0ZXJhdG9yKCk7CisgICAgU3RyaW5nQnVmZmVyIGJ1ZmYgPSBuZXcgU3RyaW5nQnVmZmVyKCAiYWxsIEZhY3RvcnlTZXQncyBmYWN0b3J5IDogXG4iICk7CisgICAgd2hpbGUoIGkuaGFzTmV4dCgpICkKKyAgICAgIHsKKyAgICAgIGJ1ZmYuYXBwZW5kKCBpLm5leHQoKS50b1N0cmluZygpICkuYXBwZW5kKCJcbiIpOworICAgICAgfQorICAgIHJldHVybiBidWZmLnRvU3RyaW5nKCk7CisgICAgfQorCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0LmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy94bWxEZWZpbml0aW9uL0kxOG5GYWN0b3J5U2V0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWJjNWMwMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL3htbERlZmluaXRpb24vSTE4bkZhY3RvcnlTZXQuamF2YQpAQCAtMCwwICsxLDU4NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGlsZXMueG1sRGVmaW5pdGlvbjsKKworaW1wb3J0IGphdmEuaW8uRmlsZU5vdEZvdW5kRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworaW1wb3J0IGphdmEudXRpbC5NYXA7CitpbXBvcnQgamF2YS51dGlsLlN0cmluZ1Rva2VuaXplcjsKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldENvbnRleHQ7CitpbXBvcnQgamF2YXguc2VydmxldC5TZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXRSZXF1ZXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2Vzc2lvbjsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuRGVmaW5pdGlvbnNVdGlsOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUudGFnbGliLnRpbGVzLkNvbXBvbmVudENvbnN0YW50czsKK2ltcG9ydCBvcmcueG1sLnNheC5TQVhFeGNlcHRpb247CisKKy8qKgorICogRGVmaW5pdGlvbnMgZmFjdG9yeS4KKyAqIFRoaXMgaW1wbGVtZW50YXRpb24gYWxsb3dzIHRvIGhhdmUgYSBzZXQgb2YgZGVmaW5pdGlvbiBmYWN0b3JpZXMuCisgKiBUaGVyZSBpcyBhIG1haW4gZmFjdG9yeSBhbmQgb25lIGZhY3RvcnkgZm9yIGVhY2ggZmlsZSBhc3NvY2lhdGVkIHRvIGEgTG9jYWxlLgorICoKKyAqIFRvIHJldHJpZXZlIGEgZGVmaW5pdGlvbiwgd2UgZmlyc3Qgc2VhcmNoIGZvciB0aGUgYXBwcm9wcmlhdGUgZmFjdG9yeSB1c2luZworICogdGhlIExvY2FsZSBmb3VuZCBpbiBzZXNzaW9uIGNvbnRleHQuIElmIG5vIGZhY3RvcnkgaXMgZm91bmQsIHVzZSB0aGUKKyAqIGRlZmF1bHQgb25lLiBUaGVuIHdlIGFzayB0aGUgZmFjdG9yeSBmb3IgdGhlIGRlZmluaXRpb24uCisgKgorICogQSBkZWZpbml0aW9uIGZhY3RvcnkgZmlsZSBpcyBsb2FkZWQgdXNpbmcgbWFpbiBmaWxlbmFtZSBleHRlbmRlZCB3aXRoIGxvY2FsZSBjb2RlCisgKiAoZXggOiA8Y29kZT50ZW1wbGF0ZURlZmluaXRpb25zX2ZyLnhtbDwvY29kZT4pLiBJZiBubyBmaWxlIGlzIGZvdW5kIHVuZGVyIHRoaXMgbmFtZSwgdXNlIGRlZmF1bHQgZmlsZS4KKyAqLworcHVibGljIGNsYXNzIEkxOG5GYWN0b3J5U2V0IGV4dGVuZHMgRmFjdG9yeVNldCB7CisKKyAgICAvKiogCisgICAgICogQ29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLiAKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyhJMThuRmFjdG9yeVNldC5jbGFzcyk7CisKKyAgICAvKiogCisgICAgICogQ29uZmlnIGZpbGUgcGFyYW1ldGVyIG5hbWUuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIERFRklOSVRJT05TX0NPTkZJR19QQVJBTUVURVJfTkFNRSA9CisgICAgICAgICJkZWZpbml0aW9ucy1jb25maWciOworCisgICAgLyoqIAorICAgICAqIENvbmZpZyBmaWxlIHBhcmFtZXRlciBuYW1lLiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQQVJTRVJfREVUQUlMU19QQVJBTUVURVJfTkFNRSA9CisgICAgICAgICJkZWZpbml0aW9ucy1wYXJzZXItZGV0YWlscyI7CisKKyAgICAvKiogCisgICAgICogQ29uZmlnIGZpbGUgcGFyYW1ldGVyIG5hbWUuIAorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBBUlNFUl9WQUxJREFURV9QQVJBTUVURVJfTkFNRSA9CisgICAgICAgICJkZWZpbml0aW9ucy1wYXJzZXItdmFsaWRhdGUiOworCisgICAgLyoqIAorICAgICAqIFBvc3NpYmxlIGRlZmluaXRpb24gZmlsZW5hbWVzLiAKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBERUZBVUxUX0RFRklOSVRJT05fRklMRU5BTUVTW10gPQorICAgICAgICB7CisgICAgICAgICAgICAiL1dFQi1JTkYvdGlsZURlZmluaXRpb25zLnhtbCIsCisgICAgICAgICAgICAiL1dFQi1JTkYvY29tcG9uZW50RGVmaW5pdGlvbnMueG1sIiwKKyAgICAgICAgICAgICIvV0VCLUlORi9pbnN0YW5jZURlZmluaXRpb25zLnhtbCIgfTsKKworICAgIC8qKgorICAgICAqIE1heGltdW0gbGVuZ3RoIG9mIG9uZSBicmFuY2ggb2YgdGhlIHJlc291cmNlIHNlYXJjaCBwYXRoIHRyZWUuCisgICAgICogVXNlZCBpbiBnZXRCdW5kbGUoKS4KKyAgICAgKi8KKyAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0JVTkRMRVNfU0VBUkNIRUQgPSAyOworCisgICAgLyoqIAorICAgICAqIERlZmF1bHQgZmlsZW5hbWVzIGV4dGVuc2lvbi4gCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgRklMRU5BTUVfRVhURU5TSU9OID0gIi54bWwiOworCisgICAgLyoqIAorICAgICAqIERlZmF1bHQgZmFjdG9yeS4gCisgICAgICovCisgICAgcHJvdGVjdGVkIERlZmluaXRpb25zRmFjdG9yeSBkZWZhdWx0RmFjdG9yeSA9IG51bGw7CisKKyAgICAvKiogCisgICAgICogWE1MIHBhcnNlciB1c2VkLgorICAgICAqIEF0dHJpYnV0ZSBpcyB0cmFuc2llbnQgdG8gYWxsb3cgc2VyaWFsaXphdGlvbi4gSW4gdGhpcyBpbXBsZW1lbnRhaXRvbiwKKyAgICAgKiB4bWxQYXJzZXIgaXMgY3JlYXRlZCBlYWNoIHRpbWUgd2UgbmVlZCBpdCA7LSguCisgICAgICovCisgICAgcHJvdGVjdGVkIHRyYW5zaWVudCBYbWxQYXJzZXIgeG1sUGFyc2VyOworCisgICAgLyoqIAorICAgICAqIERvIHdlIHdhbnQgdmFsaWRhdGluZyBwYXJzZXIuIERlZmF1bHQgaXMgPGNvZGU+ZmFsc2U8L2NvZGU+LgorICAgICAqIENhbiBiZSBzZXQgZnJvbSBzZXJ2bGV0IGNvbmZpZyBmaWxlLgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIGlzVmFsaWRhdGluZ1BhcnNlciA9IGZhbHNlOworCisgICAgLyoqIAorICAgICAqIFBhcnNlciBkZXRhaWwgbGV2ZWwuIERlZmF1bHQgaXMgMC4KKyAgICAgKiBDYW4gYmUgc2V0IGZyb20gc2VydmxldCBjb25maWcgZmlsZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgaW50IHBhcnNlckRldGFpbExldmVsID0gMDsKKworICAgIC8qKiAKKyAgICAgKiBOYW1lcyBvZiBmaWxlcyBjb250YWluaW5nIGluc3RhbmNlcyBkZXNjcmlwdGlvbnMuIAorICAgICAqLworICAgIHByaXZhdGUgTGlzdCBmaWxlbmFtZXMgPSBudWxsOworCisgICAgLyoqIAorICAgICAqIENvbGxlY3Rpb24gb2YgYWxyZWFkeSBsb2FkZWQgZGVmaW5pdGlvbnMgc2V0LCByZWZlcmVuY2VkIGJ5IHRoZWlyIHN1ZmZpeC4gCisgICAgICovCisgICAgcHJpdmF0ZSBNYXAgbG9hZGVkID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFBhcmFtZXRlcmxlc3MgQ29uc3RydWN0b3IuCisgICAgICogTWV0aG9kIHtAbGluayAjaW5pdEZhY3Rvcnl9IG11c3QgYmUgY2FsbGVkIHByaW9yIHRvIGFueSB1c2Ugb2YgY3JlYXRlZCBmYWN0b3J5LgorICAgICAqLworICAgIHB1YmxpYyBJMThuRmFjdG9yeVNldCgpIHsKKyAgICAgICAgc3VwZXIoKTsKKwkJICBsb2cuaW5mbygiQ09OU1RSVUNUSU5HIEkxOE5GYWN0b3J5U2V0Iik7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICogSW5pdCB0aGUgZmFjdG9yeSBieSByZWFkaW5nIGFwcHJvcHJpYXRlIGNvbmZpZ3VyYXRpb24gZmlsZS4KKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgU2VydmxldCBjb250ZXh0LgorICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIE1hcCBjb250YWluaW5nIGFsbCBwcm9wZXJ0aWVzLgorICAgICAqIEB0aHJvd3MgRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uIENhbid0IGZpbmQgZmFjdG9yeSBjb25maWd1cmF0aW9uIGZpbGUuCisgICAgICovCisgICAgcHVibGljIEkxOG5GYWN0b3J5U2V0KFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LCBNYXAgcHJvcGVydGllcykKKyAgICAgICAgdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiB7CisKKyAgICAgICAgaW5pdEZhY3Rvcnkoc2VydmxldENvbnRleHQsIHByb3BlcnRpZXMpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemF0aW9uIG1ldGhvZC4KKyAgICAgKiBJbml0IHRoZSBmYWN0b3J5IGJ5IHJlYWRpbmcgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbiBmaWxlLgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBleGFjdGx5IG9uY2UgaW1tZWRpYXRlbHkgYWZ0ZXIgZmFjdG9yeSBjcmVhdGlvbiBpbgorICAgICAqIGNhc2Ugb2YgaW50ZXJuYWwgY3JlYXRpb24gKGJ5IERlZmluaXRpb25VdGlsKS4KKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuCisgICAgICogQHBhcmFtIHByb3BlcnRpZXMgTWFwIG9mIG5hbWUvcHJvcGVydHkgcGFzc2VkIHRvIG5ld2x5IGNyZWF0ZWQgZmFjdG9yeS4gTWFwIGNhbiBjb250YWlucworICAgICAqIG1vcmUgcHJvcGVydGllcyB0aGFuIHJlcXVlc3RlZC4KKyAgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBBbiBlcnJvciBvY2N1ciBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCisgICAgICovCisgICAgcHVibGljIHZvaWQgaW5pdEZhY3RvcnkoU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQsIE1hcCBwcm9wZXJ0aWVzKQorICAgICAgICB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIHsKKworICAgICAgICAvLyBTZXQgc29tZSBwcm9wZXJ0eSB2YWx1ZXMKKyAgICAgICAgU3RyaW5nIHZhbHVlID0gKFN0cmluZykgcHJvcGVydGllcy5nZXQoUEFSU0VSX1ZBTElEQVRFX1BBUkFNRVRFUl9OQU1FKTsKKyAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlzVmFsaWRhdGluZ1BhcnNlciA9IEJvb2xlYW4udmFsdWVPZih2YWx1ZSkuYm9vbGVhblZhbHVlKCk7CisgICAgICAgIH0KKworICAgICAgICB2YWx1ZSA9IChTdHJpbmcpIHByb3BlcnRpZXMuZ2V0KFBBUlNFUl9ERVRBSUxTX1BBUkFNRVRFUl9OQU1FKTsKKyAgICAgICAgaWYgKHZhbHVlICE9IG51bGwpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcGFyc2VyRGV0YWlsTGV2ZWwgPSBJbnRlZ2VyLnZhbHVlT2YodmFsdWUpLmludFZhbHVlKCk7CisKKyAgICAgICAgICAgIH0gY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBleCkgeworICAgICAgICAgICAgICAgIGxvZy5lcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIkJhZCBmb3JtYXQgZm9yIHBhcmFtZXRlciAnIgorICAgICAgICAgICAgICAgICAgICAgICAgKyBQQVJTRVJfREVUQUlMU19QQVJBTUVURVJfTkFNRQorICAgICAgICAgICAgICAgICAgICAgICAgKyAiJy4gSW50ZWdlciBleHBlY3RlZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIGluaXQgZmFjdG9yeSB3aXRoYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbiBmaWxlCisgICAgICAgIC8vIFRyeSB0byB1c2UgcHJvdmlkZWQgZmlsZW5hbWUsIGlmIGFueS4KKyAgICAgICAgLy8gSWYgbm8gZmlsZW5hbWUgYXJlIHByb3ZpZGVkLCB0cnkgdG8gdXNlIGRlZmF1bHQgb25lcy4KKyAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gKFN0cmluZykgcHJvcGVydGllcy5nZXQoREVGSU5JVElPTlNfQ09ORklHX1BBUkFNRVRFUl9OQU1FKTsKKyAgICAgICAgaWYgKGZpbGVuYW1lICE9IG51bGwpIHsgLy8gVXNlIHByb3ZpZGVkIGZpbGVuYW1lCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGluaXRGYWN0b3J5KHNlcnZsZXRDb250ZXh0LCBmaWxlbmFtZSk7CisgICAgICAgICAgICAgICAgaWYgKGxvZy5pc0RlYnVnRW5hYmxlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygiRmFjdG9yeSBpbml0aWFsaXplZCBmcm9tIGZpbGUgJyIgKyBmaWxlbmFtZSArICInLiIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgfSBjYXRjaCAoRmlsZU5vdEZvdW5kRXhjZXB0aW9uIGV4KSB7IC8vIEEgZmlsZW5hbWUgaXMgc3BlY2lmaWVkLCB0aHJvdyBhcHByb3ByaWF0ZSBlcnJvci4KKyAgICAgICAgICAgICAgICBsb2cuZXJyb3IoZXguZ2V0TWVzc2FnZSgpICsgIiA6IENhbid0IGZpbmQgZmlsZSAnIiArIGZpbGVuYW1lICsgIiciKTsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICBleC5nZXRNZXNzYWdlKCkgKyAiIDogQ2FuJ3QgZmluZCBmaWxlICciICsgZmlsZW5hbWUgKyAiJyIpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0gZWxzZSB7IC8vIHRyeSBlYWNoIGRlZmF1bHQgZmlsZSBuYW1lcworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBERUZBVUxUX0RFRklOSVRJT05fRklMRU5BTUVTLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBERUZBVUxUX0RFRklOSVRJT05fRklMRU5BTUVTW2ldOworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGluaXRGYWN0b3J5KHNlcnZsZXRDb250ZXh0LCBmaWxlbmFtZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChsb2cuaXNJbmZvRW5hYmxlZCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsb2cuaW5mbygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFjdG9yeSBpbml0aWFsaXplZCBmcm9tIGZpbGUgJyIgKyBmaWxlbmFtZSArICInLiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoRmlsZU5vdEZvdW5kRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdGhpbmcKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemF0aW9uIG1ldGhvZC4KKyAgICAgKiBJbml0IHRoZSBmYWN0b3J5IGJ5IHJlYWRpbmcgYXBwcm9wcmlhdGUgY29uZmlndXJhdGlvbiBmaWxlLgorICAgICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBleGFjdGx5IG9uY2UgaW1tZWRpYXRlbHkgYWZ0ZXIgZmFjdG9yeSBjcmVhdGlvbiBpbgorICAgICAqIGNhc2Ugb2YgaW50ZXJuYWwgY3JlYXRpb24gKGJ5IERlZmluaXRpb25VdGlsKS4KKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgU2VydmxldCBDb250ZXh0IHBhc3NlZCB0byBuZXdseSBjcmVhdGVkIGZhY3RvcnkuCisgICAgICogQHBhcmFtIHByb3Bvc2VkRmlsZW5hbWUgRmlsZSBuYW1lcywgY29tbWEgc2VwYXJhdGVkLCB0byB1c2UgYXMgIGJhc2UgZmlsZSBuYW1lcy4KKyAgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBBbiBlcnJvciBvY2N1ciBkdXJpbmcgaW5pdGlhbGl6YXRpb24uCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgaW5pdEZhY3RvcnkoCisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LAorICAgICAgICBTdHJpbmcgcHJvcG9zZWRGaWxlbmFtZSkKKyAgICAgICAgdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiwgRmlsZU5vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICAvLyBJbml0IGxpc3Qgb2YgZmlsZW5hbWVzCisgICAgICAgIFN0cmluZ1Rva2VuaXplciB0b2tlbml6ZXIgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHByb3Bvc2VkRmlsZW5hbWUsICIsIik7CisgICAgICAgIHRoaXMuZmlsZW5hbWVzID0gbmV3IEFycmF5TGlzdCh0b2tlbml6ZXIuY291bnRUb2tlbnMoKSk7CisgICAgICAgIHdoaWxlICh0b2tlbml6ZXIuaGFzTW9yZVRva2VucygpKSB7CisgICAgICAgICAgICB0aGlzLmZpbGVuYW1lcy5hZGQodG9rZW5pemVyLm5leHRUb2tlbigpLnRyaW0oKSk7CisgICAgICAgIH0KKworICAgICAgICBsb2FkZWQgPSBuZXcgSGFzaE1hcCgpOworICAgICAgICBkZWZhdWx0RmFjdG9yeSA9IGNyZWF0ZURlZmF1bHRGYWN0b3J5KHNlcnZsZXRDb250ZXh0KTsKKyAgICAgICAgaWYgKGxvZy5pc0RlYnVnRW5hYmxlZCgpKQorICAgICAgICAgICAgbG9nLmRlYnVnKCJkZWZhdWx0IGZhY3Rvcnk6IiArIGRlZmF1bHRGYWN0b3J5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBHZXQgZGVmYXVsdCBmYWN0b3J5LgorICAgICAqIEByZXR1cm4gRGVmYXVsdCBmYWN0b3J5CisgICAgICovCisgICAgcHJvdGVjdGVkIERlZmluaXRpb25zRmFjdG9yeSBnZXREZWZhdWx0RmFjdG9yeSgpIHsKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRGYWN0b3J5OworICAgIH0KKworICAgIC8qKgorICAgICAqIENyZWF0ZSBkZWZhdWx0IGZhY3RvcnkgLgorICAgICAqIENyZWF0ZSBJbnN0YW5jZXNNYXBwZXIgZm9yIHNwZWNpZmllZCBMb2NhbGUuCisgICAgICogSWYgY3JlYXRpb24gZmFpbGVzLCB1c2UgZGVmYXVsdCBtYXBwZXIgYW5kIGxvZyBlcnJvciBtZXNzYWdlLgorICAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBDdXJyZW50IHNlcnZsZXQgY29udGV4dC4gVXNlZCB0byBvcGVuIGZpbGUuCisgICAgICogQHJldHVybiBDcmVhdGVkIGRlZmF1bHQgZGVmaW5pdGlvbiBmYWN0b3J5LgorICAgICAqIEB0aHJvd3MgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uIElmIGFuIGVycm9yIG9jY3VyIHdoaWxlIGNyZWF0aW5nIGZhY3RvcnkuCisgICAgICogQHRocm93cyBGaWxlTm90Rm91bmRFeGNlcHRpb24gaWYgZmFjdG9yeSBjYW4ndCBiZSBsb2FkZWQgZnJvbSBmaWxlbmFtZXMuCisgICAgICovCisgICAgcHJvdGVjdGVkIERlZmluaXRpb25zRmFjdG9yeSBjcmVhdGVEZWZhdWx0RmFjdG9yeShTZXJ2bGV0Q29udGV4dCBzZXJ2bGV0Q29udGV4dCkKKyAgICAgICAgdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiwgRmlsZU5vdEZvdW5kRXhjZXB0aW9uIHsKKworICAgICAgICBYbWxEZWZpbml0aW9uc1NldCByb290WG1sQ29uZmlnID0gcGFyc2VYbWxGaWxlcyhzZXJ2bGV0Q29udGV4dCwgIiIsIG51bGwpOworICAgICAgICBpZiAocm9vdFhtbENvbmZpZyA9PSBudWxsKSB7CisJCQkJbG9nLmluZm8oIkNPVUxETidUIEZJTkQgVEhFIEZJTEUiKTsKKyAgICAgICAgICAgIHRocm93IG5ldyBGaWxlTm90Rm91bmRFeGNlcHRpb24oKTsKKyAgICAgICAgfQorCisgICAgICAgIHJvb3RYbWxDb25maWcucmVzb2x2ZUluaGVyaXRhbmNlcygpOworCisgICAgICAgIGlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkgeworICAgICAgICAgICAgbG9nLmRlYnVnKHJvb3RYbWxDb25maWcpOworICAgICAgICB9CisKKyAgICAgICAgRGVmaW5pdGlvbnNGYWN0b3J5IGZhY3RvcnkgPSBuZXcgRGVmaW5pdGlvbnNGYWN0b3J5KHJvb3RYbWxDb25maWcpOworICAgICAgICBpZiAobG9nLmlzRGVidWdFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIGxvZy5kZWJ1ZygiZmFjdG9yeSBsb2FkZWQgOiAiICsgZmFjdG9yeSk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFjdG9yeTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBFeHRyYWN0IGtleSB0aGF0IHdpbGwgYmUgdXNlZCB0byBnZXQgdGhlIHN1YiBmYWN0b3J5LgorICAgICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgcmVxdWVzdGVkIGRlZmluaXRpb24KKyAgICAgKiBAcGFyYW0gcmVxdWVzdCBDdXJyZW50IHNlcnZsZXQgcmVxdWVzdC4KKyAgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgQ3VycmVudCBzZXJ2bGV0IGNvbnRleHQuCisgICAgICogQHJldHVybiB0aGUga2V5IG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIG5vdCBmb3VuZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgT2JqZWN0IGdldERlZmluaXRpb25zRmFjdG9yeUtleSgKKyAgICAgICAgU3RyaW5nIG5hbWUsCisgICAgICAgIFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0KSB7CisKKyAgICAgICAgTG9jYWxlIGxvY2FsZSA9IG51bGw7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBIdHRwU2Vzc2lvbiBzZXNzaW9uID0gKChIdHRwU2VydmxldFJlcXVlc3QpIHJlcXVlc3QpLmdldFNlc3Npb24oZmFsc2UpOworICAgICAgICAgICAgaWYgKHNlc3Npb24gIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIGxvY2FsZSA9IChMb2NhbGUpIHNlc3Npb24uZ2V0QXR0cmlidXRlKENvbXBvbmVudENvbnN0YW50cy5MT0NBTEVfS0VZKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICB9IGNhdGNoIChDbGFzc0Nhc3RFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGxvZy5lcnJvcigiSTE4bkZhY3RvcnlTZXQuZ2V0RGVmaW5pdGlvbnNGYWN0b3J5S2V5Iik7CisgICAgICAgICAgICBleC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBsb2NhbGU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgZmFjdG9yeSBmb3Igc3BlY2lmaWVkIGtleS4KKyAgICAqIElmIGNyZWF0aW9uIGZhaWxlcywgcmV0dXJuIGRlZmF1bHQgZmFjdG9yeSBhbmQgbG9nIGFuIGVycm9yIG1lc3NhZ2UuCisgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkuCisgICAgKiBAcGFyYW0gcmVxdWVzdCBTZXJ2bGV0IHJlcXVlc3QuCisgICAgKiBAcGFyYW0gc2VydmxldENvbnRleHQgU2VydmxldCBjb250ZXh0LgorICAgICogQHJldHVybiBEZWZpbml0aW9uIGZhY3RvcnkgZm9yIHNwZWNpZmllZCBrZXkuCisgICAgKiBAdGhyb3dzIERlZmluaXRpb25zRmFjdG9yeUV4Y2VwdGlvbiBJZiBhbiBlcnJvciBvY2N1ciB3aGlsZSBjcmVhdGluZyBmYWN0b3J5LgorICAgICAqLworICAgIHByb3RlY3RlZCBEZWZpbml0aW9uc0ZhY3RvcnkgY3JlYXRlRmFjdG9yeSgKKyAgICAgICAgT2JqZWN0IGtleSwKKyAgICAgICAgU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQpCisgICAgICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24geworCisgICAgICAgIGlmIChrZXkgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGdldERlZmF1bHRGYWN0b3J5KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBCdWlsZCBwb3NzaWJsZSBwb3N0Zml4ZXMKKyAgICAgICAgTGlzdCBwb3NzaWJsZVBvc3RmaXhlcyA9IGNhbGN1bGF0ZVBvc3RpeGVzKCIiLCAoTG9jYWxlKSBrZXkpOworCisgICAgICAgIC8vIFNlYXJjaCBsYXN0IHBvc3RpeCBjb3JyZXNwb25kaW5nIHRvIGEgY29uZmlnIGZpbGUgdG8gbG9hZC4KKyAgICAgICAgLy8gRmlyc3QgY2hlY2sgaWYgc29tZXRoaW5nIGlzIGxvYWRlZCBmb3IgdGhpcyBwb3N0Zml4LgorICAgICAgICAvLyBJZiBub3QsIHRyeSB0byBsb2FkIGl0cyBjb25maWcuCisgICAgICAgIFhtbERlZmluaXRpb25zU2V0IGxhc3RYbWxGaWxlID0gbnVsbDsKKyAgICAgICAgRGVmaW5pdGlvbnNGYWN0b3J5IGZhY3RvcnkgPSBudWxsOworICAgICAgICBTdHJpbmcgY3VyUG9zdGZpeCA9IG51bGw7CisgICAgICAgIGludCBpID0gMDsKKworICAgICAgICBmb3IgKGkgPSBwb3NzaWJsZVBvc3RmaXhlcy5zaXplKCkgLSAxOyBpID49IDA7IGktLSkgeworICAgICAgICAgICAgY3VyUG9zdGZpeCA9IChTdHJpbmcpIHBvc3NpYmxlUG9zdGZpeGVzLmdldChpKTsKKworICAgICAgICAgICAgLy8gQWxyZWFkeSBsb2FkZWQgPworICAgICAgICAgICAgZmFjdG9yeSA9IChEZWZpbml0aW9uc0ZhY3RvcnkpIGxvYWRlZC5nZXQoY3VyUG9zdGZpeCk7CisgICAgICAgICAgICBpZiAoZmFjdG9yeSAhPSBudWxsKSB7IC8vIHllcywgc3RvcCBzZWFyY2gKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFjdG9yeTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gVHJ5IHRvIGxvYWQgaXQuIElmIHN1Y2Nlc3MsIHN0b3Agc2VhcmNoCisgICAgICAgICAgICBsYXN0WG1sRmlsZSA9IHBhcnNlWG1sRmlsZXMoc2VydmxldENvbnRleHQsIGN1clBvc3RmaXgsIG51bGwpOworICAgICAgICAgICAgaWYgKGxhc3RYbWxGaWxlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEhhdmUgd2UgZm91bmQgYSBkZXNjcmlwdGlvbiBmaWxlID8KKyAgICAgICAgLy8gSWYgbm8sIHJldHVybiBkZWZhdWx0IG9uZQorICAgICAgICBpZiAobGFzdFhtbEZpbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGdldERlZmF1bHRGYWN0b3J5KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBXZSBmb3VuZCBzb21ldGhpbmcuIE5lZWQgdG8gbG9hZCBiYXNlIGFuZCBpbnRlcm1lZGlhdGUgZmlsZXMKKyAgICAgICAgU3RyaW5nIGxhc3RQb3N0Zml4ID0gY3VyUG9zdGZpeDsKKyAgICAgICAgWG1sRGVmaW5pdGlvbnNTZXQgcm9vdFhtbENvbmZpZyA9IHBhcnNlWG1sRmlsZXMoc2VydmxldENvbnRleHQsICIiLCBudWxsKTsKKyAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBpOyBqKyspIHsKKyAgICAgICAgICAgIGN1clBvc3RmaXggPSAoU3RyaW5nKSBwb3NzaWJsZVBvc3RmaXhlcy5nZXQoaik7CisgICAgICAgICAgICBwYXJzZVhtbEZpbGVzKHNlcnZsZXRDb250ZXh0LCBjdXJQb3N0Zml4LCByb290WG1sQ29uZmlnKTsKKyAgICAgICAgfQorCisgICAgICAgIHJvb3RYbWxDb25maWcuZXh0ZW5kKGxhc3RYbWxGaWxlKTsKKyAgICAgICAgcm9vdFhtbENvbmZpZy5yZXNvbHZlSW5oZXJpdGFuY2VzKCk7CisKKyAgICAgICAgZmFjdG9yeSA9IG5ldyBEZWZpbml0aW9uc0ZhY3Rvcnkocm9vdFhtbENvbmZpZyk7CisgICAgICAgIGxvYWRlZC5wdXQobGFzdFBvc3RmaXgsIGZhY3RvcnkpOworCisgICAgICAgIGlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkgeworICAgICAgICAgICAgbG9nLmRlYnVnKCJmYWN0b3J5IGxvYWRlZCA6ICIgKyBmYWN0b3J5KTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIHJldHVybiBsYXN0IGF2YWlsYWJsZSBmb3VuZCAhCisgICAgICAgIHJldHVybiBmYWN0b3J5OworICAgIH0KKworICAgIC8qKgorICAgICAqIENhbGN1bGF0ZSB0aGUgcG9zdGl4ZXMgYWxvbmcgdGhlIHNlYXJjaCBwYXRoIGZyb20gdGhlIGJhc2UgYnVuZGxlIHRvIHRoZQorICAgICAqIGJ1bmRsZSBzcGVjaWZpZWQgYnkgYmFzZU5hbWUgYW5kIGxvY2FsZS4KKyAgICAgKiBNZXRob2QgY29waWVkIGZyb20gamF2YS51dGlsLlJlc291cmNlQnVuZGxlCisgICAgICogQHBhcmFtIGJhc2VOYW1lIHRoZSBiYXNlIGJ1bmRsZSBuYW1lCisgICAgICogQHBhcmFtIGxvY2FsZSB0aGUgbG9jYWxlCisgICAgICovCisgICAgcHJpdmF0ZSBzdGF0aWMgTGlzdCBjYWxjdWxhdGVQb3N0aXhlcyhTdHJpbmcgYmFzZU5hbWUsIExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgZmluYWwgTGlzdCByZXN1bHQgPSBuZXcgQXJyYXlMaXN0KE1BWF9CVU5ETEVTX1NFQVJDSEVEKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIGxhbmd1YWdlID0gbG9jYWxlLmdldExhbmd1YWdlKCk7CisgICAgICAgIGZpbmFsIGludCBsYW5ndWFnZUxlbmd0aCA9IGxhbmd1YWdlLmxlbmd0aCgpOworICAgICAgICBmaW5hbCBTdHJpbmcgY291bnRyeSA9IGxvY2FsZS5nZXRDb3VudHJ5KCk7CisgICAgICAgIGZpbmFsIGludCBjb3VudHJ5TGVuZ3RoID0gY291bnRyeS5sZW5ndGgoKTsKKyAgICAgICAgZmluYWwgU3RyaW5nIHZhcmlhbnQgPSBsb2NhbGUuZ2V0VmFyaWFudCgpOworICAgICAgICBmaW5hbCBpbnQgdmFyaWFudExlbmd0aCA9IHZhcmlhbnQubGVuZ3RoKCk7CisKKyAgICAgICAgaWYgKGxhbmd1YWdlTGVuZ3RoICsgY291bnRyeUxlbmd0aCArIHZhcmlhbnRMZW5ndGggPT0gMCkgeworICAgICAgICAgICAgLy9UaGUgbG9jYWxlIGlzICIiLCAiIiwgIiIuCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgZmluYWwgU3RyaW5nQnVmZmVyIHRlbXAgPSBuZXcgU3RyaW5nQnVmZmVyKGJhc2VOYW1lKTsKKyAgICAgICAgdGVtcC5hcHBlbmQoJ18nKTsKKyAgICAgICAgdGVtcC5hcHBlbmQobGFuZ3VhZ2UpOworCisgICAgICAgIGlmIChsYW5ndWFnZUxlbmd0aCA+IDApCisgICAgICAgICAgICByZXN1bHQuYWRkKHRlbXAudG9TdHJpbmcoKSk7CisKKyAgICAgICAgaWYgKGNvdW50cnlMZW5ndGggKyB2YXJpYW50TGVuZ3RoID09IDApCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworCisgICAgICAgIHRlbXAuYXBwZW5kKCdfJyk7CisgICAgICAgIHRlbXAuYXBwZW5kKGNvdW50cnkpOworCisgICAgICAgIGlmIChjb3VudHJ5TGVuZ3RoID4gMCkKKyAgICAgICAgICAgIHJlc3VsdC5hZGQodGVtcC50b1N0cmluZygpKTsKKworICAgICAgICBpZiAodmFyaWFudExlbmd0aCA9PSAwKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVtcC5hcHBlbmQoJ18nKTsKKyAgICAgICAgICAgIHRlbXAuYXBwZW5kKHZhcmlhbnQpOworICAgICAgICAgICAgcmVzdWx0LmFkZCh0ZW1wLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qKgorICAgICAqIFBhcnNlIGZpbGVzIGFzc29jaWF0ZWQgdG8gcG9zdGl4IGlmIHRoZXkgZXhpc3QuCisgICAgICogRm9yIGVhY2ggbmFtZSBpbiBmaWxlbmFtZXMsIGFwcGVuZCBwb3N0Zml4IGJlZm9yZSBmaWxlIGV4dGVuc2lvbiwKKyAgICAgKiB0aGVuIHRyeSB0byBsb2FkIHRoZSBjb3JyZXNwb25kaW5nIGZpbGUuCisgICAgICogSWYgZmlsZSBkb2Vzbid0IGV4aXN0LCB0cnkgbmV4dCBvbmUuIEVhY2ggZmlsZSBkZXNjcmlwdGlvbiBpcyBhZGRlZCB0bworICAgICAqIHRoZSBYbWxEZWZpbml0aW9uc1NldCBkZXNjcmlwdGlvbi4KKyAgICAgKiBUaGUgWG1sRGVmaW5pdGlvbnNTZXQgZGVzY3JpcHRpb24gaXMgY3JlYXRlZCBvbmx5IGlmIHRoZXJlIGlzIGEgZGVmaW5pdGlvbiBmaWxlLgorICAgICAqIEluaGVyaXRhbmNlIGlzIG5vdCByZXNvbHZlZCBpbiB0aGUgcmV0dXJuZWQgWG1sRGVmaW5pdGlvbnNTZXQuCisgICAgICogSWYgbm8gZGVzY3JpcHRpb24gZmlsZSBjYW4gYmUgb3BlbmVkIGFuZCBubyBkZWZpbmlpb24gc2V0IGlzIHByb3ZpZGVkLCByZXR1cm4gPGNvZGU+bnVsbDwvY29kZT4uCisgICAgICogQHBhcmFtIHBvc3RmaXggUG9zdGZpeCB0byBhZGQgdG8gZWFjaCBkZXNjcmlwdGlvbiBmaWxlLgorICAgICAqIEBwYXJhbSB4bWxEZWZpbml0aW9ucyBEZWZpbml0aW9ucyBzZXQgdG8gd2hpY2ggZGVmaW5pdGlvbnMgd2lsbCBiZSBhZGRlZC4gSWYgPGNvZGU+bnVsbDwvY29kZT4sIGEgZGVmaW5pdGlvbnMKKyAgICAgKiBzZXQgaXMgY3JlYXRlZCBvbiByZXF1ZXN0LgorICAgICAqIEByZXR1cm4gWG1sRGVmaW5pdGlvbnNTZXQgVGhlIGRlZmluaXRpb25zIHNldCBjcmVhdGVkIG9yIHBhc3NlZCBhcyBwYXJhbWV0ZXIuCisgICAgICogQHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gT24gZXJyb3JzIHBhcnNpbmcgZmlsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFhtbERlZmluaXRpb25zU2V0IHBhcnNlWG1sRmlsZXMoCisgICAgICAgIFNlcnZsZXRDb250ZXh0IHNlcnZsZXRDb250ZXh0LAorICAgICAgICBTdHJpbmcgcG9zdGZpeCwKKyAgICAgICAgWG1sRGVmaW5pdGlvbnNTZXQgeG1sRGVmaW5pdGlvbnMpCisgICAgICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24geworCisgICAgICAgIGlmIChwb3N0Zml4ICE9IG51bGwgJiYgcG9zdGZpeC5sZW5ndGgoKSA9PSAwKSB7CisgICAgICAgICAgICBwb3N0Zml4ID0gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEl0ZXJhdGUgdGhyb3cgZWFjaCBmaWxlIG5hbWUgaW4gbGlzdAorICAgICAgICBJdGVyYXRvciBpID0gZmlsZW5hbWVzLml0ZXJhdG9yKCk7CisgICAgICAgIHdoaWxlIChpLmhhc05leHQoKSkgeworICAgICAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gY29uY2F0UG9zdGZpeCgoU3RyaW5nKSBpLm5leHQoKSwgcG9zdGZpeCk7CisgICAgICAgICAgICB4bWxEZWZpbml0aW9ucyA9IHBhcnNlWG1sRmlsZShzZXJ2bGV0Q29udGV4dCwgZmlsZW5hbWUsIHhtbERlZmluaXRpb25zKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB4bWxEZWZpbml0aW9uczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBQYXJzZSBzcGVjaWZpZWQgeG1sIGZpbGUgYW5kIGFkZCBkZWZpbml0aW9uIHRvIHNwZWNpZmllZCBkZWZpbml0aW9ucyBzZXQuCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBsb2FkIHNldmVyYWwgZGVzY3JpcHRpb24gZmlsZXMgaW4gb25lIGluc3RhbmNlcyBsaXN0LgorICAgICAqIElmIGZpbGVuYW1lIGV4aXN0cyBhbmQgZGVmaW5pdGlvbiBzZXQgaXMgPGNvZGU+bnVsbDwvY29kZT4sIGNyZWF0ZSBhIG5ldyBzZXQuIE90aGVyd2lzZSwgcmV0dXJuCisgICAgICogcGFzc2VkIGRlZmluaXRpb24gc2V0IChjYW4gYmUgPGNvZGU+bnVsbDwvY29kZT4pLgorICAgICAqIEBwYXJhbSBzZXJ2bGV0Q29udGV4dCBDdXJyZW50IHNlcnZsZXQgY29udGV4dC4gVXNlZCB0byBvcGVuIGZpbGUuCisgICAgICogQHBhcmFtIGZpbGVuYW1lIE5hbWUgb2YgZmlsZSB0byBwYXJzZS4KKyAgICAgKiBAcGFyYW0geG1sRGVmaW5pdGlvbnMgRGVmaW5pdGlvbnMgc2V0IHRvIHdoaWNoIGRlZmluaXRpb25zIHdpbGwgYmUgYWRkZWQuIElmIG51bGwsIGEgZGVmaW5pdGlvbnMKKyAgICAgKiBzZXQgaXMgY3JlYXRlZCBvbiByZXF1ZXN0LgorICAgICAqIEByZXR1cm4gWG1sRGVmaW5pdGlvbnNTZXQgVGhlIGRlZmluaXRpb25zIHNldCBjcmVhdGVkIG9yIHBhc3NlZCBhcyBwYXJhbWV0ZXIuCisgICAgICogQHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24gT24gZXJyb3JzIHBhcnNpbmcgZmlsZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFhtbERlZmluaXRpb25zU2V0IHBhcnNlWG1sRmlsZSgKKyAgICAgICAgU2VydmxldENvbnRleHQgc2VydmxldENvbnRleHQsCisgICAgICAgIFN0cmluZyBmaWxlbmFtZSwKKyAgICAgICAgWG1sRGVmaW5pdGlvbnNTZXQgeG1sRGVmaW5pdGlvbnMpCisgICAgICAgIHRocm93cyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24geworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBJbnB1dFN0cmVhbSBpbnB1dCA9IHNlcnZsZXRDb250ZXh0LmdldFJlc291cmNlQXNTdHJlYW0oZmlsZW5hbWUpOworICAgICAgICAgICAgLy8gVHJ5IHRvIGxvYWQgdXNpbmcgcmVhbCBwYXRoLgorICAgICAgICAgICAgLy8gVGhpcyBhbGxvdyB0byBsb2FkIGNvbmZpZyBmaWxlIHVuZGVyIHdlYnNwaGVyZSAzLjUueAorICAgICAgICAgICAgLy8gUGF0Y2ggcHJvcG9zZWQgSG91c3RvbiwgU3RlcGhlbiAoTElUKSBvbiA1IEFwciAyMDAyCisgICAgICAgICAgICBpZiAobnVsbCA9PSBpbnB1dCkgeworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGlucHV0ID0KKyAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2bGV0Q29udGV4dC5nZXRSZWFsUGF0aChmaWxlbmFtZSkpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBJZiBzdGlsbCBub3RoaW5nIGZvdW5kLCB0aGlzIG1lYW4gbm8gY29uZmlnIGZpbGUgaXMgYXNzb2NpYXRlZAorICAgICAgICAgICAgaWYgKGlucHV0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAobG9nLmlzRGVidWdFbmFibGVkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLmRlYnVnKCJDYW4ndCBvcGVuIGZpbGUgJyIgKyBmaWxlbmFtZSArICInIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybiB4bWxEZWZpbml0aW9uczsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ2hlY2sgaWYgcGFyc2VyIGFscmVhZHkgZXhpc3QuCisgICAgICAgICAgICAvLyBEb2Vzbid0IHNlZW0gdG8gd29yayB5ZXQuCisgICAgICAgICAgICAvL2lmKCB4bWxQYXJzZXIgPT0gbnVsbCApCisgICAgICAgICAgICBpZiAodHJ1ZSkgeworICAgICAgICAgICAgICAgIHhtbFBhcnNlciA9IG5ldyBYbWxQYXJzZXIoKTsKKyAgICAgICAgICAgICAgICB4bWxQYXJzZXIuc2V0VmFsaWRhdGluZyhpc1ZhbGlkYXRpbmdQYXJzZXIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBDaGVjayBpZiBkZWZpbml0aW9uIHNldCBhbHJlYWR5IGV4aXN0LgorICAgICAgICAgICAgaWYgKHhtbERlZmluaXRpb25zID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICB4bWxEZWZpbml0aW9ucyA9IG5ldyBYbWxEZWZpbml0aW9uc1NldCgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB4bWxQYXJzZXIucGFyc2UoaW5wdXQsIHhtbERlZmluaXRpb25zKTsKKworICAgICAgICB9IGNhdGNoIChTQVhFeGNlcHRpb24gZXgpIHsKKyAgICAgICAgICAgIGlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkgeworICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygiRXJyb3Igd2hpbGUgcGFyc2luZyBmaWxlICciICsgZmlsZW5hbWUgKyAiJy4iKTsKKyAgICAgICAgICAgICAgICBleC5wcmludFN0YWNrVHJhY2UoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocm93IG5ldyBEZWZpbml0aW9uc0ZhY3RvcnlFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIkVycm9yIHdoaWxlIHBhcnNpbmcgZmlsZSAnIiArIGZpbGVuYW1lICsgIicuICIgKyBleC5nZXRNZXNzYWdlKCksCisgICAgICAgICAgICAgICAgZXgpOworCisgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGV4KSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRGVmaW5pdGlvbnNGYWN0b3J5RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJJTyBFcnJvciB3aGlsZSBwYXJzaW5nIGZpbGUgJyIgKyBmaWxlbmFtZSArICInLiAiICsgZXguZ2V0TWVzc2FnZSgpLAorICAgICAgICAgICAgICAgIGV4KTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB4bWxEZWZpbml0aW9uczsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25jYXQgcG9zdGZpeCB0byB0aGUgbmFtZS4gVGFrZSBjYXJlIG9mIGV4aXN0aW5nIGZpbGVuYW1lIGV4dGVuc2lvbi4KKyAgICAgKiBUcmFuc2Zvcm0gdGhlIGdpdmVuIG5hbWUgIm5hbWUuZXh0IiB0byBoYXZlICJuYW1lIiArICJwb3N0Zml4IiArICJleHQiLgorICAgICAqIElmIHRoZXJlIGlzIG5vIGV4dCwgcmV0dXJuICJuYW1lIiArICJwb3N0Zml4Ii4KKyAgICAgKiBAcGFyYW0gbmFtZSBGaWxlbmFtZS4KKyAgICAgKiBAcGFyYW0gcG9zdGZpeCBQb3N0Zml4IHRvIGFkZC4KKyAgICAgKiBAcmV0dXJuIENvbmNhdGVuYXRlZCBmaWxlbmFtZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBjb25jYXRQb3N0Zml4KFN0cmluZyBuYW1lLCBTdHJpbmcgcG9zdGZpeCkgeworICAgICAgICBpZiAocG9zdGZpeCA9PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gbmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFNlYXJjaCBmaWxlIG5hbWUgZXh0ZW5zaW9uLgorICAgICAgICAvLyB0YWtlIGNhcmUgb2YgVW5peCBmaWxlcyBzdGFydGluZyB3aXRoIC4KKyAgICAgICAgaW50IGRvdEluZGV4ID0gbmFtZS5sYXN0SW5kZXhPZigiLiIpOworICAgICAgICBpbnQgbGFzdE5hbWVTdGFydCA9IG5hbWUubGFzdEluZGV4T2YoamF2YS5pby5GaWxlLnBhdGhTZXBhcmF0b3IpOworICAgICAgICBpZiAoZG90SW5kZXggPCAxIHx8IGRvdEluZGV4IDwgbGFzdE5hbWVTdGFydCkgeworICAgICAgICAgICAgcmV0dXJuIG5hbWUgKyBwb3N0Zml4OworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIGV4dCA9IG5hbWUuc3Vic3RyaW5nKGRvdEluZGV4KTsKKyAgICAgICAgbmFtZSA9IG5hbWUuc3Vic3RyaW5nKDAsIGRvdEluZGV4KTsKKyAgICAgICAgcmV0dXJuIG5hbWUgKyBwb3N0Zml4ICsgZXh0OworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybiBTdHJpbmcgcmVwcmVzZW50YXRpb24uCisgICAgICogQHJldHVybiBTdHJpbmcgcmVwcmVzZW50YXRpb24uCisgICAgICovCisgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKKyAgICAgICAgU3RyaW5nQnVmZmVyIGJ1ZmYgPSBuZXcgU3RyaW5nQnVmZmVyKCJJMThuRmFjdG9yeVNldCA6IFxuIik7CisgICAgICAgIGJ1ZmYuYXBwZW5kKCItLS0gZGVmYXVsdCBmYWN0b3J5IC0tLVxuIik7CisgICAgICAgIGJ1ZmYuYXBwZW5kKGRlZmF1bHRGYWN0b3J5LnRvU3RyaW5nKCkpOworICAgICAgICBidWZmLmFwcGVuZCgiXG4tLS0gb3RoZXIgZmFjdG9yaWVzIC0tLVxuIik7CisgICAgICAgIEl0ZXJhdG9yIGkgPSBmYWN0b3JpZXMudmFsdWVzKCkuaXRlcmF0b3IoKTsKKyAgICAgICAgd2hpbGUgKGkuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICBidWZmLmFwcGVuZChpLm5leHQoKS50b1N0cmluZygpKS5hcHBlbmQoIi0tLS0tLS0tLS0gXG4iKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYnVmZi50b1N0cmluZygpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxBdHRyaWJ1dGUuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTIxZmUzNQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL3htbERlZmluaXRpb24vWG1sQXR0cmlidXRlLmphdmEKQEAgLTAsMCArMSwyMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzLnhtbERlZmluaXRpb247CisKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkRlZmluaXRpb25OYW1lQXR0cmlidXRlOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuRGlyZWN0U3RyaW5nQXR0cmlidXRlOworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuUGF0aEF0dHJpYnV0ZTsKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLlVudHlwZWRBdHRyaWJ1dGU7CisKKy8qKgorICogQSBwcm9wZXJ0eSBrZXktdmFsdWUgcGFpci4gIFRoaXMgY2xhc3MgaXMgdXNlZCB0byByZWFkIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisgKi8KK3B1YmxpYyBjbGFzcyBYbWxBdHRyaWJ1dGUgeworCisgICAgLyoqCisgICAgICogQXR0cmlidXRlIG5hbWUgb3Iga2V5LgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIG5hbWUgPSBudWxsOworCisgICAgLyoqCisgICAgICogQXR0cmlidXRlIHZhbHVlLgorICAgICAqIFZhbHVlIHJlYWQgZnJvbSBkZXNjcmlwdGlvbiBmaWxlLgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0IHZhbHVlID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZSB2YWx1ZS4KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBkaXJlY3QgPSBudWxsOworCisgICAgLyoqCisgICAgICogQXR0cmlidXRlIHZhbHVlLgorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHZhbHVlVHlwZSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBBdHRyaWJ1dGUgdmFsdWUuCisgICAgICovCisgICAgcHJpdmF0ZSBTdHJpbmcgcm9sZSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBSZWFsIGF0dHJpYnV0ZSB2YWx1ZS4KKyAgICAgKiBSZWFsIHZhbHVlIGlzIHRoZSB2YWx1ZSBhZnRlciBwcm9jZXNzaW5nIG9mIHZhbHVlVHlwZS4KKyAgICAgKiBJLmUuIGlmIGEgdHlwZSBpcyBkZWZpbmVkLCByZWFsVmFsdWUgY29udGFpbnMgd3JhcHBlciBmb3IgdGhpcyB0eXBlLgorICAgICAqLworICAgIHByaXZhdGUgT2JqZWN0IHJlYWxWYWx1ZSA9IG51bGw7CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgKi8KKyAgICBwdWJsaWMgWG1sQXR0cmlidXRlKCkgeworICAgICAgICBzdXBlcigpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLgorICAgICAqLworICAgIHB1YmxpYyBYbWxBdHRyaWJ1dGUoU3RyaW5nIG5hbWUsIE9iamVjdCB2YWx1ZSkgeworICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWNjZXNzIG1ldGhvZCBmb3IgdGhlIG5hbWUgcHJvcGVydHkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5LgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpIHsKKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIG5hbWUgcHJvcGVydHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYU5hbWUgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgbmFtZSBwcm9wZXJ0eQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJvbGUoU3RyaW5nIHJvbGUpIHsKKyAgICAgICAgdGhpcy5yb2xlID0gcm9sZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBY2Nlc3MgbWV0aG9kIGZvciB0aGUgbmFtZSBwcm9wZXJ0eS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIG5hbWUgcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRSb2xlKCkgeworICAgICAgICByZXR1cm4gcm9sZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgbmFtZSBwcm9wZXJ0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhTmFtZSB0aGUgbmV3IHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5LgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldE5hbWUoU3RyaW5nIGFOYW1lKSB7CisgICAgICAgIG5hbWUgPSBhTmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBbm90aGVyIGFjY2VzcyBtZXRob2QgZm9yIHRoZSBuYW1lIHByb3BlcnR5LgorICAgICAqCisgICAgICogQHJldHVybiAgIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5CisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRBdHRyaWJ1dGUoKSB7CisgICAgICAgIHJldHVybiBuYW1lOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSBuYW1lIHByb3BlcnR5LgorICAgICAqCisgICAgICogQHBhcmFtIGFOYW1lIHRoZSBuZXcgdmFsdWUgb2YgdGhlIG5hbWUgcHJvcGVydHkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRBdHRyaWJ1dGUoU3RyaW5nIGFOYW1lKSB7CisgICAgICAgIG5hbWUgPSBhTmFtZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBY2Nlc3MgbWV0aG9kIGZvciB0aGUgdmFsdWUgcHJvcGVydHkuIFJldHVybiB0aGUgdmFsdWUgb3IgYSAKKyAgICAgKiBRdWFsaWZpZWRBdHRyaWJ1dGUgY29udGFpbmluZyB0aGUgdmFsdWUgaWYgJ2RpcmVjdCcgaXMgc2V0LgorICAgICAqCisgICAgICogQHJldHVybiBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgdmFsdWUgcHJvcGVydHkuCisgICAgICovCisgICAgcHVibGljIE9iamVjdCBnZXRWYWx1ZSgpIHsKKyAgICAgICAgLy8gQ29tcGF0aWJpbGl0eSB3aXRoIEpTUCBUZW1wbGF0ZQorICAgICAgICBpZiAodGhpcy5yZWFsVmFsdWUgPT0gbnVsbCkgeworICAgICAgICAgICAgdGhpcy5yZWFsVmFsdWUgPSB0aGlzLmNvbXB1dGVSZWFsVmFsdWUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0aGlzLnJlYWxWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgdmFsdWUgcHJvcGVydHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYVZhbHVlIHRoZSBuZXcgdmFsdWUgb2YgdGhlIHZhbHVlIHByb3BlcnR5CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0VmFsdWUoT2JqZWN0IGFWYWx1ZSkgeworICAgICAgICByZWFsVmFsdWUgPSBudWxsOworICAgICAgICB2YWx1ZSA9IGFWYWx1ZTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgdmFsdWUgcHJvcGVydHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYVZhbHVlIHRoZSBuZXcgdmFsdWUgb2YgdGhlIHZhbHVlIHByb3BlcnR5CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0Q29udGVudChPYmplY3QgYVZhbHVlKSB7CisgICAgICAgIHNldFZhbHVlKGFWYWx1ZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgdmFsdWUgb2YgdGhlIHZhbHVlIHByb3BlcnR5LgorICAgICAqCisgICAgICogQHBhcmFtIGFWYWx1ZSB0aGUgbmV3IHZhbHVlIG9mIHRoZSB2YWx1ZSBwcm9wZXJ0eQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEJvZHkoU3RyaW5nIGJvZHkpIHsKKyAgICAgICAgaWYgKGJvZHkubGVuZ3RoKCkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzZXRWYWx1ZShib2R5KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgdmFsdWUgcHJvcGVydHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYVZhbHVlIHRoZSBuZXcgdmFsdWUgb2YgdGhlIHZhbHVlIHByb3BlcnR5CisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0RGlyZWN0KFN0cmluZyB2YWx1ZSkgeworICAgICAgICB0aGlzLmRpcmVjdCA9IHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoZSB2YWx1ZSBwcm9wZXJ0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhVmFsdWUgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgdmFsdWUgcHJvcGVydHkKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRUeXBlKFN0cmluZyB2YWx1ZSkgeworICAgICAgICB0aGlzLnZhbHVlVHlwZSA9IHZhbHVlOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXB1dGUgIHJlYWwgdmFsdWUgZnJvbSBhdHRyaWJ1dGVzIHNldHRpbmcuCisgICAgICovCisgICAgcHJvdGVjdGVkIE9iamVjdCBjb21wdXRlUmVhbFZhbHVlKCkgeworICAgICAgICBPYmplY3QgcmVhbFZhbHVlID0gdmFsdWU7CisgICAgICAgIC8vIElzIHRoZXJlIGEgdHlwZSBzZXQgPworICAgICAgICAvLyBGaXJzdCBjaGVjayBkaXJlY3QgYXR0cmlidXRlLCBhbmQgdHJhbnNsYXRlIGl0IHRvIGEgdmFsdWVUeXBlLgorICAgICAgICAvLyBUaGVuLCBldmFsdWF0ZSB2YWx1ZVR5cGUsIGFuZCBjcmVhdGUgcmVxdWVzdGVkIHR5cGVkIGF0dHJpYnV0ZS4KKyAgICAgICAgaWYgKGRpcmVjdCAhPSBudWxsKSB7CisgICAgICAgICAgICB0aGlzLnZhbHVlVHlwZSA9CisgICAgICAgICAgICAgICAgQm9vbGVhbi52YWx1ZU9mKGRpcmVjdCkuYm9vbGVhblZhbHVlKCkgPyAic3RyaW5nIiA6ICJwYXRoIjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIHZhbHVlVHlwZSAhPSBudWxsKSB7CisgICAgICAgICAgICBTdHJpbmcgc3RyVmFsdWUgPSB2YWx1ZS50b1N0cmluZygpOworCisgICAgICAgICAgICBpZiAodmFsdWVUeXBlLmVxdWFsc0lnbm9yZUNhc2UoInN0cmluZyIpKSB7CisgICAgICAgICAgICAgICAgcmVhbFZhbHVlID0gbmV3IERpcmVjdFN0cmluZ0F0dHJpYnV0ZShzdHJWYWx1ZSk7CisKKyAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVUeXBlLmVxdWFsc0lnbm9yZUNhc2UoInBhZ2UiKSkgeworICAgICAgICAgICAgICAgIHJlYWxWYWx1ZSA9IG5ldyBQYXRoQXR0cmlidXRlKHN0clZhbHVlKTsKKworICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVR5cGUuZXF1YWxzSWdub3JlQ2FzZSgidGVtcGxhdGUiKSkgeworICAgICAgICAgICAgICAgIHJlYWxWYWx1ZSA9IG5ldyBQYXRoQXR0cmlidXRlKHN0clZhbHVlKTsKKworICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVR5cGUuZXF1YWxzSWdub3JlQ2FzZSgiaW5zdGFuY2UiKSkgeworICAgICAgICAgICAgICAgIHJlYWxWYWx1ZSA9IG5ldyBEZWZpbml0aW9uTmFtZUF0dHJpYnV0ZShzdHJWYWx1ZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFNldCByZWFsVmFsdWUncyByb2xlIHZhbHVlIGlmIG5lZWRlZAorICAgICAgICAgICAgaWYgKHJvbGUgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICgoVW50eXBlZEF0dHJpYnV0ZSkgcmVhbFZhbHVlKS5zZXRSb2xlKHJvbGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gQ3JlYXRlIGF0dHJpYnV0ZSB3cmFwcGVyIHRvIGhvbGQgcm9sZSBpZiByb2xlIGlzIHNldCBhbmQgbm8gdHlwZSBzcGVjaWZpZWQKKyAgICAgICAgaWYgKHJvbGUgIT0gbnVsbCAmJiB2YWx1ZSAhPSBudWxsICYmIHZhbHVlVHlwZSA9PSBudWxsKSB7CisgICAgICAgICAgICByZWFsVmFsdWUgPSBuZXcgVW50eXBlZEF0dHJpYnV0ZSh2YWx1ZS50b1N0cmluZygpLCByb2xlKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiByZWFsVmFsdWU7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZmFiN2JiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uLmphdmEKQEAgLTAsMCArMSwxODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzLnhtbERlZmluaXRpb247CisKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLkNvbXBvbmVudERlZmluaXRpb247CitpbXBvcnQgb3JnLmFwYWNoZS50aWxlcy5Ob1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OworCitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworCisvKioKKyAgKkEgZGVmaW5pdGlvbiByZWFkIGZyb20gYW4gWE1MIGRlZmluaXRpb25zIGZpbGUuCisgICovCitwdWJsaWMgY2xhc3MgWG1sRGVmaW5pdGlvbiBleHRlbmRzIENvbXBvbmVudERlZmluaXRpb24KK3sKKyAgLyoqCisgICAqIEV4dGVuZHMgYXR0cmlidXRlIHZhbHVlLgorICAgKi8KKyAgcHJpdmF0ZSBTdHJpbmcgaW5oZXJpdDsKKworICAgIC8qKiBDb21tb25zIExvZ2dpbmcgaW5zdGFuY2UuICovCisgICBwcm90ZWN0ZWQgc3RhdGljIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyhYbWxEZWZpbml0aW9uLmNsYXNzKTsKKworICAvKioKKyAgICogVXNlZCBmb3IgcmVzb2x2aW5nIGluaGVyaXRhbmNlLgorICAgKi8KKyAgcHJpdmF0ZSBib29sZWFuIGlzVmlzaXRlZD1mYWxzZTsKKworCisgICAgIC8qKgorICAgICAgKiBDb25zdHJ1Y3Rvci4KKyAgICAgICovCisgICBwdWJsaWMgWG1sRGVmaW5pdGlvbigpCisgICB7CisgICBzdXBlcigpOworICAgLy9pZihkZWJ1ZykKKyAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oICJjcmVhdGUgZGVmaW5pdGlvbiIgKTsKKyAgIH0KKworICAvKioKKyAgICogQWRkIGFuIGF0dHJpYnV0ZSB0byB0aGlzIGNvbXBvbmVudC4KKyAgICoKKyAgICogQHBhcmFtIGF0dHJpYnV0ZSBBdHRyaWJ1dGUgdG8gYWRkLgorICAgKi8KKyAgcHVibGljIHZvaWQgYWRkQXR0cmlidXRlKCBYbWxBdHRyaWJ1dGUgYXR0cmlidXRlKQorICAgIHsKKyAgICBwdXRBdHRyaWJ1dGUoIGF0dHJpYnV0ZS5nZXROYW1lKCksIGF0dHJpYnV0ZS5nZXRWYWx1ZSgpICk7CisgICAgfQorCisgIC8qKgorICAgKiBTZXQgZXh0ZW5kcy4KKyAgICoKKyAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgZXh0ZW5kZWQgZGVmaW5pdGlvbi4KKyAgICovCisgIHB1YmxpYyB2b2lkIHNldEV4dGVuZHMoU3RyaW5nIG5hbWUpCisgICAgeworICAgIGluaGVyaXQgPSBuYW1lOworICAgIH0KKworICAvKioKKyAgICogR2V0IGV4dGVuZHMuCisgICAqCisgICAqIEByZXR1cm4gTmFtZSBvZiB0aGUgZXh0ZW5kZWQgZGVmaW5pdGlvbi4KKyAgICovCisgIHB1YmxpYyBTdHJpbmcgZ2V0RXh0ZW5kcygpCisgICAgeworICAgIHJldHVybiBpbmhlcml0OworICAgIH0KKworICAvKioKKyAgICogR2V0IGV4dGVuZHMgZmxhZy4KKyAgICoKKyAgICovCisgIHB1YmxpYyBib29sZWFuIGlzRXh0ZW5kaW5nKCApCisgICAgeworICAgIHJldHVybiBpbmhlcml0IT1udWxsOworICAgIH0KKworICAvKioKKyAgICogU2V0IGlzVmlzaXRlZC4KKyAgICoKKyAgICovCisgIHB1YmxpYyB2b2lkIHNldElzVmlzaXRlZCggYm9vbGVhbiBpc1Zpc2l0ZWQgKQorICAgIHsKKyAgICB0aGlzLmlzVmlzaXRlZCA9IGlzVmlzaXRlZDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXNvbHZlIGluaGVyaXRhbmNlLgorICAgICAqIEZpcnN0LCByZXNvbHZlIHBhcmVudCdzIGluaGVyaXRhbmNlLCB0aGVuIHNldCBwYXRoIHRvIHRoZSBwYXJlbnQncyBwYXRoLgorICAgICAqIEFsc28gY29weSBhdHRyaWJ1dGVzIHNldHRlZCBpbiBwYXJlbnQsIGFuZCBub3Qgc2V0IGluIGNoaWxkCisgICAgICogSWYgaW5zdGFuY2UgZG9lc24ndCBleHRlbmQgYW55dGhpbmcsIGRvIG5vdGhpbmcuCisgICAgICogQHRocm93cyBOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uIElmIGFuIGluaGVyaXRhbmNlIGNhbiBub3QgYmUgc29sdmVkLgorICAgICAqLworICBwdWJsaWMgdm9pZCByZXNvbHZlSW5oZXJpdGFuY2UoIFhtbERlZmluaXRpb25zU2V0IGRlZmluaXRpb25zU2V0ICkKKyAgICB0aHJvd3MgTm9TdWNoRGVmaW5pdGlvbkV4Y2VwdGlvbgorICAgIHsKKyAgICAgIC8vIEFscmVhZHkgZG9uZSwgb3Igbm90IG5lZWRlZCA/CisgICAgaWYoIGlzVmlzaXRlZCB8fCAhaXNFeHRlbmRpbmcoKSApCisgICAgICByZXR1cm47CisKKyAgICBpZihsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkKKyAgICAgIGxvZy5kZWJ1ZyggIlJlc29sdmUgZGVmaW5pdGlvbiBmb3IgY2hpbGQgbmFtZT0nIiArIGdldE5hbWUoKQorICAgICAgICAgICAgICArICInIGV4dGVuZHM9JyIgKyBnZXRFeHRlbmRzKCkgKyAiJy4iKTsKKworICAgICAgLy8gU2V0IGFzIHZpc2l0ZWQgdG8gYXZvaWQgZW5kbGVzcyByZWN1cmlzdml0eS4KKyAgICBzZXRJc1Zpc2l0ZWQoIHRydWUgKTsKKworICAgICAgLy8gUmVzb2x2ZSBwYXJlbnQgYmVmb3JlIGl0c2VsZi4KKyAgICBYbWxEZWZpbml0aW9uIHBhcmVudCA9IGRlZmluaXRpb25zU2V0LmdldERlZmluaXRpb24oIGdldEV4dGVuZHMoKSApOworICAgIGlmKCBwYXJlbnQgPT0gbnVsbCApCisgICAgICB7IC8vIGVycm9yCisgICAgICBTdHJpbmcgbXNnID0gIkVycm9yIHdoaWxlIHJlc29sdmluZyBkZWZpbml0aW9uIGluaGVyaXRhbmNlOiBjaGlsZCAnIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBnZXROYW1lKCkgKyAgICAiJyBjYW4ndCBmaW5kIGl0cyBhbmNlc3RvciAnIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBnZXRFeHRlbmRzKCkgKyAiJy4gUGxlYXNlIGNoZWNrIHlvdXIgZGVzY3JpcHRpb24gZmlsZS4iOworICAgICAgbG9nLmVycm9yKCBtc2cgKTsKKyAgICAgICAgLy8gdG8gZG8gOiBmaW5kIGJldHRlciBleGNlcHRpb24KKyAgICAgIHRocm93IG5ldyBOb1N1Y2hEZWZpbml0aW9uRXhjZXB0aW9uKCBtc2cgKTsKKyAgICAgIH0KKworICAgIHBhcmVudC5yZXNvbHZlSW5oZXJpdGFuY2UoIGRlZmluaXRpb25zU2V0ICk7CisKKyAgICAgIC8vIEl0ZXJhdGUgb24gZWFjaCBwYXJlbnQncyBhdHRyaWJ1dGUgYW5kIGFkZCBpdCBpZiBub3QgZGVmaW5lZCBpbiBjaGlsZC4KKyAgICBJdGVyYXRvciBwYXJlbnRBdHRyaWJ1dGVzID0gcGFyZW50LmdldEF0dHJpYnV0ZXMoKS5rZXlTZXQoKS5pdGVyYXRvcigpOworICAgIHdoaWxlKCBwYXJlbnRBdHRyaWJ1dGVzLmhhc05leHQoKSApCisgICAgICB7CisgICAgICBTdHJpbmcgbmFtZSA9IChTdHJpbmcpcGFyZW50QXR0cmlidXRlcy5uZXh0KCk7CisgICAgICBpZiggIWdldEF0dHJpYnV0ZXMoKS5jb250YWluc0tleShuYW1lKSApCisgICAgICAgIHB1dEF0dHJpYnV0ZSggbmFtZSwgcGFyZW50LmdldEF0dHJpYnV0ZShuYW1lKSApOworICAgICAgfQorICAgICAgLy8gU2V0IHBhdGggYW5kIHJvbGUgaWYgbm90IHNldHRlZAorICAgIGlmKCBwYXRoID09IG51bGwgKQorICAgICAgc2V0UGF0aCggcGFyZW50LmdldFBhdGgoKSApOworICAgIGlmKCByb2xlID09IG51bGwgKQorICAgICAgc2V0Um9sZSggcGFyZW50LmdldFJvbGUoKSApOworICAgIGlmKCBjb250cm9sbGVyPT1udWxsICkKKyAgICAgIHsKKyAgICAgIHNldENvbnRyb2xsZXIoIHBhcmVudC5nZXRDb250cm9sbGVyKCkpOworICAgICAgc2V0Q29udHJvbGxlclR5cGUoIHBhcmVudC5nZXRDb250cm9sbGVyVHlwZSgpKTsKKyAgICAgIH0KKyAgICB9CisKKyAgLyoqCisgICAqIE92ZXJsb2FkIHRoaXMgZGVmaW5pdGlvbiB3aXRoIHBhc3NlZCBjaGlsZC4KKyAgICogQWxsIGF0dHJpYnV0ZXMgZnJvbSBjaGlsZCBhcmUgY29waWVkIHRvIHRoaXMgZGVmaW5pdGlvbi4gUHJldmlvdXMgYXR0cmlidXRlcyB3aXRoCisgICAqIHNhbWUgbmFtZSBhcmUgZGlzZ3VhcmRlZC4KKyAgICogU3BlY2lhbCBhdHRyaWJ1dGUgJ3BhdGgnLCdyb2xlJyBhbmQgJ2V4dGVuZHMnIGFyZSBvdmVybG9hZGVkIGlmIGRlZmluZWQgaW4gY2hpbGQuCisgICAqIEBwYXJhbSBjaGlsZCBDaGlsZCB1c2VkIHRvIG92ZXJsb2FkIHRoaXMgZGVmaW5pdGlvbi4KKyAgICovCisgIHB1YmxpYyB2b2lkIG92ZXJsb2FkKCBYbWxEZWZpbml0aW9uIGNoaWxkICkKKyAgICB7CisgICAgaWYoIGNoaWxkLmdldFBhdGgoKSAhPSBudWxsICkKKyAgICAgIHsKKyAgICAgIHBhdGggPSBjaGlsZC5nZXRQYXRoKCk7CisgICAgICB9CisgICAgaWYoIGNoaWxkLmdldEV4dGVuZHMoKSAhPSBudWxsICkKKyAgICAgIHsKKyAgICAgIGluaGVyaXQgPSBjaGlsZC5nZXRFeHRlbmRzKCk7CisgICAgICB9CisgICAgaWYoIGNoaWxkLmdldFJvbGUoKSAhPSBudWxsICkKKyAgICAgIHsKKyAgICAgIHJvbGUgPSBjaGlsZC5nZXRSb2xlKCk7CisgICAgICB9CisgICAgaWYoIGNoaWxkLmdldENvbnRyb2xsZXIoKSE9bnVsbCApCisgICAgICB7CisgICAgICBjb250cm9sbGVyID0gY2hpbGQuZ2V0Q29udHJvbGxlcigpOworICAgICAgY29udHJvbGxlclR5cGUgPSAgY2hpbGQuZ2V0Q29udHJvbGxlclR5cGUoKTsKKyAgICAgIH0KKyAgICAgIC8vIHB1dCBhbGwgY2hpbGQgYXR0cmlidXRlcyBpbiBwYXJlbnQuCisgICAgYXR0cmlidXRlcy5wdXRBbGwoIGNoaWxkLmdldEF0dHJpYnV0ZXMoKSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxEZWZpbml0aW9uc1NldC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzYzMxNzAKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy94bWxEZWZpbml0aW9uL1htbERlZmluaXRpb25zU2V0LmphdmEKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzLnhtbERlZmluaXRpb247CisKK2ltcG9ydCBvcmcuYXBhY2hlLnRpbGVzLk5vU3VjaERlZmluaXRpb25FeGNlcHRpb247CisKK2ltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOworaW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKKworLyoqCisgKiBBIHNldCBvZiBkZWZpbml0aW9ucyByZWFkIGZyb20gWE1MIGRlZmluaXRpb25zIGZpbGUuCisqLworcHVibGljIGNsYXNzIFhtbERlZmluaXRpb25zU2V0Cit7CisgICAgLyoqIERlZmluZWQgZGVmaW5pdGlvbnMuICovCisgIHByb3RlY3RlZCBNYXAgZGVmaW5pdGlvbnM7CisKKyAgICAgLyoqCisgICAgICAqIENvbnN0cnVjdG9yLgorICAgICAgKi8KKyAgcHVibGljIFhtbERlZmluaXRpb25zU2V0KCkKKyAgIHsKKyAgIGRlZmluaXRpb25zID0gbmV3IEhhc2hNYXAoKTsKKyAgIH0KKworICAvKioKKyAgICogUHV0IGRlZmluaXRpb24gaW4gc2V0LgorICAgKiBAcGFyYW0gZGVmaW5pdGlvbiBEZWZpbml0aW9uIHRvIGFkZC4KKyAgICovCisgIHB1YmxpYyB2b2lkIHB1dERlZmluaXRpb24oWG1sRGVmaW5pdGlvbiBkZWZpbml0aW9uKQorICB7CisgIGRlZmluaXRpb25zLnB1dCggZGVmaW5pdGlvbi5nZXROYW1lKCksIGRlZmluaXRpb24gKTsKKyAgfQorCisgIC8qKgorICAgKiBHZXQgcmVxdWVzdGVkIGRlZmluaXRpb24uCisgICAqIEBwYXJhbSBuYW1lIERlZmluaXRpb24gbmFtZS4KKyAgICovCisgIHB1YmxpYyBYbWxEZWZpbml0aW9uIGdldERlZmluaXRpb24oU3RyaW5nIG5hbWUpCisgIHsKKyAgcmV0dXJuIChYbWxEZWZpbml0aW9uKWRlZmluaXRpb25zLmdldCggbmFtZSApOworICB9CisKKyAgLyoqCisgICAqIEdldCBkZWZpbml0aW9ucyBtYXAuCisgICAqLworICBwdWJsaWMgTWFwIGdldERlZmluaXRpb25zKCkKKyAgeworICByZXR1cm4gZGVmaW5pdGlvbnM7CisgIH0KKworICAvKioKKyAgICogUmVzb2x2ZSBleHRlbmRlZCBpbnN0YW5jZXMuCisgICAqLworICBwdWJsaWMgdm9pZCByZXNvbHZlSW5oZXJpdGFuY2VzKCkgdGhyb3dzIE5vU3VjaERlZmluaXRpb25FeGNlcHRpb24KKyAgICB7CisgICAgICAvLyBXYWxrIHRocm91Z2ggYWxsIGRlZmluaXRpb25zIGFuZCByZXNvbHZlIGluZGl2aWR1YWwgaW5oZXJpdGFuY2UKKyAgICBJdGVyYXRvciBpID0gZGVmaW5pdGlvbnMudmFsdWVzKCkuaXRlcmF0b3IoKTsKKyAgICB3aGlsZSggaS5oYXNOZXh0KCkgKQorICAgICAgeworICAgICAgWG1sRGVmaW5pdGlvbiBkZWZpbml0aW9uID0gKFhtbERlZmluaXRpb24paS5uZXh0KCk7CisgICAgICBkZWZpbml0aW9uLnJlc29sdmVJbmhlcml0YW5jZSggdGhpcyApOworICAgICAgfSAgLy8gZW5kIGxvb3AKKyAgICB9CisKKyAgLyoqCisgICAqIEFkZCBkZWZpbml0aW9ucyBmcm9tIHNwZWNpZmllZCBjaGlsZCBkZWZpbml0aW9ucyBzZXQuCisgICAqIEZvciBlYWNoIGRlZmluaXRpb24gaW4gY2hpbGQsIGxvb2sgaWYgaXQgYWxyZWFkeSBleGlzdHMgaW4gdGhpcyBzZXQuCisgICAqIElmIG5vdCwgYWRkIGl0LCBpZiB5ZXMsIG92ZXJsb2FkIHBhcmVudCdzIGRlZmluaXRpb24gd2l0aCBjaGlsZCBkZWZpbml0aW9uLgorICAgKiBAcGFyYW0gY2hpbGQgRGVmaW5pdGlvbiB1c2VkIHRvIG92ZXJsb2FkIHRoaXMgb2JqZWN0LgorICAgKi8KKyAgcHVibGljIHZvaWQgZXh0ZW5kKCBYbWxEZWZpbml0aW9uc1NldCBjaGlsZCApCisgICAgeworICAgIGlmKGNoaWxkPT1udWxsKQorICAgICAgcmV0dXJuOworICAgIEl0ZXJhdG9yIGkgPSBjaGlsZC5nZXREZWZpbml0aW9ucygpLnZhbHVlcygpLml0ZXJhdG9yKCk7CisgICAgd2hpbGUoIGkuaGFzTmV4dCgpICkKKyAgICAgIHsKKyAgICAgIFhtbERlZmluaXRpb24gY2hpbGRJbnN0YW5jZSA9IChYbWxEZWZpbml0aW9uKWkubmV4dCgpOworICAgICAgWG1sRGVmaW5pdGlvbiBwYXJlbnRJbnN0YW5jZSA9IGdldERlZmluaXRpb24oY2hpbGRJbnN0YW5jZS5nZXROYW1lKCkgKTsKKyAgICAgIGlmKCBwYXJlbnRJbnN0YW5jZSAhPSBudWxsICkKKyAgICAgICAgeworICAgICAgICBwYXJlbnRJbnN0YW5jZS5vdmVybG9hZCggY2hpbGRJbnN0YW5jZSApOworICAgICAgICB9CisgICAgICAgZWxzZQorICAgICAgICBwdXREZWZpbml0aW9uKCBjaGlsZEluc3RhbmNlICk7CisgICAgICB9IC8vIGVuZCBsb29wCisgICAgfQorICAgIC8qKgorICAgICAqIEdldCBTdHJpbmcgcmVwcmVzZW50YXRpb24uCisgICAgICovCisgIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQorICAgIHsKKyAgICByZXR1cm4gImRlZmluaXRpb25zPSIgKyBkZWZpbml0aW9ucy50b1N0cmluZygpIDsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxMaXN0QXR0cmlidXRlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWM1ZDQ3MAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3RpbGVzL3htbERlZmluaXRpb24vWG1sTGlzdEF0dHJpYnV0ZS5qYXZhCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnRpbGVzLnhtbERlZmluaXRpb247CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IGphdmF4LnNlcnZsZXQuUmVxdWVzdERpc3BhdGNoZXI7CisKK3B1YmxpYyBjbGFzcyBYbWxMaXN0QXR0cmlidXRlIGV4dGVuZHMgWG1sQXR0cmlidXRlIHsKKyAgICAvKiogTGlzdC4KKyAgICAgKiBXZSBkZWNsYXJlIGEgTGlzdCB0byBhdm9pZCBjYXN0LgorICAgICAqIFBhcmVudCAidmFsdWUiIHByb3BlcnR5IHBvaW50cyB0byB0aGUgc2FtZSBsaXN0LgorICAgICAqLworICBwcml2YXRlIExpc3QgbGlzdDsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdG9yLgorICAgICAqLworICBwdWJsaWMgWG1sTGlzdEF0dHJpYnV0ZSgpCisgICAgeworICAgIGxpc3QgPSBuZXcgQXJyYXlMaXN0KCk7CisgICAgc2V0VmFsdWUobGlzdCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ29uc3RydWN0b3IuCisgICAgICogQHBhcmFtIG5hbWUgTmFtZS4KKyAgICAgKiBAcGFyYW0gdmFsdWUgTGlzdC4KKyAgICAgKi8KKyAgcHVibGljIFhtbExpc3RBdHRyaWJ1dGUoIFN0cmluZyBuYW1lLCBMaXN0IHZhbHVlKQorICAgIHsKKyAgICBzdXBlciggbmFtZSwgdmFsdWUgKTsKKyAgICBsaXN0ID0gdmFsdWU7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGFuIGVsZW1lbnQgaW4gbGlzdC4KKyAgICAgKiBXZSB1c2UgYSBwcm9wZXJ0eSB0byBhdm9pZCByZXdyaXRpbmcgYSBuZXcgY2xhc3MuCisgICAgICogQHBhcmFtIGVsZW1lbnQgWG1sQXR0cmlidXRlIHRvIGFkZC4KKyAgICAgKi8KKyAgcHVibGljIHZvaWQgYWRkKCBYbWxBdHRyaWJ1dGUgZWxlbWVudCApCisgICAgeworICAgIGxpc3QuYWRkKCBlbGVtZW50LmdldFZhbHVlKCkgKTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBBZGQgYW4gZWxlbWVudCBpbiBsaXN0LgorICAgICAqIEBwYXJhbSB2YWx1ZSBPYmplY3QgdG8gYWRkLgorICAgICAqLworICBwdWJsaWMgdm9pZCBhZGQoIE9iamVjdCB2YWx1ZSApCisgICAgeworICAgIC8vbGlzdC5hZGQoIHZhbHVlICk7CisgICAgICAvLyBUbyBjb3JyZWN0IGEgYnVnIGluIGRpZ2VzdGVyLCB3ZSBuZWVkIHRvIGNoZWNrIHRoZSBvYmplY3QgdHlwZQorICAgICAgLy8gRGlnZXN0ZXIgZG9lc24ndCBjYWxsIGNvcnJlY3QgbWV0aG9kIGFjY29yZGluZyB0byBvYmplY3QgdHlwZSA7LSgKKyAgICBpZih2YWx1ZSBpbnN0YW5jZW9mIFhtbEF0dHJpYnV0ZSkKKyAgICAgIHsKKyAgICAgIGFkZCgoWG1sQXR0cmlidXRlKXZhbHVlKTsKKyAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgZWxzZQorICAgICAgbGlzdC5hZGQoIHZhbHVlICk7CisgICAgfQorCisgICAgLyoqCisgICAgICogQWRkIGFuIGVsZW1lbnQgaW4gbGlzdC4KKyAgICAgKiBAcGFyYW0gdmFsdWUgT2JqZWN0IHRvIGFkZC4KKyAgICAgKi8KKyAgcHVibGljIHZvaWQgYWRkT2JqZWN0KCBPYmplY3QgdmFsdWUgKQorICAgIHsKKyAgICBsaXN0LmFkZCggdmFsdWUgKTsKKyAgICB9CisKKworCit9CmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy94bWxEZWZpbml0aW9uL1htbFBhcnNlci5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMmIzMzU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMveG1sRGVmaW5pdGlvbi9YbWxQYXJzZXIuamF2YQpAQCAtMCwwICsxLDM0OCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUudGlsZXMueG1sRGVmaW5pdGlvbjsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLkZpbGVJbnB1dFN0cmVhbTsKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS5uZXQuVVJMOworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmRpZ2VzdGVyLkRpZ2VzdGVyOworaW1wb3J0IG9yZy54bWwuc2F4LlNBWEV4Y2VwdGlvbjsKKworLyoqCisgKiBQYXJzZSBhbiBYTUwgZGVmaW5pdGlvbnMgZmlsZS4KKyAqCisgKiBAYXV0aG9yIENlZHJpYyBEdW1vdWxpbgorICogQGF1dGhvciBEYXZpZCBHZWFyeQorICovCitwdWJsaWMgY2xhc3MgWG1sUGFyc2VyIHsKKyAgICAvKiogQXNzb2NpYXRlZCBkaWdlc3Rlci4gKi8KKyAgcHJvdGVjdGVkIERpZ2VzdGVyIGRpZ2VzdGVyOworICAgIC8qKgorICAgICAqIFNob3VsZCB3ZSB1c2UgYSB2YWxpZGF0aW5nIFhNTCBwYXJzZXIgdG8gcmVhZCB0aGUgY29uZmlndXJhdGlvbiBmaWxlLgorICAgICAqIERlZmF1bHQgaXMgPGNvZGU+ZmFsc2U8L2NvZGU+LgorICAgICAqLworICAgIHByb3RlY3RlZCBib29sZWFuIHZhbGlkYXRpbmcgPSBmYWxzZTsKKyAgICAvKioKKyAgICAgKiBUaGUgc2V0IG9mIHB1YmxpYyBpZGVudGlmaWVycywgYW5kIGNvcnJlc3BvbmRpbmcgcmVzb3VyY2UgbmFtZXMgZm9yCisgICAgICogdGhlIHZlcnNpb25zIG9mIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRFREcyB3ZSBrbm93IGFib3V0LiAgVGhlcmUKKyAgICAgKiA8c3Ryb25nPk1VU1Q8L3N0cm9uZz4gYmUgYW4gZXZlbiBudW1iZXIgb2YgU3RyaW5ncyBpbiB0aGlzIGxpc3QhCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyByZWdpc3RyYXRpb25zW10gPSB7CisgICAgICAgICAgLy8gcHJlIDEuMQorICAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBUaWxlcyBDb25maWd1cmF0aW9uLy9FTiIsCisgICAgICAgICIvb3JnL2FwYWNoZS9zdHJ1dHMvcmVzb3VyY2VzL3RpbGVzLWNvbmZpZ18xXzEuZHRkIiwKKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgQ29tcG9uZW50cyBDb25maWd1cmF0aW9uLy9FTiIsCisgICAgICAgICIvb3JnL2FwYWNoZS9zdHJ1dHMvcmVzb3VyY2VzL3RpbGVzLWNvbmZpZy5kdGQiLAorICAgICAgICAgLy8gdmVyc2lvbiAxLjEKKyAgICAgICAgIi0vL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLy9EVEQgVGlsZXMgQ29uZmlndXJhdGlvbiAxLjEvL0VOIiwKKyAgICAgICAgIi9vcmcvYXBhY2hlL3N0cnV0cy9yZXNvdXJjZXMvdGlsZXMtY29uZmlnXzFfMS5kdGQiLAorICAgICAgICAvLyB2ZXJzaW9uIDEuMgorICAgICAgICAiLS8vQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24vL0RURCBUaWxlcyBDb25maWd1cmF0aW9uIDEuMi8vRU4iLAorICAgICAgICAiL29yZy9hcGFjaGUvdGlsZXMvcmVzb3VyY2VzL3RpbGVzLWNvbmZpZ18xXzIuZHRkIgorICAgIH07CisKKyAgICAgLyoqCisgICAgICAqIENvbnN0cnVjdG9yLgorICAgICAgKiBDcmVhdGVzIGEgZGlnZXN0ZXIgcGFyc2VyIGFuZCBpbml0aWFsaXplcyBzeW50YXggcnVsZXMuCisgICAgICAqLworICBwdWJsaWMgWG1sUGFyc2VyKCkKKyAgeworCWRpZ2VzdGVyID0gbmV3IERpZ2VzdGVyKCk7CisJZGlnZXN0ZXIuc2V0VmFsaWRhdGluZyh2YWxpZGF0aW5nKTsKKwlkaWdlc3Rlci5zZXROYW1lc3BhY2VBd2FyZSh0cnVlKTsKKwlkaWdlc3Rlci5zZXRVc2VDb250ZXh0Q2xhc3NMb2FkZXIodHJ1ZSk7CisJLy8gUmVnaXN0ZXIgb3VyIGxvY2FsIGNvcHkgb2YgdGhlIERURHMgdGhhdCB3ZSBjYW4gZmluZAorICBmb3IgKGludCBpID0gMDsgaSA8IHJlZ2lzdHJhdGlvbnMubGVuZ3RoOyBpICs9IDIpIHsKKyAgICAgIFVSTCB1cmwgPSB0aGlzLmdldENsYXNzKCkuZ2V0UmVzb3VyY2UocmVnaXN0cmF0aW9uc1tpKzFdKTsKKyAgICAgIGlmICh1cmwgIT0gbnVsbCkKKyAgICAgICAgICB7CisgICAgICAgICAgZGlnZXN0ZXIucmVnaXN0ZXIocmVnaXN0cmF0aW9uc1tpXSwgdXJsLnRvU3RyaW5nKCkpOworICAgICAgICAgIH0KKyAgfQorICAgIC8vIEluaXQgc3ludGF4IHJ1bGVzCisgIGluaXREaWdlc3RlciggZGlnZXN0ZXIgKTsKKyAgfQorCisgICAgLyoqCisgICAgICogU2V0IGRpZ2VzdGVyIHZhbGlkYXRpbmcgZmxhZy4KKyAgICAgKi8KKyAgcHVibGljIHZvaWQgc2V0VmFsaWRhdGluZyggYm9vbGVhbiB2YWxpZGF0aW5nICkKKyAgICB7CisgICAgZGlnZXN0ZXIuc2V0VmFsaWRhdGluZyggdmFsaWRhdGluZyk7CisgICAgfQorCisKKyAgIC8qKgorICAgICogSW5pdCBkaWdlc3RlciBmb3IgY29tcG9uZW50cyBzeW50YXguCisgICAgKiBUaGlzIGlzIGFuIG9sZCBzZXQgb2YgcnVsZXMsIGxlZnQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisgICAgKiBAcGFyYW0gZGlnZXN0ZXIgRGlnZXN0ZXIgaW5zdGFuY2UgdG8gdXNlLgorICAgICovCisgIHByaXZhdGUgdm9pZCBpbml0RGlnZXN0ZXJGb3JDb21wb25lbnRzRGVmaW5pdGlvbnNTeW50YXgoIERpZ2VzdGVyIGRpZ2VzdGVyICkKKyAgeworCSAvLyBDb21tb24gY29uc3RhbnRzCisgIFN0cmluZyBQQUNLQUdFX05BTUUgPSAib3JnLmFwYWNoZS50aWxlcy54bWxEZWZpbml0aW9uIjsKKyAgU3RyaW5nIERFRklOSVRJT05fVEFHID0gImNvbXBvbmVudC1kZWZpbml0aW9ucy9kZWZpbml0aW9uIjsKKyAgU3RyaW5nIGRlZmluaXRpb25IYW5kbGVyQ2xhc3MgPSBQQUNLQUdFX05BTUUgKyAiLlhtbERlZmluaXRpb24iOworCisgIFN0cmluZyBQVVRfVEFHICA9IERFRklOSVRJT05fVEFHICsgIi9wdXQiOworICBTdHJpbmcgcHV0QXR0cmlidXRlSGFuZGxlckNsYXNzID0gUEFDS0FHRV9OQU1FICsgIi5YbWxBdHRyaWJ1dGUiOworCisgIFN0cmluZyBMSVNUX1RBRyA9IERFRklOSVRJT05fVEFHICsgIi9wdXRMaXN0IjsKKyAgU3RyaW5nIGxpc3RIYW5kbGVyQ2xhc3MgICAgID0gUEFDS0FHRV9OQU1FICsgIi5YbWxMaXN0QXR0cmlidXRlIjsKKworICBTdHJpbmcgQUREX0xJU1RfRUxFX1RBRyA9IExJU1RfVEFHICsgIi9hZGQiOworCisgICAgLy8gc3ludGF4IHJ1bGVzCisJZGlnZXN0ZXIuYWRkT2JqZWN0Q3JlYXRlKCAgREVGSU5JVElPTl9UQUcsIGRlZmluaXRpb25IYW5kbGVyQ2xhc3MgKTsKKwlkaWdlc3Rlci5hZGRTZXRQcm9wZXJ0aWVzKCBERUZJTklUSU9OX1RBRyk7CisJZGlnZXN0ZXIuYWRkU2V0TmV4dCggICAgICAgREVGSU5JVElPTl9UQUcsICJwdXREZWZpbml0aW9uIiwgZGVmaW5pdGlvbkhhbmRsZXJDbGFzcyk7CisgICAgLy8gcHV0IC8gcHV0QXR0cmlidXRlIHJ1bGVzCisJZGlnZXN0ZXIuYWRkT2JqZWN0Q3JlYXRlKCAgUFVUX1RBRywgcHV0QXR0cmlidXRlSGFuZGxlckNsYXNzKTsKKwlkaWdlc3Rlci5hZGRTZXROZXh0KCAgICAgICBQVVRfVEFHLCAiYWRkQXR0cmlidXRlIiwgcHV0QXR0cmlidXRlSGFuZGxlckNsYXNzKTsKKwlkaWdlc3Rlci5hZGRTZXRQcm9wZXJ0aWVzKCBQVVRfVEFHKTsKKwlkaWdlc3Rlci5hZGRDYWxsTWV0aG9kKCAgICBQVVRfVEFHLCAic2V0Qm9keSIsIDApOworICAgIC8vIGxpc3QgcnVsZXMKKwlkaWdlc3Rlci5hZGRPYmplY3RDcmVhdGUoICBMSVNUX1RBRywgbGlzdEhhbmRsZXJDbGFzcyk7CisJZGlnZXN0ZXIuYWRkU2V0UHJvcGVydGllcyggTElTVF9UQUcpOworCWRpZ2VzdGVyLmFkZFNldE5leHQoICAgICAgIExJU1RfVEFHLCAiYWRkQXR0cmlidXRlIiwgcHV0QXR0cmlidXRlSGFuZGxlckNsYXNzKTsKKyAgICAvLyBsaXN0IGVsZW1lbnRzIHJ1bGVzCisgICAgLy8gV2UgdXNlIEF0dHJpYnV0ZSBjbGFzcyB0byBhdm9pZCByZXdyaXRpbmcgYSBuZXcgY2xhc3MuCisgICAgLy8gTmFtZSBwYXJ0IGNhbid0IGJlIHVzZWQgaW4gbGlzdEVsZW1lbnQgYXR0cmlidXRlLgorCWRpZ2VzdGVyLmFkZE9iamVjdENyZWF0ZSggIEFERF9MSVNUX0VMRV9UQUcsIHB1dEF0dHJpYnV0ZUhhbmRsZXJDbGFzcyk7CisJZGlnZXN0ZXIuYWRkU2V0TmV4dCggICAgICAgQUREX0xJU1RfRUxFX1RBRywgImFkZCIsIHB1dEF0dHJpYnV0ZUhhbmRsZXJDbGFzcyk7CisJZGlnZXN0ZXIuYWRkU2V0UHJvcGVydGllcyggQUREX0xJU1RfRUxFX1RBRyk7CisJZGlnZXN0ZXIuYWRkQ2FsbE1ldGhvZCggICAgQUREX0xJU1RfRUxFX1RBRywgInNldEJvZHkiLCAwKTsKKyAgfQorCisgICAvKioKKyAgICAqIEluaXQgZGlnZXN0ZXIgZm9yIFRpbGVzIHN5bnRheC4KKyAgICAqIFNhbWUgYXMgY29tcG9uZW50cywgYnV0IHdpdGggZmlyc3QgZWxlbWVudCA9IHRpbGVzLWRlZmluaXRpb25zCisgICAgKiBAcGFyYW0gZGlnZXN0ZXIgRGlnZXN0ZXIgaW5zdGFuY2UgdG8gdXNlLgorICAgICovCisgIHByaXZhdGUgdm9pZCBpbml0RGlnZXN0ZXJGb3JUaWxlc0RlZmluaXRpb25zU3ludGF4KCBEaWdlc3RlciBkaWdlc3RlciApCisgIHsKKwkgLy8gQ29tbW9uIGNvbnN0YW50cworICBTdHJpbmcgUEFDS0FHRV9OQU1FID0gIm9yZy5hcGFjaGUudGlsZXMueG1sRGVmaW5pdGlvbiI7CisgIFN0cmluZyBERUZJTklUSU9OX1RBRyA9ICJ0aWxlcy1kZWZpbml0aW9ucy9kZWZpbml0aW9uIjsKKyAgU3RyaW5nIGRlZmluaXRpb25IYW5kbGVyQ2xhc3MgPSBQQUNLQUdFX05BTUUgKyAiLlhtbERlZmluaXRpb24iOworCisgIFN0cmluZyBQVVRfVEFHICA9IERFRklOSVRJT05fVEFHICsgIi9wdXQiOworICBTdHJpbmcgcHV0QXR0cmlidXRlSGFuZGxlckNsYXNzID0gUEFDS0FHRV9OQU1FICsgIi5YbWxBdHRyaWJ1dGUiOworCisgIC8vU3RyaW5nIExJU1RfVEFHID0gREVGSU5JVElPTl9UQUcgKyAiL3B1dExpc3QiOworICAgIC8vIExpc3QgdGFnIHZhbHVlCisgIFN0cmluZyBMSVNUX1RBRyA9ICJwdXRMaXN0IjsKKyAgU3RyaW5nIERFRl9MSVNUX1RBRyA9IERFRklOSVRJT05fVEFHICsgIi8iICsgTElTVF9UQUc7CisgIFN0cmluZyBsaXN0SGFuZGxlckNsYXNzICAgICA9IFBBQ0tBR0VfTkFNRSArICIuWG1sTGlzdEF0dHJpYnV0ZSI7CisgICAgLy8gVGFnIHZhbHVlIGZvciBhZGRpbmcgYW4gZWxlbWVudCBpbiBhIGxpc3QKKyAgU3RyaW5nIEFERF9MSVNUX0VMRV9UQUcgPSAiKi8iICsgTElTVF9UQUcgKyAiL2FkZCI7CisKKyAgICAvLyBzeW50YXggcnVsZXMKKwlkaWdlc3Rlci5hZGRPYmplY3RDcmVhdGUoICBERUZJTklUSU9OX1RBRywgZGVmaW5pdGlvbkhhbmRsZXJDbGFzcyApOworCWRpZ2VzdGVyLmFkZFNldFByb3BlcnRpZXMoIERFRklOSVRJT05fVEFHKTsKKwlkaWdlc3Rlci5hZGRTZXROZXh0KCAgICAgICBERUZJTklUSU9OX1RBRywgInB1dERlZmluaXRpb24iLCBkZWZpbml0aW9uSGFuZGxlckNsYXNzKTsKKyAgICAvLyBwdXQgLyBwdXRBdHRyaWJ1dGUgcnVsZXMKKyAgICAvLyBSdWxlcyBmb3IgYSBzYW1lIHBhdHRlcm4gYXJlIGNhbGxlZCBpbiBvcmRlciwgYnV0IHJ1bGUuZW5kKCkgYXJlIGNhbGxlZAorICAgIC8vIGluIHJldmVyc2Ugb3JkZXIuCisgICAgLy8gU2V0TmV4dCBhbmQgQ2FsbE1ldGhvZCB1c2UgcnVsZS5lbmQoKSBtZXRob2QuIFNvLCBwbGFjaW5nIFNldE5leHQgaW4KKyAgICAvLyBmaXJzdCBwb3NpdGlvbiBlbnN1cmUgaXQgd2lsbCBiZSBjYWxsZWQgbGFzdCAoc2ljKS4KKwlkaWdlc3Rlci5hZGRPYmplY3RDcmVhdGUoICBQVVRfVEFHLCBwdXRBdHRyaWJ1dGVIYW5kbGVyQ2xhc3MpOworCWRpZ2VzdGVyLmFkZFNldE5leHQoICAgICAgIFBVVF9UQUcsICJhZGRBdHRyaWJ1dGUiLCBwdXRBdHRyaWJ1dGVIYW5kbGVyQ2xhc3MpOworCWRpZ2VzdGVyLmFkZFNldFByb3BlcnRpZXMoIFBVVF9UQUcpOworCWRpZ2VzdGVyLmFkZENhbGxNZXRob2QoICAgIFBVVF9UQUcsICJzZXRCb2R5IiwgMCk7CisgICAgLy8gRGVmaW5pdGlvbiBsZXZlbCBsaXN0IHJ1bGVzCisgICAgLy8gVGhpcyBpcyBydWxlcyBmb3IgbGlzdHMgbmVzdGVkIGluIGEgZGVmaW5pdGlvbgorCWRpZ2VzdGVyLmFkZE9iamVjdENyZWF0ZSggIERFRl9MSVNUX1RBRywgbGlzdEhhbmRsZXJDbGFzcyk7CisJZGlnZXN0ZXIuYWRkU2V0UHJvcGVydGllcyggREVGX0xJU1RfVEFHKTsKKwlkaWdlc3Rlci5hZGRTZXROZXh0KCAgICAgICBERUZfTElTVF9UQUcsICJhZGRBdHRyaWJ1dGUiLCBwdXRBdHRyaWJ1dGVIYW5kbGVyQ2xhc3MpOworICAgIC8vIGxpc3QgZWxlbWVudHMgcnVsZXMKKyAgICAvLyBXZSB1c2UgQXR0cmlidXRlIGNsYXNzIHRvIGF2b2lkIHJld3JpdGluZyBhIG5ldyBjbGFzcy4KKyAgICAvLyBOYW1lIHBhcnQgY2FuJ3QgYmUgdXNlZCBpbiBsaXN0RWxlbWVudCBhdHRyaWJ1dGUuCisJZGlnZXN0ZXIuYWRkT2JqZWN0Q3JlYXRlKCAgQUREX0xJU1RfRUxFX1RBRywgcHV0QXR0cmlidXRlSGFuZGxlckNsYXNzKTsKKwlkaWdlc3Rlci5hZGRTZXROZXh0KCAgICAgICBBRERfTElTVF9FTEVfVEFHLCAiYWRkIiwgcHV0QXR0cmlidXRlSGFuZGxlckNsYXNzKTsKKwlkaWdlc3Rlci5hZGRTZXRQcm9wZXJ0aWVzKCBBRERfTElTVF9FTEVfVEFHKTsKKwlkaWdlc3Rlci5hZGRDYWxsTWV0aG9kKCAgICBBRERfTElTVF9FTEVfVEFHLCAic2V0Qm9keSIsIDApOworCisgICAgLy8gbmVzdGVkIGxpc3QgZWxlbWVudHMgcnVsZXMKKyAgICAvLyBDcmVhdGUgYSBsaXN0IGhhbmRsZXIsIGFuZCBhZGQgaXQgdG8gcGFyZW50IGxpc3QKKyAgU3RyaW5nIE5FU1RFRF9MSVNUID0gIiovIiArIExJU1RfVEFHICsgIi8iICsgTElTVF9UQUc7CisJZGlnZXN0ZXIuYWRkT2JqZWN0Q3JlYXRlKCAgTkVTVEVEX0xJU1QsIGxpc3RIYW5kbGVyQ2xhc3MpOworCWRpZ2VzdGVyLmFkZFNldFByb3BlcnRpZXMoIE5FU1RFRF9MSVNUKTsKKwlkaWdlc3Rlci5hZGRTZXROZXh0KCAgICAgICBORVNURURfTElTVCwgImFkZCIsIHB1dEF0dHJpYnV0ZUhhbmRsZXJDbGFzcyk7CisKKyAgICAvLyBpdGVtIGVsZW1lbnRzIHJ1bGVzCisgICAgLy8gV2UgdXNlIEF0dHJpYnV0ZSBjbGFzcyB0byBhdm9pZCByZXdyaXRpbmcgYSBuZXcgY2xhc3MuCisgICAgLy8gTmFtZSBwYXJ0IGNhbid0IGJlIHVzZWQgaW4gbGlzdEVsZW1lbnQgYXR0cmlidXRlLgorICAvL1N0cmluZyBBRERfV0lMRENBUkQgPSBMSVNUX1RBRyArICIvYWRkSXRlbSI7CisgIC8vIG5vbiBTdHJpbmcgQUREX1dJTERDQVJEID0gTElTVF9UQUcgKyAiL2FkZHgqIjsKKyAgU3RyaW5nIEFERF9XSUxEQ0FSRCA9ICIqL2l0ZW0iOworICBTdHJpbmcgbWVudUl0ZW1EZWZhdWx0Q2xhc3MgPSAib3JnLmFwYWNoZS50aWxlcy5iZWFucy5TaW1wbGVNZW51SXRlbSI7CisJZGlnZXN0ZXIuYWRkT2JqZWN0Q3JlYXRlKCAgQUREX1dJTERDQVJELCBtZW51SXRlbURlZmF1bHRDbGFzcywgImNsYXNzdHlwZSIpOworCWRpZ2VzdGVyLmFkZFNldE5leHQoICAgICAgIEFERF9XSUxEQ0FSRCwgImFkZCIsICJqYXZhLmxhbmcuT2JqZWN0Iik7CisJZGlnZXN0ZXIuYWRkU2V0UHJvcGVydGllcyggQUREX1dJTERDQVJEKTsKKworICAgIC8vIGJlYW4gZWxlbWVudHMgcnVsZXMKKyAgU3RyaW5nIEJFQU5fVEFHID0gIiovYmVhbiI7CisgIFN0cmluZyBiZWFuRGVmYXVsdENsYXNzID0gIm9yZy5hcGFjaGUudGlsZXMuYmVhbnMuU2ltcGxlTWVudUl0ZW0iOworCWRpZ2VzdGVyLmFkZE9iamVjdENyZWF0ZSggIEJFQU5fVEFHLCBiZWFuRGVmYXVsdENsYXNzLCAiY2xhc3N0eXBlIik7CisJZGlnZXN0ZXIuYWRkU2V0TmV4dCggICAgICAgQkVBTl9UQUcsICJhZGQiLCAiamF2YS5sYW5nLk9iamVjdCIpOworCWRpZ2VzdGVyLmFkZFNldFByb3BlcnRpZXMoIEJFQU5fVEFHKTsKKworICAgIC8vIFNldCBwcm9wZXJ0aWVzIHRvIHN1cnJvdW5kaW5nIGVsZW1lbnQKKyAgZGlnZXN0ZXIuYWRkU2V0UHJvcGVydHkoQkVBTl9UQUcrICIvc2V0LXByb3BlcnR5IiwgInByb3BlcnR5IiwgInZhbHVlIik7CisgIH0KKworICAgLyoqCisgICAgKiBJbml0IGRpZ2VzdGVyIGluIG9yZGVyIHRvIHBhcnNlIGluc3RhbmNlcyBkZWZpbml0aW9uIGZpbGUgc3ludGF4LgorICAgICogSW5zdGFuY2VzIGlzIGFuIG9sZCBuYW1lIGZvciAiZGVmaW5pdGlvbiIuIFRoaXMgbWV0aG9kIGlzIGxlZnQgZm9yCisgICAgKiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KKyAgICAqIEBwYXJhbSBkaWdlc3RlciBEaWdlc3RlciBpbnN0YW5jZSB0byB1c2UuCisgICAgKi8KKyAgcHJpdmF0ZSB2b2lkIGluaXREaWdlc3RlckZvckluc3RhbmNlc1N5bnRheCggRGlnZXN0ZXIgZGlnZXN0ZXIgKQorICB7CisgICAgCS8vIEJ1aWxkIGEgZGlnZXN0ZXIgdG8gcHJvY2VzcyBvdXIgY29uZmlndXJhdGlvbiByZXNvdXJjZQorICBTdHJpbmcgUEFDS0FHRV9OQU1FID0gIm9yZy5hcGFjaGUudGlsZXMueG1sRGVmaW5pdGlvbiI7CisgIFN0cmluZyBJTlNUQU5DRV9UQUcgPSAiY29tcG9uZW50LWluc3RhbmNlcy9pbnN0YW5jZSI7CisgIFN0cmluZyBpbnN0YW5jZUhhbmRsZXJDbGFzcyA9IFBBQ0tBR0VfTkFNRSArICIuWG1sRGVmaW5pdGlvbiI7CisKKyAgU3RyaW5nIFBVVF9UQUcgPSBJTlNUQU5DRV9UQUcgKyAiL3B1dCI7CisgIFN0cmluZyBQVVRBVFRSSUJVVEVfVEFHID0gSU5TVEFOQ0VfVEFHICsgIi9wdXRBdHRyaWJ1dGUiOworICBTdHJpbmcgcHV0QXR0cmlidXRlSGFuZGxlckNsYXNzID0gUEFDS0FHRV9OQU1FICsgIi5YbWxBdHRyaWJ1dGUiOworCisgIFN0cmluZyBMSVNUX1RBRyAgICAgPSBJTlNUQU5DRV9UQUcgKyAiL3B1dExpc3QiOworICBTdHJpbmcgbGlzdEhhbmRsZXJDbGFzcyAgICAgPSBQQUNLQUdFX05BTUUgKyAiLlhtbExpc3RBdHRyaWJ1dGUiOworCisgIFN0cmluZyBBRERfTElTVF9FTEVfVEFHID0gTElTVF9UQUcgKyAiL2FkZCI7CisKKyAgICAvLyBjb21wb25lbnQgaW5zdGFuY2UgcnVsZXMKKwlkaWdlc3Rlci5hZGRPYmplY3RDcmVhdGUoICBJTlNUQU5DRV9UQUcsIGluc3RhbmNlSGFuZGxlckNsYXNzICk7CisJZGlnZXN0ZXIuYWRkU2V0UHJvcGVydGllcyggSU5TVEFOQ0VfVEFHKTsKKwlkaWdlc3Rlci5hZGRTZXROZXh0KCAgICAgICBJTlNUQU5DRV9UQUcsICJwdXREZWZpbml0aW9uIiwgaW5zdGFuY2VIYW5kbGVyQ2xhc3MpOworICAgIC8vIHB1dCAvIHB1dEF0dHJpYnV0ZSBydWxlcworCWRpZ2VzdGVyLmFkZE9iamVjdENyZWF0ZSggIFBVVEFUVFJJQlVURV9UQUcsIHB1dEF0dHJpYnV0ZUhhbmRsZXJDbGFzcyk7CisJZGlnZXN0ZXIuYWRkU2V0UHJvcGVydGllcyggUFVUQVRUUklCVVRFX1RBRyk7CisJZGlnZXN0ZXIuYWRkU2V0TmV4dCggICAgICAgUFVUQVRUUklCVVRFX1RBRywgImFkZEF0dHJpYnV0ZSIsIHB1dEF0dHJpYnV0ZUhhbmRsZXJDbGFzcyk7CisgICAgLy8gcHV0IC8gcHV0QXR0cmlidXRlIHJ1bGVzCisJZGlnZXN0ZXIuYWRkT2JqZWN0Q3JlYXRlKCAgUFVUX1RBRywgcHV0QXR0cmlidXRlSGFuZGxlckNsYXNzKTsKKwlkaWdlc3Rlci5hZGRTZXRQcm9wZXJ0aWVzKCBQVVRfVEFHKTsKKwlkaWdlc3Rlci5hZGRTZXROZXh0KCAgICAgICBQVVRfVEFHLCAiYWRkQXR0cmlidXRlIiwgcHV0QXR0cmlidXRlSGFuZGxlckNsYXNzKTsKKyAgICAvLyBsaXN0IHJ1bGVzCisJZGlnZXN0ZXIuYWRkT2JqZWN0Q3JlYXRlKCAgTElTVF9UQUcsIGxpc3RIYW5kbGVyQ2xhc3MpOworCWRpZ2VzdGVyLmFkZFNldFByb3BlcnRpZXMoIExJU1RfVEFHKTsKKwlkaWdlc3Rlci5hZGRTZXROZXh0KCAgICAgICBMSVNUX1RBRywgImFkZEF0dHJpYnV0ZSIsIHB1dEF0dHJpYnV0ZUhhbmRsZXJDbGFzcyk7CisgICAgLy8gbGlzdCBlbGVtZW50cyBydWxlcworICAgIC8vIFdlIHVzZSBBdHRyaWJ1dGUgY2xhc3MgdG8gYXZvaWQgcmV3cml0aW5nIGEgbmV3IGNsYXNzLgorICAgIC8vIE5hbWUgcGFydCBjYW4ndCBiZSB1c2VkIGluIGxpc3RFbGVtZW50IGF0dHJpYnV0ZS4KKwlkaWdlc3Rlci5hZGRPYmplY3RDcmVhdGUoICBBRERfTElTVF9FTEVfVEFHLCBwdXRBdHRyaWJ1dGVIYW5kbGVyQ2xhc3MpOworCWRpZ2VzdGVyLmFkZFNldFByb3BlcnRpZXMoIEFERF9MSVNUX0VMRV9UQUcpOworCWRpZ2VzdGVyLmFkZFNldE5leHQoICAgICAgIEFERF9MSVNUX0VMRV9UQUcsICJhZGQiLCBwdXRBdHRyaWJ1dGVIYW5kbGVyQ2xhc3MpOworICB9CisKKyAgIC8qKgorICAgICogSW5pdCBkaWdlc3Rlci4KKyAgICAqIEBwYXJhbSBkaWdlc3RlciBEaWdlc3RlciBpbnN0YW5jZSB0byB1c2UuCisgICAgKi8KKyAgcHJvdGVjdGVkIHZvaWQgaW5pdERpZ2VzdGVyKCBEaWdlc3RlciBkaWdlc3RlciApCisgIHsKKyAgaW5pdERpZ2VzdGVyRm9yVGlsZXNEZWZpbml0aW9uc1N5bnRheCggZGlnZXN0ZXIgKTsKKyAgaW5pdERpZ2VzdGVyRm9yQ29tcG9uZW50c0RlZmluaXRpb25zU3ludGF4KCBkaWdlc3RlciApOworICBpbml0RGlnZXN0ZXJGb3JJbnN0YW5jZXNTeW50YXgoIGRpZ2VzdGVyICk7CisgIH0KKworICAvKioKKyAgICogUGFyc2UgaW5wdXQgcmVhZGVyIGFuZCBhZGQgZW5jb3VudGVyZWQgZGVmaW5pdGlvbnMgdG8gZGVmaW5pdGlvbnMgc2V0LgorICAgKiBAcGFyYW0gaW4gSW5wdXQgc3RyZWFtLgorICAgKiBAcGFyYW0gZGVmaW5pdGlvbnMgWG1sIERlZmluaXRpb25zIHNldCB0byB3aGljaCBlbmNvdW50ZXJlZCBkZWZpbml0aW9uIGFyZSBhZGRlZC4KKyAgICogQHRocm93cyBJT0V4Y2VwdGlvbiBPbiBlcnJvcnMgZHVyaW5nIGZpbGUgcGFyc2luZy4KKyAgICogQHRocm93cyBTQVhFeGNlcHRpb24gT24gZXJyb3JzIHBhcnNpbmcgWE1MLgorICAgKi8KKyAgcHVibGljIHZvaWQgcGFyc2UoIElucHV0U3RyZWFtIGluLCBYbWxEZWZpbml0aW9uc1NldCBkZWZpbml0aW9ucyApIHRocm93cyBJT0V4Y2VwdGlvbiwgU0FYRXhjZXB0aW9uCisgIHsKKwl0cnkKKyAgICB7CisgICAgICAvLyBzZXQgZmlyc3Qgb2JqZWN0IGluIHN0YWNrCisgICAgLy9kaWdlc3Rlci5jbGVhcigpOworICAgIGRpZ2VzdGVyLnB1c2goZGVmaW5pdGlvbnMpOworICAgICAgLy8gcGFyc2UKKwkgIGRpZ2VzdGVyLnBhcnNlKGluKTsKKwkgIGluLmNsb3NlKCk7CisJICB9CisgIGNhdGNoIChTQVhFeGNlcHRpb24gZSkKKyAgICB7CisJICAvL3Rocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKCAiRXJyb3Igd2hpbGUgcGFyc2luZyAiICsgbWFwcGluZ0NvbmZpZywgZSk7CisgICAgdGhyb3cgZTsKKwkgIH0KKworICB9CisKKyAgICAvKioKKyAgICAgKiBNYWluIG1ldGhvZCB0byBjaGVjayBmaWxlIHN5bnRheC4KKyAgICAgKi8KKyAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKKyAgeworICAvL1N0cmluZyBmaWxlbmFtZSA9ICJFOi9wcm9ncmFtcy9qYWthcnRhLXRvbWNhdC93ZWJhcHBzL3d0aWxlcy1zdHJ1dHMvV0VCLUlORi90aWxlcy1leGFtcGxlcy1kZWZzLnhtbCI7CisgIFN0cmluZyBmaWxlbmFtZSA9ICJFOi9wcm9ncmFtcy9qYWthcnRhLXRvbWNhdC00LjAuMy93ZWJhcHBzL3d0aWxlcy1zdHJ1dHMvV0VCLUlORi90aWxlcy1leGFtcGxlcy1kZWZzLnhtbCI7CisgIC8vU3RyaW5nIGZpbGVuYW1lID0gIkU6L3Byb2dyYW1zL2pha2FydGEtdG9tY2F0L3dlYmFwcHMvd3RpbGVzLXN0cnV0cy9XRUItSU5GL3RpbGVzRGVmaW5pdGlvbnMueG1sIjsKKyAgLy9TdHJpbmcgZmlsZW5hbWUgPSAiRTovcHJvZ3JhbXMvamFrYXJ0YS10b21jYXQvd2ViYXBwcy93dGlsZXMtY2hhbm5lbC9XRUItSU5GL2NvbXBvbmVudERlZmluaXRpb25zLnhtbCI7CisgIC8vU3RyaW5nIGZpbGVuYW1lMiA9ICJFOi9wcm9ncmFtcy9qYWthcnRhLXRvbWNhdC93ZWJhcHBzL3d0aWxlcy10dXRvcmlhbC9XRUItSU5GL2NvbXBvbmVudERlZmluaXRpb25zLnhtbCI7CisKKworICAgIGlmKCBhcmdzLmxlbmd0aCA+IDEgKQorICAgICAgeworICAgICAgZmlsZW5hbWUgPSBhcmdzWzFdOworICAgICAgfSAvLyBlbmQgaWYKKworICBTeXN0ZW0ub3V0LnByaW50bG4oICJSZWFkIGZpbGUgJyIgKyBmaWxlbmFtZSAgKyInIiApOworCisgIElucHV0U3RyZWFtIGlucHV0ID0gbnVsbDsKKyAgLy8gSW5wdXRTdHJlYW0gaW5wdXQyID0gbnVsbDsKKyAgICAvLyBPcGVuIGZpbGUKKyAgICB0cnkKKyAgICAgIHsKKwkgICAgaW5wdXQgPSBuZXcgQnVmZmVyZWRJbnB1dFN0cmVhbSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZpbGVJbnB1dFN0cmVhbSggZmlsZW5hbWUpICk7CisJLy8gICAgaW5wdXQyID0gbmV3IEJ1ZmZlcmVkSW5wdXRTdHJlYW0oCisgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgbmV3IEZpbGVJbnB1dFN0cmVhbSggZmlsZW5hbWUyKSApOworICAgICAgfQorICAgICBjYXRjaCggSU9FeGNlcHRpb24gZXggKQorICAgICAgeworICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiY2FuJ3Qgb3BlbiBmaWxlICciICsgZmlsZW5hbWUgKyAiJyA6ICIgKyBleC5nZXRNZXNzYWdlKCkgKTsKKyAgICAgIH0KKyAgICAvLyBDaGVjayBmaWxlIHN5bnRheAorICAgIHRyeQorICAgICAgeworCSAgICBYbWxQYXJzZXIgcGFyc2VyID0gbmV3IFhtbFBhcnNlcigpOworICAgICAgcGFyc2VyLnNldFZhbGlkYXRpbmcodHJ1ZSk7CisgICAgICBYbWxEZWZpbml0aW9uc1NldCBkZWZpbml0aW9ucyA9IG5ldyBYbWxEZWZpbml0aW9uc1NldCgpOworICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICIgIFBhcnNlIGZpbGUiICk7CisgICAgICBwYXJzZXIucGFyc2UoIGlucHV0LCBkZWZpbml0aW9ucyk7CisgICAgICAvLyAgU3lzdGVtLm91dC5wcmludGxuKCAiICBDaGVjayBmaWxlIDIiICk7CisgICAgICAvL3BhcnNlci5wYXJzZSggaW5wdXQyLCBkZWZpbml0aW9ucyk7CisgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiggIiAgZG9uZS4iICk7CisgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oICIgIFJlc3VsdCA6ICIgKyBkZWZpbml0aW9ucy50b1N0cmluZygpICk7CisgICAgICB9CisgICAgIGNhdGNoKCBFeGNlcHRpb24gZXggKQorICAgICAgeworICAgICAgU3lzdGVtLm91dC5wcmludGxuKCAiRXJyb3IgZHVyaW5nIHBhcnNpbmcgJyIgKyBmaWxlbmFtZSArICInIDogIiArIGV4LmdldE1lc3NhZ2UoKSApOworICAgICAgZXgucHJpbnRTdGFja1RyYWNlKCk7CisgICAgICB9CisgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMveG1sRGVmaW5pdGlvbi9zdWIgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS90aWxlcy94bWxEZWZpbml0aW9uL3N1YgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjUyZjNkCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdGlsZXMveG1sRGVmaW5pdGlvbi9zdWIKQEAgLTAsMCArMSwzIEBACisyLC9eRU5EL3sKKyAgL29yZy5hcGFjaGUuc3RydXRzLnRpbGVzL3MvL29yZy5hcGFjaGUudGlsZXMvZworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmphdmEgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS91dGlsL01lc3NhZ2VSZXNvdXJjZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yODU3NDBiCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdXRpbC9NZXNzYWdlUmVzb3VyY2VzLmphdmEKQEAgLTAsMCArMSw1MTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZ0ZhY3Rvcnk7CisKKy8qKgorICogR2VuZXJhbCBwdXJwb3NlIGFic3RyYWN0IGNsYXNzIHRoYXQgZGVzY3JpYmVzIGFuIEFQSSBmb3IgcmV0cmlldmluZworICogTG9jYWxlLXNlbnNpdGl2ZSBtZXNzYWdlcyBmcm9tIHVuZGVybHlpbmcgcmVzb3VyY2UgbG9jYXRpb25zIG9mIGFuCisgKiB1bnNwZWNpZmllZCBkZXNpZ24sIGFuZCBvcHRpb25hbGx5IHV0aWxpemluZyB0aGUgPGNvZGU+TWVzc2FnZUZvcm1hdDwvY29kZT4KKyAqIGNsYXNzIHRvIHByb2R1Y2UgaW50ZXJuYXRpb25hbGl6ZWQgbWVzc2FnZXMgd2l0aCBwYXJhbWV0cmljIHJlcGxhY2VtZW50LgorICogPHA+CisgKiBDYWxscyB0byA8Y29kZT5nZXRNZXNzYWdlKCk8L2NvZGU+IHZhcmlhbnRzIHdpdGhvdXQgYSA8Y29kZT5Mb2NhbGU8L2NvZGU+CisgKiBhcmd1bWVudCBhcmUgcHJlc3VtZWQgdG8gYmUgcmVxdWVzdGluZyBhIG1lc3NhZ2Ugc3RyaW5nIGluIHRoZSBkZWZhdWx0CisgKiA8Y29kZT5Mb2NhbGU8L2NvZGU+IGZvciB0aGlzIEpWTS4KKyAqIDxwPgorICogQ2FsbHMgdG8gPGNvZGU+Z2V0TWVzc2FnZSgpPC9jb2RlPiB3aXRoIGFuIHVua25vd24ga2V5LCBvciBhbiB1bmtub3duCisgKiA8Y29kZT5Mb2NhbGU8L2NvZGU+IHdpbGwgcmV0dXJuIDxjb2RlPm51bGw8L2NvZGU+IGlmIHRoZQorICogPGNvZGU+cmV0dXJuTnVsbDwvY29kZT4gcHJvcGVydHkgaXMgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LiAgT3RoZXJ3aXNlLAorICogYSBzdWl0YWJsZSBlcnJvciBtZXNzYWdlIHdpbGwgYmUgcmV0dXJuZWQgaW5zdGVhZC4KKyAqIDxwPgorICogPHN0cm9uZz5JTVBMRU1FTlRBVElPTiBOT1RFPC9zdHJvbmc+IC0gQ2xhc3NlcyB0aGF0IGV4dGVuZCB0aGlzIGNsYXNzCisgKiBtdXN0IGJlIFNlcmlhbGl6YWJsZSBzbyB0aGF0IGluc3RhbmNlcyBtYXkgYmUgdXNlZCBpbiBkaXN0cmlidXRhYmxlCisgKiBhcHBsaWNhdGlvbiBzZXJ2ZXIgZW52aXJvbm1lbnRzLgorICoKKyAqIEBhdXRob3IgQ3JhaWcgUi4gTWNDbGFuYWhhbgorICogQHZlcnNpb24gJFJldmlzaW9uOiAxLjE4ICQgJERhdGU6IDIwMDMvMDcvMDIgMDM6NDI6MDkgJAorICovCitwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTWVzc2FnZVJlc291cmNlcyBpbXBsZW1lbnRzIFNlcmlhbGl6YWJsZSB7CisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3BlcnRpZXMKKworICAgIC8qKgorICAgICAqIENvbW1vbnMgTG9nZ2luZyBpbnN0YW5jZS4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyhNZXNzYWdlUmVzb3VyY2VzLmNsYXNzKTsKKworICAgIC8qKgorICAgICAqIFRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciB1c2VkIHRvIGluaXRpYWxpemUgdGhpcyBNZXNzYWdlUmVzb3VyY2VzLgorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgY29uZmlnID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIFRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciB1c2VkIHRvIGluaXRpYWxpemUgdGhpcyBNZXNzYWdlUmVzb3VyY2VzLgorICAgICAqIEByZXR1cm4gcGFyYW1ldGVyIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGlzIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldENvbmZpZygpIHsKKyAgICAgICAgcmV0dXJuICh0aGlzLmNvbmZpZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgTG9jYWxlIGZvciBvdXIgZW52aXJvbm1lbnQuCisgICAgICovCisgICAgcHJvdGVjdGVkIExvY2FsZSBkZWZhdWx0TG9jYWxlID0gTG9jYWxlLmdldERlZmF1bHQoKTsKKworICAgIC8qKgorICAgICAqIFRoZSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gdGhhdCBjcmVhdGVkIHRoaXMgaW5zdGFuY2UuCisgICAgICovCisgICAgcHJvdGVjdGVkIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IGZhY3RvcnkgPSBudWxsOworCisgICAgLyoqCisgICAgICogVGhlIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiB0aGF0IGNyZWF0ZWQgdGhpcyBpbnN0YW5jZS4KKyAgICAgKiBAcmV0dXJuIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiB0aGF0IGNyZWF0ZWQgaW5zdGFuY2UKKyAgICAgKi8KKyAgICBwdWJsaWMgTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgZ2V0RmFjdG9yeSgpIHsKKyAgICAgICAgcmV0dXJuICh0aGlzLmZhY3RvcnkpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFRoZSBzZXQgb2YgcHJldmlvdXNseSBjcmVhdGVkIE1lc3NhZ2VGb3JtYXQgb2JqZWN0cywga2V5ZWQgYnkgdGhlCisgICAgICoga2V5IGNvbXB1dGVkIGluIDxjb2RlPm1lc3NhZ2VLZXkoKTwvY29kZT4uCisgICAgICovCisgICAgcHJvdGVjdGVkIEhhc2hNYXAgZm9ybWF0cyA9IG5ldyBIYXNoTWFwKCk7CisKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZSBpcyBhIDxjb2RlPm51bGw8L2NvZGU+IGlzIHJldHVybmVkIGluc3RlYWQgb2YgYW4gZXJyb3IgbWVzc2FnZSBzdHJpbmcKKyAgICAgKiB3aGVuIGFuIHVua25vd24gTG9jYWxlIG9yIGtleSBpcyByZXF1ZXN0ZWQuCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gcmV0dXJuTnVsbCA9IGZhbHNlOworCisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgYSA8Y29kZT5udWxsPC9jb2RlPiBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mIGFuIGVycm9yIG1lc3NhZ2Ugc3RyaW5nCisgICAgICogaWYgYW4gdW5rbm93biBMb2NhbGUgb3Iga2V5IGlzIHJlcXVlc3RlZC4KKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgbnVsbCBpcyByZXR1cm5lZCBpZiB1bmtub3duIGtleSBvciBsb2NhbGUgaXMgcmVxdWVzdGVkCisgICAgICovCisgICAgcHVibGljIGJvb2xlYW4gZ2V0UmV0dXJuTnVsbCgpIHsKKyAgICAgICAgcmV0dXJuICh0aGlzLnJldHVybk51bGwpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEluZGljYXRlcyB0aGF0IGEgPGNvZGU+bnVsbDwvY29kZT4gaXMgcmV0dXJuZWQgaW5zdGVhZCBvZiBhbiBlcnJvciBtZXNzYWdlIHN0cmluZworICAgICAqIGlmIGFuIHVua25vd24gTG9jYWxlIG9yIGtleSBpcyByZXF1ZXN0ZWQuCisgICAgICogQHBhcmFtIHJldHVybk51bGwgdHJ1ZSBJbmRpY2F0ZXMgdGhhdCBhIDxjb2RlPm51bGw8L2NvZGU+IGlzIHJldHVybmVkCisgICAgICogaWYgYW4gdW5rbm93biBMb2NhbGUgb3Iga2V5IGlzIHJlcXVlc3RlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSZXR1cm5OdWxsKGJvb2xlYW4gcmV0dXJuTnVsbCkgeworICAgICAgICB0aGlzLnJldHVybk51bGwgPSByZXR1cm5OdWxsOworICAgIH0KKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENvbnN0cnVjdG9ycworCisgICAgLyoqCisgICAgICogQ29uc3RydWN0IGEgbmV3IE1lc3NhZ2VSZXNvdXJjZXMgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmYWN0b3J5IFRoZSBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSB0aGF0IGNyZWF0ZWQgdXMKKyAgICAgKiBAcGFyYW0gY29uZmlnIFRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBmb3IgdGhpcyBNZXNzYWdlUmVzb3VyY2VzCisgICAgICovCisgICAgcHVibGljIE1lc3NhZ2VSZXNvdXJjZXMoTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgZmFjdG9yeSwgU3RyaW5nIGNvbmZpZykgeworCisgICAgICAgIHRoaXMoZmFjdG9yeSwgY29uZmlnLCBmYWxzZSk7CisKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgTWVzc2FnZVJlc291cmNlcyBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIGZhY3RvcnkgVGhlIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IHRoYXQgY3JlYXRlZCB1cworICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGZvciB0aGlzIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgKiBAcGFyYW0gcmV0dXJuTnVsbCBUaGUgcmV0dXJuTnVsbCBwcm9wZXJ0eSB3ZSBzaG91bGQgaW5pdGlhbGl6ZSB3aXRoCisgICAgICovCisgICAgcHVibGljIE1lc3NhZ2VSZXNvdXJjZXMoCisgICAgICAgIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IGZhY3RvcnksCisgICAgICAgIFN0cmluZyBjb25maWcsCisgICAgICAgIGJvb2xlYW4gcmV0dXJuTnVsbCkgeworCisgICAgICAgIHN1cGVyKCk7CisgICAgICAgIHRoaXMuZmFjdG9yeSA9IGZhY3Rvcnk7CisgICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnOworICAgICAgICB0aGlzLnJldHVybk51bGwgPSByZXR1cm5OdWxsOworCisgICAgfQorCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBNZXRob2RzCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgZm9yIHRoZSBkZWZhdWx0IExvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkgVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXAKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE1lc3NhZ2UoU3RyaW5nIGtleSkgeworCisgICAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoKExvY2FsZSkgbnVsbCwga2V5KTsKKworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgICAgICogcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkgVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXAKKyAgICAgKiBAcGFyYW0gYXJncyBBbiBhcnJheSBvZiByZXBsYWNlbWVudCBwYXJhbWV0ZXJzIGZvciBwbGFjZWhvbGRlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE1lc3NhZ2UoU3RyaW5nIGtleSwgT2JqZWN0IGFyZ3NbXSkgeworCisgICAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoKExvY2FsZSkgbnVsbCwga2V5LCBhcmdzKTsKKworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgICAgICogcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkgVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXAKKyAgICAgKiBAcGFyYW0gYXJnMCBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHswfSBpbiB0aGUgbWVzc2FnZQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TWVzc2FnZShTdHJpbmcga2V5LCBPYmplY3QgYXJnMCkgeworCisgICAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoKExvY2FsZSkgbnVsbCwga2V5LCBhcmcwKTsKKworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgICAgICogcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkgVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXAKKyAgICAgKiBAcGFyYW0gYXJnMCBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHswfSBpbiB0aGUgbWVzc2FnZQorICAgICAqIEBwYXJhbSBhcmcxIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezF9IGluIHRoZSBtZXNzYWdlCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRNZXNzYWdlKFN0cmluZyBrZXksIE9iamVjdCBhcmcwLCBPYmplY3QgYXJnMSkgeworCisgICAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoKExvY2FsZSkgbnVsbCwga2V5LCBhcmcwLCBhcmcxKTsKKworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgICAgICogcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkgVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXAKKyAgICAgKiBAcGFyYW0gYXJnMCBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHswfSBpbiB0aGUgbWVzc2FnZQorICAgICAqIEBwYXJhbSBhcmcxIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezF9IGluIHRoZSBtZXNzYWdlCisgICAgICogQHBhcmFtIGFyZzIgVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7Mn0gaW4gdGhlIG1lc3NhZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE1lc3NhZ2UoU3RyaW5nIGtleSwgT2JqZWN0IGFyZzAsIE9iamVjdCBhcmcxLCBPYmplY3QgYXJnMikgeworCisgICAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoKExvY2FsZSkgbnVsbCwga2V5LCBhcmcwLCBhcmcxLCBhcmcyKTsKKworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgICAgICogcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkgVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXAKKyAgICAgKiBAcGFyYW0gYXJnMCBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHswfSBpbiB0aGUgbWVzc2FnZQorICAgICAqIEBwYXJhbSBhcmcxIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezF9IGluIHRoZSBtZXNzYWdlCisgICAgICogQHBhcmFtIGFyZzIgVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7Mn0gaW4gdGhlIG1lc3NhZ2UKKyAgICAgKiBAcGFyYW0gYXJnMyBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHszfSBpbiB0aGUgbWVzc2FnZQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TWVzc2FnZSgKKyAgICAgICAgU3RyaW5nIGtleSwKKyAgICAgICAgT2JqZWN0IGFyZzAsCisgICAgICAgIE9iamVjdCBhcmcxLAorICAgICAgICBPYmplY3QgYXJnMiwKKyAgICAgICAgT2JqZWN0IGFyZzMpIHsKKworICAgICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKChMb2NhbGUpIG51bGwsIGtleSwgYXJnMCwgYXJnMSwgYXJnMiwgYXJnMyk7CisKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGZvciB0aGUgc3BlY2lmaWVkIGtleSwgZm9yIHRoZSBkZWZhdWx0IExvY2FsZS4KKyAgICAgKiBBIG51bGwgc3RyaW5nIHJlc3VsdCB3aWxsIGJlIHJldHVybmVkIGJ5IHRoaXMgbWV0aG9kIGlmIG5vIHJlbGV2YW50CisgICAgICogbWVzc2FnZSByZXNvdXJjZSBpcyBmb3VuZCBmb3IgdGhpcyBrZXkgb3IgTG9jYWxlLCBpZiB0aGUKKyAgICAgKiA8Y29kZT5yZXR1cm5OdWxsPC9jb2RlPiBwcm9wZXJ0eSBpcyBzZXQuICBPdGhlcndpc2UsIGFuIGFwcHJvcHJpYXRlCisgICAgICogZXJyb3IgbWVzc2FnZSB3aWxsIGJlIHJldHVybmVkLgorICAgICAqIDxwPgorICAgICAqIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgYSBjb25jcmV0ZSBzdWJjbGFzcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIHJlcXVlc3RlZCBtZXNzYWdlIExvY2FsZSwgb3IgPGNvZGU+bnVsbDwvY29kZT4KKyAgICAgKiAgZm9yIHRoZSBzeXN0ZW0gZGVmYXVsdCBMb2NhbGUKKyAgICAgKiBAcGFyYW0ga2V5IFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IFN0cmluZyBnZXRNZXNzYWdlKExvY2FsZSBsb2NhbGUsIFN0cmluZyBrZXkpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyAgICAgKiBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLiAgQSBudWxsIHN0cmluZyByZXN1bHQgd2lsbCBiZSByZXR1cm5lZCBieQorICAgICAqIHRoaXMgbWV0aG9kIGlmIG5vIHJlc291cmNlIGJ1bmRsZSBoYXMgYmVlbiBjb25maWd1cmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgcmVxdWVzdGVkIG1lc3NhZ2UgTG9jYWxlLCBvciA8Y29kZT5udWxsPC9jb2RlPgorICAgICAqICBmb3IgdGhlIHN5c3RlbSBkZWZhdWx0IExvY2FsZQorICAgICAqIEBwYXJhbSBrZXkgVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXAKKyAgICAgKiBAcGFyYW0gYXJncyBBbiBhcnJheSBvZiByZXBsYWNlbWVudCBwYXJhbWV0ZXJzIGZvciBwbGFjZWhvbGRlcnMKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE1lc3NhZ2UoTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGtleSwgT2JqZWN0IGFyZ3NbXSkgeworCisgICAgICAgIC8vIENhY2hlIE1lc3NhZ2VGb3JtYXQgaW5zdGFuY2VzIGFzIHRoZXkgYXJlIGFjY2Vzc2VkCisgICAgICAgIGlmIChsb2NhbGUgPT0gbnVsbCkgeworICAgICAgICAgICAgbG9jYWxlID0gZGVmYXVsdExvY2FsZTsKKyAgICAgICAgfQorCisgICAgICAgIE1lc3NhZ2VGb3JtYXQgZm9ybWF0ID0gbnVsbDsKKyAgICAgICAgU3RyaW5nIGZvcm1hdEtleSA9IG1lc3NhZ2VLZXkobG9jYWxlLCBrZXkpOworCisgICAgICAgIHN5bmNocm9uaXplZCAoZm9ybWF0cykgeworICAgICAgICAgICAgZm9ybWF0ID0gKE1lc3NhZ2VGb3JtYXQpIGZvcm1hdHMuZ2V0KGZvcm1hdEtleSk7CisgICAgICAgICAgICBpZiAoZm9ybWF0ID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgZm9ybWF0U3RyaW5nID0gZ2V0TWVzc2FnZShsb2NhbGUsIGtleSk7CisKKyAgICAgICAgICAgICAgICBpZiAoZm9ybWF0U3RyaW5nID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldHVybk51bGwgPyBudWxsIDogKCI/Pz8iICsgZm9ybWF0S2V5ICsgIj8/PyIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvcm1hdCA9IG5ldyBNZXNzYWdlRm9ybWF0KGVzY2FwZShmb3JtYXRTdHJpbmcpKTsKKyAgICAgICAgICAgICAgICBmb3JtYXRzLnB1dChmb3JtYXRLZXksIGZvcm1hdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmb3JtYXQuZm9ybWF0KGFyZ3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgICAgICogcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4gIEEgbnVsbCBzdHJpbmcgcmVzdWx0IHdpbGwgbmV2ZXIgYmUgcmV0dXJuZWQKKyAgICAgKiBieSB0aGlzIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIHJlcXVlc3RlZCBtZXNzYWdlIExvY2FsZSwgb3IgPGNvZGU+bnVsbDwvY29kZT4KKyAgICAgKiAgZm9yIHRoZSBzeXN0ZW0gZGVmYXVsdCBMb2NhbGUKKyAgICAgKiBAcGFyYW0ga2V5IFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwCisgICAgICogQHBhcmFtIGFyZzAgVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7MH0gaW4gdGhlIG1lc3NhZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE1lc3NhZ2UoTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGtleSwgT2JqZWN0IGFyZzApIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWVzc2FnZShsb2NhbGUsIGtleSwgbmV3IE9iamVjdFtdIHsgYXJnMCB9KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgdGV4dCBtZXNzYWdlIGFmdGVyIHBhcmFtZXRyaWMgcmVwbGFjZW1lbnQgb2YgdGhlIHNwZWNpZmllZAorICAgICAqIHBhcmFtZXRlciBwbGFjZWhvbGRlcnMuICBBIG51bGwgc3RyaW5nIHJlc3VsdCB3aWxsIG5ldmVyIGJlIHJldHVybmVkCisgICAgICogYnkgdGhpcyBtZXRob2QuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlIFRoZSByZXF1ZXN0ZWQgbWVzc2FnZSBMb2NhbGUsIG9yIDxjb2RlPm51bGw8L2NvZGU+CisgICAgICogIGZvciB0aGUgc3lzdGVtIGRlZmF1bHQgTG9jYWxlCisgICAgICogQHBhcmFtIGtleSBUaGUgbWVzc2FnZSBrZXkgdG8gbG9vayB1cAorICAgICAqIEBwYXJhbSBhcmcwIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezB9IGluIHRoZSBtZXNzYWdlCisgICAgICogQHBhcmFtIGFyZzEgVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7MX0gaW4gdGhlIG1lc3NhZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE1lc3NhZ2UoTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGtleSwgT2JqZWN0IGFyZzAsIE9iamVjdCBhcmcxKSB7CisgICAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UobG9jYWxlLCBrZXksIG5ldyBPYmplY3RbXSB7IGFyZzAsIGFyZzEgfSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyBhIHRleHQgbWVzc2FnZSBhZnRlciBwYXJhbWV0cmljIHJlcGxhY2VtZW50IG9mIHRoZSBzcGVjaWZpZWQKKyAgICAgKiBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzLiAgQSBudWxsIHN0cmluZyByZXN1bHQgd2lsbCBuZXZlciBiZSByZXR1cm5lZAorICAgICAqIGJ5IHRoaXMgbWV0aG9kLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgcmVxdWVzdGVkIG1lc3NhZ2UgTG9jYWxlLCBvciA8Y29kZT5udWxsPC9jb2RlPgorICAgICAqICBmb3IgdGhlIHN5c3RlbSBkZWZhdWx0IExvY2FsZQorICAgICAqIEBwYXJhbSBrZXkgVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXAKKyAgICAgKiBAcGFyYW0gYXJnMCBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHswfSBpbiB0aGUgbWVzc2FnZQorICAgICAqIEBwYXJhbSBhcmcxIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezF9IGluIHRoZSBtZXNzYWdlCisgICAgICogQHBhcmFtIGFyZzIgVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7Mn0gaW4gdGhlIG1lc3NhZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE1lc3NhZ2UoCisgICAgICAgIExvY2FsZSBsb2NhbGUsCisgICAgICAgIFN0cmluZyBrZXksCisgICAgICAgIE9iamVjdCBhcmcwLAorICAgICAgICBPYmplY3QgYXJnMSwKKyAgICAgICAgT2JqZWN0IGFyZzIpIHsKKworICAgICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKGxvY2FsZSwga2V5LCBuZXcgT2JqZWN0W10geyBhcmcwLCBhcmcxLCBhcmcyIH0pOworICAgIH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgYWZ0ZXIgcGFyYW1ldHJpYyByZXBsYWNlbWVudCBvZiB0aGUgc3BlY2lmaWVkCisgICAgICogcGFyYW1ldGVyIHBsYWNlaG9sZGVycy4gIEEgbnVsbCBzdHJpbmcgcmVzdWx0IHdpbGwgbmV2ZXIgYmUgcmV0dXJuZWQKKyAgICAgKiBieSB0aGlzIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIHJlcXVlc3RlZCBtZXNzYWdlIExvY2FsZSwgb3IgPGNvZGU+bnVsbDwvY29kZT4KKyAgICAgKiAgZm9yIHRoZSBzeXN0ZW0gZGVmYXVsdCBMb2NhbGUKKyAgICAgKiBAcGFyYW0ga2V5IFRoZSBtZXNzYWdlIGtleSB0byBsb29rIHVwCisgICAgICogQHBhcmFtIGFyZzAgVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7MH0gaW4gdGhlIG1lc3NhZ2UKKyAgICAgKiBAcGFyYW0gYXJnMSBUaGUgcmVwbGFjZW1lbnQgZm9yIHBsYWNlaG9sZGVyIHsxfSBpbiB0aGUgbWVzc2FnZQorICAgICAqIEBwYXJhbSBhcmcyIFRoZSByZXBsYWNlbWVudCBmb3IgcGxhY2Vob2xkZXIgezJ9IGluIHRoZSBtZXNzYWdlCisgICAgICogQHBhcmFtIGFyZzMgVGhlIHJlcGxhY2VtZW50IGZvciBwbGFjZWhvbGRlciB7M30gaW4gdGhlIG1lc3NhZ2UKKyAgICAgKi8KKyAgICBwdWJsaWMgU3RyaW5nIGdldE1lc3NhZ2UoCisgICAgICAgIExvY2FsZSBsb2NhbGUsCisgICAgICAgIFN0cmluZyBrZXksCisgICAgICAgIE9iamVjdCBhcmcwLAorICAgICAgICBPYmplY3QgYXJnMSwKKyAgICAgICAgT2JqZWN0IGFyZzIsCisgICAgICAgIE9iamVjdCBhcmczKSB7CisKKyAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWVzc2FnZShsb2NhbGUsIGtleSwgbmV3IE9iamVjdFtdIHsgYXJnMCwgYXJnMSwgYXJnMiwgYXJnMyB9KTsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gPGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlcmUgaXMgYSBkZWZpbmVkIG1lc3NhZ2UgZm9yIHRoZSBzcGVjaWZpZWQKKyAgICAgKiBrZXkgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IGxvY2FsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXkgVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1ByZXNlbnQoU3RyaW5nIGtleSkgeworCisgICAgICAgIHJldHVybiB0aGlzLmlzUHJlc2VudChudWxsLCBrZXkpOworCisgICAgfQorCisgICAgLyoqCisgICAgICogUmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZXJlIGlzIGEgZGVmaW5lZCBtZXNzYWdlIGZvciB0aGUgc3BlY2lmaWVkCisgICAgICoga2V5IGluIHRoZSBzcGVjaWZpZWQgTG9jYWxlLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgcmVxdWVzdGVkIG1lc3NhZ2UgTG9jYWxlLCBvciA8Y29kZT5udWxsPC9jb2RlPgorICAgICAqICBmb3IgdGhlIHN5c3RlbSBkZWZhdWx0IExvY2FsZQorICAgICAqIEBwYXJhbSBrZXkgVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXAKKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBpc1ByZXNlbnQoTG9jYWxlIGxvY2FsZSwgU3RyaW5nIGtleSkgeworCisgICAgICAgIFN0cmluZyBtZXNzYWdlID0gZ2V0TWVzc2FnZShsb2NhbGUsIGtleSk7CisKKyAgICAgICAgaWYgKG1lc3NhZ2UgPT0gbnVsbCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS5zdGFydHNXaXRoKCI/Pz8iKSAmJiBtZXNzYWdlLmVuZHNXaXRoKCI/Pz8iKSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBGSVhNRSAtIE9ubHkgdmFsaWQgZm9yIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KKworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgIH0KKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm90ZWN0ZWQgTWV0aG9kcworCisgICAgLyoqCisgICAgICogRXNjYXBlIGFueSBzaW5nbGUgcXVvdGUgY2hhcmFjdGVycyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUgc3BlY2lmaWVkCisgICAgICogbWVzc2FnZSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBzdHJpbmcgdG8gYmUgZXNjYXBlZAorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgZXNjYXBlKFN0cmluZyBzdHJpbmcpIHsKKworICAgICAgICBpZiAoKHN0cmluZyA9PSBudWxsKSB8fCAoc3RyaW5nLmluZGV4T2YoJ1wnJykgPCAwKSkgeworICAgICAgICAgICAgcmV0dXJuIHN0cmluZzsKKyAgICAgICAgfQorCisgICAgICAgIGludCBuID0gc3RyaW5nLmxlbmd0aCgpOworICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKG4pOworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CisgICAgICAgICAgICBjaGFyIGNoID0gc3RyaW5nLmNoYXJBdChpKTsKKworICAgICAgICAgICAgaWYgKGNoID09ICdcJycpIHsKKyAgICAgICAgICAgICAgICBzYi5hcHBlbmQoJ1wnJyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNiLmFwcGVuZChjaCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gc2IudG9TdHJpbmcoKTsKKworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXB1dGUgYW5kIHJldHVybiBhIGtleSB0byBiZSB1c2VkIGluIGNhY2hpbmcgaW5mb3JtYXRpb24gYnkgYSBMb2NhbGUuCisgICAgICogPHN0cm9uZz5OT1RFPC9zdHJvbmc+IC0gVGhlIGxvY2FsZSBrZXkgZm9yIHRoZSBkZWZhdWx0IExvY2FsZSBpbiBvdXIKKyAgICAgKiBlbnZpcm9ubWVudCBpcyBhIHplcm8gbGVuZ3RoIFN0cmluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBmb3Igd2hpY2ggYSBrZXkgaXMgZGVzaXJlZAorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgbG9jYWxlS2V5KExvY2FsZSBsb2NhbGUpIHsKKyAgICAgICAgcmV0dXJuIChsb2NhbGUgPT0gbnVsbCkgPyAiIiA6IGxvY2FsZS50b1N0cmluZygpOworICAgIH0KKworICAgIC8qKgorICAgICAqIENvbXB1dGUgYW5kIHJldHVybiBhIGtleSB0byBiZSB1c2VkIGluIGNhY2hpbmcgaW5mb3JtYXRpb24KKyAgICAgKiBieSBMb2NhbGUgYW5kIG1lc3NhZ2Uga2V5LgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgTG9jYWxlIGZvciB3aGljaCB0aGlzIGZvcm1hdCBrZXkgaXMgY2FsY3VsYXRlZAorICAgICAqIEBwYXJhbSBrZXkgVGhlIG1lc3NhZ2Uga2V5IGZvciB3aGljaCB0aGlzIGZvcm1hdCBrZXkgaXMgY2FsY3VsYXRlZAorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgbWVzc2FnZUtleShMb2NhbGUgbG9jYWxlLCBTdHJpbmcga2V5KSB7CisKKyAgICAgICAgcmV0dXJuIChsb2NhbGVLZXkobG9jYWxlKSArICIuIiArIGtleSk7CisKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBDb21wdXRlIGFuZCByZXR1cm4gYSBrZXkgdG8gYmUgdXNlZCBpbiBjYWNoaW5nIGluZm9ybWF0aW9uCisgICAgICogYnkgbG9jYWxlIGtleSBhbmQgbWVzc2FnZSBrZXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbG9jYWxlS2V5IFRoZSBsb2NhbGUga2V5IGZvciB3aGljaCB0aGlzIGNhY2hlIGtleSBpcyBjYWxjdWxhdGVkCisgICAgICogQHBhcmFtIGtleSBUaGUgbWVzc2FnZSBrZXkgZm9yIHdoaWNoIHRoaXMgY2FjaGUga2V5IGlzIGNhbGN1bGF0ZWQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIG1lc3NhZ2VLZXkoU3RyaW5nIGxvY2FsZUtleSwgU3RyaW5nIGtleSkgeworCisgICAgICAgIHJldHVybiAobG9jYWxlS2V5ICsgIi4iICsga2V5KTsKKworICAgIH0KKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBTdGF0aWMgTWV0aG9kcworCisgICAgLyoqCisgICAgICogVGhlIGRlZmF1bHQgTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgdXNlZCB0byBjcmVhdGUgTWVzc2FnZVJlc291cmNlcworICAgICAqIGluc3RhbmNlcy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgc3RhdGljIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IGRlZmF1bHRGYWN0b3J5ID0gbnVsbDsKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhbmQgcmV0dXJuIGFuIGluc3RhbmNlIG9mIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGZvciB0aGUKKyAgICAgKiBjcmVhdGVkIGJ5IHRoZSBkZWZhdWx0IDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb25maWcgQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgZm9yIHRoaXMgbWVzc2FnZSBidW5kbGUuCisgICAgICovCisgICAgcHVibGljIHN5bmNocm9uaXplZCBzdGF0aWMgTWVzc2FnZVJlc291cmNlcyBnZXRNZXNzYWdlUmVzb3VyY2VzKFN0cmluZyBjb25maWcpIHsKKworICAgICAgICBpZiAoZGVmYXVsdEZhY3RvcnkgPT0gbnVsbCkgeworICAgICAgICAgICAgZGVmYXVsdEZhY3RvcnkgPSBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5jcmVhdGVGYWN0b3J5KCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZGVmYXVsdEZhY3RvcnkuY3JlYXRlUmVzb3VyY2VzKGNvbmZpZyk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTG9nIGEgbWVzc2FnZSB0byB0aGUgV3JpdGVyIHRoYXQgaGFzIGJlZW4gY29uZmlndXJlZCBmb3Igb3VyIHVzZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIGJlIGxvZ2dlZAorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGxvZyhTdHJpbmcgbWVzc2FnZSkgeworICAgICAgICBsb2cuZGVidWcobWVzc2FnZSk7CisgICAgfQorCisgICAgLyoqCisgICAgICogTG9nIGEgbWVzc2FnZSBhbmQgZXhjZXB0aW9uIHRvIHRoZSBXcml0ZXIgdGhhdCBoYXMgYmVlbiBjb25maWd1cmVkCisgICAgICogZm9yIG91ciB1c2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBiZSBsb2dnZWQKKyAgICAgKiBAcGFyYW0gdGhyb3dhYmxlIFRoZSBleGNlcHRpb24gdG8gYmUgbG9nZ2VkCisgICAgICovCisgICAgcHVibGljIHZvaWQgbG9nKFN0cmluZyBtZXNzYWdlLCBUaHJvd2FibGUgdGhyb3dhYmxlKSB7CisgICAgICAgIGxvZy5kZWJ1ZyhtZXNzYWdlLCB0aHJvd2FibGUpOworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdXRpbC9NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwOTdkOTgKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9jb3JlLWxpYnJhcnkvc3JjL2phdmEvb3JnL2FwYWNoZS91dGlsL01lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LmphdmEKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLlNlcmlhbGl6YWJsZTsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKKworaW1wb3J0IG9yZy5hcGFjaGUudGlsZXMuVGlsZXNVdGlsOworCisKKy8qKgorICogRmFjdG9yeSBmb3IgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW5zdGFuY2VzLiAgVGhlIGdlbmVyYWwgdXNhZ2UKKyAqIHBhdHRlcm4gZm9yIHRoaXMgY2xhc3MgaXM6CisgKiA8dWw+CisgKiA8bGk+Q2FsbCA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSgpLmNyZWF0ZUZhY3RvcnkoKTwvY29kZT4gdG8gcmV0cmlldmUKKyAqICAgICBhIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZS48L2xpPgorICogPGxpPlNldCBwcm9wZXJ0aWVzIGFzIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0aGlzIGZhY3RvcnkgaW5zdGFuY2UgdG8gY3JlYXRlCisgKiAgICAgPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW5zdGFuY2VzIHdpdGggZGVzaXJlZAorICogICAgIGNoYXJhY3RlcmlzdGljcy48L2xpPgorICogPGxpPkNhbGwgdGhlIDxjb2RlPmNyZWF0ZVJlc291cmNlcygpPC9jb2RlPiBtZXRob2Qgb2YgdGhlIGZhY3RvcnkgdG8KKyAqICAgICByZXRyaWV2ZSBhIG5ld2x5IGluc3RhbnRpYXRlZCA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPgorICogICAgIGluc3RhbmNlLjwvbGk+CisgKiA8L3VsPgorICoKKyAqIEBhdXRob3IgQ3JhaWcgUi4gTWNDbGFuYWhhbgorICogQGF1dGhvciBEYXZpZCBHZWFyeQorICogQHZlcnNpb24gJFJldmlzaW9uOiAxLjggJCAkRGF0ZTogMjAwMi8xMC8xNyAwMzoyMDozMSAkCisgKi8KKworcHVibGljIGFic3RyYWN0IGNsYXNzIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IGltcGxlbWVudHMgU2VyaWFsaXphYmxlIHsKKworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJbnN0YW5jZSBQcm9wZXJ0aWVzCisKKworICAgIC8qKgorICAgICAqIFRoZSAicmV0dXJuIG51bGwiIHByb3BlcnR5IHZhbHVlIHRvIHdoaWNoIG5ld2x5IGNyZWF0ZWQKKyAgICAgKiBNZXNzYWdlUmVzb3VyY2VzcyBzaG91bGQgYmUgaW5pdGlhbGl6ZWQuCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gcmV0dXJuTnVsbCA9IHRydWU7CisKKyAgICAvKioKKyAgICAgKiBHZXQgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgInJldHVybk51bGwiIHByb3BlcnR5IHVzZWQgdG8gaW5pdGlhbGl6ZSBuZXdseSBjcmVhdGVkCisgICAgICogTWVzc2FnZVJlc291cmNlc3MuCisgICAgICogQHJldHVybiBkZWZhdWx0IHZhbHVlIG9mIHRoZSAicmV0dXJuTnVsbCIgcHJvcGVydHkgbmV3bHkgY3JlYXRlZAorICAgICAqIE1lc3NhZ2VSZXNvdXJjZXNzIGFyZSBpbml0aWFsaXplZCB0by4KKyAgICAgKi8KKyAgICBwdWJsaWMgYm9vbGVhbiBnZXRSZXR1cm5OdWxsKCkgeworICAgICAgICByZXR1cm4gKHRoaXMucmV0dXJuTnVsbCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSAicmV0dXJuTnVsbCIgcHJvcGVydHkgbmV3bHkgY3JlYXRlZAorICAgICAqIE1lc3NhZ2VSZXNvdXJjZXNzIGFyZSBpbml0aWFsaXplZCB0by4KKyAgICAgKiBAcGFyYW0gIHJldHVybk51bGwgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgInJldHVybk51bGwiIE1lc3NhZ2VSZXNvdXJjZXNzIGFyZSBpbml0aWFsaXplZCB0by4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSZXR1cm5OdWxsKGJvb2xlYW4gcmV0dXJuTnVsbCkgeworICAgICAgICB0aGlzLnJldHVybk51bGwgPSByZXR1cm5OdWxsOworICAgIH0KKworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIENyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3bHkgaW5zdGFuc2lhdGVkIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+LgorICAgICAqIFRoaXMgbWV0aG9kIG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgY29uY3JldGUgc3ViY2xhc3Nlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb25maWcgQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXIocykgZm9yIHRoZSByZXF1ZXN0ZWQgYnVuZGxlCisgICAgICovCisgICAgcHVibGljIGFic3RyYWN0IE1lc3NhZ2VSZXNvdXJjZXMgY3JlYXRlUmVzb3VyY2VzKFN0cmluZyBjb25maWcpOworCisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3RhdGljIFByb3BlcnRpZXMKKworCisgICAgLyoqCisgICAgICogVGhlIEphdmEgY2xhc3MgdG8gYmUgdXNlZCBmb3IKKyAgICAgKiA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gaW5zdGFuY2VzLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgdHJhbnNpZW50IENsYXNzIGNsYXp6ID0gbnVsbDsKKworCisgICAgLyoqCisgICAgICogQ29tbW9ucyBMb2dnaW5nIGluc3RhbmNlLgorICAgICAqLworICAgIHByaXZhdGUgc3RhdGljIExvZyBMT0cgPSBMb2dGYWN0b3J5LmdldExvZyhNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5jbGFzcyk7CisKKworICAgIC8qKgorICAgICAqIFRoZSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSB0byBiZSB1c2VkIGZvcgorICAgICAqIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZXMuCisgICAgICovCisgICAgcHJvdGVjdGVkIHN0YXRpYyBTdHJpbmcgZmFjdG9yeUNsYXNzID0KKyAgICAgICAgIm9yZy5hcGFjaGUudXRpbC5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IjsKKworICAgIC8qKgorICAgICAqIFRoZSBmdWxseSBxdWFsaWZpZWQgY2xhc3MgbmFtZSB0aGF0IGlzIHVzZWQgZm9yCisgICAgICogPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlcy4KKyAgICAgKiBAcmV0dXJuIGNsYXNzIG5hbWUgdGhhdCBpcyB1c2VkIGZvcgorICAgICAqICAgPGNvZGU+TWVzc2FnZVJlc291cmNlc0ZhY3Rvcnk8L2NvZGU+IGluc3RhbmNlcworICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldEZhY3RvcnlDbGFzcygpIHsKKyAgICAgICAgcmV0dXJuIChNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5mYWN0b3J5Q2xhc3MpOworICAgIH0KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZnVsbHkgcXVhbGlmaWVkIGNsYXNzIG5hbWUgdGhhdCBpcyB1c2VkIGZvcgorICAgICAqIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZXMuCisgICAgICogQHBhcmFtIGZhY3RvcnlDbGFzcyBuYW1lIHRoYXQgaXMgdXNlZCBmb3IKKyAgICAgKiAgIDxjb2RlPk1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5PC9jb2RlPiBpbnN0YW5jZXMKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIHZvaWQgc2V0RmFjdG9yeUNsYXNzKFN0cmluZyBmYWN0b3J5Q2xhc3MpIHsKKyAgICAgICAgTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkuZmFjdG9yeUNsYXNzID0gZmFjdG9yeUNsYXNzOworICAgICAgICBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5jbGF6eiA9IG51bGw7CisgICAgfQorCisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU3RhdGljIE1ldGhvZHMKKworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGFuZCByZXR1cm4gYSA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzRmFjdG9yeTwvY29kZT4gaW5zdGFuY2Ugb2YgdGhlCisgICAgICogYXBwcm9wcmlhdGUgY2xhc3MsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBjdXN0b21pemVkCisgICAgICogPGNvZGU+TWVzc2FnZVJlc291cmNlczwvY29kZT4gaW5zdGFuY2VzLiAgSWYgbm8gc3VjaCBmYWN0b3J5IGNhbiBiZQorICAgICAqIGNyZWF0ZWQsIHJldHVybiA8Y29kZT5udWxsPC9jb2RlPiBpbnN0ZWFkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgY3JlYXRlRmFjdG9yeSgpIHsKKworICAgICAgICAvLyBDb25zdHJ1Y3QgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHNwZWNpZmllZCBmYWN0b3J5IGNsYXNzCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBpZiAoY2xhenogPT0gbnVsbCkKKyAgICAgICAgICAgICAgICBjbGF6eiA9IFRpbGVzVXRpbC5hcHBsaWNhdGlvbkNsYXNzKGZhY3RvcnlDbGFzcyk7CisgICAgICAgICAgICBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSBmYWN0b3J5ID0KKyAgICAgICAgICAgICAgICAoTWVzc2FnZVJlc291cmNlc0ZhY3RvcnkpIGNsYXp6Lm5ld0luc3RhbmNlKCk7CisgICAgICAgICAgICByZXR1cm4gKGZhY3RvcnkpOworICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICAgTE9HLmVycm9yKCJNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5jcmVhdGVGYWN0b3J5IiwgdCk7CisgICAgICAgICAgICByZXR1cm4gKG51bGwpOworICAgICAgICB9CisKKyAgICB9CisKKworfQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMuamF2YSBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2RkZjAxNgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzLmphdmEKQEAgLTAsMCArMSwyOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnV0aWw7CisKK2ltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CitpbXBvcnQgamF2YS51dGlsLkhhc2hNYXA7CitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOworaW1wb3J0IGphdmEudXRpbC5Mb2NhbGU7CitpbXBvcnQgamF2YS51dGlsLlByb3BlcnRpZXM7CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKKworLyoqCisgKiBDb25jcmV0ZSBzdWJjbGFzcyBvZiA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPiB0aGF0IHJlYWRzIG1lc3NhZ2Uga2V5cworICogYW5kIGNvcnJlc3BvbmRpbmcgc3RyaW5ncyBmcm9tIG5hbWVkIHByb3BlcnR5IHJlc291cmNlcyBpbiB0aGUgc2FtZSBtYW5uZXIKKyAqIHRoYXQgPGNvZGU+amF2YS51dGlsLlByb3BlcnR5UmVzb3VyY2VCdW5kbGU8L2NvZGU+IGRvZXMuICBUaGUKKyAqIDxjb2RlPmJhc2U8L2NvZGU+IHByb3BlcnR5IGRlZmluZXMgdGhlIGJhc2UgcHJvcGVydHkgcmVzb3VyY2UgbmFtZSwgYW5kCisgKiBtdXN0IGJlIHNwZWNpZmllZC4KKyAqIDxwPgorICogPHN0cm9uZz5JTVBMRU1FTlRBVElPTiBOT1RFPC9zdHJvbmc+IC0gVGhpcyBjbGFzcyB0cmFkZXMgbWVtb3J5IGZvcgorICogc3BlZWQgYnkgY2FjaGluZyBhbGwgbWVzc2FnZXMgbG9jYXRlZCB2aWEgZ2VuZXJhbGl6aW5nIHRoZSBMb2NhbGUgdW5kZXIKKyAqIHRoZSBvcmlnaW5hbCBsb2NhbGUgYXMgd2VsbC4KKyAqIFRoaXMgcmVzdWx0cyBpbiBzcGVjaWZpYyBtZXNzYWdlcyBiZWluZyBzdG9yZWQgaW4gdGhlIG1lc3NhZ2UgY2FjaGUKKyAqIG1vcmUgdGhhbiBvbmNlLCBidXQgaW1wcm92ZXMgcmVzcG9uc2UgdGltZSBvbiBzdWJzZXF1ZW50IHJlcXVlc3RzIGZvcgorICogdGhlIHNhbWUgbG9jYWxlICsga2V5IGNvbWJpbmF0aW9uLgorICoKKyAqIEBhdXRob3IgQ3JhaWcgUi4gTWNDbGFuYWhhbgorICogQGF1dGhvciBEYXZpZCBHcmFoYW0KKyAqIEB2ZXJzaW9uICRSZXZpc2lvbjogMS44ICQgJERhdGU6IDIwMDMvMDQvMTkgMTk6MDY6MDIgJAorICovCitwdWJsaWMgY2xhc3MgUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzIGV4dGVuZHMgTWVzc2FnZVJlc291cmNlcyB7CisKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENvbnN0cnVjdG9ycworCisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3QgYSBuZXcgUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzIGFjY29yZGluZyB0byB0aGUKKyAgICAgKiBzcGVjaWZpZWQgcGFyYW1ldGVycy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmYWN0b3J5IFRoZSBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSB0aGF0IGNyZWF0ZWQgdXMKKyAgICAgKiBAcGFyYW0gY29uZmlnIFRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBmb3IgdGhpcyBNZXNzYWdlUmVzb3VyY2VzCisgICAgICovCisgICAgcHVibGljIFByb3BlcnR5TWVzc2FnZVJlc291cmNlcyhNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSBmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNvbmZpZykgeworCisgICAgICAgIHN1cGVyKGZhY3RvcnksIGNvbmZpZyk7CisgICAgICAgIGxvZy5pbmZvKCJJbml0aWFsaXppbmcsIGNvbmZpZz0nIiArIGNvbmZpZyArICInIik7CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhIG5ldyBQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXMgYWNjb3JkaW5nIHRvIHRoZQorICAgICAqIHNwZWNpZmllZCBwYXJhbWV0ZXJzLgorICAgICAqCisgICAgICogQHBhcmFtIGZhY3RvcnkgVGhlIE1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5IHRoYXQgY3JlYXRlZCB1cworICAgICAqIEBwYXJhbSBjb25maWcgVGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIGZvciB0aGlzIE1lc3NhZ2VSZXNvdXJjZXMKKyAgICAgKiBAcGFyYW0gcmV0dXJuTnVsbCBUaGUgcmV0dXJuTnVsbCBwcm9wZXJ0eSB3ZSBzaG91bGQgaW5pdGlhbGl6ZSB3aXRoCisgICAgICovCisgICAgcHVibGljIFByb3BlcnR5TWVzc2FnZVJlc291cmNlcyhNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSBmYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGNvbmZpZywgYm9vbGVhbiByZXR1cm5OdWxsKSB7CisKKyAgICAgICAgc3VwZXIoZmFjdG9yeSwgY29uZmlnLCByZXR1cm5OdWxsKTsKKyAgICAgICAgbG9nLmluZm8oIkluaXRpYWxpemluZywgY29uZmlnPSciICsgY29uZmlnICsKKyAgICAgICAgICAgICAgICAgIicsIHJldHVybk51bGw9IiArIHJldHVybk51bGwpOworCisgICAgfQorCisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3BlcnRpZXMKKworCisgICAgLyoqCisgICAgICogVGhlIHNldCBvZiBsb2NhbGUga2V5cyBmb3Igd2hpY2ggd2UgaGF2ZSBhbHJlYWR5IGxvYWRlZCBtZXNzYWdlcywga2V5ZWQKKyAgICAgKiBieSB0aGUgdmFsdWUgY2FsY3VsYXRlZCBpbiA8Y29kZT5sb2NhbGVLZXkoKTwvY29kZT4uCisgICAgICovCisgICAgcHJvdGVjdGVkIEhhc2hNYXAgbG9jYWxlcyA9IG5ldyBIYXNoTWFwKCk7CisKKworICAgIC8qKgorICAgICAqIFRoZSA8Y29kZT5Mb2c8L2NvZGU+IGluc3RhbmNlIGZvciB0aGlzIGNsYXNzLgorICAgICAqLworICAgIHByb3RlY3RlZCBzdGF0aWMgZmluYWwgTG9nIGxvZyA9CisgICAgICAgIExvZ0ZhY3RvcnkuZ2V0TG9nKFByb3BlcnR5TWVzc2FnZVJlc291cmNlcy5jbGFzcyk7CisKKworICAgIC8qKgorICAgICAqIFRoZSBjYWNoZSBvZiBtZXNzYWdlcyB3ZSBoYXZlIGFjY3VtdWxhdGVkIG92ZXIgdGltZSwga2V5ZWQgYnkgdGhlCisgICAgICogdmFsdWUgY2FsY3VsYXRlZCBpbiA8Y29kZT5tZXNzYWdlS2V5KCk8L2NvZGU+LgorICAgICAqLworICAgIHByb3RlY3RlZCBIYXNoTWFwIG1lc3NhZ2VzID0gbmV3IEhhc2hNYXAoKTsKKworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIFJldHVybnMgYSB0ZXh0IG1lc3NhZ2UgZm9yIHRoZSBzcGVjaWZpZWQga2V5LCBmb3IgdGhlIGRlZmF1bHQgTG9jYWxlLgorICAgICAqIEEgbnVsbCBzdHJpbmcgcmVzdWx0IHdpbGwgYmUgcmV0dXJuZWQgYnkgdGhpcyBtZXRob2QgaWYgbm8gcmVsZXZhbnQKKyAgICAgKiBtZXNzYWdlIHJlc291cmNlIGlzIGZvdW5kIGZvciB0aGlzIGtleSBvciBMb2NhbGUsIGlmIHRoZQorICAgICAqIDxjb2RlPnJldHVybk51bGw8L2NvZGU+IHByb3BlcnR5IGlzIHNldC4gIE90aGVyd2lzZSwgYW4gYXBwcm9wcmlhdGUKKyAgICAgKiBlcnJvciBtZXNzYWdlIHdpbGwgYmUgcmV0dXJuZWQuCisgICAgICogPHA+CisgICAgICogVGhpcyBtZXRob2QgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBhIGNvbmNyZXRlIHN1YmNsYXNzLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZSBUaGUgcmVxdWVzdGVkIG1lc3NhZ2UgTG9jYWxlLCBvciA8Y29kZT5udWxsPC9jb2RlPgorICAgICAqICBmb3IgdGhlIHN5c3RlbSBkZWZhdWx0IExvY2FsZQorICAgICAqIEBwYXJhbSBrZXkgVGhlIG1lc3NhZ2Uga2V5IHRvIGxvb2sgdXAKKyAgICAgKiBAcmV0dXJuIHRleHQgbWVzc2FnZSBmb3IgdGhlIHNwZWNpZmllZCBrZXkgYW5kIGxvY2FsZQorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0TWVzc2FnZShMb2NhbGUgbG9jYWxlLCBTdHJpbmcga2V5KSB7CisKKyAgICAgICAgaWYgKGxvZy5pc0RlYnVnRW5hYmxlZCgpKSB7CisgICAgICAgICAgICBsb2cuZGVidWcoImdldE1lc3NhZ2UoIiArIGxvY2FsZSArICIsIiArIGtleSArICIpIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBJbml0aWFsaXplIHZhcmlhYmxlcyB3ZSB3aWxsIHJlcXVpcmUKKyAgICAgICAgU3RyaW5nIGxvY2FsZUtleSA9IGxvY2FsZUtleShsb2NhbGUpOworICAgICAgICBTdHJpbmcgb3JpZ2luYWxLZXkgPSBtZXNzYWdlS2V5KGxvY2FsZUtleSwga2V5KTsKKyAgICAgICAgU3RyaW5nIG1lc3NhZ2VLZXkgPSBudWxsOworICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IG51bGw7CisgICAgICAgIGludCB1bmRlcnNjb3JlID0gMDsKKyAgICAgICAgYm9vbGVhbiBhZGRJdCA9IGZhbHNlOyAgLy8gQWRkIGlmIG5vdCBmb3VuZCB1bmRlciB0aGUgb3JpZ2luYWwga2V5CisKKyAgICAgICAgLy8gTG9vcCBmcm9tIHNwZWNpZmljIHRvIGdlbmVyYWwgTG9jYWxlcyBsb29raW5nIGZvciB0aGlzIG1lc3NhZ2UKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKworICAgICAgICAgICAgLy8gTG9hZCB0aGlzIExvY2FsZSdzIG1lc3NhZ2VzIGlmIHdlIGhhdmUgbm90IGRvbmUgc28geWV0CisgICAgICAgICAgICBsb2FkTG9jYWxlKGxvY2FsZUtleSk7CisKKyAgICAgICAgICAgIC8vIENoZWNrIGlmIHdlIGhhdmUgdGhpcyBrZXkgZm9yIHRoZSBjdXJyZW50IGxvY2FsZSBrZXkKKyAgICAgICAgICAgIG1lc3NhZ2VLZXkgPSBtZXNzYWdlS2V5KGxvY2FsZUtleSwga2V5KTsKKyAgICAgICAgICAgIHN5bmNocm9uaXplZCAobWVzc2FnZXMpIHsKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gKFN0cmluZykgbWVzc2FnZXMuZ2V0KG1lc3NhZ2VLZXkpOworICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFkZEl0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5wdXQob3JpZ2luYWxLZXksIG1lc3NhZ2UpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAobWVzc2FnZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBTdHJpcCB0cmFpbGluZyBtb2RpZmllcnMgdG8gdHJ5IGEgbW9yZSBnZW5lcmFsIGxvY2FsZSBrZXkKKyAgICAgICAgICAgIGFkZEl0ID0gdHJ1ZTsKKyAgICAgICAgICAgIHVuZGVyc2NvcmUgPSBsb2NhbGVLZXkubGFzdEluZGV4T2YoIl8iKTsKKyAgICAgICAgICAgIGlmICh1bmRlcnNjb3JlIDwgMCkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9jYWxlS2V5ID0gbG9jYWxlS2V5LnN1YnN0cmluZygwLCB1bmRlcnNjb3JlKTsKKworICAgICAgICB9CisKKyAgICAgICAgLy8gVHJ5IHRoZSBkZWZhdWx0IGxvY2FsZSBpZiB0aGUgY3VycmVudCBsb2NhbGUgaXMgZGlmZmVyZW50CisgICAgICAgIGlmICghZGVmYXVsdExvY2FsZS5lcXVhbHMobG9jYWxlKSkgeworICAgICAgICAgICAgbG9jYWxlS2V5ID0gbG9jYWxlS2V5KGRlZmF1bHRMb2NhbGUpOworICAgICAgICAgICAgbWVzc2FnZUtleSA9IG1lc3NhZ2VLZXkobG9jYWxlS2V5LCBrZXkpOworICAgICAgICAgICAgbG9hZExvY2FsZShsb2NhbGVLZXkpOworICAgICAgICAgICAgc3luY2hyb25pemVkIChtZXNzYWdlcykgeworICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAoU3RyaW5nKSBtZXNzYWdlcy5nZXQobWVzc2FnZUtleSk7CisgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5wdXQob3JpZ2luYWxLZXksIG1lc3NhZ2UpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gKG1lc3NhZ2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIEFzIGEgbGFzdCByZXNvcnQsIHRyeSB0aGUgZGVmYXVsdCBMb2NhbGUKKyAgICAgICAgbG9jYWxlS2V5ID0gIiI7CisgICAgICAgIG1lc3NhZ2VLZXkgPSBtZXNzYWdlS2V5KGxvY2FsZUtleSwga2V5KTsKKyAgICAgICAgbG9hZExvY2FsZShsb2NhbGVLZXkpOworICAgICAgICBzeW5jaHJvbml6ZWQgKG1lc3NhZ2VzKSB7CisgICAgICAgICAgICBtZXNzYWdlID0gKFN0cmluZykgbWVzc2FnZXMuZ2V0KG1lc3NhZ2VLZXkpOworICAgICAgICAgICAgaWYgKG1lc3NhZ2UgIT0gbnVsbCkgeworICAgICAgICAgICAgICAgIG1lc3NhZ2VzLnB1dChvcmlnaW5hbEtleSwgbWVzc2FnZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIChtZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFJldHVybiBhbiBhcHByb3ByaWF0ZSBlcnJvciBpbmRpY2F0aW9uCisgICAgICAgIGlmIChyZXR1cm5OdWxsKSB7CisgICAgICAgICAgICByZXR1cm4gKG51bGwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuICgiPz8/IiArIG1lc3NhZ2VLZXkobG9jYWxlLCBrZXkpICsgIj8/PyIpOworICAgICAgICB9CisKKyAgICB9CisKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm90ZWN0ZWQgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiBMb2FkIHRoZSBtZXNzYWdlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBMb2NhbGUga2V5LiAgRm9yIHRoaXMKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiwgdGhlIDxjb2RlPmNvbmZpZzwvY29kZT4gcHJvcGVydHkgc2hvdWxkIGNvbnRhaW4gYSBmdWxseQorICAgICAqIHF1YWxpZmllZCBwYWNrYWdlIGFuZCByZXNvdXJjZSBuYW1lLCBzZXBhcmF0ZWQgYnkgcGVyaW9kcywgb2YgYSBzZXJpZXMKKyAgICAgKiBvZiBwcm9wZXJ0eSByZXNvdXJjZXMgdG8gYmUgbG9hZGVkIGZyb20gdGhlIGNsYXNzIGxvYWRlciB0aGF0IGNyZWF0ZWQKKyAgICAgKiB0aGlzIFByb3BlcnR5TWVzc2FnZVJlc291cmNlcyBpbnN0YW5jZS4gIFRoaXMgaXMgZXhhY3RseSB0aGUgc2FtZSBuYW1lCisgICAgICogZm9ybWF0IHlvdSB3b3VsZCB1c2Ugd2hlbiB1dGlsaXppbmcgdGhlCisgICAgICogPGNvZGU+amF2YS51dGlsLlByb3BlcnR5UmVzb3VyY2VCdW5kbGU8L2NvZGU+IGNsYXNzLgorICAgICAqCisgICAgICogQHBhcmFtIGxvY2FsZUtleSBMb2NhbGUga2V5IGZvciB0aGUgbWVzc2FnZXMgdG8gYmUgcmV0cmlldmVkCisgICAgICovCisgICAgcHJvdGVjdGVkIHN5bmNocm9uaXplZCB2b2lkIGxvYWRMb2NhbGUoU3RyaW5nIGxvY2FsZUtleSkgeworCisgICAgICAgIGlmIChsb2cuaXNUcmFjZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgbG9nLnRyYWNlKCJsb2FkTG9jYWxlKCIgKyBsb2NhbGVLZXkgKyAiKSIpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBIYXZlIHdlIGFscmVhZHkgYXR0ZW1wdGVkIHRvIGxvYWQgbWVzc2FnZXMgZm9yIHRoaXMgbG9jYWxlPworICAgICAgICBpZiAobG9jYWxlcy5nZXQobG9jYWxlS2V5KSAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbG9jYWxlcy5wdXQobG9jYWxlS2V5LCBsb2NhbGVLZXkpOworCisgICAgICAgIC8vIFNldCB1cCB0byBsb2FkIHRoZSBwcm9wZXJ0eSByZXNvdXJjZSBmb3IgdGhpcyBsb2NhbGUga2V5LCBpZiB3ZSBjYW4KKyAgICAgICAgU3RyaW5nIG5hbWUgPSBjb25maWcucmVwbGFjZSgnLicsICcvJyk7CisgICAgICAgIGlmIChsb2NhbGVLZXkubGVuZ3RoKCkgPiAwKSB7CisgICAgICAgICAgICBuYW1lICs9ICJfIiArIGxvY2FsZUtleTsKKyAgICAgICAgfQorICAgICAgICBuYW1lICs9ICIucHJvcGVydGllcyI7CisgICAgICAgIElucHV0U3RyZWFtIGlzID0gbnVsbDsKKyAgICAgICAgUHJvcGVydGllcyBwcm9wcyA9IG5ldyBQcm9wZXJ0aWVzKCk7CisKKyAgICAgICAgLy8gTG9hZCB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IHJlc291cmNlCisgICAgICAgIGlmIChsb2cuaXNUcmFjZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgbG9nLnRyYWNlKCIgIExvYWRpbmcgcmVzb3VyY2UgJyIgKyBuYW1lICsgIiciKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQ2xhc3NMb2FkZXIgY2xhc3NMb2FkZXIgPSBUaHJlYWQuY3VycmVudFRocmVhZCgpLmdldENvbnRleHRDbGFzc0xvYWRlcigpOworICAgICAgICBpZiAoY2xhc3NMb2FkZXIgPT0gbnVsbCkgeworICAgICAgICAgICAgY2xhc3NMb2FkZXIgPSB0aGlzLmdldENsYXNzKCkuZ2V0Q2xhc3NMb2FkZXIoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaXMgPSBjbGFzc0xvYWRlci5nZXRSZXNvdXJjZUFzU3RyZWFtKG5hbWUpOworICAgICAgICBpZiAoaXMgIT0gbnVsbCkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBwcm9wcy5sb2FkKGlzKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBsb2cuZXJyb3IoImxvYWRMb2NhbGUoKSIsIGUpOworICAgICAgICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBpcy5jbG9zZSgpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKCJsb2FkTG9jYWxlKCkiLCBlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChsb2cuaXNUcmFjZUVuYWJsZWQoKSkgeworICAgICAgICAgICAgbG9nLnRyYWNlKCIgIExvYWRpbmcgcmVzb3VyY2UgY29tcGxldGVkIik7CisgICAgICAgIH0KKworICAgICAgICAvLyBDb3B5IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlcyBpbnRvIG91ciBjYWNoZQorICAgICAgICBpZiAocHJvcHMuc2l6ZSgpIDwgMSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzeW5jaHJvbml6ZWQgKG1lc3NhZ2VzKSB7CisgICAgICAgICAgICBJdGVyYXRvciBuYW1lcyA9IHByb3BzLmtleVNldCgpLml0ZXJhdG9yKCk7CisgICAgICAgICAgICB3aGlsZSAobmFtZXMuaGFzTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IChTdHJpbmcpIG5hbWVzLm5leHQoKTsKKyAgICAgICAgICAgICAgICBpZiAobG9nLmlzVHJhY2VFbmFibGVkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbG9nLnRyYWNlKCIgIFNhdmluZyBtZXNzYWdlIGtleSAnIiArIG1lc3NhZ2VLZXkobG9jYWxlS2V5LCBrZXkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbWVzc2FnZXMucHV0KG1lc3NhZ2VLZXkobG9jYWxlS2V5LCBrZXkpLCBwcm9wcy5nZXRQcm9wZXJ0eShrZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5qYXZhIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvY29yZS1saWJyYXJ5L3NyYy9qYXZhL29yZy9hcGFjaGUvdXRpbC9Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXNGYWN0b3J5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjkzNDBlYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2NvcmUtbGlicmFyeS9zcmMvamF2YS9vcmcvYXBhY2hlL3V0aWwvUHJvcGVydHlNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeS5qYXZhCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA1IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnV0aWw7CisKKworLyoqCisgKiBGYWN0b3J5IGZvciA8Y29kZT5Qcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXM8L2NvZGU+IGluc3RhbmNlcy4gIFRoZQorICogY29uZmlndXJhdGlvbiBwYXJhbXRlciBmb3Igc3VjaCBpbnN0YW5jZXMgaXMgdGhlIGJhc2UgSmF2YSBwYWNrYWdlCisgKiBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZW50cmllcyBmcm9tIHdoaWNoIG91ciBrZXlzIGFuZCB2YWx1ZXMgd2lsbCBiZQorICogbG9hZGVkLgorICoKKyAqIEBhdXRob3IgQ3JhaWcgUi4gTWNDbGFuYWhhbgorICogQHZlcnNpb24gJFJldmlzaW9uOiAxLjIgJCAkRGF0ZTogMjAwMS8wMi8xMiAwMDozMjoxNCAkCisgKi8KKworcHVibGljIGNsYXNzIFByb3BlcnR5TWVzc2FnZVJlc291cmNlc0ZhY3RvcnkgZXh0ZW5kcyBNZXNzYWdlUmVzb3VyY2VzRmFjdG9yeSB7CisKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQdWJsaWMgTWV0aG9kcworCisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW5kIHJldHVybiBhIG5ld2x5IGluc3RhbnNpYXRlZCA8Y29kZT5NZXNzYWdlUmVzb3VyY2VzPC9jb2RlPi4KKyAgICAgKiBUaGlzIG1ldGhvZCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IGNvbmNyZXRlIHN1YmNsYXNzZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY29uZmlnIENvbmZpZ3VyYXRpb24gcGFyYW1ldGVyKHMpIGZvciB0aGUgcmVxdWVzdGVkIGJ1bmRsZQorICAgICAqLworICAgIHB1YmxpYyBNZXNzYWdlUmVzb3VyY2VzIGNyZWF0ZVJlc291cmNlcyhTdHJpbmcgY29uZmlnKSB7CisKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9wZXJ0eU1lc3NhZ2VSZXNvdXJjZXModGhpcywgY29uZmlnLCB0aGlzLnJldHVybk51bGwpOworCisgICAgfQorCisKK30KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9SRUFETUUudHh0IGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL1JFQURNRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ5NDUwZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9SRUFETUUudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyBpcyBhIHNpbXBsZSBhcHBsaWNhdGlvbiB0aGF0IGlsbHVzdHJhdGVzIGZ1bmRhbWVudGFsIFRpbGVzIGNvbmNlcHRzLiBUaGUgYXBwbGljYXRpb24gaXMgZG9jdW1lbnRlZCBpbiB0aGUgZmlsZSB0aWxlcy5wZGYsIGluIHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG9mIHRoZSBUaWxlcyBkaXN0cmlidXRpb24uCisKK0NvcHkgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZGlyZWN0b3J5IGludG8gYSBkaXJlY3RvcnkgaW4geW91ciBzZXJ2bGV0IGNvbnRhaW5lcidzCit3ZWJhcHBzIGRpcmVjdG9yeS4gRGVwZW5kaW5nIG9uIHlvdXIgY29udGFpbmVyLCB5b3UgbWF5IGhhdmUgdG8gcmVzdGFydCB0aGUKK2NvbnRhaW5lciB0byBhY2Nlc3MgdGhlIGFwcGxpY2F0aW9uIHlvdSBqdXN0IGNyZWF0ZWQuCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvV0VCLUlORi9saWIvY29tbW9ucy1iZWFudXRpbHMuamFyIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL1dFQi1JTkYvbGliL2NvbW1vbnMtYmVhbnV0aWxzLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTU2NTVhCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL1dFQi1JTkYvbGliL2NvbW1vbnMtYmVhbnV0aWxzLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvV0VCLUlORi9saWIvY29tbW9ucy1kaWdlc3Rlci5qYXIgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvV0VCLUlORi9saWIvY29tbW9ucy1kaWdlc3Rlci5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzJhN2Q5ZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9XRUItSU5GL2xpYi9jb21tb25zLWRpZ2VzdGVyLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvV0VCLUlORi9saWIvanN0bC5qYXIgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvV0VCLUlORi9saWIvanN0bC5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQwMjg0NQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9XRUItSU5GL2xpYi9qc3RsLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvV0VCLUlORi9saWIvc3RhbmRhcmQuamFyIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL1dFQi1JTkYvbGliL3N0YW5kYXJkLmphcgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDU3NjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL1dFQi1JTkYvbGliL3N0YW5kYXJkLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvV0VCLUlORi9saWIvdGlsZXMtY29yZS5qYXIgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvV0VCLUlORi9saWIvdGlsZXMtY29yZS5qYXIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmJhZGQ0NwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9XRUItSU5GL2xpYi90aWxlcy1jb3JlLmphcgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvV0VCLUlORi90aWxlcy54bWwgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvV0VCLUlORi90aWxlcy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTc1YTYxYQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9XRUItSU5GL3RpbGVzLnhtbApAQCAtMCwwICsxLDIzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorCis8IURPQ1RZUEUgdGlsZXMtZGVmaW5pdGlvbnMgUFVCTElDCisgICItLy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi8vRFREIFRpbGVzIENvbmZpZ3VyYXRpb24vL0VOIgorICAiaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy9zdHJ1dHMvZHRkcy90aWxlcy1jb25maWcuZHRkIj4KKworPHRpbGVzLWRlZmluaXRpb25zPgorICAgPGRlZmluaXRpb24gbmFtZT0iaGVhZGVyLWZvb3Rlci1zaWRlYmFyIgorCSAgICAgICAgICAgIHBhdGg9Ii9oZWFkZXItZm9vdGVyLXNpZGViYXItbGF5b3V0LmpzcCI+CisJCTxwdXQgbmFtZT0iaGVhZGVyIiAgdmFsdWU9Ii9oZWFkZXIuanNwIi8+CisJCTxwdXQgbmFtZT0ic2lkZWJhciIgdmFsdWU9Ii9zaWRlYmFyLmpzcCIvPgorCQk8cHV0IG5hbWU9ImNvbnRlbnQiLz4KKwkJPHB1dCBuYW1lPSJmb290ZXIiICB2YWx1ZT0iL2Zvb3Rlci5qc3AiLz4KKyAgIDwvZGVmaW5pdGlvbj4KKworCTxkZWZpbml0aW9uIG5hbWU9ImxvZ2luLXRpbGUiIGV4dGVuZHM9ImhlYWRlci1mb290ZXItc2lkZWJhciI+CisJCTxwdXQgbmFtZT0iY29udGVudCIgdmFsdWU9Ii9sb2dpbkNvbnRlbnQuanNwIi8+CisJPC9kZWZpbml0aW9uPgorCisJPGRlZmluaXRpb24gbmFtZT0icHJlZmVyZW5jZXMtdGlsZSIgZXh0ZW5kcz0iaGVhZGVyLWZvb3Rlci1zaWRlYmFyIj4KKwkJPHB1dCBuYW1lPSJjb250ZW50IiB2YWx1ZT0iL3ByZWZlcmVuY2VzQ29udGVudC5qc3AiLz4KKwk8L2RlZmluaXRpb24+Cis8L3RpbGVzLWRlZmluaXRpb25zPgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL1dFQi1JTkYvd2ViLnhtbCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9XRUItSU5GL3dlYi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWYwYzRiNAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9XRUItSU5GL3dlYi54bWwKQEAgLTAsMCArMSwyNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pg0KKw0KKzwhRE9DVFlQRSB3ZWItYXBwDQorICBQVUJMSUMgIi0vL1N1biBNaWNyb3N5c3RlbXMsIEluYy4vL0RURCBXZWIgQXBwbGljYXRpb24gMi4yLy9FTiINCisgICJodHRwOi8vamF2YS5zdW4uY29tL2oyZWUvZHRkcy93ZWItYXBwXzIuMi5kdGQiPg0KKw0KKzx3ZWItYXBwPg0KKyAgIDxzZXJ2bGV0Pg0KKyAgICAgIDxzZXJ2bGV0LW5hbWU+VGlsZXMgU2VydmxldDwvc2VydmxldC1uYW1lPg0KKyAgICAgIDxzZXJ2bGV0LWNsYXNzPm9yZy5hcGFjaGUudGlsZXMuc2VydmxldHMuVGlsZXNTZXJ2bGV0PC9zZXJ2bGV0LWNsYXNzPg0KKyAgICAgIDxpbml0LXBhcmFtPg0KKyAgICAgICAgIDxwYXJhbS1uYW1lPmRlZmluaXRpb25zLWNvbmZpZzwvcGFyYW0tbmFtZT4NCisgICAgICAgICA8cGFyYW0tdmFsdWU+L1dFQi1JTkYvdGlsZXMueG1sPC9wYXJhbS12YWx1ZT4NCisgICAgICA8L2luaXQtcGFyYW0+DQorICAgICAgPGxvYWQtb24tc3RhcnR1cD4xPC9sb2FkLW9uLXN0YXJ0dXA+DQorICAgPC9zZXJ2bGV0PiAgIA0KKw0KKyAgCTwhLS0gRGVmaW5lIHRoZSB3ZWxjb21lIGZpbGUgLS0+DQorICAJPHdlbGNvbWUtZmlsZS1saXN0Pg0KKyAgICAJPHdlbGNvbWUtZmlsZT4vbG9naW4uanNwPC93ZWxjb21lLWZpbGU+DQorCTwvd2VsY29tZS1maWxlLWxpc3Q+DQorPC93ZWItYXBwPg0KKw0KKw0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9mb290ZXIuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL2Zvb3Rlci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE2YzZkZAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9mb290ZXIuanNwCkBAIC0wLDAgKzEgQEAKKzxocj5UaGFua3MgZm9yIHN0b3BwaW5nIGJ5IG9uIDwlPSBuZXcgamF2YS51dGlsLkRhdGUoKSAlPg0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9ncmFwaGljcy9ibHVlQW5kV2hpdGVCYWNrZ3JvdW5kLmdpZiBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9ncmFwaGljcy9ibHVlQW5kV2hpdGVCYWNrZ3JvdW5kLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2FiZjVjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL2dyYXBoaWNzL2JsdWVBbmRXaGl0ZUJhY2tncm91bmQuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9ncmFwaGljcy9mbGFncy9icml0YWluX2ZsYWcuZ2lmIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL2dyYXBoaWNzL2ZsYWdzL2JyaXRhaW5fZmxhZy5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FjYjNhYwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9ncmFwaGljcy9mbGFncy9icml0YWluX2ZsYWcuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9ncmFwaGljcy9mbGFncy9jaGluZXNlX2ZsYWcuZ2lmIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL2dyYXBoaWNzL2ZsYWdzL2NoaW5lc2VfZmxhZy5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM4MDY2NAotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9ncmFwaGljcy9mbGFncy9jaGluZXNlX2ZsYWcuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9ncmFwaGljcy9mbGFncy9nZXJtYW5fZmxhZy5naWYgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvZ3JhcGhpY3MvZmxhZ3MvZ2VybWFuX2ZsYWcuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3ZmY0MWYKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvZ3JhcGhpY3MvZmxhZ3MvZ2VybWFuX2ZsYWcuZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9oZWFkZXItZm9vdGVyLXNpZGViYXItbGF5b3V0LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9oZWFkZXItZm9vdGVyLXNpZGViYXItbGF5b3V0LmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOTkzYzNjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL2hlYWRlci1mb290ZXItc2lkZWJhci1sYXlvdXQuanNwCkBAIC0wLDAgKzEsMzkgQEAKKzwlQCB0YWdsaWIgdXJpPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RpbGVzIg0KKyAgICAgICAgcHJlZml4PSJ0aWxlcyIgJT4NCisNCisgICAgICA8JS0tIE9uZSB0YWJsZSBsYXlzIG91dCBhbGwgb2YgdGhlIGNvbnRlbnQgZm9yIHRoaXMgYXR0cmlidXRlIC0tJT4NCisgICAgICA8dGFibGUgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJSc+DQorICAgICAgICAgPHRyPg0KKw0KKyAgICAgICAgICAgIDwlLS0gU2lkZWJhciBzZWN0aW9uIC0tJT4NCisgICAgICAgICAgICA8dGQgd2lkdGg9JzE1MCcgdmFsaWduPSd0b3AnIGFsaWduPSdsZWZ0Jz4NCisgICAgICAgICAgICAgICA8dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0nc2lkZWJhcicvPg0KKyAgICAgICAgICAgIDwvdGQ+DQorDQorICAgICAgICAgICAgPCUtLSBNYWluIGNvbnRlbnQgc2VjdGlvbiAtLSU+DQorICAgICAgICAgICAgPHRkIGhlaWdodD0nMTAwJScgd2lkdGg9JyonPg0KKyAgICAgICAgICAgICAgIDx0YWJsZSB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJz4NCisgICAgICAgICAgICAgICAgICA8dHI+DQorICAgICAgICAgICAgICAgICAgICAgPCUtLSBIZWFkZXIgc2VjdGlvbiAtLSU+DQorICAgICAgICAgICAgICAgICAgICAgPHRkIHZhbGlnbj0ndG9wJyBoZWlnaHQ9JzE1JSc+DQorICAgICAgICAgICAgICAgICAgICAgICAgPHRpbGVzOmluc2VydCBhdHRyaWJ1dGU9J2hlYWRlcicvPg0KKyAgICAgICAgICAgICAgICAgICAgIDwvdGQ+DQorICAgICAgICAgICAgICAgICAgPHRyPg0KKw0KKyAgICAgICAgICAgICAgICAgIDx0cj4NCisgICAgICAgICAgICAgICAgICAgICA8JS0tIENvbnRlbnQgc2VjdGlvbiAtLSU+DQorICAgICAgICAgICAgICAgICAgICAgPHRkIHZhbGlnbj0ndG9wJyBoZWlnaHQ9JyonPg0KKyAgICAgICAgICAgICAgICAgICAgICAgIDx0aWxlczppbnNlcnQgYXR0cmlidXRlPSdjb250ZW50Jy8+DQorICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCisgICAgICAgICAgICAgICAgICA8L3RyPg0KKw0KKyAgICAgICAgICAgICAgICAgIDx0cj4NCisgICAgICAgICAgICAgICAgICAgICA8JS0tIEZvb3RlciBzZWN0aW9uIC0tJT4NCisgICAgICAgICAgICAgICAgICAgICA8dGQgdmFsaWduPSdib3R0b20nIGhlaWdodD0nMTUlJz4NCisgICAgICAgICAgICAgICAgICAgICAgICA8dGlsZXM6aW5zZXJ0IGF0dHJpYnV0ZT0nZm9vdGVyJy8+DQorICAgICAgICAgICAgICAgICAgICAgPC90ZD4NCisgICAgICAgICAgICAgICAgICA8L3RyPg0KKyAgICAgICAgICAgICAgIDwvdGFibGU+DQorICAgICAgICAgICAgPC90ZD4NCisgICAgICAgICA8L3RyPg0KKyAgICAgIDwvdGFibGU+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL2hlYWRlci5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvaGVhZGVyLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2YzY2E0Ci0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL2hlYWRlci5qc3AKQEAgLTAsMCArMSwyIEBACis8Zm9udCBzaXplPSc2Jz5UaWxlczwvZm9udD4NCis8aHI+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL2xvZ2luLmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9sb2dpbi5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJkYzQwMwotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9sb2dpbi5qc3AKQEAgLTAsMCArMSwxMiBAQAorPCVAIHRhZ2xpYiB1cmk9Imh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvdGlsZXMiIHByZWZpeD0idGlsZXMiICU+DQorDQorPGh0bWw+DQorICAgPGhlYWQ+DQorICAgICAgPHRpdGxlPkxvZ2luPC90aXRsZT4NCisgICA8L2hlYWQ+DQorDQorICAgPGJvZHkgYmFja2dyb3VuZD0iZ3JhcGhpY3MvYmx1ZUFuZFdoaXRlQmFja2dyb3VuZC5naWYiPg0KKwkJPHRpbGVzOmluc2VydCBkZWZpbml0aW9uPSJsb2dpbi10aWxlIi8+DQorICAgPC9ib2R5Pg0KKzwvaHRtbD4NCisNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvbG9naW5Db250ZW50LmpzcCBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9sb2dpbkNvbnRlbnQuanNwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5YzRhOTcKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvbG9naW5Db250ZW50LmpzcApAQCAtMCwwICsxLDIzIEBACis8Zm9udCBzaXplPSc1Jz5QbGVhc2UgbG9nIGluPC9mb250Pg0KKzxwPg0KKzx0YWJsZT4NCisJPHRyPg0KKwkJPHRkPg0KKwkJCU5hbWU6DQorCQk8L3RkPg0KKwkJPHRkPg0KKwkJCTxpbnB1dCB0eXBlPSJ0ZXh0Ii8+DQorCQk8L3RkPg0KKwk8L3RyPg0KKwk8dHI+DQorCQk8dGQ+DQorCQkJUGFzc3dvcmQNCisJCTwvdGQ+DQorCQk8dGQ+DQorCQkJPGlucHV0IHR5cGU9InNlY3JldCIgc2l6ZT0iOCIvPg0KKwkJPC90ZD4NCisJPC90cj4NCis8L3RhYmxlPg0KKzxwPg0KKzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJMb2cgaW4iLz4NCisNCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvcHJlZmVyZW5jZXMuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL3ByZWZlcmVuY2VzLmpzcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTI5YjdjCi0tLSAvZGV2L251bGwKKysrIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL3ByZWZlcmVuY2VzLmpzcApAQCAtMCwwICsxLDEyIEBACis8JUAgdGFnbGliIHVyaT0iaHR0cDovL2pha2FydGEuYXBhY2hlLm9yZy90aWxlcyIgcHJlZml4PSJ0aWxlcyIgJT4NCisNCis8aHRtbD4NCisgICA8aGVhZD4NCisgICAgICA8dGl0bGU+UHJlZmVyZW5jZXM8L3RpdGxlPg0KKyAgIDwvaGVhZD4NCisNCisgICA8Ym9keSBiYWNrZ3JvdW5kPSJncmFwaGljcy9ibHVlQW5kV2hpdGVCYWNrZ3JvdW5kLmdpZiI+DQorCQk8dGlsZXM6aW5zZXJ0IGRlZmluaXRpb249InByZWZlcmVuY2VzLXRpbGUiLz4NCisgICA8L2JvZHk+DQorPC9odG1sPg0KKw0KZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9wcmVmZXJlbmNlc0NvbnRlbnQuanNwIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvZXhhbXBsZXMvc2ltcGxlL3ByZWZlcmVuY2VzQ29udGVudC5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk3MmI4YQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9wcmVmZXJlbmNlc0NvbnRlbnQuanNwCkBAIC0wLDAgKzEsNDggQEAKKzxmb250IHNpemU9JzUnPkNoYW5nZSB5b3VyIHByZWZlcmVuY2VzPC9mb250Pg0KKzxwPg0KKzx0YWJsZT4NCisJPHRyPg0KKwkJPHRkPg0KKwkJCVN0YW5kYXJkIGZvbnQ6DQorCQk8L3RkPg0KKwkJPHRkPg0KKwkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iQXJpYWwgMTMiLz4NCisJCTwvdGQ+DQorCTwvdHI+DQorCTx0cj4NCisJCTx0ZD4NCisJCQlGaXhlZC13aWR0aCBmb250Og0KKwkJPC90ZD4NCisJCTx0ZD4NCisJCQk8aW5wdXQgdHlwZT0idGV4dCIgdmFsdWU9IkhlbHZldGljYSAxMiIvPg0KKwkJPC90ZD4NCisJPC90cj4NCisJPHRyPg0KKwkJPHRkPg0KKwkJCVNtYWxsZXN0IGFsbG93YWJsZSBmb250IHNpemU6DQorCQk8L3RkPg0KKwkJPHRkPg0KKwkJCTxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSIzIiB2YWx1ZT0iNSIvPg0KKwkJCTxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSI8Ii8+DQorCQkJPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9Ij4iLz4NCisJCTwvdGQ+DQorCTwvdHI+DQorCTx0cj4NCisJCTx0ZD4NCisJCQlEaXNwbGF5IGltYWdlcyB3aGVuIHBhZ2Ugb3BlbnMNCisJCTwvdGQ+DQorCQk8dGQ+DQorCQkJPGlucHV0IHR5cGU9ImNoZWNrYm94Ii8+DQorCQk8L3RkPg0KKwk8L3RyPg0KKwk8dHI+DQorCQk8dGQ+DQorCQkJVW5kZXJsaW5lIGxpbmtzDQorCQk8L3RkPg0KKwkJPHRkPg0KKwkJCTxpbnB1dCB0eXBlPSJjaGVja2JveCIvPg0KKwkJPC90ZD4NCisJPC90cj4NCis8L3RhYmxlPg0KKzxwPg0KKzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJTZXQgcHJlZmVyZW5jZXMiLz4NCmRpZmYgLS1naXQgYS9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvc2lkZWJhci5qc3AgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC9leGFtcGxlcy9zaW1wbGUvc2lkZWJhci5qc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTJiMzVhMQotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3RpbGVzLW9yaWdpbmFsL2V4YW1wbGVzL3NpbXBsZS9zaWRlYmFyLmpzcApAQCAtMCwwICsxLDMxIEBACis8JUAgcGFnZSBjb250ZW50VHlwZT0ndGV4dC9odG1sOyBjaGFyc2V0PVVURi04JyAlPg0KKzwlQCB0YWdsaWIgdXJpPSdodHRwOi8vamF2YS5zdW4uY29tL2pzdGwvY29yZScgcHJlZml4PSdjJyAlPg0KKw0KKzx0YWJsZSB3aWR0aD0nMTAwJSc+DQorCTx0cj4NCisJCTwlLS0gU2lkZWJhciB0b3AgY29tcG9uZW50IC0tJT4NCisJCTx0ZCB3aWR0aD0nMTUwJyBoZWlnaHQ9JzUwJyB2YWxpZ249J3RvcCcgYWxpZ249J2xlZnQnPg0KKyAgICAgICAgPGEgaHJlZj0nJz48aW1nIHNyYz0nZ3JhcGhpY3MvZmxhZ3MvYnJpdGFpbl9mbGFnLmdpZicgc3R5bGU9J2JvcmRlcjogMHB4Jy8+PC9hPg0KKyAgICAgICAgPGEgaHJlZj0nJz48aW1nIHNyYz0nZ3JhcGhpY3MvZmxhZ3MvZ2VybWFuX2ZsYWcuZ2lmJyBzdHlsZT0nYm9yZGVyOiAwcHgnLz48L2E+DQorICAgICAgICA8YSBocmVmPScnPjxpbWcgc3JjPSdncmFwaGljcy9mbGFncy9jaGluZXNlX2ZsYWcuZ2lmJyBzdHlsZT0nYm9yZGVyOiAwcHgnLz48L2E+DQorCQk8L3RkPg0KKwk8L3RyPg0KKw0KKwk8dHI+DQorCQk8JS0tIFNpZGViYXIgYm90dG9tIGNvbXBvbmVudCAtLSU+DQorCQk8dGQ+DQorCQkJPHRhYmxlPg0KKwkJCQk8dHI+DQorCQkJCQk8dGQ+DQorCQkJCQkJPGZvbnQgc2l6ZT0nNSc+TGlua3M8L2ZvbnQ+PHA+DQorCQkJCQkJPGEgaHJlZj0nJz5Ib21lPC9hPjxicj4NCisJCQkJCQk8YSBocmVmPScnPlByb2R1Y3RzPC9hPjxicj4NCisJCQkJCQk8YSBocmVmPScnPkRvd25sb2FkczwvYT48YnI+DQorCQkJCQkJPGEgaHJlZj0nJz5XaGl0ZSBwYXBlcnM8L2E+PGJyPg0KKwkJCQkJCTxhIGhyZWY9Jyc+Q29udGFjdCB1czwvYT48YnI+DQorCQkJCQk8L3RkPg0KKwkJCQk8L3RyPg0KKwkJCTwvdGFibGU+DQorCQk8L3RkPg0KKwk8L3RyPg0KKzwvdGFibGU+DQpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvdGlsZXMucGRmIGIvc3RydXRzLXNhbmRib3gvdGlsZXMtb3JpZ2luYWwvdGlsZXMucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YzU0ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zdHJ1dHMtc2FuZGJveC90aWxlcy1vcmlnaW5hbC90aWxlcy5wZGYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3RydXRzLXNhbmRib3gvd29ya2Zsb3cvQWN0aXZpdHlBY3Rpb24uamF2YSBiL3N0cnV0cy1zYW5kYm94L3dvcmtmbG93L0FjdGl2aXR5QWN0aW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM4OTU3NgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3dvcmtmbG93L0FjdGl2aXR5QWN0aW9uLmphdmEKQEAgLTAsMCArMSw0MDQgQEAKKy8qCisgKiAkSWQkIAorICoKKyAqIENvcHlyaWdodCAyMDAxLDIwMDQgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICogCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbjsKKworaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CisKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjsKKworCitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVxdWVzdDsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlc3Npb247CitpbXBvcnQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0UmVzcG9uc2U7CisKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25FcnJvcjsKK2ltcG9ydCBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb24uQWN0aW9uRXJyb3JzOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3JtOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25Gb3J3YXJkOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25NYXBwaW5nOworaW1wb3J0IG9yZy5hcGFjaGUuc3RydXRzLmFjdGlvbi5BY3Rpb25TZXJ2bGV0OworCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLndvcmtmbG93LkFjdGl2aXR5OworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy53b3JrZmxvdy5TdGVwOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy53b3JrZmxvdy5TdGVwRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy53b3JrZmxvdy5Db250ZXh0OworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy53b3JrZmxvdy5Db250ZXh0RXZlbnQ7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLndvcmtmbG93LkNvbnRleHRMaXN0ZW5lcjsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMud29ya2Zsb3cuUmVnaXN0cnk7CisKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMud29ya2Zsb3cud2ViLldlYkNvbnRleHQ7CisKKworCisvKioKKyAqIEBhdXRob3IgQ3JhaWcgTWNDbGFuYWhhbgorICogQGF1dGhvciBUZWQgSHVzdGVkCisgKiBAdmVyc2lvbiAkUmV2JCAkRGF0ZSQKKyAqLworcHVibGljIGNsYXNzIEFjdGl2aXR5QWN0aW9uIGV4dGVuZHMgQWN0aW9uIGltcGxlbWVudHMgQ29udGV4dExpc3RlbmVyIHsKKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gSW5zdGFuY2UgVmFyaWFibGVzCisKKworICAgLy8gKiogRk9SIFRIUkVBRC1TQUZFVFkgVEhFU0UgTVVTVCBCRSBHTE9CQUwgVE8gQVBQTElDQVRJT04KKyAgIC8vICoqIEFORCBOT1QgU1BFQ0lGSUMgVE8gQSBHSVZFTiBSRVFVRVNUCisKKyAgIHByb3RlY3RlZCBSZWdpc3RyeSByZWdpc3RyeSA9IG51bGw7CisKKyAgIHByb3RlY3RlZCBBY3Rpdml0eSBhY3Rpdml0eSA9IG51bGw7CisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3RlY3RlZCBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIFdoZXRoZXIgdGhlIGRlYnVnIGxldmVsIGlzIHNldCB0byB2ZXJib3NlIGxvZ2dpbmcuCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gZG9EZWJ1Z0xvZygpIHsKKworICAgICAgICByZXR1cm4gKChzZXJ2bGV0LmdldERlYnVnKCkgPiAxKSk7CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFdoZXRoZXIgdGhlIGRlYnVnIGxldmVsIGlzIHNldCB0byBsaXN0ZW5pbmcuCisgICAgICovCisgICAgcHJvdGVjdGVkIGJvb2xlYW4gZG9EZWJ1Z0xpc3RlbmVyKCkgeworCisgICAgICAgIHJldHVybiAoKHNlcnZsZXQuZ2V0RGVidWcoKSA+IDIpKTsKKworICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0dXJuIEFjdGl2aXR5IGJ5IElECisgICAgICovCisgICAgIHByb3RlY3RlZCBBY3Rpdml0eSBnZXRBY3Rpdml0eShTdHJpbmcgaWQpIHsKKworICAgICAgIC8vICByZXR1cm4gKHJlZ2lzdHJ5LmdldEFjdGl2aXR5KGlkKSk7CisgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZpdHk7CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFJldHVybiBBY3Rpdml0eSBieSBsb29raW5nIHVwIElEIGluIG1hcHBpbmcuCisgICAgICovCisgICAgIHByb3RlY3RlZCBBY3Rpdml0eSBnZXRBY3Rpdml0eShBY3Rpb25NYXBwaW5nIG1hcHBpbmcpIHsKKworICAgICAgICByZXR1cm4gKGdldEFjdGl2aXR5KG1hcHBpbmcuZ2V0UGFyYW1ldGVyKCkpKTsKKworICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0dXJuIGNvbnRleHQsIGluc3RhbnRpYXRpbmcgaXQgaWYgbmVjZXNzYXJ5LgorICAgICAqLworICAgIHByb3RlY3RlZCBXZWJDb250ZXh0IGdldENvbnRleHQoQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsIEh0dHBTZXJ2bGV0UmVzcG9uc2UgcmVzcG9uc2UpIHsKKworICAgICAgICBTdHJpbmcgY29udGV4dElkID0gbWFwcGluZy5nZXRQYXJhbWV0ZXIoKTsKKyAgICAgICAgSHR0cFNlc3Npb24gc2Vzc2lvbiA9IHJlcXVlc3QuZ2V0U2Vzc2lvbigpOworICAgICAgICBXZWJDb250ZXh0IGNvbnRleHQgPSAoV2ViQ29udGV4dCkKKyAgICAgICAgICAgIHNlc3Npb24uZ2V0QXR0cmlidXRlKGNvbnRleHRJZCk7CisgICAgICAgIGlmIChjb250ZXh0ID09IG51bGwpIHsKKyAgICAgICAgICAgIGlmIChkb0RlYnVnTG9nKCkpCisgICAgICAgICAgICAgICAgc2VydmxldC5sb2coInsiICsgc2Vzc2lvbi5nZXRJZCgpICsgIn0gQ3JlYXRpbmcgbmV3IENvbnRleHQiKTsKKyAgICAgICAgICAgIGNvbnRleHQgPSBuZXcgV2ViQ29udGV4dCgpOworICAgICAgICAgICAgLy8gY29udGV4dC5zZXRBY3Rpdml0eShnZXRBY3Rpdml0eShjb250ZXh0SWQpKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0QWN0aXZpdHkoYWN0aXZpdHkpOworICAgICAgICAgICAgY29udGV4dC5zZXRIdHRwU2Vzc2lvbihzZXNzaW9uKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0U2VydmxldENvbnRleHQoc2VydmxldC5nZXRTZXJ2bGV0Q29udGV4dCgpKTsKKyAgICAgICAgICAgIGlmIChkb0RlYnVnTGlzdGVuZXIoKSkKKyAgICAgICAgICAgICAgICBjb250ZXh0LmFkZENvbnRleHRMaXN0ZW5lcih0aGlzKTsKKyAgICAgICAgICAgIHNlc3Npb24uc2V0QXR0cmlidXRlKGNvbnRleHRJZCwgY29udGV4dCk7CisgICAgICAgICAgICBjb250ZXh0LmNhbGwoY29udGV4dC5nZXRBY3Rpdml0eSgpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gY29udGV4dDsKKworICAgIH0KKworCisgICAgLyoqCisgICAgICogVmFsaWRhdGUgY29udGV4dCwgcmV0dXJuaW5nIGVycm9ycyBpZiBmb3VuZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCB2YWxpZGF0ZUluaXQoQWN0aW9uRXJyb3JzIGVycm9ycywKKyAgICAgICAgICAgIENvbnRleHQgY29udGV4dCwgQWN0aXZpdHkgYWN0aXZpdHkpIHsKKworICAgICAgICBpZiAoKGNvbnRleHQ9PW51bGwpIHx8CisgICAgICAgICAgICAoY29udGV4dC5nZXRBY3Rpdml0eSgpPT1udWxsKSkgeworICAgICAgICAgICAgZXJyb3JzLmFkZChBY3Rpb25FcnJvcnMuR0xPQkFMX0VSUk9SLAorICAgICAgICAgICAgICAgIG5ldyBBY3Rpb25FcnJvcigiYWN0aW9uLm1pc3NpbmcucGFyYW1ldGVyIikpOworICAgICAgICB9CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIEV4ZWN1dGUgdGhlIG5leHQgc3RhZ2Ugb2YgdGhlIGN1cnJlbnQgQWN0aXZpdHkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBleGVjdXRlQ29udGV4dChXZWJDb250ZXh0IGNvbnRleHQsIEFjdGl2aXR5IGFjdGl2aXR5LAorICAgICAgICAgICAgQWN0aW9uTWFwcGluZyBtYXBwaW5nLCBBY3Rpb25Gb3JtIGZvcm0sCisgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkKKyAgICAgICB0aHJvd3MgU2VydmxldEV4Y2VwdGlvbiB7CisKKyAgICAgICAgc3luY2hyb25pemVkIChjb250ZXh0KSB7CisKKyAgICAgICAgICAgIC8vIElmIHdlIGFyZSBub3QgYWxyZWFkeSBleGVjdXRpbmcgb3VyIGFzc29jaWF0ZWQgQWN0aXZpdHksIGNhbGwgaXQKKyAgICAgICAgICAgIGlmICghYWN0aXZpdHkuZXF1YWxzKGNvbnRleHQuZ2V0QWN0aXZpdHkoKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZG9EZWJ1Z0xvZygpKQorICAgICAgICAgICAgICAgICAgICBzZXJ2bGV0LmxvZygieyIgKyByZXF1ZXN0LmdldFNlc3Npb24oKS5nZXRJZCgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICJ9IGNhbGxpbmcgQWN0aXZpdHkgIiArCisgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpdml0eS5nZXRJZCgpKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LmNhbGwoYWN0aXZpdHkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBBc3NvY2lhdGUgb3VyIGNvbnRleHQgd2l0aCB0aGUgY3VycmVudCByZXF1ZXN0IGFuZCByZXNwb25zZQorICAgICAgICAgICAgY29udGV4dC5zZXRTZXJ2bGV0UmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0U2VydmxldFJlc3BvbnNlKHJlc3BvbnNlKTsKKworICAgICAgICAgICAgLy8gRXhlY3V0ZSBvdXIgYWN0aXZpdHkgdW50aWwgc3VzcGVuZGVkIG9yIGVuZGVkCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGlmIChkb0RlYnVnTG9nKCkpCisgICAgICAgICAgICAgICAgICAgIHNlcnZsZXQubG9nKCJ7IiArIGNvbnRleHQuZ2V0SHR0cFNlc3Npb24oKS5nZXRJZCgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICJ9IGV4ZWN1dGluZyBBY3Rpdml0eSAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmdldEFjdGl2aXR5KCkuZ2V0SWQoKSk7CisgICAgICAgICAgICAgICAgY29udGV4dC5leGVjdXRlKCk7CisgICAgICAgICAgICB9IGNhdGNoIChTdGVwRXhjZXB0aW9uIGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoZS5nZXRDYXVzZSgpID09IG51bGwpCisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpLCBlKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTZXJ2bGV0RXhjZXB0aW9uKGUuZ2V0TWVzc2FnZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgZS5nZXRDYXVzZSgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworCisgICAgLyoqCisgICAgICogQW5hbHl6ZSBpbml0aWFsaXphdGlvbiBwcm9wZXJ0aWVzLAorICAgICAqIGFuZCByZXBvcnQgYW55IGVycm9ycy4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCB2YWxpZGF0ZUNvbnRleHQoQWN0aW9uRXJyb3JzIGVycm9ycywKKyAgICAgICAgICAgIENvbnRleHQgY29udGV4dCkgeworICAgIH0KKworCisgICAgLyoqCisgICAgICogQW5hbHl6ZSByZXN1bHQsIGFuZCBkZXRlcm1pbmUgbmV4dCBmb3J3YXJkLgorICAgICAqIDxwPgorICAgICAqIElmIG5vIGVycm9ycywgZm9yd2FyZCBmb3IgaWQgb2YgbmV4dCBzdGVwIGlzIHJldHVybmVkLgorICAgICAqIDxwPgorICAgICAqIElmIHRoZXJlIGFyZSBlcnJvcnMsIHNhdmUgZXJyb3JzIHRvIHJlcXVlc3QsIGFuZAorICAgICAqIGZvcndhcmQgdG8gaW5wdXQuIElmIHRoZXJlIGlzIG5vdCBpbnB1dCBwcm9wZXJ0eSwKKyAgICAgKiB0aGVuIGZvcndhcmQgdG8gbG9jYWwgb3IgZ2xvYmFsICJlcnJvcnMiIGZvcndhcmRpbmcuCisgICAgICovCisgICAgcHJvdGVjdGVkIEFjdGlvbkZvcndhcmQgbmV4dEZvcndhcmQoQWN0aW9uTWFwcGluZyBtYXBwaW5nLAorICAgICAgICAgICAgQWN0aW9uRXJyb3JzIGVycm9ycywgSHR0cFNlcnZsZXRSZXF1ZXN0IHJlcXVlc3QsCisgICAgICAgICAgICBXZWJDb250ZXh0IGNvbnRleHQpIHsKKworICAgICAgICBpZiAoIWVycm9ycy5lbXB0eSgpKSB7CisKKyAgICAgICAgICAgIC8vIFNhdmUgZm9yIGRpc3BsYXkKKyAgICAgICAgICAgIHNhdmVFcnJvcnMocmVxdWVzdCxlcnJvcnMpOworCisgICAgICAgICAgICAvLyBSZXR1cm4gdG8gaW5wdXQgcGFnZSwgaWYgdGhlcmUgaXMgb25lCisgICAgICAgICAgICBpZiAobWFwcGluZy5nZXRJbnB1dCgpIT1udWxsKQorICAgICAgICAgICAgICAgIHJldHVybiAobmV3IEFjdGlvbkZvcndhcmQobWFwcGluZy5nZXRJbnB1dCgpKSk7CisKKyAgICAgICAgICAgIC8vIElmIG5vIGlucHV0IHBhZ2UsIHVzZSBlcnJvciBmb3J3YXJkaW5nCisgICAgICAgICAgICByZXR1cm4gKG1hcHBpbmcuZmluZEZvcndhcmQoImVycm9yIikpOworICAgICAgICB9CisKKyAgICAgICAgLy8gSWYgbm8gZXJyb3JzLCBnb3RvIGZvcndhcmRpbmcgZm9yIG5leHQgc3RlcAorICAgICAgICByZXR1cm4gKG1hcHBpbmcuZmluZEZvcndhcmQoCisgICAgICAgICAgICBjb250ZXh0LmdldE5leHRTdGVwKCkuZ2V0SWQoKSkpOworICAgIH0KKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHVibGljIFByb3BlcnRpZXMKKworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBSZWdpc3RyeSAgZm9yIHRoaXMgQWN0aW9uIChvciBhcHBsaWNhdGlvbikKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRSZWdpc3RyeShSZWdpc3RyeSByZWdpc3RyeSkgeworICAgICAgICB0aGlzLnJlZ2lzdHJ5ID0gcmVnaXN0cnk7CisgICAgfQorCisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBNZXRob2RzCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIGNvbnRyb2xsZXIgc2VydmxldCBpbnN0YW5jZSB0byB3aGljaCB3ZSBhcmUgYXR0YWNoZWQKKyAgICAgKiAoaWYgc2VydmxldCBpcyBub24tbnVsbCksIG9yIHJlbGVhc2UgYW55IGFsbG9jYXRlZCByZXNvdXJjZXMKKyAgICAgKiAoaWYgc2VydmxldCBpcyBudWxsKS4KKyAgICAgKiBDYWxsIHNldFJlZ2lzdHJ5IHRvIG9idGFpbiByZWdpc3RyeSBmcm9tIHNlcnZsZXQgY29udGV4dC4KKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBzZXRTZXJ2bGV0KEFjdGlvblNlcnZsZXQgc2VydmxldCkgeworICAgICAgICBzdXBlci5zZXRTZXJ2bGV0KHNlcnZsZXQpOworCisgICAgICAgIGlmIChzZXJ2bGV0PT1udWxsKSB7CisgICAgICAgICAgICBzZXRSZWdpc3RyeShudWxsKTsKKyAgICAgICAgICAgIHRoaXMuYWN0aXZpdHkgPSBudWxsOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgc2V0UmVnaXN0cnkoKFJlZ2lzdHJ5KQorICAgICAgICAgICAgICAgIHNlcnZsZXQuZ2V0U2VydmxldENvbnRleHQoKS5nZXRBdHRyaWJ1dGUoCisgICAgICAgICAgICAgICAgICAgIFJlZ2lzdHJ5U2VydmxldC5SRUdJU1RSWSkpOworICAgICAgICAgICAgdGhpcy5hY3Rpdml0eSA9IChBY3Rpdml0eSkKKyAgICAgICAgICAgICAgICBzZXJ2bGV0LmdldFNlcnZsZXRDb250ZXh0KCkuZ2V0QXR0cmlidXRlKAorICAgICAgICAgICAgICAgICAgICBSZWdpc3RyeVNlcnZsZXQuQUNUSVZJVFkpOworICAgICAgICB9CisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBvciBpbml0aWFsaXplIGNvbnRleHQgZnJvbSBzZXNzaW9uLCB1c2luZyBBY3Rpb25NYXBwaW5nCisgICAgICogcGFyYW1ldGVyIGFzIGtleS4gUmV0dXJucyBhY3Rpb24ubWlzc2luZy5wYXJhbWV0ZXJzIGlmIHBhcmFtZXRlcgorICAgICAqIG1pc3Npbmcgb3Igbm90IGZvdW5kLiBFeGVjdXRlcyB0aGUgbmV4dCBzdGVwIG9mIHRoZSBhY3RpdGl2aXR5LgorICAgICAqCisgICAgICogQHBhcmFtIG1hcHBpbmcgVGhlIEFjdGlvbk1hcHBpbmcgdXNlZCB0byBzZWxlY3QgdGhpcyBpbnN0YW5jZQorICAgICAqIEBwYXJhbSBmb3JtIFRoZSBvcHRpb25hbCBBY3Rpb25Gb3JtIGJlYW4gZm9yIHRoaXMgcmVxdWVzdCAoaWYgYW55KQorICAgICAqIEBwYXJhbSByZXF1ZXN0IFRoZSBIVFRQIHJlcXVlc3Qgd2UgYXJlIHByb2Nlc3NpbmcKKyAgICAgKiBAcGFyYW0gcmVzcG9uc2UgVGhlIEhUVFAgcmVzcG9uc2Ugd2UgYXJlIGNyZWF0aW5nCisgICAgICoKKyAgICAgKiBAZXhjZXB0aW9uIElPRXhjZXB0aW9uIGlmIGFuIGlucHV0L291dHB1dCBlcnJvciBvY2N1cnMKKyAgICAgKiBAZXhjZXB0aW9uIFNlcnZsZXRFeGNlcHRpb24gaWYgYSBzZXJ2bGV0IGV4Y2VwdGlvbiBvY2N1cnMKKyAgICAgKi8KKyAgICBwdWJsaWMgQWN0aW9uRm9yd2FyZCBleGVjdXRlKEFjdGlvbk1hcHBpbmcgbWFwcGluZywKKyAgICAgICAgICAgICAgICAgQWN0aW9uRm9ybSBmb3JtLAorICAgICAgICAgICAgICAgICBIdHRwU2VydmxldFJlcXVlc3QgcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgSHR0cFNlcnZsZXRSZXNwb25zZSByZXNwb25zZSkKKyAgICB0aHJvd3MgRXhjZXB0aW9uIHsKKworICAgICAgICBBY3Rpb25FcnJvcnMgZXJyb3JzID0gbmV3IEFjdGlvbkVycm9ycygpOworCisgICAgICAgIFdlYkNvbnRleHQgY29udGV4dCA9IGdldENvbnRleHQobWFwcGluZyxyZXF1ZXN0LAorICAgICAgICAgICAgcmVzcG9uc2UpOworCisgICAgICAgIEFjdGl2aXR5IGFjdGl2aXR5ID0gZ2V0QWN0aXZpdHkobWFwcGluZyk7CisKKyAgICAgICAgdmFsaWRhdGVJbml0KGVycm9ycyxjb250ZXh0LGFjdGl2aXR5KTsKKworICAgICAgICBpZiAoZXJyb3JzLmlzRW1wdHkoKSkgeworCisgICAgICAgICAgICAgICAgZXhlY3V0ZUNvbnRleHQoY29udGV4dCxhY3Rpdml0eSwKKyAgICAgICAgICAgICAgICAgICAgbWFwcGluZyxmb3JtLHJlcXVlc3QscmVzcG9uc2UpOworCisgICAgICAgIH0KKworICAgICAgICB2YWxpZGF0ZUNvbnRleHQoZXJyb3JzLGNvbnRleHQpOworCisgICAgICAgIC8vIHJldHVybiAobmV4dEZvcndhcmQobWFwcGluZyxlcnJvcnMscmVxdWVzdCxjb250ZXh0KSk7CisgICAgICAgIHJldHVybiBudWxsOworCisgICAgfSAvLyBlbmQgQWN0aW9uRm9yd2FyZAorCisKKyAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29udGV4dExpc3RlbmVyIE1ldGhvZHMKKworCisgICAgLyoqCisgICAgICogSW52b2tlZCBpbW1lZGlhdGVseSBhZnRlciBleGVjdXRpb24gb2YgdGhlIHJlbGF0ZWQgQWN0aXZpdHkgaGFzCisgICAgICogYmVlbiBjb21wbGV0ZWQgbm9ybWFsbHksIGJlZW4gc3VzcGVuZGVkLCBvciBiZWVuIGFib3J0ZWQgYnkKKyAgICAgKiB0aGUgdGhyb3dpbmcgb2YgYSBTdGVwRXhjZXB0aW9uLiAgVGhlIFN0ZXAgaW5jbHVkZWQgaW4gdGhpcyBldmVudAorICAgICAqIHdpbGwgYmUgdGhlIGxhc3Qgb25lIHRvIGJlIGV4ZWN1dGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGV2ZW50IFRoZSA8Y29kZT5Db250ZXh0RXZlbnQ8L2NvZGU+IHRoYXQgaGFzIG9jY3VycmVkCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWZ0ZXJBY3Rpdml0eShDb250ZXh0RXZlbnQgZXZlbnQpIHsKKworICAgICAgICBXZWJDb250ZXh0IGNvbnRleHQgPSAoV2ViQ29udGV4dCkgZXZlbnQuZ2V0Q29udGV4dCgpOworICAgICAgICBIdHRwU2Vzc2lvbiBzZXNzaW9uID0gY29udGV4dC5nZXRIdHRwU2Vzc2lvbigpOworICAgICAgICBTdHJpbmdCdWZmZXIgc2IgPSBuZXcgU3RyaW5nQnVmZmVyKCJ7Iik7CisgICAgICAgIHNiLmFwcGVuZChzZXNzaW9uLmdldElkKCkpOworICAgICAgICBzYi5hcHBlbmQoIn0gYWZ0ZXJBY3Rpdml0eSIpOworICAgICAgICBzZXJ2bGV0LmxvZyhzYi50b1N0cmluZygpKTsKKworICAgIH0KKworCisgICAgLyoqCisgICAgICogSW52b2tlZCBpbW1lZGlhdGVseSBhZnRlciB0aGUgc3BlY2lmaWVkIFN0ZXAgd2FzIGV4ZWN1dGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGV2ZW50IFRoZSA8Y29kZT5Db250ZXh0RXZlbnQ8L2NvZGU+IHRoYXQgaGFzIG9jY3VycmVkCisgICAgICovCisgICAgcHVibGljIHZvaWQgYWZ0ZXJTdGVwKENvbnRleHRFdmVudCBldmVudCkgeworCisgICAgICAgIFdlYkNvbnRleHQgY29udGV4dCA9IChXZWJDb250ZXh0KSBldmVudC5nZXRDb250ZXh0KCk7CisgICAgICAgIEh0dHBTZXNzaW9uIHNlc3Npb24gPSBjb250ZXh0LmdldEh0dHBTZXNzaW9uKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoInsiKTsKKyAgICAgICAgc2IuYXBwZW5kKHNlc3Npb24uZ2V0SWQoKSk7CisgICAgICAgIHNiLmFwcGVuZCgifSBhZnRlclN0ZXAgIik7CisgICAgICAgIHNiLmFwcGVuZChldmVudC5nZXRTdGVwKCkpOworICAgICAgICBpZiAoY29udGV4dC5nZXRTdXNwZW5kKCkpCisgICAgICAgICAgICBzYi5hcHBlbmQoIiAoU3VzcGVuZGVkKSIpOworICAgICAgICBpZiAoY29udGV4dC5nZXROZXh0U3RlcCgpID09IG51bGwpCisgICAgICAgICAgICBzYi5hcHBlbmQoIiAoRmluaXNoZWQpIik7CisgICAgICAgIHNlcnZsZXQubG9nKHNiLnRvU3RyaW5nKCkpOworICAgICAgICBpZiAoZXZlbnQuZ2V0RXhjZXB0aW9uKCkgIT0gbnVsbCkKKyAgICAgICAgICAgIHNlcnZsZXQubG9nKCItLT5TdGVwIHRocmV3IGV4Y2VwdGlvbiIsIGV2ZW50LmdldEV4Y2VwdGlvbigpKTsKKworICAgIH0KKworCisgICAgLyoqCisgICAgICogSW52b2tlZCBpbW1lZGlhdGVseSBiZWZvcmUgZXhlY3V0aW9uIG9mIHRoZSByZWxhdGVkIEFjdGl2aXR5IGhhcworICAgICAqIHN0YXJ0ZWQuICBUaGUgU3RlcCBpbmNsdWRlZCBpbiB0aGlzIGV2ZW50IHdpbGwgYmUgdGhlIGZpcnN0IG9uZQorICAgICAqIHRvIGJlIGV4ZWN1dGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGV2ZW50IFRoZSA8Y29kZT5Db250ZXh0RXZlbnQ8L2NvZGU+IHRoYXQgaGFzIG9jY3VycmVkCisgICAgICovCisgICAgcHVibGljIHZvaWQgYmVmb3JlQWN0aXZpdHkoQ29udGV4dEV2ZW50IGV2ZW50KSB7CisKKyAgICAgICAgV2ViQ29udGV4dCBjb250ZXh0ID0gKFdlYkNvbnRleHQpIGV2ZW50LmdldENvbnRleHQoKTsKKyAgICAgICAgSHR0cFNlc3Npb24gc2Vzc2lvbiA9IGNvbnRleHQuZ2V0SHR0cFNlc3Npb24oKTsKKyAgICAgICAgU3RyaW5nQnVmZmVyIHNiID0gbmV3IFN0cmluZ0J1ZmZlcigieyIpOworICAgICAgICBzYi5hcHBlbmQoc2Vzc2lvbi5nZXRJZCgpKTsKKyAgICAgICAgc2IuYXBwZW5kKCJ9IGJlZm9yZUFjdGl2aXR5Iik7CisgICAgICAgIHNlcnZsZXQubG9nKHNiLnRvU3RyaW5nKCkpOworCisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBJbnZva2VkIGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgc3BlY2lmaWVkIFN0ZXAgaXMgZXhlY3V0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIDxjb2RlPkNvbnRleHRFdmVudDwvY29kZT4gdGhhdCBoYXMgb2NjdXJyZWQKKyAgICAgKi8KKyAgICBwdWJsaWMgdm9pZCBiZWZvcmVTdGVwKENvbnRleHRFdmVudCBldmVudCkgeworCisgICAgICAgIFdlYkNvbnRleHQgY29udGV4dCA9IChXZWJDb250ZXh0KSBldmVudC5nZXRDb250ZXh0KCk7CisgICAgICAgIEh0dHBTZXNzaW9uIHNlc3Npb24gPSBjb250ZXh0LmdldEh0dHBTZXNzaW9uKCk7CisgICAgICAgIFN0cmluZ0J1ZmZlciBzYiA9IG5ldyBTdHJpbmdCdWZmZXIoInsiKTsKKyAgICAgICAgc2IuYXBwZW5kKHNlc3Npb24uZ2V0SWQoKSk7CisgICAgICAgIHNiLmFwcGVuZCgifSBiZWZvcmVTdGVwICIpOworICAgICAgICBzYi5hcHBlbmQoZXZlbnQuZ2V0U3RlcCgpKTsKKyAgICAgICAgc2VydmxldC5sb2coc2IudG9TdHJpbmcoKSk7CisKKyAgICB9CisKKworfSAvLyBlbmQgQWN0aXZpdHkKZGlmZiAtLWdpdCBhL3N0cnV0cy1zYW5kYm94L3dvcmtmbG93L1JlZ2lzdHJ5U2VydmxldC5qYXZhIGIvc3RydXRzLXNhbmRib3gvd29ya2Zsb3cvUmVnaXN0cnlTZXJ2bGV0LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRiOGE4ZgotLS0gL2Rldi9udWxsCisrKyBiL3N0cnV0cy1zYW5kYm94L3dvcmtmbG93L1JlZ2lzdHJ5U2VydmxldC5qYXZhCkBAIC0wLDAgKzEsMzgxIEBACisvKgorICogJElkJCAKKyAqCisgKiBDb3B5cmlnaHQgMTk5OS0yMDA0IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqIAorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqIAorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqIAorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBvcmcuYXBhY2hlLnN0cnV0cy5hY3Rpb247CisKKworaW1wb3J0IGphdmEuaW8uSW5wdXRTdHJlYW07CisKKworaW1wb3J0IGphdmF4LnNlcnZsZXQuU2VydmxldEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZheC5zZXJ2bGV0LlVuYXZhaWxhYmxlRXhjZXB0aW9uOworaW1wb3J0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldDsKKworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5kaWdlc3Rlci5EaWdlc3RlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMud29ya2Zsb3cuQWN0aXZpdHk7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLndvcmtmbG93LkNvbnRleHQ7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLndvcmtmbG93LkNvbnRleHRFdmVudDsKK2ltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMud29ya2Zsb3cuQ29udGV4dExpc3RlbmVyOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy53b3JrZmxvdy5TdGVwOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy53b3JrZmxvdy5TdGVwRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy53b3JrZmxvdy5iYXNlLkJhc2VSdWxlU2V0OworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy53b3JrZmxvdy5jb3JlLkNvcmVSdWxlU2V0OworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy53b3JrZmxvdy5pby5Jb1J1bGVTZXQ7CitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLndvcmtmbG93LndlYi5XZWJDb250ZXh0OworaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy53b3JrZmxvdy53ZWIuV2ViUnVsZVNldDsKKworaW1wb3J0IHNpbXBsZS53b3JrZmxvdy5SZWdpc3RyeTsKK2ltcG9ydCBzaW1wbGUud29ya2Zsb3cuYmFzZS5CYXNlUmVnaXN0cnk7CisKKworLyoqCisgKiA8cD5EZW1vbnN0cmF0aW9uIHNlcnZsZXQgdGhhdCBpbGx1c3RyYXRlcyBvbmUgd2F5IHRoYXQgd29ya2Zsb3cgc3VwcG9ydCBjYW4KKyAqIGJlIGludGVncmF0ZWQgaW50byBTdHJ1dHMuIFRoaXMgc2VydmxldCBpcyB1c2VkIHRvIGluc3RhbnRpYXRlIHRoZSBSZWdpc3RyeQorICogb2YgQWN0aXZpdGllcyBhbmQgZXhwb3NlIHRoZW0gdG8gdGhlIGFwcGxpY2F0aW9uLiBQcm9jZXNzaW5nIG9mIHRoZSBBY3Rpdml0aWVzCisgKiBpcyBleHBlY3RlZCB0byB0YWtlIHBsYWNlIGluIGFuIDxjb2RlPkFjdGl2aXR5PC9jb2RlPiBBY3Rpb24uPC9wPgorICoKKyAqIDxwPk5vdGU6IFRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoaXMgU2VydmxldCBjb3VsZCBiZSByZXBsYWNlZCBieSB0aGUgbmV3CisgKiBTZXJ2aWNlTWFuYWdlci48L3A+CisgKgorICogPHA+SW5pdGlhbGl6YXRpb24gcGFyYW1ldGVycyAoZGVmYXVsdHMgaW4gc3F1YXJlIGJyYWNrZXRzKTo8L3A+CisgKiA8dWw+CisgKiA8bGk+PHN0cm9uZz5yZWdpc3RyeTwvc3Ryb25nPiAtIENvbnRleHQtcmVsYXRpdmUgcmVzb3VyY2UgcGF0aCB0byB0aGUKKyAqICAgICBkZWZpbml0aW9uIGZpbGUgZm9yIHRoZSBBY3Rpdml0aWVzIHRvIGJlIGluaXRpYWxpemVkIGJ5IHRoaXMgc2VydmxldC48L2xpPgorICogPGxpPjxzdHJvbmc+cmVnaXN0cnkta2V5PC9zdHJvbmc+IC0gTmFtZSBvZiB0aGUgc2Vzc2lvbiBhdHRyaWJ1dGUgdW5kZXIKKyAqICAgICB3aGljaCB0aGUgPGNvZGU+UmVnaXN0cnk8L2NvZGU+IGltcGxlbWVudGF0aW9uIGlzIHN0b3JlZC4KKyAqICAgICBbb3JnLmFwYWNoZS5jb21tb25zLndvcmtmbG93LlJFR0lTVFJZXTwvbGk+CisgKiA8bGk+PHN0cm9uZz5jb250ZXh0LWtleTwvc3Ryb25nPiAtIE5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIHVuZGVyCisgKiAgICAgd2hpY2ggb3VyIGN1cnJlbnQgPGNvZGU+Q29udGV4dDwvY29kZT4gaW1wbGVtZW50YXRpb24gaXMgc3RvcmVkLgorICogICAgIFtvcmcuYXBhY2hlLmNvbW1vbnMud29ya2Zsb3cud2ViLkNPTlRFWFRdPC9saT4KKyAqIDxsaT48c3Ryb25nPmRlYnVnPC9zdHJvbmc+IC0gVGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgZm9yIHRoaXMKKyAqICAgICBzZXJ2bGV0LCB3aGljaCBjb250cm9scyBob3cgbXVjaCBpbmZvcm1hdGlvbiBpcyBsb2dnZWQuICBbMF08L2xpPgorICogPGxpPjxzdHJvbmc+ZGV0YWlsPC9zdHJvbmc+IC0gVGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgZm9yIHRoZSBEaWdlc3RlcgorICogICAgIHdlIHV0aWxpemUgaW4gPGNvZGU+aW5pdE1hcHBpbmcoKTwvY29kZT4sIHdoaWNoIGxvZ3MgdG8gU3lzdGVtLm91dAorICogICAgIGluc3RlYWQgb2YgdGhlIHNlcnZsZXQgbG9nLiAgWzBdPC9saT4KKyAqIDwvdWw+CisgKgorICogQGF1dGhvciBDcmFpZyBSLiBNY0NsYW5haGFuCisgKiBAYXV0aG9yIFRlZCBIdXN0ZWQKKyAqIEB2ZXJzaW9uICRSZXYkICREYXRlJAorICovCisKKworcHVibGljIGNsYXNzIFJlZ2lzdHJ5U2VydmxldCBleHRlbmRzIEh0dHBTZXJ2bGV0IHsKKworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBJbnN0YW5jZSBWYXJpYWJsZXMKKworCisgICAgLyoqCisgICAgICogVGhlIEFjdGl2aXR5IGZvciB0aGlzIHNlcnZsZXQKKyAgICAgKiAvLzpUT0RPOiBURU1QT1JBUlkKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgQWN0aXZpdHkgYWN0aXZpdHkgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IE5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIHVuZGVyIHdoaWNoCisgICAgICogdGhlIGN1cnJlbnQgPGNvZGU+QWN0aXZpdHk8L2NvZGU+IGlzIHN0b3JlZC4KKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIFN0cmluZyBBQ1RJVklUWSA9CisgICAgICAgICJvcmcuYXBhY2hlLmNvbW1vbnMud29ya2Zsb3cuQUNUSVZJVFkiOworCisKKyAgICAvKioKKyAgICAgKiBOYW1lIG9mIHRoZSBzZXNzaW9uIGF0dHJpYnV0ZSB1bmRlcgorICAgICAqIHdoaWNoIHRoZSA8Y29kZT5BY3Rpdml0eTwvY29kZT4gaXMgc3RvcmVkLgorICAgICAqLworICAgIHByb3RlY3RlZCBTdHJpbmcgYWN0aXZpdHlLZXkgPSBBQ1RJVklUWTsKKworCisgICAgLyoqCisgICAgICogRGVmYXVsdCBOYW1lIG9mIHRoZSBzZXNzaW9uIGF0dHJpYnV0ZSB1bmRlciB3aGljaAorICAgICAqICBhIGN1cnJlbnQgPGNvZGU+Q29udGV4dDwvY29kZT4gaXMgc3RvcmVkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIENPTlRFWFQgPQorICAgICAgICAib3JnLmFwYWNoZS5jb21tb25zLndvcmtmbG93LkNPTlRFWFQiOworCisKKyAgICAvKioKKyAgICAgKiBOYW1lIG9mIHRoZSBzZXNzaW9uIGF0dHJpYnV0ZSB1bmRlcgorICAgICAqIHdoaWNoIGEgY3VycmVudCA8Y29kZT5Db250ZXh0PC9jb2RlPiBpcyBzdG9yZWQuCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyBjb250ZXh0S2V5ID0gQ09OVEVYVDsKKworCisgICAgLyoqCisgICAgICogVGhlIFJlZ2lzdHJ5IGZvciB0aGlzIHNlcnZsZXQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgUmVnaXN0cnkgcmVnaXN0cnkgPSBudWxsOworCisKKyAgICAvKioKKyAgICAgKiBEZWZhdWx0IE5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIGF0dHJpYnV0ZSB1bmRlciB3aGljaAorICAgICAqIHRoZSA8Y29kZT5SZWdpc3RyeTwvY29kZT4gaXMgc3RvcmVkLgorICAgICAqLworICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIFJFR0lTVFJZID0KKyAgICAgICAgIm9yZy5hcGFjaGUuY29tbW9ucy53b3JrZmxvdy5SRUdJU1RSWSI7CisKKworICAgIC8qKgorICAgICAqIE5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIHVuZGVyCisgICAgICogd2hpY2ggdGhlIDxjb2RlPlJlZ2lzdHJ5PC9jb2RlPiBpcyBzdG9yZWQuCisgICAgICovCisgICAgcHJvdGVjdGVkIFN0cmluZyByZWdpc3RyeUtleSA9IFJFR0lTVFJZOworCisgICAgLyoqCisgICAgICogRGVmYXVsdCBuYW1lIGZvciBSZWdpc3RyeSBYTUwgZG9jdW1lbnQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgU3RyaW5nIHJlZ2lzdHJ5UGF0aCA9ICJXRUItSU5GL3dvcmtmbG93LnhtbCI7CisKKworICAgIC8qKgorICAgICAqIFRoZSBkZWJ1Z2dpbmcgZGV0YWlsIGxldmVsIGZvciB0aGlzIHNlcnZsZXQuCisgICAgICovCisgICAgcHJpdmF0ZSBpbnQgZGVidWcgPSAwOworCisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBQcm9wZXJ0aWVzCisKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgPGNvZGU+QWN0aXZpdHk8L2NvZGU+IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGluc3RhbmNlLgorICAgICAqCisgICAgICogQHBhcmFtIGFjdGl2aXR5IFRoZSBuZXcgYXNzb2NpYXRlZCBBY3Rpdml0eQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldEFjdGl2aXR5KEFjdGl2aXR5IGFjdGl2aXR5KSB7CisKKyAgICAgICAgdGhpcy5hY3Rpdml0eSA9IGFjdGl2aXR5OworICAgICAgICBnZXRTZXJ2bGV0Q29udGV4dCgpLnNldEF0dHJpYnV0ZShBQ1RJVklUWSx0aGlzLmFjdGl2aXR5KTsKKworICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIGF0dHJpYnV0ZSB1bmRlciB3aGljaCBhIGN1cnJlbnQKKyAgICAgKiA8Y29kZT5Db250ZXh0PC9jb2RlPiBpcyBzdG9yZWQuCisgICAgICovCisgICAgcHVibGljIFN0cmluZyBnZXRDb250ZXh0S2V5KCkgeworCisgICAgICAgIHJldHVybiBjb250ZXh0S2V5OworCisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIHVuZGVyIHdoaWNoIGEgY3VycmVudAorICAgICAqIDxjb2RlPkNvbnRleHQ8L2NvZGU+IGlzIHN0b3JlZC4KKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgdm9pZCBzZXRDb250ZXh0S2V5KFN0cmluZyBjb250ZXh0S2V5KSB7CisKKyAgICAgICAgdGhpcy5jb250ZXh0S2V5ID0gY29udGV4dEtleTsKKworICAgIH0KKworCisgICAgLyoqCisgICAgICogUmV0dXJuIE5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIGF0dHJpYnV0ZSB1bmRlciB3aGljaCB0aGlzCisgICAgICogc2VydmxldCBpcyBleHBvc2VkLgorICAgICAqLworICAgIHB1YmxpYyBTdHJpbmcgZ2V0UmVnaXN0cnlLZXkoKSB7CisKKyAgICAgICAgcmV0dXJuIHJlZ2lzdHJ5S2V5OworCisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gYXR0cmlidXRlIHVuZGVyIHdoaWNoIGEgY3VycmVudAorICAgICAqIDxjb2RlPlJlZ2lzdHJ5PC9jb2RlPiBpcyBzdG9yZWQuCisgICAgICovCisgICAgcHJvdGVjdGVkIHZvaWQgc2V0UmVnaXN0cnlLZXkoU3RyaW5nIHJlZ2lzdHJ5S2V5KSB7CisKKyAgICAgICAgdGhpcy5yZWdpc3RyeUtleSA9IHJlZ2lzdHJ5S2V5OworCisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIFJlZ2lzdHJ5IGZvciB0aGlzIHNlcnZsZXQKKyAgICAgKi8KKyAgICBwcm90ZWN0ZWQgUmVnaXN0cnkgZ2V0UmVnaXN0cnkoKSB7CisKKyAgICAgICAgcmV0dXJuICh0aGlzLnJlZ2lzdHJ5KTsKKworICAgIH0KKworCisgICAgLyoqCisgICAgICogU2V0IHRoZSA8Y29kZT5SZWdpc3RyeTwvY29kZT4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgaW5zdGFuY2UuCisgICAgICogQ2FsbGVkIGJ5IERpZ2VzdGVyIHZpYSBwYXJzZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSByZWdpc3J5IFRoZSBuZXcgYXNzb2NpYXRlZCBSZWdpc3RyeQorICAgICAqLworICAgIHB1YmxpYyB2b2lkIHNldFJlZ2lzdHJ5KFJlZ2lzdHJ5IHJlZ2lzdHJ5KSB7CisKKyAgICAgICAgdGhpcy5yZWdpc3RyeSA9IHJlZ2lzdHJ5OworICAgICAgICBpbml0UmVnaXN0cnkoKTsKKyAgICAgICAgZ2V0U2VydmxldENvbnRleHQoKS5zZXRBdHRyaWJ1dGUoCisgICAgICAgICAgICBnZXRSZWdpc3RyeUtleSgpLGdldFJlZ2lzdHJ5KCkpOworCisgICAgfQorCisKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB1YmxpYyBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYW55IG9wdGltaXphdGlvbnMgb3IgcmVsYXRlZCB0YXNrcyBvbiBSZWdpc3RyeSBvbmNlIGl0IGlzCisgICAgICogcG9wdWxhdGVkLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGluaXRSZWdpc3RyeSgpIHsKKworICAgICAgICBzeW5jaHJvbml6ZWQgKHRoaXMucmVnaXN0cnkpIHsKKworICAgICAgICAgICAgcmVnaXN0cnkuaW5pdEFjdGl2aXRpZXMoKTsKKworICAgICAgICB9CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIEdyYWNlZnVsbHkgc2h1dCBkb3duIGFueSBhY3Rpdml0eSBpbnN0YW5jZXMgd2UgaGF2ZSBjcmVhdGVkLgorICAgICAqLworICAgIHByb3RlY3RlZCB2b2lkIGRlc3Ryb3lSZWdpc3RyeSgpIHsKKworICAgICAgICBzeW5jaHJvbml6ZWQgKHRoaXMucmVnaXN0cnkpIHsKKworICAgICAgICAgICAgcmVnaXN0cnkuY2xlYXJBY3Rpdml0aWVzKCk7CisKKyAgICAgICAgfQorCisgICAgfQorCisKKyAgICAvKioKKyAgICAgKiBQZXJmb3JtIGEgZ3JhY2VmdWwgc2h1dGRvd24gb2YgdGhpcyBzZXJ2bGV0IGluc3RhbmNlLgorICAgICAqLworICAgIHB1YmxpYyB2b2lkIGRlc3Ryb3koKSB7CisKKyAgICAgICAgZGVzdHJveVJlZ2lzdHJ5KCk7CisKKyAgICB9CisKKworICAgIC8qKgorICAgICAqIFBlcmZvcm0gYSBncmFjZWZ1bCBzdGFydHVwIG9mIHRoaXMgc2VydmxldCBpbnN0YW5jZS4KKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gU2VydmxldEV4Y2VwdGlvbiBpZiB3ZSBjYW5ub3QgcHJvY2VzcyB0aGUgYWN0aXZpdHkKKyAgICAgKiAgZGVmaW5pdGlvbiBmaWxlIGZvciB0aGlzIGFjdGl2aXR5CisgICAgICovCisgICAgcHVibGljIHZvaWQgaW5pdCgpIHRocm93cyBTZXJ2bGV0RXhjZXB0aW9uIHsKKworICAgICAgICAvLyBSZWNvcmQgdGhlIGRlYnVnZ2luZyBkZXRhaWwgbGV2ZWwgc2V0dGluZ3MKKyAgICAgICAgU3RyaW5nIGRlYnVnID0gZ2V0U2VydmxldENvbmZpZygpLmdldEluaXRQYXJhbWV0ZXIoImRlYnVnIik7CisgICAgICAgIGlmIChkZWJ1ZyAhPSBudWxsKSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHRoaXMuZGVidWcgPSBJbnRlZ2VyLnBhcnNlSW50KGRlYnVnKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKE51bWJlckZvcm1hdEV4Y2VwdGlvbiBlKSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVuYXZhaWxhYmxlRXhjZXB0aW9uCisgICAgICAgICAgICAgICAgICAgICgiRGVidWcgaW5pdGlhbGl6YXRpb24gcGFyYW1ldGVyIG11c3QgYmUgYW4gaW50ZWdlciIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLy8gUmVjb3JkIHRoZSBhdHRyaWJ1dGUgbmFtZSBmb3Igb3VyIGN1cnJlbnQgQ29udGV4dAorICAgICAgICBTdHJpbmcgY29udGV4dEtleSA9IGdldFNlcnZsZXRDb25maWcoKS5nZXRJbml0UGFyYW1ldGVyKCJjb250ZXh0LWtleSIpOworICAgICAgICBpZiAoY29udGV4dEtleSAhPSBudWxsKQorICAgICAgICAgICAgc2V0Q29udGV4dEtleShjb250ZXh0S2V5KTsKKworICAgICAgICAvLyBSZWNvcmQgdGhlIGF0dHJpYnV0ZSBuYW1lIGZvciBvdXIgY3VycmVudCBDb250ZXh0CisgICAgICAgIFN0cmluZyByZWdpc3RyeUtleSA9IGdldFNlcnZsZXRDb25maWcoKS5nZXRJbml0UGFyYW1ldGVyKCJyZWdpc3RyeS1rZXkiKTsKKyAgICAgICAgaWYgKHJlZ2lzdHJ5S2V5ICE9IG51bGwpCisgICAgICAgICAgICBzZXRSZWdpc3RyeUtleShyZWdpc3RyeUtleSk7CisKKyAgICAgICAgLy8gUGFyc2UgdGhlIGFjdGl2aXR5IGRlZmluaXRpb24gZmlsZSBmb3Igb3VyIEFjdGl2aXR5CisgICAgICAgIFN0cmluZyByZWdpc3RyeVBhdGggPSBnZXRTZXJ2bGV0Q29uZmlnKCkuZ2V0SW5pdFBhcmFtZXRlcigicmVnaXN0cnkiKTsKKyAgICAgICAgaWYgKHJlZ2lzdHJ5UGF0aCAhPSBudWxsKQorICAgICAgICAgICAgdGhpcy5yZWdpc3RyeVBhdGggPSByZWdpc3RyeVBhdGg7CisgICAgICAgIHBhcnNlKHRoaXMucmVnaXN0cnlQYXRoKTsKKworICAgICAgICAvLyBDaGVjayByZXN1bHQgb2YgcGFyc2UKKyAgICAgICAgaWYgKGFjdGl2aXR5ID09IG51bGwpCisgICAgICAgICAgICB0aHJvdyBuZXcgVW5hdmFpbGFibGVFeGNlcHRpb24oIk5vIHJlZ2lzdHJ5IGRlZmluZWQgaW4gcmVzb3VyY2UgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgcmVnaXN0cnlQYXRoKTsKKworICAgIH0KKworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHJpdmF0ZSBNZXRob2RzCisKKworICAgIC8qKgorICAgICAqIFBhcnNlIHRoZSBzcGVjaWZpZWQgYWN0aXZpdHkgZGVmaW5pdGlvbiBmaWxlIGZvciB0aGlzIGluc3RhbmNlLgorICAgICAqCisgICAgICogQHBhcmFtIHBhdGggQ29udGV4dC1yZWxhdGl2ZSByZXNvdXJjZSBwYXRoIG9mIHRoZSBhY3Rpdml0eQorICAgICAqICBkZWZpbml0aW9uIGZpbGUKKyAgICAgKgorICAgICAqIEBleGNlcHRpb24gU2VydmxldEV4Y2VwdGlvbiBvbiBhbnkgcHJvY2Vzc2luZyBlcnJvciBpbiBwYXJzaW5nCisgICAgICovCisgICAgcHJpdmF0ZSB2b2lkIHBhcnNlKFN0cmluZyBwYXRoKSB0aHJvd3MgU2VydmxldEV4Y2VwdGlvbiB7CisKKyAgICAgICAgLy8gR2V0IGFuIGlucHV0IHNvdXJjZSBmb3IgdGhlIHNwZWNpZmllZCBwYXRoCisgICAgICAgIElucHV0U3RyZWFtIGlzID0KKyAgICAgICAgICAgIGdldFNlcnZsZXRDb250ZXh0KCkuZ2V0UmVzb3VyY2VBc1N0cmVhbShwYXRoKTsKKyAgICAgICAgaWYgKGlzID09IG51bGwpCisgICAgICAgICAgICB0aHJvdyBuZXcgVW5hdmFpbGFibGVFeGNlcHRpb24oIkNhbm5vdCBhY2Nlc3MgcmVzb3VyY2UgIiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCk7CisKKyAgICAgICAgLy8gQ29uZmlndXJlIGEgRGlnZXN0ZXIgaW5zdGFuY2UgdG8gcGFyc2Ugb3VyIGRlZmluaXRpb24gZmlsZQorICAgICAgICBEaWdlc3RlciBkaWdlc3RlciA9IG5ldyBEaWdlc3RlcigpOworICAgICAgICBkaWdlc3Rlci5zZXROYW1lc3BhY2VBd2FyZSh0cnVlKTsKKyAgICAgICAgZGlnZXN0ZXIuc2V0VmFsaWRhdGluZyhmYWxzZSk7CisgICAgICAgIGRpZ2VzdGVyLnB1c2godGhpcyk7CisKKyAgICAgICAgLy8gQWRkIHJ1bGVzIHRvIHJlY29nbml6ZSB0aGUgYnVpbHQtaW4gc3RlcHMgdGhhdCB3ZSBrbm93IGFib3V0CisgICAgICAgIEJhc2VSdWxlU2V0IGJycyA9IG5ldyBCYXNlUnVsZVNldCgpOworICAgICAgICBkaWdlc3Rlci5hZGRSdWxlU2V0KGJycyk7CisgICAgICAgIGRpZ2VzdGVyLmFkZFJ1bGVTZXQobmV3IENvcmVSdWxlU2V0KCkpOworICAgICAgICBkaWdlc3Rlci5hZGRSdWxlU2V0KG5ldyBJb1J1bGVTZXQoKSk7CisgICAgICAgIGRpZ2VzdGVyLmFkZFJ1bGVTZXQobmV3IFdlYlJ1bGVTZXQoKSk7CisKKyAgICAgICAgLy8gQWRkIGEgcnVsZSB0byByZWdpc3RlciB0aGUgQWN0aXZpdHkgYmVpbmcgY3JlYXRlZAorICAgICAgICBkaWdlc3Rlci5zZXRSdWxlTmFtZXNwYWNlVVJJKGJycy5nZXROYW1lc3BhY2VVUkkoKSk7CisgICAgICAgIGRpZ2VzdGVyLmFkZFNldE5leHQoImFjdGl2aXR5IiwgInNldEFjdGl2aXR5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JnLmFwYWNoZS5jb21tb25zLndvcmtmbG93LkFjdGl2aXR5Iik7CisKKyAgICAgICAgLy8gUGFyc2UgdGhlIGFjdGl2aXR5IGRlZmluaXRpb24gZmlsZQorICAgICAgICB0cnkgeworICAgICAgICAgICAgZGlnZXN0ZXIucGFyc2UoaXMpOworICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgdCkgeworICAgICAgICAgICAgbG9nKCJDYW5ub3QgcGFyc2UgcmVzb3VyY2UgIiArIHBhdGgsIHQpOworICAgICAgICAgICAgdGhyb3cgbmV3IFVuYXZhaWxhYmxlRXhjZXB0aW9uKCJDYW5ub3QgcGFyc2UgcmVzb3VyY2UgIiArIHBhdGgpOworICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpcy5jbG9zZSgpOworICAgICAgICAgICAgfSBjYXRjaCAoVGhyb3dhYmxlIHUpIHsKKyAgICAgICAgICAgICAgICA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworCit9Cg==